From 54f24930180861cf649c0f05669e9e9dc1a7bb7d Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Tue, 28 Nov 2017 14:53:44 -0700 Subject: [PATCH 001/675] Added ReductionView to Kokkos ReaxFF --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 74 ++++++------- src/KOKKOS/fix_qeq_reax_kokkos.h | 3 + src/KOKKOS/pair_kokkos.h | 15 ++- src/KOKKOS/pair_reaxc_kokkos.cpp | 169 +++++++++++++++++++++++------ src/KOKKOS/pair_reaxc_kokkos.h | 11 ++ 5 files changed, 199 insertions(+), 73 deletions(-) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index 5d2f6a0438..764b2f9191 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -254,12 +254,18 @@ void FixQEqReaxKokkos::pre_force(int vflag) k_t.template modify(); k_t.template sync(); + if (neighflag != FULL) + red_o = Kokkos::Experimental::create_reduction_view<> (k_o.d_view); // allocate duplicated memory + // 1st cg solve over b_s, s cg_solve1(); // 2nd cg solve over b_t, t cg_solve2(); + if (neighflag != FULL) + red_o = decltype(red_o)(); // free duplicated memory + // calculate_Q(); calculate_q(); @@ -494,13 +500,9 @@ void FixQEqReaxKokkos::cg_solve1() Kokkos::parallel_for(inum,sparse12_functor); if (neighflag != FULL) { Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); - if (neighflag == HALF) { - FixQEqReaxKokkosSparse13Functor sparse13_functor(this); - Kokkos::parallel_for(inum,sparse13_functor); - } else { - FixQEqReaxKokkosSparse13Functor sparse13_functor(this); - Kokkos::parallel_for(inum,sparse13_functor); - } + FixQEqReaxKokkosSparse13Functor sparse13_functor(this); + Kokkos::parallel_for(inum,sparse13_functor); + Kokkos::Experimental::contribute(k_o.d_view, red_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } @@ -548,18 +550,14 @@ void FixQEqReaxKokkos::cg_solve1() Kokkos::parallel_for(inum,sparse22_functor); if (neighflag != FULL) { Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); - if (neighflag == HALF) { - FixQEqReaxKokkosSparse23Functor sparse23_functor(this); - Kokkos::parallel_for(inum,sparse23_functor); - } else { - FixQEqReaxKokkosSparse23Functor sparse23_functor(this); - Kokkos::parallel_for(inum,sparse23_functor); - } + red_o.reset_except(d_o); + FixQEqReaxKokkosSparse23Functor sparse23_functor(this); + Kokkos::parallel_for(inum,sparse23_functor); + Kokkos::Experimental::contribute(k_o.d_view, red_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } - if (neighflag != FULL) { k_o.template modify(); k_o.template sync(); @@ -625,13 +623,10 @@ void FixQEqReaxKokkos::cg_solve2() Kokkos::parallel_for(inum,sparse32_functor); if (neighflag != FULL) { Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); - if (neighflag == HALF) { - FixQEqReaxKokkosSparse33Functor sparse33_functor(this); - Kokkos::parallel_for(inum,sparse33_functor); - } else { - FixQEqReaxKokkosSparse33Functor sparse33_functor(this); - Kokkos::parallel_for(inum,sparse33_functor); - } + red_o.reset_except(d_o); + FixQEqReaxKokkosSparse33Functor sparse33_functor(this); + Kokkos::parallel_for(inum,sparse33_functor); + Kokkos::Experimental::contribute(k_o.d_view, red_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } @@ -679,13 +674,10 @@ void FixQEqReaxKokkos::cg_solve2() Kokkos::parallel_for(inum,sparse22_functor); if (neighflag != FULL) { Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); - if (neighflag == HALF) { - FixQEqReaxKokkosSparse23Functor sparse23_functor(this); - Kokkos::parallel_for(inum,sparse23_functor); - } else { - FixQEqReaxKokkosSparse23Functor sparse23_functor(this); - Kokkos::parallel_for(inum,sparse23_functor); - } + red_o.reset_except(d_o); + FixQEqReaxKokkosSparse23Functor sparse23_functor(this); + Kokkos::parallel_for(inum,sparse23_functor); + Kokkos::Experimental::contribute(k_o.d_view, red_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } @@ -797,8 +789,8 @@ template KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse13_item(int ii) const { - // The q array is atomic for Half/Thread neighbor style - Kokkos::View::value> > a_o = d_o; + // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial + auto a_o = red_o.access(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -806,9 +798,9 @@ void FixQEqReaxKokkos::sparse13_item(int ii) const for(int jj = d_firstnbr[i]; jj < d_firstnbr[i] + d_numnbrs[i]; jj++) { const int j = d_jlist(jj); tmp += d_val(jj) * d_s[j]; - a_o[j] += d_val(jj) * d_s[i]; + a_o(j) += d_val(jj) * d_s[i]; } - a_o[i] += tmp; + a_o(i) += tmp; } } @@ -849,8 +841,8 @@ template KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse23_item(int ii) const { - // The q array is atomic for Half/Thread neighbor style - Kokkos::View::value> > a_o = d_o; + // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial + auto a_o = red_o.access(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -858,9 +850,9 @@ void FixQEqReaxKokkos::sparse23_item(int ii) const for(int jj = d_firstnbr[i]; jj < d_firstnbr[i] + d_numnbrs[i]; jj++) { const int j = d_jlist(jj); tmp += d_val(jj) * d_d[j]; - a_o[j] += d_val(jj) * d_d[i]; + a_o(j) += d_val(jj) * d_d[i]; } - a_o[i] += tmp; + a_o(i) += tmp; } } @@ -908,8 +900,8 @@ template KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse33_item(int ii) const { - // The q array is atomic for Half/Thread neighbor style - Kokkos::View::value> > a_o = d_o; + // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial + auto a_o = red_o.access(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -917,9 +909,9 @@ void FixQEqReaxKokkos::sparse33_item(int ii) const for(int jj = d_firstnbr[i]; jj < d_firstnbr[i] + d_numnbrs[i]; jj++) { const int j = d_jlist(jj); tmp += d_val(jj) * d_t[j]; - a_o[j] += d_val(jj) * d_t[i]; + a_o(j) += d_val(jj) * d_t[i]; } - a_o[i] += tmp; + a_o(i) += tmp; } } diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.h b/src/KOKKOS/fix_qeq_reax_kokkos.h index 9014e20b8e..dd7b4073c2 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.h +++ b/src/KOKKOS/fix_qeq_reax_kokkos.h @@ -22,6 +22,7 @@ FixStyle(qeq/reax/kk/host,FixQEqReaxKokkos) #ifndef LMP_FIX_QEQ_REAX_KOKKOS_H #define LMP_FIX_QEQ_REAX_KOKKOS_H +#include #include "fix_qeq_reax.h" #include "kokkos_type.h" #include "neigh_list.h" @@ -192,6 +193,8 @@ class FixQEqReaxKokkos : public FixQEqReax { HAT::t_ffloat_2d h_s_hist, h_t_hist; typename AT::t_ffloat_2d_randomread r_s_hist, r_t_hist; + Kokkos::Experimental::ReductionView red_o; + void init_shielding_k(); void init_hist(); void allocate_matrix(); diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index f0e357270c..c8e926a721 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -19,9 +19,10 @@ #define LMP_PAIR_KOKKOS_H #include "Kokkos_Macros.hpp" +#include "Kokkos_Vectorization.hpp" +#include "Kokkos_ReductionView.hpp" #include "pair.h" #include "neigh_list_kokkos.h" -#include "Kokkos_Vectorization.hpp" namespace LAMMPS_NS { @@ -58,6 +59,18 @@ struct AtomicF { enum {value = Kokkos::Atomic|Kokkos::Unmanaged}; }; +// Determine memory traits for force array +// Do atomic trait when running HALFTHREAD neighbor list style +template +struct AtomicDup { + enum {value = Kokkos::Experimental::ReductionNonAtomic}; +}; + +template<> +struct AtomicDup { + enum {value = Kokkos::Experimental::ReductionAtomic}; +}; + //Specialisation for Neighborlist types Half, HalfThread, Full template struct PairComputeFunctor { diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index d5f83f4537..79d9241ea4 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -711,6 +711,15 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) d_neighbors = k_list->d_neighbors; d_ilist = k_list->d_ilist; + // allocate duplicated memory + if (neighflag != FULL) { + dup_f = Kokkos::Experimental::create_reduction_view<>(f); + dup_eatom = Kokkos::Experimental::create_reduction_view<>(v_eatom); + dup_vatom = Kokkos::Experimental::create_reduction_view<>(v_vatom); + dup_dDeltap_self = Kokkos::Experimental::create_reduction_view<>(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_reduction_view<>(d_total_bo); + } + if (eflag_global) { for (int i = 0; i < 14; i++) pvector[i] = 0.0; @@ -802,7 +811,7 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) if (neighflag == HALF) Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); else if (neighflag == HALFTHREAD) - Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); + Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); else //(neighflag == FULL) Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); @@ -817,14 +826,32 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) if (resize_hb) maxhb++; resize = resize_bo || resize_hb; - if (resize) allocate_array(); + if (resize) { + allocate_array(); + if (neighflag != FULL) { + dup_dDeltap_self = Kokkos::Experimental::create_reduction_view<>(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_reduction_view<>(d_total_bo); + } + } } + // allocate duplicated memory + if (neighflag != FULL) { + dup_CdDelta = Kokkos::Experimental::create_reduction_view<>(d_CdDelta); + dup_Cdbo = Kokkos::Experimental::create_reduction_view<>(d_Cdbo); + dup_Cdbopi = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi); + dup_Cdbopi2 = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi2); + } + + // reduction over duplicated memory + if (neighflag != FULL) + Kokkos::Experimental::contribute(d_total_bo, dup_total_bo); // needed in BondOrder1 + // Bond order if (neighflag == HALF) { Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); } else if (neighflag == HALFTHREAD) { - Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); + Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); } Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); @@ -923,9 +950,29 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) pvector[7] = ev.ereax[8]; ev_all.evdwl += ev.ereax[8]; + // reduction over duplicated memory + if (neighflag != FULL) { + Kokkos::Experimental::contribute(d_dDeltap_self, dup_dDeltap_self); // needed in ComputeBond2 + Kokkos::Experimental::contribute(d_CdDelta, dup_CdDelta); // needed in ComputeBond2 + + Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in UpdateBond, but also used in UpdateBond + Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in UpdateBond, but also used in UpdateBond + Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in UpdateBond, but also used in UpdateBond + dup_Cdbo.reset_except(d_Cdbo); + dup_Cdbopi.reset_except(d_Cdbopi); + dup_Cdbopi2.reset_except(d_Cdbopi2); + } + // Bond force if (neighflag == HALF) { Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); + + // reduction over duplicated memory + if (neighflag != FULL) { + Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 + Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 + Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 + } if (evflag) Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,ignum),*this,ev); else @@ -934,6 +981,13 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) pvector[0] += ev.evdwl; } else { //if (neighflag == HALFTHREAD) { Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); + + // reduction over duplicated memory + if (neighflag != FULL) { + Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 + Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 + Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 + } if (evflag) Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,ignum),*this,ev); else @@ -942,6 +996,10 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) pvector[0] += ev.evdwl; } + // reduction over duplicated memory + if (neighflag != FULL) + Kokkos::Experimental::contribute(f, dup_f); + if (eflag_global) { eng_vdwl += ev_all.evdwl; eng_coul += ev_all.ecoul; @@ -958,11 +1016,15 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) if (vflag_fdotr) pair_virial_fdotr_compute(this); if (eflag_atom) { + if (neighflag != FULL) + Kokkos::Experimental::contribute(v_eatom, dup_eatom); k_eatom.template modify(); k_eatom.template sync(); } if (vflag_atom) { + if (neighflag != FULL) + Kokkos::Experimental::contribute(v_vatom, dup_vatom); k_vatom.template modify(); k_vatom.template sync(); } @@ -970,6 +1032,19 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) if (fixspecies_flag) FindBondSpecies(); + // free duplicated memory + if (neighflag != FULL) { + dup_f = decltype(f)(); + dup_dDeltap_self = decltype(d_dDeltap_self)(); + dup_total_bo = decltype(d_total_bo)(); + dup_CdDelta = decltype(d_CdDelta)(); + dup_Cdbo = decltype(d_Cdbo)(); + dup_Cdbopi = decltype(d_Cdbopi)(); + dup_Cdbopi2 = decltype(d_Cdbopi2)(); + dup_eatom = decltype(v_eatom)(); + dup_vatom = decltype(v_vatom)(); + } + copymode = 0; } @@ -1010,7 +1085,8 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeLJCoulomb, const int &ii, EV_FLOAT_REAX& ev) const { // The f array is atomic for Half/Thread neighbor style - Kokkos::View::value> > a_f = f; + //Kokkos::View::value> > a_f = f; + auto a_f = dup_f.access(); F_FLOAT powr_vdw, powgi_vdw, fn13, dfn13, exp1, exp2, etmp; F_FLOAT evdwl, fvdwl; @@ -1169,7 +1245,8 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeTabulatedLJCoulomb, const int &ii, EV_FLOAT_REAX& ev) const { // The f array is atomic for Half/Thread neighbor style - Kokkos::View::value> > a_f = f; + //Kokkos::View::value> > a_f = f; + auto a_f = dup_f.access(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -1548,8 +1625,10 @@ void PairReaxCKokkos::operator()(PairReaxBuildListsHalf, if (d_resize_bo() || d_resize_hb()) return; - Kokkos::View::value> > a_dDeltap_self = d_dDeltap_self; - Kokkos::View::value> > a_total_bo = d_total_bo; + //Kokkos::View::value> > a_dDeltap_self = d_dDeltap_self; + //Kokkos::View::value> > a_total_bo = d_total_bo; + auto a_dDeltap_self = dup_dDeltap_self.access(); + auto a_total_bo = dup_total_bo.access(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -2236,10 +2315,14 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeMulti2, const int &ii, EV_FLOAT_REAX& ev) const { - Kokkos::View::value> > a_CdDelta = d_CdDelta; - Kokkos::View::value> > a_Cdbo = d_Cdbo; - Kokkos::View::value> > a_Cdbopi = d_Cdbopi; - Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; + //Kokkos::View::value> > a_CdDelta = d_CdDelta; + //Kokkos::View::value> > a_Cdbo = d_Cdbo; + //Kokkos::View::value> > a_Cdbopi = d_Cdbopi; + //Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; + auto a_CdDelta = dup_CdDelta.access(); + auto a_Cdbo = dup_Cdbo.access(); + auto a_Cdbopi = dup_Cdbopi.access(); + auto a_Cdbopi2 = dup_Cdbopi2.access(); const int i = d_ilist[ii]; const int itype = type(i); @@ -2390,9 +2473,13 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeAngular, const int &ii, EV_FLOAT_REAX& ev) const { - Kokkos::View::value> > a_f = f; - Kokkos::View::value> > a_Cdbo = d_Cdbo; - Kokkos::View::value> > a_CdDelta = d_CdDelta; + //Kokkos::View::value> > a_f = f; + //Kokkos::View::value> > a_Cdbo = d_Cdbo; + //Kokkos::View::value> > a_CdDelta = d_CdDelta; + auto a_f = dup_f.access(); + auto a_Cdbo = dup_Cdbo.access(); + auto a_CdDelta = dup_CdDelta.access(); + const int i = d_ilist[ii]; const int itype = type(i); @@ -2699,9 +2786,12 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeTorsion, const int &ii, EV_FLOAT_REAX& ev) const { - Kokkos::View::value> > a_f = f; - Kokkos::View::value> > a_CdDelta = d_CdDelta; - Kokkos::View::value> > a_Cdbo = d_Cdbo; + //Kokkos::View::value> > a_f = f; + //Kokkos::View::value> > a_CdDelta = d_CdDelta; + //Kokkos::View::value> > a_Cdbo = d_Cdbo; + auto a_f = dup_f.access(); + auto a_CdDelta = dup_CdDelta.access(); + auto a_Cdbo = dup_Cdbo.access(); // in reaxc_torsion_angles: j = i, k = j, i = k; @@ -3071,7 +3161,8 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeHydrogen, const int &ii, EV_FLOAT_REAX& ev) const { - Kokkos::View::value> > a_f = f; + //Kokkos::View::value> > a_f = f; + auto a_f = dup_f.access(); int hblist[MAX_BONDS]; F_FLOAT theta, cos_theta, sin_xhz4, cos_xhz1, sin_theta2; @@ -3218,9 +3309,12 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxUpdateBond, const int &ii) const { - Kokkos::View::value> > a_Cdbo = d_Cdbo; - Kokkos::View::value> > a_Cdbopi = d_Cdbopi; - Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; + //Kokkos::View::value> > a_Cdbo = d_Cdbo; + //Kokkos::View::value> > a_Cdbopi = d_Cdbopi; + //Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; + auto a_Cdbo = dup_Cdbo.access(); + auto a_Cdbopi = dup_Cdbopi.access(); + auto a_Cdbopi2 = dup_Cdbopi2.access(); const int i = d_ilist[ii]; const tagint itag = tag(i); @@ -3267,8 +3361,10 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeBond1, const int &ii, EV_FLOAT_REAX& ev) const { - Kokkos::View::value> > a_f = f; - Kokkos::View::value> > a_CdDelta = d_CdDelta; + //Kokkos::View::value> > a_f = f; + //Kokkos::View::value> > a_CdDelta = d_CdDelta; + auto a_f = dup_f.access(); + auto a_CdDelta = dup_CdDelta.access(); F_FLOAT delij[3]; F_FLOAT p_be1, p_be2, De_s, De_p, De_pp, pow_BOs_be2, exp_be12, CEbo, ebond; @@ -3405,7 +3501,8 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeBond2, const int &ii, EV_FLOAT_REAX& ev) const { - Kokkos::View::value> > a_f = f; + //Kokkos::View::value> > a_f = f; + auto a_f = dup_f.access(); F_FLOAT delij[3], delik[3], deljk[3], tmpvec[3]; F_FLOAT dBOp_i[3], dBOp_k[3], dln_BOp_pi[3], dln_BOp_pi2[3]; @@ -3618,8 +3715,10 @@ void PairReaxCKokkos::ev_tally(EV_FLOAT_REAX &ev, const int &i, cons const int VFLAG = vflag_either; // The eatom and vatom arrays are atomic for Half/Thread neighbor style - Kokkos::View::value> > a_eatom = v_eatom; - Kokkos::View::value> > a_vatom = v_vatom; + //Kokkos::View::value> > a_eatom = v_eatom; + //Kokkos::View::value> > a_vatom = v_vatom; + auto a_eatom = dup_eatom.access(); + auto a_vatom = dup_vatom.access(); if (eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; @@ -3685,7 +3784,9 @@ void PairReaxCKokkos::e_tally(EV_FLOAT_REAX &ev, const int &i, const // The eatom array is atomic for Half/Thread neighbor style if (eflag_atom) { - Kokkos::View::value> > a_eatom = v_eatom; + //Kokkos::View::value> > a_eatom = v_eatom; + auto a_eatom = dup_eatom.access(); + const E_FLOAT epairhalf = 0.5 * epair; a_eatom[i] += epairhalf; a_eatom[j] += epairhalf; @@ -3701,7 +3802,8 @@ void PairReaxCKokkos::e_tally_single(EV_FLOAT_REAX &ev, const int &i const F_FLOAT &epair) const { // The eatom array is atomic for Half/Thread neighbor style - Kokkos::View::value> > a_eatom = v_eatom; + //Kokkos::View::value> > a_eatom = v_eatom; + auto a_eatom = dup_eatom.access(); a_eatom[i] += epair; } @@ -3734,7 +3836,9 @@ void PairReaxCKokkos::v_tally(EV_FLOAT_REAX &ev, const int &i, } if (vflag_atom) { - Kokkos::View::value> > a_vatom = v_vatom; + //Kokkos::View::value> > a_vatom = v_vatom; + auto a_vatom = dup_vatom.access(); + a_vatom(i,0) += v[0]; a_vatom(i,1) += v[1]; a_vatom(i,2) += v[2]; a_vatom(i,3) += v[3]; a_vatom(i,4) += v[4]; a_vatom(i,5) += v[5]; } @@ -3750,7 +3854,8 @@ void PairReaxCKokkos::v_tally3(EV_FLOAT_REAX &ev, const int &i, cons { // The eatom and vatom arrays are atomic for Half/Thread neighbor style - Kokkos::View::value> > a_vatom = v_vatom; + //Kokkos::View::value> > a_vatom = v_vatom; + auto a_vatom = dup_vatom.access(); F_FLOAT v[6]; @@ -3810,7 +3915,9 @@ void PairReaxCKokkos::v_tally4(EV_FLOAT_REAX &ev, const int &i, cons } if (vflag_atom) { - Kokkos::View::value> > a_vatom = v_vatom; + //Kokkos::View::value> > a_vatom = v_vatom; + auto a_vatom = dup_vatom.access(); + a_vatom(i,0) += 0.25 * v[0]; a_vatom(i,1) += 0.25 * v[1]; a_vatom(i,2) += 0.25 * v[2]; a_vatom(i,3) += 0.25 * v[3]; a_vatom(i,4) += 0.25 * v[4]; a_vatom(i,5) += 0.25 * v[5]; a_vatom(j,0) += 0.25 * v[0]; a_vatom(j,1) += 0.25 * v[1]; a_vatom(j,2) += 0.25 * v[2]; diff --git a/src/KOKKOS/pair_reaxc_kokkos.h b/src/KOKKOS/pair_reaxc_kokkos.h index 95fd7ced38..e25077f2cf 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.h +++ b/src/KOKKOS/pair_reaxc_kokkos.h @@ -24,6 +24,7 @@ PairStyle(reax/c/kk/host,PairReaxCKokkos) #define LMP_PAIR_REAXC_KOKKOS_H #include +#include #include "pair_kokkos.h" #include "pair_reaxc.h" #include "neigh_list_kokkos.h" @@ -411,6 +412,16 @@ class PairReaxCKokkos : public PairReaxC { typename AT::t_ffloat_2d_dl d_C1dbopi2, d_C2dbopi2, d_C3dbopi2, d_C4dbopi2; typename AT::t_ffloat_2d_dl d_Cdbo, d_Cdbopi, d_Cdbopi2, d_dDeltap_self; + Kokkos::Experimental::ReductionView dup_total_bo; + Kokkos::Experimental::ReductionView dup_CdDelta; + Kokkos::Experimental::ReductionView dup_eatom; + Kokkos::Experimental::ReductionView dup_f; + Kokkos::Experimental::ReductionView dup_vatom; + Kokkos::Experimental::ReductionView dup_dDeltap_self; + Kokkos::Experimental::ReductionView dup_Cdbo; + Kokkos::Experimental::ReductionView dup_Cdbopi; + Kokkos::Experimental::ReductionView dup_Cdbopi2; + typedef Kokkos::DualView tdual_ffloat_2d_n7; typedef typename tdual_ffloat_2d_n7::t_dev_const_randomread t_ffloat_2d_n7_randomread; typedef typename tdual_ffloat_2d_n7::t_host t_host_ffloat_2d_n7; From 41202c3627bb2ea5a4a8bf725b679484edc58ed5 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Tue, 28 Nov 2017 16:28:17 -0700 Subject: [PATCH 002/675] Turn atomics back on for some views in pair_reaxc_kokkos --- src/KOKKOS/pair_reaxc_kokkos.cpp | 80 ++++++++++++++++---------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index 79d9241ea4..8a1f1291e5 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -811,7 +811,7 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) if (neighflag == HALF) Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); else if (neighflag == HALFTHREAD) - Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); + Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); else //(neighflag == FULL) Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); @@ -838,9 +838,9 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) // allocate duplicated memory if (neighflag != FULL) { dup_CdDelta = Kokkos::Experimental::create_reduction_view<>(d_CdDelta); - dup_Cdbo = Kokkos::Experimental::create_reduction_view<>(d_Cdbo); - dup_Cdbopi = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi); - dup_Cdbopi2 = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi2); + //dup_Cdbo = Kokkos::Experimental::create_reduction_view<>(d_Cdbo); + //dup_Cdbopi = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi); + //dup_Cdbopi2 = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi2); } // reduction over duplicated memory @@ -851,7 +851,7 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) if (neighflag == HALF) { Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); } else if (neighflag == HALFTHREAD) { - Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); + Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); } Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); @@ -955,12 +955,12 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) Kokkos::Experimental::contribute(d_dDeltap_self, dup_dDeltap_self); // needed in ComputeBond2 Kokkos::Experimental::contribute(d_CdDelta, dup_CdDelta); // needed in ComputeBond2 - Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in UpdateBond, but also used in UpdateBond - Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in UpdateBond, but also used in UpdateBond - Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in UpdateBond, but also used in UpdateBond - dup_Cdbo.reset_except(d_Cdbo); - dup_Cdbopi.reset_except(d_Cdbopi); - dup_Cdbopi2.reset_except(d_Cdbopi2); + //Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in UpdateBond, but also used in UpdateBond + //Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in UpdateBond, but also used in UpdateBond + //Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in UpdateBond, but also used in UpdateBond + //dup_Cdbo.reset_except(d_Cdbo); + //dup_Cdbopi.reset_except(d_Cdbopi); + //dup_Cdbopi2.reset_except(d_Cdbopi2); } // Bond force @@ -968,11 +968,11 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); // reduction over duplicated memory - if (neighflag != FULL) { - Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 - Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 - Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 - } + //if (neighflag != FULL) { + // Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 + // Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 + // Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 + //} if (evflag) Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,ignum),*this,ev); else @@ -983,11 +983,11 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); // reduction over duplicated memory - if (neighflag != FULL) { - Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 - Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 - Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 - } + //if (neighflag != FULL) { + // Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 + // Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 + // Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 + //} if (evflag) Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,ignum),*this,ev); else @@ -1038,9 +1038,9 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) dup_dDeltap_self = decltype(d_dDeltap_self)(); dup_total_bo = decltype(d_total_bo)(); dup_CdDelta = decltype(d_CdDelta)(); - dup_Cdbo = decltype(d_Cdbo)(); - dup_Cdbopi = decltype(d_Cdbopi)(); - dup_Cdbopi2 = decltype(d_Cdbopi2)(); + //dup_Cdbo = decltype(d_Cdbo)(); + //dup_Cdbopi = decltype(d_Cdbopi)(); + //dup_Cdbopi2 = decltype(d_Cdbopi2)(); dup_eatom = decltype(v_eatom)(); dup_vatom = decltype(v_vatom)(); } @@ -2316,13 +2316,13 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeMulti2, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_CdDelta = d_CdDelta; - //Kokkos::View::value> > a_Cdbo = d_Cdbo; - //Kokkos::View::value> > a_Cdbopi = d_Cdbopi; - //Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; + Kokkos::View::value> > a_Cdbo = d_Cdbo; + Kokkos::View::value> > a_Cdbopi = d_Cdbopi; + Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; auto a_CdDelta = dup_CdDelta.access(); - auto a_Cdbo = dup_Cdbo.access(); - auto a_Cdbopi = dup_Cdbopi.access(); - auto a_Cdbopi2 = dup_Cdbopi2.access(); + //auto a_Cdbo = dup_Cdbo.access(); + //auto a_Cdbopi = dup_Cdbopi.access(); + //auto a_Cdbopi2 = dup_Cdbopi2.access(); const int i = d_ilist[ii]; const int itype = type(i); @@ -2474,10 +2474,10 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeAngular, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_f = f; - //Kokkos::View::value> > a_Cdbo = d_Cdbo; + Kokkos::View::value> > a_Cdbo = d_Cdbo; //Kokkos::View::value> > a_CdDelta = d_CdDelta; auto a_f = dup_f.access(); - auto a_Cdbo = dup_Cdbo.access(); + //auto a_Cdbo = dup_Cdbo.access(); auto a_CdDelta = dup_CdDelta.access(); @@ -2788,10 +2788,10 @@ void PairReaxCKokkos::operator()(PairReaxComputeTorsion::value> > a_f = f; //Kokkos::View::value> > a_CdDelta = d_CdDelta; - //Kokkos::View::value> > a_Cdbo = d_Cdbo; + Kokkos::View::value> > a_Cdbo = d_Cdbo; auto a_f = dup_f.access(); auto a_CdDelta = dup_CdDelta.access(); - auto a_Cdbo = dup_Cdbo.access(); + //auto a_Cdbo = dup_Cdbo.access(); // in reaxc_torsion_angles: j = i, k = j, i = k; @@ -3309,12 +3309,12 @@ template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxUpdateBond, const int &ii) const { - //Kokkos::View::value> > a_Cdbo = d_Cdbo; - //Kokkos::View::value> > a_Cdbopi = d_Cdbopi; - //Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; - auto a_Cdbo = dup_Cdbo.access(); - auto a_Cdbopi = dup_Cdbopi.access(); - auto a_Cdbopi2 = dup_Cdbopi2.access(); + Kokkos::View::value> > a_Cdbo = d_Cdbo; + Kokkos::View::value> > a_Cdbopi = d_Cdbopi; + Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; + //auto a_Cdbo = dup_Cdbo.access(); + //auto a_Cdbopi = dup_Cdbopi.access(); + //auto a_Cdbopi2 = dup_Cdbopi2.access(); const int i = d_ilist[ii]; const tagint itag = tag(i); From ee9ba99cde572c5146cfa8569cc3626219ff41dd Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 29 Nov 2017 11:11:20 -0700 Subject: [PATCH 003/675] Fix some bugs in pair_reaxc_kokkos --- src/KOKKOS/pair_reaxc_kokkos.cpp | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index 8a1f1291e5..6791690cf0 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -716,8 +716,6 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) dup_f = Kokkos::Experimental::create_reduction_view<>(f); dup_eatom = Kokkos::Experimental::create_reduction_view<>(v_eatom); dup_vatom = Kokkos::Experimental::create_reduction_view<>(v_vatom); - dup_dDeltap_self = Kokkos::Experimental::create_reduction_view<>(d_dDeltap_self); - dup_total_bo = Kokkos::Experimental::create_reduction_view<>(d_total_bo); } if (eflag_global) { @@ -789,6 +787,12 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) allocate_array(); } + // allocate duplicated memory + if (neighflag != FULL) { + dup_dDeltap_self = Kokkos::Experimental::create_reduction_view<>(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_reduction_view<>(d_total_bo); + } + // Neighbor lists for bond and hbond // try, resize if necessary @@ -811,7 +815,7 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) if (neighflag == HALF) Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); else if (neighflag == HALFTHREAD) - Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); + Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); else //(neighflag == FULL) Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); @@ -851,7 +855,7 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) if (neighflag == HALF) { Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); } else if (neighflag == HALFTHREAD) { - Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); + Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); } Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); @@ -1034,15 +1038,15 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) // free duplicated memory if (neighflag != FULL) { - dup_f = decltype(f)(); - dup_dDeltap_self = decltype(d_dDeltap_self)(); - dup_total_bo = decltype(d_total_bo)(); - dup_CdDelta = decltype(d_CdDelta)(); - //dup_Cdbo = decltype(d_Cdbo)(); - //dup_Cdbopi = decltype(d_Cdbopi)(); - //dup_Cdbopi2 = decltype(d_Cdbopi2)(); - dup_eatom = decltype(v_eatom)(); - dup_vatom = decltype(v_vatom)(); + dup_f = decltype(dup_f)(); + dup_dDeltap_self = decltype(dup_dDeltap_self)(); + dup_total_bo = decltype(dup_total_bo)(); + dup_CdDelta = decltype(dup_CdDelta)(); + //dup_Cdbo = decltype(dup_Cdbo)(); + //dup_Cdbopi = decltype(dup_Cdbopi)(); + //dup_Cdbopi2 = decltype(dup_Cdbopi2)(); + dup_eatom = decltype(dup_eatom)(); + dup_vatom = decltype(dup_vatom)(); } copymode = 0; From d2da1f5797faa0b752b7408822f361e565ea8d64 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 6 Dec 2017 09:41:29 -0700 Subject: [PATCH 004/675] Template out atomics for full neighbor list --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 6 ++-- src/KOKKOS/pair_reaxc_kokkos.cpp | 56 +++++++++++++++--------------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index 764b2f9191..e5f1901c1b 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -790,7 +790,7 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse13_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto a_o = red_o.access(); + auto a_o = red_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -842,7 +842,7 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse23_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto a_o = red_o.access(); + auto a_o = red_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -901,7 +901,7 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse33_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto a_o = red_o.access(); + auto a_o = red_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index 27cf18b02e..07d17408ca 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -1090,7 +1090,7 @@ void PairReaxCKokkos::operator()(PairReaxComputeLJCoulomb::value> > a_f = f; - auto a_f = dup_f.access(); + auto a_f = dup_f.template access::value>(); F_FLOAT powr_vdw, powgi_vdw, fn13, dfn13, exp1, exp2, etmp; F_FLOAT evdwl, fvdwl; @@ -1250,7 +1250,7 @@ void PairReaxCKokkos::operator()(PairReaxComputeTabulatedLJCoulomb::value> > a_f = f; - auto a_f = dup_f.access(); + auto a_f = dup_f.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -1633,8 +1633,8 @@ void PairReaxCKokkos::operator()(PairReaxBuildListsHalf, //Kokkos::View::value> > a_dDeltap_self = d_dDeltap_self; //Kokkos::View::value> > a_total_bo = d_total_bo; - auto a_dDeltap_self = dup_dDeltap_self.access(); - auto a_total_bo = dup_total_bo.access(); + auto a_dDeltap_self = dup_dDeltap_self.template access::value>(); + auto a_total_bo = dup_total_bo.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -2329,10 +2329,10 @@ void PairReaxCKokkos::operator()(PairReaxComputeMulti2::value> > a_Cdbo = d_Cdbo; Kokkos::View::value> > a_Cdbopi = d_Cdbopi; Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; - auto a_CdDelta = dup_CdDelta.access(); - //auto a_Cdbo = dup_Cdbo.access(); - //auto a_Cdbopi = dup_Cdbopi.access(); - //auto a_Cdbopi2 = dup_Cdbopi2.access(); + auto a_CdDelta = dup_CdDelta.template access::value>(); + //auto a_Cdbo = dup_Cdbo.template access::value>(); + //auto a_Cdbopi = dup_Cdbopi.template access::value>(); + //auto a_Cdbopi2 = dup_Cdbopi2.template access::value>(); const int i = d_ilist[ii]; const int itype = type(i); @@ -2486,9 +2486,9 @@ void PairReaxCKokkos::operator()(PairReaxComputeAngular::value> > a_f = f; Kokkos::View::value> > a_Cdbo = d_Cdbo; //Kokkos::View::value> > a_CdDelta = d_CdDelta; - auto a_f = dup_f.access(); - //auto a_Cdbo = dup_Cdbo.access(); - auto a_CdDelta = dup_CdDelta.access(); + auto a_f = dup_f.template access::value>(); + //auto a_Cdbo = dup_Cdbo.template access::value>(); + auto a_CdDelta = dup_CdDelta.template access::value>(); const int i = d_ilist[ii]; @@ -2799,9 +2799,9 @@ void PairReaxCKokkos::operator()(PairReaxComputeTorsion::value> > a_f = f; //Kokkos::View::value> > a_CdDelta = d_CdDelta; Kokkos::View::value> > a_Cdbo = d_Cdbo; - auto a_f = dup_f.access(); - auto a_CdDelta = dup_CdDelta.access(); - //auto a_Cdbo = dup_Cdbo.access(); + auto a_f = dup_f.template access::value>(); + auto a_CdDelta = dup_CdDelta.template access::value>(); + //auto a_Cdbo = dup_Cdbo.template access::value>(); // in reaxc_torsion_angles: j = i, k = j, i = k; @@ -3172,7 +3172,7 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeHydrogen, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_f = f; - auto a_f = dup_f.access(); + auto a_f = dup_f.template access::value>(); int hblist[MAX_BONDS]; F_FLOAT theta, cos_theta, sin_xhz4, cos_xhz1, sin_theta2; @@ -3322,9 +3322,9 @@ void PairReaxCKokkos::operator()(PairReaxUpdateBond, cons Kokkos::View::value> > a_Cdbo = d_Cdbo; Kokkos::View::value> > a_Cdbopi = d_Cdbopi; Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; - //auto a_Cdbo = dup_Cdbo.access(); - //auto a_Cdbopi = dup_Cdbopi.access(); - //auto a_Cdbopi2 = dup_Cdbopi2.access(); + //auto a_Cdbo = dup_Cdbo.template access::value>(); + //auto a_Cdbopi = dup_Cdbopi.template access::value>(); + //auto a_Cdbopi2 = dup_Cdbopi2.template access::value>(); const int i = d_ilist[ii]; const tagint itag = tag(i); @@ -3373,8 +3373,8 @@ void PairReaxCKokkos::operator()(PairReaxComputeBond1::value> > a_f = f; //Kokkos::View::value> > a_CdDelta = d_CdDelta; - auto a_f = dup_f.access(); - auto a_CdDelta = dup_CdDelta.access(); + auto a_f = dup_f.template access::value>(); + auto a_CdDelta = dup_CdDelta.template access::value>(); F_FLOAT delij[3]; F_FLOAT p_be1, p_be2, De_s, De_p, De_pp, pow_BOs_be2, exp_be12, CEbo, ebond; @@ -3512,7 +3512,7 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeBond2, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_f = f; - auto a_f = dup_f.access(); + auto a_f = dup_f.template access::value>(); F_FLOAT delij[3], delik[3], deljk[3], tmpvec[3]; F_FLOAT dBOp_i[3], dBOp_k[3], dln_BOp_pi[3], dln_BOp_pi2[3]; @@ -3727,8 +3727,8 @@ void PairReaxCKokkos::ev_tally(EV_FLOAT_REAX &ev, const int &i, cons // The eatom and vatom arrays are atomic for Half/Thread neighbor style //Kokkos::View::value> > a_eatom = v_eatom; //Kokkos::View::value> > a_vatom = v_vatom; - auto a_eatom = dup_eatom.access(); - auto a_vatom = dup_vatom.access(); + auto a_eatom = dup_eatom.template access::value>(); + auto a_vatom = dup_vatom.template access::value>(); if (eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; @@ -3795,7 +3795,7 @@ void PairReaxCKokkos::e_tally(EV_FLOAT_REAX &ev, const int &i, const if (eflag_atom) { //Kokkos::View::value> > a_eatom = v_eatom; - auto a_eatom = dup_eatom.access(); + auto a_eatom = dup_eatom.template access::value>(); const E_FLOAT epairhalf = 0.5 * epair; a_eatom[i] += epairhalf; @@ -3813,7 +3813,7 @@ void PairReaxCKokkos::e_tally_single(EV_FLOAT_REAX &ev, const int &i { // The eatom array is atomic for Half/Thread neighbor style //Kokkos::View::value> > a_eatom = v_eatom; - auto a_eatom = dup_eatom.access(); + auto a_eatom = dup_eatom.template access::value>(); a_eatom[i] += epair; } @@ -3847,7 +3847,7 @@ void PairReaxCKokkos::v_tally(EV_FLOAT_REAX &ev, const int &i, if (vflag_atom) { //Kokkos::View::value> > a_vatom = v_vatom; - auto a_vatom = dup_vatom.access(); + auto a_vatom = dup_vatom.template access::value>(); a_vatom(i,0) += v[0]; a_vatom(i,1) += v[1]; a_vatom(i,2) += v[2]; a_vatom(i,3) += v[3]; a_vatom(i,4) += v[4]; a_vatom(i,5) += v[5]; @@ -3865,7 +3865,7 @@ void PairReaxCKokkos::v_tally3(EV_FLOAT_REAX &ev, const int &i, cons // The eatom and vatom arrays are atomic for Half/Thread neighbor style //Kokkos::View::value> > a_vatom = v_vatom; - auto a_vatom = dup_vatom.access(); + auto a_vatom = dup_vatom.template access::value>(); F_FLOAT v[6]; @@ -3926,7 +3926,7 @@ void PairReaxCKokkos::v_tally4(EV_FLOAT_REAX &ev, const int &i, cons if (vflag_atom) { //Kokkos::View::value> > a_vatom = v_vatom; - auto a_vatom = dup_vatom.access(); + auto a_vatom = dup_vatom.template access::value>(); a_vatom(i,0) += 0.25 * v[0]; a_vatom(i,1) += 0.25 * v[1]; a_vatom(i,2) += 0.25 * v[2]; a_vatom(i,3) += 0.25 * v[3]; a_vatom(i,4) += 0.25 * v[4]; a_vatom(i,5) += 0.25 * v[5]; From 8a9a7f4e504ef6b59536cba3e48297d29222ea14 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 6 Dec 2017 14:06:35 -0700 Subject: [PATCH 005/675] Fix issues --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 10 +-- src/KOKKOS/pair_kokkos.h | 4 +- src/KOKKOS/pair_reaxc_kokkos.cpp | 98 ++++++++++++------------------ 3 files changed, 47 insertions(+), 65 deletions(-) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index e5f1901c1b..638837e265 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -255,7 +255,7 @@ void FixQEqReaxKokkos::pre_force(int vflag) k_t.template sync(); if (neighflag != FULL) - red_o = Kokkos::Experimental::create_reduction_view<> (k_o.d_view); // allocate duplicated memory + red_o = Kokkos::Experimental::create_reduction_view<> (d_o); // allocate duplicated memory // 1st cg solve over b_s, s cg_solve1(); @@ -502,7 +502,7 @@ void FixQEqReaxKokkos::cg_solve1() Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); FixQEqReaxKokkosSparse13Functor sparse13_functor(this); Kokkos::parallel_for(inum,sparse13_functor); - Kokkos::Experimental::contribute(k_o.d_view, red_o); + Kokkos::Experimental::contribute(d_o, red_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } @@ -553,7 +553,7 @@ void FixQEqReaxKokkos::cg_solve1() red_o.reset_except(d_o); FixQEqReaxKokkosSparse23Functor sparse23_functor(this); Kokkos::parallel_for(inum,sparse23_functor); - Kokkos::Experimental::contribute(k_o.d_view, red_o); + Kokkos::Experimental::contribute(d_o, red_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } @@ -626,7 +626,7 @@ void FixQEqReaxKokkos::cg_solve2() red_o.reset_except(d_o); FixQEqReaxKokkosSparse33Functor sparse33_functor(this); Kokkos::parallel_for(inum,sparse33_functor); - Kokkos::Experimental::contribute(k_o.d_view, red_o); + Kokkos::Experimental::contribute(d_o, red_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } @@ -677,7 +677,7 @@ void FixQEqReaxKokkos::cg_solve2() red_o.reset_except(d_o); FixQEqReaxKokkosSparse23Functor sparse23_functor(this); Kokkos::parallel_for(inum,sparse23_functor); - Kokkos::Experimental::contribute(k_o.d_view, red_o); + Kokkos::Experimental::contribute(d_o, red_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index c8e926a721..04c56d0aa7 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -19,10 +19,10 @@ #define LMP_PAIR_KOKKOS_H #include "Kokkos_Macros.hpp" -#include "Kokkos_Vectorization.hpp" -#include "Kokkos_ReductionView.hpp" #include "pair.h" #include "neigh_list_kokkos.h" +#include "Kokkos_Vectorization.hpp" +#include "Kokkos_ReductionView.hpp" namespace LAMMPS_NS { diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index 07d17408ca..7a45c068be 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -712,11 +712,9 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) d_ilist = k_list->d_ilist; // allocate duplicated memory - if (neighflag != FULL) { - dup_f = Kokkos::Experimental::create_reduction_view<>(f); - dup_eatom = Kokkos::Experimental::create_reduction_view<>(v_eatom); - dup_vatom = Kokkos::Experimental::create_reduction_view<>(v_vatom); - } + dup_f = Kokkos::Experimental::create_reduction_view<>(f); + dup_eatom = Kokkos::Experimental::create_reduction_view<>(v_eatom); + dup_vatom = Kokkos::Experimental::create_reduction_view<>(v_vatom); if (eflag_global) { for (int i = 0; i < 14; i++) @@ -788,10 +786,8 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) } // allocate duplicated memory - if (neighflag != FULL) { - dup_dDeltap_self = Kokkos::Experimental::create_reduction_view<>(d_dDeltap_self); - dup_total_bo = Kokkos::Experimental::create_reduction_view<>(d_total_bo); - } + dup_dDeltap_self = Kokkos::Experimental::create_reduction_view<>(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_reduction_view<>(d_total_bo); // Neighbor lists for bond and hbond @@ -832,24 +828,19 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) resize = resize_bo || resize_hb; if (resize) { allocate_array(); - if (neighflag != FULL) { - dup_dDeltap_self = Kokkos::Experimental::create_reduction_view<>(d_dDeltap_self); - dup_total_bo = Kokkos::Experimental::create_reduction_view<>(d_total_bo); - } + dup_dDeltap_self = Kokkos::Experimental::create_reduction_view<>(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_reduction_view<>(d_total_bo); } } // allocate duplicated memory - if (neighflag != FULL) { - dup_CdDelta = Kokkos::Experimental::create_reduction_view<>(d_CdDelta); - //dup_Cdbo = Kokkos::Experimental::create_reduction_view<>(d_Cdbo); - //dup_Cdbopi = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi); - //dup_Cdbopi2 = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi2); - } + dup_CdDelta = Kokkos::Experimental::create_reduction_view<>(d_CdDelta); + //dup_Cdbo = Kokkos::Experimental::create_reduction_view<>(d_Cdbo); + //dup_Cdbopi = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi); + //dup_Cdbopi2 = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi2); // reduction over duplicated memory - if (neighflag != FULL) - Kokkos::Experimental::contribute(d_total_bo, dup_total_bo); // needed in BondOrder1 + Kokkos::Experimental::contribute(d_total_bo, dup_total_bo); // needed in BondOrder1 // Bond order if (neighflag == HALF) { @@ -955,28 +946,25 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) ev_all.evdwl += ev.ereax[8]; // reduction over duplicated memory - if (neighflag != FULL) { - Kokkos::Experimental::contribute(d_dDeltap_self, dup_dDeltap_self); // needed in ComputeBond2 - Kokkos::Experimental::contribute(d_CdDelta, dup_CdDelta); // needed in ComputeBond2 + Kokkos::Experimental::contribute(d_dDeltap_self, dup_dDeltap_self); // needed in ComputeBond2 + Kokkos::Experimental::contribute(d_CdDelta, dup_CdDelta); // needed in ComputeBond2 - //Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in UpdateBond, but also used in UpdateBond - //Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in UpdateBond, but also used in UpdateBond - //Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in UpdateBond, but also used in UpdateBond - //dup_Cdbo.reset_except(d_Cdbo); - //dup_Cdbopi.reset_except(d_Cdbopi); - //dup_Cdbopi2.reset_except(d_Cdbopi2); - } + //Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in UpdateBond, but also used in UpdateBond + //Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in UpdateBond, but also used in UpdateBond + //Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in UpdateBond, but also used in UpdateBond + //dup_Cdbo.reset_except(d_Cdbo); + //dup_Cdbopi.reset_except(d_Cdbopi); + //dup_Cdbopi2.reset_except(d_Cdbopi2); // Bond force if (neighflag == HALF) { Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); // reduction over duplicated memory - //if (neighflag != FULL) { - // Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 - // Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 - // Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 - //} + //Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 + //Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 + //Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 + if (evflag) Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,ignum),*this,ev); else @@ -987,11 +975,10 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); // reduction over duplicated memory - //if (neighflag != FULL) { - // Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 - // Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 - // Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 - //} + //Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 + //Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 + //Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 + if (evflag) Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,ignum),*this,ev); else @@ -1001,8 +988,7 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) } // reduction over duplicated memory - if (neighflag != FULL) - Kokkos::Experimental::contribute(f, dup_f); + Kokkos::Experimental::contribute(f, dup_f); if (eflag_global) { eng_vdwl += ev_all.evdwl; @@ -1020,15 +1006,13 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) if (vflag_fdotr) pair_virial_fdotr_compute(this); if (eflag_atom) { - if (neighflag != FULL) - Kokkos::Experimental::contribute(v_eatom, dup_eatom); + Kokkos::Experimental::contribute(v_eatom, dup_eatom); k_eatom.template modify(); k_eatom.template sync(); } if (vflag_atom) { - if (neighflag != FULL) - Kokkos::Experimental::contribute(v_vatom, dup_vatom); + Kokkos::Experimental::contribute(v_vatom, dup_vatom); k_vatom.template modify(); k_vatom.template sync(); } @@ -1037,17 +1021,15 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) FindBondSpecies(); // free duplicated memory - if (neighflag != FULL) { - dup_f = decltype(dup_f)(); - dup_dDeltap_self = decltype(dup_dDeltap_self)(); - dup_total_bo = decltype(dup_total_bo)(); - dup_CdDelta = decltype(dup_CdDelta)(); - //dup_Cdbo = decltype(dup_Cdbo)(); - //dup_Cdbopi = decltype(dup_Cdbopi)(); - //dup_Cdbopi2 = decltype(dup_Cdbopi2)(); - dup_eatom = decltype(dup_eatom)(); - dup_vatom = decltype(dup_vatom)(); - } + dup_f = decltype(dup_f)(); + dup_dDeltap_self = decltype(dup_dDeltap_self)(); + dup_total_bo = decltype(dup_total_bo)(); + dup_CdDelta = decltype(dup_CdDelta)(); + //dup_Cdbo = decltype(dup_Cdbo)(); + //dup_Cdbopi = decltype(dup_Cdbopi)(); + //dup_Cdbopi2 = decltype(dup_Cdbopi2)(); + dup_eatom = decltype(dup_eatom)(); + dup_vatom = decltype(dup_vatom)(); copymode = 0; } From a5790ef68f564b3b6fc3c120fd4e530213944ca1 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 11 Dec 2017 08:38:54 -0700 Subject: [PATCH 006/675] Rename to ScatterView --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 2 +- src/KOKKOS/fix_qeq_reax_kokkos.h | 4 ++-- src/KOKKOS/pair_kokkos.h | 6 +++--- src/KOKKOS/pair_reaxc_kokkos.cpp | 22 +++++++++++----------- src/KOKKOS/pair_reaxc_kokkos.h | 20 ++++++++++---------- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index d8723339ad..aefc2ea130 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -255,7 +255,7 @@ void FixQEqReaxKokkos::pre_force(int vflag) k_t.template sync(); if (neighflag != FULL) - red_o = Kokkos::Experimental::create_reduction_view<> (d_o); // allocate duplicated memory + red_o = Kokkos::Experimental::create_scatter_view<> (d_o); // allocate duplicated memory // 1st cg solve over b_s, s cg_solve1(); diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.h b/src/KOKKOS/fix_qeq_reax_kokkos.h index dd7b4073c2..64f81b9141 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.h +++ b/src/KOKKOS/fix_qeq_reax_kokkos.h @@ -22,7 +22,7 @@ FixStyle(qeq/reax/kk/host,FixQEqReaxKokkos) #ifndef LMP_FIX_QEQ_REAX_KOKKOS_H #define LMP_FIX_QEQ_REAX_KOKKOS_H -#include +#include #include "fix_qeq_reax.h" #include "kokkos_type.h" #include "neigh_list.h" @@ -193,7 +193,7 @@ class FixQEqReaxKokkos : public FixQEqReax { HAT::t_ffloat_2d h_s_hist, h_t_hist; typename AT::t_ffloat_2d_randomread r_s_hist, r_t_hist; - Kokkos::Experimental::ReductionView red_o; + Kokkos::Experimental::ScatterView red_o; void init_shielding_k(); void init_hist(); diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index 3243af26e7..a409035dc6 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -23,7 +23,7 @@ #include "neighbor_kokkos.h" #include "neigh_list_kokkos.h" #include "Kokkos_Vectorization.hpp" -#include "Kokkos_ReductionView.hpp" +#include "Kokkos_ScatterView.hpp" namespace LAMMPS_NS { @@ -64,12 +64,12 @@ struct AtomicF { // Do atomic trait when running HALFTHREAD neighbor list style template struct AtomicDup { - enum {value = Kokkos::Experimental::ReductionNonAtomic}; + enum {value = Kokkos::Experimental::ScatterNonAtomic}; }; template<> struct AtomicDup { - enum {value = Kokkos::Experimental::ReductionAtomic}; + enum {value = Kokkos::Experimental::ScatterAtomic}; }; //Specialisation for Neighborlist types Half, HalfThread, Full diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index c3197e222f..3a3faefc24 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -713,9 +713,9 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) d_ilist = k_list->d_ilist; // allocate duplicated memory - dup_f = Kokkos::Experimental::create_reduction_view<>(f); - dup_eatom = Kokkos::Experimental::create_reduction_view<>(v_eatom); - dup_vatom = Kokkos::Experimental::create_reduction_view<>(v_vatom); + dup_f = Kokkos::Experimental::create_scatter_view<>(f); + dup_eatom = Kokkos::Experimental::create_scatter_view<>(v_eatom); + dup_vatom = Kokkos::Experimental::create_scatter_view<>(v_vatom); if (eflag_global) { for (int i = 0; i < 14; i++) @@ -787,8 +787,8 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) } // allocate duplicated memory - dup_dDeltap_self = Kokkos::Experimental::create_reduction_view<>(d_dDeltap_self); - dup_total_bo = Kokkos::Experimental::create_reduction_view<>(d_total_bo); + dup_dDeltap_self = Kokkos::Experimental::create_scatter_view<>(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_scatter_view<>(d_total_bo); // Neighbor lists for bond and hbond @@ -829,16 +829,16 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) resize = resize_bo || resize_hb; if (resize) { allocate_array(); - dup_dDeltap_self = Kokkos::Experimental::create_reduction_view<>(d_dDeltap_self); - dup_total_bo = Kokkos::Experimental::create_reduction_view<>(d_total_bo); + dup_dDeltap_self = Kokkos::Experimental::create_scatter_view<>(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_scatter_view<>(d_total_bo); } } // allocate duplicated memory - dup_CdDelta = Kokkos::Experimental::create_reduction_view<>(d_CdDelta); - //dup_Cdbo = Kokkos::Experimental::create_reduction_view<>(d_Cdbo); - //dup_Cdbopi = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi); - //dup_Cdbopi2 = Kokkos::Experimental::create_reduction_view<>(d_Cdbopi2); + dup_CdDelta = Kokkos::Experimental::create_scatter_view<>(d_CdDelta); + //dup_Cdbo = Kokkos::Experimental::create_scatter_view<>(d_Cdbo); + //dup_Cdbopi = Kokkos::Experimental::create_scatter_view<>(d_Cdbopi); + //dup_Cdbopi2 = Kokkos::Experimental::create_scatter_view<>(d_Cdbopi2); // reduction over duplicated memory Kokkos::Experimental::contribute(d_total_bo, dup_total_bo); // needed in BondOrder1 diff --git a/src/KOKKOS/pair_reaxc_kokkos.h b/src/KOKKOS/pair_reaxc_kokkos.h index e25077f2cf..70aef2d608 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.h +++ b/src/KOKKOS/pair_reaxc_kokkos.h @@ -24,7 +24,7 @@ PairStyle(reax/c/kk/host,PairReaxCKokkos) #define LMP_PAIR_REAXC_KOKKOS_H #include -#include +#include #include "pair_kokkos.h" #include "pair_reaxc.h" #include "neigh_list_kokkos.h" @@ -412,15 +412,15 @@ class PairReaxCKokkos : public PairReaxC { typename AT::t_ffloat_2d_dl d_C1dbopi2, d_C2dbopi2, d_C3dbopi2, d_C4dbopi2; typename AT::t_ffloat_2d_dl d_Cdbo, d_Cdbopi, d_Cdbopi2, d_dDeltap_self; - Kokkos::Experimental::ReductionView dup_total_bo; - Kokkos::Experimental::ReductionView dup_CdDelta; - Kokkos::Experimental::ReductionView dup_eatom; - Kokkos::Experimental::ReductionView dup_f; - Kokkos::Experimental::ReductionView dup_vatom; - Kokkos::Experimental::ReductionView dup_dDeltap_self; - Kokkos::Experimental::ReductionView dup_Cdbo; - Kokkos::Experimental::ReductionView dup_Cdbopi; - Kokkos::Experimental::ReductionView dup_Cdbopi2; + Kokkos::Experimental::ScatterView dup_total_bo; + Kokkos::Experimental::ScatterView dup_CdDelta; + Kokkos::Experimental::ScatterView dup_eatom; + Kokkos::Experimental::ScatterView dup_f; + Kokkos::Experimental::ScatterView dup_vatom; + Kokkos::Experimental::ScatterView dup_dDeltap_self; + Kokkos::Experimental::ScatterView dup_Cdbo; + Kokkos::Experimental::ScatterView dup_Cdbopi; + Kokkos::Experimental::ScatterView dup_Cdbopi2; typedef Kokkos::DualView tdual_ffloat_2d_n7; typedef typename tdual_ffloat_2d_n7::t_dev_const_randomread t_ffloat_2d_n7_randomread; From 2b99a26b47781bd59bdff63a10f0be0e9d7ad0dc Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 18 Dec 2017 13:57:56 -0700 Subject: [PATCH 007/675] Fix issue in fix_qeq_reax_kokkos, can't call child function from base constructor --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index b251c634b6..ca14159b55 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -64,6 +64,10 @@ FixQEqReaxKokkos(LAMMPS *lmp, int narg, char **arg) : nmax = nmax = m_cap = 0; allocated_flag = 0; nprev = 4; + + memory->destroy(s_hist); + memory->destroy(t_hist); + grow_arrays(atom->nmax); } /* ---------------------------------------------------------------------- */ From 5886cadeef893d114570e50cd33b51f9b7f82198 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 18 Dec 2017 14:09:39 -0700 Subject: [PATCH 008/675] Fix compiler warnings in atom_vec_hybrid_kokkos --- src/KOKKOS/atom_vec_hybrid_kokkos.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/KOKKOS/atom_vec_hybrid_kokkos.cpp b/src/KOKKOS/atom_vec_hybrid_kokkos.cpp index b5aadb18d6..67dce07b80 100644 --- a/src/KOKKOS/atom_vec_hybrid_kokkos.cpp +++ b/src/KOKKOS/atom_vec_hybrid_kokkos.cpp @@ -255,6 +255,7 @@ int AtomVecHybridKokkos::pack_comm_kokkos(const int &n, const DAT::tdual_int_2d const int &pbc_flag, const int pbc[]) { error->all(FLERR,"AtomVecHybridKokkos doesn't yet support threaded comm"); + return 0; } void AtomVecHybridKokkos::unpack_comm_kokkos(const int &n, const int &nfirst, const DAT::tdual_xfloat_2d &buf) @@ -266,12 +267,14 @@ int AtomVecHybridKokkos::pack_comm_self(const int &n, const DAT::tdual_int_2d &l const int &pbc_flag, const int pbc[]) { error->all(FLERR,"AtomVecHybridKokkos doesn't yet support threaded comm"); + return 0; } int AtomVecHybridKokkos::pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist, DAT::tdual_xfloat_2d buf,int iswap, int pbc_flag, int *pbc, ExecutionSpace space) { error->all(FLERR,"AtomVecHybridKokkos doesn't yet support threaded comm"); + return 0; } void AtomVecHybridKokkos::unpack_border_kokkos(const int &n, const int &nfirst, const DAT::tdual_xfloat_2d &buf, @@ -286,12 +289,14 @@ int AtomVecHybridKokkos::pack_exchange_kokkos(const int &nsend,DAT::tdual_xfloat X_FLOAT lo, X_FLOAT hi) { error->all(FLERR,"AtomVecHybridKokkos doesn't yet support threaded comm"); + return 0; } int AtomVecHybridKokkos::unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf, int nrecv, int nlocal, int dim, X_FLOAT lo, X_FLOAT hi, ExecutionSpace space) { error->all(FLERR,"AtomVecHybridKokkos doesn't yet support threaded comm"); + return 0; } /* ---------------------------------------------------------------------- */ From dbbfacc5985b1b8bb19c126bc9d997a7f92adc99 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 20 Dec 2017 16:13:28 -0700 Subject: [PATCH 009/675] Fix atomic issues --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 18 +++++----- src/KOKKOS/pair_kokkos.h | 6 ++-- src/KOKKOS/pair_reaxc_kokkos.cpp | 56 +++++++++++++++--------------- 3 files changed, 41 insertions(+), 39 deletions(-) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index 0f578707a4..d7632fe793 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -777,7 +777,7 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse13_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto a_o = red_o.template access::value>(); + auto a_o = red_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -785,9 +785,9 @@ void FixQEqReaxKokkos::sparse13_item(int ii) const for(int jj = d_firstnbr[i]; jj < d_firstnbr[i] + d_numnbrs[i]; jj++) { const int j = d_jlist(jj); tmp += d_val(jj) * d_s[j]; - a_o(j) += d_val(jj) * d_s[i]; + a_o[j] += d_val(jj) * d_s[i]; } - a_o(i) += tmp; + a_o[i] += tmp; } } @@ -829,7 +829,7 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse23_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto a_o = red_o.template access::value>(); + auto a_o = red_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -837,9 +837,9 @@ void FixQEqReaxKokkos::sparse23_item(int ii) const for(int jj = d_firstnbr[i]; jj < d_firstnbr[i] + d_numnbrs[i]; jj++) { const int j = d_jlist(jj); tmp += d_val(jj) * d_d[j]; - a_o(j) += d_val(jj) * d_d[i]; + a_o[j] += d_val(jj) * d_d[i]; } - a_o(i) += tmp; + a_o[i] += tmp; } } @@ -888,7 +888,7 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse33_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto a_o = red_o.template access::value>(); + auto a_o = red_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -896,9 +896,9 @@ void FixQEqReaxKokkos::sparse33_item(int ii) const for(int jj = d_firstnbr[i]; jj < d_firstnbr[i] + d_numnbrs[i]; jj++) { const int j = d_jlist(jj); tmp += d_val(jj) * d_t[j]; - a_o(j) += d_val(jj) * d_t[i]; + a_o[j] += d_val(jj) * d_t[i]; } - a_o(i) += tmp; + a_o[i] += tmp; } } diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index a409035dc6..445583c455 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -62,15 +62,17 @@ struct AtomicF { // Determine memory traits for force array // Do atomic trait when running HALFTHREAD neighbor list style -template +template struct AtomicDup { enum {value = Kokkos::Experimental::ScatterNonAtomic}; }; +#ifdef KOKKOS_ENABLE_CUDA template<> -struct AtomicDup { +struct AtomicDup { enum {value = Kokkos::Experimental::ScatterAtomic}; }; +#endif //Specialisation for Neighborlist types Half, HalfThread, Full template diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index 3a3faefc24..1cbe8933e9 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -1073,7 +1073,7 @@ void PairReaxCKokkos::operator()(PairReaxComputeLJCoulomb::value> > a_f = f; - auto a_f = dup_f.template access::value>(); + auto a_f = dup_f.template access::value>(); F_FLOAT powr_vdw, powgi_vdw, fn13, dfn13, exp1, exp2, etmp; F_FLOAT evdwl, fvdwl; @@ -1233,7 +1233,7 @@ void PairReaxCKokkos::operator()(PairReaxComputeTabulatedLJCoulomb::value> > a_f = f; - auto a_f = dup_f.template access::value>(); + auto a_f = dup_f.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -1616,8 +1616,8 @@ void PairReaxCKokkos::operator()(PairReaxBuildListsHalf, //Kokkos::View::value> > a_dDeltap_self = d_dDeltap_self; //Kokkos::View::value> > a_total_bo = d_total_bo; - auto a_dDeltap_self = dup_dDeltap_self.template access::value>(); - auto a_total_bo = dup_total_bo.template access::value>(); + auto a_dDeltap_self = dup_dDeltap_self.template access::value>(); + auto a_total_bo = dup_total_bo.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -2312,10 +2312,10 @@ void PairReaxCKokkos::operator()(PairReaxComputeMulti2::value> > a_Cdbo = d_Cdbo; Kokkos::View::value> > a_Cdbopi = d_Cdbopi; Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; - auto a_CdDelta = dup_CdDelta.template access::value>(); - //auto a_Cdbo = dup_Cdbo.template access::value>(); - //auto a_Cdbopi = dup_Cdbopi.template access::value>(); - //auto a_Cdbopi2 = dup_Cdbopi2.template access::value>(); + auto a_CdDelta = dup_CdDelta.template access::value>(); + //auto a_Cdbo = dup_Cdbo.template access::value>(); + //auto a_Cdbopi = dup_Cdbopi.template access::value>(); + //auto a_Cdbopi2 = dup_Cdbopi2.template access::value>(); const int i = d_ilist[ii]; const int itype = type(i); @@ -2469,9 +2469,9 @@ void PairReaxCKokkos::operator()(PairReaxComputeAngular::value> > a_f = f; Kokkos::View::value> > a_Cdbo = d_Cdbo; //Kokkos::View::value> > a_CdDelta = d_CdDelta; - auto a_f = dup_f.template access::value>(); - //auto a_Cdbo = dup_Cdbo.template access::value>(); - auto a_CdDelta = dup_CdDelta.template access::value>(); + auto a_f = dup_f.template access::value>(); + //auto a_Cdbo = dup_Cdbo.template access::value>(); + auto a_CdDelta = dup_CdDelta.template access::value>(); const int i = d_ilist[ii]; @@ -2782,9 +2782,9 @@ void PairReaxCKokkos::operator()(PairReaxComputeTorsion::value> > a_f = f; //Kokkos::View::value> > a_CdDelta = d_CdDelta; Kokkos::View::value> > a_Cdbo = d_Cdbo; - auto a_f = dup_f.template access::value>(); - auto a_CdDelta = dup_CdDelta.template access::value>(); - //auto a_Cdbo = dup_Cdbo.template access::value>(); + auto a_f = dup_f.template access::value>(); + auto a_CdDelta = dup_CdDelta.template access::value>(); + //auto a_Cdbo = dup_Cdbo.template access::value>(); // in reaxc_torsion_angles: j = i, k = j, i = k; @@ -3155,7 +3155,7 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeHydrogen, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_f = f; - auto a_f = dup_f.template access::value>(); + auto a_f = dup_f.template access::value>(); int hblist[MAX_BONDS]; F_FLOAT theta, cos_theta, sin_xhz4, cos_xhz1, sin_theta2; @@ -3305,9 +3305,9 @@ void PairReaxCKokkos::operator()(PairReaxUpdateBond, cons Kokkos::View::value> > a_Cdbo = d_Cdbo; Kokkos::View::value> > a_Cdbopi = d_Cdbopi; Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; - //auto a_Cdbo = dup_Cdbo.template access::value>(); - //auto a_Cdbopi = dup_Cdbopi.template access::value>(); - //auto a_Cdbopi2 = dup_Cdbopi2.template access::value>(); + //auto a_Cdbo = dup_Cdbo.template access::value>(); + //auto a_Cdbopi = dup_Cdbopi.template access::value>(); + //auto a_Cdbopi2 = dup_Cdbopi2.template access::value>(); const int i = d_ilist[ii]; const tagint itag = tag(i); @@ -3356,8 +3356,8 @@ void PairReaxCKokkos::operator()(PairReaxComputeBond1::value> > a_f = f; //Kokkos::View::value> > a_CdDelta = d_CdDelta; - auto a_f = dup_f.template access::value>(); - auto a_CdDelta = dup_CdDelta.template access::value>(); + auto a_f = dup_f.template access::value>(); + auto a_CdDelta = dup_CdDelta.template access::value>(); F_FLOAT delij[3]; F_FLOAT p_be1, p_be2, De_s, De_p, De_pp, pow_BOs_be2, exp_be12, CEbo, ebond; @@ -3495,7 +3495,7 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeBond2, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_f = f; - auto a_f = dup_f.template access::value>(); + auto a_f = dup_f.template access::value>(); F_FLOAT delij[3], delik[3], deljk[3], tmpvec[3]; F_FLOAT dBOp_i[3], dBOp_k[3], dln_BOp_pi[3], dln_BOp_pi2[3]; @@ -3710,8 +3710,8 @@ void PairReaxCKokkos::ev_tally(EV_FLOAT_REAX &ev, const int &i, cons // The eatom and vatom arrays are atomic for Half/Thread neighbor style //Kokkos::View::value> > a_eatom = v_eatom; //Kokkos::View::value> > a_vatom = v_vatom; - auto a_eatom = dup_eatom.template access::value>(); - auto a_vatom = dup_vatom.template access::value>(); + auto a_eatom = dup_eatom.template access::value>(); + auto a_vatom = dup_vatom.template access::value>(); if (eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; @@ -3778,7 +3778,7 @@ void PairReaxCKokkos::e_tally(EV_FLOAT_REAX &ev, const int &i, const if (eflag_atom) { //Kokkos::View::value> > a_eatom = v_eatom; - auto a_eatom = dup_eatom.template access::value>(); + auto a_eatom = dup_eatom.template access::value>(); const E_FLOAT epairhalf = 0.5 * epair; a_eatom[i] += epairhalf; @@ -3796,7 +3796,7 @@ void PairReaxCKokkos::e_tally_single(EV_FLOAT_REAX &ev, const int &i { // The eatom array is atomic for Half/Thread neighbor style //Kokkos::View::value> > a_eatom = v_eatom; - auto a_eatom = dup_eatom.template access::value>(); + auto a_eatom = dup_eatom.template access::value>(); a_eatom[i] += epair; } @@ -3830,7 +3830,7 @@ void PairReaxCKokkos::v_tally(EV_FLOAT_REAX &ev, const int &i, if (vflag_atom) { //Kokkos::View::value> > a_vatom = v_vatom; - auto a_vatom = dup_vatom.template access::value>(); + auto a_vatom = dup_vatom.template access::value>(); a_vatom(i,0) += v[0]; a_vatom(i,1) += v[1]; a_vatom(i,2) += v[2]; a_vatom(i,3) += v[3]; a_vatom(i,4) += v[4]; a_vatom(i,5) += v[5]; @@ -3848,7 +3848,7 @@ void PairReaxCKokkos::v_tally3(EV_FLOAT_REAX &ev, const int &i, cons // The eatom and vatom arrays are atomic for Half/Thread neighbor style //Kokkos::View::value> > a_vatom = v_vatom; - auto a_vatom = dup_vatom.template access::value>(); + auto a_vatom = dup_vatom.template access::value>(); F_FLOAT v[6]; @@ -3909,7 +3909,7 @@ void PairReaxCKokkos::v_tally4(EV_FLOAT_REAX &ev, const int &i, cons if (vflag_atom) { //Kokkos::View::value> > a_vatom = v_vatom; - auto a_vatom = dup_vatom.template access::value>(); + auto a_vatom = dup_vatom.template access::value>(); a_vatom(i,0) += 0.25 * v[0]; a_vatom(i,1) += 0.25 * v[1]; a_vatom(i,2) += 0.25 * v[2]; a_vatom(i,3) += 0.25 * v[3]; a_vatom(i,4) += 0.25 * v[4]; a_vatom(i,5) += 0.25 * v[5]; From 81331e2a34fb79dbc15cf00f5e17c1d90821163b Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Thu, 21 Dec 2017 11:07:06 -0700 Subject: [PATCH 010/675] Better load balance fix_qeq_reax_kokkos for half neigh list --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index d7632fe793..28838f27b6 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -398,19 +398,19 @@ void FixQEqReaxKokkos::compute_h_item(int ii, int &m_fill, const boo const X_FLOAT delz = x(j,2) - ztmp; if (neighflag != FULL) { + // skip half of the interactions const tagint jtag = tag(j); - flag = 0; - if (j < nlocal) flag = 1; - else if (itag < jtag) flag = 1; - else if (itag == jtag) { - if (delz > SMALL) flag = 1; - else if (fabs(delz) < SMALL) { - if (dely > SMALL) flag = 1; - else if (fabs(dely) < SMALL && delx > SMALL) - flag = 1; + if (j >= nlocal) { + if (itag > jtag) { + if ((itag+jtag) % 2 == 0) continue; + } else if (itag < jtag) { + if ((itag+jtag) % 2 == 1) continue; + } else { + if (x(j,2) < ztmp) continue; + if (x(j,2) == ztmp && x(j,1) < ytmp) continue; + if (x(j,2) == ztmp && x(j,1) == ytmp && x(j,0) < xtmp) continue; } } - if (!flag) continue; } const F_FLOAT rsq = delx*delx + dely*dely + delz*delz; From dbc308f35233d1a88ae6dbeb6b3330280d29fc0c Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Thu, 1 Mar 2018 10:06:43 -0700 Subject: [PATCH 011/675] Add warning --- src/KOKKOS/kokkos.cpp | 6 ++++ src/KOKKOS/pair_kokkos.h | 47 +++++++++++++++++++++++++++++++- src/KOKKOS/pair_reaxc_kokkos.cpp | 39 ++++++++++++++------------ src/KOKKOS/pair_reaxc_kokkos.h | 18 ++++++------ 4 files changed, 83 insertions(+), 27 deletions(-) diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 5a74223353..2f9fbdb28b 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -119,6 +119,12 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) Kokkos::Cuda::initialize(select_device); #else LMPHostType::initialize(num_threads,numa); + +#ifndef KOKKOS_HAVE_SERIAL + if (num_threads == 1) + error->warning(FLERR,"Using Kokkos Serial backend (i.e. Makefile.kokkos_mpi_only) performs better with 1 thread"); +#endif + #endif // default settings for package kokkos command diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index d9288cb7e8..4f10a4eb2f 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -61,7 +61,7 @@ struct AtomicF { }; // Determine memory traits for force array -// Do atomic trait when running HALFTHREAD neighbor list style +// Do atomic trait when running HALFTHREAD neighbor list style with CUDA template struct AtomicDup { enum {value = Kokkos::Experimental::ScatterNonAtomic}; @@ -74,6 +74,51 @@ struct AtomicDup { }; #endif +#ifdef LMP_KOKKOS_USE_ATOMICS + +#ifdef KOKKOS_ENABLE_OPENMP +template<> +struct AtomicDup { + enum {value = Kokkos::Experimental::ScatterAtomic}; +}; +#endif + +#ifdef KOKKOS_ENABLE_THREADS +template<> +struct AtomicDup { + enum {value = Kokkos::Experimental::ScatterAtomic}; +}; +#endif + +#endif + + +// Determine duplication traits for force array +// Use duplication when running threaded and not using atomics +template +struct DupF { + enum {value = Kokkos::Experimental::ScatterNonDuplicated}; +}; + +#ifndef LMP_KOKKOS_USE_ATOMICS + +#ifdef KOKKOS_ENABLE_OPENMP +template<> +struct DupF { + enum {value = Kokkos::Experimental::ScatterDuplicated}; +}; +#endif + +#ifdef KOKKOS_ENABLE_THREADS +template<> +struct DupF { + enum {value = Kokkos::Experimental::ScatterDuplicated}; +}; +#endif + +#endif + + //Specialisation for Neighborlist types Half, HalfThread, Full template struct PairComputeFunctor { diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index 1cbe8933e9..f34549bc8c 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -73,6 +73,14 @@ PairReaxCKokkos::PairReaxCKokkos(LAMMPS *lmp) : PairReaxC(lmp) k_error_flag = DAT::tdual_int_scalar("pair:error_flag"); k_nbuf_local = DAT::tdual_int_scalar("pair:nbuf_local"); + + static double t1 = 0.0; + static double t2 = 0.0; + static double t3 = 0.0; + static double t4 = 0.0; + static double t5 = 0.0; + static double t6 = 0.0; + static double t7 = 0.0; } /* ---------------------------------------------------------------------- */ @@ -674,6 +682,8 @@ void PairReaxCKokkos::LR_vdW_Coulomb( int i, int j, double r_ij, LR_ template void PairReaxCKokkos::compute(int eflag_in, int vflag_in) { + Kokkos::Timer timer; + copymode = 1; bocnt = hbcnt = 0; @@ -809,6 +819,7 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) // zero Kokkos::parallel_for(Kokkos::RangePolicy(0,nmax),*this); + if (neighflag == HALF) Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); else if (neighflag == HALFTHREAD) @@ -2309,13 +2320,7 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeMulti2, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_CdDelta = d_CdDelta; - Kokkos::View::value> > a_Cdbo = d_Cdbo; - Kokkos::View::value> > a_Cdbopi = d_Cdbopi; - Kokkos::View::value> > a_Cdbopi2 = d_Cdbopi2; auto a_CdDelta = dup_CdDelta.template access::value>(); - //auto a_Cdbo = dup_Cdbo.template access::value>(); - //auto a_Cdbopi = dup_Cdbopi.template access::value>(); - //auto a_Cdbopi2 = dup_Cdbopi2.template access::value>(); const int i = d_ilist[ii]; const int itype = type(i); @@ -2714,10 +2719,10 @@ void PairReaxCKokkos::operator()(PairReaxComputeAngular::operator()(PairReaxComputeAngular::operator()(PairReaxComputeTorsion::operator()(PairReaxUpdateBond, cons } if (flag) { - a_Cdbo(j,k_index) += Cdbo_i; - a_Cdbopi(j,k_index) += Cdbopi_i; - a_Cdbopi2(j,k_index) += Cdbopi2_i; + d_Cdbo(j,k_index) += Cdbo_i; + d_Cdbopi(j,k_index) += Cdbopi_i; + d_Cdbopi2(j,k_index) += Cdbopi2_i; } } } diff --git a/src/KOKKOS/pair_reaxc_kokkos.h b/src/KOKKOS/pair_reaxc_kokkos.h index 70aef2d608..f341da84c4 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.h +++ b/src/KOKKOS/pair_reaxc_kokkos.h @@ -412,15 +412,15 @@ class PairReaxCKokkos : public PairReaxC { typename AT::t_ffloat_2d_dl d_C1dbopi2, d_C2dbopi2, d_C3dbopi2, d_C4dbopi2; typename AT::t_ffloat_2d_dl d_Cdbo, d_Cdbopi, d_Cdbopi2, d_dDeltap_self; - Kokkos::Experimental::ScatterView dup_total_bo; - Kokkos::Experimental::ScatterView dup_CdDelta; - Kokkos::Experimental::ScatterView dup_eatom; - Kokkos::Experimental::ScatterView dup_f; - Kokkos::Experimental::ScatterView dup_vatom; - Kokkos::Experimental::ScatterView dup_dDeltap_self; - Kokkos::Experimental::ScatterView dup_Cdbo; - Kokkos::Experimental::ScatterView dup_Cdbopi; - Kokkos::Experimental::ScatterView dup_Cdbopi2; + Kokkos::Experimental::ScatterView::value> dup_total_bo; + Kokkos::Experimental::ScatterView::value> dup_CdDelta; + Kokkos::Experimental::ScatterView::value> dup_eatom; + Kokkos::Experimental::ScatterView::value> dup_f; + Kokkos::Experimental::ScatterView::value> dup_vatom; + Kokkos::Experimental::ScatterView::value> dup_dDeltap_self; + Kokkos::Experimental::ScatterView::value> dup_Cdbo; + Kokkos::Experimental::ScatterView::value> dup_Cdbopi; + Kokkos::Experimental::ScatterView::value> dup_Cdbopi2; typedef Kokkos::DualView tdual_ffloat_2d_n7; typedef typename tdual_ffloat_2d_n7::t_dev_const_randomread t_ffloat_2d_n7_randomread; From ed494b295fab613fbc83d49e8236105a337f574d Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Thu, 1 Mar 2018 11:52:39 -0700 Subject: [PATCH 012/675] WIP --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 2 +- src/KOKKOS/fix_qeq_reax_kokkos.h | 3 +- src/KOKKOS/kokkos_type.h | 74 ++++++++++++++++++++++++++++++ src/KOKKOS/neigh_list_kokkos.h | 2 +- src/KOKKOS/pair_kokkos.h | 70 ---------------------------- src/KOKKOS/pair_reaxc_kokkos.cpp | 22 ++++----- src/KOKKOS/pair_reaxc_kokkos.h | 1 - 7 files changed, 88 insertions(+), 86 deletions(-) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index 28838f27b6..7fa7f7f05a 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -250,7 +250,7 @@ void FixQEqReaxKokkos::pre_force(int vflag) k_t.template sync(); if (neighflag != FULL) - red_o = Kokkos::Experimental::create_scatter_view<> (d_o); // allocate duplicated memory + red_o = Kokkos::Experimental::create_scatter_view::value> (d_o); // allocate duplicated memory // 1st cg solve over b_s, s cg_solve1(); diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.h b/src/KOKKOS/fix_qeq_reax_kokkos.h index 27be712ad8..9920325cf1 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.h +++ b/src/KOKKOS/fix_qeq_reax_kokkos.h @@ -22,7 +22,6 @@ FixStyle(qeq/reax/kk/host,FixQEqReaxKokkos) #ifndef LMP_FIX_QEQ_REAX_KOKKOS_H #define LMP_FIX_QEQ_REAX_KOKKOS_H -#include #include "fix_qeq_reax.h" #include "kokkos_type.h" #include "neigh_list.h" @@ -193,7 +192,7 @@ class FixQEqReaxKokkos : public FixQEqReax { HAT::t_ffloat_2d h_s_hist, h_t_hist; typename AT::t_ffloat_2d_randomread r_s_hist, r_t_hist; - Kokkos::Experimental::ScatterView red_o; + Kokkos::Experimental::ScatterView::value> red_o; void init_shielding_k(); void init_hist(); diff --git a/src/KOKKOS/kokkos_type.h b/src/KOKKOS/kokkos_type.h index 6b6fc8610a..de0dab8eb1 100644 --- a/src/KOKKOS/kokkos_type.h +++ b/src/KOKKOS/kokkos_type.h @@ -20,6 +20,9 @@ #include #include #include +#include + +enum{FULL=1u,HALFTHREAD=2u,HALF=4u,N2=8u}; // same as in neigh_list_kokkos.h #if defined(KOKKOS_HAVE_CXX11) #undef ISFINITE @@ -205,6 +208,77 @@ struct ExecutionSpaceFromDevice { }; #endif + +// Determine memory traits for force array +// Do atomic trait when running HALFTHREAD neighbor list style +template +struct AtomicF { + enum {value = Kokkos::Unmanaged}; +}; + +template<> +struct AtomicF { + enum {value = Kokkos::Atomic|Kokkos::Unmanaged}; +}; + +// Determine memory traits for force array +// Do atomic trait when running HALFTHREAD neighbor list style with CUDA +template +struct AtomicDup { + enum {value = Kokkos::Experimental::ScatterNonAtomic}; +}; + +#ifdef KOKKOS_ENABLE_CUDA +template<> +struct AtomicDup { + enum {value = Kokkos::Experimental::ScatterAtomic}; +}; +#endif + +#ifdef LMP_KOKKOS_USE_ATOMICS + +#ifdef KOKKOS_ENABLE_OPENMP +template<> +struct AtomicDup { + enum {value = Kokkos::Experimental::ScatterAtomic}; +}; +#endif + +#ifdef KOKKOS_ENABLE_THREADS +template<> +struct AtomicDup { + enum {value = Kokkos::Experimental::ScatterAtomic}; +}; +#endif + +#endif + + +// Determine duplication traits for force array +// Use duplication when running threaded and not using atomics +template +struct DupF { + enum {value = Kokkos::Experimental::ScatterNonDuplicated}; +}; + +#ifndef LMP_KOKKOS_USE_ATOMICS + +#ifdef KOKKOS_ENABLE_OPENMP +template<> +struct DupF { + enum {value = Kokkos::Experimental::ScatterDuplicated}; +}; +#endif + +#ifdef KOKKOS_ENABLE_THREADS +template<> +struct DupF { + enum {value = Kokkos::Experimental::ScatterDuplicated}; +}; +#endif + +#endif + // define precision // handle global precision, force, energy, positions, kspace separately diff --git a/src/KOKKOS/neigh_list_kokkos.h b/src/KOKKOS/neigh_list_kokkos.h index 1c433f321c..993543157b 100644 --- a/src/KOKKOS/neigh_list_kokkos.h +++ b/src/KOKKOS/neigh_list_kokkos.h @@ -20,7 +20,7 @@ namespace LAMMPS_NS { -enum{FULL=1u,HALFTHREAD=2u,HALF=4u,N2=8u}; +enum{FULL=1u,HALFTHREAD=2u,HALF=4u,N2=8u}; // same as in kokkos_type.h class AtomNeighbors { diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index 4f10a4eb2f..be4eb574e2 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -48,76 +48,6 @@ struct DoCoul<1> { typedef CoulTag type; }; -// Determine memory traits for force array -// Do atomic trait when running HALFTHREAD neighbor list style -template -struct AtomicF { - enum {value = Kokkos::Unmanaged}; -}; - -template<> -struct AtomicF { - enum {value = Kokkos::Atomic|Kokkos::Unmanaged}; -}; - -// Determine memory traits for force array -// Do atomic trait when running HALFTHREAD neighbor list style with CUDA -template -struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterNonAtomic}; -}; - -#ifdef KOKKOS_ENABLE_CUDA -template<> -struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterAtomic}; -}; -#endif - -#ifdef LMP_KOKKOS_USE_ATOMICS - -#ifdef KOKKOS_ENABLE_OPENMP -template<> -struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterAtomic}; -}; -#endif - -#ifdef KOKKOS_ENABLE_THREADS -template<> -struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterAtomic}; -}; -#endif - -#endif - - -// Determine duplication traits for force array -// Use duplication when running threaded and not using atomics -template -struct DupF { - enum {value = Kokkos::Experimental::ScatterNonDuplicated}; -}; - -#ifndef LMP_KOKKOS_USE_ATOMICS - -#ifdef KOKKOS_ENABLE_OPENMP -template<> -struct DupF { - enum {value = Kokkos::Experimental::ScatterDuplicated}; -}; -#endif - -#ifdef KOKKOS_ENABLE_THREADS -template<> -struct DupF { - enum {value = Kokkos::Experimental::ScatterDuplicated}; -}; -#endif - -#endif - //Specialisation for Neighborlist types Half, HalfThread, Full template diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index f34549bc8c..55354f7c93 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -723,9 +723,9 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) d_ilist = k_list->d_ilist; // allocate duplicated memory - dup_f = Kokkos::Experimental::create_scatter_view<>(f); - dup_eatom = Kokkos::Experimental::create_scatter_view<>(v_eatom); - dup_vatom = Kokkos::Experimental::create_scatter_view<>(v_vatom); + dup_f = Kokkos::Experimental::create_scatter_view::value>(f); + dup_eatom = Kokkos::Experimental::create_scatter_view::value>(v_eatom); + dup_vatom = Kokkos::Experimental::create_scatter_view::value>(v_vatom); if (eflag_global) { for (int i = 0; i < 14; i++) @@ -797,8 +797,8 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) } // allocate duplicated memory - dup_dDeltap_self = Kokkos::Experimental::create_scatter_view<>(d_dDeltap_self); - dup_total_bo = Kokkos::Experimental::create_scatter_view<>(d_total_bo); + dup_dDeltap_self = Kokkos::Experimental::create_scatter_view::value>(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_scatter_view::value>(d_total_bo); // Neighbor lists for bond and hbond @@ -840,16 +840,16 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) resize = resize_bo || resize_hb; if (resize) { allocate_array(); - dup_dDeltap_self = Kokkos::Experimental::create_scatter_view<>(d_dDeltap_self); - dup_total_bo = Kokkos::Experimental::create_scatter_view<>(d_total_bo); + dup_dDeltap_self = Kokkos::Experimental::create_scatter_view::value>(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_scatter_view::value>(d_total_bo); } } // allocate duplicated memory - dup_CdDelta = Kokkos::Experimental::create_scatter_view<>(d_CdDelta); - //dup_Cdbo = Kokkos::Experimental::create_scatter_view<>(d_Cdbo); - //dup_Cdbopi = Kokkos::Experimental::create_scatter_view<>(d_Cdbopi); - //dup_Cdbopi2 = Kokkos::Experimental::create_scatter_view<>(d_Cdbopi2); + dup_CdDelta = Kokkos::Experimental::create_scatter_view::value>(d_CdDelta); + //dup_Cdbo = Kokkos::Experimental::create_scatter_view::value>(d_Cdbo); + //dup_Cdbopi = Kokkos::Experimental::create_scatter_view::value>(d_Cdbopi); + //dup_Cdbopi2 = Kokkos::Experimental::create_scatter_view::value>(d_Cdbopi2); // reduction over duplicated memory Kokkos::Experimental::contribute(d_total_bo, dup_total_bo); // needed in BondOrder1 diff --git a/src/KOKKOS/pair_reaxc_kokkos.h b/src/KOKKOS/pair_reaxc_kokkos.h index f341da84c4..23a5c79b24 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.h +++ b/src/KOKKOS/pair_reaxc_kokkos.h @@ -24,7 +24,6 @@ PairStyle(reax/c/kk/host,PairReaxCKokkos) #define LMP_PAIR_REAXC_KOKKOS_H #include -#include #include "pair_kokkos.h" #include "pair_reaxc.h" #include "neigh_list_kokkos.h" From 6dd8efd0b479ba3648798765fe1d8a294b3000e4 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 21 Mar 2018 17:20:45 -0600 Subject: [PATCH 013/675] Add if statements --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 46 +++++-- src/KOKKOS/fix_qeq_reax_kokkos.h | 4 +- src/KOKKOS/kokkos.h | 13 ++ src/KOKKOS/pair_kokkos.h | 29 +++- src/KOKKOS/pair_reaxc_kokkos.cpp | 210 ++++++++++++++++++----------- src/KOKKOS/pair_reaxc_kokkos.h | 35 +++-- 6 files changed, 229 insertions(+), 108 deletions(-) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index 28838f27b6..be04d305cb 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -249,8 +249,12 @@ void FixQEqReaxKokkos::pre_force(int vflag) k_t.template modify(); k_t.template sync(); - if (neighflag != FULL) - red_o = Kokkos::Experimental::create_scatter_view<> (d_o); // allocate duplicated memory + need_dup = lmp->kokkos->need_dup(); + + if (need_dup) + dup_o = Kokkos::Experimental::create_scatter_view (d_o); // allocate duplicated memory + else + ndup_o = Kokkos::Experimental::create_scatter_view (d_o); // 1st cg solve over b_s, s cg_solve1(); @@ -258,8 +262,8 @@ void FixQEqReaxKokkos::pre_force(int vflag) // 2nd cg solve over b_t, t cg_solve2(); - if (neighflag != FULL) - red_o = decltype(red_o)(); // free duplicated memory + if (need_dup) + dup_o = decltype(dup_o)(); // free duplicated memory // calculate_Q(); calculate_q(); @@ -489,7 +493,9 @@ void FixQEqReaxKokkos::cg_solve1() Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); FixQEqReaxKokkosSparse13Functor sparse13_functor(this); Kokkos::parallel_for(inum,sparse13_functor); - Kokkos::Experimental::contribute(d_o, red_o); + if (need_dup) + if (need_dup) + Kokkos::Experimental::contribute(d_o, dup_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } @@ -537,10 +543,13 @@ void FixQEqReaxKokkos::cg_solve1() Kokkos::parallel_for(inum,sparse22_functor); if (neighflag != FULL) { Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); - red_o.reset_except(d_o); + if (need_dup) + dup_o.reset_except(d_o); FixQEqReaxKokkosSparse23Functor sparse23_functor(this); Kokkos::parallel_for(inum,sparse23_functor); - Kokkos::Experimental::contribute(d_o, red_o); + if (need_dup) + if (need_dup) + Kokkos::Experimental::contribute(d_o, dup_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } @@ -610,10 +619,13 @@ void FixQEqReaxKokkos::cg_solve2() Kokkos::parallel_for(inum,sparse32_functor); if (neighflag != FULL) { Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); - red_o.reset_except(d_o); + if (need_dup) + dup_o.reset_except(d_o); FixQEqReaxKokkosSparse33Functor sparse33_functor(this); Kokkos::parallel_for(inum,sparse33_functor); - Kokkos::Experimental::contribute(d_o, red_o); + if (need_dup) + if (need_dup) + Kokkos::Experimental::contribute(d_o, dup_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } @@ -661,10 +673,13 @@ void FixQEqReaxKokkos::cg_solve2() Kokkos::parallel_for(inum,sparse22_functor); if (neighflag != FULL) { Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); - red_o.reset_except(d_o); + if (need_dup) + dup_o.reset_except(d_o); FixQEqReaxKokkosSparse23Functor sparse23_functor(this); Kokkos::parallel_for(inum,sparse23_functor); - Kokkos::Experimental::contribute(d_o, red_o); + if (need_dup) + if (need_dup) + Kokkos::Experimental::contribute(d_o, dup_o); } else { Kokkos::parallel_for(Kokkos::TeamPolicy (inum, teamsize), *this); } @@ -777,7 +792,8 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse13_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto a_o = red_o.template access::value>(); + auto v_o = ScatterViewHelper::value,decltype(dup_o),decltype(ndup_o)>::get(dup_o,ndup_o); + auto a_o = v_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -829,7 +845,8 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse23_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto a_o = red_o.template access::value>(); + auto v_o = ScatterViewHelper::value,decltype(dup_o),decltype(ndup_o)>::get(dup_o,ndup_o); + auto a_o = v_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { @@ -888,7 +905,8 @@ KOKKOS_INLINE_FUNCTION void FixQEqReaxKokkos::sparse33_item(int ii) const { // The q array is duplicated for OpenMP, atomic for CUDA, and neither for Serial - auto a_o = red_o.template access::value>(); + auto v_o = ScatterViewHelper::value,decltype(dup_o),decltype(ndup_o)>::get(dup_o,ndup_o); + auto a_o = v_o.template access::value>(); const int i = d_ilist[ii]; if (mask[i] & groupbit) { diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.h b/src/KOKKOS/fix_qeq_reax_kokkos.h index 27be712ad8..4caacdf8a8 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.h +++ b/src/KOKKOS/fix_qeq_reax_kokkos.h @@ -149,6 +149,7 @@ class FixQEqReaxKokkos : public FixQEqReax { private: int inum; int allocated_flag; + int need_dup; typedef Kokkos::DualView tdual_int_1d; Kokkos::DualView k_params; @@ -193,7 +194,8 @@ class FixQEqReaxKokkos : public FixQEqReax { HAT::t_ffloat_2d h_s_hist, h_t_hist; typename AT::t_ffloat_2d_randomread r_s_hist, r_t_hist; - Kokkos::Experimental::ScatterView red_o; + Kokkos::Experimental::ScatterView dup_o; + Kokkos::Experimental::ScatterView ndup_o; void init_shielding_k(); void init_hist(); diff --git a/src/KOKKOS/kokkos.h b/src/KOKKOS/kokkos.h index 7b7848f1f0..6ecb27eb32 100644 --- a/src/KOKKOS/kokkos.h +++ b/src/KOKKOS/kokkos.h @@ -16,6 +16,7 @@ #include "pointers.h" #include "kokkos_type.h" +#include "pair_kokkos.h" namespace LAMMPS_NS { @@ -39,6 +40,18 @@ class KokkosLMP : protected Pointers { ~KokkosLMP(); void accelerator(int, char **); int neigh_count(int); + + template + int need_dup() + { + int value = 0; + + if (neighflag == HALFTHREAD) + value = NeedDup::value; + + return value; + }; + private: static void my_signal_handler(int); }; diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index 4f10a4eb2f..1ec5dff0c8 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -95,8 +95,8 @@ struct AtomicDup { // Determine duplication traits for force array // Use duplication when running threaded and not using atomics -template -struct DupF { +template +struct NeedDup { enum {value = Kokkos::Experimental::ScatterNonDuplicated}; }; @@ -104,20 +104,41 @@ struct DupF { #ifdef KOKKOS_ENABLE_OPENMP template<> -struct DupF { +struct NeedDup { enum {value = Kokkos::Experimental::ScatterDuplicated}; }; #endif #ifdef KOKKOS_ENABLE_THREADS template<> -struct DupF { +struct NeedDup { enum {value = Kokkos::Experimental::ScatterDuplicated}; }; #endif #endif +template +class ScatterViewHelper {}; + +template +class ScatterViewHelper { +public: + KOKKOS_INLINE_FUNCTION + static T1 get(const T1 &dup, const T2 &nondup) { + return dup; + } +}; + +template +class ScatterViewHelper { +public: + KOKKOS_INLINE_FUNCTION + static T2 get(const T1 &dup, const T2 &nondup) { + return nondup; + } +}; + //Specialisation for Neighborlist types Half, HalfThread, Full template diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index f34549bc8c..842aeeea43 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -722,10 +722,18 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) d_neighbors = k_list->d_neighbors; d_ilist = k_list->d_ilist; + need_dup = lmp->kokkos->need_dup(); + // allocate duplicated memory - dup_f = Kokkos::Experimental::create_scatter_view<>(f); - dup_eatom = Kokkos::Experimental::create_scatter_view<>(v_eatom); - dup_vatom = Kokkos::Experimental::create_scatter_view<>(v_vatom); + if (need_dup) { + dup_f = Kokkos::Experimental::create_scatter_view(f); + dup_eatom = Kokkos::Experimental::create_scatter_view(d_eatom); + dup_vatom = Kokkos::Experimental::create_scatter_view(d_vatom); + } else { + ndup_f = Kokkos::Experimental::create_scatter_view(f); + ndup_eatom = Kokkos::Experimental::create_scatter_view(d_eatom); + ndup_vatom = Kokkos::Experimental::create_scatter_view(d_vatom); + } if (eflag_global) { for (int i = 0; i < 14; i++) @@ -797,9 +805,13 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) } // allocate duplicated memory - dup_dDeltap_self = Kokkos::Experimental::create_scatter_view<>(d_dDeltap_self); - dup_total_bo = Kokkos::Experimental::create_scatter_view<>(d_total_bo); - + if (need_dup) { + dup_dDeltap_self = Kokkos::Experimental::create_scatter_view(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_scatter_view(d_total_bo); + } else { + ndup_dDeltap_self = Kokkos::Experimental::create_scatter_view(d_dDeltap_self); + ndup_total_bo = Kokkos::Experimental::create_scatter_view(d_total_bo); + } // Neighbor lists for bond and hbond // try, resize if necessary @@ -840,19 +852,32 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) resize = resize_bo || resize_hb; if (resize) { allocate_array(); - dup_dDeltap_self = Kokkos::Experimental::create_scatter_view<>(d_dDeltap_self); - dup_total_bo = Kokkos::Experimental::create_scatter_view<>(d_total_bo); + if (need_dup) { + dup_dDeltap_self = Kokkos::Experimental::create_scatter_view(d_dDeltap_self); + dup_total_bo = Kokkos::Experimental::create_scatter_view(d_total_bo); + } else { + ndup_dDeltap_self = Kokkos::Experimental::create_scatter_view(d_dDeltap_self); + ndup_total_bo = Kokkos::Experimental::create_scatter_view(d_total_bo); + } } } // allocate duplicated memory - dup_CdDelta = Kokkos::Experimental::create_scatter_view<>(d_CdDelta); - //dup_Cdbo = Kokkos::Experimental::create_scatter_view<>(d_Cdbo); - //dup_Cdbopi = Kokkos::Experimental::create_scatter_view<>(d_Cdbopi); - //dup_Cdbopi2 = Kokkos::Experimental::create_scatter_view<>(d_Cdbopi2); + if (need_dup) { + dup_CdDelta = Kokkos::Experimental::create_scatter_view(d_CdDelta); + //dup_Cdbo = Kokkos::Experimental::create_scatter_view(d_Cdbo); + //dup_Cdbopi = Kokkos::Experimental::create_scatter_view(d_Cdbopi); + //dup_Cdbopi2 = Kokkos::Experimental::create_scatter_view(d_Cdbopi2); + } else { + ndup_CdDelta = Kokkos::Experimental::create_scatter_view(d_CdDelta); + //ndup_Cdbo = Kokkos::Experimental::create_scatter_view(d_Cdbo); + //ndup_Cdbopi = Kokkos::Experimental::create_scatter_view(d_Cdbopi); + //ndup_Cdbopi2 = Kokkos::Experimental::create_scatter_view(d_Cdbopi2); + } // reduction over duplicated memory - Kokkos::Experimental::contribute(d_total_bo, dup_total_bo); // needed in BondOrder1 + if (need_dup) + Kokkos::Experimental::contribute(d_total_bo, dup_total_bo); // needed in BondOrder1 // Bond order if (neighflag == HALF) { @@ -958,24 +983,28 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) ev_all.evdwl += ev.ereax[8]; // reduction over duplicated memory - Kokkos::Experimental::contribute(d_dDeltap_self, dup_dDeltap_self); // needed in ComputeBond2 - Kokkos::Experimental::contribute(d_CdDelta, dup_CdDelta); // needed in ComputeBond2 + if (need_dup) { + Kokkos::Experimental::contribute(d_dDeltap_self, dup_dDeltap_self); // needed in ComputeBond2 + Kokkos::Experimental::contribute(d_CdDelta, dup_CdDelta); // needed in ComputeBond2 - //Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in UpdateBond, but also used in UpdateBond - //Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in UpdateBond, but also used in UpdateBond - //Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in UpdateBond, but also used in UpdateBond - //dup_Cdbo.reset_except(d_Cdbo); - //dup_Cdbopi.reset_except(d_Cdbopi); - //dup_Cdbopi2.reset_except(d_Cdbopi2); + //Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in UpdateBond, but also used in UpdateBond + //Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in UpdateBond, but also used in UpdateBond + //Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in UpdateBond, but also used in UpdateBond + //dup_Cdbo.reset_except(d_Cdbo); + //dup_Cdbopi.reset_except(d_Cdbopi); + //dup_Cdbopi2.reset_except(d_Cdbopi2); + } // Bond force if (neighflag == HALF) { Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); // reduction over duplicated memory - //Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 - //Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 - //Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 + //if (need_dup) { + // Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 + // Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 + // Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 + //} if (evflag) Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,ignum),*this,ev); @@ -987,9 +1016,11 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); // reduction over duplicated memory - //Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 - //Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 - //Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 + //if (need_dup) { + // Kokkos::Experimental::contribute(d_Cdbo, dup_Cdbo); // needed in ComputeBond2 + // Kokkos::Experimental::contribute(d_Cdbopi, dup_Cdbopi); // needed in ComputeBond2 + // Kokkos::Experimental::contribute(d_Cdbopi2, dup_Cdbopi2); // needed in ComputeBond2 + //} if (evflag) Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,ignum),*this,ev); @@ -1000,7 +1031,8 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) } // reduction over duplicated memory - Kokkos::Experimental::contribute(f, dup_f); + if (need_dup) + Kokkos::Experimental::contribute(f, dup_f); if (eflag_global) { eng_vdwl += ev_all.evdwl; @@ -1018,13 +1050,15 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) if (vflag_fdotr) pair_virial_fdotr_compute(this); if (eflag_atom) { - Kokkos::Experimental::contribute(v_eatom, dup_eatom); + if (need_dup) + Kokkos::Experimental::contribute(d_eatom, dup_eatom); k_eatom.template modify(); k_eatom.template sync(); } if (vflag_atom) { - Kokkos::Experimental::contribute(v_vatom, dup_vatom); + if (need_dup) + Kokkos::Experimental::contribute(d_vatom, dup_vatom); k_vatom.template modify(); k_vatom.template sync(); } @@ -1033,15 +1067,17 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) FindBondSpecies(); // free duplicated memory - dup_f = decltype(dup_f)(); - dup_dDeltap_self = decltype(dup_dDeltap_self)(); - dup_total_bo = decltype(dup_total_bo)(); - dup_CdDelta = decltype(dup_CdDelta)(); - //dup_Cdbo = decltype(dup_Cdbo)(); - //dup_Cdbopi = decltype(dup_Cdbopi)(); - //dup_Cdbopi2 = decltype(dup_Cdbopi2)(); - dup_eatom = decltype(dup_eatom)(); - dup_vatom = decltype(dup_vatom)(); + if (need_dup) { + dup_f = decltype(dup_f)(); + dup_dDeltap_self = decltype(dup_dDeltap_self)(); + dup_total_bo = decltype(dup_total_bo)(); + dup_CdDelta = decltype(dup_CdDelta)(); + //dup_Cdbo = decltype(dup_Cdbo)(); + //dup_Cdbopi = decltype(dup_Cdbopi)(); + //dup_Cdbopi2 = decltype(dup_Cdbopi2)(); + dup_eatom = decltype(dup_eatom)(); + dup_vatom = decltype(dup_vatom)(); + } copymode = 0; } @@ -1084,7 +1120,8 @@ void PairReaxCKokkos::operator()(PairReaxComputeLJCoulomb::value> > a_f = f; - auto a_f = dup_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); F_FLOAT powr_vdw, powgi_vdw, fn13, dfn13, exp1, exp2, etmp; F_FLOAT evdwl, fvdwl; @@ -1244,7 +1281,8 @@ void PairReaxCKokkos::operator()(PairReaxComputeTabulatedLJCoulomb::value> > a_f = f; - auto a_f = dup_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -1444,18 +1482,18 @@ void PairReaxCKokkos::operator()(PairReaxZero, const int &n) const { template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxZeroEAtom, const int &i) const { - v_eatom(i) = 0.0; + d_eatom(i) = 0.0; } template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxZeroVAtom, const int &i) const { - v_vatom(i,0) = 0.0; - v_vatom(i,1) = 0.0; - v_vatom(i,2) = 0.0; - v_vatom(i,3) = 0.0; - v_vatom(i,4) = 0.0; - v_vatom(i,5) = 0.0; + d_vatom(i,0) = 0.0; + d_vatom(i,1) = 0.0; + d_vatom(i,2) = 0.0; + d_vatom(i,3) = 0.0; + d_vatom(i,4) = 0.0; + d_vatom(i,5) = 0.0; } /* ---------------------------------------------------------------------- */ @@ -1626,9 +1664,11 @@ void PairReaxCKokkos::operator()(PairReaxBuildListsHalf, return; //Kokkos::View::value> > a_dDeltap_self = d_dDeltap_self; + auto v_dDeltap_self = ScatterViewHelper::value,decltype(dup_dDeltap_self),decltype(ndup_dDeltap_self)>::get(dup_dDeltap_self,ndup_dDeltap_self); + auto a_dDeltap_self = v_dDeltap_self.template access::value>(); //Kokkos::View::value> > a_total_bo = d_total_bo; - auto a_dDeltap_self = dup_dDeltap_self.template access::value>(); - auto a_total_bo = dup_total_bo.template access::value>(); + auto v_total_bo = ScatterViewHelper::value,decltype(dup_total_bo),decltype(ndup_total_bo)>::get(dup_total_bo,ndup_total_bo); + auto a_total_bo = v_total_bo.template access::value>(); const int i = d_ilist[ii]; const X_FLOAT xtmp = x(i,0); @@ -2320,7 +2360,8 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeMulti2, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_CdDelta = d_CdDelta; - auto a_CdDelta = dup_CdDelta.template access::value>(); + auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); + auto a_CdDelta = v_CdDelta.template access::value>(); const int i = d_ilist[ii]; const int itype = type(i); @@ -2472,12 +2513,13 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeAngular, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_f = f; + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); Kokkos::View::value> > a_Cdbo = d_Cdbo; - //Kokkos::View::value> > a_CdDelta = d_CdDelta; - auto a_f = dup_f.template access::value>(); //auto a_Cdbo = dup_Cdbo.template access::value>(); - auto a_CdDelta = dup_CdDelta.template access::value>(); - + //Kokkos::View::value> > a_CdDelta = d_CdDelta; + auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); + auto a_CdDelta = v_CdDelta.template access::value>(); const int i = d_ilist[ii]; const int itype = type(i); @@ -2785,10 +2827,12 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeTorsion, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_f = f; + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); //Kokkos::View::value> > a_CdDelta = d_CdDelta; + auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); + auto a_CdDelta = v_CdDelta.template access::value>(); Kokkos::View::value> > a_Cdbo = d_Cdbo; - auto a_f = dup_f.template access::value>(); - auto a_CdDelta = dup_CdDelta.template access::value>(); //auto a_Cdbo = dup_Cdbo.template access::value>(); // in reaxc_torsion_angles: j = i, k = j, i = k; @@ -3160,7 +3204,8 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeHydrogen, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_f = f; - auto a_f = dup_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); int hblist[MAX_BONDS]; F_FLOAT theta, cos_theta, sin_xhz4, cos_xhz1, sin_theta2; @@ -3360,9 +3405,12 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeBond1, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_f = f; + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); //Kokkos::View::value> > a_CdDelta = d_CdDelta; - auto a_f = dup_f.template access::value>(); - auto a_CdDelta = dup_CdDelta.template access::value>(); + auto v_CdDelta = ScatterViewHelper::value,decltype(dup_CdDelta),decltype(ndup_CdDelta)>::get(dup_CdDelta,ndup_CdDelta); + auto a_CdDelta = v_CdDelta.template access::value>(); + F_FLOAT delij[3]; F_FLOAT p_be1, p_be2, De_s, De_p, De_pp, pow_BOs_be2, exp_be12, CEbo, ebond; @@ -3500,7 +3548,8 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxComputeBond2, const int &ii, EV_FLOAT_REAX& ev) const { //Kokkos::View::value> > a_f = f; - auto a_f = dup_f.template access::value>(); + auto v_f = ScatterViewHelper::value,decltype(dup_f),decltype(ndup_f)>::get(dup_f,ndup_f); + auto a_f = v_f.template access::value>(); F_FLOAT delij[3], delik[3], deljk[3], tmpvec[3]; F_FLOAT dBOp_i[3], dBOp_k[3], dln_BOp_pi[3], dln_BOp_pi2[3]; @@ -3713,10 +3762,12 @@ void PairReaxCKokkos::ev_tally(EV_FLOAT_REAX &ev, const int &i, cons const int VFLAG = vflag_either; // The eatom and vatom arrays are atomic for Half/Thread neighbor style - //Kokkos::View::value> > a_eatom = v_eatom; - //Kokkos::View::value> > a_vatom = v_vatom; - auto a_eatom = dup_eatom.template access::value>(); - auto a_vatom = dup_vatom.template access::value>(); + //Kokkos::View::value> > a_eatom = d_eatom; + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); + //Kokkos::View::value> > a_vatom = d_vatom; + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); if (eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; @@ -3782,8 +3833,9 @@ void PairReaxCKokkos::e_tally(EV_FLOAT_REAX &ev, const int &i, const // The eatom array is atomic for Half/Thread neighbor style if (eflag_atom) { - //Kokkos::View::value> > a_eatom = v_eatom; - auto a_eatom = dup_eatom.template access::value>(); + //Kokkos::View::value> > a_eatom = d_eatom; + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); const E_FLOAT epairhalf = 0.5 * epair; a_eatom[i] += epairhalf; @@ -3800,8 +3852,9 @@ void PairReaxCKokkos::e_tally_single(EV_FLOAT_REAX &ev, const int &i const F_FLOAT &epair) const { // The eatom array is atomic for Half/Thread neighbor style - //Kokkos::View::value> > a_eatom = v_eatom; - auto a_eatom = dup_eatom.template access::value>(); + //Kokkos::View::value> > a_eatom = d_eatom; + auto v_eatom = ScatterViewHelper::value,decltype(dup_eatom),decltype(ndup_eatom)>::get(dup_eatom,ndup_eatom); + auto a_eatom = v_eatom.template access::value>(); a_eatom[i] += epair; } @@ -3834,8 +3887,9 @@ void PairReaxCKokkos::v_tally(EV_FLOAT_REAX &ev, const int &i, } if (vflag_atom) { - //Kokkos::View::value> > a_vatom = v_vatom; - auto a_vatom = dup_vatom.template access::value>(); + //Kokkos::View::value> > a_vatom = d_vatom; + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); a_vatom(i,0) += v[0]; a_vatom(i,1) += v[1]; a_vatom(i,2) += v[2]; a_vatom(i,3) += v[3]; a_vatom(i,4) += v[4]; a_vatom(i,5) += v[5]; @@ -3852,8 +3906,9 @@ void PairReaxCKokkos::v_tally3(EV_FLOAT_REAX &ev, const int &i, cons { // The eatom and vatom arrays are atomic for Half/Thread neighbor style - //Kokkos::View::value> > a_vatom = v_vatom; - auto a_vatom = dup_vatom.template access::value>(); + //Kokkos::View::value> > a_vatom = d_vatom; + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); F_FLOAT v[6]; @@ -3913,8 +3968,9 @@ void PairReaxCKokkos::v_tally4(EV_FLOAT_REAX &ev, const int &i, cons } if (vflag_atom) { - //Kokkos::View::value> > a_vatom = v_vatom; - auto a_vatom = dup_vatom.template access::value>(); + //Kokkos::View::value> > a_vatom = d_vatom; + auto v_vatom = ScatterViewHelper::value,decltype(dup_vatom),decltype(ndup_vatom)>::get(dup_vatom,ndup_vatom); + auto a_vatom = v_vatom.template access::value>(); a_vatom(i,0) += 0.25 * v[0]; a_vatom(i,1) += 0.25 * v[1]; a_vatom(i,2) += 0.25 * v[2]; a_vatom(i,3) += 0.25 * v[3]; a_vatom(i,4) += 0.25 * v[4]; a_vatom(i,5) += 0.25 * v[5]; @@ -4012,13 +4068,13 @@ void PairReaxCKokkos::ev_setup(int eflag, int vflag) maxeatom = atom->nmax; memoryKK->destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"pair:eatom"); - v_eatom = k_eatom.view(); + d_eatom = k_eatom.view(); } if (vflag_atom && atom->nmax > maxvatom) { maxvatom = atom->nmax; memoryKK->destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,6,"pair:vatom"); - v_vatom = k_vatom.view(); + d_vatom = k_vatom.view(); } // zero accumulators diff --git a/src/KOKKOS/pair_reaxc_kokkos.h b/src/KOKKOS/pair_reaxc_kokkos.h index f341da84c4..aefa63a03d 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.h +++ b/src/KOKKOS/pair_reaxc_kokkos.h @@ -391,11 +391,10 @@ class PairReaxCKokkos : public PairReaxC { typename AT::t_tagint_1d_randomread molecule; DAT::tdual_efloat_1d k_eatom; - typename AT::t_efloat_1d v_eatom; + typename AT::t_efloat_1d d_eatom; DAT::tdual_virial_array k_vatom; - typename ArrayTypes::t_virial_array d_vatom; - typename AT::t_virial_array v_vatom; + typename AT::t_virial_array d_vatom; HAT::t_virial_array h_vatom; DAT::tdual_float_1d k_tap; @@ -412,15 +411,27 @@ class PairReaxCKokkos : public PairReaxC { typename AT::t_ffloat_2d_dl d_C1dbopi2, d_C2dbopi2, d_C3dbopi2, d_C4dbopi2; typename AT::t_ffloat_2d_dl d_Cdbo, d_Cdbopi, d_Cdbopi2, d_dDeltap_self; - Kokkos::Experimental::ScatterView::value> dup_total_bo; - Kokkos::Experimental::ScatterView::value> dup_CdDelta; - Kokkos::Experimental::ScatterView::value> dup_eatom; - Kokkos::Experimental::ScatterView::value> dup_f; - Kokkos::Experimental::ScatterView::value> dup_vatom; - Kokkos::Experimental::ScatterView::value> dup_dDeltap_self; - Kokkos::Experimental::ScatterView::value> dup_Cdbo; - Kokkos::Experimental::ScatterView::value> dup_Cdbopi; - Kokkos::Experimental::ScatterView::value> dup_Cdbopi2; + Kokkos::Experimental::ScatterView dup_total_bo; + Kokkos::Experimental::ScatterView dup_CdDelta; + Kokkos::Experimental::ScatterView dup_eatom; + Kokkos::Experimental::ScatterView dup_f; + Kokkos::Experimental::ScatterView dup_vatom; + Kokkos::Experimental::ScatterView dup_dDeltap_self; + Kokkos::Experimental::ScatterView dup_Cdbo; + Kokkos::Experimental::ScatterView dup_Cdbopi; + Kokkos::Experimental::ScatterView dup_Cdbopi2; + + Kokkos::Experimental::ScatterView ndup_total_bo; + Kokkos::Experimental::ScatterView ndup_CdDelta; + Kokkos::Experimental::ScatterView ndup_eatom; + Kokkos::Experimental::ScatterView ndup_f; + Kokkos::Experimental::ScatterView ndup_vatom; + Kokkos::Experimental::ScatterView ndup_dDeltap_self; + Kokkos::Experimental::ScatterView ndup_Cdbo; + Kokkos::Experimental::ScatterView ndup_Cdbopi; + Kokkos::Experimental::ScatterView ndup_Cdbopi2; + + int need_dup; typedef Kokkos::DualView tdual_ffloat_2d_n7; typedef typename tdual_ffloat_2d_n7::t_dev_const_randomread t_ffloat_2d_n7_randomread; From 2dcee75ae4deb58117cddcc65adbd1091fd544c4 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Thu, 22 Mar 2018 10:01:50 -0600 Subject: [PATCH 014/675] Add data duplication to pair_kokkos.h --- src/KOKKOS/kokkos_type.h | 31 +++++- src/KOKKOS/pair_kokkos.h | 197 ++++++++++++++------------------------- 2 files changed, 99 insertions(+), 129 deletions(-) diff --git a/src/KOKKOS/kokkos_type.h b/src/KOKKOS/kokkos_type.h index de0dab8eb1..c870bac31c 100644 --- a/src/KOKKOS/kokkos_type.h +++ b/src/KOKKOS/kokkos_type.h @@ -221,6 +221,7 @@ struct AtomicF { enum {value = Kokkos::Atomic|Kokkos::Unmanaged}; }; + // Determine memory traits for force array // Do atomic trait when running HALFTHREAD neighbor list style with CUDA template @@ -256,8 +257,8 @@ struct AtomicDup { // Determine duplication traits for force array // Use duplication when running threaded and not using atomics -template -struct DupF { +template +struct NeedDup { enum {value = Kokkos::Experimental::ScatterNonDuplicated}; }; @@ -265,20 +266,42 @@ struct DupF { #ifdef KOKKOS_ENABLE_OPENMP template<> -struct DupF { +struct NeedDup { enum {value = Kokkos::Experimental::ScatterDuplicated}; }; #endif #ifdef KOKKOS_ENABLE_THREADS template<> -struct DupF { +struct NeedDup { enum {value = Kokkos::Experimental::ScatterDuplicated}; }; #endif #endif +template +class ScatterViewHelper {}; + +template +class ScatterViewHelper { +public: + KOKKOS_INLINE_FUNCTION + static T1 get(const T1 &dup, const T2 &nondup) { + return dup; + } +}; + +template +class ScatterViewHelper { +public: + KOKKOS_INLINE_FUNCTION + static T2 get(const T1 &dup, const T2 &nondup) { + return nondup; + } +}; + + // define precision // handle global precision, force, energy, positions, kspace separately diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index 1ec5dff0c8..ab616d2c07 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -48,125 +48,48 @@ struct DoCoul<1> { typedef CoulTag type; }; -// Determine memory traits for force array -// Do atomic trait when running HALFTHREAD neighbor list style -template -struct AtomicF { - enum {value = Kokkos::Unmanaged}; -}; - -template<> -struct AtomicF { - enum {value = Kokkos::Atomic|Kokkos::Unmanaged}; -}; - -// Determine memory traits for force array -// Do atomic trait when running HALFTHREAD neighbor list style with CUDA -template -struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterNonAtomic}; -}; - -#ifdef KOKKOS_ENABLE_CUDA -template<> -struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterAtomic}; -}; -#endif - -#ifdef LMP_KOKKOS_USE_ATOMICS - -#ifdef KOKKOS_ENABLE_OPENMP -template<> -struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterAtomic}; -}; -#endif - -#ifdef KOKKOS_ENABLE_THREADS -template<> -struct AtomicDup { - enum {value = Kokkos::Experimental::ScatterAtomic}; -}; -#endif - -#endif - - -// Determine duplication traits for force array -// Use duplication when running threaded and not using atomics -template -struct NeedDup { - enum {value = Kokkos::Experimental::ScatterNonDuplicated}; -}; - -#ifndef LMP_KOKKOS_USE_ATOMICS - -#ifdef KOKKOS_ENABLE_OPENMP -template<> -struct NeedDup { - enum {value = Kokkos::Experimental::ScatterDuplicated}; -}; -#endif - -#ifdef KOKKOS_ENABLE_THREADS -template<> -struct NeedDup { - enum {value = Kokkos::Experimental::ScatterDuplicated}; -}; -#endif - -#endif - -template -class ScatterViewHelper {}; - -template -class ScatterViewHelper { -public: - KOKKOS_INLINE_FUNCTION - static T1 get(const T1 &dup, const T2 &nondup) { - return dup; - } -}; - -template -class ScatterViewHelper { -public: - KOKKOS_INLINE_FUNCTION - static T2 get(const T1 &dup, const T2 &nondup) { - return nondup; - } -}; - //Specialisation for Neighborlist types Half, HalfThread, Full template struct PairComputeFunctor { typedef typename PairStyle::device_type device_type ; + typedef ArrayTypes AT; // Reduction type, contains evdwl, ecoul and virial[6] typedef EV_FLOAT value_type; // The copy of the pair style PairStyle c; + typename AT::t_f_array f; + typename AT::t_efloat_1d d_eatom; + typename AT::t_virial_array d_vatom; // The force array is atomic for Half/Thread neighbor style - Kokkos::View::value> > f; + //Kokkos::View::value> > f; + Kokkos::Experimental::ScatterView::value > dup_f; // The eatom and vatom arrays are atomic for Half/Thread neighbor style - Kokkos::View::value> > eatom; - Kokkos::View::value> > vatom; + //Kokkos::View::value> > eatom; + Kokkos::Experimental::ScatterView::value > dup_eatom; + + //Kokkos::View::value> > vatom; + Kokkos::Experimental::ScatterView::value > dup_vatom; + + NeighListKokkos list; PairComputeFunctor(PairStyle* c_ptr, NeighListKokkos* list_ptr): - c(*c_ptr),f(c.f),eatom(c.d_eatom), - vatom(c.d_vatom),list(*list_ptr) {}; + c(*c_ptr),list(*list_ptr) { + // allocate duplicated memory + dup_f = Kokkos::Experimental::create_scatter_view::value >(c.f); + dup_eatom = Kokkos::Experimental::create_scatter_view::value >(c.d_eatom); + dup_vatom = Kokkos::Experimental::create_scatter_view::value >(c.d_vatom); + }; // Call cleanup_copy which sets allocations NULL which are destructed by the PairStyle ~PairComputeFunctor() {c.cleanup_copy();list.copymode = 1;}; @@ -175,12 +98,25 @@ struct PairComputeFunctor { return j >> SBBITS & 3; } + void contribute() { + Kokkos::Experimental::contribute(c.f, dup_f); + + if (c.eflag_atom) + Kokkos::Experimental::contribute(c.d_eatom, dup_eatom); + + if (c.vflag_atom) + Kokkos::Experimental::contribute(c.d_vatom, dup_vatom); + } + // Loop over neighbors of one atom without coulomb interaction // This function is called in parallel template KOKKOS_FUNCTION EV_FLOAT compute_item(const int& ii, const NeighListKokkos &list, const NoCoulTag&) const { + + auto a_f = dup_f.template access::value>(); + EV_FLOAT ev; const int i = list.d_ilist[ii]; const X_FLOAT xtmp = c.x(i,0); @@ -214,9 +150,9 @@ struct PairComputeFunctor { fztmp += delz*fpair; if ((NEIGHFLAG==HALF || NEIGHFLAG==HALFTHREAD) && (NEWTON_PAIR || j < c.nlocal)) { - f(j,0) -= delx*fpair; - f(j,1) -= dely*fpair; - f(j,2) -= delz*fpair; + a_f(j,0) -= delx*fpair; + a_f(j,1) -= dely*fpair; + a_f(j,2) -= delz*fpair; } if (EVFLAG) { @@ -232,9 +168,9 @@ struct PairComputeFunctor { } - f(i,0) += fxtmp; - f(i,1) += fytmp; - f(i,2) += fztmp; + a_f(i,0) += fxtmp; + a_f(i,1) += fytmp; + a_f(i,2) += fztmp; return ev; } @@ -245,6 +181,9 @@ struct PairComputeFunctor { KOKKOS_FUNCTION EV_FLOAT compute_item(const int& ii, const NeighListKokkos &list, const CoulTag& ) const { + + auto a_f = dup_f.template access::value>(); + EV_FLOAT ev; const int i = list.d_ilist[ii]; const X_FLOAT xtmp = c.x(i,0); @@ -285,9 +224,9 @@ struct PairComputeFunctor { fztmp += delz*fpair; if ((NEIGHFLAG==HALF || NEIGHFLAG==HALFTHREAD) && (NEWTON_PAIR || j < c.nlocal)) { - f(j,0) -= delx*fpair; - f(j,1) -= dely*fpair; - f(j,2) -= delz*fpair; + a_f(j,0) -= delx*fpair; + a_f(j,1) -= dely*fpair; + a_f(j,2) -= delz*fpair; } if (EVFLAG) { @@ -309,9 +248,9 @@ struct PairComputeFunctor { } } - f(i,0) += fxtmp; - f(i,1) += fytmp; - f(i,2) += fztmp; + a_f(i,0) += fxtmp; + a_f(i,1) += fytmp; + a_f(i,2) += fztmp; return ev; } @@ -321,6 +260,9 @@ struct PairComputeFunctor { const F_FLOAT &epair, const F_FLOAT &fpair, const F_FLOAT &delx, const F_FLOAT &dely, const F_FLOAT &delz) const { + auto a_eatom = dup_eatom.template access::value>(); + auto a_vatom = dup_vatom.template access::value>(); + const int EFLAG = c.eflag; const int NEWTON_PAIR = c.newton_pair; const int VFLAG = c.vflag_either; @@ -328,8 +270,8 @@ struct PairComputeFunctor { if (EFLAG) { if (c.eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; - if (NEWTON_PAIR || i < c.nlocal) eatom[i] += epairhalf; - if ((NEWTON_PAIR || j < c.nlocal) && NEIGHFLAG != FULL) eatom[j] += epairhalf; + if (NEWTON_PAIR || i < c.nlocal) a_eatom[i] += epairhalf; + if ((NEWTON_PAIR || j < c.nlocal) && NEIGHFLAG != FULL) a_eatom[j] += epairhalf; } } @@ -380,20 +322,20 @@ struct PairComputeFunctor { if (c.vflag_atom) { if (NEWTON_PAIR || i < c.nlocal) { - vatom(i,0) += 0.5*v0; - vatom(i,1) += 0.5*v1; - vatom(i,2) += 0.5*v2; - vatom(i,3) += 0.5*v3; - vatom(i,4) += 0.5*v4; - vatom(i,5) += 0.5*v5; + a_vatom(i,0) += 0.5*v0; + a_vatom(i,1) += 0.5*v1; + a_vatom(i,2) += 0.5*v2; + a_vatom(i,3) += 0.5*v3; + a_vatom(i,4) += 0.5*v4; + a_vatom(i,5) += 0.5*v5; } if ((NEWTON_PAIR || j < c.nlocal) && NEIGHFLAG != FULL) { - vatom(j,0) += 0.5*v0; - vatom(j,1) += 0.5*v1; - vatom(j,2) += 0.5*v2; - vatom(j,3) += 0.5*v3; - vatom(j,4) += 0.5*v4; - vatom(j,5) += 0.5*v5; + a_vatom(j,0) += 0.5*v0; + a_vatom(j,1) += 0.5*v1; + a_vatom(j,2) += 0.5*v2; + a_vatom(j,3) += 0.5*v3; + a_vatom(j,4) += 0.5*v4; + a_vatom(j,5) += 0.5*v5; } } } @@ -432,6 +374,9 @@ struct PairComputeFunctor { return j >> SBBITS & 3; } + + void contribute() {} + template KOKKOS_FUNCTION EV_FLOAT compute_item(const int& ii, @@ -570,10 +515,12 @@ EV_FLOAT pair_compute_neighlist (PairStyle* fpair, typename Kokkos::Impl::enable PairComputeFunctor ff(fpair,list); if (fpair->eflag || fpair->vflag) Kokkos::parallel_reduce(list->inum,ff,ev); else Kokkos::parallel_for(list->inum,ff); + ff.contribute(); } else { PairComputeFunctor ff(fpair,list); if (fpair->eflag || fpair->vflag) Kokkos::parallel_reduce(list->inum,ff,ev); else Kokkos::parallel_for(list->inum,ff); + ff.contribute(); } return ev; } From 28b894a1d76ce7b4038d2a8bd0e4d00aa3cbb40e Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Thu, 22 Mar 2018 12:09:04 -0600 Subject: [PATCH 015/675] Remove unnecessary semicolon --- src/KOKKOS/kokkos.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KOKKOS/kokkos.h b/src/KOKKOS/kokkos.h index 6ecb27eb32..c955bec600 100644 --- a/src/KOKKOS/kokkos.h +++ b/src/KOKKOS/kokkos.h @@ -50,7 +50,7 @@ class KokkosLMP : protected Pointers { value = NeedDup::value; return value; - }; + } private: static void my_signal_handler(int); From 385e1e5adf38668ddb4077a42eec22ada11576b7 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Thu, 22 Mar 2018 12:28:21 -0600 Subject: [PATCH 016/675] Fix compile error with CUDA --- src/KOKKOS/kokkos_type.h | 2 +- src/KOKKOS/neigh_list_kokkos.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/KOKKOS/kokkos_type.h b/src/KOKKOS/kokkos_type.h index 21430455ba..665e53ac34 100644 --- a/src/KOKKOS/kokkos_type.h +++ b/src/KOKKOS/kokkos_type.h @@ -22,7 +22,7 @@ #include #include -enum{FULL=1u,HALFTHREAD=2u,HALF=4u,N2=8u}; // same as in neigh_list_kokkos.h +enum{FULL=1u,HALFTHREAD=2u,HALF=4u,N2=8u}; #if defined(KOKKOS_HAVE_CXX11) #undef ISFINITE diff --git a/src/KOKKOS/neigh_list_kokkos.h b/src/KOKKOS/neigh_list_kokkos.h index 993543157b..585422c54f 100644 --- a/src/KOKKOS/neigh_list_kokkos.h +++ b/src/KOKKOS/neigh_list_kokkos.h @@ -20,8 +20,6 @@ namespace LAMMPS_NS { -enum{FULL=1u,HALFTHREAD=2u,HALF=4u,N2=8u}; // same as in kokkos_type.h - class AtomNeighbors { public: From 52254fe155e7cd5e4678c0b729305ba12850c8b4 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 2 Apr 2018 12:10:30 -0600 Subject: [PATCH 017/675] Fix issue in fix_qeq_reax_kokkos --- src/KOKKOS/fix_qeq_reax_kokkos.cpp | 36 +++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index 4d2ff8b1e5..b9fd49dd4e 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -487,8 +487,13 @@ void FixQEqReaxKokkos::cg_solve1() Kokkos::parallel_for(inum,sparse12_functor); if (neighflag != FULL) { Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); - FixQEqReaxKokkosSparse13Functor sparse13_functor(this); - Kokkos::parallel_for(inum,sparse13_functor); + if (neighflag == HALF) { + FixQEqReaxKokkosSparse13Functor sparse13_functor(this); + Kokkos::parallel_for(inum,sparse13_functor); + } else if (neighflag == HALFTHREAD) { + FixQEqReaxKokkosSparse13Functor sparse13_functor(this); + Kokkos::parallel_for(inum,sparse13_functor); + } if (need_dup) if (need_dup) Kokkos::Experimental::contribute(d_o, dup_o); @@ -541,8 +546,13 @@ void FixQEqReaxKokkos::cg_solve1() Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); if (need_dup) dup_o.reset_except(d_o); - FixQEqReaxKokkosSparse23Functor sparse23_functor(this); - Kokkos::parallel_for(inum,sparse23_functor); + if (neighflag == HALF) { + FixQEqReaxKokkosSparse23Functor sparse23_functor(this); + Kokkos::parallel_for(inum,sparse23_functor); + } else if (neighflag == HALFTHREAD) { + FixQEqReaxKokkosSparse23Functor sparse23_functor(this); + Kokkos::parallel_for(inum,sparse23_functor); + } if (need_dup) if (need_dup) Kokkos::Experimental::contribute(d_o, dup_o); @@ -616,8 +626,13 @@ void FixQEqReaxKokkos::cg_solve2() Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); if (need_dup) dup_o.reset_except(d_o); - FixQEqReaxKokkosSparse33Functor sparse33_functor(this); - Kokkos::parallel_for(inum,sparse33_functor); + if (neighflag == HALF) { + FixQEqReaxKokkosSparse33Functor sparse33_functor(this); + Kokkos::parallel_for(inum,sparse33_functor); + } else if (neighflag == HALFTHREAD) { + FixQEqReaxKokkosSparse33Functor sparse33_functor(this); + Kokkos::parallel_for(inum,sparse33_functor); + } if (need_dup) if (need_dup) Kokkos::Experimental::contribute(d_o, dup_o); @@ -670,8 +685,13 @@ void FixQEqReaxKokkos::cg_solve2() Kokkos::parallel_for(Kokkos::RangePolicy(nlocal,nlocal+atom->nghost),*this); if (need_dup) dup_o.reset_except(d_o); - FixQEqReaxKokkosSparse23Functor sparse23_functor(this); - Kokkos::parallel_for(inum,sparse23_functor); + if (neighflag == HALF) { + FixQEqReaxKokkosSparse23Functor sparse23_functor(this); + Kokkos::parallel_for(inum,sparse23_functor); + } else if (neighflag == HALFTHREAD) { + FixQEqReaxKokkosSparse23Functor sparse23_functor(this); + Kokkos::parallel_for(inum,sparse23_functor); + } if (need_dup) if (need_dup) Kokkos::Experimental::contribute(d_o, dup_o); From 9b0f8a0c5510b493cd912f726f26a494a61c815a Mon Sep 17 00:00:00 2001 From: julient31 Date: Fri, 12 May 2017 11:43:30 -0600 Subject: [PATCH 018/675] First commit for the SPIN package. Changes to come: -Exchange interaction computation to check (loop on neighbors), -Temperature/random fluctuations to correct (effects too strong), -Physical results to check, -Add final interactions (DMI, ME, Dipolar), -Compute spin temperature (Nurdin and Ma formslisms), -Work on MPI parallelization, -Ewald sums to implement (see with Stan's pakage), -See for prefered magnetic axis (Mitchell's idea), --- src/SPIN/atom_vec_spin.cpp | 934 +++++++++++++++++++++++++++++++++ src/SPIN/atom_vec_spin.h | 90 ++++ src/SPIN/compute_spin.cpp | 134 +++++ src/SPIN/compute_spin.h | 67 +++ src/SPIN/fix_force_spin.cpp | 229 ++++++++ src/SPIN/fix_force_spin.h | 86 +++ src/SPIN/fix_langevin_spin.cpp | 204 +++++++ src/SPIN/fix_langevin_spin.h | 106 ++++ src/SPIN/fix_nve_spin.cpp | 211 ++++++++ src/SPIN/fix_nve_spin.h | 76 +++ src/SPIN/pair_spin.cpp | 339 ++++++++++++ src/SPIN/pair_spin.h | 75 +++ src/atom.cpp | 12 +- src/atom.h | 7 + src/dump_custom.cpp | 147 +++++- src/dump_custom.h | 5 + src/set.cpp | 90 +++- src/verlet.cpp | 3 + 18 files changed, 2801 insertions(+), 14 deletions(-) create mode 100644 src/SPIN/atom_vec_spin.cpp create mode 100644 src/SPIN/atom_vec_spin.h create mode 100644 src/SPIN/compute_spin.cpp create mode 100644 src/SPIN/compute_spin.h create mode 100644 src/SPIN/fix_force_spin.cpp create mode 100644 src/SPIN/fix_force_spin.h create mode 100644 src/SPIN/fix_langevin_spin.cpp create mode 100644 src/SPIN/fix_langevin_spin.h create mode 100644 src/SPIN/fix_nve_spin.cpp create mode 100644 src/SPIN/fix_nve_spin.h create mode 100755 src/SPIN/pair_spin.cpp create mode 100755 src/SPIN/pair_spin.h diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp new file mode 100644 index 0000000000..6d12a7d4e3 --- /dev/null +++ b/src/SPIN/atom_vec_spin.cpp @@ -0,0 +1,934 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include "atom_vec_spin.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "modify.h" +#include "fix.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) +{ + molecular = 0; + mass_type = 1; + + comm_x_only = 0; + comm_f_only = 1; + size_forward = 6; + size_reverse = 3; + size_border = 11; + size_velocity = 3; + size_data_atom = 9; + size_data_vel = 4; + xcol_data = 4; + + forceclearflag = 1; + atom->mumag_flag = atom->sp_flag = 1; + //atom->rmass_flag = 1; +} + + +/* ---------------------------------------------------------------------- + grow atom arrays + n = 0 grows arrays by a chunk + n > 0 allocates arrays to size n +------------------------------------------------------------------------- */ + +void AtomVecSpin::grow(int n) +{ + if (n == 0) grow_nmax(); + else nmax = n; + atom->nmax = nmax; + if (nmax < 0 || nmax > MAXSMALLINT) + error->one(FLERR,"Per-processor system is too big"); + + tag = memory->grow(atom->tag,nmax,"atom:tag"); + type = memory->grow(atom->type,nmax,"atom:type"); + mask = memory->grow(atom->mask,nmax,"atom:mask"); + image = memory->grow(atom->image,nmax,"atom:image"); + x = memory->grow(atom->x,nmax,3,"atom:x"); + v = memory->grow(atom->v,nmax,3,"atom:v"); + f = memory->grow(atom->f,nmax*comm->nthreads,3,"atom:f"); + //Allocating mag. quantities + mumag = memory->grow(atom->mumag,nmax,"atom:mumag"); + sp = memory->grow(atom->sp,nmax,4,"atom:sp"); + fm = memory->grow(atom->fm,nmax*comm->nthreads,3,"atom:fm"); + + if (atom->nextra_grow) + for (int iextra = 0; iextra < atom->nextra_grow; iextra++) + modify->fix[atom->extra_grow[iextra]]->grow_arrays(nmax); +} + +/* ---------------------------------------------------------------------- + reset local array ptrs +------------------------------------------------------------------------- */ + +void AtomVecSpin::grow_reset() +{ + tag = atom->tag; type = atom->type; + mask = atom->mask; image = atom->image; + x = atom->x; v = atom->v; f = atom->f; + mumag = atom->mumag; sp = atom->sp; fm = atom->fm; +} + + +/* ---------------------------------------------------------------------- + copy atom I info to atom J +------------------------------------------------------------------------- */ + +void AtomVecSpin::copy(int i, int j, int delflag) +{ + tag[j] = tag[i]; + type[j] = type[i]; + mask[j] = mask[i]; + image[j] = image[i]; + x[j][0] = x[i][0]; + x[j][1] = x[i][1]; + x[j][2] = x[i][2]; + v[j][0] = v[i][0]; + v[j][1] = v[i][1]; + v[j][2] = v[i][2]; + + mumag[j] = mumag[i]; + sp[j][0] = sp[i][0]; + sp[j][1] = sp[i][1]; + sp[j][2] = sp[i][2]; + sp[j][3] = sp[i][3]; + + if (atom->nextra_grow) + for (int iextra = 0; iextra < atom->nextra_grow; iextra++) + modify->fix[atom->extra_grow[iextra]]->copy_arrays(i,j,delflag); +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_comm(int n, int *list, double *buf, + int pbc_flag, int *pbc) +{ + int i,j,m; + double dx,dy,dz; + + m = 0; + if (pbc_flag == 0) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0]; + buf[m++] = x[j][1]; + buf[m++] = x[j][2]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + } + } else { + if (domain->triclinic == 0) { + dx = pbc[0]*domain->xprd; + dy = pbc[1]*domain->yprd; + dz = pbc[2]*domain->zprd; + } else { + dx = pbc[0]*domain->xprd + pbc[5]*domain->xy + pbc[4]*domain->xz; + dy = pbc[1]*domain->yprd + pbc[3]*domain->yz; + dz = pbc[2]*domain->zprd; + } + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + } + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_comm_vel(int n, int *list, double *buf, + int pbc_flag, int *pbc) +{ + int i,j,m; + double dx,dy,dz,dvx,dvy,dvz; + + m = 0; + if (pbc_flag == 0) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0]; + buf[m++] = x[j][1]; + buf[m++] = x[j][2]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } else { + if (domain->triclinic == 0) { + dx = pbc[0]*domain->xprd; + dy = pbc[1]*domain->yprd; + dz = pbc[2]*domain->zprd; + } else { + dx = pbc[0]*domain->xprd + pbc[5]*domain->xy + pbc[4]*domain->xz; + dy = pbc[1]*domain->yprd + pbc[3]*domain->yz; + dz = pbc[2]*domain->zprd; + } + if (!deform_vremap) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } else { + dvx = pbc[0]*h_rate[0] + pbc[5]*h_rate[5] + pbc[4]*h_rate[4]; + dvy = pbc[1]*h_rate[1] + pbc[3]*h_rate[3]; + dvz = pbc[2]*h_rate[2]; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + if (mask[i] & deform_groupbit) { + buf[m++] = v[j][0] + dvx; + buf[m++] = v[j][1] + dvy; + buf[m++] = v[j][2] + dvz; + } else { + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } + } + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_comm_hybrid(int n, int *list, double *buf) +{ + int i,j,m; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +void AtomVecSpin::unpack_comm(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + x[i][0] = buf[m++]; + x[i][1] = buf[m++]; + x[i][2] = buf[m++]; + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + } +} + +/* ---------------------------------------------------------------------- */ + +void AtomVecSpin::unpack_comm_vel(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + x[i][0] = buf[m++]; + x[i][1] = buf[m++]; + x[i][2] = buf[m++]; + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + v[i][0] = buf[m++]; + v[i][1] = buf[m++]; + v[i][2] = buf[m++]; + } +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::unpack_comm_hybrid(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_reverse(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + buf[m++] = f[i][0]; + buf[m++] = f[i][1]; + buf[m++] = f[i][2]; + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +void AtomVecSpin::unpack_reverse(int n, int *list, double *buf) +{ + int i,j,m; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + f[j][0] += buf[m++]; + f[j][1] += buf[m++]; + f[j][2] += buf[m++]; + } +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_border(int n, int *list, double *buf, + int pbc_flag, int *pbc) +{ + int i,j,m; + double dx,dy,dz; + + m = 0; + if (pbc_flag == 0) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0]; + buf[m++] = x[j][1]; + buf[m++] = x[j][2]; + buf[m++] = ubuf(tag[j]).d; + buf[m++] = ubuf(type[j]).d; + buf[m++] = ubuf(mask[j]).d; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + } + } else { + if (domain->triclinic == 0) { + dx = pbc[0]*domain->xprd; + dy = pbc[1]*domain->yprd; + dz = pbc[2]*domain->zprd; + } else { + dx = pbc[0]; + dy = pbc[1]; + dz = pbc[2]; + } + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = ubuf(tag[j]).d; + buf[m++] = ubuf(type[j]).d; + buf[m++] = ubuf(mask[j]).d; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + } + } + + if (atom->nextra_border) + for (int iextra = 0; iextra < atom->nextra_border; iextra++) + m += modify->fix[atom->extra_border[iextra]]->pack_border(n,list,&buf[m]); + + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_border_vel(int n, int *list, double *buf, + int pbc_flag, int *pbc) +{ + int i,j,m; + double dx,dy,dz,dvx,dvy,dvz; + + m = 0; + if (pbc_flag == 0) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0]; + buf[m++] = x[j][1]; + buf[m++] = x[j][2]; + buf[m++] = ubuf(tag[j]).d; + buf[m++] = ubuf(type[j]).d; + buf[m++] = ubuf(mask[j]).d; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } else { + if (domain->triclinic == 0) { + dx = pbc[0]*domain->xprd; + dy = pbc[1]*domain->yprd; + dz = pbc[2]*domain->zprd; + } else { + dx = pbc[0]; + dy = pbc[1]; + dz = pbc[2]; + } + if (!deform_vremap) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = ubuf(tag[j]).d; + buf[m++] = ubuf(type[j]).d; + buf[m++] = ubuf(mask[j]).d; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } else { + dvx = pbc[0]*h_rate[0] + pbc[5]*h_rate[5] + pbc[4]*h_rate[4]; + dvy = pbc[1]*h_rate[1] + pbc[3]*h_rate[3]; + dvz = pbc[2]*h_rate[2]; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = ubuf(tag[j]).d; + buf[m++] = ubuf(type[j]).d; + buf[m++] = ubuf(mask[j]).d; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + if (mask[i] & deform_groupbit) { + buf[m++] = v[j][0] + dvx; + buf[m++] = v[j][1] + dvy; + buf[m++] = v[j][2] + dvz; + } else { + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } + } + } + + if (atom->nextra_border) + for (int iextra = 0; iextra < atom->nextra_border; iextra++) + m += modify->fix[atom->extra_border[iextra]]->pack_border(n,list,&buf[m]); + + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_border_hybrid(int n, int *list, double *buf) +{ + int i,j,m; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + } + + return m; +} + +/* ---------------------------------------------------------------------- */ + +void AtomVecSpin::unpack_border(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + if (i == nmax) grow(0); + x[i][0] = buf[m++]; + x[i][1] = buf[m++]; + x[i][2] = buf[m++]; + tag[i] = (tagint) ubuf(buf[m++]).i; + type[i] = (int) ubuf(buf[m++]).i; + mask[i] = (int) ubuf(buf[m++]).i; + mumag[i] = buf[m++]; + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; + } + + if (atom->nextra_border) + for (int iextra = 0; iextra < atom->nextra_border; iextra++) + m += modify->fix[atom->extra_border[iextra]]-> + unpack_border(n,first,&buf[m]); + +} + +/* ---------------------------------------------------------------------- */ + +void AtomVecSpin::unpack_border_vel(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + if (i == nmax) grow(0); + x[i][0] = buf[m++]; + x[i][1] = buf[m++]; + x[i][2] = buf[m++]; + tag[i] = (tagint) ubuf(buf[m++]).i; + type[i] = (int) ubuf(buf[m++]).i; + mask[i] = (int) ubuf(buf[m++]).i; + mumag[i] = buf[m++]; + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; + v[i][0] = buf[m++]; + v[i][1] = buf[m++]; + v[i][2] = buf[m++]; + } + + if (atom->nextra_border) + for (int iextra = 0; iextra < atom->nextra_border; iextra++) + m += modify->fix[atom->extra_border[iextra]]-> + unpack_border(n,first,&buf[m]); + +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::unpack_border_hybrid(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + mumag[i] = buf[m++]; + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; + } + + return m; +} + +/* ---------------------------------------------------------------------- + pack all atom quantities for shipping to another proc + xyz must be 1st 3 values, so that comm::exchange can test on them +------------------------------------------------------------------------- */ + +int AtomVecSpin::pack_exchange(int i, double *buf) +{ + int m = 1; + buf[m++] = x[i][0]; + buf[m++] = x[i][1]; + buf[m++] = x[i][2]; + buf[m++] = v[i][0]; + buf[m++] = v[i][1]; + buf[m++] = v[i][2]; + buf[m++] = ubuf(tag[i]).d; + buf[m++] = ubuf(type[i]).d; + buf[m++] = ubuf(mask[i]).d; + buf[m++] = ubuf(image[i]).d; + + buf[m++] = mumag[i]; + buf[m++] = sp[i][0]; + buf[m++] = sp[i][1]; + buf[m++] = sp[i][2]; + buf[m++] = sp[i][3]; + + if (atom->nextra_grow) + for (int iextra = 0; iextra < atom->nextra_grow; iextra++) + m += modify->fix[atom->extra_grow[iextra]]->pack_exchange(i,&buf[m]); + + buf[0] = m; + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::unpack_exchange(double *buf) +{ + int nlocal = atom->nlocal; + if (nlocal == nmax) grow(0); + + int m = 1; + x[nlocal][0] = buf[m++]; + x[nlocal][1] = buf[m++]; + x[nlocal][2] = buf[m++]; + v[nlocal][0] = buf[m++]; + v[nlocal][1] = buf[m++]; + v[nlocal][2] = buf[m++]; + tag[nlocal] = (tagint) ubuf(buf[m++]).i; + type[nlocal] = (int) ubuf(buf[m++]).i; + mask[nlocal] = (int) ubuf(buf[m++]).i; + image[nlocal] = (imageint) ubuf(buf[m++]).i; + + mumag[nlocal] = buf[m++]; + sp[nlocal][0] = buf[m++]; + sp[nlocal][1] = buf[m++]; + sp[nlocal][2] = buf[m++]; + sp[nlocal][3] = buf[m++]; + + if (atom->nextra_grow) + for (int iextra = 0; iextra < atom->nextra_grow; iextra++) + m += modify->fix[atom->extra_grow[iextra]]-> + unpack_exchange(nlocal,&buf[m]); + + atom->nlocal++; + + return m; +} + +/* ---------------------------------------------------------------------- + size of restart data for all atoms owned by this proc + include extra data stored by fixes +------------------------------------------------------------------------- */ + +int AtomVecSpin::size_restart() +{ + int i; + + int nlocal = atom->nlocal; + int n = 16 * nlocal; + + if (atom->nextra_restart) + for (int iextra = 0; iextra < atom->nextra_restart; iextra++) + for (i = 0; i < nlocal; i++) + n += modify->fix[atom->extra_restart[iextra]]->size_restart(i); + + return n; +} + +/* ---------------------------------------------------------------------- + pack atom I's data for restart file including extra quantities + xyz must be 1st 3 values, so that read_restart can test on them + molecular types may be negative, but write as positive +------------------------------------------------------------------------- */ + +int AtomVecSpin::pack_restart(int i, double *buf) +{ + int m = 1; + + buf[m++] = x[i][0]; + buf[m++] = x[i][1]; + buf[m++] = x[i][2]; + buf[m++] = ubuf(tag[i]).d; + buf[m++] = ubuf(type[i]).d; + buf[m++] = ubuf(mask[i]).d; + buf[m++] = ubuf(image[i]).d; + buf[m++] = v[i][0]; + buf[m++] = v[i][1]; + buf[m++] = v[i][2]; + + buf[m++] = mumag[i]; + buf[m++] = sp[i][0]; + buf[m++] = sp[i][1]; + buf[m++] = sp[i][2]; + buf[m++] = sp[i][3]; + + if (atom->nextra_restart) + for (int iextra = 0; iextra < atom->nextra_restart; iextra++) + m += modify->fix[atom->extra_restart[iextra]]->pack_restart(i,&buf[m]); + + buf[0] = m; + return m; +} + +/* ---------------------------------------------------------------------- + unpack data for one atom from restart file including extra quantities +------------------------------------------------------------------------- */ + +int AtomVecSpin::unpack_restart(double *buf) +{ + int nlocal = atom->nlocal; + if (nlocal == nmax) { + grow(0); + if (atom->nextra_store) + memory->grow(atom->extra,nmax,atom->nextra_store,"atom:extra"); + } + + int m = 1; + x[nlocal][0] = buf[m++]; + x[nlocal][1] = buf[m++]; + x[nlocal][2] = buf[m++]; + tag[nlocal] = (tagint) ubuf(buf[m++]).i; + type[nlocal] = (int) ubuf(buf[m++]).i; + mask[nlocal] = (int) ubuf(buf[m++]).i; + image[nlocal] = (imageint) ubuf(buf[m++]).i; + v[nlocal][0] = buf[m++]; + v[nlocal][1] = buf[m++]; + v[nlocal][2] = buf[m++]; + + mumag[nlocal] = buf[m++]; + sp[nlocal][0] = buf[m++]; + sp[nlocal][1] = buf[m++]; + sp[nlocal][2] = buf[m++]; + sp[nlocal][3] = buf[m++]; + + double **extra = atom->extra; + if (atom->nextra_store) { + int size = static_cast (buf[0]) - m; + for (int i = 0; i < size; i++) extra[nlocal][i] = buf[m++]; + } + + atom->nlocal++; + return m; +} + +/* ---------------------------------------------------------------------- + create one atom of itype at coord + set other values to defaults +------------------------------------------------------------------------- */ + +void AtomVecSpin::create_atom(int itype, double *coord) +{ + + int nlocal = atom->nlocal; + if (nlocal == nmax) grow(0); + + tag[nlocal] = 0; + type[nlocal] = itype; + x[nlocal][0] = coord[0]; + x[nlocal][1] = coord[1]; + x[nlocal][2] = coord[2]; + mask[nlocal] = 1; + image[nlocal] = ((imageint) IMGMAX << IMG2BITS) | + ((imageint) IMGMAX << IMGBITS) | IMGMAX; + v[nlocal][0] = 0.0; + v[nlocal][1] = 0.0; + v[nlocal][2] = 0.0; + + mumag[nlocal] = 0.0; + sp[nlocal][0] = 0.0; + sp[nlocal][1] = 0.0; + sp[nlocal][2] = 0.0; + sp[nlocal][3] = 0.0; + + atom->nlocal++; +} + +/* ---------------------------------------------------------------------- + unpack one line from Atoms section of data file + initialize other atom quantities +------------------------------------------------------------------------- */ + +void AtomVecSpin::data_atom(double *coord, imageint imagetmp, char **values) +{ + int nlocal = atom->nlocal; + if (nlocal == nmax) grow(0); + + tag[nlocal] = ATOTAGINT(values[0]); + type[nlocal] = atoi(values[1]); + if (type[nlocal] <= 0 || type[nlocal] > atom->ntypes) + error->one(FLERR,"Invalid atom type in Atoms section of data file"); + + mumag[nlocal] = atof(values[2]); + + x[nlocal][0] = coord[0]; + x[nlocal][1] = coord[1]; + x[nlocal][2] = coord[2]; + + sp[nlocal][0] = atof(values[6]); + sp[nlocal][1] = atof(values[7]); + sp[nlocal][2] = atof(values[8]); + sp[nlocal][3] = sqrt(sp[nlocal][0]*sp[nlocal][0] + + sp[nlocal][1]*sp[nlocal][1] + + sp[nlocal][2]*sp[nlocal][2]); + + image[nlocal] = imagetmp; + + mask[nlocal] = 1; + v[nlocal][0] = 0.0; + v[nlocal][1] = 0.0; + v[nlocal][2] = 0.0; + + atom->nlocal++; +} + +/* ---------------------------------------------------------------------- + unpack hybrid quantities from one line in Atoms section of data file + initialize other atom quantities for this sub-style +------------------------------------------------------------------------- */ + +int AtomVecSpin::data_atom_hybrid(int nlocal, char **values) +{ + mumag[nlocal] = atof(values[0]); + sp[nlocal][0] = atof(values[1]); + sp[nlocal][1] = atof(values[2]); + sp[nlocal][2] = atof(values[3]); + sp[nlocal][3] = sqrt(sp[nlocal][0]*sp[nlocal][0] + + sp[nlocal][1]*sp[nlocal][1] + + sp[nlocal][2]*sp[nlocal][2]); + + return 4; +} + +/* ---------------------------------------------------------------------- + pack atom info for data file including 3 image flags +------------------------------------------------------------------------- */ + +void AtomVecSpin::pack_data(double **buf) +{ + int nlocal = atom->nlocal; + for (int i = 0; i < nlocal; i++) { + buf[i][0] = ubuf(tag[i]).d; + buf[i][1] = ubuf(type[i]).d; + buf[i][2] = mumag[i]; + buf[i][3] = x[i][0]; + buf[i][4] = x[i][1]; + buf[i][5] = x[i][2]; + buf[i][6] = sp[i][0]; + buf[i][7] = sp[i][1]; + buf[i][8] = sp[i][2]; + buf[i][9] = ubuf((image[i] & IMGMASK) - IMGMAX).d; + buf[i][10] = ubuf((image[i] >> IMGBITS & IMGMASK) - IMGMAX).d; + buf[i][11] = ubuf((image[i] >> IMG2BITS) - IMGMAX).d; + } +} + +/* ---------------------------------------------------------------------- + pack hybrid atom info for data file +------------------------------------------------------------------------- */ + +int AtomVecSpin::pack_data_hybrid(int i, double *buf) +{ + buf[0] = mumag[i]; + buf[1] = sp[i][0]; + buf[2] = sp[i][1]; + buf[3] = sp[i][2]; + + return 4; +} + +/* ---------------------------------------------------------------------- + write atom info to data file including 3 image flags +------------------------------------------------------------------------- */ + +void AtomVecSpin::write_data(FILE *fp, int n, double **buf) +{ + for (int i = 0; i < n; i++) + fprintf(fp,TAGINT_FORMAT \ + " %d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e " + "%-1.16e %d %d %d\n", + (tagint) ubuf(buf[i][0]).i,(int) ubuf(buf[i][1]).i, + buf[i][2],buf[i][3],buf[i][4], + buf[i][5],buf[i][6],buf[i][7],buf[i][8], + (int) ubuf(buf[i][9]).i,(int) ubuf(buf[i][10]).i, + (int) ubuf(buf[i][11]).i); +} + +/* ---------------------------------------------------------------------- + write hybrid atom info to data file +------------------------------------------------------------------------- */ + +int AtomVecSpin::write_data_hybrid(FILE *fp, double *buf) +{ + fprintf(fp," %-1.16e %-1.16e %-1.16e %-1.16e",buf[0],buf[1],buf[2],buf[3]); + return 4; +} + +/* ---------------------------------------------------------------------- + return # of bytes of allocated memory +------------------------------------------------------------------------- */ + +bigint AtomVecSpin::memory_usage() +{ + bigint bytes = 0; + + if (atom->memcheck("tag")) bytes += memory->usage(tag,nmax); + if (atom->memcheck("type")) bytes += memory->usage(type,nmax); + if (atom->memcheck("mask")) bytes += memory->usage(mask,nmax); + if (atom->memcheck("image")) bytes += memory->usage(image,nmax); + if (atom->memcheck("x")) bytes += memory->usage(x,nmax,3); + if (atom->memcheck("v")) bytes += memory->usage(v,nmax,3); + if (atom->memcheck("f")) bytes += memory->usage(f,nmax*comm->nthreads,3); + + if (atom->memcheck("fm")) bytes += memory->usage(fm,nmax*comm->nthreads,3); + if (atom->memcheck("mumag")) bytes += memory->usage(mumag,nmax); + if (atom->memcheck("sp")) bytes += memory->usage(sp,nmax,4); + + return bytes; +} + +//Test force clear in spin +void AtomVecSpin::force_clear(int n, size_t nbytes) +{ + memset(&atom->fm[0][0],0,3*nbytes); +} + + diff --git a/src/SPIN/atom_vec_spin.h b/src/SPIN/atom_vec_spin.h new file mode 100644 index 0000000000..f4b13926f0 --- /dev/null +++ b/src/SPIN/atom_vec_spin.h @@ -0,0 +1,90 @@ +/* -*- 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 ATOM_CLASS + +AtomStyle(spin,AtomVecSpin) + +#else + +#ifndef LMP_ATOM_VEC_SPIN_H +#define LMP_ATOM_VEC_SPIN_H + +#include "atom_vec.h" + +namespace LAMMPS_NS { + +class AtomVecSpin : public AtomVec { + public: + AtomVecSpin(class LAMMPS *); + void grow(int); + void grow_reset(); + void copy(int, int, int); + int pack_comm(int, int *, double *, int, int *); + int pack_comm_vel(int, int *, double *, int, int *); + int pack_comm_hybrid(int, int *, double *); + void unpack_comm(int, int, double *); + void unpack_comm_vel(int, int, double *); + int unpack_comm_hybrid(int, int, double *); + int pack_reverse(int, int, double *); + void unpack_reverse(int, int *, double *); + int pack_border(int, int *, double *, int, int *); + int pack_border_vel(int, int *, double *, int, int *); + int pack_border_hybrid(int, int *, double *); + void unpack_border(int, int, double *); + void unpack_border_vel(int, int, double *); + int unpack_border_hybrid(int, int, double *); + int pack_exchange(int, double *); + int unpack_exchange(double *); + int size_restart(); + int pack_restart(int, double *); + int unpack_restart(double *); + void create_atom(int, double *); + void data_atom(double *, imageint, char **); + int data_atom_hybrid(int, char **); + void pack_data(double **); + int pack_data_hybrid(int, double *); + void write_data(FILE *, int, double **); + int write_data_hybrid(FILE *, double *); + bigint memory_usage(); + + //Test force clear + void force_clear(int, size_t); + + + private: + tagint *tag; + int *type,*mask; + imageint *image; + double **x,**v,**f; //MD quantities: position, velocity and force + double *mumag,**sp, **fm; //Magnetic quantities: mu, spin direction, magnetic force + +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Per-processor system is too big + +The number of owned atoms plus ghost atoms on a single +processor must fit in 32-bit integer. + +E: Invalid atom type in Atoms section of data file + +Atom types must range from 1 to specified # of types. + +*/ diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp new file mode 100644 index 0000000000..9ff12ac3dd --- /dev/null +++ b/src/SPIN/compute_spin.cpp @@ -0,0 +1,134 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include "compute_spin.h" +#include "atom.h" +#include "update.h" +#include "modify.h" +#include "domain.h" +#include "memory.h" +#include "error.h" +#include "math_special.h" + +using namespace LAMMPS_NS; +using namespace MathSpecial; + +/* ---------------------------------------------------------------------- */ + +ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : + Compute(lmp, narg, arg), mag(NULL) +{ + if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); + + vector_flag = 1; + size_vector = 5; + extvector = 0; + + init(); + + allocate(); + +} + +/* ---------------------------------------------------------------------- */ + +ComputeSpin::~ComputeSpin() +{ + memory->destroy(mag); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeSpin::init() +{ +} + +/* ---------------------------------------------------------------------- */ + +void ComputeSpin::compute_vector() +{ + int i, index; + + invoked_vector = update->ntimestep; + + countsp = countsptot = 0.0; + mag[0] = mag[1] = mag[2] = mag[3] = 0.0; + magtot[0] = magtot[1] = magtot[2] = magtot[3] = 0.0; + magenergy = magenergytot = 0.0; + + double **x = atom->x; + int *mask = atom->mask; + int *type = atom->type; + imageint *image = atom->image; + double *mumag = atom->mumag; + double **sp = atom->sp; + double **fm = atom->fm; + + int nlocal = atom->nlocal; + + // compute total magnetization + for (i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (atom->mumag_flag && atom->sp_flag) { + mag[0] += sp[i][0]; + mag[1] += sp[i][1]; + mag[2] += sp[i][2]; + countsp++; + } + } + else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); + } + + MPI_Allreduce(mag,magtot,4,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&countsp,&countsptot,1,MPI_DOUBLE,MPI_SUM,world); + + double scale = 1.0/countsptot; + magtot[0] *= scale; + magtot[1] *= scale; + magtot[2] *= scale; + magtot[3] = sqrt(square(magtot[0])+square(magtot[1])+square(magtot[2])); + + // compute total magnetic energy + for (i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (atom->mumag_flag && atom->sp_flag) { + magenergy += mumag[i]*sp[i][0]*fm[i][0]; + magenergy += mumag[i]*sp[i][1]*fm[i][1]; + magenergy += mumag[i]*sp[i][2]*fm[i][2]; + } + else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); + } + } + + MPI_Allreduce(&magenergy,&magenergytot,1,MPI_DOUBLE,MPI_SUM,world); + + vector[0] = magtot[0]; + vector[1] = magtot[1]; + vector[2] = magtot[2]; + vector[3] = magtot[3]; + vector[4] = magenergytot; +} + +/* ---------------------------------------------------------------------- + free and reallocate arrays +------------------------------------------------------------------------- */ + +void ComputeSpin::allocate() +{ + memory->destroy(mag); + memory->create(mag,4,"compute/spin:mag"); + memory->create(magtot,5,"compute/spin:mag"); + vector = magtot; +} + diff --git a/src/SPIN/compute_spin.h b/src/SPIN/compute_spin.h new file mode 100644 index 0000000000..c4011d5ded --- /dev/null +++ b/src/SPIN/compute_spin.h @@ -0,0 +1,67 @@ +/* -*- 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 COMPUTE_CLASS + +ComputeStyle(compute/spin,ComputeSpin) + +#else + +#ifndef LMP_COMPUTE_SPIN_H +#define LMP_COMPUTE_SPIN_H + +#include "compute.h" + +namespace LAMMPS_NS { + +class ComputeSpin : public Compute { + public: + ComputeSpin(class LAMMPS *, int, char **); + ~ComputeSpin(); + void init(); + void compute_vector(); + + private: + double *mag; + double *magtot; + double magenergy; + double magenergytot; + int countsp; + int countsptot; + int usecenter; + + 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: Chunk/atom compute does not exist for compute compute/spin + +Self-explanatory. + +E: Compute compute/spin does not use chunk/atom compute + +The style of the specified compute is not chunk/atom. + +*/ diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp new file mode 100644 index 0000000000..0163b32eb9 --- /dev/null +++ b/src/SPIN/fix_force_spin.cpp @@ -0,0 +1,229 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "fix_force_spin.h" +#include "atom.h" +#include "update.h" +#include "domain.h" +#include "respa.h" +#include "modify.h" +#include "input.h" +#include "variable.h" +#include "math_const.h" +#include "error.h" +#include "force.h" + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; + +enum{ZEEMAN,ANISOTROPY}; +enum{CONSTANT,EQUAL}; + +/* ---------------------------------------------------------------------- */ + +FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) +{ + + if (narg < 7) error->all(FLERR,"Illegal fix spin command"); + // 7 arguments for a force/spin fix command: + //(fix ID group force/spin magnitude (T or eV) style (zeeman or anisotropy) direction (3 cartesian coordinates) + + //Magnetic interactions only coded for cartesian coordinates + + dynamic_group_allow = 1; + scalar_flag = 1; + global_freq = 1; + extscalar = 1; + respa_level_support = 1; + ilevel_respa = 0; + + magstr = NULL; + magfieldstyle = CONSTANT; + + H_field = 0.0; + Hx = Hy = Hz = 0.0; + Ka = 0.0; + Kax = Kay = Kaz = 0.0; + + if (strcmp(arg[3],"zeeman") == 0) { + if (narg != 8) error->all(FLERR,"Illegal fix zeeman command"); + style = ZEEMAN; + H_field = force->numeric(FLERR,arg[4]); + Hx = force->numeric(FLERR,arg[5]); + Hy = force->numeric(FLERR,arg[6]); + Hz = force->numeric(FLERR,arg[7]); + magfieldstyle = CONSTANT; + } else if (strcmp(arg[3],"anisotropy") == 0) { + if (narg != 8) error->all(FLERR,"Illegal fix anisotropy command"); + style = ANISOTROPY; + Ka = force->numeric(FLERR,arg[4]); + Kax = force->numeric(FLERR,arg[5]); + Kay = force->numeric(FLERR,arg[6]); + Kaz = force->numeric(FLERR,arg[7]); + } else error->all(FLERR,"Illegal fix force/spin command"); + + //printf("test field in creator: H=%g, Hx=%g, Hy=%g, Hz=%g \n",H_field,Hx,Hy,Hz); + + degree2rad = MY_PI/180.0; + time_origin = update->ntimestep; + + eflag = 0; + emag = 0.0; +} + +/* ---------------------------------------------------------------------- */ + +FixForceSpin::~FixForceSpin() +{ + delete [] magstr; +} + +/* ---------------------------------------------------------------------- */ + +int FixForceSpin::setmask() +{ + int mask = 0; + mask |= POST_FORCE; + mask |= THERMO_ENERGY; + mask |= POST_FORCE_RESPA; + return mask; +} + + +/* ---------------------------------------------------------------------- */ + +void FixForceSpin::init() +{ + double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) + double mub = 5.78901e-5; //in eV/T + double gyro = mub/hbar; //in rad.THz/T + + H_field *= gyro; //in rad.THz + Ka /= hbar; //in rad.THz + + if (strstr(update->integrate_style,"respa")) { + ilevel_respa = ((Respa *) update->integrate)->nlevels-1; + if (respa_level >= 0) ilevel_respa = MIN(respa_level,ilevel_respa); + } + + // check variables + if (magstr) { + magvar = input->variable->find(magstr); + if (magvar < 0) + error->all(FLERR,"Variable name for fix magnetic field does not exist"); + if (!input->variable->equalstyle(magvar)) + error->all(FLERR,"Variable for fix magnetic field is invalid style"); + } + + varflag = CONSTANT; + if (magfieldstyle != CONSTANT) varflag = EQUAL; + + // set magnetic field components once and for all + if (varflag == CONSTANT) set_magneticforce(); + +} + +/* ---------------------------------------------------------------------- */ + +void FixForceSpin::setup(int vflag) +{ + if (strstr(update->integrate_style,"verlet")) + post_force(vflag); + else { + ((Respa *) update->integrate)->copy_flevel_f(ilevel_respa); + post_force_respa(vflag,ilevel_respa,0); + ((Respa *) update->integrate)->copy_f_flevel(ilevel_respa); + } +} + +/* ---------------------------------------------------------------------- */ + +void FixForceSpin::post_force(int vflag) +{ + // update gravity due to variables + if (varflag != CONSTANT) { + modify->clearstep_compute(); + modify->addstep_compute(update->ntimestep + 1); + set_magneticforce(); //Update value of the mag. field if time-dependent + } + + double **x = atom->x; + double **sp = atom->sp; + double *mumag = atom->mumag; + double **fm = atom->fm; + int nlocal = atom->nlocal; + double scalar; + + eflag = 0; + emag = 0.0; + + if (style == ZEEMAN) { + for (int i = 0; i < nlocal; i++) { + fm[i][0] += mumag[i]*xmag; + fm[i][1] += mumag[i]*ymag; + fm[i][2] += mumag[i]*zmag; + // emag -= (sp[i][0]*xmag + sp[i][1]*ymag + sp[i][2]*zmag); + } + } + if (style == ANISOTROPY) { + for (int i = 0; i < nlocal; i++) { + scalar = Kax*sp[i][0] + Kay*sp[i][1] + Kaz*sp[i][2]; + fm[i][0] -= Ka*scalar*Kax; + fm[i][1] -= Ka*scalar*Kay; + fm[i][2] -= Ka*scalar*Kaz; + //emag -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); + } + } + //printf("test force. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); + //printf("Field force compute, fm[0][2]=%g \n",fm[0][2]); +} + +/* ---------------------------------------------------------------------- */ + +void FixForceSpin::post_force_respa(int vflag, int ilevel, int iloop) +{ + if (ilevel == ilevel_respa) post_force(vflag); +} + +/* ---------------------------------------------------------------------- */ +//No acceleration for magnetic EOM, only a "magnetic force" +//(keeping set_magneticforce in case of time--dependent mag. field implementation) + +void FixForceSpin::set_magneticforce() +{ + if (style == ZEEMAN) { + xmag = H_field*Hx; + ymag = H_field*Hy; + zmag = H_field*Hz; + } +} + + +/* ---------------------------------------------------------------------- + potential energy in magnetic field +------------------------------------------------------------------------- */ + +double FixForceSpin::compute_scalar() +{ + // only sum across procs one time + if (eflag == 0) { + MPI_Allreduce(&emag,&emag_all,1,MPI_DOUBLE,MPI_SUM,world); + eflag = 1; + } + return emag_all; +} diff --git a/src/SPIN/fix_force_spin.h b/src/SPIN/fix_force_spin.h new file mode 100644 index 0000000000..75805a7734 --- /dev/null +++ b/src/SPIN/fix_force_spin.h @@ -0,0 +1,86 @@ +/* -*- 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 FIX_CLASS + +FixStyle(force/spin,FixForceSpin) + +#else + +#ifndef LMP_FIX_FORCE_SPIN_H +#define LMP_FIX_FORCE_SPIN_H + +#include "fix.h" + +namespace LAMMPS_NS { + +class FixForceSpin : public Fix { + friend class FixPour; + + public: + FixForceSpin(class LAMMPS *, int, char **); + ~FixForceSpin(); + int setmask(); + void init(); + void setup(int); + virtual void post_force(int); + virtual void post_force_respa(int, int, int); + double compute_scalar(); + + protected: + int style; + + double xmag, ymag, zmag; //Magnetic force + double degree2rad; + int ilevel_respa; + int time_origin; + int eflag; + double emag, emag_all; + + int varflag; + int magfieldstyle; + int magvar; + char *magstr; + + double H_field; //Zeeman field intensity and direction + double Hx, Hy, Hz; + + double Ka; //Magnetic anisotropy intensity and direction + double Kax, Kay, Kaz; + + void set_magneticforce(); + +}; + +} + +#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: Variable name for fix force/spin does not exist + +Self-explanatory. + +E: Variable for fix force/spin is invalid style + +Only equal-style variables can be used. + +*/ diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp new file mode 100644 index 0000000000..ee8f5c1c49 --- /dev/null +++ b/src/SPIN/fix_langevin_spin.cpp @@ -0,0 +1,204 @@ +/* ---------------------------------------------------------------------- + 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 authors: Carolyn Phillips (U Mich), reservoir energy tally + Aidan Thompson (SNL) GJF formulation +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "fix_langevin_spin.h" +#include "math_extra.h" +#include "atom.h" +#include "atom_vec_ellipsoid.h" +#include "force.h" +#include "update.h" +#include "modify.h" +#include "compute.h" +#include "domain.h" +#include "region.h" +#include "respa.h" +#include "comm.h" +#include "input.h" +#include "variable.h" +#include "random_mars.h" +#include "memory.h" +#include "error.h" +#include "group.h" +#include "math_const.h" +#include "random_park.h" + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg), id_temp(NULL), random(NULL) +{ + if (narg != 7) error->all(FLERR,"Illegal fix langevin/spin command"); + + dynamic_group_allow = 1; + scalar_flag = 1; + global_freq = 1; + extscalar = 1; + nevery = 1; + + temp = force->numeric(FLERR,arg[3]); + alpha_t = force->numeric(FLERR,arg[4]); + alpha_l = force->numeric(FLERR,arg[5]); + seed = force->inumeric(FLERR,arg[6]); + + if (alpha_t < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); + if (alpha_l < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); + if (seed <= 0) error->all(FLERR,"Illegal fix langevin/spin seed must be > 0"); + + // initialize Marsaglia RNG with processor-unique seed + //random = new RanMars(lmp,seed + comm->me); + random = new RanPark(lmp,seed + comm->me); + +} + +/* ---------------------------------------------------------------------- */ + +FixLangevinSpin::~FixLangevinSpin() +{ + delete random; +} + +/* ---------------------------------------------------------------------- */ + +int FixLangevinSpin::setmask() +{ + int mask = 0; + mask |= POST_FORCE; + mask |= POST_FORCE_RESPA; + mask |= END_OF_STEP; + mask |= THERMO_ENERGY; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixLangevinSpin::init() +{ + // warn if any fix comes after this one + int after = 0; + int flag_force = 0; + int flag_lang = 0; + for (int i = 0; i < modify->nfix; i++) { + if (strcmp("force/spin",modify->fix[i]->style)==0) flag_force = MAX(flag_force,i); + if (strcmp("langevin/spin",modify->fix[i]->style)==0) flag_lang = i; + } + if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin should come after all other spin fixes"); + + dts = update->dt; + Gil_factor = alpha_t/(1.0+(alpha_t)*(alpha_t)); + + double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) + double kb = force->boltz; + D = (MY_2PI*Gil_factor*kb*temp)/hbar/dts; + sigma = sqrt(D); +} + +/* ---------------------------------------------------------------------- */ + +void FixLangevinSpin::setup(int vflag) +{ + if (strstr(update->integrate_style,"verlet")) + post_force(vflag); + else { + ((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1); + post_force_respa(vflag,nlevels_respa-1,0); + ((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1); + } +} + +/* ---------------------------------------------------------------------- */ + +void FixLangevinSpin::post_force(int vflag) +{ + double **sp = atom->sp; + double **fm = atom->fm; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + double sx, sy, sz; + double fmx, fmy, fmz; + double cpx, cpy, cpz; + double rx, ry, rz; + + // apply transverse magnetic damping to spins + // add the damping to the effective field + for (int i = 0; i < nlocal; i++) + if (mask[i] & groupbit) { + sx = sp[i][0];//Getting Mag. and Mag. force components + sy = sp[i][1]; + sz = sp[i][2]; + + fmx = fm[i][0]; + fmy = fm[i][1]; + fmz = fm[i][2]; + + cpx = fmy*sz - fmz*sy;//Computing cross product + cpy = fmz*sx - fmx*sz; + cpz = fmx*sy - fmy*sx; + + fmx -= alpha_t*cpx;//Taking the damping value away + fmy -= alpha_t*cpy; + fmz -= alpha_t*cpz; + + fm[i][0] = fmx; + fm[i][1] = fmy; + fm[i][2] = fmz; + } + + //printf("test damping. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); + //apply thermal effects + //add random field to fm + for (int i = 0; i < nlocal; i++) + if (mask[i] & groupbit) { + rx = sigma*random->gaussian();//Drawing random distributions + ry = sigma*random->gaussian(); + rz = sigma*random->gaussian(); + + //rx = sigma*(random->uniform() - 0.5); + //ry = sigma*(random->uniform() - 0.5); + //rz = sigma*(random->uniform() - 0.5); + + fm[i][0] += rx;//Adding random field + fm[i][1] += ry; + fm[i][2] += rz; + + fm[i][0] *= Gil_factor;//Multiplying by Gilbert's prefactor + fm[i][1] *= Gil_factor; + fm[i][2] *= Gil_factor; + + } + //printf("test rand var: %g, sigma=%g \n",(random->uniform()-0.5),sigma); + //printf("test rand var: %g, sigma=%g \n",random->gaussian(),sigma); + //printf("test random 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); + //printf("test dt: %g, sigma=%g \n",dts,random->gaussian(),sigma); +} + +/* ---------------------------------------------------------------------- */ + +void FixLangevinSpin::post_force_respa(int vflag, int ilevel, int iloop) +{ + if (ilevel == nlevels_respa-1) post_force(vflag); +} + diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h new file mode 100644 index 0000000000..ffd94745e2 --- /dev/null +++ b/src/SPIN/fix_langevin_spin.h @@ -0,0 +1,106 @@ +/* -*- 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 FIX_CLASS + +FixStyle(langevin/spin,FixLangevinSpin) + +#else + +#ifndef LMP_FIX_LANGEVIN_SPIN_H +#define LMP_FIX_LANGEVIN_SPIN_H + +#include "fix.h" + +namespace LAMMPS_NS { + +class FixLangevinSpin : public Fix { + public: + FixLangevinSpin(class LAMMPS *, int, char **); + virtual ~FixLangevinSpin(); + int setmask(); + void init(); + void setup(int); + virtual void post_force(int); + void post_force_respa(int, int, int); + + protected: + //First mag. quantities + int transv_damp_flag, long_damp_flag; //Flags for transverse or longitudinal mag. dampings + double alpha_t, alpha_l; //Transverse and long. damping value + double dts,temp,D,sigma;//timestep, temp, noise + double Gil_factor;//Gilbert's prefactor + + char *id_temp; + class Compute *temperature; + + int nlevels_respa; + //class RanMars *random; + class RanPark *random; + int seed; + +}; + +} + +#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: Fix langevin period must be > 0.0 + +The time window for temperature relaxation must be > 0 + +W: Energy tally does not account for 'zero yes' + +The energy removed by using the 'zero yes' flag is not accounted +for in the energy tally and thus energy conservation cannot be +monitored in this case. + + +E: Variable for fix langevin is invalid style + +It must be an equal-style variable. + + +E: Cannot zero Langevin force of 0 atoms + +The group has zero atoms, so you cannot request its force +be zeroed. + +E: Fix langevin variable returned negative temperature + +Self-explanatory. + +E: Could not find fix_modify temperature ID + +The compute ID for computing temperature does not exist. + +E: Fix_modify temperature ID does not compute temperature + +The compute ID assigned to the fix must compute temperature. + +W: Group for fix_modify temp != fix group + +The fix_modify command is specifying a temperature computation that +computes a temperature on a different group of atoms than the fix +itself operates on. This is probably not what you want to do. + +*/ diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp new file mode 100644 index 0000000000..4b9597e988 --- /dev/null +++ b/src/SPIN/fix_nve_spin.cpp @@ -0,0 +1,211 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include "fix_nve_spin.h" +//#include "fix_damping_spin.h" +#include "atom.h" +#include "atom_vec.h" +#include "update.h" +#include "respa.h" +#include "force.h" +#include "error.h" +#include "math_vector.h" +#include "math_extra.h" +#include "math_const.h" +#include "modify.h" + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; +using namespace MathExtra; + +enum{NONE,SPIN}; + +/* ---------------------------------------------------------------------- */ + +FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : + FixNVE(lmp, narg, arg) +{ + + if (narg < 3) error->all(FLERR,"Illegal fix nve/spin command"); + + time_integrate = 1; + + extra = NONE; + + int iarg = 2; + if (strcmp(arg[iarg],"nve/spin") == 0) { + if (iarg+1 > narg) error->all(FLERR,"Illegal fix nve/spin command"); + extra = SPIN; + } + + // error checks + if (extra == SPIN && !atom->mumag_flag) + error->all(FLERR,"Fix nve/spin requires spin attribute mumag"); + +} + +/* ---------------------------------------------------------------------- */ + +void FixNVESpin::init() +{ + FixNVE::init(); + + dts = update->dt; + + /*int idamp; + for (idamp = 0; idamp < modify->nfix; idamp++) + if (strstr(modify->fix[idamp]->style,"damping/spin")) break; + if (idamp == modify->nfix) + error->all(FLERR,"Integration of spin systems requires use of fix damping (set damping to 0.0 for NVE)"); + + lockspindamping = (FixSpinDamping *) modify->fix[idamp]; + alpha_t = lockspindamping->get_damping(0); + */ +} + +/* ---------------------------------------------------------------------- */ + +void FixNVESpin::initial_integrate(int vflag) +{ + double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; + double cp[3],g[3]; + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + double *rmass = atom->rmass; + double *mass = atom->mass; + double **sp = atom->sp; + double **fm = atom->fm; + int nlocal = atom->nlocal; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; + int *type = atom->type; + int *mask = atom->mask; + + // update half v all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (rmass) dtfm = dtf / rmass[i]; + else dtfm = dtf / mass[type[i]]; + v[i][0] += dtfm * f[i][0]; + v[i][1] += dtfm * f[i][1]; + v[i][2] += dtfm * f[i][2]; + } + } + + // update half x for all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] += 0.5 * dtv * v[i][0]; + x[i][1] += 0.5 * dtv * v[i][1]; + x[i][2] += 0.5 * dtv * v[i][2]; + } + } + + // update sp for all particles + if (extra == SPIN) { + // Advance spins + //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 + for (int i = 0; i < nlocal; i++) + if (mask[i] & groupbit) + if (sp[i][3] > 0.0) { + + cp[0] = cp[1] = cp[2] = 0.0; + g[0] = g[1] = g[2] = 0.0; + fm2 = (fm[i][0]*fm[i][0])+(fm[i][1]*fm[i][1])+(fm[i][2]*fm[i][2]); + fmsq = sqrt(fm2); + energy = (sp[i][0]*fm[i][0])+(sp[i][1]*fm[i][1])+(sp[i][2]*fm[i][2]); + + cp[0] = fm[i][1]*sp[i][2]-fm[i][2]*sp[i][1]; + cp[1] = fm[i][2]*sp[i][0]-fm[i][0]*sp[i][2]; + cp[2] = fm[i][0]*sp[i][1]-fm[i][1]*sp[i][0]; + + //cp[0] = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; + //cp[1] = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; + //cp[2] = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; + + g[0] = sp[i][0]+cp[0]*dts; + g[1] = sp[i][1]+cp[1]*dts; + g[2] = sp[i][2]+cp[2]*dts; + + g[0] += (fm[i][0]*energy-0.5*sp[i][0]*fm2)*0.5*dts*dts; + g[1] += (fm[i][1]*energy-0.5*sp[i][1]*fm2)*0.5*dts*dts; + g[2] += (fm[i][2]*energy-0.5*sp[i][2]*fm2)*0.5*dts*dts; + + g[0] /= (1+(fmsq*dts*0.5)*(fmsq*dts*0.5)); + g[1] /= (1+(fmsq*dts*0.5)*(fmsq*dts*0.5)); + g[2] /= (1+(fmsq*dts*0.5)*(fmsq*dts*0.5)); + + sp[i][0] = g[0]; + sp[i][1] = g[1]; + sp[i][2] = g[2]; + + //Renormalization (may not be necessary) + msq = g[0]*g[0] + g[1]*g[1] + g[2]*g[2]; + scale = 1.0/sqrt(msq); + sp[i][0] *= scale; + sp[i][1] *= scale; + sp[i][2] *= scale; + + // printf("test fix integ. 1;i=%d, fx=%g, fy=%g, fz=%g \n",i,fm[i][0],fm[i][1],fm[i][2]); + + //printf("test fix integ.; i=%d, sx=%g, sy=%g, sz=%g, norm=%g \n",i,sp[i][0],sp[i][1],sp[i][2],scale); + } + } + + //printf("test fix integ. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); +} + + +/* ---------------------------------------------------------------------- */ + +void FixNVESpin::final_integrate() +{ + double dtfm,msq,scale,fm2,fmsq,energy; + double cp[3],g[3]; + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + double *rmass = atom->rmass; + double *mass = atom->mass; + int nlocal = atom->nlocal; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; + int *type = atom->type; + int *mask = atom->mask; + + // update half x for all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] += 0.5 * dtv * v[i][0]; + x[i][1] += 0.5 * dtv * v[i][1]; + x[i][2] += 0.5 * dtv * v[i][2]; + } + } + + // update half v for all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (rmass) dtfm = dtf / rmass[i]; + else dtfm = dtf / mass[type[i]]; + v[i][0] += dtfm * f[i][0]; + v[i][1] += dtfm * f[i][1]; + v[i][2] += dtfm * f[i][2]; + } + } + +} diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h new file mode 100644 index 0000000000..55fffa7fb0 --- /dev/null +++ b/src/SPIN/fix_nve_spin.h @@ -0,0 +1,76 @@ +/* -*- 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 FIX_CLASS + +FixStyle(nve/spin,FixNVESpin) + +#else + +#ifndef LMP_FIX_NVE_SPIN_H +#define LMP_FIX_NVE_SPIN_H + +#include "fix_nve.h" + +namespace LAMMPS_NS { + +class FixNVESpin : public FixNVE { + friend class FixSpinDamping; + + public: + FixNVESpin(class LAMMPS *, int, char **); + virtual ~FixNVESpin() {} + void init(); + virtual void initial_integrate(int); + virtual void final_integrate(); + + protected: + int extra; + double dts; + double alpha_t; + + private: + class FixSpinDamping *lockspindamping; +}; + +} + +#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: Fix nve/sphere requires atom style sphere + +Self-explanatory. + +E: Fix nve/sphere update dipole requires atom attribute mu + +An atom style with this attribute is needed. + +E: Fix nve/sphere requires extended particles + +This fix can only be used for particles of a finite size. + +E: Fix nve/sphere dlm must be used with update dipole + +The DLM algorithm can only be used in conjunction with update dipole. + + +*/ diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp new file mode 100755 index 0000000000..975dcfc012 --- /dev/null +++ b/src/SPIN/pair_spin.cpp @@ -0,0 +1,339 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include "pair_spin.h" +#include "atom.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "comm.h" +#include "force.h" +#include "memory.h" +#include "math_const.h" +#include "error.h" +#include "update.h" +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp) +{ + single_enable = 0; +} + +/* ---------------------------------------------------------------------- */ + +PairSpin::~PairSpin() +{ + if (allocated) { + memory->destroy(setflag); + memory->destroy(cut_spin_exchange); + memory->destroy(cut_spin_dipolar); + memory->destroy(J_1); + memory->destroy(J_2); + memory->destroy(J_2); + + memory->destroy(cutsq); + + } +} + +/* ---------------------------------------------------------------------- */ + +void PairSpin::compute(int eflag, int vflag) +{ + + double **x = atom->x; + double **fm = atom->fm; + double *mumag = atom->mumag; + double **sp = atom->sp; + int *type = atom->type; + + int i,j,ii,jj,inum,jnum,itype,jtype; + double xtmp,ytmp,ztmp,fmix,fmiy,fmiz,fmjx,fmjy,fmjz,omx,omy,omz; + double rsq,rd,delx,dely,delz; + int *ilist,*jlist,*numneigh,**firstneigh; + double cut, Jex, ra; + + double evdwl,ecoul; + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // Pair spin computations + // Loop over neighbors of my atoms + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + //Exchange interaction + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; //square or inter-atomic distance + rd = sqrt(rsq); //Inter-atomic distance + cut = cut_spin_exchange_global; + + if (rd <= cut) { + itype = type[i]; + jtype = type[j]; + fmix = fmiy = fmiz = 0.0; + fmjx = fmjy = fmjz = 0.0; + + ra = (rd/J_3[itype][jtype])*(rd/J_3[itype][jtype]); + Jex = 4.0*J_1[itype][jtype]*ra; + Jex *= (1.0-J_2[itype][jtype]*ra); + Jex *= exp(-ra); + Jex *= mumag[ii]*mumag[jj]; + + fmix = Jex*sp[j][0]; + fmiy = Jex*sp[j][1]; + fmiz = Jex*sp[j][2]; + + //fmjx = Jex*sp[i][0]; + //fmjy = Jex*sp[i][1]; + //fmjz = Jex*sp[i][2]; + } + + fm[i][0] += fmix; + fm[i][1] += fmiy; + fm[i][2] += fmiz; + + //fm[j][0] += fmjx; + //fm[j][1] += fmjy; + //fm[j][2] += fmjz; + } + } + //printf("vals exchange: Jx=%g, Jy=%g, Jz=%g \n",fm[0][0],fm[0][1],fm[0][2]); + //printf("test exchange. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairSpin::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(cut_spin_exchange,n+1,n+1,"pair:cut_spin_exchange"); + memory->create(cut_spin_dipolar,n+1,n+1,"pair:cut_spin_dipolar"); + memory->create(J_1,n+1,n+1,"pair:J_1"); + memory->create(J_2,n+1,n+1,"pair:J_2"); + memory->create(J_3,n+1,n+1,"pair:J_3"); + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpin::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); + + if (strcmp(update->unit_style,"electron") == 0) + error->all(FLERR,"Cannot (yet) use 'electron' units with spins"); + + cut_spin_exchange_global = force->numeric(FLERR,arg[0]); + + if (narg == 1) cut_spin_dipolar_global = cut_spin_exchange_global; + else cut_spin_dipolar_global = force->numeric(FLERR,arg[1]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i+1; j <= atom->ntypes; j++) + if (setflag[i][j]) { + cut_spin_exchange[i][j] = cut_spin_exchange_global; + cut_spin_dipolar[i][j] = cut_spin_dipolar_global; + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpin::coeff(int narg, char **arg) +{ + + if (narg != 5) + error->all(FLERR,"Incorrect number of args for pair spin 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 J1 = force->numeric(FLERR,arg[2]); + double J2 = force->numeric(FLERR,arg[3]); + double J3 = force->numeric(FLERR,arg[4]); + + double hbar = force->hplanck/MY_2PI; + J1 /= hbar; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + J_1[i][j] = J1; + J_2[i][j] = J2; + J_3[i][j] = J3; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args for spinpair coefficients"); + + //Simple (Anti)Ferromagnetic exchange for now. + //Check if Jex [][] still works for Ferrimagnetic exchange + +} + + + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpin::init_style() +{ + if (!atom->sp_flag || !atom->mumag_flag) + error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + + neighbor->request(this,instance_me); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpin::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_spin_exchange_global; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpin::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(&J_1[i][j],sizeof(double),1,fp); + fwrite(&J_2[i][j],sizeof(double),1,fp); + fwrite(&J_3[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_exchange[i][j],sizeof(double),1,fp); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpin::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(&J_1[i][j],sizeof(double),1,fp); + fread(&J_2[i][j],sizeof(double),1,fp); + fread(&J_2[i][j],sizeof(double),1,fp); + fread(&cut_spin_exchange[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&J_1[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J_2[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J_3[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_exchange[i][j],1,MPI_DOUBLE,0,world); + } + } +} + + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpin::write_restart_settings(FILE *fp) +{ + fwrite(&cut_spin_exchange_global,sizeof(double),1,fp); + fwrite(&cut_spin_dipolar_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpin::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_spin_exchange_global,sizeof(double),1,fp); + fread(&cut_spin_dipolar_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_spin_exchange_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_dipolar_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +} diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h new file mode 100755 index 0000000000..abdc1978c1 --- /dev/null +++ b/src/SPIN/pair_spin.h @@ -0,0 +1,75 @@ +/* -*- 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(pair/spin,PairSpin) + +#else + +#ifndef LMP_PAIR_SPIN_H +#define LMP_PAIR_SPIN_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairSpin : public Pair { + public: + PairSpin(class LAMMPS *); + virtual ~PairSpin(); + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + void init_style(); + double init_one(int, int); + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + + protected: + double cut_spin_exchange_global, cut_spin_dipolar_global; //Global cutting distance + double **cut_spin_exchange; //cutting distance for each exchange interaction + double **cut_spin_dipolar; //cutting distance for the dipolar interaction + + double **J_1, **J_2, **J_3; //coefficients for computing the exchange interaction Jij + //J1 is an energy (in eV), J2 is adim and J3 is a distance (in Ang) + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args in pair_style command + +Self-explanatory. + +E: Cannot (yet) use 'electron' units with spins + +This feature is not yet supported. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: Pair spin requires atom attributes sp, mumag + +The atom style defined does not have these attributes. + +*/ diff --git a/src/atom.cpp b/src/atom.cpp index ae36a8884b..a847719e7e 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -98,6 +98,10 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) rho = drho = e = de = cv = NULL; vest = NULL; + // USER-SPIN + mumag = NULL; + sp = fm = NULL; + // USER-DPD uCond = uMech = uChem = uCG = uCGnew = NULL; @@ -167,6 +171,9 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) omega_flag = torque_flag = angmom_flag = 0; radius_flag = rmass_flag = 0; ellipsoid_flag = line_flag = tri_flag = body_flag = 0; + + //Magnetic flags + sp_flag = mumag_flag = 0; vfrac_flag = 0; spin_flag = eradius_flag = ervel_flag = erforce_flag = ervelforce_flag = 0; @@ -421,6 +428,9 @@ void Atom::create_avec(const char *style, int narg, char **arg, int trysuffix) radius_flag = rmass_flag = 0; ellipsoid_flag = line_flag = tri_flag = body_flag = 0; + //Magnetic flags + sp_flag = mumag_flag = 0; + vfrac_flag = 0; spin_flag = eradius_flag = ervel_flag = erforce_flag = ervelforce_flag = 0; cs_flag = csforce_flag = vforce_flag = etag_flag = 0; @@ -494,7 +504,7 @@ AtomVec *Atom::new_avec(const char *style, int trysuffix, int &sflag) AtomVecCreator avec_creator = (*avec_map)[style]; return avec_creator(lmp); } - + //printf("test entries function: %s, %d, %d \n ",style, trysuffix, &sflag); error->all(FLERR,"Unknown atom style"); return NULL; } diff --git a/src/atom.h b/src/atom.h index abfa6e5eb5..8e7f9811ac 100644 --- a/src/atom.h +++ b/src/atom.h @@ -61,6 +61,10 @@ class Atom : protected Pointers { double *radius,*rmass; int *ellipsoid,*line,*tri,*body; + // SPIN package + double *mumag, **sp; + double **fm; + // PERI package double *vfrac,*s0; @@ -146,6 +150,9 @@ class Atom : protected Pointers { int rho_flag,e_flag,cv_flag,vest_flag; int dpd_flag,edpd_flag,tdpd_flag; + //USER-SPIN package + int mumag_flag,sp_flag; + // USER-SMD package int smd_flag; diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 34ab218204..04ffc3b29b 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -41,6 +41,7 @@ enum{ID,MOL,PROC,PROCP1,TYPE,ELEMENT,MASS, IX,IY,IZ, VX,VY,VZ,FX,FY,FZ, Q,MUX,MUY,MUZ,MU,RADIUS,DIAMETER, + MUMAG,SPX,SPY,SPZ,SP, OMEGAX,OMEGAY,OMEGAZ,ANGMOMX,ANGMOMY,ANGMOMZ, TQX,TQY,TQZ, COMPUTE,FIX,VARIABLE,INAME,DNAME}; @@ -83,8 +84,8 @@ DumpCustom::DumpCustom(LAMMPS *lmp, int narg, char **arg) : pack_choice = new FnPtrPack[nfield]; vtype = new int[nfield]; - memory->create(field2index,nfield,"dump:field2index"); - memory->create(argindex,nfield,"dump:argindex"); + field2index = new int[nfield]; + argindex = new int[nfield]; buffer_allow = 1; buffer_flag = 1; @@ -201,8 +202,8 @@ DumpCustom::~DumpCustom() delete [] pack_choice; delete [] vtype; - memory->destroy(field2index); - memory->destroy(argindex); + delete [] field2index; + delete [] argindex; delete [] idregion; memory->destroy(thresh_array); @@ -245,15 +246,11 @@ DumpCustom::~DumpCustom() for (int i = 1; i <= ntypes; i++) delete [] typenames[i]; delete [] typenames; - if(vformat) { - for (int i = 0; i < size_one; i++) delete [] vformat[i]; - delete [] vformat; - } + for (int i = 0; i < size_one; i++) delete [] vformat[i]; + delete [] vformat; - if(format_column_user) { - for (int i = 0; i < size_one; i++) delete [] format_column_user[i]; - delete [] format_column_user; - } + for (int i = 0; i < size_one; i++) delete [] format_column_user[i]; + delete [] format_column_user; delete [] columns; } @@ -857,6 +854,36 @@ int DumpCustom::count() for (i = 0; i < nlocal; i++) dchoose[i] = 2.0*radius[i]; ptr = dchoose; nstride = 1; + } else if (thresh_array[ithresh] == MUMAG) {//Magnetic properties + if (!atom->mumag_flag) + error->all(FLERR, + "Threshold for an atom property that isn't allocated"); + ptr = atom->mumag; + nstride = 1; + } else if (thresh_array[ithresh] == SPX) { + if (!atom->sp_flag) + error->all(FLERR, + "Threshold for an atom property that isn't allocated"); + ptr = &atom->sp[0][0]; + nstride = 4; + } else if (thresh_array[ithresh] == SPY) { + if (!atom->sp_flag) + error->all(FLERR, + "Threshold for an atom property that isn't allocated"); + ptr = &atom->sp[0][1]; + nstride = 4; + } else if (thresh_array[ithresh] == SPZ) { + if (!atom->sp_flag) + error->all(FLERR, + "Threshold for an atom property that isn't allocated"); + ptr = &atom->sp[0][2]; + nstride = 4; + } else if (thresh_array[ithresh] == SP) { + if (!atom->sp_flag) + error->all(FLERR, + "Threshold for an atom property that isn't allocated"); + ptr = &atom->sp[0][3]; + nstride = 4; } else if (thresh_array[ithresh] == OMEGAX) { if (!atom->omega_flag) error->all(FLERR, @@ -1285,6 +1312,35 @@ int DumpCustom::parse_fields(int narg, char **arg) pack_choice[i] = &DumpCustom::pack_mu; vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"mumag") == 0) {//Magnetic properties + if (!atom->mumag_flag) + error->all(FLERR,"Dumping an atom property that isn't allocated"); + pack_choice[i] = &DumpCustom::pack_mumag; + vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"spx") == 0) { + strcpy(arg[iarg],"vx"); + if (!atom->sp_flag) + error->all(FLERR,"Dumping an atom property that isn't allocated"); + pack_choice[i] = &DumpCustom::pack_spx; + vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"spy") == 0) { + strcpy(arg[iarg],"vy"); + if (!atom->sp_flag) + error->all(FLERR,"Dumping an atom property that isn't allocated"); + pack_choice[i] = &DumpCustom::pack_spy; + vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"spz") == 0) { + strcpy(arg[iarg],"vz"); + if (!atom->sp_flag) + error->all(FLERR,"Dumping an atom property that isn't allocated"); + pack_choice[i] = &DumpCustom::pack_spz; + vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"sp") == 0) { + if (!atom->sp_flag) + error->all(FLERR,"Dumping an atom property that isn't allocated"); + pack_choice[i] = &DumpCustom::pack_sp; + vtype[i] = DOUBLE; + } else if (strcmp(arg[iarg],"radius") == 0) { if (!atom->radius_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); @@ -1787,6 +1843,13 @@ int DumpCustom::modify_param(int narg, char **arg) else if (strcmp(arg[1],"muy") == 0) thresh_array[nthresh] = MUY; else if (strcmp(arg[1],"muz") == 0) thresh_array[nthresh] = MUZ; else if (strcmp(arg[1],"mu") == 0) thresh_array[nthresh] = MU; + + //Magnetic quantities + else if (strcmp(arg[1],"mumag") == 0) thresh_array[nthresh] = MUMAG; + else if (strcmp(arg[1],"spx") == 0) thresh_array[nthresh] = SPX; + else if (strcmp(arg[1],"spy") == 0) thresh_array[nthresh] = SPY; + else if (strcmp(arg[1],"spz") == 0) thresh_array[nthresh] = SPZ; + else if (strcmp(arg[1],"sp") == 0) thresh_array[nthresh] = SP; else if (strcmp(arg[1],"radius") == 0) thresh_array[nthresh] = RADIUS; else if (strcmp(arg[1],"diameter") == 0) thresh_array[nthresh] = DIAMETER; @@ -2701,6 +2764,66 @@ void DumpCustom::pack_mu(int n) } } +/* ---------------------------------------------------------------------- */ +//Magnetic quantities +void DumpCustom::pack_mumag(int n) +{ + double *mumag = atom->mumag; + + for (int i = 0; i < nchoose; i++) { + buf[n] = mumag[clist[i]]; + n += size_one; + } +} + +/* ---------------------------------------------------------------------- */ + +void DumpCustom::pack_spx(int n) +{ + double **sp = atom->sp; + + for (int i = 0; i < nchoose; i++) { + buf[n] = sp[clist[i]][0]; + n += size_one; + } +} + +/* ---------------------------------------------------------------------- */ + +void DumpCustom::pack_spy(int n) +{ + double **sp = atom->sp; + + for (int i = 0; i < nchoose; i++) { + buf[n] = sp[clist[i]][1]; + n += size_one; + } +} + +/* ---------------------------------------------------------------------- */ + +void DumpCustom::pack_spz(int n) +{ + double **sp = atom->sp; + + for (int i = 0; i < nchoose; i++) { + buf[n] = sp[clist[i]][2]; + n += size_one; + } +} + +/* ---------------------------------------------------------------------- */ + +void DumpCustom::pack_sp(int n) +{ + double **sp = atom->sp; + + for (int i = 0; i < nchoose; i++) { + buf[n] = sp[clist[i]][3]; + n += size_one; + } +} + /* ---------------------------------------------------------------------- */ void DumpCustom::pack_radius(int n) diff --git a/src/dump_custom.h b/src/dump_custom.h index 1420d69b9b..c96148f275 100644 --- a/src/dump_custom.h +++ b/src/dump_custom.h @@ -178,6 +178,11 @@ class DumpCustom : public Dump { void pack_muy(int); void pack_muz(int); void pack_mu(int); + void pack_mumag(int); //Magnetic quantities + void pack_spx(int); + void pack_spy(int); + void pack_spz(int); + void pack_sp(int); void pack_radius(int); void pack_diameter(int); diff --git a/src/set.cpp b/src/set.cpp index 77cae4cb09..6758b74445 100644 --- a/src/set.cpp +++ b/src/set.cpp @@ -44,7 +44,7 @@ using namespace MathConst; enum{ATOM_SELECT,MOL_SELECT,TYPE_SELECT,GROUP_SELECT,REGION_SELECT}; enum{TYPE,TYPE_FRACTION,MOLECULE,X,Y,Z,CHARGE,MASS,SHAPE,LENGTH,TRI, - DIPOLE,DIPOLE_RANDOM,QUAT,QUAT_RANDOM,THETA,THETA_RANDOM,ANGMOM,OMEGA, + DIPOLE,DIPOLE_RANDOM,SPIN,SPIN_RANDOM,QUAT,QUAT_RANDOM,THETA,THETA_RANDOM,ANGMOM,OMEGA, DIAMETER,DENSITY,VOLUME,IMAGE,BOND,ANGLE,DIHEDRAL,IMPROPER, MESO_E,MESO_CV,MESO_RHO,EDPD_TEMP,EDPD_CV,CC,SMD_MASS_DENSITY, SMD_CONTACT_RADIUS,DPDTHETA,INAME,DNAME}; @@ -215,6 +215,34 @@ void Set::command(int narg, char **arg) setrandom(DIPOLE_RANDOM); iarg += 3; + } else if (strcmp(arg[iarg],"spin") == 0) { + if (iarg+4 > narg) error->all(FLERR,"Illegal set command"); + if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); + else dvalue = force->numeric(FLERR,arg[iarg+1]); + if (strstr(arg[iarg+2],"v_") == arg[iarg+2]) varparse(arg[iarg+2],2); + else xvalue = force->numeric(FLERR,arg[iarg+2]); + if (strstr(arg[iarg+3],"v_") == arg[iarg+3]) varparse(arg[iarg+3],3); + else yvalue = force->numeric(FLERR,arg[iarg+3]); + if (strstr(arg[iarg+4],"v_") == arg[iarg+4]) varparse(arg[iarg+4],4); + else zvalue = force->numeric(FLERR,arg[iarg+4]); + if (!atom->sp_flag) + error->all(FLERR,"Cannot set this attribute for this atom style"); + set(SPIN); + iarg += 5; + + } else if (strcmp(arg[iarg],"spin/random") == 0) { + if (iarg+3 > narg) error->all(FLERR,"Illegal set command"); + ivalue = force->inumeric(FLERR,arg[iarg+1]); + dvalue = force->numeric(FLERR,arg[iarg+2]); + if (!atom->sp_flag) + error->all(FLERR,"Cannot set this attribute for this atom style"); + if (ivalue <= 0) + error->all(FLERR,"Invalid random number seed in set command"); + if (dvalue <= 0.0) + error->all(FLERR,"Invalid dipole length in set command"); + setrandom(SPIN_RANDOM); + iarg += 3; + } else if (strcmp(arg[iarg],"quat") == 0) { if (iarg+5 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); @@ -821,6 +849,21 @@ void Set::set(int keyword) mu[i][2]*mu[i][2]); } + // set magnetic moments + + else if (keyword == SPIN) { + double **sp = atom->sp; + double *mumag = atom->mumag; + double sp_norm = sqrt(xvalue*xvalue+yvalue*yvalue+zvalue*zvalue); + sp[i][0] = xvalue/sp_norm; + sp[i][1] = yvalue/sp_norm; + sp[i][2] = zvalue/sp_norm; + sp[i][3] = sqrt(sp[i][0]*sp[i][0] + sp[i][1]*sp[i][1] + + sp[i][2]*sp[i][2]); //Should be 1 for atomic spins + mumag[i] = sp_norm; + } + + // set quaternion orientation of ellipsoid or tri or body particle // set quaternion orientation of ellipsoid or tri or body particle // enforce quat rotation vector in z dir for 2d systems @@ -981,6 +1024,51 @@ void Set::setrandom(int keyword) } } + + // set spin moments to random orientations in 3d or 2d + // spin length is fixed to unity + + } else if (keyword == SPIN_RANDOM) { + double **sp = atom->sp; + double *mumag = atom->mumag; + int nlocal = atom->nlocal; + + double sp_sq,scale; + + if (domain->dimension == 3) { + for (i = 0; i < nlocal; i++) + if (select[i]) { + random->reset(seed,x[i]); + sp[i][0] = random->uniform() - 0.5; + sp[i][1] = random->uniform() - 0.5; + sp[i][2] = random->uniform() - 0.5; + sp_sq = sp[i][0]*sp[i][0] + sp[i][1]*sp[i][1] + sp[i][2]*sp[i][2]; + scale = 1.0/sqrt(sp_sq); + sp[i][0] *= scale; + sp[i][1] *= scale; + sp[i][2] *= scale; + sp[i][3] = sqrt(sp_sq); + mumag[i] = dvalue; + count++; + } + + } else { + for (i = 0; i < nlocal; i++) + if (select[i]) { + random->reset(seed,x[i]); + sp[i][0] = random->uniform() - 0.5; + sp[i][1] = random->uniform() - 0.5; + sp[i][2] = 0.0; + sp_sq = sp[i][0]*sp[i][0] + sp[i][1]*sp[i][1]; + scale = 1.0/sqrt(sp_sq); + sp[i][0] *= scale; + sp[i][1] *= scale; + sp[i][3] = sqrt(sp_sq); + mumag[i] = dvalue; + count++; + } + } + // set quaternions to random orientations in 3d and 2d } else if (keyword == QUAT_RANDOM) { diff --git a/src/verlet.cpp b/src/verlet.cpp index 019f3f2f05..7bac6d7647 100644 --- a/src/verlet.cpp +++ b/src/verlet.cpp @@ -75,6 +75,7 @@ void Verlet::init() torqueflag = extraflag = 0; if (atom->torque_flag) torqueflag = 1; if (atom->avec->forceclearflag) extraflag = 1; + if (atom->mumag_flag) extraflag = 1; // orthogonal vs triclinic simulation box @@ -385,6 +386,8 @@ void Verlet::force_clear() if (nbytes) { memset(&atom->f[0][0],0,3*nbytes); + //test memset for fm + //memset(&atom->fm[0][0],0,3*nbytes); if (torqueflag) memset(&atom->torque[0][0],0,3*nbytes); if (extraflag) atom->avec->force_clear(0,nbytes); } From bf18d842734e550bfd5a395bad98627efcf0200b Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 15 May 2017 08:02:16 -0600 Subject: [PATCH 019/675] Same commit, with input (mag. cobalt) and vmd files --- in.cobalt | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++ vmd_nano.vmd | 79 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 in.cobalt create mode 100644 vmd_nano.vmd diff --git a/in.cobalt b/in.cobalt new file mode 100644 index 0000000000..dcb70e4a62 --- /dev/null +++ b/in.cobalt @@ -0,0 +1,95 @@ +################### +#######Init######## +################### + +clear +#setting units. default: lj(unitless). Others: metal(Ang, picosecs, eV, ...), real(Ang, femtosecs, Kcal/mol, ...), ... +units metal + +#setting dimension of the system (N=2 or 3) +dimension 3 + +#setting boundary conditions. (p for periodic, f for fixed, ...) +boundary p p p +#boundary f f f + +#setting atom_style, defines what can of atoms to use in simulation (atomic, molecule, angle, dipole, ...) +atom_style spin +#atom_style hybrid sphere spin + + +########################### +#######Create atoms######## +########################### + +#Lattice constant of fcc Cobalt +lattice fcc 3.54 + +#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen +#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) +region box block 0.0 2.0 0.0 2.0 0.0 2.0 + +#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. +create_box 1 box + +#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... +#Entries: atom type, +create_atoms 1 box + +#Replicating NxNxN the entire set of atoms +#replicate 1 1 1 + + +####################### +#######Settings######## +####################### + +#Setting one or more properties of one or more atoms. +#Setting mass +mass 1 1.0 +#set group all mass 1.0 +#Setting spins orientation and moment +#set group all spin/random 11 1.7 +set group all spin 1.7 0.0 1.0 0.0 + +#Magnetic exchange interaction coefficient for bulk fcc Cobalt +pair_style pair/spin 4.0 +pair_coeff * * 0.0446928 0.003496 1.4885 +#pair_coeff * * 0.0 0.003496 1.4885 + +#Fix Langevin spins (merging damping and temperature) +#Defines a cutof distance for the neighbors. +#neighbor 0.5 bin +#Magnetic field fix +fix 1 all force/spin zeeman 50 0.0 0.0 1.0 +#fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.1 0.0 0.0 1.0 + +#Fix Langevin spins (merging damping and temperature) +fix 2 all langevin/spin 0.0 0.1 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all nve/spin + +#compute total magnetization and magnetic energy +compute mag all compute/spin +fix outmag all ave/time 1 1 100 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] file mag.dat + +#Defining a computation that will be performed on a group of atoms. +#Entries: ID(user assigned), group-ID(group of atoms to peform the sim on), style(temp, pe, ...), args + +#Setting the timestep for the simulation +timestep 0.000005 + +################## +#######run######## +################## + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 100 dump_spin.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +run 10 + + diff --git a/vmd_nano.vmd b/vmd_nano.vmd new file mode 100644 index 0000000000..4ba4cb3841 --- /dev/null +++ b/vmd_nano.vmd @@ -0,0 +1,79 @@ +proc vmd_draw_arrow {mol start end} { + set middle [vecadd $start [vecscale 0.9 [vecsub $end $start]]] + graphics $mol cylinder $start $middle radius 0.05 + graphics $mol cone $middle $end radius 0.01 color 3 +} + +proc vmd_draw_vector {args} { + set usage {"draw vector {x1 y1 z1} {x2 y2 z2} [scale ] [resolution ] [radius ] [filled ]"} + # defaults + set scale 3.0 + set res 5 + set radius 0.1 + set filled yes + + if {[llength $args] < 3} { + error "wrong # args: should be $usage" + } + set mol [lindex $args 0] + set center [lindex $args 1] + set vector [lindex $args 2] + if {[llength $center] != 3 || [llength $vector] != 3} { + error "wrong type of args: should be $usage" + } + + foreach {flag value} [lrange $args 3 end] { + switch -glob $flag { + scale {set scale $value} + res* {set res $value} + rad* {set radius $value} + fill* {set filled $value} + default {error "unknown option '$flag': should be $usage" } + } + } + + set vechalf [vecscale [expr $scale * 0.5] $vector] + return [list \ + [graphics $mol color yellow]\ + [graphics $mol cylinder [vecsub $center $vechalf]\ + [vecadd $center [vecscale 0.7 $vechalf]] \ + radius $radius resolution $res filled $filled] \ + [graphics $mol color orange]\ + [graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \ + [vecadd $center $vechalf] radius [expr $radius * 2.5] \ + resolution $res]] +} + +proc vmd_draw_spin {args} { + global molid + graphics $molid delete all + set frame [molinfo $molid get frame] + set natoms [molinfo $molid get numatoms] + for {set i 0} {$i < $natoms} {incr i} { + set sel [atomselect top "index $i"] +# set sel [atomselect top "index 1200"] + set coords [lindex [$sel get {x y z}] $molid] + set velocities [lindex [$sel get {vx vy vz}] $molid] + draw vector $coords $velocities + set uvx [lindex [$sel get {vx}] $molid] + set uvy [lindex [$sel get {vy}] $molid] + set uvz [lindex [$sel get {vz}] $molid] + $sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]] + $sel set user $uvy + #draw vector $coords {0.0 uvy 0.0} + } + #pbc box -color 3 +} + +proc enable_trace {} { + global vmd_frame + trace variable vmd_frame([molinfo top]) w vmd_draw_spin + } + +set molid [mol addfile {/ascldap/users/jtranch/Documents/Test_lammps_Spin3/src/dump_spin.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] +scale by 0.5 +animate style Loop +enable_trace + + + From 3168704858af6073b0c890c963711b67c8c9b1ed Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 16 May 2017 08:13:20 -0600 Subject: [PATCH 020/675] For paramagnetic simulation (no pair interaction declared), the "atom_modify" command has to be used (in order to initialize the bin). example: atom_modify sort 1000 4.0 (Freq. of sorting, Cutoff distance) In order to print the actual time with the total mag., the vector associated to the mag. compute was modified. It is now: [time, Mx, My, Mz, |M|, En_mag] Optimization of the spin_compute routine: energy and mag. have been gathered in a same loop. --- in.cobalt | 21 +++++++++++---------- src/SPIN/compute_spin.cpp | 37 ++++++++++++++----------------------- src/SPIN/fix_force_spin.cpp | 2 +- vmd_nano.vmd | 2 +- 4 files changed, 27 insertions(+), 35 deletions(-) diff --git a/in.cobalt b/in.cobalt index dcb70e4a62..72fcb30faf 100644 --- a/in.cobalt +++ b/in.cobalt @@ -10,13 +10,14 @@ units metal dimension 3 #setting boundary conditions. (p for periodic, f for fixed, ...) -boundary p p p +#boundary p p p #boundary f f f #setting atom_style, defines what can of atoms to use in simulation (atomic, molecule, angle, dipole, ...) atom_style spin #atom_style hybrid sphere spin +atom_modify sort 1000 4.0 ########################### #######Create atoms######## @@ -27,7 +28,7 @@ lattice fcc 3.54 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 2.0 0.0 2.0 0.0 2.0 +region box block 0.0 1.0 0.0 1.0 0.0 1.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box @@ -50,18 +51,18 @@ mass 1 1.0 #set group all mass 1.0 #Setting spins orientation and moment #set group all spin/random 11 1.7 -set group all spin 1.7 0.0 1.0 0.0 +set group all spin 1.7 1.0 0.0 0.0 #Magnetic exchange interaction coefficient for bulk fcc Cobalt -pair_style pair/spin 4.0 -pair_coeff * * 0.0446928 0.003496 1.4885 +#pair_style pair/spin 4.0 +#pair_coeff * * 0.0446928 0.003496 1.4885 #pair_coeff * * 0.0 0.003496 1.4885 #Fix Langevin spins (merging damping and temperature) #Defines a cutof distance for the neighbors. #neighbor 0.5 bin #Magnetic field fix -fix 1 all force/spin zeeman 50 0.0 0.0 1.0 +fix 1 all force/spin zeeman 10 0.0 0.0 1.0 #fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.1 0.0 0.0 1.0 @@ -74,13 +75,13 @@ fix 3 all nve/spin #compute total magnetization and magnetic energy compute mag all compute/spin -fix outmag all ave/time 1 1 100 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] file mag.dat +fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] file mag.dat #Defining a computation that will be performed on a group of atoms. #Entries: ID(user assigned), group-ID(group of atoms to peform the sim on), style(temp, pe, ...), args #Setting the timestep for the simulation -timestep 0.000005 +timestep 0.00005 ################## #######run######## @@ -90,6 +91,6 @@ timestep 0.000005 dump 1 all custom 100 dump_spin.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 10 - +run 1000000 +#run 100 diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 9ff12ac3dd..a91515a024 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -32,7 +32,7 @@ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); vector_flag = 1; - size_vector = 5; + size_vector = 6; extvector = 0; init(); @@ -61,7 +61,7 @@ void ComputeSpin::compute_vector() int i, index; invoked_vector = update->ntimestep; - + countsp = countsptot = 0.0; mag[0] = mag[1] = mag[2] = mag[3] = 0.0; magtot[0] = magtot[1] = magtot[2] = magtot[3] = 0.0; @@ -77,13 +77,16 @@ void ComputeSpin::compute_vector() int nlocal = atom->nlocal; - // compute total magnetization + // compute total magnetization and magnetic energy for (i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (atom->mumag_flag && atom->sp_flag) { mag[0] += sp[i][0]; mag[1] += sp[i][1]; mag[2] += sp[i][2]; + magenergy += mumag[i]*sp[i][0]*fm[i][0]; + magenergy += mumag[i]*sp[i][1]*fm[i][1]; + magenergy += mumag[i]*sp[i][2]*fm[i][2]; countsp++; } } @@ -91,6 +94,7 @@ void ComputeSpin::compute_vector() } MPI_Allreduce(mag,magtot,4,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&magenergy,&magenergytot,1,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&countsp,&countsptot,1,MPI_DOUBLE,MPI_SUM,world); double scale = 1.0/countsptot; @@ -99,25 +103,12 @@ void ComputeSpin::compute_vector() magtot[2] *= scale; magtot[3] = sqrt(square(magtot[0])+square(magtot[1])+square(magtot[2])); - // compute total magnetic energy - for (i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - if (atom->mumag_flag && atom->sp_flag) { - magenergy += mumag[i]*sp[i][0]*fm[i][0]; - magenergy += mumag[i]*sp[i][1]*fm[i][1]; - magenergy += mumag[i]*sp[i][2]*fm[i][2]; - } - else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); - } - } - - MPI_Allreduce(&magenergy,&magenergytot,1,MPI_DOUBLE,MPI_SUM,world); - - vector[0] = magtot[0]; - vector[1] = magtot[1]; - vector[2] = magtot[2]; - vector[3] = magtot[3]; - vector[4] = magenergytot; + vector[0] = invoked_vector*update->dt; + vector[1] = magtot[0]; + vector[2] = magtot[1]; + vector[3] = magtot[2]; + vector[4] = magtot[3]; + vector[5] = magenergytot; } /* ---------------------------------------------------------------------- @@ -129,6 +120,6 @@ void ComputeSpin::allocate() memory->destroy(mag); memory->create(mag,4,"compute/spin:mag"); memory->create(magtot,5,"compute/spin:mag"); - vector = magtot; + memory->create(vector,6,"compute/spin:vector"); } diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index 0163b32eb9..b33d0f019b 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -189,7 +189,7 @@ void FixForceSpin::post_force(int vflag) //emag -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); } } - //printf("test force. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); + printf("test force. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); //printf("Field force compute, fm[0][2]=%g \n",fm[0][2]); } diff --git a/vmd_nano.vmd b/vmd_nano.vmd index 4ba4cb3841..a8d7db503c 100644 --- a/vmd_nano.vmd +++ b/vmd_nano.vmd @@ -70,7 +70,7 @@ proc enable_trace {} { trace variable vmd_frame([molinfo top]) w vmd_draw_spin } -set molid [mol addfile {/ascldap/users/jtranch/Documents/Test_lammps_Spin3/src/dump_spin.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] +set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump_spin.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] scale by 0.5 animate style Loop enable_trace From af45d55b3ff4ac106d7ec84383bff21970d9d7df Mon Sep 17 00:00:00 2001 From: julient31 Date: Fri, 19 May 2017 13:24:40 -0600 Subject: [PATCH 021/675] Added: - For Paramag. simulations, the option "atom_modify" has to be set ex: atom_modify sort 1000 4.0 (Freq,Dist). - Actual time is now printed (c_mag[0] in compute_spin) - Value of Gilbert's damping corrected - Now even results for SD/Lammps comp. in purely paramg. or aniso. situations - Pack and unpack reverse needed corrections (f only was set, not fm) - Spin temperature is now computed (data c_mag[7] in spin_compute) To do: - Fcc with p p p bc is still not working - If Zeeman/Aniso force not defined, error => to be removed - Add DMI and ME (see if new file or add in the exchange file) --- in.cobalt | 32 ++++++------- src/SPIN/atom_vec_spin.cpp | 34 ++++++++++---- src/SPIN/compute_spin.cpp | 31 ++++++++++--- src/SPIN/compute_spin.h | 4 ++ src/SPIN/fix_force_spin.cpp | 22 +++++---- src/SPIN/fix_langevin_spin.cpp | 11 +++-- src/SPIN/fix_nve_spin.cpp | 17 ++----- src/SPIN/pair_spin.cpp | 83 ++++++++++++++++++++++++---------- src/set.cpp | 2 +- 9 files changed, 154 insertions(+), 82 deletions(-) diff --git a/in.cobalt b/in.cobalt index 72fcb30faf..06b5508fde 100644 --- a/in.cobalt +++ b/in.cobalt @@ -10,14 +10,13 @@ units metal dimension 3 #setting boundary conditions. (p for periodic, f for fixed, ...) -#boundary p p p +boundary p p p #boundary f f f #setting atom_style, defines what can of atoms to use in simulation (atomic, molecule, angle, dipole, ...) atom_style spin -#atom_style hybrid sphere spin - -atom_modify sort 1000 4.0 +#Define sort for paramagnetic simulations (if no pair interaction) +#atom_modify sort 1000 4.0 ########################### #######Create atoms######## @@ -25,10 +24,11 @@ atom_modify sort 1000 4.0 #Lattice constant of fcc Cobalt lattice fcc 3.54 +#lattice sc 3.54 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 1.0 0.0 1.0 0.0 1.0 +region box block 0.0 3.0 0.0 3.0 0.0 3.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box @@ -50,21 +50,21 @@ create_atoms 1 box mass 1 1.0 #set group all mass 1.0 #Setting spins orientation and moment -#set group all spin/random 11 1.7 -set group all spin 1.7 1.0 0.0 0.0 +#set group all spin/random 11 1.72 +set group all spin 1.72 1.0 0.0 0.0 #Magnetic exchange interaction coefficient for bulk fcc Cobalt -#pair_style pair/spin 4.0 -#pair_coeff * * 0.0446928 0.003496 1.4885 +pair_style pair/spin 4.0 +pair_coeff * * 0.0446928 0.003496 1.4885 #pair_coeff * * 0.0 0.003496 1.4885 #Fix Langevin spins (merging damping and temperature) #Defines a cutof distance for the neighbors. #neighbor 0.5 bin #Magnetic field fix -fix 1 all force/spin zeeman 10 0.0 0.0 1.0 +fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 #fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.1 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) fix 2 all langevin/spin 0.0 0.1 0.0 21 @@ -75,22 +75,22 @@ fix 3 all nve/spin #compute total magnetization and magnetic energy compute mag all compute/spin -fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] file mag.dat +fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag.dat #Defining a computation that will be performed on a group of atoms. #Entries: ID(user assigned), group-ID(group of atoms to peform the sim on), style(temp, pe, ...), args #Setting the timestep for the simulation -timestep 0.00005 +timestep 0.000005 ################## #######run######## ################## #Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 100 dump_spin.lammpstrj type x y z spx spy spz +dump 1 all custom 50 dump_spin.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 1000000 -#run 100 +run 200000 +#run 2 diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 6d12a7d4e3..bda03f9b27 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -44,7 +44,6 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) forceclearflag = 1; atom->mumag_flag = atom->sp_flag = 1; - //atom->rmass_flag = 1; } @@ -138,6 +137,7 @@ int AtomVecSpin::pack_comm(int n, int *list, double *buf, buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; } } else { if (domain->triclinic == 0) { @@ -157,6 +157,7 @@ int AtomVecSpin::pack_comm(int n, int *list, double *buf, buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; } } return m; @@ -180,6 +181,7 @@ int AtomVecSpin::pack_comm_vel(int n, int *list, double *buf, buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; buf[m++] = v[j][0]; buf[m++] = v[j][1]; buf[m++] = v[j][2]; @@ -203,6 +205,7 @@ int AtomVecSpin::pack_comm_vel(int n, int *list, double *buf, buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; buf[m++] = v[j][0]; buf[m++] = v[j][1]; buf[m++] = v[j][2]; @@ -219,6 +222,7 @@ int AtomVecSpin::pack_comm_vel(int n, int *list, double *buf, buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; if (mask[i] & deform_groupbit) { buf[m++] = v[j][0] + dvx; buf[m++] = v[j][1] + dvy; @@ -246,6 +250,7 @@ int AtomVecSpin::pack_comm_hybrid(int n, int *list, double *buf) buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; } return m; } @@ -265,6 +270,7 @@ void AtomVecSpin::unpack_comm(int n, int first, double *buf) sp[i][0] = buf[m++]; sp[i][1] = buf[m++]; sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; } } @@ -283,6 +289,7 @@ void AtomVecSpin::unpack_comm_vel(int n, int first, double *buf) sp[i][0] = buf[m++]; sp[i][1] = buf[m++]; sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; v[i][0] = buf[m++]; v[i][1] = buf[m++]; v[i][2] = buf[m++]; @@ -301,6 +308,7 @@ int AtomVecSpin::unpack_comm_hybrid(int n, int first, double *buf) sp[i][0] = buf[m++]; sp[i][1] = buf[m++]; sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; } return m; } @@ -317,6 +325,9 @@ int AtomVecSpin::pack_reverse(int n, int first, double *buf) buf[m++] = f[i][0]; buf[m++] = f[i][1]; buf[m++] = f[i][2]; + buf[m++] = fm[i][0]; + buf[m++] = fm[i][1]; + buf[m++] = fm[i][2]; } return m; } @@ -333,6 +344,9 @@ void AtomVecSpin::unpack_reverse(int n, int *list, double *buf) f[j][0] += buf[m++]; f[j][1] += buf[m++]; f[j][2] += buf[m++]; + fm[j][0] += buf[m++]; + fm[j][1] += buf[m++]; + fm[j][2] += buf[m++]; } } @@ -855,9 +869,10 @@ void AtomVecSpin::pack_data(double **buf) buf[i][6] = sp[i][0]; buf[i][7] = sp[i][1]; buf[i][8] = sp[i][2]; - buf[i][9] = ubuf((image[i] & IMGMASK) - IMGMAX).d; - buf[i][10] = ubuf((image[i] >> IMGBITS & IMGMASK) - IMGMAX).d; - buf[i][11] = ubuf((image[i] >> IMG2BITS) - IMGMAX).d; + buf[i][9] = sp[i][3]; + buf[i][10] = ubuf((image[i] & IMGMASK) - IMGMAX).d; + buf[i][11] = ubuf((image[i] >> IMGBITS & IMGMASK) - IMGMAX).d; + buf[i][12] = ubuf((image[i] >> IMG2BITS) - IMGMAX).d; } } @@ -871,8 +886,9 @@ int AtomVecSpin::pack_data_hybrid(int i, double *buf) buf[1] = sp[i][0]; buf[2] = sp[i][1]; buf[3] = sp[i][2]; + buf[4] = sp[i][3]; - return 4; + return 5; } /* ---------------------------------------------------------------------- @@ -887,9 +903,9 @@ void AtomVecSpin::write_data(FILE *fp, int n, double **buf) "%-1.16e %d %d %d\n", (tagint) ubuf(buf[i][0]).i,(int) ubuf(buf[i][1]).i, buf[i][2],buf[i][3],buf[i][4], - buf[i][5],buf[i][6],buf[i][7],buf[i][8], - (int) ubuf(buf[i][9]).i,(int) ubuf(buf[i][10]).i, - (int) ubuf(buf[i][11]).i); + buf[i][5],buf[i][6],buf[i][7],buf[i][8],buf[i][9], + (int) ubuf(buf[i][10]).i,(int) ubuf(buf[i][11]).i, + (int) ubuf(buf[i][12]).i); } /* ---------------------------------------------------------------------- @@ -898,7 +914,7 @@ void AtomVecSpin::write_data(FILE *fp, int n, double **buf) int AtomVecSpin::write_data_hybrid(FILE *fp, double *buf) { - fprintf(fp," %-1.16e %-1.16e %-1.16e %-1.16e",buf[0],buf[1],buf[2],buf[3]); + fprintf(fp," %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e",buf[0],buf[1],buf[2],buf[3],buf[4]); return 4; } diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index a91515a024..9a0ba20496 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -20,9 +20,12 @@ #include "memory.h" #include "error.h" #include "math_special.h" +#include "math_const.h" +#include "force.h" using namespace LAMMPS_NS; using namespace MathSpecial; +using namespace MathConst; /* ---------------------------------------------------------------------- */ @@ -32,7 +35,7 @@ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); vector_flag = 1; - size_vector = 6; + size_vector = 7; extvector = 0; init(); @@ -52,6 +55,8 @@ ComputeSpin::~ComputeSpin() void ComputeSpin::init() { + hbar = force->hplanck/MY_2PI; + kb = force->boltz; } /* ---------------------------------------------------------------------- */ @@ -59,13 +64,16 @@ void ComputeSpin::init() void ComputeSpin::compute_vector() { int i, index; - + invoked_vector = update->ntimestep; countsp = countsptot = 0.0; mag[0] = mag[1] = mag[2] = mag[3] = 0.0; magtot[0] = magtot[1] = magtot[2] = magtot[3] = 0.0; - magenergy = magenergytot = 0.0; + magenergy = magenergytot = 0.0; + tempnum = tempnumtot = 0.0; + tempdenom = tempdenomtot = 0.0; + spintemperature = 0.0; double **x = atom->x; int *mask = atom->mask; @@ -74,6 +82,7 @@ void ComputeSpin::compute_vector() double *mumag = atom->mumag; double **sp = atom->sp; double **fm = atom->fm; + double tx,ty,tz; int nlocal = atom->nlocal; @@ -86,7 +95,12 @@ void ComputeSpin::compute_vector() mag[2] += sp[i][2]; magenergy += mumag[i]*sp[i][0]*fm[i][0]; magenergy += mumag[i]*sp[i][1]*fm[i][1]; - magenergy += mumag[i]*sp[i][2]*fm[i][2]; + magenergy += mumag[i]*sp[i][2]*fm[i][2]; + tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; + ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; + tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; + tempnum += tx*tx+ty*ty+tz*tz; + tempdenom += sp[i][0]*sp[i][0]+sp[i][1]*sp[i][1]+sp[i][2]*sp[i][2]; countsp++; } } @@ -95,6 +109,8 @@ void ComputeSpin::compute_vector() MPI_Allreduce(mag,magtot,4,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&magenergy,&magenergytot,1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&tempnum,&tempnumtot,1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&tempdenom,&tempdenomtot,1,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&countsp,&countsptot,1,MPI_DOUBLE,MPI_SUM,world); double scale = 1.0/countsptot; @@ -102,13 +118,16 @@ void ComputeSpin::compute_vector() magtot[1] *= scale; magtot[2] *= scale; magtot[3] = sqrt(square(magtot[0])+square(magtot[1])+square(magtot[2])); + spintemperature = hbar*tempnumtot/2.0/kb/tempdenomtot; vector[0] = invoked_vector*update->dt; vector[1] = magtot[0]; vector[2] = magtot[1]; vector[3] = magtot[2]; vector[4] = magtot[3]; - vector[5] = magenergytot; + vector[5] = magenergytot; + vector[6] = spintemperature; + } /* ---------------------------------------------------------------------- @@ -120,6 +139,6 @@ void ComputeSpin::allocate() memory->destroy(mag); memory->create(mag,4,"compute/spin:mag"); memory->create(magtot,5,"compute/spin:mag"); - memory->create(vector,6,"compute/spin:vector"); + memory->create(vector,7,"compute/spin:vector"); } diff --git a/src/SPIN/compute_spin.h b/src/SPIN/compute_spin.h index c4011d5ded..a20b956b01 100644 --- a/src/SPIN/compute_spin.h +++ b/src/SPIN/compute_spin.h @@ -36,6 +36,10 @@ class ComputeSpin : public Compute { double *magtot; double magenergy; double magenergytot; + double tempnum,tempnumtot; + double tempdenom,tempdenomtot; + double spintemperature; + double kb,hbar; int countsp; int countsptot; int usecenter; diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index b33d0f019b..e5abe3a2ca 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -77,8 +77,6 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a Kaz = force->numeric(FLERR,arg[7]); } else error->all(FLERR,"Illegal fix force/spin command"); - //printf("test field in creator: H=%g, Hx=%g, Hy=%g, Hz=%g \n",H_field,Hx,Hy,Hz); - degree2rad = MY_PI/180.0; time_origin = update->ntimestep; @@ -122,13 +120,13 @@ void FixForceSpin::init() } // check variables - if (magstr) { + if (magstr) { magvar = input->variable->find(magstr); if (magvar < 0) error->all(FLERR,"Variable name for fix magnetic field does not exist"); if (!input->variable->equalstyle(magvar)) error->all(FLERR,"Variable for fix magnetic field is invalid style"); - } + } varflag = CONSTANT; if (magfieldstyle != CONSTANT) varflag = EQUAL; @@ -177,19 +175,17 @@ void FixForceSpin::post_force(int vflag) fm[i][0] += mumag[i]*xmag; fm[i][1] += mumag[i]*ymag; fm[i][2] += mumag[i]*zmag; - // emag -= (sp[i][0]*xmag + sp[i][1]*ymag + sp[i][2]*zmag); } } if (style == ANISOTROPY) { for (int i = 0; i < nlocal; i++) { scalar = Kax*sp[i][0] + Kay*sp[i][1] + Kaz*sp[i][2]; - fm[i][0] -= Ka*scalar*Kax; - fm[i][1] -= Ka*scalar*Kay; - fm[i][2] -= Ka*scalar*Kaz; - //emag -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); + fm[i][0] += scalar*xmag; + fm[i][1] += scalar*ymag; + fm[i][2] += scalar*zmag; } } - printf("test force. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); + //printf("test force. 1;i=0, fx=%g, fy=%g, fz=%g, mumag=%g \n",fm[0][0],fm[0][1],fm[0][2],mumag[0]); //printf("Field force compute, fm[0][2]=%g \n",fm[0][2]); } @@ -211,6 +207,12 @@ void FixForceSpin::set_magneticforce() ymag = H_field*Hy; zmag = H_field*Hz; } + if (style == ANISOTROPY) { + xmag = 2.0*Ka*Kax; + ymag = 2.0*Ka*Kay; + zmag = 2.0*Ka*Kaz; + } + } diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index ee8f5c1c49..c22f224f59 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -107,7 +107,7 @@ void FixLangevinSpin::init() if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin should come after all other spin fixes"); dts = update->dt; - Gil_factor = alpha_t/(1.0+(alpha_t)*(alpha_t)); + Gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) double kb = force->boltz; @@ -166,8 +166,8 @@ void FixLangevinSpin::post_force(int vflag) fm[i][1] = fmy; fm[i][2] = fmz; } - - //printf("test damping. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); + + //printf("test damping. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); //apply thermal effects //add random field to fm for (int i = 0; i < nlocal; i++) @@ -183,12 +183,15 @@ void FixLangevinSpin::post_force(int vflag) fm[i][0] += rx;//Adding random field fm[i][1] += ry; fm[i][2] += rz; - + fm[i][0] *= Gil_factor;//Multiplying by Gilbert's prefactor fm[i][1] *= Gil_factor; fm[i][2] *= Gil_factor; } + + //printf("test langevin 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); + //printf("test rand var: %g, sigma=%g \n",(random->uniform()-0.5),sigma); //printf("test rand var: %g, sigma=%g \n",random->gaussian(),sigma); //printf("test random 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 4b9597e988..f156f76c8a 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -15,7 +15,6 @@ #include #include #include "fix_nve_spin.h" -//#include "fix_damping_spin.h" #include "atom.h" #include "atom_vec.h" #include "update.h" @@ -121,9 +120,7 @@ void FixNVESpin::initial_integrate(int vflag) // Advance spins //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 for (int i = 0; i < nlocal; i++) - if (mask[i] & groupbit) - if (sp[i][3] > 0.0) { - + if (mask[i] & groupbit) { cp[0] = cp[1] = cp[2] = 0.0; g[0] = g[1] = g[2] = 0.0; fm2 = (fm[i][0]*fm[i][0])+(fm[i][1]*fm[i][1])+(fm[i][2]*fm[i][2]); @@ -134,10 +131,6 @@ void FixNVESpin::initial_integrate(int vflag) cp[1] = fm[i][2]*sp[i][0]-fm[i][0]*sp[i][2]; cp[2] = fm[i][0]*sp[i][1]-fm[i][1]*sp[i][0]; - //cp[0] = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; - //cp[1] = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; - //cp[2] = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; - g[0] = sp[i][0]+cp[0]*dts; g[1] = sp[i][1]+cp[1]*dts; g[2] = sp[i][2]+cp[2]*dts; @@ -146,9 +139,9 @@ void FixNVESpin::initial_integrate(int vflag) g[1] += (fm[i][1]*energy-0.5*sp[i][1]*fm2)*0.5*dts*dts; g[2] += (fm[i][2]*energy-0.5*sp[i][2]*fm2)*0.5*dts*dts; - g[0] /= (1+(fmsq*dts*0.5)*(fmsq*dts*0.5)); - g[1] /= (1+(fmsq*dts*0.5)*(fmsq*dts*0.5)); - g[2] /= (1+(fmsq*dts*0.5)*(fmsq*dts*0.5)); + g[0] /= (1+0.25*fm2*dts*dts); + g[1] /= (1+0.25*fm2*dts*dts); + g[2] /= (1+0.25*fm2*dts*dts); sp[i][0] = g[0]; sp[i][1] = g[1]; @@ -161,7 +154,7 @@ void FixNVESpin::initial_integrate(int vflag) sp[i][1] *= scale; sp[i][2] *= scale; - // printf("test fix integ. 1;i=%d, fx=%g, fy=%g, fz=%g \n",i,fm[i][0],fm[i][1],fm[i][2]); + //printf("test fix integ. 1;i=%d, fx=%g, fy=%g, fz=%g \n",i,fm[i][0],fm[i][1],fm[i][2]); //printf("test fix integ.; i=%d, sx=%g, sy=%g, sz=%g, norm=%g \n",i,sp[i][0],sp[i][1],sp[i][2],scale); } diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index 975dcfc012..a2c75cbc90 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -41,14 +41,13 @@ PairSpin::~PairSpin() { if (allocated) { memory->destroy(setflag); + memory->destroy(cut_spin_exchange); memory->destroy(cut_spin_dipolar); memory->destroy(J_1); memory->destroy(J_2); memory->destroy(J_2); - memory->destroy(cutsq); - } } @@ -56,23 +55,24 @@ PairSpin::~PairSpin() void PairSpin::compute(int eflag, int vflag) { - + int i,j,ii,jj,inum,jnum,itype,jtype; + double evdwl,ecoul; + double xtmp,ytmp,ztmp,fmix,fmiy,fmiz,fmjx,fmjy,fmjz,omx,omy,omz; + double cut, Jex, ra; + double rsq,rd,delx,dely,delz; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + double **x = atom->x; double **fm = atom->fm; double *mumag = atom->mumag; double **sp = atom->sp; int *type = atom->type; - - int i,j,ii,jj,inum,jnum,itype,jtype; - double xtmp,ytmp,ztmp,fmix,fmiy,fmiz,fmjx,fmjy,fmjz,omx,omy,omz; - double rsq,rd,delx,dely,delz; - int *ilist,*jlist,*numneigh,**firstneigh; - double cut, Jex, ra; - - double evdwl,ecoul; - evdwl = ecoul = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; inum = list->inum; ilist = list->ilist; @@ -81,6 +81,7 @@ void PairSpin::compute(int eflag, int vflag) // Pair spin computations // Loop over neighbors of my atoms + for (ii = 0; ii < inum; ii++) { i = ilist[ii]; xtmp = x[i][0]; @@ -88,10 +89,21 @@ void PairSpin::compute(int eflag, int vflag) ztmp = x[i][2]; jlist = firstneigh[i]; jnum = numneigh[i]; - + + //printf(":::::::Loop for atom numb. %d, jnum=%d ::::::: \n",i,jnum); + + //printf("Test print real atom: i=%d, sx=%g, sy=%g, sz=%g \n",i,sp[i][0],sp[i][1],sp[i][2]); + //printf("Test print real atom: i=%d, rx=%g, ry=%g, rz=%g \n",i,x[i][0],x[i][1],x[i][2]); + + int testcount=0; + //Exchange interaction for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; + j &= NEIGHMASK; + + fmix = fmiy = fmiz = 0.0; + fmjx = fmjy = fmjz = 0.0; delx = xtmp - x[j][0]; dely = ytmp - x[j][1]; @@ -103,8 +115,6 @@ void PairSpin::compute(int eflag, int vflag) if (rd <= cut) { itype = type[i]; jtype = type[j]; - fmix = fmiy = fmiz = 0.0; - fmjx = fmjy = fmjz = 0.0; ra = (rd/J_3[itype][jtype])*(rd/J_3[itype][jtype]); Jex = 4.0*J_1[itype][jtype]*ra; @@ -116,22 +126,47 @@ void PairSpin::compute(int eflag, int vflag) fmiy = Jex*sp[j][1]; fmiz = Jex*sp[j][2]; - //fmjx = Jex*sp[i][0]; - //fmjy = Jex*sp[i][1]; - //fmjz = Jex*sp[i][2]; + fmjx = Jex*sp[i][0]; + fmjy = Jex*sp[i][1]; + fmjz = Jex*sp[i][2]; + + + + //printf("Neighb pair: i=%d, j=%d \n",i,j); + //printf("Test print ghost/real neib atom: i=%d, j=%d, sx=%g, sy=%g, sz=%g \n",i,j,sp[j][0],sp[j][1],sp[j][2]); + //printf("Test g/r neib pair: i=%d, j=%d, rx=%g, ry=%g, rz=%g \n",i,j,x[j][0],x[j][1],x[j][2]); + //printf("Atom i: %d of type %d, Atom j: %d of type %d, \n",i,itype,j,jtype); + //printf("Exchange pair (%d,%d), Jij=%g, rij=%g \n",i,j,Jex,rd); + testcount++; } + + //printf("Test print ghost/real atom: j=%d, sx=%g, sy=%g, sz=%g \n",j,sp[j][0],sp[j][1],sp[j][2]); + //printf("Test print ghost/real atom: j=%d, rx=%g, ry=%g, rz=%g \n",j,x[j][0],x[j][1],x[j][2]); + fm[i][0] += fmix; fm[i][1] += fmiy; fm[i][2] += fmiz; - //fm[j][0] += fmjx; - //fm[j][1] += fmjy; - //fm[j][2] += fmjz; - } + if (newton_pair || j < nlocal) { + fm[j][0] += fmjx; + fm[j][1] += fmjy; + fm[j][2] += fmjz; + } + + //printf("Val fm %d: [%g,%g,%g] \n",i,fm[i][0],fm[i][1],fm[i][2]); + //printf("Val fm %d: [%g,%g,%g] \n",j,fm[j][0],fm[j][1],fm[j][2]); + + } + + + // printf("Test count %d \n",testcount); + } + //printf("New pair val: %d \n",newton_pair); //printf("vals exchange: Jx=%g, Jy=%g, Jz=%g \n",fm[0][0],fm[0][1],fm[0][2]); //printf("test exchange. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); + //printf("::::::::::::::::::::::::: End loop ::::::::::::::::::::::::\n"); if (vflag_fdotr) virial_fdotr_compute(); } diff --git a/src/set.cpp b/src/set.cpp index 6758b74445..d4f0caf68e 100644 --- a/src/set.cpp +++ b/src/set.cpp @@ -860,7 +860,7 @@ void Set::set(int keyword) sp[i][2] = zvalue/sp_norm; sp[i][3] = sqrt(sp[i][0]*sp[i][0] + sp[i][1]*sp[i][1] + sp[i][2]*sp[i][2]); //Should be 1 for atomic spins - mumag[i] = sp_norm; + mumag[i] = dvalue; } // set quaternion orientation of ellipsoid or tri or body particle From d53def58538a1835c14428b13ea4a4064dd12456 Mon Sep 17 00:00:00 2001 From: julient31 Date: Fri, 26 May 2017 08:40:57 -0600 Subject: [PATCH 022/675] Field compute error apparently corrected. The issue was related to the reverse communication. To do: - Remove all checks/prints used to debug - Check all the flag set in the atom_vec_spin creator (very important for the reverse comm) - Code DMI/ME interactions - Start to work on parallel implementation of the integration --- in.cobalt | 23 +++-- src/SPIN/atom_vec_spin.cpp | 18 ++-- src/SPIN/compute_spin.cpp | 2 +- src/SPIN/fix_nve_spin.cpp | 201 +++++++++++++++++++++++++++++-------- src/SPIN/fix_nve_spin.h | 7 +- src/SPIN/pair_spin.cpp | 99 +++++++++++------- src/SPIN/pair_spin.h | 6 ++ 7 files changed, 256 insertions(+), 100 deletions(-) diff --git a/in.cobalt b/in.cobalt index 06b5508fde..1e58798c16 100644 --- a/in.cobalt +++ b/in.cobalt @@ -18,17 +18,20 @@ atom_style spin #Define sort for paramagnetic simulations (if no pair interaction) #atom_modify sort 1000 4.0 +atom_modify map array + ########################### #######Create atoms######## ########################### #Lattice constant of fcc Cobalt lattice fcc 3.54 -#lattice sc 3.54 +#lattice sc 2.50 +#lattice bcc 3.54 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 3.0 0.0 3.0 0.0 3.0 +region box block 0.0 2.0 0.0 2.0 0.0 2.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box @@ -60,20 +63,24 @@ pair_coeff * * 0.0446928 0.003496 1.4885 #Fix Langevin spins (merging damping and temperature) #Defines a cutof distance for the neighbors. -#neighbor 0.5 bin +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 0.0 bin +neigh_modify every 1 check no delay 0 #Magnetic field fix -fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 +fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 #fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) -fix 2 all langevin/spin 0.0 0.1 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.1 21 #fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix fix 3 all nve/spin #compute total magnetization and magnetic energy +#Ite Time Mx My Mz |M| Em Tm compute mag all compute/spin fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag.dat @@ -81,7 +88,7 @@ fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_ma #Entries: ID(user assigned), group-ID(group of atoms to peform the sim on), style(temp, pe, ...), args #Setting the timestep for the simulation -timestep 0.000005 +timestep 0.00005 ################## #######run######## @@ -91,6 +98,6 @@ timestep 0.000005 dump 1 all custom 50 dump_spin.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 200000 -#run 2 +run 30000 +#run 1 diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index bda03f9b27..3807ac0e56 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -30,15 +30,17 @@ using namespace LAMMPS_NS; AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) { molecular = 0; - mass_type = 1; + mass_type = 1; //check why - comm_x_only = 0; - comm_f_only = 1; - size_forward = 6; - size_reverse = 3; + //comm_x_only = 0; + comm_x_only = 1; + //comm_f_only = 1; + comm_f_only = 0; + size_forward = 7; + size_reverse = 6; size_border = 11; size_velocity = 3; - size_data_atom = 9; + size_data_atom = 9; //to check later size_data_vel = 4; xcol_data = 4; @@ -318,7 +320,6 @@ int AtomVecSpin::unpack_comm_hybrid(int n, int first, double *buf) int AtomVecSpin::pack_reverse(int n, int first, double *buf) { int i,m,last; - m = 0; last = first + n; for (i = first; i < last; i++) { @@ -337,7 +338,6 @@ int AtomVecSpin::pack_reverse(int n, int first, double *buf) void AtomVecSpin::unpack_reverse(int n, int *list, double *buf) { int i,j,m; - m = 0; for (i = 0; i < n; i++) { j = list[i]; @@ -941,9 +941,9 @@ bigint AtomVecSpin::memory_usage() return bytes; } -//Test force clear in spin void AtomVecSpin::force_clear(int n, size_t nbytes) { + memset(&atom->f[0][0],0,3*nbytes); memset(&atom->fm[0][0],0,3*nbytes); } diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 9a0ba20496..bd1b09fb44 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -125,7 +125,7 @@ void ComputeSpin::compute_vector() vector[2] = magtot[1]; vector[3] = magtot[2]; vector[4] = magtot[3]; - vector[5] = magenergytot; + vector[5] = -0.5*magenergytot*hbar; vector[6] = spintemperature; } diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index f156f76c8a..20aaf4afef 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -26,6 +26,9 @@ #include "math_const.h" #include "modify.h" +#include "pair.h" +#include "timer.h" + using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; @@ -105,7 +108,7 @@ void FixNVESpin::initial_integrate(int vflag) v[i][2] += dtfm * f[i][2]; } } - + // update half x for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -115,55 +118,168 @@ void FixNVESpin::initial_integrate(int vflag) } } + + size_t nbytes; + nbytes = sizeof(double) * nlocal; + int eflag = 3; // update sp for all particles if (extra == SPIN) { // Advance spins //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 - for (int i = 0; i < nlocal; i++) - if (mask[i] & groupbit) { - cp[0] = cp[1] = cp[2] = 0.0; - g[0] = g[1] = g[2] = 0.0; - fm2 = (fm[i][0]*fm[i][0])+(fm[i][1]*fm[i][1])+(fm[i][2]*fm[i][2]); - fmsq = sqrt(fm2); - energy = (sp[i][0]*fm[i][0])+(sp[i][1]*fm[i][1])+(sp[i][2]*fm[i][2]); - - cp[0] = fm[i][1]*sp[i][2]-fm[i][2]*sp[i][1]; - cp[1] = fm[i][2]*sp[i][0]-fm[i][0]*sp[i][2]; - cp[2] = fm[i][0]*sp[i][1]-fm[i][1]*sp[i][0]; - - g[0] = sp[i][0]+cp[0]*dts; - g[1] = sp[i][1]+cp[1]*dts; - g[2] = sp[i][2]+cp[2]*dts; - - g[0] += (fm[i][0]*energy-0.5*sp[i][0]*fm2)*0.5*dts*dts; - g[1] += (fm[i][1]*energy-0.5*sp[i][1]*fm2)*0.5*dts*dts; - g[2] += (fm[i][2]*energy-0.5*sp[i][2]*fm2)*0.5*dts*dts; - - g[0] /= (1+0.25*fm2*dts*dts); - g[1] /= (1+0.25*fm2*dts*dts); - g[2] /= (1+0.25*fm2*dts*dts); - - sp[i][0] = g[0]; - sp[i][1] = g[1]; - sp[i][2] = g[2]; - - //Renormalization (may not be necessary) - msq = g[0]*g[0] + g[1]*g[1] + g[2]*g[2]; - scale = 1.0/sqrt(msq); - sp[i][0] *= scale; - sp[i][1] *= scale; - sp[i][2] *= scale; - - //printf("test fix integ. 1;i=%d, fx=%g, fy=%g, fz=%g \n",i,fm[i][0],fm[i][1],fm[i][2]); - //printf("test fix integ.; i=%d, sx=%g, sy=%g, sz=%g, norm=%g \n",i,sp[i][0],sp[i][1],sp[i][2],scale); - } - } +#define CONC +#if defined CONC + for (int i = 0; i < nlocal; i++){ + AdvanceSingleSpin(i,dts,sp,fm); + } +#endif + +//#define SEQ +#if defined SEQ + //advance N-1 spins to half + for (int i = 0; i < nlocal-1; i++){ + //Recomp field + atom->avec->force_clear(0,nbytes); + timer->stamp(); + modify->pre_force(vflag); + timer->stamp(Timer::PAIR); + force->pair->compute(eflag,vflag); + timer->stamp(Timer::PAIR); + modify->pre_reverse(eflag,vflag); + timer->stamp(Timer::MODIFY); + comm->reverse_comm(); + timer->stamp(Timer::COMM); + modify->post_force(vflag); + + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + + //advance N spin + //Recomp field + atom->avec->force_clear(0,nbytes); + timer->stamp(); + modify->pre_force(vflag); + timer->stamp(Timer::PAIR); + force->pair->compute(eflag,vflag); + timer->stamp(Timer::PAIR); + modify->pre_reverse(eflag,vflag); + timer->stamp(Timer::MODIFY); + comm->reverse_comm(); + timer->stamp(Timer::COMM); + modify->post_force(vflag); + + AdvanceSingleSpin(nlocal-1,dts,sp,fm); + + + //advance N-1 spins to half + for (int i = nlocal-2; i >= 0; i--){ + //Recomp field + atom->avec->force_clear(0,nbytes); + timer->stamp(); + modify->pre_force(vflag); + timer->stamp(Timer::PAIR); + force->pair->compute(eflag,vflag); + timer->stamp(Timer::PAIR); + modify->pre_reverse(eflag,vflag); + timer->stamp(Timer::MODIFY); + comm->reverse_comm(); + timer->stamp(Timer::COMM); + modify->post_force(vflag); + + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + +#endif + + } + +#define FORCE_PRINT +#if defined FORCE_PRINT + FILE* file_force=NULL; + file_force=fopen("spin_force_Lammps.dat","a"); + fprintf(file_force,"---------------------------------- \n"); + for(int i=0;inlocal; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; + int *type = atom->type; + int *mask = atom->mask; + + double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; + double cp[3],g[3]; + + cp[0] = cp[1] = cp[2] = 0.0; + g[0] = g[1] = g[2] = 0.0; + fm2 = (fm[i][0]*fm[i][0])+(fm[i][1]*fm[i][1])+(fm[i][2]*fm[i][2]); + fmsq = sqrt(fm2); + energy = (sp[i][0]*fm[i][0])+(sp[i][1]*fm[i][1])+(sp[i][2]*fm[i][2]); + + cp[0] = fm[i][1]*sp[i][2]-fm[i][2]*sp[i][1]; + cp[1] = fm[i][2]*sp[i][0]-fm[i][0]*sp[i][2]; + cp[2] = fm[i][0]*sp[i][1]-fm[i][1]*sp[i][0]; + +//#define ALG_MA //Ma algo +#if defined ALG_MA + double A[3]; + A[0]= A[1] = A[2] = 0.0; + double xi=fmsq*dts; + double zeta=0.0; // this is because omega contains already the transverse damping + double chi=energy/fmsq; + double expo=exp(2.0*zeta); + double K1=1.0+expo+chi*(1.0-expo); + double K=2.0*exp(zeta)/K1; + double Ktrigo=1.0+0.25*xi*xi; + double cosinus=(1.0-0.25*xi*xi)/Ktrigo; //cos(xi) + double sinus=xi/Ktrigo; //sin(xi) + A[0]=K*cosinus; + A[1]=K*sinus; + A[2]=(1.0-expo+chi*(1.0+expo-2.0*exp(zeta)*cosinus))/K1; + + g[0] = A[0]*sp[i][0]+A[1]*cp[0]/fmsq+A[2]*fm[i][0]/fmsq; + g[1] = A[0]*sp[i][1]+A[1]*cp[1]/fmsq+A[2]*fm[i][0]/fmsq; + g[2] = A[0]*sp[i][2]+A[1]*cp[2]/fmsq+A[2]*fm[i][0]/fmsq; +#endif + +#define ALG_OM //Omelyan algo +#if defined ALG_OM + g[0] = sp[i][0]+cp[0]*dts; + g[1] = sp[i][1]+cp[1]*dts; + g[2] = sp[i][2]+cp[2]*dts; + + g[0] += (fm[i][0]*energy-0.5*sp[i][0]*fm2)*0.5*dts*dts; + g[1] += (fm[i][1]*energy-0.5*sp[i][1]*fm2)*0.5*dts*dts; + g[2] += (fm[i][2]*energy-0.5*sp[i][2]*fm2)*0.5*dts*dts; + + g[0] /= (1+0.25*fm2*dts*dts); + g[1] /= (1+0.25*fm2*dts*dts); + g[2] /= (1+0.25*fm2*dts*dts); +#endif + + sp[i][0] = g[0]; + sp[i][1] = g[1]; + sp[i][2] = g[2]; + + //Renormalization (may not be necessary) + msq = g[0]*g[0] + g[1]*g[1] + g[2]*g[2]; + scale = 1.0/sqrt(msq); + sp[i][0] *= scale; + sp[i][1] *= scale; + sp[i][2] *= scale; + +} + /* ---------------------------------------------------------------------- */ void FixNVESpin::final_integrate() @@ -180,7 +296,7 @@ void FixNVESpin::final_integrate() if (igroup == atom->firstgroup) nlocal = atom->nfirst; int *type = atom->type; int *mask = atom->mask; - + // update half x for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -200,5 +316,4 @@ void FixNVESpin::final_integrate() v[i][2] += dtfm * f[i][2]; } } - } diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index 55fffa7fb0..82e9822bf1 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -32,15 +32,16 @@ class FixNVESpin : public FixNVE { virtual ~FixNVESpin() {} void init(); virtual void initial_integrate(int); + void AdvanceSingleSpin(int, double, double **, double **); virtual void final_integrate(); protected: int extra; double dts; - double alpha_t; + //double alpha_t; - private: - class FixSpinDamping *lockspindamping; + //private: + //class FixSpinDamping *lockspindamping; }; } diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index a2c75cbc90..d684a7800d 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -78,9 +78,28 @@ void PairSpin::compute(int eflag, int vflag) ilist = list->ilist; numneigh = list->numneigh; firstneigh = list->firstneigh; - + + +//#define GHOST_TAG +tagint *tag = atom->tag; + +//#define GH_PR +#if defined GH_PR + FILE* file=NULL; + file=fopen("spin_ghosts_lammps.lammpstrj","w"); + + fprintf(file,"ITEM: TIMESTEP\n"); + fprintf(file,"0.0 \n"); + fprintf(file,"ITEM: NUMBER OF ATOMS\n"); + fprintf(file,"n \n"); + fprintf(file,"ITEM: BOX BOUNDS\n"); + for(int d=0; d<3; d++) fprintf(file,"%lf %lf\n",-10.0,10.0); + fprintf(file,"ITEM: ATOMS type x y z vx vy vz\n"); +#endif + + // Pair spin computations - // Loop over neighbors of my atoms + // Loop over neighbors of my itoms for (ii = 0; ii < inum; ii++) { i = ilist[ii]; @@ -90,13 +109,6 @@ void PairSpin::compute(int eflag, int vflag) jlist = firstneigh[i]; jnum = numneigh[i]; - //printf(":::::::Loop for atom numb. %d, jnum=%d ::::::: \n",i,jnum); - - //printf("Test print real atom: i=%d, sx=%g, sy=%g, sz=%g \n",i,sp[i][0],sp[i][1],sp[i][2]); - //printf("Test print real atom: i=%d, rx=%g, ry=%g, rz=%g \n",i,x[i][0],x[i][1],x[i][2]); - - int testcount=0; - //Exchange interaction for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; @@ -120,7 +132,6 @@ void PairSpin::compute(int eflag, int vflag) Jex = 4.0*J_1[itype][jtype]*ra; Jex *= (1.0-J_2[itype][jtype]*ra); Jex *= exp(-ra); - Jex *= mumag[ii]*mumag[jj]; fmix = Jex*sp[j][0]; fmiy = Jex*sp[j][1]; @@ -129,46 +140,62 @@ void PairSpin::compute(int eflag, int vflag) fmjx = Jex*sp[i][0]; fmjy = Jex*sp[i][1]; fmjz = Jex*sp[i][2]; +#if defined GH_PR + fprintf(file,"%d %lf %lf %lf %lf %lf %lf\n",j,x[j][0],x[j][1],x[j][2],sp[j][0],sp[j][1],sp[j][2]); +#endif - - - //printf("Neighb pair: i=%d, j=%d \n",i,j); - //printf("Test print ghost/real neib atom: i=%d, j=%d, sx=%g, sy=%g, sz=%g \n",i,j,sp[j][0],sp[j][1],sp[j][2]); - //printf("Test g/r neib pair: i=%d, j=%d, rx=%g, ry=%g, rz=%g \n",i,j,x[j][0],x[j][1],x[j][2]); - //printf("Atom i: %d of type %d, Atom j: %d of type %d, \n",i,itype,j,jtype); - //printf("Exchange pair (%d,%d), Jij=%g, rij=%g \n",i,j,Jex,rd); - testcount++; +#if defined GHOST_TAG + printf("Test print ghost/real neib atom: i=%d, j=%d, tag=%d, fx=%g, fy=%g, fz=%g \n",i,j,tag[j],fmjx,fmjy,fmjz); +#endif } - - - //printf("Test print ghost/real atom: j=%d, sx=%g, sy=%g, sz=%g \n",j,sp[j][0],sp[j][1],sp[j][2]); - //printf("Test print ghost/real atom: j=%d, rx=%g, ry=%g, rz=%g \n",j,x[j][0],x[j][1],x[j][2]); fm[i][0] += fmix; fm[i][1] += fmiy; fm[i][2] += fmiz; - - if (newton_pair || j < nlocal) { + +//#define INDEX +#if defined INDEX + int index = atom->map(tag[j]); + fm[index][0] += fmjx; + fm[index][1] += fmjy; + fm[index][2] += fmjz; +#else + if (newton_pair || j < nlocal) { fm[j][0] += fmjx; fm[j][1] += fmjy; fm[j][2] += fmjz; } +#endif - //printf("Val fm %d: [%g,%g,%g] \n",i,fm[i][0],fm[i][1],fm[i][2]); - //printf("Val fm %d: [%g,%g,%g] \n",j,fm[j][0],fm[j][1],fm[j][2]); - - } - - - // printf("Test count %d \n",testcount); - + } } - //printf("New pair val: %d \n",newton_pair); - //printf("vals exchange: Jx=%g, Jy=%g, Jz=%g \n",fm[0][0],fm[0][1],fm[0][2]); - //printf("test exchange. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); - //printf("::::::::::::::::::::::::: End loop ::::::::::::::::::::::::\n"); + +//Test print atoms + ghosts +#if defined GH_PR + if (file!=NULL) fclose(file); +#endif + + +// printf("::::::::::::::::::::::::: End loop ::::::::::::::::::::::::\n"); if (vflag_fdotr) virial_fdotr_compute(); + +//#define TAG_NALL +#if defined TAG_NALL +int nall = nlocal + atom->nghost; +for (i = 0; i < nall; i++) { + int num_neig = numneigh[i]; + int itag = tag[i]; + printf("atom %d has %d neighbs and tag numb %d \n",i,num_neig,itag); } +#endif + + +#if defined TRANS_FORCE +transferfm(fm); +#endif + +} + /* ---------------------------------------------------------------------- allocate all arrays diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index abdc1978c1..fd5822c163 100755 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -37,6 +37,12 @@ class PairSpin : public Pair { void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); + + //Test transf. force +//#define TRANS_FORCE +#if defined TRANS_FORCE + void transferfm(double **); +#endif protected: double cut_spin_exchange_global, cut_spin_dipolar_global; //Global cutting distance From 7cc59fbbbee6438e5924d8f6a5fa19d37ba236d4 Mon Sep 17 00:00:00 2001 From: julient31 Date: Fri, 26 May 2017 10:13:44 -0600 Subject: [PATCH 023/675] Same commit, beginning removing prints/checks and pushing --- in.cobalt | 2 +- src/SPIN/pair_spin.cpp | 66 +++--------------------------------------- 2 files changed, 5 insertions(+), 63 deletions(-) diff --git a/in.cobalt b/in.cobalt index 1e58798c16..0d2975d17e 100644 --- a/in.cobalt +++ b/in.cobalt @@ -98,6 +98,6 @@ timestep 0.00005 dump 1 all custom 50 dump_spin.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 30000 +run 300000 #run 1 diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index d684a7800d..b87c14b7b9 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -79,25 +79,6 @@ void PairSpin::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; - -//#define GHOST_TAG -tagint *tag = atom->tag; - -//#define GH_PR -#if defined GH_PR - FILE* file=NULL; - file=fopen("spin_ghosts_lammps.lammpstrj","w"); - - fprintf(file,"ITEM: TIMESTEP\n"); - fprintf(file,"0.0 \n"); - fprintf(file,"ITEM: NUMBER OF ATOMS\n"); - fprintf(file,"n \n"); - fprintf(file,"ITEM: BOX BOUNDS\n"); - for(int d=0; d<3; d++) fprintf(file,"%lf %lf\n",-10.0,10.0); - fprintf(file,"ITEM: ATOMS type x y z vx vy vz\n"); -#endif - - // Pair spin computations // Loop over neighbors of my itoms @@ -140,60 +121,21 @@ tagint *tag = atom->tag; fmjx = Jex*sp[i][0]; fmjy = Jex*sp[i][1]; fmjz = Jex*sp[i][2]; -#if defined GH_PR - fprintf(file,"%d %lf %lf %lf %lf %lf %lf\n",j,x[j][0],x[j][1],x[j][2],sp[j][0],sp[j][1],sp[j][2]); -#endif - -#if defined GHOST_TAG - printf("Test print ghost/real neib atom: i=%d, j=%d, tag=%d, fx=%g, fy=%g, fz=%g \n",i,j,tag[j],fmjx,fmjy,fmjz); -#endif } fm[i][0] += fmix; fm[i][1] += fmiy; fm[i][2] += fmiz; -//#define INDEX -#if defined INDEX - int index = atom->map(tag[j]); - fm[index][0] += fmjx; - fm[index][1] += fmjy; - fm[index][2] += fmjz; -#else if (newton_pair || j < nlocal) { - fm[j][0] += fmjx; - fm[j][1] += fmjy; - fm[j][2] += fmjz; + fm[j][0] += fmjx; + fm[j][1] += fmjy; + fm[j][2] += fmjz; + } } -#endif - - } } -//Test print atoms + ghosts -#if defined GH_PR - if (file!=NULL) fclose(file); -#endif - - -// printf("::::::::::::::::::::::::: End loop ::::::::::::::::::::::::\n"); if (vflag_fdotr) virial_fdotr_compute(); - -//#define TAG_NALL -#if defined TAG_NALL -int nall = nlocal + atom->nghost; -for (i = 0; i < nall; i++) { - int num_neig = numneigh[i]; - int itag = tag[i]; - printf("atom %d has %d neighbs and tag numb %d \n",i,num_neig,itag); -} -#endif - - -#if defined TRANS_FORCE -transferfm(fm); -#endif - } From 4d375e72f0bfb5c51f2c809e5953a9c02292fbc9 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 5 Jun 2017 17:13:20 -0600 Subject: [PATCH 024/675] Changes: - DMI and ME interactions - Computation optimisations - lot of removed prints Next work: - Sequential algo implemetation - temperature simulations (check) - Work on parallelization --- in.cobalt | 59 ++++-- src/SPIN/compute_spin.cpp | 1 + src/SPIN/fix_force_spin.cpp | 6 - src/SPIN/fix_langevin_spin.cpp | 31 ++- src/SPIN/fix_nve_spin.cpp | 138 ++---------- src/SPIN/fix_nve_spin.h | 3 + src/SPIN/pair_spin.cpp | 376 +++++++++++++++++++++++++-------- src/SPIN/pair_spin.h | 38 ++-- 8 files changed, 396 insertions(+), 256 deletions(-) diff --git a/in.cobalt b/in.cobalt index 0d2975d17e..06f7aca33a 100644 --- a/in.cobalt +++ b/in.cobalt @@ -10,8 +10,8 @@ units metal dimension 3 #setting boundary conditions. (p for periodic, f for fixed, ...) -boundary p p p -#boundary f f f +#boundary p p p +boundary f f f #setting atom_style, defines what can of atoms to use in simulation (atomic, molecule, angle, dipole, ...) atom_style spin @@ -25,13 +25,25 @@ atom_modify map array ########################### #Lattice constant of fcc Cobalt -lattice fcc 3.54 -#lattice sc 2.50 -#lattice bcc 3.54 +#lattice fcc 3.54 +lattice sc 2.50 +#Test Kagome +#variable a equal sqrt(3.0) +#variable d equal 1.0/(2.0*sqrt(3.0)+1) +#variable p_1 equal $d*sqrt(3.0) +#variable p_2 equal $d*2.2*sqrt(3.0) + +#lattice custom 1.0 a1 2.0 0.0 0.0 & +# a2 1.0 $a 0.0 & +# a3 0.0 0.0 1.0 & +# basis ${p_1} ${p_2} 0.0 & +# basis ${p_2} ${p_2} 0.0 & +# basis 0.5 0.0 0.0 + #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 2.0 0.0 2.0 0.0 2.0 +region box block 0.0 5.0 0.0 5.0 0.0 1.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box @@ -53,13 +65,24 @@ create_atoms 1 box mass 1 1.0 #set group all mass 1.0 #Setting spins orientation and moment -#set group all spin/random 11 1.72 -set group all spin 1.72 1.0 0.0 0.0 +set group all spin/random 11 1.72 +#set group all spin 1.72 1.0 0.0 0.0 #Magnetic exchange interaction coefficient for bulk fcc Cobalt -pair_style pair/spin 4.0 -pair_coeff * * 0.0446928 0.003496 1.4885 +#pair_style pair/spin/exchange 4.0 +#type i and j | J1 | J2 | J3 +#pair_coeff * * 0.0446928 0.003496 1.4885 #pair_coeff * * 0.0 0.003496 1.4885 +#pair_style pair/spin/dmi 4.0 +# type i and j | DM (in eV) | Directions +#pair_coeff * * 0.001 0.0 0.0 1.0 +#pair_style hybrid/overlay pair/spin/exchange 4.0 pair/spin/dmi 4.0 +pair_style pair/spin 4.0 +#type i and j | interaction type | cutoff | J1 | J2 | J3 +pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * dmi 2.6 0.01 1.0 0.0 0.0 +#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 + #Fix Langevin spins (merging damping and temperature) #Defines a cutof distance for the neighbors. @@ -67,20 +90,22 @@ pair_coeff * * 0.0446928 0.003496 1.4885 #neigh_modify every 10 check yes delay 20 neighbor 0.0 bin neigh_modify every 1 check no delay 0 + #Magnetic field fix -fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 -#fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 +#Type | Intensity (T or eV) | Direction +fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) -#fix 2 all langevin/spin 0.0 0.0 0.1 21 +#Temp | Alpha_trans | Alpha_long | Seed +fix 2 all langevin/spin 0.0 0.1 0.0 21 #fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix fix 3 all nve/spin -#compute total magnetization and magnetic energy -#Ite Time Mx My Mz |M| Em Tm +#compute real time, total magnetization, magnetic energy, and spin temperature +#Iteration | Time | Mx | My | Mz | |M| | Em | Tm compute mag all compute/spin fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag.dat @@ -98,6 +123,6 @@ timestep 0.00005 dump 1 all custom 50 dump_spin.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 300000 -#run 1 +run 60000 +#run 10 diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index bd1b09fb44..370a2848a7 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -87,6 +87,7 @@ void ComputeSpin::compute_vector() int nlocal = atom->nlocal; // compute total magnetization and magnetic energy + // compute spin temperature; See Nurdin et al., Phys. Rev. E 61, 2000 for (i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (atom->mumag_flag && atom->sp_flag) { diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index e5abe3a2ca..df927858ae 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -185,8 +185,6 @@ void FixForceSpin::post_force(int vflag) fm[i][2] += scalar*zmag; } } - //printf("test force. 1;i=0, fx=%g, fy=%g, fz=%g, mumag=%g \n",fm[0][0],fm[0][1],fm[0][2],mumag[0]); - //printf("Field force compute, fm[0][2]=%g \n",fm[0][2]); } /* ---------------------------------------------------------------------- */ @@ -198,8 +196,6 @@ void FixForceSpin::post_force_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ //No acceleration for magnetic EOM, only a "magnetic force" -//(keeping set_magneticforce in case of time--dependent mag. field implementation) - void FixForceSpin::set_magneticforce() { if (style == ZEEMAN) { @@ -212,10 +208,8 @@ void FixForceSpin::set_magneticforce() ymag = 2.0*Ka*Kay; zmag = 2.0*Ka*Kaz; } - } - /* ---------------------------------------------------------------------- potential energy in magnetic field ------------------------------------------------------------------------- */ diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index c22f224f59..f09d35c854 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -142,11 +142,10 @@ void FixLangevinSpin::post_force(int vflag) double cpx, cpy, cpz; double rx, ry, rz; - // apply transverse magnetic damping to spins - // add the damping to the effective field + // add the damping to the effective field of each spin for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { - sx = sp[i][0];//Getting Mag. and Mag. force components + sx = sp[i][0]; sy = sp[i][1]; sz = sp[i][2]; @@ -164,22 +163,23 @@ void FixLangevinSpin::post_force(int vflag) fm[i][0] = fmx; fm[i][1] = fmy; - fm[i][2] = fmz; + fm[i][2] = fmz; } - //printf("test damping. 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); - //apply thermal effects - //add random field to fm + //apply thermal effects adding random fields to fm for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { + #define GAUSSIAN_R + #if defined GAUSSIAN_R rx = sigma*random->gaussian();//Drawing random distributions ry = sigma*random->gaussian(); rz = sigma*random->gaussian(); - - //rx = sigma*(random->uniform() - 0.5); - //ry = sigma*(random->uniform() - 0.5); - //rz = sigma*(random->uniform() - 0.5); - + #else + rx = sigma*(random->uniform() - 0.5); + ry = sigma*(random->uniform() - 0.5); + rz = sigma*(random->uniform() - 0.5); + #endif + fm[i][0] += rx;//Adding random field fm[i][1] += ry; fm[i][2] += rz; @@ -189,13 +189,6 @@ void FixLangevinSpin::post_force(int vflag) fm[i][2] *= Gil_factor; } - - //printf("test langevin 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); - - //printf("test rand var: %g, sigma=%g \n",(random->uniform()-0.5),sigma); - //printf("test rand var: %g, sigma=%g \n",random->gaussian(),sigma); - //printf("test random 1;i=0, fx=%g, fy=%g, fz=%g \n",fm[0][0],fm[0][1],fm[0][2]); - //printf("test dt: %g, sigma=%g \n",dts,random->gaussian(),sigma); } /* ---------------------------------------------------------------------- */ diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 20aaf4afef..9e0f3f934c 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -89,14 +89,22 @@ void FixNVESpin::initial_integrate(int vflag) double **x = atom->x; double **v = atom->v; double **f = atom->f; - double *rmass = atom->rmass; - double *mass = atom->mass; double **sp = atom->sp; double **fm = atom->fm; + double *rmass = atom->rmass; + double *mass = atom->mass; int nlocal = atom->nlocal; if (igroup == atom->firstgroup) nlocal = atom->nfirst; int *type = atom->type; int *mask = atom->mask; + + // Advance half spins all particles + //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 + if (extra == SPIN) { + for (int i = 0; i < nlocal; i++){ + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } // update half v all particles for (int i = 0; i < nlocal; i++) { @@ -109,7 +117,7 @@ void FixNVESpin::initial_integrate(int vflag) } } - // update half x for all particles + // update x for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { x[i][0] += 0.5 * dtv * v[i][0]; @@ -118,82 +126,7 @@ void FixNVESpin::initial_integrate(int vflag) } } - - size_t nbytes; - nbytes = sizeof(double) * nlocal; - int eflag = 3; - // update sp for all particles - if (extra == SPIN) { - // Advance spins - //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 - -#define CONC -#if defined CONC - for (int i = 0; i < nlocal; i++){ - AdvanceSingleSpin(i,dts,sp,fm); - } -#endif - -//#define SEQ -#if defined SEQ - //advance N-1 spins to half - for (int i = 0; i < nlocal-1; i++){ - //Recomp field - atom->avec->force_clear(0,nbytes); - timer->stamp(); - modify->pre_force(vflag); - timer->stamp(Timer::PAIR); - force->pair->compute(eflag,vflag); - timer->stamp(Timer::PAIR); - modify->pre_reverse(eflag,vflag); - timer->stamp(Timer::MODIFY); - comm->reverse_comm(); - timer->stamp(Timer::COMM); - modify->post_force(vflag); - - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - - //advance N spin - //Recomp field - atom->avec->force_clear(0,nbytes); - timer->stamp(); - modify->pre_force(vflag); - timer->stamp(Timer::PAIR); - force->pair->compute(eflag,vflag); - timer->stamp(Timer::PAIR); - modify->pre_reverse(eflag,vflag); - timer->stamp(Timer::MODIFY); - comm->reverse_comm(); - timer->stamp(Timer::COMM); - modify->post_force(vflag); - - AdvanceSingleSpin(nlocal-1,dts,sp,fm); - - - //advance N-1 spins to half - for (int i = nlocal-2; i >= 0; i--){ - //Recomp field - atom->avec->force_clear(0,nbytes); - timer->stamp(); - modify->pre_force(vflag); - timer->stamp(Timer::PAIR); - force->pair->compute(eflag,vflag); - timer->stamp(Timer::PAIR); - modify->pre_reverse(eflag,vflag); - timer->stamp(Timer::MODIFY); - comm->reverse_comm(); - timer->stamp(Timer::COMM); - modify->post_force(vflag); - - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - -#endif - - } - -#define FORCE_PRINT +//#define FORCE_PRINT #if defined FORCE_PRINT FILE* file_force=NULL; file_force=fopen("spin_force_Lammps.dat","a"); @@ -206,8 +139,6 @@ void FixNVESpin::initial_integrate(int vflag) } - - /* ---------------------------------------------------------------------- */ void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) @@ -230,30 +161,6 @@ void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) cp[1] = fm[i][2]*sp[i][0]-fm[i][0]*sp[i][2]; cp[2] = fm[i][0]*sp[i][1]-fm[i][1]*sp[i][0]; -//#define ALG_MA //Ma algo -#if defined ALG_MA - double A[3]; - A[0]= A[1] = A[2] = 0.0; - double xi=fmsq*dts; - double zeta=0.0; // this is because omega contains already the transverse damping - double chi=energy/fmsq; - double expo=exp(2.0*zeta); - double K1=1.0+expo+chi*(1.0-expo); - double K=2.0*exp(zeta)/K1; - double Ktrigo=1.0+0.25*xi*xi; - double cosinus=(1.0-0.25*xi*xi)/Ktrigo; //cos(xi) - double sinus=xi/Ktrigo; //sin(xi) - A[0]=K*cosinus; - A[1]=K*sinus; - A[2]=(1.0-expo+chi*(1.0+expo-2.0*exp(zeta)*cosinus))/K1; - - g[0] = A[0]*sp[i][0]+A[1]*cp[0]/fmsq+A[2]*fm[i][0]/fmsq; - g[1] = A[0]*sp[i][1]+A[1]*cp[1]/fmsq+A[2]*fm[i][0]/fmsq; - g[2] = A[0]*sp[i][2]+A[1]*cp[2]/fmsq+A[2]*fm[i][0]/fmsq; -#endif - -#define ALG_OM //Omelyan algo -#if defined ALG_OM g[0] = sp[i][0]+cp[0]*dts; g[1] = sp[i][1]+cp[1]*dts; g[2] = sp[i][2]+cp[2]*dts; @@ -265,7 +172,6 @@ void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) g[0] /= (1+0.25*fm2*dts*dts); g[1] /= (1+0.25*fm2*dts*dts); g[2] /= (1+0.25*fm2*dts*dts); -#endif sp[i][0] = g[0]; sp[i][1] = g[1]; @@ -277,7 +183,6 @@ void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) sp[i][0] *= scale; sp[i][1] *= scale; sp[i][2] *= scale; - } /* ---------------------------------------------------------------------- */ @@ -290,6 +195,8 @@ void FixNVESpin::final_integrate() double **x = atom->x; double **v = atom->v; double **f = atom->f; + double **sp = atom->sp; + double **fm = atom->fm; double *rmass = atom->rmass; double *mass = atom->mass; int nlocal = atom->nlocal; @@ -297,15 +204,6 @@ void FixNVESpin::final_integrate() int *type = atom->type; int *mask = atom->mask; - // update half x for all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - x[i][0] += 0.5 * dtv * v[i][0]; - x[i][1] += 0.5 * dtv * v[i][1]; - x[i][2] += 0.5 * dtv * v[i][2]; - } - } - // update half v for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -316,4 +214,12 @@ void FixNVESpin::final_integrate() v[i][2] += dtfm * f[i][2]; } } + + // Advance half spins all particles + //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 + if (extra == SPIN) { + for (int i = 0; i < nlocal; i++){ + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } } diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index 82e9822bf1..31ef30de3e 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -35,6 +35,9 @@ class FixNVESpin : public FixNVE { void AdvanceSingleSpin(int, double, double **, double **); virtual void final_integrate(); +//Sorting atoms/spins routine +void SortSpins(); + protected: int extra; double dts; diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index b87c14b7b9..f09b4d05fd 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -33,6 +33,8 @@ using namespace MathConst; PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; + exch_flag = 0; + dmi_flag = 0; } /* ---------------------------------------------------------------------- */ @@ -43,10 +45,25 @@ PairSpin::~PairSpin() memory->destroy(setflag); memory->destroy(cut_spin_exchange); - memory->destroy(cut_spin_dipolar); memory->destroy(J_1); memory->destroy(J_2); - memory->destroy(J_2); + memory->destroy(J_2); + + memory->destroy(cut_spin_dmi); + memory->destroy(DM); + memory->destroy(v_dmx); + memory->destroy(v_dmy); + memory->destroy(v_dmz); + + memory->destroy(cut_spin_me); + memory->destroy(ME); + memory->destroy(v_mex); + memory->destroy(v_mey); + memory->destroy(v_mez); + + memory->destroy(fmi); + memory->destroy(fmj); + memory->destroy(cutsq); } } @@ -57,8 +74,9 @@ void PairSpin::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl,ecoul; - double xtmp,ytmp,ztmp,fmix,fmiy,fmiz,fmjx,fmjy,fmjz,omx,omy,omz; - double cut, Jex, ra; + double xtmp,ytmp,ztmp; + double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; + double cut_ex,cut_dmi,cut_me; double rsq,rd,delx,dely,delz; int *ilist,*jlist,*numneigh,**firstneigh; @@ -90,47 +108,52 @@ void PairSpin::compute(int eflag, int vflag) jlist = firstneigh[i]; jnum = numneigh[i]; - //Exchange interaction + //Loop on Neighbors for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; - fmix = fmiy = fmiz = 0.0; - fmjx = fmjy = fmjz = 0.0; + fmi[0] = fmi[1] = fmi[2] = 0.0; + fmj[0] = fmj[1] = fmj[2] = 0.0; delx = xtmp - x[j][0]; dely = ytmp - x[j][1]; delz = ztmp - x[j][2]; rsq = delx*delx + dely*dely + delz*delz; //square or inter-atomic distance rd = sqrt(rsq); //Inter-atomic distance - cut = cut_spin_exchange_global; - - if (rd <= cut) { - itype = type[i]; - jtype = type[j]; + itype = type[i]; + jtype = type[j]; - ra = (rd/J_3[itype][jtype])*(rd/J_3[itype][jtype]); - Jex = 4.0*J_1[itype][jtype]*ra; - Jex *= (1.0-J_2[itype][jtype]*ra); - Jex *= exp(-ra); - - fmix = Jex*sp[j][0]; - fmiy = Jex*sp[j][1]; - fmiz = Jex*sp[j][2]; - - fmjx = Jex*sp[i][0]; - fmjy = Jex*sp[i][1]; - fmjz = Jex*sp[i][2]; - } - - fm[i][0] += fmix; - fm[i][1] += fmiy; - fm[i][2] += fmiz; + //Exchange interaction + if (exch_flag) { + cut_ex = cut_spin_exchange[itype][jtype]; + if (rd <= cut_ex) { + compute_exchange(i,j,rsq,fmi,fmj); + } + } + //DM interaction + if (dmi_flag){ + cut_dmi = cut_spin_dmi[itype][jtype]; + if (rd <= cut_dmi){ + compute_dmi(i,j,fmi,fmj); + } + } + //ME interaction + if (me_flag){ + cut_me = cut_spin_me[itype][jtype]; + if (rd <= cut_me){ + compute_me(i,j,fmi,fmj); + } + } + + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; + fm[i][2] += fmi[2]; if (newton_pair || j < nlocal) { - fm[j][0] += fmjx; - fm[j][1] += fmjy; - fm[j][2] += fmjz; + fm[j][0] += fmj[0]; + fm[j][1] += fmj[1]; + fm[j][2] += fmj[2]; } } } @@ -138,6 +161,95 @@ void PairSpin::compute(int eflag, int vflag) if (vflag_fdotr) virial_fdotr_compute(); } +/* ---------------------------------------------------------------------- */ +inline void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj) +{ + int *type = atom->type; + int itype, jtype; + double **sp = atom->sp; + double dmix,dmiy,dmiz; + double Jex, ra; + itype = type[i]; + jtype = type[j]; + + ra = rsq/J_3[itype][jtype]/J_3[itype][jtype]; + Jex = 4.0*J_1[itype][jtype]*ra; + Jex *= (1.0-J_2[itype][jtype]*ra); + Jex *= exp(-ra); + + fmi[0] += Jex*sp[j][0]; + fmi[1] += Jex*sp[j][1]; + fmi[2] += Jex*sp[j][2]; + + fmj[0] += Jex*sp[i][0]; + fmj[1] += Jex*sp[i][1]; + fmj[2] += Jex*sp[i][2]; + +} + +/* ---------------------------------------------------------------------- */ +inline void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj) +{ + + int *type = atom->type; + int itype, jtype; + double **sp = atom->sp; + double dmix,dmiy,dmiz; + itype = type[i]; + jtype = type[j]; + + dmix = DM[itype][jtype]*v_dmx[itype][jtype]; + dmiy = DM[itype][jtype]*v_dmy[itype][jtype]; + dmiz = DM[itype][jtype]*v_dmz[itype][jtype]; + + fmi[0] += sp[j][1]*dmiz-sp[j][2]*dmiy; + fmi[1] += sp[j][2]*dmix-sp[j][0]*dmiz; + fmi[2] += sp[j][0]*dmiy-sp[j][1]*dmix; + + fmj[0] -= sp[i][1]*dmiz-sp[i][2]*dmiy; + fmj[1] -= sp[i][2]*dmix-sp[i][0]*dmiz; + fmj[2] -= sp[i][0]*dmiy-sp[i][1]*dmix; +} + +/* ---------------------------------------------------------------------- */ +inline void PairSpin::compute_me(int i, int j, double *fmi, double *fmj) +{ + int *type = atom->type; + int itype, jtype; + itype = type[i]; + jtype = type[j]; + double **sp = atom->sp; + double **x = atom->x; + double meix,meiy,meiz; + double rx, ry, rz, inorm; + + rx = x[j][0] - x[i][0]; + ry = x[j][1] - x[i][1]; + rz = x[j][2] - x[i][2]; + inorm = 1.0/sqrt(rx*rx+ry*ry+rz*rz); + rx *= inorm; + ry *= inorm; + rz *= inorm; + + meix = v_mey[itype][jtype]*rz - v_mez[itype][jtype]*ry; + meiy = v_mez[itype][jtype]*rx - v_mex[itype][jtype]*rz; + meiz = v_mex[itype][jtype]*ry - v_mey[itype][jtype]*rx; + + meix *= ME[itype][jtype]; + meiy *= ME[itype][jtype]; + meiz *= ME[itype][jtype]; + + fmi[0] += sp[j][1]*meiz - sp[j][2]*meiy; + fmi[1] += sp[j][2]*meix - sp[j][0]*meiz; + fmi[2] += sp[j][0]*meiy - sp[j][1]*meix; + + fmj[0] -= sp[i][1]*meiz - sp[i][2]*meiy; + fmj[1] -= sp[i][2]*meix - sp[i][0]*meiz; + fmj[2] -= sp[i][0]*meiy - sp[i][1]*meix; + + // printf("test val fmi=%g, fmj=%g \n",fmi[2],fmj[2]); + +} /* ---------------------------------------------------------------------- allocate all arrays @@ -154,11 +266,25 @@ void PairSpin::allocate() setflag[i][j] = 0; memory->create(cut_spin_exchange,n+1,n+1,"pair:cut_spin_exchange"); - memory->create(cut_spin_dipolar,n+1,n+1,"pair:cut_spin_dipolar"); memory->create(J_1,n+1,n+1,"pair:J_1"); memory->create(J_2,n+1,n+1,"pair:J_2"); memory->create(J_3,n+1,n+1,"pair:J_3"); - + + memory->create(cut_spin_dmi,n+1,n+1,"pair:cut_spin_dmi"); + memory->create(DM,n+1,n+1,"pair:DM"); + memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); + memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); + memory->create(v_dmz,n+1,n+1,"pair:DM_vector_z"); + + memory->create(cut_spin_me,n+1,n+1,"pair:cut_spin_me"); + memory->create(ME,n+1,n+1,"pair:ME"); + memory->create(v_mex,n+1,n+1,"pair:ME_vector_x"); + memory->create(v_mey,n+1,n+1,"pair:ME_vector_y"); + memory->create(v_mez,n+1,n+1,"pair:ME_vector_z"); + + memory->create(fmi,3,"pair:fmi"); + memory->create(fmj,3,"pair:fmj"); + memory->create(cutsq,n+1,n+1,"pair:cutsq"); } @@ -172,14 +298,11 @@ void PairSpin::settings(int narg, char **arg) if (narg < 1 || narg > 2) error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); - if (strcmp(update->unit_style,"electron") == 0) - error->all(FLERR,"Cannot (yet) use 'electron' units with spins"); + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); - cut_spin_exchange_global = force->numeric(FLERR,arg[0]); + cut_spin_pair_global = force->numeric(FLERR,arg[0]); - if (narg == 1) cut_spin_dipolar_global = cut_spin_exchange_global; - else cut_spin_dipolar_global = force->numeric(FLERR,arg[1]); - // reset cutoffs that have been explicitly set if (allocated) { @@ -187,8 +310,8 @@ void PairSpin::settings(int narg, char **arg) for (i = 1; i <= atom->ntypes; i++) for (j = i+1; j <= atom->ntypes; j++) if (setflag[i][j]) { - cut_spin_exchange[i][j] = cut_spin_exchange_global; - cut_spin_dipolar[i][j] = cut_spin_dipolar_global; + cut_spin_exchange[i][j] = cut_spin_pair_global; + cut_spin_dmi[i][j] = cut_spin_pair_global; } } @@ -201,38 +324,108 @@ void PairSpin::settings(int narg, char **arg) void PairSpin::coeff(int narg, char **arg) { - if (narg != 5) - error->all(FLERR,"Incorrect number of args for pair spin 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 J1 = force->numeric(FLERR,arg[2]); - double J2 = force->numeric(FLERR,arg[3]); - double J3 = force->numeric(FLERR,arg[4]); - - double hbar = force->hplanck/MY_2PI; - J1 /= hbar; - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - J_1[i][j] = J1; - J_2[i][j] = J2; - J_3[i][j] = J3; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args for spinpair coefficients"); - - //Simple (Anti)Ferromagnetic exchange for now. - //Check if Jex [][] still works for Ferrimagnetic exchange - -} + if (!allocated) allocate(); + if (strcmp(arg[2],"exchange")==0){ + if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); + exch_flag = 1; + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + double rij = force->numeric(FLERR,arg[3]); + double J1 = force->numeric(FLERR,arg[4]); + double J2 = force->numeric(FLERR,arg[5]); + double J3 = force->numeric(FLERR,arg[6]); + + double hbar = force->hplanck/MY_2PI; + J1 /= hbar; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_exchange[i][j] = rij; + J_1[i][j] = J1; + J_2[i][j] = J2; + J_3[i][j] = J3; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else if (strcmp(arg[2],"dmi")==0) { + if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); + dmi_flag = 1; + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + double rij = force->numeric(FLERR,arg[3]); + double dm = force->numeric(FLERR,arg[4]); + double dmx = force->numeric(FLERR,arg[5]); + double dmy = force->numeric(FLERR,arg[6]); + double dmz = force->numeric(FLERR,arg[7]); + + double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); + dmx *= inorm; + dmy *= inorm; + dmz *= inorm; + + double hbar = force->hplanck/MY_2PI; + dm /= hbar; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_dmi[i][j] = rij; + DM[i][j] = dm; + v_dmx[i][j] = dmx; + v_dmy[i][j] = dmy; + v_dmz[i][j] = dmz; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else if (strcmp(arg[2],"me")==0) { + if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); + me_flag = 1; + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + double rij = force->numeric(FLERR,arg[3]); + double me = force->numeric(FLERR,arg[4]); + double mex = force->numeric(FLERR,arg[5]); + double mey = force->numeric(FLERR,arg[6]); + double mez = force->numeric(FLERR,arg[7]); + + double inorm = 1.0/(mex*mex+mey*mey+mez*mez); + mex *= inorm; + mey *= inorm; + mez *= inorm; + + double hbar = force->hplanck/MY_2PI; + me /= hbar; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_me[i][j] = rij; + DM[i][j] = me; + v_mex[i][j] = mex; + v_mey[i][j] = mey; + v_mez[i][j] = mez; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else error->all(FLERR,"Incorrect args in pair_style command"); + + //Check if Jex [][] still works for Ferrimagnetic exchange +} /* ---------------------------------------------------------------------- @@ -256,7 +449,7 @@ double PairSpin::init_one(int i, int j) if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - return cut_spin_exchange_global; + return cut_spin_pair_global; } /* ---------------------------------------------------------------------- @@ -272,10 +465,26 @@ void PairSpin::write_restart(FILE *fp) for (j = i; j <= atom->ntypes; j++) { fwrite(&setflag[i][j],sizeof(int),1,fp); if (setflag[i][j]) { - fwrite(&J_1[i][j],sizeof(double),1,fp); - fwrite(&J_2[i][j],sizeof(double),1,fp); - fwrite(&J_3[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_exchange[i][j],sizeof(double),1,fp); + if (exch_flag){ + fwrite(&J_1[i][j],sizeof(double),1,fp); + fwrite(&J_2[i][j],sizeof(double),1,fp); + fwrite(&J_3[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_exchange[i][j],sizeof(double),1,fp); + } + if (dmi_flag) { + fwrite(&DM[i][j],sizeof(double),1,fp); + fwrite(&v_dmx[i][j],sizeof(double),1,fp); + fwrite(&v_dmy[i][j],sizeof(double),1,fp); + fwrite(&v_dmz[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_dmi[i][j],sizeof(double),1,fp); + } + if (me_flag) { + fwrite(&ME[i][j],sizeof(double),1,fp); + fwrite(&v_mex[i][j],sizeof(double),1,fp); + fwrite(&v_mey[i][j],sizeof(double),1,fp); + fwrite(&v_mez[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_me[i][j],sizeof(double),1,fp); + } } } } @@ -310,16 +519,15 @@ void PairSpin::read_restart(FILE *fp) } } } - + /* ---------------------------------------------------------------------- proc 0 writes to restart file ------------------------------------------------------------------------- */ void PairSpin::write_restart_settings(FILE *fp) { - fwrite(&cut_spin_exchange_global,sizeof(double),1,fp); - fwrite(&cut_spin_dipolar_global,sizeof(double),1,fp); + fwrite(&cut_spin_pair_global,sizeof(double),1,fp); fwrite(&offset_flag,sizeof(int),1,fp); fwrite(&mix_flag,sizeof(int),1,fp); } @@ -331,13 +539,11 @@ void PairSpin::write_restart_settings(FILE *fp) void PairSpin::read_restart_settings(FILE *fp) { if (comm->me == 0) { - fread(&cut_spin_exchange_global,sizeof(double),1,fp); - fread(&cut_spin_dipolar_global,sizeof(double),1,fp); + fread(&cut_spin_pair_global,sizeof(double),1,fp); fread(&offset_flag,sizeof(int),1,fp); fread(&mix_flag,sizeof(int),1,fp); } - MPI_Bcast(&cut_spin_exchange_global,1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_spin_dipolar_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_pair_global,1,MPI_DOUBLE,0,world); MPI_Bcast(&offset_flag,1,MPI_INT,0,world); MPI_Bcast(&mix_flag,1,MPI_INT,0,world); } diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index fd5822c163..8b3e174de6 100755 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -33,24 +33,36 @@ class PairSpin : public Pair { void coeff(int, char **); void init_style(); double init_one(int, int); + void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - - //Test transf. force -//#define TRANS_FORCE -#if defined TRANS_FORCE - void transferfm(double **); -#endif + inline void compute_exchange(int, int, double, double *, double *); + inline void compute_dmi(int, int, double *, double *); + inline void compute_me(int, int, double *, double *); + protected: - double cut_spin_exchange_global, cut_spin_dipolar_global; //Global cutting distance - double **cut_spin_exchange; //cutting distance for each exchange interaction - double **cut_spin_dipolar; //cutting distance for the dipolar interaction + int exch_flag,dmi_flag,me_flag; + double cut_spin_pair_global; + double cut_spin_dipolar_global; - double **J_1, **J_2, **J_3; //coefficients for computing the exchange interaction Jij - //J1 is an energy (in eV), J2 is adim and J3 is a distance (in Ang) + double **cut_spin_exchange; //cutting distance exchange + double **cut_spin_dmi; //cutting distance dmi + double **cut_spin_me; //cutting distance me + + double **J_1, **J_2, **J_3; //exchange coeffs Jij + //J1 in eV, J2 adim and J3 in Ang + double **DM; + double **v_dmx, **v_dmy, **v_dmz;//DMI coeffs + //DM int. in eV, v direction + + double **ME; + double **v_mex, **v_mey, **v_mez;//ME coeffs + //ME in eV, v direction + + double *fmi, *fmj; //Temp var. in compute void allocate(); }; @@ -66,9 +78,9 @@ E: Incorrect args in pair_style command Self-explanatory. -E: Cannot (yet) use 'electron' units with spins +E: Spin simulations require metal unit style -This feature is not yet supported. +Self-explanatory. E: Incorrect args for pair coefficients From bf5b3f96e98406523a6a63d31ec7f4b13e8628e6 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 19 Jun 2017 10:40:36 -0600 Subject: [PATCH 025/675] Implemetation of SeqNei Algo 1 Still Seq and SeqNei versions Loop on Neigh in SeqNei not working yet --- in.cobalt | 74 ++++--- src/SPIN/atom_vec_spin.cpp | 1 + src/SPIN/fix_force_spin.cpp | 68 ++++-- src/SPIN/fix_force_spin.h | 8 +- src/SPIN/fix_langevin_spin.cpp | 32 +-- src/SPIN/fix_nve_spin.cpp | 369 +++++++++++++++++++++++++++++++-- src/SPIN/fix_nve_spin.h | 20 +- src/SPIN/pair_spin.cpp | 41 ++-- src/SPIN/pair_spin.h | 17 +- src/modify.cpp | 1 + 10 files changed, 513 insertions(+), 118 deletions(-) diff --git a/in.cobalt b/in.cobalt index 06f7aca33a..8a9de336a7 100644 --- a/in.cobalt +++ b/in.cobalt @@ -10,8 +10,8 @@ units metal dimension 3 #setting boundary conditions. (p for periodic, f for fixed, ...) -#boundary p p p -boundary f f f +boundary p p p +#boundary f f f #setting atom_style, defines what can of atoms to use in simulation (atomic, molecule, angle, dipole, ...) atom_style spin @@ -20,30 +20,35 @@ atom_style spin atom_modify map array +#newton off for pair spin in SEQNEI +#newton off off + ########################### #######Create atoms######## ########################### #Lattice constant of fcc Cobalt -#lattice fcc 3.54 -lattice sc 2.50 +lattice fcc 3.54 +#lattice sc 2.50 #Test Kagome -#variable a equal sqrt(3.0) -#variable d equal 1.0/(2.0*sqrt(3.0)+1) -#variable p_1 equal $d*sqrt(3.0) -#variable p_2 equal $d*2.2*sqrt(3.0) +#variable a equal sqrt(3.0)/8.0 +#variable b equal 3.0*sqrt(3.0)/8.0 +#variable c equal sqrt(3.0)/4.0 -#lattice custom 1.0 a1 2.0 0.0 0.0 & -# a2 1.0 $a 0.0 & -# a3 0.0 0.0 1.0 & -# basis ${p_1} ${p_2} 0.0 & -# basis ${p_2} ${p_2} 0.0 & -# basis 0.5 0.0 0.0 +#lattice custom 2.5 a1 1.0 0.0 0.0 & +# a2 0.0 1.0 0.0 & +# a3 0.0 0.0 1.0 & +# basis 0.0 $a 0.0 & +# basis 0.25 $a 0.0 & +# basis 0.375 0.0 0.0 & +# basis 0.25 $b 0.0 & +# basis 0.5 $b 0.0 & +# basis 0.625 $c 0.0 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 5.0 0.0 5.0 0.0 1.0 +region box block 0.0 2.0 0.0 2.0 0.0 2.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box @@ -65,27 +70,18 @@ create_atoms 1 box mass 1 1.0 #set group all mass 1.0 #Setting spins orientation and moment -set group all spin/random 11 1.72 -#set group all spin 1.72 1.0 0.0 0.0 +#set group all spin/random 11 1.72 +set group all spin 1.72 1.0 0.0 0.0 #Magnetic exchange interaction coefficient for bulk fcc Cobalt -#pair_style pair/spin/exchange 4.0 -#type i and j | J1 | J2 | J3 -#pair_coeff * * 0.0446928 0.003496 1.4885 -#pair_coeff * * 0.0 0.003496 1.4885 -#pair_style pair/spin/dmi 4.0 -# type i and j | DM (in eV) | Directions -#pair_coeff * * 0.001 0.0 0.0 1.0 -#pair_style hybrid/overlay pair/spin/exchange 4.0 pair/spin/dmi 4.0 pair_style pair/spin 4.0 -#type i and j | interaction type | cutoff | J1 | J2 | J3 -pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 -pair_coeff * * dmi 2.6 0.01 1.0 0.0 0.0 +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) +#pair_coeff * * dmi 2.6 0.01 1.0 0.0 0.0 #pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 - -#Fix Langevin spins (merging damping and temperature) -#Defines a cutof distance for the neighbors. +#Define a skin distance, update neigh list every #neighbor 1.0 bin #neigh_modify every 10 check yes delay 20 neighbor 0.0 bin @@ -93,13 +89,15 @@ neigh_modify every 1 check no delay 0 #Magnetic field fix #Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 +fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed -fix 2 all langevin/spin 0.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 +#fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix fix 3 all nve/spin @@ -107,13 +105,13 @@ fix 3 all nve/spin #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm compute mag all compute/spin -fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag.dat +fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_seqnei_test.dat #Defining a computation that will be performed on a group of atoms. #Entries: ID(user assigned), group-ID(group of atoms to peform the sim on), style(temp, pe, ...), args #Setting the timestep for the simulation -timestep 0.00005 +timestep 0.00001 ################## #######run######## @@ -123,6 +121,6 @@ timestep 0.00005 dump 1 all custom 50 dump_spin.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 60000 -#run 10 +#run 200000 +run 1 diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 3807ac0e56..d31f4691d1 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -46,6 +46,7 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) forceclearflag = 1; atom->mumag_flag = atom->sp_flag = 1; + } diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index df927858ae..27408456d6 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -26,6 +26,7 @@ #include "math_const.h" #include "error.h" #include "force.h" +#include "memory.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -59,10 +60,13 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a Hx = Hy = Hz = 0.0; Ka = 0.0; Kax = Kay = Kaz = 0.0; - + + zeeman_flag = aniso_flag = 0; + if (strcmp(arg[3],"zeeman") == 0) { if (narg != 8) error->all(FLERR,"Illegal fix zeeman command"); style = ZEEMAN; + zeeman_flag = 1; H_field = force->numeric(FLERR,arg[4]); Hx = force->numeric(FLERR,arg[5]); Hy = force->numeric(FLERR,arg[6]); @@ -71,6 +75,7 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a } else if (strcmp(arg[3],"anisotropy") == 0) { if (narg != 8) error->all(FLERR,"Illegal fix anisotropy command"); style = ANISOTROPY; + aniso_flag = 1; Ka = force->numeric(FLERR,arg[4]); Kax = force->numeric(FLERR,arg[5]); Kay = force->numeric(FLERR,arg[6]); @@ -88,6 +93,8 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a FixForceSpin::~FixForceSpin() { + memory->destroy(spi); + memory->destroy(fmi); delete [] magstr; } @@ -133,7 +140,10 @@ void FixForceSpin::init() // set magnetic field components once and for all if (varflag == CONSTANT) set_magneticforce(); - + + memory->create(spi,3,"forcespin:spi"); + memory->create(fmi,3,"forcespin:fmi"); + } /* ---------------------------------------------------------------------- */ @@ -160,7 +170,7 @@ void FixForceSpin::post_force(int vflag) set_magneticforce(); //Update value of the mag. field if time-dependent } - double **x = atom->x; +// double **x = atom->x; double **sp = atom->sp; double *mumag = atom->mumag; double **fm = atom->fm; @@ -169,22 +179,42 @@ void FixForceSpin::post_force(int vflag) eflag = 0; emag = 0.0; - - if (style == ZEEMAN) { - for (int i = 0; i < nlocal; i++) { - fm[i][0] += mumag[i]*xmag; - fm[i][1] += mumag[i]*ymag; - fm[i][2] += mumag[i]*zmag; - } - } - if (style == ANISOTROPY) { - for (int i = 0; i < nlocal; i++) { - scalar = Kax*sp[i][0] + Kay*sp[i][1] + Kaz*sp[i][2]; - fm[i][0] += scalar*xmag; - fm[i][1] += scalar*ymag; - fm[i][2] += scalar*zmag; - } - } + + for (int i = 0; i < nlocal; i++) { + fmi[0] = fmi[1] = fmi[2] = 0.0; + //if (style == ZEEMAN) { + if (zeeman_flag) { + compute_zeeman(i,fmi); + } + //if (style == ANISOTROPY) { + if (aniso_flag) { + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + compute_anisotropy(i,spi,fmi); + } + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; + fm[i][2] += fmi[2]; + } +} + + +/* ---------------------------------------------------------------------- */ +void FixForceSpin::compute_zeeman(int i, double *fmi) +{ +double *mumag = atom->mumag; + fmi[0] += mumag[i]*xmag; + fmi[1] += mumag[i]*ymag; + fmi[2] += mumag[i]*zmag; +} + +void FixForceSpin::compute_anisotropy(int i, double * spi, double *fmi) +{ + double scalar = Kax*spi[0] + Kay*spi[1] + Kaz*spi[2]; + fmi[0] += scalar*xmag; + fmi[1] += scalar*ymag; + fmi[2] += scalar*zmag; } /* ---------------------------------------------------------------------- */ diff --git a/src/SPIN/fix_force_spin.h b/src/SPIN/fix_force_spin.h index 75805a7734..a422abad2c 100644 --- a/src/SPIN/fix_force_spin.h +++ b/src/SPIN/fix_force_spin.h @@ -37,6 +37,10 @@ class FixForceSpin : public Fix { virtual void post_force_respa(int, int, int); double compute_scalar(); + int zeeman_flag, aniso_flag; + void compute_zeeman(int, double *); + void compute_anisotropy(int, double *, double *); + protected: int style; @@ -58,8 +62,10 @@ class FixForceSpin : public Fix { double Ka; //Magnetic anisotropy intensity and direction double Kax, Kay, Kaz; + double *spi, *fmi; //Temp var. in compute + void set_magneticforce(); - + }; } diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index f09d35c854..ab76051f08 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -145,25 +145,25 @@ void FixLangevinSpin::post_force(int vflag) // add the damping to the effective field of each spin for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { - sx = sp[i][0]; - sy = sp[i][1]; - sz = sp[i][2]; - - fmx = fm[i][0]; - fmy = fm[i][1]; - fmz = fm[i][2]; + sx = sp[i][0]; + sy = sp[i][1]; + sz = sp[i][2]; + + fmx = fm[i][0]; + fmy = fm[i][1]; + fmz = fm[i][2]; - cpx = fmy*sz - fmz*sy;//Computing cross product - cpy = fmz*sx - fmx*sz; - cpz = fmx*sy - fmy*sx; + cpx = fmy*sz - fmz*sy;//Computing cross product + cpy = fmz*sx - fmx*sz; + cpz = fmx*sy - fmy*sx; - fmx -= alpha_t*cpx;//Taking the damping value away - fmy -= alpha_t*cpy; - fmz -= alpha_t*cpz; + fmx -= alpha_t*cpx;//Taking the damping value away + fmy -= alpha_t*cpy; + fmz -= alpha_t*cpz; - fm[i][0] = fmx; - fm[i][1] = fmy; - fm[i][2] = fmz; + fm[i][0] = fmx; + fm[i][1] = fmy; + fm[i][2] = fmz; } //apply thermal effects adding random fields to fm diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 9e0f3f934c..d2b1ce328b 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -26,8 +26,15 @@ #include "math_const.h" #include "modify.h" +//Add headers (see delete later) #include "pair.h" #include "timer.h" +#include "integrate.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "pair_spin.h" +#include "memory.h" +#include "fix_force_spin.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -57,7 +64,24 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : // error checks if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix nve/spin requires spin attribute mumag"); - + +#if defined SEQNEI + lockpairspin = NULL; + lockforcespin = NULL; + exch_flag = dmi_flag = me_flag = 0; + zeeman_flag = aniso_flag = 0; +#endif +} + +/* ---------------------------------------------------------------------- */ +FixNVESpin::~FixNVESpin(){ +#if defined SEQNEI + //delete lockpairspin; + //delete lockforcespin; + memory->destroy(spi); + memory->destroy(fmi); + memory->destroy(fmj); +#endif } /* ---------------------------------------------------------------------- */ @@ -68,6 +92,26 @@ void FixNVESpin::init() dts = update->dt; + #if defined SEQNEI + lockpairspin = (PairSpin *) force->pair; + + memory->create(spi,3,"nves:spi"); + memory->create(fmi,3,"nves:fmi"); + memory->create(fmj,3,"nves:fmj"); + + int iforce; + for (iforce = 0; iforce < modify->nfix; iforce++) + if (strstr(modify->fix[iforce]->style,"force/spin")) break; + lockforcespin = (FixForceSpin *) modify->fix[iforce]; + + exch_flag = lockpairspin->exch_flag; + dmi_flag = lockpairspin->dmi_flag; + me_flag = lockpairspin->me_flag; + + zeeman_flag = lockforcespin->zeeman_flag; + aniso_flag = lockforcespin->aniso_flag; + #endif + /*int idamp; for (idamp = 0; idamp < modify->nfix; idamp++) if (strstr(modify->fix[idamp]->style,"damping/spin")) break; @@ -101,9 +145,18 @@ void FixNVESpin::initial_integrate(int vflag) // Advance half spins all particles //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 if (extra == SPIN) { - for (int i = 0; i < nlocal; i++){ - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } +#if defined SEQNEI + for (int i = 0; i < nlocal; i++){ + ComputeSpinInteractionsNei(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } +#endif +#if defined SEQ + for (int i = 0; i < nlocal; i++){ + AdvanceSingleSpin(i,0.5*dts,sp,fm); + ComputeSpinInteractions(); + } +#endif } // update half v all particles @@ -125,18 +178,293 @@ void FixNVESpin::initial_integrate(int vflag) x[i][2] += 0.5 * dtv * v[i][2]; } } +} -//#define FORCE_PRINT -#if defined FORCE_PRINT - FILE* file_force=NULL; - file_force=fopen("spin_force_Lammps.dat","a"); - fprintf(file_force,"---------------------------------- \n"); - for(int i=0;inlocal; + + int n_post_integrate = modify->n_post_integrate; + int n_pre_exchange = modify->n_pre_exchange; + int n_pre_neighbor = modify->n_pre_neighbor; + int n_pre_force = modify->n_pre_force; + int n_pre_reverse = modify->n_pre_reverse; + int n_post_force = modify->n_post_force; + int n_end_of_step = modify->n_end_of_step; + + bigint ntimestep; + ntimestep = update->ntimestep; + + //Force compute quantities + int i,j,jj,inum,jnum,itype,jtype; + int *ilist,*jlist,*numneigh,**firstneigh; + double **x = atom->x; + double **sp = atom->sp; + double **fm = atom->fm; + int *type = atom->type; + int newton_pair = force->newton_pair; + + inum = lockpairspin->list->inum; + ilist = lockpairspin->list->ilist; + numneigh = lockpairspin->list->numneigh; + firstneigh = lockpairspin->list->firstneigh; + + double xtmp,ytmp,ztmp; + double rsq,rd,delx,dely,delz; + double cut_ex_2, cut_dmi_2, cut_me_2; + cut_ex_2 = cut_dmi_2 = cut_me_2 = 0.0; + + int eflag = 1; + int vflag = 0; + int pair_compute_flag = 1; + + if (atom->sortfreq > 0) sortflag = 1; + else sortflag = 0; + if (n_post_integrate) modify->post_integrate(); + timer->stamp(Timer::MODIFY); + + // regular communication vs neighbor list rebuild + nflag = neighbor->decide(); + if (nflag == 0) { + timer->stamp(); + comm->forward_comm(); + timer->stamp(Timer::COMM); + } else { + if (n_pre_exchange) { + timer->stamp(); + modify->pre_exchange(); + timer->stamp(Timer::MODIFY); + } + //if (triclinic) domain->x2lamda(atom->nlocal); + domain->pbc(); + if (domain->box_change) { + domain->reset_box(); + comm->setup(); + if (neighbor->style) neighbor->setup_bins(); + } + timer->stamp(); + comm->exchange(); + if (sortflag && ntimestep >= atom->nextsort) atom->sort(); + comm->borders(); + //if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); + timer->stamp(Timer::COMM); + if (n_pre_neighbor) { + modify->pre_neighbor(); + timer->stamp(Timer::MODIFY); + } + neighbor->build(); + timer->stamp(Timer::NEIGH); + } + + ///////Force computation for spin i///////////// + i = ilist[ii]; + //Clear atom i + fm[i][0] = fm[i][1] = fm[i][2] = 0.0; + + timer->stamp(); + + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + fmi[0] = fmi[1] = fmi[2] = 0.0; + fmj[0] = fmj[1] = fmj[2] = 0.0; + jlist = firstneigh[i]; + jnum = numneigh[i]; + +// printf("Test inum: %g \n",inum); +/* + //Pair interaction + for (int jj = 0; jj < inum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + itype = type[ii]; + jtype = type[j]; + + if (exch_flag) { + cut_ex_2 = (lockpairspin->cut_spin_exchange[itype][jtype])*(lockpairspin->cut_spin_exchange[itype][jtype]); + if (rsq <= cut_ex_2) { + lockpairspin->compute_exchange(i,j,rsq,fmi,fmj); + } + } + if (dmi_flag) { + cut_dmi_2 = (lockpairspin->cut_spin_dmi[itype][jtype])*(lockpairspin->cut_spin_dmi[itype][jtype]); + if (rsq <= cut_dmi_2) { + lockpairspin->compute_dmi(i,j,fmi,fmj); + } + } + if (me_flag) { + cut_me_2 = (lockpairspin->cut_spin_me[itype][jtype])*(lockpairspin->cut_spin_me[itype][jtype]); + if (rsq <= cut_me_2) { + lockpairspin->compute_me(i,j,fmi,fmj); + } + } + } +*/ + + //Pair interaction + int natom = nlocal + atom->nghost; + for (int k = 0; k < natom; k++) { + delx = xtmp - x[k][0]; + dely = ytmp - x[k][1]; + delz = ztmp - x[k][2]; + rsq = delx*delx + dely*dely + delz*delz; + itype = type[ii]; + jtype = type[k]; + + if (exch_flag) { + cut_ex_2 = (lockpairspin->cut_spin_exchange[itype][jtype])*(lockpairspin->cut_spin_exchange[itype][jtype]); + if (rsq <= cut_ex_2) { + lockpairspin->compute_exchange(i,k,rsq,fmi,fmj); + } + } + if (dmi_flag) { + cut_dmi_2 = (lockpairspin->cut_spin_dmi[itype][jtype])*(lockpairspin->cut_spin_dmi[itype][jtype]); + if (rsq <= cut_dmi_2) { + lockpairspin->compute_dmi(i,k,fmi,fmj); + } + } + if (me_flag) { + cut_me_2 = (lockpairspin->cut_spin_me[itype][jtype])*(lockpairspin->cut_spin_me[itype][jtype]); + if (rsq <= cut_me_2) { + lockpairspin->compute_me(i,k,fmi,fmj); + } + } + } + + + //post force + if (zeeman_flag) { + lockforcespin->compute_zeeman(i,fmi); + } + if (aniso_flag) { + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + lockforcespin->compute_anisotropy(i,spi,fmi); + } + + //Replace the force by its new value + fm[i][0] = fmi[0]; + fm[i][1] = fmi[1]; + fm[i][2] = fmi[2]; + +} #endif +/* ---------------------------------------------------------------------- */ +void FixNVESpin::ComputeSpinInteractions() +{ + int nflag,sortflag; + int nlocal = atom->nlocal; + + int n_post_integrate = modify->n_post_integrate; + int n_pre_exchange = modify->n_pre_exchange; + int n_pre_neighbor = modify->n_pre_neighbor; + int n_pre_force = modify->n_pre_force; + int n_pre_reverse = modify->n_pre_reverse; + int n_post_force = modify->n_post_force; + int n_end_of_step = modify->n_end_of_step; + + bigint ntimestep; + ntimestep = update->ntimestep; + + //int eflag = update->integrate->eflag; + //int vflag = update->integrate->vflag; + int eflag = 1; + int vflag = 0; + int pair_compute_flag = 1; + + if (atom->sortfreq > 0) sortflag = 1; + else sortflag = 0; + if (n_post_integrate) modify->post_integrate(); + timer->stamp(Timer::MODIFY); + + // regular communication vs neighbor list rebuild + nflag = neighbor->decide(); + if (nflag == 0) { + timer->stamp(); + comm->forward_comm(); + timer->stamp(Timer::COMM); + } else { + if (n_pre_exchange) { + timer->stamp(); + modify->pre_exchange(); + timer->stamp(Timer::MODIFY); + } + //if (triclinic) domain->x2lamda(atom->nlocal); + domain->pbc(); + if (domain->box_change) { + domain->reset_box(); + comm->setup(); + if (neighbor->style) neighbor->setup_bins(); + } + timer->stamp(); + comm->exchange(); + if (sortflag && ntimestep >= atom->nextsort) atom->sort(); + comm->borders(); + //if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); + timer->stamp(Timer::COMM); + if (n_pre_neighbor) { + modify->pre_neighbor(); + timer->stamp(Timer::MODIFY); + } + neighbor->build(); + timer->stamp(Timer::NEIGH); + } + + // force computations + // important for pair to come before bonded contributions + // since some bonded potentials tally pairwise energy/virial + // and Pair:ev_tally() needs to be called before any tallying + + size_t nbytes; + nbytes = sizeof(double) * nlocal; + if (force->newton) nbytes += sizeof(double) * atom->nghost; + + atom->avec->force_clear(0,nbytes); + + timer->stamp(); + + if (n_pre_force) { + modify->pre_force(vflag); + timer->stamp(Timer::MODIFY); + } + + if (pair_compute_flag) { + force->pair->compute(eflag,vflag); + timer->stamp(Timer::PAIR); + } + + /*if (kspace_compute_flag) { + force->kspace->compute(eflag,vflag); + timer->stamp(Timer::KSPACE); + }*/ + + if (n_pre_reverse) { + modify->pre_reverse(eflag,vflag); + timer->stamp(Timer::MODIFY); + } + + // reverse communication of forces + + if (force->newton) { + comm->reverse_comm(); + timer->stamp(Timer::COMM); + } + + // force modifications + + if (n_post_force) modify->post_force(vflag); + timer->stamp(Timer::MODIFY); + } /* ---------------------------------------------------------------------- */ @@ -218,8 +546,17 @@ void FixNVESpin::final_integrate() // Advance half spins all particles //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 if (extra == SPIN) { - for (int i = 0; i < nlocal; i++){ - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } +#if defined SEQNEI + for (int i = nlocal-1; i >= 0; i--){ + ComputeSpinInteractionsNei(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } +#endif +#if defined SEQ + for (int i = nlocal-1; i >= 0; i--){ + AdvanceSingleSpin(i,0.5*dts,sp,fm); + ComputeSpinInteractions(); + } +#endif } } diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index 31ef30de3e..8f516b2409 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -25,24 +25,34 @@ FixStyle(nve/spin,FixNVESpin) namespace LAMMPS_NS { class FixNVESpin : public FixNVE { - friend class FixSpinDamping; public: FixNVESpin(class LAMMPS *, int, char **); - virtual ~FixNVESpin() {} + virtual ~FixNVESpin(); void init(); virtual void initial_integrate(int); void AdvanceSingleSpin(int, double, double **, double **); virtual void final_integrate(); -//Sorting atoms/spins routine -void SortSpins(); +//#define SEQ +#define SEQNEI + void ComputeSpinInteractions(); + void ComputeSpinInteractionsNei(int); protected: int extra; double dts; //double alpha_t; - + +#if defined SEQNEI + private: + int exch_flag, dmi_flag, me_flag; + int zeeman_flag, aniso_flag; + class PairSpin *lockpairspin; + double *spi, *fmi, *fmj; //Temp var. for compute + class FixForceSpin *lockforcespin; +#endif + //private: //class FixSpinDamping *lockspindamping; }; diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index f09b4d05fd..cdd9ca8e0d 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -25,6 +25,9 @@ #include "update.h" #include +//Add. lib. for full neighb. list +#include "neigh_request.h" + using namespace LAMMPS_NS; using namespace MathConst; @@ -34,7 +37,9 @@ PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; exch_flag = 0; - dmi_flag = 0; + dmi_flag = 0; + me_flag = 0; + } /* ---------------------------------------------------------------------- */ @@ -76,7 +81,7 @@ void PairSpin::compute(int eflag, int vflag) double evdwl,ecoul; double xtmp,ytmp,ztmp; double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; - double cut_ex,cut_dmi,cut_me; + double cut_ex_2,cut_dmi_2,cut_me_2; double rsq,rd,delx,dely,delz; int *ilist,*jlist,*numneigh,**firstneigh; @@ -120,28 +125,27 @@ void PairSpin::compute(int eflag, int vflag) dely = ytmp - x[j][1]; delz = ztmp - x[j][2]; rsq = delx*delx + dely*dely + delz*delz; //square or inter-atomic distance - rd = sqrt(rsq); //Inter-atomic distance itype = type[i]; jtype = type[j]; //Exchange interaction if (exch_flag) { - cut_ex = cut_spin_exchange[itype][jtype]; - if (rd <= cut_ex) { + cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; + if (rsq <= cut_ex_2) { compute_exchange(i,j,rsq,fmi,fmj); } } //DM interaction if (dmi_flag){ - cut_dmi = cut_spin_dmi[itype][jtype]; - if (rd <= cut_dmi){ + cut_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; + if (rsq <= cut_dmi_2){ compute_dmi(i,j,fmi,fmj); } } //ME interaction if (me_flag){ - cut_me = cut_spin_me[itype][jtype]; - if (rd <= cut_me){ + cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; + if (rsq <= cut_me_2){ compute_me(i,j,fmi,fmj); } } @@ -162,7 +166,7 @@ void PairSpin::compute(int eflag, int vflag) } /* ---------------------------------------------------------------------- */ -inline void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj) +void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj) { int *type = atom->type; int itype, jtype; @@ -184,13 +188,12 @@ inline void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, d fmj[0] += Jex*sp[i][0]; fmj[1] += Jex*sp[i][1]; fmj[2] += Jex*sp[i][2]; - + } /* ---------------------------------------------------------------------- */ -inline void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj) +void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj) { - int *type = atom->type; int itype, jtype; double **sp = atom->sp; @@ -212,7 +215,7 @@ inline void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj) } /* ---------------------------------------------------------------------- */ -inline void PairSpin::compute_me(int i, int j, double *fmi, double *fmj) +void PairSpin::compute_me(int i, int j, double *fmi, double *fmj) { int *type = atom->type; int itype, jtype; @@ -247,8 +250,6 @@ inline void PairSpin::compute_me(int i, int j, double *fmi, double *fmj) fmj[1] -= sp[i][2]*meix - sp[i][0]*meiz; fmj[2] -= sp[i][0]*meiy - sp[i][1]*meix; - // printf("test val fmi=%g, fmj=%g \n",fmi[2],fmj[2]); - } /* ---------------------------------------------------------------------- @@ -312,6 +313,7 @@ void PairSpin::settings(int narg, char **arg) if (setflag[i][j]) { cut_spin_exchange[i][j] = cut_spin_pair_global; cut_spin_dmi[i][j] = cut_spin_pair_global; + cut_spin_me[i][j] = cut_spin_pair_global; } } @@ -438,6 +440,13 @@ void PairSpin::init_style() error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); neighbor->request(this,instance_me); + +#define FULLNEI +#if defined FULLNEI + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; +#endif } /* ---------------------------------------------------------------------- diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index 8b3e174de6..8df192b69f 100755 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -39,19 +39,22 @@ class PairSpin : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - inline void compute_exchange(int, int, double, double *, double *); - inline void compute_dmi(int, int, double *, double *); - inline void compute_me(int, int, double *, double *); + void compute_exchange(int, int, double, double *, double *); + void compute_dmi(int, int, double *, double *); + void compute_me(int, int, double *, double *); - protected: + //Test for seq. integ. + //protected: int exch_flag,dmi_flag,me_flag; double cut_spin_pair_global; double cut_spin_dipolar_global; double **cut_spin_exchange; //cutting distance exchange - double **cut_spin_dmi; //cutting distance dmi - double **cut_spin_me; //cutting distance me - + double **cut_spin_dmi; //cutting distance dmi + double **cut_spin_me; //cutting distance me + + //Test for seq. integ. + protected: double **J_1, **J_2, **J_3; //exchange coeffs Jij //J1 in eV, J2 adim and J3 in Ang double **DM; diff --git a/src/modify.cpp b/src/modify.cpp index 64970f2cf9..86cfdda8b6 100644 --- a/src/modify.cpp +++ b/src/modify.cpp @@ -1,4 +1,5 @@ /* ---------------------------------------------------------------------- +eoundary p f f LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator http://lammps.sandia.gov, Sandia National Laboratories Steve Plimpton, sjplimp@sandia.gov From b934621651840fac17a3d2f9c6cd969b56326722 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 19 Jun 2017 10:43:54 -0600 Subject: [PATCH 026/675] Implementation of SeqNei V1 (Real) Still both Seq and SeqNei versions In SeqNei, loop on Neighb not working yet --- src/atom_vec_spin.cpp | 951 ++++++++++++++++++++++++++++++++++++++ src/atom_vec_spin.h | 90 ++++ src/compute_spin.cpp | 145 ++++++ src/compute_spin.h | 71 +++ src/fix_force_spin.cpp | 255 ++++++++++ src/fix_force_spin.h | 92 ++++ src/fix_langevin_spin.cpp | 200 ++++++++ src/fix_langevin_spin.h | 106 +++++ src/fix_nve_spin.cpp | 562 ++++++++++++++++++++++ src/fix_nve_spin.h | 90 ++++ src/pair_spin.cpp | 558 ++++++++++++++++++++++ src/pair_spin.h | 96 ++++ 12 files changed, 3216 insertions(+) create mode 100644 src/atom_vec_spin.cpp create mode 100644 src/atom_vec_spin.h create mode 100644 src/compute_spin.cpp create mode 100644 src/compute_spin.h create mode 100644 src/fix_force_spin.cpp create mode 100644 src/fix_force_spin.h create mode 100644 src/fix_langevin_spin.cpp create mode 100644 src/fix_langevin_spin.h create mode 100644 src/fix_nve_spin.cpp create mode 100644 src/fix_nve_spin.h create mode 100755 src/pair_spin.cpp create mode 100755 src/pair_spin.h diff --git a/src/atom_vec_spin.cpp b/src/atom_vec_spin.cpp new file mode 100644 index 0000000000..d31f4691d1 --- /dev/null +++ b/src/atom_vec_spin.cpp @@ -0,0 +1,951 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include "atom_vec_spin.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "modify.h" +#include "fix.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) +{ + molecular = 0; + mass_type = 1; //check why + + //comm_x_only = 0; + comm_x_only = 1; + //comm_f_only = 1; + comm_f_only = 0; + size_forward = 7; + size_reverse = 6; + size_border = 11; + size_velocity = 3; + size_data_atom = 9; //to check later + size_data_vel = 4; + xcol_data = 4; + + forceclearflag = 1; + atom->mumag_flag = atom->sp_flag = 1; + +} + + +/* ---------------------------------------------------------------------- + grow atom arrays + n = 0 grows arrays by a chunk + n > 0 allocates arrays to size n +------------------------------------------------------------------------- */ + +void AtomVecSpin::grow(int n) +{ + if (n == 0) grow_nmax(); + else nmax = n; + atom->nmax = nmax; + if (nmax < 0 || nmax > MAXSMALLINT) + error->one(FLERR,"Per-processor system is too big"); + + tag = memory->grow(atom->tag,nmax,"atom:tag"); + type = memory->grow(atom->type,nmax,"atom:type"); + mask = memory->grow(atom->mask,nmax,"atom:mask"); + image = memory->grow(atom->image,nmax,"atom:image"); + x = memory->grow(atom->x,nmax,3,"atom:x"); + v = memory->grow(atom->v,nmax,3,"atom:v"); + f = memory->grow(atom->f,nmax*comm->nthreads,3,"atom:f"); + //Allocating mag. quantities + mumag = memory->grow(atom->mumag,nmax,"atom:mumag"); + sp = memory->grow(atom->sp,nmax,4,"atom:sp"); + fm = memory->grow(atom->fm,nmax*comm->nthreads,3,"atom:fm"); + + if (atom->nextra_grow) + for (int iextra = 0; iextra < atom->nextra_grow; iextra++) + modify->fix[atom->extra_grow[iextra]]->grow_arrays(nmax); +} + +/* ---------------------------------------------------------------------- + reset local array ptrs +------------------------------------------------------------------------- */ + +void AtomVecSpin::grow_reset() +{ + tag = atom->tag; type = atom->type; + mask = atom->mask; image = atom->image; + x = atom->x; v = atom->v; f = atom->f; + mumag = atom->mumag; sp = atom->sp; fm = atom->fm; +} + + +/* ---------------------------------------------------------------------- + copy atom I info to atom J +------------------------------------------------------------------------- */ + +void AtomVecSpin::copy(int i, int j, int delflag) +{ + tag[j] = tag[i]; + type[j] = type[i]; + mask[j] = mask[i]; + image[j] = image[i]; + x[j][0] = x[i][0]; + x[j][1] = x[i][1]; + x[j][2] = x[i][2]; + v[j][0] = v[i][0]; + v[j][1] = v[i][1]; + v[j][2] = v[i][2]; + + mumag[j] = mumag[i]; + sp[j][0] = sp[i][0]; + sp[j][1] = sp[i][1]; + sp[j][2] = sp[i][2]; + sp[j][3] = sp[i][3]; + + if (atom->nextra_grow) + for (int iextra = 0; iextra < atom->nextra_grow; iextra++) + modify->fix[atom->extra_grow[iextra]]->copy_arrays(i,j,delflag); +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_comm(int n, int *list, double *buf, + int pbc_flag, int *pbc) +{ + int i,j,m; + double dx,dy,dz; + + m = 0; + if (pbc_flag == 0) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0]; + buf[m++] = x[j][1]; + buf[m++] = x[j][2]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + } + } else { + if (domain->triclinic == 0) { + dx = pbc[0]*domain->xprd; + dy = pbc[1]*domain->yprd; + dz = pbc[2]*domain->zprd; + } else { + dx = pbc[0]*domain->xprd + pbc[5]*domain->xy + pbc[4]*domain->xz; + dy = pbc[1]*domain->yprd + pbc[3]*domain->yz; + dz = pbc[2]*domain->zprd; + } + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + } + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_comm_vel(int n, int *list, double *buf, + int pbc_flag, int *pbc) +{ + int i,j,m; + double dx,dy,dz,dvx,dvy,dvz; + + m = 0; + if (pbc_flag == 0) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0]; + buf[m++] = x[j][1]; + buf[m++] = x[j][2]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } else { + if (domain->triclinic == 0) { + dx = pbc[0]*domain->xprd; + dy = pbc[1]*domain->yprd; + dz = pbc[2]*domain->zprd; + } else { + dx = pbc[0]*domain->xprd + pbc[5]*domain->xy + pbc[4]*domain->xz; + dy = pbc[1]*domain->yprd + pbc[3]*domain->yz; + dz = pbc[2]*domain->zprd; + } + if (!deform_vremap) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } else { + dvx = pbc[0]*h_rate[0] + pbc[5]*h_rate[5] + pbc[4]*h_rate[4]; + dvy = pbc[1]*h_rate[1] + pbc[3]*h_rate[3]; + dvz = pbc[2]*h_rate[2]; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + if (mask[i] & deform_groupbit) { + buf[m++] = v[j][0] + dvx; + buf[m++] = v[j][1] + dvy; + buf[m++] = v[j][2] + dvz; + } else { + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } + } + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_comm_hybrid(int n, int *list, double *buf) +{ + int i,j,m; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +void AtomVecSpin::unpack_comm(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + x[i][0] = buf[m++]; + x[i][1] = buf[m++]; + x[i][2] = buf[m++]; + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; + } +} + +/* ---------------------------------------------------------------------- */ + +void AtomVecSpin::unpack_comm_vel(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + x[i][0] = buf[m++]; + x[i][1] = buf[m++]; + x[i][2] = buf[m++]; + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; + v[i][0] = buf[m++]; + v[i][1] = buf[m++]; + v[i][2] = buf[m++]; + } +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::unpack_comm_hybrid(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_reverse(int n, int first, double *buf) +{ + int i,m,last; + m = 0; + last = first + n; + for (i = first; i < last; i++) { + buf[m++] = f[i][0]; + buf[m++] = f[i][1]; + buf[m++] = f[i][2]; + buf[m++] = fm[i][0]; + buf[m++] = fm[i][1]; + buf[m++] = fm[i][2]; + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +void AtomVecSpin::unpack_reverse(int n, int *list, double *buf) +{ + int i,j,m; + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + f[j][0] += buf[m++]; + f[j][1] += buf[m++]; + f[j][2] += buf[m++]; + fm[j][0] += buf[m++]; + fm[j][1] += buf[m++]; + fm[j][2] += buf[m++]; + } +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_border(int n, int *list, double *buf, + int pbc_flag, int *pbc) +{ + int i,j,m; + double dx,dy,dz; + + m = 0; + if (pbc_flag == 0) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0]; + buf[m++] = x[j][1]; + buf[m++] = x[j][2]; + buf[m++] = ubuf(tag[j]).d; + buf[m++] = ubuf(type[j]).d; + buf[m++] = ubuf(mask[j]).d; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + } + } else { + if (domain->triclinic == 0) { + dx = pbc[0]*domain->xprd; + dy = pbc[1]*domain->yprd; + dz = pbc[2]*domain->zprd; + } else { + dx = pbc[0]; + dy = pbc[1]; + dz = pbc[2]; + } + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = ubuf(tag[j]).d; + buf[m++] = ubuf(type[j]).d; + buf[m++] = ubuf(mask[j]).d; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + } + } + + if (atom->nextra_border) + for (int iextra = 0; iextra < atom->nextra_border; iextra++) + m += modify->fix[atom->extra_border[iextra]]->pack_border(n,list,&buf[m]); + + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_border_vel(int n, int *list, double *buf, + int pbc_flag, int *pbc) +{ + int i,j,m; + double dx,dy,dz,dvx,dvy,dvz; + + m = 0; + if (pbc_flag == 0) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0]; + buf[m++] = x[j][1]; + buf[m++] = x[j][2]; + buf[m++] = ubuf(tag[j]).d; + buf[m++] = ubuf(type[j]).d; + buf[m++] = ubuf(mask[j]).d; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } else { + if (domain->triclinic == 0) { + dx = pbc[0]*domain->xprd; + dy = pbc[1]*domain->yprd; + dz = pbc[2]*domain->zprd; + } else { + dx = pbc[0]; + dy = pbc[1]; + dz = pbc[2]; + } + if (!deform_vremap) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = ubuf(tag[j]).d; + buf[m++] = ubuf(type[j]).d; + buf[m++] = ubuf(mask[j]).d; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } else { + dvx = pbc[0]*h_rate[0] + pbc[5]*h_rate[5] + pbc[4]*h_rate[4]; + dvy = pbc[1]*h_rate[1] + pbc[3]*h_rate[3]; + dvz = pbc[2]*h_rate[2]; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0] + dx; + buf[m++] = x[j][1] + dy; + buf[m++] = x[j][2] + dz; + buf[m++] = ubuf(tag[j]).d; + buf[m++] = ubuf(type[j]).d; + buf[m++] = ubuf(mask[j]).d; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + if (mask[i] & deform_groupbit) { + buf[m++] = v[j][0] + dvx; + buf[m++] = v[j][1] + dvy; + buf[m++] = v[j][2] + dvz; + } else { + buf[m++] = v[j][0]; + buf[m++] = v[j][1]; + buf[m++] = v[j][2]; + } + } + } + } + + if (atom->nextra_border) + for (int iextra = 0; iextra < atom->nextra_border; iextra++) + m += modify->fix[atom->extra_border[iextra]]->pack_border(n,list,&buf[m]); + + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::pack_border_hybrid(int n, int *list, double *buf) +{ + int i,j,m; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = mumag[j]; + buf[m++] = sp[j][0]; + buf[m++] = sp[j][1]; + buf[m++] = sp[j][2]; + buf[m++] = sp[j][3]; + } + + return m; +} + +/* ---------------------------------------------------------------------- */ + +void AtomVecSpin::unpack_border(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + if (i == nmax) grow(0); + x[i][0] = buf[m++]; + x[i][1] = buf[m++]; + x[i][2] = buf[m++]; + tag[i] = (tagint) ubuf(buf[m++]).i; + type[i] = (int) ubuf(buf[m++]).i; + mask[i] = (int) ubuf(buf[m++]).i; + mumag[i] = buf[m++]; + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; + } + + if (atom->nextra_border) + for (int iextra = 0; iextra < atom->nextra_border; iextra++) + m += modify->fix[atom->extra_border[iextra]]-> + unpack_border(n,first,&buf[m]); + +} + +/* ---------------------------------------------------------------------- */ + +void AtomVecSpin::unpack_border_vel(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + if (i == nmax) grow(0); + x[i][0] = buf[m++]; + x[i][1] = buf[m++]; + x[i][2] = buf[m++]; + tag[i] = (tagint) ubuf(buf[m++]).i; + type[i] = (int) ubuf(buf[m++]).i; + mask[i] = (int) ubuf(buf[m++]).i; + mumag[i] = buf[m++]; + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; + v[i][0] = buf[m++]; + v[i][1] = buf[m++]; + v[i][2] = buf[m++]; + } + + if (atom->nextra_border) + for (int iextra = 0; iextra < atom->nextra_border; iextra++) + m += modify->fix[atom->extra_border[iextra]]-> + unpack_border(n,first,&buf[m]); + +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::unpack_border_hybrid(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + mumag[i] = buf[m++]; + sp[i][0] = buf[m++]; + sp[i][1] = buf[m++]; + sp[i][2] = buf[m++]; + sp[i][3] = buf[m++]; + } + + return m; +} + +/* ---------------------------------------------------------------------- + pack all atom quantities for shipping to another proc + xyz must be 1st 3 values, so that comm::exchange can test on them +------------------------------------------------------------------------- */ + +int AtomVecSpin::pack_exchange(int i, double *buf) +{ + int m = 1; + buf[m++] = x[i][0]; + buf[m++] = x[i][1]; + buf[m++] = x[i][2]; + buf[m++] = v[i][0]; + buf[m++] = v[i][1]; + buf[m++] = v[i][2]; + buf[m++] = ubuf(tag[i]).d; + buf[m++] = ubuf(type[i]).d; + buf[m++] = ubuf(mask[i]).d; + buf[m++] = ubuf(image[i]).d; + + buf[m++] = mumag[i]; + buf[m++] = sp[i][0]; + buf[m++] = sp[i][1]; + buf[m++] = sp[i][2]; + buf[m++] = sp[i][3]; + + if (atom->nextra_grow) + for (int iextra = 0; iextra < atom->nextra_grow; iextra++) + m += modify->fix[atom->extra_grow[iextra]]->pack_exchange(i,&buf[m]); + + buf[0] = m; + return m; +} + +/* ---------------------------------------------------------------------- */ + +int AtomVecSpin::unpack_exchange(double *buf) +{ + int nlocal = atom->nlocal; + if (nlocal == nmax) grow(0); + + int m = 1; + x[nlocal][0] = buf[m++]; + x[nlocal][1] = buf[m++]; + x[nlocal][2] = buf[m++]; + v[nlocal][0] = buf[m++]; + v[nlocal][1] = buf[m++]; + v[nlocal][2] = buf[m++]; + tag[nlocal] = (tagint) ubuf(buf[m++]).i; + type[nlocal] = (int) ubuf(buf[m++]).i; + mask[nlocal] = (int) ubuf(buf[m++]).i; + image[nlocal] = (imageint) ubuf(buf[m++]).i; + + mumag[nlocal] = buf[m++]; + sp[nlocal][0] = buf[m++]; + sp[nlocal][1] = buf[m++]; + sp[nlocal][2] = buf[m++]; + sp[nlocal][3] = buf[m++]; + + if (atom->nextra_grow) + for (int iextra = 0; iextra < atom->nextra_grow; iextra++) + m += modify->fix[atom->extra_grow[iextra]]-> + unpack_exchange(nlocal,&buf[m]); + + atom->nlocal++; + + return m; +} + +/* ---------------------------------------------------------------------- + size of restart data for all atoms owned by this proc + include extra data stored by fixes +------------------------------------------------------------------------- */ + +int AtomVecSpin::size_restart() +{ + int i; + + int nlocal = atom->nlocal; + int n = 16 * nlocal; + + if (atom->nextra_restart) + for (int iextra = 0; iextra < atom->nextra_restart; iextra++) + for (i = 0; i < nlocal; i++) + n += modify->fix[atom->extra_restart[iextra]]->size_restart(i); + + return n; +} + +/* ---------------------------------------------------------------------- + pack atom I's data for restart file including extra quantities + xyz must be 1st 3 values, so that read_restart can test on them + molecular types may be negative, but write as positive +------------------------------------------------------------------------- */ + +int AtomVecSpin::pack_restart(int i, double *buf) +{ + int m = 1; + + buf[m++] = x[i][0]; + buf[m++] = x[i][1]; + buf[m++] = x[i][2]; + buf[m++] = ubuf(tag[i]).d; + buf[m++] = ubuf(type[i]).d; + buf[m++] = ubuf(mask[i]).d; + buf[m++] = ubuf(image[i]).d; + buf[m++] = v[i][0]; + buf[m++] = v[i][1]; + buf[m++] = v[i][2]; + + buf[m++] = mumag[i]; + buf[m++] = sp[i][0]; + buf[m++] = sp[i][1]; + buf[m++] = sp[i][2]; + buf[m++] = sp[i][3]; + + if (atom->nextra_restart) + for (int iextra = 0; iextra < atom->nextra_restart; iextra++) + m += modify->fix[atom->extra_restart[iextra]]->pack_restart(i,&buf[m]); + + buf[0] = m; + return m; +} + +/* ---------------------------------------------------------------------- + unpack data for one atom from restart file including extra quantities +------------------------------------------------------------------------- */ + +int AtomVecSpin::unpack_restart(double *buf) +{ + int nlocal = atom->nlocal; + if (nlocal == nmax) { + grow(0); + if (atom->nextra_store) + memory->grow(atom->extra,nmax,atom->nextra_store,"atom:extra"); + } + + int m = 1; + x[nlocal][0] = buf[m++]; + x[nlocal][1] = buf[m++]; + x[nlocal][2] = buf[m++]; + tag[nlocal] = (tagint) ubuf(buf[m++]).i; + type[nlocal] = (int) ubuf(buf[m++]).i; + mask[nlocal] = (int) ubuf(buf[m++]).i; + image[nlocal] = (imageint) ubuf(buf[m++]).i; + v[nlocal][0] = buf[m++]; + v[nlocal][1] = buf[m++]; + v[nlocal][2] = buf[m++]; + + mumag[nlocal] = buf[m++]; + sp[nlocal][0] = buf[m++]; + sp[nlocal][1] = buf[m++]; + sp[nlocal][2] = buf[m++]; + sp[nlocal][3] = buf[m++]; + + double **extra = atom->extra; + if (atom->nextra_store) { + int size = static_cast (buf[0]) - m; + for (int i = 0; i < size; i++) extra[nlocal][i] = buf[m++]; + } + + atom->nlocal++; + return m; +} + +/* ---------------------------------------------------------------------- + create one atom of itype at coord + set other values to defaults +------------------------------------------------------------------------- */ + +void AtomVecSpin::create_atom(int itype, double *coord) +{ + + int nlocal = atom->nlocal; + if (nlocal == nmax) grow(0); + + tag[nlocal] = 0; + type[nlocal] = itype; + x[nlocal][0] = coord[0]; + x[nlocal][1] = coord[1]; + x[nlocal][2] = coord[2]; + mask[nlocal] = 1; + image[nlocal] = ((imageint) IMGMAX << IMG2BITS) | + ((imageint) IMGMAX << IMGBITS) | IMGMAX; + v[nlocal][0] = 0.0; + v[nlocal][1] = 0.0; + v[nlocal][2] = 0.0; + + mumag[nlocal] = 0.0; + sp[nlocal][0] = 0.0; + sp[nlocal][1] = 0.0; + sp[nlocal][2] = 0.0; + sp[nlocal][3] = 0.0; + + atom->nlocal++; +} + +/* ---------------------------------------------------------------------- + unpack one line from Atoms section of data file + initialize other atom quantities +------------------------------------------------------------------------- */ + +void AtomVecSpin::data_atom(double *coord, imageint imagetmp, char **values) +{ + int nlocal = atom->nlocal; + if (nlocal == nmax) grow(0); + + tag[nlocal] = ATOTAGINT(values[0]); + type[nlocal] = atoi(values[1]); + if (type[nlocal] <= 0 || type[nlocal] > atom->ntypes) + error->one(FLERR,"Invalid atom type in Atoms section of data file"); + + mumag[nlocal] = atof(values[2]); + + x[nlocal][0] = coord[0]; + x[nlocal][1] = coord[1]; + x[nlocal][2] = coord[2]; + + sp[nlocal][0] = atof(values[6]); + sp[nlocal][1] = atof(values[7]); + sp[nlocal][2] = atof(values[8]); + sp[nlocal][3] = sqrt(sp[nlocal][0]*sp[nlocal][0] + + sp[nlocal][1]*sp[nlocal][1] + + sp[nlocal][2]*sp[nlocal][2]); + + image[nlocal] = imagetmp; + + mask[nlocal] = 1; + v[nlocal][0] = 0.0; + v[nlocal][1] = 0.0; + v[nlocal][2] = 0.0; + + atom->nlocal++; +} + +/* ---------------------------------------------------------------------- + unpack hybrid quantities from one line in Atoms section of data file + initialize other atom quantities for this sub-style +------------------------------------------------------------------------- */ + +int AtomVecSpin::data_atom_hybrid(int nlocal, char **values) +{ + mumag[nlocal] = atof(values[0]); + sp[nlocal][0] = atof(values[1]); + sp[nlocal][1] = atof(values[2]); + sp[nlocal][2] = atof(values[3]); + sp[nlocal][3] = sqrt(sp[nlocal][0]*sp[nlocal][0] + + sp[nlocal][1]*sp[nlocal][1] + + sp[nlocal][2]*sp[nlocal][2]); + + return 4; +} + +/* ---------------------------------------------------------------------- + pack atom info for data file including 3 image flags +------------------------------------------------------------------------- */ + +void AtomVecSpin::pack_data(double **buf) +{ + int nlocal = atom->nlocal; + for (int i = 0; i < nlocal; i++) { + buf[i][0] = ubuf(tag[i]).d; + buf[i][1] = ubuf(type[i]).d; + buf[i][2] = mumag[i]; + buf[i][3] = x[i][0]; + buf[i][4] = x[i][1]; + buf[i][5] = x[i][2]; + buf[i][6] = sp[i][0]; + buf[i][7] = sp[i][1]; + buf[i][8] = sp[i][2]; + buf[i][9] = sp[i][3]; + buf[i][10] = ubuf((image[i] & IMGMASK) - IMGMAX).d; + buf[i][11] = ubuf((image[i] >> IMGBITS & IMGMASK) - IMGMAX).d; + buf[i][12] = ubuf((image[i] >> IMG2BITS) - IMGMAX).d; + } +} + +/* ---------------------------------------------------------------------- + pack hybrid atom info for data file +------------------------------------------------------------------------- */ + +int AtomVecSpin::pack_data_hybrid(int i, double *buf) +{ + buf[0] = mumag[i]; + buf[1] = sp[i][0]; + buf[2] = sp[i][1]; + buf[3] = sp[i][2]; + buf[4] = sp[i][3]; + + return 5; +} + +/* ---------------------------------------------------------------------- + write atom info to data file including 3 image flags +------------------------------------------------------------------------- */ + +void AtomVecSpin::write_data(FILE *fp, int n, double **buf) +{ + for (int i = 0; i < n; i++) + fprintf(fp,TAGINT_FORMAT \ + " %d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e " + "%-1.16e %d %d %d\n", + (tagint) ubuf(buf[i][0]).i,(int) ubuf(buf[i][1]).i, + buf[i][2],buf[i][3],buf[i][4], + buf[i][5],buf[i][6],buf[i][7],buf[i][8],buf[i][9], + (int) ubuf(buf[i][10]).i,(int) ubuf(buf[i][11]).i, + (int) ubuf(buf[i][12]).i); +} + +/* ---------------------------------------------------------------------- + write hybrid atom info to data file +------------------------------------------------------------------------- */ + +int AtomVecSpin::write_data_hybrid(FILE *fp, double *buf) +{ + fprintf(fp," %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e",buf[0],buf[1],buf[2],buf[3],buf[4]); + return 4; +} + +/* ---------------------------------------------------------------------- + return # of bytes of allocated memory +------------------------------------------------------------------------- */ + +bigint AtomVecSpin::memory_usage() +{ + bigint bytes = 0; + + if (atom->memcheck("tag")) bytes += memory->usage(tag,nmax); + if (atom->memcheck("type")) bytes += memory->usage(type,nmax); + if (atom->memcheck("mask")) bytes += memory->usage(mask,nmax); + if (atom->memcheck("image")) bytes += memory->usage(image,nmax); + if (atom->memcheck("x")) bytes += memory->usage(x,nmax,3); + if (atom->memcheck("v")) bytes += memory->usage(v,nmax,3); + if (atom->memcheck("f")) bytes += memory->usage(f,nmax*comm->nthreads,3); + + if (atom->memcheck("fm")) bytes += memory->usage(fm,nmax*comm->nthreads,3); + if (atom->memcheck("mumag")) bytes += memory->usage(mumag,nmax); + if (atom->memcheck("sp")) bytes += memory->usage(sp,nmax,4); + + return bytes; +} + +void AtomVecSpin::force_clear(int n, size_t nbytes) +{ + memset(&atom->f[0][0],0,3*nbytes); + memset(&atom->fm[0][0],0,3*nbytes); +} + + diff --git a/src/atom_vec_spin.h b/src/atom_vec_spin.h new file mode 100644 index 0000000000..f4b13926f0 --- /dev/null +++ b/src/atom_vec_spin.h @@ -0,0 +1,90 @@ +/* -*- 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 ATOM_CLASS + +AtomStyle(spin,AtomVecSpin) + +#else + +#ifndef LMP_ATOM_VEC_SPIN_H +#define LMP_ATOM_VEC_SPIN_H + +#include "atom_vec.h" + +namespace LAMMPS_NS { + +class AtomVecSpin : public AtomVec { + public: + AtomVecSpin(class LAMMPS *); + void grow(int); + void grow_reset(); + void copy(int, int, int); + int pack_comm(int, int *, double *, int, int *); + int pack_comm_vel(int, int *, double *, int, int *); + int pack_comm_hybrid(int, int *, double *); + void unpack_comm(int, int, double *); + void unpack_comm_vel(int, int, double *); + int unpack_comm_hybrid(int, int, double *); + int pack_reverse(int, int, double *); + void unpack_reverse(int, int *, double *); + int pack_border(int, int *, double *, int, int *); + int pack_border_vel(int, int *, double *, int, int *); + int pack_border_hybrid(int, int *, double *); + void unpack_border(int, int, double *); + void unpack_border_vel(int, int, double *); + int unpack_border_hybrid(int, int, double *); + int pack_exchange(int, double *); + int unpack_exchange(double *); + int size_restart(); + int pack_restart(int, double *); + int unpack_restart(double *); + void create_atom(int, double *); + void data_atom(double *, imageint, char **); + int data_atom_hybrid(int, char **); + void pack_data(double **); + int pack_data_hybrid(int, double *); + void write_data(FILE *, int, double **); + int write_data_hybrid(FILE *, double *); + bigint memory_usage(); + + //Test force clear + void force_clear(int, size_t); + + + private: + tagint *tag; + int *type,*mask; + imageint *image; + double **x,**v,**f; //MD quantities: position, velocity and force + double *mumag,**sp, **fm; //Magnetic quantities: mu, spin direction, magnetic force + +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Per-processor system is too big + +The number of owned atoms plus ghost atoms on a single +processor must fit in 32-bit integer. + +E: Invalid atom type in Atoms section of data file + +Atom types must range from 1 to specified # of types. + +*/ diff --git a/src/compute_spin.cpp b/src/compute_spin.cpp new file mode 100644 index 0000000000..370a2848a7 --- /dev/null +++ b/src/compute_spin.cpp @@ -0,0 +1,145 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include "compute_spin.h" +#include "atom.h" +#include "update.h" +#include "modify.h" +#include "domain.h" +#include "memory.h" +#include "error.h" +#include "math_special.h" +#include "math_const.h" +#include "force.h" + +using namespace LAMMPS_NS; +using namespace MathSpecial; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : + Compute(lmp, narg, arg), mag(NULL) +{ + if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); + + vector_flag = 1; + size_vector = 7; + extvector = 0; + + init(); + + allocate(); + +} + +/* ---------------------------------------------------------------------- */ + +ComputeSpin::~ComputeSpin() +{ + memory->destroy(mag); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeSpin::init() +{ + hbar = force->hplanck/MY_2PI; + kb = force->boltz; +} + +/* ---------------------------------------------------------------------- */ + +void ComputeSpin::compute_vector() +{ + int i, index; + + invoked_vector = update->ntimestep; + + countsp = countsptot = 0.0; + mag[0] = mag[1] = mag[2] = mag[3] = 0.0; + magtot[0] = magtot[1] = magtot[2] = magtot[3] = 0.0; + magenergy = magenergytot = 0.0; + tempnum = tempnumtot = 0.0; + tempdenom = tempdenomtot = 0.0; + spintemperature = 0.0; + + double **x = atom->x; + int *mask = atom->mask; + int *type = atom->type; + imageint *image = atom->image; + double *mumag = atom->mumag; + double **sp = atom->sp; + double **fm = atom->fm; + double tx,ty,tz; + + int nlocal = atom->nlocal; + + // compute total magnetization and magnetic energy + // compute spin temperature; See Nurdin et al., Phys. Rev. E 61, 2000 + for (i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (atom->mumag_flag && atom->sp_flag) { + mag[0] += sp[i][0]; + mag[1] += sp[i][1]; + mag[2] += sp[i][2]; + magenergy += mumag[i]*sp[i][0]*fm[i][0]; + magenergy += mumag[i]*sp[i][1]*fm[i][1]; + magenergy += mumag[i]*sp[i][2]*fm[i][2]; + tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; + ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; + tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; + tempnum += tx*tx+ty*ty+tz*tz; + tempdenom += sp[i][0]*sp[i][0]+sp[i][1]*sp[i][1]+sp[i][2]*sp[i][2]; + countsp++; + } + } + else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); + } + + MPI_Allreduce(mag,magtot,4,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&magenergy,&magenergytot,1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&tempnum,&tempnumtot,1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&tempdenom,&tempdenomtot,1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&countsp,&countsptot,1,MPI_DOUBLE,MPI_SUM,world); + + double scale = 1.0/countsptot; + magtot[0] *= scale; + magtot[1] *= scale; + magtot[2] *= scale; + magtot[3] = sqrt(square(magtot[0])+square(magtot[1])+square(magtot[2])); + spintemperature = hbar*tempnumtot/2.0/kb/tempdenomtot; + + vector[0] = invoked_vector*update->dt; + vector[1] = magtot[0]; + vector[2] = magtot[1]; + vector[3] = magtot[2]; + vector[4] = magtot[3]; + vector[5] = -0.5*magenergytot*hbar; + vector[6] = spintemperature; + +} + +/* ---------------------------------------------------------------------- + free and reallocate arrays +------------------------------------------------------------------------- */ + +void ComputeSpin::allocate() +{ + memory->destroy(mag); + memory->create(mag,4,"compute/spin:mag"); + memory->create(magtot,5,"compute/spin:mag"); + memory->create(vector,7,"compute/spin:vector"); +} + diff --git a/src/compute_spin.h b/src/compute_spin.h new file mode 100644 index 0000000000..a20b956b01 --- /dev/null +++ b/src/compute_spin.h @@ -0,0 +1,71 @@ +/* -*- 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 COMPUTE_CLASS + +ComputeStyle(compute/spin,ComputeSpin) + +#else + +#ifndef LMP_COMPUTE_SPIN_H +#define LMP_COMPUTE_SPIN_H + +#include "compute.h" + +namespace LAMMPS_NS { + +class ComputeSpin : public Compute { + public: + ComputeSpin(class LAMMPS *, int, char **); + ~ComputeSpin(); + void init(); + void compute_vector(); + + private: + double *mag; + double *magtot; + double magenergy; + double magenergytot; + double tempnum,tempnumtot; + double tempdenom,tempdenomtot; + double spintemperature; + double kb,hbar; + int countsp; + int countsptot; + int usecenter; + + 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: Chunk/atom compute does not exist for compute compute/spin + +Self-explanatory. + +E: Compute compute/spin does not use chunk/atom compute + +The style of the specified compute is not chunk/atom. + +*/ diff --git a/src/fix_force_spin.cpp b/src/fix_force_spin.cpp new file mode 100644 index 0000000000..27408456d6 --- /dev/null +++ b/src/fix_force_spin.cpp @@ -0,0 +1,255 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "fix_force_spin.h" +#include "atom.h" +#include "update.h" +#include "domain.h" +#include "respa.h" +#include "modify.h" +#include "input.h" +#include "variable.h" +#include "math_const.h" +#include "error.h" +#include "force.h" +#include "memory.h" + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; + +enum{ZEEMAN,ANISOTROPY}; +enum{CONSTANT,EQUAL}; + +/* ---------------------------------------------------------------------- */ + +FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) +{ + + if (narg < 7) error->all(FLERR,"Illegal fix spin command"); + // 7 arguments for a force/spin fix command: + //(fix ID group force/spin magnitude (T or eV) style (zeeman or anisotropy) direction (3 cartesian coordinates) + + //Magnetic interactions only coded for cartesian coordinates + + dynamic_group_allow = 1; + scalar_flag = 1; + global_freq = 1; + extscalar = 1; + respa_level_support = 1; + ilevel_respa = 0; + + magstr = NULL; + magfieldstyle = CONSTANT; + + H_field = 0.0; + Hx = Hy = Hz = 0.0; + Ka = 0.0; + Kax = Kay = Kaz = 0.0; + + zeeman_flag = aniso_flag = 0; + + if (strcmp(arg[3],"zeeman") == 0) { + if (narg != 8) error->all(FLERR,"Illegal fix zeeman command"); + style = ZEEMAN; + zeeman_flag = 1; + H_field = force->numeric(FLERR,arg[4]); + Hx = force->numeric(FLERR,arg[5]); + Hy = force->numeric(FLERR,arg[6]); + Hz = force->numeric(FLERR,arg[7]); + magfieldstyle = CONSTANT; + } else if (strcmp(arg[3],"anisotropy") == 0) { + if (narg != 8) error->all(FLERR,"Illegal fix anisotropy command"); + style = ANISOTROPY; + aniso_flag = 1; + Ka = force->numeric(FLERR,arg[4]); + Kax = force->numeric(FLERR,arg[5]); + Kay = force->numeric(FLERR,arg[6]); + Kaz = force->numeric(FLERR,arg[7]); + } else error->all(FLERR,"Illegal fix force/spin command"); + + degree2rad = MY_PI/180.0; + time_origin = update->ntimestep; + + eflag = 0; + emag = 0.0; +} + +/* ---------------------------------------------------------------------- */ + +FixForceSpin::~FixForceSpin() +{ + memory->destroy(spi); + memory->destroy(fmi); + delete [] magstr; +} + +/* ---------------------------------------------------------------------- */ + +int FixForceSpin::setmask() +{ + int mask = 0; + mask |= POST_FORCE; + mask |= THERMO_ENERGY; + mask |= POST_FORCE_RESPA; + return mask; +} + + +/* ---------------------------------------------------------------------- */ + +void FixForceSpin::init() +{ + double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) + double mub = 5.78901e-5; //in eV/T + double gyro = mub/hbar; //in rad.THz/T + + H_field *= gyro; //in rad.THz + Ka /= hbar; //in rad.THz + + if (strstr(update->integrate_style,"respa")) { + ilevel_respa = ((Respa *) update->integrate)->nlevels-1; + if (respa_level >= 0) ilevel_respa = MIN(respa_level,ilevel_respa); + } + + // check variables + if (magstr) { + magvar = input->variable->find(magstr); + if (magvar < 0) + error->all(FLERR,"Variable name for fix magnetic field does not exist"); + if (!input->variable->equalstyle(magvar)) + error->all(FLERR,"Variable for fix magnetic field is invalid style"); + } + + varflag = CONSTANT; + if (magfieldstyle != CONSTANT) varflag = EQUAL; + + // set magnetic field components once and for all + if (varflag == CONSTANT) set_magneticforce(); + + memory->create(spi,3,"forcespin:spi"); + memory->create(fmi,3,"forcespin:fmi"); + +} + +/* ---------------------------------------------------------------------- */ + +void FixForceSpin::setup(int vflag) +{ + if (strstr(update->integrate_style,"verlet")) + post_force(vflag); + else { + ((Respa *) update->integrate)->copy_flevel_f(ilevel_respa); + post_force_respa(vflag,ilevel_respa,0); + ((Respa *) update->integrate)->copy_f_flevel(ilevel_respa); + } +} + +/* ---------------------------------------------------------------------- */ + +void FixForceSpin::post_force(int vflag) +{ + // update gravity due to variables + if (varflag != CONSTANT) { + modify->clearstep_compute(); + modify->addstep_compute(update->ntimestep + 1); + set_magneticforce(); //Update value of the mag. field if time-dependent + } + +// double **x = atom->x; + double **sp = atom->sp; + double *mumag = atom->mumag; + double **fm = atom->fm; + int nlocal = atom->nlocal; + double scalar; + + eflag = 0; + emag = 0.0; + + for (int i = 0; i < nlocal; i++) { + fmi[0] = fmi[1] = fmi[2] = 0.0; + //if (style == ZEEMAN) { + if (zeeman_flag) { + compute_zeeman(i,fmi); + } + //if (style == ANISOTROPY) { + if (aniso_flag) { + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + compute_anisotropy(i,spi,fmi); + } + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; + fm[i][2] += fmi[2]; + } +} + + +/* ---------------------------------------------------------------------- */ +void FixForceSpin::compute_zeeman(int i, double *fmi) +{ +double *mumag = atom->mumag; + fmi[0] += mumag[i]*xmag; + fmi[1] += mumag[i]*ymag; + fmi[2] += mumag[i]*zmag; +} + +void FixForceSpin::compute_anisotropy(int i, double * spi, double *fmi) +{ + double scalar = Kax*spi[0] + Kay*spi[1] + Kaz*spi[2]; + fmi[0] += scalar*xmag; + fmi[1] += scalar*ymag; + fmi[2] += scalar*zmag; +} + +/* ---------------------------------------------------------------------- */ + +void FixForceSpin::post_force_respa(int vflag, int ilevel, int iloop) +{ + if (ilevel == ilevel_respa) post_force(vflag); +} + +/* ---------------------------------------------------------------------- */ +//No acceleration for magnetic EOM, only a "magnetic force" +void FixForceSpin::set_magneticforce() +{ + if (style == ZEEMAN) { + xmag = H_field*Hx; + ymag = H_field*Hy; + zmag = H_field*Hz; + } + if (style == ANISOTROPY) { + xmag = 2.0*Ka*Kax; + ymag = 2.0*Ka*Kay; + zmag = 2.0*Ka*Kaz; + } +} + +/* ---------------------------------------------------------------------- + potential energy in magnetic field +------------------------------------------------------------------------- */ + +double FixForceSpin::compute_scalar() +{ + // only sum across procs one time + if (eflag == 0) { + MPI_Allreduce(&emag,&emag_all,1,MPI_DOUBLE,MPI_SUM,world); + eflag = 1; + } + return emag_all; +} diff --git a/src/fix_force_spin.h b/src/fix_force_spin.h new file mode 100644 index 0000000000..a422abad2c --- /dev/null +++ b/src/fix_force_spin.h @@ -0,0 +1,92 @@ +/* -*- 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 FIX_CLASS + +FixStyle(force/spin,FixForceSpin) + +#else + +#ifndef LMP_FIX_FORCE_SPIN_H +#define LMP_FIX_FORCE_SPIN_H + +#include "fix.h" + +namespace LAMMPS_NS { + +class FixForceSpin : public Fix { + friend class FixPour; + + public: + FixForceSpin(class LAMMPS *, int, char **); + ~FixForceSpin(); + int setmask(); + void init(); + void setup(int); + virtual void post_force(int); + virtual void post_force_respa(int, int, int); + double compute_scalar(); + + int zeeman_flag, aniso_flag; + void compute_zeeman(int, double *); + void compute_anisotropy(int, double *, double *); + + protected: + int style; + + double xmag, ymag, zmag; //Magnetic force + double degree2rad; + int ilevel_respa; + int time_origin; + int eflag; + double emag, emag_all; + + int varflag; + int magfieldstyle; + int magvar; + char *magstr; + + double H_field; //Zeeman field intensity and direction + double Hx, Hy, Hz; + + double Ka; //Magnetic anisotropy intensity and direction + double Kax, Kay, Kaz; + + double *spi, *fmi; //Temp var. in compute + + void set_magneticforce(); + +}; + +} + +#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: Variable name for fix force/spin does not exist + +Self-explanatory. + +E: Variable for fix force/spin is invalid style + +Only equal-style variables can be used. + +*/ diff --git a/src/fix_langevin_spin.cpp b/src/fix_langevin_spin.cpp new file mode 100644 index 0000000000..ab76051f08 --- /dev/null +++ b/src/fix_langevin_spin.cpp @@ -0,0 +1,200 @@ +/* ---------------------------------------------------------------------- + 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 authors: Carolyn Phillips (U Mich), reservoir energy tally + Aidan Thompson (SNL) GJF formulation +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "fix_langevin_spin.h" +#include "math_extra.h" +#include "atom.h" +#include "atom_vec_ellipsoid.h" +#include "force.h" +#include "update.h" +#include "modify.h" +#include "compute.h" +#include "domain.h" +#include "region.h" +#include "respa.h" +#include "comm.h" +#include "input.h" +#include "variable.h" +#include "random_mars.h" +#include "memory.h" +#include "error.h" +#include "group.h" +#include "math_const.h" +#include "random_park.h" + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg), id_temp(NULL), random(NULL) +{ + if (narg != 7) error->all(FLERR,"Illegal fix langevin/spin command"); + + dynamic_group_allow = 1; + scalar_flag = 1; + global_freq = 1; + extscalar = 1; + nevery = 1; + + temp = force->numeric(FLERR,arg[3]); + alpha_t = force->numeric(FLERR,arg[4]); + alpha_l = force->numeric(FLERR,arg[5]); + seed = force->inumeric(FLERR,arg[6]); + + if (alpha_t < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); + if (alpha_l < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); + if (seed <= 0) error->all(FLERR,"Illegal fix langevin/spin seed must be > 0"); + + // initialize Marsaglia RNG with processor-unique seed + //random = new RanMars(lmp,seed + comm->me); + random = new RanPark(lmp,seed + comm->me); + +} + +/* ---------------------------------------------------------------------- */ + +FixLangevinSpin::~FixLangevinSpin() +{ + delete random; +} + +/* ---------------------------------------------------------------------- */ + +int FixLangevinSpin::setmask() +{ + int mask = 0; + mask |= POST_FORCE; + mask |= POST_FORCE_RESPA; + mask |= END_OF_STEP; + mask |= THERMO_ENERGY; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixLangevinSpin::init() +{ + // warn if any fix comes after this one + int after = 0; + int flag_force = 0; + int flag_lang = 0; + for (int i = 0; i < modify->nfix; i++) { + if (strcmp("force/spin",modify->fix[i]->style)==0) flag_force = MAX(flag_force,i); + if (strcmp("langevin/spin",modify->fix[i]->style)==0) flag_lang = i; + } + if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin should come after all other spin fixes"); + + dts = update->dt; + Gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); + + double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) + double kb = force->boltz; + D = (MY_2PI*Gil_factor*kb*temp)/hbar/dts; + sigma = sqrt(D); +} + +/* ---------------------------------------------------------------------- */ + +void FixLangevinSpin::setup(int vflag) +{ + if (strstr(update->integrate_style,"verlet")) + post_force(vflag); + else { + ((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1); + post_force_respa(vflag,nlevels_respa-1,0); + ((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1); + } +} + +/* ---------------------------------------------------------------------- */ + +void FixLangevinSpin::post_force(int vflag) +{ + double **sp = atom->sp; + double **fm = atom->fm; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + double sx, sy, sz; + double fmx, fmy, fmz; + double cpx, cpy, cpz; + double rx, ry, rz; + + // add the damping to the effective field of each spin + for (int i = 0; i < nlocal; i++) + if (mask[i] & groupbit) { + sx = sp[i][0]; + sy = sp[i][1]; + sz = sp[i][2]; + + fmx = fm[i][0]; + fmy = fm[i][1]; + fmz = fm[i][2]; + + cpx = fmy*sz - fmz*sy;//Computing cross product + cpy = fmz*sx - fmx*sz; + cpz = fmx*sy - fmy*sx; + + fmx -= alpha_t*cpx;//Taking the damping value away + fmy -= alpha_t*cpy; + fmz -= alpha_t*cpz; + + fm[i][0] = fmx; + fm[i][1] = fmy; + fm[i][2] = fmz; + } + + //apply thermal effects adding random fields to fm + for (int i = 0; i < nlocal; i++) + if (mask[i] & groupbit) { + #define GAUSSIAN_R + #if defined GAUSSIAN_R + rx = sigma*random->gaussian();//Drawing random distributions + ry = sigma*random->gaussian(); + rz = sigma*random->gaussian(); + #else + rx = sigma*(random->uniform() - 0.5); + ry = sigma*(random->uniform() - 0.5); + rz = sigma*(random->uniform() - 0.5); + #endif + + fm[i][0] += rx;//Adding random field + fm[i][1] += ry; + fm[i][2] += rz; + + fm[i][0] *= Gil_factor;//Multiplying by Gilbert's prefactor + fm[i][1] *= Gil_factor; + fm[i][2] *= Gil_factor; + + } +} + +/* ---------------------------------------------------------------------- */ + +void FixLangevinSpin::post_force_respa(int vflag, int ilevel, int iloop) +{ + if (ilevel == nlevels_respa-1) post_force(vflag); +} + diff --git a/src/fix_langevin_spin.h b/src/fix_langevin_spin.h new file mode 100644 index 0000000000..ffd94745e2 --- /dev/null +++ b/src/fix_langevin_spin.h @@ -0,0 +1,106 @@ +/* -*- 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 FIX_CLASS + +FixStyle(langevin/spin,FixLangevinSpin) + +#else + +#ifndef LMP_FIX_LANGEVIN_SPIN_H +#define LMP_FIX_LANGEVIN_SPIN_H + +#include "fix.h" + +namespace LAMMPS_NS { + +class FixLangevinSpin : public Fix { + public: + FixLangevinSpin(class LAMMPS *, int, char **); + virtual ~FixLangevinSpin(); + int setmask(); + void init(); + void setup(int); + virtual void post_force(int); + void post_force_respa(int, int, int); + + protected: + //First mag. quantities + int transv_damp_flag, long_damp_flag; //Flags for transverse or longitudinal mag. dampings + double alpha_t, alpha_l; //Transverse and long. damping value + double dts,temp,D,sigma;//timestep, temp, noise + double Gil_factor;//Gilbert's prefactor + + char *id_temp; + class Compute *temperature; + + int nlevels_respa; + //class RanMars *random; + class RanPark *random; + int seed; + +}; + +} + +#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: Fix langevin period must be > 0.0 + +The time window for temperature relaxation must be > 0 + +W: Energy tally does not account for 'zero yes' + +The energy removed by using the 'zero yes' flag is not accounted +for in the energy tally and thus energy conservation cannot be +monitored in this case. + + +E: Variable for fix langevin is invalid style + +It must be an equal-style variable. + + +E: Cannot zero Langevin force of 0 atoms + +The group has zero atoms, so you cannot request its force +be zeroed. + +E: Fix langevin variable returned negative temperature + +Self-explanatory. + +E: Could not find fix_modify temperature ID + +The compute ID for computing temperature does not exist. + +E: Fix_modify temperature ID does not compute temperature + +The compute ID assigned to the fix must compute temperature. + +W: Group for fix_modify temp != fix group + +The fix_modify command is specifying a temperature computation that +computes a temperature on a different group of atoms than the fix +itself operates on. This is probably not what you want to do. + +*/ diff --git a/src/fix_nve_spin.cpp b/src/fix_nve_spin.cpp new file mode 100644 index 0000000000..d2b1ce328b --- /dev/null +++ b/src/fix_nve_spin.cpp @@ -0,0 +1,562 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include "fix_nve_spin.h" +#include "atom.h" +#include "atom_vec.h" +#include "update.h" +#include "respa.h" +#include "force.h" +#include "error.h" +#include "math_vector.h" +#include "math_extra.h" +#include "math_const.h" +#include "modify.h" + +//Add headers (see delete later) +#include "pair.h" +#include "timer.h" +#include "integrate.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "pair_spin.h" +#include "memory.h" +#include "fix_force_spin.h" + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; +using namespace MathExtra; + +enum{NONE,SPIN}; + +/* ---------------------------------------------------------------------- */ + +FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : + FixNVE(lmp, narg, arg) +{ + + if (narg < 3) error->all(FLERR,"Illegal fix nve/spin command"); + + time_integrate = 1; + + extra = NONE; + + int iarg = 2; + if (strcmp(arg[iarg],"nve/spin") == 0) { + if (iarg+1 > narg) error->all(FLERR,"Illegal fix nve/spin command"); + extra = SPIN; + } + + // error checks + if (extra == SPIN && !atom->mumag_flag) + error->all(FLERR,"Fix nve/spin requires spin attribute mumag"); + +#if defined SEQNEI + lockpairspin = NULL; + lockforcespin = NULL; + exch_flag = dmi_flag = me_flag = 0; + zeeman_flag = aniso_flag = 0; +#endif +} + +/* ---------------------------------------------------------------------- */ +FixNVESpin::~FixNVESpin(){ +#if defined SEQNEI + //delete lockpairspin; + //delete lockforcespin; + memory->destroy(spi); + memory->destroy(fmi); + memory->destroy(fmj); +#endif +} + +/* ---------------------------------------------------------------------- */ + +void FixNVESpin::init() +{ + FixNVE::init(); + + dts = update->dt; + + #if defined SEQNEI + lockpairspin = (PairSpin *) force->pair; + + memory->create(spi,3,"nves:spi"); + memory->create(fmi,3,"nves:fmi"); + memory->create(fmj,3,"nves:fmj"); + + int iforce; + for (iforce = 0; iforce < modify->nfix; iforce++) + if (strstr(modify->fix[iforce]->style,"force/spin")) break; + lockforcespin = (FixForceSpin *) modify->fix[iforce]; + + exch_flag = lockpairspin->exch_flag; + dmi_flag = lockpairspin->dmi_flag; + me_flag = lockpairspin->me_flag; + + zeeman_flag = lockforcespin->zeeman_flag; + aniso_flag = lockforcespin->aniso_flag; + #endif + + /*int idamp; + for (idamp = 0; idamp < modify->nfix; idamp++) + if (strstr(modify->fix[idamp]->style,"damping/spin")) break; + if (idamp == modify->nfix) + error->all(FLERR,"Integration of spin systems requires use of fix damping (set damping to 0.0 for NVE)"); + + lockspindamping = (FixSpinDamping *) modify->fix[idamp]; + alpha_t = lockspindamping->get_damping(0); + */ +} + +/* ---------------------------------------------------------------------- */ + +void FixNVESpin::initial_integrate(int vflag) +{ + double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; + double cp[3],g[3]; + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + double **sp = atom->sp; + double **fm = atom->fm; + double *rmass = atom->rmass; + double *mass = atom->mass; + int nlocal = atom->nlocal; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; + int *type = atom->type; + int *mask = atom->mask; + + // Advance half spins all particles + //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 + if (extra == SPIN) { +#if defined SEQNEI + for (int i = 0; i < nlocal; i++){ + ComputeSpinInteractionsNei(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } +#endif +#if defined SEQ + for (int i = 0; i < nlocal; i++){ + AdvanceSingleSpin(i,0.5*dts,sp,fm); + ComputeSpinInteractions(); + } +#endif + } + + // update half v all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (rmass) dtfm = dtf / rmass[i]; + else dtfm = dtf / mass[type[i]]; + v[i][0] += dtfm * f[i][0]; + v[i][1] += dtfm * f[i][1]; + v[i][2] += dtfm * f[i][2]; + } + } + + // update x for all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] += 0.5 * dtv * v[i][0]; + x[i][1] += 0.5 * dtv * v[i][1]; + x[i][2] += 0.5 * dtv * v[i][2]; + } + } +} + +#if defined SEQNEI +/* ---------------------------------------------------------------------- */ +void FixNVESpin::ComputeSpinInteractionsNei(int ii) +{ + int nflag,sortflag; + int nlocal = atom->nlocal; + + int n_post_integrate = modify->n_post_integrate; + int n_pre_exchange = modify->n_pre_exchange; + int n_pre_neighbor = modify->n_pre_neighbor; + int n_pre_force = modify->n_pre_force; + int n_pre_reverse = modify->n_pre_reverse; + int n_post_force = modify->n_post_force; + int n_end_of_step = modify->n_end_of_step; + + bigint ntimestep; + ntimestep = update->ntimestep; + + //Force compute quantities + int i,j,jj,inum,jnum,itype,jtype; + int *ilist,*jlist,*numneigh,**firstneigh; + double **x = atom->x; + double **sp = atom->sp; + double **fm = atom->fm; + int *type = atom->type; + int newton_pair = force->newton_pair; + + inum = lockpairspin->list->inum; + ilist = lockpairspin->list->ilist; + numneigh = lockpairspin->list->numneigh; + firstneigh = lockpairspin->list->firstneigh; + + double xtmp,ytmp,ztmp; + double rsq,rd,delx,dely,delz; + double cut_ex_2, cut_dmi_2, cut_me_2; + cut_ex_2 = cut_dmi_2 = cut_me_2 = 0.0; + + int eflag = 1; + int vflag = 0; + int pair_compute_flag = 1; + + if (atom->sortfreq > 0) sortflag = 1; + else sortflag = 0; + if (n_post_integrate) modify->post_integrate(); + timer->stamp(Timer::MODIFY); + + // regular communication vs neighbor list rebuild + nflag = neighbor->decide(); + if (nflag == 0) { + timer->stamp(); + comm->forward_comm(); + timer->stamp(Timer::COMM); + } else { + if (n_pre_exchange) { + timer->stamp(); + modify->pre_exchange(); + timer->stamp(Timer::MODIFY); + } + //if (triclinic) domain->x2lamda(atom->nlocal); + domain->pbc(); + if (domain->box_change) { + domain->reset_box(); + comm->setup(); + if (neighbor->style) neighbor->setup_bins(); + } + timer->stamp(); + comm->exchange(); + if (sortflag && ntimestep >= atom->nextsort) atom->sort(); + comm->borders(); + //if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); + timer->stamp(Timer::COMM); + if (n_pre_neighbor) { + modify->pre_neighbor(); + timer->stamp(Timer::MODIFY); + } + neighbor->build(); + timer->stamp(Timer::NEIGH); + } + + ///////Force computation for spin i///////////// + i = ilist[ii]; + //Clear atom i + fm[i][0] = fm[i][1] = fm[i][2] = 0.0; + + timer->stamp(); + + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + fmi[0] = fmi[1] = fmi[2] = 0.0; + fmj[0] = fmj[1] = fmj[2] = 0.0; + jlist = firstneigh[i]; + jnum = numneigh[i]; + +// printf("Test inum: %g \n",inum); +/* + //Pair interaction + for (int jj = 0; jj < inum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + itype = type[ii]; + jtype = type[j]; + + if (exch_flag) { + cut_ex_2 = (lockpairspin->cut_spin_exchange[itype][jtype])*(lockpairspin->cut_spin_exchange[itype][jtype]); + if (rsq <= cut_ex_2) { + lockpairspin->compute_exchange(i,j,rsq,fmi,fmj); + } + } + if (dmi_flag) { + cut_dmi_2 = (lockpairspin->cut_spin_dmi[itype][jtype])*(lockpairspin->cut_spin_dmi[itype][jtype]); + if (rsq <= cut_dmi_2) { + lockpairspin->compute_dmi(i,j,fmi,fmj); + } + } + if (me_flag) { + cut_me_2 = (lockpairspin->cut_spin_me[itype][jtype])*(lockpairspin->cut_spin_me[itype][jtype]); + if (rsq <= cut_me_2) { + lockpairspin->compute_me(i,j,fmi,fmj); + } + } + } +*/ + + //Pair interaction + int natom = nlocal + atom->nghost; + for (int k = 0; k < natom; k++) { + delx = xtmp - x[k][0]; + dely = ytmp - x[k][1]; + delz = ztmp - x[k][2]; + rsq = delx*delx + dely*dely + delz*delz; + itype = type[ii]; + jtype = type[k]; + + if (exch_flag) { + cut_ex_2 = (lockpairspin->cut_spin_exchange[itype][jtype])*(lockpairspin->cut_spin_exchange[itype][jtype]); + if (rsq <= cut_ex_2) { + lockpairspin->compute_exchange(i,k,rsq,fmi,fmj); + } + } + if (dmi_flag) { + cut_dmi_2 = (lockpairspin->cut_spin_dmi[itype][jtype])*(lockpairspin->cut_spin_dmi[itype][jtype]); + if (rsq <= cut_dmi_2) { + lockpairspin->compute_dmi(i,k,fmi,fmj); + } + } + if (me_flag) { + cut_me_2 = (lockpairspin->cut_spin_me[itype][jtype])*(lockpairspin->cut_spin_me[itype][jtype]); + if (rsq <= cut_me_2) { + lockpairspin->compute_me(i,k,fmi,fmj); + } + } + } + + + //post force + if (zeeman_flag) { + lockforcespin->compute_zeeman(i,fmi); + } + if (aniso_flag) { + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + lockforcespin->compute_anisotropy(i,spi,fmi); + } + + //Replace the force by its new value + fm[i][0] = fmi[0]; + fm[i][1] = fmi[1]; + fm[i][2] = fmi[2]; + +} +#endif + +/* ---------------------------------------------------------------------- */ +void FixNVESpin::ComputeSpinInteractions() +{ + int nflag,sortflag; + int nlocal = atom->nlocal; + + int n_post_integrate = modify->n_post_integrate; + int n_pre_exchange = modify->n_pre_exchange; + int n_pre_neighbor = modify->n_pre_neighbor; + int n_pre_force = modify->n_pre_force; + int n_pre_reverse = modify->n_pre_reverse; + int n_post_force = modify->n_post_force; + int n_end_of_step = modify->n_end_of_step; + + bigint ntimestep; + ntimestep = update->ntimestep; + + //int eflag = update->integrate->eflag; + //int vflag = update->integrate->vflag; + int eflag = 1; + int vflag = 0; + int pair_compute_flag = 1; + + if (atom->sortfreq > 0) sortflag = 1; + else sortflag = 0; + if (n_post_integrate) modify->post_integrate(); + timer->stamp(Timer::MODIFY); + + // regular communication vs neighbor list rebuild + nflag = neighbor->decide(); + if (nflag == 0) { + timer->stamp(); + comm->forward_comm(); + timer->stamp(Timer::COMM); + } else { + if (n_pre_exchange) { + timer->stamp(); + modify->pre_exchange(); + timer->stamp(Timer::MODIFY); + } + //if (triclinic) domain->x2lamda(atom->nlocal); + domain->pbc(); + if (domain->box_change) { + domain->reset_box(); + comm->setup(); + if (neighbor->style) neighbor->setup_bins(); + } + timer->stamp(); + comm->exchange(); + if (sortflag && ntimestep >= atom->nextsort) atom->sort(); + comm->borders(); + //if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); + timer->stamp(Timer::COMM); + if (n_pre_neighbor) { + modify->pre_neighbor(); + timer->stamp(Timer::MODIFY); + } + neighbor->build(); + timer->stamp(Timer::NEIGH); + } + + // force computations + // important for pair to come before bonded contributions + // since some bonded potentials tally pairwise energy/virial + // and Pair:ev_tally() needs to be called before any tallying + + size_t nbytes; + nbytes = sizeof(double) * nlocal; + if (force->newton) nbytes += sizeof(double) * atom->nghost; + + atom->avec->force_clear(0,nbytes); + + timer->stamp(); + + if (n_pre_force) { + modify->pre_force(vflag); + timer->stamp(Timer::MODIFY); + } + + if (pair_compute_flag) { + force->pair->compute(eflag,vflag); + timer->stamp(Timer::PAIR); + } + + /*if (kspace_compute_flag) { + force->kspace->compute(eflag,vflag); + timer->stamp(Timer::KSPACE); + }*/ + + if (n_pre_reverse) { + modify->pre_reverse(eflag,vflag); + timer->stamp(Timer::MODIFY); + } + + // reverse communication of forces + + if (force->newton) { + comm->reverse_comm(); + timer->stamp(Timer::COMM); + } + + // force modifications + + if (n_post_force) modify->post_force(vflag); + timer->stamp(Timer::MODIFY); + +} + +/* ---------------------------------------------------------------------- */ + +void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) +{ + int nlocal = atom->nlocal; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; + int *type = atom->type; + int *mask = atom->mask; + + double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; + double cp[3],g[3]; + + cp[0] = cp[1] = cp[2] = 0.0; + g[0] = g[1] = g[2] = 0.0; + fm2 = (fm[i][0]*fm[i][0])+(fm[i][1]*fm[i][1])+(fm[i][2]*fm[i][2]); + fmsq = sqrt(fm2); + energy = (sp[i][0]*fm[i][0])+(sp[i][1]*fm[i][1])+(sp[i][2]*fm[i][2]); + + cp[0] = fm[i][1]*sp[i][2]-fm[i][2]*sp[i][1]; + cp[1] = fm[i][2]*sp[i][0]-fm[i][0]*sp[i][2]; + cp[2] = fm[i][0]*sp[i][1]-fm[i][1]*sp[i][0]; + + g[0] = sp[i][0]+cp[0]*dts; + g[1] = sp[i][1]+cp[1]*dts; + g[2] = sp[i][2]+cp[2]*dts; + + g[0] += (fm[i][0]*energy-0.5*sp[i][0]*fm2)*0.5*dts*dts; + g[1] += (fm[i][1]*energy-0.5*sp[i][1]*fm2)*0.5*dts*dts; + g[2] += (fm[i][2]*energy-0.5*sp[i][2]*fm2)*0.5*dts*dts; + + g[0] /= (1+0.25*fm2*dts*dts); + g[1] /= (1+0.25*fm2*dts*dts); + g[2] /= (1+0.25*fm2*dts*dts); + + sp[i][0] = g[0]; + sp[i][1] = g[1]; + sp[i][2] = g[2]; + + //Renormalization (may not be necessary) + msq = g[0]*g[0] + g[1]*g[1] + g[2]*g[2]; + scale = 1.0/sqrt(msq); + sp[i][0] *= scale; + sp[i][1] *= scale; + sp[i][2] *= scale; +} + +/* ---------------------------------------------------------------------- */ + +void FixNVESpin::final_integrate() +{ + double dtfm,msq,scale,fm2,fmsq,energy; + double cp[3],g[3]; + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + double **sp = atom->sp; + double **fm = atom->fm; + double *rmass = atom->rmass; + double *mass = atom->mass; + int nlocal = atom->nlocal; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; + int *type = atom->type; + int *mask = atom->mask; + + // update half v for all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (rmass) dtfm = dtf / rmass[i]; + else dtfm = dtf / mass[type[i]]; + v[i][0] += dtfm * f[i][0]; + v[i][1] += dtfm * f[i][1]; + v[i][2] += dtfm * f[i][2]; + } + } + + // Advance half spins all particles + //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 + if (extra == SPIN) { +#if defined SEQNEI + for (int i = nlocal-1; i >= 0; i--){ + ComputeSpinInteractionsNei(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } +#endif +#if defined SEQ + for (int i = nlocal-1; i >= 0; i--){ + AdvanceSingleSpin(i,0.5*dts,sp,fm); + ComputeSpinInteractions(); + } +#endif + } +} diff --git a/src/fix_nve_spin.h b/src/fix_nve_spin.h new file mode 100644 index 0000000000..8f516b2409 --- /dev/null +++ b/src/fix_nve_spin.h @@ -0,0 +1,90 @@ +/* -*- 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 FIX_CLASS + +FixStyle(nve/spin,FixNVESpin) + +#else + +#ifndef LMP_FIX_NVE_SPIN_H +#define LMP_FIX_NVE_SPIN_H + +#include "fix_nve.h" + +namespace LAMMPS_NS { + +class FixNVESpin : public FixNVE { + + public: + FixNVESpin(class LAMMPS *, int, char **); + virtual ~FixNVESpin(); + void init(); + virtual void initial_integrate(int); + void AdvanceSingleSpin(int, double, double **, double **); + virtual void final_integrate(); + +//#define SEQ +#define SEQNEI + void ComputeSpinInteractions(); + void ComputeSpinInteractionsNei(int); + + protected: + int extra; + double dts; + //double alpha_t; + +#if defined SEQNEI + private: + int exch_flag, dmi_flag, me_flag; + int zeeman_flag, aniso_flag; + class PairSpin *lockpairspin; + double *spi, *fmi, *fmj; //Temp var. for compute + class FixForceSpin *lockforcespin; +#endif + + //private: + //class FixSpinDamping *lockspindamping; +}; + +} + +#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: Fix nve/sphere requires atom style sphere + +Self-explanatory. + +E: Fix nve/sphere update dipole requires atom attribute mu + +An atom style with this attribute is needed. + +E: Fix nve/sphere requires extended particles + +This fix can only be used for particles of a finite size. + +E: Fix nve/sphere dlm must be used with update dipole + +The DLM algorithm can only be used in conjunction with update dipole. + + +*/ diff --git a/src/pair_spin.cpp b/src/pair_spin.cpp new file mode 100755 index 0000000000..cdd9ca8e0d --- /dev/null +++ b/src/pair_spin.cpp @@ -0,0 +1,558 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include "pair_spin.h" +#include "atom.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "comm.h" +#include "force.h" +#include "memory.h" +#include "math_const.h" +#include "error.h" +#include "update.h" +#include + +//Add. lib. for full neighb. list +#include "neigh_request.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp) +{ + single_enable = 0; + exch_flag = 0; + dmi_flag = 0; + me_flag = 0; + +} + +/* ---------------------------------------------------------------------- */ + +PairSpin::~PairSpin() +{ + if (allocated) { + memory->destroy(setflag); + + memory->destroy(cut_spin_exchange); + memory->destroy(J_1); + memory->destroy(J_2); + memory->destroy(J_2); + + memory->destroy(cut_spin_dmi); + memory->destroy(DM); + memory->destroy(v_dmx); + memory->destroy(v_dmy); + memory->destroy(v_dmz); + + memory->destroy(cut_spin_me); + memory->destroy(ME); + memory->destroy(v_mex); + memory->destroy(v_mey); + memory->destroy(v_mez); + + memory->destroy(fmi); + memory->destroy(fmj); + + memory->destroy(cutsq); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairSpin::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double evdwl,ecoul; + double xtmp,ytmp,ztmp; + double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; + double cut_ex_2,cut_dmi_2,cut_me_2; + double rsq,rd,delx,dely,delz; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + double **x = atom->x; + double **fm = atom->fm; + double *mumag = atom->mumag; + double **sp = atom->sp; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // Pair spin computations + // Loop over neighbors of my itoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + //Loop on Neighbors + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + fmi[0] = fmi[1] = fmi[2] = 0.0; + fmj[0] = fmj[1] = fmj[2] = 0.0; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; //square or inter-atomic distance + itype = type[i]; + jtype = type[j]; + + //Exchange interaction + if (exch_flag) { + cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; + if (rsq <= cut_ex_2) { + compute_exchange(i,j,rsq,fmi,fmj); + } + } + //DM interaction + if (dmi_flag){ + cut_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; + if (rsq <= cut_dmi_2){ + compute_dmi(i,j,fmi,fmj); + } + } + //ME interaction + if (me_flag){ + cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; + if (rsq <= cut_me_2){ + compute_me(i,j,fmi,fmj); + } + } + + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; + fm[i][2] += fmi[2]; + + if (newton_pair || j < nlocal) { + fm[j][0] += fmj[0]; + fm[j][1] += fmj[1]; + fm[j][2] += fmj[2]; + } + } + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- */ +void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj) +{ + int *type = atom->type; + int itype, jtype; + double **sp = atom->sp; + double dmix,dmiy,dmiz; + double Jex, ra; + itype = type[i]; + jtype = type[j]; + + ra = rsq/J_3[itype][jtype]/J_3[itype][jtype]; + Jex = 4.0*J_1[itype][jtype]*ra; + Jex *= (1.0-J_2[itype][jtype]*ra); + Jex *= exp(-ra); + + fmi[0] += Jex*sp[j][0]; + fmi[1] += Jex*sp[j][1]; + fmi[2] += Jex*sp[j][2]; + + fmj[0] += Jex*sp[i][0]; + fmj[1] += Jex*sp[i][1]; + fmj[2] += Jex*sp[i][2]; + +} + +/* ---------------------------------------------------------------------- */ +void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj) +{ + int *type = atom->type; + int itype, jtype; + double **sp = atom->sp; + double dmix,dmiy,dmiz; + itype = type[i]; + jtype = type[j]; + + dmix = DM[itype][jtype]*v_dmx[itype][jtype]; + dmiy = DM[itype][jtype]*v_dmy[itype][jtype]; + dmiz = DM[itype][jtype]*v_dmz[itype][jtype]; + + fmi[0] += sp[j][1]*dmiz-sp[j][2]*dmiy; + fmi[1] += sp[j][2]*dmix-sp[j][0]*dmiz; + fmi[2] += sp[j][0]*dmiy-sp[j][1]*dmix; + + fmj[0] -= sp[i][1]*dmiz-sp[i][2]*dmiy; + fmj[1] -= sp[i][2]*dmix-sp[i][0]*dmiz; + fmj[2] -= sp[i][0]*dmiy-sp[i][1]*dmix; +} + +/* ---------------------------------------------------------------------- */ +void PairSpin::compute_me(int i, int j, double *fmi, double *fmj) +{ + int *type = atom->type; + int itype, jtype; + itype = type[i]; + jtype = type[j]; + double **sp = atom->sp; + double **x = atom->x; + double meix,meiy,meiz; + double rx, ry, rz, inorm; + + rx = x[j][0] - x[i][0]; + ry = x[j][1] - x[i][1]; + rz = x[j][2] - x[i][2]; + inorm = 1.0/sqrt(rx*rx+ry*ry+rz*rz); + rx *= inorm; + ry *= inorm; + rz *= inorm; + + meix = v_mey[itype][jtype]*rz - v_mez[itype][jtype]*ry; + meiy = v_mez[itype][jtype]*rx - v_mex[itype][jtype]*rz; + meiz = v_mex[itype][jtype]*ry - v_mey[itype][jtype]*rx; + + meix *= ME[itype][jtype]; + meiy *= ME[itype][jtype]; + meiz *= ME[itype][jtype]; + + fmi[0] += sp[j][1]*meiz - sp[j][2]*meiy; + fmi[1] += sp[j][2]*meix - sp[j][0]*meiz; + fmi[2] += sp[j][0]*meiy - sp[j][1]*meix; + + fmj[0] -= sp[i][1]*meiz - sp[i][2]*meiy; + fmj[1] -= sp[i][2]*meix - sp[i][0]*meiz; + fmj[2] -= sp[i][0]*meiy - sp[i][1]*meix; + +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairSpin::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(cut_spin_exchange,n+1,n+1,"pair:cut_spin_exchange"); + memory->create(J_1,n+1,n+1,"pair:J_1"); + memory->create(J_2,n+1,n+1,"pair:J_2"); + memory->create(J_3,n+1,n+1,"pair:J_3"); + + memory->create(cut_spin_dmi,n+1,n+1,"pair:cut_spin_dmi"); + memory->create(DM,n+1,n+1,"pair:DM"); + memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); + memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); + memory->create(v_dmz,n+1,n+1,"pair:DM_vector_z"); + + memory->create(cut_spin_me,n+1,n+1,"pair:cut_spin_me"); + memory->create(ME,n+1,n+1,"pair:ME"); + memory->create(v_mex,n+1,n+1,"pair:ME_vector_x"); + memory->create(v_mey,n+1,n+1,"pair:ME_vector_y"); + memory->create(v_mez,n+1,n+1,"pair:ME_vector_z"); + + memory->create(fmi,3,"pair:fmi"); + memory->create(fmj,3,"pair:fmj"); + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpin::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); + + cut_spin_pair_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i+1; j <= atom->ntypes; j++) + if (setflag[i][j]) { + cut_spin_exchange[i][j] = cut_spin_pair_global; + cut_spin_dmi[i][j] = cut_spin_pair_global; + cut_spin_me[i][j] = cut_spin_pair_global; + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpin::coeff(int narg, char **arg) +{ + + if (!allocated) allocate(); + + if (strcmp(arg[2],"exchange")==0){ + if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); + exch_flag = 1; + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + double rij = force->numeric(FLERR,arg[3]); + double J1 = force->numeric(FLERR,arg[4]); + double J2 = force->numeric(FLERR,arg[5]); + double J3 = force->numeric(FLERR,arg[6]); + + double hbar = force->hplanck/MY_2PI; + J1 /= hbar; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_exchange[i][j] = rij; + J_1[i][j] = J1; + J_2[i][j] = J2; + J_3[i][j] = J3; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else if (strcmp(arg[2],"dmi")==0) { + if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); + dmi_flag = 1; + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + double rij = force->numeric(FLERR,arg[3]); + double dm = force->numeric(FLERR,arg[4]); + double dmx = force->numeric(FLERR,arg[5]); + double dmy = force->numeric(FLERR,arg[6]); + double dmz = force->numeric(FLERR,arg[7]); + + double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); + dmx *= inorm; + dmy *= inorm; + dmz *= inorm; + + double hbar = force->hplanck/MY_2PI; + dm /= hbar; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_dmi[i][j] = rij; + DM[i][j] = dm; + v_dmx[i][j] = dmx; + v_dmy[i][j] = dmy; + v_dmz[i][j] = dmz; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else if (strcmp(arg[2],"me")==0) { + if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); + me_flag = 1; + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + double rij = force->numeric(FLERR,arg[3]); + double me = force->numeric(FLERR,arg[4]); + double mex = force->numeric(FLERR,arg[5]); + double mey = force->numeric(FLERR,arg[6]); + double mez = force->numeric(FLERR,arg[7]); + + double inorm = 1.0/(mex*mex+mey*mey+mez*mez); + mex *= inorm; + mey *= inorm; + mez *= inorm; + + double hbar = force->hplanck/MY_2PI; + me /= hbar; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_me[i][j] = rij; + DM[i][j] = me; + v_mex[i][j] = mex; + v_mey[i][j] = mey; + v_mez[i][j] = mez; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else error->all(FLERR,"Incorrect args in pair_style command"); + + //Check if Jex [][] still works for Ferrimagnetic exchange +} + + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpin::init_style() +{ + if (!atom->sp_flag || !atom->mumag_flag) + error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + + neighbor->request(this,instance_me); + +#define FULLNEI +#if defined FULLNEI + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; +#endif +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpin::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_spin_pair_global; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpin::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]) { + if (exch_flag){ + fwrite(&J_1[i][j],sizeof(double),1,fp); + fwrite(&J_2[i][j],sizeof(double),1,fp); + fwrite(&J_3[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_exchange[i][j],sizeof(double),1,fp); + } + if (dmi_flag) { + fwrite(&DM[i][j],sizeof(double),1,fp); + fwrite(&v_dmx[i][j],sizeof(double),1,fp); + fwrite(&v_dmy[i][j],sizeof(double),1,fp); + fwrite(&v_dmz[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_dmi[i][j],sizeof(double),1,fp); + } + if (me_flag) { + fwrite(&ME[i][j],sizeof(double),1,fp); + fwrite(&v_mex[i][j],sizeof(double),1,fp); + fwrite(&v_mey[i][j],sizeof(double),1,fp); + fwrite(&v_mez[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_me[i][j],sizeof(double),1,fp); + } + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpin::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(&J_1[i][j],sizeof(double),1,fp); + fread(&J_2[i][j],sizeof(double),1,fp); + fread(&J_2[i][j],sizeof(double),1,fp); + fread(&cut_spin_exchange[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&J_1[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J_2[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J_3[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_exchange[i][j],1,MPI_DOUBLE,0,world); + } + } +} + + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpin::write_restart_settings(FILE *fp) +{ + fwrite(&cut_spin_pair_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpin::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_spin_pair_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_spin_pair_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +} diff --git a/src/pair_spin.h b/src/pair_spin.h new file mode 100755 index 0000000000..8df192b69f --- /dev/null +++ b/src/pair_spin.h @@ -0,0 +1,96 @@ +/* -*- 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(pair/spin,PairSpin) + +#else + +#ifndef LMP_PAIR_SPIN_H +#define LMP_PAIR_SPIN_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairSpin : public Pair { + public: + PairSpin(class LAMMPS *); + virtual ~PairSpin(); + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + void init_style(); + double init_one(int, int); + + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + + void compute_exchange(int, int, double, double *, double *); + void compute_dmi(int, int, double *, double *); + void compute_me(int, int, double *, double *); + + //Test for seq. integ. + //protected: + int exch_flag,dmi_flag,me_flag; + double cut_spin_pair_global; + double cut_spin_dipolar_global; + + double **cut_spin_exchange; //cutting distance exchange + double **cut_spin_dmi; //cutting distance dmi + double **cut_spin_me; //cutting distance me + + //Test for seq. integ. + protected: + double **J_1, **J_2, **J_3; //exchange coeffs Jij + //J1 in eV, J2 adim and J3 in Ang + double **DM; + double **v_dmx, **v_dmy, **v_dmz;//DMI coeffs + //DM int. in eV, v direction + + double **ME; + double **v_mex, **v_mey, **v_mez;//ME coeffs + //ME in eV, v direction + + double *fmi, *fmj; //Temp var. in compute + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args in pair_style command + +Self-explanatory. + +E: Spin simulations require metal unit style + +Self-explanatory. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: Pair spin requires atom attributes sp, mumag + +The atom style defined does not have these attributes. + +*/ From 8a56b8ad3a2772ef9d0b217e1e99862ba3798098 Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 29 Jun 2017 11:03:33 -0600 Subject: [PATCH 027/675] First version of the parallel algorithm Performed by sectoring (1, 2, 4, or 8 chuncks) each process. --- src/SPIN/atom_vec_spin.cpp | 7 +- src/SPIN/compute_spin.cpp | 3 +- src/SPIN/fix_force_spin.cpp | 8 +- src/SPIN/fix_langevin_spin.cpp | 130 ++++++--- src/SPIN/fix_langevin_spin.h | 6 +- src/SPIN/fix_nve_spin.cpp | 498 ++++++++++++++++----------------- src/SPIN/fix_nve_spin.h | 35 ++- src/SPIN/pair_spin.cpp | 88 +++--- src/SPIN/pair_spin.h | 12 +- 9 files changed, 408 insertions(+), 379 deletions(-) diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index d31f4691d1..61ead88129 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -32,10 +32,9 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) molecular = 0; mass_type = 1; //check why - //comm_x_only = 0; - comm_x_only = 1; - //comm_f_only = 1; - comm_f_only = 0; + comm_x_only = 0; + comm_f_only = 1; + size_forward = 7; size_reverse = 6; size_border = 11; diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 370a2848a7..9516bcde90 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include #include #include "compute_spin.h" #include "atom.h" @@ -112,7 +113,7 @@ void ComputeSpin::compute_vector() MPI_Allreduce(&magenergy,&magenergytot,1,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&tempnum,&tempnumtot,1,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&tempdenom,&tempdenomtot,1,MPI_DOUBLE,MPI_SUM,world); - MPI_Allreduce(&countsp,&countsptot,1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&countsp,&countsptot,1,MPI_INT,MPI_SUM,world); double scale = 1.0/countsptot; magtot[0] *= scale; diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index 27408456d6..44948f8ea3 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -114,9 +114,9 @@ int FixForceSpin::setmask() void FixForceSpin::init() { - double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) - double mub = 5.78901e-5; //in eV/T - double gyro = mub/hbar; //in rad.THz/T + const double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) + const double mub = 5.78901e-5; //in eV/T + const double gyro = mub/hbar; //in rad.THz/T H_field *= gyro; //in rad.THz Ka /= hbar; //in rad.THz @@ -174,7 +174,7 @@ void FixForceSpin::post_force(int vflag) double **sp = atom->sp; double *mumag = atom->mumag; double **fm = atom->fm; - int nlocal = atom->nlocal; + const int nlocal = atom->nlocal; double scalar; eflag = 0; diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index ab76051f08..8079000d59 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -63,9 +63,29 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : alpha_l = force->numeric(FLERR,arg[5]); seed = force->inumeric(FLERR,arg[6]); - if (alpha_t < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); - if (alpha_l < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); - if (seed <= 0) error->all(FLERR,"Illegal fix langevin/spin seed must be > 0"); + if (alpha_t < 0.0) { + error->all(FLERR,"Illegal fix/langevin/spin command"); + } else if (alpha_t == 0.0) { + tdamp_flag = 0; + } else { + tdamp_flag = 1; + } + + if (alpha_l < 0.0) { + error->all(FLERR,"Illegal fix/langevin/spin command"); + } else if (alpha_l == 0.0) { + ldamp_flag = 0; + } else { + ldamp_flag = 1; + } + + if (temp < 0.0) { + error->all(FLERR,"Illegal fix/langevin/spin command"); + } else if (temp == 0.0) { + temp_flag = 0; + } else { + temp_flag = 1; + } // initialize Marsaglia RNG with processor-unique seed //random = new RanMars(lmp,seed + comm->me); @@ -77,6 +97,8 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : FixLangevinSpin::~FixLangevinSpin() { + memory->destroy(spi); + memory->destroy(fmi); delete random; } @@ -106,6 +128,9 @@ void FixLangevinSpin::init() } if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin should come after all other spin fixes"); + memory->create(spi,3,"pair:spi"); + memory->create(fmi,3,"pair:fmi"); + dts = update->dt; Gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); @@ -135,7 +160,7 @@ void FixLangevinSpin::post_force(int vflag) double **sp = atom->sp; double **fm = atom->fm; int *mask = atom->mask; - int nlocal = atom->nlocal; + const int nlocal = atom->nlocal; double sx, sy, sz; double fmx, fmy, fmz; @@ -143,54 +168,69 @@ void FixLangevinSpin::post_force(int vflag) double rx, ry, rz; // add the damping to the effective field of each spin - for (int i = 0; i < nlocal; i++) + for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { - sx = sp[i][0]; - sy = sp[i][1]; - sz = sp[i][2]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; - fmx = fm[i][0]; - fmy = fm[i][1]; - fmz = fm[i][2]; - - cpx = fmy*sz - fmz*sy;//Computing cross product - cpy = fmz*sx - fmx*sz; - cpz = fmx*sy - fmy*sx; - - fmx -= alpha_t*cpx;//Taking the damping value away - fmy -= alpha_t*cpy; - fmz -= alpha_t*cpz; - - fm[i][0] = fmx; - fm[i][1] = fmy; - fm[i][2] = fmz; - } + fmi[0] = fm[i][0]; + fmi[1] = fm[i][1]; + fmi[2] = fm[i][2]; - //apply thermal effects adding random fields to fm - for (int i = 0; i < nlocal; i++) - if (mask[i] & groupbit) { - #define GAUSSIAN_R - #if defined GAUSSIAN_R - rx = sigma*random->gaussian();//Drawing random distributions - ry = sigma*random->gaussian(); - rz = sigma*random->gaussian(); - #else - rx = sigma*(random->uniform() - 0.5); - ry = sigma*(random->uniform() - 0.5); - rz = sigma*(random->uniform() - 0.5); - #endif + if (tdamp_flag) { + add_tdamping(spi,fmi); + } - fm[i][0] += rx;//Adding random field - fm[i][1] += ry; - fm[i][2] += rz; - - fm[i][0] *= Gil_factor;//Multiplying by Gilbert's prefactor - fm[i][1] *= Gil_factor; - fm[i][2] *= Gil_factor; + if (temp_flag) { + add_temperature(fmi); + } - } + fm[i][0] = fmi[0]; + fm[i][1] = fmi[1]; + fm[i][2] = fmi[2]; + } + } + } +/* ---------------------------------------------------------------------- */ +void FixLangevinSpin::add_tdamping(double *spi, double *fmi) +{ + double cpx = fmi[1]*spi[2] - fmi[2]*spi[1]; + double cpy = fmi[2]*spi[0] - fmi[0]*spi[2]; + double cpz = fmi[0]*spi[1] - fmi[1]*spi[0]; + + fmi[0] -= alpha_t*cpx;//Taking the damping value away + fmi[1] -= alpha_t*cpy; + fmi[2] -= alpha_t*cpz; +} + +/* ---------------------------------------------------------------------- */ +void FixLangevinSpin::add_temperature(double *fmi) +{ +//#define GAUSSIAN_R +#if defined GAUSSIAN_R + double rx = sigma*random->gaussian();//Drawing random dist + double ry = sigma*random->gaussian(); + double rz = sigma*random->gaussian(); +#else + double rx = sigma*(random->uniform() - 0.5); + double ry = sigma*(random->uniform() - 0.5); + double rz = sigma*(random->uniform() - 0.5); +#endif + + fmi[0] += rx;//Adding random field + fmi[1] += ry; + fmi[2] += rz; + + fmi[0] *= Gil_factor;//Multiplying by Gilbert's prefactor + fmi[1] *= Gil_factor; + fmi[2] *= Gil_factor; + +} + + /* ---------------------------------------------------------------------- */ void FixLangevinSpin::post_force_respa(int vflag, int ilevel, int iloop) diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index ffd94745e2..a6b9bc5df3 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -33,10 +33,12 @@ class FixLangevinSpin : public Fix { void setup(int); virtual void post_force(int); void post_force_respa(int, int, int); + void add_tdamping(double *, double *); + void add_temperature(double *); + int tdamp_flag, ldamp_flag, temp_flag; protected: - //First mag. quantities - int transv_damp_flag, long_damp_flag; //Flags for transverse or longitudinal mag. dampings + double *spi, *fmi; double alpha_t, alpha_l; //Transverse and long. damping value double dts,temp,D,sigma;//timestep, temp, noise double Gil_factor;//Gilbert's prefactor diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index d2b1ce328b..11ec1ccf11 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -27,14 +27,13 @@ #include "modify.h" //Add headers (see delete later) -#include "pair.h" -#include "timer.h" -#include "integrate.h" #include "neighbor.h" #include "neigh_list.h" +#include "pair.h" #include "pair_spin.h" #include "memory.h" #include "fix_force_spin.h" +#include "fix_langevin_spin.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -65,23 +64,32 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix nve/spin requires spin attribute mumag"); -#if defined SEQNEI - lockpairspin = NULL; - lockforcespin = NULL; exch_flag = dmi_flag = me_flag = 0; zeeman_flag = aniso_flag = 0; -#endif + tdamp_flag = temp_flag = 0; + + lockpairspin = NULL; + lockforcespin = NULL; + locklangevinspin = NULL; } /* ---------------------------------------------------------------------- */ FixNVESpin::~FixNVESpin(){ -#if defined SEQNEI //delete lockpairspin; //delete lockforcespin; + memory->destroy(xi); +#if defined SECTORING + memory->destroy(sec); + memory->destroy(rsec); + memory->destroy(seci); +#endif +#if defined SECTOR_PRINT + fclose(file_sect); +#endif memory->destroy(spi); + memory->destroy(spj); memory->destroy(fmi); memory->destroy(fmj); -#endif } /* ---------------------------------------------------------------------- */ @@ -91,36 +99,56 @@ void FixNVESpin::init() FixNVE::init(); dts = update->dt; - - #if defined SEQNEI - lockpairspin = (PairSpin *) force->pair; - + memory->create(xi,3,"nves:xi"); +#if defined SECTORING + memory->create(sec,3,"nves:sec"); + memory->create(rsec,3,"nves:rsec"); + memory->create(seci,3,"nves:seci"); +#endif memory->create(spi,3,"nves:spi"); + memory->create(spj,3,"nves:spj"); memory->create(fmi,3,"nves:fmi"); memory->create(fmj,3,"nves:fmj"); + lockpairspin = (PairSpin *) force->pair; + int iforce; for (iforce = 0; iforce < modify->nfix; iforce++) if (strstr(modify->fix[iforce]->style,"force/spin")) break; lockforcespin = (FixForceSpin *) modify->fix[iforce]; + for (iforce = 0; iforce < modify->nfix; iforce++) + if (strstr(modify->fix[iforce]->style,"langevin/spin")) break; + locklangevinspin = (FixLangevinSpin *) modify->fix[iforce]; + exch_flag = lockpairspin->exch_flag; dmi_flag = lockpairspin->dmi_flag; me_flag = lockpairspin->me_flag; zeeman_flag = lockforcespin->zeeman_flag; aniso_flag = lockforcespin->aniso_flag; - #endif - - /*int idamp; - for (idamp = 0; idamp < modify->nfix; idamp++) - if (strstr(modify->fix[idamp]->style,"damping/spin")) break; - if (idamp == modify->nfix) - error->all(FLERR,"Integration of spin systems requires use of fix damping (set damping to 0.0 for NVE)"); - - lockspindamping = (FixSpinDamping *) modify->fix[idamp]; - alpha_t = lockspindamping->get_damping(0); - */ + + tdamp_flag = locklangevinspin->tdamp_flag; + temp_flag = locklangevinspin->temp_flag; + + +#if defined SECTORING + sectoring(); +#endif + +#if defined SECTOR_PRINT + file_sect=fopen("sectoring.lammpstrj", "w"); + fprintf(file_sect,"ITEM: TIMESTEP\n"); + fprintf(file_sect,"%g\n",0.0); + fprintf(file_sect,"ITEM: NUMBER OF ATOMS\n"); + //int natoms = atom->natoms; + int natoms = atom->nlocal; + fprintf(file_sect,"%d\n",natoms); + fprintf(file_sect,"ITEM: BOX BOUNDS\n"); + for(int d=0; d<3; d++) fprintf(file_sect,"%lf %lf\n",domain->boxlo[d],domain->boxhi[d]); + fprintf(file_sect,"ITEM: ATOMS type x y z vx vy vz\n"); +#endif + } /* ---------------------------------------------------------------------- */ @@ -142,22 +170,6 @@ void FixNVESpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; - // Advance half spins all particles - //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 - if (extra == SPIN) { -#if defined SEQNEI - for (int i = 0; i < nlocal; i++){ - ComputeSpinInteractionsNei(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } -#endif -#if defined SEQ - for (int i = 0; i < nlocal; i++){ - AdvanceSingleSpin(i,0.5*dts,sp,fm); - ComputeSpinInteractions(); - } -#endif - } // update half v all particles for (int i = 0; i < nlocal; i++) { @@ -170,6 +182,59 @@ void FixNVESpin::initial_integrate(int vflag) } } + // update half x for all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] += 0.5 * dtv * v[i][0]; + x[i][1] += 0.5 * dtv * v[i][1]; + x[i][2] += 0.5 * dtv * v[i][2]; + } + } + +#if defined SECTORING + int nseci; + // Seq. update spins for all particles + if (extra == SPIN) { + for (int j = 0; j < nsectors; j++) { + comm->forward_comm(); + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeSpinInteractionsNeigh(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } + for (int j = nsectors-1; j >= 0; j--) { + comm->forward_comm(); + for (int i = nlocal-1; i >= 0; i--) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeSpinInteractionsNeigh(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } + } +#else + // Seq. update spins for all particles + if (extra == SPIN) { + for (int i = 0; i < nlocal; i++){ + ComputeSpinInteractionsNeigh(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + + for (int i = nlocal-1; i >= 0; i--){ + ComputeSpinInteractionsNeigh(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } +#endif + // update x for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -177,26 +242,32 @@ void FixNVESpin::initial_integrate(int vflag) x[i][1] += 0.5 * dtv * v[i][1]; x[i][2] += 0.5 * dtv * v[i][2]; } - } + } + + +#if defined SECTOR_PRINT + int my_rank; + MPI_Comm_rank(world, &my_rank); + if (my_rank == 0) { + for (int j = 0; j < nsectors; j++) { + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + fprintf(file_sect,"%d %lf %lf %lf %lf %lf %lf\n",j,xi[0],xi[1],xi[2],0.0,0.0,1.0); + } + } + } +#endif + } -#if defined SEQNEI /* ---------------------------------------------------------------------- */ -void FixNVESpin::ComputeSpinInteractionsNei(int ii) +void FixNVESpin::ComputeSpinInteractionsNeigh(int ii) { - int nflag,sortflag; - int nlocal = atom->nlocal; - - int n_post_integrate = modify->n_post_integrate; - int n_pre_exchange = modify->n_pre_exchange; - int n_pre_neighbor = modify->n_pre_neighbor; - int n_pre_force = modify->n_pre_force; - int n_pre_reverse = modify->n_pre_reverse; - int n_post_force = modify->n_post_force; - int n_end_of_step = modify->n_end_of_step; - - bigint ntimestep; - ntimestep = update->ntimestep; + const int nlocal = atom->nlocal; //Force compute quantities int i,j,jj,inum,jnum,itype,jtype; @@ -205,7 +276,7 @@ void FixNVESpin::ComputeSpinInteractionsNei(int ii) double **sp = atom->sp; double **fm = atom->fm; int *type = atom->type; - int newton_pair = force->newton_pair; + const int newton_pair = force->newton_pair; inum = lockpairspin->list->inum; ilist = lockpairspin->list->ilist; @@ -221,69 +292,37 @@ void FixNVESpin::ComputeSpinInteractionsNei(int ii) int vflag = 0; int pair_compute_flag = 1; - if (atom->sortfreq > 0) sortflag = 1; - else sortflag = 0; - if (n_post_integrate) modify->post_integrate(); - timer->stamp(Timer::MODIFY); - - // regular communication vs neighbor list rebuild - nflag = neighbor->decide(); - if (nflag == 0) { - timer->stamp(); - comm->forward_comm(); - timer->stamp(Timer::COMM); - } else { - if (n_pre_exchange) { - timer->stamp(); - modify->pre_exchange(); - timer->stamp(Timer::MODIFY); - } - //if (triclinic) domain->x2lamda(atom->nlocal); - domain->pbc(); - if (domain->box_change) { - domain->reset_box(); - comm->setup(); - if (neighbor->style) neighbor->setup_bins(); - } - timer->stamp(); - comm->exchange(); - if (sortflag && ntimestep >= atom->nextsort) atom->sort(); - comm->borders(); - //if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); - timer->stamp(Timer::COMM); - if (n_pre_neighbor) { - modify->pre_neighbor(); - timer->stamp(Timer::MODIFY); - } - neighbor->build(); - timer->stamp(Timer::NEIGH); - } +// comm->forward_comm(); ///////Force computation for spin i///////////// i = ilist[ii]; + //Clear atom i fm[i][0] = fm[i][1] = fm[i][2] = 0.0; - - timer->stamp(); - - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; + + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; fmi[0] = fmi[1] = fmi[2] = 0.0; fmj[0] = fmj[1] = fmj[2] = 0.0; jlist = firstneigh[i]; jnum = numneigh[i]; -// printf("Test inum: %g \n",inum); -/* //Pair interaction - for (int jj = 0; jj < inum; jj++) { + for (int jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; rsq = delx*delx + dely*dely + delz*delz; itype = type[ii]; jtype = type[j]; @@ -291,191 +330,144 @@ void FixNVESpin::ComputeSpinInteractionsNei(int ii) if (exch_flag) { cut_ex_2 = (lockpairspin->cut_spin_exchange[itype][jtype])*(lockpairspin->cut_spin_exchange[itype][jtype]); if (rsq <= cut_ex_2) { - lockpairspin->compute_exchange(i,j,rsq,fmi,fmj); + lockpairspin->compute_exchange(i,j,rsq,fmi,fmj,spi,spj); } } + if (dmi_flag) { cut_dmi_2 = (lockpairspin->cut_spin_dmi[itype][jtype])*(lockpairspin->cut_spin_dmi[itype][jtype]); if (rsq <= cut_dmi_2) { - lockpairspin->compute_dmi(i,j,fmi,fmj); + lockpairspin->compute_dmi(i,j,fmi,fmj,spi,spj); } } + if (me_flag) { cut_me_2 = (lockpairspin->cut_spin_me[itype][jtype])*(lockpairspin->cut_spin_me[itype][jtype]); if (rsq <= cut_me_2) { - lockpairspin->compute_me(i,j,fmi,fmj); + lockpairspin->compute_me(i,j,fmi,fmj,spi,spj); } } } -*/ - - //Pair interaction - int natom = nlocal + atom->nghost; - for (int k = 0; k < natom; k++) { - delx = xtmp - x[k][0]; - dely = ytmp - x[k][1]; - delz = ztmp - x[k][2]; - rsq = delx*delx + dely*dely + delz*delz; - itype = type[ii]; - jtype = type[k]; - - if (exch_flag) { - cut_ex_2 = (lockpairspin->cut_spin_exchange[itype][jtype])*(lockpairspin->cut_spin_exchange[itype][jtype]); - if (rsq <= cut_ex_2) { - lockpairspin->compute_exchange(i,k,rsq,fmi,fmj); - } - } - if (dmi_flag) { - cut_dmi_2 = (lockpairspin->cut_spin_dmi[itype][jtype])*(lockpairspin->cut_spin_dmi[itype][jtype]); - if (rsq <= cut_dmi_2) { - lockpairspin->compute_dmi(i,k,fmi,fmj); - } - } - if (me_flag) { - cut_me_2 = (lockpairspin->cut_spin_me[itype][jtype])*(lockpairspin->cut_spin_me[itype][jtype]); - if (rsq <= cut_me_2) { - lockpairspin->compute_me(i,k,fmi,fmj); - } - } - } - //post force if (zeeman_flag) { lockforcespin->compute_zeeman(i,fmi); } + if (aniso_flag) { spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; lockforcespin->compute_anisotropy(i,spi,fmi); } - + + if (tdamp_flag) { + locklangevinspin->add_tdamping(spi,fmi); + } + + if (temp_flag) { + locklangevinspin->add_temperature(fmi); + } + //Replace the force by its new value fm[i][0] = fmi[0]; fm[i][1] = fmi[1]; fm[i][2] = fmi[2]; } -#endif +#if defined SECTORING /* ---------------------------------------------------------------------- */ -void FixNVESpin::ComputeSpinInteractions() +void FixNVESpin::sectoring() { - int nflag,sortflag; - int nlocal = atom->nlocal; - - int n_post_integrate = modify->n_post_integrate; - int n_pre_exchange = modify->n_pre_exchange; - int n_pre_neighbor = modify->n_pre_neighbor; - int n_pre_force = modify->n_pre_force; - int n_pre_reverse = modify->n_pre_reverse; - int n_post_force = modify->n_post_force; - int n_end_of_step = modify->n_end_of_step; - - bigint ntimestep; - ntimestep = update->ntimestep; - - //int eflag = update->integrate->eflag; - //int vflag = update->integrate->vflag; - int eflag = 1; - int vflag = 0; - int pair_compute_flag = 1; - - if (atom->sortfreq > 0) sortflag = 1; - else sortflag = 0; - if (n_post_integrate) modify->post_integrate(); - timer->stamp(Timer::MODIFY); - - // regular communication vs neighbor list rebuild - nflag = neighbor->decide(); - if (nflag == 0) { - timer->stamp(); - comm->forward_comm(); - timer->stamp(Timer::COMM); - } else { - if (n_pre_exchange) { - timer->stamp(); - modify->pre_exchange(); - timer->stamp(Timer::MODIFY); - } - //if (triclinic) domain->x2lamda(atom->nlocal); - domain->pbc(); - if (domain->box_change) { - domain->reset_box(); - comm->setup(); - if (neighbor->style) neighbor->setup_bins(); - } - timer->stamp(); - comm->exchange(); - if (sortflag && ntimestep >= atom->nextsort) atom->sort(); - comm->borders(); - //if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); - timer->stamp(Timer::COMM); - if (n_pre_neighbor) { - modify->pre_neighbor(); - timer->stamp(Timer::MODIFY); - } - neighbor->build(); - timer->stamp(Timer::NEIGH); + double sublo[3],subhi[3]; + double* sublotmp = domain->sublo; + double* subhitmp = domain->subhi; + for (int dim = 0 ; dim<3 ; dim++) { + sublo[dim]=sublotmp[dim]; + subhi[dim]=subhitmp[dim]; } - // force computations - // important for pair to come before bonded contributions - // since some bonded potentials tally pairwise energy/virial - // and Pair:ev_tally() needs to be called before any tallying + const double rsx = subhi[0] - sublo[0]; + const double rsy = subhi[1] - sublo[1]; + const double rsz = subhi[2] - sublo[2]; - size_t nbytes; - nbytes = sizeof(double) * nlocal; - if (force->newton) nbytes += sizeof(double) * atom->nghost; + const double rv = lockpairspin->cut_spin_pair_global; - atom->avec->force_clear(0,nbytes); + double rax = rsx/rv; + double ray = rsy/rv; + double raz = rsz/rv; + + sec[0] = 1; + sec[1] = 1; + sec[2] = 1; + if (rax >= 2.0) sec[0] = 2; + if (ray >= 2.0) sec[1] = 2; + if (raz >= 2.0) sec[2] = 2; - timer->stamp(); + nsectors = sec[0]*sec[1]*sec[2]; - if (n_pre_force) { - modify->pre_force(vflag); - timer->stamp(Timer::MODIFY); - } + rsec[0] = rsx; + rsec[1] = rsy; + rsec[2] = rsz; + if (sec[0] == 2) rsec[0] = rsx/2.0; + if (sec[1] == 2) rsec[1] = rsy/2.0; + if (sec[2] == 2) rsec[2] = rsz/2.0; - if (pair_compute_flag) { - force->pair->compute(eflag,vflag); - timer->stamp(Timer::PAIR); - } - - /*if (kspace_compute_flag) { - force->kspace->compute(eflag,vflag); - timer->stamp(Timer::KSPACE); - }*/ - - if (n_pre_reverse) { - modify->pre_reverse(eflag,vflag); - timer->stamp(Timer::MODIFY); - } - - // reverse communication of forces - - if (force->newton) { - comm->reverse_comm(); - timer->stamp(Timer::COMM); - } - - // force modifications - - if (n_post_force) modify->post_force(vflag); - timer->stamp(Timer::MODIFY); + if (2.0 * rv >= rsx && sec[0] >= 2) + error->all(FLERR,"Illegal number of sectors"); + + if (2.0 * rv >= rsy && sec[1] >= 2) + error->all(FLERR,"Illegal number of sectors"); + + if (2.0 * rv >= rsz && sec[2] >= 2) + error->all(FLERR,"Illegal number of sectors"); } +/* ---------------------------------------------------------------------- */ +int FixNVESpin::coords2sector(double *xi) +{ + int nseci; + double sublo[3]; + double* sublotmp = domain->sublo; + for (int dim = 0 ; dim<3 ; dim++) { + sublo[dim]=sublotmp[dim]; + } + + double rix = (xi[0] - sublo[0])/rsec[0]; + double riy = (xi[1] - sublo[1])/rsec[1]; + double riz = (xi[2] - sublo[2])/rsec[2]; + + seci[0] = (int)rix; + seci[1] = (int)riy; + seci[2] = (int)riz; + + if (nsectors == 1) { + nseci == 0; + } else if (nsectors == 2) { + nseci = seci[0] + seci[1] + seci[2]; + } else if (nsectors == 4) { + if (sec[1]*sec[2] == 4) { //plane normal to x + nseci = (seci[1] + 2*seci[2]); + } else if (sec[0]*sec[2] == 4) { //plane normal to y + nseci = (seci[0] + 2*seci[2]); + } else if (sec[0]*sec[1] == 4) { //plane normal to z + nseci = (seci[0] + 2*seci[1]); + } + } else if (nsectors == 8) { + nseci = (seci[0] + 2*seci[1] + 4*seci[2]); + } + + return nseci; +} + +#endif + /* ---------------------------------------------------------------------- */ void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) { - int nlocal = atom->nlocal; - if (igroup == atom->firstgroup) nlocal = atom->nfirst; - int *type = atom->type; - int *mask = atom->mask; - double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; double cp[3],g[3]; @@ -523,8 +515,6 @@ void FixNVESpin::final_integrate() double **x = atom->x; double **v = atom->v; double **f = atom->f; - double **sp = atom->sp; - double **fm = atom->fm; double *rmass = atom->rmass; double *mass = atom->mass; int nlocal = atom->nlocal; @@ -543,20 +533,4 @@ void FixNVESpin::final_integrate() } } - // Advance half spins all particles - //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 - if (extra == SPIN) { -#if defined SEQNEI - for (int i = nlocal-1; i >= 0; i--){ - ComputeSpinInteractionsNei(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } -#endif -#if defined SEQ - for (int i = nlocal-1; i >= 0; i--){ - AdvanceSingleSpin(i,0.5*dts,sp,fm); - ComputeSpinInteractions(); - } -#endif - } } diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index 8f516b2409..d77ea4e37a 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -33,28 +33,41 @@ class FixNVESpin : public FixNVE { virtual void initial_integrate(int); void AdvanceSingleSpin(int, double, double **, double **); virtual void final_integrate(); - -//#define SEQ -#define SEQNEI void ComputeSpinInteractions(); - void ComputeSpinInteractionsNei(int); + void ComputeSpinInteractionsNeigh(int); + +#define SECTORING +#if defined SECTORING + void sectoring(); + int coords2sector(double *); +#endif protected: int extra; double dts; - //double alpha_t; - -#if defined SEQNEI - private: + int exch_flag, dmi_flag, me_flag; int zeeman_flag, aniso_flag; + int tdamp_flag, temp_flag; + class PairSpin *lockpairspin; - double *spi, *fmi, *fmj; //Temp var. for compute class FixForceSpin *lockforcespin; + class FixLangevinSpin *locklangevinspin; + + double *spi, *spj, *fmi, *fmj; //Temp var. for compute + double *xi; + +#if defined SECTORING + int nsectors; + int *sec; + int *seci; + double *rsec; #endif - //private: - //class FixSpinDamping *lockspindamping; +//#define SECTOR_PRINT +#if defined SECTOR_PRINT + FILE* file_sect=NULL; +#endif }; } diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index cdd9ca8e0d..f2c9cb8d36 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -66,6 +66,8 @@ PairSpin::~PairSpin() memory->destroy(v_mey); memory->destroy(v_mez); + memory->destroy(spi); + memory->destroy(spj); memory->destroy(fmi); memory->destroy(fmj); @@ -111,12 +113,18 @@ void PairSpin::compute(int eflag, int vflag) ytmp = x[i][1]; ztmp = x[i][2]; jlist = firstneigh[i]; - jnum = numneigh[i]; + jnum = numneigh[i]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; //Loop on Neighbors for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; fmi[0] = fmi[1] = fmi[2] = 0.0; fmj[0] = fmj[1] = fmj[2] = 0.0; @@ -132,21 +140,21 @@ void PairSpin::compute(int eflag, int vflag) if (exch_flag) { cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; if (rsq <= cut_ex_2) { - compute_exchange(i,j,rsq,fmi,fmj); + compute_exchange(i,j,rsq,fmi,fmj,spi,spj); } } //DM interaction if (dmi_flag){ cut_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; if (rsq <= cut_dmi_2){ - compute_dmi(i,j,fmi,fmj); + compute_dmi(i,j,fmi,fmj,spi,spj); } } //ME interaction if (me_flag){ cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; if (rsq <= cut_me_2){ - compute_me(i,j,fmi,fmj); + compute_me(i,j,fmi,fmj,spi,spj); } } @@ -166,11 +174,10 @@ void PairSpin::compute(int eflag, int vflag) } /* ---------------------------------------------------------------------- */ -void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj) +void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj, double *spi, double *spj) { int *type = atom->type; int itype, jtype; - double **sp = atom->sp; double dmix,dmiy,dmiz; double Jex, ra; itype = type[i]; @@ -181,22 +188,21 @@ void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double * Jex *= (1.0-J_2[itype][jtype]*ra); Jex *= exp(-ra); - fmi[0] += Jex*sp[j][0]; - fmi[1] += Jex*sp[j][1]; - fmi[2] += Jex*sp[j][2]; + fmi[0] += Jex*spj[0]; + fmi[1] += Jex*spj[1]; + fmi[2] += Jex*spj[2]; - fmj[0] += Jex*sp[i][0]; - fmj[1] += Jex*sp[i][1]; - fmj[2] += Jex*sp[i][2]; + fmj[0] += Jex*spi[0]; + fmj[1] += Jex*spi[1]; + fmj[2] += Jex*spi[2]; } /* ---------------------------------------------------------------------- */ -void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj) +void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj, double *spi, double *spj) { int *type = atom->type; int itype, jtype; - double **sp = atom->sp; double dmix,dmiy,dmiz; itype = type[i]; jtype = type[j]; @@ -205,17 +211,17 @@ void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj) dmiy = DM[itype][jtype]*v_dmy[itype][jtype]; dmiz = DM[itype][jtype]*v_dmz[itype][jtype]; - fmi[0] += sp[j][1]*dmiz-sp[j][2]*dmiy; - fmi[1] += sp[j][2]*dmix-sp[j][0]*dmiz; - fmi[2] += sp[j][0]*dmiy-sp[j][1]*dmix; + fmi[0] += spj[1]*dmiz-spj[2]*dmiy; + fmi[1] += spj[2]*dmix-spj[0]*dmiz; + fmi[2] += spj[0]*dmiy-spj[1]*dmix; - fmj[0] -= sp[i][1]*dmiz-sp[i][2]*dmiy; - fmj[1] -= sp[i][2]*dmix-sp[i][0]*dmiz; - fmj[2] -= sp[i][0]*dmiy-sp[i][1]*dmix; + fmj[0] -= spi[1]*dmiz-spi[2]*dmiy; + fmj[1] -= spi[2]*dmix-spi[0]*dmiz; + fmj[2] -= spi[0]*dmiy-spi[1]*dmix; } /* ---------------------------------------------------------------------- */ -void PairSpin::compute_me(int i, int j, double *fmi, double *fmj) +void PairSpin::compute_me(int i, int j, double *fmi, double *fmj, double *spi, double *spj) { int *type = atom->type; int itype, jtype; @@ -242,13 +248,13 @@ void PairSpin::compute_me(int i, int j, double *fmi, double *fmj) meiy *= ME[itype][jtype]; meiz *= ME[itype][jtype]; - fmi[0] += sp[j][1]*meiz - sp[j][2]*meiy; - fmi[1] += sp[j][2]*meix - sp[j][0]*meiz; - fmi[2] += sp[j][0]*meiy - sp[j][1]*meix; + fmi[0] += spj[1]*meiz - spj[2]*meiy; + fmi[1] += spj[2]*meix - spj[0]*meiz; + fmi[2] += spj[0]*meiy - spj[1]*meix; - fmj[0] -= sp[i][1]*meiz - sp[i][2]*meiy; - fmj[1] -= sp[i][2]*meix - sp[i][0]*meiz; - fmj[2] -= sp[i][0]*meiy - sp[i][1]*meix; + fmj[0] -= spi[1]*meiz - spi[2]*meiy; + fmj[1] -= spi[2]*meix - spi[0]*meiz; + fmj[2] -= spi[0]*meiy - spi[1]*meix; } @@ -283,6 +289,8 @@ void PairSpin::allocate() memory->create(v_mey,n+1,n+1,"pair:ME_vector_y"); memory->create(v_mez,n+1,n+1,"pair:ME_vector_z"); + memory->create(spi,3,"pair:spi"); + memory->create(spj,3,"pair:spj"); memory->create(fmi,3,"pair:fmi"); memory->create(fmj,3,"pair:fmj"); @@ -325,6 +333,7 @@ void PairSpin::settings(int narg, char **arg) void PairSpin::coeff(int narg, char **arg) { + const double hbar = force->hplanck/MY_2PI; if (!allocated) allocate(); @@ -336,14 +345,11 @@ void PairSpin::coeff(int narg, char **arg) force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - double rij = force->numeric(FLERR,arg[3]); - double J1 = force->numeric(FLERR,arg[4]); - double J2 = force->numeric(FLERR,arg[5]); - double J3 = force->numeric(FLERR,arg[6]); + const double rij = force->numeric(FLERR,arg[3]); + const double J1 = (force->numeric(FLERR,arg[4]))/hbar; + const double J2 = force->numeric(FLERR,arg[5]); + const double J3 = force->numeric(FLERR,arg[6]); - double hbar = force->hplanck/MY_2PI; - J1 /= hbar; - int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { @@ -363,8 +369,8 @@ void PairSpin::coeff(int narg, char **arg) force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - double rij = force->numeric(FLERR,arg[3]); - double dm = force->numeric(FLERR,arg[4]); + const double rij = force->numeric(FLERR,arg[3]); + const double dm = (force->numeric(FLERR,arg[4]))/hbar; double dmx = force->numeric(FLERR,arg[5]); double dmy = force->numeric(FLERR,arg[6]); double dmz = force->numeric(FLERR,arg[7]); @@ -374,9 +380,6 @@ void PairSpin::coeff(int narg, char **arg) dmy *= inorm; dmz *= inorm; - double hbar = force->hplanck/MY_2PI; - dm /= hbar; - int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { @@ -397,8 +400,8 @@ void PairSpin::coeff(int narg, char **arg) force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - double rij = force->numeric(FLERR,arg[3]); - double me = force->numeric(FLERR,arg[4]); + const double rij = force->numeric(FLERR,arg[3]); + const double me = (force->numeric(FLERR,arg[4]))/hbar; double mex = force->numeric(FLERR,arg[5]); double mey = force->numeric(FLERR,arg[6]); double mez = force->numeric(FLERR,arg[7]); @@ -408,9 +411,6 @@ void PairSpin::coeff(int narg, char **arg) mey *= inorm; mez *= inorm; - double hbar = force->hplanck/MY_2PI; - me /= hbar; - int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index 8df192b69f..2c65c62264 100755 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -39,9 +39,9 @@ class PairSpin : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_exchange(int, int, double, double *, double *); - void compute_dmi(int, int, double *, double *); - void compute_me(int, int, double *, double *); + void compute_exchange(int, int, double, double *, double *,double *, double *); + void compute_dmi(int, int, double *, double *, double *, double *); + void compute_me(int, int, double *, double *, double *, double *); //Test for seq. integ. //protected: @@ -61,10 +61,10 @@ class PairSpin : public Pair { double **v_dmx, **v_dmy, **v_dmz;//DMI coeffs //DM int. in eV, v direction - double **ME; - double **v_mex, **v_mey, **v_mez;//ME coeffs - //ME in eV, v direction + double **ME; //ME in eV + double **v_mex, **v_mey, **v_mez;//ME direction + double *spi, *spj; double *fmi, *fmj; //Temp var. in compute void allocate(); From 2c5597ae4bce796e0d804199cf29018d89272ba9 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 17 Jul 2017 13:25:36 -0600 Subject: [PATCH 028/675] Commit with last changes (sectoring parallel implementation) --- in.cobalt | 19 +- src/SPIN/fix_nve_spin.cpp | 4 +- src/SPIN/fix_nve_spin.h | 2 +- src/atom_vec_spin.cpp | 7 +- src/compute_spin.cpp | 3 +- src/fix_force_spin.cpp | 8 +- src/fix_langevin_spin.cpp | 130 ++++++---- src/fix_langevin_spin.h | 6 +- src/fix_nve_spin.cpp | 498 ++++++++++++++++++-------------------- src/fix_nve_spin.h | 35 ++- src/pair_spin.cpp | 88 +++---- src/pair_spin.h | 12 +- 12 files changed, 423 insertions(+), 389 deletions(-) diff --git a/in.cobalt b/in.cobalt index 8a9de336a7..a6e4b8aab6 100644 --- a/in.cobalt +++ b/in.cobalt @@ -28,8 +28,8 @@ atom_modify map array ########################### #Lattice constant of fcc Cobalt -lattice fcc 3.54 -#lattice sc 2.50 +#lattice fcc 3.54 +lattice sc 2.50 #Test Kagome #variable a equal sqrt(3.0)/8.0 @@ -48,7 +48,7 @@ lattice fcc 3.54 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 2.0 0.0 2.0 0.0 2.0 +region box block 0.0 32.0 0.0 32.0 0.0 32.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box @@ -78,7 +78,7 @@ pair_style pair/spin 4.0 #type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 #type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.01 1.0 0.0 0.0 +#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 #pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 #Define a skin distance, update neigh list every @@ -97,6 +97,7 @@ fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 +#fix 2 all langevin/spin 1.0 0.1 0.0 21 fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix @@ -105,22 +106,22 @@ fix 3 all nve/spin #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm compute mag all compute/spin -fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_seqnei_test.dat +fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g #Defining a computation that will be performed on a group of atoms. #Entries: ID(user assigned), group-ID(group of atoms to peform the sim on), style(temp, pe, ...), args #Setting the timestep for the simulation -timestep 0.00001 +timestep 0.0001 ################## #######run######## ################## #Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 50 dump_spin.lammpstrj type x y z spx spy spz +dump 1 all custom 50 dump_spin_T100.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -#run 200000 -run 1 +run 10 +#run 1 diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 11ec1ccf11..24718e9635 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -292,7 +292,9 @@ void FixNVESpin::ComputeSpinInteractionsNeigh(int ii) int vflag = 0; int pair_compute_flag = 1; -// comm->forward_comm(); +#if !defined(SECTORING) + comm->forward_comm(); +#endif ///////Force computation for spin i///////////// i = ilist[ii]; diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index d77ea4e37a..d621598a9d 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -36,7 +36,7 @@ class FixNVESpin : public FixNVE { void ComputeSpinInteractions(); void ComputeSpinInteractionsNeigh(int); -#define SECTORING +//#define SECTORING #if defined SECTORING void sectoring(); int coords2sector(double *); diff --git a/src/atom_vec_spin.cpp b/src/atom_vec_spin.cpp index d31f4691d1..61ead88129 100644 --- a/src/atom_vec_spin.cpp +++ b/src/atom_vec_spin.cpp @@ -32,10 +32,9 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) molecular = 0; mass_type = 1; //check why - //comm_x_only = 0; - comm_x_only = 1; - //comm_f_only = 1; - comm_f_only = 0; + comm_x_only = 0; + comm_f_only = 1; + size_forward = 7; size_reverse = 6; size_border = 11; diff --git a/src/compute_spin.cpp b/src/compute_spin.cpp index 370a2848a7..9516bcde90 100644 --- a/src/compute_spin.cpp +++ b/src/compute_spin.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include #include #include "compute_spin.h" #include "atom.h" @@ -112,7 +113,7 @@ void ComputeSpin::compute_vector() MPI_Allreduce(&magenergy,&magenergytot,1,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&tempnum,&tempnumtot,1,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&tempdenom,&tempdenomtot,1,MPI_DOUBLE,MPI_SUM,world); - MPI_Allreduce(&countsp,&countsptot,1,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(&countsp,&countsptot,1,MPI_INT,MPI_SUM,world); double scale = 1.0/countsptot; magtot[0] *= scale; diff --git a/src/fix_force_spin.cpp b/src/fix_force_spin.cpp index 27408456d6..44948f8ea3 100644 --- a/src/fix_force_spin.cpp +++ b/src/fix_force_spin.cpp @@ -114,9 +114,9 @@ int FixForceSpin::setmask() void FixForceSpin::init() { - double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) - double mub = 5.78901e-5; //in eV/T - double gyro = mub/hbar; //in rad.THz/T + const double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) + const double mub = 5.78901e-5; //in eV/T + const double gyro = mub/hbar; //in rad.THz/T H_field *= gyro; //in rad.THz Ka /= hbar; //in rad.THz @@ -174,7 +174,7 @@ void FixForceSpin::post_force(int vflag) double **sp = atom->sp; double *mumag = atom->mumag; double **fm = atom->fm; - int nlocal = atom->nlocal; + const int nlocal = atom->nlocal; double scalar; eflag = 0; diff --git a/src/fix_langevin_spin.cpp b/src/fix_langevin_spin.cpp index ab76051f08..8079000d59 100644 --- a/src/fix_langevin_spin.cpp +++ b/src/fix_langevin_spin.cpp @@ -63,9 +63,29 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : alpha_l = force->numeric(FLERR,arg[5]); seed = force->inumeric(FLERR,arg[6]); - if (alpha_t < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); - if (alpha_l < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); - if (seed <= 0) error->all(FLERR,"Illegal fix langevin/spin seed must be > 0"); + if (alpha_t < 0.0) { + error->all(FLERR,"Illegal fix/langevin/spin command"); + } else if (alpha_t == 0.0) { + tdamp_flag = 0; + } else { + tdamp_flag = 1; + } + + if (alpha_l < 0.0) { + error->all(FLERR,"Illegal fix/langevin/spin command"); + } else if (alpha_l == 0.0) { + ldamp_flag = 0; + } else { + ldamp_flag = 1; + } + + if (temp < 0.0) { + error->all(FLERR,"Illegal fix/langevin/spin command"); + } else if (temp == 0.0) { + temp_flag = 0; + } else { + temp_flag = 1; + } // initialize Marsaglia RNG with processor-unique seed //random = new RanMars(lmp,seed + comm->me); @@ -77,6 +97,8 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : FixLangevinSpin::~FixLangevinSpin() { + memory->destroy(spi); + memory->destroy(fmi); delete random; } @@ -106,6 +128,9 @@ void FixLangevinSpin::init() } if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin should come after all other spin fixes"); + memory->create(spi,3,"pair:spi"); + memory->create(fmi,3,"pair:fmi"); + dts = update->dt; Gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); @@ -135,7 +160,7 @@ void FixLangevinSpin::post_force(int vflag) double **sp = atom->sp; double **fm = atom->fm; int *mask = atom->mask; - int nlocal = atom->nlocal; + const int nlocal = atom->nlocal; double sx, sy, sz; double fmx, fmy, fmz; @@ -143,54 +168,69 @@ void FixLangevinSpin::post_force(int vflag) double rx, ry, rz; // add the damping to the effective field of each spin - for (int i = 0; i < nlocal; i++) + for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { - sx = sp[i][0]; - sy = sp[i][1]; - sz = sp[i][2]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; - fmx = fm[i][0]; - fmy = fm[i][1]; - fmz = fm[i][2]; - - cpx = fmy*sz - fmz*sy;//Computing cross product - cpy = fmz*sx - fmx*sz; - cpz = fmx*sy - fmy*sx; - - fmx -= alpha_t*cpx;//Taking the damping value away - fmy -= alpha_t*cpy; - fmz -= alpha_t*cpz; - - fm[i][0] = fmx; - fm[i][1] = fmy; - fm[i][2] = fmz; - } + fmi[0] = fm[i][0]; + fmi[1] = fm[i][1]; + fmi[2] = fm[i][2]; - //apply thermal effects adding random fields to fm - for (int i = 0; i < nlocal; i++) - if (mask[i] & groupbit) { - #define GAUSSIAN_R - #if defined GAUSSIAN_R - rx = sigma*random->gaussian();//Drawing random distributions - ry = sigma*random->gaussian(); - rz = sigma*random->gaussian(); - #else - rx = sigma*(random->uniform() - 0.5); - ry = sigma*(random->uniform() - 0.5); - rz = sigma*(random->uniform() - 0.5); - #endif + if (tdamp_flag) { + add_tdamping(spi,fmi); + } - fm[i][0] += rx;//Adding random field - fm[i][1] += ry; - fm[i][2] += rz; - - fm[i][0] *= Gil_factor;//Multiplying by Gilbert's prefactor - fm[i][1] *= Gil_factor; - fm[i][2] *= Gil_factor; + if (temp_flag) { + add_temperature(fmi); + } - } + fm[i][0] = fmi[0]; + fm[i][1] = fmi[1]; + fm[i][2] = fmi[2]; + } + } + } +/* ---------------------------------------------------------------------- */ +void FixLangevinSpin::add_tdamping(double *spi, double *fmi) +{ + double cpx = fmi[1]*spi[2] - fmi[2]*spi[1]; + double cpy = fmi[2]*spi[0] - fmi[0]*spi[2]; + double cpz = fmi[0]*spi[1] - fmi[1]*spi[0]; + + fmi[0] -= alpha_t*cpx;//Taking the damping value away + fmi[1] -= alpha_t*cpy; + fmi[2] -= alpha_t*cpz; +} + +/* ---------------------------------------------------------------------- */ +void FixLangevinSpin::add_temperature(double *fmi) +{ +//#define GAUSSIAN_R +#if defined GAUSSIAN_R + double rx = sigma*random->gaussian();//Drawing random dist + double ry = sigma*random->gaussian(); + double rz = sigma*random->gaussian(); +#else + double rx = sigma*(random->uniform() - 0.5); + double ry = sigma*(random->uniform() - 0.5); + double rz = sigma*(random->uniform() - 0.5); +#endif + + fmi[0] += rx;//Adding random field + fmi[1] += ry; + fmi[2] += rz; + + fmi[0] *= Gil_factor;//Multiplying by Gilbert's prefactor + fmi[1] *= Gil_factor; + fmi[2] *= Gil_factor; + +} + + /* ---------------------------------------------------------------------- */ void FixLangevinSpin::post_force_respa(int vflag, int ilevel, int iloop) diff --git a/src/fix_langevin_spin.h b/src/fix_langevin_spin.h index ffd94745e2..a6b9bc5df3 100644 --- a/src/fix_langevin_spin.h +++ b/src/fix_langevin_spin.h @@ -33,10 +33,12 @@ class FixLangevinSpin : public Fix { void setup(int); virtual void post_force(int); void post_force_respa(int, int, int); + void add_tdamping(double *, double *); + void add_temperature(double *); + int tdamp_flag, ldamp_flag, temp_flag; protected: - //First mag. quantities - int transv_damp_flag, long_damp_flag; //Flags for transverse or longitudinal mag. dampings + double *spi, *fmi; double alpha_t, alpha_l; //Transverse and long. damping value double dts,temp,D,sigma;//timestep, temp, noise double Gil_factor;//Gilbert's prefactor diff --git a/src/fix_nve_spin.cpp b/src/fix_nve_spin.cpp index d2b1ce328b..24718e9635 100644 --- a/src/fix_nve_spin.cpp +++ b/src/fix_nve_spin.cpp @@ -27,14 +27,13 @@ #include "modify.h" //Add headers (see delete later) -#include "pair.h" -#include "timer.h" -#include "integrate.h" #include "neighbor.h" #include "neigh_list.h" +#include "pair.h" #include "pair_spin.h" #include "memory.h" #include "fix_force_spin.h" +#include "fix_langevin_spin.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -65,23 +64,32 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix nve/spin requires spin attribute mumag"); -#if defined SEQNEI - lockpairspin = NULL; - lockforcespin = NULL; exch_flag = dmi_flag = me_flag = 0; zeeman_flag = aniso_flag = 0; -#endif + tdamp_flag = temp_flag = 0; + + lockpairspin = NULL; + lockforcespin = NULL; + locklangevinspin = NULL; } /* ---------------------------------------------------------------------- */ FixNVESpin::~FixNVESpin(){ -#if defined SEQNEI //delete lockpairspin; //delete lockforcespin; + memory->destroy(xi); +#if defined SECTORING + memory->destroy(sec); + memory->destroy(rsec); + memory->destroy(seci); +#endif +#if defined SECTOR_PRINT + fclose(file_sect); +#endif memory->destroy(spi); + memory->destroy(spj); memory->destroy(fmi); memory->destroy(fmj); -#endif } /* ---------------------------------------------------------------------- */ @@ -91,36 +99,56 @@ void FixNVESpin::init() FixNVE::init(); dts = update->dt; - - #if defined SEQNEI - lockpairspin = (PairSpin *) force->pair; - + memory->create(xi,3,"nves:xi"); +#if defined SECTORING + memory->create(sec,3,"nves:sec"); + memory->create(rsec,3,"nves:rsec"); + memory->create(seci,3,"nves:seci"); +#endif memory->create(spi,3,"nves:spi"); + memory->create(spj,3,"nves:spj"); memory->create(fmi,3,"nves:fmi"); memory->create(fmj,3,"nves:fmj"); + lockpairspin = (PairSpin *) force->pair; + int iforce; for (iforce = 0; iforce < modify->nfix; iforce++) if (strstr(modify->fix[iforce]->style,"force/spin")) break; lockforcespin = (FixForceSpin *) modify->fix[iforce]; + for (iforce = 0; iforce < modify->nfix; iforce++) + if (strstr(modify->fix[iforce]->style,"langevin/spin")) break; + locklangevinspin = (FixLangevinSpin *) modify->fix[iforce]; + exch_flag = lockpairspin->exch_flag; dmi_flag = lockpairspin->dmi_flag; me_flag = lockpairspin->me_flag; zeeman_flag = lockforcespin->zeeman_flag; aniso_flag = lockforcespin->aniso_flag; - #endif - - /*int idamp; - for (idamp = 0; idamp < modify->nfix; idamp++) - if (strstr(modify->fix[idamp]->style,"damping/spin")) break; - if (idamp == modify->nfix) - error->all(FLERR,"Integration of spin systems requires use of fix damping (set damping to 0.0 for NVE)"); - - lockspindamping = (FixSpinDamping *) modify->fix[idamp]; - alpha_t = lockspindamping->get_damping(0); - */ + + tdamp_flag = locklangevinspin->tdamp_flag; + temp_flag = locklangevinspin->temp_flag; + + +#if defined SECTORING + sectoring(); +#endif + +#if defined SECTOR_PRINT + file_sect=fopen("sectoring.lammpstrj", "w"); + fprintf(file_sect,"ITEM: TIMESTEP\n"); + fprintf(file_sect,"%g\n",0.0); + fprintf(file_sect,"ITEM: NUMBER OF ATOMS\n"); + //int natoms = atom->natoms; + int natoms = atom->nlocal; + fprintf(file_sect,"%d\n",natoms); + fprintf(file_sect,"ITEM: BOX BOUNDS\n"); + for(int d=0; d<3; d++) fprintf(file_sect,"%lf %lf\n",domain->boxlo[d],domain->boxhi[d]); + fprintf(file_sect,"ITEM: ATOMS type x y z vx vy vz\n"); +#endif + } /* ---------------------------------------------------------------------- */ @@ -142,22 +170,6 @@ void FixNVESpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; - // Advance half spins all particles - //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 - if (extra == SPIN) { -#if defined SEQNEI - for (int i = 0; i < nlocal; i++){ - ComputeSpinInteractionsNei(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } -#endif -#if defined SEQ - for (int i = 0; i < nlocal; i++){ - AdvanceSingleSpin(i,0.5*dts,sp,fm); - ComputeSpinInteractions(); - } -#endif - } // update half v all particles for (int i = 0; i < nlocal; i++) { @@ -170,6 +182,59 @@ void FixNVESpin::initial_integrate(int vflag) } } + // update half x for all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] += 0.5 * dtv * v[i][0]; + x[i][1] += 0.5 * dtv * v[i][1]; + x[i][2] += 0.5 * dtv * v[i][2]; + } + } + +#if defined SECTORING + int nseci; + // Seq. update spins for all particles + if (extra == SPIN) { + for (int j = 0; j < nsectors; j++) { + comm->forward_comm(); + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeSpinInteractionsNeigh(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } + for (int j = nsectors-1; j >= 0; j--) { + comm->forward_comm(); + for (int i = nlocal-1; i >= 0; i--) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeSpinInteractionsNeigh(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } + } +#else + // Seq. update spins for all particles + if (extra == SPIN) { + for (int i = 0; i < nlocal; i++){ + ComputeSpinInteractionsNeigh(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + + for (int i = nlocal-1; i >= 0; i--){ + ComputeSpinInteractionsNeigh(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } +#endif + // update x for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -177,26 +242,32 @@ void FixNVESpin::initial_integrate(int vflag) x[i][1] += 0.5 * dtv * v[i][1]; x[i][2] += 0.5 * dtv * v[i][2]; } - } + } + + +#if defined SECTOR_PRINT + int my_rank; + MPI_Comm_rank(world, &my_rank); + if (my_rank == 0) { + for (int j = 0; j < nsectors; j++) { + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + fprintf(file_sect,"%d %lf %lf %lf %lf %lf %lf\n",j,xi[0],xi[1],xi[2],0.0,0.0,1.0); + } + } + } +#endif + } -#if defined SEQNEI /* ---------------------------------------------------------------------- */ -void FixNVESpin::ComputeSpinInteractionsNei(int ii) +void FixNVESpin::ComputeSpinInteractionsNeigh(int ii) { - int nflag,sortflag; - int nlocal = atom->nlocal; - - int n_post_integrate = modify->n_post_integrate; - int n_pre_exchange = modify->n_pre_exchange; - int n_pre_neighbor = modify->n_pre_neighbor; - int n_pre_force = modify->n_pre_force; - int n_pre_reverse = modify->n_pre_reverse; - int n_post_force = modify->n_post_force; - int n_end_of_step = modify->n_end_of_step; - - bigint ntimestep; - ntimestep = update->ntimestep; + const int nlocal = atom->nlocal; //Force compute quantities int i,j,jj,inum,jnum,itype,jtype; @@ -205,7 +276,7 @@ void FixNVESpin::ComputeSpinInteractionsNei(int ii) double **sp = atom->sp; double **fm = atom->fm; int *type = atom->type; - int newton_pair = force->newton_pair; + const int newton_pair = force->newton_pair; inum = lockpairspin->list->inum; ilist = lockpairspin->list->ilist; @@ -221,69 +292,39 @@ void FixNVESpin::ComputeSpinInteractionsNei(int ii) int vflag = 0; int pair_compute_flag = 1; - if (atom->sortfreq > 0) sortflag = 1; - else sortflag = 0; - if (n_post_integrate) modify->post_integrate(); - timer->stamp(Timer::MODIFY); - - // regular communication vs neighbor list rebuild - nflag = neighbor->decide(); - if (nflag == 0) { - timer->stamp(); +#if !defined(SECTORING) comm->forward_comm(); - timer->stamp(Timer::COMM); - } else { - if (n_pre_exchange) { - timer->stamp(); - modify->pre_exchange(); - timer->stamp(Timer::MODIFY); - } - //if (triclinic) domain->x2lamda(atom->nlocal); - domain->pbc(); - if (domain->box_change) { - domain->reset_box(); - comm->setup(); - if (neighbor->style) neighbor->setup_bins(); - } - timer->stamp(); - comm->exchange(); - if (sortflag && ntimestep >= atom->nextsort) atom->sort(); - comm->borders(); - //if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); - timer->stamp(Timer::COMM); - if (n_pre_neighbor) { - modify->pre_neighbor(); - timer->stamp(Timer::MODIFY); - } - neighbor->build(); - timer->stamp(Timer::NEIGH); - } +#endif ///////Force computation for spin i///////////// i = ilist[ii]; + //Clear atom i fm[i][0] = fm[i][1] = fm[i][2] = 0.0; - - timer->stamp(); - - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; + + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; fmi[0] = fmi[1] = fmi[2] = 0.0; fmj[0] = fmj[1] = fmj[2] = 0.0; jlist = firstneigh[i]; jnum = numneigh[i]; -// printf("Test inum: %g \n",inum); -/* //Pair interaction - for (int jj = 0; jj < inum; jj++) { + for (int jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; rsq = delx*delx + dely*dely + delz*delz; itype = type[ii]; jtype = type[j]; @@ -291,191 +332,144 @@ void FixNVESpin::ComputeSpinInteractionsNei(int ii) if (exch_flag) { cut_ex_2 = (lockpairspin->cut_spin_exchange[itype][jtype])*(lockpairspin->cut_spin_exchange[itype][jtype]); if (rsq <= cut_ex_2) { - lockpairspin->compute_exchange(i,j,rsq,fmi,fmj); + lockpairspin->compute_exchange(i,j,rsq,fmi,fmj,spi,spj); } } + if (dmi_flag) { cut_dmi_2 = (lockpairspin->cut_spin_dmi[itype][jtype])*(lockpairspin->cut_spin_dmi[itype][jtype]); if (rsq <= cut_dmi_2) { - lockpairspin->compute_dmi(i,j,fmi,fmj); + lockpairspin->compute_dmi(i,j,fmi,fmj,spi,spj); } } + if (me_flag) { cut_me_2 = (lockpairspin->cut_spin_me[itype][jtype])*(lockpairspin->cut_spin_me[itype][jtype]); if (rsq <= cut_me_2) { - lockpairspin->compute_me(i,j,fmi,fmj); + lockpairspin->compute_me(i,j,fmi,fmj,spi,spj); } } } -*/ - - //Pair interaction - int natom = nlocal + atom->nghost; - for (int k = 0; k < natom; k++) { - delx = xtmp - x[k][0]; - dely = ytmp - x[k][1]; - delz = ztmp - x[k][2]; - rsq = delx*delx + dely*dely + delz*delz; - itype = type[ii]; - jtype = type[k]; - - if (exch_flag) { - cut_ex_2 = (lockpairspin->cut_spin_exchange[itype][jtype])*(lockpairspin->cut_spin_exchange[itype][jtype]); - if (rsq <= cut_ex_2) { - lockpairspin->compute_exchange(i,k,rsq,fmi,fmj); - } - } - if (dmi_flag) { - cut_dmi_2 = (lockpairspin->cut_spin_dmi[itype][jtype])*(lockpairspin->cut_spin_dmi[itype][jtype]); - if (rsq <= cut_dmi_2) { - lockpairspin->compute_dmi(i,k,fmi,fmj); - } - } - if (me_flag) { - cut_me_2 = (lockpairspin->cut_spin_me[itype][jtype])*(lockpairspin->cut_spin_me[itype][jtype]); - if (rsq <= cut_me_2) { - lockpairspin->compute_me(i,k,fmi,fmj); - } - } - } - //post force if (zeeman_flag) { lockforcespin->compute_zeeman(i,fmi); } + if (aniso_flag) { spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; lockforcespin->compute_anisotropy(i,spi,fmi); } - + + if (tdamp_flag) { + locklangevinspin->add_tdamping(spi,fmi); + } + + if (temp_flag) { + locklangevinspin->add_temperature(fmi); + } + //Replace the force by its new value fm[i][0] = fmi[0]; fm[i][1] = fmi[1]; fm[i][2] = fmi[2]; } -#endif +#if defined SECTORING /* ---------------------------------------------------------------------- */ -void FixNVESpin::ComputeSpinInteractions() +void FixNVESpin::sectoring() { - int nflag,sortflag; - int nlocal = atom->nlocal; - - int n_post_integrate = modify->n_post_integrate; - int n_pre_exchange = modify->n_pre_exchange; - int n_pre_neighbor = modify->n_pre_neighbor; - int n_pre_force = modify->n_pre_force; - int n_pre_reverse = modify->n_pre_reverse; - int n_post_force = modify->n_post_force; - int n_end_of_step = modify->n_end_of_step; - - bigint ntimestep; - ntimestep = update->ntimestep; - - //int eflag = update->integrate->eflag; - //int vflag = update->integrate->vflag; - int eflag = 1; - int vflag = 0; - int pair_compute_flag = 1; - - if (atom->sortfreq > 0) sortflag = 1; - else sortflag = 0; - if (n_post_integrate) modify->post_integrate(); - timer->stamp(Timer::MODIFY); - - // regular communication vs neighbor list rebuild - nflag = neighbor->decide(); - if (nflag == 0) { - timer->stamp(); - comm->forward_comm(); - timer->stamp(Timer::COMM); - } else { - if (n_pre_exchange) { - timer->stamp(); - modify->pre_exchange(); - timer->stamp(Timer::MODIFY); - } - //if (triclinic) domain->x2lamda(atom->nlocal); - domain->pbc(); - if (domain->box_change) { - domain->reset_box(); - comm->setup(); - if (neighbor->style) neighbor->setup_bins(); - } - timer->stamp(); - comm->exchange(); - if (sortflag && ntimestep >= atom->nextsort) atom->sort(); - comm->borders(); - //if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); - timer->stamp(Timer::COMM); - if (n_pre_neighbor) { - modify->pre_neighbor(); - timer->stamp(Timer::MODIFY); - } - neighbor->build(); - timer->stamp(Timer::NEIGH); + double sublo[3],subhi[3]; + double* sublotmp = domain->sublo; + double* subhitmp = domain->subhi; + for (int dim = 0 ; dim<3 ; dim++) { + sublo[dim]=sublotmp[dim]; + subhi[dim]=subhitmp[dim]; } - // force computations - // important for pair to come before bonded contributions - // since some bonded potentials tally pairwise energy/virial - // and Pair:ev_tally() needs to be called before any tallying + const double rsx = subhi[0] - sublo[0]; + const double rsy = subhi[1] - sublo[1]; + const double rsz = subhi[2] - sublo[2]; - size_t nbytes; - nbytes = sizeof(double) * nlocal; - if (force->newton) nbytes += sizeof(double) * atom->nghost; + const double rv = lockpairspin->cut_spin_pair_global; - atom->avec->force_clear(0,nbytes); + double rax = rsx/rv; + double ray = rsy/rv; + double raz = rsz/rv; + + sec[0] = 1; + sec[1] = 1; + sec[2] = 1; + if (rax >= 2.0) sec[0] = 2; + if (ray >= 2.0) sec[1] = 2; + if (raz >= 2.0) sec[2] = 2; - timer->stamp(); + nsectors = sec[0]*sec[1]*sec[2]; - if (n_pre_force) { - modify->pre_force(vflag); - timer->stamp(Timer::MODIFY); - } + rsec[0] = rsx; + rsec[1] = rsy; + rsec[2] = rsz; + if (sec[0] == 2) rsec[0] = rsx/2.0; + if (sec[1] == 2) rsec[1] = rsy/2.0; + if (sec[2] == 2) rsec[2] = rsz/2.0; - if (pair_compute_flag) { - force->pair->compute(eflag,vflag); - timer->stamp(Timer::PAIR); - } - - /*if (kspace_compute_flag) { - force->kspace->compute(eflag,vflag); - timer->stamp(Timer::KSPACE); - }*/ - - if (n_pre_reverse) { - modify->pre_reverse(eflag,vflag); - timer->stamp(Timer::MODIFY); - } - - // reverse communication of forces - - if (force->newton) { - comm->reverse_comm(); - timer->stamp(Timer::COMM); - } - - // force modifications - - if (n_post_force) modify->post_force(vflag); - timer->stamp(Timer::MODIFY); + if (2.0 * rv >= rsx && sec[0] >= 2) + error->all(FLERR,"Illegal number of sectors"); + + if (2.0 * rv >= rsy && sec[1] >= 2) + error->all(FLERR,"Illegal number of sectors"); + + if (2.0 * rv >= rsz && sec[2] >= 2) + error->all(FLERR,"Illegal number of sectors"); } +/* ---------------------------------------------------------------------- */ +int FixNVESpin::coords2sector(double *xi) +{ + int nseci; + double sublo[3]; + double* sublotmp = domain->sublo; + for (int dim = 0 ; dim<3 ; dim++) { + sublo[dim]=sublotmp[dim]; + } + + double rix = (xi[0] - sublo[0])/rsec[0]; + double riy = (xi[1] - sublo[1])/rsec[1]; + double riz = (xi[2] - sublo[2])/rsec[2]; + + seci[0] = (int)rix; + seci[1] = (int)riy; + seci[2] = (int)riz; + + if (nsectors == 1) { + nseci == 0; + } else if (nsectors == 2) { + nseci = seci[0] + seci[1] + seci[2]; + } else if (nsectors == 4) { + if (sec[1]*sec[2] == 4) { //plane normal to x + nseci = (seci[1] + 2*seci[2]); + } else if (sec[0]*sec[2] == 4) { //plane normal to y + nseci = (seci[0] + 2*seci[2]); + } else if (sec[0]*sec[1] == 4) { //plane normal to z + nseci = (seci[0] + 2*seci[1]); + } + } else if (nsectors == 8) { + nseci = (seci[0] + 2*seci[1] + 4*seci[2]); + } + + return nseci; +} + +#endif + /* ---------------------------------------------------------------------- */ void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) { - int nlocal = atom->nlocal; - if (igroup == atom->firstgroup) nlocal = atom->nfirst; - int *type = atom->type; - int *mask = atom->mask; - double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; double cp[3],g[3]; @@ -523,8 +517,6 @@ void FixNVESpin::final_integrate() double **x = atom->x; double **v = atom->v; double **f = atom->f; - double **sp = atom->sp; - double **fm = atom->fm; double *rmass = atom->rmass; double *mass = atom->mass; int nlocal = atom->nlocal; @@ -543,20 +535,4 @@ void FixNVESpin::final_integrate() } } - // Advance half spins all particles - //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 - if (extra == SPIN) { -#if defined SEQNEI - for (int i = nlocal-1; i >= 0; i--){ - ComputeSpinInteractionsNei(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } -#endif -#if defined SEQ - for (int i = nlocal-1; i >= 0; i--){ - AdvanceSingleSpin(i,0.5*dts,sp,fm); - ComputeSpinInteractions(); - } -#endif - } } diff --git a/src/fix_nve_spin.h b/src/fix_nve_spin.h index 8f516b2409..d621598a9d 100644 --- a/src/fix_nve_spin.h +++ b/src/fix_nve_spin.h @@ -33,28 +33,41 @@ class FixNVESpin : public FixNVE { virtual void initial_integrate(int); void AdvanceSingleSpin(int, double, double **, double **); virtual void final_integrate(); - -//#define SEQ -#define SEQNEI void ComputeSpinInteractions(); - void ComputeSpinInteractionsNei(int); + void ComputeSpinInteractionsNeigh(int); + +//#define SECTORING +#if defined SECTORING + void sectoring(); + int coords2sector(double *); +#endif protected: int extra; double dts; - //double alpha_t; - -#if defined SEQNEI - private: + int exch_flag, dmi_flag, me_flag; int zeeman_flag, aniso_flag; + int tdamp_flag, temp_flag; + class PairSpin *lockpairspin; - double *spi, *fmi, *fmj; //Temp var. for compute class FixForceSpin *lockforcespin; + class FixLangevinSpin *locklangevinspin; + + double *spi, *spj, *fmi, *fmj; //Temp var. for compute + double *xi; + +#if defined SECTORING + int nsectors; + int *sec; + int *seci; + double *rsec; #endif - //private: - //class FixSpinDamping *lockspindamping; +//#define SECTOR_PRINT +#if defined SECTOR_PRINT + FILE* file_sect=NULL; +#endif }; } diff --git a/src/pair_spin.cpp b/src/pair_spin.cpp index cdd9ca8e0d..f2c9cb8d36 100755 --- a/src/pair_spin.cpp +++ b/src/pair_spin.cpp @@ -66,6 +66,8 @@ PairSpin::~PairSpin() memory->destroy(v_mey); memory->destroy(v_mez); + memory->destroy(spi); + memory->destroy(spj); memory->destroy(fmi); memory->destroy(fmj); @@ -111,12 +113,18 @@ void PairSpin::compute(int eflag, int vflag) ytmp = x[i][1]; ztmp = x[i][2]; jlist = firstneigh[i]; - jnum = numneigh[i]; + jnum = numneigh[i]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; //Loop on Neighbors for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; fmi[0] = fmi[1] = fmi[2] = 0.0; fmj[0] = fmj[1] = fmj[2] = 0.0; @@ -132,21 +140,21 @@ void PairSpin::compute(int eflag, int vflag) if (exch_flag) { cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; if (rsq <= cut_ex_2) { - compute_exchange(i,j,rsq,fmi,fmj); + compute_exchange(i,j,rsq,fmi,fmj,spi,spj); } } //DM interaction if (dmi_flag){ cut_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; if (rsq <= cut_dmi_2){ - compute_dmi(i,j,fmi,fmj); + compute_dmi(i,j,fmi,fmj,spi,spj); } } //ME interaction if (me_flag){ cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; if (rsq <= cut_me_2){ - compute_me(i,j,fmi,fmj); + compute_me(i,j,fmi,fmj,spi,spj); } } @@ -166,11 +174,10 @@ void PairSpin::compute(int eflag, int vflag) } /* ---------------------------------------------------------------------- */ -void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj) +void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj, double *spi, double *spj) { int *type = atom->type; int itype, jtype; - double **sp = atom->sp; double dmix,dmiy,dmiz; double Jex, ra; itype = type[i]; @@ -181,22 +188,21 @@ void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double * Jex *= (1.0-J_2[itype][jtype]*ra); Jex *= exp(-ra); - fmi[0] += Jex*sp[j][0]; - fmi[1] += Jex*sp[j][1]; - fmi[2] += Jex*sp[j][2]; + fmi[0] += Jex*spj[0]; + fmi[1] += Jex*spj[1]; + fmi[2] += Jex*spj[2]; - fmj[0] += Jex*sp[i][0]; - fmj[1] += Jex*sp[i][1]; - fmj[2] += Jex*sp[i][2]; + fmj[0] += Jex*spi[0]; + fmj[1] += Jex*spi[1]; + fmj[2] += Jex*spi[2]; } /* ---------------------------------------------------------------------- */ -void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj) +void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj, double *spi, double *spj) { int *type = atom->type; int itype, jtype; - double **sp = atom->sp; double dmix,dmiy,dmiz; itype = type[i]; jtype = type[j]; @@ -205,17 +211,17 @@ void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj) dmiy = DM[itype][jtype]*v_dmy[itype][jtype]; dmiz = DM[itype][jtype]*v_dmz[itype][jtype]; - fmi[0] += sp[j][1]*dmiz-sp[j][2]*dmiy; - fmi[1] += sp[j][2]*dmix-sp[j][0]*dmiz; - fmi[2] += sp[j][0]*dmiy-sp[j][1]*dmix; + fmi[0] += spj[1]*dmiz-spj[2]*dmiy; + fmi[1] += spj[2]*dmix-spj[0]*dmiz; + fmi[2] += spj[0]*dmiy-spj[1]*dmix; - fmj[0] -= sp[i][1]*dmiz-sp[i][2]*dmiy; - fmj[1] -= sp[i][2]*dmix-sp[i][0]*dmiz; - fmj[2] -= sp[i][0]*dmiy-sp[i][1]*dmix; + fmj[0] -= spi[1]*dmiz-spi[2]*dmiy; + fmj[1] -= spi[2]*dmix-spi[0]*dmiz; + fmj[2] -= spi[0]*dmiy-spi[1]*dmix; } /* ---------------------------------------------------------------------- */ -void PairSpin::compute_me(int i, int j, double *fmi, double *fmj) +void PairSpin::compute_me(int i, int j, double *fmi, double *fmj, double *spi, double *spj) { int *type = atom->type; int itype, jtype; @@ -242,13 +248,13 @@ void PairSpin::compute_me(int i, int j, double *fmi, double *fmj) meiy *= ME[itype][jtype]; meiz *= ME[itype][jtype]; - fmi[0] += sp[j][1]*meiz - sp[j][2]*meiy; - fmi[1] += sp[j][2]*meix - sp[j][0]*meiz; - fmi[2] += sp[j][0]*meiy - sp[j][1]*meix; + fmi[0] += spj[1]*meiz - spj[2]*meiy; + fmi[1] += spj[2]*meix - spj[0]*meiz; + fmi[2] += spj[0]*meiy - spj[1]*meix; - fmj[0] -= sp[i][1]*meiz - sp[i][2]*meiy; - fmj[1] -= sp[i][2]*meix - sp[i][0]*meiz; - fmj[2] -= sp[i][0]*meiy - sp[i][1]*meix; + fmj[0] -= spi[1]*meiz - spi[2]*meiy; + fmj[1] -= spi[2]*meix - spi[0]*meiz; + fmj[2] -= spi[0]*meiy - spi[1]*meix; } @@ -283,6 +289,8 @@ void PairSpin::allocate() memory->create(v_mey,n+1,n+1,"pair:ME_vector_y"); memory->create(v_mez,n+1,n+1,"pair:ME_vector_z"); + memory->create(spi,3,"pair:spi"); + memory->create(spj,3,"pair:spj"); memory->create(fmi,3,"pair:fmi"); memory->create(fmj,3,"pair:fmj"); @@ -325,6 +333,7 @@ void PairSpin::settings(int narg, char **arg) void PairSpin::coeff(int narg, char **arg) { + const double hbar = force->hplanck/MY_2PI; if (!allocated) allocate(); @@ -336,14 +345,11 @@ void PairSpin::coeff(int narg, char **arg) force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - double rij = force->numeric(FLERR,arg[3]); - double J1 = force->numeric(FLERR,arg[4]); - double J2 = force->numeric(FLERR,arg[5]); - double J3 = force->numeric(FLERR,arg[6]); + const double rij = force->numeric(FLERR,arg[3]); + const double J1 = (force->numeric(FLERR,arg[4]))/hbar; + const double J2 = force->numeric(FLERR,arg[5]); + const double J3 = force->numeric(FLERR,arg[6]); - double hbar = force->hplanck/MY_2PI; - J1 /= hbar; - int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { @@ -363,8 +369,8 @@ void PairSpin::coeff(int narg, char **arg) force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - double rij = force->numeric(FLERR,arg[3]); - double dm = force->numeric(FLERR,arg[4]); + const double rij = force->numeric(FLERR,arg[3]); + const double dm = (force->numeric(FLERR,arg[4]))/hbar; double dmx = force->numeric(FLERR,arg[5]); double dmy = force->numeric(FLERR,arg[6]); double dmz = force->numeric(FLERR,arg[7]); @@ -374,9 +380,6 @@ void PairSpin::coeff(int narg, char **arg) dmy *= inorm; dmz *= inorm; - double hbar = force->hplanck/MY_2PI; - dm /= hbar; - int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { @@ -397,8 +400,8 @@ void PairSpin::coeff(int narg, char **arg) force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - double rij = force->numeric(FLERR,arg[3]); - double me = force->numeric(FLERR,arg[4]); + const double rij = force->numeric(FLERR,arg[3]); + const double me = (force->numeric(FLERR,arg[4]))/hbar; double mex = force->numeric(FLERR,arg[5]); double mey = force->numeric(FLERR,arg[6]); double mez = force->numeric(FLERR,arg[7]); @@ -408,9 +411,6 @@ void PairSpin::coeff(int narg, char **arg) mey *= inorm; mez *= inorm; - double hbar = force->hplanck/MY_2PI; - me /= hbar; - int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { diff --git a/src/pair_spin.h b/src/pair_spin.h index 8df192b69f..2c65c62264 100755 --- a/src/pair_spin.h +++ b/src/pair_spin.h @@ -39,9 +39,9 @@ class PairSpin : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_exchange(int, int, double, double *, double *); - void compute_dmi(int, int, double *, double *); - void compute_me(int, int, double *, double *); + void compute_exchange(int, int, double, double *, double *,double *, double *); + void compute_dmi(int, int, double *, double *, double *, double *); + void compute_me(int, int, double *, double *, double *, double *); //Test for seq. integ. //protected: @@ -61,10 +61,10 @@ class PairSpin : public Pair { double **v_dmx, **v_dmy, **v_dmz;//DMI coeffs //DM int. in eV, v direction - double **ME; - double **v_mex, **v_mey, **v_mez;//ME coeffs - //ME in eV, v direction + double **ME; //ME in eV + double **v_mex, **v_mey, **v_mez;//ME direction + double *spi, *spj; double *fmi, *fmj; //Temp var. in compute void allocate(); From 8746ab547e72e06c403018596ab5fd7223f19ac4 Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 19 Jul 2017 13:27:19 -0600 Subject: [PATCH 029/675] Small modif and correc of the parallel implemetation --- in.cobalt | 2 +- src/SPIN/fix_nve_spin.cpp | 33 +- src/SPIN/fix_nve_spin.h | 2 +- src/atom_vec_spin.cpp | 950 -------------------------------------- src/atom_vec_spin.h | 90 ---- src/compute_spin.cpp | 146 ------ src/compute_spin.h | 71 --- src/fix_force_spin.cpp | 255 ---------- src/fix_force_spin.h | 92 ---- src/fix_langevin_spin.cpp | 240 ---------- src/fix_langevin_spin.h | 108 ----- src/fix_nve_spin.cpp | 538 --------------------- src/fix_nve_spin.h | 103 ----- src/pair_spin.cpp | 558 ---------------------- src/pair_spin.h | 96 ---- 15 files changed, 22 insertions(+), 3262 deletions(-) delete mode 100644 src/atom_vec_spin.cpp delete mode 100644 src/atom_vec_spin.h delete mode 100644 src/compute_spin.cpp delete mode 100644 src/compute_spin.h delete mode 100644 src/fix_force_spin.cpp delete mode 100644 src/fix_force_spin.h delete mode 100644 src/fix_langevin_spin.cpp delete mode 100644 src/fix_langevin_spin.h delete mode 100644 src/fix_nve_spin.cpp delete mode 100644 src/fix_nve_spin.h delete mode 100755 src/pair_spin.cpp delete mode 100755 src/pair_spin.h diff --git a/in.cobalt b/in.cobalt index a6e4b8aab6..acd9d12a78 100644 --- a/in.cobalt +++ b/in.cobalt @@ -48,7 +48,7 @@ lattice sc 2.50 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 32.0 0.0 32.0 0.0 32.0 +region box block 0.0 2.0 0.0 2.0 0.0 16.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 24718e9635..5e2a4e5af9 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -192,6 +192,9 @@ void FixNVESpin::initial_integrate(int vflag) } #if defined SECTORING + + printf("Nsectors: %d, Nlocal: %d \n",nsectors,nlocal); + int nseci; // Seq. update spins for all particles if (extra == SPIN) { @@ -202,8 +205,11 @@ void FixNVESpin::initial_integrate(int vflag) xi[1] = x[i][1]; xi[2] = x[i][2]; nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeSpinInteractionsNeigh(i); + if (j != nseci) continue; + + printf("sector number: %d, nseci: %d \n",j,nseci); + + ComputeSpinInteractionsNeigh(i); AdvanceSingleSpin(i,0.5*dts,sp,fm); } } @@ -220,6 +226,7 @@ void FixNVESpin::initial_integrate(int vflag) } } } + #else // Seq. update spins for all particles if (extra == SPIN) { @@ -249,16 +256,16 @@ void FixNVESpin::initial_integrate(int vflag) int my_rank; MPI_Comm_rank(world, &my_rank); if (my_rank == 0) { - for (int j = 0; j < nsectors; j++) { - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - fprintf(file_sect,"%d %lf %lf %lf %lf %lf %lf\n",j,xi[0],xi[1],xi[2],0.0,0.0,1.0); - } - } + for (int j = 0; j < nsectors; j++) { + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + fprintf(file_sect,"%d %lf %lf %lf %lf %lf %lf\n",j,xi[0],xi[1],xi[2],0.0,0.0,1.0); + } + } } #endif @@ -446,7 +453,7 @@ int FixNVESpin::coords2sector(double *xi) seci[2] = (int)riz; if (nsectors == 1) { - nseci == 0; + nseci = 0; } else if (nsectors == 2) { nseci = seci[0] + seci[1] + seci[2]; } else if (nsectors == 4) { diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index d621598a9d..d77ea4e37a 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -36,7 +36,7 @@ class FixNVESpin : public FixNVE { void ComputeSpinInteractions(); void ComputeSpinInteractionsNeigh(int); -//#define SECTORING +#define SECTORING #if defined SECTORING void sectoring(); int coords2sector(double *); diff --git a/src/atom_vec_spin.cpp b/src/atom_vec_spin.cpp deleted file mode 100644 index 61ead88129..0000000000 --- a/src/atom_vec_spin.cpp +++ /dev/null @@ -1,950 +0,0 @@ -/* ---------------------------------------------------------------------- - 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. -------------------------------------------------------------------------- */ - -#include -#include -#include -#include "atom_vec_spin.h" -#include "atom.h" -#include "comm.h" -#include "domain.h" -#include "modify.h" -#include "fix.h" -#include "memory.h" -#include "error.h" - -using namespace LAMMPS_NS; - -/* ---------------------------------------------------------------------- */ - -AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) -{ - molecular = 0; - mass_type = 1; //check why - - comm_x_only = 0; - comm_f_only = 1; - - size_forward = 7; - size_reverse = 6; - size_border = 11; - size_velocity = 3; - size_data_atom = 9; //to check later - size_data_vel = 4; - xcol_data = 4; - - forceclearflag = 1; - atom->mumag_flag = atom->sp_flag = 1; - -} - - -/* ---------------------------------------------------------------------- - grow atom arrays - n = 0 grows arrays by a chunk - n > 0 allocates arrays to size n -------------------------------------------------------------------------- */ - -void AtomVecSpin::grow(int n) -{ - if (n == 0) grow_nmax(); - else nmax = n; - atom->nmax = nmax; - if (nmax < 0 || nmax > MAXSMALLINT) - error->one(FLERR,"Per-processor system is too big"); - - tag = memory->grow(atom->tag,nmax,"atom:tag"); - type = memory->grow(atom->type,nmax,"atom:type"); - mask = memory->grow(atom->mask,nmax,"atom:mask"); - image = memory->grow(atom->image,nmax,"atom:image"); - x = memory->grow(atom->x,nmax,3,"atom:x"); - v = memory->grow(atom->v,nmax,3,"atom:v"); - f = memory->grow(atom->f,nmax*comm->nthreads,3,"atom:f"); - //Allocating mag. quantities - mumag = memory->grow(atom->mumag,nmax,"atom:mumag"); - sp = memory->grow(atom->sp,nmax,4,"atom:sp"); - fm = memory->grow(atom->fm,nmax*comm->nthreads,3,"atom:fm"); - - if (atom->nextra_grow) - for (int iextra = 0; iextra < atom->nextra_grow; iextra++) - modify->fix[atom->extra_grow[iextra]]->grow_arrays(nmax); -} - -/* ---------------------------------------------------------------------- - reset local array ptrs -------------------------------------------------------------------------- */ - -void AtomVecSpin::grow_reset() -{ - tag = atom->tag; type = atom->type; - mask = atom->mask; image = atom->image; - x = atom->x; v = atom->v; f = atom->f; - mumag = atom->mumag; sp = atom->sp; fm = atom->fm; -} - - -/* ---------------------------------------------------------------------- - copy atom I info to atom J -------------------------------------------------------------------------- */ - -void AtomVecSpin::copy(int i, int j, int delflag) -{ - tag[j] = tag[i]; - type[j] = type[i]; - mask[j] = mask[i]; - image[j] = image[i]; - x[j][0] = x[i][0]; - x[j][1] = x[i][1]; - x[j][2] = x[i][2]; - v[j][0] = v[i][0]; - v[j][1] = v[i][1]; - v[j][2] = v[i][2]; - - mumag[j] = mumag[i]; - sp[j][0] = sp[i][0]; - sp[j][1] = sp[i][1]; - sp[j][2] = sp[i][2]; - sp[j][3] = sp[i][3]; - - if (atom->nextra_grow) - for (int iextra = 0; iextra < atom->nextra_grow; iextra++) - modify->fix[atom->extra_grow[iextra]]->copy_arrays(i,j,delflag); -} - -/* ---------------------------------------------------------------------- */ - -int AtomVecSpin::pack_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) -{ - int i,j,m; - double dx,dy,dz; - - m = 0; - if (pbc_flag == 0) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = x[j][0]; - buf[m++] = x[j][1]; - buf[m++] = x[j][2]; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - } - } else { - if (domain->triclinic == 0) { - dx = pbc[0]*domain->xprd; - dy = pbc[1]*domain->yprd; - dz = pbc[2]*domain->zprd; - } else { - dx = pbc[0]*domain->xprd + pbc[5]*domain->xy + pbc[4]*domain->xz; - dy = pbc[1]*domain->yprd + pbc[3]*domain->yz; - dz = pbc[2]*domain->zprd; - } - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = x[j][0] + dx; - buf[m++] = x[j][1] + dy; - buf[m++] = x[j][2] + dz; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - } - } - return m; -} - -/* ---------------------------------------------------------------------- */ - -int AtomVecSpin::pack_comm_vel(int n, int *list, double *buf, - int pbc_flag, int *pbc) -{ - int i,j,m; - double dx,dy,dz,dvx,dvy,dvz; - - m = 0; - if (pbc_flag == 0) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = x[j][0]; - buf[m++] = x[j][1]; - buf[m++] = x[j][2]; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - buf[m++] = v[j][0]; - buf[m++] = v[j][1]; - buf[m++] = v[j][2]; - } - } else { - if (domain->triclinic == 0) { - dx = pbc[0]*domain->xprd; - dy = pbc[1]*domain->yprd; - dz = pbc[2]*domain->zprd; - } else { - dx = pbc[0]*domain->xprd + pbc[5]*domain->xy + pbc[4]*domain->xz; - dy = pbc[1]*domain->yprd + pbc[3]*domain->yz; - dz = pbc[2]*domain->zprd; - } - if (!deform_vremap) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = x[j][0] + dx; - buf[m++] = x[j][1] + dy; - buf[m++] = x[j][2] + dz; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - buf[m++] = v[j][0]; - buf[m++] = v[j][1]; - buf[m++] = v[j][2]; - } - } else { - dvx = pbc[0]*h_rate[0] + pbc[5]*h_rate[5] + pbc[4]*h_rate[4]; - dvy = pbc[1]*h_rate[1] + pbc[3]*h_rate[3]; - dvz = pbc[2]*h_rate[2]; - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = x[j][0] + dx; - buf[m++] = x[j][1] + dy; - buf[m++] = x[j][2] + dz; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - if (mask[i] & deform_groupbit) { - buf[m++] = v[j][0] + dvx; - buf[m++] = v[j][1] + dvy; - buf[m++] = v[j][2] + dvz; - } else { - buf[m++] = v[j][0]; - buf[m++] = v[j][1]; - buf[m++] = v[j][2]; - } - } - } - } - return m; -} - -/* ---------------------------------------------------------------------- */ - -int AtomVecSpin::pack_comm_hybrid(int n, int *list, double *buf) -{ - int i,j,m; - - m = 0; - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - } - return m; -} - -/* ---------------------------------------------------------------------- */ - -void AtomVecSpin::unpack_comm(int n, int first, double *buf) -{ - int i,m,last; - - m = 0; - last = first + n; - for (i = first; i < last; i++) { - x[i][0] = buf[m++]; - x[i][1] = buf[m++]; - x[i][2] = buf[m++]; - sp[i][0] = buf[m++]; - sp[i][1] = buf[m++]; - sp[i][2] = buf[m++]; - sp[i][3] = buf[m++]; - } -} - -/* ---------------------------------------------------------------------- */ - -void AtomVecSpin::unpack_comm_vel(int n, int first, double *buf) -{ - int i,m,last; - - m = 0; - last = first + n; - for (i = first; i < last; i++) { - x[i][0] = buf[m++]; - x[i][1] = buf[m++]; - x[i][2] = buf[m++]; - sp[i][0] = buf[m++]; - sp[i][1] = buf[m++]; - sp[i][2] = buf[m++]; - sp[i][3] = buf[m++]; - v[i][0] = buf[m++]; - v[i][1] = buf[m++]; - v[i][2] = buf[m++]; - } -} - -/* ---------------------------------------------------------------------- */ - -int AtomVecSpin::unpack_comm_hybrid(int n, int first, double *buf) -{ - int i,m,last; - - m = 0; - last = first + n; - for (i = first; i < last; i++) { - sp[i][0] = buf[m++]; - sp[i][1] = buf[m++]; - sp[i][2] = buf[m++]; - sp[i][3] = buf[m++]; - } - return m; -} - -/* ---------------------------------------------------------------------- */ - -int AtomVecSpin::pack_reverse(int n, int first, double *buf) -{ - int i,m,last; - m = 0; - last = first + n; - for (i = first; i < last; i++) { - buf[m++] = f[i][0]; - buf[m++] = f[i][1]; - buf[m++] = f[i][2]; - buf[m++] = fm[i][0]; - buf[m++] = fm[i][1]; - buf[m++] = fm[i][2]; - } - return m; -} - -/* ---------------------------------------------------------------------- */ - -void AtomVecSpin::unpack_reverse(int n, int *list, double *buf) -{ - int i,j,m; - m = 0; - for (i = 0; i < n; i++) { - j = list[i]; - f[j][0] += buf[m++]; - f[j][1] += buf[m++]; - f[j][2] += buf[m++]; - fm[j][0] += buf[m++]; - fm[j][1] += buf[m++]; - fm[j][2] += buf[m++]; - } -} - -/* ---------------------------------------------------------------------- */ - -int AtomVecSpin::pack_border(int n, int *list, double *buf, - int pbc_flag, int *pbc) -{ - int i,j,m; - double dx,dy,dz; - - m = 0; - if (pbc_flag == 0) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = x[j][0]; - buf[m++] = x[j][1]; - buf[m++] = x[j][2]; - buf[m++] = ubuf(tag[j]).d; - buf[m++] = ubuf(type[j]).d; - buf[m++] = ubuf(mask[j]).d; - buf[m++] = mumag[j]; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - } - } else { - if (domain->triclinic == 0) { - dx = pbc[0]*domain->xprd; - dy = pbc[1]*domain->yprd; - dz = pbc[2]*domain->zprd; - } else { - dx = pbc[0]; - dy = pbc[1]; - dz = pbc[2]; - } - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = x[j][0] + dx; - buf[m++] = x[j][1] + dy; - buf[m++] = x[j][2] + dz; - buf[m++] = ubuf(tag[j]).d; - buf[m++] = ubuf(type[j]).d; - buf[m++] = ubuf(mask[j]).d; - buf[m++] = mumag[j]; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - } - } - - if (atom->nextra_border) - for (int iextra = 0; iextra < atom->nextra_border; iextra++) - m += modify->fix[atom->extra_border[iextra]]->pack_border(n,list,&buf[m]); - - return m; -} - -/* ---------------------------------------------------------------------- */ - -int AtomVecSpin::pack_border_vel(int n, int *list, double *buf, - int pbc_flag, int *pbc) -{ - int i,j,m; - double dx,dy,dz,dvx,dvy,dvz; - - m = 0; - if (pbc_flag == 0) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = x[j][0]; - buf[m++] = x[j][1]; - buf[m++] = x[j][2]; - buf[m++] = ubuf(tag[j]).d; - buf[m++] = ubuf(type[j]).d; - buf[m++] = ubuf(mask[j]).d; - buf[m++] = mumag[j]; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - buf[m++] = v[j][0]; - buf[m++] = v[j][1]; - buf[m++] = v[j][2]; - } - } else { - if (domain->triclinic == 0) { - dx = pbc[0]*domain->xprd; - dy = pbc[1]*domain->yprd; - dz = pbc[2]*domain->zprd; - } else { - dx = pbc[0]; - dy = pbc[1]; - dz = pbc[2]; - } - if (!deform_vremap) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = x[j][0] + dx; - buf[m++] = x[j][1] + dy; - buf[m++] = x[j][2] + dz; - buf[m++] = ubuf(tag[j]).d; - buf[m++] = ubuf(type[j]).d; - buf[m++] = ubuf(mask[j]).d; - buf[m++] = mumag[j]; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - buf[m++] = v[j][0]; - buf[m++] = v[j][1]; - buf[m++] = v[j][2]; - } - } else { - dvx = pbc[0]*h_rate[0] + pbc[5]*h_rate[5] + pbc[4]*h_rate[4]; - dvy = pbc[1]*h_rate[1] + pbc[3]*h_rate[3]; - dvz = pbc[2]*h_rate[2]; - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = x[j][0] + dx; - buf[m++] = x[j][1] + dy; - buf[m++] = x[j][2] + dz; - buf[m++] = ubuf(tag[j]).d; - buf[m++] = ubuf(type[j]).d; - buf[m++] = ubuf(mask[j]).d; - buf[m++] = mumag[j]; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - if (mask[i] & deform_groupbit) { - buf[m++] = v[j][0] + dvx; - buf[m++] = v[j][1] + dvy; - buf[m++] = v[j][2] + dvz; - } else { - buf[m++] = v[j][0]; - buf[m++] = v[j][1]; - buf[m++] = v[j][2]; - } - } - } - } - - if (atom->nextra_border) - for (int iextra = 0; iextra < atom->nextra_border; iextra++) - m += modify->fix[atom->extra_border[iextra]]->pack_border(n,list,&buf[m]); - - return m; -} - -/* ---------------------------------------------------------------------- */ - -int AtomVecSpin::pack_border_hybrid(int n, int *list, double *buf) -{ - int i,j,m; - - m = 0; - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = mumag[j]; - buf[m++] = sp[j][0]; - buf[m++] = sp[j][1]; - buf[m++] = sp[j][2]; - buf[m++] = sp[j][3]; - } - - return m; -} - -/* ---------------------------------------------------------------------- */ - -void AtomVecSpin::unpack_border(int n, int first, double *buf) -{ - int i,m,last; - - m = 0; - last = first + n; - for (i = first; i < last; i++) { - if (i == nmax) grow(0); - x[i][0] = buf[m++]; - x[i][1] = buf[m++]; - x[i][2] = buf[m++]; - tag[i] = (tagint) ubuf(buf[m++]).i; - type[i] = (int) ubuf(buf[m++]).i; - mask[i] = (int) ubuf(buf[m++]).i; - mumag[i] = buf[m++]; - sp[i][0] = buf[m++]; - sp[i][1] = buf[m++]; - sp[i][2] = buf[m++]; - sp[i][3] = buf[m++]; - } - - if (atom->nextra_border) - for (int iextra = 0; iextra < atom->nextra_border; iextra++) - m += modify->fix[atom->extra_border[iextra]]-> - unpack_border(n,first,&buf[m]); - -} - -/* ---------------------------------------------------------------------- */ - -void AtomVecSpin::unpack_border_vel(int n, int first, double *buf) -{ - int i,m,last; - - m = 0; - last = first + n; - for (i = first; i < last; i++) { - if (i == nmax) grow(0); - x[i][0] = buf[m++]; - x[i][1] = buf[m++]; - x[i][2] = buf[m++]; - tag[i] = (tagint) ubuf(buf[m++]).i; - type[i] = (int) ubuf(buf[m++]).i; - mask[i] = (int) ubuf(buf[m++]).i; - mumag[i] = buf[m++]; - sp[i][0] = buf[m++]; - sp[i][1] = buf[m++]; - sp[i][2] = buf[m++]; - sp[i][3] = buf[m++]; - v[i][0] = buf[m++]; - v[i][1] = buf[m++]; - v[i][2] = buf[m++]; - } - - if (atom->nextra_border) - for (int iextra = 0; iextra < atom->nextra_border; iextra++) - m += modify->fix[atom->extra_border[iextra]]-> - unpack_border(n,first,&buf[m]); - -} - -/* ---------------------------------------------------------------------- */ - -int AtomVecSpin::unpack_border_hybrid(int n, int first, double *buf) -{ - int i,m,last; - - m = 0; - last = first + n; - for (i = first; i < last; i++) { - mumag[i] = buf[m++]; - sp[i][0] = buf[m++]; - sp[i][1] = buf[m++]; - sp[i][2] = buf[m++]; - sp[i][3] = buf[m++]; - } - - return m; -} - -/* ---------------------------------------------------------------------- - pack all atom quantities for shipping to another proc - xyz must be 1st 3 values, so that comm::exchange can test on them -------------------------------------------------------------------------- */ - -int AtomVecSpin::pack_exchange(int i, double *buf) -{ - int m = 1; - buf[m++] = x[i][0]; - buf[m++] = x[i][1]; - buf[m++] = x[i][2]; - buf[m++] = v[i][0]; - buf[m++] = v[i][1]; - buf[m++] = v[i][2]; - buf[m++] = ubuf(tag[i]).d; - buf[m++] = ubuf(type[i]).d; - buf[m++] = ubuf(mask[i]).d; - buf[m++] = ubuf(image[i]).d; - - buf[m++] = mumag[i]; - buf[m++] = sp[i][0]; - buf[m++] = sp[i][1]; - buf[m++] = sp[i][2]; - buf[m++] = sp[i][3]; - - if (atom->nextra_grow) - for (int iextra = 0; iextra < atom->nextra_grow; iextra++) - m += modify->fix[atom->extra_grow[iextra]]->pack_exchange(i,&buf[m]); - - buf[0] = m; - return m; -} - -/* ---------------------------------------------------------------------- */ - -int AtomVecSpin::unpack_exchange(double *buf) -{ - int nlocal = atom->nlocal; - if (nlocal == nmax) grow(0); - - int m = 1; - x[nlocal][0] = buf[m++]; - x[nlocal][1] = buf[m++]; - x[nlocal][2] = buf[m++]; - v[nlocal][0] = buf[m++]; - v[nlocal][1] = buf[m++]; - v[nlocal][2] = buf[m++]; - tag[nlocal] = (tagint) ubuf(buf[m++]).i; - type[nlocal] = (int) ubuf(buf[m++]).i; - mask[nlocal] = (int) ubuf(buf[m++]).i; - image[nlocal] = (imageint) ubuf(buf[m++]).i; - - mumag[nlocal] = buf[m++]; - sp[nlocal][0] = buf[m++]; - sp[nlocal][1] = buf[m++]; - sp[nlocal][2] = buf[m++]; - sp[nlocal][3] = buf[m++]; - - if (atom->nextra_grow) - for (int iextra = 0; iextra < atom->nextra_grow; iextra++) - m += modify->fix[atom->extra_grow[iextra]]-> - unpack_exchange(nlocal,&buf[m]); - - atom->nlocal++; - - return m; -} - -/* ---------------------------------------------------------------------- - size of restart data for all atoms owned by this proc - include extra data stored by fixes -------------------------------------------------------------------------- */ - -int AtomVecSpin::size_restart() -{ - int i; - - int nlocal = atom->nlocal; - int n = 16 * nlocal; - - if (atom->nextra_restart) - for (int iextra = 0; iextra < atom->nextra_restart; iextra++) - for (i = 0; i < nlocal; i++) - n += modify->fix[atom->extra_restart[iextra]]->size_restart(i); - - return n; -} - -/* ---------------------------------------------------------------------- - pack atom I's data for restart file including extra quantities - xyz must be 1st 3 values, so that read_restart can test on them - molecular types may be negative, but write as positive -------------------------------------------------------------------------- */ - -int AtomVecSpin::pack_restart(int i, double *buf) -{ - int m = 1; - - buf[m++] = x[i][0]; - buf[m++] = x[i][1]; - buf[m++] = x[i][2]; - buf[m++] = ubuf(tag[i]).d; - buf[m++] = ubuf(type[i]).d; - buf[m++] = ubuf(mask[i]).d; - buf[m++] = ubuf(image[i]).d; - buf[m++] = v[i][0]; - buf[m++] = v[i][1]; - buf[m++] = v[i][2]; - - buf[m++] = mumag[i]; - buf[m++] = sp[i][0]; - buf[m++] = sp[i][1]; - buf[m++] = sp[i][2]; - buf[m++] = sp[i][3]; - - if (atom->nextra_restart) - for (int iextra = 0; iextra < atom->nextra_restart; iextra++) - m += modify->fix[atom->extra_restart[iextra]]->pack_restart(i,&buf[m]); - - buf[0] = m; - return m; -} - -/* ---------------------------------------------------------------------- - unpack data for one atom from restart file including extra quantities -------------------------------------------------------------------------- */ - -int AtomVecSpin::unpack_restart(double *buf) -{ - int nlocal = atom->nlocal; - if (nlocal == nmax) { - grow(0); - if (atom->nextra_store) - memory->grow(atom->extra,nmax,atom->nextra_store,"atom:extra"); - } - - int m = 1; - x[nlocal][0] = buf[m++]; - x[nlocal][1] = buf[m++]; - x[nlocal][2] = buf[m++]; - tag[nlocal] = (tagint) ubuf(buf[m++]).i; - type[nlocal] = (int) ubuf(buf[m++]).i; - mask[nlocal] = (int) ubuf(buf[m++]).i; - image[nlocal] = (imageint) ubuf(buf[m++]).i; - v[nlocal][0] = buf[m++]; - v[nlocal][1] = buf[m++]; - v[nlocal][2] = buf[m++]; - - mumag[nlocal] = buf[m++]; - sp[nlocal][0] = buf[m++]; - sp[nlocal][1] = buf[m++]; - sp[nlocal][2] = buf[m++]; - sp[nlocal][3] = buf[m++]; - - double **extra = atom->extra; - if (atom->nextra_store) { - int size = static_cast (buf[0]) - m; - for (int i = 0; i < size; i++) extra[nlocal][i] = buf[m++]; - } - - atom->nlocal++; - return m; -} - -/* ---------------------------------------------------------------------- - create one atom of itype at coord - set other values to defaults -------------------------------------------------------------------------- */ - -void AtomVecSpin::create_atom(int itype, double *coord) -{ - - int nlocal = atom->nlocal; - if (nlocal == nmax) grow(0); - - tag[nlocal] = 0; - type[nlocal] = itype; - x[nlocal][0] = coord[0]; - x[nlocal][1] = coord[1]; - x[nlocal][2] = coord[2]; - mask[nlocal] = 1; - image[nlocal] = ((imageint) IMGMAX << IMG2BITS) | - ((imageint) IMGMAX << IMGBITS) | IMGMAX; - v[nlocal][0] = 0.0; - v[nlocal][1] = 0.0; - v[nlocal][2] = 0.0; - - mumag[nlocal] = 0.0; - sp[nlocal][0] = 0.0; - sp[nlocal][1] = 0.0; - sp[nlocal][2] = 0.0; - sp[nlocal][3] = 0.0; - - atom->nlocal++; -} - -/* ---------------------------------------------------------------------- - unpack one line from Atoms section of data file - initialize other atom quantities -------------------------------------------------------------------------- */ - -void AtomVecSpin::data_atom(double *coord, imageint imagetmp, char **values) -{ - int nlocal = atom->nlocal; - if (nlocal == nmax) grow(0); - - tag[nlocal] = ATOTAGINT(values[0]); - type[nlocal] = atoi(values[1]); - if (type[nlocal] <= 0 || type[nlocal] > atom->ntypes) - error->one(FLERR,"Invalid atom type in Atoms section of data file"); - - mumag[nlocal] = atof(values[2]); - - x[nlocal][0] = coord[0]; - x[nlocal][1] = coord[1]; - x[nlocal][2] = coord[2]; - - sp[nlocal][0] = atof(values[6]); - sp[nlocal][1] = atof(values[7]); - sp[nlocal][2] = atof(values[8]); - sp[nlocal][3] = sqrt(sp[nlocal][0]*sp[nlocal][0] + - sp[nlocal][1]*sp[nlocal][1] + - sp[nlocal][2]*sp[nlocal][2]); - - image[nlocal] = imagetmp; - - mask[nlocal] = 1; - v[nlocal][0] = 0.0; - v[nlocal][1] = 0.0; - v[nlocal][2] = 0.0; - - atom->nlocal++; -} - -/* ---------------------------------------------------------------------- - unpack hybrid quantities from one line in Atoms section of data file - initialize other atom quantities for this sub-style -------------------------------------------------------------------------- */ - -int AtomVecSpin::data_atom_hybrid(int nlocal, char **values) -{ - mumag[nlocal] = atof(values[0]); - sp[nlocal][0] = atof(values[1]); - sp[nlocal][1] = atof(values[2]); - sp[nlocal][2] = atof(values[3]); - sp[nlocal][3] = sqrt(sp[nlocal][0]*sp[nlocal][0] + - sp[nlocal][1]*sp[nlocal][1] + - sp[nlocal][2]*sp[nlocal][2]); - - return 4; -} - -/* ---------------------------------------------------------------------- - pack atom info for data file including 3 image flags -------------------------------------------------------------------------- */ - -void AtomVecSpin::pack_data(double **buf) -{ - int nlocal = atom->nlocal; - for (int i = 0; i < nlocal; i++) { - buf[i][0] = ubuf(tag[i]).d; - buf[i][1] = ubuf(type[i]).d; - buf[i][2] = mumag[i]; - buf[i][3] = x[i][0]; - buf[i][4] = x[i][1]; - buf[i][5] = x[i][2]; - buf[i][6] = sp[i][0]; - buf[i][7] = sp[i][1]; - buf[i][8] = sp[i][2]; - buf[i][9] = sp[i][3]; - buf[i][10] = ubuf((image[i] & IMGMASK) - IMGMAX).d; - buf[i][11] = ubuf((image[i] >> IMGBITS & IMGMASK) - IMGMAX).d; - buf[i][12] = ubuf((image[i] >> IMG2BITS) - IMGMAX).d; - } -} - -/* ---------------------------------------------------------------------- - pack hybrid atom info for data file -------------------------------------------------------------------------- */ - -int AtomVecSpin::pack_data_hybrid(int i, double *buf) -{ - buf[0] = mumag[i]; - buf[1] = sp[i][0]; - buf[2] = sp[i][1]; - buf[3] = sp[i][2]; - buf[4] = sp[i][3]; - - return 5; -} - -/* ---------------------------------------------------------------------- - write atom info to data file including 3 image flags -------------------------------------------------------------------------- */ - -void AtomVecSpin::write_data(FILE *fp, int n, double **buf) -{ - for (int i = 0; i < n; i++) - fprintf(fp,TAGINT_FORMAT \ - " %d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e " - "%-1.16e %d %d %d\n", - (tagint) ubuf(buf[i][0]).i,(int) ubuf(buf[i][1]).i, - buf[i][2],buf[i][3],buf[i][4], - buf[i][5],buf[i][6],buf[i][7],buf[i][8],buf[i][9], - (int) ubuf(buf[i][10]).i,(int) ubuf(buf[i][11]).i, - (int) ubuf(buf[i][12]).i); -} - -/* ---------------------------------------------------------------------- - write hybrid atom info to data file -------------------------------------------------------------------------- */ - -int AtomVecSpin::write_data_hybrid(FILE *fp, double *buf) -{ - fprintf(fp," %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e",buf[0],buf[1],buf[2],buf[3],buf[4]); - return 4; -} - -/* ---------------------------------------------------------------------- - return # of bytes of allocated memory -------------------------------------------------------------------------- */ - -bigint AtomVecSpin::memory_usage() -{ - bigint bytes = 0; - - if (atom->memcheck("tag")) bytes += memory->usage(tag,nmax); - if (atom->memcheck("type")) bytes += memory->usage(type,nmax); - if (atom->memcheck("mask")) bytes += memory->usage(mask,nmax); - if (atom->memcheck("image")) bytes += memory->usage(image,nmax); - if (atom->memcheck("x")) bytes += memory->usage(x,nmax,3); - if (atom->memcheck("v")) bytes += memory->usage(v,nmax,3); - if (atom->memcheck("f")) bytes += memory->usage(f,nmax*comm->nthreads,3); - - if (atom->memcheck("fm")) bytes += memory->usage(fm,nmax*comm->nthreads,3); - if (atom->memcheck("mumag")) bytes += memory->usage(mumag,nmax); - if (atom->memcheck("sp")) bytes += memory->usage(sp,nmax,4); - - return bytes; -} - -void AtomVecSpin::force_clear(int n, size_t nbytes) -{ - memset(&atom->f[0][0],0,3*nbytes); - memset(&atom->fm[0][0],0,3*nbytes); -} - - diff --git a/src/atom_vec_spin.h b/src/atom_vec_spin.h deleted file mode 100644 index f4b13926f0..0000000000 --- a/src/atom_vec_spin.h +++ /dev/null @@ -1,90 +0,0 @@ -/* -*- 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 ATOM_CLASS - -AtomStyle(spin,AtomVecSpin) - -#else - -#ifndef LMP_ATOM_VEC_SPIN_H -#define LMP_ATOM_VEC_SPIN_H - -#include "atom_vec.h" - -namespace LAMMPS_NS { - -class AtomVecSpin : public AtomVec { - public: - AtomVecSpin(class LAMMPS *); - void grow(int); - void grow_reset(); - void copy(int, int, int); - int pack_comm(int, int *, double *, int, int *); - int pack_comm_vel(int, int *, double *, int, int *); - int pack_comm_hybrid(int, int *, double *); - void unpack_comm(int, int, double *); - void unpack_comm_vel(int, int, double *); - int unpack_comm_hybrid(int, int, double *); - int pack_reverse(int, int, double *); - void unpack_reverse(int, int *, double *); - int pack_border(int, int *, double *, int, int *); - int pack_border_vel(int, int *, double *, int, int *); - int pack_border_hybrid(int, int *, double *); - void unpack_border(int, int, double *); - void unpack_border_vel(int, int, double *); - int unpack_border_hybrid(int, int, double *); - int pack_exchange(int, double *); - int unpack_exchange(double *); - int size_restart(); - int pack_restart(int, double *); - int unpack_restart(double *); - void create_atom(int, double *); - void data_atom(double *, imageint, char **); - int data_atom_hybrid(int, char **); - void pack_data(double **); - int pack_data_hybrid(int, double *); - void write_data(FILE *, int, double **); - int write_data_hybrid(FILE *, double *); - bigint memory_usage(); - - //Test force clear - void force_clear(int, size_t); - - - private: - tagint *tag; - int *type,*mask; - imageint *image; - double **x,**v,**f; //MD quantities: position, velocity and force - double *mumag,**sp, **fm; //Magnetic quantities: mu, spin direction, magnetic force - -}; - -} - -#endif -#endif - -/* ERROR/WARNING messages: - -E: Per-processor system is too big - -The number of owned atoms plus ghost atoms on a single -processor must fit in 32-bit integer. - -E: Invalid atom type in Atoms section of data file - -Atom types must range from 1 to specified # of types. - -*/ diff --git a/src/compute_spin.cpp b/src/compute_spin.cpp deleted file mode 100644 index 9516bcde90..0000000000 --- a/src/compute_spin.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* ---------------------------------------------------------------------- - 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. -------------------------------------------------------------------------- */ - -#include -#include -#include "compute_spin.h" -#include "atom.h" -#include "update.h" -#include "modify.h" -#include "domain.h" -#include "memory.h" -#include "error.h" -#include "math_special.h" -#include "math_const.h" -#include "force.h" - -using namespace LAMMPS_NS; -using namespace MathSpecial; -using namespace MathConst; - -/* ---------------------------------------------------------------------- */ - -ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), mag(NULL) -{ - if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); - - vector_flag = 1; - size_vector = 7; - extvector = 0; - - init(); - - allocate(); - -} - -/* ---------------------------------------------------------------------- */ - -ComputeSpin::~ComputeSpin() -{ - memory->destroy(mag); -} - -/* ---------------------------------------------------------------------- */ - -void ComputeSpin::init() -{ - hbar = force->hplanck/MY_2PI; - kb = force->boltz; -} - -/* ---------------------------------------------------------------------- */ - -void ComputeSpin::compute_vector() -{ - int i, index; - - invoked_vector = update->ntimestep; - - countsp = countsptot = 0.0; - mag[0] = mag[1] = mag[2] = mag[3] = 0.0; - magtot[0] = magtot[1] = magtot[2] = magtot[3] = 0.0; - magenergy = magenergytot = 0.0; - tempnum = tempnumtot = 0.0; - tempdenom = tempdenomtot = 0.0; - spintemperature = 0.0; - - double **x = atom->x; - int *mask = atom->mask; - int *type = atom->type; - imageint *image = atom->image; - double *mumag = atom->mumag; - double **sp = atom->sp; - double **fm = atom->fm; - double tx,ty,tz; - - int nlocal = atom->nlocal; - - // compute total magnetization and magnetic energy - // compute spin temperature; See Nurdin et al., Phys. Rev. E 61, 2000 - for (i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - if (atom->mumag_flag && atom->sp_flag) { - mag[0] += sp[i][0]; - mag[1] += sp[i][1]; - mag[2] += sp[i][2]; - magenergy += mumag[i]*sp[i][0]*fm[i][0]; - magenergy += mumag[i]*sp[i][1]*fm[i][1]; - magenergy += mumag[i]*sp[i][2]*fm[i][2]; - tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; - ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; - tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; - tempnum += tx*tx+ty*ty+tz*tz; - tempdenom += sp[i][0]*sp[i][0]+sp[i][1]*sp[i][1]+sp[i][2]*sp[i][2]; - countsp++; - } - } - else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); - } - - MPI_Allreduce(mag,magtot,4,MPI_DOUBLE,MPI_SUM,world); - MPI_Allreduce(&magenergy,&magenergytot,1,MPI_DOUBLE,MPI_SUM,world); - MPI_Allreduce(&tempnum,&tempnumtot,1,MPI_DOUBLE,MPI_SUM,world); - MPI_Allreduce(&tempdenom,&tempdenomtot,1,MPI_DOUBLE,MPI_SUM,world); - MPI_Allreduce(&countsp,&countsptot,1,MPI_INT,MPI_SUM,world); - - double scale = 1.0/countsptot; - magtot[0] *= scale; - magtot[1] *= scale; - magtot[2] *= scale; - magtot[3] = sqrt(square(magtot[0])+square(magtot[1])+square(magtot[2])); - spintemperature = hbar*tempnumtot/2.0/kb/tempdenomtot; - - vector[0] = invoked_vector*update->dt; - vector[1] = magtot[0]; - vector[2] = magtot[1]; - vector[3] = magtot[2]; - vector[4] = magtot[3]; - vector[5] = -0.5*magenergytot*hbar; - vector[6] = spintemperature; - -} - -/* ---------------------------------------------------------------------- - free and reallocate arrays -------------------------------------------------------------------------- */ - -void ComputeSpin::allocate() -{ - memory->destroy(mag); - memory->create(mag,4,"compute/spin:mag"); - memory->create(magtot,5,"compute/spin:mag"); - memory->create(vector,7,"compute/spin:vector"); -} - diff --git a/src/compute_spin.h b/src/compute_spin.h deleted file mode 100644 index a20b956b01..0000000000 --- a/src/compute_spin.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- 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 COMPUTE_CLASS - -ComputeStyle(compute/spin,ComputeSpin) - -#else - -#ifndef LMP_COMPUTE_SPIN_H -#define LMP_COMPUTE_SPIN_H - -#include "compute.h" - -namespace LAMMPS_NS { - -class ComputeSpin : public Compute { - public: - ComputeSpin(class LAMMPS *, int, char **); - ~ComputeSpin(); - void init(); - void compute_vector(); - - private: - double *mag; - double *magtot; - double magenergy; - double magenergytot; - double tempnum,tempnumtot; - double tempdenom,tempdenomtot; - double spintemperature; - double kb,hbar; - int countsp; - int countsptot; - int usecenter; - - 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: Chunk/atom compute does not exist for compute compute/spin - -Self-explanatory. - -E: Compute compute/spin does not use chunk/atom compute - -The style of the specified compute is not chunk/atom. - -*/ diff --git a/src/fix_force_spin.cpp b/src/fix_force_spin.cpp deleted file mode 100644 index 44948f8ea3..0000000000 --- a/src/fix_force_spin.cpp +++ /dev/null @@ -1,255 +0,0 @@ -/* ---------------------------------------------------------------------- - 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. -------------------------------------------------------------------------- */ - -#include -#include -#include -#include -#include "fix_force_spin.h" -#include "atom.h" -#include "update.h" -#include "domain.h" -#include "respa.h" -#include "modify.h" -#include "input.h" -#include "variable.h" -#include "math_const.h" -#include "error.h" -#include "force.h" -#include "memory.h" - -using namespace LAMMPS_NS; -using namespace FixConst; -using namespace MathConst; - -enum{ZEEMAN,ANISOTROPY}; -enum{CONSTANT,EQUAL}; - -/* ---------------------------------------------------------------------- */ - -FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) -{ - - if (narg < 7) error->all(FLERR,"Illegal fix spin command"); - // 7 arguments for a force/spin fix command: - //(fix ID group force/spin magnitude (T or eV) style (zeeman or anisotropy) direction (3 cartesian coordinates) - - //Magnetic interactions only coded for cartesian coordinates - - dynamic_group_allow = 1; - scalar_flag = 1; - global_freq = 1; - extscalar = 1; - respa_level_support = 1; - ilevel_respa = 0; - - magstr = NULL; - magfieldstyle = CONSTANT; - - H_field = 0.0; - Hx = Hy = Hz = 0.0; - Ka = 0.0; - Kax = Kay = Kaz = 0.0; - - zeeman_flag = aniso_flag = 0; - - if (strcmp(arg[3],"zeeman") == 0) { - if (narg != 8) error->all(FLERR,"Illegal fix zeeman command"); - style = ZEEMAN; - zeeman_flag = 1; - H_field = force->numeric(FLERR,arg[4]); - Hx = force->numeric(FLERR,arg[5]); - Hy = force->numeric(FLERR,arg[6]); - Hz = force->numeric(FLERR,arg[7]); - magfieldstyle = CONSTANT; - } else if (strcmp(arg[3],"anisotropy") == 0) { - if (narg != 8) error->all(FLERR,"Illegal fix anisotropy command"); - style = ANISOTROPY; - aniso_flag = 1; - Ka = force->numeric(FLERR,arg[4]); - Kax = force->numeric(FLERR,arg[5]); - Kay = force->numeric(FLERR,arg[6]); - Kaz = force->numeric(FLERR,arg[7]); - } else error->all(FLERR,"Illegal fix force/spin command"); - - degree2rad = MY_PI/180.0; - time_origin = update->ntimestep; - - eflag = 0; - emag = 0.0; -} - -/* ---------------------------------------------------------------------- */ - -FixForceSpin::~FixForceSpin() -{ - memory->destroy(spi); - memory->destroy(fmi); - delete [] magstr; -} - -/* ---------------------------------------------------------------------- */ - -int FixForceSpin::setmask() -{ - int mask = 0; - mask |= POST_FORCE; - mask |= THERMO_ENERGY; - mask |= POST_FORCE_RESPA; - return mask; -} - - -/* ---------------------------------------------------------------------- */ - -void FixForceSpin::init() -{ - const double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) - const double mub = 5.78901e-5; //in eV/T - const double gyro = mub/hbar; //in rad.THz/T - - H_field *= gyro; //in rad.THz - Ka /= hbar; //in rad.THz - - if (strstr(update->integrate_style,"respa")) { - ilevel_respa = ((Respa *) update->integrate)->nlevels-1; - if (respa_level >= 0) ilevel_respa = MIN(respa_level,ilevel_respa); - } - - // check variables - if (magstr) { - magvar = input->variable->find(magstr); - if (magvar < 0) - error->all(FLERR,"Variable name for fix magnetic field does not exist"); - if (!input->variable->equalstyle(magvar)) - error->all(FLERR,"Variable for fix magnetic field is invalid style"); - } - - varflag = CONSTANT; - if (magfieldstyle != CONSTANT) varflag = EQUAL; - - // set magnetic field components once and for all - if (varflag == CONSTANT) set_magneticforce(); - - memory->create(spi,3,"forcespin:spi"); - memory->create(fmi,3,"forcespin:fmi"); - -} - -/* ---------------------------------------------------------------------- */ - -void FixForceSpin::setup(int vflag) -{ - if (strstr(update->integrate_style,"verlet")) - post_force(vflag); - else { - ((Respa *) update->integrate)->copy_flevel_f(ilevel_respa); - post_force_respa(vflag,ilevel_respa,0); - ((Respa *) update->integrate)->copy_f_flevel(ilevel_respa); - } -} - -/* ---------------------------------------------------------------------- */ - -void FixForceSpin::post_force(int vflag) -{ - // update gravity due to variables - if (varflag != CONSTANT) { - modify->clearstep_compute(); - modify->addstep_compute(update->ntimestep + 1); - set_magneticforce(); //Update value of the mag. field if time-dependent - } - -// double **x = atom->x; - double **sp = atom->sp; - double *mumag = atom->mumag; - double **fm = atom->fm; - const int nlocal = atom->nlocal; - double scalar; - - eflag = 0; - emag = 0.0; - - for (int i = 0; i < nlocal; i++) { - fmi[0] = fmi[1] = fmi[2] = 0.0; - //if (style == ZEEMAN) { - if (zeeman_flag) { - compute_zeeman(i,fmi); - } - //if (style == ANISOTROPY) { - if (aniso_flag) { - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - compute_anisotropy(i,spi,fmi); - } - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; - fm[i][2] += fmi[2]; - } -} - - -/* ---------------------------------------------------------------------- */ -void FixForceSpin::compute_zeeman(int i, double *fmi) -{ -double *mumag = atom->mumag; - fmi[0] += mumag[i]*xmag; - fmi[1] += mumag[i]*ymag; - fmi[2] += mumag[i]*zmag; -} - -void FixForceSpin::compute_anisotropy(int i, double * spi, double *fmi) -{ - double scalar = Kax*spi[0] + Kay*spi[1] + Kaz*spi[2]; - fmi[0] += scalar*xmag; - fmi[1] += scalar*ymag; - fmi[2] += scalar*zmag; -} - -/* ---------------------------------------------------------------------- */ - -void FixForceSpin::post_force_respa(int vflag, int ilevel, int iloop) -{ - if (ilevel == ilevel_respa) post_force(vflag); -} - -/* ---------------------------------------------------------------------- */ -//No acceleration for magnetic EOM, only a "magnetic force" -void FixForceSpin::set_magneticforce() -{ - if (style == ZEEMAN) { - xmag = H_field*Hx; - ymag = H_field*Hy; - zmag = H_field*Hz; - } - if (style == ANISOTROPY) { - xmag = 2.0*Ka*Kax; - ymag = 2.0*Ka*Kay; - zmag = 2.0*Ka*Kaz; - } -} - -/* ---------------------------------------------------------------------- - potential energy in magnetic field -------------------------------------------------------------------------- */ - -double FixForceSpin::compute_scalar() -{ - // only sum across procs one time - if (eflag == 0) { - MPI_Allreduce(&emag,&emag_all,1,MPI_DOUBLE,MPI_SUM,world); - eflag = 1; - } - return emag_all; -} diff --git a/src/fix_force_spin.h b/src/fix_force_spin.h deleted file mode 100644 index a422abad2c..0000000000 --- a/src/fix_force_spin.h +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- 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 FIX_CLASS - -FixStyle(force/spin,FixForceSpin) - -#else - -#ifndef LMP_FIX_FORCE_SPIN_H -#define LMP_FIX_FORCE_SPIN_H - -#include "fix.h" - -namespace LAMMPS_NS { - -class FixForceSpin : public Fix { - friend class FixPour; - - public: - FixForceSpin(class LAMMPS *, int, char **); - ~FixForceSpin(); - int setmask(); - void init(); - void setup(int); - virtual void post_force(int); - virtual void post_force_respa(int, int, int); - double compute_scalar(); - - int zeeman_flag, aniso_flag; - void compute_zeeman(int, double *); - void compute_anisotropy(int, double *, double *); - - protected: - int style; - - double xmag, ymag, zmag; //Magnetic force - double degree2rad; - int ilevel_respa; - int time_origin; - int eflag; - double emag, emag_all; - - int varflag; - int magfieldstyle; - int magvar; - char *magstr; - - double H_field; //Zeeman field intensity and direction - double Hx, Hy, Hz; - - double Ka; //Magnetic anisotropy intensity and direction - double Kax, Kay, Kaz; - - double *spi, *fmi; //Temp var. in compute - - void set_magneticforce(); - -}; - -} - -#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: Variable name for fix force/spin does not exist - -Self-explanatory. - -E: Variable for fix force/spin is invalid style - -Only equal-style variables can be used. - -*/ diff --git a/src/fix_langevin_spin.cpp b/src/fix_langevin_spin.cpp deleted file mode 100644 index 8079000d59..0000000000 --- a/src/fix_langevin_spin.cpp +++ /dev/null @@ -1,240 +0,0 @@ -/* ---------------------------------------------------------------------- - 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 authors: Carolyn Phillips (U Mich), reservoir energy tally - Aidan Thompson (SNL) GJF formulation -------------------------------------------------------------------------- */ - -#include -#include -#include -#include -#include "fix_langevin_spin.h" -#include "math_extra.h" -#include "atom.h" -#include "atom_vec_ellipsoid.h" -#include "force.h" -#include "update.h" -#include "modify.h" -#include "compute.h" -#include "domain.h" -#include "region.h" -#include "respa.h" -#include "comm.h" -#include "input.h" -#include "variable.h" -#include "random_mars.h" -#include "memory.h" -#include "error.h" -#include "group.h" -#include "math_const.h" -#include "random_park.h" - -using namespace LAMMPS_NS; -using namespace FixConst; -using namespace MathConst; - -/* ---------------------------------------------------------------------- */ - -FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg), id_temp(NULL), random(NULL) -{ - if (narg != 7) error->all(FLERR,"Illegal fix langevin/spin command"); - - dynamic_group_allow = 1; - scalar_flag = 1; - global_freq = 1; - extscalar = 1; - nevery = 1; - - temp = force->numeric(FLERR,arg[3]); - alpha_t = force->numeric(FLERR,arg[4]); - alpha_l = force->numeric(FLERR,arg[5]); - seed = force->inumeric(FLERR,arg[6]); - - if (alpha_t < 0.0) { - error->all(FLERR,"Illegal fix/langevin/spin command"); - } else if (alpha_t == 0.0) { - tdamp_flag = 0; - } else { - tdamp_flag = 1; - } - - if (alpha_l < 0.0) { - error->all(FLERR,"Illegal fix/langevin/spin command"); - } else if (alpha_l == 0.0) { - ldamp_flag = 0; - } else { - ldamp_flag = 1; - } - - if (temp < 0.0) { - error->all(FLERR,"Illegal fix/langevin/spin command"); - } else if (temp == 0.0) { - temp_flag = 0; - } else { - temp_flag = 1; - } - - // initialize Marsaglia RNG with processor-unique seed - //random = new RanMars(lmp,seed + comm->me); - random = new RanPark(lmp,seed + comm->me); - -} - -/* ---------------------------------------------------------------------- */ - -FixLangevinSpin::~FixLangevinSpin() -{ - memory->destroy(spi); - memory->destroy(fmi); - delete random; -} - -/* ---------------------------------------------------------------------- */ - -int FixLangevinSpin::setmask() -{ - int mask = 0; - mask |= POST_FORCE; - mask |= POST_FORCE_RESPA; - mask |= END_OF_STEP; - mask |= THERMO_ENERGY; - return mask; -} - -/* ---------------------------------------------------------------------- */ - -void FixLangevinSpin::init() -{ - // warn if any fix comes after this one - int after = 0; - int flag_force = 0; - int flag_lang = 0; - for (int i = 0; i < modify->nfix; i++) { - if (strcmp("force/spin",modify->fix[i]->style)==0) flag_force = MAX(flag_force,i); - if (strcmp("langevin/spin",modify->fix[i]->style)==0) flag_lang = i; - } - if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin should come after all other spin fixes"); - - memory->create(spi,3,"pair:spi"); - memory->create(fmi,3,"pair:fmi"); - - dts = update->dt; - Gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); - - double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) - double kb = force->boltz; - D = (MY_2PI*Gil_factor*kb*temp)/hbar/dts; - sigma = sqrt(D); -} - -/* ---------------------------------------------------------------------- */ - -void FixLangevinSpin::setup(int vflag) -{ - if (strstr(update->integrate_style,"verlet")) - post_force(vflag); - else { - ((Respa *) update->integrate)->copy_flevel_f(nlevels_respa-1); - post_force_respa(vflag,nlevels_respa-1,0); - ((Respa *) update->integrate)->copy_f_flevel(nlevels_respa-1); - } -} - -/* ---------------------------------------------------------------------- */ - -void FixLangevinSpin::post_force(int vflag) -{ - double **sp = atom->sp; - double **fm = atom->fm; - int *mask = atom->mask; - const int nlocal = atom->nlocal; - - double sx, sy, sz; - double fmx, fmy, fmz; - double cpx, cpy, cpz; - double rx, ry, rz; - - // add the damping to the effective field of each spin - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - fmi[0] = fm[i][0]; - fmi[1] = fm[i][1]; - fmi[2] = fm[i][2]; - - if (tdamp_flag) { - add_tdamping(spi,fmi); - } - - if (temp_flag) { - add_temperature(fmi); - } - - fm[i][0] = fmi[0]; - fm[i][1] = fmi[1]; - fm[i][2] = fmi[2]; - } - } - -} - -/* ---------------------------------------------------------------------- */ -void FixLangevinSpin::add_tdamping(double *spi, double *fmi) -{ - double cpx = fmi[1]*spi[2] - fmi[2]*spi[1]; - double cpy = fmi[2]*spi[0] - fmi[0]*spi[2]; - double cpz = fmi[0]*spi[1] - fmi[1]*spi[0]; - - fmi[0] -= alpha_t*cpx;//Taking the damping value away - fmi[1] -= alpha_t*cpy; - fmi[2] -= alpha_t*cpz; -} - -/* ---------------------------------------------------------------------- */ -void FixLangevinSpin::add_temperature(double *fmi) -{ -//#define GAUSSIAN_R -#if defined GAUSSIAN_R - double rx = sigma*random->gaussian();//Drawing random dist - double ry = sigma*random->gaussian(); - double rz = sigma*random->gaussian(); -#else - double rx = sigma*(random->uniform() - 0.5); - double ry = sigma*(random->uniform() - 0.5); - double rz = sigma*(random->uniform() - 0.5); -#endif - - fmi[0] += rx;//Adding random field - fmi[1] += ry; - fmi[2] += rz; - - fmi[0] *= Gil_factor;//Multiplying by Gilbert's prefactor - fmi[1] *= Gil_factor; - fmi[2] *= Gil_factor; - -} - - -/* ---------------------------------------------------------------------- */ - -void FixLangevinSpin::post_force_respa(int vflag, int ilevel, int iloop) -{ - if (ilevel == nlevels_respa-1) post_force(vflag); -} - diff --git a/src/fix_langevin_spin.h b/src/fix_langevin_spin.h deleted file mode 100644 index a6b9bc5df3..0000000000 --- a/src/fix_langevin_spin.h +++ /dev/null @@ -1,108 +0,0 @@ -/* -*- 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 FIX_CLASS - -FixStyle(langevin/spin,FixLangevinSpin) - -#else - -#ifndef LMP_FIX_LANGEVIN_SPIN_H -#define LMP_FIX_LANGEVIN_SPIN_H - -#include "fix.h" - -namespace LAMMPS_NS { - -class FixLangevinSpin : public Fix { - public: - FixLangevinSpin(class LAMMPS *, int, char **); - virtual ~FixLangevinSpin(); - int setmask(); - void init(); - void setup(int); - virtual void post_force(int); - void post_force_respa(int, int, int); - void add_tdamping(double *, double *); - void add_temperature(double *); - int tdamp_flag, ldamp_flag, temp_flag; - - protected: - double *spi, *fmi; - double alpha_t, alpha_l; //Transverse and long. damping value - double dts,temp,D,sigma;//timestep, temp, noise - double Gil_factor;//Gilbert's prefactor - - char *id_temp; - class Compute *temperature; - - int nlevels_respa; - //class RanMars *random; - class RanPark *random; - int seed; - -}; - -} - -#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: Fix langevin period must be > 0.0 - -The time window for temperature relaxation must be > 0 - -W: Energy tally does not account for 'zero yes' - -The energy removed by using the 'zero yes' flag is not accounted -for in the energy tally and thus energy conservation cannot be -monitored in this case. - - -E: Variable for fix langevin is invalid style - -It must be an equal-style variable. - - -E: Cannot zero Langevin force of 0 atoms - -The group has zero atoms, so you cannot request its force -be zeroed. - -E: Fix langevin variable returned negative temperature - -Self-explanatory. - -E: Could not find fix_modify temperature ID - -The compute ID for computing temperature does not exist. - -E: Fix_modify temperature ID does not compute temperature - -The compute ID assigned to the fix must compute temperature. - -W: Group for fix_modify temp != fix group - -The fix_modify command is specifying a temperature computation that -computes a temperature on a different group of atoms than the fix -itself operates on. This is probably not what you want to do. - -*/ diff --git a/src/fix_nve_spin.cpp b/src/fix_nve_spin.cpp deleted file mode 100644 index 24718e9635..0000000000 --- a/src/fix_nve_spin.cpp +++ /dev/null @@ -1,538 +0,0 @@ -/* ---------------------------------------------------------------------- - 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. -------------------------------------------------------------------------- */ - -#include -#include -#include -#include "fix_nve_spin.h" -#include "atom.h" -#include "atom_vec.h" -#include "update.h" -#include "respa.h" -#include "force.h" -#include "error.h" -#include "math_vector.h" -#include "math_extra.h" -#include "math_const.h" -#include "modify.h" - -//Add headers (see delete later) -#include "neighbor.h" -#include "neigh_list.h" -#include "pair.h" -#include "pair_spin.h" -#include "memory.h" -#include "fix_force_spin.h" -#include "fix_langevin_spin.h" - -using namespace LAMMPS_NS; -using namespace FixConst; -using namespace MathConst; -using namespace MathExtra; - -enum{NONE,SPIN}; - -/* ---------------------------------------------------------------------- */ - -FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : - FixNVE(lmp, narg, arg) -{ - - if (narg < 3) error->all(FLERR,"Illegal fix nve/spin command"); - - time_integrate = 1; - - extra = NONE; - - int iarg = 2; - if (strcmp(arg[iarg],"nve/spin") == 0) { - if (iarg+1 > narg) error->all(FLERR,"Illegal fix nve/spin command"); - extra = SPIN; - } - - // error checks - if (extra == SPIN && !atom->mumag_flag) - error->all(FLERR,"Fix nve/spin requires spin attribute mumag"); - - exch_flag = dmi_flag = me_flag = 0; - zeeman_flag = aniso_flag = 0; - tdamp_flag = temp_flag = 0; - - lockpairspin = NULL; - lockforcespin = NULL; - locklangevinspin = NULL; -} - -/* ---------------------------------------------------------------------- */ -FixNVESpin::~FixNVESpin(){ - //delete lockpairspin; - //delete lockforcespin; - memory->destroy(xi); -#if defined SECTORING - memory->destroy(sec); - memory->destroy(rsec); - memory->destroy(seci); -#endif -#if defined SECTOR_PRINT - fclose(file_sect); -#endif - memory->destroy(spi); - memory->destroy(spj); - memory->destroy(fmi); - memory->destroy(fmj); -} - -/* ---------------------------------------------------------------------- */ - -void FixNVESpin::init() -{ - FixNVE::init(); - - dts = update->dt; - memory->create(xi,3,"nves:xi"); -#if defined SECTORING - memory->create(sec,3,"nves:sec"); - memory->create(rsec,3,"nves:rsec"); - memory->create(seci,3,"nves:seci"); -#endif - memory->create(spi,3,"nves:spi"); - memory->create(spj,3,"nves:spj"); - memory->create(fmi,3,"nves:fmi"); - memory->create(fmj,3,"nves:fmj"); - - lockpairspin = (PairSpin *) force->pair; - - int iforce; - for (iforce = 0; iforce < modify->nfix; iforce++) - if (strstr(modify->fix[iforce]->style,"force/spin")) break; - lockforcespin = (FixForceSpin *) modify->fix[iforce]; - - for (iforce = 0; iforce < modify->nfix; iforce++) - if (strstr(modify->fix[iforce]->style,"langevin/spin")) break; - locklangevinspin = (FixLangevinSpin *) modify->fix[iforce]; - - exch_flag = lockpairspin->exch_flag; - dmi_flag = lockpairspin->dmi_flag; - me_flag = lockpairspin->me_flag; - - zeeman_flag = lockforcespin->zeeman_flag; - aniso_flag = lockforcespin->aniso_flag; - - tdamp_flag = locklangevinspin->tdamp_flag; - temp_flag = locklangevinspin->temp_flag; - - -#if defined SECTORING - sectoring(); -#endif - -#if defined SECTOR_PRINT - file_sect=fopen("sectoring.lammpstrj", "w"); - fprintf(file_sect,"ITEM: TIMESTEP\n"); - fprintf(file_sect,"%g\n",0.0); - fprintf(file_sect,"ITEM: NUMBER OF ATOMS\n"); - //int natoms = atom->natoms; - int natoms = atom->nlocal; - fprintf(file_sect,"%d\n",natoms); - fprintf(file_sect,"ITEM: BOX BOUNDS\n"); - for(int d=0; d<3; d++) fprintf(file_sect,"%lf %lf\n",domain->boxlo[d],domain->boxhi[d]); - fprintf(file_sect,"ITEM: ATOMS type x y z vx vy vz\n"); -#endif - -} - -/* ---------------------------------------------------------------------- */ - -void FixNVESpin::initial_integrate(int vflag) -{ - double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; - double cp[3],g[3]; - - double **x = atom->x; - double **v = atom->v; - double **f = atom->f; - double **sp = atom->sp; - double **fm = atom->fm; - double *rmass = atom->rmass; - double *mass = atom->mass; - int nlocal = atom->nlocal; - if (igroup == atom->firstgroup) nlocal = atom->nfirst; - int *type = atom->type; - int *mask = atom->mask; - - - // update half v all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - if (rmass) dtfm = dtf / rmass[i]; - else dtfm = dtf / mass[type[i]]; - v[i][0] += dtfm * f[i][0]; - v[i][1] += dtfm * f[i][1]; - v[i][2] += dtfm * f[i][2]; - } - } - - // update half x for all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - x[i][0] += 0.5 * dtv * v[i][0]; - x[i][1] += 0.5 * dtv * v[i][1]; - x[i][2] += 0.5 * dtv * v[i][2]; - } - } - -#if defined SECTORING - int nseci; - // Seq. update spins for all particles - if (extra == SPIN) { - for (int j = 0; j < nsectors; j++) { - comm->forward_comm(); - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeSpinInteractionsNeigh(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - } - for (int j = nsectors-1; j >= 0; j--) { - comm->forward_comm(); - for (int i = nlocal-1; i >= 0; i--) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeSpinInteractionsNeigh(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - } - } -#else - // Seq. update spins for all particles - if (extra == SPIN) { - for (int i = 0; i < nlocal; i++){ - ComputeSpinInteractionsNeigh(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - - for (int i = nlocal-1; i >= 0; i--){ - ComputeSpinInteractionsNeigh(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - } -#endif - - // update x for all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - x[i][0] += 0.5 * dtv * v[i][0]; - x[i][1] += 0.5 * dtv * v[i][1]; - x[i][2] += 0.5 * dtv * v[i][2]; - } - } - - -#if defined SECTOR_PRINT - int my_rank; - MPI_Comm_rank(world, &my_rank); - if (my_rank == 0) { - for (int j = 0; j < nsectors; j++) { - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - fprintf(file_sect,"%d %lf %lf %lf %lf %lf %lf\n",j,xi[0],xi[1],xi[2],0.0,0.0,1.0); - } - } - } -#endif - -} - -/* ---------------------------------------------------------------------- */ -void FixNVESpin::ComputeSpinInteractionsNeigh(int ii) -{ - const int nlocal = atom->nlocal; - - //Force compute quantities - int i,j,jj,inum,jnum,itype,jtype; - int *ilist,*jlist,*numneigh,**firstneigh; - double **x = atom->x; - double **sp = atom->sp; - double **fm = atom->fm; - int *type = atom->type; - const int newton_pair = force->newton_pair; - - inum = lockpairspin->list->inum; - ilist = lockpairspin->list->ilist; - numneigh = lockpairspin->list->numneigh; - firstneigh = lockpairspin->list->firstneigh; - - double xtmp,ytmp,ztmp; - double rsq,rd,delx,dely,delz; - double cut_ex_2, cut_dmi_2, cut_me_2; - cut_ex_2 = cut_dmi_2 = cut_me_2 = 0.0; - - int eflag = 1; - int vflag = 0; - int pair_compute_flag = 1; - -#if !defined(SECTORING) - comm->forward_comm(); -#endif - - ///////Force computation for spin i///////////// - i = ilist[ii]; - - //Clear atom i - fm[i][0] = fm[i][1] = fm[i][2] = 0.0; - - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - fmi[0] = fmi[1] = fmi[2] = 0.0; - fmj[0] = fmj[1] = fmj[2] = 0.0; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - //Pair interaction - for (int jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - - delx = xi[0] - x[j][0]; - dely = xi[1] - x[j][1]; - delz = xi[2] - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - itype = type[ii]; - jtype = type[j]; - - if (exch_flag) { - cut_ex_2 = (lockpairspin->cut_spin_exchange[itype][jtype])*(lockpairspin->cut_spin_exchange[itype][jtype]); - if (rsq <= cut_ex_2) { - lockpairspin->compute_exchange(i,j,rsq,fmi,fmj,spi,spj); - } - } - - if (dmi_flag) { - cut_dmi_2 = (lockpairspin->cut_spin_dmi[itype][jtype])*(lockpairspin->cut_spin_dmi[itype][jtype]); - if (rsq <= cut_dmi_2) { - lockpairspin->compute_dmi(i,j,fmi,fmj,spi,spj); - } - } - - if (me_flag) { - cut_me_2 = (lockpairspin->cut_spin_me[itype][jtype])*(lockpairspin->cut_spin_me[itype][jtype]); - if (rsq <= cut_me_2) { - lockpairspin->compute_me(i,j,fmi,fmj,spi,spj); - } - } - } - - //post force - if (zeeman_flag) { - lockforcespin->compute_zeeman(i,fmi); - } - - if (aniso_flag) { - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - lockforcespin->compute_anisotropy(i,spi,fmi); - } - - if (tdamp_flag) { - locklangevinspin->add_tdamping(spi,fmi); - } - - if (temp_flag) { - locklangevinspin->add_temperature(fmi); - } - - //Replace the force by its new value - fm[i][0] = fmi[0]; - fm[i][1] = fmi[1]; - fm[i][2] = fmi[2]; - -} - -#if defined SECTORING -/* ---------------------------------------------------------------------- */ -void FixNVESpin::sectoring() -{ - double sublo[3],subhi[3]; - double* sublotmp = domain->sublo; - double* subhitmp = domain->subhi; - for (int dim = 0 ; dim<3 ; dim++) { - sublo[dim]=sublotmp[dim]; - subhi[dim]=subhitmp[dim]; - } - - const double rsx = subhi[0] - sublo[0]; - const double rsy = subhi[1] - sublo[1]; - const double rsz = subhi[2] - sublo[2]; - - const double rv = lockpairspin->cut_spin_pair_global; - - double rax = rsx/rv; - double ray = rsy/rv; - double raz = rsz/rv; - - sec[0] = 1; - sec[1] = 1; - sec[2] = 1; - if (rax >= 2.0) sec[0] = 2; - if (ray >= 2.0) sec[1] = 2; - if (raz >= 2.0) sec[2] = 2; - - nsectors = sec[0]*sec[1]*sec[2]; - - rsec[0] = rsx; - rsec[1] = rsy; - rsec[2] = rsz; - if (sec[0] == 2) rsec[0] = rsx/2.0; - if (sec[1] == 2) rsec[1] = rsy/2.0; - if (sec[2] == 2) rsec[2] = rsz/2.0; - - if (2.0 * rv >= rsx && sec[0] >= 2) - error->all(FLERR,"Illegal number of sectors"); - - if (2.0 * rv >= rsy && sec[1] >= 2) - error->all(FLERR,"Illegal number of sectors"); - - if (2.0 * rv >= rsz && sec[2] >= 2) - error->all(FLERR,"Illegal number of sectors"); - -} - -/* ---------------------------------------------------------------------- */ -int FixNVESpin::coords2sector(double *xi) -{ - int nseci; - double sublo[3]; - double* sublotmp = domain->sublo; - for (int dim = 0 ; dim<3 ; dim++) { - sublo[dim]=sublotmp[dim]; - } - - double rix = (xi[0] - sublo[0])/rsec[0]; - double riy = (xi[1] - sublo[1])/rsec[1]; - double riz = (xi[2] - sublo[2])/rsec[2]; - - seci[0] = (int)rix; - seci[1] = (int)riy; - seci[2] = (int)riz; - - if (nsectors == 1) { - nseci == 0; - } else if (nsectors == 2) { - nseci = seci[0] + seci[1] + seci[2]; - } else if (nsectors == 4) { - if (sec[1]*sec[2] == 4) { //plane normal to x - nseci = (seci[1] + 2*seci[2]); - } else if (sec[0]*sec[2] == 4) { //plane normal to y - nseci = (seci[0] + 2*seci[2]); - } else if (sec[0]*sec[1] == 4) { //plane normal to z - nseci = (seci[0] + 2*seci[1]); - } - } else if (nsectors == 8) { - nseci = (seci[0] + 2*seci[1] + 4*seci[2]); - } - - return nseci; -} - -#endif - -/* ---------------------------------------------------------------------- */ - -void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) -{ - double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; - double cp[3],g[3]; - - cp[0] = cp[1] = cp[2] = 0.0; - g[0] = g[1] = g[2] = 0.0; - fm2 = (fm[i][0]*fm[i][0])+(fm[i][1]*fm[i][1])+(fm[i][2]*fm[i][2]); - fmsq = sqrt(fm2); - energy = (sp[i][0]*fm[i][0])+(sp[i][1]*fm[i][1])+(sp[i][2]*fm[i][2]); - - cp[0] = fm[i][1]*sp[i][2]-fm[i][2]*sp[i][1]; - cp[1] = fm[i][2]*sp[i][0]-fm[i][0]*sp[i][2]; - cp[2] = fm[i][0]*sp[i][1]-fm[i][1]*sp[i][0]; - - g[0] = sp[i][0]+cp[0]*dts; - g[1] = sp[i][1]+cp[1]*dts; - g[2] = sp[i][2]+cp[2]*dts; - - g[0] += (fm[i][0]*energy-0.5*sp[i][0]*fm2)*0.5*dts*dts; - g[1] += (fm[i][1]*energy-0.5*sp[i][1]*fm2)*0.5*dts*dts; - g[2] += (fm[i][2]*energy-0.5*sp[i][2]*fm2)*0.5*dts*dts; - - g[0] /= (1+0.25*fm2*dts*dts); - g[1] /= (1+0.25*fm2*dts*dts); - g[2] /= (1+0.25*fm2*dts*dts); - - sp[i][0] = g[0]; - sp[i][1] = g[1]; - sp[i][2] = g[2]; - - //Renormalization (may not be necessary) - msq = g[0]*g[0] + g[1]*g[1] + g[2]*g[2]; - scale = 1.0/sqrt(msq); - sp[i][0] *= scale; - sp[i][1] *= scale; - sp[i][2] *= scale; -} - -/* ---------------------------------------------------------------------- */ - -void FixNVESpin::final_integrate() -{ - double dtfm,msq,scale,fm2,fmsq,energy; - double cp[3],g[3]; - - double **x = atom->x; - double **v = atom->v; - double **f = atom->f; - double *rmass = atom->rmass; - double *mass = atom->mass; - int nlocal = atom->nlocal; - if (igroup == atom->firstgroup) nlocal = atom->nfirst; - int *type = atom->type; - int *mask = atom->mask; - - // update half v for all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - if (rmass) dtfm = dtf / rmass[i]; - else dtfm = dtf / mass[type[i]]; - v[i][0] += dtfm * f[i][0]; - v[i][1] += dtfm * f[i][1]; - v[i][2] += dtfm * f[i][2]; - } - } - -} diff --git a/src/fix_nve_spin.h b/src/fix_nve_spin.h deleted file mode 100644 index d621598a9d..0000000000 --- a/src/fix_nve_spin.h +++ /dev/null @@ -1,103 +0,0 @@ -/* -*- 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 FIX_CLASS - -FixStyle(nve/spin,FixNVESpin) - -#else - -#ifndef LMP_FIX_NVE_SPIN_H -#define LMP_FIX_NVE_SPIN_H - -#include "fix_nve.h" - -namespace LAMMPS_NS { - -class FixNVESpin : public FixNVE { - - public: - FixNVESpin(class LAMMPS *, int, char **); - virtual ~FixNVESpin(); - void init(); - virtual void initial_integrate(int); - void AdvanceSingleSpin(int, double, double **, double **); - virtual void final_integrate(); - void ComputeSpinInteractions(); - void ComputeSpinInteractionsNeigh(int); - -//#define SECTORING -#if defined SECTORING - void sectoring(); - int coords2sector(double *); -#endif - - protected: - int extra; - double dts; - - int exch_flag, dmi_flag, me_flag; - int zeeman_flag, aniso_flag; - int tdamp_flag, temp_flag; - - class PairSpin *lockpairspin; - class FixForceSpin *lockforcespin; - class FixLangevinSpin *locklangevinspin; - - double *spi, *spj, *fmi, *fmj; //Temp var. for compute - double *xi; - -#if defined SECTORING - int nsectors; - int *sec; - int *seci; - double *rsec; -#endif - -//#define SECTOR_PRINT -#if defined SECTOR_PRINT - FILE* file_sect=NULL; -#endif -}; - -} - -#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: Fix nve/sphere requires atom style sphere - -Self-explanatory. - -E: Fix nve/sphere update dipole requires atom attribute mu - -An atom style with this attribute is needed. - -E: Fix nve/sphere requires extended particles - -This fix can only be used for particles of a finite size. - -E: Fix nve/sphere dlm must be used with update dipole - -The DLM algorithm can only be used in conjunction with update dipole. - - -*/ diff --git a/src/pair_spin.cpp b/src/pair_spin.cpp deleted file mode 100755 index f2c9cb8d36..0000000000 --- a/src/pair_spin.cpp +++ /dev/null @@ -1,558 +0,0 @@ -/* ---------------------------------------------------------------------- - 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. -------------------------------------------------------------------------- */ - -#include -#include -#include "pair_spin.h" -#include "atom.h" -#include "neighbor.h" -#include "neigh_list.h" -#include "comm.h" -#include "force.h" -#include "memory.h" -#include "math_const.h" -#include "error.h" -#include "update.h" -#include - -//Add. lib. for full neighb. list -#include "neigh_request.h" - -using namespace LAMMPS_NS; -using namespace MathConst; - -/* ---------------------------------------------------------------------- */ - -PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp) -{ - single_enable = 0; - exch_flag = 0; - dmi_flag = 0; - me_flag = 0; - -} - -/* ---------------------------------------------------------------------- */ - -PairSpin::~PairSpin() -{ - if (allocated) { - memory->destroy(setflag); - - memory->destroy(cut_spin_exchange); - memory->destroy(J_1); - memory->destroy(J_2); - memory->destroy(J_2); - - memory->destroy(cut_spin_dmi); - memory->destroy(DM); - memory->destroy(v_dmx); - memory->destroy(v_dmy); - memory->destroy(v_dmz); - - memory->destroy(cut_spin_me); - memory->destroy(ME); - memory->destroy(v_mex); - memory->destroy(v_mey); - memory->destroy(v_mez); - - memory->destroy(spi); - memory->destroy(spj); - memory->destroy(fmi); - memory->destroy(fmj); - - memory->destroy(cutsq); - } -} - -/* ---------------------------------------------------------------------- */ - -void PairSpin::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype; - double evdwl,ecoul; - double xtmp,ytmp,ztmp; - double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; - double cut_ex_2,cut_dmi_2,cut_me_2; - double rsq,rd,delx,dely,delz; - int *ilist,*jlist,*numneigh,**firstneigh; - - evdwl = ecoul = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; - - double **x = atom->x; - double **fm = atom->fm; - double *mumag = atom->mumag; - double **sp = atom->sp; - int *type = atom->type; - int nlocal = atom->nlocal; - int newton_pair = force->newton_pair; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // Pair spin computations - // Loop over neighbors of my itoms - - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - //Loop on Neighbors - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - - fmi[0] = fmi[1] = fmi[2] = 0.0; - fmj[0] = fmj[1] = fmj[2] = 0.0; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; //square or inter-atomic distance - itype = type[i]; - jtype = type[j]; - - //Exchange interaction - if (exch_flag) { - cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; - if (rsq <= cut_ex_2) { - compute_exchange(i,j,rsq,fmi,fmj,spi,spj); - } - } - //DM interaction - if (dmi_flag){ - cut_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; - if (rsq <= cut_dmi_2){ - compute_dmi(i,j,fmi,fmj,spi,spj); - } - } - //ME interaction - if (me_flag){ - cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; - if (rsq <= cut_me_2){ - compute_me(i,j,fmi,fmj,spi,spj); - } - } - - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; - fm[i][2] += fmi[2]; - - if (newton_pair || j < nlocal) { - fm[j][0] += fmj[0]; - fm[j][1] += fmj[1]; - fm[j][2] += fmj[2]; - } - } - } - - if (vflag_fdotr) virial_fdotr_compute(); -} - -/* ---------------------------------------------------------------------- */ -void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj, double *spi, double *spj) -{ - int *type = atom->type; - int itype, jtype; - double dmix,dmiy,dmiz; - double Jex, ra; - itype = type[i]; - jtype = type[j]; - - ra = rsq/J_3[itype][jtype]/J_3[itype][jtype]; - Jex = 4.0*J_1[itype][jtype]*ra; - Jex *= (1.0-J_2[itype][jtype]*ra); - Jex *= exp(-ra); - - fmi[0] += Jex*spj[0]; - fmi[1] += Jex*spj[1]; - fmi[2] += Jex*spj[2]; - - fmj[0] += Jex*spi[0]; - fmj[1] += Jex*spi[1]; - fmj[2] += Jex*spi[2]; - -} - -/* ---------------------------------------------------------------------- */ -void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj, double *spi, double *spj) -{ - int *type = atom->type; - int itype, jtype; - double dmix,dmiy,dmiz; - itype = type[i]; - jtype = type[j]; - - dmix = DM[itype][jtype]*v_dmx[itype][jtype]; - dmiy = DM[itype][jtype]*v_dmy[itype][jtype]; - dmiz = DM[itype][jtype]*v_dmz[itype][jtype]; - - fmi[0] += spj[1]*dmiz-spj[2]*dmiy; - fmi[1] += spj[2]*dmix-spj[0]*dmiz; - fmi[2] += spj[0]*dmiy-spj[1]*dmix; - - fmj[0] -= spi[1]*dmiz-spi[2]*dmiy; - fmj[1] -= spi[2]*dmix-spi[0]*dmiz; - fmj[2] -= spi[0]*dmiy-spi[1]*dmix; -} - -/* ---------------------------------------------------------------------- */ -void PairSpin::compute_me(int i, int j, double *fmi, double *fmj, double *spi, double *spj) -{ - int *type = atom->type; - int itype, jtype; - itype = type[i]; - jtype = type[j]; - double **sp = atom->sp; - double **x = atom->x; - double meix,meiy,meiz; - double rx, ry, rz, inorm; - - rx = x[j][0] - x[i][0]; - ry = x[j][1] - x[i][1]; - rz = x[j][2] - x[i][2]; - inorm = 1.0/sqrt(rx*rx+ry*ry+rz*rz); - rx *= inorm; - ry *= inorm; - rz *= inorm; - - meix = v_mey[itype][jtype]*rz - v_mez[itype][jtype]*ry; - meiy = v_mez[itype][jtype]*rx - v_mex[itype][jtype]*rz; - meiz = v_mex[itype][jtype]*ry - v_mey[itype][jtype]*rx; - - meix *= ME[itype][jtype]; - meiy *= ME[itype][jtype]; - meiz *= ME[itype][jtype]; - - fmi[0] += spj[1]*meiz - spj[2]*meiy; - fmi[1] += spj[2]*meix - spj[0]*meiz; - fmi[2] += spj[0]*meiy - spj[1]*meix; - - fmj[0] -= spi[1]*meiz - spi[2]*meiy; - fmj[1] -= spi[2]*meix - spi[0]*meiz; - fmj[2] -= spi[0]*meiy - spi[1]*meix; - -} - -/* ---------------------------------------------------------------------- - allocate all arrays -------------------------------------------------------------------------- */ - -void PairSpin::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(cut_spin_exchange,n+1,n+1,"pair:cut_spin_exchange"); - memory->create(J_1,n+1,n+1,"pair:J_1"); - memory->create(J_2,n+1,n+1,"pair:J_2"); - memory->create(J_3,n+1,n+1,"pair:J_3"); - - memory->create(cut_spin_dmi,n+1,n+1,"pair:cut_spin_dmi"); - memory->create(DM,n+1,n+1,"pair:DM"); - memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); - memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); - memory->create(v_dmz,n+1,n+1,"pair:DM_vector_z"); - - memory->create(cut_spin_me,n+1,n+1,"pair:cut_spin_me"); - memory->create(ME,n+1,n+1,"pair:ME"); - memory->create(v_mex,n+1,n+1,"pair:ME_vector_x"); - memory->create(v_mey,n+1,n+1,"pair:ME_vector_y"); - memory->create(v_mez,n+1,n+1,"pair:ME_vector_z"); - - memory->create(spi,3,"pair:spi"); - memory->create(spj,3,"pair:spj"); - memory->create(fmi,3,"pair:fmi"); - memory->create(fmj,3,"pair:fmj"); - - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - -} - -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairSpin::settings(int narg, char **arg) -{ - if (narg < 1 || narg > 2) - error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); - - if (strcmp(update->unit_style,"metal") != 0) - error->all(FLERR,"Spin simulations require metal unit style"); - - cut_spin_pair_global = force->numeric(FLERR,arg[0]); - - // reset cutoffs that have been explicitly set - - if (allocated) { - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i+1; j <= atom->ntypes; j++) - if (setflag[i][j]) { - cut_spin_exchange[i][j] = cut_spin_pair_global; - cut_spin_dmi[i][j] = cut_spin_pair_global; - cut_spin_me[i][j] = cut_spin_pair_global; - } - } - -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type spin pairs (only one for now) -------------------------------------------------------------------------- */ - -void PairSpin::coeff(int narg, char **arg) -{ - const double hbar = force->hplanck/MY_2PI; - - if (!allocated) allocate(); - - if (strcmp(arg[2],"exchange")==0){ - if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); - exch_flag = 1; - - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double J1 = (force->numeric(FLERR,arg[4]))/hbar; - const double J2 = force->numeric(FLERR,arg[5]); - const double J3 = force->numeric(FLERR,arg[6]); - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_exchange[i][j] = rij; - J_1[i][j] = J1; - J_2[i][j] = J2; - J_3[i][j] = J3; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else if (strcmp(arg[2],"dmi")==0) { - if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - dmi_flag = 1; - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double dm = (force->numeric(FLERR,arg[4]))/hbar; - double dmx = force->numeric(FLERR,arg[5]); - double dmy = force->numeric(FLERR,arg[6]); - double dmz = force->numeric(FLERR,arg[7]); - - double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); - dmx *= inorm; - dmy *= inorm; - dmz *= inorm; - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_dmi[i][j] = rij; - DM[i][j] = dm; - v_dmx[i][j] = dmx; - v_dmy[i][j] = dmy; - v_dmz[i][j] = dmz; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else if (strcmp(arg[2],"me")==0) { - if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - me_flag = 1; - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double me = (force->numeric(FLERR,arg[4]))/hbar; - double mex = force->numeric(FLERR,arg[5]); - double mey = force->numeric(FLERR,arg[6]); - double mez = force->numeric(FLERR,arg[7]); - - double inorm = 1.0/(mex*mex+mey*mey+mez*mez); - mex *= inorm; - mey *= inorm; - mez *= inorm; - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_me[i][j] = rij; - DM[i][j] = me; - v_mex[i][j] = mex; - v_mey[i][j] = mey; - v_mez[i][j] = mez; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else error->all(FLERR,"Incorrect args in pair_style command"); - - //Check if Jex [][] still works for Ferrimagnetic exchange -} - - -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -void PairSpin::init_style() -{ - if (!atom->sp_flag || !atom->mumag_flag) - error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); - - neighbor->request(this,instance_me); - -#define FULLNEI -#if defined FULLNEI - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->full = 1; -#endif -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairSpin::init_one(int i, int j) -{ - - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - - return cut_spin_pair_global; -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairSpin::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]) { - if (exch_flag){ - fwrite(&J_1[i][j],sizeof(double),1,fp); - fwrite(&J_2[i][j],sizeof(double),1,fp); - fwrite(&J_3[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_exchange[i][j],sizeof(double),1,fp); - } - if (dmi_flag) { - fwrite(&DM[i][j],sizeof(double),1,fp); - fwrite(&v_dmx[i][j],sizeof(double),1,fp); - fwrite(&v_dmy[i][j],sizeof(double),1,fp); - fwrite(&v_dmz[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_dmi[i][j],sizeof(double),1,fp); - } - if (me_flag) { - fwrite(&ME[i][j],sizeof(double),1,fp); - fwrite(&v_mex[i][j],sizeof(double),1,fp); - fwrite(&v_mey[i][j],sizeof(double),1,fp); - fwrite(&v_mez[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_me[i][j],sizeof(double),1,fp); - } - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairSpin::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(&J_1[i][j],sizeof(double),1,fp); - fread(&J_2[i][j],sizeof(double),1,fp); - fread(&J_2[i][j],sizeof(double),1,fp); - fread(&cut_spin_exchange[i][j],sizeof(double),1,fp); - } - MPI_Bcast(&J_1[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&J_2[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&J_3[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_spin_exchange[i][j],1,MPI_DOUBLE,0,world); - } - } -} - - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairSpin::write_restart_settings(FILE *fp) -{ - fwrite(&cut_spin_pair_global,sizeof(double),1,fp); - fwrite(&offset_flag,sizeof(int),1,fp); - fwrite(&mix_flag,sizeof(int),1,fp); -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairSpin::read_restart_settings(FILE *fp) -{ - if (comm->me == 0) { - fread(&cut_spin_pair_global,sizeof(double),1,fp); - fread(&offset_flag,sizeof(int),1,fp); - fread(&mix_flag,sizeof(int),1,fp); - } - MPI_Bcast(&cut_spin_pair_global,1,MPI_DOUBLE,0,world); - MPI_Bcast(&offset_flag,1,MPI_INT,0,world); - MPI_Bcast(&mix_flag,1,MPI_INT,0,world); -} diff --git a/src/pair_spin.h b/src/pair_spin.h deleted file mode 100755 index 2c65c62264..0000000000 --- a/src/pair_spin.h +++ /dev/null @@ -1,96 +0,0 @@ -/* -*- 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(pair/spin,PairSpin) - -#else - -#ifndef LMP_PAIR_SPIN_H -#define LMP_PAIR_SPIN_H - -#include "pair.h" - -namespace LAMMPS_NS { - -class PairSpin : public Pair { - public: - PairSpin(class LAMMPS *); - virtual ~PairSpin(); - virtual void compute(int, int); - void settings(int, char **); - void coeff(int, char **); - void init_style(); - double init_one(int, int); - - void write_restart(FILE *); - void read_restart(FILE *); - void write_restart_settings(FILE *); - void read_restart_settings(FILE *); - - void compute_exchange(int, int, double, double *, double *,double *, double *); - void compute_dmi(int, int, double *, double *, double *, double *); - void compute_me(int, int, double *, double *, double *, double *); - - //Test for seq. integ. - //protected: - int exch_flag,dmi_flag,me_flag; - double cut_spin_pair_global; - double cut_spin_dipolar_global; - - double **cut_spin_exchange; //cutting distance exchange - double **cut_spin_dmi; //cutting distance dmi - double **cut_spin_me; //cutting distance me - - //Test for seq. integ. - protected: - double **J_1, **J_2, **J_3; //exchange coeffs Jij - //J1 in eV, J2 adim and J3 in Ang - double **DM; - double **v_dmx, **v_dmy, **v_dmz;//DMI coeffs - //DM int. in eV, v direction - - double **ME; //ME in eV - double **v_mex, **v_mey, **v_mez;//ME direction - - double *spi, *spj; - double *fmi, *fmj; //Temp var. in compute - - void allocate(); -}; - -} - -#endif -#endif - -/* ERROR/WARNING messages: - -E: Incorrect args in pair_style command - -Self-explanatory. - -E: Spin simulations require metal unit style - -Self-explanatory. - -E: Incorrect args for pair coefficients - -Self-explanatory. Check the input script or data file. - -E: Pair spin requires atom attributes sp, mumag - -The atom style defined does not have these attributes. - -*/ From 7519dee502acaa01ca00aa0f7688362f4f2b4d54 Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 19 Jul 2017 13:41:45 -0600 Subject: [PATCH 030/675] Changes 2 (modif/corrects parallel) --- src/SPIN/fix_nve_spin.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 5e2a4e5af9..80f8cd16cd 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -192,9 +192,6 @@ void FixNVESpin::initial_integrate(int vflag) } #if defined SECTORING - - printf("Nsectors: %d, Nlocal: %d \n",nsectors,nlocal); - int nseci; // Seq. update spins for all particles if (extra == SPIN) { @@ -206,9 +203,6 @@ void FixNVESpin::initial_integrate(int vflag) xi[2] = x[i][2]; nseci = coords2sector(xi); if (j != nseci) continue; - - printf("sector number: %d, nseci: %d \n",j,nseci); - ComputeSpinInteractionsNeigh(i); AdvanceSingleSpin(i,0.5*dts,sp,fm); } From b88f7aac3207df5287fb4d5fa21092f42c7186e2 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 24 Jul 2017 15:13:42 -0600 Subject: [PATCH 031/675] Begining work on test for sectoring (works only if sectoring possible when mpi option is on) --- in.cobalt | 12 ++-- src/SPIN/fix_nve_spin.cpp | 145 ++++++++++++++++++++------------------ src/SPIN/fix_nve_spin.h | 14 ++-- 3 files changed, 86 insertions(+), 85 deletions(-) diff --git a/in.cobalt b/in.cobalt index acd9d12a78..3a76a19ccf 100644 --- a/in.cobalt +++ b/in.cobalt @@ -3,21 +3,23 @@ ################### clear -#setting units. default: lj(unitless). Others: metal(Ang, picosecs, eV, ...), real(Ang, femtosecs, Kcal/mol, ...), ... +#setting units to metal (Ang, picosecs, eV, ...): units metal -#setting dimension of the system (N=2 or 3) +#setting dimension of the system (N=2 or 3): dimension 3 #setting boundary conditions. (p for periodic, f for fixed, ...) boundary p p p #boundary f f f -#setting atom_style, defines what can of atoms to use in simulation (atomic, molecule, angle, dipole, ...) +#setting atom_style to spin: atom_style spin + #Define sort for paramagnetic simulations (if no pair interaction) #atom_modify sort 1000 4.0 +#why? atom_modify map array #newton off for pair spin in SEQNEI @@ -48,7 +50,7 @@ lattice sc 2.50 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 2.0 0.0 2.0 0.0 16.0 +region box block 0.0 8.0 0.0 8.0 0.0 16.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box @@ -101,7 +103,7 @@ fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -fix 3 all nve/spin +fix 3 all nve/spin mpi #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 80f8cd16cd..1107a3e7dd 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -53,13 +53,18 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : time_integrate = 1; extra = NONE; + mpi_flag = NONE; int iarg = 2; if (strcmp(arg[iarg],"nve/spin") == 0) { - if (iarg+1 > narg) error->all(FLERR,"Illegal fix nve/spin command"); - extra = SPIN; - } - + extra = SPIN; + if (strcmp(arg[iarg+1],"serial") == 0){ + mpi_flag = 0; + } else if (strcmp(arg[iarg+1],"mpi") == 0) { + mpi_flag = 1; + } else error->all(FLERR,"Illegal fix nve/spin command"); + } else error->all(FLERR,"Illegal fix nve/spin command"); + // error checks if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix nve/spin requires spin attribute mumag"); @@ -78,11 +83,11 @@ FixNVESpin::~FixNVESpin(){ //delete lockpairspin; //delete lockforcespin; memory->destroy(xi); -#if defined SECTORING + memory->destroy(sec); memory->destroy(rsec); memory->destroy(seci); -#endif + #if defined SECTOR_PRINT fclose(file_sect); #endif @@ -100,11 +105,10 @@ void FixNVESpin::init() dts = update->dt; memory->create(xi,3,"nves:xi"); -#if defined SECTORING memory->create(sec,3,"nves:sec"); memory->create(rsec,3,"nves:rsec"); memory->create(seci,3,"nves:seci"); -#endif + memory->create(spi,3,"nves:spi"); memory->create(spj,3,"nves:spj"); memory->create(fmi,3,"nves:fmi"); @@ -131,10 +135,9 @@ void FixNVESpin::init() tdamp_flag = locklangevinspin->tdamp_flag; temp_flag = locklangevinspin->temp_flag; - -#if defined SECTORING - sectoring(); -#endif + if (mpi_flag == 1) { + sectoring(); + } #if defined SECTOR_PRINT file_sect=fopen("sectoring.lammpstrj", "w"); @@ -191,50 +194,47 @@ void FixNVESpin::initial_integrate(int vflag) } } -#if defined SECTORING - int nseci; - // Seq. update spins for all particles + if (extra == SPIN) { - for (int j = 0; j < nsectors; j++) { - comm->forward_comm(); - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeSpinInteractionsNeigh(i); + if (mpi_flag == 1) { + int nseci; + // mpi seq. update spins for all particles + for (int j = 0; j < nsectors; j++) { + comm->forward_comm(); + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } + for (int j = nsectors-1; j >= 0; j--) { + comm->forward_comm(); + for (int i = nlocal-1; i >= 0; i--) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } + } else if (mpi_flag == 0) { + // serial seq. update spins for all particles + for (int i = 0; i < nlocal; i++){ + ComputeInteractionsSpin(i); AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - } - for (int j = nsectors-1; j >= 0; j--) { - comm->forward_comm(); - for (int i = nlocal-1; i >= 0; i--) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeSpinInteractionsNeigh(i); + } + for (int i = nlocal-1; i >= 0; i--){ + ComputeInteractionsSpin(i); AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - } + } + } else error->all(FLERR,"Illegal fix nve/spin command"); } - -#else - // Seq. update spins for all particles - if (extra == SPIN) { - for (int i = 0; i < nlocal; i++){ - ComputeSpinInteractionsNeigh(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - - for (int i = nlocal-1; i >= 0; i--){ - ComputeSpinInteractionsNeigh(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - } -#endif // update x for all particles for (int i = 0; i < nlocal; i++) { @@ -242,7 +242,7 @@ void FixNVESpin::initial_integrate(int vflag) x[i][0] += 0.5 * dtv * v[i][0]; x[i][1] += 0.5 * dtv * v[i][1]; x[i][2] += 0.5 * dtv * v[i][2]; - } + } } @@ -266,11 +266,11 @@ void FixNVESpin::initial_integrate(int vflag) } /* ---------------------------------------------------------------------- */ -void FixNVESpin::ComputeSpinInteractionsNeigh(int ii) +void FixNVESpin::ComputeInteractionsSpin(int ii) { const int nlocal = atom->nlocal; - //Force compute quantities + // force compute quantities int i,j,jj,inum,jnum,itype,jtype; int *ilist,*jlist,*numneigh,**firstneigh; double **x = atom->x; @@ -293,14 +293,14 @@ void FixNVESpin::ComputeSpinInteractionsNeigh(int ii) int vflag = 0; int pair_compute_flag = 1; -#if !defined(SECTORING) - comm->forward_comm(); -#endif + if (mpi_flag == 0) { + comm->forward_comm(); + } - ///////Force computation for spin i///////////// + // force computation for spin i i = ilist[ii]; - //Clear atom i + // clear atom i fm[i][0] = fm[i][1] = fm[i][2] = 0.0; spi[0] = sp[i][0]; @@ -315,7 +315,7 @@ void FixNVESpin::ComputeSpinInteractionsNeigh(int ii) jlist = firstneigh[i]; jnum = numneigh[i]; - //Pair interaction + // pair interaction for (int jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; @@ -352,7 +352,7 @@ void FixNVESpin::ComputeSpinInteractionsNeigh(int ii) } } - //post force + // post force if (zeeman_flag) { lockforcespin->compute_zeeman(i,fmi); } @@ -372,14 +372,13 @@ void FixNVESpin::ComputeSpinInteractionsNeigh(int ii) locklangevinspin->add_temperature(fmi); } - //Replace the force by its new value + // replace the force by its new value fm[i][0] = fmi[0]; fm[i][1] = fmi[1]; fm[i][2] = fmi[2]; } -#if defined SECTORING /* ---------------------------------------------------------------------- */ void FixNVESpin::sectoring() { @@ -410,6 +409,9 @@ void FixNVESpin::sectoring() nsectors = sec[0]*sec[1]*sec[2]; + if (mpi_flag == 1 && nsectors != 8) + error->all(FLERR,"System too small for sectoring operation"); + rsec[0] = rsx; rsec[1] = rsy; rsec[2] = rsz; @@ -417,6 +419,7 @@ void FixNVESpin::sectoring() if (sec[1] == 2) rsec[1] = rsy/2.0; if (sec[2] == 2) rsec[2] = rsz/2.0; + /* if (2.0 * rv >= rsx && sec[0] >= 2) error->all(FLERR,"Illegal number of sectors"); @@ -425,6 +428,7 @@ void FixNVESpin::sectoring() if (2.0 * rv >= rsz && sec[2] >= 2) error->all(FLERR,"Illegal number of sectors"); +*/ } @@ -442,10 +446,11 @@ int FixNVESpin::coords2sector(double *xi) double riy = (xi[1] - sublo[1])/rsec[1]; double riz = (xi[2] - sublo[2])/rsec[2]; - seci[0] = (int)rix; - seci[1] = (int)riy; - seci[2] = (int)riz; + seci[0] = static_cast(rix); + seci[1] = static_cast(riy); + seci[2] = static_cast(riz); + /* if (nsectors == 1) { nseci = 0; } else if (nsectors == 2) { @@ -461,11 +466,12 @@ int FixNVESpin::coords2sector(double *xi) } else if (nsectors == 8) { nseci = (seci[0] + 2*seci[1] + 4*seci[2]); } + */ + nseci = (seci[0] + 2*seci[1] + 4*seci[2]); return nseci; } -#endif /* ---------------------------------------------------------------------- */ @@ -500,7 +506,7 @@ void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) sp[i][1] = g[1]; sp[i][2] = g[2]; - //Renormalization (may not be necessary) + // renormalization (may not be necessary) msq = g[0]*g[0] + g[1]*g[1] + g[2]*g[2]; scale = 1.0/sqrt(msq); sp[i][0] *= scale; @@ -535,5 +541,4 @@ void FixNVESpin::final_integrate() v[i][2] += dtfm * f[i][2]; } } - } diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index d77ea4e37a..38a61bf428 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -34,16 +34,13 @@ class FixNVESpin : public FixNVE { void AdvanceSingleSpin(int, double, double **, double **); virtual void final_integrate(); void ComputeSpinInteractions(); - void ComputeSpinInteractionsNeigh(int); + void ComputeInteractionsSpin(int); -#define SECTORING -#if defined SECTORING void sectoring(); int coords2sector(double *); -#endif protected: - int extra; + int extra, mpi_flag; double dts; int exch_flag, dmi_flag, me_flag; @@ -54,15 +51,12 @@ class FixNVESpin : public FixNVE { class FixForceSpin *lockforcespin; class FixLangevinSpin *locklangevinspin; - double *spi, *spj, *fmi, *fmj; //Temp var. for compute + double *spi, *spj, *fmi, *fmj; //Temp var. double *xi; -#if defined SECTORING int nsectors; - int *sec; - int *seci; + int *sec, *seci; double *rsec; -#endif //#define SECTOR_PRINT #if defined SECTOR_PRINT From 98a22c2b55677a011d7e6b2239ba3421e3d42e3b Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 15 Aug 2017 09:53:24 -0600 Subject: [PATCH 032/675] Simple test in fix_nve_spin --- in.cobalt | 21 +++++++++------------ src/SPIN/fix_nve_spin.cpp | 2 +- vmd_nano.vmd | 2 +- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/in.cobalt b/in.cobalt index 3a76a19ccf..3780d9b0dc 100644 --- a/in.cobalt +++ b/in.cobalt @@ -30,8 +30,8 @@ atom_modify map array ########################### #Lattice constant of fcc Cobalt -#lattice fcc 3.54 -lattice sc 2.50 +lattice fcc 3.54 +#lattice sc 2.50 #Test Kagome #variable a equal sqrt(3.0)/8.0 @@ -50,7 +50,7 @@ lattice sc 2.50 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 8.0 0.0 8.0 0.0 16.0 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box @@ -91,7 +91,7 @@ neigh_modify every 1 check no delay 0 #Magnetic field fix #Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 +fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 #fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 @@ -99,8 +99,8 @@ fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 -#fix 2 all langevin/spin 1.0 0.1 0.0 21 -fix 2 all langevin/spin 0.0 0.0 0.0 21 +fix 2 all langevin/spin 1.0 0.1 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix fix 3 all nve/spin mpi @@ -110,10 +110,7 @@ fix 3 all nve/spin mpi compute mag all compute/spin fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g -#Defining a computation that will be performed on a group of atoms. -#Entries: ID(user assigned), group-ID(group of atoms to peform the sim on), style(temp, pe, ...), args - -#Setting the timestep for the simulation +#Setting the timestep for the simulation (in ps) timestep 0.0001 ################## @@ -121,9 +118,9 @@ timestep 0.0001 ################## #Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 50 dump_spin_T100.lammpstrj type x y z spx spy spz +dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 10 +run 20 #run 1 diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 1107a3e7dd..32d6127591 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -48,7 +48,7 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : FixNVE(lmp, narg, arg) { - if (narg < 3) error->all(FLERR,"Illegal fix nve/spin command"); + if (narg != 4) error->all(FLERR,"Illegal fix nve/spin command"); time_integrate = 1; diff --git a/vmd_nano.vmd b/vmd_nano.vmd index a8d7db503c..6b4684840f 100644 --- a/vmd_nano.vmd +++ b/vmd_nano.vmd @@ -70,7 +70,7 @@ proc enable_trace {} { trace variable vmd_frame([molinfo top]) w vmd_draw_spin } -set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump_spin.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] +set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump_spin_BFO.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] scale by 0.5 animate style Loop enable_trace From 023b018ed282e07b239ad55d6c6781b50ce5368b Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 16 Aug 2017 09:31:24 -0600 Subject: [PATCH 033/675] First version of the tutorial for spin simulations --- doc/src/tutorials.txt | 1 + src/SPIN/fix_nve_spin.cpp | 19 +------------------ 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/doc/src/tutorials.txt b/doc/src/tutorials.txt index 338439ac8e..97e7883841 100644 --- a/doc/src/tutorials.txt +++ b/doc/src/tutorials.txt @@ -9,6 +9,7 @@ Tutorials :h1 tutorial_github tutorial_pylammps tutorial_bash_on_windows + tutorial_spin body manifolds diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 32d6127591..6b9d1a5b18 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -450,23 +450,6 @@ int FixNVESpin::coords2sector(double *xi) seci[1] = static_cast(riy); seci[2] = static_cast(riz); - /* - if (nsectors == 1) { - nseci = 0; - } else if (nsectors == 2) { - nseci = seci[0] + seci[1] + seci[2]; - } else if (nsectors == 4) { - if (sec[1]*sec[2] == 4) { //plane normal to x - nseci = (seci[1] + 2*seci[2]); - } else if (sec[0]*sec[2] == 4) { //plane normal to y - nseci = (seci[0] + 2*seci[2]); - } else if (sec[0]*sec[1] == 4) { //plane normal to z - nseci = (seci[0] + 2*seci[1]); - } - } else if (nsectors == 8) { - nseci = (seci[0] + 2*seci[1] + 4*seci[2]); - } - */ nseci = (seci[0] + 2*seci[1] + 4*seci[2]); return nseci; @@ -539,6 +522,6 @@ void FixNVESpin::final_integrate() v[i][0] += dtfm * f[i][0]; v[i][1] += dtfm * f[i][1]; v[i][2] += dtfm * f[i][2]; - } + } } } From 45ea7b3cc709c6e44543eb160c12c514f8a97589 Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 16 Aug 2017 09:32:35 -0600 Subject: [PATCH 034/675] First version of the spin tutorial (2) Examples (example/SPIN), for BFO and Co --- doc/src/tutorial_spin.txt | 255 ++++++++++++++++++++++++++++++++++++ examples/SPIN/in.BFO | 109 +++++++++++++++ examples/SPIN/in.cobalt_SD | 126 ++++++++++++++++++ examples/SPIN/in.cobalt_dev | 126 ++++++++++++++++++ examples/SPIN/vmd_nano.vmd | 79 +++++++++++ 5 files changed, 695 insertions(+) create mode 100644 doc/src/tutorial_spin.txt create mode 100644 examples/SPIN/in.BFO create mode 100644 examples/SPIN/in.cobalt_SD create mode 100644 examples/SPIN/in.cobalt_dev create mode 100644 examples/SPIN/vmd_nano.vmd diff --git a/doc/src/tutorial_spin.txt b/doc/src/tutorial_spin.txt new file mode 100644 index 0000000000..d81e82d448 --- /dev/null +++ b/doc/src/tutorial_spin.txt @@ -0,0 +1,255 @@ + + + +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Tutorial for the SPIN package in LAMMPS :h3 + +This tutorial explains how to use the spin dynamics in LAMMPS, +and to perform spin and spin--lattice simulations using the +SPIN package. As an illustration, input files are documented. +First of all, LAMMPS has to be compiled with the SPIN package +activated. Then, the data file and input scripts have to be +modified to include the magnetic spins and to handle them. + +:line + +[Overview of the spin and spin--lattice dynamics] + +At the atomic scale, magnetic materials can be seen as ensemble of +atoms, each one of them carying a magnetic moment, refered to as its +atomic spin. In ref "Antropov"_#Antropov, a formalism allowing to +simulate approximate classical spins, and to couple them to lattice +vibrations was introduced. Each of these spins is simulated via a +classical vector, associated to each magnetic atom, and whose +trajectory is defined by an equation of motion. +Lattice vibrations are simulated by the usual equations of MD. +A mechanical potential (EAM, Finnis-Siclair, or Dudarev-Derlet) ensure +the cohesion of the particles. The coupling between the magnetic and +lattice degrees of freedom is performed via the inter-atomic dependence +of the magnetic interactions. +:ole + + +:line + +[Preparation of the data file] + +For the mechanical potentials, the data file is similar to a standard LAMMPS +data file for {atom_style full}. The DPs and the {harmonic bonds} connecting +them to their DC should appear in the data file as normal atoms and bonds. + +For the magnetic interactions, no data file is necessary, every interaction +input will be define in the input file. :pre + + +:line + +[Basic input file] + +Up to know, spin simulations only accept the metal units. + +The atom style should be set to {spin}, so that you +can define atomic spin vectors. + + +The set group command defines the Lande factor (the norm) of +the magnetic vectors in a given group, and their initial +oriantation. The command is: + +set group A B C D E F :pre + +with A, B, C, D, E, and F the following input parameters: +A is set to all, or to the number of a specific and pre-defined +group of atoms, +B is set to {spin} or {spin/random}, depending on if the spins of +the group have to be initialized in a particulat direction, or randomly. + +If B is defined as {spin}, the C is the Lande factor for the spins of +the group, and [D,E,F] is the vector giving the direction for the +initialization. + +If B is defined as {spin/random}, C is a number giving the seed for the random +difinition of the directions, and D is the Lande factor of the spins +in this group. E and F are not defined. + +Examples: +set group all spin 1.72 1.0 0.0 0.0 +set group all spin/random 11 1.72 + +setting the initial direction of all spins, with a Lande factor of 1.72, +and either in the x direction, or randomly. :l + + +The pair style has to be set to {pair/spin}. The command is + +pair_style pair/spin A + +with A a global radius cutoff. + +The different pair interactions and their associated coefficients can then be +defined via the pair coeff command. + +pair_coeff A B C D E F G H + +where A and B are setting the pair concerned by this pair coeff command. +For example, A=1 and B=2 to set the pair coefficients between spins of +type 1 and spins of type 2. Use {*} for setting a pair coeffcient between +all pairs of spins. + +C defines the type of the interaction. It can be set to {exchange} for an +exchange interaction, {dmi} for a Dzyaloshinskii-Moriya (DM) interaction, or to +{me} for a magneto-electric (ME) interaction. + +If C is set to {exchange}, D is the radius cutoff (in Angtrom) associated +to the exchange interaction, and E, F and G are the three parameters of the +Bethe--Slater function (E in eV, F without dimension, and G in Angtrom). +H is not defined. + +If C is set to {dmi}, D is the radius cutoff (in Angtrom) associated to the DM +interaction, E is the intensity of the interaction in eV (which is also the +norm of the DM vector), and [F, G, H] are giving the direction of the DM +vector. + +If C is set to {me}, D is the radius cutoff (in Angtrom) associated to the ME +interaction, E is the intensity of the interaction in eV (which corresponds to +the intensity of the electric polarization), and [F, G, H] are giving the +direction of the polarization vector. + +Examples: +pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 + +are setting an exchange interaction between every type of spins, with a radius +cutoff of 4.0 Angtrom, and E=0.0446928 eV, F=0.003496, and G=1.4885 Angtrom as +coefficient for the associated Bethe--Slater function, and a DM interaction +with a radius cutoff of 2.6 Angtrom, an intensity of 0.001 eV and a DM vector +in the direction [0.0 0.0 1.0]. :l + + +A fix has to be set to {force/spin} to define local magnetic forces, like the Zeeman +interaction or an anisotropic interaction. The command is: + +fix A B C D E F G H + +with A the label of the associated fix, B defining to which group of spins the +force is applied to, C defined as {force/spin} for magnetic local fixes, and +D defining the type of this fix. D can be equal to {zeeman} for a Zeeman interaction, +or to {anisotropy} for an anisotropic interaction. + +If D is set to {zeeman}, then E gives the intensity of the applied magnetic field (in +Tesla), and [F, G, H] the direction of this field. + +If is set to {anisotropy}, hen E gives the intensity of the anisotropic field (in eV), +and [F, G, H] the direction of this anisotropy. + +Examples: +fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 +fix 2 all force/spin anisotropy 0.001 0.0 1.0 0.0 + +are setting two fixes, the first one, labelled 1, is applied to all spins and defines +a Zeeman interaction corresponding to a field of 1 Tesla in the z direction, whereas +the second fix, labelled 2, is also applied to all spins, and defines a uniaxial +anisotropy of intensity 0.001 eV, in the direction y. :l + + +To simulate the temperature effects, a fix has to be set to {langevin/spin}. The command +is + +fix A B C D E F G + +where A is the label of the associated fix, B defines to which spins the fix is applied, +and C is set equal to {langevin/spin}. Then, D defines the temperature of the random bath +(in K), E is the transverse magnetic damping (no dimension), F is a longitudinal magnetic +damping, and G the seed for the random variables. + +Note: the transverse damping is not implemented into LAMMPS yet. It is necessary for +micromagnetic simulations only. + +Examples: +fix 2 all langevin/spin 300.0 0.01 0.0 21 + +is setting a fix labelled as 2, which is connecting all spins to a random bath. The temperature +of this bath is set to 300 K, and the value of the transverse Gilbert damping is set to 0.01. +The seed is set to 21. + + +For LAMMPS to understand that the motion of spins has to be taken into account, one has to set +a fix to {nve/spin}. The command is: + +fix A B C D + +with A the label of this fix, B defining to which group of atoms this fix is applied to, C has +to be set to {nve/spin}, and D can be set to {serial} for a serial calculation, with one +processor only, or to {mpi} for a parallel calculation, with N processors. + +Example: +fix 3 all nve/spin mpi + +is setting a fix labelled 3, and applies it to all the particles. The calculation is running in +parallel as the option {mpi} is defined. + + +Two main outputs of the computed magnetic quntities can be performed. + +The first one is via a compute and a fix options. The compute command is defined as: + +compute A B C + +with A the label of this compute, B to which group of particles it is applied to, and finally, +the option {compute/spin} has to be set. +This compute is associated to a fix to define the output frequency and format. A typical command is: + +fix A B C D E F G H + +where A is the label of the fix, B the group of particles it is applied to, C defines the type of the +output fix, for example we chose to use {ave/time}, which can output every N timesteps, and perform +a time average over those steps. D, E, and F are the usual command of {ave/time}. G stands for the +magnetic quantities that are computed by {compute/spin}. Those quantities are: + +c_mag[1] Physical time (in ps) +c_mag[2] Magnetization along x (adim) +c_mag[3] Magnetization along y (adim) +c_mag[4] Magnetization along z (adim) +c_mag[5] Magnetization Norm (adim) +c_mag[6] Magnetic energy (in eV) +c_mag[7] Spin temperature (in K) + +And H stands for the output format, and is defined as in other . + +Example: +compute 1 all compute/spin +fix 3 all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] +file mag_output.dat format %20.16g + +is defining a compute of the magnetic quantities applied to all spins. The fix then outputs +every magnetic quantities every 10 time steps without performing any time average. These +quantities are stored in a file called mag_output.dat, with a special format (defined by %20.16g) + + +It is also possible to output the evolution of the spin configuration. This can be done with +the dump command. The only difference with a regular dump command is that the velocities +vi are replaced by the spin components spi. + +Example: +dump 1 all custom 100 dump_spin.lammpstrj type x y z spx spy spz + +is dumping every 100 timesteps the spin configuration in a file called dump_spin.lammpstrj. + + +:line + +:link(Antropov) +[(Antropov)] Antropov, Katsnelson, Harmon, Van Schilfgaarde, and Kusnezov, Phys Rev B, 54(2), 1019 (1996) + + diff --git a/examples/SPIN/in.BFO b/examples/SPIN/in.BFO new file mode 100644 index 0000000000..aee3454765 --- /dev/null +++ b/examples/SPIN/in.BFO @@ -0,0 +1,109 @@ +################### +#######Init######## +################### + +clear +#setting units to metal (Ang, picosecs, eV, ...): +units metal + +#setting dimension of the system (N=2 or 3): +dimension 3 + +#setting boundary conditions. (p for periodic, f for fixed, ...) +boundary p p f + +#setting atom_style to spin: +atom_style spin + +#Define sort for paramagnetic simulations (if no pair interaction) +#atom_modify sort 1000 4.0 + +#why? +atom_modify map array + +#newton off for pair spin in SEQNEI +#newton off off + +########################### +#######Create atoms######## +########################### + +#Lattice constant of sc Iron atoms of BFO +lattice sc 3.96 + +#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen +#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) +region box block 0.0 17.0 0.0 17.0 0.0 5.0 + +#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. +create_box 1 box + +#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... +#Entries: atom type, +create_atoms 1 box + +#Replicating NxNxN the entire set of atoms +#replicate 1 1 1 + + +####################### +#######Settings######## +####################### + +#Setting one or more properties of one or more atoms. +#Setting mass +mass 1 1.0 +#set group all mass 1.0 +#Setting spins orientation and moment +set group all spin/random 11 2.50 +#set group all spin 2.50 1.0 0.0 0.0 + +#Magnetic exchange interaction coefficient for bulk fcc Cobalt +pair_style pair/spin 5.7 +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +pair_coeff * * exchange 5.7 -0.01575 0.0 1.965 +#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) +#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 +#pair_coeff * * me 4.0 0.000109 1.0 1.0 1.0 +#Mex10 +pair_coeff * * me 4.0 0.00109 1.0 1.0 1.0 + +#Define a skin distance, update neigh list every +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 0.0 bin +neigh_modify every 1 check no delay 0 + +#Magnetic field fix +#Type | Intensity (T or eV) | Direction +#fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 +fix 1 all force/spin anisotropy 0.0000035 0.0 0.0 1.0 + +#Fix Langevin spins (merging damping and temperature) +#Temp | Alpha_trans | Alpha_long | Seed +#fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 0.0 0.1 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all nve/spin mpi + +#compute real time, total magnetization, magnetic energy, and spin temperature +#Iteration | Time | Mx | My | Mz | |M| | Em | Tm +compute mag all compute/spin +fix outmag all ave/time 1 1 500 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_BFO.dat format %20.16g + +#Setting the timestep for the simulation (in ps) +timestep 0.0001 + +################## +#######run######## +################## + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 5000 dump_spin_BFO.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +run 30000 +#run 1 + diff --git a/examples/SPIN/in.cobalt_SD b/examples/SPIN/in.cobalt_SD new file mode 100644 index 0000000000..c51c35ff73 --- /dev/null +++ b/examples/SPIN/in.cobalt_SD @@ -0,0 +1,126 @@ +################### +#######Init######## +################### + +clear +#setting units to metal (Ang, picosecs, eV, ...): +units metal + +#setting dimension of the system (N=2 or 3): +dimension 3 + +#setting boundary conditions. (p for periodic, f for fixed, ...) +boundary p p p +#boundary f f f + +#setting atom_style to spin: +atom_style spin + +#Define sort for paramagnetic simulations (if no pair interaction) +#atom_modify sort 1000 4.0 + +#why? +atom_modify map array + +#newton off for pair spin in SEQNEI +#newton off off + +########################### +#######Create atoms######## +########################### + +#Lattice constant of fcc Cobalt +lattice fcc 3.54 +#lattice sc 2.50 + +#Test Kagome +#variable a equal sqrt(3.0)/8.0 +#variable b equal 3.0*sqrt(3.0)/8.0 +#variable c equal sqrt(3.0)/4.0 + +#lattice custom 2.5 a1 1.0 0.0 0.0 & +# a2 0.0 1.0 0.0 & +# a3 0.0 0.0 1.0 & +# basis 0.0 $a 0.0 & +# basis 0.25 $a 0.0 & +# basis 0.375 0.0 0.0 & +# basis 0.25 $b 0.0 & +# basis 0.5 $b 0.0 & +# basis 0.625 $c 0.0 + +#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen +#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) +region box block 0.0 5.0 0.0 5.0 0.0 5.0 + +#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. +create_box 1 box + +#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... +#Entries: atom type, +create_atoms 1 box + +#Replicating NxNxN the entire set of atoms +#replicate 1 1 1 + + +####################### +#######Settings######## +####################### + +#Setting one or more properties of one or more atoms. +#Setting mass +mass 1 1.0 +#set group all mass 1.0 +#Setting spins orientation and moment +#set group all spin/random 11 1.72 +set group all spin 1.72 1.0 0.0 0.0 + +#Magnetic exchange interaction coefficient for bulk fcc Cobalt +pair_style pair/spin 4.0 +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) +#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 +#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 + +#Define a skin distance, update neigh list every +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 0.0 bin +neigh_modify every 1 check no delay 0 + +#Magnetic field fix +#Type | Intensity (T or eV) | Direction +fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 + +#Fix Langevin spins (merging damping and temperature) +#Temp | Alpha_trans | Alpha_long | Seed +#fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 1.0 0.1 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all nve/spin mpi + +#compute real time, total magnetization, magnetic energy, and spin temperature +#Iteration | Time | Mx | My | Mz | |M| | Em | Tm +compute mag all compute/spin +fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g + +#Setting the timestep for the simulation (in ps) +timestep 0.0001 + +################## +#######run######## +################## + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +run 2000 +#run 1 + diff --git a/examples/SPIN/in.cobalt_dev b/examples/SPIN/in.cobalt_dev new file mode 100644 index 0000000000..c51c35ff73 --- /dev/null +++ b/examples/SPIN/in.cobalt_dev @@ -0,0 +1,126 @@ +################### +#######Init######## +################### + +clear +#setting units to metal (Ang, picosecs, eV, ...): +units metal + +#setting dimension of the system (N=2 or 3): +dimension 3 + +#setting boundary conditions. (p for periodic, f for fixed, ...) +boundary p p p +#boundary f f f + +#setting atom_style to spin: +atom_style spin + +#Define sort for paramagnetic simulations (if no pair interaction) +#atom_modify sort 1000 4.0 + +#why? +atom_modify map array + +#newton off for pair spin in SEQNEI +#newton off off + +########################### +#######Create atoms######## +########################### + +#Lattice constant of fcc Cobalt +lattice fcc 3.54 +#lattice sc 2.50 + +#Test Kagome +#variable a equal sqrt(3.0)/8.0 +#variable b equal 3.0*sqrt(3.0)/8.0 +#variable c equal sqrt(3.0)/4.0 + +#lattice custom 2.5 a1 1.0 0.0 0.0 & +# a2 0.0 1.0 0.0 & +# a3 0.0 0.0 1.0 & +# basis 0.0 $a 0.0 & +# basis 0.25 $a 0.0 & +# basis 0.375 0.0 0.0 & +# basis 0.25 $b 0.0 & +# basis 0.5 $b 0.0 & +# basis 0.625 $c 0.0 + +#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen +#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) +region box block 0.0 5.0 0.0 5.0 0.0 5.0 + +#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. +create_box 1 box + +#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... +#Entries: atom type, +create_atoms 1 box + +#Replicating NxNxN the entire set of atoms +#replicate 1 1 1 + + +####################### +#######Settings######## +####################### + +#Setting one or more properties of one or more atoms. +#Setting mass +mass 1 1.0 +#set group all mass 1.0 +#Setting spins orientation and moment +#set group all spin/random 11 1.72 +set group all spin 1.72 1.0 0.0 0.0 + +#Magnetic exchange interaction coefficient for bulk fcc Cobalt +pair_style pair/spin 4.0 +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) +#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 +#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 + +#Define a skin distance, update neigh list every +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 0.0 bin +neigh_modify every 1 check no delay 0 + +#Magnetic field fix +#Type | Intensity (T or eV) | Direction +fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 + +#Fix Langevin spins (merging damping and temperature) +#Temp | Alpha_trans | Alpha_long | Seed +#fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 1.0 0.1 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all nve/spin mpi + +#compute real time, total magnetization, magnetic energy, and spin temperature +#Iteration | Time | Mx | My | Mz | |M| | Em | Tm +compute mag all compute/spin +fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g + +#Setting the timestep for the simulation (in ps) +timestep 0.0001 + +################## +#######run######## +################## + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +run 2000 +#run 1 + diff --git a/examples/SPIN/vmd_nano.vmd b/examples/SPIN/vmd_nano.vmd new file mode 100644 index 0000000000..6c3238e8d6 --- /dev/null +++ b/examples/SPIN/vmd_nano.vmd @@ -0,0 +1,79 @@ +proc vmd_draw_arrow {mol start end} { + set middle [vecadd $start [vecscale 0.9 [vecsub $end $start]]] + graphics $mol cylinder $start $middle radius 0.05 + graphics $mol cone $middle $end radius 0.01 color 3 +} + +proc vmd_draw_vector {args} { + set usage {"draw vector {x1 y1 z1} {x2 y2 z2} [scale ] [resolution ] [radius ] [filled ]"} + # defaults + set scale 3.0 + set res 5 + set radius 0.1 + set filled yes + + if {[llength $args] < 3} { + error "wrong # args: should be $usage" + } + set mol [lindex $args 0] + set center [lindex $args 1] + set vector [lindex $args 2] + if {[llength $center] != 3 || [llength $vector] != 3} { + error "wrong type of args: should be $usage" + } + + foreach {flag value} [lrange $args 3 end] { + switch -glob $flag { + scale {set scale $value} + res* {set res $value} + rad* {set radius $value} + fill* {set filled $value} + default {error "unknown option '$flag': should be $usage" } + } + } + + set vechalf [vecscale [expr $scale * 0.5] $vector] + return [list \ + [graphics $mol color yellow]\ + [graphics $mol cylinder [vecsub $center $vechalf]\ + [vecadd $center [vecscale 0.7 $vechalf]] \ + radius $radius resolution $res filled $filled] \ + [graphics $mol color orange]\ + [graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \ + [vecadd $center $vechalf] radius [expr $radius * 2.5] \ + resolution $res]] +} + +proc vmd_draw_spin {args} { + global molid + graphics $molid delete all + set frame [molinfo $molid get frame] + set natoms [molinfo $molid get numatoms] + for {set i 0} {$i < $natoms} {incr i} { + set sel [atomselect top "index $i"] +# set sel [atomselect top "index 1200"] + set coords [lindex [$sel get {x y z}] $molid] + set velocities [lindex [$sel get {vx vy vz}] $molid] + draw vector $coords $velocities + set uvx [lindex [$sel get {vx}] $molid] + set uvy [lindex [$sel get {vy}] $molid] + set uvz [lindex [$sel get {vz}] $molid] + $sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]] + $sel set user $uvy + #draw vector $coords {0.0 uvy 0.0} + } + #pbc box -color 3 +} + +proc enable_trace {} { + global vmd_frame + trace variable vmd_frame([molinfo top]) w vmd_draw_spin + } + +set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump_spin_T100.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] +scale by 0.5 +animate style Loop +enable_trace + + + From f5ff30df83a8c64048a56633f79a4b3408d239e9 Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 23 Aug 2017 11:22:31 -0600 Subject: [PATCH 035/675] Changes for coupling magnetomech: - hybrid_overlay friend with fix_nve_spin - modif of the allocation of pair classes in fix_nve_spin - modif input file for hybrid/overlay eam - spin/pair - new file for cobalt eam potentials --- Co_PurjaPun_2012.eam.alloy | 6006 ++++++++++++++++++++++++++++++++++++ examples/SPIN/in.kagome | 126 + in.co_magnetomech | 111 + in.cobalt | 19 - src/SPIN/fix_nve_spin.cpp | 61 +- src/SPIN/fix_nve_spin.h | 1 + src/SPIN/pair_spin.cpp | 7 +- src/pair_hybrid.h | 1 + vmd_nano.vmd | 2 +- 9 files changed, 6296 insertions(+), 38 deletions(-) create mode 100644 Co_PurjaPun_2012.eam.alloy create mode 100644 examples/SPIN/in.kagome create mode 100644 in.co_magnetomech diff --git a/Co_PurjaPun_2012.eam.alloy b/Co_PurjaPun_2012.eam.alloy new file mode 100644 index 0000000000..3af058baf7 --- /dev/null +++ b/Co_PurjaPun_2012.eam.alloy @@ -0,0 +1,6006 @@ +Cobalt EAM potential: G. P. Purja Pun and Y. Mishin, Phys. Rev. B xx, 004100 (2012) (in press) +Data below r = 1.5 A is extrapolated. F(Rho) data not extrapolated. +Created on Wed Sep 26 17:29:54 2012 +1 Co +10000 4.788742913000000e-04 10000 6.499539000000001e-04 6.499539000000000e+00 +27 5.893320000000000e+01 2.507000000000000e+00 hcp + -1.680303080000000e-02 -1.879913964471138e-02 -2.091739081044659e-02 -2.303564197615629e-02 -2.503175082079116e-02 + -2.681996612041136e-02 -2.846010103933253e-02 -3.003179469400266e-02 -3.154842562124295e-02 -3.300931506782415e-02 + -3.442381570000001e-02 -3.580233366714632e-02 -3.714945763166951e-02 -3.846832763111274e-02 -3.976210669053554e-02 + -4.103374908125148e-02 -4.228535107207521e-02 -4.351872320172212e-02 -4.473539109100971e-02 -4.593674531110434e-02 + -4.712392115246503e-02 -4.829795108118731e-02 -4.945971154662068e-02 -5.061001094949964e-02 -5.174954151284258e-02 + -5.287894548568519e-02 -5.399878139884967e-02 -5.510957102742049e-02 -5.621177284174523e-02 -5.730581735016625e-02 + -5.839208651773948e-02 -5.947094067448531e-02 -6.054270215356945e-02 -6.160767623453070e-02 -6.266613797925552e-02 + -6.371834880435967e-02 -6.476454576302854e-02 -6.580495483863194e-02 -6.683978209870683e-02 -6.786922452279202e-02 + -6.889346265426707e-02 -6.991266949659354e-02 -7.092700432972064e-02 -7.193662011890395e-02 -7.294165829413661e-02 + -7.394225494811188e-02 -7.493853635958479e-02 -7.593062425993033e-02 -7.691863200494162e-02 -7.790266905197404e-02 + -7.888283764021425e-02 -7.985923664258643e-02 -8.083195868513401e-02 -8.180109346997461e-02 -8.276672525040257e-02 + -8.372893572415932e-02 -8.468780181559693e-02 -8.564339820511864e-02 -8.659579537072190e-02 -8.754506181558984e-02 + -8.849126234605453e-02 -8.943446001410092e-02 -9.037471455117625e-02 -9.131208412841478e-02 -9.224662399623559e-02 + -9.317838801321032e-02 -9.410742739123597e-02 -9.503379209498646e-02 -9.595752974691800e-02 -9.687868684755546e-02 + -9.779730775191570e-02 -9.871343580120046e-02 -9.962711242685958e-02 -1.005383781439554e-01 -1.014472717117523e-01 + -1.023538310651938e-01 -1.032580925977369e-01 -1.041600919387366e-01 -1.050598632026273e-01 -1.059574398208095e-01 + -1.068528540074704e-01 -1.077461373458066e-01 -1.086373201122683e-01 -1.095264320028559e-01 -1.104135016985198e-01 + -1.112985573626335e-01 -1.121816261033156e-01 -1.130627345294291e-01 -1.139419083080692e-01 -1.148191726662944e-01 + -1.156945520127823e-01 -1.165680703406650e-01 -1.174397507992727e-01 -1.183096161572101e-01 -1.191776885039839e-01 + -1.200439895800373e-01 -1.209085404086571e-01 -1.217713616730546e-01 -1.226324734132936e-01 -1.234918953788508e-01 + -1.243496468000000e-01 -1.252057466264230e-01 -1.260602132046348e-01 -1.269130646065986e-01 -1.277643184092350e-01 + -1.286139919512837e-01 -1.294621021138015e-01 -1.303086655551642e-01 -1.311536985007052e-01 -1.319972169590798e-01 + -1.328392365052704e-01 -1.336797725161469e-01 -1.345188400098036e-01 -1.353564538215464e-01 -1.361926284143060e-01 + -1.370273780803152e-01 -1.378607168013910e-01 -1.386926583917836e-01 -1.395232163058920e-01 -1.403524038515728e-01 + -1.411802341103638e-01 -1.420067200256853e-01 -1.428318742148069e-01 -1.436557091565456e-01 -1.444782371020595e-01 + -1.452994701862315e-01 -1.461194203065015e-01 -1.469380992388567e-01 -1.477555185109162e-01 -1.485716895480879e-01 + -1.493866236153044e-01 -1.502003318703277e-01 -1.510128252027127e-01 -1.518241144121522e-01 -1.526342102070998e-01 + -1.534431232126203e-01 -1.542508638114616e-01 -1.550574422930448e-01 -1.558628688157988e-01 -1.566671534698807e-01 + -1.574703062033520e-01 -1.582723368973844e-01 -1.590732553076882e-01 -1.598730711132973e-01 -1.606717938120008e-01 + -1.614694328459875e-01 -1.622659976162905e-01 -1.630614974730487e-01 -1.638559416039789e-01 -1.646493391351259e-01 + -1.654416991082678e-01 -1.662330305252601e-01 -1.670233423125346e-01 -1.678126433512354e-01 -1.686009424167802e-01 + -1.693882482431861e-01 -1.701745695045948e-01 -1.709599148401449e-01 -1.717442928088396e-01 -1.725277119385885e-01 + -1.733101807130639e-01 -1.740917075837066e-01 -1.748723009172683e-01 -1.756519690655456e-01 -1.764307204052008e-01 + -1.772085632840185e-01 -1.779855059094047e-01 -1.787615564692287e-01 -1.795367232135896e-01 -1.803110143830451e-01 + -1.810844381177561e-01 -1.818570025406103e-01 -1.826287158057983e-01 -1.833995860626770e-01 -1.841696214099643e-01 + -1.849388299454831e-01 -1.857072198141128e-01 -1.864747991526175e-01 -1.872415760182443e-01 -1.880075584641173e-01 + -1.887727546063884e-01 -1.895371725773110e-01 -1.903008205105196e-01 -1.910637065418589e-01 -1.918258388146347e-01 + -1.925872254807121e-01 -1.933478747187342e-01 -1.941077947209150e-01 -1.948669937069724e-01 -1.956254799127480e-01 + -1.963832616110719e-01 -1.971403470967068e-01 -1.978967447151567e-01 -1.986524628291068e-01 -1.994075098192274e-01 + -2.001618941005484e-01 -2.009156242075518e-01 -2.016687086990372e-01 -2.024211561116226e-01 -2.031729750127928e-01 + -2.039241741156804e-01 -2.046747621691974e-01 -2.054247479197256e-01 -2.061741401521784e-01 -2.069229478081280e-01 + -2.076711798806499e-01 -2.084188454121736e-01 -2.091659534755806e-01 -2.099125132162076e-01 -2.106585338443872e-01 + -2.114040247579823e-01 -2.121489953974893e-01 -2.128934551864067e-01 -2.136374136027109e-01 -2.143808803592873e-01 + -2.151238652468154e-01 -2.158663781322411e-01 -2.166084289346303e-01 -2.173500277052638e-01 -2.180911845646947e-01 + -2.188319097783510e-01 -2.195722136949507e-01 -2.203121068514981e-01 -2.210515998518519e-01 -2.217907033790026e-01 + -2.225294282016381e-01 -2.232677853521022e-01 -2.240057859531163e-01 -2.247434412252567e-01 -2.254807624804862e-01 + -2.262177612984613e-01 -2.269544493586047e-01 -2.276908384717110e-01 -2.284269405581227e-01 -2.291627678450005e-01 + -2.298983326532392e-01 -2.306336473718499e-01 -2.313687245044682e-01 -2.321035769451089e-01 -2.328382177230701e-01 + -2.335726600184018e-01 -2.343069171312917e-01 -2.350410026917230e-01 -2.357749304696442e-01 -2.365087144650665e-01 + -2.372423688046511e-01 -2.379759078915950e-01 -2.387093462817347e-01 -2.394426988649284e-01 -2.401759806938325e-01 + -2.409092071382775e-01 -2.416423937275558e-01 -2.423755563116356e-01 -2.431087109081851e-01 -2.438418738849959e-01 + -2.445750618045980e-01 -2.453082916583512e-01 -2.460415806101058e-01 -2.467749460848467e-01 -2.475084057095742e-01 + -2.482419776582159e-01 -2.489756803241430e-01 -2.497095324315720e-01 -2.504435529132133e-01 -2.511777612049070e-01 + -2.519121769824342e-01 -2.526468203782122e-01 -2.533817117688987e-01 -2.541168720514789e-01 -2.548523223627430e-01 + -2.555880842783758e-01 -2.563241796571988e-01 -2.570606310516858e-01 -2.577974612919421e-01 -2.585346936249472e-01 + -2.592723515924181e-01 -2.600104594981498e-01 -2.607490419576605e-01 -2.614881240712832e-01 -2.622277312727207e-01 + -2.629678898443362e-01 -2.637086264051527e-01 -2.644499680721714e-01 -2.651919423187013e-01 -2.659345775453039e-01 + -2.666779025531186e-01 -2.674219468183432e-01 -2.681667401972407e-01 -2.689123133912765e-01 -2.696586975492495e-01 + -2.704059247640904e-01 -2.711540275538941e-01 -2.719030391932789e-01 -2.726529934197978e-01 -2.734039250662187e-01 + -2.741558694758598e-01 -2.749088629390239e-01 -2.756629422674556e-01 -2.764181454116789e-01 -2.771745108563868e-01 + -2.779320780841674e-01 -2.786908871694924e-01 -2.794509795564719e-01 -2.802123972949423e-01 -2.809751834880072e-01 + -2.817393818716988e-01 -2.825050376604960e-01 -2.832721967688652e-01 -2.840409064327807e-01 -2.848112145951165e-01 + -2.855831707048412e-01 -2.863568249759762e-01 -2.871322291766564e-01 -2.879094358829076e-01 -2.886884993482028e-01 + -2.894694746623641e-01 -2.902524185831628e-01 -2.910373887617654e-01 -2.918244447549689e-01 -2.926136470970381e-01 + -2.934050583264800e-01 -2.941987419693519e-01 -2.949947634976693e-01 -2.957931894604184e-01 -2.965940887685082e-01 + -2.973975314584912e-01 -2.982035897075678e-01 -2.990123368838905e-01 -2.998238489787670e-01 -3.006382032814213e-01 + -3.014554796495834e-01 -3.022757592753754e-01 -3.030991261199829e-01 -3.039256655881672e-01 -3.047554660899296e-01 + -3.055886175640754e-01 -3.064252130593845e-01 -3.072653472379187e-01 -3.081091181048918e-01 -3.089566254021406e-01 + -3.098079724748395e-01 -3.106632645082006e-01 -3.115226104442510e-01 -3.123861211846884e-01 -3.132539117130802e-01 + -3.141260990998875e-01 -3.150028046812773e-01 -3.158841520361693e-01 -3.167702694487885e-01 -3.176612875689104e-01 + -3.185573418032087e-01 -3.194585700942650e-01 -3.203651157713922e-01 -3.212771249044592e-01 -3.221947491388281e-01 + -3.231181430183639e-01 -3.240474671054514e-01 -3.249828850672117e-01 -3.259245669711927e-01 -3.268726862299913e-01 + -3.278274232359761e-01 -3.287889619469540e-01 -3.297574936027157e-01 -3.307332132733838e-01 -3.317163240684192e-01 + -3.327070332351553e-01 -3.337055565330767e-01 -3.347121141277095e-01 -3.357269352965953e-01 -3.367502540927247e-01 + -3.377823145588749e-01 -3.388233658450175e-01 -3.398736675401181e-01 -3.409334847493447e-01 -3.420030942036733e-01 + -3.430827786115977e-01 -3.441728329658748e-01 -3.452735586625544e-01 -3.463852704265985e-01 -3.475082899277179e-01 + -3.486429532857090e-01 -3.497896041380748e-01 -3.509486017430585e-01 -3.521203134619261e-01 -3.533051234472958e-01 + -3.545034246605078e-01 -3.557156285064298e-01 -3.569421559513399e-01 -3.581834477636310e-01 -3.594399550688090e-01 + -3.607121506187135e-01 -3.620005184199024e-01 -3.633055658714727e-01 -3.646278119965309e-01 -3.659677989216845e-01 + -3.673260803339768e-01 -3.687032330586966e-01 -3.700998457090232e-01 -3.715165309114429e-01 -3.729539131544640e-01 + -3.744126403613781e-01 -3.758933720658462e-01 -3.773967908082255e-01 -3.789235902651524e-01 -3.804744856516886e-01 + -3.820502023195389e-01 -3.836514846285581e-01 -3.852790856353807e-01 -3.869337741756033e-01 -3.886163256972291e-01 + -3.903275263189269e-01 -3.920681658458204e-01 -3.938390381581898e-01 -3.956409370872805e-01 -3.974746521930466e-01 + -3.993409682701225e-01 -4.012406553231547e-01 -4.031744727439548e-01 -4.051431522629808e-01 -4.071474082130475e-01 + -4.091879129977703e-01 -4.112653138348391e-01 -4.133801991274390e-01 -4.155331235094092e-01 -4.177245653517079e-01 + -4.199549603385881e-01 -4.222246496703586e-01 -4.245339230260172e-01 -4.268829584832519e-01 -4.292718744431503e-01 + -4.317006622016948e-01 -4.341692468068394e-01 -4.366774154195978e-01 -4.392248845800756e-01 -4.418112262316757e-01 + -4.444359401252420e-01 -4.470983818380713e-01 -4.497978365893122e-01 -4.525334523390530e-01 -4.553043120100788e-01 + -4.581093756350076e-01 -4.609475466791835e-01 -4.638176252290113e-01 -4.667183660407072e-01 -4.696484459287199e-01 + -4.726065094563343e-01 -4.755911501239359e-01 -4.786009429283761e-01 -4.816344399152602e-01 -4.846901882843556e-01 + -4.877667388033212e-01 -4.908626497957108e-01 -4.939765062407663e-01 -4.971069114027755e-01 -5.002525150305011e-01 + -5.034119937007041e-01 -5.065840848176727e-01 -5.097675587133593e-01 -5.129612566028576e-01 -5.161640565945169e-01 + -5.193749134865747e-01 -5.225928209640586e-01 -5.258168515692775e-01 -5.290461169135583e-01 -5.322798060270272e-01 + -5.355171460831645e-01 -5.387574394100244e-01 -5.420000245805213e-01 -5.452443099924439e-01 -5.484897376520451e-01 + -5.517358141745681e-01 -5.549820769247875e-01 -5.582281216566209e-01 -5.614735718423751e-01 -5.647181034387753e-01 + -5.679614169890416e-01 -5.712032588979591e-01 -5.744433972991336e-01 -5.776816413798681e-01 -5.809178193507762e-01 + -5.841517944620215e-01 -5.873834463985003e-01 -5.906126855444893e-01 -5.938394364748391e-01 -5.970636498273136e-01 + -6.002852884426439e-01 -6.035043379105128e-01 -6.067207941645156e-01 -6.099346717649501e-01 -6.131459940881434e-01 + -6.163548011478311e-01 -6.195611404873568e-01 -6.227650731310865e-01 -6.259666663617727e-01 -6.291659990146931e-01 + -6.323631552654742e-01 -6.355582290986170e-01 -6.387513188871106e-01 -6.419425307490256e-01 -6.451319745539882e-01 + -6.483197674327603e-01 -6.515060293214946e-01 -6.546908841167685e-01 -6.578744572836812e-01 -6.610568766009968e-01 + -6.642382709221243e-01 -6.674187710853904e-01 -6.705985088370179e-01 -6.737776175698923e-01 -6.769562312911304e-01 + -6.801344848181089e-01 -6.833125134999645e-01 -6.864904540026142e-01 -6.896684434132225e-01 -6.928466191871651e-01 + -6.960251190039876e-01 -6.992040810717012e-01 -7.023836437724149e-01 -7.055639456561626e-01 -7.087451254024176e-01 + -7.119273220404884e-01 -7.151106745784721e-01 -7.182953215897911e-01 -7.214814016245582e-01 -7.246690535743215e-01 + -7.278584163200112e-01 -7.310496283586513e-01 -7.342428280442573e-01 -7.374381535427195e-01 -7.406357429444993e-01 + -7.438357342264661e-01 -7.470382651689156e-01 -7.502434728794412e-01 -7.534514943101106e-01 -7.566624664635970e-01 + -7.598765262236051e-01 -7.630938099473661e-01 -7.663144537782537e-01 -7.695385935306881e-01 -7.727663648349232e-01 + -7.759979029135046e-01 -7.792333428394971e-01 -7.824728194957561e-01 -7.857164675195603e-01 -7.889644207560909e-01 + -7.922168128628783e-01 -7.954737775389469e-01 -7.987354483417761e-01 -8.020019582211745e-01 -8.052734399002169e-01 + -8.085500258027153e-01 -8.118318481538471e-01 -8.151190386835121e-01 -8.184117289678831e-01 -8.217100504635063e-01 + -8.250141343769457e-01 -8.283241110344656e-01 -8.316401105683494e-01 -8.349622632152548e-01 -8.382906990624389e-01 + -8.416255474951805e-01 -8.449669376504778e-01 -8.483149983741850e-01 -8.516698583310095e-01 -8.550316457522134e-01 + -8.584004886419279e-01 -8.617765145292081e-01 -8.651598508088844e-01 -8.685506248139727e-01 -8.719489622521989e-01 + -8.753549823919468e-01 -8.787687997490927e-01 -8.821905162688262e-01 -8.856202278084699e-01 -8.890580184445617e-01 + -8.925039663319011e-01 -8.959581377191167e-01 -8.994205926453692e-01 -9.028913782181163e-01 -9.063705352609543e-01 + -9.098580923937473e-01 -9.133540718558304e-01 -9.168584825681617e-01 -9.203713268261465e-01 -9.238925937413506e-01 + -9.274222656928153e-01 -9.309603113133150e-01 -9.345066924037853e-01 -9.380613571840678e-01 -9.416242468397124e-01 + -9.451952880001965e-01 -9.487744002152808e-01 -9.523614892719469e-01 -9.559564538973973e-01 -9.595591783425093e-01 + -9.631695396882074e-01 -9.667874008119273e-01 -9.704126174878044e-01 -9.740450312802591e-01 -9.776844767743714e-01 + -9.813307748475731e-01 -9.849837394560669e-01 -9.886431705787867e-01 -9.923088615430331e-01 -9.959805930468456e-01 + -9.996581394281877e-01 -1.003341262213973e+00 -1.007029716826452e+00 -1.010723247080268e+00 -1.014421591236032e+00 + -1.018124476945841e+00 -1.021831626529500e+00 -1.025542751586175e+00 -1.029257558992056e+00 -1.032975747452084e+00 + -1.036697011770175e+00 -1.040421039317395e+00 -1.044147513860548e+00 -1.047876112182243e+00 -1.051606508161453e+00 + -1.055338371046766e+00 -1.059071368055605e+00 -1.062805162911107e+00 -1.066539417837194e+00 -1.070273792555226e+00 + -1.074007946119602e+00 -1.077741537419413e+00 -1.081474225260823e+00 -1.085205668283577e+00 -1.088935525821090e+00 + -1.092663460147868e+00 -1.096389134999202e+00 -1.100112217012435e+00 -1.103832374788097e+00 -1.107549281877421e+00 + -1.111262614364874e+00 -1.114972053517157e+00 -1.118677283811066e+00 -1.122377997381517e+00 -1.126073890115035e+00 + -1.129764665246453e+00 -1.133450029987863e+00 -1.137129700112097e+00 -1.140803395884355e+00 -1.144470846978575e+00 + -1.148131787996958e+00 -1.151785963846005e+00 -1.155433124321719e+00 -1.159073028473816e+00 -1.162705440550504e+00 + -1.166330136340245e+00 -1.169946897198408e+00 -1.173555515207745e+00 -1.177155787675114e+00 -1.180747522076412e+00 + -1.184330531453910e+00 -1.187904640946331e+00 -1.191469681045491e+00 -1.195025491559137e+00 -1.198571917630371e+00 + -1.202108816427798e+00 -1.205636050425976e+00 -1.209153491297797e+00 -1.212661015717853e+00 -1.216158511169199e+00 + -1.219645870103956e+00 -1.223122994042052e+00 -1.226589789250444e+00 -1.230046171916402e+00 -1.233492062734542e+00 + -1.236927390508550e+00 -1.240352088211073e+00 -1.243766097381527e+00 -1.247169363751694e+00 -1.250561841256042e+00 + -1.253943487695246e+00 -1.257314268132119e+00 -1.260674151007197e+00 -1.264023111009775e+00 -1.267361126327042e+00 + -1.270688182889021e+00 -1.274004269717549e+00 -1.277309380458899e+00 -1.280603511471348e+00 -1.283886665336751e+00 + -1.287158847447705e+00 -1.290420068216200e+00 -1.293670340397085e+00 -1.296909681097245e+00 -1.300138109654688e+00 + -1.303355649979877e+00 -1.306562327924205e+00 -1.309758172530325e+00 -1.312943214678930e+00 -1.316117489411603e+00 + -1.319281033477409e+00 -1.322433886294459e+00 -1.325576088655014e+00 -1.328707684178879e+00 -1.331828717822939e+00 + -1.334939237064845e+00 -1.338039290534788e+00 -1.341128928952336e+00 -1.344208204044806e+00 -1.347277169481128e+00 + -1.350335879836220e+00 -1.353384391367341e+00 -1.356422761075585e+00 -1.359451047255056e+00 -1.362469308854003e+00 + -1.365477606144248e+00 -1.368475999956682e+00 -1.371464552034891e+00 -1.374443324607048e+00 -1.377412380926959e+00 + -1.380371784452904e+00 -1.383321598435415e+00 -1.386261886043311e+00 -1.389192710326296e+00 -1.392114134331963e+00 + -1.395026221218571e+00 -1.397929034013782e+00 -1.400822635112213e+00 -1.403707086730599e+00 -1.406582451007194e+00 + -1.409448790047375e+00 -1.412306165903488e+00 -1.415154640386279e+00 -1.417994274393129e+00 -1.420825128672226e+00 + -1.423647264288326e+00 -1.426460742270041e+00 -1.429265623184807e+00 -1.432061967292326e+00 -1.434849834082543e+00 + -1.437629282863016e+00 -1.440400372981510e+00 -1.443163163644870e+00 -1.445917713456040e+00 -1.448664080745027e+00 + -1.451402323353998e+00 -1.454132498983212e+00 -1.456854665253158e+00 -1.459568879518891e+00 -1.462275198153495e+00 + -1.464973677286479e+00 -1.467664373054985e+00 -1.470347341460922e+00 -1.473022637957602e+00 -1.475690317602213e+00 + -1.478350434416031e+00 -1.481003042251009e+00 -1.483648195317718e+00 -1.486285947650543e+00 -1.488916352220507e+00 + -1.491539461636770e+00 -1.494155328124374e+00 -1.496764003712290e+00 -1.499365540029296e+00 -1.501959988475343e+00 + -1.504547399935251e+00 -1.507127824972320e+00 -1.509701313378898e+00 -1.512267914702716e+00 -1.514827678283996e+00 + -1.517380653263305e+00 -1.519926888190102e+00 -1.522466431291609e+00 -1.524999330097196e+00 -1.527525631932397e+00 + -1.530045384005255e+00 -1.532558633226744e+00 -1.535065425437065e+00 -1.537565806237489e+00 -1.540059821344337e+00 + -1.542547516227056e+00 -1.545028935252552e+00 -1.547504122520188e+00 -1.549973122161691e+00 -1.552435978060152e+00 + -1.554892733071735e+00 -1.557343429814709e+00 -1.559788110982664e+00 -1.562226819032855e+00 -1.564659595401864e+00 + -1.567086481207361e+00 -1.569507517312065e+00 -1.571922744465970e+00 -1.574332203223133e+00 -1.576735933784567e+00 + -1.579133975135047e+00 -1.581526366095511e+00 -1.583913146047792e+00 -1.586294354132112e+00 -1.588670027961349e+00 + -1.591040204840321e+00 -1.593404922368944e+00 -1.595764217997401e+00 -1.598118128281829e+00 -1.600466689560657e+00 + -1.602809938195509e+00 -1.605147910317183e+00 -1.607480641109968e+00 -1.609808165462235e+00 -1.612130518025190e+00 + -1.614447733364541e+00 -1.616759845941160e+00 -1.619066889913862e+00 -1.621368898338053e+00 -1.623665904067572e+00 + -1.625957940253400e+00 -1.628245039905108e+00 -1.630527235169479e+00 -1.632804557955816e+00 -1.635077040086276e+00 + -1.637344713164072e+00 -1.639607608003776e+00 -1.641865755216986e+00 -1.644119185392045e+00 -1.646367929030376e+00 + -1.648612016308968e+00 -1.650851477080719e+00 -1.653086340226579e+00 -1.655316634503563e+00 -1.657542389144867e+00 + -1.659763633269537e+00 -1.661980395063818e+00 -1.664192702419508e+00 -1.666400582983419e+00 -1.668604064251645e+00 + -1.670803173362428e+00 -1.672997937236383e+00 -1.675188382281491e+00 -1.677374534802169e+00 -1.679556421201192e+00 + -1.681734067628149e+00 -1.683907499121518e+00 -1.686076740528519e+00 -1.688241817042459e+00 -1.690402753749855e+00 + -1.692559574964003e+00 -1.694712304797627e+00 -1.696860967334408e+00 -1.699005586454806e+00 -1.701146185255449e+00 + -1.703282786721620e+00 -1.705415414177082e+00 -1.707544090831449e+00 -1.709668839099297e+00 -1.711789681156861e+00 + -1.713906639022084e+00 -1.716019734585396e+00 -1.718128989385494e+00 -1.720234424849230e+00 -1.722336062307809e+00 + -1.724433922917529e+00 -1.726528027230686e+00 -1.728618395721282e+00 -1.730705049154116e+00 -1.732788008101886e+00 + -1.734867292078088e+00 -1.736942920442919e+00 -1.739014913002594e+00 -1.741083289547465e+00 -1.743148069358425e+00 + -1.745209271450225e+00 -1.747266914282488e+00 -1.749321016270471e+00 -1.751371596207075e+00 -1.753418672811714e+00 + -1.755462264132180e+00 -1.757502388000569e+00 -1.759539062057792e+00 -1.761572303881055e+00 -1.763602130983907e+00 + -1.765628560778196e+00 -1.767651610332621e+00 -1.769671296580689e+00 -1.771687636258316e+00 -1.773700645994041e+00 + -1.775710342184503e+00 -1.777716741146727e+00 -1.779719859111176e+00 -1.781719712181211e+00 -1.783716316038327e+00 + -1.785709686327057e+00 -1.787699838965949e+00 -1.789686789700248e+00 -1.791670553307960e+00 -1.793651144443631e+00 + -1.795628578235185e+00 -1.797602869852874e+00 -1.799574034162875e+00 -1.801542085839167e+00 -1.803507039091021e+00 + -1.805468908052258e+00 -1.807427707019619e+00 -1.809383450209764e+00 -1.811336151356113e+00 -1.813285824110837e+00 + -1.815232482284336e+00 -1.817176139592257e+00 -1.819116809213001e+00 -1.821054504262256e+00 -1.822989238142106e+00 + -1.824921024174149e+00 -1.826849875071642e+00 -1.828775803432498e+00 -1.830698822001605e+00 -1.832618943490715e+00 + -1.834536180332052e+00 -1.836450544855570e+00 -1.838362049261658e+00 -1.840270705693083e+00 -1.842176526191684e+00 + -1.844079522732226e+00 -1.845979707122125e+00 -1.847877091069540e+00 -1.849771686052976e+00 -1.851663503515020e+00 + -1.853552554984233e+00 -1.855438851906239e+00 -1.857322405308933e+00 -1.859203226114476e+00 -1.861081325239847e+00 + -1.862956713608023e+00 -1.864829402171162e+00 -1.866699401811557e+00 -1.868566723102871e+00 -1.870431376467943e+00 + -1.872293372034969e+00 -1.874152719980291e+00 -1.876009430967454e+00 -1.877863515541558e+00 -1.879714983286677e+00 + -1.881563843740828e+00 -1.883410107218835e+00 -1.885253783963326e+00 -1.887094883151373e+00 -1.888933413891583e+00 + -1.890769386084288e+00 -1.892602809677417e+00 -1.894433694017575e+00 -1.896262048252058e+00 -1.898087881332244e+00 + -1.899911202238771e+00 -1.901732020265218e+00 -1.903550344662578e+00 -1.905366184198560e+00 -1.907179547502340e+00 + -1.908990443132265e+00 -1.910798879695625e+00 -1.912604866066330e+00 -1.914408411061036e+00 -1.916209523000752e+00 + -1.918008210058423e+00 -1.919804480310377e+00 -1.921598341888620e+00 -1.923389803244497e+00 -1.925178872754823e+00 + -1.926965558178970e+00 -1.928749867237572e+00 -1.930531808113790e+00 -1.932311388923252e+00 -1.934088617048956e+00 + -1.935863499807747e+00 -1.937636044984464e+00 -1.939406260367225e+00 -1.941174153289245e+00 -1.942939731044444e+00 + -1.944703001224463e+00 -1.946463971324967e+00 -1.948222648160018e+00 -1.949979038559213e+00 -1.951733150095908e+00 + -1.953484990331042e+00 -1.955234566032130e+00 -1.956981883796339e+00 -1.958726950332857e+00 -1.960469772453529e+00 + -1.962210357268799e+00 -1.963948711773954e+00 -1.965684842205069e+00 -1.967418754747339e+00 -1.969150456141664e+00 + -1.970879953151972e+00 -1.972607252078582e+00 -1.974332359180596e+00 -1.976055281015821e+00 -1.977776024078765e+00 + -1.979494594312026e+00 -1.981210997612849e+00 -1.982925240248993e+00 -1.984637328483028e+00 -1.986347268186276e+00 + -1.988055065135925e+00 -1.989760725123873e+00 -1.991464254028801e+00 -1.993165658061782e+00 -1.994864943305917e+00 + -1.996562115000000e+00 -1.998257178352118e+00 -1.999950139291834e+00 -2.001641003786081e+00 -2.003329777229788e+00 + -2.005016464899233e+00 -2.006701072168050e+00 -2.008383604435580e+00 -2.010064067106614e+00 -2.011742465557514e+00 + -2.013418805045480e+00 -2.015093090790721e+00 -2.016765327984645e+00 -2.018435521788566e+00 -2.020103677272243e+00 + -2.021769799450648e+00 -2.023433893211152e+00 -2.025095963440481e+00 -2.026756015150358e+00 -2.028414053372033e+00 + -2.030070083089858e+00 -2.031724109167109e+00 -2.033376136029651e+00 -2.035026168111125e+00 -2.036674210313675e+00 + -2.038320267543339e+00 -2.039964344253219e+00 -2.041606444873179e+00 -2.043246574193053e+00 -2.044884736927830e+00 + -2.046520937133174e+00 -2.048155178894251e+00 -2.049787467073582e+00 -2.051417806490505e+00 -2.053046201014273e+00 + -2.054672654449746e+00 -2.056297171294283e+00 -2.057919756136151e+00 -2.059540413234731e+00 -2.061159146675282e+00 + -2.062775960175462e+00 -2.064390857518372e+00 -2.066003843116474e+00 -2.067614921377108e+00 -2.069224096057763e+00 + -2.070831370870978e+00 -2.072436749999330e+00 -2.074040237602111e+00 -2.075641837275425e+00 -2.077241552544816e+00 + -2.078839387216755e+00 -2.080435345153352e+00 -2.082029430158359e+00 -2.083621645967183e+00 -2.085211996100236e+00 + -2.086800484128769e+00 -2.088387114042385e+00 -2.089971889736969e+00 -2.091554814315162e+00 -2.093135890870968e+00 + -2.094715123257078e+00 -2.096292515329556e+00 -2.097868070199266e+00 -2.099441790929908e+00 -2.101013681141721e+00 + -2.102583744473837e+00 -2.104151984084442e+00 -2.105718403103298e+00 -2.107283005027429e+00 -2.108845793364375e+00 + -2.110406771296459e+00 -2.111965941910842e+00 -2.113523308239219e+00 -2.115078873308544e+00 -2.116632640182243e+00 + -2.118184611994434e+00 -2.119734792125529e+00 -2.121283183887100e+00 -2.122829790069075e+00 -2.124374613416041e+00 + -2.125917657012881e+00 -2.127458923984833e+00 -2.128998417278243e+00 -2.130536139767974e+00 -2.132072094221826e+00 + -2.133606283403289e+00 -2.135138710165668e+00 -2.136669377406417e+00 -2.138198288109766e+00 -2.139725445172409e+00 + -2.141250851054121e+00 -2.142774508270670e+00 -2.144296419998729e+00 -2.145816589318136e+00 -2.147335018260493e+00 + -2.148851708859426e+00 -2.150366664204882e+00 -2.151879887475646e+00 -2.153391381149525e+00 -2.154901147551277e+00 + -2.156409189094421e+00 -2.157915508301146e+00 -2.159420108039566e+00 -2.160922991060322e+00 -2.162424159298261e+00 + -2.163923614721020e+00 -2.165421360243191e+00 -2.166917398765767e+00 -2.168411732188371e+00 -2.169904362385663e+00 + -2.171395292133801e+00 -2.172884524283159e+00 -2.174372061079477e+00 -2.175857904621596e+00 -2.177342057025400e+00 + -2.178824520458782e+00 -2.180305297280612e+00 -2.181784389836284e+00 -2.183261800226323e+00 -2.184737530553230e+00 + -2.186211583172279e+00 -2.187683960396664e+00 -2.189154664118480e+00 -2.190623696232450e+00 -2.192091059064924e+00 + -2.193556754973807e+00 -2.195020786011611e+00 -2.196483154140098e+00 -2.197943861263397e+00 -2.199402909290797e+00 + -2.200860300209873e+00 -2.202316036078389e+00 -2.203770119156592e+00 -2.205222551620105e+00 -2.206673335103553e+00 + -2.208122471221687e+00 -2.209569962050753e+00 -2.211015809743800e+00 -2.212460016299604e+00 -2.213902583604158e+00 + -2.215343513246597e+00 -2.216782806815468e+00 -2.218220466193829e+00 -2.219656493330310e+00 -2.221090890141300e+00 + -2.222523658493742e+00 -2.223954800089009e+00 -2.225384316635711e+00 -2.226812210036953e+00 -2.228238482128524e+00 + -2.229663134282465e+00 -2.231086167933421e+00 -2.232507585230206e+00 -2.233927388263609e+00 -2.235345578178182e+00 + -2.236762156112363e+00 -2.238177124126393e+00 -2.239590484325721e+00 -2.241002238074839e+00 -2.242412386688506e+00 + -2.243820932023517e+00 -2.245227875877045e+00 -2.246633219265731e+00 -2.248036963296034e+00 -2.249439110214208e+00 + -2.250839662216949e+00 -2.252238620162919e+00 -2.253635984842608e+00 -2.255031758111861e+00 -2.256425941987018e+00 + -2.257818538061035e+00 -2.259209547728066e+00 -2.260598972010440e+00 -2.261986811976363e+00 -2.263373069249392e+00 + -2.264757745520950e+00 -2.266140842198597e+00 -2.267522360622610e+00 -2.268902302148032e+00 -2.270280668153553e+00 + -2.271657460097697e+00 -2.273032679375423e+00 -2.274406327047590e+00 -2.275778404191426e+00 -2.277148912283742e+00 + -2.278517852852843e+00 -2.279885227233438e+00 -2.281251036662961e+00 -2.282615282183361e+00 -2.283977964870765e+00 + -2.285339086133513e+00 -2.286698647429660e+00 -2.288056650083893e+00 -2.289413095312870e+00 -2.290767984034498e+00 + -2.292121317209354e+00 -2.293473096267451e+00 -2.294823322630535e+00 -2.296171997217860e+00 -2.297519120939147e+00 + -2.298864695168495e+00 -2.300208721271999e+00 -2.301551200119357e+00 -2.302892132586471e+00 -2.304231520070443e+00 + -2.305569363951571e+00 -2.306905665021753e+00 -2.308240424043668e+00 -2.309573642251534e+00 -2.310905320943594e+00 + -2.312235461202651e+00 -2.313564064009707e+00 -2.314891130153991e+00 -2.316216660462560e+00 -2.317540656105554e+00 + -2.318863118293744e+00 -2.320184048057342e+00 -2.321503446385586e+00 -2.322821314284393e+00 -2.324137652689092e+00 + -2.325452462235987e+00 -2.326765743634779e+00 -2.328077498187803e+00 -2.329387727168217e+00 -2.330696431139842e+00 + -2.332003610675342e+00 -2.333309267092103e+00 -2.334613401701304e+00 -2.335916015044585e+00 -2.337217107588464e+00 + -2.338516680268511e+00 -2.339814734134101e+00 -2.341111270220800e+00 -2.342406289434137e+00 -2.343699792173311e+00 + -2.344991778936741e+00 -2.346282251126043e+00 -2.347571210092017e+00 -2.348858656078995e+00 -2.350144589310363e+00 + -2.351429011032167e+00 -2.352711922533504e+00 -2.353993324252988e+00 -2.355273216536063e+00 -2.356551600205969e+00 + -2.357828476165661e+00 -2.359103845159169e+00 -2.360377707896761e+00 -2.361650065112589e+00 -2.362920917562625e+00 + -2.364190266066228e+00 -2.365458111389245e+00 -2.366724454020086e+00 -2.367989294422349e+00 -2.369252633237819e+00 + -2.370514471195048e+00 -2.371774809191487e+00 -2.373033648052395e+00 -2.374290988145372e+00 -2.375546829856004e+00 + -2.376801174099476e+00 -2.378054021758188e+00 -2.379305373053798e+00 -2.380555228228685e+00 -2.381803588268867e+00 + -2.383050454170042e+00 -2.384295826222999e+00 -2.385539704659158e+00 -2.386782090177350e+00 -2.388022983519428e+00 + -2.389262385131917e+00 -2.390500295440986e+00 -2.391736715086700e+00 -2.392971644747536e+00 -2.394205085041701e+00 + -2.395437036486230e+00 -2.396667499253712e+00 -2.397896473568759e+00 -2.399123960208524e+00 -2.400349959968320e+00 + -2.401574473163553e+00 -2.402797500049246e+00 -2.404019041118798e+00 -2.405239096931802e+00 -2.406457668074259e+00 + -2.407674755052769e+00 -2.408890358029935e+00 -2.410104477201394e+00 -2.411317113238899e+00 -2.412528266823138e+00 + -2.413737938194389e+00 -2.414946127524263e+00 -2.416152835150093e+00 -2.417358061488310e+00 -2.418561807106014e+00 + -2.419764072540869e+00 -2.420964858062149e+00 -2.422164163883997e+00 -2.423361990268478e+00 -2.424558337539998e+00 + -2.425753206224426e+00 -2.426946596778449e+00 -2.428138509180588e+00 -2.429328943436301e+00 -2.430517900136966e+00 + -2.431705379929064e+00 -2.432891383093559e+00 -2.434075909789072e+00 -2.435258960050367e+00 -2.436440534002261e+00 + -2.437620632253666e+00 -2.438799255363957e+00 -2.439976403210287e+00 -2.441152075652963e+00 -2.442326273167121e+00 + -2.443498996281469e+00 -2.444670245124171e+00 -2.445840019720089e+00 -2.447008320081434e+00 -2.448175146330043e+00 + -2.449340499038912e+00 -2.450504378726154e+00 -2.451666785239187e+00 -2.452827718349615e+00 -2.453987178196479e+00 + -2.455145165027037e+00 -2.456301679153984e+00 -2.457456720843679e+00 -2.458610290111703e+00 -2.459762386895362e+00 + -2.460913011069636e+00 -2.462062162618941e+00 -2.463209842027783e+00 -2.464356049701044e+00 -2.465500785225038e+00 + -2.466644048210323e+00 -2.467785839182998e+00 -2.468926158651886e+00 -2.470065006141172e+00 -2.471202381154697e+00 + -2.472338284099561e+00 -2.473472715451581e+00 -2.474605675058163e+00 -2.475737162666682e+00 -2.476867178252799e+00 + -2.477995721814551e+00 -2.479122793211214e+00 -2.480248392312651e+00 -2.481372519169843e+00 -2.482495173828069e+00 + -2.483616356128687e+00 -2.484736065895716e+00 -2.485854303087743e+00 -2.486971067738408e+00 -2.488086360047014e+00 + -2.489200180083995e+00 -2.490312527238630e+00 -2.491423400907520e+00 -2.492532801197714e+00 -2.493640728315912e+00 + -2.494747182157012e+00 -2.495852162518061e+00 -2.496955669116524e+00 -2.498057701682506e+00 -2.499158260076250e+00 + -2.500257344205291e+00 -2.501354954036191e+00 -2.502451089487258e+00 -2.503545750224782e+00 -2.504638935878569e+00 + -2.505730646184535e+00 -2.506820880947837e+00 -2.507909640144502e+00 -2.508996923692245e+00 -2.510082731104683e+00 + -2.511167061905791e+00 -2.512249916065080e+00 -2.513331293568936e+00 -2.514411194025691e+00 -2.515489616993924e+00 + -2.516566562211253e+00 -2.517642029416175e+00 -2.518716018171676e+00 -2.519788528087044e+00 -2.520859559132313e+00 + -2.521929111272669e+00 -2.522997184093166e+00 -2.524063777123772e+00 -2.525128890054233e+00 -2.526192522577199e+00 + -2.527254674237163e+00 -2.528315344566595e+00 -2.529374533198041e+00 -2.530432239809303e+00 -2.531488464159136e+00 + -2.532543206017777e+00 -2.533596465120445e+00 -2.534648241083385e+00 -2.535698533081969e+00 -2.536747340380982e+00 + -2.537794663043710e+00 -2.538840501172024e+00 -2.539884854223596e+00 -2.540927721482817e+00 -2.541969102185147e+00 + -2.543008995720672e+00 -2.544047402146914e+00 -2.545084321505733e+00 -2.546119753108897e+00 -2.547153696148885e+00 + -2.548186150071097e+00 -2.549217114438763e+00 -2.550246589033513e+00 -2.551274573561718e+00 -2.552301067210345e+00 + -2.553326069170913e+00 -2.554349579172571e+00 -2.555371597001575e+00 -2.556392122135012e+00 -2.557411153995589e+00 + -2.558428692097672e+00 -2.559444735964176e+00 -2.560459285060548e+00 -2.561472338773803e+00 -2.562483896234721e+00 + -2.563493956701396e+00 -2.564502520197407e+00 -2.565509586690590e+00 -2.566515155160310e+00 -2.567519224484451e+00 + -2.568521794123430e+00 -2.569522863722881e+00 -2.570522433086768e+00 -2.571520501879673e+00 -2.572517069050324e+00 + -2.573512133570669e+00 -2.574505695221420e+00 -2.575497753777856e+00 -2.576488308184784e+00 -2.577477357385580e+00 + -2.578464901148367e+00 -2.579450939304331e+00 -2.580435471112168e+00 -2.581418495678755e+00 -2.582400012076188e+00 + -2.583380019545771e+00 -2.584358518040427e+00 -2.585335507388502e+00 -2.586310986208430e+00 -2.587284953146766e+00 + -2.588257408172476e+00 -2.589228351266687e+00 -2.590197781136742e+00 -2.591165696464199e+00 -2.592132097101227e+00 + -2.593096982965479e+00 -2.594060353065933e+00 -2.595022206300420e+00 -2.595982542030859e+00 -2.596941359648237e+00 + -2.597898658195753e+00 -2.598854436786441e+00 -2.599808695160485e+00 -2.600761432999720e+00 -2.601712649125437e+00 + -2.602662342322502e+00 -2.603610512090611e+00 -2.604557157983472e+00 -2.605502279056006e+00 -2.606445874333086e+00 + -2.607387943218189e+00 -2.608328485131743e+00 -2.609267499183389e+00 -2.610204984445080e+00 -2.611140940148811e+00 + -2.612075365584592e+00 -2.613008260114454e+00 -2.613939623006402e+00 -2.614869453080320e+00 -2.615797749224179e+00 + -2.616724511046408e+00 -2.617649738126216e+00 -2.618573429205448e+00 -2.619495583026503e+00 -2.620416199171340e+00 + -2.621335277249019e+00 -2.622252816137456e+00 -2.623168814653865e+00 -2.624083272103795e+00 -2.624996187859330e+00 + -2.625907561070358e+00 -2.626817390806325e+00 -2.627725676037143e+00 -2.628632415761536e+00 -2.629537609193020e+00 + -2.630441255587996e+00 -2.631343354159609e+00 -2.632243904045731e+00 -2.633142904126422e+00 -2.634040353337229e+00 + -2.634936251093461e+00 -2.635830596765059e+00 -2.636723389060725e+00 -2.637614626713354e+00 -2.638504309213838e+00 + -2.639392436080191e+00 -2.640279006180904e+00 -2.641164018251881e+00 -2.642047471148195e+00 -2.642929363899640e+00 + -2.643809696115713e+00 -2.644688467316341e+00 -2.645565676083456e+00 -2.646441320932559e+00 -2.647315401051427e+00 + -2.648187915755844e+00 -2.649058864201336e+00 -2.649928245427330e+00 -2.650796058169106e+00 -2.651662301248424e+00 + -2.652526974137104e+00 -2.653390076247662e+00 -2.654251606105329e+00 -2.655111562238285e+00 -2.655969944073783e+00 + -2.656826751086593e+00 -2.657681982042466e+00 -2.658535635661370e+00 -2.659387711189145e+00 -2.660238207837736e+00 + -2.661087124157626e+00 -2.661934458755756e+00 -2.662780211126336e+00 -2.663624380741185e+00 -2.664466966095276e+00 + -2.665307965694397e+00 -2.666147379064445e+00 -2.666985205710447e+00 -2.667821444033845e+00 -2.668656092405469e+00 + -2.669489150177272e+00 -2.670320616801000e+00 -2.671150491146469e+00 -2.671978771965001e+00 -2.672805458115896e+00 + -2.673630548501148e+00 -2.674454042085555e+00 -2.675275937884819e+00 -2.676096235055446e+00 -2.676914932653945e+00 + -2.677732029196031e+00 -2.678547523253807e+00 -2.679361414165717e+00 -2.680173701269736e+00 -2.680984383135636e+00 + -2.681793458321363e+00 -2.682600926105787e+00 -2.683406785794135e+00 -2.684211036076172e+00 -2.685013675548027e+00 + -2.685814703046789e+00 -2.686614117528503e+00 -2.687411918184072e+00 -2.688208104155523e+00 -2.689002674154484e+00 + -2.689795626844247e+00 -2.690586961125131e+00 -2.691376675931391e+00 -2.692164770096012e+00 -2.692951242468673e+00 + -2.693736092067127e+00 -2.694519317933390e+00 -2.695300919038479e+00 -2.696080894259941e+00 -2.696859242172434e+00 + -2.697635961409562e+00 -2.698411051143577e+00 -2.699184510529523e+00 -2.699956338114957e+00 -2.700726532498006e+00 + -2.701495093086574e+00 -2.702262019208106e+00 -2.703027309058428e+00 -2.703790960874505e+00 -2.704552974189474e+00 + -2.705313348537555e+00 -2.706072082161119e+00 -2.706829173257158e+00 -2.707584621133000e+00 -2.708338425191227e+00 + -2.709090584105120e+00 -2.709841096442358e+00 -2.710589961077480e+00 -2.711337176962203e+00 -2.712082743050078e+00 + -2.712826658235913e+00 -2.713568921177743e+00 -2.714309530527581e+00 -2.715048485150131e+00 -2.715785783993005e+00 + -2.716521426122757e+00 -2.717255410569124e+00 -2.717987736095623e+00 -2.718718401385704e+00 -2.719447405068731e+00 + -2.720174745881186e+00 -2.720900423042079e+00 -2.721624435690877e+00 -2.722346782166338e+00 -2.723067460855530e+00 + -2.723786471139474e+00 -2.724503812410580e+00 -2.725219483112852e+00 -2.725933481634188e+00 -2.726645807086471e+00 + -2.727356458650697e+00 -2.728065435060333e+00 -2.728772734953498e+00 -2.729478357034439e+00 -2.730182300087997e+00 + -2.730884563155262e+00 -2.731585145263588e+00 -2.732284045129153e+00 -2.732981261442558e+00 -2.733676793103288e+00 + -2.734370639038562e+00 -2.735062798077667e+00 -2.735753269071118e+00 -2.736442051052291e+00 -2.737129142959769e+00 + -2.737814543170111e+00 -2.738498250131983e+00 -2.739180263144520e+00 -2.739860581563291e+00 -2.740539204119172e+00 + -2.741216129405992e+00 -2.741891356094071e+00 -2.742564882952538e+00 -2.743236709069217e+00 -2.743906833523784e+00 + -2.744575255044610e+00 -2.745241972311204e+00 -2.745906984158941e+00 -2.746570289467025e+00 -2.747231887134115e+00 + -2.747891776057501e+00 -2.748549955109537e+00 -2.749206423158993e+00 -2.749861179085207e+00 -2.750514221765824e+00 + -2.751165550061125e+00 -2.751815162841771e+00 -2.752463059037292e+00 -2.753109237554207e+00 -2.753753697148108e+00 + -2.754396436622574e+00 -2.755037455124055e+00 -2.755676751755156e+00 -2.756314325100252e+00 -2.756950173779785e+00 + -2.757584297076699e+00 -2.758216694281619e+00 -2.758847364053396e+00 -2.759476305000437e+00 -2.760103516161140e+00 + -2.760728996610216e+00 -2.761352745137616e+00 -2.761974760563591e+00 -2.762595042114344e+00 -2.763213589016364e+00 + -2.763830400091322e+00 -2.764445474113015e+00 -2.765058810068553e+00 -2.765670407011266e+00 -2.766280264046035e+00 + -2.766888380201558e+00 -2.767494754150214e+00 -2.768099384646222e+00 -2.768702271127474e+00 -2.769303413030783e+00 + -2.769902809104988e+00 -2.770500458053093e+00 -2.771096359082754e+00 -2.771690511445131e+00 -2.772282914060774e+00 + -2.772873565847032e+00 -2.773462466039048e+00 -2.774049613856528e+00 -2.774635008139637e+00 -2.775218647762881e+00 + -2.775800532117688e+00 -2.776380660598635e+00 -2.776959032095993e+00 -2.777535645483684e+00 -2.778110500074552e+00 + -2.778683595228330e+00 -2.779254930053368e+00 -2.779824503611819e+00 -2.780392315032438e+00 -2.780958363471580e+00 + -2.781522648129417e+00 -2.782085168237396e+00 -2.782645923108263e+00 -2.783204912027138e+00 -2.783762134087364e+00 + -2.784317588365996e+00 -2.784871274066723e+00 -2.785423190471204e+00 -2.785973337046338e+00 -2.786521713227682e+00 + -2.787068318140169e+00 -2.787613150927563e+00 -2.788156211119559e+00 -2.788697498201977e+00 -2.789237011099205e+00 + -2.789774748795882e+00 -2.790310711079109e+00 -2.790844897774500e+00 -2.791377308059270e+00 -2.791907941021321e+00 + -2.792436796039691e+00 -2.792963872575855e+00 -2.793489170129877e+00 -2.794012688183935e+00 -2.794534426110070e+00 + -2.795054383269529e+00 -2.795572559090522e+00 -2.796088953089790e+00 -2.796603565071232e+00 -2.797116394731634e+00 + -2.797627441052200e+00 -2.798136703104035e+00 -2.798644181033428e+00 -2.799149874997305e+00 -2.799653784119957e+00 + -2.800155907491874e+00 -2.800656245100958e+00 -2.801154796934787e+00 -2.801651562082218e+00 -2.802146539693571e+00 + -2.802639730063738e+00 -2.803131133478864e+00 -2.803620749045517e+00 -2.804108575856467e+00 -2.804594614128865e+00 + -2.805078864118387e+00 -2.805561325110418e+00 -2.806041996375143e+00 -2.806520878092229e+00 -2.806997970489045e+00 + -2.807473273074300e+00 -2.807946785293329e+00 -2.808418507056632e+00 -2.808888438355500e+00 -2.809356579039224e+00 + -2.809822928959404e+00 -2.810287488118900e+00 -2.810750256531227e+00 -2.811211234101264e+00 -2.811670420689050e+00 + -2.812127816083888e+00 -2.812583420143096e+00 -2.813037233066774e+00 -2.813489255065615e+00 -2.813939486049919e+00 + -2.814387925944586e+00 -2.814834575033324e+00 -2.815279433542374e+00 -2.815722501109326e+00 -2.816163777438837e+00 + -2.816603263092504e+00 -2.817040958671196e+00 -2.817476864075942e+00 -2.817910979131784e+00 -2.818343304059641e+00 + -2.818773839208482e+00 -2.819202585043600e+00 -2.819629541969078e+00 -2.820054710027820e+00 -2.820478089265513e+00 + -2.820899680100151e+00 -2.821319482977751e+00 -2.821737498084143e+00 -2.822153725615352e+00 -2.822568166068396e+00 + -2.822980820018520e+00 -2.823391688052908e+00 -2.823800770674544e+00 -2.824208068037681e+00 -2.824613580315654e+00 + -2.825017308106835e+00 -2.825419252121360e+00 -2.825819413091381e+00 -2.826217791658008e+00 -2.826614388076187e+00 + -2.827009202624378e+00 -2.827402236061253e+00 -2.827793489256864e+00 -2.828182963046578e+00 -2.828570658171722e+00 + -2.828956575032161e+00 -2.829340714052488e+00 -2.829723076097664e+00 -2.830103662132774e+00 -2.830482473083023e+00 + -2.830859509823491e+00 -2.831234773068641e+00 -2.831608263528317e+00 -2.831979982054516e+00 -2.832349929557777e+00 + -2.832718107040651e+00 -2.833084515526141e+00 -2.833449156027042e+00 -2.833812029550204e+00 -2.834173137088914e+00 + -2.834532479620883e+00 -2.834890058075082e+00 -2.835245873448821e+00 -2.835599927061508e+00 -2.835952220243667e+00 + -2.836302754048190e+00 -2.836651529530672e+00 -2.836998548035129e+00 -2.837343810883671e+00 -2.837687319022324e+00 + -2.838029073490917e+00 -2.838369076080591e+00 -2.838707328586376e+00 -2.839043832067564e+00 -2.839378587474163e+00 + -2.839711596054793e+00 -2.840042859259108e+00 -2.840372379042276e+00 -2.840700157280677e+00 -2.841026195030013e+00 + -2.841350493343512e+00 -2.841673054085180e+00 -2.841993879190829e+00 -2.842312970072699e+00 -2.842630328108386e+00 + -2.842945955060471e+00 -2.843259852775203e+00 -2.843572023048496e+00 -2.843882467617769e+00 -2.844191188036773e+00 + -2.844498185884593e+00 -2.844803463025301e+00 -2.845107021413000e+00 -2.845408863076932e+00 -2.845708990020076e+00 + -2.846007404065244e+00 -2.846304107050338e+00 -2.846599101053807e+00 -2.846892388135785e+00 -2.847183970042619e+00 + -2.847473848570861e+00 -2.847762026031680e+00 -2.848048504803730e+00 -2.848333287020989e+00 -2.848616374754612e+00 + -2.848897770069131e+00 -2.849177475073159e+00 -2.849455492058227e+00 -2.849731823327478e+00 -2.850006471047571e+00 + -2.850279437434387e+00 -2.850550725037162e+00 -2.850820336439234e+00 -2.851088274026996e+00 -2.851354540133094e+00 + -2.851619137072155e+00 -2.851882067200814e+00 -2.852143333061782e+00 -2.852402937208544e+00 -2.852660882051651e+00 + -2.852917170055367e+00 -2.853171804041764e+00 -2.853424786850297e+00 -2.853676121032120e+00 -2.853925809140160e+00 + -2.854173854022716e+00 -2.854420258509995e+00 -2.854665025064492e+00 -2.854908156206457e+00 -2.855149655054884e+00 + -2.855389524765914e+00 -2.855627768045515e+00 -2.855864387531145e+00 -2.856099386036384e+00 -2.856332766480263e+00 + -2.856564532027491e+00 -2.856794685864488e+00 -2.857023231018833e+00 -2.857250170456676e+00 -2.857475507057297e+00 + -2.857699243787178e+00 -2.857921384048440e+00 -2.858141931205942e+00 -2.858360888039817e+00 -2.858578257403886e+00 + -2.858794043031427e+00 -2.859008248642304e+00 -2.859220877023269e+00 -2.859431930941042e+00 -2.859641414015340e+00 + -2.859849329964776e+00 -2.860055682050569e+00 -2.860260473522559e+00 -2.860463708042447e+00 -2.860665389218646e+00 + -2.860865520034553e+00 -2.861064103583913e+00 -2.861261144026887e+00 -2.861456645505078e+00 -2.861650611019446e+00 + -2.861843043539793e+00 -2.862033947051935e+00 -2.862223325674870e+00 -2.862411183044306e+00 -2.862597522669464e+00 + -2.862782348036900e+00 -2.862965662765951e+00 -2.863147471029718e+00 -2.863327776966641e+00 -2.863506584022756e+00 + -2.863683895649960e+00 -2.863859716016013e+00 -2.864034049304372e+00 -2.864206899045429e+00 -2.864378268816853e+00 + -2.864548163038503e+00 -2.864716586175495e+00 -2.864883542031795e+00 -2.865049034317118e+00 -2.865213067025303e+00 + -2.865375644227383e+00 -2.865536770019026e+00 -2.865696448531390e+00 -2.865854684012960e+00 -2.866011480747103e+00 + -2.866166843039399e+00 -2.866320775137251e+00 -2.866473281033156e+00 -2.866624364792500e+00 -2.866774031027124e+00 + -2.866922284373643e+00 -2.867069129021301e+00 -2.867214569108258e+00 -2.867358609015685e+00 -2.867501253183005e+00 + -2.867642506039625e+00 -2.867782372075631e+00 -2.867920856033839e+00 -2.868057962606175e+00 -2.868193696028257e+00 + -2.868328060561013e+00 -2.868461061022879e+00 -2.868592702303233e+00 -2.868722989017701e+00 -2.868851925722842e+00 + -2.868979517012722e+00 -2.869105767524959e+00 -2.869230682033886e+00 -2.869354265317122e+00 -2.869476522028743e+00 + -2.869597456891174e+00 -2.869717075023798e+00 -2.869835381525858e+00 -2.869952381019048e+00 -2.870068078133983e+00 + -2.870182478014490e+00 -2.870295585788873e+00 -2.870407406010122e+00 -2.870517943287246e+00 -2.870627203028626e+00 + -2.870735190678368e+00 -2.870841911024103e+00 -2.870947368779615e+00 -2.871051569019769e+00 -2.871154516959833e+00 + -2.871256218015620e+00 -2.871356677487263e+00 -2.871455900011655e+00 -2.871553890297982e+00 -2.871650654007871e+00 + -2.871746196881877e+00 -2.871840524023838e+00 -2.871933640394619e+00 -2.872025551019907e+00 -2.872116261043417e+00 + -2.872205776016155e+00 -2.872294101539941e+00 -2.872381243012580e+00 -2.872467205758066e+00 -2.872551995009178e+00 + -2.872635615995248e+00 -2.872718074023048e+00 -2.872799374482606e+00 -2.872879523019508e+00 -2.872958525324841e+00 + -2.873036387016140e+00 -2.873113113575017e+00 -2.873188710012942e+00 -2.873263181462381e+00 -2.873336534009911e+00 + -2.873408773769060e+00 -2.873479906007045e+00 -2.873549935889074e+00 -2.873618869018622e+00 -2.873686711126628e+00 + -2.873753468015626e+00 -2.873819145455355e+00 -2.873883749012791e+00 -2.873947284262238e+00 -2.874009757010115e+00 + -2.874071173064448e+00 -2.874131538007598e+00 -2.874190857408149e+00 -2.874249137005235e+00 -2.874306382592947e+00 + -2.874362600014657e+00 -2.874417795154723e+00 -2.874471974012172e+00 -2.874525142492177e+00 -2.874577306009839e+00 + -2.874628470067637e+00 -2.874678641007656e+00 -2.874727825164796e+00 -2.874776028005620e+00 -2.874823254939239e+00 + -2.874869512013286e+00 -2.874914805384953e+00 -2.874959141011137e+00 -2.875002524843012e+00 -2.875044963009132e+00 + -2.875086461553842e+00 -2.875127026007268e+00 -2.875166661990855e+00 -2.875205376005544e+00 -2.875243174521211e+00 + -2.875280063003956e+00 -2.875316046953741e+00 -2.875351133009737e+00 -2.875385327829893e+00 -2.875418637008044e+00 + -2.875451066029114e+00 -2.875482621006486e+00 -2.875513308222273e+00 -2.875543134005058e+00 -2.875572104616458e+00 + -2.875600226003760e+00 -2.875627504088381e+00 -2.875653945002586e+00 -2.875679554924722e+00 -2.875704340006628e+00 + -2.875728306365356e+00 -2.875751460005359e+00 -2.875773807024162e+00 -2.875795354004213e+00 -2.875816107441742e+00 + -2.875836073003188e+00 -2.875855256356105e+00 -2.875873664002281e+00 -2.875891302525273e+00 -2.875908178001488e+00 + -2.875924296429527e+00 -2.875939664003940e+00 -2.875954287022889e+00 -2.875968172003060e+00 -2.875981325374513e+00 + -2.875993753002293e+00 -2.876005460745149e+00 -2.876016455001635e+00 -2.876026742281703e+00 -2.876036329001085e+00 + -2.876045221511428e+00 -2.876053426002279e+00 -2.876060948682664e+00 -2.876067796001651e+00 -2.876073974394489e+00 + -2.876079490001126e+00 -2.876084348997735e+00 -2.876088558000703e+00 -2.876092123620084e+00 -2.876095052000378e+00 + -2.876097349275196e+00 -2.876099022000147e+00 -2.876100076780735e+00 -2.876100520000039e+00 -2.876100357977497e+00 + -2.876099597000405e+00 -2.876098243435337e+00 -2.876096303998139e+00 -2.876093785401991e+00 -2.876090694000126e+00 + -2.876087036076098e+00 -2.876082817994697e+00 -2.876078046153286e+00 -2.876072726998279e+00 -2.876066867041051e+00 + -2.876060473003754e+00 -2.876053551562065e+00 -2.876046108994973e+00 -2.876038151582050e+00 -2.876029686001908e+00 + -2.876020718975022e+00 -2.876011256990315e+00 -2.876001306494705e+00 -2.875990873998654e+00 -2.875979966015766e+00 + -2.875968589008655e+00 -2.875956749461299e+00 -2.875944453994101e+00 -2.875931709272467e+00 -2.875918522005370e+00 + -2.875904898821941e+00 -2.875890845988358e+00 -2.875876369796106e+00 -2.875861477000839e+00 -2.875846174460938e+00 + -2.875830468981534e+00 -2.875814367182402e+00 -2.875797874995170e+00 -2.875780998493851e+00 -2.875763745010153e+00 + -2.875746121853747e+00 -2.875728134988475e+00 -2.875709790337169e+00 -2.875691095004476e+00 -2.875672056151185e+00 + -2.875652679980860e+00 -2.875632972639220e+00 -2.875612940997824e+00 -2.875592591983200e+00 -2.875571932015899e+00 + -2.875550967463832e+00 -2.875529704990307e+00 -2.875508151305197e+00 -2.875486313009207e+00 -2.875464196688727e+00 + -2.875441808982035e+00 -2.875419156538716e+00 -2.875396246001703e+00 -2.875373083982446e+00 -2.875349676973115e+00 + -2.875326031456047e+00 -2.875302153993497e+00 -2.875278051224424e+00 -2.875253730014671e+00 -2.875229197164465e+00 + -2.875204458984698e+00 -2.875179521740897e+00 -2.875154392006447e+00 -2.875129076470253e+00 -2.875103581975416e+00 + -2.875077915323747e+00 -2.875052082997684e+00 -2.875026091410789e+00 -2.874999947020509e+00 -2.874973656330889e+00 + -2.874947225988491e+00 -2.874920662667701e+00 -2.874893973011697e+00 -2.874867163623783e+00 -2.874840240978976e+00 + -2.874813211559227e+00 -2.874786082002508e+00 -2.874758858958694e+00 -2.874731548969249e+00 -2.874704158521300e+00 + -2.874676693993052e+00 -2.874649161850167e+00 -2.874621569017096e+00 -2.874593922351292e+00 -2.874566227983435e+00 + -2.874538491996276e+00 -2.874510721007613e+00 -2.874482921761722e+00 -2.874455100973768e+00 -2.874427265275985e+00 + -2.874399420998023e+00 -2.874371574431975e+00 -2.874343732022288e+00 -2.874315900299783e+00 -2.874288085988434e+00 + -2.874260295776052e+00 -2.874232536012641e+00 -2.874204812974258e+00 -2.874177132978955e+00 -2.874149502426689e+00 + -2.874121928003048e+00 -2.874094416390038e+00 -2.874066973969692e+00 -2.874039607056358e+00 -2.874012321993617e+00 + -2.873985125156578e+00 -2.873958023017241e+00 -2.873931022092817e+00 -2.873904128984454e+00 -2.873877350227203e+00 + -2.873850692007775e+00 -2.873824160475146e+00 -2.873797761975665e+00 -2.873771502947487e+00 -2.873745389998629e+00 + -2.873719429664607e+00 -2.873693628021065e+00 -2.873667991196405e+00 -2.873642525989910e+00 -2.873617239207638e+00 + -2.873592137011854e+00 -2.873567225478465e+00 -2.873542510981722e+00 -2.873517999984164e+00 -2.873493699003122e+00 + -2.873469614539558e+00 -2.873445752974173e+00 -2.873422120664412e+00 -2.873398723994974e+00 -2.873375569341346e+00 + -2.873352663014937e+00 -2.873330011368907e+00 -2.873307620987516e+00 -2.873285498440290e+00 -2.873263650006746e+00 + -2.873242081977908e+00 -2.873220800980854e+00 -2.873199813610778e+00 -2.873179125999297e+00 -2.873158744269642e+00 + -2.873138674975094e+00 -2.873118924733721e+00 -2.873099499992696e+00 -2.873080407078925e+00 -2.873061652009151e+00 + -2.873043240951156e+00 -2.873025180987050e+00 -2.873007479104932e+00 -2.872990141002529e+00 -2.872973172348110e+00 + -2.872956579982463e+00 -2.872940370832477e+00 -2.872924550996914e+00 -2.872909126514257e+00 -2.872894104009989e+00 + -2.872879490127201e+00 -2.872865290992410e+00 -2.872851512733995e+00 -2.872838162004323e+00 -2.872825245427317e+00 + -2.872812768989124e+00 -2.872800738661925e+00 -2.872789160999820e+00 -2.872778042642130e+00 -2.872767389987160e+00 + -2.872757209355336e+00 -2.872747506996586e+00 -2.872738289140315e+00 -2.872729562004331e+00 -2.872721331833777e+00 + -2.872713604994726e+00 -2.872706387896571e+00 -2.872699687001068e+00 -2.872693508692679e+00 -2.872687858994343e+00 + -2.872682743943764e+00 -2.872678169999229e+00 -2.872674143639194e+00 -2.872670671002211e+00 -2.872667758252759e+00 + -2.872665411998920e+00 -2.872663638727966e+00 -2.872662444000314e+00 -2.872661833458480e+00 -2.872661814000242e+00 + -2.872662392564575e+00 -2.872663574999996e+00 -2.872665367034357e+00 -2.872667775003300e+00 -2.872670805307676e+00 + -2.872674464001362e+00 -2.872678757122995e+00 -2.872683690997219e+00 -2.872689271947241e+00 -2.872695506004511e+00 + -2.872702399218003e+00 -2.872709957998547e+00 -2.872718188690384e+00 -2.872727097009549e+00 -2.872736688669513e+00 + -2.872746970001709e+00 -2.872757947412680e+00 -2.872769626991446e+00 -2.872782014787135e+00 -2.872795117006809e+00 + -2.872808939808297e+00 -2.872823488994544e+00 -2.872838770359238e+00 -2.872854790013944e+00 -2.872871554154958e+00 + -2.872889068999627e+00 -2.872907340687168e+00 -2.872926375023218e+00 -2.872946177789640e+00 -2.872966755006795e+00 + -2.872988112738970e+00 -2.873010256987659e+00 -2.873033193743455e+00 -2.873056929016149e+00 -2.873081468798353e+00 + -2.873106818994782e+00 -2.873132985471494e+00 -2.873159974027786e+00 -2.873187790508094e+00 -2.873216441004140e+00 + -2.873245931584463e+00 -2.873276267977569e+00 -2.873307455856915e+00 -2.873339501015828e+00 -2.873372409342765e+00 + -2.873406186986854e+00 -2.873440840030674e+00 -2.873476374029945e+00 -2.873512794459630e+00 -2.873550106998518e+00 + -2.873588317466817e+00 -2.873627432046586e+00 -2.873667456808100e+00 -2.873708397012657e+00 -2.873750257967860e+00 + -2.873793045975522e+00 -2.873836767295967e+00 -2.873881427029366e+00 -2.873927030237608e+00 -2.873973582989610e+00 + -2.874021091436191e+00 -2.874069561048740e+00 -2.874118997257345e+00 -2.874169406006314e+00 -2.874220793186470e+00 + -2.874273163960479e+00 -2.874326523535612e+00 -2.874380878025728e+00 -2.874436233504353e+00 -2.874492594977105e+00 + -2.874549967456173e+00 -2.874608357047944e+00 -2.874667769870749e+00 -2.874728210996486e+00 -2.874789685444839e+00 + -2.874852199073056e+00 -2.874915757808161e+00 -2.874980367018717e+00 -2.875046031956011e+00 -2.875112757960702e+00 + -2.875180550448241e+00 -2.875249415043884e+00 -2.875319357389408e+00 -2.875390382982873e+00 -2.875462497200150e+00 + -2.875535705072081e+00 -2.875610011724477e+00 -2.875685423008027e+00 -2.875761944747628e+00 -2.875839581940104e+00 + -2.875918339524430e+00 -2.875998223036253e+00 -2.876079238083328e+00 -2.876161389965175e+00 -2.876244683897332e+00 + -2.876329125067640e+00 -2.876414718675390e+00 -2.876501469993362e+00 -2.876589384334920e+00 -2.876678467102276e+00 + -2.876768723646439e+00 -2.876860159024752e+00 -2.876952778311590e+00 -2.877046586943105e+00 -2.877141590285005e+00 + -2.877237793059432e+00 -2.877335200055582e+00 -2.877433816974432e+00 -2.877533649470098e+00 -2.877634702097487e+00 + -2.877736979404358e+00 -2.877840487009089e+00 -2.877945230580227e+00 -2.878051214916385e+00 -2.878158444703550e+00 + -2.878266925047163e+00 -2.878376661120778e+00 -2.878487657950954e+00 -2.878599920558564e+00 -2.878713454088738e+00 + -2.878828263638601e+00 -2.878944353988982e+00 -2.879061729871082e+00 -2.879180396133895e+00 -2.879300357745253e+00 + -2.879421620030550e+00 -2.879544188234639e+00 -2.879668066922659e+00 -2.879793260582870e+00 -2.879919774075741e+00 + -2.880047612428619e+00 -2.880176780964157e+00 -2.880307284823274e+00 -2.880439128124635e+00 -2.880572315044195e+00 + -2.880706851009318e+00 -2.880842741491739e+00 -2.880979990889281e+00 -2.881118603470176e+00 -2.881258584058220e+00 + -2.881399937594580e+00 -2.881542668934350e+00 -2.881686782880171e+00 -2.881832284110943e+00 -2.881979177270132e+00 + -2.882127466983199e+00 -2.882277157822698e+00 -2.882428254167564e+00 -2.882580760515876e+00 -2.882734682035907e+00 + -2.882890023809088e+00 -2.883046789899305e+00 -2.883204984344022e+00 -2.883364612092550e+00 -2.883525678164890e+00 + -2.883688186951939e+00 -2.883852142755886e+00 -2.884017550153203e+00 -2.884184413751485e+00 -2.884352738008543e+00 + -2.884522527349429e+00 -2.884693786217942e+00 -2.884866519029743e+00 -2.885040730069195e+00 -2.885216423722596e+00 + -2.885393604915286e+00 -2.885572278454246e+00 -2.885752448133968e+00 -2.885934117732660e+00 -2.886117291975880e+00 + -2.886301975695701e+00 -2.886488173202934e+00 -2.886675888645447e+00 -2.886865126040629e+00 -2.887055889528861e+00 + -2.887248183873006e+00 -2.887442013779875e+00 -2.887637383109605e+00 -2.887834295673936e+00 -2.888032755937675e+00 + -2.888232768417303e+00 -2.888434337182880e+00 -2.888637466267979e+00 -2.888842160006608e+00 -2.889048422705334e+00 + -2.889256258260521e+00 -2.889465670586525e+00 -2.889676664079871e+00 -2.889889243164732e+00 -2.890103411893701e+00 + -2.890319174230825e+00 -2.890536534157536e+00 -2.890755495690120e+00 -2.890976062966901e+00 -2.891198240133124e+00 + -2.891422031239666e+00 -2.891647440271526e+00 -2.891874471044534e+00 -2.892103127449178e+00 -2.892333413843735e+00 + -2.892565334531329e+00 -2.892798893126666e+00 -2.893034093211137e+00 -2.893270938921286e+00 -2.893509434394119e+00 + -2.893749583213363e+00 -2.893991388990754e+00 -2.894234856003367e+00 -2.894479988544211e+00 -2.894726790304690e+00 + -2.894975264880993e+00 -2.895225416090045e+00 -2.895477247800793e+00 -2.895730763869547e+00 -2.895985968110420e+00 + -2.896242864181383e+00 -2.896501455784724e+00 -2.896761746956156e+00 -2.897023741664482e+00 -2.897287443277443e+00 + -2.897552855132549e+00 -2.897819981047455e+00 -2.898088824960355e+00 -2.898359390811481e+00 -2.898631682423090e+00 + -2.898905703143506e+00 -2.899181456336644e+00 -2.899458945902694e+00 -2.899738175745144e+00 -2.900019149244370e+00 + -2.900301869748365e+00 -2.900586340998689e+00 -2.900872566741790e+00 -2.901160550350105e+00 -2.901450295205248e+00 + -2.901741805099525e+00 -2.902035083835090e+00 -2.902330134842785e+00 -2.902626961482952e+00 -2.902925567205262e+00 + -2.903225955501619e+00 -2.903528129943548e+00 -2.903832094083243e+00 -2.904137851315957e+00 -2.904445404943298e+00 + -2.904754758049239e+00 -2.905065913908475e+00 -2.905378876776237e+00 -2.905693650730528e+00 -2.906010238159916e+00 + -2.906328641477237e+00 -2.906648864881840e+00 -2.906970912612057e+00 -2.907294787275635e+00 -2.907620491421319e+00 + -2.907948028992455e+00 -2.908277404008211e+00 -2.908608619396449e+00 -2.908941677961907e+00 -2.909276583108139e+00 + -2.909613338320582e+00 -2.909951946813384e+00 -2.910292411733319e+00 -2.910634736228945e+00 -2.910978923497479e+00 + -2.911324976928991e+00 -2.911672899876866e+00 -2.912022695354926e+00 -2.912374366346152e+00 -2.912727916049746e+00 + -2.913083347735332e+00 -2.913440664738005e+00 -2.913799870293631e+00 -2.914160967175702e+00 -2.914523958205600e+00 + -2.914888846858668e+00 -2.915255636613397e+00 -2.915624330306910e+00 -2.915994930711883e+00 -2.916367440984558e+00 + -2.916741864289805e+00 -2.917118203443422e+00 -2.917496461287171e+00 -2.917876641115726e+00 -2.918258746264796e+00 + -2.918642779781321e+00 -2.919028744569610e+00 -2.919416643252220e+00 -2.919806478556714e+00 -2.920198253912409e+00 + -2.920591972698769e+00 -2.920987637394092e+00 -2.921385250442034e+00 -2.921784815048848e+00 -2.922186334507697e+00 + -2.922589811696789e+00 -2.922995249368979e+00 -2.923402650190686e+00 -2.923812016928122e+00 -2.924223352833133e+00 + -2.924636661116357e+00 -2.925051944337972e+00 -2.925469204994078e+00 -2.925888445974902e+00 -2.926309670222330e+00 + -2.926732880490753e+00 -2.927158079512877e+00 -2.927585270122142e+00 -2.928014455203420e+00 -2.928445637746579e+00 + -2.928878820641719e+00 -2.929314006274898e+00 -2.929751197043434e+00 -2.930190395893735e+00 -2.930631605816839e+00 + -2.931074829433217e+00 -2.931520069294359e+00 -2.931967328046430e+00 -2.932416608452995e+00 -2.932867913652596e+00 + -2.933321246608101e+00 -2.933776609204709e+00 -2.934234003435805e+00 -2.934693432805196e+00 -2.935154900804807e+00 + -2.935618409368617e+00 -2.936083960365691e+00 -2.936551556963400e+00 -2.937021202354904e+00 -2.937492898538196e+00 + -2.937966647468766e+00 -2.938442452127255e+00 -2.938920315642269e+00 -2.939400240709141e+00 -2.939882229846171e+00 + -2.940366285296803e+00 -2.940852409365155e+00 -2.941340604872910e+00 -2.941830874578781e+00 -2.942323220472084e+00 + -2.942817644603974e+00 -2.943314150042391e+00 -2.943812739919231e+00 -2.944313416605433e+00 -2.944816182292809e+00 + -2.945321039217627e+00 -2.945827989752984e+00 -2.946337036774817e+00 -2.946848183049044e+00 -2.947361430398659e+00 + -2.947876780695535e+00 -2.948394236949976e+00 -2.948913802216184e+00 -2.949435478585527e+00 -2.949959268045502e+00 + -2.950485173130951e+00 -2.951013196489051e+00 -2.951543340668991e+00 -2.952075608036040e+00 -2.952610000317780e+00 + -2.953146519451356e+00 -2.953685168849877e+00 -2.954225951787981e+00 -2.954768869510503e+00 -2.955313923227115e+00 + -2.955861116036636e+00 -2.956410451196468e+00 -2.956961930709160e+00 -2.957515556348660e+00 -2.958071330229310e+00 + -2.958629254704319e+00 -2.959189332741965e+00 -2.959751567143614e+00 -2.960315959427935e+00 -2.960882511105170e+00 + -2.961451224934558e+00 -2.962022103774683e+00 -2.962595149632548e+00 -2.963170364371659e+00 -2.963747750133120e+00 + -2.964327309260061e+00 -2.964909044626116e+00 -2.965492958892178e+00 -2.966079053337689e+00 -2.966667329311879e+00 + -2.967257789824588e+00 -2.967850437973655e+00 -2.968445275548303e+00 -2.969042304161408e+00 -2.969641526029084e+00 + -2.970242943489398e+00 -2.970846558764995e+00 -2.971452374012471e+00 -2.972060391239641e+00 -2.972670612566008e+00 + -2.973283040706606e+00 -2.973897678221620e+00 -2.974514526456296e+00 -2.975133586785449e+00 -2.975754861917081e+00 + -2.976378354633252e+00 -2.977004066679083e+00 -2.977631999719257e+00 -2.978262156133669e+00 -2.978894538388579e+00 + -2.979529148580497e+00 -2.980165988659094e+00 -2.980805060356407e+00 -2.981446365534977e+00 -2.982089906796993e+00 + -2.982735686662750e+00 -2.983383706585328e+00 -2.984033968085205e+00 -2.984686474019655e+00 -2.985341227187940e+00 + -2.985998228820469e+00 -2.986657480057624e+00 -2.987318983248517e+00 -2.987982740990944e+00 -2.988648755668708e+00 + -2.989317029403636e+00 -2.989987563483614e+00 -2.990660359350691e+00 -2.991335419897486e+00 -2.992012747963469e+00 + -2.992692344724977e+00 -2.993374211287029e+00 -2.994058350132512e+00 -2.994744763907397e+00 -2.995433454532118e+00 + -2.996124423756546e+00 -2.996817673373822e+00 -2.997513205283444e+00 -2.998211021767050e+00 -2.998911125033880e+00 + -2.999613516621449e+00 -3.000318198120732e+00 -3.001025172008281e+00 -3.001734440748973e+00 -3.002446005875424e+00 + -3.003159868783688e+00 -3.003876031255844e+00 -3.004594495323234e+00 -3.005315263628241e+00 -3.006038338638268e+00 + -3.006763721509772e+00 -3.007491413411925e+00 -3.008221416875716e+00 -3.008953734497098e+00 -3.009688367770095e+00 + -3.010425318036306e+00 -3.011164587129571e+00 -3.011906177113799e+00 -3.012650090480955e+00 -3.013396329533748e+00 + -3.014144895389836e+00 -3.014895789237767e+00 -3.015649013734712e+00 -3.016404571515447e+00 -3.017162463656545e+00 + -3.017922691248400e+00 -3.018685256994897e+00 -3.019450163571901e+00 -3.020217411929727e+00 -3.020987002987051e+00 + -3.021758939261538e+00 -3.022533223477289e+00 -3.023309857585168e+00 -3.024088843221124e+00 -3.024870181534668e+00 + -3.025653873871900e+00 -3.026439922851719e+00 -3.027228331077071e+00 -3.028019099814318e+00 -3.028812230192102e+00 + -3.029607724124773e+00 -3.030405583764245e+00 -3.031205811426982e+00 -3.032008409239547e+00 -3.032813378404362e+00 + -3.033620720145768e+00 -3.034430436699938e+00 -3.035242530366928e+00 -3.036057002690514e+00 -3.036873855182042e+00 + -3.037693089979441e+00 -3.038514709166424e+00 -3.039338713983260e+00 -3.040165105664532e+00 -3.040993886265523e+00 + -3.041825058080565e+00 -3.042658623539453e+00 -3.043494584770202e+00 -3.044332942558215e+00 -3.045173697755793e+00 + -3.046016852825442e+00 -3.046862410359265e+00 -3.047710371857544e+00 -3.048560738605269e+00 -3.049413512118055e+00 + -3.050268694173960e+00 -3.051126287370169e+00 -3.051986294136892e+00 -3.052848715417321e+00 -3.053713552140092e+00 + -3.054580806662679e+00 -3.055450481419417e+00 -3.056322577723267e+00 -3.057197096839233e+00 -3.058074040961857e+00 + -3.058953412280709e+00 -3.059835212035924e+00 -3.060719441405425e+00 -3.061606102267731e+00 -3.062495196777212e+00 + -3.063386727491054e+00 -3.064280696619269e+00 -3.065177104580330e+00 -3.066075951959016e+00 -3.066977241796834e+00 + -3.067880977177860e+00 -3.068787158899685e+00 -3.069695787543252e+00 -3.070606865109353e+00 -3.071520393938529e+00 + -3.072436376310475e+00 -3.073354814200677e+00 -3.074275708428639e+00 -3.075199059975246e+00 -3.076124871622891e+00 + -3.077053146054635e+00 -3.077983883754724e+00 -3.078917085313194e+00 -3.079852753942089e+00 -3.080790892784741e+00 + -3.081731502087634e+00 -3.082674582011150e+00 -3.083620135268097e+00 -3.084568164866139e+00 -3.085518672439932e+00 + -3.086471659270948e+00 -3.087427126600947e+00 -3.088385075921834e+00 -3.089345509765843e+00 -3.090308430518810e+00 + -3.091273838940665e+00 -3.092241735746584e+00 -3.093212123098609e+00 -3.094185003484481e+00 -3.095160379247863e+00 + -3.096138252358965e+00 -3.097118623438258e+00 -3.098101493262150e+00 -3.099086864580523e+00 -3.100074740150514e+00 + -3.101065120784818e+00 -3.102058007230942e+00 -3.103053401920080e+00 -3.104051307417155e+00 -3.105051725138318e+00 + -3.106054656274756e+00 -3.107060102266563e+00 -3.108068064811119e+00 -3.109078546386035e+00 -3.110091549326776e+00 + -3.111107074619999e+00 -3.112125123273996e+00 -3.113145697732417e+00 -3.114168800386244e+00 -3.115194431980418e+00 + -3.116222593318652e+00 -3.117253287085768e+00 -3.118286516039464e+00 -3.119322281347848e+00 -3.120360583948459e+00 + -3.121401425446115e+00 -3.122444807777008e+00 -3.123490733535526e+00 -3.124539205035892e+00 -3.125590222813487e+00 + -3.126643787500575e+00 -3.127699901895779e+00 -3.128758568841378e+00 -3.129819789187914e+00 -3.130883563634097e+00 + -3.131949894263071e+00 -3.133018783446947e+00 -3.134090233329311e+00 -3.135164245759380e+00 -3.136240821637432e+00 + -3.137319962039862e+00 -3.138401669696502e+00 -3.139485947209752e+00 -3.140572795018887e+00 -3.141662213641400e+00 + -3.142754206070774e+00 -3.143848775370422e+00 -3.144945922407469e+00 -3.146045647810740e+00 -3.147147953452156e+00 + -3.148252841552866e+00 -3.149360314487843e+00 -3.150470374336312e+00 -3.151583021840677e+00 -3.152698257836541e+00 + -3.153816084869129e+00 -3.154936505573740e+00 -3.156059521236365e+00 -3.157185132934072e+00 -3.158313342257567e+00 + -3.159444151127381e+00 -3.160577562269707e+00 -3.161713578058511e+00 -3.162852198653188e+00 -3.163993424406347e+00 + -3.165137258658042e+00 -3.166283704751602e+00 -3.167432763056018e+00 -3.168584433853514e+00 -3.169738720053572e+00 + -3.170895624664928e+00 -3.172055148466089e+00 -3.173217292044841e+00 -3.174382057456326e+00 -3.175549447119023e+00 + -3.176719463437418e+00 -3.177892108465135e+00 -3.179067382866334e+00 -3.180245287430775e+00 -3.181425824840074e+00 + -3.182608997807819e+00 -3.183794807283624e+00 -3.184983254083125e+00 -3.186174340249998e+00 -3.187368068149750e+00 + -3.188564440207163e+00 -3.189763458501066e+00 -3.190965123667219e+00 -3.192169436468204e+00 -3.193376399616980e+00 + -3.194586015855556e+00 -3.195798286091764e+00 -3.197013211234878e+00 -3.198230794034108e+00 -3.199451037209393e+00 + -3.200673941523666e+00 -3.201899507599942e+00 -3.203127737458575e+00 -3.204358633517069e+00 -3.205592198384193e+00 + -3.206828434306502e+00 -3.208067341890413e+00 -3.209308921829809e+00 -3.210553176808560e+00 -3.211800109598040e+00 + -3.213049721329648e+00 -3.214302012941719e+00 -3.215556986240311e+00 -3.216814643392485e+00 -3.218074987141617e+00 + -3.219338019837523e+00 -3.220603741679474e+00 -3.221872153094758e+00 -3.223143257573258e+00 -3.224417058543514e+00 + -3.225693556126080e+00 -3.226972750453261e+00 -3.228254645012327e+00 -3.229539243310538e+00 -3.230826545580160e+00 + -3.232116551831102e+00 -3.233409264458852e+00 -3.234704686394765e+00 -3.236002820328103e+00 -3.237303668413965e+00 + -3.238607230912866e+00 -3.239913508296335e+00 -3.241222503774527e+00 -3.242534220589764e+00 -3.243848659374397e+00 + -3.245165820540432e+00 -3.246485706228452e+00 -3.247808319087641e+00 -3.249133662073000e+00 -3.250461737608715e+00 + -3.251792545689908e+00 -3.253126086515263e+00 -3.254462363526813e+00 -3.255801380232294e+00 -3.257143137158927e+00 + -3.258487634736825e+00 -3.259834875988172e+00 -3.261184864013611e+00 -3.262537599635538e+00 -3.263893083453904e+00 + -3.265251317457108e+00 -3.266612304094287e+00 -3.267976046269084e+00 -3.269342546452898e+00 -3.270711804933652e+00 + -3.272083822201368e+00 -3.273458601737915e+00 -3.274836147008249e+00 -3.276216458417835e+00 -3.277599536106921e+00 + -3.278985382214368e+00 -3.280373999474050e+00 -3.281765391001240e+00 -3.283159559381294e+00 -3.284556504698475e+00 + -3.285956227223949e+00 -3.287358730477579e+00 -3.288764018003004e+00 -3.290172090190266e+00 -3.291582947391597e+00 + -3.292996592961586e+00 -3.294413030263101e+00 -3.295832259689772e+00 -3.297254281509102e+00 -3.298679098453292e+00 + -3.300106713632883e+00 -3.301537129207062e+00 -3.302970346938195e+00 -3.304406367952729e+00 -3.305845193592728e+00 + -3.307286826698660e+00 -3.308731270022015e+00 -3.310178524459931e+00 -3.311628590794006e+00 -3.313081471198005e+00 + -3.314537168271639e+00 -3.315995684926260e+00 -3.317457023622331e+00 -3.318921184705128e+00 -3.320388168757214e+00 + -3.321857979425488e+00 -3.323330620242623e+00 -3.324806091220061e+00 -3.326284392457951e+00 -3.327765527932510e+00 + -3.329249501635255e+00 -3.330736313742837e+00 -3.332225964151081e+00 -3.333718455447356e+00 -3.335213790816533e+00 + -3.336711973141963e+00 -3.338213004741188e+00 -3.339716885970061e+00 -3.341223617428788e+00 -3.342733202656698e+00 + -3.344245645175923e+00 -3.345760945500658e+00 -3.347279103963591e+00 -3.348800123179309e+00 -3.350324006237700e+00 + -3.351850755847976e+00 -3.353380374190363e+00 -3.354912861709826e+00 -3.356448219173252e+00 -3.357986450370467e+00 + -3.359527558984502e+00 -3.361071545248283e+00 -3.362618409368982e+00 -3.364168154900880e+00 -3.365720785489059e+00 + -3.367276301794712e+00 -3.368834704260551e+00 -3.370395995439248e+00 -3.371960178388195e+00 -3.373527256073704e+00 + -3.375097230883950e+00 -3.376670102985606e+00 -3.378245872877927e+00 -3.379824544611959e+00 -3.381406122149057e+00 + -3.382990605539988e+00 -3.384577994855671e+00 -3.386168294158221e+00 -3.387761507524905e+00 -3.389357635102426e+00 + -3.390956676825633e+00 -3.392558635712520e+00 -3.394163515324364e+00 -3.395771318312439e+00 -3.397382046745834e+00 + -3.398995701274896e+00 -3.400612282828281e+00 -3.402231794866633e+00 -3.403854240867662e+00 -3.405479621845378e+00 + -3.407107938586081e+00 -3.408739193428916e+00 -3.410373389185216e+00 -3.412010529002203e+00 -3.413650615518111e+00 + -3.415293648999326e+00 -3.416939629995896e+00 -3.418588562564371e+00 -3.420240450691449e+00 -3.421895294577897e+00 + -3.423553094414080e+00 -3.425213854134680e+00 -3.426877577792018e+00 -3.428544266164663e+00 -3.430213919689846e+00 + -3.431886540713168e+00 -3.433562132145608e+00 -3.435240697251321e+00 -3.436922238808692e+00 -3.438606757299870e+00 + -3.440294253397158e+00 -3.441984730829699e+00 -3.443678193368453e+00 -3.445374641894819e+00 -3.447074077051543e+00 + -3.448776501416308e+00 -3.450481918039497e+00 -3.452190329927366e+00 -3.453901739641781e+00 -3.455616148011183e+00 + -3.457333556082980e+00 -3.459053967513855e+00 -3.460777385853499e+00 -3.462503811614361e+00 -3.464233245386620e+00 + -3.465965691108627e+00 -3.467701152771073e+00 -3.469439631225878e+00 -3.471181127031554e+00 -3.472925642711720e+00 + -3.474673181335264e+00 -3.476423746187027e+00 -3.478177340029919e+00 -3.479933963323171e+00 -3.481693616824597e+00 + -3.483456304790008e+00 -3.485222031388338e+00 -3.486990796943019e+00 -3.488762601570069e+00 -3.490537448401365e+00 + -3.492315341151373e+00 -3.494096282849095e+00 -3.495880275915030e+00 -3.497667321021135e+00 -3.499457419173128e+00 + -3.501250574460328e+00 -3.503046790838973e+00 -3.504846068649357e+00 -3.506648408298966e+00 -3.508453814079994e+00 + -3.510262290280344e+00 -3.512073837286068e+00 -3.513888455301771e+00 -3.515706147708129e+00 -3.517526918395819e+00 + -3.519350770119465e+00 -3.521177705073145e+00 -3.523007724344773e+00 -3.524840829328240e+00 -3.526677023747485e+00 + -3.528516311267811e+00 -3.530358692989965e+00 -3.532204169811781e+00 -3.534052744384031e+00 -3.535904419874647e+00 + -3.537759199767289e+00 -3.539617087002065e+00 -3.541478082029144e+00 -3.543342185630307e+00 -3.545209402403708e+00 + -3.547079736777425e+00 -3.548953188682862e+00 -3.550829758143615e+00 -3.552709450048714e+00 -3.554592269345012e+00 + -3.556478216345227e+00 -3.558367291032073e+00 -3.560259496702344e+00 -3.562154837300620e+00 -3.564053316048536e+00 + -3.565954935512961e+00 -3.567859696364639e+00 -3.569767599635964e+00 -3.571678649702049e+00 -3.573592850895430e+00 + -3.575510204035641e+00 -3.577430709619281e+00 -3.579354370364244e+00 -3.581281189700099e+00 -3.583211171681835e+00 + -3.585144319721653e+00 -3.587080634035166e+00 -3.589020115063184e+00 -3.590962767343901e+00 -3.592908595415016e+00 + -3.594857599714854e+00 -3.596809780701911e+00 -3.598765143014713e+00 -3.600723691343250e+00 -3.602685426403352e+00 + -3.604650348553174e+00 -3.606618460694309e+00 -3.608589766473437e+00 -3.610564269974137e+00 -3.612541974573128e+00 + -3.614522880382737e+00 -3.616506987803558e+00 -3.618494301653613e+00 -3.620484826823921e+00 -3.622478564080036e+00 + -3.624475513850586e+00 -3.626475679341938e+00 -3.628479064392689e+00 -3.630485672592619e+00 -3.632495506905407e+00 + -3.634508568039156e+00 -3.636524857004877e+00 -3.638544378280809e+00 -3.640567136287224e+00 -3.642593131745308e+00 + -3.644622365423449e+00 -3.646654841977913e+00 -3.648690566065893e+00 -3.650729538460438e+00 -3.652771759626902e+00 + -3.654817232683972e+00 -3.656865961450936e+00 -3.658917949896158e+00 -3.660973201344661e+00 -3.663031716399031e+00 + -3.665093495929850e+00 -3.667158544602091e+00 -3.669226867066577e+00 -3.671298464123134e+00 -3.673373336353373e+00 + -3.675451487317045e+00 -3.677532921173144e+00 -3.679617641499514e+00 -3.681705651197185e+00 -3.683796951041065e+00 + -3.685891542158701e+00 -3.687989429214330e+00 -3.690090616811484e+00 -3.692195105774196e+00 -3.694302896934788e+00 + -3.696413994938233e+00 -3.698528404463948e+00 -3.700646126516483e+00 -3.702767161822413e+00 -3.704891513671268e+00 + -3.707019186005269e+00 -3.709150182814482e+00 -3.711284507419287e+00 -3.713422160413482e+00 -3.715563142750310e+00 + -3.717707459547388e+00 -3.719855115839397e+00 -3.722006112164920e+00 -3.724160448777861e+00 -3.726318129289493e+00 + -3.728479158099316e+00 -3.730643539402395e+00 -3.732811276589775e+00 -3.734982370040845e+00 -3.737156820495128e+00 + -3.739334633144358e+00 -3.741515813112657e+00 -3.743700360801490e+00 -3.745888276640612e+00 -3.748079565895588e+00 + -3.750274233918474e+00 -3.752472281571475e+00 -3.754673709335501e+00 -3.756878520656135e+00 -3.759086719721971e+00 + -3.761298310728990e+00 -3.763513297133539e+00 -3.765731679426046e+00 -3.767953458457793e+00 -3.770178639489403e+00 + -3.772407227784000e+00 -3.774639224205367e+00 -3.776874629489326e+00 -3.779113448259203e+00 -3.781355685279774e+00 + -3.783601341994148e+00 -3.785850419525435e+00 -3.788102921038436e+00 -3.790358850378410e+00 -3.792618212070778e+00 + -3.794881010002580e+00 -3.797147244827153e+00 -3.799416917428862e+00 -3.801690032849888e+00 -3.803966596190487e+00 + -3.806246608625402e+00 -3.808530070983860e+00 -3.810816986638503e+00 -3.813107359693981e+00 -3.815401194639556e+00 + -3.817698495297397e+00 -3.819999262436677e+00 -3.822303497093916e+00 -3.824611204428034e+00 -3.826922389548483e+00 + -3.829237053244454e+00 -3.831555196353405e+00 -3.833876824226091e+00 -3.836201942201953e+00 -3.838530551061888e+00 + -3.840862651326505e+00 -3.843198247033778e+00 -3.845537342919513e+00 -3.847879942993476e+00 -3.850226050562932e+00 + -3.852575666851148e+00 -3.854928793361406e+00 -3.857285434801036e+00 -3.859645595950435e+00 -3.862009278678248e+00 + -3.864376484523473e+00 -3.866747216618300e+00 -3.869121478726629e+00 -3.871499275546047e+00 -3.873880611182955e+00 + -3.876265486445322e+00 -3.878653902389424e+00 -3.881045864363169e+00 -3.883441377687285e+00 -3.885840443282151e+00 + -3.888243062046155e+00 -3.890649239190073e+00 -3.893058980047241e+00 -3.895472286128841e+00 -3.897889158595383e+00 + -3.900309601026809e+00 -3.902733617656517e+00 -3.905161212912323e+00 -3.907592390603840e+00 -3.910027151873432e+00 + -3.912465498159137e+00 -3.914907434748928e+00 -3.917352966879188e+00 -3.919802095729995e+00 -3.922254822259626e+00 + -3.924711150595445e+00 -3.927171085542605e+00 -3.929634631448325e+00 -3.932101791843537e+00 -3.934572567451927e+00 + -3.937046959532740e+00 -3.939524974294695e+00 -3.942006617767883e+00 -3.944491890318428e+00 -3.946980792233828e+00 + -3.949473329151056e+00 -3.951969506957779e+00 -3.954469327195002e+00 -3.956972790971958e+00 -3.959479902017460e+00 + -3.961990664762499e+00 -3.964505083827194e+00 -3.967023163167552e+00 -3.969544903893966e+00 -3.972070307479498e+00 + -3.974599379693463e+00 -3.977132126179292e+00 -3.979668547780628e+00 -3.982208645099321e+00 -3.984752422569858e+00 + -3.987299885436030e+00 -3.989851038346246e+00 -3.992405885069993e+00 -3.994964426456437e+00 -3.997526663815754e+00 + -4.000092603222488e+00 -4.002662250581340e+00 -4.005235606353252e+00 -4.007812671084819e+00 -4.010393451108941e+00 + -4.012977952843547e+00 -4.015566177260363e+00 -4.018158124897606e+00 -4.020753800005660e+00 -4.023353207686703e+00 + -4.025956352737950e+00 -4.028563239140089e+00 -4.031173867912699e+00 -4.033788240453579e+00 -4.036406362634527e+00 + -4.039028240314873e+00 -4.041653874830120e+00 -4.044283267179555e+00 -4.046916421541453e+00 -4.049553342894448e+00 + -4.052194036239657e+00 -4.054838505774454e+00 -4.057486752458788e+00 -4.060138777601743e+00 -4.062794587146426e+00 + -4.065454187011838e+00 -4.068117578386588e+00 -4.070784762448621e+00 -4.073455745063631e+00 -4.076130532171974e+00 + -4.078809125324914e+00 -4.081491525652789e+00 -4.084177736991329e+00 -4.086867764089578e+00 -4.089561612644448e+00 + -4.092259287473573e+00 -4.094960788929582e+00 -4.097666117736884e+00 -4.100375280572002e+00 -4.103088284211306e+00 + -4.105805129878449e+00 -4.108525818267906e+00 -4.111250353510137e+00 -4.113978740671802e+00 -4.116710985128399e+00 + -4.119447091422845e+00 -4.122187060458915e+00 -4.124930893522407e+00 -4.127678597066370e+00 -4.130430177441071e+00 + -4.133185635418395e+00 -4.135944971791250e+00 -4.138708193015015e+00 -4.141475305696859e+00 -4.144246311388639e+00 + -4.147021211130915e+00 -4.149800008974389e+00 -4.152582709893380e+00 -4.155369319546537e+00 -4.158159842709882e+00 + -4.160954279944561e+00 -4.163752632239020e+00 -4.166554906505763e+00 -4.169361109687737e+00 -4.172171242925584e+00 + -4.174985306927709e+00 -4.177803306475812e+00 -4.180625247195196e+00 -4.183451134012302e+00 -4.186280970992621e+00 + -4.189114759456745e+00 -4.191952501240072e+00 -4.194794202982180e+00 -4.197639871116617e+00 -4.200489506448629e+00 + -4.203343109834506e+00 -4.206200687962978e+00 -4.209062247657938e+00 -4.211927790451525e+00 -4.214797317400862e+00 + -4.217670832954751e+00 -4.220548342457539e+00 -4.223429851444060e+00 -4.226315364591702e+00 -4.229204882957573e+00 + -4.232098408004153e+00 -4.234995946435681e+00 -4.237897504949240e+00 -4.240803084971501e+00 -4.243712687544032e+00 + -4.246626317438374e+00 -4.249543980343883e+00 -4.252465681891192e+00 -4.255391426705907e+00 -4.258321215452209e+00 + -4.261255049361277e+00 -4.264192935893713e+00 -4.267134882389568e+00 -4.270080889477248e+00 -4.273030957691918e+00 + -4.275985093907401e+00 -4.278943305249538e+00 -4.281905593513557e+00 -4.284871959946388e+00 -4.287842408932329e+00 + -4.290816945777364e+00 -4.293795576336856e+00 -4.296778305653331e+00 -4.299765134968560e+00 -4.302756065899131e+00 + -4.305751105361620e+00 -4.308750260118541e+00 -4.311753531016159e+00 -4.314760919008608e+00 -4.317772431397722e+00 + -4.320788075591533e+00 -4.323807853075197e+00 -4.326831764792573e+00 -4.329859815445223e+00 -4.332892010759197e+00 + -4.335928356800809e+00 -4.338968858700405e+00 -4.342013517504197e+00 -4.345062334602749e+00 -4.348115316848165e+00 + -4.351172471198577e+00 -4.354233799574710e+00 -4.357299303495111e+00 -4.360368987907023e+00 -4.363442858590077e+00 + -4.366520921224746e+00 -4.369603180592436e+00 -4.372689637977453e+00 -4.375780295145305e+00 -4.378875159283436e+00 + -4.381974237486932e+00 -4.385077531059527e+00 -4.388185041309383e+00 -4.391296775353732e+00 -4.394412740393244e+00 + -4.397532938153312e+00 -4.400657369887305e+00 -4.403786040435705e+00 -4.406918955633090e+00 -4.410056121703311e+00 + -4.413197543940346e+00 -4.416343223529426e+00 -4.419493162052248e+00 -4.422647366785128e+00 -4.425805845047289e+00 + -4.428968598634965e+00 -4.432135628892382e+00 -4.435306940878729e+00 -4.438482540596634e+00 -4.441662434107552e+00 + -4.444846626509031e+00 -4.448035118984182e+00 -4.451227913265940e+00 -4.454425017200977e+00 -4.457626438485681e+00 + -4.460832178101560e+00 -4.464042236947444e+00 -4.467256622306292e+00 -4.470475341701105e+00 -4.473698397230936e+00 + -4.476925790483307e+00 -4.480157526423565e+00 -4.483393610985775e+00 -4.486634050601043e+00 -4.489878850742320e+00 + -4.493128012552872e+00 -4.496381537630165e+00 -4.499639433718156e+00 -4.502901708553144e+00 -4.506168363694287e+00 + -4.509439400268067e+00 -4.512714823847340e+00 -4.515994641019672e+00 -4.519278857985080e+00 -4.522567479881829e+00 + -4.525860507988668e+00 -4.529157944122721e+00 -4.532459796114085e+00 -4.535766071688615e+00 -4.539076772142213e+00 + -4.542391898765175e+00 -4.545711459255270e+00 -4.549035461446213e+00 -4.552363907308053e+00 -4.555696798263391e+00 + -4.559034139408705e+00 -4.562375936904542e+00 -4.565722197493832e+00 -4.569072926948550e+00 -4.572428126574475e+00 + -4.575787798129616e+00 -4.579151949647104e+00 -4.582520589075836e+00 -4.585893717752653e+00 -4.589271336639746e+00 + -4.592653451812744e+00 -4.596040070428725e+00 -4.599431198857142e+00 -4.602826842289216e+00 -4.606227001990830e+00 + -4.609631679831751e+00 -4.613040884022596e+00 -4.616454622677202e+00 -4.619872897181441e+00 -4.623295708819967e+00 + -4.626723065200532e+00 -4.630154974192006e+00 -4.633591438384649e+00 -4.637032459790966e+00 -4.640478043391029e+00 + -4.643928195196958e+00 -4.647382922381489e+00 -4.650842231139545e+00 -4.654306122594169e+00 -4.657774598295235e+00 + -4.661247666571815e+00 -4.664725335805659e+00 -4.668207607810025e+00 -4.671694483876048e+00 -4.675185969774820e+00 + -4.678682072408495e+00 -4.682182798723523e+00 -4.685688154522786e+00 -4.689198140990583e+00 -4.692712759891060e+00 + -4.696232019926335e+00 -4.699755929666950e+00 -4.703284490219185e+00 -4.706817702626076e+00 -4.710355575141943e+00 + -4.713898116290367e+00 -4.717445328460708e+00 -4.720997213393779e+00 -4.724553776370427e+00 -4.728115023824750e+00 + -4.731680963263822e+00 -4.735251601139764e+00 -4.738826938611875e+00 -4.742406977241646e+00 -4.745991725492132e+00 + -4.749581191958943e+00 -4.753175378866366e+00 -4.756774287871428e+00 -4.760377924733439e+00 -4.763986296289299e+00 + -4.767599409584012e+00 -4.771217270615820e+00 -4.774839880987831e+00 -4.778467242836293e+00 -4.782099364825118e+00 + -4.785736255481164e+00 -4.789377916255392e+00 -4.793024348603915e+00 -4.796675561079348e+00 -4.800331562360717e+00 + -4.803992354536202e+00 -4.807657939173200e+00 -4.811328322346788e+00 -4.815003511262576e+00 -4.818683513140625e+00 + -4.822368334073276e+00 -4.826057975627521e+00 -4.829752439872078e+00 -4.833451735407881e+00 -4.837155870922971e+00 + -4.840864848921632e+00 -4.844578671297884e+00 -4.848297343688468e+00 -4.852020872870312e+00 -4.855749266438375e+00 + -4.859482530948563e+00 -4.863220667982479e+00 -4.866963679596293e+00 -4.870711574718753e+00 -4.874464362148352e+00 + -4.878222043289993e+00 -4.881984619584831e+00 -4.885752100012597e+00 -4.889524493673498e+00 -4.893301802611106e+00 + -4.897084028340568e+00 -4.900871177319985e+00 -4.904663257144151e+00 -4.908460275011687e+00 -4.912262236942902e+00 + -4.916069144641015e+00 -4.919881000415621e+00 -4.923697813318887e+00 -4.927519592402767e+00 -4.931346339975771e+00 + -4.935178057730553e+00 -4.939014751639765e+00 -4.942856428895341e+00 -4.946703097286389e+00 -4.950554763469543e+00 + -4.954411428974413e+00 -4.958273095882141e+00 -4.962139773607051e+00 -4.966011471374763e+00 -4.969888190322918e+00 + -4.973769931656962e+00 -4.977656704941523e+00 -4.981548519919207e+00 -4.985445378685372e+00 -4.989347282670139e+00 + -4.993254238289898e+00 -4.997166253181426e+00 -5.001083334876794e+00 -5.005005489750602e+00 -5.008932719652265e+00 + -5.012865027026571e+00 -5.016802421224969e+00 -5.020744911403345e+00 -5.024692499028711e+00 -5.028645185619313e+00 + -5.032602980587180e+00 -5.036565893470627e+00 -5.040533926419334e+00 -5.044507081015939e+00 -5.048485363963517e+00 + -5.052468783200935e+00 -5.056457346489804e+00 -5.060451060330298e+00 -5.064449926354071e+00 -5.068453946757710e+00 + -5.072463130865962e+00 -5.076477488052552e+00 -5.080497020758939e+00 -5.084521730904982e+00 -5.088551625256381e+00 + -5.092586711696772e+00 -5.096626997735727e+00 -5.100672489712744e+00 -5.104723189661156e+00 -5.108779100266077e+00 + -5.112840231125939e+00 -5.116906591587866e+00 -5.120978183080382e+00 -5.125055007124604e+00 -5.129137073530554e+00 + -5.133224392250169e+00 -5.137316965514153e+00 -5.141414794882011e+00 -5.145517886949661e+00 -5.149626249667421e+00 + -5.153739891366810e+00 -5.157858819095347e+00 -5.161983034383363e+00 -5.166112539324860e+00 -5.170247343785729e+00 + -5.174387457616170e+00 -5.178532882831751e+00 -5.182683620936045e+00 -5.186839679219287e+00 -5.191001066208124e+00 + -5.195167789588259e+00 -5.199339855740569e+00 -5.203517266667578e+00 -5.207700025095241e+00 -5.211888141021600e+00 + -5.216081624199723e+00 -5.220280476130696e+00 -5.224484698310884e+00 -5.228694300469721e+00 -5.232909292611727e+00 + -5.237129677608738e+00 -5.241355457600706e+00 -5.245586638932716e+00 -5.249823229255573e+00 -5.254065237237846e+00 + -5.258312670369801e+00 -5.262565530410686e+00 -5.266823819583928e+00 -5.271087547700648e+00 -5.275356724632263e+00 + -5.279631352903723e+00 -5.283911434448228e+00 -5.288196976178466e+00 -5.292487986327965e+00 -5.296784473434150e+00 + -5.301086444698075e+00 -5.305393901671405e+00 -5.309706846569482e+00 -5.314025289911748e+00 -5.318349242027271e+00 + -5.322678704179561e+00 -5.327013677718438e+00 -5.331354173404511e+00 -5.335700202105029e+00 -5.340051765703035e+00 + -5.344408865432155e+00 -5.348771508912536e+00 -5.353139705124518e+00 -5.357513462102698e+00 -5.361892786505948e+00 + -5.366277680435933e+00 -5.370668146715638e+00 -5.375064195610523e+00 -5.379465837274747e+00 -5.383873073974794e+00 + -5.388285907439377e+00 -5.392704345133761e+00 -5.397128395890300e+00 -5.401558068273167e+00 -5.405993369375257e+00 + -5.410434300672517e+00 -5.414880864443758e+00 -5.419333071796174e+00 -5.423790933634701e+00 -5.428254451226888e+00 + -5.432723625834648e+00 -5.437198468334746e+00 -5.441678989715544e+00 -5.446165191796978e+00 -5.450657075821366e+00 + -5.455154649888983e+00 -5.459657923508107e+00 -5.464166904961132e+00 -5.468681600997277e+00 -5.473202013458992e+00 + -5.477728145011161e+00 -5.482260006515158e+00 -5.486797608759512e+00 -5.491340954044872e+00 -5.495890044003880e+00 + -5.500444886085005e+00 -5.505005489175888e+00 -5.509571862105057e+00 -5.514144012303452e+00 -5.518721941670775e+00 + -5.523305652810777e+00 -5.527895156674663e+00 -5.532490463993778e+00 -5.537091576272570e+00 -5.541698495053784e+00 + -5.546311231260242e+00 -5.550929796018560e+00 -5.555554191890502e+00 -5.560184420697174e+00 -5.564820489861896e+00 + -5.569462408240030e+00 -5.574110184812914e+00 -5.578763827204064e+00 -5.583423337479740e+00 -5.588088718319627e+00 + -5.592759980414353e+00 -5.597437134453794e+00 -5.602120183113874e+00 -5.606809128447821e+00 -5.611503978032022e+00 + -5.616204740842362e+00 -5.620911425929568e+00 -5.625624040919794e+00 -5.630342587666039e+00 -5.635067068763208e+00 + -5.639797495546991e+00 -5.644533879170592e+00 -5.649276221316504e+00 -5.654024523642824e+00 -5.658778797180806e+00 + -5.663539053129186e+00 -5.668305293983524e+00 -5.673077521581335e+00 -5.677855743831122e+00 -5.682639970117403e+00 + -5.687430209657800e+00 -5.692226470164904e+00 -5.697028753498052e+00 -5.701837062188433e+00 -5.706651407307890e+00 + -5.711471800003379e+00 -5.716298243181697e+00 -5.721130739014699e+00 -5.725969294974640e+00 -5.730813920019088e+00 + -5.735664623746429e+00 -5.740521414337008e+00 -5.745384293658165e+00 -5.750253264219532e+00 -5.755128337412918e+00 + -5.760009524502356e+00 -5.764896827358567e+00 -5.769790247833362e+00 -5.774689797096235e+00 -5.779595486532854e+00 + -5.784507319075965e+00 -5.789425296924678e+00 -5.794349427796488e+00 -5.799279720850703e+00 -5.804216185495535e+00 + -5.809158829710795e+00 -5.814107655513784e+00 -5.819062665706917e+00 -5.824023872195552e+00 -5.828991286593848e+00 + -5.833964910248241e+00 -5.838944744496904e+00 -5.843930800912663e+00 -5.848923091405570e+00 -5.853921618999967e+00 + -5.858926385866531e+00 -5.863937399646989e+00 -5.868954669511408e+00 -5.873978205272220e+00 -5.879008015280387e+00 + -5.884044101398642e+00 -5.889086466127434e+00 -5.894135121006329e+00 -5.899190077679159e+00 -5.904251339167730e+00 + -5.909318907675908e+00 -5.914392790757818e+00 -5.919472997569684e+00 -5.924559538325873e+00 -5.929652421747786e+00 + -5.934751649526802e+00 -5.939857223994977e+00 -5.944969157077114e+00 -5.950087460588470e+00 -5.955212136313389e+00 + -5.960343186070434e+00 -5.965480621845905e+00 -5.970624455737114e+00 -5.975774690117698e+00 -5.980931326619691e+00 + -5.986094373632355e+00 -5.991263841186835e+00 -5.996439739124646e+00 -6.001622075628632e+00 -6.006810852436582e+00 + -6.012006072105073e+00 -6.017207746910874e+00 -6.022415889122929e+00 -6.027630501258702e+00 -6.032851585034692e+00 + -6.038079148714933e+00 -6.043313202169935e+00 -6.048553755148549e+00 -6.053800815867540e+00 -6.059054386536941e+00 + -6.064314470164098e+00 -6.069581078952353e+00 -6.074854224823474e+00 -6.080133909377011e+00 -6.085420134277816e+00 + -6.090712911774160e+00 -6.096012254273324e+00 -6.101318164235261e+00 -6.106630643404864e+00 -6.111949700614082e+00 + -6.117275346267099e+00 -6.122607589969956e+00 -6.127946439669295e+00 -6.133291897472249e+00 -6.138643966380033e+00 + -6.144002658809652e+00 -6.149367987035877e+00 -6.154739953348771e+00 -6.160118559324411e+00 -6.165503813667637e+00 + -6.170895726810269e+00 -6.176294308963303e+00 -6.181699568610070e+00 -6.187111507544039e+00 -6.192530128394146e+00 + -6.197955443821025e+00 -6.203387466288188e+00 -6.208826197438971e+00 -6.214271638855750e+00 -6.219723802697215e+00 + -6.225182701452046e+00 -6.230648338352550e+00 -6.236120715733020e+00 -6.241599841591995e+00 -6.247085725644578e+00 + -6.252578378807894e+00 -6.258077810320607e+00 -6.263584021505486e+00 -6.269097014385768e+00 -6.274616801702433e+00 + -6.280143396389799e+00 -6.285676801437800e+00 -6.291217018848358e+00 -6.296764056615736e+00 -6.302317924554712e+00 + -6.307878633769864e+00 -6.313446193664602e+00 -6.319020605547922e+00 -6.324601871487839e+00 -6.330190004682891e+00 + -6.335785018206249e+00 -6.341386913499118e+00 -6.346995691980793e+00 -6.352611366614864e+00 -6.358233950592316e+00 + -6.363863446469443e+00 -6.369499855900457e+00 -6.375143187565898e+00 -6.380793451939097e+00 -6.386450659638202e+00 + -6.392114819555641e+00 -6.397785933536126e+00 -6.403464004233896e+00 -6.409149044588990e+00 -6.414841067513965e+00 + -6.420540075525660e+00 -6.426246070301758e+00 -6.431959060559017e+00 -6.437679056917068e+00 -6.443406070567963e+00 + -6.449140110779302e+00 -6.454881178548420e+00 -6.460629275812415e+00 -6.466384416537711e+00 -6.472146614484319e+00 + -6.477915870557313e+00 -6.483692185657911e+00 -6.489475573526882e+00 -6.495266048141532e+00 -6.501063611585819e+00 + -6.506868264986595e+00 -6.512680017535606e+00 -6.518498880384615e+00 -6.524324864460620e+00 -6.530157978732819e+00 + -6.535998224564008e+00 -6.541845604255500e+00 -6.547700131469085e+00 -6.553561819849423e+00 -6.559430671612207e+00 + -6.565306688088189e+00 -6.571189878497283e+00 -6.577080253965905e+00 -6.582977825357318e+00 -6.588882601649868e+00 + -6.594794584545345e+00 -6.600713776640095e+00 -6.606640191385222e+00 -6.612573842086468e+00 -6.618514730613387e+00 + -6.624462858757332e+00 -6.630418239433046e+00 -6.636380885778538e+00 -6.642350800701542e+00 -6.648327986279747e+00 + -6.654312451500913e+00 -6.660304207148021e+00 -6.666303264274883e+00 -6.672309632144893e+00 -6.678323312588955e+00 + -6.684344308236361e+00 -6.690372632342481e+00 -6.696408298209058e+00 -6.702451308697293e+00 -6.708501665794167e+00 + -6.714559378430309e+00 -6.720624457416141e+00 -6.726696914137652e+00 -6.732776758078630e+00 -6.738863990538500e+00 + -6.744958613795213e+00 -6.751060642225177e+00 -6.757170089911689e+00 -6.763286957667176e+00 -6.769411246357500e+00 + -6.775542970333119e+00 -6.781682144164359e+00 -6.787828769816468e+00 -6.793982848306231e+00 -6.800144389461610e+00 + -6.806313405086916e+00 -6.812489906080716e+00 -6.818673901333698e+00 -6.824865392610781e+00 -6.831064382650163e+00 + -6.837270885208925e+00 -6.843484914029985e+00 -6.849706471780753e+00 -6.855935560196301e+00 -6.862172188357874e+00 + -6.868416367348060e+00 -6.874668108908677e+00 -6.880927422841348e+00 -6.887194310527692e+00 -6.893468774218006e+00 + -6.899750828057308e+00 -6.906040486046904e+00 -6.912337749718504e+00 -6.918642620544160e+00 -6.924955112226868e+00 + -6.931275238742860e+00 -6.937603002930438e+00 -6.943938406703657e+00 -6.950281459417487e+00 -6.956632172330878e+00 + -6.962990556877839e+00 -6.969356622516854e+00 -6.975730370629293e+00 -6.982111803620415e+00 -6.988500936068168e+00 + -6.994897782349220e+00 -7.001302343862422e+00 -7.007714621896787e+00 -7.014134630279748e+00 -7.020562383120512e+00 + -7.026997883116998e+00 -7.033441132058707e+00 -7.039892139512705e+00 -7.046350916975187e+00 -7.052817475881351e+00 + -7.059291825658977e+00 -7.065773967767182e+00 -7.072263904706783e+00 -7.078761651114045e+00 -7.085267221537997e+00 + -7.091780618043302e+00 -7.098301841735545e+00 -7.104830902368316e+00 -7.111367811800725e+00 -7.117912581665987e+00 + -7.124465221496127e+00 -7.131025732644298e+00 -7.137594117517873e+00 -7.144170390919956e+00 -7.150754567380619e+00 + -7.157346647942116e+00 -7.163946633668109e+00 -7.170554539195697e+00 -7.177170379365883e+00 -7.183794156261903e+00 + -7.190425870988396e+00 -7.197065533493338e+00 -7.203713155838439e+00 -7.210368749697043e+00 -7.217032324589560e+00 + -7.223703881813015e+00 -7.230383423705708e+00 -7.237070964994412e+00 -7.243766520390449e+00 -7.250470092154861e+00 + -7.257181681552523e+00 -7.263901298313877e+00 -7.270628954301988e+00 -7.277364661444877e+00 -7.284108429522252e+00 + -7.290860259655573e+00 -7.297620154032538e+00 -7.304388127764033e+00 -7.311164195737019e+00 -7.317948359019635e+00 + -7.324740618617562e+00 -7.331540989105481e+00 -7.338349485298712e+00 -7.345166109406192e+00 -7.351990862719772e+00 + -7.358823755469352e+00 -7.365664799915581e+00 -7.372514007504119e+00 -7.379371387574386e+00 -7.386236941855793e+00 + -7.393110673113762e+00 -7.399992595867711e+00 -7.406882724521767e+00 -7.413781061264927e+00 -7.420687607444220e+00 + -7.427602373253923e+00 -7.434525370953283e+00 -7.441456612214240e+00 -7.448396106579596e+00 -7.455343855662903e+00 + -7.462299862106879e+00 -7.469264140600134e+00 -7.476236705537742e+00 -7.483217558094771e+00 -7.490206699573982e+00 + -7.497204145008848e+00 -7.504209909607961e+00 -7.511223995549668e+00 -7.518246403916826e+00 -7.525277144440522e+00 + -7.532316229110418e+00 -7.539363670302306e+00 -7.546419478207750e+00 -7.553483653895294e+00 -7.560556199398457e+00 + -7.567637129733686e+00 -7.574726459966183e+00 -7.581824192373288e+00 -7.588930328179804e+00 -7.596044877188221e+00 + -7.603167851392376e+00 -7.610299262973792e+00 -7.617439121971403e+00 -7.624587429666054e+00 -7.631744188388593e+00 + -7.638909413427992e+00 -7.646083119762239e+00 -7.653265308167305e+00 -7.660455979470388e+00 -7.667655148905554e+00 + -7.674862831955687e+00 -7.682079030692125e+00 -7.689303746121935e+00 -7.696536988406601e+00 -7.703778769965018e+00 + -7.711029103091334e+00 -7.718287997777487e+00 -7.725555454931286e+00 -7.732831476489904e+00 -7.740116077592081e+00 + -7.747409273463959e+00 -7.754711066479733e+00 -7.762021457991705e+00 -7.769340458116517e+00 -7.776668079072852e+00 + -7.784004332723263e+00 -7.791349228774319e+00 -7.798702768664788e+00 -7.806064954991001e+00 -7.813435803247359e+00 + -7.820815328504128e+00 -7.828203531237023e+00 -7.835600412067597e+00 -7.843005986795347e+00 -7.850420271453628e+00 + -7.857843267833355e+00 -7.865274976500961e+00 -7.872715407367362e+00 -7.880164572827870e+00 -7.887622485870939e+00 + -7.895089157097287e+00 -7.902564586963549e+00 -7.910048776908389e+00 -7.917541742442640e+00 -7.925043499243823e+00 + -7.932554049584044e+00 -7.940073394568305e+00 -7.947601544038569e+00 -7.955138510136092e+00 -7.962684305462377e+00 + -7.970238940357911e+00 -7.977802415658878e+00 -7.985374733292938e+00 -7.992955909057959e+00 -8.000545958501995e+00 + -8.008144882303682e+00 -8.015752681155906e+00 -8.023369370677967e+00 -8.030994966700497e+00 -8.038629470973136e+00 + -8.046272884117311e+00 -8.053925216322545e+00 -8.061586480220186e+00 -8.069256688640843e+00 -8.076935852017314e+00 + -8.084623970991846e+00 -8.092321047230506e+00 -8.100027096285098e+00 -8.107742133772728e+00 -8.115466161685978e+00 + -8.123199180963685e+00 -8.130941201954130e+00 -8.138692237272345e+00 -8.146452299190864e+00 -8.154221397655556e+00 + -8.161999533648068e+00 -8.169786709369063e+00 -8.177582940859525e+00 -8.185388243772254e+00 -8.193202618367051e+00 + -8.201026064968486e+00 -8.208858599553158e+00 -8.216700238370747e+00 -8.224550983111227e+00 -8.232410834288519e+00 + -8.240279802271914e+00 -8.248157899820946e+00 -8.256045139400785e+00 -8.263941531127587e+00 -8.271847076015916e+00 + -8.279761776165609e+00 -8.287685647119202e+00 -8.295618704371698e+00 -8.303560949785306e+00 -8.311512384182917e+00 + -8.319473017862927e+00 -8.327442863513763e+00 -8.335421933908444e+00 -8.343410239406900e+00 -8.351407780632112e+00 + -8.359414559352070e+00 -8.367430591651793e+00 -8.375455893292965e+00 -8.383490464426892e+00 -8.391534305333888e+00 + -8.399587432420665e+00 -8.407649862295598e+00 -8.415721596247392e+00 -8.423802634359653e+00 -8.431892987215194e+00 + -8.439992667917126e+00 -8.448101689150496e+00 -8.456220061058572e+00 -8.464347784035521e+00 -8.472484859778373e+00 + -8.480631304944675e+00 -8.488787135775029e+00 -8.496952351881781e+00 -8.505126952972617e+00 -8.513310955764712e+00 + -8.521504377280520e+00 -8.529707218754108e+00 -8.537919480083488e+00 -8.546141171610756e+00 -8.554372306334406e+00 + -8.562612897434500e+00 -8.570862955488629e+00 -8.579122480482935e+00 -8.587391473585072e+00 -8.595669951280222e+00 + -8.603957930092136e+00 -8.612255411381385e+00 -8.620562395277888e+00 -8.628878892152137e+00 -8.637204914976417e+00 + -8.645540476889700e+00 -8.653885588365707e+00 -8.662240249050400e+00 -8.670604460002718e+00 -8.678978238761259e+00 + -8.687361602440037e+00 -8.695754549975142e+00 -8.704157080317993e+00 -8.712569210659231e+00 -8.720990958572770e+00 + -8.729422324926496e+00 -8.737863309144757e+00 -8.746313921583734e+00 -8.754774175423437e+00 -8.763244084207386e+00 + -8.771723658743657e+00 -8.780212898534927e+00 -8.788711804325507e+00 -8.797220393131562e+00 -8.805738681960509e+00 + -8.814266671512945e+00 -8.822804361262596e+00 -8.831351762082482e+00 -8.839908887544672e+00 -8.848475750618142e+00 + -8.857052361519681e+00 -8.865638720060298e+00 -8.874234827408518e+00 -8.882840700568694e+00 -8.891456356239988e+00 + -8.900081794065120e+00 -8.908717013654563e+00 -8.917362031546196e+00 -8.926016864607513e+00 -8.934681514097109e+00 + -8.943355979966887e+00 -8.952040272550780e+00 -8.960734404827180e+00 -8.969438389970174e+00 -8.978152238557112e+00 + -8.986875950582608e+00 -8.995609527224275e+00 -9.004352984974421e+00 -9.013106340348738e+00 -9.021869594641789e+00 + -9.030642747850949e+00 -9.039425810005964e+00 -9.048218793898496e+00 -9.057021713335553e+00 -9.065834579375275e+00 + -9.074657391064932e+00 -9.083490148798390e+00 -9.092332870366718e+00 -9.101185573233034e+00 -9.110048256151465e+00 + -9.118920917820537e+00 -9.127803575425368e+00 -9.136696246597257e+00 -9.145598932265708e+00 -9.154511631860180e+00 + -9.163434355511646e+00 -9.172367116215408e+00 -9.181309927722621e+00 -9.190262801063124e+00 -9.199225735625708e+00 + -9.208198731948572e+00 -9.217181806808554e+00 -9.226174977077383e+00 -9.235178243767663e+00 -9.244191606592038e+00 + -9.253215075922315e+00 -9.262248664894432e+00 -9.271292387041701e+00 -9.280346253080740e+00 -9.289410262064051e+00 + -9.298484414471314e+00 -9.307568728155069e+00 -9.316663220573421e+00 -9.325767890233902e+00 -9.334882735648362e+00 + -9.344007774296474e+00 -9.353143024056331e+00 -9.362288485431986e+00 -9.371444157433135e+00 -9.380610050466057e+00 + -9.389786177888119e+00 -9.398972553464475e+00 -9.408169188076664e+00 -9.417376080663951e+00 -9.426593231436920e+00 + -9.435820657633688e+00 -9.445058376575700e+00 -9.454306388890288e+00 -9.463564693828612e+00 -9.472833301831271e+00 + -9.482112226230582e+00 -9.491401480736307e+00 -9.500701076124317e+00 -9.510011011057383e+00 -9.519331285649606e+00 + -9.528661917933491e+00 -9.538002925632075e+00 -9.547354307312132e+00 -9.556716061430350e+00 -9.566088205159264e+00 + -9.575470756067922e+00 -9.584863714595665e+00 -9.594267079809105e+00 -9.603680862413734e+00 -9.613105076017005e+00 + -9.622539734195460e+00 -9.631984847535897e+00 -9.641440414697058e+00 -9.650906435763309e+00 -9.660382928449559e+00 + -9.669869910482992e+00 -9.679367382009378e+00 -9.688875341677877e+00 -9.698393799732578e+00 -9.707922769547205e+00 + -9.717462265419133e+00 -9.727012298576232e+00 -9.736572867044643e+00 -9.746143970285512e+00 -9.755725626701739e+00 + -9.765317854403191e+00 -9.774920651385886e+00 -9.784534015610914e+00 -9.794157965013451e+00 -9.803792517858509e+00 + -9.813437673756464e+00 -9.823093430886084e+00 -9.832759800354408e+00 -9.842436796281985e+00 -9.852124431915341e+00 + -9.861822717446652e+00 -9.871531651724764e+00 -9.881251235098006e+00 -9.890981485255914e+00 -9.900722419735771e+00 + -9.910474038124631e+00 -9.920236338721825e+00 -9.930009332625946e+00 -9.939793033953066e+00 -9.949587456089942e+00 + -9.959392609292857e+00 -9.969208492025555e+00 -9.979035104343238e+00 -9.988872464459540e+00 -9.998720590171930e+00 + -1.000857947945488e+01 -1.001844913033355e+01 -1.002832956085879e+01 -1.003822078906736e+01 -1.004812281291406e+01 + -1.005803562971182e+01 -1.006795925428782e+01 -1.007789370360111e+01 -1.008783898562387e+01 -1.009779510571246e+01 + -1.010776206774677e+01 -1.011773987740720e+01 -1.012772854905251e+01 -1.013772809631413e+01 -1.014773852123577e+01 + -1.015775982444731e+01 -1.016779201251112e+01 -1.017783509576905e+01 -1.018788909374848e+01 -1.019795402262726e+01 + -1.020802987599985e+01 -1.021811664796306e+01 -1.022821435720666e+01 -1.023832302389762e+01 -1.024844264951883e+01 + -1.025857323411911e+01 -1.026871479069502e+01 -1.027886733277511e+01 -1.028903086306819e+01 -1.029920538356622e+01 + -1.030939090421369e+01 -1.031958743714735e+01 -1.032979499532081e+01 -1.034001358910991e+01 -1.035024321776280e+01 + -1.036048388191000e+01 -1.037073559883907e+01 -1.038099838556339e+01 -1.039127224134250e+01 -1.040155716512729e+01 + -1.041185317238784e+01 -1.042216027887615e+01 -1.043247848495290e+01 -1.044280779013644e+01 -1.045314820596725e+01 + -1.046349974688984e+01 -1.047386242694284e+01 -1.048423625623699e+01 -1.049462122957744e+01 -1.050501734396915e+01 + -1.051542462052187e+01 -1.052584308069211e+01 -1.053627272321853e+01 -1.054671354447971e+01 -1.055716555413174e+01 + -1.056762876571201e+01 -1.057810319500591e+01 -1.058858885406686e+01 -1.059908573777257e+01 -1.060959384260205e+01 + -1.062011318861535e+01 -1.063064379594653e+01 -1.064118566144451e+01 -1.065173878128750e+01 -1.066230317225584e+01 + -1.067287885251234e+01 -1.068346582514766e+01 -1.069406409086973e+01 -1.070467365592747e+01 -1.071529452946521e+01 + -1.072592672666786e+01 -1.073657026057826e+01 -1.074722512963040e+01 -1.075789133336255e+01 -1.076856889033910e+01 + -1.077925781838790e+01 -1.078995811336476e+01 -1.080066977044343e+01 -1.081139280404170e+01 -1.082212723175914e+01 + -1.083287306467895e+01 -1.084363031023443e+01 -1.085439896777578e+01 -1.086517903841335e+01 -1.087597053838113e+01 + -1.088677348334085e+01 -1.089758787154147e+01 -1.090841370173705e+01 -1.091925099211483e+01 -1.093009976068779e+01 + -1.094096000533889e+01 -1.095183172286895e+01 -1.096271492588021e+01 -1.097360962990334e+01 -1.098451584638146e+01 + -1.099543358339704e+01 -1.100636283967740e+01 -1.101730361593110e+01 -1.102825593014644e+01 -1.103921979985815e+01 + -1.105019522350652e+01 -1.106118219809120e+01 -1.107218073394329e+01 -1.108319084475604e+01 -1.109421254433972e+01 + -1.110524584310812e+01 -1.111629073777213e+01 -1.112734722664297e+01 -1.113841532813614e+01 -1.114949506055284e+01 + -1.116058642163307e+01 -1.117168940919924e+01 -1.118280404196459e+01 -1.119393033845125e+01 -1.120506829552628e+01 + -1.121621790821428e+01 -1.122737918582522e+01 -1.123855214233318e+01 -1.124973679608346e+01 -1.126093316109601e+01 + -1.127214122971816e+01 -1.128336099568353e+01 -1.129459247994368e+01 -1.130583570391351e+01 -1.131709066364352e+01 + -1.132835735316995e+01 -1.133963578383626e+01 -1.135092597165251e+01 -1.136222793398803e+01 -1.137354168289046e+01 + -1.138486720776133e+01 -1.139620450077960e+01 -1.140755358788016e+01 -1.141891449467379e+01 -1.143028721171902e+01 + -1.144167172931863e+01 -1.145306807180483e+01 -1.146447626363145e+01 -1.147589629570943e+01 -1.148732815744427e+01 + -1.149877186576219e+01 -1.151022744176966e+01 -1.152169489577362e+01 -1.153317423307527e+01 -1.154466544975234e+01 + -1.155616854500299e+01 -1.156768353973055e+01 -1.157921045411968e+01 -1.159074928377541e+01 -1.160230002278200e+01 + -1.161386268372032e+01 -1.162543728297182e+01 -1.163702383362365e+01 -1.164862234413445e+01 -1.166023280774309e+01 + -1.167185522083641e+01 -1.168348960761297e+01 -1.169513599109641e+01 -1.170679436179895e+01 -1.171846471050954e+01 + -1.173014706163534e+01 -1.174184143967664e+01 -1.175354783588804e+01 -1.176526623959987e+01 -1.177699666569085e+01 + -1.178873913359907e+01 -1.180049365545172e+01 -1.181226023874721e+01 -1.182403887977966e+01 -1.183582957710202e+01 + -1.184763234950681e+01 -1.185944721571250e+01 -1.187127417390187e+01 -1.188311322026980e+01 -1.189496436359524e+01 + -1.190682761635663e+01 -1.191870299324639e+01 -1.193059050542573e+01 -1.194249014771712e+01 -1.195440191732676e+01 + -1.196632583733436e+01 -1.197826192918009e+01 -1.199021018187259e+01 -1.200217058481946e+01 -1.201414316145583e+01 + -1.202612793653577e+01 -1.203812490606177e+01 -1.205013406283600e+01 -1.206215541561094e+01 -1.207418897775090e+01 + -1.208623476511758e+01 -1.209829279023755e+01 -1.211036304979982e+01 -1.212244554104682e+01 -1.213454027927224e+01 + -1.214664728029985e+01 -1.215876654402256e+01 -1.217089806888390e+01 -1.218304186346073e+01 -1.219519793969503e+01 + -1.220736631285608e+01 -1.221954699446002e+01 -1.223173997768314e+01 -1.224394525782826e+01 -1.225616285704409e+01 + -1.226839279716718e+01 -1.228063507193962e+01 -1.229288967419984e+01 -1.230515662126608e+01 -1.231743593190913e+01 + -1.232972760623024e+01 -1.234203164189830e+01 -1.235434804552219e+01 -1.236667682754052e+01 -1.237901800477097e+01 + -1.239137159078778e+01 -1.240373757981251e+01 -1.241611596680448e+01 -1.242850676902663e+01 -1.244091000477032e+01 + -1.245332567413717e+01 -1.246575377485128e+01 -1.247819431331654e+01 -1.249064729993889e+01 -1.250311275245252e+01 + -1.251559068470151e+01 -1.252808108764087e+01 -1.254058395403090e+01 -1.255309930674196e+01 -1.256562716858205e+01 + -1.257816753199971e+01 -1.259072038911156e+01 -1.260328576106586e+01 -1.261586366917709e+01 -1.262845410639316e+01 + -1.264105706405277e+01 -1.265367255542431e+01 -1.266630059802175e+01 -1.267894120441173e+01 -1.269159438291520e+01 + -1.270426012981745e+01 -1.271693844300063e+01 -1.272962933876972e+01 -1.274233283335257e+01 -1.275504892424538e+01 + -1.276777760888006e+01 -1.278051890316245e+01 -1.279327282335948e+01 -1.280603936870822e+01 -1.281881853703964e+01 + -1.283161033759003e+01 -1.284441478278821e+01 -1.285723188642777e+01 -1.287006165845383e+01 -1.288290409205257e+01 + -1.289575918258311e+01 -1.290862695085492e+01 -1.292150741744502e+01 -1.293440057655018e+01 -1.294730642109768e+01 + -1.296022496531707e+01 -1.297315622664438e+01 -1.298610021403966e+01 -1.299905693252094e+01 -1.301202637981436e+01 + -1.302500855607946e+01 -1.303800347850134e+01 -1.305101116311717e+01 -1.306403160434687e+01 -1.307706479749205e+01 + -1.309011076299821e+01 -1.310316952145874e+01 -1.311624106891474e+01 -1.312932539865738e+01 -1.314242251753035e+01 + -1.315553243732881e+01 -1.316865517610136e+01 -1.318179074759510e+01 -1.319493914209791e+01 -1.320810035188408e+01 + -1.322127440063306e+01 -1.323446131182036e+01 -1.324766107670098e+01 -1.326087368408213e+01 -1.327409914520021e+01 + -1.328733747660298e+01 -1.330058869365459e+01 -1.331385280702646e+01 -1.332712980980294e+01 -1.334041969690924e+01 + -1.335372248822127e+01 -1.336703820316815e+01 -1.338036683444133e+01 -1.339370837465144e+01 -1.340706284282357e+01 + -1.342043025877972e+01 -1.343381061911550e+01 -1.344720391854233e+01 -1.346061016746156e+01 -1.347402937953320e+01 + -1.348746156576247e+01 -1.350090673400032e+01 -1.351436488213541e+01 -1.352783600940468e+01 -1.354132013040003e+01 + -1.355481725974633e+01 -1.356832739684519e+01 -1.358185053959114e+01 -1.359538669507347e+01 -1.360893587411229e+01 + -1.362249809325635e+01 -1.363607336498644e+01 -1.364966167978290e+01 -1.366326303005515e+01 -1.367687743792930e+01 + -1.369050492543861e+01 -1.370414548452841e+01 -1.371779910680898e+01 -1.373146581263829e+01 -1.374514562258463e+01 + -1.375883852931014e+01 -1.377254452369323e+01 -1.378626361738342e+01 -1.379999582664259e+01 -1.381374116541099e+01 + -1.382749964295472e+01 -1.384127125216480e+01 -1.385505598801133e+01 -1.386885387015567e+01 -1.388266491822051e+01 + -1.389648912698253e+01 -1.391032648926665e+01 -1.392417701493663e+01 -1.393804071810552e+01 -1.395191761284479e+01 + -1.396580770902492e+01 -1.397971099975399e+01 -1.399362747983656e+01 -1.400755716762526e+01 -1.402150008127576e+01 + -1.403545621460787e+01 -1.404942556175519e+01 -1.406340814244217e+01 -1.407740397661280e+01 -1.409141305949836e+01 + -1.410543538386059e+01 -1.411947095729565e+01 -1.413351979216372e+01 -1.414758190504674e+01 -1.416165730817942e+01 + -1.417574599218579e+01 -1.418984794931155e+01 -1.420396319989974e+01 -1.421809176459019e+01 -1.423223363711269e+01 + -1.424638880961032e+01 -1.426055729478944e+01 -1.427473910897708e+01 -1.428893426241975e+01 -1.430314276106135e+01 + -1.431736459971596e+01 -1.433159977568000e+01 -1.434584830730895e+01 -1.436011021230267e+01 -1.437438548467938e+01 + -1.438867411856965e+01 -1.440297613223502e+01 -1.441729154417122e+01 -1.443162034967981e+01 -1.444596254173529e+01 + -1.446031812719803e+01 -1.447468711827448e+01 -1.448906953466952e+01 -1.450346539077074e+01 -1.451787467219810e+01 + -1.453229736674074e+01 -1.454673349963205e+01 -1.456118309651608e+01 -1.457564614723534e+01 -1.459012263904241e+01 + -1.460461258463169e+01 -1.461911600163362e+01 -1.463363290198108e+01 -1.464816329304780e+01 -1.466270716966852e+01 + -1.467726452861927e+01 -1.469183538698022e+01 -1.470641976118071e+01 -1.472101764474266e+01 -1.473562903182180e+01 + -1.475025394201659e+01 -1.476489239431922e+01 -1.477954437985420e+01 -1.479420988900897e+01 -1.480888893709030e+01 + -1.482358154289730e+01 -1.483828771427918e+01 -1.485300745484606e+01 -1.486774076220148e+01 -1.488248763590571e+01 + -1.489724808935241e+01 -1.491202213620220e+01 -1.492680977735018e+01 -1.494161101188853e+01 -1.495642584446314e+01 + -1.497125428281713e+01 -1.498609634152866e+01 -1.500095203243959e+01 -1.501582134961145e+01 -1.503070428834008e+01 + -1.504560086663885e+01 -1.506051110171047e+01 -1.507543498479744e+01 -1.509037250787217e+01 -1.510532369178669e+01 + -1.512028855781273e+01 -1.513526710002122e+01 -1.515025931004586e+01 -1.516526519697226e+01 -1.518028477406786e+01 + -1.519531805387558e+01 -1.521036504514735e+01 -1.522542574219565e+01 -1.524050014105165e+01 -1.525558825906066e+01 + -1.527069011317451e+01 -1.528580569745696e+01 -1.530093500454836e+01 -1.531607804428359e+01 -1.533123483115148e+01 + -1.534640538106230e+01 -1.536158970459035e+01 -1.537678778954449e+01 -1.539199962605270e+01 -1.540722523628471e+01 + -1.542246464244602e+01 -1.543771783484346e+01 -1.545298480379291e+01 -1.546826557154514e+01 -1.548356016030771e+01 + -1.549886856018057e+01 -1.551419075889859e+01 -1.552952676684366e+01 -1.554487659991805e+01 -1.556024027345857e+01 + -1.557561779759322e+01 -1.559100916218038e+01 -1.560641435912106e+01 -1.562183340875659e+01 -1.563726633124305e+01 + -1.565271311755539e+01 -1.566817375858786e+01 -1.568364827409284e+01 -1.569913668435983e+01 -1.571463898296877e+01 + -1.573015516140282e+01 -1.574568522946743e+01 -1.576122920078429e+01 -1.577678708591764e+01 -1.579235889192325e+01 + -1.580794461488044e+01 -1.582354425266206e+01 -1.583915782129173e+01 -1.585478533595468e+01 -1.587042679033195e+01 + -1.588608217713541e+01 -1.590175150670428e+01 -1.591743479377280e+01 -1.593313205302798e+01 -1.594884329356461e+01 + -1.596456850215542e+01 -1.598030766876410e+01 -1.599606081844003e+01 -1.601182797567503e+01 -1.602760912764517e+01 + -1.604340426053651e+01 -1.605921339389068e+01 -1.607503654929621e+01 -1.609087372317365e+01 -1.610672490846679e+01 + -1.612259010938000e+01 -1.613846933535691e+01 -1.615436260553746e+01 -1.617026993400350e+01 -1.618619130490810e+01 + -1.620212670496088e+01 -1.621807616102629e+01 -1.623403970021593e+01 -1.625001731047507e+01 -1.626600897617460e+01 + -1.628201470655392e+01 -1.629803451699528e+01 -1.631406842258372e+01 -1.633011643368945e+01 -1.634617854212047e+01 + -1.636225474110459e+01 -1.637834504811086e+01 -1.639444948009596e+01 -1.641056802772599e+01 -1.642670068226715e+01 + -1.644284746367691e+01 -1.645900839255391e+01 -1.647518346337059e+01 -1.649137266740475e+01 -1.650757600928198e+01 + -1.652379349905581e+01 -1.654002515514406e+01 -1.655627099138395e+01 -1.657253099492616e+01 -1.658880515436409e+01 + -1.660509349074862e+01 -1.662139602569388e+01 -1.663771275060954e+01 -1.665404365442992e+01 -1.667038874639235e+01 + -1.668674804082613e+01 -1.670312155212567e+01 -1.671950928959044e+01 -1.673591124207530e+01 -1.675232740091000e+01 + -1.676875778776886e+01 -1.678520242381186e+01 -1.680166129779755e+01 -1.681813439803682e+01 -1.683462174345131e+01 + -1.685112335404732e+01 -1.686763922355921e+01 -1.688416934305047e+01 -1.690071371917313e+01 -1.691727236387981e+01 + -1.693384529473730e+01 -1.695043252373442e+01 -1.696703403493436e+01 -1.698364981519248e+01 -1.700027989045860e+01 + -1.701692428668450e+01 -1.703358299073511e+01 -1.705025598664567e+01 -1.706694328621936e+01 -1.708364490699094e+01 + -1.710036086165371e+01 -1.711709115711999e+01 -1.713383578201967e+01 -1.715059472804424e+01 -1.716736801741393e+01 + -1.718415567151382e+01 -1.720095767785962e+01 -1.721777402421613e+01 -1.723460473321376e+01 -1.725144982735173e+01 + -1.726830929373925e+01 -1.728518311723097e+01 -1.730207130905323e+01 -1.731897388644410e+01 -1.733589086431708e+01 + -1.735282225151622e+01 -1.736976803493245e+01 -1.738672820398455e+01 -1.740370278015603e+01 -1.742069178532102e+01 + -1.743769521085149e+01 -1.745471304524893e+01 -1.747174529603476e+01 -1.748879197614670e+01 -1.750585310116775e+01 + -1.752292868122209e+01 -1.754001870195336e+01 -1.755712315207324e+01 -1.757424205704595e+01 -1.759137544124289e+01 + -1.760852328791187e+01 -1.762568558032359e+01 -1.764286234296404e+01 -1.766005360135051e+01 -1.767725934391039e+01 + -1.769447955614261e+01 -1.771171424892207e+01 -1.772896343807829e+01 -1.774622713388326e+01 -1.776350534196338e+01 + -1.778079805492016e+01 -1.779810526797336e+01 -1.781542699984077e+01 -1.783276326793605e+01 -1.785011406095838e+01 + -1.786747936642481e+01 -1.788485919583838e+01 -1.790225356596892e+01 -1.791966249066770e+01 -1.793708597750879e+01 + -1.795452401187612e+01 -1.797197658287230e+01 -1.798944371666477e+01 -1.800692543788475e+01 -1.802442172795408e+01 + -1.804193256819016e+01 -1.805945798270200e+01 -1.807699799758296e+01 -1.809455260407236e+01 -1.811212178929598e+01 + -1.812970555877947e+01 -1.814730392419934e+01 -1.816491690343573e+01 -1.818254450889657e+01 -1.820018672489731e+01 + -1.821784353770839e+01 -1.823551496951270e+01 -1.825320104351004e+01 -1.827090175105552e+01 -1.828861707995103e+01 + -1.830634703563002e+01 -1.832409162961503e+01 -1.834185088015348e+01 -1.835962479982180e+01 -1.837741337178776e+01 + -1.839521658191638e+01 -1.841303445627024e+01 -1.843086702044687e+01 -1.844871425798603e+01 -1.846657615155986e+01 + -1.848445272242748e+01 -1.850234399331442e+01 -1.852024995422484e+01 -1.853817059263430e+01 -1.855610591862525e+01 + -1.857405594751762e+01 -1.859202069297440e+01 -1.861000016303027e+01 -1.862799434486363e+01 -1.864600322762024e+01 + -1.866402682917165e+01 -1.868206516860479e+01 -1.870011824114266e+01 -1.871818603889838e+01 -1.873626856540951e+01 + -1.875436582948875e+01 -1.877247784962497e+01 -1.879060463922456e+01 -1.880874618168810e+01 -1.882690246254704e+01 + -1.884507350586227e+01 -1.886325933574866e+01 -1.888145993800745e+01 -1.889967529731236e+01 -1.891790543214035e+01 + -1.893615036295555e+01 -1.895441008436764e+01 -1.897268458788422e+01 -1.899097387845919e+01 -1.900927796546465e+01 + -1.902759686249918e+01 -1.904593057916082e+01 -1.906427910481893e+01 -1.908264243109121e+01 -1.910102057881749e+01 + -1.911941356739387e+01 -1.913782138121961e+01 -1.915624400568942e+01 -1.917468146517671e+01 -1.919313378404767e+01 + -1.921160094766128e+01 -1.923008293912871e+01 -1.924857977157690e+01 -1.926709146357444e+01 -1.928561802544077e+01 + -1.930415946120927e+01 -1.932271575801813e+01 -1.934128690695999e+01 -1.935987293184044e+01 -1.937847385553680e+01 + -1.939708966450047e+01 -1.941572034241033e+01 -1.943436589828115e+01 -1.945302634705033e+01 -1.947170170200994e+01 + -1.949039197138318e+01 -1.950909714476303e+01 -1.952781721398065e+01 -1.954655219845012e+01 -1.956530211609402e+01 + -1.958406695128608e+01 -1.960284668959667e+01 -1.962164135493148e+01 -1.964045097168231e+01 -1.965927552785040e+01 + -1.967811500826448e+01 -1.969696942145404e+01 -1.971583878200212e+01 -1.973472310500559e+01 -1.975362239928199e+01 + -1.977253664801789e+01 -1.979146583743514e+01 -1.981040999152762e+01 -1.982936913462439e+01 -1.984834325462312e+01 + -1.986733233626431e+01 -1.988633638809098e+01 -1.990535542475069e+01 -1.992438946150660e+01 -1.994343850724086e+01 + -1.996250254469571e+01 -1.998158155988759e+01 -2.000067557806942e+01 -2.001978462401460e+01 -2.003890868134189e+01 + -2.005804773353269e+01 -2.007720180467363e+01 -2.009637091866160e+01 -2.011555505802958e+01 -2.013475420367532e+01 + -2.015396837131929e+01 -2.017319758216888e+01 -2.019244184455664e+01 -2.021170116029698e+01 -2.023097551800653e+01 + -2.025026491057744e+01 -2.026956936120177e+01 -2.028888889127859e+01 -2.030822348473533e+01 -2.032757312336421e+01 + -2.034693781788847e+01 -2.036631758558183e+01 -2.038571244098909e+01 -2.040512239225047e+01 -2.042454742461679e+01 + -2.044398752597867e+01 -2.046344271767523e+01 -2.048291302072143e+01 -2.050239842138679e+01 -2.052189890581644e+01 + -2.054141449440303e+01 -2.056094520839277e+01 -2.058049103819856e+01 -2.060005197091200e+01 -2.061962801117254e+01 + -2.063921916971323e+01 -2.065882546409381e+01 -2.067844690614864e+01 -2.069808347798381e+01 -2.071773516441981e+01 + -2.073740199086278e+01 -2.075708398272239e+01 -2.077678112483692e+01 -2.079649339928443e+01 -2.081622081767353e+01 + -2.083596339752241e+01 -2.085572115045732e+01 -2.087549408142252e+01 -2.089528217452614e+01 -2.091508541798258e+01 + -2.093490383726751e+01 -2.095473745703866e+01 -2.097458626142068e+01 -2.099445023367205e+01 -2.101432939411960e+01 + -2.103422376365449e+01 -2.105413332835716e+01 -2.107405807288499e+01 -2.109399801101360e+01 -2.111395316146354e+01 + -2.113392353361706e+01 -2.115390913036233e+01 -2.117390993794961e+01 -2.119392594678185e+01 -2.121395718051052e+01 + -2.123400366165125e+01 -2.125406537492771e+01 -2.127414230292253e+01 -2.129423445744600e+01 -2.131434185603574e+01 + -2.133446450991120e+01 -2.135460242400538e+01 -2.137475558442359e+01 -2.139492398094176e+01 -2.141510763684612e+01 + -2.143530657354728e+01 -2.145552077144329e+01 -2.147575021223202e+01 -2.149599492382317e+01 -2.151625493458459e+01 + -2.153653022850520e+01 -2.155682078515937e+01 -2.157712661084235e+01 -2.159744772002078e+01 -2.161778413312624e+01 + -2.163813586321833e+01 -2.165850288790379e+01 -2.167888518769065e+01 -2.169928279014487e+01 -2.171969572392566e+01 + -2.174012397500749e+01 -2.176056752455845e+01 -2.178102637720577e+01 -2.180150054539059e+01 -2.182199004935065e+01 + -2.184249490264348e+01 -2.186301508430896e+01 -2.188355057625899e+01 -2.190410140641098e+01 -2.192466760199104e+01 + -2.194524914145450e+01 -2.196584600311797e+01 -2.198645821351363e+01 -2.200708580045210e+01 -2.202772874864248e+01 + -2.204838703903658e+01 -2.206906068065864e+01 -2.208974968965916e+01 -2.211045408262128e+01 -2.213117386881762e+01 + -2.215190902784613e+01 -2.217265954271720e+01 -2.219342543976576e+01 -2.221420674565993e+01 -2.223500344507609e+01 + -2.225581551916326e+01 -2.227664297695268e+01 -2.229748583458740e+01 -2.231834410877561e+01 -2.233921780886325e+01 + -2.236010691418214e+01 -2.238101140757746e+01 -2.240193131596196e+01 -2.242286666626994e+01 -2.244381744145418e+01 + -2.246478362333585e+01 -2.248576523319086e+01 -2.250676229308250e+01 -2.252777478876882e+01 -2.254880270395783e+01 + -2.256984605046237e+01 -2.259090484578745e+01 -2.261197910210208e+01 -2.263306882483333e+01 -2.265417399777652e+01 + -2.267529460825966e+01 -2.269643067937303e+01 -2.271758223358744e+01 -2.273874925513337e+01 -2.275993172840441e+01 + -2.278112967668665e+01 -2.280234312326570e+01 -2.282357205253301e+01 -2.284481644618636e+01 -2.286607631404299e+01 + -2.288735167241803e+01 -2.290864253549898e+01 -2.292994891082159e+01 -2.295127078144212e+01 -2.297260813386354e+01 + -2.299396099285480e+01 -2.301532938287575e+01 -2.303671328888409e+01 -2.305811269234469e+01 -2.307952760025338e+01 + -2.310095802706863e+01 -2.312240399156859e+01 -2.314386550544134e+01 -2.316534254769484e+01 -2.318683510020089e+01 + -2.320834318896662e+01 -2.322986684000025e+01 -2.325140603517923e+01 -2.327296075598023e+01 -2.329453102640753e+01 + -2.331611687084991e+01 -2.333771827270656e+01 -2.335933521295700e+01 -2.338096770389138e+01 -2.340261576396985e+01 + -2.342427940502197e+01 -2.344595863230511e+01 -2.346765343141823e+01 -2.348936379112492e+01 -2.351108973250527e+01 + -2.353283127622654e+01 -2.355458840898814e+01 -2.357636111469370e+01 -2.359814940003157e+01 -2.361995327887107e+01 + -2.364177277102066e+01 -2.366360788867084e+01 -2.368545860760097e+01 -2.370732490730504e+01 -2.372920681854641e+01 + -2.375110437181196e+01 -2.377301754521346e+01 -2.379494631547129e+01 -2.381689070611525e+01 -2.383885074279985e+01 + -2.386082641286912e+01 -2.388281770027697e+01 -2.390482461372720e+01 -2.392684716763744e+01 -2.394888537453080e+01 + -2.397093924094647e+01 -2.399300875138237e+01 -2.401509389381072e+01 -2.403719469214220e+01 -2.405931116939521e+01 + -2.408144330908079e+01 -2.410359109227195e+01 -2.412575452979684e+01 -2.414793363861520e+01 -2.417012843045825e+01 + -2.419233891107258e+01 -2.421456506749473e+01 -2.423680688969797e+01 -2.425906439811232e+01 -2.428133761196757e+01 + -2.430362651523593e+01 -2.432593109247103e+01 -2.434825136580965e+01 -2.437058735754595e+01 -2.439293905302052e+01 + -2.441530643508021e+01 -2.443768951355032e+01 -2.446008830475372e+01 -2.448250282402539e+01 -2.450493307947941e+01 + -2.452737905133441e+01 -2.454984072340254e+01 -2.457231812176549e+01 -2.459481127247106e+01 -2.461732015916192e+01 + -2.463984476198997e+01 -2.466238508954903e+01 -2.468494115731883e+01 -2.470751297988127e+01 -2.473010056541401e+01 + -2.475270389737600e+01 -2.477532296279144e+01 -2.479795778766421e+01 -2.482060839605179e+01 -2.484327476524651e+01 + -2.486595687297807e+01 -2.488865474549064e+01 -2.491136841050829e+01 -2.493409785316058e+01 -2.495684305468689e+01 + -2.497960402336061e+01 -2.500238077436705e+01 -2.502517332350563e+01 -2.504798167938967e+01 -2.507080582127416e+01 + -2.509364573240812e+01 -2.511650144137505e+01 -2.513937297643642e+01 -2.516226031923135e+01 -2.518516344740990e+01 + -2.520808236928804e+01 -2.523101710100030e+01 -2.525396765928963e+01 -2.527693405405919e+01 -2.529991626724470e+01 + -2.532291428361040e+01 -2.534592812720204e+01 -2.536895782110043e+01 -2.539200334524508e+01 -2.541506468057373e+01 + -2.543814185515816e+01 -2.546123489657537e+01 -2.548434378328921e+01 -2.550746849096137e+01 -2.553060903315797e+01 + -2.555376543163097e+01 -2.557693770297151e+01 -2.560012585444837e+01 -2.562332986120158e+01 -2.564654970308929e+01 + -2.566978541097076e+01 -2.569303701597250e+01 -2.571630449928904e+01 -2.573958783754457e+01 -2.576288703901380e+01 + -2.578620212017663e+01 -2.580953309868325e+01 -2.583287998467666e+01 -2.585624275710073e+01 -2.587962139846310e+01 + -2.590301593672573e+01 -2.592642639921134e+01 -2.594985276523152e+01 -2.597329501305775e+01 -2.599675316481207e+01 + -2.602022724494944e+01 -2.604371724340627e+01 -2.606722314554395e+01 -2.609074495294231e+01 -2.611428267453130e+01 + -2.613783633242288e+01 -2.616140594232113e+01 -2.618499148111656e+01 -2.620859292804694e+01 -2.623221031055255e+01 + -2.625584365675950e+01 -2.627949294933480e+01 -2.630315816707157e+01 -2.632683931872623e+01 -2.635053642045652e+01 + -2.637424948806206e+01 -2.639797853015353e+01 -2.642172352694394e+01 -2.644548446269175e+01 -2.646926136623515e+01 + -2.649305426487780e+01 -2.651686313520573e+01 -2.654068795336410e+01 -2.656452874445229e+01 -2.658838553565089e+01 + -2.661225831351167e+01 -2.663614706041860e+01 -2.666005178271351e+01 -2.668397249386109e+01 -2.670790921185966e+01 + -2.673186194785124e+01 -2.675583068101895e+01 -2.677981539336416e+01 -2.680381611012034e+01 -2.682783285712106e+01 + -2.685186561936856e+01 -2.687591437786270e+01 -2.689997913842517e+01 -2.692405991477839e+01 -2.694815672742597e+01 + -2.697226958936361e+01 -2.699639847677425e+01 -2.702054336911223e+01 -2.704470429573021e+01 -2.706888128546201e+01 + -2.709307431516761e+01 -2.711728336172764e+01 -2.714150845407871e+01 -2.716574962162754e+01 -2.719000684360529e+01 + -2.721428009605862e+01 -2.723856939247152e+01 -2.726287475352885e+01 -2.728719619128178e+01 -2.731153370993099e+01 + -2.733588729090867e+01 -2.736025692081293e+01 -2.738464262967399e+01 -2.740904444482641e+01 -2.743346233939021e+01 + -2.745789628706843e+01 -2.748234631811058e+01 -2.750681246441337e+01 -2.753129470791622e+01 -2.755579302585287e+01 + -2.758030742659158e+01 -2.760483792680023e+01 -2.762938454521084e+01 -2.765394729250735e+01 -2.767852614511706e+01 + -2.770312108289846e+01 -2.772773213369129e+01 -2.775235932608502e+01 -2.777700264368704e+01 -2.780166206614083e+01 + -2.782633760221619e+01 -2.785102926812099e+01 -2.787573708068912e+01 -2.790046104903706e+01 -2.792520115078565e+01 + -2.794995736764946e+01 -2.797472972921345e+01 -2.799951826412358e+01 -2.802432294939970e+01 -2.804914376169005e+01 + -2.807398072778233e+01 -2.809883387567351e+01 -2.812370318805837e+01 -2.814858864438241e+01 -2.817349025639583e+01 + -2.819840804241009e+01 -2.822334201467696e+01 -2.824829217820057e+01 -2.827325851505399e+01 -2.829824101147483e+01 + -2.832323969328987e+01 -2.834825458594292e+01 -2.837328567375688e+01 -2.839833293713809e+01 -2.842339638194745e+01 + -2.844847602232610e+01 -2.847357188008160e+01 -2.849868396869187e+01 -2.852381226064981e+01 -2.854895673259501e+01 + -2.857411741873861e+01 -2.859929435285462e+01 -2.862448750939692e+01 -2.864969686163745e+01 -2.867492243744038e+01 + -2.870016426611871e+01 -2.872542232818885e+01 -2.875069660076976e+01 -2.877598709618692e+01 -2.880129383482867e+01 + -2.882661683412842e+01 -2.885195610246809e+01 -2.887731161497835e+01 -2.890268335136361e+01 -2.892807134287440e+01 + -2.895347562064698e+01 -2.897889616381469e+01 -2.900433294736006e+01 -2.902978598166526e+01 -2.905525528595928e+01 + -2.908074087945912e+01 -2.910624277257485e+01 -2.913176094050105e+01 -2.915729536236611e+01 -2.918284606824940e+01 + -2.920841308797334e+01 -2.923399639938179e+01 -2.925959597987842e+01 -2.928521185708459e+01 -2.931084405942344e+01 + -2.933649256830759e+01 -2.936215736109871e+01 -2.938783844596477e+01 -2.941353583979598e+01 -2.943924956356517e+01 + -2.946497963001566e+01 -2.949072601489006e+01 -2.951648869675137e+01 -2.954226770244480e+01 -2.956806305999476e+01 + -2.959387475386040e+01 -2.961970276467950e+01 -2.964554710136948e+01 -2.967140778023144e+01 -2.969728481882160e+01 + -2.972317822671904e+01 -2.974908798033929e+01 -2.977501406036931e+01 -2.980095649774566e+01 -2.982691532231985e+01 + -2.985289050935425e+01 -2.987888203414534e+01 -2.990488992671488e+01 -2.993091421806754e+01 -2.995695488841446e+01 + -2.998301191396682e+01 -3.000908530572931e+01 -3.003517508294127e+01 -3.006128126298706e+01 -3.008740385472813e+01 + -3.011354283478899e+01 -3.013969818396866e+01 -3.016586993200092e+01 -3.019205810852835e+01 -3.021826269389396e+01 + -3.024448366459688e+01 -3.027072103106001e+01 -3.029697481234801e+01 -3.032324502816885e+01 -3.034953168930138e+01 + -3.037583477016444e+01 -3.040215424919064e+01 -3.042849015722735e+01 -3.045484252487287e+01 -3.048121132931426e+01 + -3.050759654718701e+01 -3.053399820633122e+01 -3.056041633582694e+01 -3.058685091850949e+01 -3.061330193277164e+01 + -3.063976938548045e+01 -3.066625329189824e+01 -3.069275367239408e+01 -3.071927054017274e+01 -3.074580387467516e+01 + -3.077235365736276e+01 -3.079891991154272e+01 -3.082550266154129e+01 -3.085210189391538e+01 -3.087871759159065e+01 + -3.090534976073683e+01 -3.093199841535169e+01 -3.095866357750086e+01 -3.098534526117247e+01 -3.101204343997652e+01 + -3.103875809113482e+01 -3.106548924669440e+01 -3.109223693806243e+01 -3.111900113926174e+01 -3.114578182447812e+01 + -3.117257902593346e+01 -3.119939277712214e+01 -3.122622305859262e+01 -3.125306984560579e+01 -3.127993314521812e+01 + -3.130681297362548e+01 -3.133370935178603e+01 -3.136062229292185e+01 -3.138755177454848e+01 -3.141449777743489e+01 + -3.144146033107010e+01 -3.146843946420585e+01 -3.149543515392452e+01 -3.152244737446985e+01 -3.154947614039987e+01 + -3.157652147508332e+01 -3.160358339681746e+01 -3.163066191390917e+01 -3.165775699977537e+01 -3.168486863280270e+01 + -3.171199684614663e+01 -3.173914167265754e+01 -3.176630308919665e+01 -3.179348107134120e+01 -3.182067564552154e+01 + -3.184788683989369e+01 -3.187511463866380e+01 -3.190235902163426e+01 -3.192961999494226e+01 -3.195689757352222e+01 + -3.198419178116283e+01 -3.201150263346307e+01 -3.203883010440887e+01 -3.206617417058478e+01 -3.209353486058297e+01 + -3.212091220418486e+01 -3.214830618392138e+01 -3.217571677868305e+01 -3.220314400004898e+01 -3.223058786708538e+01 + -3.225804839611857e+01 -3.228552559489243e+01 -3.231301943956095e+01 -3.234052991162765e+01 -3.236805704558397e+01 + -3.239560087404328e+01 -3.242316136911894e+01 -3.245073850255218e+01 -3.247833230509534e+01 -3.250594280965240e+01 + -3.253356999872297e+01 -3.256121385028732e+01 -3.258887437465276e+01 -3.261655158960600e+01 -3.264424551052439e+01 + -3.267195614529539e+01 -3.269968347425627e+01 -3.272742748229857e+01 -3.275518820008119e+01 -3.278296565603427e+01 + -3.281075982390590e+01 -3.283857067801981e+01 -3.286639824968410e+01 -3.289424257141810e+01 -3.292210362360176e+01 + -3.294998138240963e+01 -3.297787585933321e+01 -3.300578707421773e+01 -3.303371504500630e+01 -3.306165978102434e+01 + -3.308962125902853e+01 -3.311759946003357e+01 -3.314559441465483e+01 -3.317360615365304e+01 -3.320163465877013e+01 + -3.322967990687330e+01 -3.325774190434956e+01 -3.328582066713852e+01 -3.331391621987054e+01 -3.334202857831301e+01 + -3.337015771409062e+01 -3.339830360273710e+01 -3.342646627956469e+01 -3.345464577921614e+01 -3.348284207387808e+01 + -3.351105513572078e+01 -3.353928499930519e+01 -3.356753169996216e+01 -3.359579521371194e+01 -3.362407551222610e+01 + -3.365237260909204e+01 -3.368068652715969e+01 -3.370901728441355e+01 -3.373736488954338e+01 -3.376572931892538e+01 + -3.379411055342771e+01 -3.382250862419983e+01 -3.385092356238306e+01 -3.387935534880526e+01 -3.390780395979943e+01 + -3.393626940403256e+01 -3.396475169950308e+01 -3.399325086920118e+01 -3.402176692682492e+01 -3.405029984391190e+01 + -3.407884959628061e+01 -3.410741621903333e+01 -3.413599974690003e+01 -3.416460015383780e+01 -3.419321741347679e+01 + -3.422185155891206e+01 -3.425050262370409e+01 -3.427917058381036e+01 -3.430785541111823e+01 -3.433655711883738e+01 + -3.436527572977491e+01 -3.439401126380553e+01 -3.442276373145798e+01 -3.445153310880944e+01 -3.448031937598221e+01 + -3.450912256373026e+01 -3.453794270224409e+01 -3.456677976882821e+01 -3.459563373771100e+01 -3.462450462370172e+01 + -3.465339245071625e+01 -3.468229723851619e+01 -3.471121899611902e+01 -3.474015769371995e+01 -3.476911330776019e+01 + -3.479808587848705e+01 -3.482707544447295e+01 -3.485608197378501e+01 -3.488510543365825e+01 -3.491414585850467e+01 + -3.494320328527482e+01 -3.497227769389696e+01 -3.500136905869145e+01 -3.503047738856913e+01 -3.505960270226024e+01 + -3.508874502318216e+01 -3.511790436512474e+01 -3.514708069868058e+01 -3.517627399907308e+01 -3.520548430324607e+01 + -3.523471164812467e+01 -3.526395600883895e+01 -3.529321735592740e+01 -3.532249570335686e+01 -3.535179107461137e+01 + -3.538110348781549e+01 -3.541043295179184e+01 -3.543977944351469e+01 -3.546914294470585e+01 -3.549852348792567e+01 + -3.552792110371767e+01 -3.555733576371960e+01 -3.558676744035331e+01 -3.561621616808287e+01 -3.564568198278825e+01 + -3.567516486397158e+01 -3.570466478590109e+01 -3.573418175828719e+01 -3.576371580017962e+01 -3.579326693254331e+01 + -3.582283516733191e+01 -3.585242047853867e+01 -3.588202284498269e+01 -3.591164230274704e+01 -3.594127888660625e+01 + -3.597093256883734e+01 -3.600060331833949e+01 -3.603029115299790e+01 -3.605999610029281e+01 -3.608971817709886e+01 + -3.611945738978410e+01 -3.614921371329605e+01 -3.617898712799953e+01 -3.620877766734910e+01 -3.623858536391516e+01 + -3.626841019364145e+01 -3.629825213180558e+01 -3.632811120764664e+01 -3.635798745148868e+01 -3.638788084403422e+01 + -3.641779136227628e+01 -3.644771901799147e+01 -3.647766383142195e+01 -3.650762582188893e+01 -3.653760499949427e+01 + -3.656760133838370e+01 -3.659761481766282e+01 -3.662764547223315e+01 -3.665769333671685e+01 -3.668775838882340e+01 + -3.671784060113342e+01 -3.674793998262476e+01 -3.677805655273779e+01 -3.680819033636626e+01 -3.683834134900049e+01 + -3.686850956306390e+01 -3.689869495454472e+01 -3.692889755675729e+01 -3.695911740229619e+01 -3.698935446355054e+01 + -3.701960871343802e+01 -3.704988018719579e+01 -3.708016892120266e+01 -3.711047489408478e+01 -3.714079807933708e+01 + -3.717113848768184e+01 -3.720149613882988e+01 -3.723187105121882e+01 -3.726226323497034e+01 -3.729267266821555e+01 + -3.732309933333587e+01 -3.735354326170426e+01 -3.738400448395760e+01 -3.741448297879693e+01 -3.744497872108128e+01 + -3.747549172223736e+01 -3.750602200310610e+01 -3.753656958561755e+01 -3.756713448177913e+01 -3.759771666281819e+01 + -3.762831610507856e+01 -3.765893284615005e+01 -3.768956692232328e+01 -3.772021830344675e+01 -3.775088695941269e+01 + -3.778157292673024e+01 -3.781227624306894e+01 -3.784299688412320e+01 -3.787373482086582e+01 -3.790449006735824e+01 + -3.793526264738479e+01 -3.796605258053289e+01 -3.799685987630166e+01 -3.802768450803411e+01 -3.805852645435349e+01 + -3.808938575116029e+01 -3.812026243387959e+01 -3.815115647875793e+01 -3.818206785737669e+01 -3.821299658183555e+01 + -3.824394267407146e+01 -3.827490615485264e+01 -3.830588703573063e+01 -3.833688529255877e+01 -3.836790090523419e+01 + -3.839893390552727e+01 -3.842998432385276e+01 -3.846105213333004e+01 -3.849213730842061e+01 -3.852323988624988e+01 + -3.855435990371658e+01 -3.858549733414936e+01 -3.861665214665468e+01 -3.864782435702053e+01 -3.867901399128823e+01 + -3.871022106983104e+01 -3.874144560188923e+01 -3.877268755783931e+01 -3.880394691415978e+01 -3.883522371060106e+01 + -3.886651798555487e+01 -3.889782970870629e+01 -3.892915884903668e+01 -3.896050544141922e+01 -3.899186952243698e+01 + -3.902325106962145e+01 -3.905465005558139e+01 -3.908606649228560e+01 -3.911750040150871e+01 -3.914895180488885e+01 + -3.918042071436301e+01 -3.921190710320024e+01 -3.924341094905042e+01 -3.927493228575462e+01 -3.930647114756201e+01 + -3.933802751416320e+01 -3.936960136044893e+01 -3.940119269666864e+01 -3.943280154239230e+01 -3.946442791911308e+01 + -3.949607183932866e+01 -3.952773327763106e+01 -3.955941221301939e+01 -3.959110868002649e+01 -3.962282271157864e+01 + -3.965455427864192e+01 -3.968630335291520e+01 -3.971806997098832e+01 -3.974985417066340e+01 -3.978165592970123e+01 + -3.981347522024374e+01 -3.984531205199855e+01 -3.987716644515135e+01 -3.990903842423468e+01 -3.994092800366619e+01 + -3.997283515305731e+01 -4.000475984705376e+01 -4.003670212524431e+01 -4.006866202678586e+01 -4.010063952416471e+01 + -4.013263458527370e+01 -4.016464722630246e+01 -4.019667747391531e+01 -4.022872534837892e+01 -4.026079085897078e+01 + -4.029287397740929e+01 -4.032497468131004e+01 -4.035709300943645e+01 -4.038922899883853e+01 -4.042138261856475e+01 + -4.045355383733334e+01 -4.048574269054266e+01 -4.051794921541258e+01 -4.055017338976896e+01 -4.058241518694505e+01 + -4.061467462169752e+01 -4.064695171778673e+01 -4.067924649356458e+01 -4.071155895737036e+01 -4.074388908290122e+01 + -4.077623684962312e+01 -4.080860229471885e+01 -4.084098545450960e+01 -4.087338630415373e+01 -4.090580481395003e+01 + -4.093824099592192e+01 -4.097069487270115e+01 -4.100316646762842e+01 -4.103565579436854e+01 -4.106816282717386e+01 + -4.110068754422534e+01 -4.113322997883087e+01 -4.116579016300655e+01 -4.119836806847471e+01 -4.123096366815907e+01 + -4.126357700008218e+01 -4.129620810254014e+01 -4.132885694982463e+01 -4.136152351139461e+01 -4.139420780138244e+01 + -4.142690984447184e+01 -4.145962966287846e+01 -4.149236726828771e+01 -4.152512263273182e+01 -4.155789573295193e+01 + -4.159068660417814e+01 -4.162349528189675e+01 -4.165632174413023e+01 -4.168916596438000e+01 -4.172202795552684e+01 + -4.175490773972726e+01 -4.178780533686147e+01 -4.182072075745918e+01 -4.185365397692470e+01 -4.188660497553830e+01 + -4.191957378820953e+01 -4.195256044830271e+01 -4.198556492837179e+01 -4.201858720098863e+01 -4.205162729960676e+01 + -4.208468525919077e+01 -4.211776105986812e+01 -4.215085467691669e+01 -4.218396612105321e+01 -4.221709541226407e+01 + -4.225024257217616e+01 -4.228340761361360e+01 -4.231659051254899e+01 -4.234979124870078e+01 -4.238300985362200e+01 + -4.241624635885866e+01 -4.244950074409413e+01 -4.248277298525672e+01 -4.251606309511715e+01 -4.254937109530931e+01 + -4.258269700607782e+01 -4.261604083828603e+01 -4.264940256666174e+01 -4.268278217100897e+01 -4.271617968757233e+01 + -4.274959515039267e+01 -4.278302852825576e+01 -4.281647979114838e+01 -4.284994897911630e+01 -4.288343613339240e+01 + -4.291694122989936e+01 -4.295046423857267e+01 -4.298400517070971e+01 -4.301756404788966e+01 -4.305114089145757e+01 + -4.308473571388112e+01 -4.311834849235274e+01 -4.315197920801049e+01 -4.318562789305037e+01 -4.321929457904871e+01 + -4.325297924404543e+01 -4.328668186207582e+01 -4.332040244469275e+01 -4.335414101381126e+01 -4.338789759527743e+01 + -4.342167220389723e+01 -4.345546480638487e+01 -4.348927537558045e+01 -4.352310395691921e+01 -4.355695059370569e+01 + -4.359081524812669e+01 -4.362469788222823e+01 -4.365859853861065e+01 -4.369251726260594e+01 -4.372645402991838e+01 + -4.376040880917880e+01 -4.379438161035186e+01 -4.382837245512241e+01 -4.386238137072252e+01 -4.389640837367813e+01 + -4.393045343214298e+01 -4.396451651875527e+01 -4.399859767246311e+01 -4.403269693263155e+01 -4.406681427398399e+01 + -4.410094966630350e+01 -4.413510312425358e+01 -4.416927467295284e+01 -4.420346433446015e+01 -4.423767212069691e+01 + -4.427189800609401e+01 -4.430614196966567e+01 -4.434040404624994e+01 -4.437468426893484e+01 -4.440898260798443e+01 + -4.444329903479183e+01 -4.447763358808973e+01 -4.451198630763288e+01 -4.454635716992501e+01 -4.458074614621454e+01 + -4.461515324997958e+01 -4.464957850449220e+01 -4.468402192997090e+01 -4.471848353715485e+01 -4.475296330191956e+01 + -4.478746120505344e+01 -4.482197728186011e+01 -4.485651156648301e+01 -4.489106403390974e+01 -4.492563465506775e+01 + -4.496022344379944e+01 -4.499483042484561e+01 -4.502945562362576e+01 -4.506409905435962e+01 -4.509876068578905e+01 + -4.513344049220396e+01 -4.516813851556444e+01 -4.520285479589762e+01 -4.523758929782897e+01 -4.527234198687941e+01 + -4.530711290755342e+01 -4.534190210524451e+01 -4.537670954991925e+01 -4.541153520580425e+01 -4.544637908959269e+01 + -4.548124122972980e+01 -4.551612164920255e+01 -4.555102035951307e+01 -4.558593733168242e+01 -4.562087254236648e+01 + -4.565582603124118e+01 -4.569079783605451e+01 -4.572578792382265e+01 -4.576079626235065e+01 -4.579582289333027e+01 + -4.583086785976433e+01 -4.586593113601344e+01 -4.590101269036680e+01 -4.593611253546989e+01 -4.597123069530716e+01 + -4.600636719486254e+01 -4.604152204856955e+01 -4.607669522766013e+01 -4.611188670797630e+01 -4.614709652700154e+01 + -4.618232472227299e+01 -4.621757126990104e+01 -4.625283614113306e+01 -4.628811934919114e+01 -4.632342091751210e+01 + -4.635874086841728e+01 -4.639407921460932e+01 -4.642943593143147e+01 -4.646481099859044e+01 -4.650020445060623e+01 + -4.653561632090474e+01 -4.657104658372261e+01 -4.660649521327068e+01 -4.664196224284595e+01 -4.667744770698098e+01 + -4.671295158606459e+01 -4.674847385553061e+01 -4.678401452513644e+01 -4.681957361522331e+01 -4.685515115414413e+01 + -4.689074715945064e+01 -4.692636159747788e+01 -4.696199443933372e+01 -4.699764572643400e+01 -4.703331550121288e+01 + -4.706900373987032e+01 -4.710471041222129e+01 -4.714043552877479e+01 -4.717617911151273e+01 -4.721194118761495e+01 + -4.724772177397794e+01 -4.728352084116666e+01 -4.731933836391387e+01 -4.735517437995513e+01 -4.739102892624472e+01 + -4.742690197360956e+01 -4.746279349304486e+01 -4.749870352234630e+01 -4.753463210070628e+01 -4.757057920610364e+01 + -4.760654481072343e+01 -4.764252892478859e+01 -4.767853156968457e+01 -4.771455277340900e+01 -4.775059255327958e+01 + -4.778665087728216e+01 -4.782272771801416e+01 -4.785882311585065e+01 -4.789493711157514e+01 -4.793106967982698e+01 + -4.796722079021173e+01 -4.800339045834357e+01 -4.803957871014897e+01 -4.807578556679541e+01 -4.811201103905631e+01 + -4.814825510088780e+01 -4.818451773166895e+01 -4.822079896928767e+01 -4.825709884980719e+01 -4.829341734348342e+01 + -4.832975442115909e+01 -4.836611012183125e+01 -4.840248448526336e+01 -4.843887748613056e+01 -4.847528909416636e+01 + -4.851171932442625e+01 -4.854816820273300e+01 -4.858463575265701e+01 -4.862112198691646e+01 -4.865762687707282e+01 + -4.869415040003414e+01 -4.873069259525141e+01 -4.876725350118260e+01 -4.880383308977095e+01 -4.884043132904604e+01 + -4.887704823789731e+01 -4.891368384608068e+01 -4.895033817595851e+01 -4.898701123776245e+01 -4.902370300059485e+01 + -4.906041344002308e+01 -4.909714259860375e+01 -4.913389051725400e+01 -4.917065716334413e+01 -4.920744250429804e+01 + -4.924424658130064e+01 -4.928106943700116e+01 -4.931791104614518e+01 -4.935477137752828e+01 -4.939165044404930e+01 + -4.942854827009338e+01 -4.946546488188807e+01 -4.950240029454247e+01 -4.953935447684974e+01 -4.957632740294361e+01 + -4.961331911463601e+01 -4.965032965315336e+01 -4.968735898970213e+01 -4.972440709120082e+01 -4.976147397743583e+01 + -4.979855967878247e+01 -4.983566421510402e+01 -4.987278759472007e+01 -4.990992979028766e+01 -4.994709078100569e+01 + -4.998427060790318e+01 -5.002146930959274e+01 -5.005868685319148e+01 -5.009592320640078e+01 -5.013317841075434e+01 + -5.017045250915469e+01 -5.020774547614742e+01 -5.024505728017924e+01 -5.028238793365752e+01 -5.031973746104961e+01 + -5.035710589110189e+01 -5.039449324090066e+01 -5.043189947661289e+01 -5.046932456973549e+01 -5.050676856400442e+01 + -5.054423150327239e+01 -5.058171335962052e+01 -5.061921409929316e+01 -5.065673373695915e+01 -5.069427229950105e+01 + -5.073182981423184e+01 -5.076940629607507e+01 -5.080700170996615e+01 -5.084461602753602e+01 -5.088224929718589e+01 + -5.091990156525010e+01 -5.095757279302548e+01 -5.099526294209112e+01 -5.103297206019221e+01 -5.107070019605169e+01 + -5.110844731613729e+01 -5.114621338143406e+01 -5.118399841325091e+01 -5.122180244526444e+01 -5.125962550029841e+01 + -5.129746758802490e+01 -5.133532867636215e+01 -5.137320874011100e+01 -5.141110782335645e+01 -5.144902596945006e+01 + -5.148696314952589e+01 -5.152491932947918e+01 -5.156289452646703e+01 -5.160088876945014e+01 -5.163890208334180e+01 + -5.167693448081514e+01 -5.171498592963017e+01 -5.175305640369855e+01 -5.179114594645165e+01 -5.182925460014935e+01 + -5.186738233284598e+01 -5.190552911234031e+01 -5.194369497961412e+01 -5.198187997663295e+01 -5.202008407611459e+01 + -5.205830724580739e+01 -5.209654950282933e+01 -5.213481087573764e+01 -5.217309138947744e+01 -5.221139105690054e+01 + -5.224970984609732e+01 -5.228804773087789e+01 -5.232640475269200e+01 -5.236478095346914e+01 -5.240317630941821e+01 + -5.244159079031952e+01 -5.248002440595931e+01 -5.251847717885386e+01 -5.255694914243367e+01 -5.259544031823210e+01 + -5.263395066927961e+01 -5.267248016335085e+01 -5.271102884570031e+01 -5.274959676081755e+01 -5.278818387265291e+01 + -5.282679014593192e+01 -5.286541562901994e+01 -5.290406037048660e+01 -5.294272433607927e+01 -5.298140748616263e+01 + -5.302010984239256e+01 -5.305883143892672e+01 -5.309757229863885e+01 -5.313633243133304e+01 -5.317511180581835e+01 + -5.321391039785607e+01 -5.325272825201081e+01 -5.329156541074357e+01 -5.333042183929739e+01 -5.336929750308754e+01 + -5.340819244543594e+01 -5.344710671111962e+01 -5.348604027282968e+01 -5.352499309722418e+01 -5.356396519891433e+01 + -5.360295660504364e+01 -5.364196734493171e+01 -5.368099743556814e+01 -5.372004684244607e+01 -5.375911553606044e+01 + -5.379820355840945e+01 -5.383731095277006e+01 -5.387643769603123e+01 -5.391558375867469e+01 -5.395474915194053e+01 + -5.399393389872404e+01 -5.403313802778240e+01 -5.407236155707715e+01 -5.411160445552515e+01 -5.415086669663323e+01 + -5.419014832131279e+01 -5.422944936941720e+01 -5.426876980916325e+01 -5.430810960961936e+01 -5.434746881489674e+01 + -5.438684746929877e+01 -5.442624554285502e+01 -5.446566300018413e+01 -5.450509985853421e+01 -5.454455614758906e+01 + -5.458403189414573e+01 -5.462352711279953e+01 -5.466304177222543e+01 -5.470257584656953e+01 -5.474212937778257e+01 + -5.478170240720980e+01 -5.482129490597043e+01 -5.486090684084346e+01 -5.490053823147309e+01 -5.494018910890276e+01 + -5.497985949690793e+01 -5.501954940653937e+01 -5.505925880521750e+01 -5.509898766755921e+01 -5.513873604059781e+01 + -5.517850396943321e+01 -5.521829141901578e+01 -5.525809835354192e+01 -5.529792481434151e+01 -5.533777084523449e+01 + -5.537763642286803e+01 -5.541752151714192e+01 -5.545742613813913e+01 -5.549735030880384e+01 -5.553729406334213e+01 + -5.557725742375872e+01 -5.561724035199087e+01 -5.565724281465346e+01 -5.569726485713910e+01 -5.573730652628086e+01 + -5.577736779589668e+01 -5.581744863307357e+01 -5.585754905099014e+01 -5.589766907536871e+01 -5.593780873601526e+01 + -5.597796805069111e+01 -5.601814698489535e+01 -5.605834550959182e+01 -5.609856366986563e+01 -5.613880151023810e+01 + -5.617905899885479e+01 -5.621933610311022e+01 -5.625963286377015e+01 -5.629994932270948e+01 -5.634028545286861e+01 + -5.638064122221132e+01 -5.642101664772899e+01 -5.646141175844968e+01 -5.650182658252075e+01 -5.654226113528433e+01 + -5.658271538174220e+01 -5.662318929319503e+01 -5.666368291647893e+01 -5.670419629786259e+01 -5.674472940580990e+01 + -5.678528220346420e+01 -5.682585471049146e+01 -5.686644695909487e+01 -5.690705897510426e+01 -5.694769077129006e+01 + -5.698834231455854e+01 -5.702901357847642e+01 -5.706970460911611e+01 -5.711041545084194e+01 -5.715114606868026e+01 + -5.719189642778805e+01 -5.723266657318249e+01 -5.727345655110785e+01 -5.731426633285666e+01 -5.735509588339112e+01 + -5.739594521730356e+01 -5.743681436264626e+01 -5.747770335168147e+01 -5.751861220364783e+01 -5.755954088147938e+01 + -5.760048935348805e+01 -5.764145766580183e+01 -5.768244586550730e+01 -5.772345392571002e+01 -5.776448181276131e+01 + -5.780552953997691e+01 -5.784659713354442e+01 -5.788768462417462e+01 -5.792879202998626e+01 -5.796991931420698e+01 + -5.801106644664837e+01 -5.805223347834903e+01 -5.809342045860209e+01 -5.813462734849197e+01 -5.817585410820936e+01 + -5.821710078257841e+01 -5.825836741928538e+01 -5.829965399283203e+01 -5.834096047087346e+01 -5.838228686686274e+01 + -5.842363320676851e+01 -5.846499952082397e+01 -5.850638582715609e+01 -5.854779209120221e+01 -5.858921828442874e+01 + -5.863066445510763e+01 -5.867213065032231e+01 -5.871361683559694e+01 -5.875512297138874e+01 -5.879664907944645e+01 + -5.883819519466417e+01 -5.887976134322624e+01 -5.892134753756825e+01 -5.896295374384051e+01 -5.900457993500612e+01 + -5.904622615756436e+01 -5.908789245663575e+01 -5.912957879828990e+01 -5.917128514850664e+01 -5.921301155195771e+01 + -5.925475805384439e+01 -5.929652462279476e+01 -5.933831122286624e+01 -5.938011787640643e+01 -5.942194461763230e+01 + -5.946379146994821e+01 -5.950565844408734e+01 -5.954754551091072e+01 -5.958945264733813e+01 -5.963137989439624e+01 + -5.967332729249499e+01 -5.971529481547052e+01 -5.975728243227523e+01 -5.979929015889982e+01 -5.984131802305070e+01 + -5.988336605225896e+01 -5.992543426246962e+01 -5.996752262345901e+01 -6.000963111046766e+01 -6.005175976676178e+01 + -6.009390863383608e+01 -6.013607767807394e+01 -6.017826686618813e+01 -6.022047624132026e+01 -6.026270584835797e+01 + -6.030495566274465e+01 -6.034722565381767e+01 -6.038951583593452e+01 -6.043182623512069e+01 -6.047415687905394e+01 + -6.051650778421003e+01 -6.055887892060463e+01 -6.060127026325783e+01 -6.064368185366749e+01 -6.068611373308907e+01 + -6.072856587533070e+01 -6.077103824887340e+01 -6.081353086833690e+01 -6.085604376132918e+01 -6.089857696127247e+01 + -6.094113048823596e+01 -6.098370430306234e+01 -6.102629837247437e+01 -6.106891274594116e+01 -6.111154747264118e+01 + -6.115420251784390e+01 -6.119687784580902e+01 -6.123957350066591e+01 -6.128228952841628e+01 -6.132502590268162e+01 + -6.136778259056138e+01 -6.141055960544676e+01 -6.145335697380811e+01 -6.149617472814099e+01 -6.153901288864162e+01 + -6.158187142028389e+01 -6.162475029314290e+01 -6.166764955292113e+01 -6.171056924466600e+01 -6.175350933517737e+01 + -6.179646979123154e+01 -6.183945065775757e+01 -6.188245198047678e+01 -6.192547373012725e+01 -6.196851587175868e+01 + -6.201157842265037e+01 -6.205466141333163e+01 -6.209776487510229e+01 -6.214088882566958e+01 -6.218403322759970e+01 + -6.222719804958889e+01 -6.227038333999444e+01 -6.231358914752139e+01 -6.235681544260558e+01 -6.240006218936849e+01 + -6.244332940494305e+01 -6.248661712010740e+01 -6.252992536720910e+01 -6.257325416420860e+01 -6.261660346994837e+01 + -6.265997325077347e+01 -6.270336356215701e+01 -6.274677445777788e+01 -6.279020589501037e+01 -6.283365783085999e+01 + -6.287713031716163e+01 -6.292062340781234e+01 -6.296413707012920e+01 -6.300767126475596e+01 -6.305122601222295e+01 + -6.309480134635203e+01 -6.313839729424505e+01 -6.318201386936521e+01 -6.322565103734121e+01 -6.326930877093868e+01 + -6.331298711930568e+01 -6.335668613058504e+01 -6.340040577251647e+01 -6.344414600718050e+01 -6.348790685442323e+01 + -6.353168834759008e+01 -6.357549051625812e+01 -6.361931337593239e+01 -6.366315688959789e+01 -6.370702102749119e+01 + -6.375090584137499e+01 -6.379481138078580e+01 -6.383873760482961e+01 -6.388268447297220e+01 -6.392665203654889e+01 + -6.397064034897519e+01 -6.401464938011861e+01 -6.405867909237229e+01 -6.410272950177993e+01 -6.414680063823367e+01 + -6.419089253336912e+01 -6.423500520539493e+01 -6.427913861706836e+01 -6.432329273774181e+01 -6.436746761859949e+01 + -6.441166331065573e+01 -6.445587978241413e+01 -6.450011699516882e+01 -6.454437496388719e+01 -6.458865371852110e+01 + -6.463295329528786e+01 -6.467727371608086e+01 -6.472161493923234e+01 -6.476597692945877e+01 -6.481035974057480e+01 + -6.485476342551981e+01 -6.489918794463497e+01 -6.494363325783405e+01 -6.498809941591921e+01 -6.503258647107099e+01 + -6.507709439009531e+01 -6.512162313341831e+01 -6.516617272132122e+01 -6.521074318787740e+01 -6.525533456247440e+01 + -6.529994686059398e+01 -6.534458004678092e+01 -6.538923409250538e+01 -6.543390904787570e+01 -6.547860496211884e+01 + -6.552332180229843e+01 -6.556805952953434e+01 -6.561281816333469e+01 -6.565759773746066e+01 -6.570239828429803e+01 + -6.574721982146080e+01 -6.579206230885156e+01 -6.583692571363754e+01 -6.588181008975629e+01 -6.592671548982709e+01 + -6.597164187442638e+01 -6.601658920334479e+01 -6.606155752527242e+01 -6.610654689090467e+01 -6.615155727005924e+01 + -6.619658862652422e+01 -6.624164098084657e+01 -6.628671436645676e+01 -6.633180881156068e+01 -6.637692433038681e+01 + -6.642206088647883e+01 -6.646721845110714e+01 -6.651239707713407e+01 -6.655759681603797e+01 -6.660281763216933e+01 + -6.664805948389387e+01 -6.669332239276561e+01 -6.673860639512726e+01 -6.678391152328841e+01 -6.682923779433044e+01 + -6.687458516845543e+01 -6.691995361277515e+01 -6.696534317891920e+01 -6.701075391795754e+01 -6.705618579420361e+01 + -6.710163877100581e+01 -6.714711289460833e+01 -6.719260821321966e+01 -6.723812470001026e+01 -6.728366232121398e+01 + -6.732922109035582e+01 -6.737480103488133e+01 -6.742040219062761e+01 -6.746602458035952e+01 -6.751166816616187e+01 + -6.755733291529161e+01 -6.760301887637438e+01 -6.764872609859751e+01 -6.769445455202660e+01 -6.774020420051386e+01 + -6.778597506217976e+01 -6.783176716876942e+01 -6.787758055225885e+01 -6.792341523092826e+01 -6.796927116804379e+01 + -6.801514833341810e+01 -6.806104677806347e+01 -6.810696655123587e+01 -6.815290761396663e+01 -6.819886992772128e+01 + -6.824485354392678e+01 -6.829085851532395e+01 -6.833688480994840e+01 -6.838293238885097e+01 -6.842900126984890e+01 + -6.847509148538957e+01 -6.852120306967514e+01 -6.856733604269469e+01 -6.861349036583006e+01 -6.865966600658993e+01 + -6.870586301559659e+01 -6.875208144399036e+01 -6.879832126187024e+01 -6.884458243234171e+01 -6.889086497157696e+01 + -6.893716890990422e+01 -6.898349428120915e+01 -6.902984110598732e+01 -6.907620934761650e+01 -6.912259897511596e+01 + -6.916901003718877e+01 -6.921544258172949e+01 -6.926189657371528e+01 -6.930837197817074e+01 -6.935486884322755e+01 + -6.940138721768092e+01 -6.944792706987337e+01 -6.949448836290087e+01 -6.954107111932564e+01 -6.958767537490402e+01 + -6.963430115870300e+01 -6.968094848498497e+01 -6.972761731548312e+01 -6.977430762020695e+01 -6.982101945480034e+01 + -6.986775287255249e+01 -6.991450783170005e+01 -6.996128429032680e+01 -7.000808230095708e+01 -7.005490191787665e+01 + -7.010174310797666e+01 -7.014860583121035e+01 -7.019549010717337e+01 -7.024239597049470e+01 -7.028932345629492e+01 + -7.033627258446040e+01 -7.038324331344937e+01 -7.043023560838913e+01 -7.047724952251053e+01 -7.052428510987777e+01 + -7.057134233978515e+01 -7.061842117397924e+01 -7.066552162878578e+01 -7.071264373512433e+01 -7.075978752771100e+01 + -7.080695302731498e+01 -7.085414019512091e+01 -7.090134899910394e+01 -7.094857949398551e+01 -7.099583173235354e+01 + -7.104310567151599e+01 -7.109040126922885e+01 -7.113771858031990e+01 -7.118505766125368e+01 -7.123241847797109e+01 + -7.127980098937178e+01 -7.132720521671429e+01 -7.137463119544236e+01 -7.142207895538176e+01 -7.146954851252747e+01 + -7.151703983316882e+01 -7.156455289009196e+01 -7.161208773177542e+01 -7.165964440570248e+01 -7.170722287968356e+01 + -7.175482311646741e+01 -7.180244513822917e+01 -7.185008898098621e+01 -7.189775467669884e+01 -7.194544224180910e+01 + -7.199315163474331e+01 -7.204088282234626e+01 -7.208863586315185e+01 -7.213641081375658e+01 -7.218420763131780e+01 + -7.223202627227879e+01 -7.227986678966526e+01 -7.232772923884254e+01 -7.237561358795277e+01 -7.242351979769759e+01 + -7.247144788623903e+01 -7.251939788668284e+01 -7.256736983444897e+01 -7.261536375015235e+01 -7.266337959287341e+01 + -7.271141732841731e+01 -7.275947701102203e+01 -7.280755869538000e+01 -7.285566234956853e+01 -7.290378793432680e+01 + -7.295193546765573e+01 -7.300010498266862e+01 -7.304829651566631e+01 -7.309651008753943e+01 -7.314474565435016e+01 + -7.319300317971540e+01 -7.324128272229925e+01 -7.328958433981238e+01 -7.333790799110540e+01 -7.338625363374130e+01 + -7.343462131899291e+01 -7.348301110053259e+01 -7.353142294792167e+01 -7.357985682361442e+01 -7.362831274574745e+01 + -7.367679074711965e+01 -7.372529086349638e+01 -7.377381311579366e+01 -7.382235746256312e+01 -7.387092386912651e+01 + -7.391951239025020e+01 -7.396812308115555e+01 -7.401675590943988e+01 -7.406541083531380e+01 -7.411408787706513e+01 + -7.416278706814910e+01 -7.421150844461324e+01 -7.426025202733783e+01 -7.430901777394124e+01 -7.435780564940528e+01 + -7.440661571142732e+01 -7.445544801616209e+01 -7.450430252087864e+01 -7.455317918285648e+01 -7.460207805830268e+01 + -7.465099920497126e+01 -7.469994258787753e+01 -7.474890816454140e+01 -7.479789595523943e+01 -7.484690599592756e+01 + -7.489593832252380e+01 -7.494499295533201e+01 -7.499406985223764e+01 -7.504316897827101e+01 -7.509229038945979e+01 + -7.514143414169166e+01 -7.519060019929748e+01 -7.523978851997632e+01 -7.528899912645726e+01 -7.533823205657275e+01 + -7.538748734353926e+01 -7.543676500532445e+01 -7.548606500351643e+01 -7.553538730703876e+01 -7.558473197053598e+01 + -7.563409904619321e+01 -7.568348849063742e+01 -7.573290026170078e+01 -7.578233441759443e+01 -7.583179101796470e+01 + -7.588127002782028e+01 -7.593077140392674e+01 -7.598029516471465e+01 -7.602984134475692e+01 -7.607940998153097e+01 + -7.612900109746634e+01 -7.617861465189691e+01 -7.622825061065345e+01 -7.627790902865043e+01 -7.632758996032740e+01 + -7.637729336914126e+01 -7.642701921265419e+01 -7.647676751583191e+01 -7.652653831849052e+01 -7.657633165244424e+01 + -7.662614753370475e+01 -7.667598592307560e+01 -7.672584678949215e+01 -7.677573018962489e+01 -7.682563617769370e+01 + -7.687556471038147e+01 -7.692551574474433e+01 -7.697548933686781e+01 -7.702548554509247e+01 -7.707550433774978e+01 + -7.712554567498073e+01 -7.717560957417300e+01 -7.722569606768573e+01 -7.727580519051753e+01 -7.732593696392289e+01 + -7.737609135154067e+01 -7.742626832278943e+01 -7.747646792782194e+01 -7.752669021677298e+01 -7.757693515897095e+01 + -7.762720271798948e+01 -7.767749291518889e+01 -7.772780578562232e+01 -7.777814136132783e+01 -7.782849965970544e+01 + -7.787888064261847e+01 -7.792928427988689e+01 -7.797971062869398e+01 -7.803015974345008e+01 -7.808063158011076e+01 + -7.813112609521906e+01 -7.818164334612277e+01 -7.823218339188995e+01 -7.828274619766600e+01 -7.833333172107952e+01 + -7.838393998361434e+01 -7.843457102192369e+01 -7.848522486948340e+01 -7.853590154498607e+01 -7.858660101116894e+01 + -7.863732323758104e+01 -7.868806827697425e+01 -7.873883618163512e+01 -7.878962691878654e+01 -7.884044044940295e+01 + -7.889127679452803e+01 -7.894213598992800e+01 -7.899301807018992e+01 -7.904392305456564e+01 -7.909485090214494e+01 + -7.914580158005610e+01 -7.919677514774288e+01 -7.924777166238927e+01 -7.929879107982515e+01 -7.934983335558289e+01 + -7.940089854535901e+01 -7.945198670709752e+01 -7.950309780756868e+01 -7.955423180605224e+01 -7.960538872303847e+01 + -7.965656859466247e+01 -7.970777145842827e+01 -7.975899733555858e+01 -7.981024618078136e+01 -7.986151795697417e+01 + -7.991281272610696e+01 -7.996413054847572e+01 -8.001547137858779e+01 -8.006683517069925e+01 -8.011822198384908e+01 + -8.016963187855384e+01 -8.022106481645797e+01 -8.027252075224854e+01 -8.032399971165485e+01 -8.037550173585385e+01 + -8.042702685677139e+01 -8.047857509055929e+01 -8.053014639952434e+01 -8.058174075328817e+01 -8.063335820457638e+01 + -8.068499880610621e+01 -8.073666252745771e+01 -8.078834933088126e+01 -8.084005923244513e+01 -8.089179226408041e+01 + -8.094354846735196e+01 -8.099532786819320e+01 -8.104713042037783e+01 -8.109895608507813e+01 -8.115080492521992e+01 + -8.120267700205356e+01 -8.125457226837462e+01 -8.130649067623317e+01 -8.135843228315183e+01 -8.141039715010918e+01 + -8.146238524643556e+01 -8.151439653208425e+01 -8.156643102114791e+01 -8.161848874447259e+01 -8.167056974577932e+01 + -8.172267405314662e+01 -8.177480161920819e+01 -8.182695240289546e+01 -8.187912646377457e+01 -8.193132386298609e+01 + -8.198354456733288e+01 -8.203578853472443e+01 -8.208805578183410e+01 -8.214034634197473e+01 -8.219266025625411e+01 + -8.224499755029157e+01 -8.229735817995817e+01 -8.234974210798764e+01 -8.240214939431286e+01 -8.245458009683706e+01 + -8.250703416814667e+01 -8.255951156203467e+01 -8.261201234243612e+01 -8.266453657428882e+01 -8.271708421639993e+01 + -8.276965521981012e+01 -8.282224961062391e+01 -8.287486743131451e+01 -8.292750871476633e+01 -8.298017347733835e+01 + -8.303286167887651e+01 -8.308557328775250e+01 -8.313830836295337e+01 -8.319106696215761e+01 -8.324384904719405e+01 + -8.329665457280116e+01 -8.334948356120523e+01 -8.340233605179664e+01 -8.345521208513452e+01 -8.350811168407860e+01 + -8.356103479952203e+01 -8.361398139085040e+01 -8.366695152338559e+01 -8.371994526125894e+01 -8.377296255790387e+01 + -8.382600336547402e+01 -8.387906774170159e+01 -8.393215574692768e+01 -8.398526734635097e+01 -8.403840249721476e+01 + -8.409156122008268e+01 -8.414474355213920e+01 -8.419794953373223e+01 -8.425117918830632e+01 -8.430443246852916e+01 + -8.435770933516140e+01 -8.441100985211256e+01 -8.446433408298962e+01 -8.451768198704093e+01 -8.457105351533237e+01 + -8.462444869055821e+01 -8.467786755329161e+01 -8.473131014399300e+01 -8.478477648534972e+01 -8.483826652906932e+01 + -8.489178023573824e+01 -8.494531767243778e+01 -8.499887890373510e+01 -8.505246387764603e+01 -8.510607254206460e+01 + -8.515970496094809e+01 -8.521336120130535e+01 -8.526704122628841e+01 -8.532074498941530e+01 -8.537447250952404e+01 + -8.542822382319736e+01 -8.548199897267675e+01 -8.553579798342942e+01 -8.558962080816578e+01 -8.564346740685433e+01 + -8.569733784125194e+01 -8.575123217367282e+01 -8.580515036687339e+01 -8.585909237532205e+01 -8.591305821989287e+01 + -8.596704793875205e+01 -8.602106157282915e+01 -8.607509914567974e+01 -8.612916060859980e+01 -8.618324592155754e+01 + -8.623735515146925e+01 -8.629148836331387e+01 -8.634564550737286e+01 -8.639982653295500e+01 -8.645403150017543e+01 + -8.650826047252751e+01 -8.656251341621210e+01 -8.661679028858919e+01 -8.667109110894766e+01 -8.672541591317201e+01 + -8.677976474159972e+01 -8.683413761829634e+01 -8.688853449778628e+01 -8.694295534179228e+01 -8.699740021037117e+01 + -8.705186916402354e+01 -8.710636216669133e+01 -8.716087917454270e+01 -8.721542020920894e+01 -8.726998530877070e+01 + -8.732457451164281e+01 -8.737918783967393e+01 -8.743382524811331e+01 -8.748848670054353e+01 -8.754317226047976e+01 + -8.759788198894785e+01 -8.765261583708421e+01 -8.770737375634857e+01 -8.776215580938322e+01 -8.781696206132678e+01 + -8.787179247612183e+01 -8.792664700860111e+01 -8.798152567835336e+01 -8.803642852212045e+01 -8.809135558050070e+01 + -8.814630687756171e+01 -8.820128236739042e+01 -8.825628201129771e+01 -8.831130586947003e+01 -8.836635400284558e+01 + -8.842142637649435e+01 -8.847652294770472e+01 -8.853164373850628e+01 -8.858678878695027e+01 -8.864195813043362e+01 + -8.869715178945941e+01 -8.875236971760948e+01 -8.880761187808301e+01 -8.886287833946902e+01 -8.891816916696094e+01 + -8.897348430677987e+01 -8.902882370531137e+01 -8.908418742857141e+01 -8.913957554536425e+01 -8.919498801601753e+01 + -8.925042479199006e+01 -8.930588589774098e+01 -8.936137137472512e+01 -8.941688125937962e+01 -8.947241557120560e+01 + -8.952797426697802e+01 -8.958355731201681e+01 -8.963916476854843e+01 -8.969479669732335e+01 -8.975045305628245e+01 + -8.980613379692392e+01 -8.986183894778455e+01 -8.991756855389235e+01 -8.997332264920152e+01 -9.002910125051302e+01 + -9.008490431708829e+01 -9.014073181666647e+01 -9.019658380843681e+01 -9.025246034941333e+01 -9.030836139645970e+01 + -9.036428690661128e+01 -9.042023693773967e+01 -9.047621154925669e+01 -9.053221070589892e+01 -9.058823436476921e+01 + -9.064428254711031e+01 -9.070035529106499e+01 -9.075645263823618e+01 -9.081257461289793e+01 -9.086872116654884e+01 + -9.092489225918972e+01 -9.098108795760594e+01 -9.103730832657459e+01 -9.109355331605536e+01 -9.114982287548730e+01 + -9.120611706704364e+01 -9.126243595579022e+01 -9.131877950563008e+01 -9.137514767186437e+01 -9.143154047654943e+01 + -9.148795795857168e+01 -9.154440015738282e+01 -9.160086709537343e+01 -9.165735872612346e+01 -9.171387501169491e+01 + -9.177041601688784e+01 -9.182698180564800e+01 -9.188357233576582e+01 -9.194018755741556e+01 -9.199682749646104e+01 + -9.205349219658670e+01 -9.211018169707003e+01 -9.216689601912306e+01 -9.222363511610273e+01 -9.228039895018067e+01 + -9.233718758664240e+01 -9.239400108840672e+01 -9.245083940581294e+01 -9.250770248979978e+01 -9.256459040628322e+01 + -9.262150322244982e+01 -9.267844089559186e+01 -9.273540337476760e+01 -9.279239068599267e+01 -9.284940287335907e+01 + -9.290643997630693e+01 -9.296350201607783e+01 -9.302058894577094e+01 -9.307770072730455e+01 -9.313483742601555e+01 + -9.319199910633068e+01 -9.324918572561810e+01 -9.330639723351504e+01 -9.336363365579297e+01 -9.342089503640302e+01 + -9.347818141588093e+01 -9.353549281584256e+01 -9.359282918563940e+01 -9.365019048477910e+01 -9.370757678565749e+01 + -9.376498815769901e+01 -9.382242454555492e+01 -9.387988589305337e+01 -9.393737226550313e+01 -9.399488373202897e+01 + -9.405242025553964e+01 -9.410998178945039e+01 -9.416756835541781e+01 -9.422517999301114e+01 -9.428281674520871e+01 + -9.434047863667399e+01 -9.439816561540189e+01 -9.445587763836596e+01 -9.451361477512259e+01 -9.457137709520302e+01 + -9.462916455545547e+01 -9.468697710379740e+01 -9.474481476510589e+01 -9.480267758244509e+01 -9.486056559466863e+01 + -9.491847882335075e+01 -9.497641722515867e+01 -9.503438076487508e+01 -9.509236950465109e+01 -9.515038350409563e+01 + -9.520842271528107e+01 -9.526648709103007e+01 -9.532457669470300e+01 -9.538269159175374e+01 -9.544083174547335e+01 + -9.549899710997526e+01 -9.555718770482461e+01 -9.561540356780063e+01 -9.567364474408794e+01 -9.573191126075703e+01 + -9.579020306501620e+01 -9.584852011272490e+01 -9.590686247420874e+01 -9.596523021978578e+01 -9.602362330527772e+01 + -9.608204167783254e+01 -9.614048536439948e+01 -9.619895441016116e+01 -9.625744885343293e+01 -9.631596871403326e+01 + -9.637451394466026e+01 -9.643308450797647e+01 -9.649168047362274e+01 -9.655030190767742e+01 -9.660894875499127e+01 + -9.666762096089710e+01 -9.672631859388268e+01 -9.678504172537357e+01 -9.684379031539257e+01 -9.690256431417546e+01 + -9.696136374421286e+01 -9.702018864639355e+01 -9.707903906294442e+01 -9.713791501832830e+01 -9.719681646461351e+01 + -9.725574336170810e+01 -9.731469577327378e+01 -9.737367376351882e+01 -9.743267729508464e+01 -9.749170632178308e+01 + -9.755076086367355e+01 -9.760984095895955e+01 -9.766894665217343e+01 -9.772807797034233e+01 -9.778723486414395e+01 + -9.784641729236439e+01 -9.790562532257231e+01 -9.796485902036660e+01 -9.802411833468516e+01 -9.808340321418262e+01 + -9.814271372304191e+01 -9.820204992860188e+01 -9.826141179529722e+01 -9.832079927766843e+01 -9.838021239358226e+01 + -9.843965117935535e+01 -9.849911568177785e+01 -9.855860593025675e+01 -9.861812187419362e+01 -9.867766347002308e+01 + -9.873723078231735e+01 -9.879682387670165e+01 -9.885644271487612e+01 -9.891608724974174e+01 -9.897575750292785e+01 + -9.903545351466867e+01 -9.909517533088989e+01 -9.915492297862031e+01 -9.921469640360959e+01 -9.927449556058966e+01 + -9.933432052149955e+01 -9.939417135686639e+01 -9.945404801436261e+01 -9.951395044077229e+01 -9.957387870218038e+01 + -9.963383286719130e+01 -9.969381289518709e+01 -9.975381873630593e+01 -9.981385041293248e+01 -9.987390796877466e+01 + -9.993399146058783e+01 -9.999410091983435e+01 -1.000542362637563e+02 -1.001143974249114e+02 -1.001745845113392e+02 + -1.002347976270743e+02 -1.002950366846517e+02 -1.003553015922550e+02 -1.004155924321621e+02 -1.004759093011103e+02 + -1.005362521795820e+02 -1.005966210292817e+02 -1.006570158530568e+02 -1.007174366671700e+02 -1.007778835004040e+02 + -1.008383563749385e+02 -1.008988552740233e+02 -1.009593801813489e+02 -1.010199311212978e+02 -1.010805081231472e+02 + -1.011411111950619e+02 -1.012017403376325e+02 -1.012623955422635e+02 -1.013230768099676e+02 -1.013837841893743e+02 + -1.014445177207514e+02 -1.015052773633014e+02 -1.015660630775449e+02 -1.016268749103392e+02 -1.016877129150088e+02 + -1.017485770844115e+02 -1.018094673966629e+02 -1.018703838313761e+02 -1.019313263923028e+02 -1.019922951782496e+02 + -1.020532902664119e+02 -1.021143115524854e+02 -1.021753589342455e+02 -1.022364324992857e+02 -1.022975323519374e+02 + -1.023586584736673e+02 -1.024198108268543e+02 -1.024809894203941e+02 -1.025421942728475e+02 -1.026034253949216e+02 + -1.026646827901934e+02 -1.027259664415750e+02 -1.027872763473731e+02 -1.028486125881369e+02 -1.029099752254547e+02 + -1.029713641628286e+02 -1.030327793161952e+02 -1.030942208093169e+02 -1.031556887637190e+02 -1.032171830841550e+02 + -1.032787036718354e+02 -1.033402506305696e+02 -1.034018240681317e+02 -1.034634239055545e+02 -1.035250500515010e+02 + -1.035867025518952e+02 -1.036483814821213e+02 -1.037100868981441e+02 -1.037718188237329e+02 -1.038335771732939e+02 + -1.038953618747522e+02 -1.039571730194689e+02 -1.040190107055651e+02 -1.040808748947658e+02 -1.041427655331822e+02 + -1.042046826408667e+02 -1.042666262524425e+02 -1.043285963868752e+02 -1.043905930564436e+02 -1.044526162623378e+02 + -1.045146660069125e+02 -1.045767423082721e+02 -1.046388451777543e+02 -1.047009745838822e+02 -1.047631305085241e+02 + -1.048253130297424e+02 -1.048875222165416e+02 -1.049497580055002e+02 -1.050120203310284e+02 -1.050743092512860e+02 + -1.051366248384456e+02 -1.051989670969791e+02 -1.052613360137520e+02 -1.053237315729033e+02 -1.053861537661844e+02 + -1.054486026185219e+02 -1.055110781583045e+02 -1.055735803945944e+02 -1.056361093274371e+02 -1.056986649401382e+02 + -1.057612472323176e+02 -1.058238562855892e+02 -1.058864921618116e+02 -1.059491547618286e+02 -1.060118440001799e+02 + -1.060745600072047e+02 -1.061373029070868e+02 -1.062000725835928e+02 -1.062628689188559e+02 -1.063256920288941e+02 + -1.063885420424685e+02 -1.064514189054312e+02 -1.065143225392365e+02 -1.065772529506575e+02 -1.066402101774261e+02 + -1.067031942957903e+02 -1.067662053568374e+02 -1.068292432724951e+02 -1.068923079625714e+02 -1.069553995175528e+02 + -1.070185180380394e+02 -1.070816634944072e+02 -1.071448358336418e+02 -1.072080350393896e+02 -1.072712611247882e+02 + -1.073345141842783e+02 -1.073977942922143e+02 -1.074611013613008e+02 -1.075244353055826e+02 -1.075877962061142e+02 + -1.076511841502191e+02 -1.077145990832866e+02 -1.077780409492339e+02 -1.078415098280245e+02 -1.079050057992970e+02 + -1.079685288053471e+02 -1.080320787786834e+02 -1.080956557500093e+02 -1.081592597729443e+02 -1.082228908945775e+02 + -1.082865491424036e+02 -1.083502344720692e+02 -1.084139468448718e+02 -1.084776863165616e+02 -1.085414529440200e+02 + -1.086052466942038e+02 -1.086690675238350e+02 -1.087329154386204e+02 -1.087967904674474e+02 -1.088606926829425e+02 + -1.089246221377382e+02 -1.089885787607543e+02 -1.090525624876805e+02 -1.091165734050004e+02 -1.091806115963225e+02 + -1.092446769829633e+02 -1.093087694909110e+02 -1.093728892271333e+02 -1.094370362953419e+02 -1.095012106052476e+02 + -1.095654120623545e+02 -1.096296407493415e+02 -1.096938967647426e+02 -1.097581800933404e+02 -1.098224906984946e+02 + -1.098868285716250e+02 -1.099511937236656e+02 -1.100155862155477e+02 -1.100800060933800e+02 -1.101444532939841e+02 + -1.102089277564002e+02 -1.102734295378303e+02 -1.103379587096266e+02 -1.104025152815812e+02 -1.104670992426730e+02 + -1.105317105601886e+02 -1.105963492199813e+02 -1.106610153038629e+02 -1.107257088820756e+02 -1.107904298826226e+02 + -1.108551782361634e+02 -1.109199540262203e+02 -1.109847573373186e+02 -1.110495881051325e+02 -1.111144462586115e+02 + -1.111793318486534e+02 -1.112442449476576e+02 -1.113091855920787e+02 -1.113741537899001e+02 -1.114391494711626e+02 + -1.115041725824562e+02 -1.115692232145109e+02 -1.116343014623147e+02 -1.116994072937479e+02 -1.117645406555522e+02 + -1.118297015370191e+02 -1.118948899532702e+02 -1.119601059801944e+02 -1.120253496750247e+02 -1.120906209596036e+02 + -1.121559197660155e+02 -1.122212462027017e+02 -1.122866003728487e+02 -1.123519821822644e+02 -1.124173915349786e+02 + -1.124828285252852e+02 -1.125482932599049e+02 -1.126137857050017e+02 -1.126793058037530e+02 -1.127448535479451e+02 + -1.128104289543148e+02 -1.128760320907921e+02 -1.129416630123176e+02 -1.130073216706816e+02 -1.130730080183262e+02 + -1.131387221134510e+02 -1.132044640167948e+02 -1.132702336934948e+02 -1.133360310978225e+02 -1.134018562361866e+02 + -1.134677091387784e+02 -1.135335898787815e+02 -1.135994985091588e+02 -1.136654349589990e+02 -1.137313991629182e+02 + -1.137973912015162e+02 -1.138634111582333e+02 -1.139294589818884e+02 -1.139955346168527e+02 -1.140616381243277e+02 + -1.141277695680233e+02 -1.141939289048548e+02 -1.142601160860919e+02 -1.143263311472162e+02 -1.143925741390390e+02 + -1.144588450894802e+02 -1.145251440101338e+02 -1.145914708701818e+02 -1.146578256494022e+02 -1.147242084123678e+02 + -1.147906192149256e+02 -1.148570579932248e+02 -1.149235246826633e+02 -1.149900193353325e+02 -1.150565420227369e+02 + -1.151230927773426e+02 -1.151896716067799e+02 -1.152562784583746e+02 -1.153229132947855e+02 -1.153895762003063e+02 + -1.154562672526404e+02 -1.155229863814943e+02 -1.155897335150450e+02 -1.156565087233475e+02 -1.157233120892246e+02 + -1.157901436046917e+02 -1.158570032371645e+02 -1.159238909464663e+02 -1.159908067231330e+02 -1.160577506881430e+02 + -1.161247229415995e+02 -1.161917233696630e+02 -1.162587518588770e+02 -1.163258085112608e+02 -1.163928934406831e+02 + -1.164600065929374e+02 -1.165271479034755e+02 -1.165943174344564e+02 -1.166615152526160e+02 -1.167287413162901e+02 + -1.167959955757904e+02 -1.168632780577301e+02 -1.169305888112216e+02 -1.169979278990717e+02 -1.170652953548001e+02 + -1.171326910810820e+02 -1.172001149975291e+02 -1.172675672223445e+02 -1.173350478778825e+02 -1.174025569045121e+02 + -1.174700942215011e+02 -1.175376598456954e+02 -1.176052538191002e+02 -1.176728761867799e+02 -1.177405269796691e+02 + -1.178082061691247e+02 -1.178759137299273e+02 -1.179436497101298e+02 -1.180114141509050e+02 -1.180792069926326e+02 + -1.181470281872303e+02 -1.182148778335583e+02 -1.182827560287664e+02 -1.183506627162192e+02 -1.184185978220269e+02 + -1.184865613570652e+02 -1.185545533602401e+02 -1.186225738978121e+02 -1.186906230193939e+02 -1.187587006806511e+02 + -1.188268068350639e+02 -1.188949415213182e+02 -1.189631047837780e+02 -1.190312966043158e+02 -1.190995169567162e+02 + -1.191677658449030e+02 -1.192360432941998e+02 -1.193043493853908e+02 -1.193726841751893e+02 -1.194410475685670e+02 + -1.195094394794060e+02 -1.195778600089746e+02 -1.196463092648311e+02 -1.197147871923100e+02 -1.197832937276135e+02 + -1.198518289326376e+02 -1.199203928745778e+02 -1.199889855161324e+02 -1.200576068078755e+02 -1.201262567563797e+02 + -1.201949353935382e+02 -1.202636427965272e+02 -1.203323790196208e+02 -1.204011439802014e+02 -1.204699376081542e+02 + -1.205387600202684e+02 -1.206076113241917e+02 -1.206764914041025e+02 -1.207454001431820e+02 -1.208143376440890e+02 + -1.208833040296615e+02 -1.209522992839752e+02 -1.210213233653680e+02 -1.210903762679893e+02 -1.211594580022500e+02 + -1.212285686077949e+02 -1.212977081155049e+02 -1.213668764919694e+02 -1.214360737100132e+02 -1.215052998316942e+02 + -1.215745549154533e+02 -1.216438389160294e+02 -1.217131517838345e+02 -1.217824935556734e+02 -1.218518642837182e+02 + -1.219212639952166e+02 -1.219906927020717e+02 -1.220601503797327e+02 -1.221296370078328e+02 -1.221991526191948e+02 + -1.222686972509000e+02 -1.223382709038720e+02 -1.224078735702578e+02 -1.224775052432531e+02 -1.225471659287695e+02 + -1.226168556825330e+02 -1.226865745477072e+02 -1.227563224673916e+02 -1.228260993926653e+02 -1.228959054065903e+02 + -1.229657405910973e+02 -1.230356048916106e+02 -1.231054982500379e+02 -1.231754207307278e+02 -1.232453724007864e+02 + -1.233153532159101e+02 -1.233853631242201e+02 -1.234554021549459e+02 -1.235254703591199e+02 -1.235955677938801e+02 + -1.236656944915691e+02 -1.237358503792446e+02 -1.238060353939673e+02 -1.238762496180971e+02 -1.239464931371069e+02 + -1.240167659036240e+02 -1.240870678602586e+02 -1.241573990423949e+02 -1.242277595040581e+02 -1.242981492810638e+02 + -1.243685683872523e+02 -1.244390167667736e+02 -1.245094943779347e+02 -1.245800013053605e+02 -1.246505376299316e+02 + -1.247211032912332e+02 -1.247916982296097e+02 -1.248623225297382e+02 -1.249329762770640e+02 -1.250036594157741e+02 + -1.250743718736609e+02 -1.251451136541969e+02 -1.252158847947410e+02 -1.252866853925174e+02 -1.253575155184925e+02 + -1.254283750787370e+02 -1.254992639825418e+02 -1.255701823169751e+02 -1.256411301759969e+02 -1.257121075033584e+02 + -1.257831142369608e+02 -1.258541504415142e+02 -1.259252161922362e+02 -1.259963114795672e+02 -1.260674362758903e+02 + -1.261385905661348e+02 -1.262097743537985e+02 -1.262809877041053e+02 -1.263522306696565e+02 -1.264235031908370e+02 + -1.264948052148923e+02 -1.265661368287249e+02 -1.266374981169807e+02 -1.267088890156212e+02 -1.267803094502130e+02 + -1.268517594534262e+02 -1.269232390831601e+02 -1.269947483911282e+02 -1.270662874069690e+02 -1.271378560782095e+02 + -1.272094543594662e+02 -1.272810823158284e+02 -1.273527400123002e+02 -1.274244274030747e+02 -1.274961444355319e+02 + -1.275678911406106e+02 -1.276396675704015e+02 -1.277114737780431e+02 -1.277833097950603e+02 -1.278551755654751e+02 + -1.279270710424012e+02 -1.279989963028243e+02 -1.280709514152536e+02 -1.281429362904217e+02 -1.282149508513121e+02 + -1.282869952276877e+02 -1.283590695463467e+02 -1.284311737154509e+02 -1.285033076302067e+02 -1.285754713526335e+02 + -1.286476649682441e+02 -1.287198884897120e+02 -1.287921419051992e+02 -1.288644251776617e+02 -1.289367382880697e+02 + -1.290090813146567e+02 -1.290814543319980e+02 -1.291538573027727e+02 -1.292262901737162e+02 -1.292987529396840e+02 + -1.293712456190937e+02 -1.294437682764910e+02 -1.295163209673579e+02 -1.295889036647941e+02 -1.296615163353197e+02 + -1.297341590015173e+02 -1.298068316903185e+02 -1.298795343899871e+02 -1.299522670904091e+02 -1.300250298266263e+02 + -1.300978226354063e+02 -1.301706455152632e+02 -1.302434984561237e+02 -1.303163814518184e+02 -1.303892945098205e+02 + -1.304622376882688e+02 -1.305352110313897e+02 -1.306082144770936e+02 -1.306812479731976e+02 -1.307543116134598e+02 + -1.308274054850011e+02 -1.309005295024521e+02 -1.309736835845235e+02 -1.310468678387340e+02 -1.311200823754845e+02 + -1.311933271278942e+02 -1.312666020134129e+02 -1.313399070640916e+02 -1.314132423401880e+02 -1.314866079001839e+02 + -1.315600037753056e+02 -1.316334298895329e+02 -1.317068861777292e+02 -1.317803727255405e+02 -1.318538896215189e+02 + -1.319274368150577e+02 -1.320010142454794e+02 -1.320746219509807e+02 -1.321482599879661e+02 -1.322219283867981e+02 + -1.322956271602158e+02 -1.323693562765047e+02 -1.324431157110688e+02 -1.325169055122373e+02 -1.325907257242561e+02 + -1.326645763021127e+02 -1.327384572099461e+02 -1.328123685377604e+02 -1.328863103680995e+02 -1.329602826278048e+02 + -1.330342852393407e+02 -1.331083182633673e+02 -1.331823817787306e+02 -1.332564757988239e+02 -1.333306003141445e+02 + -1.334047552890586e+02 -1.334789407033280e+02 -1.335531566244299e+02 -1.336274031130300e+02 -1.337016801148342e+02 + -1.337759875748336e+02 -1.338503255501201e+02 -1.339246941130952e+02 -1.339990932852997e+02 -1.340735230609586e+02 + -1.341479833758948e+02 -1.342224741891434e+02 -1.342969956109889e+02 -1.343715477431406e+02 -1.344461305017541e+02 + -1.345207438015131e+02 -1.345953877367626e+02 -1.346700624038786e+02 -1.347447677276981e+02 -1.348195036263442e+02 + -1.348942701626209e+02 -1.349690674171868e+02 -1.350438953974369e+02 -1.351187540921076e+02 -1.351936434885642e+02 + -1.352685635848754e+02 -1.353435144232942e+02 -1.354184960414874e+02 -1.354935084145923e+02 -1.355685515128237e+02 + -1.356436253492364e+02 -1.357187299541088e+02 -1.357938653837732e+02 -1.358690316768758e+02 -1.359442287752637e+02 + -1.360194566279880e+02 -1.360947153097144e+02 -1.361700048911278e+02 -1.362453253013760e+02 -1.363206764782614e+02 + -1.363960585357406e+02 -1.364714715821978e+02 -1.365469155275740e+02 -1.366223902703805e+02 -1.366978958618521e+02 + -1.367734323848502e+02 -1.368489998960226e+02 -1.369245984210613e+02 -1.370002278880492e+02 -1.370758882331093e+02 + -1.371515795221331e+02 -1.372273018270698e+02 -1.373030551143317e+02 -1.373788393429953e+02 -1.374546545483291e+02 + -1.375305007816427e+02 -1.376063780822184e+02 -1.376822864668756e+02 -1.377582258746108e+02 -1.378341962588316e+02 + -1.379101977084133e+02 -1.379862303093919e+02 -1.380622940009784e+02 -1.381383887192652e+02 -1.382145145346940e+02 + -1.382906715205862e+02 -1.383668596274320e+02 -1.384430787972570e+02 -1.385193290610606e+02 -1.385956104734610e+02 + -1.386719230945808e+02 -1.387482669582360e+02 -1.388246419875133e+02 -1.389010481148665e+02 -1.389774854209464e+02 + -1.390539539951986e+02 -1.391304538140523e+02 -1.392069848343242e+02 -1.392835470473980e+02 -1.393601404693719e+02 + -1.394367651806349e+02 -1.395134212422815e+02 -1.395901085739362e+02 -1.396668271002043e+02 -1.397435769070855e+02 + -1.398203580874878e+02 -1.398971706005607e+02 -1.399740143977720e+02 -1.400508895336226e+02 -1.401277960614956e+02 + -1.402047339272718e+02 -1.402817030764181e+02 -1.403587035602461e+02 -1.404357354502877e+02 -1.405127987931110e+02 + -1.405898936026113e+02 -1.406670197869564e+02 -1.407441772794584e+02 -1.408213662197336e+02 -1.408985867371466e+02 + -1.409758387137537e+02 -1.410531220224061e+02 -1.411304367464428e+02 -1.412077829961380e+02 -1.412851607790223e+02 + -1.413625700771281e+02 -1.414400108732392e+02 -1.415174831646232e+02 -1.415949870057306e+02 -1.416725224388105e+02 + -1.417500894001226e+02 -1.418276878351835e+02 -1.419053178325258e+02 -1.419829794809226e+02 -1.420606727270934e+02 + -1.421383975074728e+02 -1.422161538594082e+02 -1.422939418408956e+02 -1.423717614916131e+02 -1.424496128273150e+02 + -1.425274957863782e+02 -1.426054103213069e+02 -1.426833565184944e+02 -1.427613344645970e+02 -1.428393441134355e+02 + -1.429173854035838e+02 -1.429954583454632e+02 -1.430735629773860e+02 -1.431516993773805e+02 -1.432298676007922e+02 + -1.433080675725197e+02 -1.433862992191345e+02 -1.434645626043482e+02 -1.435428578032951e+02 -1.436211847996638e+02 + -1.436995435672099e+02 -1.437779341314036e+02 -1.438563565210897e+02 -1.439348107268960e+02 -1.440132967358192e+02 + -1.440918145585468e+02 -1.441703642214681e+02 -1.442489457900865e+02 -1.443275593072134e+02 -1.444062046857781e+02 + -1.444848818522611e+02 -1.445635909172288e+02 -1.446423319927847e+02 -1.447211050130976e+02 -1.447999098925679e+02 + -1.448787466444589e+02 -1.449576153140356e+02 -1.450365159757091e+02 -1.451154486823820e+02 -1.451944133717774e+02 + -1.452734099863848e+02 -1.453524386029381e+02 -1.454314992962476e+02 -1.455105919991844e+02 -1.455897166474813e+02 + -1.456688733302556e+02 -1.457480621396693e+02 -1.458272830266799e+02 -1.459065359271370e+02 -1.459858208576615e+02 + -1.460651378591126e+02 -1.461444869885314e+02 -1.462238682831965e+02 -1.463032816851561e+02 -1.463827271416525e+02 + -1.464622047159361e+02 -1.465417144784923e+02 -1.466212564127396e+02 -1.467008304928943e+02 -1.467804367434297e+02 + -1.468600751934606e+02 -1.469397458404120e+02 -1.470194486722770e+02 -1.470991836710121e+02 -1.471789508433917e+02 + -1.472587503015001e+02 -1.473385821300154e+02 -1.474184461986837e+02 -1.474983423870870e+02 -1.475782708290815e+02 + -1.476582316674545e+02 -1.477382248264445e+02 -1.478182502096616e+02 -1.478983078567520e+02 -1.479783978350921e+02 + -1.480585201869469e+02 -1.481386749269736e+02 -1.482188619845118e+02 -1.482990813088785e+02 -1.483793330146163e+02 + -1.484596172099193e+02 -1.485399338123612e+02 -1.486202827323657e+02 -1.487006640423751e+02 -1.487810778248495e+02 + -1.488615240403001e+02 -1.489420026412511e+02 -1.490225136702235e+02 -1.491030571832025e+02 -1.491836332000337e+02 + -1.492642417202360e+02 -1.493448826981615e+02 -1.494255561054278e+02 -1.495062620278810e+02 -1.495870005487025e+02 + -1.496677716261896e+02 -1.497485751994623e+02 -1.498294112558179e+02 -1.499102798158717e+02 -1.499911809853331e+02 + -1.500721148441144e+02 -1.501530812838450e+02 -1.502340802026938e+02 -1.503151117132690e+02 -1.503961759364751e+02 + -1.504772728119622e+02 -1.505584022645880e+02 -1.506395643412949e+02 -1.507207591024668e+02 -1.508019865401696e+02 + -1.508832466324269e+02 -1.509645393694111e+02 -1.510458647628492e+02 -1.511272228985386e+02 -1.512086138412552e+02 + -1.512900374976176e+02 -1.513714937855876e+02 -1.514529828266537e+02 -1.515345047392310e+02 -1.516160594259147e+02 + -1.516976467776822e+02 -1.517792668548592e+02 -1.518609197460578e+02 -1.519426054836894e+02 -1.520243240750476e+02 + -1.521060754831553e+02 -1.521878596792744e+02 -1.522696767118938e+02 -1.523515266305248e+02 -1.524334094115421e+02 + -1.525153250314230e+02 -1.525972735401888e+02 -1.526792549864990e+02 -1.527612693400200e+02 -1.528433165631959e+02 + -1.529253966685747e+02 -1.530075096900777e+02 -1.530896556970147e+02 -1.531718347321965e+02 -1.532540466970516e+02 + -1.533362915133235e+02 -1.534185693253995e+02 -1.535008802693854e+02 -1.535832242256197e+02 -1.536656010621809e+02 + -1.537480108538752e+02 -1.538304537113657e+02 -1.539129296820158e+02 -1.539954387715506e+02 -1.540779808824423e+02 + -1.541605559457948e+02 -1.542431641104905e+02 -1.543258055115917e+02 -1.544084800111010e+02 -1.544911874726015e+02 + -1.545739280390565e+02 -1.546567018609975e+02 -1.547395088398511e+02 -1.548223488576198e+02 -1.549052219677139e+02 + -1.549881282595875e+02 -1.550710677954614e+02 -1.551540406026988e+02 -1.552370465964632e+02 -1.553200857053796e+02 + -1.554031580241178e+02 -1.554862636500489e+02 -1.555694025253043e+02 -1.556525745801794e+02 -1.557357798528659e+02 + -1.558190184045264e+02 -1.559022902803117e+02 -1.559855954979769e+02 -1.560689339817060e+02 -1.561523056771075e+02 + -1.562357107090587e+02 -1.563191491909100e+02 -1.564026210106382e+02 -1.564861260558312e+02 -1.565696644378976e+02 + -1.566532362813955e+02 -1.567368415396626e+02 -1.568204801387562e+02 -1.569041520668287e+02 -1.569878573487146e+02 + -1.570715960938785e+02 -1.571553683828581e+02 -1.572391740958522e+02 -1.573230131265335e+02 -1.574068856228085e+02 + -1.574907917295132e+02 -1.575747313249683e+02 -1.576587042737324e+02 -1.577427106518309e+02 -1.578267505715277e+02 + -1.579108240785769e+02 -1.579949311783184e+02 -1.580790717809458e+02 -1.581632458187553e+02 -1.582474534075981e+02 + -1.583316946623155e+02 -1.584159695101536e+02 -1.585002778727259e+02 -1.585846198367120e+02 -1.586689954874005e+02 + -1.587534047394542e+02 -1.588378475061590e+02 -1.589223238659185e+02 -1.590068339195322e+02 -1.590913776922658e+02 + -1.591759551748261e+02 -1.592605662952183e+02 -1.593452110061037e+02 -1.594298894214712e+02 -1.595146016508511e+02 + -1.595993476246111e+02 -1.596841272537272e+02 -1.597689405507699e+02 -1.598537875632453e+02 -1.599386683768111e+02 + -1.600235830481832e+02 -1.601085314801616e+02 -1.601935135899282e+02 -1.602785295061083e+02 -1.603635793509372e+02 + -1.604486630096468e+02 -1.605337803660765e+02 -1.606189315354990e+02 -1.607041166452176e+02 -1.607893356392255e+02 + -1.608745884397152e+02 -1.609598750649831e+02 -1.610451955612870e+02 -1.611305499906227e+02 -1.612159383917271e+02 + -1.613013606945609e+02 -1.613868168398436e+02 -1.614723069201057e+02 -1.615578310304217e+02 -1.616433891242326e+02 + -1.617289811339727e+02 -1.618146070496823e+02 -1.619002668955830e+02 -1.619859607750138e+02 -1.620716887676450e+02 + -1.621574507793529e+02 -1.622432467219253e+02 -1.623290767045893e+02 -1.624149408340039e+02 -1.625008390091176e+02 + -1.625867711331680e+02 -1.626727373342588e+02 -1.627587377384768e+02 -1.628447722389764e+02 -1.629308407201184e+02 + -1.630169432640222e+02 -1.631030799800713e+02 -1.631892508889492e+02 -1.632754559784962e+02 -1.633616951938801e+02 + -1.634479685044198e+02 -1.635342760187116e+02 -1.636206178291233e+02 -1.637069938238325e+02 -1.637934038942077e+02 + -1.638798481485683e+02 -1.639663267112721e+02 -1.640528395538795e+02 -1.641393866180353e+02 -1.642259678785196e+02 + -1.643125833411851e+02 -1.643992331030405e+02 -1.644859172470150e+02 -1.645726357085657e+02 -1.646593884180614e+02 + -1.647461754329907e+02 -1.648329968179324e+02 -1.649198525387065e+02 -1.650067425502886e+02 -1.650936668630355e+02 + -1.651806255134507e+02 -1.652676185872448e+02 -1.653546461444497e+02 -1.654417080931755e+02 -1.655288043499995e+02 + -1.656159350172886e+02 -1.657031001994683e+02 -1.657902998234105e+02 -1.658775338117127e+02 -1.659648022474274e+02 + -1.660521052162188e+02 -1.661394426537408e+02 -1.662268144894047e+02 -1.663142207776613e+02 -1.664016615975541e+02 + -1.664891370014617e+02 -1.665766470055737e+02 -1.666641915079906e+02 -1.667517704334961e+02 -1.668393839316945e+02 + -1.669270321420214e+02 -1.670147149384157e+02 -1.671024321837371e+02 -1.671901839620226e+02 -1.672779703889409e+02 + -1.673657914855093e+02 -1.674536472385115e+02 -1.675415375924466e+02 -1.676294625158688e+02 -1.677174221158364e+02 + -1.678054164853866e+02 -1.678934455229663e+02 -1.679815091339810e+02 -1.680696074462591e+02 -1.681577405863894e+02 + -1.682459084535819e+02 -1.683341109324726e+02 -1.684223480767776e+02 -1.685106199767677e+02 -1.685989266998525e+02 + -1.686872682758898e+02 -1.687756446073924e+02 -1.688640556163956e+02 -1.689525014303699e+02 -1.690409821718389e+02 + -1.691294977381033e+02 -1.692180480141565e+02 -1.693066330609834e+02 -1.693952529706734e+02 -1.694839077837423e+02 + -1.695725975104607e+02 -1.696613220916933e+02 -1.697500814887782e+02 -1.698388758143547e+02 -1.699277051650943e+02 + -1.700165694224996e+02 -1.701054684738952e+02 -1.701944024450633e+02 -1.702833714670375e+02 -1.703723754534025e+02 + -1.704614143033400e+02 -1.705504880758685e+02 -1.706395968591658e+02 -1.707287406982126e+02 -1.708179196055015e+02 + -1.709071335067704e+02 -1.709963823462651e+02 -1.710856662290167e+02 -1.711749852543236e+02 -1.712643393377691e+02 + -1.713537283867857e+02 -1.714431524599174e+02 -1.715326116432521e+02 -1.716221059819435e+02 -1.717116354891412e+02 + -1.718012000909151e+02 -1.718907997312464e+02 -1.719804345128430e+02 -1.720701045346718e+02 -1.721598097220100e+02 + -1.722495499971131e+02 -1.723393254438396e+02 -1.724291361494486e+02 -1.725189820532021e+02 -1.726088630837053e+02 + -1.726987792749333e+02 -1.727887306891670e+02 -1.728787173965418e+02 -1.729687394350333e+02 -1.730587967061244e+02 + -1.731488891286860e+02 -1.732390168276344e+02 -1.733291799265234e+02 -1.734193783374131e+02 -1.735096119603506e+02 + -1.735998808588243e+02 -1.736901851222248e+02 -1.737805247801124e+02 -1.738708998286339e+02 -1.739613101901119e+02 + -1.740517558114003e+02 -1.741422368113012e+02 -1.742327533050288e+02 -1.743233052214973e+02 -1.744138924793676e+02 + -1.745045151425876e+02 -1.745951732822802e+02 -1.746858668529805e+02 -1.747765958032038e+02 -1.748673601739718e+02 + -1.749581600245709e+02 -1.750489953948396e+02 -1.751398663036498e+02 -1.752307727054541e+02 -1.753217145616989e+02 + -1.754126919262226e+02 -1.755037048571098e+02 -1.755947533370347e+02 -1.756858373371216e+02 -1.757769568577038e+02 + -1.758681119173357e+02 -1.759593025782490e+02 -1.760505288876894e+02 -1.761417907892832e+02 -1.762330882344909e+02 + -1.763244213097290e+02 -1.764157900964081e+02 -1.765071945209611e+02 -1.765986345094344e+02 -1.766901101413071e+02 + -1.767816215026837e+02 -1.768731685527375e+02 -1.769647512369523e+02 -1.770563695729838e+02 -1.771480236027573e+02 + -1.772397133931058e+02 -1.773314389867134e+02 -1.774232003047593e+02 -1.775149972814722e+02 -1.776068300247813e+02 + -1.776986986385443e+02 -1.777906030366335e+02 -1.778825431235826e+02 -1.779745189565556e+02 -1.780665306226855e+02 + -1.781585781763529e+02 -1.782506616334199e+02 -1.783427808884287e+02 -1.784349358629673e+02 -1.785271267081259e+02 + -1.786193535668995e+02 -1.787116163204012e+02 -1.788039148425030e+02 -1.788962492399977e+02 -1.789886196318098e+02 + -1.790810259524725e+02 -1.791734681201561e+02 -1.792659461719689e+02 -1.793584601742520e+02 -1.794510101913400e+02 + -1.795435962594126e+02 -1.796362183040394e+02 -1.797288762617232e+02 -1.798215702233099e+02 -1.799143002757676e+02 + -1.800070663362093e+02 -1.800998683262517e+02 -1.801927063553792e+02 -1.802855805315161e+02 -1.803784907684791e+02 + -1.804714369692463e+02 -1.805644191875481e+02 -1.806574375103104e+02 -1.807504920064915e+02 -1.808435827084130e+02 + -1.809367095198169e+02 -1.810298723599504e+02 -1.811230713386593e+02 -1.812163065647390e+02 -1.813095779521854e+02 + -1.814028854036152e+02 -1.814962289709267e+02 -1.815896087407728e+02 -1.816830247895420e+02 -1.817764771515762e+02 + -1.818699657032943e+02 -1.819634903439186e+02 -1.820570512218083e+02 -1.821506484855823e+02 -1.822442820357622e+02 + -1.823379517614509e+02 -1.824316577541746e+02 -1.825254001134493e+02 -1.826191787683301e+02 -1.827129936397535e+02 + -1.828068447866412e+02 -1.829007322929544e+02 -1.829946562048259e+02 -1.830886165373395e+02 -1.831826132192083e+02 + -1.832766461922778e+02 -1.833707155372913e+02 -1.834648213380734e+02 -1.835589635518759e+02 -1.836531421229175e+02 + -1.837473570698571e+02 -1.838416084358642e+02 -1.839358962877114e+02 -1.840302206684350e+02 -1.841245815025237e+02 + -1.842189787235884e+02 -1.843134124202761e+02 -1.844078826806361e+02 -1.845023894352911e+02 -1.845969326205561e+02 + -1.846915123529413e+02 -1.847861287393624e+02 -1.848807816681596e+02 -1.849754710227848e+02 -1.850701968857076e+02 + -1.851649593688754e+02 -1.852597585031284e+02 -1.853545942804591e+02 -1.854494666185751e+02 -1.855443754618861e+02 + -1.856393209358935e+02 -1.857343031604275e+02 -1.858293220515437e+02 -1.859243775087027e+02 -1.860194695687597e+02 + -1.861145983033516e+02 -1.862097637858479e+02 -1.863049660540466e+02 -1.864002050017272e+02 -1.864954805431744e+02 + -1.865907928187129e+02 -1.866861419596013e+02 -1.867815278347963e+02 -1.868769503164351e+02 -1.869724095516791e+02 + -1.870679056966096e+02 -1.871634386679672e+02 -1.872590083560524e+02 -1.873546147847470e+02 -1.874502580123688e+02 + -1.875459381013990e+02 -1.876416550903780e+02 -1.877374089179168e+02 -1.878331995340542e+02 -1.879290270344656e+02 + -1.880248915055781e+02 -1.881207928511883e+02 -1.882167309755823e+02 -1.883127059676341e+02 -1.884087179360091e+02 + -1.885047668839511e+02 -1.886008527852007e+02 -1.886969756009047e+02 -1.887931353152428e+02 -1.888893320171184e+02 + -1.889855657829229e+02 -1.890818365342772e+02 -1.891781441947396e+02 -1.892744888503877e+02 -1.893708705921393e+02 + -1.894672893677523e+02 -1.895637451161106e+02 -1.896602378837592e+02 -1.897567677352667e+02 -1.898533346996371e+02 + -1.899499387807097e+02 -1.900465799172331e+02 -1.901432580674921e+02 -1.902399733330072e+02 -1.903367258125687e+02 + -1.904335154508099e+02 -1.905303421711713e+02 -1.906272059664800e+02 -1.907241068668330e+02 -1.908210449820209e+02 + -1.909180203947948e+02 -1.910150330000556e+02 -1.911120827002041e+02 -1.912091696154924e+02 -1.913062938635582e+02 + -1.914034553337337e+02 -1.915006539182285e+02 -1.915978897490666e+02 -1.916951629619544e+02 -1.917924734675151e+02 + -1.918898211586861e+02 -1.919872060827436e+02 -1.920846283161583e+02 -1.921820878978424e+02 -1.922795848438701e+02 + -1.923771191165239e+02 -1.924746906889474e+02 -1.925722996315181e+02 -1.926699460069926e+02 -1.927676297504074e+02 + -1.928653507913461e+02 -1.929631091652971e+02 -1.930609049367203e+02 -1.931587381800568e+02 -1.932566089358633e+02 + -1.933545170991796e+02 -1.934524625825225e+02 -1.935504455138344e+02 -1.936484660231147e+02 -1.937465240331655e+02 + -1.938446194535055e+02 -1.939427523477156e+02 -1.940409227930324e+02 -1.941391307672549e+02 -1.942373762317632e+02 + -1.943356591817002e+02 -1.944339796386271e+02 -1.945323376960147e+02 -1.946307334225392e+02 -1.947291667157886e+02 + -1.948276374816129e+02 -1.949261458299981e+02 -1.950246918758956e+02 -1.951232755499811e+02 -1.952218967672293e+02 + -1.953205555640852e+02 -1.954192520091347e+02 -1.955179861780584e+02 -1.956167581109271e+02 -1.957155676982765e+02 + -1.958144148511486e+02 -1.959132997121442e+02 -1.960122224157670e+02 -1.961111828325720e+02 -1.962101808324193e+02 + -1.963092165463342e+02 -1.964082901163006e+02 -1.965074014669716e+02 -1.966065505047830e+02 -1.967057372806285e+02 + -1.968049618689787e+02 -1.969042242941536e+02 -1.970035245570506e+02 -1.971028626150270e+02 -1.972022384428475e+02 + -1.973016521284466e+02 -1.974011037520065e+02 -1.975005932495305e+02 -1.976001205455443e+02 -1.976996856628438e+02 + -1.977992886519515e+02 -1.978989295760255e+02 -1.979986084767589e+02 -1.980983252973461e+02 -1.981980799861144e+02 + -1.982978726104215e+02 -1.983977032396124e+02 -1.984975718319531e+02 -1.985974783450467e+02 -1.986974228449224e+02 + -1.987974053983538e+02 -1.988974259666649e+02 -1.989974844962869e+02 -1.990975809795281e+02 -1.991977154414513e+02 + -1.992978879922588e+02 -1.993980987169082e+02 -1.994983475142392e+02 -1.995986342853965e+02 -1.996989591268633e+02 + -1.997993221398394e+02 -1.998997232490551e+02 -2.000001623829878e+02 -2.001006396615730e+02 -2.002011551976202e+02 + -2.003017088839768e+02 -2.004023006006677e+02 -2.005029303963877e+02 -2.006035983645368e+02 -2.007043046086661e+02 + -2.008050491826254e+02 -2.009058319313084e+02 -2.010066527248718e+02 -2.011075117434797e+02 -2.012084091672780e+02 + -2.013093448663347e+02 -2.014103186854462e+02 -2.015113306783989e+02 -2.016123809487723e+02 -2.017134695903300e+02 + -2.018145966520298e+02 -2.019157620134241e+02 -2.020169655668574e+02 -2.021182074252480e+02 -2.022194877090834e+02 + -2.023208063485549e+02 -2.024221632682046e+02 -2.025235585602719e+02 -2.026249923196053e+02 -2.027264644837921e+02 + -2.028279749730532e+02 -2.029295237954015e+02 -2.030311109992572e+02 -2.031327367068774e+02 -2.032344010007734e+02 + -2.033361037306376e+02 -2.034378447601810e+02 -2.035396242420057e+02 -2.036414423389593e+02 -2.037432989659801e+02 + -2.038451940079258e+02 -2.039471274772405e+02 -2.040490994323931e+02 -2.041511099883670e+02 -2.042531592234435e+02 + -2.043552470125819e+02 -2.044573732391661e+02 -2.045595380236004e+02 -2.046617414909655e+02 -2.047639835480296e+02 + -2.048662640993485e+02 -2.049685832589404e+02 -2.050709411450770e+02 -2.051733376835843e+02 -2.052757727854042e+02 + -2.053782464943871e+02 -2.054807588829732e+02 -2.055833100050551e+02 -2.056858998827895e+02 -2.057885284299405e+02 + -2.058911955783421e+02 -2.059939014405005e+02 -2.060966461276917e+02 -2.061994295656012e+02 -2.063022516666823e+02 + -2.064051124760526e+02 -2.065080120661920e+02 -2.066109504863692e+02 -2.067139277576765e+02 -2.068169438117121e+02 + -2.069199985973326e+02 -2.070230922219201e+02 -2.071262247789163e+02 -2.072293961474789e+02 -2.073326062201854e+02 + -2.074358551575783e+02 -2.075391431180403e+02 -2.076424699833530e+02 -2.077458356179337e+02 -2.078492400933438e+02 + -2.079526835133251e+02 -2.080561659031989e+02 -2.081596872578975e+02 -2.082632475292167e+02 -2.083668466898186e+02 + -2.084704848389632e+02 -2.085741620623951e+02 -2.086778782651976e+02 -2.087816333480700e+02 -2.088854273748348e+02 + -2.089892604383302e+02 -2.090931325843364e+02 -2.091970438282278e+02 -2.093009941108145e+02 -2.094049833841979e+02 + -2.095090117202067e+02 -2.096130791905716e+02 -2.097171857469022e+02 -2.098213313423286e+02 -2.099255160561849e+02 + -2.100297399619016e+02 -2.101340029830976e+02 -2.102383050403986e+02 -2.103426461922712e+02 -2.104470265253758e+02 + -2.105514461013085e+02 -2.106559049410852e+02 -2.107604029284658e+02 -2.108649399745926e+02 -2.109695162373935e+02 + -2.110741318706494e+02 -2.111787867647689e+02 -2.112834807867834e+02 -2.113882139735869e+02 -2.114929864074473e+02 + -2.115977981822681e+02 -2.117026493533424e+02 -2.118075398098887e+02 -2.119124694556393e+02 -2.120174384184601e+02 + -2.121224468216736e+02 -2.122274945462991e+02 -2.123325814769304e+02 -2.124377077547605e+02 -2.125428735238108e+02 + -2.126480786828185e+02 -2.127533231155498e+02 -2.128586068911697e+02 -2.129639301084739e+02 -2.130692927993837e+02 + -2.131746949622090e+02 -2.132801365276879e+02 -2.133856174488912e+02 -2.134911378357916e+02 -2.135966977951921e+02 + -2.137022972643151e+02 -2.138079361581469e+02 -2.139136144723085e+02 -2.140193322420075e+02 -2.141250895801643e+02 + -2.142308865713384e+02 -2.143367231089345e+02 -2.144425990899214e+02 -2.145485146166798e+02 -2.146544697958461e+02 + -2.147604645456698e+02 -2.148664987887291e+02 -2.149725726533044e+02 -2.150786862586875e+02 -2.151848394825147e+02 + -2.152910321964648e+02 -2.153972644900385e+02 -2.155035364828845e+02 -2.156098481974242e+02 -2.157161996246267e+02 + -2.158225907268823e+02 -2.159290214790141e+02 -2.160354919341570e+02 -2.161420021424622e+02 -2.162485520638355e+02 + -2.163551416576007e+02 -2.164617709709994e+02 -2.165684400663080e+02 -2.166751489780245e+02 -2.167818977145845e+02 + -2.168886862079515e+02 -2.169955144082682e+02 -2.171023824148656e+02 -2.172092903208214e+02 -2.173162380450137e+02 + -2.174232255130703e+02 -2.175302528518165e+02 -2.176373201799158e+02 -2.177444273821862e+02 -2.178515743317612e+02 + -2.179587610888773e+02 -2.180659877532527e+02 -2.181732543954297e+02 -2.182805610486399e+02 -2.183879076260487e+02 + -2.184952940541088e+02 -2.186027204324891e+02 -2.187101868605661e+02 -2.188176932633304e+02 -2.189252395535715e+02 + -2.190328257696591e+02 -2.191404519835346e+02 -2.192481182758485e+02 -2.193558246894080e+02 -2.194635711069396e+02 + -2.195713574321837e+02 -2.196791838130171e+02 -2.197870503917547e+02 -2.198949570443306e+02 -2.200029036478261e+02 + -2.201108903502962e+02 -2.202189173008489e+02 -2.203269843818326e+02 -2.204350914576510e+02 -2.205432385876858e+02 + -2.206514258738742e+02 -2.207596533933995e+02 -2.208679211808499e+02 -2.209762291251867e+02 -2.210845771334710e+02 + -2.211929653307878e+02 -2.213013938407175e+02 -2.214098625627986e+02 -2.215183713969045e+02 -2.216269204682873e+02 + -2.217355099024502e+02 -2.218441396005216e+02 -2.219528094497077e+02 -2.220615195058979e+02 -2.221702698646027e+02 + -2.222790606111339e+02 -2.223878917838657e+02 -2.224967632436199e+02 -2.226056748766821e+02 -2.227146268487432e+02 + -2.228236193240230e+02 -2.229326521814535e+02 -2.230417252803019e+02 -2.231508386864637e+02 -2.232599925050409e+02 + -2.233691867913336e+02 -2.234784215614204e+02 -2.235876967242961e+02 -2.236970122086523e+02 -2.238063681290529e+02 + -2.239157646015454e+02 -2.240252015622403e+02 -2.241346789340316e+02 -2.242441967668838e+02 -2.243537551247286e+02 + -2.244633540002964e+02 -2.245729933685804e+02 -2.246826732048266e+02 -2.247923935126906e+02 -2.249021544092157e+02 + -2.250119559889259e+02 -2.251217981428817e+02 -2.252316807628839e+02 -2.253416039471573e+02 -2.254515678046834e+02 + -2.255615722810486e+02 -2.256716173029860e+02 -2.257817028852108e+02 -2.258918290784169e+02 -2.260019959892315e+02 + -2.261122036854213e+02 -2.262224520233766e+02 -2.263327408802082e+02 -2.264430704272837e+02 -2.265534408332552e+02 + -2.266638519616550e+02 -2.267743036660735e+02 -2.268847960654481e+02 -2.269953292962885e+02 -2.271059033000460e+02 + -2.272165179952407e+02 -2.273271734037251e+02 -2.274378695801794e+02 -2.275486066072624e+02 -2.276593845334010e+02 + -2.277702032421150e+02 -2.278810626343348e+02 -2.279919628455381e+02 -2.281029040172474e+02 -2.282138860806176e+02 + -2.283249089376286e+02 -2.284359725839265e+02 -2.285470770593814e+02 -2.286582224870930e+02 -2.287694089544078e+02 + -2.288806363224278e+02 -2.289919044640359e+02 -2.291032135254801e+02 -2.292145636582007e+02 -2.293259547610424e+02 + -2.294373867252146e+02 -2.295488596639802e+02 -2.296603736910369e+02 -2.297719286997702e+02 -2.298835245768747e+02 + -2.299951614025932e+02 -2.301068392919157e+02 -2.302185583052736e+02 -2.303303184582155e+02 -2.304421196413199e+02 + -2.305539617649887e+02 -2.306658449438852e+02 -2.307777692999738e+02 -2.308897347801602e+02 -2.310017413072381e+02 + -2.311137888826106e+02 -2.312258775426401e+02 -2.313380073849178e+02 -2.314501784790464e+02 -2.315623907214496e+02 + -2.316746440227619e+02 -2.317869385236417e+02 -2.318992743527083e+02 -2.320116513604021e+02 -2.321240694060221e+02 + -2.322365286624793e+02 -2.323490293043759e+02 -2.324615711994689e+02 -2.325741541998047e+02 -2.326867784014305e+02 + -2.327994439322068e+02 -2.329121508032486e+02 -2.330248989898164e+02 -2.331376884404961e+02 -2.332505191272475e+02 + -2.333633911421986e+02 -2.334763045743060e+02 -2.335892593796759e+02 -2.337022554911374e+02 -2.338152928812627e+02 + -2.339283715644559e+02 -2.340414916827054e+02 -2.341546533474617e+02 -2.342678564204413e+02 -2.343811007676228e+02 + -2.344943865217682e+02 -2.346077138212040e+02 -2.347210825597340e+02 -2.348344926295532e+02 -2.349479441609453e+02 + -2.350614372851493e+02 -2.351749718991416e+02 -2.352885478850955e+02 -2.354021653002366e+02 -2.355158242429473e+02 + -2.356295248011875e+02 -2.357432670145577e+02 -2.358570507396431e+02 -2.359708758587992e+02 -2.360847425404777e+02 + -2.361986509531367e+02 -2.363126009791645e+02 -2.364265924750662e+02 -2.365406254798825e+02 -2.366547000814751e+02 + -2.367688163804559e+02 -2.368829744348273e+02 -2.369971741194025e+02 -2.371114153287764e+02 -2.372256982198593e+02 + -2.373400229428812e+02 -2.374543893590377e+02 -2.375687973238754e+02 -2.376832469593778e+02 -2.377977384043928e+02 + -2.379122715987879e+02 -2.380268464580362e+02 -2.381414629990116e+02 -2.382561212769444e+02 -2.383708213990897e+02 + -2.384855634334210e+02 -2.386003472387607e+02 -2.387151726904082e+02 -2.388300399387221e+02 -2.389449491374237e+02 + -2.390599001786255e+02 -2.391748929369255e+02 -2.392899274784697e+02 -2.394050039061344e+02 -2.395201222781684e+02 + -2.396352826134916e+02 -2.397504848183333e+02 -2.398657288168898e+02 -2.399810147179146e+02 -2.400963426277219e+02 + -2.402117124583125e+02 -2.403271241258893e+02 -2.404425777577767e+02 -2.405580734795174e+02 -2.406736111984077e+02 + -2.407891907995794e+02 -2.409048122977546e+02 -2.410204757554728e+02 -2.411361812969551e+02 -2.412519290053517e+02 + -2.413677187378485e+02 -2.414835503650167e+02 -2.415994240369316e+02 -2.417153399089511e+02 -2.418312978780588e+02 + -2.419472978191357e+02 -2.420633397770240e+02 -2.421794238369657e+02 -2.422955500758429e+02 -2.424117185344053e+02 + -2.425279291172331e+02 -2.426441817421263e+02 -2.427604765159341e+02 -2.428768135466203e+02 -2.429931927575585e+02 + -2.431096140668555e+02 -2.432260775561414e+02 -2.433425833145866e+02 -2.434591312980004e+02 -2.435757214497087e+02 + -2.436923537964655e+02 -2.438090283895336e+02 -2.439257452947832e+02 -2.440425045463603e+02 -2.441593060369063e+02 + -2.442761496825792e+02 -2.443930356351059e+02 -2.445099640393889e+02 -2.446269347774639e+02 -2.447439477225602e+02 + -2.448610029755453e+02 -2.449781006544274e+02 -2.450952407181387e+02 -2.452124231032676e+02 -2.453296478161015e+02 + -2.454469148921256e+02 -2.455642244139170e+02 -2.456815764363974e+02 -2.457989708567751e+02 -2.459164075868465e+02 + -2.460338867544718e+02 -2.461514084874868e+02 -2.462689726975661e+02 -2.463865792818051e+02 -2.465042282951439e+02 + -2.466219198202147e+02 -2.467396538925739e+02 -2.468574305187124e+02 -2.469752496359336e+02 -2.470931112029433e+02 + -2.472110153332446e+02 -2.473289621270786e+02 -2.474469514768406e+02 -2.475649832814832e+02 -2.476830576740329e+02 + -2.478011747871381e+02 -2.479193345178656e+02 -2.480375367456449e+02 -2.481557815149384e+02 -2.482740689103307e+02 + -2.483923990118631e+02 -2.485107718618152e+02 -2.486291873559622e+02 -2.487476454083695e+02 -2.488661461527674e+02 + -2.489846897184250e+02 -2.491032759971039e+02 -2.492219048675295e+02 -2.493405763937896e+02 -2.494592906781626e+02 + -2.495780477903268e+02 -2.496968477531592e+02 -2.498156904349301e+02 -2.499345757349562e+02 -2.500535038313474e+02 + -2.501724748933778e+02 -2.502914887761886e+02 -2.504105453266259e+02 -2.505296446724864e+02 -2.506487869586733e+02 + -2.507679721175656e+02 -2.508872000588222e+02 -2.510064708137437e+02 -2.511257844438344e+02 -2.512451410097723e+02 + -2.513645405425343e+02 -2.514839829551193e+02 -2.516034681806881e+02 -2.517229963510282e+02 -2.518425675906852e+02 + -2.519621817966139e+02 -2.520818388494823e+02 -2.522015387924022e+02 -2.523212817096907e+02 -2.524410676880414e+02 + -2.525608967718439e+02 -2.526807688338955e+02 -2.528006837687293e+02 -2.529206417294141e+02 -2.530406428681973e+02 + -2.531606870755077e+02 -2.532807742357317e+02 -2.534009044709059e+02 -2.535210779031462e+02 -2.536412944172385e+02 + -2.537615538911017e+02 -2.538818564125164e+02 -2.540022021028112e+02 -2.541225910076441e+02 -2.542430231270507e+02 + -2.543634983542462e+02 -2.544840166121418e+02 -2.546045780492533e+02 -2.547251828099108e+02 -2.548458307960956e+02 + -2.549665218842466e+02 -2.550872560909815e+02 -2.552080334828205e+02 -2.553288541857174e+02 -2.554497182835964e+02 + -2.555706256328296e+02 -2.556915761009198e+02 -2.558125698274442e+02 -2.559336069560756e+02 -2.560546873747970e+02 + -2.561758109689862e+02 -2.562969778692906e+02 -2.564181882127723e+02 -2.565394419168841e+02 -2.566607388759341e+02 + -2.567820791112567e+02 -2.569034626862424e+02 -2.570248897054782e+02 -2.571463602359873e+02 -2.572678741533426e+02 + -2.573894313462550e+02 -2.575110319474426e+02 -2.576326760938784e+02 -2.577543636955484e+02 -2.578760946446893e+02 + -2.579978689895271e+02 -2.581196868133063e+02 -2.582415481833543e+02 -2.583634531275302e+02 -2.584854015317316e+02 + -2.586073933093156e+02 -2.587294286254374e+02 -2.588515076317444e+02 -2.589736301740566e+02 -2.590957960996737e+02 + -2.592180055676404e+02 -2.593402587446819e+02 -2.594625555165019e+02 -2.595848957490105e+02 -2.597072795099639e+02 + -2.598297069067293e+02 -2.599521780032740e+02 -2.600746928207452e+02 -2.601972512524080e+02 -2.603198532148209e+02 + -2.604424988455961e+02 -2.605651882765137e+02 -2.606879213949725e+02 -2.608106980758151e+02 -2.609335183880386e+02 + -2.610563824372016e+02 -2.611792902809524e+02 -2.613022419394243e+02 -2.614252373306019e+02 -2.615482763897488e+02 + -2.616713592233935e+02 -2.617944859260970e+02 -2.619176563732862e+02 -2.620408704583867e+02 -2.621641283659552e+02 + -2.622874302706103e+02 -2.624107760160917e+02 -2.625341654302978e+02 -2.626575986086381e+02 -2.627810756876698e+02 + -2.629045967010318e+02 -2.630281616427657e+02 -2.631517704514422e+02 -2.632754230861743e+02 -2.633991196437133e+02 + -2.635228602105341e+02 -2.636466446943674e+02 -2.637704729984163e+02 -2.638943451865159e+02 -2.640182613561179e+02 + -2.641422215785110e+02 -2.642662258795402e+02 -2.643902741294400e+02 -2.645143662245587e+02 -2.646385023213122e+02 + -2.647626825745115e+02 -2.648869068724856e+02 -2.650111750962730e+02 -2.651354873642347e+02 -2.652598438005879e+02 + -2.653842443156531e+02 -2.655086888035231e+02 -2.656331773072787e+02 -2.657577099091213e+02 -2.658822866987512e+02 + -2.660069077230897e+02 -2.661315728504449e+02 -2.662562819710931e+02 -2.663810352417937e+02 -2.665058328192844e+02 + -2.666306745937331e+02 -2.667555604333347e+02 -2.668804903849584e+02 -2.670054645383429e+02 -2.671304829760297e+02 + -2.672555457413816e+02 -2.673806527282453e+02 -2.675058038464400e+02 -2.676309992191929e+02 -2.677562389652032e+02 + -2.678815229716541e+02 -2.680068511277727e+02 -2.681322235624782e+02 -2.682576404136338e+02 -2.683831016151858e+02 + -2.685086070756685e+02 -2.686341568058856e+02 -2.687597508516357e+02 -2.688853892964312e+02 -2.690110721950252e+02 + -2.691367994494158e+02 -2.692625709807897e+02 -2.693883869398372e+02 -2.695142474621058e+02 -2.696401523930688e+02 + -2.697661015819900e+02 -2.698920951833660e+02 -2.700181333642693e+02 -2.701442160368443e+02 -2.702703430840482e+02 + -2.703965145270174e+02 -2.705227304331903e+02 -2.706489909170355e+02 -2.707752960482972e+02 -2.709016456707917e+02 + -2.710280396495872e+02 -2.711544781606855e+02 -2.712809613853167e+02 -2.714074892146895e+02 -2.715340615102555e+02 + -2.716606783044584e+02 -2.717873396730564e+02 -2.719140456940721e+02 -2.720407964136753e+02 -2.721675917483545e+02 + -2.722944316245073e+02 -2.724213161378437e+02 -2.725482453844213e+02 -2.726752192923742e+02 -2.728022377909456e+02 + -2.729293009817382e+02 -2.730564089616648e+02 -2.731835616365174e+02 -2.733107589046467e+02 -2.734380008257563e+02 + -2.735652874983575e+02 -2.736926190148396e+02 -2.738199954194386e+02 -2.739474165698984e+02 -2.740748823405867e+02 + -2.742023928588563e+02 -2.743299482670098e+02 -2.744575485141638e+02 -2.745851935229188e+02 -2.747128833029967e+02 + -2.748406178969678e+02 -2.749683973916734e+02 -2.750962218440648e+02 -2.752240911472609e+02 -2.753520052060601e+02 + -2.754799641358123e+02 -2.756079680559450e+02 -2.757360168916492e+02 -2.758641105650285e+02 -2.759922491800748e+02 + -2.761204328366440e+02 -2.762486614361617e+02 -2.763769348745897e+02 -2.765052532244616e+02 -2.766336165883748e+02 + -2.767620250126050e+02 -2.768904785041199e+02 -2.770189769689730e+02 -2.771475203398639e+02 -2.772761087569904e+02 + -2.774047423518460e+02 -2.775334210136085e+02 -2.776621446145333e+02 -2.777909132015001e+02 -2.779197268642361e+02 + -2.780485856892346e+02 -2.781774897218528e+02 -2.783064388461343e+02 -2.784354329669438e+02 -2.785644722337429e+02 + -2.786935567875348e+02 -2.788226864908934e+02 -2.789518612068105e+02 -2.790810810783757e+02 -2.792103462555617e+02 + -2.793396566357773e+02 -2.794690121008859e+02 -2.795984127231330e+02 -2.797278586088501e+02 -2.798573498103315e+02 + -2.799868863353985e+02 -2.801164680680156e+02 -2.802460949220819e+02 -2.803757670550874e+02 -2.805054846206144e+02 + -2.806352475130235e+02 -2.807650555997772e+02 -2.808949088999684e+02 -2.810248074853591e+02 -2.811547514867556e+02 + -2.812847409903677e+02 -2.814147758449749e+02 -2.815448559108459e+02 -2.816749813316353e+02 -2.818051522586102e+02 + -2.819353685901064e+02 -2.820656302199222e+02 -2.821959372766401e+02 -2.823262898869716e+02 -2.824566879353637e+02 + -2.825871312931868e+02 -2.827176200217700e+02 -2.828481542276227e+02 -2.829787340080183e+02 -2.831093594072626e+02 + -2.832400302670260e+02 -2.833707464559445e+02 -2.835015081531469e+02 -2.836323155420096e+02 -2.837631685124079e+02 + -2.838940669226656e+02 -2.840250107984012e+02 -2.841560002155769e+02 -2.842870352842360e+02 -2.844181160721325e+02 + -2.845492424437817e+02 -2.846804142799303e+02 -2.848116317294889e+02 -2.849428949404899e+02 -2.850742037892878e+02 + -2.852055581519247e+02 -2.853369581748677e+02 -2.854684040068092e+02 -2.855998955349205e+02 -2.857314326251873e+02 + -2.858630153203723e+02 -2.859946437114748e+02 -2.861263179056654e+02 -2.862580379663874e+02 -2.863898037660037e+02 + -2.865216151879669e+02 -2.866534723511688e+02 -2.867853753832939e+02 -2.869173242117615e+02 -2.870493187426322e+02 + -2.871813589967982e+02 -2.873134450373917e+02 -2.874455769816758e+02 -2.875777549027032e+02 -2.877099786425546e+02 + -2.878422480619707e+02 -2.879745633273037e+02 -2.881069246090204e+02 -2.882393317884377e+02 -2.883717847366556e+02 + -2.885042835730584e+02 -2.886368284288774e+02 -2.887694192344474e+02 -2.889020558953364e+02 -2.890347384189399e+02 + -2.891674668528066e+02 -2.893002413032724e+02 -2.894330618447220e+02 -2.895659283649483e+02 -2.896988407604515e+02 + -2.898317991491523e+02 -2.899648036558058e+02 -2.900978542110840e+02 -2.902309507220182e+02 -2.903640931951591e+02 + -2.904972816775983e+02 -2.906305162790740e+02 -2.907637970750559e+02 -2.908971239412933e+02 -2.910304967707643e+02 + -2.911639157250792e+02 -2.912973809535366e+02 -2.914308922875549e+02 -2.915644495654761e+02 -2.916980529712119e+02 + -2.918317026983915e+02 -2.919653986339440e+02 -2.920991406314096e+02 -2.922329287174719e+02 -2.923667629702973e+02 + -2.925006435008390e+02 -2.926345703772706e+02 -2.927685434638595e+02 -2.929025626397000e+02 -2.930366280470975e+02 + -2.931707398343328e+02 -2.933048979103752e+02 -2.934391021578708e+02 -2.935733525934834e+02 -2.937076492857184e+02 + -2.938419923764308e+02 -2.939763819565550e+02 -2.941108178399977e+02 -2.942452998623305e+02 -2.943798282228154e+02 + -2.945144031200941e+02 -2.946490243866398e+02 -2.947836918481424e+02 -2.949184056693277e+02 -2.950531660302706e+02 + -2.951879728334102e+02 -2.953228259514730e+02 -2.954577254159683e+02 -2.955926713017622e+02 -2.957276636983648e+02 + -2.958627026572042e+02 -2.959977880627373e+02 -2.961329198152110e+02 -2.962680980450039e+02 -2.964033228802077e+02 + -2.965385942096344e+02 -2.966739119278574e+02 -2.968092761917713e+02 -2.969446871501122e+02 -2.970801446566606e+02 + -2.972156485544735e+02 -2.973511989386669e+02 -2.974867959450954e+02 -2.976224396205114e+02 -2.977581299655766e+02 + -2.978938668856917e+02 -2.980296503111913e+02 -2.981654803674056e+02 -2.983013571739824e+02 -2.984372806328453e+02 + -2.985732506311156e+02 -2.987092672144286e+02 -2.988453304703744e+02 -2.989814404958496e+02 -2.991175973412398e+02 + -2.992538008615809e+02 -2.993900509369414e+02 -2.995263477428711e+02 -2.996626914493826e+02 -2.997990819088619e+02 + -2.999355189707111e+02 -3.000720027900217e+02 -3.002085335269560e+02 -3.003451110562723e+02 -3.004817352353309e+02 + -3.006184061373012e+02 -3.007551238767678e+02 -3.008918885181671e+02 -3.010287000846923e+02 -3.011655584847104e+02 + -3.013024636430795e+02 -3.014394156654455e+02 -3.015764146559894e+02 -3.017134605322491e+02 -3.018505532010304e+02 + -3.019876927128527e+02 -3.021248791518991e+02 -3.022621125932933e+02 -3.023993930706231e+02 -3.025367204603900e+02 + -3.026740946641424e+02 -3.028115158406990e+02 -3.029489841386069e+02 -3.030864994080570e+02 -3.032240615026816e+02 + -3.033616705882347e+02 -3.034993268395738e+02 -3.036370301558538e+02 -3.037747804087723e+02 -3.039125776359002e+02 + -3.040504219146317e+02 -3.041883133157825e+02 -3.043262518737324e+02 -3.044642374836954e+02 -3.046022700638564e+02 + -3.047403497634464e+02 -3.048784767248004e+02 -3.050166508316213e+02 -3.051548719471290e+02 -3.052931401112401e+02 + -3.054314554166776e+02 -3.055698179906950e+02 -3.057082279030724e+02 -3.058466849591645e+02 -3.059851889955948e+02 + -3.061237402384871e+02 -3.062623389075358e+02 -3.064009848072192e+02 -3.065396777363650e+02 -3.066784178864098e+02 + -3.068172054654241e+02 -3.069560403554044e+02 -3.070949224023651e+02 -3.072338516344630e+02 -3.073728281334552e+02 + -3.075118520133569e+02 -3.076509233435525e+02 -3.077900419826468e+02 -3.079292078053290e+02 -3.080684209614084e+02 + -3.082076816048298e+02 -3.083469896309615e+02 -3.084863449149456e+02 -3.086257475095906e+02 -3.087651975081579e+02 + -3.089046949880547e+02 -3.090442399817611e+02 -3.091838323579038e+02 -3.093234720151574e+02 -3.094631591362355e+02 + -3.096028938900603e+02 -3.097426761063483e+02 -3.098825056148365e+02 -3.100223825845469e+02 -3.101623071983122e+02 + -3.103022793549238e+02 -3.104422989228102e+02 -3.105823659329897e+02 -3.107224804626276e+02 -3.108626426108901e+02 + -3.110028524323948e+02 -3.111431097815640e+02 -3.112834145351391e+02 -3.114237668593314e+02 -3.115641669247677e+02 + -3.117046146302696e+02 -3.118451098470761e+02 -3.119856526079039e+02 -3.121262429897644e+02 -3.122668810853719e+02 + -3.124075669478935e+02 -3.125483004566077e+02 -3.126890815070839e+02 -3.128299102339429e+02 -3.129707867704560e+02 + -3.131117110054437e+02 -3.132526828292356e+02 -3.133937023826453e+02 -3.135347698019019e+02 -3.136758849544115e+02 + -3.138170476993112e+02 -3.139582581314797e+02 -3.140995163841689e+02 -3.142408225083815e+02 -3.143821765079714e+02 + -3.145235782804463e+02 -3.146650277504123e+02 -3.148065250572144e+02 -3.149480703283944e+02 -3.150896634295446e+02 + -3.152313042212708e+02 -3.153729928061792e+02 -3.155147293192109e+02 -3.156565137826469e+02 -3.157983461803634e+02 + -3.159402264552761e+02 -3.160821545730877e+02 -3.162241306316100e+02 -3.163661547129774e+02 -3.165082267045055e+02 + -3.166503465083330e+02 -3.167925142807053e+02 -3.169347301718565e+02 -3.170769940538677e+02 -3.172193057829434e+02 + -3.173616654299331e+02 -3.175040731106142e+02 -3.176465289058318e+02 -3.177890328440690e+02 -3.179315847792938e+02 + -3.180741845934695e+02 -3.182168324550577e+02 -3.183595285351408e+02 -3.185022727287870e+02 -3.186450649049847e+02 + -3.187879051044167e+02 -3.189307934072479e+02 -3.190737298798787e+02 -3.192167145562098e+02 -3.193597473539087e+02 + -3.195028282067584e+02 -3.196459572292360e+02 -3.197891345287240e+02 -3.199323600035334e+02 -3.200756335516368e+02 + -3.202189552787263e+02 -3.203623252990410e+02 -3.205057435532916e+02 -3.206492099607363e+02 -3.207927245283494e+02 + -3.209362873029775e+02 -3.210798984032395e+02 -3.212235579095965e+02 -3.213672656781062e+02 -3.215110215776564e+02 + -3.216548257528610e+02 -3.217986783602123e+02 -3.219425793279964e+02 -3.220865285490494e+02 -3.222305260026159e+02 + -3.223745717228416e+02 -3.225186658770672e+02 -3.226628085862362e+02 -3.228069996525048e+02 -3.229512388959131e+02 + -3.230955265268207e+02 -3.232398627556209e+02 -3.233842474025269e+02 -3.235286802821290e+02 -3.236731615767077e+02 + -3.238176914785998e+02 -3.239622698526831e+02 -3.241068965416273e+02 -3.242515716267282e+02 -3.243962952303619e+02 + -3.245410674006047e+02 -3.246858881442026e+02 -3.248307573768830e+02 -3.249756750377737e+02 -3.251206412506237e+02 + -3.252656561247559e+02 -3.254107195271718e+02 -3.255558313340717e+02 -3.257009917007768e+02 -3.258462007853361e+02 + -3.259914584775946e+02 -3.261367646471811e+02 -3.262821193510638e+02 -3.264275226864755e+02 -3.265729747243638e+02 + -3.267184754961565e+02 -3.268640249014856e+02 -3.270096228564299e+02 -3.271552694746495e+02 -3.273009648690628e+02 + -3.274467089520415e+02 -3.275925016223748e+02 -3.277383429250694e+02 -3.278842329472037e+02 -3.280301717979274e+02 + -3.281761595333842e+02 -3.283221959756238e+02 -3.284682809773962e+02 -3.286144147483458e+02 -3.287605974914733e+02 + -3.289068290263132e+02 -3.290531091681708e+02 -3.291994380988984e+02 -3.293458160115122e+02 -3.294922427771376e+02 + -3.296387182388717e+02 -3.297852424495862e+02 -3.299318155124273e+02 -3.300784375218649e+02 -3.302251085265343e+02 + -3.303718284004092e+02 -3.305185970357408e+02 -3.306654145725511e+02 -3.308122811494171e+02 -3.309591966513669e+02 + -3.311061609508276e+02 -3.312531741233722e+02 -3.314002362831168e+02 -3.315473474952068e+02 -3.316945077733321e+02 + -3.318417169743284e+02 -3.319889749946440e+02 -3.321362820460264e+02 -3.322836383216903e+02 -3.324310436254205e+02 + -3.325784977579187e+02 -3.327260008969810e+02 -3.328735532388732e+02 -3.330211546766479e+02 -3.331688050699581e+02 + -3.333165044480712e+02 -3.334642528918999e+02 -3.336120505193238e+02 -3.337598974031960e+02 -3.339077933992973e+02 + -3.340557383761620e+02 -3.342037324704123e+02 -3.343517758263186e+02 -3.344998683506588e+02 -3.346480099317598e+02 + -3.347962006216366e+02 -3.349444405123485e+02 -3.350927296924430e+02 -3.352410681997821e+02 -3.353894558729969e+02 + -3.355378925848257e+02 -3.356863785436656e+02 -3.358349139484366e+02 -3.359834986244929e+02 -3.361321323883865e+02 + -3.362808153950241e+02 -3.364295478191028e+02 -3.365783295761255e+02 -3.367271605486342e+02 -3.368760407465185e+02 + -3.370249702279324e+02 -3.371739491167402e+02 -3.373229774932894e+02 -3.374720551981496e+02 -3.376211820935624e+02 + -3.377703583682330e+02 -3.379195842066430e+02 -3.380688594499171e+02 -3.382181839217990e+02 -3.383675577198622e+02 + -3.385169809890102e+02 -3.386664537896355e+02 -3.388159761271593e+02 -3.389655478716282e+02 -3.391151689236262e+02 + -3.392648394412631e+02 -3.394145595795439e+02 -3.395643292235305e+02 -3.397141482525620e+02 -3.398640167930273e+02 + -3.400139349724158e+02 -3.401639026755699e+02 -3.403139197760493e+02 -3.404639863449279e+02 -3.406141024957107e+02 + -3.407642683141136e+02 -3.409144838324194e+02 -3.410647488969659e+02 -3.412150633828331e+02 -3.413654274660125e+02 + -3.415158413252182e+02 -3.416663048491409e+02 -3.418168178992377e+02 -3.419673805180489e+02 -3.421179927901010e+02 + -3.422686547867838e+02 -3.424193665441726e+02 -3.425701279702224e+02 -3.427209389917095e+02 -3.428717997388184e+02 + -3.430227103286458e+02 -3.431736706225328e+02 -3.433246804902436e+02 -3.434757400909901e+02 -3.436268495884827e+02 + -3.437780088749811e+02 -3.439292178162220e+02 -3.440804764432992e+02 -3.442317848369893e+02 -3.443831431114438e+02 + -3.445345513395477e+02 -3.446860093957458e+02 -3.448375171638715e+02 -3.449890747637513e+02 -3.451406823209921e+02 + -3.452923397483303e+02 -3.454440469383874e+02 -3.455958039161959e+02 -3.457476107544265e+02 -3.458994675838882e+02 + -3.460513744837874e+02 -3.462033312687789e+02 -3.463553377809081e+02 -3.465073942363314e+02 -3.466595008454457e+02 + -3.468116574214998e+02 -3.469638637732855e+02 -3.471161200889126e+02 -3.472684265676839e+02 -3.474207830743587e+02 + -3.475731894457752e+02 -3.477256457416318e+02 -3.478781520698926e+02 -3.480307085087305e+02 -3.481833150905516e+02 + -3.483359716944890e+02 -3.484886782275422e+02 -3.486414348614480e+02 -3.487942417546251e+02 -3.489470987474849e+02 + -3.491000056682386e+02 -3.492529626143035e+02 -3.494059697303613e+02 -3.495590270809477e+02 -3.497121346735108e+02 + -3.498652923672977e+02 -3.500185000578142e+02 -3.501717579338015e+02 -3.503250661735650e+02 -3.504784246204307e+02 + -3.506318331106053e+02 -3.507852917867942e+02 -3.509388008057230e+02 -3.510923600737020e+02 -3.512459694729739e+02 + -3.513996290399252e+02 -3.515533388531561e+02 -3.517070990059733e+02 -3.518609095547224e+02 -3.520147703931951e+02 + -3.521686814254426e+02 -3.523226427591028e+02 -3.524766545004363e+02 -3.526307165466042e+02 -3.527848288024159e+02 + -3.529389914123712e+02 -3.530932045168612e+02 -3.532474680001527e+02 -3.534017817301934e+02 -3.535561457657783e+02 + -3.537105602073667e+02 -3.538650251312291e+02 -3.540195405716707e+02 -3.541741064193253e+02 -3.543287225825957e+02 + -3.544833891846346e+02 -3.546381063473606e+02 -3.547928739730113e+02 -3.549476919508821e+02 -3.551025603381796e+02 + -3.552574792297605e+02 -3.554124487031720e+02 -3.555674687945711e+02 -3.557225393918643e+02 -3.558776604020463e+02 + -3.560328319567154e+02 -3.561880541805177e+02 -3.563433269456882e+02 -3.564986501330765e+02 -3.566540239103983e+02 + -3.568094484429710e+02 -3.569649235996524e+02 -3.571204492251743e+02 -3.572760253642205e+02 -3.574316521198430e+02 + -3.575873296286128e+02 -3.577430579645793e+02 -3.578988369181832e+02 -3.580546663122107e+02 -3.582105463824335e+02 + -3.583664773634632e+02 -3.585224590722860e+02 -3.586784912980774e+02 -3.588345741363943e+02 -3.589907077420278e+02 + -3.591468922003262e+02 -3.593031275347307e+02 -3.594594135904955e+02 -3.596157502414973e+02 -3.597721376542854e+02 + -3.599285759961583e+02 -3.600850651447366e+02 -3.602416049709182e+02 -3.603981956083848e+02 -3.605548371920680e+02 + -3.607115295991184e+02 -3.608682726958015e+02 -3.610250665626241e+02 -3.611819113190277e+02 -3.613388070259530e+02 + -3.614957536972620e+02 -3.616527512170044e+02 -3.618097994957786e+02 -3.619668986801910e+02 -3.621240489112448e+02 + -3.622812500715253e+02 -3.624385020268735e+02 -3.625958048345691e+02 -3.627531585959862e+02 -3.629105633974360e+02 + -3.630680192762735e+02 -3.632255260890885e+02 -3.633830837209757e+02 -3.635406923518125e+02 -3.636983521500620e+02 + -3.638560629437486e+02 -3.640138245654421e+02 -3.641716372063300e+02 -3.643295010634408e+02 -3.644874159985495e+02 + -3.646453818454157e+02 -3.648033986609884e+02 -3.649614665547653e+02 -3.651195856232492e+02 -3.652777559169987e+02 + -3.654359773157880e+02 -3.655942497193339e+02 -3.657525732779061e+02 -3.659109481367831e+02 -3.660693741707290e+02 + -3.662278512419212e+02 -3.663863794327037e+02 -3.665449588644519e+02 -3.667035895945005e+02 -3.668622716357800e+02 + -3.670210048876434e+02 -3.671797892763418e+02 -3.673386249492966e+02 -3.674975120447079e+02 -3.676564504427247e+02 + -3.678154400208724e+02 -3.679744809042344e+02 -3.681335732252156e+02 -3.682927168979475e+02 -3.684519118222935e+02 + -3.686111580593141e+02 -3.687704557033292e+02 -3.689298048205014e+02 -3.690892054329191e+02 -3.692486574145354e+02 + -3.694081606700869e+02 -3.695677153755793e+02 -3.697273216946131e+02 -3.698869794698993e+02 -3.700466885253786e+02 + -3.702064489307988e+02 -3.703662608017668e+02 -3.705261241915196e+02 -3.706860391012269e+02 -3.708460053861607e+02 + -3.710060229388483e+02 -3.711660919467376e+02 -3.713262125796104e+02 -3.714863846416646e+02 -3.716466079328989e+02 + -3.718068826020972e+02 -3.719672088201144e+02 -3.721275864973102e+02 -3.722880155098476e+02 -3.724484958575989e+02 + -3.726090275883345e+02 -3.727696108177087e+02 -3.729302456171431e+02 -3.730909318132427e+02 -3.732516692484294e+02 + -3.734124580732086e+02 -3.735732984485285e+02 -3.737341902690280e+02 -3.738951333966488e+02 -3.740561278288502e+02 + -3.742171736164895e+02 -3.743782708884933e+02 -3.745394197314636e+02 -3.747006199846337e+02 -3.748618715145197e+02 + -3.750231745441332e+02 -3.751845292967938e+02 -3.753459356405600e+02 -3.755073934398666e+02 -3.756689028999150e+02 + -3.758304642401999e+02 -3.759920773966298e+02 -3.761537422764503e+02 -3.763154589558405e+02 -3.764772275566993e+02 + -3.766390482148706e+02 -3.768009210261144e+02 -3.769628459119104e+02 -3.771248228066682e+02 -3.772868518707951e+02 + -3.774489332703654e+02 -3.776110669681248e+02 -3.777732529036114e+02 -3.779354911268638e+02 -3.780977817328078e+02 + -3.782601248854201e+02 -3.784225207068740e+02 -3.785849690830777e+02 -3.787474699201715e+02 -3.789100234414875e+02 + -3.790726298611719e+02 -3.792352890394379e+02 -3.793980008403989e+02 -3.795607654977005e+02 -3.797235832511840e+02 + -3.798864539959452e+02 -3.800493775732837e+02 -3.802123539540593e+02 -3.803753831256555e+02 -3.805384650119894e+02 + -3.807015994897982e+02 -3.808647863105625e+02 -3.810280252452890e+02 -3.811913162683451e+02 -3.813546593533040e+02 + -3.815180542672069e+02 -3.816815007606327e+02 -3.818449987248433e+02 -3.820085480876401e+02 -3.821721487823003e+02 + -3.823358007029311e+02 -3.824995035814819e+02 -3.826632571794644e+02 -3.828270615387958e+02 -3.829909166775790e+02 + -3.831548222382581e+02 -3.833187778788636e+02 -3.834827836954302e+02 -3.836468397830658e+02 -3.838109457951704e+02 + -3.839751013606573e+02 -3.841393064522010e+02 -3.843035610985582e+02 -3.844678652090594e+02 -3.846322186342679e+02 + -3.847966211091070e+02 -3.849610723938522e+02 -3.851255724658270e+02 -3.852901213276589e+02 -3.854547188661456e+02 + -3.856193651039130e+02 -3.857840607227301e+02 -3.859488064858506e+02 -3.861136028233281e+02 -3.862784501283425e+02 + -3.864433489797775e+02 -3.866083000045549e+02 -3.867733038360474e+02 -3.869383610689728e+02 -3.871034721369783e+02 + -3.872686374886131e+02 -3.874338577931016e+02 -3.875991337168530e+02 -3.877644656943423e+02 -3.879298541437876e+02 + -3.880952996503134e+02 -3.882608028487801e+02 -3.884263644060860e+02 -3.885919849359946e+02 -3.887576648076931e+02 + -3.889234044110585e+02 -3.890892044633024e+02 -3.892550656828005e+02 -3.894209884652491e+02 -3.895869732058733e+02 + -3.897530206206903e+02 -3.899191314265681e+02 -3.900853060229904e+02 -3.902515447813749e+02 -3.904178482782592e+02 + -3.905842171832736e+02 -3.907506523333024e+02 -3.909171542011455e+02 -3.910837216360146e+02 -3.912503530200719e+02 + -3.914170464908692e+02 -3.915838000867597e+02 -3.917506116939103e+02 -3.919174791997058e+02 -3.920844006485843e+02 + -3.922513741233318e+02 -3.924183977030698e+02 -3.925854694180132e+02 -3.927525871064144e+02 -3.929197486330507e+02 + -3.930869521607613e+02 -3.932541958513385e+02 -3.934214775643266e+02 -3.935887951493436e+02 -3.937561467185514e+02 + -3.939235303999417e+02 -3.940909441222876e+02 -3.942583857858931e+02 -3.944258533764072e+02 -3.945933449213566e+02 + -3.947608585304349e+02 -3.949283922804248e+02 -3.950959440342958e+02 -3.952635116636291e+02 -3.954310932882606e+02 + -3.955986870327357e+02 -3.957662907921835e+02 -3.959339024467546e+02 -3.961015200461023e+02 -3.962691416638499e+02 + 1.070000000000000e-01 1.069682658750319e-01 1.069365186252596e-01 1.069047582677665e-01 1.068729848196356e-01 + 1.068411982979503e-01 1.068093987197937e-01 1.067775861022493e-01 1.067457604624000e-01 1.067139218173294e-01 + 1.066820701841205e-01 1.066502055798566e-01 1.066183280216209e-01 1.065864375264968e-01 1.065545341115673e-01 + 1.065226177939159e-01 1.064906885906257e-01 1.064587465187799e-01 1.064267915954618e-01 1.063948238377547e-01 + 1.063628432627417e-01 1.063308498875062e-01 1.062988437291314e-01 1.062668248047005e-01 1.062347931312967e-01 + 1.062027487260033e-01 1.061706916059036e-01 1.061386217880807e-01 1.061065392896180e-01 1.060744441275985e-01 + 1.060423363191058e-01 1.060102158812228e-01 1.059780828310330e-01 1.059459371856195e-01 1.059137789620655e-01 + 1.058816081774544e-01 1.058494248488693e-01 1.058172289933936e-01 1.057850206281103e-01 1.057527997701029e-01 + 1.057205664364545e-01 1.056883206442483e-01 1.056560624105677e-01 1.056237917524958e-01 1.055915086871159e-01 + 1.055592132315112e-01 1.055269054027650e-01 1.054945852179606e-01 1.054622526941811e-01 1.054299078485097e-01 + 1.053975506980299e-01 1.053651812598247e-01 1.053327995509774e-01 1.053004055885713e-01 1.052679993896897e-01 + 1.052355809714157e-01 1.052031503508325e-01 1.051707075450236e-01 1.051382525710719e-01 1.051057854460610e-01 + 1.050733061870738e-01 1.050408148111938e-01 1.050083113355042e-01 1.049757957770881e-01 1.049432681530288e-01 + 1.049107284804097e-01 1.048781767763138e-01 1.048456130578245e-01 1.048130373420250e-01 1.047804496459986e-01 + 1.047478499868284e-01 1.047152383815977e-01 1.046826148473898e-01 1.046499794012880e-01 1.046173320603753e-01 + 1.045846728417352e-01 1.045520017624508e-01 1.045193188396054e-01 1.044866240902822e-01 1.044539175315645e-01 + 1.044211991805354e-01 1.043884690542783e-01 1.043557271698764e-01 1.043229735444130e-01 1.042902081949712e-01 + 1.042574311386343e-01 1.042246423924855e-01 1.041918419736082e-01 1.041590298990855e-01 1.041262061860007e-01 + 1.040933708514369e-01 1.040605239124776e-01 1.040276653862059e-01 1.039947952897050e-01 1.039619136400582e-01 + 1.039290204543487e-01 1.038961157496599e-01 1.038631995430748e-01 1.038302718516768e-01 1.037973326925491e-01 + 1.037643820827749e-01 1.037314200394375e-01 1.036984465796201e-01 1.036654617204061e-01 1.036324654788785e-01 + 1.035994578721206e-01 1.035664389172158e-01 1.035334086312472e-01 1.035003670312980e-01 1.034673141344516e-01 + 1.034342499577912e-01 1.034011745183999e-01 1.033680878333612e-01 1.033349899197580e-01 1.033018807946739e-01 + 1.032687604751918e-01 1.032356289783953e-01 1.032024863213673e-01 1.031693325211913e-01 1.031361675949504e-01 + 1.031029915597278e-01 1.030698044326069e-01 1.030366062306709e-01 1.030033969710030e-01 1.029701766706864e-01 + 1.029369453468044e-01 1.029037030164402e-01 1.028704496966771e-01 1.028371854045984e-01 1.028039101572872e-01 + 1.027706239718267e-01 1.027373268653004e-01 1.027040188547913e-01 1.026706999573827e-01 1.026373701901580e-01 + 1.026040295702002e-01 1.025706781145926e-01 1.025373158404186e-01 1.025039427647613e-01 1.024705589047040e-01 + 1.024371642773299e-01 1.024037588997223e-01 1.023703427889643e-01 1.023369159621393e-01 1.023034784363305e-01 + 1.022700302286212e-01 1.022365713560945e-01 1.022031018358337e-01 1.021696216849221e-01 1.021361309204428e-01 + 1.021026295594792e-01 1.020691176191145e-01 1.020355951164319e-01 1.020020620685147e-01 1.019685184924461e-01 + 1.019349644053093e-01 1.019013998241876e-01 1.018678247661643e-01 1.018342392483225e-01 1.018006432877456e-01 + 1.017670369015167e-01 1.017334201067191e-01 1.016997929204361e-01 1.016661553597508e-01 1.016325074417466e-01 + 1.015988491835066e-01 1.015651806021141e-01 1.015315017146524e-01 1.014978125382047e-01 1.014641130898543e-01 + 1.014304033866843e-01 1.013966834457780e-01 1.013629532842187e-01 1.013292129190896e-01 1.012954623674739e-01 + 1.012617016464549e-01 1.012279307731159e-01 1.011941497645400e-01 1.011603586378106e-01 1.011265574100107e-01 + 1.010927460982239e-01 1.010589247195331e-01 1.010250932910217e-01 1.009912518297729e-01 1.009574003528701e-01 + 1.009235388773963e-01 1.008896674204348e-01 1.008557859990690e-01 1.008218946303820e-01 1.007879933314571e-01 + 1.007540821193774e-01 1.007201610112264e-01 1.006862300240872e-01 1.006522891750429e-01 1.006183384811770e-01 + 1.005843779595726e-01 1.005504076273130e-01 1.005164275014813e-01 1.004824375991610e-01 1.004484379374351e-01 + 1.004144285333870e-01 1.003804094040999e-01 1.003463805666569e-01 1.003123420381414e-01 1.002782938356367e-01 + 1.002442359762259e-01 1.002101684769922e-01 1.001760913550190e-01 1.001420046273895e-01 1.001079083111869e-01 + 1.000738024234945e-01 1.000396869813954e-01 1.000055620019730e-01 9.997142750231042e-02 9.993728349949102e-02 + 9.990313001059796e-02 9.986896705271456e-02 9.983479464292398e-02 9.980061279830947e-02 9.976642153595434e-02 + 9.973222087294174e-02 9.969801082635499e-02 9.966379141327726e-02 9.962956265079187e-02 9.959532455598200e-02 + 9.956107714593093e-02 9.952682043772192e-02 9.949255444843813e-02 9.945827919516288e-02 9.942399469497937e-02 + 9.938970096497086e-02 9.935539802222057e-02 9.932108588381178e-02 9.928676456682770e-02 9.925243408835159e-02 + 9.921809446546671e-02 9.918374571525623e-02 9.914938785480347e-02 9.911502090119163e-02 9.908064487150398e-02 + 9.904625978282372e-02 9.901186565223413e-02 9.897746249681845e-02 9.894305033365988e-02 9.890862917984172e-02 + 9.887419905244718e-02 9.883975996855951e-02 9.880531194526194e-02 9.877085499963774e-02 9.873638914877009e-02 + 9.870191440974231e-02 9.866743079963761e-02 9.863293833553920e-02 9.859843703453038e-02 9.856392691369432e-02 + 9.852940799011436e-02 9.849488028087365e-02 9.846034380305550e-02 9.842579857374308e-02 9.839124461001970e-02 + 9.835668192896858e-02 9.832211054767293e-02 9.828753048321603e-02 9.825294175268109e-02 9.821834437315143e-02 + 9.818373836171017e-02 9.814912373544066e-02 9.811450051142606e-02 9.807986870674969e-02 9.804522833849474e-02 + 9.801057942374444e-02 9.797592197958208e-02 9.794125602309085e-02 9.790658157135405e-02 9.787189864145487e-02 + 9.783720725047659e-02 9.780250741550246e-02 9.776779915361565e-02 9.773308248189948e-02 9.769835741743713e-02 + 9.766362397731190e-02 9.762888217860698e-02 9.759413203840565e-02 9.755937357379113e-02 9.752460680184671e-02 + 9.748983173965557e-02 9.745504840430097e-02 9.742025681286617e-02 9.738545698243438e-02 9.735064893008888e-02 + 9.731583267291286e-02 9.728100822798963e-02 9.724617561240236e-02 9.721133484323437e-02 9.717648593756885e-02 + 9.714162891248904e-02 9.710676378507821e-02 9.707189057241956e-02 9.703700929159639e-02 9.700211995969188e-02 + 9.696722259378933e-02 9.693231721097194e-02 9.689740382832296e-02 9.686248246292567e-02 9.682755313186324e-02 + 9.679261585221899e-02 9.675767064107609e-02 9.672271751551782e-02 9.668775649262741e-02 9.665278758948814e-02 + 9.661781082318323e-02 9.658282621079586e-02 9.654783376940938e-02 9.651283351610694e-02 9.647782546797186e-02 + 9.644280964208730e-02 9.640778605553657e-02 9.637275472540287e-02 9.633771566876947e-02 9.630266890271960e-02 + 9.626761444433649e-02 9.623255231070338e-02 9.619748251890356e-02 9.616240508602021e-02 9.612732002913663e-02 + 9.609222736533599e-02 9.605712711170160e-02 9.602201928531666e-02 9.598690390326445e-02 9.595178098262819e-02 + 9.591665054049109e-02 9.588151259393644e-02 9.584636716004745e-02 9.581121425590743e-02 9.577605389859950e-02 + 9.574088610520702e-02 9.570571089281314e-02 9.567052827850117e-02 9.563533827935435e-02 9.560014091245586e-02 + 9.556493619488900e-02 9.552972414373699e-02 9.549450477608308e-02 9.545927810901049e-02 9.542404415960248e-02 + 9.538880294494230e-02 9.535355448211316e-02 9.531829878819836e-02 9.528303588028109e-02 9.524776577544461e-02 + 9.521248849077216e-02 9.517720404334697e-02 9.514191245025229e-02 9.510661372857139e-02 9.507130789538748e-02 + 9.503599496778380e-02 9.500067496284360e-02 9.496534789765015e-02 9.493001378928664e-02 9.489467265483635e-02 + 9.485932451138250e-02 9.482396937600834e-02 9.478860726579713e-02 9.475323819783207e-02 9.471786218919645e-02 + 9.468247925697347e-02 9.464708941824643e-02 9.461169269009850e-02 9.457628908961296e-02 9.454087863387305e-02 + 9.450546133996199e-02 9.447003722496307e-02 9.443460630595948e-02 9.439916860003450e-02 9.436372412427137e-02 + 9.432827289575330e-02 9.429281493156354e-02 9.425735024878537e-02 9.422187886450198e-02 9.418640079579664e-02 + 9.415091605975259e-02 9.411542467345307e-02 9.407992665398136e-02 9.404442201842063e-02 9.400891078385415e-02 + 9.397339296736518e-02 9.393786858603695e-02 9.390233765695270e-02 9.386680019719568e-02 9.383125622384911e-02 + 9.379570575399625e-02 9.376014880472036e-02 9.372458539310466e-02 9.368901553623238e-02 9.365343925118678e-02 + 9.361785655505112e-02 9.358226746490858e-02 9.354667199784246e-02 9.351107017093598e-02 9.347546200127239e-02 + 9.343984750593494e-02 9.340422670200685e-02 9.336859960657137e-02 9.333296623671174e-02 9.329732660951121e-02 + 9.326168074205300e-02 9.322602865142039e-02 9.319037035469660e-02 9.315470586896488e-02 9.311903521130845e-02 + 9.308335839881057e-02 9.304767544855448e-02 9.301198637762342e-02 9.297629120310064e-02 9.294058994206936e-02 + 9.290488261161287e-02 9.286916922881436e-02 9.283344981075708e-02 9.279772437452428e-02 9.276199293719922e-02 + 9.272625551586512e-02 9.269051212760523e-02 9.265476278950278e-02 9.261900751864104e-02 9.258324633210324e-02 + 9.254747924697261e-02 9.251170628033240e-02 9.247592744926583e-02 9.244014277085617e-02 9.240435226218666e-02 + 9.236855594034055e-02 9.233275382240104e-02 9.229694592545142e-02 9.226113226657491e-02 9.222531286285476e-02 + 9.218948773137420e-02 9.215365688921646e-02 9.211782035346482e-02 9.208197814120249e-02 9.204613026951274e-02 + 9.201027675547878e-02 9.197441761618388e-02 9.193855286871126e-02 9.190268253014419e-02 9.186680661756588e-02 + 9.183092514805957e-02 9.179503813870854e-02 9.175914560659600e-02 9.172324756880521e-02 9.168734404241941e-02 + 9.165143504452181e-02 9.161552059219569e-02 9.157960070252427e-02 9.154367539259080e-02 9.150774467947854e-02 + 9.147180858027071e-02 9.143586711205055e-02 9.139992029190132e-02 9.136396813690625e-02 9.132801066414858e-02 + 9.129204789071155e-02 9.125607983367841e-02 9.122010651013239e-02 9.118412793715676e-02 9.114814413183472e-02 + 9.111215511124955e-02 9.107616089248448e-02 9.104016149262276e-02 9.100415692874760e-02 9.096814721794225e-02 + 9.093213237728998e-02 9.089611242387401e-02 9.086008737477760e-02 9.082405724708396e-02 9.078802205787638e-02 + 9.075198182423806e-02 9.071593656325225e-02 9.067988629200220e-02 9.064383102757116e-02 9.060777078704237e-02 + 9.057170558749904e-02 9.053563544602444e-02 9.049956037970180e-02 9.046348040561442e-02 9.042739554084545e-02 + 9.039130580247817e-02 9.035521120759583e-02 9.031911177328168e-02 9.028300751661894e-02 9.024689845469086e-02 + 9.021078460458068e-02 9.017466598337168e-02 9.013854260814702e-02 9.010241449599002e-02 9.006628166398388e-02 + 9.003014412921184e-02 8.999400190875718e-02 8.995785501970310e-02 8.992170347913286e-02 8.988554730412972e-02 + 8.984938651177689e-02 8.981322111915761e-02 8.977705114335516e-02 8.974087660145275e-02 8.970469751053363e-02 + 8.966851388768103e-02 8.963232574997822e-02 8.959613311450842e-02 8.955993599835491e-02 8.952373441860086e-02 + 8.948752839232957e-02 8.945131793662427e-02 8.941510306856817e-02 8.937888380524456e-02 8.934266016373665e-02 + 8.930643216112769e-02 8.927019981450095e-02 8.923396314093963e-02 8.919772215752698e-02 8.916147688134625e-02 + 8.912522732948071e-02 8.908897351901354e-02 8.905271546702803e-02 8.901645319060740e-02 8.898018670683491e-02 + 8.894391603279379e-02 8.890764118556729e-02 8.887136218223864e-02 8.883507903989107e-02 8.879879177560786e-02 + 8.876250040647221e-02 8.872620494956741e-02 8.868990542197666e-02 8.865360184078323e-02 8.861729422307035e-02 + 8.858098258592126e-02 8.854466694641919e-02 8.850834732164740e-02 8.847202372868912e-02 8.843569618462761e-02 + 8.839936470654611e-02 8.836302931152785e-02 8.832669001665606e-02 8.829034683901400e-02 8.825399979568492e-02 + 8.821764890375206e-02 8.818129418029862e-02 8.814493564240788e-02 8.810857330716310e-02 8.807220719164749e-02 + 8.803583731294432e-02 8.799946368813677e-02 8.796308633430815e-02 8.792670526854167e-02 8.789032050792057e-02 + 8.785393206952812e-02 8.781753997044753e-02 8.778114422776205e-02 8.774474485855495e-02 8.770834187990943e-02 + 8.767193530890875e-02 8.763552516263615e-02 8.759911145817488e-02 8.756269421260816e-02 8.752627344301928e-02 + 8.748984916649143e-02 8.745342140010788e-02 8.741699016095185e-02 8.738055546610660e-02 8.734411733265539e-02 + 8.730767577768141e-02 8.727123081826793e-02 8.723478247149821e-02 8.719833075445547e-02 8.716187568422298e-02 + 8.712541727788393e-02 8.708895555252159e-02 8.705249052521923e-02 8.701602221306004e-02 8.697955063312730e-02 + 8.694307580250422e-02 8.690659773827408e-02 8.687011645752010e-02 8.683363197732555e-02 8.679714431477362e-02 + 8.676065348694757e-02 8.672415951093065e-02 8.668766240380611e-02 8.665116218265721e-02 8.661465886456714e-02 + 8.657815246661917e-02 8.654164300589655e-02 8.650513049948251e-02 8.646861496446030e-02 8.643209641791315e-02 + 8.639557487692430e-02 8.635905035857701e-02 8.632252287995451e-02 8.628599245814005e-02 8.624945911021686e-02 + 8.621292285326819e-02 8.617638370437727e-02 8.613984168062737e-02 8.610329679910171e-02 8.606674907688353e-02 + 8.603019853105608e-02 8.599364517870259e-02 8.595708903690633e-02 8.592053012275053e-02 8.588396845331842e-02 + 8.584740404569323e-02 8.581083691695822e-02 8.577426708419665e-02 8.573769456449173e-02 8.570111937492672e-02 + 8.566454153258486e-02 8.562796105454940e-02 8.559137795790356e-02 8.555479225973059e-02 8.551820397711374e-02 + 8.548161312713624e-02 8.544501972688134e-02 8.540842379343229e-02 8.537182534387232e-02 8.533522439528468e-02 + 8.529862096475260e-02 8.526201506935933e-02 8.522540672618811e-02 8.518879595232219e-02 8.515218276484479e-02 + 8.511556718083918e-02 8.507894921738858e-02 8.504232889157626e-02 8.500570622048544e-02 8.496908122119934e-02 + 8.493245391080124e-02 8.489582430637438e-02 8.485919242500198e-02 8.482255828376728e-02 8.478592189975355e-02 + 8.474928329004400e-02 8.471264247172190e-02 8.467599946187047e-02 8.463935427757298e-02 8.460270693591267e-02 + 8.456605745397273e-02 8.452940584883646e-02 8.449275213758706e-02 8.445609633730780e-02 8.441943846508193e-02 + 8.438277853799266e-02 8.434611657312326e-02 8.430945258755695e-02 8.427278659837699e-02 8.423611862266661e-02 + 8.419944867750905e-02 8.416277677998756e-02 8.412610294718537e-02 8.408942719618576e-02 8.405274954407191e-02 + 8.401607000792713e-02 8.397938860483460e-02 8.394270535187759e-02 8.390602026613936e-02 8.386933336470312e-02 + 8.383264466465212e-02 8.379595418306962e-02 8.375926193703884e-02 8.372256794364304e-02 8.368587221996546e-02 + 8.364917478308932e-02 8.361247565009787e-02 8.357577483807437e-02 8.353907236410206e-02 8.350236824526415e-02 + 8.346566249864391e-02 8.342895514132459e-02 8.339224619038943e-02 8.335553566292164e-02 8.331882357600448e-02 + 8.328210994672121e-02 8.324539479215504e-02 8.320867812938924e-02 8.317195997550704e-02 8.313524034759166e-02 + 8.309851926272641e-02 8.306179673799445e-02 8.302507279047908e-02 8.298834743726349e-02 8.295162069543097e-02 + 8.291489258206473e-02 8.287816311424805e-02 8.284143230906414e-02 8.280470018359624e-02 8.276796675492762e-02 + 8.273123204014149e-02 8.269449605632111e-02 8.265775882054972e-02 8.262102034991055e-02 8.258428066148686e-02 + 8.254753977236187e-02 8.251079769961885e-02 8.247405446034105e-02 8.243731007161166e-02 8.240056455051395e-02 + 8.236381791413117e-02 8.232707017954656e-02 8.229032136384334e-02 8.225357148410478e-02 8.221682055741411e-02 + 8.218006860085458e-02 8.214331563150944e-02 8.210656166646188e-02 8.206980672279519e-02 8.203305081759260e-02 + 8.199629396793737e-02 8.195953619091272e-02 8.192277750360188e-02 8.188601792308813e-02 8.184925746645468e-02 + 8.181249615078479e-02 8.177573399316168e-02 8.173897101066861e-02 8.170220722038883e-02 8.166544263940556e-02 + 8.162867728480205e-02 8.159191117366156e-02 8.155514432306732e-02 8.151837675010254e-02 8.148160847185050e-02 + 8.144483950539445e-02 8.140806986781760e-02 8.137129957620320e-02 8.133452864763450e-02 8.129775709919475e-02 + 8.126098494796720e-02 8.122421221103504e-02 8.118743890548155e-02 8.115066504838998e-02 8.111389065684355e-02 + 8.107711574792552e-02 8.104034033871912e-02 8.100356444630759e-02 8.096678808777417e-02 8.093001128020215e-02 + 8.089323404067471e-02 8.085645638627510e-02 8.081967833408658e-02 8.078289990119239e-02 8.074612110467576e-02 + 8.070934196161997e-02 8.067256248910820e-02 8.063578270422375e-02 8.059900262404983e-02 8.056222226566968e-02 + 8.052544164616657e-02 8.048866078262369e-02 8.045187969212433e-02 8.041509839175172e-02 8.037831689858911e-02 + 8.034153522971973e-02 8.030475340222681e-02 8.026797143319361e-02 8.023118933970336e-02 8.019440713883932e-02 + 8.015762484768471e-02 8.012084248332278e-02 8.008406006283678e-02 8.004727760330994e-02 8.001049512182555e-02 + 7.997371263546676e-02 7.993693016131688e-02 7.990014771645915e-02 7.986336531797676e-02 7.982658298295300e-02 + 7.978980072847111e-02 7.975301857161432e-02 7.971623652946590e-02 7.967945461910902e-02 7.964267285762699e-02 + 7.960589126210302e-02 7.956910984962039e-02 7.953232863726228e-02 7.949554764211197e-02 7.945876688125271e-02 + 7.942198637176773e-02 7.938520613074028e-02 7.934842617525358e-02 7.931164652239087e-02 7.927486718923542e-02 + 7.923808819287045e-02 7.920130955037924e-02 7.916453127884499e-02 7.912775339535094e-02 7.909097591698037e-02 + 7.905419886081648e-02 7.901742224394255e-02 7.898064608344180e-02 7.894387039639746e-02 7.890709519989279e-02 + 7.887032051101103e-02 7.883354634683543e-02 7.879677272444922e-02 7.875999966093565e-02 7.872322717337794e-02 + 7.868645527885937e-02 7.864968399446313e-02 7.861291333727252e-02 7.857614332437074e-02 7.853937397284104e-02 + 7.850260529976670e-02 7.846583732223091e-02 7.842907005731693e-02 7.839230352210801e-02 7.835553773368738e-02 + 7.831877270913830e-02 7.828200846554398e-02 7.824524501998768e-02 7.820848238955266e-02 7.817172059132216e-02 + 7.813495964237939e-02 7.809819955980761e-02 7.806144036069006e-02 7.802468206210998e-02 7.798792468115062e-02 + 7.795116823489523e-02 7.791441274042703e-02 7.787765821482928e-02 7.784090467518520e-02 7.780415213857807e-02 + 7.776740062209107e-02 7.773065014280750e-02 7.769390071781057e-02 7.765715236418354e-02 7.762040509900967e-02 + 7.758365893937215e-02 7.754691390235426e-02 7.751017000503922e-02 7.747342726451029e-02 7.743668569785070e-02 + 7.739994532214370e-02 7.736320615447252e-02 7.732646821192042e-02 7.728973151157063e-02 7.725299607050642e-02 + 7.721626190581099e-02 7.717952903456758e-02 7.714279747385946e-02 7.710606724076986e-02 7.706933835238206e-02 + 7.703261082577922e-02 7.699588467804465e-02 7.695915992626157e-02 7.692243658751323e-02 7.688571467888285e-02 + 7.684899421745368e-02 7.681227522030898e-02 7.677555770453198e-02 7.673884168720593e-02 7.670212718541405e-02 + 7.666541421623961e-02 7.662870279676583e-02 7.659199294407595e-02 7.655528467525324e-02 7.651857800738091e-02 + 7.648187295754222e-02 7.644516954282041e-02 7.640846778029871e-02 7.637176768706039e-02 7.633506928018867e-02 + 7.629837257676678e-02 7.626167759387799e-02 7.622498434860552e-02 7.618829285803264e-02 7.615160313924255e-02 + 7.611491520931853e-02 7.607822908534380e-02 7.604154478440163e-02 7.600486232357523e-02 7.596818171994783e-02 + 7.593150299060271e-02 7.589482615262309e-02 7.585815122309225e-02 7.582147821909338e-02 7.578480715770973e-02 + 7.574813805602458e-02 7.571147093112113e-02 7.567480580008265e-02 7.563814267999236e-02 7.560148158793352e-02 + 7.556482254098935e-02 7.552816555624312e-02 7.549151065077807e-02 7.545485784167741e-02 7.541820714602442e-02 + 7.538155858090231e-02 7.534491216339434e-02 7.530826791058375e-02 7.527162583955378e-02 7.523498596738766e-02 + 7.519834831116866e-02 7.516171288797999e-02 7.512507971490495e-02 7.508844880902671e-02 7.505182018742854e-02 + 7.501519386719367e-02 7.497856986540538e-02 7.494194819914687e-02 7.490532888550142e-02 7.486871194155223e-02 + 7.483209738438257e-02 7.479548523107570e-02 7.475887549871482e-02 7.472226820438319e-02 7.468566336516404e-02 + 7.464906099814063e-02 7.461246112039621e-02 7.457586374901400e-02 7.453926890107723e-02 7.450267659366919e-02 + 7.446608684387307e-02 7.442949966877216e-02 7.439291508544965e-02 7.435633311098883e-02 7.431975376247291e-02 + 7.428317705698513e-02 7.424660301160878e-02 7.421003164342704e-02 7.417346296952319e-02 7.413689700698045e-02 + 7.410033377288210e-02 7.406377328431132e-02 7.402721555835140e-02 7.399066061208556e-02 7.395410846259706e-02 + 7.391755912696915e-02 7.388101262228504e-02 7.384446896562798e-02 7.380792817408122e-02 7.377139026472800e-02 + 7.373485525465158e-02 7.369832316093516e-02 7.366179400066203e-02 7.362526779091538e-02 7.358874454877849e-02 + 7.355222429133459e-02 7.351570703566694e-02 7.347919279885876e-02 7.344268159799329e-02 7.340617345015378e-02 + 7.336966837242348e-02 7.333316638188561e-02 7.329666749562345e-02 7.326017173072021e-02 7.322367910425913e-02 + 7.318718963332346e-02 7.315070333499644e-02 7.311422022636133e-02 7.307774032450136e-02 7.304126364649975e-02 + 7.300479020943977e-02 7.296832003040465e-02 7.293185312647765e-02 7.289538951474199e-02 7.285892921228092e-02 + 7.282247223617767e-02 7.278601860351550e-02 7.274956833137766e-02 7.271312143684736e-02 7.267667793700786e-02 + 7.264023784894239e-02 7.260380118973422e-02 7.256736797646657e-02 7.253093822622268e-02 7.249451195608582e-02 + 7.245808918313920e-02 7.242166992446607e-02 7.238525419714967e-02 7.234884201827325e-02 7.231243340492007e-02 + 7.227602837417331e-02 7.223962694311627e-02 7.220322912883217e-02 7.216683494840427e-02 7.213044441891579e-02 + 7.209405755744998e-02 7.205767438109009e-02 7.202129490691934e-02 7.198491915202099e-02 7.194854713347830e-02 + 7.191217886837446e-02 7.187581437379276e-02 7.183945366681642e-02 7.180309676452867e-02 7.176674368401278e-02 + 7.173039444235199e-02 7.169404905662952e-02 7.165770754392863e-02 7.162136992133256e-02 7.158503620592453e-02 + 7.154870641478780e-02 7.151238056500563e-02 7.147605867366123e-02 7.143974075783785e-02 7.140342683461876e-02 + 7.136711692108716e-02 7.133081103432631e-02 7.129450919141947e-02 7.125821140944985e-02 7.122191770550071e-02 + 7.118562809665530e-02 7.114934259999683e-02 7.111306123260858e-02 7.107678401157377e-02 7.104051095397565e-02 + 7.100424207689746e-02 7.096797739742244e-02 7.093171693263382e-02 7.089546069961486e-02 7.085920871544882e-02 + 7.082296099721888e-02 7.078671756200834e-02 7.075047842690044e-02 7.071424360897838e-02 7.067801312532543e-02 + 7.064178699302483e-02 7.060556522915983e-02 7.056934785081363e-02 7.053313487506954e-02 7.049692631901075e-02 + 7.046072219972052e-02 7.042452253428211e-02 7.038832733977872e-02 7.035213663329361e-02 7.031595043191004e-02 + 7.027976875271123e-02 7.024359161278042e-02 7.020741902920087e-02 7.017125101905583e-02 7.013508759942851e-02 + 7.009892878740216e-02 7.006277460006004e-02 7.002662505448538e-02 6.999048016776144e-02 6.995433995697144e-02 + 6.991820443919861e-02 6.988207363152622e-02 6.984594755103750e-02 6.980982621481568e-02 6.977370963994402e-02 + 6.973759784350578e-02 6.970149084258416e-02 6.966538865426242e-02 6.962929129562380e-02 6.959319878375156e-02 + 6.955711113572893e-02 6.952102836863913e-02 6.948495049956542e-02 6.944887754559105e-02 6.941280952379927e-02 + 6.937674645127329e-02 6.934068834509637e-02 6.930463522235174e-02 6.926858710012268e-02 6.923254399549238e-02 + 6.919650592554411e-02 6.916047290736112e-02 6.912444495802665e-02 6.908842209462392e-02 6.905240433423616e-02 + 6.901639169394666e-02 6.898038419083864e-02 6.894438184199533e-02 6.890838466449999e-02 6.887239267543585e-02 + 6.883640589188617e-02 6.880042433093415e-02 6.876444800966307e-02 6.872847694515619e-02 6.869251115449670e-02 + 6.865655065476786e-02 6.862059546305292e-02 6.858464559643512e-02 6.854870107199770e-02 6.851276190682393e-02 + 6.847682811799699e-02 6.844089972260017e-02 6.840497673771671e-02 6.836905918042983e-02 6.833314706782279e-02 + 6.829724041697882e-02 6.826133924498116e-02 6.822544356891308e-02 6.818955340585779e-02 6.815366877289854e-02 + 6.811778968711857e-02 6.808191616560114e-02 6.804604822542948e-02 6.801018588368681e-02 6.797432915745642e-02 + 6.793847806382150e-02 6.790263261986533e-02 6.786679284267115e-02 6.783095874932217e-02 6.779513035690166e-02 + 6.775930768249286e-02 6.772349074317900e-02 6.768767955604332e-02 6.765187413816909e-02 6.761607450663952e-02 + 6.758028067853786e-02 6.754449267094738e-02 6.750871050095128e-02 6.747293418563281e-02 6.743716374207524e-02 + 6.740139918736179e-02 6.736564053857570e-02 6.732988781280023e-02 6.729414102711860e-02 6.725840019861405e-02 + 6.722266534436987e-02 6.718693648146923e-02 6.715121362699542e-02 6.711549679803168e-02 6.707978601166123e-02 + 6.704408128496732e-02 6.700838263503321e-02 6.697269007894212e-02 6.693700363377729e-02 6.690132331662198e-02 + 6.686564914455943e-02 6.682998113467287e-02 6.679431930404556e-02 6.675866366976070e-02 6.672301424890158e-02 + 6.668737105855144e-02 6.665173411579348e-02 6.661610343771096e-02 6.658047904138716e-02 6.654486094390526e-02 + 6.650924916234854e-02 6.647364371380024e-02 6.643804461534360e-02 6.640245188406185e-02 6.636686553703826e-02 + 6.633128559135604e-02 6.629571206409844e-02 6.626014497234871e-02 6.622458433319009e-02 6.618903016370581e-02 + 6.615348248097914e-02 6.611794130209329e-02 6.608240664413152e-02 6.604687852417708e-02 6.601135695931318e-02 + 6.597584196662311e-02 6.594033356319007e-02 6.590483176609731e-02 6.586933659242808e-02 6.583384805926563e-02 + 6.579836618369318e-02 6.576289098279399e-02 6.572742247365128e-02 6.569196067334833e-02 6.565650559896835e-02 + 6.562105726759460e-02 6.558561569631030e-02 6.555018090219872e-02 6.551475290234308e-02 6.547933171382664e-02 + 6.544391735373260e-02 6.540850983914427e-02 6.537310918714484e-02 6.533771541481756e-02 6.530232853924568e-02 + 6.526694857751246e-02 6.523157554670111e-02 6.519620946389489e-02 6.516085034617702e-02 6.512549821063078e-02 + 6.509015307433939e-02 6.505481495438609e-02 6.501948386785412e-02 6.498415983182672e-02 6.494884286338716e-02 + 6.491353297961865e-02 6.487823019760443e-02 6.484293453442776e-02 6.480764600717190e-02 6.477236463292005e-02 + 6.473709042875546e-02 6.470182341176141e-02 6.466656359902111e-02 6.463131100761778e-02 6.459606565463470e-02 + 6.456082755715510e-02 6.452559673226224e-02 6.449037319703932e-02 6.445515696856961e-02 6.441994806393636e-02 + 6.438474650022280e-02 6.434955229451217e-02 6.431436546388770e-02 6.427918602543267e-02 6.424401399623028e-02 + 6.420884939336380e-02 6.417369223391646e-02 6.413854253497149e-02 6.410340031361215e-02 6.406826558692170e-02 + 6.403313837198334e-02 6.399801868588033e-02 6.396290654569593e-02 6.392780196851335e-02 6.389270497141585e-02 + 6.385761557148667e-02 6.382253378580906e-02 6.378745963146625e-02 6.375239312554147e-02 6.371733428511799e-02 + 6.368228312727903e-02 6.364723966910786e-02 6.361220392768768e-02 6.357717592010177e-02 6.354215566343337e-02 + 6.350714317476568e-02 6.347213847118198e-02 6.343714156976551e-02 6.340215248759951e-02 6.336717124176720e-02 + 6.333219784935186e-02 6.329723232743668e-02 6.326227469310496e-02 6.322732496343991e-02 6.319238315552476e-02 + 6.315744928644278e-02 6.312252337327721e-02 6.308760543311126e-02 6.305269548302821e-02 6.301779354011129e-02 + 6.298289962144372e-02 6.294801374410877e-02 6.291313592518968e-02 6.287826618176968e-02 6.284340453093201e-02 + 6.280855098975993e-02 6.277370557533665e-02 6.273886830474544e-02 6.270403919506955e-02 6.266921826339220e-02 + 6.263440552679662e-02 6.259960100236607e-02 6.256480470718381e-02 6.253001665833306e-02 6.249523687289707e-02 + 6.246046536795907e-02 6.242570216060229e-02 6.239094726791002e-02 6.235620070696547e-02 6.232146249485187e-02 + 6.228673264865250e-02 6.225201118545055e-02 6.221729812232930e-02 6.218259347637199e-02 6.214789726466187e-02 + 6.211320950428215e-02 6.207853021231610e-02 6.204385940584693e-02 6.200919710195792e-02 6.197454331773228e-02 + 6.193989807025328e-02 6.190526137660414e-02 6.187063325386812e-02 6.183601371912845e-02 6.180140278946837e-02 + 6.176680048197113e-02 6.173220681371997e-02 6.169762180179813e-02 6.166304546328885e-02 6.162847781527538e-02 + 6.159391887484095e-02 6.155936865906880e-02 6.152482718504219e-02 6.149029446984435e-02 6.145577053055853e-02 + 6.142125538426796e-02 6.138674904805590e-02 6.135225153900557e-02 6.131776287420022e-02 6.128328307072310e-02 + 6.124881214565744e-02 6.121435011608650e-02 6.117989699909349e-02 6.114545281176169e-02 6.111101757117431e-02 + 6.107659129441460e-02 6.104217399856583e-02 6.100776570071121e-02 6.097336641793399e-02 6.093897616731742e-02 + 6.090459496594473e-02 6.087022283089916e-02 6.083585977926396e-02 6.080150582812238e-02 6.076716099455765e-02 + 6.073282529565302e-02 6.069849874849172e-02 6.066418137015700e-02 6.062987317773211e-02 6.059557418830027e-02 + 6.056128441894475e-02 6.052700388674876e-02 6.049273260879557e-02 6.045847060216841e-02 6.042421788395052e-02 + 6.038997447122514e-02 6.035574038107552e-02 6.032151563058490e-02 6.028730023683652e-02 6.025309421691362e-02 + 6.021889758789946e-02 6.018471036687725e-02 6.015053257093025e-02 6.011636421714171e-02 6.008220532259485e-02 + 6.004805590437293e-02 6.001391597955918e-02 5.997978556523686e-02 5.994566467848918e-02 5.991155333639943e-02 + 5.987745155605081e-02 5.984335935452657e-02 5.980927674890997e-02 5.977520375628423e-02 5.974114039373261e-02 + 5.970708667833834e-02 5.967304262718466e-02 5.963900825735483e-02 5.960498358593206e-02 5.957096862999962e-02 + 5.953696340664075e-02 5.950296793293869e-02 5.946898222597666e-02 5.943500630283793e-02 5.940104018060574e-02 + 5.936708387636331e-02 5.933313740719390e-02 5.929920079018074e-02 5.926527404240709e-02 5.923135718095618e-02 + 5.919745022291125e-02 5.916355318535554e-02 5.912966608537230e-02 5.909578894004478e-02 5.906192176645620e-02 + 5.902806458168981e-02 5.899421740282887e-02 5.896038024695659e-02 5.892655313115624e-02 5.889273607251104e-02 + 5.885892908810425e-02 5.882513219501910e-02 5.879134541033884e-02 5.875756875114671e-02 5.872380223452595e-02 + 5.869004587755981e-02 5.865629969733151e-02 5.862256371092430e-02 5.858883793542144e-02 5.855512238790617e-02 + 5.852141708546170e-02 5.848772204517131e-02 5.845403728411822e-02 5.842036281938568e-02 5.838669866805692e-02 + 5.835304484721521e-02 5.831940137394376e-02 5.828576826532585e-02 5.825214553844467e-02 5.821853321038349e-02 + 5.818493129822556e-02 5.815133981905412e-02 5.811775878995240e-02 5.808418822800365e-02 5.805062815029110e-02 + 5.801707857389801e-02 5.798353951590760e-02 5.795001099340315e-02 5.791649302346786e-02 5.788298562318499e-02 + 5.784948880963779e-02 5.781600259990949e-02 5.778252701108333e-02 5.774906206024256e-02 5.771560776447041e-02 + 5.768216414085015e-02 5.764873120646499e-02 5.761530897839819e-02 5.758189747373298e-02 5.754849670955262e-02 + 5.751510670294033e-02 5.748172747097936e-02 5.744835903075296e-02 5.741500139934437e-02 5.738165459383683e-02 + 5.734831863131357e-02 5.731499352885785e-02 5.728167930355290e-02 5.724837597248197e-02 5.721508355272830e-02 + 5.718180206137512e-02 5.714853151550570e-02 5.711527193220325e-02 5.708202332855103e-02 5.704878572163228e-02 + 5.701555912853024e-02 5.698234356632816e-02 5.694913905210926e-02 5.691594560295680e-02 5.688276323595402e-02 + 5.684959196818416e-02 5.681643181673045e-02 5.678328279867616e-02 5.675014493110452e-02 5.671701823109875e-02 + 5.668390271574211e-02 5.665079840211785e-02 5.661770530730920e-02 5.658462344839940e-02 5.655155284247171e-02 + 5.651849350660935e-02 5.648544545789557e-02 5.645240871341362e-02 5.641938329024674e-02 5.638636920547815e-02 + 5.635336647619112e-02 5.632037511946889e-02 5.628739515239468e-02 5.625442659205174e-02 5.622146945552333e-02 + 5.618852375989267e-02 5.615558952224302e-02 5.612266675965761e-02 5.608975548921968e-02 5.605685572801247e-02 + 5.602396749311925e-02 5.599109080162322e-02 5.595822567060765e-02 5.592537211715578e-02 5.589253015835084e-02 + 5.585969981127608e-02 5.582688109301474e-02 5.579407402065006e-02 5.576127861126528e-02 5.572849488194366e-02 + 5.569572284976842e-02 5.566296253182280e-02 5.563021394519008e-02 5.559747710695345e-02 5.556475203419618e-02 + 5.553203874400151e-02 5.549933725345269e-02 5.546664757963294e-02 5.543396973962551e-02 5.540130375051366e-02 + 5.536864962938060e-02 5.533600739330961e-02 5.530337705938389e-02 5.527075864468672e-02 5.523815216630132e-02 + 5.520555764131094e-02 5.517297508679882e-02 5.514040451984819e-02 5.510784595754230e-02 5.507529941696442e-02 + 5.504276491519774e-02 5.501024246932555e-02 5.497773209643106e-02 5.494523381359754e-02 5.491274763790820e-02 + 5.488027358644629e-02 5.484781167629507e-02 5.481536192453777e-02 5.478292434825763e-02 5.475049896453790e-02 + 5.471808579046181e-02 5.468568484311261e-02 5.465329613957354e-02 5.462091969692785e-02 5.458855553225877e-02 + 5.455620366264955e-02 5.452386410518342e-02 5.449153687694363e-02 5.445922199501343e-02 5.442691947647604e-02 + 5.439462933841474e-02 5.436235159791274e-02 5.433008627205328e-02 5.429783337791962e-02 5.426559293259499e-02 + 5.423336495316264e-02 5.420114945670580e-02 5.416894646030773e-02 5.413675598105167e-02 5.410457803602083e-02 + 5.407241264229849e-02 5.404025981696787e-02 5.400811957711223e-02 5.397599193981480e-02 5.394387692215881e-02 + 5.391177454122753e-02 5.387968481410418e-02 5.384760775787202e-02 5.381554338961427e-02 5.378349172641418e-02 + 5.375145278535501e-02 5.371942658351998e-02 5.368741313799234e-02 5.365541246585533e-02 5.362342458419220e-02 + 5.359144951008617e-02 5.355948726062051e-02 5.352753785287844e-02 5.349560130394321e-02 5.346367763089808e-02 + 5.343176685082626e-02 5.339986898081100e-02 5.336798403793557e-02 5.333611203928318e-02 5.330425300193709e-02 + 5.327240694298052e-02 5.324057387949673e-02 5.320875382856897e-02 5.317694680728046e-02 5.314515283271445e-02 + 5.311337192195419e-02 5.308160409208292e-02 5.304984936018387e-02 5.301810774334029e-02 5.298637925860694e-02 + 5.295466392210174e-02 5.292296174881576e-02 5.289127275367324e-02 5.285959695159842e-02 5.282793435751552e-02 + 5.279628498634878e-02 5.276464885302243e-02 5.273302597246069e-02 5.270141635958780e-02 5.266982002932800e-02 + 5.263823699660550e-02 5.260666727634453e-02 5.257511088346935e-02 5.254356783290417e-02 5.251203813957321e-02 + 5.248052181840073e-02 5.244901888431094e-02 5.241752935222807e-02 5.238605323707637e-02 5.235459055378005e-02 + 5.232314131726334e-02 5.229170554245050e-02 5.226028324426572e-02 5.222887443763326e-02 5.219747913747734e-02 + 5.216609735872220e-02 5.213472911629205e-02 5.210337442511115e-02 5.207203330010370e-02 5.204070575619395e-02 + 5.200939180830615e-02 5.197809147136448e-02 5.194680476029321e-02 5.191553169001656e-02 5.188427227545876e-02 + 5.185302653154403e-02 5.182179447319664e-02 5.179057611534077e-02 5.175937147290068e-02 5.172818056080060e-02 + 5.169700339396475e-02 5.166583998731737e-02 5.163469035578269e-02 5.160355451428494e-02 5.157243247774834e-02 + 5.154132426109714e-02 5.151022987925555e-02 5.147914934714782e-02 5.144808267969817e-02 5.141702989183084e-02 + 5.138599099847005e-02 5.135496601454004e-02 5.132395495496503e-02 5.129295783466926e-02 5.126197466857695e-02 + 5.123100547161235e-02 5.120005025869967e-02 5.116910904476317e-02 5.113818184472704e-02 5.110726867351554e-02 + 5.107636954605289e-02 5.104548447726333e-02 5.101461348207109e-02 5.098375657540039e-02 5.095291377217546e-02 + 5.092208508732055e-02 5.089127053575987e-02 5.086047013241765e-02 5.082968389221815e-02 5.079891183008556e-02 + 5.076815396094415e-02 5.073741029971812e-02 5.070668086133172e-02 5.067596566070917e-02 5.064526471277472e-02 + 5.061457803245257e-02 5.058390563466697e-02 5.055324753434216e-02 5.052260374640234e-02 5.049197428577178e-02 + 5.046135916737467e-02 5.043075840613528e-02 5.040017201697781e-02 5.036960001482652e-02 5.033904241460560e-02 + 5.030849923123931e-02 5.027797047965189e-02 5.024745617476754e-02 5.021695633151052e-02 5.018647096480505e-02 + 5.015600008957535e-02 5.012554372074565e-02 5.009510187324022e-02 5.006467456198324e-02 5.003426180189897e-02 + 5.000386360791163e-02 4.997347999494546e-02 4.994311097792468e-02 4.991275657177353e-02 4.988241679141623e-02 + 4.985209165177702e-02 4.982178116778014e-02 4.979148535434980e-02 4.976120422641023e-02 4.973093779888569e-02 + 4.970068608670038e-02 4.967044910477855e-02 4.964022686804442e-02 4.961001939142222e-02 4.957982668983620e-02 + 4.954964877821057e-02 4.951948567146956e-02 4.948933738453741e-02 4.945920393233836e-02 4.942908532979662e-02 + 4.939898159183643e-02 4.936889273338203e-02 4.933881876935763e-02 4.930875971468749e-02 4.927871558429582e-02 + 4.924868639310685e-02 4.921867215604481e-02 4.918867288803395e-02 4.915868860399848e-02 4.912871931886263e-02 + 4.909876504755066e-02 4.906882580498677e-02 4.903890160609520e-02 4.900899246580018e-02 4.897909839902595e-02 + 4.894921942069672e-02 4.891935554573676e-02 4.888950678907025e-02 4.885967316562146e-02 4.882985469031461e-02 + 4.880005137807392e-02 4.877026324382362e-02 4.874049030248797e-02 4.871073256899117e-02 4.868099005825745e-02 + 4.865126278521108e-02 4.862155076477624e-02 4.859185401187720e-02 4.856217254143816e-02 4.853250636838338e-02 + 4.850285550763707e-02 4.847321997412347e-02 4.844359978276680e-02 4.841399494849130e-02 4.838440548622121e-02 + 4.835483141088075e-02 4.832527273739414e-02 4.829572948068564e-02 4.826620165567946e-02 4.823668927729983e-02 + 4.820719236047098e-02 4.817771092011715e-02 4.814824497116257e-02 4.811879452853147e-02 4.808935960714807e-02 + 4.805994022193662e-02 4.803053638782134e-02 4.800114811972645e-02 4.797177543257621e-02 4.794241834129482e-02 + 4.791307686080653e-02 4.788375100603556e-02 4.785444079190614e-02 4.782514623334252e-02 4.779586734526891e-02 + 4.776660414260955e-02 4.773735664028868e-02 4.770812485323050e-02 4.767890879635927e-02 4.764970848459921e-02 + 4.762052393287456e-02 4.759135515610954e-02 4.756220216922838e-02 4.753306498715533e-02 4.750394362481459e-02 + 4.747483809713041e-02 4.744574841902701e-02 4.741667460542864e-02 4.738761667125952e-02 4.735857463144388e-02 + 4.732954850090595e-02 4.730053829456995e-02 4.727154402736015e-02 4.724256571420073e-02 4.721360337001596e-02 + 4.718465700973005e-02 4.715572664826723e-02 4.712681230055175e-02 4.709791398150782e-02 4.706903170605968e-02 + 4.704016548913156e-02 4.701131534564769e-02 4.698248129053231e-02 4.695366333870963e-02 4.692486150510391e-02 + 4.689607580463934e-02 4.686730625224018e-02 4.683855286283068e-02 4.680981565133503e-02 4.678109463267748e-02 + 4.675238982178226e-02 4.672370123357359e-02 4.669502888297572e-02 4.666637278491287e-02 4.663773295430927e-02 + 4.660910940608916e-02 4.658050215517676e-02 4.655191121649629e-02 4.652333660497202e-02 4.649477833552815e-02 + 4.646623642308891e-02 4.643771088257853e-02 4.640920172892127e-02 4.638070897704132e-02 4.635223264186294e-02 + 4.632377273831036e-02 4.629532928130779e-02 4.626690228577947e-02 4.623849176664965e-02 4.621009773884253e-02 + 4.618172021728237e-02 4.615335921689338e-02 4.612501475259979e-02 4.609668683932586e-02 4.606837549199577e-02 + 4.604008072553380e-02 4.601180255486416e-02 4.598354099491107e-02 4.595529606059879e-02 4.592706776685152e-02 + 4.589885612859351e-02 4.587066116074899e-02 4.584248287824218e-02 4.581432129599732e-02 4.578617642893863e-02 + 4.575804829199037e-02 4.572993690007673e-02 4.570184226812196e-02 4.567376441105030e-02 4.564570334378597e-02 + 4.561765908125320e-02 4.558963163837623e-02 4.556162103007928e-02 4.553362727128659e-02 4.550565037692238e-02 + 4.547769036191089e-02 4.544974724117636e-02 4.542182102964300e-02 4.539391174223504e-02 4.536601939387674e-02 + 4.533814399949231e-02 4.531028557400597e-02 4.528244413234197e-02 4.525461968942453e-02 4.522681226017790e-02 + 4.519902185952628e-02 4.517124850239393e-02 4.514349220370505e-02 4.511575297838390e-02 4.508803084135470e-02 + 4.506032580754168e-02 4.503263789186907e-02 4.500496710926111e-02 4.497731347464200e-02 4.494967700293602e-02 + 4.492205770906736e-02 4.489445560796028e-02 4.486687071453899e-02 4.483930304372771e-02 4.481175261045071e-02 + 4.478421942963219e-02 4.475670351619640e-02 4.472920488506756e-02 4.470172355116988e-02 4.467425952942764e-02 + 4.464681283476502e-02 4.461938348210628e-02 4.459197148637566e-02 4.456457686249737e-02 4.453719962539564e-02 + 4.450983978999472e-02 4.448249737121881e-02 4.445517238399217e-02 4.442786484323902e-02 4.440057476388359e-02 + 4.437330216085012e-02 4.434604704906282e-02 4.431880944344595e-02 4.429158935892372e-02 4.426438681042035e-02 + 4.423720181286010e-02 4.421003438116718e-02 4.418288453026584e-02 4.415575227508029e-02 4.412863763053477e-02 + 4.410154061155352e-02 4.407446123306075e-02 4.404739950998071e-02 4.402035545723762e-02 4.399332908975571e-02 + 4.396632042245923e-02 4.393932947027238e-02 4.391235624811941e-02 4.388540077092456e-02 4.385846305361203e-02 + 4.383154311110608e-02 4.380464095833093e-02 4.377775661021081e-02 4.375089008166996e-02 4.372404138763258e-02 + 4.369721054302294e-02 4.367039756276526e-02 4.364360246178376e-02 4.361682525500267e-02 4.359006595734623e-02 + 4.356332458373868e-02 4.353660114910423e-02 4.350989566836711e-02 4.348320815645158e-02 4.345653862828184e-02 + 4.342988709878214e-02 4.340325358287669e-02 4.337663809548974e-02 4.335004065154552e-02 4.332346126596825e-02 + 4.329689995368217e-02 4.327035672961151e-02 4.324383160868049e-02 4.321732460581335e-02 4.319083573593433e-02 + 4.316436501396765e-02 4.313791245483754e-02 4.311147807346823e-02 4.308506188478395e-02 4.305866390370894e-02 + 4.303228414516742e-02 4.300592262408363e-02 4.297957935538180e-02 4.295325435398616e-02 4.292694763482094e-02 + 4.290065921281035e-02 4.287438910287866e-02 4.284813731995007e-02 4.282190387894883e-02 4.279568879479917e-02 + 4.276949208242530e-02 4.274331375675147e-02 4.271715383270192e-02 4.269101232520085e-02 4.266488924917250e-02 + 4.263878461954113e-02 4.261269845123093e-02 4.258663075916616e-02 4.256058155827103e-02 4.253455086346980e-02 + 4.250853868968667e-02 4.248254505184589e-02 4.245656996487169e-02 4.243061344368828e-02 4.240467550321991e-02 + 4.237875615839081e-02 4.235285542412521e-02 4.232697331534734e-02 4.230110984698143e-02 4.227526503395169e-02 + 4.224943889118240e-02 4.222363143359775e-02 4.219784267612198e-02 4.217207263367933e-02 4.214632132119402e-02 + 4.212058875359029e-02 4.209487494579236e-02 4.206917991272448e-02 4.204350366931086e-02 4.201784623047573e-02 + 4.199220761114335e-02 4.196658782623791e-02 4.194098689068368e-02 4.191540481940486e-02 4.188984162732570e-02 + 4.186429732937041e-02 4.183877194046326e-02 4.181326547552844e-02 4.178777794949019e-02 4.176230937727277e-02 + 4.173685977380037e-02 4.171142915399725e-02 4.168601753278764e-02 4.166062492509574e-02 4.163525134584580e-02 + 4.160989680996207e-02 4.158456133236876e-02 4.155924492799010e-02 4.153394761175032e-02 4.150866939857367e-02 + 4.148341030338436e-02 4.145817034110662e-02 4.143294952666470e-02 4.140774787498282e-02 4.138256540098521e-02 + 4.135740211959609e-02 4.133225804573972e-02 4.130713319434030e-02 4.128202758032209e-02 4.125694121860929e-02 + 4.123187412412615e-02 4.120682631179690e-02 4.118179779654577e-02 4.115678859329698e-02 4.113179871697477e-02 + 4.110682818250337e-02 4.108187700480702e-02 4.105694519880994e-02 4.103203277943635e-02 4.100713976161051e-02 + 4.098226616025662e-02 4.095741199029894e-02 4.093257726666168e-02 4.090776200426908e-02 4.088296621804536e-02 + 4.085818992291476e-02 4.083343313380151e-02 4.080869586562985e-02 4.078397813332400e-02 4.075927995180818e-02 + 4.073460133600665e-02 4.070994230084361e-02 4.068530286124331e-02 4.066068303212998e-02 4.063608282842784e-02 + 4.061150226506113e-02 4.058694135695408e-02 4.056240011903092e-02 4.053787856621588e-02 4.051337671343318e-02 + 4.048889457560707e-02 4.046443216766178e-02 4.043998950452153e-02 4.041556660111054e-02 4.039116347235307e-02 + 4.036678013317334e-02 4.034241659849556e-02 4.031807288324400e-02 4.029374900234285e-02 4.026944497071637e-02 + 4.024516080328877e-02 4.022089651498431e-02 4.019665212072718e-02 4.017242763544165e-02 4.014822307405193e-02 + 4.012403845148225e-02 4.009987378265685e-02 4.007572908249996e-02 4.005160436593580e-02 4.002749964788860e-02 + 4.000341494328261e-02 3.997935026862905e-02 3.995530565020248e-02 3.993128111798760e-02 3.990727670197625e-02 + 3.988329243216027e-02 3.985932833853151e-02 3.983538445108181e-02 3.981146079980302e-02 3.978755741468697e-02 + 3.976367432572553e-02 3.973981156291052e-02 3.971596915623379e-02 3.969214713568721e-02 3.966834553126258e-02 + 3.964456437295178e-02 3.962080369074663e-02 3.959706351463900e-02 3.957334387462071e-02 3.954964480068362e-02 + 3.952596632281957e-02 3.950230847102040e-02 3.947867127527795e-02 3.945505476558409e-02 3.943145897193063e-02 + 3.940788392430945e-02 3.938432965271236e-02 3.936079618713123e-02 3.933728355755788e-02 3.931379179398419e-02 + 3.929032092640197e-02 3.926687098480308e-02 3.924344199917935e-02 3.922003399952266e-02 3.919664701582481e-02 + 3.917328107807769e-02 3.914993621627309e-02 3.912661246040292e-02 3.910330984045896e-02 3.908002838643308e-02 + 3.905676812831715e-02 3.903352909610298e-02 3.901031131978242e-02 3.898711482934733e-02 3.896393965478955e-02 + 3.894078582610091e-02 3.891765337327326e-02 3.889454232629846e-02 3.887145271516833e-02 3.884838456987474e-02 + 3.882533792040951e-02 3.880231279676451e-02 3.877930922893155e-02 3.875632724690252e-02 3.873336688066923e-02 + 3.871042816022353e-02 3.868751111555727e-02 3.866461577666229e-02 3.864174217353044e-02 3.861889033615356e-02 + 3.859606029452349e-02 3.857325207863209e-02 3.855046571847119e-02 3.852770124403264e-02 3.850495868530828e-02 + 3.848223807228996e-02 3.845953943496952e-02 3.843686280333881e-02 3.841420820738967e-02 3.839157567711395e-02 + 3.836896524250349e-02 3.834637693355013e-02 3.832381078024572e-02 3.830126681258209e-02 3.827874506055112e-02 + 3.825624555414461e-02 3.823376832335444e-02 3.821131339817244e-02 3.818888080859045e-02 3.816647058460032e-02 + 3.814408275619389e-02 3.812171735336303e-02 3.809937440609954e-02 3.807705394439530e-02 3.805475599824214e-02 + 3.803248059763190e-02 3.801022777255643e-02 3.798799755300758e-02 3.796578996897719e-02 3.794360505045710e-02 + 3.792144282743916e-02 3.789930332991522e-02 3.787718658787710e-02 3.785509263131667e-02 3.783302149022577e-02 + 3.781097319459624e-02 3.778894777441992e-02 3.776694525968866e-02 3.774496568039430e-02 3.772300906652870e-02 + 3.770107544808367e-02 3.767916485505110e-02 3.765727731742280e-02 3.763541286519063e-02 3.761357152834642e-02 + 3.759175333688204e-02 3.756995832078931e-02 3.754818651006007e-02 3.752643793468620e-02 3.750471262465951e-02 + 3.748301060997186e-02 3.746133192061509e-02 3.743967658658105e-02 3.741804463786157e-02 3.739643610444850e-02 + 3.737485101633371e-02 3.735328940350900e-02 3.733175129596625e-02 3.731023672369729e-02 3.728874571669397e-02 + 3.726727830494812e-02 3.724583451845160e-02 3.722441438719625e-02 3.720301794117391e-02 3.718164521037644e-02 + 3.716029622479566e-02 3.713897101442343e-02 3.711766960925159e-02 3.709639203927199e-02 3.707513833447647e-02 + 3.705390852485687e-02 3.703270264040504e-02 3.701152071111283e-02 3.699036276697207e-02 3.696922883797462e-02 + 3.694811895411231e-02 3.692703314537699e-02 3.690597144176051e-02 3.688493387325471e-02 3.686392046985143e-02 + 3.684293126154253e-02 3.682196627831984e-02 3.680102555017520e-02 3.678010910710046e-02 3.675921697908748e-02 + 3.673834919612807e-02 3.671750578821411e-02 3.669668678533742e-02 3.667589221748987e-02 3.665512211466327e-02 + 3.663437650684950e-02 3.661365542404037e-02 3.659295889622776e-02 3.657228695340348e-02 3.655163962555941e-02 + 3.653101694268735e-02 3.651041893477919e-02 3.648984563182674e-02 3.646929706382188e-02 3.644877326075641e-02 + 3.642827425262220e-02 3.640780006941109e-02 3.638735074111494e-02 3.636692629772557e-02 3.634652676923484e-02 + 3.632615218563458e-02 3.630580257691665e-02 3.628547797307289e-02 3.626517840409513e-02 3.624490389997524e-02 + 3.622465449070505e-02 3.620443020627639e-02 3.618423107668113e-02 3.616405713191111e-02 3.614390840195816e-02 + 3.612378491681414e-02 3.610368670647089e-02 3.608361380092025e-02 3.606356623015406e-02 3.604354402416417e-02 + 3.602354721294244e-02 3.600357582648069e-02 3.598362989477077e-02 3.596370944780453e-02 3.594381451557382e-02 + 3.592394512807047e-02 3.590410131528634e-02 3.588428310721326e-02 3.586449053384308e-02 3.584472362516764e-02 + 3.582498241117880e-02 3.580526692186839e-02 3.578557718722826e-02 3.576591323725024e-02 3.574627510192620e-02 + 3.572666281124797e-02 3.570707639520740e-02 3.568751588379632e-02 3.566798130700659e-02 3.564847269483005e-02 + 3.562899007725854e-02 3.560953348428391e-02 3.559010294589800e-02 3.557069849209266e-02 3.555132015285974e-02 + 3.553196795819106e-02 3.551264193807849e-02 3.549334212251386e-02 3.547406854148901e-02 3.545482122499580e-02 + 3.543560020302607e-02 3.541640550557167e-02 3.539723716262443e-02 3.537809520417620e-02 3.535897966021882e-02 + 3.533989056074414e-02 3.532082793574401e-02 3.530179181521027e-02 3.528278222913475e-02 3.526379920750932e-02 + 3.524484278032580e-02 3.522591297757607e-02 3.520700982925193e-02 3.518813336534525e-02 3.516928361584787e-02 + 3.515046061075164e-02 3.513166438004838e-02 3.511289495372998e-02 3.509415236178823e-02 3.507543663421501e-02 + 3.505674780100216e-02 3.503808589214152e-02 3.501945093762493e-02 3.500084296744425e-02 3.498226201159130e-02 + 3.496370810005795e-02 3.494518126283602e-02 3.492668152991737e-02 3.490820893129385e-02 3.488976349695729e-02 + 3.487134525689954e-02 3.485295424111245e-02 3.483459047958785e-02 3.481625400231760e-02 3.479794483929353e-02 + 3.477966302050750e-02 3.476140857595134e-02 3.474318153561690e-02 3.472498192949603e-02 3.470680978758058e-02 + 3.468866513986237e-02 3.467054801633326e-02 3.465245844698509e-02 3.463439646180971e-02 3.461636209079897e-02 + 3.459835536394470e-02 3.458037631123875e-02 3.456242496267296e-02 3.454450134823919e-02 3.452660549792927e-02 + 3.450873744173504e-02 3.449089720964835e-02 3.447308483166107e-02 3.445530033776500e-02 3.443754375795202e-02 + 3.441981512221395e-02 3.440211446054266e-02 3.438444180292995e-02 3.436679717936773e-02 3.434918061984778e-02 + 3.433159215436199e-02 3.431403181290218e-02 3.429649962546020e-02 3.427899562202789e-02 3.426151983259711e-02 + 3.424407228715969e-02 3.422665301570748e-02 3.420926204823232e-02 3.419189941472606e-02 3.417456514518054e-02 + 3.415725926958761e-02 3.413998181793911e-02 3.412273282022688e-02 3.410551230644278e-02 3.408832030657864e-02 + 3.407115685062630e-02 3.405402196857762e-02 3.403691569042444e-02 3.401983804615860e-02 3.400278906577194e-02 + 3.398576877925633e-02 3.396877721660357e-02 3.395181440780554e-02 3.393488038285408e-02 3.391797517174103e-02 + 3.390109880445821e-02 3.388425131099751e-02 3.386743272135074e-02 3.385064306550976e-02 3.383388237346641e-02 + 3.381715067521254e-02 3.380044800073998e-02 3.378377438004059e-02 3.376712984310620e-02 3.375051441992868e-02 + 3.373392814049984e-02 3.371737103481155e-02 3.370084313285564e-02 3.368434446462396e-02 3.366787506010836e-02 + 3.365143466564878e-02 3.363501887624541e-02 3.361862209777612e-02 3.360224500875989e-02 3.358588827878357e-02 + 3.356955147090725e-02 3.355323458431880e-02 3.353693766165054e-02 3.352066065506343e-02 3.350440352193865e-02 + 3.348816624199871e-02 3.347194881659273e-02 3.345575121630599e-02 3.343957340404732e-02 3.342341535303144e-02 + 3.340727704441876e-02 3.339115845430404e-02 3.337505954322636e-02 3.335898029706669e-02 3.334292070921326e-02 + 3.332688074834195e-02 3.331086037969291e-02 3.329485957414917e-02 3.327887831864652e-02 3.326291658484171e-02 + 3.324697433542376e-02 3.323105156623186e-02 3.321514826023114e-02 3.319926437839098e-02 3.318339989412266e-02 + 3.316755478754796e-02 3.315172903929034e-02 3.313592261295018e-02 3.312013548124740e-02 3.310436764153749e-02 + 3.308861906981869e-02 3.307288973180764e-02 3.305717959801665e-02 3.304148865245999e-02 3.302581687574703e-02 + 3.301016422142487e-02 3.299453067800234e-02 3.297891624809741e-02 3.296332088425066e-02 3.294774455685354e-02 + 3.293218725810471e-02 3.291664896225673e-02 3.290112963401578e-02 3.288562923879117e-02 3.287014777263271e-02 + 3.285468522369568e-02 3.283924155670871e-02 3.282381674440858e-02 3.280841076589561e-02 3.279302360243119e-02 + 3.277765521941309e-02 3.276230558706894e-02 3.274697470113698e-02 3.273166254219040e-02 3.271636907936865e-02 + 3.270109428250347e-02 3.268583813280482e-02 3.267060061307020e-02 3.265538168459424e-02 3.264018132671115e-02 + 3.262499953449712e-02 3.260983628233858e-02 3.259469153939318e-02 3.257956527754512e-02 3.256445748091834e-02 + 3.254936812698490e-02 3.253429718174427e-02 3.251924463148387e-02 3.250421046229880e-02 3.248919464552218e-02 + 3.247419715298105e-02 3.245921796288541e-02 3.244425706251369e-02 3.242931441545717e-02 3.241438998652282e-02 + 3.239948378141620e-02 3.238459577882156e-02 3.236972593925531e-02 3.235487424670715e-02 3.234004068301546e-02 + 3.232522522137563e-02 3.231042782696456e-02 3.229564848261764e-02 3.228088718700101e-02 3.226614390644563e-02 + 3.225141860917057e-02 3.223671128042128e-02 3.222202190260593e-02 3.220735044835789e-02 3.219269687989033e-02 + 3.217806118663362e-02 3.216344336205739e-02 3.214884337811092e-02 3.213426120193776e-02 3.211969680852602e-02 + 3.210515019435922e-02 3.209062132655478e-02 3.207611016186721e-02 3.206161670288540e-02 3.204714093648681e-02 + 3.203268282961075e-02 3.201824236239234e-02 3.200381951210604e-02 3.198941424912934e-02 3.197502654604618e-02 + 3.196065638811887e-02 3.194630377248257e-02 3.193196866763873e-02 3.191765104079724e-02 3.190335087680102e-02 + 3.188906815766901e-02 3.187480285784819e-02 3.186055494296534e-02 3.184632440204734e-02 3.183211122836238e-02 + 3.181791538780577e-02 3.180373685568510e-02 3.178957561657719e-02 3.177543165075891e-02 3.176130492904844e-02 + 3.174719542079285e-02 3.173310312097031e-02 3.171902801589959e-02 3.170497007535993e-02 3.169092927256592e-02 + 3.167690558660036e-02 3.166289900092451e-02 3.164890948767075e-02 3.163493702375719e-02 3.162098160094597e-02 + 3.160704320149037e-02 3.159312179836957e-02 3.157921735868882e-02 3.156532987076624e-02 3.155145932224658e-02 + 3.153760566663864e-02 3.152376889172848e-02 3.150994900180672e-02 3.149614595827410e-02 3.148235973399625e-02 + 3.146859031868535e-02 3.145483769408502e-02 3.144110182886523e-02 3.142738268687409e-02 3.141368026942635e-02 + 3.139999456778463e-02 3.138632554513814e-02 3.137267318073906e-02 3.135903745883740e-02 3.134541835839263e-02 + 3.133181584694165e-02 3.131822989974722e-02 3.130466051752389e-02 3.129110768114365e-02 3.127757136018487e-02 + 3.126405153214003e-02 3.125054818119363e-02 3.123706128835145e-02 3.122359081277034e-02 3.121013674152311e-02 + 3.119669908223311e-02 3.118327780512727e-02 3.116987287740892e-02 3.115648427590923e-02 3.114311198755302e-02 + 3.112975599208620e-02 3.111641625878769e-02 3.110309278026453e-02 3.108978554429882e-02 3.107649451605467e-02 + 3.106321967573116e-02 3.104996101093369e-02 3.103671850522385e-02 3.102349212552239e-02 3.101028184118182e-02 + 3.099708765215899e-02 3.098390954305432e-02 3.097074748653887e-02 3.095760146577434e-02 3.094447145973171e-02 + 3.093135744175442e-02 3.091825938652267e-02 3.090517727892404e-02 3.089211111199125e-02 3.087906086415095e-02 + 3.086602651045607e-02 3.085300802884278e-02 3.084000540267990e-02 3.082701861024971e-02 3.081404762072755e-02 + 3.080109242772720e-02 3.078815302348911e-02 3.077522937271052e-02 3.076232145526043e-02 3.074942925853004e-02 + 3.073655275969265e-02 3.072369193358731e-02 3.071084675893487e-02 3.069801722815575e-02 3.068520332655950e-02 + 3.067240502926292e-02 3.065962230727411e-02 3.064685514336771e-02 3.063410352936318e-02 3.062136743092317e-02 + 3.060864682743443e-02 3.059594172387181e-02 3.058325209340110e-02 3.057057790484611e-02 3.055791914232513e-02 + 3.054527578866520e-02 3.053264782274670e-02 3.052003521936738e-02 3.050743796632342e-02 3.049485605420712e-02 + 3.048228945948342e-02 3.046973815764381e-02 3.045720212753895e-02 3.044468135532321e-02 3.043217582076147e-02 + 3.041968549967531e-02 3.040721038082923e-02 3.039475044749309e-02 3.038230567464306e-02 3.036987604544383e-02 + 3.035746154526919e-02 3.034506215632694e-02 3.033267784558463e-02 3.032030859116679e-02 3.030795439680851e-02 + 3.029561524020229e-02 3.028329109283977e-02 3.027098194217670e-02 3.025868776986960e-02 3.024640855125834e-02 + 3.023414425922958e-02 3.022189488753165e-02 3.020966043396606e-02 3.019744085927903e-02 3.018523614254973e-02 + 3.017304628070488e-02 3.016087124712451e-02 3.014871101490015e-02 3.013656556629268e-02 3.012443489643160e-02 + 3.011231899192166e-02 3.010021782348693e-02 3.008813136953290e-02 3.007605961443153e-02 3.006400254477032e-02 + 3.005196013216448e-02 3.003993235442936e-02 3.002791921520012e-02 3.001592069144608e-02 3.000393675083135e-02 + 2.999196738372897e-02 2.998001257673401e-02 2.996807230790781e-02 2.995614654679549e-02 2.994423528130847e-02 + 2.993233851118915e-02 2.992045620999083e-02 2.990858835120550e-02 2.989673491731453e-02 2.988489589805536e-02 + 2.987307127537464e-02 2.986126102011340e-02 2.984946511909828e-02 2.983768356331996e-02 2.982591633787642e-02 + 2.981416341477938e-02 2.980242477098497e-02 2.979070040412034e-02 2.977899028736241e-02 2.976729439085326e-02 + 2.975561271768286e-02 2.974394525020974e-02 2.973229195799546e-02 2.972065283153817e-02 2.970902785474345e-02 + 2.969741700233630e-02 2.968582025251779e-02 2.967423759388233e-02 2.966266902120933e-02 2.965111450751603e-02 + 2.963957402972690e-02 2.962804757853395e-02 2.961653513685447e-02 2.960503668212408e-02 2.959355219023237e-02 + 2.958208165129883e-02 2.957062505724755e-02 2.955918238857859e-02 2.954775362079399e-02 2.953633873283637e-02 + 2.952493771681483e-02 2.951355054848872e-02 2.950217720053436e-02 2.949081767862442e-02 2.947947196700992e-02 + 2.946814003034778e-02 2.945682185755054e-02 2.944551743582863e-02 2.943422674341014e-02 2.942294975870480e-02 + 2.941168646812421e-02 2.940043686618776e-02 2.938920093147064e-02 2.937797864134186e-02 2.936676998172867e-02 + 2.935557493479196e-02 2.934439347979633e-02 2.933322559583284e-02 2.932207127373048e-02 2.931093050463312e-02 + 2.929980326285230e-02 2.928868953142686e-02 2.927758929945683e-02 2.926650254799867e-02 2.925542925398767e-02 + 2.924436939550082e-02 2.923332296415483e-02 2.922228995044700e-02 2.921127033783603e-02 2.920026410004271e-02 + 2.918927122033416e-02 2.917829169471517e-02 2.916732549176795e-02 2.915637258777840e-02 2.914543298801943e-02 + 2.913450667577263e-02 2.912359362430894e-02 2.911269381274288e-02 2.910180723305731e-02 2.909093387402745e-02 + 2.908007369930849e-02 2.906922669822638e-02 2.905839287303405e-02 2.904757219714476e-02 2.903676465199738e-02 + 2.902597022808873e-02 2.901518890157972e-02 2.900442065055892e-02 2.899366546087253e-02 2.898292332562971e-02 + 2.897219423070421e-02 2.896147815085827e-02 2.895077507160809e-02 2.894008498122344e-02 2.892940786384609e-02 + 2.891874369517828e-02 2.890809245634708e-02 2.889745414621765e-02 2.888682874769054e-02 2.887621623583590e-02 + 2.886561659425123e-02 2.885502981116054e-02 2.884445587294774e-02 2.883389475319686e-02 2.882334643970105e-02 + 2.881281093000496e-02 2.880228819979298e-02 2.879177822929067e-02 2.878128100842524e-02 2.877079651898801e-02 + 2.876032473884395e-02 2.874986564740009e-02 2.873941924390505e-02 2.872898552052601e-02 2.871856444638324e-02 + 2.870815600507148e-02 2.869776018641480e-02 2.868737697516582e-02 2.867700634591397e-02 2.866664827916806e-02 + 2.865630278319325e-02 2.864596983917359e-02 2.863564941328856e-02 2.862534149829953e-02 2.861504608429113e-02 + 2.860476315234840e-02 2.859449267740666e-02 2.858423464566411e-02 2.857398905422620e-02 2.856375588402207e-02 + 2.855353511594846e-02 2.854332673804624e-02 2.853313073796621e-02 2.852294709429606e-02 2.851277577543872e-02 + 2.850261678440491e-02 2.849247012219593e-02 2.848233575178603e-02 2.847221365657614e-02 2.846210383116990e-02 + 2.845200625935100e-02 2.844192091752946e-02 2.843184778466237e-02 2.842178686053369e-02 2.841173813547823e-02 + 2.840170158739025e-02 2.839167719418843e-02 2.838166494245600e-02 2.837166482484053e-02 2.836167681707307e-02 + 2.835170090137019e-02 2.834173707461769e-02 2.833178532393912e-02 2.832184563033358e-02 2.831191797277370e-02 + 2.830200233825938e-02 2.829209871310940e-02 2.828220707523810e-02 2.827232741579271e-02 2.826245972853687e-02 + 2.825260399229306e-02 2.824276019064247e-02 2.823292831178126e-02 2.822310834132040e-02 2.821330025651807e-02 + 2.820350403438503e-02 2.819371967866794e-02 2.818394718049788e-02 2.817418651237375e-02 2.816443766090156e-02 + 2.815470061416237e-02 2.814497535504664e-02 2.813526186206681e-02 2.812556012131105e-02 2.811587013236315e-02 + 2.810619188120791e-02 2.809652534562629e-02 2.808687050311100e-02 2.807722734684383e-02 2.806759586949595e-02 + 2.805797603975531e-02 2.804836784541272e-02 2.803877128655403e-02 2.802918634812817e-02 2.801961300908425e-02 + 2.801005124931340e-02 2.800050106254358e-02 2.799096243185147e-02 2.798143533065562e-02 2.797191976200169e-02 + 2.796241571829330e-02 2.795292316767612e-02 2.794344209750147e-02 2.793397250080147e-02 2.792451436474921e-02 + 2.791506766429417e-02 2.790563238187514e-02 2.789620852426368e-02 2.788679607109519e-02 2.787739499448651e-02 + 2.786800529276515e-02 2.785862695250820e-02 2.784925995023579e-02 2.783990426851568e-02 2.783055990112446e-02 + 2.782122684523413e-02 2.781190507602721e-02 2.780259457625915e-02 2.779329533996523e-02 2.778400734510273e-02 + 2.777473057425486e-02 2.776546502209671e-02 2.775621067523501e-02 2.774696751775778e-02 2.773773553529171e-02 + 2.772851471226555e-02 2.771930503638066e-02 2.771010650156085e-02 2.770091908311444e-02 2.769174275675288e-02 + 2.768257752750487e-02 2.767342338343482e-02 2.766428030170250e-02 2.765514827509389e-02 2.764602728937508e-02 + 2.763691732224667e-02 2.762781835629091e-02 2.761873038318760e-02 2.760965340016332e-02 2.760058738918467e-02 + 2.759153233095657e-02 2.758248821223181e-02 2.757345502668101e-02 2.756443275844788e-02 2.755542137569210e-02 + 2.754642087861812e-02 2.753743126859248e-02 2.752845251726651e-02 2.751948461051369e-02 2.751052754088128e-02 + 2.750158129051000e-02 2.749264584112846e-02 2.748372117908398e-02 2.747480730190011e-02 2.746590419839729e-02 + 2.745701184777745e-02 2.744813023052759e-02 2.743925933666562e-02 2.743039916197098e-02 2.742154968107790e-02 + 2.741271087850060e-02 2.740388275814067e-02 2.739506530469222e-02 2.738625849608251e-02 2.737746231424592e-02 + 2.736867675514432e-02 2.735990180809817e-02 2.735113743878892e-02 2.734238364845174e-02 2.733364044336462e-02 + 2.732490778587926e-02 2.731618566204183e-02 2.730747407386686e-02 2.729877300249025e-02 2.729008242908668e-02 + 2.728140234030172e-02 2.727273272900814e-02 2.726407358354408e-02 2.725542488697956e-02 2.724678662927163e-02 + 2.723815879907967e-02 2.722954137935252e-02 2.722093434732608e-02 2.721233769152850e-02 2.720375141931018e-02 + 2.719517551218435e-02 2.718660994644712e-02 2.717805471481514e-02 2.716950980584153e-02 2.716097520393317e-02 + 2.715245089289530e-02 2.714393686286031e-02 2.713543310581999e-02 2.712693960497614e-02 2.711845634782483e-02 + 2.710998332519429e-02 2.710152051958041e-02 2.709306791441093e-02 2.708462549834906e-02 2.707619326918369e-02 + 2.706777121480425e-02 2.705935930907671e-02 2.705095754483260e-02 2.704256591454058e-02 2.703418439795306e-02 + 2.702581298145425e-02 2.701745165546447e-02 2.700910041075726e-02 2.700075923746808e-02 2.699242812272907e-02 + 2.698410704764140e-02 2.697579599978723e-02 2.696749496984126e-02 2.695920394125775e-02 2.695092290187428e-02 + 2.694265184396634e-02 2.693439075649869e-02 2.692613962541774e-02 2.691789843589869e-02 2.690966718080280e-02 + 2.690144584430361e-02 2.689323440003169e-02 2.688503284907665e-02 2.687684119009101e-02 2.686865940030225e-02 + 2.686048746353486e-02 2.685232536881714e-02 2.684417310662326e-02 2.683603066151065e-02 2.682789801897943e-02 + 2.681977517552054e-02 2.681166212021913e-02 2.680355883616239e-02 2.679546530889016e-02 2.678738152752996e-02 + 2.677930748200765e-02 2.677124315479004e-02 2.676318853591112e-02 2.675514362231527e-02 2.674710839396962e-02 + 2.673908283555094e-02 2.673106694339361e-02 2.672306070150655e-02 2.671506409151823e-02 2.670707710108217e-02 + 2.669909972943648e-02 2.669113197027321e-02 2.668317379682501e-02 2.667522519875436e-02 2.666728617090520e-02 + 2.665935669311371e-02 2.665143675159882e-02 2.664352634032146e-02 2.663562545659268e-02 2.662773408361464e-02 + 2.661985219717407e-02 2.661197979572226e-02 2.660411687169956e-02 2.659626340488144e-02 2.658841937631547e-02 + 2.658058477937751e-02 2.657275961893512e-02 2.656494387358596e-02 2.655713752275513e-02 2.654934056348008e-02 + 2.654155298332925e-02 2.653377476657220e-02 2.652600590198415e-02 2.651824638075199e-02 2.651049619255404e-02 + 2.650275532091429e-02 2.649502375487615e-02 2.648730148802552e-02 2.647958851263073e-02 2.647188480891689e-02 + 2.646419035368700e-02 2.645650515131691e-02 2.644882919484906e-02 2.644116246069965e-02 2.643350494181170e-02 + 2.642585663084689e-02 2.641821751242615e-02 2.641058756892747e-02 2.640296679007395e-02 2.639535517653221e-02 + 2.638775271175803e-02 2.638015937698240e-02 2.637257516664822e-02 2.636500007332271e-02 2.635743408373907e-02 + 2.634987717633525e-02 2.634232934391862e-02 2.633479058525924e-02 2.632726088227431e-02 2.631974022390311e-02 + 2.631222860499385e-02 2.630472600717760e-02 2.629723241433261e-02 2.628974781674581e-02 2.628227220621198e-02 + 2.627480557677242e-02 2.626734792215179e-02 2.625989921852152e-02 2.625245945041883e-02 2.624502862403611e-02 + 2.623760671958282e-02 2.623019371536040e-02 2.622278961237779e-02 2.621539440295659e-02 2.620800807254220e-02 + 2.620063060674004e-02 2.619326199404739e-02 2.618590222410475e-02 2.617855128386046e-02 2.617120916522779e-02 + 2.616387586230346e-02 2.615655135861502e-02 2.614923564213544e-02 2.614192870720641e-02 2.613463054125929e-02 + 2.612734112755428e-02 2.612006044964381e-02 2.611278850871195e-02 2.610552530050819e-02 2.609827080222275e-02 + 2.609102500359168e-02 2.608378789925431e-02 2.607655947900249e-02 2.606933972466179e-02 2.606212861946312e-02 + 2.605492616097670e-02 2.604773234503024e-02 2.604054716124884e-02 2.603337058950191e-02 2.602620261873257e-02 + 2.601904324395194e-02 2.601189244598317e-02 2.600475021758196e-02 2.599761656283118e-02 2.599049145836681e-02 + 2.598337488632347e-02 2.597626684662969e-02 2.596916733159564e-02 2.596207632537513e-02 2.595499380688753e-02 + 2.594791977426907e-02 2.594085422650568e-02 2.593379714560815e-02 2.592674851872178e-02 2.591970833661526e-02 + 2.591267658830654e-02 2.590565326173340e-02 2.589863834578747e-02 2.589163183398775e-02 2.588463371701131e-02 + 2.587764398252935e-02 2.587066261956569e-02 2.586368961749470e-02 2.585672496539723e-02 2.584976865103265e-02 + 2.584282066471713e-02 2.583588100000093e-02 2.582894964599770e-02 2.582202659070586e-02 2.581511182332461e-02 + 2.580820533343631e-02 2.580130710958863e-02 2.579441713875388e-02 2.578753541579036e-02 2.578066193633965e-02 + 2.577379668579866e-02 2.576693964640701e-02 2.576009080523955e-02 2.575325016689414e-02 2.574641771694009e-02 + 2.573959342940173e-02 2.573277731100565e-02 2.572596935753856e-02 2.571916954588383e-02 2.571237786264848e-02 + 2.570559430241213e-02 2.569881886299849e-02 2.569205152414907e-02 2.568529227185872e-02 2.567854111122693e-02 + 2.567179802594942e-02 2.566506299732867e-02 2.565833602386073e-02 2.565161709921462e-02 2.564490620914589e-02 + 2.563820333139000e-02 2.563150846268354e-02 2.562482160754986e-02 2.561814274902439e-02 2.561147187258114e-02 + 2.560480896924013e-02 2.559815402833877e-02 2.559150703774291e-02 2.558486798572520e-02 2.557823686789989e-02 + 2.557161367849433e-02 2.556499840587265e-02 2.555839103232124e-02 2.555179154834854e-02 2.554519995829834e-02 + 2.553861624178350e-02 2.553204037844031e-02 2.552547237202886e-02 2.551891221538829e-02 2.551235989397021e-02 + 2.550581539575596e-02 2.549927871458803e-02 2.549274984258965e-02 2.548622875540724e-02 2.547971544999134e-02 + 2.547320993631275e-02 2.546671219025347e-02 2.546022219347805e-02 2.545373994243675e-02 2.544726542971977e-02 + 2.544079864501286e-02 2.543433957656028e-02 2.542788821576999e-02 2.542144455508066e-02 2.541500858637495e-02 + 2.540858030019949e-02 2.540215968413957e-02 2.539574672197945e-02 2.538934140646816e-02 2.538294373410821e-02 + 2.537655369660362e-02 2.537017128263758e-02 2.536379648098229e-02 2.535742928550868e-02 2.535106968465225e-02 + 2.534471766277936e-02 2.533837321084466e-02 2.533203632423742e-02 2.532570699881585e-02 2.531938521813243e-02 + 2.531307097096266e-02 2.530676425602581e-02 2.530046505932213e-02 2.529417336607690e-02 2.528788916915281e-02 + 2.528161246489754e-02 2.527534324609989e-02 2.526908149634068e-02 2.526282720495094e-02 2.525658036572961e-02 + 2.525034097275206e-02 2.524410901058027e-02 2.523788446449190e-02 2.523166734234336e-02 2.522545763237074e-02 + 2.521925530838600e-02 2.521306037097086e-02 2.520687281776321e-02 2.520069263496993e-02 2.519451980442291e-02 + 2.518835431925369e-02 2.518219618546694e-02 2.517604538654039e-02 2.516990190396150e-02 2.516376573127799e-02 + 2.515763686639562e-02 2.515151530112912e-02 2.514540101358030e-02 2.513929399756280e-02 2.513319425347670e-02 + 2.512710177240427e-02 2.512101654329324e-02 2.511493855506050e-02 2.510886779787783e-02 2.510280425830826e-02 + 2.509674792451250e-02 2.509069880343641e-02 2.508465688466923e-02 2.507862214067907e-02 2.507259457630134e-02 + 2.506657418922008e-02 2.506056095604422e-02 2.505455486579475e-02 2.504855591546334e-02 2.504256410459500e-02 + 2.503657941982099e-02 2.503060184642849e-02 2.502463137903613e-02 2.501866800626509e-02 2.501271171663477e-02 + 2.500676250820755e-02 2.500082037092928e-02 2.499488529135626e-02 2.498895726677344e-02 2.498303628979692e-02 + 2.497712234741346e-02 2.497121542814719e-02 2.496531552247531e-02 2.495942262282587e-02 2.495353672310340e-02 + 2.494765781766853e-02 2.494178589943900e-02 2.493592095223772e-02 2.493006296439117e-02 2.492421193524048e-02 + 2.491836784922406e-02 2.491253069345717e-02 2.490670047398909e-02 2.490087718065651e-02 2.489506079631419e-02 + 2.488925131370227e-02 2.488344872747560e-02 2.487765302865731e-02 2.487186419727612e-02 2.486608223223404e-02 + 2.486030714174834e-02 2.485453889875117e-02 2.484877749156952e-02 2.484302292908405e-02 2.483727519324232e-02 + 2.483153426549052e-02 2.482580013961989e-02 2.482007281919668e-02 2.481435229933991e-02 2.480863855780388e-02 + 2.480293158683973e-02 2.479723138421890e-02 2.479153794250162e-02 2.478585124573938e-02 2.478017128120043e-02 + 2.477449805440481e-02 2.476883155587847e-02 2.476317176818658e-02 2.475751868877601e-02 2.475187231076201e-02 + 2.474623262098153e-02 2.474059960704484e-02 2.473497326224523e-02 2.472935358498410e-02 2.472374056978996e-02 + 2.471813420423485e-02 2.471253447111526e-02 2.470694136984621e-02 2.470135489678424e-02 2.469577503399494e-02 + 2.469020177298829e-02 2.468463511029760e-02 2.467907504169421e-02 2.467352155791407e-02 2.466797464651026e-02 + 2.466243429488579e-02 2.465690049712254e-02 2.465137324948606e-02 2.464585254039273e-02 2.464033836402688e-02 + 2.463483071739735e-02 2.462932958374225e-02 2.462383495186045e-02 2.461834681928389e-02 2.461286517898853e-02 + 2.460739002108202e-02 2.460192133524253e-02 2.459645911917798e-02 2.459100336526309e-02 2.458555405446716e-02 + 2.458011118496141e-02 2.457467475465895e-02 2.456924474486533e-02 2.456382114921245e-02 2.455840396700115e-02 + 2.455299319041756e-02 2.454758880740113e-02 2.454219080674820e-02 2.453679918638537e-02 2.453141393576077e-02 + 2.452603503863916e-02 2.452066249180092e-02 2.451529629410615e-02 2.450993644073534e-02 2.450458291517292e-02 + 2.449923570627392e-02 2.449389481263279e-02 2.448856022075961e-02 2.448323192252920e-02 2.447790992354739e-02 + 2.447259420740984e-02 2.446728475663024e-02 2.446198157303190e-02 2.445668465268695e-02 2.445139398411770e-02 + 2.444610955000165e-02 2.444083134675017e-02 2.443555937646448e-02 2.443029362647454e-02 2.442503408583922e-02 + 2.441978074770511e-02 2.441453360513738e-02 2.440929264714783e-02 2.440405786136508e-02 2.439882924944217e-02 + 2.439360680824694e-02 2.438839052372590e-02 2.438318038826778e-02 2.437797639360750e-02 2.437277852674977e-02 + 2.436758678074824e-02 2.436240115296091e-02 2.435722164202054e-02 2.435204823529888e-02 2.434688091817521e-02 + 2.434171968740183e-02 2.433656453724402e-02 2.433141545805634e-02 2.432627243782077e-02 2.432113546933723e-02 + 2.431600455029639e-02 2.431087967900234e-02 2.430576084399959e-02 2.430064802749307e-02 2.429554123205279e-02 + 2.429044044976694e-02 2.428534565606734e-02 2.428025685952290e-02 2.427517406275088e-02 2.427009724038350e-02 + 2.426502638834353e-02 2.425996150697585e-02 2.425490258288459e-02 2.424984960255012e-02 2.424480255754471e-02 + 2.423976144931379e-02 2.423472627405213e-02 2.422969702193537e-02 2.422467367993699e-02 2.421965624107330e-02 + 2.421464470176334e-02 2.420963904926960e-02 2.420463927567678e-02 2.419964537946393e-02 2.419465735323985e-02 + 2.418967518800793e-02 2.418469887545246e-02 2.417972840901141e-02 2.417476377855392e-02 2.416980496962540e-02 + 2.416485198688481e-02 2.415990483049387e-02 2.415496347565664e-02 2.415002792020104e-02 2.414509816788697e-02 + 2.414017420064829e-02 2.413525600526027e-02 2.413034357711665e-02 2.412543691925479e-02 2.412053602209589e-02 + 2.411564086852338e-02 2.411075145960207e-02 2.410586778967854e-02 2.410098984367492e-02 2.409611761892932e-02 + 2.409125110932578e-02 2.408639030144091e-02 2.408153519631380e-02 2.407668578962185e-02 2.407184206146642e-02 + 2.406700400909483e-02 2.406217163125833e-02 2.405734491326586e-02 2.405252385052364e-02 2.404770844026444e-02 + 2.404289866819192e-02 2.403809452984102e-02 2.403329602484744e-02 2.402850314011094e-02 2.402371586479471e-02 + 2.401893419282938e-02 2.401415812045089e-02 2.400938764313821e-02 2.400462275334547e-02 2.399986343578922e-02 + 2.399510968520409e-02 2.399036150812855e-02 2.398561888480285e-02 2.398088180164008e-02 2.397615026865237e-02 + 2.397142427338870e-02 2.396670380040281e-02 2.396198885088599e-02 2.395727942113068e-02 2.395257549962209e-02 + 2.394787706723708e-02 2.394318412617158e-02 2.393849668455232e-02 2.393381472012022e-02 2.392913822141401e-02 + 2.392446719065216e-02 2.391980162598514e-02 2.391514151312970e-02 2.391048683154523e-02 2.390583758880722e-02 + 2.390119378770886e-02 2.389655541357522e-02 2.389192245255953e-02 2.388729489743550e-02 2.388267274893805e-02 + 2.387805599705324e-02 2.387344463051915e-02 2.386883864637205e-02 2.386423804212813e-02 2.385964281176755e-02 + 2.385505294183017e-02 2.385046842474073e-02 2.384588925674739e-02 2.384131543037479e-02 2.383674693675093e-02 + 2.383218376863605e-02 2.382762592698097e-02 2.382307340607612e-02 2.381852619200930e-02 2.381398427584630e-02 + 2.380944765139419e-02 2.380491631418275e-02 2.380039026147703e-02 2.379586948695320e-02 2.379135397827495e-02 + 2.378684372855616e-02 2.378233873403001e-02 2.377783899070361e-02 2.377334448688785e-02 2.376885521259772e-02 + 2.376437117173840e-02 2.375989235311110e-02 2.375541874056297e-02 2.375095033967465e-02 2.374648714507580e-02 + 2.374202914136664e-02 2.373757632537944e-02 2.373312869288914e-02 2.372868623536894e-02 2.372424894471153e-02 + 2.371981681484819e-02 2.371538984133524e-02 2.371096801501392e-02 2.370655132827953e-02 2.370213977833190e-02 + 2.369773335765337e-02 2.369333205880069e-02 2.368893587883010e-02 2.368454481046802e-02 2.368015884444250e-02 + 2.367577797334512e-02 2.367140218742613e-02 2.366703147963686e-02 2.366266585606776e-02 2.365830530976384e-02 + 2.365394982335759e-02 2.364959939168465e-02 2.364525401200215e-02 2.364091367903051e-02 2.363657837870221e-02 + 2.363224810602428e-02 2.362792286773459e-02 2.362360264929340e-02 2.361928743769403e-02 2.361497723470610e-02 + 2.361067203383207e-02 2.360637182449869e-02 2.360207659794005e-02 2.359778635431920e-02 2.359350109143980e-02 + 2.358922079027601e-02 2.358494544772182e-02 2.358067506765588e-02 2.357640963547734e-02 2.357214914179353e-02 + 2.356789358468287e-02 2.356364296127548e-02 2.355939726289868e-02 2.355515647729875e-02 2.355092060314220e-02 + 2.354668963726047e-02 2.354246356971432e-02 2.353824239065819e-02 2.353402609608870e-02 2.352981468856027e-02 + 2.352560815209497e-02 2.352140647526573e-02 2.351720967050562e-02 2.351301772305351e-02 2.350883061252196e-02 + 2.350464834642137e-02 2.350047092197861e-02 2.349629832802946e-02 2.349213055910952e-02 2.348796760574937e-02 + 2.348380945835795e-02 2.347965612326723e-02 2.347550759163322e-02 2.347136384068571e-02 2.346722487769892e-02 + 2.346309070523777e-02 2.345896130833473e-02 2.345483667635093e-02 2.345071680463291e-02 2.344660169327714e-02 + 2.344249133136094e-02 2.343838570884467e-02 2.343428482723373e-02 2.343018868068117e-02 2.342609726030811e-02 + 2.342201056195244e-02 2.341792857876926e-02 2.341385130156056e-02 2.340977872164902e-02 2.340571083589386e-02 + 2.340164764377465e-02 2.339758913684304e-02 2.339353530825718e-02 2.338948615385810e-02 2.338544166438565e-02 + 2.338140183238109e-02 2.337736665460082e-02 2.337333612670094e-02 2.336931024309368e-02 2.336528899670786e-02 + 2.336127237782067e-02 2.335726037932775e-02 2.335325300092871e-02 2.334925023614406e-02 2.334525207670920e-02 + 2.334125851951941e-02 2.333726955725296e-02 2.333328518197435e-02 2.332930539416707e-02 2.332533018620607e-02 + 2.332135954429912e-02 2.331739346348105e-02 2.331343194297124e-02 2.330947498175055e-02 2.330552256758802e-02 + 2.330157469245372e-02 2.329763135682490e-02 2.329369255310137e-02 2.328975827131819e-02 2.328582850377367e-02 + 2.328190324900185e-02 2.327798250467623e-02 2.327406626164597e-02 2.327015451465238e-02 2.326624725851670e-02 + 2.326234448228765e-02 2.325844618291867e-02 2.325455236057939e-02 2.325066300636415e-02 2.324677811186985e-02 + 2.324289767062798e-02 2.323902167622130e-02 2.323515012509116e-02 2.323128301561370e-02 2.322742034088871e-02 + 2.322356209250113e-02 2.321970826255392e-02 2.321585884544971e-02 2.321201383858435e-02 2.320817324137425e-02 + 2.320433704277431e-02 2.320050523099401e-02 2.319667780275936e-02 2.319285475700314e-02 2.318903609087885e-02 + 2.318522179577433e-02 2.318141186586264e-02 2.317760629632794e-02 2.317380507773795e-02 2.317000820301008e-02 + 2.316621566880872e-02 2.316242747510807e-02 2.315864361575457e-02 2.315486407850317e-02 2.315108885694486e-02 + 2.314731794816131e-02 2.314355135044316e-02 2.313978905662257e-02 2.313603105913640e-02 2.313227735329952e-02 + 2.312852793585061e-02 2.312478280157292e-02 2.312104194073204e-02 2.311730534704967e-02 2.311357301587891e-02 + 2.310984494137890e-02 2.310612112341407e-02 2.310240155989217e-02 2.309868623130452e-02 2.309497513592190e-02 + 2.309126828241582e-02 2.308756565023808e-02 2.308386723175103e-02 2.308017303542274e-02 2.307648304592169e-02 + 2.307279725617671e-02 2.306911567493640e-02 2.306543828441958e-02 2.306176507302976e-02 2.305809605235563e-02 + 2.305443121050249e-02 2.305077053229759e-02 2.304711401909808e-02 2.304346166830784e-02 2.303981347406350e-02 + 2.303616943085239e-02 2.303252953349069e-02 2.302889377643319e-02 2.302526215247478e-02 2.302163465435939e-02 + 2.301801127709388e-02 2.301439202296127e-02 2.301077688440331e-02 2.300716584594829e-02 2.300355891234385e-02 + 2.299995607931316e-02 2.299635732709070e-02 2.299276266087610e-02 2.298917208378683e-02 2.298558558107965e-02 + 2.298200314503575e-02 2.297842477288603e-02 2.297485046311076e-02 2.297128020911345e-02 2.296771400315858e-02 + 2.296415184168031e-02 2.296059371667762e-02 2.295703962066644e-02 2.295348955785851e-02 2.294994352217295e-02 + 2.294640149900077e-02 2.294286348264926e-02 2.293932947451599e-02 2.293579947717141e-02 2.293227347444131e-02 + 2.292875145668869e-02 2.292523342863249e-02 2.292171938675970e-02 2.291820932208030e-02 2.291470322329688e-02 + 2.291120108573121e-02 2.290770290936340e-02 2.290420869564250e-02 2.290071843254762e-02 2.289723210840996e-02 + 2.289374972996874e-02 2.289027128684278e-02 2.288679676284003e-02 2.288332616596880e-02 2.287985949623025e-02 + 2.287639674290211e-02 2.287293789614104e-02 2.286948295143698e-02 2.286603190794522e-02 2.286258475709644e-02 + 2.285914149325583e-02 2.285570211629635e-02 2.285226661817064e-02 2.284883499242224e-02 2.284540723897847e-02 + 2.284198334984975e-02 2.283856331588243e-02 2.283514713353579e-02 2.283173480111027e-02 2.282832631556901e-02 + 2.282492166909090e-02 2.282152085461623e-02 2.281812386736860e-02 2.281473070606539e-02 2.281134136558116e-02 + 2.280795583769253e-02 2.280457411713410e-02 2.280119619914733e-02 2.279782207936136e-02 2.279445175627783e-02 + 2.279108522557549e-02 2.278772247795469e-02 2.278436350274908e-02 2.278100829770330e-02 2.277765687156956e-02 + 2.277430921150676e-02 2.277096530368425e-02 2.276762515226868e-02 2.276428875675497e-02 2.276095610802096e-02 + 2.275762718728153e-02 2.275430199700514e-02 2.275098054723153e-02 2.274766282325953e-02 2.274434881806882e-02 + 2.274103853245654e-02 2.273773195657694e-02 2.273442908251650e-02 2.273112990748000e-02 2.272783443024632e-02 + 2.272454264587135e-02 2.272125454541999e-02 2.271797012768606e-02 2.271468938883630e-02 2.271141231743784e-02 + 2.270813891155475e-02 2.270486917113991e-02 2.270160309030139e-02 2.269834065991423e-02 2.269508187421201e-02 + 2.269182673791773e-02 2.268857524219826e-02 2.268532737305624e-02 2.268208313254210e-02 2.267884251722086e-02 + 2.267560551920548e-02 2.267237214108131e-02 2.266914237609957e-02 2.266591620883689e-02 2.266269364166427e-02 + 2.265947467384046e-02 2.265625929499294e-02 2.265304750285308e-02 2.264983929495161e-02 2.264663466331073e-02 + 2.264343359962570e-02 2.264023610100446e-02 2.263704217283995e-02 2.263385180078203e-02 2.263066497176033e-02 + 2.262748170200772e-02 2.262430198020481e-02 2.262112578516977e-02 2.261795313211606e-02 2.261478401664109e-02 + 2.261161841743119e-02 2.260845633522814e-02 2.260529777070043e-02 2.260214271924124e-02 2.259899117823321e-02 + 2.259584314154298e-02 2.259269859890657e-02 2.258955754741791e-02 2.258641998536936e-02 2.258328590829124e-02 + 2.258015531052365e-02 2.257702818646037e-02 2.257390453172050e-02 2.257078434461123e-02 2.256766762198980e-02 + 2.256455435398716e-02 2.256144453344060e-02 2.255833815784602e-02 2.255523523027356e-02 2.255213574452021e-02 + 2.254903968810603e-02 2.254594705829782e-02 2.254285785514665e-02 2.253977207653749e-02 2.253668970834607e-02 + 2.253361074658835e-02 2.253053520058667e-02 2.252746305460894e-02 2.252439429792020e-02 2.252132894054988e-02 + 2.251826697539277e-02 2.251520839162438e-02 2.251215318778324e-02 2.250910135797150e-02 2.250605289615611e-02 + 2.250300780314812e-02 2.249996607511807e-02 2.249692770517706e-02 2.249389268897849e-02 2.249086101912092e-02 + 2.248783268793952e-02 2.248480769791340e-02 2.248178604607573e-02 2.247876772289102e-02 2.247575272657626e-02 + 2.247274105420605e-02 2.246973269884927e-02 2.246672765673356e-02 2.246372592391256e-02 2.246072749418018e-02 + 2.245773236145919e-02 2.245474052366870e-02 2.245175198466864e-02 2.244876673416187e-02 2.244578475935081e-02 + 2.244280606154297e-02 2.243983064008646e-02 2.243685849064164e-02 2.243388960632717e-02 2.243092397966235e-02 + 2.242796160524575e-02 2.242500248562306e-02 2.242204661762487e-02 2.241909399183298e-02 2.241614460666303e-02 + 2.241319845819517e-02 2.241025553754803e-02 2.240731584245553e-02 2.240437937032112e-02 2.240144611432051e-02 + 2.239851607018801e-02 2.239558923444239e-02 2.239266560299412e-02 2.238974517661811e-02 2.238682795331298e-02 + 2.238391391839321e-02 2.238100306495051e-02 2.237809539304577e-02 2.237519090301935e-02 2.237228958954325e-02 + 2.236939144530989e-02 2.236649647337483e-02 2.236360466636645e-02 2.236071600836286e-02 2.235783050633204e-02 + 2.235494816009726e-02 2.235206895420678e-02 2.234919288912077e-02 2.234631996540050e-02 2.234345017408028e-02 + 2.234058350741709e-02 2.233771996217690e-02 2.233485954108143e-02 2.233200223848051e-02 2.232914804618978e-02 + 2.232629696222737e-02 2.232344898389008e-02 2.232060410657171e-02 2.231776232362639e-02 2.231492363175558e-02 + 2.231208802922137e-02 2.230925550831191e-02 2.230642606279709e-02 2.230359969032392e-02 2.230077639232617e-02 + 2.229795616382932e-02 2.229513899284023e-02 2.229232488215048e-02 2.228951382986107e-02 2.228670582046145e-02 + 2.228390085767177e-02 2.228109894426768e-02 2.227830006461064e-02 2.227550421765863e-02 2.227271140560883e-02 + 2.226992161633195e-02 2.226713484518715e-02 2.226435109357777e-02 2.226157036041665e-02 2.225879263594571e-02 + 2.225601790864145e-02 2.225324618600033e-02 2.225047746610503e-02 2.224771173578603e-02 2.224494899695189e-02 + 2.224218924606724e-02 2.223943246967720e-02 2.223667867147697e-02 2.223392785229840e-02 2.223117999944780e-02 + 2.222843510958861e-02 2.222569318138216e-02 2.222295420869658e-02 2.222021819230338e-02 2.221748513172378e-02 + 2.221475501403353e-02 2.221202783347761e-02 2.220930358964832e-02 2.220658227937696e-02 2.220386389978368e-02 + 2.220114844711944e-02 2.219843591216284e-02 2.219572629440826e-02 2.219301959936691e-02 2.219031581219321e-02 + 2.218761492468887e-02 2.218491694233576e-02 2.218222185562244e-02 2.217952965986671e-02 2.217684036403281e-02 + 2.217415395419634e-02 2.217147041795686e-02 2.216878976537657e-02 2.216611199005385e-02 2.216343708084910e-02 + 2.216076504044857e-02 2.215809586407636e-02 2.215542954392592e-02 2.215276608232491e-02 2.215010547339664e-02 + 2.214744770611955e-02 2.214479278225410e-02 2.214214070177000e-02 2.213949145934428e-02 2.213684504847090e-02 + 2.213420146383213e-02 2.213156070201421e-02 2.212892275987791e-02 2.212628763520102e-02 2.212365532631548e-02 + 2.212102582567219e-02 2.211839912707401e-02 2.211577523186081e-02 2.211315413883962e-02 2.211053584219323e-02 + 2.210792033053083e-02 2.210530760247808e-02 2.210269766011106e-02 2.210009049378774e-02 2.209748609987134e-02 + 2.209488448015577e-02 2.209228563063591e-02 2.208968954607055e-02 2.208709622107550e-02 2.208450564887732e-02 + 2.208191782589816e-02 2.207933275252874e-02 2.207675042560285e-02 2.207417084119970e-02 2.207159399606388e-02 + 2.206901988424427e-02 2.206644850045388e-02 2.206387984291528e-02 2.206131390816773e-02 2.205875069196218e-02 + 2.205619019101501e-02 2.205363240248722e-02 2.205107732226570e-02 2.204852494231603e-02 2.204597526222870e-02 + 2.204342828418220e-02 2.204088399409952e-02 2.203834238815479e-02 2.203580347352047e-02 2.203326724064265e-02 + 2.203073368487589e-02 2.202820281109562e-02 2.202567460568826e-02 2.202314905892956e-02 2.202062617713913e-02 + 2.201810595951965e-02 2.201558839960293e-02 2.201307348855861e-02 2.201056122699519e-02 2.200805161543166e-02 + 2.200554464185156e-02 2.200304030240887e-02 2.200053859846551e-02 2.199803952619762e-02 2.199554308107517e-02 + 2.199304925941878e-02 2.199055805969111e-02 2.198806947716193e-02 2.198558350490501e-02 2.198310014348315e-02 + 2.198061939050182e-02 2.197814123774413e-02 2.197566568143648e-02 2.197319271829654e-02 2.197072234409288e-02 + 2.196825456242376e-02 2.196578937054303e-02 2.196332674903257e-02 2.196086670076693e-02 2.195840923401799e-02 + 2.195595433798292e-02 2.195350200785295e-02 2.195105224287541e-02 2.194860503638501e-02 2.194616038337459e-02 + 2.194371828086876e-02 2.194127872478465e-02 2.193884171275727e-02 2.193640724439015e-02 2.193397531871202e-02 + 2.193154592984012e-02 2.192911906730429e-02 2.192669472874541e-02 2.192427291582612e-02 2.192185362988310e-02 + 2.191943685926103e-02 2.191702259589666e-02 2.191461084837004e-02 2.191220161094460e-02 2.190979487232746e-02 + 2.190739062981033e-02 2.190498888177591e-02 2.190258962778606e-02 2.190019287048831e-02 2.189779860038415e-02 + 2.189540680312951e-02 2.189301748590321e-02 2.189063064823816e-02 2.188824627921663e-02 2.188586438035036e-02 + 2.188348494945867e-02 2.188110797669410e-02 2.187873346273279e-02 2.187636140793982e-02 2.187399180563438e-02 + 2.187162464701073e-02 2.186925992764394e-02 2.186689765219864e-02 2.186453782016761e-02 2.186218042520733e-02 + 2.185982545624109e-02 2.185747291143151e-02 2.185512279286289e-02 2.185277509428750e-02 2.185042981497303e-02 + 2.184808695595145e-02 2.184574650317918e-02 2.184340845337333e-02 2.184107281435048e-02 2.183873957690715e-02 + 2.183640873122354e-02 2.183408027442373e-02 2.183175421068970e-02 2.182943053984947e-02 2.182710925220595e-02 + 2.182479034512406e-02 2.182247381639650e-02 2.182015965839264e-02 2.181784786935527e-02 2.181553844939510e-02 + 2.181323139439093e-02 2.181092669994856e-02 2.180862436262286e-02 2.180632438083940e-02 2.180402674952244e-02 + 2.180173146217098e-02 2.179943851892379e-02 2.179714791838810e-02 2.179485965603752e-02 2.179257372764807e-02 + 2.179029013045416e-02 2.178800886254997e-02 2.178572991731780e-02 2.178345329019238e-02 2.178117898198011e-02 + 2.177890698980304e-02 2.177663730909087e-02 2.177436993586566e-02 2.177210486810286e-02 2.176984210277431e-02 + 2.176758163245009e-02 2.176532345522340e-02 2.176306757137086e-02 2.176081397536724e-02 2.175856266623576e-02 + 2.175631364444715e-02 2.175406689861889e-02 2.175182242380624e-02 2.174958022311289e-02 2.174734029291431e-02 + 2.174510262809328e-02 2.174286722491656e-02 2.174063408336708e-02 2.173840320169586e-02 2.173617457340815e-02 + 2.173394819180500e-02 2.173172405255836e-02 2.172950215559655e-02 2.172728250040623e-02 2.172506508580887e-02 + 2.172284990969628e-02 2.172063696250313e-02 2.171842623537083e-02 2.171621773566752e-02 2.171401146093844e-02 + 2.171180740120238e-02 2.170960555830954e-02 2.170740592901658e-02 2.170520850408856e-02 2.170301328419004e-02 + 2.170082027006994e-02 2.169862945830807e-02 2.169644084240343e-02 2.169425441572978e-02 2.169207017401216e-02 + 2.168988812007480e-02 2.168770825534887e-02 2.168553057272023e-02 2.168335506533793e-02 2.168118172867985e-02 + 2.167901056214399e-02 2.167684156632982e-02 2.167467473989915e-02 2.167251007478243e-02 2.167034756604321e-02 + 2.166818721221639e-02 2.166602901099679e-02 2.166387295840019e-02 2.166171905012346e-02 2.165956728718834e-02 + 2.165741766632386e-02 2.165527017845730e-02 2.165312482355555e-02 2.165098160273919e-02 2.164884051303741e-02 + 2.164670154730472e-02 2.164456469954934e-02 2.164242996946321e-02 2.164029735885670e-02 2.163816686523918e-02 + 2.163603847533059e-02 2.163391219068715e-02 2.163178801684997e-02 2.162966593882407e-02 2.162754595404139e-02 + 2.162542806873079e-02 2.162331227177066e-02 2.162119856181649e-02 2.161908694674025e-02 2.161697741144211e-02 + 2.161486994763257e-02 2.161276456243416e-02 2.161066125301312e-02 2.160856001324272e-02 2.160646083892226e-02 + 2.160436373197112e-02 2.160226869104043e-02 2.160017570438035e-02 2.159808476849354e-02 2.159599588501710e-02 + 2.159390905460169e-02 2.159182427010056e-02 2.158974152429478e-02 2.158766082444429e-02 2.158558216760809e-02 + 2.158350554187339e-02 2.158143094233737e-02 2.157935837033232e-02 2.157728782941571e-02 2.157521931196140e-02 + 2.157315281164952e-02 2.157108832745493e-02 2.156902585566251e-02 2.156696539445298e-02 2.156490694526656e-02 + 2.156285049964247e-02 2.156079605212440e-02 2.155874360997529e-02 2.155669316474123e-02 2.155464470676604e-02 + 2.155259824484399e-02 2.155055377365348e-02 2.154851128035285e-02 2.154647076406023e-02 2.154443222886153e-02 + 2.154239567713112e-02 2.154036109691455e-02 2.153832848380287e-02 2.153629784162443e-02 2.153426916110383e-02 + 2.153224243839968e-02 2.153021767928900e-02 2.152819487735599e-02 2.152617402486068e-02 2.152415511969989e-02 + 2.152213816346627e-02 2.152012315489333e-02 2.151811008517867e-02 2.151609895106827e-02 2.151408975350627e-02 + 2.151208249405811e-02 2.151007716412923e-02 2.150807375412716e-02 2.150607227139823e-02 2.150407271389111e-02 + 2.150207507178008e-02 2.150007934512424e-02 2.149808553345600e-02 2.149609363244227e-02 2.149410363369511e-02 + 2.149211553597770e-02 2.149012934592863e-02 2.148814505588094e-02 2.148616265955859e-02 2.148418215959600e-02 + 2.148220354775919e-02 2.148022681859241e-02 2.147825198020547e-02 2.147627902590631e-02 2.147430794498996e-02 + 2.147233873858447e-02 2.147037140717467e-02 2.146840594879004e-02 2.146644235912430e-02 2.146448063553682e-02 + 2.146252077578778e-02 2.146056277288728e-02 2.145860662318243e-02 2.145665232726965e-02 2.145469988438242e-02 + 2.145274929256557e-02 2.145080054831608e-02 2.144885364454498e-02 2.144690857746641e-02 2.144496534942983e-02 + 2.144302395654175e-02 2.144108439499599e-02 2.143914666610025e-02 2.143721076355154e-02 2.143527668029283e-02 + 2.143334441800114e-02 2.143141397685691e-02 2.142948535268880e-02 2.142755853497146e-02 2.142563352602930e-02 + 2.142371033388222e-02 2.142178894500280e-02 2.141986935358769e-02 2.141795156402302e-02 2.141603556793572e-02 + 2.141412136230918e-02 2.141220895321441e-02 2.141029833297722e-02 2.140838949470163e-02 2.140648244009975e-02 + 2.140457716697424e-02 2.140267367166504e-02 2.140077195168551e-02 2.139887200433115e-02 2.139697382547902e-02 + 2.139507740888590e-02 2.139318275720074e-02 2.139128987343195e-02 2.138939874415982e-02 2.138750936775835e-02 + 2.138562175102568e-02 2.138373588641631e-02 2.138185176599392e-02 2.137996938652284e-02 2.137808875223814e-02 + 2.137620986251236e-02 2.137433270909064e-02 2.137245728978030e-02 2.137058360186242e-02 2.136871163953864e-02 + 2.136684140688612e-02 2.136497290390506e-02 2.136310611597474e-02 2.136124104345297e-02 2.135937769212130e-02 + 2.135751605860686e-02 2.135565613610374e-02 2.135379791822062e-02 2.135194140402438e-02 2.135008659417071e-02 + 2.134823348788390e-02 2.134638207760105e-02 2.134453236032835e-02 2.134268433814086e-02 2.134083800772077e-02 + 2.133899336411597e-02 2.133715040305821e-02 2.133530912424798e-02 2.133346952672500e-02 2.133163160670673e-02 + 2.132979536297411e-02 2.132796079152963e-02 2.132612788229375e-02 2.132429663915477e-02 2.132246706798375e-02 + 2.132063916037057e-02 2.131881290769116e-02 2.131698830582932e-02 2.131516535978050e-02 2.131334407028698e-02 + 2.131152443198118e-02 2.130970643552249e-02 2.130789007885127e-02 2.130607536669811e-02 2.130426229682303e-02 + 2.130245086421657e-02 2.130064106313053e-02 2.129883288837854e-02 2.129702633875496e-02 2.129522141788389e-02 + 2.129341812290223e-02 2.129161644909972e-02 2.128981639414264e-02 2.128801795585396e-02 2.128622113110773e-02 + 2.128442591509673e-02 2.128263230760480e-02 2.128084030772261e-02 2.127904990395241e-02 2.127726109953179e-02 + 2.127547390424031e-02 2.127368830171838e-02 2.127190428479188e-02 2.127012186038021e-02 2.126834102886177e-02 + 2.126656178481652e-02 2.126478411995624e-02 2.126300803603507e-02 2.126123353191450e-02 2.125946059821390e-02 + 2.125768923851055e-02 2.125591945439615e-02 2.125415123382016e-02 2.125238457915817e-02 2.125061949358618e-02 + 2.124885596288304e-02 2.124709398735697e-02 2.124533357303348e-02 2.124357470952245e-02 2.124181739435340e-02 + 2.124006163206048e-02 2.123830741948956e-02 2.123655475001017e-02 2.123480361731545e-02 2.123305402409987e-02 + 2.123130596739953e-02 2.122955943693203e-02 2.122781443910126e-02 2.122607097723360e-02 2.122432904130337e-02 + 2.122258862659696e-02 2.122084973282204e-02 2.121911236175234e-02 2.121737650789419e-02 2.121564216387619e-02 + 2.121390932803162e-02 2.121217800425756e-02 2.121044819455527e-02 2.120871988671843e-02 2.120699307684077e-02 + 2.120526776795157e-02 2.120354395552526e-02 2.120182163603621e-02 2.120010080901829e-02 2.119838147500087e-02 + 2.119666363123091e-02 2.119494727091758e-02 2.119323238927472e-02 2.119151898655034e-02 2.118980706773010e-02 + 2.118809662574528e-02 2.118638765303925e-02 2.118468015121633e-02 2.118297411864271e-02 2.118126955146517e-02 + 2.117956644637810e-02 2.117786480292237e-02 2.117616462067450e-02 2.117446589411339e-02 2.117276862084477e-02 + 2.117107280130004e-02 2.116937843379139e-02 2.116768551256503e-02 2.116599403067535e-02 2.116430399205533e-02 + 2.116261539753040e-02 2.116092824074994e-02 2.115924251858398e-02 2.115755822756320e-02 2.115587536308644e-02 + 2.115419393062315e-02 2.115251393109511e-02 2.115083534999197e-02 2.114915818684827e-02 2.114748244571777e-02 + 2.114580812117730e-02 2.114413521000233e-02 2.114246371011731e-02 2.114079361630021e-02 2.113912493113981e-02 + 2.113745765864524e-02 2.113579178347091e-02 2.113412730283017e-02 2.113246422731517e-02 2.113080255018658e-02 + 2.112914226466844e-02 2.112748336987266e-02 2.112582586239263e-02 2.112416973838773e-02 2.112251499585494e-02 + 2.112086163946853e-02 2.111920966923609e-02 2.111755907231158e-02 2.111590984741022e-02 2.111426199652882e-02 + 2.111261551330255e-02 2.111097039854193e-02 2.110932665501722e-02 2.110768427494188e-02 2.110604325159932e-02 + 2.110440358337455e-02 2.110276527755971e-02 2.110112832954347e-02 2.109949272542061e-02 2.109785847270291e-02 + 2.109622557382813e-02 2.109459401840321e-02 2.109296380279178e-02 2.109133492634166e-02 2.108970738897449e-02 + 2.108808119187406e-02 2.108645633261542e-02 2.108483280177793e-02 2.108321059649476e-02 2.108158971816587e-02 + 2.107997016818712e-02 2.107835194176262e-02 2.107673503228282e-02 2.107511943992769e-02 2.107350516482023e-02 + 2.107189220511111e-02 2.107028055587330e-02 2.106867021606288e-02 2.106706118735907e-02 2.106545346293816e-02 + 2.106384703796383e-02 2.106224191316689e-02 2.106063808955507e-02 2.105903556250238e-02 2.105743432153898e-02 + 2.105583437513380e-02 2.105423572746437e-02 2.105263836035830e-02 2.105104227142354e-02 2.104944746729932e-02 + 2.104785395134047e-02 2.104626171573087e-02 2.104467074966839e-02 2.104308105452007e-02 2.104149263222363e-02 + 2.103990548218236e-02 2.103831959968388e-02 2.103673498293864e-02 2.103515163200819e-02 2.103356953798411e-02 + 2.103198869775456e-02 2.103040911733209e-02 2.102883079574534e-02 2.102725372695269e-02 2.102567790273802e-02 + 2.102410332486244e-02 2.102252999507990e-02 2.102095790737760e-02 2.101938706174730e-02 2.101781745879964e-02 + 2.101624909192282e-02 2.101468195450770e-02 2.101311604447429e-02 2.101155137000445e-02 2.100998792857284e-02 + 2.100842571064132e-02 2.100686471849675e-02 2.100530495078897e-02 2.100374640001838e-02 2.100218906014547e-02 + 2.100063293273019e-02 2.099907802537045e-02 2.099752433031871e-02 2.099597184169578e-02 2.099442056340826e-02 + 2.099287048844137e-02 2.099132161182849e-02 2.098977394056553e-02 2.098822746767990e-02 2.098668218492037e-02 + 2.098513809937855e-02 2.098359520656010e-02 2.098205349870481e-02 2.098051298433238e-02 2.097897365788888e-02 + 2.097743550607582e-02 2.097589853771057e-02 2.097436275317134e-02 2.097282814179318e-02 2.097129470444368e-02 + 2.096976244194844e-02 2.096823135057212e-02 2.096670142502171e-02 2.096517266432222e-02 2.096364507294766e-02 + 2.096211864290872e-02 2.096059336882086e-02 2.095906925902597e-02 2.095754630598820e-02 2.095602449947026e-02 + 2.095450384463222e-02 2.095298434369944e-02 2.095146599313072e-02 2.094994878341327e-02 2.094843271500539e-02 + 2.094691779352117e-02 2.094540401073429e-02 2.094389136288097e-02 2.094237985194064e-02 2.094086947133280e-02 + 2.093936021927527e-02 2.093785210108921e-02 2.093634511142213e-02 2.093483924325246e-02 2.093333449385128e-02 + 2.093183086645815e-02 2.093032836253444e-02 2.092882697593887e-02 2.092732670311165e-02 2.092582754108962e-02 + 2.092432948474122e-02 2.092283253800634e-02 2.092133670446908e-02 2.091984196956714e-02 2.091834833166288e-02 + 2.091685579922333e-02 2.091536436905392e-02 2.091387403364116e-02 2.091238478662568e-02 2.091089663391256e-02 + 2.090940957508328e-02 2.090792359986955e-02 2.090643871032298e-02 2.090495490818039e-02 2.090347218811059e-02 + 2.090199054718417e-02 2.090050998308706e-02 2.089903049243704e-02 2.089755207414248e-02 2.089607472810411e-02 + 2.089459845325996e-02 2.089312324594328e-02 2.089164910255710e-02 2.089017602427597e-02 2.088870401009232e-02 + 2.088723305634642e-02 2.088576315893389e-02 2.088429431601771e-02 2.088282652696964e-02 2.088135978615913e-02 + 2.087989409321534e-02 2.087842945395569e-02 2.087696586275656e-02 2.087550331287119e-02 2.087404180207852e-02 + 2.087258132736208e-02 2.087112188861259e-02 2.086966349090147e-02 2.086820612891688e-02 2.086674979608584e-02 + 2.086529449590395e-02 2.086384022331517e-02 2.086238697045790e-02 2.086093474039187e-02 2.085948353444753e-02 + 2.085803335091995e-02 2.085658418796912e-02 2.085513604081134e-02 2.085368890289571e-02 2.085224277300881e-02 + 2.085079765267601e-02 2.084935354393509e-02 2.084791044341373e-02 2.084646834711395e-02 2.084502725286095e-02 + 2.084358715744794e-02 2.084214805848912e-02 2.084070995598070e-02 2.083927284909677e-02 2.083783673573611e-02 + 2.083640161226469e-02 2.083496747523998e-02 2.083353432223483e-02 2.083210215303235e-02 2.083067096927498e-02 + 2.082924077044086e-02 2.082781154460241e-02 2.082638329211299e-02 2.082495602309350e-02 2.082352972509603e-02 + 2.082210439277076e-02 2.082068003454410e-02 2.081925664261260e-02 2.081783421113447e-02 2.081641274508624e-02 + 2.081499224082686e-02 2.081357269450268e-02 2.081215410878219e-02 2.081073647873721e-02 2.080931979776872e-02 + 2.080790406592918e-02 2.080648928500749e-02 2.080507545608266e-02 2.080366257645188e-02 2.080225063919177e-02 + 2.080083963814898e-02 2.079942957984240e-02 2.079802046255642e-02 2.079661227641324e-02 2.079520502452446e-02 + 2.079379870732677e-02 2.079239331877295e-02 2.079098886066600e-02 2.078958533155146e-02 2.078818272238310e-02 + 2.078678103594075e-02 2.078538027480030e-02 2.078398043169412e-02 2.078258150517176e-02 2.078118349582184e-02 + 2.077978640032045e-02 2.077839021518007e-02 2.077699493798996e-02 2.077560056860569e-02 2.077420710626992e-02 + 2.077281454908150e-02 2.077142289397691e-02 2.077003213665487e-02 2.076864227381708e-02 2.076725331084939e-02 + 2.076586524753700e-02 2.076447807479244e-02 2.076309178893910e-02 2.076170639200464e-02 2.076032188924749e-02 + 2.075893827075576e-02 2.075755552867013e-02 2.075617367037054e-02 2.075479269394757e-02 2.075341259415677e-02 + 2.075203337133167e-02 2.075065502119062e-02 2.074927754004291e-02 2.074790093527532e-02 2.074652520196147e-02 + 2.074515032814618e-02 2.074377631824518e-02 2.074240317461906e-02 2.074103089389617e-02 2.073965947285912e-02 + 2.073828890806665e-02 2.073691919635770e-02 2.073555033844026e-02 2.073418233381763e-02 2.073281517823886e-02 + 2.073144886803073e-02 2.073008340377233e-02 2.072871879147831e-02 2.072735502222402e-02 2.072599208688765e-02 + 2.072462999392301e-02 2.072326873860233e-02 2.072190831224300e-02 2.072054872378210e-02 2.071918997148765e-02 + 2.071783204556565e-02 2.071647494755481e-02 2.071511867766477e-02 2.071376323196711e-02 2.071240860565183e-02 + 2.071105479791370e-02 2.070970181180314e-02 2.070834964331268e-02 2.070699828917085e-02 2.070564775075080e-02 + 2.070429802727900e-02 2.070294911380581e-02 2.070160100113699e-02 2.070025369244763e-02 2.069890719322030e-02 + 2.069756149841416e-02 2.069621660331007e-02 2.069487250616514e-02 2.069352920972353e-02 2.069218670843115e-02 + 2.069084499406914e-02 2.068950407478504e-02 2.068816395008570e-02 2.068682460979861e-02 2.068548605525363e-02 + 2.068414828647597e-02 2.068281129879088e-02 2.068147509294542e-02 2.068013966727868e-02 2.067880501481977e-02 + 2.067747113766845e-02 2.067613803889334e-02 2.067480571527677e-02 2.067347415977921e-02 2.067214336769299e-02 + 2.067081334319025e-02 2.066948408776949e-02 2.066815559807265e-02 2.066682786498898e-02 2.066550088830383e-02 + 2.066417467341183e-02 2.066284921698086e-02 2.066152451475288e-02 2.066020056372571e-02 2.065887736182303e-02 + 2.065755490839281e-02 2.065623320354572e-02 2.065491224367795e-02 2.065359202675738e-02 2.065227255436574e-02 + 2.065095382314874e-02 2.064963582941213e-02 2.064831857270797e-02 2.064700204957123e-02 2.064568625651786e-02 + 2.064437119414936e-02 2.064305686324694e-02 2.064174326345409e-02 2.064043039179931e-02 2.063911824280925e-02 + 2.063780681176866e-02 2.063649610237503e-02 2.063518611610314e-02 2.063387684909248e-02 2.063256829217405e-02 + 2.063126044539576e-02 2.062995331851188e-02 2.062864690334512e-02 2.062734119190086e-02 2.062603618600375e-02 + 2.062473188642144e-02 2.062342829221786e-02 2.062212540064643e-02 2.062082320714733e-02 2.061952170915304e-02 + 2.061822091004314e-02 2.061692080716460e-02 2.061562139605911e-02 2.061432267954307e-02 2.061302465323251e-02 + 2.061172730955065e-02 2.061043065371613e-02 2.060913468523504e-02 2.060783939685846e-02 2.060654478913799e-02 + 2.060525086119714e-02 2.060395760866959e-02 2.060266503271371e-02 2.060137313244415e-02 2.060008190215519e-02 + 2.059879134465455e-02 2.059750146004468e-02 2.059621223782829e-02 2.059492368052522e-02 2.059363579225837e-02 + 2.059234856405708e-02 2.059106199328788e-02 2.058977608130871e-02 2.058849082556723e-02 2.058720622498806e-02 + 2.058592227959311e-02 2.058463898696043e-02 2.058335634281647e-02 2.058207434376584e-02 2.058079299573017e-02 + 2.057951229614279e-02 2.057823223269817e-02 2.057695281356401e-02 2.057567404187197e-02 2.057439590387300e-02 + 2.057311839681732e-02 2.057184152455586e-02 2.057056529173392e-02 2.056928969078429e-02 2.056801471376779e-02 + 2.056674036634529e-02 2.056546664830153e-02 2.056419355486686e-02 2.056292108306100e-02 2.056164923170236e-02 + 2.056037800067255e-02 2.055910738924650e-02 2.055783739340399e-02 2.055656800859636e-02 2.055529924146672e-02 + 2.055403109005562e-02 2.055276354110791e-02 2.055149659755915e-02 2.055023026272679e-02 2.054896453244645e-02 + 2.054769940766287e-02 2.054643488681757e-02 2.054517096062926e-02 2.054390763218316e-02 2.054264490512525e-02 + 2.054138276915942e-02 2.054012122328143e-02 2.053886027085424e-02 2.053759990682471e-02 2.053634012878631e-02 + 2.053508093799464e-02 2.053382233647706e-02 2.053256431985532e-02 2.053130687980379e-02 2.053005001911220e-02 + 2.052879373804411e-02 2.052753803104820e-02 2.052628289842169e-02 2.052502834052905e-02 2.052377435424499e-02 + 2.052252093383405e-02 2.052126807833591e-02 2.052001579579881e-02 2.051876408076618e-02 2.051751292558091e-02 + 2.051626233431153e-02 2.051501230108543e-02 2.051376281904528e-02 2.051251389905356e-02 2.051126553806812e-02 + 2.051001772450580e-02 2.050877046477720e-02 2.050752375748313e-02 2.050627759308629e-02 2.050503197764233e-02 + 2.050378691120845e-02 2.050254238346269e-02 2.050129839647772e-02 2.050005495152270e-02 2.049881204279591e-02 + 2.049756967049427e-02 2.049632783497685e-02 2.049508653204386e-02 2.049384576061373e-02 2.049260552085964e-02 + 2.049136581124810e-02 2.049012662828215e-02 2.048888796855573e-02 2.048764983217528e-02 2.048641222055239e-02 + 2.048517513365279e-02 2.048393856449956e-02 2.048270250702790e-02 2.048146696002243e-02 2.048023193267689e-02 + 2.047899742444990e-02 2.047776342204647e-02 2.047652992557144e-02 2.047529693666283e-02 2.047406445284291e-02 + 2.047283247820367e-02 2.047160101124722e-02 2.047037003705319e-02 2.046913955996649e-02 2.046790958805229e-02 + 2.046668011290463e-02 2.046545112747173e-02 2.046422263048016e-02 2.046299462941648e-02 2.046176712182623e-02 + 2.046054009863872e-02 2.045931356011635e-02 2.045808750875261e-02 2.045686194483555e-02 2.045563685869128e-02 + 2.045441224888558e-02 2.045318812405373e-02 2.045196447539730e-02 2.045074129851060e-02 2.044951860203706e-02 + 2.044829637561388e-02 2.044707461146781e-02 2.044585332076453e-02 2.044463250090934e-02 2.044341214478788e-02 + 2.044219225389736e-02 2.044097282684260e-02 2.043975385980242e-02 2.043853534979080e-02 2.043731729516990e-02 + 2.043609969584751e-02 2.043488255365452e-02 2.043366586840525e-02 2.043244963622695e-02 2.043123384788510e-02 + 2.043001850356880e-02 2.042880361352058e-02 2.042758917125052e-02 2.042637516923373e-02 2.042516160738241e-02 + 2.042394848596822e-02 2.042273580364956e-02 2.042152355668345e-02 2.042031174421715e-02 2.041910036711696e-02 + 2.041788942589821e-02 2.041667891618270e-02 2.041546883283581e-02 2.041425917723074e-02 2.041304994671302e-02 + 2.041184113736942e-02 2.041063275507356e-02 2.040942479864618e-02 2.040821725911453e-02 2.040701013329647e-02 + 2.040580342336421e-02 2.040459713364973e-02 2.040339125626194e-02 2.040218578748979e-02 2.040098073437600e-02 + 2.039977609190064e-02 2.039857185194057e-02 2.039736801200263e-02 2.039616457948628e-02 2.039496155847034e-02 + 2.039375893548800e-02 2.039255670811317e-02 2.039135487906758e-02 2.039015344139171e-02 2.038895239754324e-02 + 2.038775175394349e-02 2.038655150008423e-02 2.038535163468296e-02 2.038415216492024e-02 2.038295307932101e-02 + 2.038175437156158e-02 2.038055604740632e-02 2.037935811014152e-02 2.037816055719221e-02 2.037696338008003e-02 + 2.037576657774965e-02 2.037457015197002e-02 2.037337410306159e-02 2.037217842811476e-02 2.037098312337542e-02 + 2.036978818702816e-02 2.036859361901312e-02 2.036739941883561e-02 2.036620558232109e-02 2.036501210897116e-02 + 2.036381899981477e-02 2.036262624936801e-02 2.036143385733716e-02 2.036024182706139e-02 2.035905014947786e-02 + 2.035785882153747e-02 2.035666784977269e-02 2.035547723079831e-02 2.035428696142468e-02 2.035309704319765e-02 + 2.035190747134853e-02 2.035071824110532e-02 2.034952935293085e-02 2.034834080749865e-02 2.034715260430401e-02 + 2.034596474052595e-02 2.034477721202228e-02 2.034359001578161e-02 2.034240315367684e-02 2.034121662664043e-02 + 2.034003043357028e-02 2.033884457132868e-02 2.033765903741480e-02 2.033647382949949e-02 2.033528894162872e-02 + 2.033410437471255e-02 2.033292013620119e-02 2.033173621775026e-02 2.033055261459435e-02 2.032936933387398e-02 + 2.032818637173341e-02 2.032700371995237e-02 2.032582137330103e-02 2.032463934032926e-02 2.032345762721536e-02 + 2.032227621977112e-02 2.032109511380310e-02 2.031991431266943e-02 2.031873381713771e-02 2.031755362367381e-02 + 2.031637372822898e-02 2.031519413522404e-02 2.031401484060572e-02 2.031283583475656e-02 2.031165712768451e-02 + 2.031047872082618e-02 2.030930060067025e-02 2.030812276414845e-02 2.030694521582938e-02 2.030576796297434e-02 + 2.030459099391277e-02 2.030341430130414e-02 2.030223789822972e-02 2.030106177803277e-02 2.029988592949474e-02 + 2.029871035725545e-02 2.029753506661443e-02 2.029636005659757e-02 2.029518531267896e-02 2.029401083596470e-02 + 2.029283663654064e-02 2.029166270589052e-02 2.029048903923464e-02 2.028931563858370e-02 2.028814250195392e-02 + 2.028696962711050e-02 2.028579701358946e-02 2.028462466440920e-02 2.028345257575578e-02 2.028228073462766e-02 + 2.028110914546667e-02 2.027993781542017e-02 2.027876674182124e-02 2.027759591671596e-02 2.027642533515473e-02 + 2.027525500323221e-02 2.027408491983729e-02 2.027291508043819e-02 2.027174548650143e-02 2.027057613494678e-02 + 2.026940701983228e-02 2.026823814087089e-02 2.026706949898955e-02 2.026590109425394e-02 2.026473292320746e-02 + 2.026356498366547e-02 2.026239727592488e-02 2.026122979922282e-02 2.026006255023894e-02 2.025889552388743e-02 + 2.025772872449768e-02 2.025656215399196e-02 2.025539580342713e-02 2.025422967119250e-02 2.025306375830951e-02 + 2.025189806183918e-02 2.025073258129647e-02 2.024956731656576e-02 2.024840226339874e-02 2.024723742127980e-02 + 2.024607279125879e-02 2.024490836776212e-02 2.024374415071052e-02 2.024258014353189e-02 2.024141633571028e-02 + 2.024025272656142e-02 2.023908932762591e-02 2.023792612793740e-02 2.023676312010299e-02 2.023560031179207e-02 + 2.023443769779265e-02 2.023327527310789e-02 2.023211304323675e-02 2.023095100708355e-02 2.022978916007167e-02 + 2.022862749919407e-02 2.022746602379288e-02 2.022630473371739e-02 2.022514362648272e-02 2.022398270121405e-02 + 2.022282195791762e-02 2.022166139402294e-02 2.022050100551405e-02 2.021934078921764e-02 2.021818074920451e-02 + 2.021702088593813e-02 2.021586119314628e-02 2.021470166428228e-02 2.021354230080554e-02 2.021238311308448e-02 + 2.021122409287018e-02 2.021006523025651e-02 2.020890652716039e-02 2.020774798484683e-02 2.020658960393083e-02 + 2.020543138529554e-02 2.020427332378045e-02 2.020311541298552e-02 2.020195765397637e-02 2.020080004744672e-02 + 2.019964259236717e-02 2.019848528642001e-02 2.019732812869024e-02 2.019617111926010e-02 2.019501425544548e-02 + 2.019385753379127e-02 2.019270095135025e-02 2.019154450793482e-02 2.019038820298517e-02 2.018923203417478e-02 + 2.018807600019563e-02 2.018692010151906e-02 2.018576433995726e-02 2.018460870891364e-02 2.018345320296787e-02 + 2.018229782843392e-02 2.018114258172615e-02 2.017998745649097e-02 2.017883245877245e-02 2.017767758620927e-02 + 2.017652283054322e-02 2.017536819223788e-02 2.017421367319040e-02 2.017305927292809e-02 2.017190498313902e-02 + 2.017075080461503e-02 2.016959674752286e-02 2.016844280049332e-02 2.016728895684716e-02 2.016613522539111e-02 + 2.016498159847723e-02 2.016382807033869e-02 2.016267465040216e-02 2.016152133310211e-02 2.016036811076429e-02 + 2.015921498985646e-02 2.015806197025070e-02 2.015690904702832e-02 2.015575621731957e-02 2.015460347791708e-02 + 2.015345082711757e-02 2.015229826996444e-02 2.015114580452791e-02 2.014999342256183e-02 2.014884112402139e-02 + 2.014768891079059e-02 2.014653678283008e-02 2.014538473229735e-02 2.014423275838842e-02 2.014308087159530e-02 + 2.014192906336537e-02 2.014077732405132e-02 2.013962565684693e-02 2.013847406112768e-02 2.013732253607323e-02 + 2.013617108558620e-02 2.013501970367529e-02 2.013386838304751e-02 2.013271713092954e-02 2.013156594450895e-02 + 2.013041481517404e-02 2.012926374836556e-02 2.012811274375330e-02 2.012696179396415e-02 2.012581089842930e-02 + 2.012466005832842e-02 2.012350927388322e-02 2.012235854139777e-02 2.012120785897021e-02 2.012005722808521e-02 + 2.011890664240422e-02 2.011775609861771e-02 2.011660560342765e-02 2.011545514995805e-02 2.011430473248947e-02 + 2.011315436328775e-02 2.011200403690588e-02 2.011085374071231e-02 2.010970347811273e-02 2.010855325123000e-02 + 2.010740305829795e-02 2.010625289543029e-02 2.010510276184403e-02 2.010395265874816e-02 2.010280258124321e-02 + 2.010165252783862e-02 2.010050250168409e-02 2.009935249835288e-02 2.009820251528310e-02 2.009705255512517e-02 + 2.009590261098061e-02 2.009475267797075e-02 2.009360276160796e-02 2.009245286068316e-02 2.009130297235736e-02 + 2.009015309860190e-02 2.008900323371492e-02 2.008785337125678e-02 2.008670351711407e-02 2.008555367122358e-02 + 2.008440382812401e-02 2.008325398588614e-02 2.008210414433437e-02 2.008095430334925e-02 2.007980445913736e-02 + 2.007865461009197e-02 2.007750475755383e-02 2.007635489836262e-02 2.007520502856765e-02 2.007405514609401e-02 + 2.007290525369839e-02 2.007175535352643e-02 2.007060544261636e-02 2.006945551378952e-02 2.006830556246986e-02 + 2.006715559358176e-02 2.006600560685722e-02 2.006485559907452e-02 2.006370557035152e-02 2.006255552017783e-02 + 2.006140544519211e-02 2.006025533608720e-02 2.005910519424486e-02 2.005795502866486e-02 2.005680483150780e-02 + 2.005565460068358e-02 2.005450434307724e-02 2.005335404752871e-02 2.005220370751987e-02 2.005105333078331e-02 + 2.004990291380246e-02 2.004875245256121e-02 2.004760195075808e-02 2.004645140541610e-02 2.004530081249103e-02 + 2.004415017386308e-02 2.004299948719255e-02 2.004184874893760e-02 2.004069796075558e-02 2.003954711861807e-02 + 2.003839621652469e-02 2.003724525928808e-02 2.003609424691447e-02 2.003494317431652e-02 2.003379204407136e-02 + 2.003264085311753e-02 2.003148959193977e-02 2.003033826577724e-02 2.002918687817827e-02 2.002803542325049e-02 + 2.002688389828578e-02 2.002573230084169e-02 2.002458062668545e-02 2.002342887779152e-02 2.002227705716231e-02 + 2.002112516254241e-02 2.001997318998642e-02 2.001882113644655e-02 2.001766900292078e-02 2.001651678857442e-02 + 2.001536448981540e-02 2.001421210083374e-02 2.001305962366636e-02 2.001190706486020e-02 2.001075441600587e-02 + 2.000960167234195e-02 2.000844883687991e-02 2.000729590520412e-02 2.000614287591466e-02 2.000498975435740e-02 + 2.000383653574291e-02 2.000268321490327e-02 2.000152979351511e-02 2.000037626872929e-02 1.999922263743778e-02 + 1.999806890154111e-02 1.999691505794393e-02 1.999576110265488e-02 1.999460703886217e-02 1.999345286480270e-02 + 1.999229857569377e-02 1.999114417297134e-02 1.998998965543275e-02 1.998883501902821e-02 1.998768026399775e-02 + 1.998652538946059e-02 1.998537039260291e-02 1.998421527483334e-02 1.998306003351848e-02 1.998190465988335e-02 + 1.998074915750420e-02 1.997959352937345e-02 1.997843776879367e-02 1.997728187765045e-02 1.997612585705249e-02 + 1.997496969649909e-02 1.997381339760593e-02 1.997265696528752e-02 1.997150039002939e-02 1.997034367059401e-02 + 1.996918681208352e-02 1.996802981226081e-02 1.996687266788810e-02 1.996571537594770e-02 1.996455793197006e-02 + 1.996340033608642e-02 1.996224259309599e-02 1.996108470119043e-02 1.995992665416334e-02 1.995876844505867e-02 + 1.995761008193637e-02 1.995645156786617e-02 1.995529288784624e-02 1.995413404457776e-02 1.995297504246996e-02 + 1.995181586885687e-02 1.995065652904149e-02 1.994949703248385e-02 1.994833736513130e-02 1.994717752162546e-02 + 1.994601750553184e-02 1.994485731663886e-02 1.994369695406686e-02 1.994253641736701e-02 1.994137570693218e-02 + 1.994021481716852e-02 1.993905373876526e-02 1.993789248152490e-02 1.993673104732284e-02 1.993556942048493e-02 + 1.993440760773439e-02 1.993324561433191e-02 1.993208342679873e-02 1.993092104568069e-02 1.992975847582151e-02 + 1.992859571315939e-02 1.992743275300710e-02 1.992626959353599e-02 1.992510623927749e-02 1.992394268911061e-02 + 1.992277893654564e-02 1.992161497535049e-02 1.992045080942924e-02 1.991928644769617e-02 1.991812187931771e-02 + 1.991695709651699e-02 1.991579210148713e-02 1.991462689658082e-02 1.991346148075462e-02 1.991229584907280e-02 + 1.991113000189043e-02 1.990996393932216e-02 1.990879765723607e-02 1.990763115454515e-02 1.990646443148474e-02 + 1.990529748687400e-02 1.990413031580006e-02 1.990296291532720e-02 1.990179529310021e-02 1.990062744303953e-02 + 1.989945935329500e-02 1.989829103342642e-02 1.989712248515872e-02 1.989595370004318e-02 1.989478467737964e-02 + 1.989361541884726e-02 1.989244592499573e-02 1.989127618925862e-02 1.989010620674421e-02 1.988893597834538e-02 + 1.988776550466197e-02 1.988659478703524e-02 1.988542382727661e-02 1.988425261506333e-02 1.988308114268849e-02 + 1.988190942098788e-02 1.988073745006194e-02 1.987956522359536e-02 1.987839274079954e-02 1.987722000000555e-02 + 1.987604699732070e-02 1.987487372670402e-02 1.987370019241589e-02 1.987252640362364e-02 1.987135234678179e-02 + 1.987017801708705e-02 1.986900342417090e-02 1.986782856130232e-02 1.986665342124566e-02 1.986547800516037e-02 + 1.986430231940191e-02 1.986312636323797e-02 1.986195012209680e-02 1.986077359858922e-02 1.985959679883774e-02 + 1.985841971608161e-02 1.985724235007767e-02 1.985606470192896e-02 1.985488676268764e-02 1.985370853173279e-02 + 1.985253001389235e-02 1.985135120589531e-02 1.985017210671596e-02 1.984899271721913e-02 1.984781303008921e-02 + 1.984663304141680e-02 1.984545275323681e-02 1.984427216416261e-02 1.984309127447186e-02 1.984191008724042e-02 + 1.984072859600846e-02 1.983954679442092e-02 1.983836468369445e-02 1.983718226650526e-02 1.983599954091759e-02 + 1.983481649574990e-02 1.983363313683907e-02 1.983244947316962e-02 1.983126549121019e-02 1.983008118452795e-02 + 1.982889655650101e-02 1.982771161407836e-02 1.982652635127155e-02 1.982534075477381e-02 1.982415483542671e-02 + 1.982296859699974e-02 1.982178202865004e-02 1.982059512679342e-02 1.981940789099672e-02 1.981822032140366e-02 + 1.981703241807743e-02 1.981584417989424e-02 1.981465560415464e-02 1.981346669171603e-02 1.981227744136961e-02 + 1.981108784415540e-02 1.980989790130036e-02 1.980870761757638e-02 1.980751698807925e-02 1.980632600934410e-02 + 1.980513468056937e-02 1.980394300171975e-02 1.980275097143216e-02 1.980155858653555e-02 1.980036584235624e-02 + 1.979917273943820e-02 1.979797928262491e-02 1.979678546489206e-02 1.979559128379798e-02 1.979439674657348e-02 + 1.979320184217468e-02 1.979200656369760e-02 1.979081092352834e-02 1.978961491694981e-02 1.978841853542797e-02 + 1.978722178317891e-02 1.978602465925507e-02 1.978482715855289e-02 1.978362927697639e-02 1.978243101628911e-02 + 1.978123238058121e-02 1.978003336668686e-02 1.977883396860304e-02 1.977763418131442e-02 1.977643400902304e-02 + 1.977523345232920e-02 1.977403250607500e-02 1.977283117205557e-02 1.977162944865208e-02 1.977042732702634e-02 + 1.976922480613855e-02 1.976802188997964e-02 1.976681858355301e-02 1.976561487769950e-02 1.976441076369096e-02 + 1.976320624890566e-02 1.976200133147697e-02 1.976079600616600e-02 1.975959027757971e-02 1.975838414138116e-02 + 1.975717758909272e-02 1.975597062600439e-02 1.975476325369590e-02 1.975355546738499e-02 1.975234726242962e-02 + 1.975113863825908e-02 1.974992959762522e-02 1.974872013640206e-02 1.974751025163228e-02 1.974629994489470e-02 + 1.974508921425132e-02 1.974387805573186e-02 1.974266646519683e-02 1.974145444319864e-02 1.974024199150465e-02 + 1.973902910920840e-02 1.973781579519036e-02 1.973660204598839e-02 1.973538785240977e-02 1.973417321684443e-02 + 1.973295814730416e-02 1.973174263781577e-02 1.973052668253849e-02 1.972931027913797e-02 1.972809342747564e-02 + 1.972687612827085e-02 1.972565838187941e-02 1.972444018482310e-02 1.972322153363352e-02 1.972200242687443e-02 + 1.972078286440720e-02 1.971956284541047e-02 1.971834236691286e-02 1.971712142485657e-02 1.971590001741145e-02 + 1.971467814826898e-02 1.971345581852119e-02 1.971223302479186e-02 1.971100975804211e-02 1.970978601823674e-02 + 1.970856181065497e-02 1.970733713228995e-02 1.970611197806177e-02 1.970488634450282e-02 1.970366023582840e-02 + 1.970243364879734e-02 1.970120657299705e-02 1.969997901837739e-02 1.969875098677333e-02 1.969752246217473e-02 + 1.969629345274012e-02 1.969506396226801e-02 1.969383397141272e-02 1.969260348756574e-02 1.969137252109090e-02 + 1.969014105730648e-02 1.968890909233832e-02 1.968767662961491e-02 1.968644366805134e-02 1.968521020635475e-02 + 1.968397624286150e-02 1.968274177331172e-02 1.968150679588088e-02 1.968027131148579e-02 1.967903532058098e-02 + 1.967779882218197e-02 1.967656181292412e-02 1.967532428489620e-02 1.967408623811289e-02 1.967284768294825e-02 + 1.967160860971293e-02 1.967036900987211e-02 1.966912889102269e-02 1.966788825153749e-02 1.966664708600774e-02 + 1.966540539310703e-02 1.966416317292449e-02 1.966292042476060e-02 1.966167714455673e-02 1.966043333167102e-02 + 1.965918898702837e-02 1.965794410650064e-02 1.965669868705162e-02 1.965545272765306e-02 1.965420622710374e-02 + 1.965295918609461e-02 1.965171160585919e-02 1.965046347855766e-02 1.964921480087875e-02 1.964796557872257e-02 + 1.964671580769246e-02 1.964546548231519e-02 1.964421460325605e-02 1.964296317129598e-02 1.964171118580111e-02 + 1.964045864365522e-02 1.963920554157133e-02 1.963795187629582e-02 1.963669764477085e-02 1.963544284945441e-02 + 1.963418749362842e-02 1.963293156932153e-02 1.963167507295046e-02 1.963041800662418e-02 1.962916036936736e-02 + 1.962790216073956e-02 1.962664338014056e-02 1.962538401760687e-02 1.962412407160046e-02 1.962286355381917e-02 + 1.962160245501161e-02 1.962034076606272e-02 1.961907849332115e-02 1.961781563715828e-02 1.961655219371613e-02 + 1.961528815879130e-02 1.961402353224150e-02 1.961275831461461e-02 1.961149250160691e-02 1.961022609250104e-02 + 1.960895908768241e-02 1.960769148013132e-02 1.960642326897369e-02 1.960515445887448e-02 1.960388504699325e-02 + 1.960261502901453e-02 1.960134440209794e-02 1.960007316755673e-02 1.959880132269796e-02 1.959752885956289e-02 + 1.959625578572781e-02 1.959498210471557e-02 1.959370780282661e-02 1.959243287776576e-02 1.959115733236078e-02 + 1.958988116575855e-02 1.958860437570835e-02 1.958732696070351e-02 1.958604892230215e-02 1.958477025538254e-02 + 1.958349095293616e-02 1.958221102005211e-02 1.958093045820349e-02 1.957964926225915e-02 1.957836742427244e-02 + 1.957708494595253e-02 1.957580183693370e-02 1.957451808573694e-02 1.957323368588814e-02 1.957194864588927e-02 + 1.957066295908808e-02 1.956937661864716e-02 1.956808962863577e-02 1.956680198857452e-02 1.956551369740821e-02 + 1.956422475810978e-02 1.956293516289206e-02 1.956164490198652e-02 1.956035397935251e-02 1.955906239928264e-02 + 1.955777016187055e-02 1.955647725858155e-02 1.955518368630142e-02 1.955388944730695e-02 1.955259453790914e-02 + 1.955129895574477e-02 1.955000270138056e-02 1.954870577278503e-02 1.954740816848287e-02 1.954610988870274e-02 + 1.954481093111385e-02 1.954351129226784e-02 1.954221096901902e-02 1.954090996078360e-02 1.953960826724446e-02 + 1.953830588603245e-02 1.953700281656794e-02 1.953569905855491e-02 1.953439460897686e-02 1.953308946443935e-02 + 1.953178362233442e-02 1.953047708245082e-02 1.952916984426731e-02 1.952786190592496e-02 1.952655326324738e-02 + 1.952524391408689e-02 1.952393385929222e-02 1.952262309949111e-02 1.952131163370209e-02 1.951999945844595e-02 + 1.951868656751035e-02 1.951737295829730e-02 1.951605863555755e-02 1.951474359789877e-02 1.951342784097203e-02 + 1.951211136184995e-02 1.951079415956861e-02 1.950947623396647e-02 1.950815758387342e-02 1.950683820574165e-02 + 1.950551809587482e-02 1.950419725560715e-02 1.950287568354725e-02 1.950155337574423e-02 1.950023033242808e-02 + 1.949890655251627e-02 1.949758203322258e-02 1.949625677745909e-02 1.949493078034667e-02 1.949360402739089e-02 + 1.949227653112452e-02 1.949094829757290e-02 1.948961930480046e-02 1.948828955781861e-02 1.948695906691206e-02 + 1.948562782150981e-02 1.948429581598615e-02 1.948296304982478e-02 1.948162952319633e-02 1.948029523591830e-02 + 1.947896018726217e-02 1.947762437581102e-02 1.947628779922486e-02 1.947495045397724e-02 1.947361233489661e-02 + 1.947227344348770e-02 1.947093378593678e-02 1.946959335022997e-02 1.946825212971076e-02 1.946691013283964e-02 + 1.946556736109183e-02 1.946422381089845e-02 1.946287947598024e-02 1.946153435147304e-02 1.946018843640089e-02 + 1.945884173551620e-02 1.945749424593349e-02 1.945614596164208e-02 1.945479688244431e-02 1.945344700980195e-02 + 1.945209634356683e-02 1.945074487666461e-02 1.944939260492236e-02 1.944803952905332e-02 1.944668565282712e-02 + 1.944533097303948e-02 1.944397548026850e-02 1.944261917903520e-02 1.944126207147254e-02 1.943990414971487e-02 + 1.943854540610747e-02 1.943718584222317e-02 1.943582547177293e-02 1.943446428245481e-02 1.943310226105812e-02 + 1.943173942068859e-02 1.943037575924362e-02 1.942901126749138e-02 1.942764594793762e-02 1.942627979717840e-02 + 1.942491280913776e-02 1.942354498868186e-02 1.942217633546996e-02 1.942080684436220e-02 1.941943651933332e-02 + 1.941806535493775e-02 1.941669333695301e-02 1.941532047644210e-02 1.941394677715704e-02 1.941257222315028e-02 + 1.941119681542690e-02 1.940982056035791e-02 1.940844345901757e-02 1.940706550055424e-02 1.940568667678698e-02 + 1.940430699663802e-02 1.940292645883611e-02 1.940154505765652e-02 1.940016279578962e-02 1.939877966977487e-02 + 1.939739567223053e-02 1.939601080219835e-02 1.939462506233509e-02 1.939323845462366e-02 1.939185096971125e-02 + 1.939046260516801e-02 1.938907336764642e-02 1.938768325184633e-02 1.938629225021856e-02 1.938490035911401e-02 + 1.938350758330235e-02 1.938211392651081e-02 1.938071938447496e-02 1.937932394922459e-02 1.937792761695239e-02 + 1.937653039473651e-02 1.937513227779157e-02 1.937373325789699e-02 1.937233333934693e-02 1.937093252080456e-02 + 1.936953079702195e-02 1.936812816928827e-02 1.936672463690015e-02 1.936532019607867e-02 1.936391484345597e-02 + 1.936250857586552e-02 1.936110139138094e-02 1.935969329410197e-02 1.935828428412852e-02 1.935687435366041e-02 + 1.935546349795341e-02 1.935405171682407e-02 1.935263901452006e-02 1.935122538845629e-02 1.934981083240821e-02 + 1.934839534117787e-02 1.934697891910190e-02 1.934556156924906e-02 1.934414327695751e-02 1.934272404361874e-02 + 1.934130387854031e-02 1.933988276959641e-02 1.933846071416343e-02 1.933703771882020e-02 1.933561377409585e-02 + 1.933418887831357e-02 1.933276303945045e-02 1.933133624375953e-02 1.932990848653697e-02 1.932847978247962e-02 + 1.932705012296452e-02 1.932561949662077e-02 1.932418790536504e-02 1.932275535526071e-02 1.932132184669807e-02 + 1.931988736608416e-02 1.931845191123332e-02 1.931701548648173e-02 1.931557809132799e-02 1.931413972218449e-02 + 1.931270037603072e-02 1.931126005688787e-02 1.930981875761609e-02 1.930837646527647e-02 1.930693319154590e-02 + 1.930548893938918e-02 1.930404369700001e-02 1.930259746628386e-02 1.930115024647330e-02 1.929970202824377e-02 + 1.929825281461415e-02 1.929680260792617e-02 1.929535140092010e-02 1.929389919235001e-02 1.929244598266550e-02 + 1.929099176842190e-02 1.928953654639375e-02 1.928808031414528e-02 1.928662307035359e-02 1.928516481711372e-02 + 1.928370555611205e-02 1.928224527966380e-02 1.928078398206115e-02 1.927932166173262e-02 1.927785831899656e-02 + 1.927639395364510e-02 1.927492856464996e-02 1.927346215243780e-02 1.927199471282116e-02 1.927052623652251e-02 + 1.926905672766994e-02 1.926758618873705e-02 1.926611461056382e-02 1.926464199150991e-02 1.926316833245443e-02 + 1.926169363057714e-02 1.926021788634381e-02 1.925874109903830e-02 1.925726325940621e-02 1.925578436860509e-02 + 1.925430443199749e-02 1.925282343948819e-02 1.925134138889128e-02 1.924985828498051e-02 1.924837411847957e-02 + 1.924688888599618e-02 1.924540259377309e-02 1.924391524090012e-02 1.924242682077230e-02 1.924093732460676e-02 + 1.923944675829762e-02 1.923795512510602e-02 1.923646241448938e-02 1.923496862521413e-02 1.923347375911634e-02 + 1.923197781292445e-02 1.923048078180134e-02 1.922898266296426e-02 1.922748346006174e-02 1.922598317069195e-02 + 1.922448178990142e-02 1.922297932164773e-02 1.922147575963824e-02 1.921997109174737e-02 1.921846532805457e-02 + 1.921695846861228e-02 1.921545049993734e-02 1.921394143207274e-02 1.921243126559395e-02 1.921091998083786e-02 + 1.920940758472120e-02 1.920789408374423e-02 1.920637946562360e-02 1.920486373146851e-02 1.920334688393281e-02 + 1.920182891329169e-02 1.920030981699324e-02 1.919878959725658e-02 1.919726825432456e-02 1.919574578635056e-02 + 1.919422218928470e-02 1.919269745661605e-02 1.919117158884151e-02 1.918964459045353e-02 1.918811645370936e-02 + 1.918658717454346e-02 1.918505675553962e-02 1.918352519296369e-02 1.918199248296462e-02 1.918045862469436e-02 + 1.917892361805418e-02 1.917738746182788e-02 1.917585015265352e-02 1.917431168820606e-02 1.917277206550804e-02 + 1.917123127946213e-02 1.916968933132487e-02 1.916814622316750e-02 1.916660194885779e-02 1.916505650873668e-02 + 1.916350990423480e-02 1.916196212155291e-02 1.916041316033273e-02 1.915886303062994e-02 1.915731172194125e-02 + 1.915575922930148e-02 1.915420555876758e-02 1.915265070860661e-02 1.915109467332810e-02 1.914953744666585e-02 + 1.914797902645569e-02 1.914641941412443e-02 1.914485861314037e-02 1.914329661713828e-02 1.914173341932142e-02 + 1.914016902223032e-02 1.913860342379879e-02 1.913703662029905e-02 1.913546861279183e-02 1.913389939805644e-02 + 1.913232897075573e-02 1.913075733118505e-02 1.912918447844714e-02 1.912761040908805e-02 1.912603511839811e-02 + 1.912445860715432e-02 1.912288088009771e-02 1.912130192853472e-02 1.911972174626816e-02 1.911814033569584e-02 + 1.911655769224527e-02 1.911497381452394e-02 1.911338870990516e-02 1.911180236957772e-02 1.911021478317005e-02 + 1.910862595492130e-02 1.910703588697045e-02 1.910544457683553e-02 1.910385201685182e-02 1.910225820527016e-02 + 1.910066314375077e-02 1.909906682830796e-02 1.909746925477876e-02 1.909587042200599e-02 1.909427033688354e-02 + 1.909266899402551e-02 1.909106637643193e-02 1.908946249114346e-02 1.908785734491775e-02 1.908625093213804e-02 + 1.908464324204344e-02 1.908303427175084e-02 1.908142403234494e-02 1.907981251534393e-02 1.907819971100440e-02 + 1.907658562789714e-02 1.907497026158614e-02 1.907335360333112e-02 1.907173565762024e-02 1.907011642370295e-02 + 1.906849589616872e-02 1.906687407274958e-02 1.906525095073851e-02 1.906362652703246e-02 1.906200080112851e-02 + 1.906037377260159e-02 1.905874543999789e-02 1.905711580005939e-02 1.905548484883143e-02 1.905385258297056e-02 + 1.905221900422594e-02 1.905058411108648e-02 1.904894789413228e-02 1.904731035325132e-02 1.904567149183364e-02 + 1.904403130952197e-02 1.904238980136186e-02 1.904074696113758e-02 1.903910278612417e-02 1.903745727544392e-02 + 1.903581042868199e-02 1.903416224385271e-02 1.903251272055347e-02 1.903086185871027e-02 1.902920965236104e-02 + 1.902755609551852e-02 1.902590118543579e-02 1.902424492713456e-02 1.902258731926820e-02 1.902092835050054e-02 + 1.901926802409253e-02 1.901760634215130e-02 1.901594329530476e-02 1.901427888303375e-02 1.901261310655987e-02 + 1.901094596056572e-02 1.900927744335199e-02 1.900760755425454e-02 1.900593628837979e-02 1.900426364429972e-02 + 1.900258962310978e-02 1.900091422355684e-02 1.899923743835855e-02 1.899755925950979e-02 1.899587969656637e-02 + 1.899419874741247e-02 1.899251639645128e-02 1.899083265299966e-02 1.898914752052511e-02 1.898746098477085e-02 + 1.898577304386013e-02 1.898408369969058e-02 1.898239295076986e-02 1.898070079269564e-02 1.897900722255288e-02 + 1.897731224261929e-02 1.897561584849886e-02 1.897391803334516e-02 1.897221879605241e-02 1.897051814026927e-02 + 1.896881606767167e-02 1.896711256470153e-02 1.896540762798833e-02 1.896370126437186e-02 1.896199347193909e-02 + 1.896028424413336e-02 1.895857357350164e-02 1.895686146124061e-02 1.895514791045918e-02 1.895343292131205e-02 + 1.895171648302300e-02 1.894999858923527e-02 1.894827924721451e-02 1.894655845419708e-02 1.894483620522033e-02 + 1.894311250187257e-02 1.894138733732357e-02 1.893966070463249e-02 1.893793261072514e-02 1.893620305335951e-02 + 1.893447202418282e-02 1.893273952309081e-02 1.893100555094376e-02 1.892927010627177e-02 1.892753318110494e-02 + 1.892579477108063e-02 1.892405487784487e-02 1.892231350329449e-02 1.892057064453369e-02 1.891882629307712e-02 + 1.891708044683251e-02 1.891533310610873e-02 1.891358427035544e-02 1.891183393696100e-02 1.891008210291091e-02 + 1.890832876617924e-02 1.890657392211156e-02 1.890481756749361e-02 1.890305970669826e-02 1.890130033664154e-02 + 1.889953944876527e-02 1.889777703845312e-02 1.889601310905792e-02 1.889424766560776e-02 1.889248069356991e-02 + 1.889071219005931e-02 1.888894216610460e-02 1.888717060771540e-02 1.888539750970531e-02 1.888362288621832e-02 + 1.888184672351093e-02 1.888006901097801e-02 1.887828976119468e-02 1.887650896887177e-02 1.887472662448569e-02 + 1.887294273026847e-02 1.887115728373587e-02 1.886937028132879e-02 1.886758172601296e-02 1.886579161241305e-02 + 1.886399993232671e-02 1.886220669095003e-02 1.886041188581822e-02 1.885861550746470e-02 1.885681755698847e-02 + 1.885501803485419e-02 1.885321693733238e-02 1.885141425906957e-02 1.884960999916156e-02 1.884780416185130e-02 + 1.884599674103886e-02 1.884418772927479e-02 1.884237712445391e-02 1.884056492700234e-02 1.883875113673901e-02 + 1.883693574995443e-02 1.883511876102816e-02 1.883330016667216e-02 1.883147997149076e-02 1.882965817385698e-02 + 1.882783476601560e-02 1.882600973926643e-02 1.882418309568715e-02 1.882235484340025e-02 1.882052497417560e-02 + 1.881869348031539e-02 1.881686035975185e-02 1.881502561164409e-02 1.881318923741505e-02 1.881135123913003e-02 + 1.880951160558249e-02 1.880767032900146e-02 1.880582741534564e-02 1.880398286136111e-02 1.880213666245483e-02 + 1.880028882149621e-02 1.879843933370182e-02 1.879658819228311e-02 1.879473539862031e-02 1.879288094991765e-02 + 1.879102484097325e-02 1.878916707209326e-02 1.878730764191372e-02 1.878544654683108e-02 1.878358378459472e-02 + 1.878171935183507e-02 1.877985324430765e-02 1.877798546179407e-02 1.877611600228067e-02 1.877424486050507e-02 + 1.877237203778229e-02 1.877049753324887e-02 1.876862133863330e-02 1.876674345293673e-02 1.876486387617420e-02 + 1.876298260257535e-02 1.876109963059111e-02 1.875921496034764e-02 1.875732858848502e-02 1.875544051216185e-02 + 1.875355072885378e-02 1.875165923449702e-02 1.874976602623304e-02 1.874787110336161e-02 1.874597446797304e-02 + 1.874407611425766e-02 1.874217603022874e-02 1.874027422146802e-02 1.873837068906284e-02 1.873646542198345e-02 + 1.873455842189881e-02 1.873264969164939e-02 1.873073922656172e-02 1.872882701964194e-02 1.872691306648714e-02 + 1.872499736923527e-02 1.872307992509612e-02 1.872116072949887e-02 1.871923978227258e-02 1.871731708186487e-02 + 1.871539262387551e-02 1.871346640021372e-02 1.871153841041527e-02 1.870960865979342e-02 1.870767714578883e-02 + 1.870574386089293e-02 1.870380879685916e-02 1.870187195798613e-02 1.869993334446320e-02 1.869799294696750e-02 + 1.869605076691687e-02 1.869410680376838e-02 1.869216104730458e-02 1.869021349836844e-02 1.868826416022470e-02 + 1.868631302853863e-02 1.868436009644664e-02 1.868240535897862e-02 1.868044881818047e-02 1.867849047172725e-02 + 1.867653031474529e-02 1.867456834731333e-02 1.867260456736053e-02 1.867063897034608e-02 1.866867155351236e-02 + 1.866670231459311e-02 1.866473125095620e-02 1.866275835809391e-02 1.866078363356833e-02 1.865880707775009e-02 + 1.865682868564128e-02 1.865484845476688e-02 1.865286638889887e-02 1.865088247751579e-02 1.864889671303901e-02 + 1.864690910747520e-02 1.864491965354244e-02 1.864292833855512e-02 1.864093516946379e-02 1.863894014384585e-02 + 1.863694325319922e-02 1.863494449952898e-02 1.863294388193027e-02 1.863094139526787e-02 1.862893703607748e-02 + 1.862693080034535e-02 1.862492268387857e-02 1.862291268732941e-02 1.862090081042848e-02 1.861888704957227e-02 + 1.861687140151818e-02 1.861485386231105e-02 1.861283442704270e-02 1.861081309610335e-02 1.860878986806025e-02 + 1.860676473338590e-02 1.860473769529663e-02 1.860270875778476e-02 1.860067790615180e-02 1.859864513789995e-02 + 1.859661045850656e-02 1.859457386260990e-02 1.859253534675110e-02 1.859049490946049e-02 1.858845254228221e-02 + 1.858640824383296e-02 1.858436201966219e-02 1.858231386031445e-02 1.858026376148910e-02 1.857821173011040e-02 + 1.857615775674864e-02 1.857410183289329e-02 1.857204396224591e-02 1.856998414158087e-02 1.856792236630606e-02 + 1.856585863699762e-02 1.856379295088432e-02 1.856172530348682e-02 1.855965569223371e-02 1.855758411493529e-02 + 1.855551056872843e-02 1.855343504862798e-02 1.855135755357239e-02 1.854927808391809e-02 1.854719662999937e-02 + 1.854511318947389e-02 1.854302776884543e-02 1.854094036342127e-02 1.853885096469986e-02 1.853675956540365e-02 + 1.853466616668727e-02 1.853257077183708e-02 1.853047338096206e-02 1.852837398473379e-02 1.852627257507170e-02 + 1.852416915520061e-02 1.852206372211816e-02 1.851995627104085e-02 1.851784680396669e-02 1.851573531468755e-02 + 1.851362179508880e-02 1.851150625260910e-02 1.850938868433302e-02 1.850726907790290e-02 1.850514743267316e-02 + 1.850302375022463e-02 1.850089802974987e-02 1.849877026321467e-02 1.849664044568886e-02 1.849450857919205e-02 + 1.849237466328984e-02 1.849023869225825e-02 1.848810065567833e-02 1.848596056072587e-02 1.848381841125062e-02 + 1.848167418759208e-02 1.847952788817062e-02 1.847737952020788e-02 1.847522908039946e-02 1.847307656165976e-02 + 1.847092195736722e-02 1.846876526733367e-02 1.846660649126623e-02 1.846444562782898e-02 1.846228267641075e-02 + 1.846011763022634e-02 1.845795047822359e-02 1.845578122357826e-02 1.845360986824314e-02 1.845143640646702e-02 + 1.844926083412144e-02 1.844708314829677e-02 1.844490334652741e-02 1.844272142526039e-02 1.844053738232335e-02 + 1.843835121884711e-02 1.843616292877729e-02 1.843397250473794e-02 1.843177994759022e-02 1.842958525561723e-02 + 1.842738842512387e-02 1.842518945510765e-02 1.842298833954339e-02 1.842078507029563e-02 1.841857965103055e-02 + 1.841637208298309e-02 1.841416236088061e-02 1.841195047731196e-02 1.840973642948215e-02 1.840752022011446e-02 + 1.840530184216091e-02 1.840308128892246e-02 1.840085856103635e-02 1.839863365911139e-02 1.839640658087383e-02 + 1.839417731924000e-02 1.839194587083986e-02 1.838971223370895e-02 1.838747640300020e-02 1.838523837692452e-02 + 1.838299815548432e-02 1.838075573582631e-02 1.837851111106092e-02 1.837626427462707e-02 1.837401523350234e-02 + 1.837176398539980e-02 1.836951051641877e-02 1.836725482529124e-02 1.836499691387402e-02 1.836273678151691e-02 + 1.836047442118306e-02 1.835820982858270e-02 1.835594300692513e-02 1.835367394977665e-02 1.835140264983480e-02 + 1.834912910825698e-02 1.834685332362546e-02 1.834457529066184e-02 1.834229500068380e-02 1.834001245612868e-02 + 1.833772766191195e-02 1.833544060380268e-02 1.833315127769170e-02 1.833085968975407e-02 1.832856583633842e-02 + 1.832626971106521e-02 1.832397130817964e-02 1.832167062581619e-02 1.831936766045366e-02 1.831706240632338e-02 + 1.831475486820015e-02 1.831244504576387e-02 1.831013292472488e-02 1.830781850356614e-02 1.830550178468002e-02 + 1.830318276421879e-02 1.830086143845657e-02 1.829853780375753e-02 1.829621185558813e-02 1.829388359300937e-02 + 1.829155301569956e-02 1.828922011662799e-02 1.828688489153528e-02 1.828454733892483e-02 1.828220745351499e-02 + 1.827986523367206e-02 1.827752068069898e-02 1.827517378500067e-02 1.827282454323407e-02 1.827047296291425e-02 + 1.826811903643735e-02 1.826576275326505e-02 1.826340410954280e-02 1.826104310998728e-02 1.825867975496676e-02 + 1.825631402943589e-02 1.825394593365713e-02 1.825157547349511e-02 1.824920264235266e-02 1.824682743095013e-02 + 1.824444983334214e-02 1.824206985531418e-02 1.823968749396920e-02 1.823730273947125e-02 1.823491559405069e-02 + 1.823252605635143e-02 1.823013411851380e-02 1.822773977727079e-02 1.822534302885856e-02 1.822294386817581e-02 + 1.822054229933361e-02 1.821813832218229e-02 1.821573192447362e-02 1.821332310276354e-02 1.821091185568656e-02 + 1.820849817689734e-02 1.820608206836350e-02 1.820366353310689e-02 1.820124256311412e-02 1.819881915016099e-02 + 1.819639328969794e-02 1.819396498477247e-02 1.819153423068764e-02 1.818910101812068e-02 1.818666535246774e-02 + 1.818422723286477e-02 1.818178664914423e-02 1.817934360000525e-02 1.817689808189780e-02 1.817445008627356e-02 + 1.817199961756547e-02 1.816954667558178e-02 1.816709124568389e-02 1.816463332917677e-02 1.816217292950077e-02 + 1.815971003769815e-02 1.815724465123547e-02 1.815477676809149e-02 1.815230637650250e-02 1.814983348051392e-02 + 1.814735808823705e-02 1.814488018072306e-02 1.814239975267995e-02 1.813991681262074e-02 1.813743135508509e-02 + 1.813494337086823e-02 1.813245285281114e-02 1.812995980445686e-02 1.812746422731492e-02 1.812496611573551e-02 + 1.812246546481565e-02 1.811996226848969e-02 1.811745651920204e-02 1.811494821957559e-02 1.811243737133842e-02 + 1.810992396481434e-02 1.810740799805441e-02 1.810488947142559e-02 1.810236837745802e-02 1.809984471224923e-02 + 1.809731847419077e-02 1.809478965788605e-02 1.809225826197647e-02 1.808972428730369e-02 1.808718772623545e-02 + 1.808464857219165e-02 1.808210682315950e-02 1.807956248210254e-02 1.807701554512131e-02 1.807446599893149e-02 + 1.807191384222250e-02 1.806935907649996e-02 1.806680169977935e-02 1.806424171112906e-02 1.806167910639137e-02 + 1.805911387430984e-02 1.805654601234490e-02 1.805397552118165e-02 1.805140239539148e-02 1.804882663464111e-02 + 1.804624823872755e-02 1.804366719439020e-02 1.804108350087335e-02 1.803849716547347e-02 1.803590817366155e-02 + 1.803331652090480e-02 1.803072221546651e-02 1.802812524400898e-02 1.802552559998909e-02 1.802292329257977e-02 + 1.802031831251088e-02 1.801771065083283e-02 1.801510031065072e-02 1.801248728509480e-02 1.800987156794499e-02 + 1.800725316456288e-02 1.800463207196059e-02 1.800200828229563e-02 1.799938179038418e-02 1.799675259135415e-02 + 1.799412068157979e-02 1.799148606152016e-02 1.798884872978088e-02 1.798620868169797e-02 1.798356590941466e-02 + 1.798092041139825e-02 1.797827219073602e-02 1.797562123473000e-02 1.797296753674024e-02 1.797031110360818e-02 + 1.796765193280976e-02 1.796499001786419e-02 1.796232535287627e-02 1.795965793501132e-02 1.795698776183851e-02 + 1.795431482887613e-02 1.795163913285315e-02 1.794896067070983e-02 1.794627943785036e-02 1.794359543174794e-02 + 1.794090865000600e-02 1.793821908548673e-02 1.793552673496832e-02 1.793283159877326e-02 1.793013367385930e-02 + 1.792743295577707e-02 1.792472944026945e-02 1.792202312682011e-02 1.791931400976357e-02 1.791660207728341e-02 + 1.791388733234035e-02 1.791116977642004e-02 1.790844939977351e-02 1.790572620127331e-02 1.790300018053203e-02 + 1.790027132960331e-02 1.789753964610457e-02 1.789480512776976e-02 1.789206776371137e-02 1.788932755546883e-02 + 1.788658450796398e-02 1.788383860557862e-02 1.788108984645815e-02 1.787833823870088e-02 1.787558376650758e-02 + 1.787282642238153e-02 1.787006621288861e-02 1.786730313584615e-02 1.786453718506033e-02 1.786176835331611e-02 + 1.785899663566110e-02 1.785622203220682e-02 1.785344454733639e-02 1.785066416506327e-02 1.784788087479271e-02 + 1.784509469481547e-02 1.784230561688990e-02 1.783951362363962e-02 1.783671871969004e-02 1.783392090351773e-02 + 1.783112016693977e-02 1.782831650359620e-02 1.782550991644932e-02 1.782270041052123e-02 1.781988796773664e-02 + 1.781707258188517e-02 1.781425426228424e-02 1.781143299909701e-02 1.780860878344276e-02 1.780578161636334e-02 + 1.780295150019453e-02 1.780011843142990e-02 1.779728239750767e-02 1.779444339320670e-02 1.779160141853593e-02 + 1.778875647528820e-02 1.778590855799184e-02 1.778305765851556e-02 1.778020377358821e-02 1.777734690358035e-02 + 1.777448704738365e-02 1.777162419310320e-02 1.776875833746895e-02 1.776588948369731e-02 1.776301762263940e-02 + 1.776014274927566e-02 1.775726486578331e-02 1.775438397030816e-02 1.775150005486545e-02 1.774861310790110e-02 + 1.774572313526677e-02 1.774283013776283e-02 1.773993409898065e-02 1.773703502220879e-02 1.773413291089222e-02 + 1.773122774923129e-02 1.772831953604024e-02 1.772540827370780e-02 1.772249394894422e-02 1.771957656009896e-02 + 1.771665611194296e-02 1.771373259698992e-02 1.771080600888477e-02 1.770787634473108e-02 1.770494360249459e-02 + 1.770200777818149e-02 1.769906886558849e-02 1.769612685929023e-02 1.769318175770428e-02 1.769023356261796e-02 + 1.768728226707501e-02 1.768432786370409e-02 1.768137035050212e-02 1.767840972761326e-02 1.767544598996190e-02 + 1.767247912224100e-02 1.766950912887429e-02 1.766653601772543e-02 1.766355977437013e-02 1.766058039164660e-02 + 1.765759786981226e-02 1.765461220736955e-02 1.765162339764906e-02 1.764863143247870e-02 1.764563631444012e-02 + 1.764263804044564e-02 1.763963660052613e-02 1.763663199590508e-02 1.763362422648862e-02 1.763061328532627e-02 + 1.762759916389677e-02 1.762458185742205e-02 1.762156136756127e-02 1.761853769290762e-02 1.761551082691653e-02 + 1.761248075761478e-02 1.760944748669641e-02 1.760641101894919e-02 1.760337134551661e-02 1.760032845807722e-02 + 1.759728235211478e-02 1.759423302856655e-02 1.759118048266074e-02 1.758812470690578e-02 1.758506570645847e-02 + 1.758200347417691e-02 1.757893799151254e-02 1.757586926700291e-02 1.757279730534286e-02 1.756972209521438e-02 + 1.756664362962799e-02 1.756356190543487e-02 1.756047692143249e-02 1.755738866974527e-02 1.755429714394244e-02 + 1.755120234663686e-02 1.754810427470094e-02 1.754500292288027e-02 1.754189829041229e-02 1.753879037098419e-02 + 1.753567915477636e-02 1.753256463576890e-02 1.752944681640228e-02 1.752632570156945e-02 1.752320127895599e-02 + 1.752007354011609e-02 1.751694248500407e-02 1.751380811099548e-02 1.751067041466748e-02 1.750752939229762e-02 + 1.750438503712632e-02 1.750123734468025e-02 1.749808631552286e-02 1.749493194526630e-02 1.749177422703599e-02 + 1.748861315463852e-02 1.748544872591071e-02 1.748228094036503e-02 1.747910979560325e-02 1.747593528635296e-02 + 1.747275740493088e-02 1.746957614261004e-02 1.746639150171011e-02 1.746320348827029e-02 1.746001208402579e-02 + 1.745681728232032e-02 1.745361909228664e-02 1.745041750587895e-02 1.744721251527593e-02 1.744400411995098e-02 + 1.744079231626219e-02 1.743757709612158e-02 1.743435844889677e-02 1.743113638300998e-02 1.742791090294012e-02 + 1.742468198827393e-02 1.742144963687445e-02 1.741821385208018e-02 1.741497462017237e-02 1.741173194001650e-02 + 1.740848581625378e-02 1.740523623716524e-02 1.740198319673262e-02 1.739872669626729e-02 1.739546673433575e-02 + 1.739220330474240e-02 1.738893639777237e-02 1.738566600801745e-02 1.738239213410604e-02 1.737911477739739e-02 + 1.737583393441487e-02 1.737254959973500e-02 1.736926176792087e-02 1.736597043319887e-02 1.736267559029083e-02 + 1.735937723525189e-02 1.735607536431420e-02 1.735276997535949e-02 1.734946106967137e-02 1.734614863942214e-02 + 1.734283267462293e-02 1.733951317984790e-02 1.733619014933173e-02 1.733286356952035e-02 1.732953344236944e-02 + 1.732619976822115e-02 1.732286254123125e-02 1.731952175476255e-02 1.731617740506982e-02 1.731282949118149e-02 + 1.730947800429541e-02 1.730612293897103e-02 1.730276429900506e-02 1.729940207772190e-02 1.729603626710180e-02 + 1.729266686687025e-02 1.728929387127552e-02 1.728591727431661e-02 1.728253707811547e-02 1.727915327486350e-02 + 1.727576585445017e-02 1.727237482415143e-02 1.726898017713387e-02 1.726558189725253e-02 1.726217999255776e-02 + 1.725877446141184e-02 1.725536528836806e-02 1.725195247427305e-02 1.724853602088567e-02 1.724511592318061e-02 + 1.724169217016580e-02 1.723826475637563e-02 1.723483368674653e-02 1.723139894995541e-02 1.722796053633534e-02 + 1.722451845482723e-02 1.722107270070567e-02 1.721762326419149e-02 1.721417014587169e-02 1.721071333868621e-02 + 1.720725283251134e-02 1.720378862838028e-02 1.720032072298445e-02 1.719684910908383e-02 1.719337378669194e-02 + 1.718989475327181e-02 1.718641200187306e-02 1.718292552719872e-02 1.717943532374793e-02 1.717594138625576e-02 + 1.717244371734551e-02 1.716894231509765e-02 1.716543716617480e-02 1.716192826455456e-02 1.715841561099909e-02 + 1.715489920993168e-02 1.715137904713604e-02 1.714785510917266e-02 1.714432741097788e-02 1.714079594608009e-02 + 1.713726069602739e-02 1.713372166332687e-02 1.713017885016558e-02 1.712663225240283e-02 1.712308185705881e-02 + 1.711952765873538e-02 1.711596966109396e-02 1.711240786053498e-02 1.710884225051524e-02 1.710527282476134e-02 + 1.710169958307061e-02 1.709812252022495e-02 1.709454162136748e-02 1.709095688985418e-02 1.708736832996113e-02 + 1.708377593024533e-02 1.708017968752960e-02 1.707657960032946e-02 1.707297565703870e-02 1.706936785401023e-02 + 1.706575619189593e-02 1.706214066346443e-02 1.705852126552140e-02 1.705489799818787e-02 1.705127085519305e-02 + 1.704763983091843e-02 1.704400492089210e-02 1.704036611449886e-02 1.703672340943711e-02 1.703307681394708e-02 + 1.702942631772786e-02 1.702577190966809e-02 1.702211358937508e-02 1.701845135582294e-02 1.701478520463906e-02 + 1.701111512687454e-02 1.700744111902223e-02 1.700376317991698e-02 1.700008130526762e-02 1.699639548886451e-02 + 1.699270572517141e-02 1.698901201362202e-02 1.698531434790372e-02 1.698161271901581e-02 1.697790713038581e-02 + 1.697419757947398e-02 1.697048405591379e-02 1.696676655885514e-02 1.696304508413142e-02 1.695931962055792e-02 + 1.695559016575875e-02 1.695185672007940e-02 1.694811928170539e-02 1.694437784303563e-02 1.694063239701608e-02 + 1.693688294268234e-02 1.693312947555357e-02 1.692937198914621e-02 1.692561047849961e-02 1.692184494218333e-02 + 1.691807537819241e-02 1.691430177590003e-02 1.691052413380094e-02 1.690674245501956e-02 1.690295672392027e-02 + 1.689916693403359e-02 1.689537309141036e-02 1.689157519031890e-02 1.688777322481082e-02 1.688396719247375e-02 + 1.688015708323470e-02 1.687634289028026e-02 1.687252461641300e-02 1.686870225976892e-02 1.686487581335405e-02 + 1.686104526641643e-02 1.685721061978611e-02 1.685337187596560e-02 1.684952902423863e-02 1.684568205626177e-02 + 1.684183096806695e-02 1.683797575916921e-02 1.683411642637722e-02 1.683025296370582e-02 1.682638536598722e-02 + 1.682251363071521e-02 1.681863775630957e-02 1.681475773295268e-02 1.681087355358095e-02 1.680698521822956e-02 + 1.680309272743823e-02 1.679919607564722e-02 1.679529524908240e-02 1.679139024683375e-02 1.678748107079098e-02 + 1.678356771499038e-02 1.677965016895157e-02 1.677572842703558e-02 1.677180249929987e-02 1.676787237703614e-02 + 1.676393804299063e-02 1.675999950051788e-02 1.675605674951069e-02 1.675210978219402e-02 1.674815858725950e-02 + 1.674420316518524e-02 1.674024352454331e-02 1.673627964747038e-02 1.673231152527195e-02 1.672833916857912e-02 + 1.672436256552257e-02 1.672038170373856e-02 1.671639658470834e-02 1.671240720840105e-02 1.670841357063555e-02 + 1.670441566220705e-02 1.670041347959014e-02 1.669640702110204e-02 1.669239628051189e-02 1.668838125191250e-02 + 1.668436193143650e-02 1.668033831890629e-02 1.667631040878886e-02 1.667227819212758e-02 1.666824166734860e-02 + 1.666420083129591e-02 1.666015567735254e-02 1.665610620005455e-02 1.665205239678242e-02 1.664799426695549e-02 + 1.664393180284348e-02 1.663986499713315e-02 1.663579384792829e-02 1.663171835503466e-02 1.662763851356003e-02 + 1.662355430939835e-02 1.661946574092143e-02 1.661537281150426e-02 1.661127551677910e-02 1.660717384720702e-02 + 1.660306779425839e-02 1.659895736095696e-02 1.659484254425630e-02 1.659072333444665e-02 1.658659972465595e-02 + 1.658247171530552e-02 1.657833931027815e-02 1.657420249617699e-02 1.657006126301349e-02 1.656591561144095e-02 + 1.656176553662080e-02 1.655761103381663e-02 1.655345210211223e-02 1.654928873901935e-02 1.654512093811135e-02 + 1.654094868807454e-02 1.653677198858015e-02 1.653259084096055e-02 1.652840523447503e-02 1.652421516561530e-02 + 1.652002063436291e-02 1.651582163151349e-02 1.651161815099949e-02 1.650741019156900e-02 1.650319775344297e-02 + 1.649898082810461e-02 1.649475940168675e-02 1.649053348141889e-02 1.648630306850305e-02 1.648206814836095e-02 + 1.647782871114676e-02 1.647358475732917e-02 1.646933629656457e-02 1.646508330893651e-02 1.646082578033714e-02 + 1.645656373337251e-02 1.645229715576629e-02 1.644802602626009e-02 1.644375035674409e-02 1.643947014097659e-02 + 1.643518536281393e-02 1.643089602671802e-02 1.642660213310334e-02 1.642230367492405e-02 1.641800064388943e-02 + 1.641369303446324e-02 1.640938084474308e-02 1.640506407467653e-02 1.640074271742540e-02 1.639641675907646e-02 + 1.639208620097271e-02 1.638775104513307e-02 1.638341128505268e-02 1.637906691499287e-02 1.637471792980197e-02 + 1.637036432400064e-02 1.636600609175647e-02 1.636164322915392e-02 1.635727573684415e-02 1.635290360792794e-02 + 1.634852683359730e-02 1.634414541697593e-02 1.633975935494602e-02 1.633536863669590e-02 1.633097325119221e-02 + 1.632657319870386e-02 1.632216848742881e-02 1.631775910539292e-02 1.631334504210032e-02 1.630892629731235e-02 + 1.630450287107613e-02 1.630007475715268e-02 1.629564194133085e-02 1.629120442381021e-02 1.628676220752001e-02 + 1.628231528645751e-02 1.627786365361661e-02 1.627340730437480e-02 1.626894623909321e-02 1.626448044809207e-02 + 1.626000991935131e-02 1.625553465710418e-02 1.625105466086324e-02 1.624656992364918e-02 1.624208044008659e-02 + 1.623758620493278e-02 1.623308721259990e-02 1.622858345750622e-02 1.622407493651434e-02 1.621956164908100e-02 + 1.621504359102545e-02 1.621052075671857e-02 1.620599314061202e-02 1.620146073758967e-02 1.619692354185834e-02 + 1.619238154678624e-02 1.618783475477294e-02 1.618328316706134e-02 1.617872676957040e-02 1.617416555535298e-02 + 1.616959952441603e-02 1.616502867670949e-02 1.616045300241566e-02 1.615587248863419e-02 1.615128714307292e-02 + 1.614669696726644e-02 1.614210195036420e-02 1.613750207990814e-02 1.613289735436475e-02 1.612828778261194e-02 + 1.612367334765880e-02 1.611905403879705e-02 1.611442986870223e-02 1.610980082722066e-02 1.610516690212456e-02 + 1.610052809916244e-02 1.609588441136000e-02 1.609123582829610e-02 1.608658235171540e-02 1.608192397521171e-02 + 1.607726068992654e-02 1.607259250083978e-02 1.606791940362701e-02 1.606324138657220e-02 1.605855844962495e-02 + 1.605387058768025e-02 1.604917779011535e-02 1.604448006054786e-02 1.603977739874237e-02 1.603506979420087e-02 + 1.603035723984084e-02 1.602563973257448e-02 1.602091727188371e-02 1.601618984720332e-02 1.601145745295015e-02 + 1.600672010067149e-02 1.600197777942985e-02 1.599723047266619e-02 1.599247818462375e-02 1.598772091449355e-02 + 1.598295865408641e-02 1.597819139147786e-02 1.597341912912636e-02 1.596864187530068e-02 1.596385961058315e-02 + 1.595907232771693e-02 1.595428003613896e-02 1.594948272828454e-02 1.594468039178993e-02 1.593987301780130e-02 + 1.593506061365002e-02 1.593024318102167e-02 1.592542070422077e-02 1.592059317798925e-02 1.591576060279083e-02 + 1.591092297799217e-02 1.590608029141302e-02 1.590123253274349e-02 1.589637971157846e-02 1.589152182656434e-02 + 1.588665886609507e-02 1.588179081847464e-02 1.587691768450550e-02 1.587203947045915e-02 1.586715616213467e-02 + 1.586226775168990e-02 1.585737424168921e-02 1.585247562649581e-02 1.584757190117160e-02 1.584266306445842e-02 + 1.583774911091078e-02 1.583283003450806e-02 1.582790583090947e-02 1.582297649499978e-02 1.581804202355953e-02 + 1.581310241701619e-02 1.580815766650671e-02 1.580320776320766e-02 1.579825271139450e-02 1.579329250537274e-02 + 1.578832713506978e-02 1.578335660262603e-02 1.577838090296324e-02 1.577340002574811e-02 1.576841397243399e-02 + 1.576342274326813e-02 1.575842633194578e-02 1.575342472205075e-02 1.574841791148685e-02 1.574340591569888e-02 + 1.573838872006093e-02 1.573336631006632e-02 1.572833869008299e-02 1.572330586230670e-02 1.571826781924578e-02 + 1.571322454052314e-02 1.570817603062760e-02 1.570312230059812e-02 1.569806333998715e-02 1.569299913693516e-02 + 1.568792968457186e-02 1.568285498663007e-02 1.567777503779379e-02 1.567268982728102e-02 1.566759935997030e-02 + 1.566250363482262e-02 1.565740264102256e-02 1.565229637077196e-02 1.564718482295817e-02 1.564206800099241e-02 + 1.563694589151567e-02 1.563181848599405e-02 1.562668579194260e-02 1.562154780177149e-02 1.561640450642917e-02 + 1.561125590888111e-02 1.560610200797837e-02 1.560094279515962e-02 1.559577825343192e-02 1.559060838842812e-02 + 1.558543321151646e-02 1.558025270088283e-02 1.557506685188879e-02 1.556987567405825e-02 1.556467915294808e-02 + 1.555947727806998e-02 1.555427005014520e-02 1.554905747326830e-02 1.554383954557267e-02 1.553861625685508e-02 + 1.553338760005679e-02 1.552815357203842e-02 1.552291417232042e-02 1.551766939022104e-02 1.551241921985975e-02 + 1.550716367246923e-02 1.550190274051892e-02 1.549663640983429e-02 1.549136467943576e-02 1.548608754911306e-02 + 1.548080501516420e-02 1.547551706650131e-02 1.547022370107663e-02 1.546492492363977e-02 1.545962073006300e-02 + 1.545431111106912e-02 1.544899605692932e-02 1.544367557060635e-02 1.543834964941066e-02 1.543301828099291e-02 + 1.542768146907574e-02 1.542233921474585e-02 1.541699150599057e-02 1.541163833967913e-02 1.540627971422265e-02 + 1.540091562222576e-02 1.539554606062004e-02 1.539017102808156e-02 1.538479052048013e-02 1.537940453376258e-02 + 1.537401306270197e-02 1.536861609811398e-02 1.536321364249661e-02 1.535780570199338e-02 1.535239225620149e-02 + 1.534697329939463e-02 1.534154884369051e-02 1.533611887960563e-02 1.533068339829330e-02 1.532524239983298e-02 + 1.531979587995433e-02 1.531434383110085e-02 1.530888624554550e-02 1.530342313142362e-02 1.529795449144603e-02 + 1.529248030485156e-02 1.528700056732233e-02 1.528151528324413e-02 1.527602445059826e-02 1.527052806021316e-02 + 1.526502610370102e-02 1.525951858764995e-02 1.525400550804322e-02 1.524848685322667e-02 1.524296262660809e-02 + 1.523743282528689e-02 1.523189743753784e-02 1.522635646012132e-02 1.522080989370855e-02 1.521525773883866e-02 + 1.520969998584297e-02 1.520413662809972e-02 1.519856766896251e-02 1.519299310438481e-02 1.518741292689401e-02 + 1.518182713051541e-02 1.517623571498702e-02 1.517063867977171e-02 1.516503601659771e-02 1.515942772580205e-02 + 1.515381380882217e-02 1.514819425008754e-02 1.514256904339338e-02 1.513693819284546e-02 1.513130169987854e-02 + 1.512565955837021e-02 1.512001175774349e-02 1.511435830052952e-02 1.510869918485496e-02 1.510303439909880e-02 + 1.509736393861015e-02 1.509168780464220e-02 1.508600600178219e-02 1.508031852355242e-02 1.507462535986425e-02 + 1.506892650464710e-02 1.506322195838325e-02 1.505751172137055e-02 1.505179578553525e-02 1.504607414992266e-02 + 1.504034681527993e-02 1.503461377008154e-02 1.502887501067205e-02 1.502313053999477e-02 1.501738035243006e-02 + 1.501162444030474e-02 1.500586279803602e-02 1.500009542963074e-02 1.499432233574762e-02 1.498854350912934e-02 + 1.498275894315130e-02 1.497696863387312e-02 1.497117258012378e-02 1.496537077480856e-02 1.495956321394884e-02 + 1.495374990400090e-02 1.494793083920974e-02 1.494210600904758e-02 1.493627541059610e-02 1.493043904648383e-02 + 1.492459691659297e-02 1.491874900408085e-02 1.491289530722370e-02 1.490703583623931e-02 1.490117058646935e-02 + 1.489529954725381e-02 1.488942270892006e-02 1.488354007804980e-02 1.487765165385858e-02 1.487175742273507e-02 + 1.486585738883519e-02 1.485995155398175e-02 1.485403990610964e-02 1.484812243988829e-02 1.484219915557141e-02 + 1.483627005584607e-02 1.483033513203473e-02 1.482439437542072e-02 1.481844779264578e-02 1.481249538141862e-02 + 1.480653713381494e-02 1.480057304868135e-02 1.479460312202780e-02 1.478862734716873e-02 1.478264572087699e-02 + 1.477665824308106e-02 1.477066491441443e-02 1.476466572742758e-02 1.475866067903805e-02 1.475264977269339e-02 + 1.474663299844858e-02 1.474061034872640e-02 1.473458182710518e-02 1.472854743115566e-02 1.472250715651883e-02 + 1.471646100132783e-02 1.471040896256117e-02 1.470435103749897e-02 1.469828722554372e-02 1.469221751827344e-02 + 1.468614190646898e-02 1.468006039547928e-02 1.467397298615093e-02 1.466787967378610e-02 1.466178045636883e-02 + 1.465567533041493e-02 1.464956428982840e-02 1.464344732703370e-02 1.463732444018100e-02 1.463119563426315e-02 + 1.462506090797482e-02 1.461892025637629e-02 1.461277367320199e-02 1.460662115516677e-02 1.460046270026797e-02 + 1.459429830605704e-02 1.458812796887011e-02 1.458195168595082e-02 1.457576945823491e-02 1.456958128559711e-02 + 1.456338716422361e-02 1.455718708308891e-02 1.455098103823577e-02 1.454476903226018e-02 1.453855106504101e-02 + 1.453232713525658e-02 1.452609724028033e-02 1.451986137384772e-02 1.451361953112174e-02 1.450737171027855e-02 + 1.450111790831084e-02 1.449485812287890e-02 1.448859235383744e-02 1.448232060352556e-02 1.447604287018101e-02 + 1.446975914267516e-02 1.446346941597466e-02 1.445717368938523e-02 1.445087196279080e-02 1.444456423724572e-02 + 1.443825051237331e-02 1.443193078136921e-02 1.442560503975330e-02 1.441927328581930e-02 1.441293551683267e-02 + 1.440659172970616e-02 1.440024192165075e-02 1.439388609177658e-02 1.438752424156573e-02 1.438115637277796e-02 + 1.437478247503487e-02 1.436840254149195e-02 1.436201657648160e-02 1.435562457263202e-02 1.434922652522855e-02 + 1.434282244486077e-02 1.433641232984850e-02 1.432999617114929e-02 1.432357396196595e-02 1.431714570255755e-02 + 1.431071139387867e-02 1.430427102559402e-02 1.429782460021014e-02 1.429137212732056e-02 1.428491359501307e-02 + 1.427844899676062e-02 1.427197833606156e-02 1.426550161130239e-02 1.425901881685885e-02 1.425252994564961e-02 + 1.424603499980085e-02 1.423953398385027e-02 1.423302689906778e-02 1.422651373475527e-02 1.421999448399202e-02 + 1.421346915585374e-02 1.420693774198730e-02 1.420040023237321e-02 1.419385663850131e-02 1.418730696003290e-02 + 1.418075118751426e-02 1.417418931634679e-02 1.416762135086922e-02 1.416104729584521e-02 1.415446713263836e-02 + 1.414788085973522e-02 1.414128849363525e-02 1.413469002361970e-02 1.412808544052846e-02 1.412147474772301e-02 + 1.411485794712882e-02 1.410823503604182e-02 1.410160600672222e-02 1.409497085818714e-02 1.408832959214252e-02 + 1.408168220875668e-02 1.407502870564407e-02 1.406836907961611e-02 1.406170332864153e-02 1.405503144837146e-02 + 1.404835343608425e-02 1.404166929852345e-02 1.403497903248639e-02 1.402828262916828e-02 1.402158009603205e-02 + 1.401487143048169e-02 1.400815661918214e-02 1.400143566703935e-02 1.399470857625501e-02 1.398797534046779e-02 + 1.398123596549795e-02 1.397449045134991e-02 1.396773878380821e-02 1.396098096640959e-02 1.395421700271061e-02 + 1.394744688102961e-02 1.394067060648909e-02 1.393388818692338e-02 1.392709961198955e-02 1.392030488001634e-02 + 1.391350399327543e-02 1.390669694254475e-02 1.389988372719557e-02 1.389306435287330e-02 1.388623881438261e-02 + 1.387940711188756e-02 1.387256925103053e-02 1.386572522405790e-02 1.385887502683316e-02 1.385201866296698e-02 + 1.384515612379329e-02 1.383828740611332e-02 1.383141252098464e-02 1.382453146615934e-02 1.381764423695148e-02 + 1.381075083621117e-02 1.380385125926009e-02 1.379694549932224e-02 1.379003355634722e-02 1.378311543405784e-02 + 1.377619113577579e-02 1.376926065784134e-02 1.376232399626086e-02 1.375538114862362e-02 1.374843211529037e-02 + 1.374147689626999e-02 1.373451549097131e-02 1.372754790081035e-02 1.372057412482435e-02 1.371359415880417e-02 + 1.370660800191563e-02 1.369961565562416e-02 1.369261712158748e-02 1.368561239160383e-02 1.367860146147292e-02 + 1.367158434223160e-02 1.366456103295884e-02 1.365753152816715e-02 1.365049582984413e-02 1.364345393626983e-02 + 1.363640584363454e-02 1.362935155197557e-02 1.362229106201978e-02 1.361522437421294e-02 1.360815148809621e-02 + 1.360107240365773e-02 1.359398712117658e-02 1.358689563898480e-02 1.357979795217255e-02 1.357269405533802e-02 + 1.356558396017600e-02 1.355846767355538e-02 1.355134518540141e-02 1.354421648973967e-02 1.353708158728038e-02 + 1.352994048497773e-02 1.352279317412557e-02 1.351563964921714e-02 1.350847993234027e-02 1.350131401794928e-02 + 1.349414188812881e-02 1.348696355361660e-02 1.347977901858603e-02 1.347258827670450e-02 1.346539132112732e-02 + 1.345818815687027e-02 1.345097879723517e-02 1.344376323611521e-02 1.343654146470481e-02 1.342931348024562e-02 + 1.342207929164266e-02 1.341483890125029e-02 1.340759229714105e-02 1.340033948592649e-02 1.339308047488992e-02 + 1.338581525615185e-02 1.337854383232506e-02 1.337126620737807e-02 1.336398237245951e-02 1.335669232490426e-02 + 1.334939606999042e-02 1.334209361886319e-02 1.333478496691931e-02 1.332747010093965e-02 1.332014902896288e-02 + 1.331282175723704e-02 1.330548828381385e-02 1.329814860211957e-02 1.329080271412866e-02 1.328345063097246e-02 + 1.327609234424045e-02 1.326872784914616e-02 1.326135715657202e-02 1.325398026514318e-02 1.324659716972378e-02 + 1.323920787031880e-02 1.323181236976987e-02 1.322441067219326e-02 1.321700278123619e-02 1.320958869473772e-02 + 1.320216840889533e-02 1.319474192647233e-02 1.318730924299288e-02 1.317987035320805e-02 1.317242527523754e-02 + 1.316497401404441e-02 1.315751655750498e-02 1.315005290457417e-02 1.314258305915991e-02 1.313510702533477e-02 + 1.312762479749873e-02 1.312013637454663e-02 1.311264176674524e-02 1.310514097528989e-02 1.309763399743803e-02 + 1.309012083240218e-02 1.308260148524151e-02 1.307507595779872e-02 1.306754423810231e-02 1.306000633130083e-02 + 1.305246225068735e-02 1.304491199415833e-02 1.303735555888092e-02 1.302979294561730e-02 1.302222416114251e-02 + 1.301464920127586e-02 1.300706805512286e-02 1.299948074007148e-02 1.299188726392925e-02 1.298428761376350e-02 + 1.297668178953030e-02 1.296906979917289e-02 1.296145165196894e-02 1.295382733572278e-02 1.294619684321666e-02 + 1.293856019418804e-02 1.293091739361701e-02 1.292326843600229e-02 1.291561331594024e-02 1.290795203962965e-02 + 1.290028461406370e-02 1.289261102589192e-02 1.288493127982097e-02 1.287724539399148e-02 1.286955336728896e-02 + 1.286185519483855e-02 1.285415087393522e-02 1.284644040779901e-02 1.283872379943217e-02 1.283100105007112e-02 + 1.282327216499671e-02 1.281553714651719e-02 1.280779599126801e-02 1.280004870582322e-02 1.279229529551004e-02 + 1.278453575462785e-02 1.277677008230648e-02 1.276899828322272e-02 1.276122036637128e-02 1.275343633303281e-02 + 1.274564618082443e-02 1.273784991358546e-02 1.273004753391990e-02 1.272223904101719e-02 1.271442442957637e-02 + 1.270660370794978e-02 1.269877689384363e-02 1.269094397773904e-02 1.268310495443295e-02 1.267525983383190e-02 + 1.266740862159357e-02 1.265955131610305e-02 1.265168790986125e-02 1.264381841321034e-02 1.263594283614933e-02 + 1.262806117310012e-02 1.262017342951705e-02 1.261227961209872e-02 1.260437971406514e-02 1.259647373729069e-02 + 1.258856168925583e-02 1.258064357239260e-02 1.257271939240096e-02 1.256478915520078e-02 1.255685285459754e-02 + 1.254891049173029e-02 1.254096207570647e-02 1.253300760376554e-02 1.252504707668881e-02 1.251708050378790e-02 + 1.250910789128773e-02 1.250112924190730e-02 1.249314455497329e-02 1.248515382942968e-02 1.247715706626537e-02 + 1.246915427066142e-02 1.246114545004359e-02 1.245313061093009e-02 1.244510975519442e-02 1.243708288271855e-02 + 1.242904999334644e-02 1.242101108960597e-02 1.241296617602342e-02 1.240491525784085e-02 1.239685833832253e-02 + 1.238879542265411e-02 1.238072651672425e-02 1.237265161832934e-02 1.236457072972670e-02 1.235648385971585e-02 + 1.234839100475330e-02 1.234029216644840e-02 1.233218735967670e-02 1.232407658450629e-02 1.231595983825897e-02 + 1.230783712734204e-02 1.229970846199802e-02 1.229157384500942e-02 1.228343326032102e-02 1.227528672233900e-02 + 1.226713425500730e-02 1.225897584359588e-02 1.225081148758153e-02 1.224264120133804e-02 1.223446498720786e-02 + 1.222628284514866e-02 1.221809477711035e-02 1.220990079161559e-02 1.220170089405064e-02 1.219349508434973e-02 + 1.218528336781141e-02 1.217706575082829e-02 1.216884223701085e-02 1.216061282093886e-02 1.215237750559525e-02 + 1.214413631491834e-02 1.213588924765066e-02 1.212763629639266e-02 1.211937747504947e-02 1.211111278696468e-02 + 1.210284222899338e-02 1.209456580676226e-02 1.208628352659129e-02 1.207799539529086e-02 1.206970142400196e-02 + 1.206140161359375e-02 1.205309595715539e-02 1.204478446558403e-02 1.203646714593309e-02 1.202814399601385e-02 + 1.201981502726849e-02 1.201148024892713e-02 1.200313965960066e-02 1.199479326438714e-02 1.198644106975963e-02 + 1.197808307814890e-02 1.196971928979660e-02 1.196134970757412e-02 1.195297434273665e-02 1.194459320579336e-02 + 1.193620630286995e-02 1.192781363156250e-02 1.191941519457288e-02 1.191101099930699e-02 1.190260104978759e-02 + 1.189418535108248e-02 1.188576391078268e-02 1.187733673904143e-02 1.186890383909906e-02 1.186046520717658e-02 + 1.185202085452967e-02 1.184357078721630e-02 1.183511499765447e-02 1.182665350164435e-02 1.181818631619212e-02 + 1.180971343948878e-02 1.180123487113532e-02 1.179275061618258e-02 1.178426068678883e-02 1.177576508273127e-02 + 1.176726380098327e-02 1.175875685721244e-02 1.175024426443667e-02 1.174172602804813e-02 1.173320214474543e-02 + 1.172467261918110e-02 1.171613746318596e-02 1.170759667473828e-02 1.169905025976067e-02 1.169049823639713e-02 + 1.168194060529573e-02 1.167337736787376e-02 1.166480853596695e-02 1.165623411322526e-02 1.164765410079015e-02 + 1.163906850325271e-02 1.163047732858534e-02 1.162188058835008e-02 1.161327829716097e-02 1.160467045202270e-02 + 1.159605704763531e-02 1.158743810702480e-02 1.157881363156412e-02 1.157018361041755e-02 1.156154807040710e-02 + 1.155290702254676e-02 1.154426045745637e-02 1.153560838867705e-02 1.152695082724772e-02 1.151828777265603e-02 + 1.150961922666123e-02 1.150094519786783e-02 1.149226570234640e-02 1.148358074611148e-02 1.147489033148848e-02 + 1.146619446355201e-02 1.145749315215113e-02 1.144878640491215e-02 1.144007421936342e-02 1.143135660500108e-02 + 1.142263357779597e-02 1.141390514531738e-02 1.140517131031360e-02 1.139643207471360e-02 1.138768744746770e-02 + 1.137893743736065e-02 1.137018205114591e-02 1.136142129485616e-02 1.135265517811921e-02 1.134388371322748e-02 + 1.133510690045416e-02 1.132632474439678e-02 1.131753726104511e-02 1.130874445081251e-02 1.129994631541456e-02 + 1.129114287234474e-02 1.128233413053084e-02 1.127352009524980e-02 1.126470077646612e-02 1.125587617975814e-02 + 1.124704630615814e-02 1.123821115477194e-02 1.122937074388692e-02 1.122052509984340e-02 1.121167421843202e-02 + 1.120281809651728e-02 1.119395674175946e-02 1.118509017235879e-02 1.117621839625571e-02 1.116734140890626e-02 + 1.115845922925729e-02 1.114957187162777e-02 1.114067933143962e-02 1.113178161769016e-02 1.112287874451852e-02 + 1.111397072153178e-02 1.110505754694771e-02 1.109613922373310e-02 1.108721577854856e-02 1.107828721826434e-02 + 1.106935353946150e-02 1.106041475521090e-02 1.105147087839408e-02 1.104252191603393e-02 1.103356786436798e-02 + 1.102460873384026e-02 1.101564454870664e-02 1.100667531791245e-02 1.099770104268406e-02 1.098872172333136e-02 + 1.097973737703280e-02 1.097074801492989e-02 1.096175363206450e-02 1.095275424291130e-02 1.094374986633713e-02 + 1.093474051123777e-02 1.092572618232803e-02 1.091670688531980e-02 1.090768263148204e-02 1.089865342255811e-02 + 1.088961926240844e-02 1.088058018050034e-02 1.087153618780464e-02 1.086248727940419e-02 1.085343346361914e-02 + 1.084437475261139e-02 1.083531115780061e-02 1.082624268419920e-02 1.081716934144050e-02 1.080809114559821e-02 + 1.079900810312026e-02 1.078992022093278e-02 1.078082751184906e-02 1.077172998533364e-02 1.076262764813011e-02 + 1.075352050586474e-02 1.074440857092024e-02 1.073529185762834e-02 1.072617037570664e-02 1.071704413251609e-02 + 1.070791313635956e-02 1.069877740113652e-02 1.068963693244828e-02 1.068049173224424e-02 1.067134181766250e-02 + 1.066218720670161e-02 1.065302791162099e-02 1.064386393117340e-02 1.063469527249458e-02 1.062552195483164e-02 + 1.061634397913101e-02 1.060716135205155e-02 1.059797409807024e-02 1.058878223029125e-02 1.057958575437316e-02 + 1.057038467384018e-02 1.056117900039964e-02 1.055196874533382e-02 1.054275390960051e-02 1.053353451406393e-02 + 1.052431058354873e-02 1.051508211263400e-02 1.050584910821505e-02 1.049661158906674e-02 1.048736956269110e-02 + 1.047812303544552e-02 1.046887201730896e-02 1.045961652742825e-02 1.045035657823219e-02 1.044109217270465e-02 + 1.043182332652317e-02 1.042255005238709e-02 1.041327235213399e-02 1.040399023555266e-02 1.039470371859749e-02 + 1.038541282005145e-02 1.037611754740451e-02 1.036681790639924e-02 1.035751391340543e-02 1.034820558036888e-02 + 1.033889291336949e-02 1.032957591435120e-02 1.032025460242317e-02 1.031092900384275e-02 1.030159911688449e-02 + 1.029226495054825e-02 1.028292652729243e-02 1.027358385071069e-02 1.026423692589549e-02 1.025488576741323e-02 + 1.024553039300053e-02 1.023617081698821e-02 1.022680704740226e-02 1.021743909457171e-02 1.020806697035185e-02 + 1.019869068658227e-02 1.018931025066223e-02 1.017992567348438e-02 1.017053697875713e-02 1.016114417776936e-02 + 1.015174727399650e-02 1.014234627700861e-02 1.013294120450803e-02 1.012353207457940e-02 1.011411888599992e-02 + 1.010470164920459e-02 1.009528038851809e-02 1.008585511657422e-02 1.007642584330934e-02 1.006699257991301e-02 + 1.005755533847607e-02 1.004811412861271e-02 1.003866895746225e-02 1.002921984502842e-02 1.001976681035788e-02 + 1.001030986009602e-02 1.000084900502786e-02 9.991384259025663e-03 9.981915635495017e-03 9.972443141719819e-03 + 9.962966786689603e-03 9.953486595586885e-03 9.944002583039199e-03 9.934514754395770e-03 9.925023122335749e-03 + 9.915527701693664e-03 9.906028505794947e-03 9.896525539473492e-03 9.887018817044350e-03 9.877508364713565e-03 + 9.867994191756903e-03 9.858476305769829e-03 9.848954721540815e-03 9.839429453723526e-03 9.829900512927632e-03 + 9.820367904529967e-03 9.810831649938153e-03 9.801291772225836e-03 9.791748277276684e-03 9.782201174956444e-03 + 9.772650480173910e-03 9.763096209214261e-03 9.753538370443265e-03 9.743976971083063e-03 9.734412038356991e-03 + 9.724843589152831e-03 9.715271627378256e-03 9.705696167153652e-03 9.696117225097080e-03 9.686534815487291e-03 + 9.676948943754414e-03 9.667359623576509e-03 9.657766883492007e-03 9.648170733986708e-03 9.638571181819185e-03 + 9.628968243024477e-03 9.619361933494769e-03 9.609752265452595e-03 9.600139245296816e-03 9.590522893495216e-03 + 9.580903234511828e-03 9.571280275331249e-03 9.561654026946651e-03 9.552024506017841e-03 9.542391727779683e-03 + 9.532755702177183e-03 9.523116437885958e-03 9.513473960404769e-03 9.503828289303256e-03 9.494179431678001e-03 + 9.484527400058637e-03 9.474872210511853e-03 9.465213879778082e-03 9.455552415295903e-03 9.445887829718797e-03 + 9.436220151655284e-03 9.426549394486200e-03 9.416875565725477e-03 9.407198681221749e-03 9.397518758018270e-03 + 9.387835810148322e-03 9.378149843813783e-03 9.368460878589471e-03 9.358768941430739e-03 9.349074041571485e-03 + 9.339376189353358e-03 9.329675400879622e-03 9.319971694171958e-03 9.310265081086165e-03 9.300555568605354e-03 + 9.290843182951191e-03 9.281127946492163e-03 9.271409865969660e-03 9.261688954922952e-03 9.251965230660204e-03 + 9.242238709904914e-03 9.232509401801155e-03 9.222777318787652e-03 9.213042489474691e-03 9.203304930168641e-03 + 9.193564649383718e-03 9.183821661973759e-03 9.174075985705271e-03 9.164327637046287e-03 9.154576623077591e-03 + 9.144822962285418e-03 9.135066683045857e-03 9.125307796249328e-03 9.115546312613307e-03 9.105782249286811e-03 + 9.096015624756502e-03 9.086246452281876e-03 9.076474739187750e-03 9.066700510968253e-03 9.056923792083085e-03 + 9.047144590189744e-03 9.037362919662660e-03 9.027578799121916e-03 9.017792245480461e-03 9.008003268928564e-03 + 8.998211881680073e-03 8.988418113610518e-03 8.978621982540696e-03 8.968823496265647e-03 8.959022672124209e-03 + 8.949219528590024e-03 8.939414081469170e-03 8.929606339864140e-03 8.919796321979990e-03 8.909984056877767e-03 + 8.900169557867096e-03 8.890352835957138e-03 8.880533907981049e-03 8.870712793191068e-03 8.860889506593549e-03 + 8.851064055633283e-03 8.841236465905915e-03 8.831406764712287e-03 8.821574959648875e-03 8.811741064546590e-03 + 8.801905099237244e-03 8.792067082696866e-03 8.782227026145442e-03 8.772384940188230e-03 8.762540855386065e-03 + 8.752694792574688e-03 8.742846759945761e-03 8.732996774006149e-03 8.723144854408183e-03 8.713291019755398e-03 + 8.703435278608567e-03 8.693577647775636e-03 8.683718159456632e-03 8.673856827661263e-03 8.663993662505663e-03 + 8.654128683145933e-03 8.644261909320558e-03 8.634393356690426e-03 8.624523033451901e-03 8.614650964506795e-03 + 8.604777179373340e-03 8.594901686657006e-03 8.585024500118565e-03 8.575145640490715e-03 8.565265126670765e-03 + 8.555382971806235e-03 8.545499187654319e-03 8.535613803632294e-03 8.525726842250045e-03 8.515838312646278e-03 + 8.505948232174527e-03 8.496056621077198e-03 8.486163497882877e-03 8.476268872748003e-03 8.466372762116349e-03 + 8.456475199094931e-03 8.446576199856061e-03 8.436675774300739e-03 8.426773941795081e-03 8.416870722731803e-03 + 8.406966134358667e-03 8.397060186389057e-03 8.387152901959176e-03 8.377244311160385e-03 8.367334425300299e-03 + 8.357423258296441e-03 8.347510830980188e-03 8.337597163605794e-03 8.327682270401855e-03 8.317766161869340e-03 + 8.307848867754637e-03 8.297930413816063e-03 8.288010810083676e-03 8.278090072673102e-03 8.268168221765407e-03 + 8.258245278027963e-03 8.248321253600945e-03 8.238396163758082e-03 8.228470040664376e-03 8.218542903042886e-03 + 8.208614761992156e-03 8.198685637447353e-03 8.188755549837494e-03 8.178824516773604e-03 8.168892549578916e-03 + 8.158959670459199e-03 8.149025910256038e-03 8.139091282816925e-03 8.129155801857130e-03 8.119219487437710e-03 + 8.109282361690508e-03 8.099344440765549e-03 8.089405733754036e-03 8.079466270417937e-03 8.069526079135253e-03 + 8.059585169010465e-03 8.049643556954327e-03 8.039701265060109e-03 8.029758314127560e-03 8.019814717074126e-03 + 8.009870488264625e-03 7.999925660293698e-03 7.989980254561855e-03 7.980034282561204e-03 7.970087763203990e-03 + 7.960140717914167e-03 7.950193166721423e-03 7.940245120231920e-03 7.930296599391260e-03 7.920347637831796e-03 + 7.910398250263278e-03 7.900448449763646e-03 7.890498257622273e-03 7.880547695356892e-03 7.870596780430528e-03 + 7.860645524802819e-03 7.850693955430419e-03 7.840742100859013e-03 7.830789973961963e-03 7.820837591210042e-03 + 7.810884973654219e-03 7.800932143705464e-03 7.790979115476222e-03 7.781025902060369e-03 7.771072537550891e-03 + 7.761119045304192e-03 7.751165435253132e-03 7.741211727248220e-03 7.731257943744334e-03 7.721304105116559e-03 + 7.711350222852130e-03 7.701396316987202e-03 7.691442422531397e-03 7.681488555826352e-03 7.671534729460651e-03 + 7.661580965493510e-03 7.651627286213397e-03 7.641673709645761e-03 7.631720246474624e-03 7.621766924002147e-03 + 7.611813774300424e-03 7.601860809420407e-03 7.591908045212342e-03 7.581955503946372e-03 7.572003208680656e-03 + 7.562051174726026e-03 7.552099414296815e-03 7.542147961065804e-03 7.532196840825635e-03 7.522246063843738e-03 + 7.512295650102864e-03 7.502345622322073e-03 7.492396000716249e-03 7.482446799189802e-03 7.472498037196947e-03 + 7.462549747897286e-03 7.452601950331629e-03 7.442654658211039e-03 7.432707892744488e-03 7.422761676416634e-03 + 7.412816028768508e-03 7.402870961455420e-03 7.392926500328647e-03 7.382982678429822e-03 7.373039508794957e-03 + 7.363097007225734e-03 7.353155196864952e-03 7.343214100532815e-03 7.333273734782904e-03 7.323334112197604e-03 + 7.313395265021593e-03 7.303457220900774e-03 7.293519991033275e-03 7.283583594600794e-03 7.273648054943689e-03 + 7.263713394446934e-03 7.253779626580373e-03 7.243846768480717e-03 7.233914855435080e-03 7.223983908518886e-03 + 7.214053940460562e-03 7.204124972417771e-03 7.194197027491048e-03 7.184270126394881e-03 7.174344280726286e-03 + 7.164419514784642e-03 7.154495863236941e-03 7.144573340914020e-03 7.134651962993328e-03 7.124731752265264e-03 + 7.114812732100897e-03 7.104894920638768e-03 7.094978330575343e-03 7.085062992246606e-03 7.075148934793896e-03 + 7.065236171017366e-03 7.055324719420953e-03 7.045414603125002e-03 7.035505845669364e-03 7.025598461448587e-03 + 7.015692466009597e-03 7.005787894887785e-03 6.995884771371198e-03 6.985983107977662e-03 6.976082925249031e-03 + 6.966184246523457e-03 6.956287093797063e-03 6.946391479271966e-03 6.936497425652844e-03 6.926604968509339e-03 + 6.916714124366364e-03 6.906824907731460e-03 6.896937340931554e-03 6.887051448149962e-03 6.877167248699087e-03 + 6.867284753979424e-03 6.857403994050719e-03 6.847525000658012e-03 6.837647785670592e-03 6.827772367409923e-03 + 6.817898770109592e-03 6.808027016717447e-03 6.798157122708669e-03 6.788289103240300e-03 6.778422992931511e-03 + 6.768558816798320e-03 6.758696587557012e-03 6.748836325648165e-03 6.738978054348659e-03 6.729121795949092e-03 + 6.719267563927435e-03 6.709415379633438e-03 6.699565278400954e-03 6.689717278120727e-03 6.679871393303892e-03 + 6.670027647355804e-03 6.660186063525513e-03 6.650346660981845e-03 6.640509452367944e-03 6.630674466396449e-03 + 6.620841735868644e-03 6.611011273308148e-03 6.601183096392477e-03 6.591357229649247e-03 6.581533696087914e-03 + 6.571712512145987e-03 6.561893692372858e-03 6.552077270290561e-03 6.542263272668194e-03 6.532451712617284e-03 + 6.522642609933696e-03 6.512835987879551e-03 6.503031869590782e-03 6.493230268870023e-03 6.483431205156500e-03 + 6.473634714105858e-03 6.463840816056773e-03 6.454049525191551e-03 6.444260863046832e-03 6.434474853362258e-03 + 6.424691517208967e-03 6.414910866799055e-03 6.405132928351729e-03 6.395357735592168e-03 6.385585303753894e-03 + 6.375815649717760e-03 6.366048796411005e-03 6.356284767471845e-03 6.346523580477974e-03 6.336765248927921e-03 + 6.327009805730009e-03 6.317257279178600e-03 6.307507681412946e-03 6.297761032647583e-03 6.288017356862164e-03 + 6.278276676438099e-03 6.268539005625230e-03 6.258804362658888e-03 6.249072783406197e-03 6.239344289504087e-03 + 6.229618894349891e-03 6.219896619699197e-03 6.210177489065160e-03 6.200461523673893e-03 6.190748736475173e-03 + 6.181039151999554e-03 6.171332804226705e-03 6.161629709556120e-03 6.151929884103313e-03 6.142233350147177e-03 + 6.132540131644584e-03 6.122850247356021e-03 6.113163710170625e-03 6.103480551213418e-03 6.093800800141988e-03 + 6.084124469547710e-03 6.074451578566364e-03 6.064782150905211e-03 6.055116209626953e-03 6.045453769994722e-03 + 6.035794848740185e-03 6.026139480474754e-03 6.016487688229946e-03 6.006839485237500e-03 5.997194892776407e-03 + 5.987553934341584e-03 5.977916631713333e-03 5.968282997802390e-03 5.958653055343909e-03 5.949026838944569e-03 + 5.939404365780911e-03 5.929785651209331e-03 5.920170717549854e-03 5.910559587858684e-03 5.900952281370824e-03 + 5.891348811852907e-03 5.881749208142844e-03 5.872153500225121e-03 5.862561701850070e-03 5.852973831530551e-03 + 5.843389912374926e-03 5.833809966833203e-03 5.824234011006907e-03 5.814662060999971e-03 5.805094150375409e-03 + 5.795530303292347e-03 5.785970532524381e-03 5.776414859211175e-03 5.766863306294991e-03 5.757315894674337e-03 + 5.747772638659374e-03 5.738233559732430e-03 5.728698691311226e-03 5.719168051719483e-03 5.709641656042984e-03 + 5.700119526414031e-03 5.690601685377130e-03 5.681088152168133e-03 5.671578940158426e-03 5.662074076665564e-03 + 5.652573592801510e-03 5.643077502877857e-03 5.633585823810169e-03 5.624098577633230e-03 5.614615788052954e-03 + 5.605137471831965e-03 5.595663642810052e-03 5.586194333773162e-03 5.576729570469775e-03 5.567269364923084e-03 + 5.557813736696195e-03 5.548362708847973e-03 5.538916303890826e-03 5.529474534822445e-03 5.520037420561356e-03 + 5.510604996543656e-03 5.501177281279281e-03 5.491754287530179e-03 5.482336037985177e-03 5.472922555453679e-03 + 5.463513859119052e-03 5.454109961206277e-03 5.444710887376439e-03 5.435316669896643e-03 5.425927322428118e-03 + 5.416542861379438e-03 5.407163309793553e-03 5.397788689388935e-03 5.388419016905312e-03 5.379054306533677e-03 + 5.369694588817857e-03 5.360339890208465e-03 5.350990223294556e-03 5.341645606645782e-03 5.332306062415535e-03 + 5.322971612709802e-03 5.313642271564683e-03 5.304318056285795e-03 5.294999000250198e-03 5.285685123732157e-03 + 5.276376439554206e-03 5.267072968338082e-03 5.257774732353860e-03 5.248481751732874e-03 5.239194038865901e-03 + 5.229911616755654e-03 5.220634516968343e-03 5.211362754853240e-03 5.202096346092698e-03 5.192835312362628e-03 + 5.183579674966123e-03 5.174329450821569e-03 5.165084652994387e-03 5.155845310548846e-03 5.146611450951191e-03 + 5.137383086378589e-03 5.128160234647254e-03 5.118942917508807e-03 5.109731156137037e-03 5.100524965000140e-03 + 5.091324360054826e-03 5.082129373049942e-03 5.072940025255639e-03 5.063756329149303e-03 5.054578304260502e-03 + 5.045405972366202e-03 5.036239353680495e-03 5.027078459118392e-03 5.017923310123222e-03 5.008773940483098e-03 + 4.999630364315774e-03 4.990492594829337e-03 4.981360654331298e-03 4.972234563790402e-03 4.963114339923834e-03 + 4.953999995020500e-03 4.944891556281875e-03 4.935789051765770e-03 4.926692493194353e-03 4.917601897109304e-03 + 4.908517284729773e-03 4.899438676825864e-03 4.890366088012707e-03 4.881299532722441e-03 4.872239041569468e-03 + 4.863184636415129e-03 4.854136328649667e-03 4.845094137498133e-03 4.836058083872883e-03 4.827028186746977e-03 + 4.818004458681770e-03 4.808986918914880e-03 4.799975597861264e-03 4.790970512088721e-03 4.781971675128856e-03 + 4.772979106768043e-03 4.763992827229902e-03 4.755012853632298e-03 4.746039197549013e-03 4.737071883993436e-03 + 4.728110941197518e-03 4.719156380399636e-03 4.710208217424537e-03 4.701266473663848e-03 4.692331168251817e-03 + 4.683402315353613e-03 4.674479928383867e-03 4.665564036556664e-03 4.656654662394768e-03 4.647751816371710e-03 + 4.638855516650367e-03 4.629965783672686e-03 4.621082635909843e-03 4.612206084994354e-03 4.603336148102954e-03 + 4.594472856159325e-03 4.585616225744373e-03 4.576766268345947e-03 4.567923003199363e-03 4.559086450091263e-03 + 4.550256626033265e-03 4.541433541986122e-03 4.532617220194613e-03 4.523807688535670e-03 4.515004959722835e-03 + 4.506209047920159e-03 4.497419972185719e-03 4.488637751873642e-03 4.479862401381760e-03 4.471093932025212e-03 + 4.462332371280023e-03 4.453577742726973e-03 4.444830056583276e-03 4.436089328917552e-03 4.427355578888171e-03 + 4.418628824988929e-03 4.409909078668640e-03 4.401196354933857e-03 4.392490684030716e-03 4.383792083151365e-03 + 4.375100562120779e-03 4.366416138313078e-03 4.357738831525952e-03 4.349068659591380e-03 4.340405630957790e-03 + 4.331749765364269e-03 4.323101091949651e-03 4.314459623208851e-03 4.305825371349630e-03 4.297198354190413e-03 + 4.288578590720092e-03 4.279966095343473e-03 4.271360877578565e-03 4.262762963097229e-03 4.254172376200769e-03 + 4.245589126222103e-03 4.237013227440267e-03 4.228444697962537e-03 4.219883556022182e-03 4.211329813254019e-03 + 4.202783482548908e-03 4.194244591796649e-03 4.185713159116739e-03 4.177189194188086e-03 4.168672712320958e-03 + 4.160163731860882e-03 4.151662270610665e-03 4.143168336754119e-03 4.134681947397693e-03 4.126203130809124e-03 + 4.117731899759874e-03 4.109268265260960e-03 4.100812244167818e-03 4.092363854125291e-03 4.083923109325604e-03 + 4.075490018959178e-03 4.067064605609816e-03 4.058646892914489e-03 4.050236890474988e-03 4.041834611549669e-03 + 4.033440073099425e-03 4.025053291802670e-03 4.016674279190388e-03 4.008303046950822e-03 3.999939621219669e-03 + 3.991584019864232e-03 3.983236251035503e-03 3.974896329846703e-03 3.966564273682151e-03 3.958240098637734e-03 + 3.949923812376889e-03 3.941615430268695e-03 3.933314980874398e-03 3.925022475755094e-03 3.916737923312982e-03 + 3.908461340476090e-03 3.900192744628528e-03 3.891932149238224e-03 3.883679560814138e-03 3.875435000263637e-03 + 3.867198492508630e-03 3.858970045729460e-03 3.850749670926077e-03 3.842537384120139e-03 3.834333202377867e-03 + 3.826137136626801e-03 3.817949195349815e-03 3.809769403427763e-03 3.801597779587331e-03 3.793434330750140e-03 + 3.785279069923421e-03 3.777132013373491e-03 3.768993177352847e-03 3.760862568898475e-03 3.752740200334732e-03 + 3.744626099044159e-03 3.736520277340854e-03 3.728422742215669e-03 3.720333508785603e-03 3.712252593018920e-03 + 3.704180008090329e-03 3.696115760631814e-03 3.688059868276574e-03 3.680012354362612e-03 3.671973228138760e-03 + 3.663942499526064e-03 3.655920182566113e-03 3.647906292785413e-03 3.639900840938008e-03 3.631903834337251e-03 + 3.623915295229000e-03 3.615935242250758e-03 3.607963681828620e-03 3.600000626081414e-03 3.592046089865790e-03 + 3.584100087061132e-03 3.576162625323692e-03 3.568233715505030e-03 3.560313381862740e-03 3.552401637255495e-03 + 3.544498488187401e-03 3.536603947761108e-03 3.528718030587010e-03 3.520840749407267e-03 3.512972109975055e-03 + 3.505112127471606e-03 3.497260824593953e-03 3.489418209893856e-03 3.481584291815555e-03 3.473759083632174e-03 + 3.465942599385497e-03 3.458134849136788e-03 3.450335838875430e-03 3.442545588595099e-03 3.434764116831954e-03 + 3.426991428902786e-03 3.419227535146918e-03 3.411472449427477e-03 3.403726185233638e-03 3.395988749408295e-03 + 3.388260149964055e-03 3.380540409506120e-03 3.372829541439428e-03 3.365127551327278e-03 3.357434450344299e-03 + 3.349750251864305e-03 3.342074968176267e-03 3.334408603200120e-03 3.326751169911567e-03 3.319102691777129e-03 + 3.311463175183513e-03 3.303832626198486e-03 3.296211059114474e-03 3.288598486024217e-03 3.280994915398627e-03 + 3.273400352769854e-03 3.265814815709593e-03 3.258238322074859e-03 3.250670876135365e-03 3.243112486983179e-03 + 3.235563167624456e-03 3.228022929479646e-03 3.220491779361285e-03 3.212969724272006e-03 3.205456783570964e-03 + 3.197952970426890e-03 3.190458290104943e-03 3.182972751519780e-03 3.175496366385864e-03 3.168029146873250e-03 + 3.160571096621216e-03 3.153122225636278e-03 3.145682555500280e-03 3.138252093348739e-03 3.130830843615626e-03 + 3.123418817816768e-03 3.116016027518625e-03 3.108622481356378e-03 3.101238183229207e-03 3.093863147897005e-03 + 3.086497392737253e-03 3.079140921752824e-03 3.071793741871484e-03 3.064455864252268e-03 3.057127299904285e-03 + 3.049808055146270e-03 3.042498134791386e-03 3.035197556645182e-03 3.027906333235584e-03 3.020624467536793e-03 + 3.013351968343262e-03 3.006088846580162e-03 2.998835112089031e-03 2.991590768047797e-03 2.984355822285627e-03 + 2.977130294631421e-03 2.969914192263928e-03 2.962707518230782e-03 2.955510282832787e-03 2.948322496039390e-03 + 2.941144165204636e-03 2.933975293458325e-03 2.926815893073326e-03 2.919665980487675e-03 2.912525559332239e-03 + 2.905394635071103e-03 2.898273217656210e-03 2.891161316595433e-03 2.884058936906487e-03 2.876966081111658e-03 + 2.869882766189157e-03 2.862809005041444e-03 2.855744798230348e-03 2.848690153100023e-03 2.841645079496137e-03 + 2.834609585256340e-03 2.827583673848185e-03 2.820567351490293e-03 2.813560634590312e-03 2.806563530531927e-03 + 2.799576041999259e-03 2.792598177467573e-03 2.785629945309582e-03 2.778671351607254e-03 2.771722398039775e-03 + 2.764783095014263e-03 2.757853459091809e-03 2.750933492568204e-03 2.744023198517816e-03 2.737122585640385e-03 + 2.730231662189404e-03 2.723350432970404e-03 2.716478899800820e-03 2.709617075896625e-03 2.702764973241287e-03 + 2.695922593060963e-03 2.689089940152226e-03 2.682267022316270e-03 2.675453847914084e-03 2.668650418902243e-03 + 2.661856738145520e-03 2.655072822033232e-03 2.648298678030288e-03 2.641534306206961e-03 2.634779712258937e-03 + 2.628034904058933e-03 2.621299888635041e-03 2.614574665771587e-03 2.607859242632423e-03 2.601153634957146e-03 + 2.594457844452072e-03 2.587771872555374e-03 2.581095727373358e-03 2.574429415266960e-03 2.567772939497474e-03 + 2.561126300777387e-03 2.554489510835181e-03 2.547862581281132e-03 2.541245510713479e-03 2.534638303078699e-03 + 2.528040966193904e-03 2.521453505493298e-03 2.514875922225054e-03 2.508308218200437e-03 2.501750407164573e-03 + 2.495202496081871e-03 2.488664484118587e-03 2.482136376281468e-03 2.475618178705269e-03 2.469109895957427e-03 + 2.462611527825166e-03 2.456123079328407e-03 2.449644563898542e-03 2.443175984269443e-03 2.436717340526153e-03 + 2.430268636964234e-03 2.423829879853036e-03 2.417401073311931e-03 2.410982215756923e-03 2.404573315098301e-03 + 2.398174382071132e-03 2.391785416912405e-03 2.385406421217447e-03 2.379037399546287e-03 2.372678357701878e-03 + 2.366329296305038e-03 2.359990214012962e-03 2.353661123666590e-03 2.347342032379030e-03 2.341032936953993e-03 + 2.334733840455562e-03 2.328444748068140e-03 2.322165663885325e-03 2.315896586946297e-03 2.309637519733881e-03 + 2.303388473653537e-03 2.297149451184649e-03 2.290920451297887e-03 2.284701476927273e-03 2.278492533074980e-03 + 2.272293622898508e-03 2.266104742447669e-03 2.259925897918875e-03 2.253757100645447e-03 2.247598348619136e-03 + 2.241449641489242e-03 2.235310983406359e-03 2.229182378556762e-03 2.223063827011661e-03 2.216955326220785e-03 + 2.210856885615230e-03 2.204768511855369e-03 2.198690202073136e-03 2.192621957162963e-03 2.186563780523993e-03 + 2.180515675851768e-03 2.174477640514074e-03 2.168449674335647e-03 2.162431789038673e-03 2.156423986093689e-03 + 2.150426261719325e-03 2.144438618887063e-03 2.138461061015507e-03 2.132493589319895e-03 2.126536199820428e-03 + 2.120588896234097e-03 2.114651688169617e-03 2.108724573757348e-03 2.102807551461262e-03 2.096900623831682e-03 + 2.091003792760502e-03 2.085117057433877e-03 2.079240415028002e-03 2.073373872799373e-03 2.067517436442142e-03 + 2.061671101563673e-03 2.055834867994772e-03 2.050008738194652e-03 2.044192713868095e-03 2.038386792128391e-03 + 2.032590971333173e-03 2.026805260662020e-03 2.021029661329869e-03 2.015264168518725e-03 2.009508783500123e-03 + 2.003763508166370e-03 1.998028342654997e-03 1.992303282805534e-03 1.986588330078225e-03 1.980883492165770e-03 + 1.975188767039759e-03 1.969504151730439e-03 1.963829647004430e-03 1.958165254218237e-03 1.952510971963634e-03 + 1.946866794889960e-03 1.941232728159857e-03 1.935608777640074e-03 1.929994938329363e-03 1.924391207914093e-03 + 1.918797587114099e-03 1.913214077256622e-03 1.907640674795718e-03 1.902077375557082e-03 1.896524186430478e-03 + 1.890981108949087e-03 1.885448138032121e-03 1.879925272541809e-03 1.874412513138102e-03 1.868909859971047e-03 + 1.863417306389931e-03 1.857934851379391e-03 1.852462503653811e-03 1.847000259754348e-03 1.841548114039762e-03 + 1.836106066817225e-03 1.830674118529854e-03 1.825252266916765e-03 1.819840505202892e-03 1.814438836319749e-03 + 1.809047265638602e-03 1.803665787133681e-03 1.798294397101445e-03 1.792933095135866e-03 1.787581880369786e-03 + 1.782240749155103e-03 1.776909697172910e-03 1.771588728179710e-03 1.766277842767543e-03 1.760977035675204e-03 + 1.755686304337379e-03 1.750405647484752e-03 1.745135063548007e-03 1.739874546386865e-03 1.734624093589025e-03 + 1.729383711586370e-03 1.724153396315838e-03 1.718933140719367e-03 1.713722944309894e-03 1.708522806163372e-03 + 1.703332722978997e-03 1.698152687791741e-03 1.692982700783420e-03 1.687822765464940e-03 1.682672875794938e-03 + 1.677533027054054e-03 1.672403217813849e-03 1.667283446525115e-03 1.662173708173832e-03 1.657073995739192e-03 + 1.651984312946546e-03 1.646904660364047e-03 1.641835029387390e-03 1.636775416468660e-03 1.631725820220986e-03 + 1.626686238226539e-03 1.621656663682810e-03 1.616637091835148e-03 1.611627526662728e-03 1.606627964700548e-03 + 1.601638398623349e-03 1.596658825754688e-03 1.591689243408400e-03 1.586729647378206e-03 1.581780030725023e-03 + 1.576840391697073e-03 1.571910732264727e-03 1.566991046477593e-03 1.562081328242421e-03 1.557181574037859e-03 + 1.552291781114454e-03 1.547411944138861e-03 1.542542055154552e-03 1.537682115822498e-03 1.532832126356767e-03 + 1.527992077470792e-03 1.523161963747274e-03 1.518341782422417e-03 1.513531530571088e-03 1.508731200913292e-03 + 1.503940786876937e-03 1.499160290964809e-03 1.494389709200610e-03 1.489629032745148e-03 1.484878257820629e-03 + 1.480137381279299e-03 1.475406398389162e-03 1.470685299850305e-03 1.465974082141071e-03 1.461272748080975e-03 + 1.456581290224651e-03 1.451899700275850e-03 1.447227974089072e-03 1.442566108566721e-03 1.437914097994959e-03 + 1.433271932504185e-03 1.428639611034298e-03 1.424017133356480e-03 1.419404490680891e-03 1.414801676491448e-03 + 1.410208686553135e-03 1.405625516589791e-03 1.401052158609908e-03 1.396488604511052e-03 1.391934855472548e-03 + 1.387390907364871e-03 1.382856750165021e-03 1.378332378783991e-03 1.373817788890047e-03 1.369312974750468e-03 + 1.364817927255285e-03 1.360332641059443e-03 1.355857116711623e-03 1.351391347026849e-03 1.346935323100728e-03 + 1.342489039284644e-03 1.338052491255308e-03 1.333625672740901e-03 1.329208572800934e-03 1.324801188462658e-03 + 1.320403519143769e-03 1.316015555822497e-03 1.311637290544184e-03 1.307268717472159e-03 1.302909831116118e-03 + 1.298560623326278e-03 1.294221085253892e-03 1.289891216124110e-03 1.285571011566486e-03 1.281260461060531e-03 + 1.276959557618139e-03 1.272668295740209e-03 1.268386669608614e-03 1.264114669618853e-03 1.259852288349743e-03 + 1.255599524419093e-03 1.251356371085625e-03 1.247122819189722e-03 1.242898861265979e-03 1.238684491359706e-03 + 1.234479702756933e-03 1.230284484841117e-03 1.226098832748256e-03 1.221922744434409e-03 1.217756210326720e-03 + 1.213599221362577e-03 1.209451770765583e-03 1.205313852635065e-03 1.201185458480448e-03 1.197066577985755e-03 + 1.192957208640432e-03 1.188857345511447e-03 1.184766976969275e-03 1.180686095693037e-03 1.176614695732404e-03 + 1.172552769621902e-03 1.168500307042727e-03 1.164457299537124e-03 1.160423745213695e-03 1.156399636114517e-03 + 1.152384961360659e-03 1.148379714206853e-03 1.144383887440774e-03 1.140397472403066e-03 1.136420458871837e-03 + 1.132452840804467e-03 1.128494614815977e-03 1.124545770440235e-03 1.120606297984056e-03 1.116676190709075e-03 + 1.112755440623707e-03 1.108844038267568e-03 1.104941973598277e-03 1.101049242215234e-03 1.097165838523137e-03 + 1.093291750933755e-03 1.089426970747485e-03 1.085571490835547e-03 1.081725303225761e-03 1.077888396808512e-03 + 1.074060761522748e-03 1.070242395009795e-03 1.066433289590875e-03 1.062633433332422e-03 1.058842817553080e-03 + 1.055061434373011e-03 1.051289275348505e-03 1.047526329409495e-03 1.043772588486000e-03 1.040028047931513e-03 + 1.036292698203525e-03 1.032566529042292e-03 1.028849531681517e-03 1.025141697676040e-03 1.021443017315572e-03 + 1.017753479165712e-03 1.014073077446178e-03 1.010401806565697e-03 1.006739654876394e-03 1.003086612170896e-03 + 9.994426698862881e-04 9.958078198244436e-04 9.921820510029489e-04 9.885653522799815e-04 9.849577193159157e-04 + 9.813591440739670e-04 9.777696142556011e-04 9.741891204675346e-04 9.706176542328248e-04 9.670552065524777e-04 + 9.635017651512704e-04 9.599573207794398e-04 9.564218691437683e-04 9.528953995809905e-04 9.493779002331982e-04 + 9.458693621672339e-04 9.423697766254766e-04 9.388791334439822e-04 9.353974200435674e-04 9.319246293443443e-04 + 9.284607555133966e-04 9.250057861419034e-04 9.215597102726345e-04 9.181225189615299e-04 9.146942031524666e-04 + 9.112747514066988e-04 9.078641516289516e-04 9.044623983719834e-04 9.010694834242857e-04 8.976853937790154e-04 + 8.943101192935385e-04 8.909436508104612e-04 8.875859786393426e-04 8.842370902316334e-04 8.808969751654204e-04 + 8.775656281905130e-04 8.742430385918343e-04 8.709291937982416e-04 8.676240840155020e-04 8.643276998573467e-04 + 8.610400308208924e-04 8.577610636611962e-04 8.544907899714905e-04 8.512292035626933e-04 8.479762917886125e-04 + 8.447320428739457e-04 8.414964471843920e-04 8.382694949325988e-04 8.350511744137459e-04 8.318414728923707e-04 + 8.286403836395943e-04 8.254478982373706e-04 8.222640032931049e-04 8.190886878204532e-04 8.159219419987107e-04 + 8.127637556794064e-04 8.096141160179775e-04 8.064730115089579e-04 8.033404360997527e-04 8.002163789609624e-04 + 7.971008268111541e-04 7.939937692507287e-04 7.908951962853333e-04 7.878050969946667e-04 7.847234577702081e-04 + 7.816502689905088e-04 7.785855239466778e-04 7.755292098590464e-04 7.724813142232633e-04 7.694418267842021e-04 + 7.664107372089749e-04 7.633880335334087e-04 7.603737023812342e-04 7.573677358642847e-04 7.543701253849379e-04 + 7.513808572285544e-04 7.483999196962093e-04 7.454273024026923e-04 7.424629947358947e-04 7.395069836664074e-04 + 7.365592567622367e-04 7.336198070174806e-04 7.306886236388442e-04 7.277656929130117e-04 7.248510036837761e-04 + 7.219445453636994e-04 7.190463067357669e-04 7.161562739946586e-04 7.132744364309508e-04 7.104007867132190e-04 + 7.075353120392018e-04 7.046779992824802e-04 7.018288375861283e-04 6.989878161882759e-04 6.961549229362052e-04 + 6.933301438820412e-04 6.905134700383686e-04 6.877048926511914e-04 6.849043978549774e-04 6.821119732944710e-04 + 6.793276080246700e-04 6.765512910034699e-04 6.737830090783149e-04 6.710227490756584e-04 6.682705030776122e-04 + 6.655262603091742e-04 6.627900067379164e-04 6.600617305924390e-04 6.573414207627890e-04 6.546290656955580e-04 + 6.519246513982958e-04 6.492281662548372e-04 6.465396024423735e-04 6.438589471596415e-04 6.411861867028291e-04 + 6.385213096762252e-04 6.358643049114898e-04 6.332151601148890e-04 6.305738609661260e-04 6.279403974635571e-04 + 6.253147606410383e-04 6.226969365620930e-04 6.200869123319087e-04 6.174846765257772e-04 6.148902176504979e-04 + 6.123035224628875e-04 6.097245772740803e-04 6.071533733723410e-04 6.045898999580564e-04 6.020341426510520e-04 + 5.994860891934145e-04 5.969457280748620e-04 5.944130474177512e-04 5.918880332091087e-04 5.893706730594447e-04 + 5.868609584534629e-04 5.843588766665737e-04 5.818644136544619e-04 5.793775576682911e-04 5.768982970317317e-04 + 5.744266191686133e-04 5.719625097277512e-04 5.695059578510202e-04 5.670569542308351e-04 5.646154849082753e-04 + 5.621815365284883e-04 5.597550972743215e-04 5.573361553519681e-04 5.549246974872960e-04 5.525207095632259e-04 + 5.501241820142805e-04 5.477351040267441e-04 5.453534610951853e-04 5.429792405131840e-04 5.406124304314462e-04 + 5.382530187447214e-04 5.359009913605971e-04 5.335563351904396e-04 5.312190411682156e-04 5.288890968140364e-04 + 5.265664878332606e-04 5.242512018091515e-04 5.219432267978740e-04 5.196425502978362e-04 5.173491576918976e-04 + 5.150630373381158e-04 5.127841797796618e-04 5.105125710953982e-04 5.082481974966798e-04 5.059910467933278e-04 + 5.037411069671739e-04 5.014983647643853e-04 4.992628057533249e-04 4.970344196034297e-04 4.948131954905409e-04 + 4.925991188614672e-04 4.903921766298550e-04 4.881923566574878e-04 4.859996466359864e-04 4.838140324815327e-04 + 4.816355005995136e-04 4.794640414647377e-04 4.772996426854546e-04 4.751422896755638e-04 4.729919697488023e-04 + 4.708486707166207e-04 4.687123799720691e-04 4.665830828962369e-04 4.644607671738101e-04 4.623454230212830e-04 + 4.602370366779194e-04 4.581355941018685e-04 4.560410828358216e-04 4.539534906171381e-04 4.518728041821612e-04 + 4.497990089033435e-04 4.477320938149108e-04 4.456720481170030e-04 4.436188572707195e-04 4.415725078895158e-04 + 4.395329875976124e-04 4.375002838422590e-04 4.354743826722610e-04 4.334552702201095e-04 4.314429363226086e-04 + 4.294373687059989e-04 4.274385527576286e-04 4.254464755700176e-04 4.234611247199864e-04 4.214824874479911e-04 + 4.195105492176435e-04 4.175452972239935e-04 4.155867214135851e-04 4.136348082067204e-04 4.116895433467350e-04 + 4.097509141339746e-04 4.078189081189173e-04 4.058935120995524e-04 4.039747114386321e-04 4.020624945699733e-04 + 4.001568506324645e-04 3.982577652062802e-04 3.963652246433777e-04 3.944792163840573e-04 3.925997278951708e-04 + 3.907267452820787e-04 3.888602542761684e-04 3.870002443827855e-04 3.851467035420477e-04 3.832996170232135e-04 + 3.814589716941001e-04 3.796247550166885e-04 3.777969542187427e-04 3.759755548771444e-04 3.741605437648361e-04 + 3.723519105456335e-04 3.705496418343326e-04 3.687537232626712e-04 3.669641420580878e-04 3.651808856652343e-04 + 3.634039408935104e-04 3.616332930379869e-04 3.598689301103073e-04 3.581108413327368e-04 3.563590123412032e-04 + 3.546134293224166e-04 3.528740796868620e-04 3.511409507353364e-04 3.494140287293094e-04 3.476932993968030e-04 + 3.459787517007610e-04 3.442703736842207e-04 3.425681507579447e-04 3.408720696736798e-04 3.391821178070990e-04 + 3.374982823340253e-04 3.358205489790399e-04 3.341489042294683e-04 3.324833375391577e-04 3.308238358267097e-04 + 3.291703846864138e-04 3.275229711235071e-04 3.258815824857735e-04 3.242462057388915e-04 3.226168264116891e-04 + 3.209934320343741e-04 3.193760116170641e-04 3.177645512713499e-04 3.161590371207419e-04 3.145594562690266e-04 + 3.129657961319975e-04 3.113780432227079e-04 3.097961831114660e-04 3.082202043645004e-04 3.066500952444524e-04 + 3.050858414009347e-04 3.035274294402161e-04 3.019748466354355e-04 3.004280802320956e-04 2.988871162192853e-04 + 2.973519409077311e-04 2.958225434173786e-04 2.942989109163873e-04 2.927810290941792e-04 2.912688849504159e-04 + 2.897624658129895e-04 2.882617587216531e-04 2.867667493909568e-04 2.852774250910157e-04 2.837937747837379e-04 + 2.823157848000407e-04 2.808434412718301e-04 2.793767313619733e-04 2.779156424588856e-04 2.764601612241833e-04 + 2.750102732798498e-04 2.735659669757869e-04 2.721272307826111e-04 2.706940504177620e-04 2.692664125118005e-04 + 2.678443044384447e-04 2.664277133531666e-04 2.650166254907073e-04 2.636110271946842e-04 2.622109073508727e-04 + 2.608162534146021e-04 2.594270512444905e-04 2.580432877716125e-04 2.566649503351083e-04 2.552920261463284e-04 + 2.539245011192165e-04 2.525623623480746e-04 2.512055988243127e-04 2.498541971146173e-04 2.485081433825346e-04 + 2.471674249383843e-04 2.458320291468696e-04 2.445019428356345e-04 2.431771519464020e-04 2.418576445147758e-04 + 2.405434090455539e-04 2.392344316436903e-04 2.379306989304936e-04 2.366321982706708e-04 2.353389171046539e-04 + 2.340508418959193e-04 2.327679588365217e-04 2.314902568213100e-04 2.302177235947735e-04 2.289503450019842e-04 + 2.276881081822984e-04 2.264310006278554e-04 2.251790095285085e-04 2.239321211178975e-04 2.226903224828012e-04 + 2.214536025966827e-04 2.202219483393713e-04 2.189953459440866e-04 2.177737827672056e-04 2.165572463172210e-04 + 2.153457236927424e-04 2.141392010208329e-04 2.129376661694288e-04 2.117411078009580e-04 2.105495123800498e-04 + 2.093628666254358e-04 2.081811579562958e-04 2.070043738711933e-04 2.058325011765904e-04 2.046655262979033e-04 + 2.035034378928387e-04 2.023462239716796e-04 2.011938707312936e-04 2.000463653117907e-04 1.989036953143001e-04 + 1.977658482429478e-04 1.966328105707422e-04 1.955045692837424e-04 1.943811134060168e-04 1.932624302421221e-04 + 1.921485062157297e-04 1.910393287336514e-04 1.899348854684124e-04 1.888351638115297e-04 1.877401500482506e-04 + 1.866498319949601e-04 1.855641985831636e-04 1.844832365124926e-04 1.834069326310023e-04 1.823352746298841e-04 + 1.812682501147551e-04 1.802058461455679e-04 1.791480493724017e-04 1.780948483852737e-04 1.770462314872484e-04 + 1.760021851824818e-04 1.749626967491274e-04 1.739277539439587e-04 1.728973444305181e-04 1.718714550470096e-04 + 1.708500728855944e-04 1.698331869571933e-04 1.688207849549946e-04 1.678128535713188e-04 1.668093803524777e-04 + 1.658103531111011e-04 1.648157594964937e-04 1.638255861976382e-04 1.628398210066413e-04 1.618584529166454e-04 + 1.608814690931768e-04 1.599088565742865e-04 1.589406031206167e-04 1.579766966509897e-04 1.570171246224424e-04 + 1.560618738321770e-04 1.551109328208930e-04 1.541642902068764e-04 1.532219328717612e-04 1.522838482661923e-04 + 1.513500243337891e-04 1.504204489591066e-04 1.494951093483970e-04 1.485739927662749e-04 1.476570882997282e-04 + 1.467443839796364e-04 1.458358667202351e-04 1.449315243896633e-04 1.440313449862068e-04 1.431353162531848e-04 + 1.422434254066872e-04 1.413556604013758e-04 1.404720102486319e-04 1.395924625558734e-04 1.387170046489957e-04 + 1.378456244430427e-04 1.369783100559194e-04 1.361150493062282e-04 1.352558293490397e-04 1.344006387024136e-04 + 1.335494662293593e-04 1.327022993333140e-04 1.318591256583063e-04 1.310199332689028e-04 1.301847103692820e-04 + 1.293534446013900e-04 1.285261234477974e-04 1.277027359881715e-04 1.268832706365997e-04 1.260677147052468e-04 + 1.252560562359565e-04 1.244482834803957e-04 1.236443845356053e-04 1.228443469528238e-04 1.220481588198588e-04 + 1.212558093699401e-04 1.204672865809282e-04 1.196825780471873e-04 1.189016720308052e-04 1.181245568536085e-04 + 1.173512205995857e-04 1.165816508484800e-04 1.158158362776897e-04 1.150537660210759e-04 1.142954277590100e-04 + 1.135408094568152e-04 1.127898995954114e-04 1.120426864956402e-04 1.112991581353023e-04 1.105593024093304e-04 + 1.098231085283700e-04 1.090905652465313e-04 1.083616601800625e-04 1.076363816399760e-04 1.069147182196831e-04 + 1.061966583782502e-04 1.054821899944032e-04 1.047713013150353e-04 1.040639818640637e-04 1.033602200082437e-04 + 1.026600035826387e-04 1.019633211976323e-04 1.012701615275282e-04 1.005805130149820e-04 9.989436355203399e-05 + 9.921170194739147e-05 9.853251765411631e-05 9.785679881782247e-05 9.718453366352614e-05 9.651571091087277e-05 + 9.585031930594751e-05 9.518834724915350e-05 9.452978284703146e-05 9.387461543789448e-05 9.322283420353250e-05 + 9.257442723618249e-05 9.192938310286574e-05 9.128769066247626e-05 9.064933872161225e-05 9.001431561187756e-05 + 8.938260983500139e-05 8.875421104519957e-05 8.812910809646098e-05 8.750728925694059e-05 8.688874335824857e-05 + 8.627345936363417e-05 8.566142611724158e-05 8.505263195150667e-05 8.444706587898619e-05 8.384471762172232e-05 + 8.324557578035348e-05 8.264962891132210e-05 8.205686604727953e-05 8.146727626544971e-05 8.088084838175318e-05 + 8.029757088191735e-05 7.971743327705584e-05 7.914042512047892e-05 7.856653495630607e-05 7.799575166346450e-05 + 7.742806441871695e-05 7.686346239245813e-05 7.630193435494130e-05 7.574346911053080e-05 7.518805653837606e-05 + 7.463568593117825e-05 7.408634594826592e-05 7.354002575090044e-05 7.299671464423979e-05 7.245640185167563e-05 + 7.191907614532941e-05 7.138472679150608e-05 7.085334380230530e-05 7.032491623916224e-05 6.979943301854977e-05 + 6.927688351841825e-05 6.875725716877753e-05 6.824054320182008e-05 6.772673050550591e-05 6.721580881996242e-05 + 6.670776807704407e-05 6.620259726868480e-05 6.570028562031883e-05 6.520082266140781e-05 6.470419793220322e-05 + 6.421040064958054e-05 6.371941996817583e-05 6.323124601185380e-05 6.274586851226631e-05 6.226327655003573e-05 + 6.178345963615301e-05 6.130640743984757e-05 6.083210957777482e-05 6.036055527561582e-05 5.989173409263222e-05 + 5.942563633391719e-05 5.896225154191688e-05 5.850156903007261e-05 5.804357852627766e-05 5.758826983099529e-05 + 5.713563260712647e-05 5.668565617514362e-05 5.623833053838233e-05 5.579364600051564e-05 5.535159201768813e-05 + 5.491215819134343e-05 5.447533442712218e-05 5.404111064124177e-05 5.360947650466450e-05 5.318042157160001e-05 + 5.275393622516995e-05 5.233001062811153e-05 5.190863431238880e-05 5.148979716458554e-05 5.107348923404401e-05 + 5.065970053025621e-05 5.024842074849432e-05 4.983963979263951e-05 4.943334827635427e-05 4.902953621108006e-05 + 4.862819332553702e-05 4.822930973793706e-05 4.783287562882953e-05 4.743888107972067e-05 4.704731588033618e-05 + 4.665817033540254e-05 4.627143510842172e-05 4.588710014690383e-05 4.550515545082771e-05 4.512559130332447e-05 + 4.474839802715817e-05 4.437356575264515e-05 4.400108444300858e-05 4.363094478314062e-05 4.326313737450849e-05 + 4.289765220307346e-05 4.253447954450777e-05 4.217360984935306e-05 4.181503354031293e-05 4.145874078526325e-05 + 4.110472186234567e-05 4.075296770939578e-05 4.040346881442376e-05 4.005621534517384e-05 3.971119780891244e-05 + 3.936840678851008e-05 3.902783280379881e-05 3.868946611492773e-05 3.835329736378580e-05 3.801931758461789e-05 + 3.768751721520911e-05 3.735788667634669e-05 3.703041665089796e-05 3.670509786268472e-05 3.638192090588934e-05 + 3.606087620758478e-05 3.574195476070656e-05 3.542514758568229e-05 3.511044516462031e-05 3.479783817623805e-05 + 3.448731747191980e-05 3.417887390941621e-05 3.387249813623169e-05 3.356818082938366e-05 3.326591326488256e-05 + 3.296568640239042e-05 3.266749086476883e-05 3.237131756688427e-05 3.207715751232477e-05 3.178500166911470e-05 + 3.149484077201404e-05 3.120666582870710e-05 3.092046825328168e-05 3.063623897047349e-05 3.035396883732847e-05 + 3.007364895961203e-05 2.979527048619034e-05 2.951882447255356e-05 2.924430180184470e-05 2.897169381596313e-05 + 2.870099196601076e-05 2.843218722351712e-05 2.816527069305565e-05 2.790023364581556e-05 2.763706736588794e-05 + 2.737576298520704e-05 2.711631161938774e-05 2.685870489191871e-05 2.660293422952212e-05 2.634899073350601e-05 + 2.609686574272242e-05 2.584655068622352e-05 2.559803697386157e-05 2.535131582907573e-05 2.510637865851451e-05 + 2.486321726016628e-05 2.462182305120829e-05 2.438218734168926e-05 2.414430166313400e-05 2.390815760058303e-05 + 2.367374667612129e-05 2.344106023464476e-05 2.321008999935892e-05 2.298082786356460e-05 2.275326527748312e-05 + 2.252739378233606e-05 2.230320509258137e-05 2.208069093512809e-05 2.185984291941186e-05 2.164065260635458e-05 + 2.142311199522572e-05 2.120721298028661e-05 2.099294714303281e-05 2.078030625998752e-05 2.056928220029127e-05 + 2.035986682231265e-05 2.015205183896797e-05 1.994582907956633e-05 1.974119073954575e-05 1.953812872162773e-05 + 1.933663479825456e-05 1.913670094979531e-05 1.893831919578259e-05 1.874148151575467e-05 1.854617976080873e-05 + 1.835240605058427e-05 1.816015268982217e-05 1.796941162992672e-05 1.778017486956627e-05 1.759243456762222e-05 + 1.740618289118282e-05 1.722141193137039e-05 1.703811372777776e-05 1.685628066375182e-05 1.667590509374455e-05 + 1.649697910104339e-05 1.631949489857415e-05 1.614344479286407e-05 1.596882111103627e-05 1.579561606259506e-05 + 1.562382191518076e-05 1.545343126338709e-05 1.528443649706141e-05 1.511682986511545e-05 1.495060379262073e-05 + 1.478575075387210e-05 1.462226320346460e-05 1.446013347627832e-05 1.429935410828208e-05 1.413991783947596e-05 + 1.398181711799591e-05 1.382504440087988e-05 1.366959229690567e-05 1.351545344207288e-05 1.336262041089977e-05 + 1.321108569966174e-05 1.306084210743495e-05 1.291188246012095e-05 1.276419932540445e-05 1.261778537439798e-05 + 1.247263337350260e-05 1.232873611168182e-05 1.218608628547451e-05 1.204467661277090e-05 1.190450010670460e-05 + 1.176554964839514e-05 1.162781797531038e-05 1.149129796332477e-05 1.135598253898601e-05 1.122186462622714e-05 + 1.108893706038782e-05 1.095719281332111e-05 1.082662505098182e-05 1.069722672643097e-05 1.056899077370047e-05 + 1.044191025341683e-05 1.031597825830204e-05 1.019118784797653e-05 1.006753201372614e-05 9.945003972957807e-06 + 9.823597003224701e-06 9.703304169766936e-06 9.584118614966616e-06 9.466033570975281e-06 9.349042284940899e-06 + 9.233137946012443e-06 9.118313747892748e-06 9.004563126071509e-06 8.891879438415634e-06 8.780255908737012e-06 + 8.669685879934477e-06 8.560162746518096e-06 8.451679906731882e-06 8.344230688978416e-06 8.237808513777729e-06 + 8.132406985376577e-06 8.028019552616531e-06 7.924639629701503e-06 7.822260741691212e-06 7.720876445763237e-06 + 7.620480284148957e-06 7.521065743540658e-06 7.422626477381218e-06 7.325156218634066e-06 7.228648532638821e-06 + 7.133097034958690e-06 7.038495423985100e-06 6.944837416133499e-06 6.852116691729515e-06 6.760326924607246e-06 + 6.669461983453847e-06 6.579515704432944e-06 6.490481806747385e-06 6.402354101863004e-06 6.315126452251840e-06 + 6.228792731669073e-06 6.143346764859859e-06 6.058782435540508e-06 5.975093791198315e-06 5.892274772590937e-06 + 5.810319279027480e-06 5.729221306547671e-06 5.648974882411472e-06 5.569574030477156e-06 5.491012732167998e-06 + 5.413285091010444e-06 5.336385298912571e-06 5.260307420244722e-06 5.185045547999291e-06 5.110593849728286e-06 + 5.036946516955677e-06 4.964097720721464e-06 4.892041619202182e-06 4.820772525961763e-06 4.750284753859853e-06 + 4.680572517390150e-06 4.611630102585562e-06 4.543451844884654e-06 4.476032095169469e-06 4.409365173309600e-06 + 4.343445435493855e-06 4.278267378107974e-06 4.213825432046252e-06 4.150113986510229e-06 4.087127510654963e-06 + 4.024860505544460e-06 3.963307478207591e-06 3.902462905546128e-06 3.842321351732513e-06 3.782877469285005e-06 + 3.724125818875267e-06 3.666060976275786e-06 3.608677584308628e-06 3.551970310325800e-06 3.495933813913828e-06 + 3.440562742860537e-06 3.385851865026623e-06 3.331795968547279e-06 3.278389763636986e-06 3.225628015585682e-06 + 3.173505536483180e-06 3.122017155106099e-06 3.071157684657154e-06 3.020921961442045e-06 2.971304937503200e-06 + 2.922301530764381e-06 2.873906622400171e-06 2.826115159163556e-06 2.778922119160790e-06 2.732322492500433e-06 + 2.686311250918327e-06 2.640883427466542e-06 2.596034137909800e-06 2.551758437600915e-06 2.508051388712647e-06 + 2.464908112415978e-06 2.422323753722291e-06 2.380293459852445e-06 2.338812372063220e-06 2.297875719562253e-06 + 2.257478763762930e-06 2.217616712073996e-06 2.178284811840686e-06 2.139478353112250e-06 2.101192645402220e-06 + 2.063422994293474e-06 2.026164721213360e-06 1.989413239181793e-06 1.953163950788084e-06 1.917412231009713e-06 + 1.882153506609316e-06 1.847383234461138e-06 1.813096887995954e-06 1.779289933937322e-06 1.745957881749227e-06 + 1.713096313387221e-06 1.680700776153704e-06 1.648766820412035e-06 1.617290047665242e-06 1.586266083282953e-06 + 1.555690561349229e-06 1.525559115412809e-06 1.495867444877275e-06 1.466611286844381e-06 1.437786342321971e-06 + 1.409388342689011e-06 1.381413059137875e-06 1.353856283643994e-06 1.326713811980504e-06 1.299981452903499e-06 + 1.273655087535907e-06 1.247730601634883e-06 1.222203862466376e-06 1.197070780161529e-06 1.172327293218336e-06 + 1.147969358200551e-06 1.123992934949297e-06 1.100394014305713e-06 1.077168647815731e-06 1.054312872343777e-06 + 1.031822727943270e-06 1.009694299029158e-06 9.879236928228051e-07 9.665070295488333e-07 9.454404356909418e-07 + 9.247200854784831e-07 9.043421911847067e-07 8.843029477247774e-07 8.645985728173436e-07 8.452253193362285e-07 + 8.261794626052351e-07 8.074572875932502e-07 7.890550921071068e-07 7.709692301619030e-07 7.531960701353248e-07 + 7.357319715620587e-07 7.185733287203112e-07 7.017165630618881e-07 6.851581162834306e-07 6.688944388625421e-07 + 6.529220052598067e-07 6.372373411274385e-07 6.218369717692920e-07 6.067174274527125e-07 5.918752755194360e-07 + 5.773071063798692e-07 5.630095271034721e-07 5.489791556312369e-07 5.352126455394792e-07 5.217066864180125e-07 + 5.084579644193884e-07 4.954631845887763e-07 4.827190834887087e-07 4.702224204045173e-07 4.579699684713550e-07 + 4.459585154334098e-07 4.341848919935187e-07 4.226459485782965e-07 4.113385363883691e-07 4.002595352312233e-07 + 3.894058504065020e-07 3.787744086301839e-07 3.683621500987016e-07 3.581660355932383e-07 3.481830676805770e-07 + 3.384102581524441e-07 3.288446273745833e-07 3.194832275224818e-07 3.103231330843525e-07 3.013614373207315e-07 + 2.925952486098954e-07 2.840217031010630e-07 2.756379695267500e-07 2.674412234106971e-07 2.594286576386206e-07 + 2.515974937029081e-07 2.439449754383926e-07 2.364683632309526e-07 2.291649345383248e-07 2.220320002407473e-07 + 2.150668931442167e-07 2.082669548865648e-07 2.016295514473211e-07 1.951520727682157e-07 1.888319311586693e-07 + 1.826665552837694e-07 1.766533931743509e-07 1.707899271779558e-07 1.650736547045015e-07 1.595020857916059e-07 + 1.540727581256184e-07 1.487832309302349e-07 1.436310837043274e-07 1.386139140291348e-07 1.337293426531939e-07 + 1.289750194034745e-07 1.243486077550924e-07 1.198477884856861e-07 1.154702687444825e-07 1.112137774078364e-07 + 1.070760615754017e-07 1.030548878714015e-07 9.914804983102429e-08 9.535336319532080e-08 9.166865877274502e-08 + 8.809178921148019e-08 8.462062987184363e-08 8.125307865123530e-08 7.798705169188094e-08 7.482048486743137e-08 + 7.175134265372113e-08 6.877760756933380e-08 6.589727849023001e-08 6.310837918621049e-08 6.040895419177239e-08 + 5.779706919084610e-08 5.527080986023133e-08 5.282828275733461e-08 5.046762055622123e-08 4.818697371034567e-08 + 4.598451068334482e-08 4.385842456607357e-08 4.180692971968811e-08 3.982825980405518e-08 3.792066966127786e-08 + 3.608243718277188e-08 3.431186206040581e-08 3.260726312426322e-08 3.096697968233847e-08 2.938937298745983e-08 + 2.787282684203093e-08 2.641574418968914e-08 2.501654849393015e-08 2.367368813134603e-08 2.238563078881267e-08 + 2.115086344400587e-08 1.996789606940446e-08 1.883525886916157e-08 1.775150390948272e-08 1.671520402936120e-08 + 1.572495208680648e-08 1.477936511938296e-08 1.387707990026544e-08 1.301675220490221e-08 1.219706138041649e-08 + 1.141670750179082e-08 1.067441065312196e-08 9.968913113355902e-09 9.298978133402818e-09 8.663390331238368e-09 + 8.060955677291694e-09 7.490500025975069e-09 6.950870854385858e-09 6.440937996309972e-09 5.959590797852082e-09 + 5.505739944416565e-09 5.078318901633865e-09 4.676280806472903e-09 4.298600029449081e-09 3.944272776496124e-09 + 3.612315204086912e-09 3.301765808464261e-09 3.011683971683484e-09 2.741149022073358e-09 2.489263438950313e-09 + 2.255150010734707e-09 2.037951439802415e-09 1.836833426869985e-09 1.650981924522248e-09 1.479603458288696e-09 + 1.321927088896133e-09 1.177201927023745e-09 1.044698361371603e-09 9.237089042804517e-10 8.135457713165132e-10 + 7.135428727606122e-10 6.230561233086797e-10 5.414610837010692e-10 4.681552957722881e-10 4.025579739718386e-10 + 3.441080911031397e-10 2.922668865200973e-10 2.465167169238545e-10 2.063598966733955e-10 1.713213823559041e-10 + 1.409467301732644e-10 1.148017117805301e-10 9.247489436372923e-11 7.357503403670199e-11 5.773147403071901e-11 + 4.459623415664643e-11 3.384125546419585e-11 2.515956035071991e-11 1.826656159304613e-11 1.289741553721677e-11 + 8.808852910154413e-12 5.779611749592996e-12 3.608107240050744e-12 2.114775563702074e-12 1.141629414770904e-12 + 5.504076981088132e-13 2.252028793998774e-13 7.135404618680312e-14 1.400208835054596e-14 2.858282411901289e-16 + 0.000000000000000e+00 3.280907692410757e+00 6.559093802140417e+00 9.834554467967374e+00 1.310728583537977e+01 + 1.637728405657552e+01 1.964454529046227e+01 2.290906570265743e+01 2.617084146548816e+01 2.942986875799139e+01 + 3.268614376591378e+01 3.593966268171175e+01 3.919042170455148e+01 4.243841704030890e+01 4.568364490156970e+01 + 4.892610150762930e+01 5.216578308449292e+01 5.540268586487547e+01 5.863680608820168e+01 6.186814000060598e+01 + 6.509668385493259e+01 6.832243391073550e+01 7.154538643427834e+01 7.476553769853463e+01 7.798288398318758e+01 + 8.119742157463018e+01 8.440914676596513e+01 8.761805585700493e+01 9.082414515427180e+01 9.402741097099775e+01 + 9.722784962712448e+01 1.004254574493035e+02 1.036202307708961e+02 1.068121659319733e+02 1.100012592793157e+02 + 1.131875071664140e+02 1.163709059534683e+02 1.195514520073887e+02 1.227291417017950e+02 1.259039714170167e+02 + 1.290759375400930e+02 1.322450364647731e+02 1.354112645915156e+02 1.385746183274891e+02 1.417350940865720e+02 + 1.448926882893522e+02 1.480473973631275e+02 1.511992177419055e+02 1.543481458664036e+02 1.574941781840487e+02 + 1.606373111489777e+02 1.637775412220371e+02 1.669148648707833e+02 1.700492785694823e+02 1.731807787991100e+02 + 1.763093620473519e+02 1.794350248086033e+02 1.825577635839695e+02 1.856775748812652e+02 1.887944552150149e+02 + 1.919084011064531e+02 1.950194090835239e+02 1.981274756808810e+02 2.012325974398883e+02 2.043347709086188e+02 + 2.074339926418558e+02 2.105302592010923e+02 2.136235671545306e+02 2.167139130770834e+02 2.198012935503726e+02 + 2.228857051627302e+02 2.259671445091978e+02 2.290456081915269e+02 2.321210928181784e+02 2.351935950043234e+02 + 2.382631113718425e+02 2.413296385493261e+02 2.443931731720744e+02 2.474537118820972e+02 2.505112513281143e+02 + 2.535657881655549e+02 2.566173190565586e+02 2.596658406699738e+02 2.627113496813596e+02 2.657538427729843e+02 + 2.687933166338259e+02 2.718297679595726e+02 2.748631934526219e+02 2.778935898220815e+02 2.809209537837683e+02 + 2.839452820602094e+02 2.869665713806416e+02 2.899848184810112e+02 2.930000201039745e+02 2.960121729988974e+02 + 2.990212739218558e+02 3.020273196356349e+02 3.050303069097302e+02 3.080302325203465e+02 3.110270932503987e+02 + 3.140208858895110e+02 3.170116072340180e+02 3.199992540869634e+02 3.229838232581013e+02 3.259653115638948e+02 + 3.289437158275174e+02 3.319190328788521e+02 3.348912595544916e+02 3.378603926977383e+02 3.408264291586049e+02 + 3.437893657938130e+02 3.467491994667945e+02 3.497059270476910e+02 3.526595454133537e+02 3.556100514473437e+02 + 3.585574420399318e+02 3.615017140880985e+02 3.644428644955341e+02 3.673808901726388e+02 3.703157880365222e+02 + 3.732475550110041e+02 3.761761880266134e+02 3.791016840205897e+02 3.820240399368814e+02 3.849432527261474e+02 + 3.878593193457557e+02 3.907722367597846e+02 3.936820019390219e+02 3.965886118609651e+02 3.994920635098217e+02 + 4.023923538765087e+02 4.052894799586530e+02 4.081834387605912e+02 4.110742272933696e+02 4.139618425747443e+02 + 4.168462816291812e+02 4.197275414878559e+02 4.226056191886540e+02 4.254805117761704e+02 4.283522163017099e+02 + 4.312207298232872e+02 4.340860494056267e+02 4.369481721201628e+02 4.398070950450389e+02 4.426628152651090e+02 + 4.455153298719365e+02 4.483646359637945e+02 4.512107306456656e+02 4.540536110292430e+02 4.568932742329288e+02 + 4.597297173818351e+02 4.625629376077841e+02 4.653929320493071e+02 4.682196978516460e+02 4.710432321667516e+02 + 4.738635321532851e+02 4.766805949766169e+02 4.794944178088276e+02 4.823049978287075e+02 4.851123322217564e+02 + 4.879164181801841e+02 4.907172529029099e+02 4.935148335955632e+02 4.963091574704831e+02 4.991002217467178e+02 + 5.018880236500261e+02 5.046725604128764e+02 5.074538292744463e+02 5.102318274806237e+02 5.130065522840063e+02 + 5.157780009439010e+02 5.185461707263250e+02 5.213110589040049e+02 5.240726627563774e+02 5.268309795695885e+02 + 5.295860066364945e+02 5.323377412566609e+02 5.350861807363634e+02 5.378313223885873e+02 5.405731635330272e+02 + 5.433117014960885e+02 5.460469336108854e+02 5.487788572172420e+02 5.515074696616928e+02 5.542327682974811e+02 + 5.569547504845609e+02 5.596734135895950e+02 5.623887549859570e+02 5.651007720537292e+02 5.678094621797045e+02 + 5.705148227573850e+02 5.732168511869830e+02 5.759155448754203e+02 5.786109012363282e+02 5.813029176900482e+02 + 5.839915916636313e+02 5.866769205908384e+02 5.893589019121401e+02 5.920375330747167e+02 5.947128115324583e+02 + 5.973847347459648e+02 6.000533001825459e+02 6.027185053162206e+02 6.053803476277183e+02 6.080388246044777e+02 + 6.106939337406476e+02 6.133456725370861e+02 6.159940385013617e+02 6.186390291477520e+02 6.212806419972447e+02 + 6.239188745775372e+02 6.265537244230364e+02 6.291851890748597e+02 6.318132660808333e+02 6.344379529954938e+02 + 6.370592473800871e+02 6.396771468025696e+02 6.422916488376064e+02 6.449027510665734e+02 6.475104510775553e+02 + 6.501147464653474e+02 6.527156348314542e+02 6.553131137840901e+02 6.579071809381794e+02 6.604978339153558e+02 + 6.630850703439634e+02 6.656688878590552e+02 6.682492841023947e+02 6.708262567224546e+02 6.733998033744177e+02 + 6.759699217201766e+02 6.785366094283333e+02 6.810998641742000e+02 6.836596836397980e+02 6.862160655138592e+02 + 6.887690074918247e+02 6.913185072758453e+02 6.938645625747821e+02 6.964071711042051e+02 6.989463305863949e+02 + 7.014820387503412e+02 7.040142933317441e+02 7.065430920730126e+02 7.090684327232666e+02 7.115903130383348e+02 + 7.141087307807558e+02 7.166236837197782e+02 7.191351696313601e+02 7.216431862981700e+02 7.241477315095852e+02 + 7.266488030616937e+02 7.291463987572921e+02 7.316405164058881e+02 7.341311538236981e+02 7.366183088336488e+02 + 7.391019792653765e+02 7.415821629552270e+02 7.440588577462564e+02 7.465320614882301e+02 7.490017720376235e+02 + 7.514679872576214e+02 7.539307050181191e+02 7.563899231957208e+02 7.588456396737411e+02 7.612978523422037e+02 + 7.637465590978424e+02 7.661917578441014e+02 7.686334464911333e+02 7.710716229558018e+02 7.735062851616793e+02 + 7.759374310390485e+02 7.783650585249019e+02 7.807891655629417e+02 7.832097501035795e+02 7.856268101039369e+02 + 7.880403435278453e+02 7.904503483458460e+02 7.928568225351897e+02 7.952597640798369e+02 7.976591709704585e+02 + 8.000550412044341e+02 8.024473727858536e+02 8.048361637255169e+02 8.072214120409334e+02 8.096031157563222e+02 + 8.119812729026120e+02 8.143558815174417e+02 8.167269396451593e+02 8.190944453368236e+02 8.214583966502021e+02 + 8.238187916497725e+02 8.261756284067224e+02 8.285289049989487e+02 8.308786195110586e+02 8.332247700343684e+02 + 8.355673546669050e+02 8.379063715134042e+02 8.402418186853124e+02 8.425736943007848e+02 8.449019964846872e+02 + 8.472267233685945e+02 8.495478730907921e+02 8.518654437962743e+02 8.541794336367457e+02 8.564898407706205e+02 + 8.587966633630226e+02 8.610998995857861e+02 8.633995476174539e+02 8.656956056432798e+02 8.679880718552264e+02 + 8.702769444519665e+02 8.725622216388828e+02 8.748439016280670e+02 8.771219826383219e+02 8.793964628951586e+02 + 8.816673406307990e+02 8.839346140841741e+02 8.861982815009252e+02 8.884583411334027e+02 8.907147912406675e+02 + 8.929676300884897e+02 8.952168559493493e+02 8.974624671024361e+02 8.997044618336495e+02 9.019428384355992e+02 + 9.041775952076036e+02 9.064087304556922e+02 9.086362424926032e+02 9.108601296377846e+02 9.130803902173951e+02 + 9.152970225643020e+02 9.175100250180832e+02 9.197193959250255e+02 9.219251336381268e+02 9.241272365170935e+02 + 9.263257029283417e+02 9.285205312449986e+02 9.307117198468995e+02 9.328992671205907e+02 9.350831714593277e+02 + 9.372634312630761e+02 9.394400449385104e+02 9.416130108990160e+02 9.437823275646871e+02 9.459479933623287e+02 + 9.481100067254541e+02 9.502683660942876e+02 9.524230699157629e+02 9.545741166435229e+02 9.567215047379214e+02 + 9.588652326660207e+02 9.610052989015940e+02 9.631417019251231e+02 9.652744402238004e+02 9.674035122915279e+02 + 9.695289166289172e+02 9.716506517432896e+02 9.737687161486764e+02 9.758831083658184e+02 9.779938269221661e+02 + 9.801008703518804e+02 9.822042371958310e+02 9.843039260015983e+02 9.863999353234714e+02 9.884922637224498e+02 + 9.905809097662435e+02 9.926658720292703e+02 9.947471490926598e+02 9.968247395442500e+02 9.988986419785891e+02 + 1.000968854996935e+03 1.003035377207256e+03 1.005098207224229e+03 1.007157343669241e+03 1.009212785170389e+03 + 1.011264530362480e+03 1.013312577887031e+03 1.015356926392268e+03 1.017397574533126e+03 1.019434520971252e+03 + 1.021467764375000e+03 1.023497303419437e+03 1.025523136786337e+03 1.027545263164185e+03 1.029563681248175e+03 + 1.031578389740212e+03 1.033589387348909e+03 1.035596672789591e+03 1.037600244784291e+03 1.039600102061752e+03 + 1.041596243357428e+03 1.043588667413480e+03 1.045577372978782e+03 1.047562358808916e+03 1.049543623666173e+03 + 1.051521166319557e+03 1.053494985544777e+03 1.055465080124256e+03 1.057431448847125e+03 1.059394090509224e+03 + 1.061353003913104e+03 1.063308187868025e+03 1.065259641189957e+03 1.067207362701581e+03 1.069151351232285e+03 + 1.071091605618170e+03 1.073028124702043e+03 1.074960907333424e+03 1.076889952368542e+03 1.078815258670335e+03 + 1.080736825108451e+03 1.082654650559248e+03 1.084568733905793e+03 1.086479074037864e+03 1.088385669851947e+03 + 1.090288520251241e+03 1.092187624145651e+03 1.094082980451794e+03 1.095974588092995e+03 1.097862445999292e+03 + 1.099746553107428e+03 1.101626908360861e+03 1.103503510709754e+03 1.105376359110983e+03 1.107245452528133e+03 + 1.109110789931497e+03 1.110972370298081e+03 1.112830192611597e+03 1.114684255862470e+03 1.116534559047833e+03 + 1.118381101171529e+03 1.120223881244111e+03 1.122062898282842e+03 1.123898151311694e+03 1.125729639361349e+03 + 1.127557361469200e+03 1.129381316679347e+03 1.131201504042604e+03 1.133017922616489e+03 1.134830571465235e+03 + 1.136639449659783e+03 1.138444556277782e+03 1.140245890403593e+03 1.142043451128286e+03 1.143837237549640e+03 + 1.145627248772146e+03 1.147413483907002e+03 1.149195942072117e+03 1.150974622392110e+03 1.152749523998310e+03 + 1.154520646028755e+03 1.156287987628192e+03 1.158051547948079e+03 1.159811326146585e+03 1.161567321388586e+03 + 1.163319532845669e+03 1.165067959696131e+03 1.166812601124979e+03 1.168553456323928e+03 1.170290524491405e+03 + 1.172023804832545e+03 1.173753296559195e+03 1.175478998889909e+03 1.177200911049953e+03 1.178919032271301e+03 + 1.180633361792637e+03 1.182343898859357e+03 1.184050642723563e+03 1.185753592644071e+03 1.187452747886402e+03 + 1.189148107722792e+03 1.190839671432183e+03 1.192527438300227e+03 1.194211407619287e+03 1.195891578688435e+03 + 1.197567950813455e+03 1.199240523306837e+03 1.200909295487783e+03 1.202574266682204e+03 1.204235436222721e+03 + 1.205892803448666e+03 1.207546367706079e+03 1.209196128347710e+03 1.210842084733019e+03 1.212484236228177e+03 + 1.214122582206062e+03 1.215757122046265e+03 1.217387855135084e+03 1.219014780865528e+03 1.220637898637316e+03 + 1.222257207856876e+03 1.223872707937346e+03 1.225484398298575e+03 1.227092278367119e+03 1.228696347576247e+03 + 1.230296605365935e+03 1.231893051182870e+03 1.233485684480449e+03 1.235074504718779e+03 1.236659511364675e+03 + 1.238240703891664e+03 1.239818081779981e+03 1.241391644516571e+03 1.242961391595090e+03 1.244527322515903e+03 + 1.246089436786084e+03 1.247647733919417e+03 1.249202213436398e+03 1.250752874864230e+03 1.252299717736826e+03 + 1.253842741594810e+03 1.255381945985516e+03 1.256917330462986e+03 1.258448894587972e+03 1.259976637927938e+03 + 1.261500560057056e+03 1.263020660556207e+03 1.264536939012984e+03 1.266049395021687e+03 1.267558028183329e+03 + 1.269062838105629e+03 1.270563824403019e+03 1.272060986696640e+03 1.273554324614341e+03 1.275043837790682e+03 + 1.276529525866934e+03 1.278011388491075e+03 1.279489425317796e+03 1.280963636008494e+03 1.282434020231280e+03 + 1.283900577660971e+03 1.285363307979095e+03 1.286822210873891e+03 1.288277286040307e+03 1.289728533179999e+03 + 1.291175952001336e+03 1.292619542219393e+03 1.294059303555960e+03 1.295495235739530e+03 1.296927338505312e+03 + 1.298355611595221e+03 1.299780054757883e+03 1.301200667748633e+03 1.302617450329516e+03 1.304030402269289e+03 + 1.305439523343415e+03 1.306844813334069e+03 1.308246272030136e+03 1.309643899227210e+03 1.311037694727594e+03 + 1.312427658340302e+03 1.313813789881058e+03 1.315196089172293e+03 1.316574556043153e+03 1.317949190329488e+03 + 1.319319991873862e+03 1.320686960525546e+03 1.322050096140523e+03 1.323409398581483e+03 1.324764867717829e+03 + 1.326116503425671e+03 1.327464305587830e+03 1.328808274093838e+03 1.330148408839934e+03 1.331484709729068e+03 + 1.332817176670901e+03 1.334145809581802e+03 1.335470608384850e+03 1.336791573009835e+03 1.338108703393256e+03 + 1.339421999478320e+03 1.340731461214948e+03 1.342037088559766e+03 1.343338881476113e+03 1.344636839934036e+03 + 1.345930963910293e+03 1.347221253388351e+03 1.348507708358388e+03 1.349790328817288e+03 1.351069114768650e+03 + 1.352344066222779e+03 1.353615183196692e+03 1.354882465714113e+03 1.356145913805479e+03 1.357405527507935e+03 + 1.358661306865335e+03 1.359913251928245e+03 1.361161362753938e+03 1.362405639406399e+03 1.363646081956323e+03 + 1.364882690481112e+03 1.366115465064880e+03 1.367344405798451e+03 1.368569512779358e+03 1.369790786111843e+03 + 1.371008225906858e+03 1.372221832282067e+03 1.373431605361840e+03 1.374637545277261e+03 1.375839652166119e+03 + 1.377037926172918e+03 1.378232367448867e+03 1.379422976151887e+03 1.380609752446609e+03 1.381792696504374e+03 + 1.382971808503231e+03 1.384147088627939e+03 1.385318537069970e+03 1.386486154027501e+03 1.387649939705423e+03 + 1.388809894315333e+03 1.389966018075540e+03 1.391118311211063e+03 1.392266773953630e+03 1.393411406541678e+03 + 1.394552209220356e+03 1.395689182241520e+03 1.396822325863737e+03 1.397951640352285e+03 1.399077125979150e+03 + 1.400198783023028e+03 1.401316611769325e+03 1.402430612510158e+03 1.403540785544351e+03 1.404647131177441e+03 + 1.405749649721672e+03 1.406848341496000e+03 1.407943206826088e+03 1.409034246044311e+03 1.410121459489754e+03 + 1.411204847508209e+03 1.412284410452182e+03 1.413360148680885e+03 1.414432062560241e+03 1.415500152462884e+03 + 1.416564418768155e+03 1.417624861862108e+03 1.418681482137504e+03 1.419734279993815e+03 1.420783255837224e+03 + 1.421828410080621e+03 1.422869743143608e+03 1.423907255452495e+03 1.424940947440303e+03 1.425970819546763e+03 + 1.426996872218314e+03 1.428019105908108e+03 1.429037521076003e+03 1.430052118188569e+03 1.431062897719085e+03 + 1.432069860147540e+03 1.433073005960632e+03 1.434072335651771e+03 1.435067849721075e+03 1.436059548675370e+03 + 1.437047433028196e+03 1.438031503299800e+03 1.439011760017138e+03 1.439988203713878e+03 1.440960834930396e+03 + 1.441929654213780e+03 1.442894662117825e+03 1.443855859203037e+03 1.444813246036631e+03 1.445766823192535e+03 + 1.446716591251382e+03 1.447662550800518e+03 1.448604702433997e+03 1.449543046752585e+03 1.450477584363755e+03 + 1.451408315881691e+03 1.452335241927287e+03 1.453258363128147e+03 1.454177680118583e+03 1.455093193539620e+03 + 1.456004904038989e+03 1.456912812271134e+03 1.457816918897206e+03 1.458717224585068e+03 1.459613730009291e+03 + 1.460506435851157e+03 1.461395342798658e+03 1.462280451546494e+03 1.463161762796076e+03 1.464039277255525e+03 + 1.464912995639670e+03 1.465782918670054e+03 1.466649047074924e+03 1.467511381589240e+03 1.468369922954673e+03 + 1.469224671919600e+03 1.470075629239112e+03 1.470922795675006e+03 1.471766171995790e+03 1.472605758976684e+03 + 1.473441557399614e+03 1.474273568053219e+03 1.475101791732846e+03 1.475926229240551e+03 1.476746881385102e+03 + 1.477563748981976e+03 1.478376832853358e+03 1.479186133828146e+03 1.479991652741944e+03 1.480793390437068e+03 + 1.481591347762545e+03 1.482385525574108e+03 1.483175924734204e+03 1.483962546111986e+03 1.484745390583318e+03 + 1.485524459030776e+03 1.486299752343644e+03 1.487071271417914e+03 1.487839017156289e+03 1.488602990468185e+03 + 1.489363192269722e+03 1.490119623483735e+03 1.490872285039765e+03 1.491621177874064e+03 1.492366302929595e+03 + 1.493107661156030e+03 1.493845253509749e+03 1.494579080953843e+03 1.495309144458115e+03 1.496035444999074e+03 + 1.496757983559942e+03 1.497476761130647e+03 1.498191778707831e+03 1.498903037294843e+03 1.499610537901742e+03 + 1.500314281545298e+03 1.501014269248990e+03 1.501710502043006e+03 1.502402980964245e+03 1.503091707056315e+03 + 1.503776681369534e+03 1.504457904960931e+03 1.505135378894241e+03 1.505809104239914e+03 1.506479082075105e+03 + 1.507145313483682e+03 1.507807799556220e+03 1.508466541390007e+03 1.509121540089038e+03 1.509772796764020e+03 + 1.510420312532367e+03 1.511064088518205e+03 1.511704125852369e+03 1.512340425672404e+03 1.512972989122564e+03 + 1.513601817353814e+03 1.514226911523828e+03 1.514848272796989e+03 1.515465902344391e+03 1.516079801343838e+03 + 1.516689970979842e+03 1.517296412443626e+03 1.517899126933124e+03 1.518498115652977e+03 1.519093379814537e+03 + 1.519684920635866e+03 1.520272739341736e+03 1.520856837163628e+03 1.521437215339733e+03 1.522013875114953e+03 + 1.522586817740897e+03 1.523156044475887e+03 1.523721556584951e+03 1.524283355339831e+03 1.524841442018975e+03 + 1.525395817907543e+03 1.525946484297405e+03 1.526493442487138e+03 1.527036693782033e+03 1.527576239494086e+03 + 1.528112080942007e+03 1.528644219451213e+03 1.529172656353831e+03 1.529697392988700e+03 1.530218430701367e+03 + 1.530735770844087e+03 1.531249414775829e+03 1.531759363862268e+03 1.532265619475790e+03 1.532768182995492e+03 + 1.533267055807180e+03 1.533762239303368e+03 1.534253734883281e+03 1.534741543952856e+03 1.535225667924735e+03 + 1.535706108218275e+03 1.536182866259539e+03 1.536655943481301e+03 1.537125341323045e+03 1.537591061230964e+03 + 1.538053104657961e+03 1.538511473063650e+03 1.538966167914353e+03 1.539417190683102e+03 1.539864542849641e+03 + 1.540308225900420e+03 1.540748241328602e+03 1.541184590634058e+03 1.541617275323370e+03 1.542046296909827e+03 + 1.542471656913432e+03 1.542893356860894e+03 1.543311398285634e+03 1.543725782727782e+03 1.544136511734178e+03 + 1.544543586858370e+03 1.544947009660620e+03 1.545346781707894e+03 1.545742904573873e+03 1.546135379838945e+03 + 1.546524209090207e+03 1.546909393921469e+03 1.547290935933248e+03 1.547668836732771e+03 1.548043097933976e+03 + 1.548413721157510e+03 1.548780708030729e+03 1.549144060187701e+03 1.549503779269201e+03 1.549859866922715e+03 + 1.550212324802440e+03 1.550561154569281e+03 1.550906357890854e+03 1.551247936441483e+03 1.551585891902203e+03 + 1.551920225960758e+03 1.552250940311604e+03 1.552578036655905e+03 1.552901516701533e+03 1.553221382163073e+03 + 1.553537634761818e+03 1.553850276225772e+03 1.554159308289647e+03 1.554464732694865e+03 1.554766551189559e+03 + 1.555064765528572e+03 1.555359377473454e+03 1.555650388792468e+03 1.555937801260586e+03 1.556221616659488e+03 + 1.556501836777564e+03 1.556778463409917e+03 1.557051498358356e+03 1.557320943431401e+03 1.557586800444283e+03 + 1.557849071218940e+03 1.558107757584023e+03 1.558362861374890e+03 1.558614384433611e+03 1.558862328608964e+03 + 1.559106695756438e+03 1.559347487738230e+03 1.559584706423249e+03 1.559818353687112e+03 1.560048431412147e+03 + 1.560274941487391e+03 1.560497885808591e+03 1.560717266278204e+03 1.560933084805396e+03 1.561145343306044e+03 + 1.561354043702732e+03 1.561559187924758e+03 1.561760777908126e+03 1.561958815595552e+03 1.562153302936461e+03 + 1.562344241886987e+03 1.562531634409975e+03 1.562715482474979e+03 1.562895788058264e+03 1.563072553142803e+03 + 1.563245779718279e+03 1.563415469781085e+03 1.563581625334326e+03 1.563744248387813e+03 1.563903340958068e+03 + 1.564058905068325e+03 1.564210942748526e+03 1.564359456035321e+03 1.564504446972073e+03 1.564645917608853e+03 + 1.564783870002442e+03 1.564918306216331e+03 1.565049228320720e+03 1.565176638392519e+03 1.565300538515349e+03 + 1.565420930779540e+03 1.565537817282130e+03 1.565651200126870e+03 1.565761081424219e+03 1.565867463291344e+03 + 1.565970347852125e+03 1.566069737237150e+03 1.566165633583717e+03 1.566258039035835e+03 1.566346955744220e+03 + 1.566432385866300e+03 1.566514331566212e+03 1.566592795014803e+03 1.566667778389629e+03 1.566739283874957e+03 + 1.566807313661764e+03 1.566871869947734e+03 1.566932954937263e+03 1.566990570841457e+03 1.567044719878131e+03 + 1.567095404271811e+03 1.567142626253729e+03 1.567186388061831e+03 1.567226691940771e+03 1.567263540141913e+03 + 1.567296934923331e+03 1.567326878549808e+03 1.567353373292836e+03 1.567376421430620e+03 1.567396025248071e+03 + 1.567412187036812e+03 1.567424909095176e+03 1.567434193728203e+03 1.567440043247646e+03 1.567442459971967e+03 + 1.567441446226336e+03 1.567437004342634e+03 1.567429136659453e+03 1.567417845522091e+03 1.567403133282561e+03 + 1.567385002299581e+03 1.567363454938582e+03 1.567338493571702e+03 1.567310120577791e+03 1.567278338342408e+03 + 1.567243149257822e+03 1.567204555723011e+03 1.567162560143663e+03 1.567117164932177e+03 1.567068372507660e+03 + 1.567016185295929e+03 1.566960605729512e+03 1.566901636247646e+03 1.566839279296277e+03 1.566773537328063e+03 + 1.566704412802369e+03 1.566631908185271e+03 1.566556025949555e+03 1.566476768574717e+03 1.566394138546961e+03 + 1.566308138359204e+03 1.566218770511069e+03 1.566126037508891e+03 1.566029941865714e+03 1.565930486101294e+03 + 1.565827672742092e+03 1.565721504321283e+03 1.565611983378751e+03 1.565499112461087e+03 1.565382894121595e+03 + 1.565263330920288e+03 1.565140425423888e+03 1.565014180205826e+03 1.564884597846246e+03 1.564751680931997e+03 + 1.564615432056643e+03 1.564475853820452e+03 1.564332948830408e+03 1.564186719700199e+03 1.564037169050227e+03 + 1.563884299507601e+03 1.563728113706142e+03 1.563568614286379e+03 1.563405803895550e+03 1.563239685187607e+03 + 1.563070260823207e+03 1.562897533469719e+03 1.562721505801220e+03 1.562542180498501e+03 1.562359560249057e+03 + 1.562173647747097e+03 1.561984445693539e+03 1.561791956796009e+03 1.561596183768845e+03 1.561397129333092e+03 + 1.561194796216507e+03 1.560989187153558e+03 1.560780304885418e+03 1.560568152159974e+03 1.560352731731822e+03 + 1.560134046362267e+03 1.559912098819323e+03 1.559686891877715e+03 1.559458428318879e+03 1.559226710930956e+03 + 1.558991742508803e+03 1.558753525853981e+03 1.558512063774766e+03 1.558267359086140e+03 1.558019414609795e+03 + 1.557768233174136e+03 1.557513817614273e+03 1.557256170772030e+03 1.556995295495938e+03 1.556731194641239e+03 + 1.556463871069885e+03 1.556193327650536e+03 1.555919567258564e+03 1.555642592776049e+03 1.555362407091783e+03 + 1.555079013101264e+03 1.554792413706704e+03 1.554502611817021e+03 1.554209610347846e+03 1.553913412221517e+03 + 1.553614020367084e+03 1.553311437720305e+03 1.553005667223649e+03 1.552696711826295e+03 1.552384574484129e+03 + 1.552069258159750e+03 1.551750765822466e+03 1.551429100448294e+03 1.551104265019960e+03 1.550776262526902e+03 + 1.550445095965265e+03 1.550110768337907e+03 1.549773282654394e+03 1.549432641931000e+03 1.549088849190713e+03 + 1.548741907463227e+03 1.548391819784946e+03 1.548038589198987e+03 1.547682218755173e+03 1.547322711510039e+03 + 1.546960070526829e+03 1.546594298875496e+03 1.546225399632705e+03 1.545853375881829e+03 1.545478230712950e+03 + 1.545099967222861e+03 1.544718588515066e+03 1.544334097699777e+03 1.543946497893915e+03 1.543555792221112e+03 + 1.543161983811711e+03 1.542765075802762e+03 1.542365071338026e+03 1.541961973567975e+03 1.541555785649789e+03 + 1.541146510747358e+03 1.540734152031283e+03 1.540318712678874e+03 1.539900195874149e+03 1.539478604807839e+03 + 1.539053942677383e+03 1.538626212686929e+03 1.538195418047336e+03 1.537761561976173e+03 1.537324647697717e+03 + 1.536884678442957e+03 1.536441657449592e+03 1.535995587962026e+03 1.535546473231378e+03 1.535094316515475e+03 + 1.534639121078853e+03 1.534180890192759e+03 1.533719627135150e+03 1.533255335190690e+03 1.532788017650757e+03 + 1.532317677813435e+03 1.531844318983518e+03 1.531367944472514e+03 1.530888557598635e+03 1.530406161686807e+03 + 1.529920760068664e+03 1.529432356082550e+03 1.528940953073517e+03 1.528446554393331e+03 1.527949163400464e+03 + 1.527448783460099e+03 1.526945417944129e+03 1.526439070231157e+03 1.525929743706494e+03 1.525417441762163e+03 + 1.524902167796895e+03 1.524383925216131e+03 1.523862717432025e+03 1.523338547863434e+03 1.522811419935932e+03 + 1.522281337081799e+03 1.521748302740024e+03 1.521212320356308e+03 1.520673393383061e+03 1.520131525279401e+03 + 1.519586719511159e+03 1.519038979550873e+03 1.518488308877793e+03 1.517934710977876e+03 1.517378189343791e+03 + 1.516818747474916e+03 1.516256388877339e+03 1.515691117063858e+03 1.515122935553979e+03 1.514551847873920e+03 + 1.513977857556607e+03 1.513400968141679e+03 1.512821183175479e+03 1.512238506211065e+03 1.511652940808203e+03 + 1.511064490533368e+03 1.510473158959745e+03 1.509878949667230e+03 1.509281866242427e+03 1.508681912278651e+03 + 1.508079091375926e+03 1.507473407140987e+03 1.506864863187277e+03 1.506253463134950e+03 1.505639210610869e+03 + 1.505022109248608e+03 1.504402162688449e+03 1.503779374577385e+03 1.503153748569118e+03 1.502525288324061e+03 + 1.501893997509335e+03 1.501259879798773e+03 1.500622938872914e+03 1.499983178419011e+03 1.499340602131025e+03 + 1.498695213709626e+03 1.498047016862194e+03 1.497396015302820e+03 1.496742212752304e+03 1.496085612938155e+03 + 1.495426219594593e+03 1.494764036462547e+03 1.494099067289655e+03 1.493431315830267e+03 1.492760785845442e+03 + 1.492087481102946e+03 1.491411405377259e+03 1.490732562449567e+03 1.490050956107769e+03 1.489366590146471e+03 + 1.488679468366991e+03 1.487989594577355e+03 1.487296972592300e+03 1.486601606233272e+03 1.485903499328426e+03 + 1.485202655712629e+03 1.484499079227457e+03 1.483792773721193e+03 1.483083743048834e+03 1.482371991072084e+03 + 1.481657521659358e+03 1.480940338685780e+03 1.480220446033183e+03 1.479497847590113e+03 1.478772547251821e+03 + 1.478044548920272e+03 1.477313856504138e+03 1.476580473918802e+03 1.475844405086357e+03 1.475105653935605e+03 + 1.474364224402058e+03 1.473620120427938e+03 1.472873345962177e+03 1.472123904960415e+03 1.471371801385004e+03 + 1.470617039205005e+03 1.469859622396187e+03 1.469099554941032e+03 1.468336840828730e+03 1.467571484055180e+03 + 1.466803488622991e+03 1.466032858541484e+03 1.465259597826687e+03 1.464483710501340e+03 1.463705200594890e+03 + 1.462924072143496e+03 1.462140329190026e+03 1.461353975784058e+03 1.460565015981880e+03 1.459773453846489e+03 + 1.458979293447591e+03 1.458182538861605e+03 1.457383194171656e+03 1.456581263467582e+03 1.455776750845927e+03 + 1.454969660409948e+03 1.454159996269611e+03 1.453347762541590e+03 1.452532963349272e+03 1.451715602822750e+03 + 1.450895685098830e+03 1.450073214321026e+03 1.449248194639563e+03 1.448420630211373e+03 1.447590525200101e+03 + 1.446757883776100e+03 1.445922710116434e+03 1.445085008404874e+03 1.444244782831905e+03 1.443402037594718e+03 + 1.442556776897215e+03 1.441709004950008e+03 1.440858725970420e+03 1.440005944182481e+03 1.439150663816933e+03 + 1.438292889111226e+03 1.437432624309523e+03 1.436569873662692e+03 1.435704641428314e+03 1.434836931870678e+03 + 1.433966749260786e+03 1.433094097876346e+03 1.432218982001777e+03 1.431341405928208e+03 1.430461373953479e+03 + 1.429578890382137e+03 1.428693959525441e+03 1.427806585701360e+03 1.426916773234569e+03 1.426024526456458e+03 + 1.425129849705122e+03 1.424232747325370e+03 1.423333223668719e+03 1.422431283093393e+03 1.421526929964331e+03 + 1.420620168653178e+03 1.419711003538289e+03 1.418799439004731e+03 1.417885479444278e+03 1.416969129255415e+03 + 1.416050392843337e+03 1.415129274619950e+03 1.414205779003866e+03 1.413279910420411e+03 1.412351673301618e+03 + 1.411421072086230e+03 1.410488111219700e+03 1.409552795154193e+03 1.408615128348581e+03 1.407675115268446e+03 + 1.406732760386080e+03 1.405788068180486e+03 1.404841043137375e+03 1.403891689749170e+03 1.402940012515001e+03 + 1.401986015940709e+03 1.401029704538846e+03 1.400071082828672e+03 1.399110155336157e+03 1.398146926593981e+03 + 1.397181401141535e+03 1.396213583524918e+03 1.395243478296938e+03 1.394271090017116e+03 1.393296423251680e+03 + 1.392319482573570e+03 1.391340272562432e+03 1.390358797804626e+03 1.389375062893219e+03 1.388389072427989e+03 + 1.387400831015423e+03 1.386410343268718e+03 1.385417613807782e+03 1.384422647259231e+03 1.383425448256391e+03 + 1.382426021439299e+03 1.381424371454700e+03 1.380420502956051e+03 1.379414420603515e+03 1.378406129063970e+03 + 1.377395633010999e+03 1.376382937124898e+03 1.375368046092671e+03 1.374350964608031e+03 1.373331697371403e+03 + 1.372310249089921e+03 1.371286624477428e+03 1.370260828254477e+03 1.369232865148331e+03 1.368202739892964e+03 + 1.367170457229056e+03 1.366136021904002e+03 1.365099438671902e+03 1.364060712293568e+03 1.363019847536522e+03 + 1.361976849174995e+03 1.360931721989928e+03 1.359884470768972e+03 1.358835100306487e+03 1.357783615403544e+03 + 1.356730020867921e+03 1.355674321514110e+03 1.354616522163310e+03 1.353556627643430e+03 1.352494642789090e+03 + 1.351430572441617e+03 1.350364421449050e+03 1.349296194666138e+03 1.348225896954338e+03 1.347153533181818e+03 + 1.346079108223457e+03 1.345002626960841e+03 1.343924094282267e+03 1.342843515082743e+03 1.341760894263984e+03 + 1.340676236734416e+03 1.339589547409177e+03 1.338500831210112e+03 1.337410093065776e+03 1.336317337911434e+03 + 1.335222570689062e+03 1.334125796347346e+03 1.333027019841677e+03 1.331926246134163e+03 1.330823480193616e+03 + 1.329718726995561e+03 1.328611991522230e+03 1.327503278762568e+03 1.326392593712228e+03 1.325279941373571e+03 + 1.324165326755672e+03 1.323048754874311e+03 1.321930230751983e+03 1.320809759417887e+03 1.319687345907936e+03 + 1.318562995264752e+03 1.317436712537665e+03 1.316308502782716e+03 1.315178371062656e+03 1.314046322446946e+03 + 1.312912362011755e+03 1.311776494839963e+03 1.310638726021160e+03 1.309499060651645e+03 1.308357503834428e+03 + 1.307214060679228e+03 1.306068736302473e+03 1.304921535827301e+03 1.303772464383560e+03 1.302621527107810e+03 + 1.301468729143317e+03 1.300314075640058e+03 1.299157571754721e+03 1.297999222650704e+03 1.296839033498112e+03 + 1.295677009473761e+03 1.294513155761180e+03 1.293347477550602e+03 1.292179980038974e+03 1.291010668429951e+03 + 1.289839547933899e+03 1.288666623767893e+03 1.287491901155716e+03 1.286315385327865e+03 1.285137081521542e+03 + 1.283956994980662e+03 1.282775130955849e+03 1.281591494704436e+03 1.280406091490466e+03 1.279218926584693e+03 + 1.278030005264579e+03 1.276839332814297e+03 1.275646914524728e+03 1.274452755693465e+03 1.273256861624810e+03 + 1.272059237629775e+03 1.270859889026079e+03 1.269658821138155e+03 1.268456039297144e+03 1.267251548840895e+03 + 1.266045355113969e+03 1.264837463467636e+03 1.263627879259876e+03 1.262416607855379e+03 1.261203654625543e+03 + 1.259989024948479e+03 1.258772724209004e+03 1.257554757798647e+03 1.256335131115646e+03 1.255113849564950e+03 + 1.253890918558217e+03 1.252666343513813e+03 1.251440129856817e+03 1.250212283019015e+03 1.248982808438904e+03 + 1.247751711561691e+03 1.246518997839292e+03 1.245284672730334e+03 1.244048741700151e+03 1.242811210220790e+03 + 1.241572083771006e+03 1.240331367836264e+03 1.239089067908740e+03 1.237845189487317e+03 1.236599738077590e+03 + 1.235352719191863e+03 1.234104138349150e+03 1.232854001075175e+03 1.231602312902370e+03 1.230349079369880e+03 + 1.229094306023557e+03 1.227837998415964e+03 1.226580162106373e+03 1.225320802660766e+03 1.224059925651835e+03 + 1.222797536658982e+03 1.221533641268318e+03 1.220268245072664e+03 1.219001353671552e+03 1.217732972671222e+03 + 1.216463107684624e+03 1.215191764331420e+03 1.213918948237977e+03 1.212644665037377e+03 1.211368920369408e+03 + 1.210091719880570e+03 1.208813069224072e+03 1.207532974059833e+03 1.206251440054480e+03 1.204968472881353e+03 + 1.203684078220499e+03 1.202398261758676e+03 1.201111029189351e+03 1.199822386212701e+03 1.198532338535615e+03 + 1.197240891871687e+03 1.195948051941225e+03 1.194653824471246e+03 1.193358215195474e+03 1.192061229854346e+03 + 1.190762874195007e+03 1.189463153971313e+03 1.188162074943828e+03 1.186859642879827e+03 1.185555863553295e+03 + 1.184250742744927e+03 1.182944286242125e+03 1.181636499839004e+03 1.180327389336388e+03 1.179016960541809e+03 + 1.177705219269511e+03 1.176392171340446e+03 1.175077822582277e+03 1.173762178829377e+03 1.172445245922827e+03 + 1.171127029710419e+03 1.169807536046655e+03 1.168486770792745e+03 1.167164739816612e+03 1.165841448992886e+03 + 1.164516904202907e+03 1.163191111334726e+03 1.161864076283103e+03 1.160535804949508e+03 1.159206303242120e+03 + 1.157875577075829e+03 1.156543632372233e+03 1.155210475059642e+03 1.153876111073074e+03 1.152540546354257e+03 + 1.151203786851631e+03 1.149865838520342e+03 1.148526707322247e+03 1.147186399225916e+03 1.145844920206624e+03 + 1.144502276246358e+03 1.143158473333815e+03 1.141813517464402e+03 1.140467414640234e+03 1.139120170870139e+03 + 1.137771792169650e+03 1.136422284561014e+03 1.135071654073185e+03 1.133719906741829e+03 1.132367048609320e+03 + 1.131013085724743e+03 1.129658024143891e+03 1.128301869929270e+03 1.126944629150092e+03 1.125586307882280e+03 + 1.124226912208469e+03 1.122866448218001e+03 1.121504922006928e+03 1.120142339678013e+03 1.118778707340729e+03 + 1.117414031111256e+03 1.116048317112488e+03 1.114681571474025e+03 1.113313800332179e+03 1.111945009829970e+03 + 1.110575206117129e+03 1.109204395350097e+03 1.107832583692024e+03 1.106459777312770e+03 1.105085982388904e+03 + 1.103711205103706e+03 1.102335451647166e+03 1.100958728215983e+03 1.099581041013564e+03 1.098202396250028e+03 + 1.096822800142205e+03 1.095442258913632e+03 1.094060778794555e+03 1.092678366021934e+03 1.091295026839436e+03 + 1.089910767497437e+03 1.088525594253023e+03 1.087139513369993e+03 1.085752531118851e+03 1.084364653776815e+03 + 1.082975887627809e+03 1.081586238962469e+03 1.080195714078142e+03 1.078804319278880e+03 1.077412060875450e+03 + 1.076018945185327e+03 1.074624978532693e+03 1.073230167248444e+03 1.071834517670182e+03 1.070438036142223e+03 + 1.069040729015589e+03 1.067642602648012e+03 1.066243663403937e+03 1.064843917654515e+03 1.063443371777609e+03 + 1.062042032157791e+03 1.060639905186343e+03 1.059236997261256e+03 1.057833314787232e+03 1.056428864175682e+03 + 1.055023651844726e+03 1.053617684219196e+03 1.052210967730631e+03 1.050803508817282e+03 1.049395313897890e+03 + 1.047986388534756e+03 1.046576737255851e+03 1.045166364529164e+03 1.043755274824231e+03 1.042343472612131e+03 + 1.040930962365484e+03 1.039517748558457e+03 1.038103835666756e+03 1.036689228167636e+03 1.035273930539893e+03 + 1.033857947263865e+03 1.032441282821436e+03 1.031023941696033e+03 1.029605928372625e+03 1.028187247337727e+03 + 1.026767903079397e+03 1.025347900087235e+03 1.023927242852386e+03 1.022505935867538e+03 1.021083983626923e+03 + 1.019661390626317e+03 1.018238161363038e+03 1.016814300335948e+03 1.015389812045455e+03 1.013964700993507e+03 + 1.012538971683598e+03 1.011112628620765e+03 1.009685676311588e+03 1.008258119264191e+03 1.006829961988242e+03 + 1.005401208994952e+03 1.003971864797076e+03 1.002541933908912e+03 1.001111420846301e+03 9.996803301266303e+02 + 9.982486662688275e+02 9.968164337933661e+02 9.953836372222621e+02 9.939502810790750e+02 9.925163698889086e+02 + 9.910819081784098e+02 9.896469004757686e+02 9.882113513107199e+02 9.867752652145410e+02 9.853386467200531e+02 + 9.839015003616214e+02 9.824638306751541e+02 9.810256421981031e+02 9.795869394694643e+02 9.781477270297768e+02 + 9.767080094211232e+02 9.752677911871300e+02 9.738270768729670e+02 9.723858710253478e+02 9.709441781925295e+02 + 9.695020029243127e+02 9.680593497720415e+02 9.666162232886040e+02 9.651726280284314e+02 9.637285685474986e+02 + 9.622840494033246e+02 9.608390751549712e+02 9.593936503630440e+02 9.579477795896925e+02 9.565014673986094e+02 + 9.550547183550314e+02 9.536075370257383e+02 9.521599279790540e+02 9.507118957848456e+02 9.492634450145238e+02 + 9.478145802410424e+02 9.463653060389005e+02 9.449156269841388e+02 9.434655476543426e+02 9.420150726286407e+02 + 9.405642064877048e+02 9.391129538137513e+02 9.376613191905399e+02 9.362093072033728e+02 9.347569224390970e+02 + 9.333041694861028e+02 9.318510529343232e+02 9.303975773752362e+02 9.289437474018629e+02 9.274895676087672e+02 + 9.260350425920570e+02 9.245801769493847e+02 9.231249752799448e+02 9.216694421844763e+02 9.202135822652619e+02 + 9.187574001261273e+02 9.173009003724419e+02 9.158440876111187e+02 9.143869664506148e+02 9.129295415009306e+02 + 9.114718173736089e+02 9.100137986817383e+02 9.085554900399494e+02 9.070968960644165e+02 9.056380213728581e+02 + 9.041788705845360e+02 9.027194483202552e+02 9.012597592023648e+02 8.997998078547574e+02 8.983395989028686e+02 + 8.968791369736786e+02 8.954184266957105e+02 8.939574726990309e+02 8.924962796152502e+02 8.910348520775226e+02 + 8.895731947205452e+02 8.881113121805595e+02 8.866492090953504e+02 8.851868901042455e+02 8.837243598481174e+02 + 8.822616229693809e+02 8.807986841119955e+02 8.793355479214636e+02 8.778722190448314e+02 8.764087021306887e+02 + 8.749450018291686e+02 8.734811227919481e+02 8.720170696722481e+02 8.705528471248323e+02 8.690884598060085e+02 + 8.676239123736278e+02 8.661592094870851e+02 8.646943558073189e+02 8.632293559968109e+02 8.617642147195870e+02 + 8.602989366412162e+02 8.588335264288111e+02 8.573679887510280e+02 8.559023282780669e+02 8.544365496816713e+02 + 8.529706576351281e+02 8.515046568132680e+02 8.500385518924651e+02 8.485723475506371e+02 8.471060484672456e+02 + 8.456396593232956e+02 8.441731848013352e+02 8.427066295854568e+02 8.412399983612960e+02 8.397732958160319e+02 + 8.383065266383875e+02 8.368396955186294e+02 8.353728071485672e+02 8.339058662215547e+02 8.324388774324890e+02 + 8.309718454778108e+02 8.295047750555044e+02 8.280376708650979e+02 8.265705376076626e+02 8.251033799858133e+02 + 8.236362027037090e+02 8.221690104670519e+02 8.207018079830875e+02 8.192345999606056e+02 8.177673911099388e+02 + 8.163001861429635e+02 8.148329897731001e+02 8.133658067153123e+02 8.118986416861073e+02 8.104314994035359e+02 + 8.089643845871925e+02 8.074973019582153e+02 8.060302562392853e+02 8.045632521546285e+02 8.030962944300132e+02 + 8.016293877927517e+02 8.001625369717000e+02 7.986957466972576e+02 7.972290217013673e+02 7.957623667175162e+02 + 7.942957864807344e+02 7.928292857275953e+02 7.913628691962167e+02 7.898965416262595e+02 7.884303077589279e+02 + 7.869641723369706e+02 7.854981401046790e+02 7.840322158078881e+02 7.825664041939773e+02 7.811007100118686e+02 + 7.796351380120283e+02 7.781696929464658e+02 7.767043795687346e+02 7.752392026339312e+02 7.737741668986956e+02 + 7.723092771212124e+02 7.708445380612087e+02 7.693799544799557e+02 7.679155311402681e+02 7.664512728065041e+02 + 7.649871842445651e+02 7.635232702218972e+02 7.620595355074889e+02 7.605959848718730e+02 7.591326230871256e+02 + 7.576694549268664e+02 7.562064851662584e+02 7.547437185820088e+02 7.532811599523681e+02 7.518188140571300e+02 + 7.503566856776325e+02 7.488947795967565e+02 7.474331005989271e+02 7.459716534701122e+02 7.445104429978242e+02 + 7.430494739711182e+02 7.415887511805935e+02 7.401282794183929e+02 7.386680634782024e+02 7.372081081552518e+02 + 7.357484182463149e+02 7.342889985497084e+02 7.328298538652926e+02 7.313709889944722e+02 7.299124087401947e+02 + 7.284541179069513e+02 7.269961213007771e+02 7.255384237292504e+02 7.240810300014931e+02 7.226239449281712e+02 + 7.211671733214938e+02 7.197107199952134e+02 7.182545897646269e+02 7.167987874465738e+02 7.153433178594373e+02 + 7.138881858231457e+02 7.124333961591685e+02 7.109789536905207e+02 7.095248632417597e+02 7.080711296389870e+02 + 7.066177577098478e+02 7.051647522835304e+02 7.037121181907675e+02 7.022598602638342e+02 7.008079833365500e+02 + 6.993564922442782e+02 6.979053918239249e+02 6.964546869139400e+02 6.950043823543177e+02 6.935544829865950e+02 + 6.921049936538523e+02 6.906559192007142e+02 6.892072644733491e+02 6.877590343194680e+02 6.863112335883264e+02 + 6.848638671307228e+02 6.834169397989994e+02 6.819704564470420e+02 6.805244219302806e+02 6.790788411056876e+02 + 6.776337188317796e+02 6.761890599686175e+02 6.747448693778041e+02 6.733011519224871e+02 6.718579124673579e+02 + 6.704151558786504e+02 6.689728870241429e+02 6.675311107731571e+02 6.660898319965579e+02 6.646490555667547e+02 + 6.632087863576994e+02 6.617690292448882e+02 6.603297891053608e+02 6.588910708177000e+02 6.574528792620325e+02 + 6.560152193200289e+02 6.545780958749028e+02 6.531415138114120e+02 6.517054780158572e+02 6.502699933760831e+02 + 6.488350647814780e+02 6.474006971229736e+02 6.459668952930450e+02 6.445336641857116e+02 6.431010086965356e+02 + 6.416689337226230e+02 6.402374441626239e+02 6.388065449167315e+02 6.373762408866819e+02 6.359465369757564e+02 + 6.345174380887786e+02 6.330889491321157e+02 6.316610750136796e+02 6.302338206429247e+02 6.288071909308491e+02 + 6.273811907899951e+02 6.259558251344477e+02 6.245310988798360e+02 6.231070169433332e+02 6.216835842436550e+02 + 6.202608057010611e+02 6.188386862373554e+02 6.174172307758844e+02 6.159964442415383e+02 6.145763315607522e+02 + 6.131568976615030e+02 6.117381474733122e+02 6.103200859272448e+02 6.089027179559087e+02 6.074860484934565e+02 + 6.060700824755835e+02 6.046548248395288e+02 6.032402805240755e+02 6.018264544695495e+02 6.004133516178208e+02 + 5.990009769123031e+02 5.975893352979532e+02 5.961784317212720e+02 5.947682711303036e+02 5.933588584746357e+02 + 5.919501987053994e+02 5.905422967752705e+02 5.891351576384668e+02 5.877287862507508e+02 5.863231875694282e+02 + 5.849183665533477e+02 5.835143281629030e+02 5.821110773600302e+02 5.807086191082091e+02 5.793069583724634e+02 + 5.779061001193606e+02 5.765060493170109e+02 5.751068109350690e+02 5.737083899447330e+02 5.723107913187440e+02 + 5.709140200313871e+02 5.695180810584912e+02 5.681229793774282e+02 5.667287199671144e+02 5.653353078080089e+02 + 5.639427478821145e+02 5.625510451729782e+02 5.611602046656897e+02 5.597702313468828e+02 5.583811302047351e+02 + 5.569929062289672e+02 5.556055644108436e+02 5.542191097431725e+02 5.528335472203050e+02 5.514488818381369e+02 + 5.500651185941068e+02 5.486822624871968e+02 5.473003185179330e+02 5.459192916883851e+02 5.445391870021655e+02 + 5.431600094644319e+02 5.417817640818839e+02 5.404044558627653e+02 5.390280898168637e+02 5.376526709555103e+02 + 5.362782042915790e+02 5.349046948394886e+02 5.335321476152006e+02 5.321605676362202e+02 5.307899599215965e+02 + 5.294203294919217e+02 5.280516813693320e+02 5.266840205775071e+02 5.253173521416702e+02 5.239516810885877e+02 + 5.225870124465707e+02 5.212233512454725e+02 5.198607025166908e+02 5.184990712931668e+02 5.171384626093851e+02 + 5.157788815013741e+02 5.144203330067055e+02 5.130628221644946e+02 5.117063540154008e+02 5.103509336016263e+02 + 5.089965659669175e+02 5.076432561565640e+02 5.062910092173990e+02 5.049398301977998e+02 5.035897241476866e+02 + 5.022406961185235e+02 5.008927511633182e+02 4.995458943366220e+02 4.982001306945292e+02 4.968554652946787e+02 + 4.955119031962524e+02 4.941694494599757e+02 4.928281091481178e+02 4.914878873244913e+02 4.901487890544524e+02 + 4.888108194049014e+02 4.874739834442815e+02 4.861382862425793e+02 4.848037328713260e+02 4.834703284035954e+02 + 4.821380779140055e+02 4.808069864787175e+02 4.794770591754360e+02 4.781483010834104e+02 4.768207172834317e+02 + 4.754943128578365e+02 4.741690928905032e+02 4.728450624668552e+02 4.715222266738587e+02 4.702005906000235e+02 + 4.688801593354034e+02 4.675609379715956e+02 4.662429316017405e+02 4.649261453205227e+02 4.636105842241698e+02 + 4.622962534104534e+02 4.609831579786886e+02 4.596713030297340e+02 4.583606936659914e+02 4.570513349914071e+02 + 4.557432321114703e+02 4.544363901332138e+02 4.531308141652141e+02 4.518265093175915e+02 4.505234807020092e+02 + 4.492217334316751e+02 4.479212726213398e+02 4.466221033872973e+02 4.453242308473862e+02 4.440276601209875e+02 + 4.427323963290266e+02 4.414384445939725e+02 4.401458100398370e+02 4.388544977921764e+02 4.375645129780900e+02 + 4.362758607262207e+02 4.349885461667554e+02 4.337025744314242e+02 4.324179506535007e+02 4.311346799678025e+02 + 4.298527675106906e+02 4.285722184200691e+02 4.272930378353866e+02 4.260152308976346e+02 4.247388027493482e+02 + 4.234637585346064e+02 4.221901033990317e+02 4.209178424897899e+02 4.196469809555908e+02 4.183775239466873e+02 + 4.171094766148764e+02 4.158428441134982e+02 4.145776315974367e+02 4.133138442231195e+02 4.120514871485177e+02 + 4.107905655331455e+02 4.095310845380616e+02 4.082730493258674e+02 4.070164650607085e+02 4.057613369082738e+02 + 4.045076700357962e+02 4.032554696120511e+02 4.020047408073589e+02 4.007554887935824e+02 3.995077187441286e+02 + 3.982614358339480e+02 3.970166452395346e+02 3.957733521389259e+02 3.945315617117033e+02 3.932912791389912e+02 + 3.920525096034583e+02 3.908152582893162e+02 3.895795303823206e+02 3.883453310697706e+02 3.871126655405087e+02 + 3.858815389849212e+02 3.846519565949380e+02 3.834239235640323e+02 3.821974450872211e+02 3.809725263610652e+02 + 3.797491725836686e+02 3.785273889546788e+02 3.773071806752873e+02 3.760885529482291e+02 3.748715109777822e+02 + 3.736560599697692e+02 3.724422051315553e+02 3.712299516720498e+02 3.700193048017055e+02 3.688102697325187e+02 + 3.676028516780295e+02 3.663970558533210e+02 3.651928874750207e+02 3.639903517612993e+02 3.627894539318706e+02 + 3.615901992079928e+02 3.603925928124674e+02 3.591966399696389e+02 3.580023459053963e+02 3.568097158471716e+02 + 3.556187550239405e+02 3.544294686662223e+02 3.532418620060801e+02 3.520559402771199e+02 3.508717087144923e+02 + 3.496891725548904e+02 3.485083370365518e+02 3.473292073992571e+02 3.461517888843309e+02 3.449760867346407e+02 + 3.438021061945983e+02 3.426298525101589e+02 3.414593309288210e+02 3.402905466996269e+02 3.391235050731623e+02 + 3.379582113015570e+02 3.367946706384836e+02 3.356328883391590e+02 3.344728696603431e+02 3.333146198603399e+02 + 3.321581441989965e+02 3.310034479377038e+02 3.298505363393963e+02 3.286994146685523e+02 3.275500881911931e+02 + 3.264025621748842e+02 3.252568418887342e+02 3.241129326033955e+02 3.229708395910641e+02 3.218305681254797e+02 + 3.206921234819250e+02 3.195555109372272e+02 3.184207357697562e+02 3.172878032594259e+02 3.161567186876940e+02 + 3.150274873375612e+02 3.139001144935722e+02 3.127746054418153e+02 3.116509654699221e+02 3.105291998670680e+02 + 3.094093139239718e+02 3.082913129328962e+02 3.071752021876472e+02 3.060609869835743e+02 3.049486726175709e+02 + 3.038382643880739e+02 3.027297675950632e+02 3.016231875400634e+02 3.005185295261418e+02 2.994157988579094e+02 + 2.983150008415209e+02 2.972161407846750e+02 2.961192239966130e+02 2.950242557881208e+02 2.939312414715272e+02 + 2.928401863607048e+02 2.917510957710699e+02 2.906639750195822e+02 2.895788294247451e+02 2.884956643066055e+02 + 2.874144849867538e+02 2.863352967883243e+02 2.852581050359946e+02 2.841829150559857e+02 2.831097321760628e+02 + 2.820385617255341e+02 2.809694090352515e+02 2.799022794376108e+02 2.788371782665511e+02 2.777741108575549e+02 + 2.767130825476488e+02 2.756540986754025e+02 2.745971645809293e+02 2.735422856058867e+02 2.724894670934750e+02 + 2.714387143884384e+02 2.703900328370648e+02 2.693434277871856e+02 2.682989045881756e+02 2.672564685909533e+02 + 2.662161251479810e+02 2.651778796132642e+02 2.641417373423522e+02 2.631077036923379e+02 2.620757840218578e+02 + 2.610459836910915e+02 2.600183080617631e+02 2.589927624971394e+02 2.579693523620314e+02 2.569480830227931e+02 + 2.559289598473227e+02 2.549119882050614e+02 2.538971734669946e+02 2.528845210056507e+02 2.518740361951020e+02 + 2.508657244109642e+02 2.498595910303967e+02 2.488556414321026e+02 2.478538809963281e+02 2.468543151048638e+02 + 2.458569491410431e+02 2.448617884897432e+02 2.438688385373852e+02 2.428781046719333e+02 2.418895922828956e+02 + 2.409033067613238e+02 2.399192534998131e+02 2.389374378925019e+02 2.379578653350729e+02 2.369805412247519e+02 + 2.360054709603084e+02 2.350326599420553e+02 2.340621135718494e+02 2.330938372530911e+02 2.321278363907239e+02 + 2.311641163912353e+02 2.302026826626565e+02 2.292435406145617e+02 2.282866956580692e+02 2.273321532058407e+02 + 2.263799186720815e+02 2.254299974725404e+02 2.244823950245099e+02 2.235371167468261e+02 2.225941680598685e+02 + 2.216535543855603e+02 2.207152811473682e+02 2.197793537703028e+02 2.188457776809178e+02 2.179145583073106e+02 + 2.169857010791227e+02 2.160592114275385e+02 2.151350947852860e+02 2.142133565866376e+02 2.132940022674083e+02 + 2.123770372649571e+02 2.114624670181867e+02 2.105502969675431e+02 2.096405325550162e+02 2.087331792241393e+02 + 2.078282424199890e+02 2.069257275891860e+02 2.060256401798943e+02 2.051279856418216e+02 2.042327694262190e+02 + 2.033399969858813e+02 2.024496737751469e+02 2.015618052498977e+02 2.006763968675590e+02 1.997934540871004e+02 + 1.989129823690343e+02 1.980349871754169e+02 1.971594739698481e+02 1.962864482174713e+02 1.954159153849736e+02 + 1.945478809405854e+02 1.936823503540812e+02 1.928193290967781e+02 1.919588226415381e+02 1.911008364627658e+02 + 1.902453760364096e+02 1.893924468399617e+02 1.885420543524577e+02 1.876942040544768e+02 1.868489014281417e+02 + 1.860061519571189e+02 1.851659611266184e+02 1.843283344233937e+02 1.834932773357418e+02 1.826607953535034e+02 + 1.818308939680629e+02 1.810035786723481e+02 1.801788549608304e+02 1.793567283295249e+02 1.785372042759901e+02 + 1.777202882993282e+02 1.769059859001850e+02 1.760943025807497e+02 1.752852438447554e+02 1.744788151974785e+02 + 1.736750221457390e+02 1.728738701979007e+02 1.720753648638706e+02 1.712795116550998e+02 1.704863160845825e+02 + 1.696957836668566e+02 1.689079199180039e+02 1.681227303556493e+02 1.673402204989617e+02 1.665603958686532e+02 + 1.657832619869799e+02 1.650088243777409e+02 1.642370885662795e+02 1.634680600794823e+02 1.627017444457793e+02 + 1.619381471951445e+02 1.611772738590951e+02 1.604191299706921e+02 1.596637210645399e+02 1.589110526767867e+02 + 1.581611303451241e+02 1.574139596087874e+02 1.566695460085554e+02 1.559278950867503e+02 1.551890123872385e+02 + 1.544529034554292e+02 1.537195738382757e+02 1.529890290842748e+02 1.522612747434666e+02 1.515363163674351e+02 + 1.508141595093076e+02 1.500948097237555e+02 1.493782725669932e+02 1.486645535967789e+02 1.479536583724143e+02 + 1.472455924547449e+02 1.465403614061596e+02 1.458379707905909e+02 1.451384261735148e+02 1.444417331219514e+02 + 1.437478972044633e+02 1.430569239911578e+02 1.423688190536853e+02 1.416835879652396e+02 1.410012363005585e+02 + 1.403217696359229e+02 1.396451935491577e+02 1.389715136196312e+02 1.383007354282553e+02 1.376328645574854e+02 + 1.369679065913208e+02 1.363058671153038e+02 1.356467517165207e+02 1.349905659836014e+02 1.343373155067194e+02 + 1.336870058775913e+02 1.330396426894780e+02 1.323952315371832e+02 1.317537780170550e+02 1.311152877269845e+02 + 1.304797662664065e+02 1.298472192362996e+02 1.292176522391855e+02 1.285910708791301e+02 1.279674807617425e+02 + 1.273468874941753e+02 1.267292966851250e+02 1.261147139448316e+02 1.255031448850783e+02 1.248945951191923e+02 + 1.242890702620443e+02 1.236865759300485e+02 1.230871177411627e+02 1.224907013148884e+02 1.218973322722703e+02 + 1.213070162358971e+02 1.207197588299010e+02 1.201355656799576e+02 1.195544424132864e+02 1.189763946586499e+02 + 1.184014280463548e+02 1.178295482082510e+02 1.172607607777323e+02 1.166950713897357e+02 1.161324856807421e+02 + 1.155730092887757e+02 1.150166478534045e+02 1.144634070157400e+02 1.139132924184372e+02 1.133663097056950e+02 + 1.128224645232555e+02 1.122817625184044e+02 1.117442093399712e+02 1.112098106383290e+02 1.106785720653942e+02 + 1.101504843345202e+02 1.096253193854976e+02 1.091027814759659e+02 1.085828903190926e+02 1.080656662057070e+02 + 1.075510744401853e+02 1.070391017583160e+02 1.065297369211215e+02 1.060229642403793e+02 1.055187689946627e+02 + 1.050171373101604e+02 1.045180558156006e+02 1.040215103049707e+02 1.035274865113781e+02 1.030359706887152e+02 + 1.025469492169604e+02 1.020604083357866e+02 1.015763340040288e+02 1.010947131078929e+02 1.006155327791835e+02 + 1.001387792631148e+02 9.966443911893010e+01 9.919249927205091e+01 9.872294669690289e+01 9.825576811144268e+01 + 9.779095024426459e+01 9.732848086108395e+01 9.686834738339628e+01 9.641053663288847e+01 9.595503591883143e+01 + 9.550183276437639e+01 9.505091470489599e+01 9.460226894357737e+01 9.415588307372171e+01 9.371174549820027e+01 + 9.326984390100915e+01 9.283016578095182e+01 9.239269910989660e+01 9.195743199867270e+01 9.152435246657959e+01 + 9.109344822825337e+01 9.066470776170968e+01 9.023811990175319e+01 8.981367265385576e+01 8.939135422700863e+01 + 8.897115319588202e+01 8.855305819940260e+01 8.813705766268812e+01 8.772313993524557e+01 8.731129428898021e+01 + 8.690150981214184e+01 8.649377498492467e+01 8.608807868460502e+01 8.568441000539183e+01 8.528275807208179e+01 + 8.488311171021131e+01 8.448546000255536e+01 8.408979283578468e+01 8.369609949978657e+01 8.330436902264381e+01 + 8.291459088961614e+01 8.252675470341519e+01 8.214085000107356e+01 8.175686603719873e+01 8.137479266933553e+01 + 8.099462018292702e+01 8.061633811896954e+01 8.023993612969721e+01 7.986540422509246e+01 7.949273245617202e+01 + 7.912191071864751e+01 7.875292880591886e+01 7.838577728963824e+01 7.802044667908689e+01 7.765692688210476e+01 + 7.729520814701189e+01 7.693528093921003e+01 7.657713574044320e+01 7.622076279877933e+01 7.586615250876412e+01 + 7.551329599462582e+01 7.516218394284439e+01 7.481280673973237e+01 7.446515517211270e+01 7.411922012543234e+01 + 7.377499243991551e+01 7.343246273248482e+01 7.309162206375170e+01 7.275246194060588e+01 7.241497325488510e+01 + 7.207914691168762e+01 7.174497413637995e+01 7.141244624067238e+01 7.108155440657860e+01 7.075228964021176e+01 + 7.042464364044737e+01 7.009860816502822e+01 6.977417437950896e+01 6.945133371117183e+01 6.913007780419414e+01 + 6.881039831641085e+01 6.849228672098478e+01 6.817573455985929e+01 6.786073404036127e+01 6.754727706019318e+01 + 6.723535518365489e+01 6.692496029976250e+01 6.661608442214438e+01 6.630871955818391e+01 6.600285747074972e+01 + 6.569849025826812e+01 6.539561050984807e+01 6.509421028016476e+01 6.479428156422156e+01 6.449581665898590e+01 + 6.419880794007263e+01 6.390324769379086e+01 6.360912802573969e+01 6.331644161216560e+01 6.302518126952705e+01 + 6.273533924838438e+01 6.244690800283556e+01 6.215988021335375e+01 6.187424856554645e+01 6.159000558852496e+01 + 6.130714382209544e+01 6.102565642873360e+01 6.074553634647369e+01 6.046677613965124e+01 6.018936867893675e+01 + 5.991330696615304e+01 5.963858400265185e+01 5.936519255461710e+01 5.909312563142009e+01 5.882237675846172e+01 + 5.855293899151076e+01 5.828480526925385e+01 5.801796883717194e+01 5.775242299813667e+01 5.748816098906929e+01 + 5.722517588172157e+01 5.696346118973321e+01 5.670301063052477e+01 5.644381744585571e+01 5.618587497447161e+01 + 5.592917675378749e+01 5.567371639288440e+01 5.541948735564524e+01 5.516648303666721e+01 5.491469740133566e+01 + 5.466412430128952e+01 5.441475721341882e+01 5.416658984866251e+01 5.391961604526729e+01 5.367382965707854e+01 + 5.342922435049869e+01 5.318579394824101e+01 5.294353276046760e+01 5.270243471566913e+01 5.246249358126801e+01 + 5.222370341980431e+01 5.198605834991378e+01 5.174955243603662e+01 5.151417956992881e+01 5.127993401538280e+01 + 5.104681029539683e+01 5.081480246751264e+01 5.058390465007635e+01 5.035411117607305e+01 5.012541641928832e+01 + 4.989781463692880e+01 4.967129999443014e+01 4.944586717469857e+01 4.922151081792142e+01 4.899822516393252e+01 + 4.877600466591702e+01 4.855484391176263e+01 4.833473749525371e+01 4.811567985888949e+01 4.789766553100244e+01 + 4.768068948486052e+01 4.746474643299185e+01 4.724983089968822e+01 4.703593761581940e+01 4.682306140175855e+01 + 4.661119706938157e+01 4.640033923440899e+01 4.619048280117971e+01 4.598162297433280e+01 4.577375454810339e+01 + 4.556687232031752e+01 4.536097129194708e+01 4.515604651624491e+01 4.495209295916556e+01 4.474910546848848e+01 + 4.454707932343867e+01 4.434600983627007e+01 4.414589194663536e+01 4.394672075425581e+01 4.374849149110094e+01 + 4.355119939554362e+01 4.335483958155968e+01 4.315940720272008e+01 4.296489783321342e+01 4.277130684141869e+01 + 4.257862938067940e+01 4.238686082011235e+01 4.219599659307687e+01 4.200603211268383e+01 4.181696265307154e+01 + 4.162878369849639e+01 4.144149102922540e+01 4.125508008000694e+01 4.106954625154178e+01 4.088488514080404e+01 + 4.070109237453877e+01 4.051816351991027e+01 4.033609404369983e+01 4.015487975529847e+01 3.997451654390139e+01 + 3.979499995457292e+01 3.961632565249730e+01 3.943848943565658e+01 3.926148710146721e+01 3.908531435163689e+01 + 3.890996689581685e+01 3.873544082272831e+01 3.856173207783515e+01 3.838883637414560e+01 3.821674961156019e+01 + 3.804546776546066e+01 3.787498680517137e+01 3.770530255859592e+01 3.753641100849845e+01 3.736830845518836e+01 + 3.720099088344971e+01 3.703445420945200e+01 3.686869456603723e+01 3.670370808841574e+01 3.653949085950763e+01 + 3.637603888796111e+01 3.621334844811717e+01 3.605141592615973e+01 3.589023740445852e+01 3.572980904042850e+01 + 3.557012712196481e+01 3.541118795282225e+01 3.525298774403768e+01 3.509552267323749e+01 3.493878928773343e+01 + 3.478278404343990e+01 3.462750313614663e+01 3.447294293878365e+01 3.431909990161546e+01 3.416597046087814e+01 + 3.401355094900445e+01 3.386183779648810e+01 3.371082772101448e+01 3.356051721064496e+01 3.341090265530899e+01 + 3.326198061398263e+01 3.311374767636361e+01 3.296620040125966e+01 3.281933525310492e+01 3.267314891432770e+01 + 3.252763821351709e+01 3.238279969616838e+01 3.223862995512887e+01 3.209512571750849e+01 3.195228370249094e+01 + 3.181010057023420e+01 3.166857295105629e+01 3.152769775432829e+01 3.138747186368265e+01 3.124789194582367e+01 + 3.110895478177638e+01 3.097065722333928e+01 3.083299612203396e+01 3.069596823521478e+01 3.055957038379009e+01 + 3.042379968490992e+01 3.028865305190764e+01 3.015412726448298e+01 3.002021927954454e+01 2.988692608783410e+01 + 2.975424465393443e+01 2.962217185358958e+01 2.949070472525562e+01 2.935984046863818e+01 2.922957605244617e+01 + 2.909990844798608e+01 2.897083474125067e+01 2.884235205411202e+01 2.871445744621140e+01 2.858714789194334e+01 + 2.846042066311678e+01 2.833427304434733e+01 2.820870204788112e+01 2.808370481822039e+01 2.795927858955916e+01 + 2.783542056310479e+01 2.771212788710439e+01 2.758939774558937e+01 2.746722754519704e+01 2.734561457842300e+01 + 2.722455602005491e+01 2.710404915757552e+01 2.698409131619408e+01 2.686467981339180e+01 2.674581188504884e+01 + 2.662748489299116e+01 2.650969637323688e+01 2.639244364869198e+01 2.627572402574995e+01 2.615953493480668e+01 + 2.604387380499337e+01 2.592873803144385e+01 2.581412497154068e+01 2.570003216993883e+01 2.558645721031992e+01 + 2.547339748309297e+01 2.536085044648649e+01 2.524881363723968e+01 2.513728460374055e+01 2.502626081142699e+01 + 2.491573971820056e+01 2.480571905896494e+01 2.469619646153339e+01 2.458716938319504e+01 2.447863542000312e+01 + 2.437059221927192e+01 2.426303741725681e+01 2.415596854366440e+01 2.404938323139217e+01 2.394327933047775e+01 + 2.383765447837906e+01 2.373250626120992e+01 2.362783239922733e+01 2.352363062421024e+01 2.341989863680159e+01 + 2.331663407933185e+01 2.321383475989216e+01 2.311149855755017e+01 2.300962316438995e+01 2.290820631357202e+01 + 2.280724581327735e+01 2.270673948178020e+01 2.260668508940155e+01 2.250708039173678e+01 2.240792334786956e+01 + 2.230921186720802e+01 2.221094371595302e+01 2.211311674173436e+01 2.201572884123411e+01 2.191877792312015e+01 + 2.182226182065280e+01 2.172617842216956e+01 2.163052579410284e+01 2.153530186271772e+01 2.144050449256298e+01 + 2.134613164544727e+01 2.125218130870039e+01 2.115865145244560e+01 2.106553997668644e+01 2.097284492087666e+01 + 2.088056441996010e+01 2.078869643251129e+01 2.069723893213309e+01 2.060618996606658e+01 2.051554761096601e+01 + 2.042530989859754e+01 2.033547481777502e+01 2.024604054022628e+01 2.015700522393599e+01 2.006836688994228e+01 + 1.998012363072147e+01 1.989227358045817e+01 1.980481486918973e+01 1.971774557717947e+01 1.963106382303616e+01 + 1.954476789103884e+01 1.945885594703988e+01 1.937332608222908e+01 1.928817649453870e+01 1.920340539662878e+01 + 1.911901098077130e+01 1.903499138773951e+01 1.895134486255558e+01 1.886806974988112e+01 1.878516424109755e+01 + 1.870262653275597e+01 1.862045489823334e+01 1.853864761644500e+01 1.845720293609644e+01 1.837611907561623e+01 + 1.829539441141390e+01 1.821502731690405e+01 1.813501600648008e+01 1.805535878852776e+01 1.797605402680784e+01 + 1.789710004813803e+01 1.781849513976010e+01 1.774023761822760e+01 1.766232596769640e+01 1.758475857461898e+01 + 1.750753373031707e+01 1.743064982368309e+01 1.735410526816905e+01 1.727789846424588e+01 1.720202775432962e+01 + 1.712649156263800e+01 1.705128842771503e+01 1.697641675133914e+01 1.690187492053174e+01 1.682766139576636e+01 + 1.675377465125957e+01 1.668021313537254e+01 1.660697525047803e+01 1.653405953620346e+01 1.646146456303875e+01 + 1.638918876353225e+01 1.631723061252691e+01 1.624558863577738e+01 1.617426136715184e+01 1.610324729276991e+01 + 1.603254489420701e+01 1.596215281065743e+01 1.589206962268447e+01 1.582229381597797e+01 1.575282394813798e+01 + 1.568365860435203e+01 1.561479636559848e+01 1.554623575841051e+01 1.547797536749664e+01 1.541001389568697e+01 + 1.534234992945672e+01 1.527498202635700e+01 1.520790881496337e+01 1.514112893627654e+01 1.507464101206718e+01 + 1.500844361854594e+01 1.494253544400039e+01 1.487691522461213e+01 1.481158156982783e+01 1.474653311471545e+01 + 1.468176854391490e+01 1.461728655322583e+01 1.455308580005108e+01 1.448916492494823e+01 1.442552270891503e+01 + 1.436215789907635e+01 1.429906914560298e+01 1.423625515786986e+01 1.417371467503432e+01 1.411144643634281e+01 + 1.404944913182382e+01 1.398772148936426e+01 1.392626235467004e+01 1.386507047757601e+01 1.380414456703780e+01 + 1.374348339923097e+01 1.368308576360786e+01 1.362295043539383e+01 1.356307614411792e+01 1.350346171009224e+01 + 1.344410601461897e+01 1.338500782259274e+01 1.332616591200318e+01 1.326757911048049e+01 1.320924625504148e+01 + 1.315116615215319e+01 1.309333758418828e+01 1.303575945915385e+01 1.297843067064863e+01 1.292135001185642e+01 + 1.286451632934388e+01 1.280792850075226e+01 1.275158540067995e+01 1.269548586414703e+01 1.263962874841400e+01 + 1.258401302186647e+01 1.252863758019894e+01 1.247350127006052e+01 1.241860299544399e+01 1.236394167532885e+01 + 1.230951622025856e+01 1.225532549825102e+01 1.220136844757296e+01 1.214764407513537e+01 1.209415128431592e+01 + 1.204088897936275e+01 1.198785611322907e+01 1.193505164847797e+01 1.188247452422181e+01 1.183012365035161e+01 + 1.177799804372636e+01 1.172609672645034e+01 1.167441862559045e+01 1.162296270435431e+01 1.157172795813644e+01 + 1.152071338824009e+01 1.146991795771504e+01 1.141934063624516e+01 1.136898050295155e+01 1.131883658051165e+01 + 1.126890783457083e+01 1.121919328583311e+01 1.116969196974251e+01 1.112040291453270e+01 1.107132511138846e+01 + 1.102245760367597e+01 1.097379950683186e+01 1.092534984778681e+01 1.087710764406476e+01 1.082907196010627e+01 + 1.078124186863284e+01 1.073361642501848e+01 1.068619465441603e+01 1.063897567074718e+01 1.059195860734133e+01 + 1.054514250814830e+01 1.049852644360809e+01 1.045210951602862e+01 1.040589083229813e+01 1.035986946911022e+01 + 1.031404450080543e+01 1.026841510170119e+01 1.022298040707346e+01 1.017773949095798e+01 1.013269147478631e+01 + 1.008783549702620e+01 1.004317069189082e+01 9.998696157456914e+00 9.954411030186206e+00 9.910314523784715e+00 + 9.866405774945729e+00 9.822683900561229e+00 9.779148062474189e+00 9.735797433007823e+00 9.692631171490490e+00 + 9.649648402951970e+00 9.606848328743531e+00 9.564230182014787e+00 9.521793107635142e+00 9.479536270440141e+00 + 9.437458869806633e+00 9.395560106559989e+00 9.353839157926716e+00 9.312295192835592e+00 9.270927467731591e+00 + 9.229735216231479e+00 9.188717610212938e+00 9.147873860369382e+00 9.107203196336844e+00 9.066704846764596e+00 + 9.026378005702853e+00 8.986221892357717e+00 8.946235805206038e+00 8.906418978693665e+00 8.866770619316361e+00 + 8.827289975974383e+00 8.787976307390357e+00 8.748828863538764e+00 8.709846863139358e+00 8.671029583554503e+00 + 8.632376341244221e+00 8.593886376949055e+00 8.555558939921891e+00 8.517393311170933e+00 8.479388776756116e+00 + 8.441544603229096e+00 8.403860042243403e+00 8.366334424744339e+00 8.328967072292842e+00 8.291757243124138e+00 + 8.254704227472720e+00 8.217807335382002e+00 8.181065876905594e+00 8.144479133106664e+00 8.108046399433587e+00 + 8.071767047639053e+00 8.035640397926882e+00 7.999665736506032e+00 7.963842390434660e+00 7.928169696145141e+00 + 7.892646983285742e+00 7.857273552651162e+00 7.822048750599857e+00 7.786971968025827e+00 7.752042529333232e+00 + 7.717259758863888e+00 7.682623011133142e+00 7.648131647347260e+00 7.613785013617140e+00 7.579582436948184e+00 + 7.545523312250220e+00 7.511607037617057e+00 7.477832951167176e+00 7.444200413093294e+00 7.410708803334905e+00 + 7.377357505498556e+00 7.344145878673218e+00 7.311073286547245e+00 7.278139163173499e+00 7.245342906306997e+00 + 7.212683876663248e+00 7.180161467446147e+00 7.147775082852699e+00 7.115524124234772e+00 7.083407965702390e+00 + 7.051426016132217e+00 7.019577732801474e+00 6.987862512275252e+00 6.956279745475502e+00 6.924828855941318e+00 + 6.893509269882150e+00 6.862320401692200e+00 6.831261647888545e+00 6.800332460884749e+00 6.769532305211046e+00 + 6.738860589806862e+00 6.708316738463165e+00 6.677900193977888e+00 6.647610403615440e+00 6.617446795946176e+00 + 6.587408797932629e+00 6.557495898186097e+00 6.527707560796614e+00 6.498043211862364e+00 6.468502306113241e+00 + 6.439084309299234e+00 6.409788685242900e+00 6.380614873655190e+00 6.351562339061567e+00 6.322630595895343e+00 + 6.293819108127046e+00 6.265127326375664e+00 6.236554729526047e+00 6.208100805116588e+00 6.179765032202197e+00 + 6.151546864740690e+00 6.123445807150094e+00 6.095461385258917e+00 6.067593067877628e+00 6.039840335121551e+00 + 6.012202688508743e+00 5.984679633169969e+00 5.957270656961056e+00 5.929975240292937e+00 5.902792923627279e+00 + 5.875723232013562e+00 5.848765648702115e+00 5.821919682493143e+00 5.795184854142510e+00 5.768560683026402e+00 + 5.742046666390822e+00 5.715642318587924e+00 5.689347205919744e+00 5.663160851223163e+00 5.637082758311135e+00 + 5.611112458697719e+00 5.585249491519008e+00 5.559493390584049e+00 5.533843667789125e+00 5.508299872311603e+00 + 5.482861578646651e+00 5.457528314665947e+00 5.432299611523626e+00 5.407175018586152e+00 5.382154093094761e+00 + 5.357236378022760e+00 5.332421403106363e+00 5.307708752059064e+00 5.283098003376689e+00 5.258588694187007e+00 + 5.234180379291222e+00 5.209872626694981e+00 5.185665008050016e+00 5.161557074183171e+00 5.137548383980142e+00 + 5.113638545797982e+00 5.089827134282968e+00 5.066113702430728e+00 5.042497830741953e+00 5.018979105007048e+00 + 4.995557105455633e+00 4.972231392615168e+00 4.949001558388967e+00 4.925867224885915e+00 4.902827967986653e+00 + 4.879883363679411e+00 4.857033008673309e+00 4.834276503129009e+00 4.811613436797770e+00 4.789043387081744e+00 + 4.766565977795326e+00 4.744180833573695e+00 4.721887536130310e+00 4.699685684376157e+00 4.677574891583497e+00 + 4.655554772271826e+00 4.633624922898647e+00 4.611784942911348e+00 4.590034481232405e+00 4.568373160121153e+00 + 4.546800575450856e+00 4.525316347519302e+00 4.503920103923871e+00 4.482611469298424e+00 4.461390048788094e+00 + 4.440255471271009e+00 4.419207398665950e+00 4.398245451269402e+00 4.377369245425554e+00 4.356578419383048e+00 + 4.335872613273037e+00 4.315251459075552e+00 4.294714576337845e+00 4.274261622204341e+00 4.253892261314030e+00 + 4.233606119889290e+00 4.213402835603544e+00 4.193282059746365e+00 4.173243445650493e+00 4.153286631923412e+00 + 4.133411255497697e+00 4.113616998652003e+00 4.093903524786619e+00 4.074270469191258e+00 4.054717490515994e+00 + 4.035244253601178e+00 4.015850419023907e+00 3.996535633568783e+00 3.977299560905666e+00 3.958141896495164e+00 + 3.939062301025637e+00 3.920060427447142e+00 3.901135950094528e+00 3.882288544897898e+00 3.863517881118590e+00 + 3.844823615448907e+00 3.826205437051391e+00 3.807663047653544e+00 3.789196110563124e+00 3.770804297342049e+00 + 3.752487294212357e+00 3.734244789018890e+00 3.716076457976182e+00 3.697981972490954e+00 3.679961043694115e+00 + 3.662013372248035e+00 3.644138631063968e+00 3.626336509775109e+00 3.608606705542072e+00 3.590948914412318e+00 + 3.573362819793663e+00 3.555848115085657e+00 3.538404523614169e+00 3.521031745026515e+00 3.503729467883798e+00 + 3.486497394134707e+00 3.469335231734055e+00 3.452242686325544e+00 3.435219448952052e+00 3.418265234650198e+00 + 3.401379774604279e+00 3.384562769850576e+00 3.367813923930398e+00 3.351132951883403e+00 3.334519571031865e+00 + 3.317973491801103e+00 3.301494419647167e+00 3.285082090084510e+00 3.268736234671993e+00 3.252456560777042e+00 + 3.236242786971220e+00 3.220094639575606e+00 3.204011846234647e+00 3.187994121490988e+00 3.172041185626448e+00 + 3.156152791161071e+00 3.140328668842820e+00 3.124568535295174e+00 3.108872124034968e+00 3.093239171871656e+00 + 3.077669412161458e+00 3.062162565910707e+00 3.046718374098970e+00 3.031336596904380e+00 3.016016966139392e+00 + 3.000759212810465e+00 2.985563079528153e+00 2.970428312130104e+00 2.955354650145179e+00 2.940341825152254e+00 + 2.925389598488303e+00 2.910497731503551e+00 2.895665957526404e+00 2.880894022713473e+00 2.866181682137055e+00 + 2.851528688498591e+00 2.836934785005289e+00 2.822399718118186e+00 2.807923264019232e+00 2.793505182293368e+00 + 2.779145216423770e+00 2.764843124903896e+00 2.750598669795774e+00 2.736411610868753e+00 2.722281698431688e+00 + 2.708208697067331e+00 2.694192390113966e+00 2.680232535961204e+00 2.666328890540199e+00 2.652481222662398e+00 + 2.638689303226956e+00 2.624952898002155e+00 2.611271764144950e+00 2.597645683492627e+00 2.584074442444535e+00 + 2.570557801667266e+00 2.557095530257868e+00 2.543687406599445e+00 2.530333209423413e+00 2.517032707379746e+00 + 2.503785668122807e+00 2.490591889861845e+00 2.477451158950901e+00 2.464363243138197e+00 2.451327922049569e+00 + 2.438344980862380e+00 2.425414204994132e+00 2.412535368413293e+00 2.399708255484590e+00 2.386932671907132e+00 + 2.374208401602455e+00 2.361535223009603e+00 2.348912926727443e+00 2.336341305706971e+00 2.323820149408004e+00 + 2.311349238873846e+00 2.298928374328811e+00 2.286557363678248e+00 2.274235992966902e+00 2.261964052364815e+00 + 2.249741340335214e+00 2.237567658215990e+00 2.225442798573621e+00 2.213366549457367e+00 2.201338726388740e+00 + 2.189359138707274e+00 2.177427577694549e+00 2.165543843493499e+00 2.153707741170415e+00 2.141919076444355e+00 + 2.130177647034976e+00 2.118483256831743e+00 2.106835728234196e+00 2.095234867960482e+00 2.083680476325080e+00 + 2.072172364176171e+00 2.060710343839133e+00 2.049294224696878e+00 2.037923808395575e+00 2.026598913260298e+00 + 2.015319367985618e+00 2.004084979196668e+00 1.992895556108562e+00 1.981750916950703e+00 1.970650881000152e+00 + 1.959595261684839e+00 1.948583868145923e+00 1.937616532016987e+00 1.926693081878526e+00 1.915813328267264e+00 + 1.904977090405082e+00 1.894184192977273e+00 1.883434460875044e+00 1.872727710477953e+00 1.862063762090873e+00 + 1.851442457083682e+00 1.840863622251705e+00 1.830327074965862e+00 1.819832643502570e+00 1.809380158797907e+00 + 1.798969449793061e+00 1.788600336572885e+00 1.778272652771865e+00 1.767986244795942e+00 1.757740938619203e+00 + 1.747536560606076e+00 1.737372946411540e+00 1.727249932639099e+00 1.717167351154095e+00 1.707125028541288e+00 + 1.697122811212298e+00 1.687160545804055e+00 1.677238060829077e+00 1.667355192130723e+00 1.657511781312863e+00 + 1.647707669880958e+00 1.637942692337234e+00 1.628216684763444e+00 1.618529503053863e+00 1.608880992276723e+00 + 1.599270986915247e+00 1.589699330823691e+00 1.580165870897195e+00 1.570670452975510e+00 1.561212914561866e+00 + 1.551793103249197e+00 1.542410880472349e+00 1.533066090216831e+00 1.523758574579748e+00 1.514488184288800e+00 + 1.505254771462676e+00 1.496058184704016e+00 1.486898266759950e+00 1.477774877044576e+00 1.468687878023066e+00 + 1.459637114930725e+00 1.450622438289068e+00 1.441643704572125e+00 1.432700770639202e+00 1.423793487269355e+00 + 1.414921704769478e+00 1.406085292220042e+00 1.397284110913275e+00 1.388518010515092e+00 1.379786849127615e+00 + 1.371090488107240e+00 1.362428788219066e+00 1.353801602746353e+00 1.345208792137069e+00 1.336650231141558e+00 + 1.328125779708811e+00 1.319635294146069e+00 1.311178639017341e+00 1.302755680403749e+00 1.294366281732825e+00 + 1.286010300246468e+00 1.277687607130681e+00 1.269398079017509e+00 1.261141576506052e+00 1.252917963373013e+00 + 1.244727109229262e+00 1.236568884548108e+00 1.228443154841189e+00 1.220349783647821e+00 1.212288651549746e+00 + 1.204259634287000e+00 1.196262595500517e+00 1.188297406122070e+00 1.180363940507803e+00 1.172462072687314e+00 + 1.164591670206239e+00 1.156752605274376e+00 1.148944764287503e+00 1.141168021685895e+00 1.133422246839356e+00 + 1.125707316556084e+00 1.118023109341937e+00 1.110369501923575e+00 1.102746365022667e+00 1.095153580538906e+00 + 1.087591037394418e+00 1.080058609806265e+00 1.072556173728377e+00 1.065083611042832e+00 1.057640804167975e+00 + 1.050227631677888e+00 1.042843969448370e+00 1.035489708218281e+00 1.028164736497249e+00 1.020868930712798e+00 + 1.013602173363602e+00 1.006364350528145e+00 9.991553480860069e-01 9.919750464549014e-01 9.848233287198007e-01 + 9.777000916381701e-01 9.706052224312447e-01 9.635386022157533e-01 9.565001191688937e-01 9.494896630661879e-01 + 9.425071223228538e-01 9.355523797940184e-01 9.286253271866921e-01 9.217258644183214e-01 9.148538781303724e-01 + 9.080092551050607e-01 9.011918879859632e-01 8.944016703005543e-01 8.876384924746002e-01 8.809022413584221e-01 + 8.741928168976413e-01 8.675101190938330e-01 8.608540359442419e-01 8.542244603473701e-01 8.476212889430066e-01 + 8.410444181391276e-01 8.344937399710189e-01 8.279691476350027e-01 8.214705470141707e-01 8.149978368018493e-01 + 8.085509088588196e-01 8.021296614287111e-01 7.957339944800463e-01 7.893638070383275e-01 7.830189931350516e-01 + 7.766994532966268e-01 7.704050967403675e-01 7.641358215802615e-01 7.578915247022724e-01 7.516721083807270e-01 + 7.454774759379389e-01 7.393075284143857e-01 7.331621629407183e-01 7.270412875750237e-01 7.209448123528730e-01 + 7.148726361079928e-01 7.088246610576617e-01 7.028007931997213e-01 6.968009387204053e-01 6.908250000358214e-01 + 6.848728793751606e-01 6.789444908271167e-01 6.730397435251165e-01 6.671585392499849e-01 6.613007849024644e-01 + 6.554663896318030e-01 6.496552624588109e-01 6.438673070778183e-01 6.381024319556428e-01 6.323605552121262e-01 + 6.266415850605696e-01 6.209454272475601e-01 6.152719929073242e-01 6.096211942955035e-01 6.039929419697414e-01 + 5.983871423673978e-01 5.928037109278776e-01 5.872425665727200e-01 5.817036179262789e-01 5.761867757580472e-01 + 5.706919545755328e-01 5.652190691753797e-01 5.597680312855905e-01 5.543387515608681e-01 5.489311514266204e-01 + 5.435451491959484e-01 5.381806555529779e-01 5.328375858091706e-01 5.275158573424954e-01 5.222153871968650e-01 + 5.169360885007255e-01 5.116778775087658e-01 5.064406794925096e-01 5.012244118255510e-01 4.960289886382637e-01 + 4.908543290552675e-01 4.857003532629381e-01 4.805669801867241e-01 4.754541247133137e-01 4.703617092625736e-01 + 4.652896609026711e-01 4.602378967146020e-01 4.552063350475851e-01 4.501948983226124e-01 4.452035092771810e-01 + 4.402320879227842e-01 4.352805523654864e-01 4.303488309750054e-01 4.254368504386150e-01 4.205445290166767e-01 + 4.156717895856258e-01 4.108185573527897e-01 4.059847567861119e-01 4.011703090912549e-01 3.963751374739253e-01 + 3.915991740467544e-01 3.868423443729578e-01 3.821045699452743e-01 3.773857771630841e-01 3.726858934536713e-01 + 3.680048452743795e-01 3.633425553945757e-01 3.586989523890614e-01 3.540739701811214e-01 3.494675340422360e-01 + 3.448795694018267e-01 3.403100055229290e-01 3.357587720701978e-01 3.312257966625470e-01 3.267110046986084e-01 + 3.222143302305144e-01 3.177357072575733e-01 3.132750617821559e-01 3.088323230437107e-01 3.044074228278458e-01 + 3.000002929514869e-01 2.956108619814004e-01 2.912390591663653e-01 2.868848226223222e-01 2.825480855369588e-01 + 2.782287763584979e-01 2.739268276304007e-01 2.696421732978619e-01 2.653747469077652e-01 2.611244782932083e-01 + 2.568913016367161e-01 2.526751570146955e-01 2.484759769388697e-01 2.442936932048949e-01 2.401282413902519e-01 + 2.359795575701045e-01 2.318475761710866e-01 2.277322290127450e-01 2.236334554284879e-01 2.195511960314929e-01 + 2.154853836729677e-01 2.114359536211432e-01 2.074028437636633e-01 2.033859920182897e-01 1.993853337119912e-01 + 1.954008040589642e-01 1.914323463143237e-01 1.874799002688242e-01 1.835434007181165e-01 1.796227861758036e-01 + 1.757179964922509e-01 1.718289711649378e-01 1.679556465242757e-01 1.640979620393169e-01 1.602558632656972e-01 + 1.564292893436780e-01 1.526181778855338e-01 1.488224700413446e-01 1.450421075715582e-01 1.412770310767497e-01 + 1.375271785489454e-01 1.337924939887067e-01 1.300729236356154e-01 1.263684067750867e-01 1.226788841702678e-01 + 1.190042991249222e-01 1.153445951805052e-01 1.116997137432381e-01 1.080695954417651e-01 1.044541881911586e-01 + 1.008534377603918e-01 9.726728475975084e-02 9.369567294988820e-02 9.013854752144720e-02 8.659585347215112e-02 + 8.306753302147955e-02 7.955353046975124e-02 7.605379621791922e-02 7.256827534889604e-02 6.909691079142652e-02 + 6.563964883225221e-02 6.219643640409570e-02 5.876721959493493e-02 5.535194193553600e-02 5.195055179453398e-02 + 4.856300050562060e-02 4.518923308325209e-02 4.182919528191363e-02 3.848283536820589e-02 3.515010193539807e-02 + 3.183094185890936e-02 2.852530077920949e-02 2.523313079087341e-02 2.195438300307553e-02 1.868900335629075e-02 + 1.543694036357313e-02 1.219814405293583e-02 8.972564385828061e-03 5.760148923624660e-03 2.560846417529306e-03 + -6.253884489496408e-04 -3.798605206001689e-03 -6.958856024607482e-03 -1.010619000899848e-02 -1.324065554473652e-02 + -1.636230159824732e-02 -1.947117958312726e-02 -2.256733711284757e-02 -2.565081832749929e-02 -2.872167302619957e-02 + -3.177995089902724e-02 -3.482569914268617e-02 -3.785896464500105e-02 -4.087979562235380e-02 -4.388824175488684e-02 + -4.688434717766576e-02 -4.986815604286890e-02 -5.283971753775529e-02 -5.579907881824794e-02 -5.874628546589089e-02 + -6.168138307363240e-02 -6.460441923558070e-02 -6.751544105442296e-02 -7.041449003639784e-02 -7.330161087707579e-02 + -7.617685125406765e-02 -7.904025608548425e-02 -8.189186951723537e-02 -8.473173608907363e-02 -8.755990257827875e-02 + -9.037641289395969e-02 -9.318130717201861e-02 -9.597463047763352e-02 -9.875642835115833e-02 -1.015267439140877e-01 + -1.042856199263307e-01 -1.070331001684683e-01 -1.097692300567918e-01 -1.124940502948268e-01 -1.152076007898061e-01 + -1.179099262631479e-01 -1.206010699593113e-01 -1.232810735016665e-01 -1.259499784255051e-01 -1.286078279418341e-01 + -1.312546653333709e-01 -1.338905286984875e-01 -1.365154583874092e-01 -1.391294979538990e-01 -1.417326885345280e-01 + -1.443250704192513e-01 -1.469066841433861e-01 -1.494775722507627e-01 -1.520377752494497e-01 -1.545873297590701e-01 + -1.571262765202916e-01 -1.596546572452540e-01 -1.621725113907878e-01 -1.646798779801165e-01 -1.671767967821347e-01 + -1.696633092874520e-01 -1.721394530811854e-01 -1.746052643091513e-01 -1.770607836101869e-01 -1.795060506428017e-01 + -1.819411034225526e-01 -1.843659798390828e-01 -1.867807191554161e-01 -1.891853611111403e-01 -1.915799407499077e-01 + -1.939644945120454e-01 -1.963390621459183e-01 -1.987036813730624e-01 -2.010583889984393e-01 -2.034032219467188e-01 + -2.057382189127211e-01 -2.080634172465200e-01 -2.103788504106409e-01 -2.126845552585028e-01 -2.149805700057577e-01 + -2.172669307458855e-01 -2.195436731393316e-01 -2.218108333786645e-01 -2.240684493062661e-01 -2.263165556286022e-01 + -2.285551851690127e-01 -2.307843748874083e-01 -2.330041611277884e-01 -2.352145785311434e-01 -2.374156618282909e-01 + -2.396074467707450e-01 -2.417899696732801e-01 -2.439632627554057e-01 -2.461273590292558e-01 -2.482822949571798e-01 + -2.504281050002428e-01 -2.525648226666662e-01 -2.546924818382261e-01 -2.568111176810049e-01 -2.589207645010757e-01 + -2.610214530059819e-01 -2.631132165202481e-01 -2.651960899948890e-01 -2.672701065219724e-01 -2.693352987894519e-01 + -2.713916998229662e-01 -2.734393439668777e-01 -2.754782632038173e-01 -2.775084874639143e-01 -2.795300503441993e-01 + -2.815429852855671e-01 -2.835473240274155e-01 -2.855430981234691e-01 -2.875303400246380e-01 -2.895090831627840e-01 + -2.914793573631382e-01 -2.934411924374482e-01 -2.953946213942734e-01 -2.973396760049649e-01 -2.992763870705049e-01 + -3.012047853752455e-01 -3.031249029054077e-01 -3.050367713048046e-01 -3.069404187491607e-01 -3.088358754333808e-01 + -3.107231733999588e-01 -3.126023429151826e-01 -3.144734138246973e-01 -3.163364162512183e-01 -3.181913814969073e-01 + -3.200383391593082e-01 -3.218773166629695e-01 -3.237083442965246e-01 -3.255314526206347e-01 -3.273466708133588e-01 + -3.291540279174764e-01 -3.309535535062730e-01 -3.327452779044484e-01 -3.345292286746930e-01 -3.363054329977739e-01 + -3.380739209920870e-01 -3.398347217688169e-01 -3.415878634526212e-01 -3.433333743100879e-01 -3.450712833788954e-01 + -3.468016195958206e-01 -3.485244091566739e-01 -3.502396793974815e-01 -3.519474593420066e-01 -3.536477770380763e-01 + -3.553406598299846e-01 -3.570261348354672e-01 -3.587042307855341e-01 -3.603749751839582e-01 -3.620383929731605e-01 + -3.636945116923384e-01 -3.653433594409278e-01 -3.669849628231984e-01 -3.686193482790397e-01 -3.702465427747400e-01 + -3.718665743211436e-01 -3.734794684043725e-01 -3.750852495624684e-01 -3.766839451194457e-01 -3.782755819189342e-01 + -3.798601858648072e-01 -3.814377826321034e-01 -3.830083986549013e-01 -3.845720606417443e-01 -3.861287926090124e-01 + -3.876786193539286e-01 -3.892215675502101e-01 -3.907576628594260e-01 -3.922869303026715e-01 -3.938093947284727e-01 + -3.953250822556230e-01 -3.968340182497304e-01 -3.983362256494206e-01 -3.998317293097848e-01 -4.013205549386248e-01 + -4.028027272117153e-01 -4.042782703087232e-01 -4.057472086115670e-01 -4.072095677082399e-01 -4.086653712889545e-01 + -4.101146418277140e-01 -4.115574040934622e-01 -4.129936826934361e-01 -4.144235014035024e-01 -4.158468836578273e-01 + -4.172638535617268e-01 -4.186744357650895e-01 -4.200786523524958e-01 -4.214765258006608e-01 -4.228680805923657e-01 + -4.242533401481378e-01 -4.256323273241845e-01 -4.270050650780072e-01 -4.283715771591216e-01 -4.297318868367957e-01 + -4.310860152683936e-01 -4.324339850671611e-01 -4.337758197699306e-01 -4.351115419219263e-01 -4.364411736856622e-01 + -4.377647373653272e-01 -4.390822563519974e-01 -4.403937525793140e-01 -4.416992465950099e-01 -4.429987609092939e-01 + -4.442923180804305e-01 -4.455799398898891e-01 -4.468616477876415e-01 -4.481374637930542e-01 -4.494074106490894e-01 + -4.506715085877422e-01 -4.519297779021105e-01 -4.531822412097039e-01 -4.544289201442401e-01 -4.556698355752103e-01 + -4.569050083194456e-01 -4.581344599890250e-01 -4.593582121055255e-01 -4.605762842891920e-01 -4.617886970897419e-01 + -4.629954719556403e-01 -4.641966295426422e-01 -4.653921902577345e-01 -4.665821746143150e-01 -4.677666038635413e-01 + -4.689454981292748e-01 -4.701188761476531e-01 -4.712867586709557e-01 -4.724491664926360e-01 -4.736061192593240e-01 + -4.747576368456714e-01 -4.759037394682022e-01 -4.770444475543998e-01 -4.781797800875144e-01 -4.793097558338887e-01 + -4.804343950164401e-01 -4.815537175042383e-01 -4.826677426390972e-01 -4.837764894228364e-01 -4.848799775883490e-01 + -4.859782270303963e-01 -4.870712557287352e-01 -4.881590823344398e-01 -4.892417265305033e-01 -4.903192072931410e-01 + -4.913915433426016e-01 -4.924587534540600e-01 -4.935208569593936e-01 -4.945778724869024e-01 -4.956298174121960e-01 + -4.966767104426105e-01 -4.977185705977166e-01 -4.987554161795947e-01 -4.997872652579317e-01 -5.008141361357437e-01 + -5.018360477540788e-01 -5.028530175622089e-01 -5.038650625463708e-01 -5.048722015765362e-01 -5.058744527800632e-01 + -5.068718334710337e-01 -5.078643614554021e-01 -5.088520548881869e-01 -5.098349318298798e-01 -5.108130088001350e-01 + -5.117863028619736e-01 -5.127548322161382e-01 -5.137186142245088e-01 -5.146776659499980e-01 -5.156320045833772e-01 + -5.165816478015819e-01 -5.175266128170244e-01 -5.184669156304091e-01 -5.194025733016244e-01 -5.203336032597101e-01 + -5.212600221732120e-01 -5.221818466804444e-01 -5.230990936596679e-01 -5.240117804553392e-01 -5.249199232262068e-01 + -5.258235374392936e-01 -5.267226400387954e-01 -5.276172478389746e-01 -5.285073771019844e-01 -5.293930438910602e-01 + -5.302742646986305e-01 -5.311510563423283e-01 -5.320234339437281e-01 -5.328914129379527e-01 -5.337550101355577e-01 + -5.346142414983102e-01 -5.354691226448078e-01 -5.363196694209366e-01 -5.371658979374595e-01 -5.380078240078261e-01 + -5.388454624615836e-01 -5.396788287704753e-01 -5.405079388378121e-01 -5.413328081929075e-01 -5.421534521210617e-01 + -5.429698859177164e-01 -5.437821254261226e-01 -5.445901856060492e-01 -5.453940806517681e-01 -5.461938261275164e-01 + -5.469894375147514e-01 -5.477809296410460e-01 -5.485683172596564e-01 -5.493516154047422e-01 -5.501308394233321e-01 + -5.509060035978606e-01 -5.516771220917993e-01 -5.524442098036262e-01 -5.532072816062331e-01 -5.539663521228516e-01 + -5.547214355736525e-01 -5.554725467511782e-01 -5.562197004144761e-01 -5.569629099559865e-01 -5.577021895124128e-01 + -5.584375539231472e-01 -5.591690174427206e-01 -5.598965939391384e-01 -5.606202972403660e-01 -5.613401421520022e-01 + -5.620561426054913e-01 -5.627683113219669e-01 -5.634766626491997e-01 -5.641812109417922e-01 -5.648819696019924e-01 + -5.655789522526887e-01 -5.662721727674018e-01 -5.669616451334641e-01 -5.676473824290281e-01 -5.683293976251365e-01 + -5.690077046537543e-01 -5.696823171027902e-01 -5.703532481968968e-01 -5.710205111045815e-01 -5.716841193018837e-01 + -5.723440862989044e-01 -5.730004247377283e-01 -5.736531475408438e-01 -5.743022680808630e-01 -5.749477994635019e-01 + -5.755897545119250e-01 -5.762281459317424e-01 -5.768629872133108e-01 -5.774942912813225e-01 -5.781220698864685e-01 + -5.787463360372200e-01 -5.793671029370097e-01 -5.799843829591812e-01 -5.805981885004621e-01 -5.812085322229668e-01 + -5.818154271777390e-01 -5.824188854500640e-01 -5.830189187855023e-01 -5.836155400127914e-01 -5.842087616519486e-01 + -5.847985957903102e-01 -5.853850545399070e-01 -5.859681502822114e-01 -5.865478954643482e-01 -5.871243015837295e-01 + -5.876973804424807e-01 -5.882671445115567e-01 -5.888336058093040e-01 -5.893967761301214e-01 -5.899566672475657e-01 + -5.905132912554449e-01 -5.910666600004119e-01 -5.916167846344484e-01 -5.921636769312483e-01 -5.927073488739303e-01 + -5.932478119884005e-01 -5.937850777230974e-01 -5.943191576345895e-01 -5.948500635775013e-01 -5.953778067525587e-01 + -5.959023980172641e-01 -5.964238491804477e-01 -5.969421717317064e-01 -5.974573766302176e-01 -5.979694750153504e-01 + -5.984784782975928e-01 -5.989843980133127e-01 -5.994872448737363e-01 -5.999870296226286e-01 -6.004837635008013e-01 + -6.009774575116591e-01 -6.014681225640990e-01 -6.019557696406324e-01 -6.024404098188824e-01 -6.029220539582525e-01 + -6.034007123251734e-01 -6.038763957092128e-01 -6.043491151546724e-01 -6.048188811990667e-01 -6.052857043294740e-01 + -6.057495951725935e-01 -6.062105647034982e-01 -6.066686232996821e-01 -6.071237808282512e-01 -6.075760480581535e-01 + -6.080254356249652e-01 -6.084719536597242e-01 -6.089156123708600e-01 -6.093564221655233e-01 -6.097943936088406e-01 + -6.102295366277345e-01 -6.106618611466814e-01 -6.110913776082281e-01 -6.115180960018122e-01 -6.119420262061138e-01 + -6.123631785057825e-01 -6.127815629923925e-01 -6.131971895415724e-01 -6.136100679122567e-01 -6.140202079254689e-01 + -6.144276194632986e-01 -6.148323123693087e-01 -6.152342964516117e-01 -6.156335814880438e-01 -6.160301772367670e-01 + -6.164240932773791e-01 -6.168153390131846e-01 -6.172039241057757e-01 -6.175898582479540e-01 -6.179731510100582e-01 + -6.183538118537011e-01 -6.187318502245757e-01 -6.191072755983122e-01 -6.194800972241303e-01 -6.198503243163954e-01 + -6.202179663089392e-01 -6.205830326036273e-01 -6.209455324825972e-01 -6.213054750121583e-01 -6.216628693834372e-01 + -6.220177248671027e-01 -6.223700505100402e-01 -6.227198553511943e-01 -6.230671484590707e-01 -6.234119388224310e-01 + -6.237542354039819e-01 -6.240940471906395e-01 -6.244313833278470e-01 -6.247662526956897e-01 -6.250986637315333e-01 + -6.254286253149073e-01 -6.257561464374979e-01 -6.260812358699522e-01 -6.264039022632663e-01 -6.267241542804416e-01 + -6.270420007239386e-01 -6.273574502418447e-01 -6.276705113436000e-01 -6.279811924920996e-01 -6.282895022600340e-01 + -6.285954492669960e-01 -6.288990419377586e-01 -6.292002887596219e-01 -6.294991982474318e-01 -6.297957785295903e-01 + -6.300900379535952e-01 -6.303819851813233e-01 -6.306716282540937e-01 -6.309589752809680e-01 -6.312440348023121e-01 + -6.315268150763020e-01 -6.318073241903770e-01 -6.320855701836068e-01 -6.323615610879741e-01 -6.326353050044859e-01 + -6.329068101802829e-01 -6.331760846635813e-01 -6.334431363818833e-01 -6.337079733473078e-01 -6.339706034520735e-01 + -6.342310345121693e-01 -6.344892744839461e-01 -6.347453312805855e-01 -6.349992127114430e-01 -6.352509264768633e-01 + -6.355004804526597e-01 -6.357478826585540e-01 -6.359931404400122e-01 -6.362362612918424e-01 -6.364772532644518e-01 + -6.367161239398067e-01 -6.369528807876881e-01 -6.371875315012039e-01 -6.374200836672138e-01 -6.376505447719858e-01 + -6.378789222449943e-01 -6.381052236017390e-01 -6.383294563385360e-01 -6.385516277126226e-01 -6.387717451483415e-01 + -6.389898161925324e-01 -6.392058481779943e-01 -6.394198483013303e-01 -6.396318237129481e-01 -6.398417817583982e-01 + -6.400497298004382e-01 -6.402556751053731e-01 -6.404596246811356e-01 -6.406615856182318e-01 -6.408615652398488e-01 + -6.410595705960431e-01 -6.412556087124355e-01 -6.414496867908267e-01 -6.416418117430738e-01 -6.418319904244396e-01 + -6.420202299552208e-01 -6.422065373268501e-01 -6.423909194238488e-01 -6.425733831564441e-01 -6.427539354568388e-01 + -6.429325832107947e-01 -6.431093330874931e-01 -6.432841919278923e-01 -6.434571667152847e-01 -6.436282640341581e-01 + -6.437974905134223e-01 -6.439648529819666e-01 -6.441303582355420e-01 -6.442940129046214e-01 -6.444558234243410e-01 + -6.446157964842297e-01 -6.447739387669796e-01 -6.449302567289288e-01 -6.450847570451982e-01 -6.452374463418470e-01 + -6.453883308317777e-01 -6.455374170518916e-01 -6.456847116523639e-01 -6.458302208459006e-01 -6.459739509825424e-01 + -6.461159085765001e-01 -6.462561000624228e-01 -6.463945317857885e-01 -6.465312099893501e-01 -6.466661407794220e-01 + -6.467993305071421e-01 -6.469307857586633e-01 -6.470605124176557e-01 -6.471885165505020e-01 -6.473148048129491e-01 + -6.474393831451855e-01 -6.475622574433044e-01 -6.476834341411803e-01 -6.478029193005811e-01 -6.479207188186653e-01 + -6.480368387749067e-01 -6.481512852365653e-01 -6.482640642356557e-01 -6.483751817763184e-01 -6.484846438333333e-01 + -6.485924563559199e-01 -6.486986252696630e-01 -6.488031563964390e-01 -6.489060555062011e-01 -6.490073285956434e-01 + -6.491069816182633e-01 -6.492050203757027e-01 -6.493014505946639e-01 -6.493962779796888e-01 -6.494895082497514e-01 + -6.495811472172135e-01 -6.496712006463234e-01 -6.497596741452655e-01 -6.498465734697708e-01 -6.499319043537729e-01 + -6.500156722751166e-01 -6.500978828758883e-01 -6.501785418212779e-01 -6.502576544563589e-01 -6.503352264336196e-01 + -6.504112635780723e-01 -6.504857712206107e-01 -6.505587548117625e-01 -6.506302199692129e-01 -6.507001719669850e-01 + -6.507686161481057e-01 -6.508355580770583e-01 -6.509010033515999e-01 -6.509649573333303e-01 -6.510274250599254e-01 + -6.510884119408136e-01 -6.511479234691252e-01 -6.512059649357221e-01 -6.512625414820176e-01 -6.513176583196066e-01 + -6.513713209657690e-01 -6.514235346566493e-01 -6.514743044494572e-01 -6.515236355351222e-01 -6.515715331668240e-01 + -6.516180025498758e-01 -6.516630486086969e-01 -6.517066764698182e-01 -6.517488914696901e-01 -6.517896986474616e-01 + -6.518291029696229e-01 -6.518671094474887e-01 -6.519037232298822e-01 -6.519389493677847e-01 -6.519727927034696e-01 + -6.520052582102593e-01 -6.520363509344871e-01 -6.520660759114448e-01 -6.520944379877177e-01 -6.521214419863292e-01 + -6.521470929034477e-01 -6.521713955379932e-01 -6.521943546611896e-01 -6.522159753870301e-01 -6.522362625000242e-01 + -6.522552205660485e-01 -6.522728545508729e-01 -6.522891692872490e-01 -6.523041693781095e-01 -6.523178594474156e-01 + -6.523302443147758e-01 -6.523413289626511e-01 -6.523511179648659e-01 -6.523596158248584e-01 -6.523668271884714e-01 + -6.523727568212391e-01 -6.523774093997819e-01 -6.523807893579161e-01 -6.523829012952149e-01 -6.523837498990516e-01 + -6.523833397960367e-01 -6.523816754611410e-01 -6.523787613199525e-01 -6.523746019358498e-01 -6.523692018302728e-01 + -6.523625654555820e-01 -6.523546972248629e-01 -6.523456017173497e-01 -6.523352835702680e-01 -6.523237468711672e-01 + -6.523109959032295e-01 -6.522970353197415e-01 -6.522818693382445e-01 -6.522655022842732e-01 -6.522479388337681e-01 + -6.522291831409690e-01 -6.522092393163972e-01 -6.521881118419591e-01 -6.521658050464721e-01 -6.521423231008568e-01 + -6.521176700882644e-01 -6.520918504277817e-01 -6.520648685798258e-01 -6.520367284462982e-01 -6.520074341903623e-01 + -6.519769901852531e-01 -6.519454004576026e-01 -6.519126690272374e-01 -6.518788000417296e-01 -6.518437978790763e-01 + -6.518076667685843e-01 -6.517704106505043e-01 -6.517320333460206e-01 -6.516925389358605e-01 -6.516519318553129e-01 + -6.516102158220000e-01 -6.515673946405215e-01 -6.515234728464969e-01 -6.514784543315630e-01 -6.514323427842886e-01 + -6.513851423523833e-01 -6.513368570527661e-01 -6.512874907235414e-01 -6.512370470939771e-01 -6.511855301990920e-01 + -6.511329442190841e-01 -6.510792928715797e-01 -6.510245798816351e-01 -6.509688091361985e-01 -6.509119847142907e-01 + -6.508541103488035e-01 -6.507951894034477e-01 -6.507352259931611e-01 -6.506742241942834e-01 -6.506121876059120e-01 + -6.505491199228429e-01 -6.504850249436106e-01 -6.504199065016956e-01 -6.503537680222150e-01 -6.502866130342899e-01 + -6.502184457971011e-01 -6.501492700279957e-01 -6.500790890906794e-01 -6.500079066129352e-01 -6.499357263329657e-01 + -6.498625519683058e-01 -6.497883869826074e-01 -6.497132350047277e-01 -6.496370998048885e-01 -6.495599847614121e-01 + -6.494818934475555e-01 -6.494028297363450e-01 -6.493227969968260e-01 -6.492417985197620e-01 -6.491598378013752e-01 + -6.490769185970405e-01 -6.489930446200032e-01 -6.489082192796405e-01 -6.488224457999440e-01 -6.487357275334984e-01 + -6.486480682838258e-01 -6.485594713376021e-01 -6.484699398068251e-01 -6.483794774339799e-01 -6.482880877536140e-01 + -6.481957740532812e-01 -6.481025397024727e-01 -6.480083880017639e-01 -6.479133221889776e-01 -6.478173456351086e-01 + -6.477204618036257e-01 -6.476226741599570e-01 -6.475239858039916e-01 -6.474243999826228e-01 -6.473239202990485e-01 + -6.472225498463482e-01 -6.471202916312221e-01 -6.470171489638400e-01 -6.469131252405815e-01 -6.468082238277443e-01 + -6.467024479420175e-01 -6.465958006550642e-01 -6.464882850509053e-01 -6.463799044773618e-01 -6.462706620382276e-01 + -6.461605607272912e-01 -6.460496040101232e-01 -6.459377950690467e-01 -6.458251367734501e-01 -6.457116323868038e-01 + -6.455972850655802e-01 -6.454820977029684e-01 -6.453660732942879e-01 -6.452492150754419e-01 -6.451315264887545e-01 + -6.450130102914885e-01 -6.448936692680686e-01 -6.447735068128447e-01 -6.446525260129213e-01 -6.445307296530088e-01 + -6.444081203587793e-01 -6.442847014715996e-01 -6.441604765089356e-01 -6.440354480546840e-01 -6.439096188724848e-01 + -6.437829920095609e-01 -6.436555704731397e-01 -6.435273570693492e-01 -6.433983545533010e-01 -6.432685663163126e-01 + -6.431379953365300e-01 -6.430066439769492e-01 -6.428745153347271e-01 -6.427416124750638e-01 -6.426079380140648e-01 + -6.424734947555180e-01 -6.423382856273998e-01 -6.422023135830728e-01 -6.420655814260000e-01 -6.419280919255173e-01 + -6.417898479598759e-01 -6.416508523135933e-01 -6.415111076305331e-01 -6.413706163966455e-01 -6.412293816393564e-01 + -6.410874066048897e-01 -6.409446936267265e-01 -6.408012453136449e-01 -6.406570646910840e-01 -6.405121544270317e-01 + -6.403665170374713e-01 -6.402201550644944e-01 -6.400730715072882e-01 -6.399252691822962e-01 -6.397767504407681e-01 + -6.396275180930010e-01 -6.394775749890055e-01 -6.393269236107165e-01 -6.391755662191552e-01 -6.390235053902433e-01 + -6.388707445708105e-01 -6.387172861694177e-01 -6.385631322023312e-01 -6.384082857966726e-01 -6.382527494896121e-01 + -6.380965253642142e-01 -6.379396162401521e-01 -6.377820248167250e-01 -6.376237535602883e-01 -6.374648052204416e-01 + -6.373051823107587e-01 -6.371448870124290e-01 -6.369839218821269e-01 -6.368222895078627e-01 -6.366599923302766e-01 + -6.364970329561520e-01 -6.363334139746031e-01 -6.361691377885151e-01 -6.360042067688202e-01 -6.358386233547334e-01 + -6.356723901317635e-01 -6.355055093799952e-01 -6.353379833438523e-01 -6.351698147827204e-01 -6.350010061497325e-01 + -6.348315596278746e-01 -6.346614776297652e-01 -6.344907627044540e-01 -6.343194173354602e-01 -6.341474433478579e-01 + -6.339748431233465e-01 -6.338016197812808e-01 -6.336277753787244e-01 -6.334533118997744e-01 -6.332782318265875e-01 + -6.331025376588558e-01 -6.329262316544187e-01 -6.327493157114107e-01 -6.325717923863455e-01 -6.323936643403999e-01 + -6.322149336030685e-01 -6.320356024195775e-01 -6.318556731749607e-01 -6.316751480498738e-01 -6.314940290711796e-01 + -6.313123183267710e-01 -6.311300184615836e-01 -6.309471319109403e-01 -6.307636607640942e-01 -6.305796070902886e-01 + -6.303949730482692e-01 -6.302097608691579e-01 -6.300239725606558e-01 -6.298376103756032e-01 -6.296506769748604e-01 + -6.294631743864889e-01 -6.292751044804592e-01 -6.290864694027335e-01 -6.288972714311484e-01 -6.287075127245377e-01 + -6.285171950849623e-01 -6.283263208775478e-01 -6.281348926187029e-01 -6.279429120773061e-01 -6.277503812180564e-01 + -6.275573022752827e-01 -6.273636774541002e-01 -6.271695087389834e-01 -6.269747979757735e-01 -6.267795473573458e-01 + -6.265837591630624e-01 -6.263874355834504e-01 -6.261905784094625e-01 -6.259931895045528e-01 -6.257952710369122e-01 + -6.255968250363517e-01 -6.253978534898084e-01 -6.251983584520242e-01 -6.249983420853732e-01 -6.247978064572296e-01 + -6.245967533125147e-01 -6.243951846742302e-01 -6.241931026018996e-01 -6.239905086686763e-01 -6.237874050561640e-01 + -6.235837942608177e-01 -6.233796778475696e-01 -6.231750576026635e-01 -6.229699356978790e-01 -6.227643140512986e-01 + -6.225581944126894e-01 -6.223515785171654e-01 -6.221444686516174e-01 -6.219368669106876e-01 -6.217287748516653e-01 + -6.215201944179222e-01 -6.213111276341791e-01 -6.211015763012264e-01 -6.208915420627059e-01 -6.206810267189914e-01 + -6.204700325606027e-01 -6.202585614407183e-01 -6.200466150025669e-01 -6.198341952555039e-01 -6.196213039807257e-01 + -6.194079427661365e-01 -6.191941133919308e-01 -6.189798178811384e-01 -6.187650583625046e-01 -6.185498365366234e-01 + -6.183341539791172e-01 -6.181180123373080e-01 -6.179014136693182e-01 -6.176843597571294e-01 -6.174668518753883e-01 + -6.172488922358068e-01 -6.170304830078728e-01 -6.168116255085183e-01 -6.165923213940302e-01 -6.163725725542526e-01 + -6.161523808379610e-01 -6.159317477445455e-01 -6.157106747923912e-01 -6.154891641891720e-01 -6.152672177134336e-01 + -6.150448367622374e-01 -6.148220230127394e-01 -6.145987783325538e-01 -6.143751045698781e-01 -6.141510029326600e-01 + -6.139264750393221e-01 -6.137015231470567e-01 -6.134761489851926e-01 -6.132503540152313e-01 -6.130241396532106e-01 + -6.127975076851865e-01 -6.125704598048077e-01 -6.123429972989166e-01 -6.121151221351967e-01 -6.118868363314907e-01 + -6.116581411278224e-01 -6.114290380220153e-01 -6.111995287783158e-01 -6.109696151823703e-01 -6.107392985450728e-01 + -6.105085801024925e-01 -6.102774622058419e-01 -6.100459465922933e-01 -6.098140342484372e-01 -6.095817267256873e-01 + -6.093490257933440e-01 -6.091159331809802e-01 -6.088824500709522e-01 -6.086485779905337e-01 -6.084143191489354e-01 + -6.081796748129595e-01 -6.079446461968719e-01 -6.077092351925356e-01 -6.074734432434898e-01 -6.072372716150822e-01 + -6.070007218360295e-01 -6.067637956065657e-01 -6.065264946232775e-01 -6.062888203126375e-01 -6.060507740692458e-01 + -6.058123573561740e-01 -6.055735718185850e-01 -6.053344188005130e-01 -6.050948994718379e-01 -6.048550157592759e-01 + -6.046147693250087e-01 -6.043741612917217e-01 -6.041331930896253e-01 -6.038918662688606e-01 -6.036501823335466e-01 + -6.034081424814672e-01 -6.031657481058161e-01 -6.029230011393863e-01 -6.026799028730719e-01 -6.024364544399844e-01 + -6.021926574869638e-01 -6.019485136055120e-01 -6.017040241022006e-01 -6.014591897708976e-01 -6.012140122415236e-01 + -6.009684936432825e-01 -6.007226351565053e-01 -6.004764378633045e-01 -6.002299030368295e-01 -5.999830322604393e-01 + -5.997358269112610e-01 -5.994882881008079e-01 -5.992404174674395e-01 -5.989922165630734e-01 -5.987436865327392e-01 + -5.984948286273432e-01 -5.982456442781595e-01 -5.979961350600861e-01 -5.977463018616249e-01 -5.974961457245347e-01 + -5.972456688462123e-01 -5.969948725706038e-01 -5.967437577688297e-01 -5.964923259025159e-01 -5.962405782771161e-01 + -5.959885160038786e-01 -5.957361402849749e-01 -5.954834525607696e-01 -5.952304544228757e-01 -5.949771471628894e-01 + -5.947235319540697e-01 -5.944696099654433e-01 -5.942153825546195e-01 -5.939608509107162e-01 -5.937060159741117e-01 + -5.934508794411635e-01 -5.931954428951332e-01 -5.929397071302310e-01 -5.926836734445704e-01 -5.924273432987167e-01 + -5.921707177793331e-01 -5.919137978828047e-01 -5.916565847753502e-01 -5.913990801532651e-01 -5.911412853604616e-01 + -5.908832013941032e-01 -5.906248293335863e-01 -5.903661704565201e-01 -5.901072261246485e-01 -5.898479972855557e-01 + -5.895884850905705e-01 -5.893286910470348e-01 -5.890686164387193e-01 -5.888082623596927e-01 -5.885476297953414e-01 + -5.882867200485414e-01 -5.880255342895034e-01 -5.877640732646211e-01 -5.875023385228563e-01 -5.872403317009627e-01 + -5.869780535979796e-01 -5.867155052441069e-01 -5.864526878805291e-01 -5.861896026754034e-01 -5.859262506932092e-01 + -5.856626329801135e-01 -5.853987507817091e-01 -5.851346053972879e-01 -5.848701980701103e-01 -5.846055297559873e-01 + -5.843406014627009e-01 -5.840754143260567e-01 -5.838099692919883e-01 -5.835442675863415e-01 -5.832783108438364e-01 + -5.830120998737411e-01 -5.827456354637697e-01 -5.824789190313094e-01 -5.822119517157962e-01 -5.819447343999242e-01 + -5.816772678604962e-01 -5.814095534384316e-01 -5.811415926659900e-01 -5.808733865100626e-01 -5.806049358083534e-01 + -5.803362414940428e-01 -5.800673049021045e-01 -5.797981269727348e-01 -5.795287083747186e-01 -5.792590507223763e-01 + -5.789891553127540e-01 -5.787190227795775e-01 -5.784486540773595e-01 -5.781780503537821e-01 -5.779072127885909e-01 + -5.776361421027820e-01 -5.773648392415993e-01 -5.770933058481036e-01 -5.768215427543451e-01 -5.765495506173008e-01 + -5.762773307782053e-01 -5.760048843724456e-01 -5.757322122309633e-01 -5.754593149355522e-01 -5.751861936930261e-01 + -5.749128500443350e-01 -5.746392847733658e-01 -5.743654986749642e-01 -5.740914927526973e-01 -5.738172681170074e-01 + -5.735428256834612e-01 -5.732681661997935e-01 -5.729932909950833e-01 -5.727182011898047e-01 -5.724428973589288e-01 + -5.721673806475209e-01 -5.718916522032619e-01 -5.716157126986885e-01 -5.713395629769044e-01 -5.710632040862346e-01 + -5.707866372440725e-01 -5.705098634203313e-01 -5.702328834166335e-01 -5.699556980810941e-01 -5.696783084118523e-01 + -5.694007154024264e-01 -5.691229196446771e-01 -5.688449222662509e-01 -5.685667247951188e-01 -5.682883277592247e-01 + -5.680097317796297e-01 -5.677309379467054e-01 -5.674519473718960e-01 -5.671727608332666e-01 -5.668933787438524e-01 + -5.666138024324125e-01 -5.663340332775648e-01 -5.660540719736767e-01 -5.657739191147048e-01 -5.654935755198692e-01 + -5.652130424887296e-01 -5.649323205844615e-01 -5.646514102596061e-01 -5.643703131320561e-01 -5.640890302500955e-01 + -5.638075621229782e-01 -5.635259096013298e-01 -5.632440735413435e-01 -5.629620547371306e-01 -5.626798540413637e-01 + -5.623974724401825e-01 -5.621149109968532e-01 -5.618321704141040e-01 -5.615492514232792e-01 -5.612661549867731e-01 + -5.609828820346520e-01 -5.606994332802816e-01 -5.604158091721365e-01 -5.601320109850756e-01 -5.598480400285579e-01 + -5.595638966628304e-01 -5.592795815381203e-01 -5.589950956088516e-01 -5.587104398719418e-01 -5.584256150214867e-01 + -5.581406216413944e-01 -5.578554608147975e-01 -5.575701335442586e-01 -5.572846406020895e-01 -5.569989825973618e-01 + -5.567131602740183e-01 -5.564271745453506e-01 -5.561410260628522e-01 -5.558547156725416e-01 -5.555682445647333e-01 + -5.552816133007876e-01 -5.549948224318785e-01 -5.547078730025937e-01 -5.544207659049382e-01 -5.541335017868810e-01 + -5.538460810525171e-01 -5.535585047530838e-01 -5.532707741030544e-01 -5.529828895161875e-01 -5.526948516856666e-01 + -5.524066615722431e-01 -5.521183198617187e-01 -5.518298271294942e-01 -5.515411840216864e-01 -5.512523916981388e-01 + -5.509634510475757e-01 -5.506743625070015e-01 -5.503851268106821e-01 -5.500957448096843e-01 -5.498062173123895e-01 + -5.495165448046009e-01 -5.492267279674086e-01 -5.489367680360671e-01 -5.486466657159732e-01 -5.483564214808752e-01 + -5.480660360175322e-01 -5.477755101695411e-01 -5.474848446983241e-01 -5.471940399297857e-01 -5.469030967097296e-01 + -5.466120162347039e-01 -5.463207992130580e-01 -5.460294461220425e-01 -5.457379574365921e-01 -5.454463341419615e-01 + -5.451545769787555e-01 -5.448626863052353e-01 -5.445706629798505e-01 -5.442785079610155e-01 -5.439862220351145e-01 + -5.436938056623958e-01 -5.434012594168094e-01 -5.431085842649811e-01 -5.428157805859503e-01 -5.425228488112607e-01 + -5.422297902211034e-01 -5.419366056396356e-01 -5.416432955189590e-01 -5.413498603513526e-01 -5.410563008101139e-01 + -5.407626176406882e-01 -5.404688113584152e-01 -5.401748827259091e-01 -5.398808327262222e-01 -5.395866619984641e-01 + -5.392923710452394e-01 -5.389979603718316e-01 -5.387034307479797e-01 -5.384087828255361e-01 -5.381140170098579e-01 + -5.378191341794292e-01 -5.375241352697128e-01 -5.372290208939874e-01 -5.369337913756430e-01 -5.366384472427702e-01 + -5.363429897090184e-01 -5.360474189692397e-01 -5.357517350808286e-01 -5.354559397287709e-01 -5.351600336380363e-01 + -5.348640167550405e-01 -5.345678898586708e-01 -5.342716537895550e-01 -5.339753091509816e-01 -5.336788560795809e-01 + -5.333822952812678e-01 -5.330856281219807e-01 -5.327888549366336e-01 -5.324919760228772e-01 -5.321949921530423e-01 + -5.318979038948367e-01 -5.316007117591099e-01 -5.313034163655616e-01 -5.310060185016283e-01 -5.307085188690476e-01 + -5.304109178113635e-01 -5.301132159560333e-01 -5.298154141057816e-01 -5.295175129068631e-01 -5.292195125739295e-01 + -5.289214133220888e-01 -5.286232164928936e-01 -5.283249229043371e-01 -5.280265326905970e-01 -5.277280463629660e-01 + -5.274294646406563e-01 -5.271307882435877e-01 -5.268320172699235e-01 -5.265331522204252e-01 -5.262341943956992e-01 + -5.259351442515741e-01 -5.256360020246456e-01 -5.253367683007200e-01 -5.250374438802079e-01 -5.247380293156688e-01 + -5.244385244793137e-01 -5.241389303158239e-01 -5.238392481089597e-01 -5.235394779437145e-01 -5.232396201567239e-01 + -5.229396754457293e-01 -5.226396444439171e-01 -5.223395275325885e-01 -5.220393250130385e-01 -5.217390378529512e-01 + -5.214386667612969e-01 -5.211382119631184e-01 -5.208376739941909e-01 -5.205370535049869e-01 -5.202363510969753e-01 + -5.199355670763710e-01 -5.196347019022574e-01 -5.193337564915598e-01 -5.190327313042545e-01 -5.187316266472318e-01 + -5.184304431068453e-01 -5.181291813913007e-01 -5.178278420262173e-01 -5.175264249304404e-01 -5.172249309061349e-01 + -5.169233612064826e-01 -5.166217158673360e-01 -5.163199951550123e-01 -5.160181998004911e-01 -5.157163303784532e-01 + -5.154143871836301e-01 -5.151123703899823e-01 -5.148102810445049e-01 -5.145081200022412e-01 -5.142058873966443e-01 + -5.139035834879907e-01 -5.136012088439446e-01 -5.132987643470369e-01 -5.129962500176725e-01 -5.126936660139045e-01 + -5.123910137907831e-01 -5.120882937169244e-01 -5.117855056864241e-01 -5.114826505830118e-01 -5.111797289351894e-01 + -5.108767409175631e-01 -5.105736869791608e-01 -5.102705678009448e-01 -5.099673841164564e-01 -5.096641361609235e-01 + -5.093608243087677e-01 -5.090574492425100e-01 -5.087540114820200e-01 -5.084505112619658e-01 -5.081469486274651e-01 + -5.078433245912960e-01 -5.075396400795943e-01 -5.072358951124865e-01 -5.069320899536702e-01 -5.066282251477461e-01 + -5.063243014155288e-01 -5.060203189866231e-01 -5.057162780382299e-01 -5.054121795257869e-01 -5.051080240346536e-01 + -5.048038117428125e-01 -5.044995428560932e-01 -5.041952179946867e-01 -5.038908379779851e-01 -5.035864027540428e-01 + -5.032819126747086e-01 -5.029773687584369e-01 -5.026727713803431e-01 -5.023681207203433e-01 -5.020634170773620e-01 + -5.017586611304518e-01 -5.014538534087800e-01 -5.011489939472488e-01 -5.008440834008399e-01 -5.005391225202214e-01 + -5.002341114848970e-01 -4.999290507534227e-01 -4.996239408965545e-01 -4.993187821357916e-01 -4.990135746184980e-01 + -4.987083187010172e-01 -4.984030154770353e-01 -4.980976654859903e-01 -4.977922686591017e-01 -4.974868253646026e-01 + -4.971813362150598e-01 -4.968758018164073e-01 -4.965702219796178e-01 -4.962645970518764e-01 -4.959589283986423e-01 + -4.956532161259331e-01 -4.953474601672504e-01 -4.950416611894621e-01 -4.947358197709370e-01 -4.944299362131679e-01 + -4.941240104625670e-01 -4.938180432013966e-01 -4.935120353360559e-01 -4.932059869696777e-01 -4.928998983832586e-01 + -4.925937700937396e-01 -4.922876025288242e-01 -4.919813957951697e-01 -4.916751499430368e-01 -4.913688660561277e-01 + -4.910625447982750e-01 -4.907561860728009e-01 -4.904497902858990e-01 -4.901433579647613e-01 -4.898368894758774e-01 + -4.895303847877975e-01 -4.892238442443610e-01 -4.889172690570770e-01 -4.886106594399146e-01 -4.883040152916479e-01 + -4.879973371198497e-01 -4.876906255185612e-01 -4.873838808516193e-01 -4.870771028969680e-01 -4.867702923235035e-01 + -4.864634502410182e-01 -4.861565765237592e-01 -4.858496713307078e-01 -4.855427352755911e-01 -4.852357685536697e-01 + -4.849287714451036e-01 -4.846217444589359e-01 -4.843146879997467e-01 -4.840076025123002e-01 -4.837004885060202e-01 + -4.833933461066379e-01 -4.830861755003688e-01 -4.827789772517898e-01 -4.824717516127337e-01 -4.821644988235214e-01 + -4.818572195031119e-01 -4.815499140763169e-01 -4.812425828318353e-01 -4.809352261296052e-01 -4.806278443199989e-01 + -4.803204376463540e-01 -4.800130060714603e-01 -4.797055501717924e-01 -4.793980709573083e-01 -4.790905684347367e-01 + -4.787830426340720e-01 -4.784754939887473e-01 -4.781679231200341e-01 -4.778603302286951e-01 -4.775527150015833e-01 + -4.772450784284375e-01 -4.769374213667171e-01 -4.766297434623847e-01 -4.763220450397429e-01 -4.760143266869929e-01 + -4.757065886153464e-01 -4.753988310011543e-01 -4.750910541528841e-01 -4.747832586964973e-01 -4.744754450010169e-01 + -4.741676132522562e-01 -4.738597638648681e-01 -4.735518971269201e-01 -4.732440131603057e-01 -4.729361121339242e-01 + -4.726281945136708e-01 -4.723202610280838e-01 -4.720123119889466e-01 -4.717043475548789e-01 -4.713963678930571e-01 + -4.710883732580126e-01 -4.707803639362851e-01 -4.704723402372425e-01 -4.701643027667922e-01 -4.698562520096238e-01 + -4.695481878708884e-01 -4.692401107063794e-01 -4.689320210638210e-01 -4.686239190614940e-01 -4.683158048406638e-01 + -4.680076787162389e-01 -4.676995413185929e-01 -4.673913930202820e-01 -4.670832339045677e-01 -4.667750641928977e-01 + -4.664668842720264e-01 -4.661586945788764e-01 -4.658504950199774e-01 -4.655422858974875e-01 -4.652340682220931e-01 + -4.649258420178881e-01 -4.646176071935555e-01 -4.643093642460228e-01 -4.640011135361189e-01 -4.636928552533583e-01 + -4.633845894780055e-01 -4.630763167063440e-01 -4.627680375263447e-01 -4.624597520114774e-01 -4.621514604268375e-01 + -4.618431632080228e-01 -4.615348605890552e-01 -4.612265525685530e-01 -4.609182391698630e-01 -4.606099213200685e-01 + -4.603015994943055e-01 -4.599932734377760e-01 -4.596849434943749e-01 -4.593766101319814e-01 -4.590682736286037e-01 + -4.587599339472412e-01 -4.584515913122191e-01 -4.581432465762054e-01 -4.578348999443045e-01 -4.575265513883392e-01 + -4.572182012155285e-01 -4.569098498253546e-01 -4.566014974456956e-01 -4.562931438038699e-01 -4.559847894939479e-01 + -4.556764355440957e-01 -4.553680818446301e-01 -4.550597283221777e-01 -4.547513752454754e-01 -4.544430231318768e-01 + -4.541346721146189e-01 -4.538263219879204e-01 -4.535179736207505e-01 -4.532096276207381e-01 -4.529012837320638e-01 + -4.525929421989657e-01 -4.522846033793929e-01 -4.519762674029318e-01 -4.516679344715044e-01 -4.513596049388520e-01 + -4.510512793496801e-01 -4.507429578901284e-01 -4.504346405869434e-01 -4.501263277269192e-01 -4.498180196893253e-01 + -4.495097167463535e-01 -4.492014186979058e-01 -4.488931259139300e-01 -4.485848392328776e-01 -4.482765586745183e-01 + -4.479682843350483e-01 -4.476600166157323e-01 -4.473517555800268e-01 -4.470435013321629e-01 -4.467352542154915e-01 + -4.464270145748750e-01 -4.461187827567155e-01 -4.458105590951706e-01 -4.455023436689998e-01 -4.451941365719282e-01 + -4.448859382022067e-01 -4.445777486373541e-01 -4.442695679571050e-01 -4.439613968717006e-01 -4.436532356916815e-01 + -4.433450843880059e-01 -4.430369431657580e-01 -4.427288122616561e-01 -4.424206918620519e-01 -4.421125820372482e-01 + -4.418044832064567e-01 -4.414963960811867e-01 -4.411883204960218e-01 -4.408802564087612e-01 -4.405722043668788e-01 + -4.402641646390490e-01 -4.399561373068210e-01 -4.396481224088197e-01 -4.393401203468038e-01 -4.390321316119934e-01 + -4.387241564347777e-01 -4.384161947343386e-01 -4.381082465266398e-01 -4.378003125430411e-01 -4.374923928277115e-01 + -4.371844871230922e-01 -4.368765963346815e-01 -4.365687207997857e-01 -4.362608601883623e-01 -4.359530147661063e-01 + -4.356451849773876e-01 -4.353373711547212e-01 -4.350295729831375e-01 -4.347217906709347e-01 -4.344140253247259e-01 + -4.341062767701542e-01 -4.337985447574569e-01 -4.334908298973194e-01 -4.331831324142745e-01 -4.328754522838512e-01 + -4.325677895304312e-01 -4.322601446380396e-01 -4.319525182069930e-01 -4.316449103351276e-01 -4.313373209430619e-01 + -4.310297500384340e-01 -4.307221981580691e-01 -4.304146654764764e-01 -4.301071518609876e-01 -4.297996578556980e-01 + -4.294921838432407e-01 -4.291847298181669e-01 -4.288772959356691e-01 -4.285698824691314e-01 -4.282624896947286e-01 + -4.279551173581843e-01 -4.276477655542056e-01 -4.273404353166645e-01 -4.270331268873108e-01 -4.267258400671970e-01 + -4.264185747737768e-01 -4.261113314513503e-01 -4.258041105111009e-01 -4.254969114260224e-01 -4.251897346526543e-01 + -4.248825811839114e-01 -4.245754507348872e-01 -4.242683433304872e-01 -4.239612594489042e-01 -4.236541990429175e-01 + -4.233471621233121e-01 -4.230401489624036e-01 -4.227331599159186e-01 -4.224261953202194e-01 -4.221192554076946e-01 + -4.218123401221037e-01 -4.215054495276057e-01 -4.211985840665567e-01 -4.208917437341202e-01 -4.205849285470991e-01 + -4.202781391077526e-01 -4.199713756820169e-01 -4.196646382796324e-01 -4.193579269625680e-01 -4.190512419898234e-01 + -4.187445835885104e-01 -4.184379514023820e-01 -4.181313458657921e-01 -4.178247679943504e-01 -4.175182174706034e-01 + -4.172116941638125e-01 -4.169051985589959e-01 -4.165987308801878e-01 -4.162922910262470e-01 -4.159858787333477e-01 + -4.156794948456864e-01 -4.153731400237493e-01 -4.150668138055245e-01 -4.147605162480433e-01 -4.144542477033889e-01 + -4.141480084083939e-01 -4.138417983331389e-01 -4.135356175072968e-01 -4.132294665425894e-01 -4.129233456523720e-01 + -4.126172547353913e-01 -4.123111939769975e-01 -4.120051637027982e-01 -4.116991641480549e-01 -4.113931948631621e-01 + -4.110872561089984e-01 -4.107813489720965e-01 -4.104754732505308e-01 -4.101696286974395e-01 -4.098638156566466e-01 + -4.095580344057681e-01 -4.092522850492459e-01 -4.089465675148873e-01 -4.086408821301867e-01 -4.083352292811099e-01 + -4.080296090087697e-01 -4.077240214925531e-01 -4.074184669621912e-01 -4.071129454474836e-01 -4.068074568206541e-01 + -4.065020011172992e-01 -4.061965792344674e-01 -4.058911914234347e-01 -4.055858372701102e-01 -4.052805169731385e-01 + -4.049752308691225e-01 -4.046699791746853e-01 -4.043647616984872e-01 -4.040595785275335e-01 -4.037544302850327e-01 + -4.034493171430220e-01 -4.031442391412985e-01 -4.028391964411297e-01 -4.025341890399178e-01 -4.022292169515432e-01 + -4.019242804318620e-01 -4.016193797575413e-01 -4.013145151618574e-01 -4.010096867767989e-01 -4.007048946739946e-01 + -4.004001389575452e-01 -4.000954199442892e-01 -3.997907376333255e-01 -3.994860918450180e-01 -3.991814831388100e-01 + -3.988769118682245e-01 -3.985723779299208e-01 -3.982678813725196e-01 -3.979634224118638e-01 -3.976590013430957e-01 + -3.973546179557737e-01 -3.970502723184750e-01 -3.967459652757308e-01 -3.964416967373386e-01 -3.961374664325438e-01 + -3.958332748416728e-01 -3.955291221412219e-01 -3.952250082276700e-01 -3.949209329883424e-01 -3.946168969005399e-01 + -3.943129006192436e-01 -3.940089438207542e-01 -3.937050264421336e-01 -3.934011488327164e-01 -3.930973111392007e-01 + -3.927935133510078e-01 -3.924897554398895e-01 -3.921860379028622e-01 -3.918823611410527e-01 -3.915787251272155e-01 + -3.912751296302741e-01 -3.909715747221262e-01 -3.906680610479274e-01 -3.903645884467465e-01 -3.900611567141484e-01 + -3.897577665105899e-01 -3.894544180732338e-01 -3.891511112918067e-01 -3.888478460867855e-01 -3.885446227676595e-01 + -3.882414417069796e-01 -3.879383024897914e-01 -3.876352053351357e-01 -3.873321510269954e-01 -3.870291394376005e-01 + -3.867261704550462e-01 -3.864232442776043e-01 -3.861203610538394e-01 -3.858175208256477e-01 -3.855147235659399e-01 + -3.852119696012977e-01 -3.849092593053318e-01 -3.846065928280623e-01 -3.843039700003283e-01 -3.840013907871894e-01 + -3.836988557264463e-01 -3.833963646642737e-01 -3.830939173673272e-01 -3.827915146861536e-01 -3.824891567344230e-01 + -3.821868431312930e-01 -3.818845742897094e-01 -3.815823505036508e-01 -3.812801717050347e-01 -3.809780375081945e-01 + -3.806759481537249e-01 -3.803739045452896e-01 -3.800719066553854e-01 -3.797699542729503e-01 -3.794680474344709e-01 + -3.791661864151066e-01 -3.788643713579414e-01 -3.785626020610045e-01 -3.782608787892401e-01 -3.779592019649877e-01 + -3.776575717504184e-01 -3.773559879986245e-01 -3.770544506277551e-01 -3.767529601718599e-01 -3.764515165488658e-01 + -3.761501194541416e-01 -3.758487697291592e-01 -3.755474675286999e-01 -3.752462123142175e-01 -3.749450044400430e-01 + -3.746438442933219e-01 -3.743427319385532e-01 -3.740416670860849e-01 -3.737406497610264e-01 -3.734396805632812e-01 + -3.731387597991040e-01 -3.728378873981389e-01 -3.725370629746288e-01 -3.722362869751284e-01 -3.719355598195744e-01 + -3.716348809475082e-01 -3.713342505611615e-01 -3.710336692885385e-01 -3.707331373206220e-01 -3.704326544188714e-01 + -3.701322203470578e-01 -3.698318357923215e-01 -3.695315007664240e-01 -3.692312147431765e-01 -3.689309784821330e-01 + -3.686307923312130e-01 -3.683306558583173e-01 -3.680305692832940e-01 -3.677305328772401e-01 -3.674305466155561e-01 + -3.671306102835627e-01 -3.668307239979260e-01 -3.665308885123383e-01 -3.662311039528895e-01 -3.659313700864294e-01 + -3.656316867340536e-01 -3.653320542170925e-01 -3.650324728818179e-01 -3.647329423252613e-01 -3.644334627823841e-01 + -3.641340348652060e-01 -3.638346584224414e-01 -3.635353333854674e-01 -3.632360599381753e-01 -3.629368383087880e-01 + -3.626376683911322e-01 -3.623385498640058e-01 -3.620394834143431e-01 -3.617404694429358e-01 -3.614415075289109e-01 + -3.611425978472304e-01 -3.608437406892576e-01 -3.605449360396625e-01 -3.602461837170217e-01 -3.599474837636126e-01 + -3.596488368123176e-01 -3.593502429497555e-01 -3.590517019950174e-01 -3.587532141258951e-01 -3.584547794364419e-01 + -3.581563978967544e-01 -3.578580694598877e-01 -3.575597943932133e-01 -3.572615731273898e-01 -3.569634054963255e-01 + -3.566652915450074e-01 -3.563672316398869e-01 -3.560692255181004e-01 -3.557712730433470e-01 -3.554733745722332e-01 + -3.551755304325120e-01 -3.548777407381354e-01 -3.545800053200450e-01 -3.542823243820459e-01 -3.539846981602633e-01 + -3.536871265064687e-01 -3.533896092936707e-01 -3.530921466577667e-01 -3.527947392696623e-01 -3.524973870763591e-01 + -3.522000896417020e-01 -3.519028473926252e-01 -3.516056606257513e-01 -3.513085292624320e-01 -3.510114529438408e-01 + -3.507144318797571e-01 -3.504174668509267e-01 -3.501205576763053e-01 -3.498237041407538e-01 -3.495269064579332e-01 + -3.492301648012658e-01 -3.489334792023763e-01 -3.486368495320163e-01 -3.483402759532310e-01 -3.480437587608516e-01 + -3.477472981563033e-01 -3.474508940116457e-01 -3.471545462266357e-01 -3.468582552838557e-01 -3.465620210594309e-01 + -3.462658431862374e-01 -3.459697223261950e-01 -3.456736587298253e-01 -3.453776521244075e-01 -3.450817025977070e-01 + -3.447858103250944e-01 -3.444899754033867e-01 -3.441941976114102e-01 -3.438984770490408e-01 -3.436028143288083e-01 + -3.433072093931014e-01 -3.430116620696204e-01 -3.427161725111446e-01 -3.424207408695913e-01 -3.421253671506906e-01 + -3.418300511322294e-01 -3.415347931565998e-01 -3.412395936962896e-01 -3.409444525560181e-01 -3.406493696743920e-01 + -3.403543451949735e-01 -3.400593792856730e-01 -3.397644718554241e-01 -3.394696227303268e-01 -3.391748324448361e-01 + -3.388801012525273e-01 -3.385854289098167e-01 -3.382908154719833e-01 -3.379962610967925e-01 -3.377017658856785e-01 + -3.374073296405456e-01 -3.371129523992028e-01 -3.368186347618567e-01 -3.365243767275647e-01 -3.362301780997549e-01 + -3.359360390044588e-01 -3.356419595939377e-01 -3.353479398983790e-01 -3.350539796822969e-01 -3.347600792157354e-01 + -3.344662390001809e-01 -3.341724588683134e-01 -3.338787387386647e-01 -3.335850787505256e-01 -3.332914790393797e-01 + -3.329979395469141e-01 -3.327044601082655e-01 -3.324110411740308e-01 -3.321176830325031e-01 -3.318243854727410e-01 + -3.315311485033696e-01 -3.312379722613320e-01 -3.309448568815591e-01 -3.306518021855764e-01 -3.303588081394571e-01 + -3.300658753265905e-01 -3.297730038003383e-01 -3.294801933460689e-01 -3.291874440822869e-01 -3.288947561448500e-01 + -3.286021295596533e-01 -3.283095641084477e-01 -3.280170600152969e-01 -3.277246178092963e-01 -3.274322373144385e-01 + -3.271399184133136e-01 -3.268476612759387e-01 -3.265554660369243e-01 -3.262633326374516e-01 -3.259712608638953e-01 + -3.256792511518811e-01 -3.253873038511834e-01 -3.250954187049387e-01 -3.248035957166725e-01 -3.245118350464998e-01 + -3.242201368055027e-01 -3.239285008232202e-01 -3.236369270127419e-01 -3.233454159517716e-01 -3.230539677655248e-01 + -3.227625822208953e-01 -3.224712593689608e-01 -3.221799993547627e-01 -3.218888022707884e-01 -3.215976678728723e-01 + -3.213065962862219e-01 -3.210155880538063e-01 -3.207246430922022e-01 -3.204337612603162e-01 -3.201429426545060e-01 + -3.198521874188910e-01 -3.195614955407240e-01 -3.192708667833873e-01 -3.189803015317205e-01 -3.186898001852494e-01 + -3.183993624745159e-01 -3.181089883645859e-01 -3.178186780215274e-01 -3.175284315788672e-01 -3.172382488912609e-01 + -3.169481298117736e-01 -3.166580748847834e-01 -3.163680842820584e-01 -3.160781577505636e-01 -3.157882953403168e-01 + -3.154984971942622e-01 -3.152087634033934e-01 -3.149190937439705e-01 -3.146294882798918e-01 -3.143399475483734e-01 + -3.140504715109739e-01 -3.137610600081304e-01 -3.134717131245625e-01 -3.131824310053718e-01 -3.128932136614712e-01 + -3.126040608259110e-01 -3.123149728003283e-01 -3.120259500284038e-01 -3.117369923103007e-01 -3.114480995811182e-01 + -3.111592719695180e-01 -3.108705096041851e-01 -3.105818123704323e-01 -3.102931800853200e-01 -3.100046132424714e-01 + -3.097161120700553e-01 -3.094276763275429e-01 -3.091393060498078e-01 -3.088510013669117e-01 -3.085627623567511e-01 + -3.082745888090075e-01 -3.079864807413559e-01 -3.076984387104112e-01 -3.074104627037881e-01 -3.071225525229602e-01 + -3.068347082674415e-01 -3.065469300647063e-01 -3.062592179233167e-01 -3.059715715883658e-01 -3.056839913222955e-01 + -3.053964776128304e-01 -3.051090302429263e-01 -3.048216491115613e-01 -3.045343343664140e-01 -3.042470861256498e-01 + -3.039599042912569e-01 -3.036727886539801e-01 -3.033857396783212e-01 -3.030987576532087e-01 -3.028118423290159e-01 + -3.025249936916685e-01 -3.022382118572411e-01 -3.019514969324824e-01 -3.016648487319269e-01 -3.013782672163520e-01 + -3.010917529380510e-01 -3.008053059332530e-01 -3.005189259718208e-01 -3.002326131255288e-01 -2.999463675243501e-01 + -2.996601892115071e-01 -2.993740779431134e-01 -2.990880338991673e-01 -2.988020575697556e-01 -2.985161488129333e-01 + -2.982303074956766e-01 -2.979445337070337e-01 -2.976588275957710e-01 -2.973731891105994e-01 -2.970876179949718e-01 + -2.968021146693378e-01 -2.965166794729635e-01 -2.962313121299224e-01 -2.959460126205053e-01 -2.956607810824475e-01 + -2.953756176130727e-01 -2.950905220348498e-01 -2.948054942542040e-01 -2.945205348259674e-01 -2.942356438398593e-01 + -2.939508210351428e-01 -2.936660664737455e-01 -2.933813802767271e-01 -2.930967624892026e-01 -2.928122128931882e-01 + -2.925277316158055e-01 -2.922433191494531e-01 -2.919589753765323e-01 -2.916747001400424e-01 -2.913904935350139e-01 + -2.911063557118664e-01 -2.908222866434848e-01 -2.905382860439090e-01 -2.902543542778646e-01 -2.899704917370004e-01 + -2.896866981425306e-01 -2.894029734511842e-01 -2.891193178139609e-01 -2.888357313345801e-01 -2.885522138545054e-01 + -2.882687652243500e-01 -2.879853859636904e-01 -2.877020762131379e-01 -2.874188357014512e-01 -2.871356645025479e-01 + -2.868525627422169e-01 -2.865695304469716e-01 -2.862865673963798e-01 -2.860036736642309e-01 -2.857208497673618e-01 + -2.854380956360413e-01 -2.851554110854154e-01 -2.848727961880673e-01 -2.845902510831507e-01 -2.843077757793696e-01 + -2.840253700094237e-01 -2.837430340397069e-01 -2.834607682748240e-01 -2.831785725328111e-01 -2.828964467316310e-01 + -2.826143909542473e-01 -2.823324053101364e-01 -2.820504896922502e-01 -2.817686439371250e-01 -2.814868685136343e-01 + -2.812051636152371e-01 -2.809235289745332e-01 -2.806419646055033e-01 -2.803604706362606e-01 -2.800790471610514e-01 + -2.797976939416736e-01 -2.795164109639519e-01 -2.792351987736799e-01 -2.789540573481899e-01 -2.786729864814172e-01 + -2.783919862645312e-01 -2.781110567914744e-01 -2.778301980476193e-01 -2.775494098202491e-01 -2.772686923282846e-01 + -2.769880459823117e-01 -2.767074706347814e-01 -2.764269661749121e-01 -2.761465326612197e-01 -2.758661702373058e-01 + -2.755858788282252e-01 -2.753056582075042e-01 -2.750255088041456e-01 -2.747454308713073e-01 -2.744654241403574e-01 + -2.741854886058927e-01 -2.739056243892176e-01 -2.736258315782464e-01 -2.733461099674180e-01 -2.730664595012521e-01 + -2.727868807168794e-01 -2.725073736368404e-01 -2.722279380246611e-01 -2.719485739535283e-01 -2.716692815376729e-01 + -2.713900607905190e-01 -2.711109114418696e-01 -2.708318336740216e-01 -2.705528279896257e-01 -2.702738942089605e-01 + -2.699950321750810e-01 -2.697162419812612e-01 -2.694375237750356e-01 -2.691588774953904e-01 -2.688803028674867e-01 + -2.686018002777490e-01 -2.683233700490228e-01 -2.680450119322323e-01 -2.677667258920440e-01 -2.674885120321642e-01 + -2.672103704327183e-01 -2.669323009240009e-01 -2.666543034142266e-01 -2.663763784024609e-01 -2.660985259744725e-01 + -2.658207458961011e-01 -2.655430381891060e-01 -2.652654029648259e-01 -2.649878402880381e-01 -2.647103499069445e-01 + -2.644329319184849e-01 -2.641555868035665e-01 -2.638783144422805e-01 -2.636011146840161e-01 -2.633239876271375e-01 + -2.630469333706403e-01 -2.627699518665801e-01 -2.624930428881614e-01 -2.622162067361601e-01 -2.619394437425979e-01 + -2.616627537197243e-01 -2.613861365959049e-01 -2.611095924398818e-01 -2.608331213683194e-01 -2.605567232565551e-01 + -2.602803979638560e-01 -2.600041459185203e-01 -2.597279672559259e-01 -2.594518617711524e-01 -2.591758294668244e-01 + -2.588998704444723e-01 -2.586239847880919e-01 -2.583481722507706e-01 -2.580724328621725e-01 -2.577967671126083e-01 + -2.575211749406902e-01 -2.572456561780725e-01 -2.569702108956164e-01 -2.566948391959332e-01 -2.564195410517088e-01 + -2.561443162003717e-01 -2.558691649278121e-01 -2.555940876367002e-01 -2.553190840839927e-01 -2.550441541814838e-01 + -2.547692980445108e-01 -2.544945157803290e-01 -2.542198072584164e-01 -2.539451722830000e-01 -2.536706112997469e-01 + -2.533961245035316e-01 -2.531217116489478e-01 -2.528473727232912e-01 -2.525731078267265e-01 -2.522989170513077e-01 + -2.520248001810547e-01 -2.517507572028029e-01 -2.514767886096237e-01 -2.512028943623831e-01 -2.509290742545349e-01 + -2.506553283625735e-01 -2.503816568034038e-01 -2.501080595782905e-01 -2.498345364108095e-01 -2.495610875124447e-01 + -2.492877133133172e-01 -2.490144136112123e-01 -2.487411882994743e-01 -2.484680374856057e-01 -2.481949612635986e-01 + -2.479219595287280e-01 -2.476490320734136e-01 -2.473761793087864e-01 -2.471034014703498e-01 -2.468306982957061e-01 + -2.465580697844871e-01 -2.462855160432138e-01 -2.460130371204629e-01 -2.457406328233614e-01 -2.454683031113906e-01 + -2.451960484794311e-01 -2.449238689415910e-01 -2.446517642712055e-01 -2.443797345227543e-01 -2.441077797933181e-01 + -2.438359000947776e-01 -2.435640951889690e-01 -2.432923652315951e-01 -2.430207106571287e-01 -2.427491313175689e-01 + -2.424776270783986e-01 -2.422061980074125e-01 -2.419348442072336e-01 -2.416635656192684e-01 -2.413923620306189e-01 + -2.411212337762792e-01 -2.408501811283544e-01 -2.405792038734625e-01 -2.403083019688687e-01 -2.400374754936993e-01 + -2.397667245256450e-01 -2.394960488977194e-01 -2.392254485194238e-01 -2.389549238762380e-01 -2.386844750244205e-01 + -2.384141017100180e-01 -2.381438039886236e-01 -2.378735819631148e-01 -2.376034356560101e-01 -2.373333648418426e-01 + -2.370633696160408e-01 -2.367934504134751e-01 -2.365236071336530e-01 -2.362538396334552e-01 -2.359841479713349e-01 + -2.357145322333765e-01 -2.354449923780104e-01 -2.351755281955192e-01 -2.349061399838227e-01 -2.346368280467886e-01 + -2.343675921502802e-01 -2.340984322401892e-01 -2.338293484224673e-01 -2.335603407944267e-01 -2.332914091991481e-01 + -2.330225534791031e-01 -2.327537740958542e-01 -2.324850711724544e-01 -2.322164444575208e-01 -2.319478939696494e-01 + -2.316794198107119e-01 -2.314110220364787e-01 -2.311427004172850e-01 -2.308744549913938e-01 -2.306062862221652e-01 + -2.303381940399467e-01 -2.300701782673901e-01 -2.298022389505013e-01 -2.295343762055658e-01 -2.292665900251787e-01 + -2.289988801367178e-01 -2.287312467963517e-01 -2.284636903804389e-01 -2.281962106639611e-01 -2.279288075702767e-01 + -2.276614812041137e-01 -2.273942316314865e-01 -2.271270587234099e-01 -2.268599623216859e-01 -2.265929428586625e-01 + -2.263260004971463e-01 -2.260591349680134e-01 -2.257923462859340e-01 -2.255256345570404e-01 -2.252589998316905e-01 + -2.249924418873443e-01 -2.247259607239798e-01 -2.244595568451081e-01 -2.241932301870257e-01 -2.239269805236896e-01 + -2.236608079513920e-01 -2.233947125724077e-01 -2.231286943677930e-01 -2.228627530899186e-01 -2.225968889349937e-01 + -2.223311022938890e-01 -2.220653929888047e-01 -2.217997609137618e-01 -2.215342061492806e-01 -2.212687287997047e-01 + -2.210033287645195e-01 -2.207380058226258e-01 -2.204727603658667e-01 -2.202075926188733e-01 -2.199425023254976e-01 + -2.196774894791217e-01 -2.194125541827232e-01 -2.191476964953657e-01 -2.188829162198361e-01 -2.186182133017065e-01 + -2.183535882155842e-01 -2.180890409721393e-01 -2.178245713492862e-01 -2.175601793915103e-01 -2.172958651996608e-01 + -2.170316287941991e-01 -2.167674699222372e-01 -2.165033887351043e-01 -2.162393856655618e-01 -2.159754605317784e-01 + -2.157116131976179e-01 -2.154478437626437e-01 -2.151841523053365e-01 -2.149205387568082e-01 -2.146570029331132e-01 + -2.143935451423346e-01 -2.141301656253313e-01 -2.138668641770334e-01 -2.136036407648879e-01 -2.133404954698548e-01 + -2.130774283590253e-01 -2.128144392711416e-01 -2.125515281171839e-01 -2.122886953403734e-01 -2.120259409959825e-01 + -2.117632648531722e-01 -2.115006669388265e-01 -2.112381473557379e-01 -2.109757061544524e-01 -2.107133431005909e-01 + -2.104510582708100e-01 -2.101888520817322e-01 -2.099267244352251e-01 -2.096646751892664e-01 -2.094027043922436e-01 + -2.091408121382980e-01 -2.088789983898283e-01 -2.086172629233026e-01 -2.083556060294393e-01 -2.080940280081475e-01 + -2.078325286261216e-01 -2.075711078316715e-01 -2.073097657230958e-01 -2.070485023681648e-01 -2.067873176254528e-01 + -2.065262113703670e-01 -2.062651840261599e-01 -2.060042356935543e-01 -2.057433661320316e-01 -2.054825753736384e-01 + -2.052218635119340e-01 -2.049612305777034e-01 -2.047006763593381e-01 -2.044402009029163e-01 -2.041798046444743e-01 + -2.039194875091236e-01 -2.036592493288050e-01 -2.033990901597007e-01 -2.031390101041152e-01 -2.028790091364410e-01 + -2.026190869860804e-01 -2.023592439213894e-01 -2.020994803209571e-01 -2.018397959336108e-01 -2.015801906636277e-01 + -2.013206646163115e-01 -2.010612178968381e-01 -2.008018503846473e-01 -2.005425618909167e-01 -2.002833527994660e-01 + -2.000242232866459e-01 -1.997651731545872e-01 -1.995062023757428e-01 -1.992473110134654e-01 -1.989884991329442e-01 + -1.987297665552775e-01 -1.984711132804359e-01 -1.982125397288479e-01 -1.979540458641874e-01 -1.976956315048893e-01 + -1.974372966986851e-01 -1.971790415364275e-01 -1.969208660181268e-01 -1.966627699138122e-01 -1.964047534115951e-01 + -1.961468168792641e-01 -1.958889601415059e-01 -1.956311830976701e-01 -1.953734858227050e-01 -1.951158683885618e-01 + -1.948583307060198e-01 -1.946008726082255e-01 -1.943434944554087e-01 -1.940861964418109e-01 -1.938289783248288e-01 + -1.935718400929853e-01 -1.933147818435645e-01 -1.930578036445209e-01 -1.928009053047615e-01 -1.925440867668252e-01 + -1.922873484836986e-01 -1.920306904586313e-01 -1.917741124759950e-01 -1.915176145882685e-01 -1.912611968971867e-01 + -1.910048594156118e-01 -1.907486018758652e-01 -1.904924244300230e-01 -1.902363275204000e-01 -1.899803109613821e-01 + -1.897243746214878e-01 -1.894685186111405e-01 -1.892127429944364e-01 -1.889570476814606e-01 -1.887014324762902e-01 + -1.884458977092228e-01 -1.881904436322386e-01 -1.879350700181010e-01 -1.876797768445363e-01 -1.874245641980662e-01 + -1.871694321106837e-01 -1.869143804464632e-01 -1.866594091449939e-01 -1.864045185802509e-01 -1.861497088150435e-01 + -1.858949796742653e-01 -1.856403311585743e-01 -1.853857633524328e-01 -1.851312763093270e-01 -1.848768697910832e-01 + -1.846225438828809e-01 -1.843682990131126e-01 -1.841141350478542e-01 -1.838600518410295e-01 -1.836060494900988e-01 + -1.833521280737523e-01 -1.830982875326949e-01 -1.828445276569093e-01 -1.825908487213151e-01 -1.823372510073639e-01 + -1.820837342990139e-01 -1.818302985608840e-01 -1.815769438919524e-01 -1.813236703339543e-01 -1.810704777470943e-01 + -1.808173660274447e-01 -1.805643355946649e-01 -1.803113865319381e-01 -1.800585185867421e-01 -1.798057318207557e-01 + -1.795530263298101e-01 -1.793004021140676e-01 -1.790478589821669e-01 -1.787953969871552e-01 -1.785430165333783e-01 + -1.782907175616041e-01 -1.780384999147782e-01 -1.777863636186671e-01 -1.775343087850783e-01 -1.772823354138563e-01 + -1.770304432439544e-01 -1.767786324996124e-01 -1.765269035206169e-01 -1.762752561209628e-01 -1.760236902365481e-01 + -1.757722059508868e-01 -1.755208033072168e-01 -1.752694821962465e-01 -1.750182424985018e-01 -1.747670845873172e-01 + -1.745160085943736e-01 -1.742650142826787e-01 -1.740141016708582e-01 -1.737632708599284e-01 -1.735125219002990e-01 + -1.732618545819516e-01 -1.730112688968157e-01 -1.727607652962038e-01 -1.725103437360838e-01 -1.722600040199003e-01 + -1.720097462053399e-01 -1.717595703957765e-01 -1.715094765937824e-01 -1.712594645505801e-01 -1.710095344617568e-01 + -1.707596867053610e-01 -1.705099210652020e-01 -1.702602374503936e-01 -1.700106359820640e-01 -1.697611167032507e-01 + -1.695116795170456e-01 -1.692623242857098e-01 -1.690130513415946e-01 -1.687638608735592e-01 -1.685147526839133e-01 + -1.682657267304136e-01 -1.680167830834059e-01 -1.677679218434041e-01 -1.675191428301483e-01 -1.672704459776749e-01 + -1.670218317162355e-01 -1.667733000505553e-01 -1.665248507843929e-01 -1.662764839848620e-01 -1.660281997331086e-01 + -1.657799980211539e-01 -1.655318786421316e-01 -1.652838417439954e-01 -1.650358877061586e-01 -1.647880163635810e-01 + -1.645402275978841e-01 -1.642925215033296e-01 -1.640448981629310e-01 -1.637973575048030e-01 -1.635498993322754e-01 + -1.633025239587731e-01 -1.630552316214122e-01 -1.628080220971913e-01 -1.625608953706327e-01 -1.623138515347123e-01 + -1.620668906280902e-01 -1.618200125176413e-01 -1.615732171440627e-01 -1.613265048790783e-01 -1.610798757703294e-01 + -1.608333296326273e-01 -1.605868664946396e-01 -1.603404864451659e-01 -1.600941895233320e-01 -1.598479755194739e-01 + -1.596018445089071e-01 -1.593557968710357e-01 -1.591098325274174e-01 -1.588639513462271e-01 -1.586181533501567e-01 + -1.583724386633118e-01 -1.581268072684121e-01 -1.578812589110151e-01 -1.576357938605635e-01 -1.573904124176000e-01 + -1.571451143885420e-01 -1.568998997115455e-01 -1.566547684551118e-01 -1.564097207009810e-01 -1.561647563377750e-01 + -1.559198752534892e-01 -1.556750777971572e-01 -1.554303640753041e-01 -1.551857339241298e-01 -1.549411873472499e-01 + -1.546967244117141e-01 -1.544523451583313e-01 -1.542080493972972e-01 -1.539638371771692e-01 -1.537197089019022e-01 + -1.534756644902717e-01 -1.532317037874507e-01 -1.529878268669247e-01 -1.527440338285302e-01 -1.525003246495042e-01 + -1.522566990917994e-01 -1.520131573865194e-01 -1.517696998607227e-01 -1.515263263105132e-01 -1.512830366842278e-01 + -1.510398310896279e-01 -1.507967095609423e-01 -1.505536719818633e-01 -1.503107182379510e-01 -1.500678487166025e-01 + -1.498250635429138e-01 -1.495823624607518e-01 -1.493397455183047e-01 -1.490972128240516e-01 -1.488547643939502e-01 + -1.486124000468938e-01 -1.483701197975273e-01 -1.481279240643807e-01 -1.478858128086334e-01 -1.476437858541442e-01 + -1.474018432575297e-01 -1.471599850901578e-01 -1.469182113447434e-01 -1.466765218581870e-01 -1.464349167991909e-01 + -1.461933964691583e-01 -1.459519607332137e-01 -1.457106095126376e-01 -1.454693428712828e-01 -1.452281609001614e-01 + -1.449870635167667e-01 -1.447460505411944e-01 -1.445051223204885e-01 -1.442642790465533e-01 -1.440235204958664e-01 + -1.437828466645076e-01 -1.435422576460715e-01 -1.433017535021517e-01 -1.430613340788666e-01 -1.428209993367665e-01 + -1.425807496580667e-01 -1.423405850452980e-01 -1.421005053276286e-01 -1.418605105748216e-01 -1.416206008760722e-01 + -1.413807762310167e-01 -1.411410364179444e-01 -1.409013815814383e-01 -1.406618121114770e-01 -1.404223278620860e-01 + -1.401829287142080e-01 -1.399436147388266e-01 -1.397043860171121e-01 -1.394652424999606e-01 -1.392261840277533e-01 + -1.389872108800275e-01 -1.387483232704581e-01 -1.385095210193419e-01 -1.382708041155041e-01 -1.380321726381191e-01 + -1.377936266235328e-01 -1.375551659356028e-01 -1.373167905196480e-01 -1.370785007699294e-01 -1.368402967462084e-01 + -1.366021782602805e-01 -1.363641453151502e-01 -1.361261980034910e-01 -1.358883363925467e-01 -1.356505602730137e-01 + -1.354128697173978e-01 -1.351752651019714e-01 -1.349377463365720e-01 -1.347003133096952e-01 -1.344629660943524e-01 + -1.342257047644556e-01 -1.339885292721434e-01 -1.337514394288152e-01 -1.335144355004790e-01 -1.332775177574095e-01 + -1.330406860095451e-01 -1.328039402156265e-01 -1.325672804621033e-01 -1.323307068237664e-01 -1.320942191803451e-01 + -1.318578174250235e-01 -1.316215019436967e-01 -1.313852728254415e-01 -1.311491298574344e-01 -1.309130730812647e-01 + -1.306771025967214e-01 -1.304412184433993e-01 -1.302054204167683e-01 -1.299697085633917e-01 -1.297340833011096e-01 + -1.294985445422908e-01 -1.292630921400970e-01 -1.290277262032818e-01 -1.287924468024440e-01 -1.285572538860320e-01 + -1.283221472565841e-01 -1.280871271607027e-01 -1.278521939245786e-01 -1.276173473594251e-01 -1.273825873815436e-01 + -1.271479140654554e-01 -1.269133275291332e-01 -1.266788276689478e-01 -1.264444143112885e-01 -1.262100878411512e-01 + -1.259758484249543e-01 -1.257416958580221e-01 -1.255076301118343e-01 -1.252736512740011e-01 -1.250397594556589e-01 + -1.248059544551782e-01 -1.245722362561283e-01 -1.243386053032582e-01 -1.241050615437150e-01 -1.238716047916152e-01 + -1.236382351439431e-01 -1.234049527007845e-01 -1.231717574487822e-01 -1.229386491649988e-01 -1.227056280466961e-01 + -1.224726944551588e-01 -1.222398481939305e-01 -1.220070891810755e-01 -1.217744175349468e-01 -1.215418333321439e-01 + -1.213093364896874e-01 -1.210769268543440e-01 -1.208446047468073e-01 -1.206123703546746e-01 -1.203802234985189e-01 + -1.201481641556592e-01 -1.199161924040098e-01 -1.196843083373426e-01 -1.194525118101599e-01 -1.192208027778711e-01 + -1.189891816158967e-01 -1.187576483334740e-01 -1.185262027772708e-01 -1.182948450325541e-01 -1.180635751718018e-01 + -1.178323931740712e-01 -1.176012988598141e-01 -1.173702923768903e-01 -1.171393740841554e-01 -1.169085438684581e-01 + -1.166778016318426e-01 -1.164471474323627e-01 -1.162165813372163e-01 -1.159861033094216e-01 -1.157557132288848e-01 + -1.155254113554128e-01 -1.152951978878259e-01 -1.150650726784410e-01 -1.148350356935617e-01 -1.146050869998271e-01 + -1.143752266983624e-01 -1.141454546633286e-01 -1.139157708150553e-01 -1.136861755297615e-01 -1.134566688685596e-01 + -1.132272506625232e-01 -1.129979209389772e-01 -1.127686797968139e-01 -1.125395272939830e-01 -1.123104632216639e-01 + -1.120814876598629e-01 -1.118526009932446e-01 -1.116238031362107e-01 -1.113950939743172e-01 -1.111664735714766e-01 + -1.109379420230661e-01 -1.107094992989161e-01 -1.104811452047023e-01 -1.102528800189790e-01 -1.100247040176238e-01 + -1.097966169898620e-01 -1.095686189066022e-01 -1.093407098806465e-01 -1.091128899944971e-01 -1.088851591239916e-01 + -1.086575171512236e-01 -1.084299644451029e-01 -1.082025011238454e-01 -1.079751270251657e-01 -1.077478421434466e-01 + -1.075206465724022e-01 -1.072935404061887e-01 -1.070665234272605e-01 -1.068395956686409e-01 -1.066127575621145e-01 + -1.063860090403522e-01 -1.061593499609373e-01 -1.059327804074918e-01 -1.057063004552603e-01 -1.054799100848440e-01 + -1.052536091459819e-01 -1.050273978363624e-01 -1.048012764247322e-01 -1.045752447992682e-01 -1.043493029044653e-01 + -1.041234507912105e-01 -1.038976885616201e-01 -1.036720161437409e-01 -1.034464334142674e-01 -1.032209407082870e-01 + -1.029955381585720e-01 -1.027702255852857e-01 -1.025450030256683e-01 -1.023198705766582e-01 -1.020948282803886e-01 + -1.018698759615270e-01 -1.016450136357437e-01 -1.014202417243671e-01 -1.011955602054591e-01 -1.009709689162001e-01 + -1.007464679013254e-01 -1.005220572777319e-01 -1.002977370772110e-01 -1.000735070732387e-01 -9.984936745539402e-02 + -9.962531858349888e-02 -9.940136027998529e-02 -9.917749246814733e-02 -9.895371525770333e-02 -9.873002873335845e-02 + -9.850643282337790e-02 -9.828292738770521e-02 -9.805951276903688e-02 -9.783618914357473e-02 -9.761295629040607e-02 + -9.738981424317925e-02 -9.716676311420755e-02 -9.694380293900719e-02 -9.672093359332221e-02 -9.649815506782670e-02 + -9.627546771326484e-02 -9.605287156919239e-02 -9.583036651098850e-02 -9.560795255252680e-02 -9.538562978098189e-02 + -9.516339824129488e-02 -9.494125774199282e-02 -9.471920843970391e-02 -9.449725071216948e-02 -9.427538438593883e-02 + -9.405360936874554e-02 -9.383192580278800e-02 -9.361033376064058e-02 -9.338883317577901e-02 -9.316742389906425e-02 + -9.294610622995669e-02 -9.272488039403920e-02 -9.250374621386263e-02 -9.228270367992475e-02 -9.206175287916113e-02 + -9.184089387273792e-02 -9.162012656935895e-02 -9.139945093572596e-02 -9.117886729658348e-02 -9.095837571294788e-02 + -9.073797605928635e-02 -9.051766837713708e-02 -9.029745274779008e-02 -9.007732920697027e-02 -8.985729759887780e-02 + -8.963735802530043e-02 -8.941751083887589e-02 -8.919775594907166e-02 -8.897809325953572e-02 -8.875852286193828e-02 + -8.853904483959285e-02 -8.831965916578795e-02 -8.810036569419880e-02 -8.788116467295366e-02 -8.766205635082600e-02 + -8.744304058057480e-02 -8.722411733824492e-02 -8.700528670561582e-02 -8.678654875532379e-02 -8.656790339361393e-02 + -8.634935054757228e-02 -8.613089058374623e-02 -8.591252359970507e-02 -8.569424942256174e-02 -8.547606809595372e-02 + -8.525797972327777e-02 -8.503998436304407e-02 -8.482208183975883e-02 -8.460427219735964e-02 -8.438655581333676e-02 + -8.416893266387415e-02 -8.395140264416648e-02 -8.373396580036768e-02 -8.351662221748458e-02 -8.329937190808817e-02 + -8.308221474187347e-02 -8.286515089972675e-02 -8.264818063381729e-02 -8.243130387381740e-02 -8.221452057360500e-02 + -8.199783077068876e-02 -8.178123458056528e-02 -8.156473193866548e-02 -8.134832272179610e-02 -8.113200727104515e-02 + -8.091578573554094e-02 -8.069965795549490e-02 -8.048362394306618e-02 -8.026768379237301e-02 -8.005183759034226e-02 + -7.983608519016389e-02 -7.962042660317335e-02 -7.940486220827629e-02 -7.918939199917317e-02 -7.897401585103307e-02 + -7.875873382193239e-02 -7.854354599947752e-02 -7.832845240531904e-02 -7.811345290511561e-02 -7.789854765910142e-02 + -7.768373695009409e-02 -7.746902070156129e-02 -7.725439886068521e-02 -7.703987147751143e-02 -7.682543865920169e-02 + -7.661110037032860e-02 -7.639685648697914e-02 -7.618270730319152e-02 -7.596865299784139e-02 -7.575469343456721e-02 + -7.554082861289950e-02 -7.532705861915691e-02 -7.511338355056779e-02 -7.489980327273796e-02 -7.468631776375068e-02 + -7.447292742489155e-02 -7.425963225373161e-02 -7.404643208981297e-02 -7.383332706618533e-02 -7.362031725942129e-02 + -7.340740264369265e-02 -7.319458312424655e-02 -7.298185885257603e-02 -7.276923011698885e-02 -7.255669681825400e-02 + -7.234425890125808e-02 -7.213191646645117e-02 -7.191966959969415e-02 -7.170751827394115e-02 -7.149546237742448e-02 + -7.128350216363183e-02 -7.107163782537941e-02 -7.085986923051370e-02 -7.064819639413342e-02 -7.043661941815849e-02 + -7.022513838389523e-02 -7.001375316964638e-02 -6.980246372359999e-02 -6.959127044971054e-02 -6.938017339783993e-02 + -6.916917238807876e-02 -6.895826751099868e-02 -6.874745887832359e-02 -6.853674652264935e-02 -6.832613029387129e-02 + -6.811561029537151e-02 -6.790518687416305e-02 -6.769485994872884e-02 -6.748462944761908e-02 -6.727449549181348e-02 + -6.706445814195625e-02 -6.685451736224034e-02 -6.664467305023641e-02 -6.643492546019260e-02 -6.622527482862205e-02 + -6.601572100856345e-02 -6.580626400049541e-02 -6.559690390732385e-02 -6.538764078471235e-02 -6.517847455920224e-02 + -6.496940519404462e-02 -6.476043303620643e-02 -6.455155816426872e-02 -6.434278041275177e-02 -6.413409988235154e-02 + -6.392551667227454e-02 -6.371703078482928e-02 -6.350864213121965e-02 -6.330035079826633e-02 -6.309215709125325e-02 + -6.288406097171770e-02 -6.267606236590158e-02 -6.246816137578116e-02 -6.226035810132791e-02 -6.205265253482506e-02 + -6.184504450634240e-02 -6.163753424009603e-02 -6.143012204113525e-02 -6.122280779495761e-02 -6.101559145710207e-02 + -6.080847310111580e-02 -6.060145284620669e-02 -6.039453063876327e-02 -6.018770637541451e-02 -5.998098039534337e-02 + -5.977435284136760e-02 -5.956782355675167e-02 -5.936139258218223e-02 -5.915506002510895e-02 -5.894882595975996e-02 + -5.874269025717062e-02 -5.853665294379332e-02 -5.833071438748900e-02 -5.812487459491447e-02 -5.791913345983549e-02 + -5.771349104248068e-02 -5.750794745476003e-02 -5.730250273990040e-02 -5.709715674449271e-02 -5.689190963313420e-02 + -5.668676170442684e-02 -5.648171287301057e-02 -5.627676311138611e-02 -5.607191251359627e-02 -5.586716116856662e-02 + -5.566250902085241e-02 -5.545795595276776e-02 -5.525350230977423e-02 -5.504914828197500e-02 -5.484489368806074e-02 + -5.464073856561743e-02 -5.443668303623681e-02 -5.423272717677420e-02 -5.402887087270093e-02 -5.382511411736842e-02 + -5.362145727556954e-02 -5.341790037997223e-02 -5.321444331788154e-02 -5.301108618236487e-02 -5.280782907094528e-02 + -5.260467200594416e-02 -5.240161485390568e-02 -5.219865776343095e-02 -5.199580105954085e-02 -5.179304465507040e-02 + -5.159038850941820e-02 -5.138783273765680e-02 -5.118537740030552e-02 -5.098302246878324e-02 -5.078076787428482e-02 + -5.057861387937131e-02 -5.037656068404879e-02 -5.017460818262723e-02 -4.997275637519877e-02 -4.977100534878579e-02 + -4.956935521374012e-02 -4.936780587637167e-02 -4.916635729330274e-02 -4.896500983679772e-02 -4.876376358063662e-02 + -4.856261839799727e-02 -4.836157437280066e-02 -4.816063160553166e-02 -4.795979012910388e-02 -4.775904981223175e-02 + -4.755841077230219e-02 -4.735787336181510e-02 -4.715743752596301e-02 -4.695710319390285e-02 -4.675687045398216e-02 + -4.655673941737810e-02 -4.635671009364274e-02 -4.615678236145827e-02 -4.595695644691457e-02 -4.575723258610617e-02 + -4.555761069075770e-02 -4.535809077212207e-02 -4.515867291944397e-02 -4.495935719937229e-02 -4.476014355843901e-02 + -4.456103197632578e-02 -4.436202279051898e-02 -4.416311608901573e-02 -4.396431172960501e-02 -4.376560979706327e-02 + -4.356701040970479e-02 -4.336851362154585e-02 -4.317011930970618e-02 -4.297182755295056e-02 -4.277363871130811e-02 + -4.257555275870079e-02 -4.237756961321195e-02 -4.217968936488893e-02 -4.198191211978222e-02 -4.178423789759614e-02 + -4.158666657665847e-02 -4.138919837391426e-02 -4.119183356383482e-02 -4.099457203865310e-02 -4.079741379048268e-02 + -4.060035892668235e-02 -4.040340754077800e-02 -4.020655958670875e-02 -4.000981499812348e-02 -3.981317410229721e-02 + -3.961663704352115e-02 -3.942020369405195e-02 -3.922387410519079e-02 -3.902764838570288e-02 -3.883152661169272e-02 + -3.863550868276464e-02 -3.843959464464100e-02 -3.824378485096525e-02 -3.804807931112070e-02 -3.785247793879744e-02 + -3.765698082240899e-02 -3.746158806803077e-02 -3.726629970906549e-02 -3.707111562537097e-02 -3.687603600301111e-02 + -3.668106114329449e-02 -3.648619095542227e-02 -3.629142541706046e-02 -3.609676463615045e-02 -3.590220871216067e-02 + -3.570775761915167e-02 -3.551341127587861e-02 -3.531916998478909e-02 -3.512503392646860e-02 -3.493100298239093e-02 + -3.473707719308593e-02 -3.454325666569649e-02 -3.434954148093054e-02 -3.415593156072503e-02 -3.396242692622412e-02 + -3.376902792182854e-02 -3.357573459185429e-02 -3.338254684613227e-02 -3.318946476737597e-02 -3.299648846264201e-02 + -3.280361798076661e-02 -3.261085320981364e-02 -3.241819429994710e-02 -3.222564156785773e-02 -3.203319495411584e-02 + -3.184085442350271e-02 -3.164862007407277e-02 -3.145649201602077e-02 -3.126447024597763e-02 -3.107255466700169e-02 + -3.088074555671056e-02 -3.068904313085425e-02 -3.049744727803826e-02 -3.030595802638682e-02 -3.011457548570120e-02 + -2.992329974875160e-02 -2.973213075050443e-02 -2.954106848293515e-02 -2.935011329195715e-02 -2.915926525661732e-02 + -2.896852427673346e-02 -2.877789042941862e-02 -2.858736382466336e-02 -2.839694452567641e-02 -2.820663243092813e-02 + -2.801642765839682e-02 -2.782633053619610e-02 -2.763634102981755e-02 -2.744645909471058e-02 -2.725668483048721e-02 + -2.706701834793413e-02 -2.687745966148872e-02 -2.668800867127078e-02 -2.649866562411629e-02 -2.630943076513501e-02 + -2.612030399888650e-02 -2.593128533989631e-02 -2.574237489560391e-02 -2.555357276907920e-02 -2.536487891525730e-02 + -2.517629330290238e-02 -2.498781626631630e-02 -2.479944791947400e-02 -2.461118815951395e-02 -2.442303705775731e-02 + -2.423499472682666e-02 -2.404706124098910e-02 -2.385923651050157e-02 -2.367152062237768e-02 -2.348391391197065e-02 + -2.329641637680258e-02 -2.310902796361102e-02 -2.292174876507744e-02 -2.273457889435020e-02 -2.254751838574287e-02 + -2.236056713942959e-02 -2.217372537079298e-02 -2.198699334983061e-02 -2.180037099746794e-02 -2.161385831877313e-02 + -2.142745542221016e-02 -2.124116241611923e-02 -2.105497927356034e-02 -2.086890594375282e-02 -2.068294274565517e-02 + -2.049708982965088e-02 -2.031134709508492e-02 -2.012571460207244e-02 -1.994019246558534e-02 -1.975478077426674e-02 + -1.956947944878238e-02 -1.938428854559868e-02 -1.919920840769478e-02 -1.901423906121075e-02 -1.882938044349050e-02 + -1.864463264867233e-02 -1.845999578941159e-02 -1.827546991282947e-02 -1.809105492490821e-02 -1.790675101318496e-02 + -1.772255847013706e-02 -1.753847723077995e-02 -1.735450728912205e-02 -1.717064875577919e-02 -1.698690174123156e-02 + -1.680326624034783e-02 -1.661974219495428e-02 -1.643632989539235e-02 -1.625302952284425e-02 -1.606984099009794e-02 + -1.588676434582367e-02 -1.570379970237604e-02 -1.552094715767664e-02 -1.533820665109939e-02 -1.515557821470722e-02 + -1.497306218983010e-02 -1.479065863118324e-02 -1.460836746737021e-02 -1.442618879376636e-02 -1.424412272699600e-02 + -1.406216932715821e-02 -1.388032850365394e-02 -1.369860041414062e-02 -1.351698537084881e-02 -1.333548332713773e-02 + -1.315409426742165e-02 -1.297281830737383e-02 -1.279165555870565e-02 -1.261060603011550e-02 -1.242966965324022e-02 + -1.224884670128487e-02 -1.206813738892206e-02 -1.188754163203305e-02 -1.170705946859269e-02 -1.152669101347058e-02 + -1.134643637569507e-02 -1.116629550991553e-02 -1.098626842139487e-02 -1.080635544822676e-02 -1.062655668128806e-02 + -1.044687204494093e-02 -1.026730162280993e-02 -1.008784553433474e-02 -9.908503858526582e-03 -9.729276511698201e-03 + -9.550163618928804e-03 -9.371165505355611e-03 -9.192282154920128e-03 -9.013513542246960e-03 -8.834859775588668e-03 + -8.656320970291077e-03 -8.477897155130903e-03 -8.299588259899083e-03 -8.121394531144674e-03 -7.943316209259341e-03 + -7.765353219198069e-03 -7.587505591333328e-03 -7.409773443860054e-03 -7.232156891183837e-03 -7.054655906230881e-03 + -6.877270474033493e-03 -6.700000921715352e-03 -6.522847372218281e-03 -6.345809748257097e-03 -6.168888131399519e-03 + -5.992082642122597e-03 -5.815393366379400e-03 -5.638820235869921e-03 -5.462363348533388e-03 -5.286023033805962e-03 + -5.109799304673499e-03 -4.933692127821829e-03 -4.757701606393674e-03 -4.581827861470766e-03 -4.406070940931505e-03 + -4.230430770274698e-03 -4.054907567997104e-03 -3.879501600335772e-03 -3.704212807069328e-03 -3.529041210474627e-03 + -3.353986930090703e-03 -3.179050081041732e-03 -3.004230655593028e-03 -2.829528626659512e-03 -2.654944304289923e-03 + -2.480477843039907e-03 -2.306129168890747e-03 -2.131898354626704e-03 -1.957785522367332e-03 -1.783790769612464e-03 + -1.609914041309663e-03 -1.436155409326836e-03 -1.262515208025358e-03 -1.088993476198761e-03 -9.155901719868249e-04 + -7.423054008843995e-04 -5.691392854771952e-04 -3.960918865957833e-04 -2.231631331613931e-04 -5.035321608514060e-05 + 1.223375771945329e-04 2.949092895407656e-04 4.673619084872533e-04 6.396953140537370e-04 8.119093865188150e-04 + 9.840041155727759e-04 1.155979539871523e-03 1.327835367602612e-03 1.499571413663267e-03 1.671187748049661e-03 + 1.842684305331169e-03 2.014060960896812e-03 2.185317608856639e-03 2.356454289147141e-03 2.527470954200780e-03 + 2.698367270832486e-03 2.869143169831049e-03 3.039798698561594e-03 3.210333755176400e-03 3.380748214685887e-03 + 3.551042001872539e-03 3.721215182132198e-03 3.891267592694254e-03 4.061198929412137e-03 4.231009214636464e-03 + 4.400698444839332e-03 4.570266499650065e-03 4.739713256426893e-03 4.909038688279234e-03 5.078242841339914e-03 + 5.247325443294046e-03 5.416286280121805e-03 5.585125417934797e-03 5.753842797319914e-03 5.922438289361948e-03 + 6.090911784292105e-03 6.259263304936011e-03 6.427492823105761e-03 6.595600012759487e-03 6.763584774419725e-03 + 6.931447157908777e-03 7.099187064683324e-03 7.266804368739545e-03 7.434298984071849e-03 7.601670964899477e-03 + 7.768920175905106e-03 7.936046303989365e-03 8.103049345026314e-03 8.269929303195386e-03 8.436686062480435e-03 + 8.603319496825714e-03 8.769829559891583e-03 8.936216298209541e-03 9.102479469308070e-03 9.268618835503980e-03 + 9.434634442417017e-03 9.600526244002849e-03 9.766294116521254e-03 9.931937936947469e-03 1.009745771049027e-02 + 1.026285342997890e-02 1.042812477681206e-02 1.059327162144324e-02 1.075829401681754e-02 1.092319186819127e-02 + 1.108796504594824e-02 1.125261345370748e-02 1.141713713772357e-02 1.158153598704318e-02 1.174580967555363e-02 + 1.190995817803677e-02 1.207398151021485e-02 1.223787955540131e-02 1.240165218070774e-02 1.256529932365555e-02 + 1.272882103806231e-02 1.289221710280211e-02 1.305548725320952e-02 1.321863152957668e-02 1.338164989105289e-02 + 1.354454220587777e-02 1.370730835288826e-02 1.386994832163190e-02 1.403246211588375e-02 1.419484943187744e-02 + 1.435711010999991e-02 1.451924419921884e-02 1.468125161270911e-02 1.484313222013652e-02 1.500488591571896e-02 + 1.516651273046586e-02 1.532801257754355e-02 1.548938513124086e-02 1.565063033579857e-02 1.581174821092933e-02 + 1.597273864701365e-02 1.613360150922888e-02 1.629433671764488e-02 1.645494432276120e-02 1.661542413184349e-02 + 1.677577586209575e-02 1.693599953321696e-02 1.709609511287956e-02 1.725606247097126e-02 1.741590148147653e-02 + 1.757561211738663e-02 1.773519439308624e-02 1.789464801957598e-02 1.805397280960725e-02 1.821316881163111e-02 + 1.837223594327105e-02 1.853117406905512e-02 1.868998307594014e-02 1.884866298214414e-02 1.900721372338833e-02 + 1.916563497459167e-02 1.932392665507269e-02 1.948208878919649e-02 1.964012126059438e-02 1.979802393750615e-02 + 1.995579673545799e-02 2.011343968946751e-02 2.027095263124555e-02 2.042833526879373e-02 2.058558759933038e-02 + 2.074270959919291e-02 2.089970114286997e-02 2.105656209513535e-02 2.121329241031374e-02 2.136989211400533e-02 + 2.152636093833320e-02 2.168269866776463e-02 2.183890534086288e-02 2.199498088647827e-02 2.215092516911965e-02 + 2.230673806408907e-02 2.246241957468516e-02 2.261796965793072e-02 2.277338799181243e-02 2.292867446749406e-02 + 2.308382911412376e-02 2.323885181888266e-02 2.339374244699652e-02 2.354850090287507e-02 2.370312721409915e-02 + 2.385762123470989e-02 2.401198266010886e-02 2.416621147301771e-02 2.432030765671687e-02 2.447427107682733e-02 + 2.462810160176357e-02 2.478179917471193e-02 2.493536381795363e-02 2.508879528739230e-02 2.524209334527653e-02 + 2.539525801488748e-02 2.554828923354157e-02 2.570118686847216e-02 2.585395079171064e-02 2.600658098606827e-02 + 2.615907742012537e-02 2.631143978762620e-02 2.646366795301069e-02 2.661576194257877e-02 2.676772164859378e-02 + 2.691954693391293e-02 2.707123769272043e-02 2.722279394328245e-02 2.737421556407061e-02 2.752550224474631e-02 + 2.767665393933695e-02 2.782767063812680e-02 2.797855221700411e-02 2.812929853552858e-02 2.827990951702357e-02 + 2.843038519104858e-02 2.858072533585580e-02 2.873092969062032e-02 2.888099827101270e-02 2.903093101911967e-02 + 2.918072779556083e-02 2.933038847140823e-02 2.947991301658642e-02 2.962930141213865e-02 2.977855336278226e-02 + 2.992766870509821e-02 3.007664746318324e-02 3.022548953626840e-02 3.037419478553557e-02 3.052276309616091e-02 + 3.067119447416764e-02 3.081948881896879e-02 3.096764581778017e-02 3.111566540198458e-02 3.126354756710210e-02 + 3.141129218718559e-02 3.155889912410548e-02 3.170636829125183e-02 3.185369970791438e-02 3.200089317518744e-02 + 3.214794841776677e-02 3.229486543634106e-02 3.244164418203412e-02 3.258828451581320e-02 3.273478630264194e-02 + 3.288114949586567e-02 3.302737408530167e-02 3.317345979235018e-02 3.331940642975919e-02 3.346521401820098e-02 + 3.361088246101045e-02 3.375641161607764e-02 3.390180136352038e-02 3.404705169548587e-02 3.419216253016829e-02 + 3.433713355905806e-02 3.448196468652563e-02 3.462665590981111e-02 3.477120710939272e-02 3.491561814527116e-02 + 3.505988891618091e-02 3.520401943397326e-02 3.534800952666442e-02 3.549185891051008e-02 3.563556756111654e-02 + 3.577913543618631e-02 3.592256240340591e-02 3.606584831947614e-02 3.620899312153205e-02 3.635199681091714e-02 + 3.649485912620978e-02 3.663757985375464e-02 3.678015900636063e-02 3.692259649832257e-02 3.706489218607827e-02 + 3.720704593508108e-02 3.734905772908955e-02 3.749092751022131e-02 3.763265496742431e-02 3.777423997951684e-02 + 3.791568254953915e-02 3.805698256030369e-02 3.819813986869797e-02 3.833915436267914e-02 3.848002605018682e-02 + 3.862075477984065e-02 3.876134025391093e-02 3.890178243600422e-02 3.904208129158644e-02 3.918223668100989e-02 + 3.932224846044379e-02 3.946211655605483e-02 3.960184097189857e-02 3.974142146457355e-02 3.988085779819951e-02 + 4.002014997942075e-02 4.015929792921669e-02 4.029830150192959e-02 4.043716055991190e-02 4.057587507004282e-02 + 4.071444498657769e-02 4.085287001066611e-02 4.099114999824743e-02 4.112928495212512e-02 4.126727475679569e-02 + 4.140511926665246e-02 4.154281836167219e-02 4.168037204269245e-02 4.181778018003033e-02 4.195504246778908e-02 + 4.209215884913708e-02 4.222912929605258e-02 4.236595366776428e-02 4.250263182248033e-02 4.263916367566677e-02 + 4.277554922465009e-02 4.291178824859961e-02 4.304788049654025e-02 4.318382596138427e-02 4.331962457087349e-02 + 4.345527617981602e-02 4.359078064797250e-02 4.372613792550029e-02 4.386134797486977e-02 4.399641051415262e-02 + 4.413132537776133e-02 4.426609256403441e-02 4.440071196061698e-02 4.453518342174363e-02 4.466950682320869e-02 + 4.480368214879805e-02 4.493770928728694e-02 4.507158793990715e-02 4.520531802497359e-02 4.533889951667943e-02 + 4.547233228082954e-02 4.560561616979211e-02 4.573875108353129e-02 4.587173702317195e-02 4.600457379177124e-02 + 4.613726112101928e-02 4.626979898466685e-02 4.640218731770854e-02 4.653442597807410e-02 4.666651481740990e-02 + 4.679845378497393e-02 4.693024287357150e-02 4.706188178521280e-02 4.719337030512012e-02 4.732470843170088e-02 + 4.745589609974604e-02 4.758693317708736e-02 4.771781949014568e-02 4.784855500276729e-02 4.797913963655120e-02 + 4.810957311625792e-02 4.823985532440599e-02 4.836998622519359e-02 4.849996572088229e-02 4.862979364778694e-02 + 4.875946986129576e-02 4.888899438454671e-02 4.901836703838853e-02 4.914758752328308e-02 4.927665585368439e-02 + 4.940557196434897e-02 4.953433564666962e-02 4.966294680168561e-02 4.979140536998770e-02 4.991971127467005e-02 + 5.004786430086550e-02 5.017586426593462e-02 5.030371111424699e-02 5.043140473941395e-02 5.055894500969876e-02 + 5.068633180855401e-02 5.081356509387767e-02 5.094064477169723e-02 5.106757053524139e-02 5.119434226596677e-02 + 5.132095996453229e-02 5.144742351517578e-02 5.157373274644007e-02 5.169988750799723e-02 5.182588783131492e-02 + 5.195173357105356e-02 5.207742440366903e-02 5.220296027189056e-02 5.232834113948501e-02 5.245356688434039e-02 + 5.257863735375337e-02 5.270355244318054e-02 5.282831211610928e-02 5.295291615700908e-02 5.307736435753736e-02 + 5.320165668494783e-02 5.332579302368824e-02 5.344977322479061e-02 5.357359720391287e-02 5.369726488407797e-02 + 5.382077614890905e-02 5.394413077320572e-02 5.406732861255047e-02 5.419036960275756e-02 5.431325364836510e-02 + 5.443598061485443e-02 5.455855035736775e-02 5.468096283548277e-02 5.480321791614200e-02 5.492531533836561e-02 + 5.504725504027442e-02 5.516903696522249e-02 5.529066094250196e-02 5.541212681912044e-02 5.553343451105355e-02 + 5.565458402054679e-02 5.577557512714444e-02 5.589640757833542e-02 5.601708136214176e-02 5.613759637012277e-02 + 5.625795242697428e-02 5.637814944133901e-02 5.649818735356010e-02 5.661806606948155e-02 5.673778531909066e-02 + 5.685734496106067e-02 5.697674499811992e-02 5.709598525886500e-02 5.721506557962035e-02 5.733398588420521e-02 + 5.745274613557275e-02 5.757134619305772e-02 5.768978576165893e-02 5.780806477237931e-02 5.792618319490116e-02 + 5.804414085654030e-02 5.816193759992416e-02 5.827957333255503e-02 5.839704805764100e-02 5.851436157058919e-02 + 5.863151359019340e-02 5.874850407742044e-02 5.886533297606138e-02 5.898200016057164e-02 5.909850545490182e-02 + 5.921484876799358e-02 5.933103006596772e-02 5.944704910278828e-02 5.956290569090495e-02 5.967859979076014e-02 + 5.979413129454921e-02 5.990950006107775e-02 6.002470595625681e-02 6.013974894676900e-02 6.025462892974234e-02 + 6.036934559538653e-02 6.048389882575328e-02 6.059828859366181e-02 6.071251478747773e-02 6.082657726499330e-02 + 6.094047589468096e-02 6.105421060960093e-02 6.116778124880510e-02 6.128118760026364e-02 6.139442960439424e-02 + 6.150750715787331e-02 6.162042008748835e-02 6.173316829355946e-02 6.184575170612789e-02 6.195817023946892e-02 + 6.207042366308074e-02 6.218251178412997e-02 6.229443455021107e-02 6.240619187345142e-02 6.251778362644587e-02 + 6.262920965673664e-02 6.274046989094115e-02 6.285156423838029e-02 6.296249246083868e-02 6.307325441937692e-02 + 6.318385004239983e-02 6.329427920287174e-02 6.340454177652059e-02 6.351463766120390e-02 6.362456678994362e-02 + 6.373432899407734e-02 6.384392402667542e-02 6.395335181995393e-02 6.406261231361865e-02 6.417170537725830e-02 + 6.428063082883417e-02 6.438938856382127e-02 6.449797859582693e-02 6.460640069400744e-02 6.471465460887021e-02 + 6.482274028565467e-02 6.493065766530991e-02 6.503840663024645e-02 6.514598697176463e-02 6.525339863731919e-02 + 6.536064160053869e-02 6.546771556229376e-02 6.557462036169828e-02 6.568135597564134e-02 6.578792228094754e-02 + 6.589431913461476e-02 6.600054641494822e-02 6.610660407274732e-02 6.621249195669229e-02 6.631820979208959e-02 + 6.642375751800587e-02 6.652913508526218e-02 6.663434233390064e-02 6.673937912206085e-02 6.684424535139094e-02 + 6.694894096694531e-02 6.705346576057515e-02 6.715781952052316e-02 6.726200223606826e-02 6.736601378290344e-02 + 6.746985396850236e-02 6.757352270136854e-02 6.767701992273348e-02 6.778034554033589e-02 6.788349929667206e-02 + 6.798648102682574e-02 6.808929069330329e-02 6.819192820375723e-02 6.829439341428477e-02 6.839668615716293e-02 + 6.849880637697058e-02 6.860075397106770e-02 6.870252870886938e-02 6.880413046413429e-02 6.890555915577500e-02 + 6.900681468090485e-02 6.910789689150486e-02 6.920880565820778e-02 6.930954094436353e-02 6.941010257623929e-02 + 6.951049032497619e-02 6.961070411466443e-02 6.971074386483528e-02 6.981060945693285e-02 6.991030074013053e-02 + 7.000981760721879e-02 7.010915998226322e-02 7.020832768385020e-02 7.030732053981503e-02 7.040613843777971e-02 + 7.050478130476578e-02 7.060324902125202e-02 7.070154139632766e-02 7.079965841104072e-02 7.089759998592053e-02 + 7.099536579014293e-02 7.109295574922263e-02 7.119036986301433e-02 7.128760792254588e-02 7.138466979343019e-02 + 7.148155540894172e-02 7.157826467726322e-02 7.167479742578257e-02 7.177115345207208e-02 7.186733268619028e-02 + 7.196333504975572e-02 7.205916041090092e-02 7.215480858692887e-02 7.225027948023270e-02 7.234557308374470e-02 + 7.244068916926014e-02 7.253562753252076e-02 7.263038813284139e-02 7.272497087062332e-02 7.281937559790036e-02 + 7.291360215228662e-02 7.300765049821943e-02 7.310152057265214e-02 7.319521208383468e-02 7.328872490709243e-02 + 7.338205901635925e-02 7.347521425841259e-02 7.356819049091311e-02 7.366098761637971e-02 7.375360558736099e-02 + 7.384604424623381e-02 7.393830334347133e-02 7.403038279875497e-02 7.412228254437477e-02 7.421400245985316e-02 + 7.430554241104276e-02 7.439690229021774e-02 7.448808202204141e-02 7.457908141717452e-02 7.466990029970315e-02 + 7.476053861745356e-02 7.485099625058683e-02 7.494127304678436e-02 7.503136889191833e-02 7.512128371784581e-02 + 7.521101743547498e-02 7.530056981436373e-02 7.538994071268737e-02 7.547913007544443e-02 7.556813780083994e-02 + 7.565696374971752e-02 7.574560777501017e-02 7.583406981695588e-02 7.592234975180168e-02 7.601044736291800e-02 + 7.609836256769248e-02 7.618609528331391e-02 7.627364535037680e-02 7.636101265407126e-02 7.644819711937149e-02 + 7.653519868718589e-02 7.662201715447789e-02 7.670865230880411e-02 7.679510411035856e-02 7.688137246970578e-02 + 7.696745724207896e-02 7.705335828035317e-02 7.713907552614908e-02 7.722460893765626e-02 7.730995825366380e-02 + 7.739512330293280e-02 7.748010405365591e-02 7.756490042829636e-02 7.764951228919105e-02 7.773393946198498e-02 + 7.781818189157449e-02 7.790223948237281e-02 7.798611201876808e-02 7.806979939436651e-02 7.815330154059554e-02 + 7.823661834982702e-02 7.831974966729814e-02 7.840269536418043e-02 7.848545542109749e-02 7.856802968700778e-02 + 7.865041794492959e-02 7.873262009221961e-02 7.881463606524114e-02 7.889646578364969e-02 7.897810905385311e-02 + 7.905956578813299e-02 7.914083598393755e-02 7.922191938944982e-02 7.930281582198326e-02 7.938352526916173e-02 + 7.946404763288464e-02 7.954438277705837e-02 7.962453057021987e-02 7.970449093695484e-02 7.978426377009373e-02 + 7.986384886265184e-02 7.994324611178145e-02 8.002245546069972e-02 8.010147680163558e-02 8.018030998339011e-02 + 8.025895486859348e-02 8.033741142939121e-02 8.041567953647351e-02 8.049375898816008e-02 8.057164970191152e-02 + 8.064935159117341e-02 8.072686453538828e-02 8.080418841559016e-02 8.088132313650849e-02 8.095826861741187e-02 + 8.103502469212946e-02 8.111159121525567e-02 8.118796811657426e-02 8.126415526945288e-02 8.134015254787534e-02 + 8.141595988122388e-02 8.149157718184835e-02 8.156700432424771e-02 8.164224113093393e-02 8.171728750211138e-02 + 8.179214337283539e-02 8.186680860558979e-02 8.194128308109257e-02 8.201556671181809e-02 8.208965942384167e-02 + 8.216356107347705e-02 8.223727146913333e-02 8.231079055026533e-02 8.238411825286719e-02 8.245725445426123e-02 + 8.253019901019013e-02 8.260295182089074e-02 8.267551284923887e-02 8.274788192985057e-02 8.282005889192648e-02 + 8.289204367192234e-02 8.296383619751495e-02 8.303543635380874e-02 8.310684396376640e-02 8.317805898151856e-02 + 8.324908138250064e-02 8.331991092178788e-02 8.339054746670159e-02 8.346099098907200e-02 8.353124136246602e-02 + 8.360129848004999e-02 8.367116227251760e-02 8.374083263302687e-02 8.381030943134427e-02 8.387959252741883e-02 + 8.394868181167527e-02 8.401757720093640e-02 8.408627862550171e-02 8.415478594369409e-02 8.422309904154775e-02 + 8.429121790707177e-02 8.435914237533512e-02 8.442687225429805e-02 8.449440750560887e-02 8.456174803803686e-02 + 8.462889372267089e-02 8.469584447602406e-02 8.476260023136410e-02 8.482916090148240e-02 8.489552630009754e-02 + 8.496169630228255e-02 8.502767086164854e-02 8.509344988672647e-02 8.515903326018803e-02 8.522442086136313e-02 + 8.528961263471936e-02 8.535460848680074e-02 8.541940824041729e-02 8.548401181612168e-02 8.554841915131453e-02 + 8.561263012321893e-02 8.567664461211427e-02 8.574046253447680e-02 8.580408386832587e-02 8.586750845589863e-02 + 8.593073610333024e-02 8.599376680387132e-02 8.605660047760594e-02 8.611923696874126e-02 8.618167618396408e-02 + 8.624391807608472e-02 8.630596259724549e-02 8.636780954833972e-02 8.642945878839840e-02 8.649091029427977e-02 + 8.655216396695875e-02 8.661321970043215e-02 8.667407742210617e-02 8.673473702989365e-02 8.679519841504303e-02 + 8.685546148336530e-02 8.691552612855238e-02 8.697539224666265e-02 8.703505975750943e-02 8.709452857692032e-02 + 8.715379861893667e-02 8.721286980508075e-02 8.727174201224434e-02 8.733041510377958e-02 8.738888903629666e-02 + 8.744716372671989e-02 8.750523904187274e-02 8.756311491392924e-02 8.762079127795709e-02 8.767826803995526e-02 + 8.773554506310657e-02 8.779262223690780e-02 8.784949951260017e-02 8.790617682173207e-02 8.796265406226209e-02 + 8.801893109931651e-02 8.807500788687952e-02 8.813088437660771e-02 8.818656039674132e-02 8.824203585227545e-02 + 8.829731070095961e-02 8.835238486000704e-02 8.840725822106667e-02 8.846193068214857e-02 8.851640221803356e-02 + 8.857067273700293e-02 8.862474207580676e-02 8.867861014722141e-02 8.873227689758616e-02 8.878574227696898e-02 + 8.883900618220902e-02 8.889206851560667e-02 8.894492921167085e-02 8.899758815302622e-02 8.905004524008538e-02 + 8.910230044719054e-02 8.915435367300073e-02 8.920620479173334e-02 8.925785373448247e-02 8.930930045917142e-02 + 8.936054490961548e-02 8.941158695191696e-02 8.946242647641844e-02 8.951306341364354e-02 8.956349771969928e-02 + 8.961372931388180e-02 8.966375808278661e-02 8.971358396554302e-02 8.976320688963368e-02 8.981262675341668e-02 + 8.986184348935064e-02 8.991085703129179e-02 8.995966729258320e-02 9.000827417122792e-02 9.005667759770250e-02 + 9.010487756379584e-02 9.015287394264000e-02 9.020066659275561e-02 9.024825550203337e-02 9.029564061179933e-02 + 9.034282181894199e-02 9.038979902630290e-02 9.043657218570805e-02 9.048314126656666e-02 9.052950615463343e-02 + 9.057566675480395e-02 9.062162300961238e-02 9.066737484935303e-02 9.071292219781772e-02 9.075826498061153e-02 + 9.080340315127385e-02 9.084833664156222e-02 9.089306533771581e-02 9.093758915627431e-02 9.098190804149961e-02 + 9.102602195783284e-02 9.106993084471440e-02 9.111363462196023e-02 9.115713320054021e-02 9.120042650346059e-02 + 9.124351446434358e-02 9.128639702175202e-02 9.132907412994692e-02 9.137154573427010e-02 9.141381170435277e-02 + 9.145587198962597e-02 9.149772660800266e-02 9.153937542844172e-02 9.158081834977004e-02 9.162205535599281e-02 + 9.166308637778346e-02 9.170391133536025e-02 9.174453017072061e-02 9.178494285856946e-02 9.182514933661440e-02 + 9.186514945794547e-02 9.190494319482566e-02 9.194453054665523e-02 9.198391140758180e-02 9.202308569543158e-02 + 9.206205336702038e-02 9.210081441034919e-02 9.213936875086109e-02 9.217771627651770e-02 9.221585694962209e-02 + 9.225379072840771e-02 9.229151754885842e-02 9.232903734819613e-02 9.236635007909103e-02 9.240345570404732e-02 + 9.244035413434255e-02 9.247704529963750e-02 9.251352918345666e-02 9.254980573968512e-02 9.258587489795035e-02 + 9.262173657649034e-02 9.265739073985793e-02 9.269283735974691e-02 9.272807636276849e-02 9.276310769047050e-02 + 9.279793130272118e-02 9.283254716719631e-02 9.286695521394739e-02 9.290115536246511e-02 9.293514761281572e-02 + 9.296893192325742e-02 9.300250819824006e-02 9.303587638369953e-02 9.306903645092859e-02 9.310198837852499e-02 + 9.313473209662422e-02 9.316726755984403e-02 9.319959477466139e-02 9.323171364631608e-02 9.326362408592948e-02 + 9.329532610133226e-02 9.332681964339190e-02 9.335810464438972e-02 9.338918108249107e-02 9.342004893308628e-02 + 9.345070815580041e-02 9.348115868437977e-02 9.351140046962789e-02 9.354143348306601e-02 9.357125770365762e-02 + 9.360087308621738e-02 9.363027956518245e-02 9.365947710363894e-02 9.368846567300493e-02 9.371724524372237e-02 + 9.374581578300241e-02 9.377417725111503e-02 9.380232960142115e-02 9.383027280206080e-02 9.385800682788301e-02 + 9.388553164914089e-02 9.391284719773688e-02 9.393995342276806e-02 9.396685035781838e-02 9.399353796706621e-02 + 9.402001617537038e-02 9.404628495786660e-02 9.407234429781461e-02 9.409819417117830e-02 9.412383453169183e-02 + 9.414926534580341e-02 9.417448659641373e-02 9.419949825736050e-02 9.422430029380560e-02 9.424889267135104e-02 + 9.427327539998738e-02 9.429744844865905e-02 9.432141171534560e-02 9.434516522540957e-02 9.436870900006604e-02 + 9.439204294634228e-02 9.441516705436934e-02 9.443808133745002e-02 9.446078573953387e-02 9.448328023801857e-02 + 9.450556483411636e-02 9.452763950923013e-02 9.454950421611270e-02 9.457115890701832e-02 9.459260360830167e-02 + 9.461383832574666e-02 9.463486302352626e-02 9.465567765409444e-02 9.467628220109425e-02 9.469667668274938e-02 + 9.471686106967921e-02 9.473683533004949e-02 9.475659945563136e-02 9.477615343325803e-02 9.479549725292793e-02 + 9.481463091432241e-02 9.483355439545672e-02 9.485226766778346e-02 9.487077071788189e-02 9.488906353992572e-02 + 9.490714613644993e-02 9.492501852119042e-02 9.494268066964073e-02 9.496013253895599e-02 9.497737414244060e-02 + 9.499440547543551e-02 9.501122651272445e-02 9.502783728094538e-02 9.504423778187990e-02 9.506042797340242e-02 + 9.507640785191551e-02 9.509217742006319e-02 9.510773667189122e-02 9.512308563868060e-02 9.513822432123879e-02 + 9.515315264231193e-02 9.516787063845662e-02 9.518237836728226e-02 9.519667577724227e-02 9.521076284349063e-02 + 9.522463958294539e-02 9.523830604498588e-02 9.525176221483619e-02 9.526500804718509e-02 9.527804359769618e-02 + 9.529086886623650e-02 9.530348379689602e-02 9.531588845120076e-02 9.532808286166987e-02 9.534006699012688e-02 + 9.535184085361241e-02 9.536340447105748e-02 9.537475783364874e-02 9.538590095359538e-02 9.539683385237334e-02 + 9.540755654711666e-02 9.541806903829181e-02 9.542837132640679e-02 9.543846343230179e-02 9.544834536597921e-02 + 9.545801714100983e-02 9.546747880593646e-02 9.547673036184304e-02 9.548577178084619e-02 9.549460309483834e-02 + 9.550322434581640e-02 9.551163556335956e-02 9.551983673903520e-02 9.552782788036314e-02 9.553560902903191e-02 + 9.554318022933674e-02 9.555054148771730e-02 9.555769276632298e-02 9.556463412975340e-02 9.557136563747151e-02 + 9.557788725689133e-02 9.558419903459103e-02 9.559030102901959e-02 9.559619321427665e-02 9.560187562136102e-02 + 9.560734830883322e-02 9.561261127917654e-02 9.561766456108449e-02 9.562250820572099e-02 9.562714223416331e-02 + 9.563156666435306e-02 9.563578152405575e-02 9.563978686682097e-02 9.564358272631937e-02 9.564716910782914e-02 + 9.565054604965099e-02 9.565371359980702e-02 9.565667179877529e-02 9.565942066526258e-02 9.566196023293236e-02 + 9.566429057683135e-02 9.566641172752892e-02 9.566832368940979e-02 9.567002647518966e-02 9.567152016429874e-02 + 9.567280484915060e-02 9.567388053004788e-02 9.567474721294261e-02 9.567540493730267e-02 9.567585379392737e-02 + 9.567609383300600e-02 9.567612506298810e-02 9.567594754568214e-02 9.567556133790830e-02 9.567496647244744e-02 + 9.567416299512438e-02 9.567315095370396e-02 9.567193039196389e-02 9.567050136232016e-02 9.566886392120964e-02 + 9.566701812558283e-02 9.566496403827787e-02 9.566270170884209e-02 9.566023115264767e-02 9.565755243736668e-02 + 9.565466564791879e-02 9.565157080775241e-02 9.564826797386157e-02 9.564475723264595e-02 9.564103864027859e-02 + 9.563711223757489e-02 9.563297806735498e-02 9.562863621895812e-02 9.562408675116861e-02 9.561932968250994e-02 + 9.561436511583814e-02 9.560919313325968e-02 9.560381374743886e-02 9.559822704785555e-02 9.559243313048145e-02 + 9.558643203289170e-02 9.558022378864620e-02 9.557380846466877e-02 9.556718619530349e-02 9.556035703327785e-02 + 9.555332100122134e-02 9.554607821247386e-02 9.553862873475936e-02 9.553097259908433e-02 9.552310989218279e-02 + 9.551504070130773e-02 9.550676510186747e-02 9.549828317393894e-02 9.548959500356741e-02 9.548070067318166e-02 + 9.547160021295119e-02 9.546229369018946e-02 9.545278124506257e-02 9.544306292579091e-02 9.543313878273989e-02 + 9.542300894892854e-02 9.541267351639289e-02 9.540213254817664e-02 9.539138610562420e-02 9.538043425774057e-02 + 9.536927709152246e-02 9.535791472882026e-02 9.534634726779553e-02 9.533457478138217e-02 9.532259734256758e-02 + 9.531041503990305e-02 9.529802797105680e-02 9.528543620462085e-02 9.527263983869082e-02 9.525963900525855e-02 + 9.524643375927100e-02 9.523302417643500e-02 9.521941040061487e-02 9.520559252291068e-02 9.519157060486365e-02 + 9.517734471153570e-02 9.516291499670615e-02 9.514828160467456e-02 9.513344455080376e-02 9.511840393248631e-02 + 9.510315989360162e-02 9.508771251519674e-02 9.507206189457258e-02 9.505620814925633e-02 9.504015138530268e-02 + 9.502389169582724e-02 9.500742917228551e-02 9.499076394524120e-02 9.497389612890822e-02 9.495682580659018e-02 + 9.493955308203066e-02 9.492207807526097e-02 9.490440091330225e-02 9.488652168366014e-02 9.486844048723730e-02 + 9.485015747906970e-02 9.483167277063544e-02 9.481298644119306e-02 9.479409856622809e-02 9.477500930738031e-02 + 9.475571884085587e-02 9.473622721810367e-02 9.471653454723004e-02 9.469664098786204e-02 9.467654664635866e-02 + 9.465625162221861e-02 9.463575602621152e-02 9.461505999415500e-02 9.459416367044585e-02 9.457306719633034e-02 + 9.455177068421998e-02 9.453027423759350e-02 9.450857796468222e-02 9.448668199276268e-02 9.446458647203468e-02 + 9.444229157255099e-02 9.441979739649474e-02 9.439710403006842e-02 9.437421161454676e-02 9.435112031829759e-02 + 9.432783029179438e-02 9.430434160094567e-02 9.428065438538669e-02 9.425676883924589e-02 9.423268508508292e-02 + 9.420840322981890e-02 9.418392339716981e-02 9.415924578030670e-02 9.413437051700123e-02 9.410929767030043e-02 + 9.408402741009517e-02 9.405855992335012e-02 9.403289535840260e-02 9.400703383941893e-02 9.398097549341558e-02 + 9.395472046838550e-02 9.392826889502673e-02 9.390162091553057e-02 9.387477672023849e-02 9.384773645864139e-02 + 9.382050025947151e-02 9.379306828457251e-02 9.376544068778003e-02 9.373761760606118e-02 9.370959916011609e-02 + 9.368138552427184e-02 9.365297690930323e-02 9.362437342817573e-02 9.359557520850639e-02 9.356658243379877e-02 + 9.353739529945312e-02 9.350801394425273e-02 9.347843843855524e-02 9.344866901272440e-02 9.341870589097585e-02 + 9.338854915644307e-02 9.335819897637819e-02 9.332765555734250e-02 9.329691906420928e-02 9.326598960092489e-02 + 9.323486729288316e-02 9.320355242698486e-02 9.317204517635257e-02 9.314034562740874e-02 9.310845398153604e-02 + 9.307637042858882e-02 9.304409511565054e-02 9.301162817412864e-02 9.297896979469056e-02 9.294612022999450e-02 + 9.291307963943660e-02 9.287984815938743e-02 9.284642594887814e-02 9.281281319942865e-02 9.277901009754375e-02 + 9.274501679883909e-02 9.271083349621308e-02 9.267646039527271e-02 9.264189767811302e-02 9.260714551564306e-02 + 9.257220408228978e-02 9.253707357624473e-02 9.250175417101536e-02 9.246624602802385e-02 9.243054935165987e-02 + 9.239466434718238e-02 9.235859120974489e-02 9.232233012999355e-02 9.228588129454922e-02 9.224924488066757e-02 + 9.221242103323031e-02 9.217540995047416e-02 9.213821191347883e-02 9.210082709355732e-02 9.206325564930115e-02 + 9.202549780755387e-02 9.198755374602623e-02 9.194942363528436e-02 9.191110769995278e-02 9.187260614753277e-02 + 9.183391917841241e-02 9.179504701848260e-02 9.175598985687712e-02 9.171674785963810e-02 9.167732123351167e-02 + 9.163771019528422e-02 9.159791495855178e-02 9.155793572040530e-02 9.151777270193290e-02 9.147742614628342e-02 + 9.143689622063791e-02 9.139618310892414e-02 9.135528705455570e-02 9.131420824439858e-02 9.127294688450004e-02 + 9.123150325806001e-02 9.118987755991119e-02 9.114806996063474e-02 9.110608069642255e-02 9.106390998608170e-02 + 9.102155802996120e-02 9.097902503011562e-02 9.093631123402490e-02 9.089341690732793e-02 9.085034224655422e-02 + 9.080708743846595e-02 9.076365269164367e-02 9.072003828369785e-02 9.067624443485320e-02 9.063227129485288e-02 + 9.058811915193726e-02 9.054378827004000e-02 9.049927881221763e-02 9.045459103770109e-02 9.040972520178260e-02 + 9.036468147234690e-02 9.031946007844127e-02 9.027406127956829e-02 9.022848531585773e-02 9.018273243214560e-02 + 9.013680287341128e-02 9.009069686920407e-02 9.004441462623869e-02 8.999795635152021e-02 8.995132231203949e-02 + 8.990451276610797e-02 8.985752795281814e-02 8.981036812557305e-02 8.976303351703613e-02 8.971552434037033e-02 + 8.966784087291869e-02 8.961998334831080e-02 8.957195192338249e-02 8.952374693198487e-02 8.947536869631613e-02 + 8.942681737354224e-02 8.937809319632291e-02 8.932919644498671e-02 8.928012738635183e-02 8.923088623240803e-02 + 8.918147319450437e-02 8.913188858291199e-02 8.908213269254797e-02 8.903220577223506e-02 8.898210800726358e-02 + 8.893183965769864e-02 8.888140104180198e-02 8.883079233855783e-02 8.878001380541380e-02 8.872906581842580e-02 + 8.867794859494142e-02 8.862666233412557e-02 8.857520730323154e-02 8.852358381153494e-02 8.847179212845252e-02 + 8.841983243253916e-02 8.836770502123131e-02 8.831541022882371e-02 8.826294830990469e-02 8.821031949641793e-02 + 8.815752403748606e-02 8.810456224863354e-02 8.805143437639511e-02 8.799814063336710e-02 8.794468134879541e-02 + 8.789105684257616e-02 8.783726738270531e-02 8.778331316928159e-02 8.772919447874153e-02 8.767491167446911e-02 + 8.762046495069514e-02 8.756585454037039e-02 8.751108081839833e-02 8.745614408581825e-02 8.740104459021790e-02 + 8.734578256007368e-02 8.729035830815834e-02 8.723477214343743e-02 8.717902426868683e-02 8.712311501918556e-02 + 8.706704476846663e-02 8.701081371877695e-02 8.695442211628683e-02 8.689787027644420e-02 8.684115853767592e-02 + 8.678428714435096e-02 8.672725629439892e-02 8.667006642064547e-02 8.661271785522098e-02 8.655521075244504e-02 + 8.649754543067346e-02 8.643972223965939e-02 8.638174147222141e-02 8.632360334916610e-02 8.626530814542391e-02 + 8.620685627786050e-02 8.614824804295058e-02 8.608948367410735e-02 8.603056343813603e-02 8.597148768708160e-02 + 8.591225676580187e-02 8.585287085352321e-02 8.579333027004854e-02 8.573363543090719e-02 8.567378659419787e-02 + 8.561378404241062e-02 8.555362810687137e-02 8.549331906471129e-02 8.543285719635127e-02 8.537224281446841e-02 + 8.531147627953188e-02 8.525055791649624e-02 8.518948798167383e-02 8.512826679756995e-02 8.506689470133286e-02 + 8.500537199311337e-02 8.494369892596923e-02 8.488187579804041e-02 8.481990305210670e-02 8.475778099074194e-02 + 8.469550984763315e-02 8.463308996695838e-02 8.457052168539449e-02 8.450780530789033e-02 8.444494110975011e-02 + 8.438192942971584e-02 8.431877065438623e-02 8.425546507059704e-02 8.419201297696736e-02 8.412841471805475e-02 + 8.406467061549007e-02 8.400078097306259e-02 8.393674609180030e-02 8.387256634619757e-02 8.380824209666674e-02 + 8.374377362095807e-02 8.367916122870038e-02 8.361440526888680e-02 8.354950611900661e-02 8.348446403538942e-02 + 8.341927927704872e-02 8.335395233905314e-02 8.328848356223681e-02 8.322287316371958e-02 8.315712149574238e-02 + 8.309122893699929e-02 8.302519583647612e-02 8.295902243510637e-02 8.289270907781640e-02 8.282625623697057e-02 + 8.275966417678003e-02 8.269293318851907e-02 8.262606370095599e-02 8.255905601211083e-02 8.249191039312886e-02 + 8.242462718945633e-02 8.235720681988298e-02 8.228964967784431e-02 8.222195602541869e-02 8.215412621284769e-02 + 8.208616062445039e-02 8.201805954142698e-02 8.194982329150195e-02 8.188145225476894e-02 8.181294680713293e-02 + 8.174430731452863e-02 8.167553412282050e-02 8.160662752890076e-02 8.153758789030935e-02 8.146841562526554e-02 + 8.139911098330359e-02 8.132967428676124e-02 8.126010603531450e-02 8.119040656216225e-02 8.112057615694021e-02 + 8.105061517994502e-02 8.098052402265073e-02 8.091030303880128e-02 8.083995248093376e-02 8.076947276447492e-02 + 8.069886435754116e-02 8.062812754457355e-02 8.055726265736828e-02 8.048627008799529e-02 8.041515020636995e-02 + 8.034390332540668e-02 8.027252974489747e-02 8.020102993492553e-02 8.012940431195667e-02 8.005765317555476e-02 + 7.998577686939379e-02 7.991377577220368e-02 7.984165027334414e-02 7.976940065907111e-02 7.969702727793032e-02 + 7.962453065567111e-02 7.955191112254574e-02 7.947916895239987e-02 7.940630455590227e-02 7.933331833212637e-02 + 7.926021063894960e-02 7.918698178217287e-02 7.911363216326053e-02 7.904016223823181e-02 7.896657235187955e-02 + 7.889286283938438e-02 7.881903406306398e-02 7.874508643443230e-02 7.867102031060058e-02 7.859683599526633e-02 + 7.852253395767629e-02 7.844811463098400e-02 7.837357831424305e-02 7.829892537205134e-02 7.822415619643758e-02 + 7.814927116484589e-02 7.807427062910767e-02 7.799915496813195e-02 7.792392464520610e-02 7.784858004657273e-02 + 7.777312150359181e-02 7.769754936428309e-02 7.762186403791040e-02 7.754606594385612e-02 7.747015537442642e-02 + 7.739413273994507e-02 7.731799855521804e-02 7.724175314852555e-02 7.716539684747571e-02 7.708893004657069e-02 + 7.701235315053030e-02 7.693566653742440e-02 7.685887055661017e-02 7.678196565918903e-02 7.670495227727288e-02 + 7.662783073280909e-02 7.655060142689749e-02 7.647326478202995e-02 7.639582115595660e-02 7.631827089499127e-02 + 7.624061438211467e-02 7.616285210329320e-02 7.608498447266238e-02 7.600701183814436e-02 7.592893457493513e-02 + 7.585075308733022e-02 7.577246778116596e-02 7.569407897223836e-02 7.561558707997214e-02 7.553699264667676e-02 + 7.545829602219666e-02 7.537949752159374e-02 7.530059752746436e-02 7.522159652110559e-02 7.514249491290788e-02 + 7.506329293711217e-02 7.498399108869409e-02 7.490458989985715e-02 7.482508965268882e-02 7.474549074308040e-02 + 7.466579363230305e-02 7.458599868473173e-02 7.450610623924510e-02 7.442611667561436e-02 7.434603053570255e-02 + 7.426584824442337e-02 7.418557009969678e-02 7.410519651333995e-02 7.402472793153594e-02 7.394416477978479e-02 + 7.386350736456949e-02 7.378275607823381e-02 7.370191147772952e-02 7.362097394239986e-02 7.353994380500382e-02 + 7.345882147239775e-02 7.337760740248925e-02 7.329630201371148e-02 7.321490559729334e-02 7.313341861868546e-02 + 7.305184160923943e-02 7.297017492620234e-02 7.288841893034562e-02 7.280657402242413e-02 7.272464064227188e-02 + 7.264261917439505e-02 7.256050997585588e-02 7.247831356170273e-02 7.239603038649280e-02 7.231366079163171e-02 + 7.223120520116612e-02 7.214866404160214e-02 7.206603769517569e-02 7.198332653777370e-02 7.190053098792457e-02 + 7.181765153838118e-02 7.173468863077177e-02 7.165164265282598e-02 7.156851395212357e-02 7.148530298289761e-02 + 7.140201021117390e-02 7.131863593482980e-02 7.123518058493326e-02 7.115164469180060e-02 7.106802866653637e-02 + 7.098433289103630e-02 7.090055775733806e-02 7.081670370962735e-02 7.073277114629017e-02 7.064876042084919e-02 + 7.056467204467058e-02 7.048050649359339e-02 7.039626411522021e-02 7.031194531783586e-02 7.022755055007633e-02 + 7.014308026270048e-02 7.005853477507426e-02 6.997391445865883e-02 6.988921994223606e-02 6.980445161374127e-02 + 6.971960976161336e-02 6.963469490630880e-02 6.954970749457975e-02 6.946464787470261e-02 6.937951638488904e-02 + 6.929431352344900e-02 6.920903988440608e-02 6.912369577614699e-02 6.903828154824053e-02 6.895279768813133e-02 + 6.886724462309453e-02 6.878162274040467e-02 6.869593242264821e-02 6.861017418575431e-02 6.852434851303352e-02 + 6.843845573229547e-02 6.835249626715924e-02 6.826647058722328e-02 6.818037912112360e-02 6.809422221022603e-02 + 6.800800023353686e-02 6.792171381432285e-02 6.783536337902803e-02 6.774894920974223e-02 6.766247176656806e-02 + 6.757593152448671e-02 6.748932891036163e-02 6.740266425451470e-02 6.731593799992638e-02 6.722915072040272e-02 + 6.714230278026269e-02 6.705539454984789e-02 6.696842651283096e-02 6.688139909018249e-02 6.679431266253504e-02 + 6.670716761081900e-02 6.661996446504156e-02 6.653270374249923e-02 6.644538575792285e-02 6.635801090742725e-02 + 6.627057965598744e-02 6.618309245387675e-02 6.609554968705872e-02 6.600795173819872e-02 6.592029914958422e-02 + 6.583259238307172e-02 6.574483179767340e-02 6.565701780669353e-02 6.556915085921187e-02 6.548123140723705e-02 + 6.539325979064996e-02 6.530523643565112e-02 6.521716192687264e-02 6.512903665438342e-02 6.504086097557776e-02 + 6.495263535156262e-02 6.486436022769713e-02 6.477603601048113e-02 6.468766306269763e-02 6.459924187637454e-02 + 6.451077298036002e-02 6.442225675573160e-02 6.433369358016772e-02 6.424508387319842e-02 6.415642813133042e-02 + 6.406772674084167e-02 6.397898002556264e-02 6.389018858464109e-02 6.380135290132970e-02 6.371247325592760e-02 + 6.362355010153516e-02 6.353458392277617e-02 6.344557514446422e-02 6.335652411846264e-02 6.326743126079815e-02 + 6.317829713990436e-02 6.308912216326193e-02 6.299990668862973e-02 6.291065117630994e-02 6.282135608306753e-02 + 6.273202182393535e-02 6.264264873955985e-02 6.255323731562341e-02 6.246378810230178e-02 6.237430143094801e-02 + 6.228477769978175e-02 6.219521740601344e-02 6.210562097707054e-02 6.201598879095212e-02 6.192632121693314e-02 + 6.183661876812600e-02 6.174688193928092e-02 6.165711112558074e-02 6.156730673780070e-02 6.147746920022401e-02 + 6.138759893800432e-02 6.129769633241683e-02 6.120776180293847e-02 6.111779589683188e-02 6.102779903735479e-02 + 6.093777158500626e-02 6.084771398591046e-02 6.075762667844817e-02 6.066751007308262e-02 6.057736455111417e-02 + 6.048719057054321e-02 6.039698864588414e-02 6.030675917961215e-02 6.021650256672047e-02 6.012621923377075e-02 + 6.003590961818356e-02 5.994557411659043e-02 5.985521308639186e-02 5.976482706463886e-02 5.967441656528669e-02 + 5.958398192281734e-02 5.949352353003544e-02 5.940304183449088e-02 5.931253730252380e-02 5.922201027916447e-02 + 5.913146112197507e-02 5.904089044032181e-02 5.895029868043596e-02 5.885968615096351e-02 5.876905326755812e-02 + 5.867840050492581e-02 5.858772833116550e-02 5.849703703991720e-02 5.840632705235495e-02 5.831559896255584e-02 + 5.822485314806121e-02 5.813408997000494e-02 5.804330987759122e-02 5.795251328764216e-02 5.786170059865808e-02 + 5.777087221384987e-02 5.768002859772193e-02 5.758917021647553e-02 5.749829746896256e-02 5.740741077575853e-02 + 5.731651056875526e-02 5.722559725171274e-02 5.713467118430270e-02 5.704373274635539e-02 5.695278249332581e-02 + 5.686182088614487e-02 5.677084826809927e-02 5.667986504336005e-02 5.658887165217444e-02 5.649786853613976e-02 + 5.640685602792318e-02 5.631583453941855e-02 5.622480462822738e-02 5.613376666437993e-02 5.604272100502515e-02 + 5.595166813210956e-02 5.586060845174765e-02 5.576954232437998e-02 5.567847012652845e-02 5.558739236715193e-02 + 5.549630955542323e-02 5.540522197136583e-02 5.531413002536285e-02 5.522303422299683e-02 5.513193492275553e-02 + 5.504083247717721e-02 5.494972729209355e-02 5.485861988753332e-02 5.476751071228679e-02 5.467640010379995e-02 + 5.458528846418693e-02 5.449417622493567e-02 5.440306381105370e-02 5.431195155656662e-02 5.422083985771245e-02 + 5.412972927459819e-02 5.403862019627870e-02 5.394751295390937e-02 5.385640797531270e-02 5.376530569364821e-02 + 5.367420650537214e-02 5.358311072889269e-02 5.349201882499156e-02 5.340093132499041e-02 5.330984856991542e-02 + 5.321877091980749e-02 5.312769879767464e-02 5.303663263591166e-02 5.294557280318667e-02 5.285451962473617e-02 + 5.276347361952855e-02 5.267243525955664e-02 5.258140485845194e-02 5.249038280640431e-02 5.239936952998326e-02 + 5.230836544276557e-02 5.221737088032564e-02 5.212638621732711e-02 5.203541199430900e-02 5.194444860919033e-02 + 5.185349638284296e-02 5.176255572471577e-02 5.167162705674897e-02 5.158071077330502e-02 5.148980718747074e-02 + 5.139891673261619e-02 5.130803993485430e-02 5.121717713356427e-02 5.112632867301793e-02 5.103549496777923e-02 + 5.094467643725986e-02 5.085387344650644e-02 5.076308630673339e-02 5.067231551219451e-02 5.058156153920812e-02 + 5.049082469322039e-02 5.040010534612100e-02 5.030940391348503e-02 5.021872080090227e-02 5.012805633824483e-02 + 5.003741087422633e-02 4.994678493647212e-02 4.985617892926745e-02 4.976559315779018e-02 4.967502801470126e-02 + 4.958448390876292e-02 4.949396122643934e-02 4.940346027599988e-02 4.931298146262254e-02 4.922252530167843e-02 + 4.913209213539834e-02 4.904168229174269e-02 4.895129616994274e-02 4.886093417404704e-02 4.877059666413559e-02 + 4.868028394034647e-02 4.858999646754281e-02 4.849973472130898e-02 4.840949900241633e-02 4.831928966152828e-02 + 4.822910709871525e-02 4.813895171199074e-02 4.804882382564480e-02 4.795872376124456e-02 4.786865202942978e-02 + 4.777860903855367e-02 4.768859507592742e-02 4.759861051627762e-02 4.750865575639699e-02 4.741873117406014e-02 + 4.732883706721817e-02 4.723897381137243e-02 4.714914191200375e-02 4.705934171189571e-02 4.696957351961628e-02 + 4.687983771740974e-02 4.679013469431771e-02 4.670046480338604e-02 4.661082833156779e-02 4.652122571187634e-02 + 4.643165741520618e-02 4.634212373882778e-02 4.625262501422293e-02 4.616316162482947e-02 4.607373395212459e-02 + 4.598434231610999e-02 4.589498701904484e-02 4.580566854223844e-02 4.571638729424802e-02 4.562714355109129e-02 + 4.553793766452621e-02 4.544877001582995e-02 4.535964097502848e-02 4.527055082898004e-02 4.518149992236756e-02 + 4.509248874970542e-02 4.500351765014129e-02 4.491458690878355e-02 4.482569689376779e-02 4.473684797939540e-02 + 4.464804050747698e-02 4.455927474828068e-02 4.447055110499822e-02 4.438187004531898e-02 4.429323185876936e-02 + 4.420463685202721e-02 4.411608538888854e-02 4.402757783926076e-02 4.393911451733543e-02 4.385069570127949e-02 + 4.376232184208732e-02 4.367399334643604e-02 4.358571047769912e-02 4.349747356709084e-02 4.340928298020802e-02 + 4.332113907381294e-02 4.323304212320113e-02 4.314499244129432e-02 4.305699050668390e-02 4.296903665620930e-02 + 4.288113115167341e-02 4.279327434447749e-02 4.270546659199307e-02 4.261770822231841e-02 4.252999949469098e-02 + 4.244234077853745e-02 4.235473252680039e-02 4.226717502474875e-02 4.217966855846760e-02 4.209221347273914e-02 + 4.200481011967518e-02 4.191745880279663e-02 4.183015977695443e-02 4.174291346429643e-02 4.165572027077732e-02 + 4.156858044734360e-02 4.148149429654668e-02 4.139446216241891e-02 4.130748439363172e-02 4.122056125606220e-02 + 4.113369302794675e-02 4.104688016346336e-02 4.096012300095512e-02 4.087342178434451e-02 4.078677683583759e-02 + 4.070018849668031e-02 4.061365708919899e-02 4.052718285106741e-02 4.044076611819490e-02 4.035440733833207e-02 + 4.026810678092279e-02 4.018186470341873e-02 4.009568143909095e-02 4.000955732298062e-02 3.992349264534106e-02 + 3.983748763759326e-02 3.975154269055037e-02 3.966565820546299e-02 3.957983441649049e-02 3.949407160357907e-02 + 3.940837009289332e-02 3.932273021031552e-02 3.923715221270428e-02 3.915163635394041e-02 3.906618306202975e-02 + 3.898079266950179e-02 3.889546539672872e-02 3.881020154253283e-02 3.872500143016262e-02 3.863986536923758e-02 + 3.855479358615301e-02 3.846978637959592e-02 3.838484417257106e-02 3.829996723484980e-02 3.821515580420295e-02 + 3.813041018714970e-02 3.804573069687705e-02 3.796111761198420e-02 3.787657114752344e-02 3.779209165765486e-02 + 3.770767953120019e-02 3.762333499040284e-02 3.753905829251161e-02 3.745484974542636e-02 3.737070965331050e-02 + 3.728663825939783e-02 3.720263578933122e-02 3.711870264209954e-02 3.703483914671073e-02 3.695104550519348e-02 + 3.686732199057993e-02 3.678366890490292e-02 3.670008654113079e-02 3.661657511036890e-02 3.653313487804630e-02 + 3.644976625150438e-02 3.636646948823320e-02 3.628324479604935e-02 3.620009246605282e-02 3.611701279349350e-02 + 3.603400604041686e-02 3.595107239910939e-02 3.586821219020735e-02 3.578542579441001e-02 3.570271341631447e-02 + 3.562007528519529e-02 3.553751169069794e-02 3.545502291550906e-02 3.537260919186706e-02 3.529027072401183e-02 + 3.520800787214007e-02 3.512582095428173e-02 3.504371015751370e-02 3.496167573051010e-02 3.487971795476078e-02 + 3.479783710598274e-02 3.471603337811516e-02 3.463430699965583e-02 3.455265835796009e-02 3.447108770848941e-02 + 3.438959523450754e-02 3.430818119554624e-02 3.422684586511945e-02 3.414558949343227e-02 3.406441225419257e-02 + 3.398331443038755e-02 3.390229638782512e-02 3.382135832287533e-02 3.374050043789544e-02 3.365972299780525e-02 + 3.357902626321113e-02 3.349841045119794e-02 3.341787574130316e-02 3.333742246166845e-02 3.325705092272905e-02 + 3.317676129391954e-02 3.309655379649919e-02 3.301642868788483e-02 3.293638622159571e-02 3.285642658240021e-02 + 3.277654996949401e-02 3.269675673538998e-02 3.261704712715797e-02 3.253742130855802e-02 3.245787951722746e-02 + 3.237842200259459e-02 3.229904899349424e-02 3.221976065258773e-02 3.214055722659278e-02 3.206143905506719e-02 + 3.198240632628265e-02 3.190345921865954e-02 3.182459797365254e-02 3.174582282841434e-02 3.166713398447476e-02 + 3.158853160183031e-02 3.151001597036992e-02 3.143158738592136e-02 3.135324600516137e-02 3.127499202279022e-02 + 3.119682567104914e-02 3.111874718036912e-02 3.104075672462514e-02 3.096285447683152e-02 3.088504075536903e-02 + 3.080731579690068e-02 3.072967974437236e-02 3.065213281019982e-02 3.057467522135681e-02 3.049730718652442e-02 + 3.042002885157935e-02 3.034284042889533e-02 3.026574223701538e-02 3.018873445294931e-02 3.011181722724549e-02 + 3.003499077734359e-02 2.995825532248887e-02 2.988161104857855e-02 2.980505808548691e-02 2.972859668986686e-02 + 2.965222714891759e-02 2.957594959806504e-02 2.949976420500935e-02 2.942367118266701e-02 2.934767073798247e-02 + 2.927176302885600e-02 2.919594820074298e-02 2.912022654108078e-02 2.904459827654108e-02 2.896906352751058e-02 + 2.889362247668933e-02 2.881827533028623e-02 2.874302228403363e-02 2.866786346167200e-02 2.859279903706265e-02 + 2.851782931145582e-02 2.844295445253672e-02 2.836817458182308e-02 2.829348988995876e-02 2.821890057629359e-02 + 2.814440681221589e-02 2.807000870175516e-02 2.799570646465742e-02 2.792150037589211e-02 2.784739055623231e-02 + 2.777337714638600e-02 2.769946033688953e-02 2.762564030841585e-02 2.755191720229608e-02 2.747829114116882e-02 + 2.740476237631904e-02 2.733133112357609e-02 2.725799748998750e-02 2.718476162641247e-02 2.711162371095654e-02 + 2.703858392279279e-02 2.696564237390275e-02 2.689279920452167e-02 2.682005468428394e-02 2.674740897239565e-02 + 2.667486216835663e-02 2.660241443488607e-02 2.653006594727732e-02 2.645781686062815e-02 2.638566726160998e-02 + 2.631361733435826e-02 2.624166733570949e-02 2.616981737012440e-02 2.609806754771221e-02 2.602641803533937e-02 + 2.595486900051258e-02 2.588342056814261e-02 2.581207282360541e-02 2.574082599292273e-02 2.566968028470076e-02 + 2.559863577456860e-02 2.552769259041796e-02 2.545685089381796e-02 2.538611083889939e-02 2.531547252137675e-02 + 2.524493605061727e-02 2.517450166747065e-02 2.510416952086314e-02 2.503393968681819e-02 2.496381230163825e-02 + 2.489378751859868e-02 2.482386547683629e-02 2.475404624292582e-02 2.468432996264991e-02 2.461471687229032e-02 + 2.454520706873932e-02 2.447580063686782e-02 2.440649771598710e-02 2.433729844997764e-02 2.426820294893469e-02 + 2.419921127712116e-02 2.413032362216684e-02 2.406154017790910e-02 2.399286100816565e-02 2.392428621229386e-02 + 2.385581592554643e-02 2.378745028409909e-02 2.371918936700126e-02 2.365103325041379e-02 2.358298215018098e-02 + 2.351503620457756e-02 2.344719546326070e-02 2.337946004127276e-02 2.331183006962702e-02 2.324430566419196e-02 + 2.317688687789637e-02 2.310957382435168e-02 2.304236671579298e-02 2.297526563441205e-02 2.290827063843882e-02 + 2.284138184722980e-02 2.277459938171355e-02 2.270792333404544e-02 2.264135374860772e-02 2.257489077729924e-02 + 2.250853459738779e-02 2.244228525780410e-02 2.237614283279474e-02 2.231010743473913e-02 2.224417917668724e-02 + 2.217835812285958e-02 2.211264432248330e-02 2.204703795931322e-02 2.198153916317220e-02 2.191614796666107e-02 + 2.185086445220271e-02 2.178568872592581e-02 2.172062089111306e-02 2.165566098457172e-02 2.159080908357505e-02 + 2.152606537366001e-02 2.146142993110024e-02 2.139690279242156e-02 2.133248404619538e-02 2.126817379406035e-02 + 2.120397211607284e-02 2.113987903003668e-02 2.107589465469217e-02 2.101201915594272e-02 2.094825256288664e-02 + 2.088459492231405e-02 2.082104632696408e-02 2.075760686991806e-02 2.069427660166107e-02 2.063105554609518e-02 + 2.056794384972622e-02 2.050494162894281e-02 2.044204890243054e-02 2.037926573000831e-02 2.031659219454509e-02 + 2.025402837653619e-02 2.019157429898307e-02 2.012923000978476e-02 2.006699566765361e-02 2.000487133731908e-02 + 1.994285703240835e-02 1.988095281849638e-02 1.981915877663429e-02 1.975747497137283e-02 1.969590139839621e-02 + 1.963443814246610e-02 1.957308535571834e-02 1.951184305296579e-02 1.945071125524195e-02 1.938969003470093e-02 + 1.932877945979973e-02 1.926797956444602e-02 1.920729035294688e-02 1.914671194302782e-02 1.908624443873623e-02 + 1.902588783798898e-02 1.896564217312377e-02 1.890550750534374e-02 1.884548390173623e-02 1.878557136933607e-02 + 1.872576992282937e-02 1.866607969751645e-02 1.860650074902563e-02 1.854703306920867e-02 1.848767670108510e-02 + 1.842843170242723e-02 1.836929811895166e-02 1.831027593341436e-02 1.825136519709141e-02 1.819256603897189e-02 + 1.813387846842225e-02 1.807530248298604e-02 1.801683812530333e-02 1.795848544988909e-02 1.790024447932676e-02 + 1.784211518704799e-02 1.778409766075985e-02 1.772619199567190e-02 1.766839817113224e-02 1.761071619932593e-02 + 1.755314612276550e-02 1.749568797940397e-02 1.743834176385679e-02 1.738110747126647e-02 1.732398520795971e-02 + 1.726697501687009e-02 1.721007686976607e-02 1.715329079150987e-02 1.709661681774517e-02 1.704005496995066e-02 + 1.698360522175755e-02 1.692726759648597e-02 1.687104219632033e-02 1.681492902190890e-02 1.675892805218375e-02 + 1.670303930866012e-02 1.664726282100333e-02 1.659159859573434e-02 1.653604659349284e-02 1.648060687061485e-02 + 1.642527950537791e-02 1.637006446137386e-02 1.631496172845883e-02 1.625997133117372e-02 1.620509328829045e-02 + 1.615032758053278e-02 1.609567417924041e-02 1.604113316306734e-02 1.598670456411958e-02 1.593238833576510e-02 + 1.587818448257840e-02 1.582409302120838e-02 1.577011395254391e-02 1.571624723647299e-02 1.566249287063067e-02 + 1.560885093721684e-02 1.555532142372995e-02 1.550190428691725e-02 1.544859953345741e-02 1.539540716895692e-02 + 1.534232718045593e-02 1.528935952298772e-02 1.523650422043375e-02 1.518376132655854e-02 1.513113080051426e-02 + 1.507861261080395e-02 1.502620675643192e-02 1.497391324399307e-02 1.492173204313831e-02 1.486966309840608e-02 + 1.481770646058926e-02 1.476586215324725e-02 1.471413011485714e-02 1.466251032223325e-02 1.461100277337298e-02 + 1.455960746411957e-02 1.450832433725036e-02 1.445715335761371e-02 1.440609458945226e-02 1.435514801148310e-02 + 1.430431355790390e-02 1.425359121341204e-02 1.420298097105418e-02 1.415248280845771e-02 1.410209665546564e-02 + 1.405182250942155e-02 1.400166041623447e-02 1.395161031395394e-02 1.390167215017196e-02 1.385184591619880e-02 + 1.380213159317199e-02 1.375252913341631e-02 1.370303846818604e-02 1.365365962256361e-02 1.360439260851619e-02 + 1.355523734898775e-02 1.350619380184460e-02 1.345726194685572e-02 1.340844175819677e-02 1.335973317080697e-02 + 1.331113613029375e-02 1.326265067233158e-02 1.321427676765317e-02 1.316601433678336e-02 1.311786334248669e-02 + 1.306982375879771e-02 1.302189555021592e-02 1.297407863461756e-02 1.292637298076667e-02 1.287877861455418e-02 + 1.283129547339001e-02 1.278392348592105e-02 1.273666261347862e-02 1.268951282495219e-02 1.264247406704279e-02 + 1.259554625321822e-02 1.254872937642621e-02 1.250202343522368e-02 1.245542834900525e-02 1.240894405313941e-02 + 1.236257050462080e-02 1.231630767029411e-02 1.227015547343941e-02 1.222411383176151e-02 1.217818275998809e-02 + 1.213236222220244e-02 1.208665212384520e-02 1.204105241018576e-02 1.199556303854240e-02 1.195018395838791e-02 + 1.190491507365890e-02 1.185975632952753e-02 1.181470773836339e-02 1.176976922480089e-02 1.172494069835479e-02 + 1.168022211004454e-02 1.163561340968965e-02 1.159111452823667e-02 1.154672536811994e-02 1.150244589927961e-02 + 1.145827610670764e-02 1.141421589534856e-02 1.137026518661645e-02 1.132642392502224e-02 1.128269205281729e-02 + 1.123906948383837e-02 1.119555612518262e-02 1.115215196588227e-02 1.110885695891592e-02 1.106567099667937e-02 + 1.102259400831050e-02 1.097962593601935e-02 1.093676671505125e-02 1.089401623812122e-02 1.085137442757511e-02 + 1.080884127911701e-02 1.076641671182367e-02 1.072410061923310e-02 1.068189293399554e-02 1.063979359231152e-02 + 1.059780251428707e-02 1.055591958418482e-02 1.051414475108346e-02 1.047247799305691e-02 1.043091920126454e-02 + 1.038946827795377e-02 1.034812515386981e-02 1.030688975996647e-02 1.026576200007446e-02 1.022474176231751e-02 + 1.018382901647819e-02 1.014302370834395e-02 1.010232571551464e-02 1.006173495028295e-02 1.002125134058496e-02 + 9.980874808217161e-03 9.940605238090998e-03 9.900442533803457e-03 9.860386673211879e-03 9.820437566105797e-03 + 9.780595089730604e-03 9.740859166502601e-03 9.701229717604148e-03 9.661706648486619e-03 9.622289837555094e-03 + 9.582979211676392e-03 9.543774731762645e-03 9.504676285752028e-03 9.465683761437204e-03 9.426797070527869e-03 + 9.388016130061547e-03 9.349340837763126e-03 9.310771071700266e-03 9.272306774287777e-03 9.233947879847340e-03 + 9.195694263233465e-03 9.157545820041815e-03 9.119502462398593e-03 9.081564104605406e-03 9.043730620594144e-03 + 9.006001891771507e-03 8.968377884117109e-03 8.930858503326412e-03 8.893443610144467e-03 8.856133108771761e-03 + 8.818926910576046e-03 8.781824915337199e-03 8.744826984807866e-03 8.707933026764444e-03 8.671142997995955e-03 + 8.634456771198624e-03 8.597874217863410e-03 8.561395247729468e-03 8.525019762147885e-03 8.488747643810387e-03 + 8.452578758551675e-03 8.416513035074836e-03 8.380550402064440e-03 8.344690718755845e-03 8.308933866062409e-03 + 8.273279745485652e-03 8.237728259206089e-03 8.202279277607399e-03 8.166932668725525e-03 8.131688373197346e-03 + 8.096546291813443e-03 8.061506280849479e-03 8.026568229604077e-03 7.991732033790425e-03 7.956997581179438e-03 + 7.922364735477982e-03 7.887833385768220e-03 7.853403460644042e-03 7.819074838170454e-03 7.784847385209607e-03 + 7.750720988388416e-03 7.716695538073770e-03 7.682770912288046e-03 7.648946965667346e-03 7.615223607644973e-03 + 7.581600758648286e-03 7.548078272068747e-03 7.514656018308716e-03 7.481333888256649e-03 7.448111767084748e-03 + 7.414989518558892e-03 7.381967002509678e-03 7.349044141005179e-03 7.316220829119200e-03 7.283496916229069e-03 + 7.250872276568530e-03 7.218346796125786e-03 7.185920358959778e-03 7.153592811909379e-03 7.121364026156801e-03 + 7.089233934032213e-03 7.057202401526107e-03 7.025269274784423e-03 6.993434437254338e-03 6.961697770726437e-03 + 6.930059144137623e-03 6.898518406074085e-03 6.867075445461445e-03 6.835730169890301e-03 6.804482436531050e-03 + 6.773332103630715e-03 6.742279042830752e-03 6.711323134446215e-03 6.680464239400761e-03 6.649702204950062e-03 + 6.619036937093537e-03 6.588468325547939e-03 6.557996212108587e-03 6.527620458965777e-03 6.497340941897300e-03 + 6.467157538628341e-03 6.437070090473932e-03 6.407078453159759e-03 6.377182548096138e-03 6.347382238649846e-03 + 6.317677359750170e-03 6.288067782822399e-03 6.258553381641384e-03 6.229134019133821e-03 6.199809533909972e-03 + 6.170579803332374e-03 6.141444731866248e-03 6.112404164377095e-03 6.083457948651627e-03 6.054605954063168e-03 + 6.025848047899531e-03 5.997184082520315e-03 5.968613898555075e-03 5.940137388272029e-03 5.911754435973001e-03 + 5.883464876798197e-03 5.855268565478542e-03 5.827165369238958e-03 5.799155152943781e-03 5.771237757858197e-03 + 5.743413031370796e-03 5.715680873423079e-03 5.688041146137241e-03 5.660493683352233e-03 5.633038344713090e-03 + 5.605674994693767e-03 5.578403490874967e-03 5.551223666073857e-03 5.524135383482108e-03 5.497138538622371e-03 + 5.470232973711985e-03 5.443418527865922e-03 5.416695061766649e-03 5.390062436684385e-03 5.363520500801443e-03 + 5.337069085950208e-03 5.310708070645691e-03 5.284437334686721e-03 5.258256709167105e-03 5.232166039984466e-03 + 5.206165186351173e-03 5.180254006079314e-03 5.154432337116667e-03 5.128700017566677e-03 5.103056934758595e-03 + 5.077502948400768e-03 5.052037887552509e-03 5.026661602896529e-03 5.001373950974750e-03 4.976174783805283e-03 + 4.951063931174483e-03 4.926041244835856e-03 4.901106610871052e-03 4.876259869861805e-03 4.851500854152867e-03 + 4.826829416485723e-03 4.802245411238555e-03 4.777748682676776e-03 4.753339057595283e-03 4.729016402174706e-03 + 4.704780591018902e-03 4.680631452386119e-03 4.656568824906738e-03 4.632592561043116e-03 4.608702512089780e-03 + 4.584898512841469e-03 4.561180394112987e-03 4.537548032865621e-03 4.514001286180084e-03 4.490539978046344e-03 + 4.467163952568486e-03 4.443873060291688e-03 4.420667147623122e-03 4.397546041481102e-03 4.374509584352294e-03 + 4.351557654555007e-03 4.328690090868674e-03 4.305906719484884e-03 4.283207387010587e-03 4.260591942258349e-03 + 4.238060226010617e-03 4.215612060889534e-03 4.193247302342208e-03 4.170965820265097e-03 4.148767441443334e-03 + 4.126651998168965e-03 4.104619336614093e-03 4.082669303050944e-03 4.060801730082235e-03 4.039016442831475e-03 + 4.017313308452854e-03 3.995692181792875e-03 3.974152883344686e-03 3.952695251163741e-03 3.931319130911208e-03 + 3.910024364917125e-03 3.888810777810686e-03 3.867678204037116e-03 3.846626514691173e-03 3.825655547709963e-03 + 3.804765124734014e-03 3.783955087456414e-03 3.763225279741349e-03 3.742575538839424e-03 3.722005684569956e-03 + 3.701515563829318e-03 3.681105042529648e-03 3.660773945892437e-03 3.640522100973796e-03 3.620349349516141e-03 + 3.600255533338096e-03 3.580240483202974e-03 3.560304020332013e-03 3.540446002992503e-03 3.520666284206718e-03 + 3.500964682823155e-03 3.481341031384374e-03 3.461795171007476e-03 3.442326941040924e-03 3.422936165061433e-03 + 3.403622671201535e-03 3.384386323473485e-03 3.365226959961049e-03 3.346144399498565e-03 3.327138478378434e-03 + 3.308209036536853e-03 3.289355909461925e-03 3.270578915351533e-03 3.251877893639187e-03 3.233252706195778e-03 + 3.214703178029928e-03 3.196229132118811e-03 3.177830406368320e-03 3.159506839403438e-03 3.141258260810600e-03 + 3.123084488811596e-03 3.104985374197366e-03 3.086960768611876e-03 3.069010490077185e-03 3.051134366997480e-03 + 3.033332237019262e-03 3.015603936903380e-03 2.997949290147841e-03 2.980368120588831e-03 2.962860285290425e-03 + 2.945425622240710e-03 2.928063948810786e-03 2.910775098113858e-03 2.893558906982335e-03 2.876415208617919e-03 + 2.859343821344898e-03 2.842344578930633e-03 2.825417338731532e-03 2.808561926446875e-03 2.791778162629514e-03 + 2.775065882662152e-03 2.758424922052246e-03 2.741855109318431e-03 2.725356262118107e-03 2.708928224810950e-03 + 2.692570847204586e-03 2.676283947708203e-03 2.660067352018658e-03 2.643920895408666e-03 2.627844412630983e-03 + 2.611837727127577e-03 2.595900659591014e-03 2.580033062057212e-03 2.564234773200918e-03 2.548505609580814e-03 + 2.532845401329118e-03 2.517253983314282e-03 2.501731188088862e-03 2.486276834298587e-03 2.470890751027053e-03 + 2.455572791828030e-03 2.440322784214469e-03 2.425140547489158e-03 2.410025914370114e-03 2.394978718743150e-03 + 2.379998789312335e-03 2.365085943631231e-03 2.350240020749269e-03 2.335460868942443e-03 2.320748308349550e-03 + 2.306102163022297e-03 2.291522266200105e-03 2.277008450857895e-03 2.262560541519312e-03 2.248178358404482e-03 + 2.233861748393963e-03 2.219610550590767e-03 2.205424582540762e-03 2.191303672653564e-03 2.177247654150935e-03 + 2.163256358437406e-03 2.149329606085116e-03 2.135467224025938e-03 2.121669062135428e-03 2.107934949596006e-03 + 2.094264705479671e-03 2.080658161247730e-03 2.067115150052171e-03 2.053635501035216e-03 2.040219032033609e-03 + 2.026865578574763e-03 2.013574988607888e-03 2.000347084189316e-03 1.987181688126059e-03 1.974078632294973e-03 + 1.961037750159034e-03 1.948058867783843e-03 1.935141804192390e-03 1.922286403096425e-03 1.909492504980594e-03 + 1.896759928265229e-03 1.884088500763132e-03 1.871478055631251e-03 1.858928424089599e-03 1.846439428400912e-03 + 1.834010894228015e-03 1.821642669213327e-03 1.809334584628213e-03 1.797086460037203e-03 1.784898126770644e-03 + 1.772769417737367e-03 1.760700162615002e-03 1.748690181778845e-03 1.736739308394668e-03 1.724847388831493e-03 + 1.713014248130287e-03 1.701239709792772e-03 1.689523605558227e-03 1.677865768960374e-03 1.666266027776910e-03 + 1.654724201747776e-03 1.643240132443950e-03 1.631813662093462e-03 1.620444610863358e-03 1.609132806416696e-03 + 1.597878082462674e-03 1.586680271167799e-03 1.575539197124769e-03 1.564454685806544e-03 1.553426583192850e-03 + 1.542454723186195e-03 1.531538926942232e-03 1.520679025889417e-03 1.509874853790604e-03 1.499126242122267e-03 + 1.488433013507451e-03 1.477795000037597e-03 1.467212048115432e-03 1.456683985464255e-03 1.446210636719452e-03 + 1.435791835117153e-03 1.425427414393694e-03 1.415117204211151e-03 1.404861027594662e-03 1.394658724273689e-03 + 1.384510137356095e-03 1.374415090575271e-03 1.364373412382042e-03 1.354384937246215e-03 1.344449499301808e-03 + 1.334566925970926e-03 1.324737043332181e-03 1.314959696939330e-03 1.305234723823342e-03 1.295561947265019e-03 + 1.285941199528206e-03 1.276372315963847e-03 1.266855130463658e-03 1.257389468322312e-03 1.247975161599065e-03 + 1.238612057815808e-03 1.229299987951490e-03 1.220038778115428e-03 1.210828263449681e-03 1.201668279419893e-03 + 1.192558658328712e-03 1.183499226491516e-03 1.174489822883548e-03 1.165530291825810e-03 1.156620461345326e-03 + 1.147760161971411e-03 1.138949229776032e-03 1.130187500878873e-03 1.121474806129454e-03 1.112810973708310e-03 + 1.104195848566657e-03 1.095629271185936e-03 1.087111069073448e-03 1.078641075658101e-03 1.070219127753748e-03 + 1.061845062287274e-03 1.053518708913237e-03 1.045239900848634e-03 1.037008485418972e-03 1.028824298155823e-03 + 1.020687168641753e-03 1.012596933141099e-03 1.004553429894111e-03 9.965564952721074e-04 9.886059579764911e-04 + 9.807016577383673e-04 9.728434421263681e-04 9.650311428619217e-04 9.572645925441391e-04 9.495436296868831e-04 + 9.418680934992058e-04 9.342378189983833e-04 9.266526374013966e-04 9.191123940951565e-04 9.116169327210938e-04 + 9.041660846048507e-04 8.967596865276394e-04 8.893975784458786e-04 8.820795994475233e-04 8.748055834052338e-04 + 8.675753662309574e-04 8.603887967412885e-04 8.532457145816050e-04 8.461459528881801e-04 8.390893515597134e-04 + 8.320757512954288e-04 8.251049910410551e-04 8.181769052102455e-04 8.112913354889369e-04 8.044481307476467e-04 + 7.976471276304203e-04 7.908881626723219e-04 7.841710779271092e-04 7.774957151422038e-04 7.708619131557394e-04 + 7.642695077220146e-04 7.577183458379644e-04 7.512082748417916e-04 7.447391309361296e-04 7.383107537219758e-04 + 7.319229861740803e-04 7.255756719189899e-04 7.192686493738265e-04 7.130017570250109e-04 7.067748463319056e-04 + 7.005877618919097e-04 6.944403408515077e-04 6.883324261093659e-04 6.822638623160529e-04 6.762344932684062e-04 + 6.702441573916524e-04 6.642926986443232e-04 6.583799694858947e-04 6.525058122102392e-04 6.466700672293728e-04 + 6.408725793807691e-04 6.351131947715911e-04 6.293917574305099e-04 6.237081070877600e-04 6.180620932909059e-04 + 6.124535677685099e-04 6.068823714677426e-04 6.013483481700967e-04 5.958513451670206e-04 5.903912096703989e-04 + 5.849677853780454e-04 5.795809154020751e-04 5.742304534677881e-04 5.689162489783443e-04 5.636381442526738e-04 + 5.583959863498279e-04 5.531896240506697e-04 5.480189055622431e-04 5.428836748799696e-04 5.377837797240800e-04 + 5.327190759830209e-04 5.276894110958636e-04 5.226946300477827e-04 5.177345825024617e-04 5.128091188465486e-04 + 5.079180879528710e-04 5.030613351067660e-04 4.982387130290541e-04 4.934500776624026e-04 4.886952758062522e-04 + 4.839741558713263e-04 4.792865695826084e-04 4.746323688630657e-04 4.700114029595036e-04 4.654235198613055e-04 + 4.608685766627245e-04 4.563464280591107e-04 4.518569219186994e-04 4.473999099762359e-04 4.429752457691277e-04 + 4.385827824909558e-04 4.342223700107388e-04 4.298938604566902e-04 4.255971135329090e-04 4.213319826090788e-04 + 4.170983180859963e-04 4.128959744299958e-04 4.087248069577171e-04 4.045846700338900e-04 4.004754147907325e-04 + 3.963968979642262e-04 3.923489801919561e-04 3.883315144592717e-04 3.843443544269981e-04 3.803873568608614e-04 + 3.764603788261386e-04 3.725632754784107e-04 3.686959004384349e-04 3.648581147870281e-04 3.610497787686854e-04 + 3.572707463878945e-04 3.535208745539621e-04 3.498000220657478e-04 3.461080477383748e-04 3.424448076363575e-04 + 3.388101589386426e-04 3.352039657815740e-04 3.316260877532703e-04 3.280763812137888e-04 3.245547060139738e-04 + 3.210609229167205e-04 3.175948921405597e-04 3.141564711604799e-04 3.107455215081982e-04 3.073619088757455e-04 + 3.040054927848886e-04 3.006761327105527e-04 2.973736909925681e-04 2.940980303881470e-04 2.908490123115160e-04 + 2.876264965105581e-04 2.844303488008553e-04 2.812604353029198e-04 2.781166164989417e-04 2.749987551423296e-04 + 2.719067158817455e-04 2.688403633742989e-04 2.657995602462465e-04 2.627841695326067e-04 2.597940603791381e-04 + 2.568290988582687e-04 2.538891477672460e-04 2.509740728301346e-04 2.480837407612393e-04 2.452180180501483e-04 + 2.423767689150773e-04 2.395598604007145e-04 2.367671637065971e-04 2.339985452156380e-04 2.312538707417314e-04 + 2.285330086975239e-04 2.258358279521211e-04 2.231621965330517e-04 2.205119809474630e-04 2.178850522930381e-04 + 2.152812827957872e-04 2.127005401044592e-04 2.101426932429596e-04 2.076076129630843e-04 2.050951703707553e-04 + 2.026052350574154e-04 2.001376764695323e-04 1.976923692963255e-04 1.952691863631026e-04 1.928679973631469e-04 + 1.904886744667185e-04 1.881310908124045e-04 1.857951194428946e-04 1.834806317739651e-04 1.811875010647571e-04 + 1.789156043640377e-04 1.766648152326652e-04 1.744350063601967e-04 1.722260526922104e-04 1.700378296945535e-04 + 1.678702123432160e-04 1.657230742438847e-04 1.635962925697728e-04 1.614897461072756e-04 1.594033097074569e-04 + 1.573368592094730e-04 1.552902721810668e-04 1.532634264532060e-04 1.512561988693490e-04 1.492684659352835e-04 + 1.473001083560244e-04 1.453510059716440e-04 1.434210358729406e-04 1.415100771164913e-04 1.396180097223186e-04 + 1.377447137267307e-04 1.358900680130841e-04 1.340539526362652e-04 1.322362510498252e-04 1.304368442346035e-04 + 1.286556121626104e-04 1.268924368411170e-04 1.251472007379926e-04 1.234197860690376e-04 1.217100740639766e-04 + 1.200179485071157e-04 1.183432949752447e-04 1.166859960758634e-04 1.150459349477667e-04 1.134229962637926e-04 + 1.118170649981152e-04 1.102280255615328e-04 1.086557620076939e-04 1.071001616642248e-04 1.055611117192228e-04 + 1.040384970703678e-04 1.025322040262462e-04 1.010421198490596e-04 9.956813202096472e-05 9.811012722455996e-05 + 9.666799283658755e-05 9.524161921027426e-05 9.383089505710078e-05 9.243570803818307e-05 9.105594759252440e-05 + 8.969150364397068e-05 8.834226604286881e-05 8.700812397260034e-05 8.568896841419017e-05 8.438469212608002e-05 + 8.309518568825200e-05 8.182033994906239e-05 8.056004718218619e-05 7.931419998170841e-05 7.808269064296404e-05 + 7.686541112857092e-05 7.566225594198306e-05 7.447311991364301e-05 7.329789600792314e-05 7.213647827366786e-05 + 7.098876170896106e-05 6.985464163907488e-05 6.873401282606521e-05 6.762677039259616e-05 6.653281205307769e-05 + 6.545203459530543e-05 6.438433381335806e-05 6.332960688869456e-05 6.228775159650499e-05 6.125866586213212e-05 + 6.024224709312662e-05 5.923839394811549e-05 5.824700680510711e-05 5.726798458845817e-05 5.630122626966778e-05 + 5.534663202079377e-05 5.440410243697520e-05 5.347353805513213e-05 5.255483915897720e-05 5.164790790372327e-05 + 5.075264706713765e-05 4.986895809670387e-05 4.899674321102013e-05 4.813590548272275e-05 4.728634834520723e-05 + 4.644797500988253e-05 4.562068892036128e-05 4.480439551815946e-05 4.399899988301035e-05 4.320440633696577e-05 + 4.242052030402665e-05 4.164724778526068e-05 4.088449502887978e-05 4.013216802138054e-05 3.939017361734100e-05 + 3.865842020891389e-05 3.793681530287127e-05 3.722526637683801e-05 3.652368195642655e-05 3.583197100166348e-05 + 3.515004257550265e-05 3.447780563338777e-05 3.381517049939420e-05 3.316204825033269e-05 3.251834908257212e-05 + 3.188398376275541e-05 3.125886384349450e-05 3.064290126992314e-05 3.003600797392098e-05 2.943809607683111e-05 + 2.884907925556903e-05 2.826887119646782e-05 2.769738505988399e-05 2.713453488302094e-05 2.658023526748751e-05 + 2.603440114263312e-05 2.549694738792051e-05 2.496778949423694e-05 2.444684425976710e-05 2.393402805764408e-05 + 2.342925723948219e-05 2.293244905822871e-05 2.244352120797989e-05 2.196239159983278e-05 2.148897818423003e-05 + 2.102319990982268e-05 2.056497650699234e-05 2.011422722229805e-05 1.967087173846936e-05 1.923483045310688e-05 + 1.880602417859793e-05 1.838437386840237e-05 1.796980069033951e-05 1.756222699777835e-05 1.716157539169325e-05 + 1.676776819323897e-05 1.638072842752046e-05 1.600037965967140e-05 1.562664583506045e-05 1.525945101785764e-05 + 1.489871974108943e-05 1.454437762041471e-05 1.419635018600421e-05 1.385456300630342e-05 1.351894241351905e-05 + 1.318941519258516e-05 1.286590843459537e-05 1.254834939298960e-05 1.223666606495489e-05 1.193078719950152e-05 + 1.163064137727749e-05 1.133615754527981e-05 1.104726530816775e-05 1.076389469662666e-05 1.048597599093073e-05 + 1.021343974753131e-05 9.946217419267380e-06 9.684240838620889e-06 9.427441790773100e-06 9.175752643853506e-06 + 8.929106280098344e-06 8.687435997194528e-06 8.450675338936148e-06 8.218758257424963e-06 7.991619584870982e-06 + 7.769194298227330e-06 7.551417507621627e-06 7.338224987041431e-06 7.129552955942858e-06 6.925337997222138e-06 + 6.725516977155444e-06 6.530027335862672e-06 6.338807194551445e-06 6.151794769434223e-06 5.968928615355085e-06 + 5.790147878391894e-06 5.615392155261267e-06 5.444601365246586e-06 5.277715758699128e-06 5.114676291438329e-06 + 4.955424365336747e-06 4.799901525655197e-06 4.648049820836300e-06 4.499811793985402e-06 4.355130438087899e-06 + 4.213949069835453e-06 4.076211399540344e-06 3.941861865039729e-06 3.810845196499976e-06 3.683106361660463e-06 + 3.558590910585118e-06 3.437244835818923e-06 3.319014541070219e-06 3.203846795533912e-06 3.091688852089737e-06 + 2.982488579295818e-06 2.876194109656037e-06 2.772753925582794e-06 2.672117063800105e-06 2.574233014808049e-06 + 2.479051643033932e-06 2.386523210361943e-06 2.296598552297165e-06 2.209228971591383e-06 2.124366069775506e-06 + 2.041961906232304e-06 1.961969019732135e-06 1.884340423438541e-06 1.809029507182080e-06 1.735990071613592e-06 + 1.665176534356502e-06 1.596543687803830e-06 1.530046658503296e-06 1.465641105678908e-06 1.403283128309336e-06 + 1.342929271825179e-06 1.284536503035511e-06 1.228062233226246e-06 1.173464436795038e-06 1.120701460082181e-06 + 1.069732028902882e-06 1.020515399241352e-06 9.730112822753146e-07 9.271798002921477e-07 8.829815278752155e-07 + 8.403775374680640e-07 7.993293716485992e-07 7.597989809176624e-07 7.217487560416926e-07 6.851415619710593e-07 + 6.499407524191172e-07 6.161100929136179e-07 5.836137918783888e-07 5.524166028233452e-07 5.224836968385216e-07 + 4.937806609639881e-07 4.662735849361845e-07 4.399289991547822e-07 4.147139110260500e-07 3.905957813609555e-07 + 3.675425084859321e-07 3.455225231396512e-07 3.245046871736890e-07 3.044582778536548e-07 2.853530928283095e-07 + 2.671593859185241e-07 2.498478511400059e-07 2.333896726605378e-07 2.177564985206194e-07 2.029204500538344e-07 + 1.888541210793108e-07 1.755305458522738e-07 1.629232393506973e-07 1.510062144201093e-07 1.397539174372155e-07 + 1.291412703741045e-07 1.191437050672961e-07 1.097370923617762e-07 1.008977778162274e-07 9.260259669902208e-08 + 8.482883141984319e-08 7.755426670738778e-08 7.075715683240311e-08 6.441620467100832e-08 5.851063608240125e-08 + 5.302013495440350e-08 4.792483459927075e-08 4.320538955913144e-08 3.884291294265582e-08 3.481898425658018e-08 + 3.111569527451850e-08 2.771559342817648e-08 2.460171067137196e-08 2.175758348333717e-08 1.916719757773861e-08 + 1.681503457183268e-08 1.468607978947252e-08 1.276576812429566e-08 1.104003874048358e-08 9.495328649625366e-09 + 8.118528715645258e-09 6.897042498203040e-09 5.818760232281117e-09 4.872032311209139e-09 4.045732447740840e-09 + 3.329210679517489e-09 2.712284881132093e-09 2.185301687016959e-09 1.739076161987666e-09 1.364901589086205e-09 + 1.054599065845252e-09 8.004535320102697e-10 5.952414597054672e-10 4.322622496028902e-10 3.052766304104823e-10 + 2.085502003918036e-10 1.368642901349301e-10 8.546164059834664e-11 5.010215808832263e-11 2.705311520847365e-11 + 1.304599438344934e-11 5.339090781311160e-12 1.692041320615927e-12 3.321208355096226e-13 6.781366937015517e-15 diff --git a/examples/SPIN/in.kagome b/examples/SPIN/in.kagome new file mode 100644 index 0000000000..c51c35ff73 --- /dev/null +++ b/examples/SPIN/in.kagome @@ -0,0 +1,126 @@ +################### +#######Init######## +################### + +clear +#setting units to metal (Ang, picosecs, eV, ...): +units metal + +#setting dimension of the system (N=2 or 3): +dimension 3 + +#setting boundary conditions. (p for periodic, f for fixed, ...) +boundary p p p +#boundary f f f + +#setting atom_style to spin: +atom_style spin + +#Define sort for paramagnetic simulations (if no pair interaction) +#atom_modify sort 1000 4.0 + +#why? +atom_modify map array + +#newton off for pair spin in SEQNEI +#newton off off + +########################### +#######Create atoms######## +########################### + +#Lattice constant of fcc Cobalt +lattice fcc 3.54 +#lattice sc 2.50 + +#Test Kagome +#variable a equal sqrt(3.0)/8.0 +#variable b equal 3.0*sqrt(3.0)/8.0 +#variable c equal sqrt(3.0)/4.0 + +#lattice custom 2.5 a1 1.0 0.0 0.0 & +# a2 0.0 1.0 0.0 & +# a3 0.0 0.0 1.0 & +# basis 0.0 $a 0.0 & +# basis 0.25 $a 0.0 & +# basis 0.375 0.0 0.0 & +# basis 0.25 $b 0.0 & +# basis 0.5 $b 0.0 & +# basis 0.625 $c 0.0 + +#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen +#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) +region box block 0.0 5.0 0.0 5.0 0.0 5.0 + +#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. +create_box 1 box + +#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... +#Entries: atom type, +create_atoms 1 box + +#Replicating NxNxN the entire set of atoms +#replicate 1 1 1 + + +####################### +#######Settings######## +####################### + +#Setting one or more properties of one or more atoms. +#Setting mass +mass 1 1.0 +#set group all mass 1.0 +#Setting spins orientation and moment +#set group all spin/random 11 1.72 +set group all spin 1.72 1.0 0.0 0.0 + +#Magnetic exchange interaction coefficient for bulk fcc Cobalt +pair_style pair/spin 4.0 +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) +#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 +#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 + +#Define a skin distance, update neigh list every +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 0.0 bin +neigh_modify every 1 check no delay 0 + +#Magnetic field fix +#Type | Intensity (T or eV) | Direction +fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 + +#Fix Langevin spins (merging damping and temperature) +#Temp | Alpha_trans | Alpha_long | Seed +#fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 1.0 0.1 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all nve/spin mpi + +#compute real time, total magnetization, magnetic energy, and spin temperature +#Iteration | Time | Mx | My | Mz | |M| | Em | Tm +compute mag all compute/spin +fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g + +#Setting the timestep for the simulation (in ps) +timestep 0.0001 + +################## +#######run######## +################## + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +run 2000 +#run 1 + diff --git a/in.co_magnetomech b/in.co_magnetomech new file mode 100644 index 0000000000..e1a3f11b14 --- /dev/null +++ b/in.co_magnetomech @@ -0,0 +1,111 @@ +################### +#######Init######## +################### + +clear +#setting units to metal (Ang, picosecs, eV, ...): +units metal + +#setting dimension of the system (N=2 or 3): +dimension 3 + +#setting boundary conditions. (p for periodic, f for fixed, ...) +boundary p p p +#boundary f f f + +#setting atom_style to spin: +atom_style spin + +#Define sort for paramagnetic simulations (if no pair interaction) +#atom_modify sort 1000 4.0 + +#why? +atom_modify map array + +#newton off for pair spin in SEQNEI +#newton off off + +########################### +#######Create atoms######## +########################### + +#Lattice constant of fcc Cobalt +lattice fcc 3.54 +#lattice sc 2.50 + +#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen +#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) +region box block 0.0 5.0 0.0 5.0 0.0 5.0 + +#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. +create_box 1 box + +#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... +#Entries: atom type, +create_atoms 1 box + +####################### +#######Settings######## +####################### + +#Setting one or more properties of one or more atoms. +#Setting mass +mass 1 1.0 +#set group all mass 1.0 +#Setting spins orientation and moment +#set group all spin/random 11 1.72 +set group all spin 1.72 1.0 0.0 0.0 + +#Magneto-mechanic interactions for bulk fcc Cobalt +pair_style hybrid/overlay eam/alloy pair/spin 4.0 +pair_coeff * * eam/alloy ../Co_PurjaPun_2012.eam.alloy Co + +#pair_style pair/spin 4.0 +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +pair_coeff * * pair/spin exchange 4.0 0.0446928 0.003496 1.4885 +#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) +#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 +#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 + + +#Define a skin distance, update neigh list every +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 0.0 bin +neigh_modify every 1 check no delay 0 + +#Magnetic field fix +#Type | Intensity (T or eV) | Direction +fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 + +#Fix Langevin spins (merging damping and temperature) +#Temp | Alpha_trans | Alpha_long | Seed +#fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 1.0 0.1 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all nve/spin mpi + +#compute real time, total magnetization, magnetic energy, and spin temperature +#Iteration | Time | Mx | My | Mz | |M| | Em | Tm +compute mag all compute/spin +fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g + +#Setting the timestep for the simulation (in ps) +timestep 0.00001 + +################## +#######run######## +################## + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 100 dump_spin_MM.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +run 10000 +#run 1 + diff --git a/in.cobalt b/in.cobalt index 3780d9b0dc..ebc2017a5d 100644 --- a/in.cobalt +++ b/in.cobalt @@ -32,21 +32,6 @@ atom_modify map array #Lattice constant of fcc Cobalt lattice fcc 3.54 #lattice sc 2.50 - -#Test Kagome -#variable a equal sqrt(3.0)/8.0 -#variable b equal 3.0*sqrt(3.0)/8.0 -#variable c equal sqrt(3.0)/4.0 - -#lattice custom 2.5 a1 1.0 0.0 0.0 & -# a2 0.0 1.0 0.0 & -# a3 0.0 0.0 1.0 & -# basis 0.0 $a 0.0 & -# basis 0.25 $a 0.0 & -# basis 0.375 0.0 0.0 & -# basis 0.25 $b 0.0 & -# basis 0.5 $b 0.0 & -# basis 0.625 $c 0.0 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) @@ -59,10 +44,6 @@ create_box 1 box #Entries: atom type, create_atoms 1 box -#Replicating NxNxN the entire set of atoms -#replicate 1 1 1 - - ####################### #######Settings######## ####################### diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 6b9d1a5b18..19aefe661a 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -34,6 +34,7 @@ #include "memory.h" #include "fix_force_spin.h" #include "fix_langevin_spin.h" +#include "pair_hybrid.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -114,7 +115,21 @@ void FixNVESpin::init() memory->create(fmi,3,"nves:fmi"); memory->create(fmj,3,"nves:fmj"); - lockpairspin = (PairSpin *) force->pair; + + if (strstr(force->pair_style,"pair/spin")) { + lockpairspin = (PairSpin *) force->pair; + } else if (strstr(force->pair_style,"hybrid/overlay")) { + PairHybrid *lockhybrid = (PairHybrid *) force->pair; + int nhybrid_styles = lockhybrid->nstyles; + int ipair; + for (ipair = 0; ipair < nhybrid_styles; ipair++) { + if (strstr(lockhybrid->keywords[ipair],"pair/spin")) { + lockpairspin = (PairSpin *) lockhybrid->styles[ipair]; + } + } + } else error->all(FLERR,"Illegal fix nve/spin command"); + + // check errors, and handle simple hybrid (not overlay) int iforce; for (iforce = 0; iforce < modify->nfix; iforce++) @@ -125,15 +140,29 @@ void FixNVESpin::init() if (strstr(modify->fix[iforce]->style,"langevin/spin")) break; locklangevinspin = (FixLangevinSpin *) modify->fix[iforce]; - exch_flag = lockpairspin->exch_flag; - dmi_flag = lockpairspin->dmi_flag; - me_flag = lockpairspin->me_flag; + if (lockpairspin->exch_flag == 1) { + exch_flag = lockpairspin->exch_flag; + } + if (lockpairspin->dmi_flag == 1) { + dmi_flag = lockpairspin->dmi_flag; + } + if (lockpairspin->me_flag == 1) { + me_flag = lockpairspin->me_flag; + } - zeeman_flag = lockforcespin->zeeman_flag; - aniso_flag = lockforcespin->aniso_flag; + if (lockforcespin->zeeman_flag == 1) { + zeeman_flag = lockforcespin->zeeman_flag; + } + if (lockforcespin->aniso_flag == 1) { + aniso_flag = lockforcespin->aniso_flag; + } - tdamp_flag = locklangevinspin->tdamp_flag; - temp_flag = locklangevinspin->temp_flag; + if (locklangevinspin->tdamp_flag == 1) { + tdamp_flag = locklangevinspin->tdamp_flag; + } + if (locklangevinspin->temp_flag == 1){ + temp_flag = locklangevinspin->temp_flag; + } if (mpi_flag == 1) { sectoring(); @@ -173,7 +202,6 @@ void FixNVESpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; - // update half v all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -193,7 +221,6 @@ void FixNVESpin::initial_integrate(int vflag) x[i][2] += 0.5 * dtv * v[i][2]; } } - if (extra == SPIN) { if (mpi_flag == 1) { @@ -236,7 +263,7 @@ void FixNVESpin::initial_integrate(int vflag) } else error->all(FLERR,"Illegal fix nve/spin command"); } - // update x for all particles + // update half x for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { x[i][0] += 0.5 * dtv * v[i][0]; @@ -279,10 +306,13 @@ void FixNVESpin::ComputeInteractionsSpin(int ii) int *type = atom->type; const int newton_pair = force->newton_pair; - inum = lockpairspin->list->inum; - ilist = lockpairspin->list->ilist; - numneigh = lockpairspin->list->numneigh; - firstneigh = lockpairspin->list->firstneigh; + // add test here + if (exch_flag == 1 || dmi_flag == 1 || me_flag == 1 ) { + inum = lockpairspin->list->inum; + ilist = lockpairspin->list->ilist; + numneigh = lockpairspin->list->numneigh; + firstneigh = lockpairspin->list->firstneigh; + } double xtmp,ytmp,ztmp; double rsq,rd,delx,dely,delz; @@ -350,6 +380,7 @@ void FixNVESpin::ComputeInteractionsSpin(int ii) lockpairspin->compute_me(i,j,fmi,fmj,spi,spj); } } + } // post force diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index 38a61bf428..cb0d006e16 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -47,6 +47,7 @@ class FixNVESpin : public FixNVE { int zeeman_flag, aniso_flag; int tdamp_flag, temp_flag; + class PairHybrid *lockhybrid; class PairSpin *lockpairspin; class FixForceSpin *lockforcespin; class FixLangevinSpin *locklangevinspin; diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index f2c9cb8d36..0db1d353b3 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -39,7 +39,6 @@ PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp) exch_flag = 0; dmi_flag = 0; me_flag = 0; - } /* ---------------------------------------------------------------------- */ @@ -364,7 +363,8 @@ void PairSpin::coeff(int narg, char **arg) if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); } else if (strcmp(arg[2],"dmi")==0) { if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - dmi_flag = 1; + dmi_flag = 1; + int ilo,ihi,jlo,jhi; force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); @@ -426,7 +426,8 @@ void PairSpin::coeff(int narg, char **arg) if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); } else error->all(FLERR,"Incorrect args in pair_style command"); - //Check if Jex [][] still works for Ferrimagnetic exchange + // check if Jex [][] still works for Ferrimagnetic exchange + } diff --git a/src/pair_hybrid.h b/src/pair_hybrid.h index 202847b028..17b6879957 100644 --- a/src/pair_hybrid.h +++ b/src/pair_hybrid.h @@ -31,6 +31,7 @@ class PairHybrid : public Pair { friend class FixOMP; friend class Force; friend class Respa; + friend class FixNVESpin; friend class Info; public: PairHybrid(class LAMMPS *); diff --git a/vmd_nano.vmd b/vmd_nano.vmd index 6b4684840f..f484cbe4ec 100644 --- a/vmd_nano.vmd +++ b/vmd_nano.vmd @@ -70,7 +70,7 @@ proc enable_trace {} { trace variable vmd_frame([molinfo top]) w vmd_draw_spin } -set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump_spin_BFO.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] +set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump_spin_MM.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] scale by 0.5 animate style Loop enable_trace From 3de0cf5ab449fc846594ddfeb949aee4766f6caf Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 23 Aug 2017 16:06:56 -0600 Subject: [PATCH 036/675] Commit Julien 2 08/23/17 - reorganized includes - start work on magneto-mechanic potential (adding function) - renamed fix_nve_spin into fix_integration_spin --- in.co_magnetomech | 10 +- src/SPIN/atom_vec_spin.cpp | 6 +- src/SPIN/compute_spin.cpp | 10 +- src/SPIN/fix_force_spin.cpp | 15 +-- ..._nve_spin.cpp => fix_integration_spin.cpp} | 113 +++++++----------- ...{fix_nve_spin.h => fix_integration_spin.h} | 16 +-- src/SPIN/fix_langevin_spin.cpp | 27 +++-- src/SPIN/pair_spin.cpp | 21 ++-- src/pair_hybrid.h | 2 +- 9 files changed, 98 insertions(+), 122 deletions(-) rename src/SPIN/{fix_nve_spin.cpp => fix_integration_spin.cpp} (85%) rename src/SPIN/{fix_nve_spin.h => fix_integration_spin.h} (89%) diff --git a/in.co_magnetomech b/in.co_magnetomech index e1a3f11b14..da9e5366f1 100644 --- a/in.co_magnetomech +++ b/in.co_magnetomech @@ -84,11 +84,11 @@ fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 1.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 +#fix 2 all langevin/spin 1.0 0.1 0.0 21 +fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -fix 3 all nve/spin mpi +fix 3 all integration/spin mpi #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm @@ -96,7 +96,7 @@ compute mag all compute/spin fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g #Setting the timestep for the simulation (in ps) -timestep 0.00001 +timestep 0.0001 ################## #######run######## @@ -106,6 +106,6 @@ timestep 0.00001 dump 1 all custom 100 dump_spin_MM.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 10000 +run 100000 #run 1 diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 61ead88129..6018fc28f0 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -14,14 +14,14 @@ #include #include #include -#include "atom_vec_spin.h" #include "atom.h" +#include "atom_vec_spin.h" #include "comm.h" #include "domain.h" -#include "modify.h" +#include "error.h" #include "fix.h" #include "memory.h" -#include "error.h" +#include "modify.h" using namespace LAMMPS_NS; diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 9516bcde90..ed69a76229 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -13,16 +13,16 @@ #include #include -#include "compute_spin.h" #include "atom.h" -#include "update.h" -#include "modify.h" +#include "compute_spin.h" #include "domain.h" -#include "memory.h" #include "error.h" +#include "force.h" #include "math_special.h" #include "math_const.h" -#include "force.h" +#include "memory.h" +#include "modify.h" +#include "update.h" using namespace LAMMPS_NS; using namespace MathSpecial; diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index 44948f8ea3..daa34e9df6 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -15,18 +15,19 @@ #include #include #include -#include "fix_force_spin.h" + #include "atom.h" -#include "update.h" #include "domain.h" -#include "respa.h" -#include "modify.h" -#include "input.h" -#include "variable.h" -#include "math_const.h" #include "error.h" +#include "fix_force_spin.h" #include "force.h" +#include "input.h" +#include "math_const.h" #include "memory.h" +#include "modify.h" +#include "respa.h" +#include "update.h" +#include "variable.h" using namespace LAMMPS_NS; using namespace FixConst; diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_integration_spin.cpp similarity index 85% rename from src/SPIN/fix_nve_spin.cpp rename to src/SPIN/fix_integration_spin.cpp index 19aefe661a..01e4dc902c 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -14,27 +14,26 @@ #include #include #include -#include "fix_nve_spin.h" + #include "atom.h" #include "atom_vec.h" -#include "update.h" -#include "respa.h" -#include "force.h" #include "error.h" +#include "fix_force_spin.h" +#include "fix_integration_spin.h" +#include "fix_langevin_spin.h" +#include "force.h" #include "math_vector.h" #include "math_extra.h" #include "math_const.h" +#include "memory.h" #include "modify.h" - -//Add headers (see delete later) #include "neighbor.h" #include "neigh_list.h" #include "pair.h" -#include "pair_spin.h" -#include "memory.h" -#include "fix_force_spin.h" -#include "fix_langevin_spin.h" #include "pair_hybrid.h" +#include "pair_spin.h" +#include "respa.h" +#include "update.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -45,11 +44,11 @@ enum{NONE,SPIN}; /* ---------------------------------------------------------------------- */ -FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : +FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : FixNVE(lmp, narg, arg) { - if (narg != 4) error->all(FLERR,"Illegal fix nve/spin command"); + if (narg != 4) error->all(FLERR,"Illegal fix integration/spin command"); time_integrate = 1; @@ -57,18 +56,18 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : mpi_flag = NONE; int iarg = 2; - if (strcmp(arg[iarg],"nve/spin") == 0) { + if (strcmp(arg[iarg],"integration/spin") == 0) { extra = SPIN; if (strcmp(arg[iarg+1],"serial") == 0){ mpi_flag = 0; } else if (strcmp(arg[iarg+1],"mpi") == 0) { mpi_flag = 1; - } else error->all(FLERR,"Illegal fix nve/spin command"); - } else error->all(FLERR,"Illegal fix nve/spin command"); + } else error->all(FLERR,"Illegal fix integration/spin command"); + } else error->all(FLERR,"Illegal fix integration/spin command"); // error checks if (extra == SPIN && !atom->mumag_flag) - error->all(FLERR,"Fix nve/spin requires spin attribute mumag"); + error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); exch_flag = dmi_flag = me_flag = 0; zeeman_flag = aniso_flag = 0; @@ -80,7 +79,7 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : } /* ---------------------------------------------------------------------- */ -FixNVESpin::~FixNVESpin(){ +FixIntegrationSpin::~FixIntegrationSpin(){ //delete lockpairspin; //delete lockforcespin; memory->destroy(xi); @@ -89,9 +88,6 @@ FixNVESpin::~FixNVESpin(){ memory->destroy(rsec); memory->destroy(seci); -#if defined SECTOR_PRINT - fclose(file_sect); -#endif memory->destroy(spi); memory->destroy(spj); memory->destroy(fmi); @@ -100,20 +96,20 @@ FixNVESpin::~FixNVESpin(){ /* ---------------------------------------------------------------------- */ -void FixNVESpin::init() +void FixIntegrationSpin::init() { FixNVE::init(); dts = update->dt; - memory->create(xi,3,"nves:xi"); - memory->create(sec,3,"nves:sec"); - memory->create(rsec,3,"nves:rsec"); - memory->create(seci,3,"nves:seci"); + memory->create(xi,3,"integrations:xi"); + memory->create(sec,3,"integrations:sec"); + memory->create(rsec,3,"integrations:rsec"); + memory->create(seci,3,"integrations:seci"); - memory->create(spi,3,"nves:spi"); - memory->create(spj,3,"nves:spj"); - memory->create(fmi,3,"nves:fmi"); - memory->create(fmj,3,"nves:fmj"); + memory->create(spi,3,"integrations:spi"); + memory->create(spj,3,"integrations:spj"); + memory->create(fmi,3,"integrations:fmi"); + memory->create(fmj,3,"integrations:fmj"); if (strstr(force->pair_style,"pair/spin")) { @@ -127,7 +123,7 @@ void FixNVESpin::init() lockpairspin = (PairSpin *) lockhybrid->styles[ipair]; } } - } else error->all(FLERR,"Illegal fix nve/spin command"); + } else error->all(FLERR,"Illegal fix integration/spin command"); // check errors, and handle simple hybrid (not overlay) @@ -168,24 +164,11 @@ void FixNVESpin::init() sectoring(); } -#if defined SECTOR_PRINT - file_sect=fopen("sectoring.lammpstrj", "w"); - fprintf(file_sect,"ITEM: TIMESTEP\n"); - fprintf(file_sect,"%g\n",0.0); - fprintf(file_sect,"ITEM: NUMBER OF ATOMS\n"); - //int natoms = atom->natoms; - int natoms = atom->nlocal; - fprintf(file_sect,"%d\n",natoms); - fprintf(file_sect,"ITEM: BOX BOUNDS\n"); - for(int d=0; d<3; d++) fprintf(file_sect,"%lf %lf\n",domain->boxlo[d],domain->boxhi[d]); - fprintf(file_sect,"ITEM: ATOMS type x y z vx vy vz\n"); -#endif - } /* ---------------------------------------------------------------------- */ -void FixNVESpin::initial_integrate(int vflag) +void FixIntegrationSpin::initial_integrate(int vflag) { double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; double cp[3],g[3]; @@ -260,7 +243,7 @@ void FixNVESpin::initial_integrate(int vflag) ComputeInteractionsSpin(i); AdvanceSingleSpin(i,0.5*dts,sp,fm); } - } else error->all(FLERR,"Illegal fix nve/spin command"); + } else error->all(FLERR,"Illegal fix integration/spin command"); } // update half x for all particles @@ -272,28 +255,24 @@ void FixNVESpin::initial_integrate(int vflag) } } +} + +/* ---------------------------------------------------------------------- */ +void FixIntegrationSpin::ComputeMMforce() +{ + const int nlocal = atom->nlocal; + int i,j,jj,inum,jnum,itype,jtype; + int *ilist,*jlist,*numneigh,**firstneigh; + double **x = atom->x; + double **f = atom->f; + double **sp = atom->sp; + const int newton_pair = force->newton_pair; -#if defined SECTOR_PRINT - int my_rank; - MPI_Comm_rank(world, &my_rank); - if (my_rank == 0) { - for (int j = 0; j < nsectors; j++) { - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - fprintf(file_sect,"%d %lf %lf %lf %lf %lf %lf\n",j,xi[0],xi[1],xi[2],0.0,0.0,1.0); - } - } - } -#endif } /* ---------------------------------------------------------------------- */ -void FixNVESpin::ComputeInteractionsSpin(int ii) +void FixIntegrationSpin::ComputeInteractionsSpin(int ii) { const int nlocal = atom->nlocal; @@ -403,7 +382,7 @@ void FixNVESpin::ComputeInteractionsSpin(int ii) locklangevinspin->add_temperature(fmi); } - // replace the force by its new value + // replace the magnetic force by its new value fm[i][0] = fmi[0]; fm[i][1] = fmi[1]; fm[i][2] = fmi[2]; @@ -411,7 +390,7 @@ void FixNVESpin::ComputeInteractionsSpin(int ii) } /* ---------------------------------------------------------------------- */ -void FixNVESpin::sectoring() +void FixIntegrationSpin::sectoring() { double sublo[3],subhi[3]; double* sublotmp = domain->sublo; @@ -464,7 +443,7 @@ void FixNVESpin::sectoring() } /* ---------------------------------------------------------------------- */ -int FixNVESpin::coords2sector(double *xi) +int FixIntegrationSpin::coords2sector(double *xi) { int nseci; double sublo[3]; @@ -489,7 +468,7 @@ int FixNVESpin::coords2sector(double *xi) /* ---------------------------------------------------------------------- */ -void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) +void FixIntegrationSpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) { double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; double cp[3],g[3]; @@ -530,7 +509,7 @@ void FixNVESpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) /* ---------------------------------------------------------------------- */ -void FixNVESpin::final_integrate() +void FixIntegrationSpin::final_integrate() { double dtfm,msq,scale,fm2,fmsq,energy; double cp[3],g[3]; diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_integration_spin.h similarity index 89% rename from src/SPIN/fix_nve_spin.h rename to src/SPIN/fix_integration_spin.h index cb0d006e16..bc48e4bb59 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -13,7 +13,7 @@ #ifdef FIX_CLASS -FixStyle(nve/spin,FixNVESpin) +FixStyle(integration/spin,FixIntegrationSpin) #else @@ -24,18 +24,18 @@ FixStyle(nve/spin,FixNVESpin) namespace LAMMPS_NS { -class FixNVESpin : public FixNVE { +class FixIntegrationSpin : public FixNVE { public: - FixNVESpin(class LAMMPS *, int, char **); - virtual ~FixNVESpin(); + FixIntegrationSpin(class LAMMPS *, int, char **); + virtual ~FixIntegrationSpin(); void init(); virtual void initial_integrate(int); void AdvanceSingleSpin(int, double, double **, double **); virtual void final_integrate(); - void ComputeSpinInteractions(); void ComputeInteractionsSpin(int); - + void ComputeMMforce(); + void sectoring(); int coords2sector(double *); @@ -59,10 +59,6 @@ class FixNVESpin : public FixNVE { int *sec, *seci; double *rsec; -//#define SECTOR_PRINT -#if defined SECTOR_PRINT - FILE* file_sect=NULL; -#endif }; } diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 8079000d59..53caa7391e 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -20,26 +20,27 @@ #include #include #include -#include "fix_langevin_spin.h" -#include "math_extra.h" + #include "atom.h" #include "atom_vec_ellipsoid.h" -#include "force.h" -#include "update.h" -#include "modify.h" +#include "comm.h" #include "compute.h" #include "domain.h" +#include "error.h" +#include "fix_langevin_spin.h" +#include "force.h" +#include "group.h" +#include "input.h" +#include "math_const.h" +#include "math_extra.h" +#include "memory.h" +#include "modify.h" +#include "random_mars.h" +#include "random_park.h" #include "region.h" #include "respa.h" -#include "comm.h" -#include "input.h" +#include "update.h" #include "variable.h" -#include "random_mars.h" -#include "memory.h" -#include "error.h" -#include "group.h" -#include "math_const.h" -#include "random_park.h" using namespace LAMMPS_NS; using namespace FixConst; diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index 0db1d353b3..e34bd21817 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -13,20 +13,19 @@ #include #include -#include "pair_spin.h" -#include "atom.h" -#include "neighbor.h" -#include "neigh_list.h" -#include "comm.h" -#include "force.h" -#include "memory.h" -#include "math_const.h" -#include "error.h" -#include "update.h" #include -//Add. lib. for full neighb. list +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "neighbor.h" +#include "neigh_list.h" #include "neigh_request.h" +#include "math_const.h" +#include "memory.h" +#include "pair_spin.h" +#include "update.h" using namespace LAMMPS_NS; using namespace MathConst; diff --git a/src/pair_hybrid.h b/src/pair_hybrid.h index 17b6879957..8e3925d82d 100644 --- a/src/pair_hybrid.h +++ b/src/pair_hybrid.h @@ -31,7 +31,7 @@ class PairHybrid : public Pair { friend class FixOMP; friend class Force; friend class Respa; - friend class FixNVESpin; + friend class FixIntegrationSpin; friend class Info; public: PairHybrid(class LAMMPS *); From 87993368f9d56c3136f74489f7cc66e4f91b3124 Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 24 Aug 2017 12:53:05 -0600 Subject: [PATCH 037/675] Commit Julien 08/24/17 - in pair_spin, magneto-mech force for exchange - compute and added in integration_spin --- src/SPIN/fix_integration_spin.cpp | 58 +++++--------- src/SPIN/fix_integration_spin.h | 1 - src/SPIN/pair_spin.cpp | 123 +++++++++++++++++++++++++++++- src/SPIN/pair_spin.h | 24 +++--- 4 files changed, 153 insertions(+), 53 deletions(-) diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 01e4dc902c..d05f8b39ba 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -136,33 +136,19 @@ void FixIntegrationSpin::init() if (strstr(modify->fix[iforce]->style,"langevin/spin")) break; locklangevinspin = (FixLangevinSpin *) modify->fix[iforce]; - if (lockpairspin->exch_flag == 1) { - exch_flag = lockpairspin->exch_flag; - } - if (lockpairspin->dmi_flag == 1) { - dmi_flag = lockpairspin->dmi_flag; - } - if (lockpairspin->me_flag == 1) { - me_flag = lockpairspin->me_flag; - } + // set flags for the different magnetic interactions + if (lockpairspin->exch_flag == 1) exch_flag = 1; + if (lockpairspin->dmi_flag == 1) dmi_flag = 1; + if (lockpairspin->me_flag == 1) me_flag = 1; - if (lockforcespin->zeeman_flag == 1) { - zeeman_flag = lockforcespin->zeeman_flag; - } - if (lockforcespin->aniso_flag == 1) { - aniso_flag = lockforcespin->aniso_flag; - } + if (lockforcespin->zeeman_flag == 1) zeeman_flag = 1; + if (lockforcespin->aniso_flag == 1) aniso_flag = 1; - if (locklangevinspin->tdamp_flag == 1) { - tdamp_flag = locklangevinspin->tdamp_flag; - } - if (locklangevinspin->temp_flag == 1){ - temp_flag = locklangevinspin->temp_flag; - } + if (locklangevinspin->tdamp_flag == 1) tdamp_flag = 1; + if (locklangevinspin->temp_flag == 1) temp_flag = 1; - if (mpi_flag == 1) { - sectoring(); - } + // perform the sectoring if mpi integration + if (mpi_flag == 1) sectoring(); } @@ -185,6 +171,11 @@ void FixIntegrationSpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; + // compute and add magneto-mech. force + if (exch_flag) { + lockpairspin->compute_magnetomech(0,vflag); + } + // update half v all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -257,20 +248,6 @@ void FixIntegrationSpin::initial_integrate(int vflag) } -/* ---------------------------------------------------------------------- */ -void FixIntegrationSpin::ComputeMMforce() -{ - const int nlocal = atom->nlocal; - int i,j,jj,inum,jnum,itype,jtype; - int *ilist,*jlist,*numneigh,**firstneigh; - double **x = atom->x; - double **f = atom->f; - double **sp = atom->sp; - const int newton_pair = force->newton_pair; - - -} - /* ---------------------------------------------------------------------- */ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) { @@ -524,6 +501,11 @@ void FixIntegrationSpin::final_integrate() int *type = atom->type; int *mask = atom->mask; + // compute and add exchange magneto-mech. force + if (exch_flag) { + lockpairspin->compute_magnetomech(0,0); + } + // update half v for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_integration_spin.h index bc48e4bb59..ff85dedc03 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -34,7 +34,6 @@ class FixIntegrationSpin : public FixNVE { void AdvanceSingleSpin(int, double, double **, double **); virtual void final_integrate(); void ComputeInteractionsSpin(int); - void ComputeMMforce(); void sectoring(); int coords2sector(double *); diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index e34bd21817..689e3f8844 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -66,6 +66,8 @@ PairSpin::~PairSpin() memory->destroy(spi); memory->destroy(spj); + memory->destroy(fi); + memory->destroy(fj); memory->destroy(fmi); memory->destroy(fmj); @@ -73,6 +75,92 @@ PairSpin::~PairSpin() } } + +/* ---------------------------------------------------------------------- */ + +void PairSpin::compute_magnetomech(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double evdwl,ecoul; + double xtmp,ytmp,ztmp; + double fix,fiy,fiz,fjx,fjy,fjz; + double cut_ex_2,cut_dmi_2,cut_me_2; + double rsq,rd,delx,dely,delz; + int *ilist,*jlist,*numneigh,**firstneigh; + + 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 *mumag = atom->mumag; + double **sp = atom->sp; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // pair magneto-mechanics interactions + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + //Loop on Neighbors + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + fi[0] = fi[1] = fi[2] = 0.0; + fj[0] = fj[1] = fj[2] = 0.0; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; //square or inter-atomic distance + itype = type[i]; + jtype = type[j]; + + // mech. exchange interaction + if (exch_flag) { + cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; + if (rsq <= cut_ex_2) { + compute_exchange_mech(i,j,rsq,fi,fj,spi,spj); + } + } + + f[i][0] += fi[0]; + f[i][1] += fi[1]; + f[i][2] += fi[2]; + + // think about this sign, - or + ? + if (newton_pair || j < nlocal) { + f[j][0] += fj[0]; + f[j][1] += fj[1]; + f[j][2] += fj[2]; + } + } + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + /* ---------------------------------------------------------------------- */ void PairSpin::compute(int eflag, int vflag) @@ -102,8 +190,8 @@ void PairSpin::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; - // Pair spin computations - // Loop over neighbors of my itoms + // pair spin computations + // loop over neighbors of my atoms for (ii = 0; ii < inum; ii++) { i = ilist[ii]; @@ -176,7 +264,7 @@ void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double * { int *type = atom->type; int itype, jtype; - double dmix,dmiy,dmiz; + //double dmix,dmiy,dmiz; double Jex, ra; itype = type[i]; jtype = type[j]; @@ -196,6 +284,33 @@ void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double * } +/* ---------------------------------------------------------------------- */ +void PairSpin::compute_exchange_mech(int i, int j, double rsq, double *fmi, double *fmj, double *spi, double *spj) +{ + int *type = atom->type; + int itype, jtype; + //double dmix,dmiy,dmiz; + double Jex_mech, ra, rr; + itype = type[i]; + jtype = type[j]; + + ra = rsq/J_3[itype][jtype]/J_3[itype][jtype]; + rr = sqrt(rsq)/J_3[itype][jtype]/J_3[itype][jtype]; + Jex_mech = 1.0-2.0*J_2[itype][jtype]*ra; + Jex_mech -= ra*(1.0-J_2[itype][jtype]*ra); + Jex_mech *= 8.0*J_1[itype][jtype]*rr*exp(-ra); + + + fi[0] += Jex_mech*spi[0]*spj[0]; + fi[1] += Jex_mech*spi[1]*spj[1]; + fi[2] += Jex_mech*spi[2]*spj[2]; + + fj[0] += Jex_mech*spi[0]*spj[0]; + fj[1] += Jex_mech*spi[1]*spj[1]; + fj[2] += Jex_mech*spi[2]*spj[2]; + +} + /* ---------------------------------------------------------------------- */ void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj, double *spi, double *spj) { @@ -289,6 +404,8 @@ void PairSpin::allocate() memory->create(spi,3,"pair:spi"); memory->create(spj,3,"pair:spj"); + memory->create(fi,3,"pair:fmi"); + memory->create(fj,3,"pair:fmj"); memory->create(fmi,3,"pair:fmi"); memory->create(fmj,3,"pair:fmj"); diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index 2c65c62264..36469d5acf 100755 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -29,6 +29,7 @@ class PairSpin : public Pair { PairSpin(class LAMMPS *); virtual ~PairSpin(); virtual void compute(int, int); + virtual void compute_magnetomech(int, int); void settings(int, char **); void coeff(int, char **); void init_style(); @@ -40,6 +41,7 @@ class PairSpin : public Pair { void read_restart_settings(FILE *); void compute_exchange(int, int, double, double *, double *,double *, double *); + void compute_exchange_mech(int, int, double, double *, double *,double *, double *); void compute_dmi(int, int, double *, double *, double *, double *); void compute_me(int, int, double *, double *, double *, double *); @@ -49,23 +51,23 @@ class PairSpin : public Pair { double cut_spin_pair_global; double cut_spin_dipolar_global; - double **cut_spin_exchange; //cutting distance exchange - double **cut_spin_dmi; //cutting distance dmi - double **cut_spin_me; //cutting distance me + double **cut_spin_exchange; // cutoff distance exchange + double **cut_spin_dmi; // cutoff distance dmi + double **cut_spin_me; // cutoff distance me - //Test for seq. integ. protected: - double **J_1, **J_2, **J_3; //exchange coeffs Jij - //J1 in eV, J2 adim and J3 in Ang + double **J_1, **J_2, **J_3; // exchange coeffs Jij + // J1 in eV, J2 adim and J3 in Ang double **DM; - double **v_dmx, **v_dmy, **v_dmz;//DMI coeffs - //DM int. in eV, v direction + double **v_dmx, **v_dmy, **v_dmz;// DMI coeffs + // DM int. in eV, v direction - double **ME; //ME in eV - double **v_mex, **v_mey, **v_mez;//ME direction + double **ME; // ME in eV + double **v_mex, **v_mey, **v_mez;// ME direction double *spi, *spj; - double *fmi, *fmj; //Temp var. in compute + double *fi, *fj; // temp. mech. forces in compute + double *fmi, *fmj; // temp. mag. forces in compute void allocate(); }; From d144ab01641eeed41a21da286f036b8bd3865fe6 Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 6 Sep 2017 14:43:40 -0600 Subject: [PATCH 038/675] Commit Julien 09/06/17 - units of J1_mag and J1_mech - correct of pack and unpack in atom_vec_spin - add conditions in fix_integration_spin --- in.co_magnetomech | 17 ++- in.cobalt | 15 +-- src/SPIN/atom_vec_spin.cpp | 18 ++- src/SPIN/atom_vec_spin.h | 6 +- src/SPIN/compute_spin.cpp | 11 +- src/SPIN/fix_force_spin.cpp | 41 ++++--- src/SPIN/fix_force_spin.h | 23 ++-- src/SPIN/fix_integration_spin.cpp | 195 +++++++++++++++++------------- src/SPIN/fix_integration_spin.h | 54 +++++---- src/SPIN/fix_langevin_spin.cpp | 28 +++-- src/SPIN/fix_langevin_spin.h | 12 +- src/SPIN/pair_spin.cpp | 136 +++++++++++---------- src/SPIN/pair_spin.h | 21 ++-- 13 files changed, 328 insertions(+), 249 deletions(-) diff --git a/in.co_magnetomech b/in.co_magnetomech index da9e5366f1..40a6d37a2c 100644 --- a/in.co_magnetomech +++ b/in.co_magnetomech @@ -63,6 +63,7 @@ pair_coeff * * eam/alloy ../Co_PurjaPun_2012.eam.alloy Co #pair_style pair/spin 4.0 #type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) pair_coeff * * pair/spin exchange 4.0 0.0446928 0.003496 1.4885 +#pair_coeff * * pair/spin exchange 4.0 0.0 0.003496 1.4885 #type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) #pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 #pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 @@ -76,8 +77,8 @@ neigh_modify every 1 check no delay 0 #Magnetic field fix #Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 +fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 #fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 @@ -85,7 +86,7 @@ fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 #fix 2 all langevin/spin 1.0 0.1 0.0 21 -fix 2 all langevin/spin 0.0 0.0 0.0 21 +fix 2 all langevin/spin 0.1 0.01 0.0 21 #Magnetic integration fix fix 3 all integration/spin mpi @@ -95,6 +96,14 @@ fix 3 all integration/spin mpi compute mag all compute/spin fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g +#compute mechanical energy +compute mech all pe +fix outmech all ave/time 1 1 10 c_mech file mech_Co_nodamp.dat format %20.16g + +#compute kinetic energy +compute kinetic all ke +fix outke all ave/time 1 1 10 c_kinetic file kinetic_Co_nodamp.dat format %20.16g + #Setting the timestep for the simulation (in ps) timestep 0.0001 @@ -106,6 +115,6 @@ timestep 0.0001 dump 1 all custom 100 dump_spin_MM.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 100000 +run 50000 #run 1 diff --git a/in.cobalt b/in.cobalt index ebc2017a5d..9fff327a51 100644 --- a/in.cobalt +++ b/in.cobalt @@ -59,7 +59,8 @@ set group all spin 1.72 1.0 0.0 0.0 #Magnetic exchange interaction coefficient for bulk fcc Cobalt pair_style pair/spin 4.0 #type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +#pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 #type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) #pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 #pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 @@ -72,19 +73,19 @@ neigh_modify every 1 check no delay 0 #Magnetic field fix #Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 +#fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 +fix 1 all force/spin anisotropy 0.00 0.0 0.0 1.0 #fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 1.0 0.1 0.0 21 +fix 2 all langevin/spin 0.0 0.0 0.0 21 #fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -fix 3 all nve/spin mpi +fix 3 all integration/spin mpi #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm @@ -102,6 +103,6 @@ timestep 0.0001 dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 20 -#run 1 +#run 10000 +run 1 diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 6018fc28f0..ccdaa13829 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -9,6 +9,12 @@ the GNU General Public License. See the README file in the top-level LAMMPS directory. + +------------------------------------------------------------------------- */ + +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) ------------------------------------------------------------------------- */ #include @@ -30,16 +36,16 @@ using namespace LAMMPS_NS; AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) { molecular = 0; - mass_type = 1; //check why + mass_type = 1; // check why comm_x_only = 0; - comm_f_only = 1; + comm_f_only = 0; size_forward = 7; size_reverse = 6; size_border = 11; size_velocity = 3; - size_data_atom = 9; //to check later + size_data_atom = 10; // to check later size_data_vel = 4; xcol_data = 4; @@ -67,10 +73,11 @@ void AtomVecSpin::grow(int n) type = memory->grow(atom->type,nmax,"atom:type"); mask = memory->grow(atom->mask,nmax,"atom:mask"); image = memory->grow(atom->image,nmax,"atom:image"); + // allocating mech. quantities x = memory->grow(atom->x,nmax,3,"atom:x"); v = memory->grow(atom->v,nmax,3,"atom:v"); f = memory->grow(atom->f,nmax*comm->nthreads,3,"atom:f"); - //Allocating mag. quantities + // allocating mag. quantities mumag = memory->grow(atom->mumag,nmax,"atom:mumag"); sp = memory->grow(atom->sp,nmax,4,"atom:sp"); fm = memory->grow(atom->fm,nmax*comm->nthreads,3,"atom:fm"); @@ -330,6 +337,7 @@ int AtomVecSpin::pack_reverse(int n, int first, double *buf) buf[m++] = fm[i][1]; buf[m++] = fm[i][2]; } + return m; } @@ -934,9 +942,9 @@ bigint AtomVecSpin::memory_usage() if (atom->memcheck("v")) bytes += memory->usage(v,nmax,3); if (atom->memcheck("f")) bytes += memory->usage(f,nmax*comm->nthreads,3); - if (atom->memcheck("fm")) bytes += memory->usage(fm,nmax*comm->nthreads,3); if (atom->memcheck("mumag")) bytes += memory->usage(mumag,nmax); if (atom->memcheck("sp")) bytes += memory->usage(sp,nmax,4); + if (atom->memcheck("fm")) bytes += memory->usage(fm,nmax*comm->nthreads,3); return bytes; } diff --git a/src/SPIN/atom_vec_spin.h b/src/SPIN/atom_vec_spin.h index f4b13926f0..aedc3efb3e 100644 --- a/src/SPIN/atom_vec_spin.h +++ b/src/SPIN/atom_vec_spin.h @@ -58,7 +58,7 @@ class AtomVecSpin : public AtomVec { int write_data_hybrid(FILE *, double *); bigint memory_usage(); - //Test force clear + // clear mag. and mech. forces void force_clear(int, size_t); @@ -66,8 +66,8 @@ class AtomVecSpin : public AtomVec { tagint *tag; int *type,*mask; imageint *image; - double **x,**v,**f; //MD quantities: position, velocity and force - double *mumag,**sp, **fm; //Magnetic quantities: mu, spin direction, magnetic force + double **x,**v,**f; // lattice quantities + double *mumag,**sp, **fm; // spin quantities }; diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index ed69a76229..140d6ce8ce 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -11,6 +11,11 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) +------------------------------------------------------------------------- */ + #include #include #include "atom.h" @@ -86,9 +91,9 @@ void ComputeSpin::compute_vector() double tx,ty,tz; int nlocal = atom->nlocal; - + // compute total magnetization and magnetic energy - // compute spin temperature; See Nurdin et al., Phys. Rev. E 61, 2000 + // compute spin temperature (Nurdin et al., Phys. Rev. E 61, 2000) for (i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (atom->mumag_flag && atom->sp_flag) { @@ -108,7 +113,7 @@ void ComputeSpin::compute_vector() } else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); } - + MPI_Allreduce(mag,magtot,4,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&magenergy,&magenergytot,1,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&tempnum,&tempnumtot,1,MPI_DOUBLE,MPI_SUM,world); diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index daa34e9df6..9791d622a0 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -11,6 +11,11 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) +------------------------------------------------------------------------- */ + #include #include #include @@ -41,7 +46,7 @@ enum{CONSTANT,EQUAL}; FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { - if (narg < 7) error->all(FLERR,"Illegal fix spin command"); + if (narg < 7) error->all(FLERR,"Illegal force/spin command"); // 7 arguments for a force/spin fix command: //(fix ID group force/spin magnitude (T or eV) style (zeeman or anisotropy) direction (3 cartesian coordinates) @@ -65,7 +70,7 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a zeeman_flag = aniso_flag = 0; if (strcmp(arg[3],"zeeman") == 0) { - if (narg != 8) error->all(FLERR,"Illegal fix zeeman command"); + if (narg != 8) error->all(FLERR,"Illegal force/spin command"); style = ZEEMAN; zeeman_flag = 1; H_field = force->numeric(FLERR,arg[4]); @@ -74,14 +79,14 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a Hz = force->numeric(FLERR,arg[7]); magfieldstyle = CONSTANT; } else if (strcmp(arg[3],"anisotropy") == 0) { - if (narg != 8) error->all(FLERR,"Illegal fix anisotropy command"); + if (narg != 8) error->all(FLERR,"Illegal force/spin command"); style = ANISOTROPY; aniso_flag = 1; Ka = force->numeric(FLERR,arg[4]); Kax = force->numeric(FLERR,arg[5]); Kay = force->numeric(FLERR,arg[6]); Kaz = force->numeric(FLERR,arg[7]); - } else error->all(FLERR,"Illegal fix force/spin command"); + } else error->all(FLERR,"Illegal force/spin command"); degree2rad = MY_PI/180.0; time_origin = update->ntimestep; @@ -115,12 +120,12 @@ int FixForceSpin::setmask() void FixForceSpin::init() { - const double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) - const double mub = 5.78901e-5; //in eV/T - const double gyro = mub/hbar; //in rad.THz/T + const double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) + const double mub = 5.78901e-5; // in eV/T + const double gyro = mub/hbar; // in rad.THz/T - H_field *= gyro; //in rad.THz - Ka /= hbar; //in rad.THz + H_field *= gyro; // in rad.THz + Ka /= hbar; // in rad.THz if (strstr(update->integrate_style,"respa")) { ilevel_respa = ((Respa *) update->integrate)->nlevels-1; @@ -131,15 +136,15 @@ void FixForceSpin::init() if (magstr) { magvar = input->variable->find(magstr); if (magvar < 0) - error->all(FLERR,"Variable name for fix magnetic field does not exist"); + error->all(FLERR,"Illegal force/spin command"); if (!input->variable->equalstyle(magvar)) - error->all(FLERR,"Variable for fix magnetic field is invalid style"); + error->all(FLERR,"Illegal force/spin command"); } varflag = CONSTANT; if (magfieldstyle != CONSTANT) varflag = EQUAL; - // set magnetic field components once and for all + // set magnetic field components if (varflag == CONSTANT) set_magneticforce(); memory->create(spi,3,"forcespin:spi"); @@ -168,26 +173,23 @@ void FixForceSpin::post_force(int vflag) if (varflag != CONSTANT) { modify->clearstep_compute(); modify->addstep_compute(update->ntimestep + 1); - set_magneticforce(); //Update value of the mag. field if time-dependent + set_magneticforce(); // update mag. field if time-dep. } -// double **x = atom->x; double **sp = atom->sp; double *mumag = atom->mumag; double **fm = atom->fm; const int nlocal = atom->nlocal; double scalar; - + eflag = 0; emag = 0.0; for (int i = 0; i < nlocal; i++) { fmi[0] = fmi[1] = fmi[2] = 0.0; - //if (style == ZEEMAN) { if (zeeman_flag) { compute_zeeman(i,fmi); } - //if (style == ANISOTROPY) { if (aniso_flag) { spi[0] = sp[i][0]; spi[1] = sp[i][1]; @@ -197,7 +199,9 @@ void FixForceSpin::post_force(int vflag) fm[i][0] += fmi[0]; fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - } + + } + } @@ -226,7 +230,6 @@ void FixForceSpin::post_force_respa(int vflag, int ilevel, int iloop) } /* ---------------------------------------------------------------------- */ -//No acceleration for magnetic EOM, only a "magnetic force" void FixForceSpin::set_magneticforce() { if (style == ZEEMAN) { diff --git a/src/SPIN/fix_force_spin.h b/src/SPIN/fix_force_spin.h index a422abad2c..a31e2f888c 100644 --- a/src/SPIN/fix_force_spin.h +++ b/src/SPIN/fix_force_spin.h @@ -42,9 +42,9 @@ class FixForceSpin : public Fix { void compute_anisotropy(int, double *, double *); protected: - int style; + int style; // style of the magnetic force - double xmag, ymag, zmag; //Magnetic force + double xmag, ymag, zmag; // temp. force variables double degree2rad; int ilevel_respa; int time_origin; @@ -56,13 +56,16 @@ class FixForceSpin : public Fix { int magvar; char *magstr; - double H_field; //Zeeman field intensity and direction + // zeeman field intensity and direction + double H_field; double Hx, Hy, Hz; - double Ka; //Magnetic anisotropy intensity and direction + // magnetic anisotropy intensity and direction + double Ka; double Kax, Kay, Kaz; - double *spi, *fmi; //Temp var. in compute + // temp. spin variables + double *spi, *fmi; void set_magneticforce(); @@ -75,18 +78,10 @@ class FixForceSpin : public Fix { /* ERROR/WARNING messages: -E: Illegal ... command +E: Illegal force/spin 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: Variable name for fix force/spin does not exist - -Self-explanatory. - -E: Variable for fix force/spin is invalid style - -Only equal-style variables can be used. - */ diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index d05f8b39ba..b09aabac05 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -11,6 +11,11 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) +------------------------------------------------------------------------- */ + #include #include #include @@ -45,7 +50,7 @@ enum{NONE,SPIN}; /* ---------------------------------------------------------------------- */ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : - FixNVE(lmp, narg, arg) + Fix(lmp, narg, arg) { if (narg != 4) error->all(FLERR,"Illegal fix integration/spin command"); @@ -68,9 +73,11 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : // error checks if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); - + magpair_flag = 0; exch_flag = dmi_flag = me_flag = 0; + magforce_flag = 0; zeeman_flag = aniso_flag = 0; + maglangevin_flag = 0; tdamp_flag = temp_flag = 0; lockpairspin = NULL; @@ -96,11 +103,25 @@ FixIntegrationSpin::~FixIntegrationSpin(){ /* ---------------------------------------------------------------------- */ +int FixIntegrationSpin::setmask() +{ + int mask = 0; + mask |= INITIAL_INTEGRATE; + mask |= FINAL_INTEGRATE; + return mask; +} + +/* ---------------------------------------------------------------------- */ + void FixIntegrationSpin::init() { - FixNVE::init(); + //FixNVE::init(); + // set timesteps + dtv = update->dt; + dtf = 0.5 * update->dt * force->ftm2v; dts = update->dt; + memory->create(xi,3,"integrations:xi"); memory->create(sec,3,"integrations:sec"); memory->create(rsec,3,"integrations:rsec"); @@ -113,6 +134,7 @@ void FixIntegrationSpin::init() if (strstr(force->pair_style,"pair/spin")) { + magpair_flag = 1; lockpairspin = (PairSpin *) force->pair; } else if (strstr(force->pair_style,"hybrid/overlay")) { PairHybrid *lockhybrid = (PairHybrid *) force->pair; @@ -120,35 +142,48 @@ void FixIntegrationSpin::init() int ipair; for (ipair = 0; ipair < nhybrid_styles; ipair++) { if (strstr(lockhybrid->keywords[ipair],"pair/spin")) { + magpair_flag = 1; lockpairspin = (PairSpin *) lockhybrid->styles[ipair]; } } } else error->all(FLERR,"Illegal fix integration/spin command"); - // check errors, and handle simple hybrid (not overlay) + // check errors, and handle simple hybrid (not overlay), and no pair/spin interaction int iforce; - for (iforce = 0; iforce < modify->nfix; iforce++) - if (strstr(modify->fix[iforce]->style,"force/spin")) break; - lockforcespin = (FixForceSpin *) modify->fix[iforce]; + for (iforce = 0; iforce < modify->nfix; iforce++) { + if (strstr(modify->fix[iforce]->style,"force/spin")) { + magforce_flag = 1; + lockforcespin = (FixForceSpin *) modify->fix[iforce]; + } + } - for (iforce = 0; iforce < modify->nfix; iforce++) - if (strstr(modify->fix[iforce]->style,"langevin/spin")) break; - locklangevinspin = (FixLangevinSpin *) modify->fix[iforce]; + for (iforce = 0; iforce < modify->nfix; iforce++) { + if (strstr(modify->fix[iforce]->style,"langevin/spin")) { + maglangevin_flag = 1; + locklangevinspin = (FixLangevinSpin *) modify->fix[iforce]; + } + } - // set flags for the different magnetic interactions - if (lockpairspin->exch_flag == 1) exch_flag = 1; - if (lockpairspin->dmi_flag == 1) dmi_flag = 1; - if (lockpairspin->me_flag == 1) me_flag = 1; + // set flags for the different magnetic interactionsi + if (magpair_flag) { + if (lockpairspin->exch_flag == 1) exch_flag = 1; + if (lockpairspin->dmi_flag == 1) dmi_flag = 1; + if (lockpairspin->me_flag == 1) me_flag = 1; + } - if (lockforcespin->zeeman_flag == 1) zeeman_flag = 1; - if (lockforcespin->aniso_flag == 1) aniso_flag = 1; + if (magforce_flag) { + if (lockforcespin->zeeman_flag == 1) zeeman_flag = 1; + if (lockforcespin->aniso_flag == 1) aniso_flag = 1; + } - if (locklangevinspin->tdamp_flag == 1) tdamp_flag = 1; - if (locklangevinspin->temp_flag == 1) temp_flag = 1; + if (maglangevin_flag) { + if (locklangevinspin->tdamp_flag == 1) tdamp_flag = 1; + if (locklangevinspin->temp_flag == 1) temp_flag = 1; + } // perform the sectoring if mpi integration - if (mpi_flag == 1) sectoring(); + if (mpi_flag) sectoring(); } @@ -171,11 +206,15 @@ void FixIntegrationSpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; + printf("before mechmag, spin 1: [%g,%g,%g] \n",f[1][0],f[1][1],f[1][2]); + // compute and add magneto-mech. force - if (exch_flag) { - lockpairspin->compute_magnetomech(0,vflag); + if (magpair_flag == 1) { + if (exch_flag) lockpairspin->compute_magnetomech(0,vflag); } + printf("after mechmag, spin 1: [%g,%g,%g] \n",f[1][0],f[1][1],f[1][2]); + // update half v all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -263,7 +302,7 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) const int newton_pair = force->newton_pair; // add test here - if (exch_flag == 1 || dmi_flag == 1 || me_flag == 1 ) { + if (magpair_flag) { inum = lockpairspin->list->inum; ilist = lockpairspin->list->ilist; numneigh = lockpairspin->list->numneigh; @@ -286,9 +325,6 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) // force computation for spin i i = ilist[ii]; - // clear atom i - fm[i][0] = fm[i][1] = fm[i][2] = 0.0; - spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; @@ -316,50 +352,54 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) itype = type[ii]; jtype = type[j]; - if (exch_flag) { - cut_ex_2 = (lockpairspin->cut_spin_exchange[itype][jtype])*(lockpairspin->cut_spin_exchange[itype][jtype]); - if (rsq <= cut_ex_2) { - lockpairspin->compute_exchange(i,j,rsq,fmi,fmj,spi,spj); - } - } - - if (dmi_flag) { - cut_dmi_2 = (lockpairspin->cut_spin_dmi[itype][jtype])*(lockpairspin->cut_spin_dmi[itype][jtype]); - if (rsq <= cut_dmi_2) { - lockpairspin->compute_dmi(i,j,fmi,fmj,spi,spj); - } - } - - if (me_flag) { - cut_me_2 = (lockpairspin->cut_spin_me[itype][jtype])*(lockpairspin->cut_spin_me[itype][jtype]); - if (rsq <= cut_me_2) { - lockpairspin->compute_me(i,j,fmi,fmj,spi,spj); - } - } - - } - - // post force - if (zeeman_flag) { - lockforcespin->compute_zeeman(i,fmi); - } - - if (aniso_flag) { - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - lockforcespin->compute_anisotropy(i,spi,fmi); - } - - if (tdamp_flag) { - locklangevinspin->add_tdamping(spi,fmi); - } - - if (temp_flag) { - locklangevinspin->add_temperature(fmi); + if (magpair_flag) { // mag. pair inter. + double temp_cut; + if (exch_flag) { // exchange + temp_cut = lockpairspin->cut_spin_exchange[itype][jtype]; + cut_ex_2 = temp_cut*temp_cut; + if (rsq <= cut_ex_2) { + lockpairspin->compute_exchange(i,j,rsq,fmi,fmj,spi,spj); + } + } + if (dmi_flag) { // dmi + temp_cut = lockpairspin->cut_spin_dmi[itype][jtype]; + cut_dmi_2 = temp_cut*temp_cut; + if (rsq <= cut_dmi_2) { + lockpairspin->compute_dmi(i,j,fmi,fmj,spi,spj); + } + } + if (me_flag) { // me + temp_cut = lockpairspin->cut_spin_me[itype][jtype]; + cut_me_2 = temp_cut*temp_cut; + if (rsq <= cut_me_2) { + lockpairspin->compute_me(i,j,fmi,fmj,spi,spj); + } + } + } } - - // replace the magnetic force by its new value + + if (magforce_flag) { // mag. forces + if (zeeman_flag) { // zeeman + lockforcespin->compute_zeeman(i,fmi); + } + if (aniso_flag) { // aniso + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + lockforcespin->compute_anisotropy(i,spi,fmi); + } + } + + if (maglangevin_flag) { // mag. langevin + if (tdamp_flag) { // trans. damping + locklangevinspin->add_tdamping(spi,fmi); + } + if (temp_flag) { // temp. + locklangevinspin->add_temperature(fmi); + } + } + + // replace the mag. force i by its new value fm[i][0] = fmi[0]; fm[i][1] = fmi[1]; fm[i][2] = fmi[2]; @@ -397,7 +437,7 @@ void FixIntegrationSpin::sectoring() nsectors = sec[0]*sec[1]*sec[2]; if (mpi_flag == 1 && nsectors != 8) - error->all(FLERR,"System too small for sectoring operation"); + error->all(FLERR,"Illegal sectoring operation"); rsec[0] = rsx; rsec[1] = rsy; @@ -406,17 +446,6 @@ void FixIntegrationSpin::sectoring() if (sec[1] == 2) rsec[1] = rsy/2.0; if (sec[2] == 2) rsec[2] = rsz/2.0; - /* - if (2.0 * rv >= rsx && sec[0] >= 2) - error->all(FLERR,"Illegal number of sectors"); - - if (2.0 * rv >= rsy && sec[1] >= 2) - error->all(FLERR,"Illegal number of sectors"); - - if (2.0 * rv >= rsz && sec[2] >= 2) - error->all(FLERR,"Illegal number of sectors"); -*/ - } /* ---------------------------------------------------------------------- */ @@ -501,9 +530,9 @@ void FixIntegrationSpin::final_integrate() int *type = atom->type; int *mask = atom->mask; - // compute and add exchange magneto-mech. force - if (exch_flag) { - lockpairspin->compute_magnetomech(0,0); + // compute and add magneto-mech. force + if (magpair_flag == 1) { + if (exch_flag) lockpairspin->compute_magnetomech(0,0); } // update half v for all particles diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_integration_spin.h index ff85dedc03..96f0035919 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -17,43 +17,57 @@ FixStyle(integration/spin,FixIntegrationSpin) #else -#ifndef LMP_FIX_NVE_SPIN_H -#define LMP_FIX_NVE_SPIN_H +#ifndef LMP_FIX_INTEGRATION_SPIN_H +#define LMP_FIX_INTEGRATION_SPIN_H -#include "fix_nve.h" +#include "fix.h" namespace LAMMPS_NS { -class FixIntegrationSpin : public FixNVE { +class FixIntegrationSpin : public Fix { public: FixIntegrationSpin(class LAMMPS *, int, char **); virtual ~FixIntegrationSpin(); + int setmask(); void init(); virtual void initial_integrate(int); - void AdvanceSingleSpin(int, double, double **, double **); virtual void final_integrate(); - void ComputeInteractionsSpin(int); - void sectoring(); + // compute and advance single spin + void ComputeInteractionsSpin(int); + void AdvanceSingleSpin(int, double, double **, double **); + + // sectoring operations + void sectoring(); int coords2sector(double *); protected: int extra, mpi_flag; - double dts; + + // vel., force, and spin timesteps + double dtv,dtf,dts; + // mag. interaction flags + int magpair_flag; int exch_flag, dmi_flag, me_flag; + int magforce_flag; int zeeman_flag, aniso_flag; + int maglangevin_flag; int tdamp_flag, temp_flag; + // pointers to mag. interaction classes class PairHybrid *lockhybrid; class PairSpin *lockpairspin; class FixForceSpin *lockforcespin; class FixLangevinSpin *locklangevinspin; - double *spi, *spj, *fmi, *fmj; //Temp var. + // temporary variables double *xi; + double *spi, *spj; + double *fmi, *fmj; + // sectoring variables int nsectors; int *sec, *seci; double *rsec; @@ -67,27 +81,19 @@ class FixIntegrationSpin : public FixNVE { /* ERROR/WARNING messages: -E: Illegal ... command +E: Illegal fix integration/spin command -Self-explanatory. Check the input script syntax and compare to the +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: Fix nve/sphere requires atom style sphere +E: Fix integration/spin requires spin attribute mumag -Self-explanatory. +An atom/spin style with this attribute is needed. -E: Fix nve/sphere update dipole requires atom attribute mu - -An atom style with this attribute is needed. - -E: Fix nve/sphere requires extended particles - -This fix can only be used for particles of a finite size. - -E: Fix nve/sphere dlm must be used with update dipole - -The DLM algorithm can only be used in conjunction with update dipole. +E: Illegal sectoring operation +The number of processes does not match the size of the system. +See the documentation of the sectoring method. */ diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 53caa7391e..4f59f8f4d7 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -12,8 +12,8 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing authors: Carolyn Phillips (U Mich), reservoir energy tally - Aidan Thompson (SNL) GJF formulation + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) ------------------------------------------------------------------------- */ #include @@ -51,7 +51,7 @@ using namespace MathConst; FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), id_temp(NULL), random(NULL) { - if (narg != 7) error->all(FLERR,"Illegal fix langevin/spin command"); + if (narg != 7) error->all(FLERR,"Illegal langevin/spin command"); dynamic_group_allow = 1; scalar_flag = 1; @@ -65,7 +65,7 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : seed = force->inumeric(FLERR,arg[6]); if (alpha_t < 0.0) { - error->all(FLERR,"Illegal fix/langevin/spin command"); + error->all(FLERR,"Illegal langevin/spin command"); } else if (alpha_t == 0.0) { tdamp_flag = 0; } else { @@ -73,7 +73,7 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : } if (alpha_l < 0.0) { - error->all(FLERR,"Illegal fix/langevin/spin command"); + error->all(FLERR,"Illegal langevin/spin command"); } else if (alpha_l == 0.0) { ldamp_flag = 0; } else { @@ -81,7 +81,7 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : } if (temp < 0.0) { - error->all(FLERR,"Illegal fix/langevin/spin command"); + error->all(FLERR,"Illegal langevin/spin command"); } else if (temp == 0.0) { temp_flag = 0; } else { @@ -201,8 +201,9 @@ void FixLangevinSpin::add_tdamping(double *spi, double *fmi) double cpx = fmi[1]*spi[2] - fmi[2]*spi[1]; double cpy = fmi[2]*spi[0] - fmi[0]*spi[2]; double cpz = fmi[0]*spi[1] - fmi[1]*spi[0]; - - fmi[0] -= alpha_t*cpx;//Taking the damping value away + + // taking away the transverse damping + fmi[0] -= alpha_t*cpx; fmi[1] -= alpha_t*cpy; fmi[2] -= alpha_t*cpz; } @@ -212,7 +213,8 @@ void FixLangevinSpin::add_temperature(double *fmi) { //#define GAUSSIAN_R #if defined GAUSSIAN_R - double rx = sigma*random->gaussian();//Drawing random dist + // drawing gausian random dist + double rx = sigma*random->gaussian(); double ry = sigma*random->gaussian(); double rz = sigma*random->gaussian(); #else @@ -221,11 +223,13 @@ void FixLangevinSpin::add_temperature(double *fmi) double rz = sigma*(random->uniform() - 0.5); #endif - fmi[0] += rx;//Adding random field + // adding the random field + fmi[0] += rx; fmi[1] += ry; fmi[2] += rz; - - fmi[0] *= Gil_factor;//Multiplying by Gilbert's prefactor + + // adding Gilbert's prefactor + fmi[0] *= Gil_factor; fmi[1] *= Gil_factor; fmi[2] *= Gil_factor; diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index a6b9bc5df3..2fe6c6fab5 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -33,15 +33,19 @@ class FixLangevinSpin : public Fix { void setup(int); virtual void post_force(int); void post_force_respa(int, int, int); + // add transverse damping and temperature void add_tdamping(double *, double *); void add_temperature(double *); + // associated flags int tdamp_flag, ldamp_flag, temp_flag; protected: double *spi, *fmi; - double alpha_t, alpha_l; //Transverse and long. damping value - double dts,temp,D,sigma;//timestep, temp, noise - double Gil_factor;//Gilbert's prefactor + // transverse and longitudinal damping coeff. + double alpha_t, alpha_l; + // timestep, temperature, noise intensity + double dts,temp,D,sigma; + double Gil_factor; char *id_temp; class Compute *temperature; @@ -60,7 +64,7 @@ class FixLangevinSpin : public Fix { /* ERROR/WARNING messages: -E: Illegal ... command +E: Illegal langevin/spin command Self-explanatory. Check the input script syntax and compare to the documentation for the command. You can use -echo screen as a diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index 689e3f8844..b62fd867de 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -11,6 +11,11 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) +------------------------------------------------------------------------- */ + #include #include #include @@ -48,9 +53,10 @@ PairSpin::~PairSpin() memory->destroy(setflag); memory->destroy(cut_spin_exchange); - memory->destroy(J_1); - memory->destroy(J_2); - memory->destroy(J_2); + memory->destroy(J1_mag); + memory->destroy(J1_mech); + memory->destroy(J2); + memory->destroy(J3); memory->destroy(cut_spin_dmi); memory->destroy(DM); @@ -70,6 +76,7 @@ PairSpin::~PairSpin() memory->destroy(fj); memory->destroy(fmi); memory->destroy(fmj); + memory->destroy(del); memory->destroy(cutsq); } @@ -85,7 +92,7 @@ void PairSpin::compute_magnetomech(int eflag, int vflag) double xtmp,ytmp,ztmp; double fix,fiy,fiz,fjx,fjy,fjz; double cut_ex_2,cut_dmi_2,cut_me_2; - double rsq,rd,delx,dely,delz; + double rsq,rd; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; @@ -119,21 +126,21 @@ void PairSpin::compute_magnetomech(int eflag, int vflag) spi[1] = sp[i][1]; spi[2] = sp[i][2]; - //Loop on Neighbors + // loop on neighbors for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; spj[0] = sp[j][0]; spj[1] = sp[j][1]; spj[2] = sp[j][2]; - fi[0] = fi[1] = fi[2] = 0.0; fj[0] = fj[1] = fj[2] = 0.0; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; //square or inter-atomic distance + del[0] = del[1] = del[2] = 0.0; + + del[0] = x[j][0] - xtmp; + del[1] = x[j][1] - ytmp; + del[2] = x[j][2] - ztmp; + rsq = del[0]*del[0] + del[1]*del[1] + del[2]*del[2]; //square or inter-atomic distance itype = type[i]; jtype = type[j]; @@ -141,7 +148,7 @@ void PairSpin::compute_magnetomech(int eflag, int vflag) if (exch_flag) { cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; if (rsq <= cut_ex_2) { - compute_exchange_mech(i,j,rsq,fi,fj,spi,spj); + compute_exchange_mech(i,j,rsq,del,fi,fj,spi,spj); } } @@ -204,7 +211,7 @@ void PairSpin::compute(int eflag, int vflag) spi[1] = sp[i][1]; spi[2] = sp[i][2]; - //Loop on Neighbors + // loop on neighbors for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; @@ -218,25 +225,27 @@ void PairSpin::compute(int eflag, int vflag) delx = xtmp - x[j][0]; dely = ytmp - x[j][1]; delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; //square or inter-atomic distance + // square or inter-atomic distance + rsq = delx*delx + dely*dely + delz*delz; + itype = type[i]; jtype = type[j]; - //Exchange interaction + // exchange interaction if (exch_flag) { cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; if (rsq <= cut_ex_2) { compute_exchange(i,j,rsq,fmi,fmj,spi,spj); } } - //DM interaction + // dm interaction if (dmi_flag){ cut_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; if (rsq <= cut_dmi_2){ compute_dmi(i,j,fmi,fmj,spi,spj); } } - //ME interaction + // me interaction if (me_flag){ cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; if (rsq <= cut_me_2){ @@ -249,12 +258,12 @@ void PairSpin::compute(int eflag, int vflag) fm[i][2] += fmi[2]; if (newton_pair || j < nlocal) { - fm[j][0] += fmj[0]; - fm[j][1] += fmj[1]; - fm[j][2] += fmj[2]; - } + fm[j][0] += fmj[0]; + fm[j][1] += fmj[1]; + fm[j][2] += fmj[2]; } - } + } + } if (vflag_fdotr) virial_fdotr_compute(); } @@ -264,14 +273,13 @@ void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double * { int *type = atom->type; int itype, jtype; - //double dmix,dmiy,dmiz; double Jex, ra; itype = type[i]; jtype = type[j]; - ra = rsq/J_3[itype][jtype]/J_3[itype][jtype]; - Jex = 4.0*J_1[itype][jtype]*ra; - Jex *= (1.0-J_2[itype][jtype]*ra); + ra = rsq/J3[itype][jtype]/J3[itype][jtype]; + Jex = 4.0*J1_mag[itype][jtype]*ra; + Jex *= (1.0-J2[itype][jtype]*ra); Jex *= exp(-ra); fmi[0] += Jex*spj[0]; @@ -285,29 +293,29 @@ void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double * } /* ---------------------------------------------------------------------- */ -void PairSpin::compute_exchange_mech(int i, int j, double rsq, double *fmi, double *fmj, double *spi, double *spj) +void PairSpin::compute_exchange_mech(int i, int j, double rsq, double *del, double *fi, double *fj, double *spi, double *spj) { int *type = atom->type; int itype, jtype; - //double dmix,dmiy,dmiz; - double Jex_mech, ra, rr; + double Jex, Jex_mech, ra, rr; itype = type[i]; jtype = type[j]; - - ra = rsq/J_3[itype][jtype]/J_3[itype][jtype]; - rr = sqrt(rsq)/J_3[itype][jtype]/J_3[itype][jtype]; - Jex_mech = 1.0-2.0*J_2[itype][jtype]*ra; - Jex_mech -= ra*(1.0-J_2[itype][jtype]*ra); - Jex_mech *= 8.0*J_1[itype][jtype]*rr*exp(-ra); + Jex = J1_mech[itype][jtype]; + ra = rsq/J3[itype][jtype]/J3[itype][jtype]; + rr = sqrt(rsq)/J3[itype][jtype]/J3[itype][jtype]; - fi[0] += Jex_mech*spi[0]*spj[0]; - fi[1] += Jex_mech*spi[1]*spj[1]; - fi[2] += Jex_mech*spi[2]*spj[2]; + Jex_mech = 1.0-ra-J2[itype][jtype]*ra*(2.0-ra); + Jex_mech *= 8.0*Jex*rr*exp(-ra); + Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); + + fi[0] += Jex_mech*del[0]; + fi[1] += Jex_mech*del[1]; + fi[2] += Jex_mech*del[2]; - fj[0] += Jex_mech*spi[0]*spj[0]; - fj[1] += Jex_mech*spi[1]*spj[1]; - fj[2] += Jex_mech*spi[2]*spj[2]; + fj[0] -= Jex_mech*del[0]; + fj[1] -= Jex_mech*del[1]; + fj[2] -= Jex_mech*del[2]; } @@ -386,9 +394,10 @@ void PairSpin::allocate() setflag[i][j] = 0; memory->create(cut_spin_exchange,n+1,n+1,"pair:cut_spin_exchange"); - memory->create(J_1,n+1,n+1,"pair:J_1"); - memory->create(J_2,n+1,n+1,"pair:J_2"); - memory->create(J_3,n+1,n+1,"pair:J_3"); + memory->create(J1_mag,n+1,n+1,"pair:J1_mag"); + memory->create(J1_mech,n+1,n+1,"pair:J1_mech"); + memory->create(J2,n+1,n+1,"pair:J2"); + memory->create(J3,n+1,n+1,"pair:J3"); memory->create(cut_spin_dmi,n+1,n+1,"pair:cut_spin_dmi"); memory->create(DM,n+1,n+1,"pair:DM"); @@ -404,10 +413,11 @@ void PairSpin::allocate() memory->create(spi,3,"pair:spi"); memory->create(spj,3,"pair:spj"); - memory->create(fi,3,"pair:fmi"); - memory->create(fj,3,"pair:fmj"); + memory->create(fi,3,"pair:fi"); + memory->create(fj,3,"pair:fj"); memory->create(fmi,3,"pair:fmi"); memory->create(fmj,3,"pair:fmj"); + memory->create(del,3,"pair:del"); memory->create(cutsq,n+1,n+1,"pair:cutsq"); @@ -461,17 +471,18 @@ void PairSpin::coeff(int narg, char **arg) force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); const double rij = force->numeric(FLERR,arg[3]); - const double J1 = (force->numeric(FLERR,arg[4]))/hbar; - const double J2 = force->numeric(FLERR,arg[5]); - const double J3 = force->numeric(FLERR,arg[6]); + const double j1 = (force->numeric(FLERR,arg[4])); + const double j2 = force->numeric(FLERR,arg[5]); + const double j3 = force->numeric(FLERR,arg[6]); int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { cut_spin_exchange[i][j] = rij; - J_1[i][j] = J1; - J_2[i][j] = J2; - J_3[i][j] = J3; + J1_mag[i][j] = j1/hbar; + J1_mech[i][j] = j1; + J2[i][j] = j2; + J3[i][j] = j3; setflag[i][j] = 1; count++; } @@ -592,9 +603,10 @@ void PairSpin::write_restart(FILE *fp) fwrite(&setflag[i][j],sizeof(int),1,fp); if (setflag[i][j]) { if (exch_flag){ - fwrite(&J_1[i][j],sizeof(double),1,fp); - fwrite(&J_2[i][j],sizeof(double),1,fp); - fwrite(&J_3[i][j],sizeof(double),1,fp); + fwrite(&J1_mag[i][j],sizeof(double),1,fp); + fwrite(&J1_mech[i][j],sizeof(double),1,fp); + fwrite(&J2[i][j],sizeof(double),1,fp); + fwrite(&J3[i][j],sizeof(double),1,fp); fwrite(&cut_spin_exchange[i][j],sizeof(double),1,fp); } if (dmi_flag) { @@ -633,14 +645,16 @@ void PairSpin::read_restart(FILE *fp) MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); if (setflag[i][j]) { if (me == 0) { - fread(&J_1[i][j],sizeof(double),1,fp); - fread(&J_2[i][j],sizeof(double),1,fp); - fread(&J_2[i][j],sizeof(double),1,fp); + fread(&J1_mag[i][j],sizeof(double),1,fp); + fread(&J1_mech[i][j],sizeof(double),1,fp); + fread(&J2[i][j],sizeof(double),1,fp); + fread(&J2[i][j],sizeof(double),1,fp); fread(&cut_spin_exchange[i][j],sizeof(double),1,fp); } - MPI_Bcast(&J_1[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&J_2[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&J_3[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J1_mag[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J1_mech[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J2[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J3[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&cut_spin_exchange[i][j],1,MPI_DOUBLE,0,world); } } diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index 36469d5acf..7ef78f2767 100755 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -41,7 +41,7 @@ class PairSpin : public Pair { void read_restart_settings(FILE *); void compute_exchange(int, int, double, double *, double *,double *, double *); - void compute_exchange_mech(int, int, double, double *, double *,double *, double *); + void compute_exchange_mech(int, int, double, double *, double *, double *,double *, double *); void compute_dmi(int, int, double *, double *, double *, double *); void compute_me(int, int, double *, double *, double *, double *); @@ -56,18 +56,19 @@ class PairSpin : public Pair { double **cut_spin_me; // cutoff distance me protected: - double **J_1, **J_2, **J_3; // exchange coeffs Jij - // J1 in eV, J2 adim and J3 in Ang - double **DM; - double **v_dmx, **v_dmy, **v_dmz;// DMI coeffs - // DM int. in eV, v direction + double **J1_mag, **J1_mech; // exchange coeffs Jij + double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang - double **ME; // ME in eV - double **v_mex, **v_mey, **v_mez;// ME direction + double **DM; // dmi coeff in eV + double **v_dmx, **v_dmy, **v_dmz;// dmi direction - double *spi, *spj; + double **ME; // me coeff in eV + double **v_mex, **v_mey, **v_mez;// me direction + + double *spi, *spj; // temp. spin vals. in compute double *fi, *fj; // temp. mech. forces in compute double *fmi, *fmj; // temp. mag. forces in compute + double *del; // inter atomic distances void allocate(); }; @@ -79,7 +80,7 @@ class PairSpin : public Pair { /* ERROR/WARNING messages: -E: Incorrect args in pair_style command +E: Incorrect args in pair_spin command Self-explanatory. From 54832a8fe46e7d28bdf06a886ea29343dd5d4645 Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 14 Sep 2017 16:16:33 -0600 Subject: [PATCH 039/675] Commit Julien 09/14/17 - Changes and corrections in the computation of the energy - Issue with newton_pair in the compute of pair --- in.co_magnetomech | 18 ++-- src/SPIN/compute_spin.cpp | 8 +- src/SPIN/fix_force_spin.cpp | 12 ++- src/SPIN/fix_force_spin.h | 1 + src/SPIN/fix_integration_spin.cpp | 16 ++-- src/SPIN/pair_spin.cpp | 142 ++++++++++-------------------- src/SPIN/pair_spin.h | 10 +-- 7 files changed, 84 insertions(+), 123 deletions(-) diff --git a/in.co_magnetomech b/in.co_magnetomech index 40a6d37a2c..bbe9e3fb83 100644 --- a/in.co_magnetomech +++ b/in.co_magnetomech @@ -35,7 +35,7 @@ lattice fcc 3.54 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 5.0 0.0 5.0 0.0 5.0 +region box block 0.0 2.0 0.0 2.0 0.0 2.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box @@ -53,8 +53,8 @@ create_atoms 1 box mass 1 1.0 #set group all mass 1.0 #Setting spins orientation and moment -#set group all spin/random 11 1.72 -set group all spin 1.72 1.0 0.0 0.0 +set group all spin/random 11 1.72 +#set group all spin 1.72 0.0 0.0 1.0 #Magneto-mechanic interactions for bulk fcc Cobalt pair_style hybrid/overlay eam/alloy pair/spin 4.0 @@ -77,7 +77,7 @@ neigh_modify every 1 check no delay 0 #Magnetic field fix #Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 +fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 #fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 @@ -86,10 +86,10 @@ fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 #fix 2 all langevin/spin 1.0 0.1 0.0 21 -fix 2 all langevin/spin 0.1 0.01 0.0 21 +fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -fix 3 all integration/spin mpi +fix 3 all integration/spin serial #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm @@ -111,10 +111,12 @@ timestep 0.0001 #######run######## ################## +thermo 500 + #Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 100 dump_spin_MM.lammpstrj type x y z spx spy spz +dump 1 all custom 10 dump_spin_MM.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 50000 +run 100000 #run 1 diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 140d6ce8ce..d0187142ce 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -100,9 +100,9 @@ void ComputeSpin::compute_vector() mag[0] += sp[i][0]; mag[1] += sp[i][1]; mag[2] += sp[i][2]; - magenergy += mumag[i]*sp[i][0]*fm[i][0]; - magenergy += mumag[i]*sp[i][1]*fm[i][1]; - magenergy += mumag[i]*sp[i][2]*fm[i][2]; + magenergy += sp[i][0]*fm[i][0]; + magenergy += sp[i][1]*fm[i][1]; + magenergy += sp[i][2]*fm[i][2]; tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; @@ -113,7 +113,7 @@ void ComputeSpin::compute_vector() } else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); } - + MPI_Allreduce(mag,magtot,4,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&magenergy,&magenergytot,1,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&tempnum,&tempnumtot,1,MPI_DOUBLE,MPI_SUM,world); diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index 9791d622a0..9b2012831f 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -50,7 +50,9 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a // 7 arguments for a force/spin fix command: //(fix ID group force/spin magnitude (T or eV) style (zeeman or anisotropy) direction (3 cartesian coordinates) - //Magnetic interactions only coded for cartesian coordinates + // magnetic interactions coded for cartesian coordinates + + hbar = force->hplanck/MY_2PI; dynamic_group_allow = 1; scalar_flag = 1; @@ -200,6 +202,9 @@ void FixForceSpin::post_force(int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; + emag -= mumag[i]*spi[0]*fmi[0]; + emag -= mumag[i]*spi[1]*fmi[1]; + emag -= mumag[i]*spi[2]*fmi[2]; } } @@ -214,6 +219,8 @@ double *mumag = atom->mumag; fmi[2] += mumag[i]*zmag; } +/* ---------------------------------------------------------------------- */ + void FixForceSpin::compute_anisotropy(int i, double * spi, double *fmi) { double scalar = Kax*spi[0] + Kay*spi[1] + Kaz*spi[2]; @@ -255,5 +262,8 @@ double FixForceSpin::compute_scalar() MPI_Allreduce(&emag,&emag_all,1,MPI_DOUBLE,MPI_SUM,world); eflag = 1; } + + emag *= hbar; + return emag_all; } diff --git a/src/SPIN/fix_force_spin.h b/src/SPIN/fix_force_spin.h index a31e2f888c..57d4126f86 100644 --- a/src/SPIN/fix_force_spin.h +++ b/src/SPIN/fix_force_spin.h @@ -46,6 +46,7 @@ class FixForceSpin : public Fix { double xmag, ymag, zmag; // temp. force variables double degree2rad; + double hbar; int ilevel_respa; int time_origin; int eflag; diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index b09aabac05..504f789c19 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -206,14 +206,14 @@ void FixIntegrationSpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; - printf("before mechmag, spin 1: [%g,%g,%g] \n",f[1][0],f[1][1],f[1][2]); +// printf("before mechmag, spin 1: [%g,%g,%g] \n",f[1][0],f[1][1],f[1][2]); // compute and add magneto-mech. force - if (magpair_flag == 1) { - if (exch_flag) lockpairspin->compute_magnetomech(0,vflag); - } +// if (magpair_flag == 1) { +// if (exch_flag) lockpairspin->compute_magnetomech(0,vflag); +// } - printf("after mechmag, spin 1: [%g,%g,%g] \n",f[1][0],f[1][1],f[1][2]); +// printf("after mechmag, spin 1: [%g,%g,%g] \n",f[1][0],f[1][1],f[1][2]); // update half v all particles for (int i = 0; i < nlocal; i++) { @@ -531,9 +531,9 @@ void FixIntegrationSpin::final_integrate() int *mask = atom->mask; // compute and add magneto-mech. force - if (magpair_flag == 1) { - if (exch_flag) lockpairspin->compute_magnetomech(0,0); - } +// if (magpair_flag == 1) { +// if (exch_flag) lockpairspin->compute_magnetomech(0,0); +// } // update half v for all particles for (int i = 0; i < nlocal; i++) { diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index b62fd867de..e4e8e2e15a 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -39,10 +39,15 @@ using namespace MathConst; PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp) { + hbar = force->hplanck/MY_2PI; + + newton_pair_spin = 0; // no newton pair for now single_enable = 0; exch_flag = 0; dmi_flag = 0; me_flag = 0; + + no_virial_fdotr_compute = 1; } /* ---------------------------------------------------------------------- */ @@ -82,92 +87,6 @@ PairSpin::~PairSpin() } } - -/* ---------------------------------------------------------------------- */ - -void PairSpin::compute_magnetomech(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype; - double evdwl,ecoul; - double xtmp,ytmp,ztmp; - double fix,fiy,fiz,fjx,fjy,fjz; - double cut_ex_2,cut_dmi_2,cut_me_2; - double rsq,rd; - int *ilist,*jlist,*numneigh,**firstneigh; - - 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 *mumag = atom->mumag; - double **sp = atom->sp; - int *type = atom->type; - int nlocal = atom->nlocal; - int newton_pair = force->newton_pair; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // pair magneto-mechanics interactions - // loop over neighbors of my atoms - - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - // loop on neighbors - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - fi[0] = fi[1] = fi[2] = 0.0; - fj[0] = fj[1] = fj[2] = 0.0; - del[0] = del[1] = del[2] = 0.0; - - del[0] = x[j][0] - xtmp; - del[1] = x[j][1] - ytmp; - del[2] = x[j][2] - ztmp; - rsq = del[0]*del[0] + del[1]*del[1] + del[2]*del[2]; //square or inter-atomic distance - itype = type[i]; - jtype = type[j]; - - // mech. exchange interaction - if (exch_flag) { - cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; - if (rsq <= cut_ex_2) { - compute_exchange_mech(i,j,rsq,del,fi,fj,spi,spj); - } - } - - f[i][0] += fi[0]; - f[i][1] += fi[1]; - f[i][2] += fi[2]; - - // think about this sign, - or + ? - if (newton_pair || j < nlocal) { - f[j][0] += fj[0]; - f[j][1] += fj[1]; - f[j][2] += fj[2]; - } - } - } - - if (vflag_fdotr) virial_fdotr_compute(); -} - /* ---------------------------------------------------------------------- */ void PairSpin::compute(int eflag, int vflag) @@ -175,16 +94,19 @@ void PairSpin::compute(int eflag, int vflag) int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl,ecoul; double xtmp,ytmp,ztmp; + double fix,fiy,fiz,fjx,fjy,fjz; double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; - double cut_ex_2,cut_dmi_2,cut_me_2; - double rsq,rd,delx,dely,delz; + double cut_ex_2,cut_dmi_2,cut_me_2,cut_spin_pair_global2; + double rsq,rd; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = vflag_fdotr = 0; + cut_spin_pair_global2 = cut_spin_pair_global*cut_spin_pair_global; double **x = atom->x; + double **f = atom->f; double **fm = atom->fm; double *mumag = atom->mumag; double **sp = atom->sp; @@ -209,7 +131,7 @@ void PairSpin::compute(int eflag, int vflag) jnum = numneigh[i]; spi[0] = sp[i][0]; spi[1] = sp[i][1]; - spi[2] = sp[i][2]; + spi[2] = sp[i][2]; // loop on neighbors for (jj = 0; jj < jnum; jj++) { @@ -219,14 +141,18 @@ void PairSpin::compute(int eflag, int vflag) spj[1] = sp[j][1]; spj[2] = sp[j][2]; + fi[0] = fi[1] = fi[2] = 0.0; + fj[0] = fj[1] = fj[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; fmj[0] = fmj[1] = fmj[2] = 0.0; + del[0] = del[1] = del[2] = 0.0; - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - // square or inter-atomic distance - rsq = delx*delx + dely*dely + delz*delz; + del[0] = x[j][0] - xtmp; + del[1] = x[j][1] - ytmp; + del[2] = x[j][2] - ztmp; + + // square of inter-atomic distance + rsq = del[0]*del[0] + del[1]*del[1] + del[2]*del[2]; itype = type[i]; jtype = type[j]; @@ -236,6 +162,7 @@ void PairSpin::compute(int eflag, int vflag) cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; if (rsq <= cut_ex_2) { compute_exchange(i,j,rsq,fmi,fmj,spi,spj); + compute_exchange_mech(i,j,rsq,del,fi,fj,spi,spj); } } // dm interaction @@ -253,15 +180,35 @@ void PairSpin::compute(int eflag, int vflag) } } + f[i][0] += fi[0]; + f[i][1] += fi[1]; + f[i][2] += fi[2]; fm[i][0] += fmi[0]; fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - if (newton_pair || j < nlocal) { + /* if (newton_pair || j < nlocal) {*/ + if (newton_pair_spin) { + f[j][0] += fj[0]; + f[j][1] += fj[1]; + f[j][2] += fj[2]; fm[j][0] += fmj[0]; fm[j][1] += fmj[1]; fm[j][2] += fmj[2]; } + + if (eflag) { + if (rsq <= cut_spin_pair_global2) { + evdwl -= mumag[i]*spi[0]*fmi[0]; + evdwl -= mumag[i]*spi[1]*fmi[1]; + evdwl -= mumag[i]*spi[2]*fmi[2]; + } + } + + evdwl *= hbar; + + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, + evdwl,ecoul,fi[0],fi[1],fi[2],del[0],del[1],del[2]); } } @@ -289,7 +236,7 @@ void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double * fmj[0] += Jex*spi[0]; fmj[1] += Jex*spi[1]; fmj[2] += Jex*spi[2]; - + } /* ---------------------------------------------------------------------- */ @@ -639,7 +586,7 @@ void PairSpin::read_restart(FILE *fp) int i,j; int me = comm->me; - for (i = 1; i <= atom->ntypes; i++) + for (i = 1; i <= atom->ntypes; i++) { for (j = i; j <= atom->ntypes; j++) { if (me == 0) fread(&setflag[i][j],sizeof(int),1,fp); MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); @@ -658,6 +605,7 @@ void PairSpin::read_restart(FILE *fp) MPI_Bcast(&cut_spin_exchange[i][j],1,MPI_DOUBLE,0,world); } } + } } diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index 7ef78f2767..f73be7d466 100755 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -29,7 +29,6 @@ class PairSpin : public Pair { PairSpin(class LAMMPS *); virtual ~PairSpin(); virtual void compute(int, int); - virtual void compute_magnetomech(int, int); void settings(int, char **); void coeff(int, char **); void init_style(); @@ -45,9 +44,7 @@ class PairSpin : public Pair { void compute_dmi(int, int, double *, double *, double *, double *); void compute_me(int, int, double *, double *, double *, double *); - //Test for seq. integ. - //protected: - int exch_flag,dmi_flag,me_flag; + int exch_flag, dmi_flag, me_flag; double cut_spin_pair_global; double cut_spin_dipolar_global; @@ -55,7 +52,10 @@ class PairSpin : public Pair { double **cut_spin_dmi; // cutoff distance dmi double **cut_spin_me; // cutoff distance me - protected: + protected: + int newton_pair_spin; + double hbar; + double **J1_mag, **J1_mech; // exchange coeffs Jij double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang From 72d9795d7f5770ebec94b1198cc97701acf4e60e Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 19 Oct 2017 09:33:09 -0600 Subject: [PATCH 040/675] Commit Julien 10/19/2017 - New files for the pair interactions - New files for the documentation - Spin orbit coupling via Neel approach --- doc/src/compute_spin.txt | 63 + doc/src/fix_force_spin.txt | 82 + doc/src/fix_integration_spin.txt | 65 + doc/src/fix_langevin_spin.txt | 91 + doc/src/pair_spin.txt | 90 + doc/utils/txt2html/txt2html | Bin 0 -> 68760 bytes in.co_magnetomech | 70 +- src/SPIN/compute_spin.cpp | 15 +- src/SPIN/fix_force_spin.cpp | 62 +- src/SPIN/fix_force_spin.h | 9 +- src/SPIN/fix_integration_spin.cpp | 467 +- src/SPIN/fix_integration_spin.h | 9 +- src/SPIN/fix_langevin_spin.cpp | 39 +- src/SPIN/fix_langevin_spin.h | 14 +- src/SPIN/pair_spin_exchange.cpp | 484 + src/SPIN/pair_spin_exchange.h | 89 + src/SPIN/pair_spin_me.cpp | 460 + src/SPIN/pair_spin_me.h | 87 + src/SPIN/pair_spin_soc_dmi.cpp | 444 + src/SPIN/pair_spin_soc_dmi.h | 87 + src/SPIN/pair_spin_soc_landau.cpp | 498 + src/SPIN/pair_spin_soc_landau.h | 89 + src/SPIN/pair_spin_soc_neel.cpp | 498 + src/SPIN/pair_spin_soc_neel.h | 89 + src/eflag | 19343 ++++++++++++++++++++++++++++ src/verlet.cpp | 1 + vmd_nano.vmd | 2 +- 27 files changed, 23060 insertions(+), 187 deletions(-) create mode 100644 doc/src/compute_spin.txt create mode 100644 doc/src/fix_force_spin.txt create mode 100644 doc/src/fix_integration_spin.txt create mode 100644 doc/src/fix_langevin_spin.txt create mode 100644 doc/src/pair_spin.txt create mode 100755 doc/utils/txt2html/txt2html create mode 100755 src/SPIN/pair_spin_exchange.cpp create mode 100755 src/SPIN/pair_spin_exchange.h create mode 100755 src/SPIN/pair_spin_me.cpp create mode 100755 src/SPIN/pair_spin_me.h create mode 100755 src/SPIN/pair_spin_soc_dmi.cpp create mode 100755 src/SPIN/pair_spin_soc_dmi.h create mode 100755 src/SPIN/pair_spin_soc_landau.cpp create mode 100755 src/SPIN/pair_spin_soc_landau.h create mode 100755 src/SPIN/pair_spin_soc_neel.cpp create mode 100755 src/SPIN/pair_spin_soc_neel.h create mode 100644 src/eflag diff --git a/doc/src/compute_spin.txt b/doc/src/compute_spin.txt new file mode 100644 index 0000000000..4cef1c0143 --- /dev/null +++ b/doc/src/compute_spin.txt @@ -0,0 +1,63 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +compute spin command :h3 + +[Syntax:] + +compute ID group-ID spin :pre + +ID, group-ID are documented in "compute"_compute.html command +spin = style name of this compute command + +[Examples:] + +compute out_mag all spin + +[Description:] + +Define a computation that calculates the magnetic quantities for a system +of atoms having spins. + +This compute calculates 6 magnetic quantities. +The three first ones are the x,y and z cooredinates of the total magnetization. +The fourth quantity is the norm of the total magnetization. +The fifth one is referred to as the spin temperature, according +to the work of "(Nurdin)"_#Nurdin1. + +The sixth quantity is the magnetic energy. + + +A simple way to output the results of the compute spin +calculation to a file is to use the "fix ave/time"_fix_ave_time.html +command, for example: + +compute mag all compute/spin +fix outmag all ave/time 1 1 50 c_mag[2] c_mag[3] c_mag[4] c_mag[7] file mag.dat + +[Output info:] + +The array values are "intensive". The array values will be in +metal units ("units"_units.html). + +[Restrictions:] + +The {spin} compute is part of the SPIN package. +This compute is only enabled if LAMMPS was built with this package. +See the "Making LAMMPS"_Section_start.html#start_3 section for more info. + +[Related commands:] none + + +[Default:] none + +:line + +:link(Nurdin1) +[(Nurdin)] Nurdin and Schotte Phys Rev E, 61(4), 3579 (2000) + diff --git a/doc/src/fix_force_spin.txt b/doc/src/fix_force_spin.txt new file mode 100644 index 0000000000..5f4c34ec26 --- /dev/null +++ b/doc/src/fix_force_spin.txt @@ -0,0 +1,82 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +fix force/spin command :h3 + +[Syntax:] + +fix ID group force/spin style args :pre + +ID, group are documented in "fix"_fix.html command :ulb,l +force/spin = style name of this fix command :l +style = {zeeman} or {aniso} :l + {zeeman} args = H x y z + H = intensity of the magnetic field (in Tesla) + x y z = vector direction of the field + {aniso} args = K x y z + K = intensity of the magnetic anisotropy (in eV) + x y z = vector direction of the anisotropy +:ule + +[Examples:] + +fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 +fix 1 all force/spin aniso 0.001 0.0 0.0 1.0 + + +[Description:] + +Impose a force torque to each magnetic spin in the group. + +Style {zeeman} is used for the simulation of the interaction +between the magnetic spins in the defined group and an external +magnetic field. + +Style {aniso} is used to simulate an easy axis or an easy plane +for the magnetic spins in the defined group. +If K>0, an easy axis is defined, and if K<0, an easy plane is +defined. + +In both cases, x y z impose is the vector direction for the force. +Only the direction of the vector is important; it's length is ignored. + +:line + + +[Restart, fix_modify, output, run start/stop, minimize info:] + +No information about this fix is written to "binary restart +files"_restart.html. + +The "fix_modify"_fix_modify.html {energy} option is supported by this +fix to add the gravitational potential energy of the system to the +system's potential energy as part of "thermodynamic +output"_thermo_style.html. + +The "fix_modify"_fix_modify.html {respa} option is supported by this +fix. This allows to set at which level of the "r-RESPA"_run_style.html +integrator the fix is adding its forces. Default is the outermost level. + +This fix computes a global scalar which can be accessed by various +"output commands"_Section_howto.html#howto_15. This scalar is the +gravitational potential energy of the particles in the defined field, +namely mass * (g dot x) for each particles, where x and mass are the +particles position and mass, and g is the gravitational field. The +scalar value calculated by this fix is "extensive". + +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. + +[Restrictions:] none + +[Related commands:] + +"atom_style sphere"_atom_style.html, "fix addforce"_fix_addforce.html + +[Default:] none diff --git a/doc/src/fix_integration_spin.txt b/doc/src/fix_integration_spin.txt new file mode 100644 index 0000000000..15840cbfc0 --- /dev/null +++ b/doc/src/fix_integration_spin.txt @@ -0,0 +1,65 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +fix integration/spin command :h3 + +[Syntax:] + +fix ID group-ID integration/spin style :pre + +ID, group-ID are documented in "fix"_fix.html command :ulb,l +integration/spin = style name of this fix command :l +style = {serial} or {mpi} :l + {serial} value = factor + factor = do thermostat rotational degrees of freedom via the angular momentum and apply numeric scale factor as discussed below :pre + {mpi} +:ule + +[Examples:] + +fix 3 all integration/spin serial +fix 1 all integration/spin mpi + +[Description:] + +A Suzuki-Trotter decomposition is applied to the integration of the +spin-lattice system. + +:line + +The {style} value defines if a serial of a parallel +algorithm has to be used for the integration. + +The parallel algorithm uses a sectoring method as +described in . + +:line + +[Restrictions:] + +This fix style can only be used if LAMMPS was built with the +SPIN package. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info on packages. + + +[Related commands:] + +"fix nve"_fix_nve.html, "pair spin"_pair_spin.html, +"compute spin"_compute_spin.html, "fix langevin spin"_fix_langevin_spin.html, + + +[Default:] none + +:line + +:link(Davidchack2) +[(Davidchack)] R.L Davidchack, T.E. Ouldridge, M.V. Tretyakov. J. Chem. Phys. 142, 144114 (2015). +:link(Miller2) +[(Miller)] T. F. Miller III, M. Eleftheriou, P. Pattnaik, A. Ndirango, G. J. Martyna, J. Chem. Phys., 116, 8649-8659 (2002). +:link(Dunweg3) +[(Dunweg)] B. Dunweg, W. Paul, Int. J. Mod. Phys. C, 2, 817-27 (1991). diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt new file mode 100644 index 0000000000..3b05467e06 --- /dev/null +++ b/doc/src/fix_langevin_spin.txt @@ -0,0 +1,91 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +fix langevin/spin command :h3 + +[Syntax:] + +fix ID group-ID langevin/spin T Tdamp Ldamp seed :pre + +ID, group-ID are documented in "fix"_fix.html command :ulb,l +langevin/spin = style name of this fix command :l +T = desired temperature of the bath (temperature units, K in metal units) :l +Tdamp = transverse magnetic damping parameter (adim) :l +Ldamp = longitudinal magnetic damping parameter (adim) :l +seed = random number seed to use for white noise (positive integer) :l +:ule + +[Examples:] + +fix 2 all langevin/spin 300.0 0.01 0.0 21 :pre + +[Description:] + +Apply a Langevin thermostat as described in "(Mayergoyz)"_#Mayergoyz1 +to the magnetic spins associated to the atoms. +Used with "fix integration spin"_fix_integration_spin.html, this +command performs Brownian dynamics (BD), apply a random torque +and a transverse dissipation to each spin: + +Rand torque = +Transverse dmping = +D is proportional to sqrt(Kb T m / (hbar dt damp)) :pre + + +Note: The random # {seed} must be a positive integer. A Marsaglia random +number generator is used. Each processor uses the input seed to +generate its own unique seed and its own stream of random numbers. +Thus the dynamics of the system will not be identical on two runs on +different numbers of processors. + +:line + +[Restart, fix_modify, output, run start/stop, minimize info:] + +No information about this fix is written to "binary restart +files"_restart.html. Because the state of the random number generator +is not saved in restart files, this means you cannot do "exact" +restarts with this fix, where the simulation continues on the same as +if no restart had taken place. However, in a statistical sense, a +restarted simulation should produce the same behavior. + +This fix is not invoked during "energy minimization"_minimize.html. + +[Restrictions:] + +The {langevin/spin} fix is part of the SPIN package. +These styles are only enabled if LAMMPS was built with this package. +See the "Making LAMMPS"_Section_start.html#start_3 section for more info. + +The numerical integration has to be performed with {fix/integration/spin} +when {langevin/spin} is enabled. + +[Related commands:] + +"fix integration spin"_fix_integration_spin.html, +"pair spin"_pair_spin.html + +[Default:] + +The option defaults are angmom = no, omega = no, scale = 1.0 for all +types, tally = no, zero = no, gjf = no. + +:line + +:link(Mayergoyz1) +Mayergoyz, Bertotti, and Serpico (2009). Elsevier (2009) + + + +:link(Schneider1) +[(Schneider)] Schneider and Stoll, Phys Rev B, 17, 1302 (1978). + +:link(Gronbech-Jensen) +[(Gronbech-Jensen)] Gronbech-Jensen and Farago, Mol Phys, 111, 983 +(2013); Gronbech-Jensen, Hayre, and Farago, Comp Phys Comm, +185, 524 (2014) diff --git a/doc/src/pair_spin.txt b/doc/src/pair_spin.txt new file mode 100644 index 0000000000..602eec8ec3 --- /dev/null +++ b/doc/src/pair_spin.txt @@ -0,0 +1,90 @@ + + + + +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +pair_style pair/spin/exchange command :h3 +pair_style pair/spin/dmi command :h3 +pair_style pair/spin/me command :h3 +pair_style pair/spin/soc command :h3 + + +[Syntax:] + +pair_style pair/spin/exchange cutoff +pair_style pair/spin/dmi cutoff +pair_style pair/spin/me cutoff +pair_style pair/spin/soc/neel cutoff :pre + +cutoff = global cutoff pair (distance units) :ulb,l + +:ule + +[Examples:] + +pair_style pair/spin/exchange 4.0 +pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff 1 2 exchange 4.0 0.0446928 0.003496 1.4885 :pre + +pair_style pair/spin/dmi 4.0 +pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 :pre + +pair_style pair/spin/soc/neel 4.0 +pair_coeff * * neel 4.0 -0.003330282 0.864159 2.13731 :pre + + +[Description:] + +Style {pair/spin} computes interactions between pairs of particles +that each have a spin. + + +The {pair/spin} style compute the short-range spin-spin interactions. + + +\begin\{equation\} +J_{i=0} = \sum_i \alpha +\end\{equation\} +$$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$ + + +:c,image(Eqs/pair_lj.jpg) + +The {lj/cut} and {lj/cut/coul/long} pair styles support the use of the +{inner}, {middle}, and {outer} keywords of the "run_style +respa"_run_style.html command, meaning the pairwise forces can be + +:line + +[Restrictions:] + +All the {pair/spin} styles are part of the SPIN package. +These styles are only enabled if LAMMPS was built with this package. +See the "Making LAMMPS"_Section_start.html#start_3 section for more info. + +[Related commands:] + +"eam" + +"pair_coeff"_pair_coeff.html + +[Default:] none + +:line + +:link(Beaujouan1) +[(Beaujouan)] Beaujouan, Thibaudeau, and Barreteau, Phys Rev B, 86(17), 174409 (2012) + +:link(Perera2) +[(Perera)] Perera, Eisenbach, Nicholson, Stocks, and Landau, Phys Rev B, 93(6), 060402 (2016) diff --git a/doc/utils/txt2html/txt2html b/doc/utils/txt2html/txt2html new file mode 100755 index 0000000000000000000000000000000000000000..023631eac1b472cdcaf4e8c4757c72c386446ecf GIT binary patch literal 68760 zcmeFad3;n=(l>rO$%TMGf&&PM(jp)rOIQuE*Z~?k8ZZxwGH#ua1c+uc>0n%NA|Xf< zq8SDp#4Rc+cvr%s(Z=bn4+?VH~@(`LrlY|8w^sHuv$+CC13^tV#YaX}r2N>-heL-kkvR0n7o z_-E=lypQqEuh-Gf(bOx#LpqxRf)g68}wVwvWuwzxg7cAL9T=yn~3E z!QVkD)vNS>d$Q@cW}{Z9+34T{lU^l?CN<0b56Y3Bzx0zRigTsDXmJ@L{+rb7hf#UC zizbX4m6tstFSnqyY(!b|gb@?QjVvh~IfmO!_DOfvoCREy8Am%f^0^28Q4Wy&-Ma5r zJ$cj9X^9(_eYED9elPdEIpYnIrQo00Z{@Lb)i_&XEMYV7ZzlddH0bv?c6jdEf}v-v z?U%kT{`-kvSM?j>d^_#N)axV*pcMA`D;zmJ3?nul6-L58hXaxDnNjrr0b7yu=R~QO z;$+9a@K1jL_HYpVefSs2{;g5)XQTLebrk%!QQA8KoffIy-cjsKjAG|V6hEt?*olo& z@AXme^eA=)MbYma1s@fqzrK&suCZvB9sj~Vv!du%M5*`eDEOr?Y!5dMek=Y(>KAtu z|1XMyAB^H>V-$Q)6gvx|_*DUS46=G6?2eGOuKO7ThUzn(XK? zi*pOI-EhX^E?n$Pza)z+WM`(c!n~5AG{U6pIMOwB$k@1&+?#UP);v#9UTPL<9-Xx` zv)Jt^&dl|cq-HtiW#Y>@Z&B)e_xvRH{LyX{pEuS$_mX)N5RWV7%qy8OnhdzJ$}-)> zIqbCQX>oXU<2AxA&Y9;)&MhoK150wor55CRv>mcIA+x9`M>`5rzuYr+YF@JVHGMR- z6d1KYT)H5uFuy3XILD01ypqg$<}rnX9Y&E73L-p#lsIO{3~WkVbIY8p1L=gkoPs5u zrGYNdR&*mtTvCdhDt6|J%?Y^$B{{_&XMV6>MvvuAT%22M?L`jhBIH$pJ1f(ZwUn~4 ztjt}MQ(RJ5keQe3xzW8WN&9JunCaE%3oJGZ3a!~ua6`B&W+UP5xa>?%rnHipY<3Go zqbIOQ&b1JW>?wN8^pipt3>A({`}0aJD9%Cam*sHu=6S{>nTf80=*}rFE-aSFgl9<5 zq}g7vo1JH-`}mw<4A`<hjysN zHx%b$SZ8_)bJgOa;@kqyV$#nqTt+IzRL<=t2V{cD&&)+t#W^`@*7WJ_u_KezthCf= z)7@i6ju|;#O<%Y$Wm>9x^vJOqUbqk{<7noJvHTax$3hav(paqfWAKl@G5N`HXjv^Y zHAy=tCzLG3i4D><@K66|14{o$P9GcodmF{gb$0sT8&9Jv$kkfR@~HH}eCj$}A;zhDAt#%jq3du;h*6J;{_&j|q{i2b9r;Lqndbw#ymVS{^Sna% zbPL|QA%i)xLG_y-y9KA{nV%sRJk|t3lPtKn$kJpBPIa3fhXuD@Pr59)wO#2J9Dxgb z7FzJm0aU3B3yzKme3n}9E&)`jA`9Ntf|ptFZWg@Uf+tw;)fSxk&HU6@@a`rEy3vAL z*K4&F{5KZ;Ef$=vZOu=e1@CEspxZ5YFALsa!OyVZ`z?5H3*KbG`&jU13r^R{=BLGi zpJ{@iJ`0{=!P_jjxfes?;}-lZi@w^G!5rlXUBjB6cnfYfLC{1CevSq2ZNUdvaJvOR z*MbkR-~%mqk_8`R!ILfcU<>ZB;OALzmjxeU!P71HPz%1$f)BIc85aC}3%=BX54Ye& z7JP&SFSFpIEO@yEPqN^vE%;~)USq+>Sn!P&oUU!nPpt*#DPIIzEckd+8MMxVPq5(I zE%*f%yupGeTk!oBe4+(!vfvk5@Ma4>%YwI9@JSZjXTc|1@HPuR#eyHV;8QKQ+MU51 z<^M$%Jl=vkEV!%Uvv^mPk^i_|xhfkxhVNzwT@`!d_h_Z|@rxj8AC!&ng#Hd35xe@so$T@{OQEgl<#*i-l ze@#41>3+rh5#nho_qY8FV9>|J(-iJ+Vg4ZTG3%)d-LP1XK7=64fM zQ?$R9`5na5)axl15yo32Q z#M4ykPhx%r@idkC?abdqJWZkgMCOZ$Kbv^P{I$f>RO)a0iQ2!2csube%wIt~O`ZNG z=I0VWfcOUHFD9O*N`D>m(}<@j(qGH`g~Zd;=&xaZ4DmE2`pcOgMm$Z0{vzfF5I=io%z#=rzy|xV7@c)=M$gAd<^k4#rf^b|F8u-O>O=}=D#L>B=L&*BgE4b z=Wjc~{ZBkiZT=SK4-!vPn!kzpH;AXH%-_KL%f!ZqK|D=a{u<_= zCZ47$e>wAy6Hil=zliyVh^MK^pTYbl;%Q3qr!&8fc$$j*4(8VoPg9LQiTM@8(-h;k zGk+8DG`08>nJ*@urWC&dKl<}j?}2Mv-j7`shuYHTr#3d!taB(=<1Ras#_GNf0Pnp2Zg0BUe=~|C^jH28P_mJ7dCFxe3sUCK zbKUk?vP~)P3tKS^T;6AEiBwn8q~P*4`p*54*)|q7`g&-#MOZ_#O~M}gft4GC{ZzAc z!Zw4g;A(88Gcg&*!+n=`*A5zl^>9J$tV6JU2M}dQk36cSLj%$#lKvIaouusRgSs1? z&)`rsI_rqI8l77-yO}inh4`*=Zgy>SRrh$26{;$^c?fxxs{ety7EP>0|5rAYc7ZW2 zHty8Lev)FjTr8n-CoESv>na*-){2~4T;6xc`svghuXBrbgtQ_#Lz*rMCMkHG4KNsH zt-4=~tIF9xiXVPYCSy-&F;OgZk%q$`+kUiKym}RNRXFQx70%7JR_ctKABor*Gtfv# zuNG-oXAFi^cg9+{M7E-bJ7JreJR)Ib9+Ck{RU0VXhVJ$@RUEe^RNjXeHacIW@K-rs zb!9cXIE|HRNpMZvb3mwSS4(VbM^|G5GLuuY`FMMKs&{Xyx8K0o)p-Nsp#*;4 zZ10z?iD}+;-%^rSG{&b^d|^wi__@9GNNV*AsCk{+t13C$H~+5S%e@@)AH3ZCT~sd{owcZ1wN9siEvQA-M$Tl&Tv>0ps=K^R>aMB< z+g-MoF@?Ci@A~G!e1)?X9aB5W`RXmtHahPmCI3}eYBV}G(s846J(1SARnGO+8YpEj zP3~7**qxz#m!;zbz}OtCaNm2Z3sC068S+y-+r7grfKJY>g2glf?w&Ocuz+U0)?7Alsn zj!CFofg@Nq=f;Pz{PH?iRykMFsLg7E$j#2d%2c3{;$YXAL^#<)DSJES%++2+& zsDusZp@hnj+TWPg-AIXWEBY8}uGWED9NRHL(o zeDYr&M{%oBp26ZVpWy2I=>Yp~gep#*?VgU?DP39(4mlF&JTVZZo#!A({vWZ@CflW< zwugxAvrc83YKvm~MdX720kQ3|N6~tKv~Gk}NV`T$-4F7xa5l6iyQ*e4m?|+;srNPN zs0>Otokcn#X2~T|(p9m%p}llhh|V~%{#T@u*I6zym*jvc?RgZ^%3G*=t1CHw!jj|= zXJRF1SeWP~h^kNNrEmg~A2eIszb^8W@BGhB%N7np;* zm1UIA{H@#T;E?HY>ph@XVo-K+jg?6(ttO=%lh_&V$Y(Dh%Nw-R+Q3_Nlvw~PmwvgH^F*#-eLdz1&PejlM13fSeE<;(zEpjn+kjXt+#x$_`R2g|+cFT+qw^)}9~{M<7%&D-W0y2s^h z<~106POZMmP-zoegHE1-f~}vYd4Ejve(Jjz{`sFn7=MLRpm=Mb!#u!}U7F4&EPov*PB!E!8Riv;^03udPN6bojCc&G(4 z`Qm#(9CdGaA9=Z(V%Rii_ zUEUY=)8&Wv*#?kC=VvsXHac7IjkEm*mSJ9nte)=pkkO%R-`R}RYgVO+70W+Up3b_T z%W2AGxHF&I`AQ7or1Dhs8Wi<9TW(w4(vC4(Is|L4A2-@zb=MBsA<&~UgT~)pG*(|> z4EwyjeV?-xP8}krT9c}rhg=&IwyiYC>T2h^<;&mg?CFK?PM$=3_rJ9RzJFI5heEi_ zIfT)3Xp*z#mi^_+Tb1W5RJod}tXj}qztKALtV50BYQ1?{ox@F~gfLrhFTBB(N$F|a zY{T!RI7xuaQoTnc9Lmp6ymuQt;){V@E3vO{CFBJ0oN`4Y1E>>(NkCIe#ZW%-Q`{Gb5%Kg=7ehc*+MmWowx{EfPYS3pxKR| zv7ilI+18G8JNb$$uqtO8PFyc>{^$*a8k%`uxP`72z0cD2jmx`XDU<39BGr{Od==d2 zd+P|ZMZ%sr1FdRw`p7bx#zn)HG}E+qO>m;Ay|nY+N!9-%Hv0Te;0r#ZOrX9$yKY9uZWY^>DWSb`Tq9O@c};@eP8*>eYzg`bc0>hH(8VO zTa?nn;Y=OKItk=0D1-#(1;u_>^#;bPD|MWCu`-52U0rDw_&b#kZ+gSYO`om}>s69A z$1Sg7a~rsX4z8D4gfoVCbOkD)VTVcr@!&Xz^vE;Nq8=HlGdSK=;q=*RT9^9wQwoRs z*L1Rf5BsRr4J--injfeyFe1gBS176$SEOqyIBQix`^ikts+=u2;bSw8FM2O$kT00;(x#_{mm9|_jlR!5 zg}a;tAO8VKpw>HR&edz9HpEOPK`%7E!r5Z0GJ34HtBKB*gtaAf)~T*+k!EMZPL**C zHYhc)eXv1G#G|vOajQ-3M>&|4ZBqC=F8rLOu$Ju8SMDt-T-emk)rCXCkVEzn2Ezj* zmPpKIoFg%p5>cXuh*C3sBh6w{0>yZ*pjWUM<$slNmiEnS^uPfozD>A+0An@O73b-g z`D`eJUhIP*MsrgAaKSqvBmB9R0;5IHgm$687_-1w!JDapRh2ZO?YIC~ptGMsoc#SQ zmL^MyRbiGKg5P1WG}CG+hb+C_E7*wHQetwLrAq~$VX?H(YUxa}RAsTWNJ@O|2yI=C z;6I>%*}7}3mJS?-r4);$A}O&Y%uCM0uE{KMTIvVyVt*$xW7C$90OC%G;#G1Z|0~W;hGCTT2b4Qg>TQy&$FN2B~!b z>=Hblf=IXM%xd7an5o`)8pf)&oE_;Xy#8?U#BFGIZ5HI-kRN%nr!IpOwL9#9|QzAmA zm9jk<%9n_iBO`cnGy8TpjF?#x(tWYi;1Y}VM6rGl_sY=VldM0jEwOd8OJ9Q#(|Sm+ zJ@PTE_q165jaa`WiuL&x>t;_DS*(Y2)-1CAx9-8nm?!G9**Z?iiuRNa;f6vvju5Ai zlTq^|U^u5@>kW&G`d;GNohS?}gHC$Y)g;<6fJMA)I)Gb_Qi9G*D?cKw4Xms~F3a_M z$Z4?xy{n+-?_zOvsMJ;hC$I&(@>84XYGnjhM+96=Bv(gC;X?#hSEg%MNwi~f(AB}( zRf5UY_gdIhRt|Bs4Pi8`K<_Wm^Uu@nV2?W$N05d@?*0pb@dYu%(BRa*onZ=S26=gr zcsW(PBtNRFNo4i1Jeln~v^1Thx_KP#MOvDqrL5#VDEp>cw9Kw$q++!@MC|I=kkXDz zg0bmrDT_A0@F9nQs{#9@W_5Lqz6Uf*zEL1+G@BvpZOm?PP(>ke-N?C7$pRGnE%f}I z61cTBP_9px_!Oa^CD%4SEoRM)bOS5IcBRXlc?-GDeKX`n3~^$Z8Xk= z3HsF2YGLQb-Ix=u`WFf`R`_raF=C(g54c_nIfkSg zw3LUxgnAAlU>1YJ{dH<^1z;03OBGRbY+zfj`!!wv;aIaFP4Fn#kR{DrErFDRJk#uv zal%-mZ@sit>aGOq-`Ig0$w`nW4Zjyv{MwP>3b@r0;#SkU>=uFK7Ej>AwObl%^!)_S z{fQPo3dN5e{|i4Fs9SixYYXwirTrj~{NOXkX5AMWYxI?pAFGXEJW9lmwXpeXK4c1T`dDt;as zErW$iA-f)iB^oTWAfkzu1|{9tucZvoRg zFA(aj4?d^XaIe!|GMj`AMSg*9N7dd~2<+U_M&Dy^lkw|K;}|+xvQM9XGm^NyrnaA4 z`4wl1m#8>*dlKpkj*9=`T7SIF^qSB0_i|nOR;S+X+oT5%l_lq|<3PNKQaCqxjpwO& zu!*xF^=HJgzYZ!9sehW^A_3oXsV|fMnSpvk?!?5xQl$Q=iQGRcVYA9urrmOF4D^rM zgH^@V==>_c&||^zlZ=W{hUE1(OaE*}z52p{Yi{&q!4mb)R2Z|4pYq84 zbLb6fOfT)0rGFgMs231{D&za#nJr~7ozs@a51T~O8eoH(Sca;pfA9~04S346(9^cA>IF5@A-U*(Dn-ss z;XdrIo%0&Ks9>-`{UL1~51>W5=Ys>(Lb@gJ)^fY5FW14}j?PiOkI`zq8yrt@(7WrL z=YbV(0&2#J_wVQus>Zas9r_hN+DdIT70&l@d+hy5&O-@nA3REKRwnX72+x0_YRh%S zGkBsH^Lj7QsDD)Q;Ik&Uytw`euzG^73R8Sa6!(zglzQ4`(Ta=06t{`uCQ|GXUe8LP z2x2Y98hKd%f@r@CE6`Qsb@lAp9WOD?tB!6|Ji42tA z(Sow|)WK9@4wtCp5@6do2)eOg+cazT*hiXWw;_E)v*ak5;`lE^sA|abAH?&2Ax7xd zp|p8Yx)9PLlA6^&KoP{)Dc^&!^AMuK$w>ytV#@18DLF5=8Of>ca*)qDIh|0}$$1@V z(fyoB&ZdM_PHg*_=}1+Po%0bQq@$Kf#4mGBNSy4P%LJEdI6=(Vy|8zRv>y@sU zIE+gCKgXGHoxraX{AmDg5O_PmO#!$`;0FnQE&#U(yoTV10&ttaB?MOmV8x3i?Eet# z3BVbm?Iif>li-mA&kVqcV&n{hM+M+?F`@{j7i#Fno3Q^iz_tKv7b9-~ZaqV*I>bUf zVe*JWlIT4iLGLb$on{{i^)0Nf=uH5q>~_fQZCxRC-_hRt`Ybq zg8vbK&5OA#s&ZQZt`+SxXt&POhU)}NCQN#vL9l@qtWNw&Busj+N%T&r;^vGjxmGf$6q0}DFmtfe`slJv55jY=~0dcx9m1w6lJ5Fif*nNxNeVbX^tmQ0v9 zVj3H0!4jo{L-72QEk`c>qzAjCuRzLR2G0(xcJ9PO6h7q{!snOjbkmruyZ%S3 zO};Ap7QSboF5of?>_9chdtNpC9i{w_5MMPL&xdI5Eb@CGFJHd%%2GT@6jT_=p0j~X zh)(Mgs9YVYGA5{U1F6h_%FUrF7X(%2lgc?zSzdakwW3KumC@7`^v3PZ!yE91ONwLTw-3XWD+h7`Dr-wvV8sww(yu zt%j>2zXcDQENGEN2C~gYRp7}le!`@*87-`1PloPxd2wY=y-!QIbo?+!Kf_z~tl74i zR6iarq0pJbfcJavBb%a*X`z5y$IlV9xU6<5miSqMe%?B0_lp}_ILvVk{66Dd&6?-1 z{hB4$XfA(FcLG~GsiBjp=Oc}lJrsf9sCpGAkSb$SkzL{EFDv)bk7|t7;OK+)mdj-L zuRR>MB4J+xYq>jfANO3s%I-EU@nbepw+#VS{xPW+P5| z6s{pHY@kzgt2eN*AH>)Qcmqs}d3)Iem8A~q4VJF}DQtloMJw>D z7u1s>N)=#rD0zQ!uASPGu<}|R$|TXcnzUm6h-*&P`r@oWC`qF}4ic(yFx31{QYhmC zy1T=4JB#iQ_;rsCd-s6uU0RpI&USl zM62kD^>c(qhy6D?9K3Wwh^aMMVr&~Kp#WSFe8 zRDcjsyrp>*F%MYoBkGSpAAQikN<}&sibzx-PMxEj%FrV2#cJzM3-+*EmFXzs!p&oH z+Hx&FT}!z%YClFH(mPV*%%@-*oz3V!Jecm3-vnm6M&A`2e&>Gw7MvCvoqLf`baveDb-qPUHYZe$0#e~@#%aS@j;DzAB>eBL zR286<0!2k*HgE?io=An%OvOi(oWPU|I=6jRv9l|#}nHfn`u2* zHJcu%q!&{9uAWgl44_x--uNiD@1B2a^zZ^pxTm2nZg zz$V@#XLIQVRmN!c$uk12b!7!SD(3v+m6si@u5i9}8d8D$^bf{2I;kemNscZAU}MgV z6nD}~+z`D#cOM)IwSQ~SeglNCZ-_#q?)eES0qc#vZeY24Y)zCtoHP;B@!{X-h_#kl zVqsmD4n*6kjFHz;x0DVGbJteZI!xI%l?kpcb=tq&tP#|^y21|W*1O#+G1s+<`Zt`0M*O3y<;)h2!ynAJ02lS-OxCHW_R^Jp`;b zI$y%%h^5g8DNt`d25bwKs;9?*slLyj!(!kQc&FEET&Xv#y!puPF6hE0)mpz$%0EHn zAExs3h=Z;_RhJ)T)^9#3bDO0+JpfAe=L5s`JMXG<*XWzA z*&4~TshX`7c9dr8gtcq7LD=qK{nt|F^0uV8Yw`oZ-2-rwXn(RD@L`&CSi42wR|$SS z0JjPJEMRkcNTEUG`hylMQLt(YW*6*6GD*MU)iosvyvU;JkZR_T>gSXhdXHCBFR-Z6 z@|0>n*McQU@dPTqDNsB^RF5O%=AK%*s2(Cr_Pcob36o8P;oUBD&(PF+p0JA<)623y z6EH{vyiK@?0NFRJCC|JBh-uSIsRhdr7cwnakzlheSh-*m3A;$UWfyD^VX}3o1nX`o zn<&^%+k(E-2!9 z9KY=<;~vn<_9`8}NzY<9(Ct48)oWnzt3j<6gZZD2s_2KV36-z%3_(j|C*sP}N+IZKb_jRXwMW z3EYb1I3@aDq){Tbe&6^jic@>!cW%15jlRC*Gi@wLKo3$i6}~vE$$k3AQJFB&< z>V@F1)E^*|)p$2d_3Wk{b;0oU)E6VbX;sVNJ478#s%Y_c-H;|a-iqVa3m|FXKCl>R z(u?I5i;)MkkrpagqK)v7xd49Dn~%l4%Z~d<~%tOJ^+sAF<75Iy}rV#kkiEZnUU!tG5v#W1L&_ zh(&{|TOTxbHyOKaFO3Atz@XpM(vN2`ki5_CrQw8GUnZze|H7;}u{IN1Rms0>gL5xw zX`2ke9bo16p#CNptuh)A61=PK+$!g1mgiH_6ChKQDygpUC0@eHTRGG8ek1D0fzd#5 z`yQ-k-$ZxvI)UQ@21^{;Qfh&@`X(KJ-`ObUe;N%9E&E3*YmV{9by-@Ia@n_~?8kM8 zDIQrBpSjX&s37fRQKi?16*M0q_!AX$gcckGT`Kc0$aJ2(c@^@c#hNG7-#Sk^>WC&$ z`0+zGYSEb+b*1DjJmqs&bv0>N_d-7FL{jtpEQ#EGJY1fo?w4Y4W0j=>us3LyDk3MB zg5~8j83^o!yzvxWihYLP=(WN1iO$aw)}Dg`@}pOO7tFI&M$fCwuJ*|uFZERp#&7hl zrprS3)+DvxgnDS*#aqM~RNRLJH*b28b3cNSuBH-!Ew8aC=Kq4b+FEuim8DHED!VhR zthojD-IIYdv6d~Ova~5iWh-=9N)xWv+!Fgc%2JwG3tm74X_Jf!UL01?+#*{+1(7D! zfzSai~s*^B&kkqufZ zyUd&>cj!c50o-sSre+0T(=}^$R0>#56Gdr~EeZPPCn!yPNRv)iQkwV@*8ZDTr~C~6 z>fPwhiD;y3)wWR&nkBDC$<_kYR|I=INHy>{?lYX%`gI(7m(7~>$2w4B^)qAgwitbq z*jdN^XHXR2e~pe8nJ4x(u=49!|L-|*@H>2ZJfwlV{0kyz=Bz$#oNuh-l=F%h7 zUR+l=YXW|DVLx$Bte#zC^>99W$h&FOWI2b~**$&QKZ?eiCleos5I^)crv8>fh=-ZD z33S%fZ&RvYEYZG)pW~)8ro1s~HqHmU1w(@hEe>cUmx?S=zJX0hLmn+qwh?X1#V?@(QKmh!B1N; z@^WkxNm|v~1wIVeT%slk_J##BXR3NC-h{r>#T}yhm_;>Rus>KZGlPFe#i{FcaWhYr zT2zaq_^1n^)0 zGyA2{w=aOnttgaz+Jc$ky&sq?haaZEiv@XuM&OMK4!lvJ*<1RS%e!Dd?_FVa=4`H~ zpE8hFLtw>=wGH-+@isneR%$T@2#dX3iL;H$kh=eI)TD2P(jstw6;A$TBe31krpg9u z0OM?uv+Z}?0vz7j&^i@d8&;0TTgL^8g=+L;4Xh)VcMj;r4JJ6G?)0RHGtm}a)DbEtY^cP5?TP`y6cknMJ4`*BGJM(eTSEM_-ta>G>Rk+MXugcLvN^|tmK-x zCX81+;TFtSt7IxB;s}zeMC~L`%Z~$1^&YWBx_$CA%W2USUBU0K)cHeiwb5yZ zs*oMx+q;{oyQxKJTcdA3v3Lj2bW{E}0C*v(DNm;U4JOM_uxWU~uzq9aV<-5fvmr0c zLt7Fpk6~4OmW(Df!-FO|!@w+Pqi+*R%0>ZXSdTpnp5APNHHTCy_9jb)hm6gTaW)xUqhlG8J>CWH!vrVK zHPm@0C(kT`skcLt=W;^np?kBunLPBy^W?(p2X;vUn&zro^v|7EBLo-G^UO zD6d*oykm;>yAc|xDZtn)w?H#V3LY|RlLsL#?JA@+RS z2i56#2QjV1c+^eNjc$7>a2^Y-**hB(3;m;kDYF*ZHy{x2Kp$CJ|3impt*7@|MsK~V zDq<_})^Rz&sqi8STr-XQN%L6wE^1|H#us zZk;z#_Zpw2_Ld_&t8tD14cV8kc!4(EaT8ykj-9KK0;rG%4jsl@CYDLOKcBFIABnHh zTeiV1<8$ukc^`G)9mAOEaPGl1aLE4sEI14pxh%H5I8D%5QY^1}NB1t4!|mz(Ki|Bh2Gy`%AkL^nX_Hd6v!z8dIn*$ELYVH?a4kFw4kv&3WqcHe1x+$J&eYlsDBS?D&$M#!4`vwmTV7z=;HsV+ zgRt_hf^;;p;zP0>czd9BqZ1pTE&p-~-2e_pl8y)hvjDZdM}nWU`=~gWH@2W3yT6YZ z@;7M*ke8M|4msxnzbV1ehE*sV7-)QkLdy{Z4%-bR)cq42jh53&pkTZX2^Z=@$;E}p zf0_kg5vL8#d)nO!yy~?n`u>zD+3GI>5AaD_Meo@4!xm&S4p0n{KWYBl7)X6cIq%mK zBIE2PQ)*ElU(%v;vmRb~?KlcOm*K^-ToHOm@yk*Wj zsQK_Yb30$f0&}KUJK#fRm(e+ER|`TD^y3;fenA|F0y z{)U9%<1RR7$~6ZH#D6(|Y^mrcIrzqfD8Jr&P`WDmUto2l4kMDPP5ydcU z^u@7ip+=vtjg!x0-(wc7sYagCV{B(Y{~zUV%>N>P2L~$U_W$Snr2>}xJ%iX_ z{th5ExT6|%6wD2^GCkA^{ZV_1m0y^@vr+0l5WGr_qwX&jb0z`FkCvbEM9%%-@@-ivLai;twaE zJbPn3EN6r89Wp(ZII|ml>kz|Jjh2(Qc)nc)H_<<(-m2JZ4_+LEown$O_>rA&?afn4aQMD_C%Po$Z1h3olDb^Tt*;tu zH6hXKjV9Af`fX4ncpZWXDv`2)mc|ozmvo?GP9b!Rb@n?RIEzW2G*P>8!qn5X;ky-m z#D-}11GRk+>@%q?%6XsXyOVmbGU#krJU0d;|3CHM0&2;rdT?-{Mm`N#l7%j;PPEeb z!&kN71g?rJoOoK2&L6m|Q0j})Vmgn6-nWe98q9cy^j;Eqhj?}kIuU*@mLBOrnwB2< zY;B-Nusm(_rBz2AMJIdoPh3Gr?u8G{Bx@A*IotK*&D+RmxIWDd3wRr49pLogNoNWa z9Q%>ioAl=o^aV4uqawe_M$yFE_?I`S(zja2lIBou5`~WjDr=8x#j5l#UNjY}Qhyau zo?Ht^HOg%wSn7^JY`rQ+3@tO!c3fJ}r~fbR!S8>0yli~33yl}OiuV@}^)Z3q;KXKbwP!MECyP(b9BaBTL8mmMQ>bUC6YwgX(gW0yx`S4);R4h_W_SL< zj}A&)O&znx=OVf8pnuR|NC$-^7OHI_yOup-dcI@;{l*^k=ferDVJ1Q~+si+Wv{`;! z{q9|IPlr_hjZwXxhjwXGT2&6VD-Z9)&W!T?@FBbAs{E%1+e%o1dhtgKKlD9$J1&&Y zZ0(ckeG#gJd;-NZFK29b?R#%b`YBic;vAvy1v>fEjm3b)+L0RKNrF?yEf>|t`I?vZ zM`-`0*<~XFui*9TzGR9s>C<&_a1X`S6sVU@c*nyh^A36hqT2#@EL;I+qprZNk$p}X z#+L??g|}ud=41(6hgc^K@|&j4qc~`xmbT(ouQY`or74uVkmgZpe(7P7=n$V`zIUQ- z%Nct@sAuPa4W6;F>w40BAJQ9`(;|&gjJp3t_w|SWmhPkXbkN+zmrH9_NpA(WOwga` zD?SrY+}s?)n-Fv1%Ypg1|Otzr_2;u{}_-G$u+K!)9A$ZHHcda`2i$b|kY z(I`AyMSo8ie~#DNo^n~L_gKn;RPWm<^V6ya)t+z1pA4=Zu?2Kq+R%TG{-H;?tg*V5Q&ep?<*M zM3+B-Zlfilc zRcB@I)LG$K;?8PNNoOrcPnqSkPn+vZxrCGfjuI2fId|@*b1$^dgm?C(nI(2lVd03p zLR6M%FYy#ptt0HY1zE*8nI$>)*(nRtQs+3)40Uc3|8kD0~$a152Ol zWR^&lnmpY(XTB3^lSi3H_}ko*U84!1@1fOp?$v3vBz$Q)2Wx)Q_@mr&6%PQn)xZy(wuf> zpLXfo8P2&=l$|qi{tPr={#^PZIVeg&l9`tm%$Jb*vn(}_9DdO`lP(-G6hAGwc{!p^ zJwRWG-sDmE8sHAeqv?gEdD-@YLJvk7e9zDHWG$r}9AIBuSZp8QrnIF7ne7hK&nd_r zQMh;nrKhPmK(`(7e@PA}{Gvj&sLQ53vrJcX8P{Y-4osdu7hyAdgysnx ztC5(j!rBvzOJPwCh0G4WDR3ic(mOeNqJ@Eq;OHy~>6c#>pRCN;!2prl_{co*>+CEO zLumI5wJaygQ&@cAh3?sI%+-1B+=3F!yJovhYCAJ_(pA_@Spy((d3*a794Fq^-d+a! z6KE0k@#1RQ+iO8T!!F={&>8Enm;^loKf$7RPY>DO-kuDa@=AMq2I$l`@pt$@6W?lY zAJPkY@4yb|a8TOs`z>f2XeDSO?EDcl3G`9WEhtCtd8Ruk2SI(HKZC~OK0(I2&;#8K zx)5|oGhV#~+61}N1-%Tk0kjCT z1(e?KuCPEk0XhV<*ZVlhg3|lhmx4Y7S_66*v<~zrXcOq!|3bS!>0SDX7;^=nNuaf$ z>7a)|aUN5hKR|iVaiDdei$R+}H-ol;)`KSEiIlHFlR%TO=1m8^7_^4$Xtxb?Ddw}XBS+6;OwHldG$P66$Wmr!f~b$~tvngMzUv>f#GZxA=oai9&L%RpN| z9|l!;^TuC5?VulnIzV%eqTQe?L05yW1Kk4pDCmCBH$i=%AA!c>6)UG>GjRy$MYO31 zdIc!`S*N9-t3hu8-2&SA7}^b*1KI}qGN`?$Qs03(KnuTv-=Ld8%R!HT)`E^W4!=Pw zL4BaxK;tp4`_ZEepf#X1pb9JfW}^7OJb!FA%~iItMBABNI>y)7IwlfM&*|0N(%wEy ztMGSZeWeD9enuH$g}Fm@OPtxQ_r(dP-4I`{F6ujJ*w}$QZ<5U!_&5JRd;17bmC`M7 zRm}9R9hRbEuq4mMzf8!7g9hYFg7TGs^C3sq1m&}X^38zVkRxS-^3Z~bJqMap z-(LJ{f1^IJuLC$tL^P?;5g|2KLYZ8xHLKTdV70ct9${Ab^9T2JB9oz$d5oyZ4B6V z>+*y>kNUrWd=ZZ0E_pWC9%n^t%)+1^y#sbgljvO;U5|d!xd?hWWbe8#y(@$EjzX^% zdRw3u@QdoaU+WM|@u6pP?Z`Vj0cKu{9qxaT^LR4lIl+3af_xatue6q*MSUMrX4XV; zpeKD-L2omT<8BV~dz03r`nJMe%p1|;`6}ccAb-qSAGPZ~vo_tXqtIIgJ-b!U(yktH zT0X=o&kFi64)QxtK3ZPPhkSJu`9Row2KBFi{CXV6tqp6hWnQ=!c3zEQhvM-(v<9o{iD#iNji`^PBDMGf*bb&%X<{mu@|eggn~(GXwH|kPo$%&kmN)hI}yO zgRSz+pnN6d!%tCuGvpH>A7d?_A1uEYau?*${67SF-YM#j!A?{R1KY4038qAU`hGa>_IE-v{|In{%0{}$wnZHt z0y$lKMT_&jQa)OopNISnl#eEVAM)dnM~m|b$UEa&?mxwOAg=MYLN8jJXF&cmmZL7$3u|c4|%ll9@j;wjgUu*6XnT3$o~|j zJmu>Q$RCD0WF4&6Ica9blAS#0y&1(0$=5>u56CaXabTV;4d&}s$UlWV+I7aOkROFS z+Pw4`dj^vp^diNZ z;&cM?qo?qrANDvthMcdF&Gr4I!8lHa{2j=n#qlc0KRJc{TOdCGd8BrdfA>oL(d<7D zIsM7fXzhC+@*}6H{{-aCkVk4C#rZ18UxoY*igUlPIIj%GVFvbc#(dP?ekJq*eGzjR zD+~v;8Fum^&mlYGEOt_>W7o!27%{SzqT3Y@Gj) zcf`%VsQC|hKggqMTdxY9VVT+bbXodXuy5adtOHUbp0wZb>QKhD_^b zpVqB6^rv-;=Y6L%*s*`o-cIgXKX@1NQ?~OBr7kp@&s3?#-ZRxgqwY+##JKlNwai$3 zrn=AeWZcod>abz_)LZ?jgA2!NI~w(URBOjIv0%KX87KOvji=q!5lrLh#^%1N<#eN_ zulkaYe?EOA@P^+Q+xx25e{&ff_b^)es`q*rul7|wKK`yp4Ox1)H`VuaZ>oA%Z}Ot4 zH#ziSZ}RPn-te;ROnkxT6~i03f!|@Zb#yu0&^RXjv zd`Fz|^h9-ETpo_^GmMues;$NeDzLkw(K1mT=-30t?H!HpCaOE)U+4doFp&1Cgu zZ^Ji9RrfI(CaFL7F*Z(8JNg(~C#jeE7;jBd&3%j$lhmhujLnnPu|CG@lhvJljl+}G z{e91dop1UYKTTHmoVnJvV!C>@pRs<5I?~Vn#Wc0;EXRQqwdQQ&&r{UhXK%ED`Fnq3 z_Y~FK|5_X$up949Q7v{l{@@&=ZHoH*oU?JfeSmTMRJGze)!U4Y|t z1C4`IRoy^i-&FO|K;!ADs+o^JW&GH{OQG}DAmfXv>XSiK_Ul1pxplB{_eJW5!F2r1 zc}CquYQ+#b{&9%Wc#&E&bQq5J3^hJL*`ecbTszEppF_0|Grqk@-EsbG9RGB_;dQ9B z!wnoiKAiMF8E#+$?C5aPZy4eH#-Sbe2Cr zFGW2)-uOO6y)ypdebdyRCm7Y!)ZZo;_fJzz6V85mnmRtg0Dk)g2K4W`z(CDM<>GH??gJS zovw%e;m*bfgVnd4`@K9^-E-Pb+e-u07hQ~J2dbaC7&uf_T_$AbB>r%^sw-QMfI7%)im-w(#XyaC5=_c37UP#*(Tf76HjThaG? z_`1LEw=rK2R*h#7bK)#x(|M}u?7zmXf@AQZM{LF)64YMXm$s+6s#h^_ zbXEV3HE!>!j`DFuoB@1YT!jrW9w86W!FR)985JX-UA}JQ2zj>q4!YU`$bSqwu4R z8EOh-^m_;7Zr9*MjYp_B7qC*|veL+l6Br#*I%?W_vhpX0ENY^=3yjJG{R+DGD@Pjyl+1Qpw3 zd)m5;H)h+iI_ImKt>t^#x{f#I+pg{GQ7gzpZ5WQnCmShh0T3K_u{KKA{NL~YM&Q2@ z_-_RM8-f2u;J*?0e-VLwsU!kfOx62V+51n4WVTEmpT9manxJhlq?Q{L0T z6kAUGS-;M~w2x+0^9vb#bf)mQB7K*a=MRK$Bekl9-MyCb1>d6yy*uX_2KrWiCmZdzyEz);vZhqHtE-W zLf;X3Sm-gK9eO#qXfL6Ig-#GUQ|M(v7Ykh`bd}J%ggz>Co6vni-w}FP=rN%k&XD?r z4i-8==uDxP30*97nb1{2?-Kf`&}~BZ34KTCVWG!_cIYkj3mq(Ug3y^lFB7_0=rWl-Sl17hDnlNUpeaKuqp6tr>Xne%z2}5zGvgF2mJaG%^p{LYAmzqbp z^we^Z8j0tDb4I32OC90KTq4|(g3^(TN^|qFN91O!k;LKY_@!!O_KgLwr>Un{OYnSt z37+u}Vcd`v=j3Hl0XZtl^Qe)z1-bb47>ajL<~$mTcT|z) zpIFSw=DZcE-$|MCUnt&Lne${Qews4R7om6;RV(vJDBe}oTJqAA#p0n(^E_i>L}OKg zs+IFkD4wWlHae^jAIGZhs_ouL`00usgA4z};-N_Md}fu!Vt3a(kA>nrRa=DlHCFXf zk>=f4b%r{=Gs9|vk7E_iB66Ox3S(6tmAE^SeqUveh@WXK&c}3~k5gZ@hYRTZZc``w zPv`X*)m1fx^~*@XRbK~=f}a!|l79I5<8t6O)mJ5ppX3L97UQ2SLOiR1lbwt(`**Yc z$^Eh&c%*i{$ohTN>OC1aGIum^PY}mse|v_5U`5Xm(&s4t5q`@s2eE1)f8#zR947oN z!RZ-B`p};_Cw%=72lM=lB#y2U{IN8R)3c29DHQy*>m1C#!QV=i3w|I=7Y#=oBd*sG3M| zK8y8xpOm*_fh&xo@bNN3@bK|33MG?U?@4i!dVk69r!(c3!B_cFa6~Qt(5#Z$KZ@{{w=5 zdxyqzSgO=lg3n#8@iBsr$GSR_KXVxGs%m83M%ejt4RC7LMzPaPaN3?c9eDV8VTI_o z6*^dRk?8-8^@XvJw?%*E?;VWhi0ph^SWvwUVR>?i;2GCzeY@x{7X0`sjgJ=m0l}}h zQ{!g8d?L6<`hBqI(}f1rJMIRpZ{}M!6R*_xAkiNo_@?C=e+6-;&vM{)J_`M!XXhf} zwZJ3w%kxq2*Q4N{0Pl|Z{FdDrT(P*LJ_kg9-4Ve&zzB+a6caqJUpNG2>!Fg z&5T1gETqWJd>N-hxfZ2H34XuC&Gf$rc%(S2iGptyJ3S?yX4$QR&yo3LoYeb);J4rD zV5Cg&=@=^H=L*p`&qvn_K3wv|Y}cOzA1eM&7dxHM5VG@7m9{@X@L_^)4V!PL12=sZ zRVJ53!Aqjx>jbC2`eFV24LJF;Hf$dFH*mXEQI2g1TK|qh2P5WrBw6r-Vewod_@iO= zZwDT!U5|?X6_wh4vef$~@a~rD7c&n(W*qDJJsGTN&WEjHXQt#8n!}&7vB5_5(%&et ze#Qf*IE1e^as*$wTI*w2@n?&51Y^j z(}4*tOb@8UNjak6EMfX=48?!99YT`gT+rsoskKlAq!05Vzo4!}?{F;CF=eM{<7fV z>zrobsQRSO(I|M29@?LW!ut_;_n1DaxAePda0&28_HP$Edu2SD>#GL@U%bM>Cd__+ zLhx%P9|lSVuL7rdHb}i@JP(Ne8nI)}hp|1i{%X-T^S?82>i4(8)+gr){-ogMx^X7i ziAhlOcaN-}d7>YFy;Caqtuk+z`|f`Q9w|OAi~iBuwS6-_p9-EO@i+6iYcI0XRoTU# z9C7L_#;qRe<59pl&u`H7%{WgMeCvu(JT;1)T+ye$>qH;3-j#xfw|BST>1A4(Lt^LCEl$txYKXX0ysM~d4v(Lc?r^%rs}{7xo{K5g+tveOed#V1SbnDLn} zc=-7=U+|=5y51R5?_Gk2&tp#sevzE7$BTXfHhL(ZTf*|Wm*5-2^7b6yk)Nc0A&zIdAtvK&amEb<4$q50kuoNh&B2d}Oiq zXS3js3qC;d8N-%8?*fn1FRj2SKJ+KQ=wpuGV`8UR=Dpilir+wE>y7+uzth2p8Ru(& zN3vfQ1z!u?E;g;?L9u^-iGyLg2zLM{KOK8A7(sXQXHOLSA4b7DqC?65ujKrKX7XpI z;IB*EO#CL`RBvrqd{&Bn2N_@Ii=9otBgNrK(f^0&FBJVx1kYRL(0&Ns>8!|h&WnOi z0#5Dvn~X0ruW|+7UZm}B5&Knw-&CV}Ludz7Bsfik&^8A3mRdAb9vZ)8DS^JtpJ&F{yVda9SUR&ofTok>cqVJLk#y z-8`=?6}&<6-<*q`06ra9gCs~Aj&yjH|{bi2RbAU(k za{_R((-3yvoG$qBuz9QyIOUbvlfgBb_HT${e@ztpA+d9Ox3&|<*6_PZ;N;ICdKgXK?u9MHO}y03$IdY1!z1~Pu~eYas^C;WP0j^KW2*K}=0sjOm8iKle& z;*nX(?Y?;WTz6XPy!mdo%FZdyS(00V8@+B%zB>!=Hp?kd5g@layU@KPuW(Ujo;w>a z0xEH5mX;~pD=o^)@#JKWoG^CWcvz00gx3WXxY?!o`8T47g~LmQ zay=oc=6m2qW)&4F_Z9OzX~}MPZXw?$c3+V;kzO0;rne{M&Yf41o}TPZz0^H3HO)D1 zj2r4{W5?h%Ryk$v!o~2SxWwb8H?R?xmkH*E!s2WcBgN4Zii!)fa!N|v^7gC}GC0pY zkIjr8SAaXxZoG*tb4hV#(b8Z&X7Qww(nTenTu-SdN1zGx1}%31xZJt9RK)~OHttX_ zq2qC*-R=@krYARxTbzq`UEKt(u)vKshPktIa09+Hi}|En=+8>KbXrOpij*#Lr@En> zSuz?{;5CA=#IqD{pUZaRy>hwBa@F zbDnd)o8L1=8X>)r9SXqxVvlmq_$^+vmO5S0{c~y(VOPw#WS(b&eqU57f|!Xfr*rfe zyg4dsX-?L4?!24=XMXx6$iyq=%=18S8NXY~O)u^W7ML-{xlA-hbGOkO@jNA|SL)@S=s2Z1^-`Z*A64eQHF;F zj1ZPMBO@UKL_k1vnwfpvI9t4KiSZt*)%Ji8LX_vxb8g+dJU#n3A_6B)EX%rJg$OQ0 zA|N9}oJ>MMMC1q&A`(tSmmu-|fBk=Tb#?Xb>@m`8zv}rvzW-6ZHQ6OtHd~IV(|(?G z+LKJKF@c;0zjgOVB}p2H77W*xPd6kIkdx&l(H;_Gvh{ko#@NH5gJiw)1u>q5GMhjj zR!{n;U}M`PgSHtMP(1CBTAZZCFeL(njo`r%2o>H&+k1xFGxH@xb=d7c9JN6MZn|U8 zdf9eNgnIMgl_{{t9y0;WwGFm^w8}zqQzRFs19NtahFBza(Oq>i+;2WLi>16WGVF8r zkkLGm>Fv@e&IUTg)x*dX%`6{{&A2#caO2J(YGyc@tbrlRDM>sH1v6_owMaLsS$~XS z2jYy*$4Qco`cOR(xMPyDqfP>rAFKf;%Q=97 zajlg5;iCk&L3}lHnl=V{dYod~=yT69HdM;o5~x(kntJC~iPghyjp)2x9H0%Pp67XT z!P5knI-t+6Kj@mo>HrC8m0c`*G#%)zJ`;h=!6fC_p26s;4Nquf#CuL$PS6*);xxF9 zQ2QfT!i9p4&QKbH=vFqqOME4NU?5TJIZUHcnZyc=Oy+0D0C4kY4s2(5Bhhs7c3~TsG}^WesLNg3gQa;v9m?@0QVkN%1YL0*dRWEz@2f;2ML+lVgu*afu42pX`yXQ;99HziLQ3Z$We) zWg9bCm6oW+4M9(4K)0*frdGfLw%7ryNfEeAH`xcx2sZ+(c_7D_L&Pn)>YN4U$dvrL zK*TKYT1}b{^YAf4z^l-KW^56WEYoN>etbDx!>MYvP(WT_Qdy_5=mHzX(q5)bQx%uO zV}8wNxB+($>^_{g!VyR-c*G8GMGs3wBRsZRc&jv`K_`xmZxw+gCjcxj0+nGs8{!qu zI({rJ=cnrPH90uD5N6+lN(*tJ$b6LSP!?`$5v$A`0Tu3G7fXpFCsDjKnBYb=BA17u zC!$0iqReyFxCou$+?q}VB-pklo&8BZog%Ws=Fis81s{4QeY?R*Rvjx(A=U1aj7|X| z%F7b*$vv??W!-GS9v8rJKs1R#U}ISEtEfnZDG-*3Nl}CB1cV)P_H_FLk`0Ys2R}NZ zaCSgjZ!@gj$^G)+sbnt$s}3NP#0Fnpii-gxn(SMP8Vwx)D{f)|j3bs&{D#GDQK(yN zCi%jg7uf`%_{@Wupb;H%qa}dLz8&?Qs+T>m%-@P)urJOB5Cf04oc&i5-wcCfPKnFY zb(U4F0^A9RVD%ni9f92iZAT4iK{n!&VZ7iK)jl}KE9e|iMk65`tyBXc@U+wAc%Pk* zsN+#FbSe`zKBM@rZTe;GnidooB@d8(U<1!##7#~eXw!2+B|_^GM8(;nYz?3go-_!| z2?lb&0CMDhS?3vwEVhJV^R4wzyh$>LjJ^(d<1u41f8mFT5U~za2M%iZ1IK)I#Bof@=q$Z646t(AcQdawExp$oo>)ijx-PwMF_~i1B2$zvt*PUAcm%#0lP62 zF9netZYAUz;gF<98b}4fo`NMv%tCgv;{gq!usev2t^cJ?fdkplLx;rSnV&3)Ftu)@ zY`A8HrL(V&AUtMl`n}*7j%g1+fnzvCHvn4ADgm#_>|=JI62-M)msQ6@ynl9$I6M9DFH~Q*#`=%LlSz#kxJFbwTdNq1WL;E1t(IGnaZV;(y+68 zqB6!8PCZMYAiI9U@JezB(7ggVx*jIc^qfMHA$L%E;x;&cUSTgAO0 z&jE2mKWy7nP5e{`nTrQ(E^Jb|F<2!l)U8ArimonshJHeXfH^EyfjOLKa|+=?E;G^^ z1f(u)icym}>X?)A=1qCiARu=F<5;Dx$3DClWL^v8{WgGHWKJm)UYBK&GQtUqIm8Jh zb3M_iV>Tth0NTZPI3w5wMI3HlINXM%>jASU$2GQCz$p{wHF-V6bQP3#lft>pYFE{j z^Q?_ANc*;|To{9p1tnvG`C#n(HalnVPiiiu$R0MiFLlS6lD^e!nvdXK5-tj4$~EVU z`c7Uw%?22ZB=@&Zc(St%)*RRX#p6T}3zMVcWq~2;zyb(<+j#;)!{(*Rdbssl7;C2Ka1vnPgrJ7^=;Bv2;Ksa_1> z;c(81Z0kO&P%INnpt9?MN`n(>HQrw+aT>qXN{PoB03iFEMiyq+NO}? zf_eQpARPq6Is&iKO@?7Aa|_&yEgE2Mp${7K*5T-ui#Jv41(>YK6Az|Am8_`Llu7yM zVB!FYR$8}!SzzM<6DFrm3846UrLSRHM{N{Qz( zdTUEwY>Dn|9x|44gHfuv^09SdE4)@Ltw-js6sMa-cITy!bhAgQ0SA|z_)1cV<+tLR z>l+QXd*(pR<#}v%PT@o3%7xUll+xn&JxIx$IiqW3ei=$qN8;F5&QR+cOaIpqufevy zfbWj9(%U)Yv!2|*>!+0umGwV(eT(;w(fWg(Lw-Dv8{g%t^3RvbQ$C~j3%`P|*5B+L z;tK!HC^zt$R^=1ce+N(T^GQpsf4y_a<*((2y(;(B(f7-^5dNIt`!#&E{^vV~xWazO za^v}HeA%J{&0Xt%%ieDN1jjGptMzriiR-W00=iF+6z4YdoQ}W1m-fif`noU0LwT?5 z6Dj;^-G)(O|`!6b8-50TjGaOQ2W>V zI{y!){@YSc_rtiB`nt~$)qfq|u>QxmM|2f3yL~f$^-bKwN8b~)S9Yv=PREb%_3P{Y z8qcIYPtL1wPtNuDG^{W0u|C6l`1JYDl|AZTt*6(&#);p*?$`13Q(HpBK#PaNX+4wr zN`Kwga?H zK=aq}>wY31{@&L3t1{MJ*5>~=+$T{b*`$x|i}3j$?R7}+u>ZfK7>SzJ*Zmg$DfPqh z;q|{zm&UL4bsv)#Th{+K>Z)$x)a`fjQtB&VlnmOx&g&)W`2Fj?C@=p+t(E#>ugYs} z=f8O1*LVA;JhwIODPyDot*6J=P}#44@3Z%~qg-~9otp9l(H>fS8pT39xrqo{r z6?ER(#v6D}McR5pj#^*;PeC7Rb9#IO543MBL&qOT|KHYv@-VpMz5^0*$@l(jEBr+a g;CFEO7QRY1#Xr*TSpVPu2Oi+_yYJbf{tf&8AJEwi+5i9m literal 0 HcmV?d00001 diff --git a/in.co_magnetomech b/in.co_magnetomech index bbe9e3fb83..559fc1ae4b 100644 --- a/in.co_magnetomech +++ b/in.co_magnetomech @@ -48,75 +48,95 @@ create_atoms 1 box #######Settings######## ####################### +#isolating 1 atom into a group +group single_spin id 10 + #Setting one or more properties of one or more atoms. #Setting mass -mass 1 1.0 -#set group all mass 1.0 +mass 1 58.93 +#set group all mass 58.93 + #Setting spins orientation and moment -set group all spin/random 11 1.72 -#set group all spin 1.72 0.0 0.0 1.0 +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 +#set group single_spin spin/random 11 1.72 + +#velocity all create 600 4928459 rot yes dist gaussian #Magneto-mechanic interactions for bulk fcc Cobalt -pair_style hybrid/overlay eam/alloy pair/spin 4.0 +#pair_style pair/spin 4.0 +#pair_style eam/alloy +#pair_style hybrid/overlay eam/alloy pair/spin/soc 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +#pair_style hybrid/overlay eam/alloy pair/spin 4.0 pair/spin/soc 4.0 + pair_coeff * * eam/alloy ../Co_PurjaPun_2012.eam.alloy Co +#pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co #pair_style pair/spin 4.0 #type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * pair/spin exchange 4.0 0.0446928 0.003496 1.4885 +#pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +#pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 #pair_coeff * * pair/spin exchange 4.0 0.0 0.003496 1.4885 + #type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) #pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 #pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 +#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) +pair_coeff * * pair/spin/soc/neel neel 4.0 -0.003330282 0.864159 2.13731 #Define a skin distance, update neigh list every #neighbor 1.0 bin #neigh_modify every 10 check yes delay 20 -neighbor 0.0 bin +neighbor 1.0 bin neigh_modify every 1 check no delay 0 #Magnetic field fix #Type | Intensity (T or eV) | Direction fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 -#fix 2 all langevin/spin 1.0 0.1 0.0 21 -fix 2 all langevin/spin 0.0 0.0 0.0 21 +fix 2 all langevin/spin 300.0 0.1 0.0 21 #Magnetic integration fix fix 3 all integration/spin serial #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm -compute mag all compute/spin -fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g - -#compute mechanical energy -compute mech all pe -fix outmech all ave/time 1 1 10 c_mech file mech_Co_nodamp.dat format %20.16g - -#compute kinetic energy -compute kinetic all ke -fix outke all ave/time 1 1 10 c_kinetic file kinetic_Co_nodamp.dat format %20.16g +#compute mag all compute/spin +#fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_VSRSV.dat format %20.16g #Setting the timestep for the simulation (in ps) -timestep 0.0001 +timestep 0.0002 ################## #######run######## ################## -thermo 500 +#fix_modify 1 energy yes + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke + +variable magnorm equal c_out_mag[5] +variable emag equal c_out_mag[6] +variable tmag equal c_out_mag[7] +variable mag_force equal f_1 + +thermo 500 +thermo_style custom step time v_emag c_out_pe c_out_ke v_mag_force v_magnorm v_tmag etotal +#fix out_vals all ave/time 1 1 50 step v_emag file temp_lattice_VSRSV.dat format %20.16g #Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 10 dump_spin_MM.lammpstrj type x y z spx spy spz +dump 1 all custom 100 dump_VSRSV.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 100000 +run 1000000 #run 1 diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index d0187142ce..de1a54780e 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -100,14 +100,14 @@ void ComputeSpin::compute_vector() mag[0] += sp[i][0]; mag[1] += sp[i][1]; mag[2] += sp[i][2]; - magenergy += sp[i][0]*fm[i][0]; - magenergy += sp[i][1]*fm[i][1]; - magenergy += sp[i][2]*fm[i][2]; + magenergy -= sp[i][0]*fm[i][0]; + magenergy -= sp[i][1]*fm[i][1]; + magenergy -= sp[i][2]*fm[i][2]; tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; tempnum += tx*tx+ty*ty+tz*tz; - tempdenom += sp[i][0]*sp[i][0]+sp[i][1]*sp[i][1]+sp[i][2]*sp[i][2]; + tempdenom += sp[i][0]*fm[i][0]+fm[i][1]*sp[i][1]+sp[i][2]*fm[i][2]; countsp++; } } @@ -124,15 +124,16 @@ void ComputeSpin::compute_vector() magtot[0] *= scale; magtot[1] *= scale; magtot[2] *= scale; - magtot[3] = sqrt(square(magtot[0])+square(magtot[1])+square(magtot[2])); - spintemperature = hbar*tempnumtot/2.0/kb/tempdenomtot; + magtot[3] = sqrt((magtot[0]*magtot[0])+(magtot[1]*magtot[1])+(magtot[2]*magtot[2])); + spintemperature = hbar*tempnumtot; + spintemperature /= (2.0*kb*tempdenomtot); vector[0] = invoked_vector*update->dt; vector[1] = magtot[0]; vector[2] = magtot[1]; vector[3] = magtot[2]; vector[4] = magtot[3]; - vector[5] = -0.5*magenergytot*hbar; + vector[5] = magenergytot*hbar; vector[6] = spintemperature; } diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index 9b2012831f..b0e38989c9 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -65,10 +65,12 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a magfieldstyle = CONSTANT; H_field = 0.0; - Hx = Hy = Hz = 0.0; + nhx = nhy = nhz = 0.0; + hx = hy = hz = 0.0; Ka = 0.0; + nax = nay = naz = 0.0; Kax = Kay = Kaz = 0.0; - + zeeman_flag = aniso_flag = 0; if (strcmp(arg[3],"zeeman") == 0) { @@ -76,25 +78,25 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a style = ZEEMAN; zeeman_flag = 1; H_field = force->numeric(FLERR,arg[4]); - Hx = force->numeric(FLERR,arg[5]); - Hy = force->numeric(FLERR,arg[6]); - Hz = force->numeric(FLERR,arg[7]); + nhx = force->numeric(FLERR,arg[5]); + nhy = force->numeric(FLERR,arg[6]); + nhz = force->numeric(FLERR,arg[7]); magfieldstyle = CONSTANT; } else if (strcmp(arg[3],"anisotropy") == 0) { if (narg != 8) error->all(FLERR,"Illegal force/spin command"); style = ANISOTROPY; aniso_flag = 1; Ka = force->numeric(FLERR,arg[4]); - Kax = force->numeric(FLERR,arg[5]); - Kay = force->numeric(FLERR,arg[6]); - Kaz = force->numeric(FLERR,arg[7]); + nax = force->numeric(FLERR,arg[5]); + nay = force->numeric(FLERR,arg[6]); + naz = force->numeric(FLERR,arg[7]); } else error->all(FLERR,"Illegal force/spin command"); degree2rad = MY_PI/180.0; time_origin = update->ntimestep; eflag = 0; - emag = 0.0; + emag = 0.0; } /* ---------------------------------------------------------------------- */ @@ -191,22 +193,23 @@ void FixForceSpin::post_force(int vflag) fmi[0] = fmi[1] = fmi[2] = 0.0; if (zeeman_flag) { compute_zeeman(i,fmi); + emag -= sp[i][0] * fmi[0]; + emag -= sp[i][1] * fmi[1]; + emag -= sp[i][2] * fmi[2]; } if (aniso_flag) { spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; compute_anisotropy(i,spi,fmi); + emag -= 0.5 * sp[i][0] * fmi[0]; + emag -= 0.5 * sp[i][1] * fmi[1]; + emag -= 0.5 * sp[i][2] * fmi[2]; } fm[i][0] += fmi[0]; fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - - emag -= mumag[i]*spi[0]*fmi[0]; - emag -= mumag[i]*spi[1]*fmi[1]; - emag -= mumag[i]*spi[2]*fmi[2]; } - } @@ -214,19 +217,19 @@ void FixForceSpin::post_force(int vflag) void FixForceSpin::compute_zeeman(int i, double *fmi) { double *mumag = atom->mumag; - fmi[0] += mumag[i]*xmag; - fmi[1] += mumag[i]*ymag; - fmi[2] += mumag[i]*zmag; + fmi[0] += mumag[i]*hx; + fmi[1] += mumag[i]*hy; + fmi[2] += mumag[i]*hz; } /* ---------------------------------------------------------------------- */ void FixForceSpin::compute_anisotropy(int i, double * spi, double *fmi) { - double scalar = Kax*spi[0] + Kay*spi[1] + Kaz*spi[2]; - fmi[0] += scalar*xmag; - fmi[1] += scalar*ymag; - fmi[2] += scalar*zmag; + double scalar = nax*spi[0] + nay*spi[1] + naz*spi[2]; + fmi[0] += scalar*Kax; + fmi[1] += scalar*Kay; + fmi[2] += scalar*Kaz; } /* ---------------------------------------------------------------------- */ @@ -240,14 +243,14 @@ void FixForceSpin::post_force_respa(int vflag, int ilevel, int iloop) void FixForceSpin::set_magneticforce() { if (style == ZEEMAN) { - xmag = H_field*Hx; - ymag = H_field*Hy; - zmag = H_field*Hz; + hx = H_field*nhx; + hy = H_field*nhy; + hz = H_field*nhz; } if (style == ANISOTROPY) { - xmag = 2.0*Ka*Kax; - ymag = 2.0*Ka*Kay; - zmag = 2.0*Ka*Kaz; + Kax = 2.0*Ka*nax; + Kay = 2.0*Ka*nay; + Kaz = 2.0*Ka*naz; } } @@ -257,13 +260,14 @@ void FixForceSpin::set_magneticforce() double FixForceSpin::compute_scalar() { + double emag_all=0.0; // only sum across procs one time if (eflag == 0) { MPI_Allreduce(&emag,&emag_all,1,MPI_DOUBLE,MPI_SUM,world); eflag = 1; } - - emag *= hbar; + + emag_all *= hbar; return emag_all; } diff --git a/src/SPIN/fix_force_spin.h b/src/SPIN/fix_force_spin.h index 57d4126f86..7da3ece415 100644 --- a/src/SPIN/fix_force_spin.h +++ b/src/SPIN/fix_force_spin.h @@ -44,13 +44,12 @@ class FixForceSpin : public Fix { protected: int style; // style of the magnetic force - double xmag, ymag, zmag; // temp. force variables double degree2rad; double hbar; int ilevel_respa; int time_origin; int eflag; - double emag, emag_all; + double emag; int varflag; int magfieldstyle; @@ -59,11 +58,13 @@ class FixForceSpin : public Fix { // zeeman field intensity and direction double H_field; - double Hx, Hy, Hz; + double nhx, nhy, nhz; + double hx, hy, hz; // temp. force variables // magnetic anisotropy intensity and direction double Ka; - double Kax, Kay, Kaz; + double nax, nay, naz; + double Kax, Kay, Kaz; // temp. force variables // temp. spin variables double *spi, *fmi; diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 504f789c19..5fee9c1554 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -37,6 +37,11 @@ #include "pair.h" #include "pair_hybrid.h" #include "pair_spin.h" +#include "pair_spin_exchange.h" +#include "pair_spin_me.h" +#include "pair_spin_soc_dmi.h" +#include "pair_spin_soc_neel.h" +#include "pair_spin_soc_landau.h" #include "respa.h" #include "update.h" @@ -74,13 +79,16 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); magpair_flag = 0; - exch_flag = dmi_flag = me_flag = 0; + soc_flag = 0; + exch_flag = 0; magforce_flag = 0; zeeman_flag = aniso_flag = 0; maglangevin_flag = 0; tdamp_flag = temp_flag = 0; lockpairspin = NULL; + lockpairspinexchange = NULL; + lockpairspinsocneel = NULL; lockforcespin = NULL; locklangevinspin = NULL; } @@ -95,6 +103,7 @@ FixIntegrationSpin::~FixIntegrationSpin(){ memory->destroy(rsec); memory->destroy(seci); + memory->destroy(rij); memory->destroy(spi); memory->destroy(spj); memory->destroy(fmi); @@ -118,32 +127,39 @@ void FixIntegrationSpin::init() //FixNVE::init(); // set timesteps - dtv = update->dt; + dtv = 0.5 * update->dt; dtf = 0.5 * update->dt * force->ftm2v; - dts = update->dt; + dts = 0.5 * update->dt; memory->create(xi,3,"integrations:xi"); memory->create(sec,3,"integrations:sec"); memory->create(rsec,3,"integrations:rsec"); memory->create(seci,3,"integrations:seci"); + memory->create(rij,3,"integrations:xi"); memory->create(spi,3,"integrations:spi"); memory->create(spj,3,"integrations:spj"); memory->create(fmi,3,"integrations:fmi"); memory->create(fmj,3,"integrations:fmj"); - if (strstr(force->pair_style,"pair/spin")) { - magpair_flag = 1; - lockpairspin = (PairSpin *) force->pair; + if (strstr(force->pair_style,"pair/spin/exchange")) { + exch_flag = 1; + lockpairspinexchange = (PairSpinExchange *) force->pair; + } else if (strstr(force->pair_style,"pair/spin/soc")) { + soc_flag = 1; + lockpairspinsocneel = (PairSpinSocNeel *) force->pair; } else if (strstr(force->pair_style,"hybrid/overlay")) { PairHybrid *lockhybrid = (PairHybrid *) force->pair; int nhybrid_styles = lockhybrid->nstyles; int ipair; for (ipair = 0; ipair < nhybrid_styles; ipair++) { - if (strstr(lockhybrid->keywords[ipair],"pair/spin")) { - magpair_flag = 1; - lockpairspin = (PairSpin *) lockhybrid->styles[ipair]; + if (strstr(lockhybrid->keywords[ipair],"pair/spin/exchange")) { + exch_flag = 1; + lockpairspinexchange = (PairSpinExchange *) lockhybrid->styles[ipair]; + } else if (strstr(lockhybrid->keywords[ipair],"pair/spin/soc")) { + soc_flag = 1; + lockpairspinsocneel = (PairSpinSocNeel *) lockhybrid->styles[ipair]; } } } else error->all(FLERR,"Illegal fix integration/spin command"); @@ -165,12 +181,10 @@ void FixIntegrationSpin::init() } } - // set flags for the different magnetic interactionsi - if (magpair_flag) { - if (lockpairspin->exch_flag == 1) exch_flag = 1; - if (lockpairspin->dmi_flag == 1) dmi_flag = 1; - if (lockpairspin->me_flag == 1) me_flag = 1; - } + // set flags for the different magnetic interactions +// if (magpair_flag) { +// if (lockpairspinexchange->exch_flag == 1) exch_flag = 1; +// } if (magforce_flag) { if (lockforcespin->zeeman_flag == 1) zeeman_flag = 1; @@ -206,16 +220,130 @@ void FixIntegrationSpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; -// printf("before mechmag, spin 1: [%g,%g,%g] \n",f[1][0],f[1][1],f[1][2]); - // compute and add magneto-mech. force -// if (magpair_flag == 1) { -// if (exch_flag) lockpairspin->compute_magnetomech(0,vflag); -// } +#define VSRSV_TEST +#if defined VSRSV_TEST -// printf("after mechmag, spin 1: [%g,%g,%g] \n",f[1][0],f[1][1],f[1][2]); + // update half v for all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (rmass) dtfm = dtf / rmass[i]; + else dtfm = dtf / mass[type[i]]; + v[i][0] += dtfm * f[i][0]; + v[i][1] += dtfm * f[i][1]; + v[i][2] += dtfm * f[i][2]; + } + } - // update half v all particles + // update s for all particles + if (extra == SPIN) { + if (mpi_flag == 1) { + int nseci; + // mpi seq. update + for (int j = 0; j < nsectors; j++) { + comm->forward_comm(); + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + } + for (int j = nsectors-1; j >= 0; j--) { + comm->forward_comm(); + for (int i = nlocal-1; i >= 0; i--) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + } + } else if (mpi_flag == 0) { + // serial seq. update + // advance quarter s for nlocal-1 + for (int i = 0; i < nlocal-1; i++){ + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + // advance half s for 1 + ComputeInteractionsSpin(nlocal-1); + AdvanceSingleSpin(nlocal-1,dts,sp,fm); + // advance quarter s for nlocal-1 + for (int i = nlocal-2; i >= 0; i--){ + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } else error->all(FLERR,"Illegal fix integration/spin command"); + } + + // update x for all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] += 2.0 * dtv * v[i][0]; + x[i][1] += 2.0 * dtv * v[i][1]; + x[i][2] += 2.0 * dtv * v[i][2]; + } + } + + // update half s for all particles + if (extra == SPIN) { + if (mpi_flag == 1) { + int nseci; + // mpi seq. update + for (int j = 0; j < nsectors; j++) { + comm->forward_comm(); + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + } + for (int j = nsectors-1; j >= 0; j--) { + comm->forward_comm(); + for (int i = nlocal-1; i >= 0; i--) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + } + } else if (mpi_flag == 0) { + // serial seq. update + // advance quarter s for nlocal-2 particles + for (int i = nlocal-1; i >= 1; i--){ + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + // advance half s for 1 + ComputeInteractionsSpin(0); + AdvanceSingleSpin(0,dts,sp,fm); + // advance quarter s for nlocal-2 particles + for (int i = 1; i < nlocal; i++){ + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } else error->all(FLERR,"Illegal fix integration/spin command"); + } + +#endif + + +//#define VRSRV +#if defined VRSRV + // update half v for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (rmass) dtfm = dtf / rmass[i]; @@ -229,16 +357,17 @@ void FixIntegrationSpin::initial_integrate(int vflag) // update half x for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { - x[i][0] += 0.5 * dtv * v[i][0]; - x[i][1] += 0.5 * dtv * v[i][1]; - x[i][2] += 0.5 * dtv * v[i][2]; + x[i][0] += dtv * v[i][0]; + x[i][1] += dtv * v[i][1]; + x[i][2] += dtv * v[i][2]; } } - + + // update s for all particles if (extra == SPIN) { if (mpi_flag == 1) { int nseci; - // mpi seq. update spins for all particles + // mpi seq. update for (int j = 0; j < nsectors; j++) { comm->forward_comm(); for (int i = 0; i < nlocal; i++) { @@ -248,7 +377,7 @@ void FixIntegrationSpin::initial_integrate(int vflag) nseci = coords2sector(xi); if (j != nseci) continue; ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); + AdvanceSingleSpin(i,dts,sp,fm); } } for (int j = nsectors-1; j >= 0; j--) { @@ -260,18 +389,18 @@ void FixIntegrationSpin::initial_integrate(int vflag) nseci = coords2sector(xi); if (j != nseci) continue; ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); + AdvanceSingleSpin(i,dts,sp,fm); } } } else if (mpi_flag == 0) { - // serial seq. update spins for all particles + // serial seq. update for (int i = 0; i < nlocal; i++){ ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); + AdvanceSingleSpin(i,dts,sp,fm); } for (int i = nlocal-1; i >= 0; i--){ ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); + AdvanceSingleSpin(i,dts,sp,fm); } } else error->all(FLERR,"Illegal fix integration/spin command"); } @@ -279,11 +408,75 @@ void FixIntegrationSpin::initial_integrate(int vflag) // update half x for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { - x[i][0] += 0.5 * dtv * v[i][0]; - x[i][1] += 0.5 * dtv * v[i][1]; - x[i][2] += 0.5 * dtv * v[i][2]; + x[i][0] += dtv * v[i][0]; + x[i][1] += dtv * v[i][1]; + x[i][2] += dtv * v[i][2]; } } +#endif + + +//#define RSVSR_TEST +#if defined RSVSR_TEST + + // update half x for all particles + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] += dtv * v[i][0]; + x[i][1] += dtv * v[i][1]; + x[i][2] += dtv * v[i][2]; + } + } + + // update half s for all particles + if (extra == SPIN) { + if (mpi_flag == 1) { + int nseci; + // mpi seq. update + for (int j = 0; j < nsectors; j++) { + comm->forward_comm(); + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + } + for (int j = nsectors-1; j >= 0; j--) { + comm->forward_comm(); + for (int i = nlocal-1; i >= 0; i--) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + } + } else if (mpi_flag == 0) { + // serial seq. update + // advance quarter s for nlocal-2 particles + for (int i = 0; i < nlocal-2; i++){ + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + // advance half s for nlocal-1 + ComputeInteractionsSpin(nlocal-1); + AdvanceSingleSpin(nlocal-1,dts,sp,fm); + // advance quarter s for nlocal-2 particles + for (int i = nlocal-2; i >= 0; i--){ + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } else error->all(FLERR,"Illegal fix integration/spin command"); + } + +#endif + } @@ -302,17 +495,17 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) const int newton_pair = force->newton_pair; // add test here - if (magpair_flag) { - inum = lockpairspin->list->inum; - ilist = lockpairspin->list->ilist; - numneigh = lockpairspin->list->numneigh; - firstneigh = lockpairspin->list->firstneigh; + if (exch_flag) { + inum = lockpairspinexchange->list->inum; + ilist = lockpairspinexchange->list->ilist; + numneigh = lockpairspinexchange->list->numneigh; + firstneigh = lockpairspinexchange->list->firstneigh; } - double xtmp,ytmp,ztmp; - double rsq,rd,delx,dely,delz; - double cut_ex_2, cut_dmi_2, cut_me_2; - cut_ex_2 = cut_dmi_2 = cut_me_2 = 0.0; + double rsq, rd; + double delx, dely, delz; + double temp_cut, cut_2, inorm; + temp_cut = cut_2 = inorm = 0.0; int eflag = 1; int vflag = 0; @@ -341,43 +534,43 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) for (int jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; + itype = type[ii]; + jtype = type[j]; + spj[0] = sp[j][0]; spj[1] = sp[j][1]; spj[2] = sp[j][2]; - delx = xi[0] - x[j][0]; - dely = xi[1] - x[j][1]; - delz = xi[2] - x[j][2]; + delx = x[j][0] - xi[0]; + dely = x[j][1] - xi[1]; + delz = x[j][2] - xi[2]; rsq = delx*delx + dely*dely + delz*delz; - itype = type[ii]; - jtype = type[j]; + inorm = 1.0/sqrt(rsq); - if (magpair_flag) { // mag. pair inter. - double temp_cut; - if (exch_flag) { // exchange - temp_cut = lockpairspin->cut_spin_exchange[itype][jtype]; - cut_ex_2 = temp_cut*temp_cut; - if (rsq <= cut_ex_2) { - lockpairspin->compute_exchange(i,j,rsq,fmi,fmj,spi,spj); - } - } - if (dmi_flag) { // dmi - temp_cut = lockpairspin->cut_spin_dmi[itype][jtype]; - cut_dmi_2 = temp_cut*temp_cut; - if (rsq <= cut_dmi_2) { - lockpairspin->compute_dmi(i,j,fmi,fmj,spi,spj); - } - } - if (me_flag) { // me - temp_cut = lockpairspin->cut_spin_me[itype][jtype]; - cut_me_2 = temp_cut*temp_cut; - if (rsq <= cut_me_2) { - lockpairspin->compute_me(i,j,fmi,fmj,spi,spj); - } - } - } - } + rij[0] = delx*inorm; + rij[1] = dely*inorm; + rij[2] = delz*inorm; + temp_cut = 0.0; + + if (exch_flag) { // exchange + temp_cut = lockpairspinexchange->cut_spin_exchange[itype][jtype]; + cut_2 = temp_cut*temp_cut; + if (rsq <= cut_2) { + lockpairspinexchange->compute_exchange(i,j,rsq,fmi,fmj,spi,spj); + } + } + + if (soc_flag) { // soc + temp_cut = lockpairspinsocneel->cut_soc_neel[itype][jtype]; + cut_2 = temp_cut*temp_cut; + if (rsq <= cut_2) { + lockpairspinsocneel->compute_soc_neel(i,j,rsq,rij,fmi,fmj,spi,spj); + } + } + + } + if (magforce_flag) { // mag. forces if (zeeman_flag) { // zeeman lockforcespin->compute_zeeman(i,fmi); @@ -421,7 +614,7 @@ void FixIntegrationSpin::sectoring() const double rsy = subhi[1] - sublo[1]; const double rsz = subhi[2] - sublo[2]; - const double rv = lockpairspin->cut_spin_pair_global; + const double rv = lockpairspinexchange->cut_spin_exchange_global; double rax = rsx/rv; double ray = rsy/rv; @@ -474,9 +667,9 @@ int FixIntegrationSpin::coords2sector(double *xi) /* ---------------------------------------------------------------------- */ -void FixIntegrationSpin::AdvanceSingleSpin(int i, double dts, double **sp, double **fm) +void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl, double **sp, double **fm) { - double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; + double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy,dts2; double cp[3],g[3]; cp[0] = cp[1] = cp[2] = 0.0; @@ -484,22 +677,23 @@ void FixIntegrationSpin::AdvanceSingleSpin(int i, double dts, double **sp, doubl fm2 = (fm[i][0]*fm[i][0])+(fm[i][1]*fm[i][1])+(fm[i][2]*fm[i][2]); fmsq = sqrt(fm2); energy = (sp[i][0]*fm[i][0])+(sp[i][1]*fm[i][1])+(sp[i][2]*fm[i][2]); - + dts2 = dtl*dtl; + cp[0] = fm[i][1]*sp[i][2]-fm[i][2]*sp[i][1]; cp[1] = fm[i][2]*sp[i][0]-fm[i][0]*sp[i][2]; cp[2] = fm[i][0]*sp[i][1]-fm[i][1]*sp[i][0]; - g[0] = sp[i][0]+cp[0]*dts; - g[1] = sp[i][1]+cp[1]*dts; - g[2] = sp[i][2]+cp[2]*dts; + g[0] = sp[i][0]+cp[0]*dtl; + g[1] = sp[i][1]+cp[1]*dtl; + g[2] = sp[i][2]+cp[2]*dtl; - g[0] += (fm[i][0]*energy-0.5*sp[i][0]*fm2)*0.5*dts*dts; - g[1] += (fm[i][1]*energy-0.5*sp[i][1]*fm2)*0.5*dts*dts; - g[2] += (fm[i][2]*energy-0.5*sp[i][2]*fm2)*0.5*dts*dts; + g[0] += (fm[i][0]*energy-0.5*sp[i][0]*fm2)*0.5*dts2; + g[1] += (fm[i][1]*energy-0.5*sp[i][1]*fm2)*0.5*dts2; + g[2] += (fm[i][2]*energy-0.5*sp[i][2]*fm2)*0.5*dts2; - g[0] /= (1+0.25*fm2*dts*dts); - g[1] /= (1+0.25*fm2*dts*dts); - g[2] /= (1+0.25*fm2*dts*dts); + g[0] /= (1+0.25*fm2*dts2); + g[1] /= (1+0.25*fm2*dts2); + g[2] /= (1+0.25*fm2*dts2); sp[i][0] = g[0]; sp[i][1] = g[1]; @@ -523,6 +717,8 @@ void FixIntegrationSpin::final_integrate() double **x = atom->x; double **v = atom->v; double **f = atom->f; + double **sp = atom->sp; + double **fm = atom->fm; double *rmass = atom->rmass; double *mass = atom->mass; int nlocal = atom->nlocal; @@ -530,13 +726,11 @@ void FixIntegrationSpin::final_integrate() int *type = atom->type; int *mask = atom->mask; - // compute and add magneto-mech. force -// if (magpair_flag == 1) { -// if (exch_flag) lockpairspin->compute_magnetomech(0,0); -// } +#define VSRSV_TEST +#if defined VSRSV_TEST // update half v for all particles - for (int i = 0; i < nlocal; i++) { + for (int i = nlocal-1; i >= 0; i--) { if (mask[i] & groupbit) { if (rmass) dtfm = dtf / rmass[i]; else dtfm = dtf / mass[type[i]]; @@ -545,4 +739,93 @@ void FixIntegrationSpin::final_integrate() v[i][2] += dtfm * f[i][2]; } } + +#endif + +//#define VRSRV +#if defined VRSRV + // update half v for all particles + for (int i = nlocal-1; i >= 0; i--) { + if (mask[i] & groupbit) { + if (rmass) dtfm = dtf / rmass[i]; + else dtfm = dtf / mass[type[i]]; + v[i][0] += dtfm * f[i][0]; + v[i][1] += dtfm * f[i][1]; + v[i][2] += dtfm * f[i][2]; + } + } +#endif + +//#define RSVSR_TEST +#if defined RSVSR_TEST + + // update v for all particles + for (int i = nlocal-1; i >= 0; i--) { + if (mask[i] & groupbit) { + if (rmass) dtfm = dtf / rmass[i]; + else dtfm = dtf / mass[type[i]]; + v[i][0] += 2.0 * dtfm * f[i][0]; + v[i][1] += 2.0 * dtfm * f[i][1]; + v[i][2] += 2.0 * dtfm * f[i][2]; + } + } + + // update half s for all particles + if (extra == SPIN) { + if (mpi_flag == 1) { + int nseci; + // mpi seq. update + for (int j = 0; j < nsectors; j++) { + comm->forward_comm(); + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + } + for (int j = nsectors-1; j >= 0; j--) { + comm->forward_comm(); + for (int i = nlocal-1; i >= 0; i--) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + } + } else if (mpi_flag == 0) { + // serial seq. update + // advance quarter s for nlocal-2 particles + for (int i = nlocal-1; i >= 1; i--){ + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + // advance half s for nlocal-1 + ComputeInteractionsSpin(0); + AdvanceSingleSpin(0,dts,sp,fm); + // advance quarter s for nlocal-2 particles + for (int i = 1; i < nlocal-1; i++){ + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,0.5*dts,sp,fm); + } + } else error->all(FLERR,"Illegal fix integration/spin command"); + } + + // update half x for all particles + for (int i = nlocal-1; i >= 0; i--) { + if (mask[i] & groupbit) { + x[i][0] += dtv * v[i][0]; + x[i][1] += dtv * v[i][1]; + x[i][2] += dtv * v[i][2]; + } + } + +#endif + } diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_integration_spin.h index 96f0035919..6da740447d 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -50,20 +50,23 @@ class FixIntegrationSpin : public Fix { // mag. interaction flags int magpair_flag; - int exch_flag, dmi_flag, me_flag; + int soc_flag; + int exch_flag; int magforce_flag; int zeeman_flag, aniso_flag; int maglangevin_flag; int tdamp_flag, temp_flag; - // pointers to mag. interaction classes + // pointers to interaction classes class PairHybrid *lockhybrid; class PairSpin *lockpairspin; + class PairSpinExchange *lockpairspinexchange; + class PairSpinSocNeel *lockpairspinsocneel; class FixForceSpin *lockforcespin; class FixLangevinSpin *locklangevinspin; // temporary variables - double *xi; + double *xi, *rij; double *spi, *spj; double *fmi, *fmj; diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 4f59f8f4d7..84b2581a3a 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -129,16 +129,17 @@ void FixLangevinSpin::init() } if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin should come after all other spin fixes"); - memory->create(spi,3,"pair:spi"); - memory->create(fmi,3,"pair:fmi"); + memory->create(spi,3,"langevin:spi"); + memory->create(fmi,3,"langevin:fmi"); + gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); dts = update->dt; - Gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); - double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) - double kb = force->boltz; - D = (MY_2PI*Gil_factor*kb*temp)/hbar/dts; - sigma = sqrt(D); + double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) + double kb = force->boltz; // eV/K + D = (MY_2PI*alpha_t*gil_factor*kb*temp); + D /= (hbar*dts); + sigma = sqrt(2.0*D); } /* ---------------------------------------------------------------------- */ @@ -155,7 +156,7 @@ void FixLangevinSpin::setup(int vflag) } /* ---------------------------------------------------------------------- */ - +/* void FixLangevinSpin::post_force(int vflag) { double **sp = atom->sp; @@ -163,11 +164,6 @@ void FixLangevinSpin::post_force(int vflag) int *mask = atom->mask; const int nlocal = atom->nlocal; - double sx, sy, sz; - double fmx, fmy, fmz; - double cpx, cpy, cpz; - double rx, ry, rz; - // add the damping to the effective field of each spin for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -194,6 +190,7 @@ void FixLangevinSpin::post_force(int vflag) } } +*/ /* ---------------------------------------------------------------------- */ void FixLangevinSpin::add_tdamping(double *spi, double *fmi) @@ -213,25 +210,27 @@ void FixLangevinSpin::add_temperature(double *fmi) { //#define GAUSSIAN_R #if defined GAUSSIAN_R - // drawing gausian random dist + // drawing gaussian random dist double rx = sigma*random->gaussian(); double ry = sigma*random->gaussian(); double rz = sigma*random->gaussian(); #else - double rx = sigma*(random->uniform() - 0.5); - double ry = sigma*(random->uniform() - 0.5); - double rz = sigma*(random->uniform() - 0.5); + double rx = sigma*(-1.0+2.0*random->uniform()); + double ry = sigma*(-1.0+2.0*random->uniform()); + double rz = sigma*(-1.0+2.0*random->uniform()); #endif +// printf("test Gaussian vals: %g \n",rx); + // adding the random field fmi[0] += rx; fmi[1] += ry; fmi[2] += rz; // adding Gilbert's prefactor - fmi[0] *= Gil_factor; - fmi[1] *= Gil_factor; - fmi[2] *= Gil_factor; + fmi[0] *= gil_factor; + fmi[1] *= gil_factor; + fmi[2] *= gil_factor; } diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index 2fe6c6fab5..0afcdfbbae 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -31,7 +31,7 @@ class FixLangevinSpin : public Fix { int setmask(); void init(); void setup(int); - virtual void post_force(int); +// virtual void post_force(int); void post_force_respa(int, int, int); // add transverse damping and temperature void add_tdamping(double *, double *); @@ -41,11 +41,13 @@ class FixLangevinSpin : public Fix { protected: double *spi, *fmi; - // transverse and longitudinal damping coeff. - double alpha_t, alpha_l; - // timestep, temperature, noise intensity - double dts,temp,D,sigma; - double Gil_factor; + double alpha_t; // mag. transverse damping coeff. + double alpha_l; // mag. longitudinal damping coeff. + double dts; // timestep + double temp; // spin bath temperature + double D,sigma; // bath intensity var. + + double gil_factor; // Gilbert's prefactor char *id_temp; class Compute *temperature; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp new file mode 100755 index 0000000000..1339c90d3d --- /dev/null +++ b/src/SPIN/pair_spin_exchange.cpp @@ -0,0 +1,484 @@ +/* ---------------------------------------------------------------------- + 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 authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) +------------------------------------------------------------------------- */ + +#include +#include +#include + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "pair_hybrid.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "math_const.h" +#include "memory.h" +#include "pair_spin_exchange.h" +#include "update.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairSpinExchange::PairSpinExchange(LAMMPS *lmp) : Pair(lmp) +{ + hbar = force->hplanck/MY_2PI; + + newton_pair_spin = 0; // no newton pair for now + // newton_pair = 0; + + single_enable = 0; + exch_flag = 0; + exch_mech_flag = 0; + + no_virial_fdotr_compute = 1; +} + +/* ---------------------------------------------------------------------- */ + +PairSpinExchange::~PairSpinExchange() +{ + if (allocated) { + memory->destroy(setflag); + + memory->destroy(cut_spin_exchange); + memory->destroy(J1_mag); + memory->destroy(J1_mech); + memory->destroy(J2); + memory->destroy(J3); + + memory->destroy(spi); + memory->destroy(spj); + memory->destroy(fi); + memory->destroy(fj); + memory->destroy(fmi); + memory->destroy(fmj); + memory->destroy(rij); + + memory->destroy(cutsq); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairSpinExchange::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double evdwl,ecoul; + double xtmp,ytmp,ztmp; + double fix,fiy,fiz,fjx,fjy,fjz; + double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; + double cut_ex_2,cut_spin_exchange_global2; + double rsq,rd; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + cut_spin_exchange_global2 = cut_spin_exchange_global*cut_spin_exchange_global; + + double **x = atom->x; + double **f = atom->f; + double **fm = atom->fm; + double *mumag = atom->mumag; + double **sp = atom->sp; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // pair spin computations + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + // loop on neighbors + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + evdwl = 0.0; + + fi[0] = fi[1] = fi[2] = 0.0; + fj[0] = fj[1] = fj[2] = 0.0; + fmi[0] = fmi[1] = fmi[2] = 0.0; + fmj[0] = fmj[1] = fmj[2] = 0.0; + rij[0] = rij[1] = rij[2] = 0.0; + + rij[0] = x[j][0] - xtmp; + rij[1] = x[j][1] - ytmp; + rij[2] = x[j][2] - ztmp; + + // square of inter-atomic distance + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + double inorm = 1.0/sqrt(rsq); + rij[0] *= inorm; + rij[1] *= inorm; + rij[2] *= inorm; + + itype = type[i]; + jtype = type[j]; + + // exchange interaction + if (exch_flag) { + cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; + if (rsq <= cut_ex_2) { + compute_exchange(i,j,rsq,fmi,fmj,spi,spj); + compute_exchange_mech(i,j,rsq,rij,fi,fj,spi,spj); + } + } + + f[i][0] += fi[0]; + f[i][1] += fi[1]; + f[i][2] += fi[2]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; + fm[i][2] += fmi[2]; + +// if (newton_pair || j < nlocal) { + if (newton_pair_spin) { + f[j][0] += fj[0]; + f[j][1] += fj[1]; + f[j][2] += fj[2]; + fm[j][0] += fmj[0]; + fm[j][1] += fmj[1]; + fm[j][2] += fmj[2]; + } + + if (eflag) { + if (rsq <= cut_ex_2) { + evdwl -= spi[0]*fmi[0]; + evdwl -= spi[1]*fmi[1]; + evdwl -= spi[2]*fmi[2]; + evdwl *= hbar; + } else evdwl = 0.0; + } + + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, + evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + } + } + + if (vflag_fdotr) virial_fdotr_compute(); + +} + +/* ---------------------------------------------------------------------- */ +void PairSpinExchange::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj, double *spi, double *spj) +{ + int *type = atom->type; + int itype, jtype; + double Jex, ra; + itype = type[i]; + jtype = type[j]; + + ra = rsq/J3[itype][jtype]/J3[itype][jtype]; + Jex = 4.0*J1_mag[itype][jtype]*ra; + Jex *= (1.0-J2[itype][jtype]*ra); + Jex *= exp(-ra); + + fmi[0] += 0.5*Jex*spj[0]; + fmi[1] += 0.5*Jex*spj[1]; + fmi[2] += 0.5*Jex*spj[2]; + + fmj[0] += 0.5*Jex*spi[0]; + fmj[1] += 0.5*Jex*spi[1]; + fmj[2] += 0.5*Jex*spi[2]; + +} + +/* ---------------------------------------------------------------------- */ +void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double *rij, double *fi, double *fj, double *spi, double *spj) +{ + int *type = atom->type; + int itype, jtype; + double Jex, Jex_mech, ra, rr, iJ3; + itype = type[i]; + jtype = type[j]; + Jex = J1_mech[itype][jtype]; + iJ3 = 1.0/(J3[itype][jtype]*J3[itype][jtype]); + + ra = rsq*iJ3; + rr = sqrt(rsq)*iJ3; + + Jex_mech = 1.0-ra-J2[itype][jtype]*ra*(2.0-ra); + Jex_mech *= 8.0*Jex*rr*exp(-ra); + Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); + + fi[0] += Jex_mech*rij[0]; + fi[1] += Jex_mech*rij[1]; + fi[2] += Jex_mech*rij[2]; + + fj[0] -= Jex_mech*rij[0]; + fj[1] -= Jex_mech*rij[1]; + fj[2] -= Jex_mech*rij[2]; + +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairSpinExchange::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(cut_spin_exchange,n+1,n+1,"pair:cut_spin_exchange"); + memory->create(J1_mag,n+1,n+1,"pair:J1_mag"); + memory->create(J1_mech,n+1,n+1,"pair:J1_mech"); + memory->create(J2,n+1,n+1,"pair:J2"); + memory->create(J3,n+1,n+1,"pair:J3"); + + memory->create(spi,3,"pair:spi"); + memory->create(spj,3,"pair:spj"); + memory->create(fi,3,"pair:fi"); + memory->create(fj,3,"pair:fj"); + memory->create(fmi,3,"pair:fmi"); + memory->create(fmj,3,"pair:fmj"); + memory->create(rij,3,"pair:rij"); + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpinExchange::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); + + cut_spin_exchange_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i+1; j <= atom->ntypes; j++) + if (setflag[i][j]) { + cut_spin_exchange[i][j] = cut_spin_exchange_global; + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpinExchange::coeff(int narg, char **arg) +{ + const double hbar = force->hplanck/MY_2PI; + + if (!allocated) allocate(); + + // set exch_mech_flag to 1 if magneto-mech simulation + if (strstr(force->pair_style,"pair/spin")) { + exch_mech_flag = 0; + } else if (strstr(force->pair_style,"hybrid/overlay")) { + exch_mech_flag = 1; + } else error->all(FLERR,"Incorrect args in pair_style command"); + + + if (strcmp(arg[2],"exchange")==0){ + if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); + exch_flag = 1; + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + const double rij = force->numeric(FLERR,arg[3]); + const double j1 = (force->numeric(FLERR,arg[4])); + const double j2 = force->numeric(FLERR,arg[5]); + const double j3 = force->numeric(FLERR,arg[6]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_exchange[i][j] = rij; + J1_mag[i][j] = j1/hbar; + if (exch_mech_flag) { + J1_mech[i][j] = j1; + } else { + J1_mech[i][j] = 0.0; + } + J2[i][j] = j2; + J3[i][j] = j3; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else error->all(FLERR,"Incorrect args in pair_style command"); + +} + + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpinExchange::init_style() +{ + if (!atom->sp_flag || !atom->mumag_flag) + error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + + neighbor->request(this,instance_me); + + // check this half/full request +#define FULLNEI +#if defined FULLNEI + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; +#endif + +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpinExchange::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_spin_exchange_global; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinExchange::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]) { + if (exch_flag){ + fwrite(&J1_mag[i][j],sizeof(double),1,fp); + fwrite(&J1_mech[i][j],sizeof(double),1,fp); + fwrite(&J2[i][j],sizeof(double),1,fp); + fwrite(&J3[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_exchange[i][j],sizeof(double),1,fp); + } + } + } + } + +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinExchange::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(&J1_mag[i][j],sizeof(double),1,fp); + fread(&J1_mech[i][j],sizeof(double),1,fp); + fread(&J2[i][j],sizeof(double),1,fp); + fread(&J2[i][j],sizeof(double),1,fp); + fread(&cut_spin_exchange[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&J1_mag[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J1_mech[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J2[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&J3[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_exchange[i][j],1,MPI_DOUBLE,0,world); + } + } + } +} + + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinExchange::write_restart_settings(FILE *fp) +{ + fwrite(&cut_spin_exchange_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinExchange::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_spin_exchange_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_spin_exchange_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +} diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h new file mode 100755 index 0000000000..14cdf7a959 --- /dev/null +++ b/src/SPIN/pair_spin_exchange.h @@ -0,0 +1,89 @@ +/* -*- 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(pair/spin/exchange,PairSpinExchange) + +#else + +#ifndef LMP_PAIR_SPIN_EXCHANGE_H +#define LMP_PAIR_SPIN_EXCHANGE_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairSpinExchange : public Pair { + public: + PairSpinExchange(class LAMMPS *); + virtual ~PairSpinExchange(); + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + void init_style(); + double init_one(int, int); + + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + + void compute_exchange(int, int, double, double *, double *,double *, double *); + void compute_exchange_mech(int, int, double, double *, double *, double *,double *, double *); + + int exch_flag; // mag. exchange flag + int exch_mech_flag; // mech. exchange flags + + double cut_spin_exchange_global; // global exchange cutoff + double **cut_spin_exchange; // cutoff distance exchange + + protected: + int newton_pair_spin; + double hbar; + + double **J1_mag, **J1_mech; // exchange coeffs Jij + double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang + + double *spi, *spj; // temp. spin vals. in compute + double *fi, *fj; // temp. mech. forces in compute + double *fmi, *fmj; // temp. mag. forces in compute + double *rij; // norm. inter atomic vectors + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args in pair_spin command + +Self-explanatory. + +E: Spin simulations require metal unit style + +Self-explanatory. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: Pair spin requires atom attributes sp, mumag + +The atom style defined does not have these attributes. + +*/ diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_me.cpp new file mode 100755 index 0000000000..b48abe93e6 --- /dev/null +++ b/src/SPIN/pair_spin_me.cpp @@ -0,0 +1,460 @@ +/* ---------------------------------------------------------------------- + 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 authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) +------------------------------------------------------------------------- */ + +#include +#include +#include + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "pair_hybrid.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "math_const.h" +#include "memory.h" +#include "pair_spin_me.h" +#include "update.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairSpinMe::PairSpinMe(LAMMPS *lmp) : Pair(lmp) +{ + hbar = force->hplanck/MY_2PI; + + newton_pair_spin = 0; // no newton pair for now + // newton_pair = 0; + + single_enable = 0; + me_flag = 0; + + no_virial_fdotr_compute = 1; +} + +/* ---------------------------------------------------------------------- */ + +PairSpinMe::~PairSpinMe() +{ + if (allocated) { + memory->destroy(setflag); + + memory->destroy(cut_spin_me); + memory->destroy(ME); + memory->destroy(v_mex); + memory->destroy(v_mey); + memory->destroy(v_mez); + + memory->destroy(spi); + memory->destroy(spj); + memory->destroy(fi); + memory->destroy(fj); + memory->destroy(fmi); + memory->destroy(fmj); + memory->destroy(rij); + + memory->destroy(cutsq); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairSpinMe::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double evdwl,ecoul; + double xi,yi,zi; + double fix,fiy,fiz,fjx,fjy,fjz; + double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; + double cut_me_2,cut_spin_me_global2; + double rsq,rd; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + cut_spin_me_global2 = cut_spin_me_global*cut_spin_me_global; + + double **x = atom->x; + double **f = atom->f; + double **fm = atom->fm; + double *mumag = atom->mumag; + double **sp = atom->sp; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // magneto-electric computation + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + // loop on neighbors + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + evdwl = 0.0; + + fi[0] = fi[1] = fi[2] = 0.0; + fj[0] = fj[1] = fj[2] = 0.0; + fmi[0] = fmi[1] = fmi[2] = 0.0; + fmj[0] = fmj[1] = fmj[2] = 0.0; + rij[0] = rij[1] = rij[2] = 0.0; + + rij[0] = x[j][0] - xi; + rij[1] = x[j][1] - yi; + rij[2] = x[j][2] - zi; + + // square of inter-atomic distance + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + double inorm = 1.0/sqrt(rsq); + rij[0] *= inorm; + rij[1] *= inorm; + rij[2] *= inorm; + + itype = type[i]; + jtype = type[j]; + + // me interaction + if (me_flag){ + cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; + if (rsq <= cut_me_2){ + compute_me(i,j,fmi,fmj,spi,spj); + } + } + + f[i][0] += fi[0]; + f[i][1] += fi[1]; + f[i][2] += fi[2]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; + fm[i][2] += fmi[2]; + +// if (newton_pair || j < nlocal) { + if (newton_pair_spin) { + f[j][0] += fj[0]; + f[j][1] += fj[1]; + f[j][2] += fj[2]; + fm[j][0] += fmj[0]; + fm[j][1] += fmj[1]; + fm[j][2] += fmj[2]; + } + + if (eflag) { + if (rsq <= cut_me_2) { + evdwl -= spi[0]*fmi[0]; + evdwl -= spi[1]*fmi[1]; + evdwl -= spi[2]*fmi[2]; + evdwl *= hbar; + } else evdwl = 0.0; + } + + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, + evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + } + } + + if (vflag_fdotr) virial_fdotr_compute(); + +} + + +/* ---------------------------------------------------------------------- */ +void PairSpinMe::compute_me(int i, int j, double *fmi, double *fmj, double *spi, double *spj) +{ + int *type = atom->type; + int itype, jtype; + itype = type[i]; + jtype = type[j]; + double **sp = atom->sp; + double **x = atom->x; + double meix,meiy,meiz; + double rx, ry, rz, inorm; + + rx = x[j][0] - x[i][0]; + ry = x[j][1] - x[i][1]; + rz = x[j][2] - x[i][2]; + inorm = 1.0/sqrt(rx*rx+ry*ry+rz*rz); + rx *= inorm; + ry *= inorm; + rz *= inorm; + + meix = v_mey[itype][jtype]*rz - v_mez[itype][jtype]*ry; + meiy = v_mez[itype][jtype]*rx - v_mex[itype][jtype]*rz; + meiz = v_mex[itype][jtype]*ry - v_mey[itype][jtype]*rx; + + meix *= ME[itype][jtype]; + meiy *= ME[itype][jtype]; + meiz *= ME[itype][jtype]; + + fmi[0] += spj[1]*meiz - spj[2]*meiy; + fmi[1] += spj[2]*meix - spj[0]*meiz; + fmi[2] += spj[0]*meiy - spj[1]*meix; + + fmj[0] -= spi[1]*meiz - spi[2]*meiy; + fmj[1] -= spi[2]*meix - spi[0]*meiz; + fmj[2] -= spi[0]*meiy - spi[1]*meix; + +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairSpinMe::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(cut_spin_me,n+1,n+1,"pair:cut_spin_me"); + memory->create(ME,n+1,n+1,"pair:ME"); + memory->create(v_mex,n+1,n+1,"pair:ME_vector_x"); + memory->create(v_mey,n+1,n+1,"pair:ME_vector_y"); + memory->create(v_mez,n+1,n+1,"pair:ME_vector_z"); + + memory->create(spi,3,"pair:spi"); + memory->create(spj,3,"pair:spj"); + memory->create(fi,3,"pair:fi"); + memory->create(fj,3,"pair:fj"); + memory->create(fmi,3,"pair:fmi"); + memory->create(fmj,3,"pair:fmj"); + memory->create(rij,3,"pair:rij"); + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpinMe::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); + + cut_spin_me_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i+1; j <= atom->ntypes; j++) + if (setflag[i][j]) { + cut_spin_me[i][j] = cut_spin_me_global; + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpinMe::coeff(int narg, char **arg) +{ + const double hbar = force->hplanck/MY_2PI; + + if (!allocated) allocate(); + + if (strcmp(arg[2],"me")==0) { + if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); + me_flag = 1; + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + const double rij = force->numeric(FLERR,arg[3]); + const double me = (force->numeric(FLERR,arg[4]))/hbar; + double mex = force->numeric(FLERR,arg[5]); + double mey = force->numeric(FLERR,arg[6]); + double mez = force->numeric(FLERR,arg[7]); + + double inorm = 1.0/(mex*mex+mey*mey+mez*mez); + mex *= inorm; + mey *= inorm; + mez *= inorm; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_me[i][j] = rij; + ME[i][j] = me; + v_mex[i][j] = mex; + v_mey[i][j] = mey; + v_mez[i][j] = mez; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else error->all(FLERR,"Incorrect args in pair_style command"); + +} + + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpinMe::init_style() +{ + if (!atom->sp_flag || !atom->mumag_flag) + error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + + neighbor->request(this,instance_me); + + // check this half/full request +#define FULLNEI +#if defined FULLNEI + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; +#endif + +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpinMe::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_spin_me_global; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinMe::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]) { + if (me_flag) { + fwrite(&ME[i][j],sizeof(double),1,fp); + fwrite(&v_mex[i][j],sizeof(double),1,fp); + fwrite(&v_mey[i][j],sizeof(double),1,fp); + fwrite(&v_mez[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_me[i][j],sizeof(double),1,fp); + } + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinMe::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(&ME[i][j],sizeof(double),1,fp); + fread(&v_mex[i][j],sizeof(double),1,fp); + fread(&v_mey[i][j],sizeof(double),1,fp); + fread(&v_mez[i][j],sizeof(double),1,fp); + fread(&cut_spin_me[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&ME[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&v_mex[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&v_mey[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&v_mez[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_me[i][j],1,MPI_DOUBLE,0,world); + } + } + } +} + + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinMe::write_restart_settings(FILE *fp) +{ + fwrite(&cut_spin_me_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinMe::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_spin_me_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_spin_me_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +} diff --git a/src/SPIN/pair_spin_me.h b/src/SPIN/pair_spin_me.h new file mode 100755 index 0000000000..fb216a61ea --- /dev/null +++ b/src/SPIN/pair_spin_me.h @@ -0,0 +1,87 @@ +/* -*- 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(pair/spin/me,PairSpinMe) + +#else + +#ifndef LMP_PAIR_SPIN_ME_H +#define LMP_PAIR_SPIN_ME_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairSpinMe : public Pair { + public: + PairSpinMe(class LAMMPS *); + virtual ~PairSpinMe(); + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + void init_style(); + double init_one(int, int); + + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + + void compute_me(int, int, double *, double *, double *, double *); + + int me_flag; // me flag + + double cut_spin_me_global; // global me cutoff + double **cut_spin_me; // me cutoff distance + + protected: + int newton_pair_spin; + double hbar; + + double **ME; // me coeff in eV + double **v_mex, **v_mey, **v_mez;// me direction + + double *spi, *spj; // temp. spin vals. in compute + double *fi, *fj; // temp. mech. forces in compute + double *fmi, *fmj; // temp. mag. forces in compute + double *rij; // norm. inter atomic vectors + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args in pair_spin command + +Self-explanatory. + +E: Spin simulations require metal unit style + +Self-explanatory. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: Pair spin requires atom attributes sp, mumag + +The atom style defined does not have these attributes. + +*/ diff --git a/src/SPIN/pair_spin_soc_dmi.cpp b/src/SPIN/pair_spin_soc_dmi.cpp new file mode 100755 index 0000000000..eb4f957c8e --- /dev/null +++ b/src/SPIN/pair_spin_soc_dmi.cpp @@ -0,0 +1,444 @@ +/* ---------------------------------------------------------------------- + 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 authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) +------------------------------------------------------------------------- */ + +#include +#include +#include + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "pair_hybrid.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "math_const.h" +#include "memory.h" +#include "pair_spin_soc_dmi.h" +#include "update.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairSpinSocDmi::PairSpinSocDmi(LAMMPS *lmp) : Pair(lmp) +{ + hbar = force->hplanck/MY_2PI; + + newton_pair_spin = 0; // no newton pair for now + // newton_pair = 0; + + single_enable = 0; + dmi_flag = 0; + + no_virial_fdotr_compute = 1; +} + +/* ---------------------------------------------------------------------- */ + +PairSpinSocDmi::~PairSpinSocDmi() +{ + if (allocated) { + memory->destroy(setflag); + + memory->destroy(cut_spin_dmi); + memory->destroy(DM); + memory->destroy(v_dmx); + memory->destroy(v_dmy); + memory->destroy(v_dmz); + + memory->destroy(spi); + memory->destroy(spj); + memory->destroy(fi); + memory->destroy(fj); + memory->destroy(fmi); + memory->destroy(fmj); + memory->destroy(rij); + + memory->destroy(cutsq); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairSpinSocDmi::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double evdwl,ecoul; + double xi,yi,zi; + double fix,fiy,fiz,fjx,fjy,fjz; + double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; + double cut_dmi_2; + double rsq,rd; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + cut_dmi_2 = cut_spin_dmi_global*cut_spin_dmi_global; + + double **x = atom->x; + double **f = atom->f; + double **fm = atom->fm; + double *mumag = atom->mumag; + double **sp = atom->sp; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // dmi computation + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + // loop on neighbors + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + evdwl = 0.0; + + fi[0] = fi[1] = fi[2] = 0.0; + fj[0] = fj[1] = fj[2] = 0.0; + fmi[0] = fmi[1] = fmi[2] = 0.0; + fmj[0] = fmj[1] = fmj[2] = 0.0; + rij[0] = rij[1] = rij[2] = 0.0; + + rij[0] = x[j][0] - xi; + rij[1] = x[j][1] - yi; + rij[2] = x[j][2] - zi; + + // square of inter-atomic distance + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + double inorm = 1.0/sqrt(rsq); + rij[0] *= inorm; + rij[1] *= inorm; + rij[2] *= inorm; + + itype = type[i]; + jtype = type[j]; + + // dm interaction + if (dmi_flag){ + cut_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; + if (rsq <= cut_dmi_2){ + compute_dmi(i,j,fmi,fmj,spi,spj); + } + } + + f[i][0] += fi[0]; + f[i][1] += fi[1]; + f[i][2] += fi[2]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; + fm[i][2] += fmi[2]; + +// if (newton_pair || j < nlocal) { + if (newton_pair_spin) { + f[j][0] += fj[0]; + f[j][1] += fj[1]; + f[j][2] += fj[2]; + fm[j][0] += fmj[0]; + fm[j][1] += fmj[1]; + fm[j][2] += fmj[2]; + } + + if (eflag) { + if (rsq <= cut_dmi_2) { + evdwl -= spi[0]*fmi[0]; + evdwl -= spi[1]*fmi[1]; + evdwl -= spi[2]*fmi[2]; + evdwl *= hbar; + } else evdwl = 0.0; + } + + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, + evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + } + } + + if (vflag_fdotr) virial_fdotr_compute(); + +} + +/* ---------------------------------------------------------------------- */ +void PairSpinSocDmi::compute_dmi(int i, int j, double *fmi, double *fmj, double *spi, double *spj) +{ + int *type = atom->type; + int itype, jtype; + double dmix,dmiy,dmiz; + itype = type[i]; + jtype = type[j]; + + dmix = DM[itype][jtype]*v_dmx[itype][jtype]; + dmiy = DM[itype][jtype]*v_dmy[itype][jtype]; + dmiz = DM[itype][jtype]*v_dmz[itype][jtype]; + + fmi[0] += spj[1]*dmiz-spj[2]*dmiy; + fmi[1] += spj[2]*dmix-spj[0]*dmiz; + fmi[2] += spj[0]*dmiy-spj[1]*dmix; + + fmj[0] -= spi[1]*dmiz-spi[2]*dmiy; + fmj[1] -= spi[2]*dmix-spi[0]*dmiz; + fmj[2] -= spi[0]*dmiy-spi[1]*dmix; +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairSpinSocDmi::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(cut_spin_dmi,n+1,n+1,"pair:cut_spin_dmi"); + memory->create(DM,n+1,n+1,"pair:DM"); + memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); + memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); + memory->create(v_dmz,n+1,n+1,"pair:DM_vector_z"); + + memory->create(spi,3,"pair:spi"); + memory->create(spj,3,"pair:spj"); + memory->create(fi,3,"pair:fi"); + memory->create(fj,3,"pair:fj"); + memory->create(fmi,3,"pair:fmi"); + memory->create(fmj,3,"pair:fmj"); + memory->create(rij,3,"pair:rij"); + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpinSocDmi::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair/spin/dmi command"); + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); + + cut_spin_dmi_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i+1; j <= atom->ntypes; j++) + if (setflag[i][j]) { + cut_spin_dmi[i][j] = cut_spin_dmi_global; + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpinSocDmi::coeff(int narg, char **arg) +{ + const double hbar = force->hplanck/MY_2PI; + + if (!allocated) allocate(); + + if (strcmp(arg[2],"dmi")==0) { + if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); + dmi_flag = 1; + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + const double rij = force->numeric(FLERR,arg[3]); + const double dm = (force->numeric(FLERR,arg[4]))/hbar; + double dmx = force->numeric(FLERR,arg[5]); + double dmy = force->numeric(FLERR,arg[6]); + double dmz = force->numeric(FLERR,arg[7]); + + double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); + dmx *= inorm; + dmy *= inorm; + dmz *= inorm; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_dmi[i][j] = rij; + DM[i][j] = dm; + v_dmx[i][j] = dmx; + v_dmy[i][j] = dmy; + v_dmz[i][j] = dmz; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else error->all(FLERR,"Incorrect args in pair_style command"); + +} + + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpinSocDmi::init_style() +{ + if (!atom->sp_flag || !atom->mumag_flag) + error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + + neighbor->request(this,instance_me); + + // check this half/full request +#define FULLNEI +#if defined FULLNEI + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; +#endif + +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpinSocDmi::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_spin_dmi_global; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinSocDmi::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]) { + if (dmi_flag) { + fwrite(&DM[i][j],sizeof(double),1,fp); + fwrite(&v_dmx[i][j],sizeof(double),1,fp); + fwrite(&v_dmy[i][j],sizeof(double),1,fp); + fwrite(&v_dmz[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_dmi[i][j],sizeof(double),1,fp); + } + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinSocDmi::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(&DM[i][j],sizeof(double),1,fp); + fread(&v_dmx[i][j],sizeof(double),1,fp); + fread(&v_dmy[i][j],sizeof(double),1,fp); + fread(&v_dmz[i][j],sizeof(double),1,fp); + fread(&cut_spin_dmi[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&DM[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&v_dmx[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&v_dmy[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&v_dmz[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_dmi[i][j],1,MPI_DOUBLE,0,world); + } + } + } +} + + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinSocDmi::write_restart_settings(FILE *fp) +{ + fwrite(&cut_spin_dmi_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinSocDmi::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_spin_dmi_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_spin_dmi_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +} diff --git a/src/SPIN/pair_spin_soc_dmi.h b/src/SPIN/pair_spin_soc_dmi.h new file mode 100755 index 0000000000..a28d1772d7 --- /dev/null +++ b/src/SPIN/pair_spin_soc_dmi.h @@ -0,0 +1,87 @@ +/* -*- 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(pair/spin/soc/dmi,PairSpinSocDmi) + +#else + +#ifndef LMP_PAIR_SPIN_SOC_DMI_H +#define LMP_PAIR_SPIN_SOC_DMI_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairSpinSocDmi : public Pair { + public: + PairSpinSocDmi(class LAMMPS *); + virtual ~PairSpinSocDmi(); + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + void init_style(); + double init_one(int, int); + + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + + void compute_dmi(int, int, double *, double *, double *, double *); + + int dmi_flag; // dmi flag + + double cut_spin_dmi_global; // short range pair cutoff + double **cut_spin_dmi; // cutoff distance dmi + + protected: + int newton_pair_spin; + double hbar; + + double **DM; // dmi coeff in eV + double **v_dmx, **v_dmy, **v_dmz;// dmi direction + + double *spi, *spj; // temp. spin vals. in compute + double *fi, *fj; // temp. mech. forces in compute + double *fmi, *fmj; // temp. mag. forces in compute + double *rij; // norm. inter atomic vectors + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args in pair_spin command + +Self-explanatory. + +E: Spin simulations require metal unit style + +Self-explanatory. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: Pair spin requires atom attributes sp, mumag + +The atom style defined does not have these attributes. + +*/ diff --git a/src/SPIN/pair_spin_soc_landau.cpp b/src/SPIN/pair_spin_soc_landau.cpp new file mode 100755 index 0000000000..13cd83868b --- /dev/null +++ b/src/SPIN/pair_spin_soc_landau.cpp @@ -0,0 +1,498 @@ +/* ---------------------------------------------------------------------- + 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 authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) +------------------------------------------------------------------------- */ + +#include +#include +#include + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "pair_hybrid.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "math_const.h" +#include "memory.h" +#include "pair_spin_soc_landau.h" +#include "update.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairSpinSocLandau::PairSpinSocLandau(LAMMPS *lmp) : Pair(lmp) +{ + hbar = force->hplanck/MY_2PI; + + newton_pair_spin = 0; // no newton pair for now + // newton_pair = 0; + + single_enable = 0; + soc_neel_flag = 0; + + no_virial_fdotr_compute = 1; +} + +/* ---------------------------------------------------------------------- */ + +PairSpinSocLandau::~PairSpinSocLandau() +{ + if (allocated) { + memory->destroy(setflag); + + memory->destroy(cut_soc_neel); + memory->destroy(K1); + memory->destroy(K1_mech); + memory->destroy(K2); + memory->destroy(K3); + + memory->destroy(spi); + memory->destroy(spj); + memory->destroy(fi); + memory->destroy(fj); + memory->destroy(fmi); + memory->destroy(fmj); + memory->destroy(rij); + + memory->destroy(cutsq); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairSpinSocLandau::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double evdwl,ecoul; + double xi,yi,zi; + double fix,fiy,fiz,fjx,fjy,fjz; + double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; + double cut_soc_neel_2,cut_soc_global2; + double rsq,rd; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + cut_soc_global2 = cut_soc_global*cut_soc_global; + + double **x = atom->x; + double **f = atom->f; + double **fm = atom->fm; + double *mumag = atom->mumag; + double **sp = atom->sp; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // pair spin computations + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + // loop on neighbors + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + evdwl = 0.0; + + fi[0] = fi[1] = fi[2] = 0.0; + fj[0] = fj[1] = fj[2] = 0.0; + fmi[0] = fmi[1] = fmi[2] = 0.0; + fmj[0] = fmj[1] = fmj[2] = 0.0; + rij[0] = rij[1] = rij[2] = 0.0; + + rij[0] = x[j][0] - xi; + rij[1] = x[j][1] - yi; + rij[2] = x[j][2] - zi; + + // square of inter-atomic distance + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + double inorm = 1.0/sqrt(rsq); + rij[0] *= inorm; + rij[1] *= inorm; + rij[2] *= inorm; + + itype = type[i]; + jtype = type[j]; + + // compute mag. and mech. components of soc + cut_soc_neel_2 = cut_soc_neel[itype][jtype]*cut_soc_neel[itype][jtype]; + if (rsq <= cut_soc_neel_2) { + compute_soc_neel(i,j,rsq,rij,fmi,fmj,spi,spj); + compute_soc_mech_neel(i,j,rsq,rij,fi,fj,spi,spj); + } + + f[i][0] += fi[0]; + f[i][1] += fi[1]; + f[i][2] += fi[2]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; + fm[i][2] += fmi[2]; + +// if (newton_pair || j < nlocal) { + if (newton_pair_spin) { + f[j][0] += fj[0]; + f[j][1] += fj[1]; + f[j][2] += fj[2]; + fm[j][0] += fmj[0]; + fm[j][1] += fmj[1]; + fm[j][2] += fmj[2]; + } + + if (eflag) { + if (rsq <= cut_soc_neel_2) { + evdwl -= spi[0]*fmi[0]; + evdwl -= spi[1]*fmi[1]; + evdwl -= spi[2]*fmi[2]; + evdwl *= hbar; + } else evdwl = 0.0; + } + + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, + evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + } + } + + if (vflag_fdotr) virial_fdotr_compute(); + +} + +/* ---------------------------------------------------------------------- */ +void PairSpinSocLandau::compute_soc_neel(int i, int j, double rsq, double *rij, double *fmi, double *fmj, double *spi, double *spj) +{ + int *type = atom->type; + int itype, jtype; + double Kij, Kij_3, ra, scalar; + itype = type[i]; + jtype = type[j]; + + ra = rsq/K3[itype][jtype]/K3[itype][jtype]; + Kij = 4.0*K1[itype][jtype]*ra; + Kij *= (1.0-K2[itype][jtype]*ra); + Kij *= exp(-ra); + + scalar = rij[0]*spj[0]+rij[1]*spj[1]+rij[2]*spj[2]; + Kij_3 = Kij/3.0; + + fmi[0] += Kij*scalar*rij[0]-Kij_3*spj[0]; + fmi[1] += Kij*scalar*rij[1]-Kij_3*spj[1]; + fmi[2] += Kij*scalar*rij[2]-Kij_3*spj[2]; + + fmj[0] -= Kij*scalar*rij[0]+Kij_3*spi[0]; + fmj[1] -= Kij*scalar*rij[1]+Kij_3*spi[1]; + fmj[2] -= Kij*scalar*rij[2]+Kij_3*spi[2]; + +} + +/* ---------------------------------------------------------------------- */ +void PairSpinSocLandau::compute_soc_mech_neel(int i, int j, double rsq, double *rij, double *fi, double *fj, double *spi, double *spj) +{ + int *type = atom->type; + int itype, jtype; + double scalar_si_sj, scalar_rij_si, scalar_rij_sj; + double K_mech, Kij, dKij, ra, rr, drij, iK3; + double t1, t2, t3; + itype = type[i]; + jtype = type[j]; + + scalar_si_sj = spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]; + scalar_rij_si = rij[0]*spi[0]+rij[1]*spi[1]+rij[2]*spi[2]; + scalar_rij_sj = rij[0]*spj[0]+rij[1]*spj[1]+rij[2]*spj[2]; + + K_mech = K1_mech[itype][jtype]; + iK3 = 1.0/(K3[itype][jtype]*K3[itype][jtype]); + + drij = sqrt(rsq); + ra = rsq*iK3; + rr = drij*iK3; + + Kij *= (1.0-K2[itype][jtype]*ra); + Kij *= 4.0*K_mech*ra*exp(-ra); + + dKij = 1.0-ra-K2[itype][jtype]*ra*(2.0-ra); + dKij *= 8.0*K_mech*rr*exp(-ra); + + t1 = (dKij-2.0*Kij/drij)*scalar_rij_si*scalar_rij_sj; + t1 -= scalar_si_sj*dKij/3.0; + t2 = scalar_rij_sj*Kij/drij; + t3 = scalar_rij_si*Kij/drij; + + fi[0] += t1*rij[0]+t2*spi[0]+t3*spj[0]; + fi[1] += t1*rij[1]+t2*spi[1]+t3*spj[1]; + fi[2] += t1*rij[2]+t2*spi[2]+t3*spj[2]; + + fj[0] -= t1*rij[0]-t2*spi[0]-t3*spj[0]; + fj[1] -= t1*rij[1]-t2*spi[1]-t3*spj[1]; + fj[2] -= t1*rij[2]-t2*spi[2]-t3*spj[2]; + +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairSpinSocLandau::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(cut_soc_neel,n+1,n+1,"pair:cut_soc_neel"); + memory->create(K1,n+1,n+1,"pair:K1"); + memory->create(K1_mech,n+1,n+1,"pair:K1_mech"); + memory->create(K2,n+1,n+1,"pair:K2"); + memory->create(K3,n+1,n+1,"pair:K3"); + + memory->create(spi,3,"pair:spi"); + memory->create(spj,3,"pair:spj"); + memory->create(fi,3,"pair:fi"); + memory->create(fj,3,"pair:fj"); + memory->create(fmi,3,"pair:fmi"); + memory->create(fmj,3,"pair:fmj"); + memory->create(rij,3,"pair:rij"); + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpinSocLandau::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); + + cut_soc_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i+1; j <= atom->ntypes; j++) + if (setflag[i][j]) { + cut_soc_neel[i][j] = cut_soc_global; + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpinSocLandau::coeff(int narg, char **arg) +{ + const double hbar = force->hplanck/MY_2PI; + + if (!allocated) allocate(); + + // set mech_flag to 1 if magneto-mech simulation +//no longer correct: can be hybrid without magneto-mech + if (strstr(force->pair_style,"pair/spin")) { + mech_flag = 0; + } else if (strstr(force->pair_style,"hybrid/overlay")) { + mech_flag = 1; + } else error->all(FLERR,"Incorrect args in pair_style command"); + + + if (strcmp(arg[2],"neel")==0){ + if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); + soc_neel_flag = 1; + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + const double rij = force->numeric(FLERR,arg[3]); + const double k1 = (force->numeric(FLERR,arg[4])); + const double k2 = force->numeric(FLERR,arg[5]); + const double k3 = force->numeric(FLERR,arg[6]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_soc_neel[i][j] = rij; + K1[i][j] = k1/hbar; + if (mech_flag) { + K1_mech[i][j] = k1; + } else { + K1_mech[i][j] = 0.0; + } + K2[i][j] = k2; + K3[i][j] = k3; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else error->all(FLERR,"Incorrect args in pair_style command"); + +} + + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpinSocLandau::init_style() +{ + if (!atom->sp_flag || !atom->mumag_flag) + error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + + neighbor->request(this,instance_me); + + // check this half/full request +#define FULLNEI +#if defined FULLNEI + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; +#endif + +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpinSocLandau::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_soc_global; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinSocLandau::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]) { + if (soc_neel_flag){ + fwrite(&K1[i][j],sizeof(double),1,fp); + fwrite(&K1_mech[i][j],sizeof(double),1,fp); + fwrite(&K2[i][j],sizeof(double),1,fp); + fwrite(&K3[i][j],sizeof(double),1,fp); + fwrite(&cut_soc_neel[i][j],sizeof(double),1,fp); + } + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinSocLandau::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(&K1[i][j],sizeof(double),1,fp); + fread(&K1_mech[i][j],sizeof(double),1,fp); + fread(&K2[i][j],sizeof(double),1,fp); + fread(&K2[i][j],sizeof(double),1,fp); + fread(&cut_soc_neel[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&K1[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&K1_mech[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&K2[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&K3[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_soc_neel[i][j],1,MPI_DOUBLE,0,world); + } + } + } +} + + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinSocLandau::write_restart_settings(FILE *fp) +{ + fwrite(&cut_soc_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinSocLandau::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_soc_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_soc_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +} diff --git a/src/SPIN/pair_spin_soc_landau.h b/src/SPIN/pair_spin_soc_landau.h new file mode 100755 index 0000000000..c23739c071 --- /dev/null +++ b/src/SPIN/pair_spin_soc_landau.h @@ -0,0 +1,89 @@ +/* -*- 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(pair/spin/soc/landau,PairSpinSocLandau) + +#else + +#ifndef LMP_PAIR_SPIN_SOC_LANDAU_H +#define LMP_PAIR_SPIN_SOC_LANDAU_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairSpinSocLandau : public Pair { + public: + PairSpinSocLandau(class LAMMPS *); + virtual ~PairSpinSocLandau(); + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + void init_style(); + double init_one(int, int); + + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + + void compute_soc_neel(int, int, double, double *, double *, double *,double *, double *); + void compute_soc_mech_neel(int, int, double, double *, double *, double *,double *, double *); + + int soc_neel_flag; // soc neel flag + int mech_flag; // mech calc. flag + + double cut_soc_global; + double **cut_soc_neel; // cutoff distance exchange + + protected: + int newton_pair_spin; + double hbar; + + double **K1, **K1_mech; // exchange coeffs Kij + double **K2, **K3; // K1 in eV, K2 adim, K3 in Ang + + double *spi, *spj; // temp. spin vals. in compute + double *fi, *fj; // temp. mech. forces in compute + double *fmi, *fmj; // temp. mag. forces in compute + double *rij; // norm. inter atomic vectors + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args in pair_spin command + +Self-explanatory. + +E: Spin simulations require metal unit style + +Self-explanatory. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: Pair spin requires atom attributes sp, mumag + +The atom style defined does not have these attributes. + +*/ diff --git a/src/SPIN/pair_spin_soc_neel.cpp b/src/SPIN/pair_spin_soc_neel.cpp new file mode 100755 index 0000000000..47f1c7282d --- /dev/null +++ b/src/SPIN/pair_spin_soc_neel.cpp @@ -0,0 +1,498 @@ +/* ---------------------------------------------------------------------- + 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 authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) +------------------------------------------------------------------------- */ + +#include +#include +#include + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "pair_hybrid.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "math_const.h" +#include "memory.h" +#include "pair_spin_soc_neel.h" +#include "update.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairSpinSocNeel::PairSpinSocNeel(LAMMPS *lmp) : Pair(lmp) +{ + hbar = force->hplanck/MY_2PI; + + newton_pair_spin = 0; // no newton pair for now + // newton_pair = 0; + + single_enable = 0; + soc_neel_flag = 0; + + no_virial_fdotr_compute = 1; +} + +/* ---------------------------------------------------------------------- */ + +PairSpinSocNeel::~PairSpinSocNeel() +{ + if (allocated) { + memory->destroy(setflag); + + memory->destroy(cut_soc_neel); + memory->destroy(K1); + memory->destroy(K1_mech); + memory->destroy(K2); + memory->destroy(K3); + + memory->destroy(spi); + memory->destroy(spj); + memory->destroy(fi); + memory->destroy(fj); + memory->destroy(fmi); + memory->destroy(fmj); + memory->destroy(rij); + + memory->destroy(cutsq); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairSpinSocNeel::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double evdwl,ecoul; + double xi,yi,zi; + double fix,fiy,fiz,fjx,fjy,fjz; + double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; + double cut_soc_neel_2,cut_soc_global2; + double rsq,rd; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + cut_soc_global2 = cut_soc_global*cut_soc_global; + + double **x = atom->x; + double **f = atom->f; + double **fm = atom->fm; + double *mumag = atom->mumag; + double **sp = atom->sp; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // pair spin computations + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + // loop on neighbors + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + evdwl = 0.0; + + fi[0] = fi[1] = fi[2] = 0.0; + fj[0] = fj[1] = fj[2] = 0.0; + fmi[0] = fmi[1] = fmi[2] = 0.0; + fmj[0] = fmj[1] = fmj[2] = 0.0; + rij[0] = rij[1] = rij[2] = 0.0; + + rij[0] = x[j][0] - xi; + rij[1] = x[j][1] - yi; + rij[2] = x[j][2] - zi; + + // square of inter-atomic distance + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + double inorm = 1.0/sqrt(rsq); + rij[0] *= inorm; + rij[1] *= inorm; + rij[2] *= inorm; + + itype = type[i]; + jtype = type[j]; + + // compute mag. and mech. components of soc + cut_soc_neel_2 = cut_soc_neel[itype][jtype]*cut_soc_neel[itype][jtype]; + if (rsq <= cut_soc_neel_2) { + compute_soc_neel(i,j,rsq,rij,fmi,fmj,spi,spj); + compute_soc_mech_neel(i,j,rsq,rij,fi,fj,spi,spj); + } + + f[i][0] += fi[0]; + f[i][1] += fi[1]; + f[i][2] += fi[2]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; + fm[i][2] += fmi[2]; + +// if (newton_pair || j < nlocal) { + if (newton_pair_spin) { + f[j][0] += fj[0]; + f[j][1] += fj[1]; + f[j][2] += fj[2]; + fm[j][0] += fmj[0]; + fm[j][1] += fmj[1]; + fm[j][2] += fmj[2]; + } + + if (eflag) { + if (rsq <= cut_soc_neel_2) { + evdwl -= spi[0]*fmi[0]; + evdwl -= spi[1]*fmi[1]; + evdwl -= spi[2]*fmi[2]; + evdwl *= hbar; + } else evdwl = 0.0; + } + + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, + evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + } + } + + if (vflag_fdotr) virial_fdotr_compute(); + +} + +/* ---------------------------------------------------------------------- */ +void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double *rij, double *fmi, double *fmj, double *spi, double *spj) +{ + int *type = atom->type; + int itype, jtype; + double Kij, Kij_3, ra, scalar; + itype = type[i]; + jtype = type[j]; + + ra = rsq/K3[itype][jtype]/K3[itype][jtype]; + Kij = 4.0*K1[itype][jtype]*ra; + Kij *= (1.0-K2[itype][jtype]*ra); + Kij *= exp(-ra); + + scalar = rij[0]*spj[0]+rij[1]*spj[1]+rij[2]*spj[2]; + Kij_3 = Kij/3.0; + + fmi[0] += Kij*scalar*rij[0]-Kij_3*spj[0]; + fmi[1] += Kij*scalar*rij[1]-Kij_3*spj[1]; + fmi[2] += Kij*scalar*rij[2]-Kij_3*spj[2]; + + fmj[0] -= Kij*scalar*rij[0]+Kij_3*spi[0]; + fmj[1] -= Kij*scalar*rij[1]+Kij_3*spi[1]; + fmj[2] -= Kij*scalar*rij[2]+Kij_3*spi[2]; + +} + +/* ---------------------------------------------------------------------- */ +void PairSpinSocNeel::compute_soc_mech_neel(int i, int j, double rsq, double *rij, double *fi, double *fj, double *spi, double *spj) +{ + int *type = atom->type; + int itype, jtype; + double scalar_si_sj, scalar_rij_si, scalar_rij_sj; + double K_mech, Kij, dKij, ra, rr, drij, iK3; + double t1, t2, t3; + itype = type[i]; + jtype = type[j]; + + scalar_si_sj = spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]; + scalar_rij_si = rij[0]*spi[0]+rij[1]*spi[1]+rij[2]*spi[2]; + scalar_rij_sj = rij[0]*spj[0]+rij[1]*spj[1]+rij[2]*spj[2]; + + K_mech = K1_mech[itype][jtype]; + iK3 = 1.0/(K3[itype][jtype]*K3[itype][jtype]); + + drij = sqrt(rsq); + ra = rsq*iK3; + rr = drij*iK3; + + Kij *= (1.0-K2[itype][jtype]*ra); + Kij *= 4.0*K_mech*ra*exp(-ra); + + dKij = 1.0-ra-K2[itype][jtype]*ra*(2.0-ra); + dKij *= 8.0*K_mech*rr*exp(-ra); + + t1 = (dKij-2.0*Kij/drij)*scalar_rij_si*scalar_rij_sj; + t1 -= scalar_si_sj*dKij/3.0; + t2 = scalar_rij_sj*Kij/drij; + t3 = scalar_rij_si*Kij/drij; + + fi[0] += t1*rij[0]+t2*spi[0]+t3*spj[0]; + fi[1] += t1*rij[1]+t2*spi[1]+t3*spj[1]; + fi[2] += t1*rij[2]+t2*spi[2]+t3*spj[2]; + + fj[0] -= t1*rij[0]-t2*spi[0]-t3*spj[0]; + fj[1] -= t1*rij[1]-t2*spi[1]-t3*spj[1]; + fj[2] -= t1*rij[2]-t2*spi[2]-t3*spj[2]; + +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairSpinSocNeel::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(cut_soc_neel,n+1,n+1,"pair:cut_soc_neel"); + memory->create(K1,n+1,n+1,"pair:K1"); + memory->create(K1_mech,n+1,n+1,"pair:K1_mech"); + memory->create(K2,n+1,n+1,"pair:K2"); + memory->create(K3,n+1,n+1,"pair:K3"); + + memory->create(spi,3,"pair:spi"); + memory->create(spj,3,"pair:spj"); + memory->create(fi,3,"pair:fi"); + memory->create(fj,3,"pair:fj"); + memory->create(fmi,3,"pair:fmi"); + memory->create(fmj,3,"pair:fmj"); + memory->create(rij,3,"pair:rij"); + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpinSocNeel::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); + + cut_soc_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i+1; j <= atom->ntypes; j++) + if (setflag[i][j]) { + cut_soc_neel[i][j] = cut_soc_global; + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpinSocNeel::coeff(int narg, char **arg) +{ + const double hbar = force->hplanck/MY_2PI; + + if (!allocated) allocate(); + + // set mech_flag to 1 if magneto-mech simulation +//no longer correct: can be hybrid without magneto-mech + if (strstr(force->pair_style,"pair/spin")) { + mech_flag = 0; + } else if (strstr(force->pair_style,"hybrid/overlay")) { + mech_flag = 1; + } else error->all(FLERR,"Incorrect args in pair_style command"); + + + if (strcmp(arg[2],"neel")==0){ + if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); + soc_neel_flag = 1; + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + const double rij = force->numeric(FLERR,arg[3]); + const double k1 = (force->numeric(FLERR,arg[4])); + const double k2 = force->numeric(FLERR,arg[5]); + const double k3 = force->numeric(FLERR,arg[6]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_soc_neel[i][j] = rij; + K1[i][j] = k1/hbar; + if (mech_flag) { + K1_mech[i][j] = k1; + } else { + K1_mech[i][j] = 0.0; + } + K2[i][j] = k2; + K3[i][j] = k3; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else error->all(FLERR,"Incorrect args in pair_style command"); + +} + + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpinSocNeel::init_style() +{ + if (!atom->sp_flag || !atom->mumag_flag) + error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + + neighbor->request(this,instance_me); + + // check this half/full request +#define FULLNEI +#if defined FULLNEI + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; +#endif + +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpinSocNeel::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_soc_global; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinSocNeel::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]) { + if (soc_neel_flag){ + fwrite(&K1[i][j],sizeof(double),1,fp); + fwrite(&K1_mech[i][j],sizeof(double),1,fp); + fwrite(&K2[i][j],sizeof(double),1,fp); + fwrite(&K3[i][j],sizeof(double),1,fp); + fwrite(&cut_soc_neel[i][j],sizeof(double),1,fp); + } + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinSocNeel::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(&K1[i][j],sizeof(double),1,fp); + fread(&K1_mech[i][j],sizeof(double),1,fp); + fread(&K2[i][j],sizeof(double),1,fp); + fread(&K2[i][j],sizeof(double),1,fp); + fread(&cut_soc_neel[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&K1[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&K1_mech[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&K2[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&K3[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_soc_neel[i][j],1,MPI_DOUBLE,0,world); + } + } + } +} + + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinSocNeel::write_restart_settings(FILE *fp) +{ + fwrite(&cut_soc_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinSocNeel::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_soc_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_soc_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +} diff --git a/src/SPIN/pair_spin_soc_neel.h b/src/SPIN/pair_spin_soc_neel.h new file mode 100755 index 0000000000..ce9c76eb49 --- /dev/null +++ b/src/SPIN/pair_spin_soc_neel.h @@ -0,0 +1,89 @@ +/* -*- 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(pair/spin/soc/neel,PairSpinSocNeel) + +#else + +#ifndef LMP_PAIR_SPIN_SOC_NEEL_H +#define LMP_PAIR_SPIN_SOC_NEEL_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairSpinSocNeel : public Pair { + public: + PairSpinSocNeel(class LAMMPS *); + virtual ~PairSpinSocNeel(); + virtual void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + void init_style(); + double init_one(int, int); + + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + + void compute_soc_neel(int, int, double, double *, double *, double *,double *, double *); + void compute_soc_mech_neel(int, int, double, double *, double *, double *,double *, double *); + + int soc_neel_flag; // soc neel flag + int mech_flag; // mech calc. flag + + double cut_soc_global; + double **cut_soc_neel; // cutoff distance exchange + + protected: + int newton_pair_spin; + double hbar; + + double **K1, **K1_mech; // exchange coeffs Kij + double **K2, **K3; // K1 in eV, K2 adim, K3 in Ang + + double *spi, *spj; // temp. spin vals. in compute + double *fi, *fj; // temp. mech. forces in compute + double *fmi, *fmj; // temp. mag. forces in compute + double *rij; // norm. inter atomic vectors + + void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args in pair_spin command + +Self-explanatory. + +E: Spin simulations require metal unit style + +Self-explanatory. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: Pair spin requires atom attributes sp, mumag + +The atom style defined does not have these attributes. + +*/ diff --git a/src/eflag b/src/eflag new file mode 100644 index 0000000000..b4b06a2fef --- /dev/null +++ b/src/eflag @@ -0,0 +1,19343 @@ +angle.cpp:/* ---------------------------------------------------------------------- +angle.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +angle.cpp: http://lammps.sandia.gov, Sandia National Laboratories +angle.cpp:------------------------------------------------------------------------- */ +angle.cpp:/* ---------------------------------------------------------------------- */ +angle.cpp:/* ---------------------------------------------------------------------- */ +angle.cpp:/* ---------------------------------------------------------------------- +angle.cpp:------------------------------------------------------------------------- */ +angle.cpp:/* ---------------------------------------------------------------------- +angle.cpp:------------------------------------------------------------------------- */ +angle.cpp: eflag_atom = eflag / 2; +angle.cpp: vflag_atom = vflag / 4; +angle.cpp: // reallocate per-atom arrays if necessary +angle.cpp: // zero accumulators +angle.cpp:/* ---------------------------------------------------------------------- +angle.cpp:------------------------------------------------------------------------- */ +angle.cpp:/* ---------------------------------------------------------------------- */ +angle_hybrid.cpp:/* ---------------------------------------------------------------------- +angle_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +angle_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories +angle_hybrid.cpp:------------------------------------------------------------------------- */ +angle_hybrid.cpp:/* ---------------------------------------------------------------------- */ +angle_hybrid.cpp:/* ---------------------------------------------------------------------- */ +angle_hybrid.cpp:/* ---------------------------------------------------------------------- */ +angle_hybrid.cpp: // save ptrs to original anglelist +angle_hybrid.cpp: // if this is re-neighbor step, create sub-style anglelists +angle_hybrid.cpp: // nanglelist[] = length of each sub-style list +angle_hybrid.cpp: // realloc sub-style anglelist if necessary +angle_hybrid.cpp: // load sub-style anglelist with 4 values from original anglelist +angle_hybrid.cpp: // call each sub-style's compute function +angle_hybrid.cpp: // set neighbor->anglelist to sub-style anglelist before call +angle_hybrid.cpp: // accumulate sub-style global/peratom energy/virial in hybrid +angle_hybrid.cpp: // restore ptrs to original anglelist +angle_hybrid.cpp:/* ---------------------------------------------------------------------- */ +angle_hybrid.cpp:/* ---------------------------------------------------------------------- +angle_hybrid.cpp:------------------------------------------------------------------------- */ +angle_hybrid.cpp: // delete old lists, since cannot just change settings +angle_hybrid.cpp: // count sub-styles by skipping numeric args +angle_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric word +angle_hybrid.cpp: // need a better way to skip these exceptions +angle_hybrid.cpp: // allocate list of sub-styles +angle_hybrid.cpp: // allocate each sub-style and call its settings() with subset of args +angle_hybrid.cpp: // allocate uses suffix, but don't store suffix version in keywords, +angle_hybrid.cpp: // else syntax in coeff() will not match +angle_hybrid.cpp: // define subset of args for a sub-style by skipping numeric args +angle_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric +angle_hybrid.cpp: // need a better way to skip these exceptions +angle_hybrid.cpp:/* ---------------------------------------------------------------------- +angle_hybrid.cpp:---------------------------------------------------------------------- */ +angle_hybrid.cpp: // 2nd arg = angle sub-style name +angle_hybrid.cpp: // allow for "none" or "skip" as valid sub-style name +angle_hybrid.cpp: // move 1st arg to 2nd arg +angle_hybrid.cpp: // just copy ptrs, since arg[] points into original input line +angle_hybrid.cpp: // invoke sub-style coeff() starting with 1st arg +angle_hybrid.cpp: // set setflag and which type maps to which sub-style +angle_hybrid.cpp: // if sub-style is skip: auxiliary class2 setting in data file so ignore +angle_hybrid.cpp: // if sub-style is none: set hybrid setflag, wipe out map +angle_hybrid.cpp:/* ---------------------------------------------------------------------- +angle_hybrid.cpp:------------------------------------------------------------------------- */ +angle_hybrid.cpp:/* ---------------------------------------------------------------------- +angle_hybrid.cpp:------------------------------------------------------------------------- */ +angle_hybrid.cpp:/* ---------------------------------------------------------------------- +angle_hybrid.cpp:------------------------------------------------------------------------- */ +angle_hybrid.cpp:/* ---------------------------------------------------------------------- +angle_hybrid.cpp:------------------------------------------------------------------------- */ +angle_hybrid.cpp:/* ---------------------------------------------------------------------- */ +angle_hybrid.cpp:/* ---------------------------------------------------------------------- +angle_hybrid.cpp:------------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- +angle_zero.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +angle_zero.cpp: http://lammps.sandia.gov, Sandia National Laboratories +angle_zero.cpp:------------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- +angle_zero.cpp:------------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- +angle_zero.cpp:------------------------------------------------------------------------- */ +angle_zero.cpp: // convert theta0 from degrees to radians +angle_zero.cpp: theta0[i] = theta0_one/180.0 * MY_PI; +angle_zero.cpp:/* ---------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- +angle_zero.cpp:------------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- +angle_zero.cpp:------------------------------------------------------------------------- */ +angle_zero.cpp:/* ---------------------------------------------------------------------- +angle_zero.cpp:------------------------------------------------------------------------- */ +angle_zero.cpp: fprintf(fp,"%d %g\n",i,theta0[i]/MY_PI*180.0); +angle_zero.cpp:/* ---------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files +atom.cpp:/* ---------------------------------------------------------------------- */ +atom.cpp: // initialize atom arrays +atom.cpp: // customize by adding new array +atom.cpp: // USER-SPIN +atom.cpp: // USER-DPD +atom.cpp: // USER-SMD +atom.cpp: // molecular info +atom.cpp: // user-defined molecules +atom.cpp: // custom atom arrays +atom.cpp: // initialize atom style and array existence flags +atom.cpp: // customize by adding new flag +atom.cpp: //Magnetic flags +atom.cpp: // USER-SMD +atom.cpp: // Peridynamic scale factor +atom.cpp: // ntype-length arrays +atom.cpp: // callback lists & extra restart info +atom.cpp: // default atom ID and mapping values +atom.cpp:/* ---------------------------------------------------------------------- */ +atom.cpp: // delete atom arrays +atom.cpp: // customize by adding new array +atom.cpp: // delete custom atom arrays +atom.cpp: // delete user-defined molecules +atom.cpp: // delete per-type arrays +atom.cpp: // delete extra arrays +atom.cpp: // delete mapping data structures +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // unset atom style and array existence flags +atom.cpp: // may have been set by old avec +atom.cpp: // customize by adding new flag +atom.cpp: //Magnetic flags +atom.cpp: // create instance of AtomVec +atom.cpp: // use grow() to initialize atom-based arrays to length 1 +atom.cpp: // so that x[0][0] can always be referenced even if proc has no atoms +atom.cpp: if (sflag == 1) sprintf(estyle,"%s/%s",style,lmp->suffix); +atom.cpp: else sprintf(estyle,"%s/%s",style,lmp->suffix2); +atom.cpp: // if molecular system: +atom.cpp: // atom IDs must be defined +atom.cpp: // force atom map to be created +atom.cpp: // map style may be reset by map_init() and its call to map_style_set() +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); +atom.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); +atom.cpp: //printf("test entries function: %s, %d, %d \n ",style, trysuffix, &sflag); +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- */ +atom.cpp: // delete extra array since it doesn't persist past first run +atom.cpp: // check arrays that are atom type in length +atom.cpp: // setup of firstgroup +atom.cpp: // init AtomVec +atom.cpp:/* ---------------------------------------------------------------------- */ +atom.cpp: // setup bins for sorting +atom.cpp: // cannot do this in init() because uses neighbor cutoff +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // maxtag_all = max tag for all atoms +atom.cpp: // DEBUG: useful for generating 64-bit IDs even for small systems +atom.cpp: // use only when LAMMPS is compiled with BIGBIG +atom.cpp: //maxtag_all += 1000000000000; +atom.cpp: // notag = # of atoms I own with no tag (tag = 0) +atom.cpp: // notag_sum = # of total atoms on procs <= me with no tag +atom.cpp: // itag = 1st new tag that my untagged atoms should use +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // set bounds for my proc +atom.cpp: // if periodic and I am lo/hi proc, adjust bounds by EPSILON +atom.cpp: // insures all data atoms will be owned even with round-off +atom.cpp: // xptr = which word in line starts xyz coords +atom.cpp: // iptr = which word in line starts ix,iy,iz image flags +atom.cpp: // loop over lines of atom data +atom.cpp: // tokenize the line into values +atom.cpp: // extract xyz coords and image flags +atom.cpp: // remap atom into simulation box +atom.cpp: // if atom is in my sub-domain, unpack its values +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // loop over lines of atom velocities +atom.cpp: // tokenize the line into values +atom.cpp: // if I own atom tag, unpack its values +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // loop over lines of bonus atom data +atom.cpp: // tokenize the line into values +atom.cpp: // if I own atom tag, unpack its values +atom.cpp: // ok to call child's data_atom_bonus() method thru parent avec_bonus, +atom.cpp: // since data_bonus() was called with child ptr, and method is virtual +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // loop over lines of body data +atom.cpp: // if I own atom tag, tokenize lines into ivalues/dvalues, call data_body() +atom.cpp: // else skip values +atom.cpp: nvalues = ninteger + ndouble; // number of values to skip +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp: init per-atom fix/compute/variable values for newly created atoms +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // 1st molecule in set stores nset = # of mols, others store nset = 0 +atom.cpp: // ifile = count of molecules in set +atom.cpp: // index = argument index where next molecule starts, updated by constructor +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: rmass[ilocal] = 4.0*MY_PI/3.0 * +atom.cpp: body[ilocal] = 0; // as if a body read from data file +atom.cpp: // add bond topology info +atom.cpp: // for molecular atom styles, but not atom style template +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // insure there is one extra atom location at end of arrays for swaps +atom.cpp: // loop over owned atoms +atom.cpp: // nfirst = index of first atom not in firstgroup +atom.cpp: // when find firstgroup atom out of place, swap it with atom nfirst +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp: don't have to worry about clearing/setting atom->map since done in comm +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // set next timestep for sorting to take place +atom.cpp: nextsort = (update->ntimestep/sortfreq)*sortfreq + sortfreq; +atom.cpp: // re-setup sort bins if needed +atom.cpp: // reallocate per-atom vectors if needed +atom.cpp: // insure there is one extra atom location at end of arrays for swaps +atom.cpp: // bin atoms in reverse order so linked list will be in forward order +atom.cpp: // permute = desired permutation of atoms +atom.cpp: // permute[I] = J means Ith new atom will be Jth old atom +atom.cpp: // current = current permutation, just reuse next vector +atom.cpp: // current[I] = J means Ith current atom is Jth old atom +atom.cpp: // reorder local atom list, when done, current = permute +atom.cpp: // perform "in place" using copy() to extra atom location at end of list +atom.cpp: // inner while loop processes one cycle of the permutation +atom.cpp: // copy before inner-loop moves an atom to end of atom list +atom.cpp: // copy after inner-loop moves atom at end of list back into list +atom.cpp: // empty = location in atom list that is currently empty +atom.cpp: // sanity check that current = permute +atom.cpp: //int flag = 0; +atom.cpp: //for (i = 0; i < nlocal; i++) +atom.cpp: // if (current[i] != permute[i]) flag = 1; +atom.cpp: //int flagall; +atom.cpp: //MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world); +atom.cpp: //if (flagall) error->all(FLERR,"Atom sort did not operate correctly"); +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // binsize: +atom.cpp: // user setting if explicitly set +atom.cpp: // default = 1/2 of neighbor cutoff +atom.cpp: // check if neighbor cutoff = 0.0 +atom.cpp: double bininv = 1.0/binsize; +atom.cpp: // nbin xyz = local bins +atom.cpp: // bbox lo/hi = bounding box of my sub-domain +atom.cpp: bininvx = nbinx / (bboxhi[0]-bboxlo[0]); +atom.cpp: bininvy = nbiny / (bboxhi[1]-bboxlo[1]); +atom.cpp: bininvz = nbinz / (bboxhi[2]-bboxlo[2]); +atom.cpp: // reallocate per-bin memory if needed +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // find the fix +atom.cpp: // if find NULL ptr: +atom.cpp: // it's this one, since it is being replaced and has just been deleted +atom.cpp: // at this point in re-creation +atom.cpp: // if don't find NULL ptr: +atom.cpp: // i is set to nfix = new one currently being added at end of list +atom.cpp: // add callback to lists, reallocating if necessary +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp: // compact the list of callbacks +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp: return index if found, and flag = 0/1 for int/double +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp: add a custom variable with name of type flag = 0/1 for int/double +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp: remove a custom variable of type flag = 0/1 for int/double at index +atom.cpp: ivector/dvector and iname/dname lists never shrink +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom.cpp:/* ---------------------------------------------------------------------- +atom.cpp:------------------------------------------------------------------------- */ +atom_map.cpp:/* ---------------------------------------------------------------------- +atom_map.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_map.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_map.cpp:------------------------------------------------------------------------- */ +atom_map.cpp:/* ---------------------------------------------------------------------- +atom_map.cpp:------------------------------------------------------------------------- */ +atom_map.cpp: // check for new map style if max atomID changed (check = 1 = default) +atom_map.cpp: // recreate = 1 if must delete old map and create new map +atom_map.cpp: // recreate = 0 if can re-use old map w/out realloc and just adjust settings +atom_map.cpp: // map_maxarray/map_nhash initially -1, to force recreate even when no atoms +atom_map.cpp: // if not recreating: +atom_map.cpp: // for array, initialize current map_tag_max values +atom_map.cpp: // for hash, set all buckets to empty, put all entries in free list +atom_map.cpp: // recreating: delete old map and create new one for array or hash +atom_map.cpp: // map_nhash = max # of atoms that can be hashed on this proc +atom_map.cpp: // set to max of ave atoms/proc or atoms I can store +atom_map.cpp: // multiply by 2, require at least 1000 +atom_map.cpp: // doubling means hash table will need to be re-init only rarely +atom_map.cpp: int nper = static_cast (natoms/comm->nprocs); +atom_map.cpp: // map_nbucket = prime just larger than map_nhash +atom_map.cpp: // next_prime() should be fast enough, +atom_map.cpp: // about 10% of odd integers are prime above 1M +atom_map.cpp: // set all buckets to empty +atom_map.cpp: // set hash to map_nhash in length +atom_map.cpp: // put all hash entries in free list and point them to each other +atom_map.cpp:/* ---------------------------------------------------------------------- +atom_map.cpp:------------------------------------------------------------------------- */ +atom_map.cpp: // search for key +atom_map.cpp: // if don't find it, done +atom_map.cpp: // delete the hash entry and add it to free list +atom_map.cpp: // special logic if entry is 1st in the bucket +atom_map.cpp:/* ---------------------------------------------------------------------- +atom_map.cpp:------------------------------------------------------------------------- */ +atom_map.cpp: // possible reallocation of sametag must come before loop over atoms +atom_map.cpp: // since loop sets sametag +atom_map.cpp: // if this proc has more atoms than hash table size, call map_init() +atom_map.cpp: // call with 0 since max atomID in system has not changed +atom_map.cpp: // possible reallocation of sametag must come after map_init(), +atom_map.cpp: // b/c map_init() may invoke map_delete(), whacking sametag +atom_map.cpp: // search for key +atom_map.cpp: // if found it, just overwrite local value with index +atom_map.cpp: // take one entry from free list +atom_map.cpp: // add the new global/local pair as entry at end of bucket list +atom_map.cpp: // special logic if this entry is 1st in bucket +atom_map.cpp:/* ---------------------------------------------------------------------- +atom_map.cpp:------------------------------------------------------------------------- */ +atom_map.cpp: // search for key +atom_map.cpp: // if found it, just overwrite local value with index +atom_map.cpp: // take one entry from free list +atom_map.cpp: // add the new global/local pair as entry at end of bucket list +atom_map.cpp: // special logic if this entry is 1st in bucket +atom_map.cpp:/* ---------------------------------------------------------------------- +atom_map.cpp:------------------------------------------------------------------------- */ +atom_map.cpp: // map_tag_max = max ID of any atom that will be in new map +atom_map.cpp: // map_tag_max = -1 if no atoms +atom_map.cpp: // set map_style for new map +atom_map.cpp: // if user-selected, use that setting +atom_map.cpp: // else if map_tag_max > 1M, use hash +atom_map.cpp: // else use array +atom_map.cpp: // recreate = 1 if must create new map b/c map_style changed +atom_map.cpp:/* ---------------------------------------------------------------------- +atom_map.cpp:------------------------------------------------------------------------- */ +atom_map.cpp:/* ---------------------------------------------------------------------- +atom_map.cpp:------------------------------------------------------------------------- */ +atom_map.cpp:/* ---------------------------------------------------------------------- +atom_map.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_vec_atomic.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- +atom_vec_atomic.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_vec_body.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp: // size_forward and size_border set in settings(), via Body class +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp: // max size of forward/border comm +atom_vec_body.cpp: // 7,16 are packed in pack_comm/pack_border +atom_vec_body.cpp: // bptr values = max number of additional ivalues/dvalues from Body class +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp: // if deleting atom J via delflag and J has bonus data, then delete it +atom_vec_body.cpp: // if atom I has bonus data, reset I's bonus.ilocal to loc J +atom_vec_body.cpp: // do NOT do this if self-copy (I=J) since I's bonus data is already deleted +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp: // corresponding put() calls are in clear_bonus() +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp: // corresponding put() calls are in clear_bonus() +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp: // corresponding put() calls are in clear_bonus() +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp: else m += (bonus[j].ninteger+1)/2; +atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_body.cpp: // corresponding put() calls are in copy() +atom_vec_body.cpp: else m += (bonus[nlocal_bonus].ninteger+1)/2; +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp: else n += (bonus[body[i]].ninteger+1)/2; +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp: else m += (bonus[j].ninteger+1)/2; +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp: else m += (bonus[nlocal_bonus].ninteger+1)/2; +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp: body computes its size based on ivalues/dvalues and returns it +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* ---------------------------------------------------------------------- +atom_vec_body.cpp: debug method for sanity checking of own/bonus data pointers +atom_vec_body.cpp:------------------------------------------------------------------------- */ +atom_vec_body.cpp:/* +atom_vec_body.cpp:*/ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_vec_charge.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec_charge.cpp:/* ---------------------------------------------------------------------- +atom_vec_charge.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_vec.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp: nmax = nmax/DELTA * DELTA; +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp: nmax_bonus = nmax_bonus/DELTA_BONUS * DELTA_BONUS; +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp: do not count/pack bonds with bondtype = 0 +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp: do not count/pack angles with angletype = 0 +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec.cpp:/* ---------------------------------------------------------------------- +atom_vec.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_vec_ellipsoid.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp: // if deleting atom J via delflag and J has bonus data, then delete it +atom_vec_ellipsoid.cpp: // if atom I has bonus data, reset I's bonus.ilocal to loc J +atom_vec_ellipsoid.cpp: // do NOT do this if self-copy (I=J) since I's bonus data is already deleted +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp: // reset ellipsoid mass +atom_vec_ellipsoid.cpp: // previously stored density in rmass +atom_vec_ellipsoid.cpp: rmass[m] *= 4.0*MY_PI/3.0 * shape[0]*shape[1]*shape[2]; +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp: buf[i][3] = rmass[i] / (4.0*MY_PI/3.0 * shape[0]*shape[1]*shape[2]); +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp: buf[1] = rmass[i] / (4.0*MY_PI/3.0 * shape[0]*shape[1]*shape[2]); +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- +atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_vec_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // build list of all known atom styles +atom_vec_hybrid.cpp: // allocate list of sub-styles as big as possibly needed if no extra args +atom_vec_hybrid.cpp: // allocate each sub-style +atom_vec_hybrid.cpp: // call process_args() with set of args that are not atom style names +atom_vec_hybrid.cpp: // use known_style() to determine which args these are +atom_vec_hybrid.cpp: // free allstyles created by build_styles() +atom_vec_hybrid.cpp: // hybrid settings are MAX or MIN of sub-style settings +atom_vec_hybrid.cpp: // hybrid sizes are minimal values plus extra values for each sub-style +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // sub-styles perform all reallocation +atom_vec_hybrid.cpp: // turn off nextra_grow so hybrid can do that once below +atom_vec_hybrid.cpp: // insure hybrid local ptrs and sub-style ptrs are up to date +atom_vec_hybrid.cpp: // for sub-styles, do this in case +atom_vec_hybrid.cpp: // multiple sub-style reallocs of same array occurred +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // pack sub-style contributions as contiguous chunks +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // pack sub-style contributions as contiguous chunks +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // unpack sub-style contributions as contiguous chunks +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // unpack sub-style contributions as contiguous chunks +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // pack sub-style contributions as contiguous chunks +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // unpack sub-style contributions as contiguous chunks +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // pack sub-style contributions as contiguous chunks +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // pack sub-style contributions as contiguous chunks +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // unpack sub-style contributions as contiguous chunks +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // unpack sub-style contributions as contiguous chunks +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // each sub-style parses sub-style specific values +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: // each sub-style parses sub-style specific values +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp: int index = multiindex/nstyles; +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- +atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_vec_line.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp: // if deleting atom J via delflag and J has bonus data, then delete it +atom_vec_line.cpp: // if atom I has bonus data, reset I's bonus.ilocal to loc J +atom_vec_line.cpp: // do NOT do this if self-copy (I=J) since I's bonus data is already deleted +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp: // also set radius = half of length +atom_vec_line.cpp: // unless value = 0.0, then set diameter = 1.0 +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp: rmass[nlocal] = 4.0*MY_PI/3.0 * radius[nlocal]*radius[nlocal]*radius[nlocal]; +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp: rmass[nlocal] *= 4.0*MY_PI/3.0 * +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp: rmass[nlocal] *= 4.0*MY_PI/3.0 * +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp: if (dy >= 0.0) bonus[nlocal_bonus].theta = acos(dx/length); +atom_vec_line.cpp: else bonus[nlocal_bonus].theta = -acos(dx/length); +atom_vec_line.cpp: if (delta/length > EPSILON) +atom_vec_line.cpp: // reset line radius and mass +atom_vec_line.cpp: // rmass currently holds density +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp: buf[i][4] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); +atom_vec_line.cpp: else buf[i][4] = rmass[i]/bonus[line[i]].length; +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp: buf[2] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); +atom_vec_line.cpp: else buf[2] = rmass[i]/bonus[line[i]].length; +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* ---------------------------------------------------------------------- +atom_vec_line.cpp:------------------------------------------------------------------------- */ +atom_vec_line.cpp:/* +atom_vec_line.cpp: //if (comm->me == 1 && update->ntimestep == 873) +atom_vec_line.cpp: // printf("CCHK %s: %d %d: %d %d: %d %d\n", +atom_vec_line.cpp: // str,i,n,line[i],nlocal_bonus,bonus[line[i]].ilocal,iflag); +atom_vec_line.cpp:*/ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_vec_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp: // set radvary if particle diameters are time-varying due to fix adapt +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp: rmass[nlocal] = 4.0*MY_PI/3.0 * radius[nlocal]*radius[nlocal]*radius[nlocal]; +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp: rmass[nlocal] = 4.0*MY_PI/3.0 * +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp: rmass[nlocal] = 4.0*MY_PI/3.0 * +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp: buf[i][3] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp: else buf[1] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- +atom_vec_sphere.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_vec_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp: mass_type = 1; //check why +atom_vec_spin.cpp: //comm_x_only = 0; +atom_vec_spin.cpp: //comm_f_only = 1; +atom_vec_spin.cpp: size_data_atom = 9; //to check later +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp: //Allocating mag. quantities +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_spin.cpp:/* ---------------------------------------------------------------------- +atom_vec_spin.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +atom_vec_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp: // if deleting atom J via delflag and J has bonus data, then delete it +atom_vec_tri.cpp: // if atom I has bonus data, reset I's bonus.ilocal to loc J +atom_vec_tri.cpp: // do NOT do this if self-copy (I=J) since I's bonus data is already deleted +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp: // also set radius = distance from center to corner-pt = len(c1) +atom_vec_tri.cpp: // unless size = 0.0, then set diameter = 1.0 +atom_vec_tri.cpp: c1[0] = -size/2.0; +atom_vec_tri.cpp: c1[1] = -sqrt(3.0)/2.0 * size / 3.0; +atom_vec_tri.cpp: c2[0] = size/2.0; +atom_vec_tri.cpp: c2[1] = -sqrt(3.0)/2.0 * size / 3.0; +atom_vec_tri.cpp: c3[1] = sqrt(3.0)/2.0 * size * 2.0/3.0; +atom_vec_tri.cpp: inertia[0] = sqrt(3.0)/96.0 * size*size*size*size; +atom_vec_tri.cpp: inertia[1] = sqrt(3.0)/96.0 * size*size*size*size; +atom_vec_tri.cpp: inertia[2] = sqrt(3.0)/48.0 * size*size*size*size; +atom_vec_tri.cpp: c1[0] = -size/2.0; +atom_vec_tri.cpp: c1[1] = -sqrt(3.0)/2.0 * size / 3.0; +atom_vec_tri.cpp: c2[0] = size/2.0; +atom_vec_tri.cpp: c2[1] = -sqrt(3.0)/2.0 * size / 3.0; +atom_vec_tri.cpp: c3[1] = sqrt(3.0)/2.0 * size * 2.0/3.0; +atom_vec_tri.cpp: inertia[0] = sqrt(3.0)/96.0 * size*size*size*size; +atom_vec_tri.cpp: inertia[1] = sqrt(3.0)/96.0 * size*size*size*size; +atom_vec_tri.cpp: inertia[2] = sqrt(3.0)/48.0 * size*size*size*size; +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp: rmass[nlocal] = 4.0*MY_PI/3.0 * radius[nlocal]*radius[nlocal]*radius[nlocal]; +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp: rmass[nlocal] *= 4.0*MY_PI/3.0 * +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp: rmass[nlocal] *= 4.0*MY_PI/3.0 * +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp: // check for duplicate points +atom_vec_tri.cpp: // size = length of one edge +atom_vec_tri.cpp: // centroid = 1/3 of sum of vertices +atom_vec_tri.cpp: centroid[0] = (c1[0]+c2[0]+c3[0]) / 3.0; +atom_vec_tri.cpp: centroid[1] = (c1[1]+c2[1]+c3[1]) / 3.0; +atom_vec_tri.cpp: centroid[2] = (c1[2]+c2[2]+c3[2]) / 3.0; +atom_vec_tri.cpp: if (delta/size > EPSILON) +atom_vec_tri.cpp: // reset tri radius and mass +atom_vec_tri.cpp: // rmass currently holds density +atom_vec_tri.cpp: // tri area = 0.5 len(U x V), where U,V are edge vectors from one vertex +atom_vec_tri.cpp: // inertia = inertia tensor of triangle as 6-vector in Voigt notation +atom_vec_tri.cpp: // diagonalize inertia tensor via Jacobi rotations +atom_vec_tri.cpp: // bonus[].inertia = 3 eigenvalues = principal moments of inertia +atom_vec_tri.cpp: // evectors and exzy_space = 3 evectors = principal axes of triangle +atom_vec_tri.cpp: // enforce 3 orthogonal vectors as a right-handed coordinate system +atom_vec_tri.cpp: // flip 3rd vector if needed +atom_vec_tri.cpp: // create initial quaternion +atom_vec_tri.cpp: // bonus c1,c2,c3 = displacement of c1,c2,c3 from centroid +atom_vec_tri.cpp: // in basis of principal axes +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp: buf[i][4] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); +atom_vec_tri.cpp: buf[i][4] = rmass[i]/area; +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp: buf[2] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); +atom_vec_tri.cpp: buf[2] = rmass[i]/area; +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +atom_vec_tri.cpp:/* ---------------------------------------------------------------------- +atom_vec_tri.cpp:------------------------------------------------------------------------- */ +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +balance.cpp: http://lammps.sandia.gov, Sandia National Laboratories +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp://#define BALANCE_DEBUG 1 +balance.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files +balance.cpp:/* ---------------------------------------------------------------------- */ +balance.cpp:/* ---------------------------------------------------------------------- */ +balance.cpp: // check nfix in case all fixes have already been deleted +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: // parse required arguments +balance.cpp: // error checks +balance.cpp: // process remaining optional args +balance.cpp: // insure particles are in current box & update box via shrink-wrap +balance.cpp: // init entire system since comm->setup is done +balance.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc +balance.cpp: // must reset atom map after exchange() since it clears it +balance.cpp: // imbinit = initial imbalance +balance.cpp: // no load-balance if imbalance doesn't exceed threshold +balance.cpp: // unless switching from tiled to non tiled layout, then force rebalance +balance.cpp: // debug output of initial state +balance.cpp: // perform load-balance +balance.cpp: // style XYZ = explicit setting of cutting planes of logical 3d grid +balance.cpp: comm->xsplit[i] = i * 1.0/procgrid[0]; +balance.cpp: comm->ysplit[i] = i * 1.0/procgrid[1]; +balance.cpp: comm->zsplit[i] = i * 1.0/procgrid[2]; +balance.cpp: // style SHIFT = adjust cutting planes of logical 3d grid +balance.cpp: // style BISECTION = recursive coordinate bisectioning +balance.cpp: // reset proc sub-domains +balance.cpp: // for either brick or tiled comm style +balance.cpp: // move particles to new processors via irregular() +balance.cpp: // output of final result +balance.cpp: // check if any particles were lost +balance.cpp: // imbfinal = final imbalance +balance.cpp: // stats output +balance.cpp: fprintf(screen," initial/final max load/proc = %g %g\n", +balance.cpp: fprintf(screen," initial/final imbalance factor = %g %g\n", +balance.cpp: fprintf(logfile," initial/final max load/proc = %g %g\n", +balance.cpp: fprintf(logfile," initial/final imbalance factor = %g %g\n", +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: // count max number of weight settings +balance.cpp: // output file +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp: return imbalance = max load per proc / ave load per proc +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: if (maxcost > 0.0) imbalance = maxcost / (totalcost/nprocs); +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: // NOTE: this logic is specific to orthogonal boxes, not triclinic +balance.cpp: // shrink-wrap simulation box around atoms for input to RCB +balance.cpp: // leads to better-shaped sub-boxes when atoms are far from box boundaries +balance.cpp: // invoke RCB +balance.cpp: // then invert() to create list of proc assignments for my atoms +balance.cpp: // NOTE: (3/2017) can remove undocumented "old" option at some point +balance.cpp: // ditto in rcb.cpp +balance.cpp: // reset RCB lo/hi bounding box to full simulation box as needed +balance.cpp: // store RCB cut, dim, lo/hi box in CommTiled +balance.cpp: // cut and lo/hi need to be in fractional form so can +balance.cpp: // OK if changes by epsilon from what RCB used since atoms +balance.cpp: // will subsequently migrate to new owning procs by exchange() anyway +balance.cpp: // ditto for atoms exactly on lo/hi RCB box boundaries due to ties +balance.cpp: if (idim >= 0) comm->rcbcutfrac = (rcb->cut - boxlo[idim]) / prd[idim]; +balance.cpp: mysplit[0][0] = (lo[0] - boxlo[0]) / prd[0]; +balance.cpp: else mysplit[0][1] = (hi[0] - boxlo[0]) / prd[0]; +balance.cpp: mysplit[1][0] = (lo[1] - boxlo[1]) / prd[1]; +balance.cpp: else mysplit[1][1] = (hi[1] - boxlo[1]) / prd[1]; +balance.cpp: mysplit[2][0] = (lo[2] - boxlo[2]) / prd[2]; +balance.cpp: else mysplit[2][1] = (hi[2] - boxlo[2]) / prd[2]; +balance.cpp: // return list of procs to send my atoms to +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: // if current layout is TILED, set initial uniform splits in Comm +balance.cpp: // this gives starting point to subsequent shift balancing +balance.cpp: for (int i = 0; i < procgrid[0]; i++) xsplit[i] = i * 1.0/procgrid[0]; +balance.cpp: for (int i = 0; i < procgrid[1]; i++) ysplit[i] = i * 1.0/procgrid[1]; +balance.cpp: for (int i = 0; i < procgrid[2]; i++) zsplit[i] = i * 1.0/procgrid[2]; +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: // no balancing if no atoms +balance.cpp: // set delta for 1d balancing = root of threshold +balance.cpp: // root = # of dimensions being balanced on +balance.cpp: double delta = pow(stopthresh,1.0/ndim) - 1.0; +balance.cpp: // all balancing done in lamda coords +balance.cpp: // loop over dimensions in balance string +balance.cpp: // split = ptr to xyz split in Comm +balance.cpp: // initial count and sum +balance.cpp: // target[i] = desired sum at split I +balance.cpp: for (i = 0; i < np; i++) target[i] = totalcost/np * i; +balance.cpp: // lo[i] = closest split <= split[i] with a sum <= target +balance.cpp: // hi[i] = closest split >= split[i] with a sum >= target +balance.cpp: // iterate until balanced +balance.cpp: // stop if no change in splits, b/c all targets are met exactly +balance.cpp: // stop if all split sums are within delta of targets +balance.cpp: // this is a 1d test of particle count per slice +balance.cpp: // assumption is that this is sufficient accuracy +balance.cpp: // for 3d imbalance factor to reach threshold +balance.cpp: if (fabs(1.0*(sum[i]-target[i]))/target[i] > delta) doneflag = 0; +balance.cpp: // eliminate final adjacent splits that are duplicates +balance.cpp: // can happen if particle distribution is narrow and Nitermax is small +balance.cpp: // set lo = midpt between splits +balance.cpp: // spread duplicates out evenly between bounding midpts with non-duplicates +balance.cpp: // i,j = lo/hi indices of set of duplicate splits +balance.cpp: // delta = new spacing between duplicates +balance.cpp: // bounding midpts = lo[i-1] and lo[j] +balance.cpp: delta = (lo[j] - lo[i-1]) / (j-i+2); +balance.cpp: // sanity check on bad duplicate or inverted splits +balance.cpp: // zero or negative width sub-domains will break Comm class +balance.cpp: // should never happen if recursive multisection algorithm is correct +balance.cpp: /* +balance.cpp: */ +balance.cpp: // stop at this point in bstr if imbalance factor < threshold +balance.cpp: // this is a true 3d test of particle count per processor +balance.cpp: // restore real coords +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp: lo/hi = split values that bound current split +balance.cpp: update lo/hi to reflect sums at current split values +balance.cpp: recursive bisectioning zooms in on each cut by halving lo/hi +balance.cpp: return 0 if no changes in any splits, b/c they are all perfect +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: // reset lo/hi based on current sum and splits +balance.cpp: // insure lo is monotonically increasing, ties are OK +balance.cpp: // insure hi is monotonically decreasing, ties are OK +balance.cpp: // this effectively uses info from nearby splits +balance.cpp: // to possibly tighten bounds on lo/hi +balance.cpp: fraction = 1.0*(target[i]-losum[i]) / (hisum[i]-losum[i]); +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp: return imbalance factor = max load per proc / ave load per proc +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: // one proc's particles may map to many partitions, so must Allreduce +balance.cpp: if (maxcost > 0.0) imbalance = maxcost / (totalcost/nprocs); +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: // insure vec[lo] <= value < vec[hi] at every iteration +balance.cpp: // done when lo,hi are adjacent +balance.cpp: int index = (lo+hi)/2; +balance.cpp: index = (lo+hi)/2; +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: // Allgather each proc's sub-box +balance.cpp: // could use Gather, but that requires MPI to alloc memory +balance.cpp: // proc 0 writes out nodal coords +balance.cpp: // some will be duplicates +balance.cpp: // write out one square/cube per processor for 2d/3d +balance.cpp:/* ---------------------------------------------------------------------- +balance.cpp:------------------------------------------------------------------------- */ +balance.cpp: fprintf(stderr," Imbalance factor: %g\n",1.0*max*np/target[np]); +body.cpp:/* ---------------------------------------------------------------------- +body.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +body.cpp: http://lammps.sandia.gov, Sandia National Laboratories +body.cpp:------------------------------------------------------------------------- */ +body.cpp:/* ---------------------------------------------------------------------- */ +body.cpp:/* ---------------------------------------------------------------------- */ +bond.cpp:/* ---------------------------------------------------------------------- +bond.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +bond.cpp: http://lammps.sandia.gov, Sandia National Laboratories +bond.cpp:------------------------------------------------------------------------- */ +bond.cpp:/* ----------------------------------------------------------------------- +bond.cpp:------------------------------------------------------------------------- */ +bond.cpp:/* ---------------------------------------------------------------------- */ +bond.cpp:/* ---------------------------------------------------------------------- +bond.cpp:------------------------------------------------------------------------- */ +bond.cpp:/* ---------------------------------------------------------------------- +bond.cpp:------------------------------------------------------------------------- */ +bond.cpp: eflag_atom = eflag / 2; +bond.cpp: vflag_atom = vflag / 4; +bond.cpp: // reallocate per-atom arrays if necessary +bond.cpp: // zero accumulators +bond.cpp:/* ---------------------------------------------------------------------- +bond.cpp:------------------------------------------------------------------------- */ +bond.cpp:/* ---------------------------------------------------------------------- +bond.cpp: write a table of bond potential energy/force vs distance to a file +bond.cpp:------------------------------------------------------------------------- */ +bond.cpp: // parse optional arguments +bond.cpp: error->all(FLERR,"Invalid rlo/rhi values in bond_write command"); +bond.cpp: // open file in append mode +bond.cpp: // print header in format used by bond_style table +bond.cpp: // initialize potentials before evaluating bond potential +bond.cpp: // insures all bond coeffs are set and force constants +bond.cpp: // also initialize neighbor so that neighbor requests are processed +bond.cpp: // NOTE: might be safest to just do lmp->init() +bond.cpp: // evaluate energy and force at each of N distances +bond.cpp: // note that Bond::single() takes r**2 and returns f/r. +bond.cpp: const double dr = (outer-inner) / static_cast(n-1); +bond.cpp:/* ---------------------------------------------------------------------- */ +bond.cpp:/* ----------------------------------------------------------------------- +bond.cpp:-------------------------------------------------------------------------- */ +bond_hybrid.cpp:/* ---------------------------------------------------------------------- +bond_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +bond_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories +bond_hybrid.cpp:------------------------------------------------------------------------- */ +bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ +bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ +bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ +bond_hybrid.cpp: // save ptrs to original bondlist +bond_hybrid.cpp: // if this is re-neighbor step, create sub-style bondlists +bond_hybrid.cpp: // nbondlist[] = length of each sub-style list +bond_hybrid.cpp: // realloc sub-style bondlist if necessary +bond_hybrid.cpp: // load sub-style bondlist with 3 values from original bondlist +bond_hybrid.cpp: // call each sub-style's compute function +bond_hybrid.cpp: // set neighbor->bondlist to sub-style bondlist before call +bond_hybrid.cpp: // accumulate sub-style global/peratom energy/virial in hybrid +bond_hybrid.cpp: // restore ptrs to original bondlist +bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ +bond_hybrid.cpp:/* ---------------------------------------------------------------------- +bond_hybrid.cpp:------------------------------------------------------------------------- */ +bond_hybrid.cpp: // delete old lists, since cannot just change settings +bond_hybrid.cpp: // count sub-styles by skipping numeric args +bond_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric word +bond_hybrid.cpp: // need a better way to skip these exceptions +bond_hybrid.cpp: // allocate list of sub-styles +bond_hybrid.cpp: // allocate each sub-style and call its settings() with subset of args +bond_hybrid.cpp: // allocate uses suffix, but don't store suffix version in keywords, +bond_hybrid.cpp: // else syntax in coeff() will not match +bond_hybrid.cpp: // define subset of args for a sub-style by skipping numeric args +bond_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric +bond_hybrid.cpp: // need a better way to skip these exceptions +bond_hybrid.cpp:/* ---------------------------------------------------------------------- +bond_hybrid.cpp:---------------------------------------------------------------------- */ +bond_hybrid.cpp: // 2nd arg = bond sub-style name +bond_hybrid.cpp: // allow for "none" as valid sub-style name +bond_hybrid.cpp: // move 1st arg to 2nd arg +bond_hybrid.cpp: // just copy ptrs, since arg[] points into original input line +bond_hybrid.cpp: // invoke sub-style coeff() starting with 1st arg +bond_hybrid.cpp: // set setflag and which type maps to which sub-style +bond_hybrid.cpp: // if sub-style is none: set hybrid setflag, wipe out map +bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ +bond_hybrid.cpp:/* ---------------------------------------------------------------------- +bond_hybrid.cpp:------------------------------------------------------------------------- */ +bond_hybrid.cpp:/* ---------------------------------------------------------------------- +bond_hybrid.cpp:------------------------------------------------------------------------- */ +bond_hybrid.cpp:/* ---------------------------------------------------------------------- +bond_hybrid.cpp:------------------------------------------------------------------------- */ +bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ +bond_hybrid.cpp:/* ---------------------------------------------------------------------- +bond_hybrid.cpp:------------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- +bond_zero.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +bond_zero.cpp: http://lammps.sandia.gov, Sandia National Laboratories +bond_zero.cpp:------------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- +bond_zero.cpp:------------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- +bond_zero.cpp:------------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- +bond_zero.cpp:------------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- +bond_zero.cpp:------------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- +bond_zero.cpp:------------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- +bond_zero.cpp:------------------------------------------------------------------------- */ +bond_zero.cpp:/* ---------------------------------------------------------------------- */ +change_box.cpp:/* ---------------------------------------------------------------------- +change_box.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +change_box.cpp: http://lammps.sandia.gov, Sandia National Laboratories +change_box.cpp:------------------------------------------------------------------------- */ +change_box.cpp:/* ---------------------------------------------------------------------- */ +change_box.cpp:/* ---------------------------------------------------------------------- */ +change_box.cpp: // group +change_box.cpp: // parse operation arguments +change_box.cpp: // allocate ops to max possible length +change_box.cpp: // volume option does not increment nops +change_box.cpp: // read options from end of input line +change_box.cpp: // compute scale factors if FINAL,DELTA used since they have distance units +change_box.cpp: // perform sequence of operations +change_box.cpp: // first insure atoms are in current box & update box via shrink-wrap +change_box.cpp: // no exchange() since doesn't matter if atoms are assigned to correct procs +change_box.cpp: // save current box state so can remap atoms from it, if requested +change_box.cpp: "Cannot change box ortho/triclinic with dumps defined"); +change_box.cpp: "Cannot change box ortho/triclinic with " +change_box.cpp: "Cannot change box ortho/triclinic with dumps defined"); +change_box.cpp: "Cannot change box ortho/triclinic with " +change_box.cpp: // convert atoms to lamda coords, using last box state +change_box.cpp: // convert atoms back to box coords, using current box state +change_box.cpp: // save current box state +change_box.cpp: // clean up +change_box.cpp: // apply shrink-wrap boundary conditions +change_box.cpp: // move atoms back inside simulation box and to new processors +change_box.cpp: // use remap() instead of pbc() +change_box.cpp: // in case box moved a long distance relative to atoms +change_box.cpp: // use irregular() in case box moved a long distance relative to atoms +change_box.cpp: // check if any atoms were lost +change_box.cpp:/* ---------------------------------------------------------------------- +change_box.cpp:------------------------------------------------------------------------- */ +change_box.cpp:/* ---------------------------------------------------------------------- +change_box.cpp:------------------------------------------------------------------------- */ +change_box.cpp:/* ---------------------------------------------------------------------- +change_box.cpp: reset box lengths of dim1/2 to preserve old volume +change_box.cpp:------------------------------------------------------------------------- */ +change_box.cpp: // invoke set_initial_box() +change_box.cpp: // in case change by caller to dim3 was invalid or on shrink-wrapped dim +change_box.cpp: // calculate newvol using boxlo/hi since xyz prd are not yet reset +change_box.cpp: double scale = oldvol/newvol; +change_box.cpp: // change dim1 only +change_box.cpp: // change dim1 and dim2, keeping their relative aspect ratio constant +change_box.cpp: // both are scaled by sqrt(scale) +citeme.cpp:/* ---------------------------------------------------------------------- +citeme.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +citeme.cpp: http://lammps.sandia.gov, Sandia National Laboratories +citeme.cpp:------------------------------------------------------------------------- */ +citeme.cpp: "following references. See http://lammps.sandia.gov/cite.html\n" +citeme.cpp:/* ---------------------------------------------------------------------- */ +citeme.cpp:/* ---------------------------------------------------------------------- +citeme.cpp:------------------------------------------------------------------------- */ +citeme.cpp:/* ---------------------------------------------------------------------- +citeme.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +comm_brick.cpp: http://lammps.sandia.gov, Sandia National Laboratories +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:enum{SINGLE,MULTI}; // same as in Comm +comm_brick.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files +comm_brick.cpp:/* ---------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- */ +comm_brick.cpp://IMPORTANT: we *MUST* pass "*oldcomm" to the Comm initializer here, as +comm_brick.cpp:// the code below *requires* that the (implicit) copy constructor +comm_brick.cpp:// for Comm is run and thus creating a shallow copy of "oldcomm". +comm_brick.cpp:// The call to Comm::copy_arrays() then converts the shallow copy +comm_brick.cpp:// into a deep copy of the class with the new layout. +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // bufextra = max size of one exchanged atom +comm_brick.cpp: // = allowed overflow of sendbuf in exchange() +comm_brick.cpp: // atomvec, fix reset these 2 maxexchange values if needed +comm_brick.cpp: // only necessary if their size > BUFEXTRA +comm_brick.cpp:/* ---------------------------------------------------------------------- */ +comm_brick.cpp: // memory for multi-style communication +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // cutghost[] = max distance at which ghost atoms need to be acquired +comm_brick.cpp: // for orthogonal: +comm_brick.cpp: // cutghost is in box coords = neigh->cutghost in all 3 dims +comm_brick.cpp: // for triclinic: +comm_brick.cpp: // neigh->cutghost = distance between tilted planes in box coords +comm_brick.cpp: // cutghost is in lamda coords = distance between those planes +comm_brick.cpp: // for multi: +comm_brick.cpp: // cutghostmulti = same as cutghost, only for each atom type +comm_brick.cpp: // recvneed[idim][0/1] = # of procs away I recv atoms from, within cutghost +comm_brick.cpp: // 0 = from left, 1 = from right +comm_brick.cpp: // do not cross non-periodic boundaries, need[2] = 0 for 2d +comm_brick.cpp: // sendneed[idim][0/1] = # of procs away I send atoms to +comm_brick.cpp: // 0 = to left, 1 = to right +comm_brick.cpp: // set equal to recvneed[idim][1/0] of neighbor proc +comm_brick.cpp: // maxneed[idim] = max procs away any proc recvs atoms in either direction +comm_brick.cpp: // layout = UNIFORM = uniform sized sub-domains: +comm_brick.cpp: // maxneed is directly computable from sub-domain size +comm_brick.cpp: // limit to procgrid-1 for non-PBC +comm_brick.cpp: // recvneed = maxneed except for procs near non-PBC +comm_brick.cpp: // sendneed = recvneed of neighbor on each side +comm_brick.cpp: // layout = NONUNIFORM = non-uniform sized sub-domains: +comm_brick.cpp: // compute recvneed via updown() which accounts for non-PBC +comm_brick.cpp: // sendneed = recvneed of neighbor on each side +comm_brick.cpp: // maxneed via Allreduce() of recvneed +comm_brick.cpp: maxneed[0] = static_cast (cutghost[0] * procgrid[0] / prd[0]) + 1; +comm_brick.cpp: maxneed[1] = static_cast (cutghost[1] * procgrid[1] / prd[1]) + 1; +comm_brick.cpp: maxneed[2] = static_cast (cutghost[2] * procgrid[2] / prd[2]) + 1; +comm_brick.cpp: // allocate comm memory +comm_brick.cpp: // setup parameters for each exchange: +comm_brick.cpp: // sendproc = proc to send to at each swap +comm_brick.cpp: // recvproc = proc to recv from at each swap +comm_brick.cpp: // for mode SINGLE: +comm_brick.cpp: // slablo/slabhi = boundaries for slab of atoms to send at each swap +comm_brick.cpp: // use -BIG/midpt/BIG to insure all atoms included even if round-off occurs +comm_brick.cpp: // if round-off, atoms recvd across PBC can be < or > than subbox boundary +comm_brick.cpp: // note that borders() only loops over subset of atoms during each swap +comm_brick.cpp: // treat all as PBC here, non-PBC is handled in borders() via r/s need[][] +comm_brick.cpp: // for mode MULTI: +comm_brick.cpp: // multilo/multihi is same, with slablo/slabhi for each atom type +comm_brick.cpp: // pbc_flag: 0 = nothing across a boundary, 1 = something across a boundary +comm_brick.cpp: // pbc = -1/0/1 for PBC factor in each of 3/6 orthogonal/triclinic dirs +comm_brick.cpp: // for triclinic, slablo/hi and pbc_border will be used in lamda (0-1) coords +comm_brick.cpp: // 1st part of if statement is sending to the west/south/down +comm_brick.cpp: // 2nd part of if statement is sending to the east/north/up +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp: walk up/down the extent of nearby processors in dim and dir +comm_brick.cpp: dir = 0/1 = walk to left/right +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: frac = cutghost[dim]/prd; +comm_brick.cpp: frac = cutghost[dim]/prd; +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp: other per-atom attributes may also be sent via pack/unpack routines +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // exchange data with another proc +comm_brick.cpp: // if other proc is self, just copy +comm_brick.cpp: // if comm_x_only set, exchange or copy directly to x, don't unpack +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp: other per-atom attributes may also be sent via pack/unpack routines +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // exchange data with another proc +comm_brick.cpp: // if other proc is self, just copy +comm_brick.cpp: // if comm_f_only set, exchange or copy directly from f, don't pack +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // clear global->local map for owned and ghost atoms +comm_brick.cpp: // b/c atoms migrate to new procs in exchange() and +comm_brick.cpp: // new ghosts are created in borders() +comm_brick.cpp: // map_set() is done at end of borders() +comm_brick.cpp: // clear ghost count and any ghost bonus data internal to AtomVec +comm_brick.cpp: // insure send buf is large enough for single atom +comm_brick.cpp: // bufextra = max size of one atom = allowed overflow of sendbuf +comm_brick.cpp: // fixes can change per-atom size requirement on-the-fly +comm_brick.cpp: // subbox bounds for orthogonal or triclinic +comm_brick.cpp: // loop over dimensions +comm_brick.cpp: // fill buffer with atoms leaving my box, using < and >= +comm_brick.cpp: // when atom is deleted, fill it in with last atom +comm_brick.cpp: // send/recv atoms in both directions +comm_brick.cpp: // send size of message first so receiver can realloc buf_recv if needed +comm_brick.cpp: // if 1 proc in dimension, no send/recv +comm_brick.cpp: // set nrecv = 0 so buf_send atoms will be lost +comm_brick.cpp: // if 2 procs in dimension, single send/recv +comm_brick.cpp: // if more than 2 procs in dimension, send/recv to both neighbors +comm_brick.cpp: // check incoming atoms to see if they are in my box +comm_brick.cpp: // if so, add to my list +comm_brick.cpp: // box check is only for this dimension, +comm_brick.cpp: // atom may be passed to another proc in later dims +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // do swaps over all 3 dimensions +comm_brick.cpp: // find atoms within slab boundaries lo/hi using <= and >= +comm_brick.cpp: // check atoms between nfirst and nlast +comm_brick.cpp: // for first swaps in a dim, check owned and ghost +comm_brick.cpp: // for later swaps in a dim, only check newly arrived ghosts +comm_brick.cpp: // store sent atom indices in sendlist for use in future timesteps +comm_brick.cpp: // sendflag = 0 if I do not send on this swap +comm_brick.cpp: // sendneed test indicates receiver no longer requires data +comm_brick.cpp: // e.g. due to non-PBC or non-uniform sub-domains +comm_brick.cpp: if (ineed/2 >= sendneed[dim][ineed % 2]) sendflag = 0; +comm_brick.cpp: // find send atoms according to SINGLE vs MULTI +comm_brick.cpp: // all atoms eligible versus only atoms in bordergroup +comm_brick.cpp: // can only limit loop to bordergroup for first sends (ineed < 2) +comm_brick.cpp: // on these sends, break loop in two: owned (in group) and ghost +comm_brick.cpp: // pack up list of border atoms +comm_brick.cpp: // swap atoms with other proc +comm_brick.cpp: // no MPI calls except SendRecv if nsend/nrecv = 0 +comm_brick.cpp: // put incoming ghosts at end of my atom arrays +comm_brick.cpp: // if swapping with self, simply copy, no messages +comm_brick.cpp: // unpack buffer +comm_brick.cpp: // set all pointers & counters +comm_brick.cpp: // insure send/recv buffers are long enough for all forward & reverse comm +comm_brick.cpp: // reset global->local map +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // pack buffer +comm_brick.cpp: // exchange with another proc +comm_brick.cpp: // if self, set recv buffer to send buffer +comm_brick.cpp: // unpack buffer +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // pack buffer +comm_brick.cpp: // exchange with another proc +comm_brick.cpp: // if self, set recv buffer to send buffer +comm_brick.cpp: // unpack buffer +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp: size/nsize used only to set recv buffer limit +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // pack buffer +comm_brick.cpp: // exchange with another proc +comm_brick.cpp: // if self, set recv buffer to send buffer +comm_brick.cpp: // unpack buffer +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp: size/nsize used only to set recv buffer limit +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // pack buffer +comm_brick.cpp: // exchange with another proc +comm_brick.cpp: // if self, set recv buffer to send buffer +comm_brick.cpp: // unpack buffer +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp: handshake sizes before each Irecv/Send to insure buf_recv is big enough +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // pack buffer +comm_brick.cpp: // exchange with another proc +comm_brick.cpp: // if self, set recv buffer to send buffer +comm_brick.cpp: // unpack buffer +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // pack buffer +comm_brick.cpp: // exchange with another proc +comm_brick.cpp: // if self, set recv buffer to send buffer +comm_brick.cpp: // unpack buffer +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // pack buffer +comm_brick.cpp: // exchange with another proc +comm_brick.cpp: // if self, set recv buffer to send buffer +comm_brick.cpp: // unpack buffer +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // pack buffer +comm_brick.cpp: // exchange with another proc +comm_brick.cpp: // if self, set recv buffer to send buffer +comm_brick.cpp: // unpack buffer +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // pack buffer +comm_brick.cpp: // exchange with another proc +comm_brick.cpp: // if self, set recv buffer to send buffer +comm_brick.cpp: // unpack buffer +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // insure send/recv bufs are big enough for nsize +comm_brick.cpp: // based on smax/rmax from most recent borders() invocation +comm_brick.cpp: // pack buffer +comm_brick.cpp: // exchange with another proc +comm_brick.cpp: // if self, set recv buffer to send buffer +comm_brick.cpp: // unpack buffer +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: // loop over dimensions +comm_brick.cpp: // no exchange if only one proc in a dimension +comm_brick.cpp: // send/recv info in both directions using same buf_recv +comm_brick.cpp: // if 2 procs in dimension, single send/recv +comm_brick.cpp: // if more than 2 procs in dimension, send/recv to both neighbors +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp: if flag = 0, don't need to realloc with copy, just free/malloc +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp: free/malloc the size of the recv buffer as needed with BUFFACTOR +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp:/* ---------------------------------------------------------------------- +comm_brick.cpp:------------------------------------------------------------------------- */ +comm_brick.cpp: bytes += nprocs * sizeof(int); // grid2proc +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +comm.cpp: http://lammps.sandia.gov, Sandia National Laboratories +comm.cpp:------------------------------------------------------------------------- */ +comm.cpp:#define BUFMIN 1000 // also in comm styles +comm.cpp:enum{SINGLE,MULTI}; // same as in Comm sub-styles +comm.cpp:enum{MULTIPLE}; // same as in ProcMap +comm.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files +comm.cpp:/* ---------------------------------------------------------------------- */ +comm.cpp: // use of OpenMP threads +comm.cpp: // query OpenMP for number of threads/process set by user at run-time +comm.cpp: // if the OMP_NUM_THREADS environment variable is not set, we default +comm.cpp: // to using 1 thread. This follows the principle of the least surprise, +comm.cpp: // while practically all OpenMP implementations violate it by using +comm.cpp: // as many threads as there are (virtual) CPU cores by default. +comm.cpp: // enforce consistent number of threads across all MPI tasks +comm.cpp:/* ---------------------------------------------------------------------- */ +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp: all public/protected vectors/arrays in parent Comm class must be copied +comm.cpp:------------------------------------------------------------------------- */ +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp:------------------------------------------------------------------------- */ +comm.cpp: // check warn if any proc's subbox is smaller than neigh skin +comm.cpp: // since may lead to lost atoms in exchange() +comm.cpp: // really should check every exchange() in case box size is shrinking +comm.cpp: // but seems overkill to do that (fix balance does perform this check) +comm.cpp: // comm_only = 1 if only x,f are exchanged in forward/reverse comm +comm.cpp: // comm_x_only = 0 if ghost_velocity since velocities are added +comm.cpp: // set per-atom sizes for forward/reverse/border comm +comm.cpp: // augment by velocity and fix quantities if needed +comm.cpp: // per-atom limits for communication +comm.cpp: // maxexchange = max # of datums in exchange comm, set in exchange() +comm.cpp: // maxforward = # of datums in largest forward comm +comm.cpp: // maxreverse = # of datums in largest reverse comm +comm.cpp: // query pair,fix,compute,dump for their requirements +comm.cpp: // pair style can force reverse comm even if newton off +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp:------------------------------------------------------------------------- */ +comm.cpp: // need to reset cutghostuser when switching comm mode +comm.cpp: // need to reset cutghostuser when switching comm mode +comm.cpp: "Use cutoff/multi keyword to set cutoff in multi mode"); +comm.cpp: } else if (strcmp(arg[iarg],"cutoff/multi") == 0) { +comm.cpp: "Cannot set cutoff/multi before simulation box is defined"); +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp:------------------------------------------------------------------------- */ +comm.cpp: else if (strcmp(arg[iarg+1],"cart/reorder") == 0) mapflag = CARTREORDER; +comm.cpp: // only receiver has otherflag dependency +comm.cpp: // error checks +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp:------------------------------------------------------------------------- */ +comm.cpp: // recv 3d proc grid of another partition if my 3d grid depends on it +comm.cpp: // create ProcMap class to create 3d grid and map procs to it +comm.cpp: // create 3d grid of processors +comm.cpp: // produces procgrid and coregrid (if relevant) +comm.cpp: // error check on procgrid +comm.cpp: // should not be necessary due to ProcMap +comm.cpp: // grid2proc[i][j][k] = proc that owns i,j,k location in 3d grid +comm.cpp: // map processor IDs to 3d processor grid +comm.cpp: // produces myloc, procneigh, grid2proc +comm.cpp: // print 3d grid info to screen and logfile +comm.cpp: // print 3d grid details to outfile +comm.cpp: // free ProcMap class +comm.cpp: // set xsplit,ysplit,zsplit for uniform spacings +comm.cpp: for (int i = 0; i < procgrid[0]; i++) xsplit[i] = i * 1.0/procgrid[0]; +comm.cpp: for (int i = 0; i < procgrid[1]; i++) ysplit[i] = i * 1.0/procgrid[1]; +comm.cpp: for (int i = 0; i < procgrid[2]; i++) zsplit[i] = i * 1.0/procgrid[2]; +comm.cpp: // set lamda box params after procs are assigned +comm.cpp: // only set once unless load-balancing occurs +comm.cpp: // send my 3d proc grid to another partition if requested +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp:------------------------------------------------------------------------- */ +comm.cpp: // initialize triclinic b/c coord2proc can be called before Comm::init() +comm.cpp: // via Irregular::migrate_atoms() +comm.cpp: igx = static_cast (procgrid[0] * (x[0]-boxlo[0]) / prd[0]); +comm.cpp: igy = static_cast (procgrid[1] * (x[1]-boxlo[1]) / prd[1]); +comm.cpp: igz = static_cast (procgrid[2] * (x[2]-boxlo[2]) / prd[2]); +comm.cpp: igx = binary((x[0]-boxlo[0])/prd[0],procgrid[0],xsplit); +comm.cpp: igy = binary((x[1]-boxlo[1])/prd[1],procgrid[1],ysplit); +comm.cpp: igz = binary((x[2]-boxlo[2])/prd[2],procgrid[2],zsplit); +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp:------------------------------------------------------------------------- */ +comm.cpp: // insure vec[lo] <= value < vec[hi] at every iteration +comm.cpp: // done when lo,hi are adjacent +comm.cpp: int index = (lo+hi)/2; +comm.cpp: index = (lo+hi)/2; +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp: callback() is invoked to allow caller to process/update each proc's inbuf +comm.cpp:------------------------------------------------------------------------- */ +comm.cpp: // no need to communicate without data +comm.cpp: if (self || loop < nprocs-1) callback(nbytes/nper,buf); +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp:------------------------------------------------------------------------- */ +comm.cpp:/* ---------------------------------------------------------------------- +comm.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +comm_tiled.cpp: http://lammps.sandia.gov, Sandia National Laboratories +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:enum{SINGLE,MULTI}; // same as in Comm +comm_tiled.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files +comm_tiled.cpp:/* ---------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- */ +comm_tiled.cpp://IMPORTANT: we *MUST* pass "*oldcomm" to the Comm initializer here, as +comm_tiled.cpp:// the code below *requires* that the (implicit) copy constructor +comm_tiled.cpp:// for Comm is run and thus creating a shallow copy of "oldcomm". +comm_tiled.cpp:// The call to Comm::copy_arrays() then converts the shallow copy +comm_tiled.cpp:// into a deep copy of the class with the new layout. +comm_tiled.cpp:/* ---------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // bufextra = max size of one exchanged atom +comm_tiled.cpp: // = allowed overflow of sendbuf in exchange() +comm_tiled.cpp: // atomvec, fix reset these 2 maxexchange values if needed +comm_tiled.cpp: // only necessary if their size > BUFEXTRA +comm_tiled.cpp:/* ---------------------------------------------------------------------- */ +comm_tiled.cpp: // temporary restrictions +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // domain properties used in setup method and methods it calls +comm_tiled.cpp: // set function pointers +comm_tiled.cpp: // if RCB decomp exists and just changed, gather needed global RCB info +comm_tiled.cpp: // set cutoff for comm forward and comm reverse +comm_tiled.cpp: // check that cutoff < any periodic box length +comm_tiled.cpp: // if cut = 0.0, set to epsilon to induce nearest neighbor comm +comm_tiled.cpp: // this is b/c sendproc is used below to infer touching exchange procs +comm_tiled.cpp: // exchange procs will be empty (leading to lost atoms) if sendproc = 0 +comm_tiled.cpp: // will reset sendproc/etc to 0 after exchange is setup, down below +comm_tiled.cpp: // setup forward/reverse communication +comm_tiled.cpp: // loop over 6 swap directions +comm_tiled.cpp: // determine which procs I will send to and receive from in each swap +comm_tiled.cpp: // done by intersecting ghost box with all proc sub-boxes it overlaps +comm_tiled.cpp: // sets nsendproc, nrecvproc, sendproc, recvproc +comm_tiled.cpp: // sets sendother, recvother, sendself, pbc_flag, pbc, sendbox +comm_tiled.cpp: // resets nprocmax +comm_tiled.cpp: // one = first ghost box in same periodic image +comm_tiled.cpp: // two = second ghost box wrapped across periodic boundary +comm_tiled.cpp: // either may not exist +comm_tiled.cpp: // noverlap = # of overlaps of box1/2 with procs via box_drop() +comm_tiled.cpp: // overlap = list of overlapping procs +comm_tiled.cpp: // if overlap with self, indexme = index of me in list +comm_tiled.cpp: // if self is in overlap list, move it to end of list +comm_tiled.cpp: // reallocate 2nd dimensions of all send/recv arrays, based on noverlap +comm_tiled.cpp: // # of sends of this swap = # of recvs of iswap +/- 1 +comm_tiled.cpp: // overlap how has list of noverlap procs +comm_tiled.cpp: // includes PBC effects +comm_tiled.cpp: // compute sendbox for each of my sends +comm_tiled.cpp: // obox = intersection of ghostbox with other proc's sub-domain +comm_tiled.cpp: // sbox = what I need to send to other proc +comm_tiled.cpp: // = sublo to MIN(sublo+cut,subhi) in idim, for idir = 0 +comm_tiled.cpp: // = MIN(subhi-cut,sublo) to subhi in idim, for idir = 1 +comm_tiled.cpp: // = obox in other 2 dims +comm_tiled.cpp: // if sbox touches other proc's sub-box boundaries in lower dims, +comm_tiled.cpp: // extend sbox in those lower dims to include ghost atoms +comm_tiled.cpp: // setup exchange communication = subset of forward/reverse comm procs +comm_tiled.cpp: // loop over dimensions +comm_tiled.cpp: // determine which procs I will exchange with in each dimension +comm_tiled.cpp: // subset of procs that touch my proc in forward/reverse comm +comm_tiled.cpp: // sets nexchproc & exchproc, resets nexchprocmax +comm_tiled.cpp: // overlap = list of procs that touch my sub-box in idim +comm_tiled.cpp: // proc can appear twice in list if touches in both directions +comm_tiled.cpp: // 2nd add-to-list checks to insure each proc appears exactly once +comm_tiled.cpp: // reallocate exchproc and exchnum if needed based on noverlap +comm_tiled.cpp: // reset sendproc/etc to 0 if cut is really 0.0 +comm_tiled.cpp: // reallocate MPI Requests and Statuses as needed +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: other per-atom attributes may also be sent via pack/unpack routines +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // exchange data with another set of procs in each swap +comm_tiled.cpp: // post recvs from all procs except self +comm_tiled.cpp: // send data to all procs except self +comm_tiled.cpp: // copy data to self if sendself is set +comm_tiled.cpp: // wait on all procs except self and unpack received data +comm_tiled.cpp: // if comm_x_only set, exchange or copy directly to x, don't unpack +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: other per-atom attributes may also be sent via pack/unpack routines +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // exchange data with another set of procs in each swap +comm_tiled.cpp: // post recvs from all procs except self +comm_tiled.cpp: // send data to all procs except self +comm_tiled.cpp: // copy data to self if sendself is set +comm_tiled.cpp: // wait on all procs except self and unpack received data +comm_tiled.cpp: // if comm_f_only set, exchange or copy directly from f, don't pack +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // clear global->local map for owned and ghost atoms +comm_tiled.cpp: // b/c atoms migrate to new procs in exchange() and +comm_tiled.cpp: // new ghosts are created in borders() +comm_tiled.cpp: // map_set() is done at end of borders() +comm_tiled.cpp: // clear ghost count and any ghost bonus data internal to AtomVec +comm_tiled.cpp: // insure send buf is large enough for single atom +comm_tiled.cpp: // bufextra = max size of one atom = allowed overflow of sendbuf +comm_tiled.cpp: // fixes can change per-atom size requirement on-the-fly +comm_tiled.cpp: // domain properties used in exchange method and methods it calls +comm_tiled.cpp: // subbox bounds for orthogonal or triclinic +comm_tiled.cpp: // loop over dimensions +comm_tiled.cpp: // fill buffer with atoms leaving my box, using < and >= +comm_tiled.cpp: // when atom is deleted, fill it in with last atom +comm_tiled.cpp: // send and recv atoms from neighbor procs that touch my sub-box in dim +comm_tiled.cpp: // no send/recv with self +comm_tiled.cpp: // send size of message first +comm_tiled.cpp: // receiver may receive multiple messages, realloc buf_recv if needed +comm_tiled.cpp: // check incoming atoms to see if I own it and they are in my box +comm_tiled.cpp: // if so, add to my list +comm_tiled.cpp: // box check is only for this dimension, +comm_tiled.cpp: // atom may be passed to another proc in later dims +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: one list is created per swap/proc that will be made +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // send/recv max one = max # of atoms in single send/recv for any swap +comm_tiled.cpp: // send/recv max all = max # of atoms in all sends/recvs within any swap +comm_tiled.cpp: // loop over swaps in all dimensions +comm_tiled.cpp: // find atoms within sendboxes using >= and < +comm_tiled.cpp: // hi test with ">" is important b/c don't want to send an atom +comm_tiled.cpp: // in lower dim (on boundary) that a proc will recv again in higher dim +comm_tiled.cpp: // for x-dim swaps, check owned atoms +comm_tiled.cpp: // for yz-dim swaps, check owned and ghost atoms +comm_tiled.cpp: // store sent atom indices in sendlist for use in future timesteps +comm_tiled.cpp: // NOTE: assume SINGLE mode, add logic for MULTI mode later +comm_tiled.cpp: // send sendnum counts to procs who recv from me except self +comm_tiled.cpp: // copy data to self if sendself is set +comm_tiled.cpp: // setup other per swap/proc values from sendnum and recvnum +comm_tiled.cpp: // insure send/recv buffers are large enough for this border comm swap +comm_tiled.cpp: // swap atoms with other procs using pack_border(), unpack_border() +comm_tiled.cpp: // use Waitall() instead of Waitany() because calls to unpack_border() +comm_tiled.cpp: // must increment per-atom arrays in ascending order +comm_tiled.cpp: // increment ghost atoms +comm_tiled.cpp: // insure send/recv buffers are long enough for all forward & reverse comm +comm_tiled.cpp: // send buf is for one forward or reverse sends to one proc +comm_tiled.cpp: // recv buf is for all forward or reverse recvs in one swap +comm_tiled.cpp: // reset global->local map +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: size/nsize used only to set recv buffer limit +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: size/nsize used only to set recv buffer limit +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // insure send/recv bufs are big enough for nsize +comm_tiled.cpp: // based on smaxone/rmaxall from most recent borders() invocation +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: determine overlap list of Noverlap procs the lo/hi box overlaps +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // NOTE: this is not triclinic compatible +comm_tiled.cpp: // NOTE: these error messages are internal sanity checks +comm_tiled.cpp: // should not occur, can be removed at some point +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: determine overlap list of Noverlap procs the lo/hi box overlaps +comm_tiled.cpp: no need to split lo/hi box as recurse b/c OK if box extends outside RCB box +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // end recursion when partition is a single proc +comm_tiled.cpp: // add proc to overlap list +comm_tiled.cpp: // drop box on each side of cut it extends beyond +comm_tiled.cpp: // use > and < criteria so does not include a box it only touches +comm_tiled.cpp: // procmid = 1st processor in upper half of partition +comm_tiled.cpp: // = location in tree that stores this cut +comm_tiled.cpp: // dim = 0,1,2 dimension of cut +comm_tiled.cpp: // cut = position of cut +comm_tiled.cpp: int procmid = proclower + (procupper - proclower) / 2 + 1; +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: return other box owned by proc as lo/hi corner pts +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: return other box owned by proc as lo/hi corner pts +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // sending to left +comm_tiled.cpp: // only touches if proc hi = my lo, or if proc hi = boxhi and my lo = boxlo +comm_tiled.cpp: // sending to right +comm_tiled.cpp: // only touches if proc lo = my hi, or if proc lo = boxlo and my hi = boxhi +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: // end recursion when partition is a single proc +comm_tiled.cpp: // return proc +comm_tiled.cpp: // drop point on side of cut it is on +comm_tiled.cpp: // use < criterion so point is not on high edge of proc sub-domain +comm_tiled.cpp: // procmid = 1st processor in upper half of partition +comm_tiled.cpp: // = location in tree that stores this cut +comm_tiled.cpp: // dim = 0,1,2 dimension of cut +comm_tiled.cpp: // cut = position of cut +comm_tiled.cpp: int procmid = proclower + (procupper - proclower) / 2 + 1; +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: if flag = 0, don't need to realloc with copy, just free/malloc +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp: free/malloc the size of the recv buffer as needed with BUFFACTOR +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: nexchproc = new int[n/2]; +comm_tiled.cpp: nexchprocmax = new int[n/2]; +comm_tiled.cpp: exchproc = new int*[n/2]; +comm_tiled.cpp: exchnum = new int*[n/2]; +comm_tiled.cpp: for (int i = 0; i < n/2; i++) { +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +comm_tiled.cpp: for (int i = 0; i < n/2; i++) { +comm_tiled.cpp:/* ---------------------------------------------------------------------- +comm_tiled.cpp:------------------------------------------------------------------------- */ +compute_angle.cpp:/* ---------------------------------------------------------------------- +compute_angle.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_angle.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_angle.cpp:------------------------------------------------------------------------- */ +compute_angle.cpp:/* ---------------------------------------------------------------------- */ +compute_angle.cpp: // check if bond style hybrid exists +compute_angle.cpp:/* ---------------------------------------------------------------------- */ +compute_angle.cpp:/* ---------------------------------------------------------------------- */ +compute_angle.cpp: // recheck angle style in case it has been changed +compute_angle.cpp:/* ---------------------------------------------------------------------- */ +compute_angle_local.cpp:/* ---------------------------------------------------------------------- +compute_angle_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_angle_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_angle_local.cpp:------------------------------------------------------------------------- */ +compute_angle_local.cpp:/* ---------------------------------------------------------------------- */ +compute_angle_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute angle/local command"); +compute_angle_local.cpp: error->all(FLERR,"Compute angle/local used when angles are not allowed"); +compute_angle_local.cpp: else error->all(FLERR,"Invalid keyword in compute angle/local command"); +compute_angle_local.cpp:/* ---------------------------------------------------------------------- */ +compute_angle_local.cpp:/* ---------------------------------------------------------------------- */ +compute_angle_local.cpp: error->all(FLERR,"No angle style is defined for compute angle/local"); +compute_angle_local.cpp: // do initial memory allocation so that memory_usage() is correct +compute_angle_local.cpp:/* ---------------------------------------------------------------------- */ +compute_angle_local.cpp: // count local entries and compute angle info +compute_angle_local.cpp:/* ---------------------------------------------------------------------- +compute_angle_local.cpp:------------------------------------------------------------------------- */ +compute_angle_local.cpp: // c = cosine of angle +compute_angle_local.cpp: c /= r1*r2; +compute_angle_local.cpp: tbuf[n] = 180.0*acos(c)/MY_PI; +compute_angle_local.cpp:/* ---------------------------------------------------------------------- */ +compute_angle_local.cpp: // grow vector_local or array_local +compute_angle_local.cpp: memory->create(vlocal,nmax,"angle/local:vector_local"); +compute_angle_local.cpp: memory->create(alocal,nmax,nvalues,"angle/local:array_local"); +compute_angle_local.cpp:/* ---------------------------------------------------------------------- +compute_angle_local.cpp:------------------------------------------------------------------------- */ +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- +compute_angmom_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_angmom_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_angmom_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute angmom/chunk command"); +compute_angmom_chunk.cpp: // ID of compute chunk/atom +compute_angmom_chunk.cpp: // chunk-based data +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_angmom_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " +compute_angmom_chunk.cpp: "compute angmom/chunk"); +compute_angmom_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_angmom_chunk.cpp: error->all(FLERR,"Compute angmom/chunk does not use chunk/atom compute"); +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_angmom_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_angmom_chunk.cpp: // extract ichunk index vector from compute +compute_angmom_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_angmom_chunk.cpp: // zero local per-chunk values +compute_angmom_chunk.cpp: // compute COM for each chunk +compute_angmom_chunk.cpp: comall[i][0] /= masstotal[i]; +compute_angmom_chunk.cpp: comall[i][1] /= masstotal[i]; +compute_angmom_chunk.cpp: comall[i][2] /= masstotal[i]; +compute_angmom_chunk.cpp: // compute angmom for each chunk +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- +compute_angmom_chunk.cpp: lock methods: called by fix ave/time +compute_angmom_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_angmom_chunk.cpp: by passing lock info along to compute chunk/atom +compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- +compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- +compute_angmom_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- +compute_angmom_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- +compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- +compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- +compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ +compute_angmom_chunk.cpp: memory->create(massproc,maxchunk,"angmom/chunk:massproc"); +compute_angmom_chunk.cpp: memory->create(masstotal,maxchunk,"angmom/chunk:masstotal"); +compute_angmom_chunk.cpp: memory->create(com,maxchunk,3,"angmom/chunk:com"); +compute_angmom_chunk.cpp: memory->create(comall,maxchunk,3,"angmom/chunk:comall"); +compute_angmom_chunk.cpp: memory->create(angmom,maxchunk,3,"angmom/chunk:angmom"); +compute_angmom_chunk.cpp: memory->create(angmomall,maxchunk,3,"angmom/chunk:angmomall"); +compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- +compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ +compute_bond.cpp:/* ---------------------------------------------------------------------- +compute_bond.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_bond.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_bond.cpp:------------------------------------------------------------------------- */ +compute_bond.cpp:/* ---------------------------------------------------------------------- */ +compute_bond.cpp: // check if bond style hybrid exists +compute_bond.cpp:/* ---------------------------------------------------------------------- */ +compute_bond.cpp:/* ---------------------------------------------------------------------- */ +compute_bond.cpp: // recheck bond style in case it has been changed +compute_bond.cpp:/* ---------------------------------------------------------------------- */ +compute_bond_local.cpp:/* ---------------------------------------------------------------------- +compute_bond_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_bond_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_bond_local.cpp:------------------------------------------------------------------------- */ +compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ +compute_bond_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute bond/local command"); +compute_bond_local.cpp: error->all(FLERR,"Compute bond/local used when bonds are not allowed"); +compute_bond_local.cpp: else error->all(FLERR,"Invalid keyword in compute bond/local command"); +compute_bond_local.cpp: // set singleflag if need to call bond->single() +compute_bond_local.cpp: // set velflag if compute any quantities based on velocities +compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ +compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ +compute_bond_local.cpp: error->all(FLERR,"No bond style is defined for compute bond/local"); +compute_bond_local.cpp: // set ghostvelflag if need to acquire ghost atom velocities +compute_bond_local.cpp: // do initial memory allocation so that memory_usage() is correct +compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ +compute_bond_local.cpp: // count local entries and compute bond info +compute_bond_local.cpp:/* ---------------------------------------------------------------------- +compute_bond_local.cpp:------------------------------------------------------------------------- */ +compute_bond_local.cpp: // communicate ghost velocities if needed +compute_bond_local.cpp: // loop over all atoms and their bonds +compute_bond_local.cpp: invmasstotal = 1.0 / (masstotal); +compute_bond_local.cpp: // r12 = unit bond vector from atom1 to atom2 +compute_bond_local.cpp: // delr = vector from COM to each atom +compute_bond_local.cpp: // delv = velocity of each atom relative to COM +compute_bond_local.cpp: // vpar = component of delv parallel to bond vector +compute_bond_local.cpp: // vvib = relative velocity of 2 atoms along bond direction +compute_bond_local.cpp: // vvib < 0 for 2 atoms moving towards each other +compute_bond_local.cpp: // vvib > 0 for 2 atoms moving apart +compute_bond_local.cpp: // vrotsq = tangential speed squared of atom1 only +compute_bond_local.cpp: // omegasq = omega squared, and is the same for atom1 and atom2 +compute_bond_local.cpp: omegasq = vrotsq / MathExtra::lensq3(delr1); +compute_bond_local.cpp: // sanity check: engtotal = engtrans + engvib + engrot +compute_bond_local.cpp: //engtot = 0.5 * (mass1*MathExtra::lensq3(v[atom1]) + +compute_bond_local.cpp: // mass2*MathExtra::lensq3(v[atom2])); +compute_bond_local.cpp: //if (fabs(engtot-engtrans-engvib-engrot) > EPSILON) +compute_bond_local.cpp: // error->one(FLERR,"Sanity check on 3 energy components failed"); +compute_bond_local.cpp: // scale energies by units +compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ +compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ +compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ +compute_bond_local.cpp: // grow vector_local or array_local +compute_bond_local.cpp: memory->create(vlocal,nmax,"bond/local:vector_local"); +compute_bond_local.cpp: memory->create(alocal,nmax,nvalues,"bond/local:array_local"); +compute_bond_local.cpp:/* ---------------------------------------------------------------------- +compute_bond_local.cpp:------------------------------------------------------------------------- */ +compute_centro_atom.cpp:/* ---------------------------------------------------------------------- +compute_centro_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_centro_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_centro_atom.cpp:------------------------------------------------------------------------- */ +compute_centro_atom.cpp:/* ---------------------------------------------------------------------- +compute_centro_atom.cpp:------------------------------------------------------------------------- */ +compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_centro_atom.cpp: if (narg < 4 || narg > 6) error->all(FLERR,"Illegal compute centro/atom command"); +compute_centro_atom.cpp: // default values +compute_centro_atom.cpp: // optional keywords +compute_centro_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute centro/atom command3"); +compute_centro_atom.cpp: else error->all(FLERR,"Illegal compute centro/atom command2"); +compute_centro_atom.cpp: } else error->all(FLERR,"Illegal compute centro/atom command1"); +compute_centro_atom.cpp: error->all(FLERR,"Illegal neighbor value for compute centro/atom command"); +compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_centro_atom.cpp: error->all(FLERR,"Compute centro/atom requires a pair style be defined"); +compute_centro_atom.cpp: if (strcmp(modify->compute[i]->style,"centro/atom") == 0) count++; +compute_centro_atom.cpp: error->warning(FLERR,"More than one compute centro/atom"); +compute_centro_atom.cpp: // need an occasional full neighbor list +compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_centro_atom.cpp: // grow centro array if necessary +compute_centro_atom.cpp: // grow array_atom array if axes_flag set +compute_centro_atom.cpp: memory->create(centro,nmax,"centro/atom:centro"); +compute_centro_atom.cpp: memory->create(centro,nmax,"centro/atom:centro"); +compute_centro_atom.cpp: memory->create(array_atom,nmax,size_peratom_cols,"centro/atom:array_atom"); +compute_centro_atom.cpp: // invoke full neighbor list (will copy or build if necessary) +compute_centro_atom.cpp: // npairs = number of unique pairs +compute_centro_atom.cpp: int nhalf = nnn/2; +compute_centro_atom.cpp: int npairs = nnn * (nnn-1) / 2; +compute_centro_atom.cpp: // compute centro-symmetry parameter for each atom in group +compute_centro_atom.cpp: // use full neighbor list +compute_centro_atom.cpp: // insure distsq and nearest arrays are long enough +compute_centro_atom.cpp: memory->create(distsq,maxneigh,"centro/atom:distsq"); +compute_centro_atom.cpp: memory->create(nearest,maxneigh,"centro/atom:nearest"); +compute_centro_atom.cpp: // loop over list of all neighbors within force cutoff +compute_centro_atom.cpp: // distsq[] = distance sq to each +compute_centro_atom.cpp: // nearest[] = atom indices of neighbors +compute_centro_atom.cpp: // check whether to include local crystal symmetry axes +compute_centro_atom.cpp: // if not nnn neighbors, centro = 0.0 +compute_centro_atom.cpp: // store nnn nearest neighs in 1st nnn locations of distsq and nearest +compute_centro_atom.cpp: // R = Ri + Rj for each of npairs i,j pairs among nnn neighbors +compute_centro_atom.cpp: // pairs = squared length of each R +compute_centro_atom.cpp: // calculate local crystal symmetry axes +compute_centro_atom.cpp: // rsq1, rsq2 are two smallest values of R^2 +compute_centro_atom.cpp: // R1, R2 are corresponding vectors Ri - Rj +compute_centro_atom.cpp: // R3 is normal to R1, R2 +compute_centro_atom.cpp: // store nnn nearest neighs in 1st nnn locations of distsq and nearest +compute_centro_atom.cpp: // store nhalf smallest pair distances in 1st nhalf locations of pairs +compute_centro_atom.cpp: // centrosymmetry = sum of nhalf smallest squared values +compute_centro_atom.cpp:/* ---------------------------------------------------------------------- +compute_centro_atom.cpp:------------------------------------------------------------------------- */ +compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_centro_atom.cpp:/* ---------------------------------------------------------------------- +compute_centro_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_chunk_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp:// NOTE: allow for bin center to be variables for sphere/cylinder +compute_chunk_atom.cpp:enum{ONCE,NFREQ,EVERY}; // used in several files +compute_chunk_atom.cpp:// allocate space for static class variable +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_chunk_atom.cpp: if (narg < 4) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: // chunk style and its args +compute_chunk_atom.cpp: if (strcmp(arg[3],"bin/1d") == 0) { +compute_chunk_atom.cpp: } else if (strcmp(arg[3],"bin/2d") == 0) { +compute_chunk_atom.cpp: } else if (strcmp(arg[3],"bin/3d") == 0) { +compute_chunk_atom.cpp: } else if (strcmp(arg[3],"bin/sphere") == 0) { +compute_chunk_atom.cpp: if (iarg+6 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: } else if (strcmp(arg[3],"bin/cylinder") == 0) { +compute_chunk_atom.cpp: if (iarg+5 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: } else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: // optional args +compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Region ID for compute chunk/atom does not exist"); +compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: if (limit < 0) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: } else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: // set nchunkflag and discard to default values if not explicitly set +compute_chunk_atom.cpp: // for binning style, also check in init() if simulation box is static, +compute_chunk_atom.cpp: // which sets nchunkflag = ONCE +compute_chunk_atom.cpp: // error checks +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom molecule for non-molecular system"); +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom without bins " +compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom sphere z origin must be 0.0 for 2d"); +compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom cylinder axis must be z for 2d"); +compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Compute ID for compute chunk /atom does not exist"); +compute_chunk_atom.cpp: "Compute chunk/atom compute does not calculate " +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom compute does not " +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom compute does not " +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom compute array is " +compute_chunk_atom.cpp: error->all(FLERR,"Fix ID for compute chunk/atom does not exist"); +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom fix does not calculate " +compute_chunk_atom.cpp: "Compute chunk/atom fix does not calculate a per-atom vector"); +compute_chunk_atom.cpp: "Compute chunk/atom fix does not calculate a per-atom array"); +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom fix array is accessed out-of-range"); +compute_chunk_atom.cpp: error->all(FLERR,"Variable name for compute chunk/atom does not exist"); +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom variable is not " +compute_chunk_atom.cpp: // setup scaling +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom for triclinic boxes " +compute_chunk_atom.cpp: // apply scaling factors and cylinder dims orthogonal to axis +compute_chunk_atom.cpp: invdelta[idim] = 1.0/delta[idim]; +compute_chunk_atom.cpp: sradmin_user *= xscale; // radii are scaled by xscale +compute_chunk_atom.cpp: cradmin_user *= yscale; // radii are scaled by first non-axis dim +compute_chunk_atom.cpp: // initialize chunk vector and per-chunk info +compute_chunk_atom.cpp: // computeflag = 1 if this compute might invoke another compute +compute_chunk_atom.cpp: // during assign_chunk_ids() +compute_chunk_atom.cpp: // other initializations +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // check nfix in case all fixes have already been deleted +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // set and check validity of region +compute_chunk_atom.cpp: error->all(FLERR,"Region ID for compute chunk/atom does not exist"); +compute_chunk_atom.cpp: // set compute,fix,variable +compute_chunk_atom.cpp: error->all(FLERR,"Compute ID for compute chunk/atom does not exist"); +compute_chunk_atom.cpp: error->all(FLERR,"Fix ID for compute chunk/atom does not exist"); +compute_chunk_atom.cpp: error->all(FLERR,"Variable name for compute chunk/atom does not exist"); +compute_chunk_atom.cpp: // for style MOLECULE, check that no mol IDs exceed MAXSMALLINT +compute_chunk_atom.cpp: // don't worry about group or optional region +compute_chunk_atom.cpp: error->all(FLERR,"Molecule IDs too large for compute chunk/atom"); +compute_chunk_atom.cpp: // for binning, if nchunkflag not already set, set it to ONCE or EVERY +compute_chunk_atom.cpp: // depends on whether simulation box size is static or dynamic +compute_chunk_atom.cpp: // reset invoked_setup if this is not first run and box just became static +compute_chunk_atom.cpp: // require nchunkflag = ONCE if idsflag = ONCE +compute_chunk_atom.cpp: // b/c nchunk cannot change if chunk IDs are frozen +compute_chunk_atom.cpp: // can't check until now since nchunkflag may have been adjusted in init() +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom ids once but nchunk is not once"); +compute_chunk_atom.cpp: // create/destroy fix STORE for persistent chunk IDs as needed +compute_chunk_atom.cpp: // need to do this if idsflag = ONCE or locks will be used by other commands +compute_chunk_atom.cpp: // need to wait until init() so that fix command(s) are in place +compute_chunk_atom.cpp: // they increment lockcount if they lock this compute +compute_chunk_atom.cpp: // fixstore ID = compute-ID + COMPUTE_STORE, fix group = compute group +compute_chunk_atom.cpp: // fixstore initializes all values to 0.0 +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp: invoke setup_chunks and/or compute_ichunk if only done ONCE +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // grow floating point chunk vector if necessary +compute_chunk_atom.cpp: memory->create(chunk,nmax,"chunk/atom:chunk"); +compute_chunk_atom.cpp: // copy integer indices into floating-point chunk vector +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: "same compute chunk/atom command in incompatible ways"); +compute_chunk_atom.cpp: // set lock to last calling Fix, since it will be last to unlock() +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // skip if already done on this step +compute_chunk_atom.cpp: // if old IDs persist via storage in fixstore, then just retrieve them +compute_chunk_atom.cpp: // yes if idsflag = ONCE, and already done once +compute_chunk_atom.cpp: // or if idsflag = NFREQ and lock is in place and are on later timestep +compute_chunk_atom.cpp: // else proceed to recalculate per-atom chunk assignments +compute_chunk_atom.cpp: // assign chunk IDs to atoms +compute_chunk_atom.cpp: // will exclude atoms not in group or in optional region +compute_chunk_atom.cpp: // already invoked if this is same timestep as last setup_chunks() +compute_chunk_atom.cpp: // compress chunk IDs via hash of the original uncompressed IDs +compute_chunk_atom.cpp: // also apply discard rule except for binning styles which already did +compute_chunk_atom.cpp: // else if no compression apply discard rule by itself +compute_chunk_atom.cpp: // set ichunk = 0 for excluded atoms +compute_chunk_atom.cpp: // this should set any ichunk values which have not yet been set +compute_chunk_atom.cpp: // if newly calculated IDs need to persist, store them in fixstore +compute_chunk_atom.cpp: // yes if idsflag = ONCE or idsflag = NFREQ and lock is in place +compute_chunk_atom.cpp: // one-time check if which = MOLECULE and +compute_chunk_atom.cpp: // any chunks do not contain all atoms in the molecule +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // check if setup needs to be done +compute_chunk_atom.cpp: // no if lock is in place +compute_chunk_atom.cpp: // no if nchunkflag = ONCE, and already done once +compute_chunk_atom.cpp: // otherwise yes +compute_chunk_atom.cpp: // even if no, check if need to re-compute bin volumes +compute_chunk_atom.cpp: // so that fix ave/chunk can do proper density normalization +compute_chunk_atom.cpp: // assign chunk IDs to atoms +compute_chunk_atom.cpp: // will exclude atoms not in group or in optional region +compute_chunk_atom.cpp: // for binning styles, need to setup bins and their volume first +compute_chunk_atom.cpp: // else chunk_volume_scalar = entire box volume +compute_chunk_atom.cpp: // IDs are needed to scan for max ID and for compress() +compute_chunk_atom.cpp: // set nchunk for chunk styles other than binning +compute_chunk_atom.cpp: // for styles other than TYPE, scan for max ID +compute_chunk_atom.cpp: // apply limit setting as well as compression of chunks with no atoms +compute_chunk_atom.cpp: // if limit is set, there are 3 cases: +compute_chunk_atom.cpp: // no compression, limit specified before compression, or vice versa +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp: also set exclude vector to 0/1 for all atoms +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // grow integer chunk index vector if necessary +compute_chunk_atom.cpp: memory->create(ichunk,nmaxint,"chunk/atom:ichunk"); +compute_chunk_atom.cpp: memory->create(exclude,nmaxint,"chunk/atom:exclude"); +compute_chunk_atom.cpp: // update region if necessary +compute_chunk_atom.cpp: // exclude = 1 if atom is not assigned to a chunk +compute_chunk_atom.cpp: // exclude atoms not in group or not in optional region +compute_chunk_atom.cpp: // set ichunk to style value for included atoms +compute_chunk_atom.cpp: // binning styles apply discard rule, others do not yet +compute_chunk_atom.cpp: error->all(FLERR,"Fix used in compute chunk/atom not " +compute_chunk_atom.cpp: memory->create(varatom,maxvar,"chunk/atom:varatom"); +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // put my IDs into hash +compute_chunk_atom.cpp: // n = # of my populated IDs +compute_chunk_atom.cpp: // nall = n summed across all procs +compute_chunk_atom.cpp: // create my list of populated IDs +compute_chunk_atom.cpp: memory->create(list,n,"chunk/atom:list"); +compute_chunk_atom.cpp: // if nall < 1M, just allgather all ID lists on every proc +compute_chunk_atom.cpp: // else perform ring comm +compute_chunk_atom.cpp: // add IDs from all procs to my hash +compute_chunk_atom.cpp: // setup for allgatherv +compute_chunk_atom.cpp: memory->create(recvcounts,nprocs,"chunk/atom:recvcounts"); +compute_chunk_atom.cpp: memory->create(displs,nprocs,"chunk/atom:displs"); +compute_chunk_atom.cpp: memory->create(listall,nall,"chunk/atom:listall"); +compute_chunk_atom.cpp: // allgatherv acquires list of populated IDs from all procs +compute_chunk_atom.cpp: // add all unique IDs in listall to my hash +compute_chunk_atom.cpp: // clean up +compute_chunk_atom.cpp: // nchunk = length of hash containing populated IDs from all procs +compute_chunk_atom.cpp: // reset hash value of each original chunk ID to ordered index +compute_chunk_atom.cpp: // ordered index = new compressed chunk ID (1 to Nchunk) +compute_chunk_atom.cpp: // leverages fact that map stores keys in ascending order +compute_chunk_atom.cpp: // also allocate and set chunkID = list of original chunk IDs +compute_chunk_atom.cpp: // used by fix ave/chunk and compute property/chunk +compute_chunk_atom.cpp: memory->create(chunkID,nchunk,"chunk/atom:chunkID"); +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // lo = bin boundary immediately below boxlo or minvalue +compute_chunk_atom.cpp: // hi = bin boundary immediately above boxhi or maxvalue +compute_chunk_atom.cpp: // allocate and initialize arrays based on new bin count +compute_chunk_atom.cpp: if (lo > hi) error->all(FLERR,"Invalid bin bounds in compute chunk/atom"); +compute_chunk_atom.cpp: // allocate and set bin coordinates +compute_chunk_atom.cpp: memory->create(coord,nbins,ndim,"chunk/atom:coord"); +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // convert sorigin_user to sorigin +compute_chunk_atom.cpp: // sorigin,srad are always in box units, for orthogonal or triclinic domains +compute_chunk_atom.cpp: // lamda2x works for either orthogonal or triclinic +compute_chunk_atom.cpp: // if pbcflag set, sradmax must be < 1/2 box in any periodic dim +compute_chunk_atom.cpp: // treat orthogonal and triclinic the same +compute_chunk_atom.cpp: // check every time bins are created +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom bin/sphere radius " +compute_chunk_atom.cpp: sinvrad = nsbin / (sradmax-sradmin); +compute_chunk_atom.cpp: // allocate and set bin coordinates +compute_chunk_atom.cpp: // coord = midpt of radii for a spherical shell +compute_chunk_atom.cpp: memory->create(coord,nsbin,1,"chunk/atom:coord"); +compute_chunk_atom.cpp: rlo = sradmin + i * (sradmax-sradmin) / nsbin; +compute_chunk_atom.cpp: rhi = sradmin + (i+1) * (sradmax-sradmin) / nsbin; +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // setup bins along cylinder axis +compute_chunk_atom.cpp: // ncplane = # of axis bins +compute_chunk_atom.cpp: // convert corigin_user to corigin +compute_chunk_atom.cpp: // corigin is always in box units, for orthogonal or triclinic domains +compute_chunk_atom.cpp: // lamda2x works for either orthogonal or triclinic +compute_chunk_atom.cpp: // if pbcflag set, sradmax must be < 1/2 box in any periodic non-axis dim +compute_chunk_atom.cpp: // treat orthogonal and triclinic the same +compute_chunk_atom.cpp: // check every time bins are created +compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom bin/cylinder radius " +compute_chunk_atom.cpp: cinvrad = ncbin / (cradmax-cradmin); +compute_chunk_atom.cpp: // allocate and set radial bin coordinates +compute_chunk_atom.cpp: // radial coord = midpt of radii for a cylindrical shell +compute_chunk_atom.cpp: // axiscoord = saved bin coords along cylndrical axis +compute_chunk_atom.cpp: // radcoord = saved bin coords in radial direction +compute_chunk_atom.cpp: memory->create(coord,ncbin,1,"chunk/atom:coord"); +compute_chunk_atom.cpp: rlo = cradmin + i * (cradmax-cradmin) / ncbin; +compute_chunk_atom.cpp: rhi = cradmin + (i+1) * (cradmax-cradmin) / ncbin; +compute_chunk_atom.cpp: // create array of combined coords for all bins +compute_chunk_atom.cpp: memory->create(coord,ncbin*ncplane,2,"chunk/atom:coord"); +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: chunk_volume_scalar *= delta[m]/prd[dim[m]]; +compute_chunk_atom.cpp: memory->create(chunk_volume_vec,nchunk,"chunk/atom:chunk_volume_vec"); +compute_chunk_atom.cpp: rlo = sradmin + i * (sradmax-sradmin) / nsbin; +compute_chunk_atom.cpp: rhi = sradmin + (i+1) * (sradmax-sradmin) / nsbin; +compute_chunk_atom.cpp: vollo = 4.0/3.0 * MY_PI * rlo*rlo*rlo; +compute_chunk_atom.cpp: volhi = 4.0/3.0 * MY_PI * rhi*rhi*rhi; +compute_chunk_atom.cpp: memory->create(chunk_volume_vec,nchunk,"chunk/atom:chunk_volume_vec"); +compute_chunk_atom.cpp: // slabthick = delta of bins along cylinder axis +compute_chunk_atom.cpp: double slabthick = domain->prd[dim[0]] * delta[0]/prd[dim[0]]; +compute_chunk_atom.cpp: // area lo/hi of concentric circles in radial direction +compute_chunk_atom.cpp: iradbin = i / ncplane; +compute_chunk_atom.cpp: rlo = cradmin + iradbin * (cradmax-cradmin) / ncbin; +compute_chunk_atom.cpp: rhi = cradmin + (iradbin+1) * (cradmax-cradmin) / ncbin; +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // remap each atom's relevant coord back into box via PBC if necessary +compute_chunk_atom.cpp: // if scaleflag = REDUCED, box coords -> lamda coords +compute_chunk_atom.cpp: // apply discard rule +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // remap each atom's relevant coord back into box via PBC if necessary +compute_chunk_atom.cpp: // if scaleflag = REDUCED, box coords -> lamda coords +compute_chunk_atom.cpp: // apply discard rule +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // remap each atom's relevant coord back into box via PBC if necessary +compute_chunk_atom.cpp: // if scaleflag = REDUCED, box coords -> lamda coords +compute_chunk_atom.cpp: // apply discard rule +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // remap each atom's relevant coords back into box via PBC if necessary +compute_chunk_atom.cpp: // apply discard rule based on rmin and rmax +compute_chunk_atom.cpp: // if requested, apply PBC to distance from sphere center +compute_chunk_atom.cpp: // treat orthogonal and triclinic the same +compute_chunk_atom.cpp: // with dx,dy,dz = lengths independent of each other +compute_chunk_atom.cpp: // so do not use domain->minimum_image() which couples for triclinic +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: // first use atom2bin1d() to bin all atoms along cylinder axis +compute_chunk_atom.cpp: // now bin in radial direction +compute_chunk_atom.cpp: // kbin = bin along cylinder axis +compute_chunk_atom.cpp: // rbin = bin in radial direction +compute_chunk_atom.cpp: // remap each atom's relevant coords back into box via PBC if necessary +compute_chunk_atom.cpp: // apply discard rule based on rmin and rmax +compute_chunk_atom.cpp: // if requested, apply PBC to distance from cylinder axis +compute_chunk_atom.cpp: // treat orthogonal and triclinic the same +compute_chunk_atom.cpp: // with d1,d2 = lengths independent of each other +compute_chunk_atom.cpp: // combine axis and radial bin indices to set ichunk +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: if (narg < iarg+3) error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); +compute_chunk_atom.cpp: error->all(FLERR,"Cannot use compute chunk/atom bin z for 2d model"); +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- +compute_chunk_atom.cpp:------------------------------------------------------------------------- */ +compute_chunk_atom.cpp: double bytes = 2*MAX(nmaxint,0) * sizeof(int); // ichunk,exclude +compute_chunk_atom.cpp: bytes += nmax * sizeof(double); // chunk +compute_chunk_atom.cpp: bytes += ncoord*nchunk * sizeof(double); // coord +compute_chunk_atom.cpp: if (compress) bytes += nchunk * sizeof(int); // chunkID +compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- +compute_cluster_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_cluster_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_cluster_atom.cpp:------------------------------------------------------------------------- */ +compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cluster_atom.cpp: if (narg != 4) error->all(FLERR,"Illegal compute cluster/atom command"); +compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cluster_atom.cpp: error->all(FLERR,"Cannot use compute cluster/atom unless atoms have IDs"); +compute_cluster_atom.cpp: error->all(FLERR,"Compute cluster/atom requires a pair style be defined"); +compute_cluster_atom.cpp: "Compute cluster/atom cutoff is longer than pairwise cutoff"); +compute_cluster_atom.cpp: // need an occasional full neighbor list +compute_cluster_atom.cpp: // full required so that pair of atoms on 2 procs both set their clusterID +compute_cluster_atom.cpp: if (strcmp(modify->compute[i]->style,"cluster/atom") == 0) count++; +compute_cluster_atom.cpp: error->warning(FLERR,"More than one compute cluster/atom"); +compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cluster_atom.cpp: // grow clusterID array if necessary +compute_cluster_atom.cpp: memory->create(clusterID,nmax,"cluster/atom:clusterID"); +compute_cluster_atom.cpp: // invoke full neighbor list (will copy or build if necessary) +compute_cluster_atom.cpp: // if group is dynamic, insure ghost atom masks are current +compute_cluster_atom.cpp: // every atom starts in its own cluster, with clusterID = atomID +compute_cluster_atom.cpp: // loop until no more changes on any proc: +compute_cluster_atom.cpp: // acquire clusterIDs of ghost atoms +compute_cluster_atom.cpp: // loop over my atoms, checking distance to neighbors +compute_cluster_atom.cpp: // if both atoms are in cluster, assign lowest clusterID to both +compute_cluster_atom.cpp: // iterate until no changes in my atoms +compute_cluster_atom.cpp: // then check if any proc made changes +compute_cluster_atom.cpp: // stop if all procs are done +compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- +compute_cluster_atom.cpp:------------------------------------------------------------------------- */ +compute_cna_atom.cpp:/* ---------------------------------------------------------------------- +compute_cna_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_cna_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_cna_atom.cpp:------------------------------------------------------------------------- */ +compute_cna_atom.cpp:/* ---------------------------------------------------------------------- +compute_cna_atom.cpp:------------------------------------------------------------------------- */ +compute_cna_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cna_atom.cpp: if (narg != 4) error->all(FLERR,"Illegal compute cna/atom command"); +compute_cna_atom.cpp: if (cutoff < 0.0) error->all(FLERR,"Illegal compute cna/atom command"); +compute_cna_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cna_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cna_atom.cpp: error->all(FLERR,"Compute cna/atom requires a pair style be defined"); +compute_cna_atom.cpp: error->all(FLERR,"Compute cna/atom cutoff is longer than pairwise cutoff"); +compute_cna_atom.cpp: // cannot use neighbor->cutneighmax b/c neighbor has not yet been init +compute_cna_atom.cpp: error->warning(FLERR,"Compute cna/atom cutoff may be too large to find " +compute_cna_atom.cpp: if (strcmp(modify->compute[i]->style,"cna/atom") == 0) count++; +compute_cna_atom.cpp: error->warning(FLERR,"More than one compute cna/atom defined"); +compute_cna_atom.cpp: // need an occasional full neighbor list +compute_cna_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cna_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_cna_atom.cpp: // grow arrays if necessary +compute_cna_atom.cpp: // invoke full neighbor list (will copy or build if necessary) +compute_cna_atom.cpp: // find the neigbours of each atom within cutoff using full neighbor list +compute_cna_atom.cpp: // nearest[] = atom indices of nearest neighbors, up to MAXNEAR +compute_cna_atom.cpp: // do this for all atoms, not just compute group +compute_cna_atom.cpp: // since CNA calculation requires neighbors of neighbors +compute_cna_atom.cpp: // warning message +compute_cna_atom.cpp: // compute CNA for each atom in group +compute_cna_atom.cpp: // only performed if # of nearest neighbors = 12 or 14 (fcc,hcp) +compute_cna_atom.cpp: // loop over near neighbors of I to build cna data structure +compute_cna_atom.cpp: // cna[k][NCOMMON] = # of common neighbors of I with each of its neighs +compute_cna_atom.cpp: // cna[k][NBONDS] = # of bonds between those common neighbors +compute_cna_atom.cpp: // cna[k][MAXBOND] = max # of bonds of any common neighbor +compute_cna_atom.cpp: // cna[k][MINBOND] = min # of bonds of any common neighbor +compute_cna_atom.cpp: // common = list of neighbors common to atom I and atom J +compute_cna_atom.cpp: // if J is an owned atom, use its near neighbor list to find them +compute_cna_atom.cpp: // if J is a ghost atom, use full neighbor list of I to find them +compute_cna_atom.cpp: // in latter case, must exclude J from I's neighbor list +compute_cna_atom.cpp: // calculate total # of bonds between common neighbor atoms +compute_cna_atom.cpp: // also max and min # of common atoms any common atom is bonded to +compute_cna_atom.cpp: // bond = pair of atoms within cutoff +compute_cna_atom.cpp: // detect CNA pattern of the atom +compute_cna_atom.cpp: // warning message +compute_cna_atom.cpp:/* ---------------------------------------------------------------------- +compute_cna_atom.cpp:------------------------------------------------------------------------- */ +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- +compute_com_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_com_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_com_chunk.cpp:------------------------------------------------------------------------- */ +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_com_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute com/chunk command"); +compute_com_chunk.cpp: // ID of compute chunk/atom +compute_com_chunk.cpp: // chunk-based data +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_com_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for compute com/chunk"); +compute_com_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_com_chunk.cpp: error->all(FLERR,"Compute com/chunk does not use chunk/atom compute"); +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_com_chunk.cpp: // one-time calculation of per-chunk mass +compute_com_chunk.cpp: // done in setup, so that ComputeChunkAtom::setup() is already called +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_com_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_com_chunk.cpp: // extract ichunk index vector from compute +compute_com_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_com_chunk.cpp: // zero local per-chunk values +compute_com_chunk.cpp: // compute COM for each chunk +compute_com_chunk.cpp: comall[i][0] /= masstotal[i]; +compute_com_chunk.cpp: comall[i][1] /= masstotal[i]; +compute_com_chunk.cpp: comall[i][2] /= masstotal[i]; +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- +compute_com_chunk.cpp: lock methods: called by fix ave/time +compute_com_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_com_chunk.cpp: by passing lock info along to compute chunk/atom +compute_com_chunk.cpp:------------------------------------------------------------------------- */ +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- +compute_com_chunk.cpp:------------------------------------------------------------------------- */ +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- +compute_com_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_com_chunk.cpp:------------------------------------------------------------------------- */ +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- +compute_com_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_com_chunk.cpp:------------------------------------------------------------------------- */ +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- +compute_com_chunk.cpp:------------------------------------------------------------------------- */ +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- +compute_com_chunk.cpp:------------------------------------------------------------------------- */ +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- +compute_com_chunk.cpp:------------------------------------------------------------------------- */ +compute_com_chunk.cpp: memory->create(massproc,maxchunk,"com/chunk:massproc"); +compute_com_chunk.cpp: memory->create(masstotal,maxchunk,"com/chunk:masstotal"); +compute_com_chunk.cpp: memory->create(com,maxchunk,3,"com/chunk:com"); +compute_com_chunk.cpp: memory->create(comall,maxchunk,3,"com/chunk:comall"); +compute_com_chunk.cpp:/* ---------------------------------------------------------------------- +compute_com_chunk.cpp:------------------------------------------------------------------------- */ +compute_com.cpp:/* ---------------------------------------------------------------------- +compute_com.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_com.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_com.cpp:------------------------------------------------------------------------- */ +compute_com.cpp:/* ---------------------------------------------------------------------- */ +compute_com.cpp:/* ---------------------------------------------------------------------- */ +compute_com.cpp:/* ---------------------------------------------------------------------- */ +compute_com.cpp:/* ---------------------------------------------------------------------- */ +compute_contact_atom.cpp:/* ---------------------------------------------------------------------- +compute_contact_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_contact_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_contact_atom.cpp:------------------------------------------------------------------------- */ +compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_contact_atom.cpp: if (narg != 3) error->all(FLERR,"Illegal compute contact/atom command"); +compute_contact_atom.cpp: // error checks +compute_contact_atom.cpp: error->all(FLERR,"Compute contact/atom requires atom style sphere"); +compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_contact_atom.cpp: error->all(FLERR,"Compute contact/atom requires a pair style be defined"); +compute_contact_atom.cpp: if (strcmp(modify->compute[i]->style,"contact/atom") == 0) count++; +compute_contact_atom.cpp: error->warning(FLERR,"More than one compute contact/atom"); +compute_contact_atom.cpp: // need an occasional neighbor list +compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_contact_atom.cpp: // grow contact array if necessary +compute_contact_atom.cpp: memory->create(contact,nmax,"contact/atom:contact"); +compute_contact_atom.cpp: // invoke neighbor list (will copy or build if necessary) +compute_contact_atom.cpp: // compute number of contacts for each atom in group +compute_contact_atom.cpp: // contact if distance <= sum of radii +compute_contact_atom.cpp: // tally for both I and J +compute_contact_atom.cpp: // communicate ghost atom counts between neighbor procs if necessary +compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_contact_atom.cpp:/* ---------------------------------------------------------------------- +compute_contact_atom.cpp:------------------------------------------------------------------------- */ +compute_coord_atom.cpp:/* ---------------------------------------------------------------------- +compute_coord_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_coord_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_coord_atom.cpp:------------------------------------------------------------------------- */ +compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_coord_atom.cpp: if (narg < 5) error->all(FLERR,"Illegal compute coord/atom command"); +compute_coord_atom.cpp: error->all(FLERR,"Illegal compute coord/atom command"); +compute_coord_atom.cpp: if (narg != 6) error->all(FLERR,"Illegal compute coord/atom command"); +compute_coord_atom.cpp: error->all(FLERR,"Could not find compute coord/atom compute ID"); +compute_coord_atom.cpp: if (strcmp(modify->compute[iorientorder]->style,"orientorder/atom") != 0) +compute_coord_atom.cpp: error->all(FLERR,"Compute coord/atom compute ID is not orientorder/atom"); +compute_coord_atom.cpp: error->all(FLERR,"Compute coord/atom threshold not between -1 and 1"); +compute_coord_atom.cpp: } else error->all(FLERR,"Invalid cstyle in compute coord/atom"); +compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_coord_atom.cpp: // communicate real and imaginary 2*l+1 components of the normalized vector +compute_coord_atom.cpp: error->all(FLERR,"Compute coord/atom requires components " +compute_coord_atom.cpp: "option in compute orientorder/atom"); +compute_coord_atom.cpp: error->all(FLERR,"Compute coord/atom requires a pair style be defined"); +compute_coord_atom.cpp: "Compute coord/atom cutoff is longer than pairwise cutoff"); +compute_coord_atom.cpp: // need an occasional full neighbor list +compute_coord_atom.cpp: if (strcmp(modify->compute[i]->style,"coord/atom") == 0) count++; +compute_coord_atom.cpp: error->warning(FLERR,"More than one compute coord/atom"); +compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_coord_atom.cpp: // grow coordination array if necessary +compute_coord_atom.cpp: memory->create(cvec,nmax,"coord/atom:cvec"); +compute_coord_atom.cpp: memory->create(carray,nmax,ncol,"coord/atom:carray"); +compute_coord_atom.cpp: // invoke full neighbor list (will copy or build if necessary) +compute_coord_atom.cpp: // compute coordination number(s) for each atom in group +compute_coord_atom.cpp: // use full neighbor list to count atoms less than cutoff +compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_coord_atom.cpp:/* ---------------------------------------------------------------------- +compute_coord_atom.cpp:------------------------------------------------------------------------- */ +compute.cpp:/* ---------------------------------------------------------------------- +compute.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute.cpp:------------------------------------------------------------------------- */ +compute.cpp:// allocate space for static class instance variable and initialize it +compute.cpp:/* ---------------------------------------------------------------------- */ +compute.cpp: // compute ID, group, and style +compute.cpp: // ID must be all alphanumeric chars or underscores +compute.cpp: // set child class defaults +compute.cpp: // set modify defaults +compute.cpp: // setup list of timesteps +compute.cpp: // data masks +compute.cpp:/* ---------------------------------------------------------------------- */ +compute.cpp:/* ---------------------------------------------------------------------- */ +compute.cpp: // added more specific keywords in Mar17 +compute.cpp: // at some point, remove generic extra and dynamic +compute.cpp: strcmp(arg[iarg],"extra/dof") == 0) { +compute.cpp: strcmp(arg[iarg],"dynamic/dof") == 0) { +compute.cpp:/* ---------------------------------------------------------------------- +compute.cpp:------------------------------------------------------------------------- */ +compute.cpp:/* ---------------------------------------------------------------------- +compute.cpp:------------------------------------------------------------------------- */ +compute.cpp:/* ---------------------------------------------------------------------- */ +compute.cpp:/* ---------------------------------------------------------------------- +compute.cpp:------------------------------------------------------------------------- */ +compute.cpp: // i = location in list to insert ntimestep +compute.cpp: // extend list as needed +compute.cpp: // move remainder of list upward and insert ntimestep +compute.cpp:/* ---------------------------------------------------------------------- +compute.cpp: return 1/0 if ntimestep is or is not in list of calling timesteps +compute.cpp:------------------------------------------------------------------------- */ +compute.cpp:/* ---------------------------------------------------------------------- +compute.cpp:------------------------------------------------------------------------- */ +compute_dihedral.cpp:/* ---------------------------------------------------------------------- +compute_dihedral.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_dihedral.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_dihedral.cpp:------------------------------------------------------------------------- */ +compute_dihedral.cpp:/* ---------------------------------------------------------------------- */ +compute_dihedral.cpp: // check if dihedral style hybrid exists +compute_dihedral.cpp:/* ---------------------------------------------------------------------- */ +compute_dihedral.cpp:/* ---------------------------------------------------------------------- */ +compute_dihedral.cpp: // recheck dihedral style in case it has been changed +compute_dihedral.cpp:/* ---------------------------------------------------------------------- */ +compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- +compute_dihedral_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_dihedral_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_dihedral_local.cpp:------------------------------------------------------------------------- */ +compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- */ +compute_dihedral_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute dihedral/local command"); +compute_dihedral_local.cpp: "Compute dihedral/local used when dihedrals are not allowed"); +compute_dihedral_local.cpp: else error->all(FLERR,"Invalid keyword in compute dihedral/local command"); +compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- */ +compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- */ +compute_dihedral_local.cpp: error->all(FLERR,"No dihedral style is defined for compute dihedral/local"); +compute_dihedral_local.cpp: // do initial memory allocation so that memory_usage() is correct +compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- */ +compute_dihedral_local.cpp: // count local entries and compute dihedral info +compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- +compute_dihedral_local.cpp:------------------------------------------------------------------------- */ +compute_dihedral_local.cpp: // phi calculation from dihedral style harmonic +compute_dihedral_local.cpp: if (rasq > 0) ra2inv = 1.0/rasq; +compute_dihedral_local.cpp: if (rbsq > 0) rb2inv = 1.0/rbsq; +compute_dihedral_local.cpp: pbuf[n] = 180.0*atan2(s,c)/MY_PI; +compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- */ +compute_dihedral_local.cpp: // grow vector_local or array_local +compute_dihedral_local.cpp: memory->create(vlocal,nmax,"dihedral/local:vector_local"); +compute_dihedral_local.cpp: memory->create(alocal,nmax,nvalues,"dihedral/local:array_local"); +compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- +compute_dihedral_local.cpp:------------------------------------------------------------------------- */ +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- +compute_dipole_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_dipole_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_dipole_chunk.cpp: error->all(FLERR,"Illegal compute dipole/chunk command"); +compute_dipole_chunk.cpp: // ID of compute chunk/atom +compute_dipole_chunk.cpp: else error->all(FLERR,"Illegal compute dipole/chunk command"); +compute_dipole_chunk.cpp: // chunk-based data +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_dipole_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " +compute_dipole_chunk.cpp: "compute dipole/chunk"); +compute_dipole_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_dipole_chunk.cpp: error->all(FLERR,"Compute dipole/chunk does not use chunk/atom compute"); +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_dipole_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_dipole_chunk.cpp: // extract ichunk index vector from compute +compute_dipole_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_dipole_chunk.cpp: // zero local per-chunk values +compute_dipole_chunk.cpp: // compute COM for each chunk +compute_dipole_chunk.cpp: } else massone = 1.0; // usecenter == GEOMCENTER +compute_dipole_chunk.cpp: comall[i][0] /= masstotal[i]; +compute_dipole_chunk.cpp: comall[i][1] /= masstotal[i]; +compute_dipole_chunk.cpp: comall[i][2] /= masstotal[i]; +compute_dipole_chunk.cpp: // compute dipole for each chunk +compute_dipole_chunk.cpp: // correct for position dependence with charged chunks +compute_dipole_chunk.cpp: // compute total dipole moment +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- +compute_dipole_chunk.cpp: lock methods: called by fix ave/time +compute_dipole_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_dipole_chunk.cpp: by passing lock info along to compute chunk/atom +compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- +compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- +compute_dipole_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- +compute_dipole_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- +compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- +compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- +compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ +compute_dipole_chunk.cpp: memory->create(massproc,maxchunk,"dipole/chunk:massproc"); +compute_dipole_chunk.cpp: memory->create(masstotal,maxchunk,"dipole/chunk:masstotal"); +compute_dipole_chunk.cpp: memory->create(chrgproc,maxchunk,"dipole/chunk:chrgproc"); +compute_dipole_chunk.cpp: memory->create(chrgtotal,maxchunk,"dipole/chunk:chrgtotal"); +compute_dipole_chunk.cpp: memory->create(com,maxchunk,3,"dipole/chunk:com"); +compute_dipole_chunk.cpp: memory->create(comall,maxchunk,3,"dipole/chunk:comall"); +compute_dipole_chunk.cpp: memory->create(dipole,maxchunk,4,"dipole/chunk:dipole"); +compute_dipole_chunk.cpp: memory->create(dipoleall,maxchunk,4,"dipole/chunk:dipoleall"); +compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- +compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ +compute_displace_atom.cpp:/* ---------------------------------------------------------------------- +compute_displace_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_displace_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_displace_atom.cpp:------------------------------------------------------------------------- */ +compute_displace_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_displace_atom.cpp: if (narg != 3) error->all(FLERR,"Illegal compute displace/atom command"); +compute_displace_atom.cpp: // create a new fix STORE style +compute_displace_atom.cpp: // id = compute-ID + COMPUTE_STORE, fix group = compute group +compute_displace_atom.cpp: // calculate xu,yu,zu for fix store array +compute_displace_atom.cpp: // skip if reset from restart file +compute_displace_atom.cpp: // per-atom displacement array +compute_displace_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_displace_atom.cpp: // check nfix in case all fixes have already been deleted +compute_displace_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_displace_atom.cpp: // set fix which stores original atom coords +compute_displace_atom.cpp: if (ifix < 0) error->all(FLERR,"Could not find compute displace/atom fix ID"); +compute_displace_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_displace_atom.cpp: // grow local displacement array if necessary +compute_displace_atom.cpp: memory->create(displace,nmax,4,"displace/atom:displace"); +compute_displace_atom.cpp: // dx,dy,dz = displacement of atom from original position +compute_displace_atom.cpp: // original unwrapped position is stored by fix +compute_displace_atom.cpp: // for triclinic, need to unwrap current atom coord via h matrix +compute_displace_atom.cpp:/* ---------------------------------------------------------------------- +compute_displace_atom.cpp:------------------------------------------------------------------------- */ +compute_displace_atom.cpp:/* ---------------------------------------------------------------------- +compute_displace_atom.cpp:------------------------------------------------------------------------- */ +compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- +compute_erotate_sphere_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_erotate_sphere_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_erotate_sphere_atom.cpp:------------------------------------------------------------------------- */ +compute_erotate_sphere_atom.cpp:#define INERTIA 0.4 // moment of inertia prefactor for sphere +compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_erotate_sphere_atom.cpp: error->all(FLERR,"Illegal compute erotate/sphere//atom command"); +compute_erotate_sphere_atom.cpp: // error check +compute_erotate_sphere_atom.cpp: error->all(FLERR,"Compute erotate/sphere/atom requires atom style sphere"); +compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_erotate_sphere_atom.cpp: if (strcmp(modify->compute[i]->style,"erotate/sphere/atom") == 0) count++; +compute_erotate_sphere_atom.cpp: error->warning(FLERR,"More than one compute erotate/sphere/atom"); +compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_erotate_sphere_atom.cpp: // grow erot array if necessary +compute_erotate_sphere_atom.cpp: memory->create(erot,nmax,"erotate/sphere/atom:erot"); +compute_erotate_sphere_atom.cpp: // compute rotational kinetic energy for each atom in group +compute_erotate_sphere_atom.cpp: // point particles will have erot = 0.0, due to radius = 0.0 +compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- +compute_erotate_sphere_atom.cpp:------------------------------------------------------------------------- */ +compute_erotate_sphere.cpp:/* ---------------------------------------------------------------------- +compute_erotate_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_erotate_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_erotate_sphere.cpp:------------------------------------------------------------------------- */ +compute_erotate_sphere.cpp:#define INERTIA 0.4 // moment of inertia prefactor for sphere +compute_erotate_sphere.cpp:/* ---------------------------------------------------------------------- */ +compute_erotate_sphere.cpp: if (narg != 3) error->all(FLERR,"Illegal compute erotate/sphere command"); +compute_erotate_sphere.cpp: // error check +compute_erotate_sphere.cpp: error->all(FLERR,"Compute erotate/sphere requires atom style sphere"); +compute_erotate_sphere.cpp:/* ---------------------------------------------------------------------- */ +compute_erotate_sphere.cpp:/* ---------------------------------------------------------------------- */ +compute_erotate_sphere.cpp: // sum rotational energy for each particle +compute_erotate_sphere.cpp: // point particles will not contribute, due to radius = 0.0 +compute_global_atom.cpp:/* ---------------------------------------------------------------------- +compute_global_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_global_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_global_atom.cpp:------------------------------------------------------------------------- */ +compute_global_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_global_atom.cpp: if (narg < 5) error->all(FLERR,"Illegal compute global/atom command"); +compute_global_atom.cpp: // process index arg +compute_global_atom.cpp: error->all(FLERR,"Illegal compute global/atom command"); +compute_global_atom.cpp: } else error->all(FLERR,"Illegal compute global/atom command"); +compute_global_atom.cpp: // expand args if any have wildcard character "*" +compute_global_atom.cpp: // parse values until one isn't recognized +compute_global_atom.cpp: error->all(FLERR,"Illegal compute global/atom command"); +compute_global_atom.cpp: } else error->all(FLERR,"Illegal compute global/atom command"); +compute_global_atom.cpp: // if wildcard expansion occurred, free earg memory from expand_args() +compute_global_atom.cpp: // setup and error check both index arg and values +compute_global_atom.cpp: error->all(FLERR,"Compute ID for compute global/atom does not exist"); +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute does not " +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute does not " +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute does not " +compute_global_atom.cpp: "Compute global/atom compute array is accessed out-of-range"); +compute_global_atom.cpp: error->all(FLERR,"Fix ID for compute global/atom does not exist"); +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix does not " +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix does not " +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix does not " +compute_global_atom.cpp: "Compute global/atom fix array is accessed out-of-range"); +compute_global_atom.cpp: error->all(FLERR,"Variable name for compute global/atom does not exist"); +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom variable is not " +compute_global_atom.cpp: error->all(FLERR,"Compute ID for compute global/atom does not exist"); +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute does not " +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute does not " +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute array is " +compute_global_atom.cpp: error->all(FLERR,"Fix ID for compute global/atom does not exist"); +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix does not " +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix does not " +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix array is " +compute_global_atom.cpp: error->all(FLERR,"Variable name for compute global/atom " +compute_global_atom.cpp: error->all(FLERR,"Compute global/atom variable is not " +compute_global_atom.cpp: // this compute produces either a peratom vector or array +compute_global_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_global_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_global_atom.cpp: // set indices of all computes,fixes,variables +compute_global_atom.cpp: error->all(FLERR,"Compute ID for compute global/atom does not exist"); +compute_global_atom.cpp: error->all(FLERR,"Fix ID for compute global/atom does not exist"); +compute_global_atom.cpp: error->all(FLERR,"Variable name for compute global/atom does not exist"); +compute_global_atom.cpp: error->all(FLERR,"Compute ID for compute global/atom does not exist"); +compute_global_atom.cpp: error->all(FLERR,"Fix ID for compute global/atom does not exist"); +compute_global_atom.cpp: error->all(FLERR,"Variable name for compute global/atom " +compute_global_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_global_atom.cpp: // grow indices and output vector or array if necessary +compute_global_atom.cpp: memory->create(indices,nmax,"global/atom:indices"); +compute_global_atom.cpp: memory->create(vector_atom,nmax,"global/atom:vector_atom"); +compute_global_atom.cpp: memory->create(array_atom,nmax,nvalues,"global/atom:array_atom"); +compute_global_atom.cpp: // setup current peratom indices +compute_global_atom.cpp: // integer indices are rounded down from double values +compute_global_atom.cpp: // indices are decremented from 1 to N -> 0 to N-1 +compute_global_atom.cpp: error->all(FLERR,"Fix used in compute global/atom not " +compute_global_atom.cpp: memory->create(varatom,nmax,"global/atom:varatom"); +compute_global_atom.cpp: // loop over values to fill output vector or array +compute_global_atom.cpp: // output = vector +compute_global_atom.cpp: error->all(FLERR,"Fix used in compute global/atom not " +compute_global_atom.cpp: memory->create(vecglobal,maxvector,"global/atom:vecglobal"); +compute_global_atom.cpp: // output = array +compute_global_atom.cpp: memory->create(vecglobal,maxvector,"global/atom:vecglobal"); +compute_global_atom.cpp: error->all(FLERR,"Fix used in compute global/atom not " +compute_global_atom.cpp: memory->create(vecglobal,maxvector,"global/atom:vecglobal"); +compute_global_atom.cpp:/* ---------------------------------------------------------------------- +compute_global_atom.cpp:------------------------------------------------------------------------- */ +compute_global_atom.cpp: bytes += nmax * sizeof(int); // indices +compute_global_atom.cpp: if (varatom) bytes += nmax * sizeof(double); // varatom +compute_global_atom.cpp: bytes += maxvector * sizeof(double); // vecglobal +compute_group_group.cpp:/* ---------------------------------------------------------------------- +compute_group_group.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_group_group.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_group_group.cpp:------------------------------------------------------------------------- */ +compute_group_group.cpp:/* ---------------------------------------------------------------------- +compute_group_group.cpp:------------------------------------------------------------------------- */ +compute_group_group.cpp:/* ---------------------------------------------------------------------- */ +compute_group_group.cpp: if (narg < 4) error->all(FLERR,"Illegal compute group/group command"); +compute_group_group.cpp: error->all(FLERR,"Compute group/group group ID does not exist"); +compute_group_group.cpp: error->all(FLERR,"Illegal compute group/group command"); +compute_group_group.cpp: else error->all(FLERR,"Illegal compute group/group command"); +compute_group_group.cpp: error->all(FLERR,"Illegal compute group/group command"); +compute_group_group.cpp: else error->all(FLERR,"Illegal compute group/group command"); +compute_group_group.cpp: error->all(FLERR,"Illegal compute group/group command"); +compute_group_group.cpp: else error->all(FLERR,"Illegal compute group/group command"); +compute_group_group.cpp: error->all(FLERR,"Illegal compute group/group command"); +compute_group_group.cpp: else error->all(FLERR,"Illegal compute group/group command"); +compute_group_group.cpp: error->all(FLERR,"Compute group/group molecule requires molecule IDs"); +compute_group_group.cpp: } else error->all(FLERR,"Illegal compute group/group command"); +compute_group_group.cpp:/* ---------------------------------------------------------------------- */ +compute_group_group.cpp:/* ---------------------------------------------------------------------- */ +compute_group_group.cpp: // if non-hybrid, then error if single_enable = 0 +compute_group_group.cpp: // if hybrid, let hybrid determine if sub-style sets single_enable = 0 +compute_group_group.cpp: error->all(FLERR,"No pair style defined for compute group/group"); +compute_group_group.cpp: error->all(FLERR,"Pair style does not support compute group/group"); +compute_group_group.cpp: // error if Kspace style does not compute group/group interactions +compute_group_group.cpp: error->all(FLERR,"No Kspace style defined for compute group/group"); +compute_group_group.cpp: error->all(FLERR,"Kspace style does not support compute group/group"); +compute_group_group.cpp: // compute Kspace correction terms +compute_group_group.cpp: sprintf(str,"Both groups in compute group/group have a net charge; " +compute_group_group.cpp: // recheck that group 2 has not been deleted +compute_group_group.cpp: error->all(FLERR,"Compute group/group group ID does not exist"); +compute_group_group.cpp: // need an occasional half neighbor list +compute_group_group.cpp:/* ---------------------------------------------------------------------- */ +compute_group_group.cpp:/* ---------------------------------------------------------------------- */ +compute_group_group.cpp:/* ---------------------------------------------------------------------- */ +compute_group_group.cpp:/* ---------------------------------------------------------------------- */ +compute_group_group.cpp: // invoke half neighbor list (will copy or build if necessary) +compute_group_group.cpp: // loop over neighbors of my atoms +compute_group_group.cpp: // skip if I,J are not in 2 groups +compute_group_group.cpp: // skip if atom I is not in either group +compute_group_group.cpp: // skip if atom J is not in either group +compute_group_group.cpp: // skip if atoms I,J are only in the same group +compute_group_group.cpp: // skip if molecule IDs of atoms I,J do not satisfy molflag setting +compute_group_group.cpp: // energy only computed once so tally full amount +compute_group_group.cpp: // force tally is jgroup acting on igroup +compute_group_group.cpp: // energy computed twice so tally half amount +compute_group_group.cpp: // only tally force if I own igroup atom +compute_group_group.cpp:/* ---------------------------------------------------------------------- */ +compute_group_group.cpp: // subtract extra A <--> A Kspace interaction so energy matches +compute_group_group.cpp: // real-space style of compute group-group +compute_group_group.cpp: // add extra Kspace term to energy +compute_group_group.cpp: // self energy correction term +compute_group_group.cpp: // k=0 boundary correction term +compute_group_group.cpp: // adjustment of z dimension for 2d slab Ewald +compute_group_group.cpp: // 3d Ewald just uses zprd since slab_volfactor = 1.0 +compute_group_group.cpp: scalar -= e_correction/volume; +compute_group_group.cpp:/* ---------------------------------------------------------------------- */ +compute_group_group.cpp: // total charge of groups A & B, needed for correction term +compute_group_group.cpp: // self-energy correction +compute_group_group.cpp: e_self = qscale * g_ewald*qsqsum_group/MY_PIS; +compute_group_group.cpp: // subtract extra AA terms +compute_group_group.cpp: // k=0 energy correction term (still need to divide by volume above) +compute_group_group.cpp: e_correction *= qscale * MY_PI2 / (g_ewald*g_ewald); +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- +compute_gyration_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_gyration_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_gyration_chunk.cpp: if (narg < 4) error->all(FLERR,"Illegal compute gyration/chunk command"); +compute_gyration_chunk.cpp: // ID of compute chunk/atom +compute_gyration_chunk.cpp: // optional args +compute_gyration_chunk.cpp: } else error->all(FLERR,"Illegal compute gyration/chunk command"); +compute_gyration_chunk.cpp: // chunk-based data +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_gyration_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " +compute_gyration_chunk.cpp: "compute gyration/chunk"); +compute_gyration_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_gyration_chunk.cpp: error->all(FLERR,"Compute gyration/chunk does not use chunk/atom compute"); +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_gyration_chunk.cpp: // compute Rg for each chunk +compute_gyration_chunk.cpp: rgall[i] = sqrt(rgall[i]/masstotal[i]); +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_gyration_chunk.cpp: rgtall[i][j] = rgtall[i][j]/masstotal[i]; +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- +compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ +compute_gyration_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_gyration_chunk.cpp: // extract ichunk index vector from compute +compute_gyration_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_gyration_chunk.cpp: // zero local per-chunk values +compute_gyration_chunk.cpp: // compute COM for each chunk +compute_gyration_chunk.cpp: comall[i][0] /= masstotal[i]; +compute_gyration_chunk.cpp: comall[i][1] /= masstotal[i]; +compute_gyration_chunk.cpp: comall[i][2] /= masstotal[i]; +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- +compute_gyration_chunk.cpp: lock methods: called by fix ave/time +compute_gyration_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_gyration_chunk.cpp: by passing lock info along to compute chunk/atom +compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- +compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- +compute_gyration_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- +compute_gyration_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- +compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- +compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- +compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ +compute_gyration_chunk.cpp: memory->create(massproc,maxchunk,"gyration/chunk:massproc"); +compute_gyration_chunk.cpp: memory->create(masstotal,maxchunk,"gyration/chunk:masstotal"); +compute_gyration_chunk.cpp: memory->create(com,maxchunk,3,"gyration/chunk:com"); +compute_gyration_chunk.cpp: memory->create(comall,maxchunk,3,"gyration/chunk:comall"); +compute_gyration_chunk.cpp: memory->create(rgt,maxchunk,6,"gyration/chunk:rgt"); +compute_gyration_chunk.cpp: memory->create(rgtall,maxchunk,6,"gyration/chunk:rgtall"); +compute_gyration_chunk.cpp: memory->create(rg,maxchunk,"gyration/chunk:rg"); +compute_gyration_chunk.cpp: memory->create(rgall,maxchunk,"gyration/chunk:rgall"); +compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- +compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ +compute_gyration.cpp:/* ---------------------------------------------------------------------- +compute_gyration.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_gyration.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_gyration.cpp:------------------------------------------------------------------------- */ +compute_gyration.cpp:/* ---------------------------------------------------------------------- */ +compute_gyration.cpp:/* ---------------------------------------------------------------------- */ +compute_gyration.cpp:/* ---------------------------------------------------------------------- */ +compute_gyration.cpp:/* ---------------------------------------------------------------------- */ +compute_gyration.cpp:/* ---------------------------------------------------------------------- +compute_gyration.cpp:------------------------------------------------------------------------- */ +compute_gyration.cpp: vector[i] /= masstotal; +compute_heat_flux.cpp:/* ---------------------------------------------------------------------- +compute_heat_flux.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_heat_flux.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_heat_flux.cpp:------------------------------------------------------------------------- */ +compute_heat_flux.cpp:/* ---------------------------------------------------------------------- +compute_heat_flux.cpp:------------------------------------------------------------------------- */ +compute_heat_flux.cpp:/* ---------------------------------------------------------------------- */ +compute_heat_flux.cpp: if (narg != 6) error->all(FLERR,"Illegal compute heat/flux command"); +compute_heat_flux.cpp: // store ke/atom, pe/atom, stress/atom IDs used by heat flux computation +compute_heat_flux.cpp: // insure they are valid for these computations +compute_heat_flux.cpp: error->all(FLERR,"Could not find compute heat/flux compute ID"); +compute_heat_flux.cpp: if (strcmp(modify->compute[ike]->style,"ke/atom") != 0) +compute_heat_flux.cpp: error->all(FLERR,"Compute heat/flux compute ID does not compute ke/atom"); +compute_heat_flux.cpp: error->all(FLERR,"Compute heat/flux compute ID does not compute pe/atom"); +compute_heat_flux.cpp: "Compute heat/flux compute ID does not compute stress/atom"); +compute_heat_flux.cpp:/* ---------------------------------------------------------------------- */ +compute_heat_flux.cpp:/* ---------------------------------------------------------------------- */ +compute_heat_flux.cpp: // error checks +compute_heat_flux.cpp: error->all(FLERR,"Could not find compute heat/flux compute ID"); +compute_heat_flux.cpp:/* ---------------------------------------------------------------------- */ +compute_heat_flux.cpp: // invoke 3 computes if they haven't been already +compute_heat_flux.cpp: // heat flux vector = jc[3] + jv[3] +compute_heat_flux.cpp: // jc[3] = convective portion of heat flux = sum_i (ke_i + pe_i) v_i[3] +compute_heat_flux.cpp: // jv[3] = virial portion of heat flux = sum_i (stress_tensor_i . v_i[3]) +compute_heat_flux.cpp: // normalization by volume is not included +compute_heat_flux.cpp: // convert jv from stress*volume to energy units via nktv2p factor +compute_heat_flux.cpp: jv[0] /= nktv2p; +compute_heat_flux.cpp: jv[1] /= nktv2p; +compute_heat_flux.cpp: jv[2] /= nktv2p; +compute_heat_flux.cpp: // sum across all procs +compute_heat_flux.cpp: // 1st 3 terms are total heat flux +compute_heat_flux.cpp: // 2nd 3 terms are just conductive portion +compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_hexorder_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_hexorder_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_hexorder_atom.cpp:------------------------------------------------------------------------- */ +compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_hexorder_atom.cpp:------------------------------------------------------------------------- */ +compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_hexorder_atom.cpp: if (narg < 3 ) error->all(FLERR,"Illegal compute hexorder/atom command"); +compute_hexorder_atom.cpp: // process optional args +compute_hexorder_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute hexorder/atom command"); +compute_hexorder_atom.cpp: error->all(FLERR,"Illegal compute hexorder/atom command"); +compute_hexorder_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute hexorder/atom command"); +compute_hexorder_atom.cpp: error->all(FLERR,"Illegal compute hexorder/atom command"); +compute_hexorder_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute hexorder/atom command"); +compute_hexorder_atom.cpp: error->all(FLERR,"Illegal compute hexorder/atom command"); +compute_hexorder_atom.cpp: } else error->all(FLERR,"Illegal compute hexorder/atom command"); +compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_hexorder_atom.cpp: error->all(FLERR,"Compute hexorder/atom requires a pair style be defined"); +compute_hexorder_atom.cpp: "Compute hexorder/atom cutoff is longer than pairwise cutoff"); +compute_hexorder_atom.cpp: // need an occasional full neighbor list +compute_hexorder_atom.cpp: if (strcmp(modify->compute[i]->style,"hexorder/atom") == 0) count++; +compute_hexorder_atom.cpp: error->warning(FLERR,"More than one compute hexorder/atom"); +compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_hexorder_atom.cpp: // grow order parameter array if necessary +compute_hexorder_atom.cpp: memory->create(qnarray,nmax,ncol,"hexorder/atom:qnarray"); +compute_hexorder_atom.cpp: // invoke full neighbor list (will copy or build if necessary) +compute_hexorder_atom.cpp: // compute order parameter for each atom in group +compute_hexorder_atom.cpp: // use full neighbor list to count atoms less than cutoff +compute_hexorder_atom.cpp: // insure distsq and nearest arrays are long enough +compute_hexorder_atom.cpp: memory->create(distsq,maxneigh,"hexorder/atom:distsq"); +compute_hexorder_atom.cpp: memory->create(nearest,maxneigh,"hexorder/atom:nearest"); +compute_hexorder_atom.cpp: // loop over list of all neighbors within force cutoff +compute_hexorder_atom.cpp: // distsq[] = distance sq to each +compute_hexorder_atom.cpp: // nearest[] = atom indices of neighbors +compute_hexorder_atom.cpp: // if not nnn neighbors, order parameter = 0; +compute_hexorder_atom.cpp: // if nnn > 0, use only nearest nnn neighbors +compute_hexorder_atom.cpp: qn[0] = usum/nnn; +compute_hexorder_atom.cpp: qn[1] = vsum/nnn; +compute_hexorder_atom.cpp:// calculate order parameter using std::complex::pow function +compute_hexorder_atom.cpp: double rinv = 1.0/sqrt(delx*delx+dely*dely); +compute_hexorder_atom.cpp:// calculate order parameter using trig functions +compute_hexorder_atom.cpp:// this is usually slower, but can be used if not available +compute_hexorder_atom.cpp: if(dely > 0.0) ntheta = nnn * MY_PI / 2.0; +compute_hexorder_atom.cpp: else ntheta = nnn * 3.0 * MY_PI / 2.0; +compute_hexorder_atom.cpp: } else ntheta = nnn * atan(dely / delx); +compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_hexorder_atom.cpp:------------------------------------------------------------------------- */ +compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_hexorder_atom.cpp:------------------------------------------------------------------------- */ +compute_improper.cpp:/* ---------------------------------------------------------------------- +compute_improper.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_improper.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_improper.cpp:------------------------------------------------------------------------- */ +compute_improper.cpp:/* ---------------------------------------------------------------------- */ +compute_improper.cpp: // check if improper style hybrid exists +compute_improper.cpp:/* ---------------------------------------------------------------------- */ +compute_improper.cpp:/* ---------------------------------------------------------------------- */ +compute_improper.cpp: // recheck improper style in case it has been changed +compute_improper.cpp:/* ---------------------------------------------------------------------- */ +compute_improper_local.cpp:/* ---------------------------------------------------------------------- +compute_improper_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_improper_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_improper_local.cpp:------------------------------------------------------------------------- */ +compute_improper_local.cpp:/* ---------------------------------------------------------------------- */ +compute_improper_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute improper/local command"); +compute_improper_local.cpp: "Compute improper/local used when impropers are not allowed"); +compute_improper_local.cpp: else error->all(FLERR,"Invalid keyword in compute improper/local command"); +compute_improper_local.cpp:/* ---------------------------------------------------------------------- */ +compute_improper_local.cpp:/* ---------------------------------------------------------------------- */ +compute_improper_local.cpp: error->all(FLERR,"No improper style is defined for compute improper/local"); +compute_improper_local.cpp: // do initial memory allocation so that memory_usage() is correct +compute_improper_local.cpp:/* ---------------------------------------------------------------------- */ +compute_improper_local.cpp: // count local entries and compute improper info +compute_improper_local.cpp:/* ---------------------------------------------------------------------- +compute_improper_local.cpp:------------------------------------------------------------------------- */ +compute_improper_local.cpp: // chi calculation from improper style harmonic +compute_improper_local.cpp: ss1 = 1.0 / (vb1x*vb1x + vb1y*vb1y + vb1z*vb1z); +compute_improper_local.cpp: ss2 = 1.0 / (vb2x*vb2x + vb2y*vb2y + vb2z*vb2z); +compute_improper_local.cpp: ss3 = 1.0 / (vb3x*vb3x + vb3y*vb3y + vb3z*vb3z); +compute_improper_local.cpp: s1 = 1.0 / s1; +compute_improper_local.cpp: s2 = 1.0 / s2; +compute_improper_local.cpp: cbuf[n] = 180.0*acos(c)/MY_PI; +compute_improper_local.cpp:/* ---------------------------------------------------------------------- */ +compute_improper_local.cpp: // grow vector_local or array_local +compute_improper_local.cpp: memory->create(vlocal,nmax,"improper/local:vector_local"); +compute_improper_local.cpp: memory->create(alocal,nmax,nvalues,"improper/local:array_local"); +compute_improper_local.cpp:/* ---------------------------------------------------------------------- +compute_improper_local.cpp:------------------------------------------------------------------------- */ +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- +compute_inertia_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_inertia_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_inertia_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute inertia/chunk command"); +compute_inertia_chunk.cpp: // ID of compute chunk/atom +compute_inertia_chunk.cpp: // chunk-based data +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_inertia_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " +compute_inertia_chunk.cpp: "compute inertia/chunk"); +compute_inertia_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_inertia_chunk.cpp: error->all(FLERR,"Compute inertia/chunk does not use chunk/atom compute"); +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_inertia_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_inertia_chunk.cpp: // extract ichunk index vector from compute +compute_inertia_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_inertia_chunk.cpp: // zero local per-chunk values +compute_inertia_chunk.cpp: // compute COM for each chunk +compute_inertia_chunk.cpp: comall[i][0] /= masstotal[i]; +compute_inertia_chunk.cpp: comall[i][1] /= masstotal[i]; +compute_inertia_chunk.cpp: comall[i][2] /= masstotal[i]; +compute_inertia_chunk.cpp: // compute inertia tensor for each chunk +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- +compute_inertia_chunk.cpp: lock methods: called by fix ave/time +compute_inertia_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_inertia_chunk.cpp: by passing lock info along to compute chunk/atom +compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- +compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- +compute_inertia_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- +compute_inertia_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- +compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- +compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- +compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ +compute_inertia_chunk.cpp: memory->create(massproc,maxchunk,"inertia/chunk:massproc"); +compute_inertia_chunk.cpp: memory->create(masstotal,maxchunk,"inertia/chunk:masstotal"); +compute_inertia_chunk.cpp: memory->create(com,maxchunk,3,"inertia/chunk:com"); +compute_inertia_chunk.cpp: memory->create(comall,maxchunk,3,"inertia/chunk:comall"); +compute_inertia_chunk.cpp: memory->create(inertia,maxchunk,6,"inertia/chunk:inertia"); +compute_inertia_chunk.cpp: memory->create(inertiaall,maxchunk,6,"inertia/chunk:inertiaall"); +compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- +compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ +compute_ke_atom.cpp:/* ---------------------------------------------------------------------- +compute_ke_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_ke_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_ke_atom.cpp:------------------------------------------------------------------------- */ +compute_ke_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_ke_atom.cpp: if (narg != 3) error->all(FLERR,"Illegal compute ke/atom command"); +compute_ke_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_ke_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_ke_atom.cpp: if (strcmp(modify->compute[i]->style,"ke/atom") == 0) count++; +compute_ke_atom.cpp: error->warning(FLERR,"More than one compute ke/atom"); +compute_ke_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_ke_atom.cpp: // grow ke array if necessary +compute_ke_atom.cpp: memory->create(ke,nmax,"ke/atom:ke"); +compute_ke_atom.cpp: // compute kinetic energy for each atom in group +compute_ke_atom.cpp:/* ---------------------------------------------------------------------- +compute_ke_atom.cpp:------------------------------------------------------------------------- */ +compute_ke.cpp:/* ---------------------------------------------------------------------- +compute_ke.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_ke.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_ke.cpp:------------------------------------------------------------------------- */ +compute_ke.cpp:/* ---------------------------------------------------------------------- */ +compute_ke.cpp:/* ---------------------------------------------------------------------- */ +compute_ke.cpp:/* ---------------------------------------------------------------------- */ +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- +compute_msd_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_msd_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_msd_chunk.cpp:------------------------------------------------------------------------- */ +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_msd_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute msd/chunk command"); +compute_msd_chunk.cpp: // ID of compute chunk/atom +compute_msd_chunk.cpp: // create a new fix STORE style for reference positions +compute_msd_chunk.cpp: // id = compute-ID + COMPUTE_STORE, fix group = compute group +compute_msd_chunk.cpp: // do not know size of array at this point, just allocate 1x3 array +compute_msd_chunk.cpp: // fix creation must be done now so that a restart run can +compute_msd_chunk.cpp: // potentially re-populate the fix array (and change it to correct size) +compute_msd_chunk.cpp: // otherwise size reset and init will be done in setup() +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_msd_chunk.cpp: // check nfix in case all fixes have already been deleted +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_msd_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for compute msd/chunk"); +compute_msd_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_msd_chunk.cpp: error->all(FLERR,"Compute msd/chunk does not use chunk/atom compute"); +compute_msd_chunk.cpp: // set fix which stores reference atom coords +compute_msd_chunk.cpp: // if firstflag, will be created in setup() +compute_msd_chunk.cpp: if (ifix < 0) error->all(FLERR,"Could not find compute msd/chunk fix ID"); +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- +compute_msd_chunk.cpp:------------------------------------------------------------------------- */ +compute_msd_chunk.cpp: // if fix->astore is already correct size, restart file set it up +compute_msd_chunk.cpp: // otherwise reset its size now and initialize to current COM +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_msd_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_msd_chunk.cpp: // extract ichunk index vector from compute +compute_msd_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_msd_chunk.cpp: // first time call, allocate per-chunk arrays +compute_msd_chunk.cpp: // thereafter, require nchunk remain the same +compute_msd_chunk.cpp: error->all(FLERR,"Compute msd/chunk nchunk is not static"); +compute_msd_chunk.cpp: // zero local per-chunk values +compute_msd_chunk.cpp: // compute current COM for each chunk +compute_msd_chunk.cpp: comall[i][0] /= masstotal[i]; +compute_msd_chunk.cpp: comall[i][1] /= masstotal[i]; +compute_msd_chunk.cpp: comall[i][2] /= masstotal[i]; +compute_msd_chunk.cpp: // MSD is difference between current and initial COM +compute_msd_chunk.cpp: // cominit is initilialized by setup() when firstflag is set +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- +compute_msd_chunk.cpp: lock methods: called by fix ave/time +compute_msd_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_msd_chunk.cpp: by passing lock info along to compute chunk/atom +compute_msd_chunk.cpp:------------------------------------------------------------------------- */ +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- +compute_msd_chunk.cpp:------------------------------------------------------------------------- */ +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- +compute_msd_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_msd_chunk.cpp:------------------------------------------------------------------------- */ +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- +compute_msd_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_msd_chunk.cpp:------------------------------------------------------------------------- */ +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- +compute_msd_chunk.cpp:------------------------------------------------------------------------- */ +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- +compute_msd_chunk.cpp:------------------------------------------------------------------------- */ +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- +compute_msd_chunk.cpp:------------------------------------------------------------------------- */ +compute_msd_chunk.cpp: memory->create(massproc,nchunk,"msd/chunk:massproc"); +compute_msd_chunk.cpp: memory->create(masstotal,nchunk,"msd/chunk:masstotal"); +compute_msd_chunk.cpp: memory->create(com,nchunk,3,"msd/chunk:com"); +compute_msd_chunk.cpp: memory->create(comall,nchunk,3,"msd/chunk:comall"); +compute_msd_chunk.cpp: memory->create(msd,nchunk,4,"msd/chunk:msd"); +compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- +compute_msd_chunk.cpp:------------------------------------------------------------------------- */ +compute_msd.cpp:/* ---------------------------------------------------------------------- +compute_msd.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_msd.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_msd.cpp:------------------------------------------------------------------------- */ +compute_msd.cpp:/* ---------------------------------------------------------------------- */ +compute_msd.cpp: // optional args +compute_msd.cpp: // create a new fix STORE style for reference positions +compute_msd.cpp: // id = compute-ID + COMPUTE_STORE, fix group = compute group +compute_msd.cpp: // calculate xu,yu,zu for fix store array +compute_msd.cpp: // skip if reset from restart file +compute_msd.cpp: // adjust for COM if requested +compute_msd.cpp: // initialize counter for average positions if requested +compute_msd.cpp: // displacement vector +compute_msd.cpp:/* ---------------------------------------------------------------------- */ +compute_msd.cpp: // check nfix in case all fixes have already been deleted +compute_msd.cpp:/* ---------------------------------------------------------------------- */ +compute_msd.cpp: // set fix which stores reference atom coords +compute_msd.cpp: // nmsd = # of atoms in group +compute_msd.cpp:/* ---------------------------------------------------------------------- */ +compute_msd.cpp: // cm = current center of mass +compute_msd.cpp: // dx,dy,dz = displacement of atom from reference position +compute_msd.cpp: // reference unwrapped position is stored by fix +compute_msd.cpp: // relative to center of mass if comflag is set +compute_msd.cpp: // for triclinic, need to unwrap current atom coord via h matrix +compute_msd.cpp: // update number of averages if requested +compute_msd.cpp: navfac = 1.0/(naverage+1); +compute_msd.cpp: // use running average position for reference if requested +compute_msd.cpp: // use running average position for reference if requested +compute_msd.cpp: vector[0] /= nmsd; +compute_msd.cpp: vector[1] /= nmsd; +compute_msd.cpp: vector[2] /= nmsd; +compute_msd.cpp: vector[3] /= nmsd; +compute_msd.cpp:/* ---------------------------------------------------------------------- +compute_msd.cpp:------------------------------------------------------------------------- */ +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- +compute_omega_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_omega_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_omega_chunk.cpp:------------------------------------------------------------------------- */ +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_omega_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute omega/chunk command"); +compute_omega_chunk.cpp: // ID of compute chunk/atom +compute_omega_chunk.cpp: // chunk-based data +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_omega_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " +compute_omega_chunk.cpp: "compute omega/chunk"); +compute_omega_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_omega_chunk.cpp: error->all(FLERR,"Compute omega/chunk does not use chunk/atom compute"); +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_omega_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_omega_chunk.cpp: // extract ichunk index vector from compute +compute_omega_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_omega_chunk.cpp: // zero local per-chunk values +compute_omega_chunk.cpp: // compute COM for each chunk +compute_omega_chunk.cpp: comall[i][0] /= masstotal[i]; +compute_omega_chunk.cpp: comall[i][1] /= masstotal[i]; +compute_omega_chunk.cpp: comall[i][2] /= masstotal[i]; +compute_omega_chunk.cpp: // compute inertia tensor for each chunk +compute_omega_chunk.cpp: // compute angmom for each chunk +compute_omega_chunk.cpp: // compute omega for each chunk +compute_omega_chunk.cpp: // determinant = triple product of rows of inertia matrix +compute_omega_chunk.cpp: // non-singular I matrix +compute_omega_chunk.cpp: // use L = Iw, inverting I to solve for w +compute_omega_chunk.cpp: invdeterminant = 1.0/determinant; +compute_omega_chunk.cpp: // handle each (nearly) singular I matrix +compute_omega_chunk.cpp: // due to 2-atom chunk or linear molecule +compute_omega_chunk.cpp: // use jacobi() and angmom_to_omega() to calculate valid omega +compute_omega_chunk.cpp: "Insufficient Jacobi rotations for omega/chunk"); +compute_omega_chunk.cpp: // enforce 3 evectors as a right-handed coordinate system +compute_omega_chunk.cpp: // flip 3rd vector if needed +compute_omega_chunk.cpp: // if any principal moment < scaled EPSILON, set to 0.0 +compute_omega_chunk.cpp: // calculate omega using diagonalized inertia matrix +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- +compute_omega_chunk.cpp: lock methods: called by fix ave/time +compute_omega_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_omega_chunk.cpp: by passing lock info along to compute chunk/atom +compute_omega_chunk.cpp:------------------------------------------------------------------------- */ +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- +compute_omega_chunk.cpp:------------------------------------------------------------------------- */ +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- +compute_omega_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_omega_chunk.cpp:------------------------------------------------------------------------- */ +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- +compute_omega_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_omega_chunk.cpp:------------------------------------------------------------------------- */ +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- +compute_omega_chunk.cpp:------------------------------------------------------------------------- */ +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- +compute_omega_chunk.cpp:------------------------------------------------------------------------- */ +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- +compute_omega_chunk.cpp:------------------------------------------------------------------------- */ +compute_omega_chunk.cpp: memory->create(massproc,maxchunk,"omega/chunk:massproc"); +compute_omega_chunk.cpp: memory->create(masstotal,maxchunk,"omega/chunk:masstotal"); +compute_omega_chunk.cpp: memory->create(com,maxchunk,3,"omega/chunk:com"); +compute_omega_chunk.cpp: memory->create(comall,maxchunk,3,"omega/chunk:comall"); +compute_omega_chunk.cpp: memory->create(inertia,maxchunk,6,"omega/chunk:inertia"); +compute_omega_chunk.cpp: memory->create(inertiaall,maxchunk,6,"omega/chunk:inertiaall"); +compute_omega_chunk.cpp: memory->create(angmom,maxchunk,3,"omega/chunk:angmom"); +compute_omega_chunk.cpp: memory->create(angmomall,maxchunk,3,"omega/chunk:angmomall"); +compute_omega_chunk.cpp: memory->create(omega,maxchunk,3,"omega/chunk:omega"); +compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- +compute_omega_chunk.cpp:------------------------------------------------------------------------- */ +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_orientorder_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_orientorder_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_orientorder_atom.cpp: if (narg < 3 ) error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: // set default values for optional args +compute_orientorder_atom.cpp: // specify which orders to request +compute_orientorder_atom.cpp: memory->create(qlist,nqlist,"orientorder/atom:qlist"); +compute_orientorder_atom.cpp: // process optional args +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: memory->create(qlist,nqlist,"orientorder/atom:qlist"); +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp: } else error->all(FLERR,"Illegal compute orientorder/atom command"); +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_orientorder_atom.cpp: error->all(FLERR,"Compute orientorder/atom requires a " +compute_orientorder_atom.cpp: error->all(FLERR,"Compute orientorder/atom cutoff is " +compute_orientorder_atom.cpp: memory->create(qnm_r,qmax,2*qmax+1,"orientorder/atom:qnm_r"); +compute_orientorder_atom.cpp: memory->create(qnm_i,qmax,2*qmax+1,"orientorder/atom:qnm_i"); +compute_orientorder_atom.cpp: // need an occasional full neighbor list +compute_orientorder_atom.cpp: if (strcmp(modify->compute[i]->style,"orientorder/atom") == 0) count++; +compute_orientorder_atom.cpp: error->warning(FLERR,"More than one compute orientorder/atom"); +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_orientorder_atom.cpp: // grow order parameter array if necessary +compute_orientorder_atom.cpp: memory->create(qnarray,nmax,ncol,"orientorder/atom:qnarray"); +compute_orientorder_atom.cpp: // invoke full neighbor list (will copy or build if necessary) +compute_orientorder_atom.cpp: // compute order parameter for each atom in group +compute_orientorder_atom.cpp: // use full neighbor list to count atoms less than cutoff +compute_orientorder_atom.cpp: // insure distsq and nearest arrays are long enough +compute_orientorder_atom.cpp: memory->create(distsq,maxneigh,"orientorder/atom:distsq"); +compute_orientorder_atom.cpp: memory->create(rlist,maxneigh,3,"orientorder/atom:rlist"); +compute_orientorder_atom.cpp: memory->create(nearest,maxneigh,"orientorder/atom:nearest"); +compute_orientorder_atom.cpp: // loop over list of all neighbors within force cutoff +compute_orientorder_atom.cpp: // distsq[] = distance sq to each +compute_orientorder_atom.cpp: // rlist[] = distance vector to each +compute_orientorder_atom.cpp: // nearest[] = atom indices of neighbors +compute_orientorder_atom.cpp: // if not nnn neighbors, order parameter = 0; +compute_orientorder_atom.cpp: // if nnn > 0, use only nearest nnn neighbors +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ +compute_orientorder_atom.cpp:// Use no-op do while to create single statement +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ +compute_orientorder_atom.cpp: double costheta = r[2] / rmag; +compute_orientorder_atom.cpp: double rxymaginv = 1.0/rxymag; +compute_orientorder_atom.cpp: double fac = sqrt(MY_4PI) / ncount; +compute_orientorder_atom.cpp: // printf("Ylm^2 = %d %d %g\n",n,m, +compute_orientorder_atom.cpp: // qnm_r[iw][m]*qnm_r[iw][m] + qnm_i[iw][m]*qnm_i[iw][m]); +compute_orientorder_atom.cpp: qn[iw] = fac * sqrt(qm_sum / (2*n+1)); +compute_orientorder_atom.cpp: if (qlcompflag && iqlcomp == iw) normfac = 1.0/sqrt(qm_sum); +compute_orientorder_atom.cpp: // output of the complex vector +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ +compute_orientorder_atom.cpp: prefactor = sqrt(static_cast(2*l+1)/(MY_4PI*prefactor)) +compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- +compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ +compute_orientorder_atom.cpp: - static_cast(i+m-1)*pm2) / static_cast(i-m); +compute_pair.cpp:/* ---------------------------------------------------------------------- +compute_pair.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_pair.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_pair.cpp:------------------------------------------------------------------------- */ +compute_pair.cpp:/* ---------------------------------------------------------------------- */ +compute_pair.cpp: // check if pair style with and without suffix exists +compute_pair.cpp: strcat(pstyle,"/"); +compute_pair.cpp:/* ---------------------------------------------------------------------- */ +compute_pair.cpp:/* ---------------------------------------------------------------------- */ +compute_pair.cpp: // recheck for pair style in case it has been deleted +compute_pair.cpp:/* ---------------------------------------------------------------------- */ +compute_pair.cpp:/* ---------------------------------------------------------------------- */ +compute_pair_local.cpp:/* ---------------------------------------------------------------------- +compute_pair_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_pair_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_pair_local.cpp:------------------------------------------------------------------------- */ +compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ +compute_pair_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute pair/local command"); +compute_pair_local.cpp: "Invalid keyword in compute pair/local command"); +compute_pair_local.cpp: // optional args +compute_pair_local.cpp: error->all(FLERR,"Illegal compute pair/local command"); +compute_pair_local.cpp: else error->all(FLERR,"Illegal compute pair/local command"); +compute_pair_local.cpp: } else error->all(FLERR,"Illegal compute pair/local command"); +compute_pair_local.cpp: // error check +compute_pair_local.cpp: error->all(FLERR,"Compute pair/local requires atom attribute radius"); +compute_pair_local.cpp: // set singleflag if need to call pair->single() +compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ +compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ +compute_pair_local.cpp: error->all(FLERR,"No pair style is defined for compute pair/local"); +compute_pair_local.cpp: error->all(FLERR,"Pair style does not support compute pair/local"); +compute_pair_local.cpp: " requested by compute pair/local"); +compute_pair_local.cpp: // need an occasional half neighbor list +compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ +compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ +compute_pair_local.cpp: // count local entries and compute pair info +compute_pair_local.cpp:/* ---------------------------------------------------------------------- +compute_pair_local.cpp:------------------------------------------------------------------------- */ +compute_pair_local.cpp: // invoke half neighbor list (will copy or build if necessary) +compute_pair_local.cpp: // loop over neighbors of my atoms +compute_pair_local.cpp: // skip if I or J are not in group +compute_pair_local.cpp: // for newton = 0 and J = ghost atom, +compute_pair_local.cpp: // need to insure I,J pair is only output by one proc +compute_pair_local.cpp: // use same itag,jtag logic as in Neighbor::neigh_half_nsq() +compute_pair_local.cpp: // for flag = 0, just count pair interactions within force cutoff +compute_pair_local.cpp: // for flag = 1, calculate requested output fields +compute_pair_local.cpp: // itag = jtag is possible for long cutoffs that include images of self +compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ +compute_pair_local.cpp: // grow vector_local or array_local +compute_pair_local.cpp: memory->create(vlocal,nmax,"pair/local:vector_local"); +compute_pair_local.cpp: memory->create(alocal,nmax,nvalues,"pair/local:array_local"); +compute_pair_local.cpp:/* ---------------------------------------------------------------------- +compute_pair_local.cpp:------------------------------------------------------------------------- */ +compute_pe_atom.cpp:/* ---------------------------------------------------------------------- +compute_pe_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_pe_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_pe_atom.cpp:------------------------------------------------------------------------- */ +compute_pe_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_pe_atom.cpp: if (narg < 3) error->all(FLERR,"Illegal compute pe/atom command"); +compute_pe_atom.cpp: else error->all(FLERR,"Illegal compute pe/atom command"); +compute_pe_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_pe_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_pe_atom.cpp: // grow local energy array if necessary +compute_pe_atom.cpp: // needs to be atom->nmax in length +compute_pe_atom.cpp: memory->create(energy,nmax,"pe/atom:energy"); +compute_pe_atom.cpp: // npair includes ghosts if either newton flag is set +compute_pe_atom.cpp: // b/c some bonds/dihedrals call pair::ev_tally with pairwise info +compute_pe_atom.cpp: // nbond includes ghosts if newton_bond is set +compute_pe_atom.cpp: // ntotal includes ghosts if either newton flag is set +compute_pe_atom.cpp: // KSpace includes ghosts if tip4pflag is set +compute_pe_atom.cpp: // clear local energy array +compute_pe_atom.cpp: // add in per-atom contributions from each force +compute_pe_atom.cpp: // add in per-atom contributions from relevant fixes +compute_pe_atom.cpp: // always only for owned atoms, not ghost +compute_pe_atom.cpp: // communicate ghost energy between neighbor procs +compute_pe_atom.cpp: // zero energy of atoms not in group +compute_pe_atom.cpp: // only do this after comm since ghost contributions must be included +compute_pe_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_pe_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_pe_atom.cpp:/* ---------------------------------------------------------------------- +compute_pe_atom.cpp:------------------------------------------------------------------------- */ +compute_pe.cpp:/* ---------------------------------------------------------------------- +compute_pe.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_pe.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_pe.cpp:------------------------------------------------------------------------- */ +compute_pe.cpp:/* ---------------------------------------------------------------------- */ +compute_pe.cpp:/* ---------------------------------------------------------------------- */ +compute_pe.cpp: scalar += force->pair->etail / volume; +compute_pressure.cpp:/* ---------------------------------------------------------------------- +compute_pressure.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_pressure.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_pressure.cpp:------------------------------------------------------------------------- */ +compute_pressure.cpp:/* ---------------------------------------------------------------------- */ +compute_pressure.cpp: // store temperature ID used by pressure computation +compute_pressure.cpp: // insure it is valid for temperature computation +compute_pressure.cpp: // process optional args +compute_pressure.cpp: // error check +compute_pressure.cpp:/* ---------------------------------------------------------------------- */ +compute_pressure.cpp:/* ---------------------------------------------------------------------- */ +compute_pressure.cpp: // set temperature compute, must be done in init() +compute_pressure.cpp: // fixes could have changed or compute_modify could have changed it +compute_pressure.cpp: // detect contributions to virial +compute_pressure.cpp: // vptr points to all virial[6] contributions +compute_pressure.cpp: // flag Kspace contribution separately, since not summed across procs +compute_pressure.cpp:/* ---------------------------------------------------------------------- +compute_pressure.cpp:------------------------------------------------------------------------- */ +compute_pressure.cpp: // invoke temperature if it hasn't been already +compute_pressure.cpp: inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd); +compute_pressure.cpp: virial[0] + virial[1] + virial[2]) / 3.0 * inv_volume * nktv2p; +compute_pressure.cpp: scalar = (virial[0] + virial[1] + virial[2]) / 3.0 * inv_volume * nktv2p; +compute_pressure.cpp: inv_volume = 1.0 / (domain->xprd * domain->yprd); +compute_pressure.cpp: virial[0] + virial[1]) / 2.0 * inv_volume * nktv2p; +compute_pressure.cpp: scalar = (virial[0] + virial[1]) / 2.0 * inv_volume * nktv2p; +compute_pressure.cpp:/* ---------------------------------------------------------------------- +compute_pressure.cpp:------------------------------------------------------------------------- */ +compute_pressure.cpp: error->all(FLERR,"Must use 'kspace_modify pressure/scalar no' for " +compute_pressure.cpp: // invoke temperature if it hasn't been already +compute_pressure.cpp: inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd); +compute_pressure.cpp: inv_volume = 1.0 / (domain->xprd * domain->yprd); +compute_pressure.cpp:/* ---------------------------------------------------------------------- */ +compute_pressure.cpp: // sum contributions to virial from forces and fixes +compute_pressure.cpp: // sum virial across procs +compute_pressure.cpp: // KSpace virial contribution is already summed across procs +compute_pressure.cpp: // LJ long-range tail correction, only if pair contributions are included +compute_pressure.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- +compute_property_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_property_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_property_atom.cpp:------------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp: if (narg < 4) error->all(FLERR,"Illegal compute property/atom command"); +compute_property_atom.cpp: // parse input values +compute_property_atom.cpp: // customize a new keyword by adding to if statement +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_ellipsoid) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_ellipsoid) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_ellipsoid) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom integer " +compute_property_atom.cpp: error->all(FLERR,"Compute property/atom floating point " +compute_property_atom.cpp: // check if atom style recognizes keyword +compute_property_atom.cpp: error->all(FLERR,"Invalid keyword in compute property/atom command"); +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp: // grow vector or array if necessary +compute_property_atom.cpp: memory->create(vector_atom,nmax,"property/atom:vector"); +compute_property_atom.cpp: memory->create(array_atom,nmax,nvalues,"property/atom:array"); +compute_property_atom.cpp: // fill vector or array with per-atom values +compute_property_atom.cpp:/* ---------------------------------------------------------------------- +compute_property_atom.cpp:------------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- +compute_property_atom.cpp: one method for every keyword compute property/atom can output +compute_property_atom.cpp:------------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp: double invxprd = 1.0/domain->xprd; +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp: double invyprd = 1.0/domain->yprd; +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp: double invzprd = 1.0/domain->zprd; +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- +compute_property_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_property_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_property_chunk.cpp:------------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_property_chunk.cpp: if (narg < 5) error->all(FLERR,"Illegal compute property/chunk command"); +compute_property_chunk.cpp: // ID of compute chunk/atom +compute_property_chunk.cpp: // parse values +compute_property_chunk.cpp: error->all(FLERR,"Compute chunk/atom stores no IDs for " +compute_property_chunk.cpp: "compute property/chunk"); +compute_property_chunk.cpp: error->all(FLERR,"Compute chunk/atom stores no coord1 for " +compute_property_chunk.cpp: "compute property/chunk"); +compute_property_chunk.cpp: error->all(FLERR,"Compute chunk/atom stores no coord2 for " +compute_property_chunk.cpp: "compute property/chunk"); +compute_property_chunk.cpp: error->all(FLERR,"Compute chunk/atom stores no coord3 for " +compute_property_chunk.cpp: "compute property/chunk"); +compute_property_chunk.cpp: "Invalid keyword in compute property/chunk command"); +compute_property_chunk.cpp: // initialization +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_property_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " +compute_property_chunk.cpp: "compute property/chunk"); +compute_property_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_property_chunk.cpp: error->all(FLERR,"Compute property/chunk does not use chunk/atom compute"); +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_property_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_property_chunk.cpp: // if need count, extract ichunk index vector from compute +compute_property_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_property_chunk.cpp: // fill vector +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_property_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_property_chunk.cpp: // if need count, extract ichunk index vector from compute +compute_property_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_property_chunk.cpp: // fill array +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- +compute_property_chunk.cpp: lock methods: called by fix ave/time +compute_property_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_property_chunk.cpp: by passing lock info along to compute chunk/atom +compute_property_chunk.cpp:------------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- +compute_property_chunk.cpp:------------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- +compute_property_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_property_chunk.cpp:------------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- +compute_property_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_property_chunk.cpp:------------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- +compute_property_chunk.cpp:------------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- +compute_property_chunk.cpp:------------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- +compute_property_chunk.cpp:------------------------------------------------------------------------- */ +compute_property_chunk.cpp: if (nvalues == 1) memory->create(vector,maxchunk,"property/chunk:vector"); +compute_property_chunk.cpp: else memory->create(array,maxchunk,nvalues,"property/chunk:array"); +compute_property_chunk.cpp: memory->create(count_one,maxchunk,"property/chunk:count_one"); +compute_property_chunk.cpp: memory->create(count_all,maxchunk,"property/chunk:count_all"); +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- +compute_property_chunk.cpp:------------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- +compute_property_chunk.cpp: one method for every keyword compute property/chunk can output +compute_property_chunk.cpp:------------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- +compute_property_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_property_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_property_local.cpp:------------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute property/local command"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: "Compute property/local cannot use these inputs together"); +compute_property_local.cpp: // optional args +compute_property_local.cpp: error->all(FLERR,"Illegal compute property/local command"); +compute_property_local.cpp: else error->all(FLERR,"Illegal compute property/local command"); +compute_property_local.cpp: } else error->all(FLERR,"Illegal compute property/local command"); +compute_property_local.cpp: // error check +compute_property_local.cpp: error->all(FLERR,"Compute property/local does not (yet) work " +compute_property_local.cpp: "Compute property/local for property that isn't allocated"); +compute_property_local.cpp: "Compute property/local for property that isn't allocated"); +compute_property_local.cpp: "Compute property/local for property that isn't allocated"); +compute_property_local.cpp: "Compute property/local for property that isn't allocated"); +compute_property_local.cpp: error->all(FLERR,"Compute property/local requires atom attribute radius"); +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp: error->all(FLERR,"No pair style is defined for compute property/local"); +compute_property_local.cpp: error->all(FLERR,"Pair style does not support compute property/local"); +compute_property_local.cpp: // for NEIGH/PAIR need an occasional half neighbor list +compute_property_local.cpp: // do initial memory allocation so that memory_usage() is correct +compute_property_local.cpp: // cannot be done yet for NEIGH/PAIR, since neigh list does not exist +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp: // count local entries and generate list of indices +compute_property_local.cpp: // fill vector or array with local values +compute_property_local.cpp:/* ---------------------------------------------------------------------- +compute_property_local.cpp:------------------------------------------------------------------------- */ +compute_property_local.cpp: // invoke half neighbor list (will copy or build if necessary) +compute_property_local.cpp: // loop over neighbors of my atoms +compute_property_local.cpp: // skip if I or J are not in group +compute_property_local.cpp: // for newton = 0 and J = ghost atom, +compute_property_local.cpp: // need to insure I,J pair is only output by one proc +compute_property_local.cpp: // use same itag,jtag logic as in Neighbor::neigh_half_nsq() +compute_property_local.cpp: // itag = jtag is possible for long cutoffs that include images of self +compute_property_local.cpp:/* ---------------------------------------------------------------------- +compute_property_local.cpp:------------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- +compute_property_local.cpp:------------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- +compute_property_local.cpp:------------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- +compute_property_local.cpp:------------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp: // grow vector_local or array_local, also indices +compute_property_local.cpp: memory->create(vlocal,nmax,"property/local:vector_local"); +compute_property_local.cpp: memory->create(alocal,nmax,nvalues,"property/local:array_local"); +compute_property_local.cpp: memory->create(indices,nmax,2,"property/local:indices"); +compute_property_local.cpp:/* ---------------------------------------------------------------------- +compute_property_local.cpp:------------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- +compute_property_local.cpp: one method for every keyword compute property/local can output +compute_property_local.cpp:------------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_property_local.cpp:/* ---------------------------------------------------------------------- */ +compute_rdf.cpp:/* ---------------------------------------------------------------------- +compute_rdf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_rdf.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_rdf.cpp:------------------------------------------------------------------------- */ +compute_rdf.cpp:/* ---------------------------------------------------------------------- +compute_rdf.cpp:------------------------------------------------------------------------- */ +compute_rdf.cpp:/* ---------------------------------------------------------------------- */ +compute_rdf.cpp: // optional args +compute_rdf.cpp: // nargpair = # of pairwise args, starting at iarg = 4 +compute_rdf.cpp: // pairwise args +compute_rdf.cpp: else npairs = nargpair/2; +compute_rdf.cpp:/* ---------------------------------------------------------------------- */ +compute_rdf.cpp:/* ---------------------------------------------------------------------- */ +compute_rdf.cpp: double cutghost; // as computed by Neighbor and Comm +compute_rdf.cpp: delr = cutoff_user / nbin; +compute_rdf.cpp: } else delr = force->pair->cutforce / nbin; +compute_rdf.cpp: delrinv = 1.0/delr; +compute_rdf.cpp: // set 1st column of output array to bin coords +compute_rdf.cpp: // count atoms of each type that are also in group +compute_rdf.cpp: // icount = # of I atoms participating in I,J pairs for each histogram +compute_rdf.cpp: // jcount = # of J atoms participating in I,J pairs for each histogram +compute_rdf.cpp: // duplicates = # of atoms in both groups I and J for each histogram +compute_rdf.cpp: // need an occasional half neighbor list +compute_rdf.cpp: // if user specified, request a cutoff = cutoff_user + skin +compute_rdf.cpp: // skin is included b/c Neighbor uses this value similar +compute_rdf.cpp: // to its cutneighmax = force cutoff + skin +compute_rdf.cpp: // also, this NeighList may be used by this compute for multiple steps +compute_rdf.cpp: // (until next reneighbor), so it needs to contain atoms further +compute_rdf.cpp: // than cutoff_user apart, just like a normal neighbor list does +compute_rdf.cpp:/* ---------------------------------------------------------------------- */ +compute_rdf.cpp:/* ---------------------------------------------------------------------- */ +compute_rdf.cpp: // invoke half neighbor list (will copy or build if necessary) +compute_rdf.cpp: // zero the histogram counts +compute_rdf.cpp: // tally the RDF +compute_rdf.cpp: // both atom i and j must be in fix group +compute_rdf.cpp: // itype,jtype must have been specified by user +compute_rdf.cpp: // consider I,J as one interaction even if neighbor pair is stored on 2 procs +compute_rdf.cpp: // tally I,J pair each time I is central atom, and each time J is central +compute_rdf.cpp: // if both weighting factors are 0, skip this pair +compute_rdf.cpp: // could be 0 and still be in neigh list for long-range Coulombics +compute_rdf.cpp: // want consistency with non-charged pairs which wouldn't be in list +compute_rdf.cpp: // sum histograms across procs +compute_rdf.cpp: // convert counts to g(r) and coord(r) and copy into output array +compute_rdf.cpp: // vfrac = fraction of volume in shell m +compute_rdf.cpp: // npairs = number of pairs, corrected for duplicates +compute_rdf.cpp: // duplicates = pairs in which both atoms are the same +compute_rdf.cpp: constant = 4.0*MY_PI / (3.0*domain->xprd*domain->yprd*domain->zprd); +compute_rdf.cpp: - static_cast(duplicates[m])/icount[m] : 0.0; +compute_rdf.cpp: gr = histall[m][ibin] / (vfrac * normfac * icount[m]); +compute_rdf.cpp: constant = MY_PI / (domain->xprd*domain->yprd); +compute_rdf.cpp: - static_cast(duplicates[m])/icount[m] : 0.0; +compute_rdf.cpp: gr = histall[m][ibin] / (vfrac * normfac * icount[m]); +compute_reduce.cpp:/* ---------------------------------------------------------------------- +compute_reduce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_reduce.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_reduce.cpp:------------------------------------------------------------------------- */ +compute_reduce.cpp:enum{SUM,SUMSQ,MINN,MAXX,AVE,AVESQ}; // also in ReduceRegion +compute_reduce.cpp:/* ---------------------------------------------------------------------- */ +compute_reduce.cpp: } else if (strcmp(style,"reduce/region") == 0) { +compute_reduce.cpp: if (narg < 6) error->all(FLERR,"Illegal compute reduce/region command"); +compute_reduce.cpp: error->all(FLERR,"Region ID for compute reduce/region does not exist"); +compute_reduce.cpp: // expand args if any have wildcard character "*" +compute_reduce.cpp: // parse values until one isn't recognized +compute_reduce.cpp: // optional args +compute_reduce.cpp: // delete replace if not set +compute_reduce.cpp: // if wildcard expansion occurred, free earg memory from expand_args() +compute_reduce.cpp: // setup and error check +compute_reduce.cpp: // this compute produces either a scalar or vector +compute_reduce.cpp:/* ---------------------------------------------------------------------- */ +compute_reduce.cpp:/* ---------------------------------------------------------------------- */ +compute_reduce.cpp: // set indices of all computes,fixes,variables +compute_reduce.cpp: // set index and check validity of region +compute_reduce.cpp: error->all(FLERR,"Region ID for compute reduce/region does not exist"); +compute_reduce.cpp:/* ---------------------------------------------------------------------- */ +compute_reduce.cpp: if (n) scalar /= n; +compute_reduce.cpp:/* ---------------------------------------------------------------------- */ +compute_reduce.cpp: if (n) vector[m] /= n; +compute_reduce.cpp:/* ---------------------------------------------------------------------- +compute_reduce.cpp: sum/min/max/ave all values in vector +compute_reduce.cpp:------------------------------------------------------------------------- */ +compute_reduce.cpp: // invoke the appropriate attribute,compute,fix,variable +compute_reduce.cpp: // for flag = -1, compute scalar quantity by scanning over atom properties +compute_reduce.cpp: // only include atoms in group for atom properties and per-atom quantities +compute_reduce.cpp: // invoke compute if not previously invoked +compute_reduce.cpp: // access fix fields, check if fix frequency is a match +compute_reduce.cpp: // evaluate atom-style variable +compute_reduce.cpp:/* ---------------------------------------------------------------------- */ +compute_reduce.cpp:/* ---------------------------------------------------------------------- +compute_reduce.cpp: for MIN/MAX, also update index with winner +compute_reduce.cpp:------------------------------------------------------------------------- */ +compute_reduce.cpp:/* ---------------------------------------------------------------------- +compute_reduce.cpp:------------------------------------------------------------------------- */ +compute_reduce_region.cpp:/* ---------------------------------------------------------------------- +compute_reduce_region.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_reduce_region.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_reduce_region.cpp:------------------------------------------------------------------------- */ +compute_reduce_region.cpp:enum{SUM,SUMSQ,MINN,MAXX,AVE,AVESQ}; // also in ComputeReduce +compute_reduce_region.cpp:/* ---------------------------------------------------------------------- */ +compute_reduce_region.cpp:/* ---------------------------------------------------------------------- +compute_reduce_region.cpp: sum/min/max/ave all values in vector +compute_reduce_region.cpp:------------------------------------------------------------------------- */ +compute_reduce_region.cpp: // invoke the appropriate attribute,compute,fix,variable +compute_reduce_region.cpp: // compute scalar quantity by summing over atom scalars +compute_reduce_region.cpp: // only include atoms in group +compute_reduce_region.cpp: // invoke compute if not previously invoked +compute_reduce_region.cpp: // check if fix frequency is a match +compute_reduce_region.cpp: // evaluate atom-style variable +compute_reduce_region.cpp: memory->create(varatom,maxatom,"reduce/region:varatom"); +compute_reduce_region.cpp:/* ---------------------------------------------------------------------- */ +compute_slice.cpp:/* ---------------------------------------------------------------------- +compute_slice.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_slice.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_slice.cpp:------------------------------------------------------------------------- */ +compute_slice.cpp:/* ---------------------------------------------------------------------- */ +compute_slice.cpp: // parse remaining values until one isn't recognized +compute_slice.cpp: // setup and error check +compute_slice.cpp: // this compute produces either a vector or array +compute_slice.cpp: // for vector, set intensive/extensive to mirror input values +compute_slice.cpp: // for array, set intensive if all input values are intensive, else extensive +compute_slice.cpp: size_vector = (nstop-nstart) / nskip; +compute_slice.cpp: size_array_rows = (nstop-nstart) / nskip; +compute_slice.cpp: // variable is always intensive, does not change extarray +compute_slice.cpp:/* ---------------------------------------------------------------------- */ +compute_slice.cpp:/* ---------------------------------------------------------------------- */ +compute_slice.cpp: // set indices and check validity of all computes,fixes +compute_slice.cpp:/* ---------------------------------------------------------------------- */ +compute_slice.cpp:/* ---------------------------------------------------------------------- */ +compute_slice.cpp:/* ---------------------------------------------------------------------- +compute_slice.cpp:------------------------------------------------------------------------- */ +compute_slice.cpp: // invoke the appropriate compute if needed +compute_slice.cpp: // access fix fields, check if fix frequency is a match +compute_slice.cpp: // invoke vector-style variable +compute_spin.cpp:/* ---------------------------------------------------------------------- +compute_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_spin.cpp:------------------------------------------------------------------------- */ +compute_spin.cpp:/* ---------------------------------------------------------------------- */ +compute_spin.cpp: if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); +compute_spin.cpp:/* ---------------------------------------------------------------------- */ +compute_spin.cpp:/* ---------------------------------------------------------------------- */ +compute_spin.cpp: hbar = force->hplanck/MY_2PI; +compute_spin.cpp:/* ---------------------------------------------------------------------- */ +compute_spin.cpp: // compute total magnetization and magnetic energy +compute_spin.cpp: // compute spin temperature; See Nurdin et al., Phys. Rev. E 61, 2000 +compute_spin.cpp: else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); +compute_spin.cpp: double scale = 1.0/countsptot; +compute_spin.cpp: spintemperature = hbar*tempnumtot/2.0/kb/tempdenomtot; +compute_spin.cpp:/* ---------------------------------------------------------------------- +compute_spin.cpp:------------------------------------------------------------------------- */ +compute_spin.cpp: memory->create(mag,4,"compute/spin:mag"); +compute_spin.cpp: memory->create(magtot,5,"compute/spin:mag"); +compute_spin.cpp: memory->create(vector,7,"compute/spin:vector"); +compute_stress_atom.cpp:/* ---------------------------------------------------------------------- +compute_stress_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_stress_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_stress_atom.cpp:------------------------------------------------------------------------- */ +compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_stress_atom.cpp: if (narg < 4) error->all(FLERR,"Illegal compute stress/atom command"); +compute_stress_atom.cpp: // store temperature ID used by stress computation +compute_stress_atom.cpp: // insure it is valid for temperature computation +compute_stress_atom.cpp: error->all(FLERR,"Could not find compute stress/atom temperature ID"); +compute_stress_atom.cpp: "Compute stress/atom temperature ID does not " +compute_stress_atom.cpp: // process optional args +compute_stress_atom.cpp: } else error->all(FLERR,"Illegal compute stress/atom command"); +compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_stress_atom.cpp: // set temperature compute, must be done in init() +compute_stress_atom.cpp: // fixes could have changed or compute_modify could have changed it +compute_stress_atom.cpp: error->all(FLERR,"Could not find compute stress/atom temperature ID"); +compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_stress_atom.cpp: // grow local stress array if necessary +compute_stress_atom.cpp: // needs to be atom->nmax in length +compute_stress_atom.cpp: memory->create(stress,nmax,6,"stress/atom:stress"); +compute_stress_atom.cpp: // npair includes ghosts if either newton flag is set +compute_stress_atom.cpp: // b/c some bonds/dihedrals call pair::ev_tally with pairwise info +compute_stress_atom.cpp: // nbond includes ghosts if newton_bond is set +compute_stress_atom.cpp: // ntotal includes ghosts if either newton flag is set +compute_stress_atom.cpp: // KSpace includes ghosts if tip4pflag is set +compute_stress_atom.cpp: // clear local stress array +compute_stress_atom.cpp: // add in per-atom contributions from each force +compute_stress_atom.cpp: // add in per-atom contributions from relevant fixes +compute_stress_atom.cpp: // skip if vatom = NULL +compute_stress_atom.cpp: // possible during setup phase if fix has not initialized its vatom yet +compute_stress_atom.cpp: // e.g. fix ave/spatial defined before fix shake, +compute_stress_atom.cpp: // and fix ave/spatial uses a per-atom stress from this compute as input +compute_stress_atom.cpp: // communicate ghost virials between neighbor procs +compute_stress_atom.cpp: // zero virial of atoms not in group +compute_stress_atom.cpp: // only do this after comm since ghost contributions must be included +compute_stress_atom.cpp: // include kinetic energy term for each atom in group +compute_stress_atom.cpp: // apply temperature bias is applicable +compute_stress_atom.cpp: // mvv2e converts mv^2 to energy +compute_stress_atom.cpp: // invoke temperature if it hasn't been already +compute_stress_atom.cpp: // this insures bias factor is pre-computed +compute_stress_atom.cpp: // convert to stress*volume units = -pressure*volume +compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ +compute_stress_atom.cpp:/* ---------------------------------------------------------------------- +compute_stress_atom.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_temp_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_chunk.cpp: if (narg < 4) error->all(FLERR,"Illegal compute temp/chunk command"); +compute_temp_chunk.cpp: // ID of compute chunk/atom +compute_temp_chunk.cpp: // optional per-chunk values +compute_temp_chunk.cpp: // optional args +compute_temp_chunk.cpp: error->all(FLERR,"Illegal compute temp/chunk command"); +compute_temp_chunk.cpp: else error->all(FLERR,"Illegal compute temp/chunk command"); +compute_temp_chunk.cpp: error->all(FLERR,"Illegal compute temp/chunk command"); +compute_temp_chunk.cpp: error->all(FLERR,"Illegal compute temp/chunk command"); +compute_temp_chunk.cpp: error->all(FLERR,"Illegal compute temp/chunk command"); +compute_temp_chunk.cpp: } else error->all(FLERR,"Illegal compute temp/chunk command"); +compute_temp_chunk.cpp: // error check on bias compute +compute_temp_chunk.cpp: // this compute only calculates a bias, if comflag is set +compute_temp_chunk.cpp: // won't be two biases since comflag and biasflag cannot both be set +compute_temp_chunk.cpp: error->all(FLERR,"Cannot use both com and bias with compute temp/chunk"); +compute_temp_chunk.cpp: // vector data +compute_temp_chunk.cpp: // chunk-based data +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " +compute_temp_chunk.cpp: "compute temp/chunk"); +compute_temp_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_temp_chunk.cpp: error->all(FLERR,"Compute temp/chunk does not use chunk/atom compute"); +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_chunk.cpp: // calculate chunk assignments, +compute_temp_chunk.cpp: // since only atoms in chunks contribute to global temperature +compute_temp_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_temp_chunk.cpp: // extract ichunk index vector from compute +compute_temp_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_temp_chunk.cpp: // remove velocity bias +compute_temp_chunk.cpp: // calculate COM velocity for each chunk +compute_temp_chunk.cpp: // won't be invoked with bias also removed = 2 biases +compute_temp_chunk.cpp: // calculate global temperature, optionally removing COM velocity +compute_temp_chunk.cpp: // restore velocity bias +compute_temp_chunk.cpp: // final temperature +compute_temp_chunk.cpp: if (dof > 0.0) tfactor = force->mvv2e / (dof * force->boltz); +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_chunk.cpp: // calculate chunk assignments, +compute_temp_chunk.cpp: // since only atoms in chunks contribute to global temperature +compute_temp_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_temp_chunk.cpp: // extract ichunk index vector from compute +compute_temp_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_temp_chunk.cpp: // remove velocity bias +compute_temp_chunk.cpp: // calculate COM velocity for each chunk +compute_temp_chunk.cpp: // won't be invoked with bias also removed = 2 biases +compute_temp_chunk.cpp: // calculate KE tensor, optionally removing COM velocity +compute_temp_chunk.cpp: // restore velocity bias +compute_temp_chunk.cpp: // final KE +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_temp_chunk.cpp: // extract ichunk index vector from compute +compute_temp_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_temp_chunk.cpp: // remove velocity bias +compute_temp_chunk.cpp: // calculate COM velocity for each chunk whether comflag set or not +compute_temp_chunk.cpp: // needed by some values even if comflag not set +compute_temp_chunk.cpp: // important to do this after velocity bias is removed +compute_temp_chunk.cpp: // otherwise per-chunk values that use both v and vcm will be inconsistent +compute_temp_chunk.cpp: // compute each value +compute_temp_chunk.cpp: // restore velocity bias +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp: // avoid re-computing VCM more than once per step +compute_temp_chunk.cpp: vcmall[i][0] /= masstotal[i]; +compute_temp_chunk.cpp: vcmall[i][1] /= masstotal[i]; +compute_temp_chunk.cpp: vcmall[i][2] /= masstotal[i]; +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp: // zero local per-chunk values +compute_temp_chunk.cpp: // per-chunk temperature, option for removing COM velocity +compute_temp_chunk.cpp: // sum across procs +compute_temp_chunk.cpp: // normalize temperatures by per-chunk DOF +compute_temp_chunk.cpp: if (dof > 0.0) tfactor = mvv2e / (dof * boltz); +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp: // zero local per-chunk values +compute_temp_chunk.cpp: // per-chunk COM KE +compute_temp_chunk.cpp: // sum across procs +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp: // zero local per-chunk values +compute_temp_chunk.cpp: // per-chunk internal KE +compute_temp_chunk.cpp: // sum across procs +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp: lock methods: called by fix ave/time +compute_temp_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_temp_chunk.cpp: by passing lock info along to compute chunk/atom +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_chunk.cpp: memory->create(sum,maxchunk,"temp/chunk:sum"); +compute_temp_chunk.cpp: memory->create(sumall,maxchunk,"temp/chunk:sumall"); +compute_temp_chunk.cpp: memory->create(count,maxchunk,"temp/chunk:count"); +compute_temp_chunk.cpp: memory->create(countall,maxchunk,"temp/chunk:countall"); +compute_temp_chunk.cpp: memory->create(array,maxchunk,nvalues,"temp/chunk:array"); +compute_temp_chunk.cpp: memory->create(massproc,maxchunk,"vcm/chunk:massproc"); +compute_temp_chunk.cpp: memory->create(masstotal,maxchunk,"vcm/chunk:masstotal"); +compute_temp_chunk.cpp: memory->create(vcm,maxchunk,3,"vcm/chunk:vcm"); +compute_temp_chunk.cpp: memory->create(vcmall,maxchunk,3,"vcm/chunk:vcmall"); +compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- +compute_temp_chunk.cpp:------------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- +compute_temp_com.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_temp_com.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_temp_com.cpp:------------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_com.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); +compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- +compute_temp_com.cpp:------------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- +compute_temp_com.cpp:------------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- +compute_temp_com.cpp:------------------------------------------------------------------------- */ +compute_temp_com.cpp:/* ---------------------------------------------------------------------- +compute_temp_com.cpp:------------------------------------------------------------------------- */ +compute_temp.cpp:/* ---------------------------------------------------------------------- +compute_temp.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_temp.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_temp.cpp:------------------------------------------------------------------------- */ +compute_temp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp.cpp: if (dof > 0.0) tfactor = force->mvv2e / (dof * force->boltz); +compute_temp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- +compute_temp_deform.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_temp_deform.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_temp_deform.cpp:------------------------------------------------------------------------- */ +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- +compute_temp_deform.cpp:------------------------------------------------------------------------- */ +compute_temp_deform.cpp:enum{NO_REMAP,X_REMAP,V_REMAP}; // same as fix_deform.cpp +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_deform.cpp: if (narg != 3) error->all(FLERR,"Illegal compute temp/deform command"); +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_deform.cpp: // check fix deform remap settings +compute_temp_deform.cpp: error->warning(FLERR,"Using compute temp/deform with inconsistent " +compute_temp_deform.cpp: "Using compute temp/deform with no fix deform defined"); +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_deform.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_deform.cpp: // lamda = 0-1 triclinic lamda coords +compute_temp_deform.cpp: // vstream = streaming velocity = Hrate*lamda + Hratelo +compute_temp_deform.cpp: // vthermal = thermal velocity = v - vstream +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- +compute_temp_deform.cpp:------------------------------------------------------------------------- */ +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- +compute_temp_deform.cpp:------------------------------------------------------------------------- */ +compute_temp_deform.cpp: memory->create(vbiasall,maxbias,3,"temp/deform:vbiasall"); +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- +compute_temp_deform.cpp:------------------------------------------------------------------------- */ +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- +compute_temp_deform.cpp:------------------------------------------------------------------------- */ +compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- +compute_temp_partial.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_temp_partial.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_temp_partial.cpp:------------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_partial.cpp: if (narg != 6) error->all(FLERR,"Illegal compute temp/partial command"); +compute_temp_partial.cpp: error->all(FLERR,"Illegal compute temp/partial command"); +compute_temp_partial.cpp: error->all(FLERR,"Compute temp/partial cannot use vz for 2d systemx"); +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- +compute_temp_partial.cpp: DOF = nper/dim (dim*N - S), where dim = dimensionality = 2 or 3 +compute_temp_partial.cpp:------------------------------------------------------------------------- */ +compute_temp_partial.cpp: // distribute extra dofs evenly across active dimensions +compute_temp_partial.cpp: dof -= (1.0*nper/domain->dimension)*(fix_dof + extra_dof); +compute_temp_partial.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- +compute_temp_partial.cpp:------------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- +compute_temp_partial.cpp:------------------------------------------------------------------------- */ +compute_temp_partial.cpp: memory->create(vbiasall,maxbias,3,"temp/partial:vbiasall"); +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- +compute_temp_partial.cpp:------------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- +compute_temp_partial.cpp:------------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- +compute_temp_partial.cpp:------------------------------------------------------------------------- */ +compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- +compute_temp_profile.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_temp_profile.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_temp_profile.cpp:------------------------------------------------------------------------- */ +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_profile.cpp: if (narg < 7) error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: error->all(FLERR,"Compute temp/profile cannot use vz for 2d systemx"); +compute_temp_profile.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); +compute_temp_profile.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); +compute_temp_profile.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); +compute_temp_profile.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); +compute_temp_profile.cpp: } else error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: // optional keywords +compute_temp_profile.cpp: error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: else error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: } else error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: // setup +compute_temp_profile.cpp: if (nbins <= 0) error->all(FLERR,"Illegal compute temp/profile command"); +compute_temp_profile.cpp: memory->create(vbin,nbins,ncount,"temp/profile:vbin"); +compute_temp_profile.cpp: memory->create(binave,nbins,ncount,"temp/profile:binave"); +compute_temp_profile.cpp: memory->create(tbin,nbins,"temp/profile:tbin"); +compute_temp_profile.cpp: memory->create(tbinall,nbins,"temp/profile:tbinall"); +compute_temp_profile.cpp: memory->create(array,nbins,2,"temp/profile:array"); +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_profile.cpp: // ptrs to domain data +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_profile.cpp: // subtract additional d*Nbins DOF, as in Evans and Morriss paper +compute_temp_profile.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_profile.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- +compute_temp_profile.cpp:------------------------------------------------------------------------- */ +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- +compute_temp_profile.cpp:------------------------------------------------------------------------- */ +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- +compute_temp_profile.cpp:------------------------------------------------------------------------- */ +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- +compute_temp_profile.cpp:------------------------------------------------------------------------- */ +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- +compute_temp_profile.cpp:------------------------------------------------------------------------- */ +compute_temp_profile.cpp: // clear bins, including particle mass and count +compute_temp_profile.cpp: // sum each particle's mass-weighted velocity, mass, count to appropriate bin +compute_temp_profile.cpp: // sum bins across processors +compute_temp_profile.cpp: // compute ave COM velocity in each bin, checking for no particles +compute_temp_profile.cpp: binave[i][j] /= binave[i][nc2]; +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- +compute_temp_profile.cpp:------------------------------------------------------------------------- */ +compute_temp_profile.cpp: invdelta[0] = nbinx / prd[0]; +compute_temp_profile.cpp: invdelta[1] = nbiny / prd[1]; +compute_temp_profile.cpp: invdelta[2] = nbinz / prd[2]; +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- +compute_temp_profile.cpp:------------------------------------------------------------------------- */ +compute_temp_profile.cpp: // reallocate bin array if necessary +compute_temp_profile.cpp: memory->create(bin,maxatom,"temp/profile:bin"); +compute_temp_profile.cpp: // assign each atom to a bin, accounting for PBC +compute_temp_profile.cpp: // if triclinic, do this in lamda space +compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- +compute_temp_ramp.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_temp_ramp.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_temp_ramp.cpp:------------------------------------------------------------------------- */ +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_ramp.cpp: // parse optional args +compute_temp_ramp.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/ramp command"); +compute_temp_ramp.cpp: else error->all(FLERR,"Illegal compute temp/ramp command"); +compute_temp_ramp.cpp: } else error->all(FLERR,"Illegal compute temp/ramp command"); +compute_temp_ramp.cpp: // setup scaling +compute_temp_ramp.cpp: // read standard args and apply scaling +compute_temp_ramp.cpp: else error->all(FLERR,"Illegal compute temp/ramp command"); +compute_temp_ramp.cpp: else error->all(FLERR,"Illegal compute temp/ramp command"); +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_ramp.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_ramp.cpp: fraction = (x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_ramp.cpp: fraction = (x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- +compute_temp_ramp.cpp:------------------------------------------------------------------------- */ +compute_temp_ramp.cpp: double fraction = (atom->x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- +compute_temp_ramp.cpp:------------------------------------------------------------------------- */ +compute_temp_ramp.cpp: memory->create(vbiasall,maxbias,3,"temp/ramp:vbiasall"); +compute_temp_ramp.cpp: fraction = (atom->x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- +compute_temp_ramp.cpp:------------------------------------------------------------------------- */ +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- +compute_temp_ramp.cpp:------------------------------------------------------------------------- */ +compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_region.cpp:/* ---------------------------------------------------------------------- +compute_temp_region.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_temp_region.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_temp_region.cpp:------------------------------------------------------------------------- */ +compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_region.cpp: if (narg != 4) error->all(FLERR,"Illegal compute temp/region command"); +compute_temp_region.cpp: error->all(FLERR,"Region ID for compute temp/region does not exist"); +compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_region.cpp: // set index and check validity of region +compute_temp_region.cpp: error->all(FLERR,"Region ID for compute temp/region does not exist"); +compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_region.cpp: if (dof > 0) scalar = force->mvv2e * tarray_all[1] / (dof * force->boltz); +compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_region.cpp:/* ---------------------------------------------------------------------- +compute_temp_region.cpp:------------------------------------------------------------------------- */ +compute_temp_region.cpp:/* ---------------------------------------------------------------------- +compute_temp_region.cpp:------------------------------------------------------------------------- */ +compute_temp_region.cpp: memory->create(vbiasall,maxbias,3,"temp/region:vbiasall"); +compute_temp_region.cpp:/* ---------------------------------------------------------------------- +compute_temp_region.cpp:------------------------------------------------------------------------- */ +compute_temp_region.cpp:/* ---------------------------------------------------------------------- +compute_temp_region.cpp:------------------------------------------------------------------------- */ +compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- +compute_temp_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_temp_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_temp_sphere.cpp:------------------------------------------------------------------------- */ +compute_temp_sphere.cpp:#define INERTIA 0.4 // moment of inertia prefactor for sphere +compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_sphere.cpp: if (narg < 3) error->all(FLERR,"Illegal compute temp/sphere command"); +compute_temp_sphere.cpp: error->all(FLERR,"Illegal compute temp/sphere command"); +compute_temp_sphere.cpp: error->all(FLERR,"Illegal compute temp/sphere command"); +compute_temp_sphere.cpp: else error->all(FLERR,"Illegal compute temp/sphere command"); +compute_temp_sphere.cpp: } else error->all(FLERR,"Illegal compute temp/sphere command"); +compute_temp_sphere.cpp: // when computing only the rotational temperature, +compute_temp_sphere.cpp: // do not remove DOFs for translation as set by default +compute_temp_sphere.cpp: // error checks +compute_temp_sphere.cpp: error->all(FLERR,"Compute temp/sphere requires atom style sphere"); +compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_sphere.cpp: if (strcmp(tbias->style,"temp/region") == 0) tempbias = 2; +compute_temp_sphere.cpp: // init and setup bias compute because +compute_temp_sphere.cpp: // this compute's setup()->dof_compute() may be called first +compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_sphere.cpp: // 6 or 3 dof for extended/point particles for 3d +compute_temp_sphere.cpp: // 3 or 2 dof for extended/point particles for 2d +compute_temp_sphere.cpp: // which dof are included also depends on mode +compute_temp_sphere.cpp: // assume full rotation of extended particles +compute_temp_sphere.cpp: // user should correct this via compute_modify if needed +compute_temp_sphere.cpp: // additional adjustments to dof +compute_temp_sphere.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); +compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_sphere.cpp: // point particles will not contribute rotation due to radius = 0 +compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ +compute_temp_sphere.cpp: // point particles will not contribute rotation due to radius = 0 +compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- +compute_temp_sphere.cpp:------------------------------------------------------------------------- */ +compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- +compute_temp_sphere.cpp:------------------------------------------------------------------------- */ +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- +compute_torque_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_torque_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_torque_chunk.cpp:------------------------------------------------------------------------- */ +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_torque_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute torque/chunk command"); +compute_torque_chunk.cpp: // ID of compute chunk/atom +compute_torque_chunk.cpp: // chunk-based data +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_torque_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " +compute_torque_chunk.cpp: "compute torque/chunk"); +compute_torque_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_torque_chunk.cpp: error->all(FLERR,"Compute torque/chunk does not use chunk/atom compute"); +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_torque_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_torque_chunk.cpp: // extract ichunk index vector from compute +compute_torque_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_torque_chunk.cpp: // zero local per-chunk values +compute_torque_chunk.cpp: // compute COM for each chunk +compute_torque_chunk.cpp: comall[i][0] /= masstotal[i]; +compute_torque_chunk.cpp: comall[i][1] /= masstotal[i]; +compute_torque_chunk.cpp: comall[i][2] /= masstotal[i]; +compute_torque_chunk.cpp: // compute torque on each chunk +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- +compute_torque_chunk.cpp: lock methods: called by fix ave/time +compute_torque_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_torque_chunk.cpp: by passing lock info along to compute chunk/atom +compute_torque_chunk.cpp:------------------------------------------------------------------------- */ +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- +compute_torque_chunk.cpp:------------------------------------------------------------------------- */ +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- +compute_torque_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_torque_chunk.cpp:------------------------------------------------------------------------- */ +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- +compute_torque_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_torque_chunk.cpp:------------------------------------------------------------------------- */ +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- +compute_torque_chunk.cpp:------------------------------------------------------------------------- */ +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- +compute_torque_chunk.cpp:------------------------------------------------------------------------- */ +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- +compute_torque_chunk.cpp:------------------------------------------------------------------------- */ +compute_torque_chunk.cpp: memory->create(massproc,maxchunk,"torque/chunk:massproc"); +compute_torque_chunk.cpp: memory->create(masstotal,maxchunk,"torque/chunk:masstotal"); +compute_torque_chunk.cpp: memory->create(com,maxchunk,3,"torque/chunk:com"); +compute_torque_chunk.cpp: memory->create(comall,maxchunk,3,"torque/chunk:comall"); +compute_torque_chunk.cpp: memory->create(torque,maxchunk,3,"torque/chunk:torque"); +compute_torque_chunk.cpp: memory->create(torqueall,maxchunk,3,"torque/chunk:torqueall"); +compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- +compute_torque_chunk.cpp:------------------------------------------------------------------------- */ +compute_vacf.cpp:/* ---------------------------------------------------------------------- +compute_vacf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_vacf.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_vacf.cpp:------------------------------------------------------------------------- */ +compute_vacf.cpp:/* ---------------------------------------------------------------------- */ +compute_vacf.cpp: // create a new fix STORE style +compute_vacf.cpp: // id = compute-ID + COMPUTE_STORE, fix group = compute group +compute_vacf.cpp: // store current velocities in fix store array +compute_vacf.cpp: // skip if reset from restart file +compute_vacf.cpp: // displacement vector +compute_vacf.cpp:/* ---------------------------------------------------------------------- */ +compute_vacf.cpp: // check nfix in case all fixes have already been deleted +compute_vacf.cpp:/* ---------------------------------------------------------------------- */ +compute_vacf.cpp: // set fix which stores original atom velocities +compute_vacf.cpp: // nvacf = # of atoms in group +compute_vacf.cpp:/* ---------------------------------------------------------------------- */ +compute_vacf.cpp: vector[0] /= nvacf; +compute_vacf.cpp: vector[1] /= nvacf; +compute_vacf.cpp: vector[2] /= nvacf; +compute_vacf.cpp: vector[3] /= nvacf; +compute_vacf.cpp:/* ---------------------------------------------------------------------- +compute_vacf.cpp:------------------------------------------------------------------------- */ +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- +compute_vcm_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +compute_vcm_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_vcm_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute vcm/chunk command"); +compute_vcm_chunk.cpp: // ID of compute chunk/atom +compute_vcm_chunk.cpp: // chunk-based data +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_vcm_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for compute vcm/chunk"); +compute_vcm_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +compute_vcm_chunk.cpp: error->all(FLERR,"Compute vcm/chunk does not use chunk/atom compute"); +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_vcm_chunk.cpp: // one-time calculation of per-chunk mass +compute_vcm_chunk.cpp: // done in setup, so that ComputeChunkAtom::setup() is already called +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- */ +compute_vcm_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +compute_vcm_chunk.cpp: // extract ichunk index vector from compute +compute_vcm_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +compute_vcm_chunk.cpp: // zero local per-chunk values +compute_vcm_chunk.cpp: // compute VCM for each chunk +compute_vcm_chunk.cpp: vcmall[i][0] /= masstotal[i]; +compute_vcm_chunk.cpp: vcmall[i][1] /= masstotal[i]; +compute_vcm_chunk.cpp: vcmall[i][2] /= masstotal[i]; +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- +compute_vcm_chunk.cpp: lock methods: called by fix ave/time +compute_vcm_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch +compute_vcm_chunk.cpp: by passing lock info along to compute chunk/atom +compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- +compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- +compute_vcm_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists +compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- +compute_vcm_chunk.cpp: calculate and return # of chunks = length of vector/array +compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- +compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- +compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- +compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ +compute_vcm_chunk.cpp: memory->create(massproc,maxchunk,"vcm/chunk:massproc"); +compute_vcm_chunk.cpp: memory->create(masstotal,maxchunk,"vcm/chunk:masstotal"); +compute_vcm_chunk.cpp: memory->create(vcm,maxchunk,3,"vcm/chunk:vcm"); +compute_vcm_chunk.cpp: memory->create(vcmall,maxchunk,3,"vcm/chunk:vcmall"); +compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- +compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ +create_atoms.cpp:/* ---------------------------------------------------------------------- +create_atoms.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +create_atoms.cpp: http://lammps.sandia.gov, Sandia National Laboratories +create_atoms.cpp:------------------------------------------------------------------------- */ +create_atoms.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files +create_atoms.cpp:/* ---------------------------------------------------------------------- */ +create_atoms.cpp:/* ---------------------------------------------------------------------- */ +create_atoms.cpp: // parse arguments +create_atoms.cpp: // process optional keywords +create_atoms.cpp: // error checks +create_atoms.cpp: // error check and further setup for mode = MOLECULE +create_atoms.cpp: // create_atoms uses geoemetric center of molecule for insertion +create_atoms.cpp: // molecule random number generator, different for each proc +create_atoms.cpp: // error check and further setup for variable test +create_atoms.cpp: // demand non-none lattice be defined for BOX and REGION +create_atoms.cpp: // else setup scaling for SINGLE and RANDOM +create_atoms.cpp: // could use domain->lattice->lattice2box() to do conversion of +create_atoms.cpp: // lattice to box, but not consistent with other uses of units=lattice +create_atoms.cpp: // triclinic remapping occurs in add_single() +create_atoms.cpp: // set bounds for my proc in sublo[3] & subhi[3] +create_atoms.cpp: // if periodic and style = BOX or REGION, i.e. using lattice: +create_atoms.cpp: // should create exactly 1 atom when 2 images are both "on" the boundary +create_atoms.cpp: // either image may be slightly inside/outside true box due to round-off +create_atoms.cpp: // if I am lo proc, decrement lower bound by EPSILON +create_atoms.cpp: // this will insure lo image is created +create_atoms.cpp: // if I am hi proc, decrement upper bound by 2.0*EPSILON +create_atoms.cpp: // this will insure hi image is not created +create_atoms.cpp: // thus insertion box is EPSILON smaller than true box +create_atoms.cpp: // and is shifted away from true boundary +create_atoms.cpp: // which is where atoms are likely to be generated +create_atoms.cpp: // clear ghost count and any ghost bonus data internal to AtomVec +create_atoms.cpp: // same logic as beginning of Comm::exchange() +create_atoms.cpp: // do it now b/c creating atoms will overwrite ghost atoms +create_atoms.cpp: // add atoms/molecules in one of 3 ways +create_atoms.cpp: // init per-atom fix/compute/variable values for created atoms +create_atoms.cpp: // set new total # of atoms and error check +create_atoms.cpp: // add IDs for newly created atoms +create_atoms.cpp: // check that atom IDs are valid +create_atoms.cpp: // if global map exists, reset it +create_atoms.cpp: // invoke map_init() b/c atom count has grown +create_atoms.cpp: // for MOLECULE mode: +create_atoms.cpp: // molecule can mean just a mol ID or bonds/angles/etc or mol templates +create_atoms.cpp: // set molecule IDs for created atoms if atom->molecule_flag is set +create_atoms.cpp: // reset new molecule bond,angle,etc and special values if defined +create_atoms.cpp: // send atoms to new owning procs via irregular comm +create_atoms.cpp: // since not all atoms I created will be within my sub-domain +create_atoms.cpp: // perform special list build if needed +create_atoms.cpp: // molcreate = # of molecules I created +create_atoms.cpp: int molcreate = (atom->nlocal - nlocal_previous) / onemol->natoms; +create_atoms.cpp: // increment total bonds,angles,etc +create_atoms.cpp: // if atom style template +create_atoms.cpp: // maxmol = max molecule ID across all procs, for previous atoms +create_atoms.cpp: // moloffset = max molecule ID for all molecules owned by previous procs +create_atoms.cpp: // including molecules existing before this creation +create_atoms.cpp: // loop over molecules I created +create_atoms.cpp: // set their molecule ID +create_atoms.cpp: // reset their bond,angle,etc and special values +create_atoms.cpp: // perform irregular comm to migrate atoms to new owning procs +create_atoms.cpp: // clean up +create_atoms.cpp: // print status +create_atoms.cpp: // for MOLECULE mode: +create_atoms.cpp: // create special bond lists for molecular systems, +create_atoms.cpp: // but not for atom style template +create_atoms.cpp: // only if onemol added bonds but not special info +create_atoms.cpp:/* ---------------------------------------------------------------------- +create_atoms.cpp:------------------------------------------------------------------------- */ +create_atoms.cpp: // remap atom if requested +create_atoms.cpp: // if triclinic, convert to lamda coords (0-1) +create_atoms.cpp: // if atom/molecule is in my subbox, create it +create_atoms.cpp:/* ---------------------------------------------------------------------- +create_atoms.cpp:------------------------------------------------------------------------- */ +create_atoms.cpp: // random number generator, same for all procs +create_atoms.cpp: // bounding box for atom creation +create_atoms.cpp: // in real units, even if triclinic +create_atoms.cpp: // only limit bbox by region if its bboxflag is set (interior region) +create_atoms.cpp: // generate random positions for each new atom/molecule within bounding box +create_atoms.cpp: // iterate until atom is within region, variable, and triclinic simulation box +create_atoms.cpp: // if final atom position is in my subbox, create it +create_atoms.cpp: // if triclinic, coord is now in lamda units +create_atoms.cpp: // clean-up +create_atoms.cpp:/* ---------------------------------------------------------------------- +create_atoms.cpp:------------------------------------------------------------------------- */ +create_atoms.cpp: // convert 8 corners of my subdomain from box coords to lattice coords +create_atoms.cpp: // for orthogonal, use corner pts of my subbox +create_atoms.cpp: // for triclinic, use bounding box of my subbox +create_atoms.cpp: // xyz min to max = bounding box around the domain corners in lattice space +create_atoms.cpp: // ilo:ihi,jlo:jhi,klo:khi = loop bounds for lattice overlap of my subbox +create_atoms.cpp: // overlap = any part of a unit cell (face,edge,pt) in common with my subbox +create_atoms.cpp: // in lattice space, subbox is a tilted box +create_atoms.cpp: // but bbox of subbox is aligned with lattice axes +create_atoms.cpp: // so ilo:khi unit cells should completely tile bounding box +create_atoms.cpp: // decrement lo, increment hi to avoid round-off issues in lattice->bbox(), +create_atoms.cpp: // which can lead to missing atoms in rare cases +create_atoms.cpp: // extra decrement of lo if min < 0, since static_cast(-1.5) = -1 +create_atoms.cpp: // iterate on 3d periodic lattice of unit cells using loop bounds +create_atoms.cpp: // iterate on nbasis atoms in each unit cell +create_atoms.cpp: // convert lattice coords to box coords +create_atoms.cpp: // add atom or molecule (on each basis point) if it meets all criteria +create_atoms.cpp: // convert from lattice coords to box coords +create_atoms.cpp: // if a region was specified, test if atom is in it +create_atoms.cpp: // if variable test specified, eval variable +create_atoms.cpp: // test if atom/molecule position is in my subbox +create_atoms.cpp: // add the atom or entire molecule to my list of atoms +create_atoms.cpp:/* ---------------------------------------------------------------------- +create_atoms.cpp:------------------------------------------------------------------------- */ +create_atoms.cpp: // create atoms in molecule with atom ID = 0 and mol ID = 0 +create_atoms.cpp: // reset in caller after all molecules created by all procs +create_atoms.cpp: // pass add_molecule_atom an offset of 0 since don't know +create_atoms.cpp: // max tag of atoms in previous molecules at this point +create_atoms.cpp:/* ---------------------------------------------------------------------- +create_atoms.cpp:------------------------------------------------------------------------- */ +create_bonds.cpp:/* ---------------------------------------------------------------------- +create_bonds.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +create_bonds.cpp: http://lammps.sandia.gov, Sandia National Laboratories +create_bonds.cpp:------------------------------------------------------------------------- */ +create_bonds.cpp:/* ---------------------------------------------------------------------- */ +create_bonds.cpp:/* ---------------------------------------------------------------------- */ +create_bonds.cpp: // parse args +create_bonds.cpp: // store state before bond creation +create_bonds.cpp: // request a full neighbor list for use by this command +create_bonds.cpp: // init entire system since comm->borders and neighbor->build is done +create_bonds.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc +create_bonds.cpp: // error check on cutoff +create_bonds.cpp: // if no pair style, neighbor list will be empty +create_bonds.cpp: // require special_bonds 1-2 weights = 0.0 and KSpace = NULL +create_bonds.cpp: // so that already bonded atom pairs do not appear in neighbor list +create_bonds.cpp: // otherwise with newton_bond = 1, +create_bonds.cpp: // would be hard to check if I-J bond already existed +create_bonds.cpp: // note that with KSpace, pair with weight = 0 could still be in neigh list +create_bonds.cpp: // setup domain, communication and neighboring +create_bonds.cpp: // acquire ghosts and build standard neighbor lists +create_bonds.cpp: // build neighbor list this command needs based on earlier request +create_bonds.cpp: // loop over all neighs of each atom +create_bonds.cpp: // compute distance between two atoms consistently on both procs +create_bonds.cpp: // add bond if group and distance criteria are met +create_bonds.cpp: // check that bond list does not overflow +create_bonds.cpp: // only consider bond creation if I,J distance between 2 cutoffs +create_bonds.cpp: // compute rsq identically on both I,J loop iterations +create_bonds.cpp: // if I,J tags equal, do not bond atom to itself +create_bonds.cpp: // only consider bond creation if igroup and jgroup match I,J atoms +create_bonds.cpp: // create bond, check for overflow +create_bonds.cpp: // on I,J loop iterations, store with 1 or 2 atoms based on newton_bond +create_bonds.cpp: // recount bonds +create_bonds.cpp: if (!force->newton_bond) atom->nbonds /= 2; +create_bonds.cpp: // print new bond count +create_bonds.cpp: // re-trigger special list build +create_box.cpp:/* ---------------------------------------------------------------------- +create_box.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +create_box.cpp: http://lammps.sandia.gov, Sandia National Laboratories +create_box.cpp:------------------------------------------------------------------------- */ +create_box.cpp:/* ---------------------------------------------------------------------- */ +create_box.cpp:/* ---------------------------------------------------------------------- */ +create_box.cpp: // region check +create_box.cpp: // if region not prism: +create_box.cpp: // setup orthogonal domain +create_box.cpp: // set simulation domain from region extent +create_box.cpp: // if region is prism: +create_box.cpp: // seutp triclinic domain +create_box.cpp: // set simulation domain params from prism params +create_box.cpp: // if molecular, zero out topology info +create_box.cpp: // set atom and topology type quantities +create_box.cpp: // process optional args that can overwrite default settings +create_box.cpp: if (strcmp(arg[iarg],"bond/types") == 0) { +create_box.cpp: } else if (strcmp(arg[iarg],"angle/types") == 0) { +create_box.cpp: } else if (strcmp(arg[iarg],"dihedral/types") == 0) { +create_box.cpp: } else if (strcmp(arg[iarg],"improper/types") == 0) { +create_box.cpp: } else if (strcmp(arg[iarg],"extra/bond/per/atom") == 0) { +create_box.cpp: } else if (strcmp(arg[iarg],"extra/angle/per/atom") == 0) { +create_box.cpp: } else if (strcmp(arg[iarg],"extra/dihedral/per/atom") == 0) { +create_box.cpp: } else if (strcmp(arg[iarg],"extra/improper/per/atom") == 0) { +create_box.cpp: } else if (strcmp(arg[iarg],"extra/special/per/atom") == 0) { +create_box.cpp: // problem setup using info from header +create_box.cpp: // deallocate/grow insures any extra settings are used for topology arrays +create_box.cpp: // necessary in case no create_atoms is performed +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +delete_atoms.cpp: http://lammps.sandia.gov, Sandia National Laboratories +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_atoms.cpp:// allocate space for static class variable +delete_atoms.cpp:/* ---------------------------------------------------------------------- */ +delete_atoms.cpp:/* ---------------------------------------------------------------------- */ +delete_atoms.cpp: // store state before delete +delete_atoms.cpp: // flag atoms for deletion +delete_atoms.cpp: // if allflag = 1, just reset atom->nlocal +delete_atoms.cpp: // else delete atoms one by one +delete_atoms.cpp: // optionally delete additional bonds or atoms in molecules +delete_atoms.cpp: // delete local atoms flagged in dlist +delete_atoms.cpp: // reset nlocal +delete_atoms.cpp: // if non-molecular system and compress flag set, +delete_atoms.cpp: // reset atom tags to be contiguous +delete_atoms.cpp: // set all atom IDs to 0, call tag_extend() +delete_atoms.cpp: // reset atom->natoms and also topology counts +delete_atoms.cpp: // reset atom->map if it exists +delete_atoms.cpp: // set nghost to 0 so old ghosts of deleted atoms won't be mapped +delete_atoms.cpp: // print before and after atom and topology counts +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_atoms.cpp: // check for special case of group = all +delete_atoms.cpp: // allocate and initialize deletion list +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_atoms.cpp: // allocate and initialize deletion list +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_atoms.cpp: // read args +delete_atoms.cpp: // request a full neighbor list for use by this command +delete_atoms.cpp: // init entire system since comm->borders and neighbor->build is done +delete_atoms.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc +delete_atoms.cpp: // error check on cutoff +delete_atoms.cpp: // if no pair style, neighbor list will be empty +delete_atoms.cpp: // setup domain, communication and neighboring +delete_atoms.cpp: // acquire ghosts and build standard neighbor lists +delete_atoms.cpp: // build neighbor list this command needs based on earlier request +delete_atoms.cpp: // allocate and initialize deletion list +delete_atoms.cpp: // must be after exchange potentially changes nlocal +delete_atoms.cpp: // double loop over owned atoms and their full neighbor list +delete_atoms.cpp: // at end of loop, there are no more overlaps +delete_atoms.cpp: // only ever delete owned atom I in I loop iteration, never J even if owned +delete_atoms.cpp: // if both weighting factors are 0, skip this pair +delete_atoms.cpp: // could be 0 and still be in neigh list for long-range Coulombics +delete_atoms.cpp: // want consistency with non-charged pairs which wouldn't be in list +delete_atoms.cpp: // only consider deletion if I,J distance < cutoff +delete_atoms.cpp: // compute rsq identically on both I,J loop iterations +delete_atoms.cpp: // ignoring possibility that I,J tags are equal +delete_atoms.cpp: // only consider deletion if I,J are in groups 1,2 respectively +delete_atoms.cpp: // true whether J is owned or ghost atom +delete_atoms.cpp: // J is owned atom: +delete_atoms.cpp: // delete atom I if atom J has not already been deleted +delete_atoms.cpp: // J is ghost atom: +delete_atoms.cpp: // delete atom I if J,I is not a candidate deletion pair +delete_atoms.cpp: // due to being in groups 1,2 respectively +delete_atoms.cpp: // if they are candidate pair, then either: +delete_atoms.cpp: // another proc owns J and could delete J +delete_atoms.cpp: // J is a ghost of another of my owned atoms, and I could delete J +delete_atoms.cpp: // test on tags of I,J insures that only I or J is deleted +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_atoms.cpp: // allocate and initialize deletion list +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_atoms.cpp: // hash = for atom IDs being deleted by one processor +delete_atoms.cpp: // list of these IDs is sent around ring +delete_atoms.cpp: // at each stage of ring pass, hash is re-populated with received IDs +delete_atoms.cpp: // list = set of unique molecule IDs from which I deleted atoms +delete_atoms.cpp: // pass list to all other procs via comm->ring() +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_atoms.cpp: // hash = unique molecule IDs from which I deleted atoms +delete_atoms.cpp: // list = set of unique molecule IDs from which I deleted atoms +delete_atoms.cpp: // pass list to all other procs via comm->ring() +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_atoms.cpp: if (!force->newton_bond) atom->nbonds /= 2; +delete_atoms.cpp: if (!force->newton_bond) atom->nangles /= 3; +delete_atoms.cpp: if (!force->newton_bond) atom->ndihedrals /= 4; +delete_atoms.cpp: if (!force->newton_bond) atom->nimpropers /= 4; +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_atoms.cpp: // cbuf = list of N deleted atom IDs from other proc, put them in hash +delete_atoms.cpp: // loop over my atoms and their bond topology lists +delete_atoms.cpp: // if any atom in an interaction matches atom ID in hash, delete interaction +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_atoms.cpp: // cbuf = list of N molecule IDs from other proc, put them in hash +delete_atoms.cpp: // loop over my atoms, if matches molecule ID in hash, delete that atom +delete_atoms.cpp:/* ---------------------------------------------------------------------- +delete_atoms.cpp:------------------------------------------------------------------------- */ +delete_bonds.cpp:/* ---------------------------------------------------------------------- +delete_bonds.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +delete_bonds.cpp: http://lammps.sandia.gov, Sandia National Laboratories +delete_bonds.cpp:------------------------------------------------------------------------- */ +delete_bonds.cpp:/* ---------------------------------------------------------------------- */ +delete_bonds.cpp:/* ---------------------------------------------------------------------- */ +delete_bonds.cpp: // init entire system since comm->borders is done +delete_bonds.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc +delete_bonds.cpp: // identify group +delete_bonds.cpp: // set style and which = type value +delete_bonds.cpp: // setup list of types (atom,bond,etc) to consider +delete_bonds.cpp: // use force->bounds(FLERR,) to allow setting of range of types +delete_bonds.cpp: // range can be 0 to ntypes inclusive +delete_bonds.cpp: // grab optional keywords +delete_bonds.cpp: // border swap to insure type and mask is current for off-proc atoms +delete_bonds.cpp: // enforce PBC before in case atoms are outside box +delete_bonds.cpp: // set topology interactions either off or on +delete_bonds.cpp: // criteria for an interaction to potentially be changed (set flag = 1) +delete_bonds.cpp: // all atoms or any atom in interaction must be in group, based on any_flag +delete_bonds.cpp: // for style = MULTI, all bond/angle/dihedral/improper, no other criteria +delete_bonds.cpp: // for style = ATOM, same as MULTI, plus at least one atom is specified type +delete_bonds.cpp: // for style = BOND/ANGLE/DIHEDRAL/IMPROPER, interaction is specified type +delete_bonds.cpp: // for style = STATS only compute stats, flag is always 0 +delete_bonds.cpp: // if flag = 1 +delete_bonds.cpp: // set interaction type negative if undo_flag = 0 +delete_bonds.cpp: // set interaction type positive if undo_flag = 1 +delete_bonds.cpp: // induce turn off of angles, dihedral, impropers due to turned off bonds +delete_bonds.cpp: // induce turn off of dihedrals due to turned off angles +delete_bonds.cpp: // all atoms or any atom in interaction must be in group, based on any_flag +delete_bonds.cpp: // circulate list of turned off bonds around ring of procs +delete_bonds.cpp: // circulate list of turned off angles around ring of procs +delete_bonds.cpp: // remove interactions if requested +delete_bonds.cpp: // all atoms or any atom in interaction must be in group, based on any_flag +delete_bonds.cpp: // if interactions were removed, recompute global counts +delete_bonds.cpp: if (force->newton_bond == 0) atom->nbonds /= 2; +delete_bonds.cpp: if (force->newton_bond == 0) atom->nangles /= 3; +delete_bonds.cpp: if (force->newton_bond == 0) atom->ndihedrals /= 4; +delete_bonds.cpp: if (force->newton_bond == 0) atom->nimpropers /= 4; +delete_bonds.cpp: // compute and print stats +delete_bonds.cpp: bond_on /= 2; +delete_bonds.cpp: bond_off /= 2; +delete_bonds.cpp: angle_on /= 3; +delete_bonds.cpp: angle_off /= 3; +delete_bonds.cpp: dihedral_on /= 4; +delete_bonds.cpp: dihedral_off /= 4; +delete_bonds.cpp: improper_on /= 4; +delete_bonds.cpp: improper_off /= 4; +delete_bonds.cpp: // re-compute special list if requested +dihedral.cpp:/* ---------------------------------------------------------------------- +dihedral.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dihedral.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dihedral.cpp:------------------------------------------------------------------------- */ +dihedral.cpp:/* ---------------------------------------------------------------------- +dihedral.cpp:------------------------------------------------------------------------- */ +dihedral.cpp:/* ---------------------------------------------------------------------- */ +dihedral.cpp:/* ---------------------------------------------------------------------- +dihedral.cpp:------------------------------------------------------------------------- */ +dihedral.cpp:/* ---------------------------------------------------------------------- +dihedral.cpp:------------------------------------------------------------------------- */ +dihedral.cpp: eflag_atom = eflag / 2; +dihedral.cpp: vflag_atom = vflag / 4; +dihedral.cpp: // reallocate per-atom arrays if necessary +dihedral.cpp: // zero accumulators +dihedral.cpp:/* ---------------------------------------------------------------------- +dihedral.cpp:------------------------------------------------------------------------- */ +dihedral.cpp:/* ---------------------------------------------------------------------- */ +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- +dihedral_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dihedral_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dihedral_hybrid.cpp:------------------------------------------------------------------------- */ +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- */ +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- */ +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- */ +dihedral_hybrid.cpp: // save ptrs to original dihedrallist +dihedral_hybrid.cpp: // if this is re-neighbor step, create sub-style dihedrallists +dihedral_hybrid.cpp: // ndihedrallist[] = length of each sub-style list +dihedral_hybrid.cpp: // realloc sub-style dihedrallist if necessary +dihedral_hybrid.cpp: // load sub-style dihedrallist with 5 values from original dihedrallist +dihedral_hybrid.cpp: // call each sub-style's compute function +dihedral_hybrid.cpp: // set neighbor->dihedrallist to sub-style dihedrallist before call +dihedral_hybrid.cpp: // accumulate sub-style global/peratom energy/virial in hybrid +dihedral_hybrid.cpp: // restore ptrs to original dihedrallist +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- */ +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- +dihedral_hybrid.cpp:------------------------------------------------------------------------- */ +dihedral_hybrid.cpp: // delete old lists, since cannot just change settings +dihedral_hybrid.cpp: // count sub-styles by skipping numeric args +dihedral_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric word +dihedral_hybrid.cpp: // need a better way to skip these exceptions +dihedral_hybrid.cpp: // allocate list of sub-styles +dihedral_hybrid.cpp: // allocate each sub-style and call its settings() with subset of args +dihedral_hybrid.cpp: // allocate uses suffix, but don't store suffix version in keywords, +dihedral_hybrid.cpp: // else syntax in coeff() will not match +dihedral_hybrid.cpp: // define subset of args for a sub-style by skipping numeric args +dihedral_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric +dihedral_hybrid.cpp: // need a better way to skip these exceptions +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- +dihedral_hybrid.cpp:---------------------------------------------------------------------- */ +dihedral_hybrid.cpp: // 2nd arg = dihedral sub-style name +dihedral_hybrid.cpp: // allow for "none" or "skip" as valid sub-style name +dihedral_hybrid.cpp: // move 1st arg to 2nd arg +dihedral_hybrid.cpp: // just copy ptrs, since arg[] points into original input line +dihedral_hybrid.cpp: // invoke sub-style coeff() starting with 1st arg +dihedral_hybrid.cpp: // set setflag and which type maps to which sub-style +dihedral_hybrid.cpp: // if sub-style is skip: auxiliary class2 setting in data file so ignore +dihedral_hybrid.cpp: // if sub-style is none and not skip: set hybrid setflag, wipe out map +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- */ +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- +dihedral_hybrid.cpp:------------------------------------------------------------------------- */ +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- +dihedral_hybrid.cpp:------------------------------------------------------------------------- */ +dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- +dihedral_hybrid.cpp:------------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- +dihedral_zero.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dihedral_zero.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dihedral_zero.cpp:------------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- +dihedral_zero.cpp:------------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- +dihedral_zero.cpp:------------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- +dihedral_zero.cpp:------------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- +dihedral_zero.cpp:------------------------------------------------------------------------- */ +dihedral_zero.cpp:/* ---------------------------------------------------------------------- +dihedral_zero.cpp:------------------------------------------------------------------------- */ +displace_atoms.cpp:/* ---------------------------------------------------------------------- +displace_atoms.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +displace_atoms.cpp: http://lammps.sandia.gov, Sandia National Laboratories +displace_atoms.cpp:------------------------------------------------------------------------- */ +displace_atoms.cpp:/* ---------------------------------------------------------------------- */ +displace_atoms.cpp:/* ---------------------------------------------------------------------- */ +displace_atoms.cpp:/* ---------------------------------------------------------------------- */ +displace_atoms.cpp: // group and style +displace_atoms.cpp: // set option defaults +displace_atoms.cpp: // read options from end of input line +displace_atoms.cpp: // setup scaling +displace_atoms.cpp: // move atoms by 3-vector or specified variable(s) +displace_atoms.cpp: // move atoms in ramped fashion +displace_atoms.cpp: fraction = (x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); +displace_atoms.cpp: // move atoms randomly +displace_atoms.cpp: // makes atom result independent of what proc owns it via random->reset() +displace_atoms.cpp: // rotate atoms by right-hand rule by theta around R +displace_atoms.cpp: // P = point = vector = point of rotation +displace_atoms.cpp: // R = vector = axis of rotation +displace_atoms.cpp: // R0 = runit = unit vector for R +displace_atoms.cpp: // D = X - P = vector from P to X +displace_atoms.cpp: // C = (D dot R0) R0 = projection of atom coord onto R line +displace_atoms.cpp: // A = D - C = vector from R line to X +displace_atoms.cpp: // B = R0 cross A = vector perp to A in plane of rotation +displace_atoms.cpp: // A,B define plane of circular rotation around R line +displace_atoms.cpp: // X = P + C + A cos(theta) + B sin(theta) +displace_atoms.cpp: runit[0] = axis[0]/len; +displace_atoms.cpp: runit[1] = axis[1]/len; +displace_atoms.cpp: runit[2] = axis[2]/len; +displace_atoms.cpp: double angle = MY_PI*theta/180.0; +displace_atoms.cpp: // flags for additional orientation info stored by some atom styles +displace_atoms.cpp: // AtomVec pointers to retrieve per-atom storage of extra quantities +displace_atoms.cpp: // theta for lines +displace_atoms.cpp: // quats for ellipsoids, tris, and bodies +displace_atoms.cpp: // move atoms back inside simulation box and to new processors +displace_atoms.cpp: // use remap() instead of pbc() in case atoms moved a long distance +displace_atoms.cpp: // use irregular() in case atoms moved a long distance +displace_atoms.cpp: // check if any atoms were lost +displace_atoms.cpp:/* ---------------------------------------------------------------------- +displace_atoms.cpp:------------------------------------------------------------------------- */ +displace_atoms.cpp:/* ---------------------------------------------------------------------- +displace_atoms.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +domain.cpp: http://lammps.sandia.gov, Sandia National Laboratories +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:enum{NO_REMAP,X_REMAP,V_REMAP}; // same as fix_deform.cpp +domain.cpp:enum{IGNORE,WARN,ERROR}; // same as thermo.cpp +domain.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- */ +domain.cpp: // set box_change flags if box size/shape/sub-domains ever change +domain.cpp: // due to shrink-wrapping or fixes that change box size/shape/sub-domains +domain.cpp: // check for fix deform +domain.cpp: // region inits +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: assumes boxlo/hi and triclinic tilts are already set +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp: // error checks for orthogonal and triclinic domains +domain.cpp: // error check or warning on triclinic tilt factors +domain.cpp: if ((fabs(xy/(boxhi[0]-boxlo[0])) > 0.5 && xperiodic) || +domain.cpp: (fabs(xz/(boxhi[0]-boxlo[0])) > 0.5 && xperiodic) || +domain.cpp: (fabs(yz/(boxhi[1]-boxlo[1])) > 0.5 && yperiodic)) { +domain.cpp: // set small based on box size and SMALL +domain.cpp: // this works for any unit system +domain.cpp: // if expandflag, adjust box lo/hi for shrink-wrapped dims +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: assumes boxlo/hi and triclinic tilts are already set +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp: h_inv[0] = 1.0/h[0]; +domain.cpp: h_inv[1] = 1.0/h[1]; +domain.cpp: h_inv[2] = 1.0/h[2]; +domain.cpp: h_inv[3] = -h[3] / (h[1]*h[2]); +domain.cpp: h_inv[4] = (h[3]*h[5] - h[1]*h[4]) / (h[0]*h[1]*h[2]); +domain.cpp: h_inv[5] = -h[5] / (h[0]*h[1]); +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: if shrink-wrapped, determine atom extent and reset boxlo/hi +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp: // perform shrink-wrapping +domain.cpp: // compute extent of atoms on this proc +domain.cpp: // for triclinic, this is done in lamda space +domain.cpp: // compute extent across all procs +domain.cpp: // flip sign of MIN to do it in one Allreduce MAX +domain.cpp: // for triclinic, convert back to box coords before changing box +domain.cpp: // in shrink-wrapped dims, set box by atom extent +domain.cpp: // if minimum set, enforce min box size settings +domain.cpp: // for triclinic, convert lamda extent to box coords, then set box lo/hi +domain.cpp: // decided NOT to do the next comment - don't want to sneakily change tilt +domain.cpp: // for triclinic, adjust tilt factors if 2nd dim is shrink-wrapped, +domain.cpp: // so that displacement in 1st dim stays the same +domain.cpp: //xy *= (boxhi[1]-boxlo[1]) / yprd; +domain.cpp: //xz *= (boxhi[2]-boxlo[2]) / xprd; +domain.cpp: //yz *= (boxhi[2]-boxlo[2]) / yprd; +domain.cpp: // reset box whether shrink-wrapping or not +domain.cpp: // if shrink-wrapped & kspace is defined (i.e. using MSM), call setup() +domain.cpp: // also call init() (to test for compatibility) ? +domain.cpp: //force->kspace->init(); +domain.cpp: // if shrink-wrapped & triclinic, re-convert to lamda coords for new box +domain.cpp: // re-invoke pbc() b/c x2lamda result can be outside [0,1] due to roundoff +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: increment/decrement in wrap-around fashion +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp: // verify owned atoms have valid numerical coords +domain.cpp: // may not if computed pairwise force between 2 atoms at same location +domain.cpp: coord = &x[0][0]; // note: x is always initialized to at least one element. +domain.cpp: // setup for PBC checks +domain.cpp: // apply PBC to each owned atom +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp: // only need to check if system is molecular and some dimension is periodic +domain.cpp: // if running verlet/split, don't check on KSpace partition since +domain.cpp: // it has no ghost atoms and thus bond partners won't exist +domain.cpp: if (strncmp(update->integrate_style,"verlet/split",12) == 0 && +domain.cpp: // communicate unwrapped position of owned atoms to ghost atoms +domain.cpp: // compute unwrapped extent of each bond +domain.cpp: // flag if any bond component is longer than 1/2 of periodic box length +domain.cpp: // flag if any bond component is longer than non-periodic box length +domain.cpp: // which means image flags in that dimension were different +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp: // only need to check if system is molecular and some dimension is periodic +domain.cpp: // if running verlet/split, don't check on KSpace partition since +domain.cpp: // it has no ghost atoms and thus bond partners won't exist +domain.cpp: if (strncmp(update->integrate_style,"verlet/split",12) == 0 && +domain.cpp: // maxbondall = longest current bond length +domain.cpp: // if periodic box dim is tiny (less than 2 * bond-length), +domain.cpp: // minimum_image() itself may compute bad bond lengths +domain.cpp: // in this case, image_check() should warn, +domain.cpp: // assuming 2 atoms have consistent image flags +domain.cpp: // maxdelta = furthest apart 2 atoms in a bonded interaction can be +domain.cpp: // include BONDSTRETCH factor to account for dynamics +domain.cpp: // warn if maxdelta > than half any periodic box length +domain.cpp: // since atoms in the interaction could rotate into that dimension +domain.cpp: "Bond/angle/dihedral extent > half of periodic box length"); +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: use 1/2 of box size as test +domain.cpp: for triclinic, also add/subtract tilt factors in other dims as needed +domain.cpp: b/c while could iterate forever +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: use 1/2 of box size as test +domain.cpp: for triclinic, also add/subtract tilt factors in other dims as needed +domain.cpp: b/c while could iterate forever +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: use 1/2 of box size as test +domain.cpp: for triclinic, also add/subtract tilt factors in other dims as needed +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: for triclinic, add/subtract tilt factors in other dims as needed +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: increment/decrement in wrap-around fashion +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp: // iterative form +domain.cpp: // if (xperiodic) { +domain.cpp: // while (coordnew[0]-coordold[0] > half[0]) coordnew[0] -= period[0]; +domain.cpp: // while (coordold[0]-coordnew[0] > half[0]) coordnew[0] += period[0]; +domain.cpp: // } +domain.cpp: n = static_cast ((coordnew[0]-coordold[0])/period[0]); +domain.cpp: n = static_cast ((coordold[0]-coordnew[0])/period[0]); +domain.cpp: n = static_cast ((coordnew[1]-coordold[1])/period[1]); +domain.cpp: n = static_cast ((coordold[1]-coordnew[1])/period[1]); +domain.cpp: n = static_cast ((coordnew[2]-coordold[2])/period[2]); +domain.cpp: n = static_cast ((coordold[2]-coordnew[2])/period[2]); +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: C' = C + pB + nA (C shifted by B and/or A) +domain.cpp: so that x_unwrap for each atom is same before/after +domain.cpp: this is b/c the xy flip dramatically changes which tiled image of +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp: // box and subbox bounds for orthogonal vs triclinic +domain.cpp: // check if atom did not return 1 only b/c it was +domain.cpp: // outside a shrink-wrapped boundary +domain.cpp: // newcoord = coords pushed back to be on shrink-wrapped boundary +domain.cpp: // newcoord is a copy, so caller's x[] is not affected +domain.cpp: // re-test for newcoord inside my sub-domain +domain.cpp: // use <= test for upper-boundary since may have just put atom at boxhi +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp: // extend Region list if necessary +domain.cpp: // create the Region +domain.cpp: sprintf(estyle,"%s/%s",arg[1],lmp->suffix); +domain.cpp: sprintf(estyle,"%s/%s",arg[1],lmp->suffix2); +domain.cpp: // initialize any region variables via init() +domain.cpp: // in case region is used between runs, e.g. to print a variable +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: convert 8 lamda corner pts of lo/hi box to box coords +domain.cpp: return bboxlo/hi = bounding box around 8 corner pts in box coords +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp:------------------------------------------------------------------------- */ +domain.cpp:/* ---------------------------------------------------------------------- +domain.cpp: compute 8 corner pts of any triclinic box with lo/hi in lamda coords +domain.cpp:------------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- +dump_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dump_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dump_atom.cpp:------------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp: // format = copy of default or user-specified line format +dump_atom.cpp: // default depends on image flags +dump_atom.cpp: // setup boundary string +dump_atom.cpp: // setup column string +dump_atom.cpp: // setup function ptrs +dump_atom.cpp: // open single file, one time only +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp: double invxprd = 1.0/domain->xprd; +dump_atom.cpp: double invyprd = 1.0/domain->yprd; +dump_atom.cpp: double invzprd = 1.0/domain->zprd; +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp: double invxprd = 1.0/domain->xprd; +dump_atom.cpp: double invyprd = 1.0/domain->yprd; +dump_atom.cpp: double invzprd = 1.0/domain->zprd; +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- +dump_atom.cpp:------------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_atom.cpp:/* ---------------------------------------------------------------------- */ +dump_cfg.cpp:/* ---------------------------------------------------------------------- +dump_cfg.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dump_cfg.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dump_cfg.cpp:------------------------------------------------------------------------- */ +dump_cfg.cpp:/* ---------------------------------------------------------------------- +dump_cfg.cpp:------------------------------------------------------------------------- */ +dump_cfg.cpp:enum{INT,DOUBLE,STRING,BIGINT}; // same as in DumpCustom +dump_cfg.cpp:/* ---------------------------------------------------------------------- */ +dump_cfg.cpp: // use earg instead of original arg since it includes expanded wildcards +dump_cfg.cpp: // earg was created by parent DumpCustom +dump_cfg.cpp: // setup auxiliary property name strings +dump_cfg.cpp: // convert 'X_ID[m]' (X=c,f,v) to 'X_ID_m' +dump_cfg.cpp:/* ---------------------------------------------------------------------- */ +dump_cfg.cpp:/* ---------------------------------------------------------------------- */ +dump_cfg.cpp: // setup function ptrs +dump_cfg.cpp:/* ---------------------------------------------------------------------- */ +dump_cfg.cpp: // set scale factor used by AtomEye for CFG viz +dump_cfg.cpp: // default = 1.0 +dump_cfg.cpp: // for peridynamics, set to pre-computed PD scale factor +dump_cfg.cpp: // so PD particles mimic C atoms +dump_cfg.cpp: // for unwrapped coords, set to UNWRAPEXPAND (10.0) +dump_cfg.cpp: // so molecules are not split across periodic box boundaries +dump_cfg.cpp:/* ---------------------------------------------------------------------- +dump_cfg.cpp:------------------------------------------------------------------------- */ +dump_cfg.cpp: unwrap_coord = (mybuf[m] - 0.5)/UNWRAPEXPAND + 0.5; +dump_cfg.cpp:/* ---------------------------------------------------------------------- */ +dump_cfg.cpp:/* ---------------------------------------------------------------------- */ +dump_cfg.cpp:/* ---------------------------------------------------------------------- */ +dump_cfg.cpp: unwrap_coord = (mybuf[m] - 0.5)/UNWRAPEXPAND + 0.5; +dump.cpp:/* ---------------------------------------------------------------------- +dump.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dump.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dump.cpp:------------------------------------------------------------------------- */ +dump.cpp:// allocate space for static class variable +dump.cpp:/* ---------------------------------------------------------------------- */ +dump.cpp: // parse filename for special syntax +dump.cpp: // if contains '%', write one file per proc and replace % with proc-ID +dump.cpp: // if contains '*', write one file per timestep and replace * with timestep +dump.cpp: // check file suffixes +dump.cpp: // if ends in .bin = binary file +dump.cpp: // else if ends in .gz = gzipped text file +dump.cpp: // else ASCII text file +dump.cpp:/* ---------------------------------------------------------------------- */ +dump.cpp: // format_column_user is deallocated by child classes that use it +dump.cpp: // XTC style sets fp to NULL since it closes file in its destructor +dump.cpp:/* ---------------------------------------------------------------------- */ +dump.cpp: // set reorderflag = 1 if can simply reorder local atoms rather than sort +dump.cpp: // criteria: sorting by ID, atom IDs are consecutive from 1 to Natoms +dump.cpp: // min/max IDs of group match size of group +dump.cpp: // compute ntotal_reorder, nme_reorder, idlo/idhi to test against later +dump.cpp: idlo = static_cast (range*me/nprocs + minall); +dump.cpp: tagint idhi = static_cast (range*(me+1)/nprocs + minall); +dump.cpp: tagint lom1 = static_cast ((idlo-1-minall)/range * nprocs); +dump.cpp: tagint lo = static_cast ((idlo-minall)/range * nprocs); +dump.cpp: tagint him1 = static_cast ((idhi-1-minall)/range * nprocs); +dump.cpp: tagint hi = static_cast ((idhi-minall)/range * nprocs); +dump.cpp: // preallocation for PBC copies if requested +dump.cpp:/* ---------------------------------------------------------------------- */ +dump.cpp:/* ---------------------------------------------------------------------- */ +dump.cpp: // if file per timestep, open new file +dump.cpp: // simulation box bounds +dump.cpp: // nme = # of dump lines this proc contributes to dump +dump.cpp: // ntotal = total # of dump lines in snapshot +dump.cpp: // nmax = max # of dump lines on any proc +dump.cpp: // write timestep header +dump.cpp: // for multiproc, +dump.cpp: // nheader = # of lines in this file via Allreduce on clustercomm +dump.cpp: // insure buf is sized for packing and communicating +dump.cpp: // use nmax to insure filewriter proc can receive info from others +dump.cpp: // limit nmax*size_one to int since used as arg in MPI calls +dump.cpp: // insure ids buffer is sized for sorting +dump.cpp: // apply PBC on copy of x,v,image if requested +dump.cpp: // pack my data into buf +dump.cpp: // if sorting on IDs also request ID list from pack() +dump.cpp: // sort buf as needed +dump.cpp: // if buffering, convert doubles into strings +dump.cpp: // insure sbuf is sized for communicating +dump.cpp: // cannot buffer if output is to binary file +dump.cpp: // filewriter = 1 = this proc writes to file +dump.cpp: // ping each proc in my cluster, receive its data, write data to file +dump.cpp: // else wait for ping from fileproc, send my data to fileproc +dump.cpp: // comm and output buf of doubles +dump.cpp: nlines /= size_one; +dump.cpp: // comm and output sbuf = one big string of formatted values per proc +dump.cpp: // restore original x,v,image unaltered by PBC +dump.cpp: // if file per timestep, close file if I am filewriter +dump.cpp:/* ---------------------------------------------------------------------- +dump.cpp:------------------------------------------------------------------------- */ +dump.cpp: // single file, already opened, so just return +dump.cpp: // if one file per timestep, replace '*' with current timestep +dump.cpp: // each proc with filewriter = 1 opens a file +dump.cpp: // delete string with timestep replaced +dump.cpp:/* ---------------------------------------------------------------------- +dump.cpp:------------------------------------------------------------------------- */ +dump.cpp: // if single proc, swap ptrs to buf,ids <-> bufsort,idsort +dump.cpp: // if multiple procs, exchange datums between procs via irregular +dump.cpp: // grow proclist if necessary +dump.cpp: // proclist[i] = which proc Ith datum will be sent to +dump.cpp: // use 0.5 instead of EPSILON since atom IDs are integers +dump.cpp: // if use EPSILON, it can be lost if 64-bit maxall-minall is too big +dump.cpp: // then iproc == nprocs for largest ID, causing irregular to crash +dump.cpp: iproc = static_cast ((ids[i]-minall)/range * nprocs); +dump.cpp: // proc assignment is inverted if sortorder = DESCEND +dump.cpp: iproc = static_cast ((value-minall)/range * nprocs); +dump.cpp: // create comm plan, grow recv bufs if necessary, +dump.cpp: // exchange datums, destroy plan +dump.cpp: // if sorting on atom IDs, exchange IDs also +dump.cpp: // if reorder flag is set & total/per-proc counts match pre-computed values, +dump.cpp: // then create index directly from idsort +dump.cpp: // else quicksort of index using IDs or buf column as comparator +dump.cpp: // reset buf size and maxbuf to largest of any post-sort nme values +dump.cpp: // this insures proc 0 can receive everyone's info +dump.cpp: // copy data from bufsort to buf using index +dump.cpp:/* ---------------------------------------------------------------------- +dump.cpp:------------------------------------------------------------------------- */ +dump.cpp:/* ---------------------------------------------------------------------- +dump.cpp:------------------------------------------------------------------------- */ +dump.cpp:/* ---------------------------------------------------------------------- +dump.cpp:------------------------------------------------------------------------- */ +dump.cpp:/* ---------------------------------------------------------------------- +dump.cpp:------------------------------------------------------------------------- */ +dump.cpp: multiproc = nprocs/nper; +dump.cpp: fileproc = me/nper * nper; +dump.cpp: int icluster = fileproc/nper; +dump.cpp: // pass format none to child classes which may use it +dump.cpp: // not an error if they don't +dump.cpp: } else { // pass other format options to child classes +dump.cpp: int icluster = static_cast ((bigint) me * nfile/nprocs); +dump.cpp: fileproc = static_cast ((bigint) icluster * nprocs/nfile); +dump.cpp: int fcluster = static_cast ((bigint) fileproc * nfile/nprocs); +dump.cpp: static_cast ((bigint) (icluster+1) * nprocs/nfile); +dump.cpp: fcluster = static_cast ((bigint) fileprocnext * nfile/nprocs); +dump.cpp:/* ---------------------------------------------------------------------- +dump.cpp:------------------------------------------------------------------------- */ +dump.cpp:/* ---------------------------------------------------------------------- +dump.cpp:------------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- +dump_custom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dump_custom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dump_custom.cpp:------------------------------------------------------------------------- */ +dump_custom.cpp:// customize by adding keyword +dump_custom.cpp:// also customize compute_atom_property.cpp +dump_custom.cpp:enum{INT,DOUBLE,STRING,BIGINT}; // same as in DumpCFG +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: // expand args if any have wildcard character "*" +dump_custom.cpp: // ok to include trailing optional args, +dump_custom.cpp: // so long as they do not have "*" between square brackets +dump_custom.cpp: // nfield may be shrunk below if extra optional args exist +dump_custom.cpp: // allocate field vectors +dump_custom.cpp: // computes, fixes, variables which the dump accesses +dump_custom.cpp: // process attributes +dump_custom.cpp: // ioptional = start of additional optional args in expanded args +dump_custom.cpp: // noptional = # of optional args +dump_custom.cpp: // reset nfield to subtract off optional args +dump_custom.cpp: // reset ioptional to what it would be in original arg list +dump_custom.cpp: // only dump image and dump movie styles process optional args, +dump_custom.cpp: // they do not use expanded earg list +dump_custom.cpp: // atom selection arrays +dump_custom.cpp: // default element name for all types = C +dump_custom.cpp: // setup format strings +dump_custom.cpp: // setup column string +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: // if wildcard expansion occurred, free earg memory from expand_args() +dump_custom.cpp: // could not do in constructor, b/c some derived classes process earg +dump_custom.cpp: // check nfix in case all fixes have already been deleted +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: // format = copy of default or user-specified line format +dump_custom.cpp: // tokenize the format string and add space at end of each format element +dump_custom.cpp: // if user-specified int/float format exists, use it instead +dump_custom.cpp: // if user-specified column format exists, use it instead +dump_custom.cpp: // lo priority = line, medium priority = int/float, hi priority = column +dump_custom.cpp: // setup boundary string +dump_custom.cpp: // setup function ptrs +dump_custom.cpp: // find current ptr for each compute,fix,variable +dump_custom.cpp: // check that fix frequency is acceptable +dump_custom.cpp: // set index and check validity of region +dump_custom.cpp: // open single file, one time only +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: // grow choose and variable vbuf arrays if needed +dump_custom.cpp: // invoke Computes for per-atom quantities +dump_custom.cpp: // only if within a run or minimize +dump_custom.cpp: // else require that computes are current +dump_custom.cpp: // this prevents a compute from being invoked by the WriteDump class +dump_custom.cpp: // evaluate atom-style Variables for per-atom quantities +dump_custom.cpp: // choose all local atoms for output +dump_custom.cpp: // un-choose if not in group +dump_custom.cpp: // un-choose if not in region +dump_custom.cpp: // un-choose if any threshold criterion isn't met +dump_custom.cpp: // customize by adding to if statement +dump_custom.cpp: double invxprd = 1.0/domain->xprd; +dump_custom.cpp: double invyprd = 1.0/domain->yprd; +dump_custom.cpp: double invzprd = 1.0/domain->zprd; +dump_custom.cpp: double invxprd = 1.0/domain->xprd; +dump_custom.cpp: double invyprd = 1.0/domain->yprd; +dump_custom.cpp: double invzprd = 1.0/domain->zprd; +dump_custom.cpp: } else if (thresh_array[ithresh] == MUMAG) {//Magnetic properties +dump_custom.cpp: // unselect atoms that don't meet threshold criterion +dump_custom.cpp: // compare to single value or values stored in threshfix +dump_custom.cpp: // copy ptr attribute into thresh_fix if this is first comparison +dump_custom.cpp: // update values stored in threshfix +dump_custom.cpp: // compress choose flags into clist +dump_custom.cpp: // nchoose = # of selected atoms +dump_custom.cpp: // clist[i] = local index of each selected atom +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- +dump_custom.cpp:------------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: // customize by adding to if statement +dump_custom.cpp: } else if (strcmp(arg[iarg],"mumag") == 0) {//Magnetic properties +dump_custom.cpp: // compute value = c_ID +dump_custom.cpp: // if no trailing [], then arg is set to 0, else arg is int between [] +dump_custom.cpp: // fix value = f_ID +dump_custom.cpp: // if no trailing [], then arg is set to 0, else arg is between [] +dump_custom.cpp: // variable value = v_name +dump_custom.cpp: // custom per-atom floating point value = d_ID +dump_custom.cpp: // custom per-atom integer value = i_ID +dump_custom.cpp:/* ---------------------------------------------------------------------- +dump_custom.cpp:------------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- +dump_custom.cpp:------------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- +dump_custom.cpp:------------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- +dump_custom.cpp:------------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: // just clear format_column_user allocated by this dump child class +dump_custom.cpp: // replace "d" in format_int_user with bigint format specifier +dump_custom.cpp: // use of &str[1] removes leading '%' from BIGINT_FORMAT string +dump_custom.cpp: // grow threshold arrays +dump_custom.cpp: // set attribute type of threshold +dump_custom.cpp: // customize by adding to if statement +dump_custom.cpp: //Magnetic quantities +dump_custom.cpp: // compute value = c_ID +dump_custom.cpp: // if no trailing [], then arg is set to 0, else arg is between [] +dump_custom.cpp: // must grow field2index and argindex arrays, since access is beyond nfield +dump_custom.cpp: // fix value = f_ID +dump_custom.cpp: // if no trailing [], then arg is set to 0, else arg is between [] +dump_custom.cpp: // must grow field2index and argindex arrays, since access is beyond nfield +dump_custom.cpp: // variable value = v_ID +dump_custom.cpp: // must grow field2index and argindex arrays, since access is beyond nfield +dump_custom.cpp: // custom per atom floating point value = d_ID +dump_custom.cpp: // must grow field2index and argindex arrays, since access is beyond nfield +dump_custom.cpp: // custom per atom integer value = i_ID +dump_custom.cpp: // must grow field2index and argindex arrays, since access is beyond nfield +dump_custom.cpp: // set operation type of threshold +dump_custom.cpp: // set threshold value as number or special LAST keyword +dump_custom.cpp: // create FixStore to hold LAST values, should work with restart +dump_custom.cpp: // id = dump-ID + nthreshlast + DUMP_STORE, fix group = dump group +dump_custom.cpp:/* ---------------------------------------------------------------------- +dump_custom.cpp:------------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- +dump_custom.cpp:------------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: if (flag_custom[index] == 0) { // integer +dump_custom.cpp: } else if (flag_custom[index] == 1) { // double +dump_custom.cpp:/* ---------------------------------------------------------------------- +dump_custom.cpp:------------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: double invxprd = 1.0/domain->xprd; +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: double invyprd = 1.0/domain->yprd; +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: double invzprd = 1.0/domain->zprd; +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: double invxprd = 1.0/domain->xprd; +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: double invyprd = 1.0/domain->yprd; +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp: double invzprd = 1.0/domain->zprd; +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp://Magnetic quantities +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_custom.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp:/* ---------------------------------------------------------------------- +dump_dcd.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dump_dcd.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dump_dcd.cpp:------------------------------------------------------------------------- */ +dump_dcd.cpp:/* ---------------------------------------------------------------------- +dump_dcd.cpp:------------------------------------------------------------------------- */ +dump_dcd.cpp:// necessary to set SEEK params b/c MPI-2 messes with these settings +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp: // allocate global array for atom coords +dump_dcd.cpp: if (n > static_cast(MAXSMALLINT/3/sizeof(float))) +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp: // check that dump frequency has not changed and is not a variable +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp: // first time, write header for entire file +dump_dcd.cpp: // dim[] = size and angle cosines of orthogonal or triclinic box +dump_dcd.cpp: // dim[0] = a = length of unit cell vector along x-axis +dump_dcd.cpp: // dim[1] = gamma = cosine of angle between a and b +dump_dcd.cpp: // dim[2] = b = length of unit cell vector in xy-plane +dump_dcd.cpp: // dim[3] = beta = cosine of angle between a and c +dump_dcd.cpp: // dim[4] = alpha = cosine of angle between b and c +dump_dcd.cpp: // dim[5] = c = length of final unit cell vector +dump_dcd.cpp: // 48 = 6 doubles +dump_dcd.cpp: dim[4] = (h[5]*h[4] + h[1]*h[3]) / blen/clen; // alpha +dump_dcd.cpp: dim[3] = (h[0]*h[4]) / alen/clen; // beta +dump_dcd.cpp: dim[1] = (h[0]*h[5]) / alen/blen; // gamma +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp: // copy buf atom coords into 3 global arrays +dump_dcd.cpp: // if last chunk of atoms in this snapshot, write global arrays to file +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp:/* ---------------------------------------------------------------------- +dump_dcd.cpp:------------------------------------------------------------------------- */ +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp: // write coords +dump_dcd.cpp: // update NFILE and NSTEP fields in DCD header +dump_dcd.cpp:/* ---------------------------------------------------------------------- */ +dump_dcd.cpp: fwrite_int32(fp,0); // NFILE = # of snapshots in file +dump_dcd.cpp: fwrite_int32(fp,ntimestep); // START = timestep of first snapshot +dump_dcd.cpp: fwrite_int32(fp,nevery_save); // SKIP = interval between snapshots +dump_dcd.cpp: fwrite_int32(fp,ntimestep); // NSTEP = timestep of last snapshot +dump_dcd.cpp: fwrite_int32(fp,0); // NAMD writes NSTEP or ISTART +dump_dcd.cpp: fwrite_int32(fp,24); // pretend to be Charmm version 24 +dump_dcd.cpp: fwrite_int32(fp,natoms); // number of atoms in each snapshot +dump_image.cpp:/* ---------------------------------------------------------------------- +dump_image.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dump_image.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dump_image.cpp:------------------------------------------------------------------------- */ +dump_image.cpp:enum{SPHERE,LINE,TRI}; // also in some Body and Fix child classes +dump_image.cpp:/* ---------------------------------------------------------------------- */ +dump_image.cpp: // force binary flag on to avoid corrupted output on Windows +dump_image.cpp: // set filetype based on filename suffix +dump_image.cpp: // atom color,diameter settings +dump_image.cpp: // create Image class with single colormap for atoms +dump_image.cpp: // change defaults for 2d +dump_image.cpp: // set defaults for optional args +dump_image.cpp: // parse optional args +dump_image.cpp: theta *= MY_PI/180.0; +dump_image.cpp: phi *= MY_PI/180.0; +dump_image.cpp: // error checks and setup for lineflag, triflag, bodyflag, fixflag +dump_image.cpp: // allocate image buffer now that image size is known +dump_image.cpp: // communication neede for bonds colored by atoms +dump_image.cpp: // additional defaults for dump_modify options +dump_image.cpp: // viewflag = DYNAMIC if any view parameter is dynamic +dump_image.cpp: // local data +dump_image.cpp:/* ---------------------------------------------------------------------- */ +dump_image.cpp:/* ---------------------------------------------------------------------- */ +dump_image.cpp: // check variables +dump_image.cpp: // set up type -> element mapping +dump_image.cpp:/* ---------------------------------------------------------------------- */ +dump_image.cpp: // open new file +dump_image.cpp: // reset box center and view parameters if dynamic +dump_image.cpp: // nme = # of atoms this proc will contribute to dump +dump_image.cpp: // pack buf with color & diameter +dump_image.cpp: // set minmax color range if using dynamic atom color map +dump_image.cpp: if (flag) error->all(FLERR,"Invalid color map min/max values"); +dump_image.cpp: // create image on each proc, then merge them +dump_image.cpp: // write image file +dump_image.cpp:/* ---------------------------------------------------------------------- +dump_image.cpp:------------------------------------------------------------------------- */ +dump_image.cpp:/* ---------------------------------------------------------------------- +dump_image.cpp:------------------------------------------------------------------------- */ +dump_image.cpp:/* ---------------------------------------------------------------------- +dump_image.cpp:------------------------------------------------------------------------- */ +dump_image.cpp: // view direction theta and phi +dump_image.cpp: theta *= MY_PI/180.0; +dump_image.cpp: phi *= MY_PI/180.0; +dump_image.cpp: // up vector +dump_image.cpp: // zoom and perspective +dump_image.cpp: // remainder of view setup is internal to Image class +dump_image.cpp:/* ---------------------------------------------------------------------- +dump_image.cpp:------------------------------------------------------------------------- */ +dump_image.cpp: // render my atoms +dump_image.cpp: // do not draw if line,tri,body keywords enabled and atom is one of those +dump_image.cpp: // render atoms that are lines +dump_image.cpp: // render atoms that are triangles +dump_image.cpp: // tstyle = 1 for tri only, 2 for edges only, 3 for both +dump_image.cpp: // render atoms that are bodies +dump_image.cpp: // render bonds for my atoms +dump_image.cpp: // both atoms in bond must be selected for bond to be rendered +dump_image.cpp: // if newton_bond is off, only render bond once +dump_image.cpp: // render bond in 2 pieces if crosses periodic boundary +dump_image.cpp: // if bond is deleted (type = 0), do not render +dump_image.cpp: // if bond is turned off (type < 0), still render +dump_image.cpp: // communicate choose flag for ghost atoms to know if they are selected +dump_image.cpp: // if bcolor/bdiam = ATOM, setup bufcopy to comm atom color/diam attributes +dump_image.cpp: // draw cylinder in 2 pieces if bcolor = ATOM +dump_image.cpp: // or bond crosses periodic boundary +dump_image.cpp: // render objects provided by a fix +dump_image.cpp: // no fix draws spheres yet +dump_image.cpp: // render outline of my sub-box, orthogonal or triclinic +dump_image.cpp: // render outline of simulation box, orthogonal or triclinic +dump_image.cpp: // render XYZ axes in red/green/blue +dump_image.cpp: // offset by 10% of box size and scale by axeslen +dump_image.cpp:/* ---------------------------------------------------------------------- */ +dump_image.cpp:/* ---------------------------------------------------------------------- */ +dump_image.cpp:/* ---------------------------------------------------------------------- */ +dump_image.cpp: // ptrs = list of ncount colornames separated by '/' +dump_image.cpp: while ((nextptr = strchr(ptr,'/'))) { +dump_image.cpp: ptrs[ncount++] = strtok(arg[2],"/"); +dump_image.cpp: while ((ptrs[ncount++] = strtok(NULL,"/"))); +dump_image.cpp: // assign each of ncount colors in round-robin fashion to types +dump_image.cpp: // ptrs = list of ncount colornames separated by '/' +dump_image.cpp: while ((nextptr = strchr(ptr,'/'))) { +dump_image.cpp: ptrs[ncount++] = strtok(arg[2],"/"); +dump_image.cpp: while ((ptrs[ncount++] = strtok(NULL,"/"))); +dump_image.cpp: // assign each of ncount colors in round-robin fashion to types +dump_local.cpp:/* ---------------------------------------------------------------------- +dump_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dump_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dump_local.cpp:------------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp: // expand args if any have wildcard character "*" +dump_local.cpp: // allocate field vectors +dump_local.cpp: // computes & fixes which the dump accesses +dump_local.cpp: // process attributes +dump_local.cpp: // setup format strings +dump_local.cpp: // setup column string +dump_local.cpp: // setup default label string +dump_local.cpp: // if wildcard expansion occurred, free earg memory from exapnd_args() +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp: // format = copy of default or user-specified line format +dump_local.cpp: // tokenize the format string and add space at end of each format element +dump_local.cpp: // if user-specified int/float format exists, use it instead +dump_local.cpp: // if user-specified column format exists, use it instead +dump_local.cpp: // lo priority = line, medium priority = int/float, hi priority = column +dump_local.cpp: // setup boundary string +dump_local.cpp: // setup function ptrs +dump_local.cpp: // find current ptr for each compute,fix,variable +dump_local.cpp: // check that fix frequency is acceptable +dump_local.cpp: // open single file, one time only +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp: // invoke Computes for local quantities +dump_local.cpp: // only if within a run or minimize +dump_local.cpp: // else require that computes are current +dump_local.cpp: // this prevents a compute from being invoked by the WriteDump class +dump_local.cpp: // nmine = # of local values I contribute +dump_local.cpp: // must be consistent for all input fields +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- +dump_local.cpp:------------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp: // customize by adding to if statement +dump_local.cpp: // compute value = c_ID +dump_local.cpp: // if no trailing [], then arg is set to 0, else arg is int between [] +dump_local.cpp: // fix value = f_ID +dump_local.cpp: // if no trailing [], then arg is set to 0, else arg is between [] +dump_local.cpp:/* ---------------------------------------------------------------------- +dump_local.cpp:------------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- +dump_local.cpp:------------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- +dump_local.cpp:------------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- +dump_local.cpp:------------------------------------------------------------------------- */ +dump_local.cpp:/* ---------------------------------------------------------------------- */ +dump_movie.cpp:/* ---------------------------------------------------------------------- +dump_movie.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dump_movie.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dump_movie.cpp:------------------------------------------------------------------------- */ +dump_movie.cpp:/* ---------------------------------------------------------------------- +dump_movie.cpp:------------------------------------------------------------------------- */ +dump_movie.cpp:/* ---------------------------------------------------------------------- */ +dump_movie.cpp:/* ---------------------------------------------------------------------- */ +dump_movie.cpp:/* ---------------------------------------------------------------------- */ +dump_movie.cpp: // initialize image style circumventing multifile check +dump_movie.cpp:/* ---------------------------------------------------------------------- */ +dump_xyz.cpp:/* ---------------------------------------------------------------------- +dump_xyz.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +dump_xyz.cpp: http://lammps.sandia.gov, Sandia National Laboratories +dump_xyz.cpp:------------------------------------------------------------------------- */ +dump_xyz.cpp:/* ---------------------------------------------------------------------- */ +dump_xyz.cpp:/* ---------------------------------------------------------------------- */ +dump_xyz.cpp:/* ---------------------------------------------------------------------- */ +dump_xyz.cpp: // format = copy of default or user-specified line format +dump_xyz.cpp: // initialize typenames array to be backward compatible by default +dump_xyz.cpp: // a 32-bit int can be maximally 10 digits plus sign +dump_xyz.cpp: // setup function ptr +dump_xyz.cpp: // open single file, one time only +dump_xyz.cpp:/* ---------------------------------------------------------------------- */ +dump_xyz.cpp:/* ---------------------------------------------------------------------- */ +dump_xyz.cpp:/* ---------------------------------------------------------------------- */ +dump_xyz.cpp:/* ---------------------------------------------------------------------- +dump_xyz.cpp:------------------------------------------------------------------------- */ +dump_xyz.cpp:/* ---------------------------------------------------------------------- */ +dump_xyz.cpp:/* ---------------------------------------------------------------------- */ +dump_xyz.cpp:/* ---------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +error.cpp: http://lammps.sandia.gov, Sandia National Laboratories +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +error.cpp:/* ---------------------------------------------------------------------- +error.cpp:------------------------------------------------------------------------- */ +finish.cpp:/* ---------------------------------------------------------------------- +finish.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +finish.cpp: http://lammps.sandia.gov, Sandia National Laboratories +finish.cpp:------------------------------------------------------------------------- */ +finish.cpp:// local function prototypes, code at end of file +finish.cpp:/* ---------------------------------------------------------------------- */ +finish.cpp:/* ---------------------------------------------------------------------- */ +finish.cpp: // recompute natoms in case atoms have been lost +finish.cpp: // choose flavors of statistical output +finish.cpp: // flag determines caller +finish.cpp: // flag = 0 = just loop summary +finish.cpp: // flag = 1 = dynamics or minimization +finish.cpp: // flag = 2 = PRD +finish.cpp: // flag = 3 = TAD +finish.cpp: // flag = 4 = HYPER +finish.cpp: // turn off neighflag for Kspace partition of verlet/split integrator +finish.cpp: strncmp(update->integrate_style,"verlet/split",12) == 0 && +finish.cpp: // loop stats +finish.cpp: // overall loop time +finish.cpp: time_loop = tmp/nprocs; +finish.cpp: cpu_loop = tmp/nprocs; +finish.cpp: if (time_loop > 0.0) cpu_loop = cpu_loop/time_loop*100.0; +finish.cpp: // Gromacs/NAMD-style performance metric for suitable unit settings +finish.cpp: double t_step = ((double) time_loop) / ((double) update->nsteps); +finish.cpp: double step_t = 1.0/t_step; +finish.cpp: double tau_day = 24.0*3600.0 / t_step * update->dt / one_fs; +finish.cpp: const char perf[] = "Performance: %.3f tau/day, %.3f timesteps/s\n"; +finish.cpp: double hrs_ns = t_step / update->dt * 1000000.0 * one_fs / 3600.0; +finish.cpp: double ns_day = 24.0*3600.0 / t_step * update->dt / one_fs/1000000.0; +finish.cpp: "Performance: %.3f ns/day, %.3f hours/ns, %.3f timesteps/s\n"; +finish.cpp: // CPU use on MPI tasks and OpenMP threads +finish.cpp: // avoid division by zero for very short runs +finish.cpp: // get "Other" wall time for later use +finish.cpp: // minimization stats +finish.cpp: // PRD stats +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: if (me == 0) { // XXXX: replica comm, replica output +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: // TAD stats +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: // HYPER stats +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time = tmp/nprocs; +finish.cpp: time,time/time_loop*100.0); +finish.cpp: time,time/time_loop*100.0); +finish.cpp: // further timing breakdowns +finish.cpp: time = tmp/nprocs; +finish.cpp: if (screen) fprintf(screen,fmt,time,time/time_loop*100.0); +finish.cpp: if (logfile) fprintf(logfile,fmt,time,time/time_loop*100.0); +finish.cpp: "\nThread timing breakdown (MPI rank %d):\nTotal threaded time %.4g / %.1f%%\n"; +finish.cpp: // print thread breakdown only with full timer detail +finish.cpp: thr_total /= (double) nthreads; +finish.cpp: fprintf(screen,thr_hdr_fmt,me,thr_total,thr_total/time_loop*100.0); +finish.cpp: fprintf(logfile,thr_hdr_fmt,me,thr_total,thr_total/time_loop*100.0); +finish.cpp: "since GPU/CPU overlap is enabled\n" +finish.cpp: // FFT timing statistics +finish.cpp: // time3d,time1d = total time during run for 3d and 1d FFTs +finish.cpp: // loop on timing() until nsample FFTs require at least 1.0 CPU sec +finish.cpp: // time_kspace may be 0.0 if another partition is doing Kspace +finish.cpp: time3d = nsteps * time3d / nsample; +finish.cpp: time3d = tmp/nprocs; +finish.cpp: time1d = nsteps * time1d / nsample; +finish.cpp: time1d = tmp/nprocs; +finish.cpp: time_kspace = tmp/nprocs; +finish.cpp: if (time_kspace) fraction = time3d/time_kspace*100.0; +finish.cpp: flop3 = nfft*nflops/1.0e9/(time3d/nsteps); +finish.cpp: flop1 = nfft*nflops/1.0e9/(time1d/nsteps); +finish.cpp: // find a non-skip neighbor list containing half pairwise interactions +finish.cpp: // count neighbors in that list for stats purposes +finish.cpp: // allow it to be Kokkos neigh list as well +finish.cpp: // find a non-skip neighbor list containing full pairwise interactions +finish.cpp: // count neighbors in that list for stats purposes +finish.cpp: // allow it to be Kokkos neigh list as well +finish.cpp: fprintf(screen,"Ave neighs/atom = %g\n",nall/atom->natoms); +finish.cpp: fprintf(screen,"Ave special neighs/atom = %g\n", +finish.cpp: nspec_all/atom->natoms); +finish.cpp: fprintf(logfile,"Ave neighs/atom = %g\n",nall/atom->natoms); +finish.cpp: fprintf(logfile,"Ave special neighs/atom = %g\n", +finish.cpp: nspec_all/atom->natoms); +finish.cpp:/* ---------------------------------------------------------------------- */ +finish.cpp: ave = tmp/ntotal; +finish.cpp: else m = static_cast ((data[i]-min)/del * nhisto); +finish.cpp:/* ---------------------------------------------------------------------- */ +finish.cpp: if (time/time_loop < 0.001) // insufficient timer resolution! +finish.cpp: time_cpu = time_cpu / time; +finish.cpp: time = tmp/nprocs; +finish.cpp: time_sq = tmp/nprocs; +finish.cpp: time_cpu = tmp/nprocs*100.0; +finish.cpp: // % variance from the average as measure of load imbalance +finish.cpp: if ((time > 0.001) && ((time_sq/time - time) > 1.0e-10)) +finish.cpp: time_sq = sqrt(time_sq/time - time)*100.0; +finish.cpp: tmp = time/time_loop*100.0; +finish.cpp: time_loop = 100.0/time_loop; +finish.cpp:/* ---------------------------------------------------------------------- */ +finish.cpp: time_avg /= nthreads; +finish.cpp: time_std /= nthreads; +finish.cpp: time_total /= nthreads; +finish.cpp: if ((time_avg > 0.001) && ((time_std/time_avg -time_avg) > 1.0e-10)) +finish.cpp: time_std = sqrt(time_std/time_avg - time_avg)*100.0; +finish.cpp: time_avg/time_total*100.0); +finish.cpp: time_avg/time_total*100.0); +fix_adapt.cpp:/* ---------------------------------------------------------------------- +fix_adapt.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_adapt.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_adapt.cpp:------------------------------------------------------------------------- */ +fix_adapt.cpp:/* ---------------------------------------------------------------------- */ +fix_adapt.cpp: // count # of adaptations +fix_adapt.cpp: // parse keywords +fix_adapt.cpp: // optional keywords +fix_adapt.cpp: // allocate pair style arrays +fix_adapt.cpp: // allocate bond style arrays: +fix_adapt.cpp:/* ---------------------------------------------------------------------- */ +fix_adapt.cpp: // check nfix in case all fixes have already been deleted +fix_adapt.cpp:/* ---------------------------------------------------------------------- */ +fix_adapt.cpp:/* ---------------------------------------------------------------------- +fix_adapt.cpp:------------------------------------------------------------------------- */ +fix_adapt.cpp: // new id = fix-ID + FIX_STORE_ATTRIBUTE +fix_adapt.cpp: // new fix group = group for this fix +fix_adapt.cpp:/* ---------------------------------------------------------------------- */ +fix_adapt.cpp: // allow a dynamic group only if ATOM attribute not used +fix_adapt.cpp: // setup and error checks +fix_adapt.cpp: // if ad->pstyle has trailing sub-style annotation ":N", +fix_adapt.cpp: // strip it for pstyle arg to pair_match() and set nsub = N +fix_adapt.cpp: // this should work for appended suffixes as well +fix_adapt.cpp: strcat(psuffix,"/"); +fix_adapt.cpp: // for pair styles only parameters that are 2-d arrays in atom types or +fix_adapt.cpp: // scalars are supported +fix_adapt.cpp: // if pair hybrid, test that ilo,ihi,jlo,jhi are valid for sub-style +fix_adapt.cpp: strcmp(force->pair_style,"hybrid/overlay") == 0) { +fix_adapt.cpp: strcat(bsuffix,"/"); +fix_adapt.cpp: // for bond styles, use a vector +fix_adapt.cpp: // make copy of original pair/bond array values +fix_adapt.cpp: // fixes that store initial per-atom values +fix_adapt.cpp:/* ---------------------------------------------------------------------- */ +fix_adapt.cpp:/* ---------------------------------------------------------------------- */ +fix_adapt.cpp:/* ---------------------------------------------------------------------- */ +fix_adapt.cpp:/* ---------------------------------------------------------------------- */ +fix_adapt.cpp:/* ---------------------------------------------------------------------- */ +fix_adapt.cpp:/* ---------------------------------------------------------------------- +fix_adapt.cpp:------------------------------------------------------------------------- */ +fix_adapt.cpp: // variable evaluation may invoke computes so wrap with clear/add +fix_adapt.cpp: // set global scalar or type pair array values +fix_adapt.cpp: // set bond type array values: +fix_adapt.cpp: // set kspace scale factor +fix_adapt.cpp: // set per atom values, also make changes for ghost atoms +fix_adapt.cpp: // reset radius from diameter +fix_adapt.cpp: // also scale rmass to new value +fix_adapt.cpp: density = rmass[i] / (4.0*MY_PI/3.0 * +fix_adapt.cpp: rmass[i] = 4.0*MY_PI/3.0 * +fix_adapt.cpp: // re-initialize pair styles if any PAIR settings were changed +fix_adapt.cpp: // ditto for bond styles if any BOND setitings were changes +fix_adapt.cpp: // this resets other coeffs that may depend on changed values, +fix_adapt.cpp: // and also offset and tail corrections +fix_adapt.cpp: // reset KSpace charges if charges have changed +fix_adapt.cpp:/* ---------------------------------------------------------------------- +fix_adapt.cpp:------------------------------------------------------------------------- */ +fix_adapt.cpp: density = rmass[i] / (4.0*MY_PI/3.0 * +fix_adapt.cpp: rmass[i] = 4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i] * density; +fix_adapt.cpp:/* ---------------------------------------------------------------------- +fix_adapt.cpp:------------------------------------------------------------------------- */ +fix_addforce.cpp:/* ---------------------------------------------------------------------- +fix_addforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_addforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_addforce.cpp:------------------------------------------------------------------------- */ +fix_addforce.cpp:/* ---------------------------------------------------------------------- */ +fix_addforce.cpp: // optional args +fix_addforce.cpp:/* ---------------------------------------------------------------------- */ +fix_addforce.cpp:/* ---------------------------------------------------------------------- */ +fix_addforce.cpp:/* ---------------------------------------------------------------------- */ +fix_addforce.cpp: // check variables +fix_addforce.cpp: // set index and check validity of region +fix_addforce.cpp:/* ---------------------------------------------------------------------- */ +fix_addforce.cpp:/* ---------------------------------------------------------------------- */ +fix_addforce.cpp:/* ---------------------------------------------------------------------- */ +fix_addforce.cpp: // update region if necessary +fix_addforce.cpp: // reallocate sforce array if necessary +fix_addforce.cpp: // foriginal[0] = "potential energy" for added force +fix_addforce.cpp: // foriginal[123] = force on atoms before extra force added +fix_addforce.cpp: // constant force +fix_addforce.cpp: // potential energy = - x dot f in unwrapped coords +fix_addforce.cpp: // variable force, wrap with clear/add +fix_addforce.cpp: // potential energy = evar if defined, else 0.0 +fix_addforce.cpp: // wrap with clear/add +fix_addforce.cpp:/* ---------------------------------------------------------------------- */ +fix_addforce.cpp:/* ---------------------------------------------------------------------- */ +fix_addforce.cpp:/* ---------------------------------------------------------------------- +fix_addforce.cpp:------------------------------------------------------------------------- */ +fix_addforce.cpp: // only sum across procs one time +fix_addforce.cpp:/* ---------------------------------------------------------------------- +fix_addforce.cpp:------------------------------------------------------------------------- */ +fix_addforce.cpp: // only sum across procs one time +fix_addforce.cpp:/* ---------------------------------------------------------------------- +fix_addforce.cpp:------------------------------------------------------------------------- */ +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- +fix_ave_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_ave_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_ave_atom.cpp:------------------------------------------------------------------------- */ +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_atom.cpp: if (narg < 7) error->all(FLERR,"Illegal fix ave/atom command"); +fix_ave_atom.cpp: // expand args if any have wildcard character "*" +fix_ave_atom.cpp: // this can reset nvalues +fix_ave_atom.cpp: // parse values +fix_ave_atom.cpp: error->all(FLERR,"Illegal fix ave/atom command"); +fix_ave_atom.cpp: } else error->all(FLERR,"Illegal fix ave/atom command"); +fix_ave_atom.cpp: // if wildcard expansion occurred, free earg memory from exapnd_args() +fix_ave_atom.cpp: // setup and error check +fix_ave_atom.cpp: // for fix inputs, check that fix frequency is acceptable +fix_ave_atom.cpp: error->all(FLERR,"Illegal fix ave/atom command"); +fix_ave_atom.cpp: error->all(FLERR,"Illegal fix ave/atom command"); +fix_ave_atom.cpp: error->all(FLERR,"Compute ID for fix ave/atom does not exist"); +fix_ave_atom.cpp: "Fix ave/atom compute does not calculate per-atom values"); +fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom compute does not " +fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom compute does not " +fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom compute array is accessed out-of-range"); +fix_ave_atom.cpp: error->all(FLERR,"Fix ID for fix ave/atom does not exist"); +fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom fix does not calculate per-atom values"); +fix_ave_atom.cpp: "Fix ave/atom fix does not calculate a per-atom vector"); +fix_ave_atom.cpp: "Fix ave/atom fix does not calculate a per-atom array"); +fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom fix array is accessed out-of-range"); +fix_ave_atom.cpp: "Fix for fix ave/atom not computed at compatible time"); +fix_ave_atom.cpp: error->all(FLERR,"Variable name for fix ave/atom does not exist"); +fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom variable is not atom-style variable"); +fix_ave_atom.cpp: // this fix produces either a per-atom vector or array +fix_ave_atom.cpp: // perform initial allocation of atom-based array +fix_ave_atom.cpp: // register with Atom class +fix_ave_atom.cpp: // zero the array since dump may access it on timestep 0 +fix_ave_atom.cpp: // zero the array since a variable may access it before first run +fix_ave_atom.cpp: // nvalid = next step on which end_of_step does something +fix_ave_atom.cpp: // add nvalid to all computes that store invocation times +fix_ave_atom.cpp: // since don't know a priori which are invoked by this fix +fix_ave_atom.cpp: // once in end_of_step() can set timestep for ones actually invoked +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_atom.cpp: // unregister callback to this fix from Atom class +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_atom.cpp: // set indices and check validity of all computes,fixes,variables +fix_ave_atom.cpp: error->all(FLERR,"Compute ID for fix ave/atom does not exist"); +fix_ave_atom.cpp: error->all(FLERR,"Fix ID for fix ave/atom does not exist"); +fix_ave_atom.cpp: error->all(FLERR,"Variable name for fix ave/atom does not exist"); +fix_ave_atom.cpp: // need to reset nvalid if nvalid < ntimestep b/c minimize was performed +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- +fix_ave_atom.cpp:------------------------------------------------------------------------- */ +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_atom.cpp: // skip if not step which requires doing something +fix_ave_atom.cpp: // error check if timestep was reset in an invalid manner +fix_ave_atom.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/atom"); +fix_ave_atom.cpp: // zero if first step +fix_ave_atom.cpp: // accumulate results of attributes,computes,fixes,variables to local copy +fix_ave_atom.cpp: // compute/fix/variable may invoke computes so wrap with clear/add +fix_ave_atom.cpp: // invoke compute if not previously invoked +fix_ave_atom.cpp: // access fix fields, guaranteed to be ready +fix_ave_atom.cpp: // evaluate atom-style variable +fix_ave_atom.cpp: // final argument = 1 sums result to array +fix_ave_atom.cpp: // done if irepeat < nrepeat +fix_ave_atom.cpp: // else reset irepeat and nvalid +fix_ave_atom.cpp: // average the final result for the Nfreq timestep +fix_ave_atom.cpp: array[i][m] /= repeat; +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- +fix_ave_atom.cpp:------------------------------------------------------------------------- */ +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- +fix_ave_atom.cpp:------------------------------------------------------------------------- */ +fix_ave_atom.cpp: memory->grow(array,nmax,nvalues,"fix_ave/atom:array"); +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- +fix_ave_atom.cpp:------------------------------------------------------------------------- */ +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- +fix_ave_atom.cpp:------------------------------------------------------------------------- */ +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- +fix_ave_atom.cpp:------------------------------------------------------------------------- */ +fix_ave_atom.cpp:/* ---------------------------------------------------------------------- +fix_ave_atom.cpp:------------------------------------------------------------------------- */ +fix_ave_atom.cpp: bigint nvalid = (update->ntimestep/peratom_freq)*peratom_freq + peratom_freq; +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- +fix_ave_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_ave_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_ave_chunk.cpp:------------------------------------------------------------------------- */ +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_chunk.cpp: if (narg < 7) error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: // expand args if any have wildcard character "*" +fix_ave_chunk.cpp: // parse values until one isn't recognized +fix_ave_chunk.cpp: } else if (strcmp(arg[iarg],"density/number") == 0) { +fix_ave_chunk.cpp: } else if (strcmp(arg[iarg],"density/mass") == 0) { +fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: if (nvalues == 0) error->all(FLERR,"No values in fix ave/chunk command"); +fix_ave_chunk.cpp: // optional args +fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: } else error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: else error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: if (nwindow <= 0) error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: sprintf(str,"Cannot open fix ave/chunk file %s",arg[iarg+1]); +fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: } else error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: // setup and error check +fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); +fix_ave_chunk.cpp: error->all(FLERR,"Compute ID for fix ave/chunk does not exist"); +fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk compute does not " +fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk compute does not " +fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk compute does not " +fix_ave_chunk.cpp: "Fix ave/chunk compute vector is accessed out-of-range"); +fix_ave_chunk.cpp: error->all(FLERR,"Fix ID for fix ave/chunk does not exist"); +fix_ave_chunk.cpp: "Fix ave/chunk fix does not calculate per-atom values"); +fix_ave_chunk.cpp: "Fix ave/chunk fix does not calculate a per-atom vector"); +fix_ave_chunk.cpp: "Fix ave/chunk fix does not calculate a per-atom array"); +fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk fix vector is accessed out-of-range"); +fix_ave_chunk.cpp: error->all(FLERR,"Variable name for fix ave/chunk does not exist"); +fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk variable is not atom-style variable"); +fix_ave_chunk.cpp: // increment lock counter in compute chunk/atom +fix_ave_chunk.cpp: // only if nrepeat > 1 or ave = RUNNING/WINDOW, +fix_ave_chunk.cpp: // so that locking spans multiple timesteps +fix_ave_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for fix ave/chunk"); +fix_ave_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk does not use chunk/atom compute"); +fix_ave_chunk.cpp: // print file comment lines +fix_ave_chunk.cpp: // if wildcard expansion occurred, free earg memory from expand_args() +fix_ave_chunk.cpp: // wait to do this until after file comment lines are printed +fix_ave_chunk.cpp: // this fix produces a global array +fix_ave_chunk.cpp: // size_array_rows is variable and set by allocate() +fix_ave_chunk.cpp: // initializations +fix_ave_chunk.cpp: // nvalid = next step on which end_of_step does something +fix_ave_chunk.cpp: // add nvalid to all computes that store invocation times +fix_ave_chunk.cpp: // since don't know a priori which are invoked by this fix +fix_ave_chunk.cpp: // once in end_of_step() can set timestep for ones actually invoked +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_chunk.cpp: // decrement lock counter in compute chunk/atom, it if still exists +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_chunk.cpp: // set indices and check validity of all computes,fixes,variables +fix_ave_chunk.cpp: // check that fix frequency is acceptable +fix_ave_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for fix ave/chunk"); +fix_ave_chunk.cpp: error->all(FLERR,"Compute ID for fix ave/chunk does not exist"); +fix_ave_chunk.cpp: error->all(FLERR,"Fix ID for fix ave/chunk does not exist"); +fix_ave_chunk.cpp: "Fix for fix ave/chunk not computed at compatible time"); +fix_ave_chunk.cpp: error->all(FLERR,"Variable name for fix ave/chunk does not exist"); +fix_ave_chunk.cpp: // need to reset nvalid if nvalid < ntimestep b/c minimize was performed +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- +fix_ave_chunk.cpp: do not call setup_chunks(), even though fix ave/spatial called setup_bins() +fix_ave_chunk.cpp: b/c could cause nchunk to change if Nfreq epoch crosses 2 runs +fix_ave_chunk.cpp:------------------------------------------------------------------------- */ +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_chunk.cpp: // skip if not step which requires doing something +fix_ave_chunk.cpp: // error check if timestep was reset in an invalid manner +fix_ave_chunk.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/chunk"); +fix_ave_chunk.cpp: // first sample within single Nfreq epoch +fix_ave_chunk.cpp: // zero out arrays that accumulate over many samples, but not across epochs +fix_ave_chunk.cpp: // invoke setup_chunks() to determine current nchunk +fix_ave_chunk.cpp: // re-allocate per-chunk arrays if needed +fix_ave_chunk.cpp: // invoke lock() in two cases: +fix_ave_chunk.cpp: // if nrepeat > 1: so nchunk cannot change until Nfreq epoch is over, +fix_ave_chunk.cpp: // will be unlocked on last repeat of this Nfreq +fix_ave_chunk.cpp: // if ave = RUNNING/WINDOW and not yet locked: +fix_ave_chunk.cpp: // set forever, will be unlocked in fix destructor +fix_ave_chunk.cpp: // wrap setup_chunks in clearstep/addstep b/c it may invoke computes +fix_ave_chunk.cpp: // both nevery and nfreq are future steps, +fix_ave_chunk.cpp: // since call below to cchunk->ichunk() +fix_ave_chunk.cpp: // does not re-invoke internal cchunk compute on this same step +fix_ave_chunk.cpp: // if any DENSITY requested, invoke setup_chunks() on each sampling step +fix_ave_chunk.cpp: // nchunk will not change but bin volumes might, e.g. for NPT simulation +fix_ave_chunk.cpp: // zero out arrays for one sample +fix_ave_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs +fix_ave_chunk.cpp: // extract ichunk index vector from compute +fix_ave_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms +fix_ave_chunk.cpp: // wrap compute_ichunk in clearstep/addstep b/c it may invoke computes +fix_ave_chunk.cpp: // perform the computation for one sample +fix_ave_chunk.cpp: // count # of atoms in each bin +fix_ave_chunk.cpp: // accumulate results of attributes,computes,fixes,variables to local copy +fix_ave_chunk.cpp: // sum within each chunk, only include atoms in fix group +fix_ave_chunk.cpp: // compute/fix/variable may invoke computes so wrap with clear/add +fix_ave_chunk.cpp: // V,F adds velocities,forces to values +fix_ave_chunk.cpp: // DENSITY_NUMBER adds 1 to values +fix_ave_chunk.cpp: // DENSITY_MASS or MASS adds mass to values +fix_ave_chunk.cpp: // TEMPERATURE adds KE to values +fix_ave_chunk.cpp: // subtract and restore velocity bias if requested +fix_ave_chunk.cpp: // COMPUTE adds its scalar or vector component to values +fix_ave_chunk.cpp: // invoke compute if not previously invoked +fix_ave_chunk.cpp: // FIX adds its scalar or vector component to values +fix_ave_chunk.cpp: // access fix fields, guaranteed to be ready +fix_ave_chunk.cpp: // VARIABLE adds its per-atom quantities to values +fix_ave_chunk.cpp: // evaluate atom-style variable +fix_ave_chunk.cpp: memory->create(varatom,maxvar,"ave/chunk:varatom"); +fix_ave_chunk.cpp: // process the current sample +fix_ave_chunk.cpp: // if normflag = ALL, accumulate values,count separately to many +fix_ave_chunk.cpp: // if normflag = SAMPLE, one = value/count, accumulate one to many +fix_ave_chunk.cpp: // count is MPI summed here, value is MPI summed below across samples +fix_ave_chunk.cpp: // exception is TEMPERATURE: normalize by DOF +fix_ave_chunk.cpp: // exception is DENSITY_NUMBER: +fix_ave_chunk.cpp: // normalize by bin volume, not by atom count +fix_ave_chunk.cpp: // exception is DENSITY_MASS: +fix_ave_chunk.cpp: // scale by mv2d, normalize by bin volume, not by atom count +fix_ave_chunk.cpp: // exception is scaleflag = NOSCALE (norm = NONE): +fix_ave_chunk.cpp: // no normalize by atom count +fix_ave_chunk.cpp: // check last so other options can take precedence +fix_ave_chunk.cpp: values_many[m][j] += mvv2e*values_one[m][j] / +fix_ave_chunk.cpp: if (volflag == SCALAR) values_one[m][j] /= chunk_volume_scalar; +fix_ave_chunk.cpp: else values_one[m][j] /= chunk_volume_vec[m]; +fix_ave_chunk.cpp: if (volflag == SCALAR) values_one[m][j] /= chunk_volume_scalar; +fix_ave_chunk.cpp: else values_one[m][j] /= chunk_volume_vec[m]; +fix_ave_chunk.cpp: values_many[m][j] += values_one[m][j]/count_many[m]; +fix_ave_chunk.cpp: // done if irepeat < nrepeat +fix_ave_chunk.cpp: // else reset irepeat and nvalid +fix_ave_chunk.cpp: // unlock compute chunk/atom at end of Nfreq epoch +fix_ave_chunk.cpp: // do not unlock if ave = RUNNING or WINDOW +fix_ave_chunk.cpp: // time average across samples +fix_ave_chunk.cpp: // if normflag = ALL, final is total value / total count +fix_ave_chunk.cpp: // exception is TEMPERATURE: normalize by DOF for total count +fix_ave_chunk.cpp: // exception is DENSITY_NUMBER: +fix_ave_chunk.cpp: // normalize by final bin_volume and repeat, not by total count +fix_ave_chunk.cpp: // exception is DENSITY_MASS: +fix_ave_chunk.cpp: // scale by mv2d, normalize by bin volume and repeat, not by total count +fix_ave_chunk.cpp: // exception is scaleflag == NOSCALE: +fix_ave_chunk.cpp: // normalize by repeat, not by total count +fix_ave_chunk.cpp: // check last so other options can take precedence +fix_ave_chunk.cpp: // if normflag = SAMPLE, final is sum of ave / repeat +fix_ave_chunk.cpp: values_sum[m][j] *= mvv2e / ((cdof + adof*count_sum[m]) * boltz); +fix_ave_chunk.cpp: if (volflag == SCALAR) values_sum[m][j] /= chunk_volume_scalar; +fix_ave_chunk.cpp: else values_sum[m][j] /= chunk_volume_vec[m]; +fix_ave_chunk.cpp: values_sum[m][j] /= repeat; +fix_ave_chunk.cpp: if (volflag == SCALAR) values_sum[m][j] /= chunk_volume_scalar; +fix_ave_chunk.cpp: else values_sum[m][j] /= chunk_volume_vec[m]; +fix_ave_chunk.cpp: values_sum[m][j] *= mv2d/repeat; +fix_ave_chunk.cpp: values_sum[m][j] /= repeat; +fix_ave_chunk.cpp: values_sum[m][j] /= count_sum[m]; +fix_ave_chunk.cpp: count_sum[m] /= repeat; +fix_ave_chunk.cpp: for (j = 0; j < nvalues; j++) values_sum[m][j] /= repeat; +fix_ave_chunk.cpp: count_sum[m] /= repeat; +fix_ave_chunk.cpp: // if ave = ONE, only single Nfreq timestep value is needed +fix_ave_chunk.cpp: // if ave = RUNNING, combine with all previous Nfreq timestep values +fix_ave_chunk.cpp: // if ave = WINDOW, comine with nwindow most recent Nfreq timestep values +fix_ave_chunk.cpp: // output result to file +fix_ave_chunk.cpp: fprintf(fp," %d %g",m+1,count_total[m]/normcount); +fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); +fix_ave_chunk.cpp: count_total[m]/normcount); +fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); +fix_ave_chunk.cpp: count_total[m]/normcount); +fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); +fix_ave_chunk.cpp: coord[m][0],coord[m][1],coord[m][2],count_total[m]/normcount); +fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); +fix_ave_chunk.cpp: fprintf(fp," %d %d %g",m+1,chunkID[m],count_total[m]/normcount); +fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); +fix_ave_chunk.cpp: count_total[m]/normcount); +fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); +fix_ave_chunk.cpp: count_total[m]/normcount); +fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); +fix_ave_chunk.cpp: coord[j-1][1],coord[j-1][2],count_total[m]/normcount); +fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- +fix_ave_chunk.cpp:------------------------------------------------------------------------- */ +fix_ave_chunk.cpp: // reallocate chunk arrays if needed +fix_ave_chunk.cpp: memory->grow(count_one,nchunk,"ave/chunk:count_one"); +fix_ave_chunk.cpp: memory->grow(count_many,nchunk,"ave/chunk:count_many"); +fix_ave_chunk.cpp: memory->grow(count_sum,nchunk,"ave/chunk:count_sum"); +fix_ave_chunk.cpp: memory->grow(count_total,nchunk,"ave/chunk:count_total"); +fix_ave_chunk.cpp: memory->grow(values_one,nchunk,nvalues,"ave/chunk:values_one"); +fix_ave_chunk.cpp: memory->grow(values_many,nchunk,nvalues,"ave/chunk:values_many"); +fix_ave_chunk.cpp: memory->grow(values_sum,nchunk,nvalues,"ave/chunk:values_sum"); +fix_ave_chunk.cpp: memory->grow(values_total,nchunk,nvalues,"ave/chunk:values_total"); +fix_ave_chunk.cpp: // only allocate count and values list for ave = WINDOW +fix_ave_chunk.cpp: memory->create(count_list,nwindow,nchunk,"ave/chunk:count_list"); +fix_ave_chunk.cpp: "ave/chunk:values_list"); +fix_ave_chunk.cpp: // reinitialize regrown count/values total since they accumulate +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- +fix_ave_chunk.cpp:------------------------------------------------------------------------- */ +fix_ave_chunk.cpp: if (j < 0) return count_total[i]/normcount; +fix_ave_chunk.cpp: return values_total[i][j]/normcount; +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- +fix_ave_chunk.cpp:------------------------------------------------------------------------- */ +fix_ave_chunk.cpp: bigint nvalid = (update->ntimestep/nfreq)*nfreq + nfreq; +fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- +fix_ave_chunk.cpp:------------------------------------------------------------------------- */ +fix_ave_chunk.cpp: double bytes = maxvar * sizeof(double); // varatom +fix_ave_chunk.cpp: bytes += 4*maxchunk * sizeof(double); // count one,many,sum,total +fix_ave_chunk.cpp: bytes += nvalues*maxchunk * sizeof(double); // values one,many,sum,total +fix_ave_chunk.cpp: bytes += nwindow*maxchunk * sizeof(double); // count_list +fix_ave_chunk.cpp: bytes += nwindow*maxchunk*nvalues * sizeof(double); // values_list +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- +fix_ave_correlate.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_ave_correlate.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_ave_correlate.cpp:------------------------------------------------------------------------- */ +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- +fix_ave_correlate.cpp:------------------------------------------------------------------------- */ +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_correlate.cpp: if (narg < 7) error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: // expand args if any have wildcard character "*" +fix_ave_correlate.cpp: // parse values until one isn't recognized +fix_ave_correlate.cpp: error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: // optional args +fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: else if (strcmp(arg[iarg+1],"auto/upper") == 0) type = AUTOUPPER; +fix_ave_correlate.cpp: else if (strcmp(arg[iarg+1],"auto/lower") == 0) type = AUTOLOWER; +fix_ave_correlate.cpp: else error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: else error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: sprintf(str,"Cannot open fix ave/correlate file %s",arg[iarg+1]); +fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: } else error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: // setup and error check +fix_ave_correlate.cpp: // for fix inputs, check that fix frequency is acceptable +fix_ave_correlate.cpp: error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: error->all(FLERR,"Illegal fix ave/correlate command"); +fix_ave_correlate.cpp: error->all(FLERR,"Compute ID for fix ave/correlate does not exist"); +fix_ave_correlate.cpp: "Fix ave/correlate compute does not calculate a scalar"); +fix_ave_correlate.cpp: "Fix ave/correlate compute does not calculate a vector"); +fix_ave_correlate.cpp: error->all(FLERR,"Fix ave/correlate compute vector " +fix_ave_correlate.cpp: error->all(FLERR,"Fix ID for fix ave/correlate does not exist"); +fix_ave_correlate.cpp: error->all(FLERR,"Fix ave/correlate fix does not calculate a scalar"); +fix_ave_correlate.cpp: error->all(FLERR,"Fix ave/correlate fix does not calculate a vector"); +fix_ave_correlate.cpp: "Fix ave/correlate fix vector is accessed out-of-range"); +fix_ave_correlate.cpp: error->all(FLERR,"Fix for fix ave/correlate " +fix_ave_correlate.cpp: error->all(FLERR,"Variable name for fix ave/correlate does not exist"); +fix_ave_correlate.cpp: "Fix ave/correlate variable is not equal-style variable"); +fix_ave_correlate.cpp: "Fix ave/correlate variable is not vector-style variable"); +fix_ave_correlate.cpp: // npair = # of correlation pairs to calculate +fix_ave_correlate.cpp: if (type == UPPER || type == LOWER) npair = nvalues*(nvalues-1)/2; +fix_ave_correlate.cpp: if (type == AUTOUPPER || type == AUTOLOWER) npair = nvalues*(nvalues+1)/2; +fix_ave_correlate.cpp: // print file comment lines +fix_ave_correlate.cpp: // if wildcard expansion occurred, free earg memory from expand_args() +fix_ave_correlate.cpp: // wait to do this until after file comment lines are printed +fix_ave_correlate.cpp: // allocate and initialize memory for averaging +fix_ave_correlate.cpp: // set count and corr to zero since they accumulate +fix_ave_correlate.cpp: // also set save versions to zero in case accessed via compute_array() +fix_ave_correlate.cpp: memory->create(values,nrepeat,nvalues,"ave/correlate:values"); +fix_ave_correlate.cpp: memory->create(count,nrepeat,"ave/correlate:count"); +fix_ave_correlate.cpp: memory->create(save_count,nrepeat,"ave/correlate:save_count"); +fix_ave_correlate.cpp: memory->create(corr,nrepeat,npair,"ave/correlate:corr"); +fix_ave_correlate.cpp: memory->create(save_corr,nrepeat,npair,"ave/correlate:save_corr"); +fix_ave_correlate.cpp: // this fix produces a global array +fix_ave_correlate.cpp: // nvalid = next step on which end_of_step does something +fix_ave_correlate.cpp: // add nvalid to all computes that store invocation times +fix_ave_correlate.cpp: // since don't know a priori which are invoked by this fix +fix_ave_correlate.cpp: // once in end_of_step() can set timestep for ones actually invoked +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_correlate.cpp: // set current indices for all computes,fixes,variables +fix_ave_correlate.cpp: error->all(FLERR,"Compute ID for fix ave/correlate does not exist"); +fix_ave_correlate.cpp: error->all(FLERR,"Fix ID for fix ave/correlate does not exist"); +fix_ave_correlate.cpp: error->all(FLERR,"Variable name for fix ave/correlate does not exist"); +fix_ave_correlate.cpp: // need to reset nvalid if nvalid < ntimestep b/c minimize was performed +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- +fix_ave_correlate.cpp:------------------------------------------------------------------------- */ +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_correlate.cpp: // skip if not step which requires doing something +fix_ave_correlate.cpp: // error check if timestep was reset in an invalid manner +fix_ave_correlate.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/correlate"); +fix_ave_correlate.cpp: // accumulate results of computes,fixes,variables to origin +fix_ave_correlate.cpp: // compute/fix/variable may invoke computes so wrap with clear/add +fix_ave_correlate.cpp: // lastindex = index in values ring of latest time sample +fix_ave_correlate.cpp: // invoke compute if not previously invoked +fix_ave_correlate.cpp: // access fix fields, guaranteed to be ready +fix_ave_correlate.cpp: // evaluate equal-style or vector-style variable +fix_ave_correlate.cpp: // fistindex = index in values ring of earliest time sample +fix_ave_correlate.cpp: // nsample = number of time samples in values ring +fix_ave_correlate.cpp: // calculate all Cij() enabled by latest values +fix_ave_correlate.cpp: // save results in save_count and save_corr +fix_ave_correlate.cpp: save_corr[i][j] = prefactor*corr[i][j]/count[i]; +fix_ave_correlate.cpp: // output result to file +fix_ave_correlate.cpp: fprintf(fp," %g",prefactor*corr[i][j]/count[i]); +fix_ave_correlate.cpp: // zero accumulation if requested +fix_ave_correlate.cpp: // recalculate Cij(0) +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- +fix_ave_correlate.cpp:------------------------------------------------------------------------- */ +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- +fix_ave_correlate.cpp:------------------------------------------------------------------------- */ +fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- +fix_ave_correlate.cpp:------------------------------------------------------------------------- */ +fix_ave_correlate.cpp: if (nvalid % nevery) nvalid = (nvalid/nevery)*nevery + nevery; +fix_aveforce.cpp:/* ---------------------------------------------------------------------- +fix_aveforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_aveforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_aveforce.cpp:------------------------------------------------------------------------- */ +fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ +fix_aveforce.cpp: // optional args +fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ +fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ +fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ +fix_aveforce.cpp: // check variables +fix_aveforce.cpp: // set index and check validity of region +fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ +fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ +fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ +fix_aveforce.cpp: // update region if necessary +fix_aveforce.cpp: // sum forces on participating atoms +fix_aveforce.cpp: // average the force on participating atoms +fix_aveforce.cpp: // add in requested amount, computed via variable evaluation if necessary +fix_aveforce.cpp: // wrap variable evaluation with clear/add +fix_aveforce.cpp: fave[0] = foriginal_all[0]/ncount + xvalue; +fix_aveforce.cpp: fave[1] = foriginal_all[1]/ncount + yvalue; +fix_aveforce.cpp: fave[2] = foriginal_all[2]/ncount + zvalue; +fix_aveforce.cpp: // set force of all participating atoms to same value +fix_aveforce.cpp: // only for active dimensions +fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ +fix_aveforce.cpp: // ave + extra force on selected RESPA level +fix_aveforce.cpp: // just ave on all other levels +fix_aveforce.cpp: fave[0] = foriginal_all[0]/ncount; +fix_aveforce.cpp: fave[1] = foriginal_all[1]/ncount; +fix_aveforce.cpp: fave[2] = foriginal_all[2]/ncount; +fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ +fix_aveforce.cpp:/* ---------------------------------------------------------------------- +fix_aveforce.cpp:------------------------------------------------------------------------- */ +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_ave_histo.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_ave_histo.cpp:------------------------------------------------------------------------- */ +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_histo.cpp: if (narg < 10) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: // scan values to count them +fix_ave_histo.cpp: // then read options so know mode = SCALAR/VECTOR before re-reading values +fix_ave_histo.cpp: if (nvalues == 0) error->all(FLERR,"No values in fix ave/histo command"); +fix_ave_histo.cpp: // expand args if any have wildcard character "*" +fix_ave_histo.cpp: // this can reset nvalues +fix_ave_histo.cpp: // parse values +fix_ave_histo.cpp: error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: // if wildcard expansion occurred, free earg memory from expand_args() +fix_ave_histo.cpp: // setup and error check +fix_ave_histo.cpp: // kind = inputs are all global, or all per-atom, or all local +fix_ave_histo.cpp: // for fix inputs, check that fix frequency is acceptable +fix_ave_histo.cpp: error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (lo >= hi) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (nbins <= 0) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (c_id < 0) error->all(FLERR,"Fix ave/histo input is invalid compute"); +fix_ave_histo.cpp: else error->all(FLERR,"Fix ave/histo input is invalid compute"); +fix_ave_histo.cpp: if (f_id < 0) error->all(FLERR,"Fix ave/histo input is invalid fix"); +fix_ave_histo.cpp: else error->all(FLERR,"Fix ave/histo input is invalid fix"); +fix_ave_histo.cpp: if (ivariable < 0) error->all(FLERR,"Fix ave/histo input is invalid variable"); +fix_ave_histo.cpp: else error->all(FLERR,"Fix ave/histo input is invalid variable"); +fix_ave_histo.cpp: "Fix ave/histo inputs are not all global, peratom, or local"); +fix_ave_histo.cpp: "Fix ave/histo cannot input per-atom values in scalar mode"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo cannot input local values in scalar mode"); +fix_ave_histo.cpp: error->all(FLERR,"Compute ID for fix ave/histo does not exist"); +fix_ave_histo.cpp: "Fix ave/histo compute does not calculate a global scalar"); +fix_ave_histo.cpp: "Fix ave/histo compute does not calculate a global vector"); +fix_ave_histo.cpp: "Fix ave/histo compute vector is accessed out-of-range"); +fix_ave_histo.cpp: error->all(FLERR,"Compute ID for fix ave/histo does not exist"); +fix_ave_histo.cpp: "Fix ave/histo compute does not calculate a global vector"); +fix_ave_histo.cpp: "Fix ave/histo compute does not calculate a global array"); +fix_ave_histo.cpp: "Fix ave/histo compute array is accessed out-of-range"); +fix_ave_histo.cpp: error->all(FLERR,"Compute ID for fix ave/histo does not exist"); +fix_ave_histo.cpp: "Fix ave/histo compute does not calculate per-atom values"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo compute does not " +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo compute does not " +fix_ave_histo.cpp: "Fix ave/histo compute array is accessed out-of-range"); +fix_ave_histo.cpp: error->all(FLERR,"Compute ID for fix ave/histo does not exist"); +fix_ave_histo.cpp: "Fix ave/histo compute does not calculate local values"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo compute does not " +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo compute does not " +fix_ave_histo.cpp: "Fix ave/histo compute array is accessed out-of-range"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ID for fix ave/histo does not exist"); +fix_ave_histo.cpp: "Fix ave/histo fix does not calculate a global scalar"); +fix_ave_histo.cpp: "Fix ave/histo fix does not calculate a global vector"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix vector is accessed out-of-range"); +fix_ave_histo.cpp: "Fix for fix ave/histo not computed at compatible time"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ID for fix ave/histo does not exist"); +fix_ave_histo.cpp: "Fix ave/histo fix does not calculate a global vector"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not calculate a global array"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix array is accessed out-of-range"); +fix_ave_histo.cpp: "Fix for fix ave/histo not computed at compatible time"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ID for fix ave/histo does not exist"); +fix_ave_histo.cpp: "Fix ave/histo fix does not calculate per-atom values"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not " +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not " +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix array is accessed out-of-range"); +fix_ave_histo.cpp: "Fix for fix ave/histo not computed at compatible time"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ID for fix ave/histo does not exist"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not calculate local values"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not " +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not " +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix array is accessed out-of-range"); +fix_ave_histo.cpp: "Fix for fix ave/histo not computed at compatible time"); +fix_ave_histo.cpp: error->all(FLERR,"Variable name for fix ave/histo does not exist"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable is not equal-style variable"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable is not vector-style variable"); +fix_ave_histo.cpp: error->all(FLERR,"Variable name for fix ave/histo does not exist"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable is not vector-style variable"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable cannot be indexed"); +fix_ave_histo.cpp: error->all(FLERR,"Variable name for fix ave/histo does not exist"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable is not atom-style variable"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable cannot be indexed"); +fix_ave_histo.cpp: // print file comment lines +fix_ave_histo.cpp: else fprintf(fp,"# Bin Coord Count Count/Total\n"); +fix_ave_histo.cpp: // allocate and initialize memory for averaging +fix_ave_histo.cpp: memory->create(stats_list,nwindow,4,"ave/histo:stats_list"); +fix_ave_histo.cpp: memory->create(bin_list,nwindow,nbins,"ave/histo:bin_list"); +fix_ave_histo.cpp: // initializations +fix_ave_histo.cpp: // set coord to bin centers +fix_ave_histo.cpp: binsize = (hi-lo)/(nbins-2); +fix_ave_histo.cpp: bininv = 1.0/binsize; +fix_ave_histo.cpp: binsize = (hi-lo)/nbins; +fix_ave_histo.cpp: bininv = 1.0/binsize; +fix_ave_histo.cpp: // nvalid = next step on which end_of_step does something +fix_ave_histo.cpp: // add nvalid to all computes that store invocation times +fix_ave_histo.cpp: // since don't know a priori which are invoked by this fix +fix_ave_histo.cpp: // once in end_of_step() can set timestep for ones actually invoked +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_histo.cpp: // set current indices for all computes,fixes,variables +fix_ave_histo.cpp: error->all(FLERR,"Compute ID for fix ave/histo does not exist"); +fix_ave_histo.cpp: error->all(FLERR,"Fix ID for fix ave/histo does not exist"); +fix_ave_histo.cpp: error->all(FLERR,"Variable name for fix ave/histo does not exist"); +fix_ave_histo.cpp: // need to reset nvalid if nvalid < ntimestep b/c minimize was performed +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo.cpp:------------------------------------------------------------------------- */ +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_histo.cpp: // skip if not step which requires doing something +fix_ave_histo.cpp: // error check if timestep was reset in an invalid manner +fix_ave_histo.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/histo"); +fix_ave_histo.cpp: // zero if first step +fix_ave_histo.cpp: // accumulate results of computes,fixes,variables to local copy +fix_ave_histo.cpp: // compute/fix/variable may invoke computes so wrap with clear/add +fix_ave_histo.cpp: // atom attributes +fix_ave_histo.cpp: // invoke compute if not previously invoked +fix_ave_histo.cpp: // access fix fields, guaranteed to be ready +fix_ave_histo.cpp: // evaluate equal-style or vector-style or atom-style variable +fix_ave_histo.cpp: memory->create(vector,maxatom,"ave/histo:vector"); +fix_ave_histo.cpp: // done if irepeat < nrepeat +fix_ave_histo.cpp: // else reset irepeat and nvalid +fix_ave_histo.cpp: // merge histogram stats across procs if necessary +fix_ave_histo.cpp: // if ave = ONE, only single Nfreq timestep value is needed +fix_ave_histo.cpp: // if ave = RUNNING, combine with all previous Nfreq timestep values +fix_ave_histo.cpp: // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values +fix_ave_histo.cpp: // output result to file +fix_ave_histo.cpp: i+1,coord[i],bin_total[i],bin_total[i]/stats_total[0]); +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo.cpp:------------------------------------------------------------------------- */ +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo.cpp:------------------------------------------------------------------------- */ +fix_ave_histo.cpp: else if (stats_total[0] != 0.0) return bin_total[i]/stats_total[0]; +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo.cpp:------------------------------------------------------------------------- */ +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo.cpp:------------------------------------------------------------------------- */ +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo.cpp:------------------------------------------------------------------------- */ +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo.cpp:------------------------------------------------------------------------- */ +fix_ave_histo.cpp: // option defaults +fix_ave_histo.cpp: // optional args +fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: sprintf(str,"Cannot open fix ave/histo file %s",arg[iarg+1]); +fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: else error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (nwindow <= 0) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: else error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: else error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp: } else error->all(FLERR,"Illegal fix ave/histo command"); +fix_ave_histo.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo.cpp:------------------------------------------------------------------------- */ +fix_ave_histo.cpp: bigint nvalid = (update->ntimestep/nfreq)*nfreq + nfreq; +fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo_weight.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_ave_histo_weight.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_ave_histo_weight.cpp:------------------------------------------------------------------------- */ +fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo_weight.cpp:------------------------------------------------------------------------- */ +fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_histo_weight.cpp: // nvalues = 2 required for histo/weight +fix_ave_histo_weight.cpp: if (nvalues != 2) error->all(FLERR,"Illegal fix ave/histo/weight command"); +fix_ave_histo_weight.cpp: // check that length of 2 values is the same +fix_ave_histo_weight.cpp: error->all(FLERR,"Fix ave/histo/weight value and weight vector " +fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_histo_weight.cpp: // skip if not step which requires doing something +fix_ave_histo_weight.cpp: // error check if timestep was reset in an invalid manner +fix_ave_histo_weight.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/histo"); +fix_ave_histo_weight.cpp: // zero if first step +fix_ave_histo_weight.cpp: // first calculate weight factors, then bin single value +fix_ave_histo_weight.cpp: // accumulate results of computes,fixes,variables to local copy +fix_ave_histo_weight.cpp: // compute/fix/variable may invoke computes so wrap with clear/add +fix_ave_histo_weight.cpp: // calculate weight factors which are 2nd value (i = 1) +fix_ave_histo_weight.cpp: // atom attributes +fix_ave_histo_weight.cpp: // invoke compute if not previously invoked +fix_ave_histo_weight.cpp: // access fix fields, guaranteed to be ready +fix_ave_histo_weight.cpp: error->all(FLERR,"Fix ave/histo/weight option not yet supported"); +fix_ave_histo_weight.cpp: // NOTE: need to allocate local storage +fix_ave_histo_weight.cpp: // evaluate equal-style variable +fix_ave_histo_weight.cpp: memory->create(vector,maxatom,"ave/histo/weight:vector"); +fix_ave_histo_weight.cpp: // bin values using weights, values are 1st value (i = 0) +fix_ave_histo_weight.cpp: // atom attributes +fix_ave_histo_weight.cpp: // invoke compute if not previously invoked +fix_ave_histo_weight.cpp: // access fix fields, guaranteed to be ready +fix_ave_histo_weight.cpp: // evaluate equal-style variable +fix_ave_histo_weight.cpp: memory->create(vector,maxatom,"ave/histo/weight:vector"); +fix_ave_histo_weight.cpp: // code beyond this point is identical to FixAveHisto +fix_ave_histo_weight.cpp: // done if irepeat < nrepeat +fix_ave_histo_weight.cpp: // else reset irepeat and nvalid +fix_ave_histo_weight.cpp: // merge histogram stats across procs if necessary +fix_ave_histo_weight.cpp: // if ave = ONE, only single Nfreq timestep value is needed +fix_ave_histo_weight.cpp: // if ave = RUNNING, combine with all previous Nfreq timestep values +fix_ave_histo_weight.cpp: // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values +fix_ave_histo_weight.cpp: // output result to file +fix_ave_histo_weight.cpp: i+1,coord[i],bin_total[i],bin_total[i]/stats_total[0]); +fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo_weight.cpp:------------------------------------------------------------------------- */ +fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo_weight.cpp:------------------------------------------------------------------------- */ +fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- +fix_ave_histo_weight.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp:/* ---------------------------------------------------------------------- +fix_ave_time.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_ave_time.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_ave_time.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp:/* ---------------------------------------------------------------------- +fix_ave_time.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_time.cpp: if (narg < 7) error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: // scan values to count them +fix_ave_time.cpp: // then read options so know mode = SCALAR/VECTOR before re-reading values +fix_ave_time.cpp: if (nvalues == 0) error->all(FLERR,"No values in fix ave/time command"); +fix_ave_time.cpp: // expand args if any have wildcard character "*" +fix_ave_time.cpp: // this can reset nvalues +fix_ave_time.cpp: // parse values +fix_ave_time.cpp: error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: // set off columns now that nvalues is finalized +fix_ave_time.cpp: error->all(FLERR,"Invalid fix ave/time off column"); +fix_ave_time.cpp: // setup and error check +fix_ave_time.cpp: // for fix inputs, check that fix frequency is acceptable +fix_ave_time.cpp: // set variable_length if any compute is variable length +fix_ave_time.cpp: error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: error->all(FLERR,"Compute ID for fix ave/time does not exist"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time compute does not calculate a scalar"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time compute does not calculate a vector"); +fix_ave_time.cpp: "Fix ave/time compute vector is accessed out-of-range"); +fix_ave_time.cpp: error->all(FLERR,"Compute ID for fix ave/time does not exist"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time compute does not calculate a vector"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time compute does not calculate an array"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time compute array is accessed out-of-range"); +fix_ave_time.cpp: error->all(FLERR,"Fix ID for fix ave/time does not exist"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix does not calculate a scalar"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix does not calculate a vector"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix vector cannot be variable length"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix vector is accessed out-of-range"); +fix_ave_time.cpp: "Fix for fix ave/time not computed at compatible time"); +fix_ave_time.cpp: error->all(FLERR,"Fix ID for fix ave/time does not exist"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix does not calculate a vector"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix does not calculate an array"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix array cannot be variable length"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix array is accessed out-of-range"); +fix_ave_time.cpp: "Fix for fix ave/time not computed at compatible time"); +fix_ave_time.cpp: error->all(FLERR,"Variable name for fix ave/time does not exist"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time variable is not equal-style variable"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time variable is not vector-style variable"); +fix_ave_time.cpp: error->all(FLERR,"Variable name for fix ave/time does not exist"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time variable is not vector-style variable"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time mode vector variable cannot be indexed"); +fix_ave_time.cpp: // all_variable_length = 1 if all values are variable length +fix_ave_time.cpp: // any_variable_length = 1 if any values are variable length +fix_ave_time.cpp: // if VECTOR mode, check that all columns are same length +fix_ave_time.cpp: // nrows = # of rows in output array +fix_ave_time.cpp: // if all columns are variable length, just set nrows = 1 for now +fix_ave_time.cpp: memory->create(column,nrows,"ave/time:column"); +fix_ave_time.cpp: // enable locking of row count by this fix for computes of variable length +fix_ave_time.cpp: // only if nrepeat > 1 or ave = RUNNING/WINDOW, +fix_ave_time.cpp: // so that locking spans multiple timesteps +fix_ave_time.cpp: // print file comment lines +fix_ave_time.cpp: // for mode = VECTOR, cannot use arg to print +fix_ave_time.cpp: // since array args may have been expanded to multiple vectors +fix_ave_time.cpp: // if wildcard expansion occurred, free earg memory from expand_args() +fix_ave_time.cpp: // wait to do this until after file comment lines are printed +fix_ave_time.cpp: // allocate memory for averaging +fix_ave_time.cpp: memory->create(vector_list,nwindow,nvalues,"ave/time:vector_list"); +fix_ave_time.cpp: // this fix produces either a global scalar or vector or array +fix_ave_time.cpp: // SCALAR mode produces either a scalar or vector +fix_ave_time.cpp: // VECTOR mode produces either a vector or array +fix_ave_time.cpp: // intensive/extensive flags set by compute,fix,variable that produces value +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time cannot set output array " +fix_ave_time.cpp: "intensive/extensive from these inputs"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time cannot set output array " +fix_ave_time.cpp: "intensive/extensive from these inputs"); +fix_ave_time.cpp: // initializations +fix_ave_time.cpp: // set vector_total to zero since it accumulates +fix_ave_time.cpp: // array_total already zeroed in allocate_arrays +fix_ave_time.cpp: // nvalid = next step on which end_of_step does something +fix_ave_time.cpp: // add nvalid to all computes that store invocation times +fix_ave_time.cpp: // since don't know a priori which are invoked by this fix +fix_ave_time.cpp: // once in end_of_step() can set timestep for ones actually invoked +fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_time.cpp: // decrement lock counter in compute chunk/atom, it if still exists +fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_time.cpp: // set current indices for all computes,fixes,variables +fix_ave_time.cpp: error->all(FLERR,"Compute ID for fix ave/time does not exist"); +fix_ave_time.cpp: error->all(FLERR,"Fix ID for fix ave/time does not exist"); +fix_ave_time.cpp: error->all(FLERR,"Variable name for fix ave/time does not exist"); +fix_ave_time.cpp: // need to reset nvalid if nvalid < ntimestep b/c minimize was performed +fix_ave_time.cpp:/* ---------------------------------------------------------------------- +fix_ave_time.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_time.cpp: // skip if not step which requires doing something +fix_ave_time.cpp: // error check if timestep was reset in an invalid manner +fix_ave_time.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/time"); +fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_time.cpp: // zero if first sample within single Nfreq epoch +fix_ave_time.cpp: // if any input is variable length, initialize current length +fix_ave_time.cpp: // check for exceeding length is done below +fix_ave_time.cpp: // accumulate results of computes,fixes,variables to local copy +fix_ave_time.cpp: // compute/fix/variable may invoke computes so wrap with clear/add +fix_ave_time.cpp: // invoke compute if not previously invoked +fix_ave_time.cpp: // insure no out-of-range access to variable-length compute vector +fix_ave_time.cpp: // access fix fields, guaranteed to be ready +fix_ave_time.cpp: // evaluate equal-style or vector-style variable +fix_ave_time.cpp: // insure no out-of-range access to vector-style variable +fix_ave_time.cpp: // add value to vector or just set directly if offcol is set +fix_ave_time.cpp: // done if irepeat < nrepeat +fix_ave_time.cpp: // else reset irepeat and nvalid +fix_ave_time.cpp: // average the final result for the Nfreq timestep +fix_ave_time.cpp: if (offcol[i] == 0) vector[i] /= repeat; +fix_ave_time.cpp: // if ave = ONE, only single Nfreq timestep value is needed +fix_ave_time.cpp: // if ave = RUNNING, combine with all previous Nfreq timestep values +fix_ave_time.cpp: // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values +fix_ave_time.cpp: // insure any columns with offcol set are effectively set to last value +fix_ave_time.cpp: // output result to file +fix_ave_time.cpp: for (i = 0; i < nvalues; i++) fprintf(fp,format,vector_total[i]/norm); +fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ +fix_ave_time.cpp: // first sample within single Nfreq epoch +fix_ave_time.cpp: // zero out arrays that accumulate over many samples, but not across epochs +fix_ave_time.cpp: // invoke setup_chunks() to determine current nchunk +fix_ave_time.cpp: // re-allocate per-chunk arrays if needed +fix_ave_time.cpp: // invoke lock() in two cases: +fix_ave_time.cpp: // if nrepeat > 1: so nchunk cannot change until Nfreq epoch is over, +fix_ave_time.cpp: // will be unlocked on last repeat of this Nfreq +fix_ave_time.cpp: // if ave = RUNNING/WINDOW and not yet locked: +fix_ave_time.cpp: // set forever, will be unlocked in fix destructor +fix_ave_time.cpp: // wrap setup_chunks in clearstep/addstep b/c it may invoke computes +fix_ave_time.cpp: // both nevery and nfreq are future steps, +fix_ave_time.cpp: // since call below to cchunk->ichunk() +fix_ave_time.cpp: // does not re-invoke internal cchunk compute on this same step +fix_ave_time.cpp: memory->create(column,nrows,"ave/time:column"); +fix_ave_time.cpp: // accumulate results of computes,fixes,variables to local copy +fix_ave_time.cpp: // compute/fix/variable may invoke computes so wrap with clear/add +fix_ave_time.cpp: // invoke compute if not previously invoked +fix_ave_time.cpp: // access fix fields, guaranteed to be ready +fix_ave_time.cpp: // evaluate vector-style variable +fix_ave_time.cpp: // insure nvec = nrows, else error +fix_ave_time.cpp: // could be different on this timestep than when column_length(1) set nrows +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time vector-style variable changed length"); +fix_ave_time.cpp: // add columns of values to array or just set directly if offcol is set +fix_ave_time.cpp: // done if irepeat < nrepeat +fix_ave_time.cpp: // else reset irepeat and nvalid +fix_ave_time.cpp: // unlock any variable length computes at end of Nfreq epoch +fix_ave_time.cpp: // do not unlock if ave = RUNNING or WINDOW +fix_ave_time.cpp: // average the final result for the Nfreq timestep +fix_ave_time.cpp: if (offcol[j] == 0) array[i][j] /= repeat; +fix_ave_time.cpp: // if ave = ONE, only single Nfreq timestep value is needed +fix_ave_time.cpp: // if ave = RUNNING, combine with all previous Nfreq timestep values +fix_ave_time.cpp: // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values +fix_ave_time.cpp: // insure any columns with offcol set are effectively set to last value +fix_ave_time.cpp: // output result to file +fix_ave_time.cpp: for (j = 0; j < nvalues; j++) fprintf(fp,format,array_total[i][j]/norm); +fix_ave_time.cpp:/* ---------------------------------------------------------------------- +fix_ave_time.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp: // determine nrows for static values +fix_ave_time.cpp: // variables are always varlen = 1, so dynamic +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time columns are inconsistent lengths"); +fix_ave_time.cpp: // determine new nrows for dynamic values +fix_ave_time.cpp: // either all must be the same +fix_ave_time.cpp: // or must match other static values +fix_ave_time.cpp: // don't need to check if not MODE = VECTOR, just invoke lock_length() +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time columns are inconsistent lengths"); +fix_ave_time.cpp: error->all(FLERR,"Fix ave/time columns are inconsistent lengths"); +fix_ave_time.cpp:/* ---------------------------------------------------------------------- +fix_ave_time.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp: if (norm) return vector_total[0]/norm; +fix_ave_time.cpp:/* ---------------------------------------------------------------------- +fix_ave_time.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp: if (mode == SCALAR) return vector_total[i]/norm; +fix_ave_time.cpp: if (mode == VECTOR) return array_total[i][0]/norm; +fix_ave_time.cpp:/* ---------------------------------------------------------------------- +fix_ave_time.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp: if (norm) return array_total[i][j]/norm; +fix_ave_time.cpp:/* ---------------------------------------------------------------------- +fix_ave_time.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp: // option defaults +fix_ave_time.cpp: // optional args +fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: sprintf(str,"Cannot open fix ave/time file %s",arg[iarg+1]); +fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: else error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: if (nwindow <= 0) error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: else error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: memory->grow(offlist,noff+1,"ave/time:offlist"); +fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/spatial command"); +fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/spatial command"); +fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/spatial command"); +fix_ave_time.cpp: } else error->all(FLERR,"Illegal fix ave/time command"); +fix_ave_time.cpp:/* ---------------------------------------------------------------------- +fix_ave_time.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp: memory->create(array,nrows,nvalues,"ave/time:array"); +fix_ave_time.cpp: memory->create(array_total,nrows,nvalues,"ave/time:array_total"); +fix_ave_time.cpp: memory->create(array_list,nwindow,nrows,nvalues,"ave/time:array_list"); +fix_ave_time.cpp: // reinitialize regrown array_total since it accumulates +fix_ave_time.cpp:/* ---------------------------------------------------------------------- +fix_ave_time.cpp:------------------------------------------------------------------------- */ +fix_ave_time.cpp: bigint nvalid = (update->ntimestep/nfreq)*nfreq + nfreq; +fix_balance.cpp:/* ---------------------------------------------------------------------- +fix_balance.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_balance.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_balance.cpp:------------------------------------------------------------------------- */ +fix_balance.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files +fix_balance.cpp:/* ---------------------------------------------------------------------- */ +fix_balance.cpp: // parse required arguments +fix_balance.cpp: // error checks +fix_balance.cpp: // create instance of Balance class +fix_balance.cpp: // if SHIFT, initialize it with params +fix_balance.cpp: // process remaining optional args via Balance +fix_balance.cpp: // create instance of Irregular class +fix_balance.cpp: // only force reneighboring if nevery > 0 +fix_balance.cpp: // compute initial outputs +fix_balance.cpp:/* ---------------------------------------------------------------------- */ +fix_balance.cpp:/* ---------------------------------------------------------------------- */ +fix_balance.cpp:/* ---------------------------------------------------------------------- */ +fix_balance.cpp:/* ---------------------------------------------------------------------- */ +fix_balance.cpp:/* ---------------------------------------------------------------------- */ +fix_balance.cpp: // compute final imbalance factor if setup_pre_exchange() invoked balancer +fix_balance.cpp: // this is called at end of run setup, before output +fix_balance.cpp:/* ---------------------------------------------------------------------- */ +fix_balance.cpp: // do not allow rebalancing twice on same timestep +fix_balance.cpp: // even if wanted to, can mess up elapsed time in ImbalanceTime +fix_balance.cpp: // insure atoms are in current box & update box via shrink-wrap +fix_balance.cpp: // has to be be done before rebalance() invokes Irregular::migrate_atoms() +fix_balance.cpp: // since it requires atoms be inside simulation box +fix_balance.cpp: // even though pbc() will be done again in Verlet::run() +fix_balance.cpp: // no exchange() since doesn't matter if atoms are assigned to correct procs +fix_balance.cpp: // perform a rebalance if threshold exceeded +fix_balance.cpp: // next timestep to rebalance +fix_balance.cpp: if (nevery) next_reneighbor = (update->ntimestep/nevery)*nevery + nevery; +fix_balance.cpp:/* ---------------------------------------------------------------------- +fix_balance.cpp:------------------------------------------------------------------------- */ +fix_balance.cpp: // return if not a rebalance timestep +fix_balance.cpp: // do not allow rebalancing twice on same timestep +fix_balance.cpp: // even if wanted to, can mess up elapsed time in ImbalanceTime +fix_balance.cpp: // insure atoms are in current box & update box via shrink-wrap +fix_balance.cpp: // no exchange() since doesn't matter if atoms are assigned to correct procs +fix_balance.cpp: // perform a rebalance if threshold exceeded +fix_balance.cpp: // if weight variable is used, wrap weight setting in clear/add compute +fix_balance.cpp: // next timestep to rebalance +fix_balance.cpp: if (nevery) next_reneighbor = (update->ntimestep/nevery)*nevery + nevery; +fix_balance.cpp:/* ---------------------------------------------------------------------- +fix_balance.cpp:------------------------------------------------------------------------- */ +fix_balance.cpp:/* ---------------------------------------------------------------------- +fix_balance.cpp:------------------------------------------------------------------------- */ +fix_balance.cpp: // invoke balancer and reset comm->uniform flag +fix_balance.cpp: // output of new decomposition +fix_balance.cpp: // reset proc sub-domains +fix_balance.cpp: // check and warn if any proc's subbox is smaller than neigh skin +fix_balance.cpp: // since may lead to lost atoms in exchange() +fix_balance.cpp: // move atoms to new processors via irregular() +fix_balance.cpp: // only needed if migrate_check() says an atom moves to far +fix_balance.cpp: // else allow caller's comm->exchange() to do it +fix_balance.cpp: // invoke KSpace setup_grid() to adjust to new proc sub-domains +fix_balance.cpp: // pending triggers pre_neighbor() to compute final imbalance factor +fix_balance.cpp: // can only be done after atoms migrate in comm->exchange() +fix_balance.cpp:/* ---------------------------------------------------------------------- +fix_balance.cpp:------------------------------------------------------------------------- */ +fix_balance.cpp:/* ---------------------------------------------------------------------- +fix_balance.cpp:------------------------------------------------------------------------- */ +fix_balance.cpp:/* ---------------------------------------------------------------------- +fix_balance.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_box_relax.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp:#define MAX_LIFO_DEPTH 2 // 3 box0 arrays in *.h dimensioned to this +fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ +fix_box_relax.cpp: if (narg < 5) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: // default values +fix_box_relax.cpp: // turn on tilt factor scaling, whenever applicable +fix_box_relax.cpp: // set fixed-point to default = center of cell +fix_box_relax.cpp: // process keywords +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: else error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: else error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (nreset_h0 < 0) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: else error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: else error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: else error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: } else error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: // error checks +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command pressure settings"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command pressure settings"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command pressure settings"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command pressure settings"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command pressure settings"); +fix_box_relax.cpp: // require periodicity in tensile dimension +fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax on a non-periodic dimension"); +fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax on a non-periodic dimension"); +fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax on a non-periodic dimension"); +fix_box_relax.cpp: // require periodicity in 2nd dim of off-diagonal tilt component +fix_box_relax.cpp: "Cannot use fix box/relax on a 2nd non-periodic dimension"); +fix_box_relax.cpp: "Cannot use fix box/relax on a 2nd non-periodic dimension"); +fix_box_relax.cpp: "Cannot use fix box/relax on a 2nd non-periodic dimension"); +fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax " +fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax " +fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax " +fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax with " +fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax with " +fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax with " +fix_box_relax.cpp: error->all(FLERR,"Can not specify Pxy/Pxz/Pyz in " +fix_box_relax.cpp: "fix box/relax with non-triclinic box"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax pressure settings"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax pressure settings"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax pressure settings"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax pressure settings"); +fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax pressure settings"); +fix_box_relax.cpp: if (vmax <= 0.0) error->all(FLERR,"Illegal fix box/relax command"); +fix_box_relax.cpp: // pstyle = TRICLINIC if any off-diagonal term is controlled -> 6 dof +fix_box_relax.cpp: // else pstyle = ISO if XYZ coupling or XY coupling in 2d -> 1 dof +fix_box_relax.cpp: // else pstyle = ANISO -> 3 dof +fix_box_relax.cpp: // create a new compute temp style +fix_box_relax.cpp: // id = fix-ID + temp +fix_box_relax.cpp: // compute group = all since pressure is always global (group all) +fix_box_relax.cpp: // and thus its KE/temperature contribution should use group all +fix_box_relax.cpp: // create a new compute pressure style (virial only) +fix_box_relax.cpp: // id = fix-ID + press, compute group = all +fix_box_relax.cpp: // pass id_temp as 4th arg to pressure constructor +fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ +fix_box_relax.cpp: // delete temperature and pressure if fix created them +fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ +fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ +fix_box_relax.cpp: // set temperature and pressure ptrs +fix_box_relax.cpp: error->all(FLERR,"Temperature ID for fix box/relax does not exist"); +fix_box_relax.cpp: error->all(FLERR,"Pressure ID for fix box/relax does not exist"); +fix_box_relax.cpp: pv2e = 1.0 / force->nktv2p; +fix_box_relax.cpp: // detect if any rigid fixes exist so rigid bodies move when box is remapped +fix_box_relax.cpp: // rfix[] = indices to each fix rigid +fix_box_relax.cpp: // initial box dimensions +fix_box_relax.cpp: // hydrostatic target pressure and deviatoric target stress +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp: // trigger virial computation on every iteration of minimizer +fix_box_relax.cpp: // compute energy, forces for each extra degree of freedom +fix_box_relax.cpp: // returned eng = PV must be in units of energy +fix_box_relax.cpp: // returned fextra must likewise be in units of energy +fix_box_relax.cpp: scale = domain->xprd/xprdinit; +fix_box_relax.cpp: if (p_flag[0]) scalex = domain->xprd/xprdinit; +fix_box_relax.cpp: if (p_flag[1]) scaley = domain->yprd/yprdinit; +fix_box_relax.cpp: if (p_flag[2]) scalez = domain->zprd/zprdinit; +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp: error->all(FLERR,"Attempt to push beyond stack limit in fix box/relax"); +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp: error->all(FLERR,"Attempt to pop empty stack in fix box/relax"); +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp: // if nreset_h0 > 0, reset reference box +fix_box_relax.cpp: // every nreset_h0 timesteps +fix_box_relax.cpp: // only needed for deviatoric external stress +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp: if (pstyle == ISO) alpha = vmax/fabs(hextra[0]); +fix_box_relax.cpp: if (p_flag[0]) alpha = MIN(alpha,vmax/fabs(hextra[0])); +fix_box_relax.cpp: if (p_flag[1]) alpha = MIN(alpha,vmax/fabs(hextra[1])); +fix_box_relax.cpp: if (p_flag[2]) alpha = MIN(alpha,vmax/fabs(hextra[2])); +fix_box_relax.cpp: if (p_flag[3]) alpha = MIN(alpha,vmax/fabs(hextra[3])); +fix_box_relax.cpp: if (p_flag[4]) alpha = MIN(alpha,vmax/fabs(hextra[4])); +fix_box_relax.cpp: if (p_flag[5]) alpha = MIN(alpha,vmax/fabs(hextra[5])); +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp: dilate the box and owned/ghost atoms around center of box +fix_box_relax.cpp:------------------------------------------------------------------------- */ +fix_box_relax.cpp: // rescale simulation box from linesearch starting point +fix_box_relax.cpp: // scale atom coords for all atoms or only for fix group atoms +fix_box_relax.cpp: // convert pertinent atoms and rigid bodies to lamda coords +fix_box_relax.cpp: // reset global and local box to new size/shape +fix_box_relax.cpp: domain->boxlo[i] = currentBoxLo0 + (currentBoxLo0 - fixedpoint[i])/domain->h[i]*ds[i]*h0[i]; +fix_box_relax.cpp: domain->boxhi[i] = currentBoxHi0 + (currentBoxHi0 - fixedpoint[i])/domain->h[i]*ds[i]*h0[i]; +fix_box_relax.cpp: error->all(FLERR,"Fix box/relax generated negative box length"); +fix_box_relax.cpp: // scale tilt factors with cell, if set +fix_box_relax.cpp: if (scaleyz) domain->yz = (domain->boxhi[2] - domain->boxlo[2])*h0[3]/h0[2]; +fix_box_relax.cpp: if (scalexz) domain->xz = (domain->boxhi[2] - domain->boxlo[2])*h0[4]/h0[2]; +fix_box_relax.cpp: if (scalexy) domain->xy = (domain->boxhi[1] - domain->boxlo[1])*h0[5]/h0[1]; +fix_box_relax.cpp: // convert pertinent atoms and rigid bodies back to box coords +fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ +fix_box_relax.cpp: double ave = 1.0/3.0 * (tensor[0] + tensor[1] + tensor[2]); +fix_box_relax.cpp: // switch order from xy-xz-yz to Voigt +fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ +fix_box_relax.cpp: // reset id_temp of pressure to new temperature ID +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:-----------------------------------------------------------------------*/ +fix_box_relax.cpp: // reset reference box dimensions +fix_box_relax.cpp: // compute target deviatoric stress tensor pdevmod +fix_box_relax.cpp: // Modify to account for off-diagonal terms +fix_box_relax.cpp: // These equations come from the stationarity relation: +fix_box_relax.cpp: // Pdev,sys = Pdev,targ*hinv^t*hdiag +fix_box_relax.cpp: // where: +fix_box_relax.cpp: // Pdev,sys is the system deviatoric stress tensor, +fix_box_relax.cpp: // Pdev,targ = pdeviatoric, effective target deviatoric stress +fix_box_relax.cpp: // hinv^t is the transpose of the inverse h tensor +fix_box_relax.cpp: // hdiag is the diagonal part of the h tensor +fix_box_relax.cpp: // compute symmetric sigma tensor +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:-----------------------------------------------------------------------*/ +fix_box_relax.cpp: // compute strain energy = 0.5*Tr(sigma*h*h^t) in energy units +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:-----------------------------------------------------------------------*/ +fix_box_relax.cpp: // [ 0 5 4 ] [ 0 5 4 ] [ 0 5 4 ] +fix_box_relax.cpp: // [ 5 1 3 ] = [ - 1 3 ] [ 5 1 3 ] +fix_box_relax.cpp: // [ 4 3 2 ] [ - - 2 ] [ 4 3 2 ] +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp:-----------------------------------------------------------------------*/ +fix_box_relax.cpp: if (pflagsum) p_hydro /= pflagsum; +fix_box_relax.cpp:/* ---------------------------------------------------------------------- +fix_box_relax.cpp: ---------------------------------------------------------------------- */ +fix_controller.cpp:/* ---------------------------------------------------------------------- +fix_controller.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_controller.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_controller.cpp:------------------------------------------------------------------------- */ +fix_controller.cpp:/* ---------------------------------------------------------------------- */ +fix_controller.cpp: // process variable arg +fix_controller.cpp: // setpoint arg +fix_controller.cpp: // control variable arg +fix_controller.cpp: // error check +fix_controller.cpp:/* ---------------------------------------------------------------------- */ +fix_controller.cpp:/* ---------------------------------------------------------------------- */ +fix_controller.cpp:/* ---------------------------------------------------------------------- */ +fix_controller.cpp: // set sampling time +fix_controller.cpp:/* ---------------------------------------------------------------------- */ +fix_controller.cpp: // current value of pv = invocation of compute,fix,variable +fix_controller.cpp: // compute/fix/variable may invoke computes so wrap with clear/add +fix_controller.cpp: // invoke compute if not previously invoked +fix_controller.cpp: // access fix field, guaranteed to be ready +fix_controller.cpp: // evaluate equal-style variable +fix_controller.cpp: // new control var = f(old value, current process var, setpoint) +fix_controller.cpp: // cv = cvold -kp*err -ki*sumerr -kd*deltaerr +fix_controller.cpp: // note: this deviates from standard notation, which is +fix_controller.cpp: // cv = kp*err +ki*sumerr +kd*deltaerr +fix_controller.cpp: // the difference is in the sign and the time integral +fix_controller.cpp: // 3 terms of PID equation +fix_controller.cpp: // reset control variable +fix_controller.cpp:/* ---------------------------------------------------------------------- */ +fix_controller.cpp:/* ---------------------------------------------------------------------- +fix_controller.cpp:------------------------------------------------------------------------- */ +fix.cpp:/* ---------------------------------------------------------------------- +fix.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix.cpp:------------------------------------------------------------------------- */ +fix.cpp:// allocate space for static class instance variable and initialize it +fix.cpp:/* ---------------------------------------------------------------------- */ +fix.cpp: // fix ID, group, and style +fix.cpp: // ID must be all alphanumeric chars or underscores +fix.cpp: // reasonable defaults +fix.cpp: // however, each fix that uses these values should explicitly set them +fix.cpp: // per-atom virial +fix.cpp: // set vflag_atom = 0 b/c some fixes grow vatom in grow_arrays() +fix.cpp: // which may occur outside of timestepping +fix.cpp: // KOKKOS per-fix data masks +fix.cpp:/* ---------------------------------------------------------------------- */ +fix.cpp:/* ---------------------------------------------------------------------- +fix.cpp:------------------------------------------------------------------------- */ +fix.cpp: if (strcmp(arg[iarg],"dynamic/dof") == 0) { +fix.cpp:/* ---------------------------------------------------------------------- +fix.cpp:------------------------------------------------------------------------- */ +fix.cpp: eflag_atom = eflag / 2; +fix.cpp: vflag_atom = vflag / 4; +fix.cpp: // reallocate per-atom arrays if necessary +fix.cpp: // zero accumulators +fix.cpp: // no global energy variable to zero (unlike pair,bond,angle,etc) +fix.cpp: // fixes tally it individually via fix_modify energy yes and compute_scalar() +fix.cpp:/* ---------------------------------------------------------------------- +fix.cpp:------------------------------------------------------------------------- */ +fix.cpp: vflag_atom = vflag / 4; +fix.cpp: // reallocate per-atom array if necessary +fix.cpp: // zero accumulators +fix.cpp:/* ---------------------------------------------------------------------- +fix.cpp: tally per-atom energy and global/per-atom virial into accumulators +fix.cpp: increment per-atom energy of each atom in list by 1/total fraction +fix.cpp: this method can be used when fix computes energy/forces in post_force() +fix.cpp:------------------------------------------------------------------------- */ +fix.cpp: double fraction = eng/total; +fix.cpp:/* ---------------------------------------------------------------------- +fix.cpp: increment global virial by n/total fraction +fix.cpp: increment per-atom virial of each atom in list by 1/total fraction +fix.cpp:------------------------------------------------------------------------- */ +fix.cpp: double fraction = n/total; +fix.cpp: double fraction = 1.0/total; +fix_deform.cpp:/* ---------------------------------------------------------------------- +fix_deform.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_deform.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_deform.cpp:------------------------------------------------------------------------- */ +fix_deform.cpp:/* ---------------------------------------------------------------------- +fix_deform.cpp:------------------------------------------------------------------------- */ +fix_deform.cpp:// same as domain.cpp, fix_nvt_sllod.cpp, compute_temp_deform.cpp +fix_deform.cpp:/* ---------------------------------------------------------------------- */ +fix_deform.cpp: // set defaults +fix_deform.cpp: // parse arguments +fix_deform.cpp: // read options from end of input line +fix_deform.cpp: // no x remap effectively moves atoms within box, so set restart_pbc +fix_deform.cpp: // setup dimflags used by other classes to check for volume-change conflicts +fix_deform.cpp: // no tensile deformation on shrink-wrapped dims +fix_deform.cpp: // b/c shrink wrap will change box-length +fix_deform.cpp: // no tilt deformation on shrink-wrapped 2nd dim +fix_deform.cpp: // b/c shrink wrap will change tilt factor in domain::reset_box() +fix_deform.cpp: // apply scaling to FINAL,DELTA,VEL,WIGGLE since they have dist/vel units +fix_deform.cpp: // for 3,4,5: scaling is in 1st dimension, e.g. x for xz +fix_deform.cpp: // for VOLUME, setup links to other dims +fix_deform.cpp: // fixed, dynamic1, dynamic2 +fix_deform.cpp: // set varflag +fix_deform.cpp: // set initial values at time fix deform is issued +fix_deform.cpp: // reneighboring only forced if flips can occur due to shape changes +fix_deform.cpp:/* ---------------------------------------------------------------------- */ +fix_deform.cpp: // reset domain's h_rate = 0.0, since this fix may have made it non-zero +fix_deform.cpp:/* ---------------------------------------------------------------------- */ +fix_deform.cpp:/* ---------------------------------------------------------------------- */ +fix_deform.cpp: // error if more than one fix deform +fix_deform.cpp: // domain, fix nvt/sllod, compute temp/deform only work on single h_rate +fix_deform.cpp: // Kspace setting +fix_deform.cpp: // elapsed time for entire simulation, including multiple runs if defined +fix_deform.cpp: // check variables for VARIABLE style +fix_deform.cpp: // set start/stop values for box size and shape +fix_deform.cpp: // if single run, start is current values +fix_deform.cpp: // if multiple runs enabled via run start/stop settings, +fix_deform.cpp: // start is value when fix deform was issued +fix_deform.cpp: // if VARIABLE or NONE, no need to set +fix_deform.cpp: 0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: 0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: // compute min/max for WIGGLE = extrema tilt factor will ever reach +fix_deform.cpp: set[i].amplitude*sin(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: set[i].amplitude*sin(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: set[i].amplitude*sin(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: set[i].amplitude*sin(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: // if using tilt TRATE, then initial tilt must be non-zero +fix_deform.cpp: // if yz changes and will cause box flip, then xy cannot be changing +fix_deform.cpp: // yz = [3], xy = [5] +fix_deform.cpp: // this is b/c the flips would induce continuous changes in xz +fix_deform.cpp: // in order to keep the edge vectors of the flipped shape matrix +fix_deform.cpp: // an integer combination of the edge vectors of the unflipped shape matrix +fix_deform.cpp: // VARIABLE for yz is error, since no way to calculate if box flip occurs +fix_deform.cpp: // WIGGLE lo/hi flip test is on min/max oscillation limit, not tilt_stop +fix_deform.cpp: // only trigger actual errors if flipflag is set +fix_deform.cpp: if (lo/(set[1].hi_start-set[1].lo_start) < -0.5 || +fix_deform.cpp: hi/(set[1].hi_start-set[1].lo_start) > 0.5) flag = 1; +fix_deform.cpp: if (lo/(set[1].hi_stop-set[1].lo_stop) < -0.5 || +fix_deform.cpp: hi/(set[1].hi_stop-set[1].lo_stop) > 0.5) flag = 1; +fix_deform.cpp: // set domain->h_rate values for use by domain and other fixes/computes +fix_deform.cpp: // initialize all rates to 0.0 +fix_deform.cpp: // cannot set here for TRATE,VOLUME,WIGGLE,VARIABLE since not constant +fix_deform.cpp: dlo_dt = (set[i].lo_stop - set[i].lo_start) / delt; +fix_deform.cpp: dhi_dt = (set[i].hi_stop - set[i].hi_start) / delt; +fix_deform.cpp: h_rate[i] = (set[i].tilt_stop - set[i].tilt_start) / delt; +fix_deform.cpp: // detect if any rigid fixes exist so rigid bodies can be rescaled +fix_deform.cpp: // rfix[] = indices to each fix rigid +fix_deform.cpp:/* ---------------------------------------------------------------------- +fix_deform.cpp:------------------------------------------------------------------------- */ +fix_deform.cpp:/* ---------------------------------------------------------------------- */ +fix_deform.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_deform.cpp: // wrap variable evaluations with clear/add +fix_deform.cpp: // set new box size +fix_deform.cpp: // for NONE, target is current box size +fix_deform.cpp: // for TRATE, set target directly based on current time, also set h_rate +fix_deform.cpp: // for WIGGLE, set target directly based on current time, also set h_rate +fix_deform.cpp: // for VARIABLE, set target directly via variable eval, also set h_rate +fix_deform.cpp: // for others except VOLUME, target is linear value between start and stop +fix_deform.cpp: 0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: 0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: h_rate[i] = TWOPI/set[i].tperiod * set[i].amplitude * +fix_deform.cpp: cos(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: // set new box size for VOLUME dims that are linked to other dims +fix_deform.cpp: // NOTE: still need to set h_rate for these dims +fix_deform.cpp: 0.5*(set[i].vol_start / +fix_deform.cpp: set[set[i].dynamic1].lo_target) / +fix_deform.cpp: 0.5*(set[i].vol_start / +fix_deform.cpp: set[set[i].dynamic1].lo_target) / +fix_deform.cpp: 0.5*(set[i].vol_start / +fix_deform.cpp: set[set[i].dynamic1].lo_target) / +fix_deform.cpp: 0.5*(set[i].vol_start / +fix_deform.cpp: set[set[i].dynamic1].lo_target) / +fix_deform.cpp: 0.5*sqrt(set[i].vol_start / +fix_deform.cpp: set[set[i].dynamic1].lo_target) / +fix_deform.cpp: 0.5*sqrt(set[i].vol_start / +fix_deform.cpp: set[set[i].dynamic1].lo_target) / +fix_deform.cpp: // for triclinic, set new box shape +fix_deform.cpp: // for NONE, target is current tilt +fix_deform.cpp: // for TRATE, set target directly based on current time. also set h_rate +fix_deform.cpp: // for WIGGLE, set target directly based on current time. also set h_rate +fix_deform.cpp: // for VARIABLE, set target directly via variable eval. also set h_rate +fix_deform.cpp: // for other styles, target is linear value between start and stop values +fix_deform.cpp: set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: h_rate[i] = TWOPI/set[i].tperiod * set[i].amplitude * +fix_deform.cpp: cos(TWOPI*delt/set[i].tperiod); +fix_deform.cpp: // tilt_target can be large positive or large negative value +fix_deform.cpp: // add/subtract box lengths until tilt_target is closest to current value +fix_deform.cpp: double current = h[i]/h[idenom]; +fix_deform.cpp: while (set[i].tilt_target/denom - current > 0.0) +fix_deform.cpp: while (set[i].tilt_target/denom - current < 0.0) +fix_deform.cpp: if (fabs(set[i].tilt_target/denom - 1.0 - current) < +fix_deform.cpp: fabs(set[i].tilt_target/denom - current)) +fix_deform.cpp: // if any tilt ratios exceed 0.5, set flip = 1 and compute new tilt values +fix_deform.cpp: // do not flip in x or y if non-periodic (can tilt but not flip) +fix_deform.cpp: // this is b/c the box length would be changed (dramatically) by flip +fix_deform.cpp: // if yz tilt exceeded, adjust C vector by one B vector +fix_deform.cpp: // if xz tilt exceeded, adjust C vector by one A vector +fix_deform.cpp: // if xy tilt exceeded, adjust B vector by one A vector +fix_deform.cpp: // check yz first since it may change xz, then xz check comes after +fix_deform.cpp: // flip is performed on next timestep, before reneighboring in pre-exchange() +fix_deform.cpp: double xprdinv = 1.0 / xprd; +fix_deform.cpp: double yprdinv = 1.0 / yprd; +fix_deform.cpp: // convert atoms and rigid bodies to lamda coords +fix_deform.cpp: // reset global and local box to new size/shape +fix_deform.cpp: // only if deform fix is controlling the dimension +fix_deform.cpp: // convert atoms and rigid bodies back to box coords +fix_deform.cpp: // redo KSpace coeffs since box has changed +fix_deform.cpp:/* ---------------------------------------------------------------------- */ +fix_deform.cpp:/* ---------------------------------------------------------------------- +fix_deform.cpp:------------------------------------------------------------------------- */ +fix_deprecated.cpp:/* ---------------------------------------------------------------------- +fix_deprecated.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_deprecated.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_deprecated.cpp:------------------------------------------------------------------------- */ +fix_deprecated.cpp:/* ---------------------------------------------------------------------- */ +fix_deprecated.cpp: if (strncmp(style,"ave/spatial",11) == 0) { +fix_deprecated.cpp: "NOTE: The fix styles 'ave/spatial' and 'ave/spatial/sphere' have been replaced\n" +fix_deprecated.cpp: "by the more general fix ave/chunk and compute chunk/atom commands.\n" +fix_deprecated.cpp: "All ave/spatial and ave/spatial/sphere functionality is available in these\n" +fix_deprecated.cpp: "new commands. These ave/spatial keywords & options are part of fix ave/chunk:\n" +fix_deprecated.cpp: "These ave/spatial keywords & options for binning are part of compute chunk/atom:\n" +fix_drag.cpp:/* ---------------------------------------------------------------------- +fix_drag.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_drag.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_drag.cpp:------------------------------------------------------------------------- */ +fix_drag.cpp:/* ---------------------------------------------------------------------- */ +fix_drag.cpp:/* ---------------------------------------------------------------------- */ +fix_drag.cpp:/* ---------------------------------------------------------------------- */ +fix_drag.cpp:/* ---------------------------------------------------------------------- */ +fix_drag.cpp:/* ---------------------------------------------------------------------- */ +fix_drag.cpp: // apply drag force to atoms in group of magnitude f_mag +fix_drag.cpp: // apply in direction (r-r0) if atom is further than delta away +fix_drag.cpp: prefactor = f_mag/r; +fix_drag.cpp:/* ---------------------------------------------------------------------- */ +fix_drag.cpp:/* ---------------------------------------------------------------------- +fix_drag.cpp:------------------------------------------------------------------------- */ +fix_drag.cpp: // only sum across procs one time +fix_dt_reset.cpp:/* ---------------------------------------------------------------------- +fix_dt_reset.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_dt_reset.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_dt_reset.cpp:------------------------------------------------------------------------- */ +fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ +fix_dt_reset.cpp: if (narg < 7) error->all(FLERR,"Illegal fix dt/reset command"); +fix_dt_reset.cpp: // set time_depend, else elapsed time accumulation can be messed up +fix_dt_reset.cpp: if (nevery <= 0) error->all(FLERR,"Illegal fix dt/reset command"); +fix_dt_reset.cpp: if (minbound && tmin < 0.0) error->all(FLERR,"Illegal fix dt/reset command"); +fix_dt_reset.cpp: if (maxbound && tmax < 0.0) error->all(FLERR,"Illegal fix dt/reset command"); +fix_dt_reset.cpp: error->all(FLERR,"Illegal fix dt/reset command"); +fix_dt_reset.cpp: if (xmax <= 0.0) error->all(FLERR,"Illegal fix dt/reset command"); +fix_dt_reset.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix dt/reset command"); +fix_dt_reset.cpp: else error->all(FLERR,"Illegal fix dt/reset command"); +fix_dt_reset.cpp: } else error->all(FLERR,"Illegal fix dt/reset command"); +fix_dt_reset.cpp: // setup scaling, based on xlattice parameter +fix_dt_reset.cpp: // initializations +fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ +fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ +fix_dt_reset.cpp: // set rRESPA flag +fix_dt_reset.cpp: // check for DCD or XTC dumps +fix_dt_reset.cpp: "Dump dcd/xtc timestamp may be wrong with fix dt/reset"); +fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ +fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ +fix_dt_reset.cpp: // compute vmax and amax of any atom in group +fix_dt_reset.cpp: if (rmass) massinv = 1.0/rmass[i]; +fix_dt_reset.cpp: else massinv = 1.0/mass[type[i]]; +fix_dt_reset.cpp: if (vsq > 0.0) dtv = xmax/sqrt(vsq); +fix_dt_reset.cpp: if (fsq > 0.0) dtf = sqrt(2.0*xmax/(ftm2v*sqrt(fsq)*massinv)); +fix_dt_reset.cpp: if (delr > xmax) dt *= xmax/delr; +fix_dt_reset.cpp: // if timestep didn't change, just return +fix_dt_reset.cpp: // else reset update->dt and other classes that depend on it +fix_dt_reset.cpp: // rRESPA, pair style, fixes +fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ +fix_enforce2d.cpp:/* ---------------------------------------------------------------------- +fix_enforce2d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_enforce2d.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_enforce2d.cpp:------------------------------------------------------------------------- */ +fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ +fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ +fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ +fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ +fix_enforce2d.cpp: // list of fixes with enforce2d methods +fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ +fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ +fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ +fix_enforce2d.cpp: // for systems with omega/angmom/torque, zero x and y components +fix_enforce2d.cpp: // invoke other fixes that enforce 2d +fix_enforce2d.cpp: // fix rigid variants +fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ +fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_external.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- */ +fix_external.cpp: if (strcmp(arg[3],"pf/callback") == 0) { +fix_external.cpp: } else if (strcmp(arg[3],"pf/array") == 0) { +fix_external.cpp: // perform initial allocation of atom-based array +fix_external.cpp: // register with Atom class +fix_external.cpp:/* ---------------------------------------------------------------------- */ +fix_external.cpp: // unregister callbacks to this fix from Atom class +fix_external.cpp:/* ---------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- */ +fix_external.cpp:/* --------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- */ +fix_external.cpp: // invoke the callback in driver program +fix_external.cpp: // it will fill fexternal with forces +fix_external.cpp: // add forces from fexternal to atoms in group +fix_external.cpp:/* ---------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_external.cpp:/* ---------------------------------------------------------------------- +fix_external.cpp:------------------------------------------------------------------------- */ +fix_force_spin.cpp:/* ---------------------------------------------------------------------- +fix_force_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_force_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_force_spin.cpp:------------------------------------------------------------------------- */ +fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_force_spin.cpp: // 7 arguments for a force/spin fix command: +fix_force_spin.cpp: //(fix ID group force/spin magnitude (T or eV) style (zeeman or anisotropy) direction (3 cartesian coordinates) +fix_force_spin.cpp: //Magnetic interactions only coded for cartesian coordinates +fix_force_spin.cpp: } else error->all(FLERR,"Illegal fix force/spin command"); +fix_force_spin.cpp: degree2rad = MY_PI/180.0; +fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_force_spin.cpp: double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) +fix_force_spin.cpp: double mub = 5.78901e-5; //in eV/T +fix_force_spin.cpp: double gyro = mub/hbar; //in rad.THz/T +fix_force_spin.cpp: H_field *= gyro; //in rad.THz +fix_force_spin.cpp: Ka /= hbar; //in rad.THz +fix_force_spin.cpp: // check variables +fix_force_spin.cpp: // set magnetic field components once and for all +fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_force_spin.cpp: // update gravity due to variables +fix_force_spin.cpp: set_magneticforce(); //Update value of the mag. field if time-dependent +fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_force_spin.cpp://No acceleration for magnetic EOM, only a "magnetic force" +fix_force_spin.cpp:/* ---------------------------------------------------------------------- +fix_force_spin.cpp:------------------------------------------------------------------------- */ +fix_force_spin.cpp: // only sum across procs one time +fix_gravity.cpp:/* ---------------------------------------------------------------------- +fix_gravity.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_gravity.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_gravity.cpp:------------------------------------------------------------------------- */ +fix_gravity.cpp:/* ---------------------------------------------------------------------- */ +fix_gravity.cpp: degree2rad = MY_PI/180.0; +fix_gravity.cpp:/* ---------------------------------------------------------------------- */ +fix_gravity.cpp:/* ---------------------------------------------------------------------- */ +fix_gravity.cpp:/* ---------------------------------------------------------------------- */ +fix_gravity.cpp: // check variables +fix_gravity.cpp: // set gravity components once and for all +fix_gravity.cpp:/* ---------------------------------------------------------------------- */ +fix_gravity.cpp:/* ---------------------------------------------------------------------- */ +fix_gravity.cpp: // update gravity due to variables +fix_gravity.cpp:/* ---------------------------------------------------------------------- */ +fix_gravity.cpp:/* ---------------------------------------------------------------------- */ +fix_gravity.cpp: xgrav = xdir/length; +fix_gravity.cpp: ygrav = ydir/length; +fix_gravity.cpp: zgrav = zdir/length; +fix_gravity.cpp: xgrav = xdir/length; +fix_gravity.cpp: ygrav = ydir/length; +fix_gravity.cpp:/* ---------------------------------------------------------------------- +fix_gravity.cpp:------------------------------------------------------------------------- */ +fix_gravity.cpp: // only sum across procs one time +fix_group.cpp:/* ---------------------------------------------------------------------- +fix_group.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_group.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_group.cpp:------------------------------------------------------------------------- */ +fix_group.cpp:/* ---------------------------------------------------------------------- */ +fix_group.cpp: // dgroupbit = bitmask of dynamic group +fix_group.cpp: // group ID is last part of fix ID +fix_group.cpp: // process optional args +fix_group.cpp:/* ---------------------------------------------------------------------- */ +fix_group.cpp:/* ---------------------------------------------------------------------- */ +fix_group.cpp:/* ---------------------------------------------------------------------- */ +fix_group.cpp: // parent group cannot be dynamic +fix_group.cpp: // else order of FixGroup fixes would matter +fix_group.cpp: // set current indices for region and variable +fix_group.cpp: // warn if any FixGroup is not at tail end of all post_integrate fixes +fix_group.cpp:/* ---------------------------------------------------------------------- +fix_group.cpp:------------------------------------------------------------------------- */ +fix_group.cpp:/* ---------------------------------------------------------------------- */ +fix_group.cpp: // only assign atoms to group on steps that are multiples of nevery +fix_group.cpp:/* ---------------------------------------------------------------------- */ +fix_group.cpp:/* ---------------------------------------------------------------------- */ +fix_group.cpp: // invoke atom-style variable if defined +fix_group.cpp: memory->create(var,nlocal,"fix/group:varvalue"); +fix_group.cpp: // update region in case it has a variable dependence or is dynamic +fix_group.cpp: // set mask for each atom +fix_group.cpp: // only in group if in parent group, in region, variable is non-zero +fix_group.cpp: // if compute, fix, etc needs updated masks of ghost atoms, +fix_group.cpp: // it must do forward_comm() to update them +fix_halt.cpp:/* ---------------------------------------------------------------------- +fix_halt.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_halt.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_halt.cpp:------------------------------------------------------------------------- */ +fix_halt.cpp:/* ---------------------------------------------------------------------- */ +fix_halt.cpp: // comparison args +fix_halt.cpp: // parse optional args +fix_halt.cpp: // add nfirst to all computes that store invocation times +fix_halt.cpp: // since don't know a priori which are invoked via variables by this fix +fix_halt.cpp: // once in end_of_step() can set timestep for ones actually invoked +fix_halt.cpp: const bigint nfirst = (update->ntimestep/nevery)*nevery + nevery; +fix_halt.cpp:/* ---------------------------------------------------------------------- */ +fix_halt.cpp:/* ---------------------------------------------------------------------- */ +fix_halt.cpp:/* ---------------------------------------------------------------------- */ +fix_halt.cpp: // set ivar from current variable list +fix_halt.cpp: // settings used by TLIMIT +fix_halt.cpp: nextstep = (update->ntimestep/nevery)*nevery + nevery; +fix_halt.cpp:/* ---------------------------------------------------------------------- */ +fix_halt.cpp: // variable evaluation may invoke computes so wrap with clear/add +fix_halt.cpp: // check if halt is triggered, else just return +fix_halt.cpp: // hard halt -> exit LAMMPS +fix_halt.cpp: // soft/continue halt -> trigger timer to break from run loop +fix_halt.cpp: // print message with ID of fix halt in case multiple instances +fix_halt.cpp:/* ---------------------------------------------------------------------- +fix_halt.cpp:------------------------------------------------------------------------- */ +fix_halt.cpp: // continue halt -> subsequent runs are allowed +fix_halt.cpp:/* ---------------------------------------------------------------------- +fix_halt.cpp:------------------------------------------------------------------------- */ +fix_halt.cpp:/* ---------------------------------------------------------------------- +fix_halt.cpp: first project to 1/2 the run time, thereafter to end of run +fix_halt.cpp:------------------------------------------------------------------------- */ +fix_halt.cpp: static_cast (tratio*value/cpu * elapsed); +fix_halt.cpp: nextstep = (final/nevery)*nevery + nevery; +fix_heat.cpp:/* ---------------------------------------------------------------------- +fix_heat.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_heat.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_heat.cpp:------------------------------------------------------------------------- */ +fix_heat.cpp:/* ---------------------------------------------------------------------- +fix_heat.cpp:------------------------------------------------------------------------- */ +fix_heat.cpp:/* ---------------------------------------------------------------------- */ +fix_heat.cpp: // optional args +fix_heat.cpp:/* ---------------------------------------------------------------------- */ +fix_heat.cpp:/* ---------------------------------------------------------------------- */ +fix_heat.cpp:/* ---------------------------------------------------------------------- */ +fix_heat.cpp: // set index and check validity of region +fix_heat.cpp: // check variable +fix_heat.cpp: // cannot have 0 atoms in group +fix_heat.cpp:/* ---------------------------------------------------------------------- */ +fix_heat.cpp: // reallocate per-atom arrays if necessary +fix_heat.cpp: // evaluate variable +fix_heat.cpp: // vcm = center-of-mass velocity of scaled atoms +fix_heat.cpp: // add heat via scale factor on velocities for CONSTANT and EQUAL cases +fix_heat.cpp: // scale = velocity scale factor to accomplish eflux change in energy +fix_heat.cpp: // vsub = velocity subtracted from each atom to preserve momentum +fix_heat.cpp: // overall KE cannot go negative +fix_heat.cpp: (ke + heat - 0.5*vcmsq*masstotal)/(ke - 0.5*vcmsq*masstotal); +fix_heat.cpp: // add heat via per-atom scale factor on velocities for ATOM case +fix_heat.cpp: // vscale = velocity scale factor to accomplish eflux change in energy +fix_heat.cpp: // vsub = velocity subtracted from each atom to preserve momentum +fix_heat.cpp: // KE of an atom cannot go negative +fix_heat.cpp: (ke + heat - 0.5*vcmsq*masstotal)/(ke - 0.5*vcmsq*masstotal); +fix_heat.cpp: vsub[0] /= masstotal; +fix_heat.cpp: vsub[1] /= masstotal; +fix_heat.cpp: vsub[2] /= masstotal; +fix_heat.cpp: (ke + heat - 0.5*vcmsq*masstotal)/(ke - 0.5*vcmsq*masstotal); +fix_heat.cpp: vsub[0] /= masstotal; +fix_heat.cpp: vsub[1] /= masstotal; +fix_heat.cpp: vsub[2] /= masstotal; +fix_heat.cpp:/* ---------------------------------------------------------------------- */ +fix_heat.cpp: else average_scale = scale_sum_all/static_cast(ncount_all); +fix_heat.cpp:/* ---------------------------------------------------------------------- +fix_heat.cpp:------------------------------------------------------------------------- */ +fix_indent.cpp:/* ---------------------------------------------------------------------- +fix_indent.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_indent.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_indent.cpp:------------------------------------------------------------------------- */ +fix_indent.cpp:/* ---------------------------------------------------------------------- +fix_indent.cpp:------------------------------------------------------------------------- */ +fix_indent.cpp:/* ---------------------------------------------------------------------- */ +fix_indent.cpp: k3 = k/3.0; +fix_indent.cpp: // read options from end of input line +fix_indent.cpp: // setup scaling +fix_indent.cpp: // apply scaling factors to geometry +fix_indent.cpp:/* ---------------------------------------------------------------------- */ +fix_indent.cpp:/* ---------------------------------------------------------------------- */ +fix_indent.cpp:/* ---------------------------------------------------------------------- */ +fix_indent.cpp:/* ---------------------------------------------------------------------- */ +fix_indent.cpp:/* ---------------------------------------------------------------------- */ +fix_indent.cpp:/* ---------------------------------------------------------------------- */ +fix_indent.cpp: // indenter values, 0 = energy, 1-3 = force components +fix_indent.cpp: // wrap variable evaluations with clear/add +fix_indent.cpp: // spherical indenter +fix_indent.cpp: // ctr = current indenter center +fix_indent.cpp: // remap into periodic box +fix_indent.cpp: fx = delx*fmag/r; +fix_indent.cpp: fy = dely*fmag/r; +fix_indent.cpp: fz = delz*fmag/r; +fix_indent.cpp: // cylindrical indenter +fix_indent.cpp: // ctr = current indenter axis +fix_indent.cpp: // remap into periodic box +fix_indent.cpp: // 3rd coord is just near box for remap(), since isn't used +fix_indent.cpp: fx = delx*fmag/r; +fix_indent.cpp: fy = dely*fmag/r; +fix_indent.cpp: fz = delz*fmag/r; +fix_indent.cpp: // planar indenter +fix_indent.cpp: // plane = current plane position +fix_indent.cpp:/* ---------------------------------------------------------------------- */ +fix_indent.cpp:/* ---------------------------------------------------------------------- */ +fix_indent.cpp:/* ---------------------------------------------------------------------- +fix_indent.cpp:------------------------------------------------------------------------- */ +fix_indent.cpp: // only sum across procs one time +fix_indent.cpp:/* ---------------------------------------------------------------------- +fix_indent.cpp:------------------------------------------------------------------------- */ +fix_indent.cpp: // only sum across procs one time +fix_indent.cpp:/* ---------------------------------------------------------------------- +fix_indent.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_langevin.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp:#define SINERTIA 0.4 // moment of inertia prefactor for sphere +fix_langevin.cpp:#define EINERTIA 0.2 // moment of inertia prefactor for ellipsoid +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp: // initialize Marsaglia RNG with processor-unique seed +fix_langevin.cpp: // allocate per-type arrays for force prefactors +fix_langevin.cpp: // optional args +fix_langevin.cpp: // set temperature = NULL, user can override via fix_modify if wants bias +fix_langevin.cpp: // flangevin is unallocated until first call to setup() +fix_langevin.cpp: // compute_scalar checks for this and returns 0.0 +fix_langevin.cpp: // if flangevin_allocated is not set +fix_langevin.cpp: // setup atom-based array for franprev +fix_langevin.cpp: // register with Atom class +fix_langevin.cpp: // no need to set peratom_flag, b/c data is for internal use only +fix_langevin.cpp: // initialize franprev to zero +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp: // check variable +fix_langevin.cpp: // if oflag or ascale set, check that all group particles are finite-size +fix_langevin.cpp: // set force prefactors +fix_langevin.cpp: gfactor1[i] = -atom->mass[i] / t_period / force->ftm2v; +fix_langevin.cpp: sqrt(24.0*force->boltz/t_period/update->dt/force->mvv2e) / +fix_langevin.cpp: gfactor1[i] *= 1.0/ratio[i]; +fix_langevin.cpp: gfactor2[i] *= 1.0/sqrt(ratio[i]); +fix_langevin.cpp: if (gjfflag) gjffac = 1.0/(1.0+update->dt/2.0/t_period); +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp: // enumerate all 2^6 possibilities for template parameters +fix_langevin.cpp: // this avoids testing them inside inner loop: +fix_langevin.cpp: // TSTYLEATOM, GJF, TALLY, BIAS, RMASS, ZERO +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp: // apply damping and thermostat to atoms in group +fix_langevin.cpp: // for Tp_TSTYLEATOM: +fix_langevin.cpp: // use per-atom per-coord target temperature +fix_langevin.cpp: // for Tp_GJF: +fix_langevin.cpp: // use Gronbech-Jensen/Farago algorithm +fix_langevin.cpp: // else use regular algorithm +fix_langevin.cpp: // for Tp_TALLY: +fix_langevin.cpp: // store drag plus random forces in flangevin[nlocal][3] +fix_langevin.cpp: // for Tp_BIAS: +fix_langevin.cpp: // calculate temperature since some computes require temp +fix_langevin.cpp: // computed on current nlocal atoms to remove bias +fix_langevin.cpp: // test v = 0 since some computes mask non-participating atoms via v = 0 +fix_langevin.cpp: // and added force has extra term not multiplied by v = 0 +fix_langevin.cpp: // for Tp_RMASS: +fix_langevin.cpp: // use per-atom masses +fix_langevin.cpp: // else use per-type masses +fix_langevin.cpp: // for Tp_ZERO: +fix_langevin.cpp: // sum random force over all atoms in group +fix_langevin.cpp: // subtract sum/count from each atom in group +fix_langevin.cpp: // reallocate flangevin if necessary +fix_langevin.cpp: gamma1 = -rmass[i] / t_period / ftm2v; +fix_langevin.cpp: gamma2 = sqrt(rmass[i]) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v; +fix_langevin.cpp: gamma1 *= 1.0/ratio[type[i]]; +fix_langevin.cpp: gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt; +fix_langevin.cpp: // set total force to zero +fix_langevin.cpp: fsumall[0] /= count; +fix_langevin.cpp: fsumall[1] /= count; +fix_langevin.cpp: fsumall[2] /= count; +fix_langevin.cpp: // thermostat omega and angmom +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_langevin.cpp: // if variable temp, evaluate variable, wrap with clear/add +fix_langevin.cpp: // reallocate tforce array if necessary +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp: // rescale gamma1/gamma2 by 10/3 & sqrt(10/3) for spherical particles +fix_langevin.cpp: // does not affect rotational thermosatting +fix_langevin.cpp: // gives correct rotational diffusivity behavior +fix_langevin.cpp: double tendivthree = 10.0/3.0; +fix_langevin.cpp: gamma1 = -tendivthree*inertiaone / t_period / ftm2v; +fix_langevin.cpp: gamma2 = sqrt(inertiaone) * sqrt(80.0*boltz/t_period/dt/mvv2e) / ftm2v; +fix_langevin.cpp: gamma1 *= 1.0/ratio[type[i]]; +fix_langevin.cpp: gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt; +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp: // rescale gamma1/gamma2 by ascale for aspherical particles +fix_langevin.cpp: // does not affect rotational thermosatting +fix_langevin.cpp: // gives correct rotational diffusivity behavior if (nearly) spherical +fix_langevin.cpp: // any value will be incorrect for rotational diffusivity if aspherical +fix_langevin.cpp: gamma1 = -ascale / t_period / ftm2v; +fix_langevin.cpp: gamma2 = sqrt(ascale*24.0*boltz/t_period/dt/mvv2e) / ftm2v; +fix_langevin.cpp: gamma1 *= 1.0/ratio[type[i]]; +fix_langevin.cpp: gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt; +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp: sqrt(24.0*force->boltz/t_period/update->dt/force->mvv2e) / +fix_langevin.cpp: gfactor2[i] *= 1.0/sqrt(ratio[i]); +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin.cpp: // capture the very first energy transfer to thermal reservoir +fix_langevin.cpp: // convert midstep energy back to previous fullstep energy +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin.cpp:/* ---------------------------------------------------------------------- +fix_langevin.cpp:------------------------------------------------------------------------- */ +fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- +fix_langevin_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_langevin_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_langevin_spin.cpp:------------------------------------------------------------------------- */ +fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- +fix_langevin_spin.cpp:------------------------------------------------------------------------- */ +fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin_spin.cpp: if (narg != 7) error->all(FLERR,"Illegal fix langevin/spin command"); +fix_langevin_spin.cpp: if (alpha_t < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); +fix_langevin_spin.cpp: if (alpha_l < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); +fix_langevin_spin.cpp: if (seed <= 0) error->all(FLERR,"Illegal fix langevin/spin seed must be > 0"); +fix_langevin_spin.cpp: // initialize Marsaglia RNG with processor-unique seed +fix_langevin_spin.cpp: //random = new RanMars(lmp,seed + comm->me); +fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin_spin.cpp: // warn if any fix comes after this one +fix_langevin_spin.cpp: if (strcmp("force/spin",modify->fix[i]->style)==0) flag_force = MAX(flag_force,i); +fix_langevin_spin.cpp: if (strcmp("langevin/spin",modify->fix[i]->style)==0) flag_lang = i; +fix_langevin_spin.cpp: if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin should come after all other spin fixes"); +fix_langevin_spin.cpp: Gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); +fix_langevin_spin.cpp: double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) +fix_langevin_spin.cpp: D = (MY_2PI*Gil_factor*kb*temp)/hbar/dts; +fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_langevin_spin.cpp: // add the damping to the effective field of each spin +fix_langevin_spin.cpp: cpx = fmy*sz - fmz*sy;//Computing cross product +fix_langevin_spin.cpp: fmx -= alpha_t*cpx;//Taking the damping value away +fix_langevin_spin.cpp: //apply thermal effects adding random fields to fm +fix_langevin_spin.cpp: rx = sigma*random->gaussian();//Drawing random distributions +fix_langevin_spin.cpp: fm[i][0] += rx;//Adding random field +fix_langevin_spin.cpp: fm[i][0] *= Gil_factor;//Multiplying by Gilbert's prefactor +fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_lineforce.cpp:/* ---------------------------------------------------------------------- +fix_lineforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_lineforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_lineforce.cpp:------------------------------------------------------------------------- */ +fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ +fix_lineforce.cpp: xdir /= len; +fix_lineforce.cpp: ydir /= len; +fix_lineforce.cpp: zdir /= len; +fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ +fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ +fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ +fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ +fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ +fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_minimize.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- */ +fix_minimize.cpp: // register callback to this fix from Atom class +fix_minimize.cpp: // don't perform initial allocation here, must wait until add_vector() +fix_minimize.cpp:/* ---------------------------------------------------------------------- */ +fix_minimize.cpp: // unregister callbacks to this fix from Atom class +fix_minimize.cpp: // delete locally stored data +fix_minimize.cpp:/* ---------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp: allocate/initialize memory for a new vector with N elements per atom +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_minimize.cpp:/* ---------------------------------------------------------------------- +fix_minimize.cpp:------------------------------------------------------------------------- */ +fix_momentum.cpp:/* ---------------------------------------------------------------------- +fix_momentum.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_momentum.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_momentum.cpp:------------------------------------------------------------------------- */ +fix_momentum.cpp:/* ---------------------------------------------------------------------- +fix_momentum.cpp:------------------------------------------------------------------------- */ +fix_momentum.cpp:/* ---------------------------------------------------------------------- */ +fix_momentum.cpp:/* ---------------------------------------------------------------------- */ +fix_momentum.cpp:/* ---------------------------------------------------------------------- */ +fix_momentum.cpp:/* ---------------------------------------------------------------------- */ +fix_momentum.cpp: // do nothing is group is empty, i.e. mass is zero; +fix_momentum.cpp: // compute kinetic energy before momentum removal, if needed +fix_momentum.cpp: // adjust velocities by vcm to zero linear momentum +fix_momentum.cpp: // only adjust a component if flag is set +fix_momentum.cpp: // adjust velocities to zero omega +fix_momentum.cpp: // vnew_i = v_i - w x r_i +fix_momentum.cpp: // must use unwrapped coords to compute r_i correctly +fix_momentum.cpp: // compute kinetic energy after momentum removal, if needed +fix_momentum.cpp: if (ekin_new != 0.0) factor = sqrt(ekin_old/ekin_new); +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_move.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:#define INERTIA 0.2 // moment of inertia prefactor for ellipsoid +fix_move.cpp:/* ---------------------------------------------------------------------- */ +fix_move.cpp: // parse args +fix_move.cpp: // optional args +fix_move.cpp: // error checks and warnings +fix_move.cpp: // setup scaling and apply scaling factors to velocity & amplitude +fix_move.cpp: // set omega_rotate from period +fix_move.cpp: if (mstyle == WIGGLE || mstyle == ROTATE) omega_rotate = MY_2PI / period; +fix_move.cpp: // runit = unit vector along rotation axis +fix_move.cpp: runit[0] = axis[0]/len; +fix_move.cpp: runit[1] = axis[1]/len; +fix_move.cpp: runit[2] = axis[2]/len; +fix_move.cpp: // set flags for extra attributes particles may store +fix_move.cpp: // relevant extra attributes = omega, angmom, theta, quat +fix_move.cpp: // perform initial allocation of atom-based array +fix_move.cpp: // register with Atom class +fix_move.cpp: // AtomVec pointers to retrieve per-atom storage of extra quantities +fix_move.cpp: // xoriginal = initial unwrapped positions of atoms +fix_move.cpp: // toriginal = initial theta of lines +fix_move.cpp: // qoriginal = initial quat of extended particles +fix_move.cpp: // nrestart = size of per-atom restart data +fix_move.cpp: // nrestart = 1 + xorig + torig + qorig +fix_move.cpp: // time origin for movement = current timestep +fix_move.cpp:/* ---------------------------------------------------------------------- */ +fix_move.cpp: // unregister callbacks to this fix from Atom class +fix_move.cpp: // delete locally stored arrays +fix_move.cpp:/* ---------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- */ +fix_move.cpp: // set indices and style of all variables +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp: // for linear: X = X0 + V*dt +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: // for wiggle: X = X0 + A sin(w*dt) +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: // for rotate by right-hand rule around omega: +fix_move.cpp: // P = point = vector = point of rotation +fix_move.cpp: // R = vector = axis of rotation +fix_move.cpp: // w = omega of rotation (from period) +fix_move.cpp: // X0 = xoriginal = initial coord of atom +fix_move.cpp: // R0 = runit = unit vector for R +fix_move.cpp: // D = X0 - P = vector from P to X0 +fix_move.cpp: // C = (D dot R0) R0 = projection of atom coord onto R line +fix_move.cpp: // A = D - C = vector from R line to X0 +fix_move.cpp: // B = R0 cross A = vector perp to A in plane of rotation +fix_move.cpp: // A,B define plane of circular rotation around R line +fix_move.cpp: // X = P + C + A cos(w*dt) + B sin(w*dt) +fix_move.cpp: // V = w R0 cross (A cos(w*dt) + B sin(w*dt)) +fix_move.cpp: // set any extra attributes affected by rotation +fix_move.cpp: // omega for spheres, lines, tris +fix_move.cpp: // angmom for ellipsoids, tris, and bodies +fix_move.cpp: // theta for lines +fix_move.cpp: // quats for ellipsoids, tris, and bodies +fix_move.cpp: // for variable: compute x,v from variables +fix_move.cpp: // NOTE: also allow for changes to extra attributes? +fix_move.cpp: // omega, angmom, theta, quat +fix_move.cpp: // only necessary if prescribed motion involves rotation +fix_move.cpp: // reallocate displace and velocity arrays as necessary +fix_move.cpp: // pre-compute variable values, wrap with clear/add +fix_move.cpp: // update x,v +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp: dtfm = dtf / rmass[i]; +fix_move.cpp: dtfm = dtf / mass[type[i]]; +fix_move.cpp:/* ---------------------------------------------------------------------- */ +fix_move.cpp: // outermost level - update v and x +fix_move.cpp: // all other levels - nothing +fix_move.cpp:/* ---------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp: // particle not in group +fix_move.cpp: // current time still equal fix creation time +fix_move.cpp: // backup particle to time_origin +fix_move.cpp: // set theta and quat extra attributes affected by rotation +fix_move.cpp: // theta for lines +fix_move.cpp: toriginal[i] = theta - 0.0; // NOTE: edit this line +fix_move.cpp: // quats for ellipsoids, tris, and bodies +fix_move.cpp: // qoriginal = f(quat,-delta); // NOTE: edit this line +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp: // skip to Nth set of extra values +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- +fix_move.cpp:------------------------------------------------------------------------- */ +fix_move.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nh.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp: ---------------------------------------------------------------------- */ +fix_nh.cpp: if (narg < 4) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: // default values +fix_nh.cpp: // turn on tilt factor scaling, whenever applicable +fix_nh.cpp: // set fixed-point to default = center of cell +fix_nh.cpp: // used by FixNVTSllod to preserve non-default value +fix_nh.cpp: // process keywords +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: "Target temperature for fix nvt/npt/nph cannot be 0.0"); +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (drag < 0.0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: error->all(FLERR,"Fix nvt/npt/nph dilate group ID does not exist"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: // used by FixNVTSllod to preserve non-default value +fix_nh.cpp: if (mtchain < 1) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (mpchain < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (nc_tchain < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (nc_pchain < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (nreset_h0 < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: else if (strcmp(arg[iarg+1],"dipole/dlm") == 0) { +fix_nh.cpp: } else error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: // disc keyword is also parsed in fix/nh/sphere +fix_nh.cpp: } else error->all(FLERR,"Illegal fix nvt/npt/nph command"); +fix_nh.cpp: // error checks +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command pressure settings"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command pressure settings"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command pressure settings"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command pressure settings"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command pressure settings"); +fix_nh.cpp: // require periodicity in tensile dimension +fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph on a non-periodic dimension"); +fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph on a non-periodic dimension"); +fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph on a non-periodic dimension"); +fix_nh.cpp: // require periodicity in 2nd dim of off-diagonal tilt component +fix_nh.cpp: "Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension"); +fix_nh.cpp: "Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension"); +fix_nh.cpp: "Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension"); +fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph " +fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph " +fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph " +fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph with " +fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph with " +fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph with " +fix_nh.cpp: error->all(FLERR,"Can not specify Pxy/Pxz/Pyz in " +fix_nh.cpp: "fix nvt/npt/nph with non-triclinic box"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph pressure settings"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph pressure settings"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph pressure settings"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph pressure settings"); +fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph pressure settings"); +fix_nh.cpp: error->all(FLERR,"Fix nvt/npt/nph damping parameters must be > 0.0"); +fix_nh.cpp: // set pstat_flag and box change and restart_pbc variables +fix_nh.cpp: // pstyle = TRICLINIC if any off-diagonal term is controlled -> 6 dof +fix_nh.cpp: // else pstyle = ISO if XYZ coupling or XY coupling in 2d -> 1 dof +fix_nh.cpp: // else pstyle = ANISO -> 3 dof +fix_nh.cpp: // pre_exchange only required if flips can occur due to shape changes +fix_nh.cpp: // convert input periods to frequencies +fix_nh.cpp: if (tstat_flag) t_freq = 1.0 / t_period; +fix_nh.cpp: if (p_flag[0]) p_freq[0] = 1.0 / p_period[0]; +fix_nh.cpp: if (p_flag[1]) p_freq[1] = 1.0 / p_period[1]; +fix_nh.cpp: if (p_flag[2]) p_freq[2] = 1.0 / p_period[2]; +fix_nh.cpp: if (p_flag[3]) p_freq[3] = 1.0 / p_period[3]; +fix_nh.cpp: if (p_flag[4]) p_freq[4] = 1.0 / p_period[4]; +fix_nh.cpp: if (p_flag[5]) p_freq[5] = 1.0 / p_period[5]; +fix_nh.cpp: // Nose/Hoover temp and pressure init +fix_nh.cpp: // add one extra dummy thermostat, set to zero +fix_nh.cpp: // add one extra dummy thermostat, set to zero +fix_nh.cpp: // initialize vol0,t0 to zero to signal uninitialized +fix_nh.cpp: // values then assigned in init(), if necessary +fix_nh.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp: // delete temperature and pressure if fix created them +fix_nh.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp: // recheck that dilate group has not been deleted +fix_nh.cpp: error->all(FLERR,"Fix nvt/npt/nph dilate group ID does not exist"); +fix_nh.cpp: // ensure no conflict with fix deform +fix_nh.cpp: // set temperature and pressure ptrs +fix_nh.cpp: error->all(FLERR,"Temperature ID for fix nvt/npt does not exist"); +fix_nh.cpp: error->all(FLERR,"Pressure ID for fix npt/nph does not exist"); +fix_nh.cpp: // set timesteps and frequencies +fix_nh.cpp: pdrag_factor = 1.0 - (update->dt * p_freq_max * drag / nc_pchain); +fix_nh.cpp: tdrag_factor = 1.0 - (update->dt * t_freq * drag / nc_tchain); +fix_nh.cpp: // tally the number of dimensions that are barostatted +fix_nh.cpp: // set initial volume and reference cell, if not already done +fix_nh.cpp: // detect if any rigid fixes exist so rigid bodies move when box is remapped +fix_nh.cpp: // rfix[] = indices to each fix rigid +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp: // tdof needed by compute_temp_target() +fix_nh.cpp: // t_target is needed by NVT and NPT in compute_scalar() +fix_nh.cpp: // If no thermostat or using fix nphug, +fix_nh.cpp: // t_target must be defined by other means. +fix_nh.cpp: // t0 = reference temperature for masses +fix_nh.cpp: // cannot be done in init() b/c temperature cannot be called there +fix_nh.cpp: // is b/c Modify::init() inits computes after fixes due to dof dependence +fix_nh.cpp: // guesstimate a unit-dependent t0 if actual T = 0.0 +fix_nh.cpp: // if it was read in from a restart file, leave it be +fix_nh.cpp: // masses and initial forces on thermostat variables +fix_nh.cpp: eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq); +fix_nh.cpp: eta_mass[ich] = boltz * t_target / (t_freq*t_freq); +fix_nh.cpp: boltz * t_target) / eta_mass[ich]; +fix_nh.cpp: // masses and initial forces on barostat variables +fix_nh.cpp: omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); +fix_nh.cpp: if (p_flag[i]) omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); +fix_nh.cpp: // masses and initial forces on barostat thermostat variables +fix_nh.cpp: etap_mass[0] = boltz * t_target / (p_freq_max*p_freq_max); +fix_nh.cpp: etap_mass[ich] = boltz * t_target / (p_freq_max*p_freq_max); +fix_nh.cpp: boltz * t_target) / etap_mass[ich]; +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp: // update eta_press_dot +fix_nh.cpp: // update eta_dot +fix_nh.cpp: // need to recompute pressure to account for change in KE +fix_nh.cpp: // t_current is up-to-date, but compute_temperature is not +fix_nh.cpp: // compute appropriately coupled elements of mvv_current +fix_nh.cpp: // remap simulation box by 1/2 step +fix_nh.cpp: // remap simulation box by 1/2 step +fix_nh.cpp: // redo KSpace coeffs since volume has changed +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp: // re-compute temp before nh_v_press() +fix_nh.cpp: // only needed for temperature computes with BIAS on reneighboring steps: +fix_nh.cpp: // b/c some biases store per-atom values (e.g. temp/profile) +fix_nh.cpp: // per-atom values are invalid if reneigh/comm occurred +fix_nh.cpp: // since temp->compute() in initial_integrate() +fix_nh.cpp: // compute new T,P after velocities rescaled by nh_v_press() +fix_nh.cpp: // compute appropriately coupled elements of mvv_current +fix_nh.cpp: // update eta_dot +fix_nh.cpp: // update eta_press_dot +fix_nh.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp: // set timesteps by level +fix_nh.cpp: // outermost level - update eta_dot and omega_dot, apply to v +fix_nh.cpp: // all other levels - NVE update of v +fix_nh.cpp: // x,v updates only performed for atoms in group +fix_nh.cpp: // update eta_press_dot +fix_nh.cpp: // update eta_dot +fix_nh.cpp: // recompute pressure to account for change in KE +fix_nh.cpp: // t_current is up-to-date, but compute_temperature is not +fix_nh.cpp: // compute appropriately coupled elements of mvv_current +fix_nh.cpp: // innermost level - also update x only for atoms in group +fix_nh.cpp: // if barostat, perform 1/2 step remap before and after +fix_nh.cpp: // if barostat, redo KSpace coeffs at outermost level, +fix_nh.cpp: // since volume has changed +fix_nh.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp: // set timesteps by level +fix_nh.cpp: // outermost level - update eta_dot and omega_dot, apply via final_integrate +fix_nh.cpp: // all other levels - NVE update of v +fix_nh.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp: double ave = 1.0/3.0 * (tensor[0] + tensor[1] + tensor[2]); +fix_nh.cpp: // switch order from xy-xz-yz to Voigt +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp: // omega is not used, except for book-keeping +fix_nh.cpp: // convert pertinent atoms and rigid bodies to lamda coords +fix_nh.cpp: // reset global and local box to new size/shape +fix_nh.cpp: // this operation corresponds to applying the +fix_nh.cpp: // translate and scale operations +fix_nh.cpp: // corresponding to the solution of the following ODE: +fix_nh.cpp: // +fix_nh.cpp: // h_dot = omega_dot * h +fix_nh.cpp: // +fix_nh.cpp: // where h_dot, omega_dot and h are all upper-triangular +fix_nh.cpp: // 3x3 tensors. In Voigt notation, the elements of the +fix_nh.cpp: // RHS product tensor are: +fix_nh.cpp: // h_dot = [0*0, 1*1, 2*2, 1*3+3*2, 0*4+5*3+4*2, 0*5+5*1] +fix_nh.cpp: // +fix_nh.cpp: // Ordering of operations preserves time symmetry. +fix_nh.cpp: double dto2 = dto/2.0; +fix_nh.cpp: double dto4 = dto/4.0; +fix_nh.cpp: double dto8 = dto/8.0; +fix_nh.cpp: // off-diagonal components, first half +fix_nh.cpp: // scale diagonal components +fix_nh.cpp: // scale tilt factors with cell, if set +fix_nh.cpp: // off-diagonal components, second half +fix_nh.cpp: // tilt factor to cell length ratio can not exceed TILTMAX in one step +fix_nh.cpp: error->all(FLERR,"Fix npt/nph has tilted box too far in one step - " +fix_nh.cpp: // convert pertinent atoms and rigid bodies back to box coords +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp: // reset id_temp of pressure to new temperature ID +fix_nh.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp: // thermostat chain energy is equivalent to Eq. (2) in +fix_nh.cpp: // Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117 +fix_nh.cpp: // Sum(0.5*p_eta_k^2/Q_k,k=1,M) + L*k*T*eta_1 + Sum(k*T*eta_k,k=2,M), +fix_nh.cpp: // where L = tdof +fix_nh.cpp: // M = mtchain +fix_nh.cpp: // p_eta_k = Q_k*eta_dot[k-1] +fix_nh.cpp: // Q_1 = L*k*T/t_freq^2 +fix_nh.cpp: // Q_k = k*T/t_freq^2, k > 1 +fix_nh.cpp: // barostat energy is equivalent to Eq. (8) in +fix_nh.cpp: // Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117 +fix_nh.cpp: // Sum(0.5*p_omega^2/W + P*V), +fix_nh.cpp: // where N = natoms +fix_nh.cpp: // p_omega = W*omega_dot +fix_nh.cpp: // W = N*k*T/p_freq^2 +fix_nh.cpp: // sum is over barostatted dimensions +fix_nh.cpp: p_hydro*(volume-vol0) / (pdim*nktv2p); +fix_nh.cpp: // extra contributions from thermostat chain for barostat +fix_nh.cpp: // extra contribution from strain energy +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp: return p_hydro*(volume-vol0) / nktv2p; +fix_nh.cpp: return p_hydro*(volume-vol0) / (pdim*nktv2p); +fix_nh.cpp: return p_hydro*(volume-vol0) / (pdim*nktv2p); +fix_nh.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp:/* ---------------------------------------------------------------------- */ +fix_nh.cpp: // If using respa, then remap is performed in innermost level +fix_nh.cpp: pdrag_factor = 1.0 - (update->dt * p_freq_max * drag / nc_pchain); +fix_nh.cpp: tdrag_factor = 1.0 - (update->dt * t_freq * drag / nc_tchain); +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp: // Update masses, to preserve initial freq, if flag set +fix_nh.cpp: eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq); +fix_nh.cpp: eta_mass[ich] = boltz * t_target / (t_freq*t_freq); +fix_nh.cpp: eta_dotdot[0] = (kecurrent - ke_target)/eta_mass[0]; +fix_nh.cpp: double ncfac = 1.0/nc_tchain; +fix_nh.cpp: // rescale temperature due to velocity scaling +fix_nh.cpp: // should not be necessary to explicitly recompute the temperature +fix_nh.cpp: eta_dotdot[0] = (kecurrent - ke_target)/eta_mass[0]; +fix_nh.cpp: - boltz * t_target)/eta_mass[ich]; +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp: // Update masses, to preserve initial freq, if flag set +fix_nh.cpp: omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); +fix_nh.cpp: if (p_flag[i]) omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); +fix_nh.cpp: etap_mass[0] = boltz * t_target / (p_freq_max*p_freq_max); +fix_nh.cpp: etap_mass[ich] = boltz * t_target / (p_freq_max*p_freq_max); +fix_nh.cpp: boltz * t_target) / etap_mass[ich]; +fix_nh.cpp: etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0]; +fix_nh.cpp: double ncfac = 1.0/nc_pchain; +fix_nh.cpp: etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0]; +fix_nh.cpp: (etap_mass[ich-1]*etap_dot[ich-1]*etap_dot[ich-1] - boltz*t_target) / +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:-----------------------------------------------------------------------*/ +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:-----------------------------------------------------------------------*/ +fix_nh.cpp: dtfm = dtf / rmass[i]; +fix_nh.cpp: dtfm = dtf / mass[type[i]]; +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:-----------------------------------------------------------------------*/ +fix_nh.cpp: // x update by full step only for atoms in group +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:-----------------------------------------------------------------------*/ +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:-----------------------------------------------------------------------*/ +fix_nh.cpp: // if nreset_h0 > 0, reset vol0 and h0_inv +fix_nh.cpp: // every nreset_h0 timesteps +fix_nh.cpp: // generate upper-triangular half of +fix_nh.cpp: // sigma = vol0*h0inv*(p_target-p_hydro)*h0inv^t +fix_nh.cpp: // units of sigma are are PV/L^2 e.g. atm.A +fix_nh.cpp: // +fix_nh.cpp: // [ 0 5 4 ] [ 0 5 4 ] [ 0 5 4 ] [ 0 - - ] +fix_nh.cpp: // [ 5 1 3 ] = [ - 1 3 ] [ 5 1 3 ] [ 5 1 - ] +fix_nh.cpp: // [ 4 3 2 ] [ - - 2 ] [ 4 3 2 ] [ 4 3 2 ] +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:-----------------------------------------------------------------------*/ +fix_nh.cpp: // compute strain energy = 0.5*Tr(sigma*h*h^t) in energy units +fix_nh.cpp: double energy = 0.5*(d0+d1+d2)/nktv2p; +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:-----------------------------------------------------------------------*/ +fix_nh.cpp: // generate upper-triangular part of h*sigma*h^t +fix_nh.cpp: // units of fdev are are PV, e.g. atm*A^3 +fix_nh.cpp: // [ 0 5 4 ] [ 0 5 4 ] [ 0 5 4 ] [ 0 - - ] +fix_nh.cpp: // [ 5 1 3 ] = [ - 1 3 ] [ 5 1 3 ] [ 5 1 - ] +fix_nh.cpp: // [ 4 3 2 ] [ - - 2 ] [ 4 3 2 ] [ 4 3 2 ] +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:-----------------------------------------------------------------------*/ +fix_nh.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:-----------------------------------------------------------------------*/ +fix_nh.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_nh.cpp: if (pdim > 0) p_hydro /= pdim; +fix_nh.cpp: // if deviatoric, recompute sigma each time p_target changes +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:-----------------------------------------------------------------------*/ +fix_nh.cpp: mtk_term1 /= pdim * atom->natoms; +fix_nh.cpp: mtk_term1 /= pdim * atom->natoms; +fix_nh.cpp: f_omega = (p_current[i]-p_hydro)*volume / +fix_nh.cpp: (omega_mass[i] * nktv2p) + mtk_term1 / omega_mass[i]; +fix_nh.cpp: if (deviatoric_flag) f_omega -= fdev[i]/(omega_mass[i] * nktv2p); +fix_nh.cpp: if (pdim > 0) mtk_term2 /= pdim * atom->natoms; +fix_nh.cpp: f_omega = p_current[i]*volume/(omega_mass[i] * nktv2p); +fix_nh.cpp: f_omega -= fdev[i]/(omega_mass[i] * nktv2p); +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp: this is b/c the box length would be changed (dramatically) by flip +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh.cpp: // flip is only triggered when tilt exceeds 0.5 by DELTAFLIP +fix_nh.cpp: // this avoids immediate re-flipping due to tilt oscillations +fix_nh.cpp:/* ---------------------------------------------------------------------- +fix_nh.cpp:------------------------------------------------------------------------- */ +fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- +fix_nh_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nh_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nh_sphere.cpp:------------------------------------------------------------------------- */ +fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- +fix_nh_sphere.cpp:------------------------------------------------------------------------- */ +fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- */ +fix_nh_sphere.cpp: error->all(FLERR,"Fix nvt/nph/npt sphere requires atom style sphere"); +fix_nh_sphere.cpp: // inertia = moment of inertia prefactor for sphere or disc +fix_nh_sphere.cpp: "Fix nvt/nph/npt sphere disc option requires 2d simulation"); +fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- */ +fix_nh_sphere.cpp: // check that all particles are finite-size +fix_nh_sphere.cpp: // no point particles allowed +fix_nh_sphere.cpp: error->one(FLERR,"Fix nvt/npt/nph/sphere require extended particles"); +fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- +fix_nh_sphere.cpp:-----------------------------------------------------------------------*/ +fix_nh_sphere.cpp: // standard nve_v velocity update +fix_nh_sphere.cpp: // set timestep here since dt may have changed or come via rRESPA +fix_nh_sphere.cpp: double dtfrotate = dtf / inertia; +fix_nh_sphere.cpp: // update omega for all particles +fix_nh_sphere.cpp: // d_omega/dt = torque / inertia +fix_nh_sphere.cpp: // 4 cases depending on radius vs shape and rmass vs mass +fix_nh_sphere.cpp: dtirotate = dtfrotate / (radius[i]*radius[i]*rmass[i]); +fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- +fix_nh_sphere.cpp:-----------------------------------------------------------------------*/ +fix_nh_sphere.cpp: // standard nve_x position update +fix_nh_sphere.cpp: // update mu for dipoles +fix_nh_sphere.cpp: // d_mu/dt = omega cross mu +fix_nh_sphere.cpp: // renormalize mu to dipole length +fix_nh_sphere.cpp: scale = mu[i][3]/sqrt(msq); +fix_nh_sphere.cpp: // Integrate orientation following Dullweber-Leimkuhler-Maclachlan scheme +fix_nh_sphere.cpp: // Construct Q from dipole: +fix_nh_sphere.cpp: // Q is the rotation matrix from space frame to body frame +fix_nh_sphere.cpp: // i.e. v_b = Q.v_s +fix_nh_sphere.cpp: // Define mu to lie along the z axis in the body frame +fix_nh_sphere.cpp: // We take the unit dipole to avoid getting a scaling matrix +fix_nh_sphere.cpp: inv_len_mu = 1.0/mu[i][3]; +fix_nh_sphere.cpp: // v = a x [0 0 1] - cross product of mu in space and body frames +fix_nh_sphere.cpp: // s = |v| +fix_nh_sphere.cpp: // c = a.[0 0 1] = a[2] +fix_nh_sphere.cpp: // vx = [ 0 -v[2] v[1] +fix_nh_sphere.cpp: // v[2] 0 -v[0] +fix_nh_sphere.cpp: // -v[1] v[0] 0 ] +fix_nh_sphere.cpp: // then +fix_nh_sphere.cpp: // Q = I + vx + vx^2 * (1-c)/s^2 +fix_nh_sphere.cpp: if (s2 != 0.0){ // i.e. the vectors are not parallel +fix_nh_sphere.cpp: scale = (1.0 - a[2])/s2; +fix_nh_sphere.cpp: } else { // if parallel then we just have I or -I +fix_nh_sphere.cpp: Q[0][0] = 1.0/a[2]; Q[0][1] = 0.0; Q[0][2] = 0.0; +fix_nh_sphere.cpp: Q[1][0] = 0.0; Q[1][1] = 1.0/a[2]; Q[1][2] = 0.0; +fix_nh_sphere.cpp: Q[2][0] = 0.0; Q[2][1] = 0.0; Q[2][2] = 1.0/a[2]; +fix_nh_sphere.cpp: // Local copy of this particle's angular velocity (in space frame) +fix_nh_sphere.cpp: // Transform omega into body frame: w_temp= Q.w +fix_nh_sphere.cpp: // Construct rotation R1 +fix_nh_sphere.cpp: BuildRxMatrix(R, dtf/force->ftm2v*w_temp[0]); +fix_nh_sphere.cpp: // Apply R1 to w: w = R.w_temp +fix_nh_sphere.cpp: // Apply R1 to Q: Q_temp = R^T.Q +fix_nh_sphere.cpp: // Construct rotation R2 +fix_nh_sphere.cpp: BuildRyMatrix(R, dtf/force->ftm2v*w[1]); +fix_nh_sphere.cpp: // Apply R2 to w: w_temp = R.w +fix_nh_sphere.cpp: // Apply R2 to Q: Q = R^T.Q_temp +fix_nh_sphere.cpp: // Construct rotation R3 +fix_nh_sphere.cpp: BuildRzMatrix(R, 2.0*dtf/force->ftm2v*w_temp[2]); +fix_nh_sphere.cpp: // Apply R3 to w: w = R.w_temp +fix_nh_sphere.cpp: // Apply R3 to Q: Q_temp = R^T.Q +fix_nh_sphere.cpp: // Construct rotation R4 +fix_nh_sphere.cpp: BuildRyMatrix(R, dtf/force->ftm2v*w[1]); +fix_nh_sphere.cpp: // Apply R4 to w: w_temp = R.w +fix_nh_sphere.cpp: // Apply R4 to Q: Q = R^T.Q_temp +fix_nh_sphere.cpp: // Construct rotation R5 +fix_nh_sphere.cpp: BuildRxMatrix(R, dtf/force->ftm2v*w_temp[0]); +fix_nh_sphere.cpp: // Apply R5 to w: w = R.w_temp +fix_nh_sphere.cpp: // Apply R5 to Q: Q_temp = R^T.Q +fix_nh_sphere.cpp: // Transform w back into space frame w_temp = Q^T.w +fix_nh_sphere.cpp: // Set dipole according to updated Q: mu = Q^T.[0 0 1] * |mu| +fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- +fix_nh_sphere.cpp:-----------------------------------------------------------------------*/ +fix_nh_sphere.cpp: // standard nh_v_temp scaling +fix_nph.cpp:/* ---------------------------------------------------------------------- +fix_nph.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nph.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nph.cpp:------------------------------------------------------------------------- */ +fix_nph.cpp:/* ---------------------------------------------------------------------- */ +fix_nph.cpp: // create a new compute temp style +fix_nph.cpp: // id = fix-ID + temp +fix_nph.cpp: // compute group = all since pressure is always global (group all) +fix_nph.cpp: // and thus its KE/temperature contribution should use group all +fix_nph.cpp: // create a new compute pressure style +fix_nph.cpp: // id = fix-ID + press, compute group = all +fix_nph.cpp: // pass id_temp as 4th arg to pressure constructor +fix_nph_sphere.cpp:/* ---------------------------------------------------------------------- +fix_nph_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nph_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nph_sphere.cpp:------------------------------------------------------------------------- */ +fix_nph_sphere.cpp:/* ---------------------------------------------------------------------- */ +fix_nph_sphere.cpp: error->all(FLERR,"Temperature control can not be used with fix nph/sphere"); +fix_nph_sphere.cpp: error->all(FLERR,"Pressure control must be used with fix nph/sphere"); +fix_nph_sphere.cpp: // create a new compute temp style +fix_nph_sphere.cpp: // id = fix-ID + temp +fix_nph_sphere.cpp: // compute group = all since pressure is always global (group all) +fix_nph_sphere.cpp: // and thus its KE/temperature contribution should use group all +fix_nph_sphere.cpp: newarg[2] = (char *) "temp/sphere"; +fix_nph_sphere.cpp: // create a new compute pressure style +fix_nph_sphere.cpp: // id = fix-ID + press, compute group = all +fix_nph_sphere.cpp: // pass id_temp as 4th arg to pressure constructor +fix_npt.cpp:/* ---------------------------------------------------------------------- +fix_npt.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_npt.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_npt.cpp:------------------------------------------------------------------------- */ +fix_npt.cpp:/* ---------------------------------------------------------------------- */ +fix_npt.cpp: // create a new compute temp style +fix_npt.cpp: // id = fix-ID + temp +fix_npt.cpp: // compute group = all since pressure is always global (group all) +fix_npt.cpp: // and thus its KE/temperature contribution should use group all +fix_npt.cpp: // create a new compute pressure style +fix_npt.cpp: // id = fix-ID + press, compute group = all +fix_npt.cpp: // pass id_temp as 4th arg to pressure constructor +fix_npt_sphere.cpp:/* ---------------------------------------------------------------------- +fix_npt_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_npt_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_npt_sphere.cpp:------------------------------------------------------------------------- */ +fix_npt_sphere.cpp:/* ---------------------------------------------------------------------- */ +fix_npt_sphere.cpp: error->all(FLERR,"Temperature control must be used with fix npt/sphere"); +fix_npt_sphere.cpp: error->all(FLERR,"Pressure control must be used with fix npt/sphere"); +fix_npt_sphere.cpp: // create a new compute temp style +fix_npt_sphere.cpp: // id = fix-ID + temp +fix_npt_sphere.cpp: // compute group = all since pressure is always global (group all) +fix_npt_sphere.cpp: // and thus its KE/temperature contribution should use group all +fix_npt_sphere.cpp: newarg[2] = (char *) "temp/sphere"; +fix_npt_sphere.cpp: // create a new compute pressure style +fix_npt_sphere.cpp: // id = fix-ID + press, compute group = all +fix_npt_sphere.cpp: // pass id_temp as 4th arg to pressure constructor +fix_nve.cpp:/* ---------------------------------------------------------------------- +fix_nve.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nve.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nve.cpp:------------------------------------------------------------------------- */ +fix_nve.cpp:/* ---------------------------------------------------------------------- */ +fix_nve.cpp: if (strcmp(style,"nve/sphere") != 0 && narg < 3) +fix_nve.cpp:/* ---------------------------------------------------------------------- */ +fix_nve.cpp:/* ---------------------------------------------------------------------- */ +fix_nve.cpp:/* ---------------------------------------------------------------------- +fix_nve.cpp:------------------------------------------------------------------------- */ +fix_nve.cpp: // update v and x of atoms in group +fix_nve.cpp: dtfm = dtf / rmass[i]; +fix_nve.cpp: dtfm = dtf / mass[type[i]]; +fix_nve.cpp:/* ---------------------------------------------------------------------- */ +fix_nve.cpp: // update v of atoms in group +fix_nve.cpp: dtfm = dtf / rmass[i]; +fix_nve.cpp: dtfm = dtf / mass[type[i]]; +fix_nve.cpp:/* ---------------------------------------------------------------------- */ +fix_nve.cpp: // innermost level - NVE update of v and x +fix_nve.cpp: // all other levels - NVE update of v +fix_nve.cpp:/* ---------------------------------------------------------------------- */ +fix_nve.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_limit.cpp:/* ---------------------------------------------------------------------- +fix_nve_limit.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nve_limit.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nve_limit.cpp:------------------------------------------------------------------------- */ +fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_limit.cpp: if (narg != 4) error->all(FLERR,"Illegal fix nve/limit command"); +fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_limit.cpp: vlimitsq = (xlimit/dtv) * (xlimit/dtv); +fix_nve_limit.cpp: // warn if using fix shake, which will lead to invalid constraint forces +fix_nve_limit.cpp: error->warning(FLERR,"Should not use fix nve/limit with fix shake or fix rattle"); +fix_nve_limit.cpp:/* ---------------------------------------------------------------------- +fix_nve_limit.cpp:------------------------------------------------------------------------- */ +fix_nve_limit.cpp: dtfm = dtf / rmass[i]; +fix_nve_limit.cpp: scale = sqrt(vlimitsq/vsq); +fix_nve_limit.cpp: dtfm = dtf / mass[type[i]]; +fix_nve_limit.cpp: scale = sqrt(vlimitsq/vsq); +fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_limit.cpp: dtfm = dtf / rmass[i]; +fix_nve_limit.cpp: scale = sqrt(vlimitsq/vsq); +fix_nve_limit.cpp: dtfm = dtf / mass[type[i]]; +fix_nve_limit.cpp: scale = sqrt(vlimitsq/vsq); +fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_limit.cpp: vlimitsq = (xlimit/dtv) * (xlimit/dtv); +fix_nve_limit.cpp:/* ---------------------------------------------------------------------- +fix_nve_limit.cpp:------------------------------------------------------------------------- */ +fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- +fix_nve_noforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nve_noforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nve_noforce.cpp:------------------------------------------------------------------------- */ +fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_noforce.cpp: if (narg != 3) error->all(FLERR,"Illegal fix nve/noforce command"); +fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_noforce.cpp: if (flag) return; // only used by NPT,NPH +fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_sphere.cpp:/* ---------------------------------------------------------------------- +fix_nve_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nve_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nve_sphere.cpp:------------------------------------------------------------------------- */ +fix_nve_sphere.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_sphere.cpp: if (narg < 3) error->all(FLERR,"Illegal fix nve/sphere command"); +fix_nve_sphere.cpp: // process extra keywords +fix_nve_sphere.cpp: // inertia = moment of inertia prefactor for sphere or disc +fix_nve_sphere.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nve/sphere command"); +fix_nve_sphere.cpp: else if (strcmp(arg[iarg+1],"dipole/dlm") == 0) { +fix_nve_sphere.cpp: } else error->all(FLERR,"Illegal fix nve/sphere command"); +fix_nve_sphere.cpp: error->all(FLERR,"Fix nve/sphere disc requires 2d simulation"); +fix_nve_sphere.cpp: else error->all(FLERR,"Illegal fix nve/sphere command"); +fix_nve_sphere.cpp: // error checks +fix_nve_sphere.cpp: error->all(FLERR,"Fix nve/sphere requires atom style sphere"); +fix_nve_sphere.cpp: error->all(FLERR,"Fix nve/sphere update dipole requires atom attribute mu"); +fix_nve_sphere.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_sphere.cpp: // check that all particles are finite-size spheres +fix_nve_sphere.cpp: // no point particles allowed +fix_nve_sphere.cpp: error->one(FLERR,"Fix nve/sphere requires extended particles"); +fix_nve_sphere.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_sphere.cpp: // set timestep here since dt may have changed or come via rRESPA +fix_nve_sphere.cpp: double dtfrotate = dtf / inertia; +fix_nve_sphere.cpp: // update v,x,omega for all particles +fix_nve_sphere.cpp: // d_omega/dt = torque / inertia +fix_nve_sphere.cpp: dtfm = dtf / rmass[i]; +fix_nve_sphere.cpp: dtirotate = dtfrotate / (radius[i]*radius[i]*rmass[i]); +fix_nve_sphere.cpp: // update mu for dipoles +fix_nve_sphere.cpp: // d_mu/dt = omega cross mu +fix_nve_sphere.cpp: // renormalize mu to dipole length +fix_nve_sphere.cpp: scale = mu[i][3]/sqrt(msq); +fix_nve_sphere.cpp: // integrate orientation following Dullweber-Leimkuhler-Maclachlan scheme +fix_nve_sphere.cpp: // Construct Q from dipole: +fix_nve_sphere.cpp: // Q is the rotation matrix from space frame to body frame +fix_nve_sphere.cpp: // i.e. v_b = Q.v_s +fix_nve_sphere.cpp: // define mu to lie along the z axis in the body frame +fix_nve_sphere.cpp: // take the unit dipole to avoid getting a scaling matrix +fix_nve_sphere.cpp: inv_len_mu = 1.0/mu[i][3]; +fix_nve_sphere.cpp: // v = a x [0 0 1] - cross product of mu in space and body frames +fix_nve_sphere.cpp: // s = |v| +fix_nve_sphere.cpp: // c = a.[0 0 1] = a[2] +fix_nve_sphere.cpp: // vx = [ 0 -v[2] v[1] +fix_nve_sphere.cpp: // v[2] 0 -v[0] +fix_nve_sphere.cpp: // -v[1] v[0] 0 ] +fix_nve_sphere.cpp: // then +fix_nve_sphere.cpp: // Q = I + vx + vx^2 * (1-c)/s^2 +fix_nve_sphere.cpp: if (s2 != 0.0){ // i.e. the vectors are not parallel +fix_nve_sphere.cpp: scale = (1.0 - a[2])/s2; +fix_nve_sphere.cpp: } else { // if parallel then we just have I or -I +fix_nve_sphere.cpp: Q[0][0] = 1.0/a[2]; Q[0][1] = 0.0; Q[0][2] = 0.0; +fix_nve_sphere.cpp: Q[1][0] = 0.0; Q[1][1] = 1.0/a[2]; Q[1][2] = 0.0; +fix_nve_sphere.cpp: Q[2][0] = 0.0; Q[2][1] = 0.0; Q[2][2] = 1.0/a[2]; +fix_nve_sphere.cpp: // Local copy of this particle's angular velocity (in space frame) +fix_nve_sphere.cpp: // Transform omega into body frame: w_temp= Q.w +fix_nve_sphere.cpp: // Construct rotation R1 +fix_nve_sphere.cpp: BuildRxMatrix(R, dtf/force->ftm2v*w_temp[0]); +fix_nve_sphere.cpp: // Apply R1 to w: w = R.w_temp +fix_nve_sphere.cpp: // Apply R1 to Q: Q_temp = R^T.Q +fix_nve_sphere.cpp: // Construct rotation R2 +fix_nve_sphere.cpp: BuildRyMatrix(R, dtf/force->ftm2v*w[1]); +fix_nve_sphere.cpp: // Apply R2 to w: w_temp = R.w +fix_nve_sphere.cpp: // Apply R2 to Q: Q = R^T.Q_temp +fix_nve_sphere.cpp: // Construct rotation R3 +fix_nve_sphere.cpp: BuildRzMatrix(R, 2.0*dtf/force->ftm2v*w_temp[2]); +fix_nve_sphere.cpp: // Apply R3 to w: w = R.w_temp +fix_nve_sphere.cpp: // Apply R3 to Q: Q_temp = R^T.Q +fix_nve_sphere.cpp: // Construct rotation R4 +fix_nve_sphere.cpp: BuildRyMatrix(R, dtf/force->ftm2v*w[1]); +fix_nve_sphere.cpp: // Apply R4 to w: w_temp = R.w +fix_nve_sphere.cpp: // Apply R4 to Q: Q = R^T.Q_temp +fix_nve_sphere.cpp: // Construct rotation R5 +fix_nve_sphere.cpp: BuildRxMatrix(R, dtf/force->ftm2v*w_temp[0]); +fix_nve_sphere.cpp: // Apply R5 to w: w = R.w_temp +fix_nve_sphere.cpp: // Apply R5 to Q: Q_temp = R^T.Q +fix_nve_sphere.cpp: // Transform w back into space frame w_temp = Q^T.w +fix_nve_sphere.cpp: // Set dipole according to updated Q: mu = Q^T.[0 0 1] * |mu| +fix_nve_sphere.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_sphere.cpp: // set timestep here since dt may have changed or come via rRESPA +fix_nve_sphere.cpp: double dtfrotate = dtf / inertia; +fix_nve_sphere.cpp: // update v,omega for all particles +fix_nve_sphere.cpp: // d_omega/dt = torque / inertia +fix_nve_sphere.cpp: dtfm = dtf / rmass[i]; +fix_nve_sphere.cpp: dtirotate = dtfrotate / (radius[i]*radius[i]*rmass[i]); +fix_nve_spin.cpp:/* ---------------------------------------------------------------------- +fix_nve_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nve_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nve_spin.cpp:------------------------------------------------------------------------- */ +fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_spin.cpp: if (narg < 3) error->all(FLERR,"Illegal fix nve/spin command"); +fix_nve_spin.cpp: if (strcmp(arg[iarg],"nve/spin") == 0) { +fix_nve_spin.cpp: if (iarg+1 > narg) error->all(FLERR,"Illegal fix nve/spin command"); +fix_nve_spin.cpp: // error checks +fix_nve_spin.cpp: error->all(FLERR,"Fix nve/spin requires spin attribute mumag"); +fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_spin.cpp: /*int idamp; +fix_nve_spin.cpp: if (strstr(modify->fix[idamp]->style,"damping/spin")) break; +fix_nve_spin.cpp: */ +fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_spin.cpp: // Advance half spins all particles +fix_nve_spin.cpp: //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 +fix_nve_spin.cpp: // update half v all particles +fix_nve_spin.cpp: if (rmass) dtfm = dtf / rmass[i]; +fix_nve_spin.cpp: else dtfm = dtf / mass[type[i]]; +fix_nve_spin.cpp: // update x for all particles +fix_nve_spin.cpp://#define FORCE_PRINT +fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_spin.cpp: // regular communication vs neighbor list rebuild +fix_nve_spin.cpp: // force computations +fix_nve_spin.cpp: // important for pair to come before bonded contributions +fix_nve_spin.cpp: // since some bonded potentials tally pairwise energy/virial +fix_nve_spin.cpp: // and Pair:ev_tally() needs to be called before any tallying +fix_nve_spin.cpp: // reverse communication of forces +fix_nve_spin.cpp: // force modifications +fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_spin.cpp: g[0] /= (1+0.25*fm2*dts*dts); +fix_nve_spin.cpp: g[1] /= (1+0.25*fm2*dts*dts); +fix_nve_spin.cpp: g[2] /= (1+0.25*fm2*dts*dts); +fix_nve_spin.cpp: //Renormalization (may not be necessary) +fix_nve_spin.cpp: scale = 1.0/sqrt(msq); +fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ +fix_nve_spin.cpp: // update half v for all particles +fix_nve_spin.cpp: if (rmass) dtfm = dtf / rmass[i]; +fix_nve_spin.cpp: else dtfm = dtf / mass[type[i]]; +fix_nve_spin.cpp: // Advance half spins all particles +fix_nve_spin.cpp: //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 +fix_nvt.cpp:/* ---------------------------------------------------------------------- +fix_nvt.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nvt.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nvt.cpp:------------------------------------------------------------------------- */ +fix_nvt.cpp:/* ---------------------------------------------------------------------- */ +fix_nvt.cpp: // create a new compute temp style +fix_nvt.cpp: // id = fix-ID + temp +fix_nvt_sllod.cpp:/* ---------------------------------------------------------------------- +fix_nvt_sllod.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nvt_sllod.cpp: www.cs.sandia.gov/~sjplimp/lammps.html +fix_nvt_sllod.cpp:------------------------------------------------------------------------- */ +fix_nvt_sllod.cpp:/* ---------------------------------------------------------------------- +fix_nvt_sllod.cpp:------------------------------------------------------------------------- */ +fix_nvt_sllod.cpp:enum{NO_REMAP,X_REMAP,V_REMAP}; // same as fix_deform.cpp +fix_nvt_sllod.cpp:/* ---------------------------------------------------------------------- */ +fix_nvt_sllod.cpp: error->all(FLERR,"Temperature control must be used with fix nvt/sllod"); +fix_nvt_sllod.cpp: error->all(FLERR,"Pressure control can not be used with fix nvt/sllod"); +fix_nvt_sllod.cpp: // default values +fix_nvt_sllod.cpp: // create a new compute temp style +fix_nvt_sllod.cpp: // id = fix-ID + temp +fix_nvt_sllod.cpp: newarg[2] = (char *) "temp/deform"; +fix_nvt_sllod.cpp:/* ---------------------------------------------------------------------- */ +fix_nvt_sllod.cpp: error->all(FLERR,"Temperature for fix nvt/sllod does not have a bias"); +fix_nvt_sllod.cpp: if (strcmp(temperature->style,"temp/deform") != 0) nondeformbias = 1; +fix_nvt_sllod.cpp: // check fix deform remap settings +fix_nvt_sllod.cpp: error->all(FLERR,"Using fix nvt/sllod with inconsistent fix deform " +fix_nvt_sllod.cpp: error->all(FLERR,"Using fix nvt/sllod with no fix deform defined"); +fix_nvt_sllod.cpp:/* ---------------------------------------------------------------------- +fix_nvt_sllod.cpp:-----------------------------------------------------------------------*/ +fix_nvt_sllod.cpp: // remove and restore bias = streaming velocity = Hrate*lamda + Hratelo +fix_nvt_sllod.cpp: // thermostat thermal velocity only +fix_nvt_sllod.cpp: // vdelu = SLLOD correction = Hrate*Hinv*vthermal +fix_nvt_sllod.cpp: // for non temp/deform BIAS: +fix_nvt_sllod.cpp: // calculate temperature since some computes require temp +fix_nvt_sllod.cpp: // computed on current nlocal atoms to remove bias +fix_nvt_sphere.cpp:/* ---------------------------------------------------------------------- +fix_nvt_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_nvt_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_nvt_sphere.cpp:------------------------------------------------------------------------- */ +fix_nvt_sphere.cpp:/* ---------------------------------------------------------------------- */ +fix_nvt_sphere.cpp: error->all(FLERR,"Temperature control must be used with fix nvt/sphere"); +fix_nvt_sphere.cpp: error->all(FLERR,"Pressure control can not be used with fix nvt/sphere"); +fix_nvt_sphere.cpp: // create a new compute temp style +fix_nvt_sphere.cpp: // id = fix-ID + temp +fix_nvt_sphere.cpp: newarg[2] = (char *) "temp/sphere"; +fix_planeforce.cpp:/* ---------------------------------------------------------------------- +fix_planeforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_planeforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_planeforce.cpp:------------------------------------------------------------------------- */ +fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ +fix_planeforce.cpp: xdir /= len; +fix_planeforce.cpp: ydir /= len; +fix_planeforce.cpp: zdir /= len; +fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ +fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ +fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ +fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ +fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ +fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ +fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- +fix_press_berendsen.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_press_berendsen.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_press_berendsen.cpp:------------------------------------------------------------------------- */ +fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_press_berendsen.cpp: if (narg < 5) error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: // Berendsen barostat applied every step +fix_press_berendsen.cpp: // default values +fix_press_berendsen.cpp: // process keywords +fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen for a 2d simulation"); +fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: else error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: else error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: } else error->all(FLERR,"Illegal fix press/berendsen command"); +fix_press_berendsen.cpp: // error checks +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen for a 2d simulation"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen for a 2d simulation"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); +fix_press_berendsen.cpp: "Cannot use fix press/berendsen on a non-periodic dimension"); +fix_press_berendsen.cpp: "Cannot use fix press/berendsen on a non-periodic dimension"); +fix_press_berendsen.cpp: "Cannot use fix press/berendsen on a non-periodic dimension"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); +fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); +fix_press_berendsen.cpp: error->all(FLERR,"Fix press/berendsen damping parameters must be > 0.0"); +fix_press_berendsen.cpp: // pstyle = ISO if XYZ coupling or XY coupling in 2d -> 1 dof +fix_press_berendsen.cpp: // else pstyle = ANISO -> 3 dof +fix_press_berendsen.cpp: // create a new compute temp style +fix_press_berendsen.cpp: // id = fix-ID + temp +fix_press_berendsen.cpp: // compute group = all since pressure is always global (group all) +fix_press_berendsen.cpp: // and thus its KE/temperature contribution should use group all +fix_press_berendsen.cpp: // create a new compute pressure style +fix_press_berendsen.cpp: // id = fix-ID + press, compute group = all +fix_press_berendsen.cpp: // pass id_temp as 4th arg to pressure constructor +fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_press_berendsen.cpp: // delete temperature and pressure if fix created them +fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_press_berendsen.cpp: error->all(FLERR,"Cannot use fix press/berendsen with triclinic box"); +fix_press_berendsen.cpp: // insure no conflict with fix deform +fix_press_berendsen.cpp: error->all(FLERR,"Cannot use fix press/berendsen and " +fix_press_berendsen.cpp: // set temperature and pressure ptrs +fix_press_berendsen.cpp: error->all(FLERR,"Temperature ID for fix press/berendsen does not exist"); +fix_press_berendsen.cpp: error->all(FLERR,"Pressure ID for fix press/berendsen does not exist"); +fix_press_berendsen.cpp: // Kspace setting +fix_press_berendsen.cpp: // detect if any rigid fixes exist so rigid bodies move when box is remapped +fix_press_berendsen.cpp: // rfix[] = indices to each fix rigid +fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- +fix_press_berendsen.cpp:------------------------------------------------------------------------- */ +fix_press_berendsen.cpp: // trigger virial computation on next timestep +fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_press_berendsen.cpp: // compute new T,P +fix_press_berendsen.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_press_berendsen.cpp: pow(1.0 - update->dt/p_period[i] * +fix_press_berendsen.cpp: (p_target[i]-p_current[i])/bulkmodulus,1.0/3.0); +fix_press_berendsen.cpp: // remap simulation box and atoms +fix_press_berendsen.cpp: // redo KSpace coeffs since volume has changed +fix_press_berendsen.cpp: // trigger virial computation on next timestep +fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_press_berendsen.cpp: double ave = 1.0/3.0 * (tensor[0] + tensor[1] + tensor[2]); +fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- +fix_press_berendsen.cpp:------------------------------------------------------------------------- */ +fix_press_berendsen.cpp: // convert pertinent atoms and rigid bodies to lamda coords +fix_press_berendsen.cpp: // reset global and local box to new size/shape +fix_press_berendsen.cpp: // convert pertinent atoms and rigid bodies back to box coords +fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_press_berendsen.cpp: // reset id_temp of pressure to new temperature ID +fix_press_berendsen.cpp: error->all(FLERR,"Pressure ID for fix press/berendsen does not exist"); +fix_print.cpp:/* ---------------------------------------------------------------------- +fix_print.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_print.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_print.cpp:------------------------------------------------------------------------- */ +fix_print.cpp:/* ---------------------------------------------------------------------- */ +fix_print.cpp: copy = (char *) memory->smalloc(n*sizeof(char),"fix/print:copy"); +fix_print.cpp: work = (char *) memory->smalloc(n*sizeof(char),"fix/print:work"); +fix_print.cpp: // parse optional args +fix_print.cpp: // print file comment line +fix_print.cpp: // add nfirst to all computes that store invocation times +fix_print.cpp: // since don't know a priori which are invoked via variables by this fix +fix_print.cpp: // once in end_of_step() can set timestep for ones actually invoked +fix_print.cpp: const bigint nfirst = (update->ntimestep/nevery)*nevery + nevery; +fix_print.cpp:/* ---------------------------------------------------------------------- */ +fix_print.cpp:/* ---------------------------------------------------------------------- */ +fix_print.cpp:/* ---------------------------------------------------------------------- */ +fix_print.cpp: // make a copy of string to work on +fix_print.cpp: // substitute for $ variables (no printing) +fix_print.cpp: // append a newline and print final copy +fix_print.cpp: // variable evaluation may invoke computes so wrap with clear/add +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_property_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- */ +fix_property_atom.cpp: if (narg < 4) error->all(FLERR,"Illegal fix property/atom command"); +fix_property_atom.cpp: error->all(FLERR,"Fix property/atom mol when atom_style " +fix_property_atom.cpp: error->all(FLERR,"Fix property/atom cannot specify mol twice"); +fix_property_atom.cpp: error->all(FLERR,"Fix property/atom q when atom_style " +fix_property_atom.cpp: error->all(FLERR,"Fix property/atom cannot specify q twice"); +fix_property_atom.cpp: error->all(FLERR,"Fix property/atom rmass when atom_style " +fix_property_atom.cpp: error->all(FLERR,"Fix property/atom cannot specify rmass twice"); +fix_property_atom.cpp: error->all(FLERR,"Fix property/atom vector name already exists"); +fix_property_atom.cpp: error->all(FLERR,"Fix property/atom vector name already exists"); +fix_property_atom.cpp: // optional args +fix_property_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix property/atom command"); +fix_property_atom.cpp: else error->all(FLERR,"Illegal fix property/atom command"); +fix_property_atom.cpp: } else error->all(FLERR,"Illegal fix property/atom command"); +fix_property_atom.cpp: // warn if mol or charge keyword used without ghost yes +fix_property_atom.cpp: error->warning(FLERR,"Fix property/atom mol or charge or rmass " +fix_property_atom.cpp: "w/out ghost communication"); +fix_property_atom.cpp: // store current atom style +fix_property_atom.cpp: // perform initial allocation of atom-based array +fix_property_atom.cpp: // register with Atom class +fix_property_atom.cpp:/* ---------------------------------------------------------------------- */ +fix_property_atom.cpp: // unregister callbacks to this fix from Atom class +fix_property_atom.cpp: // deallocate per-atom vectors in Atom class +fix_property_atom.cpp: // set ptrs to NULL, so they no longer exist for Atom class +fix_property_atom.cpp:/* ---------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- */ +fix_property_atom.cpp: // error if atom style has changed since fix was defined +fix_property_atom.cpp: // don't allow this b/c user could change to style that defines molecule,q +fix_property_atom.cpp: error->all(FLERR,"Atom style was redefined after using fix property/atom"); +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp: // loop over lines of atom info +fix_property_atom.cpp: // tokenize the line into values +fix_property_atom.cpp: // if I own atom tag, unpack its values +fix_property_atom.cpp: // assign words in line to per-atom vectors +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp: // 1st column = atom tag +fix_property_atom.cpp: // rest of columns = per-atom values +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp: // skip to Nth set of extra values +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_property_atom.cpp:/* ---------------------------------------------------------------------- +fix_property_atom.cpp:------------------------------------------------------------------------- */ +fix_read_restart.cpp:/* ---------------------------------------------------------------------- +fix_read_restart.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_read_restart.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_read_restart.cpp:------------------------------------------------------------------------- */ +fix_read_restart.cpp:/* ---------------------------------------------------------------------- */ +fix_read_restart.cpp: // perform initial allocation of atom-based array +fix_read_restart.cpp: // register with Atom class +fix_read_restart.cpp: // extra = copy of atom->extra +fix_read_restart.cpp:/* ---------------------------------------------------------------------- */ +fix_read_restart.cpp: // unregister callback to this fix from Atom class +fix_read_restart.cpp: // delete locally stored arrays +fix_read_restart.cpp:/* ---------------------------------------------------------------------- */ +fix_read_restart.cpp:/* ---------------------------------------------------------------------- +fix_read_restart.cpp:------------------------------------------------------------------------- */ +fix_read_restart.cpp:/* ---------------------------------------------------------------------- +fix_read_restart.cpp:------------------------------------------------------------------------- */ +fix_read_restart.cpp:/* ---------------------------------------------------------------------- +fix_read_restart.cpp:------------------------------------------------------------------------- */ +fix_read_restart.cpp:/* ---------------------------------------------------------------------- +fix_read_restart.cpp:------------------------------------------------------------------------- */ +fix_read_restart.cpp:/* ---------------------------------------------------------------------- +fix_read_restart.cpp:------------------------------------------------------------------------- */ +fix_recenter.cpp:/* ---------------------------------------------------------------------- +fix_recenter.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_recenter.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_recenter.cpp:------------------------------------------------------------------------- */ +fix_recenter.cpp:/* ---------------------------------------------------------------------- +fix_recenter.cpp:------------------------------------------------------------------------- */ +fix_recenter.cpp:/* ---------------------------------------------------------------------- */ +fix_recenter.cpp: // optional args +fix_recenter.cpp: // scale xcom,ycom,zcom +fix_recenter.cpp: // cannot have 0 atoms in group +fix_recenter.cpp:/* ---------------------------------------------------------------------- */ +fix_recenter.cpp:/* ---------------------------------------------------------------------- */ +fix_recenter.cpp: // warn if any integrate fix comes after this one +fix_recenter.cpp: // if any components of requested COM were INIT, store initial COM +fix_recenter.cpp:/* ---------------------------------------------------------------------- */ +fix_recenter.cpp: // target COM +fix_recenter.cpp: // bounding box around domain works for both orthogonal and triclinic +fix_recenter.cpp: // current COM +fix_recenter.cpp: // shift coords by difference between actual COM and requested COM +fix_recenter.cpp:/* ---------------------------------------------------------------------- */ +fix_recenter.cpp: // outermost level - operate recenter +fix_recenter.cpp: // all other levels - nothing +fix_recenter.cpp:/* ---------------------------------------------------------------------- */ +fix_recenter.cpp:/* ---------------------------------------------------------------------- */ +fix_respa.cpp:/* ---------------------------------------------------------------------- +fix_respa.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_respa.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_respa.cpp:------------------------------------------------------------------------- */ +fix_respa.cpp:/* ---------------------------------------------------------------------- */ +fix_respa.cpp: // nlevels = # of rRESPA levels +fix_respa.cpp: // optional arguments +fix_respa.cpp: // perform initial allocation of atom-based arrays +fix_respa.cpp: // register with Atom class +fix_respa.cpp:/* ---------------------------------------------------------------------- */ +fix_respa.cpp: // unregister callbacks to this fix from Atom class +fix_respa.cpp: // delete locally stored arrays +fix_respa.cpp:/* ---------------------------------------------------------------------- */ +fix_respa.cpp:/* ---------------------------------------------------------------------- +fix_respa.cpp:------------------------------------------------------------------------- */ +fix_respa.cpp:/* ---------------------------------------------------------------------- +fix_respa.cpp:------------------------------------------------------------------------- */ +fix_respa.cpp:/* ---------------------------------------------------------------------- +fix_respa.cpp:------------------------------------------------------------------------- */ +fix_respa.cpp:/* ---------------------------------------------------------------------- +fix_respa.cpp:------------------------------------------------------------------------- */ +fix_respa.cpp:/* ---------------------------------------------------------------------- +fix_respa.cpp:------------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- +fix_restrain.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_restrain.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_restrain.cpp:------------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- +fix_restrain.cpp:------------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- */ +fix_restrain.cpp: // parse args +fix_restrain.cpp: target[nrestrain] *= MY_PI / 180.0; +fix_restrain.cpp: target[nrestrain] *= MY_PI / 180.0; +fix_restrain.cpp: // require atom map to lookup atom IDs +fix_restrain.cpp:/* ---------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- */ +fix_restrain.cpp:/* ---------------------------------------------------------------------- +fix_restrain.cpp:---------------------------------------------------------------------- */ +fix_restrain.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_restrain.cpp: // newton_bond on: only processor owning i2 computes restraint +fix_restrain.cpp: // newton_bond off: only processors owning either of i1,i2 computes restraint +fix_restrain.cpp: // force & energy +fix_restrain.cpp: if (r > 0.0) fbond = -2.0*rk/r; +fix_restrain.cpp: // apply force to each of 2 atoms +fix_restrain.cpp:/* ---------------------------------------------------------------------- +fix_restrain.cpp:---------------------------------------------------------------------- */ +fix_restrain.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_restrain.cpp: // newton_bond on: only processor owning i2 computes restraint +fix_restrain.cpp: // newton_bond off: only processors owning any of i1-i3 computes restraint +fix_restrain.cpp: // 1st bond +fix_restrain.cpp: // 2nd bond +fix_restrain.cpp: // angle (cos and sin) +fix_restrain.cpp: c /= r1*r2; +fix_restrain.cpp: s = 1.0/s; +fix_restrain.cpp: // force & energy +fix_restrain.cpp: a11 = a*c / rsq1; +fix_restrain.cpp: a12 = -a / (r1*r2); +fix_restrain.cpp: a22 = a*c / rsq2; +fix_restrain.cpp: // apply force to each of 3 atoms +fix_restrain.cpp:/* ---------------------------------------------------------------------- +fix_restrain.cpp:---------------------------------------------------------------------- */ +fix_restrain.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_restrain.cpp: // newton_bond on: only processor owning i2 computes restraint +fix_restrain.cpp: // newton_bond off: only processors owning any of i1-i4 computes restraint +fix_restrain.cpp: // 1st bond +fix_restrain.cpp: // 2nd bond +fix_restrain.cpp: // 3rd bond +fix_restrain.cpp: if (rg > 0) rginv = 1.0/rg; +fix_restrain.cpp: if (rasq > 0) ra2inv = 1.0/rasq; +fix_restrain.cpp: if (rbsq > 0) rb2inv = 1.0/rbsq; +fix_restrain.cpp: // error check +fix_restrain.cpp: mult = 1; // multiplicity +fix_restrain.cpp: // apply force to each of 4 atoms +fix_restrain.cpp:/* ---------------------------------------------------------------------- +fix_restrain.cpp:------------------------------------------------------------------------- */ +fix_setforce.cpp:/* ---------------------------------------------------------------------- +fix_setforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_setforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_setforce.cpp:------------------------------------------------------------------------- */ +fix_setforce.cpp:/* ---------------------------------------------------------------------- */ +fix_setforce.cpp: // optional args +fix_setforce.cpp:/* ---------------------------------------------------------------------- */ +fix_setforce.cpp:/* ---------------------------------------------------------------------- */ +fix_setforce.cpp:/* ---------------------------------------------------------------------- */ +fix_setforce.cpp: // check variables +fix_setforce.cpp: // set index and check validity of region +fix_setforce.cpp: // cannot use non-zero forces for a minimization since no energy is integrated +fix_setforce.cpp: // use fix addforce instead +fix_setforce.cpp:/* ---------------------------------------------------------------------- */ +fix_setforce.cpp:/* ---------------------------------------------------------------------- */ +fix_setforce.cpp:/* ---------------------------------------------------------------------- */ +fix_setforce.cpp: // update region if necessary +fix_setforce.cpp: // reallocate sforce array if necessary +fix_setforce.cpp: // variable force, wrap with clear/add +fix_setforce.cpp:/* ---------------------------------------------------------------------- */ +fix_setforce.cpp: // set force to desired value on requested level, 0.0 on other levels +fix_setforce.cpp:/* ---------------------------------------------------------------------- */ +fix_setforce.cpp:/* ---------------------------------------------------------------------- +fix_setforce.cpp:------------------------------------------------------------------------- */ +fix_setforce.cpp: // only sum across procs one time +fix_setforce.cpp:/* ---------------------------------------------------------------------- +fix_setforce.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_shear_history.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ +fix_shear_history.cpp: if (newton_pair) comm_reverse = 1; // just for single npartner value +fix_shear_history.cpp: // variable-size history communicated via +fix_shear_history.cpp: // reverse_comm_fix_variable() +fix_shear_history.cpp: // perform initial allocation of atom-based arrays +fix_shear_history.cpp: // register with atom class +fix_shear_history.cpp: // initialize npartner to 0 so neighbor list creation is OK the 1st time +fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ +fix_shear_history.cpp: // unregister this fix so atom class doesn't invoke it any more +fix_shear_history.cpp: // delete locally stored arrays +fix_shear_history.cpp: // to better detect use-after-delete errors +fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp: create pages if first time or if neighbor pgsize/oneatom has changed +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp: b/c there is no guarantee of a current neigh list (even on continued run) +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp: onesided version for sphere contact with line/tri particles +fix_shear_history.cpp: neighbor list has I = sphere, J = line/tri +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp: // NOTE: all operations until very end are with nlocal_neigh <= current nlocal +fix_shear_history.cpp: // b/c previous neigh list was built with nlocal_neigh +fix_shear_history.cpp: // nlocal can be larger if other fixes added atoms at this pre_exchange() +fix_shear_history.cpp: // zero npartner for owned atoms +fix_shear_history.cpp: // clear 2 page data structures +fix_shear_history.cpp: // 1st loop over neighbor list, I = sphere, J = tri +fix_shear_history.cpp: // only calculate npartner for owned spheres +fix_shear_history.cpp: // get page chunks to store atom IDs and shear history for owned atoms +fix_shear_history.cpp: // 2nd loop over neighbor list, I = sphere, J = tri +fix_shear_history.cpp: // store atom IDs and shear history for owned spheres +fix_shear_history.cpp: // re-zero npartner to use as counter +fix_shear_history.cpp: // set maxtouch = max # of partners of any owned atom +fix_shear_history.cpp: // bump up comm->maxexchange_fix if necessary +fix_shear_history.cpp: // zero npartner values from previous nlocal_neigh to current nlocal +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp: newton on version, for sphere/sphere contacts +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp: // NOTE: all operations until very end are with +fix_shear_history.cpp: // nlocal_neigh <= current nlocal and nall_neigh +fix_shear_history.cpp: // b/c previous neigh list was built with nlocal_neigh,nghost_neigh +fix_shear_history.cpp: // nlocal can be larger if other fixes added atoms at this pre_exchange() +fix_shear_history.cpp: // zero npartner for owned+ghost atoms +fix_shear_history.cpp: // clear 2 page data structures +fix_shear_history.cpp: // 1st loop over neighbor list +fix_shear_history.cpp: // calculate npartner for owned+ghost atoms +fix_shear_history.cpp: // perform reverse comm to augment owned npartner counts with ghost counts +fix_shear_history.cpp: // get page chunks to store atom IDs and shear history for owned+ghost atoms +fix_shear_history.cpp: // 2nd loop over neighbor list +fix_shear_history.cpp: // store atom IDs and shear history for owned+ghost atoms +fix_shear_history.cpp: // re-zero npartner to use as counter +fix_shear_history.cpp: // perform reverse comm to augment +fix_shear_history.cpp: // owned atom partner/shearpartner with ghost info +fix_shear_history.cpp: // use variable variant b/c size of packed data can be arbitrarily large +fix_shear_history.cpp: // if many touching neighbors for large particle +fix_shear_history.cpp: // set maxtouch = max # of partners of any owned atom +fix_shear_history.cpp: // bump up comm->maxexchange_fix if necessary +fix_shear_history.cpp: // zero npartner values from previous nlocal_neigh to current nlocal +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp: newton off version, for sphere/sphere contacts +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp: // NOTE: all operations until very end are with nlocal_neigh <= current nlocal +fix_shear_history.cpp: // b/c previous neigh list was built with nlocal_neigh +fix_shear_history.cpp: // nlocal can be larger if other fixes added atoms at this pre_exchange() +fix_shear_history.cpp: // zero npartner for owned atoms +fix_shear_history.cpp: // clear 2 page data structures +fix_shear_history.cpp: // 1st loop over neighbor list +fix_shear_history.cpp: // calculate npartner for owned atoms +fix_shear_history.cpp: // get page chunks to store atom IDs and shear history for owned atoms +fix_shear_history.cpp: // 2nd loop over neighbor list +fix_shear_history.cpp: // store atom IDs and shear history for owned atoms +fix_shear_history.cpp: // re-zero npartner to use as counter +fix_shear_history.cpp: // set maxtouch = max # of partners of any owned atom +fix_shear_history.cpp: // bump up comm->maxexchange_fix if necessary +fix_shear_history.cpp: // zero npartner values from previous nlocal_neigh to current nlocal +fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp: // just copy pointers for partner and shearpartner +fix_shear_history.cpp: // b/c can't overwrite chunk allocation inside ipage,dpage +fix_shear_history.cpp: // incoming atoms in unpack_exchange just grab new chunks +fix_shear_history.cpp: // so are orphaning chunks for migrating atoms +fix_shear_history.cpp: // OK, b/c will reset ipage,dpage on next reneighboring +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp: // NOTE: how do I know comm buf is big enough if extreme # of touching neighs +fix_shear_history.cpp: // Comm::BUFEXTRA may need to be increased +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp: // allocate new chunks from ipage,dpage for incoming values +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp: // ipage = NULL if being called from granular pair style init() +fix_shear_history.cpp: // skip to Nth set of extra values +fix_shear_history.cpp: // allocate new chunks from ipage,dpage for incoming values +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_shear_history.cpp: // maxtouch_all = max # of touching partners across all procs +fix_shear_history.cpp:/* ---------------------------------------------------------------------- +fix_shear_history.cpp:------------------------------------------------------------------------- */ +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- +fix_spring_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_spring_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_spring_chunk.cpp:------------------------------------------------------------------------- */ +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_chunk.cpp: if (narg != 6) error->all(FLERR,"Illegal fix spring/chunk command"); +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_chunk.cpp: // decrement lock counter in compute chunk/atom, it if still exists +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_chunk.cpp: // current indices for idchunk and idcom +fix_spring_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for fix spring/chunk"); +fix_spring_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) +fix_spring_chunk.cpp: error->all(FLERR,"Fix spring/chunk does not use chunk/atom compute"); +fix_spring_chunk.cpp: error->all(FLERR,"Com/chunk compute does not exist for fix spring/chunk"); +fix_spring_chunk.cpp: if (strcmp(ccom->style,"com/chunk") != 0) +fix_spring_chunk.cpp: error->all(FLERR,"Fix spring/chunk does not use com/chunk compute"); +fix_spring_chunk.cpp: // check that idchunk is consistent with ccom->idchunk +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_chunk.cpp: // check if first time cchunk will be queried via ccom +fix_spring_chunk.cpp: // if so, lock idchunk for as long as this fix is in place +fix_spring_chunk.cpp: // will be unlocked in destructor +fix_spring_chunk.cpp: // necessary b/c this fix stores original COM +fix_spring_chunk.cpp: // calculate current centers of mass for each chunk +fix_spring_chunk.cpp: // extract pointers from idchunk and idcom +fix_spring_chunk.cpp: // check if first time cchunk was queried via ccom +fix_spring_chunk.cpp: // if so, allocate com0,fcom and store initial COM +fix_spring_chunk.cpp: memory->create(com0,nchunk,3,"spring/chunk:com0"); +fix_spring_chunk.cpp: memory->create(fcom,nchunk,3,"spring/chunk:fcom"); +fix_spring_chunk.cpp: // calculate fcom = force on each COM, divided by masstotal +fix_spring_chunk.cpp: fcom[m][0] = k_spring*dx/r / masstotal[m]; +fix_spring_chunk.cpp: fcom[m][1] = k_spring*dy/r / masstotal[m]; +fix_spring_chunk.cpp: fcom[m][2] = k_spring*dz/r / masstotal[m]; +fix_spring_chunk.cpp: // apply restoring force to atoms in each chunk +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- +fix_spring_chunk.cpp:------------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- +fix_spring.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_spring.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_spring.cpp:------------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- +fix_spring.cpp:------------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp: // recheck that group 2 has not been deleted +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp: // fx,fy,fz = components of k * (r-r0) / masstotal +fix_spring.cpp: fx = k_spring*dx*dr/r; +fix_spring.cpp: fy = k_spring*dy*dr/r; +fix_spring.cpp: fz = k_spring*dz*dr/r; +fix_spring.cpp: fx /= masstotal; +fix_spring.cpp: fy /= masstotal; +fix_spring.cpp: fz /= masstotal; +fix_spring.cpp: // apply restoring force to atoms in group +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp: // fx,fy,fz = components of k * (r-r0) / masstotal +fix_spring.cpp: // fx2,fy2,fz2 = components of k * (r-r0) / masstotal2 +fix_spring.cpp: fx = k_spring*dx*dr/r; +fix_spring.cpp: fy = k_spring*dy*dr/r; +fix_spring.cpp: fz = k_spring*dz*dr/r; +fix_spring.cpp: fx2 = fx/masstotal2; +fix_spring.cpp: fy2 = fy/masstotal2; +fix_spring.cpp: fz2 = fz/masstotal2; +fix_spring.cpp: fx /= masstotal; +fix_spring.cpp: fy /= masstotal; +fix_spring.cpp: fz /= masstotal; +fix_spring.cpp: // apply restoring force to atoms in group +fix_spring.cpp: // f = -k*(r-r0)*mass/masstotal +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- +fix_spring.cpp:------------------------------------------------------------------------- */ +fix_spring.cpp:/* ---------------------------------------------------------------------- +fix_spring.cpp:------------------------------------------------------------------------- */ +fix_spring_rg.cpp:/* ---------------------------------------------------------------------- +fix_spring_rg.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_spring_rg.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_spring_rg.cpp:------------------------------------------------------------------------- */ +fix_spring_rg.cpp:/* ---------------------------------------------------------------------- +fix_spring_rg.cpp:------------------------------------------------------------------------- */ +fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_rg.cpp: if (narg != 5) error->all(FLERR,"Illegal fix spring/rg command"); +fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_rg.cpp: // if rg0 was specified as NULL, compute current Rg +fix_spring_rg.cpp: // only occurs on 1st run +fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_rg.cpp: // compute current Rg and center-of-mass +fix_spring_rg.cpp: // apply restoring force to atoms in group +fix_spring_rg.cpp: // f = -k*(r-r0)*mass/masstotal +fix_spring_rg.cpp: term1 = 2.0 * k * (1.0 - rg0/rg); +fix_spring_rg.cpp: if (rmass) massfrac = rmass[i]/masstotal; +fix_spring_rg.cpp: else massfrac = mass[type[i]]/masstotal; +fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_spring_self.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_self.cpp: error->all(FLERR,"Illegal fix spring/self command"); +fix_spring_self.cpp: if (k <= 0.0) error->all(FLERR,"Illegal fix spring/self command"); +fix_spring_self.cpp: } else error->all(FLERR,"Illegal fix spring/self command"); +fix_spring_self.cpp: // perform initial allocation of atom-based array +fix_spring_self.cpp: // register with Atom class +fix_spring_self.cpp: // xoriginal = initial unwrapped positions of atoms +fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_self.cpp: // unregister callbacks to this fix from Atom class +fix_spring_self.cpp: // delete locally stored array +fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp: memory->grow(xoriginal,nmax,3,"fix_spring/self:xoriginal"); +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp: // skip to Nth set of extra values +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_spring_self.cpp:/* ---------------------------------------------------------------------- +fix_spring_self.cpp:------------------------------------------------------------------------- */ +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_store.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp:/* ---------------------------------------------------------------------- */ +fix_store.cpp: // 4th arg determines GLOBAL vs PERATOM values +fix_store.cpp: // syntax: id group style global nrow ncol +fix_store.cpp: // Nrow by Ncol array of global values +fix_store.cpp: // Ncol = 1 is vector, Ncol > 1 is array +fix_store.cpp: // syntax: id group style peratom 0/1 nvalues +fix_store.cpp: // 0/1 flag = not-store or store peratom values in restart file +fix_store.cpp: // nvalues = # of peratom values, N = 1 is vector, N > 1 is array +fix_store.cpp: // GLOBAL values are always written to restart file +fix_store.cpp: // PERATOM restart_peratom is set by caller +fix_store.cpp: // allocate vector or array and restart buffer rbuf +fix_store.cpp: // for PERATOM, register with Atom class +fix_store.cpp: if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); +fix_store.cpp: else memory->create(astore,nrow,ncol,"fix/store:astore"); +fix_store.cpp: memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); +fix_store.cpp: // zero the storage +fix_store.cpp: // PERATOM may be comm->exchanged before filled by caller +fix_store.cpp:/* ---------------------------------------------------------------------- */ +fix_store.cpp: // unregister callbacks to this fix from Atom class +fix_store.cpp:/* ---------------------------------------------------------------------- */ +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp: reset size of global vector/array +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp: if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); +fix_store.cpp: else memory->create(astore,nrow,ncol,"fix/store:astore"); +fix_store.cpp: memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp: // fill rbuf with size and vec/array values +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp: // first 2 values in buf are vec/array sizes +fix_store.cpp: // if size of vec/array has changed, +fix_store.cpp: // means the restart file is setting size of vec or array and doing init +fix_store.cpp: // because caller did not know size at time this fix was instantiated +fix_store.cpp: // reallocate vstore or astore accordingly +fix_store.cpp: if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); +fix_store.cpp: else memory->create(astore,nrow,ncol,"fix/store:astore"); +fix_store.cpp: memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp: // skip to Nth set of extra values +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store.cpp:/* ---------------------------------------------------------------------- +fix_store.cpp:------------------------------------------------------------------------- */ +fix_store_force.cpp:/* ---------------------------------------------------------------------- +fix_store_force.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_store_force.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_store_force.cpp:------------------------------------------------------------------------- */ +fix_store_force.cpp:/* ---------------------------------------------------------------------- */ +fix_store_force.cpp: if (narg < 3) error->all(FLERR,"Illegal fix store/coord command"); +fix_store_force.cpp: memory->create(foriginal,nmax,3,"store/force:foriginal"); +fix_store_force.cpp: // zero the array since dump may access it on timestep 0 +fix_store_force.cpp: // zero the array since a variable may access it before first run +fix_store_force.cpp:/* ---------------------------------------------------------------------- */ +fix_store_force.cpp:/* ---------------------------------------------------------------------- */ +fix_store_force.cpp:/* ---------------------------------------------------------------------- */ +fix_store_force.cpp:/* ---------------------------------------------------------------------- */ +fix_store_force.cpp:/* ---------------------------------------------------------------------- */ +fix_store_force.cpp:/* ---------------------------------------------------------------------- */ +fix_store_force.cpp: memory->create(foriginal,nmax,3,"store/force:foriginal"); +fix_store_force.cpp:/* ---------------------------------------------------------------------- */ +fix_store_force.cpp:/* ---------------------------------------------------------------------- */ +fix_store_force.cpp:/* ---------------------------------------------------------------------- +fix_store_force.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_store_state.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: if (narg < 5) error->all(FLERR,"Illegal fix store/state command"); +fix_store_state.cpp: if (nevery < 0) error->all(FLERR,"Illegal fix store/state command"); +fix_store_state.cpp: // parse values until one isn't recognized +fix_store_state.cpp: // customize a new keyword by adding to if statement +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); +fix_store_state.cpp: error->all(FLERR,"Illegal fix store/state command"); +fix_store_state.cpp: // optional args +fix_store_state.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix store/state command"); +fix_store_state.cpp: else error->all(FLERR,"Illegal fix store/state command"); +fix_store_state.cpp: } else error->all(FLERR,"Illegal fix store/state command"); +fix_store_state.cpp: // error check +fix_store_state.cpp: error->all(FLERR,"Compute ID for fix store/state does not exist"); +fix_store_state.cpp: error->all(FLERR,"Fix store/state compute " +fix_store_state.cpp: error->all(FLERR,"Fix store/state compute does not " +fix_store_state.cpp: "Fix store/state compute does not " +fix_store_state.cpp: "Fix store/state compute array is accessed out-of-range"); +fix_store_state.cpp: "Custom integer vector for fix store/state does not exist"); +fix_store_state.cpp: "Custom floating point vector for fix store/state does not exist"); +fix_store_state.cpp: "Fix ID for fix store/state does not exist"); +fix_store_state.cpp: "Fix store/state fix does not calculate per-atom values"); +fix_store_state.cpp: "Fix store/state fix does not calculate a per-atom vector"); +fix_store_state.cpp: "Fix store/state fix does not calculate a per-atom array"); +fix_store_state.cpp: "Fix store/state fix array is accessed out-of-range"); +fix_store_state.cpp: "Fix for fix store/state not computed at compatible time"); +fix_store_state.cpp: error->all(FLERR,"Variable name for fix store/state does not exist"); +fix_store_state.cpp: error->all(FLERR,"Fix store/state variable is not atom-style variable"); +fix_store_state.cpp: // this fix produces either a per-atom vector or array +fix_store_state.cpp: // perform initial allocation of atom-based array +fix_store_state.cpp: // register with Atom class +fix_store_state.cpp: // zero the array since dump may access it on timestep 0 +fix_store_state.cpp: // zero the array since a variable may access it before first run +fix_store_state.cpp: // store current values for keywords but not for compute, fix, variable +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: // unregister callbacks to this fix from Atom class +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: // set indices and check validity of all computes,fixes,variables +fix_store_state.cpp: // no error check if end_of_step() will not be called +fix_store_state.cpp: error->all(FLERR,"Compute ID for fix store/state does not exist"); +fix_store_state.cpp: "Custom integer vector for fix store/state does not exist"); +fix_store_state.cpp: "Custom floating point vector for fix store/state does not exist"); +fix_store_state.cpp: error->all(FLERR,"Fix ID for fix store/state does not exist"); +fix_store_state.cpp: error->all(FLERR,"Variable name for fix store/state does not exist"); +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: // if first invocation, store current values for compute, fix, variable +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: // compute com if comflag set +fix_store_state.cpp: // if any compute/fix/variable and nevery, wrap with clear/add +fix_store_state.cpp: // fill vector or array with per-atom values +fix_store_state.cpp: // invoke compute if not previously invoked +fix_store_state.cpp: // access fix fields, guaranteed to be ready +fix_store_state.cpp: // access custom atom property fields +fix_store_state.cpp: // evaluate atom-style variable +fix_store_state.cpp: // if any compute/fix/variable and nevery, wrap with clear/add +fix_store_state.cpp: const bigint nextstep = (update->ntimestep/nevery)*nevery + nevery; +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp: memory->grow(values,nmax,nvalues,"store/state:values"); +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp: // skip to Nth set of extra values +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- +fix_store_state.cpp: one method for every keyword fix store/state can archive +fix_store_state.cpp:------------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: double invxprd = 1.0/domain->xprd; +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: double invyprd = 1.0/domain->yprd; +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: double invzprd = 1.0/domain->zprd; +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: double invxprd = 1.0/domain->xprd; +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: double invyprd = 1.0/domain->yprd; +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp: double invzprd = 1.0/domain->zprd; +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_store_state.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- +fix_temp_berendsen.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_temp_berendsen.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_temp_berendsen.cpp:------------------------------------------------------------------------- */ +fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_berendsen.cpp: if (narg != 6) error->all(FLERR,"Illegal fix temp/berendsen command"); +fix_temp_berendsen.cpp: // Berendsen thermostat should be applied every step +fix_temp_berendsen.cpp: // error checks +fix_temp_berendsen.cpp: error->all(FLERR,"Fix temp/berendsen period must be > 0.0"); +fix_temp_berendsen.cpp: // create a new compute temp style +fix_temp_berendsen.cpp: // id = fix-ID + temp, compute group = fix group +fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_berendsen.cpp: // delete temperature if fix created it +fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_berendsen.cpp: // check variable +fix_temp_berendsen.cpp: error->all(FLERR,"Variable name for fix temp/berendsen does not exist"); +fix_temp_berendsen.cpp: else error->all(FLERR,"Variable for fix temp/berendsen is invalid style"); +fix_temp_berendsen.cpp: error->all(FLERR,"Temperature ID for fix temp/berendsen does not exist"); +fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_berendsen.cpp: // there is nothing to do, if there are no degrees of freedom +fix_temp_berendsen.cpp: "Computed temperature for fix temp/berendsen cannot be 0.0"); +fix_temp_berendsen.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_temp_berendsen.cpp: // set current t_target +fix_temp_berendsen.cpp: // if variable temp, evaluate variable, wrap with clear/add +fix_temp_berendsen.cpp: "Fix temp/berendsen variable returned negative temperature"); +fix_temp_berendsen.cpp: // rescale velocities by lamda +fix_temp_berendsen.cpp: // for BIAS: +fix_temp_berendsen.cpp: // temperature is current, so do not need to re-compute +fix_temp_berendsen.cpp: // OK to not test returned v = 0, since lamda is multiplied by v +fix_temp_berendsen.cpp: double lamda = sqrt(1.0 + update->dt/t_period*(t_target/t_current - 1.0)); +fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- +fix_temp_berendsen.cpp:------------------------------------------------------------------------- */ +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- +fix_temp_csld.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_temp_csld.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_temp_csld.cpp:------------------------------------------------------------------------- */ +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- +fix_temp_csld.cpp:------------------------------------------------------------------------- */ +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csld.cpp: if (narg != 7) error->all(FLERR,"Illegal fix temp/csld command"); +fix_temp_csld.cpp: // CSLD thermostat should be applied every step +fix_temp_csld.cpp: // error checks +fix_temp_csld.cpp: if (t_period <= 0.0) error->all(FLERR,"Illegal fix temp/csld command"); +fix_temp_csld.cpp: if (seed <= 0) error->all(FLERR,"Illegal fix temp/csld command"); +fix_temp_csld.cpp: // create a new compute temp style +fix_temp_csld.cpp: // id = fix-ID + temp, compute group = fix group +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csld.cpp: // delete temperature if fix created it +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csld.cpp: // we cannot handle constraints via rattle or shake correctly. +fix_temp_csld.cpp: error->all(FLERR,"Fix temp/csld is not compatible with fix rattle or fix shake"); +fix_temp_csld.cpp: // check variable +fix_temp_csld.cpp: error->all(FLERR,"Variable name for fix temp/csld does not exist"); +fix_temp_csld.cpp: else error->all(FLERR,"Variable for fix temp/csld is invalid style"); +fix_temp_csld.cpp: error->all(FLERR,"Temperature ID for fix temp/csld does not exist"); +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csld.cpp: // set current t_target +fix_temp_csld.cpp: // if variable temp, evaluate variable, wrap with clear/add +fix_temp_csld.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_temp_csld.cpp: "Fix temp/csld variable returned negative temperature"); +fix_temp_csld.cpp: // there is nothing to do, if there are no degrees of freedom +fix_temp_csld.cpp: // adjust holding space, if needed and copy existing velocities +fix_temp_csld.cpp: // The CSLD thermostat is a linear combination of old and new velocities, +fix_temp_csld.cpp: // where the new ones are randomly chosen from a gaussian distribution. +fix_temp_csld.cpp: // see Bussi and Parrinello, Phys. Rev. E (2007). +fix_temp_csld.cpp: const double factor = 1.0/sqrt(m); +fix_temp_csld.cpp: // mixing factors +fix_temp_csld.cpp: const double c1 = exp(-update->dt/t_period); +fix_temp_csld.cpp: const double c2 = sqrt((1.0-c1*c1)*t_target/temperature->compute_scalar()); +fix_temp_csld.cpp: // tally the kinetic energy transferred between heat bath and system +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csld.cpp:/* ---------------------------------------------------------------------- +fix_temp_csld.cpp:------------------------------------------------------------------------- */ +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- +fix_temp_csvr.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_temp_csvr.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_temp_csvr.cpp:------------------------------------------------------------------------- */ +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- +fix_temp_csvr.cpp:------------------------------------------------------------------------- */ +fix_temp_csvr.cpp: // make certain, that -log() doesn't overflow. +fix_temp_csvr.cpp: y=v2/v1; +fix_temp_csvr.cpp: if (am*log(x/am)-s*y < -700 || v1<0.00001) { +fix_temp_csvr.cpp: e=(1.0+y*y)*exp(am*log(x/am)-s*y); +fix_temp_csvr.cpp:/* ------------------------------------------------------------------- +fix_temp_csvr.cpp:---------------------------------------------------------------------- */ +fix_temp_csvr.cpp: return 2.0 * gamdev(nn / 2); +fix_temp_csvr.cpp: return 2.0 * gamdev((nn-1) / 2) + rr*rr; +fix_temp_csvr.cpp:/* ------------------------------------------------------------------- +fix_temp_csvr.cpp:---------------------------------------------------------------------- */ +fix_temp_csvr.cpp: const double c1 = exp(-update->dt/t_period); +fix_temp_csvr.cpp: const double c2 = (1.0-c1)*ekin_new/ekin_old/tdof; +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csvr.cpp: if (narg != 7) error->all(FLERR,"Illegal fix temp/csvr command"); +fix_temp_csvr.cpp: // CSVR thermostat should be applied every step +fix_temp_csvr.cpp: // error checks +fix_temp_csvr.cpp: if (t_period <= 0.0) error->all(FLERR,"Illegal fix temp/csvr command"); +fix_temp_csvr.cpp: if (seed <= 0) error->all(FLERR,"Illegal fix temp/csvr command"); +fix_temp_csvr.cpp: // create a new compute temp style +fix_temp_csvr.cpp: // id = fix-ID + temp, compute group = fix group +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csvr.cpp: // delete temperature if fix created it +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csvr.cpp: // check variable +fix_temp_csvr.cpp: error->all(FLERR,"Variable name for fix temp/csvr does not exist"); +fix_temp_csvr.cpp: else error->all(FLERR,"Variable for fix temp/csvr is invalid style"); +fix_temp_csvr.cpp: error->all(FLERR,"Temperature ID for fix temp/csvr does not exist"); +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csvr.cpp: // set current t_target +fix_temp_csvr.cpp: // if variable temp, evaluate variable, wrap with clear/add +fix_temp_csvr.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_temp_csvr.cpp: "Fix temp/csvr variable returned negative temperature"); +fix_temp_csvr.cpp: // there is nothing to do, if there are no degrees of freedom +fix_temp_csvr.cpp: // compute velocity scaling factor on root node and broadcast +fix_temp_csvr.cpp: // tally the kinetic energy transferred between heat bath and system +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- +fix_temp_csvr.cpp:------------------------------------------------------------------------- */ +fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- +fix_temp_rescale.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_temp_rescale.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_temp_rescale.cpp:------------------------------------------------------------------------- */ +fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_rescale.cpp: if (narg < 8) error->all(FLERR,"Illegal fix temp/rescale command"); +fix_temp_rescale.cpp: if (nevery <= 0) error->all(FLERR,"Illegal fix temp/rescale command"); +fix_temp_rescale.cpp: // create a new compute temp +fix_temp_rescale.cpp: // id = fix-ID + temp, compute group = fix group +fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_rescale.cpp: // delete temperature if fix created it +fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_rescale.cpp: // check variable +fix_temp_rescale.cpp: error->all(FLERR,"Variable name for fix temp/rescale does not exist"); +fix_temp_rescale.cpp: else error->all(FLERR,"Variable for fix temp/rescale is invalid style"); +fix_temp_rescale.cpp: error->all(FLERR,"Temperature ID for fix temp/rescale does not exist"); +fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_rescale.cpp: // there is nothing to do, if there are no degrees of freedom +fix_temp_rescale.cpp: // protect against division by zero +fix_temp_rescale.cpp: error->all(FLERR,"Computed temperature for fix temp/rescale cannot be 0.0"); +fix_temp_rescale.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_temp_rescale.cpp: // set current t_target +fix_temp_rescale.cpp: // if variable temp, evaluate variable, wrap with clear/add +fix_temp_rescale.cpp: "Fix temp/rescale variable returned negative temperature"); +fix_temp_rescale.cpp: // rescale velocity of appropriate atoms if outside window +fix_temp_rescale.cpp: // for BIAS: +fix_temp_rescale.cpp: // temperature is current, so do not need to re-compute +fix_temp_rescale.cpp: // OK to not test returned v = 0, since factor is multiplied by v +fix_temp_rescale.cpp: double factor = sqrt(t_target/t_current); +fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ +fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- +fix_temp_rescale.cpp:------------------------------------------------------------------------- */ +fix_tmd.cpp:/* ---------------------------------------------------------------------- +fix_tmd.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_tmd.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_tmd.cpp:------------------------------------------------------------------------- */ +fix_tmd.cpp:/* ---------------------------------------------------------------------- +fix_tmd.cpp:------------------------------------------------------------------------- */ +fix_tmd.cpp:/* ---------------------------------------------------------------------- */ +fix_tmd.cpp: // perform initial allocation of atom-based arrays +fix_tmd.cpp: // register with Atom class +fix_tmd.cpp: // make sure an atom map exists before reading in target coordinates +fix_tmd.cpp: // read from arg[4] and store coordinates of final target in xf +fix_tmd.cpp: // open arg[6] statistics file and write header +fix_tmd.cpp: // rho_start = initial rho +fix_tmd.cpp: // xold = initial x or 0.0 if not in group +fix_tmd.cpp: rho_start = sqrt(rho_start_total/masstotal); +fix_tmd.cpp:/* ---------------------------------------------------------------------- */ +fix_tmd.cpp: // unregister callbacks to this fix from Atom class +fix_tmd.cpp: // delete locally stored arrays +fix_tmd.cpp:/* ---------------------------------------------------------------------- */ +fix_tmd.cpp:/* ---------------------------------------------------------------------- */ +fix_tmd.cpp: // check that no integrator fix comes after a TMD fix +fix_tmd.cpp: // timesteps +fix_tmd.cpp:/* ---------------------------------------------------------------------- */ +fix_tmd.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +fix_tmd.cpp: // compute the Lagrange multiplier +fix_tmd.cpp: a = abetotal[0]/masstotal; +fix_tmd.cpp: b = 2.0*abetotal[1]/masstotal; +fix_tmd.cpp: e = abetotal[2]/masstotal; +fix_tmd.cpp: if (b >= 0) gamma_max = (-b - sqrt(d))/(2*a); +fix_tmd.cpp: else gamma_max = (-b + sqrt(d))/(2*a); +fix_tmd.cpp: gamma_back = c/(a*gamma_max); +fix_tmd.cpp: if (b >= 0) gamma_max = (-b - sqrt(d))/(2*a); +fix_tmd.cpp: else gamma_max = (-b + sqrt(d))/(2*a); +fix_tmd.cpp: gamma_forward = c/(a*gamma_max); +fix_tmd.cpp: // stat write of mean constraint force based on previous time step constraint +fix_tmd.cpp: (-frtotal - kttotal/dtv/dtf)*(rho_target - rho_old)/rho_old; +fix_tmd.cpp: lambda = gamma_back*rho_old*masstotal/dtv/dtf; +fix_tmd.cpp: // apply the constraint and save constrained positions for next step +fix_tmd.cpp: dtfm = dtf / mass[type[i]]; +fix_tmd.cpp: v[i][0] += gamma_forward*dxold/dtv; +fix_tmd.cpp: f[i][0] += gamma_forward*dxold/dtv/dtfm; +fix_tmd.cpp: v[i][1] += gamma_forward*dyold/dtv; +fix_tmd.cpp: f[i][1] += gamma_forward*dyold/dtv/dtfm; +fix_tmd.cpp: v[i][2] += gamma_forward*dzold/dtv; +fix_tmd.cpp: f[i][2] += gamma_forward*dzold/dtv/dtfm; +fix_tmd.cpp:/* ---------------------------------------------------------------------- */ +fix_tmd.cpp: if (flag) return; // only used by NPT,NPH +fix_tmd.cpp:/* ---------------------------------------------------------------------- +fix_tmd.cpp:------------------------------------------------------------------------- */ +fix_tmd.cpp:/* ---------------------------------------------------------------------- +fix_tmd.cpp:------------------------------------------------------------------------- */ +fix_tmd.cpp:/* ---------------------------------------------------------------------- +fix_tmd.cpp:------------------------------------------------------------------------- */ +fix_tmd.cpp:/* ---------------------------------------------------------------------- +fix_tmd.cpp:------------------------------------------------------------------------- */ +fix_tmd.cpp:/* ---------------------------------------------------------------------- +fix_tmd.cpp:------------------------------------------------------------------------- */ +fix_tmd.cpp:/* ---------------------------------------------------------------------- +fix_tmd.cpp:------------------------------------------------------------------------- */ +fix_tmd.cpp: MPI_Bcast(&eof,sizeof(char *)/sizeof(char),MPI_CHAR,0,world); +fix_tmd.cpp: // clean up +fix_tmd.cpp: // check that all atoms in group were listed in target file +fix_tmd.cpp: // set xf = 0.0 for atoms not in group +fix_tmd.cpp:/* ---------------------------------------------------------------------- +fix_tmd.cpp:------------------------------------------------------------------------- */ +fix_tmd.cpp:/* ---------------------------------------------------------------------- */ +fix_vector.cpp:/* ---------------------------------------------------------------------- +fix_vector.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_vector.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_vector.cpp:------------------------------------------------------------------------- */ +fix_vector.cpp:/* ---------------------------------------------------------------------- */ +fix_vector.cpp: // setup and error check +fix_vector.cpp: // for fix inputs, check that fix frequency is acceptable +fix_vector.cpp: // this fix produces either a global vector or array +fix_vector.cpp: // intensive/extensive flags set by compute,fix,variable that produces value +fix_vector.cpp: "intensive/extensive from these inputs"); +fix_vector.cpp: // ncount = current size of vector or array +fix_vector.cpp: // nextstep = next step on which end_of_step does something +fix_vector.cpp: // add nextstep to all computes that store invocation times +fix_vector.cpp: // since don't know a priori which are invoked by this fix +fix_vector.cpp: // once in end_of_step() can set timestep for ones actually invoked +fix_vector.cpp: nextstep = (update->ntimestep/nevery)*nevery; +fix_vector.cpp: // initialstep = first step the vector/array will store values for +fix_vector.cpp:/* ---------------------------------------------------------------------- */ +fix_vector.cpp:/* ---------------------------------------------------------------------- */ +fix_vector.cpp:/* ---------------------------------------------------------------------- */ +fix_vector.cpp: // set current indices for all computes,fixes,variables +fix_vector.cpp: // reallocate vector or array for accumulated size at end of run +fix_vector.cpp: // use endstep to allow for subsequent runs with "pre no" +fix_vector.cpp: // nsize = # of entries from initialstep to finalstep +fix_vector.cpp: bigint finalstep = update->endstep/nevery * nevery; +fix_vector.cpp: ncountmax = (finalstep-initialstep)/nevery + 1; +fix_vector.cpp:/* ---------------------------------------------------------------------- +fix_vector.cpp:------------------------------------------------------------------------- */ +fix_vector.cpp:/* ---------------------------------------------------------------------- */ +fix_vector.cpp: // skip if not step which requires doing something +fix_vector.cpp: // accumulate results of computes,fixes,variables to local copy +fix_vector.cpp: // compute/fix/variable may invoke computes so wrap with clear/add +fix_vector.cpp: // invoke compute if not previously invoked +fix_vector.cpp: // access fix fields, guaranteed to be ready +fix_vector.cpp: // evaluate equal-style or vector-style variable +fix_vector.cpp: // trigger computes on next needed step +fix_vector.cpp: // update size of vector or array +fix_vector.cpp:/* ---------------------------------------------------------------------- +fix_vector.cpp:------------------------------------------------------------------------- */ +fix_vector.cpp:/* ---------------------------------------------------------------------- +fix_vector.cpp:------------------------------------------------------------------------- */ +fix_viscous.cpp:/* ---------------------------------------------------------------------- +fix_viscous.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_viscous.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_viscous.cpp:------------------------------------------------------------------------- */ +fix_viscous.cpp:/* ---------------------------------------------------------------------- */ +fix_viscous.cpp: // optional args +fix_viscous.cpp:/* ---------------------------------------------------------------------- */ +fix_viscous.cpp:/* ---------------------------------------------------------------------- */ +fix_viscous.cpp:/* ---------------------------------------------------------------------- */ +fix_viscous.cpp:/* ---------------------------------------------------------------------- */ +fix_viscous.cpp:/* ---------------------------------------------------------------------- */ +fix_viscous.cpp:/* ---------------------------------------------------------------------- */ +fix_viscous.cpp: // apply drag force to atoms in group +fix_viscous.cpp: // direction is opposed to velocity vector +fix_viscous.cpp: // magnitude depends on atom type +fix_viscous.cpp:/* ---------------------------------------------------------------------- */ +fix_viscous.cpp:/* ---------------------------------------------------------------------- */ +fix_wall.cpp:/* ---------------------------------------------------------------------- +fix_wall.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_wall.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_wall.cpp:------------------------------------------------------------------------- */ +fix_wall.cpp:/* ---------------------------------------------------------------------- */ +fix_wall.cpp: // parse args +fix_wall.cpp: int dim = wallwhich[nwall] / 2; +fix_wall.cpp: // error checks +fix_wall.cpp: error->all(FLERR,"Cannot use fix wall zlo/zhi for a 2d simulation"); +fix_wall.cpp: // scale factors for wall position for CONSTANT and VARIABLE walls +fix_wall.cpp: // set xflag if any wall positions are variable +fix_wall.cpp: // set varflag if any wall positions or parameters are variable +fix_wall.cpp: // set wstyle to VARIABLE if either epsilon or sigma is a variable +fix_wall.cpp:/* ---------------------------------------------------------------------- */ +fix_wall.cpp:/* ---------------------------------------------------------------------- */ +fix_wall.cpp: // FLD implicit needs to invoke wall forces before pair style +fix_wall.cpp:/* ---------------------------------------------------------------------- */ +fix_wall.cpp: // setup coefficients +fix_wall.cpp:/* ---------------------------------------------------------------------- */ +fix_wall.cpp:/* ---------------------------------------------------------------------- */ +fix_wall.cpp:/* ---------------------------------------------------------------------- +fix_wall.cpp:------------------------------------------------------------------------- */ +fix_wall.cpp:/* ---------------------------------------------------------------------- */ +fix_wall.cpp: // coord = current position of wall +fix_wall.cpp: // evaluate variables if necessary, wrap with clear/add +fix_wall.cpp: // for epsilon/sigma variables need to re-invoke precompute() +fix_wall.cpp:/* ---------------------------------------------------------------------- */ +fix_wall.cpp:/* ---------------------------------------------------------------------- */ +fix_wall.cpp:/* ---------------------------------------------------------------------- +fix_wall.cpp:------------------------------------------------------------------------- */ +fix_wall.cpp: // only sum across procs one time +fix_wall.cpp:/* ---------------------------------------------------------------------- +fix_wall.cpp:------------------------------------------------------------------------- */ +fix_wall.cpp: // only sum across procs one time +fix_wall_harmonic.cpp:/* ---------------------------------------------------------------------- +fix_wall_harmonic.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_wall_harmonic.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_wall_harmonic.cpp:------------------------------------------------------------------------- */ +fix_wall_harmonic.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_harmonic.cpp:/* ---------------------------------------------------------------------- +fix_wall_harmonic.cpp:------------------------------------------------------------------------- */ +fix_wall_harmonic.cpp: int dim = which / 2; +fix_wall_lj1043.cpp:/* ---------------------------------------------------------------------- +fix_wall_lj1043.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_wall_lj1043.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_wall_lj1043.cpp:------------------------------------------------------------------------- */ +fix_wall_lj1043.cpp:/* ---------------------------------------------------------------------- +fix_wall_lj1043.cpp:------------------------------------------------------------------------- */ +fix_wall_lj1043.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_lj1043.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_lj1043.cpp: coeff1[m] = MY_2PI * 2.0/5.0 * epsilon[m] * pow(sigma[m],10.0); +fix_wall_lj1043.cpp: coeff3[m] = MY_2PI * pow(2.0,1/2.0) / 3 * epsilon[m] * pow(sigma[m],3.0); +fix_wall_lj1043.cpp: coeff4[m] = 0.61 / pow(2.0,1/2.0) * sigma[m]; +fix_wall_lj1043.cpp: double rinv = 1.0/cutoff[m]; +fix_wall_lj1043.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_lj1043.cpp: int dim = which / 2; +fix_wall_lj1043.cpp: rinv = 1.0/delta; +fix_wall_lj126.cpp:/* ---------------------------------------------------------------------- +fix_wall_lj126.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_wall_lj126.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_wall_lj126.cpp:------------------------------------------------------------------------- */ +fix_wall_lj126.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_lj126.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_lj126.cpp: double r2inv = 1.0/(cutoff[m]*cutoff[m]); +fix_wall_lj126.cpp:/* ---------------------------------------------------------------------- +fix_wall_lj126.cpp:------------------------------------------------------------------------- */ +fix_wall_lj126.cpp: int dim = which / 2; +fix_wall_lj126.cpp: rinv = 1.0/delta; +fix_wall_lj93.cpp:/* ---------------------------------------------------------------------- +fix_wall_lj93.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_wall_lj93.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_wall_lj93.cpp:------------------------------------------------------------------------- */ +fix_wall_lj93.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_lj93.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_lj93.cpp: coeff1[m] = 6.0/5.0 * epsilon[m] * pow(sigma[m],9.0); +fix_wall_lj93.cpp: coeff3[m] = 2.0/15.0 * epsilon[m] * pow(sigma[m],9.0); +fix_wall_lj93.cpp: double rinv = 1.0/cutoff[m]; +fix_wall_lj93.cpp:/* ---------------------------------------------------------------------- +fix_wall_lj93.cpp:------------------------------------------------------------------------- */ +fix_wall_lj93.cpp: int dim = which / 2; +fix_wall_lj93.cpp: rinv = 1.0/delta; +fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- +fix_wall_reflect.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_wall_reflect.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_wall_reflect.cpp:------------------------------------------------------------------------- */ +fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_reflect.cpp: if (narg < 4) error->all(FLERR,"Illegal fix wall/reflect command"); +fix_wall_reflect.cpp: // parse args +fix_wall_reflect.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix wall/reflect command"); +fix_wall_reflect.cpp: error->all(FLERR,"Wall defined twice in fix wall/reflect command"); +fix_wall_reflect.cpp: int dim = wallwhich[nwall] / 2; +fix_wall_reflect.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal wall/reflect command"); +fix_wall_reflect.cpp: else error->all(FLERR,"Illegal fix wall/reflect command"); +fix_wall_reflect.cpp: } else error->all(FLERR,"Illegal fix wall/reflect command"); +fix_wall_reflect.cpp: // error check +fix_wall_reflect.cpp: error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); +fix_wall_reflect.cpp: error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); +fix_wall_reflect.cpp: error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); +fix_wall_reflect.cpp: "Cannot use fix wall/reflect zlo/zhi for a 2d simulation"); +fix_wall_reflect.cpp: // scale factors for CONSTANT and VARIABLE walls +fix_wall_reflect.cpp: // set varflag if any wall positions are variable +fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_reflect.cpp: error->all(FLERR,"Variable name for fix wall/reflect does not exist"); +fix_wall_reflect.cpp: error->all(FLERR,"Variable for fix wall/reflect is invalid style"); +fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_reflect.cpp: // coord = current position of wall +fix_wall_reflect.cpp: // evaluate variable if necessary, wrap with clear/add +fix_wall_reflect.cpp: dim = wallwhich[m] / 2; +fix_wall_region.cpp:/* ---------------------------------------------------------------------- +fix_wall_region.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +fix_wall_region.cpp: http://lammps.sandia.gov, Sandia National Laboratories +fix_wall_region.cpp:------------------------------------------------------------------------- */ +fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_region.cpp: if (narg != 8) error->all(FLERR,"Illegal fix wall/region command"); +fix_wall_region.cpp: // parse args +fix_wall_region.cpp: error->all(FLERR,"Region ID for fix wall/region does not exist"); +fix_wall_region.cpp: else error->all(FLERR,"Illegal fix wall/region command"); +fix_wall_region.cpp: if (cutoff <= 0.0) error->all(FLERR,"Fix wall/region cutoff <= 0.0"); +fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_region.cpp: // set index and check validity of region +fix_wall_region.cpp: error->all(FLERR,"Region ID for fix wall/region does not exist"); +fix_wall_region.cpp: // error checks for style COLLOID +fix_wall_region.cpp: // insure all particles in group are extended particles +fix_wall_region.cpp: error->all(FLERR,"Fix wall/region colloid requires atom style sphere"); +fix_wall_region.cpp: error->all(FLERR,"Fix wall/region colloid requires extended particles"); +fix_wall_region.cpp: // setup coefficients for each style +fix_wall_region.cpp: coeff1 = 6.0/5.0 * epsilon * pow(sigma,9.0); +fix_wall_region.cpp: coeff3 = 2.0/15.0 * epsilon * pow(sigma,9.0); +fix_wall_region.cpp: double rinv = 1.0/cutoff; +fix_wall_region.cpp: double r2inv = 1.0/(cutoff*cutoff); +fix_wall_region.cpp: coeff1 = -4.0/315.0 * epsilon * pow(sigma,6.0); +fix_wall_region.cpp: coeff2 = -2.0/3.0 * epsilon; +fix_wall_region.cpp: coeff3 = epsilon * pow(sigma,6.0)/7560.0; +fix_wall_region.cpp: coeff4 = epsilon/6.0; +fix_wall_region.cpp: double rinv = 1.0/cutoff; +fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_region.cpp: // region->match() insures particle is in region or on surface, else error +fix_wall_region.cpp: // if returned contact dist r = 0, is on surface, also an error +fix_wall_region.cpp: // in COLLOID case, r <= radius is an error +fix_wall_region.cpp: // initilize ewall after region->prematch(), +fix_wall_region.cpp: // so a dynamic region can access last timestep values +fix_wall_region.cpp: } else rinv = 1.0/region->contact[m].r; +fix_wall_region.cpp: "used in fix wall/region"); +fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ +fix_wall_region.cpp:/* ---------------------------------------------------------------------- +fix_wall_region.cpp:------------------------------------------------------------------------- */ +fix_wall_region.cpp: // only sum across procs one time +fix_wall_region.cpp:/* ---------------------------------------------------------------------- +fix_wall_region.cpp:------------------------------------------------------------------------- */ +fix_wall_region.cpp: // only sum across procs one time +fix_wall_region.cpp:/* ---------------------------------------------------------------------- +fix_wall_region.cpp: LJ 9/3 interaction for particle with wall +fix_wall_region.cpp:------------------------------------------------------------------------- */ +fix_wall_region.cpp: double rinv = 1.0/r; +fix_wall_region.cpp:/* ---------------------------------------------------------------------- +fix_wall_region.cpp: LJ 12/6 interaction for particle with wall +fix_wall_region.cpp:------------------------------------------------------------------------- */ +fix_wall_region.cpp: double rinv = 1.0/r; +fix_wall_region.cpp:/* ---------------------------------------------------------------------- +fix_wall_region.cpp:------------------------------------------------------------------------- */ +fix_wall_region.cpp: double rinv = 1.0/delta2; +fix_wall_region.cpp: double rinv2 = 1.0/r2; +fix_wall_region.cpp: double rinv3 = 1.0/r3; +fix_wall_region.cpp:/* ---------------------------------------------------------------------- +fix_wall_region.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +force.cpp: http://lammps.sandia.gov, Sandia National Laboratories +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- */ +force.cpp: // fill pair map with pair styles listed in style_pair.h +force.cpp:/* ---------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- */ +force.cpp: qqrd2e = qqr2e/dielectric; +force.cpp: if (kspace) kspace->init(); // kspace must come before pair +force.cpp: if (pair) pair->init(); // so g_ewald is defined +force.cpp:/* ---------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp: if trysuffix = 1, try first with suffix1/2 appended +force.cpp: return sflag = 0 for no suffix added, 1 or 2 for suffix1/2 added +force.cpp:------------------------------------------------------------------------- */ +force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); +force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp: else if (strstr(pair_style,"hybrid/overlay")) { +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); +force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); +force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); +force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); +force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp: sprintf(estyle,"%s/%s",arg[0],lmp->suffix); +force.cpp: sprintf(estyle,"%s/%s",arg[0],lmp->suffix2); +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp: if sflag = 1/2, append suffix or suffix2 to style +force.cpp:------------------------------------------------------------------------- */ +force.cpp: if (sflag == 1) sprintf(estyle,"%s/%s",style,lmp->suffix); +force.cpp: else sprintf(estyle,"%s/%s",style,lmp->suffix2); +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp: // defaults, but do not reset special_extra +force.cpp: special_coul[3] = 5.0/6.0; +force.cpp: } else if (strcmp(arg[iarg],"lj/coul") == 0) { +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp: // attempt to open file directly +force.cpp: // if successful, return ptr +force.cpp: // try the environment variable directory +force.cpp: newpath[len1] = '/'; +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp: // skip over the disk drive part of windows pathnames +force.cpp: if ((*path == '\\') || (*path == '/')) pot = path + 1; +force.cpp: if (*path == '/') pot = path + 1; +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +force.cpp:/* ---------------------------------------------------------------------- +force.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +group.cpp: http://lammps.sandia.gov, Sandia National Laboratories +group.cpp:------------------------------------------------------------------------- */ +group.cpp:// allocate space for static class variable +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: // create "all" group +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: // delete the group if not being used elsewhere +group.cpp: // clear mask of each atom assigned to this group +group.cpp: // clear the group +group.cpp: // find group in existing list +group.cpp: // add a new group if igroup = -1 +group.cpp: // style = region +group.cpp: // add to group if atom is in region +group.cpp: // style = type, molecule, id +group.cpp: // add to group if atom matches type/molecule/id or condition +group.cpp: // args = logical condition +group.cpp: // add to group if meets condition +group.cpp: // args = list of values +group.cpp: // add to group if attribute matches value or sequence +group.cpp: // style = variable +group.cpp: // add to group if atom-atyle variable is non-zero +group.cpp: // aflag = evaluation of per-atom variable +group.cpp: // add to group if per-atom variable evaluated to non-zero +group.cpp: // style = include +group.cpp: // style = subtract +group.cpp: // add to group if in 1st group in list +group.cpp: // remove atoms if they are in any of the other groups +group.cpp: // AND with inverse mask removes the atom from group +group.cpp: // style = union +group.cpp: // add to group if in any other group in list +group.cpp: // style = intersect +group.cpp: // add to group if in all groups in list +group.cpp: // style = dynamic +group.cpp: // create a new FixGroup to dynamically determine atoms in group +group.cpp: // if group is already dynamic, delete existing FixGroup +group.cpp: // style = static +group.cpp: // remove dynamic FixGroup if necessary +group.cpp: // not a valid group style +group.cpp: // print stats for changed group +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: // find group in existing list +group.cpp: // add a new group if igroup = -1 +group.cpp: // add atoms to group whose flags are set +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: // hash = unique molecule IDs of atoms already in group +group.cpp: // list = set of unique molecule IDs for atoms to add +group.cpp: // pass list to all other procs via comm->ring() +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: // use count to not change restart format with deleted groups +group.cpp: // remove this on next major release +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: // delete existing group names +group.cpp: // atom masks will be overwritten by reading of restart file +group.cpp: // use count to not change restart format with deleted groups +group.cpp: // remove this on next major release +group.cpp:// ---------------------------------------------------------------------- +group.cpp:// computations on a group of atoms +group.cpp:// ---------------------------------------------------------------------- +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: // compute extent across all procs +group.cpp: // flip sign of MIN to do it in one Allreduce MAX +group.cpp: // set box by extent in shrink-wrapped dims +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: // compute extent across all procs +group.cpp: // flip sign of MIN to do it in one Allreduce MAX +group.cpp: // set box by extent in shrink-wrapped dims +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: cm[0] /= masstotal; +group.cpp: cm[1] /= masstotal; +group.cpp: cm[2] /= masstotal; +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: cm[0] /= masstotal; +group.cpp: cm[1] /= masstotal; +group.cpp: cm[2] /= masstotal; +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: cm[0] /= masstotal; +group.cpp: cm[1] /= masstotal; +group.cpp: cm[2] /= masstotal; +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: cm[0] /= masstotal; +group.cpp: cm[1] /= masstotal; +group.cpp: cm[2] /= masstotal; +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: if (masstotal > 0.0) return sqrt(rg_all/masstotal); +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: if (masstotal > 0.0) return sqrt(rg_all/masstotal); +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp:/* ---------------------------------------------------------------------- +group.cpp:------------------------------------------------------------------------- */ +group.cpp: // determinant = triple product of rows of inertia matrix +group.cpp: // non-singular I matrix +group.cpp: // use L = Iw, inverting I to solve for w +group.cpp: // this should give exact zeroing of angular momentum by velocity command +group.cpp: inverse[i][j] /= determinant; +group.cpp: // handle (nearly) singular I matrix +group.cpp: // typically due to 2-atom group or linear molecule +group.cpp: // use jacobi() and angmom_to_omega() to calculate valid omega +group.cpp: // less exact answer than matrix inversion, due to iterative Jacobi method +group.cpp: // enforce 3 evectors as a right-handed coordinate system +group.cpp: // flip 3rd vector if needed +group.cpp: // if any principal moment < scaled EPSILON, set to 0.0 +group.cpp: // calculate omega using diagonalized inertia matrix +image.cpp:/* ---------------------------------------------------------------------- +image.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +image.cpp: http://lammps.sandia.gov, Sandia National Laboratories +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- */ +image.cpp: // defaults for 3d viz +image.cpp: theta = 60.0 * MY_PI/180.0; +image.cpp: phi = 30.0 * MY_PI/180.0; +image.cpp: // colors +image.cpp: // define nmap colormaps, all with default settings +image.cpp: // static parameters +image.cpp: FOV = MY_PI/6.0; // 30 degrees +image.cpp: keyLightPhi = -MY_PI4; // -45 degrees +image.cpp: keyLightTheta = MY_PI/6.0; // 30 degrees +image.cpp: fillLightPhi = MY_PI/6.0; // 30 degrees +image.cpp: backLightPhi = MY_PI; // 180 degrees +image.cpp: backLightTheta = MY_PI/12.0; // 15 degrees +image.cpp:/* ---------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp: // camDir points at the camera, view direction = -camDir +image.cpp: // normalize up vector +image.cpp: // adjust camDir by epsilon if camDir and up are parallel +image.cpp: // do this by tweaking view direction, not up direction +image.cpp: // try to insure continuous images as changing view passes thru up +image.cpp: // sufficient to handle common cases where theta = 0 or 180 is degenerate? +image.cpp: // camUp = camDir x (Up x camDir) +image.cpp: // zdist = camera distance = function of zoom & bounding box +image.cpp: // camPos = camera position = function of camDir and zdist +image.cpp: zdist /= tan(FOV); +image.cpp: zdist /= zoom; +image.cpp: // light directions in terms of -camDir = z +image.cpp: // adjust shinyness of the reflection +image.cpp: // adjust strength of the SSAO +image.cpp: SSAOJitter = MY_PI / 12; +image.cpp: // param for rasterizing spheres +image.cpp: tanPerPixel = -(maxdel / (double) height); +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp: nhalf /= 2; +image.cpp: nhalf /= 2; +image.cpp: // extra SSAO enhancement +image.cpp: // bcast full image to all procs +image.cpp: // each works on subset of pixels +image.cpp: // gather result back to proc 0 +image.cpp: int pixelPart = height/nprocs * width*3; +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp: draw XYZ axes in red/green/blue +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp: -tanPerPixel / zoom; +image.cpp: double pixelRadiusFull = radius / pixelWidth; +image.cpp: double xf = xmap / pixelWidth; +image.cpp: double yf = ymap / pixelWidth; +image.cpp: // shift 0,0 to screen center (vs lower left) +image.cpp: xc += width / 2; +image.cpp: yc += height / 2; +image.cpp: // outside the sphere in the projected image +image.cpp: surface[0] /= radius; +image.cpp: surface[1] /= radius; +image.cpp: surface[2] /= radius; +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp: -tanPerPixel / zoom; +image.cpp: double pixelHalfWidthFull = halfWidth / pixelWidth; +image.cpp: double xf = xmap / pixelWidth; +image.cpp: double yf = ymap / pixelWidth; +image.cpp: // shift 0,0 to screen center (vs lower left) +image.cpp: xc += width / 2; +image.cpp: yc += height / 2; +image.cpp: // iterate through each of the 6 axis-oriented planes of the box +image.cpp: // only render up to 3 which are facing the camera +image.cpp: // these checks short circuit a dot product, testing for > 0 +image.cpp: if (camDir[dim] > 0) { // positive faces camera +image.cpp: t = (radius - surface[dim]) / camDir[dim]; +image.cpp: } else if (camDir[dim] < 0) { // negative faces camera +image.cpp: t = -(radius + surface[dim]) / camDir[dim]; +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp: if (sflag/2) draw_sphere(y,surfaceColor,diameter); +image.cpp: MathExtra::scale3(1.0/len,zaxis); +image.cpp: -tanPerPixel / zoom; +image.cpp: double xf = xmap / pixelWidth; +image.cpp: double yf = ymap / pixelWidth; +image.cpp: // shift 0,0 to screen center (vs lower left) +image.cpp: xc += width / 2; +image.cpp: yc += height / 2; +image.cpp: double pixelHalfWidthFull = (rasterWidth * 0.5) / pixelWidth; +image.cpp: double pixelHalfHeightFull = (rasterHeight * 0.5) / pixelWidth; +image.cpp: double t = (-b + partial) / (2*a); +image.cpp: double t2 = (-b - partial) / (2*a); +image.cpp: // convert surface into the surface normal +image.cpp: normal[0] = surface[0] / radius; +image.cpp: normal[1] = surface[1] / radius; +image.cpp: // in camera space +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp: MathExtra::scale3 (1.0 / d1len, d1); +image.cpp: MathExtra::scale3 (1.0 / d2len, d2); +image.cpp: invndotd = 1.0 / MathExtra::dot3(normal, camDir); +image.cpp: // invalid triangle (parallel) +image.cpp: -tanPerPixel / zoom; +image.cpp: double xf = xmap / pixelWidth; +image.cpp: double yf = ymap / pixelWidth; +image.cpp: // shift 0,0 to screen center (vs lower left) +image.cpp: xc += width / 2; +image.cpp: yc += height / 2; +image.cpp: double pixelLeftFull = rasterLeft / pixelWidth; +image.cpp: double pixelRightFull = rasterRight / pixelWidth; +image.cpp: double pixelDownFull = rasterDown / pixelWidth; +image.cpp: double pixelUpFull = rasterUp / pixelWidth; +image.cpp: // test inside the triangle +image.cpp:/* ---------------------------------------------------------------------- */ +image.cpp: // store only the tangent relative to the camera normal (0,0,-1) +image.cpp:/* ---------------------------------------------------------------------- */ +image.cpp: // used for rasterizing the spheres +image.cpp: double delTheta = 2.0*MY_PI / SSAOSamples; +image.cpp: // typical neighborhood value for shading +image.cpp: -tanPerPixel / zoom; +image.cpp: int pixelRadius = (int) trunc (SSAORadius / pixelWidth + 0.5); +image.cpp: int hPart = height / nprocs; +image.cpp: // multiply by z cross surface tangent +image.cpp: // so that dot (aka cos) works here +image.cpp: // Bresenham's line algorithm to march over depthBuffer +image.cpp: delta = fabs(hy / hx); +image.cpp: delta = fabs(hx / hy); +image.cpp: // initialize with one step +image.cpp: // because the center point doesn't need testing +image.cpp: // cdepth - depthBuffer B/C we want it in the negative z direction +image.cpp: double h = atan ((cdepth - minPeak) / peakLen); +image.cpp: ao /= (double)SSAOSamples; +image.cpp:/* ---------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp: return static/dynamic status of color map index +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp: set min/max bounds of dynamic color map index +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp: {240/255.0, 248/255.0, 255/255.0}, +image.cpp: {250/255.0, 235/255.0, 215/255.0}, +image.cpp: {0/255.0, 255/255.0, 255/255.0}, +image.cpp: {127/255.0, 255/255.0, 212/255.0}, +image.cpp: {240/255.0, 255/255.0, 255/255.0}, +image.cpp: {245/255.0, 245/255.0, 220/255.0}, +image.cpp: {255/255.0, 228/255.0, 196/255.0}, +image.cpp: {0/255.0, 0/255.0, 0/255.0}, +image.cpp: {255/255.0, 255/255.0, 205/255.0}, +image.cpp: {0/255.0, 0/255.0, 255/255.0}, +image.cpp: {138/255.0, 43/255.0, 226/255.0}, +image.cpp: {165/255.0, 42/255.0, 42/255.0}, +image.cpp: {222/255.0, 184/255.0, 135/255.0}, +image.cpp: {95/255.0, 158/255.0, 160/255.0}, +image.cpp: {127/255.0, 255/255.0, 0/255.0}, +image.cpp: {210/255.0, 105/255.0, 30/255.0}, +image.cpp: {255/255.0, 127/255.0, 80/255.0}, +image.cpp: {100/255.0, 149/255.0, 237/255.0}, +image.cpp: {255/255.0, 248/255.0, 220/255.0}, +image.cpp: {220/255.0, 20/255.0, 60/255.0}, +image.cpp: {0/255.0, 255/255.0, 255/255.0}, +image.cpp: {0/255.0, 0/255.0, 139/255.0}, +image.cpp: {0/255.0, 139/255.0, 139/255.0}, +image.cpp: {184/255.0, 134/255.0, 11/255.0}, +image.cpp: {169/255.0, 169/255.0, 169/255.0}, +image.cpp: {0/255.0, 100/255.0, 0/255.0}, +image.cpp: {189/255.0, 183/255.0, 107/255.0}, +image.cpp: {139/255.0, 0/255.0, 139/255.0}, +image.cpp: {85/255.0, 107/255.0, 47/255.0}, +image.cpp: {255/255.0, 140/255.0, 0/255.0}, +image.cpp: {153/255.0, 50/255.0, 204/255.0}, +image.cpp: {139/255.0, 0/255.0, 0/255.0}, +image.cpp: {233/255.0, 150/255.0, 122/255.0}, +image.cpp: {143/255.0, 188/255.0, 143/255.0}, +image.cpp: {72/255.0, 61/255.0, 139/255.0}, +image.cpp: {47/255.0, 79/255.0, 79/255.0}, +image.cpp: {0/255.0, 206/255.0, 209/255.0}, +image.cpp: {148/255.0, 0/255.0, 211/255.0}, +image.cpp: {255/255.0, 20/255.0, 147/255.0}, +image.cpp: {0/255.0, 191/255.0, 255/255.0}, +image.cpp: {105/255.0, 105/255.0, 105/255.0}, +image.cpp: {30/255.0, 144/255.0, 255/255.0}, +image.cpp: {178/255.0, 34/255.0, 34/255.0}, +image.cpp: {255/255.0, 250/255.0, 240/255.0}, +image.cpp: {34/255.0, 139/255.0, 34/255.0}, +image.cpp: {255/255.0, 0/255.0, 255/255.0}, +image.cpp: {220/255.0, 220/255.0, 220/255.0}, +image.cpp: {248/255.0, 248/255.0, 255/255.0}, +image.cpp: {255/255.0, 215/255.0, 0/255.0}, +image.cpp: {218/255.0, 165/255.0, 32/255.0}, +image.cpp: {128/255.0, 128/255.0, 128/255.0}, +image.cpp: {0/255.0, 128/255.0, 0/255.0}, +image.cpp: {173/255.0, 255/255.0, 47/255.0}, +image.cpp: {240/255.0, 255/255.0, 240/255.0}, +image.cpp: {255/255.0, 105/255.0, 180/255.0}, +image.cpp: {205/255.0, 92/255.0, 92/255.0}, +image.cpp: {75/255.0, 0/255.0, 130/255.0}, +image.cpp: {255/255.0, 240/255.0, 240/255.0}, +image.cpp: {240/255.0, 230/255.0, 140/255.0}, +image.cpp: {230/255.0, 230/255.0, 250/255.0}, +image.cpp: {255/255.0, 240/255.0, 245/255.0}, +image.cpp: {124/255.0, 252/255.0, 0/255.0}, +image.cpp: {255/255.0, 250/255.0, 205/255.0}, +image.cpp: {173/255.0, 216/255.0, 230/255.0}, +image.cpp: {240/255.0, 128/255.0, 128/255.0}, +image.cpp: {224/255.0, 255/255.0, 255/255.0}, +image.cpp: {250/255.0, 250/255.0, 210/255.0}, +image.cpp: {144/255.0, 238/255.0, 144/255.0}, +image.cpp: {211/255.0, 211/255.0, 211/255.0}, +image.cpp: {255/255.0, 182/255.0, 193/255.0}, +image.cpp: {255/255.0, 160/255.0, 122/255.0}, +image.cpp: {32/255.0, 178/255.0, 170/255.0}, +image.cpp: {135/255.0, 206/255.0, 250/255.0}, +image.cpp: {119/255.0, 136/255.0, 153/255.0}, +image.cpp: {176/255.0, 196/255.0, 222/255.0}, +image.cpp: {255/255.0, 255/255.0, 224/255.0}, +image.cpp: {0/255.0, 255/255.0, 0/255.0}, +image.cpp: {50/255.0, 205/255.0, 50/255.0}, +image.cpp: {250/255.0, 240/255.0, 230/255.0}, +image.cpp: {255/255.0, 0/255.0, 255/255.0}, +image.cpp: {128/255.0, 0/255.0, 0/255.0}, +image.cpp: {102/255.0, 205/255.0, 170/255.0}, +image.cpp: {0/255.0, 0/255.0, 205/255.0}, +image.cpp: {186/255.0, 85/255.0, 211/255.0}, +image.cpp: {147/255.0, 112/255.0, 219/255.0}, +image.cpp: {60/255.0, 179/255.0, 113/255.0}, +image.cpp: {123/255.0, 104/255.0, 238/255.0}, +image.cpp: {0/255.0, 250/255.0, 154/255.0}, +image.cpp: {72/255.0, 209/255.0, 204/255.0}, +image.cpp: {199/255.0, 21/255.0, 133/255.0}, +image.cpp: {25/255.0, 25/255.0, 112/255.0}, +image.cpp: {245/255.0, 255/255.0, 250/255.0}, +image.cpp: {255/255.0, 228/255.0, 225/255.0}, +image.cpp: {255/255.0, 228/255.0, 181/255.0}, +image.cpp: {255/255.0, 222/255.0, 173/255.0}, +image.cpp: {0/255.0, 0/255.0, 128/255.0}, +image.cpp: {253/255.0, 245/255.0, 230/255.0}, +image.cpp: {128/255.0, 128/255.0, 0/255.0}, +image.cpp: {107/255.0, 142/255.0, 35/255.0}, +image.cpp: {255/255.0, 165/255.0, 0/255.0}, +image.cpp: {255/255.0, 69/255.0, 0/255.0}, +image.cpp: {218/255.0, 112/255.0, 214/255.0}, +image.cpp: {238/255.0, 232/255.0, 170/255.0}, +image.cpp: {152/255.0, 251/255.0, 152/255.0}, +image.cpp: {175/255.0, 238/255.0, 238/255.0}, +image.cpp: {219/255.0, 112/255.0, 147/255.0}, +image.cpp: {255/255.0, 239/255.0, 213/255.0}, +image.cpp: {255/255.0, 239/255.0, 213/255.0}, +image.cpp: {205/255.0, 133/255.0, 63/255.0}, +image.cpp: {255/255.0, 192/255.0, 203/255.0}, +image.cpp: {221/255.0, 160/255.0, 221/255.0}, +image.cpp: {176/255.0, 224/255.0, 230/255.0}, +image.cpp: {128/255.0, 0/255.0, 128/255.0}, +image.cpp: {255/255.0, 0/255.0, 0/255.0}, +image.cpp: {188/255.0, 143/255.0, 143/255.0}, +image.cpp: {65/255.0, 105/255.0, 225/255.0}, +image.cpp: {139/255.0, 69/255.0, 19/255.0}, +image.cpp: {250/255.0, 128/255.0, 114/255.0}, +image.cpp: {244/255.0, 164/255.0, 96/255.0}, +image.cpp: {46/255.0, 139/255.0, 87/255.0}, +image.cpp: {255/255.0, 245/255.0, 238/255.0}, +image.cpp: {160/255.0, 82/255.0, 45/255.0}, +image.cpp: {192/255.0, 192/255.0, 192/255.0}, +image.cpp: {135/255.0, 206/255.0, 235/255.0}, +image.cpp: {106/255.0, 90/255.0, 205/255.0}, +image.cpp: {112/255.0, 128/255.0, 144/255.0}, +image.cpp: {255/255.0, 250/255.0, 250/255.0}, +image.cpp: {0/255.0, 255/255.0, 127/255.0}, +image.cpp: {70/255.0, 130/255.0, 180/255.0}, +image.cpp: {210/255.0, 180/255.0, 140/255.0}, +image.cpp: {0/255.0, 128/255.0, 128/255.0}, +image.cpp: {216/255.0, 191/255.0, 216/255.0}, +image.cpp: {253/255.0, 99/255.0, 71/255.0}, +image.cpp: {64/255.0, 224/255.0, 208/255.0}, +image.cpp: {238/255.0, 130/255.0, 238/255.0}, +image.cpp: {245/255.0, 222/255.0, 179/255.0}, +image.cpp: {255/255.0, 255/255.0, 255/255.0}, +image.cpp: {245/255.0, 245/255.0, 245/255.0}, +image.cpp: {255/255.0, 255/255.0, 0/255.0}, +image.cpp: {154/255.0, 205/255.0, 50/255.0} +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp:// ---------------------------------------------------------------------- +image.cpp:// ---------------------------------------------------------------------- +image.cpp:// ColorMap class +image.cpp:// ---------------------------------------------------------------------- +image.cpp:// ---------------------------------------------------------------------- +image.cpp: // default color map +image.cpp:/* ---------------------------------------------------------------------- */ +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp: mbinsizeinv = 1.0/mbinsize; +image.cpp: // NOTE: this is unfinished code, not sure how useful it is +image.cpp: // idea is to allow a list of colors to be specified with a single arg +image.cpp: // problem is that sequential colors in ALL are not very different +image.cpp: // e.g. ALL or USER or ALL5:10 or USER1:10:2 +image.cpp: // current code is just 1st nentry values of ALL or USER +image.cpp: // need to comment out error check in DumpImage::modify_param() +image.cpp: // for amap check on (narg < n) to get it to work +image.cpp: // need to add extra logic here to check not accessing undefined colors +image.cpp: // one-time call to minmax if color map is static +image.cpp:/* ---------------------------------------------------------------------- +image.cpp: set explicit values for all min/max settings in color map +image.cpp: from min/max dynamic values +image.cpp: set lo/hi current and lvalue/hvalue entries that are MIN/MAX VALUE +image.cpp: called only once if mlo/mhi != MIN/MAX VALUE, else called repeatedly +image.cpp:------------------------------------------------------------------------- */ +image.cpp: // error in ABSOLUTE mode if new lo/hi current cause +image.cpp: // first/last entry to become lo > hi with adjacent entry +image.cpp: // OK if new lo/hi current cause an entry to have lo > hi, +image.cpp: // since last entry will always be a match +image.cpp:/* ---------------------------------------------------------------------- +image.cpp:------------------------------------------------------------------------- */ +image.cpp: double lo;//,hi; +image.cpp: else value = (value-locurrent) / (hicurrent-locurrent); +image.cpp: //hi = 1.0; +image.cpp: //hi = hicurrent; +image.cpp: double fraction = (value-mentry[i].svalue) / +imbalance.cpp:/* -*- c++ -*- ---------------------------------------------------------- +imbalance.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +imbalance.cpp: http://lammps.sandia.gov, Sandia National Laboratories +imbalance.cpp:------------------------------------------------------------------------- */ +imbalance.cpp:/* ---------------------------------------------------------------------- */ +imbalance_group.cpp:/* ---------------------------------------------------------------------- +imbalance_group.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +imbalance_group.cpp: http://lammps.sandia.gov, Sandia National Laboratories +imbalance_group.cpp:------------------------------------------------------------------------- */ +imbalance_group.cpp:/* -------------------------------------------------------------------- */ +imbalance_group.cpp:/* -------------------------------------------------------------------- */ +imbalance_group.cpp:/* -------------------------------------------------------------------- */ +imbalance_group.cpp:/* -------------------------------------------------------------------- */ +imbalance_group.cpp:/* -------------------------------------------------------------------- */ +imbalance_neigh.cpp:/* ---------------------------------------------------------------------- +imbalance_neigh.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +imbalance_neigh.cpp: http://lammps.sandia.gov, Sandia National Laboratories +imbalance_neigh.cpp:------------------------------------------------------------------------- */ +imbalance_neigh.cpp:/* -------------------------------------------------------------------- */ +imbalance_neigh.cpp:/* -------------------------------------------------------------------- */ +imbalance_neigh.cpp:/* -------------------------------------------------------------------- */ +imbalance_neigh.cpp: // find suitable neighbor list +imbalance_neigh.cpp: // can only use certain conventional neighbor lists +imbalance_neigh.cpp: // NOTE: why not full list, if half does not exist? +imbalance_neigh.cpp: error->warning(FLERR,"Balance weight neigh skipped b/c no list found"); +imbalance_neigh.cpp: // neighsum = total neigh count for atoms on this proc +imbalance_neigh.cpp: // localwt = weight assigned to each owned atom +imbalance_neigh.cpp: if (nlocal) localwt = 1.0*neighsum/nlocal; +imbalance_neigh.cpp: // apply factor if specified != 1.0 +imbalance_neigh.cpp: // wtlo,wthi = lo/hi values excluding 0.0 due to no atoms on this proc +imbalance_neigh.cpp: // lo value does not change +imbalance_neigh.cpp: // newhi = new hi value to give hi/lo ratio factor times larger/smaller +imbalance_neigh.cpp: // expand/contract all localwt values from lo->hi to lo->newhi +imbalance_neigh.cpp: localwt = wtlo + ((localwt-wtlo)/(wthi-wtlo)) * (newhi-wtlo); +imbalance_neigh.cpp:/* -------------------------------------------------------------------- */ +imbalance_store.cpp:/* ---------------------------------------------------------------------- +imbalance_store.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +imbalance_store.cpp: http://lammps.sandia.gov, Sandia National Laboratories +imbalance_store.cpp:------------------------------------------------------------------------- */ +imbalance_store.cpp:/* -------------------------------------------------------------------- */ +imbalance_store.cpp:/* -------------------------------------------------------------------- */ +imbalance_store.cpp:/* -------------------------------------------------------------------- */ +imbalance_store.cpp:/* -------------------------------------------------------------------- */ +imbalance_store.cpp: // property does not exist +imbalance_store.cpp:/* -------------------------------------------------------------------- */ +imbalance_time.cpp:/* ---------------------------------------------------------------------- +imbalance_time.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +imbalance_time.cpp: http://lammps.sandia.gov, Sandia National Laboratories +imbalance_time.cpp:------------------------------------------------------------------------- */ +imbalance_time.cpp:/* -------------------------------------------------------------------- */ +imbalance_time.cpp:/* -------------------------------------------------------------------- */ +imbalance_time.cpp:/* ---------------------------------------------------------------------- +imbalance_time.cpp:------------------------------------------------------------------------- */ +imbalance_time.cpp: // flag = 1 if called from FixBalance at start of run +imbalance_time.cpp: // init Timer, so accumulated time not carried over from previous run +imbalance_time.cpp: // should NOT init Timer if called from Balance, it uses time from last run +imbalance_time.cpp:/* -------------------------------------------------------------------- */ +imbalance_time.cpp: // cost = CPU time for relevant timers since last invocation +imbalance_time.cpp: // localwt = weight assigned to each owned atom +imbalance_time.cpp: // just return if no time yet tallied +imbalance_time.cpp: if (nlocal) localwt = cost/nlocal; +imbalance_time.cpp: // apply factor if specified != 1.0 +imbalance_time.cpp: // wtlo,wthi = lo/hi values excluding 0.0 due to no atoms on this proc +imbalance_time.cpp: // lo value does not change +imbalance_time.cpp: // newhi = new hi value to give hi/lo ratio factor times larger/smaller +imbalance_time.cpp: // expand/contract all localwt values from lo->hi to lo->newhi +imbalance_time.cpp: localwt = wtlo + ((localwt-wtlo)/(wthi-wtlo)) * (newhi-wtlo); +imbalance_time.cpp: // record time up to this point +imbalance_time.cpp:/* -------------------------------------------------------------------- */ +imbalance_var.cpp:/* ---------------------------------------------------------------------- +imbalance_var.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +imbalance_var.cpp: http://lammps.sandia.gov, Sandia National Laboratories +imbalance_var.cpp:------------------------------------------------------------------------- */ +imbalance_var.cpp:// DEBUG +imbalance_var.cpp:/* -------------------------------------------------------------------- */ +imbalance_var.cpp:/* -------------------------------------------------------------------- */ +imbalance_var.cpp:/* -------------------------------------------------------------------- */ +imbalance_var.cpp:/* -------------------------------------------------------------------- */ +imbalance_var.cpp:/* -------------------------------------------------------------------- */ +imbalance_var.cpp:/* -------------------------------------------------------------------- */ +improper.cpp:/* ---------------------------------------------------------------------- +improper.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +improper.cpp: http://lammps.sandia.gov, Sandia National Laboratories +improper.cpp:------------------------------------------------------------------------- */ +improper.cpp:/* ---------------------------------------------------------------------- */ +improper.cpp:/* ---------------------------------------------------------------------- */ +improper.cpp:/* ---------------------------------------------------------------------- +improper.cpp:------------------------------------------------------------------------- */ +improper.cpp:/* ---------------------------------------------------------------------- +improper.cpp:------------------------------------------------------------------------- */ +improper.cpp: eflag_atom = eflag / 2; +improper.cpp: vflag_atom = vflag / 4; +improper.cpp: // reallocate per-atom arrays if necessary +improper.cpp: // zero accumulators +improper.cpp:/* ---------------------------------------------------------------------- +improper.cpp:------------------------------------------------------------------------- */ +improper.cpp:/* ---------------------------------------------------------------------- */ +improper_hybrid.cpp:/* ---------------------------------------------------------------------- +improper_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +improper_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories +improper_hybrid.cpp:------------------------------------------------------------------------- */ +improper_hybrid.cpp:/* ---------------------------------------------------------------------- */ +improper_hybrid.cpp:/* ---------------------------------------------------------------------- */ +improper_hybrid.cpp:/* ---------------------------------------------------------------------- */ +improper_hybrid.cpp: // save ptrs to original improperlist +improper_hybrid.cpp: // if this is re-neighbor step, create sub-style improperlists +improper_hybrid.cpp: // nimproperlist[] = length of each sub-style list +improper_hybrid.cpp: // realloc sub-style improperlist if necessary +improper_hybrid.cpp: // load sub-style improperlist with 5 values from original improperlist +improper_hybrid.cpp: // call each sub-style's compute function +improper_hybrid.cpp: // set neighbor->improperlist to sub-style improperlist before call +improper_hybrid.cpp: // accumulate sub-style global/peratom energy/virial in hybrid +improper_hybrid.cpp: // restore ptrs to original improperlist +improper_hybrid.cpp:/* ---------------------------------------------------------------------- */ +improper_hybrid.cpp:/* ---------------------------------------------------------------------- */ +improper_hybrid.cpp:/* ---------------------------------------------------------------------- +improper_hybrid.cpp:------------------------------------------------------------------------- */ +improper_hybrid.cpp: // delete old lists, since cannot just change settings +improper_hybrid.cpp: // count sub-styles by skipping numeric args +improper_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric word +improper_hybrid.cpp: // need a better way to skip these exceptions +improper_hybrid.cpp: // allocate list of sub-styles +improper_hybrid.cpp: // allocate each sub-style and call its settings() with subset of args +improper_hybrid.cpp: // allocate uses suffix, but don't store suffix version in keywords, +improper_hybrid.cpp: // else syntax in coeff() will not match +improper_hybrid.cpp: // define subset of args for a sub-style by skipping numeric args +improper_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric +improper_hybrid.cpp: // need a better way to skip these exceptions +improper_hybrid.cpp:/* ---------------------------------------------------------------------- +improper_hybrid.cpp:---------------------------------------------------------------------- */ +improper_hybrid.cpp: // 2nd arg = improper sub-style name +improper_hybrid.cpp: // allow for "none" as valid sub-style name +improper_hybrid.cpp: // move 1st arg to 2nd arg +improper_hybrid.cpp: // just copy ptrs, since arg[] points into original input line +improper_hybrid.cpp: // invoke sub-style coeff() starting with 1st arg +improper_hybrid.cpp: // set setflag and which type maps to which sub-style +improper_hybrid.cpp: // if sub-style is none: set hybrid setflag, wipe out map +improper_hybrid.cpp:/* ---------------------------------------------------------------------- +improper_hybrid.cpp:------------------------------------------------------------------------- */ +improper_hybrid.cpp:/* ---------------------------------------------------------------------- +improper_hybrid.cpp:------------------------------------------------------------------------- */ +improper_hybrid.cpp:/* ---------------------------------------------------------------------- +improper_hybrid.cpp:------------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- +improper_zero.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +improper_zero.cpp: http://lammps.sandia.gov, Sandia National Laboratories +improper_zero.cpp:------------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- +improper_zero.cpp:------------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- +improper_zero.cpp:------------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- +improper_zero.cpp:------------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- +improper_zero.cpp:------------------------------------------------------------------------- */ +improper_zero.cpp:/* ---------------------------------------------------------------------- +improper_zero.cpp:------------------------------------------------------------------------- */ +info.cpp:/* ---------------------------------------------------------------------- +info.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +info.cpp: http://lammps.sandia.gov, Sandia National Laboratories +info.cpp:------------------------------------------------------------------------- */ +info.cpp:/* ---------------------------------------------------------------------- +info.cpp:------------------------------------------------------------------------- */ +info.cpp:#include +info.cpp:#include +info.cpp:#include +info.cpp:// same as in variable.cpp +info.cpp:/* ---------------------------------------------------------------------- */ +info.cpp: // parse arguments +info.cpp: fprintf(out,"\nLAMMPS version: %s / %s\n", +info.cpp: double mbytes = bytes/1024.0/1024.0; +info.cpp: (double)pmc.PrivateUsage/1048576.0); +info.cpp: (double)pmc.PeakWorkingSetSize/1048576.0); +info.cpp: (double)mi.uordblks/1048576.0+(double)mi.hblkhd/1048576.0); +info.cpp: (double)ru.ru_maxrss/1024.0); +info.cpp: // from MSD docs. +info.cpp:#else /* POSIX */ +info.cpp:#endif /* ! _WIN32 */ +info.cpp: cpuclock = (cpuclock - cpus) / 60.0; +info.cpp: cpuh = (cpuclock - cpum) / 60.0; +info.cpp: wallclock = (wallclock - walls) / 60.0; +info.cpp: wallh = (wallclock - wallm) / 60.0; +info.cpp: // close output file pointer if opened locally thus forcing a hard sync. +info.cpp:/* ---------------------------------------------------------------------- */ +info.cpp:// the is_active() function returns true if the selected style or name +info.cpp:// in the selected category is currently in use. +info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix); +info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix2); +info.cpp:/* ---------------------------------------------------------------------- */ +info.cpp:// the is_available() function returns true if the selected style +info.cpp:// or name in the selected category is available for use (but need +info.cpp:// not be currently active). +info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix); +info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix2); +info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix); +info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix2); +info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix); +info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix2); +info.cpp:/* ---------------------------------------------------------------------- */ +info.cpp:// the is_defined() function returns true if a particular ID of the +info.cpp:// selected category (e.g. fix ID, group ID, region ID etc.) has been +info.cpp:// defined and thus can be accessed. It does *NOT* check whether a +info.cpp:// particular ID has a particular style. +info.cpp: // skip "secret" styles +info.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- +input.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +input.cpp: http://lammps.sandia.gov, Sandia National Laboratories +input.cpp:------------------------------------------------------------------------- */ +input.cpp:#include "sys/stat.h" +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: // fill map with commands listed in style_command.h +input.cpp: // process command-line args +input.cpp: // check for args "-var" and "-echo" +input.cpp: // caller has already checked that sufficient arguments exist +input.cpp: char **tmp = arg; // trick echo() into using argv instead of arg +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: // don't free command and arg strings +input.cpp: // they just point to other allocated memory +input.cpp:/* ---------------------------------------------------------------------- +input.cpp:------------------------------------------------------------------------- */ +input.cpp: // read a line from input script +input.cpp: // n = length of line including str terminator, 0 if end of file +input.cpp: // if line ends in continuation char '&', concatenate next line +input.cpp: // end of file reached, so break +input.cpp: // n == 0 if nothing read, else n = line with str terminator +input.cpp: // continue if last char read was not a newline +input.cpp: // could happen if line is very long +input.cpp: // continue reading if final printable char is & char +input.cpp: // or if odd number of triple quotes +input.cpp: // else break with n = line with str terminator +input.cpp: // bcast the line +input.cpp: // if n = 0, end-of-file +input.cpp: // error if label_active is set, since label wasn't encountered +input.cpp: // if original input file, code is done +input.cpp: // else go back to previous input file +input.cpp: // echo the command unless scanning for label +input.cpp: // parse the line +input.cpp: // if no command, skip to next line in input script +input.cpp: // if scanning for label, skip command unless it's a label command +input.cpp: // execute the command +input.cpp:/* ---------------------------------------------------------------------- +input.cpp:------------------------------------------------------------------------- */ +input.cpp: // error if another nested file still open, should not be possible +input.cpp: // open new filename and set infile, infiles[0], nfile +input.cpp: // call to file() will close filename and decrement nfile +input.cpp:/* ---------------------------------------------------------------------- +input.cpp:------------------------------------------------------------------------- */ +input.cpp: // echo the command unless scanning for label +input.cpp: // parse the line +input.cpp: // if no command, just return NULL +input.cpp: // if scanning for label, skip command unless it's a label command +input.cpp: // execute the command and return its name +input.cpp:/* ---------------------------------------------------------------------- +input.cpp: treat text between single/double/triple quotes as one arg via nextword() +input.cpp:------------------------------------------------------------------------- */ +input.cpp: // duplicate line into copy string to break into words +input.cpp: // strip any # comment by replacing it with 0 +input.cpp: // do not strip from a # inside single/double/triple quotes +input.cpp: // quoteflag = 1,2,3 when encounter first single/double,triple quote +input.cpp: // quoteflag = 0 when encounter matching single/double,triple quote +input.cpp: // perform $ variable substitution (print changes) +input.cpp: // except if searching for a label since earlier variable may not be defined +input.cpp: // command = 1st arg in copy string +input.cpp: // point arg[] at each subsequent arg in copy string +input.cpp: // nextword() inserts string terminators into copy string to delimit args +input.cpp: // nextword() treats text between single/double/triple quotes as one arg +input.cpp:/* ---------------------------------------------------------------------- +input.cpp: treat text between single/double/triple quotes as one arg +input.cpp:------------------------------------------------------------------------- */ +input.cpp: // start = first non-whitespace char +input.cpp: // if start is single/double/triple quote: +input.cpp: // start = first char beyond quote +input.cpp: // stop = first char of matching quote +input.cpp: // next = first char beyond matching quote +input.cpp: // next must be NULL or whitespace +input.cpp: // if start is not single/double/triple quote: +input.cpp: // stop = first whitespace char after start +input.cpp: // next = char after stop, or stop itself if stop is NULL +input.cpp: // set stop to NULL to terminate word +input.cpp:/* ---------------------------------------------------------------------- +input.cpp: reallocate str/str2 to hold expanded version if necessary & reset max/max2 +input.cpp:------------------------------------------------------------------------- */ +input.cpp: // use str2 as scratch space to expand str, then copy back to str +input.cpp: // reallocate str and str2 as necessary +input.cpp: // do not replace $ inside single/double/triple quotes +input.cpp: // var = pts at variable name, ended by NULL +input.cpp: // if $ is followed by '{', trailing '}' becomes NULL +input.cpp: // else $x becomes x followed by NULL +input.cpp: // beyond = points to text following variable +input.cpp: // variable substitution +input.cpp: // value = ptr to expanded variable +input.cpp: // variable name between curly braces, e.g. ${a} +input.cpp: // immediate variable between parenthesis, e.g. $(1/2) +input.cpp: // single character variable name, e.g. $a +input.cpp: // check if storage in str2 needs to be expanded +input.cpp: // re-initialize ptr and ptr2 to the point beyond the variable. +input.cpp: // output substitution progress if requested +input.cpp: // quoteflag = 1,2,3 when encounter first single/double,triple quote +input.cpp: // quoteflag = 0 when encounter matching single/double,triple quote +input.cpp: // copy 2 extra triple quote chars into str2 +input.cpp: // copy current character into str2 +input.cpp: // set length of input str to length of work str2 +input.cpp: // copy work string back to input str +input.cpp:/* ---------------------------------------------------------------------- +input.cpp: return new expanded # of values, and copy them w/out "*" into earg +input.cpp:------------------------------------------------------------------------- */ +input.cpp: // maxarg should always end up equal to newarg, so caller can free earg +input.cpp: // check for global vector/array, peratom array, local array +input.cpp: // check for global vector/array, peratom array, local array +input.cpp: n = strlen(arg[iarg]) + 16; // 16 = space for large inserted integer +input.cpp: //printf("NEWARG %d\n",newarg); +input.cpp: //for (int i = 0; i < newarg; i++) +input.cpp: // printf(" arg %d: %s\n",i,earg[i]); +input.cpp:/* ---------------------------------------------------------------------- +input.cpp:------------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- +input.cpp:------------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- +input.cpp:------------------------------------------------------------------------- */ +input.cpp: // return if command was listed above +input.cpp: // invoke commands added via style_command.h +input.cpp: // unrecognized command +input.cpp:/* ---------------------------------------------------------------------- +input.cpp:------------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: // substitute for variables in Boolean expression for "if" +input.cpp: // in case expression was enclosed in quotes +input.cpp: // must substitute on copy of arg else will step on subsequent args +input.cpp: // evaluate Boolean expression for "if" +input.cpp: // bound "then" commands +input.cpp: // execute "then" commands +input.cpp: // make copies of all arg string commands +input.cpp: // required because re-parsing a command via one() will wipe out args +input.cpp: // done if no "elif" or "else" +input.cpp: // check "elif" or "else" until find commands to execute +input.cpp: // substitute for variables and evaluate Boolean expression for "elif" +input.cpp: // must substitute on copy of arg else will step on subsequent args +input.cpp: // bound and execute "elif" or "else" commands +input.cpp: // execute the list of commands +input.cpp: // clean up +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: // do not allow include inside an if command +input.cpp: // NOTE: this check will fail if a 2nd if command was inside the if command +input.cpp: // and came before the include +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: // copy original line to copy, since will use strtok() on it +input.cpp: // ptr = start of 4th word +input.cpp: // execute the remaining command line on requested partitions +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: // copy 1st arg back into line (copy is being used) +input.cpp: // check maxline since arg[0] could have been exanded by variables +input.cpp: // substitute for $ variables (no printing) and print arg +input.cpp: // parse optional args +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: if (narg == 0) error->done(0); // 1 would be fully backwards compatible +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: // use work string to concat args back into one string separated by spaces +input.cpp: // invoke string in shell via system() +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- +input.cpp:------------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: // must reset default extra_dof of all computes +input.cpp: // since some were created before dimension command is encountered +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: // same checks for packages existing as in LAMMPS::post_create() +input.cpp: // since can be invoked here by package command in input script +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- +input.cpp:------------------------------------------------------------------------- */ +input.cpp: sprintf(estyle,"%s/%s",arg[0],lmp->suffix); +input.cpp: sprintf(estyle,"%s/%s",arg[0],lmp->suffix2); +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp: // store 1-3,1-4 and dihedral/extra flag values before change +input.cpp: // change in 1-2 coeffs will not change the special list +input.cpp: // if simulation box defined and saved values changed, redo special list +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +input.cpp:/* ---------------------------------------------------------------------- */ +integrate.cpp:/* ---------------------------------------------------------------------- +integrate.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +integrate.cpp: http://lammps.sandia.gov, Sandia National Laboratories +integrate.cpp:------------------------------------------------------------------------- */ +integrate.cpp:/* ---------------------------------------------------------------------- */ +integrate.cpp:/* ---------------------------------------------------------------------- */ +integrate.cpp:/* ---------------------------------------------------------------------- */ +integrate.cpp: // allow pair and Kspace compute() to be turned off via modify flags +integrate.cpp: // should add checks: +integrate.cpp: // for any acceleration package that has its own integrate/minimize +integrate.cpp: // in case input script has reset the run or minimize style explicitly +integrate.cpp: // e.g. invalid to have kokkos pair style with non-kokkos verlet +integrate.cpp: // but OK to have kokkos verlet with non kokkos pair style (just warn) +integrate.cpp: // making these checks would require all the pair, fix, etc styles have +integrate.cpp: // kokkos, intel flags +integrate.cpp:/* ---------------------------------------------------------------------- +integrate.cpp:------------------------------------------------------------------------- */ +integrate.cpp:/* ---------------------------------------------------------------------- +integrate.cpp: eflag/vflag based on computes that need info on this ntimestep +integrate.cpp:------------------------------------------------------------------------- */ +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +irregular.cpp: http://lammps.sandia.gov, Sandia National Laboratories +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp:// allocate space for static class variable +irregular.cpp:// prototype for non-class function +irregular.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files +irregular.cpp:/* ---------------------------------------------------------------------- */ +irregular.cpp: // migrate work vectors +irregular.cpp: // send buffers +irregular.cpp: // universal work vectors +irregular.cpp: // initialize buffers for migrate atoms, not used for datum comm +irregular.cpp: // these can persist for multiple irregular operations +irregular.cpp:/* ---------------------------------------------------------------------- */ +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp: // clear global->local map since atoms move to new procs +irregular.cpp: // clear old ghosts so map_set() at end will operate only on local atoms +irregular.cpp: // exchange() doesn't need to clear ghosts b/c borders() +irregular.cpp: // is called right after and it clears ghosts and calls map_set() +irregular.cpp: // subbox bounds for orthogonal or triclinic box +irregular.cpp: // if Comm will be called to assign new atom coords to procs, +irregular.cpp: // may need to setup RCB info +irregular.cpp: // loop over atoms, flag any that are not in my sub-box +irregular.cpp: // fill buffer with atoms leaving my box, using < and >= +irregular.cpp: // assign which proc it belongs to via Comm::coord2proc() +irregular.cpp: // if coord2proc() returns me, due to round-off +irregular.cpp: // in triclinic x2lamda(), then keep atom and don't send +irregular.cpp: // when atom is deleted, fill it in with last atom +irregular.cpp: // create irregular communication plan, perform comm, destroy plan +irregular.cpp: // returned nrecv = size of buffer needed for incoming atoms +irregular.cpp: // add received atoms to my list +irregular.cpp: // reset global->local map +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp: // migrate required if comm layout is tiled +irregular.cpp: // cannot use myloc[] logic below +irregular.cpp: // subbox bounds for orthogonal or triclinic box +irregular.cpp: // loop over atoms, check for any that are not in my sub-box +irregular.cpp: // assign which proc it belongs to via Comm::coord2proc() +irregular.cpp: // if logical igx,igy,igz of newproc > one away from myloc, set flag = 1 +irregular.cpp: // this check needs to observe PBC +irregular.cpp: // cannot check via comm->procneigh since it ignores PBC +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp: // setup for collective comm +irregular.cpp: // work1 = 1 for procs I send a message to, not including self +irregular.cpp: // work2 = 1 for all procs, used for ReduceScatter +irregular.cpp: // nrecv_proc = # of procs I receive messages from, not including self +irregular.cpp: // options for performing ReduceScatter operation +irregular.cpp: // some are more efficient on some machines at big sizes +irregular.cpp: // allocate receive arrays +irregular.cpp: // nsend_proc = # of messages I send +irregular.cpp: // allocate send arrays +irregular.cpp: // list still stores size of message for procs I send to +irregular.cpp: // proc_send = procs I send to +irregular.cpp: // length_send = # of doubles I send to each proc +irregular.cpp: // to balance pattern of send messages: +irregular.cpp: // each proc begins with iproc > me, continues until iproc = me +irregular.cpp: // reset list to store which send message each proc corresponds to +irregular.cpp: // num_send = # of atoms I send to each proc +irregular.cpp: // work2 = offsets into index_send for each proc I send to +irregular.cpp: // index_send = list of which atoms to send to each proc +irregular.cpp: // 1st N1 values are atom indices for 1st proc, +irregular.cpp: // next N2 values are atom indices for 2nd proc, etc +irregular.cpp: // offset_send = where each atom starts in send buffer +irregular.cpp: // tell receivers how much data I send +irregular.cpp: // sendmax_proc = # of doubles I send in largest single message +irregular.cpp: MPI_Request tmpReq; // Use non-blocking send to avoid possible deadlock +irregular.cpp: MPI_Request_free(&tmpReq); // the MPI_Barrier below marks completion +irregular.cpp: // receive incoming messages +irregular.cpp: // proc_recv = procs I recv from +irregular.cpp: // length_recv = # of doubles each proc sends me +irregular.cpp: // nrecvsize = total size of atom data I recv +irregular.cpp: // sort proc_recv and length_recv by proc ID if requested +irregular.cpp: // useful for debugging to insure reproducible ordering of received atoms +irregular.cpp: // invoke by adding final arg = 1 to create_atom() call in migrate_atoms() +irregular.cpp: // barrier to insure all MPI_ANY_SOURCE messages are received +irregular.cpp: // else another proc could proceed to exchange_atom() and send to me +irregular.cpp: // return size of atom data I will receive +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp: // post all receives +irregular.cpp: // reallocate buf for largest send if necessary +irregular.cpp: // send each message +irregular.cpp: // pack buf with list of atoms +irregular.cpp: // m = index of atom in sendbuf +irregular.cpp: // wait on all incoming messages +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp: // setup for collective comm +irregular.cpp: // work1 = 1 for procs I send a message to, not including self +irregular.cpp: // work2 = 1 for all procs, used for ReduceScatter +irregular.cpp: // nrecv_proc = # of procs I receive messages from, not including self +irregular.cpp: // options for performing ReduceScatter operation +irregular.cpp: // some are more efficient on some machines at big sizes +irregular.cpp: // allocate receive arrays +irregular.cpp: // work1 = # of datums I send to each proc, including self +irregular.cpp: // nsend_proc = # of procs I send messages to, not including self +irregular.cpp: // allocate send and self arrays +irregular.cpp: // proc_send = procs I send to +irregular.cpp: // num_send = # of datums I send to each proc +irregular.cpp: // num_self = # of datums I copy to self +irregular.cpp: // to balance pattern of send messages: +irregular.cpp: // each proc begins with iproc > me, continues until iproc = me +irregular.cpp: // reset work1 to store which send message each proc corresponds to +irregular.cpp: // work2 = offsets into index_send for each proc I send to +irregular.cpp: // m = ptr into index_self +irregular.cpp: // index_send = list of which datums to send to each proc +irregular.cpp: // 1st N1 values are datum indices for 1st proc, +irregular.cpp: // next N2 values are datum indices for 2nd proc, etc +irregular.cpp: // index_self = list of which datums to copy to self +irregular.cpp: // tell receivers how much data I send +irregular.cpp: // sendmax_proc = largest # of datums I send in a single message +irregular.cpp: MPI_Request tmpReq; // Use non-blocking send to avoid possible deadlock +irregular.cpp: MPI_Request_free(&tmpReq); // the MPI_Barrier below marks completion +irregular.cpp: // receive incoming messages +irregular.cpp: // proc_recv = procs I recv from +irregular.cpp: // num_recv = total size of message each proc sends me +irregular.cpp: // nrecvdatum = total size of data I recv +irregular.cpp: // sort proc_recv and num_recv by proc ID if requested +irregular.cpp: // useful for debugging to insure reproducible ordering of received datums +irregular.cpp: // barrier to insure all MPI_ANY_SOURCE messages are received +irregular.cpp: // else another proc could proceed to exchange_data() and send to me +irregular.cpp: // return # of datums I will receive +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp: // post all receives, starting after self copies +irregular.cpp: // reallocate buf for largest send if necessary +irregular.cpp: // send each message +irregular.cpp: // pack buf with list of datums +irregular.cpp: // m = index of datum in sendbuf +irregular.cpp: // copy datums to self, put at beginning of recvbuf +irregular.cpp: // wait on all incoming messages +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp: if flag = 0, don't need to realloc with copy, just free/malloc +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp: free/malloc the size of the recv buffer as needed with BUFFACTOR +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp:/* ---------------------------------------------------------------------- +irregular.cpp:------------------------------------------------------------------------- */ +irregular.cpp: bytes += maxsend*sizeof(double); // buf_send +irregular.cpp: bytes += maxrecv*sizeof(double); // buf_recv +irregular.cpp: bytes += maxdbuf*sizeof(double); // dbuf +irregular.cpp: bytes += maxbuf; // buf +irregular.cpp: bytes += 2*maxlocal*sizeof(int); // mproclist,msizes +irregular.cpp: bytes += 2*nprocs*sizeof(int); // work1,work2 +kspace.cpp:/* ---------------------------------------------------------------------- +kspace.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +kspace.cpp: http://lammps.sandia.gov, Sandia National Laboratories +kspace.cpp:------------------------------------------------------------------------- */ +kspace.cpp:/* ---------------------------------------------------------------------- */ +kspace.cpp: // default to using MPI collectives for FFT/remap only on IBM BlueGene +kspace.cpp: (force->qelectron * force->qelectron) / +kspace.cpp: gcons[2][0] = 15.0 / 8.0; +kspace.cpp: gcons[2][1] = -5.0 / 4.0; +kspace.cpp: gcons[2][2] = 3.0 / 8.0; +kspace.cpp: gcons[3][0] = 35.0 / 16.0; +kspace.cpp: gcons[3][1] = -35.0 / 16.0; +kspace.cpp: gcons[3][2] = 21.0 / 16.0; +kspace.cpp: gcons[3][3] = -5.0 / 16.0; +kspace.cpp: gcons[4][0] = 315.0 / 128.0; +kspace.cpp: gcons[4][1] = -105.0 / 32.0; +kspace.cpp: gcons[4][2] = 189.0 / 64.0; +kspace.cpp: gcons[4][3] = -45.0 / 32.0; +kspace.cpp: gcons[4][4] = 35.0 / 128.0; +kspace.cpp: gcons[5][0] = 693.0 / 256.0; +kspace.cpp: gcons[5][1] = -1155.0 / 256.0; +kspace.cpp: gcons[5][2] = 693.0 / 128.0; +kspace.cpp: gcons[5][3] = -495.0 / 128.0; +kspace.cpp: gcons[5][4] = 385.0 / 256.0; +kspace.cpp: gcons[5][5] = -63.0 / 256.0; +kspace.cpp: gcons[6][0] = 3003.0 / 1024.0; +kspace.cpp: gcons[6][1] = -3003.0 / 512.0; +kspace.cpp: gcons[6][2] = 9009.0 / 1024.0; +kspace.cpp: gcons[6][3] = -2145.0 / 256.0; +kspace.cpp: gcons[6][4] = 5005.0 / 1024.0; +kspace.cpp: gcons[6][5] = -819.0 / 512.0; +kspace.cpp: gcons[6][6] = 231.0 / 1024.0; +kspace.cpp: dgcons[2][0] = -5.0 / 2.0; +kspace.cpp: dgcons[2][1] = 3.0 / 2.0; +kspace.cpp: dgcons[3][0] = -35.0 / 8.0; +kspace.cpp: dgcons[3][1] = 21.0 / 4.0; +kspace.cpp: dgcons[3][2] = -15.0 / 8.0; +kspace.cpp: dgcons[4][0] = -105.0 / 16.0; +kspace.cpp: dgcons[4][1] = 189.0 / 16.0; +kspace.cpp: dgcons[4][2] = -135.0 / 16.0; +kspace.cpp: dgcons[4][3] = 35.0 / 16.0; +kspace.cpp: dgcons[5][0] = -1155.0 / 128.0; +kspace.cpp: dgcons[5][1] = 693.0 / 32.0; +kspace.cpp: dgcons[5][2] = -1485.0 / 64.0; +kspace.cpp: dgcons[5][3] = 385.0 / 32.0; +kspace.cpp: dgcons[5][4] = -315.0 / 128.0; +kspace.cpp: dgcons[6][0] = -3003.0 / 256.0; +kspace.cpp: dgcons[6][1] = 9009.0 / 256.0; +kspace.cpp: dgcons[6][2] = -6435.0 / 128.0; +kspace.cpp: dgcons[6][3] = 5005.0 / 128.0; +kspace.cpp: dgcons[6][4] = -4095.0 / 256.0; +kspace.cpp: dgcons[6][5] = 693.0 / 256.0; +kspace.cpp:/* ---------------------------------------------------------------------- */ +kspace.cpp:/* ---------------------------------------------------------------------- */ +kspace.cpp:/* ---------------------------------------------------------------------- */ +kspace.cpp:/* ---------------------------------------------------------------------- +kspace.cpp:------------------------------------------------------------------------- */ +kspace.cpp:/* ---------------------------------------------------------------------- +kspace.cpp:------------------------------------------------------------------------- */ +kspace.cpp: eflag_atom = eflag / 2; +kspace.cpp: vflag_atom = vflag / 4; +kspace.cpp: // reallocate per-atom arrays if necessary +kspace.cpp: // zero accumulators +kspace.cpp:/* ---------------------------------------------------------------------- +kspace.cpp: compute qsum,qsqsum,q2 and give error/warning if not charge neutral +kspace.cpp:------------------------------------------------------------------------- */ +kspace.cpp: // not yet sure of the correction needed for non-neutral systems +kspace.cpp: // so issue warning or error +kspace.cpp:/* ---------------------------------------------------------------------- +kspace.cpp:------------------------------------------------------------------------- */ +kspace.cpp:/* ---------------------------------------------------------------------- +kspace.cpp:------------------------------------------------------------------------- */ +kspace.cpp:/* ---------------------------------------------------------------------- +kspace.cpp:------------------------------------------------------------------------- */ +kspace.cpp:/* ---------------------------------------------------------------------- +kspace.cpp:------------------------------------------------------------------------- */ +kspace.cpp:/* ---------------------------------------------------------------------- +kspace.cpp: see http://www.loria.fr/~shornus/ellipsoid-bbox.html and +kspace.cpp: http://yiningkarlli.blogspot.com/2013/02/ +kspace.cpp:------------------------------------------------------------------------- */ +kspace.cpp: xy*xy*yz*yz)/(lx*ly*lz); +kspace.cpp: b[1] = r*sqrt(lz*lz + yz*yz)/(ly*lz); +kspace.cpp: b[2] = r/lz; +kspace.cpp:/* ---------------------------------------------------------------------- +kspace.cpp:------------------------------------------------------------------------- */ +kspace.cpp: } else if (strcmp(arg[iarg],"mesh/disp") == 0) { +kspace.cpp: } else if (strcmp(arg[iarg],"order/disp") == 0) { +kspace.cpp: } else if (strcmp(arg[iarg],"gewald/disp") == 0) { +kspace.cpp: } else if (strcmp(arg[iarg],"cutoff/adjust") == 0) { +kspace.cpp: } else if (strcmp(arg[iarg],"kmax/ewald") == 0) { +kspace.cpp: error->all(FLERR,"Bad kspace_modify kmax/ewald parameter"); +kspace.cpp: } else if (strcmp(arg[iarg],"mix/disp") == 0) { +kspace.cpp: } else if (strcmp(arg[iarg],"force/disp/real") == 0) { +kspace.cpp: } else if (strcmp(arg[iarg],"force/disp/kspace") == 0) { +kspace.cpp: } else if (strcmp(arg[iarg],"pressure/scalar") == 0) { +kspace.cpp: } else if (strcmp(arg[iarg],"disp/auto") == 0) { +kspace.cpp:/* ---------------------------------------------------------------------- */ +lammps.cpp:/* ---------------------------------------------------------------------- +lammps.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +lammps.cpp: http://lammps.sandia.gov, Sandia National Laboratories +lammps.cpp:------------------------------------------------------------------------- */ +lammps.cpp:/* ---------------------------------------------------------------------- +lammps.cpp:------------------------------------------------------------------------- */ +lammps.cpp: // parse input switches +lammps.cpp: // delimit any extra args for the Kokkos instantiation +lammps.cpp: // delimit args for package command invocation +lammps.cpp: // any package arg with leading "-" will be followed by numeric digit +lammps.cpp: // hybrid option to set fall-back for suffix2 +lammps.cpp: // check for restart remap flag +lammps.cpp: // delimit any extra args for the write_data command +lammps.cpp: // if no partition command-line switch, universe is one world with all procs +lammps.cpp: // sum of procs in all worlds must equal total # of procs +lammps.cpp: // universe cannot use stdin for input file +lammps.cpp: // if no partition command-line switch, cannot use -pscreen option +lammps.cpp: // if no partition command-line switch, cannot use -plog option +lammps.cpp: // set universe screen and logfile +lammps.cpp: // make universe and single world the same, since no partition switch +lammps.cpp: // world inherits settings from universe +lammps.cpp: // set world screen, logfile, communicator, infile +lammps.cpp: // open input script if from file +lammps.cpp: // universe is one or more worlds, as setup by partition switch +lammps.cpp: // split universe communicator into separate world communicators +lammps.cpp: // set world screen, logfile, communicator, infile +lammps.cpp: // open input script +lammps.cpp: // screen and logfile messages for universe and world +lammps.cpp: // check consistency of datatype settings in lmptype.h +lammps.cpp: // create Kokkos class if KOKKOS installed, unless explicitly switched off +lammps.cpp: // instantiation creates dummy Kokkos class if KOKKOS is not installed +lammps.cpp: // add args between kkfirst and kklast to Kokkos instantiation +lammps.cpp: // allocate CiteMe class if enabled +lammps.cpp: // allocate input class now that MPI is fully setup +lammps.cpp: // copy package cmdline arguments +lammps.cpp: // allocate top-level classes +lammps.cpp: // if helpflag set, print help and quit with "success" status +lammps.cpp: // if restartflag set, invoke 2 commands and quit +lammps.cpp: // add args between wdfirst and wdlast to write_data command +lammps.cpp: // also add "noinit" to prevent write_data from doing system init +lammps.cpp:/* ---------------------------------------------------------------------- +lammps.cpp:------------------------------------------------------------------------- */ +lammps.cpp: totalclock = (totalclock - seconds) / 60.0; +lammps.cpp: int hours = (totalclock - minutes) / 60.0; +lammps.cpp:/* ---------------------------------------------------------------------- +lammps.cpp:------------------------------------------------------------------------- */ +lammps.cpp: force = NULL; // Domain->Lattice checks if Force exists +lammps.cpp: // Comm class must be created before Atom class +lammps.cpp: // so that nthreads is defined when create_avec invokes grow() +lammps.cpp: atom->create_avec("atomic/kk",0,NULL,1); +lammps.cpp: force = new Force(this); // must be after group, to create temperature +lammps.cpp: output = new Output(this); // must be after group, so "all" exists +lammps.cpp: // must be after modify so can create Computes +lammps.cpp: update = new Update(this); // must be after output, force, neighbor +lammps.cpp:/* ---------------------------------------------------------------------- +lammps.cpp:------------------------------------------------------------------------- */ +lammps.cpp: // default package command triggered by "-k on" +lammps.cpp: // suffix will always be set if suffix_enable = 1 +lammps.cpp: // check that KOKKOS package classes were instantiated +lammps.cpp: // check that GPU, INTEL, USER-OMP fixes were compiled with LAMMPS +lammps.cpp: // invoke any command-line package commands +lammps.cpp:/* ---------------------------------------------------------------------- +lammps.cpp:------------------------------------------------------------------------- */ +lammps.cpp: force->init(); // pair must come after update due to minimizer +lammps.cpp: atom->init(); // atom must come after force and domain +lammps.cpp: // atom deletes extra array +lammps.cpp: // used by fix shear_history::unpack_restart() +lammps.cpp: // when force->pair->gran_history creates fix +lammps.cpp: // atom_vec init uses deform_vremap +lammps.cpp: modify->init(); // modify must come after update, force, atom, domain +lammps.cpp: neighbor->init(); // neighbor must come after force, modify +lammps.cpp: comm->init(); // comm must come after force, modify, neighbor, atom +lammps.cpp: output->init(); // output must come after domain, force, modify +lammps.cpp:/* ---------------------------------------------------------------------- +lammps.cpp:------------------------------------------------------------------------- */ +lammps.cpp: delete modify; // modify must come after output, force, update +lammps.cpp: // since they delete fixes +lammps.cpp: delete domain; // domain must come after modify +lammps.cpp: // since fix destructors access domain +lammps.cpp: delete atom; // atom must come after modify, neighbor +lammps.cpp: // since fixes delete callbacks in atom +lammps.cpp:/* ---------------------------------------------------------------------- +lammps.cpp:------------------------------------------------------------------------- */ +lammps.cpp: // if output is "stdout", use a pipe to a pager for paged output. +lammps.cpp: // this will avoid the most important help text to rush past the +lammps.cpp: // user. scrollback buffers are often not large enough. this is most +lammps.cpp: // beneficial to windows users, who are not used to command line. +lammps.cpp: // reset to original state, if pipe command failed +lammps.cpp: // general help message about command line and flags +lammps.cpp: "\nLarge-scale Atomic/Molecular Massively Parallel Simulator - " +lammps.cpp: "-echo none/screen/log/both : echoing of input script (-e)\n" +lammps.cpp: "-kokkos on/off ... : turn KOKKOS mode on or off (-k)\n" +lammps.cpp: "-log none/filename : where to send log output (-l)\n" +lammps.cpp: "-screen none/filename : where to send screen output (-sc)\n" +lammps.cpp: "-suffix gpu/intel/opt/omp : style suffix to apply (-sf)\n" +lammps.cpp: // close pipe to pager, if active +lammps.cpp:/* ---------------------------------------------------------------------- +lammps.cpp:------------------------------------------------------------------------- */ +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +lattice.cpp: http://lammps.sandia.gov, Sandia National Laboratories +lattice.cpp:------------------------------------------------------------------------- */ +lattice.cpp:/* ---------------------------------------------------------------------- */ +lattice.cpp: // parse style arg +lattice.cpp: // Domain creates a default lattice of style "none" +lattice.cpp: // before Force class is instantiated, just use atof() in that case +lattice.cpp: // check that lattice matches dimension +lattice.cpp: // style CUSTOM can be either 2d or 3d +lattice.cpp: // scale = conversion factor between lattice and box units +lattice.cpp: // set basis atoms for each style +lattice.cpp: // x,y,z = fractional coords within unit cell +lattice.cpp: // style CUSTOM will be defined by optional args +lattice.cpp: add_basis(0.5,5.0/6.0,0.5); +lattice.cpp: add_basis(0.0,1.0/3.0,0.5); +lattice.cpp: // set defaults for optional args +lattice.cpp: a3[2] = sqrt(8.0/3.0); +lattice.cpp: // process optional args +lattice.cpp: // check settings for errors +lattice.cpp: // reset scale for LJ units (input scale is rho*) +lattice.cpp: // scale = (Nbasis/(Vprimitive * rho*)) ^ (1/dim) +lattice.cpp: scale = pow(nbasis/volume/scale,1.0/dimension); +lattice.cpp: // initialize lattice <-> box transformation matrices +lattice.cpp: // convert 8 corners of primitive unit cell from lattice coords to box coords +lattice.cpp: // min to max = bounding box around the pts in box space +lattice.cpp: // xlattice,ylattice,zlattice = extent of bbox in box space +lattice.cpp: // set xlattice,ylattice,zlattice to 0.0 initially +lattice.cpp: // since bbox uses them to shift origin (irrelevant for this computation) +lattice.cpp: // print lattice spacings +lattice.cpp:/* ---------------------------------------------------------------------- */ +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp:------------------------------------------------------------------------- */ +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp:------------------------------------------------------------------------- */ +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp:------------------------------------------------------------------------- */ +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp:------------------------------------------------------------------------- */ +lattice.cpp: // primitive = 3x3 matrix with primitive vectors as columns +lattice.cpp: // priminv = inverse of primitive +lattice.cpp: primitive[1][2]*primitive[2][1]) / determinant; +lattice.cpp: primitive[1][0]*primitive[2][2]) / determinant; +lattice.cpp: primitive[1][1]*primitive[2][0]) / determinant; +lattice.cpp: primitive[0][1]*primitive[2][2]) / determinant; +lattice.cpp: primitive[0][2]*primitive[2][0]) / determinant; +lattice.cpp: primitive[0][0]*primitive[2][1]) / determinant; +lattice.cpp: primitive[0][2]*primitive[1][1]) / determinant; +lattice.cpp: primitive[0][0]*primitive[1][2]) / determinant; +lattice.cpp: primitive[0][1]*primitive[1][0]) / determinant; +lattice.cpp: // rotaterow = 3x3 matrix with normalized orient vectors as rows +lattice.cpp: rotaterow[0][0] = orientx[0] / length; +lattice.cpp: rotaterow[0][1] = orientx[1] / length; +lattice.cpp: rotaterow[0][2] = orientx[2] / length; +lattice.cpp: rotaterow[1][0] = orienty[0] / length; +lattice.cpp: rotaterow[1][1] = orienty[1] / length; +lattice.cpp: rotaterow[1][2] = orienty[2] / length; +lattice.cpp: rotaterow[2][0] = orientz[0] / length; +lattice.cpp: rotaterow[2][1] = orientz[1] / length; +lattice.cpp: rotaterow[2][2] = orientz[2] / length; +lattice.cpp: // rotatecol = 3x3 matrix with normalized orient vectors as columns +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp:------------------------------------------------------------------------- */ +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp: transformation: xyz_latt = P_inv * 1/scale * Rotate_col * (xyz_box - offset) +lattice.cpp:------------------------------------------------------------------------- */ +lattice.cpp: x1 /= scale; +lattice.cpp: y1 /= scale; +lattice.cpp: z1 /= scale; +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp:------------------------------------------------------------------------- */ +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp:------------------------------------------------------------------------- */ +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp:------------------------------------------------------------------------- */ +lattice.cpp:/* ---------------------------------------------------------------------- +lattice.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +library.cpp: http://lammps.sandia.gov, Sandia National Laboratories +library.cpp:------------------------------------------------------------------------- */ +library.cpp:// C or Fortran style library interface to LAMMPS +library.cpp:// customize by adding new LAMMPS-specific functions +library.cpp:// ---------------------------------------------------------------------- +library.cpp:// utility macros +library.cpp:// ---------------------------------------------------------------------- +library.cpp:/* ---------------------------------------------------------------------- +library.cpp: // code paths which might throw exception +library.cpp:------------------------------------------------------------------------- */ +library.cpp:// ---------------------------------------------------------------------- +library.cpp:// helper functions, not in library API +library.cpp:// ---------------------------------------------------------------------- +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:// ---------------------------------------------------------------------- +library.cpp:// library API functions to create/destroy an instance of LAMMPS +library.cpp:// and communicate commands to it +library.cpp:// ---------------------------------------------------------------------- +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp: char *str = (char *) lmp->memory->smalloc(n,"lib/commands/list:str"); +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp: // make copy of str so can strtok() it +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:// ---------------------------------------------------------------------- +library.cpp:// library API functions to extract info from LAMMPS or set info in LAMMPS +library.cpp:// ---------------------------------------------------------------------- +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp: // update->atime can be referenced as a pointer +library.cpp: // thermo "timer" data cannot be, since it is computed on request +library.cpp: // lammps_get_thermo() can access all thermo keywords by value +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp: returns a NULL if id is not recognized or style/type not supported +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp: returns a NULL if id is not recognized or style/type not supported +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp: // error if tags are not defined or not consecutive +library.cpp: // copy = Natom length vector of per-atom values +library.cpp: // use atom ID to insert each atom's values into copy +library.cpp: // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID +library.cpp: lmp->memory->create(copy,count*natoms,"lib/gather:copy"); +library.cpp: lmp->memory->create(copy,count*natoms,"lib/gather:copy"); +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp: // error if tags are not defined or not consecutive or no atom map +library.cpp: // copy = Natom length vector of per-atom values +library.cpp: // use atom ID to insert each atom's values into copy +library.cpp: // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp: // error if box does not exist or tags not defined +library.cpp: // loop over N atoms of entire system +library.cpp: // if this proc owns it based on coords, invoke create_atom() +library.cpp: // optionally set atom tags and velocities +library.cpp: // need to reset atom->natoms inside LAMMPS +library.cpp: // init per-atom fix/compute/variable values for created atoms +library.cpp: // if global map exists, reset it +library.cpp: // invoke map_init() b/c atom count has grown +library.cpp: // warn if new natoms is not correct +library.cpp:// ---------------------------------------------------------------------- +library.cpp:// library API functions for error handling +library.cpp:// ---------------------------------------------------------------------- +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +library.cpp:/* ---------------------------------------------------------------------- +library.cpp:------------------------------------------------------------------------- */ +main.cpp:/* ---------------------------------------------------------------------- +main.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +main.cpp: http://lammps.sandia.gov, Sandia National Laboratories +main.cpp:------------------------------------------------------------------------- */ +main.cpp:/* ---------------------------------------------------------------------- +main.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +math_extra.cpp: http://lammps.sandia.gov, Sandia National Laboratories +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp: // create augmented matrix for pivoting +math_extra.cpp: double m = aug[j][i]/aug[i][i]; +math_extra.cpp: // back substitution +math_extra.cpp: ans[2] = aug[2][3]/aug[2][2]; +math_extra.cpp: ans[i] = (aug[i][3]-sumax) / aug[i][i]; +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp: if (iter < 4) tresh = 0.2*sm/(3*3); +math_extra.cpp: if (fabs(h)+g == fabs(h)) t = (matrix[i][j])/h; +math_extra.cpp: theta = 0.5*h/(matrix[i][j]); +math_extra.cpp: t = 1.0/(fabs(theta)+sqrt(1.0+theta*theta)); +math_extra.cpp: c = 1.0/sqrt(1.0+t*t); +math_extra.cpp: tau = s/(1.0+c); +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp: also returns updated omega at 1/2 step +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp: // full update from dq/dt = 1/2 w q +math_extra.cpp: // 1st half update from dq/dt = 1/2 w q +math_extra.cpp: // re-compute omega at 1/2 step from m at 1/2 step and q at 1/2 step +math_extra.cpp: // recompute wq +math_extra.cpp: // 2nd half update from dq/dt = 1/2 w q +math_extra.cpp: // corrected Richardson update +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp: // apply permuation operator on p and q, get kp and kq +math_extra.cpp: // obtain phi, cosines and sines +math_extra.cpp: else phi /= 4.0 * inertia[k-1]; +math_extra.cpp: // advance p and q +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp: wbody = Mbody / Idiag +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp: else wbody[0] = (m[0]*ex[0] + m[1]*ex[1] + m[2]*ex[2]) / idiag[0]; +math_extra.cpp: else wbody[1] = (m[0]*ey[0] + m[1]*ey[1] + m[2]*ey[2]) / idiag[1]; +math_extra.cpp: else wbody[2] = (m[0]*ez[0] + m[1]*ez[1] + m[2]*ez[2]) / idiag[2]; +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp: else wbody[0] /= moments[0]; +math_extra.cpp: else wbody[1] /= moments[1]; +math_extra.cpp: else wbody[2] /= moments[2]; +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp: // squares of quaternion components +math_extra.cpp: // some component must be greater than 1/4 since they sum to 1 +math_extra.cpp: // compute other components from it +math_extra.cpp: q[1] = (ey[2] - ez[1]) / (4.0*q[0]); +math_extra.cpp: q[2] = (ez[0] - ex[2]) / (4.0*q[0]); +math_extra.cpp: q[3] = (ex[1] - ey[0]) / (4.0*q[0]); +math_extra.cpp: q[0] = (ey[2] - ez[1]) / (4.0*q[1]); +math_extra.cpp: q[2] = (ey[0] + ex[1]) / (4.0*q[1]); +math_extra.cpp: q[3] = (ex[2] + ez[0]) / (4.0*q[1]); +math_extra.cpp: q[0] = (ez[0] - ex[2]) / (4.0*q[2]); +math_extra.cpp: q[1] = (ey[0] + ex[1]) / (4.0*q[2]); +math_extra.cpp: q[3] = (ez[1] + ey[2]) / (4.0*q[2]); +math_extra.cpp: q[0] = (ex[1] - ey[0]) / (4.0*q[3]); +math_extra.cpp: q[1] = (ez[0] + ex[2]) / (4.0*q[3]); +math_extra.cpp: q[2] = (ez[1] + ey[2]) / (4.0*q[3]); +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp: idiag[1] = 1.0/12.0 * mass * length*length; +math_extra.cpp: idiag[2] = 1.0/12.0 * mass * length*length; +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp: from http://en.wikipedia.org/wiki/Inertia_tensor_of_triangle +math_extra.cpp: inertia tensor = a/24 (v0^2 + v1^2 + v2^2 + (v0+v1+v2)^2) I - a Vt S V +math_extra.cpp: S = 1/24 [2 1 1] +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp: double inv24 = mass/24.0; +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp:------------------------------------------------------------------------- */ +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp: ------------------------------------------------------------------------- */ +math_extra.cpp: const double cosAngle = (1.0 - angleSq * 0.25) / (1.0 + angleSq * 0.25); +math_extra.cpp: const double sinAngle = angle / (1.0 + angleSq * 0.25); +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp: ------------------------------------------------------------------------- */ +math_extra.cpp: const double cosAngle = (1.0 - angleSq * 0.25) / (1.0 + angleSq * 0.25); +math_extra.cpp: const double sinAngle = angle / (1.0 + angleSq * 0.25); +math_extra.cpp:/* ---------------------------------------------------------------------- +math_extra.cpp: ------------------------------------------------------------------------- */ +math_extra.cpp: const double cosAngle = (1.0 - angleSq * 0.25) / (1.0 + angleSq * 0.25); +math_extra.cpp: const double sinAngle = angle / (1.0 + angleSq * 0.25); +math_extra.cpp:/* ---------------------------------------------------------------------- */ +math_special.cpp:/* Library libcerf: +math_special.cpp: * distribute, sublicense, and/or sell copies of the Software, and to +math_special.cpp: * http://apps.jcns.fz-juelich.de/libcerf +math_special.cpp: * ../CHANGELOG +math_special.cpp: */ +math_special.cpp:/******************************************************************************/ +math_special.cpp:/* Lookup-table for Chebyshev polynomials for smaller |x| */ +math_special.cpp:/******************************************************************************/ +math_special.cpp: // Steven G. Johnson, October 2012. +math_special.cpp: // Given y100=100*y, where y = 4/(4+x) for x >= 0, compute erfc(x). +math_special.cpp: // Uses a look-up table of 100 different Chebyshev polynomials +math_special.cpp: // for y intervals [0,0.01], [0.01,0.02], ...., [0.99,1], generated +math_special.cpp: // with the help of Maple and a little shell script. This allows +math_special.cpp: // the Chebyshev polynomials to be of significantly lower degree (about 1/4) +math_special.cpp: // compared to fitting the whole [0,1] interval with a single polynomial. +math_special.cpp: /* we only get here if y = 1, i.e. |x| < 4*eps, in which case +math_special.cpp: * erfcx is within 1e-15 of 1.. */ +math_special.cpp:} /* erfcx_y100 */ +math_special.cpp:/* optimizer friendly implementation of exp2(x). +math_special.cpp: */ +math_special.cpp:/* IEEE 754 double precision floating point data manipulation */ +math_special.cpp:/* 1.00000000000000000000e0, */ +math_special.cpp: x = 1.0 + 2.0*(px/(qx-px)); +memory.cpp:/* ---------------------------------------------------------------------- +memory.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +memory.cpp: http://lammps.sandia.gov, Sandia National Laboratories +memory.cpp:------------------------------------------------------------------------- */ +memory.cpp:#include "tbb/scalable_allocator.h" +memory.cpp:/* ---------------------------------------------------------------------- */ +memory.cpp:/* ---------------------------------------------------------------------- +memory.cpp:------------------------------------------------------------------------- */ +memory.cpp:/* ---------------------------------------------------------------------- +memory.cpp:------------------------------------------------------------------------- */ +memory.cpp:/* ---------------------------------------------------------------------- +memory.cpp:------------------------------------------------------------------------- */ +memory.cpp:/* ---------------------------------------------------------------------- +memory.cpp: erroneous usage of templated create/grow functions +memory.cpp:------------------------------------------------------------------------- */ +memory.cpp: sprintf(str,"Cannot create/grow a vector/array of pointers for %s",name); +min_cg.cpp:/* ---------------------------------------------------------------------- +min_cg.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +min_cg.cpp: http://lammps.sandia.gov, Sandia National Laboratories +min_cg.cpp:------------------------------------------------------------------------- */ +min_cg.cpp:// EPS_ENERGY = minimum normalization for energy tolerance +min_cg.cpp:/* ---------------------------------------------------------------------- */ +min_cg.cpp:/* ---------------------------------------------------------------------- +min_cg.cpp:------------------------------------------------------------------------- */ +min_cg.cpp: // nlimit = max # of CG iterations before restarting +min_cg.cpp: // set to ndoftotal unless too big +min_cg.cpp: // initialize working vectors +min_cg.cpp: // line minimization along direction h from current atom->x +min_cg.cpp: // function evaluation criterion +min_cg.cpp: // energy tolerance criterion +min_cg.cpp: // force tolerance criterion +min_cg.cpp: // update new search direction h from new f = -Grad(x) and old g +min_cg.cpp: // this is Polak-Ribieri formulation +min_cg.cpp: // beta = dotall[0]/gg would be Fletcher-Reeves +min_cg.cpp: // reinitialize CG every ndof iterations by setting beta = 0.0 +min_cg.cpp: beta = MAX(0.0,(dotall[0] - dotall[1])/gg); +min_cg.cpp: // reinitialize CG if new search direction h is not downhill +min_cg.cpp: // output for thermo, dump, restart files +min.cpp:/* ---------------------------------------------------------------------- +min.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +min.cpp: http://lammps.sandia.gov, Sandia National Laboratories +min.cpp:------------------------------------------------------------------------- */ +min.cpp:/* ---------------------------------------------------------------------- +min.cpp: JR Shewchuk, http://www-2.cs.cmu.edu/~jrs/jrspapers.html#cg +min.cpp:------------------------------------------------------------------------- */ +min.cpp:/* ---------------------------------------------------------------------- */ +min.cpp:/* ---------------------------------------------------------------------- */ +min.cpp:/* ---------------------------------------------------------------------- */ +min.cpp: // create fix needed for storing atom-based quantities +min.cpp: // will delete it at end of run +min.cpp: // clear out extra global and per-atom dof +min.cpp: // will receive requests for new per-atom dof during pair init() +min.cpp: // can then add vectors to fix_minimize in setup() +min.cpp: // virial_style: +min.cpp: // 1 if computed explicitly by pair->compute via sum over pair interactions +min.cpp: // 2 if computed implicitly by pair->virial_compute via sum over ghost atoms +min.cpp: // setup lists of computes for global and per-atom PE and pressure +min.cpp: // detect if fix omp is present for clearing force arrays +min.cpp: // set flags for arrays to clear in force_clear() +min.cpp: // allow pair and Kspace compute() to be turned off via modify flags +min.cpp: // orthogonal vs triclinic simulation box +min.cpp: // reset reneighboring criteria if necessary +min.cpp:/* ---------------------------------------------------------------------- +min.cpp:------------------------------------------------------------------------- */ +min.cpp: // setup extra global dof due to fixes +min.cpp: // cannot be done in init() b/c update init() is before modify init() +min.cpp: // compute for potential energy +min.cpp: // style-specific setup does two tasks +min.cpp: // setup extra global dof vectors +min.cpp: // setup extra per-atom dof vectors due to requests from Pair classes +min.cpp: // cannot be done in init() b/c update init() is before modify/pair init() +min.cpp: // ndoftotal = total dof for entire minimization problem +min.cpp: // dof for atoms, extra per-atom, extra global +min.cpp: // setup domain, communication and neighboring +min.cpp: // acquire ghosts +min.cpp: // build neighbor lists +min.cpp: // remove these restriction eventually +min.cpp: "Cannot use a damped dynamics min style with fix box/relax"); +min.cpp: error->all(FLERR, "Cannot use hftn min style with fix box/relax"); +min.cpp: // atoms may have migrated in comm->exchange() +min.cpp: // compute all forces +min.cpp: // update per-atom minimization variables stored by pair styles +min.cpp: // stats for initial thermo output +min.cpp: if (output->thermo->normflag) ecurrent /= atom->natoms; +min.cpp:/* ---------------------------------------------------------------------- +min.cpp:------------------------------------------------------------------------- */ +min.cpp: // setup domain, communication and neighboring +min.cpp: // acquire ghosts +min.cpp: // build neighbor lists +min.cpp: // atoms may have migrated in comm->exchange() +min.cpp: // compute all forces +min.cpp: // update per-atom minimization variables stored by pair styles +min.cpp: // stats for Finish to print +min.cpp: if (output->thermo->normflag) ecurrent /= atom->natoms; +min.cpp:/* ---------------------------------------------------------------------- +min.cpp:------------------------------------------------------------------------- */ +min.cpp: // minimizer iterations +min.cpp: // if early exit from iterate loop: +min.cpp: // set update->nsteps to niter for Finish stats to print +min.cpp: // set output->next values to this timestep +min.cpp: // call energy_force() to insure vflag is set when forces computed +min.cpp: // output->write does final output for thermo, dump, restart files +min.cpp: // add ntimestep to all computes that store invocation times +min.cpp: // since are hardwiring call to thermo/dumps and computes may not be ready +min.cpp:/* ---------------------------------------------------------------------- */ +min.cpp: // stats for Finish to print +min.cpp: // reset reneighboring criteria +min.cpp: // delete fix at end of run, so its atom arrays won't persist +min.cpp:/* ---------------------------------------------------------------------- +min.cpp:------------------------------------------------------------------------- */ +min.cpp: // check for reneighboring +min.cpp: // always communicate since minimizer moved atoms +min.cpp: // update per-atom minimization variables stored by pair styles +min.cpp: // fixes that affect minimization +min.cpp: // compute potential energy of system +min.cpp: // normalize if thermo PE does +min.cpp: if (output->thermo->normflag) energy /= atom->natoms; +min.cpp: // if reneighbored, atoms migrated +min.cpp: // if resetflag = 1, update x0 of atoms crossing PBC +min.cpp: // reset vectors used by lo-level minimizer +min.cpp:/* ---------------------------------------------------------------------- +min.cpp:------------------------------------------------------------------------- */ +min.cpp: // clear global force array +min.cpp: // if either newton flag is set, also include ghosts +min.cpp:/* ---------------------------------------------------------------------- +min.cpp:------------------------------------------------------------------------- */ +min.cpp:/* ---------------------------------------------------------------------- */ +min.cpp:/* ---------------------------------------------------------------------- +min.cpp:------------------------------------------------------------------------- */ +min.cpp:/* ---------------------------------------------------------------------- +min.cpp: eflag/vflag based on computes that need info on this ntimestep +min.cpp:------------------------------------------------------------------------- */ +min.cpp:/* ---------------------------------------------------------------------- +min.cpp:------------------------------------------------------------------------- */ +min.cpp:/* ---------------------------------------------------------------------- +min.cpp:------------------------------------------------------------------------- */ +min.cpp:/* ---------------------------------------------------------------------- +min.cpp:------------------------------------------------------------------------- */ +min_fire.cpp:/* ---------------------------------------------------------------------- +min_fire.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +min_fire.cpp: http://lammps.sandia.gov, Sandia National Laboratories +min_fire.cpp:------------------------------------------------------------------------- */ +min_fire.cpp:// EPS_ENERGY = minimum normalization for energy tolerance +min_fire.cpp:/* ---------------------------------------------------------------------- */ +min_fire.cpp:/* ---------------------------------------------------------------------- */ +min_fire.cpp:/* ---------------------------------------------------------------------- */ +min_fire.cpp:/* ---------------------------------------------------------------------- +min_fire.cpp:------------------------------------------------------------------------- */ +min_fire.cpp: // atomic dof +min_fire.cpp:/* ---------------------------------------------------------------------- */ +min_fire.cpp: // vdotfall = v dot f +min_fire.cpp: // sum vdotf over replicas, if necessary +min_fire.cpp: // this communicator would be invalid for multiprocess replicas +min_fire.cpp: // if (v dot f) > 0: +min_fire.cpp: // v = (1-alpha) v + alpha |v| Fhat +min_fire.cpp: // |v| = length of v, Fhat = unit f +min_fire.cpp: // if more than DELAYSTEP since v dot f was negative: +min_fire.cpp: // increase timestep and decrease alpha +min_fire.cpp: // sum vdotv over replicas, if necessary +min_fire.cpp: // this communicator would be invalid for multiprocess replicas +min_fire.cpp: // sum fdotf over replicas, if necessary +min_fire.cpp: // this communicator would be invalid for multiprocess replicas +min_fire.cpp: else scale2 = alpha * sqrt(vdotvall/fdotfall); +min_fire.cpp: // else (v dot f) <= 0: +min_fire.cpp: // decrease timestep, reset alpha, set v = 0 +min_fire.cpp: // limit timestep so no particle moves further than dmax +min_fire.cpp: if (dtvone*vmax > dmax) dtvone = dmax/vmax; +min_fire.cpp: // min dtv over replicas, if necessary +min_fire.cpp: // this communicator would be invalid for multiprocess replicas +min_fire.cpp: // Euler integration step +min_fire.cpp: dtfm = dtf / rmass[i]; +min_fire.cpp: dtfm = dtf / mass[type[i]]; +min_fire.cpp: // energy tolerance criterion +min_fire.cpp: // only check after DELAYSTEP elapsed since velocties reset to 0 +min_fire.cpp: // sync across replicas if running multi-replica minimization +min_fire.cpp: // force tolerance criterion +min_fire.cpp: // sync across replicas if running multi-replica minimization +min_fire.cpp: // output for thermo, dump, restart files +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +min_hftn.cpp: http://lammps.sandia.gov, Sandia National Laboratories +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp://---- CONSTANTS MAP TO stopstrings DECLARED IN Min.run (min.cpp). +min_hftn.cpp:static const int STOP_MAX_ITER = Min::MAXITER; //-- MAX ITERATIONS EXCEEDED +min_hftn.cpp:static const int STOP_MAX_FORCE_EVALS = Min::MAXEVAL; //-- MAX FORCE EVALUATIONS EXCEEDED +min_hftn.cpp:static const int STOP_ENERGY_TOL = Min::ETOL; //-- STEP DID NOT CHANGE ENERGY +min_hftn.cpp:static const int STOP_FORCE_TOL = Min::FTOL; //-- CONVERGED TO DESIRED FORCE TOL +min_hftn.cpp:static const int STOP_TR_TOO_SMALL = Min::TRSMALL; //-- TRUST REGION TOO SMALL +min_hftn.cpp:static const int STOP_ERROR = Min::INTERROR; //-- INTERNAL ERROR +min_hftn.cpp://---- WHEN TESTING ENERGY_TOL, THE ENERGY MAGNITUDE MUST BE AT LEAST THIS BIG. +min_hftn.cpp://---- MACHINE PRECISION IS SOMETIMES DEFINED BY THE C RUNTIME. +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp: //---- ALLOCATE MEMORY FOR ATOMIC DEGREES OF FREEDOM. +min_hftn.cpp: //---- ALLOCATE MEMORY FOR EXTRA GLOBAL DEGREES OF FREEDOM. +min_hftn.cpp: //---- THE FIX MODULE TAKES CARE OF THE FIRST VECTOR, X0 (XK). +min_hftn.cpp: //---- ALLOCATE MEMORY FOR EXTRA PER-ATOM DEGREES OF FREEDOM. +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp: After an energy/force calculation, atoms may migrate from one processor +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp: //---- ATOMIC DEGREES OF FREEDOM. +min_hftn.cpp: //---- EXTRA PER-ATOM DEGREES OF FREEDOM. +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp: //---- TURN THIS ON TO GENERATE AN OPTIMIZATION PROGRESS FILE. +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp: //---- DEFINE OUTPUTS PRINTED BY "Finish". +min_hftn.cpp: //---- SAVE ATOM POSITIONS BEFORE AN ITERATION. +min_hftn.cpp: //---- FIND THE NUMBER OF UNKNOWNS. +min_hftn.cpp: //---- INITIALIZE THE TRUST RADIUS BASED ON THE GRADIENT. +min_hftn.cpp: //---- TRUST RADIUS MUST KEEP STEPS FROM LETTING ATOMS MOVE SO FAR THEY +min_hftn.cpp: //---- VIOLATE PHYSICS OR JUMP BEYOND A PARALLEL PROCESSING DOMAIN. +min_hftn.cpp: //---- LINE SEARCH METHODS DO THIS BY RESTRICTING THE LARGEST CHANGE +min_hftn.cpp: //---- OF ANY ATOM'S COMPONENT TO dmax. AN EXACT CHECK IS MADE LATER, +min_hftn.cpp: //---- BUT THIS GUIDES DETERMINATION OF A MAX TRUST RADIUS. +min_hftn.cpp: //---- CALL THE INNER LOOP TO GET THE NEXT TRUST REGION STEP. +min_hftn.cpp: double dCgForce2StopTol = MIN ((dCurrentForce2 / 2.0), 0.1 / (niter+1)); +min_hftn.cpp: //---- THERE WAS AN ERROR. RESTORE TO LAST ACCEPTED STEP. +min_hftn.cpp: //---- STOP IF THE CURRENT POSITION WAS FOUND TO BE ALREADY GOOD ENOUGH. +min_hftn.cpp: //---- IN THIS CASE THE ENERGY AND FORCES ARE ALREADY COMPUTED. +min_hftn.cpp: //---- COMPUTE THE DIRECTIONAL DERIVATIVE H(x_k) p. +min_hftn.cpp: //---- COMPUTE p^T grad(x_k) AND SAVE IT FOR PRED. +min_hftn.cpp: //---- MOVE TO THE NEW POINT AND EVALUATE ENERGY AND FORCES. +min_hftn.cpp: //---- THIS IS THE PLACE WHERE energy_force IS ALLOWED TO RESET. +min_hftn.cpp: //---- STOP IF THE FORCE TOLERANCE IS MET. +min_hftn.cpp: //---- (IMPLICITLY ACCEPT THE LAST STEP TO THE NEW POINT.) +min_hftn.cpp: //---- STOP IF THE ACTUAL ENERGY REDUCTION IS TINY. +min_hftn.cpp: //---- (IMPLICITLY ACCEPT THE LAST STEP TO THE NEW POINT.) +min_hftn.cpp: //---- COMPUTE THE PREDICTED REDUCTION - p^T grad - 0.5 p^T Hp +min_hftn.cpp: //---- ACCEPT OR REJECT THE STEP PROPOSED BY THE INNER CG LOOP. +min_hftn.cpp: //---- WHEN NEAR A SOLUTION, THE FORCE NORM IS PROBABLY MORE ACCURATE, +min_hftn.cpp: //---- SO DON'T ACCEPT A STEP THAT REDUCES ENERGY SOME TINY AMOUNT +min_hftn.cpp: //---- WHILE INCREASING THE FORCE NORM. +min_hftn.cpp: //---- THE STEP IS ACCEPTED. +min_hftn.cpp: //---- UPDATE THE TRUST REGION BASED ON AGREEMENT BETWEEN +min_hftn.cpp: //---- THE ACTUAL REDUCTION AND THE PREDICTED MODEL REDUCTION. +min_hftn.cpp: //---- DMAX VIOLATIONS TRUNCATE THE CG STEP WITHOUT COMPARISONS; +min_hftn.cpp: //---- BETTER TO ADJUST THE TRUST REGION SO DMAX STOPS HAPPENING. +min_hftn.cpp: //---- THE STEP IS REJECTED. +min_hftn.cpp: //---- RESTORE THE LAST X_K POSITION. +min_hftn.cpp: //---- UPDATE THE TRUST REGION. +min_hftn.cpp: //---- EXPERIMENTS INDICATE NEGATIVE CURVATURE CAN TAKE A BAD +min_hftn.cpp: //---- STEP A LONG WAY, SO BE MORE AGGRESSIVE IN THIS CASE. +min_hftn.cpp: //---- ALSO, IF NEAR A SOLUTION AND DONE WITH NEWTON STEPS, +min_hftn.cpp: //---- THEN REDUCE TO SOMETHING NEAR THE LAST GOOD NEWTON STEP. +min_hftn.cpp: //---- STOP IF THE TRUST RADIUS IS TOO SMALL TO CONTINUE. +min_hftn.cpp: //---- OUTPUT FOR thermo, dump, restart FILES. +min_hftn.cpp: //---- IF THE LAST STEP WAS REJECTED, THEN REEVALUATE ENERGY AND +min_hftn.cpp: //---- FORCES AT THE OLD POINT SO THE OUTPUT DOES NOT DISPLAY +min_hftn.cpp: //---- THE INCREASED ENERGY OF THE REJECTED STEP. +min_hftn.cpp: //---- RETURN IF NUMBER OF EVALUATIONS EXCEEDED. +min_hftn.cpp: } //-- END for LOOP OVER niter +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp: @param[in] nMaxEvals - total energy/force evaluations allowed +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp: //---- SET p_0 = 0. +min_hftn.cpp: //---- OBTAIN THE ENERGY AND FORCES AT THE INPUT POSITION. +min_hftn.cpp: //---- RETURN IMMEDIATELY IF THE FORCE TOLERANCE IS ALREADY MET. +min_hftn.cpp: //---- THE STEP TYPE INFORMS THE CALLER THAT ENERGY AND FORCES HAVE +min_hftn.cpp: //---- BEEN EVALUATED. +min_hftn.cpp: //---- r_0 = -grad (FIRST SEARCH DIRECTION IS STEEPEST DESCENT) +min_hftn.cpp: //---- d_0 = r_0 +min_hftn.cpp: //---- REMEMBER THAT FORCES = -GRADIENT. +min_hftn.cpp: //---- LIMIT THE NUMBER OF INNER CG ITERATIONS. +min_hftn.cpp: //---- BASE IT ON THE NUMBER OF UNKNOWNS, OR MAXIMUM EVALUATIONS ASSUMING +min_hftn.cpp: //---- FORWARD DIFFERENCES ARE USED. +min_hftn.cpp: //---- NOTE THAT SETTING MAX=1 GIVES STEEPEST DESCENT. +min_hftn.cpp: int nLimit1 = _nNumUnknowns / 5; +min_hftn.cpp: int nLimit2 = (nMaxEvals - neval) / 2; +min_hftn.cpp: //---- FURTHER LIMIT ITERATIONS IF NEAR MACHINE ROUNDOFF. +min_hftn.cpp: //---- THE METHOD CAN WASTE A LOT EVALUATIONS WITH LITTLE PAYOFF PROSPECT. +min_hftn.cpp: nMaxInnerIters = MIN (nMaxInnerIters, _nNumUnknowns / 20); +min_hftn.cpp: //---- MAIN CG LOOP. +min_hftn.cpp: //---- COMPUTE HESSIAN-VECTOR PRODUCT: H(x_k) d_i. +min_hftn.cpp: //---- CALCULATE d_i^T H d_i AND d_i^T d_i. +min_hftn.cpp: //---- HANDLE NEGATIVE CURVATURE. +min_hftn.cpp: //---- PROJECT BOTH DIRECTIONS TO THE TRUST RADIUS AND DECIDE +min_hftn.cpp: //---- WHICH MAKES A BETTER PREDICTED REDUCTION. +min_hftn.cpp: //---- p_i^T H(x_k) d_i AND grad_i^T d_i. +min_hftn.cpp: //---- MOVE TO X_K AND COMPUTE ENERGY AND FORCES. +min_hftn.cpp: //---- MOVE THE POINT. +min_hftn.cpp: //---- COMPUTE THE OPTIMAL STEP LENGTH BASED ON THE QUADRATIC CG MODEL. +min_hftn.cpp: double dAlpha = dRR / dDHD; +min_hftn.cpp: //---- MIGHT WANT TO ENABLE THIS TO DEBUG INTERNAL CG STEPS. +min_hftn.cpp: //fprintf (_fpPrint, " alpha = %11.8f neval=%4d\n", dAlpha, neval); +min_hftn.cpp: //---- p_i+1 = p_i + alpha_i d_i +min_hftn.cpp: //---- (SAVE THE CURRENT p_i IN CASE THE STEP HAS TO BE SHORTENED.) +min_hftn.cpp: //---- COMPUTE VECTOR PRODUCTS p_i+1^T p_i+1 AND p_i^T d_i. +min_hftn.cpp: //---- IF STEP LENGTH IS TOO LARGE, THEN REDUCE IT AND RETURN. +min_hftn.cpp: //---- r_i+1 = r_i - alpha * H d_i +min_hftn.cpp: //---- IF RESIDUAL IS SMALL ENOUGH, THEN RETURN THE CURRENT STEP. +min_hftn.cpp: //---- beta = r_i+1^T r_i+1 / r_i^T r_i +min_hftn.cpp: //---- d_i+1 = r_i+1 + beta d_i +min_hftn.cpp: double dBeta = dRnewDotRnew / dRR; +min_hftn.cpp: //---- CONTINUE THE LOOP. +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp: //---- ASSUME THAT FORCES HAVE BEEN EVALUATED AT DESIRED ATOM POSITIONS. +min_hftn.cpp: //---- REMEMBER THAT FORCES = -GRADIENT. +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp: //---- STEP LENGTH IS NOT TOO LONG. +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp: dAlpha = MIN (dAlpha, dmax / dPInf); +min_hftn.cpp: dAlpha = MIN (dAlpha, extra_max[m] / dPInf); +min_hftn.cpp: //---- IF THE MAXIMUM DISTANCE THAT THE GLOBAL BOX CONSTRAINT WILL +min_hftn.cpp: //---- ALLOW IS SMALLER THAN THE PROPOSED DISTANCE, THEN THE STEP +min_hftn.cpp: //---- IS TOO LONG. PROPOSED DISTANCE IS ESTIMATED BY |P|_INF. +min_hftn.cpp: //---- STEP LENGTH IS NOT TOO LONG. +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp: //---- SOLVE A QUADRATIC EQUATION FOR TAU. +min_hftn.cpp: //---- THE COEFFICIENTS ARE SUCH THAT THERE ARE ALWAYS TWO REAL ROOTS, +min_hftn.cpp: //---- ONE POSITIVE AND ONE NEGATIVE. +min_hftn.cpp: //---- CHECK FOR ERRONEOUS DATA. +min_hftn.cpp: dDiscr = MAX (0.0, dDiscr); //-- SHOULD NEVER BE NEGATIVE +min_hftn.cpp: double dRootPos = (-dPD + dDiscr) / dDD; +min_hftn.cpp: double dRootNeg = (-dPD - dDiscr) / dDD; +min_hftn.cpp: //---- EVALUATE THE CG OBJECTIVE FUNCTION FOR EACH ROOT. +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp: //---- COMPUTE THE MAGNITUDE OF THE DIRECTION VECTOR: |p|_2. +min_hftn.cpp: //---- IF THE STEP IS TOO SMALL, RETURN ZERO FOR THE DERIVATIVE. +min_hftn.cpp: //---- FORWARD DIFFERENCES ARE LESS ACCURATE THAN CENTRAL DIFFERENCES, +min_hftn.cpp: //---- BUT REQUIRE ONLY 2 ENERGY+FORCE EVALUATIONS VERSUS 3 EVALUATIONS. +min_hftn.cpp: //---- STORAGE REQUIREMENTS ARE THE SAME. +min_hftn.cpp: //---- EQUATION IS FROM THE OLD LAMMPS VERSION, SAND98-8201. +min_hftn.cpp: double dEps = 2.0 * sqrt (1000.0 * MACHINE_EPS) / dDirNorm2; +min_hftn.cpp: //---- SAVE A COPY OF x. +min_hftn.cpp: //---- EVALUATE FORCES AT x + eps*p. +min_hftn.cpp: //---- STORE THE FORCE IN DIF2. +min_hftn.cpp: //---- MOVE BACK TO x AND EVALUATE FORCES. +min_hftn.cpp: //---- COMPUTE THE DIFFERENCE VECTOR: [grad(x + eps*p) - grad(x)] / eps. +min_hftn.cpp: //---- REMEMBER THAT FORCES = -GRADIENT. +min_hftn.cpp: _daAVectors[nIxResult][i] = (fvec[i] - _daAVectors[VEC_DIF2][i]) / dEps; +min_hftn.cpp: iAtom[i] = (fextra_atom[m][i] - d2Atom[i]) / dEps; +min_hftn.cpp: = (fextra[i] - _daExtraGlobal[VEC_DIF2][i]) / dEps; +min_hftn.cpp: else { //-- bUseForwardDiffs == false +min_hftn.cpp: //---- EQUATION IS FROM THE OLD LAMMPS VERSION, SAND98-8201. +min_hftn.cpp: double dEps = pow (3000.0 * MACHINE_EPS, 0.33333333) / dDirNorm2; +min_hftn.cpp: //---- SAVE A COPY OF x. +min_hftn.cpp: //---- EVALUATE FORCES AT x + eps*p. +min_hftn.cpp: //---- STORE THE FORCE IN DIF2. +min_hftn.cpp: //---- EVALUATE FORCES AT x - eps*p. +min_hftn.cpp: //---- COMPUTE THE DIFFERENCE VECTOR: +min_hftn.cpp: //---- [grad(x + eps*p) - grad(x - eps*p)] / 2*eps. +min_hftn.cpp: //---- REMEMBER THAT FORCES = -GRADIENT. +min_hftn.cpp: iGlobal[i] = (fextra[i] - d2Global[i]) / (2.0 + dEps); +min_hftn.cpp: (fvec[i] - _daAVectors[VEC_DIF2][i]) / (2.0 * dEps); +min_hftn.cpp: iAtom[i] = (fatom[i] - d2Atom[i]) / (2.0 + dEps); +min_hftn.cpp: //---- EVALUATE FORCES AT x. +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +min_hftn.cpp:/* ---------------------------------------------------------------------- +min_hftn.cpp:------------------------------------------------------------------------- */ +minimize.cpp:/* ---------------------------------------------------------------------- +minimize.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +minimize.cpp: http://lammps.sandia.gov, Sandia National Laboratories +minimize.cpp:------------------------------------------------------------------------- */ +minimize.cpp:/* ---------------------------------------------------------------------- */ +minimize.cpp:/* ---------------------------------------------------------------------- */ +minimize.cpp: // ignore minimize command, if walltime limit was already reached +min_linesearch.cpp:/* ---------------------------------------------------------------------- +min_linesearch.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +min_linesearch.cpp: http://lammps.sandia.gov, Sandia National Laboratories +min_linesearch.cpp:------------------------------------------------------------------------- */ +min_linesearch.cpp:/* ---------------------------------------------------------------------- +min_linesearch.cpp: JR Shewchuk, http://www-2.cs.cmu.edu/~jrs/jrspapers.html#cg +min_linesearch.cpp:------------------------------------------------------------------------- */ +min_linesearch.cpp:// ALPHA_MAX = max alpha allowed to avoid long backtracks +min_linesearch.cpp:// ALPHA_REDUCE = reduction ratio, should be in range [0.5,1) +min_linesearch.cpp:// BACKTRACK_SLOPE, should be in range (0,0.5] +min_linesearch.cpp:// QUADRATIC_TOL = tolerance on alpha0, should be in range [0.1,1) +min_linesearch.cpp:// EMACH = machine accuracy limit of energy changes (1.0e-8) +min_linesearch.cpp:// EPS_QUAD = tolerance for quadratic projection +min_linesearch.cpp://#define EMACH 1.0e-8 +min_linesearch.cpp:/* ---------------------------------------------------------------------- */ +min_linesearch.cpp:/* ---------------------------------------------------------------------- */ +min_linesearch.cpp:/* ---------------------------------------------------------------------- */ +min_linesearch.cpp:/* ---------------------------------------------------------------------- */ +min_linesearch.cpp: // memory for x0,g,h for atomic dof +min_linesearch.cpp: // memory for g,h for extra global dof, fix stores x0 +min_linesearch.cpp: // memory for x0,g,h for extra per-atom dof +min_linesearch.cpp:/* ---------------------------------------------------------------------- +min_linesearch.cpp:------------------------------------------------------------------------- */ +min_linesearch.cpp: // atomic dof +min_linesearch.cpp: // extra per-atom dof +min_linesearch.cpp:/* ---------------------------------------------------------------------- +min_linesearch.cpp: update neval counter of eng/force function evaluations +min_linesearch.cpp:------------------------------------------------------------------------- */ +min_linesearch.cpp:/* ---------------------------------------------------------------------- +min_linesearch.cpp:------------------------------------------------------------------------- */ +min_linesearch.cpp: // fdothall = projection of search dir along downhill gradient +min_linesearch.cpp: // if search direction is not downhill, exit with error +min_linesearch.cpp: if (output->thermo->normflag) fdothall /= atom->natoms; +min_linesearch.cpp: // set alpha so no dof is changed by more than max allowed amount +min_linesearch.cpp: // for atom coords, max amount = dmax +min_linesearch.cpp: // for extra per-atom dof, max amount = extra_max[] +min_linesearch.cpp: // for extra global dof, max amount is set by fix +min_linesearch.cpp: // also insure alpha <= ALPHA_MAX +min_linesearch.cpp: // else will have to backtrack from huge value when forces are tiny +min_linesearch.cpp: // if all search dir components are already 0.0, exit with error +min_linesearch.cpp: alpha = MIN(ALPHA_MAX,dmax/hmaxall); +min_linesearch.cpp: alpha = MIN(alpha,extra_max[m]/hmax); +min_linesearch.cpp: // store box and values of all dof at start of linesearch +min_linesearch.cpp: // // important diagnostic: test the gradient against energy +min_linesearch.cpp: // double etmp; +min_linesearch.cpp: // double alphatmp = alpha*1.0e-4; +min_linesearch.cpp: // etmp = alpha_step(alphatmp,1); +min_linesearch.cpp: // printf("alpha = %g dele = %g dele_force = %g err = %g\n", +min_linesearch.cpp: // alphatmp,etmp-eoriginal,-alphatmp*fdothall, +min_linesearch.cpp: // etmp-eoriginal+alphatmp*fdothall); +min_linesearch.cpp: // alpha_step(0.0,1); +min_linesearch.cpp: // backtrack with alpha until energy decrease is sufficient +min_linesearch.cpp: // if energy change is better than ideal, exit with success +min_linesearch.cpp: // reduce alpha +min_linesearch.cpp: // backtracked too much +min_linesearch.cpp: // reset to starting point +min_linesearch.cpp: // if de is positive, exit with error +min_linesearch.cpp: // if de is negative, exit with ETOL +min_linesearch.cpp:/* ---------------------------------------------------------------------- +min_linesearch.cpp: // linemin: quadratic line search (adapted from Dennis and Schnabel) +min_linesearch.cpp: // The objective function is approximated by a quadratic +min_linesearch.cpp: // function in alpha, for sufficiently small alpha. +min_linesearch.cpp: // This idea is the same as that used in the well-known secant +min_linesearch.cpp: // method. However, since the change in the objective function +min_linesearch.cpp: // (difference of two finite numbers) is not known as accurately +min_linesearch.cpp: // as the gradient (which is close to zero), all the expressions +min_linesearch.cpp: // are written in terms of gradients. In this way, we can converge +min_linesearch.cpp: // the LAMMPS forces much closer to zero. +min_linesearch.cpp: // +min_linesearch.cpp: // We know E,Eprev,fh,fhprev. The Taylor series about alpha_prev +min_linesearch.cpp: // truncated at the quadratic term is: +min_linesearch.cpp: // +min_linesearch.cpp: // E = Eprev - del_alpha*fhprev + (1/2)del_alpha^2*Hprev +min_linesearch.cpp: // +min_linesearch.cpp: // and +min_linesearch.cpp: // +min_linesearch.cpp: // fh = fhprev - del_alpha*Hprev +min_linesearch.cpp: // +min_linesearch.cpp: // where del_alpha = alpha-alpha_prev +min_linesearch.cpp: // +min_linesearch.cpp: // We solve these two equations for Hprev and E=Esolve, giving: +min_linesearch.cpp: // +min_linesearch.cpp: // Esolve = Eprev - del_alpha*(f+fprev)/2 +min_linesearch.cpp: // +min_linesearch.cpp: // We define relerr to be: +min_linesearch.cpp: // +min_linesearch.cpp: // relerr = |(Esolve-E)/Eprev| +min_linesearch.cpp: // = |1.0 - (0.5*del_alpha*(f+fprev)+E)/Eprev| +min_linesearch.cpp: // +min_linesearch.cpp: // If this is accurate to within a reasonable tolerance, then +min_linesearch.cpp: // we go ahead and use a secant step to fh = 0: +min_linesearch.cpp: // +min_linesearch.cpp: // alpha0 = alpha - (alpha-alphaprev)*fh/delfh; +min_linesearch.cpp: // +min_linesearch.cpp:------------------------------------------------------------------------- */ +min_linesearch.cpp: // fdothall = projection of search dir along downhill gradient +min_linesearch.cpp: // if search direction is not downhill, exit with error +min_linesearch.cpp: if (output->thermo->normflag) fdothall /= atom->natoms; +min_linesearch.cpp: // set alphamax so no dof is changed by more than max allowed amount +min_linesearch.cpp: // for atom coords, max amount = dmax +min_linesearch.cpp: // for extra per-atom dof, max amount = extra_max[] +min_linesearch.cpp: // for extra global dof, max amount is set by fix +min_linesearch.cpp: // also insure alphamax <= ALPHA_MAX +min_linesearch.cpp: // else will have to backtrack from huge value when forces are tiny +min_linesearch.cpp: // if all search dir components are already 0.0, exit with error +min_linesearch.cpp: alphamax = MIN(ALPHA_MAX,dmax/hmaxall); +min_linesearch.cpp: alphamax = MIN(alphamax,extra_max[m]/hmax); +min_linesearch.cpp: // store box and values of all dof at start of linesearch +min_linesearch.cpp: // backtrack with alpha until energy decrease is sufficient +min_linesearch.cpp: // or until get to small energy change, then perform quadratic projection +min_linesearch.cpp: // // important diagnostic: test the gradient against energy +min_linesearch.cpp: // double etmp; +min_linesearch.cpp: // double alphatmp = alphamax*1.0e-4; +min_linesearch.cpp: // etmp = alpha_step(alphatmp,1); +min_linesearch.cpp: // printf("alpha = %g dele = %g dele_force = %g err = %g\n", +min_linesearch.cpp: // alphatmp,etmp-eoriginal,-alphatmp*fdothall, +min_linesearch.cpp: // etmp-eoriginal+alphatmp*fdothall); +min_linesearch.cpp: // alpha_step(0.0,1); +min_linesearch.cpp: // compute new fh, alpha, delfh +min_linesearch.cpp: ff /= atom->natoms; +min_linesearch.cpp: fh /= atom->natoms; +min_linesearch.cpp: // if fh or delfh is epsilon, reset to starting point, exit with error +min_linesearch.cpp: // Check if ready for quadratic projection, equivalent to secant method +min_linesearch.cpp: // alpha0 = projected alpha +min_linesearch.cpp: relerr = fabs(1.0-(0.5*(alpha-alphaprev)*(fh+fhprev)+ecurrent)/engprev); +min_linesearch.cpp: alpha0 = alpha - (alpha-alphaprev)*fh/delfh; +min_linesearch.cpp: // if backtracking energy change is better than ideal, exit with success +min_linesearch.cpp: // save previous state +min_linesearch.cpp: // reduce alpha +min_linesearch.cpp: // backtracked all the way to 0.0 +min_linesearch.cpp: // reset to starting point, exit with error +min_linesearch.cpp:/* ---------------------------------------------------------------------- +min_linesearch.cpp: // also account for nextra atom & global +min_linesearch.cpp: alpha_max <= dmax/hmaxall +min_linesearch.cpp: // try decreasing the energy to 1/10 of initial +min_linesearch.cpp: alpha_init = 0.1*fabs(eoriginal)/fhCurr; +min_linesearch.cpp: // initial alpha is smaller than alpha_max +min_linesearch.cpp: // we have done enough in the search space +min_linesearch.cpp: // ZERO_ENERGY = 1e-12, is max allowed energy increase +min_linesearch.cpp: // GRAD_TOL = 0.1 +min_linesearch.cpp: if ( (not backtrack) && (fabs(fhCurr/fh0) <= GRAD_TOL) ): +min_linesearch.cpp: // forces sufficiently reduced without energy increase +min_linesearch.cpp: // projected force changed sign but didn't become small enough +min_linesearch.cpp: // forces along search direction changed sign +min_linesearch.cpp: // force didn't change sign but only energy increased, +min_linesearch.cpp: // we overshot a minimum which is very close to a +min_linesearch.cpp: // maximum (or there is an inflection point) +min_linesearch.cpp: // New alpha_del should be much smaller +min_linesearch.cpp: // ALPHA_FACT = 0.1 +min_linesearch.cpp: // Check to see if new 'alpha_del' isn't too small +min_linesearch.cpp: // continue the loop with a new alpha_del +min_linesearch.cpp: ---------------------------------------------------------------------- */ +min_linesearch.cpp: // projection of: force on itself, current force on search direction, +min_linesearch.cpp: // previous force on search direction, initial force on search direction +min_linesearch.cpp: // current energy, previous energy +min_linesearch.cpp: // hardcoded constants +min_linesearch.cpp: // factor by which alpha is reduced when backtracking +min_linesearch.cpp: // maximum amount by which we'll permit energy increase +min_linesearch.cpp: // fraction to which we want to reduce the directional derivative +min_linesearch.cpp: // largest alpha increment which will trigger a failed_linesearch +min_linesearch.cpp: // fdothall = projection of search dir along downhill gradient +min_linesearch.cpp: // if search direction is not downhill, exit with error +min_linesearch.cpp: if (output->thermo->normflag) fdothall /= atom->natoms; +min_linesearch.cpp: // set alpha so no dof is changed by more than max allowed amount +min_linesearch.cpp: // for atom coords, max amount = dmax +min_linesearch.cpp: // for extra per-atom dof, max amount = extra_max[] +min_linesearch.cpp: // for extra global dof, max amount is set by fix +min_linesearch.cpp: // also insure alpha <= ALPHA_MAX else will have +min_linesearch.cpp: // to backtrack from huge value when forces are tiny +min_linesearch.cpp: // if all search dir components are already 0.0, exit with error +min_linesearch.cpp: alpha_max = dmax/hmaxall; +min_linesearch.cpp: alpha_max = MIN(alpha_max,extra_max[m]/hmax); +min_linesearch.cpp: // store box and values of all dof at start of linesearch +min_linesearch.cpp: // initialize important variables before main linesearch loop +min_linesearch.cpp: // stores energy difference due to the current move +min_linesearch.cpp: // choosing the initial alpha that we'll use +min_linesearch.cpp: // rough estimate that'll decrease energy to 1/10 +min_linesearch.cpp: alpha_init = 0.1*fabs(eoriginal)/fdothall; +min_linesearch.cpp: // initialize aplha to 0.0 +min_linesearch.cpp: // compute increment to alpha, ensure that we +min_linesearch.cpp: // don't take the largest allowed alpha +min_linesearch.cpp: // first alpha that will actually apply +min_linesearch.cpp: // main linesearch loop +min_linesearch.cpp: // apply the increment to alpha, but first +min_linesearch.cpp: // check whether we are still in allowed search space +min_linesearch.cpp: // undo the increment +min_linesearch.cpp: // exit linesearch with success: have done +min_linesearch.cpp: // enough in allowed search space +min_linesearch.cpp: // move the system +min_linesearch.cpp: // '1' updates coordinates of atoms which cross PBC +min_linesearch.cpp: // compute the new directional derivative and also f_dot_f +min_linesearch.cpp: // energy change +min_linesearch.cpp: // if the function value increases measurably, +min_linesearch.cpp: // then we have to reduce alpha +min_linesearch.cpp: // check if the directional derivative has sufficiently decreased +min_linesearch.cpp: // NOTE: the fabs is essential here +min_linesearch.cpp: if ((!backtrack) && (fabs(fhCurr/fhoriginal) <= GRAD_TOL)) { +min_linesearch.cpp: // we are done +min_linesearch.cpp: // check if the directional derivative changed sign +min_linesearch.cpp: // but it's not small: we overshot the minima -- BACKTRACK +min_linesearch.cpp: // backtrack by undoing step and choosing a new alpha +min_linesearch.cpp: // move back +min_linesearch.cpp: // choose new alpha +min_linesearch.cpp: // if the force changed sign, linearize force and +min_linesearch.cpp: // solve for new alpha_del +min_linesearch.cpp: alpha_del *= fhPrev/(fhPrev - fhCurr); +min_linesearch.cpp: // force didn't change sign but only energy increased, +min_linesearch.cpp: // we overshot a minimum which is very close to a maxima +min_linesearch.cpp: // (or there is an inflection point) +min_linesearch.cpp: // new alpha_del should be much smaller +min_linesearch.cpp: // since we moved back ... +min_linesearch.cpp: // if new move is too small then we have failed; +min_linesearch.cpp: // exit with 'failed_linesearch' +min_linesearch.cpp: // undo all line minization moves +min_linesearch.cpp: // get a new alpha by linearizing force and start over +min_linesearch.cpp: // avoids problems near an energy inflection point +min_linesearch.cpp: boostFactor = fhCurr/(fhPrev - fhCurr); +min_linesearch.cpp: // don't want to boost too much +min_linesearch.cpp:/* ---------------------------------------------------------------------- */ +min_linesearch.cpp: // reset to starting point +min_linesearch.cpp: // step forward along h +min_linesearch.cpp: // compute and return new energy +min_linesearch.cpp:/* ---------------------------------------------------------------------- */ +min_linesearch.cpp:// compute projection of force on: itself and the search direction +min_linesearch.cpp: // compute new fh, alpha, delfh +min_linesearch.cpp: ff /= atom->natoms; +min_linesearch.cpp: fh /= atom->natoms; +min_quickmin.cpp:/* ---------------------------------------------------------------------- +min_quickmin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +min_quickmin.cpp: http://lammps.sandia.gov, Sandia National Laboratories +min_quickmin.cpp:------------------------------------------------------------------------- */ +min_quickmin.cpp:// EPS_ENERGY = minimum normalization for energy tolerance +min_quickmin.cpp:/* ---------------------------------------------------------------------- */ +min_quickmin.cpp:/* ---------------------------------------------------------------------- */ +min_quickmin.cpp:/* ---------------------------------------------------------------------- */ +min_quickmin.cpp:/* ---------------------------------------------------------------------- +min_quickmin.cpp:------------------------------------------------------------------------- */ +min_quickmin.cpp: // atomic dof +min_quickmin.cpp:/* ---------------------------------------------------------------------- +min_quickmin.cpp:------------------------------------------------------------------------- */ +min_quickmin.cpp: // zero velocity if anti-parallel to force +min_quickmin.cpp: // else project velocity in direction of force +min_quickmin.cpp: // sum vdotf over replicas, if necessary +min_quickmin.cpp: // this communicator would be invalid for multiprocess replicas +min_quickmin.cpp: // sum fdotf over replicas, if necessary +min_quickmin.cpp: // this communicator would be invalid for multiprocess replicas +min_quickmin.cpp: else scale = vdotfall/fdotfall; +min_quickmin.cpp: // limit timestep so no particle moves further than dmax +min_quickmin.cpp: if (dtvone*vmax > dmax) dtvone = dmax/vmax; +min_quickmin.cpp: // min dtv over replicas, if necessary +min_quickmin.cpp: // this communicator would be invalid for multiprocess replicas +min_quickmin.cpp: // Euler integration step +min_quickmin.cpp: dtfm = dtf / rmass[i]; +min_quickmin.cpp: dtfm = dtf / mass[type[i]]; +min_quickmin.cpp: // energy tolerance criterion +min_quickmin.cpp: // only check after DELAYSTEP elapsed since velocties reset to 0 +min_quickmin.cpp: // sync across replicas if running multi-replica minimization +min_quickmin.cpp: // force tolerance criterion +min_quickmin.cpp: // sync across replicas if running multi-replica minimization +min_quickmin.cpp: // output for thermo, dump, restart files +min_sd.cpp:/* ---------------------------------------------------------------------- +min_sd.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +min_sd.cpp: http://lammps.sandia.gov, Sandia National Laboratories +min_sd.cpp:------------------------------------------------------------------------- */ +min_sd.cpp:// EPS_ENERGY = minimum normalization for energy tolerance +min_sd.cpp:/* ---------------------------------------------------------------------- */ +min_sd.cpp:/* ---------------------------------------------------------------------- +min_sd.cpp:------------------------------------------------------------------------- */ +min_sd.cpp: // initialize working vectors +min_sd.cpp: // line minimization along h from current position x +min_sd.cpp: // h = downhill gradient direction +min_sd.cpp: // function evaluation criterion +min_sd.cpp: // energy tolerance criterion +min_sd.cpp: // force tolerance criterion +min_sd.cpp: // set new search direction h to f = -Grad(x) +min_sd.cpp: // output for thermo, dump, restart files +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +modify.cpp: http://lammps.sandia.gov, Sandia National Laboratories +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:#define NEXCEPT 7 // change when add to exceptions in add_fix() +modify.cpp:/* ---------------------------------------------------------------------- */ +modify.cpp: // fill map with fixes listed in style_fix.h +modify.cpp: // fill map with computes listed in style_compute.h +modify.cpp:/* ---------------------------------------------------------------------- */ +modify.cpp: // delete all fixes +modify.cpp: // do it via delete_fix() so callbacks in Atom are also updated correctly +modify.cpp: // delete all computes +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp: // delete storage of restart info since it is not valid after 1st run +modify.cpp: // create lists of fixes to call at each stage of run +modify.cpp: // init each fix +modify.cpp: // not sure if now needs to come before compute init +modify.cpp: // used to b/c temperature computes called fix->dof() in their init, +modify.cpp: // and fix rigid required its own init before its dof() could be called, +modify.cpp: // but computes now do their DOF in setup() +modify.cpp: // set global flag if any fix has its restart_pbc flag set +modify.cpp: // create list of computes that store invocation times +modify.cpp: // init each compute +modify.cpp: // set invoked_scalar,vector,etc to -1 to force new run to re-compute them +modify.cpp: // add initial timestep to all computes that store invocation times +modify.cpp: // since any of them may be invoked by initial thermo +modify.cpp: // do not clear out invocation times stored within a compute, +modify.cpp: // b/c some may be holdovers from previous run, like for ave fixes +modify.cpp: // error if any fix or compute is using a dynamic group when not allowed +modify.cpp: // warn if any particle is time integrated more than once +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp: // compute setup needs to come before fix setup +modify.cpp: // b/c NH fixes need DOF of temperature computes +modify.cpp: // fix group setup() is special case since populates a dynamic group +modify.cpp: // needs to be done before temperature compute setup +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp: called by compute pe/atom +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp: minimizer energy/force evaluation, only for relevant fixes +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp: // cannot define fix before box exists unless style is in exception list +modify.cpp: // don't like this way of checking for exceptions by adding fixes to list, +modify.cpp: // but can't think of better way +modify.cpp: // too late if instantiate fix, then check flag set in fix constructor, +modify.cpp: // since some fixes access domain settings in their constructor +modify.cpp: // MUST change NEXCEPT above when add new fix to this list +modify.cpp: {"GPU","OMP","INTEL","property/atom","cmap","cmap3","rx"}; +modify.cpp: // check group ID +modify.cpp: // if fix ID exists: +modify.cpp: // set newflag = 0 so create new fix in same location in fix list +modify.cpp: // error if new style does not match old style +modify.cpp: // since can't replace it (all when-to-invoke ptrs would be invalid) +modify.cpp: // warn if new group != old group +modify.cpp: // delete old fix, but do not call update_callback(), +modify.cpp: // since will replace this fix and thus other fix locs will not change +modify.cpp: // set ptr to NULL in case new fix scans list of fixes, +modify.cpp: // e.g. scan will occur in add_callback() if called by new fix +modify.cpp: // if fix ID does not exist: +modify.cpp: // set newflag = 1 so create new fix +modify.cpp: // extend fix and fmask lists as necessary +modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix); +modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix2); +modify.cpp: // create the Fix +modify.cpp: // try first with suffix appended +modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix); +modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix2); +modify.cpp: // check if Fix is in restart_global list +modify.cpp: // if yes, pass state info to the Fix so it can reset itself +modify.cpp: // check if Fix is in restart_peratom list +modify.cpp: // if yes, loop over atoms so they can extract info from atom->extra array +modify.cpp: // increment nfix (if new) +modify.cpp: // set fix mask values +modify.cpp: // post_constructor() allows new fix to create other fixes +modify.cpp: // nfix increment comes first so that recursive call to add_fix within +modify.cpp: // post_constructor() will see updated nfix +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp: // lookup Fix ID +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp: // move other Fixes and fmask down in list one slot +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp: // error check +modify.cpp: // extend Compute list if necessary +modify.cpp: // create the Compute +modify.cpp: // try first with suffix appended +modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix); +modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix2); +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp: // lookup Compute ID +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp: // move other Computes down in list one slot +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp: // nfix_restart_global = # of restart entries with global state info +modify.cpp: // allocate space for each entry +modify.cpp: // read each entry and Bcast to all procs +modify.cpp: // each entry has id string, style string, chunk of state data +modify.cpp: // nfix_restart_peratom = # of restart entries with peratom info +modify.cpp: // allocate space for each entry +modify.cpp: // read each entry and Bcast to all procs +modify.cpp: // each entry has id string, style string, maxsize of one atom's data +modify.cpp: // set index = which set of extra data this fix represents +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +modify.cpp:/* ---------------------------------------------------------------------- +modify.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +molecule.cpp: http://lammps.sandia.gov, Sandia National Laboratories +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:#define SINERTIA 0.4 // moment of inertia prefactor for sphere +molecule.cpp:/* ---------------------------------------------------------------------- */ +molecule.cpp: // parse args until reach unknown arg (next file) +molecule.cpp: // last molecule if have scanned all args +molecule.cpp: // initialize all fields to empty +molecule.cpp: // scan file for sizes of all fields and allocate them +molecule.cpp: // read file again to populate all fields +molecule.cpp: // stats +molecule.cpp:/* ---------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: center[0] /= natoms; +molecule.cpp: center[1] /= natoms; +molecule.cpp: center[2] /= natoms; +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: com[0] /= masstotal; +molecule.cpp: com[1] /= masstotal; +molecule.cpp: com[2] /= masstotal; +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: // diagonalize inertia tensor for each body via Jacobi rotations +molecule.cpp: // inertia = 3 eigenvalues = principal moments of inertia +molecule.cpp: // evectors and exzy = 3 evectors = principal axes of rigid body +molecule.cpp: // if any principal moment < scaled EPSILON, set to 0.0 +molecule.cpp: // enforce 3 evectors as a right-handed coordinate system +molecule.cpp: // flip 3rd vector if needed +molecule.cpp: // create quaternion +molecule.cpp: // compute displacements in body frame defined by quat +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: // skip 1st line of file +molecule.cpp: // read header lines +molecule.cpp: // skip blank lines or lines that start with "#" +molecule.cpp: // stop when read an unrecognized line +molecule.cpp: // trim anything from '#' onward +molecule.cpp: // if line is blank, continue +molecule.cpp: // search line for header keywords and set corresponding variable +molecule.cpp: // error checks +molecule.cpp: // count = vector for tallying bonds,angles,etc per atom +molecule.cpp: // grab keyword and skip next line +molecule.cpp: // loop over sections of molecule file +molecule.cpp: // clean up +molecule.cpp: // error check +molecule.cpp: // auto-generate special bonds if needed and not in file +molecule.cpp: // set maxspecial on first pass, so allocate() has a size +molecule.cpp: // body particle must have natom = 1 +molecule.cpp: // set radius by having body class compute its own radius +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp: if flag = 0, just count bonds/atom +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: // bond_per_atom = max of count vector +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp: if flag = 0, just count angles/atom +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: // angle_per_atom = max of count vector +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp: if flag = 0, just count dihedrals/atom +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: // dihedral_per_atom = max of count vector +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp: if flag = 0, just count impropers/atom +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: // improper_per_atom = max of count vector +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: // 1-2 neighbors +molecule.cpp: // 1-3 neighbors with no duplicates +molecule.cpp: // 1-4 neighbors with no duplicates +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp: pflag = 0/1 for integer/double params +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: // check per-atom attributes of molecule +molecule.cpp: // warn if not a match +molecule.cpp: // for all atom styles, check nbondtype,etc +molecule.cpp: // for molecular atom styles, check bond_per_atom,etc + maxspecial +molecule.cpp: // do not check for atom style template, since nothing stored per atom +molecule.cpp: error->all(FLERR,"Molecule topology/atom exceeds system topology/atom"); +molecule.cpp: // warn if molecule topology defined but no special settings +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: // always allocate num_bond,num_angle,etc and special+nspecial +molecule.cpp: // even if not in molecule file, initialize to 0 +molecule.cpp: // this is so methods that use these arrays don't have to check they exist +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp: // read upto non-blank line plus 1 following line +molecule.cpp: // eof is set to 1 if any read hits end-of-file +molecule.cpp: // if eof, set keyword empty and return +molecule.cpp: // bcast keyword line to all procs +molecule.cpp: // copy non-whitespace portion of line into keyword +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* ---------------------------------------------------------------------- +molecule.cpp:------------------------------------------------------------------------- */ +molecule.cpp:/* +molecule.cpp:*/ +nbin.cpp:/* ---------------------------------------------------------------------- +nbin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nbin.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nbin.cpp:------------------------------------------------------------------------- */ +nbin.cpp:/* ---------------------------------------------------------------------- */ +nbin.cpp: // geometry settings +nbin.cpp:/* ---------------------------------------------------------------------- */ +nbin.cpp:/* ---------------------------------------------------------------------- */ +nbin.cpp:/* ---------------------------------------------------------------------- +nbin.cpp:------------------------------------------------------------------------- */ +nbin.cpp: // overwrite Neighbor cutoff with custom value set by requestor +nbin.cpp: // only works for style = BIN (checked by Neighbor class) +nbin.cpp:/* ---------------------------------------------------------------------- +nbin.cpp:------------------------------------------------------------------------- */ +nbin.cpp: // binhead = per-bin vector, mbins in length +nbin.cpp: // add 1 bin for USER-INTEL package +nbin.cpp: // bins = per-atom vector +nbin.cpp:/* ---------------------------------------------------------------------- +nbin.cpp: take special care to insure ghosts are in correct bins even w/ roundoff +nbin.cpp:------------------------------------------------------------------------- */ +nbin.cpp:/* ---------------------------------------------------------------------- */ +nbin_standard.cpp:/* ---------------------------------------------------------------------- +nbin_standard.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nbin_standard.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nbin_standard.cpp:------------------------------------------------------------------------- */ +nbin_standard.cpp:enum{NSQ,BIN,MULTI}; // also in Neighbor +nbin_standard.cpp:/* ---------------------------------------------------------------------- */ +nbin_standard.cpp:/* ---------------------------------------------------------------------- +nbin_standard.cpp: binsize = 1/2 of cutoff is roughly optimal +nbin_standard.cpp:------------------------------------------------------------------------- */ +nbin_standard.cpp: // bbox = size of bbox of entire domain +nbin_standard.cpp: // bsubbox lo/hi = bounding box of my subdomain extended by comm->cutghost +nbin_standard.cpp: // for triclinic: +nbin_standard.cpp: // bbox bounds all 8 corners of tilted box +nbin_standard.cpp: // subdomain is in lamda coords +nbin_standard.cpp: // include dimension-dependent extension via comm->cutghost +nbin_standard.cpp: // domain->bbox() converts lamda extent to box coords and computes bbox +nbin_standard.cpp: // optimal bin size is roughly 1/2 the cutoff +nbin_standard.cpp: // for BIN style, binsize = 1/2 of max neighbor cutoff +nbin_standard.cpp: // for MULTI style, binsize = 1/2 of min neighbor cutoff +nbin_standard.cpp: // special case of all cutoffs = 0.0, binsize = box size +nbin_standard.cpp: double binsizeinv = 1.0/binsize_optimal; +nbin_standard.cpp: // test for too many global bins in any dimension due to huge global domain +nbin_standard.cpp: // create actual bins +nbin_standard.cpp: // always have one bin even if cutoff > bbox +nbin_standard.cpp: // for 2d, nbinz = 1 +nbin_standard.cpp: // compute actual bin size for nbins to fit into box exactly +nbin_standard.cpp: // error if actual bin size << cutoff, since will create a zillion bins +nbin_standard.cpp: // this happens when nbin = 1 and box size << cutoff +nbin_standard.cpp: // typically due to non-periodic, flat system in a particular dim +nbin_standard.cpp: // in that extreme case, should use NSQ not BIN neighbor style +nbin_standard.cpp: binsizex = bbox[0]/nbinx; +nbin_standard.cpp: binsizey = bbox[1]/nbiny; +nbin_standard.cpp: binsizez = bbox[2]/nbinz; +nbin_standard.cpp: bininvx = 1.0 / binsizex; +nbin_standard.cpp: bininvy = 1.0 / binsizey; +nbin_standard.cpp: bininvz = 1.0 / binsizez; +nbin_standard.cpp: // mbinlo/hi = lowest and highest global bins my ghost atoms could be in +nbin_standard.cpp: // coord = lowest and highest values of coords for my ghost atoms +nbin_standard.cpp: // static_cast(-1.5) = -1, so subract additional -1 +nbin_standard.cpp: // add in SMALL for round-off safety +nbin_standard.cpp: // extend bins by 1 to insure stencil extent is included +nbin_standard.cpp: // for 2d, only 1 bin in z +nbin_standard.cpp:/* ---------------------------------------------------------------------- +nbin_standard.cpp:------------------------------------------------------------------------- */ +nbin_standard.cpp: // bin in reverse order so linked list will be in forward order +nbin_standard.cpp: // also puts ghost atoms at end of list, which is necessary +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +neighbor.cpp: http://lammps.sandia.gov, Sandia National Laboratories +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:enum{NSQ,BIN,MULTI}; // also in NBin, NeighList, NStencil +neighbor.cpp://#define NEIGH_LIST_DEBUG 1 +neighbor.cpp:/* ---------------------------------------------------------------------- */ +neighbor.cpp: // pairwise neighbor lists and associated data structs +neighbor.cpp: // topology lists +neighbor.cpp: // coords at last neighboring +neighbor.cpp: // pair exclusion list info +neighbor.cpp: // Kokkos setting +neighbor.cpp:/* ---------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- */ +neighbor.cpp: // error check +neighbor.cpp: // ------------------------------------------------------------------ +neighbor.cpp: // settings +neighbor.cpp: // bbox lo/hi ptrs = bounding box of entire domain, stored by Domain +neighbor.cpp: // set neighbor cutoffs (force cutoff + skin) +neighbor.cpp: // trigger determines when atoms migrate and neighbor lists are rebuilt +neighbor.cpp: // needs to be non-zero for migration distance check +neighbor.cpp: // even if pair = NULL and no neighbor lists are used +neighbor.cpp: // cutneigh = force cutoff + skin if cutforce > 0, else cutneigh = 0 +neighbor.cpp: // cutneighghost = pair cutghost if it requests it, else same as cutneigh +neighbor.cpp: // rRESPA cutoffs +neighbor.cpp: // fixchecklist = other classes that can induce reneighboring in decide() +neighbor.cpp: // set special_flag for 1-2, 1-3, 1-4 neighbors +neighbor.cpp: // flag[0] is not used, flag[1] = 1-2, flag[2] = 1-3, flag[3] = 1-4 +neighbor.cpp: // flag = 0 if both LJ/Coulomb special values are 0.0 +neighbor.cpp: // flag = 1 if both LJ/Coulomb special values are 1.0 +neighbor.cpp: // flag = 2 otherwise or if KSpace solver is enabled +neighbor.cpp: // pairwise portion of KSpace solver uses all 1-2,1-3,1-4 neighbors +neighbor.cpp: // or selected Coulomb-approixmation pair styles require it +neighbor.cpp: if (force->kspace || force->pair_match("coul/wolf",0) || +neighbor.cpp: force->pair_match("coul/dsf",0) || force->pair_match("thole",0)) +neighbor.cpp: // maxwt = max multiplicative factor on atom indices stored in neigh list +neighbor.cpp: // ------------------------------------------------------------------ +neighbor.cpp: // xhold array +neighbor.cpp: // free if not needed for this run +neighbor.cpp: // first time allocation +neighbor.cpp: // ------------------------------------------------------------------ +neighbor.cpp: // exclusion lists +neighbor.cpp: // depend on type, group, molecule settings from neigh_modify +neighbor.cpp: // warn if exclusions used with KSpace solver +neighbor.cpp: // ------------------------------------------------------------------ +neighbor.cpp: // create pairwise lists +neighbor.cpp: // one-time call to init_styles() to scan style files and setup +neighbor.cpp: // init_pair() creates auxiliary classes: NBin, NStencil, NPair +neighbor.cpp: // invoke copy_neighbor_info() in Bin,Stencil,Pair classes +neighbor.cpp: // copied once per run in case any cutoff, exclusion, special info changed +neighbor.cpp: // can now delete requests so next run can make new ones +neighbor.cpp: // print_pairwise_info() made use of requests +neighbor.cpp: // set of NeighLists now stores all needed info +neighbor.cpp: // ------------------------------------------------------------------ +neighbor.cpp: // create topology lists +neighbor.cpp: // instantiated topo styles can change from run to run +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp: cannot do this in constructor, b/c too early to instantiate classes +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // extract info from NBin classes listed in style_nbin.h +neighbor.cpp: // extract info from NStencil classes listed in style_nstencil.h +neighbor.cpp: // extract info from NPair classes listed in style_npair.h +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // test if pairwise lists need to be re-created +neighbor.cpp: // no need to re-create if: +neighbor.cpp: // neigh style, triclinic, pgsize, oneatom have not changed +neighbor.cpp: // current requests = old requests +neighbor.cpp: // so just return: +neighbor.cpp: // delete requests so next run can make new ones +neighbor.cpp: // current set of NeighLists already stores all needed info +neighbor.cpp: // requests are compared via identical() before: +neighbor.cpp: // any requests are morphed using logic below +neighbor.cpp: // any requests are added below, e.g. as parents of pair hybrid skip lists +neighbor.cpp: // copy them via requests_new2old() BEFORE any changes made to requests +neighbor.cpp: // necessary b/c morphs can change requestor settings (see comment below) +neighbor.cpp: // delete old lists since creating new ones +neighbor.cpp: // morph requests in various ways +neighbor.cpp: // purpose is to avoid duplicate or inefficient builds +neighbor.cpp: // may add new requests if a needed request to derive from does not exist +neighbor.cpp: // methods: +neighbor.cpp: // (1) other = point history and rRESPA lists at their partner lists +neighbor.cpp: // (2) skip = create any new non-skip lists needed by pair hybrid skip lists +neighbor.cpp: // (3) granular = adjust parent and skip lists for granular onesided usage +neighbor.cpp: // (4) h/f = pair up any matching half/full lists +neighbor.cpp: // (5) copy = convert as many lists as possible to copy lists +neighbor.cpp: // order of morph methods matters: +neighbor.cpp: // (1) before (2), b/c (2) needs to know history partner pairings +neighbor.cpp: // (2) after (1), b/c (2) may also need to create new history lists +neighbor.cpp: // (3) after (2), b/c it adjusts lists created by (2) +neighbor.cpp: // (4) after (2) and (3), +neighbor.cpp: // b/c (2) may create new full lists, (3) may change them +neighbor.cpp: // (5) last, after all lists are finalized, so all possible copies found +neighbor.cpp: morph_granular(); // this method can change flags set by requestor +neighbor.cpp: // create new lists, one per request including added requests +neighbor.cpp: // wait to allocate initial pages until copy lists are detected +neighbor.cpp: // NOTE: can I allocate now, instead of down below? +neighbor.cpp: // allocate new lists +neighbor.cpp: // pass list ptr back to requestor (except for Command class) +neighbor.cpp: // only for original requests, not ones added by Neighbor class +neighbor.cpp: // invoke post_constructor() for all lists +neighbor.cpp: // copies info from requests to lists, sets ptrs to related lists +neighbor.cpp: // assign Bin,Stencil,Pair style to each list +neighbor.cpp: // instantiate unique Bin,Stencil classes in neigh_bin & neigh_stencil vecs +neighbor.cpp: // unique = only one of its style, or request unique flag set (custom cutoff) +neighbor.cpp: // instantiate one Pair class per list in neigh_pair vec +neighbor.cpp: // allocate initial pages for each list, except if copy flag set +neighbor.cpp: // allocate dnum vector of zeroes if set +neighbor.cpp: // first-time allocation of per-atom data for lists that are built and store +neighbor.cpp: // lists that are not built: granhistory, respa inner/middle (no neigh_pair) +neighbor.cpp: // lists that do not store: copy +neighbor.cpp: // use atom->nmax for both grow() args +neighbor.cpp: // i.e. grow first time to expanded size to avoid future reallocs +neighbor.cpp: // also Kokkos list initialization +neighbor.cpp: // plist = indices of perpetual NPair classes +neighbor.cpp: // perpetual = non-occasional, re-built at every reneighboring +neighbor.cpp: // slist = indices of perpetual NStencil classes +neighbor.cpp: // perpetual = used by any perpetual NPair class +neighbor.cpp: // reorder plist vector if necessary +neighbor.cpp: // relevant for lists that are derived from a parent list: +neighbor.cpp: // half-full,copy,skip +neighbor.cpp: // the child index must appear in plist after the parent index +neighbor.cpp: // swap two indices within plist when dependency is mis-ordered +neighbor.cpp: // start double loop check again whenever a swap is made +neighbor.cpp: // done when entire double loop test results in no swaps +neighbor.cpp: int tmp = plist[i]; // swap I,J indices +neighbor.cpp: // debug output +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // if history, point this list and partner list at each other +neighbor.cpp: // if respaouter, point all associated rRESPA lists at each other +neighbor.cpp: // if cut flag set by requestor, set unique flag +neighbor.cpp: // this forces Pair,Stencil,Bin styles to be instantiated separately +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // only processing skip lists +neighbor.cpp: // these lists are created other ways, no need for skipping +neighbor.cpp: // halffull list and its full parent may both skip, +neighbor.cpp: // but are checked to insure matching skip info +neighbor.cpp: // check all other lists +neighbor.cpp: // can only skip from a perpetual non-skip list +neighbor.cpp: // both lists must be half, or both full +neighbor.cpp: // both lists must be newton on, or both newton off +neighbor.cpp: // IJ newton = 1 for newton on, 2 for newton off +neighbor.cpp: // these flags must be same, +neighbor.cpp: // else 2 lists do not store same pairs +neighbor.cpp: // or their data structures are different +neighbor.cpp: // this includes custom cutoff set by requestor +neighbor.cpp: // no need to check respaouter b/c it stores same pairs +neighbor.cpp: // no need to check dnum b/c only set for history +neighbor.cpp: // NOTE: need check for 2 Kokkos flags? +neighbor.cpp: // 2 lists are a match +neighbor.cpp: // if matching list exists, point to it +neighbor.cpp: // else create a new identical list except non-skip +neighbor.cpp: // for new list, set neigh = 1, skip = 0, no skip vec/array, +neighbor.cpp: // copy unique flag (since copy_request() will not do it) +neighbor.cpp: // note: parents of skip lists do not have associated history list +neighbor.cpp: // b/c child skip lists store their own history info +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp: adjust newton/oneside parent settings if children require onesided skipping +neighbor.cpp: this is needed because line/gran and tri/gran pair styles +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // only examine NeighRequests added by morph_skip() +neighbor.cpp: // only those with size attribute for granular systems +neighbor.cpp: // check children of this list +neighbor.cpp: // only consider JRQ pair, size lists that skip from Irq list +neighbor.cpp: // onesided = -1 if no children +neighbor.cpp: // onesided = 0/1 = child granonesided value if same for all children +neighbor.cpp: // onesided = 2 if children have different granonesided values +neighbor.cpp: // if onesided = 2, parent has children with both granonesided = 0/1 +neighbor.cpp: // force parent newton off (newton = 2) to enable onesided skip by child +neighbor.cpp: // set parent granonesided = 0, so it stores all neighs in usual manner +neighbor.cpp: // set off2on = 1 for all children, since they expect newton on lists +neighbor.cpp: // this is b/c granonesided only set by line/gran and tri/gran which +neighbor.cpp: // both require system newton on +neighbor.cpp: // only consider JRQ pair, size lists that skip from Irq list +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // only processing half lists +neighbor.cpp: // Kokkos doesn't yet support half from full +neighbor.cpp: // these lists are created other ways, no need for halffull +neighbor.cpp: // do want to process skip lists +neighbor.cpp: // check all other lists +neighbor.cpp: // can only derive from a perpetual full list +neighbor.cpp: // newton setting of derived list does not matter +neighbor.cpp: // these flags must be same, +neighbor.cpp: // else 2 lists do not store same pairs +neighbor.cpp: // or their data structures are different +neighbor.cpp: // this includes custom cutoff set by requestor +neighbor.cpp: // no need to check respaouter b/c it stores same pairs +neighbor.cpp: // no need to check dnum b/c only set for history +neighbor.cpp: // skip flag must be same +neighbor.cpp: // if both are skip lists, skip info must match +neighbor.cpp: // 2 lists are a match +neighbor.cpp: // if matching list exists, point to it +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // this list is already a copy list due to another morph method +neighbor.cpp: // these lists are created other ways, no need to copy +neighbor.cpp: // skip lists are eligible to become a copy list +neighbor.cpp: // check all other lists +neighbor.cpp: // other list is already copied from this one +neighbor.cpp: // other list (jrq) to copy from must be perpetual +neighbor.cpp: // list that becomes a copy list (irq) can be perpetual or occasional +neighbor.cpp: // if both lists are perpetual, require j < i +neighbor.cpp: // to prevent circular dependence with 3 or more copies of a list +neighbor.cpp: // both lists must be half, or both full +neighbor.cpp: // both lists must be newton on, or both newton off +neighbor.cpp: // IJ newton = 1 for newton on, 2 for newton off +neighbor.cpp: // ok for non-ghost list to copy from ghost list, but not vice versa +neighbor.cpp: // these flags must be same, +neighbor.cpp: // else 2 lists do not store same pairs +neighbor.cpp: // or their data structures are different +neighbor.cpp: // this includes custom cutoff set by requestor +neighbor.cpp: // no need to check respaouter b/c it stores same pairs +neighbor.cpp: // no need to check omp b/c it stores same pairs +neighbor.cpp: // no need to check dnum b/c only set for history +neighbor.cpp: // NOTE: need check for 2 Kokkos flags? +neighbor.cpp: // skip flag must be same +neighbor.cpp: // if both are skip lists, skip info must match +neighbor.cpp: // 2 lists are a match +neighbor.cpp: // turn list I into a copy of list J +neighbor.cpp: // do not copy a list from another copy list, but from its parent list +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // set flags that determine which topology neighbor classes to use +neighbor.cpp: // these settings could change from run to run, depending on fixes defined +neighbor.cpp: // bonds,etc can only be broken for atom->molecular = 1, not 2 +neighbor.cpp: // SHAKE sets bonds and angles negative +neighbor.cpp: // gcmc sets all bonds, angles, etc negative +neighbor.cpp: // bond_quartic sets bonds to 0 +neighbor.cpp: // delete_bonds sets all interactions negative +neighbor.cpp: // sync on/off settings across all procs +neighbor.cpp: // instantiate NTopo classes +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: fprintf(out," max neighbors/atom: %d, page size: %d\n", +neighbor.cpp: ceil(bbox[0]/binsize), ceil(bbox[1]/binsize), +neighbor.cpp: ceil(bbox[2]/binsize)); +neighbor.cpp: "perpetual/occasional/extra = %d %d %d\n", +neighbor.cpp: // order these to get single output of most relevant +neighbor.cpp: fprintf(out,", half/full from (%d)",rq->halffulllist+1); +neighbor.cpp: // list of neigh list attributes +neighbor.cpp: /* +neighbor.cpp: */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // no binning needed +neighbor.cpp: // use request settings to match exactly one NBin class mask +neighbor.cpp: // checks are bitwise using NeighConst bit masks +neighbor.cpp: // require match of these request flags and mask bits +neighbor.cpp: // (!A != !B) is effectively a logical xor +neighbor.cpp: // error return if matched none +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // no stencil creation needed +neighbor.cpp: // convert newton request to newtflag = on or off +neighbor.cpp: //printf("STENCIL RQ FLAGS: hff %d %d n %d g %d s %d newtflag %d\n", +neighbor.cpp: // rq->half,rq->full,rq->newton,rq->ghost,rq->ssa, +neighbor.cpp: // newtflag); +neighbor.cpp: // use request and system settings to match exactly one NStencil class mask +neighbor.cpp: // checks are bitwise using NeighConst bit masks +neighbor.cpp: //printf("III %d: half %d full %d newton %d newtoff %d ghost %d ssa %d\n", +neighbor.cpp: // i,mask & NS_HALF,mask & NS_FULL,mask & NS_NEWTON, +neighbor.cpp: // mask & NS_NEWTOFF,mask & NS_GHOST,mask & NS_SSA); +neighbor.cpp: // exactly one of half or full is set and must match +neighbor.cpp: // newtflag is on or off and must match +neighbor.cpp: // require match of these request flags and mask bits +neighbor.cpp: // (!A != !B) is effectively a logical xor +neighbor.cpp: // neighbor style is BIN or MULTI and must match +neighbor.cpp: // dimension is 2 or 3 and must match +neighbor.cpp: // domain triclinic flag is on or off and must match +neighbor.cpp: // error return if matched none +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // no neighbor list build performed +neighbor.cpp: // error check for includegroup with ghost neighbor request +neighbor.cpp: // convert newton request to newtflag = on or off +neighbor.cpp: //printf("PAIR RQ FLAGS: hf %d %d n %d g %d sz %d gos %d r %d b %d o %d i %d " +neighbor.cpp: // "kk %d %d ss %d dn %d sk %d cp %d hf %d oo %d\n", +neighbor.cpp: // rq->half,rq->full,rq->newton,rq->ghost,rq->size, +neighbor.cpp: // rq->granonesided,rq->respaouter,rq->bond,rq->omp,rq->intel, +neighbor.cpp: // rq->kokkos_host,rq->kokkos_device,rq->ssa,rq->dnum, +neighbor.cpp: // rq->skip,rq->copy,rq->halffull,rq->off2on); +neighbor.cpp: // use request and system settings to match exactly one NPair class mask +neighbor.cpp: // checks are bitwise using NeighConst bit masks +neighbor.cpp: //printf(" PAIR NAMES i %d %d name %s mask %d\n",i,nrequest, +neighbor.cpp: // pairnames[i],pairmasks[i]); +neighbor.cpp: // if copy request, no further checks needed, just return or continue +neighbor.cpp: // Kokkos device/host flags must also match in order to copy +neighbor.cpp: // exactly one of half or full is set and must match +neighbor.cpp: // newtflag is on or off and must match +neighbor.cpp: // if molecular on, do not match ATOMONLY (b/c a MOLONLY Npair exists) +neighbor.cpp: // if molecular off, do not match MOLONLY (b/c an ATOMONLY Npair exists) +neighbor.cpp: // require match of these request flags and mask bits +neighbor.cpp: // (!A != !B) is effectively a logical xor +neighbor.cpp: // neighbor style is one of NSQ,BIN,MULTI and must match +neighbor.cpp: // domain triclinic flag is on or off and must match +neighbor.cpp: // error return if matched none +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp: called before run and every reneighbor if box size/shape changes +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // invoke setup_bins() for all NBin +neighbor.cpp: // actual binning is performed in build() +neighbor.cpp: // invoke create_setup() and create() for all perpetual NStencil +neighbor.cpp: // same ops performed for occasional lists in build_one() +neighbor.cpp:/* ---------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp: new trigger = 1/2 of reduced skin distance +neighbor.cpp: for orthogonal box, only need 2 lo/hi corners +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // check that using special bond flags will not overflow neigh lists +neighbor.cpp: // store current atom positions and box size if needed +neighbor.cpp: // bin atoms for all NBin instances +neighbor.cpp: // not just NBin associated with perpetual lists +neighbor.cpp: // b/c cannot wait to bin occasional lists in build_one() call +neighbor.cpp: // if bin then, atoms may have moved outside of proc domain & bin extent, +neighbor.cpp: // leading to errors or even a crash +neighbor.cpp: // build pairwise lists for all perpetual NPair/NeighList +neighbor.cpp: // grow() with nlocal/nall args so that only realloc if have to +neighbor.cpp: // build topology lists for bonds/angles/etc +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp: copy their list info back to Neighbor for access by bond/angle/etc classes +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: // check if list structure is initialized +neighbor.cpp: // build_one() should never be invoked on a perpetual list +neighbor.cpp: // no need to build if already built since last re-neighbor +neighbor.cpp: // preflag is set by fix bond/create and fix bond/swap +neighbor.cpp: // b/c they invoke build_one() on same step neigh list is re-built, +neighbor.cpp: // but before re-build, so need to use ">" instead of ">=" +neighbor.cpp: // if this is copy list and parent is occasional list, +neighbor.cpp: // or this is halffull and parent is occasional list, +neighbor.cpp: // insure parent is current +neighbor.cpp: // create stencil if hasn't been created since last setup_bins() call +neighbor.cpp: // build the list +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp: } else if (strcmp(arg[iarg+1],"molecule/inter") == 0 || +neighbor.cpp: strcmp(arg[iarg+1],"molecule/intra") == 0) { +neighbor.cpp: if (strcmp(arg[iarg+1],"molecule/intra") == 0) +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neighbor.cpp:/* ---------------------------------------------------------------------- +neighbor.cpp:------------------------------------------------------------------------- */ +neigh_list.cpp:/* ---------------------------------------------------------------------- +neigh_list.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +neigh_list.cpp: http://lammps.sandia.gov, Sandia National Laboratories +neigh_list.cpp:------------------------------------------------------------------------- */ +neigh_list.cpp:enum{NSQ,BIN,MULTI}; // also in Neighbor +neigh_list.cpp:/* ---------------------------------------------------------------------- */ +neigh_list.cpp: // initializations +neigh_list.cpp: // defaults, but may be reset by post_constructor() +neigh_list.cpp: // ptrs +neigh_list.cpp: // Kokkos package +neigh_list.cpp: // USER-DPD package +neigh_list.cpp:/* ---------------------------------------------------------------------- */ +neigh_list.cpp:/* ---------------------------------------------------------------------- +neigh_list.cpp: cannot do this in constructor b/c not all NeighLists are allocated yet +neigh_list.cpp: respaouter -> set listinner/listmiddle for other rRESPA lists +neigh_list.cpp:------------------------------------------------------------------------- */ +neigh_list.cpp: // copy request settings used by list itself +neigh_list.cpp:/* ---------------------------------------------------------------------- */ +neigh_list.cpp:/* ---------------------------------------------------------------------- +neigh_list.cpp: grow per-atom data to allow for nlocal/nall atoms +neigh_list.cpp:------------------------------------------------------------------------- */ +neigh_list.cpp: // trigger grow() in children before possible return +neigh_list.cpp: // skip if data structs are already big enough +neigh_list.cpp:/* ---------------------------------------------------------------------- +neigh_list.cpp:------------------------------------------------------------------------- */ +neigh_list.cpp: printf("Neighbor list/request %d:\n",index); +neigh_list.cpp: printf(" %d = half/full\n",rq->halffull); +neigh_list.cpp: printf(" %d = history/partner\n",rq->history_partner); +neigh_list.cpp:/* ---------------------------------------------------------------------- +neigh_list.cpp:------------------------------------------------------------------------- */ +neigh_request.cpp:/* ---------------------------------------------------------------------- +neigh_request.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +neigh_request.cpp: http://lammps.sandia.gov, Sandia National Laboratories +neigh_request.cpp:------------------------------------------------------------------------- */ +neigh_request.cpp:/* ---------------------------------------------------------------------- */ +neigh_request.cpp: // default ID = 0 +neigh_request.cpp: // class user of list: default is pair request +neigh_request.cpp: // only one is set to 1 +neigh_request.cpp: // kind of list: default is half neighbor list +neigh_request.cpp: // only one is set to 1 +neigh_request.cpp: // attribute flags, mutiple can be set to 1 +neigh_request.cpp: // default is every reneighboring, not occasional +neigh_request.cpp: // default is use newton_pair setting in force +neigh_request.cpp: // default is no neighbors of ghosts +neigh_request.cpp: // default is use cutoffs, not size of particles +neigh_request.cpp: // default is no additional neighbor history info +neigh_request.cpp: // default is no one-sided sphere/surface interactions (when size = 1) +neigh_request.cpp: // default is neighbors of atoms, not bonds +neigh_request.cpp: // default is no multilevel rRESPA neighbors +neigh_request.cpp: // default is no OpenMP multi-threaded neighbor list build +neigh_request.cpp: // default is no Intel-specific neighbor list build +neigh_request.cpp: // default is no Kokkos neighbor list build +neigh_request.cpp: // default is no Shardlow Splitting Algorithm (SSA) neighbor list build +neigh_request.cpp: // default is no storage of auxiliary floating point values +neigh_request.cpp: // skip info, default is no skipping +neigh_request.cpp: // only set when command = 1; +neigh_request.cpp: // info set by Neighbor class when morphing original requests +neigh_request.cpp: // internal settings +neigh_request.cpp:/* ---------------------------------------------------------------------- */ +neigh_request.cpp:/* ---------------------------------------------------------------------- +neigh_request.cpp:------------------------------------------------------------------------- */ +neigh_request.cpp: // check for match of requestor_instance and instance counter +neigh_request.cpp: // prevents an old fix from being unfix/refix in same memory location +neigh_request.cpp: // stored in requestor, and thus appearing old, when really new +neigh_request.cpp: // only needed for classes with persistent neigh lists: Pair, Fix, Compute +neigh_request.cpp: // only compare settings made by requestors +neigh_request.cpp: // not settings made later by Neighbor class +neigh_request.cpp:/* ---------------------------------------------------------------------- +neigh_request.cpp:------------------------------------------------------------------------- */ +neigh_request.cpp:/* ---------------------------------------------------------------------- +neigh_request.cpp: skipflag = 1 to copy skip vector/array +neigh_request.cpp:------------------------------------------------------------------------- */ +npair_copy.cpp:/* ---------------------------------------------------------------------- +npair_copy.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_copy.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_copy.cpp:------------------------------------------------------------------------- */ +npair_copy.cpp:/* ---------------------------------------------------------------------- */ +npair_copy.cpp:/* ---------------------------------------------------------------------- +npair_copy.cpp:------------------------------------------------------------------------- */ +npair.cpp:/* ---------------------------------------------------------------------- +npair.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair.cpp:------------------------------------------------------------------------- */ +npair.cpp:/* ---------------------------------------------------------------------- */ +npair.cpp:/* ---------------------------------------------------------------------- */ +npair.cpp:/* ---------------------------------------------------------------------- */ +npair.cpp:/* ---------------------------------------------------------------------- +npair.cpp:------------------------------------------------------------------------- */ +npair.cpp: // general params +npair.cpp: // exclusion info +npair.cpp: // special info +npair.cpp: // overwrite per-type Neighbor cutoffs with custom value set by requestor +npair.cpp: // only works for style = BIN (checked by Neighbor class) +npair.cpp:/* ---------------------------------------------------------------------- +npair.cpp:------------------------------------------------------------------------- */ +npair.cpp:/* ---------------------------------------------------------------------- +npair.cpp:------------------------------------------------------------------------- */ +npair.cpp:/* ---------------------------------------------------------------------- +npair.cpp:------------------------------------------------------------------------- */ +npair.cpp: // set here, since build_setup() always called before build() +npair.cpp:/* ---------------------------------------------------------------------- +npair.cpp:------------------------------------------------------------------------- */ +npair.cpp: // intra-chain: exclude i-j pair if in same molecule +npair.cpp: // inter-chain: exclude i-j pair if in different molecules +npair.cpp:/* ---------------------------------------------------------------------- +npair.cpp: take special care to insure ghosts are in correct bins even w/ roundoff +npair.cpp:------------------------------------------------------------------------- */ +npair.cpp:/* ---------------------------------------------------------------------- +npair.cpp:------------------------------------------------------------------------- */ +npair_full_bin_atomonly.cpp:/* ---------------------------------------------------------------------- +npair_full_bin_atomonly.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_full_bin_atomonly.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_full_bin_atomonly.cpp:------------------------------------------------------------------------- */ +npair_full_bin_atomonly.cpp:/* ---------------------------------------------------------------------- */ +npair_full_bin_atomonly.cpp:/* ---------------------------------------------------------------------- +npair_full_bin_atomonly.cpp:------------------------------------------------------------------------- */ +npair_full_bin_atomonly.cpp: // loop over all atoms in surrounding bins in stencil including self +npair_full_bin_atomonly.cpp: // skip i = j +npair_full_bin.cpp:/* ---------------------------------------------------------------------- +npair_full_bin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_full_bin.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_full_bin.cpp:------------------------------------------------------------------------- */ +npair_full_bin.cpp:/* ---------------------------------------------------------------------- */ +npair_full_bin.cpp:/* ---------------------------------------------------------------------- +npair_full_bin.cpp:------------------------------------------------------------------------- */ +npair_full_bin.cpp: // loop over all atoms in surrounding bins in stencil including self +npair_full_bin.cpp: // skip i = j +npair_full_bin_ghost.cpp:/* ---------------------------------------------------------------------- +npair_full_bin_ghost.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_full_bin_ghost.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_full_bin_ghost.cpp:------------------------------------------------------------------------- */ +npair_full_bin_ghost.cpp:/* ---------------------------------------------------------------------- */ +npair_full_bin_ghost.cpp:/* ---------------------------------------------------------------------- +npair_full_bin_ghost.cpp:------------------------------------------------------------------------- */ +npair_full_bin_ghost.cpp: // loop over owned & ghost atoms, storing neighbors +npair_full_bin_ghost.cpp: // loop over all atoms in surrounding bins in stencil including self +npair_full_bin_ghost.cpp: // when i is a ghost atom, must check if stencil bin is out of bounds +npair_full_bin_ghost.cpp: // skip i = j +npair_full_bin_ghost.cpp: // no molecular test when i = ghost atom +npair_full_multi.cpp:/* ---------------------------------------------------------------------- +npair_full_multi.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_full_multi.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_full_multi.cpp:------------------------------------------------------------------------- */ +npair_full_multi.cpp:/* ---------------------------------------------------------------------- */ +npair_full_multi.cpp:/* ---------------------------------------------------------------------- +npair_full_multi.cpp:------------------------------------------------------------------------- */ +npair_full_multi.cpp: // loop over all atoms in other bins in stencil, including self +npair_full_multi.cpp: // skip if i,j neighbor cutoff is less than bin distance +npair_full_multi.cpp: // skip i = j +npair_full_nsq.cpp:/* ---------------------------------------------------------------------- +npair_full_nsq.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_full_nsq.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_full_nsq.cpp:------------------------------------------------------------------------- */ +npair_full_nsq.cpp:/* ---------------------------------------------------------------------- */ +npair_full_nsq.cpp:/* ---------------------------------------------------------------------- +npair_full_nsq.cpp:------------------------------------------------------------------------- */ +npair_full_nsq.cpp: // loop over all atoms, owned and ghost +npair_full_nsq.cpp: // skip i = j +npair_full_nsq_ghost.cpp:/* ---------------------------------------------------------------------- +npair_full_nsq_ghost.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_full_nsq_ghost.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_full_nsq_ghost.cpp:------------------------------------------------------------------------- */ +npair_full_nsq_ghost.cpp:/* ---------------------------------------------------------------------- */ +npair_full_nsq_ghost.cpp:/* ---------------------------------------------------------------------- +npair_full_nsq_ghost.cpp:------------------------------------------------------------------------- */ +npair_full_nsq_ghost.cpp: // loop over owned & ghost atoms, storing neighbors +npair_full_nsq_ghost.cpp: // loop over all atoms, owned and ghost +npair_full_nsq_ghost.cpp: // skip i = j +npair_full_nsq_ghost.cpp: // no molecular test when i = ghost atom +npair_half_bin_atomonly_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_bin_atomonly_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_bin_atomonly_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_bin_atomonly_newton.cpp:------------------------------------------------------------------------- */ +npair_half_bin_atomonly_newton.cpp:/* ---------------------------------------------------------------------- */ +npair_half_bin_atomonly_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_bin_atomonly_newton.cpp:------------------------------------------------------------------------- */ +npair_half_bin_atomonly_newton.cpp: // loop over rest of atoms in i's bin, ghosts are at end of linked list +npair_half_bin_atomonly_newton.cpp: // if j is owned atom, store it, since j is beyond i in linked list +npair_half_bin_atomonly_newton.cpp: // if j is ghost, only store if j coords are "above and to the right" of i +npair_half_bin_atomonly_newton.cpp: // loop over all atoms in other bins in stencil, store every pair +npair_half_bin_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_bin_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_bin_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_bin_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_bin_newtoff.cpp:/* ---------------------------------------------------------------------- */ +npair_half_bin_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_bin_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_bin_newtoff.cpp: // loop over all atoms in other bins in stencil including self +npair_half_bin_newtoff.cpp: // only store pair if i < j +npair_half_bin_newtoff.cpp: // stores own/own pairs only once +npair_half_bin_newtoff.cpp: // stores own/ghost pairs on both procs +npair_half_bin_newtoff.cpp: // OLD: if (which >= 0) neighptr[n++] = j ^ (which << SBBITS); +npair_half_bin_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- +npair_half_bin_newtoff_ghost.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_bin_newtoff_ghost.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_bin_newtoff_ghost.cpp:------------------------------------------------------------------------- */ +npair_half_bin_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- */ +npair_half_bin_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- +npair_half_bin_newtoff_ghost.cpp:------------------------------------------------------------------------- */ +npair_half_bin_newtoff_ghost.cpp: // loop over all atoms in other bins in stencil including self +npair_half_bin_newtoff_ghost.cpp: // when i is a ghost atom, must check if stencil bin is out of bounds +npair_half_bin_newtoff_ghost.cpp: // only store pair if i < j +npair_half_bin_newtoff_ghost.cpp: // stores own/own pairs only once +npair_half_bin_newtoff_ghost.cpp: // stores own/ghost pairs with owned atom only, on both procs +npair_half_bin_newtoff_ghost.cpp: // stores ghost/ghost pairs only once +npair_half_bin_newtoff_ghost.cpp: // no molecular test when i = ghost atom +npair_half_bin_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_bin_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_bin_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_bin_newton.cpp:------------------------------------------------------------------------- */ +npair_half_bin_newton.cpp:/* ---------------------------------------------------------------------- */ +npair_half_bin_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_bin_newton.cpp:------------------------------------------------------------------------- */ +npair_half_bin_newton.cpp: // loop over rest of atoms in i's bin, ghosts are at end of linked list +npair_half_bin_newton.cpp: // if j is owned atom, store it, since j is beyond i in linked list +npair_half_bin_newton.cpp: // if j is ghost, only store if j coords are "above and to the right" of i +npair_half_bin_newton.cpp: // OLD: if (which >= 0) neighptr[n++] = j ^ (which << SBBITS); +npair_half_bin_newton.cpp: // loop over all atoms in other bins in stencil, store every pair +npair_half_bin_newton.cpp: // OLD: if (which >= 0) neighptr[n++] = j ^ (which << SBBITS); +npair_half_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- +npair_half_bin_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_bin_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_bin_newton_tri.cpp:------------------------------------------------------------------------- */ +npair_half_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- */ +npair_half_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- +npair_half_bin_newton_tri.cpp:------------------------------------------------------------------------- */ +npair_half_bin_newton_tri.cpp: // loop over all atoms in bins in stencil +npair_half_bin_newton_tri.cpp: // pairs for atoms j "below" i are excluded +npair_half_bin_newton_tri.cpp: // below = lower z or (equal z and lower y) or (equal zy and lower x) +npair_half_bin_newton_tri.cpp: // (equal zyx and j <= i) +npair_half_bin_newton_tri.cpp: // latter excludes self-self interaction but allows superposed atoms +npair_halffull_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_halffull_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_halffull_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_halffull_newtoff.cpp:------------------------------------------------------------------------- */ +npair_halffull_newtoff.cpp:/* ---------------------------------------------------------------------- */ +npair_halffull_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_halffull_newtoff.cpp:------------------------------------------------------------------------- */ +npair_halffull_newtoff.cpp: // loop over atoms in full list +npair_halffull_newtoff.cpp: // loop over parent full list +npair_halffull_newton.cpp:/* ---------------------------------------------------------------------- +npair_halffull_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_halffull_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_halffull_newton.cpp:------------------------------------------------------------------------- */ +npair_halffull_newton.cpp:/* ---------------------------------------------------------------------- */ +npair_halffull_newton.cpp:/* ---------------------------------------------------------------------- +npair_halffull_newton.cpp:------------------------------------------------------------------------- */ +npair_halffull_newton.cpp: // loop over parent full list +npair_halffull_newton.cpp: // loop over full neighbor list +npair_half_multi_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_multi_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_multi_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_multi_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_multi_newtoff.cpp:/* ---------------------------------------------------------------------- */ +npair_half_multi_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_multi_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_multi_newtoff.cpp: // loop over all atoms in other bins in stencil including self +npair_half_multi_newtoff.cpp: // only store pair if i < j +npair_half_multi_newtoff.cpp: // skip if i,j neighbor cutoff is less than bin distance +npair_half_multi_newtoff.cpp: // stores own/own pairs only once +npair_half_multi_newtoff.cpp: // stores own/ghost pairs on both procs +npair_half_multi_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_multi_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_multi_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_multi_newton.cpp:------------------------------------------------------------------------- */ +npair_half_multi_newton.cpp:/* ---------------------------------------------------------------------- */ +npair_half_multi_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_multi_newton.cpp:------------------------------------------------------------------------- */ +npair_half_multi_newton.cpp: // loop over rest of atoms in i's bin, ghosts are at end of linked list +npair_half_multi_newton.cpp: // if j is owned atom, store it, since j is beyond i in linked list +npair_half_multi_newton.cpp: // if j is ghost, only store if j coords are "above and to the right" of i +npair_half_multi_newton.cpp: // loop over all atoms in other bins in stencil, store every pair +npair_half_multi_newton.cpp: // skip if i,j neighbor cutoff is less than bin distance +npair_half_multi_newton_tri.cpp:/* ---------------------------------------------------------------------- +npair_half_multi_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_multi_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_multi_newton_tri.cpp:------------------------------------------------------------------------- */ +npair_half_multi_newton_tri.cpp:/* ---------------------------------------------------------------------- */ +npair_half_multi_newton_tri.cpp:/* ---------------------------------------------------------------------- +npair_half_multi_newton_tri.cpp:------------------------------------------------------------------------- */ +npair_half_multi_newton_tri.cpp: // loop over all atoms in bins, including self, in stencil +npair_half_multi_newton_tri.cpp: // skip if i,j neighbor cutoff is less than bin distance +npair_half_multi_newton_tri.cpp: // bins below self are excluded from stencil +npair_half_multi_newton_tri.cpp: // pairs for atoms j "below" i are excluded +npair_half_multi_newton_tri.cpp: // below = lower z or (equal z and lower y) or (equal zy and lower x) +npair_half_multi_newton_tri.cpp: // (equal zyx and j <= i) +npair_half_multi_newton_tri.cpp: // latter excludes self-self interaction but allows superposed atoms +npair_half_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_nsq_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_nsq_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_nsq_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- */ +npair_half_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_nsq_newtoff.cpp: N^2 / 2 search for neighbor pairs with partial Newton's 3rd law +npair_half_nsq_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_nsq_newtoff.cpp: // loop over remaining atoms, owned and ghost +npair_half_nsq_newtoff.cpp: // only store pair if i < j +npair_half_nsq_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- +npair_half_nsq_newtoff_ghost.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_nsq_newtoff_ghost.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_nsq_newtoff_ghost.cpp:------------------------------------------------------------------------- */ +npair_half_nsq_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- */ +npair_half_nsq_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- +npair_half_nsq_newtoff_ghost.cpp: N^2 / 2 search for neighbor pairs with partial Newton's 3rd law +npair_half_nsq_newtoff_ghost.cpp:------------------------------------------------------------------------- */ +npair_half_nsq_newtoff_ghost.cpp: // loop over owned & ghost atoms, storing neighbors +npair_half_nsq_newtoff_ghost.cpp: // loop over remaining atoms, owned and ghost +npair_half_nsq_newtoff_ghost.cpp: // only store pair if i < j +npair_half_nsq_newtoff_ghost.cpp: // stores own/own pairs only once +npair_half_nsq_newtoff_ghost.cpp: // stores own/ghost pairs with owned atom only, on both procs +npair_half_nsq_newtoff_ghost.cpp: // stores ghost/ghost pairs only once +npair_half_nsq_newtoff_ghost.cpp: // no molecular test when i = ghost atom +npair_half_nsq_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_nsq_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_nsq_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_nsq_newton.cpp:------------------------------------------------------------------------- */ +npair_half_nsq_newton.cpp:/* ---------------------------------------------------------------------- */ +npair_half_nsq_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_nsq_newton.cpp: N^2 / 2 search for neighbor pairs with full Newton's 3rd law +npair_half_nsq_newton.cpp:------------------------------------------------------------------------- */ +npair_half_nsq_newton.cpp: // loop over remaining atoms, owned and ghost +npair_half_nsq_newton.cpp: // itag = jtag is possible for long cutoffs that include images of self +npair_half_respa_bin_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_respa_bin_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_respa_bin_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_respa_bin_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_respa_bin_newtoff.cpp:/* ---------------------------------------------------------------------- */ +npair_half_respa_bin_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_respa_bin_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_respa_bin_newtoff.cpp: // loop over all atoms in surrounding bins in stencil including self +npair_half_respa_bin_newtoff.cpp: // only store pair if i < j +npair_half_respa_bin_newtoff.cpp: // stores own/own pairs only once +npair_half_respa_bin_newtoff.cpp: // stores own/ghost pairs on both procs +npair_half_respa_bin_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_respa_bin_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_respa_bin_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_respa_bin_newton.cpp:------------------------------------------------------------------------- */ +npair_half_respa_bin_newton.cpp:/* ---------------------------------------------------------------------- */ +npair_half_respa_bin_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_respa_bin_newton.cpp:------------------------------------------------------------------------- */ +npair_half_respa_bin_newton.cpp: // loop over rest of atoms in i's bin, ghosts are at end of linked list +npair_half_respa_bin_newton.cpp: // if j is owned atom, store it, since j is beyond i in linked list +npair_half_respa_bin_newton.cpp: // if j is ghost, only store if j coords are "above and to the right" of i +npair_half_respa_bin_newton.cpp: // loop over all atoms in other bins in stencil, store every pair +npair_half_respa_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- +npair_half_respa_bin_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_respa_bin_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_respa_bin_newton_tri.cpp:------------------------------------------------------------------------- */ +npair_half_respa_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- */ +npair_half_respa_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- +npair_half_respa_bin_newton_tri.cpp:------------------------------------------------------------------------- */ +npair_half_respa_bin_newton_tri.cpp: // loop over all atoms in bins in stencil +npair_half_respa_bin_newton_tri.cpp: // pairs for atoms j "below" i are excluded +npair_half_respa_bin_newton_tri.cpp: // below = lower z or (equal z and lower y) or (equal zy and lower x) +npair_half_respa_bin_newton_tri.cpp: // (equal zyx and j <= i) +npair_half_respa_bin_newton_tri.cpp: // latter excludes self-self interaction but allows superposed atoms +npair_half_respa_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_respa_nsq_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_respa_nsq_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_respa_nsq_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_respa_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- */ +npair_half_respa_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_respa_nsq_newtoff.cpp: N^2 / 2 search for neighbor pairs with partial Newton's 3rd law +npair_half_respa_nsq_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_respa_nsq_newtoff.cpp: // loop over remaining atoms, owned and ghost +npair_half_respa_nsq_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_respa_nsq_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_respa_nsq_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_respa_nsq_newton.cpp:------------------------------------------------------------------------- */ +npair_half_respa_nsq_newton.cpp:/* ---------------------------------------------------------------------- */ +npair_half_respa_nsq_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_respa_nsq_newton.cpp: N^2 / 2 search for neighbor pairs with full Newton's 3rd law +npair_half_respa_nsq_newton.cpp:------------------------------------------------------------------------- */ +npair_half_respa_nsq_newton.cpp: // loop over remaining atoms, owned and ghost +npair_half_size_bin_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_size_bin_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_size_bin_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_size_bin_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_size_bin_newtoff.cpp:/* ---------------------------------------------------------------------- */ +npair_half_size_bin_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_size_bin_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_size_bin_newtoff.cpp: // loop over all atoms in surrounding bins in stencil including self +npair_half_size_bin_newtoff.cpp: // only store pair if i < j +npair_half_size_bin_newtoff.cpp: // stores own/own pairs only once +npair_half_size_bin_newtoff.cpp: // stores own/ghost pairs on both procs +npair_half_size_bin_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_size_bin_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_size_bin_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_size_bin_newton.cpp:------------------------------------------------------------------------- */ +npair_half_size_bin_newton.cpp:/* ---------------------------------------------------------------------- */ +npair_half_size_bin_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_size_bin_newton.cpp:------------------------------------------------------------------------- */ +npair_half_size_bin_newton.cpp: // loop over rest of atoms in i's bin, ghosts are at end of linked list +npair_half_size_bin_newton.cpp: // if j is owned atom, store it, since j is beyond i in linked list +npair_half_size_bin_newton.cpp: // if j is ghost, only store if j coords are "above and to the right" of i +npair_half_size_bin_newton.cpp: // loop over all atoms in other bins in stencil, store every pair +npair_half_size_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- +npair_half_size_bin_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_size_bin_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_size_bin_newton_tri.cpp:------------------------------------------------------------------------- */ +npair_half_size_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- */ +npair_half_size_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- +npair_half_size_bin_newton_tri.cpp:------------------------------------------------------------------------- */ +npair_half_size_bin_newton_tri.cpp: // loop over all atoms in bins in stencil +npair_half_size_bin_newton_tri.cpp: // pairs for atoms j "below" i are excluded +npair_half_size_bin_newton_tri.cpp: // below = lower z or (equal z and lower y) or (equal zy and lower x) +npair_half_size_bin_newton_tri.cpp: // (equal zyx and j <= i) +npair_half_size_bin_newton_tri.cpp: // latter excludes self-self interaction but allows superposed atoms +npair_half_size_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_size_nsq_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_size_nsq_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_size_nsq_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_size_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- */ +npair_half_size_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- +npair_half_size_nsq_newtoff.cpp: N^2 / 2 search for neighbor pairs with partial Newton's 3rd law +npair_half_size_nsq_newtoff.cpp:------------------------------------------------------------------------- */ +npair_half_size_nsq_newtoff.cpp: // loop over remaining atoms, owned and ghost +npair_half_size_nsq_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_size_nsq_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_half_size_nsq_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_half_size_nsq_newton.cpp:------------------------------------------------------------------------- */ +npair_half_size_nsq_newton.cpp:/* ---------------------------------------------------------------------- */ +npair_half_size_nsq_newton.cpp:/* ---------------------------------------------------------------------- +npair_half_size_nsq_newton.cpp: N^2 / 2 search for neighbor pairs with full Newton's 3rd law +npair_half_size_nsq_newton.cpp:------------------------------------------------------------------------- */ +npair_half_size_nsq_newton.cpp: // loop over remaining atoms, owned and ghost +npair_skip.cpp:/* ---------------------------------------------------------------------- +npair_skip.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_skip.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_skip.cpp:------------------------------------------------------------------------- */ +npair_skip.cpp:/* ---------------------------------------------------------------------- */ +npair_skip.cpp:/* ---------------------------------------------------------------------- +npair_skip.cpp:------------------------------------------------------------------------- */ +npair_skip.cpp: // loop over atoms in other list +npair_skip.cpp: // skip I atom entirely if iskip is set for type[I] +npair_skip.cpp: // skip I,J pair if ijskip is set for type[I],type[J] +npair_skip.cpp: // loop over parent non-skip list +npair_skip_respa.cpp:/* ---------------------------------------------------------------------- +npair_skip_respa.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_skip_respa.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_skip_respa.cpp:------------------------------------------------------------------------- */ +npair_skip_respa.cpp:/* ---------------------------------------------------------------------- */ +npair_skip_respa.cpp:/* ---------------------------------------------------------------------- +npair_skip_respa.cpp: this is for respa lists, copy the inner/middle values from parent +npair_skip_respa.cpp:------------------------------------------------------------------------- */ +npair_skip_respa.cpp: // loop over atoms in other list +npair_skip_respa.cpp: // skip I atom entirely if iskip is set for type[I] +npair_skip_respa.cpp: // skip I,J pair if ijskip is set for type[I],type[J] +npair_skip_respa.cpp: // loop over parent outer rRESPA list +npair_skip_respa.cpp: // loop over parent inner rRESPA list +npair_skip_respa.cpp: // loop over parent middle rRESPA list +npair_skip_size.cpp:/* ---------------------------------------------------------------------- +npair_skip_size.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_skip_size.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_skip_size.cpp:------------------------------------------------------------------------- */ +npair_skip_size.cpp:/* ---------------------------------------------------------------------- */ +npair_skip_size.cpp:/* ---------------------------------------------------------------------- +npair_skip_size.cpp: if list requests it, preserve shear history via fix shear/history +npair_skip_size.cpp:------------------------------------------------------------------------- */ +npair_skip_size.cpp: // loop over atoms in other list +npair_skip_size.cpp: // skip I atom entirely if iskip is set for type[I] +npair_skip_size.cpp: // skip I,J pair if ijskip is set for type[I],type[J] +npair_skip_size.cpp: // loop over parent non-skip size list and optionally its history info +npair_skip_size.cpp: // no numeric test for current touch +npair_skip_size.cpp: // just use FSH partner list to infer it +npair_skip_size.cpp: // would require distance calculation for spheres +npair_skip_size.cpp: // more complex calculation for surfs +npair_skip_size_off2on.cpp:/* ---------------------------------------------------------------------- +npair_skip_size_off2on.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_skip_size_off2on.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_skip_size_off2on.cpp:------------------------------------------------------------------------- */ +npair_skip_size_off2on.cpp:/* ---------------------------------------------------------------------- */ +npair_skip_size_off2on.cpp:/* ---------------------------------------------------------------------- +npair_skip_size_off2on.cpp: if list requests it, preserve shear history via fix shear/history +npair_skip_size_off2on.cpp:------------------------------------------------------------------------- */ +npair_skip_size_off2on.cpp: // loop over atoms in other list +npair_skip_size_off2on.cpp: // skip I atom entirely if iskip is set for type[I] +npair_skip_size_off2on.cpp: // skip I,J pair if ijskip is set for type[I],type[J] +npair_skip_size_off2on.cpp: // loop over parent non-skip size list and optionally its history info +npair_skip_size_off2on.cpp: // only keep I,J when J = ghost if Itag < Jtag +npair_skip_size_off2on.cpp: // no numeric test for current touch +npair_skip_size_off2on.cpp: // just use FSH partner list to infer it +npair_skip_size_off2on.cpp: // would require distance calculation for spheres +npair_skip_size_off2on.cpp: // more complex calculation for surfs +npair_skip_size_off2on_oneside.cpp:/* ---------------------------------------------------------------------- +npair_skip_size_off2on_oneside.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +npair_skip_size_off2on_oneside.cpp: http://lammps.sandia.gov, Sandia National Laboratories +npair_skip_size_off2on_oneside.cpp:------------------------------------------------------------------------- */ +npair_skip_size_off2on_oneside.cpp:/* ---------------------------------------------------------------------- */ +npair_skip_size_off2on_oneside.cpp:/* ---------------------------------------------------------------------- +npair_skip_size_off2on_oneside.cpp: if list requests it, preserve shear history via fix shear/history +npair_skip_size_off2on_oneside.cpp:------------------------------------------------------------------------- */ +npair_skip_size_off2on_oneside.cpp: // two loops over parent list required, one to count, one to store +npair_skip_size_off2on_oneside.cpp: // because onesided constraint means pair I,J may be stored with I or J +npair_skip_size_off2on_oneside.cpp: // so don't know in advance how much space to alloc for each atom's neighs +npair_skip_size_off2on_oneside.cpp: // first loop over atoms in other list to count neighbors +npair_skip_size_off2on_oneside.cpp: // skip I atom entirely if iskip is set for type[I] +npair_skip_size_off2on_oneside.cpp: // skip I,J pair if ijskip is set for type[I],type[J] +npair_skip_size_off2on_oneside.cpp: // loop over parent non-skip size list +npair_skip_size_off2on_oneside.cpp: // flip I,J if necessary to satisfy onesided constraint +npair_skip_size_off2on_oneside.cpp: // do not keep if I is now ghost +npair_skip_size_off2on_oneside.cpp: // allocate all per-atom neigh list chunks, including history +npair_skip_size_off2on_oneside.cpp: // second loop over atoms in other list to store neighbors +npair_skip_size_off2on_oneside.cpp: // skip I atom entirely if iskip is set for type[I] +npair_skip_size_off2on_oneside.cpp: // skip I,J pair if ijskip is set for type[I],type[J] +npair_skip_size_off2on_oneside.cpp: // loop over parent non-skip size list and optionally its history info +npair_skip_size_off2on_oneside.cpp: // flip I,J if necessary to satisfy onesided constraint +npair_skip_size_off2on_oneside.cpp: // do not keep if I is now ghost +npair_skip_size_off2on_oneside.cpp: // store j in neigh list, not joriginal, like other neigh methods +npair_skip_size_off2on_oneside.cpp: // OK, b/c there is no special list flagging for surfs +npair_skip_size_off2on_oneside.cpp: // no numeric test for current touch +npair_skip_size_off2on_oneside.cpp: // just use FSH partner list to infer it +npair_skip_size_off2on_oneside.cpp: // would require complex calculation for surfs +npair_skip_size_off2on_oneside.cpp: // only add atom I to ilist if it has neighbors +npair_skip_size_off2on_oneside.cpp: // fix shear/history allows for this in pre_exchange_onesided() +nstencil.cpp:/* ---------------------------------------------------------------------- +nstencil.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil.cpp:------------------------------------------------------------------------- */ +nstencil.cpp:enum{NSQ,BIN,MULTI}; // also in Neighbor +nstencil.cpp:/* ---------------------------------------------------------------------- +nstencil.cpp: invoked each time simulation box size/shape changes +nstencil.cpp: regardless of newton on/off or triclinic +nstencil.cpp: stencil follows same rules for half/full, newton on/off, triclinic +nstencil.cpp:------------------------------------------------------------------------- */ +nstencil.cpp:/* ---------------------------------------------------------------------- */ +nstencil.cpp:/* ---------------------------------------------------------------------- */ +nstencil.cpp:/* ---------------------------------------------------------------------- +nstencil.cpp:------------------------------------------------------------------------- */ +nstencil.cpp: // overwrite Neighbor cutoff with custom value set by requestor +nstencil.cpp: // only works for style = BIN (checked by Neighbor class) +nstencil.cpp:/* ---------------------------------------------------------------------- +nstencil.cpp:------------------------------------------------------------------------- */ +nstencil.cpp:/* ---------------------------------------------------------------------- +nstencil.cpp:------------------------------------------------------------------------- */ +nstencil.cpp: // sx,sy,sz = max range of stencil in each dim +nstencil.cpp: // smax = max possible size of entire 3d stencil +nstencil.cpp: // stencil will be empty if cutneighmax = 0.0 +nstencil.cpp: // reallocate stencil structs if necessary +nstencil.cpp: // for BIN and MULTI styles +nstencil.cpp:/* ---------------------------------------------------------------------- +nstencil.cpp:------------------------------------------------------------------------- */ +nstencil.cpp:/* ---------------------------------------------------------------------- */ +nstencil_full_bin_2d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_bin_2d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_full_bin_2d.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_full_bin_2d.cpp:------------------------------------------------------------------------- */ +nstencil_full_bin_2d.cpp:/* ---------------------------------------------------------------------- */ +nstencil_full_bin_2d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_bin_2d.cpp:------------------------------------------------------------------------- */ +nstencil_full_bin_3d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_bin_3d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_full_bin_3d.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_full_bin_3d.cpp:------------------------------------------------------------------------- */ +nstencil_full_bin_3d.cpp:/* ---------------------------------------------------------------------- */ +nstencil_full_bin_3d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_bin_3d.cpp:------------------------------------------------------------------------- */ +nstencil_full_ghost_bin_2d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_ghost_bin_2d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_full_ghost_bin_2d.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_full_ghost_bin_2d.cpp:------------------------------------------------------------------------- */ +nstencil_full_ghost_bin_2d.cpp:/* ---------------------------------------------------------------------- */ +nstencil_full_ghost_bin_2d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_ghost_bin_2d.cpp:------------------------------------------------------------------------- */ +nstencil_full_ghost_bin_3d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_ghost_bin_3d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_full_ghost_bin_3d.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_full_ghost_bin_3d.cpp:------------------------------------------------------------------------- */ +nstencil_full_ghost_bin_3d.cpp:/* ---------------------------------------------------------------------- */ +nstencil_full_ghost_bin_3d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_ghost_bin_3d.cpp:------------------------------------------------------------------------- */ +nstencil_full_multi_2d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_multi_2d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_full_multi_2d.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_full_multi_2d.cpp:------------------------------------------------------------------------- */ +nstencil_full_multi_2d.cpp:/* ---------------------------------------------------------------------- */ +nstencil_full_multi_2d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_multi_2d.cpp:------------------------------------------------------------------------- */ +nstencil_full_multi_3d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_multi_3d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_full_multi_3d.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_full_multi_3d.cpp:------------------------------------------------------------------------- */ +nstencil_full_multi_3d.cpp:/* ---------------------------------------------------------------------- */ +nstencil_full_multi_3d.cpp:/* ---------------------------------------------------------------------- +nstencil_full_multi_3d.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_2d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_bin_2d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_bin_2d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_2d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_2d_newton.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_2d_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_bin_2d_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_bin_2d_newton.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_2d_newton.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_bin_2d_newton.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_2d_newton.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_2d_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_bin_2d_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_bin_2d_newton_tri.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_bin_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_2d_newton_tri.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_3d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_bin_3d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_bin_3d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_3d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_3d_newton.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_3d_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_bin_3d_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_bin_3d_newton.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_3d_newton.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_bin_3d_newton.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_3d_newton.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_3d_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_bin_3d_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_bin_3d_newton_tri.cpp:------------------------------------------------------------------------- */ +nstencil_half_bin_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_bin_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- +nstencil_half_bin_3d_newton_tri.cpp:------------------------------------------------------------------------- */ +nstencil_half_ghost_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_ghost_bin_2d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_ghost_bin_2d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_ghost_bin_2d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_ghost_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_ghost_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_ghost_bin_2d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_ghost_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_ghost_bin_3d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_ghost_bin_3d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_ghost_bin_3d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_ghost_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_ghost_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_ghost_bin_3d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_2d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_2d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_multi_2d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_multi_2d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_2d_newtoff.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_multi_2d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_2d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_2d_newton.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_2d_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_multi_2d_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_multi_2d_newton.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_2d_newton.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_multi_2d_newton.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_2d_newton.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_2d_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_multi_2d_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_multi_2d_newton_tri.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_multi_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_2d_newton_tri.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_3d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_3d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_multi_3d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_multi_3d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_3d_newtoff.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_multi_3d_newtoff.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_3d_newtoff.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_3d_newton.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_3d_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_multi_3d_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_multi_3d_newton.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_3d_newton.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_multi_3d_newton.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_3d_newton.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_3d_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +nstencil_half_multi_3d_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories +nstencil_half_multi_3d_newton_tri.cpp:------------------------------------------------------------------------- */ +nstencil_half_multi_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- */ +nstencil_half_multi_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- +nstencil_half_multi_3d_newton_tri.cpp:------------------------------------------------------------------------- */ +ntopo_angle_all.cpp:/* ---------------------------------------------------------------------- +ntopo_angle_all.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_angle_all.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_angle_all.cpp:------------------------------------------------------------------------- */ +ntopo_angle_all.cpp:/* ---------------------------------------------------------------------- */ +ntopo_angle_all.cpp:/* ---------------------------------------------------------------------- */ +ntopo_angle_partial.cpp:/* ---------------------------------------------------------------------- +ntopo_angle_partial.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_angle_partial.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_angle_partial.cpp:------------------------------------------------------------------------- */ +ntopo_angle_partial.cpp:/* ---------------------------------------------------------------------- */ +ntopo_angle_partial.cpp:/* ---------------------------------------------------------------------- */ +ntopo_angle_template.cpp:/* ---------------------------------------------------------------------- +ntopo_angle_template.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_angle_template.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_angle_template.cpp:------------------------------------------------------------------------- */ +ntopo_angle_template.cpp:/* ---------------------------------------------------------------------- */ +ntopo_angle_template.cpp:/* ---------------------------------------------------------------------- */ +ntopo_bond_all.cpp:/* ---------------------------------------------------------------------- +ntopo_bond_all.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_bond_all.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_bond_all.cpp:------------------------------------------------------------------------- */ +ntopo_bond_all.cpp:/* ---------------------------------------------------------------------- */ +ntopo_bond_all.cpp:/* ---------------------------------------------------------------------- */ +ntopo_bond_partial.cpp:/* ---------------------------------------------------------------------- +ntopo_bond_partial.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_bond_partial.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_bond_partial.cpp:------------------------------------------------------------------------- */ +ntopo_bond_partial.cpp:/* ---------------------------------------------------------------------- */ +ntopo_bond_partial.cpp:/* ---------------------------------------------------------------------- */ +ntopo_bond_template.cpp:/* ---------------------------------------------------------------------- +ntopo_bond_template.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_bond_template.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_bond_template.cpp:------------------------------------------------------------------------- */ +ntopo_bond_template.cpp:/* ---------------------------------------------------------------------- */ +ntopo_bond_template.cpp:/* ---------------------------------------------------------------------- */ +ntopo.cpp:/* ---------------------------------------------------------------------- +ntopo.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo.cpp:------------------------------------------------------------------------- */ +ntopo.cpp:/* ---------------------------------------------------------------------- */ +ntopo.cpp:/* ---------------------------------------------------------------------- */ +ntopo.cpp:/* ---------------------------------------------------------------------- */ +ntopo.cpp: else maxbond = static_cast (LB_FACTOR * atom->nbonds / nprocs); +ntopo.cpp:/* ---------------------------------------------------------------------- */ +ntopo.cpp: else maxangle = static_cast (LB_FACTOR * atom->nangles / nprocs); +ntopo.cpp:/* ---------------------------------------------------------------------- */ +ntopo.cpp: else maxdihedral = static_cast (LB_FACTOR * atom->ndihedrals / nprocs); +ntopo.cpp:/* ---------------------------------------------------------------------- */ +ntopo.cpp: else maximproper = static_cast (LB_FACTOR * atom->nimpropers / nprocs); +ntopo.cpp:/* ---------------------------------------------------------------------- */ +ntopo.cpp:/* ---------------------------------------------------------------------- */ +ntopo.cpp: // check all 3 distances +ntopo.cpp: // in case angle potential computes any of them +ntopo.cpp:/* ---------------------------------------------------------------------- */ +ntopo.cpp: // check all 6 distances +ntopo.cpp: // in case dihedral/improper potential computes any of them +ntopo.cpp: error->all(FLERR,"Dihedral/improper extent > half of periodic box length"); +ntopo.cpp:/* ---------------------------------------------------------------------- */ +ntopo_dihedral_all.cpp:/* ---------------------------------------------------------------------- +ntopo_dihedral_all.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_dihedral_all.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_dihedral_all.cpp:------------------------------------------------------------------------- */ +ntopo_dihedral_all.cpp:/* ---------------------------------------------------------------------- */ +ntopo_dihedral_all.cpp:/* ---------------------------------------------------------------------- */ +ntopo_dihedral_partial.cpp:/* ---------------------------------------------------------------------- +ntopo_dihedral_partial.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_dihedral_partial.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_dihedral_partial.cpp:------------------------------------------------------------------------- */ +ntopo_dihedral_partial.cpp:/* ---------------------------------------------------------------------- */ +ntopo_dihedral_partial.cpp:/* ---------------------------------------------------------------------- */ +ntopo_dihedral_template.cpp:/* ---------------------------------------------------------------------- +ntopo_dihedral_template.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_dihedral_template.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_dihedral_template.cpp:------------------------------------------------------------------------- */ +ntopo_dihedral_template.cpp:/* ---------------------------------------------------------------------- */ +ntopo_dihedral_template.cpp:/* ---------------------------------------------------------------------- */ +ntopo_improper_all.cpp:/* ---------------------------------------------------------------------- +ntopo_improper_all.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_improper_all.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_improper_all.cpp:------------------------------------------------------------------------- */ +ntopo_improper_all.cpp:/* ---------------------------------------------------------------------- */ +ntopo_improper_all.cpp:/* ---------------------------------------------------------------------- */ +ntopo_improper_partial.cpp:/* ---------------------------------------------------------------------- +ntopo_improper_partial.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +ntopo_improper_partial.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_improper_partial.cpp:------------------------------------------------------------------------- */ +ntopo_improper_partial.cpp:/* ---------------------------------------------------------------------- */ +ntopo_improper_partial.cpp:/* ---------------------------------------------------------------------- */ +ntopo_improper_template.cpp:/* ---------------------------------------------------------------------- +ntopo_improper_template.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Templatel Simulator +ntopo_improper_template.cpp: http://lammps.sandia.gov, Sandia National Laboratories +ntopo_improper_template.cpp:------------------------------------------------------------------------- */ +ntopo_improper_template.cpp:/* ---------------------------------------------------------------------- */ +ntopo_improper_template.cpp:/* ---------------------------------------------------------------------- */ +output.cpp:/* ---------------------------------------------------------------------- +output.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +output.cpp: http://lammps.sandia.gov, Sandia National Laboratories +output.cpp:------------------------------------------------------------------------- */ +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp: // create default computes for temp,pressure,pe +output.cpp: // create default Thermo class +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp:/* ---------------------------------------------------------------------- */ +output.cpp:/* ---------------------------------------------------------------------- +output.cpp: perform output for setup of run/min +output.cpp: memflag = 0/1 for printing out memory usage +output.cpp:------------------------------------------------------------------------- */ +output.cpp: // perform dump at start of run only if: +output.cpp: // current timestep is multiple of every and last dump not >= this step +output.cpp: // this is first run after dump created and firstflag is set +output.cpp: // note that variable freq will not write unless triggered by firstflag +output.cpp: // set next_dump to multiple of every or variable value +output.cpp: // set next_dump_any to smallest next_dump +output.cpp: // wrap dumps that invoke computes and variable eval with clear/add +output.cpp: // if dump not written now, use addstep_compute_all() since don't know +output.cpp: // what computes the dump write would invoke +output.cpp: // if no dumps, set next_dump_any to last+1 so will not influence next +output.cpp: (ntimestep/every_dump[idump])*every_dump[idump] + every_dump[idump]; +output.cpp: // do not write restart files at start of run +output.cpp: // set next_restart values to multiple of every or variable value +output.cpp: // wrap variable eval with clear/add +output.cpp: // if no restarts, set next_restart to last+1 so will not influence next +output.cpp: (ntimestep/restart_every_single)*restart_every_single + +output.cpp: (ntimestep/restart_every_double)*restart_every_double + +output.cpp: // print memory usage unless being called between multiple runs +output.cpp: // set next_thermo to multiple of every or variable eval if var defined +output.cpp: // insure thermo output on last step of run +output.cpp: // thermo may invoke computes so wrap with clear/add +output.cpp: next_thermo = (ntimestep/thermo_every)*thermo_every + thermo_every; +output.cpp: // next = next timestep any output will be done +output.cpp:/* ---------------------------------------------------------------------- +output.cpp: do dump/restart before thermo so thermo CPU time will include them +output.cpp:------------------------------------------------------------------------- */ +output.cpp: // next_dump does not force output on last step of run +output.cpp: // wrap dumps that invoke computes or eval of variable with clear/add +output.cpp: // next_restart does not force output on last step of run +output.cpp: // for toggle = 0, replace "*" with current timestep in restart filename +output.cpp: // eval of variable may invoke computes so wrap with clear/add +output.cpp: // insure next_thermo forces output on last step of run +output.cpp: // thermo may invoke computes so wrap with clear/add +output.cpp: // next = next timestep any output will be done +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp: next_dump[idump] = (ntimestep/every_dump[idump])*every_dump[idump]; +output.cpp: // ivar_dump may not be initialized +output.cpp: (ntimestep/restart_every_single)*restart_every_single; +output.cpp: (ntimestep/restart_every_double)*restart_every_double; +output.cpp: next_thermo = (ntimestep/thermo_every)*thermo_every; +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp: // error checks +output.cpp: // extend Dump list if necessary +output.cpp: // initialize per-dump data to suitable default values +output.cpp: // create the Dump +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp: // find which dump it is +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp: // find which dump it is and delete it +output.cpp: // move other dumps down in list one slot +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp: // don't allow this so that dipole style can safely allocate inertia vector +output.cpp: // warn if previous thermo had been modified via thermo_modify command +output.cpp: // set thermo = NULL in case new Thermo throws an error +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp: // check for multiproc output and an MPI-IO filename +output.cpp: // if 2 filenames, must be consistent +output.cpp: // setup output style and process optional args +output.cpp:/* ---------------------------------------------------------------------- +output.cpp:------------------------------------------------------------------------- */ +output.cpp: double mbytes = bytes/1024.0/1024.0; +output.cpp: mbavg /= comm->nprocs; +output.cpp: fprintf(screen,"Per MPI rank memory allocation (min/avg/max) = " +output.cpp: fprintf(logfile,"Per MPI rank memory allocation (min/avg/max) = " +pair_beck.cpp:/* ---------------------------------------------------------------------- +pair_beck.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_beck.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_beck.cpp:------------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- +pair_beck.cpp:------------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- */ +pair_beck.cpp: // loop over neighbors of my atoms +pair_beck.cpp: rinv = 1.0/r; +pair_beck.cpp: term1inv = 1.0/term1; +pair_beck.cpp:/* ---------------------------------------------------------------------- +pair_beck.cpp:------------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- +pair_beck.cpp:------------------------------------------------------------------------- */ +pair_beck.cpp: // reset cutoffs that have been explicitly set +pair_beck.cpp:/* ---------------------------------------------------------------------- +pair_beck.cpp:------------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- +pair_beck.cpp:------------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- +pair_beck.cpp:------------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- +pair_beck.cpp:------------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- +pair_beck.cpp:------------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- +pair_beck.cpp:------------------------------------------------------------------------- */ +pair_beck.cpp:/* ---------------------------------------------------------------------- */ +pair_beck.cpp: rinv = 1.0/r; +pair_beck.cpp: term1inv = 1.0/term1; +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_born_coul_dsf.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp: // loop over neighbors of my atoms +pair_born_coul_dsf.cpp: // self coulombic energy +pair_born_coul_dsf.cpp: double e_self = -(e_shift/2.0 + alpha/MY_PIS) * qtmp*qtmp*qqrd2e; +pair_born_coul_dsf.cpp: r2inv = 1.0/rsq; +pair_born_coul_dsf.cpp: prefactor = qqrd2e*qtmp*q[j]/r; +pair_born_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS * erfcd + +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp: error->all(FLERR,"Pair style born/coul/dsf requires atom attribute q"); +pair_born_coul_dsf.cpp: f_shift = -(erfcc/cut_coulsq + 2.0/MY_PIS*alpha*erfcd/cut_coul); +pair_born_coul_dsf.cpp: e_shift = erfcc/cut_coul - f_shift*cut_coul; +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp: rhoinv[i][j] = 1.0/rho[i][j]; +pair_born_coul_dsf.cpp: born1[i][j] = a[i][j]/rho[i][j]; +pair_born_coul_dsf.cpp: offset[i][j] = a[i][j]*rexp - c[i][j]/pow(cut_lj[i][j],6.0) +pair_born_coul_dsf.cpp: + d[i][j]/pow(cut_lj[i][j],8.0); +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_dsf.cpp: r2inv = 1.0/rsq; +pair_born_coul_dsf.cpp: prefactor = factor_coul * force->qqrd2e * atom->q[i]*atom->q[j]/r; +pair_born_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS*erfcd + +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_born_coul_wolf.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp: // self and shifted coulombic energy +pair_born_coul_wolf.cpp: e_shift = erfc(alf*cut_coul)/cut_coul; +pair_born_coul_wolf.cpp: f_shift = -(e_shift+ 2.0*alf/MY_PIS * exp(-alf*alf*cut_coul*cut_coul)) / +pair_born_coul_wolf.cpp: // loop over neighbors of my atoms +pair_born_coul_wolf.cpp: e_self = -(e_shift/2.0 + alf/MY_PIS) * qisq*qqrd2e; +pair_born_coul_wolf.cpp: r2inv = 1.0/rsq; +pair_born_coul_wolf.cpp: prefactor = qqrd2e*qtmp*q[j]/r; +pair_born_coul_wolf.cpp: dvdrr = (erfcc/rsq + 2.0*alf/MY_PIS * erfcd/r) + f_shift; +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp: error->all(FLERR,"Pair style born/coul/wolf requires atom attribute q"); +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp: rhoinv[i][j] = 1.0/rho[i][j]; +pair_born_coul_wolf.cpp: born1[i][j] = a[i][j]/rho[i][j]; +pair_born_coul_wolf.cpp: offset[i][j] = a[i][j]*rexp - c[i][j]/pow(cut_lj[i][j],6.0) +pair_born_coul_wolf.cpp: + d[i][j]/pow(cut_lj[i][j],8.0); +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_born_coul_wolf.cpp: r2inv = 1.0/rsq; +pair_born_coul_wolf.cpp: e_shift = erfc(alf*cut_coul) / cut_coul; +pair_born_coul_wolf.cpp: f_shift = -(e_shift+2*alf/MY_PIS * exp(-alf*alf*cut_coul*cut_coul)) / +pair_born_coul_wolf.cpp: prefactor = force->qqrd2e * atom->q[i]*atom->q[j]/r; +pair_born_coul_wolf.cpp: dvdrr = (erfcc/rsq + 2.0*alf/MY_PIS * erfcd/r) + f_shift; +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_born.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- */ +pair_born.cpp: // loop over neighbors of my atoms +pair_born.cpp: r2inv = 1.0/rsq; +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp: // reset cutoffs that have been explicitly set +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp: rhoinv[i][j] = 1.0/rho[i][j]; +pair_born.cpp: born1[i][j] = a[i][j]/rho[i][j]; +pair_born.cpp: offset[i][j] = a[i][j]*rexp - c[i][j]/pow(cut[i][j],6.0) + +pair_born.cpp: d[i][j]/pow(cut[i][j],8.0); +pair_born.cpp: // compute I,J contribution to long-range tail correction +pair_born.cpp: // count total # of atoms of type I and J via Allreduce +pair_born.cpp: (a[i][j]*exp((sigma[i][j]-rc)/rho1)*rho1* +pair_born.cpp: c[i][j]/(3.0*rc3) + d[i][j]/(5.0*rc5)); +pair_born.cpp: ptail_ij = (-1/3.0)*2.0*MY_PI*all[0]*all[1] * +pair_born.cpp: (-a[i][j]*exp((sigma[i][j]-rc)/rho1) * +pair_born.cpp: 2.0*c[i][j]/rc3 - 8.0*d[i][j]/(5.0*rc5)); +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- +pair_born.cpp:------------------------------------------------------------------------- */ +pair_born.cpp:/* ---------------------------------------------------------------------- */ +pair_born.cpp: r2inv = 1.0/rsq; +pair_born.cpp:/* ---------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_buck_coul_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp: // loop over neighbors of my atoms +pair_buck_coul_cut.cpp: r2inv = 1.0/rsq; +pair_buck_coul_cut.cpp: forcecoul = qqrd2e * qtmp*q[j]/r; +pair_buck_coul_cut.cpp: ecoul = factor_coul * qqrd2e * qtmp*q[j]/r; +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp: // reset cutoffs that have been explicitly set +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp: error->all(FLERR,"Pair style buck/coul/cut requires atom attribute q"); +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp: rhoinv[i][j] = 1.0/rho[i][j]; +pair_buck_coul_cut.cpp: buck1[i][j] = a[i][j]/rho[i][j]; +pair_buck_coul_cut.cpp: double rexp = exp(-cut_lj[i][j]/rho[i][j]); +pair_buck_coul_cut.cpp: offset[i][j] = a[i][j]*rexp - c[i][j]/pow(cut_lj[i][j],6.0); +pair_buck_coul_cut.cpp: // compute I,J contribution to long-range tail correction +pair_buck_coul_cut.cpp: // count total # of atoms of type I and J via Allreduce +pair_buck_coul_cut.cpp: (a[i][j]*exp(-rc/rho1)*rho1*(rc2 + 2.0*rho1*rc + 2.0*rho2) - +pair_buck_coul_cut.cpp: c[i][j]/(3.0*rc3)); +pair_buck_coul_cut.cpp: ptail_ij = (-1/3.0)*2.0*MY_PI*all[0]*all[1]* +pair_buck_coul_cut.cpp: (-a[i][j]*exp(-rc/rho1)* +pair_buck_coul_cut.cpp: (rc3 + 3.0*rho1*rc2 + 6.0*rho2*rc + 6.0*rho3) + 2.0*c[i][j]/rc3); +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_buck_coul_cut.cpp: r2inv = 1.0/rsq; +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_buck.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- */ +pair_buck.cpp: // loop over neighbors of my atoms +pair_buck.cpp: r2inv = 1.0/rsq; +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp: // reset cutoffs that have been explicitly set +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp: rhoinv[i][j] = 1.0/rho[i][j]; +pair_buck.cpp: buck1[i][j] = a[i][j]/rho[i][j]; +pair_buck.cpp: double rexp = exp(-cut[i][j]/rho[i][j]); +pair_buck.cpp: offset[i][j] = a[i][j]*rexp - c[i][j]/pow(cut[i][j],6.0); +pair_buck.cpp: // compute I,J contribution to long-range tail correction +pair_buck.cpp: // count total # of atoms of type I and J via Allreduce +pair_buck.cpp: (a[i][j]*exp(-rc/rho1)*rho1*(rc2 + 2.0*rho1*rc + 2.0*rho2) - +pair_buck.cpp: c[i][j]/(3.0*rc3)); +pair_buck.cpp: ptail_ij = (-1/3.0)*2.0*MY_PI*all[0]*all[1]* +pair_buck.cpp: (-a[i][j]*exp(-rc/rho1)* +pair_buck.cpp: (rc3 + 3.0*rho1*rc2 + 6.0*rho2*rc + 6.0*rho3) + 2.0*c[i][j]/rc3); +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- +pair_buck.cpp:------------------------------------------------------------------------- */ +pair_buck.cpp:/* ---------------------------------------------------------------------- */ +pair_buck.cpp: r2inv = 1.0/rsq; +pair_buck.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_coul_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_coul_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_cut.cpp: // loop over neighbors of my atoms +pair_coul_cut.cpp: r2inv = 1.0/rsq; +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_coul_cut.cpp: // reset cutoffs that have been explicitly set +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_coul_cut.cpp: error->all(FLERR,"Pair style coul/cut requires atom attribute q"); +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_cut.cpp: r2inv = 1.0/rsq; +pair_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_debye.cpp:/* ---------------------------------------------------------------------- +pair_coul_debye.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_coul_debye.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_coul_debye.cpp:------------------------------------------------------------------------- */ +pair_coul_debye.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_debye.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_debye.cpp: // loop over neighbors of my atoms +pair_coul_debye.cpp: r2inv = 1.0/rsq; +pair_coul_debye.cpp: rinv = 1.0/r; +pair_coul_debye.cpp:/* ---------------------------------------------------------------------- +pair_coul_debye.cpp:------------------------------------------------------------------------- */ +pair_coul_debye.cpp: // reset cutoffs that have been explicitly set +pair_coul_debye.cpp:/* ---------------------------------------------------------------------- +pair_coul_debye.cpp:------------------------------------------------------------------------- */ +pair_coul_debye.cpp:/* ---------------------------------------------------------------------- +pair_coul_debye.cpp:------------------------------------------------------------------------- */ +pair_coul_debye.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_debye.cpp: r2inv = 1.0/rsq; +pair_coul_debye.cpp: rinv = 1.0/r; +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_coul_dsf.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_dsf.cpp: // loop over neighbors of my atoms +pair_coul_dsf.cpp: double e_self = -(e_shift/2.0 + alpha/MY_PIS) * qtmp*qtmp*qqrd2e; +pair_coul_dsf.cpp: r2inv = 1.0/rsq; +pair_coul_dsf.cpp: prefactor = qqrd2e*qtmp*q[j]/r; +pair_coul_dsf.cpp: t = 1.0 / (1.0 + EWALD_P*alpha*r); +pair_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS * erfcd + +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp: error->all(FLERR,"Pair style coul/dsf requires atom attribute q"); +pair_coul_dsf.cpp: f_shift = -(erfcc/cut_coulsq + 2.0/MY_PIS*alpha*erfcd/cut_coul); +pair_coul_dsf.cpp: e_shift = erfcc/cut_coul - f_shift*cut_coul; +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_dsf.cpp: r2inv = 1.0/rsq; +pair_coul_dsf.cpp: prefactor = factor_coul * force->qqrd2e * atom->q[i]*atom->q[j]/r; +pair_coul_dsf.cpp: t = 1.0 / (1.0 + EWALD_P*alpha*r); +pair_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS*erfcd + +pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- +pair_coul_streitz.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_coul_streitz.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_coul_streitz.cpp:------------------------------------------------------------------------- */ +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- +pair_coul_streitz.cpp:------------------------------------------------------------------------- */ +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- +pair_coul_streitz.cpp:------------------------------------------------------------------------- */ +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- +pair_coul_streitz.cpp:------------------------------------------------------------------------- */ +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- +pair_coul_streitz.cpp:------------------------------------------------------------------------- */ +pair_coul_streitz.cpp: // insure I,J args are * * +pair_coul_streitz.cpp: // read args that map atom types to elements in potential file +pair_coul_streitz.cpp: // map[i] = which element the Ith atom type is, -1 if NULL +pair_coul_streitz.cpp: // nelements = # of unique elements +pair_coul_streitz.cpp: // elements = list of element names +pair_coul_streitz.cpp: // read potential file and initialize potential parameters +pair_coul_streitz.cpp: // clear setflag since coeff() called once with I,J = * * +pair_coul_streitz.cpp: // set setflag i,j for type pairs where both are mapped to elements +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- +pair_coul_streitz.cpp:------------------------------------------------------------------------- */ +pair_coul_streitz.cpp: error->all(FLERR,"Pair style coul/streitz requires atom attribute q"); +pair_coul_streitz.cpp: // insure use of KSpace long-range solver when ewald specified, set g_ewald +pair_coul_streitz.cpp: // ptr to QEQ fix +pair_coul_streitz.cpp: //for (i = 0; i < modify->nfix; i++) +pair_coul_streitz.cpp: // if (strcmp(modify->fix[i]->style,"qeq") == 0) break; +pair_coul_streitz.cpp: //if (i < modify->nfix) fixqeq = (FixQEQ *) modify->fix[i]; +pair_coul_streitz.cpp: //else fixqeq = NULL; +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- +pair_coul_streitz.cpp:------------------------------------------------------------------------- */ +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp: // open file on proc 0 +pair_coul_streitz.cpp: sprintf(str,"Cannot open coul/streitz potential file %s",file); +pair_coul_streitz.cpp: // read each line out of file, skipping blank lines or leading '#' +pair_coul_streitz.cpp: // store line of params if all 3 element tags are in element list +pair_coul_streitz.cpp: // strip comment, skip line if blank +pair_coul_streitz.cpp: // concatenate additional lines until have params_per_line words +pair_coul_streitz.cpp: error->all(FLERR,"Incorrect format in coul/streitz potential file"); +pair_coul_streitz.cpp: // words = ptrs to all words in line +pair_coul_streitz.cpp: // ielement = 1st args +pair_coul_streitz.cpp: // load up parameter settings and error check their values +pair_coul_streitz.cpp: // parameter sanity check +pair_coul_streitz.cpp: error->all(FLERR,"Illegal coul/streitz parameter"); +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp: // set elem2param +pair_coul_streitz.cpp: // Wolf sum self energy +pair_coul_streitz.cpp: woself = 0.50*erfc(ar)/r + a/MY_PIS; // kc constant not yet multiplied +pair_coul_streitz.cpp: dwoself = -(erfc(ar)/r/r + 2.0*a/MY_PIS*exp(-ar*ar)/r); +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp: // Wolf sum +pair_coul_streitz.cpp: // self energy: ionization + wolf sum +pair_coul_streitz.cpp: // two-body interaction +pair_coul_streitz.cpp: // Streitz-Mintmire Coulomb integrals +pair_coul_streitz.cpp: // Wolf Sum +pair_coul_streitz.cpp: // Forces +pair_coul_streitz.cpp: fpair = -forcecoul / r; +pair_coul_streitz.cpp: // Ewald Sum +pair_coul_streitz.cpp: // self ionizition energy, only on i atom +pair_coul_streitz.cpp: // two-body interaction +pair_coul_streitz.cpp: // Streitz-Mintmire Coulomb integrals +pair_coul_streitz.cpp: // Ewald: real-space +pair_coul_streitz.cpp: // Forces +pair_coul_streitz.cpp: fpair = -forcecoul / r; +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp: double rinv = 1.0/r; +pair_coul_streitz.cpp: double sm1 = 11.0/8.0; +pair_coul_streitz.cpp: double sm2 = 3.00/4.0; +pair_coul_streitz.cpp: double sm3 = 1.00/6.0; +pair_coul_streitz.cpp: double rcinv = 1.0/rc; +pair_coul_streitz.cpp: (2.0 + 7.0/6.0*zei*rc + 1.0/3.0*zei2*rc*rc)); +pair_coul_streitz.cpp: (2.0 + 7.0/6.0*zei*r + 1.0/3.0*zei2*r*r)) - fshift; +pair_coul_streitz.cpp: e1 = zei*zej4/((zei+zej)*(zei+zej)*(zei-zej)*(zei-zej)); +pair_coul_streitz.cpp: e2 = zej*zei4/((zei+zej)*(zei+zej)*(zej-zei)*(zej-zei)); +pair_coul_streitz.cpp: e3 = (3.0*zei2*zej4-zej6) / +pair_coul_streitz.cpp: e4 = (3.0*zej2*zei4-zei6) / +pair_coul_streitz.cpp: eshift = -exp2zirsh*(e1+e3/rc) - exp2zjrsh*(e2+e4/rc); +pair_coul_streitz.cpp: fshift = (exp2zirsh*(2.0*zei*(e1+e3/rc) + e3*rcinv2) +pair_coul_streitz.cpp: + exp2zjrsh*(2.0*zej*(e2+e4/rc) + e4*rcinv2)); +pair_coul_streitz.cpp: ci_fifj = -exp2zir*(e1+e3/r) - exp2zjr*(e2+e4/r) +pair_coul_streitz.cpp: dci_fifj = (exp2zir*(2.0*zei*(e1+e3/r) + e3*rinv2) + +pair_coul_streitz.cpp: exp2zjr*(2.0*zej*(e2+e4/r) + e4*rinv2)) - fshift; +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp: etmp1 = erfcr/r - erfcrc/rc; +pair_coul_streitz.cpp: ftmp1 = -erfcr/r/r - 2.0*a/MY_PIS*derfcr/r - dwoself; +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp: double rinv = 1.0/r; +pair_coul_streitz.cpp: double sm1 = 11.0/8.0; +pair_coul_streitz.cpp: double sm2 = 3.00/4.0; +pair_coul_streitz.cpp: double sm3 = 1.00/6.0; +pair_coul_streitz.cpp: zei2*(2.0 + 7.0/6.0*zei*r + 1.0/3.0*zei2*r*r)); +pair_coul_streitz.cpp: e1 = zei*zej4/((zei+zej)*(zei+zej)*(zei-zej)*(zei-zej)); +pair_coul_streitz.cpp: e2 = zej*zei4/((zei+zej)*(zei+zej)*(zej-zei)*(zej-zei)); +pair_coul_streitz.cpp: e3 = (3.0*zei2*zej4-zej6) / +pair_coul_streitz.cpp: e4 = (3.0*zej2*zei4-zei6) / +pair_coul_streitz.cpp: ci_fifj = -exp2zir*(e1+e3/r) - exp2zjr*(e2+e4/r); +pair_coul_streitz.cpp: dci_fifj = (exp2zir*(2.0*zei*(e1+e3/r) + e3*rinv2) +pair_coul_streitz.cpp: + exp2zjr*(2.0*zej*(e2+e4/r) + e4*rinv2)); +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_streitz.cpp: etmp4 = qqrd2e * 0.50*qi*qj/r; +pair_coul_streitz.cpp: ftmp4 = etmp4 * (erfcr + 2.0/MY_PIS*a*r*derfcr); +pair_coul_streitz.cpp: ftmp = ftmp3 - ftmp4/r; +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- +pair_coul_streitz.cpp:------------------------------------------------------------------------- */ +pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_coul_wolf.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_wolf.cpp: single_enable = 0; // NOTE: single() method below is not yet correct +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ +pair_coul_wolf.cpp: // self and shifted coulombic energy +pair_coul_wolf.cpp: e_shift = erfc(alf*cut_coul)/cut_coul; +pair_coul_wolf.cpp: f_shift = -(e_shift+ 2.0*alf/MY_PIS * exp(-alf*alf*cut_coul*cut_coul)) / +pair_coul_wolf.cpp: // loop over neighbors of my atoms +pair_coul_wolf.cpp: e_self = -(e_shift/2.0 + alf/MY_PIS) * qisq*qqrd2e; +pair_coul_wolf.cpp: prefactor = qqrd2e*qtmp*q[j]/r; +pair_coul_wolf.cpp: dvdrr = (erfcc/rsq + 2.0*alf/MY_PIS * erfcd/r) + f_shift; +pair_coul_wolf.cpp: fpair = forcecoul / rsq; +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp: error->all(FLERR,"Pair coul/wolf requires atom attribute q"); +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- +pair_coul_wolf.cpp:------------------------------------------------------------------------- */ +pair_coul_wolf.cpp: e_shift = erfc(alf*cut_coul) / cut_coul; +pair_coul_wolf.cpp: f_shift = -(e_shift+ 2.0*alf/MY_PIS * exp(-alf*alf*cut_coul*cut_coul)) / +pair_coul_wolf.cpp: prefactor = force->qqrd2e * atom->q[i]*atom->q[j]/r; +pair_coul_wolf.cpp: dvdrr = (erfcc/rsq + 2.0*alf/MY_PIS * erfcd/r) + f_shift; +pair_coul_wolf.cpp: fforce = forcecoul / rsq; +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:// allocate space for static class instance variable and initialize it +pair.cpp:/* ---------------------------------------------------------------------- */ +pair.cpp: // pair_modify settingsx +pair.cpp: // KOKKOS per-fix data masks +pair.cpp:/* ---------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp: } else if (strcmp(arg[iarg],"table/disp") == 0) { +pair.cpp: } else if (strcmp(arg[iarg],"tabinner/disp") == 0) { +pair.cpp:/* ---------------------------------------------------------------------- */ +pair.cpp: // for manybody potentials +pair.cpp: // check if bonded exclusions could invalidate the neighbor list +pair.cpp: "bonds/angles/dihedrals and special_bond exclusions"); +pair.cpp: // I,I coeffs must be set +pair.cpp: // init_one() will check if I,J is set explicitly or inferred by mixing +pair.cpp: // style-specific initialization +pair.cpp: // call init_one() for each I,J +pair.cpp: // set cutsq for each I,J, used to neighbor +pair.cpp: // cutforce = max of all I,J cutoffs +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp: // generalize this error message if reinit() is used by more than fix adapt +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp: // linear lookup tables of length N = 2^ncoultablebits +pair.cpp: // stored value = value at lower edge of bin +pair.cpp: // d values = delta from lower edge to upper edge of bin +pair.cpp: egamma = 1.0 - (r/cut_coul)*force->kspace->gamma(r/cut_coul); +pair.cpp: fgamma = 1.0 + (rsq_lookup.f/cut_coulsq)* +pair.cpp: force->kspace->dgamma(r/cut_coul); +pair.cpp: ctable[i] = qqrd2e/r; +pair.cpp: ftable[i] = qqrd2e/r * fgamma; +pair.cpp: etable[i] = qqrd2e/r * egamma; +pair.cpp: ftable[i] = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); +pair.cpp: etable[i] = qqrd2e/r * derfc; +pair.cpp: ptable[i] = qqrd2e/r; +pair.cpp: ftable[i] = qqrd2e/r * (fgamma - 1.0); +pair.cpp: etable[i] = qqrd2e/r * egamma; +pair.cpp: vtable[i] = qqrd2e/r * fgamma; +pair.cpp: ftable[i] = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2 - 1.0); +pair.cpp: etable[i] = qqrd2e/r * derfc; +pair.cpp: vtable[i] = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); +pair.cpp: rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]); +pair.cpp: ftable[i] += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw); +pair.cpp: ctable[i] = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw); +pair.cpp: if (msmflag) ftable[i] = qqrd2e/r * fgamma; +pair.cpp: else ftable[i] = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); +pair.cpp: ctable[i] = qqrd2e/r; +pair.cpp: drtable[i] = 1.0/(rtable[i+1] - rtable[i]); +pair.cpp: // get the delta values for the last table entries +pair.cpp: // tables are connected periodically between 0 and ntablem1 +pair.cpp: drtable[ntablem1] = 1.0/(rtable[0] - rtable[ntablem1]); +pair.cpp: // get the correct delta values at itablemax +pair.cpp: // smallest r is in bin itablemin +pair.cpp: // largest r is in bin itablemax, which is itablemin-1, +pair.cpp: // or ntablem1 if itablemin=0 +pair.cpp: // deltas at itablemax only needed if corresponding rsq < cut*cut +pair.cpp: // if so, compute deltas between rsq and cut*cut +pair.cpp: egamma = 1.0 - (r/cut_coul)*force->kspace->gamma(r/cut_coul); +pair.cpp: fgamma = 1.0 + (rsq_lookup.f/cut_coulsq)* +pair.cpp: force->kspace->dgamma(r/cut_coul); +pair.cpp: c_tmp = qqrd2e/r; +pair.cpp: f_tmp = qqrd2e/r * fgamma; +pair.cpp: e_tmp = qqrd2e/r * egamma; +pair.cpp: f_tmp = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); +pair.cpp: e_tmp = qqrd2e/r * derfc; +pair.cpp: p_tmp = qqrd2e/r; +pair.cpp: f_tmp = qqrd2e/r * (fgamma - 1.0); +pair.cpp: e_tmp = qqrd2e/r * egamma; +pair.cpp: v_tmp = qqrd2e/r * fgamma; +pair.cpp: f_tmp = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2 - 1.0); +pair.cpp: e_tmp = qqrd2e/r * derfc; +pair.cpp: v_tmp = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); +pair.cpp: rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]); +pair.cpp: f_tmp += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw); +pair.cpp: c_tmp = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw); +pair.cpp: if (msmflag) f_tmp = qqrd2e/r * fgamma; +pair.cpp: else f_tmp = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); +pair.cpp: c_tmp = qqrd2e/r; +pair.cpp: drtable[itablemax] = 1.0/(rsq_lookup.f - rtable[itablemax]); +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp: ------------------------------------------------------------------------- */ +pair.cpp: // linear lookup tables of length N = 2^ndisptablebits +pair.cpp: // stored value = value at lower edge of bin +pair.cpp: // d values = delta from lower edge to upper edge of bin +pair.cpp: register double x2 = g2*rsq, a2 = 1.0/x2; +pair.cpp: drdisptable[i] = 1.0/(rdisptable[i+1] - rdisptable[i]); +pair.cpp: // get the delta values for the last table entries +pair.cpp: // tables are connected periodically between 0 and ntablem1 +pair.cpp: drdisptable[ntablem1] = 1.0/(rdisptable[0] - rdisptable[ntablem1]); +pair.cpp: // get the correct delta values at itablemax +pair.cpp: // smallest r is in bin itablemin +pair.cpp: // largest r is in bin itablemax, which is itablemin-1, +pair.cpp: // or ntablem1 if itablemin=0 +pair.cpp: // deltas at itablemax only needed if corresponding rsq < cut*cut +pair.cpp: // if so, compute deltas between rsq and cut*cut +pair.cpp: register double x2 = g2*rsq, a2 = 1.0/x2; +pair.cpp: drdisptable[itablemax] = 1.0/(rsq_lookup.f - rdisptable[itablemax]); +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp: ------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp: pow(sig1,3.0) * pow(sig2,3.0) / (pow(sig1,6.0) + pow(sig2,6.0))); +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp: return pow((0.5 * (pow(sig1,6.0) + pow(sig2,6.0))),1.0/6.0); +pair.cpp:/* ---------------------------------------------------------------------- */ +pair.cpp:/* ------------------------------------------------------------------- +pair.cpp:---------------------------------------------------------------------- */ +pair.cpp:/* ------------------------------------------------------------------- +pair.cpp:---------------------------------------------------------------------- */ +pair.cpp: // compact the list of active computes +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp: eflag_atom = eflag / 2; +pair.cpp: vflag_atom = vflag / 4; +pair.cpp: // reallocate per-atom arrays if necessary +pair.cpp: // zero accumulators +pair.cpp: // use force->newton instead of newton_pair +pair.cpp: // b/c some bonds/dihedrals call pair::ev_tally with pairwise info +pair.cpp: // if vflag_global = 2 and pair::compute() calls virial_fdotr_compute() +pair.cpp: // compute global virial via (F dot r) instead of via pairwise summation +pair.cpp: // unset other flags as appropriate +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp: ------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp: ------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp: ------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp: called by REAX/C potential, newton_pair is always on +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp: // sum over force on all particles including ghosts +pair.cpp: // neighbor includegroup flag is set +pair.cpp: // sum over force on initial nfirst particles and ghosts +pair.cpp: // prevent multiple calls to update the virial +pair.cpp: // when a hybrid pair style uses both a gpu and non-gpu pair style +pair.cpp: // or when respa is used with gpu pair styles +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp: write a table of pair potential energy/force vs distance to a file +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp: // parse arguments +pair.cpp: // open file in append mode +pair.cpp: // print header in format used by pair_style table +pair.cpp: // initialize potentials before evaluating pair potential +pair.cpp: // insures all pair coeffs are set and force constants +pair.cpp: // also initialize neighbor so that neighbor requests are processed +pair.cpp: // NOTE: might be safest to just do lmp->init() +pair.cpp: // if pair style = any of EAM, swap in dummy fp vector +pair.cpp: // if atom style defines charge, swap in dummy q vec +pair.cpp: // evaluate energy and force at each of N distances +pair.cpp: r = inner + (outer-inner) * i/(n-1); +pair.cpp: rsq = inner*inner + (outer*outer - inner*inner) * i/(n-1); +pair.cpp: // restore original vecs that were swapped in for +pair.cpp:/* ---------------------------------------------------------------------- +pair.cpp:------------------------------------------------------------------------- */ +pair.cpp: error->all(FLERR,"Bitmapped lookup tables require int/float be same size"); +pair.cpp: double required_range = outer*outer / pow(double(2),(double)nlowermin); +pair.cpp:/* ---------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_dpd.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- */ +pair_dpd.cpp: double dtinvsqrt = 1.0/sqrt(update->dt); +pair_dpd.cpp: // loop over neighbors of my atoms +pair_dpd.cpp: if (r < EPSILON) continue; // r can be 0.0 in DPD systems +pair_dpd.cpp: rinv = 1.0/r; +pair_dpd.cpp: wd = 1.0 - r/cut[itype][jtype]; +pair_dpd.cpp: // conservative force = a0 * wd +pair_dpd.cpp: // drag force = -gamma * wd^2 * (delx dot delv) / r +pair_dpd.cpp: // random force = sigma * wd * rnd * dtinvsqrt; +pair_dpd.cpp: // unshifted eng of conservative term: +pair_dpd.cpp: // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); +pair_dpd.cpp: // eng shifted to 0.0 at cutoff +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp: // initialize Marsaglia RNG with processor-unique seed +pair_dpd.cpp: // reset cutoffs that have been explicitly set +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp: // if newton off, forces between atoms ij will be double computed +pair_dpd.cpp: // using different random numbers +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp: // initialize Marsaglia RNG with processor-unique seed +pair_dpd.cpp: // same seed that pair_style command initially specified +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- +pair_dpd.cpp:------------------------------------------------------------------------- */ +pair_dpd.cpp:/* ---------------------------------------------------------------------- */ +pair_dpd.cpp: rinv = 1.0/r; +pair_dpd.cpp: wd = 1.0 - r/cut[itype][jtype]; +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- +pair_dpd_tstat.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_dpd_tstat.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- */ +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- */ +pair_dpd_tstat.cpp: // adjust sigma if target T is changing +pair_dpd_tstat.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +pair_dpd_tstat.cpp: double dtinvsqrt = 1.0/sqrt(update->dt); +pair_dpd_tstat.cpp: // loop over neighbors of my atoms +pair_dpd_tstat.cpp: if (r < EPSILON) continue; // r can be 0.0 in DPD systems +pair_dpd_tstat.cpp: rinv = 1.0/r; +pair_dpd_tstat.cpp: wd = 1.0 - r/cut[itype][jtype]; +pair_dpd_tstat.cpp: // drag force = -gamma * wd^2 * (delx dot delv) / r +pair_dpd_tstat.cpp: // random force = sigma * wd * rnd * dtinvsqrt; +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- +pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ +pair_dpd_tstat.cpp: // initialize Marsaglia RNG with processor-unique seed +pair_dpd_tstat.cpp: // reset cutoffs that have been explicitly set +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- +pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- +pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- +pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- +pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- +pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ +pair_dpd_tstat.cpp: // initialize Marsaglia RNG with processor-unique seed +pair_dpd_tstat.cpp: // same seed that pair_style command initially specified +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- +pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ +pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- +pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_gauss.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- */ +pair_gauss.cpp: // loop over neighbors of my atoms +pair_gauss.cpp: // define a Gaussian well to be occupied if +pair_gauss.cpp: // the site it interacts with is within the force maximum +pair_gauss.cpp: if (eflag_global && rsq < 0.5/b[itype][jtype]) occ++; +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp: // reset cutoffs that have been explicitly set +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp: double si = sqrt(0.5/fabs(b[i][i])); +pair_gauss.cpp: double sj = sqrt(0.5/fabs(b[j][j])); +pair_gauss.cpp: b[i][j] = 0.5 / (sij*sij); +pair_gauss.cpp: // Negative "a" values are useful for simulating repulsive particles. +pair_gauss.cpp: // If either of the particles is repulsive (a<0), then the +pair_gauss.cpp: // interaction between both is repulsive. +pair_gauss.cpp: // cutoff correction to energy +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- +pair_gauss.cpp:------------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- */ +pair_gauss.cpp:/* ---------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp: accumulate sub-style global/peratom energy/virial in hybrid +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: // if no_virial_fdotr_compute is set and global component of +pair_hybrid.cpp: // incoming vflag = 2, then +pair_hybrid.cpp: // reset vflag as if global component were 1 +pair_hybrid.cpp: // necessary since one or more sub-styles cannot compute virial as F dot r +pair_hybrid.cpp: if (no_virial_fdotr_compute && vflag % 4 == 2) vflag = 1 + vflag/4 * 4; +pair_hybrid.cpp: // check if global component of incoming vflag = 2 +pair_hybrid.cpp: // if so, reset vflag passed to substyle as if it were 0 +pair_hybrid.cpp: // necessary so substyle will not invoke virial_fdotr_compute() +pair_hybrid.cpp: if (vflag % 4 == 2) vflag_substyle = vflag/4 * 4; +pair_hybrid.cpp: // check if we are running with r-RESPA using the hybrid keyword +pair_hybrid.cpp: // invoke compute() unless compute flag is turned off or +pair_hybrid.cpp: // outerflag is set and sub-style has a compute_outer() method +pair_hybrid.cpp: // jump to next sub-style if r-RESPA does not want global accumulated data +pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: // delete old lists, since cannot just change settings +pair_hybrid.cpp: // allocate list of sub-styles as big as possibly needed if no extra args +pair_hybrid.cpp: // allocate each sub-style +pair_hybrid.cpp: // allocate uses suffix, but don't store suffix version in keywords, +pair_hybrid.cpp: // else syntax in coeff() will not match +pair_hybrid.cpp: // call settings() with set of args that are not pair style names +pair_hybrid.cpp: // use force->pair_map to determine which args these are +pair_hybrid.cpp: // multiple[i] = 1 to M if sub-style used multiple times, else 0 +pair_hybrid.cpp: // set pair flags from sub-style flags +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: // set comm_forward, comm_reverse, comm_reverse_off to max of any sub-style +pair_hybrid.cpp: // single_enable = 1 if any sub-style is set +pair_hybrid.cpp: // respa_enable = 1 if any sub-style is set +pair_hybrid.cpp: // manybody_flag = 1 if any sub-style is set +pair_hybrid.cpp: // no_virial_fdotr_compute = 1 if any sub-style is set +pair_hybrid.cpp: // ghostneigh = 1 if any sub-style is set +pair_hybrid.cpp: // ewaldflag, pppmflag, msmflag, dipoleflag, dispersionflag, tip4pflag = 1 +pair_hybrid.cpp: // if any sub-style is set +pair_hybrid.cpp: // compute_flag = 1 if any sub-style is set +pair_hybrid.cpp: // single_extra = min of all sub-style single_extra +pair_hybrid.cpp: // allocate svector +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: // 3rd arg = pair sub-style name +pair_hybrid.cpp: // 4th arg = pair sub-style index if name used multiple times +pair_hybrid.cpp: // allow for "none" as valid sub-style name +pair_hybrid.cpp: // move 1st/2nd args to 2nd/3rd args +pair_hybrid.cpp: // if multflag: move 1st/2nd args to 3rd/4th args +pair_hybrid.cpp: // just copy ptrs, since arg[] points into original input line +pair_hybrid.cpp: // invoke sub-style coeff() starting with 1st remaining arg +pair_hybrid.cpp: // if sub-style only allows one pair coeff call (with * * and type mapping) +pair_hybrid.cpp: // then unset setflag/map assigned to that style before setting it below +pair_hybrid.cpp: // in case pair coeff for this sub-style is being called for 2nd time +pair_hybrid.cpp: // set setflag and which type pairs map to which sub-style +pair_hybrid.cpp: // if sub-style is none: set hybrid setflag, wipe out map +pair_hybrid.cpp: // else: set hybrid setflag & map only if substyle setflag is set +pair_hybrid.cpp: // previous mappings are wiped out +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: // error if a sub-style is not used +pair_hybrid.cpp: // check if special_lj/special_coul overrides are compatible +pair_hybrid.cpp: // each sub-style makes its neighbor list request(s) +pair_hybrid.cpp: // create skip lists inside each pair neigh request +pair_hybrid.cpp: // any kind of list can have its skip flag set in this loop +pair_hybrid.cpp: // istyle = associated sub-style for the request +pair_hybrid.cpp: // allocate iskip and ijskip +pair_hybrid.cpp: // initialize so as to skip all pair types +pair_hybrid.cpp: // set ijskip = 0 if type pair matches any entry in sub-style map +pair_hybrid.cpp: // set ijskip = 0 if mixing will assign type pair to this sub-style +pair_hybrid.cpp: // will occur if type pair is currently unassigned +pair_hybrid.cpp: // and both I,I and J,J are assigned to single sub-style +pair_hybrid.cpp: // and sub-style for both I,I and J,J match istyle +pair_hybrid.cpp: // set iskip = 1 only if all ijskip for itype are 1 +pair_hybrid.cpp: // if any skipping occurs +pair_hybrid.cpp: // set request->skip and copy iskip and ijskip into request +pair_hybrid.cpp: // else delete iskip and ijskip +pair_hybrid.cpp: // no skipping if pair style assigned to all type pairs +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: // if I,J is not set explicitly: +pair_hybrid.cpp: // perform mixing only if I,I sub-style = J,J sub-style +pair_hybrid.cpp: // also require I,I and J,J are both assigned to single sub-style +pair_hybrid.cpp: // call init/mixing for all sub-styles of I,J +pair_hybrid.cpp: // set cutsq in sub-style just as Pair::init() does via call to init_one() +pair_hybrid.cpp: // set cutghost for I,J and J,I just as sub-style does +pair_hybrid.cpp: // sum tail corrections for I,J +pair_hybrid.cpp: // return max cutoff of all sub-styles assigned to I,J +pair_hybrid.cpp: // if no sub-styles assigned to I,J (pair_coeff none), cutmax = 0.0 returned +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: // each sub-style writes its settings, but no coeff info +pair_hybrid.cpp: // write out per style special settings, if present +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: // allocate list of sub-styles +pair_hybrid.cpp: // each sub-style is created via new_pair() +pair_hybrid.cpp: // each reads its settings, but no coeff info +pair_hybrid.cpp: // read back per style special settings, if present +pair_hybrid.cpp: // multiple[i] = 1 to M if sub-style used multiple times, else 0 +pair_hybrid.cpp: // set pair flags from sub-style flags +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: // copy substyle extra values into hybrid's svector +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: // if 1st keyword is pair, apply other keywords to one sub-style +pair_hybrid.cpp: // if 2nd keyword (after pair) is special: +pair_hybrid.cpp: // invoke modify_special() for the sub-style +pair_hybrid.cpp: // if 2nd keyword (after pair) is compute/tally: +pair_hybrid.cpp: // set flag to register USER-TALLY computes accordingly +pair_hybrid.cpp: if (iarg < narg && strcmp(arg[iarg],"compute/tally") == 0) { +pair_hybrid.cpp: error->all(FLERR,"Illegal pair_modify compute/tally command"); +pair_hybrid.cpp: } else error->all(FLERR,"Illegal pair_modify compute/tally command"); +pair_hybrid.cpp: // apply the remaining keywords to the base pair style itself and the +pair_hybrid.cpp: // sub-style except for "pair" and "special". +pair_hybrid.cpp: // the former is important for some keywords like "tail" or "compute" +pair_hybrid.cpp: // apply all keywords to pair hybrid itself and every sub-style +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp: if (strcmp(arg[0],"lj/coul") == 0) { +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid.cpp:/* ---------------------------------------------------------------------- +pair_hybrid.cpp:------------------------------------------------------------------------- */ +pair_hybrid_overlay.cpp:/* ---------------------------------------------------------------------- +pair_hybrid_overlay.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_hybrid_overlay.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_hybrid_overlay.cpp:------------------------------------------------------------------------- */ +pair_hybrid_overlay.cpp:/* ---------------------------------------------------------------------- */ +pair_hybrid_overlay.cpp:/* ---------------------------------------------------------------------- +pair_hybrid_overlay.cpp:------------------------------------------------------------------------- */ +pair_hybrid_overlay.cpp: // 3rd arg = pair sub-style name +pair_hybrid_overlay.cpp: // 4th arg = pair sub-style index if name used multiple times +pair_hybrid_overlay.cpp: // allow for "none" as valid sub-style name +pair_hybrid_overlay.cpp: // move 1st/2nd args to 2nd/3rd args +pair_hybrid_overlay.cpp: // if multflag: move 1st/2nd args to 3rd/4th args +pair_hybrid_overlay.cpp: // just copy ptrs, since arg[] points into original input line +pair_hybrid_overlay.cpp: // invoke sub-style coeff() starting with 1st remaining arg +pair_hybrid_overlay.cpp: // set setflag and which type pairs map to which sub-style +pair_hybrid_overlay.cpp: // if sub-style is none: set hybrid subflag, wipe out map +pair_hybrid_overlay.cpp: // else: set hybrid setflag & map only if substyle setflag is set +pair_hybrid_overlay.cpp: // if sub-style is new for type pair, add as multiple mapping +pair_hybrid_overlay.cpp: // if sub-style exists for type pair, don't add, just update coeffs +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj96_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj96_cut.cpp: // loop over neighbors of my atoms +pair_lj96_cut.cpp: r2inv = 1.0/rsq; +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj96_cut.cpp: // loop over neighbors of my atoms +pair_lj96_cut.cpp: r2inv = 1.0/rsq; +pair_lj96_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj96_cut.cpp: // loop over neighbors of my atoms +pair_lj96_cut.cpp: r2inv = 1.0/rsq; +pair_lj96_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; +pair_lj96_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj96_cut.cpp: // loop over neighbors of my atoms +pair_lj96_cut.cpp: r2inv = 1.0/rsq; +pair_lj96_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; +pair_lj96_cut.cpp: r2inv = 1.0/rsq; +pair_lj96_cut.cpp: r2inv = 1.0/rsq; +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp: // reset cutoffs that have been explicitly set +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp: // request regular or rRESPA neighbor lists +pair_lj96_cut.cpp: // set rRESPA cutoffs +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp: double ratio = sigma[i][j] / cut[i][j]; +pair_lj96_cut.cpp: // check interior rRESPA cutoff +pair_lj96_cut.cpp: // compute I,J contribution to long-range tail correction +pair_lj96_cut.cpp: // count total # of atoms of type I and J via Allreduce +pair_lj96_cut.cpp: sig6 * (sig3 - 2.0*rc3) / (6.0*rc6); +pair_lj96_cut.cpp: sig6 * (3.0*sig3 - 4.0*rc3) / (6.0*rc6); +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj96_cut.cpp:------------------------------------------------------------------------- */ +pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj96_cut.cpp: r2inv = 1.0/rsq; +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- +pair_lj_cubic.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj_cubic.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj_cubic.cpp:------------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- +pair_lj_cubic.cpp:------------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cubic.cpp: // loop over neighbors of my atoms +pair_lj_cubic.cpp: r2inv = 1.0/rsq; +pair_lj_cubic.cpp: t = (r - cut_inner[itype][jtype])/rmin; +pair_lj_cubic.cpp: forcelj = epsilon[itype][jtype]*(-DPHIDS + A3*t*t/2.0)*r/rmin; +pair_lj_cubic.cpp: (PHIS + DPHIDS*t - A3*t*t*t/6.0); +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- +pair_lj_cubic.cpp:------------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- +pair_lj_cubic.cpp:------------------------------------------------------------------------- */ +pair_lj_cubic.cpp: // reset cutoffs that have been explicitly set +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- +pair_lj_cubic.cpp:------------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- +pair_lj_cubic.cpp:------------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- +pair_lj_cubic.cpp:------------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- +pair_lj_cubic.cpp:------------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- +pair_lj_cubic.cpp:------------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- +pair_lj_cubic.cpp:------------------------------------------------------------------------- */ +pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cubic.cpp: r2inv = 1.0/rsq; +pair_lj_cubic.cpp: t = (r - cut_inner[itype][jtype])/rmin; +pair_lj_cubic.cpp: forcelj = epsilon[itype][jtype]*(-DPHIDS + A3*t*t/2.0)*r/rmin; +pair_lj_cubic.cpp: (PHIS + DPHIDS*t - A3*t*t*t/6.0); +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj_cut_coul_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp: // loop over neighbors of my atoms +pair_lj_cut_coul_cut.cpp: r2inv = 1.0/rsq; +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp: // reset cutoffs that have been explicitly set +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp: error->all(FLERR,"Pair style lj/cut/coul/cut requires atom attribute q"); +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp: double ratio = sigma[i][j] / cut_lj[i][j]; +pair_lj_cut_coul_cut.cpp: // compute I,J contribution to long-range tail correction +pair_lj_cut_coul_cut.cpp: // count total # of atoms of type I and J via Allreduce +pair_lj_cut_coul_cut.cpp: sig6 * (sig6 - 3.0*rc6) / (9.0*rc9); +pair_lj_cut_coul_cut.cpp: sig6 * (2.0*sig6 - 3.0*rc6) / (9.0*rc9); +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_cut.cpp: r2inv = 1.0/rsq; +pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_debye.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj_cut_coul_debye.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj_cut_coul_debye.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_debye.cpp: // loop over neighbors of my atoms +pair_lj_cut_coul_debye.cpp: r2inv = 1.0/rsq; +pair_lj_cut_coul_debye.cpp: rinv = 1.0/r; +pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_debye.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_debye.cpp: // reset cutoffs that were previously set from data file +pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_debye.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_debye.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_debye.cpp: r2inv = 1.0/rsq; +pair_lj_cut_coul_debye.cpp: rinv = 1.0/r; +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj_cut_coul_dsf.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp: // loop over neighbors of my atoms +pair_lj_cut_coul_dsf.cpp: double e_self = -(e_shift/2.0 + alpha/MY_PIS) * qtmp*qtmp*qqrd2e; +pair_lj_cut_coul_dsf.cpp: r2inv = 1.0/rsq; +pair_lj_cut_coul_dsf.cpp: prefactor = qqrd2e*qtmp*q[j]/r; +pair_lj_cut_coul_dsf.cpp: t = 1.0 / (1.0 + EWALD_P*alpha*r); +pair_lj_cut_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS * erfcd + +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp: // reset cutoffs that have been explicitly set +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp: error->all(FLERR,"Pair style lj/cut/coul/dsf requires atom attribute q"); +pair_lj_cut_coul_dsf.cpp: f_shift = -(erfcc/cut_coulsq + 2.0/MY_PIS*alpha*erfcd/cut_coul); +pair_lj_cut_coul_dsf.cpp: e_shift = erfcc/cut_coul - f_shift*cut_coul; +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp: double ratio = sigma[i][j] / cut_lj[i][j]; +pair_lj_cut_coul_dsf.cpp: // compute I,J contribution to long-range tail correction +pair_lj_cut_coul_dsf.cpp: // count total # of atoms of type I and J via Allreduce +pair_lj_cut_coul_dsf.cpp: sig6 * (sig6 - 3.0*rc6) / (9.0*rc9); +pair_lj_cut_coul_dsf.cpp: sig6 * (2.0*sig6 - 3.0*rc6) / (9.0*rc9); +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut_coul_dsf.cpp: r2inv = 1.0/rsq; +pair_lj_cut_coul_dsf.cpp: prefactor = factor_coul * force->qqrd2e * atom->q[i]*atom->q[j]/r; +pair_lj_cut_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS * erfcd + +pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut.cpp: // loop over neighbors of my atoms +pair_lj_cut.cpp: r2inv = 1.0/rsq; +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut.cpp: // loop over neighbors of my atoms +pair_lj_cut.cpp: r2inv = 1.0/rsq; +pair_lj_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut.cpp: // loop over neighbors of my atoms +pair_lj_cut.cpp: r2inv = 1.0/rsq; +pair_lj_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; +pair_lj_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut.cpp: // loop over neighbors of my atoms +pair_lj_cut.cpp: r2inv = 1.0/rsq; +pair_lj_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; +pair_lj_cut.cpp: r2inv = 1.0/rsq; +pair_lj_cut.cpp: r2inv = 1.0/rsq; +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp: // reset cutoffs that have been explicitly set +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp: // request regular or rRESPA neighbor lists +pair_lj_cut.cpp: // set rRESPA cutoffs +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp: double ratio = sigma[i][j] / cut[i][j]; +pair_lj_cut.cpp: // check interior rRESPA cutoff +pair_lj_cut.cpp: // compute I,J contribution to long-range tail correction +pair_lj_cut.cpp: // count total # of atoms of type I and J via Allreduce +pair_lj_cut.cpp: sig6 * (sig6 - 3.0*rc6) / (9.0*rc9); +pair_lj_cut.cpp: sig6 * (2.0*sig6 - 3.0*rc6) / (9.0*rc9); +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- +pair_lj_cut.cpp:------------------------------------------------------------------------- */ +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_cut.cpp: r2inv = 1.0/rsq; +pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj_expand.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_expand.cpp: // loop over neighbors of my atoms +pair_lj_expand.cpp: r2inv = 1.0/rshiftsq; +pair_lj_expand.cpp: fpair = factor_lj*forcelj/rshift/r; +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp: // reset cutoffs that have been explicitly set +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp: // always mix shift arithmetically +pair_lj_expand.cpp: double ratio = sigma[i][j] / cut[i][j]; +pair_lj_expand.cpp: // compute I,J contribution to long-range tail correction +pair_lj_expand.cpp: // count total # of atoms of type I and J via Allreduce +pair_lj_expand.cpp: ((1.0/9.0 + 2.0*shift1/(10.0*rc1) + shift2/(11.0*rc2))*sig6/rc9 - +pair_lj_expand.cpp: (1.0/3.0 + 2.0*shift1/(4.0*rc1) + shift2/(5.0*rc2))/rc3); +pair_lj_expand.cpp: ((1.0/9.0 + 3.0*shift1/(10.0*rc1) + +pair_lj_expand.cpp: 3.0*shift2/(11.0*rc2) + shift3/(12.0*rc3))*2.0*sig6/rc9 - +pair_lj_expand.cpp: (1.0/3.0 + 3.0*shift1/(4.0*rc1) + +pair_lj_expand.cpp: 3.0*shift2/(5.0*rc2) + shift3/(6.0*rc3))/rc3); +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- +pair_lj_expand.cpp:------------------------------------------------------------------------- */ +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_expand.cpp: r2inv = 1.0/rshiftsq; +pair_lj_expand.cpp: fforce = factor_lj*forcelj/rshift/r; +pair_lj_expand.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj_gromacs_coul_gromacs.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp: // loop over neighbors of my atoms +pair_lj_gromacs_coul_gromacs.cpp: r2inv = 1.0/rsq; +pair_lj_gromacs_coul_gromacs.cpp: // skip if qi or qj = 0.0 since this potential may be used as +pair_lj_gromacs_coul_gromacs.cpp: // coarse-grain model with many uncharged atoms +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp: "Pair style lj/gromacs/coul/gromacs requires atom attribute q"); +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp: double r6inv = 1.0/pow(cut_lj,6.0); +pair_lj_gromacs_coul_gromacs.cpp: double r8inv = 1.0/pow(cut_lj,8.0); +pair_lj_gromacs_coul_gromacs.cpp: double t2inv = 1.0/(t*t); +pair_lj_gromacs_coul_gromacs.cpp: double t3inv = t2inv/t; +pair_lj_gromacs_coul_gromacs.cpp: double t3 = 1.0/t3inv; +pair_lj_gromacs_coul_gromacs.cpp: double c6 = r6inv - t3*(6.0*a6/3.0 + 6.0*b6*t/4.0); +pair_lj_gromacs_coul_gromacs.cpp: double c12 = r6inv*r6inv - t3*(12.0*a12/3.0 + 12.0*b12*t/4.0); +pair_lj_gromacs_coul_gromacs.cpp: ljsw3[i][j] = -lj3[i][j]*12.0*a12/3.0 + lj4[i][j]*6.0*a6/3.0; +pair_lj_gromacs_coul_gromacs.cpp: ljsw4[i][j] = -lj3[i][j]*12.0*b12/4.0 + lj4[i][j]*6.0*b6/4.0; +pair_lj_gromacs_coul_gromacs.cpp: double r3inv = 1.0/pow(cut_coul,3.0); +pair_lj_gromacs_coul_gromacs.cpp: t2inv = 1.0/(t*t); +pair_lj_gromacs_coul_gromacs.cpp: t3inv = t2inv/t; +pair_lj_gromacs_coul_gromacs.cpp: coulsw3 = -a1/3.0; +pair_lj_gromacs_coul_gromacs.cpp: coulsw4 = -b1/4.0; +pair_lj_gromacs_coul_gromacs.cpp: coulsw5 = 1.0/cut_coul - t*t*t*(a1/3.0 + b1*t/4.0); +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_gromacs_coul_gromacs.cpp: r2inv = 1.0/rsq; +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj_gromacs.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_gromacs.cpp: // loop over neighbors of my atoms +pair_lj_gromacs.cpp: r2inv = 1.0/rsq; +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp: // reset cutoffs that have been explicitly set +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp: double r6inv = 1.0/pow(cut[i][j],6.0); +pair_lj_gromacs.cpp: double r8inv = 1.0/pow(cut[i][j],8.0); +pair_lj_gromacs.cpp: double t2inv = 1.0/(t*t); +pair_lj_gromacs.cpp: double t3inv = t2inv/t; +pair_lj_gromacs.cpp: double t3 = 1.0/t3inv; +pair_lj_gromacs.cpp: double c6 = r6inv - t3*(6.0*a6/3.0 + 6.0*b6*t/4.0); +pair_lj_gromacs.cpp: double c12 = r6inv*r6inv - t3*(12.0*a12/3.0 + 12.0*b12*t/4.0); +pair_lj_gromacs.cpp: ljsw3[i][j] = -lj3[i][j]*12.0*a12/3.0 + lj4[i][j]*6.0*a6/3.0; +pair_lj_gromacs.cpp: ljsw4[i][j] = -lj3[i][j]*12.0*b12/4.0 + lj4[i][j]*6.0*b6/4.0; +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- +pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ +pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_gromacs.cpp: r2inv = 1.0/rsq; +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj_smooth.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_smooth.cpp: // loop over neighbors of my atoms +pair_lj_smooth.cpp: r2inv = 1.0/rsq; +pair_lj_smooth.cpp: ljsw2[itype][jtype]*tsq/2.0 - ljsw3[itype][jtype]*tsq*t/3.0 - +pair_lj_smooth.cpp: ljsw4[itype][jtype]*tsq*tsq/4.0 - offset[itype][jtype]; +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp: // reset cutoffs that have been explicitly set +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp: double r6inv = 1.0/pow(cut_inner[i][j],6.0); +pair_lj_smooth.cpp: double ratio = sigma[i][j] / cut_inner[i][j]; +pair_lj_smooth.cpp: ljsw1[i][j] = r6inv*(lj1[i][j]*r6inv-lj2[i][j]) / cut_inner[i][j]; +pair_lj_smooth.cpp: ljsw2[i][j] = -r6inv * (13.0*lj1[i][j]*r6inv - 7.0*lj2[i][j]) / +pair_lj_smooth.cpp: ljsw3[i][j] = -(3.0/tsq) * (ljsw1[i][j] + 2.0/3.0*ljsw2[i][j]*t); +pair_lj_smooth.cpp: ljsw4[i][j] = -1.0/(3.0*tsq) * (ljsw2[i][j] + 2.0*ljsw3[i][j]*t); +pair_lj_smooth.cpp: offset[i][j] = ljsw0[i][j] - ljsw1[i][j]*t - ljsw2[i][j]*tsq/2.0 - +pair_lj_smooth.cpp: ljsw3[i][j]*tsq*t/3.0 - ljsw4[i][j]*tsq*tsq/4.0; +pair_lj_smooth.cpp: double ratio = sigma[i][j] / cut_inner[i][j]; +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_smooth.cpp: r2inv = 1.0/rsq; +pair_lj_smooth.cpp: ljsw2[itype][jtype]*tsq/2.0 - ljsw3[itype][jtype]*tsq*t/3.0 - +pair_lj_smooth.cpp: ljsw4[itype][jtype]*tsq*tsq/4.0 - offset[itype][jtype]; +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth_linear.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_lj_smooth_linear.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp: // loop over neighbors of my atoms +pair_lj_smooth_linear.cpp: r2inv = 1.0/rsq; +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp: // reset cutoffs that have been explicitly set +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp: double cutinv = 1.0/cut[i][j]; +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- +pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- */ +pair_lj_smooth_linear.cpp: r2inv = 1.0/rsq; +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_mie_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_mie_cut.cpp: // loop over neighbors of my atoms +pair_mie_cut.cpp: r2inv = 1.0/rsq; +pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); +pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_mie_cut.cpp: // loop over neighbors of my atoms +pair_mie_cut.cpp: r2inv = 1.0/rsq; +pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); +pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); +pair_mie_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_mie_cut.cpp: // loop over neighbors of my atoms +pair_mie_cut.cpp: r2inv = 1.0/rsq; +pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); +pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); +pair_mie_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; +pair_mie_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_mie_cut.cpp: // loop over neighbors of my atoms +pair_mie_cut.cpp: r2inv = 1.0/rsq; +pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); +pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); +pair_mie_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; +pair_mie_cut.cpp: r2inv = 1.0/rsq; +pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); +pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); +pair_mie_cut.cpp: r2inv = 1.0/rsq; +pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); +pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp: // reset cutoffs that have been explicitly set +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp: // request regular or rRESPA neighbor lists +pair_mie_cut.cpp: // set rRESPA cutoffs +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp: Cmie[i][j] = (gamR[i][j]/(gamR[i][j]-gamA[i][j]) * +pair_mie_cut.cpp: pow((gamR[i][j]/gamA[i][j]), +pair_mie_cut.cpp: (gamA[i][j]/(gamR[i][j]-gamA[i][j])))); +pair_mie_cut.cpp: double ratio = sigma[i][j] / cut[i][j]; +pair_mie_cut.cpp: // check interior rRESPA cutoff +pair_mie_cut.cpp: // compute I,J contribution to long-range tail correction +pair_mie_cut.cpp: // count total # of atoms of type I and J via Allreduce +pair_mie_cut.cpp: (siggamR/((gamR[i][j]-3.0)*rcgamR)-siggamA/((gamA[i][j]-3.0)*rcgamA)); +pair_mie_cut.cpp: ptail_ij = Cmie[i][j]*2.0*MY_PI*all[0]*all[1]*epsilon[i][j]/3.0* +pair_mie_cut.cpp: ((gamR[i][j]/(gamR[i][j]-3.0))*siggamR/rcgamR- +pair_mie_cut.cpp: (gamA[i][j]/(gamA[i][j]-3.0))*siggamA/rcgamA); +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- +pair_mie_cut.cpp:------------------------------------------------------------------------- */ +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_mie_cut.cpp: r2inv = 1.0/rsq; +pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); +pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); +pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_morse.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- */ +pair_morse.cpp: // loop over neighbors of my atoms +pair_morse.cpp: fpair = factor_lj * morse1[itype][jtype] * (dexp*dexp - dexp) / r; +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp: // reset cutoffs that have been explicitly set +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- +pair_morse.cpp:------------------------------------------------------------------------- */ +pair_morse.cpp:/* ---------------------------------------------------------------------- */ +pair_morse.cpp: fforce = factor_lj * morse1[itype][jtype] * (dexp*dexp - dexp) / r; +pair_morse.cpp:/* ---------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_soft.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- */ +pair_soft.cpp: // loop over neighbors of my atoms +pair_soft.cpp: arg = MY_PI*r/cut[itype][jtype]; +pair_soft.cpp: sin(arg) * MY_PI/cut[itype][jtype]/r; +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp: // reset cutoffs that have been explicitly set +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp: // always mix prefactors geometrically +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- +pair_soft.cpp:------------------------------------------------------------------------- */ +pair_soft.cpp:/* ---------------------------------------------------------------------- */ +pair_soft.cpp: arg = MY_PI*r/cut[itype][jtype]; +pair_soft.cpp: sin(arg) * MY_PI/cut[itype][jtype]/r; +pair_soft.cpp:/* ---------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- +pair_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_spin.cpp:------------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- */ +pair_spin.cpp: // Pair spin computations +pair_spin.cpp: // Loop over neighbors of my itoms +pair_spin.cpp: //Loop on Neighbors +pair_spin.cpp: rsq = delx*delx + dely*dely + delz*delz; //square or inter-atomic distance +pair_spin.cpp: rd = sqrt(rsq); //Inter-atomic distance +pair_spin.cpp: //Exchange interaction +pair_spin.cpp: //DM interaction +pair_spin.cpp: //ME interaction +pair_spin.cpp:/* ---------------------------------------------------------------------- */ +pair_spin.cpp: ra = rsq/J_3[itype][jtype]/J_3[itype][jtype]; +pair_spin.cpp:/* ---------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- */ +pair_spin.cpp: inorm = 1.0/sqrt(rx*rx+ry*ry+rz*rz); +pair_spin.cpp: // printf("test val fmi=%g, fmj=%g \n",fmi[2],fmj[2]); +pair_spin.cpp:/* ---------------------------------------------------------------------- +pair_spin.cpp:------------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- +pair_spin.cpp:------------------------------------------------------------------------- */ +pair_spin.cpp: error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); +pair_spin.cpp: // reset cutoffs that have been explicitly set +pair_spin.cpp:/* ---------------------------------------------------------------------- +pair_spin.cpp:------------------------------------------------------------------------- */ +pair_spin.cpp: double hbar = force->hplanck/MY_2PI; +pair_spin.cpp: J1 /= hbar; +pair_spin.cpp: double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); +pair_spin.cpp: double hbar = force->hplanck/MY_2PI; +pair_spin.cpp: dm /= hbar; +pair_spin.cpp: double inorm = 1.0/(mex*mex+mey*mey+mez*mez); +pair_spin.cpp: double hbar = force->hplanck/MY_2PI; +pair_spin.cpp: me /= hbar; +pair_spin.cpp: //Check if Jex [][] still works for Ferrimagnetic exchange +pair_spin.cpp:/* ---------------------------------------------------------------------- +pair_spin.cpp:------------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- +pair_spin.cpp:------------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- +pair_spin.cpp:------------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- +pair_spin.cpp:------------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- +pair_spin.cpp:------------------------------------------------------------------------- */ +pair_spin.cpp:/* ---------------------------------------------------------------------- +pair_spin.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_table.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- */ +pair_table.cpp: // loop over neighbors of my atoms +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp: // new settings +pair_table.cpp: // optional keywords +pair_table.cpp: // assert the tabulation is compatible with a specific long-range solver +pair_table.cpp: // delete old tables, since cannot just change settings +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp: // set table cutoff +pair_table.cpp: // error check on table parameters +pair_table.cpp: // insure cutoff is within table +pair_table.cpp: // for BITMAP tables, file values can be in non-ascending order +pair_table.cpp: // match = 1 if don't need to spline read-in tables +pair_table.cpp: // this is only the case if r values needed by final tables +pair_table.cpp: // exactly match r values read from file +pair_table.cpp: // for tabstyle SPLINE, always need to build spline tables +pair_table.cpp: // spline read-in values and compute r,e,f vectors within table +pair_table.cpp: // store ptr to table in tabindex +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp: // open file +pair_table.cpp: // loop until section found with matching keyword +pair_table.cpp: if (strspn(line," \t\n\r") == strlen(line)) continue; // blank line +pair_table.cpp: if (line[0] == '#') continue; // comment +pair_table.cpp: if (strcmp(word,keyword) == 0) break; // matching keyword +pair_table.cpp: fgets(line,MAXLINE,fp); // no match, skip section +pair_table.cpp: // read args on 2nd line of section +pair_table.cpp: // allocate table arrays for file values +pair_table.cpp: // setup bitmap parameters for table to read in +pair_table.cpp: // read r,e,f table values from file +pair_table.cpp: // if rflag set, compute r +pair_table.cpp: // if rflag not set, use r from file +pair_table.cpp: rnew = tb->rlo + (tb->rhi - tb->rlo)*i/(tb->ninput-1); +pair_table.cpp: (tb->rhi*tb->rhi - tb->rlo*tb->rlo)*i/(tb->ninput-1); +pair_table.cpp: if (tb->rflag && fabs(rnew-rfile)/rfile > EPSILONR) rerror++; +pair_table.cpp: // close file +pair_table.cpp: // warn if force != dE/dr at any point that is not an inflection point +pair_table.cpp: // check via secant approximation to dE/dr +pair_table.cpp: // skip two end points since do not have surrounding secants +pair_table.cpp: // inflection point is where curvature changes sign +pair_table.cpp: fleft = - (e-eprev) / (r-rprev); +pair_table.cpp: fright = - (enext-e) / (rnext-r); +pair_table.cpp: //printf("Values %d: %g %g %g\n",i,r,e,f); +pair_table.cpp: //printf(" secant %d %d %g: %g %g %g\n",i,ferror,r,fleft,fright,f); +pair_table.cpp: sprintf(str,"%d of %d force values in table are inconsistent with -dE/dr.\n" +pair_table.cpp: // warn if re-computed distance values differ from file values +pair_table.cpp: // warn if data was read incompletely, e.g. columns were missing +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp: tb->fplo = (tb->ffile[1] - tb->ffile[0]) / (tb->rfile[1] - tb->rfile[0]); +pair_table.cpp: tb->fphi = (tb->ffile[tb->ninput-1] - tb->ffile[tb->ninput-2]) / +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp: format of line: N value R/RSQ/BITMAP lo hi FPRIME fplo fphi +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp: // inner = inner table bound +pair_table.cpp: // cut = outer table bound +pair_table.cpp: // delta = table spacing in rsq for N-1 bins +pair_table.cpp: tb->delta = (tb->cut*tb->cut - tb->innersq) / tlm1; +pair_table.cpp: tb->invdelta = 1.0/tb->delta; +pair_table.cpp: // direct lookup tables +pair_table.cpp: // N-1 evenly spaced bins in rsq from inner to cut +pair_table.cpp: // e,f = value at midpt of bin +pair_table.cpp: // e,f are N-1 in length since store 1 value at bin midpt +pair_table.cpp: // f is converted to f/r when stored in f[i] +pair_table.cpp: // e,f are never a match to read-in values, always computed via spline interp +pair_table.cpp: tb->f[i] = splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,r)/r; +pair_table.cpp: // linear tables +pair_table.cpp: // N-1 evenly spaced bins in rsq from inner to cut +pair_table.cpp: // rsq,e,f = value at lower edge of bin +pair_table.cpp: // de,df values = delta from lower edge to upper edge of bin +pair_table.cpp: // rsq,e,f are N in length so de,df arrays can compute difference +pair_table.cpp: // f is converted to f/r when stored in f[i] +pair_table.cpp: // e,f can match read-in values, else compute via spline interp +pair_table.cpp: tb->f[i] = tb->ffile[i]/r; +pair_table.cpp: tb->f[i] = splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,r)/r; +pair_table.cpp: // cubic spline tables +pair_table.cpp: // N-1 evenly spaced bins in rsq from inner to cut +pair_table.cpp: // rsq,e,f = value at lower edge of bin +pair_table.cpp: // e2,f2 = spline coefficient for each bin +pair_table.cpp: // rsq,e,f,e2,f2 are N in length so have N-1 spline bins +pair_table.cpp: // f is converted to f/r after e is splined +pair_table.cpp: // e,f can match read-in values, else compute via spline interp +pair_table.cpp: tb->deltasq6 = tb->delta*tb->delta / 6.0; +pair_table.cpp: tb->f[i] = tb->ffile[i]/r; +pair_table.cpp: // ep0,epn = dh/dg at inner and at cut +pair_table.cpp: // h(r) = e(r) and g(r) = r^2 +pair_table.cpp: // dh/dg = (de/dr) / 2r = -f/2r +pair_table.cpp: double ep0 = - tb->f[0] / (2.0 * sqrt(tb->innersq)); +pair_table.cpp: double epn = - tb->f[tlm1] / (2.0 * tb->cut); +pair_table.cpp: // fp0,fpn = dh/dg at inner and at cut +pair_table.cpp: // h(r) = f(r)/r and g(r) = r^2 +pair_table.cpp: // dh/dg = (1/r df/dr - f/r^2) / 2r +pair_table.cpp: // dh/dg in secant approx = (f(r2)/r2 - f(r1)/r1) / (g(r2) - g(r1)) +pair_table.cpp: if (tb->fpflag) fp0 = (tb->fplo/sqrt(tb->innersq) - tb->f[0]/tb->innersq) / +pair_table.cpp: fp0 = (splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,sqrt(rsq2)) / +pair_table.cpp: sqrt(rsq2) - tb->f[0] / sqrt(rsq1)) / (secant_factor*tb->delta); +pair_table.cpp: (tb->fphi/tb->cut - tb->f[tlm1]/(tb->cut*tb->cut)) / (2.0 * tb->cut); +pair_table.cpp: fpn = (tb->f[tlm1] / sqrt(rsq2) - +pair_table.cpp: splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,sqrt(rsq1)) / +pair_table.cpp: sqrt(rsq1)) / (secant_factor*tb->delta); +pair_table.cpp: for (int i = 0; i < tablength; i++) tb->f[i] /= sqrt(tb->rsq[i]); +pair_table.cpp: // bitmapped linear tables +pair_table.cpp: // 2^N bins from inner to cut, spaced in bitmapped manner +pair_table.cpp: // f is converted to f/r when stored in f[i] +pair_table.cpp: // e,f can match read-in values, else compute via spline interp +pair_table.cpp: // linear lookup tables of length ntable = 2^n +pair_table.cpp: // stored value = value at lower edge of bin +pair_table.cpp: tb->f[i] = tb->ffile[i]/r; +pair_table.cpp: tb->f[i] = splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,r)/r; +pair_table.cpp: tb->drsq[i] = 1.0/(tb->rsq[i+1] - tb->rsq[i]); +pair_table.cpp: // get the delta values for the last table entries +pair_table.cpp: // tables are connected periodically between 0 and ntablem1 +pair_table.cpp: tb->drsq[ntablem1] = 1.0/(tb->rsq[0] - tb->rsq[ntablem1]); +pair_table.cpp: // get the correct delta values at itablemax +pair_table.cpp: // smallest r is in bin itablemin +pair_table.cpp: // largest r is in bin itablemax, which is itablemin-1, +pair_table.cpp: // or ntablem1 if itablemin=0 +pair_table.cpp: // deltas at itablemax only needed if corresponding rsq < cut*cut +pair_table.cpp: // if so, compute deltas between rsq and cut*cut +pair_table.cpp: // if tb->match, data at cut*cut is unavailable, so we'll take +pair_table.cpp: // deltas at itablemax-1 as a good approximation +pair_table.cpp: f_tmp = splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,r)/r; +pair_table.cpp: tb->drsq[itablemax] = 1.0/(rsq_lookup.f - tb->rsq[itablemax]); +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp: u[0] = (3.0/(x[1]-x[0])) * ((y[1]-y[0]) / (x[1]-x[0]) - yp1); +pair_table.cpp: sig = (x[i]-x[i-1]) / (x[i+1]-x[i-1]); +pair_table.cpp: y2[i] = (sig-1.0) / p; +pair_table.cpp: u[i] = (y[i+1]-y[i]) / (x[i+1]-x[i]) - (y[i]-y[i-1]) / (x[i]-x[i-1]); +pair_table.cpp: u[i] = (6.0*u[i] / (x[i+1]-x[i-1]) - sig*u[i-1]) / p; +pair_table.cpp: un = (3.0/(x[n-1]-x[n-2])) * (ypn - (y[n-1]-y[n-2]) / (x[n-1]-x[n-2])); +pair_table.cpp: y2[n-1] = (un-qn*u[n-2]) / (qn*y2[n-2] + 1.0); +pair_table.cpp:/* ---------------------------------------------------------------------- */ +pair_table.cpp: a = (xa[khi]-x) / h; +pair_table.cpp: b = (x-xa[klo]) / h; +pair_table.cpp: ((a*a*a-a)*y2a[klo] + (b*b*b-b)*y2a[khi]) * (h*h)/6.0; +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- */ +pair_table.cpp:/* ---------------------------------------------------------------------- +pair_table.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_yukawa.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- */ +pair_yukawa.cpp: // loop over neighbors of my atoms +pair_yukawa.cpp: r2inv = 1.0/rsq; +pair_yukawa.cpp: rinv = 1.0/r; +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp: // reset cutoffs that have been explicitly set +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp: offset[i][j] = a[i][j] * screening / cut[i][j]; +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- +pair_yukawa.cpp:------------------------------------------------------------------------- */ +pair_yukawa.cpp:/* ---------------------------------------------------------------------- */ +pair_yukawa.cpp: r2inv = 1.0/rsq; +pair_yukawa.cpp: rinv = 1.0/r; +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_zbl.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp:// From J.F. Zeigler, J. P. Biersack and U. Littmark, +pair_zbl.cpp:// "The Stopping and Range of Ions in Matter" volume 1, Pergamon, 1985. +pair_zbl.cpp:/* ---------------------------------------------------------------------- */ +pair_zbl.cpp:/* ---------------------------------------------------------------------- */ +pair_zbl.cpp:/* ---------------------------------------------------------------------- */ +pair_zbl.cpp: // loop over neighbors of my atoms +pair_zbl.cpp: fpair *= -1.0/r; +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp: // set flag for each i-j pair +pair_zbl.cpp: // set z-parameter only for i-i pairs +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp:/* ---------------------------------------------------------------------- */ +pair_zbl.cpp: fforce *= -1.0/r; +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp: double rinv = 1.0/r; +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp: double rinv = 1.0/r; +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp: double rinv = 1.0/r; +pair_zbl.cpp:/* ---------------------------------------------------------------------- +pair_zbl.cpp:------------------------------------------------------------------------- */ +pair_zbl.cpp: double ainv = (pow(zi,pzbl) + pow(zj,pzbl))/(a0*force->angstrom); +pair_zbl.cpp: // e = t^3 (sw3 + sw4*t) + sw5 +pair_zbl.cpp: // = A/3*t^3 + B/4*t^4 + C +pair_zbl.cpp: // sw3 = A/3 +pair_zbl.cpp: // sw4 = B/4 +pair_zbl.cpp: // sw5 = C +pair_zbl.cpp: // dedr = t^2 (sw1 + sw2*t) +pair_zbl.cpp: // = A*t^2 + B*t^3 +pair_zbl.cpp: // sw1 = A +pair_zbl.cpp: // sw2 = B +pair_zbl.cpp: // de2dr2 = 2*A*t + 3*B*t^2 +pair_zbl.cpp: // Require that at t = tc: +pair_zbl.cpp: // e = -Fc +pair_zbl.cpp: // dedr = -Fc' +pair_zbl.cpp: // d2edr2 = -Fc'' +pair_zbl.cpp: // Hence: +pair_zbl.cpp: // A = (-3Fc' + tc*Fc'')/tc^2 +pair_zbl.cpp: // B = ( 2Fc' - tc*Fc'')/tc^3 +pair_zbl.cpp: // C = -Fc + tc/2*Fc' - tc^2/12*Fc'' +pair_zbl.cpp: double swa = (-3.0*fcp + tc*fcpp)/(tc*tc); +pair_zbl.cpp: double swb = ( 2.0*fcp - tc*fcpp)/(tc*tc*tc); +pair_zbl.cpp: double swc = -fc + (tc/2.0)*fcp - (tc*tc/12.0)*fcpp; +pair_zbl.cpp: sw3[i][j] = swa/3.0; +pair_zbl.cpp: sw4[i][j] = swb/4.0; +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +pair_zero.cpp: http://lammps.sandia.gov, Sandia National Laboratories +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp: // reset cutoffs that have been explicitly set +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +pair_zero.cpp:/* ---------------------------------------------------------------------- +pair_zero.cpp:------------------------------------------------------------------------- */ +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +procmap.cpp: http://lammps.sandia.gov, Sandia National Laboratories +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp:enum{MULTIPLE}; // same as in Comm +procmap.cpp:/* ---------------------------------------------------------------------- */ +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: // factors = list of all possible 3 factors of processor count +procmap.cpp: // constrain by 2d, user request, other partition +procmap.cpp: // user/other constraints make failure possible +procmap.cpp: // select best set of 3 factors based on surface area of proc sub-domains +procmap.cpp: // clean-up +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: // nfactors = list of all possible 3 factors of node count +procmap.cpp: // constrain by 2d +procmap.cpp: int nnpossible = factor(nprocs/ncores,NULL); +procmap.cpp: nnpossible = factor(nprocs/ncores,nfactors); +procmap.cpp: // cfactors = list of all possible 3 factors of core count +procmap.cpp: // constrain by 2d +procmap.cpp: // factors = all combinations of nfactors and cfactors +procmap.cpp: // factors stores additional index pointing to corresponding cfactors +procmap.cpp: // constrain by user request, other partition +procmap.cpp: // user/other constraints make failure possible +procmap.cpp: // select best set of 3 factors based on surface area of proc sub-domains +procmap.cpp: // index points to corresponding core factorization +procmap.cpp: // clean-up +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: // hardwire this for now +procmap.cpp: // get names of all nodes +procmap.cpp: // get number of procs per node +procmap.cpp: // NOTE: could do this without STL map +procmap.cpp: procs_per_numa = procs_per_node / numa_nodes; +procmap.cpp: // error if any of these conditions met +procmap.cpp: if (nprocs % procs_per_numa || // total procs not a multiple of node +procmap.cpp: user_procgrid[0] > 1 || // user specified grid > 1 in any dim +procmap.cpp: // user settings for the factorization per numa node +procmap.cpp: // currently not user settable +procmap.cpp: // if user specifies 1 for a proc grid dimension, +procmap.cpp: // also use 1 for the numa grid dimension +procmap.cpp: // initial factorization within NUMA node +procmap.cpp: // user_nodegrid = implied user constraints on nodes +procmap.cpp: user_nodegrid[0] = user_procgrid[0] / numagrid[0]; +procmap.cpp: user_nodegrid[1] = user_procgrid[1] / numagrid[1]; +procmap.cpp: user_nodegrid[2] = user_procgrid[2] / numagrid[2]; +procmap.cpp: // factorization for the grid of NUMA nodes +procmap.cpp: int node_count = nprocs / procs_per_numa; +procmap.cpp: // repeat NUMA node factorization using subdomain sizes +procmap.cpp: // refines the factorization if the user specified the node layout +procmap.cpp: // NOTE: this will not re-enforce user-procgrid constraint will it? +procmap.cpp: // assign a unique id to each node +procmap.cpp: // return the proc-level factorization +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: // skip header = blank and comment lines +procmap.cpp: // cmap = map of procs to grid +procmap.cpp: // store for use in custom_map() +procmap.cpp: // error check on cmap values +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: // setup NUMA params that numa_grid() sets up +procmap.cpp: node_id = me/ncores; +procmap.cpp: nodegrid[0] = procgrid[0] / coregrid[0]; +procmap.cpp: nodegrid[1] = procgrid[1] / coregrid[1]; +procmap.cpp: nodegrid[2] = procgrid[2] / coregrid[2]; +procmap.cpp: // now can use numa_map() to perform mapping +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: // proc IDs of neighbors +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: nodegrid[0] = procgrid[0] / coregrid[0]; +procmap.cpp: nodegrid[1] = procgrid[1] / coregrid[1]; +procmap.cpp: nodegrid[2] = procgrid[2] / coregrid[2]; +procmap.cpp: inode = i/coregrid[0]; +procmap.cpp: jnode = j/coregrid[1]; +procmap.cpp: knode = k/coregrid[2]; +procmap.cpp: // proc IDs of neighbors +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: // setup a per node communicator and find rank within +procmap.cpp: // setup a per numa communicator and find rank within +procmap.cpp: int local_numa = node_rank / procs_per_numa; +procmap.cpp: // setup a communicator with the rank 0 procs from each numa node +procmap.cpp: // use the MPI Cartesian routines to map the nodes to the grid +procmap.cpp: // broadcast numa node location in grid to other procs in numa node +procmap.cpp: // compute my location within the node grid +procmap.cpp: int z_offset = numa_rank / (numagrid[0] * numagrid[1]); +procmap.cpp: int y_offset = (numa_rank % (numagrid[0] * numagrid[1]))/numagrid[0]; +procmap.cpp: // allgather of myloc into gridi to fill grid2proc +procmap.cpp: // proc IDs of neighbors +procmap.cpp: // clean-up +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: // proc IDs of neighbors +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: // find me in the grid +procmap.cpp: // polled comm of grid mapping info from each proc to proc 0 +procmap.cpp: // close output file +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: nyz = n/i; +procmap.cpp: factors[m][2] = nyz/j; +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp: where Nx,Ny,Nz = node grid = procgrid/coregrid +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: if ((other_procgrid[0]/other_coregrid[0]) % factors[i][0]) flag = 1; +procmap.cpp: if ((other_procgrid[1]/other_coregrid[1]) % factors[i][1]) flag = 1; +procmap.cpp: if ((other_procgrid[2]/other_coregrid[2]) % factors[i][2]) flag = 1; +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +procmap.cpp: // determine cross-sectional areas for orthogonal and triclinic boxes +procmap.cpp: // for triclinic, area = cross product of 2 edge vectors stored in h matrix +procmap.cpp: // area[3] = surface area 3 box faces divided by sx,sy,sz +procmap.cpp: // area[0] = xy, area[1] = xz, area[2] = yz +procmap.cpp: area[0] = domain->xprd * domain->yprd / (sx*sy); +procmap.cpp: area[1] = domain->xprd * domain->zprd / (sx*sz); +procmap.cpp: area[2] = domain->yprd * domain->zprd / (sy*sz); +procmap.cpp: area[0] = sqrt(c[0]*c[0] + c[1]*c[1] + c[2]*c[2]) / (sx*sy); +procmap.cpp: area[1] = sqrt(c[0]*c[0] + c[1]*c[1] + c[2]*c[2]) / (sx*sz); +procmap.cpp: area[2] = sqrt(c[0]*c[0] + c[1]*c[1] + c[2]*c[2]) / (sy*sz); +procmap.cpp: surf = area[0]/factors[m][0]/factors[m][1] + +procmap.cpp: area[1]/factors[m][0]/factors[m][2] + +procmap.cpp: area[2]/factors[m][1]/factors[m][2]; +procmap.cpp:/* ---------------------------------------------------------------------- +procmap.cpp:------------------------------------------------------------------------- */ +python.cpp:/* ---------------------------------------------------------------------- +python.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +python.cpp: http://lammps.sandia.gov, Sandia National Laboratories +python.cpp:------------------------------------------------------------------------- */ +python.cpp:/* ---------------------------------------------------------------------- */ +python.cpp: // implementation of Python interface is only loaded on demand +python.cpp: // and only if PYTHON package has been installed and compiled into binary +python.cpp:/* ---------------------------------------------------------------------- */ +python.cpp:/* ---------------------------------------------------------------------- */ +python.cpp:/* ---------------------------------------------------------------------- */ +python.cpp:/* ---------------------------------------------------------------------- */ +python.cpp:/* ---------------------------------------------------------------------- */ +python.cpp:/* ------------------------------------------------------------------ */ +python.cpp:/* ------------------------------------------------------------------ */ +python.cpp:/* ------------------------------------------------------------------ */ +python.cpp:/* ------------------------------------------------------------------ */ +random_mars.cpp:/* ---------------------------------------------------------------------- +random_mars.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +random_mars.cpp: http://lammps.sandia.gov, Sandia National Laboratories +random_mars.cpp:------------------------------------------------------------------------- */ +random_mars.cpp:// Marsaglia random number generator +random_mars.cpp:// see RANMAR in F James, Comp Phys Comm, 60, 329 (1990) +random_mars.cpp:/* ---------------------------------------------------------------------- */ +random_mars.cpp: ij = (seed-1)/30082; +random_mars.cpp: i = (ij/177) % 177 + 2; +random_mars.cpp: k = (kl/169) % 178 + 1; +random_mars.cpp: c = 362436.0 / 16777216.0; +random_mars.cpp: cd = 7654321.0 / 16777216.0; +random_mars.cpp: cm = 16777213.0 / 16777216.0; +random_mars.cpp:/* ---------------------------------------------------------------------- */ +random_mars.cpp:/* ---------------------------------------------------------------------- +random_mars.cpp:------------------------------------------------------------------------- */ +random_mars.cpp:/* ---------------------------------------------------------------------- +random_mars.cpp:------------------------------------------------------------------------- */ +random_mars.cpp: fac = sqrt(-2.0*log(rsq)/rsq); +random_park.cpp:/* ---------------------------------------------------------------------- +random_park.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +random_park.cpp: http://lammps.sandia.gov, Sandia National Laboratories +random_park.cpp:------------------------------------------------------------------------- */ +random_park.cpp:// Park/Miller RNG +random_park.cpp:#define AM (1.0/IM) +random_park.cpp:/* ---------------------------------------------------------------------- */ +random_park.cpp:/* ---------------------------------------------------------------------- +random_park.cpp:------------------------------------------------------------------------- */ +random_park.cpp: int k = seed/IQ; +random_park.cpp:/* ---------------------------------------------------------------------- +random_park.cpp:------------------------------------------------------------------------- */ +random_park.cpp: fac = sqrt(-2.0*log(rsq)/rsq); +random_park.cpp:/* ---------------------------------------------------------------------- */ +random_park.cpp:/* ---------------------------------------------------------------------- +random_park.cpp:------------------------------------------------------------------------- */ +random_park.cpp: // keep 31 bits of unsigned int as new seed +random_park.cpp: // do not allow seed = 0, since will cause hang in gaussian() +random_park.cpp: // warm up the RNG +random_park.cpp:/* ---------------------------------------------------------------------- */ +rcb.cpp:/* ---------------------------------------------------------------------- +rcb.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +rcb.cpp: http://lammps.sandia.gov, Sandia National Laboratories +rcb.cpp:------------------------------------------------------------------------- */ +rcb.cpp:// prototypes for non-class functions +rcb.cpp:// NOTE: if want to have reuse flag, need to sum Tree across procs +rcb.cpp:/* ---------------------------------------------------------------------- */ +rcb.cpp: // create MPI data and function types for box and median AllReduce ops +rcb.cpp:/* ---------------------------------------------------------------------- */ +rcb.cpp:/* ---------------------------------------------------------------------- +rcb.cpp: perform RCB balancing of N particles at coords X in bounding box LO/HI +rcb.cpp: defined by final lo/hi +rcb.cpp: // NOTE: worry about re-use of data structs for fix balance? +rcb.cpp:------------------------------------------------------------------------- */ +rcb.cpp: // create list of my Dots +rcb.cpp: // initial bounding box = simulation box +rcb.cpp: // includes periodic or shrink-wrapped boundaries +rcb.cpp: // initialize counters +rcb.cpp: // create communicator for use in recursion +rcb.cpp: // recurse until partition is a single proc = me +rcb.cpp: // proclower,procupper = lower,upper procs in partition +rcb.cpp: // procmid = 1st proc in upper half of partition +rcb.cpp: // if odd # of procs, lower partition gets extra one +rcb.cpp: procmid = proclower + (procupper - proclower) / 2 + 1; +rcb.cpp: // determine communication partner(s) +rcb.cpp: // readnumber = # of proc partners to read from +rcb.cpp: // wttot = summed weight of entire partition +rcb.cpp: // search tolerance = largest single weight (plus epsilon) +rcb.cpp: // targetlo = desired weight in lower half of partition +rcb.cpp: // targethi = desired weight in upper half of partition +rcb.cpp: targetlo = wttot * (procmid - proclower) / (procupper + 1 - proclower); +rcb.cpp: // attempt a cut in each dimension +rcb.cpp: // each cut produces 2 boxes, each with a reduced box length in that dim +rcb.cpp: // smaller = the smaller of the 2 reduced box lengths in that dimension +rcb.cpp: // choose to cut in dimension which produces largest smaller value +rcb.cpp: // this should induce final proc sub-boxes to be as cube-ish as possible +rcb.cpp: // dim_select = selected cut dimension +rcb.cpp: // valuehalf_select = valuehalf in that dimension +rcb.cpp: // dotmark_select = dot markings in that dimension +rcb.cpp: // create active list and mark array for dots +rcb.cpp: // initialize active list to all dots +rcb.cpp: // median iteration +rcb.cpp: // zoom in on bisector until correct # of dots in each half of partition +rcb.cpp: // as each iteration of median-loop begins, require: +rcb.cpp: // all non-active dots are marked with 0/1 in dotmark +rcb.cpp: // valuemin <= every active dot <= valuemax +rcb.cpp: // wtlo, wthi = total wt of non-active dots +rcb.cpp: // when leave median-loop, require only: +rcb.cpp: // valuehalf = correct cut position +rcb.cpp: // all dots <= valuehalf are marked with 0 in dotmark +rcb.cpp: // all dots >= valuehalf are marked with 1 in dotmark +rcb.cpp: // markactive = which side of cut is active = 0/1 +rcb.cpp: // indexlo,indexhi = indices of dot closest to median +rcb.cpp: // choose bisector value +rcb.cpp: // use old value on 1st iteration if old cut dimension is the same +rcb.cpp: // on 2nd option: could push valuehalf towards geometric center +rcb.cpp: // with "1.0-factor" to force overshoot +rcb.cpp: valuehalf = valuemin + (targetlo - wtlo) / +rcb.cpp: // initialize local median data structure +rcb.cpp: // mark all active dots on one side or other of bisector +rcb.cpp: // also set all fields in median data struct +rcb.cpp: // save indices of closest dots on either side +rcb.cpp: if (dots[i].x[dim] <= valuehalf) { // in lower part +rcb.cpp: if (dots[i].x[dim] > medme.valuelo) { // my closest dot +rcb.cpp: } else if (dots[i].x[dim] == medme.valuelo) { // tied for closest +rcb.cpp: else { // in upper part +rcb.cpp: if (dots[i].x[dim] < medme.valuehi) { // my closest dot +rcb.cpp: } else if (dots[i].x[dim] == medme.valuehi) { // tied for closest +rcb.cpp: // combine median data struct across current subset of procs +rcb.cpp: // test median guess for convergence +rcb.cpp: // move additional dots that are next to cut across it +rcb.cpp: if (wtlo + med.totallo < targetlo) { // lower half TOO SMALL +rcb.cpp: if (med.counthi == 1) { // only one dot to move +rcb.cpp: if (wtlo + med.wthi < targetlo) { // move it, keep iterating +rcb.cpp: else { // only move if beneficial +rcb.cpp: break; // all done +rcb.cpp: else { // multiple dots to move +rcb.cpp: if (wtlo + med.wthi >= targetlo) { // all done +rcb.cpp: } // wtok = most I can move +rcb.cpp: if (dots[i].x[dim] == med.valuehi) { // only move if better +rcb.cpp: if (breakflag) break; // done if moved enough +rcb.cpp: if (targetlo-wtlo <= tolerance) break; // close enough +rcb.cpp: valuemin = med.valuehi; // iterate again +rcb.cpp: else if (wthi + med.totalhi < targethi) { // upper half TOO SMALL +rcb.cpp: if (med.countlo == 1) { // only one dot to move +rcb.cpp: if (wthi + med.wtlo < targethi) { // move it, keep iterating +rcb.cpp: else { // only move if beneficial +rcb.cpp: break; // all done +rcb.cpp: else { // multiple dots to move +rcb.cpp: if (wthi + med.wtlo >= targethi) { // all done +rcb.cpp: } // wtok = most I can move +rcb.cpp: if (dots[i].x[dim] == med.valuelo) { // only move if better +rcb.cpp: if (breakflag) break; // done if moved enough +rcb.cpp: if (targethi-wthi <= tolerance) break; // close enough +rcb.cpp: valuemax = med.valuelo; // iterate again +rcb.cpp: else // Goldilocks result: both partitions just right +rcb.cpp: // shrink the active list +rcb.cpp: // cut produces 2 sub-boxes with reduced size in dim +rcb.cpp: // compare smaller of the 2 sizes to previous dims +rcb.cpp: // keep dim that has the largest smaller +rcb.cpp: // copy results for best dim cut into dim,valuehalf,dotmark +rcb.cpp: // found median +rcb.cpp: // store cut info only if I am procmid +rcb.cpp: // use cut to shrink my RCB bounding box +rcb.cpp: // outgoing = number of dots to ship to partner +rcb.cpp: // nkeep = number of dots that have never migrated +rcb.cpp: // alert partner how many dots I'll send, read how many I'll recv +rcb.cpp: // check if need to alloc more space +rcb.cpp: // malloc comm send buffer +rcb.cpp: // fill buffer with dots that are marked for sending +rcb.cpp: // pack down the unmarked ones +rcb.cpp: // post receives for dots +rcb.cpp: // handshake before sending dots to insure recvs have been posted +rcb.cpp: // send dots to partner +rcb.cpp: // wait until all dots are received +rcb.cpp: // cut partition in half, create new communicators of 1/2 size +rcb.cpp: // clean up +rcb.cpp: // set public variables with results of rebalance +rcb.cpp:/* ---------------------------------------------------------------------- +rcb.cpp: perform RCB balancing of N particles at coords X in bounding box LO/HI +rcb.cpp: defined by final lo/hi +rcb.cpp: // NOTE: worry about re-use of data structs for fix balance? +rcb.cpp:------------------------------------------------------------------------- */ +rcb.cpp: // create list of my Dots +rcb.cpp: // initial bounding box = simulation box +rcb.cpp: // includes periodic or shrink-wrapped boundaries +rcb.cpp: // initialize counters +rcb.cpp: // create communicator for use in recursion +rcb.cpp: // recurse until partition is a single proc = me +rcb.cpp: // proclower,procupper = lower,upper procs in partition +rcb.cpp: // procmid = 1st proc in upper half of partition +rcb.cpp: // if odd # of procs, lower partition gets extra one +rcb.cpp: procmid = proclower + (procupper - proclower) / 2 + 1; +rcb.cpp: // determine communication partner(s) +rcb.cpp: // readnumber = # of proc partners to read from +rcb.cpp: // wttot = summed weight of entire partition +rcb.cpp: // search tolerance = largest single weight (plus epsilon) +rcb.cpp: // targetlo = desired weight in lower half of partition +rcb.cpp: // targethi = desired weight in upper half of partition +rcb.cpp: targetlo = wttot * (procmid - proclower) / (procupper + 1 - proclower); +rcb.cpp: // dim = dimension to bisect on +rcb.cpp: // do not allow choice of z dimension for 2d system +rcb.cpp: // create active list and mark array for dots +rcb.cpp: // initialize active list to all dots +rcb.cpp: // median iteration +rcb.cpp: // zoom in on bisector until correct # of dots in each half of partition +rcb.cpp: // as each iteration of median-loop begins, require: +rcb.cpp: // all non-active dots are marked with 0/1 in dotmark +rcb.cpp: // valuemin <= every active dot <= valuemax +rcb.cpp: // wtlo, wthi = total wt of non-active dots +rcb.cpp: // when leave median-loop, require only: +rcb.cpp: // valuehalf = correct cut position +rcb.cpp: // all dots <= valuehalf are marked with 0 in dotmark +rcb.cpp: // all dots >= valuehalf are marked with 1 in dotmark +rcb.cpp: // markactive = which side of cut is active = 0/1 +rcb.cpp: // indexlo,indexhi = indices of dot closest to median +rcb.cpp: // choose bisector value +rcb.cpp: // use old value on 1st iteration if old cut dimension is the same +rcb.cpp: // on 2nd option: could push valuehalf towards geometric center +rcb.cpp: // with "1.0-factor" to force overshoot +rcb.cpp: valuehalf = valuemin + (targetlo - wtlo) / +rcb.cpp: // initialize local median data structure +rcb.cpp: // mark all active dots on one side or other of bisector +rcb.cpp: // also set all fields in median data struct +rcb.cpp: // save indices of closest dots on either side +rcb.cpp: if (dots[i].x[dim] <= valuehalf) { // in lower part +rcb.cpp: if (dots[i].x[dim] > medme.valuelo) { // my closest dot +rcb.cpp: } else if (dots[i].x[dim] == medme.valuelo) { // tied for closest +rcb.cpp: else { // in upper part +rcb.cpp: if (dots[i].x[dim] < medme.valuehi) { // my closest dot +rcb.cpp: } else if (dots[i].x[dim] == medme.valuehi) { // tied for closest +rcb.cpp: // combine median data struct across current subset of procs +rcb.cpp: // test median guess for convergence +rcb.cpp: // move additional dots that are next to cut across it +rcb.cpp: if (wtlo + med.totallo < targetlo) { // lower half TOO SMALL +rcb.cpp: if (med.counthi == 1) { // only one dot to move +rcb.cpp: if (wtlo + med.wthi < targetlo) { // move it, keep iterating +rcb.cpp: else { // only move if beneficial +rcb.cpp: break; // all done +rcb.cpp: else { // multiple dots to move +rcb.cpp: if (wtlo + med.wthi >= targetlo) { // all done +rcb.cpp: } // wtok = most I can move +rcb.cpp: if (dots[i].x[dim] == med.valuehi) { // only move if better +rcb.cpp: if (breakflag) break; // done if moved enough +rcb.cpp: if (targetlo-wtlo <= tolerance) break; // close enough +rcb.cpp: valuemin = med.valuehi; // iterate again +rcb.cpp: else if (wthi + med.totalhi < targethi) { // upper half TOO SMALL +rcb.cpp: if (med.countlo == 1) { // only one dot to move +rcb.cpp: if (wthi + med.wtlo < targethi) { // move it, keep iterating +rcb.cpp: else { // only move if beneficial +rcb.cpp: break; // all done +rcb.cpp: else { // multiple dots to move +rcb.cpp: if (wthi + med.wtlo >= targethi) { // all done +rcb.cpp: } // wtok = most I can move +rcb.cpp: if (dots[i].x[dim] == med.valuelo) { // only move if better +rcb.cpp: if (breakflag) break; // done if moved enough +rcb.cpp: if (targethi-wthi <= tolerance) break; // close enough +rcb.cpp: valuemax = med.valuelo; // iterate again +rcb.cpp: else // Goldilocks result: both partitions just right +rcb.cpp: // shrink the active list +rcb.cpp: // found median +rcb.cpp: // store cut info only if I am procmid +rcb.cpp: // use cut to shrink my RCB bounding box +rcb.cpp: // outgoing = number of dots to ship to partner +rcb.cpp: // nkeep = number of dots that have never migrated +rcb.cpp: // alert partner how many dots I'll send, read how many I'll recv +rcb.cpp: // check if need to alloc more space +rcb.cpp: // malloc comm send buffer +rcb.cpp: // fill buffer with dots that are marked for sending +rcb.cpp: // pack down the unmarked ones +rcb.cpp: // post receives for dots +rcb.cpp: // handshake before sending dots to insure recvs have been posted +rcb.cpp: // send dots to partner +rcb.cpp: // wait until all dots are received +rcb.cpp: // cut partition in half, create new communicators of 1/2 size +rcb.cpp: // clean up +rcb.cpp: // set public variables with results of rebalance +rcb.cpp:/* ---------------------------------------------------------------------- +rcb.cpp:------------------------------------------------------------------------- */ +rcb.cpp:/* ---------------------------------------------------------------------- +rcb.cpp:------------------------------------------------------------------------- */ +rcb.cpp:/* ---------------------------------------------------------------------- +rcb.cpp:------------------------------------------------------------------------- */ +rcb.cpp: // only create Irregular if not previously created +rcb.cpp: // allows Irregular to persist for multiple RCB calls by fix balance +rcb.cpp: // nsend = # of dots to request from other procs +rcb.cpp: // perform inversion via irregular comm +rcb.cpp: // nrecv = # of my dots to send to other procs +rcb.cpp: // set public variables from requests to send my dots +rcb.cpp: // clean-up +rcb.cpp:/* ---------------------------------------------------------------------- +rcb.cpp:------------------------------------------------------------------------- */ +rcb.cpp:// ----------------------------------------------------------------------- +rcb.cpp:// DEBUG methods +rcb.cpp:// ----------------------------------------------------------------------- +rcb.cpp:/* +rcb.cpp:// consistency checks on RCB results +rcb.cpp: // check that total # of dots remained the same +rcb.cpp: // check that result is load-balanced within log2(P)*max-wt +rcb.cpp: // i = smallest power-of-2 >= nprocs +rcb.cpp: // tolerance = largest-single-weight*log2(nprocs) +rcb.cpp: // check that final set of points is inside RCB box of each proc +rcb.cpp:// stats for RCB decomposition +rcb.cpp: // distribution info +rcb.cpp: wttot/nprocs,wtmax,wtmin); +rcb.cpp: // counter info +rcb.cpp: ave = ((double) sum)/nprocs; +rcb.cpp: ave = ((double) sum)/nprocs; +rcb.cpp: ave = ((double) sum)/nprocs; +rcb.cpp: ave = ((double) sum)/nprocs; +rcb.cpp: ave = ((double) sum)/nprocs; +rcb.cpp: ave = ((double) sum)/nprocs; +rcb.cpp: ave = ((double) sum)/nprocs; +rcb.cpp: // RCB boxes for each proc +rcb.cpp:*/ +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +read_data.cpp: http://lammps.sandia.gov, Sandia National Laboratories +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp:// lmptype.h must be first b/c this file uses MAXBIGINT and includes mpi.h +read_data.cpp:// due to OpenMPI bug which sets INT64_MAX via its mpi.h +read_data.cpp:// before lmptype.h can set flags to insure it is done correctly +read_data.cpp:#define DELTA 4 // must be 2 or larger +read_data.cpp:#define MAXBODY 32 // max # of lines in one body +read_data.cpp: // customize for new sections +read_data.cpp:#define NSECTIONS 25 // change when add to header::section_keywords +read_data.cpp:// pair style suffixes to ignore +read_data.cpp:// when matching Pair Coeffs comment to currently-defined pair style +read_data.cpp:const char *suffixes[] = {"/cuda","/gpu","/opt","/omp","/kk", +read_data.cpp: "/coul/cut","/coul/long","/coul/msm", +read_data.cpp: "/coul/dsf","/coul/debye","/coul/charmm", +read_data.cpp:/* ---------------------------------------------------------------------- */ +read_data.cpp: // customize for new sections +read_data.cpp: // pointers to atom styles that store extra info +read_data.cpp:/* ---------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- */ +read_data.cpp: // optional args +read_data.cpp: } else if (strcmp(arg[iarg],"extra/atom/types") == 0) { +read_data.cpp: } else if (strcmp(arg[iarg],"extra/bond/types") == 0) { +read_data.cpp: } else if (strcmp(arg[iarg],"extra/angle/types") == 0) { +read_data.cpp: } else if (strcmp(arg[iarg],"extra/dihedral/types") == 0) { +read_data.cpp: } else if (strcmp(arg[iarg],"extra/improper/types") == 0) { +read_data.cpp: // error checks +read_data.cpp: // first time system initialization +read_data.cpp: // compute atomID offset for addflag = MERGE +read_data.cpp: // set up pointer to hold original styles while we replace them with "zero" +read_data.cpp: // ----------------------------------------------------------------- +read_data.cpp: // perform 1-pass read if no molecular topology in file +read_data.cpp: // perform 2-pass read if molecular topology, +read_data.cpp: // first pass calculates max topology/atom +read_data.cpp: // flags for this data file +read_data.cpp: // values in this data file +read_data.cpp: // open file on proc 0 +read_data.cpp: // read header info +read_data.cpp: // problem setup using info from header +read_data.cpp: // only done once, if firstpass and first data file +read_data.cpp: // apply extra settings before grow(), even if no topology in file +read_data.cpp: // deallocate() insures new settings are used for topology arrays +read_data.cpp: // if per-atom topology is in file, another grow() is done below +read_data.cpp: else n = static_cast (LB_FACTOR * atom->natoms / comm->nprocs); +read_data.cpp: // change simulation box to be union of existing box and new box + shift +read_data.cpp: // only done if firstpass and not first data file +read_data.cpp: // NOTE: not sure what to do about tilt value in subsequent data files +read_data.cpp: //if (triclinic) { +read_data.cpp: // domain->xy = xy; domain->xz = xz; domain->yz = yz; +read_data.cpp: // } +read_data.cpp: // customize for new sections +read_data.cpp: // read rest of file in free format +read_data.cpp: // if special fix matches, it processes section +read_data.cpp: } else skip_lines(ntypes*(ntypes+1)/2); +read_data.cpp: // error if natoms > 0 yet no atoms were read +read_data.cpp: // close file +read_data.cpp: // done if this was 2nd pass +read_data.cpp: // at end of 1st pass, error check for required sections +read_data.cpp: // customize for new sections +read_data.cpp: // break out of loop if no molecular topology in file +read_data.cpp: // else make 2nd pass +read_data.cpp: // reallocate bond,angle,diehdral,improper arrays via grow() +read_data.cpp: // will use new bond,angle,dihedral,improper per-atom values from 1st pass +read_data.cpp: // will also observe extra settings even if bond/etc topology not in file +read_data.cpp: // leaves other atom arrays unchanged, since already nmax in length +read_data.cpp: // init per-atom fix/compute/variable values for created atoms +read_data.cpp: // assign atoms added by this data file to specified group +read_data.cpp: // create special bond lists for molecular systems +read_data.cpp: // for atom style template systems, count total bonds,angles,etc +read_data.cpp: atom->nbonds /= 2; +read_data.cpp: atom->nangles /= 3; +read_data.cpp: atom->ndihedrals /= 4; +read_data.cpp: atom->nimpropers /= 4; +read_data.cpp: // for atom style template systems +read_data.cpp: // insure nbondtypes,etc are still consistent with template molecules, +read_data.cpp: // in case data file re-defined them +read_data.cpp: // if adding atoms, migrate atoms to new processors +read_data.cpp: // use irregular() b/c box size could have changed dramaticaly +read_data.cpp: // resulting in procs now owning very different subboxes +read_data.cpp: // with their previously owned atoms now far outside the subbox +read_data.cpp: // shrink-wrap the box if necessary and move atoms to new procs +read_data.cpp: // if atoms are lost is b/c data file box was far from shrink-wrapped +read_data.cpp: // do not use irregular() comm, which would not lose atoms, +read_data.cpp: // b/c then user could specify data file box as far too big and empty +read_data.cpp: // do comm->init() but not comm->setup() b/c pair/neigh cutoffs not yet set +read_data.cpp: // need call to map_set() b/c comm->exchange clears atom map +read_data.cpp: // restore old styles, when reading with nocoeff flag given +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp: // customize for new sections +read_data.cpp: // skip 1st line of file +read_data.cpp: // read a line and bcast length +read_data.cpp: // if n = 0 then end-of-file so return with blank line +read_data.cpp: // trim anything from '#' onward +read_data.cpp: // if line is blank, continue +read_data.cpp: // allow special fixes first chance to match and process the line +read_data.cpp: // if fix matches, continue to next header line +read_data.cpp: // search line for header keyword and set corresponding variable +read_data.cpp: // customize for new header lines +read_data.cpp: // check for triangles before angles so "triangles" not matched as "angles" +read_data.cpp: // Atom class type settings are only set by first data file +read_data.cpp: // these settings only used by first data file +read_data.cpp: // local copy of box info +read_data.cpp: // so can treat differently for first vs subsequent data files +read_data.cpp: // error check on total system size +read_data.cpp: // check that exiting string is a valid section keyword +read_data.cpp: // error checks on header values +read_data.cpp: // must be consistent with atom style and other header values +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp: // check that all atoms were assigned correctly +read_data.cpp: // check that atom IDs are valid +read_data.cpp: // create global mapping of atoms +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp: // allocate count if firstpass +read_data.cpp: // read and process bonds +read_data.cpp: // if firstpass: tally max bond/atom and return +read_data.cpp: // if addflag = NONE, store max bond/atom with extra +read_data.cpp: // else just check actual max does not exceed existing max +read_data.cpp: if (screen) fprintf(screen," %d = max bonds/atom\n",maxall); +read_data.cpp: if (logfile) fprintf(logfile," %d = max bonds/atom\n",maxall); +read_data.cpp: // if 2nd pass: check that bonds were assigned correctly +read_data.cpp: if (screen) fprintf(screen," " BIGINT_FORMAT " bonds\n",sum/factor); +read_data.cpp: if (logfile) fprintf(logfile," " BIGINT_FORMAT " bonds\n",sum/factor); +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp: // allocate count if firstpass +read_data.cpp: // read and process angles +read_data.cpp: // if firstpass: tally max angle/atom and return +read_data.cpp: // if addflag = NONE, store max angle/atom with extra +read_data.cpp: // else just check actual max does not exceed existing max +read_data.cpp: if (screen) fprintf(screen," %d = max angles/atom\n",maxall); +read_data.cpp: if (logfile) fprintf(logfile," %d = max angles/atom\n",maxall); +read_data.cpp: // if 2nd pass: check that angles were assigned correctly +read_data.cpp: if (screen) fprintf(screen," " BIGINT_FORMAT " angles\n",sum/factor); +read_data.cpp: if (logfile) fprintf(logfile," " BIGINT_FORMAT " angles\n",sum/factor); +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp: // allocate count if firstpass +read_data.cpp: // read and process dihedrals +read_data.cpp: // if firstpass: tally max dihedral/atom and return +read_data.cpp: // if addflag = NONE, store max dihedral/atom with extra +read_data.cpp: // else just check actual max does not exceed existing max +read_data.cpp: if (screen) fprintf(screen," %d = max dihedrals/atom\n",maxall); +read_data.cpp: if (logfile) fprintf(logfile," %d = max dihedrals/atom\n",maxall); +read_data.cpp: // if 2nd pass: check that dihedrals were assigned correctly +read_data.cpp: if (screen) fprintf(screen," " BIGINT_FORMAT " dihedrals\n",sum/factor); +read_data.cpp: if (logfile) fprintf(logfile," " BIGINT_FORMAT " dihedrals\n",sum/factor); +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp: // allocate count if firstpass +read_data.cpp: // read and process impropers +read_data.cpp: // if firstpass: tally max improper/atom and return +read_data.cpp: // if addflag = NONE, store max improper/atom +read_data.cpp: // else just check it does not exceed existing max +read_data.cpp: if (screen) fprintf(screen," %d = max impropers/atom\n",maxall); +read_data.cpp: if (logfile) fprintf(logfile," %d = max impropers/atom\n",maxall); +read_data.cpp: // if 2nd pass: check that impropers were assigned correctly +read_data.cpp: if (screen) fprintf(screen," " BIGINT_FORMAT " impropers\n",sum/factor); +read_data.cpp: if (logfile) fprintf(logfile," " BIGINT_FORMAT " impropers\n",sum/factor); +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp: // nmax = max # of bodies to read in this chunk +read_data.cpp: // nchunk = actual # read +read_data.cpp: // read lines one at a time into buffer and count words +read_data.cpp: // count to ninteger and ndouble until have enough lines +read_data.cpp:/* ---------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- */ +read_data.cpp: int nsq = ntypes * (ntypes+1) / 2; +read_data.cpp:/* ---------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp: keyword is all text on line w/out leading & trailing white space +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp: // proc 0 reads upto non-blank line plus 1 following line +read_data.cpp: // eof is set to 1 if any read hits end-of-file +read_data.cpp: // if eof, set keyword empty and return +read_data.cpp: // bcast keyword line to all procs +read_data.cpp: // store optional "style" following comment char '#' after keyword +read_data.cpp: // copy non-whitespace portion of line into keyword +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp: if addstr != NULL, add addstr as extra arg for class2 angle/dihedral/improper +read_data.cpp: if noffset, add offset to first noffset args, which are atom/bond/etc types +read_data.cpp:------------------------------------------------------------------------- */ +read_data.cpp:/* ---------------------------------------------------------------------- +read_data.cpp:------------------------------------------------------------------------- */ +read_dump.cpp:/* ---------------------------------------------------------------------- +read_dump.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +read_dump.cpp: http://lammps.sandia.gov, Sandia National Laboratories +read_dump.cpp:------------------------------------------------------------------------- */ +read_dump.cpp:/* ---------------------------------------------------------------------- +read_dump.cpp:------------------------------------------------------------------------- */ +read_dump.cpp:// lmptype.h must be first b/c this file uses MAXBIGINT and includes mpi.h +read_dump.cpp:// due to OpenMPI bug which sets INT64_MAX via its mpi.h +read_dump.cpp:// before lmptype.h can set flags to insure it is done correctly +read_dump.cpp:// also in reader_native.cpp +read_dump.cpp:/* ---------------------------------------------------------------------- */ +read_dump.cpp:/* ---------------------------------------------------------------------- */ +read_dump.cpp:/* ---------------------------------------------------------------------- */ +read_dump.cpp: // find the snapshot and read/bcast/process header info +read_dump.cpp: // reset timestep to nstep +read_dump.cpp: // counters +read_dump.cpp: // read in the snapshot and reset system +read_dump.cpp: // print out stats +read_dump.cpp:/* ---------------------------------------------------------------------- */ +read_dump.cpp:/* ---------------------------------------------------------------------- */ +read_dump.cpp: // allocate snapshot field buffer +read_dump.cpp: // create reader class +read_dump.cpp: // match readerstyle to options in style_reader.h +read_dump.cpp: if (0) return; // dummy line to enable else-if macro expansion +read_dump.cpp: // unrecognized style +read_dump.cpp: // pass any arguments to reader +read_dump.cpp:/* ---------------------------------------------------------------------- +read_dump.cpp:------------------------------------------------------------------------- */ +read_dump.cpp: // exit file loop when dump timestep >= nrequest +read_dump.cpp: // or files exhausted +read_dump.cpp:/* ---------------------------------------------------------------------- +read_dump.cpp:------------------------------------------------------------------------- */ +read_dump.cpp: // exit file loop when dump timestep matches all criteria +read_dump.cpp: // or files exhausted +read_dump.cpp:/* ---------------------------------------------------------------------- +read_dump.cpp:------------------------------------------------------------------------- */ +read_dump.cpp: // local copy of snapshot box parameters +read_dump.cpp: // used in xfield,yfield,zfield when converting dump atom to absolute coords +read_dump.cpp: // done if not checking fields +read_dump.cpp: // error check on current vs new box and fields +read_dump.cpp: // triclinic_snap < 0 means no box info in file +read_dump.cpp: // error check on requested fields exisiting in dump file +read_dump.cpp: // all explicitly requested x,y,z must have consistent scaling & wrapping +read_dump.cpp: "Read_dump xyz fields do not have consistent scaling/wrapping"); +read_dump.cpp: // set scaled/wrapped based on xyz flags +read_dump.cpp: // scaled, triclinic coords require all 3 x,y,z fields, to perform unscaling +read_dump.cpp: // set yindex,zindex = column index of Y and Z fields in fields array +read_dump.cpp: // needed for unscaling to absolute coords in xfield(), yfield(), zfield() +read_dump.cpp:/* ---------------------------------------------------------------------- */ +read_dump.cpp: // initialize counters +read_dump.cpp: // if purgeflag set, delete all current atoms +read_dump.cpp: // to match existing atoms to dump atoms: +read_dump.cpp: // must build map if not a molecular system +read_dump.cpp: // uflag[i] = 1 for each owned atom appearing in dump +read_dump.cpp: // ucflag = similar flag for each chunk atom, used in process_atoms() +read_dump.cpp: // read, broadcast, and process atoms from snapshot in chunks +read_dump.cpp: // if addflag set, add tags to new atoms if possible +read_dump.cpp: // if trimflag set, delete atoms not replaced by snapshot atoms +read_dump.cpp: // can now delete uflag arrays +read_dump.cpp: // delete atom map if created it above +read_dump.cpp: // else reinitialize map for current atoms +read_dump.cpp: // do this before migrating atoms to new procs via Irregular +read_dump.cpp: // overwrite simulation box with dump snapshot box if requested +read_dump.cpp: // reallocate processors to box +read_dump.cpp: // move atoms back inside simulation box and to new processors +read_dump.cpp: // use remap() instead of pbc() in case atoms moved a long distance +read_dump.cpp: // adjust image flags of all atoms (old and new) based on current box +read_dump.cpp: // use irregular() in case atoms moved a long distance +read_dump.cpp: // check that atom IDs are valid +read_dump.cpp:/* ---------------------------------------------------------------------- +read_dump.cpp:------------------------------------------------------------------------- */ +read_dump.cpp: // per-field vectors, leave space for ID and TYPE +read_dump.cpp: // add id and type fields as needed +read_dump.cpp: // scan ahead to see if "add yes" keyword/value is used +read_dump.cpp: // requires extra "type" field from from dump file +read_dump.cpp: // parse fields +read_dump.cpp: // check for no fields +read_dump.cpp: // parse optional args +read_dump.cpp:/* ---------------------------------------------------------------------- +read_dump.cpp:------------------------------------------------------------------------- */ +read_dump.cpp:/* ---------------------------------------------------------------------- +read_dump.cpp: use round-robin method, b/c atom coords may not be inside simulation box +read_dump.cpp:------------------------------------------------------------------------- */ +read_dump.cpp: // check if new atom matches one I own +read_dump.cpp: // setting m = -1 forces new atom not to match +read_dump.cpp: // NOTE: atom ID in fields is stored as double, not as ubuf +read_dump.cpp: // so can only cast it to tagint, thus cannot be full 64-bit ID +read_dump.cpp: // current image flags +read_dump.cpp: // overwrite atom attributes with field info +read_dump.cpp: // start from field 1 since 0 = id, 1 will be skipped if type +read_dump.cpp: // replace image flag in case changed by ix,iy,iz fields or unwrapping +read_dump.cpp: // create any atoms in chunk that no processor owned +read_dump.cpp: // add atoms in round-robin sequence on processors +read_dump.cpp: // cannot do it geometrically b/c dump coords may not be in simulation box +read_dump.cpp: // each processor adds every Pth atom +read_dump.cpp: // create type and coord fields from dump file +read_dump.cpp: // coord = 0.0 unless corresponding dump file field was specified +read_dump.cpp: // create the atom on proc that owns it +read_dump.cpp: // reset v,image ptrs in case they are reallocated +read_dump.cpp: // set atom attributes from other dump file fields +read_dump.cpp: // replace image flag in case changed by ix,iy,iz fields +read_dump.cpp: // init per-atom fix/compute/variable values for created atoms +read_dump.cpp:/* ---------------------------------------------------------------------- +read_dump.cpp:------------------------------------------------------------------------- */ +read_dump.cpp:/* ---------------------------------------------------------------------- +read_dump.cpp:------------------------------------------------------------------------- */ +reader.cpp:/* ---------------------------------------------------------------------- +reader.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +reader.cpp: http://lammps.sandia.gov, Sandia National Laboratories +reader.cpp:------------------------------------------------------------------------- */ +reader.cpp:/* ---------------------------------------------------------------------- */ +reader.cpp:/* ---------------------------------------------------------------------- +reader.cpp:------------------------------------------------------------------------- */ +reader.cpp:/* ---------------------------------------------------------------------- +reader.cpp:------------------------------------------------------------------------- */ +reader_native.cpp:/* ---------------------------------------------------------------------- +reader_native.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +reader_native.cpp: http://lammps.sandia.gov, Sandia National Laboratories +reader_native.cpp:------------------------------------------------------------------------- */ +reader_native.cpp:#define MAXLINE 1024 // max line length in dump file +reader_native.cpp:// also in read_dump.cpp +reader_native.cpp:/* ---------------------------------------------------------------------- */ +reader_native.cpp:/* ---------------------------------------------------------------------- */ +reader_native.cpp:/* ---------------------------------------------------------------------- +reader_native.cpp:------------------------------------------------------------------------- */ +reader_native.cpp:/* ---------------------------------------------------------------------- +reader_native.cpp:------------------------------------------------------------------------- */ +reader_native.cpp: // invoke read_lines() in chunks no larger than MAXSMALLINT +reader_native.cpp:/* ---------------------------------------------------------------------- +reader_native.cpp: xyz flags = UNSET (not a requested field), SCALE/WRAP as in enum +reader_native.cpp:------------------------------------------------------------------------- */ +reader_native.cpp: // if no field info requested, just return +reader_native.cpp: // exatract column labels and match to requested fields +reader_native.cpp: // match each field with a column of per-atom data +reader_native.cpp: // if fieldlabel set, match with explicit column +reader_native.cpp: // else infer one or more column matches from fieldtype +reader_native.cpp: // xyz flag set by scaleflag + wrapflag (if fieldlabel set) or column label +reader_native.cpp: // set fieldflag = -1 if any unfound fields +reader_native.cpp: // create internal vector of word ptrs for future parsing of per-atom lines +reader_native.cpp:/* ---------------------------------------------------------------------- +reader_native.cpp:------------------------------------------------------------------------- */ +reader_native.cpp: // tokenize the line +reader_native.cpp: // convert selected fields to floats +reader_native.cpp:/* ---------------------------------------------------------------------- +reader_native.cpp:------------------------------------------------------------------------- */ +reader_native.cpp:/* ---------------------------------------------------------------------- +reader_native.cpp:------------------------------------------------------------------------- */ +reader_xyz.cpp:/* ---------------------------------------------------------------------- +reader_xyz.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +reader_xyz.cpp: http://lammps.sandia.gov, Sandia National Laboratories +reader_xyz.cpp:------------------------------------------------------------------------- */ +reader_xyz.cpp:/* ---------------------------------------------------------------------- +reader_xyz.cpp:------------------------------------------------------------------------- */ +reader_xyz.cpp:#define MAXLINE 1024 // max line length in dump file +reader_xyz.cpp:/* ---------------------------------------------------------------------- */ +reader_xyz.cpp:/* ---------------------------------------------------------------------- */ +reader_xyz.cpp:/* ---------------------------------------------------------------------- +reader_xyz.cpp:------------------------------------------------------------------------- */ +reader_xyz.cpp: // first line has to have the number of atoms +reader_xyz.cpp: // truncate the string to the first whitespace, +reader_xyz.cpp: // so force->bnumeric() does not hiccup +reader_xyz.cpp: // skip over comment/title line +reader_xyz.cpp: // fake time step numbers +reader_xyz.cpp: // count this frame +reader_xyz.cpp:/* ---------------------------------------------------------------------- +reader_xyz.cpp:------------------------------------------------------------------------- */ +reader_xyz.cpp: // invoke read_lines() in chunks no larger than MAXSMALLINT +reader_xyz.cpp:/* ---------------------------------------------------------------------- +reader_xyz.cpp:------------------------------------------------------------------------- */ +reader_xyz.cpp: // signal that we have no box info at all +reader_xyz.cpp: // if no field info requested, just return +reader_xyz.cpp: // for xyz we know nothing about the style of coordinates, +reader_xyz.cpp: // so caller has to set the proper flags +reader_xyz.cpp: // copy fieldtype list for supported fields +reader_xyz.cpp:/* ---------------------------------------------------------------------- +reader_xyz.cpp:------------------------------------------------------------------------- */ +reader_xyz.cpp: // XXX: we could insert an element2type translation here +reader_xyz.cpp: // XXX: for now we flag unrecognized types as type 0, +reader_xyz.cpp: // XXX: which should trigger an error, if LAMMPS uses it. +reader_xyz.cpp:/* ---------------------------------------------------------------------- +reader_xyz.cpp:------------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +read_restart.cpp: http://lammps.sandia.gov, Sandia National Laboratories +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp:// same as write_restart.cpp +read_restart.cpp:/* ---------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- */ +read_restart.cpp: // check for remap option +read_restart.cpp: // if filename contains "*", search dir for latest restart file +read_restart.cpp: // check for multiproc files and an MPI-IO filename +read_restart.cpp: // open single restart file or base file for multiproc case +read_restart.cpp: // read magic string, endian flag, numeric version +read_restart.cpp: // read header info which creates simulation box +read_restart.cpp: // problem setup using info from header +read_restart.cpp: else n = static_cast (LB_FACTOR * atom->natoms / nprocs); +read_restart.cpp: // read groups, ntype-length arrays, force field, fix info from file +read_restart.cpp: // nextra = max # of extra quantities stored with each atom +read_restart.cpp: // read file layout info +read_restart.cpp: // close header file if in multiproc mode +read_restart.cpp: // read per-proc info +read_restart.cpp: // MPI-IO input from single file +read_restart.cpp: // input of single native file +read_restart.cpp: // nprocs_file = # of chunks in file +read_restart.cpp: // proc 0 reads a chunk and bcasts it to other procs +read_restart.cpp: // each proc unpacks the atoms, saving ones in it's sub-domain +read_restart.cpp: // if remapflag set, remap the atom to box before checking sub-domain +read_restart.cpp: // check for atom in sub-domain differs for orthogonal vs triclinic box +read_restart.cpp: // input of multiple native files with procs <= files +read_restart.cpp: // # of files = multiproc_file +read_restart.cpp: // each proc reads a subset of files, striding by nprocs +read_restart.cpp: // each proc keeps all atoms in all perproc chunks in its files +read_restart.cpp: // input of multiple native files with procs > files +read_restart.cpp: // # of files = multiproc_file +read_restart.cpp: // cluster procs based on # of files +read_restart.cpp: // 1st proc in each cluster reads per-proc chunks from file +read_restart.cpp: // sends chunks round-robin to other procs in its cluster +read_restart.cpp: // each proc keeps all atoms in its perproc chunks in file +read_restart.cpp: // nclusterprocs = # of procs in my cluster that read from one file +read_restart.cpp: // filewriter = 1 if this proc reads file, else 0 +read_restart.cpp: // fileproc = ID of proc in my cluster who reads from file +read_restart.cpp: // clustercomm = MPI communicator within my cluster of procs +read_restart.cpp: int icluster = static_cast ((bigint) me * nfile/nprocs); +read_restart.cpp: int fileproc = static_cast ((bigint) icluster * nprocs/nfile); +read_restart.cpp: int fcluster = static_cast ((bigint) fileproc * nfile/nprocs); +read_restart.cpp: static_cast ((bigint) (icluster+1) * nprocs/nfile); +read_restart.cpp: fcluster = static_cast ((bigint) fileprocnext * nfile/nprocs); +read_restart.cpp: // clean-up memory +read_restart.cpp: // for multiproc or MPI-IO files: +read_restart.cpp: // perform irregular comm to migrate atoms to correct procs +read_restart.cpp: // if remapflag set, remap all atoms I read back to box before migrating +read_restart.cpp: // create a temporary fix to hold and migrate extra atom info +read_restart.cpp: // necessary b/c irregular will migrate atoms +read_restart.cpp: // move atoms to new processors via irregular() +read_restart.cpp: // turn sorting on in migrate_atoms() to avoid non-reproducible restarts +read_restart.cpp: // in case read by different proc than wrote restart file +read_restart.cpp: // first do map_init() since irregular->migrate_atoms() will do map_clear() +read_restart.cpp: // put extra atom info held by fix back into atom->extra +read_restart.cpp: // destroy temporary fix +read_restart.cpp: // check that all atoms were assigned to procs +read_restart.cpp: // check that atom IDs are valid +read_restart.cpp: // create global mapping of atoms +read_restart.cpp: // create special bond lists for molecular systems +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp: // separate infile into dir + filename +read_restart.cpp: if (strchr(infile,'/')) { +read_restart.cpp: ptr = strrchr(infile,'/'); +read_restart.cpp: *ptr = '/'; +read_restart.cpp: strcpy(dirname,"./"); +read_restart.cpp: // if filename contains "%" replace "%" with "base" +read_restart.cpp: // scan all files in directory, searching for files that match pattern +read_restart.cpp: // maxnum = largest int that matches "*" +read_restart.cpp: // create outfile with maxint substituted for "*" +read_restart.cpp: // use original infile, not pattern, since need to retain "%" in filename +read_restart.cpp: // clean up +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp: // read flags and fields until flag = -1 +read_restart.cpp: // check restart file version, warn if different +read_restart.cpp: // check lmptype.h sizes, error if different +read_restart.cpp: // reset unit_style only if different +read_restart.cpp: // so that timestep,neighbor-skin are not changed +read_restart.cpp: // set dimension from restart file +read_restart.cpp: // read nprocs from restart file, warn if different +read_restart.cpp: // don't set procgrid, warn if different +read_restart.cpp: // don't set newton_pair, leave input script value unchanged +read_restart.cpp: // set newton_bond from restart file +read_restart.cpp: // warn if different and input script settings are not default +read_restart.cpp: // set boundary settings from restart file +read_restart.cpp: // warn if different and input script settings are not default +read_restart.cpp: // create new AtomVec class using any stored args +read_restart.cpp:/* ---------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- */ +read_restart.cpp: // on rank 0 read in the chunk sizes that were written out +read_restart.cpp: // then consolidate them and compute offsets relative to the +read_restart.cpp: // end of the header info to fit the current partition size +read_restart.cpp: // if the number of ranks that did the writing is different +read_restart.cpp: int init_chunk_number = nprocs_file/nprocs; +read_restart.cpp: // scatter chunk sizes and offsets to all procs +read_restart.cpp: // if MPI-IO file, broadcast the end of the header offste +read_restart.cpp: // this allows all ranks to compute offset to their data +read_restart.cpp:// ---------------------------------------------------------------------- +read_restart.cpp:// ---------------------------------------------------------------------- +read_restart.cpp:// low-level fread methods +read_restart.cpp:// ---------------------------------------------------------------------- +read_restart.cpp:// ---------------------------------------------------------------------- +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +read_restart.cpp:/* ---------------------------------------------------------------------- +read_restart.cpp:------------------------------------------------------------------------- */ +region_block.cpp:/* ---------------------------------------------------------------------- +region_block.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +region_block.cpp: http://lammps.sandia.gov, Sandia National Laboratories +region_block.cpp:------------------------------------------------------------------------- */ +region_block.cpp:/* ---------------------------------------------------------------------- */ +region_block.cpp: // error check +region_block.cpp: // extent of block +region_block.cpp: // particle could be close to all 6 planes +region_block.cpp: // particle can only touch 3 planes +region_block.cpp: // open face data structs +region_block.cpp: // face[0] +region_block.cpp: // face[1] +region_block.cpp: // face[2] +region_block.cpp: // face[3] +region_block.cpp: // face[4] +region_block.cpp: // face[5] +region_block.cpp:/* ---------------------------------------------------------------------- */ +region_block.cpp:/* ---------------------------------------------------------------------- +region_block.cpp:------------------------------------------------------------------------- */ +region_block.cpp:/* ---------------------------------------------------------------------- +region_block.cpp: no contact if outside (possible if called from union/intersect) +region_block.cpp:------------------------------------------------------------------------- */ +region_block.cpp: // x is exterior to block +region_block.cpp: // x is interior to block or on its surface +region_block.cpp:/* ---------------------------------------------------------------------- +region_block.cpp: no contact if inside (possible if called from union/intersect) +region_block.cpp:------------------------------------------------------------------------- */ +region_block.cpp: // x is far enough from block that there is no contact +region_block.cpp: // x is interior to block +region_block.cpp: // x is exterior to block or on its surface +region_block.cpp: // xp,yp,zp = point on surface of block that x is closest to +region_block.cpp: // could be edge or corner pt of block +region_block.cpp: // do not add contact point if r >= cutoff +region_block.cpp:/*------------------------------------------------------------------------ +region_block.cpp:--------------------------------------------------------------------------*/ +region_block.cpp: // check if point projects inside of face +region_block.cpp: // check each edge +region_block.cpp:/*------------------------------------------------------------------------ +region_block.cpp:--------------------------------------------------------------------------*/ +region_cone.cpp:/* ---------------------------------------------------------------------- +region_cone.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +region_cone.cpp: http://lammps.sandia.gov, Sandia National Laboratories +region_cone.cpp:------------------------------------------------------------------------- */ +region_cone.cpp:/* ---------------------------------------------------------------------- +region_cone.cpp:------------------------------------------------------------------------- */ +region_cone.cpp:/* ---------------------------------------------------------------------- */ +region_cone.cpp: // check open face settings +region_cone.cpp: // error check +region_cone.cpp: // extent of cone +region_cone.cpp: // particle could be close to cone surface and 2 ends +region_cone.cpp: // particle can only touch surface and 1 end +region_cone.cpp:/* ---------------------------------------------------------------------- */ +region_cone.cpp:/* ---------------------------------------------------------------------- +region_cone.cpp:------------------------------------------------------------------------- */ +region_cone.cpp: currentradius = radiuslo + (x-lo)*(radiushi-radiuslo)/(hi-lo); +region_cone.cpp: currentradius = radiuslo + (y-lo)*(radiushi-radiuslo)/(hi-lo); +region_cone.cpp: currentradius = radiuslo + (z-lo)*(radiushi-radiuslo)/(hi-lo); +region_cone.cpp:/* ---------------------------------------------------------------------- +region_cone.cpp: no contact if outside (possible if called from union/intersect) +region_cone.cpp:------------------------------------------------------------------------- */ +region_cone.cpp: currentradius = radiuslo + (x[0]-lo)*(radiushi-radiuslo)/(hi-lo); +region_cone.cpp: // x is exterior to cone +region_cone.cpp: // x is interior to cone or on its surface +region_cone.cpp: // surflo = pt on outer circle of bottom end plane, same dir as x vs axis +region_cone.cpp: // surfhi = pt on outer circle of top end plane, same dir as x vs axis +region_cone.cpp: surflo[1] = c1 + del1*radiuslo/r; +region_cone.cpp: surflo[2] = c2 + del2*radiuslo/r; +region_cone.cpp: surfhi[1] = c1 + del1*radiushi/r; +region_cone.cpp: surfhi[2] = c2 + del2*radiushi/r; +region_cone.cpp: (radiushi-radiuslo)/(hi-lo)); +region_cone.cpp: (radiushi-radiuslo)/(hi-lo); +region_cone.cpp: // y is exterior to cone +region_cone.cpp: // y is interior to cone or on its surface +region_cone.cpp: // surflo = pt on outer circle of bottom end plane, same dir as y vs axis +region_cone.cpp: // surfhi = pt on outer circle of top end plane, same dir as y vs axis +region_cone.cpp: surflo[0] = c1 + del1*radiuslo/r; +region_cone.cpp: surflo[2] = c2 + del2*radiuslo/r; +region_cone.cpp: surfhi[0] = c1 + del1*radiushi/r; +region_cone.cpp: surfhi[2] = c2 + del2*radiushi/r; +region_cone.cpp: (radiushi-radiuslo)/(hi-lo)); +region_cone.cpp: currentradius = radiuslo + (x[2]-lo)*(radiushi-radiuslo)/(hi-lo); +region_cone.cpp: // z is exterior to cone +region_cone.cpp: // z is interior to cone or on its surface +region_cone.cpp: // surflo = pt on outer circle of bottom end plane, same dir as z vs axis +region_cone.cpp: // surfhi = pt on outer circle of top end plane, same dir as z vs axis +region_cone.cpp: surflo[0] = c1 + del1*radiuslo/r; +region_cone.cpp: surflo[1] = c2 + del2*radiuslo/r; +region_cone.cpp: surfhi[0] = c1 + del1*radiushi/r; +region_cone.cpp: surfhi[1] = c2 + del2*radiushi/r; +region_cone.cpp: (radiushi-radiuslo)/(hi-lo)); +region_cone.cpp:/* ---------------------------------------------------------------------- +region_cone.cpp: no contact if inside (possible if called from union/intersect) +region_cone.cpp:------------------------------------------------------------------------- */ +region_cone.cpp: currentradius = radiuslo + (x[0]-lo)*(radiushi-radiuslo)/(hi-lo); +region_cone.cpp: // radius of curvature, only used for granular walls +region_cone.cpp: // x is far enough from cone that there is no contact +region_cone.cpp: // x is interior to cone +region_cone.cpp: // x is exterior to cone or on its surface +region_cone.cpp: // corner1234 = 4 corner pts of half trapezoid = cone surf in plane of x +region_cone.cpp: // project x to 3 line segments in half trapezoid (4th is axis of cone) +region_cone.cpp: // nearest = point on surface of cone that x is closest to +region_cone.cpp: // could be edge of cone +region_cone.cpp: // do not add contact point if r >= cutoff +region_cone.cpp: corner1[1] = c1 + del1*radiuslo/r; +region_cone.cpp: corner1[2] = c2 + del2*radiuslo/r; +region_cone.cpp: corner2[1] = c1 + del1*radiushi/r; +region_cone.cpp: corner2[2] = c2 + del2*radiushi/r; +region_cone.cpp: crad = -2.0*(radiuslo + (nearest[0]-lo)*(radiushi-radiuslo)/(hi-lo)); +region_cone.cpp: currentradius = radiuslo + (x[1]-lo)*(radiushi-radiuslo)/(hi-lo); +region_cone.cpp: // radius of curvature, only used for granular walls +region_cone.cpp: // y is far enough from cone that there is no contact +region_cone.cpp: // y is interior to cone +region_cone.cpp: // y is exterior to cone or on its surface +region_cone.cpp: // corner1234 = 4 corner pts of half trapezoid = cone surf in plane of y +region_cone.cpp: // project x to 3 line segments in half trapezoid (4th is axis of cone) +region_cone.cpp: // nearest = point on surface of cone that y is closest to +region_cone.cpp: // could be edge of cone +region_cone.cpp: // do not add contact point if r >= cutoff +region_cone.cpp: corner1[0] = c1 + del1*radiuslo/r; +region_cone.cpp: corner1[2] = c2 + del2*radiuslo/r; +region_cone.cpp: corner2[0] = c1 + del1*radiushi/r; +region_cone.cpp: corner2[2] = c2 + del2*radiushi/r; +region_cone.cpp: crad = -2.0*(radiuslo + (nearest[1]-lo)*(radiushi-radiuslo)/(hi-lo)); +region_cone.cpp: currentradius = radiuslo + (x[2]-lo)*(radiushi-radiuslo)/(hi-lo); +region_cone.cpp: // radius of curvature, only used for granular walls +region_cone.cpp: // z is far enough from cone that there is no contact +region_cone.cpp: // z is interior to cone +region_cone.cpp: // z is exterior to cone or on its surface +region_cone.cpp: // corner1234 = 4 corner pts of half trapezoid = cone surf in plane of z +region_cone.cpp: // project x to 3 line segments in half trapezoid (4th is axis of cone) +region_cone.cpp: // nearest = point on surface of cone that z is closest to +region_cone.cpp: // could be edge of cone +region_cone.cpp: // do not add contact point if r >= cutoff +region_cone.cpp: corner1[0] = c1 + del1*radiuslo/r; +region_cone.cpp: corner1[1] = c2 + del2*radiuslo/r; +region_cone.cpp: corner2[0] = c1 + del1*radiushi/r; +region_cone.cpp: corner2[1] = c2 + del2*radiushi/r; +region_cone.cpp: crad = -2.0*(radiuslo + (nearest[2]-lo)*(radiushi-radiuslo)/(hi-lo)); +region_cone.cpp:/* ---------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +region.cpp: http://lammps.sandia.gov, Sandia National Laboratories +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp: return 1 if region is dynamic (moves/rotates) or has variable shape +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp: also insures variables are invoked by all procs even those w/out atoms +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp:------------------------------------------------------------------------- */ +region.cpp: // one of surface_int/ext() will return 0 +region.cpp: // so no need to worry about offset of contact indices +region.cpp:/* ---------------------------------------------------------------------- +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp: pre-compute dx,dy,dz and theta for a moving/rotating region +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp: sign of angle determines whether rotating forward/backward in time +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp:------------------------------------------------------------------------- */ +region.cpp: // option defaults +region.cpp: // additional checks on valid face index are done by region classes +region.cpp: // error check +region.cpp: // setup scaling +region.cpp: // runit = unit vector along rotation axis +region.cpp: runit[0] = axis[0]/len; +region.cpp: runit[1] = axis[1]/len; +region.cpp: runit[2] = axis[2]/len; +region.cpp:/* ---------------------------------------------------------------------- +region.cpp:------------------------------------------------------------------------- */ +region.cpp: double t = MathExtra::dot3(ca,ba) / MathExtra::dot3(ba,ba); +region.cpp:/* ---------------------------------------------------------------------- +region.cpp: necessary b/c motion variables are for displacement & theta +region.cpp: called by fix wall/gran/region every timestep +region.cpp:------------------------------------------------------------------------- */ +region.cpp: v[0] = (dx - prev[0])/update->dt; +region.cpp: v[1] = (dy - prev[1])/update->dt; +region.cpp: v[2] = (dz - prev[2])/update->dt; +region.cpp: double angvel = (theta-prev[3]) / update->dt; +region.cpp:/* ---------------------------------------------------------------------- +region.cpp: since contacts only store delx/y/z, need to pass particle coords +region.cpp: called by fix/wall/gran/region every contact every timestep +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp: used by restart of fix/wall/gran/region +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp: region writes its current style, id, number of sub-regions, position/angle +region.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp: if they match current region, also read previous position/angle +region.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme +region.cpp:------------------------------------------------------------------------- */ +region.cpp:/* ---------------------------------------------------------------------- +region.cpp:------------------------------------------------------------------------- */ +region_cylinder.cpp:/* ---------------------------------------------------------------------- +region_cylinder.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +region_cylinder.cpp: http://lammps.sandia.gov, Sandia National Laboratories +region_cylinder.cpp:------------------------------------------------------------------------- */ +region_cylinder.cpp:/* ---------------------------------------------------------------------- */ +region_cylinder.cpp: // check open face settings +region_cylinder.cpp: // error check +region_cylinder.cpp: // extent of cylinder +region_cylinder.cpp: // for variable radius, uses initial radius +region_cylinder.cpp: // particle could be close to cylinder surface and 2 ends +region_cylinder.cpp: // particle can only touch surface and 1 end +region_cylinder.cpp:/* ---------------------------------------------------------------------- */ +region_cylinder.cpp:/* ---------------------------------------------------------------------- */ +region_cylinder.cpp:/* ---------------------------------------------------------------------- +region_cylinder.cpp:------------------------------------------------------------------------- */ +region_cylinder.cpp:/* ---------------------------------------------------------------------- +region_cylinder.cpp: no contact if outside (possible if called from union/intersect) +region_cylinder.cpp:------------------------------------------------------------------------- */ +region_cylinder.cpp: // x is exterior to cylinder +region_cylinder.cpp: // x is interior to cylinder or on its surface +region_cylinder.cpp: contact[n].dely = del1*(1.0-radius/r); +region_cylinder.cpp: contact[n].delz = del2*(1.0-radius/r); +region_cylinder.cpp: // y is exterior to cylinder +region_cylinder.cpp: // y is interior to cylinder or on its surface +region_cylinder.cpp: contact[n].delx = del1*(1.0-radius/r); +region_cylinder.cpp: contact[n].delz = del2*(1.0-radius/r); +region_cylinder.cpp: // z is exterior to cylinder +region_cylinder.cpp: // z is interior to cylinder or on its surface +region_cylinder.cpp: contact[n].delx = del1*(1.0-radius/r); +region_cylinder.cpp: contact[n].dely = del2*(1.0-radius/r); +region_cylinder.cpp:/* ---------------------------------------------------------------------- +region_cylinder.cpp: no contact if inside (possible if called from union/intersect) +region_cylinder.cpp:------------------------------------------------------------------------- */ +region_cylinder.cpp: // radius of curvature for granular +region_cylinder.cpp: // 0 for flat surfaces (infinite case), 2*radius for curved portion +region_cylinder.cpp: // x is far enough from cylinder that there is no contact +region_cylinder.cpp: // x is interior to cylinder +region_cylinder.cpp: // x is exterior to cylinder or on its surface +region_cylinder.cpp: // xp,yp,zp = point on surface of cylinder that x is closest to +region_cylinder.cpp: // could be edge of cylinder +region_cylinder.cpp: // do not add contact point if r >= cutoff +region_cylinder.cpp: yp = c1 + del1*radius/r; +region_cylinder.cpp: zp = c2 + del2*radius/r; +region_cylinder.cpp: // closest point on curved surface +region_cylinder.cpp: yp = c1 + del1*radius/r; +region_cylinder.cpp: zp = c2 + del2*radius/r; +region_cylinder.cpp: // closest point on bottom cap +region_cylinder.cpp: // closest point on top cap +region_cylinder.cpp: // y is far enough from cylinder that there is no contact +region_cylinder.cpp: // y is interior to cylinder +region_cylinder.cpp: // y is exterior to cylinder or on its surface +region_cylinder.cpp: // xp,yp,zp = point on surface of cylinder that x is closest to +region_cylinder.cpp: // could be edge of cylinder +region_cylinder.cpp: // do not add contact point if r >= cutoff +region_cylinder.cpp: xp = c1 + del1*radius/r; +region_cylinder.cpp: zp = c2 + del2*radius/r; +region_cylinder.cpp: // closest point on curved surface +region_cylinder.cpp: xp = c1 + del1*radius/r; +region_cylinder.cpp: zp = c2 + del2*radius/r; +region_cylinder.cpp: // closest point on bottom cap +region_cylinder.cpp: // closest point on top cap +region_cylinder.cpp: // z is far enough from cylinder that there is no contact +region_cylinder.cpp: // z is interior to cylinder +region_cylinder.cpp: // z is exterior to cylinder or on its surface +region_cylinder.cpp: // xp,yp,zp = point on surface of cylinder that x is closest to +region_cylinder.cpp: // could be edge of cylinder +region_cylinder.cpp: // do not add contact point if r >= cutoff +region_cylinder.cpp: xp = c1 + del1*radius/r; +region_cylinder.cpp: yp = c2 + del2*radius/r; +region_cylinder.cpp: // closest point on curved surface +region_cylinder.cpp: xp = c1 + del1*radius/r; +region_cylinder.cpp: yp = c2 + del2*radius/r; +region_cylinder.cpp: // closest point on bottom cap +region_cylinder.cpp: // closest point on top cap +region_cylinder.cpp:/* ---------------------------------------------------------------------- +region_cylinder.cpp:------------------------------------------------------------------------- */ +region_cylinder.cpp:/* ---------------------------------------------------------------------- +region_cylinder.cpp:------------------------------------------------------------------------- */ +region_cylinder.cpp:/* ---------------------------------------------------------------------- +region_cylinder.cpp: called once per timestep by fix/wall/gran/region. +region_cylinder.cpp:------------------------------------------------------------------------- */ +region_cylinder.cpp:/* ---------------------------------------------------------------------- +region_cylinder.cpp:------------------------------------------------------------------------- */ +region_cylinder.cpp: double delx, dely, delz; // Displacement of contact point in x,y,z +region_cylinder.cpp: dely = (xc[1] - xcenter[1])*(1 - rprev/radius); +region_cylinder.cpp: delz = (xc[2] - xcenter[2])*(1 - rprev/radius); +region_cylinder.cpp: delx = (xc[0] - xcenter[0])*(1 - rprev/radius); +region_cylinder.cpp: delz = (xc[2] - xcenter[2])*(1 - rprev/radius); +region_cylinder.cpp: delx = (xc[0] - xcenter[0])*(1 - rprev/radius); +region_cylinder.cpp: dely = (xc[1] - xcenter[1])*(1 - rprev/radius); +region_cylinder.cpp: vwall[0] += delx/update->dt; +region_cylinder.cpp: vwall[1] += dely/update->dt; +region_cylinder.cpp: vwall[2] += delz/update->dt; +region_cylinder.cpp: //printf ("R is %g, prev %g, velocity of wall at %g %g %g is %g %g %g\n",radius,rprev,xc[0],xc[1],xc[2],vwall[0],vwall[1],vwall[2]); +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +region_intersect.cpp: http://lammps.sandia.gov, Sandia National Laboratories +region_intersect.cpp:------------------------------------------------------------------------- */ +region_intersect.cpp:/* ---------------------------------------------------------------------- */ +region_intersect.cpp: // build list of regions to intersect +region_intersect.cpp: // store sub-region IDs in idsub +region_intersect.cpp: // this region is variable shape or dynamic if any of sub-regions are +region_intersect.cpp: // extent of intersection of regions +region_intersect.cpp: // has bounding box if interior and any sub-region has bounding box +region_intersect.cpp: // possible contacts = sum of possible contacts in all sub-regions +region_intersect.cpp: // for near contacts and touching contacts +region_intersect.cpp:/* ---------------------------------------------------------------------- */ +region_intersect.cpp:/* ---------------------------------------------------------------------- */ +region_intersect.cpp: // re-build list of sub-regions in case other regions were deleted +region_intersect.cpp: // error if a sub-region was deleted +region_intersect.cpp: // init the sub-regions +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp:------------------------------------------------------------------------- */ +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp:------------------------------------------------------------------------- */ +region_intersect.cpp: // increment by cmax instead of tmax to insure +region_intersect.cpp: // possible wall IDs for sub-regions are non overlapping +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp: (1) flip interior/exterior flag of each sub-region +region_intersect.cpp: (4) flip interior/exterior flags back to original settings +region_intersect.cpp:------------------------------------------------------------------------- */ +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp:------------------------------------------------------------------------- */ +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp: move/rotate all sub-regions +region_intersect.cpp:------------------------------------------------------------------------- */ +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp: get translational/angular velocities of all subregions +region_intersect.cpp:------------------------------------------------------------------------- */ +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp: used by restart of fix/wall/gran/region +region_intersect.cpp:------------------------------------------------------------------------- */ +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp: region writes its current position/angle +region_intersect.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme +region_intersect.cpp:------------------------------------------------------------------------- */ +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp: region reads its previous position/angle +region_intersect.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme +region_intersect.cpp:------------------------------------------------------------------------- */ +region_intersect.cpp:/* ---------------------------------------------------------------------- +region_intersect.cpp:------------------------------------------------------------------------- */ +region_plane.cpp:/* ---------------------------------------------------------------------- +region_plane.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +region_plane.cpp: http://lammps.sandia.gov, Sandia National Laboratories +region_plane.cpp:------------------------------------------------------------------------- */ +region_plane.cpp:/* ---------------------------------------------------------------------- */ +region_plane.cpp: // enforce unit normal +region_plane.cpp: normal[0] /= sqrt(rsq); +region_plane.cpp: normal[1] /= sqrt(rsq); +region_plane.cpp: normal[2] /= sqrt(rsq); +region_plane.cpp: // plane has no bounding box +region_plane.cpp:/* ---------------------------------------------------------------------- */ +region_plane.cpp:/* ---------------------------------------------------------------------- +region_plane.cpp:------------------------------------------------------------------------- */ +region_plane.cpp:/* ---------------------------------------------------------------------- +region_plane.cpp: no contact if on other side (possible if called from union/intersect) +region_plane.cpp:------------------------------------------------------------------------- */ +region_plane.cpp:/* ---------------------------------------------------------------------- +region_plane.cpp: no contact if on other side (possible if called from union/intersect) +region_plane.cpp:------------------------------------------------------------------------- */ +region_prism.cpp:/* ---------------------------------------------------------------------- +region_prism.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +region_prism.cpp: http://lammps.sandia.gov, Sandia National Laboratories +region_prism.cpp:------------------------------------------------------------------------- */ +region_prism.cpp:/* ---------------------------------------------------------------------- +region_prism.cpp:------------------------------------------------------------------------- */ +region_prism.cpp:/* ---------------------------------------------------------------------- */ +region_prism.cpp: // error check +region_prism.cpp: // prism cannot be 0 thickness in any dim, else inverse blows up +region_prism.cpp: // non-zero tilt values cannot be used if either dim is INF on both ends +region_prism.cpp: // extent of prism +region_prism.cpp: // particle could be close to all 6 planes +region_prism.cpp: // particle can only touch 3 planes +region_prism.cpp: // h = transformation matrix from tilt coords (0-1) to box coords (xyz) +region_prism.cpp: // columns of h are edge vectors of tilted box +region_prism.cpp: // hinv = transformation matrix from box coords to tilt coords +region_prism.cpp: // both h and hinv are upper triangular +region_prism.cpp: // since 1st edge of prism is along x-axis +region_prism.cpp: // and bottom face of prism is in xy plane +region_prism.cpp: hinv[0][0] = 1.0/h[0][0]; +region_prism.cpp: hinv[0][1] = -h[0][1] / (h[0][0]*h[1][1]); +region_prism.cpp: hinv[0][2] = (h[0][1]*h[1][2] - h[0][2]*h[1][1]) / (h[0][0]*h[1][1]*h[2][2]); +region_prism.cpp: hinv[1][1] = 1.0/h[1][1]; +region_prism.cpp: hinv[1][2] = -h[1][2] / (h[1][1]*h[2][2]); +region_prism.cpp: hinv[2][2] = 1.0/h[2][2]; +region_prism.cpp: // corners = 8 corner points of prism +region_prism.cpp: // order = x varies fastest, then y, finally z +region_prism.cpp: // clo/chi = lo and hi corner pts of prism +region_prism.cpp: // face = 6 inward-facing unit normals to prism faces +region_prism.cpp: // order = xy plane, xz plane, yz plane +region_prism.cpp: // remap open face indices to be consistent +region_prism.cpp: // tri = 3 vertices (0-7) in each of 12 triangles on 6 faces +region_prism.cpp: // verts in each tri are ordered so that right-hand rule gives inward norm +region_prism.cpp: // order = xy plane, xz plane, yz plane +region_prism.cpp:/* ---------------------------------------------------------------------- */ +region_prism.cpp:/* ---------------------------------------------------------------------- +region_prism.cpp: abc = Hinv * (xyz - xyz/lo) +region_prism.cpp: xyz/lo = lower-left corner of prism +region_prism.cpp:------------------------------------------------------------------------- */ +region_prism.cpp:/* ---------------------------------------------------------------------- +region_prism.cpp: no contact if outside (possible if called from union/intersect) +region_prism.cpp:------------------------------------------------------------------------- */ +region_prism.cpp: // x is exterior to prism +region_prism.cpp: // x is interior to prism or on its surface +region_prism.cpp:/* ---------------------------------------------------------------------- +region_prism.cpp: no contact if inside (possible if called from union/intersect) +region_prism.cpp:------------------------------------------------------------------------- */ +region_prism.cpp: // x is far enough from prism that there is no contact +region_prism.cpp: // x is interior to prism +region_prism.cpp: // x is exterior to prism or on its surface +region_prism.cpp: // xp,yp,zp = point on surface of prism that x is closest to +region_prism.cpp: // could be edge or corner pt of prism +region_prism.cpp: // do not add contact point if r >= cutoff +region_prism.cpp:/* ---------------------------------------------------------------------- +region_prism.cpp:------------------------------------------------------------------------- */ +region_prism.cpp: // generate successive xnear points, one nearest to x is (xp,yp,zp) +region_prism.cpp: // loop over 6 faces and 2 triangles in each face +region_prism.cpp: // xproj = x projected to plane of triangle +region_prism.cpp: // if xproj is inside or on triangle boundary, that is xnear +region_prism.cpp: // else: loop over 3 edges of triangle +region_prism.cpp: // compute distance to edge line +region_prism.cpp: // xnear = nearest point on line to xproj, bounded by segment end pts +region_prism.cpp: iface = itri/2; +region_prism.cpp:/* ---------------------------------------------------------------------- +region_prism.cpp:------------------------------------------------------------------------- */ +region_prism.cpp:/* ---------------------------------------------------------------------- */ +region_sphere.cpp:/* ---------------------------------------------------------------------- +region_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +region_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories +region_sphere.cpp:------------------------------------------------------------------------- */ +region_sphere.cpp:/* ---------------------------------------------------------------------- */ +region_sphere.cpp: // error check +region_sphere.cpp: // extent of sphere +region_sphere.cpp: // for variable radius, uses initial radius +region_sphere.cpp:/* ---------------------------------------------------------------------- */ +region_sphere.cpp:/* ---------------------------------------------------------------------- */ +region_sphere.cpp:/* ---------------------------------------------------------------------- +region_sphere.cpp:------------------------------------------------------------------------- */ +region_sphere.cpp:/* ---------------------------------------------------------------------- +region_sphere.cpp: no contact if outside (possible if called from union/intersect) +region_sphere.cpp:------------------------------------------------------------------------- */ +region_sphere.cpp: contact[0].delx = delx*(1.0-radius/r); +region_sphere.cpp: contact[0].dely = dely*(1.0-radius/r); +region_sphere.cpp: contact[0].delz = delz*(1.0-radius/r); +region_sphere.cpp:/* ---------------------------------------------------------------------- +region_sphere.cpp: no contact if inside (possible if called from union/intersect) +region_sphere.cpp:------------------------------------------------------------------------- */ +region_sphere.cpp: contact[0].delx = delx*(1.0-radius/r); +region_sphere.cpp: contact[0].dely = dely*(1.0-radius/r); +region_sphere.cpp: contact[0].delz = delz*(1.0-radius/r); +region_sphere.cpp:/* ---------------------------------------------------------------------- +region_sphere.cpp:------------------------------------------------------------------------- */ +region_sphere.cpp:/* ---------------------------------------------------------------------- +region_sphere.cpp:------------------------------------------------------------------------- */ +region_sphere.cpp:/* ---------------------------------------------------------------------- +region_sphere.cpp: called once per timestep by fix/wall/gran/region. +region_sphere.cpp:------------------------------------------------------------------------- */ +region_sphere.cpp:/* ---------------------------------------------------------------------- +region_sphere.cpp:------------------------------------------------------------------------- */ +region_sphere.cpp: double delx, dely, delz; // Displacement of contact point in x,y,z +region_sphere.cpp: delx = (xc[0] - xcenter[0])*(1 - rprev/radius); +region_sphere.cpp: dely = (xc[1] - xcenter[1])*(1 - rprev/radius); +region_sphere.cpp: delz = (xc[2] - xcenter[2])*(1 - rprev/radius); +region_sphere.cpp: vwall[0] += delx/update->dt; +region_sphere.cpp: vwall[1] += dely/update->dt; +region_sphere.cpp: vwall[2] += delz/update->dt; +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +region_union.cpp: http://lammps.sandia.gov, Sandia National Laboratories +region_union.cpp:------------------------------------------------------------------------- */ +region_union.cpp:/* ---------------------------------------------------------------------- */ +region_union.cpp: // build list of region indices to union +region_union.cpp: // store sub-region IDs in idsub +region_union.cpp: // this region is variable shape or dynamic if any of sub-regions are +region_union.cpp: // extent of union of regions +region_union.cpp: // has bounding box if interior and all sub-regions have bounding box +region_union.cpp: // possible contacts = sum of possible contacts in all sub-regions +region_union.cpp: // for near contacts and touching contacts +region_union.cpp:/* ---------------------------------------------------------------------- */ +region_union.cpp:/* ---------------------------------------------------------------------- */ +region_union.cpp: // re-build list of sub-regions in case other regions were deleted +region_union.cpp: // error if a sub-region was deleted +region_union.cpp: // init the sub-regions +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp:------------------------------------------------------------------------- */ +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp:------------------------------------------------------------------------- */ +region_union.cpp: // increment by cmax instead of tmax to insure +region_union.cpp: // possible wall IDs for sub-regions are non overlapping +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp: (1) flip interior/exterior flag of each sub-region +region_union.cpp: (4) flip interior/exterior flags back to original settings +region_union.cpp:------------------------------------------------------------------------- */ +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp:------------------------------------------------------------------------- */ +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp: move/rotate all sub-regions +region_union.cpp:------------------------------------------------------------------------- */ +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp: get translational/angular velocities of all subregions +region_union.cpp:------------------------------------------------------------------------- */ +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp: used by restart of fix/wall/gran/region +region_union.cpp:------------------------------------------------------------------------- */ +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp: region writes its current position/angle +region_union.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme +region_union.cpp:------------------------------------------------------------------------- */ +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp: region reads its previous position/angle +region_union.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme +region_union.cpp:------------------------------------------------------------------------- */ +region_union.cpp:/* ---------------------------------------------------------------------- +region_union.cpp:------------------------------------------------------------------------- */ +replicate.cpp:/* ---------------------------------------------------------------------- +replicate.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +replicate.cpp: http://lammps.sandia.gov, Sandia National Laboratories +replicate.cpp:------------------------------------------------------------------------- */ +replicate.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files +replicate.cpp:/* ---------------------------------------------------------------------- */ +replicate.cpp:/* ---------------------------------------------------------------------- */ +replicate.cpp: // nrep = total # of replications +replicate.cpp: // error and warning checks +replicate.cpp: // maxtag = largest atom tag across all existing atoms +replicate.cpp: // maxmol = largest molecule tag across all existing atoms +replicate.cpp: // unmap existing atoms via image flags +replicate.cpp: // communication buffer for all my atom's info +replicate.cpp: // max_size = largest buffer needed by any proc +replicate.cpp: // must do before new Atom class created, +replicate.cpp: // since size_restart() uses atom->nlocal +replicate.cpp: // old = original atom class +replicate.cpp: // atom = new replicated atom class +replicate.cpp: // also set atomKK for Kokkos version of Atom class +replicate.cpp: // check that new system will not be too large +replicate.cpp: // new tags cannot exceed MAXTAGINT +replicate.cpp: // new system sizes cannot exceed MAXBIGINT +replicate.cpp: // assign atom and topology counts in new class from old one +replicate.cpp: // store old simulation box +replicate.cpp: // setup new simulation box +replicate.cpp: // new problem setup using new box boundaries +replicate.cpp: else n = static_cast (LB_FACTOR * atom->natoms / nprocs); +replicate.cpp: // copy type arrays to new atom class +replicate.cpp: // set bounds for my proc +replicate.cpp: // if periodic and I am lo/hi proc, adjust bounds by EPSILON +replicate.cpp: // insures all replicated atoms will be owned even with round-off +replicate.cpp: // loop over all procs +replicate.cpp: // if this iteration of loop is me: +replicate.cpp: // pack my unmapped atom data into buf +replicate.cpp: // bcast it to all other procs +replicate.cpp: // performs 3d replicate loop with while loop over atoms in buf +replicate.cpp: // x = new replicated position, remapped into simulation box +replicate.cpp: // unpack atom into new atom class from buf if I own it +replicate.cpp: // adjust tag, mol #, coord, topology info as needed +replicate.cpp: // while loop over one proc's atom list +replicate.cpp: // free communication buffer and old atom class +replicate.cpp: // check that all atoms were assigned to procs +replicate.cpp: // check that atom IDs are valid +replicate.cpp: // create global mapping of atoms +replicate.cpp: // create special bond lists for molecular systems +rerun.cpp:/* ---------------------------------------------------------------------- +rerun.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +rerun.cpp: http://lammps.sandia.gov, Sandia National Laboratories +rerun.cpp:------------------------------------------------------------------------- */ +rerun.cpp:/* ---------------------------------------------------------------------- */ +rerun.cpp:/* ---------------------------------------------------------------------- */ +rerun.cpp: // list of dump files = args until a keyword +rerun.cpp: // parse optional args up until "dump" +rerun.cpp: // user MAXBIGINT -1 so Output can add 1 to it and still be a big int +rerun.cpp: // pass list of filenames to ReadDump +rerun.cpp: // along with post-"dump" args and post-"format" args +rerun.cpp: // perform the pseudo run +rerun.cpp: // invoke lmp->init() only once +rerun.cpp: // read all relevant snapshots +rerun.cpp: // use setup_minimal() since atoms are already owned by correct procs +rerun.cpp: // addstep_compute_all() insures energy/virial computed on every snapshot +rerun.cpp: // insure thermo output on last dump timestep +rerun.cpp: // set update->nsteps to ndump for Finish stats to print +rerun.cpp: // clean-up +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +respa.cpp: http://lammps.sandia.gov, Sandia National Laboratories +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp:/* ---------------------------------------------------------------------- */ +respa.cpp: // set level at which each force is computed +respa.cpp: // argument settings override defaults +respa.cpp: // defaults for hybrid pair styles +respa.cpp: // the hybrid keyword requires a hybrid pair style +respa.cpp: // each hybrid sub-style needs to be assigned to a respa level +respa.cpp: // cannot specify both pair and inner/middle/outer +respa.cpp: error->all(FLERR,"Cannot set both respa pair and inner/middle/outer"); +respa.cpp: // if either inner and outer is specified, then both must be +respa.cpp: // middle cannot be set without inner/outer +respa.cpp: error->all(FLERR,"Cannot set respa middle without inner/outer"); +respa.cpp: // cannot combine hybrid with any of pair/inner/middle/outer +respa.cpp: "any of pair/inner/middle/outer"); +respa.cpp: // set defaults if user did not specify level +respa.cpp: // bond to innermost level +respa.cpp: // angle same as bond, dihedral same as angle, improper same as dihedral +respa.cpp: // pair to outermost level if no inner/middle/outer +respa.cpp: // inner/middle/outer have no defaults +respa.cpp: // kspace same as pair or outer +respa.cpp: // print respa levels +respa.cpp: // check that levels are in correct order +respa.cpp: // warn if any levels are devoid of forces +respa.cpp: // check cutoff consistency if inner/middle/outer are enabled +respa.cpp: // set outer pair of cutoffs to inner pair if middle is not enabled +respa.cpp: // ensure that pair->compute() is run properly +respa.cpp: // when the hybrid keyword is not used +respa.cpp: // allocate other needed arrays +respa.cpp:/* ---------------------------------------------------------------------- */ +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp: // warn if no fixes +respa.cpp: // create fix needed for storing atom-based respa level forces +respa.cpp: // will delete it at end of run +respa.cpp: // if supported, we also store torques on a per-level basis +respa.cpp: // insure respa inner/middle/outer is using Pair class that supports it +respa.cpp: error->all(FLERR,"Pair style does not support rRESPA inner/middle/outer"); +respa.cpp: // virial_style = 1 (explicit) since never computed implicitly like Verlet +respa.cpp: // setup lists of computes for global and per-atom PE and pressure +respa.cpp: // detect if fix omp is present and will clear force arrays +respa.cpp: // set flags for arrays to clear in force_clear() +respa.cpp: // step[] = timestep for each level +respa.cpp: step[ilevel] = step[ilevel+1]/loop[ilevel]; +respa.cpp: // set newton flag for each level +respa.cpp: // orthogonal vs triclinic simulation box +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp: // setup domain, communication and neighboring +respa.cpp: // acquire ghosts +respa.cpp: // build neighbor lists +respa.cpp: // compute all forces +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp: // setup domain, communication and neighboring +respa.cpp: // acquire ghosts +respa.cpp: // build neighbor lists +respa.cpp: // compute all forces +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp: // needed in case end_of_step() or output() use total force +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp:/* ---------------------------------------------------------------------- */ +respa.cpp: step[ilevel] = step[ilevel+1]/loop[ilevel]; +respa.cpp:/* ---------------------------------------------------------------------- */ +respa.cpp: // at outermost level, check on rebuilding neighbor list +respa.cpp: // at innermost level, communicate +respa.cpp: // at middle levels, do nothing +respa.cpp: // rRESPA recursion thru all levels +respa.cpp: // this used to be before neigh list build, +respa.cpp: // which prevented per-atom energy/stress being tallied correctly +respa.cpp: // b/c atoms migrated to new procs between short/long force calls +respa.cpp: // now they migrate at very start of rRESPA timestep, before all forces +respa.cpp: // force computations +respa.cpp: // important that ordering is same as Verlet +respa.cpp: // so that any order dependencies are the same +respa.cpp: // when potentials are invoked at same level +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp: // clear global force array +respa.cpp: // if either newton flag is set, also include ghosts +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp:/* ---------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +respa.cpp:/*----------------------------------------------------------------------- +respa.cpp:------------------------------------------------------------------------- */ +run.cpp:/* ---------------------------------------------------------------------- +run.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +run.cpp: http://lammps.sandia.gov, Sandia National Laboratories +run.cpp:------------------------------------------------------------------------- */ +run.cpp:/* ---------------------------------------------------------------------- */ +run.cpp:/* ---------------------------------------------------------------------- */ +run.cpp: // ignore run command, if walltime limit was already reached +run.cpp: // parse optional args +run.cpp: // all remaining args are commands +run.cpp: // first,last = arg index of first/last commands +run.cpp: // set ncommands = 0 if single command and it is NULL +run.cpp: // set nsteps as integer, using upto value if specified +run.cpp: // error check +run.cpp: error->all(FLERR,"Invalid run command start/stop value"); +run.cpp: error->all(FLERR,"Invalid run command start/stop value"); +run.cpp: // if nevery, make copies of arg strings that are commands +run.cpp: // required because re-parsing commands via input->one() will wipe out args +run.cpp: // perform a single run +run.cpp: // use start/stop to set begin/end step +run.cpp: // if pre or 1st run, do System init/setup, +run.cpp: // else just init timer and setup output +run.cpp: // if post, do full Finish, else just print time +run.cpp: // perform multiple runs optionally interleaved with invocation command(s) +run.cpp: // use start/stop to set begin/end step +run.cpp: // if pre or 1st iteration of multiple runs, do System init/setup, +run.cpp: // else just init timer and setup output +run.cpp: // if post or last iteration, do full Finish, else just print time +run.cpp: // wrap command invocation with clearstep/addstep +run.cpp: // since a command may invoke computes via variables +set.cpp:/* ---------------------------------------------------------------------- +set.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +set.cpp: http://lammps.sandia.gov, Sandia National Laboratories +set.cpp:------------------------------------------------------------------------- */ +set.cpp:/* ---------------------------------------------------------------------- */ +set.cpp: // style and ID info +set.cpp: // loop over keyword/value pairs +set.cpp: // call appropriate routine to reset attributes +set.cpp: } else if (strcmp(arg[iarg],"type/fraction") == 0) { +set.cpp: } else if (strcmp(arg[iarg],"dipole/random") == 0) { +set.cpp: } else if (strcmp(arg[iarg],"spin/random") == 0) { +set.cpp: } else if (strcmp(arg[iarg],"quat/random") == 0) { +set.cpp: dvalue *= MY_PI/180.0; +set.cpp: } else if (strcmp(arg[iarg],"theta/random") == 0) { +set.cpp: (strcmp(arg[iarg],"density/disc") == 0)) { +set.cpp: if (strcmp(arg[iarg],"density/disc") == 0) { +set.cpp: error->all(FLERR,"Density/disc option requires 2d simulation"); +set.cpp: } else if (strcmp(arg[iarg],"meso/e") == 0) { +set.cpp: error->all(FLERR,"Cannot set meso/e for this atom style"); +set.cpp: } else if (strcmp(arg[iarg],"meso/cv") == 0) { +set.cpp: error->all(FLERR,"Cannot set meso/cv for this atom style"); +set.cpp: } else if (strcmp(arg[iarg],"meso/rho") == 0) { +set.cpp: error->all(FLERR,"Cannot set meso/rho for this atom style"); +set.cpp: } else if (strcmp(arg[iarg],"smd/mass/density") == 0) { +set.cpp: error->all(FLERR,"Cannot set smd/mass/density for this atom style"); +set.cpp: } else if (strcmp(arg[iarg],"smd/contact/radius") == 0) { +set.cpp: error->all(FLERR,"Cannot set smd/contact/radius " +set.cpp: } else if (strcmp(arg[iarg],"dpd/theta") == 0) { +set.cpp: error->all(FLERR,"Cannot set dpd/theta for this atom style"); +set.cpp: // statistics +set.cpp: // free local memory +set.cpp:/* ---------------------------------------------------------------------- +set.cpp:------------------------------------------------------------------------- */ +set.cpp:/* ---------------------------------------------------------------------- +set.cpp:------------------------------------------------------------------------- */ +set.cpp: // evaluate atom-style variable(s) if necessary +set.cpp: // loop over selected atoms +set.cpp: // overwrite dvalue, ivalue, xyzw value if variables defined +set.cpp: // else the input script scalar value remains in place +set.cpp: // set values in per-atom arrays +set.cpp: // error check here in case atom-style variables generated bogus value +set.cpp: // set mass from volume and supplied mass density +set.cpp: double tfactor = force->mvv2e / (domain->dimension * force->boltz); +set.cpp: // set shape of ellipsoidal particle +set.cpp: // set length of line particle +set.cpp: // set corners of tri particle +set.cpp: // set rmass via density +set.cpp: // if radius > 0.0, treat as sphere or disc +set.cpp: // if shape > 0.0, treat as ellipsoid (or ellipse, when uncomment below) +set.cpp: // if length > 0.0, treat as line +set.cpp: // if area > 0.0, treat as tri +set.cpp: // else set rmass to density directly +set.cpp: atom->rmass[i] = 4.0*MY_PI/3.0 * +set.cpp: // enable 2d ellipse (versus 3d ellipsoid) when time integration +set.cpp: // options (fix nve/asphere, fix nh/asphere) are also implemented +set.cpp: // if (discflag) +set.cpp: // atom->rmass[i] = MY_PI*shape[0]*shape[1] * dvalue; +set.cpp: // else +set.cpp: atom->rmass[i] = 4.0*MY_PI/3.0 * shape[0]*shape[1]*shape[2] * dvalue; +set.cpp: // set dipole moment +set.cpp: // set magnetic moments +set.cpp: sp[i][0] = xvalue/sp_norm; +set.cpp: sp[i][1] = yvalue/sp_norm; +set.cpp: sp[i][2] = zvalue/sp_norm; +set.cpp: sp[i][2]*sp[i][2]); //Should be 1 for atomic spins +set.cpp: // set quaternion orientation of ellipsoid or tri or body particle +set.cpp: // set quaternion orientation of ellipsoid or tri or body particle +set.cpp: // enforce quat rotation vector in z dir for 2d systems +set.cpp: double theta2 = MY_PI2 * wvalue/180.0; +set.cpp: // set theta of line particle +set.cpp: // set angmom or omega of particle +set.cpp: // reset any or all of 3 image flags +set.cpp: // set value for custom integer or double vector +set.cpp: // clear up per-atom memory if allocated +set.cpp:/* ---------------------------------------------------------------------- +set.cpp:------------------------------------------------------------------------- */ +set.cpp: // set fraction of atom types to newtype +set.cpp: // set dipole moments to random orientations in 3d or 2d +set.cpp: // dipole length is determined by dipole type array +set.cpp: scale = dvalue/sqrt(msq); +set.cpp: scale = dvalue/sqrt(msq); +set.cpp: // set spin moments to random orientations in 3d or 2d +set.cpp: // spin length is fixed to unity +set.cpp: scale = 1.0/sqrt(sp_sq); +set.cpp: scale = 1.0/sqrt(sp_sq); +set.cpp: // set quaternions to random orientations in 3d and 2d +set.cpp: // set theta to random orientation in 2d +set.cpp:/* ---------------------------------------------------------------------- */ +set.cpp: // error check +set.cpp: // border swap to acquire ghost atom info +set.cpp: // enforce PBC before in case atoms are outside box +set.cpp: // init entire system since comm->exchange is done +set.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc +set.cpp: // select both owned and ghost atoms +set.cpp: // for BOND, each of 2 atoms must be in group +set.cpp: // for ANGLE, each of 3 atoms must be in group +set.cpp: // for DIHEDRAL, each of 4 atoms must be in group +set.cpp: // for IMPROPER, each of 4 atoms must be in group +set.cpp:/* ---------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- +special.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +special.cpp: http://lammps.sandia.gov, Sandia National Laboratories +special.cpp:------------------------------------------------------------------------- */ +special.cpp:// allocate space for static class variable +special.cpp:/* ---------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp: // initialize nspecial counters to 0 +special.cpp: // ----------------------------------------------------- +special.cpp: // compute nspecial[i][0] = # of 1-2 neighbors of atom i +special.cpp: // ----------------------------------------------------- +special.cpp: // bond partners stored by atom itself +special.cpp: // if newton_bond off, then done +special.cpp: // else only counted 1/2 of all bonds, so count other half +special.cpp: // nbufmax = largest buffer needed to hold info from any proc +special.cpp: // info for each atom = global tag of 2nd atom in each bond +special.cpp: // fill buffer with global tags of bond partners of my atoms +special.cpp: // cycle buffer around ring of procs back to self +special.cpp: // when receive buffer, scan tags for atoms I own +special.cpp: // when find one, increment nspecial count for that atom +special.cpp: // ---------------------------------------------------- +special.cpp: // create onetwo[i] = list of 1-2 neighbors for atom i +special.cpp: // ---------------------------------------------------- +special.cpp: // count = accumulating counter +special.cpp: // add bond partners stored by atom to onetwo list +special.cpp: // if newton_bond off, then done +special.cpp: // else only stored 1/2 of all bonds, so store other half +special.cpp: // nbufmax = largest buffer needed to hold info from any proc +special.cpp: // info for each atom = 2 global tags in each bond +special.cpp: // fill buffer with global tags of both atoms in bond +special.cpp: // cycle buffer around ring of procs back to self +special.cpp: // when receive buffer, scan 2nd-atom tags for atoms I own +special.cpp: // when find one, add 1st-atom tag to onetwo list for 2nd atom +special.cpp: // ----------------------------------------------------- +special.cpp: // done if special_bond weights for 1-3, 1-4 are set to 1.0 +special.cpp: // ----------------------------------------------------- +special.cpp: // ----------------------------------------------------- +special.cpp: // compute nspecial[i][1] = # of 1-3 neighbors of atom i +special.cpp: // ----------------------------------------------------- +special.cpp: // nbufmax = largest buffer needed to hold info from any proc +special.cpp: // info for each atom = 2 scalars + list of 1-2 neighbors +special.cpp: // fill buffer with: +special.cpp: // (1) = counter for 1-3 neighbors, initialized to 0 +special.cpp: // (2) = # of 1-2 neighbors +special.cpp: // (3:N) = list of 1-2 neighbors +special.cpp: // cycle buffer around ring of procs back to self +special.cpp: // when receive buffer, scan list of 1-2 neighbors for atoms I own +special.cpp: // when find one, increment 1-3 count by # of 1-2 neighbors of my atom, +special.cpp: // subtracting one since my list will contain original atom +special.cpp: // extract count from buffer that has cycled back to me +special.cpp: // nspecial[i][1] = # of 1-3 neighbors of atom i +special.cpp: // ---------------------------------------------------- +special.cpp: // create onethree[i] = list of 1-3 neighbors for atom i +special.cpp: // ---------------------------------------------------- +special.cpp: // nbufmax = largest buffer needed to hold info from any proc +special.cpp: // info for each atom = 4 scalars + list of 1-2 neighs + list of 1-3 neighs +special.cpp: // fill buffer with: +special.cpp: // (1) = global tag of original atom +special.cpp: // (2) = # of 1-2 neighbors +special.cpp: // (3) = # of 1-3 neighbors +special.cpp: // (4) = counter for 1-3 neighbors, initialized to 0 +special.cpp: // (5:N) = list of 1-2 neighbors +special.cpp: // (N+1:2N) space for list of 1-3 neighbors +special.cpp: // cycle buffer around ring of procs back to self +special.cpp: // when receive buffer, scan list of 1-2 neighbors for atoms I own +special.cpp: // when find one, add its neighbors to 1-3 list +special.cpp: // increment the count in buf(i+4) +special.cpp: // exclude the atom whose tag = original +special.cpp: // this process may include duplicates but they will be culled later +special.cpp: // fill onethree with buffer values that have been returned to me +special.cpp: // sanity check: accumulated buf[i+3] count should equal +special.cpp: // nspecial[i][1] for each atom +special.cpp: // done if special_bond weights for 1-4 are set to 1.0 +special.cpp: // ----------------------------------------------------- +special.cpp: // compute nspecial[i][2] = # of 1-4 neighbors of atom i +special.cpp: // ----------------------------------------------------- +special.cpp: // nbufmax = largest buffer needed to hold info from any proc +special.cpp: // info for each atom = 2 scalars + list of 1-3 neighbors +special.cpp: // fill buffer with: +special.cpp: // (1) = counter for 1-4 neighbors, initialized to 0 +special.cpp: // (2) = # of 1-3 neighbors +special.cpp: // (3:N) = list of 1-3 neighbors +special.cpp: // cycle buffer around ring of procs back to self +special.cpp: // when receive buffer, scan list of 1-3 neighbors for atoms I own +special.cpp: // when find one, increment 1-4 count by # of 1-2 neighbors of my atom +special.cpp: // may include duplicates and original atom but they will be culled later +special.cpp: // extract count from buffer that has cycled back to me +special.cpp: // nspecial[i][2] = # of 1-4 neighbors of atom i +special.cpp: // ---------------------------------------------------- +special.cpp: // create onefour[i] = list of 1-4 neighbors for atom i +special.cpp: // ---------------------------------------------------- +special.cpp: // nbufmax = largest buffer needed to hold info from any proc +special.cpp: // info for each atom = 3 scalars + list of 1-3 neighs + list of 1-4 neighs +special.cpp: // fill buffer with: +special.cpp: // (1) = # of 1-3 neighbors +special.cpp: // (2) = # of 1-4 neighbors +special.cpp: // (3) = counter for 1-4 neighbors, initialized to 0 +special.cpp: // (4:N) = list of 1-3 neighbors +special.cpp: // (N+1:2N) space for list of 1-4 neighbors +special.cpp: // cycle buffer around ring of procs back to self +special.cpp: // when receive buffer, scan list of 1-3 neighbors for atoms I own +special.cpp: // when find one, add its neighbors to 1-4 list +special.cpp: // incrementing the count in buf(i+4) +special.cpp: // this process may include duplicates but they will be culled later +special.cpp: // fill onefour with buffer values that have been returned to me +special.cpp: // sanity check: accumulated buf[i+2] count should equal +special.cpp: // nspecial[i][2] for each atom +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp: // clear map so it can be used as scratch space +special.cpp: // use map to cull duplicates +special.cpp: // exclude original atom explicitly +special.cpp: // adjust onetwo, onethree, onefour values to reflect removed duplicates +special.cpp: // must unset map for each atom +special.cpp: // re-create map +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp: // ---------------------------------------------------- +special.cpp: // compute culled maxspecial = max # of special neighs of any atom +special.cpp: // ---------------------------------------------------- +special.cpp: // clear map so it can be used as scratch space +special.cpp: // unique = # of unique nspecial neighbors of one atom +special.cpp: // cull duplicates using map to check for them +special.cpp: // exclude original atom explicitly +special.cpp: // must unset map for each atom +special.cpp: // compute global maxspecial, must be at least 1 +special.cpp: // add in extra factor from special_bonds command +special.cpp: // allocate correct special array with same nmax, new maxspecial +special.cpp: // previously allocated one must be destroyed +special.cpp: // must make AtomVec class update its ptr to special +special.cpp: // ---------------------------------------------------- +special.cpp: // fill special array with 1-2, 1-3, 1-4 neighs for each atom +special.cpp: // ---------------------------------------------------- +special.cpp: // again use map to cull duplicates +special.cpp: // exclude original atom explicitly +special.cpp: // adjust nspecial[i] values to reflect removed duplicates +special.cpp: // nspecial[i][1] and nspecial[i][2] now become cumulative counters +special.cpp: // re-create map +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp: // stats on old 1-3 neighbor counts +special.cpp: // if angles or dihedrals are defined, +special.cpp: // flag each 1-3 neigh if it appears in an angle or dihedral +special.cpp: // dflag = flag for 1-3 neighs of all owned atoms +special.cpp: // nbufmax = largest buffer needed to hold info from any proc +special.cpp: // info for each atom = list of 1,3 atoms in each angle stored by atom +special.cpp: // and list of 1,3 and 2,4 atoms in each dihedral stored by atom +special.cpp: // fill buffer with list of 1,3 atoms in each angle +special.cpp: // and with list of 1,3 and 2,4 atoms in each dihedral +special.cpp: // cycle buffer around ring of procs back to self +special.cpp: // when receive buffer, scan list of 1,3 atoms looking for atoms I own +special.cpp: // when find one, scan its 1-3 neigh list and mark I,J as in an angle +special.cpp: // delete 1-3 neighbors if they are not flagged in dflag +special.cpp: // clean up +special.cpp: // if no angles or dihedrals are defined, delete all 1-3 neighs +special.cpp: // stats on new 1-3 neighbor counts +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp: // stats on old 1-4 neighbor counts +special.cpp: // if dihedrals are defined, flag each 1-4 neigh if it appears in a dihedral +special.cpp: // dflag = flag for 1-4 neighs of all owned atoms +special.cpp: // nbufmax = largest buffer needed to hold info from any proc +special.cpp: // info for each atom = list of 1,4 atoms in each dihedral stored by atom +special.cpp: // fill buffer with list of 1,4 atoms in each dihedral +special.cpp: // cycle buffer around ring of procs back to self +special.cpp: // when receive buffer, scan list of 1,4 atoms looking for atoms I own +special.cpp: // when find one, scan its 1-4 neigh list and mark I,J as in a dihedral +special.cpp: // delete 1-4 neighbors if they are not flagged in dflag +special.cpp: // clean up +special.cpp: // if no dihedrals are defined, delete all 1-4 neighs +special.cpp: // stats on new 1-4 neighbor counts +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +special.cpp:/* ---------------------------------------------------------------------- +special.cpp:------------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +thermo.cpp: http://lammps.sandia.gov, Sandia National Laboratories +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp:// lmptype.h must be first b/c this file uses MAXBIGINT and includes mpi.h +thermo.cpp:// due to OpenMPI bug which sets INT64_MAX via its mpi.h +thermo.cpp:// before lmptype.h can set flags to insure it is done correctly +thermo.cpp:// customize a new keyword by adding to this list: +thermo.cpp:// step, elapsed, elaplong, dt, time, cpu, tpcpu, spcpu, cpuremain, +thermo.cpp:// part, timeremain +thermo.cpp:// atoms, temp, press, pe, ke, etotal, enthalpy +thermo.cpp:// evdwl, ecoul, epair, ebond, eangle, edihed, eimp, emol, elong, etail +thermo.cpp:// vol, density, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi, xy, xz, yz, +thermo.cpp:// xlat, ylat, zlat +thermo.cpp:// bonds, angles, dihedrals, impropers, +thermo.cpp:// pxx, pyy, pzz, pxy, pxz, pyz +thermo.cpp:// fmax, fnorm, nbuild, ndanger, +thermo.cpp:// cella, cellb, cellc, cellalpha, cellbeta, cellgamma +thermo.cpp:// customize a new thermo style by adding a DEFINE to this list +thermo.cpp:// also insure allocation of line string is correct in constructor +thermo.cpp:enum{IGNORE,WARN,ERROR}; // same as several files +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: // set thermo_modify defaults +thermo.cpp: // set style and corresponding lineflag +thermo.cpp: // custom style builds its own line of keywords, including wildcard expansion +thermo.cpp: // customize a new thermo style by adding to if statement +thermo.cpp: // allocate line string used for 3 tasks +thermo.cpp: // concat of custom style args +thermo.cpp: // one-time thermo output of header line +thermo.cpp: // each line of numeric thermo output +thermo.cpp: // 256 = extra for ONE or MULTI string or multi formatting +thermo.cpp: // 64 = max per-arg chars in header or numeric output +thermo.cpp: // expand args if any have wildcard character "*" +thermo.cpp: // if wildcard expansion occurred, free earg memory from exapnd_args() +thermo.cpp: // ptrs, flags, IDs for compute objects thermo may use or create +thermo.cpp: // count fields in line +thermo.cpp: // allocate per-field memory +thermo.cpp: // process line of keywords +thermo.cpp: // format strings +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: // format strings +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: // set normvalue to default setting unless user has specified it +thermo.cpp: // add Volume field if volume changes and not style = custom +thermo.cpp: // this check must come after domain init, so box_change is set +thermo.cpp: // set format string for each field +thermo.cpp: // include keyword if lineflag = MULTILINE +thermo.cpp: // add '/n' every 3 values if lineflag = MULTILINE +thermo.cpp: // add trailing '/n' to last value +thermo.cpp: // find current ptr for each Compute ID +thermo.cpp: // find current ptr for each Fix ID +thermo.cpp: // check that fix frequency is acceptable with thermo output frequency +thermo.cpp: // find current ptr for each Variable ID +thermo.cpp: // set ptrs to keyword-specific Compute objects +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: // check for lost atoms +thermo.cpp: // turn off normflag if natoms = 0 to avoid divide by 0 +thermo.cpp: // invoke Compute methods needed for thermo keywords +thermo.cpp: // if lineflag = MULTILINE, prepend step/cpu header line +thermo.cpp: // add each thermo value to line with its specific format +thermo.cpp: // print line to screen and logfile +thermo.cpp: // set to 1, so that subsequent invocations of CPU time will be non-zero +thermo.cpp: // e.g. via variables in print command +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp: // ntotal = current # of atoms +thermo.cpp: // if not checking or already warned, just return +thermo.cpp: // error message +thermo.cpp: // warning message +thermo.cpp: // reset total atom count +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp: // reset id_temp of pressure to new temperature ID +thermo.cpp: // either pressure currently being used by thermo or "thermo_press" +thermo.cpp: } else if (strcmp(arg[iarg],"lost/bond") == 0) { +thermo.cpp: // replace "d" in format_int_user with bigint format specifier +thermo.cpp: // use of &str[1] removes leading '%' from BIGINT_FORMAT string +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp: // n = specified fields + Volume field (added at run time) +thermo.cpp: // factor of 3 is max number of computes a single field can add +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp: // customize a new keyword by adding to if statement +thermo.cpp: addfield("T/CPU",&Thermo::compute_tpcpu,FLOAT); +thermo.cpp: addfield("S/CPU",&Thermo::compute_spcpu,FLOAT); +thermo.cpp: // compute value = c_ID, fix value = f_ID, variable value = v_ID +thermo.cpp: // count trailing [] and store int arguments +thermo.cpp: // parse zero or one or two trailing brackets from ID +thermo.cpp: // argindex1,argindex2 = int inside each bracket pair, 0 if no bracket +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp: // turn off normflag if natoms = 0 to avoid divide by 0 +thermo.cpp: // normflag must be set for lo-level thermo routines that may be invoked +thermo.cpp: // invoke a lo-level thermo routine to compute the variable value +thermo.cpp: // if keyword requires a compute, error if thermo doesn't use the compute +thermo.cpp: // if inbetween runs and needed compute is not current, error +thermo.cpp: // if in middle of run and needed compute is not current, invoke it +thermo.cpp: // for keywords that use energy (evdwl, ebond, etc): +thermo.cpp: // check if energy was tallied on this timestep and set pe->invoked_flag +thermo.cpp: // this will trigger next timestep for energy tallying via addstep() +thermo.cpp: // this means keywords that use pe (pe, etotal, enthalpy) +thermo.cpp: // need to always invoke it even if invoked_flag is set, +thermo.cpp: // because evdwl/etc may have set invoked_flag w/out +thermo.cpp: // actually invoking pe->compute_scalar() +thermo.cpp: "thermo to use/init temp"); +thermo.cpp: "thermo to use/init press"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "thermo to use/init temp"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "thermo to use/init temp"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "thermo to use/init temp"); +thermo.cpp: "thermo to use/init press"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); +thermo.cpp: "thermo to use/init press"); +thermo.cpp: "thermo to use/init press"); +thermo.cpp: "thermo to use/init press"); +thermo.cpp: "thermo to use/init press"); +thermo.cpp: "thermo to use/init press"); +thermo.cpp: "thermo to use/init press"); +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp: compute/fix are normalized by atoms if returning extensive value +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: // check for out-of-range access if vector/array is variable length +thermo.cpp: if (normflag && compute->extscalar) dvalue /= natoms; +thermo.cpp: else if (compute->extvector == 1) dvalue /= natoms; +thermo.cpp: else if (compute->extlist[argindex1[ifield]-1]) dvalue /= natoms; +thermo.cpp: if (normflag && compute->extarray) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag && fix->extscalar) dvalue /= natoms; +thermo.cpp: else if (fix->extvector == 1) dvalue /= natoms; +thermo.cpp: else if (fix->extlist[argindex1[ifield]-1]) dvalue /= natoms; +thermo.cpp: if (normflag && fix->extarray) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- +thermo.cpp: set ivalue/dvalue/bivalue if value is int/double/bigint +thermo.cpp:------------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (time_diff > 0.0 && cpu_diff > 0.0) dvalue = time_diff/cpu_diff; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (cpu_diff > 0.0) dvalue = step_diff/cpu_diff; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: (update->laststep - update->ntimestep) / +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) ke /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) vtmp /= natoms; +thermo.cpp: dvalue = etmp + ptmp*vtmp/(force->nktv2p); +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: dvalue += force->pair->etail / volume; +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: dvalue += force->pair->etail / volume; +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: dvalue = force->pair->etail / volume; +thermo.cpp: if (normflag) dvalue /= natoms; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: dvalue = force->mv2d * mass/dvalue; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: // Cos(alpha) = (xy.xz + ly.yz)/(b.c) +thermo.cpp: double cosalpha = (h[5]*h[4]+h[1]*h[3])/ +thermo.cpp: dvalue = acos(cosalpha)*180.0/MY_PI; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: // Cos(beta) = xz/c +thermo.cpp: double cosbeta = h[4]/sqrt(h[2]*h[2]+h[3]*h[3]+h[4]*h[4]); +thermo.cpp: dvalue = acos(cosbeta)*180.0/MY_PI; +thermo.cpp:/* ---------------------------------------------------------------------- */ +thermo.cpp: // Cos(gamma) = xy/b +thermo.cpp: double cosgamma = h[5]/sqrt(h[1]*h[1]+h[5]*h[5]); +thermo.cpp: dvalue = acos(cosgamma)*180.0/MY_PI; +timer.cpp:/* ---------------------------------------------------------------------- +timer.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +timer.cpp: http://lammps.sandia.gov, Sandia National Laboratories +timer.cpp:------------------------------------------------------------------------- */ +timer.cpp:#include +timer.cpp:#include +timer.cpp:// convert a timespec ([[HH:]MM:]SS) to seconds +timer.cpp:// the strings "off" and "unlimited" result in -1; +timer.cpp: // first handle allowed textual inputs +timer.cpp:// Return the CPU time for the current process in seconds very +timer.cpp:// much in the same way as MPI_Wtime() returns the wall time. +timer.cpp: // from MSD docs. +timer.cpp:#else /* ! _WIN32 */ +timer.cpp:#endif /* ! _WIN32 */ +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp: // format timeout setting +timer.cpp: // time since init_timeout() +timer.cpp: // remaining timeout in seconds +timer.cpp: // remaining 1/100ths of seconds +timer.cpp: // breaking s down into second/minutes/hours +timer.cpp: s = (s - seconds) / 60; +timer.cpp: const int hours = (s - minutes) / 60; +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp: // broadcast time to insure all ranks act the same. +timer.cpp:/* ---------------------------------------------------------------------- */ +timer.cpp:/* ---------------------------------------------------------------------- +timer.cpp:------------------------------------------------------------------------- */ +timer.cpp: // format timeout setting +universe.cpp:/* ---------------------------------------------------------------------- +universe.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +universe.cpp: http://lammps.sandia.gov, Sandia National Laboratories +universe.cpp:------------------------------------------------------------------------- */ +universe.cpp:/* ---------------------------------------------------------------------- +universe.cpp:------------------------------------------------------------------------- */ +universe.cpp:/* ---------------------------------------------------------------------- */ +universe.cpp:/* ---------------------------------------------------------------------- +universe.cpp:------------------------------------------------------------------------- */ +universe.cpp: if (i < (n-1)*nprocs/n) uni2orig[i] = i/(n-1) * n + (i % (n-1)); +universe.cpp: else uni2orig[i] = (i - (n-1)*nprocs/n) * n + n-1; +universe.cpp: // skip header = blank and comment lines +universe.cpp: // read nprocs lines +universe.cpp: // uni2orig = inverse mapping +universe.cpp: // bcast uni2org from proc 0 to all other universe procs +universe.cpp: // create new uworld communicator +universe.cpp:/* ---------------------------------------------------------------------- +universe.cpp:------------------------------------------------------------------------- */ +universe.cpp: // check for valid partition argument +universe.cpp: // str may not be empty and may only consist of digits or 'x' +universe.cpp: // 'x' may not be the first or last character +universe.cpp: // require minimum of 1 partition with 1 processor +universe.cpp:/* ---------------------------------------------------------------------- +universe.cpp:------------------------------------------------------------------------- */ +universe.cpp:// helper function to convert the LAMMPS date string to a version id +universe.cpp:// that can be used for both string and numerical comparisons +universe.cpp:// where newer versions are larger than older ones. +update.cpp:/* ---------------------------------------------------------------------- +update.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +update.cpp: http://lammps.sandia.gov, Sandia National Laboratories +update.cpp:------------------------------------------------------------------------- */ +update.cpp:/* ---------------------------------------------------------------------- */ +update.cpp:/* ---------------------------------------------------------------------- */ +update.cpp:/* ---------------------------------------------------------------------- */ +update.cpp: // init the appropriate integrate and/or minimize class +update.cpp: // if neither (e.g. from write_restart) then just return +update.cpp: // only set first_update if a run or minimize is being performed +update.cpp:/* ---------------------------------------------------------------------- */ +update.cpp: // physical constants from: +update.cpp: // http://physics.nist.gov/cuu/Constants/Table/allascii.txt +update.cpp: // using thermochemical calorie = 4.184 J +update.cpp: force->e_mass = 0.0; // not yet set +update.cpp: force->ftm2v = 1.0 / 48.88821291 / 48.88821291; +update.cpp: force->mv2d = 1.0 / 0.602214129; +update.cpp: force->e_mass = 1.0/1836.1527556560675; +update.cpp: force->ftm2v = 1.0 / 1.0364269e-4; +update.cpp: force->mv2d = 1.0 / 0.602214129; +update.cpp: force->e_mass = 0.0; // not yet set +update.cpp: force->e_mass = 0.0; // not yet set +update.cpp: force->e_mass = 0.0; // not yet set +update.cpp: force->e_mass = 0.0; // not yet set +update.cpp: force->e_mass = 0.0; // not yet set +update.cpp: force->e_mass = 0.0; // not yet set +update.cpp:/* ---------------------------------------------------------------------- */ +update.cpp: if (sflag == 1) sprintf(estyle,"%s/%s",arg[0],lmp->suffix); +update.cpp: else sprintf(estyle,"%s/%s",arg[0],lmp->suffix2); +update.cpp:/* ---------------------------------------------------------------------- +update.cpp:------------------------------------------------------------------------- */ +update.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); +update.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); +update.cpp:/* ---------------------------------------------------------------------- +update.cpp:------------------------------------------------------------------------- */ +update.cpp:/* ---------------------------------------------------------------------- */ +update.cpp:/* ---------------------------------------------------------------------- +update.cpp:------------------------------------------------------------------------- */ +update.cpp:/* ---------------------------------------------------------------------- +update.cpp:------------------------------------------------------------------------- */ +update.cpp:/* ---------------------------------------------------------------------- +update.cpp:------------------------------------------------------------------------- */ +update.cpp: // set atimestep to new timestep +update.cpp: // so future update_time() calls will be correct +update.cpp: // trigger reset of timestep for output +update.cpp: // do not allow any timestep-dependent fixes to be already defined +update.cpp: // reset eflag/vflag global so no commands will think eng/virial are current +update.cpp: // reset invoked flags of computes, +update.cpp: // so no commands will think they are current between runs +update.cpp: // clear timestep list of computes that store future invocation times +update.cpp: // Neighbor Bin/Stencil/Pair classes store timestamps that need to be cleared +update.cpp: // NOTE: 7Jun12, adding rerun command, don't think this is required +update.cpp: //for (int i = 0; i < domain->nregion; i++) +update.cpp: // if (domain->regions[i]->dynamic_check()) +update.cpp: // error->all(FLERR,"Cannot reset timestep with a dynamic region defined"); +update.cpp:/* ---------------------------------------------------------------------- +update.cpp:------------------------------------------------------------------------- */ +update.cpp:/* ---------------------------------------------------------------------- +update.cpp: memory usage of update and integrate/minimize +update.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +variable.cpp: http://lammps.sandia.gov, Sandia National Laboratories +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:#define VALUELENGTH 64 // also in python.cpp +variable.cpp:// customize by adding a function +variable.cpp:// if add before XOR: +variable.cpp:// also set precedence level in constructor and precedence length in *.h +variable.cpp:// customize by adding a special function +variable.cpp:/* ---------------------------------------------------------------------- */ +variable.cpp: // customize by assigning a precedence level +variable.cpp:/* ---------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // DELETE +variable.cpp: // doesn't matter if variable no longer exists +variable.cpp: // INDEX +variable.cpp: // num = listed args, which = 1st value, data = copied args +variable.cpp: // LOOP +variable.cpp: // 1 arg + pad: num = N, which = 1st value, data = single string +variable.cpp: // 2 args + pad: num = N2, which = N1, data = single string +variable.cpp: // WORLD +variable.cpp: // num = listed args, which = partition this proc is in, data = copied args +variable.cpp: // error check that num = # of worlds in universe +variable.cpp: // UNIVERSE and ULOOP +variable.cpp: // for UNIVERSE: num = listed args, data = copied args +variable.cpp: // for ULOOP: num = N, data = single string +variable.cpp: // which = partition this proc is in +variable.cpp: // universe proc 0 creates lock file +variable.cpp: // error check that all other universe/uloop variables are same length +variable.cpp: error->all(FLERR,"Universe/uloop variable count < # of partitions"); +variable.cpp: "All universe/uloop variables must have same # of values"); +variable.cpp: // STRING +variable.cpp: // replace pre-existing var if also style STRING (allows it to be reset) +variable.cpp: // num = 1, which = 1st value +variable.cpp: // data = 1 value, string to eval +variable.cpp: // GETENV +variable.cpp: // remove pre-existing var if also style GETENV (allows it to be reset) +variable.cpp: // num = 1, which = 1st value +variable.cpp: // data = 1 value, string to eval +variable.cpp: // SCALARFILE for strings or numbers +variable.cpp: // which = 1st value +variable.cpp: // data = 1 value, string to eval +variable.cpp: // ATOMFILE for numbers +variable.cpp: // which = 1st value +variable.cpp: // data = NULL +variable.cpp: // FORMAT +variable.cpp: // num = 3, which = 1st value +variable.cpp: // data = 3 values +variable.cpp: // 1st is name of variable to eval, 2nd is format string, +variable.cpp: // 3rd is filled on retrieval +variable.cpp: // EQUAL +variable.cpp: // replace pre-existing var if also style EQUAL (allows it to be reset) +variable.cpp: // num = 2, which = 1st value +variable.cpp: // data = 2 values, 1st is string to eval, 2nd is filled on retrieval +variable.cpp: // ATOM +variable.cpp: // replace pre-existing var if also style ATOM (allows it to be reset) +variable.cpp: // num = 1, which = 1st value +variable.cpp: // data = 1 value, string to eval +variable.cpp: // VECTOR +variable.cpp: // replace pre-existing var if also style VECTOR (allows it to be reset) +variable.cpp: // num = 1, which = 1st value +variable.cpp: // data = 1 value, string to eval +variable.cpp: // PYTHON +variable.cpp: // replace pre-existing var if also style PYTHON (allows it to be reset) +variable.cpp: // num = 2, which = 1st value +variable.cpp: // data = 2 values, 1st is Python func to invoke, 2nd is filled by invoke +variable.cpp: // INTERNAL +variable.cpp: // replace pre-existing var if also style INTERNAL (allows it to be reset) +variable.cpp: // num = 1, for string representation of dvalue, set by retrieve() +variable.cpp: // dvalue = numeric initialization from 2nd arg, reset by internal_set() +variable.cpp: // set name of variable, if not replacing one flagged with replaceflag +variable.cpp: // name must be all alphanumeric chars or underscores +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // check that variables exist and are all the same style +variable.cpp: // exception: UNIVERSE and ULOOP variables can be mixed in same next command +variable.cpp: // invalid styles: STRING, EQUAL, WORLD, ATOM, VECTOR, GETENV, +variable.cpp: // FORMAT, PYTHON, INTERNAL +variable.cpp: // if istyle = UNIVERSE or ULOOP, insure all such variables are incremented +variable.cpp: // increment all variables in list +variable.cpp: // if any variable is exhausted, set flag = 1 and remove var to allow re-use +variable.cpp: // wait until lock file can be created and owned by proc 0 of this world +variable.cpp: // rename() is not atomic in practice, but no known simple fix +variable.cpp: // means multiple procs can read/write file at the same time (bad!) +variable.cpp: // random delays help +variable.cpp: // delay for random fraction of 1 second before first rename() call +variable.cpp: // delay for random fraction of 1 second before subsequent tries +variable.cpp: // when successful, read next available index and Bcast it within my world +variable.cpp: //printf("READ %d %d\n",universe->me,nextindex); +variable.cpp: //printf("WRITE %d %d\n",universe->me,nextindex+1); +variable.cpp: // set all variables in list to nextindex +variable.cpp: // must increment all UNIVERSE and ULOOP variables here +variable.cpp: // error check above tested for this +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // if Python func returns a string longer than VALUELENGTH +variable.cpp: // then the Python class stores the result, query it via long_string() +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // (re)allocate space for results if necessary +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp: math operation = (),-x,x+y,x-y,x*y,x/y,x^y, +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // whitespace: just skip +variable.cpp: // ---------------- +variable.cpp: // parentheses: recursively evaluate contents of parens +variable.cpp: // ---------------- +variable.cpp: // evaluate contents and push on stack +variable.cpp: // ---------------- +variable.cpp: // number: push value onto stack +variable.cpp: // ---------------- +variable.cpp: // istop = end of number, including scientific notation +variable.cpp: // ---------------- +variable.cpp: // letter: c_ID, c_ID[], c_ID[][], f_ID, f_ID[], f_ID[][], +variable.cpp: // v_name, v_name[], exp(), xcm(,), x, x[], PI, vol +variable.cpp: // ---------------- +variable.cpp: // istop = end of word +variable.cpp: // word = all alphanumeric or underscore +variable.cpp: // ---------------- +variable.cpp: // compute +variable.cpp: // ---------------- +variable.cpp: // uppercase used to force access of +variable.cpp: // global vector vs global scalar, and global array vs global vector +variable.cpp: // parse zero or one or two trailing brackets +variable.cpp: // point i beyond last bracket +variable.cpp: // nbracket = # of bracket pairs +variable.cpp: // index1,index2 = int inside each bracket pair, possibly an atom ID +variable.cpp: // c_ID = scalar from global scalar, must be lowercase +variable.cpp: // c_ID[i] = scalar from global vector, must be lowercase +variable.cpp: // c_ID[i][j] = scalar from global array, must be lowercase +variable.cpp: // c_ID = vector from global vector, lowercase or uppercase +variable.cpp: // c_ID[i] = vector from global array, lowercase or uppercase +variable.cpp: // c_ID[i] = scalar from per-atom vector +variable.cpp: // c_ID[i][j] = scalar from per-atom array +variable.cpp: // c_ID = vector from per-atom vector +variable.cpp: // c_ID[i] = vector from per-atom array +variable.cpp: // ---------------- +variable.cpp: // fix +variable.cpp: // ---------------- +variable.cpp: // uppercase used to force access of +variable.cpp: // global vector vs global scalar, and global array vs global vector +variable.cpp: // parse zero or one or two trailing brackets +variable.cpp: // point i beyond last bracket +variable.cpp: // nbracket = # of bracket pairs +variable.cpp: // index1,index2 = int inside each bracket pair, possibly an atom ID +variable.cpp: // f_ID = scalar from global scalar, must be lowercase +variable.cpp: // f_ID[i] = scalar from global vector, must be lowercase +variable.cpp: // f_ID[i][j] = scalar from global array, must be lowercase +variable.cpp: // f_ID = vector from global vector, lowercase or uppercase +variable.cpp: // f_ID[i] = vector from global array, lowercase or uppercase +variable.cpp: // f_ID[i] = scalar from per-atom vector +variable.cpp: // f_ID[i][j] = scalar from per-atom array +variable.cpp: // f_ID = vector from per-atom vector +variable.cpp: // f_ID[i] = vector from per-atom array +variable.cpp: // ---------------- +variable.cpp: // variable +variable.cpp: // ---------------- +variable.cpp: // parse zero or one trailing brackets +variable.cpp: // point i beyond last bracket +variable.cpp: // nbracket = # of bracket pairs +variable.cpp: // index = int inside bracket, possibly an atom ID +variable.cpp: // v_name = scalar from internal-style variable +variable.cpp: // access value directly +variable.cpp: // v_name = scalar from non atom/atomfile & non vector-style variable +variable.cpp: // access value via retrieve() +variable.cpp: // v_name = per-atom vector from atom-style variable +variable.cpp: // evaluate the atom-style variable as newtree +variable.cpp: // v_name = per-atom vector from atomfile-style variable +variable.cpp: // v_name = vector from vector-style variable +variable.cpp: // evaluate the vector-style variable, put result in newtree +variable.cpp: // v_name[N] = scalar from atom-style variable +variable.cpp: // compute the per-atom variable in result +variable.cpp: // use peratom2global to extract single value from result +variable.cpp: // v_name[N] = scalar from atomfile-style variable +variable.cpp: // v_name[N] = scalar from vector-style variable +variable.cpp: // compute the vector-style variable, extract single value +variable.cpp: int m = index; // convert from tagint to int +variable.cpp: // ---------------- +variable.cpp: // math/group/special function or atom value/vector or +variable.cpp: // constant or thermo keyword +variable.cpp: // ---------------- +variable.cpp: // ---------------- +variable.cpp: // math or group or special function +variable.cpp: // ---------------- +variable.cpp: else error->all(FLERR,"Invalid math/group/special function " +variable.cpp: // ---------------- +variable.cpp: // atom value +variable.cpp: // ---------------- +variable.cpp: // ---------------- +variable.cpp: // atom vector +variable.cpp: // ---------------- +variable.cpp: // ---------------- +variable.cpp: // constant +variable.cpp: // ---------------- +variable.cpp: // ---------------- +variable.cpp: // thermo keyword +variable.cpp: // ---------------- +variable.cpp: // ---------------- +variable.cpp: // math operator, including end-of-string +variable.cpp: // ---------------- +variable.cpp: } else if (strchr("+-*/^<>=!&|%\0",onechar)) { +variable.cpp: else if (onechar == '/') op = DIVIDE; +variable.cpp: // evaluate stack as deep as possible while respecting precedence +variable.cpp: // before pushing current op onto stack +variable.cpp: argstack[nargstack++] = value1 / value2; +variable.cpp: // if end-of-string, break out of entire formula evaluation loop +variable.cpp: // push current operation onto stack +variable.cpp: // for atom-style variable, return remaining tree +variable.cpp: // for equal-style variable, return remaining arg +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:---------------------------------------------------------------------- */ +variable.cpp: tree->value = arg1 / arg2; +variable.cpp: error->one(FLERR,"Log of zero/negative value in variable formula"); +variable.cpp: error->one(FLERR,"Log of zero/negative value in variable formula"); +variable.cpp: // random() or normal() do not become a single collapsed value +variable.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +variable.cpp: int lower = update->ntimestep/ivalue1 * ivalue1; +variable.cpp: int multiple = update->ntimestep/lower; +variable.cpp: double delta = ivalue1*(ivalue3-1.0)/ivalue2; +variable.cpp: tree->value = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; +variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; +variable.cpp: istep = ivalue4 + (offset/ivalue6)*ivalue6 + ivalue6; +variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; +variable.cpp: double omega = 2.0*MY_PI/arg3; +variable.cpp: double omega = 2.0*MY_PI/arg3; +variable.cpp: // mask functions do not become a single collapsed value +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:---------------------------------------------------------------------- */ +variable.cpp: return eval_tree(tree->first,i) / denom; +variable.cpp: error->one(FLERR,"Log of zero/negative value in variable formula"); +variable.cpp: error->one(FLERR,"Log of zero/negative value in variable formula"); +variable.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +variable.cpp: int lower = update->ntimestep/ivalue1 * ivalue1; +variable.cpp: int multiple = update->ntimestep/lower; +variable.cpp: double delta = ivalue1*(ivalue3-1.0)/ivalue2; +variable.cpp: arg = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; +variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; +variable.cpp: istep = ivalue4 + (offset/ivalue6)*ivalue6 + ivalue6; +variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; +variable.cpp: double omega = 2.0*MY_PI/arg3; +variable.cpp: double omega = 2.0*MY_PI/arg3; +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // istop = matching ')' at same level, allowing for nested parens +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // evaluate index as floating point variable or as tagint via ATOTAGINT() +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // word not a match to any math function +variable.cpp: // parse contents for comma-separated args +variable.cpp: // narg = number of args, args = strings between commas +variable.cpp: // individual math functions +variable.cpp: // customize by adding a function +variable.cpp: error->all(FLERR,"Log of zero/negative value in variable formula"); +variable.cpp: error->all(FLERR,"Log of zero/negative value in variable formula"); +variable.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; +variable.cpp: int lower = update->ntimestep/ivalue1 * ivalue1; +variable.cpp: int multiple = update->ntimestep/lower; +variable.cpp: double delta = ivalue1*(ivalue3-1.0)/ivalue2; +variable.cpp: value = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; +variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; +variable.cpp: istep = ivalue4 + (offset/ivalue6)*ivalue6 + ivalue6; +variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; +variable.cpp: double omega = 2.0*MY_PI/values[0]; +variable.cpp: double omega = 2.0*MY_PI/values[0]; +variable.cpp: // delete stored args +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // word not a match to any group function +variable.cpp: // parse contents for comma-separated args +variable.cpp: // narg = number of args, args = strings between commas +variable.cpp: // group to operate on +variable.cpp: // match word to group function +variable.cpp: // delete stored args +variable.cpp: // save value in tree or on argstack +variable.cpp:/* ---------------------------------------------------------------------- */ +variable.cpp: // init region in case sub-regions have been deleted +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // word not a match to any special function +variable.cpp: // parse contents for comma-separated args +variable.cpp: // narg = number of args, args = strings between commas +variable.cpp: // special functions that operate on global vectors +variable.cpp: // argument is compute +variable.cpp: // argument is fix +variable.cpp: // argument is vector-style variable +variable.cpp: if (nvec > 1) xvalue = (double) i / (nvec-1); +variable.cpp: if (nvec > 1) xvalue = (double) i / (nvec-1); +variable.cpp: if (nvec > 1) xvalue = (double) i / (nvec-1); +variable.cpp: if (method == AVE) value /= nvec; +variable.cpp: if (denominator != 0.0) value = numerator/denominator / nvec; +variable.cpp: // save value in tree or on argstack +variable.cpp: // mask special functions +variable.cpp: // special function for file-style or atomfile-style variables +variable.cpp: // SCALARFILE has single current value, read next one +variable.cpp: // save value in tree or on argstack +variable.cpp: // ATOMFILE has per-atom values, save values in tree +variable.cpp: // copy current per-atom values into result so can read next ones +variable.cpp: // set selfalloc = 1 so result will be deleted by free_tree() after eval +variable.cpp: // save value in tree or on argstack +variable.cpp: // save value in tree or on argstack +variable.cpp: // save value in tree or on argstack +variable.cpp: // delete stored args +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // error check for ID larger than any atom +variable.cpp: // int_between_brackets() already checked for ID <= 0 +variable.cpp: // if ID does not exist, index will be -1 for all procs, +variable.cpp: // and mine will be set to 0.0 +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: int flag; // 0 for numeric value, 1 for string +variable.cpp: double value; // stored numeric value +variable.cpp: char *str; // stored string +variable.cpp: // whitespace: just skip +variable.cpp: // ---------------- +variable.cpp: // parentheses: recursively evaluate contents of parens +variable.cpp: // ---------------- +variable.cpp: // evaluate contents and push on stack +variable.cpp: // ---------------- +variable.cpp: // number: push value onto stack +variable.cpp: // ---------------- +variable.cpp: // set I to end of number, including scientific notation +variable.cpp: // ---------------- +variable.cpp: // string: push string onto stack +variable.cpp: // ---------------- +variable.cpp: // set I to end of string +variable.cpp: // ---------------- +variable.cpp: // Boolean operator, including end-of-string +variable.cpp: // ---------------- +variable.cpp: // evaluate stack as deep as possible while respecting precedence +variable.cpp: // before pushing current op onto stack +variable.cpp: // if end-of-string, break out of entire formula evaluation loop +variable.cpp: // push current operation onto stack +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // if atomfile-style variable, must store per-atom values read from file +variable.cpp: // allocate a new fix STORE, so they persist +variable.cpp: // id = variable-ID + VARIABLE_STORE, fix group = all +variable.cpp:/* ---------------------------------------------------------------------- */ +variable.cpp: // check modify in case all fixes have already been deleted +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // read one string from file +variable.cpp: if (n == 0) break; // end of file +variable.cpp: str[n-1] = '\0'; // strip newline +variable.cpp: if ((ptr = strchr(str,'#'))) *ptr = '\0'; // strip comment +variable.cpp: if (strtok(str," \t\n\r\f") == NULL) continue; // skip if blank +variable.cpp:/* ---------------------------------------------------------------------- +variable.cpp:------------------------------------------------------------------------- */ +variable.cpp: // set all per-atom values to 0.0 +variable.cpp: // values that appear in file will overwrite this +variable.cpp: // read one string from file, convert to Nlines +variable.cpp: if (n == 0) break; // end of file +variable.cpp: str[n-1] = '\0'; // strip newline +variable.cpp: if ((ptr = strchr(str,'#'))) *ptr = '\0'; // strip comment +variable.cpp: if (strtok(str," \t\n\r\f") == NULL) continue; // skip if blank +velocity.cpp:/* ---------------------------------------------------------------------- +velocity.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +velocity.cpp: http://lammps.sandia.gov, Sandia National Laboratories +velocity.cpp:------------------------------------------------------------------------- */ +velocity.cpp:/* ---------------------------------------------------------------------- */ +velocity.cpp:/* ---------------------------------------------------------------------- */ +velocity.cpp: // atom masses must all be set +velocity.cpp: // identify group +velocity.cpp: // identify style +velocity.cpp: // set defaults +velocity.cpp: // read options from end of input line +velocity.cpp: // change defaults as options specify +velocity.cpp: // special cases where full init and border communication must be done first +velocity.cpp: // for ZERO if fix rigid/small is used +velocity.cpp: // for CREATE/SET if compute temp/cs is used +velocity.cpp: // b/c methods invoked in the compute/fix perform forward/reverse comm +velocity.cpp: strcmp(modify->fix[rfix]->style,"rigid/small") == 0) initcomm = 1; +velocity.cpp: strcmp(temperature->style,"temp/cs") == 0) initcomm = 1; +velocity.cpp: // initialize velocities based on style +velocity.cpp: // create() invoked differently, so can be called externally +velocity.cpp:/* ---------------------------------------------------------------------- +velocity.cpp:------------------------------------------------------------------------- */ +velocity.cpp:/* ---------------------------------------------------------------------- */ +velocity.cpp: // if sum_flag set, store a copy of current velocities +velocity.cpp: // if temperature = NULL or bias_flag set, +velocity.cpp: // create a new ComputeTemp with the velocity group +velocity.cpp: // initialize temperature computation(s) +velocity.cpp: // warn if groups don't match +velocity.cpp: // if bias_flag set, remove bias velocity from all atoms +velocity.cpp: // for some temperature computes, must first calculate temp to do that +velocity.cpp: // create new velocities, in uniform or gaussian distribution +velocity.cpp: // loop option determines looping style, ALL is default +velocity.cpp: // ALL = loop over all natoms, only set those I own via atom->map +velocity.cpp: // cannot do this if atom IDs do not span 1-Natoms (some were deleted) +velocity.cpp: // will produce same V, independent of P, if atoms were read-in +velocity.cpp: // will NOT produce same V, independent of P, if used create_atoms +velocity.cpp: // LOCAL = only loop over my atoms, adjust RNG to be proc-specific +velocity.cpp: // will never produce same V, independent of P +velocity.cpp: // GEOM = only loop over my atoms +velocity.cpp: // choose RNG for each atom based on its xyz coord (geometry) +velocity.cpp: // via random->reset() +velocity.cpp: // will always produce same V, independent of P +velocity.cpp: // adjust by factor for atom mass +velocity.cpp: // set xdim,ydim,zdim = 1/0 for whether to create velocity in those dims +velocity.cpp: // zdim = 0 for 2d +velocity.cpp: // any dims can be 0 if bias temperature compute turns them off +velocity.cpp: // currently only temp/partial does +velocity.cpp: // create an atom map if one doesn't exist already +velocity.cpp: // error check +velocity.cpp: // loop over all atoms in system +velocity.cpp: // generate RNGs for all atoms, only assign to ones I own +velocity.cpp: // use either per-type mass or per-atom rmass +velocity.cpp: if (rmass) factor = 1.0/sqrt(rmass[m]); +velocity.cpp: else factor = 1.0/sqrt(mass[type[m]]); +velocity.cpp: // delete temporary atom map +velocity.cpp: if (rmass) factor = 1.0/sqrt(rmass[i]); +velocity.cpp: else factor = 1.0/sqrt(mass[type[i]]); +velocity.cpp: if (rmass) factor = 1.0/sqrt(rmass[i]); +velocity.cpp: else factor = 1.0/sqrt(mass[type[i]]); +velocity.cpp: // apply momentum and rotation zeroing +velocity.cpp: // scale temp to desired value +velocity.cpp: // if bias flag is set, bias velocities have already been removed: +velocity.cpp: // no-bias compute calculates temp only for new thermal velocities +velocity.cpp: // if bias_flag set, restore bias velocity to all atoms +velocity.cpp: // reapply needed for temperature computes where velocity +velocity.cpp: // creation has messed up the bias that was already removed: +velocity.cpp: // compute temp/partial needs to reset v dims to 0.0 +velocity.cpp: // compute temp/cs needs to reset v to COM velocity of each C/S pair +velocity.cpp: // if sum_flag set, add back in previous velocities +velocity.cpp: // free local memory +velocity.cpp: // if temperature compute was created, delete it +velocity.cpp:/* ---------------------------------------------------------------------- */ +velocity.cpp: // parse 3 args +velocity.cpp: // set and apply scale factors +velocity.cpp: // check variables +velocity.cpp: // error check for 2d models +velocity.cpp: // allocate vfield array if necessary +velocity.cpp: // set velocities via constants +velocity.cpp: // set velocities via variables +velocity.cpp: // clean up +velocity.cpp:/* ---------------------------------------------------------------------- +velocity.cpp:------------------------------------------------------------------------- */ +velocity.cpp: // if temperature = NULL, create a new ComputeTemp with the velocity group +velocity.cpp: // initialize temperature computation +velocity.cpp: // warn if groups don't match +velocity.cpp: // scale temp to desired value +velocity.cpp: // if bias flag is set: +velocity.cpp: // temperature calculation will be done accounting for bias +velocity.cpp: // remove/restore bias velocities before/after rescale +velocity.cpp: // if temperature was created, delete it +velocity.cpp:/* ---------------------------------------------------------------------- +velocity.cpp:------------------------------------------------------------------------- */ +velocity.cpp: // set scale factors +velocity.cpp: // parse args +velocity.cpp: // vramp = ramped velocity component for v_dim +velocity.cpp: // add or set based on sum_flag +velocity.cpp: fraction = (x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); +velocity.cpp:/* ---------------------------------------------------------------------- +velocity.cpp:------------------------------------------------------------------------- */ +velocity.cpp: else if (strcmp(modify->fix[rfix]->style,"rigid/small") == 0) { +velocity.cpp: else if (strcmp(modify->fix[rfix]->style,"rigid/small") == 0) { +velocity.cpp:/* ---------------------------------------------------------------------- +velocity.cpp:------------------------------------------------------------------------- */ +velocity.cpp: double factor = sqrt(t_new/t_old); +velocity.cpp:/* ---------------------------------------------------------------------- +velocity.cpp:------------------------------------------------------------------------- */ +velocity.cpp: // cannot have no atoms in group +velocity.cpp: // compute velocity of center-of-mass of group +velocity.cpp: // adjust velocities by vcm to zero linear momentum +velocity.cpp:/* ---------------------------------------------------------------------- +velocity.cpp:------------------------------------------------------------------------- */ +velocity.cpp: // cannot have no atoms in group +velocity.cpp: // compute omega (angular velocity) of group around center-of-mass +velocity.cpp: // adjust velocities to zero omega +velocity.cpp: // vnew_i = v_i - w x r_i +velocity.cpp: // must use unwrapped coords to compute r_i correctly +velocity.cpp:/* ---------------------------------------------------------------------- +velocity.cpp:------------------------------------------------------------------------- */ +velocity.cpp: // error check +verlet.cpp:/* ---------------------------------------------------------------------- +verlet.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +verlet.cpp: http://lammps.sandia.gov, Sandia National Laboratories +verlet.cpp:------------------------------------------------------------------------- */ +verlet.cpp:/* ---------------------------------------------------------------------- */ +verlet.cpp:/* ---------------------------------------------------------------------- +verlet.cpp:------------------------------------------------------------------------- */ +verlet.cpp: // warn if no fixes +verlet.cpp: // virial_style: +verlet.cpp: // 1 if computed explicitly by pair->compute via sum over pair interactions +verlet.cpp: // 2 if computed implicitly by pair->virial_fdotr_compute via sum over ghosts +verlet.cpp: // setup lists of computes for global and per-atom PE and pressure +verlet.cpp: // detect if fix omp is present for clearing force arrays +verlet.cpp: // set flags for arrays to clear in force_clear() +verlet.cpp: // orthogonal vs triclinic simulation box +verlet.cpp:/* ---------------------------------------------------------------------- +verlet.cpp:------------------------------------------------------------------------- */ +verlet.cpp: error->all(FLERR,"KOKKOS package requires run_style verlet/kk"); +verlet.cpp: // setup domain, communication and neighboring +verlet.cpp: // acquire ghosts +verlet.cpp: // build neighbor lists +verlet.cpp: // compute all forces +verlet.cpp:/* ---------------------------------------------------------------------- +verlet.cpp:------------------------------------------------------------------------- */ +verlet.cpp: // setup domain, communication and neighboring +verlet.cpp: // acquire ghosts +verlet.cpp: // build neighbor lists +verlet.cpp: // compute all forces +verlet.cpp:/* ---------------------------------------------------------------------- +verlet.cpp:------------------------------------------------------------------------- */ +verlet.cpp: // initial time integration +verlet.cpp: // regular communication vs neighbor list rebuild +verlet.cpp: // force computations +verlet.cpp: // important for pair to come before bonded contributions +verlet.cpp: // since some bonded potentials tally pairwise energy/virial +verlet.cpp: // and Pair:ev_tally() needs to be called before any tallying +verlet.cpp: // reverse communication of forces +verlet.cpp: // force modifications, final time integration, diagnostics +verlet.cpp: // all output +verlet.cpp:/* ---------------------------------------------------------------------- */ +verlet.cpp:/* ---------------------------------------------------------------------- +verlet.cpp:------------------------------------------------------------------------- */ +verlet.cpp: // clear force on all particles +verlet.cpp: // if either newton flag is set, also include ghosts +verlet.cpp: // when using threads always clear all forces. +verlet.cpp: //test memset for fm +verlet.cpp: //memset(&atom->fm[0][0],0,3*nbytes); +verlet.cpp: // neighbor includegroup flag is set +verlet.cpp: // clear force only on initial nfirst particles +verlet.cpp: // if either newton flag is set, also include ghosts +write_coeff.cpp:/* ---------------------------------------------------------------------- +write_coeff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +write_coeff.cpp: http://lammps.sandia.gov, Sandia National Laboratories +write_coeff.cpp:------------------------------------------------------------------------- */ +write_coeff.cpp:/* ---------------------------------------------------------------------- +write_coeff.cpp:------------------------------------------------------------------------- */ +write_coeff.cpp: // initialize relevant styles +write_coeff.cpp: fputs(str,two); // style +write_coeff.cpp: fgets(str,256,one); // coeff +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +write_data.cpp: http://lammps.sandia.gov, Sandia National Laboratories +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp:enum{IGNORE,WARN,ERROR}; // same as thermo.cpp +write_data.cpp:/* ---------------------------------------------------------------------- */ +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp: // if filename contains a "*", replace with current timestep +write_data.cpp: // read optional args +write_data.cpp: // noinit is a hidden arg, only used by -r command-line switch +write_data.cpp: // init entire system since comm->exchange is done +write_data.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc +write_data.cpp: // exception is when called by -r command-line switch +write_data.cpp: // then write_data immediately follows reading of restart file +write_data.cpp: // assume that read_restart initialized necessary values +write_data.cpp: // if don't make exception: +write_data.cpp: // pair->init() can fail due to various unset values: +write_data.cpp: // e.g. pair hybrid coeffs, dpd ghost-atom velocity setting +write_data.cpp: // move atoms to new processors before writing file +write_data.cpp: // do setup_pre_exchange to force update of per-atom info if needed +write_data.cpp: // enforce PBC in case atoms are outside box +write_data.cpp: // call borders() to rebuild atom map since exchange() destroys map +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp: might later let it be directly called within run/minimize loop +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp: // special case where reneighboring is not done in integrator +write_data.cpp: // on timestep data file is written (due to build_once being set) +write_data.cpp: // if box is changing, must be reset, else data file will have +write_data.cpp: // wrong box size and atoms will be lost when data file is read +write_data.cpp: // other calls to pbc and domain and comm are not made, +write_data.cpp: // b/c they only make sense if reneighboring is actually performed +write_data.cpp: //if (neighbor->build_once) domain->reset_box(); +write_data.cpp: // natoms = sum of nlocal = value to write into data file +write_data.cpp: // if unequal and thermo lostflag is "error", don't write data file +write_data.cpp: // sum up bond,angle counts +write_data.cpp: // may be different than atom->nbonds,nangles if broken/turned-off +write_data.cpp: // open data file +write_data.cpp: // proc 0 writes header, ntype-length arrays, force fields +write_data.cpp: // per atom info +write_data.cpp: // do not write molecular topology for atom_style template +write_data.cpp: // extra sections managed by fixes +write_data.cpp: // close data file +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp: // do not write molecular topology info for atom_style template +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp: // communication buffer for all my Atom info +write_data.cpp: // max_size = largest buffer needed by any proc +write_data.cpp: // pack my atom data into buf +write_data.cpp: // write one chunk of atoms per proc to file +write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file +write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 +write_data.cpp: recvrow /= ncol; +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp: // communication buffer for all my Atom info +write_data.cpp: // max_size = largest buffer needed by any proc +write_data.cpp: // pack my velocity data into buf +write_data.cpp: // write one chunk of velocities per proc to file +write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file +write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 +write_data.cpp: recvrow /= ncol; +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp: // communication buffer for all my Bond info +write_data.cpp: // pack my bond data into buf +write_data.cpp: // write one chunk of info per proc to file +write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file +write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 +write_data.cpp: recvrow /= ncol; +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp: // communication buffer for all my Angle info +write_data.cpp: // pack my angle data into buf +write_data.cpp: // write one chunk of info per proc to file +write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file +write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 +write_data.cpp: recvrow /= ncol; +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp: // communication buffer for all my Dihedral info +write_data.cpp: // max_size = largest buffer needed by any proc +write_data.cpp: // pack my dihedral data into buf +write_data.cpp: // write one chunk of info per proc to file +write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file +write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 +write_data.cpp: recvrow /= ncol; +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp: // communication buffer for all my Improper info +write_data.cpp: // max_size = largest buffer needed by any proc +write_data.cpp: // pack my improper data into buf +write_data.cpp: // write one chunk of info per proc to file +write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file +write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 +write_data.cpp: recvrow /= ncol; +write_data.cpp:/* ---------------------------------------------------------------------- +write_data.cpp:------------------------------------------------------------------------- */ +write_data.cpp: // communication buffer for Fix info +write_data.cpp: // pack my fix data into buf +write_data.cpp: // write one chunk of info per proc to file +write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file +write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 +write_data.cpp: recvrow /= ncol; +write_dump.cpp:/* ---------------------------------------------------------------------- +write_dump.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +write_dump.cpp: http://lammps.sandia.gov, Sandia National Laboratories +write_dump.cpp:------------------------------------------------------------------------- */ +write_dump.cpp:/* ---------------------------------------------------------------------- +write_dump.cpp:------------------------------------------------------------------------- */ +write_dump.cpp:/* ---------------------------------------------------------------------- */ +write_dump.cpp: // modindex = index in args of "modify" keyword +write_dump.cpp: // will be narg if "modify" is not present +write_dump.cpp: // create the Dump instance +write_dump.cpp: // create dump command line with extra required args +write_dump.cpp: dumpargs[0] = (char *) "WRITE_DUMP"; // dump id +write_dump.cpp: dumpargs[1] = arg[0]; // group +write_dump.cpp: dumpargs[2] = arg[1]; // dump style +write_dump.cpp: dumpargs[3] = (char *) "1"; // dump frequency +write_dump.cpp: if (0) return; // dummy line to enable else-if macro expansion +write_dump.cpp: // write out one frame and then delete the dump again +write_dump.cpp: // set multifile_override for DumpImage so that filename needs no "*" +write_dump.cpp: // delete the Dump instance and local storage +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +write_restart.cpp: http://lammps.sandia.gov, Sandia National Laboratories +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp:// same as read_restart.cpp +write_restart.cpp:enum{IGNORE,WARN,ERROR}; // same as thermo.cpp +write_restart.cpp:/* ---------------------------------------------------------------------- */ +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp: // if filename contains a "*", replace with current timestep +write_restart.cpp: // check for multiproc output and an MPI-IO filename +write_restart.cpp: // setup output style and process optional args +write_restart.cpp: // also called by Output class for periodic restart files +write_restart.cpp: // init entire system since comm->exchange is done +write_restart.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc +write_restart.cpp: // move atoms to new processors before writing file +write_restart.cpp: // enforce PBC in case atoms are outside box +write_restart.cpp: // call borders() to rebuild atom map since exchange() destroys map +write_restart.cpp: // NOTE: removed call to setup_pre_exchange +write_restart.cpp: // used to be needed by fixShearHistory for granular +write_restart.cpp: // to move history info from neigh list to atoms between runs +write_restart.cpp: // but now that is done via FIx::post_run() +write_restart.cpp: // don't think any other fix needs this or should do it +write_restart.cpp: // e.g. fix evaporate should not delete more atoms +write_restart.cpp: // modify->setup_pre_exchange(); +write_restart.cpp: // write single restart file +write_restart.cpp:/* ---------------------------------------------------------------------- */ +write_restart.cpp: // error checks +write_restart.cpp: // defaults for multiproc file writing +write_restart.cpp: // optional args +write_restart.cpp: multiproc = nprocs/nper; +write_restart.cpp: fileproc = me/nper * nper; +write_restart.cpp: icluster = fileproc/nper; +write_restart.cpp: icluster = static_cast ((bigint) me * nfile/nprocs); +write_restart.cpp: fileproc = static_cast ((bigint) icluster * nprocs/nfile); +write_restart.cpp: int fcluster = static_cast ((bigint) fileproc * nfile/nprocs); +write_restart.cpp: static_cast ((bigint) (icluster+1) * nprocs/nfile); +write_restart.cpp: fcluster = static_cast ((bigint) fileprocnext * nfile/nprocs); +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp: called from command() and directly from output within run/minimize loop +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp: // special case where reneighboring is not done in integrator +write_restart.cpp: // on timestep restart file is written (due to build_once being set) +write_restart.cpp: // if box is changing, must be reset, else restart file will have +write_restart.cpp: // wrong box size and atoms will be lost when restart file is read +write_restart.cpp: // other calls to pbc and domain and comm are not made, +write_restart.cpp: // b/c they only make sense if reneighboring is actually performed +write_restart.cpp: // natoms = sum of nlocal = value to write into restart file +write_restart.cpp: // if unequal and thermo lostflag is "error", don't write restart file +write_restart.cpp: // open single restart file or base file for multiproc case +write_restart.cpp: // proc 0 writes magic string, endian flag, numeric version +write_restart.cpp: // proc 0 writes header, groups, pertype info, force field info +write_restart.cpp: // all procs write fix info +write_restart.cpp: // communication buffer for my atom info +write_restart.cpp: // max_size = largest buffer needed by any proc +write_restart.cpp: // NOTE: are assuming size_restart() returns 32-bit int +write_restart.cpp: // for a huge one-proc problem, nlocal could be 32-bit +write_restart.cpp: // but nlocal * doubles-peratom could oveflow +write_restart.cpp: // all procs write file layout info which may include per-proc sizes +write_restart.cpp: // header info is complete +write_restart.cpp: // if multiproc output: +write_restart.cpp: // close header file, open multiname file on each writing proc, +write_restart.cpp: // write PROCSPERFILE into new file +write_restart.cpp: // pack my atom data into buf +write_restart.cpp: // if any fix requires it, remap each atom's coords via PBC +write_restart.cpp: // is because fix changes atom coords (excepting an integrate fix) +write_restart.cpp: // just remap in buffer, not actual atoms +write_restart.cpp: // MPI-IO output to single file +write_restart.cpp: // output of one or more native files +write_restart.cpp: // filewriter = 1 = this proc writes to file +write_restart.cpp: // ping each proc in my cluster, receive its data, write data to file +write_restart.cpp: // else wait for ping from fileproc, send my data to fileproc +write_restart.cpp: // clean up +write_restart.cpp: // invoke any fixes that write their own restart file +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp: // added field for shrink-wrap boundaries with minimum - 2 Jul 2015 +write_restart.cpp: // write atom_style and its args +write_restart.cpp: // -1 flag signals end of header +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp: // -1 flag signals end of type arrays +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp: // -1 flag signals end of force field info +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp: // -1 flag signals end of file layout info +write_restart.cpp: // if MPI-IO file, broadcast the end of the header offste +write_restart.cpp: // this allows all ranks to compute offset to their data +write_restart.cpp:// ---------------------------------------------------------------------- +write_restart.cpp:// ---------------------------------------------------------------------- +write_restart.cpp:// low-level fwrite methods +write_restart.cpp:// ---------------------------------------------------------------------- +write_restart.cpp:// ---------------------------------------------------------------------- +write_restart.cpp:/* ---------------------------------------------------------------------- */ +write_restart.cpp:/* ---------------------------------------------------------------------- */ +write_restart.cpp:/* ---------------------------------------------------------------------- */ +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ +write_restart.cpp:/* ---------------------------------------------------------------------- +write_restart.cpp:------------------------------------------------------------------------- */ diff --git a/src/verlet.cpp b/src/verlet.cpp index 7bac6d7647..b1bdf0e62d 100644 --- a/src/verlet.cpp +++ b/src/verlet.cpp @@ -312,6 +312,7 @@ void Verlet::run(int n) timer->stamp(Timer::PAIR); } + if (atom->molecular) { if (force->bond) force->bond->compute(eflag,vflag); if (force->angle) force->angle->compute(eflag,vflag); diff --git a/vmd_nano.vmd b/vmd_nano.vmd index f484cbe4ec..76286c54bc 100644 --- a/vmd_nano.vmd +++ b/vmd_nano.vmd @@ -70,7 +70,7 @@ proc enable_trace {} { trace variable vmd_frame([molinfo top]) w vmd_draw_spin } -set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump_spin_MM.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] +set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump_VSRSV.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] scale by 0.5 animate style Loop enable_trace From f6b4587fe8a15011af80fe930daf374f0686a7dd Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 24 Oct 2017 11:35:54 -0600 Subject: [PATCH 041/675] Commit Julien 10/24/17 Correction in the pair/exchange for energy preservation --- in.co_magnetomech | 24 ++++++++++++------------ src/SPIN/compute_spin.cpp | 2 +- src/SPIN/pair_spin_exchange.cpp | 26 +++++++++++++------------- src/SPIN/pair_spin_soc_neel.cpp | 12 ++++++------ 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/in.co_magnetomech b/in.co_magnetomech index 559fc1ae4b..f32f05d09d 100644 --- a/in.co_magnetomech +++ b/in.co_magnetomech @@ -61,31 +61,30 @@ mass 1 58.93 set group all spin 1.72 0.0 0.0 1.0 #set group single_spin spin/random 11 1.72 -#velocity all create 600 4928459 rot yes dist gaussian +#velocity all create 200 4928459 rot yes dist gaussian #Magneto-mechanic interactions for bulk fcc Cobalt -#pair_style pair/spin 4.0 +pair_style pair/spin/exchange 4.0 #pair_style eam/alloy #pair_style hybrid/overlay eam/alloy pair/spin/soc 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -#pair_style hybrid/overlay eam/alloy pair/spin 4.0 pair/spin/soc 4.0 +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../Co_PurjaPun_2012.eam.alloy Co +#pair_coeff * * eam/alloy ../Co_PurjaPun_2012.eam.alloy Co #pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co #pair_style pair/spin 4.0 #type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -#pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 #pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -#pair_coeff * * pair/spin exchange 4.0 0.0 0.003496 1.4885 +#pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 #type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) #pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 #pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 #type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) -pair_coeff * * pair/spin/soc/neel neel 4.0 -0.003330282 0.864159 2.13731 +#pair_coeff * * pair/spin/soc/neel neel 4.0 -0.003330282 0.864159 2.13731 #Define a skin distance, update neigh list every #neighbor 1.0 bin @@ -112,7 +111,7 @@ fix 3 all integration/spin serial #fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_VSRSV.dat format %20.16g #Setting the timestep for the simulation (in ps) -timestep 0.0002 +timestep 0.0001 ################## #######run######## @@ -123,6 +122,7 @@ timestep 0.0002 compute out_mag all compute/spin compute out_pe all pe compute out_ke all ke +compute out_temp all temp variable magnorm equal c_out_mag[5] variable emag equal c_out_mag[6] @@ -130,13 +130,13 @@ variable tmag equal c_out_mag[7] variable mag_force equal f_1 thermo 500 -thermo_style custom step time v_emag c_out_pe c_out_ke v_mag_force v_magnorm v_tmag etotal +thermo_style custom step time v_emag c_out_pe c_out_ke c_out_temp v_mag_force v_magnorm v_tmag etotal #fix out_vals all ave/time 1 1 50 step v_emag file temp_lattice_VSRSV.dat format %20.16g #Dump the positions and spin directions of magnetic particles (vmd format) dump 1 all custom 100 dump_VSRSV.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 1000000 +run 40000 #run 1 diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index de1a54780e..3e93514607 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -126,7 +126,7 @@ void ComputeSpin::compute_vector() magtot[2] *= scale; magtot[3] = sqrt((magtot[0]*magtot[0])+(magtot[1]*magtot[1])+(magtot[2]*magtot[2])); spintemperature = hbar*tempnumtot; - spintemperature /= (2.0*kb*tempdenomtot); + spintemperature /= (kb*tempdenomtot); vector[0] = invoked_vector*update->dt; vector[1] = magtot[0]; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 1339c90d3d..fcef08b600 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -83,7 +83,7 @@ void PairSpinExchange::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl,ecoul; - double xtmp,ytmp,ztmp; + double xi,yi,zi; double fix,fiy,fiz,fjx,fjy,fjz; double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; double cut_ex_2,cut_spin_exchange_global2; @@ -114,9 +114,9 @@ void PairSpinExchange::compute(int eflag, int vflag) for (ii = 0; ii < inum; ii++) { i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; jlist = firstneigh[i]; jnum = numneigh[i]; spi[0] = sp[i][0]; @@ -140,9 +140,9 @@ void PairSpinExchange::compute(int eflag, int vflag) fmj[0] = fmj[1] = fmj[2] = 0.0; rij[0] = rij[1] = rij[2] = 0.0; - rij[0] = x[j][0] - xtmp; - rij[1] = x[j][1] - ytmp; - rij[2] = x[j][2] - ztmp; + rij[0] = x[j][0] - xi; + rij[1] = x[j][1] - yi; + rij[2] = x[j][2] - zi; // square of inter-atomic distance rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; @@ -212,13 +212,13 @@ void PairSpinExchange::compute_exchange(int i, int j, double rsq, double *fmi, Jex *= (1.0-J2[itype][jtype]*ra); Jex *= exp(-ra); - fmi[0] += 0.5*Jex*spj[0]; - fmi[1] += 0.5*Jex*spj[1]; - fmi[2] += 0.5*Jex*spj[2]; + fmi[0] -= 0.5*Jex*spj[0]; + fmi[1] -= 0.5*Jex*spj[1]; + fmi[2] -= 0.5*Jex*spj[2]; - fmj[0] += 0.5*Jex*spi[0]; - fmj[1] += 0.5*Jex*spi[1]; - fmj[2] += 0.5*Jex*spi[2]; + fmj[0] -= 0.5*Jex*spi[0]; + fmj[1] -= 0.5*Jex*spi[1]; + fmj[2] -= 0.5*Jex*spi[2]; } diff --git a/src/SPIN/pair_spin_soc_neel.cpp b/src/SPIN/pair_spin_soc_neel.cpp index 47f1c7282d..e8cd96fece 100755 --- a/src/SPIN/pair_spin_soc_neel.cpp +++ b/src/SPIN/pair_spin_soc_neel.cpp @@ -212,13 +212,13 @@ void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double *rij, do scalar = rij[0]*spj[0]+rij[1]*spj[1]+rij[2]*spj[2]; Kij_3 = Kij/3.0; - fmi[0] += Kij*scalar*rij[0]-Kij_3*spj[0]; - fmi[1] += Kij*scalar*rij[1]-Kij_3*spj[1]; - fmi[2] += Kij*scalar*rij[2]-Kij_3*spj[2]; + fmi[0] -= Kij*scalar*rij[0]-Kij_3*spj[0]; + fmi[1] -= Kij*scalar*rij[1]-Kij_3*spj[1]; + fmi[2] -= Kij*scalar*rij[2]-Kij_3*spj[2]; - fmj[0] -= Kij*scalar*rij[0]+Kij_3*spi[0]; - fmj[1] -= Kij*scalar*rij[1]+Kij_3*spi[1]; - fmj[2] -= Kij*scalar*rij[2]+Kij_3*spi[2]; + fmj[0] += Kij*scalar*rij[0]+Kij_3*spi[0]; + fmj[1] += Kij*scalar*rij[1]+Kij_3*spi[1]; + fmj[2] += Kij*scalar*rij[2]+Kij_3*spi[2]; } From b219392d5924f9ceee24ffb53d4ff2483e8b1dbe Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 2 Nov 2017 08:27:32 -0600 Subject: [PATCH 042/675] Commit before pull on SOLO --- in.co_magnetomech | 32 ++-- src/SPIN/compute_spin.cpp | 4 +- src/SPIN/fix_integration_spin.cpp | 304 ++++-------------------------- 3 files changed, 51 insertions(+), 289 deletions(-) diff --git a/in.co_magnetomech b/in.co_magnetomech index f32f05d09d..ae34a72842 100644 --- a/in.co_magnetomech +++ b/in.co_magnetomech @@ -35,7 +35,7 @@ lattice fcc 3.54 #Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen #(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 2.0 0.0 2.0 0.0 2.0 +region box block 0.0 8.0 0.0 8.0 0.0 8.0 #Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box @@ -57,27 +57,27 @@ mass 1 58.93 #set group all mass 58.93 #Setting spins orientation and moment -#set group all spin/random 31 1.72 -set group all spin 1.72 0.0 0.0 1.0 +set group all spin/random 31 1.72 +#set group all spin 1.72 0.0 0.0 1.0 #set group single_spin spin/random 11 1.72 -#velocity all create 200 4928459 rot yes dist gaussian +velocity all create 200 4928459 rot yes dist gaussian #Magneto-mechanic interactions for bulk fcc Cobalt -pair_style pair/spin/exchange 4.0 +#pair_style pair/spin/exchange 4.0 #pair_style eam/alloy #pair_style hybrid/overlay eam/alloy pair/spin/soc 4.0 #pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 6.5 -#pair_coeff * * eam/alloy ../Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy ../Co_PurjaPun_2012.eam.alloy Co #pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co #pair_style pair/spin 4.0 #type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +#pair_coeff * * exchange 4.0 -0.0446928 0.003496 1.4885 #pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 -#pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * pair/spin/exchange exchange 4.0 -0.0446928 0.003496 1.4885 #type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) #pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 @@ -100,10 +100,10 @@ fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 300.0 0.1 0.0 21 +fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -fix 3 all integration/spin serial +fix 3 all integration/spin mpi #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm @@ -129,14 +129,16 @@ variable emag equal c_out_mag[6] variable tmag equal c_out_mag[7] variable mag_force equal f_1 -thermo 500 -thermo_style custom step time v_emag c_out_pe c_out_ke c_out_temp v_mag_force v_magnorm v_tmag etotal +thermo 100 +#thermo_style custom step time v_emag c_out_pe c_out_ke c_out_temp v_mag_force v_magnorm v_tmag etotal +thermo_style custom step time v_emag c_out_pe c_out_ke etotal +thermo_modify format float %20.15g #fix out_vals all ave/time 1 1 50 step v_emag file temp_lattice_VSRSV.dat format %20.16g #Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 100 dump_VSRSV.lammpstrj type x y z spx spy spz +dump 1 all custom 5000 dump_VSRSV.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 40000 +run 10000 #run 1 diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 3e93514607..ce60cf373f 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -109,9 +109,9 @@ void ComputeSpin::compute_vector() tempnum += tx*tx+ty*ty+tz*tz; tempdenom += sp[i][0]*fm[i][0]+fm[i][1]*sp[i][1]+sp[i][2]*fm[i][2]; countsp++; - } } - else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); + } + else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); } MPI_Allreduce(mag,magtot,4,MPI_DOUBLE,MPI_SUM,world); diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 5fee9c1554..8df460c613 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -127,9 +127,9 @@ void FixIntegrationSpin::init() //FixNVE::init(); // set timesteps - dtv = 0.5 * update->dt; + dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; - dts = 0.5 * update->dt; + dts = 0.25 * update->dt; memory->create(xi,3,"integrations:xi"); memory->create(sec,3,"integrations:sec"); @@ -146,7 +146,7 @@ void FixIntegrationSpin::init() if (strstr(force->pair_style,"pair/spin/exchange")) { exch_flag = 1; lockpairspinexchange = (PairSpinExchange *) force->pair; - } else if (strstr(force->pair_style,"pair/spin/soc")) { + } else if (strstr(force->pair_style,"pair/spin/soc/neel")) { soc_flag = 1; lockpairspinsocneel = (PairSpinSocNeel *) force->pair; } else if (strstr(force->pair_style,"hybrid/overlay")) { @@ -157,7 +157,7 @@ void FixIntegrationSpin::init() if (strstr(lockhybrid->keywords[ipair],"pair/spin/exchange")) { exch_flag = 1; lockpairspinexchange = (PairSpinExchange *) lockhybrid->styles[ipair]; - } else if (strstr(lockhybrid->keywords[ipair],"pair/spin/soc")) { + } else if (strstr(lockhybrid->keywords[ipair],"pair/spin/soc/neel")) { soc_flag = 1; lockpairspinsocneel = (PairSpinSocNeel *) lockhybrid->styles[ipair]; } @@ -220,10 +220,7 @@ void FixIntegrationSpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; - -#define VSRSV_TEST -#if defined VSRSV_TEST - + // advance spin-lattice system, vsrsv // update half v for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -235,14 +232,14 @@ void FixIntegrationSpin::initial_integrate(int vflag) } } - // update s for all particles + // update half s for all particles if (extra == SPIN) { - if (mpi_flag == 1) { + if (mpi_flag == 1) { // mpi seq. update int nseci; - // mpi seq. update - for (int j = 0; j < nsectors; j++) { + for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal comm->forward_comm(); for (int i = 0; i < nlocal; i++) { + //comm->forward_comm(); xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -252,9 +249,10 @@ void FixIntegrationSpin::initial_integrate(int vflag) AdvanceSingleSpin(i,dts,sp,fm); } } - for (int j = nsectors-1; j >= 0; j--) { + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); for (int i = nlocal-1; i >= 0; i--) { + //comm->forward_comm(); xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -264,20 +262,16 @@ void FixIntegrationSpin::initial_integrate(int vflag) AdvanceSingleSpin(i,dts,sp,fm); } } - } else if (mpi_flag == 0) { - // serial seq. update - // advance quarter s for nlocal-1 - for (int i = 0; i < nlocal-1; i++){ + } else if (mpi_flag == 0) { // serial seq. update + for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); + AdvanceSingleSpin(i,dts,sp,fm); } - // advance half s for 1 ComputeInteractionsSpin(nlocal-1); - AdvanceSingleSpin(nlocal-1,dts,sp,fm); - // advance quarter s for nlocal-1 - for (int i = nlocal-2; i >= 0; i--){ + AdvanceSingleSpin(nlocal-1,2.0*dts,sp,fm); // advance half s for 1 + for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); + AdvanceSingleSpin(i,dts,sp,fm); } } else error->all(FLERR,"Illegal fix integration/spin command"); } @@ -285,20 +279,20 @@ void FixIntegrationSpin::initial_integrate(int vflag) // update x for all particles for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { - x[i][0] += 2.0 * dtv * v[i][0]; - x[i][1] += 2.0 * dtv * v[i][1]; - x[i][2] += 2.0 * dtv * v[i][2]; + x[i][0] += dtv * v[i][0]; + x[i][1] += dtv * v[i][1]; + x[i][2] += dtv * v[i][2]; } } // update half s for all particles if (extra == SPIN) { - if (mpi_flag == 1) { + if (mpi_flag == 1) { // mpi seq. update int nseci; - // mpi seq. update - for (int j = 0; j < nsectors; j++) { + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); - for (int i = 0; i < nlocal; i++) { + for (int i = nlocal-1; i >= 0; i--) { + //comm->forward_comm(); xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -308,9 +302,10 @@ void FixIntegrationSpin::initial_integrate(int vflag) AdvanceSingleSpin(i,dts,sp,fm); } } - for (int j = nsectors-1; j >= 0; j--) { + for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal comm->forward_comm(); - for (int i = nlocal-1; i >= 0; i--) { + for (int i = 0; i < nlocal-1; i++) { + //comm->forward_comm(); xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -320,163 +315,19 @@ void FixIntegrationSpin::initial_integrate(int vflag) AdvanceSingleSpin(i,dts,sp,fm); } } - } else if (mpi_flag == 0) { - // serial seq. update - // advance quarter s for nlocal-2 particles - for (int i = nlocal-1; i >= 1; i--){ + } else if (mpi_flag == 0) { // serial seq. update + for (int i = nlocal-1; i >= 1; i--){ // advance quarter s for nlocal-2 particles ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); + AdvanceSingleSpin(i,dts,sp,fm); } - // advance half s for 1 ComputeInteractionsSpin(0); - AdvanceSingleSpin(0,dts,sp,fm); - // advance quarter s for nlocal-2 particles - for (int i = 1; i < nlocal; i++){ - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - } else error->all(FLERR,"Illegal fix integration/spin command"); - } - -#endif - - -//#define VRSRV -#if defined VRSRV - // update half v for all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - if (rmass) dtfm = dtf / rmass[i]; - else dtfm = dtf / mass[type[i]]; - v[i][0] += dtfm * f[i][0]; - v[i][1] += dtfm * f[i][1]; - v[i][2] += dtfm * f[i][2]; - } - } - - // update half x for all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - x[i][0] += dtv * v[i][0]; - x[i][1] += dtv * v[i][1]; - x[i][2] += dtv * v[i][2]; - } - } - - // update s for all particles - if (extra == SPIN) { - if (mpi_flag == 1) { - int nseci; - // mpi seq. update - for (int j = 0; j < nsectors; j++) { - comm->forward_comm(); - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } - for (int j = nsectors-1; j >= 0; j--) { - comm->forward_comm(); - for (int i = nlocal-1; i >= 0; i--) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } - } else if (mpi_flag == 0) { - // serial seq. update - for (int i = 0; i < nlocal; i++){ - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - for (int i = nlocal-1; i >= 0; i--){ + AdvanceSingleSpin(0,2.0*dts,sp,fm); // advance half s for 1 + for (int i = 1; i < nlocal; i++){ // advance quarter s for nlocal-2 particles ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); } } else error->all(FLERR,"Illegal fix integration/spin command"); } - - // update half x for all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - x[i][0] += dtv * v[i][0]; - x[i][1] += dtv * v[i][1]; - x[i][2] += dtv * v[i][2]; - } - } -#endif - - -//#define RSVSR_TEST -#if defined RSVSR_TEST - - // update half x for all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - x[i][0] += dtv * v[i][0]; - x[i][1] += dtv * v[i][1]; - x[i][2] += dtv * v[i][2]; - } - } - - // update half s for all particles - if (extra == SPIN) { - if (mpi_flag == 1) { - int nseci; - // mpi seq. update - for (int j = 0; j < nsectors; j++) { - comm->forward_comm(); - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } - for (int j = nsectors-1; j >= 0; j--) { - comm->forward_comm(); - for (int i = nlocal-1; i >= 0; i--) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } - } else if (mpi_flag == 0) { - // serial seq. update - // advance quarter s for nlocal-2 particles - for (int i = 0; i < nlocal-2; i++){ - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - // advance half s for nlocal-1 - ComputeInteractionsSpin(nlocal-1); - AdvanceSingleSpin(nlocal-1,dts,sp,fm); - // advance quarter s for nlocal-2 particles - for (int i = nlocal-2; i >= 0; i--){ - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - } else error->all(FLERR,"Illegal fix integration/spin command"); - } - -#endif - } @@ -726,9 +577,6 @@ void FixIntegrationSpin::final_integrate() int *type = atom->type; int *mask = atom->mask; -#define VSRSV_TEST -#if defined VSRSV_TEST - // update half v for all particles for (int i = nlocal-1; i >= 0; i--) { if (mask[i] & groupbit) { @@ -740,92 +588,4 @@ void FixIntegrationSpin::final_integrate() } } -#endif - -//#define VRSRV -#if defined VRSRV - // update half v for all particles - for (int i = nlocal-1; i >= 0; i--) { - if (mask[i] & groupbit) { - if (rmass) dtfm = dtf / rmass[i]; - else dtfm = dtf / mass[type[i]]; - v[i][0] += dtfm * f[i][0]; - v[i][1] += dtfm * f[i][1]; - v[i][2] += dtfm * f[i][2]; - } - } -#endif - -//#define RSVSR_TEST -#if defined RSVSR_TEST - - // update v for all particles - for (int i = nlocal-1; i >= 0; i--) { - if (mask[i] & groupbit) { - if (rmass) dtfm = dtf / rmass[i]; - else dtfm = dtf / mass[type[i]]; - v[i][0] += 2.0 * dtfm * f[i][0]; - v[i][1] += 2.0 * dtfm * f[i][1]; - v[i][2] += 2.0 * dtfm * f[i][2]; - } - } - - // update half s for all particles - if (extra == SPIN) { - if (mpi_flag == 1) { - int nseci; - // mpi seq. update - for (int j = 0; j < nsectors; j++) { - comm->forward_comm(); - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } - for (int j = nsectors-1; j >= 0; j--) { - comm->forward_comm(); - for (int i = nlocal-1; i >= 0; i--) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } - } else if (mpi_flag == 0) { - // serial seq. update - // advance quarter s for nlocal-2 particles - for (int i = nlocal-1; i >= 1; i--){ - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - // advance half s for nlocal-1 - ComputeInteractionsSpin(0); - AdvanceSingleSpin(0,dts,sp,fm); - // advance quarter s for nlocal-2 particles - for (int i = 1; i < nlocal-1; i++){ - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,0.5*dts,sp,fm); - } - } else error->all(FLERR,"Illegal fix integration/spin command"); - } - - // update half x for all particles - for (int i = nlocal-1; i >= 0; i--) { - if (mask[i] & groupbit) { - x[i][0] += dtv * v[i][0]; - x[i][1] += dtv * v[i][1]; - x[i][2] += dtv * v[i][2]; - } - } - -#endif - } From c6bb9586efdfe160922f305f11f6d8c38d7f48b7 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 6 Nov 2017 09:18:01 -0700 Subject: [PATCH 043/675] Commit before new serial algo --- in.co_magnetomech | 5 +++-- src/SPIN/fix_integration_spin.cpp | 19 ++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/in.co_magnetomech b/in.co_magnetomech index ae34a72842..978c84cc6f 100644 --- a/in.co_magnetomech +++ b/in.co_magnetomech @@ -129,9 +129,10 @@ variable emag equal c_out_mag[6] variable tmag equal c_out_mag[7] variable mag_force equal f_1 -thermo 100 +thermo 10 #thermo_style custom step time v_emag c_out_pe c_out_ke c_out_temp v_mag_force v_magnorm v_tmag etotal -thermo_style custom step time v_emag c_out_pe c_out_ke etotal +#thermo_style custom step time v_emag c_out_pe c_out_ke etotal +thermo_style custom step time v_emag c_out_pe c_out_ke v_magnorm etotal thermo_modify format float %20.15g #fix out_vals all ave/time 1 1 50 step v_emag file temp_lattice_VSRSV.dat format %20.16g diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 8df460c613..e4ef09f393 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -289,9 +289,9 @@ void FixIntegrationSpin::initial_integrate(int vflag) if (extra == SPIN) { if (mpi_flag == 1) { // mpi seq. update int nseci; - for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal + for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal comm->forward_comm(); - for (int i = nlocal-1; i >= 0; i--) { + for (int i = 0; i < nlocal; i++) { //comm->forward_comm(); xi[0] = x[i][0]; xi[1] = x[i][1]; @@ -302,9 +302,9 @@ void FixIntegrationSpin::initial_integrate(int vflag) AdvanceSingleSpin(i,dts,sp,fm); } } - for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); - for (int i = 0; i < nlocal-1; i++) { + for (int i = nlocal-1; i >= 0; i--) { //comm->forward_comm(); xi[0] = x[i][0]; xi[1] = x[i][1]; @@ -316,19 +316,20 @@ void FixIntegrationSpin::initial_integrate(int vflag) } } } else if (mpi_flag == 0) { // serial seq. update - for (int i = nlocal-1; i >= 1; i--){ // advance quarter s for nlocal-2 particles + for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); } - ComputeInteractionsSpin(0); - AdvanceSingleSpin(0,2.0*dts,sp,fm); // advance half s for 1 - for (int i = 1; i < nlocal; i++){ // advance quarter s for nlocal-2 particles + ComputeInteractionsSpin(nlocal-1); + AdvanceSingleSpin(nlocal-1,2.0*dts,sp,fm); // advance half s for 1 + for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); } } else error->all(FLERR,"Illegal fix integration/spin command"); } + } /* ---------------------------------------------------------------------- */ @@ -578,7 +579,7 @@ void FixIntegrationSpin::final_integrate() int *mask = atom->mask; // update half v for all particles - for (int i = nlocal-1; i >= 0; i--) { + for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (rmass) dtfm = dtf / rmass[i]; else dtfm = dtf / mass[type[i]]; From 4cbda74df489e62f6b63330bc9ffe239c9b8556f Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 6 Nov 2017 15:40:05 -0700 Subject: [PATCH 044/675] Commit new serial algorithms --- in.co_magnetomech | 7 ++-- src/SPIN/fix_integration_spin.cpp | 66 ++++++++++++++++++++++++++++--- 2 files changed, 64 insertions(+), 9 deletions(-) diff --git a/in.co_magnetomech b/in.co_magnetomech index 978c84cc6f..a2ae4560f4 100644 --- a/in.co_magnetomech +++ b/in.co_magnetomech @@ -68,7 +68,8 @@ velocity all create 200 4928459 rot yes dist gaussian #pair_style eam/alloy #pair_style hybrid/overlay eam/alloy pair/spin/soc 4.0 #pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 6.5 +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 6.5 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair_coeff * * eam/alloy ../Co_PurjaPun_2012.eam.alloy Co #pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co @@ -132,7 +133,7 @@ variable mag_force equal f_1 thermo 10 #thermo_style custom step time v_emag c_out_pe c_out_ke c_out_temp v_mag_force v_magnorm v_tmag etotal #thermo_style custom step time v_emag c_out_pe c_out_ke etotal -thermo_style custom step time v_emag c_out_pe c_out_ke v_magnorm etotal +thermo_style custom step time v_magnorm etotal thermo_modify format float %20.15g #fix out_vals all ave/time 1 1 50 step v_emag file temp_lattice_VSRSV.dat format %20.16g @@ -141,5 +142,5 @@ dump 1 all custom 5000 dump_VSRSV.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps run 10000 -#run 1 +#run 100 diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index e4ef09f393..772e6dcdaf 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -220,6 +220,11 @@ void FixIntegrationSpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; +//#define MAG_TEST +#if defined MAG_TEST + tagint *tag = atom->tag; +#endif + // advance spin-lattice system, vsrsv // update half v for all particles for (int i = 0; i < nlocal; i++) { @@ -238,8 +243,14 @@ void FixIntegrationSpin::initial_integrate(int vflag) int nseci; for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal comm->forward_comm(); +#if defined MAG_TEST + if (j == 0) { + //for (int i = 0; i < nlocal; i++) { + printf("L1: test atom i=%d, tagi=%d \n",0,tag[0]); + //} + } +#endif for (int i = 0; i < nlocal; i++) { - //comm->forward_comm(); xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -252,7 +263,6 @@ void FixIntegrationSpin::initial_integrate(int vflag) for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); for (int i = nlocal-1; i >= 0; i--) { - //comm->forward_comm(); xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -263,6 +273,7 @@ void FixIntegrationSpin::initial_integrate(int vflag) } } } else if (mpi_flag == 0) { // serial seq. update + comm->forward_comm(); // comm. positions of ghost atoms for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); @@ -290,9 +301,15 @@ void FixIntegrationSpin::initial_integrate(int vflag) if (mpi_flag == 1) { // mpi seq. update int nseci; for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal - comm->forward_comm(); + comm->forward_comm(); +#if defined MAG_TEST + if (j == 0) { + //for (int i = 0; i < nlocal; i++) { + printf("L2 test atom i=%d, tagi=%d \n",0,tag[0]); + //} + } +#endif for (int i = 0; i < nlocal; i++) { - //comm->forward_comm(); xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -305,7 +322,6 @@ void FixIntegrationSpin::initial_integrate(int vflag) for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); for (int i = nlocal-1; i >= 0; i--) { - //comm->forward_comm(); xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -316,6 +332,7 @@ void FixIntegrationSpin::initial_integrate(int vflag) } } } else if (mpi_flag == 0) { // serial seq. update + comm->forward_comm(); // comm. positions of ghost atoms for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); @@ -346,6 +363,12 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) int *type = atom->type; const int newton_pair = force->newton_pair; +//#define SERIAL2 +#if defined SERIAL2 + int num_j; + tagint *tag = atom->tag; +#endif + // add test here if (exch_flag) { inum = lockpairspinexchange->list->inum; @@ -363,9 +386,12 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) int vflag = 0; int pair_compute_flag = 1; +//#define SERIAL1 +#if defined SERIAL1 if (mpi_flag == 0) { comm->forward_comm(); } +#endif // force computation for spin i i = ilist[ii]; @@ -384,11 +410,23 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) // pair interaction for (int jj = 0; jj < jnum; jj++) { + j = jlist[jj]; j &= NEIGHMASK; itype = type[ii]; jtype = type[j]; +#if defined SERIAL2 + if (mpi_flag == 0) { + if (j >= nlocal) { + num_j = atom->map(tag[j]); + sp[j][0] = sp[num_j][0]; + sp[j][1] = sp[num_j][1]; + sp[j][2] = sp[num_j][2]; + } + } +#endif + spj[0] = sp[j][0]; spj[1] = sp[j][1]; spj[2] = sp[j][2]; @@ -521,6 +559,8 @@ int FixIntegrationSpin::coords2sector(double *xi) void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl, double **sp, double **fm) { + int j=0; + int *sametag = atom->sametag; double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy,dts2; double cp[3],g[3]; @@ -550,13 +590,27 @@ void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl, double **sp, doubl sp[i][0] = g[0]; sp[i][1] = g[1]; sp[i][2] = g[2]; - + // renormalization (may not be necessary) msq = g[0]*g[0] + g[1]*g[1] + g[2]*g[2]; scale = 1.0/sqrt(msq); sp[i][0] *= scale; sp[i][1] *= scale; sp[i][2] *= scale; + + // comm. sp[i] to atoms with same tag (serial algo) + if (mpi_flag == 0) { + if (sametag[i] >= 0) { + j = sametag[i]; + while (j >= 0) { + sp[j][0] = sp[i][0]; + sp[j][1] = sp[i][1]; + sp[j][2] = sp[i][2]; + j = sametag[j]; + } + } + } + } /* ---------------------------------------------------------------------- */ From f3e58440a24c415c5a656303068a68c78849bce6 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 6 Nov 2017 15:48:28 -0700 Subject: [PATCH 045/675] Commit 11/6/17 --- in.co_magnetomech | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/in.co_magnetomech b/in.co_magnetomech index a2ae4560f4..6698f61a8d 100644 --- a/in.co_magnetomech +++ b/in.co_magnetomech @@ -104,7 +104,7 @@ fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -fix 3 all integration/spin mpi +fix 3 all integration/spin serial #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm From cc44a8863c6a68eb83254c7c71e7b0795b1b8b05 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 6 Nov 2017 16:00:23 -0700 Subject: [PATCH 046/675] Commit 11/06/17 --- in.co_magnetomech | 37 +++++-------------------------------- 1 file changed, 5 insertions(+), 32 deletions(-) diff --git a/in.co_magnetomech b/in.co_magnetomech index 6698f61a8d..8b71e395ab 100644 --- a/in.co_magnetomech +++ b/in.co_magnetomech @@ -3,13 +3,8 @@ ################### clear -#setting units to metal (Ang, picosecs, eV, ...): units metal - -#setting dimension of the system (N=2 or 3): dimension 3 - -#setting boundary conditions. (p for periodic, f for fixed, ...) boundary p p p #boundary f f f @@ -19,29 +14,15 @@ atom_style spin #Define sort for paramagnetic simulations (if no pair interaction) #atom_modify sort 1000 4.0 -#why? atom_modify map array -#newton off for pair spin in SEQNEI -#newton off off - ########################### #######Create atoms######## ########################### -#Lattice constant of fcc Cobalt lattice fcc 3.54 -#lattice sc 2.50 - -#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen -#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) region box block 0.0 8.0 0.0 8.0 0.0 8.0 - -#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box - -#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... -#Entries: atom type, create_atoms 1 box ####################### @@ -52,14 +33,12 @@ create_atoms 1 box group single_spin id 10 #Setting one or more properties of one or more atoms. -#Setting mass mass 1 58.93 -#set group all mass 58.93 #Setting spins orientation and moment -set group all spin/random 31 1.72 -#set group all spin 1.72 0.0 0.0 1.0 -#set group single_spin spin/random 11 1.72 +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 +set group single_spin spin/random 11 1.72 velocity all create 200 4928459 rot yes dist gaussian @@ -108,8 +87,6 @@ fix 3 all integration/spin serial #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm -#compute mag all compute/spin -#fix outmag all ave/time 1 1 50 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_VSRSV.dat format %20.16g #Setting the timestep for the simulation (in ps) timestep 0.0001 @@ -118,8 +95,6 @@ timestep 0.0001 #######run######## ################## -#fix_modify 1 energy yes - compute out_mag all compute/spin compute out_pe all pe compute out_ke all ke @@ -132,13 +107,11 @@ variable mag_force equal f_1 thermo 10 #thermo_style custom step time v_emag c_out_pe c_out_ke c_out_temp v_mag_force v_magnorm v_tmag etotal -#thermo_style custom step time v_emag c_out_pe c_out_ke etotal thermo_style custom step time v_magnorm etotal -thermo_modify format float %20.15g -#fix out_vals all ave/time 1 1 50 step v_emag file temp_lattice_VSRSV.dat format %20.16g +thermo_modify format float %20.15g #Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 5000 dump_VSRSV.lammpstrj type x y z spx spy spz +dump 1 all custom 500 dump_VSRSV.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps run 10000 From 813343928a4851adcfd42302a24325c477008122 Mon Sep 17 00:00:00 2001 From: araven Date: Fri, 17 Nov 2017 09:10:50 +0100 Subject: [PATCH 047/675] moving files into proper directories --- .../SPIN/Co_PurjaPun_2012.eam.alloy | 0 in.co_magnetomech => examples/SPIN/in.co_magnetomech | 0 in.cobalt => examples/SPIN/in.cobalt | 0 vmd_nano.vmd => examples/SPIN/vmd_nano_2.vmd | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename Co_PurjaPun_2012.eam.alloy => examples/SPIN/Co_PurjaPun_2012.eam.alloy (100%) rename in.co_magnetomech => examples/SPIN/in.co_magnetomech (100%) rename in.cobalt => examples/SPIN/in.cobalt (100%) rename vmd_nano.vmd => examples/SPIN/vmd_nano_2.vmd (100%) diff --git a/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/Co_PurjaPun_2012.eam.alloy similarity index 100% rename from Co_PurjaPun_2012.eam.alloy rename to examples/SPIN/Co_PurjaPun_2012.eam.alloy diff --git a/in.co_magnetomech b/examples/SPIN/in.co_magnetomech similarity index 100% rename from in.co_magnetomech rename to examples/SPIN/in.co_magnetomech diff --git a/in.cobalt b/examples/SPIN/in.cobalt similarity index 100% rename from in.cobalt rename to examples/SPIN/in.cobalt diff --git a/vmd_nano.vmd b/examples/SPIN/vmd_nano_2.vmd similarity index 100% rename from vmd_nano.vmd rename to examples/SPIN/vmd_nano_2.vmd From 1828274a9904ce60b1389b6e78c45d7cc525a08a Mon Sep 17 00:00:00 2001 From: araven Date: Fri, 17 Nov 2017 09:31:09 +0100 Subject: [PATCH 048/675] new vmd shell to prepare vmd runs --- .../SPIN/{vmd_nano.vmd => prepare_vmd.sh} | 170 ++++++++++-------- examples/SPIN/vmd_nano_2.vmd | 79 -------- 2 files changed, 91 insertions(+), 158 deletions(-) rename examples/SPIN/{vmd_nano.vmd => prepare_vmd.sh} (82%) mode change 100644 => 100755 delete mode 100644 examples/SPIN/vmd_nano_2.vmd diff --git a/examples/SPIN/vmd_nano.vmd b/examples/SPIN/prepare_vmd.sh old mode 100644 new mode 100755 similarity index 82% rename from examples/SPIN/vmd_nano.vmd rename to examples/SPIN/prepare_vmd.sh index 6c3238e8d6..331f2741e4 --- a/examples/SPIN/vmd_nano.vmd +++ b/examples/SPIN/prepare_vmd.sh @@ -1,79 +1,91 @@ -proc vmd_draw_arrow {mol start end} { - set middle [vecadd $start [vecscale 0.9 [vecsub $end $start]]] - graphics $mol cylinder $start $middle radius 0.05 - graphics $mol cone $middle $end radius 0.01 color 3 -} - -proc vmd_draw_vector {args} { - set usage {"draw vector {x1 y1 z1} {x2 y2 z2} [scale ] [resolution ] [radius ] [filled ]"} - # defaults - set scale 3.0 - set res 5 - set radius 0.1 - set filled yes - - if {[llength $args] < 3} { - error "wrong # args: should be $usage" - } - set mol [lindex $args 0] - set center [lindex $args 1] - set vector [lindex $args 2] - if {[llength $center] != 3 || [llength $vector] != 3} { - error "wrong type of args: should be $usage" - } - - foreach {flag value} [lrange $args 3 end] { - switch -glob $flag { - scale {set scale $value} - res* {set res $value} - rad* {set radius $value} - fill* {set filled $value} - default {error "unknown option '$flag': should be $usage" } - } - } - - set vechalf [vecscale [expr $scale * 0.5] $vector] - return [list \ - [graphics $mol color yellow]\ - [graphics $mol cylinder [vecsub $center $vechalf]\ - [vecadd $center [vecscale 0.7 $vechalf]] \ - radius $radius resolution $res filled $filled] \ - [graphics $mol color orange]\ - [graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \ - [vecadd $center $vechalf] radius [expr $radius * 2.5] \ - resolution $res]] -} - -proc vmd_draw_spin {args} { - global molid - graphics $molid delete all - set frame [molinfo $molid get frame] - set natoms [molinfo $molid get numatoms] - for {set i 0} {$i < $natoms} {incr i} { - set sel [atomselect top "index $i"] -# set sel [atomselect top "index 1200"] - set coords [lindex [$sel get {x y z}] $molid] - set velocities [lindex [$sel get {vx vy vz}] $molid] - draw vector $coords $velocities - set uvx [lindex [$sel get {vx}] $molid] - set uvy [lindex [$sel get {vy}] $molid] - set uvz [lindex [$sel get {vz}] $molid] - $sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]] - $sel set user $uvy - #draw vector $coords {0.0 uvy 0.0} - } - #pbc box -color 3 -} - -proc enable_trace {} { - global vmd_frame - trace variable vmd_frame([molinfo top]) w vmd_draw_spin - } - -set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump_spin_T100.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] -scale by 0.5 -animate style Loop -enable_trace - - - +#!/bin/bash +# example prepare_vmd.sh /home/jtranch/Documents/lammps/src/dump_VSRSV.lammpstrj +# you will get a return file + +echo "vmd script for file $1 is preparing..." + +timestamp(){ + date +%s +} + +TS=$(timestamp) +FILE=view_${TS}.vmd + +cat >${FILE} <] [resolution ] [radius ] [filled ]"} + # defaults + set scale 3.0 + set res 5 + set radius 0.1 + set filled yes + + if {[llength $args] < 3} { + error "wrong # args: should be $usage" + } + set mol [lindex $args 0] + set center [lindex $args 1] + set vector [lindex $args 2] + if {[llength $center] != 3 || [llength $vector] != 3} { + error "wrong type of args: should be $usage" + } + + foreach {flag value} [lrange $args 3 end] { + switch -glob $flag { + scale {set scale $value} + res* {set res $value} + rad* {set radius $value} + fill* {set filled $value} + default {error "unknown option '$flag': should be $usage" } + } + } + + set vechalf [vecscale [expr $scale * 0.5] $vector] + return [list \ + [graphics $mol color yellow]\ + [graphics $mol cylinder [vecsub $center $vechalf]\ + [vecadd $center [vecscale 0.7 $vechalf]] \ + radius $radius resolution $res filled $filled] \ + [graphics $mol color orange]\ + [graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \ + [vecadd $center $vechalf] radius [expr $radius * 2.5] \ + resolution $res]] +} + +proc vmd_draw_spin {args} { + global molid + graphics $molid delete all + set frame [molinfo $molid get frame] + set natoms [molinfo $molid get numatoms] + for {set i 0} {$i < $natoms} {incr i} { + set sel [atomselect top "index $i"] + set coords [lindex [$sel get {x y z}] $molid] + set velocities [lindex [$sel get {vx vy vz}] $molid] + draw vector $coords $velocities + set uvx [lindex [$sel get {vx}] $molid] + set uvy [lindex [$sel get {vy}] $molid] + set uvz [lindex [$sel get {vz}] $molid] + $sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]] + $sel set user $uvy + #draw vector $coords {0.0 uvy 0.0} + } + #pbc box -color 3 +} + +proc enable_trace {} { + global vmd_frame + trace variable vmd_frame([molinfo top]) w vmd_draw_spin + } + +set molid [mol addfile {$1} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] +scale by 0.5 +animate style Loop +enable_trace +EOF +echo "$FILE is ready..." diff --git a/examples/SPIN/vmd_nano_2.vmd b/examples/SPIN/vmd_nano_2.vmd deleted file mode 100644 index 76286c54bc..0000000000 --- a/examples/SPIN/vmd_nano_2.vmd +++ /dev/null @@ -1,79 +0,0 @@ -proc vmd_draw_arrow {mol start end} { - set middle [vecadd $start [vecscale 0.9 [vecsub $end $start]]] - graphics $mol cylinder $start $middle radius 0.05 - graphics $mol cone $middle $end radius 0.01 color 3 -} - -proc vmd_draw_vector {args} { - set usage {"draw vector {x1 y1 z1} {x2 y2 z2} [scale ] [resolution ] [radius ] [filled ]"} - # defaults - set scale 3.0 - set res 5 - set radius 0.1 - set filled yes - - if {[llength $args] < 3} { - error "wrong # args: should be $usage" - } - set mol [lindex $args 0] - set center [lindex $args 1] - set vector [lindex $args 2] - if {[llength $center] != 3 || [llength $vector] != 3} { - error "wrong type of args: should be $usage" - } - - foreach {flag value} [lrange $args 3 end] { - switch -glob $flag { - scale {set scale $value} - res* {set res $value} - rad* {set radius $value} - fill* {set filled $value} - default {error "unknown option '$flag': should be $usage" } - } - } - - set vechalf [vecscale [expr $scale * 0.5] $vector] - return [list \ - [graphics $mol color yellow]\ - [graphics $mol cylinder [vecsub $center $vechalf]\ - [vecadd $center [vecscale 0.7 $vechalf]] \ - radius $radius resolution $res filled $filled] \ - [graphics $mol color orange]\ - [graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \ - [vecadd $center $vechalf] radius [expr $radius * 2.5] \ - resolution $res]] -} - -proc vmd_draw_spin {args} { - global molid - graphics $molid delete all - set frame [molinfo $molid get frame] - set natoms [molinfo $molid get numatoms] - for {set i 0} {$i < $natoms} {incr i} { - set sel [atomselect top "index $i"] -# set sel [atomselect top "index 1200"] - set coords [lindex [$sel get {x y z}] $molid] - set velocities [lindex [$sel get {vx vy vz}] $molid] - draw vector $coords $velocities - set uvx [lindex [$sel get {vx}] $molid] - set uvy [lindex [$sel get {vy}] $molid] - set uvz [lindex [$sel get {vz}] $molid] - $sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]] - $sel set user $uvy - #draw vector $coords {0.0 uvy 0.0} - } - #pbc box -color 3 -} - -proc enable_trace {} { - global vmd_frame - trace variable vmd_frame([molinfo top]) w vmd_draw_spin - } - -set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump_VSRSV.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] -scale by 0.5 -animate style Loop -enable_trace - - - From f1182df776db6d10dfd443cd73a7e01850fe58cf Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 22 Nov 2017 08:47:29 -0700 Subject: [PATCH 049/675] Commit MPI algorithm --- examples/SPIN/in.co_magnetomech | 4 +- src/SPIN/atom_vec_spin.cpp | 3 +- src/SPIN/fix_integration_spin.cpp | 71 ++++++++----------------------- src/SPIN/fix_integration_spin.h | 2 +- src/SPIN/fix_langevin_spin.cpp | 2 - src/SPIN/fix_langevin_spin.h | 8 ++-- 6 files changed, 26 insertions(+), 64 deletions(-) diff --git a/examples/SPIN/in.co_magnetomech b/examples/SPIN/in.co_magnetomech index 8b71e395ab..ee83b31e6f 100644 --- a/examples/SPIN/in.co_magnetomech +++ b/examples/SPIN/in.co_magnetomech @@ -83,7 +83,7 @@ fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -fix 3 all integration/spin serial +fix 3 all integration/spin mpi #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm @@ -115,5 +115,5 @@ dump 1 all custom 500 dump_VSRSV.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps run 10000 -#run 100 +#run 2 diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index ccdaa13829..214d7752b6 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -50,7 +50,8 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) xcol_data = 4; forceclearflag = 1; - atom->mumag_flag = atom->sp_flag = 1; + atom->mumag_flag = 1; + atom->sp_flag = 1; } diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 772e6dcdaf..9066f75aea 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -94,7 +94,8 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : } /* ---------------------------------------------------------------------- */ -FixIntegrationSpin::~FixIntegrationSpin(){ +FixIntegrationSpin::~FixIntegrationSpin() +{ //delete lockpairspin; //delete lockforcespin; memory->destroy(xi); @@ -124,8 +125,6 @@ int FixIntegrationSpin::setmask() void FixIntegrationSpin::init() { - //FixNVE::init(); - // set timesteps dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; @@ -181,11 +180,6 @@ void FixIntegrationSpin::init() } } - // set flags for the different magnetic interactions -// if (magpair_flag) { -// if (lockpairspinexchange->exch_flag == 1) exch_flag = 1; -// } - if (magforce_flag) { if (lockforcespin->zeeman_flag == 1) zeeman_flag = 1; if (lockforcespin->aniso_flag == 1) aniso_flag = 1; @@ -220,11 +214,6 @@ void FixIntegrationSpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; -//#define MAG_TEST -#if defined MAG_TEST - tagint *tag = atom->tag; -#endif - // advance spin-lattice system, vsrsv // update half v for all particles for (int i = 0; i < nlocal; i++) { @@ -234,22 +223,17 @@ void FixIntegrationSpin::initial_integrate(int vflag) v[i][0] += dtfm * f[i][0]; v[i][1] += dtfm * f[i][1]; v[i][2] += dtfm * f[i][2]; - } + } } +#define MPI_TEST + // update half s for all particles if (extra == SPIN) { if (mpi_flag == 1) { // mpi seq. update int nseci; for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal comm->forward_comm(); -#if defined MAG_TEST - if (j == 0) { - //for (int i = 0; i < nlocal; i++) { - printf("L1: test atom i=%d, tagi=%d \n",0,tag[0]); - //} - } -#endif for (int i = 0; i < nlocal; i++) { xi[0] = x[i][0]; xi[1] = x[i][1]; @@ -258,7 +242,10 @@ void FixIntegrationSpin::initial_integrate(int vflag) if (j != nseci) continue; ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); - } + } + #if defined MPI_TEST + MPI_Barrier(world); + #endif } for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); @@ -271,6 +258,9 @@ void FixIntegrationSpin::initial_integrate(int vflag) ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); } + #if defined MPI_TEST + MPI_Barrier(world); + #endif } } else if (mpi_flag == 0) { // serial seq. update comm->forward_comm(); // comm. positions of ghost atoms @@ -302,13 +292,6 @@ void FixIntegrationSpin::initial_integrate(int vflag) int nseci; for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal comm->forward_comm(); -#if defined MAG_TEST - if (j == 0) { - //for (int i = 0; i < nlocal; i++) { - printf("L2 test atom i=%d, tagi=%d \n",0,tag[0]); - //} - } -#endif for (int i = 0; i < nlocal; i++) { xi[0] = x[i][0]; xi[1] = x[i][1]; @@ -318,6 +301,9 @@ void FixIntegrationSpin::initial_integrate(int vflag) ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); } + #if defined MPI_TEST + MPI_Barrier(world); + #endif } for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); @@ -330,6 +316,9 @@ void FixIntegrationSpin::initial_integrate(int vflag) ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); } + #if defined MPI_TEST + MPI_Barrier(world); + #endif } } else if (mpi_flag == 0) { // serial seq. update comm->forward_comm(); // comm. positions of ghost atoms @@ -363,12 +352,6 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) int *type = atom->type; const int newton_pair = force->newton_pair; -//#define SERIAL2 -#if defined SERIAL2 - int num_j; - tagint *tag = atom->tag; -#endif - // add test here if (exch_flag) { inum = lockpairspinexchange->list->inum; @@ -386,13 +369,6 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) int vflag = 0; int pair_compute_flag = 1; -//#define SERIAL1 -#if defined SERIAL1 - if (mpi_flag == 0) { - comm->forward_comm(); - } -#endif - // force computation for spin i i = ilist[ii]; @@ -416,17 +392,6 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) itype = type[ii]; jtype = type[j]; -#if defined SERIAL2 - if (mpi_flag == 0) { - if (j >= nlocal) { - num_j = atom->map(tag[j]); - sp[j][0] = sp[num_j][0]; - sp[j][1] = sp[num_j][1]; - sp[j][2] = sp[num_j][2]; - } - } -#endif - spj[0] = sp[j][0]; spj[1] = sp[j][1]; spj[2] = sp[j][2]; diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_integration_spin.h index 6da740447d..1156cc576f 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -45,7 +45,7 @@ class FixIntegrationSpin : public Fix { protected: int extra, mpi_flag; - // vel., force, and spin timesteps + // velocity, force, and spin timesteps double dtv,dtf,dts; // mag. interaction flags diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 84b2581a3a..1af32ff5cb 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -220,8 +220,6 @@ void FixLangevinSpin::add_temperature(double *fmi) double rz = sigma*(-1.0+2.0*random->uniform()); #endif -// printf("test Gaussian vals: %g \n",rx); - // adding the random field fmi[0] += rx; fmi[1] += ry; diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index 0afcdfbbae..3690037225 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -33,11 +33,9 @@ class FixLangevinSpin : public Fix { void setup(int); // virtual void post_force(int); void post_force_respa(int, int, int); - // add transverse damping and temperature - void add_tdamping(double *, double *); - void add_temperature(double *); - // associated flags - int tdamp_flag, ldamp_flag, temp_flag; + void add_tdamping(double *, double *); // add transverse damping + void add_temperature(double *); // add temperature + int tdamp_flag, ldamp_flag, temp_flag; // damping and temperature flags protected: double *spi, *fmi; From 49f0a7a89a0e67cf67e44eb034b1a086912ac3e0 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 28 Nov 2017 13:52:08 -0700 Subject: [PATCH 050/675] New MPI algorithm (still to be checked) --- examples/SPIN/in.co_magnetomech | 16 ++-- src/SPIN/fix_integration_spin.cpp | 124 ++++++++++++++++++++++++++---- src/SPIN/pair_spin_exchange.cpp | 6 +- 3 files changed, 120 insertions(+), 26 deletions(-) diff --git a/examples/SPIN/in.co_magnetomech b/examples/SPIN/in.co_magnetomech index ee83b31e6f..78f1e5d128 100644 --- a/examples/SPIN/in.co_magnetomech +++ b/examples/SPIN/in.co_magnetomech @@ -8,6 +8,8 @@ dimension 3 boundary p p p #boundary f f f +#newton off + #setting atom_style to spin: atom_style spin @@ -21,7 +23,7 @@ atom_modify map array ########################### lattice fcc 3.54 -region box block 0.0 8.0 0.0 8.0 0.0 8.0 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 create_box 1 box create_atoms 1 box @@ -36,21 +38,19 @@ group single_spin id 10 mass 1 58.93 #Setting spins orientation and moment -#set group all spin/random 31 1.72 -set group all spin 1.72 0.0 0.0 1.0 -set group single_spin spin/random 11 1.72 +set group all spin/random 31 1.72 +#set group all spin 1.72 0.0 0.0 1.0 +#set group single_spin spin/random 11 1.72 velocity all create 200 4928459 rot yes dist gaussian #Magneto-mechanic interactions for bulk fcc Cobalt #pair_style pair/spin/exchange 4.0 #pair_style eam/alloy -#pair_style hybrid/overlay eam/alloy pair/spin/soc 4.0 #pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 6.5 pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co #pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co #pair_style pair/spin 4.0 @@ -114,6 +114,6 @@ thermo_modify format float %20.15g dump 1 all custom 500 dump_VSRSV.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps +#run 100 run 10000 -#run 2 diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 9066f75aea..a790aa7ea6 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -109,6 +109,7 @@ FixIntegrationSpin::~FixIntegrationSpin() memory->destroy(spj); memory->destroy(fmi); memory->destroy(fmj); + } /* ---------------------------------------------------------------------- */ @@ -190,6 +191,7 @@ void FixIntegrationSpin::init() if (locklangevinspin->temp_flag == 1) temp_flag = 1; } + // perform the sectoring if mpi integration if (mpi_flag) sectoring(); @@ -200,7 +202,6 @@ void FixIntegrationSpin::init() void FixIntegrationSpin::initial_integrate(int vflag) { double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; - double cp[3],g[3]; double **x = atom->x; double **v = atom->v; @@ -226,8 +227,72 @@ void FixIntegrationSpin::initial_integrate(int vflag) } } -#define MPI_TEST +//#define SEC +#define LIST +#if defined LIST + //printf("sectors = %d \n",nsectors); + int adv_list[nsectors][nlocal]; + int k[nsectors]; + for (int j = 0; j < nsectors; j++) { + k[j] = 0; + for (int i = 0; i < nlocal; i++) { + adv_list[j][i] = 0; + } + } + int s, p; + + // update half s for all particles + if (extra == SPIN) { + if (mpi_flag == 1) { // mpi seq. update + int nseci; + for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal + comm->forward_comm(); + k[j] = 0; + for (int i = 0; i < nlocal; i++) { + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + nseci = coords2sector(xi); + if (j != nseci) continue; + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + adv_list[j][k[j]] = i; + k[j]++; + } + } + int ntest = 0; + for (int j = 0; j < nsectors; j++) { + ntest += k[j]; + } + if (ntest != nlocal) error->all(FLERR,"error, S(k[j]) != nlocal"); + + for (int j = nsectors-1; j >= 0; j--) { + comm->forward_comm(); + for (int i = k[j]-1; i >= 0; i--) { + p = adv_list[j][i]; + ComputeInteractionsSpin(p); + AdvanceSingleSpin(p,dts,sp,fm); + } + } + } else if (mpi_flag == 0) { // serial seq. update + comm->forward_comm(); // comm. positions of ghost atoms + for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + ComputeInteractionsSpin(nlocal-1); + AdvanceSingleSpin(nlocal-1,2.0*dts,sp,fm); // advance half s for 1 + for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + } else error->all(FLERR,"Illegal fix integration/spin command"); + } +#endif + + +#if defined SEC // update half s for all particles if (extra == SPIN) { if (mpi_flag == 1) { // mpi seq. update @@ -243,9 +308,6 @@ void FixIntegrationSpin::initial_integrate(int vflag) ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); } - #if defined MPI_TEST - MPI_Barrier(world); - #endif } for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); @@ -258,9 +320,6 @@ void FixIntegrationSpin::initial_integrate(int vflag) ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); } - #if defined MPI_TEST - MPI_Barrier(world); - #endif } } else if (mpi_flag == 0) { // serial seq. update comm->forward_comm(); // comm. positions of ghost atoms @@ -276,6 +335,8 @@ void FixIntegrationSpin::initial_integrate(int vflag) } } else error->all(FLERR,"Illegal fix integration/spin command"); } +#endif + // update x for all particles for (int i = 0; i < nlocal; i++) { @@ -286,6 +347,45 @@ void FixIntegrationSpin::initial_integrate(int vflag) } } + +#if defined LIST + // update half s for all particles + if (extra == SPIN) { + if (mpi_flag == 1) { // mpi seq. update + int nseci; + for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal + comm->forward_comm(); + for (int i = 0; i < k[j]; i++) { + p = adv_list[j][i]; + ComputeInteractionsSpin(p); + AdvanceSingleSpin(p,dts,sp,fm); + } + } + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal + comm->forward_comm(); + for (int i = k[j]-1; i >= 0; i--) { + p = adv_list[j][i]; + ComputeInteractionsSpin(p); + AdvanceSingleSpin(p,dts,sp,fm); + } + } + } else if (mpi_flag == 0) { // serial seq. update + comm->forward_comm(); // comm. positions of ghost atoms + for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + ComputeInteractionsSpin(nlocal-1); + AdvanceSingleSpin(nlocal-1,2.0*dts,sp,fm); // advance half s for 1 + for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts,sp,fm); + } + } else error->all(FLERR,"Illegal fix integration/spin command"); + } +#endif + +#if defined SEC // update half s for all particles if (extra == SPIN) { if (mpi_flag == 1) { // mpi seq. update @@ -301,9 +401,6 @@ void FixIntegrationSpin::initial_integrate(int vflag) ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); } - #if defined MPI_TEST - MPI_Barrier(world); - #endif } for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); @@ -316,9 +413,6 @@ void FixIntegrationSpin::initial_integrate(int vflag) ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts,sp,fm); } - #if defined MPI_TEST - MPI_Barrier(world); - #endif } } else if (mpi_flag == 0) { // serial seq. update comm->forward_comm(); // comm. positions of ghost atoms @@ -334,7 +428,7 @@ void FixIntegrationSpin::initial_integrate(int vflag) } } else error->all(FLERR,"Illegal fix integration/spin command"); } - +#endif } diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index fcef08b600..208a82ea30 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -175,9 +175,9 @@ void PairSpinExchange::compute(int eflag, int vflag) f[j][0] += fj[0]; f[j][1] += fj[1]; f[j][2] += fj[2]; - fm[j][0] += fmj[0]; - fm[j][1] += fmj[1]; - fm[j][2] += fmj[2]; + //fm[j][0] += fmj[0]; + //fm[j][1] += fmj[1]; + //fm[j][2] += fmj[2]; } if (eflag) { From f4bb33de4b8595c0777c936fb649f889f6a6e2f5 Mon Sep 17 00:00:00 2001 From: julient31 Date: Fri, 1 Dec 2017 14:53:19 -0700 Subject: [PATCH 051/675] Memory corrections --- examples/SPIN/in.spin.bfo | 109 +++++ examples/SPIN/in.spin.cobalt | 120 ++++++ examples/SPIN/in.spin.kagome | 126 ++++++ src/SPIN/atom_vec_spin.cpp | 4 + src/SPIN/atom_vec_spin.h | 7 +- src/SPIN/compute_spin.cpp | 13 +- src/SPIN/compute_spin.h | 9 - src/SPIN/fix_force_spin.cpp | 41 +- src/SPIN/fix_force_spin.h | 15 +- src/SPIN/fix_integration_spin.cpp | 292 +++++--------- src/SPIN/fix_integration_spin.h | 39 +- src/SPIN/fix_langevin_spin.cpp | 63 +-- src/SPIN/fix_langevin_spin.h | 19 +- src/SPIN/pair_spin.cpp | 637 ------------------------------ src/SPIN/pair_spin.h | 99 ----- src/SPIN/pair_spin_exchange.cpp | 74 ++-- src/SPIN/pair_spin_exchange.h | 21 +- src/SPIN/pair_spin_me.cpp | 57 +-- src/SPIN/pair_spin_me.h | 17 +- src/SPIN/pair_spin_soc_dmi.cpp | 50 +-- src/SPIN/pair_spin_soc_dmi.h | 17 +- src/SPIN/pair_spin_soc_landau.cpp | 93 ++--- src/SPIN/pair_spin_soc_landau.h | 19 +- src/SPIN/pair_spin_soc_neel.cpp | 77 ++-- src/SPIN/pair_spin_soc_neel.h | 19 +- src/atom.cpp | 9 +- src/atom.h | 1 + 27 files changed, 709 insertions(+), 1338 deletions(-) create mode 100644 examples/SPIN/in.spin.bfo create mode 100644 examples/SPIN/in.spin.cobalt create mode 100644 examples/SPIN/in.spin.kagome delete mode 100755 src/SPIN/pair_spin.cpp delete mode 100755 src/SPIN/pair_spin.h diff --git a/examples/SPIN/in.spin.bfo b/examples/SPIN/in.spin.bfo new file mode 100644 index 0000000000..aee3454765 --- /dev/null +++ b/examples/SPIN/in.spin.bfo @@ -0,0 +1,109 @@ +################### +#######Init######## +################### + +clear +#setting units to metal (Ang, picosecs, eV, ...): +units metal + +#setting dimension of the system (N=2 or 3): +dimension 3 + +#setting boundary conditions. (p for periodic, f for fixed, ...) +boundary p p f + +#setting atom_style to spin: +atom_style spin + +#Define sort for paramagnetic simulations (if no pair interaction) +#atom_modify sort 1000 4.0 + +#why? +atom_modify map array + +#newton off for pair spin in SEQNEI +#newton off off + +########################### +#######Create atoms######## +########################### + +#Lattice constant of sc Iron atoms of BFO +lattice sc 3.96 + +#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen +#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) +region box block 0.0 17.0 0.0 17.0 0.0 5.0 + +#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. +create_box 1 box + +#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... +#Entries: atom type, +create_atoms 1 box + +#Replicating NxNxN the entire set of atoms +#replicate 1 1 1 + + +####################### +#######Settings######## +####################### + +#Setting one or more properties of one or more atoms. +#Setting mass +mass 1 1.0 +#set group all mass 1.0 +#Setting spins orientation and moment +set group all spin/random 11 2.50 +#set group all spin 2.50 1.0 0.0 0.0 + +#Magnetic exchange interaction coefficient for bulk fcc Cobalt +pair_style pair/spin 5.7 +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +pair_coeff * * exchange 5.7 -0.01575 0.0 1.965 +#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) +#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 +#pair_coeff * * me 4.0 0.000109 1.0 1.0 1.0 +#Mex10 +pair_coeff * * me 4.0 0.00109 1.0 1.0 1.0 + +#Define a skin distance, update neigh list every +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 0.0 bin +neigh_modify every 1 check no delay 0 + +#Magnetic field fix +#Type | Intensity (T or eV) | Direction +#fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 +fix 1 all force/spin anisotropy 0.0000035 0.0 0.0 1.0 + +#Fix Langevin spins (merging damping and temperature) +#Temp | Alpha_trans | Alpha_long | Seed +#fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 0.0 0.1 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all nve/spin mpi + +#compute real time, total magnetization, magnetic energy, and spin temperature +#Iteration | Time | Mx | My | Mz | |M| | Em | Tm +compute mag all compute/spin +fix outmag all ave/time 1 1 500 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_BFO.dat format %20.16g + +#Setting the timestep for the simulation (in ps) +timestep 0.0001 + +################## +#######run######## +################## + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 5000 dump_spin_BFO.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +run 30000 +#run 1 + diff --git a/examples/SPIN/in.spin.cobalt b/examples/SPIN/in.spin.cobalt new file mode 100644 index 0000000000..8147aad5fc --- /dev/null +++ b/examples/SPIN/in.spin.cobalt @@ -0,0 +1,120 @@ +################### +#######Init######## +################### + +clear +units metal +dimension 3 +boundary p p p +#boundary f f f + +#newton off + +#setting atom_style to spin: +atom_style spin + +#Define sort for paramagnetic simulations (if no pair interaction) +#atom_modify sort 1000 4.0 + +atom_modify map array + +########################### +#######Create atoms######## +########################### + +lattice fcc 3.54 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +create_atoms 1 box + +####################### +#######Settings######## +####################### + +#isolating 1 atom into a group +group single_spin id 10 + +#Setting one or more properties of one or more atoms. +mass 1 58.93 + +#Setting spins orientation and moment +set group all spin/random 31 1.72 +#set group all spin 1.72 0.0 0.0 1.0 +#set group single_spin spin/random 11 1.72 + +velocity all create 200 4928459 rot yes dist gaussian + +#Magneto-mechanic interactions for bulk fcc Cobalt +#pair_style pair/spin/exchange 4.0 +#pair_style eam/alloy +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 + +pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co +#pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co + +#pair_style pair/spin 4.0 +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +#pair_coeff * * exchange 4.0 -0.0446928 0.003496 1.4885 +#pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 +pair_coeff * * pair/spin/exchange exchange 4.0 -0.0446928 0.003496 1.4885 + +#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) +#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 +#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 + +#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) +#pair_coeff * * pair/spin/soc/neel neel 4.0 -0.003330282 0.864159 2.13731 + +#Define a skin distance, update neigh list every +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 + +#Magnetic field fix +#Type | Intensity (T or eV) | Direction +fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 + +#Fix Langevin spins (merging damping and temperature) +#Temp | Alpha_trans | Alpha_long | Seed +#fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all integration/spin mpi + +#compute real time, total magnetization, magnetic energy, and spin temperature +#Iteration | Time | Mx | My | Mz | |M| | Em | Tm + +#Setting the timestep for the simulation (in ps) +timestep 0.0001 + +################## +#######run######## +################## + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[4] +variable magnorm equal c_out_mag[5] +variable emag equal c_out_mag[6] +variable tmag equal c_out_mag[7] +variable mag_force equal f_1 + +thermo 10 +#thermo_style custom step time v_emag c_out_pe c_out_ke c_out_temp v_mag_force v_magnorm v_tmag etotal +thermo_style custom step time v_tmag v_magz v_magnorm etotal +thermo_modify format float %20.15g + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 500 dump_VSRSV.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +#run 100 +run 10000 + diff --git a/examples/SPIN/in.spin.kagome b/examples/SPIN/in.spin.kagome new file mode 100644 index 0000000000..c51c35ff73 --- /dev/null +++ b/examples/SPIN/in.spin.kagome @@ -0,0 +1,126 @@ +################### +#######Init######## +################### + +clear +#setting units to metal (Ang, picosecs, eV, ...): +units metal + +#setting dimension of the system (N=2 or 3): +dimension 3 + +#setting boundary conditions. (p for periodic, f for fixed, ...) +boundary p p p +#boundary f f f + +#setting atom_style to spin: +atom_style spin + +#Define sort for paramagnetic simulations (if no pair interaction) +#atom_modify sort 1000 4.0 + +#why? +atom_modify map array + +#newton off for pair spin in SEQNEI +#newton off off + +########################### +#######Create atoms######## +########################### + +#Lattice constant of fcc Cobalt +lattice fcc 3.54 +#lattice sc 2.50 + +#Test Kagome +#variable a equal sqrt(3.0)/8.0 +#variable b equal 3.0*sqrt(3.0)/8.0 +#variable c equal sqrt(3.0)/4.0 + +#lattice custom 2.5 a1 1.0 0.0 0.0 & +# a2 0.0 1.0 0.0 & +# a3 0.0 0.0 1.0 & +# basis 0.0 $a 0.0 & +# basis 0.25 $a 0.0 & +# basis 0.375 0.0 0.0 & +# basis 0.25 $b 0.0 & +# basis 0.5 $b 0.0 & +# basis 0.625 $c 0.0 + +#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen +#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) +region box block 0.0 5.0 0.0 5.0 0.0 5.0 + +#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. +create_box 1 box + +#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... +#Entries: atom type, +create_atoms 1 box + +#Replicating NxNxN the entire set of atoms +#replicate 1 1 1 + + +####################### +#######Settings######## +####################### + +#Setting one or more properties of one or more atoms. +#Setting mass +mass 1 1.0 +#set group all mass 1.0 +#Setting spins orientation and moment +#set group all spin/random 11 1.72 +set group all spin 1.72 1.0 0.0 0.0 + +#Magnetic exchange interaction coefficient for bulk fcc Cobalt +pair_style pair/spin 4.0 +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) +#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 +#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 + +#Define a skin distance, update neigh list every +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 0.0 bin +neigh_modify every 1 check no delay 0 + +#Magnetic field fix +#Type | Intensity (T or eV) | Direction +fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 + +#Fix Langevin spins (merging damping and temperature) +#Temp | Alpha_trans | Alpha_long | Seed +#fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 1.0 0.1 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all nve/spin mpi + +#compute real time, total magnetization, magnetic energy, and spin temperature +#Iteration | Time | Mx | My | Mz | |M| | Em | Tm +compute mag all compute/spin +fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g + +#Setting the timestep for the simulation (in ps) +timestep 0.0001 + +################## +#######run######## +################## + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +run 2000 +#run 1 + diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 214d7752b6..8edf8211ca 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -74,11 +74,15 @@ void AtomVecSpin::grow(int n) type = memory->grow(atom->type,nmax,"atom:type"); mask = memory->grow(atom->mask,nmax,"atom:mask"); image = memory->grow(atom->image,nmax,"atom:image"); + // allocating mech. quantities + x = memory->grow(atom->x,nmax,3,"atom:x"); v = memory->grow(atom->v,nmax,3,"atom:v"); f = memory->grow(atom->f,nmax*comm->nthreads,3,"atom:f"); + // allocating mag. quantities + mumag = memory->grow(atom->mumag,nmax,"atom:mumag"); sp = memory->grow(atom->sp,nmax,4,"atom:sp"); fm = memory->grow(atom->fm,nmax*comm->nthreads,3,"atom:fm"); diff --git a/src/SPIN/atom_vec_spin.h b/src/SPIN/atom_vec_spin.h index aedc3efb3e..c0f245ba27 100644 --- a/src/SPIN/atom_vec_spin.h +++ b/src/SPIN/atom_vec_spin.h @@ -58,7 +58,8 @@ class AtomVecSpin : public AtomVec { int write_data_hybrid(FILE *, double *); bigint memory_usage(); - // clear mag. and mech. forces + // clear magnetic and mechanic forces + void force_clear(int, size_t); @@ -66,8 +67,8 @@ class AtomVecSpin : public AtomVec { tagint *tag; int *type,*mask; imageint *image; - double **x,**v,**f; // lattice quantities - double *mumag,**sp, **fm; // spin quantities + double **x,**v,**f; // lattice quantities + double *mumag,**sp,**fm; // spin quantities }; diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index ce60cf373f..a7069fa808 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -36,7 +36,7 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), mag(NULL) + Compute(lmp, narg, arg) { if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); @@ -54,7 +54,6 @@ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : ComputeSpin::~ComputeSpin() { - memory->destroy(mag); } /* ---------------------------------------------------------------------- */ @@ -70,6 +69,12 @@ void ComputeSpin::init() void ComputeSpin::compute_vector() { int i, index; + int countsp, countsptot; + double mag[3], magtot[3]; + double magenergy, magenergytot; + double tempnum, tempnumtot; + double tempdenom, tempdenomtot; + double spintemperature; invoked_vector = update->ntimestep; @@ -94,6 +99,7 @@ void ComputeSpin::compute_vector() // compute total magnetization and magnetic energy // compute spin temperature (Nurdin et al., Phys. Rev. E 61, 2000) + for (i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (atom->mumag_flag && atom->sp_flag) { @@ -144,9 +150,6 @@ void ComputeSpin::compute_vector() void ComputeSpin::allocate() { - memory->destroy(mag); - memory->create(mag,4,"compute/spin:mag"); - memory->create(magtot,5,"compute/spin:mag"); memory->create(vector,7,"compute/spin:vector"); } diff --git a/src/SPIN/compute_spin.h b/src/SPIN/compute_spin.h index a20b956b01..59f0ce2876 100644 --- a/src/SPIN/compute_spin.h +++ b/src/SPIN/compute_spin.h @@ -32,16 +32,7 @@ class ComputeSpin : public Compute { void compute_vector(); private: - double *mag; - double *magtot; - double magenergy; - double magenergytot; - double tempnum,tempnumtot; - double tempdenom,tempdenomtot; - double spintemperature; double kb,hbar; - int countsp; - int countsptot; int usecenter; void allocate(); diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index b0e38989c9..921a9964bb 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -48,7 +48,7 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a if (narg < 7) error->all(FLERR,"Illegal force/spin command"); // 7 arguments for a force/spin fix command: - //(fix ID group force/spin magnitude (T or eV) style (zeeman or anisotropy) direction (3 cartesian coordinates) + // fix ID group force/spin magnitude (T or eV) style (zeeman or anisotropy) direction (3 cartesian coordinates) // magnetic interactions coded for cartesian coordinates @@ -103,8 +103,6 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a FixForceSpin::~FixForceSpin() { - memory->destroy(spi); - memory->destroy(fmi); delete [] magstr; } @@ -124,19 +122,18 @@ int FixForceSpin::setmask() void FixForceSpin::init() { - const double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) - const double mub = 5.78901e-5; // in eV/T - const double gyro = mub/hbar; // in rad.THz/T + const double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) + const double mub = 5.78901e-5; // in eV/T + const double gyro = mub/hbar; // in rad.THz/T - H_field *= gyro; // in rad.THz - Ka /= hbar; // in rad.THz + H_field *= gyro; // in rad.THz + Ka /= hbar; // in rad.THz if (strstr(update->integrate_style,"respa")) { ilevel_respa = ((Respa *) update->integrate)->nlevels-1; if (respa_level >= 0) ilevel_respa = MIN(respa_level,ilevel_respa); } - // check variables if (magstr) { magvar = input->variable->find(magstr); if (magvar < 0) @@ -149,11 +146,9 @@ void FixForceSpin::init() if (magfieldstyle != CONSTANT) varflag = EQUAL; // set magnetic field components + if (varflag == CONSTANT) set_magneticforce(); - memory->create(spi,3,"forcespin:spi"); - memory->create(fmi,3,"forcespin:fmi"); - } /* ---------------------------------------------------------------------- */ @@ -174,15 +169,17 @@ void FixForceSpin::setup(int vflag) void FixForceSpin::post_force(int vflag) { // update gravity due to variables + if (varflag != CONSTANT) { modify->clearstep_compute(); modify->addstep_compute(update->ntimestep + 1); - set_magneticforce(); // update mag. field if time-dep. + set_magneticforce(); // update mag. field if time-dep. } double **sp = atom->sp; double *mumag = atom->mumag; - double **fm = atom->fm; + double **fm = atom->fm; + double spi[3], fmi[3]; const int nlocal = atom->nlocal; double scalar; @@ -214,17 +211,18 @@ void FixForceSpin::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixForceSpin::compute_zeeman(int i, double *fmi) + +void FixForceSpin::compute_zeeman(int i, double fmi[3]) { double *mumag = atom->mumag; - fmi[0] += mumag[i]*hx; - fmi[1] += mumag[i]*hy; - fmi[2] += mumag[i]*hz; + fmi[0] -= mumag[i]*hx; + fmi[1] -= mumag[i]*hy; + fmi[2] -= mumag[i]*hz; } /* ---------------------------------------------------------------------- */ -void FixForceSpin::compute_anisotropy(int i, double * spi, double *fmi) +void FixForceSpin::compute_anisotropy(int i, double spi[3], double fmi[3]) { double scalar = nax*spi[0] + nay*spi[1] + naz*spi[2]; fmi[0] += scalar*Kax; @@ -240,6 +238,7 @@ void FixForceSpin::post_force_respa(int vflag, int ilevel, int iloop) } /* ---------------------------------------------------------------------- */ + void FixForceSpin::set_magneticforce() { if (style == ZEEMAN) { @@ -260,8 +259,10 @@ void FixForceSpin::set_magneticforce() double FixForceSpin::compute_scalar() { - double emag_all=0.0; + double emag_all = 0.0; + // only sum across procs one time + if (eflag == 0) { MPI_Allreduce(&emag,&emag_all,1,MPI_DOUBLE,MPI_SUM,world); eflag = 1; diff --git a/src/SPIN/fix_force_spin.h b/src/SPIN/fix_force_spin.h index 7da3ece415..1f2b36d8e7 100644 --- a/src/SPIN/fix_force_spin.h +++ b/src/SPIN/fix_force_spin.h @@ -38,11 +38,11 @@ class FixForceSpin : public Fix { double compute_scalar(); int zeeman_flag, aniso_flag; - void compute_zeeman(int, double *); - void compute_anisotropy(int, double *, double *); + void compute_zeeman(int, double fmi[3]); + void compute_anisotropy(int, double spi[3], double fmi[3]); protected: - int style; // style of the magnetic force + int style; // style of the magnetic force double degree2rad; double hbar; @@ -57,18 +57,17 @@ class FixForceSpin : public Fix { char *magstr; // zeeman field intensity and direction + double H_field; double nhx, nhy, nhz; - double hx, hy, hz; // temp. force variables + double hx, hy, hz; // temp. force variables // magnetic anisotropy intensity and direction + double Ka; double nax, nay, naz; - double Kax, Kay, Kaz; // temp. force variables + double Kax, Kay, Kaz; // temp. force variables - // temp. spin variables - double *spi, *fmi; - void set_magneticforce(); }; diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index a790aa7ea6..4e7bc961c4 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -55,7 +55,10 @@ enum{NONE,SPIN}; /* ---------------------------------------------------------------------- */ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg) + Fix(lmp, narg, arg), + rsec(NULL), k(NULL), adv_list(NULL), + lockpairspinexchange(NULL), lockpairspinsocneel(NULL), lockforcespin(NULL), + locklangevinspin(NULL) { if (narg != 4) error->all(FLERR,"Illegal fix integration/spin command"); @@ -78,37 +81,23 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : // error checks if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); + magpair_flag = 0; - soc_flag = 0; - exch_flag = 0; + exch_flag = soc_flag = 0; magforce_flag = 0; zeeman_flag = aniso_flag = 0; maglangevin_flag = 0; tdamp_flag = temp_flag = 0; - lockpairspin = NULL; - lockpairspinexchange = NULL; - lockpairspinsocneel = NULL; - lockforcespin = NULL; - locklangevinspin = NULL; } /* ---------------------------------------------------------------------- */ FixIntegrationSpin::~FixIntegrationSpin() { - //delete lockpairspin; - //delete lockforcespin; - memory->destroy(xi); - - memory->destroy(sec); + memory->destroy(k); + memory->destroy(adv_list); + memory->destroy(rsec); - memory->destroy(seci); - - memory->destroy(rij); - memory->destroy(spi); - memory->destroy(spj); - memory->destroy(fmi); - memory->destroy(fmj); } @@ -127,21 +116,12 @@ int FixIntegrationSpin::setmask() void FixIntegrationSpin::init() { // set timesteps + dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; dts = 0.25 * update->dt; - memory->create(xi,3,"integrations:xi"); - memory->create(sec,3,"integrations:sec"); - memory->create(rsec,3,"integrations:rsec"); - memory->create(seci,3,"integrations:seci"); - - memory->create(rij,3,"integrations:xi"); - memory->create(spi,3,"integrations:spi"); - memory->create(spj,3,"integrations:spj"); - memory->create(fmi,3,"integrations:fmi"); - memory->create(fmj,3,"integrations:fmj"); - + // set necessary pointers to interaction classes if (strstr(force->pair_style,"pair/spin/exchange")) { exch_flag = 1; @@ -190,11 +170,19 @@ void FixIntegrationSpin::init() if (locklangevinspin->tdamp_flag == 1) tdamp_flag = 1; if (locklangevinspin->temp_flag == 1) temp_flag = 1; } + - + memory->create(rsec,3,"integration/spin:rsec"); + // perform the sectoring if mpi integration + if (mpi_flag) sectoring(); + // grow tables for k and adv_list + + k = memory->grow(k,nsectors,"integration/spin:k"); + adv_list = memory->grow(adv_list,nsectors,atom->nmax,"integration/spin:adv_list"); + } /* ---------------------------------------------------------------------- */ @@ -202,6 +190,8 @@ void FixIntegrationSpin::init() void FixIntegrationSpin::initial_integrate(int vflag) { double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; + double xi[3]; + double spi[3], fmi[3]; double **x = atom->x; double **v = atom->v; @@ -215,8 +205,8 @@ void FixIntegrationSpin::initial_integrate(int vflag) int *type = atom->type; int *mask = atom->mask; - // advance spin-lattice system, vsrsv - // update half v for all particles + // update half v for all atoms + for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (rmass) dtfm = dtf / rmass[i]; @@ -227,26 +217,24 @@ void FixIntegrationSpin::initial_integrate(int vflag) } } -//#define SEC -#define LIST + // grow/shrink adv_list table to nlocal + // init. tables for mpi-sector storage -#if defined LIST - //printf("sectors = %d \n",nsectors); - int adv_list[nsectors][nlocal]; - int k[nsectors]; + int p; + adv_list = memory->grow(adv_list,nsectors,nlocal,"integration/spin:adv_list"); for (int j = 0; j < nsectors; j++) { k[j] = 0; for (int i = 0; i < nlocal; i++) { adv_list[j][i] = 0; } } - int s, p; - // update half s for all particles + // update half s for all atoms + if (extra == SPIN) { - if (mpi_flag == 1) { // mpi seq. update + if (mpi_flag) { // mpi seq. update int nseci; - for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal + for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal comm->forward_comm(); k[j] = 0; for (int i = 0; i < nlocal; i++) { @@ -256,89 +244,37 @@ void FixIntegrationSpin::initial_integrate(int vflag) nseci = coords2sector(xi); if (j != nseci) continue; ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); + AdvanceSingleSpin(i,dts); adv_list[j][k[j]] = i; k[j]++; } } - int ntest = 0; - for (int j = 0; j < nsectors; j++) { - ntest += k[j]; - } - if (ntest != nlocal) error->all(FLERR,"error, S(k[j]) != nlocal"); - - for (int j = nsectors-1; j >= 0; j--) { + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); for (int i = k[j]-1; i >= 0; i--) { p = adv_list[j][i]; ComputeInteractionsSpin(p); - AdvanceSingleSpin(p,dts,sp,fm); + AdvanceSingleSpin(p,dts); } } - } else if (mpi_flag == 0) { // serial seq. update - comm->forward_comm(); // comm. positions of ghost atoms - for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal + } else if (mpi_flag == 0) { // serial seq. update + comm->forward_comm(); // comm. positions of ghost atoms + for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); + AdvanceSingleSpin(i,dts); } ComputeInteractionsSpin(nlocal-1); - AdvanceSingleSpin(nlocal-1,2.0*dts,sp,fm); // advance half s for 1 - for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal + AdvanceSingleSpin(nlocal-1,2.0*dts); // advance half s for 1 + for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); + AdvanceSingleSpin(i,dts); } } else error->all(FLERR,"Illegal fix integration/spin command"); } -#endif - - -#if defined SEC - // update half s for all particles - if (extra == SPIN) { - if (mpi_flag == 1) { // mpi seq. update - int nseci; - for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal - comm->forward_comm(); - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } - for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal - comm->forward_comm(); - for (int i = nlocal-1; i >= 0; i--) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } - } else if (mpi_flag == 0) { // serial seq. update - comm->forward_comm(); // comm. positions of ghost atoms - for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - ComputeInteractionsSpin(nlocal-1); - AdvanceSingleSpin(nlocal-1,2.0*dts,sp,fm); // advance half s for 1 - for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } else error->all(FLERR,"Illegal fix integration/spin command"); - } -#endif // update x for all particles + for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { x[i][0] += dtv * v[i][0]; @@ -348,87 +284,42 @@ void FixIntegrationSpin::initial_integrate(int vflag) } -#if defined LIST - // update half s for all particles + // update half s for all particles + if (extra == SPIN) { - if (mpi_flag == 1) { // mpi seq. update + if (mpi_flag) { // mpi seq. update int nseci; - for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal + for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal comm->forward_comm(); for (int i = 0; i < k[j]; i++) { p = adv_list[j][i]; ComputeInteractionsSpin(p); - AdvanceSingleSpin(p,dts,sp,fm); + AdvanceSingleSpin(p,dts); } } - for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); for (int i = k[j]-1; i >= 0; i--) { p = adv_list[j][i]; ComputeInteractionsSpin(p); - AdvanceSingleSpin(p,dts,sp,fm); + AdvanceSingleSpin(p,dts); } } - } else if (mpi_flag == 0) { // serial seq. update - comm->forward_comm(); // comm. positions of ghost atoms - for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal + } else if (mpi_flag == 0) { // serial seq. update + comm->forward_comm(); // comm. positions of ghost atoms + for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); + AdvanceSingleSpin(i,dts); } ComputeInteractionsSpin(nlocal-1); - AdvanceSingleSpin(nlocal-1,2.0*dts,sp,fm); // advance half s for 1 - for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal + AdvanceSingleSpin(nlocal-1,2.0*dts); // advance half s for 1 + for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); + AdvanceSingleSpin(i,dts); } } else error->all(FLERR,"Illegal fix integration/spin command"); } -#endif -#if defined SEC - // update half s for all particles - if (extra == SPIN) { - if (mpi_flag == 1) { // mpi seq. update - int nseci; - for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal - comm->forward_comm(); - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } - for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal - comm->forward_comm(); - for (int i = nlocal-1; i >= 0; i--) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } - } else if (mpi_flag == 0) { // serial seq. update - comm->forward_comm(); // comm. positions of ghost atoms - for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - ComputeInteractionsSpin(nlocal-1); - AdvanceSingleSpin(nlocal-1,2.0*dts,sp,fm); // advance half s for 1 - for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts,sp,fm); - } - } else error->all(FLERR,"Illegal fix integration/spin command"); - } -#endif } @@ -436,8 +327,10 @@ void FixIntegrationSpin::initial_integrate(int vflag) void FixIntegrationSpin::ComputeInteractionsSpin(int ii) { const int nlocal = atom->nlocal; + double xi[3], rij[3]; + double spi[3], spj[3]; + double fmi[3], fmj[3]; - // force compute quantities int i,j,jj,inum,jnum,itype,jtype; int *ilist,*jlist,*numneigh,**firstneigh; double **x = atom->x; @@ -455,7 +348,6 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) } double rsq, rd; - double delx, dely, delz; double temp_cut, cut_2, inorm; temp_cut = cut_2 = inorm = 0.0; @@ -464,6 +356,7 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) int pair_compute_flag = 1; // force computation for spin i + i = ilist[ii]; spi[0] = sp[i][0]; @@ -478,7 +371,8 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) jlist = firstneigh[i]; jnum = numneigh[i]; - // pair interaction + // loop on neighbors for pair interactions + for (int jj = 0; jj < jnum; jj++) { j = jlist[jj]; @@ -490,19 +384,19 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - delx = x[j][0] - xi[0]; - dely = x[j][1] - xi[1]; - delz = x[j][2] - xi[2]; - rsq = delx*delx + dely*dely + delz*delz; - inorm = 1.0/sqrt(rsq); - rij[0] = delx*inorm; - rij[1] = dely*inorm; - rij[2] = delz*inorm; + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + inorm = 1.0/sqrt(rsq); + rij[0] *= inorm; + rij[1] *= inorm; + rij[2] *= inorm; temp_cut = 0.0; - if (exch_flag) { // exchange + if (exch_flag) { // exchange temp_cut = lockpairspinexchange->cut_spin_exchange[itype][jtype]; cut_2 = temp_cut*temp_cut; if (rsq <= cut_2) { @@ -510,38 +404,36 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) } } - if (soc_flag) { // soc + if (soc_flag) { // soc temp_cut = lockpairspinsocneel->cut_soc_neel[itype][jtype]; cut_2 = temp_cut*temp_cut; if (rsq <= cut_2) { - lockpairspinsocneel->compute_soc_neel(i,j,rsq,rij,fmi,fmj,spi,spj); + //lockpairspinsocneel->compute_soc_neel(i,j,rsq,rij,fmi,fmj,spi,spj); } } } - if (magforce_flag) { // mag. forces - if (zeeman_flag) { // zeeman + if (magforce_flag) { // mag. forces + if (zeeman_flag) { // zeeman lockforcespin->compute_zeeman(i,fmi); } - if (aniso_flag) { // aniso - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; + if (aniso_flag) { // aniso lockforcespin->compute_anisotropy(i,spi,fmi); } } - if (maglangevin_flag) { // mag. langevin - if (tdamp_flag) { // trans. damping + if (maglangevin_flag) { // mag. langevin + if (tdamp_flag) { // transverse damping locklangevinspin->add_tdamping(spi,fmi); } - if (temp_flag) { // temp. + if (temp_flag) { // spin temperature locklangevinspin->add_temperature(fmi); } } - // replace the mag. force i by its new value + // replace the magnethic force i by its new value + fm[i][0] = fmi[0]; fm[i][1] = fmi[1]; fm[i][2] = fmi[2]; @@ -551,6 +443,7 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) /* ---------------------------------------------------------------------- */ void FixIntegrationSpin::sectoring() { + int sec[3]; double sublo[3],subhi[3]; double* sublotmp = domain->sublo; double* subhitmp = domain->subhi; @@ -591,18 +484,20 @@ void FixIntegrationSpin::sectoring() } /* ---------------------------------------------------------------------- */ -int FixIntegrationSpin::coords2sector(double *xi) + +int FixIntegrationSpin::coords2sector(double x[3]) { int nseci; + int seci[3]; double sublo[3]; double* sublotmp = domain->sublo; for (int dim = 0 ; dim<3 ; dim++) { sublo[dim]=sublotmp[dim]; } - double rix = (xi[0] - sublo[0])/rsec[0]; - double riy = (xi[1] - sublo[1])/rsec[1]; - double riz = (xi[2] - sublo[2])/rsec[2]; + double rix = (x[0] - sublo[0])/rsec[0]; + double riy = (x[1] - sublo[1])/rsec[1]; + double riz = (x[2] - sublo[2])/rsec[2]; seci[0] = static_cast(rix); seci[1] = static_cast(riy); @@ -616,10 +511,12 @@ int FixIntegrationSpin::coords2sector(double *xi) /* ---------------------------------------------------------------------- */ -void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl, double **sp, double **fm) +void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl) { int j=0; int *sametag = atom->sametag; + double **sp = atom->sp; + double **fm = atom->fm; double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy,dts2; double cp[3],g[3]; @@ -651,13 +548,15 @@ void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl, double **sp, doubl sp[i][2] = g[2]; // renormalization (may not be necessary) + msq = g[0]*g[0] + g[1]*g[1] + g[2]*g[2]; scale = 1.0/sqrt(msq); sp[i][0] *= scale; sp[i][1] *= scale; sp[i][2] *= scale; - // comm. sp[i] to atoms with same tag (serial algo) + // comm. sp[i] to atoms with same tag (for serial algo) + if (mpi_flag == 0) { if (sametag[i] >= 0) { j = sametag[i]; @@ -692,6 +591,7 @@ void FixIntegrationSpin::final_integrate() int *mask = atom->mask; // update half v for all particles + for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (rmass) dtfm = dtf / rmass[i]; diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_integration_spin.h index 1156cc576f..dfeef599a3 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -34,46 +34,35 @@ class FixIntegrationSpin : public Fix { virtual void initial_integrate(int); virtual void final_integrate(); - // compute and advance single spin - void ComputeInteractionsSpin(int); - void AdvanceSingleSpin(int, double, double **, double **); + void ComputeInteractionsSpin(int); // compute and advance single spin functions + void AdvanceSingleSpin(int, double); - // sectoring operations - void sectoring(); - int coords2sector(double *); + void sectoring(); // sectoring operation functions + int coords2sector(double x[3]); protected: int extra, mpi_flag; - // velocity, force, and spin timesteps - double dtv,dtf,dts; + double dtv,dtf,dts; // velocity, force, and spin timesteps - // mag. interaction flags - int magpair_flag; - int soc_flag; - int exch_flag; - int magforce_flag; + int magpair_flag; // magnetic pair flags + int soc_flag, exch_flag; + int magforce_flag; // magnetic force flags int zeeman_flag, aniso_flag; - int maglangevin_flag; + int maglangevin_flag; // magnetic langevin flags int tdamp_flag, temp_flag; - // pointers to interaction classes - class PairHybrid *lockhybrid; - class PairSpin *lockpairspin; + // pointers to magnetic interaction classes + + class PairHybrid *lockhybrid; class PairSpinExchange *lockpairspinexchange; class PairSpinSocNeel *lockpairspinsocneel; class FixForceSpin *lockforcespin; class FixLangevinSpin *locklangevinspin; - // temporary variables - double *xi, *rij; - double *spi, *spj; - double *fmi, *fmj; - - // sectoring variables - int nsectors; - int *sec, *seci; + int nsectors; // sectoring variables double *rsec; + int *k, **adv_list; }; diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 1af32ff5cb..b017e20ae3 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -89,7 +89,7 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : } // initialize Marsaglia RNG with processor-unique seed - //random = new RanMars(lmp,seed + comm->me); + random = new RanPark(lmp,seed + comm->me); } @@ -135,8 +135,8 @@ void FixLangevinSpin::init() gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); dts = update->dt; - double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) - double kb = force->boltz; // eV/K + double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) + double kb = force->boltz; // eV/K D = (MY_2PI*alpha_t*gil_factor*kb*temp); D /= (hbar*dts); sigma = sqrt(2.0*D); @@ -156,76 +156,37 @@ void FixLangevinSpin::setup(int vflag) } /* ---------------------------------------------------------------------- */ -/* -void FixLangevinSpin::post_force(int vflag) -{ - double **sp = atom->sp; - double **fm = atom->fm; - int *mask = atom->mask; - const int nlocal = atom->nlocal; - - // add the damping to the effective field of each spin - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - fmi[0] = fm[i][0]; - fmi[1] = fm[i][1]; - fmi[2] = fm[i][2]; - if (tdamp_flag) { - add_tdamping(spi,fmi); - } - - if (temp_flag) { - add_temperature(fmi); - } - - fm[i][0] = fmi[0]; - fm[i][1] = fmi[1]; - fm[i][2] = fmi[2]; - } - } - -} -*/ - -/* ---------------------------------------------------------------------- */ -void FixLangevinSpin::add_tdamping(double *spi, double *fmi) +void FixLangevinSpin::add_tdamping(double spi[3], double fmi[3]) { double cpx = fmi[1]*spi[2] - fmi[2]*spi[1]; double cpy = fmi[2]*spi[0] - fmi[0]*spi[2]; double cpz = fmi[0]*spi[1] - fmi[1]*spi[0]; - // taking away the transverse damping + // adding the transverse damping + fmi[0] -= alpha_t*cpx; fmi[1] -= alpha_t*cpy; fmi[2] -= alpha_t*cpz; } /* ---------------------------------------------------------------------- */ -void FixLangevinSpin::add_temperature(double *fmi) + +void FixLangevinSpin::add_temperature(double fmi[3]) { -//#define GAUSSIAN_R -#if defined GAUSSIAN_R - // drawing gaussian random dist - double rx = sigma*random->gaussian(); - double ry = sigma*random->gaussian(); - double rz = sigma*random->gaussian(); -#else + double rx = sigma*(-1.0+2.0*random->uniform()); double ry = sigma*(-1.0+2.0*random->uniform()); double rz = sigma*(-1.0+2.0*random->uniform()); -#endif // adding the random field + fmi[0] += rx; fmi[1] += ry; fmi[2] += rz; - // adding Gilbert's prefactor + // adding gilbert's prefactor + fmi[0] *= gil_factor; fmi[1] *= gil_factor; fmi[2] *= gil_factor; diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index 3690037225..d95f5c08c7 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -33,25 +33,22 @@ class FixLangevinSpin : public Fix { void setup(int); // virtual void post_force(int); void post_force_respa(int, int, int); - void add_tdamping(double *, double *); // add transverse damping - void add_temperature(double *); // add temperature - int tdamp_flag, ldamp_flag, temp_flag; // damping and temperature flags + void add_tdamping(double spi[3], double fmi[3]); // add transverse damping + void add_temperature(double fmi[3]); // add temperature + int tdamp_flag, ldamp_flag, temp_flag; // damping and temperature flags protected: double *spi, *fmi; - double alpha_t; // mag. transverse damping coeff. - double alpha_l; // mag. longitudinal damping coeff. - double dts; // timestep - double temp; // spin bath temperature - double D,sigma; // bath intensity var. - - double gil_factor; // Gilbert's prefactor + double alpha_t, alpha_l; // transverse and longitudunal damping coeff. + double dts; // magnetic timestep + double temp; // spin bath temperature + double D,sigma; // bath intensity var. + double gil_factor; // gilbert's prefactor char *id_temp; class Compute *temperature; int nlevels_respa; - //class RanMars *random; class RanPark *random; int seed; diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp deleted file mode 100755 index e4e8e2e15a..0000000000 --- a/src/SPIN/pair_spin.cpp +++ /dev/null @@ -1,637 +0,0 @@ -/* ---------------------------------------------------------------------- - 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 authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) -------------------------------------------------------------------------- */ - -#include -#include -#include - -#include "atom.h" -#include "comm.h" -#include "error.h" -#include "force.h" -#include "neighbor.h" -#include "neigh_list.h" -#include "neigh_request.h" -#include "math_const.h" -#include "memory.h" -#include "pair_spin.h" -#include "update.h" - -using namespace LAMMPS_NS; -using namespace MathConst; - -/* ---------------------------------------------------------------------- */ - -PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp) -{ - hbar = force->hplanck/MY_2PI; - - newton_pair_spin = 0; // no newton pair for now - single_enable = 0; - exch_flag = 0; - dmi_flag = 0; - me_flag = 0; - - no_virial_fdotr_compute = 1; -} - -/* ---------------------------------------------------------------------- */ - -PairSpin::~PairSpin() -{ - if (allocated) { - memory->destroy(setflag); - - memory->destroy(cut_spin_exchange); - memory->destroy(J1_mag); - memory->destroy(J1_mech); - memory->destroy(J2); - memory->destroy(J3); - - memory->destroy(cut_spin_dmi); - memory->destroy(DM); - memory->destroy(v_dmx); - memory->destroy(v_dmy); - memory->destroy(v_dmz); - - memory->destroy(cut_spin_me); - memory->destroy(ME); - memory->destroy(v_mex); - memory->destroy(v_mey); - memory->destroy(v_mez); - - memory->destroy(spi); - memory->destroy(spj); - memory->destroy(fi); - memory->destroy(fj); - memory->destroy(fmi); - memory->destroy(fmj); - memory->destroy(del); - - memory->destroy(cutsq); - } -} - -/* ---------------------------------------------------------------------- */ - -void PairSpin::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype; - double evdwl,ecoul; - double xtmp,ytmp,ztmp; - double fix,fiy,fiz,fjx,fjy,fjz; - double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; - double cut_ex_2,cut_dmi_2,cut_me_2,cut_spin_pair_global2; - double rsq,rd; - int *ilist,*jlist,*numneigh,**firstneigh; - - evdwl = ecoul = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; - cut_spin_pair_global2 = cut_spin_pair_global*cut_spin_pair_global; - - double **x = atom->x; - double **f = atom->f; - double **fm = atom->fm; - double *mumag = atom->mumag; - double **sp = atom->sp; - int *type = atom->type; - int nlocal = atom->nlocal; - int newton_pair = force->newton_pair; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // pair spin computations - // loop over neighbors of my atoms - - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - // loop on neighbors - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - - fi[0] = fi[1] = fi[2] = 0.0; - fj[0] = fj[1] = fj[2] = 0.0; - fmi[0] = fmi[1] = fmi[2] = 0.0; - fmj[0] = fmj[1] = fmj[2] = 0.0; - del[0] = del[1] = del[2] = 0.0; - - del[0] = x[j][0] - xtmp; - del[1] = x[j][1] - ytmp; - del[2] = x[j][2] - ztmp; - - // square of inter-atomic distance - rsq = del[0]*del[0] + del[1]*del[1] + del[2]*del[2]; - - itype = type[i]; - jtype = type[j]; - - // exchange interaction - if (exch_flag) { - cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; - if (rsq <= cut_ex_2) { - compute_exchange(i,j,rsq,fmi,fmj,spi,spj); - compute_exchange_mech(i,j,rsq,del,fi,fj,spi,spj); - } - } - // dm interaction - if (dmi_flag){ - cut_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; - if (rsq <= cut_dmi_2){ - compute_dmi(i,j,fmi,fmj,spi,spj); - } - } - // me interaction - if (me_flag){ - cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; - if (rsq <= cut_me_2){ - compute_me(i,j,fmi,fmj,spi,spj); - } - } - - f[i][0] += fi[0]; - f[i][1] += fi[1]; - f[i][2] += fi[2]; - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; - fm[i][2] += fmi[2]; - - /* if (newton_pair || j < nlocal) {*/ - if (newton_pair_spin) { - f[j][0] += fj[0]; - f[j][1] += fj[1]; - f[j][2] += fj[2]; - fm[j][0] += fmj[0]; - fm[j][1] += fmj[1]; - fm[j][2] += fmj[2]; - } - - if (eflag) { - if (rsq <= cut_spin_pair_global2) { - evdwl -= mumag[i]*spi[0]*fmi[0]; - evdwl -= mumag[i]*spi[1]*fmi[1]; - evdwl -= mumag[i]*spi[2]*fmi[2]; - } - } - - evdwl *= hbar; - - if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],del[0],del[1],del[2]); - } - } - - if (vflag_fdotr) virial_fdotr_compute(); -} - -/* ---------------------------------------------------------------------- */ -void PairSpin::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj, double *spi, double *spj) -{ - int *type = atom->type; - int itype, jtype; - double Jex, ra; - itype = type[i]; - jtype = type[j]; - - ra = rsq/J3[itype][jtype]/J3[itype][jtype]; - Jex = 4.0*J1_mag[itype][jtype]*ra; - Jex *= (1.0-J2[itype][jtype]*ra); - Jex *= exp(-ra); - - fmi[0] += Jex*spj[0]; - fmi[1] += Jex*spj[1]; - fmi[2] += Jex*spj[2]; - - fmj[0] += Jex*spi[0]; - fmj[1] += Jex*spi[1]; - fmj[2] += Jex*spi[2]; - -} - -/* ---------------------------------------------------------------------- */ -void PairSpin::compute_exchange_mech(int i, int j, double rsq, double *del, double *fi, double *fj, double *spi, double *spj) -{ - int *type = atom->type; - int itype, jtype; - double Jex, Jex_mech, ra, rr; - itype = type[i]; - jtype = type[j]; - Jex = J1_mech[itype][jtype]; - - ra = rsq/J3[itype][jtype]/J3[itype][jtype]; - rr = sqrt(rsq)/J3[itype][jtype]/J3[itype][jtype]; - - Jex_mech = 1.0-ra-J2[itype][jtype]*ra*(2.0-ra); - Jex_mech *= 8.0*Jex*rr*exp(-ra); - Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); - - fi[0] += Jex_mech*del[0]; - fi[1] += Jex_mech*del[1]; - fi[2] += Jex_mech*del[2]; - - fj[0] -= Jex_mech*del[0]; - fj[1] -= Jex_mech*del[1]; - fj[2] -= Jex_mech*del[2]; - -} - -/* ---------------------------------------------------------------------- */ -void PairSpin::compute_dmi(int i, int j, double *fmi, double *fmj, double *spi, double *spj) -{ - int *type = atom->type; - int itype, jtype; - double dmix,dmiy,dmiz; - itype = type[i]; - jtype = type[j]; - - dmix = DM[itype][jtype]*v_dmx[itype][jtype]; - dmiy = DM[itype][jtype]*v_dmy[itype][jtype]; - dmiz = DM[itype][jtype]*v_dmz[itype][jtype]; - - fmi[0] += spj[1]*dmiz-spj[2]*dmiy; - fmi[1] += spj[2]*dmix-spj[0]*dmiz; - fmi[2] += spj[0]*dmiy-spj[1]*dmix; - - fmj[0] -= spi[1]*dmiz-spi[2]*dmiy; - fmj[1] -= spi[2]*dmix-spi[0]*dmiz; - fmj[2] -= spi[0]*dmiy-spi[1]*dmix; -} - -/* ---------------------------------------------------------------------- */ -void PairSpin::compute_me(int i, int j, double *fmi, double *fmj, double *spi, double *spj) -{ - int *type = atom->type; - int itype, jtype; - itype = type[i]; - jtype = type[j]; - double **sp = atom->sp; - double **x = atom->x; - double meix,meiy,meiz; - double rx, ry, rz, inorm; - - rx = x[j][0] - x[i][0]; - ry = x[j][1] - x[i][1]; - rz = x[j][2] - x[i][2]; - inorm = 1.0/sqrt(rx*rx+ry*ry+rz*rz); - rx *= inorm; - ry *= inorm; - rz *= inorm; - - meix = v_mey[itype][jtype]*rz - v_mez[itype][jtype]*ry; - meiy = v_mez[itype][jtype]*rx - v_mex[itype][jtype]*rz; - meiz = v_mex[itype][jtype]*ry - v_mey[itype][jtype]*rx; - - meix *= ME[itype][jtype]; - meiy *= ME[itype][jtype]; - meiz *= ME[itype][jtype]; - - fmi[0] += spj[1]*meiz - spj[2]*meiy; - fmi[1] += spj[2]*meix - spj[0]*meiz; - fmi[2] += spj[0]*meiy - spj[1]*meix; - - fmj[0] -= spi[1]*meiz - spi[2]*meiy; - fmj[1] -= spi[2]*meix - spi[0]*meiz; - fmj[2] -= spi[0]*meiy - spi[1]*meix; - -} - -/* ---------------------------------------------------------------------- - allocate all arrays -------------------------------------------------------------------------- */ - -void PairSpin::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(cut_spin_exchange,n+1,n+1,"pair:cut_spin_exchange"); - memory->create(J1_mag,n+1,n+1,"pair:J1_mag"); - memory->create(J1_mech,n+1,n+1,"pair:J1_mech"); - memory->create(J2,n+1,n+1,"pair:J2"); - memory->create(J3,n+1,n+1,"pair:J3"); - - memory->create(cut_spin_dmi,n+1,n+1,"pair:cut_spin_dmi"); - memory->create(DM,n+1,n+1,"pair:DM"); - memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); - memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); - memory->create(v_dmz,n+1,n+1,"pair:DM_vector_z"); - - memory->create(cut_spin_me,n+1,n+1,"pair:cut_spin_me"); - memory->create(ME,n+1,n+1,"pair:ME"); - memory->create(v_mex,n+1,n+1,"pair:ME_vector_x"); - memory->create(v_mey,n+1,n+1,"pair:ME_vector_y"); - memory->create(v_mez,n+1,n+1,"pair:ME_vector_z"); - - memory->create(spi,3,"pair:spi"); - memory->create(spj,3,"pair:spj"); - memory->create(fi,3,"pair:fi"); - memory->create(fj,3,"pair:fj"); - memory->create(fmi,3,"pair:fmi"); - memory->create(fmj,3,"pair:fmj"); - memory->create(del,3,"pair:del"); - - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - -} - -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairSpin::settings(int narg, char **arg) -{ - if (narg < 1 || narg > 2) - error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); - - if (strcmp(update->unit_style,"metal") != 0) - error->all(FLERR,"Spin simulations require metal unit style"); - - cut_spin_pair_global = force->numeric(FLERR,arg[0]); - - // reset cutoffs that have been explicitly set - - if (allocated) { - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i+1; j <= atom->ntypes; j++) - if (setflag[i][j]) { - cut_spin_exchange[i][j] = cut_spin_pair_global; - cut_spin_dmi[i][j] = cut_spin_pair_global; - cut_spin_me[i][j] = cut_spin_pair_global; - } - } - -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type spin pairs (only one for now) -------------------------------------------------------------------------- */ - -void PairSpin::coeff(int narg, char **arg) -{ - const double hbar = force->hplanck/MY_2PI; - - if (!allocated) allocate(); - - if (strcmp(arg[2],"exchange")==0){ - if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); - exch_flag = 1; - - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double j1 = (force->numeric(FLERR,arg[4])); - const double j2 = force->numeric(FLERR,arg[5]); - const double j3 = force->numeric(FLERR,arg[6]); - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_exchange[i][j] = rij; - J1_mag[i][j] = j1/hbar; - J1_mech[i][j] = j1; - J2[i][j] = j2; - J3[i][j] = j3; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else if (strcmp(arg[2],"dmi")==0) { - if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - dmi_flag = 1; - - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double dm = (force->numeric(FLERR,arg[4]))/hbar; - double dmx = force->numeric(FLERR,arg[5]); - double dmy = force->numeric(FLERR,arg[6]); - double dmz = force->numeric(FLERR,arg[7]); - - double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); - dmx *= inorm; - dmy *= inorm; - dmz *= inorm; - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_dmi[i][j] = rij; - DM[i][j] = dm; - v_dmx[i][j] = dmx; - v_dmy[i][j] = dmy; - v_dmz[i][j] = dmz; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else if (strcmp(arg[2],"me")==0) { - if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - me_flag = 1; - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double me = (force->numeric(FLERR,arg[4]))/hbar; - double mex = force->numeric(FLERR,arg[5]); - double mey = force->numeric(FLERR,arg[6]); - double mez = force->numeric(FLERR,arg[7]); - - double inorm = 1.0/(mex*mex+mey*mey+mez*mez); - mex *= inorm; - mey *= inorm; - mez *= inorm; - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_me[i][j] = rij; - DM[i][j] = me; - v_mex[i][j] = mex; - v_mey[i][j] = mey; - v_mez[i][j] = mez; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else error->all(FLERR,"Incorrect args in pair_style command"); - - // check if Jex [][] still works for Ferrimagnetic exchange - -} - - -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -void PairSpin::init_style() -{ - if (!atom->sp_flag || !atom->mumag_flag) - error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); - - neighbor->request(this,instance_me); - -#define FULLNEI -#if defined FULLNEI - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->full = 1; -#endif -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairSpin::init_one(int i, int j) -{ - - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - - return cut_spin_pair_global; -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairSpin::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]) { - if (exch_flag){ - fwrite(&J1_mag[i][j],sizeof(double),1,fp); - fwrite(&J1_mech[i][j],sizeof(double),1,fp); - fwrite(&J2[i][j],sizeof(double),1,fp); - fwrite(&J3[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_exchange[i][j],sizeof(double),1,fp); - } - if (dmi_flag) { - fwrite(&DM[i][j],sizeof(double),1,fp); - fwrite(&v_dmx[i][j],sizeof(double),1,fp); - fwrite(&v_dmy[i][j],sizeof(double),1,fp); - fwrite(&v_dmz[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_dmi[i][j],sizeof(double),1,fp); - } - if (me_flag) { - fwrite(&ME[i][j],sizeof(double),1,fp); - fwrite(&v_mex[i][j],sizeof(double),1,fp); - fwrite(&v_mey[i][j],sizeof(double),1,fp); - fwrite(&v_mez[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_me[i][j],sizeof(double),1,fp); - } - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairSpin::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(&J1_mag[i][j],sizeof(double),1,fp); - fread(&J1_mech[i][j],sizeof(double),1,fp); - fread(&J2[i][j],sizeof(double),1,fp); - fread(&J2[i][j],sizeof(double),1,fp); - fread(&cut_spin_exchange[i][j],sizeof(double),1,fp); - } - MPI_Bcast(&J1_mag[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&J1_mech[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&J2[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&J3[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_spin_exchange[i][j],1,MPI_DOUBLE,0,world); - } - } - } -} - - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairSpin::write_restart_settings(FILE *fp) -{ - fwrite(&cut_spin_pair_global,sizeof(double),1,fp); - fwrite(&offset_flag,sizeof(int),1,fp); - fwrite(&mix_flag,sizeof(int),1,fp); -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairSpin::read_restart_settings(FILE *fp) -{ - if (comm->me == 0) { - fread(&cut_spin_pair_global,sizeof(double),1,fp); - fread(&offset_flag,sizeof(int),1,fp); - fread(&mix_flag,sizeof(int),1,fp); - } - MPI_Bcast(&cut_spin_pair_global,1,MPI_DOUBLE,0,world); - MPI_Bcast(&offset_flag,1,MPI_INT,0,world); - MPI_Bcast(&mix_flag,1,MPI_INT,0,world); -} diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h deleted file mode 100755 index f73be7d466..0000000000 --- a/src/SPIN/pair_spin.h +++ /dev/null @@ -1,99 +0,0 @@ -/* -*- 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(pair/spin,PairSpin) - -#else - -#ifndef LMP_PAIR_SPIN_H -#define LMP_PAIR_SPIN_H - -#include "pair.h" - -namespace LAMMPS_NS { - -class PairSpin : public Pair { - public: - PairSpin(class LAMMPS *); - virtual ~PairSpin(); - virtual void compute(int, int); - void settings(int, char **); - void coeff(int, char **); - void init_style(); - double init_one(int, int); - - void write_restart(FILE *); - void read_restart(FILE *); - void write_restart_settings(FILE *); - void read_restart_settings(FILE *); - - void compute_exchange(int, int, double, double *, double *,double *, double *); - void compute_exchange_mech(int, int, double, double *, double *, double *,double *, double *); - void compute_dmi(int, int, double *, double *, double *, double *); - void compute_me(int, int, double *, double *, double *, double *); - - int exch_flag, dmi_flag, me_flag; - double cut_spin_pair_global; - double cut_spin_dipolar_global; - - double **cut_spin_exchange; // cutoff distance exchange - double **cut_spin_dmi; // cutoff distance dmi - double **cut_spin_me; // cutoff distance me - - protected: - int newton_pair_spin; - double hbar; - - double **J1_mag, **J1_mech; // exchange coeffs Jij - double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang - - double **DM; // dmi coeff in eV - double **v_dmx, **v_dmy, **v_dmz;// dmi direction - - double **ME; // me coeff in eV - double **v_mex, **v_mey, **v_mez;// me direction - - double *spi, *spj; // temp. spin vals. in compute - double *fi, *fj; // temp. mech. forces in compute - double *fmi, *fmj; // temp. mag. forces in compute - double *del; // inter atomic distances - - void allocate(); -}; - -} - -#endif -#endif - -/* ERROR/WARNING messages: - -E: Incorrect args in pair_spin command - -Self-explanatory. - -E: Spin simulations require metal unit style - -Self-explanatory. - -E: Incorrect args for pair coefficients - -Self-explanatory. Check the input script or data file. - -E: Pair spin requires atom attributes sp, mumag - -The atom style defined does not have these attributes. - -*/ diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 208a82ea30..9080fce51d 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -42,7 +42,7 @@ PairSpinExchange::PairSpinExchange(LAMMPS *lmp) : Pair(lmp) { hbar = force->hplanck/MY_2PI; - newton_pair_spin = 0; // no newton pair for now + newton_pair_spin = 0; // no newton pair for now => to be corrected // newton_pair = 0; single_enable = 0; @@ -64,14 +64,6 @@ PairSpinExchange::~PairSpinExchange() memory->destroy(J1_mech); memory->destroy(J2); memory->destroy(J3); - - memory->destroy(spi); - memory->destroy(spj); - memory->destroy(fi); - memory->destroy(fj); - memory->destroy(fmi); - memory->destroy(fmj); - memory->destroy(rij); memory->destroy(cutsq); } @@ -83,12 +75,13 @@ void PairSpinExchange::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl,ecoul; - double xi,yi,zi; - double fix,fiy,fiz,fjx,fjy,fjz; - double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; + double xi[3], rij[3]; + double fi[3], fmi[3]; + double fj[3], fmj[3]; double cut_ex_2,cut_spin_exchange_global2; - double rsq,rd; + double rsq,rd,inorm; int *ilist,*jlist,*numneigh,**firstneigh; + double spi[3],spj[3]; evdwl = ecoul = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); @@ -109,14 +102,14 @@ void PairSpinExchange::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; - // pair spin computations - // loop over neighbors of my atoms + // computation of the exchange interaction + // loop over atoms and their neighbors for (ii = 0; ii < inum; ii++) { i = ilist[ii]; - xi = x[i][0]; - yi = x[i][1]; - zi = x[i][2]; + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; jlist = firstneigh[i]; jnum = numneigh[i]; spi[0] = sp[i][0]; @@ -124,6 +117,7 @@ void PairSpinExchange::compute(int eflag, int vflag) spi[2] = sp[i][2]; // loop on neighbors + for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; @@ -138,15 +132,12 @@ void PairSpinExchange::compute(int eflag, int vflag) fj[0] = fj[1] = fj[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; fmj[0] = fmj[1] = fmj[2] = 0.0; - rij[0] = rij[1] = rij[2] = 0.0; - rij[0] = x[j][0] - xi; - rij[1] = x[j][1] - yi; - rij[2] = x[j][2] - zi; - - // square of inter-atomic distance + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - double inorm = 1.0/sqrt(rsq); + inorm = 1.0/sqrt(rsq); rij[0] *= inorm; rij[1] *= inorm; rij[2] *= inorm; @@ -154,7 +145,8 @@ void PairSpinExchange::compute(int eflag, int vflag) itype = type[i]; jtype = type[j]; - // exchange interaction + // compute exchange interaction + if (exch_flag) { cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; if (rsq <= cut_ex_2) { @@ -170,14 +162,15 @@ void PairSpinExchange::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; + // check newton pair => needs correction // if (newton_pair || j < nlocal) { if (newton_pair_spin) { f[j][0] += fj[0]; f[j][1] += fj[1]; f[j][2] += fj[2]; - //fm[j][0] += fmj[0]; - //fm[j][1] += fmj[1]; - //fm[j][2] += fmj[2]; + fm[j][0] += fmj[0]; + fm[j][1] += fmj[1]; + fm[j][2] += fmj[2]; } if (eflag) { @@ -199,7 +192,8 @@ void PairSpinExchange::compute(int eflag, int vflag) } /* ---------------------------------------------------------------------- */ -void PairSpinExchange::compute_exchange(int i, int j, double rsq, double *fmi, double *fmj, double *spi, double *spj) + +void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], double fmj[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -223,7 +217,8 @@ void PairSpinExchange::compute_exchange(int i, int j, double rsq, double *fmi, } /* ---------------------------------------------------------------------- */ -void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double *rij, double *fi, double *fj, double *spi, double *spj) + +void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double rij[3], double fi[3], double fj[3], double *spi, double *spj) { int *type = atom->type; int itype, jtype; @@ -270,14 +265,6 @@ void PairSpinExchange::allocate() memory->create(J2,n+1,n+1,"pair:J2"); memory->create(J3,n+1,n+1,"pair:J3"); - memory->create(spi,3,"pair:spi"); - memory->create(spj,3,"pair:spj"); - memory->create(fi,3,"pair:fi"); - memory->create(fj,3,"pair:fj"); - memory->create(fmi,3,"pair:fmi"); - memory->create(fmj,3,"pair:fmj"); - memory->create(rij,3,"pair:rij"); - memory->create(cutsq,n+1,n+1,"pair:cutsq"); } @@ -320,6 +307,7 @@ void PairSpinExchange::coeff(int narg, char **arg) if (!allocated) allocate(); // set exch_mech_flag to 1 if magneto-mech simulation + if (strstr(force->pair_style,"pair/spin")) { exch_mech_flag = 0; } else if (strstr(force->pair_style,"hybrid/overlay")) { @@ -335,15 +323,15 @@ void PairSpinExchange::coeff(int narg, char **arg) force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - const double rij = force->numeric(FLERR,arg[3]); - const double j1 = (force->numeric(FLERR,arg[4])); + const double rc = force->numeric(FLERR,arg[3]); + const double j1 = force->numeric(FLERR,arg[4]); const double j2 = force->numeric(FLERR,arg[5]); const double j3 = force->numeric(FLERR,arg[6]); int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_exchange[i][j] = rij; + cut_spin_exchange[i][j] = rc; J1_mag[i][j] = j1/hbar; if (exch_mech_flag) { J1_mech[i][j] = j1; @@ -373,7 +361,7 @@ void PairSpinExchange::init_style() neighbor->request(this,instance_me); - // check this half/full request + // check this half/full request => needs correction/review #define FULLNEI #if defined FULLNEI int irequest = neighbor->request(this,instance_me); diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h index 14cdf7a959..38cd03570f 100755 --- a/src/SPIN/pair_spin_exchange.h +++ b/src/SPIN/pair_spin_exchange.h @@ -39,26 +39,21 @@ class PairSpinExchange : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_exchange(int, int, double, double *, double *,double *, double *); - void compute_exchange_mech(int, int, double, double *, double *, double *,double *, double *); + void compute_exchange(int, int, double, double fmi[3], double fmj[3],double spi[3], double spj[3]); + void compute_exchange_mech(int, int, double, double rij[3], double fmi[3], double fmj[3], double spi[3], double spj[3]); - int exch_flag; // mag. exchange flag - int exch_mech_flag; // mech. exchange flags + int exch_flag; // magnetic exchange flag + int exch_mech_flag; // mechanic exchange flags - double cut_spin_exchange_global; // global exchange cutoff - double **cut_spin_exchange; // cutoff distance exchange + double cut_spin_exchange_global; // global exchange cutoff + double **cut_spin_exchange; // cutoff distance per exchange protected: int newton_pair_spin; double hbar; - double **J1_mag, **J1_mech; // exchange coeffs Jij - double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang - - double *spi, *spj; // temp. spin vals. in compute - double *fi, *fj; // temp. mech. forces in compute - double *fmi, *fmj; // temp. mag. forces in compute - double *rij; // norm. inter atomic vectors + double **J1_mag, **J1_mech; // exchange coeffs Jij + double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang void allocate(); }; diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_me.cpp index b48abe93e6..3c6f4fa7ed 100755 --- a/src/SPIN/pair_spin_me.cpp +++ b/src/SPIN/pair_spin_me.cpp @@ -63,14 +63,6 @@ PairSpinMe::~PairSpinMe() memory->destroy(v_mex); memory->destroy(v_mey); memory->destroy(v_mez); - - memory->destroy(spi); - memory->destroy(spj); - memory->destroy(fi); - memory->destroy(fj); - memory->destroy(fmi); - memory->destroy(fmj); - memory->destroy(rij); memory->destroy(cutsq); } @@ -81,12 +73,13 @@ PairSpinMe::~PairSpinMe() void PairSpinMe::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; - double evdwl,ecoul; - double xi,yi,zi; - double fix,fiy,fiz,fjx,fjy,fjz; - double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; - double cut_me_2,cut_spin_me_global2; - double rsq,rd; + double evdwl, ecoul; + double xi[3], rij[3]; + double spi[3], spj[3]; + double fi[3], fj[3]; + double fmi[3], fmj[3]; + double cut_me_2, cut_spin_me_global2; + double rsq, rd, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; @@ -109,13 +102,13 @@ void PairSpinMe::compute(int eflag, int vflag) firstneigh = list->firstneigh; // magneto-electric computation - // loop over neighbors of my atoms + // loop over atoms and their neighbors for (ii = 0; ii < inum; ii++) { i = ilist[ii]; - xi = x[i][0]; - yi = x[i][1]; - zi = x[i][2]; + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; jlist = firstneigh[i]; jnum = numneigh[i]; spi[0] = sp[i][0]; @@ -123,6 +116,7 @@ void PairSpinMe::compute(int eflag, int vflag) spi[2] = sp[i][2]; // loop on neighbors + for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; @@ -139,13 +133,11 @@ void PairSpinMe::compute(int eflag, int vflag) fmj[0] = fmj[1] = fmj[2] = 0.0; rij[0] = rij[1] = rij[2] = 0.0; - rij[0] = x[j][0] - xi; - rij[1] = x[j][1] - yi; - rij[2] = x[j][2] - zi; - - // square of inter-atomic distance + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - double inorm = 1.0/sqrt(rsq); + inorm = 1.0/sqrt(rsq); rij[0] *= inorm; rij[1] *= inorm; rij[2] *= inorm; @@ -154,6 +146,7 @@ void PairSpinMe::compute(int eflag, int vflag) jtype = type[j]; // me interaction + if (me_flag){ cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; if (rsq <= cut_me_2){ @@ -168,7 +161,7 @@ void PairSpinMe::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; -// if (newton_pair || j < nlocal) { +// if (newton_pair || j < nlocal) { => to be corrected if (newton_pair_spin) { f[j][0] += fj[0]; f[j][1] += fj[1]; @@ -198,13 +191,13 @@ void PairSpinMe::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ -void PairSpinMe::compute_me(int i, int j, double *fmi, double *fmj, double *spi, double *spj) + +void PairSpinMe::compute_me(int i, int j, double fmi[3], double fmj[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; itype = type[i]; jtype = type[j]; - double **sp = atom->sp; double **x = atom->x; double meix,meiy,meiz; double rx, ry, rz, inorm; @@ -255,14 +248,6 @@ void PairSpinMe::allocate() memory->create(v_mey,n+1,n+1,"pair:ME_vector_y"); memory->create(v_mez,n+1,n+1,"pair:ME_vector_z"); - memory->create(spi,3,"pair:spi"); - memory->create(spj,3,"pair:spj"); - memory->create(fi,3,"pair:fi"); - memory->create(fj,3,"pair:fj"); - memory->create(fmi,3,"pair:fmi"); - memory->create(fmj,3,"pair:fmj"); - memory->create(rij,3,"pair:rij"); - memory->create(cutsq,n+1,n+1,"pair:cutsq"); } @@ -351,7 +336,7 @@ void PairSpinMe::init_style() neighbor->request(this,instance_me); - // check this half/full request + // check this half/full request => to be corrected/reviewed #define FULLNEI #if defined FULLNEI int irequest = neighbor->request(this,instance_me); diff --git a/src/SPIN/pair_spin_me.h b/src/SPIN/pair_spin_me.h index fb216a61ea..31e0d8b560 100755 --- a/src/SPIN/pair_spin_me.h +++ b/src/SPIN/pair_spin_me.h @@ -39,24 +39,19 @@ class PairSpinMe : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_me(int, int, double *, double *, double *, double *); + void compute_me(int, int, double fmi[3], double fmj[3], double spi[3], double spj[3]); - int me_flag; // me flag + int me_flag; // me flag - double cut_spin_me_global; // global me cutoff - double **cut_spin_me; // me cutoff distance + double cut_spin_me_global; // global me cutoff + double **cut_spin_me; // me cutoff distance protected: int newton_pair_spin; double hbar; - double **ME; // me coeff in eV - double **v_mex, **v_mey, **v_mez;// me direction - - double *spi, *spj; // temp. spin vals. in compute - double *fi, *fj; // temp. mech. forces in compute - double *fmi, *fmj; // temp. mag. forces in compute - double *rij; // norm. inter atomic vectors + double **ME; // me coeff in eV + double **v_mex, **v_mey, **v_mez; // me direction void allocate(); }; diff --git a/src/SPIN/pair_spin_soc_dmi.cpp b/src/SPIN/pair_spin_soc_dmi.cpp index eb4f957c8e..341f230fd3 100755 --- a/src/SPIN/pair_spin_soc_dmi.cpp +++ b/src/SPIN/pair_spin_soc_dmi.cpp @@ -42,7 +42,7 @@ PairSpinSocDmi::PairSpinSocDmi(LAMMPS *lmp) : Pair(lmp) { hbar = force->hplanck/MY_2PI; - newton_pair_spin = 0; // no newton pair for now + newton_pair_spin = 0; // no newton pair for now => to be corrected // newton_pair = 0; single_enable = 0; @@ -63,14 +63,6 @@ PairSpinSocDmi::~PairSpinSocDmi() memory->destroy(v_dmx); memory->destroy(v_dmy); memory->destroy(v_dmz); - - memory->destroy(spi); - memory->destroy(spj); - memory->destroy(fi); - memory->destroy(fj); - memory->destroy(fmi); - memory->destroy(fmj); - memory->destroy(rij); memory->destroy(cutsq); } @@ -81,12 +73,13 @@ PairSpinSocDmi::~PairSpinSocDmi() void PairSpinSocDmi::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; - double evdwl,ecoul; - double xi,yi,zi; - double fix,fiy,fiz,fjx,fjy,fjz; - double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; - double cut_dmi_2; - double rsq,rd; + double evdwl, ecoul; + double xi[3], rij[3]; + double spi[3], spj[3]; + double fi[3], fj[3]; + double fmi[3], fmj[3]; + double cut_dmi_2, cut_spin_me_global2; + double rsq, rd, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; @@ -113,9 +106,9 @@ void PairSpinSocDmi::compute(int eflag, int vflag) for (ii = 0; ii < inum; ii++) { i = ilist[ii]; - xi = x[i][0]; - yi = x[i][1]; - zi = x[i][2]; + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; jlist = firstneigh[i]; jnum = numneigh[i]; spi[0] = sp[i][0]; @@ -139,13 +132,11 @@ void PairSpinSocDmi::compute(int eflag, int vflag) fmj[0] = fmj[1] = fmj[2] = 0.0; rij[0] = rij[1] = rij[2] = 0.0; - rij[0] = x[j][0] - xi; - rij[1] = x[j][1] - yi; - rij[2] = x[j][2] - zi; - - // square of inter-atomic distance + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - double inorm = 1.0/sqrt(rsq); + inorm = 1.0/sqrt(rsq); rij[0] *= inorm; rij[1] *= inorm; rij[2] *= inorm; @@ -197,7 +188,8 @@ void PairSpinSocDmi::compute(int eflag, int vflag) } /* ---------------------------------------------------------------------- */ -void PairSpinSocDmi::compute_dmi(int i, int j, double *fmi, double *fmj, double *spi, double *spj) + +void PairSpinSocDmi::compute_dmi(int i, int j, double fmi[3], double fmj[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -238,14 +230,6 @@ void PairSpinSocDmi::allocate() memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); memory->create(v_dmz,n+1,n+1,"pair:DM_vector_z"); - memory->create(spi,3,"pair:spi"); - memory->create(spj,3,"pair:spj"); - memory->create(fi,3,"pair:fi"); - memory->create(fj,3,"pair:fj"); - memory->create(fmi,3,"pair:fmi"); - memory->create(fmj,3,"pair:fmj"); - memory->create(rij,3,"pair:rij"); - memory->create(cutsq,n+1,n+1,"pair:cutsq"); } diff --git a/src/SPIN/pair_spin_soc_dmi.h b/src/SPIN/pair_spin_soc_dmi.h index a28d1772d7..627001135e 100755 --- a/src/SPIN/pair_spin_soc_dmi.h +++ b/src/SPIN/pair_spin_soc_dmi.h @@ -39,24 +39,19 @@ class PairSpinSocDmi : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_dmi(int, int, double *, double *, double *, double *); + void compute_dmi(int, int, double fmi[3], double fmj[3], double spi[3], double spj[3]); - int dmi_flag; // dmi flag + int dmi_flag; // dmi flag - double cut_spin_dmi_global; // short range pair cutoff - double **cut_spin_dmi; // cutoff distance dmi + double cut_spin_dmi_global; // short range pair cutoff + double **cut_spin_dmi; // cutoff distance dmi protected: int newton_pair_spin; double hbar; - double **DM; // dmi coeff in eV - double **v_dmx, **v_dmy, **v_dmz;// dmi direction - - double *spi, *spj; // temp. spin vals. in compute - double *fi, *fj; // temp. mech. forces in compute - double *fmi, *fmj; // temp. mag. forces in compute - double *rij; // norm. inter atomic vectors + double **DM; // dmi coeff in eV + double **v_dmx, **v_dmy, **v_dmz; // dmi direction void allocate(); }; diff --git a/src/SPIN/pair_spin_soc_landau.cpp b/src/SPIN/pair_spin_soc_landau.cpp index 13cd83868b..2beebb47f5 100755 --- a/src/SPIN/pair_spin_soc_landau.cpp +++ b/src/SPIN/pair_spin_soc_landau.cpp @@ -42,7 +42,7 @@ PairSpinSocLandau::PairSpinSocLandau(LAMMPS *lmp) : Pair(lmp) { hbar = force->hplanck/MY_2PI; - newton_pair_spin = 0; // no newton pair for now + newton_pair_spin = 0; // no newton pair for now => to be corrected // newton_pair = 0; single_enable = 0; @@ -58,19 +58,11 @@ PairSpinSocLandau::~PairSpinSocLandau() if (allocated) { memory->destroy(setflag); - memory->destroy(cut_soc_neel); + memory->destroy(cut_soc_landau); memory->destroy(K1); memory->destroy(K1_mech); memory->destroy(K2); memory->destroy(K3); - - memory->destroy(spi); - memory->destroy(spj); - memory->destroy(fi); - memory->destroy(fj); - memory->destroy(fmi); - memory->destroy(fmj); - memory->destroy(rij); memory->destroy(cutsq); } @@ -81,12 +73,13 @@ PairSpinSocLandau::~PairSpinSocLandau() void PairSpinSocLandau::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; - double evdwl,ecoul; - double xi,yi,zi; - double fix,fiy,fiz,fjx,fjy,fjz; - double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; - double cut_soc_neel_2,cut_soc_global2; - double rsq,rd; + double evdwl, ecoul; + double xi[3], rij[3]; + double spi[3], spj[3]; + double fi[3], fj[3]; + double fmi[3], fmj[3]; + double cut_soc_landau_2, cut_soc_global2; + double rsq, rd, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; @@ -113,9 +106,9 @@ void PairSpinSocLandau::compute(int eflag, int vflag) for (ii = 0; ii < inum; ii++) { i = ilist[ii]; - xi = x[i][0]; - yi = x[i][1]; - zi = x[i][2]; + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; jlist = firstneigh[i]; jnum = numneigh[i]; spi[0] = sp[i][0]; @@ -139,13 +132,11 @@ void PairSpinSocLandau::compute(int eflag, int vflag) fmj[0] = fmj[1] = fmj[2] = 0.0; rij[0] = rij[1] = rij[2] = 0.0; - rij[0] = x[j][0] - xi; - rij[1] = x[j][1] - yi; - rij[2] = x[j][2] - zi; - - // square of inter-atomic distance + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - double inorm = 1.0/sqrt(rsq); + inorm = 1.0/sqrt(rsq); rij[0] *= inorm; rij[1] *= inorm; rij[2] *= inorm; @@ -154,10 +145,10 @@ void PairSpinSocLandau::compute(int eflag, int vflag) jtype = type[j]; // compute mag. and mech. components of soc - cut_soc_neel_2 = cut_soc_neel[itype][jtype]*cut_soc_neel[itype][jtype]; - if (rsq <= cut_soc_neel_2) { - compute_soc_neel(i,j,rsq,rij,fmi,fmj,spi,spj); - compute_soc_mech_neel(i,j,rsq,rij,fi,fj,spi,spj); + cut_soc_landau_2 = cut_soc_landau[itype][jtype]*cut_soc_landau[itype][jtype]; + if (rsq <= cut_soc_landau_2) { + compute_soc_landau(i,j,rsq,rij,fmi,fmj,spi,spj); + compute_soc_mech_landau(i,j,rsq,rij,fi,fj,spi,spj); } f[i][0] += fi[0]; @@ -167,7 +158,7 @@ void PairSpinSocLandau::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; -// if (newton_pair || j < nlocal) { +// if (newton_pair || j < nlocal) { => to be corrected if (newton_pair_spin) { f[j][0] += fj[0]; f[j][1] += fj[1]; @@ -178,7 +169,7 @@ void PairSpinSocLandau::compute(int eflag, int vflag) } if (eflag) { - if (rsq <= cut_soc_neel_2) { + if (rsq <= cut_soc_landau_2) { evdwl -= spi[0]*fmi[0]; evdwl -= spi[1]*fmi[1]; evdwl -= spi[2]*fmi[2]; @@ -196,7 +187,8 @@ void PairSpinSocLandau::compute(int eflag, int vflag) } /* ---------------------------------------------------------------------- */ -void PairSpinSocLandau::compute_soc_neel(int i, int j, double rsq, double *rij, double *fmi, double *fmj, double *spi, double *spj) + +void PairSpinSocLandau::compute_soc_landau(int i, int j, double rsq, double rij[3], double fmi[3], double fmj[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -223,7 +215,8 @@ void PairSpinSocLandau::compute_soc_neel(int i, int j, double rsq, double *rij, } /* ---------------------------------------------------------------------- */ -void PairSpinSocLandau::compute_soc_mech_neel(int i, int j, double rsq, double *rij, double *fi, double *fj, double *spi, double *spj) + +void PairSpinSocLandau::compute_soc_mech_landau(int i, int j, double rsq, double rij[3], double fi[3], double fj[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -279,21 +272,13 @@ void PairSpinSocLandau::allocate() for (int j = i; j <= n; j++) setflag[i][j] = 0; - memory->create(cut_soc_neel,n+1,n+1,"pair:cut_soc_neel"); - memory->create(K1,n+1,n+1,"pair:K1"); - memory->create(K1_mech,n+1,n+1,"pair:K1_mech"); - memory->create(K2,n+1,n+1,"pair:K2"); - memory->create(K3,n+1,n+1,"pair:K3"); + memory->create(cut_soc_landau,n+1,n+1,"pair/spin/soc/landau:cut_soc_landau"); + memory->create(K1,n+1,n+1,"pair/spin/soc/landau:K1"); + memory->create(K1_mech,n+1,n+1,"pair/spin/soc/landau:K1_mech"); + memory->create(K2,n+1,n+1,"pair/spin/soc/landau:K2"); + memory->create(K3,n+1,n+1,"pair/spin/soc/landau:K3"); - memory->create(spi,3,"pair:spi"); - memory->create(spj,3,"pair:spj"); - memory->create(fi,3,"pair:fi"); - memory->create(fj,3,"pair:fj"); - memory->create(fmi,3,"pair:fmi"); - memory->create(fmj,3,"pair:fmj"); - memory->create(rij,3,"pair:rij"); - - memory->create(cutsq,n+1,n+1,"pair:cutsq"); + memory->create(cutsq,n+1,n+1,"pair/spin/soc/landau:cutsq"); } @@ -318,7 +303,7 @@ void PairSpinSocLandau::settings(int narg, char **arg) for (i = 1; i <= atom->ntypes; i++) for (j = i+1; j <= atom->ntypes; j++) if (setflag[i][j]) { - cut_soc_neel[i][j] = cut_soc_global; + cut_soc_landau[i][j] = cut_soc_global; } } @@ -335,7 +320,7 @@ void PairSpinSocLandau::coeff(int narg, char **arg) if (!allocated) allocate(); // set mech_flag to 1 if magneto-mech simulation -//no longer correct: can be hybrid without magneto-mech + //no longer correct: can be hybrid without magneto-mech if (strstr(force->pair_style,"pair/spin")) { mech_flag = 0; } else if (strstr(force->pair_style,"hybrid/overlay")) { @@ -359,7 +344,7 @@ void PairSpinSocLandau::coeff(int narg, char **arg) int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_soc_neel[i][j] = rij; + cut_soc_landau[i][j] = rij; K1[i][j] = k1/hbar; if (mech_flag) { K1_mech[i][j] = k1; @@ -389,7 +374,7 @@ void PairSpinSocLandau::init_style() neighbor->request(this,instance_me); - // check this half/full request + // check this half/full request => to be corrected #define FULLNEI #if defined FULLNEI int irequest = neighbor->request(this,instance_me); @@ -429,7 +414,7 @@ void PairSpinSocLandau::write_restart(FILE *fp) fwrite(&K1_mech[i][j],sizeof(double),1,fp); fwrite(&K2[i][j],sizeof(double),1,fp); fwrite(&K3[i][j],sizeof(double),1,fp); - fwrite(&cut_soc_neel[i][j],sizeof(double),1,fp); + fwrite(&cut_soc_landau[i][j],sizeof(double),1,fp); } } } @@ -457,13 +442,13 @@ void PairSpinSocLandau::read_restart(FILE *fp) fread(&K1_mech[i][j],sizeof(double),1,fp); fread(&K2[i][j],sizeof(double),1,fp); fread(&K2[i][j],sizeof(double),1,fp); - fread(&cut_soc_neel[i][j],sizeof(double),1,fp); + fread(&cut_soc_landau[i][j],sizeof(double),1,fp); } MPI_Bcast(&K1[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&K1_mech[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&K2[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&K3[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_soc_neel[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_soc_landau[i][j],1,MPI_DOUBLE,0,world); } } } diff --git a/src/SPIN/pair_spin_soc_landau.h b/src/SPIN/pair_spin_soc_landau.h index c23739c071..491cb9a581 100755 --- a/src/SPIN/pair_spin_soc_landau.h +++ b/src/SPIN/pair_spin_soc_landau.h @@ -39,26 +39,21 @@ class PairSpinSocLandau : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_soc_neel(int, int, double, double *, double *, double *,double *, double *); - void compute_soc_mech_neel(int, int, double, double *, double *, double *,double *, double *); + void compute_soc_landau(int, int, double, double rij[3], double fmi[3], double fmj[3],double spi[3], double spj[3]); + void compute_soc_mech_landau(int, int, double, double rij[3], double fi[3], double fj[3], double spi[3], double spj[3]); - int soc_neel_flag; // soc neel flag - int mech_flag; // mech calc. flag + int soc_neel_flag; // soc neel flag + int mech_flag; // mech calc. flag double cut_soc_global; - double **cut_soc_neel; // cutoff distance exchange + double **cut_soc_landau; // cutoff distance exchange protected: int newton_pair_spin; double hbar; - double **K1, **K1_mech; // exchange coeffs Kij - double **K2, **K3; // K1 in eV, K2 adim, K3 in Ang - - double *spi, *spj; // temp. spin vals. in compute - double *fi, *fj; // temp. mech. forces in compute - double *fmi, *fmj; // temp. mag. forces in compute - double *rij; // norm. inter atomic vectors + double **K1, **K1_mech; // exchange coeffs Kij + double **K2, **K3; // K1 in eV, K2 adim, K3 in Ang void allocate(); }; diff --git a/src/SPIN/pair_spin_soc_neel.cpp b/src/SPIN/pair_spin_soc_neel.cpp index e8cd96fece..94ac35848b 100755 --- a/src/SPIN/pair_spin_soc_neel.cpp +++ b/src/SPIN/pair_spin_soc_neel.cpp @@ -42,7 +42,7 @@ PairSpinSocNeel::PairSpinSocNeel(LAMMPS *lmp) : Pair(lmp) { hbar = force->hplanck/MY_2PI; - newton_pair_spin = 0; // no newton pair for now + newton_pair_spin = 0; // no newton pair for now => to be corrected // newton_pair = 0; single_enable = 0; @@ -63,14 +63,6 @@ PairSpinSocNeel::~PairSpinSocNeel() memory->destroy(K1_mech); memory->destroy(K2); memory->destroy(K3); - - memory->destroy(spi); - memory->destroy(spj); - memory->destroy(fi); - memory->destroy(fj); - memory->destroy(fmi); - memory->destroy(fmj); - memory->destroy(rij); memory->destroy(cutsq); } @@ -82,11 +74,12 @@ void PairSpinSocNeel::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl,ecoul; - double xi,yi,zi; - double fix,fiy,fiz,fjx,fjy,fjz; - double fmix,fmiy,fmiz,fmjx,fmjy,fmjz; - double cut_soc_neel_2,cut_soc_global2; - double rsq,rd; + double xi[3], rij[3]; + double spi[3], spj[3]; + double fi[3], fj[3]; + double fmi[3], fmj[3]; + double cut_soc_neel_2, cut_soc_global2; + double rsq, rd, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; @@ -109,13 +102,13 @@ void PairSpinSocNeel::compute(int eflag, int vflag) firstneigh = list->firstneigh; // pair spin computations - // loop over neighbors of my atoms + // loop over atoms and their neighbors for (ii = 0; ii < inum; ii++) { i = ilist[ii]; - xi = x[i][0]; - yi = x[i][1]; - zi = x[i][2]; + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; jlist = firstneigh[i]; jnum = numneigh[i]; spi[0] = sp[i][0]; @@ -123,6 +116,7 @@ void PairSpinSocNeel::compute(int eflag, int vflag) spi[2] = sp[i][2]; // loop on neighbors + for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; @@ -139,13 +133,11 @@ void PairSpinSocNeel::compute(int eflag, int vflag) fmj[0] = fmj[1] = fmj[2] = 0.0; rij[0] = rij[1] = rij[2] = 0.0; - rij[0] = x[j][0] - xi; - rij[1] = x[j][1] - yi; - rij[2] = x[j][2] - zi; - - // square of inter-atomic distance + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - double inorm = 1.0/sqrt(rsq); + inorm = 1.0/sqrt(rsq); rij[0] *= inorm; rij[1] *= inorm; rij[2] *= inorm; @@ -153,7 +145,8 @@ void PairSpinSocNeel::compute(int eflag, int vflag) itype = type[i]; jtype = type[j]; - // compute mag. and mech. components of soc + // compute magnetic and mechanical components of soc_neel + cut_soc_neel_2 = cut_soc_neel[itype][jtype]*cut_soc_neel[itype][jtype]; if (rsq <= cut_soc_neel_2) { compute_soc_neel(i,j,rsq,rij,fmi,fmj,spi,spj); @@ -167,7 +160,7 @@ void PairSpinSocNeel::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; -// if (newton_pair || j < nlocal) { +// if (newton_pair || j < nlocal) { // => to be corrected if (newton_pair_spin) { f[j][0] += fj[0]; f[j][1] += fj[1]; @@ -196,7 +189,8 @@ void PairSpinSocNeel::compute(int eflag, int vflag) } /* ---------------------------------------------------------------------- */ -void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double *rij, double *fmi, double *fmj, double *spi, double *spj) + +void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double rij[3], double fmi[3], double fmj[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -212,18 +206,19 @@ void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double *rij, do scalar = rij[0]*spj[0]+rij[1]*spj[1]+rij[2]*spj[2]; Kij_3 = Kij/3.0; - fmi[0] -= Kij*scalar*rij[0]-Kij_3*spj[0]; - fmi[1] -= Kij*scalar*rij[1]-Kij_3*spj[1]; - fmi[2] -= Kij*scalar*rij[2]-Kij_3*spj[2]; + fmi[0] -= Kij*scalar*rij[0] - Kij_3*spj[0]; + fmi[1] -= Kij*scalar*rij[1] - Kij_3*spj[1]; + fmi[2] -= Kij*scalar*rij[2] - Kij_3*spj[2]; - fmj[0] += Kij*scalar*rij[0]+Kij_3*spi[0]; - fmj[1] += Kij*scalar*rij[1]+Kij_3*spi[1]; - fmj[2] += Kij*scalar*rij[2]+Kij_3*spi[2]; + fmj[0] += Kij*scalar*rij[0] + Kij_3*spi[0]; + fmj[1] += Kij*scalar*rij[1] + Kij_3*spi[1]; + fmj[2] += Kij*scalar*rij[2] + Kij_3*spi[2]; } /* ---------------------------------------------------------------------- */ -void PairSpinSocNeel::compute_soc_mech_neel(int i, int j, double rsq, double *rij, double *fi, double *fj, double *spi, double *spj) + +void PairSpinSocNeel::compute_soc_mech_neel(int i, int j, double rsq, double rij[3], double fi[3], double fj[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -285,14 +280,6 @@ void PairSpinSocNeel::allocate() memory->create(K2,n+1,n+1,"pair:K2"); memory->create(K3,n+1,n+1,"pair:K3"); - memory->create(spi,3,"pair:spi"); - memory->create(spj,3,"pair:spj"); - memory->create(fi,3,"pair:fi"); - memory->create(fj,3,"pair:fj"); - memory->create(fmi,3,"pair:fmi"); - memory->create(fmj,3,"pair:fmj"); - memory->create(rij,3,"pair:rij"); - memory->create(cutsq,n+1,n+1,"pair:cutsq"); } @@ -335,7 +322,7 @@ void PairSpinSocNeel::coeff(int narg, char **arg) if (!allocated) allocate(); // set mech_flag to 1 if magneto-mech simulation -//no longer correct: can be hybrid without magneto-mech + //no longer correct: can be hybrid without magneto-mech => needs review/correction if (strstr(force->pair_style,"pair/spin")) { mech_flag = 0; } else if (strstr(force->pair_style,"hybrid/overlay")) { @@ -377,7 +364,6 @@ void PairSpinSocNeel::coeff(int narg, char **arg) } - /* ---------------------------------------------------------------------- init specific to this pair style ------------------------------------------------------------------------- */ @@ -389,7 +375,7 @@ void PairSpinSocNeel::init_style() neighbor->request(this,instance_me); - // check this half/full request + // check this half/full request => to be verified #define FULLNEI #if defined FULLNEI int irequest = neighbor->request(this,instance_me); @@ -469,7 +455,6 @@ void PairSpinSocNeel::read_restart(FILE *fp) } } - /* ---------------------------------------------------------------------- proc 0 writes to restart file ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_soc_neel.h b/src/SPIN/pair_spin_soc_neel.h index ce9c76eb49..4584ddb9eb 100755 --- a/src/SPIN/pair_spin_soc_neel.h +++ b/src/SPIN/pair_spin_soc_neel.h @@ -39,26 +39,21 @@ class PairSpinSocNeel : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_soc_neel(int, int, double, double *, double *, double *,double *, double *); - void compute_soc_mech_neel(int, int, double, double *, double *, double *,double *, double *); + void compute_soc_neel(int, int, double, double rij[3], double fmi[3], double fmj[3],double spi[3], double spj[3]); + void compute_soc_mech_neel(int, int, double, double rij[3], double fi[3], double fj[3],double spi[3], double spj[3]); - int soc_neel_flag; // soc neel flag - int mech_flag; // mech calc. flag + int soc_neel_flag; // soc neel flag + int mech_flag; // mech calc. flag double cut_soc_global; - double **cut_soc_neel; // cutoff distance exchange + double **cut_soc_neel; // cutoff distance exchange protected: int newton_pair_spin; double hbar; - double **K1, **K1_mech; // exchange coeffs Kij - double **K2, **K3; // K1 in eV, K2 adim, K3 in Ang - - double *spi, *spj; // temp. spin vals. in compute - double *fi, *fj; // temp. mech. forces in compute - double *fmi, *fmj; // temp. mag. forces in compute - double *rij; // norm. inter atomic vectors + double **K1, **K1_mech; // exchange coeffs Kij + double **K2, **K3; // K1 in eV, K2 adim, K3 in Ang void allocate(); }; diff --git a/src/atom.cpp b/src/atom.cpp index a847719e7e..86ef309f09 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -98,7 +98,8 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) rho = drho = e = de = cv = NULL; vest = NULL; - // USER-SPIN + // SPIN package + mumag = NULL; sp = fm = NULL; @@ -172,7 +173,8 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) radius_flag = rmass_flag = 0; ellipsoid_flag = line_flag = tri_flag = body_flag = 0; - //Magnetic flags + // magnetic flags + sp_flag = mumag_flag = 0; vfrac_flag = 0; @@ -428,7 +430,8 @@ void Atom::create_avec(const char *style, int narg, char **arg, int trysuffix) radius_flag = rmass_flag = 0; ellipsoid_flag = line_flag = tri_flag = body_flag = 0; - //Magnetic flags + // magnetic flags + sp_flag = mumag_flag = 0; vfrac_flag = 0; diff --git a/src/atom.h b/src/atom.h index 8e7f9811ac..285f067e24 100644 --- a/src/atom.h +++ b/src/atom.h @@ -62,6 +62,7 @@ class Atom : protected Pointers { int *ellipsoid,*line,*tri,*body; // SPIN package + double *mumag, **sp; double **fm; From 2bfd30f7d7736679edb097120369549949053f2a Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 4 Dec 2017 09:04:00 -0700 Subject: [PATCH 052/675] Delete in.BFO --- examples/SPIN/in.BFO | 109 ------------------------------------------- 1 file changed, 109 deletions(-) delete mode 100644 examples/SPIN/in.BFO diff --git a/examples/SPIN/in.BFO b/examples/SPIN/in.BFO deleted file mode 100644 index aee3454765..0000000000 --- a/examples/SPIN/in.BFO +++ /dev/null @@ -1,109 +0,0 @@ -################### -#######Init######## -################### - -clear -#setting units to metal (Ang, picosecs, eV, ...): -units metal - -#setting dimension of the system (N=2 or 3): -dimension 3 - -#setting boundary conditions. (p for periodic, f for fixed, ...) -boundary p p f - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -#why? -atom_modify map array - -#newton off for pair spin in SEQNEI -#newton off off - -########################### -#######Create atoms######## -########################### - -#Lattice constant of sc Iron atoms of BFO -lattice sc 3.96 - -#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen -#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 17.0 0.0 17.0 0.0 5.0 - -#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. -create_box 1 box - -#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... -#Entries: atom type, -create_atoms 1 box - -#Replicating NxNxN the entire set of atoms -#replicate 1 1 1 - - -####################### -#######Settings######## -####################### - -#Setting one or more properties of one or more atoms. -#Setting mass -mass 1 1.0 -#set group all mass 1.0 -#Setting spins orientation and moment -set group all spin/random 11 2.50 -#set group all spin 2.50 1.0 0.0 0.0 - -#Magnetic exchange interaction coefficient for bulk fcc Cobalt -pair_style pair/spin 5.7 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * exchange 5.7 -0.01575 0.0 1.965 -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 4.0 0.000109 1.0 1.0 1.0 -#Mex10 -pair_coeff * * me 4.0 0.00109 1.0 1.0 1.0 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 0.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -#fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 -fix 1 all force/spin anisotropy 0.0000035 0.0 0.0 1.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 0.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all nve/spin mpi - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm -compute mag all compute/spin -fix outmag all ave/time 1 1 500 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_BFO.dat format %20.16g - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 5000 dump_spin_BFO.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -run 30000 -#run 1 - From 148d26d9436dbd590d90e3acd9b1f0e826caa8f2 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 4 Dec 2017 09:04:20 -0700 Subject: [PATCH 053/675] Delete in.cobalt --- examples/SPIN/in.cobalt | 108 ---------------------------------------- 1 file changed, 108 deletions(-) delete mode 100644 examples/SPIN/in.cobalt diff --git a/examples/SPIN/in.cobalt b/examples/SPIN/in.cobalt deleted file mode 100644 index 9fff327a51..0000000000 --- a/examples/SPIN/in.cobalt +++ /dev/null @@ -1,108 +0,0 @@ -################### -#######Init######## -################### - -clear -#setting units to metal (Ang, picosecs, eV, ...): -units metal - -#setting dimension of the system (N=2 or 3): -dimension 3 - -#setting boundary conditions. (p for periodic, f for fixed, ...) -boundary p p p -#boundary f f f - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -#why? -atom_modify map array - -#newton off for pair spin in SEQNEI -#newton off off - -########################### -#######Create atoms######## -########################### - -#Lattice constant of fcc Cobalt -lattice fcc 3.54 -#lattice sc 2.50 - -#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen -#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 5.0 0.0 5.0 0.0 5.0 - -#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. -create_box 1 box - -#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... -#Entries: atom type, -create_atoms 1 box - -####################### -#######Settings######## -####################### - -#Setting one or more properties of one or more atoms. -#Setting mass -mass 1 1.0 -#set group all mass 1.0 -#Setting spins orientation and moment -#set group all spin/random 11 1.72 -set group all spin 1.72 1.0 0.0 0.0 - -#Magnetic exchange interaction coefficient for bulk fcc Cobalt -pair_style pair/spin 4.0 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -#pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 -pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 0.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -#fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 -fix 1 all force/spin anisotropy 0.00 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 0.0 0.0 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all integration/spin mpi - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm -compute mag all compute/spin -fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -#run 10000 -run 1 - From 925e647acfbb22ad826d160fc87190af105c7863 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 4 Dec 2017 09:04:24 -0700 Subject: [PATCH 054/675] Commit integ --- src/SPIN/fix_integration_spin.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 4e7bc961c4..1fd0e25d4c 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -36,7 +36,6 @@ #include "neigh_list.h" #include "pair.h" #include "pair_hybrid.h" -#include "pair_spin.h" #include "pair_spin_exchange.h" #include "pair_spin_me.h" #include "pair_spin_soc_dmi.h" @@ -547,7 +546,7 @@ void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl) sp[i][1] = g[1]; sp[i][2] = g[2]; - // renormalization (may not be necessary) + // renormalization (check if necessary) msq = g[0]*g[0] + g[1]*g[1] + g[2]*g[2]; scale = 1.0/sqrt(msq); From 749336ae1f05dd771bb431e057cf74801ffd885c Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 4 Dec 2017 09:09:25 -0700 Subject: [PATCH 055/675] Delete in.kagome --- examples/SPIN/in.kagome | 126 ---------------------------------------- 1 file changed, 126 deletions(-) delete mode 100644 examples/SPIN/in.kagome diff --git a/examples/SPIN/in.kagome b/examples/SPIN/in.kagome deleted file mode 100644 index c51c35ff73..0000000000 --- a/examples/SPIN/in.kagome +++ /dev/null @@ -1,126 +0,0 @@ -################### -#######Init######## -################### - -clear -#setting units to metal (Ang, picosecs, eV, ...): -units metal - -#setting dimension of the system (N=2 or 3): -dimension 3 - -#setting boundary conditions. (p for periodic, f for fixed, ...) -boundary p p p -#boundary f f f - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -#why? -atom_modify map array - -#newton off for pair spin in SEQNEI -#newton off off - -########################### -#######Create atoms######## -########################### - -#Lattice constant of fcc Cobalt -lattice fcc 3.54 -#lattice sc 2.50 - -#Test Kagome -#variable a equal sqrt(3.0)/8.0 -#variable b equal 3.0*sqrt(3.0)/8.0 -#variable c equal sqrt(3.0)/4.0 - -#lattice custom 2.5 a1 1.0 0.0 0.0 & -# a2 0.0 1.0 0.0 & -# a3 0.0 0.0 1.0 & -# basis 0.0 $a 0.0 & -# basis 0.25 $a 0.0 & -# basis 0.375 0.0 0.0 & -# basis 0.25 $b 0.0 & -# basis 0.5 $b 0.0 & -# basis 0.625 $c 0.0 - -#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen -#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 5.0 0.0 5.0 0.0 5.0 - -#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. -create_box 1 box - -#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... -#Entries: atom type, -create_atoms 1 box - -#Replicating NxNxN the entire set of atoms -#replicate 1 1 1 - - -####################### -#######Settings######## -####################### - -#Setting one or more properties of one or more atoms. -#Setting mass -mass 1 1.0 -#set group all mass 1.0 -#Setting spins orientation and moment -#set group all spin/random 11 1.72 -set group all spin 1.72 1.0 0.0 0.0 - -#Magnetic exchange interaction coefficient for bulk fcc Cobalt -pair_style pair/spin 4.0 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 0.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 1.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all nve/spin mpi - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm -compute mag all compute/spin -fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -run 2000 -#run 1 - From 1e9d91bd8f4c5efc3779e10292d53c7d2e217924 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 4 Dec 2017 09:09:36 -0700 Subject: [PATCH 056/675] Delete in.co_magnetomech --- examples/SPIN/in.co_magnetomech | 119 -------------------------------- 1 file changed, 119 deletions(-) delete mode 100644 examples/SPIN/in.co_magnetomech diff --git a/examples/SPIN/in.co_magnetomech b/examples/SPIN/in.co_magnetomech deleted file mode 100644 index 78f1e5d128..0000000000 --- a/examples/SPIN/in.co_magnetomech +++ /dev/null @@ -1,119 +0,0 @@ -################### -#######Init######## -################### - -clear -units metal -dimension 3 -boundary p p p -#boundary f f f - -#newton off - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -atom_modify map array - -########################### -#######Create atoms######## -########################### - -lattice fcc 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -create_atoms 1 box - -####################### -#######Settings######## -####################### - -#isolating 1 atom into a group -group single_spin id 10 - -#Setting one or more properties of one or more atoms. -mass 1 58.93 - -#Setting spins orientation and moment -set group all spin/random 31 1.72 -#set group all spin 1.72 0.0 0.0 1.0 -#set group single_spin spin/random 11 1.72 - -velocity all create 200 4928459 rot yes dist gaussian - -#Magneto-mechanic interactions for bulk fcc Cobalt -#pair_style pair/spin/exchange 4.0 -#pair_style eam/alloy -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 - -pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co -#pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co - -#pair_style pair/spin 4.0 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -#pair_coeff * * exchange 4.0 -0.0446928 0.003496 1.4885 -#pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 -pair_coeff * * pair/spin/exchange exchange 4.0 -0.0446928 0.003496 1.4885 - -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 - -#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) -#pair_coeff * * pair/spin/soc/neel neel 4.0 -0.003330282 0.864159 2.13731 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 1.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all integration/spin mpi - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] -variable mag_force equal f_1 - -thermo 10 -#thermo_style custom step time v_emag c_out_pe c_out_ke c_out_temp v_mag_force v_magnorm v_tmag etotal -thermo_style custom step time v_magnorm etotal -thermo_modify format float %20.15g - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 500 dump_VSRSV.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -#run 100 -run 10000 - From 6df54ac3ec4a1505fcae65c2e718fe814f9a5d89 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 4 Dec 2017 09:09:46 -0700 Subject: [PATCH 057/675] Delete in.cobalt_SD --- examples/SPIN/in.cobalt_SD | 126 ------------------------------------- 1 file changed, 126 deletions(-) delete mode 100644 examples/SPIN/in.cobalt_SD diff --git a/examples/SPIN/in.cobalt_SD b/examples/SPIN/in.cobalt_SD deleted file mode 100644 index c51c35ff73..0000000000 --- a/examples/SPIN/in.cobalt_SD +++ /dev/null @@ -1,126 +0,0 @@ -################### -#######Init######## -################### - -clear -#setting units to metal (Ang, picosecs, eV, ...): -units metal - -#setting dimension of the system (N=2 or 3): -dimension 3 - -#setting boundary conditions. (p for periodic, f for fixed, ...) -boundary p p p -#boundary f f f - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -#why? -atom_modify map array - -#newton off for pair spin in SEQNEI -#newton off off - -########################### -#######Create atoms######## -########################### - -#Lattice constant of fcc Cobalt -lattice fcc 3.54 -#lattice sc 2.50 - -#Test Kagome -#variable a equal sqrt(3.0)/8.0 -#variable b equal 3.0*sqrt(3.0)/8.0 -#variable c equal sqrt(3.0)/4.0 - -#lattice custom 2.5 a1 1.0 0.0 0.0 & -# a2 0.0 1.0 0.0 & -# a3 0.0 0.0 1.0 & -# basis 0.0 $a 0.0 & -# basis 0.25 $a 0.0 & -# basis 0.375 0.0 0.0 & -# basis 0.25 $b 0.0 & -# basis 0.5 $b 0.0 & -# basis 0.625 $c 0.0 - -#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen -#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 5.0 0.0 5.0 0.0 5.0 - -#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. -create_box 1 box - -#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... -#Entries: atom type, -create_atoms 1 box - -#Replicating NxNxN the entire set of atoms -#replicate 1 1 1 - - -####################### -#######Settings######## -####################### - -#Setting one or more properties of one or more atoms. -#Setting mass -mass 1 1.0 -#set group all mass 1.0 -#Setting spins orientation and moment -#set group all spin/random 11 1.72 -set group all spin 1.72 1.0 0.0 0.0 - -#Magnetic exchange interaction coefficient for bulk fcc Cobalt -pair_style pair/spin 4.0 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 0.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 1.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all nve/spin mpi - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm -compute mag all compute/spin -fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -run 2000 -#run 1 - From 5fe0b0a2cc85608b33dec912eea74ce20eec712f Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 4 Dec 2017 09:10:01 -0700 Subject: [PATCH 058/675] Delete in.cobalt_dev --- examples/SPIN/in.cobalt_dev | 126 ------------------------------------ 1 file changed, 126 deletions(-) delete mode 100644 examples/SPIN/in.cobalt_dev diff --git a/examples/SPIN/in.cobalt_dev b/examples/SPIN/in.cobalt_dev deleted file mode 100644 index c51c35ff73..0000000000 --- a/examples/SPIN/in.cobalt_dev +++ /dev/null @@ -1,126 +0,0 @@ -################### -#######Init######## -################### - -clear -#setting units to metal (Ang, picosecs, eV, ...): -units metal - -#setting dimension of the system (N=2 or 3): -dimension 3 - -#setting boundary conditions. (p for periodic, f for fixed, ...) -boundary p p p -#boundary f f f - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -#why? -atom_modify map array - -#newton off for pair spin in SEQNEI -#newton off off - -########################### -#######Create atoms######## -########################### - -#Lattice constant of fcc Cobalt -lattice fcc 3.54 -#lattice sc 2.50 - -#Test Kagome -#variable a equal sqrt(3.0)/8.0 -#variable b equal 3.0*sqrt(3.0)/8.0 -#variable c equal sqrt(3.0)/4.0 - -#lattice custom 2.5 a1 1.0 0.0 0.0 & -# a2 0.0 1.0 0.0 & -# a3 0.0 0.0 1.0 & -# basis 0.0 $a 0.0 & -# basis 0.25 $a 0.0 & -# basis 0.375 0.0 0.0 & -# basis 0.25 $b 0.0 & -# basis 0.5 $b 0.0 & -# basis 0.625 $c 0.0 - -#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen -#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 5.0 0.0 5.0 0.0 5.0 - -#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. -create_box 1 box - -#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... -#Entries: atom type, -create_atoms 1 box - -#Replicating NxNxN the entire set of atoms -#replicate 1 1 1 - - -####################### -#######Settings######## -####################### - -#Setting one or more properties of one or more atoms. -#Setting mass -mass 1 1.0 -#set group all mass 1.0 -#Setting spins orientation and moment -#set group all spin/random 11 1.72 -set group all spin 1.72 1.0 0.0 0.0 - -#Magnetic exchange interaction coefficient for bulk fcc Cobalt -pair_style pair/spin 4.0 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 0.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 1.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all nve/spin mpi - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm -compute mag all compute/spin -fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -run 2000 -#run 1 - From ab200cff062c4f913abed863bf8a7bc94b53b502 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 9 Jan 2018 09:48:15 -0700 Subject: [PATCH 059/675] - linked list in the integration algorithm - new version of the coord2sector function - possible to read_data a spin .data file --- examples/SPIN/Norm_randXY_8x8x32.data | 8207 +++++++++++++++++++++++++ examples/SPIN/in.spin.cobalt | 30 +- examples/SPIN/in.spin.read_data | 88 + examples/SPIN/in.spin.restart | 109 + examples/SPIN/vmd_nano.vmd | 79 + src/SPIN/atom_vec_spin.cpp | 2 +- src/SPIN/fix_integration_spin.cpp | 216 +- src/SPIN/fix_integration_spin.h | 17 +- src/SPIN/pair_spin_exchange.cpp | 73 +- src/SPIN/pair_spin_exchange.h | 7 +- src/SPIN/pair_spin_soc_dmi.cpp | 91 +- src/SPIN/pair_spin_soc_dmi.h | 9 +- src/SPIN/pair_spin_soc_neel.cpp | 123 +- src/SPIN/pair_spin_soc_neel.h | 8 +- src/atom.h | 1 + 15 files changed, 8791 insertions(+), 269 deletions(-) create mode 100644 examples/SPIN/Norm_randXY_8x8x32.data create mode 100644 examples/SPIN/in.spin.read_data create mode 100644 examples/SPIN/in.spin.restart create mode 100644 examples/SPIN/vmd_nano.vmd diff --git a/examples/SPIN/Norm_randXY_8x8x32.data b/examples/SPIN/Norm_randXY_8x8x32.data new file mode 100644 index 0000000000..d239bb6ca0 --- /dev/null +++ b/examples/SPIN/Norm_randXY_8x8x32.data @@ -0,0 +1,8207 @@ +LAMMPS data file via write_data, version 4 May 2017, timestep = 0 + +8192 atoms +1 atom types + +0.0000000000000000e+00 2.8320000000000000e+01 xlo xhi +0.0000000000000000e+00 2.8320000000000000e+01 ylo yhi +0.0000000000000000e+00 1.1328000000000000e+02 zlo zhi + +Masses + +1 58.93 + +Atoms # spin + +1 1 1.72 0.0 0.0 0.0 0.52887 -0.848703 1.0 +2 1 1.72 1.77 1.77 0.0 -0.745115 -0.666936 1.0 +3 1 1.72 1.77 0.0 1.77 -0.989437 -0.144964 1.0 +4 1 1.72 0.0 1.77 1.77 0.999926 -0.0121449 1.0 +5 1 1.72 3.54 0.0 0.0 0.377063 -0.926188 1.0 +6 1 1.72 5.31 1.77 0.0 0.412944 0.910756 1.0 +7 1 1.72 5.31 0.0 1.77 -0.999979 0.00650985 1.0 +8 1 1.72 3.54 1.77 1.77 0.535453 -0.844565 1.0 +9 1 1.72 7.0799999 0.0 0.0 -0.986135 0.165942 1.0 +10 1 1.72 8.8500004 1.77 0.0 -0.37352 -0.927622 1.0 +11 1 1.72 8.8500004 0.0 1.77 -0.926878 0.375363 1.0 +12 1 1.72 7.0799999 1.77 1.77 -0.690063 -0.72375 1.0 +13 1 1.72 10.6199999 0.0 0.0 -0.7204 -0.693559 1.0 +14 1 1.72 12.3900004 1.77 0.0 -0.832046 -0.554707 1.0 +15 1 1.72 12.3900004 0.0 1.77 0.23719 0.971463 1.0 +16 1 1.72 10.6199999 1.77 1.77 0.456617 -0.889663 1.0 +17 1 1.72 14.1599999 0.0 0.0 -0.661715 0.749755 1.0 +18 1 1.72 15.9300004 1.77 0.0 -0.847309 -0.531099 1.0 +19 1 1.72 15.9300004 0.0 1.77 -0.956536 0.291614 1.0 +20 1 1.72 14.1599999 1.77 1.77 -0.770778 -0.637104 1.0 +21 1 1.72 17.7000008 0.0 0.0 -0.896558 -0.442927 1.0 +22 1 1.72 19.4699993 1.77 0.0 0.557673 0.830061 1.0 +23 1 1.72 19.4699993 0.0 1.77 0.983224 0.182403 1.0 +24 1 1.72 17.7000008 1.77 1.77 -0.939201 0.343368 1.0 +25 1 1.72 21.2399998 0.0 0.0 0.894393 0.447281 1.0 +26 1 1.72 23.0100002 1.77 0.0 0.484661 0.874702 1.0 +27 1 1.72 23.0100002 0.0 1.77 0.525609 -0.850726 1.0 +28 1 1.72 21.2399998 1.77 1.77 0.551899 0.833911 1.0 +29 1 1.72 24.7800007 0.0 0.0 -0.307979 0.951393 1.0 +30 1 1.72 26.5499993 1.77 0.0 -0.993353 -0.115107 1.0 +31 1 1.72 26.5499993 0.0 1.77 0.786777 -0.617237 1.0 +32 1 1.72 24.7800007 1.77 1.77 -0.646691 0.762752 1.0 +33 1 1.72 0.0 3.54 0.0 0.119106 -0.992881 1.0 +34 1 1.72 1.77 5.31 0.0 0.719383 0.694614 1.0 +35 1 1.72 1.77 3.54 1.77 -0.704699 0.709506 1.0 +36 1 1.72 0.0 5.31 1.77 0.795511 -0.605939 1.0 +37 1 1.72 3.54 3.54 0.0 -0.97 -0.243107 1.0 +38 1 1.72 5.31 5.31 0.0 0.976076 0.217428 1.0 +39 1 1.72 5.31 3.54 1.77 0.735471 -0.677556 1.0 +40 1 1.72 3.54 5.31 1.77 -0.319137 -0.947708 1.0 +41 1 1.72 7.0799999 3.54 0.0 -0.610942 0.791675 1.0 +42 1 1.72 8.8500004 5.31 0.0 -0.679543 0.733635 1.0 +43 1 1.72 8.8500004 3.54 1.77 0.983607 -0.180324 1.0 +44 1 1.72 7.0799999 5.31 1.77 -0.217118 -0.976145 1.0 +45 1 1.72 10.6199999 3.54 0.0 -0.997762 0.0668716 1.0 +46 1 1.72 12.3900004 5.31 0.0 0.275194 -0.961389 1.0 +47 1 1.72 12.3900004 3.54 1.77 -0.828419 -0.560108 1.0 +48 1 1.72 10.6199999 5.31 1.77 0.118246 -0.992984 1.0 +49 1 1.72 14.1599999 3.54 0.0 0.737418 0.675437 1.0 +50 1 1.72 15.9300004 5.31 0.0 0.723539 -0.690283 1.0 +51 1 1.72 15.9300004 3.54 1.77 0.445177 0.895443 1.0 +52 1 1.72 14.1599999 5.31 1.77 -0.0224847 -0.999747 1.0 +53 1 1.72 17.7000008 3.54 0.0 -0.0340097 0.999422 1.0 +54 1 1.72 19.4699993 5.31 0.0 -0.842076 -0.539358 1.0 +55 1 1.72 19.4699993 3.54 1.77 0.628732 -0.777622 1.0 +56 1 1.72 17.7000008 5.31 1.77 -0.710873 -0.70332 1.0 +57 1 1.72 21.2399998 3.54 0.0 -0.997492 0.0707798 1.0 +58 1 1.72 23.0100002 5.31 0.0 -0.643338 -0.765582 1.0 +59 1 1.72 23.0100002 3.54 1.77 -0.891542 0.452938 1.0 +60 1 1.72 21.2399998 5.31 1.77 -0.576343 -0.817208 1.0 +61 1 1.72 24.7800007 3.54 0.0 0.915658 -0.401959 1.0 +62 1 1.72 26.5499993 5.31 0.0 -0.674018 -0.738715 1.0 +63 1 1.72 26.5499993 3.54 1.77 -0.92775 -0.373203 1.0 +64 1 1.72 24.7800007 5.31 1.77 -0.336441 0.941705 1.0 +65 1 1.72 0.0 7.0799999 0.0 0.499974 0.86604 1.0 +66 1 1.72 1.77 8.8500004 0.0 -0.582403 0.8129 1.0 +67 1 1.72 1.77 7.0799999 1.77 0.46326 -0.886222 1.0 +68 1 1.72 0.0 8.8500004 1.77 0.812676 -0.582716 1.0 +69 1 1.72 3.54 7.0799999 0.0 0.572515 0.819894 1.0 +70 1 1.72 5.31 8.8500004 0.0 -0.765807 -0.64307 1.0 +71 1 1.72 5.31 7.0799999 1.77 0.474871 0.880056 1.0 +72 1 1.72 3.54 8.8500004 1.77 -0.975682 -0.219192 1.0 +73 1 1.72 7.0799999 7.0799999 0.0 -0.810957 0.585105 1.0 +74 1 1.72 8.8500004 8.8500004 0.0 -0.877575 0.479439 1.0 +75 1 1.72 8.8500004 7.0799999 1.77 0.824057 -0.566506 1.0 +76 1 1.72 7.0799999 8.8500004 1.77 0.297271 0.954793 1.0 +77 1 1.72 10.6199999 7.0799999 0.0 -0.681778 -0.731559 1.0 +78 1 1.72 12.3900004 8.8500004 0.0 -0.76147 0.6482 1.0 +79 1 1.72 12.3900004 7.0799999 1.77 -0.486873 0.873473 1.0 +80 1 1.72 10.6199999 8.8500004 1.77 0.00912428 -0.999958 1.0 +81 1 1.72 14.1599999 7.0799999 0.0 0.713557 0.700597 1.0 +82 1 1.72 15.9300004 8.8500004 0.0 0.868807 -0.495151 1.0 +83 1 1.72 15.9300004 7.0799999 1.77 -1 -0.000534854 1.0 +84 1 1.72 14.1599999 8.8500004 1.77 -0.574785 0.818304 1.0 +85 1 1.72 17.7000008 7.0799999 0.0 0.989393 0.145267 1.0 +86 1 1.72 19.4699993 8.8500004 0.0 -0.999806 -0.0197183 1.0 +87 1 1.72 19.4699993 7.0799999 1.77 0.4586 -0.888643 1.0 +88 1 1.72 17.7000008 8.8500004 1.77 -0.883298 -0.468811 1.0 +89 1 1.72 21.2399998 7.0799999 0.0 -0.824627 0.565677 1.0 +90 1 1.72 23.0100002 8.8500004 0.0 -0.832761 0.553633 1.0 +91 1 1.72 23.0100002 7.0799999 1.77 -0.619129 -0.78529 1.0 +92 1 1.72 21.2399998 8.8500004 1.77 -0.146701 -0.989181 1.0 +93 1 1.72 24.7800007 7.0799999 0.0 -0.730554 0.682855 1.0 +94 1 1.72 26.5499993 8.8500004 0.0 -0.969609 -0.244661 1.0 +95 1 1.72 26.5499993 7.0799999 1.77 0.833097 0.553128 1.0 +96 1 1.72 24.7800007 8.8500004 1.77 -0.236089 0.971731 1.0 +97 1 1.72 0.0 10.6199999 0.0 -0.367374 -0.930073 1.0 +98 1 1.72 1.77 12.3900004 0.0 0.881557 -0.472078 1.0 +99 1 1.72 1.77 10.6199999 1.77 0.532092 -0.846686 1.0 +100 1 1.72 0.0 12.3900004 1.77 0.214293 -0.976769 1.0 +101 1 1.72 3.54 10.6199999 0.0 0.952842 0.303466 1.0 +102 1 1.72 5.31 12.3900004 0.0 0.704914 0.709293 1.0 +103 1 1.72 5.31 10.6199999 1.77 -0.379284 0.92528 1.0 +104 1 1.72 3.54 12.3900004 1.77 0.474349 0.880337 1.0 +105 1 1.72 7.0799999 10.6199999 0.0 -0.617116 0.786872 1.0 +106 1 1.72 8.8500004 12.3900004 0.0 -0.999836 0.0181093 1.0 +107 1 1.72 8.8500004 10.6199999 1.77 0.0846455 0.996411 1.0 +108 1 1.72 7.0799999 12.3900004 1.77 0.857559 0.514386 1.0 +109 1 1.72 10.6199999 10.6199999 0.0 0.567582 0.823317 1.0 +110 1 1.72 12.3900004 12.3900004 0.0 -0.966803 0.255521 1.0 +111 1 1.72 12.3900004 10.6199999 1.77 -0.675642 -0.73723 1.0 +112 1 1.72 10.6199999 12.3900004 1.77 -0.999943 -0.0106872 1.0 +113 1 1.72 14.1599999 10.6199999 0.0 -0.990729 0.135851 1.0 +114 1 1.72 15.9300004 12.3900004 0.0 -0.599943 0.800043 1.0 +115 1 1.72 15.9300004 10.6199999 1.77 0.970749 0.240097 1.0 +116 1 1.72 14.1599999 12.3900004 1.77 0.850547 -0.525898 1.0 +117 1 1.72 17.7000008 10.6199999 0.0 0.328418 -0.944533 1.0 +118 1 1.72 19.4699993 12.3900004 0.0 -0.644174 -0.764879 1.0 +119 1 1.72 19.4699993 10.6199999 1.77 0.380357 0.92484 1.0 +120 1 1.72 17.7000008 12.3900004 1.77 0.512588 -0.858635 1.0 +121 1 1.72 21.2399998 10.6199999 0.0 -0.994323 -0.106404 1.0 +122 1 1.72 23.0100002 12.3900004 0.0 0.757848 -0.652431 1.0 +123 1 1.72 23.0100002 10.6199999 1.77 -0.453043 0.891489 1.0 +124 1 1.72 21.2399998 12.3900004 1.77 -0.108525 -0.994094 1.0 +125 1 1.72 24.7800007 10.6199999 0.0 -0.951461 -0.30777 1.0 +126 1 1.72 26.5499993 12.3900004 0.0 -0.156148 -0.987734 1.0 +127 1 1.72 26.5499993 10.6199999 1.77 -0.0498593 0.998756 1.0 +128 1 1.72 24.7800007 12.3900004 1.77 -0.765373 0.643587 1.0 +129 1 1.72 0.0 0.0 3.54 0.102937 -0.994688 1.0 +130 1 1.72 1.77 1.77 3.54 0.521765 -0.853089 1.0 +131 1 1.72 1.77 0.0 5.31 0.782175 -0.623058 1.0 +132 1 1.72 0.0 1.77 5.31 -0.52733 0.84966 1.0 +133 1 1.72 3.54 0.0 3.54 -0.866538 0.499111 1.0 +134 1 1.72 5.31 1.77 3.54 0.688635 0.725108 1.0 +135 1 1.72 5.31 0.0 5.31 -0.993703 0.112043 1.0 +136 1 1.72 3.54 1.77 5.31 0.63582 -0.771837 1.0 +137 1 1.72 7.0799999 0.0 3.54 -0.780124 -0.625625 1.0 +138 1 1.72 8.8500004 1.77 3.54 -0.9995 0.0316303 1.0 +139 1 1.72 8.8500004 0.0 5.31 -0.60287 -0.797839 1.0 +140 1 1.72 7.0799999 1.77 5.31 0.668511 -0.743702 1.0 +141 1 1.72 10.6199999 0.0 3.54 0.772127 0.635468 1.0 +142 1 1.72 12.3900004 1.77 3.54 -0.477427 0.878671 1.0 +143 1 1.72 12.3900004 0.0 5.31 0.948008 -0.318247 1.0 +144 1 1.72 10.6199999 1.77 5.31 -0.84749 -0.530812 1.0 +145 1 1.72 14.1599999 0.0 3.54 -0.611867 0.790961 1.0 +146 1 1.72 15.9300004 1.77 3.54 0.999844 0.0176539 1.0 +147 1 1.72 15.9300004 0.0 5.31 -0.439551 -0.898218 1.0 +148 1 1.72 14.1599999 1.77 5.31 0.221059 -0.97526 1.0 +149 1 1.72 17.7000008 0.0 3.54 0.362034 -0.932165 1.0 +150 1 1.72 19.4699993 1.77 3.54 0.990126 -0.140181 1.0 +151 1 1.72 19.4699993 0.0 5.31 -0.901732 -0.432295 1.0 +152 1 1.72 17.7000008 1.77 5.31 -0.539132 0.842222 1.0 +153 1 1.72 21.2399998 0.0 3.54 0.8064 -0.591371 1.0 +154 1 1.72 23.0100002 1.77 3.54 -0.634078 -0.773269 1.0 +155 1 1.72 23.0100002 0.0 5.31 -0.82646 -0.562995 1.0 +156 1 1.72 21.2399998 1.77 5.31 0.54415 -0.838988 1.0 +157 1 1.72 24.7800007 0.0 3.54 0.168534 -0.985696 1.0 +158 1 1.72 26.5499993 1.77 3.54 0.467956 0.883752 1.0 +159 1 1.72 26.5499993 0.0 5.31 -0.432586 -0.901593 1.0 +160 1 1.72 24.7800007 1.77 5.31 0.758413 -0.651774 1.0 +161 1 1.72 0.0 3.54 3.54 -0.942909 -0.33305 1.0 +162 1 1.72 1.77 5.31 3.54 0.909319 0.416099 1.0 +163 1 1.72 1.77 3.54 5.31 -0.443879 0.896087 1.0 +164 1 1.72 0.0 5.31 5.31 0.00137294 -0.999999 1.0 +165 1 1.72 3.54 3.54 3.54 0.463786 0.885947 1.0 +166 1 1.72 5.31 5.31 3.54 0.571784 0.820404 1.0 +167 1 1.72 5.31 3.54 5.31 -0.775086 0.631856 1.0 +168 1 1.72 3.54 5.31 5.31 -0.852559 -0.522631 1.0 +169 1 1.72 7.0799999 3.54 3.54 0.615898 0.787826 1.0 +170 1 1.72 8.8500004 5.31 3.54 0.665727 -0.746196 1.0 +171 1 1.72 8.8500004 3.54 5.31 0.348981 -0.93713 1.0 +172 1 1.72 7.0799999 5.31 5.31 -0.984144 -0.177372 1.0 +173 1 1.72 10.6199999 3.54 3.54 -0.118519 -0.992952 1.0 +174 1 1.72 12.3900004 5.31 3.54 0.273523 0.961865 1.0 +175 1 1.72 12.3900004 3.54 5.31 -0.563501 -0.826116 1.0 +176 1 1.72 10.6199999 5.31 5.31 0.885827 0.464016 1.0 +177 1 1.72 14.1599999 3.54 3.54 0.547215 0.836992 1.0 +178 1 1.72 15.9300004 5.31 3.54 0.00952804 0.999955 1.0 +179 1 1.72 15.9300004 3.54 5.31 -0.985737 -0.168295 1.0 +180 1 1.72 14.1599999 5.31 5.31 -0.324131 -0.946012 1.0 +181 1 1.72 17.7000008 3.54 3.54 0.926524 -0.376235 1.0 +182 1 1.72 19.4699993 5.31 3.54 0.86068 0.509147 1.0 +183 1 1.72 19.4699993 3.54 5.31 -0.990706 -0.136021 1.0 +184 1 1.72 17.7000008 5.31 5.31 0.892393 -0.451258 1.0 +185 1 1.72 21.2399998 3.54 3.54 -0.303547 -0.952816 1.0 +186 1 1.72 23.0100002 5.31 3.54 0.920916 0.389761 1.0 +187 1 1.72 23.0100002 3.54 5.31 -0.777103 -0.629373 1.0 +188 1 1.72 21.2399998 5.31 5.31 0.510707 0.859755 1.0 +189 1 1.72 24.7800007 3.54 3.54 -0.65805 0.752974 1.0 +190 1 1.72 26.5499993 5.31 3.54 -0.804723 0.593651 1.0 +191 1 1.72 26.5499993 3.54 5.31 0.408331 -0.912834 1.0 +192 1 1.72 24.7800007 5.31 5.31 0.746295 0.665615 1.0 +193 1 1.72 0.0 7.0799999 3.54 0.492599 -0.870256 1.0 +194 1 1.72 1.77 8.8500004 3.54 0.767038 -0.641602 1.0 +195 1 1.72 1.77 7.0799999 5.31 -0.840902 -0.541187 1.0 +196 1 1.72 0.0 8.8500004 5.31 0.640285 -0.768137 1.0 +197 1 1.72 3.54 7.0799999 3.54 0.142679 -0.989769 1.0 +198 1 1.72 5.31 8.8500004 3.54 -0.955626 -0.294582 1.0 +199 1 1.72 5.31 7.0799999 5.31 0.74547 -0.666539 1.0 +200 1 1.72 3.54 8.8500004 5.31 -0.661162 0.750243 1.0 +201 1 1.72 7.0799999 7.0799999 3.54 0.771617 -0.636088 1.0 +202 1 1.72 8.8500004 8.8500004 3.54 0.629308 0.777156 1.0 +203 1 1.72 8.8500004 7.0799999 5.31 -0.547181 0.837014 1.0 +204 1 1.72 7.0799999 8.8500004 5.31 -0.993312 0.115457 1.0 +205 1 1.72 10.6199999 7.0799999 3.54 0.834975 0.550288 1.0 +206 1 1.72 12.3900004 8.8500004 3.54 0.664691 0.747118 1.0 +207 1 1.72 12.3900004 7.0799999 5.31 -0.200111 -0.979773 1.0 +208 1 1.72 10.6199999 8.8500004 5.31 0.801035 0.598618 1.0 +209 1 1.72 14.1599999 7.0799999 3.54 -0.58623 -0.810144 1.0 +210 1 1.72 15.9300004 8.8500004 3.54 0.904936 -0.425548 1.0 +211 1 1.72 15.9300004 7.0799999 5.31 0.666075 0.745885 1.0 +212 1 1.72 14.1599999 8.8500004 5.31 0.325616 -0.945502 1.0 +213 1 1.72 17.7000008 7.0799999 3.54 -0.999906 -0.0136787 1.0 +214 1 1.72 19.4699993 8.8500004 3.54 0.750515 -0.660853 1.0 +215 1 1.72 19.4699993 7.0799999 5.31 -0.539904 0.841727 1.0 +216 1 1.72 17.7000008 8.8500004 5.31 -0.0929708 -0.995669 1.0 +217 1 1.72 21.2399998 7.0799999 3.54 -0.70959 -0.704614 1.0 +218 1 1.72 23.0100002 8.8500004 3.54 0.402659 -0.91535 1.0 +219 1 1.72 23.0100002 7.0799999 5.31 0.766076 -0.64275 1.0 +220 1 1.72 21.2399998 8.8500004 5.31 -0.983381 -0.181552 1.0 +221 1 1.72 24.7800007 7.0799999 3.54 -0.573555 -0.819167 1.0 +222 1 1.72 26.5499993 8.8500004 3.54 0.842039 -0.539416 1.0 +223 1 1.72 26.5499993 7.0799999 5.31 -0.914245 0.405161 1.0 +224 1 1.72 24.7800007 8.8500004 5.31 -0.975994 -0.217798 1.0 +225 1 1.72 0.0 10.6199999 3.54 -0.949605 0.313448 1.0 +226 1 1.72 1.77 12.3900004 3.54 -0.911048 0.412301 1.0 +227 1 1.72 1.77 10.6199999 5.31 0.878063 0.478545 1.0 +228 1 1.72 0.0 12.3900004 5.31 0.404541 0.91452 1.0 +229 1 1.72 3.54 10.6199999 3.54 -0.98993 0.141557 1.0 +230 1 1.72 5.31 12.3900004 3.54 -0.662101 -0.749415 1.0 +231 1 1.72 5.31 10.6199999 5.31 -0.970876 0.239583 1.0 +232 1 1.72 3.54 12.3900004 5.31 -0.927277 -0.374377 1.0 +233 1 1.72 7.0799999 10.6199999 3.54 -0.833108 -0.55311 1.0 +234 1 1.72 8.8500004 12.3900004 3.54 0.507726 -0.861519 1.0 +235 1 1.72 8.8500004 10.6199999 5.31 -0.745958 -0.665993 1.0 +236 1 1.72 7.0799999 12.3900004 5.31 -0.942675 0.333713 1.0 +237 1 1.72 10.6199999 10.6199999 3.54 -0.354976 -0.934875 1.0 +238 1 1.72 12.3900004 12.3900004 3.54 -0.975296 -0.220901 1.0 +239 1 1.72 12.3900004 10.6199999 5.31 0.767393 -0.641177 1.0 +240 1 1.72 10.6199999 12.3900004 5.31 0.0877828 0.99614 1.0 +241 1 1.72 14.1599999 10.6199999 3.54 -0.770025 -0.638013 1.0 +242 1 1.72 15.9300004 12.3900004 3.54 -0.791835 0.610734 1.0 +243 1 1.72 15.9300004 10.6199999 5.31 0.771802 0.635863 1.0 +244 1 1.72 14.1599999 12.3900004 5.31 -0.388481 0.921457 1.0 +245 1 1.72 17.7000008 10.6199999 3.54 -0.516274 -0.856423 1.0 +246 1 1.72 19.4699993 12.3900004 3.54 -0.877053 -0.480394 1.0 +247 1 1.72 19.4699993 10.6199999 5.31 -0.315767 -0.948837 1.0 +248 1 1.72 17.7000008 12.3900004 5.31 0.321353 0.94696 1.0 +249 1 1.72 21.2399998 10.6199999 3.54 0.314798 0.949159 1.0 +250 1 1.72 23.0100002 12.3900004 3.54 0.528894 0.848688 1.0 +251 1 1.72 23.0100002 10.6199999 5.31 -0.898401 0.439177 1.0 +252 1 1.72 21.2399998 12.3900004 5.31 0.616057 -0.787702 1.0 +253 1 1.72 24.7800007 10.6199999 3.54 0.987731 -0.156167 1.0 +254 1 1.72 26.5499993 12.3900004 3.54 -0.744935 -0.667137 1.0 +255 1 1.72 26.5499993 10.6199999 5.31 -0.817643 -0.575726 1.0 +256 1 1.72 24.7800007 12.3900004 5.31 0.876355 0.481665 1.0 +257 1 1.72 0.0 0.0 7.0799999 -0.76417 -0.645015 1.0 +258 1 1.72 1.77 1.77 7.0799999 0.999563 0.0295524 1.0 +259 1 1.72 1.77 0.0 8.8500004 0.190961 0.981598 1.0 +260 1 1.72 0.0 1.77 8.8500004 -0.64001 -0.768366 1.0 +261 1 1.72 3.54 0.0 7.0799999 0.88403 0.467429 1.0 +262 1 1.72 5.31 1.77 7.0799999 0.958535 -0.284975 1.0 +263 1 1.72 5.31 0.0 8.8500004 0.776799 -0.629749 1.0 +264 1 1.72 3.54 1.77 8.8500004 -0.683111 0.730315 1.0 +265 1 1.72 7.0799999 0.0 7.0799999 -0.995838 0.0911389 1.0 +266 1 1.72 8.8500004 1.77 7.0799999 0.780866 -0.624699 1.0 +267 1 1.72 8.8500004 0.0 8.8500004 0.647367 0.762178 1.0 +268 1 1.72 7.0799999 1.77 8.8500004 -0.922114 0.386919 1.0 +269 1 1.72 10.6199999 0.0 7.0799999 0.985785 -0.168011 1.0 +270 1 1.72 12.3900004 1.77 7.0799999 -0.180371 0.983599 1.0 +271 1 1.72 12.3900004 0.0 8.8500004 -0.499872 -0.8661 1.0 +272 1 1.72 10.6199999 1.77 8.8500004 -0.960807 -0.277219 1.0 +273 1 1.72 14.1599999 0.0 7.0799999 0.638432 -0.769678 1.0 +274 1 1.72 15.9300004 1.77 7.0799999 0.0595594 0.998225 1.0 +275 1 1.72 15.9300004 0.0 8.8500004 0.739189 -0.673498 1.0 +276 1 1.72 14.1599999 1.77 8.8500004 -0.0848226 0.996396 1.0 +277 1 1.72 17.7000008 0.0 7.0799999 0.349421 0.936966 1.0 +278 1 1.72 19.4699993 1.77 7.0799999 -0.798175 -0.602426 1.0 +279 1 1.72 19.4699993 0.0 8.8500004 -0.938818 0.344412 1.0 +280 1 1.72 17.7000008 1.77 8.8500004 -0.685349 0.728215 1.0 +281 1 1.72 21.2399998 0.0 7.0799999 -0.205427 -0.978672 1.0 +282 1 1.72 23.0100002 1.77 7.0799999 -0.859105 -0.511799 1.0 +283 1 1.72 23.0100002 0.0 8.8500004 -0.614751 -0.788721 1.0 +284 1 1.72 21.2399998 1.77 8.8500004 -0.47666 0.879088 1.0 +285 1 1.72 24.7800007 0.0 7.0799999 -0.934951 -0.354777 1.0 +286 1 1.72 26.5499993 1.77 7.0799999 -0.999997 -0.00224411 1.0 +287 1 1.72 26.5499993 0.0 8.8500004 -0.163091 0.986611 1.0 +288 1 1.72 24.7800007 1.77 8.8500004 0.499742 -0.866174 1.0 +289 1 1.72 0.0 3.54 7.0799999 0.102264 -0.994757 1.0 +290 1 1.72 1.77 5.31 7.0799999 -0.997159 -0.0753205 1.0 +291 1 1.72 1.77 3.54 8.8500004 0.834543 -0.550943 1.0 +292 1 1.72 0.0 5.31 8.8500004 -0.525364 -0.850878 1.0 +293 1 1.72 3.54 3.54 7.0799999 0.910126 -0.414332 1.0 +294 1 1.72 5.31 5.31 7.0799999 0.781711 -0.623641 1.0 +295 1 1.72 5.31 3.54 8.8500004 -0.794988 -0.606625 1.0 +296 1 1.72 3.54 5.31 8.8500004 -0.998955 -0.0457003 1.0 +297 1 1.72 7.0799999 3.54 7.0799999 0.790132 0.612937 1.0 +298 1 1.72 8.8500004 5.31 7.0799999 0.927007 0.375045 1.0 +299 1 1.72 8.8500004 3.54 8.8500004 0.945531 -0.325532 1.0 +300 1 1.72 7.0799999 5.31 8.8500004 -0.611068 -0.791578 1.0 +301 1 1.72 10.6199999 3.54 7.0799999 0.99999 0.00451469 1.0 +302 1 1.72 12.3900004 5.31 7.0799999 0.696323 -0.717729 1.0 +303 1 1.72 12.3900004 3.54 8.8500004 -0.619662 0.784869 1.0 +304 1 1.72 10.6199999 5.31 8.8500004 0.977704 0.209989 1.0 +305 1 1.72 14.1599999 3.54 7.0799999 -0.432218 -0.901769 1.0 +306 1 1.72 15.9300004 5.31 7.0799999 0.600977 0.799266 1.0 +307 1 1.72 15.9300004 3.54 8.8500004 0.762276 0.647252 1.0 +308 1 1.72 14.1599999 5.31 8.8500004 -0.739078 -0.67362 1.0 +309 1 1.72 17.7000008 3.54 7.0799999 0.914066 0.405565 1.0 +310 1 1.72 19.4699993 5.31 7.0799999 0.606461 -0.795113 1.0 +311 1 1.72 19.4699993 3.54 8.8500004 0.510159 0.86008 1.0 +312 1 1.72 17.7000008 5.31 8.8500004 0.777966 0.628307 1.0 +313 1 1.72 21.2399998 3.54 7.0799999 -0.201447 0.979499 1.0 +314 1 1.72 23.0100002 5.31 7.0799999 0.82692 -0.562319 1.0 +315 1 1.72 23.0100002 3.54 8.8500004 0.944298 0.329091 1.0 +316 1 1.72 21.2399998 5.31 8.8500004 0.98899 -0.147983 1.0 +317 1 1.72 24.7800007 3.54 7.0799999 0.489497 0.872005 1.0 +318 1 1.72 26.5499993 5.31 7.0799999 -0.0413378 0.999145 1.0 +319 1 1.72 26.5499993 3.54 8.8500004 -0.594529 -0.804074 1.0 +320 1 1.72 24.7800007 5.31 8.8500004 0.598738 -0.800945 1.0 +321 1 1.72 0.0 7.0799999 7.0799999 -0.551474 -0.834192 1.0 +322 1 1.72 1.77 8.8500004 7.0799999 -0.553147 0.833084 1.0 +323 1 1.72 1.77 7.0799999 8.8500004 0.708129 0.706083 1.0 +324 1 1.72 0.0 8.8500004 8.8500004 -0.481017 -0.876711 1.0 +325 1 1.72 3.54 7.0799999 7.0799999 0.987287 0.158946 1.0 +326 1 1.72 5.31 8.8500004 7.0799999 -0.97773 0.209868 1.0 +327 1 1.72 5.31 7.0799999 8.8500004 0.0401605 0.999193 1.0 +328 1 1.72 3.54 8.8500004 8.8500004 -0.971042 0.238907 1.0 +329 1 1.72 7.0799999 7.0799999 7.0799999 0.818053 0.575143 1.0 +330 1 1.72 8.8500004 8.8500004 7.0799999 0.898243 -0.439498 1.0 +331 1 1.72 8.8500004 7.0799999 8.8500004 0.928744 0.370721 1.0 +332 1 1.72 7.0799999 8.8500004 8.8500004 0.70865 0.705561 1.0 +333 1 1.72 10.6199999 7.0799999 7.0799999 -0.331938 0.943301 1.0 +334 1 1.72 12.3900004 8.8500004 7.0799999 -0.994363 -0.106031 1.0 +335 1 1.72 12.3900004 7.0799999 8.8500004 -0.717019 -0.697054 1.0 +336 1 1.72 10.6199999 8.8500004 8.8500004 -0.855686 0.517496 1.0 +337 1 1.72 14.1599999 7.0799999 7.0799999 0.758783 0.651344 1.0 +338 1 1.72 15.9300004 8.8500004 7.0799999 -0.377961 -0.925822 1.0 +339 1 1.72 15.9300004 7.0799999 8.8500004 -0.582549 -0.812796 1.0 +340 1 1.72 14.1599999 8.8500004 8.8500004 0.867741 -0.497017 1.0 +341 1 1.72 17.7000008 7.0799999 7.0799999 -0.594553 0.804056 1.0 +342 1 1.72 19.4699993 8.8500004 7.0799999 0.731616 0.681717 1.0 +343 1 1.72 19.4699993 7.0799999 8.8500004 0.988311 0.15245 1.0 +344 1 1.72 17.7000008 8.8500004 8.8500004 -0.424088 -0.905621 1.0 +345 1 1.72 21.2399998 7.0799999 7.0799999 -0.754172 0.656677 1.0 +346 1 1.72 23.0100002 8.8500004 7.0799999 -0.768766 -0.63953 1.0 +347 1 1.72 23.0100002 7.0799999 8.8500004 0.975989 0.217818 1.0 +348 1 1.72 21.2399998 8.8500004 8.8500004 0.58713 -0.809493 1.0 +349 1 1.72 24.7800007 7.0799999 7.0799999 -0.74033 -0.672244 1.0 +350 1 1.72 26.5499993 8.8500004 7.0799999 -0.429923 -0.902866 1.0 +351 1 1.72 26.5499993 7.0799999 8.8500004 -0.381756 0.924263 1.0 +352 1 1.72 24.7800007 8.8500004 8.8500004 0.992192 0.12472 1.0 +353 1 1.72 0.0 10.6199999 7.0799999 0.66691 -0.745138 1.0 +354 1 1.72 1.77 12.3900004 7.0799999 0.704829 0.709377 1.0 +355 1 1.72 1.77 10.6199999 8.8500004 0.413226 -0.910628 1.0 +356 1 1.72 0.0 12.3900004 8.8500004 0.720305 0.693657 1.0 +357 1 1.72 3.54 10.6199999 7.0799999 0.962599 -0.270931 1.0 +358 1 1.72 5.31 12.3900004 7.0799999 -0.547185 -0.837012 1.0 +359 1 1.72 5.31 10.6199999 8.8500004 0.328324 0.944565 1.0 +360 1 1.72 3.54 12.3900004 8.8500004 0.944473 0.32859 1.0 +361 1 1.72 7.0799999 10.6199999 7.0799999 0.54622 -0.837641 1.0 +362 1 1.72 8.8500004 12.3900004 7.0799999 -0.88829 0.459282 1.0 +363 1 1.72 8.8500004 10.6199999 8.8500004 -0.683155 -0.730273 1.0 +364 1 1.72 7.0799999 12.3900004 8.8500004 -0.571408 0.820666 1.0 +365 1 1.72 10.6199999 10.6199999 7.0799999 -0.941323 -0.337506 1.0 +366 1 1.72 12.3900004 12.3900004 7.0799999 -0.748181 0.663494 1.0 +367 1 1.72 12.3900004 10.6199999 8.8500004 -0.995752 0.0920712 1.0 +368 1 1.72 10.6199999 12.3900004 8.8500004 0.621285 -0.783585 1.0 +369 1 1.72 14.1599999 10.6199999 7.0799999 0.153803 -0.988102 1.0 +370 1 1.72 15.9300004 12.3900004 7.0799999 -0.630419 -0.776255 1.0 +371 1 1.72 15.9300004 10.6199999 8.8500004 -0.397134 0.917761 1.0 +372 1 1.72 14.1599999 12.3900004 8.8500004 0.464983 0.885319 1.0 +373 1 1.72 17.7000008 10.6199999 7.0799999 -0.708849 -0.70536 1.0 +374 1 1.72 19.4699993 12.3900004 7.0799999 -0.99481 0.101746 1.0 +375 1 1.72 19.4699993 10.6199999 8.8500004 0.993711 0.111978 1.0 +376 1 1.72 17.7000008 12.3900004 8.8500004 -0.351484 -0.936194 1.0 +377 1 1.72 21.2399998 10.6199999 7.0799999 -0.261889 0.965098 1.0 +378 1 1.72 23.0100002 12.3900004 7.0799999 -0.997563 0.0697777 1.0 +379 1 1.72 23.0100002 10.6199999 8.8500004 0.30784 0.951438 1.0 +380 1 1.72 21.2399998 12.3900004 8.8500004 0.289223 -0.957262 1.0 +381 1 1.72 24.7800007 10.6199999 7.0799999 -0.542298 0.840186 1.0 +382 1 1.72 26.5499993 12.3900004 7.0799999 0.756145 -0.654404 1.0 +383 1 1.72 26.5499993 10.6199999 8.8500004 -0.988561 -0.150824 1.0 +384 1 1.72 24.7800007 12.3900004 8.8500004 -0.582371 -0.812923 1.0 +385 1 1.72 0.0 0.0 10.6199999 0.404392 -0.914586 1.0 +386 1 1.72 1.77 1.77 10.6199999 0.999813 0.0193245 1.0 +387 1 1.72 1.77 0.0 12.3900004 -0.244812 -0.969571 1.0 +388 1 1.72 0.0 1.77 12.3900004 -0.508135 -0.861277 1.0 +389 1 1.72 3.54 0.0 10.6199999 -0.551125 0.834423 1.0 +390 1 1.72 5.31 1.77 10.6199999 -0.592875 -0.805294 1.0 +391 1 1.72 5.31 0.0 12.3900004 -0.981911 -0.189342 1.0 +392 1 1.72 3.54 1.77 12.3900004 -0.7248 0.68896 1.0 +393 1 1.72 7.0799999 0.0 10.6199999 0.712261 -0.701915 1.0 +394 1 1.72 8.8500004 1.77 10.6199999 0.0334894 -0.999439 1.0 +395 1 1.72 8.8500004 0.0 12.3900004 -0.852226 -0.523174 1.0 +396 1 1.72 7.0799999 1.77 12.3900004 0.903065 -0.429504 1.0 +397 1 1.72 10.6199999 0.0 10.6199999 0.552474 0.83353 1.0 +398 1 1.72 12.3900004 1.77 10.6199999 -0.807993 0.589192 1.0 +399 1 1.72 12.3900004 0.0 12.3900004 -0.859304 0.511466 1.0 +400 1 1.72 10.6199999 1.77 12.3900004 -0.99742 0.0717923 1.0 +401 1 1.72 14.1599999 0.0 10.6199999 0.398412 0.917206 1.0 +402 1 1.72 15.9300004 1.77 10.6199999 -0.792645 0.609683 1.0 +403 1 1.72 15.9300004 0.0 12.3900004 -0.969474 0.245195 1.0 +404 1 1.72 14.1599999 1.77 12.3900004 0.0785094 -0.996913 1.0 +405 1 1.72 17.7000008 0.0 10.6199999 -0.957014 0.290042 1.0 +406 1 1.72 19.4699993 1.77 10.6199999 0.763229 0.646129 1.0 +407 1 1.72 19.4699993 0.0 12.3900004 0.910663 -0.41315 1.0 +408 1 1.72 17.7000008 1.77 12.3900004 0.692484 0.721433 1.0 +409 1 1.72 21.2399998 0.0 10.6199999 -0.409511 0.912305 1.0 +410 1 1.72 23.0100002 1.77 10.6199999 -0.826001 -0.563669 1.0 +411 1 1.72 23.0100002 0.0 12.3900004 0.786133 0.618057 1.0 +412 1 1.72 21.2399998 1.77 12.3900004 -0.675514 -0.737347 1.0 +413 1 1.72 24.7800007 0.0 10.6199999 -0.982662 0.185409 1.0 +414 1 1.72 26.5499993 1.77 10.6199999 -0.999375 0.0353595 1.0 +415 1 1.72 26.5499993 0.0 12.3900004 0.902252 -0.431209 1.0 +416 1 1.72 24.7800007 1.77 12.3900004 -0.729489 0.683993 1.0 +417 1 1.72 0.0 3.54 10.6199999 0.303747 -0.952753 1.0 +418 1 1.72 1.77 5.31 10.6199999 0.738541 0.674209 1.0 +419 1 1.72 1.77 3.54 12.3900004 0.75732 0.653044 1.0 +420 1 1.72 0.0 5.31 12.3900004 0.834189 0.551479 1.0 +421 1 1.72 3.54 3.54 10.6199999 0.112428 -0.99366 1.0 +422 1 1.72 5.31 5.31 10.6199999 0.463584 0.886053 1.0 +423 1 1.72 5.31 3.54 12.3900004 -0.88277 -0.469805 1.0 +424 1 1.72 3.54 5.31 12.3900004 0.990582 0.136924 1.0 +425 1 1.72 7.0799999 3.54 10.6199999 -0.997494 0.0707471 1.0 +426 1 1.72 8.8500004 5.31 10.6199999 -0.994347 -0.10618 1.0 +427 1 1.72 8.8500004 3.54 12.3900004 0.983879 -0.178833 1.0 +428 1 1.72 7.0799999 5.31 12.3900004 -0.765746 0.643143 1.0 +429 1 1.72 10.6199999 3.54 10.6199999 0.479961 0.87729 1.0 +430 1 1.72 12.3900004 5.31 10.6199999 0.999532 0.0305924 1.0 +431 1 1.72 12.3900004 3.54 12.3900004 -0.986119 0.166043 1.0 +432 1 1.72 10.6199999 5.31 12.3900004 -0.830056 0.557679 1.0 +433 1 1.72 14.1599999 3.54 10.6199999 -0.979316 0.202335 1.0 +434 1 1.72 15.9300004 5.31 10.6199999 -0.925039 -0.379873 1.0 +435 1 1.72 15.9300004 3.54 12.3900004 0.945128 -0.326699 1.0 +436 1 1.72 14.1599999 5.31 12.3900004 0.651991 -0.758226 1.0 +437 1 1.72 17.7000008 3.54 10.6199999 -0.713337 0.700821 1.0 +438 1 1.72 19.4699993 5.31 10.6199999 0.0787721 0.996893 1.0 +439 1 1.72 19.4699993 3.54 12.3900004 0.826408 -0.563071 1.0 +440 1 1.72 17.7000008 5.31 12.3900004 -0.784047 0.620701 1.0 +441 1 1.72 21.2399998 3.54 10.6199999 -0.929462 -0.368919 1.0 +442 1 1.72 23.0100002 5.31 10.6199999 -0.214422 -0.976741 1.0 +443 1 1.72 23.0100002 3.54 12.3900004 0.837887 0.545844 1.0 +444 1 1.72 21.2399998 5.31 12.3900004 -0.650037 0.759903 1.0 +445 1 1.72 24.7800007 3.54 10.6199999 -0.458438 0.888727 1.0 +446 1 1.72 26.5499993 5.31 10.6199999 -0.804307 0.594214 1.0 +447 1 1.72 26.5499993 3.54 12.3900004 -0.798196 0.602398 1.0 +448 1 1.72 24.7800007 5.31 12.3900004 -0.592531 0.805548 1.0 +449 1 1.72 0.0 7.0799999 10.6199999 -0.659382 -0.751808 1.0 +450 1 1.72 1.77 8.8500004 10.6199999 0.973495 0.228708 1.0 +451 1 1.72 1.77 7.0799999 12.3900004 -0.276222 0.961094 1.0 +452 1 1.72 0.0 8.8500004 12.3900004 -0.610454 -0.792052 1.0 +453 1 1.72 3.54 7.0799999 10.6199999 -0.828213 0.560413 1.0 +454 1 1.72 5.31 8.8500004 10.6199999 0.363999 -0.931399 1.0 +455 1 1.72 5.31 7.0799999 12.3900004 -0.0847977 -0.996398 1.0 +456 1 1.72 3.54 8.8500004 12.3900004 -0.776218 -0.630465 1.0 +457 1 1.72 7.0799999 7.0799999 10.6199999 -0.702644 -0.711542 1.0 +458 1 1.72 8.8500004 8.8500004 10.6199999 0.716438 0.697651 1.0 +459 1 1.72 8.8500004 7.0799999 12.3900004 0.996411 -0.0846418 1.0 +460 1 1.72 7.0799999 8.8500004 12.3900004 0.822835 -0.56828 1.0 +461 1 1.72 10.6199999 7.0799999 10.6199999 -0.965659 0.259811 1.0 +462 1 1.72 12.3900004 8.8500004 10.6199999 0.483405 0.875397 1.0 +463 1 1.72 12.3900004 7.0799999 12.3900004 -0.483154 -0.875535 1.0 +464 1 1.72 10.6199999 8.8500004 12.3900004 0.648037 -0.761609 1.0 +465 1 1.72 14.1599999 7.0799999 10.6199999 -0.643312 -0.765604 1.0 +466 1 1.72 15.9300004 8.8500004 10.6199999 -0.0657458 -0.997836 1.0 +467 1 1.72 15.9300004 7.0799999 12.3900004 -0.00930552 -0.999957 1.0 +468 1 1.72 14.1599999 8.8500004 12.3900004 -0.0575205 -0.998344 1.0 +469 1 1.72 17.7000008 7.0799999 10.6199999 -0.680492 -0.732755 1.0 +470 1 1.72 19.4699993 8.8500004 10.6199999 0.808247 0.588844 1.0 +471 1 1.72 19.4699993 7.0799999 12.3900004 -0.401213 -0.915985 1.0 +472 1 1.72 17.7000008 8.8500004 12.3900004 -0.65603 -0.754735 1.0 +473 1 1.72 21.2399998 7.0799999 10.6199999 -0.780723 0.624877 1.0 +474 1 1.72 23.0100002 8.8500004 10.6199999 -0.62541 0.780297 1.0 +475 1 1.72 23.0100002 7.0799999 12.3900004 -0.52568 -0.850682 1.0 +476 1 1.72 21.2399998 8.8500004 12.3900004 0.32631 0.945263 1.0 +477 1 1.72 24.7800007 7.0799999 10.6199999 -0.889809 -0.456334 1.0 +478 1 1.72 26.5499993 8.8500004 10.6199999 -0.98862 -0.150436 1.0 +479 1 1.72 26.5499993 7.0799999 12.3900004 -0.886254 -0.4632 1.0 +480 1 1.72 24.7800007 8.8500004 12.3900004 0.573106 -0.819481 1.0 +481 1 1.72 0.0 10.6199999 10.6199999 -0.898685 0.438594 1.0 +482 1 1.72 1.77 12.3900004 10.6199999 -0.754171 -0.656678 1.0 +483 1 1.72 1.77 10.6199999 12.3900004 -0.108771 -0.994067 1.0 +484 1 1.72 0.0 12.3900004 12.3900004 0.483072 -0.87558 1.0 +485 1 1.72 3.54 10.6199999 10.6199999 -0.470916 0.882178 1.0 +486 1 1.72 5.31 12.3900004 10.6199999 0.3288 0.944399 1.0 +487 1 1.72 5.31 10.6199999 12.3900004 0.980535 -0.196343 1.0 +488 1 1.72 3.54 12.3900004 12.3900004 0.577396 -0.816465 1.0 +489 1 1.72 7.0799999 10.6199999 10.6199999 -0.194592 -0.980884 1.0 +490 1 1.72 8.8500004 12.3900004 10.6199999 -0.761101 0.648633 1.0 +491 1 1.72 8.8500004 10.6199999 12.3900004 0.999933 0.0116022 1.0 +492 1 1.72 7.0799999 12.3900004 12.3900004 0.826207 -0.563367 1.0 +493 1 1.72 10.6199999 10.6199999 10.6199999 -0.759279 -0.650766 1.0 +494 1 1.72 12.3900004 12.3900004 10.6199999 -0.951485 0.307694 1.0 +495 1 1.72 12.3900004 10.6199999 12.3900004 0.537545 -0.843235 1.0 +496 1 1.72 10.6199999 12.3900004 12.3900004 0.670975 -0.74148 1.0 +497 1 1.72 14.1599999 10.6199999 10.6199999 -0.649814 0.760094 1.0 +498 1 1.72 15.9300004 12.3900004 10.6199999 -0.139657 0.9902 1.0 +499 1 1.72 15.9300004 10.6199999 12.3900004 -0.705484 0.708726 1.0 +500 1 1.72 14.1599999 12.3900004 12.3900004 0.695702 0.71833 1.0 +501 1 1.72 17.7000008 10.6199999 10.6199999 -0.798012 0.602641 1.0 +502 1 1.72 19.4699993 12.3900004 10.6199999 0.57107 0.820901 1.0 +503 1 1.72 19.4699993 10.6199999 12.3900004 0.625346 0.780348 1.0 +504 1 1.72 17.7000008 12.3900004 12.3900004 -0.506475 0.862255 1.0 +505 1 1.72 21.2399998 10.6199999 10.6199999 0.610099 0.792325 1.0 +506 1 1.72 23.0100002 12.3900004 10.6199999 -0.415721 0.909492 1.0 +507 1 1.72 23.0100002 10.6199999 12.3900004 0.414542 0.91003 1.0 +508 1 1.72 21.2399998 12.3900004 12.3900004 -0.660349 0.750959 1.0 +509 1 1.72 24.7800007 10.6199999 10.6199999 0.833053 -0.553193 1.0 +510 1 1.72 26.5499993 12.3900004 10.6199999 0.918812 -0.394696 1.0 +511 1 1.72 26.5499993 10.6199999 12.3900004 -0.256096 -0.966651 1.0 +512 1 1.72 24.7800007 12.3900004 12.3900004 0.752464 0.658633 1.0 +513 1 1.72 0.0 0.0 14.1599999 0.577516 -0.816379 1.0 +514 1 1.72 1.77 1.77 14.1599999 -0.999996 -0.00266219 1.0 +515 1 1.72 1.77 0.0 15.9300004 0.811843 -0.583876 1.0 +516 1 1.72 0.0 1.77 15.9300004 -0.149952 -0.988693 1.0 +517 1 1.72 3.54 0.0 14.1599999 0.638472 -0.769645 1.0 +518 1 1.72 5.31 1.77 14.1599999 -0.994748 -0.102359 1.0 +519 1 1.72 5.31 0.0 15.9300004 -0.0392264 0.99923 1.0 +520 1 1.72 3.54 1.77 15.9300004 -0.685371 -0.728194 1.0 +521 1 1.72 7.0799999 0.0 14.1599999 -0.205907 0.978571 1.0 +522 1 1.72 8.8500004 1.77 14.1599999 0.582424 0.812885 1.0 +523 1 1.72 8.8500004 0.0 15.9300004 0.998156 -0.0606938 1.0 +524 1 1.72 7.0799999 1.77 15.9300004 0.55724 0.830351 1.0 +525 1 1.72 10.6199999 0.0 14.1599999 0.228395 -0.973568 1.0 +526 1 1.72 12.3900004 1.77 14.1599999 0.854116 0.520082 1.0 +527 1 1.72 12.3900004 0.0 15.9300004 -0.0945964 -0.995516 1.0 +528 1 1.72 10.6199999 1.77 15.9300004 -0.00654227 -0.999979 1.0 +529 1 1.72 14.1599999 0.0 14.1599999 0.642898 0.765952 1.0 +530 1 1.72 15.9300004 1.77 14.1599999 0.100141 0.994973 1.0 +531 1 1.72 15.9300004 0.0 15.9300004 0.958559 -0.284893 1.0 +532 1 1.72 14.1599999 1.77 15.9300004 -0.75207 -0.659083 1.0 +533 1 1.72 17.7000008 0.0 14.1599999 0.792445 -0.609944 1.0 +534 1 1.72 19.4699993 1.77 14.1599999 -0.894124 0.44782 1.0 +535 1 1.72 19.4699993 0.0 15.9300004 -0.741383 -0.671082 1.0 +536 1 1.72 17.7000008 1.77 15.9300004 0.882391 0.470517 1.0 +537 1 1.72 21.2399998 0.0 14.1599999 -0.59951 -0.800367 1.0 +538 1 1.72 23.0100002 1.77 14.1599999 0.812925 -0.582369 1.0 +539 1 1.72 23.0100002 0.0 15.9300004 0.805488 -0.592611 1.0 +540 1 1.72 21.2399998 1.77 15.9300004 -0.75137 0.659881 1.0 +541 1 1.72 24.7800007 0.0 14.1599999 0.584369 0.811488 1.0 +542 1 1.72 26.5499993 1.77 14.1599999 -0.366709 -0.930336 1.0 +543 1 1.72 26.5499993 0.0 15.9300004 0.748708 -0.662899 1.0 +544 1 1.72 24.7800007 1.77 15.9300004 0.283724 -0.958906 1.0 +545 1 1.72 0.0 3.54 14.1599999 -0.99916 0.040976 1.0 +546 1 1.72 1.77 5.31 14.1599999 0.97473 0.223387 1.0 +547 1 1.72 1.77 3.54 15.9300004 0.018563 -0.999828 1.0 +548 1 1.72 0.0 5.31 15.9300004 -0.746433 -0.66546 1.0 +549 1 1.72 3.54 3.54 14.1599999 -0.0105 0.999945 1.0 +550 1 1.72 5.31 5.31 14.1599999 -0.548949 -0.835856 1.0 +551 1 1.72 5.31 3.54 15.9300004 0.985121 0.171862 1.0 +552 1 1.72 3.54 5.31 15.9300004 -0.896854 -0.442327 1.0 +553 1 1.72 7.0799999 3.54 14.1599999 0.815102 0.579317 1.0 +554 1 1.72 8.8500004 5.31 14.1599999 0.998726 0.0504555 1.0 +555 1 1.72 8.8500004 3.54 15.9300004 0.783675 -0.621171 1.0 +556 1 1.72 7.0799999 5.31 15.9300004 -0.898328 -0.439325 1.0 +557 1 1.72 10.6199999 3.54 14.1599999 -0.929821 0.368013 1.0 +558 1 1.72 12.3900004 5.31 14.1599999 0.0106968 0.999943 1.0 +559 1 1.72 12.3900004 3.54 15.9300004 -0.982996 -0.183627 1.0 +560 1 1.72 10.6199999 5.31 15.9300004 -0.550487 -0.834844 1.0 +561 1 1.72 14.1599999 3.54 14.1599999 -0.999376 -0.035334 1.0 +562 1 1.72 15.9300004 5.31 14.1599999 0.0629378 0.998017 1.0 +563 1 1.72 15.9300004 3.54 15.9300004 0.541771 -0.840526 1.0 +564 1 1.72 14.1599999 5.31 15.9300004 0.874048 0.485839 1.0 +565 1 1.72 17.7000008 3.54 14.1599999 -0.0736634 -0.997283 1.0 +566 1 1.72 19.4699993 5.31 14.1599999 -0.969266 0.246013 1.0 +567 1 1.72 19.4699993 3.54 15.9300004 0.428897 0.903353 1.0 +568 1 1.72 17.7000008 5.31 15.9300004 0.777582 0.628782 1.0 +569 1 1.72 21.2399998 3.54 14.1599999 0.997118 0.0758605 1.0 +570 1 1.72 23.0100002 5.31 14.1599999 0.972769 -0.231775 1.0 +571 1 1.72 23.0100002 3.54 15.9300004 0.0895746 0.99598 1.0 +572 1 1.72 21.2399998 5.31 15.9300004 -0.525761 0.850632 1.0 +573 1 1.72 24.7800007 3.54 14.1599999 -0.769889 -0.638178 1.0 +574 1 1.72 26.5499993 5.31 14.1599999 -0.542466 -0.840078 1.0 +575 1 1.72 26.5499993 3.54 15.9300004 0.899395 0.437136 1.0 +576 1 1.72 24.7800007 5.31 15.9300004 0.621037 0.783781 1.0 +577 1 1.72 0.0 7.0799999 14.1599999 -0.756559 0.653926 1.0 +578 1 1.72 1.77 8.8500004 14.1599999 0.230034 0.973183 1.0 +579 1 1.72 1.77 7.0799999 15.9300004 -0.50628 0.862369 1.0 +580 1 1.72 0.0 8.8500004 15.9300004 -0.955483 -0.295047 1.0 +581 1 1.72 3.54 7.0799999 14.1599999 0.759353 -0.650679 1.0 +582 1 1.72 5.31 8.8500004 14.1599999 0.296103 -0.955156 1.0 +583 1 1.72 5.31 7.0799999 15.9300004 0.853379 0.521291 1.0 +584 1 1.72 3.54 8.8500004 15.9300004 -0.977399 0.211405 1.0 +585 1 1.72 7.0799999 7.0799999 14.1599999 0.24839 -0.96866 1.0 +586 1 1.72 8.8500004 8.8500004 14.1599999 -0.9973 -0.073433 1.0 +587 1 1.72 8.8500004 7.0799999 15.9300004 -0.985566 0.169292 1.0 +588 1 1.72 7.0799999 8.8500004 15.9300004 0.450754 0.892648 1.0 +589 1 1.72 10.6199999 7.0799999 14.1599999 0.523179 -0.852223 1.0 +590 1 1.72 12.3900004 8.8500004 14.1599999 0.3374 -0.941361 1.0 +591 1 1.72 12.3900004 7.0799999 15.9300004 0.998074 0.0620424 1.0 +592 1 1.72 10.6199999 8.8500004 15.9300004 -0.796879 0.604139 1.0 +593 1 1.72 14.1599999 7.0799999 14.1599999 0.226672 0.973971 1.0 +594 1 1.72 15.9300004 8.8500004 14.1599999 0.458772 0.888554 1.0 +595 1 1.72 15.9300004 7.0799999 15.9300004 -0.740495 0.672061 1.0 +596 1 1.72 14.1599999 8.8500004 15.9300004 0.243067 0.97001 1.0 +597 1 1.72 17.7000008 7.0799999 14.1599999 -0.767642 0.640879 1.0 +598 1 1.72 19.4699993 8.8500004 14.1599999 -0.970625 0.240597 1.0 +599 1 1.72 19.4699993 7.0799999 15.9300004 -0.88939 -0.457149 1.0 +600 1 1.72 17.7000008 8.8500004 15.9300004 0.193741 0.981053 1.0 +601 1 1.72 21.2399998 7.0799999 14.1599999 -0.686505 -0.727125 1.0 +602 1 1.72 23.0100002 8.8500004 14.1599999 0.254937 -0.966958 1.0 +603 1 1.72 23.0100002 7.0799999 15.9300004 0.19349 -0.981102 1.0 +604 1 1.72 21.2399998 8.8500004 15.9300004 -0.716268 -0.697825 1.0 +605 1 1.72 24.7800007 7.0799999 14.1599999 -0.547101 -0.837067 1.0 +606 1 1.72 26.5499993 8.8500004 14.1599999 -0.276222 0.961094 1.0 +607 1 1.72 26.5499993 7.0799999 15.9300004 0.410062 -0.912058 1.0 +608 1 1.72 24.7800007 8.8500004 15.9300004 0.293731 -0.955888 1.0 +609 1 1.72 0.0 10.6199999 14.1599999 -0.995353 0.0962937 1.0 +610 1 1.72 1.77 12.3900004 14.1599999 -0.931708 -0.363208 1.0 +611 1 1.72 1.77 10.6199999 15.9300004 0.920046 -0.391811 1.0 +612 1 1.72 0.0 12.3900004 15.9300004 -0.474527 0.880241 1.0 +613 1 1.72 3.54 10.6199999 14.1599999 -0.989086 -0.147339 1.0 +614 1 1.72 5.31 12.3900004 14.1599999 0.859457 -0.511209 1.0 +615 1 1.72 5.31 10.6199999 15.9300004 -0.984097 -0.177634 1.0 +616 1 1.72 3.54 12.3900004 15.9300004 -0.961264 -0.27563 1.0 +617 1 1.72 7.0799999 10.6199999 14.1599999 0.421894 -0.906645 1.0 +618 1 1.72 8.8500004 12.3900004 14.1599999 0.91236 0.409388 1.0 +619 1 1.72 8.8500004 10.6199999 15.9300004 0.539899 0.84173 1.0 +620 1 1.72 7.0799999 12.3900004 15.9300004 -0.877639 0.479323 1.0 +621 1 1.72 10.6199999 10.6199999 14.1599999 -0.489545 0.871978 1.0 +622 1 1.72 12.3900004 12.3900004 14.1599999 0.718957 0.695055 1.0 +623 1 1.72 12.3900004 10.6199999 15.9300004 0.0914719 0.995808 1.0 +624 1 1.72 10.6199999 12.3900004 15.9300004 0.759918 0.650018 1.0 +625 1 1.72 14.1599999 10.6199999 14.1599999 -0.979663 -0.200652 1.0 +626 1 1.72 15.9300004 12.3900004 14.1599999 -0.93367 -0.358135 1.0 +627 1 1.72 15.9300004 10.6199999 15.9300004 -0.246645 0.969106 1.0 +628 1 1.72 14.1599999 12.3900004 15.9300004 -0.436973 0.899475 1.0 +629 1 1.72 17.7000008 10.6199999 14.1599999 -0.675249 0.73759 1.0 +630 1 1.72 19.4699993 12.3900004 14.1599999 -0.938855 0.344313 1.0 +631 1 1.72 19.4699993 10.6199999 15.9300004 -0.478583 -0.878043 1.0 +632 1 1.72 17.7000008 12.3900004 15.9300004 -0.857655 -0.514226 1.0 +633 1 1.72 21.2399998 10.6199999 14.1599999 -0.025165 0.999683 1.0 +634 1 1.72 23.0100002 12.3900004 14.1599999 0.657932 0.753077 1.0 +635 1 1.72 23.0100002 10.6199999 15.9300004 -0.689295 -0.724481 1.0 +636 1 1.72 21.2399998 12.3900004 15.9300004 -0.70829 -0.705921 1.0 +637 1 1.72 24.7800007 10.6199999 14.1599999 0.386134 0.922443 1.0 +638 1 1.72 26.5499993 12.3900004 14.1599999 0.939595 0.342289 1.0 +639 1 1.72 26.5499993 10.6199999 15.9300004 0.980533 -0.196357 1.0 +640 1 1.72 24.7800007 12.3900004 15.9300004 -0.395091 0.918642 1.0 +641 1 1.72 0.0 0.0 17.7000008 -0.649291 0.76054 1.0 +642 1 1.72 1.77 1.77 17.7000008 0.6262 0.779663 1.0 +643 1 1.72 1.77 0.0 19.4699993 0.649624 -0.760255 0.9998646 +644 1 1.72 0.0 1.77 19.4699993 0.633562 -0.773692 0.9998646 +645 1 1.72 3.54 0.0 17.7000008 0.26381 -0.964575 1.0 +646 1 1.72 5.31 1.77 17.7000008 -0.945994 -0.324186 1.0 +647 1 1.72 5.31 0.0 19.4699993 0.840465 -0.541865 0.9998646 +648 1 1.72 3.54 1.77 19.4699993 0.799674 0.600434 0.9998646 +649 1 1.72 7.0799999 0.0 17.7000008 0.416068 -0.909333 1.0 +650 1 1.72 8.8500004 1.77 17.7000008 0.95484 -0.29712 1.0 +651 1 1.72 8.8500004 0.0 19.4699993 0.843771 -0.536704 0.9998646 +652 1 1.72 7.0799999 1.77 19.4699993 0.630704 0.776024 0.9998646 +653 1 1.72 10.6199999 0.0 17.7000008 0.0685999 -0.997644 1.0 +654 1 1.72 12.3900004 1.77 17.7000008 -0.968052 -0.250748 1.0 +655 1 1.72 12.3900004 0.0 19.4699993 0.839071 0.544022 0.9998646 +656 1 1.72 10.6199999 1.77 19.4699993 0.718287 0.695747 0.9998646 +657 1 1.72 14.1599999 0.0 17.7000008 -0.541847 -0.840477 1.0 +658 1 1.72 15.9300004 1.77 17.7000008 0.738413 -0.674349 1.0 +659 1 1.72 15.9300004 0.0 19.4699993 0.854732 0.519069 0.9998646 +660 1 1.72 14.1599999 1.77 19.4699993 0.990459 0.137811 0.9998646 +661 1 1.72 17.7000008 0.0 17.7000008 0.828544 -0.559923 1.0 +662 1 1.72 19.4699993 1.77 17.7000008 0.294067 0.955785 1.0 +663 1 1.72 19.4699993 0.0 19.4699993 -0.987992 0.154505 0.9998646 +664 1 1.72 17.7000008 1.77 19.4699993 0.505928 0.862576 0.9998646 +665 1 1.72 21.2399998 0.0 17.7000008 -0.163448 0.986552 1.0 +666 1 1.72 23.0100002 1.77 17.7000008 0.371311 0.928508 1.0 +667 1 1.72 23.0100002 0.0 19.4699993 0.672938 0.739699 0.9998646 +668 1 1.72 21.2399998 1.77 19.4699993 0.888728 0.458435 0.9998646 +669 1 1.72 24.7800007 0.0 17.7000008 -0.230283 -0.973124 1.0 +670 1 1.72 26.5499993 1.77 17.7000008 0.968419 0.249328 1.0 +671 1 1.72 26.5499993 0.0 19.4699993 0.624273 0.781206 0.9998646 +672 1 1.72 24.7800007 1.77 19.4699993 0.906636 0.421914 0.9998646 +673 1 1.72 0.0 3.54 17.7000008 0.97242 -0.233235 1.0 +674 1 1.72 1.77 5.31 17.7000008 0.79574 -0.605638 1.0 +675 1 1.72 1.77 3.54 19.4699993 0.595273 0.803524 0.9998646 +676 1 1.72 0.0 5.31 19.4699993 0.834715 0.550682 0.9998646 +677 1 1.72 3.54 3.54 17.7000008 -0.992726 0.120397 1.0 +678 1 1.72 5.31 5.31 17.7000008 -0.609395 -0.792867 1.0 +679 1 1.72 5.31 3.54 19.4699993 0.464717 0.88546 0.9998646 +680 1 1.72 3.54 5.31 19.4699993 -0.114432 0.993431 0.9998646 +681 1 1.72 7.0799999 3.54 17.7000008 -0.98994 0.14149 1.0 +682 1 1.72 8.8500004 5.31 17.7000008 0.919244 0.393687 1.0 +683 1 1.72 8.8500004 3.54 19.4699993 0.999674 0.0255475 0.9998646 +684 1 1.72 7.0799999 5.31 19.4699993 -0.21344 0.976956 0.9998646 +685 1 1.72 10.6199999 3.54 17.7000008 -0.999952 0.00977716 1.0 +686 1 1.72 12.3900004 5.31 17.7000008 0.996262 -0.086387 1.0 +687 1 1.72 12.3900004 3.54 19.4699993 0.966569 -0.256407 0.9998646 +688 1 1.72 10.6199999 5.31 19.4699993 0.485168 0.874421 0.9998646 +689 1 1.72 14.1599999 3.54 17.7000008 0.433473 -0.901167 1.0 +690 1 1.72 15.9300004 5.31 17.7000008 -0.0585383 -0.998285 1.0 +691 1 1.72 15.9300004 3.54 19.4699993 -0.952405 0.304834 0.9998646 +692 1 1.72 14.1599999 5.31 19.4699993 0.280455 -0.959867 0.9998646 +693 1 1.72 17.7000008 3.54 17.7000008 0.705602 -0.708608 1.0 +694 1 1.72 19.4699993 5.31 17.7000008 0.430048 -0.902806 1.0 +695 1 1.72 19.4699993 3.54 19.4699993 -0.517636 -0.855601 0.9998646 +696 1 1.72 17.7000008 5.31 19.4699993 -0.719942 -0.694034 0.9998646 +697 1 1.72 21.2399998 3.54 17.7000008 -0.998576 -0.0533536 1.0 +698 1 1.72 23.0100002 5.31 17.7000008 -0.11021 -0.993908 1.0 +699 1 1.72 23.0100002 3.54 19.4699993 -0.194662 0.98087 0.9998646 +700 1 1.72 21.2399998 5.31 19.4699993 -0.99118 -0.132522 0.9998646 +701 1 1.72 24.7800007 3.54 17.7000008 0.839133 -0.543926 1.0 +702 1 1.72 26.5499993 5.31 17.7000008 0.876389 0.481604 1.0 +703 1 1.72 26.5499993 3.54 19.4699993 -0.819654 0.572859 0.9998646 +704 1 1.72 24.7800007 5.31 19.4699993 0.941343 0.33745 0.9998646 +705 1 1.72 0.0 7.0799999 17.7000008 -0.999503 -0.0315095 1.0 +706 1 1.72 1.77 8.8500004 17.7000008 0.189536 -0.981874 1.0 +707 1 1.72 1.77 7.0799999 19.4699993 -0.76288 0.64654 0.9998646 +708 1 1.72 0.0 8.8500004 19.4699993 -0.686205 -0.727408 0.9998646 +709 1 1.72 3.54 7.0799999 17.7000008 -0.748482 -0.663155 1.0 +710 1 1.72 5.31 8.8500004 17.7000008 0.984411 -0.175883 1.0 +711 1 1.72 5.31 7.0799999 19.4699993 -0.209096 0.977895 0.9998646 +712 1 1.72 3.54 8.8500004 19.4699993 -0.70608 0.708132 0.9998646 +713 1 1.72 7.0799999 7.0799999 17.7000008 0.610046 -0.792366 1.0 +714 1 1.72 8.8500004 8.8500004 17.7000008 0.302697 0.953087 1.0 +715 1 1.72 8.8500004 7.0799999 19.4699993 -0.925661 -0.378354 0.9998646 +716 1 1.72 7.0799999 8.8500004 19.4699993 0.434384 0.900728 0.9998646 +717 1 1.72 10.6199999 7.0799999 17.7000008 -0.266488 0.963838 1.0 +718 1 1.72 12.3900004 8.8500004 17.7000008 0.585459 0.810702 1.0 +719 1 1.72 12.3900004 7.0799999 19.4699993 0.927476 0.373882 0.9998646 +720 1 1.72 10.6199999 8.8500004 19.4699993 -0.669437 -0.742869 0.9998646 +721 1 1.72 14.1599999 7.0799999 17.7000008 -0.997101 -0.0760901 1.0 +722 1 1.72 15.9300004 8.8500004 17.7000008 0.989658 -0.14345 1.0 +723 1 1.72 15.9300004 7.0799999 19.4699993 0.778594 0.627528 0.9998646 +724 1 1.72 14.1599999 8.8500004 19.4699993 -0.22457 0.974458 0.9998646 +725 1 1.72 17.7000008 7.0799999 17.7000008 -0.156585 -0.987665 1.0 +726 1 1.72 19.4699993 8.8500004 17.7000008 -0.854416 -0.51959 1.0 +727 1 1.72 19.4699993 7.0799999 19.4699993 0.997808 0.0661742 0.9998646 +728 1 1.72 17.7000008 8.8500004 19.4699993 0.715446 0.698668 0.9998646 +729 1 1.72 21.2399998 7.0799999 17.7000008 -0.707334 -0.70688 1.0 +730 1 1.72 23.0100002 8.8500004 17.7000008 -0.903622 0.428331 1.0 +731 1 1.72 23.0100002 7.0799999 19.4699993 0.701709 0.712464 0.9998646 +732 1 1.72 21.2399998 8.8500004 19.4699993 -0.987517 -0.157512 0.9998646 +733 1 1.72 24.7800007 7.0799999 17.7000008 0.964971 -0.262358 1.0 +734 1 1.72 26.5499993 8.8500004 17.7000008 0.838483 0.544928 1.0 +735 1 1.72 26.5499993 7.0799999 19.4699993 -0.774738 -0.632282 0.9998646 +736 1 1.72 24.7800007 8.8500004 19.4699993 0.776407 0.630231 0.9998646 +737 1 1.72 0.0 10.6199999 17.7000008 -0.0536292 -0.998561 1.0 +738 1 1.72 1.77 12.3900004 17.7000008 -0.99466 -0.103203 1.0 +739 1 1.72 1.77 10.6199999 19.4699993 -0.999913 -0.0132194 0.9998646 +740 1 1.72 0.0 12.3900004 19.4699993 -0.250807 -0.968037 0.9998646 +741 1 1.72 3.54 10.6199999 17.7000008 -0.0160209 0.999872 1.0 +742 1 1.72 5.31 12.3900004 17.7000008 0.718184 0.695853 1.0 +743 1 1.72 5.31 10.6199999 19.4699993 -0.240599 -0.970625 0.9998646 +744 1 1.72 3.54 12.3900004 19.4699993 -0.300064 -0.953919 0.9998646 +745 1 1.72 7.0799999 10.6199999 17.7000008 -0.877773 0.479078 1.0 +746 1 1.72 8.8500004 12.3900004 17.7000008 -0.1371 -0.990557 1.0 +747 1 1.72 8.8500004 10.6199999 19.4699993 -0.115696 -0.993285 0.9998646 +748 1 1.72 7.0799999 12.3900004 19.4699993 -0.787969 0.615715 0.9998646 +749 1 1.72 10.6199999 10.6199999 17.7000008 0.148893 0.988853 1.0 +750 1 1.72 12.3900004 12.3900004 17.7000008 -0.143264 0.989684 1.0 +751 1 1.72 12.3900004 10.6199999 19.4699993 0.811041 -0.58499 0.9998646 +752 1 1.72 10.6199999 12.3900004 19.4699993 -0.917257 -0.398296 0.9998646 +753 1 1.72 14.1599999 10.6199999 17.7000008 -0.787241 0.616645 1.0 +754 1 1.72 15.9300004 12.3900004 17.7000008 -0.838141 0.545453 1.0 +755 1 1.72 15.9300004 10.6199999 19.4699993 0.906191 -0.422869 0.9998646 +756 1 1.72 14.1599999 12.3900004 19.4699993 0.249532 0.968367 0.9998646 +757 1 1.72 17.7000008 10.6199999 17.7000008 0.551173 0.834391 1.0 +758 1 1.72 19.4699993 12.3900004 17.7000008 -0.645456 -0.763797 1.0 +759 1 1.72 19.4699993 10.6199999 19.4699993 0.202136 0.979357 0.9998646 +760 1 1.72 17.7000008 12.3900004 19.4699993 0.0454656 -0.998966 0.9998646 +761 1 1.72 21.2399998 10.6199999 17.7000008 -0.704645 0.70956 1.0 +762 1 1.72 23.0100002 12.3900004 17.7000008 -0.792466 -0.609916 1.0 +763 1 1.72 23.0100002 10.6199999 19.4699993 -0.934747 0.355314 0.9998646 +764 1 1.72 21.2399998 12.3900004 19.4699993 0.0804098 -0.996762 0.9998646 +765 1 1.72 24.7800007 10.6199999 17.7000008 -0.59014 0.807301 1.0 +766 1 1.72 26.5499993 12.3900004 17.7000008 -0.270974 0.962587 1.0 +767 1 1.72 26.5499993 10.6199999 19.4699993 0.456174 -0.88989 0.9998646 +768 1 1.72 24.7800007 12.3900004 19.4699993 0.997828 -0.0658689 0.9998646 +769 1 1.72 0.0 0.0 21.2399998 0.684296 -0.729204 0.9508352 +770 1 1.72 1.77 1.77 21.2399998 -0.985677 -0.168646 0.9508352 +771 1 1.72 1.77 0.0 23.0100002 -0.993099 -0.117279 0.8177586 +772 1 1.72 0.0 1.77 23.0100002 0.704231 -0.709971 0.8177586 +773 1 1.72 3.54 0.0 21.2399998 -0.617428 -0.786628 0.9508352 +774 1 1.72 5.31 1.77 21.2399998 0.705977 -0.708235 0.9508352 +775 1 1.72 5.31 0.0 23.0100002 -0.674045 -0.73869 0.8177586 +776 1 1.72 3.54 1.77 23.0100002 0.348379 -0.937354 0.8177586 +777 1 1.72 7.0799999 0.0 21.2399998 -0.710642 0.703554 0.9508352 +778 1 1.72 8.8500004 1.77 21.2399998 0.211593 -0.977358 0.9508352 +779 1 1.72 8.8500004 0.0 23.0100002 -0.969078 0.246755 0.8177586 +780 1 1.72 7.0799999 1.77 23.0100002 0.786616 0.617443 0.8177586 +781 1 1.72 10.6199999 0.0 21.2399998 0.874212 0.485545 0.9508352 +782 1 1.72 12.3900004 1.77 21.2399998 -0.944995 -0.327084 0.9508352 +783 1 1.72 12.3900004 0.0 23.0100002 -0.104694 0.994505 0.8177586 +784 1 1.72 10.6199999 1.77 23.0100002 -0.978587 -0.205834 0.8177586 +785 1 1.72 14.1599999 0.0 21.2399998 0.746527 -0.665355 0.9508352 +786 1 1.72 15.9300004 1.77 21.2399998 -0.866055 0.499948 0.9508352 +787 1 1.72 15.9300004 0.0 23.0100002 -0.932418 0.361382 0.8177586 +788 1 1.72 14.1599999 1.77 23.0100002 0.487089 -0.873352 0.8177586 +789 1 1.72 17.7000008 0.0 21.2399998 0.728185 -0.68538 0.9508352 +790 1 1.72 19.4699993 1.77 21.2399998 -0.369243 0.929333 0.9508352 +791 1 1.72 19.4699993 0.0 23.0100002 0.0523098 -0.998631 0.8177586 +792 1 1.72 17.7000008 1.77 23.0100002 0.968768 -0.247968 0.8177586 +793 1 1.72 21.2399998 0.0 21.2399998 0.505164 0.863023 0.9508352 +794 1 1.72 23.0100002 1.77 21.2399998 -0.0908917 0.995861 0.9508352 +795 1 1.72 23.0100002 0.0 23.0100002 -0.764519 -0.644601 0.8177586 +796 1 1.72 21.2399998 1.77 23.0100002 0.689667 -0.724127 0.8177586 +797 1 1.72 24.7800007 0.0 21.2399998 -0.255054 -0.966927 0.9508352 +798 1 1.72 26.5499993 1.77 21.2399998 0.339168 0.940726 0.9508352 +799 1 1.72 26.5499993 0.0 23.0100002 -0.947398 -0.320057 0.8177586 +800 1 1.72 24.7800007 1.77 23.0100002 -0.979061 -0.203569 0.8177586 +801 1 1.72 0.0 3.54 21.2399998 -0.197261 -0.980351 0.9508352 +802 1 1.72 1.77 5.31 21.2399998 -0.789979 0.613134 0.9508352 +803 1 1.72 1.77 3.54 23.0100002 0.599255 0.800558 0.8177586 +804 1 1.72 0.0 5.31 23.0100002 -0.74028 0.672298 0.8177586 +805 1 1.72 3.54 3.54 21.2399998 0.133396 0.991063 0.9508352 +806 1 1.72 5.31 5.31 21.2399998 -0.965656 0.259824 0.9508352 +807 1 1.72 5.31 3.54 23.0100002 0.612745 -0.79028 0.8177586 +808 1 1.72 3.54 5.31 23.0100002 0.575303 0.81794 0.8177586 +809 1 1.72 7.0799999 3.54 21.2399998 0.16557 0.986198 0.9508352 +810 1 1.72 8.8500004 5.31 21.2399998 0.897607 -0.440797 0.9508352 +811 1 1.72 8.8500004 3.54 23.0100002 -0.197114 -0.980381 0.8177586 +812 1 1.72 7.0799999 5.31 23.0100002 0.880864 -0.47337 0.8177586 +813 1 1.72 10.6199999 3.54 21.2399998 0.994345 0.106197 0.9508352 +814 1 1.72 12.3900004 5.31 21.2399998 0.1692 0.985582 0.9508352 +815 1 1.72 12.3900004 3.54 23.0100002 -0.826145 0.563457 0.8177586 +816 1 1.72 10.6199999 5.31 23.0100002 -0.776376 -0.63027 0.8177586 +817 1 1.72 14.1599999 3.54 21.2399998 -0.368101 0.929786 0.9508352 +818 1 1.72 15.9300004 5.31 21.2399998 0.276033 0.961148 0.9508352 +819 1 1.72 15.9300004 3.54 23.0100002 0.806126 -0.591744 0.8177586 +820 1 1.72 14.1599999 5.31 23.0100002 0.717641 0.696414 0.8177586 +821 1 1.72 17.7000008 3.54 21.2399998 -0.649302 -0.760531 0.9508352 +822 1 1.72 19.4699993 5.31 21.2399998 0.502998 -0.864288 0.9508352 +823 1 1.72 19.4699993 3.54 23.0100002 0.733791 0.679375 0.8177586 +824 1 1.72 17.7000008 5.31 23.0100002 -0.962336 -0.271864 0.8177586 +825 1 1.72 21.2399998 3.54 21.2399998 -0.963824 0.266541 0.9508352 +826 1 1.72 23.0100002 5.31 21.2399998 -0.999556 -0.0298021 0.9508352 +827 1 1.72 23.0100002 3.54 23.0100002 0.853179 -0.521618 0.8177586 +828 1 1.72 21.2399998 5.31 23.0100002 0.526794 -0.849993 0.8177586 +829 1 1.72 24.7800007 3.54 21.2399998 0.861014 -0.508581 0.9508352 +830 1 1.72 26.5499993 5.31 21.2399998 0.995661 0.093051 0.9508352 +831 1 1.72 26.5499993 3.54 23.0100002 0.995356 -0.0962591 0.8177586 +832 1 1.72 24.7800007 5.31 23.0100002 0.934051 -0.357139 0.8177586 +833 1 1.72 0.0 7.0799999 21.2399998 -0.702915 -0.711273 0.9508352 +834 1 1.72 1.77 8.8500004 21.2399998 -0.891011 -0.453981 0.9508352 +835 1 1.72 1.77 7.0799999 23.0100002 -0.928577 -0.371139 0.8177586 +836 1 1.72 0.0 8.8500004 23.0100002 -0.480522 0.876983 0.8177586 +837 1 1.72 3.54 7.0799999 21.2399998 -0.806447 0.591307 0.9508352 +838 1 1.72 5.31 8.8500004 21.2399998 0.570332 0.821414 0.9508352 +839 1 1.72 5.31 7.0799999 23.0100002 0.434671 -0.900589 0.8177586 +840 1 1.72 3.54 8.8500004 23.0100002 -0.17811 -0.984011 0.8177586 +841 1 1.72 7.0799999 7.0799999 21.2399998 0.433805 -0.901007 0.9508352 +842 1 1.72 8.8500004 8.8500004 21.2399998 -0.968752 -0.24803 0.9508352 +843 1 1.72 8.8500004 7.0799999 23.0100002 0.98872 -0.149776 0.8177586 +844 1 1.72 7.0799999 8.8500004 23.0100002 0.694459 -0.719533 0.8177586 +845 1 1.72 10.6199999 7.0799999 21.2399998 -0.8268 -0.562497 0.9508352 +846 1 1.72 12.3900004 8.8500004 21.2399998 0.974624 0.223847 0.9508352 +847 1 1.72 12.3900004 7.0799999 23.0100002 0.776544 0.630062 0.8177586 +848 1 1.72 10.6199999 8.8500004 23.0100002 0.618956 -0.785426 0.8177586 +849 1 1.72 14.1599999 7.0799999 21.2399998 0.855184 -0.518324 0.9508352 +850 1 1.72 15.9300004 8.8500004 21.2399998 -0.180136 0.983642 0.9508352 +851 1 1.72 15.9300004 7.0799999 23.0100002 -0.788196 -0.615424 0.8177586 +852 1 1.72 14.1599999 8.8500004 23.0100002 -0.980667 -0.195682 0.8177586 +853 1 1.72 17.7000008 7.0799999 21.2399998 0.533216 -0.845979 0.9508352 +854 1 1.72 19.4699993 8.8500004 21.2399998 -0.781159 -0.624332 0.9508352 +855 1 1.72 19.4699993 7.0799999 23.0100002 -0.987986 -0.154545 0.8177586 +856 1 1.72 17.7000008 8.8500004 23.0100002 0.388302 0.921532 0.8177586 +857 1 1.72 21.2399998 7.0799999 21.2399998 -0.766256 0.642536 0.9508352 +858 1 1.72 23.0100002 8.8500004 21.2399998 0.650735 0.759305 0.9508352 +859 1 1.72 23.0100002 7.0799999 23.0100002 0.0792116 0.996858 0.8177586 +860 1 1.72 21.2399998 8.8500004 23.0100002 0.480372 0.877065 0.8177586 +861 1 1.72 24.7800007 7.0799999 21.2399998 -0.710869 0.703325 0.9508352 +862 1 1.72 26.5499993 8.8500004 21.2399998 -0.603145 -0.797632 0.9508352 +863 1 1.72 26.5499993 7.0799999 23.0100002 0.121965 -0.992534 0.8177586 +864 1 1.72 24.7800007 8.8500004 23.0100002 -0.758733 0.651401 0.8177586 +865 1 1.72 0.0 10.6199999 21.2399998 -0.78719 0.616711 0.9508352 +866 1 1.72 1.77 12.3900004 21.2399998 -0.639197 -0.769043 0.9508352 +867 1 1.72 1.77 10.6199999 23.0100002 -0.855625 -0.517597 0.8177586 +868 1 1.72 0.0 12.3900004 23.0100002 -0.191279 0.981536 0.8177586 +869 1 1.72 3.54 10.6199999 21.2399998 -0.685729 -0.727857 0.9508352 +870 1 1.72 5.31 12.3900004 21.2399998 0.673968 0.73876 0.9508352 +871 1 1.72 5.31 10.6199999 23.0100002 -0.951734 -0.306923 0.8177586 +872 1 1.72 3.54 12.3900004 23.0100002 -0.684754 -0.728774 0.8177586 +873 1 1.72 7.0799999 10.6199999 21.2399998 0.950782 -0.30986 0.9508352 +874 1 1.72 8.8500004 12.3900004 21.2399998 -0.829451 0.558579 0.9508352 +875 1 1.72 8.8500004 10.6199999 23.0100002 0.948532 0.31668 0.8177586 +876 1 1.72 7.0799999 12.3900004 23.0100002 -0.676813 0.736155 0.8177586 +877 1 1.72 10.6199999 10.6199999 21.2399998 0.999779 -0.0210204 0.9508352 +878 1 1.72 12.3900004 12.3900004 21.2399998 0.922794 0.385295 0.9508352 +879 1 1.72 12.3900004 10.6199999 23.0100002 -0.84921 -0.528056 0.8177586 +880 1 1.72 10.6199999 12.3900004 23.0100002 0.937407 -0.348235 0.8177586 +881 1 1.72 14.1599999 10.6199999 21.2399998 -0.198283 -0.980145 0.9508352 +882 1 1.72 15.9300004 12.3900004 21.2399998 -0.615399 0.788216 0.9508352 +883 1 1.72 15.9300004 10.6199999 23.0100002 -0.326746 0.945112 0.8177586 +884 1 1.72 14.1599999 12.3900004 23.0100002 -0.36798 -0.929834 0.8177586 +885 1 1.72 17.7000008 10.6199999 21.2399998 0.579863 0.814714 0.9508352 +886 1 1.72 19.4699993 12.3900004 21.2399998 -0.232785 -0.972528 0.9508352 +887 1 1.72 19.4699993 10.6199999 23.0100002 -0.801033 -0.59862 0.8177586 +888 1 1.72 17.7000008 12.3900004 23.0100002 -0.823935 0.566684 0.8177586 +889 1 1.72 21.2399998 10.6199999 21.2399998 0.984127 0.177465 0.9508352 +890 1 1.72 23.0100002 12.3900004 21.2399998 -0.0919396 -0.995765 0.9508352 +891 1 1.72 23.0100002 10.6199999 23.0100002 -0.790211 -0.612834 0.8177586 +892 1 1.72 21.2399998 12.3900004 23.0100002 -0.685563 -0.728013 0.8177586 +893 1 1.72 24.7800007 10.6199999 21.2399998 -0.108022 -0.994149 0.9508352 +894 1 1.72 26.5499993 12.3900004 21.2399998 -0.638048 0.769997 0.9508352 +895 1 1.72 26.5499993 10.6199999 23.0100002 0.348083 0.937464 0.8177586 +896 1 1.72 24.7800007 12.3900004 23.0100002 0.485902 0.874013 0.8177586 +897 1 1.72 0.0 0.0 24.7800007 -0.65326 0.757134 0.6123979 +898 1 1.72 1.77 1.77 24.7800007 -0.0257368 -0.999669 0.6123979 +899 1 1.72 1.77 0.0 26.5499993 0.575338 0.817916 0.3529058 +900 1 1.72 0.0 1.77 26.5499993 0.78346 -0.621442 0.3529058 +901 1 1.72 3.54 0.0 24.7800007 -0.457407 -0.889258 0.6123979 +902 1 1.72 5.31 1.77 24.7800007 0.998224 -0.0595736 0.6123979 +903 1 1.72 5.31 0.0 26.5499993 0.995145 0.0984167 0.3529058 +904 1 1.72 3.54 1.77 26.5499993 0.993308 0.115498 0.3529058 +905 1 1.72 7.0799999 0.0 24.7800007 -0.851052 -0.525081 0.6123979 +906 1 1.72 8.8500004 1.77 24.7800007 0.766985 0.641665 0.6123979 +907 1 1.72 8.8500004 0.0 26.5499993 0.192387 0.981319 0.3529058 +908 1 1.72 7.0799999 1.77 26.5499993 0.967172 -0.254122 0.3529058 +909 1 1.72 10.6199999 0.0 24.7800007 0.790637 0.612286 0.6123979 +910 1 1.72 12.3900004 1.77 24.7800007 -0.74799 -0.66371 0.6123979 +911 1 1.72 12.3900004 0.0 26.5499993 -0.824141 -0.566385 0.3529058 +912 1 1.72 10.6199999 1.77 26.5499993 0.776839 -0.629699 0.3529058 +913 1 1.72 14.1599999 0.0 24.7800007 -0.689033 0.72473 0.6123979 +914 1 1.72 15.9300004 1.77 24.7800007 -0.99165 -0.128962 0.6123979 +915 1 1.72 15.9300004 0.0 26.5499993 -0.151567 -0.988447 0.3529058 +916 1 1.72 14.1599999 1.77 26.5499993 -0.0317035 -0.999497 0.3529058 +917 1 1.72 17.7000008 0.0 24.7800007 0.281425 0.959583 0.6123979 +918 1 1.72 19.4699993 1.77 24.7800007 -0.809649 0.586915 0.6123979 +919 1 1.72 19.4699993 0.0 26.5499993 -0.134022 -0.990978 0.3529058 +920 1 1.72 17.7000008 1.77 26.5499993 -0.774513 0.632559 0.3529058 +921 1 1.72 21.2399998 0.0 24.7800007 -0.690867 0.722982 0.6123979 +922 1 1.72 23.0100002 1.77 24.7800007 0.93554 0.353221 0.6123979 +923 1 1.72 23.0100002 0.0 26.5499993 0.869083 0.494667 0.3529058 +924 1 1.72 21.2399998 1.77 26.5499993 0.866241 -0.499626 0.3529058 +925 1 1.72 24.7800007 0.0 24.7800007 0.746357 0.665546 0.6123979 +926 1 1.72 26.5499993 1.77 24.7800007 0.31353 0.949578 0.6123979 +927 1 1.72 26.5499993 0.0 26.5499993 -0.763352 0.645982 0.3529058 +928 1 1.72 24.7800007 1.77 26.5499993 -0.986999 0.160729 0.3529058 +929 1 1.72 0.0 3.54 24.7800007 -0.302094 -0.953278 0.6123979 +930 1 1.72 1.77 5.31 24.7800007 0.688227 0.725495 0.6123979 +931 1 1.72 1.77 3.54 26.5499993 -0.547487 0.836814 0.3529058 +932 1 1.72 0.0 5.31 26.5499993 0.915792 0.401652 0.3529058 +933 1 1.72 3.54 3.54 24.7800007 0.95411 -0.299455 0.6123979 +934 1 1.72 5.31 5.31 24.7800007 -0.646027 0.763315 0.6123979 +935 1 1.72 5.31 3.54 26.5499993 0.999749 -0.0223985 0.3529058 +936 1 1.72 3.54 5.31 26.5499993 0.668878 0.743372 0.3529058 +937 1 1.72 7.0799999 3.54 24.7800007 0.553004 0.833179 0.6123979 +938 1 1.72 8.8500004 5.31 24.7800007 -0.861644 -0.507513 0.6123979 +939 1 1.72 8.8500004 3.54 26.5499993 0.878992 -0.476837 0.3529058 +940 1 1.72 7.0799999 5.31 26.5499993 -0.582962 -0.812499 0.3529058 +941 1 1.72 10.6199999 3.54 24.7800007 0.779856 0.625959 0.6123979 +942 1 1.72 12.3900004 5.31 24.7800007 0.535386 -0.844608 0.6123979 +943 1 1.72 12.3900004 3.54 26.5499993 -0.956059 0.293173 0.3529058 +944 1 1.72 10.6199999 5.31 26.5499993 0.90525 0.424879 0.3529058 +945 1 1.72 14.1599999 3.54 24.7800007 -0.25289 0.967495 0.6123979 +946 1 1.72 15.9300004 5.31 24.7800007 -0.602469 0.798143 0.6123979 +947 1 1.72 15.9300004 3.54 26.5499993 0.458287 0.888804 0.3529058 +948 1 1.72 14.1599999 5.31 26.5499993 -0.33717 -0.941444 0.3529058 +949 1 1.72 17.7000008 3.54 24.7800007 0.990276 -0.139114 0.6123979 +950 1 1.72 19.4699993 5.31 24.7800007 -0.37125 -0.928533 0.6123979 +951 1 1.72 19.4699993 3.54 26.5499993 -0.0663069 -0.997799 0.3529058 +952 1 1.72 17.7000008 5.31 26.5499993 -0.479553 -0.877513 0.3529058 +953 1 1.72 21.2399998 3.54 24.7800007 -0.858225 -0.513273 0.6123979 +954 1 1.72 23.0100002 5.31 24.7800007 0.96655 0.256478 0.6123979 +955 1 1.72 23.0100002 3.54 26.5499993 0.898859 0.438239 0.3529058 +956 1 1.72 21.2399998 5.31 26.5499993 0.331274 -0.943534 0.3529058 +957 1 1.72 24.7800007 3.54 24.7800007 0.624083 0.781358 0.6123979 +958 1 1.72 26.5499993 5.31 24.7800007 0.562576 -0.826745 0.6123979 +959 1 1.72 26.5499993 3.54 26.5499993 0.987917 -0.154981 0.3529058 +960 1 1.72 24.7800007 5.31 26.5499993 0.367753 0.929924 0.3529058 +961 1 1.72 0.0 7.0799999 24.7800007 0.57143 -0.82065 0.6123979 +962 1 1.72 1.77 8.8500004 24.7800007 -0.899092 -0.43776 0.6123979 +963 1 1.72 1.77 7.0799999 26.5499993 -0.499379 0.866383 0.3529058 +964 1 1.72 0.0 8.8500004 26.5499993 0.488283 0.872685 0.3529058 +965 1 1.72 3.54 7.0799999 24.7800007 -0.608735 -0.793373 0.6123979 +966 1 1.72 5.31 8.8500004 24.7800007 -0.104764 -0.994497 0.6123979 +967 1 1.72 5.31 7.0799999 26.5499993 -0.697211 -0.716866 0.3529058 +968 1 1.72 3.54 8.8500004 26.5499993 0.456251 0.889851 0.3529058 +969 1 1.72 7.0799999 7.0799999 24.7800007 -0.649147 0.760663 0.6123979 +970 1 1.72 8.8500004 8.8500004 24.7800007 0.840755 0.541416 0.6123979 +971 1 1.72 8.8500004 7.0799999 26.5499993 -0.644214 -0.764846 0.3529058 +972 1 1.72 7.0799999 8.8500004 26.5499993 0.803842 -0.594842 0.3529058 +973 1 1.72 10.6199999 7.0799999 24.7800007 0.662772 -0.748821 0.6123979 +974 1 1.72 12.3900004 8.8500004 24.7800007 0.314855 0.94914 0.6123979 +975 1 1.72 12.3900004 7.0799999 26.5499993 0.893458 -0.449146 0.3529058 +976 1 1.72 10.6199999 8.8500004 26.5499993 -0.86605 -0.499958 0.3529058 +977 1 1.72 14.1599999 7.0799999 24.7800007 0.767653 -0.640865 0.6123979 +978 1 1.72 15.9300004 8.8500004 24.7800007 0.251764 0.967789 0.6123979 +979 1 1.72 15.9300004 7.0799999 26.5499993 -0.295994 0.95519 0.3529058 +980 1 1.72 14.1599999 8.8500004 26.5499993 0.414085 -0.910238 0.3529058 +981 1 1.72 17.7000008 7.0799999 24.7800007 0.343239 -0.939248 0.6123979 +982 1 1.72 19.4699993 8.8500004 24.7800007 0.6137 -0.78954 0.6123979 +983 1 1.72 19.4699993 7.0799999 26.5499993 -0.658401 -0.752667 0.3529058 +984 1 1.72 17.7000008 8.8500004 26.5499993 -0.940455 0.339917 0.3529058 +985 1 1.72 21.2399998 7.0799999 24.7800007 -0.822003 -0.569483 0.6123979 +986 1 1.72 23.0100002 8.8500004 24.7800007 -0.38379 0.923421 0.6123979 +987 1 1.72 23.0100002 7.0799999 26.5499993 0.824554 0.565783 0.3529058 +988 1 1.72 21.2399998 8.8500004 26.5499993 0.448161 -0.893953 0.3529058 +989 1 1.72 24.7800007 7.0799999 24.7800007 -0.632556 -0.774515 0.6123979 +990 1 1.72 26.5499993 8.8500004 24.7800007 0.986578 -0.163294 0.6123979 +991 1 1.72 26.5499993 7.0799999 26.5499993 0.978122 0.208032 0.3529058 +992 1 1.72 24.7800007 8.8500004 26.5499993 0.97316 -0.23013 0.3529058 +993 1 1.72 0.0 10.6199999 24.7800007 -0.656798 -0.754067 0.6123979 +994 1 1.72 1.77 12.3900004 24.7800007 0.170545 0.98535 0.6123979 +995 1 1.72 1.77 10.6199999 26.5499993 0.465212 -0.885199 0.3529058 +996 1 1.72 0.0 12.3900004 26.5499993 -0.664781 -0.747039 0.3529058 +997 1 1.72 3.54 10.6199999 24.7800007 0.999985 0.00540806 0.6123979 +998 1 1.72 5.31 12.3900004 24.7800007 -0.596463 0.802641 0.6123979 +999 1 1.72 5.31 10.6199999 26.5499993 0.740811 -0.671714 0.3529058 +1000 1 1.72 3.54 12.3900004 26.5499993 0.135612 0.990762 0.3529058 +1001 1 1.72 7.0799999 10.6199999 24.7800007 0.39156 -0.920153 0.6123979 +1002 1 1.72 8.8500004 12.3900004 24.7800007 0.471855 0.881676 0.6123979 +1003 1 1.72 8.8500004 10.6199999 26.5499993 -0.982452 0.186514 0.3529058 +1004 1 1.72 7.0799999 12.3900004 26.5499993 0.427774 -0.903886 0.3529058 +1005 1 1.72 10.6199999 10.6199999 24.7800007 -0.797229 -0.603677 0.6123979 +1006 1 1.72 12.3900004 12.3900004 24.7800007 0.999966 0.00828118 0.6123979 +1007 1 1.72 12.3900004 10.6199999 26.5499993 -0.741601 -0.670841 0.3529058 +1008 1 1.72 10.6199999 12.3900004 26.5499993 0.322026 -0.946731 0.3529058 +1009 1 1.72 14.1599999 10.6199999 24.7800007 -0.451215 -0.892415 0.6123979 +1010 1 1.72 15.9300004 12.3900004 24.7800007 0.122952 0.992413 0.6123979 +1011 1 1.72 15.9300004 10.6199999 26.5499993 -0.693441 -0.720514 0.3529058 +1012 1 1.72 14.1599999 12.3900004 26.5499993 0.270874 0.962615 0.3529058 +1013 1 1.72 17.7000008 10.6199999 24.7800007 -0.942816 -0.333312 0.6123979 +1014 1 1.72 19.4699993 12.3900004 24.7800007 0.658205 -0.752839 0.6123979 +1015 1 1.72 19.4699993 10.6199999 26.5499993 -0.317959 -0.948105 0.3529058 +1016 1 1.72 17.7000008 12.3900004 26.5499993 0.85442 0.519584 0.3529058 +1017 1 1.72 21.2399998 10.6199999 24.7800007 0.652411 0.757866 0.6123979 +1018 1 1.72 23.0100002 12.3900004 24.7800007 0.869068 -0.494693 0.6123979 +1019 1 1.72 23.0100002 10.6199999 26.5499993 0.831807 -0.555065 0.3529058 +1020 1 1.72 21.2399998 12.3900004 26.5499993 -0.566725 0.823907 0.3529058 +1021 1 1.72 24.7800007 10.6199999 24.7800007 0.470133 0.882596 0.6123979 +1022 1 1.72 26.5499993 12.3900004 24.7800007 0.533661 -0.845698 0.6123979 +1023 1 1.72 26.5499993 10.6199999 26.5499993 0.777682 -0.628658 0.3529058 +1024 1 1.72 24.7800007 12.3900004 26.5499993 0.911502 -0.411296 0.3529058 +1025 1 1.72 0.0 0.0 28.3199997 -0.683465 0.729983 0.0622191 +1026 1 1.72 1.77 1.77 28.3199997 -0.931824 -0.362911 0.0622191 +1027 1 1.72 1.77 0.0 30.0900002 0.515337 0.856987 -0.2339673 +1028 1 1.72 0.0 1.77 30.0900002 0.995636 -0.0933234 -0.2339673 +1029 1 1.72 3.54 0.0 28.3199997 0.947694 0.319179 0.0622191 +1030 1 1.72 5.31 1.77 28.3199997 -0.909816 -0.415012 0.0622191 +1031 1 1.72 5.31 0.0 30.0900002 -0.356202 0.934409 -0.2339673 +1032 1 1.72 3.54 1.77 30.0900002 0.668759 -0.743479 -0.2339673 +1033 1 1.72 7.0799999 0.0 28.3199997 0.977558 -0.210665 0.0622191 +1034 1 1.72 8.8500004 1.77 28.3199997 -0.83154 0.555464 0.0622191 +1035 1 1.72 8.8500004 0.0 30.0900002 0.56201 0.827131 -0.2339673 +1036 1 1.72 7.0799999 1.77 30.0900002 0.619904 -0.784678 -0.2339673 +1037 1 1.72 10.6199999 0.0 28.3199997 0.798442 -0.602071 0.0622191 +1038 1 1.72 12.3900004 1.77 28.3199997 0.911462 -0.411384 0.0622191 +1039 1 1.72 12.3900004 0.0 30.0900002 0.988152 0.153477 -0.2339673 +1040 1 1.72 10.6199999 1.77 30.0900002 0.559752 0.82866 -0.2339673 +1041 1 1.72 14.1599999 0.0 28.3199997 -0.459915 0.887963 0.0622191 +1042 1 1.72 15.9300004 1.77 28.3199997 0.954249 0.299013 0.0622191 +1043 1 1.72 15.9300004 0.0 30.0900002 0.65834 -0.75272 -0.2339673 +1044 1 1.72 14.1599999 1.77 30.0900002 0.0482277 -0.998836 -0.2339673 +1045 1 1.72 17.7000008 0.0 28.3199997 -0.0288095 -0.999585 0.0622191 +1046 1 1.72 19.4699993 1.77 28.3199997 -0.19357 -0.981086 0.0622191 +1047 1 1.72 19.4699993 0.0 30.0900002 -0.836096 0.548583 -0.2339673 +1048 1 1.72 17.7000008 1.77 30.0900002 0.723908 0.689896 -0.2339673 +1049 1 1.72 21.2399998 0.0 28.3199997 0.293107 0.95608 0.0622191 +1050 1 1.72 23.0100002 1.77 28.3199997 -0.614682 0.788775 0.0622191 +1051 1 1.72 23.0100002 0.0 30.0900002 0.998231 0.0594531 -0.2339673 +1052 1 1.72 21.2399998 1.77 30.0900002 -0.45442 -0.890787 -0.2339673 +1053 1 1.72 24.7800007 0.0 28.3199997 0.699705 0.714432 0.0622191 +1054 1 1.72 26.5499993 1.77 28.3199997 -0.581278 0.813705 0.0622191 +1055 1 1.72 26.5499993 0.0 30.0900002 0.198058 -0.98019 -0.2339673 +1056 1 1.72 24.7800007 1.77 30.0900002 -0.979096 -0.203397 -0.2339673 +1057 1 1.72 0.0 3.54 28.3199997 0.0430396 -0.999073 0.0622191 +1058 1 1.72 1.77 5.31 28.3199997 0.930885 -0.365311 0.0622191 +1059 1 1.72 1.77 3.54 30.0900002 -0.900003 -0.435883 -0.2339673 +1060 1 1.72 0.0 5.31 30.0900002 0.293177 -0.956058 -0.2339673 +1061 1 1.72 3.54 3.54 28.3199997 -0.416023 -0.909354 0.0622191 +1062 1 1.72 5.31 5.31 28.3199997 -0.979151 -0.203132 0.0622191 +1063 1 1.72 5.31 3.54 30.0900002 0.297677 0.954667 -0.2339673 +1064 1 1.72 3.54 5.31 30.0900002 0.996144 -0.0877343 -0.2339673 +1065 1 1.72 7.0799999 3.54 28.3199997 0.782903 0.622144 0.0622191 +1066 1 1.72 8.8500004 5.31 28.3199997 0.445881 0.895092 0.0622191 +1067 1 1.72 8.8500004 3.54 30.0900002 -0.987418 -0.158133 -0.2339673 +1068 1 1.72 7.0799999 5.31 30.0900002 0.569403 0.822058 -0.2339673 +1069 1 1.72 10.6199999 3.54 28.3199997 -0.594907 0.803795 0.0622191 +1070 1 1.72 12.3900004 5.31 28.3199997 -0.95973 -0.280924 0.0622191 +1071 1 1.72 12.3900004 3.54 30.0900002 -0.858172 0.513363 -0.2339673 +1072 1 1.72 10.6199999 5.31 30.0900002 0.923453 0.383712 -0.2339673 +1073 1 1.72 14.1599999 3.54 28.3199997 0.98861 0.150498 0.0622191 +1074 1 1.72 15.9300004 5.31 28.3199997 -0.860776 0.508985 0.0622191 +1075 1 1.72 15.9300004 3.54 30.0900002 -0.632522 -0.774542 -0.2339673 +1076 1 1.72 14.1599999 5.31 30.0900002 -0.835487 -0.54951 -0.2339673 +1077 1 1.72 17.7000008 3.54 28.3199997 0.433073 -0.901359 0.0622191 +1078 1 1.72 19.4699993 5.31 28.3199997 0.103793 0.994599 0.0622191 +1079 1 1.72 19.4699993 3.54 30.0900002 -0.255698 0.966757 -0.2339673 +1080 1 1.72 17.7000008 5.31 30.0900002 0.342616 -0.939475 -0.2339673 +1081 1 1.72 21.2399998 3.54 28.3199997 0.712434 -0.701739 0.0622191 +1082 1 1.72 23.0100002 5.31 28.3199997 0.911617 -0.411042 0.0622191 +1083 1 1.72 23.0100002 3.54 30.0900002 -0.999404 -0.0345194 -0.2339673 +1084 1 1.72 21.2399998 5.31 30.0900002 -0.750652 -0.660698 -0.2339673 +1085 1 1.72 24.7800007 3.54 28.3199997 -0.496573 0.867995 0.0622191 +1086 1 1.72 26.5499993 5.31 28.3199997 0.126169 0.992009 0.0622191 +1087 1 1.72 26.5499993 3.54 30.0900002 -0.658673 -0.752429 -0.2339673 +1088 1 1.72 24.7800007 5.31 30.0900002 0.913392 0.407082 -0.2339673 +1089 1 1.72 0.0 7.0799999 28.3199997 0.975824 -0.218559 0.0622191 +1090 1 1.72 1.77 8.8500004 28.3199997 -0.975458 0.220186 0.0622191 +1091 1 1.72 1.77 7.0799999 30.0900002 0.761841 0.647764 -0.2339673 +1092 1 1.72 0.0 8.8500004 30.0900002 0.962083 -0.272758 -0.2339673 +1093 1 1.72 3.54 7.0799999 28.3199997 0.839861 0.542802 0.0622191 +1094 1 1.72 5.31 8.8500004 28.3199997 0.520855 -0.853645 0.0622191 +1095 1 1.72 5.31 7.0799999 30.0900002 -0.663007 -0.748613 -0.2339673 +1096 1 1.72 3.54 8.8500004 30.0900002 -0.199301 0.979938 -0.2339673 +1097 1 1.72 7.0799999 7.0799999 28.3199997 0.769083 -0.639149 0.0622191 +1098 1 1.72 8.8500004 8.8500004 28.3199997 0.358585 0.933497 0.0622191 +1099 1 1.72 8.8500004 7.0799999 30.0900002 0.169804 0.985478 -0.2339673 +1100 1 1.72 7.0799999 8.8500004 30.0900002 0.768301 -0.640089 -0.2339673 +1101 1 1.72 10.6199999 7.0799999 28.3199997 0.99441 0.105584 0.0622191 +1102 1 1.72 12.3900004 8.8500004 28.3199997 0.797857 -0.602847 0.0622191 +1103 1 1.72 12.3900004 7.0799999 30.0900002 -0.794976 -0.606641 -0.2339673 +1104 1 1.72 10.6199999 8.8500004 30.0900002 0.999129 -0.0417304 -0.2339673 +1105 1 1.72 14.1599999 7.0799999 28.3199997 -0.98284 0.184462 0.0622191 +1106 1 1.72 15.9300004 8.8500004 28.3199997 0.703287 0.710906 0.0622191 +1107 1 1.72 15.9300004 7.0799999 30.0900002 0.886488 -0.462752 -0.2339673 +1108 1 1.72 14.1599999 8.8500004 30.0900002 -0.878386 -0.477952 -0.2339673 +1109 1 1.72 17.7000008 7.0799999 28.3199997 0.97986 0.199686 0.0622191 +1110 1 1.72 19.4699993 8.8500004 28.3199997 0.758451 -0.65173 0.0622191 +1111 1 1.72 19.4699993 7.0799999 30.0900002 -0.877145 -0.480225 -0.2339673 +1112 1 1.72 17.7000008 8.8500004 30.0900002 0.275596 -0.961274 -0.2339673 +1113 1 1.72 21.2399998 7.0799999 28.3199997 0.629686 -0.77685 0.0622191 +1114 1 1.72 23.0100002 8.8500004 28.3199997 0.0698135 -0.99756 0.0622191 +1115 1 1.72 23.0100002 7.0799999 30.0900002 -0.504325 -0.863514 -0.2339673 +1116 1 1.72 21.2399998 8.8500004 30.0900002 -0.69485 -0.719154 -0.2339673 +1117 1 1.72 24.7800007 7.0799999 28.3199997 0.697306 0.716774 0.0622191 +1118 1 1.72 26.5499993 8.8500004 28.3199997 0.703461 0.710734 0.0622191 +1119 1 1.72 26.5499993 7.0799999 30.0900002 0.658519 -0.752564 -0.2339673 +1120 1 1.72 24.7800007 8.8500004 30.0900002 -0.160721 -0.987 -0.2339673 +1121 1 1.72 0.0 10.6199999 28.3199997 -0.921245 -0.388984 0.0622191 +1122 1 1.72 1.77 12.3900004 28.3199997 0.999713 0.0239583 0.0622191 +1123 1 1.72 1.77 10.6199999 30.0900002 -0.730993 0.682385 -0.2339673 +1124 1 1.72 0.0 12.3900004 30.0900002 0.766045 0.642787 -0.2339673 +1125 1 1.72 3.54 10.6199999 28.3199997 0.404661 0.914467 0.0622191 +1126 1 1.72 5.31 12.3900004 28.3199997 -0.761514 0.648148 0.0622191 +1127 1 1.72 5.31 10.6199999 30.0900002 0.74885 -0.66274 -0.2339673 +1128 1 1.72 3.54 12.3900004 30.0900002 0.899749 -0.436409 -0.2339673 +1129 1 1.72 7.0799999 10.6199999 28.3199997 -0.726955 -0.686685 0.0622191 +1130 1 1.72 8.8500004 12.3900004 28.3199997 -0.99457 -0.104068 0.0622191 +1131 1 1.72 8.8500004 10.6199999 30.0900002 -0.0507939 0.998709 -0.2339673 +1132 1 1.72 7.0799999 12.3900004 30.0900002 0.389634 0.92097 -0.2339673 +1133 1 1.72 10.6199999 10.6199999 28.3199997 0.525493 0.850798 0.0622191 +1134 1 1.72 12.3900004 12.3900004 28.3199997 0.712546 0.701625 0.0622191 +1135 1 1.72 12.3900004 10.6199999 30.0900002 0.440956 -0.897528 -0.2339673 +1136 1 1.72 10.6199999 12.3900004 30.0900002 -0.743537 -0.668694 -0.2339673 +1137 1 1.72 14.1599999 10.6199999 28.3199997 -0.364847 -0.931067 0.0622191 +1138 1 1.72 15.9300004 12.3900004 28.3199997 -0.567422 0.823427 0.0622191 +1139 1 1.72 15.9300004 10.6199999 30.0900002 0.765127 -0.64388 -0.2339673 +1140 1 1.72 14.1599999 12.3900004 30.0900002 0.770315 0.637663 -0.2339673 +1141 1 1.72 17.7000008 10.6199999 28.3199997 -0.894878 0.44631 0.0622191 +1142 1 1.72 19.4699993 12.3900004 28.3199997 -0.232801 0.972524 0.0622191 +1143 1 1.72 19.4699993 10.6199999 30.0900002 0.0312478 0.999512 -0.2339673 +1144 1 1.72 17.7000008 12.3900004 30.0900002 -0.958418 -0.285368 -0.2339673 +1145 1 1.72 21.2399998 10.6199999 28.3199997 -0.715471 -0.698642 0.0622191 +1146 1 1.72 23.0100002 12.3900004 28.3199997 -0.452692 -0.891667 0.0622191 +1147 1 1.72 23.0100002 10.6199999 30.0900002 -0.975195 0.221348 -0.2339673 +1148 1 1.72 21.2399998 12.3900004 30.0900002 -0.150852 -0.988556 -0.2339673 +1149 1 1.72 24.7800007 10.6199999 28.3199997 -0.984506 0.175352 0.0622191 +1150 1 1.72 26.5499993 12.3900004 28.3199997 0.478674 -0.877993 0.0622191 +1151 1 1.72 26.5499993 10.6199999 30.0900002 -0.87747 0.479631 -0.2339673 +1152 1 1.72 24.7800007 12.3900004 30.0900002 -0.348679 0.937242 -0.2339673 +1153 1 1.72 0.0 0.0 31.8600006 0.443037 0.896504 -0.5094728 +1154 1 1.72 1.77 1.77 31.8600006 0.974176 -0.225788 -0.5094728 +1155 1 1.72 1.77 0.0 33.6300011 -0.0221393 0.999755 -0.7399443 +1156 1 1.72 0.0 1.77 33.6300011 -0.824762 -0.56548 -0.7399443 +1157 1 1.72 3.54 0.0 31.8600006 0.830979 -0.556303 -0.5094728 +1158 1 1.72 5.31 1.77 31.8600006 0.904047 0.427433 -0.5094728 +1159 1 1.72 5.31 0.0 33.6300011 0.657361 -0.753576 -0.7399443 +1160 1 1.72 3.54 1.77 33.6300011 -0.0243886 -0.999703 -0.7399443 +1161 1 1.72 7.0799999 0.0 31.8600006 0.83381 0.552051 -0.5094728 +1162 1 1.72 8.8500004 1.77 31.8600006 0.745227 -0.66681 -0.5094728 +1163 1 1.72 8.8500004 0.0 33.6300011 0.890594 0.454799 -0.7399443 +1164 1 1.72 7.0799999 1.77 33.6300011 -0.983468 0.181081 -0.7399443 +1165 1 1.72 10.6199999 0.0 31.8600006 0.0355197 0.999369 -0.5094728 +1166 1 1.72 12.3900004 1.77 31.8600006 -0.708287 -0.705924 -0.5094728 +1167 1 1.72 12.3900004 0.0 33.6300011 0.952537 0.304424 -0.7399443 +1168 1 1.72 10.6199999 1.77 33.6300011 -0.983619 -0.180262 -0.7399443 +1169 1 1.72 14.1599999 0.0 31.8600006 0.99971 -0.024068 -0.5094728 +1170 1 1.72 15.9300004 1.77 31.8600006 -0.87354 -0.486752 -0.5094728 +1171 1 1.72 15.9300004 0.0 33.6300011 -0.964408 0.264419 -0.7399443 +1172 1 1.72 14.1599999 1.77 33.6300011 0.97508 0.221852 -0.7399443 +1173 1 1.72 17.7000008 0.0 31.8600006 -0.995019 -0.0996847 -0.5094728 +1174 1 1.72 19.4699993 1.77 31.8600006 0.518055 0.855347 -0.5094728 +1175 1 1.72 19.4699993 0.0 33.6300011 -0.0216954 -0.999765 -0.7399443 +1176 1 1.72 17.7000008 1.77 33.6300011 -0.299444 -0.954114 -0.7399443 +1177 1 1.72 21.2399998 0.0 31.8600006 0.588463 0.808524 -0.5094728 +1178 1 1.72 23.0100002 1.77 31.8600006 0.180996 0.983484 -0.5094728 +1179 1 1.72 23.0100002 0.0 33.6300011 -0.811554 -0.584277 -0.7399443 +1180 1 1.72 21.2399998 1.77 33.6300011 -0.32129 -0.946981 -0.7399443 +1181 1 1.72 24.7800007 0.0 31.8600006 0.730486 -0.682927 -0.5094728 +1182 1 1.72 26.5499993 1.77 31.8600006 -0.808337 -0.588719 -0.5094728 +1183 1 1.72 26.5499993 0.0 33.6300011 0.957728 -0.287674 -0.7399443 +1184 1 1.72 24.7800007 1.77 33.6300011 0.435262 0.900304 -0.7399443 +1185 1 1.72 0.0 3.54 31.8600006 -0.717329 0.696735 -0.5094728 +1186 1 1.72 1.77 5.31 31.8600006 0.487646 -0.873041 -0.5094728 +1187 1 1.72 1.77 3.54 33.6300011 0.416873 -0.908965 -0.7399443 +1188 1 1.72 0.0 5.31 33.6300011 -0.885728 -0.464205 -0.7399443 +1189 1 1.72 3.54 3.54 31.8600006 -0.732201 0.681089 -0.5094728 +1190 1 1.72 5.31 5.31 31.8600006 0.847536 -0.530737 -0.5094728 +1191 1 1.72 5.31 3.54 33.6300011 -0.997255 -0.0740502 -0.7399443 +1192 1 1.72 3.54 5.31 33.6300011 0.448684 -0.89369 -0.7399443 +1193 1 1.72 7.0799999 3.54 31.8600006 -0.672899 -0.739734 -0.5094728 +1194 1 1.72 8.8500004 5.31 31.8600006 -0.727424 -0.686188 -0.5094728 +1195 1 1.72 8.8500004 3.54 33.6300011 0.561556 -0.827439 -0.7399443 +1196 1 1.72 7.0799999 5.31 33.6300011 0.98709 -0.160165 -0.7399443 +1197 1 1.72 10.6199999 3.54 31.8600006 0.905731 -0.423852 -0.5094728 +1198 1 1.72 12.3900004 5.31 31.8600006 0.705221 0.708987 -0.5094728 +1199 1 1.72 12.3900004 3.54 33.6300011 0.964475 0.264174 -0.7399443 +1200 1 1.72 10.6199999 5.31 33.6300011 0.424517 -0.90542 -0.7399443 +1201 1 1.72 14.1599999 3.54 31.8600006 -0.676756 0.736207 -0.5094728 +1202 1 1.72 15.9300004 5.31 31.8600006 0.949018 0.315222 -0.5094728 +1203 1 1.72 15.9300004 3.54 33.6300011 -0.6482 -0.76147 -0.7399443 +1204 1 1.72 14.1599999 5.31 33.6300011 0.727867 0.685719 -0.7399443 +1205 1 1.72 17.7000008 3.54 31.8600006 -0.681552 -0.731769 -0.5094728 +1206 1 1.72 19.4699993 5.31 31.8600006 -0.267514 0.963554 -0.5094728 +1207 1 1.72 19.4699993 3.54 33.6300011 0.434175 -0.900828 -0.7399443 +1208 1 1.72 17.7000008 5.31 33.6300011 0.0753593 -0.997156 -0.7399443 +1209 1 1.72 21.2399998 3.54 31.8600006 0.98497 0.172726 -0.5094728 +1210 1 1.72 23.0100002 5.31 31.8600006 0.575985 0.81746 -0.5094728 +1211 1 1.72 23.0100002 3.54 33.6300011 0.970001 0.243101 -0.7399443 +1212 1 1.72 21.2399998 5.31 33.6300011 0.828261 0.560342 -0.7399443 +1213 1 1.72 24.7800007 3.54 31.8600006 0.978209 -0.207621 -0.5094728 +1214 1 1.72 26.5499993 5.31 31.8600006 0.909687 -0.415294 -0.5094728 +1215 1 1.72 26.5499993 3.54 33.6300011 -0.975959 0.217953 -0.7399443 +1216 1 1.72 24.7800007 5.31 33.6300011 -0.937376 0.348319 -0.7399443 +1217 1 1.72 0.0 7.0799999 31.8600006 0.851067 0.525057 -0.5094728 +1218 1 1.72 1.77 8.8500004 31.8600006 -0.764799 -0.644269 -0.5094728 +1219 1 1.72 1.77 7.0799999 33.6300011 0.955694 -0.294361 -0.7399443 +1220 1 1.72 0.0 8.8500004 33.6300011 0.0661729 0.997808 -0.7399443 +1221 1 1.72 3.54 7.0799999 31.8600006 -0.999062 0.043309 -0.5094728 +1222 1 1.72 5.31 8.8500004 31.8600006 0.874436 0.48514 -0.5094728 +1223 1 1.72 5.31 7.0799999 33.6300011 0.801484 0.598017 -0.7399443 +1224 1 1.72 3.54 8.8500004 33.6300011 0.724764 -0.688997 -0.7399443 +1225 1 1.72 7.0799999 7.0799999 31.8600006 -0.760062 -0.649851 -0.5094728 +1226 1 1.72 8.8500004 8.8500004 31.8600006 -0.903316 -0.428975 -0.5094728 +1227 1 1.72 8.8500004 7.0799999 33.6300011 0.710841 -0.703353 -0.7399443 +1228 1 1.72 7.0799999 8.8500004 33.6300011 -0.406754 -0.913538 -0.7399443 +1229 1 1.72 10.6199999 7.0799999 31.8600006 0.473099 0.881009 -0.5094728 +1230 1 1.72 12.3900004 8.8500004 31.8600006 -0.952628 -0.304137 -0.5094728 +1231 1 1.72 12.3900004 7.0799999 33.6300011 0.0263082 0.999654 -0.7399443 +1232 1 1.72 10.6199999 8.8500004 33.6300011 0.634765 -0.772705 -0.7399443 +1233 1 1.72 14.1599999 7.0799999 31.8600006 -0.958776 -0.284162 -0.5094728 +1234 1 1.72 15.9300004 8.8500004 31.8600006 -0.246321 0.969188 -0.5094728 +1235 1 1.72 15.9300004 7.0799999 33.6300011 -0.995582 -0.0938921 -0.7399443 +1236 1 1.72 14.1599999 8.8500004 33.6300011 0.0896399 0.995974 -0.7399443 +1237 1 1.72 17.7000008 7.0799999 31.8600006 0.846821 0.531878 -0.5094728 +1238 1 1.72 19.4699993 8.8500004 31.8600006 0.99896 0.0455946 -0.5094728 +1239 1 1.72 19.4699993 7.0799999 33.6300011 0.965707 -0.259633 -0.7399443 +1240 1 1.72 17.7000008 8.8500004 33.6300011 0.890192 -0.455586 -0.7399443 +1241 1 1.72 21.2399998 7.0799999 31.8600006 -0.452131 0.891952 -0.5094728 +1242 1 1.72 23.0100002 8.8500004 31.8600006 0.999985 0.00552895 -0.5094728 +1243 1 1.72 23.0100002 7.0799999 33.6300011 0.989453 0.144852 -0.7399443 +1244 1 1.72 21.2399998 8.8500004 33.6300011 -0.324763 -0.945795 -0.7399443 +1245 1 1.72 24.7800007 7.0799999 31.8600006 -0.391218 -0.920298 -0.5094728 +1246 1 1.72 26.5499993 8.8500004 31.8600006 0.360424 -0.932788 -0.5094728 +1247 1 1.72 26.5499993 7.0799999 33.6300011 0.369084 0.929396 -0.7399443 +1248 1 1.72 24.7800007 8.8500004 33.6300011 0.808935 0.587898 -0.7399443 +1249 1 1.72 0.0 10.6199999 31.8600006 0.592554 0.805531 -0.5094728 +1250 1 1.72 1.77 12.3900004 31.8600006 0.497032 0.867732 -0.5094728 +1251 1 1.72 1.77 10.6199999 33.6300011 -0.37908 -0.925364 -0.7399443 +1252 1 1.72 0.0 12.3900004 33.6300011 -0.289419 -0.957203 -0.7399443 +1253 1 1.72 3.54 10.6199999 31.8600006 0.193417 0.981117 -0.5094728 +1254 1 1.72 5.31 12.3900004 31.8600006 0.981279 0.192594 -0.5094728 +1255 1 1.72 5.31 10.6199999 33.6300011 -0.523431 0.852068 -0.7399443 +1256 1 1.72 3.54 12.3900004 33.6300011 0.579943 0.814657 -0.7399443 +1257 1 1.72 7.0799999 10.6199999 31.8600006 0.344921 -0.938632 -0.5094728 +1258 1 1.72 8.8500004 12.3900004 31.8600006 -0.0517701 -0.998659 -0.5094728 +1259 1 1.72 8.8500004 10.6199999 33.6300011 -0.554549 0.832151 -0.7399443 +1260 1 1.72 7.0799999 12.3900004 33.6300011 -0.673173 -0.739485 -0.7399443 +1261 1 1.72 10.6199999 10.6199999 31.8600006 0.996705 -0.0811154 -0.5094728 +1262 1 1.72 12.3900004 12.3900004 31.8600006 -0.729765 -0.683698 -0.5094728 +1263 1 1.72 12.3900004 10.6199999 33.6300011 0.3592 -0.933261 -0.7399443 +1264 1 1.72 10.6199999 12.3900004 33.6300011 0.933634 -0.358228 -0.7399443 +1265 1 1.72 14.1599999 10.6199999 31.8600006 -0.0411337 0.999154 -0.5094728 +1266 1 1.72 15.9300004 12.3900004 31.8600006 -0.0821833 0.996617 -0.5094728 +1267 1 1.72 15.9300004 10.6199999 33.6300011 0.891257 -0.453499 -0.7399443 +1268 1 1.72 14.1599999 12.3900004 33.6300011 0.997281 -0.0736859 -0.7399443 +1269 1 1.72 17.7000008 10.6199999 31.8600006 0.913733 0.406315 -0.5094728 +1270 1 1.72 19.4699993 12.3900004 31.8600006 0.327132 -0.944979 -0.5094728 +1271 1 1.72 19.4699993 10.6199999 33.6300011 0.428429 0.903575 -0.7399443 +1272 1 1.72 17.7000008 12.3900004 33.6300011 0.546001 0.837785 -0.7399443 +1273 1 1.72 21.2399998 10.6199999 31.8600006 0.920806 -0.390021 -0.5094728 +1274 1 1.72 23.0100002 12.3900004 31.8600006 -0.508725 0.860929 -0.5094728 +1275 1 1.72 23.0100002 10.6199999 33.6300011 0.76493 -0.644113 -0.7399443 +1276 1 1.72 21.2399998 12.3900004 33.6300011 0.852778 -0.522274 -0.7399443 +1277 1 1.72 24.7800007 10.6199999 31.8600006 -0.91367 -0.406457 -0.5094728 +1278 1 1.72 26.5499993 12.3900004 31.8600006 -0.99563 -0.0933861 -0.5094728 +1279 1 1.72 26.5499993 10.6199999 33.6300011 0.404406 -0.914579 -0.7399443 +1280 1 1.72 24.7800007 12.3900004 33.6300011 -0.701356 -0.712811 -0.7399443 +1281 1 1.72 0.0 0.0 35.4000015 -0.94473 -0.327848 -0.90501 +1282 1 1.72 1.77 1.77 35.4000015 -0.353136 -0.935572 -0.90501 +1283 1 1.72 1.77 0.0 37.1699982 0.919541 -0.392995 -0.990079 +1284 1 1.72 0.0 1.77 37.1699982 0.738602 -0.674141 -0.990079 +1285 1 1.72 3.54 0.0 35.4000015 -0.584509 -0.811387 -0.90501 +1286 1 1.72 5.31 1.77 35.4000015 -0.622168 -0.782884 -0.90501 +1287 1 1.72 5.31 0.0 37.1699982 0.810508 -0.585728 -0.990079 +1288 1 1.72 3.54 1.77 37.1699982 -0.341376 0.939927 -0.990079 +1289 1 1.72 7.0799999 0.0 35.4000015 -0.291982 -0.956424 -0.90501 +1290 1 1.72 8.8500004 1.77 35.4000015 -0.8845 -0.46654 -0.90501 +1291 1 1.72 8.8500004 0.0 37.1699982 0.942097 -0.335342 -0.990079 +1292 1 1.72 7.0799999 1.77 37.1699982 0.108091 -0.994141 -0.990079 +1293 1 1.72 10.6199999 0.0 35.4000015 -0.137057 -0.990563 -0.90501 +1294 1 1.72 12.3900004 1.77 35.4000015 0.952613 0.304184 -0.90501 +1295 1 1.72 12.3900004 0.0 37.1699982 -0.1597 -0.987166 -0.990079 +1296 1 1.72 10.6199999 1.77 37.1699982 -0.0914808 0.995807 -0.990079 +1297 1 1.72 14.1599999 0.0 35.4000015 -0.0551536 -0.998478 -0.90501 +1298 1 1.72 15.9300004 1.77 35.4000015 0.999997 -0.00261404 -0.90501 +1299 1 1.72 15.9300004 0.0 37.1699982 0.0424257 0.9991 -0.990079 +1300 1 1.72 14.1599999 1.77 37.1699982 0.986492 0.16381 -0.990079 +1301 1 1.72 17.7000008 0.0 35.4000015 -0.987731 0.156162 -0.90501 +1302 1 1.72 19.4699993 1.77 35.4000015 0.999136 0.0415675 -0.90501 +1303 1 1.72 19.4699993 0.0 37.1699982 0.538991 -0.842311 -0.990079 +1304 1 1.72 17.7000008 1.77 37.1699982 -0.701947 0.712229 -0.990079 +1305 1 1.72 21.2399998 0.0 35.4000015 -0.846846 0.531838 -0.90501 +1306 1 1.72 23.0100002 1.77 35.4000015 0.968994 -0.247084 -0.90501 +1307 1 1.72 23.0100002 0.0 37.1699982 0.459686 0.888081 -0.990079 +1308 1 1.72 21.2399998 1.77 37.1699982 0.843309 -0.537428 -0.990079 +1309 1 1.72 24.7800007 0.0 35.4000015 0.604604 -0.796526 -0.90501 +1310 1 1.72 26.5499993 1.77 35.4000015 0.404715 -0.914443 -0.90501 +1311 1 1.72 26.5499993 0.0 37.1699982 -0.275981 -0.961163 -0.990079 +1312 1 1.72 24.7800007 1.77 37.1699982 -0.990018 0.140938 -0.990079 +1313 1 1.72 0.0 3.54 35.4000015 -0.745892 0.666066 -0.90501 +1314 1 1.72 1.77 5.31 35.4000015 0.222674 0.974893 -0.90501 +1315 1 1.72 1.77 3.54 37.1699982 0.759307 -0.650733 -0.990079 +1316 1 1.72 0.0 5.31 37.1699982 0.40079 -0.91617 -0.990079 +1317 1 1.72 3.54 3.54 35.4000015 0.965248 0.261337 -0.90501 +1318 1 1.72 5.31 5.31 35.4000015 0.808289 0.588786 -0.90501 +1319 1 1.72 5.31 3.54 37.1699982 -0.664905 0.746928 -0.990079 +1320 1 1.72 3.54 5.31 37.1699982 -0.902118 -0.43149 -0.990079 +1321 1 1.72 7.0799999 3.54 35.4000015 -0.591009 0.806665 -0.90501 +1322 1 1.72 8.8500004 5.31 35.4000015 0.147962 -0.988993 -0.90501 +1323 1 1.72 8.8500004 3.54 37.1699982 -0.594126 0.804372 -0.990079 +1324 1 1.72 7.0799999 5.31 37.1699982 0.759327 0.65071 -0.990079 +1325 1 1.72 10.6199999 3.54 35.4000015 0.954116 -0.299437 -0.90501 +1326 1 1.72 12.3900004 5.31 35.4000015 -0.90407 -0.427384 -0.90501 +1327 1 1.72 12.3900004 3.54 37.1699982 0.576244 0.817278 -0.990079 +1328 1 1.72 10.6199999 5.31 37.1699982 0.473674 0.8807 -0.990079 +1329 1 1.72 14.1599999 3.54 35.4000015 0.141741 -0.989904 -0.90501 +1330 1 1.72 15.9300004 5.31 35.4000015 0.795677 -0.605721 -0.90501 +1331 1 1.72 15.9300004 3.54 37.1699982 -0.978247 -0.207442 -0.990079 +1332 1 1.72 14.1599999 5.31 37.1699982 0.80143 -0.598089 -0.990079 +1333 1 1.72 17.7000008 3.54 35.4000015 0.734105 -0.679036 -0.90501 +1334 1 1.72 19.4699993 5.31 35.4000015 0.67717 -0.735827 -0.90501 +1335 1 1.72 19.4699993 3.54 37.1699982 -0.845644 -0.533748 -0.990079 +1336 1 1.72 17.7000008 5.31 37.1699982 0.865183 0.501456 -0.990079 +1337 1 1.72 21.2399998 3.54 35.4000015 0.307914 0.951414 -0.90501 +1338 1 1.72 23.0100002 5.31 35.4000015 0.867733 0.497031 -0.90501 +1339 1 1.72 23.0100002 3.54 37.1699982 0.708211 -0.706001 -0.990079 +1340 1 1.72 21.2399998 5.31 37.1699982 0.739301 0.673375 -0.990079 +1341 1 1.72 24.7800007 3.54 35.4000015 0.91298 0.408004 -0.90501 +1342 1 1.72 26.5499993 5.31 35.4000015 -0.68211 0.73125 -0.90501 +1343 1 1.72 26.5499993 3.54 37.1699982 0.969349 0.245686 -0.990079 +1344 1 1.72 24.7800007 5.31 37.1699982 -0.211815 -0.97731 -0.990079 +1345 1 1.72 0.0 7.0799999 35.4000015 -0.392123 0.919913 -0.90501 +1346 1 1.72 1.77 8.8500004 35.4000015 0.242424 -0.97017 -0.90501 +1347 1 1.72 1.77 7.0799999 37.1699982 0.585077 -0.810978 -0.990079 +1348 1 1.72 0.0 8.8500004 37.1699982 0.770913 -0.63694 -0.990079 +1349 1 1.72 3.54 7.0799999 35.4000015 0.503266 0.864132 -0.90501 +1350 1 1.72 5.31 8.8500004 35.4000015 1 -0.000307051 -0.90501 +1351 1 1.72 5.31 7.0799999 37.1699982 0.314293 -0.949326 -0.990079 +1352 1 1.72 3.54 8.8500004 37.1699982 0.98924 -0.1463 -0.990079 +1353 1 1.72 7.0799999 7.0799999 35.4000015 -0.715545 0.698567 -0.90501 +1354 1 1.72 8.8500004 8.8500004 35.4000015 0.996297 -0.0859746 -0.90501 +1355 1 1.72 8.8500004 7.0799999 37.1699982 0.884823 -0.465928 -0.990079 +1356 1 1.72 7.0799999 8.8500004 37.1699982 0.903291 -0.429028 -0.990079 +1357 1 1.72 10.6199999 7.0799999 35.4000015 0.969254 0.246063 -0.90501 +1358 1 1.72 12.3900004 8.8500004 35.4000015 -0.892939 0.450178 -0.90501 +1359 1 1.72 12.3900004 7.0799999 37.1699982 -0.409629 -0.912252 -0.990079 +1360 1 1.72 10.6199999 8.8500004 37.1699982 0.936433 -0.350846 -0.990079 +1361 1 1.72 14.1599999 7.0799999 35.4000015 0.82122 0.570612 -0.90501 +1362 1 1.72 15.9300004 8.8500004 35.4000015 -0.979622 -0.20085 -0.90501 +1363 1 1.72 15.9300004 7.0799999 37.1699982 -0.81866 0.574279 -0.990079 +1364 1 1.72 14.1599999 8.8500004 37.1699982 0.706937 0.707277 -0.990079 +1365 1 1.72 17.7000008 7.0799999 35.4000015 -0.711766 -0.702417 -0.90501 +1366 1 1.72 19.4699993 8.8500004 35.4000015 -0.284452 0.95869 -0.90501 +1367 1 1.72 19.4699993 7.0799999 37.1699982 -0.740877 -0.671641 -0.990079 +1368 1 1.72 17.7000008 8.8500004 37.1699982 0.926633 -0.375968 -0.990079 +1369 1 1.72 21.2399998 7.0799999 35.4000015 0.98838 0.152 -0.90501 +1370 1 1.72 23.0100002 8.8500004 35.4000015 -0.279107 -0.96026 -0.90501 +1371 1 1.72 23.0100002 7.0799999 37.1699982 0.487169 -0.873308 -0.990079 +1372 1 1.72 21.2399998 8.8500004 37.1699982 -0.973638 -0.2281 -0.990079 +1373 1 1.72 24.7800007 7.0799999 35.4000015 -0.332992 -0.94293 -0.90501 +1374 1 1.72 26.5499993 8.8500004 35.4000015 0.259907 0.965634 -0.90501 +1375 1 1.72 26.5499993 7.0799999 37.1699982 -0.683827 0.729644 -0.990079 +1376 1 1.72 24.7800007 8.8500004 37.1699982 0.977007 -0.213208 -0.990079 +1377 1 1.72 0.0 10.6199999 35.4000015 0.878603 -0.477553 -0.90501 +1378 1 1.72 1.77 12.3900004 35.4000015 0.0660494 -0.997816 -0.90501 +1379 1 1.72 1.77 10.6199999 37.1699982 -0.728669 -0.684866 -0.990079 +1380 1 1.72 0.0 12.3900004 37.1699982 0.999825 -0.0186905 -0.990079 +1381 1 1.72 3.54 10.6199999 35.4000015 -0.922404 -0.386227 -0.90501 +1382 1 1.72 5.31 12.3900004 35.4000015 0.902698 -0.430275 -0.90501 +1383 1 1.72 5.31 10.6199999 37.1699982 -0.685808 0.727783 -0.990079 +1384 1 1.72 3.54 12.3900004 37.1699982 -0.961838 0.273621 -0.990079 +1385 1 1.72 7.0799999 10.6199999 35.4000015 0.0463263 -0.998926 -0.90501 +1386 1 1.72 8.8500004 12.3900004 35.4000015 0.931063 0.364859 -0.90501 +1387 1 1.72 8.8500004 10.6199999 37.1699982 0.111114 0.993808 -0.990079 +1388 1 1.72 7.0799999 12.3900004 37.1699982 -0.590084 0.807342 -0.990079 +1389 1 1.72 10.6199999 10.6199999 35.4000015 -0.816294 0.577637 -0.90501 +1390 1 1.72 12.3900004 12.3900004 35.4000015 0.933899 -0.357537 -0.90501 +1391 1 1.72 12.3900004 10.6199999 37.1699982 0.996561 -0.0828658 -0.990079 +1392 1 1.72 10.6199999 12.3900004 37.1699982 0.559439 0.828872 -0.990079 +1393 1 1.72 14.1599999 10.6199999 35.4000015 -0.136334 -0.990663 -0.90501 +1394 1 1.72 15.9300004 12.3900004 35.4000015 0.998921 -0.0464396 -0.90501 +1395 1 1.72 15.9300004 10.6199999 37.1699982 0.968134 0.250433 -0.990079 +1396 1 1.72 14.1599999 12.3900004 37.1699982 0.560068 0.828447 -0.990079 +1397 1 1.72 17.7000008 10.6199999 35.4000015 -0.83767 0.546176 -0.90501 +1398 1 1.72 19.4699993 12.3900004 35.4000015 0.93805 0.3465 -0.90501 +1399 1 1.72 19.4699993 10.6199999 37.1699982 -0.92963 0.368496 -0.990079 +1400 1 1.72 17.7000008 12.3900004 37.1699982 -0.777503 -0.628879 -0.990079 +1401 1 1.72 21.2399998 10.6199999 35.4000015 -0.65862 0.752476 -0.90501 +1402 1 1.72 23.0100002 12.3900004 35.4000015 0.988051 0.154127 -0.90501 +1403 1 1.72 23.0100002 10.6199999 37.1699982 -0.397996 -0.917387 -0.990079 +1404 1 1.72 21.2399998 12.3900004 37.1699982 0.478327 0.878182 -0.990079 +1405 1 1.72 24.7800007 10.6199999 35.4000015 -0.999092 0.0426096 -0.90501 +1406 1 1.72 26.5499993 12.3900004 35.4000015 -0.59408 0.804406 -0.90501 +1407 1 1.72 26.5499993 10.6199999 37.1699982 -0.851709 0.524015 -0.990079 +1408 1 1.72 24.7800007 12.3900004 37.1699982 -0.938552 -0.345137 -0.990079 +1409 1 1.72 0.0 0.0 38.9399986 0.344952 -0.93862 -1.0 +1410 1 1.72 1.77 1.77 38.9399986 0.660389 0.750924 -1.0 +1411 1 1.72 1.77 0.0 40.7099991 0.899727 0.436453 -1.0 +1412 1 1.72 0.0 1.77 40.7099991 0.437888 0.899029 -1.0 +1413 1 1.72 3.54 0.0 38.9399986 0.167168 -0.985928 -1.0 +1414 1 1.72 5.31 1.77 38.9399986 0.892267 -0.451507 -1.0 +1415 1 1.72 5.31 0.0 40.7099991 0.513878 0.857863 -1.0 +1416 1 1.72 3.54 1.77 40.7099991 0.799566 0.600578 -1.0 +1417 1 1.72 7.0799999 0.0 38.9399986 -0.521087 0.853504 -1.0 +1418 1 1.72 8.8500004 1.77 38.9399986 -0.330938 0.943653 -1.0 +1419 1 1.72 8.8500004 0.0 40.7099991 0.548165 -0.83637 -1.0 +1420 1 1.72 7.0799999 1.77 40.7099991 0.730342 -0.683081 -1.0 +1421 1 1.72 10.6199999 0.0 38.9399986 -0.266616 0.963803 -1.0 +1422 1 1.72 12.3900004 1.77 38.9399986 -0.633583 -0.773675 -1.0 +1423 1 1.72 12.3900004 0.0 40.7099991 -0.684695 0.728829 -1.0 +1424 1 1.72 10.6199999 1.77 40.7099991 0.977689 0.21006 -1.0 +1425 1 1.72 14.1599999 0.0 38.9399986 -0.0328035 0.999462 -1.0 +1426 1 1.72 15.9300004 1.77 38.9399986 -0.877562 0.479464 -1.0 +1427 1 1.72 15.9300004 0.0 40.7099991 0.0138242 -0.999904 -1.0 +1428 1 1.72 14.1599999 1.77 40.7099991 -0.960762 0.277372 -1.0 +1429 1 1.72 17.7000008 0.0 38.9399986 -0.903391 0.428818 -1.0 +1430 1 1.72 19.4699993 1.77 38.9399986 -0.0462961 0.998928 -1.0 +1431 1 1.72 19.4699993 0.0 40.7099991 0.398752 -0.917059 -1.0 +1432 1 1.72 17.7000008 1.77 40.7099991 -0.676259 -0.736664 -1.0 +1433 1 1.72 21.2399998 0.0 38.9399986 0.74816 -0.663519 -1.0 +1434 1 1.72 23.0100002 1.77 38.9399986 0.986612 -0.163082 -1.0 +1435 1 1.72 23.0100002 0.0 40.7099991 0.787619 -0.616163 -1.0 +1436 1 1.72 21.2399998 1.77 40.7099991 -0.829699 0.558211 -1.0 +1437 1 1.72 24.7800007 0.0 38.9399986 0.783063 -0.621942 -1.0 +1438 1 1.72 26.5499993 1.77 38.9399986 -0.354314 -0.935126 -1.0 +1439 1 1.72 26.5499993 0.0 40.7099991 -0.998058 0.0622859 -1.0 +1440 1 1.72 24.7800007 1.77 40.7099991 -0.0230319 -0.999735 -1.0 +1441 1 1.72 0.0 3.54 38.9399986 -0.998688 -0.0512099 -1.0 +1442 1 1.72 1.77 5.31 38.9399986 -0.992267 -0.124119 -1.0 +1443 1 1.72 1.77 3.54 40.7099991 -0.243292 0.969953 -1.0 +1444 1 1.72 0.0 5.31 40.7099991 0.65042 -0.759574 -1.0 +1445 1 1.72 3.54 3.54 38.9399986 -0.157989 -0.987441 -1.0 +1446 1 1.72 5.31 5.31 38.9399986 -0.0723898 -0.997376 -1.0 +1447 1 1.72 5.31 3.54 40.7099991 0.868632 0.495458 -1.0 +1448 1 1.72 3.54 5.31 40.7099991 0.476134 0.879373 -1.0 +1449 1 1.72 7.0799999 3.54 38.9399986 -0.733079 0.680143 -1.0 +1450 1 1.72 8.8500004 5.31 38.9399986 0.884991 -0.465607 -1.0 +1451 1 1.72 8.8500004 3.54 40.7099991 0.598281 0.801286 -1.0 +1452 1 1.72 7.0799999 5.31 40.7099991 -0.78193 0.623366 -1.0 +1453 1 1.72 10.6199999 3.54 38.9399986 0.393558 0.9193 -1.0 +1454 1 1.72 12.3900004 5.31 38.9399986 0.517718 0.855551 -1.0 +1455 1 1.72 12.3900004 3.54 40.7099991 0.121396 0.992604 -1.0 +1456 1 1.72 10.6199999 5.31 40.7099991 -0.726927 -0.686715 -1.0 +1457 1 1.72 14.1599999 3.54 38.9399986 -0.017655 0.999844 -1.0 +1458 1 1.72 15.9300004 5.31 38.9399986 -0.230251 0.973131 -1.0 +1459 1 1.72 15.9300004 3.54 40.7099991 0.535262 0.844686 -1.0 +1460 1 1.72 14.1599999 5.31 40.7099991 0.690918 -0.722933 -1.0 +1461 1 1.72 17.7000008 3.54 38.9399986 -0.0288586 0.999584 -1.0 +1462 1 1.72 19.4699993 5.31 38.9399986 0.220472 -0.975393 -1.0 +1463 1 1.72 19.4699993 3.54 40.7099991 0.904602 -0.426257 -1.0 +1464 1 1.72 17.7000008 5.31 40.7099991 0.183673 0.982987 -1.0 +1465 1 1.72 21.2399998 3.54 38.9399986 -0.99336 -0.115049 -1.0 +1466 1 1.72 23.0100002 5.31 38.9399986 -0.843525 -0.53709 -1.0 +1467 1 1.72 23.0100002 3.54 40.7099991 0.801596 -0.597866 -1.0 +1468 1 1.72 21.2399998 5.31 40.7099991 0.377474 0.92602 -1.0 +1469 1 1.72 24.7800007 3.54 38.9399986 0.231941 -0.97273 -1.0 +1470 1 1.72 26.5499993 5.31 38.9399986 0.704724 0.709481 -1.0 +1471 1 1.72 26.5499993 3.54 40.7099991 0.399001 0.916951 -1.0 +1472 1 1.72 24.7800007 5.31 40.7099991 0.786339 0.617795 -1.0 +1473 1 1.72 0.0 7.0799999 38.9399986 0.991691 0.128642 -1.0 +1474 1 1.72 1.77 8.8500004 38.9399986 -0.931353 0.364118 -1.0 +1475 1 1.72 1.77 7.0799999 40.7099991 0.390401 -0.920645 -1.0 +1476 1 1.72 0.0 8.8500004 40.7099991 0.832046 -0.554707 -1.0 +1477 1 1.72 3.54 7.0799999 38.9399986 0.490501 -0.87144 -1.0 +1478 1 1.72 5.31 8.8500004 38.9399986 0.517491 0.855689 -1.0 +1479 1 1.72 5.31 7.0799999 40.7099991 0.96801 -0.25091 -1.0 +1480 1 1.72 3.54 8.8500004 40.7099991 0.831647 0.555304 -1.0 +1481 1 1.72 7.0799999 7.0799999 38.9399986 -0.756584 -0.653896 -1.0 +1482 1 1.72 8.8500004 8.8500004 38.9399986 0.972635 0.23234 -1.0 +1483 1 1.72 8.8500004 7.0799999 40.7099991 -0.569089 -0.822276 -1.0 +1484 1 1.72 7.0799999 8.8500004 40.7099991 -0.999997 -0.00232018 -1.0 +1485 1 1.72 10.6199999 7.0799999 38.9399986 -0.917029 -0.39882 -1.0 +1486 1 1.72 12.3900004 8.8500004 38.9399986 -0.749901 0.66155 -1.0 +1487 1 1.72 12.3900004 7.0799999 40.7099991 -0.953485 0.301441 -1.0 +1488 1 1.72 10.6199999 8.8500004 40.7099991 -0.959917 -0.280284 -1.0 +1489 1 1.72 14.1599999 7.0799999 38.9399986 -0.419687 -0.907669 -1.0 +1490 1 1.72 15.9300004 8.8500004 38.9399986 -0.736691 0.676229 -1.0 +1491 1 1.72 15.9300004 7.0799999 40.7099991 -0.661978 -0.749524 -1.0 +1492 1 1.72 14.1599999 8.8500004 40.7099991 -0.247976 -0.968766 -1.0 +1493 1 1.72 17.7000008 7.0799999 38.9399986 -0.955047 -0.296455 -1.0 +1494 1 1.72 19.4699993 8.8500004 38.9399986 0.771333 -0.636431 -1.0 +1495 1 1.72 19.4699993 7.0799999 40.7099991 -0.534287 0.845303 -1.0 +1496 1 1.72 17.7000008 8.8500004 40.7099991 -0.392285 -0.919844 -1.0 +1497 1 1.72 21.2399998 7.0799999 38.9399986 -0.356713 0.934214 -1.0 +1498 1 1.72 23.0100002 8.8500004 38.9399986 -0.54703 0.837113 -1.0 +1499 1 1.72 23.0100002 7.0799999 40.7099991 0.534982 0.844864 -1.0 +1500 1 1.72 21.2399998 8.8500004 40.7099991 -0.367134 0.930168 -1.0 +1501 1 1.72 24.7800007 7.0799999 38.9399986 -0.657356 -0.75358 -1.0 +1502 1 1.72 26.5499993 8.8500004 38.9399986 -0.0400527 -0.999198 -1.0 +1503 1 1.72 26.5499993 7.0799999 40.7099991 0.174483 0.98466 -1.0 +1504 1 1.72 24.7800007 8.8500004 40.7099991 0.846796 -0.531917 -1.0 +1505 1 1.72 0.0 10.6199999 38.9399986 -0.477487 0.878639 -1.0 +1506 1 1.72 1.77 12.3900004 38.9399986 -0.935231 -0.354038 -1.0 +1507 1 1.72 1.77 10.6199999 40.7099991 0.99998 -0.00630189 -1.0 +1508 1 1.72 0.0 12.3900004 40.7099991 -0.890445 -0.455092 -1.0 +1509 1 1.72 3.54 10.6199999 38.9399986 0.734004 -0.679145 -1.0 +1510 1 1.72 5.31 12.3900004 38.9399986 -0.124496 -0.99222 -1.0 +1511 1 1.72 5.31 10.6199999 40.7099991 0.798742 -0.601673 -1.0 +1512 1 1.72 3.54 12.3900004 40.7099991 -0.993495 -0.113879 -1.0 +1513 1 1.72 7.0799999 10.6199999 38.9399986 -0.998599 0.0529131 -1.0 +1514 1 1.72 8.8500004 12.3900004 38.9399986 -0.370595 0.928795 -1.0 +1515 1 1.72 8.8500004 10.6199999 40.7099991 -0.945136 0.326676 -1.0 +1516 1 1.72 7.0799999 12.3900004 40.7099991 0.865467 -0.500967 -1.0 +1517 1 1.72 10.6199999 10.6199999 38.9399986 -0.643472 -0.76547 -1.0 +1518 1 1.72 12.3900004 12.3900004 38.9399986 -0.662488 -0.749073 -1.0 +1519 1 1.72 12.3900004 10.6199999 40.7099991 -0.862552 0.505969 -1.0 +1520 1 1.72 10.6199999 12.3900004 40.7099991 0.532564 0.84639 -1.0 +1521 1 1.72 14.1599999 10.6199999 38.9399986 0.184854 -0.982766 -1.0 +1522 1 1.72 15.9300004 12.3900004 38.9399986 0.702517 -0.711667 -1.0 +1523 1 1.72 15.9300004 10.6199999 40.7099991 -0.90802 -0.418927 -1.0 +1524 1 1.72 14.1599999 12.3900004 40.7099991 0.540309 0.841467 -1.0 +1525 1 1.72 17.7000008 10.6199999 38.9399986 -0.694843 -0.719161 -1.0 +1526 1 1.72 19.4699993 12.3900004 38.9399986 0.963227 0.268688 -1.0 +1527 1 1.72 19.4699993 10.6199999 40.7099991 0.854974 -0.518671 -1.0 +1528 1 1.72 17.7000008 12.3900004 40.7099991 0.125003 -0.992156 -1.0 +1529 1 1.72 21.2399998 10.6199999 38.9399986 0.793554 0.6085 -1.0 +1530 1 1.72 23.0100002 12.3900004 38.9399986 0.48485 0.874597 -1.0 +1531 1 1.72 23.0100002 10.6199999 40.7099991 -0.732329 -0.68095 -1.0 +1532 1 1.72 21.2399998 12.3900004 40.7099991 -0.754029 -0.656841 -1.0 +1533 1 1.72 24.7800007 10.6199999 38.9399986 0.603218 0.797577 -1.0 +1534 1 1.72 26.5499993 12.3900004 38.9399986 0.111567 -0.993757 -1.0 +1535 1 1.72 26.5499993 10.6199999 40.7099991 -0.443806 0.896123 -1.0 +1536 1 1.72 24.7800007 12.3900004 40.7099991 0.553387 0.832924 -1.0 +1537 1 1.72 0.0 0.0 42.4799996 -0.779882 0.625926 -1.0 +1538 1 1.72 1.77 1.77 42.4799996 -0.99774 -0.0671896 -1.0 +1539 1 1.72 1.77 0.0 44.25 0.908352 -0.418206 -1.0 +1540 1 1.72 0.0 1.77 44.25 -0.689177 -0.724593 -1.0 +1541 1 1.72 3.54 0.0 42.4799996 0.616551 -0.787315 -1.0 +1542 1 1.72 5.31 1.77 42.4799996 0.882048 0.471159 -1.0 +1543 1 1.72 5.31 0.0 44.25 -0.27813 -0.960543 -1.0 +1544 1 1.72 3.54 1.77 44.25 0.556168 0.83107 -1.0 +1545 1 1.72 7.0799999 0.0 42.4799996 0.432803 0.901489 -1.0 +1546 1 1.72 8.8500004 1.77 42.4799996 0.616089 0.787677 -1.0 +1547 1 1.72 8.8500004 0.0 44.25 -0.380929 -0.924604 -1.0 +1548 1 1.72 7.0799999 1.77 44.25 -0.727313 -0.686306 -1.0 +1549 1 1.72 10.6199999 0.0 42.4799996 0.873361 -0.487074 -1.0 +1550 1 1.72 12.3900004 1.77 42.4799996 0.755001 0.655723 -1.0 +1551 1 1.72 12.3900004 0.0 44.25 0.956648 0.291245 -1.0 +1552 1 1.72 10.6199999 1.77 44.25 0.774436 0.632653 -1.0 +1553 1 1.72 14.1599999 0.0 42.4799996 0.968323 0.249703 -1.0 +1554 1 1.72 15.9300004 1.77 42.4799996 0.992335 -0.123574 -1.0 +1555 1 1.72 15.9300004 0.0 44.25 0.943656 -0.330929 -1.0 +1556 1 1.72 14.1599999 1.77 44.25 -0.682322 0.731052 -1.0 +1557 1 1.72 17.7000008 0.0 42.4799996 0.956794 0.290766 -1.0 +1558 1 1.72 19.4699993 1.77 42.4799996 0.991775 -0.127996 -1.0 +1559 1 1.72 19.4699993 0.0 44.25 0.965549 0.260221 -1.0 +1560 1 1.72 17.7000008 1.77 44.25 -0.770857 -0.637009 -1.0 +1561 1 1.72 21.2399998 0.0 42.4799996 0.53295 0.846147 -1.0 +1562 1 1.72 23.0100002 1.77 42.4799996 -0.0202521 -0.999795 -1.0 +1563 1 1.72 23.0100002 0.0 44.25 -0.818851 -0.574007 -1.0 +1564 1 1.72 21.2399998 1.77 44.25 0.363505 0.931592 -1.0 +1565 1 1.72 24.7800007 0.0 42.4799996 0.517936 -0.855419 -1.0 +1566 1 1.72 26.5499993 1.77 42.4799996 -0.788068 0.615588 -1.0 +1567 1 1.72 26.5499993 0.0 44.25 0.573091 -0.819492 -1.0 +1568 1 1.72 24.7800007 1.77 44.25 -0.841693 -0.539956 -1.0 +1569 1 1.72 0.0 3.54 42.4799996 -0.113809 -0.993503 -1.0 +1570 1 1.72 1.77 5.31 42.4799996 -0.998184 0.060233 -1.0 +1571 1 1.72 1.77 3.54 44.25 -0.707223 -0.70699 -1.0 +1572 1 1.72 0.0 5.31 44.25 0.700773 -0.713384 -1.0 +1573 1 1.72 3.54 3.54 42.4799996 0.66094 -0.750438 -1.0 +1574 1 1.72 5.31 5.31 42.4799996 0.772341 -0.635208 -1.0 +1575 1 1.72 5.31 3.54 44.25 -0.797329 -0.603544 -1.0 +1576 1 1.72 3.54 5.31 44.25 -0.989045 0.147617 -1.0 +1577 1 1.72 7.0799999 3.54 42.4799996 0.99772 -0.0674899 -1.0 +1578 1 1.72 8.8500004 5.31 42.4799996 0.999809 0.0195364 -1.0 +1579 1 1.72 8.8500004 3.54 44.25 -0.993804 0.111149 -1.0 +1580 1 1.72 7.0799999 5.31 44.25 -0.447511 0.894279 -1.0 +1581 1 1.72 10.6199999 3.54 42.4799996 0.95707 0.289856 -1.0 +1582 1 1.72 12.3900004 5.31 42.4799996 0.40934 -0.912382 -1.0 +1583 1 1.72 12.3900004 3.54 44.25 0.411987 -0.91119 -1.0 +1584 1 1.72 10.6199999 5.31 44.25 0.0809672 0.996717 -1.0 +1585 1 1.72 14.1599999 3.54 42.4799996 0.806982 -0.590576 -1.0 +1586 1 1.72 15.9300004 5.31 42.4799996 -0.92161 -0.388116 -1.0 +1587 1 1.72 15.9300004 3.54 44.25 0.895205 -0.445655 -1.0 +1588 1 1.72 14.1599999 5.31 44.25 0.193999 0.981002 -1.0 +1589 1 1.72 17.7000008 3.54 42.4799996 0.571974 0.820272 -1.0 +1590 1 1.72 19.4699993 5.31 42.4799996 0.997266 -0.0738976 -1.0 +1591 1 1.72 19.4699993 3.54 44.25 -0.681332 0.731974 -1.0 +1592 1 1.72 17.7000008 5.31 44.25 -0.709658 -0.704547 -1.0 +1593 1 1.72 21.2399998 3.54 42.4799996 0.781285 -0.624174 -1.0 +1594 1 1.72 23.0100002 5.31 42.4799996 0.0827649 0.996569 -1.0 +1595 1 1.72 23.0100002 3.54 44.25 -0.891169 0.453672 -1.0 +1596 1 1.72 21.2399998 5.31 44.25 -0.960858 0.277042 -1.0 +1597 1 1.72 24.7800007 3.54 42.4799996 -0.246809 0.969064 -1.0 +1598 1 1.72 26.5499993 5.31 42.4799996 0.731543 -0.681795 -1.0 +1599 1 1.72 26.5499993 3.54 44.25 0.507028 -0.86193 -1.0 +1600 1 1.72 24.7800007 5.31 44.25 0.239267 -0.970954 -1.0 +1601 1 1.72 0.0 7.0799999 42.4799996 -0.207203 -0.978298 -1.0 +1602 1 1.72 1.77 8.8500004 42.4799996 -0.796206 -0.605026 -1.0 +1603 1 1.72 1.77 7.0799999 44.25 -0.861104 0.508429 -1.0 +1604 1 1.72 0.0 8.8500004 44.25 -0.962434 -0.271514 -1.0 +1605 1 1.72 3.54 7.0799999 42.4799996 -0.960785 0.277295 -1.0 +1606 1 1.72 5.31 8.8500004 42.4799996 0.860087 0.510147 -1.0 +1607 1 1.72 5.31 7.0799999 44.25 0.685069 -0.728478 -1.0 +1608 1 1.72 3.54 8.8500004 44.25 -0.866577 0.499044 -1.0 +1609 1 1.72 7.0799999 7.0799999 42.4799996 0.914713 -0.404105 -1.0 +1610 1 1.72 8.8500004 8.8500004 42.4799996 0.657443 -0.753504 -1.0 +1611 1 1.72 8.8500004 7.0799999 44.25 -0.611297 -0.791401 -1.0 +1612 1 1.72 7.0799999 8.8500004 44.25 -0.53984 -0.841768 -1.0 +1613 1 1.72 10.6199999 7.0799999 42.4799996 -0.741902 -0.670508 -1.0 +1614 1 1.72 12.3900004 8.8500004 42.4799996 0.999853 -0.0171239 -1.0 +1615 1 1.72 12.3900004 7.0799999 44.25 -0.794014 0.6079 -1.0 +1616 1 1.72 10.6199999 8.8500004 44.25 0.764547 0.644568 -1.0 +1617 1 1.72 14.1599999 7.0799999 42.4799996 -0.294745 0.955576 -1.0 +1618 1 1.72 15.9300004 8.8500004 42.4799996 -0.258804 -0.96593 -1.0 +1619 1 1.72 15.9300004 7.0799999 44.25 0.8344 -0.55116 -1.0 +1620 1 1.72 14.1599999 8.8500004 44.25 0.648362 0.761332 -1.0 +1621 1 1.72 17.7000008 7.0799999 42.4799996 -0.448192 -0.893937 -1.0 +1622 1 1.72 19.4699993 8.8500004 42.4799996 0.622553 0.782578 -1.0 +1623 1 1.72 19.4699993 7.0799999 44.25 -0.907355 0.420366 -1.0 +1624 1 1.72 17.7000008 8.8500004 44.25 0.993176 -0.116625 -1.0 +1625 1 1.72 21.2399998 7.0799999 42.4799996 -0.985696 -0.168533 -1.0 +1626 1 1.72 23.0100002 8.8500004 42.4799996 -0.611019 0.791616 -1.0 +1627 1 1.72 23.0100002 7.0799999 44.25 -0.660688 -0.750661 -1.0 +1628 1 1.72 21.2399998 8.8500004 44.25 -0.315353 -0.948974 -1.0 +1629 1 1.72 24.7800007 7.0799999 42.4799996 0.867247 0.497879 -1.0 +1630 1 1.72 26.5499993 8.8500004 42.4799996 0.0730612 0.997327 -1.0 +1631 1 1.72 26.5499993 7.0799999 44.25 0.925677 -0.378315 -1.0 +1632 1 1.72 24.7800007 8.8500004 44.25 0.455424 -0.890275 -1.0 +1633 1 1.72 0.0 10.6199999 42.4799996 0.798618 0.601838 -1.0 +1634 1 1.72 1.77 12.3900004 42.4799996 -0.321703 -0.946841 -1.0 +1635 1 1.72 1.77 10.6199999 44.25 0.903373 0.428856 -1.0 +1636 1 1.72 0.0 12.3900004 44.25 -0.859684 -0.510826 -1.0 +1637 1 1.72 3.54 10.6199999 42.4799996 -0.290069 0.957006 -1.0 +1638 1 1.72 5.31 12.3900004 42.4799996 0.873874 -0.486152 -1.0 +1639 1 1.72 5.31 10.6199999 44.25 0.560085 -0.828435 -1.0 +1640 1 1.72 3.54 12.3900004 44.25 -0.583989 0.811762 -1.0 +1641 1 1.72 7.0799999 10.6199999 42.4799996 -0.605849 -0.79558 -1.0 +1642 1 1.72 8.8500004 12.3900004 42.4799996 0.99353 0.113569 -1.0 +1643 1 1.72 8.8500004 10.6199999 44.25 -0.267563 0.96354 -1.0 +1644 1 1.72 7.0799999 12.3900004 44.25 0.865189 -0.501446 -1.0 +1645 1 1.72 10.6199999 10.6199999 42.4799996 0.525633 -0.850711 -1.0 +1646 1 1.72 12.3900004 12.3900004 42.4799996 0.494672 0.86908 -1.0 +1647 1 1.72 12.3900004 10.6199999 44.25 -0.39709 0.917779 -1.0 +1648 1 1.72 10.6199999 12.3900004 44.25 -0.441693 -0.897166 -1.0 +1649 1 1.72 14.1599999 10.6199999 42.4799996 0.497335 -0.867559 -1.0 +1650 1 1.72 15.9300004 12.3900004 42.4799996 0.0257625 0.999668 -1.0 +1651 1 1.72 15.9300004 10.6199999 44.25 -0.59284 0.80532 -1.0 +1652 1 1.72 14.1599999 12.3900004 44.25 0.26395 -0.964536 -1.0 +1653 1 1.72 17.7000008 10.6199999 42.4799996 -0.927094 -0.37483 -1.0 +1654 1 1.72 19.4699993 12.3900004 42.4799996 -0.648907 0.760868 -1.0 +1655 1 1.72 19.4699993 10.6199999 44.25 0.664529 0.747263 -1.0 +1656 1 1.72 17.7000008 12.3900004 44.25 -0.550726 0.834686 -1.0 +1657 1 1.72 21.2399998 10.6199999 42.4799996 0.976708 -0.214574 -1.0 +1658 1 1.72 23.0100002 12.3900004 42.4799996 0.911639 0.410993 -1.0 +1659 1 1.72 23.0100002 10.6199999 44.25 0.793568 -0.608481 -1.0 +1660 1 1.72 21.2399998 12.3900004 44.25 0.878681 -0.477409 -1.0 +1661 1 1.72 24.7800007 10.6199999 42.4799996 0.99834 -0.0576003 -1.0 +1662 1 1.72 26.5499993 12.3900004 42.4799996 0.559264 -0.82899 -1.0 +1663 1 1.72 26.5499993 10.6199999 44.25 0.696787 -0.717278 -1.0 +1664 1 1.72 24.7800007 12.3900004 44.25 0.801346 -0.598201 -1.0 +1665 1 1.72 0.0 0.0 46.0200005 -0.796904 -0.604106 -1.0 +1666 1 1.72 1.77 1.77 46.0200005 -0.70049 -0.713662 -1.0 +1667 1 1.72 1.77 0.0 47.7900009 -0.17792 0.984045 -1.0 +1668 1 1.72 0.0 1.77 47.7900009 0.99969 -0.0249106 -1.0 +1669 1 1.72 3.54 0.0 46.0200005 -0.967654 0.252279 -1.0 +1670 1 1.72 5.31 1.77 46.0200005 0.565162 0.82498 -1.0 +1671 1 1.72 5.31 0.0 47.7900009 0.8712 0.490929 -1.0 +1672 1 1.72 3.54 1.77 47.7900009 -0.575531 0.81778 -1.0 +1673 1 1.72 7.0799999 0.0 46.0200005 -0.956595 -0.29142 -1.0 +1674 1 1.72 8.8500004 1.77 46.0200005 0.799627 0.600497 -1.0 +1675 1 1.72 8.8500004 0.0 47.7900009 0.963356 0.268227 -1.0 +1676 1 1.72 7.0799999 1.77 47.7900009 -0.781194 0.624288 -1.0 +1677 1 1.72 10.6199999 0.0 46.0200005 0.998191 -0.0601289 -1.0 +1678 1 1.72 12.3900004 1.77 46.0200005 0.94734 0.32023 -1.0 +1679 1 1.72 12.3900004 0.0 47.7900009 -0.30785 0.951435 -1.0 +1680 1 1.72 10.6199999 1.77 47.7900009 0.955995 0.293382 -1.0 +1681 1 1.72 14.1599999 0.0 46.0200005 0.633712 0.773569 -1.0 +1682 1 1.72 15.9300004 1.77 46.0200005 0.219042 -0.975716 -1.0 +1683 1 1.72 15.9300004 0.0 47.7900009 0.950876 0.309571 -1.0 +1684 1 1.72 14.1599999 1.77 47.7900009 -0.0549325 -0.99849 -1.0 +1685 1 1.72 17.7000008 0.0 46.0200005 0.854227 -0.519901 -1.0 +1686 1 1.72 19.4699993 1.77 46.0200005 0.696316 -0.717735 -1.0 +1687 1 1.72 19.4699993 0.0 47.7900009 -0.936229 -0.351392 -1.0 +1688 1 1.72 17.7000008 1.77 47.7900009 0.718631 -0.695392 -1.0 +1689 1 1.72 21.2399998 0.0 46.0200005 -0.611898 0.790936 -1.0 +1690 1 1.72 23.0100002 1.77 46.0200005 -0.616376 0.787452 -1.0 +1691 1 1.72 23.0100002 0.0 47.7900009 -0.981108 0.193458 -1.0 +1692 1 1.72 21.2399998 1.77 47.7900009 0.522272 -0.852779 -1.0 +1693 1 1.72 24.7800007 0.0 46.0200005 0.533479 -0.845813 -1.0 +1694 1 1.72 26.5499993 1.77 46.0200005 -0.858383 -0.513009 -1.0 +1695 1 1.72 26.5499993 0.0 47.7900009 -0.766908 -0.641758 -1.0 +1696 1 1.72 24.7800007 1.77 47.7900009 0.815759 0.578393 -1.0 +1697 1 1.72 0.0 3.54 46.0200005 -0.302547 -0.953135 -1.0 +1698 1 1.72 1.77 5.31 46.0200005 -0.275049 0.96143 -1.0 +1699 1 1.72 1.77 3.54 47.7900009 -0.614219 0.789135 -1.0 +1700 1 1.72 0.0 5.31 47.7900009 -0.015658 0.999877 -1.0 +1701 1 1.72 3.54 3.54 46.0200005 0.933542 -0.358467 -1.0 +1702 1 1.72 5.31 5.31 46.0200005 -0.711456 0.70273 -1.0 +1703 1 1.72 5.31 3.54 47.7900009 0.852805 -0.522229 -1.0 +1704 1 1.72 3.54 5.31 47.7900009 -0.330465 -0.943818 -1.0 +1705 1 1.72 7.0799999 3.54 46.0200005 0.384837 0.922985 -1.0 +1706 1 1.72 8.8500004 5.31 46.0200005 -0.806817 -0.590801 -1.0 +1707 1 1.72 8.8500004 3.54 47.7900009 0.144424 0.989516 -1.0 +1708 1 1.72 7.0799999 5.31 47.7900009 0.861168 0.50832 -1.0 +1709 1 1.72 10.6199999 3.54 46.0200005 0.747687 0.664052 -1.0 +1710 1 1.72 12.3900004 5.31 46.0200005 -0.956463 -0.291853 -1.0 +1711 1 1.72 12.3900004 3.54 47.7900009 0.374096 0.92739 -1.0 +1712 1 1.72 10.6199999 5.31 47.7900009 -0.682816 -0.73059 -1.0 +1713 1 1.72 14.1599999 3.54 46.0200005 0.693275 -0.720674 -1.0 +1714 1 1.72 15.9300004 5.31 46.0200005 0.335243 0.942132 -1.0 +1715 1 1.72 15.9300004 3.54 47.7900009 0.780251 0.625467 -1.0 +1716 1 1.72 14.1599999 5.31 47.7900009 0.677671 -0.735366 -1.0 +1717 1 1.72 17.7000008 3.54 46.0200005 -0.824877 -0.565312 -1.0 +1718 1 1.72 19.4699993 5.31 46.0200005 0.969532 0.244964 -1.0 +1719 1 1.72 19.4699993 3.54 47.7900009 -0.223332 0.974743 -1.0 +1720 1 1.72 17.7000008 5.31 47.7900009 0.477914 0.878406 -1.0 +1721 1 1.72 21.2399998 3.54 46.0200005 0.907628 0.419776 -1.0 +1722 1 1.72 23.0100002 5.31 46.0200005 0.926945 -0.375198 -1.0 +1723 1 1.72 23.0100002 3.54 47.7900009 -0.129674 -0.991557 -1.0 +1724 1 1.72 21.2399998 5.31 47.7900009 0.983027 0.183462 -1.0 +1725 1 1.72 24.7800007 3.54 46.0200005 0.914456 -0.404685 -1.0 +1726 1 1.72 26.5499993 5.31 46.0200005 -0.664064 0.747676 -1.0 +1727 1 1.72 26.5499993 3.54 47.7900009 0.0509501 0.998701 -1.0 +1728 1 1.72 24.7800007 5.31 47.7900009 0.1595 0.987198 -1.0 +1729 1 1.72 0.0 7.0799999 46.0200005 -0.684021 -0.729462 -1.0 +1730 1 1.72 1.77 8.8500004 46.0200005 0.652831 -0.757504 -1.0 +1731 1 1.72 1.77 7.0799999 47.7900009 0.9889 0.148581 -1.0 +1732 1 1.72 0.0 8.8500004 47.7900009 0.0993089 0.995057 -1.0 +1733 1 1.72 3.54 7.0799999 46.0200005 0.765117 -0.643891 -1.0 +1734 1 1.72 5.31 8.8500004 46.0200005 -0.996738 -0.0807099 -1.0 +1735 1 1.72 5.31 7.0799999 47.7900009 0.547293 0.836941 -1.0 +1736 1 1.72 3.54 8.8500004 47.7900009 -0.0169588 -0.999856 -1.0 +1737 1 1.72 7.0799999 7.0799999 46.0200005 0.743327 -0.668928 -1.0 +1738 1 1.72 8.8500004 8.8500004 46.0200005 0.474299 0.880364 -1.0 +1739 1 1.72 8.8500004 7.0799999 47.7900009 0.747256 0.664537 -1.0 +1740 1 1.72 7.0799999 8.8500004 47.7900009 -0.552665 -0.833404 -1.0 +1741 1 1.72 10.6199999 7.0799999 46.0200005 0.708553 -0.705658 -1.0 +1742 1 1.72 12.3900004 8.8500004 46.0200005 0.403589 0.914941 -1.0 +1743 1 1.72 12.3900004 7.0799999 47.7900009 -0.115193 -0.993343 -1.0 +1744 1 1.72 10.6199999 8.8500004 47.7900009 0.213395 0.976966 -1.0 +1745 1 1.72 14.1599999 7.0799999 46.0200005 0.263861 0.964561 -1.0 +1746 1 1.72 15.9300004 8.8500004 46.0200005 0.128674 -0.991687 -1.0 +1747 1 1.72 15.9300004 7.0799999 47.7900009 -0.963646 -0.267184 -1.0 +1748 1 1.72 14.1599999 8.8500004 47.7900009 0.678015 -0.735048 -1.0 +1749 1 1.72 17.7000008 7.0799999 46.0200005 0.92461 0.380915 -1.0 +1750 1 1.72 19.4699993 8.8500004 46.0200005 0.0177682 -0.999842 -1.0 +1751 1 1.72 19.4699993 7.0799999 47.7900009 -0.778002 0.628261 -1.0 +1752 1 1.72 17.7000008 8.8500004 47.7900009 -0.998079 0.0619576 -1.0 +1753 1 1.72 21.2399998 7.0799999 46.0200005 0.78946 0.613802 -1.0 +1754 1 1.72 23.0100002 8.8500004 46.0200005 -0.395605 0.918421 -1.0 +1755 1 1.72 23.0100002 7.0799999 47.7900009 -0.152619 -0.988285 -1.0 +1756 1 1.72 21.2399998 8.8500004 47.7900009 0.847116 -0.531408 -1.0 +1757 1 1.72 24.7800007 7.0799999 46.0200005 -0.732302 -0.68098 -1.0 +1758 1 1.72 26.5499993 8.8500004 46.0200005 -0.66848 -0.74373 -1.0 +1759 1 1.72 26.5499993 7.0799999 47.7900009 -0.58023 -0.814453 -1.0 +1760 1 1.72 24.7800007 8.8500004 47.7900009 0.737459 0.675392 -1.0 +1761 1 1.72 0.0 10.6199999 46.0200005 -0.942671 0.333723 -1.0 +1762 1 1.72 1.77 12.3900004 46.0200005 -0.578344 0.815793 -1.0 +1763 1 1.72 1.77 10.6199999 47.7900009 -0.145071 0.989421 -1.0 +1764 1 1.72 0.0 12.3900004 47.7900009 -0.755154 0.655548 -1.0 +1765 1 1.72 3.54 10.6199999 46.0200005 0.943079 0.332568 -1.0 +1766 1 1.72 5.31 12.3900004 46.0200005 -0.2576 -0.966252 -1.0 +1767 1 1.72 5.31 10.6199999 47.7900009 0.987939 0.154846 -1.0 +1768 1 1.72 3.54 12.3900004 47.7900009 0.720715 0.693231 -1.0 +1769 1 1.72 7.0799999 10.6199999 46.0200005 -0.966813 -0.255486 -1.0 +1770 1 1.72 8.8500004 12.3900004 46.0200005 0.776347 -0.630306 -1.0 +1771 1 1.72 8.8500004 10.6199999 47.7900009 0.767811 0.640677 -1.0 +1772 1 1.72 7.0799999 12.3900004 47.7900009 -0.639532 -0.768764 -1.0 +1773 1 1.72 10.6199999 10.6199999 46.0200005 0.801365 0.598176 -1.0 +1774 1 1.72 12.3900004 12.3900004 46.0200005 -0.124384 0.992234 -1.0 +1775 1 1.72 12.3900004 10.6199999 47.7900009 -0.251598 -0.967832 -1.0 +1776 1 1.72 10.6199999 12.3900004 47.7900009 0.516703 0.856165 -1.0 +1777 1 1.72 14.1599999 10.6199999 46.0200005 -0.694838 -0.719166 -1.0 +1778 1 1.72 15.9300004 12.3900004 46.0200005 0.690554 0.72328 -1.0 +1779 1 1.72 15.9300004 10.6199999 47.7900009 -0.973203 -0.229946 -1.0 +1780 1 1.72 14.1599999 12.3900004 47.7900009 0.995212 0.0977416 -1.0 +1781 1 1.72 17.7000008 10.6199999 46.0200005 -0.768942 -0.639319 -1.0 +1782 1 1.72 19.4699993 12.3900004 46.0200005 -0.238243 -0.971206 -1.0 +1783 1 1.72 19.4699993 10.6199999 47.7900009 -0.781012 0.624515 -1.0 +1784 1 1.72 17.7000008 12.3900004 47.7900009 -0.395793 0.91834 -1.0 +1785 1 1.72 21.2399998 10.6199999 46.0200005 -0.10685 0.994275 -1.0 +1786 1 1.72 23.0100002 12.3900004 46.0200005 0.616544 0.78732 -1.0 +1787 1 1.72 23.0100002 10.6199999 47.7900009 -0.391461 0.920195 -1.0 +1788 1 1.72 21.2399998 12.3900004 47.7900009 -0.957397 0.288773 -1.0 +1789 1 1.72 24.7800007 10.6199999 46.0200005 0.153505 -0.988148 -1.0 +1790 1 1.72 26.5499993 12.3900004 46.0200005 -0.4169 -0.908952 -1.0 +1791 1 1.72 26.5499993 10.6199999 47.7900009 -0.688911 0.724846 -1.0 +1792 1 1.72 24.7800007 12.3900004 47.7900009 -0.64953 -0.760336 -1.0 +1793 1 1.72 0.0 0.0 49.5600014 0.963203 0.268774 -1.0 +1794 1 1.72 1.77 1.77 49.5600014 0.631627 -0.775273 -1.0 +1795 1 1.72 1.77 0.0 51.3300018 0.667759 -0.744377 -1.0 +1796 1 1.72 0.0 1.77 51.3300018 -0.845117 0.534582 -1.0 +1797 1 1.72 3.54 0.0 49.5600014 0.999286 0.0377747 -1.0 +1798 1 1.72 5.31 1.77 49.5600014 -0.0836974 0.996491 -1.0 +1799 1 1.72 5.31 0.0 51.3300018 0.890687 0.454617 -1.0 +1800 1 1.72 3.54 1.77 51.3300018 0.347329 0.937743 -1.0 +1801 1 1.72 7.0799999 0.0 49.5600014 0.902213 0.431292 -1.0 +1802 1 1.72 8.8500004 1.77 49.5600014 -0.511164 -0.859483 -1.0 +1803 1 1.72 8.8500004 0.0 51.3300018 -0.968273 -0.249895 -1.0 +1804 1 1.72 7.0799999 1.77 51.3300018 -0.818559 -0.574423 -1.0 +1805 1 1.72 10.6199999 0.0 49.5600014 0.451731 -0.892154 -1.0 +1806 1 1.72 12.3900004 1.77 49.5600014 -0.993108 0.117206 -1.0 +1807 1 1.72 12.3900004 0.0 51.3300018 0.00463943 -0.999989 -1.0 +1808 1 1.72 10.6199999 1.77 51.3300018 -0.734487 -0.678623 -1.0 +1809 1 1.72 14.1599999 0.0 49.5600014 -0.156131 0.987736 -1.0 +1810 1 1.72 15.9300004 1.77 49.5600014 -0.557165 0.830402 -1.0 +1811 1 1.72 15.9300004 0.0 51.3300018 0.78872 0.614752 -1.0 +1812 1 1.72 14.1599999 1.77 51.3300018 0.879597 -0.475719 -1.0 +1813 1 1.72 17.7000008 0.0 49.5600014 0.636883 -0.77096 -1.0 +1814 1 1.72 19.4699993 1.77 49.5600014 0.677608 -0.735423 -1.0 +1815 1 1.72 19.4699993 0.0 51.3300018 -0.936255 -0.35132 -1.0 +1816 1 1.72 17.7000008 1.77 51.3300018 0.203873 0.978997 -1.0 +1817 1 1.72 21.2399998 0.0 49.5600014 -0.999769 0.0214994 -1.0 +1818 1 1.72 23.0100002 1.77 49.5600014 0.866544 0.499101 -1.0 +1819 1 1.72 23.0100002 0.0 51.3300018 0.867563 0.497327 -1.0 +1820 1 1.72 21.2399998 1.77 51.3300018 0.957119 0.289695 -1.0 +1821 1 1.72 24.7800007 0.0 49.5600014 -0.32598 0.945377 -1.0 +1822 1 1.72 26.5499993 1.77 49.5600014 -0.501215 -0.865323 -1.0 +1823 1 1.72 26.5499993 0.0 51.3300018 0.54141 -0.840759 -1.0 +1824 1 1.72 24.7800007 1.77 51.3300018 -0.939811 -0.341696 -1.0 +1825 1 1.72 0.0 3.54 49.5600014 0.658484 -0.752594 -1.0 +1826 1 1.72 1.77 5.31 49.5600014 -0.00264612 -0.999996 -1.0 +1827 1 1.72 1.77 3.54 51.3300018 -0.766131 -0.642684 -1.0 +1828 1 1.72 0.0 5.31 51.3300018 -0.880543 0.473966 -1.0 +1829 1 1.72 3.54 3.54 49.5600014 -0.0320145 -0.999487 -1.0 +1830 1 1.72 5.31 5.31 49.5600014 0.93436 -0.356332 -1.0 +1831 1 1.72 5.31 3.54 51.3300018 0.497391 -0.867526 -1.0 +1832 1 1.72 3.54 5.31 51.3300018 0.127459 -0.991844 -1.0 +1833 1 1.72 7.0799999 3.54 49.5600014 -0.421805 0.906686 -1.0 +1834 1 1.72 8.8500004 5.31 49.5600014 -0.808609 -0.588347 -1.0 +1835 1 1.72 8.8500004 3.54 51.3300018 -0.684186 0.729307 -1.0 +1836 1 1.72 7.0799999 5.31 51.3300018 -0.659192 -0.751975 -1.0 +1837 1 1.72 10.6199999 3.54 49.5600014 -0.728336 0.68522 -1.0 +1838 1 1.72 12.3900004 5.31 49.5600014 0.410962 -0.911652 -1.0 +1839 1 1.72 12.3900004 3.54 51.3300018 0.859242 0.51157 -1.0 +1840 1 1.72 10.6199999 5.31 51.3300018 -0.988704 -0.149878 -1.0 +1841 1 1.72 14.1599999 3.54 49.5600014 -0.942745 0.333514 -1.0 +1842 1 1.72 15.9300004 5.31 49.5600014 -0.74095 -0.67156 -1.0 +1843 1 1.72 15.9300004 3.54 51.3300018 0.706625 -0.707588 -1.0 +1844 1 1.72 14.1599999 5.31 51.3300018 -0.730048 0.683396 -1.0 +1845 1 1.72 17.7000008 3.54 49.5600014 0.586523 -0.809932 -1.0 +1846 1 1.72 19.4699993 5.31 49.5600014 -0.79918 -0.601092 -1.0 +1847 1 1.72 19.4699993 3.54 51.3300018 -0.443797 -0.896127 -1.0 +1848 1 1.72 17.7000008 5.31 51.3300018 0.293626 0.95592 -1.0 +1849 1 1.72 21.2399998 3.54 49.5600014 -0.808234 0.588862 -1.0 +1850 1 1.72 23.0100002 5.31 49.5600014 -0.594868 0.803823 -1.0 +1851 1 1.72 23.0100002 3.54 51.3300018 0.69927 0.714858 -1.0 +1852 1 1.72 21.2399998 5.31 51.3300018 -0.648449 -0.761258 -1.0 +1853 1 1.72 24.7800007 3.54 49.5600014 0.998557 -0.0536967 -1.0 +1854 1 1.72 26.5499993 5.31 49.5600014 -0.667872 0.744276 -1.0 +1855 1 1.72 26.5499993 3.54 51.3300018 0.775579 0.63125 -1.0 +1856 1 1.72 24.7800007 5.31 51.3300018 -0.963177 0.268869 -1.0 +1857 1 1.72 0.0 7.0799999 49.5600014 0.527974 -0.849261 -1.0 +1858 1 1.72 1.77 8.8500004 49.5600014 -0.594381 0.804184 -1.0 +1859 1 1.72 1.77 7.0799999 51.3300018 0.843942 -0.536434 -1.0 +1860 1 1.72 0.0 8.8500004 51.3300018 -0.764622 -0.644478 -1.0 +1861 1 1.72 3.54 7.0799999 49.5600014 0.857014 -0.515293 -1.0 +1862 1 1.72 5.31 8.8500004 49.5600014 -0.695719 0.718314 -1.0 +1863 1 1.72 5.31 7.0799999 51.3300018 -0.862516 0.50603 -1.0 +1864 1 1.72 3.54 8.8500004 51.3300018 0.609568 -0.792734 -1.0 +1865 1 1.72 7.0799999 7.0799999 49.5600014 0.596169 -0.802859 -1.0 +1866 1 1.72 8.8500004 8.8500004 49.5600014 -0.266511 0.963832 -1.0 +1867 1 1.72 8.8500004 7.0799999 51.3300018 -0.820137 0.572167 -1.0 +1868 1 1.72 7.0799999 8.8500004 51.3300018 -0.589367 -0.807865 -1.0 +1869 1 1.72 10.6199999 7.0799999 49.5600014 0.439185 -0.898397 -1.0 +1870 1 1.72 12.3900004 8.8500004 49.5600014 -0.862055 0.506815 -1.0 +1871 1 1.72 12.3900004 7.0799999 51.3300018 0.403928 -0.914791 -1.0 +1872 1 1.72 10.6199999 8.8500004 51.3300018 0.82119 0.570655 -1.0 +1873 1 1.72 14.1599999 7.0799999 49.5600014 0.982934 -0.183961 -1.0 +1874 1 1.72 15.9300004 8.8500004 49.5600014 0.878441 -0.477851 -1.0 +1875 1 1.72 15.9300004 7.0799999 51.3300018 0.169772 0.985483 -1.0 +1876 1 1.72 14.1599999 8.8500004 51.3300018 -0.12019 -0.992751 -1.0 +1877 1 1.72 17.7000008 7.0799999 49.5600014 -0.950915 0.309452 -1.0 +1878 1 1.72 19.4699993 8.8500004 49.5600014 -0.0200013 0.9998 -1.0 +1879 1 1.72 19.4699993 7.0799999 51.3300018 -0.691999 0.721899 -1.0 +1880 1 1.72 17.7000008 8.8500004 51.3300018 -0.900841 0.43415 -1.0 +1881 1 1.72 21.2399998 7.0799999 49.5600014 0.790102 -0.612975 -1.0 +1882 1 1.72 23.0100002 8.8500004 49.5600014 -0.920637 -0.390419 -1.0 +1883 1 1.72 23.0100002 7.0799999 51.3300018 -0.504776 -0.86325 -1.0 +1884 1 1.72 21.2399998 8.8500004 51.3300018 0.905539 -0.424264 -1.0 +1885 1 1.72 24.7800007 7.0799999 49.5600014 -0.153077 0.988214 -1.0 +1886 1 1.72 26.5499993 8.8500004 49.5600014 0.2058 0.978594 -1.0 +1887 1 1.72 26.5499993 7.0799999 51.3300018 0.94475 0.327792 -1.0 +1888 1 1.72 24.7800007 8.8500004 51.3300018 -0.892252 -0.451538 -1.0 +1889 1 1.72 0.0 10.6199999 49.5600014 0.97617 -0.217009 -1.0 +1890 1 1.72 1.77 12.3900004 49.5600014 -0.581854 -0.813293 -1.0 +1891 1 1.72 1.77 10.6199999 51.3300018 -0.571074 -0.820898 -1.0 +1892 1 1.72 0.0 12.3900004 51.3300018 -0.863303 0.504687 -1.0 +1893 1 1.72 3.54 10.6199999 49.5600014 0.722315 -0.691564 -1.0 +1894 1 1.72 5.31 12.3900004 49.5600014 -0.520488 -0.853869 -1.0 +1895 1 1.72 5.31 10.6199999 51.3300018 0.316496 -0.948594 -1.0 +1896 1 1.72 3.54 12.3900004 51.3300018 0.33175 -0.943367 -1.0 +1897 1 1.72 7.0799999 10.6199999 49.5600014 0.862258 -0.506468 -1.0 +1898 1 1.72 8.8500004 12.3900004 49.5600014 0.525356 -0.850882 -1.0 +1899 1 1.72 8.8500004 10.6199999 51.3300018 -0.297014 0.954873 -1.0 +1900 1 1.72 7.0799999 12.3900004 51.3300018 0.504758 0.863261 -1.0 +1901 1 1.72 10.6199999 10.6199999 49.5600014 -0.996467 0.0839854 -1.0 +1902 1 1.72 12.3900004 12.3900004 49.5600014 0.675354 0.737494 -1.0 +1903 1 1.72 12.3900004 10.6199999 51.3300018 -0.690673 -0.723167 -1.0 +1904 1 1.72 10.6199999 12.3900004 51.3300018 0.79297 0.609261 -1.0 +1905 1 1.72 14.1599999 10.6199999 49.5600014 -0.942799 0.333362 -1.0 +1906 1 1.72 15.9300004 12.3900004 49.5600014 0.381587 0.924333 -1.0 +1907 1 1.72 15.9300004 10.6199999 51.3300018 0.809886 0.586588 -1.0 +1908 1 1.72 14.1599999 12.3900004 51.3300018 0.128136 0.991757 -1.0 +1909 1 1.72 17.7000008 10.6199999 49.5600014 -0.814602 -0.580021 -1.0 +1910 1 1.72 19.4699993 12.3900004 49.5600014 0.743494 -0.668743 -1.0 +1911 1 1.72 19.4699993 10.6199999 51.3300018 0.947372 0.320135 -1.0 +1912 1 1.72 17.7000008 12.3900004 51.3300018 0.754869 0.655876 -1.0 +1913 1 1.72 21.2399998 10.6199999 49.5600014 0.601738 -0.798693 -1.0 +1914 1 1.72 23.0100002 12.3900004 49.5600014 0.98696 -0.160965 -1.0 +1915 1 1.72 23.0100002 10.6199999 51.3300018 0.769109 -0.639118 -1.0 +1916 1 1.72 21.2399998 12.3900004 51.3300018 -0.842637 0.538482 -1.0 +1917 1 1.72 24.7800007 10.6199999 49.5600014 0.502598 0.86452 -1.0 +1918 1 1.72 26.5499993 12.3900004 49.5600014 0.397794 -0.917475 -1.0 +1919 1 1.72 26.5499993 10.6199999 51.3300018 -0.804028 0.594592 -1.0 +1920 1 1.72 24.7800007 12.3900004 51.3300018 0.825281 0.564722 -1.0 +1921 1 1.72 0.0 0.0 53.0999985 0.387158 0.922013 -1.0 +1922 1 1.72 1.77 1.77 53.0999985 0.380964 -0.92459 -1.0 +1923 1 1.72 1.77 0.0 54.869999 -0.787298 -0.616572 -1.0 +1924 1 1.72 0.0 1.77 54.869999 0.959924 0.280261 -1.0 +1925 1 1.72 3.54 0.0 53.0999985 -0.800935 0.598752 -1.0 +1926 1 1.72 5.31 1.77 53.0999985 -0.998456 0.0555441 -1.0 +1927 1 1.72 5.31 0.0 54.869999 0.924695 -0.380708 -1.0 +1928 1 1.72 3.54 1.77 54.869999 -0.791017 0.611794 -1.0 +1929 1 1.72 7.0799999 0.0 53.0999985 0.991696 -0.128604 -1.0 +1930 1 1.72 8.8500004 1.77 53.0999985 -0.575924 0.817503 -1.0 +1931 1 1.72 8.8500004 0.0 54.869999 0.904262 0.426979 -1.0 +1932 1 1.72 7.0799999 1.77 54.869999 -0.235209 0.971945 -1.0 +1933 1 1.72 10.6199999 0.0 53.0999985 0.678829 -0.734297 -1.0 +1934 1 1.72 12.3900004 1.77 53.0999985 0.365765 0.930707 -1.0 +1935 1 1.72 12.3900004 0.0 54.869999 -0.960827 0.27715 -1.0 +1936 1 1.72 10.6199999 1.77 54.869999 0.979628 0.200823 -1.0 +1937 1 1.72 14.1599999 0.0 53.0999985 0.291329 -0.956623 -1.0 +1938 1 1.72 15.9300004 1.77 53.0999985 -0.795473 -0.605989 -1.0 +1939 1 1.72 15.9300004 0.0 54.869999 0.584653 -0.811284 -1.0 +1940 1 1.72 14.1599999 1.77 54.869999 -0.270267 -0.962785 -1.0 +1941 1 1.72 17.7000008 0.0 53.0999985 0.922768 -0.385355 -1.0 +1942 1 1.72 19.4699993 1.77 53.0999985 -0.772219 0.635357 -1.0 +1943 1 1.72 19.4699993 0.0 54.869999 0.491224 0.871033 -1.0 +1944 1 1.72 17.7000008 1.77 54.869999 -0.6913 -0.722568 -1.0 +1945 1 1.72 21.2399998 0.0 53.0999985 0.853696 -0.520772 -1.0 +1946 1 1.72 23.0100002 1.77 53.0999985 0.675538 -0.737325 -1.0 +1947 1 1.72 23.0100002 0.0 54.869999 0.521809 0.853063 -1.0 +1948 1 1.72 21.2399998 1.77 54.869999 0.132761 -0.991148 -1.0 +1949 1 1.72 24.7800007 0.0 53.0999985 0.683338 0.730103 -1.0 +1950 1 1.72 26.5499993 1.77 53.0999985 0.777185 -0.629272 -1.0 +1951 1 1.72 26.5499993 0.0 54.869999 0.629628 -0.776897 -1.0 +1952 1 1.72 24.7800007 1.77 54.869999 0.0193714 0.999812 -1.0 +1953 1 1.72 0.0 3.54 53.0999985 0.627421 0.77868 -1.0 +1954 1 1.72 1.77 5.31 53.0999985 0.45234 -0.891846 -1.0 +1955 1 1.72 1.77 3.54 54.869999 0.511378 -0.859356 -1.0 +1956 1 1.72 0.0 5.31 54.869999 0.556784 0.830658 -1.0 +1957 1 1.72 3.54 3.54 53.0999985 -0.994592 -0.103856 -1.0 +1958 1 1.72 5.31 5.31 53.0999985 -0.571803 0.820391 -1.0 +1959 1 1.72 5.31 3.54 54.869999 0.999985 -0.00547394 -1.0 +1960 1 1.72 3.54 5.31 54.869999 -0.125355 -0.992112 -1.0 +1961 1 1.72 7.0799999 3.54 53.0999985 0.798226 0.602357 -1.0 +1962 1 1.72 8.8500004 5.31 53.0999985 0.866345 0.499446 -1.0 +1963 1 1.72 8.8500004 3.54 54.869999 0.47709 -0.878854 -1.0 +1964 1 1.72 7.0799999 5.31 54.869999 -0.668719 0.743515 -1.0 +1965 1 1.72 10.6199999 3.54 53.0999985 0.995446 0.0953231 -1.0 +1966 1 1.72 12.3900004 5.31 53.0999985 0.300074 0.953916 -1.0 +1967 1 1.72 12.3900004 3.54 54.869999 0.381916 -0.924197 -1.0 +1968 1 1.72 10.6199999 5.31 54.869999 0.824284 -0.566176 -1.0 +1969 1 1.72 14.1599999 3.54 53.0999985 0.579012 0.815319 -1.0 +1970 1 1.72 15.9300004 5.31 53.0999985 0.978643 0.205568 -1.0 +1971 1 1.72 15.9300004 3.54 54.869999 -0.635046 0.772474 -1.0 +1972 1 1.72 14.1599999 5.31 54.869999 -0.795343 -0.60616 -1.0 +1973 1 1.72 17.7000008 3.54 53.0999985 -0.36394 -0.931422 -1.0 +1974 1 1.72 19.4699993 5.31 53.0999985 0.852086 -0.523402 -1.0 +1975 1 1.72 19.4699993 3.54 54.869999 0.800739 0.599014 -1.0 +1976 1 1.72 17.7000008 5.31 54.869999 -0.806495 0.591241 -1.0 +1977 1 1.72 21.2399998 3.54 53.0999985 0.405207 -0.914225 -1.0 +1978 1 1.72 23.0100002 5.31 53.0999985 0.486475 0.873694 -1.0 +1979 1 1.72 23.0100002 3.54 54.869999 0.104593 0.994515 -1.0 +1980 1 1.72 21.2399998 5.31 54.869999 0.76293 -0.646481 -1.0 +1981 1 1.72 24.7800007 3.54 53.0999985 0.70013 0.714015 -1.0 +1982 1 1.72 26.5499993 5.31 53.0999985 -0.446397 0.894835 -1.0 +1983 1 1.72 26.5499993 3.54 54.869999 -0.999691 0.0248517 -1.0 +1984 1 1.72 24.7800007 5.31 54.869999 0.877641 -0.479318 -1.0 +1985 1 1.72 0.0 7.0799999 53.0999985 -0.0414857 0.999139 -1.0 +1986 1 1.72 1.77 8.8500004 53.0999985 -0.715386 0.69873 -1.0 +1987 1 1.72 1.77 7.0799999 54.869999 0.471897 -0.881654 -1.0 +1988 1 1.72 0.0 8.8500004 54.869999 -0.083467 0.996511 -1.0 +1989 1 1.72 3.54 7.0799999 53.0999985 -0.726025 -0.687668 -1.0 +1990 1 1.72 5.31 8.8500004 53.0999985 -0.892557 0.450934 -1.0 +1991 1 1.72 5.31 7.0799999 54.869999 0.847793 -0.530328 -1.0 +1992 1 1.72 3.54 8.8500004 54.869999 0.579447 -0.81501 -1.0 +1993 1 1.72 7.0799999 7.0799999 53.0999985 -0.164083 0.986446 -1.0 +1994 1 1.72 8.8500004 8.8500004 53.0999985 0.54175 0.84054 -1.0 +1995 1 1.72 8.8500004 7.0799999 54.869999 -0.0482263 0.998836 -1.0 +1996 1 1.72 7.0799999 8.8500004 54.869999 0.109418 0.993996 -1.0 +1997 1 1.72 10.6199999 7.0799999 53.0999985 -0.297051 -0.954862 -1.0 +1998 1 1.72 12.3900004 8.8500004 53.0999985 0.55585 0.831283 -1.0 +1999 1 1.72 12.3900004 7.0799999 54.869999 -0.0686369 -0.997642 -1.0 +2000 1 1.72 10.6199999 8.8500004 54.869999 -0.981261 0.192682 -1.0 +2001 1 1.72 14.1599999 7.0799999 53.0999985 0.304377 -0.952552 -1.0 +2002 1 1.72 15.9300004 8.8500004 53.0999985 0.544133 -0.838999 -1.0 +2003 1 1.72 15.9300004 7.0799999 54.869999 0.615311 0.788284 -1.0 +2004 1 1.72 14.1599999 8.8500004 54.869999 -0.6245 -0.781025 -1.0 +2005 1 1.72 17.7000008 7.0799999 53.0999985 -0.769334 0.638847 -1.0 +2006 1 1.72 19.4699993 8.8500004 53.0999985 -0.951251 -0.308416 -1.0 +2007 1 1.72 19.4699993 7.0799999 54.869999 -0.732638 -0.680618 -1.0 +2008 1 1.72 17.7000008 8.8500004 54.869999 0.988925 -0.148413 -1.0 +2009 1 1.72 21.2399998 7.0799999 53.0999985 0.202011 0.979383 -1.0 +2010 1 1.72 23.0100002 8.8500004 53.0999985 0.809333 -0.58735 -1.0 +2011 1 1.72 23.0100002 7.0799999 54.869999 -0.481777 0.876294 -1.0 +2012 1 1.72 21.2399998 8.8500004 54.869999 -0.504337 0.863507 -1.0 +2013 1 1.72 24.7800007 7.0799999 53.0999985 0.453896 -0.891055 -1.0 +2014 1 1.72 26.5499993 8.8500004 53.0999985 0.539702 -0.841856 -1.0 +2015 1 1.72 26.5499993 7.0799999 54.869999 -0.977851 0.209302 -1.0 +2016 1 1.72 24.7800007 8.8500004 54.869999 -0.868587 -0.495537 -1.0 +2017 1 1.72 0.0 10.6199999 53.0999985 0.613925 -0.789364 -1.0 +2018 1 1.72 1.77 12.3900004 53.0999985 0.946409 0.322972 -1.0 +2019 1 1.72 1.77 10.6199999 54.869999 -0.68116 0.732134 -1.0 +2020 1 1.72 0.0 12.3900004 54.869999 0.596949 0.802279 -1.0 +2021 1 1.72 3.54 10.6199999 53.0999985 -0.710937 0.703256 -1.0 +2022 1 1.72 5.31 12.3900004 53.0999985 0.807287 0.590159 -1.0 +2023 1 1.72 5.31 10.6199999 54.869999 -0.982184 -0.187922 -1.0 +2024 1 1.72 3.54 12.3900004 54.869999 -0.999989 0.0046603 -1.0 +2025 1 1.72 7.0799999 10.6199999 53.0999985 0.0411324 -0.999154 -1.0 +2026 1 1.72 8.8500004 12.3900004 53.0999985 0.121354 -0.992609 -1.0 +2027 1 1.72 8.8500004 10.6199999 54.869999 0.0999101 0.994996 -1.0 +2028 1 1.72 7.0799999 12.3900004 54.869999 -0.636902 -0.770945 -1.0 +2029 1 1.72 10.6199999 10.6199999 53.0999985 0.999294 0.0375647 -1.0 +2030 1 1.72 12.3900004 12.3900004 53.0999985 0.349187 -0.937053 -1.0 +2031 1 1.72 12.3900004 10.6199999 54.869999 -0.373369 -0.927683 -1.0 +2032 1 1.72 10.6199999 12.3900004 54.869999 -0.982318 0.187219 -1.0 +2033 1 1.72 14.1599999 10.6199999 53.0999985 0.969704 -0.244282 -1.0 +2034 1 1.72 15.9300004 12.3900004 53.0999985 -0.999947 -0.0102649 -1.0 +2035 1 1.72 15.9300004 10.6199999 54.869999 -0.449496 0.893283 -1.0 +2036 1 1.72 14.1599999 12.3900004 54.869999 0.733326 0.679877 -1.0 +2037 1 1.72 17.7000008 10.6199999 53.0999985 0.621701 -0.783254 -1.0 +2038 1 1.72 19.4699993 12.3900004 53.0999985 -0.789807 -0.613355 -1.0 +2039 1 1.72 19.4699993 10.6199999 54.869999 0.877995 0.47867 -1.0 +2040 1 1.72 17.7000008 12.3900004 54.869999 -0.127468 0.991843 -1.0 +2041 1 1.72 21.2399998 10.6199999 53.0999985 0.0433058 0.999062 -1.0 +2042 1 1.72 23.0100002 12.3900004 53.0999985 -0.27397 -0.961738 -1.0 +2043 1 1.72 23.0100002 10.6199999 54.869999 0.750318 -0.661077 -1.0 +2044 1 1.72 21.2399998 12.3900004 54.869999 -0.406507 0.913648 -1.0 +2045 1 1.72 24.7800007 10.6199999 53.0999985 0.561022 -0.827801 -1.0 +2046 1 1.72 26.5499993 12.3900004 53.0999985 -0.629316 0.777149 -1.0 +2047 1 1.72 26.5499993 10.6199999 54.869999 0.79356 -0.608491 -1.0 +2048 1 1.72 24.7800007 12.3900004 54.869999 -0.401379 0.915912 -1.0 +2049 1 1.72 0.0 0.0 56.6399994 0.70668 0.707533 -1.0 +2050 1 1.72 1.77 1.77 56.6399994 0.782189 -0.623041 -1.0 +2051 1 1.72 1.77 0.0 58.4099999 -0.868523 0.495648 -1.0 +2052 1 1.72 0.0 1.77 58.4099999 0.00202478 -0.999998 -1.0 +2053 1 1.72 3.54 0.0 56.6399994 0.931336 0.364161 -1.0 +2054 1 1.72 5.31 1.77 56.6399994 0.894986 -0.446094 -1.0 +2055 1 1.72 5.31 0.0 58.4099999 -0.73291 -0.680326 -1.0 +2056 1 1.72 3.54 1.77 58.4099999 0.202056 0.979374 -1.0 +2057 1 1.72 7.0799999 0.0 56.6399994 -0.957374 0.288852 -1.0 +2058 1 1.72 8.8500004 1.77 56.6399994 -0.554674 0.832068 -1.0 +2059 1 1.72 8.8500004 0.0 58.4099999 -0.548501 0.83615 -1.0 +2060 1 1.72 7.0799999 1.77 58.4099999 -0.508072 -0.861314 -1.0 +2061 1 1.72 10.6199999 0.0 56.6399994 0.0836627 -0.996494 -1.0 +2062 1 1.72 12.3900004 1.77 56.6399994 0.950088 -0.311982 -1.0 +2063 1 1.72 12.3900004 0.0 58.4099999 -0.90461 0.42624 -1.0 +2064 1 1.72 10.6199999 1.77 58.4099999 0.199225 0.979954 -1.0 +2065 1 1.72 14.1599999 0.0 56.6399994 0.988698 0.14992 -1.0 +2066 1 1.72 15.9300004 1.77 56.6399994 -0.49389 0.869525 -1.0 +2067 1 1.72 15.9300004 0.0 58.4099999 -0.958877 0.283821 -1.0 +2068 1 1.72 14.1599999 1.77 58.4099999 -0.312319 -0.949977 -1.0 +2069 1 1.72 17.7000008 0.0 56.6399994 -0.735816 0.677181 -1.0 +2070 1 1.72 19.4699993 1.77 56.6399994 -0.955952 -0.293524 -1.0 +2071 1 1.72 19.4699993 0.0 58.4099999 -0.591115 0.806588 -1.0 +2072 1 1.72 17.7000008 1.77 58.4099999 0.951149 -0.308731 -1.0 +2073 1 1.72 21.2399998 0.0 56.6399994 0.978077 -0.208245 -1.0 +2074 1 1.72 23.0100002 1.77 56.6399994 0.760001 -0.649921 -1.0 +2075 1 1.72 23.0100002 0.0 58.4099999 -0.463604 0.886043 -1.0 +2076 1 1.72 21.2399998 1.77 58.4099999 0.865903 -0.500212 -1.0 +2077 1 1.72 24.7800007 0.0 56.6399994 0.0697641 -0.997564 -1.0 +2078 1 1.72 26.5499993 1.77 56.6399994 0.712363 -0.701811 -1.0 +2079 1 1.72 26.5499993 0.0 58.4099999 -0.699707 0.714429 -1.0 +2080 1 1.72 24.7800007 1.77 58.4099999 -0.728987 0.684528 -1.0 +2081 1 1.72 0.0 3.54 56.6399994 0.632521 0.774543 -1.0 +2082 1 1.72 1.77 5.31 56.6399994 -0.653992 -0.756502 -1.0 +2083 1 1.72 1.77 3.54 58.4099999 -0.670933 -0.741518 -1.0 +2084 1 1.72 0.0 5.31 58.4099999 0.649187 0.760629 -1.0 +2085 1 1.72 3.54 3.54 56.6399994 0.7238 -0.690009 -1.0 +2086 1 1.72 5.31 5.31 56.6399994 -0.75238 -0.658729 -1.0 +2087 1 1.72 5.31 3.54 58.4099999 -0.388235 0.92156 -1.0 +2088 1 1.72 3.54 5.31 58.4099999 -0.675189 0.737644 -1.0 +2089 1 1.72 7.0799999 3.54 56.6399994 -0.889112 0.457689 -1.0 +2090 1 1.72 8.8500004 5.31 56.6399994 0.749111 -0.662444 -1.0 +2091 1 1.72 8.8500004 3.54 58.4099999 -0.941424 -0.337226 -1.0 +2092 1 1.72 7.0799999 5.31 58.4099999 -0.988706 0.149867 -1.0 +2093 1 1.72 10.6199999 3.54 56.6399994 0.545256 -0.83827 -1.0 +2094 1 1.72 12.3900004 5.31 56.6399994 -0.318849 0.947806 -1.0 +2095 1 1.72 12.3900004 3.54 58.4099999 -0.350713 -0.936483 -1.0 +2096 1 1.72 10.6199999 5.31 58.4099999 -0.35125 -0.936282 -1.0 +2097 1 1.72 14.1599999 3.54 56.6399994 -0.618789 0.785557 -1.0 +2098 1 1.72 15.9300004 5.31 56.6399994 0.999741 -0.0227789 -1.0 +2099 1 1.72 15.9300004 3.54 58.4099999 0.755255 -0.655431 -1.0 +2100 1 1.72 14.1599999 5.31 58.4099999 0.601516 -0.798861 -1.0 +2101 1 1.72 17.7000008 3.54 56.6399994 0.996553 -0.0829548 -1.0 +2102 1 1.72 19.4699993 5.31 56.6399994 0.986151 -0.165852 -1.0 +2103 1 1.72 19.4699993 3.54 58.4099999 0.995036 -0.0995179 -1.0 +2104 1 1.72 17.7000008 5.31 58.4099999 0.95656 -0.291536 -1.0 +2105 1 1.72 21.2399998 3.54 56.6399994 -0.897713 -0.440581 -1.0 +2106 1 1.72 23.0100002 5.31 56.6399994 0.609579 -0.792725 -1.0 +2107 1 1.72 23.0100002 3.54 58.4099999 -0.952016 -0.306049 -1.0 +2108 1 1.72 21.2399998 5.31 58.4099999 0.508793 0.860889 -1.0 +2109 1 1.72 24.7800007 3.54 56.6399994 0.998528 0.0542339 -1.0 +2110 1 1.72 26.5499993 5.31 56.6399994 0.745465 0.666545 -1.0 +2111 1 1.72 26.5499993 3.54 58.4099999 0.474615 0.880193 -1.0 +2112 1 1.72 24.7800007 5.31 58.4099999 -0.74789 -0.663823 -1.0 +2113 1 1.72 0.0 7.0799999 56.6399994 0.560716 -0.828008 -1.0 +2114 1 1.72 1.77 8.8500004 56.6399994 -0.852575 -0.522605 -1.0 +2115 1 1.72 1.77 7.0799999 58.4099999 0.85811 -0.513466 -1.0 +2116 1 1.72 0.0 8.8500004 58.4099999 0.746768 -0.665085 -1.0 +2117 1 1.72 3.54 7.0799999 56.6399994 -0.935946 -0.352142 -1.0 +2118 1 1.72 5.31 8.8500004 56.6399994 -0.178725 -0.983899 -1.0 +2119 1 1.72 5.31 7.0799999 58.4099999 0.680119 0.733102 -1.0 +2120 1 1.72 3.54 8.8500004 58.4099999 -0.908637 0.417588 -1.0 +2121 1 1.72 7.0799999 7.0799999 56.6399994 -0.84272 0.538353 -1.0 +2122 1 1.72 8.8500004 8.8500004 56.6399994 -0.183889 0.982947 -1.0 +2123 1 1.72 8.8500004 7.0799999 58.4099999 0.931337 0.36416 -1.0 +2124 1 1.72 7.0799999 8.8500004 58.4099999 -0.71214 0.702037 -1.0 +2125 1 1.72 10.6199999 7.0799999 56.6399994 -0.826061 -0.563581 -1.0 +2126 1 1.72 12.3900004 8.8500004 56.6399994 0.706799 -0.707414 -1.0 +2127 1 1.72 12.3900004 7.0799999 58.4099999 0.999887 0.0150623 -1.0 +2128 1 1.72 10.6199999 8.8500004 58.4099999 -0.675091 -0.737735 -1.0 +2129 1 1.72 14.1599999 7.0799999 56.6399994 0.68709 0.726573 -1.0 +2130 1 1.72 15.9300004 8.8500004 56.6399994 0.80823 -0.588866 -1.0 +2131 1 1.72 15.9300004 7.0799999 58.4099999 0.280443 0.959871 -1.0 +2132 1 1.72 14.1599999 8.8500004 58.4099999 -0.0195388 -0.999809 -1.0 +2133 1 1.72 17.7000008 7.0799999 56.6399994 0.817101 -0.576494 -1.0 +2134 1 1.72 19.4699993 8.8500004 56.6399994 -0.752561 0.658522 -1.0 +2135 1 1.72 19.4699993 7.0799999 58.4099999 -0.748276 -0.663388 -1.0 +2136 1 1.72 17.7000008 8.8500004 58.4099999 0.546688 -0.837337 -1.0 +2137 1 1.72 21.2399998 7.0799999 56.6399994 0.934835 -0.355083 -1.0 +2138 1 1.72 23.0100002 8.8500004 56.6399994 0.724294 -0.689491 -1.0 +2139 1 1.72 23.0100002 7.0799999 58.4099999 0.767599 0.640931 -1.0 +2140 1 1.72 21.2399998 8.8500004 58.4099999 0.298522 0.954403 -1.0 +2141 1 1.72 24.7800007 7.0799999 56.6399994 0.768213 0.640194 -1.0 +2142 1 1.72 26.5499993 8.8500004 56.6399994 -0.92639 -0.376567 -1.0 +2143 1 1.72 26.5499993 7.0799999 58.4099999 0.889875 0.456204 -1.0 +2144 1 1.72 24.7800007 8.8500004 58.4099999 -0.0149783 -0.999888 -1.0 +2145 1 1.72 0.0 10.6199999 56.6399994 -0.419147 -0.907918 -1.0 +2146 1 1.72 1.77 12.3900004 56.6399994 -0.326783 -0.945099 -1.0 +2147 1 1.72 1.77 10.6199999 58.4099999 0.681551 -0.731771 -1.0 +2148 1 1.72 0.0 12.3900004 58.4099999 -0.969631 0.244571 -1.0 +2149 1 1.72 3.54 10.6199999 56.6399994 0.999207 -0.0398252 -1.0 +2150 1 1.72 5.31 12.3900004 56.6399994 0.98515 0.171697 -1.0 +2151 1 1.72 5.31 10.6199999 58.4099999 -0.230908 0.972976 -1.0 +2152 1 1.72 3.54 12.3900004 58.4099999 0.0444431 -0.999012 -1.0 +2153 1 1.72 7.0799999 10.6199999 56.6399994 -0.700607 -0.713547 -1.0 +2154 1 1.72 8.8500004 12.3900004 56.6399994 -0.71663 0.697453 -1.0 +2155 1 1.72 8.8500004 10.6199999 58.4099999 0.86165 0.507502 -1.0 +2156 1 1.72 7.0799999 12.3900004 58.4099999 0.855337 0.518072 -1.0 +2157 1 1.72 10.6199999 10.6199999 56.6399994 -0.878546 -0.477657 -1.0 +2158 1 1.72 12.3900004 12.3900004 56.6399994 -0.54777 -0.836629 -1.0 +2159 1 1.72 12.3900004 10.6199999 58.4099999 -0.898841 -0.438275 -1.0 +2160 1 1.72 10.6199999 12.3900004 58.4099999 0.988426 -0.151703 -1.0 +2161 1 1.72 14.1599999 10.6199999 56.6399994 -0.991066 -0.133372 -1.0 +2162 1 1.72 15.9300004 12.3900004 56.6399994 0.669978 0.742381 -1.0 +2163 1 1.72 15.9300004 10.6199999 58.4099999 -0.309314 -0.95096 -1.0 +2164 1 1.72 14.1599999 12.3900004 58.4099999 0.45565 0.890159 -1.0 +2165 1 1.72 17.7000008 10.6199999 56.6399994 0.0920799 -0.995752 -1.0 +2166 1 1.72 19.4699993 12.3900004 56.6399994 -0.443239 0.896404 -1.0 +2167 1 1.72 19.4699993 10.6199999 58.4099999 0.708029 0.706183 -1.0 +2168 1 1.72 17.7000008 12.3900004 58.4099999 -0.189524 -0.981876 -1.0 +2169 1 1.72 21.2399998 10.6199999 56.6399994 0.23724 0.971451 -1.0 +2170 1 1.72 23.0100002 12.3900004 56.6399994 0.644549 -0.764563 -1.0 +2171 1 1.72 23.0100002 10.6199999 58.4099999 0.600127 -0.799905 -1.0 +2172 1 1.72 21.2399998 12.3900004 58.4099999 -0.289949 0.957042 -1.0 +2173 1 1.72 24.7800007 10.6199999 56.6399994 -0.193405 -0.981119 -1.0 +2174 1 1.72 26.5499993 12.3900004 56.6399994 0.999836 0.0181197 -1.0 +2175 1 1.72 26.5499993 10.6199999 58.4099999 0.87479 -0.484503 -1.0 +2176 1 1.72 24.7800007 12.3900004 58.4099999 0.870927 -0.491412 -1.0 +2177 1 1.72 0.0 0.0 60.1800003 0.557809 0.829969 -1.0 +2178 1 1.72 1.77 1.77 60.1800003 0.661083 0.750313 -1.0 +2179 1 1.72 1.77 0.0 61.9500008 0.585103 0.810959 -1.0 +2180 1 1.72 0.0 1.77 61.9500008 -0.633751 -0.773537 -1.0 +2181 1 1.72 3.54 0.0 60.1800003 -0.521719 0.853118 -1.0 +2182 1 1.72 5.31 1.77 60.1800003 0.98165 -0.190693 -1.0 +2183 1 1.72 5.31 0.0 61.9500008 0.408349 -0.912826 -1.0 +2184 1 1.72 3.54 1.77 61.9500008 0.635871 0.771796 -1.0 +2185 1 1.72 7.0799999 0.0 60.1800003 -0.909242 0.416269 -1.0 +2186 1 1.72 8.8500004 1.77 60.1800003 0.441992 -0.897019 -1.0 +2187 1 1.72 8.8500004 0.0 61.9500008 -0.841794 0.5398 -1.0 +2188 1 1.72 7.0799999 1.77 61.9500008 0.999992 0.0040098 -1.0 +2189 1 1.72 10.6199999 0.0 60.1800003 0.88237 -0.470555 -1.0 +2190 1 1.72 12.3900004 1.77 60.1800003 0.776874 -0.629656 -1.0 +2191 1 1.72 12.3900004 0.0 61.9500008 0.784606 -0.619994 -1.0 +2192 1 1.72 10.6199999 1.77 61.9500008 -0.713829 0.70032 -1.0 +2193 1 1.72 14.1599999 0.0 60.1800003 -0.431426 -0.902149 -1.0 +2194 1 1.72 15.9300004 1.77 60.1800003 -0.876149 0.482041 -1.0 +2195 1 1.72 15.9300004 0.0 61.9500008 -0.640123 0.768272 -1.0 +2196 1 1.72 14.1599999 1.77 61.9500008 0.972071 0.234686 -1.0 +2197 1 1.72 17.7000008 0.0 60.1800003 -0.81298 -0.582291 -1.0 +2198 1 1.72 19.4699993 1.77 60.1800003 -0.748235 -0.663434 -1.0 +2199 1 1.72 19.4699993 0.0 61.9500008 -0.9807 0.195518 -1.0 +2200 1 1.72 17.7000008 1.77 61.9500008 0.992074 0.125658 -1.0 +2201 1 1.72 21.2399998 0.0 60.1800003 0.716181 -0.697915 -1.0 +2202 1 1.72 23.0100002 1.77 60.1800003 -0.741353 0.671115 -1.0 +2203 1 1.72 23.0100002 0.0 61.9500008 -0.130588 -0.991437 -1.0 +2204 1 1.72 21.2399998 1.77 61.9500008 -0.744495 -0.667627 -1.0 +2205 1 1.72 24.7800007 0.0 60.1800003 -0.86091 -0.508758 -1.0 +2206 1 1.72 26.5499993 1.77 60.1800003 0.648935 -0.760844 -1.0 +2207 1 1.72 26.5499993 0.0 61.9500008 -0.481539 -0.876425 -1.0 +2208 1 1.72 24.7800007 1.77 61.9500008 -0.668814 -0.74343 -1.0 +2209 1 1.72 0.0 3.54 60.1800003 0.691128 -0.722733 -1.0 +2210 1 1.72 1.77 5.31 60.1800003 0.67037 0.742027 -1.0 +2211 1 1.72 1.77 3.54 61.9500008 -0.867911 0.496721 -1.0 +2212 1 1.72 0.0 5.31 61.9500008 -0.887005 0.461761 -1.0 +2213 1 1.72 3.54 3.54 60.1800003 -0.946602 0.322406 -1.0 +2214 1 1.72 5.31 5.31 60.1800003 0.811626 0.584177 -1.0 +2215 1 1.72 5.31 3.54 61.9500008 0.104124 -0.994564 -1.0 +2216 1 1.72 3.54 5.31 61.9500008 -0.0464429 0.998921 -1.0 +2217 1 1.72 7.0799999 3.54 60.1800003 -0.500872 0.865521 -1.0 +2218 1 1.72 8.8500004 5.31 60.1800003 -0.690205 0.723614 -1.0 +2219 1 1.72 8.8500004 3.54 61.9500008 0.832516 0.554001 -1.0 +2220 1 1.72 7.0799999 5.31 61.9500008 0.494968 0.868911 -1.0 +2221 1 1.72 10.6199999 3.54 60.1800003 0.808228 -0.588869 -1.0 +2222 1 1.72 12.3900004 5.31 60.1800003 -0.885104 0.465393 -1.0 +2223 1 1.72 12.3900004 3.54 61.9500008 0.914734 -0.404057 -1.0 +2224 1 1.72 10.6199999 5.31 61.9500008 -0.758086 -0.652154 -1.0 +2225 1 1.72 14.1599999 3.54 60.1800003 -0.696002 0.71804 -1.0 +2226 1 1.72 15.9300004 5.31 60.1800003 -0.698208 -0.715895 -1.0 +2227 1 1.72 15.9300004 3.54 61.9500008 0.243663 -0.96986 -1.0 +2228 1 1.72 14.1599999 5.31 61.9500008 0.635984 -0.771702 -1.0 +2229 1 1.72 17.7000008 3.54 60.1800003 0.0487048 0.998813 -1.0 +2230 1 1.72 19.4699993 5.31 60.1800003 0.775481 -0.631371 -1.0 +2231 1 1.72 19.4699993 3.54 61.9500008 -0.773744 -0.633499 -1.0 +2232 1 1.72 17.7000008 5.31 61.9500008 -0.899954 0.435985 -1.0 +2233 1 1.72 21.2399998 3.54 60.1800003 0.553204 0.833046 -1.0 +2234 1 1.72 23.0100002 5.31 60.1800003 -0.791792 0.610791 -1.0 +2235 1 1.72 23.0100002 3.54 61.9500008 -0.789094 0.614273 -1.0 +2236 1 1.72 21.2399998 5.31 61.9500008 0.538023 0.84293 -1.0 +2237 1 1.72 24.7800007 3.54 60.1800003 0.0154642 0.99988 -1.0 +2238 1 1.72 26.5499993 5.31 60.1800003 0.963006 0.26948 -1.0 +2239 1 1.72 26.5499993 3.54 61.9500008 -0.702016 0.712161 -1.0 +2240 1 1.72 24.7800007 5.31 61.9500008 0.107175 0.99424 -1.0 +2241 1 1.72 0.0 7.0799999 60.1800003 0.989911 -0.141689 -1.0 +2242 1 1.72 1.77 8.8500004 60.1800003 -0.35683 0.934169 -1.0 +2243 1 1.72 1.77 7.0799999 61.9500008 0.94673 -0.322028 -1.0 +2244 1 1.72 0.0 8.8500004 61.9500008 0.781508 0.623895 -1.0 +2245 1 1.72 3.54 7.0799999 60.1800003 0.859234 -0.511583 -1.0 +2246 1 1.72 5.31 8.8500004 60.1800003 -0.642902 0.765948 -1.0 +2247 1 1.72 5.31 7.0799999 61.9500008 0.818499 0.574508 -1.0 +2248 1 1.72 3.54 8.8500004 61.9500008 -0.0745327 -0.997219 -1.0 +2249 1 1.72 7.0799999 7.0799999 60.1800003 0.660174 0.751113 -1.0 +2250 1 1.72 8.8500004 8.8500004 60.1800003 -0.10963 0.993972 -1.0 +2251 1 1.72 8.8500004 7.0799999 61.9500008 0.998617 0.0525733 -1.0 +2252 1 1.72 7.0799999 8.8500004 61.9500008 -0.988026 -0.15429 -1.0 +2253 1 1.72 10.6199999 7.0799999 60.1800003 -0.47935 -0.877624 -1.0 +2254 1 1.72 12.3900004 8.8500004 60.1800003 -0.829951 0.557836 -1.0 +2255 1 1.72 12.3900004 7.0799999 61.9500008 -0.472795 0.881172 -1.0 +2256 1 1.72 10.6199999 8.8500004 61.9500008 0.754855 -0.655892 -1.0 +2257 1 1.72 14.1599999 7.0799999 60.1800003 0.985672 0.168673 -1.0 +2258 1 1.72 15.9300004 8.8500004 60.1800003 -0.601078 0.799191 -1.0 +2259 1 1.72 15.9300004 7.0799999 61.9500008 -0.634486 0.772934 -1.0 +2260 1 1.72 14.1599999 8.8500004 61.9500008 0.498357 -0.866972 -1.0 +2261 1 1.72 17.7000008 7.0799999 60.1800003 -0.704777 -0.709429 -1.0 +2262 1 1.72 19.4699993 8.8500004 60.1800003 -0.570093 -0.82158 -1.0 +2263 1 1.72 19.4699993 7.0799999 61.9500008 -0.76991 -0.638152 -1.0 +2264 1 1.72 17.7000008 8.8500004 61.9500008 0.341979 -0.939708 -1.0 +2265 1 1.72 21.2399998 7.0799999 60.1800003 0.686329 -0.727292 -1.0 +2266 1 1.72 23.0100002 8.8500004 60.1800003 0.116939 -0.993139 -1.0 +2267 1 1.72 23.0100002 7.0799999 61.9500008 -0.0310812 -0.999517 -1.0 +2268 1 1.72 21.2399998 8.8500004 61.9500008 -0.345442 -0.93844 -1.0 +2269 1 1.72 24.7800007 7.0799999 60.1800003 0.740587 0.671961 -1.0 +2270 1 1.72 26.5499993 8.8500004 60.1800003 -0.752559 0.658524 -1.0 +2271 1 1.72 26.5499993 7.0799999 61.9500008 -0.984996 0.172578 -1.0 +2272 1 1.72 24.7800007 8.8500004 61.9500008 0.932169 -0.362024 -1.0 +2273 1 1.72 0.0 10.6199999 60.1800003 0.749849 0.661609 -1.0 +2274 1 1.72 1.77 12.3900004 60.1800003 0.568754 0.822508 -1.0 +2275 1 1.72 1.77 10.6199999 61.9500008 -0.18935 0.98191 -1.0 +2276 1 1.72 0.0 12.3900004 61.9500008 0.354359 0.93511 -1.0 +2277 1 1.72 3.54 10.6199999 60.1800003 0.583614 0.812031 -1.0 +2278 1 1.72 5.31 12.3900004 60.1800003 -0.944498 0.328516 -1.0 +2279 1 1.72 5.31 10.6199999 61.9500008 0.559089 -0.829108 -1.0 +2280 1 1.72 3.54 12.3900004 61.9500008 -0.979309 0.20237 -1.0 +2281 1 1.72 7.0799999 10.6199999 60.1800003 0.669319 -0.742975 -1.0 +2282 1 1.72 8.8500004 12.3900004 60.1800003 -0.695985 -0.718057 -1.0 +2283 1 1.72 8.8500004 10.6199999 61.9500008 -0.520061 0.854129 -1.0 +2284 1 1.72 7.0799999 12.3900004 61.9500008 0.286424 -0.958103 -1.0 +2285 1 1.72 10.6199999 10.6199999 60.1800003 0.0268946 0.999638 -1.0 +2286 1 1.72 12.3900004 12.3900004 60.1800003 0.544 -0.839085 -1.0 +2287 1 1.72 12.3900004 10.6199999 61.9500008 -0.934575 -0.355767 -1.0 +2288 1 1.72 10.6199999 12.3900004 61.9500008 0.00176616 -0.999998 -1.0 +2289 1 1.72 14.1599999 10.6199999 60.1800003 -0.569887 -0.821723 -1.0 +2290 1 1.72 15.9300004 12.3900004 60.1800003 0.944306 -0.329068 -1.0 +2291 1 1.72 15.9300004 10.6199999 61.9500008 -0.96432 0.264738 -1.0 +2292 1 1.72 14.1599999 12.3900004 61.9500008 -0.0415427 -0.999137 -1.0 +2293 1 1.72 17.7000008 10.6199999 60.1800003 -0.72158 0.692331 -1.0 +2294 1 1.72 19.4699993 12.3900004 60.1800003 0.349289 -0.937015 -1.0 +2295 1 1.72 19.4699993 10.6199999 61.9500008 0.74914 -0.662412 -1.0 +2296 1 1.72 17.7000008 12.3900004 61.9500008 -0.884786 -0.465997 -1.0 +2297 1 1.72 21.2399998 10.6199999 60.1800003 -0.998867 0.0475972 -1.0 +2298 1 1.72 23.0100002 12.3900004 60.1800003 0.561024 -0.827799 -1.0 +2299 1 1.72 23.0100002 10.6199999 61.9500008 0.874993 0.484136 -1.0 +2300 1 1.72 21.2399998 12.3900004 61.9500008 0.731423 0.681924 -1.0 +2301 1 1.72 24.7800007 10.6199999 60.1800003 0.981963 0.189071 -1.0 +2302 1 1.72 26.5499993 12.3900004 60.1800003 -0.304376 -0.952552 -1.0 +2303 1 1.72 26.5499993 10.6199999 61.9500008 0.572572 -0.819854 -1.0 +2304 1 1.72 24.7800007 12.3900004 61.9500008 -0.73053 0.682881 -1.0 +2305 1 1.72 0.0 0.0 63.7200012 -0.241074 0.970507 -1.0 +2306 1 1.72 1.77 1.77 63.7200012 -0.916805 -0.399335 -1.0 +2307 1 1.72 1.77 0.0 65.4899979 0.712752 0.701416 -1.0 +2308 1 1.72 0.0 1.77 65.4899979 -0.171059 -0.985261 -1.0 +2309 1 1.72 3.54 0.0 63.7200012 -0.781157 -0.624335 -1.0 +2310 1 1.72 5.31 1.77 63.7200012 0.833735 0.552165 -1.0 +2311 1 1.72 5.31 0.0 65.4899979 0.829297 -0.558808 -1.0 +2312 1 1.72 3.54 1.77 65.4899979 -0.998425 0.056105 -1.0 +2313 1 1.72 7.0799999 0.0 63.7200012 -0.989521 0.144388 -1.0 +2314 1 1.72 8.8500004 1.77 63.7200012 0.693249 -0.720698 -1.0 +2315 1 1.72 8.8500004 0.0 65.4899979 -0.693845 -0.720125 -1.0 +2316 1 1.72 7.0799999 1.77 65.4899979 0.29916 -0.954203 -1.0 +2317 1 1.72 10.6199999 0.0 63.7200012 -0.573661 0.819093 -1.0 +2318 1 1.72 12.3900004 1.77 63.7200012 -0.673314 0.739356 -1.0 +2319 1 1.72 12.3900004 0.0 65.4899979 0.90837 0.418167 -1.0 +2320 1 1.72 10.6199999 1.77 65.4899979 0.64151 -0.767115 -1.0 +2321 1 1.72 14.1599999 0.0 63.7200012 -0.713383 -0.700774 -1.0 +2322 1 1.72 15.9300004 1.77 63.7200012 -0.931616 -0.363444 -1.0 +2323 1 1.72 15.9300004 0.0 65.4899979 0.528798 -0.848748 -1.0 +2324 1 1.72 14.1599999 1.77 65.4899979 -0.979792 0.200018 -1.0 +2325 1 1.72 17.7000008 0.0 63.7200012 0.966546 0.256495 -1.0 +2326 1 1.72 19.4699993 1.77 63.7200012 -0.631077 0.77572 -1.0 +2327 1 1.72 19.4699993 0.0 65.4899979 -0.568237 0.822865 -1.0 +2328 1 1.72 17.7000008 1.77 65.4899979 0.413133 -0.910671 -1.0 +2329 1 1.72 21.2399998 0.0 63.7200012 0.869897 0.493234 -1.0 +2330 1 1.72 23.0100002 1.77 63.7200012 -0.387445 0.921893 -1.0 +2331 1 1.72 23.0100002 0.0 65.4899979 0.95615 0.292878 -1.0 +2332 1 1.72 21.2399998 1.77 65.4899979 -0.134405 -0.990926 -1.0 +2333 1 1.72 24.7800007 0.0 63.7200012 -0.67517 0.737662 -1.0 +2334 1 1.72 26.5499993 1.77 63.7200012 0.645081 0.764114 -1.0 +2335 1 1.72 26.5499993 0.0 65.4899979 -0.988262 -0.152766 -1.0 +2336 1 1.72 24.7800007 1.77 65.4899979 0.538304 0.842751 -1.0 +2337 1 1.72 0.0 3.54 63.7200012 -0.267653 -0.963515 -1.0 +2338 1 1.72 1.77 5.31 63.7200012 0.885324 -0.464975 -1.0 +2339 1 1.72 1.77 3.54 65.4899979 0.308337 -0.951277 -1.0 +2340 1 1.72 0.0 5.31 65.4899979 -0.82045 -0.571719 -1.0 +2341 1 1.72 3.54 3.54 63.7200012 0.265256 0.964178 -1.0 +2342 1 1.72 5.31 5.31 63.7200012 -0.0642945 -0.997931 -1.0 +2343 1 1.72 5.31 3.54 65.4899979 -0.163418 -0.986557 -1.0 +2344 1 1.72 3.54 5.31 65.4899979 -0.404113 -0.914709 -1.0 +2345 1 1.72 7.0799999 3.54 63.7200012 -0.536916 -0.843635 -1.0 +2346 1 1.72 8.8500004 5.31 63.7200012 0.743761 -0.668446 -1.0 +2347 1 1.72 8.8500004 3.54 65.4899979 -0.741639 -0.670799 -1.0 +2348 1 1.72 7.0799999 5.31 65.4899979 0.915007 0.403438 -1.0 +2349 1 1.72 10.6199999 3.54 63.7200012 0.967849 0.25153 -1.0 +2350 1 1.72 12.3900004 5.31 63.7200012 -0.584651 -0.811285 -1.0 +2351 1 1.72 12.3900004 3.54 65.4899979 0.800263 0.599649 -1.0 +2352 1 1.72 10.6199999 5.31 65.4899979 0.830283 -0.557342 -1.0 +2353 1 1.72 14.1599999 3.54 63.7200012 0.0222517 -0.999752 -1.0 +2354 1 1.72 15.9300004 5.31 63.7200012 -0.884908 -0.465765 -1.0 +2355 1 1.72 15.9300004 3.54 65.4899979 -0.264413 -0.96441 -1.0 +2356 1 1.72 14.1599999 5.31 65.4899979 -0.575731 -0.817639 -1.0 +2357 1 1.72 17.7000008 3.54 63.7200012 0.195927 0.980618 -1.0 +2358 1 1.72 19.4699993 5.31 63.7200012 0.60046 -0.799655 -1.0 +2359 1 1.72 19.4699993 3.54 65.4899979 0.721915 -0.691982 -1.0 +2360 1 1.72 17.7000008 5.31 65.4899979 0.25394 0.96722 -1.0 +2361 1 1.72 21.2399998 3.54 63.7200012 -0.946485 -0.322747 -1.0 +2362 1 1.72 23.0100002 5.31 63.7200012 -0.503691 -0.863884 -1.0 +2363 1 1.72 23.0100002 3.54 65.4899979 0.19038 0.98171 -1.0 +2364 1 1.72 21.2399998 5.31 65.4899979 -0.791471 0.611206 -1.0 +2365 1 1.72 24.7800007 3.54 63.7200012 0.552113 -0.833769 -1.0 +2366 1 1.72 26.5499993 5.31 63.7200012 -0.48996 -0.871745 -1.0 +2367 1 1.72 26.5499993 3.54 65.4899979 0.719199 -0.694805 -1.0 +2368 1 1.72 24.7800007 5.31 65.4899979 0.532568 -0.846387 -1.0 +2369 1 1.72 0.0 7.0799999 63.7200012 -0.71549 -0.698623 -1.0 +2370 1 1.72 1.77 8.8500004 63.7200012 0.174918 0.984583 -1.0 +2371 1 1.72 1.77 7.0799999 65.4899979 -0.0938261 -0.995589 -1.0 +2372 1 1.72 0.0 8.8500004 65.4899979 0.753401 0.657562 -1.0 +2373 1 1.72 3.54 7.0799999 63.7200012 -0.352993 -0.935626 -1.0 +2374 1 1.72 5.31 8.8500004 63.7200012 -0.380907 -0.924613 -1.0 +2375 1 1.72 5.31 7.0799999 65.4899979 -0.506329 0.862341 -1.0 +2376 1 1.72 3.54 8.8500004 65.4899979 -0.899908 -0.436079 -1.0 +2377 1 1.72 7.0799999 7.0799999 63.7200012 -0.641588 -0.76705 -1.0 +2378 1 1.72 8.8500004 8.8500004 63.7200012 -0.650487 0.759518 -1.0 +2379 1 1.72 8.8500004 7.0799999 65.4899979 0.0807781 -0.996732 -1.0 +2380 1 1.72 7.0799999 8.8500004 65.4899979 -0.654193 0.756328 -1.0 +2381 1 1.72 10.6199999 7.0799999 63.7200012 0.442925 -0.896559 -1.0 +2382 1 1.72 12.3900004 8.8500004 63.7200012 0.951988 -0.306134 -1.0 +2383 1 1.72 12.3900004 7.0799999 65.4899979 0.584264 -0.811564 -1.0 +2384 1 1.72 10.6199999 8.8500004 65.4899979 -0.770223 0.637775 -1.0 +2385 1 1.72 14.1599999 7.0799999 63.7200012 0.302857 -0.953036 -1.0 +2386 1 1.72 15.9300004 8.8500004 63.7200012 -0.749447 -0.662064 -1.0 +2387 1 1.72 15.9300004 7.0799999 65.4899979 -0.690577 0.723259 -1.0 +2388 1 1.72 14.1599999 8.8500004 65.4899979 -0.16283 0.986654 -1.0 +2389 1 1.72 17.7000008 7.0799999 63.7200012 0.971916 -0.23533 -1.0 +2390 1 1.72 19.4699993 8.8500004 63.7200012 0.681513 -0.731806 -1.0 +2391 1 1.72 19.4699993 7.0799999 65.4899979 0.849563 -0.527487 -1.0 +2392 1 1.72 17.7000008 8.8500004 65.4899979 -0.189695 -0.981843 -1.0 +2393 1 1.72 21.2399998 7.0799999 63.7200012 -0.416638 -0.909072 -1.0 +2394 1 1.72 23.0100002 8.8500004 63.7200012 0.760077 0.649833 -1.0 +2395 1 1.72 23.0100002 7.0799999 65.4899979 0.937626 -0.347646 -1.0 +2396 1 1.72 21.2399998 8.8500004 65.4899979 -0.527299 0.849679 -1.0 +2397 1 1.72 24.7800007 7.0799999 63.7200012 -0.767971 0.640485 -1.0 +2398 1 1.72 26.5499993 8.8500004 63.7200012 0.567538 0.823347 -1.0 +2399 1 1.72 26.5499993 7.0799999 65.4899979 0.151658 -0.988433 -1.0 +2400 1 1.72 24.7800007 8.8500004 65.4899979 0.844996 0.534773 -1.0 +2401 1 1.72 0.0 10.6199999 63.7200012 -0.938171 -0.346171 -1.0 +2402 1 1.72 1.77 12.3900004 63.7200012 -0.85901 -0.511959 -1.0 +2403 1 1.72 1.77 10.6199999 65.4899979 0.999863 -0.016543 -1.0 +2404 1 1.72 0.0 12.3900004 65.4899979 -0.702009 0.712168 -1.0 +2405 1 1.72 3.54 10.6199999 63.7200012 0.996207 0.0870175 -1.0 +2406 1 1.72 5.31 12.3900004 63.7200012 -0.314469 -0.949268 -1.0 +2407 1 1.72 5.31 10.6199999 65.4899979 0.146234 -0.98925 -1.0 +2408 1 1.72 3.54 12.3900004 65.4899979 0.822656 0.568539 -1.0 +2409 1 1.72 7.0799999 10.6199999 63.7200012 -0.0988962 0.995098 -1.0 +2410 1 1.72 8.8500004 12.3900004 63.7200012 0.520946 0.853589 -1.0 +2411 1 1.72 8.8500004 10.6199999 65.4899979 -0.43187 -0.901936 -1.0 +2412 1 1.72 7.0799999 12.3900004 65.4899979 0.481779 -0.876293 -1.0 +2413 1 1.72 10.6199999 10.6199999 63.7200012 -0.780118 -0.625633 -1.0 +2414 1 1.72 12.3900004 12.3900004 63.7200012 0.686773 -0.726872 -1.0 +2415 1 1.72 12.3900004 10.6199999 65.4899979 -0.981106 0.19347 -1.0 +2416 1 1.72 10.6199999 12.3900004 65.4899979 -0.93308 -0.35967 -1.0 +2417 1 1.72 14.1599999 10.6199999 63.7200012 0.729055 0.684455 -1.0 +2418 1 1.72 15.9300004 12.3900004 63.7200012 -0.365456 -0.930829 -1.0 +2419 1 1.72 15.9300004 10.6199999 65.4899979 0.86082 -0.50891 -1.0 +2420 1 1.72 14.1599999 12.3900004 65.4899979 -0.362523 -0.931975 -1.0 +2421 1 1.72 17.7000008 10.6199999 63.7200012 -0.751222 0.66005 -1.0 +2422 1 1.72 19.4699993 12.3900004 63.7200012 0.611707 -0.791085 -1.0 +2423 1 1.72 19.4699993 10.6199999 65.4899979 0.70111 -0.713053 -1.0 +2424 1 1.72 17.7000008 12.3900004 65.4899979 -0.700857 -0.713302 -1.0 +2425 1 1.72 21.2399998 10.6199999 63.7200012 0.512912 0.858441 -1.0 +2426 1 1.72 23.0100002 12.3900004 63.7200012 0.324951 0.945731 -1.0 +2427 1 1.72 23.0100002 10.6199999 65.4899979 0.0316404 -0.999499 -1.0 +2428 1 1.72 21.2399998 12.3900004 65.4899979 0.972903 -0.231213 -1.0 +2429 1 1.72 24.7800007 10.6199999 63.7200012 0.998547 -0.0538901 -1.0 +2430 1 1.72 26.5499993 12.3900004 63.7200012 0.973624 0.228157 -1.0 +2431 1 1.72 26.5499993 10.6199999 65.4899979 -0.981272 0.192626 -1.0 +2432 1 1.72 24.7800007 12.3900004 65.4899979 -0.445004 -0.895529 -1.0 +2433 1 1.72 0.0 0.0 67.2600021 -0.562091 0.827075 -1.0 +2434 1 1.72 1.77 1.77 67.2600021 -0.543253 0.839569 -1.0 +2435 1 1.72 1.77 0.0 69.0299988 -0.952445 -0.304709 -1.0 +2436 1 1.72 0.0 1.77 69.0299988 -0.235464 -0.971883 -1.0 +2437 1 1.72 3.54 0.0 67.2600021 0.802885 0.596134 -1.0 +2438 1 1.72 5.31 1.77 67.2600021 0.720633 -0.693317 -1.0 +2439 1 1.72 5.31 0.0 69.0299988 -0.99999 -0.00435894 -1.0 +2440 1 1.72 3.54 1.77 69.0299988 -0.694102 -0.719877 -1.0 +2441 1 1.72 7.0799999 0.0 67.2600021 -0.587192 -0.809448 -1.0 +2442 1 1.72 8.8500004 1.77 67.2600021 0.703733 0.710465 -1.0 +2443 1 1.72 8.8500004 0.0 69.0299988 0.483469 -0.875362 -1.0 +2444 1 1.72 7.0799999 1.77 69.0299988 -0.666988 0.745068 -1.0 +2445 1 1.72 10.6199999 0.0 67.2600021 -0.999734 -0.0230676 -1.0 +2446 1 1.72 12.3900004 1.77 67.2600021 -0.704073 -0.710128 -1.0 +2447 1 1.72 12.3900004 0.0 69.0299988 -0.606161 -0.795342 -1.0 +2448 1 1.72 10.6199999 1.77 69.0299988 -0.769184 0.639027 -1.0 +2449 1 1.72 14.1599999 0.0 67.2600021 -0.499218 -0.866477 -1.0 +2450 1 1.72 15.9300004 1.77 67.2600021 0.673539 -0.739151 -1.0 +2451 1 1.72 15.9300004 0.0 69.0299988 0.898864 0.438227 -1.0 +2452 1 1.72 14.1599999 1.77 69.0299988 0.727839 -0.685748 -1.0 +2453 1 1.72 17.7000008 0.0 67.2600021 0.252137 0.967691 -1.0 +2454 1 1.72 19.4699993 1.77 67.2600021 -0.75267 -0.658398 -1.0 +2455 1 1.72 19.4699993 0.0 69.0299988 -0.327885 0.944718 -1.0 +2456 1 1.72 17.7000008 1.77 69.0299988 -0.760655 -0.649156 -1.0 +2457 1 1.72 21.2399998 0.0 67.2600021 -0.25872 0.965952 -1.0 +2458 1 1.72 23.0100002 1.77 67.2600021 0.319444 0.947605 -1.0 +2459 1 1.72 23.0100002 0.0 69.0299988 0.950299 0.311338 -1.0 +2460 1 1.72 21.2399998 1.77 69.0299988 0.865474 0.500953 -1.0 +2461 1 1.72 24.7800007 0.0 67.2600021 -0.782408 -0.622767 -1.0 +2462 1 1.72 26.5499993 1.77 67.2600021 -0.975746 -0.218905 -1.0 +2463 1 1.72 26.5499993 0.0 69.0299988 0.62592 -0.779887 -1.0 +2464 1 1.72 24.7800007 1.77 69.0299988 -0.77496 -0.63201 -1.0 +2465 1 1.72 0.0 3.54 67.2600021 -0.00344942 0.999994 -1.0 +2466 1 1.72 1.77 5.31 67.2600021 0.804716 0.59366 -1.0 +2467 1 1.72 1.77 3.54 69.0299988 -0.263429 0.964679 -1.0 +2468 1 1.72 0.0 5.31 69.0299988 -0.467125 0.884191 -1.0 +2469 1 1.72 3.54 3.54 67.2600021 0.394847 -0.918747 -1.0 +2470 1 1.72 5.31 5.31 67.2600021 0.19803 -0.980196 -1.0 +2471 1 1.72 5.31 3.54 69.0299988 -0.735634 -0.67738 -1.0 +2472 1 1.72 3.54 5.31 69.0299988 -0.780256 0.62546 -1.0 +2473 1 1.72 7.0799999 3.54 67.2600021 0.267236 -0.963631 -1.0 +2474 1 1.72 8.8500004 5.31 67.2600021 -0.091437 -0.995811 -1.0 +2475 1 1.72 8.8500004 3.54 69.0299988 -0.981555 -0.191182 -1.0 +2476 1 1.72 7.0799999 5.31 69.0299988 0.566657 0.823954 -1.0 +2477 1 1.72 10.6199999 3.54 67.2600021 -0.378665 -0.925534 -1.0 +2478 1 1.72 12.3900004 5.31 67.2600021 0.782275 -0.622934 -1.0 +2479 1 1.72 12.3900004 3.54 69.0299988 -0.418551 0.908194 -1.0 +2480 1 1.72 10.6199999 5.31 69.0299988 0.931319 0.364204 -1.0 +2481 1 1.72 14.1599999 3.54 67.2600021 -0.256481 0.966549 -1.0 +2482 1 1.72 15.9300004 5.31 67.2600021 -0.513162 -0.858292 -1.0 +2483 1 1.72 15.9300004 3.54 69.0299988 -0.372953 -0.92785 -1.0 +2484 1 1.72 14.1599999 5.31 69.0299988 0.610681 -0.791877 -1.0 +2485 1 1.72 17.7000008 3.54 67.2600021 0.599818 0.800137 -1.0 +2486 1 1.72 19.4699993 5.31 67.2600021 -0.704443 0.70976 -1.0 +2487 1 1.72 19.4699993 3.54 69.0299988 0.951687 0.30707 -1.0 +2488 1 1.72 17.7000008 5.31 69.0299988 0.86226 -0.506466 -1.0 +2489 1 1.72 21.2399998 3.54 67.2600021 0.896434 -0.443176 -1.0 +2490 1 1.72 23.0100002 5.31 67.2600021 0.809607 -0.586972 -1.0 +2491 1 1.72 23.0100002 3.54 69.0299988 0.226646 -0.973977 -1.0 +2492 1 1.72 21.2399998 5.31 69.0299988 -0.122875 0.992422 -1.0 +2493 1 1.72 24.7800007 3.54 67.2600021 -0.403321 -0.915059 -1.0 +2494 1 1.72 26.5499993 5.31 67.2600021 0.969155 0.246453 -1.0 +2495 1 1.72 26.5499993 3.54 69.0299988 -0.0388332 -0.999246 -1.0 +2496 1 1.72 24.7800007 5.31 69.0299988 0.999529 -0.0306765 -1.0 +2497 1 1.72 0.0 7.0799999 67.2600021 -0.0844834 -0.996425 -1.0 +2498 1 1.72 1.77 8.8500004 67.2600021 0.52432 0.851521 -1.0 +2499 1 1.72 1.77 7.0799999 69.0299988 -0.75716 -0.653229 -1.0 +2500 1 1.72 0.0 8.8500004 69.0299988 0.997292 -0.0735396 -1.0 +2501 1 1.72 3.54 7.0799999 67.2600021 -0.970573 -0.240809 -1.0 +2502 1 1.72 5.31 8.8500004 67.2600021 0.998763 0.0497254 -1.0 +2503 1 1.72 5.31 7.0799999 69.0299988 -0.644067 0.764969 -1.0 +2504 1 1.72 3.54 8.8500004 69.0299988 -0.378008 -0.925802 -1.0 +2505 1 1.72 7.0799999 7.0799999 67.2600021 -0.313713 0.949518 -1.0 +2506 1 1.72 8.8500004 8.8500004 67.2600021 0.966974 -0.254875 -1.0 +2507 1 1.72 8.8500004 7.0799999 69.0299988 0.848527 0.529152 -1.0 +2508 1 1.72 7.0799999 8.8500004 69.0299988 0.28983 -0.957078 -1.0 +2509 1 1.72 10.6199999 7.0799999 67.2600021 0.739304 -0.673372 -1.0 +2510 1 1.72 12.3900004 8.8500004 67.2600021 0.890111 0.455743 -1.0 +2511 1 1.72 12.3900004 7.0799999 69.0299988 0.797058 0.603902 -1.0 +2512 1 1.72 10.6199999 8.8500004 69.0299988 0.956073 0.293128 -1.0 +2513 1 1.72 14.1599999 7.0799999 67.2600021 -0.826604 0.562783 -1.0 +2514 1 1.72 15.9300004 8.8500004 67.2600021 -0.540986 0.841032 -1.0 +2515 1 1.72 15.9300004 7.0799999 69.0299988 0.548777 -0.835969 -1.0 +2516 1 1.72 14.1599999 8.8500004 69.0299988 0.772044 -0.635568 -1.0 +2517 1 1.72 17.7000008 7.0799999 67.2600021 -0.721455 0.692462 -1.0 +2518 1 1.72 19.4699993 8.8500004 67.2600021 -0.891206 -0.453599 -1.0 +2519 1 1.72 19.4699993 7.0799999 69.0299988 -0.572679 0.81978 -1.0 +2520 1 1.72 17.7000008 8.8500004 69.0299988 -0.987177 -0.159626 -1.0 +2521 1 1.72 21.2399998 7.0799999 67.2600021 0.762175 0.647371 -1.0 +2522 1 1.72 23.0100002 8.8500004 67.2600021 -0.866087 0.499894 -1.0 +2523 1 1.72 23.0100002 7.0799999 69.0299988 0.482448 -0.875925 -1.0 +2524 1 1.72 21.2399998 8.8500004 69.0299988 -0.977753 0.209758 -1.0 +2525 1 1.72 24.7800007 7.0799999 67.2600021 0.646402 0.762997 -1.0 +2526 1 1.72 26.5499993 8.8500004 67.2600021 -0.474111 -0.880465 -1.0 +2527 1 1.72 26.5499993 7.0799999 69.0299988 0.977341 -0.21167 -1.0 +2528 1 1.72 24.7800007 8.8500004 69.0299988 -0.539313 0.842105 -1.0 +2529 1 1.72 0.0 10.6199999 67.2600021 -0.492588 0.870263 -1.0 +2530 1 1.72 1.77 12.3900004 67.2600021 0.531379 0.847134 -1.0 +2531 1 1.72 1.77 10.6199999 69.0299988 -0.929224 -0.369518 -1.0 +2532 1 1.72 0.0 12.3900004 69.0299988 0.659059 0.752091 -1.0 +2533 1 1.72 3.54 10.6199999 67.2600021 -0.886385 0.462949 -1.0 +2534 1 1.72 5.31 12.3900004 67.2600021 0.380359 0.924839 -1.0 +2535 1 1.72 5.31 10.6199999 69.0299988 -0.398277 0.917265 -1.0 +2536 1 1.72 3.54 12.3900004 69.0299988 0.0932238 0.995645 -1.0 +2537 1 1.72 7.0799999 10.6199999 67.2600021 -0.966582 -0.256357 -1.0 +2538 1 1.72 8.8500004 12.3900004 67.2600021 -0.544856 0.83853 -1.0 +2539 1 1.72 8.8500004 10.6199999 69.0299988 0.282839 -0.959168 -1.0 +2540 1 1.72 7.0799999 12.3900004 69.0299988 -0.278891 -0.960323 -1.0 +2541 1 1.72 10.6199999 10.6199999 67.2600021 -0.752093 0.659057 -1.0 +2542 1 1.72 12.3900004 12.3900004 67.2600021 0.543929 0.839131 -1.0 +2543 1 1.72 12.3900004 10.6199999 69.0299988 0.115105 -0.993353 -1.0 +2544 1 1.72 10.6199999 12.3900004 69.0299988 -0.869329 0.494233 -1.0 +2545 1 1.72 14.1599999 10.6199999 67.2600021 -0.282722 0.959202 -1.0 +2546 1 1.72 15.9300004 12.3900004 67.2600021 0.672684 -0.73993 -1.0 +2547 1 1.72 15.9300004 10.6199999 69.0299988 -0.962006 0.27303 -1.0 +2548 1 1.72 14.1599999 12.3900004 69.0299988 0.990839 -0.135049 -1.0 +2549 1 1.72 17.7000008 10.6199999 67.2600021 0.338185 0.94108 -1.0 +2550 1 1.72 19.4699993 12.3900004 67.2600021 0.0157419 -0.999876 -1.0 +2551 1 1.72 19.4699993 10.6199999 69.0299988 0.504551 -0.863382 -1.0 +2552 1 1.72 17.7000008 12.3900004 69.0299988 -0.482953 -0.875646 -1.0 +2553 1 1.72 21.2399998 10.6199999 67.2600021 0.167304 -0.985905 -1.0 +2554 1 1.72 23.0100002 12.3900004 67.2600021 -0.855262 -0.518195 -1.0 +2555 1 1.72 23.0100002 10.6199999 69.0299988 0.640076 -0.768312 -1.0 +2556 1 1.72 21.2399998 12.3900004 69.0299988 -0.632971 0.774175 -1.0 +2557 1 1.72 24.7800007 10.6199999 67.2600021 0.40118 0.915999 -1.0 +2558 1 1.72 26.5499993 12.3900004 67.2600021 0.972098 0.234576 -1.0 +2559 1 1.72 26.5499993 10.6199999 69.0299988 -0.430277 0.902697 -1.0 +2560 1 1.72 24.7800007 12.3900004 69.0299988 -0.520051 0.854135 -1.0 +2561 1 1.72 0.0 0.0 70.8000031 0.996854 -0.079259 -1.0 +2562 1 1.72 1.77 1.77 70.8000031 0.450149 0.892953 -1.0 +2563 1 1.72 1.77 0.0 72.5699997 0.184363 -0.982858 -1.0 +2564 1 1.72 0.0 1.77 72.5699997 0.996762 -0.0804035 -1.0 +2565 1 1.72 3.54 0.0 70.8000031 0.878294 -0.478122 -1.0 +2566 1 1.72 5.31 1.77 70.8000031 0.556396 0.830917 -1.0 +2567 1 1.72 5.31 0.0 72.5699997 -0.867916 -0.496712 -1.0 +2568 1 1.72 3.54 1.77 72.5699997 0.793814 0.608161 -1.0 +2569 1 1.72 7.0799999 0.0 70.8000031 -0.944071 -0.329743 -1.0 +2570 1 1.72 8.8500004 1.77 70.8000031 0.999804 0.0197887 -1.0 +2571 1 1.72 8.8500004 0.0 72.5699997 0.30749 0.951551 -1.0 +2572 1 1.72 7.0799999 1.77 72.5699997 -0.323979 -0.946064 -1.0 +2573 1 1.72 10.6199999 0.0 70.8000031 0.290281 0.956941 -1.0 +2574 1 1.72 12.3900004 1.77 70.8000031 0.948431 -0.316985 -1.0 +2575 1 1.72 12.3900004 0.0 72.5699997 -0.532161 -0.846643 -1.0 +2576 1 1.72 10.6199999 1.77 72.5699997 -0.695111 0.718903 -1.0 +2577 1 1.72 14.1599999 0.0 70.8000031 -0.916714 0.399543 -1.0 +2578 1 1.72 15.9300004 1.77 70.8000031 -0.160218 -0.987082 -1.0 +2579 1 1.72 15.9300004 0.0 72.5699997 0.645086 -0.76411 -1.0 +2580 1 1.72 14.1599999 1.77 72.5699997 0.936435 0.350841 -1.0 +2581 1 1.72 17.7000008 0.0 70.8000031 -0.71365 0.700503 -1.0 +2582 1 1.72 19.4699993 1.77 70.8000031 -0.997183 -0.0750127 -1.0 +2583 1 1.72 19.4699993 0.0 72.5699997 -0.86208 0.506773 -1.0 +2584 1 1.72 17.7000008 1.77 72.5699997 0.609747 -0.792596 -1.0 +2585 1 1.72 21.2399998 0.0 70.8000031 0.952234 -0.305369 -1.0 +2586 1 1.72 23.0100002 1.77 70.8000031 -0.892839 -0.450377 -1.0 +2587 1 1.72 23.0100002 0.0 72.5699997 -0.345205 0.938527 -1.0 +2588 1 1.72 21.2399998 1.77 72.5699997 0.697217 -0.71686 -1.0 +2589 1 1.72 24.7800007 0.0 70.8000031 0.227603 0.973754 -1.0 +2590 1 1.72 26.5499993 1.77 70.8000031 -0.691152 -0.722709 -1.0 +2591 1 1.72 26.5499993 0.0 72.5699997 0.0879207 -0.996127 -1.0 +2592 1 1.72 24.7800007 1.77 72.5699997 0.0309026 0.999522 -1.0 +2593 1 1.72 0.0 3.54 70.8000031 0.434622 -0.900613 -1.0 +2594 1 1.72 1.77 5.31 70.8000031 -0.0800045 -0.996794 -1.0 +2595 1 1.72 1.77 3.54 72.5699997 -0.696582 0.717478 -1.0 +2596 1 1.72 0.0 5.31 72.5699997 -0.0641145 0.997943 -1.0 +2597 1 1.72 3.54 3.54 70.8000031 0.216238 -0.976341 -1.0 +2598 1 1.72 5.31 5.31 70.8000031 -0.801073 0.598566 -1.0 +2599 1 1.72 5.31 3.54 72.5699997 0.362364 -0.932037 -1.0 +2600 1 1.72 3.54 5.31 72.5699997 -0.12397 0.992286 -1.0 +2601 1 1.72 7.0799999 3.54 70.8000031 -0.795129 -0.606441 -1.0 +2602 1 1.72 8.8500004 5.31 70.8000031 -0.793141 0.609038 -1.0 +2603 1 1.72 8.8500004 3.54 72.5699997 0.81266 0.582738 -1.0 +2604 1 1.72 7.0799999 5.31 72.5699997 -0.454623 -0.890684 -1.0 +2605 1 1.72 10.6199999 3.54 70.8000031 -0.91051 -0.413488 -1.0 +2606 1 1.72 12.3900004 5.31 70.8000031 0.519881 -0.854239 -1.0 +2607 1 1.72 12.3900004 3.54 72.5699997 0.701988 -0.712189 -1.0 +2608 1 1.72 10.6199999 5.31 72.5699997 0.0276954 0.999616 -1.0 +2609 1 1.72 14.1599999 3.54 70.8000031 0.380239 0.924888 -1.0 +2610 1 1.72 15.9300004 5.31 70.8000031 -0.984141 0.177389 -1.0 +2611 1 1.72 15.9300004 3.54 72.5699997 0.941809 -0.336149 -1.0 +2612 1 1.72 14.1599999 5.31 72.5699997 -0.999229 -0.0392529 -1.0 +2613 1 1.72 17.7000008 3.54 70.8000031 -0.519176 -0.854667 -1.0 +2614 1 1.72 19.4699993 5.31 70.8000031 0.202819 -0.979216 -1.0 +2615 1 1.72 19.4699993 3.54 72.5699997 0.663145 -0.748491 -1.0 +2616 1 1.72 17.7000008 5.31 72.5699997 0.814681 -0.579909 -1.0 +2617 1 1.72 21.2399998 3.54 70.8000031 0.663992 -0.747739 -1.0 +2618 1 1.72 23.0100002 5.31 70.8000031 -0.689626 0.724166 -1.0 +2619 1 1.72 23.0100002 3.54 72.5699997 -0.528325 -0.849042 -1.0 +2620 1 1.72 21.2399998 5.31 72.5699997 -0.318979 0.947762 -1.0 +2621 1 1.72 24.7800007 3.54 70.8000031 0.0173019 0.99985 -1.0 +2622 1 1.72 26.5499993 5.31 70.8000031 -0.998682 -0.0513189 -1.0 +2623 1 1.72 26.5499993 3.54 72.5699997 -0.76894 0.639321 -1.0 +2624 1 1.72 24.7800007 5.31 72.5699997 -0.289597 -0.957149 -1.0 +2625 1 1.72 0.0 7.0799999 70.8000031 -0.110722 -0.993851 -1.0 +2626 1 1.72 1.77 8.8500004 70.8000031 0.695278 0.71874 -1.0 +2627 1 1.72 1.77 7.0799999 72.5699997 -0.889346 -0.457234 -1.0 +2628 1 1.72 0.0 8.8500004 72.5699997 -0.77499 0.631973 -1.0 +2629 1 1.72 3.54 7.0799999 70.8000031 -0.964399 0.264451 -1.0 +2630 1 1.72 5.31 8.8500004 70.8000031 -0.617854 -0.786293 -1.0 +2631 1 1.72 5.31 7.0799999 72.5699997 -0.574089 0.818793 -1.0 +2632 1 1.72 3.54 8.8500004 72.5699997 -0.258941 0.965893 -1.0 +2633 1 1.72 7.0799999 7.0799999 70.8000031 -0.535936 0.844258 -1.0 +2634 1 1.72 8.8500004 8.8500004 70.8000031 0.226008 0.974126 -1.0 +2635 1 1.72 8.8500004 7.0799999 72.5699997 -0.77335 -0.63398 -1.0 +2636 1 1.72 7.0799999 8.8500004 72.5699997 0.602328 0.798248 -1.0 +2637 1 1.72 10.6199999 7.0799999 70.8000031 0.621492 -0.783421 -1.0 +2638 1 1.72 12.3900004 8.8500004 70.8000031 -0.642385 -0.766382 -1.0 +2639 1 1.72 12.3900004 7.0799999 72.5699997 0.997615 0.0690311 -1.0 +2640 1 1.72 10.6199999 8.8500004 72.5699997 -0.715738 -0.698369 -1.0 +2641 1 1.72 14.1599999 7.0799999 70.8000031 0.184715 0.982792 -1.0 +2642 1 1.72 15.9300004 8.8500004 70.8000031 -0.358399 -0.933569 -1.0 +2643 1 1.72 15.9300004 7.0799999 72.5699997 -0.178203 -0.983994 -1.0 +2644 1 1.72 14.1599999 8.8500004 72.5699997 -0.90695 0.421238 -1.0 +2645 1 1.72 17.7000008 7.0799999 70.8000031 0.405199 -0.914228 -1.0 +2646 1 1.72 19.4699993 8.8500004 70.8000031 -0.846991 0.531608 -1.0 +2647 1 1.72 19.4699993 7.0799999 72.5699997 0.442587 0.896726 -1.0 +2648 1 1.72 17.7000008 8.8500004 72.5699997 0.869395 -0.494118 -1.0 +2649 1 1.72 21.2399998 7.0799999 70.8000031 -0.750524 -0.660843 -1.0 +2650 1 1.72 23.0100002 8.8500004 70.8000031 -0.447736 0.894166 -1.0 +2651 1 1.72 23.0100002 7.0799999 72.5699997 -0.642749 0.766077 -1.0 +2652 1 1.72 21.2399998 8.8500004 72.5699997 -0.877086 0.480334 -1.0 +2653 1 1.72 24.7800007 7.0799999 70.8000031 -0.112041 -0.993704 -1.0 +2654 1 1.72 26.5499993 8.8500004 70.8000031 0.394801 -0.918767 -1.0 +2655 1 1.72 26.5499993 7.0799999 72.5699997 0.380279 0.924872 -1.0 +2656 1 1.72 24.7800007 8.8500004 72.5699997 0.638742 -0.769421 -1.0 +2657 1 1.72 0.0 10.6199999 70.8000031 0.237357 0.971423 -1.0 +2658 1 1.72 1.77 12.3900004 70.8000031 -0.612026 -0.790838 -1.0 +2659 1 1.72 1.77 10.6199999 72.5699997 -0.913314 0.407255 -1.0 +2660 1 1.72 0.0 12.3900004 72.5699997 -0.999106 0.0422765 -1.0 +2661 1 1.72 3.54 10.6199999 70.8000031 0.668715 0.743519 -1.0 +2662 1 1.72 5.31 12.3900004 70.8000031 0.89353 -0.449004 -1.0 +2663 1 1.72 5.31 10.6199999 72.5699997 0.0434175 -0.999057 -1.0 +2664 1 1.72 3.54 12.3900004 72.5699997 0.918133 0.396273 -1.0 +2665 1 1.72 7.0799999 10.6199999 70.8000031 0.995238 -0.0974731 -1.0 +2666 1 1.72 8.8500004 12.3900004 70.8000031 -0.48154 0.876424 -1.0 +2667 1 1.72 8.8500004 10.6199999 72.5699997 0.990208 -0.139597 -1.0 +2668 1 1.72 7.0799999 12.3900004 72.5699997 0.317593 -0.948227 -1.0 +2669 1 1.72 10.6199999 10.6199999 70.8000031 -0.976998 0.213247 -1.0 +2670 1 1.72 12.3900004 12.3900004 70.8000031 -0.826535 0.562886 -1.0 +2671 1 1.72 12.3900004 10.6199999 72.5699997 0.119546 0.992829 -1.0 +2672 1 1.72 10.6199999 12.3900004 72.5699997 0.855019 -0.518597 -1.0 +2673 1 1.72 14.1599999 10.6199999 70.8000031 0.991977 -0.126418 -1.0 +2674 1 1.72 15.9300004 12.3900004 70.8000031 -0.694492 -0.7195 -1.0 +2675 1 1.72 15.9300004 10.6199999 72.5699997 0.836202 0.548422 -1.0 +2676 1 1.72 14.1599999 12.3900004 72.5699997 0.868547 -0.495606 -1.0 +2677 1 1.72 17.7000008 10.6199999 70.8000031 0.193154 0.981168 -1.0 +2678 1 1.72 19.4699993 12.3900004 70.8000031 -0.999852 -0.0171875 -1.0 +2679 1 1.72 19.4699993 10.6199999 72.5699997 -0.907134 -0.420843 -1.0 +2680 1 1.72 17.7000008 12.3900004 72.5699997 0.84745 -0.530875 -1.0 +2681 1 1.72 21.2399998 10.6199999 70.8000031 -0.727312 0.686307 -1.0 +2682 1 1.72 23.0100002 12.3900004 70.8000031 -0.407622 0.913151 -1.0 +2683 1 1.72 23.0100002 10.6199999 72.5699997 -0.295142 -0.955453 -1.0 +2684 1 1.72 21.2399998 12.3900004 72.5699997 -0.794453 0.607326 -1.0 +2685 1 1.72 24.7800007 10.6199999 70.8000031 -0.223654 0.974669 -1.0 +2686 1 1.72 26.5499993 12.3900004 70.8000031 -0.996187 -0.0872385 -1.0 +2687 1 1.72 26.5499993 10.6199999 72.5699997 -0.982655 0.185444 -1.0 +2688 1 1.72 24.7800007 12.3900004 72.5699997 -0.999977 -0.00675795 -1.0 +2689 1 1.72 0.0 0.0 74.3399964 0.6584 -0.752668 -1.0 +2690 1 1.72 1.77 1.77 74.3399964 -0.965527 0.260302 -1.0 +2691 1 1.72 1.77 0.0 76.1100006 -0.438723 0.898622 -0.990079 +2692 1 1.72 0.0 1.77 76.1100006 0.825643 0.564193 -0.990079 +2693 1 1.72 3.54 0.0 74.3399964 -0.434287 -0.900774 -1.0 +2694 1 1.72 5.31 1.77 74.3399964 -0.677509 -0.735515 -1.0 +2695 1 1.72 5.31 0.0 76.1100006 0.885697 0.464263 -0.990079 +2696 1 1.72 3.54 1.77 76.1100006 0.0583972 -0.998293 -0.990079 +2697 1 1.72 7.0799999 0.0 74.3399964 0.277019 0.960865 -1.0 +2698 1 1.72 8.8500004 1.77 74.3399964 -0.738429 -0.674331 -1.0 +2699 1 1.72 8.8500004 0.0 76.1100006 -0.582562 -0.812786 -0.990079 +2700 1 1.72 7.0799999 1.77 76.1100006 -0.921847 -0.387554 -0.990079 +2701 1 1.72 10.6199999 0.0 74.3399964 0.705194 0.709014 -1.0 +2702 1 1.72 12.3900004 1.77 74.3399964 -0.988155 -0.15346 -1.0 +2703 1 1.72 12.3900004 0.0 76.1100006 0.235839 -0.971792 -0.990079 +2704 1 1.72 10.6199999 1.77 76.1100006 -0.763627 0.645658 -0.990079 +2705 1 1.72 14.1599999 0.0 74.3399964 -0.585497 -0.810675 -1.0 +2706 1 1.72 15.9300004 1.77 74.3399964 0.0929598 0.99567 -1.0 +2707 1 1.72 15.9300004 0.0 76.1100006 0.9985 -0.0547597 -0.990079 +2708 1 1.72 14.1599999 1.77 76.1100006 0.839808 0.542884 -0.990079 +2709 1 1.72 17.7000008 0.0 74.3399964 0.998562 0.0536162 -1.0 +2710 1 1.72 19.4699993 1.77 74.3399964 -0.683246 0.730188 -1.0 +2711 1 1.72 19.4699993 0.0 76.1100006 0.646185 -0.763181 -0.990079 +2712 1 1.72 17.7000008 1.77 76.1100006 0.106454 0.994318 -0.990079 +2713 1 1.72 21.2399998 0.0 74.3399964 -0.436579 -0.899666 -1.0 +2714 1 1.72 23.0100002 1.77 74.3399964 -0.838672 -0.544636 -1.0 +2715 1 1.72 23.0100002 0.0 76.1100006 0.883936 -0.467608 -0.990079 +2716 1 1.72 21.2399998 1.77 76.1100006 0.979898 0.199499 -0.990079 +2717 1 1.72 24.7800007 0.0 74.3399964 0.425687 -0.90487 -1.0 +2718 1 1.72 26.5499993 1.77 74.3399964 -0.779535 0.626358 -1.0 +2719 1 1.72 26.5499993 0.0 76.1100006 0.712162 -0.702015 -0.990079 +2720 1 1.72 24.7800007 1.77 76.1100006 0.445081 -0.89549 -0.990079 +2721 1 1.72 0.0 3.54 74.3399964 -0.634976 0.772532 -1.0 +2722 1 1.72 1.77 5.31 74.3399964 -0.998941 -0.0459998 -1.0 +2723 1 1.72 1.77 3.54 76.1100006 0.293149 0.956067 -0.990079 +2724 1 1.72 0.0 5.31 76.1100006 -0.551103 0.834437 -0.990079 +2725 1 1.72 3.54 3.54 74.3399964 0.119368 -0.99285 -1.0 +2726 1 1.72 5.31 5.31 74.3399964 -0.301867 0.95335 -1.0 +2727 1 1.72 5.31 3.54 76.1100006 0.946505 -0.32269 -0.990079 +2728 1 1.72 3.54 5.31 76.1100006 -0.780991 -0.624543 -0.990079 +2729 1 1.72 7.0799999 3.54 74.3399964 0.64582 -0.76349 -1.0 +2730 1 1.72 8.8500004 5.31 74.3399964 0.182712 0.983166 -1.0 +2731 1 1.72 8.8500004 3.54 76.1100006 0.932971 -0.359953 -0.990079 +2732 1 1.72 7.0799999 5.31 76.1100006 -0.573221 0.819401 -0.990079 +2733 1 1.72 10.6199999 3.54 74.3399964 -0.750678 0.660669 -1.0 +2734 1 1.72 12.3900004 5.31 74.3399964 0.976649 -0.21484 -1.0 +2735 1 1.72 12.3900004 3.54 76.1100006 0.922581 0.385804 -0.990079 +2736 1 1.72 10.6199999 5.31 76.1100006 0.132322 -0.991207 -0.990079 +2737 1 1.72 14.1599999 3.54 74.3399964 0.793309 -0.608819 -1.0 +2738 1 1.72 15.9300004 5.31 74.3399964 -0.411038 -0.911618 -1.0 +2739 1 1.72 15.9300004 3.54 76.1100006 -0.0504977 -0.998724 -0.990079 +2740 1 1.72 14.1599999 5.31 76.1100006 -0.965802 -0.25928 -0.990079 +2741 1 1.72 17.7000008 3.54 74.3399964 -0.150705 0.988579 -1.0 +2742 1 1.72 19.4699993 5.31 74.3399964 -0.0546805 -0.998504 -1.0 +2743 1 1.72 19.4699993 3.54 76.1100006 -0.46867 -0.883374 -0.990079 +2744 1 1.72 17.7000008 5.31 76.1100006 -0.811254 0.584694 -0.990079 +2745 1 1.72 21.2399998 3.54 74.3399964 -0.0643899 0.997925 -1.0 +2746 1 1.72 23.0100002 5.31 74.3399964 0.684438 -0.729071 -1.0 +2747 1 1.72 23.0100002 3.54 76.1100006 -0.232684 0.972552 -0.990079 +2748 1 1.72 21.2399998 5.31 76.1100006 -0.963202 0.268778 -0.990079 +2749 1 1.72 24.7800007 3.54 74.3399964 -0.911603 0.411071 -1.0 +2750 1 1.72 26.5499993 5.31 74.3399964 0.548655 -0.836049 -1.0 +2751 1 1.72 26.5499993 3.54 76.1100006 0.380272 -0.924875 -0.990079 +2752 1 1.72 24.7800007 5.31 76.1100006 -0.0549016 0.998492 -0.990079 +2753 1 1.72 0.0 7.0799999 74.3399964 -0.21289 0.977076 -1.0 +2754 1 1.72 1.77 8.8500004 74.3399964 -0.89847 0.439035 -1.0 +2755 1 1.72 1.77 7.0799999 76.1100006 0.60713 -0.794602 -0.990079 +2756 1 1.72 0.0 8.8500004 76.1100006 0.902217 0.431283 -0.990079 +2757 1 1.72 3.54 7.0799999 74.3399964 0.534731 0.845022 -1.0 +2758 1 1.72 5.31 8.8500004 74.3399964 0.801433 -0.598085 -1.0 +2759 1 1.72 5.31 7.0799999 76.1100006 0.649708 -0.760184 -0.990079 +2760 1 1.72 3.54 8.8500004 76.1100006 0.996985 -0.0775938 -0.990079 +2761 1 1.72 7.0799999 7.0799999 74.3399964 -0.557265 -0.830335 -1.0 +2762 1 1.72 8.8500004 8.8500004 74.3399964 -0.761176 -0.648545 -1.0 +2763 1 1.72 8.8500004 7.0799999 76.1100006 -0.997402 0.0720329 -0.990079 +2764 1 1.72 7.0799999 8.8500004 76.1100006 -0.829088 0.559118 -0.990079 +2765 1 1.72 10.6199999 7.0799999 74.3399964 0.272071 -0.962277 -1.0 +2766 1 1.72 12.3900004 8.8500004 74.3399964 0.817957 -0.575279 -1.0 +2767 1 1.72 12.3900004 7.0799999 76.1100006 0.598483 0.801136 -0.990079 +2768 1 1.72 10.6199999 8.8500004 76.1100006 0.840947 0.541118 -0.990079 +2769 1 1.72 14.1599999 7.0799999 74.3399964 0.770406 0.637553 -1.0 +2770 1 1.72 15.9300004 8.8500004 74.3399964 -0.712936 0.701229 -1.0 +2771 1 1.72 15.9300004 7.0799999 76.1100006 0.739994 0.672614 -0.990079 +2772 1 1.72 14.1599999 8.8500004 76.1100006 0.292615 0.95623 -0.990079 +2773 1 1.72 17.7000008 7.0799999 74.3399964 0.998856 0.0478133 -1.0 +2774 1 1.72 19.4699993 8.8500004 74.3399964 0.98798 -0.154581 -1.0 +2775 1 1.72 19.4699993 7.0799999 76.1100006 0.464067 0.8858 -0.990079 +2776 1 1.72 17.7000008 8.8500004 76.1100006 -0.727119 0.686512 -0.990079 +2777 1 1.72 21.2399998 7.0799999 74.3399964 0.805172 -0.593041 -1.0 +2778 1 1.72 23.0100002 8.8500004 74.3399964 -0.92857 0.371157 -1.0 +2779 1 1.72 23.0100002 7.0799999 76.1100006 0.845635 0.533761 -0.990079 +2780 1 1.72 21.2399998 8.8500004 76.1100006 0.651576 0.758584 -0.990079 +2781 1 1.72 24.7800007 7.0799999 74.3399964 0.605434 0.795895 -1.0 +2782 1 1.72 26.5499993 8.8500004 74.3399964 0.420263 0.907402 -1.0 +2783 1 1.72 26.5499993 7.0799999 76.1100006 -0.818566 -0.574413 -0.990079 +2784 1 1.72 24.7800007 8.8500004 76.1100006 0.846778 -0.531947 -0.990079 +2785 1 1.72 0.0 10.6199999 74.3399964 0.857276 -0.514857 -1.0 +2786 1 1.72 1.77 12.3900004 74.3399964 0.693044 0.720895 -1.0 +2787 1 1.72 1.77 10.6199999 76.1100006 -0.71006 0.704141 -0.990079 +2788 1 1.72 0.0 12.3900004 76.1100006 0.961934 -0.273281 -0.990079 +2789 1 1.72 3.54 10.6199999 74.3399964 0.531506 -0.847055 -1.0 +2790 1 1.72 5.31 12.3900004 74.3399964 -0.174234 -0.984704 -1.0 +2791 1 1.72 5.31 10.6199999 76.1100006 0.035612 0.999366 -0.990079 +2792 1 1.72 3.54 12.3900004 76.1100006 0.661467 -0.749974 -0.990079 +2793 1 1.72 7.0799999 10.6199999 74.3399964 0.0967596 0.995308 -1.0 +2794 1 1.72 8.8500004 12.3900004 74.3399964 0.671437 0.741062 -1.0 +2795 1 1.72 8.8500004 10.6199999 76.1100006 -0.0182486 -0.999833 -0.990079 +2796 1 1.72 7.0799999 12.3900004 76.1100006 0.778209 -0.628005 -0.990079 +2797 1 1.72 10.6199999 10.6199999 74.3399964 0.345484 0.938424 -1.0 +2798 1 1.72 12.3900004 12.3900004 74.3399964 0.684638 0.728883 -1.0 +2799 1 1.72 12.3900004 10.6199999 76.1100006 0.881671 -0.471864 -0.990079 +2800 1 1.72 10.6199999 12.3900004 76.1100006 -0.651181 -0.758922 -0.990079 +2801 1 1.72 14.1599999 10.6199999 74.3399964 -0.689393 0.724388 -1.0 +2802 1 1.72 15.9300004 12.3900004 74.3399964 0.999998 0.00199737 -1.0 +2803 1 1.72 15.9300004 10.6199999 76.1100006 -0.397689 -0.91752 -0.990079 +2804 1 1.72 14.1599999 12.3900004 76.1100006 -0.979303 -0.202402 -0.990079 +2805 1 1.72 17.7000008 10.6199999 74.3399964 0.631902 0.775049 -1.0 +2806 1 1.72 19.4699993 12.3900004 74.3399964 0.828451 -0.560061 -1.0 +2807 1 1.72 19.4699993 10.6199999 76.1100006 -0.66253 -0.749035 -0.990079 +2808 1 1.72 17.7000008 12.3900004 76.1100006 0.963196 -0.268799 -0.990079 +2809 1 1.72 21.2399998 10.6199999 74.3399964 -0.751939 -0.659232 -1.0 +2810 1 1.72 23.0100002 12.3900004 74.3399964 -0.622509 -0.782613 -1.0 +2811 1 1.72 23.0100002 10.6199999 76.1100006 0.676373 0.736559 -0.990079 +2812 1 1.72 21.2399998 12.3900004 76.1100006 -0.368163 -0.929761 -0.990079 +2813 1 1.72 24.7800007 10.6199999 74.3399964 -0.645846 -0.763467 -1.0 +2814 1 1.72 26.5499993 12.3900004 74.3399964 -0.352217 -0.935918 -1.0 +2815 1 1.72 26.5499993 10.6199999 76.1100006 -0.922633 0.385678 -0.990079 +2816 1 1.72 24.7800007 12.3900004 76.1100006 -0.981227 0.192855 -0.990079 +2817 1 1.72 0.0 0.0 77.8799974 -0.829109 -0.559087 -0.90501 +2818 1 1.72 1.77 1.77 77.8799974 -0.650063 -0.759881 -0.90501 +2819 1 1.72 1.77 0.0 79.6500016 -0.844387 0.535733 -0.7399438 +2820 1 1.72 0.0 1.77 79.6500016 -0.727146 0.686483 -0.7399438 +2821 1 1.72 3.54 0.0 77.8799974 0.548801 -0.835953 -0.90501 +2822 1 1.72 5.31 1.77 77.8799974 -0.816309 0.577615 -0.90501 +2823 1 1.72 5.31 0.0 79.6500016 -0.998811 -0.0487466 -0.7399438 +2824 1 1.72 3.54 1.77 79.6500016 -0.728262 0.685299 -0.7399438 +2825 1 1.72 7.0799999 0.0 77.8799974 0.560016 -0.828482 -0.90501 +2826 1 1.72 8.8500004 1.77 77.8799974 -0.85128 -0.524711 -0.90501 +2827 1 1.72 8.8500004 0.0 79.6500016 0.4869 0.873458 -0.7399438 +2828 1 1.72 7.0799999 1.77 79.6500016 -0.00262679 0.999997 -0.7399438 +2829 1 1.72 10.6199999 0.0 77.8799974 0.842996 0.53792 -0.90501 +2830 1 1.72 12.3900004 1.77 77.8799974 -0.99541 0.0957042 -0.90501 +2831 1 1.72 12.3900004 0.0 79.6500016 -0.690352 0.723474 -0.7399438 +2832 1 1.72 10.6199999 1.77 79.6500016 0.585374 0.810763 -0.7399438 +2833 1 1.72 14.1599999 0.0 77.8799974 0.716682 -0.6974 -0.90501 +2834 1 1.72 15.9300004 1.77 77.8799974 -0.597963 0.801524 -0.90501 +2835 1 1.72 15.9300004 0.0 79.6500016 0.224139 0.974557 -0.7399438 +2836 1 1.72 14.1599999 1.77 79.6500016 -0.796257 -0.604958 -0.7399438 +2837 1 1.72 17.7000008 0.0 77.8799974 -0.925014 -0.379932 -0.90501 +2838 1 1.72 19.4699993 1.77 77.8799974 -0.652404 -0.757871 -0.90501 +2839 1 1.72 19.4699993 0.0 79.6500016 0.896845 0.442346 -0.7399438 +2840 1 1.72 17.7000008 1.77 79.6500016 0.801276 0.598295 -0.7399438 +2841 1 1.72 21.2399998 0.0 77.8799974 0.988931 -0.148379 -0.90501 +2842 1 1.72 23.0100002 1.77 77.8799974 -0.612491 -0.790477 -0.90501 +2843 1 1.72 23.0100002 0.0 79.6500016 0.144697 -0.989476 -0.7399438 +2844 1 1.72 21.2399998 1.77 79.6500016 0.912867 -0.408256 -0.7399438 +2845 1 1.72 24.7800007 0.0 77.8799974 -0.691726 0.72216 -0.90501 +2846 1 1.72 26.5499993 1.77 77.8799974 0.905429 0.424497 -0.90501 +2847 1 1.72 26.5499993 0.0 79.6500016 -0.998682 0.0513234 -0.7399438 +2848 1 1.72 24.7800007 1.77 79.6500016 -0.551255 0.834337 -0.7399438 +2849 1 1.72 0.0 3.54 77.8799974 -0.804754 0.593608 -0.90501 +2850 1 1.72 1.77 5.31 77.8799974 0.130423 0.991458 -0.90501 +2851 1 1.72 1.77 3.54 79.6500016 -0.514998 -0.857192 -0.7399438 +2852 1 1.72 0.0 5.31 79.6500016 -0.354214 0.935164 -0.7399438 +2853 1 1.72 3.54 3.54 77.8799974 0.994573 0.104046 -0.90501 +2854 1 1.72 5.31 5.31 77.8799974 -0.945365 0.326014 -0.90501 +2855 1 1.72 5.31 3.54 79.6500016 -0.582958 -0.812503 -0.7399438 +2856 1 1.72 3.54 5.31 79.6500016 0.68457 -0.728947 -0.7399438 +2857 1 1.72 7.0799999 3.54 77.8799974 0.0695657 -0.997577 -0.90501 +2858 1 1.72 8.8500004 5.31 77.8799974 -0.797244 -0.603658 -0.90501 +2859 1 1.72 8.8500004 3.54 79.6500016 0.405727 0.913994 -0.7399438 +2860 1 1.72 7.0799999 5.31 79.6500016 0.309675 -0.950842 -0.7399438 +2861 1 1.72 10.6199999 3.54 77.8799974 -0.280386 0.959887 -0.90501 +2862 1 1.72 12.3900004 5.31 77.8799974 0.312965 -0.949765 -0.90501 +2863 1 1.72 12.3900004 3.54 79.6500016 0.74692 -0.664914 -0.7399438 +2864 1 1.72 10.6199999 5.31 79.6500016 -0.795824 -0.605528 -0.7399438 +2865 1 1.72 14.1599999 3.54 77.8799974 0.51989 0.854233 -0.90501 +2866 1 1.72 15.9300004 5.31 77.8799974 -0.248787 -0.968558 -0.90501 +2867 1 1.72 15.9300004 3.54 79.6500016 0.401367 0.915917 -0.7399438 +2868 1 1.72 14.1599999 5.31 79.6500016 0.316069 -0.948736 -0.7399438 +2869 1 1.72 17.7000008 3.54 77.8799974 -0.575936 -0.817495 -0.90501 +2870 1 1.72 19.4699993 5.31 77.8799974 0.535246 -0.844696 -0.90501 +2871 1 1.72 19.4699993 3.54 79.6500016 -0.143554 -0.989643 -0.7399438 +2872 1 1.72 17.7000008 5.31 79.6500016 0.939324 0.34303 -0.7399438 +2873 1 1.72 21.2399998 3.54 77.8799974 -0.977875 0.209188 -0.90501 +2874 1 1.72 23.0100002 5.31 77.8799974 -0.469185 0.8831 -0.90501 +2875 1 1.72 23.0100002 3.54 79.6500016 -0.262179 0.965019 -0.7399438 +2876 1 1.72 21.2399998 5.31 79.6500016 0.882523 0.470268 -0.7399438 +2877 1 1.72 24.7800007 3.54 77.8799974 0.553089 -0.833122 -0.90501 +2878 1 1.72 26.5499993 5.31 77.8799974 -0.63814 -0.76992 -0.90501 +2879 1 1.72 26.5499993 3.54 79.6500016 0.930621 -0.365983 -0.7399438 +2880 1 1.72 24.7800007 5.31 79.6500016 -0.458835 0.888522 -0.7399438 +2881 1 1.72 0.0 7.0799999 77.8799974 -0.911346 -0.411641 -0.90501 +2882 1 1.72 1.77 8.8500004 77.8799974 -0.586095 0.810242 -0.90501 +2883 1 1.72 1.77 7.0799999 79.6500016 -0.993131 -0.117007 -0.7399438 +2884 1 1.72 0.0 8.8500004 79.6500016 0.460091 0.887872 -0.7399438 +2885 1 1.72 3.54 7.0799999 77.8799974 -0.718895 0.695118 -0.90501 +2886 1 1.72 5.31 8.8500004 77.8799974 -0.999375 -0.0353623 -0.90501 +2887 1 1.72 5.31 7.0799999 79.6500016 -0.711015 0.703177 -0.7399438 +2888 1 1.72 3.54 8.8500004 79.6500016 -0.474822 -0.880082 -0.7399438 +2889 1 1.72 7.0799999 7.0799999 77.8799974 0.801745 -0.597666 -0.90501 +2890 1 1.72 8.8500004 8.8500004 77.8799974 -0.791111 -0.611673 -0.90501 +2891 1 1.72 8.8500004 7.0799999 79.6500016 0.957975 -0.28685 -0.7399438 +2892 1 1.72 7.0799999 8.8500004 79.6500016 -0.63871 -0.769447 -0.7399438 +2893 1 1.72 10.6199999 7.0799999 77.8799974 0.598465 0.801149 -0.90501 +2894 1 1.72 12.3900004 8.8500004 77.8799974 0.418382 0.908271 -0.90501 +2895 1 1.72 12.3900004 7.0799999 79.6500016 -0.958953 -0.283564 -0.7399438 +2896 1 1.72 10.6199999 8.8500004 79.6500016 -0.334925 0.942245 -0.7399438 +2897 1 1.72 14.1599999 7.0799999 77.8799974 -0.757332 0.65303 -0.90501 +2898 1 1.72 15.9300004 8.8500004 77.8799974 0.51879 0.854901 -0.90501 +2899 1 1.72 15.9300004 7.0799999 79.6500016 -0.388312 0.921528 -0.7399438 +2900 1 1.72 14.1599999 8.8500004 79.6500016 -0.955236 -0.295846 -0.7399438 +2901 1 1.72 17.7000008 7.0799999 77.8799974 0.484967 -0.874532 -0.90501 +2902 1 1.72 19.4699993 8.8500004 77.8799974 0.625233 0.780438 -0.90501 +2903 1 1.72 19.4699993 7.0799999 79.6500016 0.693263 0.720685 -0.7399438 +2904 1 1.72 17.7000008 8.8500004 79.6500016 0.850403 -0.526132 -0.7399438 +2905 1 1.72 21.2399998 7.0799999 77.8799974 0.582731 0.812665 -0.90501 +2906 1 1.72 23.0100002 8.8500004 77.8799974 0.260583 0.965451 -0.90501 +2907 1 1.72 23.0100002 7.0799999 79.6500016 -0.565448 -0.824784 -0.7399438 +2908 1 1.72 21.2399998 8.8500004 79.6500016 -0.836559 -0.547876 -0.7399438 +2909 1 1.72 24.7800007 7.0799999 77.8799974 0.512439 -0.858724 -0.90501 +2910 1 1.72 26.5499993 8.8500004 77.8799974 0.883131 0.469126 -0.90501 +2911 1 1.72 26.5499993 7.0799999 79.6500016 -0.143846 0.9896 -0.7399438 +2912 1 1.72 24.7800007 8.8500004 79.6500016 0.92945 -0.368949 -0.7399438 +2913 1 1.72 0.0 10.6199999 77.8799974 0.0605222 0.998167 -0.90501 +2914 1 1.72 1.77 12.3900004 77.8799974 0.982664 -0.185394 -0.90501 +2915 1 1.72 1.77 10.6199999 79.6500016 -0.626974 0.77904 -0.7399438 +2916 1 1.72 0.0 12.3900004 79.6500016 0.465934 0.88482 -0.7399438 +2917 1 1.72 3.54 10.6199999 77.8799974 0.974009 0.226508 -0.90501 +2918 1 1.72 5.31 12.3900004 77.8799974 -0.503945 -0.863736 -0.90501 +2919 1 1.72 5.31 10.6199999 79.6500016 0.999369 -0.0355283 -0.7399438 +2920 1 1.72 3.54 12.3900004 79.6500016 -0.610871 0.79173 -0.7399438 +2921 1 1.72 7.0799999 10.6199999 77.8799974 -0.342722 0.939437 -0.90501 +2922 1 1.72 8.8500004 12.3900004 77.8799974 -0.878251 -0.4782 -0.90501 +2923 1 1.72 8.8500004 10.6199999 79.6500016 -0.360919 0.932597 -0.7399438 +2924 1 1.72 7.0799999 12.3900004 79.6500016 0.361107 -0.932525 -0.7399438 +2925 1 1.72 10.6199999 10.6199999 77.8799974 0.999422 -0.0340089 -0.90501 +2926 1 1.72 12.3900004 12.3900004 77.8799974 0.811423 0.584459 -0.90501 +2927 1 1.72 12.3900004 10.6199999 79.6500016 0.31193 0.950105 -0.7399438 +2928 1 1.72 10.6199999 12.3900004 79.6500016 0.769255 0.638942 -0.7399438 +2929 1 1.72 14.1599999 10.6199999 77.8799974 -0.0415424 -0.999137 -0.90501 +2930 1 1.72 15.9300004 12.3900004 77.8799974 -0.798388 0.602144 -0.90501 +2931 1 1.72 15.9300004 10.6199999 79.6500016 0.805179 -0.593032 -0.7399438 +2932 1 1.72 14.1599999 12.3900004 79.6500016 0.689244 0.724529 -0.7399438 +2933 1 1.72 17.7000008 10.6199999 77.8799974 0.984685 0.174344 -0.90501 +2934 1 1.72 19.4699993 12.3900004 77.8799974 0.996394 0.0848468 -0.90501 +2935 1 1.72 19.4699993 10.6199999 79.6500016 0.0231384 0.999732 -0.7399438 +2936 1 1.72 17.7000008 12.3900004 79.6500016 0.965159 0.261664 -0.7399438 +2937 1 1.72 21.2399998 10.6199999 77.8799974 0.186053 -0.98254 -0.90501 +2938 1 1.72 23.0100002 12.3900004 77.8799974 0.606136 -0.795361 -0.90501 +2939 1 1.72 23.0100002 10.6199999 79.6500016 0.99873 -0.0503756 -0.7399438 +2940 1 1.72 21.2399998 12.3900004 79.6500016 0.0196603 0.999807 -0.7399438 +2941 1 1.72 24.7800007 10.6199999 77.8799974 0.989922 -0.141617 -0.90501 +2942 1 1.72 26.5499993 12.3900004 77.8799974 0.44242 -0.896808 -0.90501 +2943 1 1.72 26.5499993 10.6199999 79.6500016 0.115276 0.993333 -0.7399438 +2944 1 1.72 24.7800007 12.3900004 79.6500016 -0.948938 -0.315461 -0.7399438 +2945 1 1.72 0.0 0.0 81.4199982 0.783271 -0.621681 -0.5094728 +2946 1 1.72 1.77 1.77 81.4199982 -0.506449 0.86227 -0.5094728 +2947 1 1.72 1.77 0.0 83.1900024 -0.521846 -0.85304 -0.2339667 +2948 1 1.72 0.0 1.77 83.1900024 -0.764775 -0.644297 -0.2339667 +2949 1 1.72 3.54 0.0 81.4199982 0.159359 0.987221 -0.5094728 +2950 1 1.72 5.31 1.77 81.4199982 -0.750797 0.660533 -0.5094728 +2951 1 1.72 5.31 0.0 83.1900024 0.370063 -0.929007 -0.2339667 +2952 1 1.72 3.54 1.77 83.1900024 -0.773899 -0.633309 -0.2339667 +2953 1 1.72 7.0799999 0.0 81.4199982 0.0713316 0.997453 -0.5094728 +2954 1 1.72 8.8500004 1.77 81.4199982 -0.233018 0.972472 -0.5094728 +2955 1 1.72 8.8500004 0.0 83.1900024 -0.830221 -0.557434 -0.2339667 +2956 1 1.72 7.0799999 1.77 83.1900024 -0.0570867 -0.998369 -0.2339667 +2957 1 1.72 10.6199999 0.0 81.4199982 0.787453 -0.616375 -0.5094728 +2958 1 1.72 12.3900004 1.77 81.4199982 0.596533 0.802589 -0.5094728 +2959 1 1.72 12.3900004 0.0 83.1900024 -0.703455 -0.710739 -0.2339667 +2960 1 1.72 10.6199999 1.77 83.1900024 0.749208 -0.662335 -0.2339667 +2961 1 1.72 14.1599999 0.0 81.4199982 -0.62948 0.777016 -0.5094728 +2962 1 1.72 15.9300004 1.77 81.4199982 -0.615945 0.787789 -0.5094728 +2963 1 1.72 15.9300004 0.0 83.1900024 -0.963003 0.269492 -0.2339667 +2964 1 1.72 14.1599999 1.77 83.1900024 -0.497972 0.867193 -0.2339667 +2965 1 1.72 17.7000008 0.0 81.4199982 -0.99851 0.0545708 -0.5094728 +2966 1 1.72 19.4699993 1.77 81.4199982 -0.167053 0.985948 -0.5094728 +2967 1 1.72 19.4699993 0.0 83.1900024 -0.562935 0.826501 -0.2339667 +2968 1 1.72 17.7000008 1.77 83.1900024 0.637737 0.770254 -0.2339667 +2969 1 1.72 21.2399998 0.0 81.4199982 0.796952 -0.604043 -0.5094728 +2970 1 1.72 23.0100002 1.77 81.4199982 -0.225939 0.974141 -0.5094728 +2971 1 1.72 23.0100002 0.0 83.1900024 -0.0627446 -0.99803 -0.2339667 +2972 1 1.72 21.2399998 1.77 83.1900024 0.987166 0.159698 -0.2339667 +2973 1 1.72 24.7800007 0.0 81.4199982 0.640557 -0.767911 -0.5094728 +2974 1 1.72 26.5499993 1.77 81.4199982 0.613978 -0.789323 -0.5094728 +2975 1 1.72 26.5499993 0.0 83.1900024 0.762958 0.646448 -0.2339667 +2976 1 1.72 24.7800007 1.77 83.1900024 -0.981343 -0.192263 -0.2339667 +2977 1 1.72 0.0 3.54 81.4199982 -0.83316 -0.553033 -0.5094728 +2978 1 1.72 1.77 5.31 81.4199982 0.970146 0.242522 -0.5094728 +2979 1 1.72 1.77 3.54 83.1900024 -0.933463 -0.358675 -0.2339667 +2980 1 1.72 0.0 5.31 83.1900024 0.987145 0.159825 -0.2339667 +2981 1 1.72 3.54 3.54 81.4199982 0.863116 -0.505006 -0.5094728 +2982 1 1.72 5.31 5.31 81.4199982 0.867706 0.497078 -0.5094728 +2983 1 1.72 5.31 3.54 83.1900024 0.420037 -0.907507 -0.2339667 +2984 1 1.72 3.54 5.31 83.1900024 -0.807584 0.589753 -0.2339667 +2985 1 1.72 7.0799999 3.54 81.4199982 -0.841363 0.54047 -0.5094728 +2986 1 1.72 8.8500004 5.31 81.4199982 0.904796 -0.425844 -0.5094728 +2987 1 1.72 8.8500004 3.54 83.1900024 -0.9896 0.143843 -0.2339667 +2988 1 1.72 7.0799999 5.31 83.1900024 0.830681 -0.556749 -0.2339667 +2989 1 1.72 10.6199999 3.54 81.4199982 -0.976263 -0.216588 -0.5094728 +2990 1 1.72 12.3900004 5.31 81.4199982 0.437797 0.899074 -0.5094728 +2991 1 1.72 12.3900004 3.54 83.1900024 0.224839 -0.974396 -0.2339667 +2992 1 1.72 10.6199999 5.31 83.1900024 -0.325274 -0.94562 -0.2339667 +2993 1 1.72 14.1599999 3.54 81.4199982 0.687829 0.725873 -0.5094728 +2994 1 1.72 15.9300004 5.31 81.4199982 0.534156 -0.845386 -0.5094728 +2995 1 1.72 15.9300004 3.54 83.1900024 0.880482 -0.47408 -0.2339667 +2996 1 1.72 14.1599999 5.31 83.1900024 -0.487694 -0.873014 -0.2339667 +2997 1 1.72 17.7000008 3.54 81.4199982 0.664083 -0.747659 -0.5094728 +2998 1 1.72 19.4699993 5.31 81.4199982 -0.9937 -0.112073 -0.5094728 +2999 1 1.72 19.4699993 3.54 83.1900024 -0.524886 -0.851172 -0.2339667 +3000 1 1.72 17.7000008 5.31 83.1900024 -0.983577 -0.18049 -0.2339667 +3001 1 1.72 21.2399998 3.54 81.4199982 0.998492 0.0548903 -0.5094728 +3002 1 1.72 23.0100002 5.31 81.4199982 -0.840489 -0.541829 -0.5094728 +3003 1 1.72 23.0100002 3.54 83.1900024 0.999249 -0.0387472 -0.2339667 +3004 1 1.72 21.2399998 5.31 83.1900024 -0.903526 -0.428533 -0.2339667 +3005 1 1.72 24.7800007 3.54 81.4199982 -0.576714 -0.816946 -0.5094728 +3006 1 1.72 26.5499993 5.31 81.4199982 0.407034 0.913413 -0.5094728 +3007 1 1.72 26.5499993 3.54 83.1900024 0.740605 0.67194 -0.2339667 +3008 1 1.72 24.7800007 5.31 83.1900024 0.613921 0.789367 -0.2339667 +3009 1 1.72 0.0 7.0799999 81.4199982 -0.892666 0.450718 -0.5094728 +3010 1 1.72 1.77 8.8500004 81.4199982 -0.98641 0.164301 -0.5094728 +3011 1 1.72 1.77 7.0799999 83.1900024 0.53742 -0.843315 -0.2339667 +3012 1 1.72 0.0 8.8500004 83.1900024 0.718355 0.695677 -0.2339667 +3013 1 1.72 3.54 7.0799999 81.4199982 -0.922367 0.386315 -0.5094728 +3014 1 1.72 5.31 8.8500004 81.4199982 0.0845172 0.996422 -0.5094728 +3015 1 1.72 5.31 7.0799999 83.1900024 0.857488 -0.514503 -0.2339667 +3016 1 1.72 3.54 8.8500004 83.1900024 -0.645606 -0.763671 -0.2339667 +3017 1 1.72 7.0799999 7.0799999 81.4199982 -0.0134122 -0.99991 -0.5094728 +3018 1 1.72 8.8500004 8.8500004 81.4199982 -0.784881 -0.619647 -0.5094728 +3019 1 1.72 8.8500004 7.0799999 83.1900024 0.536324 -0.844012 -0.2339667 +3020 1 1.72 7.0799999 8.8500004 83.1900024 0.723375 0.690455 -0.2339667 +3021 1 1.72 10.6199999 7.0799999 81.4199982 0.662723 0.748864 -0.5094728 +3022 1 1.72 12.3900004 8.8500004 81.4199982 0.155567 0.987825 -0.5094728 +3023 1 1.72 12.3900004 7.0799999 83.1900024 -0.841463 -0.540315 -0.2339667 +3024 1 1.72 10.6199999 8.8500004 83.1900024 -0.306209 0.951964 -0.2339667 +3025 1 1.72 14.1599999 7.0799999 81.4199982 0.933263 -0.359194 -0.5094728 +3026 1 1.72 15.9300004 8.8500004 81.4199982 0.998559 -0.0536627 -0.5094728 +3027 1 1.72 15.9300004 7.0799999 83.1900024 0.118838 0.992914 -0.2339667 +3028 1 1.72 14.1599999 8.8500004 83.1900024 0.23804 -0.971255 -0.2339667 +3029 1 1.72 17.7000008 7.0799999 81.4199982 -0.333627 -0.942705 -0.5094728 +3030 1 1.72 19.4699993 8.8500004 81.4199982 -0.678409 0.734685 -0.5094728 +3031 1 1.72 19.4699993 7.0799999 83.1900024 0.495047 -0.868866 -0.2339667 +3032 1 1.72 17.7000008 8.8500004 83.1900024 0.67958 0.733601 -0.2339667 +3033 1 1.72 21.2399998 7.0799999 81.4199982 0.923084 0.3846 -0.5094728 +3034 1 1.72 23.0100002 8.8500004 81.4199982 -0.753978 0.656899 -0.5094728 +3035 1 1.72 23.0100002 7.0799999 83.1900024 -0.773059 -0.634334 -0.2339667 +3036 1 1.72 21.2399998 8.8500004 83.1900024 -0.970152 0.242497 -0.2339667 +3037 1 1.72 24.7800007 7.0799999 81.4199982 0.101183 0.994868 -0.5094728 +3038 1 1.72 26.5499993 8.8500004 81.4199982 -0.625284 0.780398 -0.5094728 +3039 1 1.72 26.5499993 7.0799999 83.1900024 0.277807 0.960637 -0.2339667 +3040 1 1.72 24.7800007 8.8500004 83.1900024 0.685723 -0.727862 -0.2339667 +3041 1 1.72 0.0 10.6199999 81.4199982 0.999557 -0.0297522 -0.5094728 +3042 1 1.72 1.77 12.3900004 81.4199982 -0.920711 0.390246 -0.5094728 +3043 1 1.72 1.77 10.6199999 83.1900024 -0.971158 0.238438 -0.2339667 +3044 1 1.72 0.0 12.3900004 83.1900024 -0.305945 0.952049 -0.2339667 +3045 1 1.72 3.54 10.6199999 81.4199982 -0.847672 -0.53052 -0.5094728 +3046 1 1.72 5.31 12.3900004 81.4199982 0.77437 -0.632734 -0.5094728 +3047 1 1.72 5.31 10.6199999 83.1900024 -0.620757 0.784003 -0.2339667 +3048 1 1.72 3.54 12.3900004 83.1900024 0.766987 -0.641662 -0.2339667 +3049 1 1.72 7.0799999 10.6199999 81.4199982 0.916063 0.401033 -0.5094728 +3050 1 1.72 8.8500004 12.3900004 81.4199982 -0.210732 -0.977544 -0.5094728 +3051 1 1.72 8.8500004 10.6199999 83.1900024 -0.774933 -0.632043 -0.2339667 +3052 1 1.72 7.0799999 12.3900004 83.1900024 0.759399 0.650625 -0.2339667 +3053 1 1.72 10.6199999 10.6199999 81.4199982 -0.383429 -0.923571 -0.5094728 +3054 1 1.72 12.3900004 12.3900004 81.4199982 -0.942416 0.334443 -0.5094728 +3055 1 1.72 12.3900004 10.6199999 83.1900024 -0.833741 0.552156 -0.2339667 +3056 1 1.72 10.6199999 12.3900004 83.1900024 0.838574 0.544787 -0.2339667 +3057 1 1.72 14.1599999 10.6199999 81.4199982 0.974341 -0.225076 -0.5094728 +3058 1 1.72 15.9300004 12.3900004 81.4199982 0.758394 0.651797 -0.5094728 +3059 1 1.72 15.9300004 10.6199999 83.1900024 -0.776343 -0.630311 -0.2339667 +3060 1 1.72 14.1599999 12.3900004 83.1900024 0.942287 -0.334806 -0.2339667 +3061 1 1.72 17.7000008 10.6199999 81.4199982 0.562654 -0.826692 -0.5094728 +3062 1 1.72 19.4699993 12.3900004 81.4199982 -0.860764 0.509004 -0.5094728 +3063 1 1.72 19.4699993 10.6199999 83.1900024 -0.485063 -0.874479 -0.2339667 +3064 1 1.72 17.7000008 12.3900004 83.1900024 0.994672 -0.103087 -0.2339667 +3065 1 1.72 21.2399998 10.6199999 81.4199982 0.769625 0.638497 -0.5094728 +3066 1 1.72 23.0100002 12.3900004 81.4199982 0.855708 -0.517459 -0.5094728 +3067 1 1.72 23.0100002 10.6199999 83.1900024 0.946325 -0.323217 -0.2339667 +3068 1 1.72 21.2399998 12.3900004 83.1900024 0.677179 0.735819 -0.2339667 +3069 1 1.72 24.7800007 10.6199999 81.4199982 -0.443445 -0.896302 -0.5094728 +3070 1 1.72 26.5499993 12.3900004 81.4199982 0.902375 0.430951 -0.5094728 +3071 1 1.72 26.5499993 10.6199999 83.1900024 -0.978639 -0.205585 -0.2339667 +3072 1 1.72 24.7800007 12.3900004 83.1900024 0.830168 -0.557514 -0.2339667 +3073 1 1.72 0.0 0.0 84.9599992 0.999886 0.0151311 0.0622191 +3074 1 1.72 1.77 1.77 84.9599992 0.206725 -0.978399 0.0622191 +3075 1 1.72 1.77 0.0 86.7300034 0.728431 -0.685119 0.3529064 +3076 1 1.72 0.0 1.77 86.7300034 0.909474 0.41576 0.3529064 +3077 1 1.72 3.54 0.0 84.9599992 0.0205089 -0.99979 0.0622191 +3078 1 1.72 5.31 1.77 84.9599992 0.37002 0.929024 0.0622191 +3079 1 1.72 5.31 0.0 86.7300034 0.979157 0.203104 0.3529064 +3080 1 1.72 3.54 1.77 86.7300034 0.895286 -0.445491 0.3529064 +3081 1 1.72 7.0799999 0.0 84.9599992 0.742429 0.669925 0.0622191 +3082 1 1.72 8.8500004 1.77 84.9599992 -0.964462 0.264223 0.0622191 +3083 1 1.72 8.8500004 0.0 86.7300034 -0.960952 -0.276715 0.3529064 +3084 1 1.72 7.0799999 1.77 86.7300034 -0.816051 0.57798 0.3529064 +3085 1 1.72 10.6199999 0.0 84.9599992 0.847485 -0.530819 0.0622191 +3086 1 1.72 12.3900004 1.77 84.9599992 0.997245 0.0741734 0.0622191 +3087 1 1.72 12.3900004 0.0 86.7300034 -0.999992 0.00398663 0.3529064 +3088 1 1.72 10.6199999 1.77 86.7300034 0.994555 0.104209 0.3529064 +3089 1 1.72 14.1599999 0.0 84.9599992 0.500786 0.865571 0.0622191 +3090 1 1.72 15.9300004 1.77 84.9599992 -0.862534 -0.506 0.0622191 +3091 1 1.72 15.9300004 0.0 86.7300034 0.926037 -0.377433 0.3529064 +3092 1 1.72 14.1599999 1.77 86.7300034 0.449619 0.89322 0.3529064 +3093 1 1.72 17.7000008 0.0 84.9599992 0.129635 -0.991562 0.0622191 +3094 1 1.72 19.4699993 1.77 84.9599992 0.585453 -0.810706 0.0622191 +3095 1 1.72 19.4699993 0.0 86.7300034 -0.839895 0.542749 0.3529064 +3096 1 1.72 17.7000008 1.77 86.7300034 0.871858 0.489759 0.3529064 +3097 1 1.72 21.2399998 0.0 84.9599992 0.0831751 -0.996535 0.0622191 +3098 1 1.72 23.0100002 1.77 84.9599992 -0.810396 -0.585883 0.0622191 +3099 1 1.72 23.0100002 0.0 86.7300034 0.854374 -0.519658 0.3529064 +3100 1 1.72 21.2399998 1.77 86.7300034 0.946541 -0.322583 0.3529064 +3101 1 1.72 24.7800007 0.0 84.9599992 -0.757874 0.652401 0.0622191 +3102 1 1.72 26.5499993 1.77 84.9599992 0.410904 0.911679 0.0622191 +3103 1 1.72 26.5499993 0.0 86.7300034 0.795871 0.605466 0.3529064 +3104 1 1.72 24.7800007 1.77 86.7300034 -0.195125 -0.980778 0.3529064 +3105 1 1.72 0.0 3.54 84.9599992 0.662728 -0.74886 0.0622191 +3106 1 1.72 1.77 5.31 84.9599992 -0.986625 0.163008 0.0622191 +3107 1 1.72 1.77 3.54 86.7300034 -0.70105 -0.713112 0.3529064 +3108 1 1.72 0.0 5.31 86.7300034 0.873722 0.486425 0.3529064 +3109 1 1.72 3.54 3.54 84.9599992 -0.53883 -0.842415 0.0622191 +3110 1 1.72 5.31 5.31 84.9599992 -0.116738 -0.993163 0.0622191 +3111 1 1.72 5.31 3.54 86.7300034 0.514846 0.857283 0.3529064 +3112 1 1.72 3.54 5.31 86.7300034 -0.717093 -0.696977 0.3529064 +3113 1 1.72 7.0799999 3.54 84.9599992 0.554889 -0.831924 0.0622191 +3114 1 1.72 8.8500004 5.31 84.9599992 0.148329 -0.988938 0.0622191 +3115 1 1.72 8.8500004 3.54 86.7300034 0.561293 0.827617 0.3529064 +3116 1 1.72 7.0799999 5.31 86.7300034 0.99871 -0.0507756 0.3529064 +3117 1 1.72 10.6199999 3.54 84.9599992 0.760955 0.648805 0.0622191 +3118 1 1.72 12.3900004 5.31 84.9599992 0.553094 -0.833119 0.0622191 +3119 1 1.72 12.3900004 3.54 86.7300034 -0.897677 0.440653 0.3529064 +3120 1 1.72 10.6199999 5.31 86.7300034 -0.832878 -0.553457 0.3529064 +3121 1 1.72 14.1599999 3.54 84.9599992 0.503031 -0.864268 0.0622191 +3122 1 1.72 15.9300004 5.31 84.9599992 0.191023 0.981586 0.0622191 +3123 1 1.72 15.9300004 3.54 86.7300034 0.41285 -0.910799 0.3529064 +3124 1 1.72 14.1599999 5.31 86.7300034 0.599912 0.800066 0.3529064 +3125 1 1.72 17.7000008 3.54 84.9599992 0.377827 0.925876 0.0622191 +3126 1 1.72 19.4699993 5.31 84.9599992 0.119579 -0.992825 0.0622191 +3127 1 1.72 19.4699993 3.54 86.7300034 0.65481 0.755794 0.3529064 +3128 1 1.72 17.7000008 5.31 86.7300034 -0.921178 0.389141 0.3529064 +3129 1 1.72 21.2399998 3.54 84.9599992 -0.863358 -0.504592 0.0622191 +3130 1 1.72 23.0100002 5.31 84.9599992 0.734777 -0.678309 0.0622191 +3131 1 1.72 23.0100002 3.54 86.7300034 0.81353 0.581522 0.3529064 +3132 1 1.72 21.2399998 5.31 86.7300034 0.819977 0.572397 0.3529064 +3133 1 1.72 24.7800007 3.54 84.9599992 0.959323 -0.282311 0.0622191 +3134 1 1.72 26.5499993 5.31 84.9599992 -0.560765 0.827975 0.0622191 +3135 1 1.72 26.5499993 3.54 86.7300034 0.107624 0.994192 0.3529064 +3136 1 1.72 24.7800007 5.31 86.7300034 0.994546 -0.104303 0.3529064 +3137 1 1.72 0.0 7.0799999 84.9599992 0.552035 -0.833821 0.0622191 +3138 1 1.72 1.77 8.8500004 84.9599992 -0.95234 -0.30504 0.0622191 +3139 1 1.72 1.77 7.0799999 86.7300034 0.827599 -0.56132 0.3529064 +3140 1 1.72 0.0 8.8500004 86.7300034 0.326724 -0.94512 0.3529064 +3141 1 1.72 3.54 7.0799999 84.9599992 0.448123 -0.893972 0.0622191 +3142 1 1.72 5.31 8.8500004 84.9599992 0.194424 -0.980918 0.0622191 +3143 1 1.72 5.31 7.0799999 86.7300034 -0.805121 0.59311 0.3529064 +3144 1 1.72 3.54 8.8500004 86.7300034 -0.445889 0.895088 0.3529064 +3145 1 1.72 7.0799999 7.0799999 84.9599992 -0.105776 0.99439 0.0622191 +3146 1 1.72 8.8500004 8.8500004 84.9599992 -0.420794 0.907156 0.0622191 +3147 1 1.72 8.8500004 7.0799999 86.7300034 -0.999948 -0.0102386 0.3529064 +3148 1 1.72 7.0799999 8.8500004 86.7300034 0.730612 -0.682793 0.3529064 +3149 1 1.72 10.6199999 7.0799999 84.9599992 -0.271943 -0.962313 0.0622191 +3150 1 1.72 12.3900004 8.8500004 84.9599992 0.969159 -0.246435 0.0622191 +3151 1 1.72 12.3900004 7.0799999 86.7300034 0.999468 -0.0326289 0.3529064 +3152 1 1.72 10.6199999 8.8500004 86.7300034 0.893324 0.449413 0.3529064 +3153 1 1.72 14.1599999 7.0799999 84.9599992 -0.725086 0.688658 0.0622191 +3154 1 1.72 15.9300004 8.8500004 84.9599992 0.999626 -0.0273363 0.0622191 +3155 1 1.72 15.9300004 7.0799999 86.7300034 0.220628 -0.975358 0.3529064 +3156 1 1.72 14.1599999 8.8500004 86.7300034 -0.191634 -0.981467 0.3529064 +3157 1 1.72 17.7000008 7.0799999 84.9599992 0.657471 -0.75348 0.0622191 +3158 1 1.72 19.4699993 8.8500004 84.9599992 -0.993452 -0.114248 0.0622191 +3159 1 1.72 19.4699993 7.0799999 86.7300034 -0.478889 -0.877876 0.3529064 +3160 1 1.72 17.7000008 8.8500004 86.7300034 0.77571 -0.631089 0.3529064 +3161 1 1.72 21.2399998 7.0799999 84.9599992 0.662893 0.748714 0.0622191 +3162 1 1.72 23.0100002 8.8500004 84.9599992 0.523202 0.852209 0.0622191 +3163 1 1.72 23.0100002 7.0799999 86.7300034 0.884361 -0.466804 0.3529064 +3164 1 1.72 21.2399998 8.8500004 86.7300034 0.957608 -0.288076 0.3529064 +3165 1 1.72 24.7800007 7.0799999 84.9599992 -0.690895 0.722955 0.0622191 +3166 1 1.72 26.5499993 8.8500004 84.9599992 0.685998 0.727603 0.0622191 +3167 1 1.72 26.5499993 7.0799999 86.7300034 0.79968 -0.600426 0.3529064 +3168 1 1.72 24.7800007 8.8500004 86.7300034 0.717253 0.696812 0.3529064 +3169 1 1.72 0.0 10.6199999 84.9599992 -0.73913 -0.673562 0.0622191 +3170 1 1.72 1.77 12.3900004 84.9599992 0.556747 0.830682 0.0622191 +3171 1 1.72 1.77 10.6199999 86.7300034 0.651318 0.758805 0.3529064 +3172 1 1.72 0.0 12.3900004 86.7300034 -0.188681 -0.982039 0.3529064 +3173 1 1.72 3.54 10.6199999 84.9599992 -0.434519 -0.900663 0.0622191 +3174 1 1.72 5.31 12.3900004 84.9599992 0.699038 -0.715084 0.0622191 +3175 1 1.72 5.31 10.6199999 86.7300034 -0.882226 -0.470826 0.3529064 +3176 1 1.72 3.54 12.3900004 86.7300034 0.643411 -0.765521 0.3529064 +3177 1 1.72 7.0799999 10.6199999 84.9599992 -0.561751 0.827306 0.0622191 +3178 1 1.72 8.8500004 12.3900004 84.9599992 -0.822066 0.569392 0.0622191 +3179 1 1.72 8.8500004 10.6199999 86.7300034 0.976915 0.213628 0.3529064 +3180 1 1.72 7.0799999 12.3900004 86.7300034 0.432425 -0.90167 0.3529064 +3181 1 1.72 10.6199999 10.6199999 84.9599992 0.796685 0.604395 0.0622191 +3182 1 1.72 12.3900004 12.3900004 84.9599992 0.236922 -0.971529 0.0622191 +3183 1 1.72 12.3900004 10.6199999 86.7300034 -0.339992 -0.940428 0.3529064 +3184 1 1.72 10.6199999 12.3900004 86.7300034 -0.626377 0.77952 0.3529064 +3185 1 1.72 14.1599999 10.6199999 84.9599992 0.990921 -0.134449 0.0622191 +3186 1 1.72 15.9300004 12.3900004 84.9599992 -0.994421 0.105485 0.0622191 +3187 1 1.72 15.9300004 10.6199999 86.7300034 0.912257 0.409619 0.3529064 +3188 1 1.72 14.1599999 12.3900004 86.7300034 -0.123003 -0.992406 0.3529064 +3189 1 1.72 17.7000008 10.6199999 84.9599992 0.802914 -0.596095 0.0622191 +3190 1 1.72 19.4699993 12.3900004 84.9599992 0.200833 -0.979626 0.0622191 +3191 1 1.72 19.4699993 10.6199999 86.7300034 0.5291 -0.84856 0.3529064 +3192 1 1.72 17.7000008 12.3900004 86.7300034 0.259021 -0.965872 0.3529064 +3193 1 1.72 21.2399998 10.6199999 84.9599992 -0.761867 -0.647733 0.0622191 +3194 1 1.72 23.0100002 12.3900004 84.9599992 -0.485975 0.873973 0.0622191 +3195 1 1.72 23.0100002 10.6199999 86.7300034 0.385293 -0.922794 0.3529064 +3196 1 1.72 21.2399998 12.3900004 86.7300034 0.789108 0.614255 0.3529064 +3197 1 1.72 24.7800007 10.6199999 84.9599992 -0.966573 -0.256393 0.0622191 +3198 1 1.72 26.5499993 12.3900004 84.9599992 0.97345 -0.228901 0.0622191 +3199 1 1.72 26.5499993 10.6199999 86.7300034 -0.950999 -0.309194 0.3529064 +3200 1 1.72 24.7800007 12.3900004 86.7300034 -0.635748 0.771897 0.3529064 +3201 1 1.72 0.0 0.0 88.5 0.0814479 -0.996678 0.6123981 +3202 1 1.72 1.77 1.77 88.5 -0.259647 0.965704 0.6123981 +3203 1 1.72 1.77 0.0 90.2699967 -0.198461 -0.980109 0.8177584 +3204 1 1.72 0.0 1.77 90.2699967 -0.584697 -0.811252 0.8177584 +3205 1 1.72 3.54 0.0 88.5 -0.424454 -0.90545 0.6123981 +3206 1 1.72 5.31 1.77 88.5 0.998539 0.0540392 0.6123981 +3207 1 1.72 5.31 0.0 90.2699967 0.209971 -0.977708 0.8177584 +3208 1 1.72 3.54 1.77 90.2699967 -0.765048 -0.643973 0.8177584 +3209 1 1.72 7.0799999 0.0 88.5 -0.625452 0.780262 0.6123981 +3210 1 1.72 8.8500004 1.77 88.5 0.815133 0.579274 0.6123981 +3211 1 1.72 8.8500004 0.0 90.2699967 -0.985612 -0.169026 0.8177584 +3212 1 1.72 7.0799999 1.77 90.2699967 -0.520388 0.85393 0.8177584 +3213 1 1.72 10.6199999 0.0 88.5 0.702682 0.711504 0.6123981 +3214 1 1.72 12.3900004 1.77 88.5 0.795024 0.606579 0.6123981 +3215 1 1.72 12.3900004 0.0 90.2699967 -0.361094 -0.93253 0.8177584 +3216 1 1.72 10.6199999 1.77 90.2699967 -0.998905 0.0467864 0.8177584 +3217 1 1.72 14.1599999 0.0 88.5 -0.0309931 0.99952 0.6123981 +3218 1 1.72 15.9300004 1.77 88.5 -0.922288 0.386504 0.6123981 +3219 1 1.72 15.9300004 0.0 90.2699967 0.510992 0.859586 0.8177584 +3220 1 1.72 14.1599999 1.77 90.2699967 -0.567707 -0.823231 0.8177584 +3221 1 1.72 17.7000008 0.0 88.5 0.355571 -0.934649 0.6123981 +3222 1 1.72 19.4699993 1.77 88.5 -0.471974 -0.881613 0.6123981 +3223 1 1.72 19.4699993 0.0 90.2699967 0.488717 0.872443 0.8177584 +3224 1 1.72 17.7000008 1.77 90.2699967 0.960363 -0.278753 0.8177584 +3225 1 1.72 21.2399998 0.0 88.5 0.249307 0.968424 0.6123981 +3226 1 1.72 23.0100002 1.77 88.5 -0.894692 -0.446684 0.6123981 +3227 1 1.72 23.0100002 0.0 90.2699967 0.966929 0.255045 0.8177584 +3228 1 1.72 21.2399998 1.77 90.2699967 -0.440933 0.89754 0.8177584 +3229 1 1.72 24.7800007 0.0 88.5 0.591411 -0.80637 0.6123981 +3230 1 1.72 26.5499993 1.77 88.5 0.096598 -0.995323 0.6123981 +3231 1 1.72 26.5499993 0.0 90.2699967 -0.6912 0.722663 0.8177584 +3232 1 1.72 24.7800007 1.77 90.2699967 0.691936 -0.721959 0.8177584 +3233 1 1.72 0.0 3.54 88.5 0.674759 -0.738039 0.6123981 +3234 1 1.72 1.77 5.31 88.5 0.747446 -0.664322 0.6123981 +3235 1 1.72 1.77 3.54 90.2699967 -0.479799 0.877378 0.8177584 +3236 1 1.72 0.0 5.31 90.2699967 -0.0364025 0.999337 0.8177584 +3237 1 1.72 3.54 3.54 88.5 0.74241 -0.669946 0.6123981 +3238 1 1.72 5.31 5.31 88.5 -0.88395 0.467582 0.6123981 +3239 1 1.72 5.31 3.54 90.2699967 -0.0136033 0.999907 0.8177584 +3240 1 1.72 3.54 5.31 90.2699967 0.882501 -0.47031 0.8177584 +3241 1 1.72 7.0799999 3.54 88.5 0.299187 0.954194 0.6123981 +3242 1 1.72 8.8500004 5.31 88.5 0.172189 0.985064 0.6123981 +3243 1 1.72 8.8500004 3.54 90.2699967 -0.868739 -0.49527 0.8177584 +3244 1 1.72 7.0799999 5.31 90.2699967 -0.959876 0.280423 0.8177584 +3245 1 1.72 10.6199999 3.54 88.5 -0.983664 0.180015 0.6123981 +3246 1 1.72 12.3900004 5.31 88.5 0.176606 0.984282 0.6123981 +3247 1 1.72 12.3900004 3.54 90.2699967 -0.159699 -0.987166 0.8177584 +3248 1 1.72 10.6199999 5.31 90.2699967 -0.557452 -0.830209 0.8177584 +3249 1 1.72 14.1599999 3.54 88.5 -0.688994 -0.724767 0.6123981 +3250 1 1.72 15.9300004 5.31 88.5 -0.116093 -0.993238 0.6123981 +3251 1 1.72 15.9300004 3.54 90.2699967 -0.359459 -0.933161 0.8177584 +3252 1 1.72 14.1599999 5.31 90.2699967 -0.976052 0.217539 0.8177584 +3253 1 1.72 17.7000008 3.54 88.5 0.767225 0.641378 0.6123981 +3254 1 1.72 19.4699993 5.31 88.5 -0.860422 0.509582 0.6123981 +3255 1 1.72 19.4699993 3.54 90.2699967 -0.325269 -0.945621 0.8177584 +3256 1 1.72 17.7000008 5.31 90.2699967 0.679991 -0.73322 0.8177584 +3257 1 1.72 21.2399998 3.54 88.5 -0.929161 -0.369676 0.6123981 +3258 1 1.72 23.0100002 5.31 88.5 0.657035 -0.75386 0.6123981 +3259 1 1.72 23.0100002 3.54 90.2699967 0.931306 0.364237 0.8177584 +3260 1 1.72 21.2399998 5.31 90.2699967 -0.00188454 -0.999998 0.8177584 +3261 1 1.72 24.7800007 3.54 88.5 -0.366621 -0.93037 0.6123981 +3262 1 1.72 26.5499993 5.31 88.5 0.833235 -0.552918 0.6123981 +3263 1 1.72 26.5499993 3.54 90.2699967 0.21345 0.976954 0.8177584 +3264 1 1.72 24.7800007 5.31 90.2699967 -0.14833 0.988938 0.8177584 +3265 1 1.72 0.0 7.0799999 88.5 0.42024 -0.907413 0.6123981 +3266 1 1.72 1.77 8.8500004 88.5 -0.881154 -0.472829 0.6123981 +3267 1 1.72 1.77 7.0799999 90.2699967 -0.960995 -0.276567 0.8177584 +3268 1 1.72 0.0 8.8500004 90.2699967 0.821356 -0.570415 0.8177584 +3269 1 1.72 3.54 7.0799999 88.5 0.516927 -0.85603 0.6123981 +3270 1 1.72 5.31 8.8500004 88.5 -0.466182 0.884689 0.6123981 +3271 1 1.72 5.31 7.0799999 90.2699967 0.745056 0.667002 0.8177584 +3272 1 1.72 3.54 8.8500004 90.2699967 -0.996455 0.084129 0.8177584 +3273 1 1.72 7.0799999 7.0799999 88.5 0.898087 0.439819 0.6123981 +3274 1 1.72 8.8500004 8.8500004 88.5 -0.856128 -0.516764 0.6123981 +3275 1 1.72 8.8500004 7.0799999 90.2699967 0.826266 0.56328 0.8177584 +3276 1 1.72 7.0799999 8.8500004 90.2699967 -0.37157 0.928405 0.8177584 +3277 1 1.72 10.6199999 7.0799999 88.5 -0.206864 0.97837 0.6123981 +3278 1 1.72 12.3900004 8.8500004 88.5 0.502205 -0.864749 0.6123981 +3279 1 1.72 12.3900004 7.0799999 90.2699967 -0.766877 -0.641794 0.8177584 +3280 1 1.72 10.6199999 8.8500004 90.2699967 0.404476 -0.914548 0.8177584 +3281 1 1.72 14.1599999 7.0799999 88.5 -0.654614 0.755963 0.6123981 +3282 1 1.72 15.9300004 8.8500004 88.5 0.0908795 0.995862 0.6123981 +3283 1 1.72 15.9300004 7.0799999 90.2699967 -0.0244226 -0.999702 0.8177584 +3284 1 1.72 14.1599999 8.8500004 90.2699967 0.835121 -0.550066 0.8177584 +3285 1 1.72 17.7000008 7.0799999 88.5 -0.200279 0.979739 0.6123981 +3286 1 1.72 19.4699993 8.8500004 88.5 -0.725386 -0.688342 0.6123981 +3287 1 1.72 19.4699993 7.0799999 90.2699967 -0.845452 -0.534052 0.8177584 +3288 1 1.72 17.7000008 8.8500004 90.2699967 -0.841802 0.539786 0.8177584 +3289 1 1.72 21.2399998 7.0799999 88.5 -0.474372 -0.880324 0.6123981 +3290 1 1.72 23.0100002 8.8500004 88.5 -0.640678 0.76781 0.6123981 +3291 1 1.72 23.0100002 7.0799999 90.2699967 0.948872 0.31566 0.8177584 +3292 1 1.72 21.2399998 8.8500004 90.2699967 0.882006 0.471239 0.8177584 +3293 1 1.72 24.7800007 7.0799999 88.5 0.789484 -0.613771 0.6123981 +3294 1 1.72 26.5499993 8.8500004 88.5 -0.571943 0.820293 0.6123981 +3295 1 1.72 26.5499993 7.0799999 90.2699967 -0.616512 0.787346 0.8177584 +3296 1 1.72 24.7800007 8.8500004 90.2699967 0.427937 0.903809 0.8177584 +3297 1 1.72 0.0 10.6199999 88.5 -0.3059 0.952064 0.6123981 +3298 1 1.72 1.77 12.3900004 88.5 0.983121 0.182957 0.6123981 +3299 1 1.72 1.77 10.6199999 90.2699967 0.641828 0.766849 0.8177584 +3300 1 1.72 0.0 12.3900004 90.2699967 -0.0293854 -0.999568 0.8177584 +3301 1 1.72 3.54 10.6199999 88.5 0.973508 -0.228655 0.6123981 +3302 1 1.72 5.31 12.3900004 88.5 0.922521 0.385946 0.6123981 +3303 1 1.72 5.31 10.6199999 90.2699967 0.951109 0.308856 0.8177584 +3304 1 1.72 3.54 12.3900004 90.2699967 -0.477051 -0.878875 0.8177584 +3305 1 1.72 7.0799999 10.6199999 88.5 -0.897582 0.440847 0.6123981 +3306 1 1.72 8.8500004 12.3900004 88.5 0.576961 0.816772 0.6123981 +3307 1 1.72 8.8500004 10.6199999 90.2699967 0.998647 -0.0520025 0.8177584 +3308 1 1.72 7.0799999 12.3900004 90.2699967 0.180206 0.983629 0.8177584 +3309 1 1.72 10.6199999 10.6199999 88.5 -0.0813292 0.996687 0.6123981 +3310 1 1.72 12.3900004 12.3900004 88.5 -0.929701 0.368315 0.6123981 +3311 1 1.72 12.3900004 10.6199999 90.2699967 0.552736 0.833356 0.8177584 +3312 1 1.72 10.6199999 12.3900004 90.2699967 -0.870974 0.49133 0.8177584 +3313 1 1.72 14.1599999 10.6199999 88.5 -0.871249 0.490842 0.6123981 +3314 1 1.72 15.9300004 12.3900004 88.5 0.826662 -0.562699 0.6123981 +3315 1 1.72 15.9300004 10.6199999 90.2699967 0.126884 -0.991918 0.8177584 +3316 1 1.72 14.1599999 12.3900004 90.2699967 0.818244 0.574871 0.8177584 +3317 1 1.72 17.7000008 10.6199999 88.5 -0.808764 0.588134 0.6123981 +3318 1 1.72 19.4699993 12.3900004 88.5 -0.560257 0.828319 0.6123981 +3319 1 1.72 19.4699993 10.6199999 90.2699967 0.921399 -0.388618 0.8177584 +3320 1 1.72 17.7000008 12.3900004 90.2699967 0.591131 -0.806576 0.8177584 +3321 1 1.72 21.2399998 10.6199999 88.5 -0.966127 -0.258066 0.6123981 +3322 1 1.72 23.0100002 12.3900004 88.5 -0.144221 0.989545 0.6123981 +3323 1 1.72 23.0100002 10.6199999 90.2699967 -0.766044 0.642789 0.8177584 +3324 1 1.72 21.2399998 12.3900004 90.2699967 0.18622 0.982508 0.8177584 +3325 1 1.72 24.7800007 10.6199999 88.5 0.764001 -0.645216 0.6123981 +3326 1 1.72 26.5499993 12.3900004 88.5 -0.816947 -0.576713 0.6123981 +3327 1 1.72 26.5499993 10.6199999 90.2699967 0.982513 -0.186192 0.8177584 +3328 1 1.72 24.7800007 12.3900004 90.2699967 -0.669736 0.742599 0.8177584 +3329 1 1.72 0.0 0.0 92.0400009 0.828152 -0.560503 0.9508352 +3330 1 1.72 1.77 1.77 92.0400009 0.989493 0.144582 0.9508352 +3331 1 1.72 1.77 0.0 93.8099976 0.884275 0.466967 0.9998646 +3332 1 1.72 0.0 1.77 93.8099976 0.688393 -0.725338 0.9998646 +3333 1 1.72 3.54 0.0 92.0400009 0.143863 0.989598 0.9508352 +3334 1 1.72 5.31 1.77 92.0400009 0.279227 -0.960225 0.9508352 +3335 1 1.72 5.31 0.0 93.8099976 -0.660332 -0.750974 0.9998646 +3336 1 1.72 3.54 1.77 93.8099976 -0.99536 0.0962212 0.9998646 +3337 1 1.72 7.0799999 0.0 92.0400009 0.912838 -0.408323 0.9508352 +3338 1 1.72 8.8500004 1.77 92.0400009 0.698081 -0.716019 0.9508352 +3339 1 1.72 8.8500004 0.0 93.8099976 -0.345922 0.938263 0.9998646 +3340 1 1.72 7.0799999 1.77 93.8099976 -0.778137 -0.628095 0.9998646 +3341 1 1.72 10.6199999 0.0 92.0400009 -0.746639 -0.66523 0.9508352 +3342 1 1.72 12.3900004 1.77 92.0400009 0.386284 -0.92238 0.9508352 +3343 1 1.72 12.3900004 0.0 93.8099976 0.420172 -0.907445 0.9998646 +3344 1 1.72 10.6199999 1.77 93.8099976 -0.996174 -0.0873961 0.9998646 +3345 1 1.72 14.1599999 0.0 92.0400009 -0.99966 -0.0260766 0.9508352 +3346 1 1.72 15.9300004 1.77 92.0400009 -0.996881 0.0789214 0.9508352 +3347 1 1.72 15.9300004 0.0 93.8099976 -0.330092 0.943949 0.9998646 +3348 1 1.72 14.1599999 1.77 93.8099976 -0.562023 0.827122 0.9998646 +3349 1 1.72 17.7000008 0.0 92.0400009 -0.511974 0.859001 0.9508352 +3350 1 1.72 19.4699993 1.77 92.0400009 -0.999644 0.0266962 0.9508352 +3351 1 1.72 19.4699993 0.0 93.8099976 -0.987848 0.155424 0.9998646 +3352 1 1.72 17.7000008 1.77 93.8099976 -0.515203 0.857068 0.9998646 +3353 1 1.72 21.2399998 0.0 92.0400009 0.137061 -0.990563 0.9508352 +3354 1 1.72 23.0100002 1.77 92.0400009 0.613965 0.789333 0.9508352 +3355 1 1.72 23.0100002 0.0 93.8099976 0.168124 -0.985766 0.9998646 +3356 1 1.72 21.2399998 1.77 93.8099976 0.848376 -0.529394 0.9998646 +3357 1 1.72 24.7800007 0.0 92.0400009 0.728608 -0.684931 0.9508352 +3358 1 1.72 26.5499993 1.77 92.0400009 0.983103 0.183053 0.9508352 +3359 1 1.72 26.5499993 0.0 93.8099976 0.53876 0.842459 0.9998646 +3360 1 1.72 24.7800007 1.77 93.8099976 -0.989859 -0.142051 0.9998646 +3361 1 1.72 0.0 3.54 92.0400009 -0.79771 0.603041 0.9508352 +3362 1 1.72 1.77 5.31 92.0400009 -0.0253525 0.999679 0.9508352 +3363 1 1.72 1.77 3.54 93.8099976 -0.520279 -0.853996 0.9998646 +3364 1 1.72 0.0 5.31 93.8099976 0.984095 -0.177642 0.9998646 +3365 1 1.72 3.54 3.54 92.0400009 -0.165045 -0.986286 0.9508352 +3366 1 1.72 5.31 5.31 92.0400009 -0.0533507 0.998576 0.9508352 +3367 1 1.72 5.31 3.54 93.8099976 -0.794755 0.60693 0.9998646 +3368 1 1.72 3.54 5.31 93.8099976 -0.999303 0.0373207 0.9998646 +3369 1 1.72 7.0799999 3.54 92.0400009 0.810969 -0.585089 0.9508352 +3370 1 1.72 8.8500004 5.31 92.0400009 -0.743413 0.668833 0.9508352 +3371 1 1.72 8.8500004 3.54 93.8099976 -0.61656 -0.787308 0.9998646 +3372 1 1.72 7.0799999 5.31 93.8099976 0.760532 0.6493 0.9998646 +3373 1 1.72 10.6199999 3.54 92.0400009 -0.128745 0.991678 0.9508352 +3374 1 1.72 12.3900004 5.31 92.0400009 0.597907 0.801565 0.9508352 +3375 1 1.72 12.3900004 3.54 93.8099976 0.591364 0.806405 0.9998646 +3376 1 1.72 10.6199999 5.31 93.8099976 -0.474538 0.880235 0.9998646 +3377 1 1.72 14.1599999 3.54 92.0400009 -0.600661 0.799503 0.9508352 +3378 1 1.72 15.9300004 5.31 92.0400009 -0.887688 -0.460446 0.9508352 +3379 1 1.72 15.9300004 3.54 93.8099976 -0.610261 -0.7922 0.9998646 +3380 1 1.72 14.1599999 5.31 93.8099976 -0.554043 0.832488 0.9998646 +3381 1 1.72 17.7000008 3.54 92.0400009 -0.637637 0.770337 0.9508352 +3382 1 1.72 19.4699993 5.31 92.0400009 0.367987 0.929831 0.9508352 +3383 1 1.72 19.4699993 3.54 93.8099976 -0.674412 0.738355 0.9998646 +3384 1 1.72 17.7000008 5.31 93.8099976 -0.146841 0.98916 0.9998646 +3385 1 1.72 21.2399998 3.54 92.0400009 -0.554711 0.832043 0.9508352 +3386 1 1.72 23.0100002 5.31 92.0400009 -0.585422 0.810729 0.9508352 +3387 1 1.72 23.0100002 3.54 93.8099976 -0.623051 0.782181 0.9998646 +3388 1 1.72 21.2399998 5.31 93.8099976 0.477107 0.878845 0.9998646 +3389 1 1.72 24.7800007 3.54 92.0400009 0.998647 0.0520044 0.9508352 +3390 1 1.72 26.5499993 5.31 92.0400009 -0.826128 0.563483 0.9508352 +3391 1 1.72 26.5499993 3.54 93.8099976 -0.441092 0.897462 0.9998646 +3392 1 1.72 24.7800007 5.31 93.8099976 -0.67333 -0.739342 0.9998646 +3393 1 1.72 0.0 7.0799999 92.0400009 -0.873965 -0.485988 0.9508352 +3394 1 1.72 1.77 8.8500004 92.0400009 0.803665 -0.595082 0.9508352 +3395 1 1.72 1.77 7.0799999 93.8099976 0.102322 0.994751 0.9998646 +3396 1 1.72 0.0 8.8500004 93.8099976 0.327791 0.94475 0.9998646 +3397 1 1.72 3.54 7.0799999 92.0400009 0.862987 -0.505227 0.9508352 +3398 1 1.72 5.31 8.8500004 92.0400009 0.763551 0.645747 0.9508352 +3399 1 1.72 5.31 7.0799999 93.8099976 0.901385 -0.433019 0.9998646 +3400 1 1.72 3.54 8.8500004 93.8099976 0.807384 0.590026 0.9998646 +3401 1 1.72 7.0799999 7.0799999 92.0400009 -0.803897 -0.594769 0.9508352 +3402 1 1.72 8.8500004 8.8500004 92.0400009 -0.0453658 0.99897 0.9508352 +3403 1 1.72 8.8500004 7.0799999 93.8099976 0.880523 -0.474004 0.9998646 +3404 1 1.72 7.0799999 8.8500004 93.8099976 0.999959 0.00905736 0.9998646 +3405 1 1.72 10.6199999 7.0799999 92.0400009 -0.645639 0.763643 0.9508352 +3406 1 1.72 12.3900004 8.8500004 92.0400009 -0.792146 0.610332 0.9508352 +3407 1 1.72 12.3900004 7.0799999 93.8099976 0.640106 0.768287 0.9998646 +3408 1 1.72 10.6199999 8.8500004 93.8099976 0.878035 0.478596 0.9998646 +3409 1 1.72 14.1599999 7.0799999 92.0400009 -0.965428 -0.260669 0.9508352 +3410 1 1.72 15.9300004 8.8500004 92.0400009 -0.923328 -0.384012 0.9508352 +3411 1 1.72 15.9300004 7.0799999 93.8099976 -0.309689 0.950838 0.9998646 +3412 1 1.72 14.1599999 8.8500004 93.8099976 -0.569041 0.822309 0.9998646 +3413 1 1.72 17.7000008 7.0799999 92.0400009 0.50104 -0.865424 0.9508352 +3414 1 1.72 19.4699993 8.8500004 92.0400009 0.791544 -0.611112 0.9508352 +3415 1 1.72 19.4699993 7.0799999 93.8099976 0.559231 0.829012 0.9998646 +3416 1 1.72 17.7000008 8.8500004 93.8099976 0.758787 -0.651338 0.9998646 +3417 1 1.72 21.2399998 7.0799999 92.0400009 0.802682 -0.596407 0.9508352 +3418 1 1.72 23.0100002 8.8500004 92.0400009 0.167507 -0.985871 0.9508352 +3419 1 1.72 23.0100002 7.0799999 93.8099976 -0.0488943 -0.998804 0.9998646 +3420 1 1.72 21.2399998 8.8500004 93.8099976 -0.999908 0.0135346 0.9998646 +3421 1 1.72 24.7800007 7.0799999 92.0400009 -0.617929 -0.786234 0.9508352 +3422 1 1.72 26.5499993 8.8500004 92.0400009 -0.900155 0.435569 0.9508352 +3423 1 1.72 26.5499993 7.0799999 93.8099976 -0.710144 0.704056 0.9998646 +3424 1 1.72 24.7800007 8.8500004 93.8099976 0.551884 0.833921 0.9998646 +3425 1 1.72 0.0 10.6199999 92.0400009 -0.635235 0.772319 0.9508352 +3426 1 1.72 1.77 12.3900004 92.0400009 0.140353 0.990101 0.9508352 +3427 1 1.72 1.77 10.6199999 93.8099976 0.961191 0.275885 0.9998646 +3428 1 1.72 0.0 12.3900004 93.8099976 -0.980255 0.197738 0.9998646 +3429 1 1.72 3.54 10.6199999 92.0400009 -0.923776 -0.382934 0.9508352 +3430 1 1.72 5.31 12.3900004 92.0400009 -0.980185 -0.198086 0.9508352 +3431 1 1.72 5.31 10.6199999 93.8099976 0.662771 0.748822 0.9998646 +3432 1 1.72 3.54 12.3900004 93.8099976 -0.720134 0.693835 0.9998646 +3433 1 1.72 7.0799999 10.6199999 92.0400009 -0.75527 -0.655414 0.9508352 +3434 1 1.72 8.8500004 12.3900004 92.0400009 -0.505443 0.86286 0.9508352 +3435 1 1.72 8.8500004 10.6199999 93.8099976 -0.781277 0.624184 0.9998646 +3436 1 1.72 7.0799999 12.3900004 93.8099976 0.157568 0.987508 0.9998646 +3437 1 1.72 10.6199999 10.6199999 92.0400009 0.327432 -0.944875 0.9508352 +3438 1 1.72 12.3900004 12.3900004 92.0400009 -0.251084 -0.967965 0.9508352 +3439 1 1.72 12.3900004 10.6199999 93.8099976 0.987396 -0.158266 0.9998646 +3440 1 1.72 10.6199999 12.3900004 93.8099976 0.36674 -0.930323 0.9998646 +3441 1 1.72 14.1599999 10.6199999 92.0400009 0.730909 0.682475 0.9508352 +3442 1 1.72 15.9300004 12.3900004 92.0400009 0.0402508 0.99919 0.9508352 +3443 1 1.72 15.9300004 10.6199999 93.8099976 -0.513414 0.858141 0.9998646 +3444 1 1.72 14.1599999 12.3900004 93.8099976 -0.818731 0.574178 0.9998646 +3445 1 1.72 17.7000008 10.6199999 92.0400009 -0.87768 0.479247 0.9508352 +3446 1 1.72 19.4699993 12.3900004 92.0400009 0.741321 0.671151 0.9508352 +3447 1 1.72 19.4699993 10.6199999 93.8099976 -0.881018 0.473083 0.9998646 +3448 1 1.72 17.7000008 12.3900004 93.8099976 -0.970352 0.241698 0.9998646 +3449 1 1.72 21.2399998 10.6199999 92.0400009 -0.38788 0.92171 0.9508352 +3450 1 1.72 23.0100002 12.3900004 92.0400009 -0.962019 -0.272982 0.9508352 +3451 1 1.72 23.0100002 10.6199999 93.8099976 0.0236468 -0.99972 0.9998646 +3452 1 1.72 21.2399998 12.3900004 93.8099976 -0.722769 0.69109 0.9998646 +3453 1 1.72 24.7800007 10.6199999 92.0400009 -0.957086 -0.289804 0.9508352 +3454 1 1.72 26.5499993 12.3900004 92.0400009 -0.790331 -0.61268 0.9508352 +3455 1 1.72 26.5499993 10.6199999 93.8099976 -0.880554 -0.473946 0.9998646 +3456 1 1.72 24.7800007 12.3900004 93.8099976 0.264631 0.96435 0.9998646 +3457 1 1.72 0.0 0.0 95.5800019 -0.790928 -0.611909 1.0 +3458 1 1.72 1.77 1.77 95.5800019 -0.725467 -0.688257 1.0 +3459 1 1.72 1.77 0.0 97.3499985 0.80488 0.593438 1.0 +3460 1 1.72 0.0 1.77 97.3499985 0.578804 -0.815467 1.0 +3461 1 1.72 3.54 0.0 95.5800019 0.613921 -0.789368 1.0 +3462 1 1.72 5.31 1.77 95.5800019 0.136483 -0.990642 1.0 +3463 1 1.72 5.31 0.0 97.3499985 0.999797 0.0201702 1.0 +3464 1 1.72 3.54 1.77 97.3499985 0.806024 -0.591883 1.0 +3465 1 1.72 7.0799999 0.0 95.5800019 -0.265806 0.964027 1.0 +3466 1 1.72 8.8500004 1.77 95.5800019 -0.137761 -0.990466 1.0 +3467 1 1.72 8.8500004 0.0 97.3499985 0.28548 -0.958385 1.0 +3468 1 1.72 7.0799999 1.77 97.3499985 -0.730198 0.683236 1.0 +3469 1 1.72 10.6199999 0.0 95.5800019 -0.655369 -0.755309 1.0 +3470 1 1.72 12.3900004 1.77 95.5800019 -0.77439 -0.632708 1.0 +3471 1 1.72 12.3900004 0.0 97.3499985 -0.47057 0.882363 1.0 +3472 1 1.72 10.6199999 1.77 97.3499985 -0.993488 0.113935 1.0 +3473 1 1.72 14.1599999 0.0 95.5800019 -0.81396 0.580922 1.0 +3474 1 1.72 15.9300004 1.77 95.5800019 -0.469561 0.8829 1.0 +3475 1 1.72 15.9300004 0.0 97.3499985 -0.571448 -0.820639 1.0 +3476 1 1.72 14.1599999 1.77 97.3499985 -0.919716 0.392585 1.0 +3477 1 1.72 17.7000008 0.0 95.5800019 0.125133 0.99214 1.0 +3478 1 1.72 19.4699993 1.77 95.5800019 0.552805 0.83331 1.0 +3479 1 1.72 19.4699993 0.0 97.3499985 0.789593 0.613631 1.0 +3480 1 1.72 17.7000008 1.77 97.3499985 -0.579898 0.814689 1.0 +3481 1 1.72 21.2399998 0.0 95.5800019 -0.240867 0.970558 1.0 +3482 1 1.72 23.0100002 1.77 95.5800019 -0.533808 -0.845606 1.0 +3483 1 1.72 23.0100002 0.0 97.3499985 0.647036 -0.762459 1.0 +3484 1 1.72 21.2399998 1.77 97.3499985 -0.121188 0.99263 1.0 +3485 1 1.72 24.7800007 0.0 95.5800019 -0.515429 -0.856932 1.0 +3486 1 1.72 26.5499993 1.77 95.5800019 0.590502 0.807036 1.0 +3487 1 1.72 26.5499993 0.0 97.3499985 0.910993 -0.412422 1.0 +3488 1 1.72 24.7800007 1.77 97.3499985 0.719737 0.694247 1.0 +3489 1 1.72 0.0 3.54 95.5800019 -0.958196 -0.286114 1.0 +3490 1 1.72 1.77 5.31 95.5800019 0.862543 0.505983 1.0 +3491 1 1.72 1.77 3.54 97.3499985 0.706402 0.707811 1.0 +3492 1 1.72 0.0 5.31 97.3499985 -0.987711 -0.156288 1.0 +3493 1 1.72 3.54 3.54 95.5800019 -0.7224 -0.691475 1.0 +3494 1 1.72 5.31 5.31 95.5800019 -0.122338 -0.992488 1.0 +3495 1 1.72 5.31 3.54 97.3499985 0.483284 0.875464 1.0 +3496 1 1.72 3.54 5.31 97.3499985 0.871599 -0.490219 1.0 +3497 1 1.72 7.0799999 3.54 95.5800019 -0.964386 -0.264499 1.0 +3498 1 1.72 8.8500004 5.31 95.5800019 0.692682 0.721243 1.0 +3499 1 1.72 8.8500004 3.54 97.3499985 -0.131564 0.991308 1.0 +3500 1 1.72 7.0799999 5.31 97.3499985 0.69403 -0.719946 1.0 +3501 1 1.72 10.6199999 3.54 95.5800019 0.835431 0.549595 1.0 +3502 1 1.72 12.3900004 5.31 95.5800019 -0.999509 0.0313386 1.0 +3503 1 1.72 12.3900004 3.54 97.3499985 -0.534715 -0.845033 1.0 +3504 1 1.72 10.6199999 5.31 97.3499985 -0.696317 -0.717735 1.0 +3505 1 1.72 14.1599999 3.54 95.5800019 -0.990629 0.136578 1.0 +3506 1 1.72 15.9300004 5.31 95.5800019 -0.348394 0.937348 1.0 +3507 1 1.72 15.9300004 3.54 97.3499985 -0.745208 0.666832 1.0 +3508 1 1.72 14.1599999 5.31 97.3499985 0.813799 0.581147 1.0 +3509 1 1.72 17.7000008 3.54 95.5800019 0.860438 0.509554 1.0 +3510 1 1.72 19.4699993 5.31 95.5800019 -0.583699 0.81197 1.0 +3511 1 1.72 19.4699993 3.54 97.3499985 0.474755 0.880118 1.0 +3512 1 1.72 17.7000008 5.31 97.3499985 -0.665528 0.746372 1.0 +3513 1 1.72 21.2399998 3.54 95.5800019 -0.669041 0.743225 1.0 +3514 1 1.72 23.0100002 5.31 95.5800019 0.970559 -0.240864 1.0 +3515 1 1.72 23.0100002 3.54 97.3499985 0.949365 -0.314176 1.0 +3516 1 1.72 21.2399998 5.31 97.3499985 -0.792313 0.610115 1.0 +3517 1 1.72 24.7800007 3.54 95.5800019 0.619413 -0.785066 1.0 +3518 1 1.72 26.5499993 5.31 95.5800019 -0.852538 0.522666 1.0 +3519 1 1.72 26.5499993 3.54 97.3499985 -0.627236 0.778829 1.0 +3520 1 1.72 24.7800007 5.31 97.3499985 0.926432 -0.376462 1.0 +3521 1 1.72 0.0 7.0799999 95.5800019 0.999072 -0.0430726 1.0 +3522 1 1.72 1.77 8.8500004 95.5800019 -0.623833 -0.781558 1.0 +3523 1 1.72 1.77 7.0799999 97.3499985 0.720231 -0.693735 1.0 +3524 1 1.72 0.0 8.8500004 97.3499985 -0.722808 0.691049 1.0 +3525 1 1.72 3.54 7.0799999 95.5800019 -0.98723 0.159301 1.0 +3526 1 1.72 5.31 8.8500004 95.5800019 0.826364 -0.563136 1.0 +3527 1 1.72 5.31 7.0799999 97.3499985 -0.787985 -0.615694 1.0 +3528 1 1.72 3.54 8.8500004 97.3499985 0.736807 -0.676103 1.0 +3529 1 1.72 7.0799999 7.0799999 95.5800019 -0.999045 -0.043699 1.0 +3530 1 1.72 8.8500004 8.8500004 95.5800019 -0.999881 -0.0154143 1.0 +3531 1 1.72 8.8500004 7.0799999 97.3499985 0.583685 0.81198 1.0 +3532 1 1.72 7.0799999 8.8500004 97.3499985 0.668561 -0.743657 1.0 +3533 1 1.72 10.6199999 7.0799999 95.5800019 -0.799632 0.60049 1.0 +3534 1 1.72 12.3900004 8.8500004 95.5800019 -0.611978 0.790875 1.0 +3535 1 1.72 12.3900004 7.0799999 97.3499985 0.558902 0.829234 1.0 +3536 1 1.72 10.6199999 8.8500004 97.3499985 0.992914 0.118834 1.0 +3537 1 1.72 14.1599999 7.0799999 95.5800019 -0.684918 -0.72862 1.0 +3538 1 1.72 15.9300004 8.8500004 95.5800019 -0.949949 0.312405 1.0 +3539 1 1.72 15.9300004 7.0799999 97.3499985 -0.583458 0.812143 1.0 +3540 1 1.72 14.1599999 8.8500004 97.3499985 -0.328994 -0.944332 1.0 +3541 1 1.72 17.7000008 7.0799999 95.5800019 0.982972 0.183757 1.0 +3542 1 1.72 19.4699993 8.8500004 95.5800019 -0.702083 -0.712095 1.0 +3543 1 1.72 19.4699993 7.0799999 97.3499985 0.876211 -0.481927 1.0 +3544 1 1.72 17.7000008 8.8500004 97.3499985 -0.941304 0.33756 1.0 +3545 1 1.72 21.2399998 7.0799999 95.5800019 -0.992382 0.123195 1.0 +3546 1 1.72 23.0100002 8.8500004 95.5800019 -0.467196 0.884154 1.0 +3547 1 1.72 23.0100002 7.0799999 97.3499985 -0.315007 0.949089 1.0 +3548 1 1.72 21.2399998 8.8500004 97.3499985 -0.514949 -0.857221 1.0 +3549 1 1.72 24.7800007 7.0799999 95.5800019 -0.113167 0.993576 1.0 +3550 1 1.72 26.5499993 8.8500004 95.5800019 -0.533866 -0.845569 1.0 +3551 1 1.72 26.5499993 7.0799999 97.3499985 -0.678415 -0.734679 1.0 +3552 1 1.72 24.7800007 8.8500004 97.3499985 0.783341 -0.621592 1.0 +3553 1 1.72 0.0 10.6199999 95.5800019 -0.0284462 0.999595 1.0 +3554 1 1.72 1.77 12.3900004 95.5800019 -0.718169 -0.695868 1.0 +3555 1 1.72 1.77 10.6199999 97.3499985 -0.967839 -0.25157 1.0 +3556 1 1.72 0.0 12.3900004 97.3499985 -0.87658 -0.481256 1.0 +3557 1 1.72 3.54 10.6199999 95.5800019 -0.722069 -0.691821 1.0 +3558 1 1.72 5.31 12.3900004 95.5800019 0.794521 0.607236 1.0 +3559 1 1.72 5.31 10.6199999 97.3499985 0.998818 0.0486132 1.0 +3560 1 1.72 3.54 12.3900004 97.3499985 0.409046 -0.912514 1.0 +3561 1 1.72 7.0799999 10.6199999 95.5800019 0.575554 -0.817763 1.0 +3562 1 1.72 8.8500004 12.3900004 95.5800019 0.524977 0.851116 1.0 +3563 1 1.72 8.8500004 10.6199999 97.3499985 0.99093 -0.134381 1.0 +3564 1 1.72 7.0799999 12.3900004 97.3499985 -0.732136 -0.681159 1.0 +3565 1 1.72 10.6199999 10.6199999 95.5800019 0.498792 0.866722 1.0 +3566 1 1.72 12.3900004 12.3900004 95.5800019 0.46749 0.883998 1.0 +3567 1 1.72 12.3900004 10.6199999 97.3499985 -0.518027 0.855364 1.0 +3568 1 1.72 10.6199999 12.3900004 97.3499985 0.474655 0.880172 1.0 +3569 1 1.72 14.1599999 10.6199999 95.5800019 0.985356 -0.17051 1.0 +3570 1 1.72 15.9300004 12.3900004 95.5800019 0.842644 -0.538472 1.0 +3571 1 1.72 15.9300004 10.6199999 97.3499985 0.672323 -0.740258 1.0 +3572 1 1.72 14.1599999 12.3900004 97.3499985 0.713104 -0.701059 1.0 +3573 1 1.72 17.7000008 10.6199999 95.5800019 -0.391523 0.920168 1.0 +3574 1 1.72 19.4699993 12.3900004 95.5800019 0.918791 0.394744 1.0 +3575 1 1.72 19.4699993 10.6199999 97.3499985 -0.939195 0.343383 1.0 +3576 1 1.72 17.7000008 12.3900004 97.3499985 0.239449 0.970909 1.0 +3577 1 1.72 21.2399998 10.6199999 95.5800019 -0.424875 -0.905252 1.0 +3578 1 1.72 23.0100002 12.3900004 95.5800019 -0.532199 0.84662 1.0 +3579 1 1.72 23.0100002 10.6199999 97.3499985 -0.305687 -0.952132 1.0 +3580 1 1.72 21.2399998 12.3900004 97.3499985 -0.1388 -0.99032 1.0 +3581 1 1.72 24.7800007 10.6199999 95.5800019 -0.788649 -0.614843 1.0 +3582 1 1.72 26.5499993 12.3900004 95.5800019 0.286249 -0.958155 1.0 +3583 1 1.72 26.5499993 10.6199999 97.3499985 0.743321 0.668935 1.0 +3584 1 1.72 24.7800007 12.3900004 97.3499985 -0.307151 -0.951661 1.0 +3585 1 1.72 0.0 0.0 99.1200028 0.97717 0.212461 1.0 +3586 1 1.72 1.77 1.77 99.1200028 -0.491936 -0.870631 1.0 +3587 1 1.72 1.77 0.0 100.8899994 -0.316674 0.948535 1.0 +3588 1 1.72 0.0 1.77 100.8899994 -0.042134 -0.999112 1.0 +3589 1 1.72 3.54 0.0 99.1200028 0.983919 0.178616 1.0 +3590 1 1.72 5.31 1.77 99.1200028 0.975333 0.220738 1.0 +3591 1 1.72 5.31 0.0 100.8899994 -0.961871 0.273504 1.0 +3592 1 1.72 3.54 1.77 100.8899994 0.836154 0.548495 1.0 +3593 1 1.72 7.0799999 0.0 99.1200028 -0.919923 0.392099 1.0 +3594 1 1.72 8.8500004 1.77 99.1200028 0.136485 0.990642 1.0 +3595 1 1.72 8.8500004 0.0 100.8899994 0.999617 0.0276635 1.0 +3596 1 1.72 7.0799999 1.77 100.8899994 0.641003 -0.767538 1.0 +3597 1 1.72 10.6199999 0.0 99.1200028 0.502392 0.86464 1.0 +3598 1 1.72 12.3900004 1.77 99.1200028 -0.751393 0.659855 1.0 +3599 1 1.72 12.3900004 0.0 100.8899994 0.555351 0.831616 1.0 +3600 1 1.72 10.6199999 1.77 100.8899994 0.927991 -0.372602 1.0 +3601 1 1.72 14.1599999 0.0 99.1200028 0.760951 0.648809 1.0 +3602 1 1.72 15.9300004 1.77 99.1200028 0.261953 0.965081 1.0 +3603 1 1.72 15.9300004 0.0 100.8899994 0.763384 -0.645945 1.0 +3604 1 1.72 14.1599999 1.77 100.8899994 -0.6624 0.74915 1.0 +3605 1 1.72 17.7000008 0.0 99.1200028 0.704781 0.709425 1.0 +3606 1 1.72 19.4699993 1.77 99.1200028 0.989433 -0.144987 1.0 +3607 1 1.72 19.4699993 0.0 100.8899994 -0.78694 -0.617029 1.0 +3608 1 1.72 17.7000008 1.77 100.8899994 0.934483 0.356008 1.0 +3609 1 1.72 21.2399998 0.0 99.1200028 0.867547 -0.497355 1.0 +3610 1 1.72 23.0100002 1.77 99.1200028 0.755939 -0.654642 1.0 +3611 1 1.72 23.0100002 0.0 100.8899994 -0.138166 0.990409 1.0 +3612 1 1.72 21.2399998 1.77 100.8899994 -0.714174 -0.699968 1.0 +3613 1 1.72 24.7800007 0.0 99.1200028 0.833283 0.552846 1.0 +3614 1 1.72 26.5499993 1.77 99.1200028 -0.743418 0.668827 1.0 +3615 1 1.72 26.5499993 0.0 100.8899994 -0.303156 0.952941 1.0 +3616 1 1.72 24.7800007 1.77 100.8899994 0.423099 -0.906083 1.0 +3617 1 1.72 0.0 3.54 99.1200028 0.73734 0.675522 1.0 +3618 1 1.72 1.77 5.31 99.1200028 -0.0577959 0.998328 1.0 +3619 1 1.72 1.77 3.54 100.8899994 -0.226225 -0.974075 1.0 +3620 1 1.72 0.0 5.31 100.8899994 0.473154 -0.88098 1.0 +3621 1 1.72 3.54 3.54 99.1200028 0.234345 -0.972153 1.0 +3622 1 1.72 5.31 5.31 99.1200028 0.755652 0.654973 1.0 +3623 1 1.72 5.31 3.54 100.8899994 0.267172 0.963649 1.0 +3624 1 1.72 3.54 5.31 100.8899994 -0.903747 0.428066 1.0 +3625 1 1.72 7.0799999 3.54 99.1200028 0.423355 0.905964 1.0 +3626 1 1.72 8.8500004 5.31 99.1200028 -0.330767 0.943712 1.0 +3627 1 1.72 8.8500004 3.54 100.8899994 0.96569 0.259699 1.0 +3628 1 1.72 7.0799999 5.31 100.8899994 0.706066 -0.708146 1.0 +3629 1 1.72 10.6199999 3.54 99.1200028 -0.672588 -0.740017 1.0 +3630 1 1.72 12.3900004 5.31 99.1200028 0.290661 -0.956826 1.0 +3631 1 1.72 12.3900004 3.54 100.8899994 -0.997349 -0.0727694 1.0 +3632 1 1.72 10.6199999 5.31 100.8899994 0.135865 -0.990727 1.0 +3633 1 1.72 14.1599999 3.54 99.1200028 -0.864768 0.502171 1.0 +3634 1 1.72 15.9300004 5.31 99.1200028 -0.652673 0.75764 1.0 +3635 1 1.72 15.9300004 3.54 100.8899994 0.967993 0.250976 1.0 +3636 1 1.72 14.1599999 5.31 100.8899994 0.709082 0.705126 1.0 +3637 1 1.72 17.7000008 3.54 99.1200028 0.772902 -0.634525 1.0 +3638 1 1.72 19.4699993 5.31 99.1200028 0.682809 0.730597 1.0 +3639 1 1.72 19.4699993 3.54 100.8899994 -0.991877 0.127205 1.0 +3640 1 1.72 17.7000008 5.31 100.8899994 0.248298 0.968684 1.0 +3641 1 1.72 21.2399998 3.54 99.1200028 -0.836717 0.547636 1.0 +3642 1 1.72 23.0100002 5.31 99.1200028 0.183011 0.983111 1.0 +3643 1 1.72 23.0100002 3.54 100.8899994 0.99835 -0.0574165 1.0 +3644 1 1.72 21.2399998 5.31 100.8899994 -0.575166 0.818036 1.0 +3645 1 1.72 24.7800007 3.54 99.1200028 -0.133479 -0.991052 1.0 +3646 1 1.72 26.5499993 5.31 99.1200028 0.817013 0.576619 1.0 +3647 1 1.72 26.5499993 3.54 100.8899994 0.247452 0.9689 1.0 +3648 1 1.72 24.7800007 5.31 100.8899994 0.671904 0.740638 1.0 +3649 1 1.72 0.0 7.0799999 99.1200028 0.432415 0.901674 1.0 +3650 1 1.72 1.77 8.8500004 99.1200028 0.47826 0.878218 1.0 +3651 1 1.72 1.77 7.0799999 100.8899994 0.318643 0.947875 1.0 +3652 1 1.72 0.0 8.8500004 100.8899994 0.685521 -0.728053 1.0 +3653 1 1.72 3.54 7.0799999 99.1200028 -0.501221 -0.865319 1.0 +3654 1 1.72 5.31 8.8500004 99.1200028 0.565525 0.824731 1.0 +3655 1 1.72 5.31 7.0799999 100.8899994 0.413155 0.910661 1.0 +3656 1 1.72 3.54 8.8500004 100.8899994 -0.799363 0.600848 1.0 +3657 1 1.72 7.0799999 7.0799999 99.1200028 0.406695 -0.913564 1.0 +3658 1 1.72 8.8500004 8.8500004 99.1200028 0.960337 0.278841 1.0 +3659 1 1.72 8.8500004 7.0799999 100.8899994 0.5313 -0.847184 1.0 +3660 1 1.72 7.0799999 8.8500004 100.8899994 0.0233693 -0.999727 1.0 +3661 1 1.72 10.6199999 7.0799999 99.1200028 0.703806 0.710392 1.0 +3662 1 1.72 12.3900004 8.8500004 99.1200028 -0.493613 0.869682 1.0 +3663 1 1.72 12.3900004 7.0799999 100.8899994 -0.530127 0.847918 1.0 +3664 1 1.72 10.6199999 8.8500004 100.8899994 0.726698 0.686957 1.0 +3665 1 1.72 14.1599999 7.0799999 99.1200028 0.935166 0.354211 1.0 +3666 1 1.72 15.9300004 8.8500004 99.1200028 -0.357414 0.933946 1.0 +3667 1 1.72 15.9300004 7.0799999 100.8899994 -0.518049 -0.855351 1.0 +3668 1 1.72 14.1599999 8.8500004 100.8899994 -0.00805189 -0.999968 1.0 +3669 1 1.72 17.7000008 7.0799999 99.1200028 -0.999522 -0.030916 1.0 +3670 1 1.72 19.4699993 8.8500004 99.1200028 -0.223607 -0.974679 1.0 +3671 1 1.72 19.4699993 7.0799999 100.8899994 0.747823 0.663898 1.0 +3672 1 1.72 17.7000008 8.8500004 100.8899994 0.588681 0.808365 1.0 +3673 1 1.72 21.2399998 7.0799999 99.1200028 -0.583027 -0.812453 1.0 +3674 1 1.72 23.0100002 8.8500004 99.1200028 0.147351 0.989084 1.0 +3675 1 1.72 23.0100002 7.0799999 100.8899994 0.79704 0.603927 1.0 +3676 1 1.72 21.2399998 8.8500004 100.8899994 -0.690748 0.723095 1.0 +3677 1 1.72 24.7800007 7.0799999 99.1200028 -0.588036 0.808834 1.0 +3678 1 1.72 26.5499993 8.8500004 99.1200028 0.997417 -0.0718244 1.0 +3679 1 1.72 26.5499993 7.0799999 100.8899994 0.863853 -0.503743 1.0 +3680 1 1.72 24.7800007 8.8500004 100.8899994 -0.384813 0.922995 1.0 +3681 1 1.72 0.0 10.6199999 99.1200028 -0.971507 0.237011 1.0 +3682 1 1.72 1.77 12.3900004 99.1200028 -0.954999 0.296609 1.0 +3683 1 1.72 1.77 10.6199999 100.8899994 0.721156 0.692773 1.0 +3684 1 1.72 0.0 12.3900004 100.8899994 0.904961 -0.425495 1.0 +3685 1 1.72 3.54 10.6199999 99.1200028 0.995518 -0.0945747 1.0 +3686 1 1.72 5.31 12.3900004 99.1200028 0.979656 0.200682 1.0 +3687 1 1.72 5.31 10.6199999 100.8899994 0.999999 -0.00111665 1.0 +3688 1 1.72 3.54 12.3900004 100.8899994 0.927711 0.373298 1.0 +3689 1 1.72 7.0799999 10.6199999 99.1200028 0.849534 0.527533 1.0 +3690 1 1.72 8.8500004 12.3900004 99.1200028 0.829966 0.557813 1.0 +3691 1 1.72 8.8500004 10.6199999 100.8899994 0.998504 0.05467 1.0 +3692 1 1.72 7.0799999 12.3900004 100.8899994 -0.303018 0.952985 1.0 +3693 1 1.72 10.6199999 10.6199999 99.1200028 0.422256 0.906476 1.0 +3694 1 1.72 12.3900004 12.3900004 99.1200028 -0.967191 -0.254051 1.0 +3695 1 1.72 12.3900004 10.6199999 100.8899994 0.912273 -0.409583 1.0 +3696 1 1.72 10.6199999 12.3900004 100.8899994 -0.906927 0.421289 1.0 +3697 1 1.72 14.1599999 10.6199999 99.1200028 0.154829 -0.987941 1.0 +3698 1 1.72 15.9300004 12.3900004 99.1200028 0.910839 -0.412763 1.0 +3699 1 1.72 15.9300004 10.6199999 100.8899994 0.494968 0.868911 1.0 +3700 1 1.72 14.1599999 12.3900004 100.8899994 0.951636 0.307227 1.0 +3701 1 1.72 17.7000008 10.6199999 99.1200028 0.674183 0.738564 1.0 +3702 1 1.72 19.4699993 12.3900004 99.1200028 -0.90164 0.432488 1.0 +3703 1 1.72 19.4699993 10.6199999 100.8899994 0.909317 0.416104 1.0 +3704 1 1.72 17.7000008 12.3900004 100.8899994 0.61203 0.790835 1.0 +3705 1 1.72 21.2399998 10.6199999 99.1200028 0.818038 0.575164 1.0 +3706 1 1.72 23.0100002 12.3900004 99.1200028 -0.66199 0.749513 1.0 +3707 1 1.72 23.0100002 10.6199999 100.8899994 0.711272 -0.702917 1.0 +3708 1 1.72 21.2399998 12.3900004 100.8899994 0.707629 0.706584 1.0 +3709 1 1.72 24.7800007 10.6199999 99.1200028 0.63067 0.776051 1.0 +3710 1 1.72 26.5499993 12.3900004 99.1200028 0.999835 -0.0181446 1.0 +3711 1 1.72 26.5499993 10.6199999 100.8899994 -0.538288 0.842761 1.0 +3712 1 1.72 24.7800007 12.3900004 100.8899994 0.758648 0.651501 1.0 +3713 1 1.72 0.0 0.0 102.6600037 0.261802 -0.965122 1.0 +3714 1 1.72 1.77 1.77 102.6600037 0.895976 0.444103 1.0 +3715 1 1.72 1.77 0.0 104.4300003 -0.990287 -0.139036 1.0 +3716 1 1.72 0.0 1.77 104.4300003 -0.916591 -0.399826 1.0 +3717 1 1.72 3.54 0.0 102.6600037 -0.683761 0.729706 1.0 +3718 1 1.72 5.31 1.77 102.6600037 -0.846298 -0.53271 1.0 +3719 1 1.72 5.31 0.0 104.4300003 -0.965516 -0.260343 1.0 +3720 1 1.72 3.54 1.77 104.4300003 0.541953 -0.840409 1.0 +3721 1 1.72 7.0799999 0.0 102.6600037 -0.727005 0.686632 1.0 +3722 1 1.72 8.8500004 1.77 102.6600037 0.999928 -0.0120322 1.0 +3723 1 1.72 8.8500004 0.0 104.4300003 0.840421 0.541935 1.0 +3724 1 1.72 7.0799999 1.77 104.4300003 0.880713 -0.473651 1.0 +3725 1 1.72 10.6199999 0.0 102.6600037 0.661602 0.749855 1.0 +3726 1 1.72 12.3900004 1.77 102.6600037 0.993279 -0.115742 1.0 +3727 1 1.72 12.3900004 0.0 104.4300003 -0.859574 0.511012 1.0 +3728 1 1.72 10.6199999 1.77 104.4300003 -0.775374 -0.631503 1.0 +3729 1 1.72 14.1599999 0.0 102.6600037 -0.966545 0.256497 1.0 +3730 1 1.72 15.9300004 1.77 102.6600037 -0.248109 0.968732 1.0 +3731 1 1.72 15.9300004 0.0 104.4300003 0.926382 0.376585 1.0 +3732 1 1.72 14.1599999 1.77 104.4300003 -0.542902 -0.839796 1.0 +3733 1 1.72 17.7000008 0.0 102.6600037 -0.983675 -0.179953 1.0 +3734 1 1.72 19.4699993 1.77 102.6600037 -0.813589 -0.58144 1.0 +3735 1 1.72 19.4699993 0.0 104.4300003 0.184724 -0.98279 1.0 +3736 1 1.72 17.7000008 1.77 104.4300003 -0.368999 0.92943 1.0 +3737 1 1.72 21.2399998 0.0 102.6600037 0.609569 -0.792733 1.0 +3738 1 1.72 23.0100002 1.77 102.6600037 -0.177571 -0.984108 1.0 +3739 1 1.72 23.0100002 0.0 104.4300003 0.879645 -0.475631 1.0 +3740 1 1.72 21.2399998 1.77 104.4300003 -0.204859 -0.978791 1.0 +3741 1 1.72 24.7800007 0.0 102.6600037 0.0905535 -0.995892 1.0 +3742 1 1.72 26.5499993 1.77 102.6600037 -0.610039 0.792371 1.0 +3743 1 1.72 26.5499993 0.0 104.4300003 0.998 -0.0632127 1.0 +3744 1 1.72 24.7800007 1.77 104.4300003 0.0830033 0.996549 1.0 +3745 1 1.72 0.0 3.54 102.6600037 0.0738558 0.997269 1.0 +3746 1 1.72 1.77 5.31 102.6600037 -0.934583 -0.355746 1.0 +3747 1 1.72 1.77 3.54 104.4300003 0.852763 -0.522297 1.0 +3748 1 1.72 0.0 5.31 104.4300003 -0.75275 0.658306 1.0 +3749 1 1.72 3.54 3.54 102.6600037 -0.508145 0.861271 1.0 +3750 1 1.72 5.31 5.31 102.6600037 0.595444 0.803397 1.0 +3751 1 1.72 5.31 3.54 104.4300003 -0.695896 -0.718143 1.0 +3752 1 1.72 3.54 5.31 104.4300003 0.414753 0.909934 1.0 +3753 1 1.72 7.0799999 3.54 102.6600037 0.915702 -0.401857 1.0 +3754 1 1.72 8.8500004 5.31 102.6600037 0.852196 0.523223 1.0 +3755 1 1.72 8.8500004 3.54 104.4300003 -0.38046 -0.924798 1.0 +3756 1 1.72 7.0799999 5.31 104.4300003 0.995665 0.0930095 1.0 +3757 1 1.72 10.6199999 3.54 102.6600037 -0.436227 -0.899837 1.0 +3758 1 1.72 12.3900004 5.31 102.6600037 -0.793826 0.608145 1.0 +3759 1 1.72 12.3900004 3.54 104.4300003 0.600119 -0.79991 1.0 +3760 1 1.72 10.6199999 5.31 104.4300003 0.450233 0.892911 1.0 +3761 1 1.72 14.1599999 3.54 102.6600037 0.785778 -0.618509 1.0 +3762 1 1.72 15.9300004 5.31 102.6600037 0.00331214 -0.999995 1.0 +3763 1 1.72 15.9300004 3.54 104.4300003 0.363731 0.931504 1.0 +3764 1 1.72 14.1599999 5.31 104.4300003 -0.615859 -0.787857 1.0 +3765 1 1.72 17.7000008 3.54 102.6600037 0.674207 -0.738542 1.0 +3766 1 1.72 19.4699993 5.31 102.6600037 -0.280048 -0.959986 1.0 +3767 1 1.72 19.4699993 3.54 104.4300003 -0.920669 0.390344 1.0 +3768 1 1.72 17.7000008 5.31 104.4300003 -0.839313 0.543648 1.0 +3769 1 1.72 21.2399998 3.54 102.6600037 0.262525 0.964925 1.0 +3770 1 1.72 23.0100002 5.31 102.6600037 -0.151071 0.988523 1.0 +3771 1 1.72 23.0100002 3.54 104.4300003 0.648389 -0.761309 1.0 +3772 1 1.72 21.2399998 5.31 104.4300003 -0.396848 -0.917884 1.0 +3773 1 1.72 24.7800007 3.54 102.6600037 -0.884376 -0.466775 1.0 +3774 1 1.72 26.5499993 5.31 102.6600037 -0.00172865 0.999999 1.0 +3775 1 1.72 26.5499993 3.54 104.4300003 0.982204 -0.18782 1.0 +3776 1 1.72 24.7800007 5.31 104.4300003 -0.318426 -0.947948 1.0 +3777 1 1.72 0.0 7.0799999 102.6600037 0.996844 -0.0793914 1.0 +3778 1 1.72 1.77 8.8500004 102.6600037 -0.84829 0.529532 1.0 +3779 1 1.72 1.77 7.0799999 104.4300003 -0.0473994 0.998876 1.0 +3780 1 1.72 0.0 8.8500004 104.4300003 0.142182 -0.989841 1.0 +3781 1 1.72 3.54 7.0799999 102.6600037 0.667596 -0.744523 1.0 +3782 1 1.72 5.31 8.8500004 102.6600037 -0.51325 -0.858239 1.0 +3783 1 1.72 5.31 7.0799999 104.4300003 -0.827915 0.560854 1.0 +3784 1 1.72 3.54 8.8500004 104.4300003 0.118515 -0.992952 1.0 +3785 1 1.72 7.0799999 7.0799999 102.6600037 -0.929207 0.36956 1.0 +3786 1 1.72 8.8500004 8.8500004 102.6600037 -0.668806 -0.743437 1.0 +3787 1 1.72 8.8500004 7.0799999 104.4300003 0.375016 0.927018 1.0 +3788 1 1.72 7.0799999 8.8500004 104.4300003 0.559697 0.828697 1.0 +3789 1 1.72 10.6199999 7.0799999 102.6600037 0.563142 0.82636 1.0 +3790 1 1.72 12.3900004 8.8500004 102.6600037 -0.116541 -0.993186 1.0 +3791 1 1.72 12.3900004 7.0799999 104.4300003 -0.190442 0.981698 1.0 +3792 1 1.72 10.6199999 8.8500004 104.4300003 0.981466 0.191638 1.0 +3793 1 1.72 14.1599999 7.0799999 102.6600037 0.772871 -0.634564 1.0 +3794 1 1.72 15.9300004 8.8500004 102.6600037 0.468225 -0.883609 1.0 +3795 1 1.72 15.9300004 7.0799999 104.4300003 0.677823 -0.735225 1.0 +3796 1 1.72 14.1599999 8.8500004 104.4300003 0.00946717 -0.999955 1.0 +3797 1 1.72 17.7000008 7.0799999 102.6600037 -0.0755188 0.997144 1.0 +3798 1 1.72 19.4699993 8.8500004 102.6600037 -0.996284 0.0861287 1.0 +3799 1 1.72 19.4699993 7.0799999 104.4300003 0.185216 0.982698 1.0 +3800 1 1.72 17.7000008 8.8500004 104.4300003 0.726537 0.687127 1.0 +3801 1 1.72 21.2399998 7.0799999 102.6600037 0.921165 0.389173 1.0 +3802 1 1.72 23.0100002 8.8500004 102.6600037 -0.162526 0.986704 1.0 +3803 1 1.72 23.0100002 7.0799999 104.4300003 -0.360703 -0.932681 1.0 +3804 1 1.72 21.2399998 8.8500004 104.4300003 -0.972474 0.233011 1.0 +3805 1 1.72 24.7800007 7.0799999 102.6600037 -0.783892 0.620897 1.0 +3806 1 1.72 26.5499993 8.8500004 102.6600037 -0.955162 0.296083 1.0 +3807 1 1.72 26.5499993 7.0799999 104.4300003 0.297276 0.954792 1.0 +3808 1 1.72 24.7800007 8.8500004 104.4300003 0.89877 -0.43842 1.0 +3809 1 1.72 0.0 10.6199999 102.6600037 -0.425419 -0.904997 1.0 +3810 1 1.72 1.77 12.3900004 102.6600037 -0.999828 0.018569 1.0 +3811 1 1.72 1.77 10.6199999 104.4300003 0.549137 -0.835733 1.0 +3812 1 1.72 0.0 12.3900004 104.4300003 -0.674928 0.737884 1.0 +3813 1 1.72 3.54 10.6199999 102.6600037 -0.605461 0.795875 1.0 +3814 1 1.72 5.31 12.3900004 102.6600037 0.661456 -0.749984 1.0 +3815 1 1.72 5.31 10.6199999 104.4300003 0.890713 0.454566 1.0 +3816 1 1.72 3.54 12.3900004 104.4300003 -0.701967 0.712209 1.0 +3817 1 1.72 7.0799999 10.6199999 102.6600037 0.399668 0.91666 1.0 +3818 1 1.72 8.8500004 12.3900004 102.6600037 0.0501901 -0.99874 1.0 +3819 1 1.72 8.8500004 10.6199999 104.4300003 -0.502917 -0.864335 1.0 +3820 1 1.72 7.0799999 12.3900004 104.4300003 -0.0505591 0.998721 1.0 +3821 1 1.72 10.6199999 10.6199999 102.6600037 0.341731 -0.939798 1.0 +3822 1 1.72 12.3900004 12.3900004 102.6600037 -0.570473 -0.821316 1.0 +3823 1 1.72 12.3900004 10.6199999 104.4300003 -0.655416 -0.755268 1.0 +3824 1 1.72 10.6199999 12.3900004 104.4300003 -0.454928 -0.890528 1.0 +3825 1 1.72 14.1599999 10.6199999 102.6600037 0.946298 -0.323294 1.0 +3826 1 1.72 15.9300004 12.3900004 102.6600037 0.710927 -0.703266 1.0 +3827 1 1.72 15.9300004 10.6199999 104.4300003 0.987385 -0.158335 1.0 +3828 1 1.72 14.1599999 12.3900004 104.4300003 -0.918791 -0.394745 1.0 +3829 1 1.72 17.7000008 10.6199999 102.6600037 -0.98869 -0.149977 1.0 +3830 1 1.72 19.4699993 12.3900004 102.6600037 -0.731722 0.681603 1.0 +3831 1 1.72 19.4699993 10.6199999 104.4300003 -0.0513678 -0.99868 1.0 +3832 1 1.72 17.7000008 12.3900004 104.4300003 0.993719 0.111908 1.0 +3833 1 1.72 21.2399998 10.6199999 102.6600037 -0.651626 0.75854 1.0 +3834 1 1.72 23.0100002 12.3900004 102.6600037 0.28526 -0.95845 1.0 +3835 1 1.72 23.0100002 10.6199999 104.4300003 0.973541 -0.228514 1.0 +3836 1 1.72 21.2399998 12.3900004 104.4300003 -0.909632 0.415415 1.0 +3837 1 1.72 24.7800007 10.6199999 102.6600037 0.553685 0.832726 1.0 +3838 1 1.72 26.5499993 12.3900004 102.6600037 0.339879 0.940469 1.0 +3839 1 1.72 26.5499993 10.6199999 104.4300003 -0.843075 -0.537795 1.0 +3840 1 1.72 24.7800007 12.3900004 104.4300003 -0.456334 -0.889809 1.0 +3841 1 1.72 0.0 0.0 106.199997 0.960307 0.278946 1.0 +3842 1 1.72 1.77 1.77 106.199997 -0.927242 -0.374463 1.0 +3843 1 1.72 1.77 0.0 107.9700012 0.0476906 -0.998862 1.0 +3844 1 1.72 0.0 1.77 107.9700012 -0.792381 -0.610027 1.0 +3845 1 1.72 3.54 0.0 106.199997 0.336423 -0.941711 1.0 +3846 1 1.72 5.31 1.77 106.199997 0.21866 0.975801 1.0 +3847 1 1.72 5.31 0.0 107.9700012 -0.707482 -0.706732 1.0 +3848 1 1.72 3.54 1.77 107.9700012 -0.50396 -0.863727 1.0 +3849 1 1.72 7.0799999 0.0 106.199997 0.533776 -0.845626 1.0 +3850 1 1.72 8.8500004 1.77 106.199997 0.978567 0.205927 1.0 +3851 1 1.72 8.8500004 0.0 107.9700012 -0.898709 0.438545 1.0 +3852 1 1.72 7.0799999 1.77 107.9700012 0.962017 -0.272991 1.0 +3853 1 1.72 10.6199999 0.0 106.199997 0.856909 -0.515467 1.0 +3854 1 1.72 12.3900004 1.77 106.199997 -0.543571 0.839363 1.0 +3855 1 1.72 12.3900004 0.0 107.9700012 -0.919013 -0.394228 1.0 +3856 1 1.72 10.6199999 1.77 107.9700012 0.0773071 -0.997007 1.0 +3857 1 1.72 14.1599999 0.0 106.199997 0.987897 -0.155108 1.0 +3858 1 1.72 15.9300004 1.77 106.199997 0.98567 -0.168685 1.0 +3859 1 1.72 15.9300004 0.0 107.9700012 -0.846 0.533182 1.0 +3860 1 1.72 14.1599999 1.77 107.9700012 0.795165 -0.606394 1.0 +3861 1 1.72 17.7000008 0.0 106.199997 -0.853256 0.521493 1.0 +3862 1 1.72 19.4699993 1.77 106.199997 -0.448664 0.8937 1.0 +3863 1 1.72 19.4699993 0.0 107.9700012 -0.897491 -0.441032 1.0 +3864 1 1.72 17.7000008 1.77 107.9700012 -0.250258 0.968179 1.0 +3865 1 1.72 21.2399998 0.0 106.199997 -0.0561306 0.998423 1.0 +3866 1 1.72 23.0100002 1.77 106.199997 0.999158 0.0410207 1.0 +3867 1 1.72 23.0100002 0.0 107.9700012 0.978905 -0.204318 1.0 +3868 1 1.72 21.2399998 1.77 107.9700012 -0.999309 0.0371704 1.0 +3869 1 1.72 24.7800007 0.0 106.199997 -0.972802 0.231639 1.0 +3870 1 1.72 26.5499993 1.77 106.199997 0.150185 -0.988658 1.0 +3871 1 1.72 26.5499993 0.0 107.9700012 -0.0434668 0.999055 1.0 +3872 1 1.72 24.7800007 1.77 107.9700012 -0.622679 -0.782478 1.0 +3873 1 1.72 0.0 3.54 106.199997 -0.328441 -0.944525 1.0 +3874 1 1.72 1.77 5.31 106.199997 0.695205 0.718812 1.0 +3875 1 1.72 1.77 3.54 107.9700012 -0.581661 -0.813431 1.0 +3876 1 1.72 0.0 5.31 107.9700012 0.492607 0.870252 1.0 +3877 1 1.72 3.54 3.54 106.199997 -0.979431 -0.201779 1.0 +3878 1 1.72 5.31 5.31 106.199997 -0.016852 -0.999858 1.0 +3879 1 1.72 5.31 3.54 107.9700012 0.325487 0.945547 1.0 +3880 1 1.72 3.54 5.31 107.9700012 0.973924 -0.226873 1.0 +3881 1 1.72 7.0799999 3.54 106.199997 -0.996659 0.0816776 1.0 +3882 1 1.72 8.8500004 5.31 106.199997 -0.716455 0.697633 1.0 +3883 1 1.72 8.8500004 3.54 107.9700012 0.999776 -0.0211478 1.0 +3884 1 1.72 7.0799999 5.31 107.9700012 -0.562575 0.826746 1.0 +3885 1 1.72 10.6199999 3.54 106.199997 -0.950363 0.311143 1.0 +3886 1 1.72 12.3900004 5.31 106.199997 -0.461977 0.886892 1.0 +3887 1 1.72 12.3900004 3.54 107.9700012 0.741696 -0.670736 1.0 +3888 1 1.72 10.6199999 5.31 107.9700012 0.208347 -0.978055 1.0 +3889 1 1.72 14.1599999 3.54 106.199997 0.299716 -0.954028 1.0 +3890 1 1.72 15.9300004 5.31 106.199997 0.732409 0.680865 1.0 +3891 1 1.72 15.9300004 3.54 107.9700012 -0.868334 0.49598 1.0 +3892 1 1.72 14.1599999 5.31 107.9700012 0.861322 -0.50806 1.0 +3893 1 1.72 17.7000008 3.54 106.199997 0.902595 0.43049 1.0 +3894 1 1.72 19.4699993 5.31 106.199997 -0.766049 0.642782 1.0 +3895 1 1.72 19.4699993 3.54 107.9700012 -0.116451 0.993196 1.0 +3896 1 1.72 17.7000008 5.31 107.9700012 -0.834837 0.550498 1.0 +3897 1 1.72 21.2399998 3.54 106.199997 -0.717114 -0.696956 1.0 +3898 1 1.72 23.0100002 5.31 106.199997 -0.968487 0.249064 1.0 +3899 1 1.72 23.0100002 3.54 107.9700012 0.710185 0.704015 1.0 +3900 1 1.72 21.2399998 5.31 107.9700012 0.601973 -0.798516 1.0 +3901 1 1.72 24.7800007 3.54 106.199997 -0.847688 -0.530495 1.0 +3902 1 1.72 26.5499993 5.31 106.199997 0.162678 0.986679 1.0 +3903 1 1.72 26.5499993 3.54 107.9700012 0.746444 -0.665448 1.0 +3904 1 1.72 24.7800007 5.31 107.9700012 0.527194 -0.849745 1.0 +3905 1 1.72 0.0 7.0799999 106.199997 -0.0963276 -0.99535 1.0 +3906 1 1.72 1.77 8.8500004 106.199997 -0.543142 0.839641 1.0 +3907 1 1.72 1.77 7.0799999 107.9700012 -0.719015 -0.694994 1.0 +3908 1 1.72 0.0 8.8500004 107.9700012 0.447568 0.89425 1.0 +3909 1 1.72 3.54 7.0799999 106.199997 -0.60873 0.793377 1.0 +3910 1 1.72 5.31 8.8500004 106.199997 0.158682 0.98733 1.0 +3911 1 1.72 5.31 7.0799999 107.9700012 0.693748 -0.720218 1.0 +3912 1 1.72 3.54 8.8500004 107.9700012 0.107307 0.994226 1.0 +3913 1 1.72 7.0799999 7.0799999 106.199997 -0.0720405 0.997402 1.0 +3914 1 1.72 8.8500004 8.8500004 106.199997 -0.361666 0.932308 1.0 +3915 1 1.72 8.8500004 7.0799999 107.9700012 0.986552 0.163449 1.0 +3916 1 1.72 7.0799999 8.8500004 107.9700012 0.868363 0.495929 1.0 +3917 1 1.72 10.6199999 7.0799999 106.199997 0.733777 -0.67939 1.0 +3918 1 1.72 12.3900004 8.8500004 106.199997 -0.652751 -0.757573 1.0 +3919 1 1.72 12.3900004 7.0799999 107.9700012 -0.438125 -0.898914 1.0 +3920 1 1.72 10.6199999 8.8500004 107.9700012 0.707682 -0.706531 1.0 +3921 1 1.72 14.1599999 7.0799999 106.199997 -0.53277 0.84626 1.0 +3922 1 1.72 15.9300004 8.8500004 106.199997 -0.46678 -0.884373 1.0 +3923 1 1.72 15.9300004 7.0799999 107.9700012 0.934522 -0.355904 1.0 +3924 1 1.72 14.1599999 8.8500004 107.9700012 -0.965506 -0.260382 1.0 +3925 1 1.72 17.7000008 7.0799999 106.199997 0.730079 -0.683363 1.0 +3926 1 1.72 19.4699993 8.8500004 106.199997 0.660283 0.751017 1.0 +3927 1 1.72 19.4699993 7.0799999 107.9700012 0.475568 0.879679 1.0 +3928 1 1.72 17.7000008 8.8500004 107.9700012 0.140789 0.99004 1.0 +3929 1 1.72 21.2399998 7.0799999 106.199997 -0.748472 -0.663166 1.0 +3930 1 1.72 23.0100002 8.8500004 106.199997 0.391139 0.920331 1.0 +3931 1 1.72 23.0100002 7.0799999 107.9700012 -0.199604 0.979877 1.0 +3932 1 1.72 21.2399998 8.8500004 107.9700012 0.735837 0.677159 1.0 +3933 1 1.72 24.7800007 7.0799999 106.199997 -0.999983 0.0058278 1.0 +3934 1 1.72 26.5499993 8.8500004 106.199997 0.689325 -0.724452 1.0 +3935 1 1.72 26.5499993 7.0799999 107.9700012 0.192712 -0.981255 1.0 +3936 1 1.72 24.7800007 8.8500004 107.9700012 0.999924 0.0123622 1.0 +3937 1 1.72 0.0 10.6199999 106.199997 -0.612019 -0.790843 1.0 +3938 1 1.72 1.77 12.3900004 106.199997 -0.516218 0.856458 1.0 +3939 1 1.72 1.77 10.6199999 107.9700012 0.799726 -0.600365 1.0 +3940 1 1.72 0.0 12.3900004 107.9700012 0.494981 -0.868904 1.0 +3941 1 1.72 3.54 10.6199999 106.199997 -0.905805 0.423696 1.0 +3942 1 1.72 5.31 12.3900004 106.199997 -0.598522 -0.801106 1.0 +3943 1 1.72 5.31 10.6199999 107.9700012 -0.753793 0.657112 1.0 +3944 1 1.72 3.54 12.3900004 107.9700012 0.973375 -0.22922 1.0 +3945 1 1.72 7.0799999 10.6199999 106.199997 0.506557 -0.862206 1.0 +3946 1 1.72 8.8500004 12.3900004 106.199997 0.985276 -0.170969 1.0 +3947 1 1.72 8.8500004 10.6199999 107.9700012 -0.313318 -0.949648 1.0 +3948 1 1.72 7.0799999 12.3900004 107.9700012 -0.589613 0.807686 1.0 +3949 1 1.72 10.6199999 10.6199999 106.199997 0.375174 -0.926955 1.0 +3950 1 1.72 12.3900004 12.3900004 106.199997 -0.979354 0.202153 1.0 +3951 1 1.72 12.3900004 10.6199999 107.9700012 -0.840759 -0.541409 1.0 +3952 1 1.72 10.6199999 12.3900004 107.9700012 -0.835765 -0.549088 1.0 +3953 1 1.72 14.1599999 10.6199999 106.199997 0.878717 -0.477343 1.0 +3954 1 1.72 15.9300004 12.3900004 106.199997 0.98514 -0.171756 1.0 +3955 1 1.72 15.9300004 10.6199999 107.9700012 -0.708064 0.706148 1.0 +3956 1 1.72 14.1599999 12.3900004 107.9700012 -0.626906 -0.779095 1.0 +3957 1 1.72 17.7000008 10.6199999 106.199997 0.95746 0.288566 1.0 +3958 1 1.72 19.4699993 12.3900004 106.199997 -0.915968 0.401251 1.0 +3959 1 1.72 19.4699993 10.6199999 107.9700012 0.76193 -0.64766 1.0 +3960 1 1.72 17.7000008 12.3900004 107.9700012 0.838295 0.545216 1.0 +3961 1 1.72 21.2399998 10.6199999 106.199997 -0.615611 0.78805 1.0 +3962 1 1.72 23.0100002 12.3900004 106.199997 0.929118 0.369784 1.0 +3963 1 1.72 23.0100002 10.6199999 107.9700012 0.996543 0.0830754 1.0 +3964 1 1.72 21.2399998 12.3900004 107.9700012 -0.63503 -0.772487 1.0 +3965 1 1.72 24.7800007 10.6199999 106.199997 -0.961555 0.274614 1.0 +3966 1 1.72 26.5499993 12.3900004 106.199997 0.573015 -0.819545 1.0 +3967 1 1.72 26.5499993 10.6199999 107.9700012 -0.938459 -0.34539 1.0 +3968 1 1.72 24.7800007 12.3900004 107.9700012 0.956815 -0.290699 1.0 +3969 1 1.72 0.0 0.0 109.7399979 -0.999999 -0.00129561 1.0 +3970 1 1.72 1.77 1.77 109.7399979 0.557819 -0.829963 1.0 +3971 1 1.72 1.77 0.0 111.5100022 -0.544056 -0.839049 1.0 +3972 1 1.72 0.0 1.77 111.5100022 0.98669 -0.162615 1.0 +3973 1 1.72 3.54 0.0 109.7399979 -0.564987 0.8251 1.0 +3974 1 1.72 5.31 1.77 109.7399979 -0.504612 0.863346 1.0 +3975 1 1.72 5.31 0.0 111.5100022 0.282509 0.959265 1.0 +3976 1 1.72 3.54 1.77 111.5100022 0.306493 -0.951873 1.0 +3977 1 1.72 7.0799999 0.0 109.7399979 -0.873733 -0.486405 1.0 +3978 1 1.72 8.8500004 1.77 109.7399979 0.972973 -0.230918 1.0 +3979 1 1.72 8.8500004 0.0 111.5100022 0.996378 -0.0850313 1.0 +3980 1 1.72 7.0799999 1.77 111.5100022 -0.183381 -0.983042 1.0 +3981 1 1.72 10.6199999 0.0 109.7399979 -0.434613 0.900617 1.0 +3982 1 1.72 12.3900004 1.77 109.7399979 -0.86129 -0.508113 1.0 +3983 1 1.72 12.3900004 0.0 111.5100022 0.0746769 -0.997208 1.0 +3984 1 1.72 10.6199999 1.77 111.5100022 0.0399015 -0.999204 1.0 +3985 1 1.72 14.1599999 0.0 109.7399979 0.37973 -0.925098 1.0 +3986 1 1.72 15.9300004 1.77 109.7399979 -0.691936 0.721959 1.0 +3987 1 1.72 15.9300004 0.0 111.5100022 -0.858404 0.512974 1.0 +3988 1 1.72 14.1599999 1.77 111.5100022 0.799193 0.601075 1.0 +3989 1 1.72 17.7000008 0.0 109.7399979 0.279409 0.960172 1.0 +3990 1 1.72 19.4699993 1.77 109.7399979 0.999733 -0.0231141 1.0 +3991 1 1.72 19.4699993 0.0 111.5100022 -0.796452 -0.604702 1.0 +3992 1 1.72 17.7000008 1.77 111.5100022 0.343068 0.93931 1.0 +3993 1 1.72 21.2399998 0.0 109.7399979 -0.78901 -0.614381 1.0 +3994 1 1.72 23.0100002 1.77 109.7399979 0.37331 -0.927706 1.0 +3995 1 1.72 23.0100002 0.0 111.5100022 0.834787 0.550573 1.0 +3996 1 1.72 21.2399998 1.77 111.5100022 0.307436 -0.951569 1.0 +3997 1 1.72 24.7800007 0.0 109.7399979 -0.526179 0.850374 1.0 +3998 1 1.72 26.5499993 1.77 109.7399979 -0.23104 -0.972944 1.0 +3999 1 1.72 26.5499993 0.0 111.5100022 0.756813 0.653631 1.0 +4000 1 1.72 24.7800007 1.77 111.5100022 0.799902 0.600131 1.0 +4001 1 1.72 0.0 3.54 109.7399979 0.948664 -0.316287 1.0 +4002 1 1.72 1.77 5.31 109.7399979 0.767445 -0.641115 1.0 +4003 1 1.72 1.77 3.54 111.5100022 -0.97071 -0.240252 1.0 +4004 1 1.72 0.0 5.31 111.5100022 -0.565081 -0.825036 1.0 +4005 1 1.72 3.54 3.54 109.7399979 -0.786116 -0.618079 1.0 +4006 1 1.72 5.31 5.31 109.7399979 0.504339 0.863506 1.0 +4007 1 1.72 5.31 3.54 111.5100022 -0.995646 -0.0932171 1.0 +4008 1 1.72 3.54 5.31 111.5100022 0.559559 0.82879 1.0 +4009 1 1.72 7.0799999 3.54 109.7399979 0.419805 0.907614 1.0 +4010 1 1.72 8.8500004 5.31 109.7399979 -0.799504 -0.600661 1.0 +4011 1 1.72 8.8500004 3.54 111.5100022 -0.813297 0.581848 1.0 +4012 1 1.72 7.0799999 5.31 111.5100022 0.487255 -0.87326 1.0 +4013 1 1.72 10.6199999 3.54 109.7399979 0.299075 0.954229 1.0 +4014 1 1.72 12.3900004 5.31 109.7399979 -0.820768 -0.571261 1.0 +4015 1 1.72 12.3900004 3.54 111.5100022 -0.597352 -0.801979 1.0 +4016 1 1.72 10.6199999 5.31 111.5100022 -0.0653339 0.997863 1.0 +4017 1 1.72 14.1599999 3.54 109.7399979 -0.223887 -0.974615 1.0 +4018 1 1.72 15.9300004 5.31 109.7399979 0.515491 -0.856895 1.0 +4019 1 1.72 15.9300004 3.54 111.5100022 0.378303 -0.925682 1.0 +4020 1 1.72 14.1599999 5.31 111.5100022 -0.71936 -0.694637 1.0 +4021 1 1.72 17.7000008 3.54 109.7399979 0.768333 -0.640051 1.0 +4022 1 1.72 19.4699993 5.31 109.7399979 0.903813 0.427929 1.0 +4023 1 1.72 19.4699993 3.54 111.5100022 -0.524067 0.851677 1.0 +4024 1 1.72 17.7000008 5.31 111.5100022 0.653302 0.757098 1.0 +4025 1 1.72 21.2399998 3.54 109.7399979 0.858177 -0.513355 1.0 +4026 1 1.72 23.0100002 5.31 109.7399979 0.966281 0.25749 1.0 +4027 1 1.72 23.0100002 3.54 111.5100022 0.772202 0.635377 1.0 +4028 1 1.72 21.2399998 5.31 111.5100022 -0.936659 0.350242 1.0 +4029 1 1.72 24.7800007 3.54 109.7399979 -0.196323 -0.980539 1.0 +4030 1 1.72 26.5499993 5.31 109.7399979 0.898659 0.438647 1.0 +4031 1 1.72 26.5499993 3.54 111.5100022 0.368117 0.929779 1.0 +4032 1 1.72 24.7800007 5.31 111.5100022 -0.521287 0.853381 1.0 +4033 1 1.72 0.0 7.0799999 109.7399979 0.361984 0.932184 1.0 +4034 1 1.72 1.77 8.8500004 109.7399979 0.90649 0.422226 1.0 +4035 1 1.72 1.77 7.0799999 111.5100022 0.645689 -0.7636 1.0 +4036 1 1.72 0.0 8.8500004 111.5100022 0.312671 0.949861 1.0 +4037 1 1.72 3.54 7.0799999 109.7399979 -0.144406 0.989519 1.0 +4038 1 1.72 5.31 8.8500004 109.7399979 0.909845 0.414948 1.0 +4039 1 1.72 5.31 7.0799999 111.5100022 -0.837491 -0.546452 1.0 +4040 1 1.72 3.54 8.8500004 111.5100022 0.78324 -0.621719 1.0 +4041 1 1.72 7.0799999 7.0799999 109.7399979 0.853462 -0.521155 1.0 +4042 1 1.72 8.8500004 8.8500004 109.7399979 -0.480505 0.876992 1.0 +4043 1 1.72 8.8500004 7.0799999 111.5100022 0.736961 0.675935 1.0 +4044 1 1.72 7.0799999 8.8500004 111.5100022 -0.298895 0.954286 1.0 +4045 1 1.72 10.6199999 7.0799999 109.7399979 0.167008 -0.985956 1.0 +4046 1 1.72 12.3900004 8.8500004 109.7399979 -0.328869 0.944376 1.0 +4047 1 1.72 12.3900004 7.0799999 111.5100022 -0.772391 -0.635148 1.0 +4048 1 1.72 10.6199999 8.8500004 111.5100022 -0.498136 -0.867099 1.0 +4049 1 1.72 14.1599999 7.0799999 109.7399979 -0.766903 0.641763 1.0 +4050 1 1.72 15.9300004 8.8500004 109.7399979 0.429842 0.902904 1.0 +4051 1 1.72 15.9300004 7.0799999 111.5100022 0.209351 0.977841 1.0 +4052 1 1.72 14.1599999 8.8500004 111.5100022 0.371151 0.928573 1.0 +4053 1 1.72 17.7000008 7.0799999 109.7399979 0.735828 0.677168 1.0 +4054 1 1.72 19.4699993 8.8500004 109.7399979 0.887593 0.460628 1.0 +4055 1 1.72 19.4699993 7.0799999 111.5100022 -0.916168 -0.400796 1.0 +4056 1 1.72 17.7000008 8.8500004 111.5100022 -0.652254 -0.758 1.0 +4057 1 1.72 21.2399998 7.0799999 109.7399979 -0.447368 0.89435 1.0 +4058 1 1.72 23.0100002 8.8500004 109.7399979 -0.00640979 0.999979 1.0 +4059 1 1.72 23.0100002 7.0799999 111.5100022 0.520215 -0.854035 1.0 +4060 1 1.72 21.2399998 8.8500004 111.5100022 -0.218168 0.975911 1.0 +4061 1 1.72 24.7800007 7.0799999 109.7399979 -0.578442 0.815724 1.0 +4062 1 1.72 26.5499993 8.8500004 109.7399979 0.951542 -0.307519 1.0 +4063 1 1.72 26.5499993 7.0799999 111.5100022 0.436586 -0.899663 1.0 +4064 1 1.72 24.7800007 8.8500004 111.5100022 0.145185 0.989405 1.0 +4065 1 1.72 0.0 10.6199999 109.7399979 0.575029 0.818133 1.0 +4066 1 1.72 1.77 12.3900004 109.7399979 0.992461 -0.122558 1.0 +4067 1 1.72 1.77 10.6199999 111.5100022 0.1306 -0.991435 1.0 +4068 1 1.72 0.0 12.3900004 111.5100022 0.689887 0.723917 1.0 +4069 1 1.72 3.54 10.6199999 109.7399979 0.373424 0.927661 1.0 +4070 1 1.72 5.31 12.3900004 109.7399979 0.995812 -0.09143 1.0 +4071 1 1.72 5.31 10.6199999 111.5100022 -0.367508 0.93002 1.0 +4072 1 1.72 3.54 12.3900004 111.5100022 0.654797 -0.755805 1.0 +4073 1 1.72 7.0799999 10.6199999 109.7399979 -0.282991 0.959123 1.0 +4074 1 1.72 8.8500004 12.3900004 109.7399979 0.559513 0.828821 1.0 +4075 1 1.72 8.8500004 10.6199999 111.5100022 -0.0776533 0.99698 1.0 +4076 1 1.72 7.0799999 12.3900004 111.5100022 -0.966288 -0.257465 1.0 +4077 1 1.72 10.6199999 10.6199999 109.7399979 -0.300124 -0.9539 1.0 +4078 1 1.72 12.3900004 12.3900004 109.7399979 -0.314826 -0.94915 1.0 +4079 1 1.72 12.3900004 10.6199999 111.5100022 0.999849 0.0173788 1.0 +4080 1 1.72 10.6199999 12.3900004 111.5100022 -0.842134 -0.539269 1.0 +4081 1 1.72 14.1599999 10.6199999 109.7399979 0.504361 0.863493 1.0 +4082 1 1.72 15.9300004 12.3900004 109.7399979 0.719213 0.69479 1.0 +4083 1 1.72 15.9300004 10.6199999 111.5100022 0.617592 -0.786499 1.0 +4084 1 1.72 14.1599999 12.3900004 111.5100022 -0.293393 -0.955992 1.0 +4085 1 1.72 17.7000008 10.6199999 109.7399979 0.983653 0.180077 1.0 +4086 1 1.72 19.4699993 12.3900004 109.7399979 -0.729111 0.684395 1.0 +4087 1 1.72 19.4699993 10.6199999 111.5100022 0.677002 0.735981 1.0 +4088 1 1.72 17.7000008 12.3900004 111.5100022 0.331645 0.943404 1.0 +4089 1 1.72 21.2399998 10.6199999 109.7399979 0.609146 -0.793058 1.0 +4090 1 1.72 23.0100002 12.3900004 109.7399979 -0.585077 -0.810978 1.0 +4091 1 1.72 23.0100002 10.6199999 111.5100022 0.691005 -0.72285 1.0 +4092 1 1.72 21.2399998 12.3900004 111.5100022 0.987317 -0.158764 1.0 +4093 1 1.72 24.7800007 10.6199999 109.7399979 0.273885 -0.961762 1.0 +4094 1 1.72 26.5499993 12.3900004 109.7399979 -0.82144 0.570295 1.0 +4095 1 1.72 26.5499993 10.6199999 111.5100022 -0.27645 -0.961028 1.0 +4096 1 1.72 24.7800007 12.3900004 111.5100022 -0.101964 0.994788 1.0 +4097 1 1.72 0.0 14.1599999 0.0 -0.906034 0.423205 1.0 +4098 1 1.72 1.77 15.9300004 0.0 0.581947 -0.813227 1.0 +4099 1 1.72 1.77 14.1599999 1.77 -0.999891 0.014789 1.0 +4100 1 1.72 0.0 15.9300004 1.77 -0.213523 -0.976938 1.0 +4101 1 1.72 3.54 14.1599999 0.0 -0.127281 -0.991867 1.0 +4102 1 1.72 5.31 15.9300004 0.0 0.995214 0.0977173 1.0 +4103 1 1.72 5.31 14.1599999 1.77 -0.902401 0.430897 1.0 +4104 1 1.72 3.54 15.9300004 1.77 -0.498825 -0.866703 1.0 +4105 1 1.72 7.0799999 14.1599999 0.0 0.915977 0.401231 1.0 +4106 1 1.72 8.8500004 15.9300004 0.0 0.624968 0.78065 1.0 +4107 1 1.72 8.8500004 14.1599999 1.77 0.345997 0.938236 1.0 +4108 1 1.72 7.0799999 15.9300004 1.77 0.836886 -0.547378 1.0 +4109 1 1.72 10.6199999 14.1599999 0.0 -0.989252 0.146221 1.0 +4110 1 1.72 12.3900004 15.9300004 0.0 -0.868683 -0.495368 1.0 +4111 1 1.72 12.3900004 14.1599999 1.77 -0.358349 0.933588 1.0 +4112 1 1.72 10.6199999 15.9300004 1.77 0.990304 -0.138919 1.0 +4113 1 1.72 14.1599999 14.1599999 0.0 0.818657 -0.574282 1.0 +4114 1 1.72 15.9300004 15.9300004 0.0 0.0112595 0.999937 1.0 +4115 1 1.72 15.9300004 14.1599999 1.77 0.94866 0.316297 1.0 +4116 1 1.72 14.1599999 15.9300004 1.77 0.69911 -0.715014 1.0 +4117 1 1.72 17.7000008 14.1599999 0.0 0.895863 0.444331 1.0 +4118 1 1.72 19.4699993 15.9300004 0.0 -0.173542 0.984826 1.0 +4119 1 1.72 19.4699993 14.1599999 1.77 0.807211 -0.590263 1.0 +4120 1 1.72 17.7000008 15.9300004 1.77 0.376604 0.926374 1.0 +4121 1 1.72 21.2399998 14.1599999 0.0 -0.991888 0.127114 1.0 +4122 1 1.72 23.0100002 15.9300004 0.0 -0.680313 0.732922 1.0 +4123 1 1.72 23.0100002 14.1599999 1.77 0.993969 0.109658 1.0 +4124 1 1.72 21.2399998 15.9300004 1.77 -0.182459 0.983213 1.0 +4125 1 1.72 24.7800007 14.1599999 0.0 -0.0302116 -0.999544 1.0 +4126 1 1.72 26.5499993 15.9300004 0.0 -0.723672 0.690144 1.0 +4127 1 1.72 26.5499993 14.1599999 1.77 0.0644942 -0.997918 1.0 +4128 1 1.72 24.7800007 15.9300004 1.77 0.610107 0.792319 1.0 +4129 1 1.72 0.0 17.7000008 0.0 -0.680255 -0.732976 1.0 +4130 1 1.72 1.77 19.4699993 0.0 0.469961 0.882687 1.0 +4131 1 1.72 1.77 17.7000008 1.77 0.535736 -0.844385 1.0 +4132 1 1.72 0.0 19.4699993 1.77 -0.816064 0.577962 1.0 +4133 1 1.72 3.54 17.7000008 0.0 0.740305 -0.672271 1.0 +4134 1 1.72 5.31 19.4699993 0.0 0.82493 -0.565234 1.0 +4135 1 1.72 5.31 17.7000008 1.77 -0.604299 -0.796758 1.0 +4136 1 1.72 3.54 19.4699993 1.77 -0.849746 -0.527192 1.0 +4137 1 1.72 7.0799999 17.7000008 0.0 -0.610688 -0.791871 1.0 +4138 1 1.72 8.8500004 19.4699993 0.0 -0.661152 -0.750252 1.0 +4139 1 1.72 8.8500004 17.7000008 1.77 -0.666197 -0.745775 1.0 +4140 1 1.72 7.0799999 19.4699993 1.77 -0.558117 0.829763 1.0 +4141 1 1.72 10.6199999 17.7000008 0.0 -0.828657 0.559757 1.0 +4142 1 1.72 12.3900004 19.4699993 0.0 0.983206 0.182501 1.0 +4143 1 1.72 12.3900004 17.7000008 1.77 0.806782 0.59085 1.0 +4144 1 1.72 10.6199999 19.4699993 1.77 -0.992463 0.122541 1.0 +4145 1 1.72 14.1599999 17.7000008 0.0 0.93155 -0.363615 1.0 +4146 1 1.72 15.9300004 19.4699993 0.0 -0.839313 0.543649 1.0 +4147 1 1.72 15.9300004 17.7000008 1.77 -0.970009 -0.243068 1.0 +4148 1 1.72 14.1599999 19.4699993 1.77 0.711394 -0.702793 1.0 +4149 1 1.72 17.7000008 17.7000008 0.0 0.796734 -0.60433 1.0 +4150 1 1.72 19.4699993 19.4699993 0.0 0.873484 0.486854 1.0 +4151 1 1.72 19.4699993 17.7000008 1.77 0.979112 0.203323 1.0 +4152 1 1.72 17.7000008 19.4699993 1.77 0.889848 0.456258 1.0 +4153 1 1.72 21.2399998 17.7000008 0.0 0.941633 0.336641 1.0 +4154 1 1.72 23.0100002 19.4699993 0.0 0.56189 0.827212 1.0 +4155 1 1.72 23.0100002 17.7000008 1.77 0.693812 -0.720156 1.0 +4156 1 1.72 21.2399998 19.4699993 1.77 -0.683189 -0.730242 1.0 +4157 1 1.72 24.7800007 17.7000008 0.0 -0.943901 -0.330227 1.0 +4158 1 1.72 26.5499993 19.4699993 0.0 0.0909536 0.995855 1.0 +4159 1 1.72 26.5499993 17.7000008 1.77 -0.308876 -0.951102 1.0 +4160 1 1.72 24.7800007 19.4699993 1.77 -0.0183604 -0.999831 1.0 +4161 1 1.72 0.0 21.2399998 0.0 0.413302 0.910594 1.0 +4162 1 1.72 1.77 23.0100002 0.0 0.896721 -0.442597 1.0 +4163 1 1.72 1.77 21.2399998 1.77 0.602859 -0.797848 1.0 +4164 1 1.72 0.0 23.0100002 1.77 -0.555015 0.83184 1.0 +4165 1 1.72 3.54 21.2399998 0.0 0.861271 -0.508146 1.0 +4166 1 1.72 5.31 23.0100002 0.0 -0.827573 0.561358 1.0 +4167 1 1.72 5.31 21.2399998 1.77 -0.948175 -0.317748 1.0 +4168 1 1.72 3.54 23.0100002 1.77 0.964396 -0.264461 1.0 +4169 1 1.72 7.0799999 21.2399998 0.0 -0.974275 0.225362 1.0 +4170 1 1.72 8.8500004 23.0100002 0.0 0.935955 -0.352121 1.0 +4171 1 1.72 8.8500004 21.2399998 1.77 0.750418 -0.660964 1.0 +4172 1 1.72 7.0799999 23.0100002 1.77 0.916428 -0.4002 1.0 +4173 1 1.72 10.6199999 21.2399998 0.0 0.91538 0.402591 1.0 +4174 1 1.72 12.3900004 23.0100002 0.0 -0.859466 0.511194 1.0 +4175 1 1.72 12.3900004 21.2399998 1.77 -0.555287 -0.831659 1.0 +4176 1 1.72 10.6199999 23.0100002 1.77 0.207272 -0.978283 1.0 +4177 1 1.72 14.1599999 21.2399998 0.0 0.857398 -0.514654 1.0 +4178 1 1.72 15.9300004 23.0100002 0.0 0.936873 0.34967 1.0 +4179 1 1.72 15.9300004 21.2399998 1.77 0.784568 -0.620043 1.0 +4180 1 1.72 14.1599999 23.0100002 1.77 0.89547 -0.445122 1.0 +4181 1 1.72 17.7000008 21.2399998 0.0 0.252741 0.967534 1.0 +4182 1 1.72 19.4699993 23.0100002 0.0 0.84118 0.540755 1.0 +4183 1 1.72 19.4699993 21.2399998 1.77 -0.999718 0.0237346 1.0 +4184 1 1.72 17.7000008 23.0100002 1.77 0.292675 0.956212 1.0 +4185 1 1.72 21.2399998 21.2399998 0.0 -0.935117 0.354338 1.0 +4186 1 1.72 23.0100002 23.0100002 0.0 -0.995583 0.0938906 1.0 +4187 1 1.72 23.0100002 21.2399998 1.77 -0.805178 0.593033 1.0 +4188 1 1.72 21.2399998 23.0100002 1.77 -0.714583 -0.699551 1.0 +4189 1 1.72 24.7800007 21.2399998 0.0 -0.622394 -0.782704 1.0 +4190 1 1.72 26.5499993 23.0100002 0.0 -0.339368 0.940654 1.0 +4191 1 1.72 26.5499993 21.2399998 1.77 -0.364913 0.931042 1.0 +4192 1 1.72 24.7800007 23.0100002 1.77 0.413938 -0.910305 1.0 +4193 1 1.72 0.0 24.7800007 0.0 0.941589 0.336764 1.0 +4194 1 1.72 1.77 26.5499993 0.0 -0.0877957 0.996139 1.0 +4195 1 1.72 1.77 24.7800007 1.77 0.500255 0.865878 1.0 +4196 1 1.72 0.0 26.5499993 1.77 0.958166 0.286213 1.0 +4197 1 1.72 3.54 24.7800007 0.0 -0.632287 0.774734 1.0 +4198 1 1.72 5.31 26.5499993 0.0 0.501879 -0.864938 1.0 +4199 1 1.72 5.31 24.7800007 1.77 0.86251 0.506039 1.0 +4200 1 1.72 3.54 26.5499993 1.77 -0.566216 -0.824257 1.0 +4201 1 1.72 7.0799999 24.7800007 0.0 0.998724 -0.0504941 1.0 +4202 1 1.72 8.8500004 26.5499993 0.0 0.996394 0.0848417 1.0 +4203 1 1.72 8.8500004 24.7800007 1.77 -0.404339 0.914609 1.0 +4204 1 1.72 7.0799999 26.5499993 1.77 0.813068 -0.582169 1.0 +4205 1 1.72 10.6199999 24.7800007 0.0 0.836673 0.547703 1.0 +4206 1 1.72 12.3900004 26.5499993 0.0 -0.999935 0.0114234 1.0 +4207 1 1.72 12.3900004 24.7800007 1.77 -0.272725 0.962092 1.0 +4208 1 1.72 10.6199999 26.5499993 1.77 0.192373 0.981322 1.0 +4209 1 1.72 14.1599999 24.7800007 0.0 -0.349785 0.93683 1.0 +4210 1 1.72 15.9300004 26.5499993 0.0 0.271929 -0.962317 1.0 +4211 1 1.72 15.9300004 24.7800007 1.77 0.107153 0.994243 1.0 +4212 1 1.72 14.1599999 26.5499993 1.77 0.593709 0.80468 1.0 +4213 1 1.72 17.7000008 24.7800007 0.0 -0.711199 0.702991 1.0 +4214 1 1.72 19.4699993 26.5499993 0.0 0.308245 0.951307 1.0 +4215 1 1.72 19.4699993 24.7800007 1.77 0.699562 0.714572 1.0 +4216 1 1.72 17.7000008 26.5499993 1.77 -0.389307 -0.921108 1.0 +4217 1 1.72 21.2399998 24.7800007 0.0 -0.639104 0.76912 1.0 +4218 1 1.72 23.0100002 26.5499993 0.0 -0.714226 0.699915 1.0 +4219 1 1.72 23.0100002 24.7800007 1.77 0.990529 -0.137302 1.0 +4220 1 1.72 21.2399998 26.5499993 1.77 0.657794 0.753197 1.0 +4221 1 1.72 24.7800007 24.7800007 0.0 -0.825371 -0.56459 1.0 +4222 1 1.72 26.5499993 26.5499993 0.0 -0.960574 -0.278026 1.0 +4223 1 1.72 26.5499993 24.7800007 1.77 0.768008 -0.64044 1.0 +4224 1 1.72 24.7800007 26.5499993 1.77 -0.937179 -0.348849 1.0 +4225 1 1.72 0.0 14.1599999 3.54 0.220793 -0.975321 1.0 +4226 1 1.72 1.77 15.9300004 3.54 0.723517 -0.690306 1.0 +4227 1 1.72 1.77 14.1599999 5.31 0.8586 0.512646 1.0 +4228 1 1.72 0.0 15.9300004 5.31 -0.210869 -0.977514 1.0 +4229 1 1.72 3.54 14.1599999 3.54 -0.0193038 0.999814 1.0 +4230 1 1.72 5.31 15.9300004 3.54 -0.982615 -0.185653 1.0 +4231 1 1.72 5.31 14.1599999 5.31 0.558535 0.829481 1.0 +4232 1 1.72 3.54 15.9300004 5.31 -0.720748 -0.693197 1.0 +4233 1 1.72 7.0799999 14.1599999 3.54 -0.933602 -0.358312 1.0 +4234 1 1.72 8.8500004 15.9300004 3.54 -0.657004 -0.753887 1.0 +4235 1 1.72 8.8500004 14.1599999 5.31 0.490843 -0.871248 1.0 +4236 1 1.72 7.0799999 15.9300004 5.31 -0.50993 0.860216 1.0 +4237 1 1.72 10.6199999 14.1599999 3.54 -0.838913 0.544266 1.0 +4238 1 1.72 12.3900004 15.9300004 3.54 -0.215562 -0.97649 1.0 +4239 1 1.72 12.3900004 14.1599999 5.31 -0.865487 0.500931 1.0 +4240 1 1.72 10.6199999 15.9300004 5.31 0.999822 -0.0188745 1.0 +4241 1 1.72 14.1599999 14.1599999 3.54 0.58226 -0.813002 1.0 +4242 1 1.72 15.9300004 15.9300004 3.54 -0.0112383 0.999937 1.0 +4243 1 1.72 15.9300004 14.1599999 5.31 0.168004 -0.985786 1.0 +4244 1 1.72 14.1599999 15.9300004 5.31 0.981524 -0.191338 1.0 +4245 1 1.72 17.7000008 14.1599999 3.54 -0.309345 0.95095 1.0 +4246 1 1.72 19.4699993 15.9300004 3.54 -0.617742 -0.786381 1.0 +4247 1 1.72 19.4699993 14.1599999 5.31 0.999106 0.0422655 1.0 +4248 1 1.72 17.7000008 15.9300004 5.31 0.598576 -0.801066 1.0 +4249 1 1.72 21.2399998 14.1599999 3.54 0.577322 -0.816517 1.0 +4250 1 1.72 23.0100002 15.9300004 3.54 -0.70337 -0.710824 1.0 +4251 1 1.72 23.0100002 14.1599999 5.31 -0.217011 -0.976169 1.0 +4252 1 1.72 21.2399998 15.9300004 5.31 0.859545 -0.51106 1.0 +4253 1 1.72 24.7800007 14.1599999 3.54 0.119424 0.992843 1.0 +4254 1 1.72 26.5499993 15.9300004 3.54 -0.872191 -0.489166 1.0 +4255 1 1.72 26.5499993 14.1599999 5.31 -0.755167 -0.655532 1.0 +4256 1 1.72 24.7800007 15.9300004 5.31 -0.904669 0.426114 1.0 +4257 1 1.72 0.0 17.7000008 3.54 0.232167 -0.972676 1.0 +4258 1 1.72 1.77 19.4699993 3.54 -0.722256 -0.691626 1.0 +4259 1 1.72 1.77 17.7000008 5.31 0.986938 -0.161102 1.0 +4260 1 1.72 0.0 19.4699993 5.31 0.0347523 0.999396 1.0 +4261 1 1.72 3.54 17.7000008 3.54 -0.504707 -0.863291 1.0 +4262 1 1.72 5.31 19.4699993 3.54 -0.0641604 0.99794 1.0 +4263 1 1.72 5.31 17.7000008 5.31 0.608147 0.793824 1.0 +4264 1 1.72 3.54 19.4699993 5.31 0.822451 -0.568836 1.0 +4265 1 1.72 7.0799999 17.7000008 3.54 0.389819 0.920891 1.0 +4266 1 1.72 8.8500004 19.4699993 3.54 -0.986125 0.166005 1.0 +4267 1 1.72 8.8500004 17.7000008 5.31 0.80558 0.592487 1.0 +4268 1 1.72 7.0799999 19.4699993 5.31 0.350884 0.936419 1.0 +4269 1 1.72 10.6199999 17.7000008 3.54 0.223458 -0.974714 1.0 +4270 1 1.72 12.3900004 19.4699993 3.54 -0.744226 -0.667928 1.0 +4271 1 1.72 12.3900004 17.7000008 5.31 0.949871 -0.312644 1.0 +4272 1 1.72 10.6199999 19.4699993 5.31 -0.896749 -0.442539 1.0 +4273 1 1.72 14.1599999 17.7000008 3.54 -0.0604458 0.998171 1.0 +4274 1 1.72 15.9300004 19.4699993 3.54 0.546442 -0.837497 1.0 +4275 1 1.72 15.9300004 17.7000008 5.31 0.948303 -0.317368 1.0 +4276 1 1.72 14.1599999 19.4699993 5.31 -0.542722 -0.839912 1.0 +4277 1 1.72 17.7000008 17.7000008 3.54 0.0814219 0.99668 1.0 +4278 1 1.72 19.4699993 19.4699993 3.54 -0.984948 -0.172852 1.0 +4279 1 1.72 19.4699993 17.7000008 5.31 0.941465 -0.337112 1.0 +4280 1 1.72 17.7000008 19.4699993 5.31 0.613064 -0.790033 1.0 +4281 1 1.72 21.2399998 17.7000008 3.54 0.998334 0.057693 1.0 +4282 1 1.72 23.0100002 19.4699993 3.54 -0.902318 -0.43107 1.0 +4283 1 1.72 23.0100002 17.7000008 5.31 -0.1925 0.981297 1.0 +4284 1 1.72 21.2399998 19.4699993 5.31 -0.774763 0.632252 1.0 +4285 1 1.72 24.7800007 17.7000008 3.54 0.906835 -0.421485 1.0 +4286 1 1.72 26.5499993 19.4699993 3.54 0.328293 -0.944576 1.0 +4287 1 1.72 26.5499993 17.7000008 5.31 -0.984445 0.175692 1.0 +4288 1 1.72 24.7800007 19.4699993 5.31 -0.264715 0.964327 1.0 +4289 1 1.72 0.0 21.2399998 3.54 -0.926043 0.377419 1.0 +4290 1 1.72 1.77 23.0100002 3.54 0.998491 -0.0549199 1.0 +4291 1 1.72 1.77 21.2399998 5.31 -0.88117 0.4728 1.0 +4292 1 1.72 0.0 23.0100002 5.31 -0.999879 -0.0155475 1.0 +4293 1 1.72 3.54 21.2399998 3.54 -0.770136 -0.63788 1.0 +4294 1 1.72 5.31 23.0100002 3.54 -0.915954 0.401283 1.0 +4295 1 1.72 5.31 21.2399998 5.31 0.329753 0.944067 1.0 +4296 1 1.72 3.54 23.0100002 5.31 0.405062 0.914289 1.0 +4297 1 1.72 7.0799999 21.2399998 3.54 -0.581242 -0.813731 1.0 +4298 1 1.72 8.8500004 23.0100002 3.54 -0.241851 0.970313 1.0 +4299 1 1.72 8.8500004 21.2399998 5.31 0.727368 -0.686248 1.0 +4300 1 1.72 7.0799999 23.0100002 5.31 0.942347 0.334637 1.0 +4301 1 1.72 10.6199999 21.2399998 3.54 0.910672 0.413131 1.0 +4302 1 1.72 12.3900004 23.0100002 3.54 0.868523 -0.495649 1.0 +4303 1 1.72 12.3900004 21.2399998 5.31 0.667425 -0.744677 1.0 +4304 1 1.72 10.6199999 23.0100002 5.31 -0.922523 -0.385943 1.0 +4305 1 1.72 14.1599999 21.2399998 3.54 0.813232 -0.58194 1.0 +4306 1 1.72 15.9300004 23.0100002 3.54 0.977512 0.21088 1.0 +4307 1 1.72 15.9300004 21.2399998 5.31 0.576592 0.817032 1.0 +4308 1 1.72 14.1599999 23.0100002 5.31 0.641659 -0.76699 1.0 +4309 1 1.72 17.7000008 21.2399998 3.54 -0.275909 -0.961184 1.0 +4310 1 1.72 19.4699993 23.0100002 3.54 0.432127 -0.901813 1.0 +4311 1 1.72 19.4699993 21.2399998 5.31 -0.627306 -0.778773 1.0 +4312 1 1.72 17.7000008 23.0100002 5.31 0.82271 -0.568461 1.0 +4313 1 1.72 21.2399998 21.2399998 3.54 -0.996538 0.0831426 1.0 +4314 1 1.72 23.0100002 23.0100002 3.54 0.649317 -0.760518 1.0 +4315 1 1.72 23.0100002 21.2399998 5.31 0.68562 0.727959 1.0 +4316 1 1.72 21.2399998 23.0100002 5.31 -0.701308 -0.712858 1.0 +4317 1 1.72 24.7800007 21.2399998 3.54 -0.629219 0.777228 1.0 +4318 1 1.72 26.5499993 23.0100002 3.54 0.566134 -0.824313 1.0 +4319 1 1.72 26.5499993 21.2399998 5.31 -0.807965 -0.58923 1.0 +4320 1 1.72 24.7800007 23.0100002 5.31 0.998685 -0.0512702 1.0 +4321 1 1.72 0.0 24.7800007 3.54 -0.617444 -0.786615 1.0 +4322 1 1.72 1.77 26.5499993 3.54 0.789807 -0.613355 1.0 +4323 1 1.72 1.77 24.7800007 5.31 0.592353 0.805678 1.0 +4324 1 1.72 0.0 26.5499993 5.31 0.409189 -0.912449 1.0 +4325 1 1.72 3.54 24.7800007 3.54 -0.892879 -0.450296 1.0 +4326 1 1.72 5.31 26.5499993 3.54 0.956091 0.293071 1.0 +4327 1 1.72 5.31 24.7800007 5.31 -0.530192 0.847877 1.0 +4328 1 1.72 3.54 26.5499993 5.31 -0.391099 0.920349 1.0 +4329 1 1.72 7.0799999 24.7800007 3.54 0.982678 -0.18532 1.0 +4330 1 1.72 8.8500004 26.5499993 3.54 0.928732 -0.370751 1.0 +4331 1 1.72 8.8500004 24.7800007 5.31 0.287833 0.957681 1.0 +4332 1 1.72 7.0799999 26.5499993 5.31 0.938433 -0.345461 1.0 +4333 1 1.72 10.6199999 24.7800007 3.54 -0.749022 0.662545 1.0 +4334 1 1.72 12.3900004 26.5499993 3.54 -0.975121 0.221672 1.0 +4335 1 1.72 12.3900004 24.7800007 5.31 0.69344 -0.720514 1.0 +4336 1 1.72 10.6199999 26.5499993 5.31 -0.212985 -0.977056 1.0 +4337 1 1.72 14.1599999 24.7800007 3.54 -0.812178 0.58341 1.0 +4338 1 1.72 15.9300004 26.5499993 3.54 -0.600953 0.799284 1.0 +4339 1 1.72 15.9300004 24.7800007 5.31 -0.396176 -0.918175 1.0 +4340 1 1.72 14.1599999 26.5499993 5.31 0.356889 0.934147 1.0 +4341 1 1.72 17.7000008 24.7800007 3.54 -0.116799 -0.993156 1.0 +4342 1 1.72 19.4699993 26.5499993 3.54 0.471961 -0.88162 1.0 +4343 1 1.72 19.4699993 24.7800007 5.31 -0.101547 -0.994831 1.0 +4344 1 1.72 17.7000008 26.5499993 5.31 0.0367154 0.999326 1.0 +4345 1 1.72 21.2399998 24.7800007 3.54 -0.948217 -0.317622 1.0 +4346 1 1.72 23.0100002 26.5499993 3.54 0.895641 -0.444777 1.0 +4347 1 1.72 23.0100002 24.7800007 5.31 -0.0371448 -0.99931 1.0 +4348 1 1.72 21.2399998 26.5499993 5.31 -0.952793 0.30362 1.0 +4349 1 1.72 24.7800007 24.7800007 3.54 0.45967 -0.88809 1.0 +4350 1 1.72 26.5499993 26.5499993 3.54 -0.350365 -0.936613 1.0 +4351 1 1.72 26.5499993 24.7800007 5.31 -0.892866 0.450323 1.0 +4352 1 1.72 24.7800007 26.5499993 5.31 -0.67909 0.734055 1.0 +4353 1 1.72 0.0 14.1599999 7.0799999 0.589449 0.807805 1.0 +4354 1 1.72 1.77 15.9300004 7.0799999 0.870129 -0.492825 1.0 +4355 1 1.72 1.77 14.1599999 8.8500004 -0.367552 0.930003 1.0 +4356 1 1.72 0.0 15.9300004 8.8500004 -0.543769 -0.839235 1.0 +4357 1 1.72 3.54 14.1599999 7.0799999 -0.77212 -0.635477 1.0 +4358 1 1.72 5.31 15.9300004 7.0799999 -0.99787 -0.0652354 1.0 +4359 1 1.72 5.31 14.1599999 8.8500004 -0.886636 -0.462467 1.0 +4360 1 1.72 3.54 15.9300004 8.8500004 -0.994376 -0.105912 1.0 +4361 1 1.72 7.0799999 14.1599999 7.0799999 -0.737213 0.67566 1.0 +4362 1 1.72 8.8500004 15.9300004 7.0799999 0.385867 -0.922554 1.0 +4363 1 1.72 8.8500004 14.1599999 8.8500004 -0.999483 -0.0321567 1.0 +4364 1 1.72 7.0799999 15.9300004 8.8500004 0.583191 0.812335 1.0 +4365 1 1.72 10.6199999 14.1599999 7.0799999 -0.944265 0.329185 1.0 +4366 1 1.72 12.3900004 15.9300004 7.0799999 -0.854283 0.519808 1.0 +4367 1 1.72 12.3900004 14.1599999 8.8500004 -0.999244 0.0388825 1.0 +4368 1 1.72 10.6199999 15.9300004 8.8500004 0.903759 -0.428042 1.0 +4369 1 1.72 14.1599999 14.1599999 7.0799999 -0.698679 0.715435 1.0 +4370 1 1.72 15.9300004 15.9300004 7.0799999 -0.0174386 0.999848 1.0 +4371 1 1.72 15.9300004 14.1599999 8.8500004 0.0749537 0.997187 1.0 +4372 1 1.72 14.1599999 15.9300004 8.8500004 0.276006 0.961156 1.0 +4373 1 1.72 17.7000008 14.1599999 7.0799999 -0.351932 0.936025 1.0 +4374 1 1.72 19.4699993 15.9300004 7.0799999 -0.997869 0.065244 1.0 +4375 1 1.72 19.4699993 14.1599999 8.8500004 -0.929908 -0.367793 1.0 +4376 1 1.72 17.7000008 15.9300004 8.8500004 0.826664 -0.562695 1.0 +4377 1 1.72 21.2399998 14.1599999 7.0799999 -0.692921 -0.721013 1.0 +4378 1 1.72 23.0100002 15.9300004 7.0799999 -0.194439 0.980915 1.0 +4379 1 1.72 23.0100002 14.1599999 8.8500004 -0.775177 -0.631745 1.0 +4380 1 1.72 21.2399998 15.9300004 8.8500004 -0.6128 0.790238 1.0 +4381 1 1.72 24.7800007 14.1599999 7.0799999 -0.150054 0.988678 1.0 +4382 1 1.72 26.5499993 15.9300004 7.0799999 0.424697 0.905336 1.0 +4383 1 1.72 26.5499993 14.1599999 8.8500004 0.608211 -0.793775 1.0 +4384 1 1.72 24.7800007 15.9300004 8.8500004 -0.531271 -0.847202 1.0 +4385 1 1.72 0.0 17.7000008 7.0799999 0.66678 -0.745254 1.0 +4386 1 1.72 1.77 19.4699993 7.0799999 0.946436 -0.322893 1.0 +4387 1 1.72 1.77 17.7000008 8.8500004 0.314708 -0.949189 1.0 +4388 1 1.72 0.0 19.4699993 8.8500004 -0.732267 0.681017 1.0 +4389 1 1.72 3.54 17.7000008 7.0799999 0.953049 0.302815 1.0 +4390 1 1.72 5.31 19.4699993 7.0799999 0.778245 -0.627961 1.0 +4391 1 1.72 5.31 17.7000008 8.8500004 0.103755 0.994603 1.0 +4392 1 1.72 3.54 19.4699993 8.8500004 -0.271773 -0.962361 1.0 +4393 1 1.72 7.0799999 17.7000008 7.0799999 -0.389329 -0.921099 1.0 +4394 1 1.72 8.8500004 19.4699993 7.0799999 0.952197 -0.305486 1.0 +4395 1 1.72 8.8500004 17.7000008 8.8500004 0.583921 -0.811811 1.0 +4396 1 1.72 7.0799999 19.4699993 8.8500004 0.974598 -0.223963 1.0 +4397 1 1.72 10.6199999 17.7000008 7.0799999 -0.978474 -0.206368 1.0 +4398 1 1.72 12.3900004 19.4699993 7.0799999 -0.681488 0.731829 1.0 +4399 1 1.72 12.3900004 17.7000008 8.8500004 0.711342 -0.702846 1.0 +4400 1 1.72 10.6199999 19.4699993 8.8500004 0.627751 0.778414 1.0 +4401 1 1.72 14.1599999 17.7000008 7.0799999 0.0316519 0.999499 1.0 +4402 1 1.72 15.9300004 19.4699993 7.0799999 0.953148 -0.302505 1.0 +4403 1 1.72 15.9300004 17.7000008 8.8500004 -0.95609 0.293072 1.0 +4404 1 1.72 14.1599999 19.4699993 8.8500004 0.999531 0.030625 1.0 +4405 1 1.72 17.7000008 17.7000008 7.0799999 0.197263 -0.980351 1.0 +4406 1 1.72 19.4699993 19.4699993 7.0799999 0.930382 0.366592 1.0 +4407 1 1.72 19.4699993 17.7000008 8.8500004 0.699475 0.714657 1.0 +4408 1 1.72 17.7000008 19.4699993 8.8500004 -0.74107 -0.671428 1.0 +4409 1 1.72 21.2399998 17.7000008 7.0799999 -0.864057 0.503394 1.0 +4410 1 1.72 23.0100002 19.4699993 7.0799999 0.0483361 -0.998831 1.0 +4411 1 1.72 23.0100002 17.7000008 8.8500004 0.714148 0.699995 1.0 +4412 1 1.72 21.2399998 19.4699993 8.8500004 -0.231711 -0.972785 1.0 +4413 1 1.72 24.7800007 17.7000008 7.0799999 0.806369 -0.591412 1.0 +4414 1 1.72 26.5499993 19.4699993 7.0799999 0.169041 0.985609 1.0 +4415 1 1.72 26.5499993 17.7000008 8.8500004 -0.748547 0.663082 1.0 +4416 1 1.72 24.7800007 19.4699993 8.8500004 0.64493 -0.764242 1.0 +4417 1 1.72 0.0 21.2399998 7.0799999 -0.379192 -0.925318 1.0 +4418 1 1.72 1.77 23.0100002 7.0799999 -0.499401 -0.866371 1.0 +4419 1 1.72 1.77 21.2399998 8.8500004 0.456295 0.889829 1.0 +4420 1 1.72 0.0 23.0100002 8.8500004 -0.685215 0.728341 1.0 +4421 1 1.72 3.54 21.2399998 7.0799999 0.75136 0.659893 1.0 +4422 1 1.72 5.31 23.0100002 7.0799999 0.698637 0.715477 1.0 +4423 1 1.72 5.31 21.2399998 8.8500004 0.089468 0.99599 1.0 +4424 1 1.72 3.54 23.0100002 8.8500004 0.903264 0.429085 1.0 +4425 1 1.72 7.0799999 21.2399998 7.0799999 0.849013 -0.528372 1.0 +4426 1 1.72 8.8500004 23.0100002 7.0799999 0.68244 -0.730941 1.0 +4427 1 1.72 8.8500004 21.2399998 8.8500004 0.427636 0.903951 1.0 +4428 1 1.72 7.0799999 23.0100002 8.8500004 0.382435 -0.923982 1.0 +4429 1 1.72 10.6199999 21.2399998 7.0799999 -0.602498 -0.79812 1.0 +4430 1 1.72 12.3900004 23.0100002 7.0799999 -0.743271 -0.66899 1.0 +4431 1 1.72 12.3900004 21.2399998 8.8500004 -0.812379 -0.58313 1.0 +4432 1 1.72 10.6199999 23.0100002 8.8500004 -0.893692 -0.448682 1.0 +4433 1 1.72 14.1599999 21.2399998 7.0799999 0.481535 0.876427 1.0 +4434 1 1.72 15.9300004 23.0100002 7.0799999 0.496276 -0.868165 1.0 +4435 1 1.72 15.9300004 21.2399998 8.8500004 -0.633558 -0.773695 1.0 +4436 1 1.72 14.1599999 23.0100002 8.8500004 -0.273075 -0.961993 1.0 +4437 1 1.72 17.7000008 21.2399998 7.0799999 0.91429 0.405059 1.0 +4438 1 1.72 19.4699993 23.0100002 7.0799999 0.718792 0.695225 1.0 +4439 1 1.72 19.4699993 21.2399998 8.8500004 -0.1156 -0.993296 1.0 +4440 1 1.72 17.7000008 23.0100002 8.8500004 -0.918692 -0.394974 1.0 +4441 1 1.72 21.2399998 21.2399998 7.0799999 0.976062 -0.217491 1.0 +4442 1 1.72 23.0100002 23.0100002 7.0799999 0.60564 0.795738 1.0 +4443 1 1.72 23.0100002 21.2399998 8.8500004 0.991695 0.128616 1.0 +4444 1 1.72 21.2399998 23.0100002 8.8500004 -0.819684 -0.572816 1.0 +4445 1 1.72 24.7800007 21.2399998 7.0799999 -0.434225 -0.900804 1.0 +4446 1 1.72 26.5499993 23.0100002 7.0799999 0.518628 -0.855 1.0 +4447 1 1.72 26.5499993 21.2399998 8.8500004 0.926145 -0.377169 1.0 +4448 1 1.72 24.7800007 23.0100002 8.8500004 0.969386 0.245541 1.0 +4449 1 1.72 0.0 24.7800007 7.0799999 -0.182025 0.983294 1.0 +4450 1 1.72 1.77 26.5499993 7.0799999 -0.653489 0.756936 1.0 +4451 1 1.72 1.77 24.7800007 8.8500004 0.265008 -0.964246 1.0 +4452 1 1.72 0.0 26.5499993 8.8500004 -0.882433 -0.470437 1.0 +4453 1 1.72 3.54 24.7800007 7.0799999 -0.847172 0.531319 1.0 +4454 1 1.72 5.31 26.5499993 7.0799999 0.743357 -0.668895 1.0 +4455 1 1.72 5.31 24.7800007 8.8500004 0.692142 -0.721761 1.0 +4456 1 1.72 3.54 26.5499993 8.8500004 0.46714 0.884183 1.0 +4457 1 1.72 7.0799999 24.7800007 7.0799999 0.537528 0.843246 1.0 +4458 1 1.72 8.8500004 26.5499993 7.0799999 -0.632278 -0.774742 1.0 +4459 1 1.72 8.8500004 24.7800007 8.8500004 -0.990357 0.13854 1.0 +4460 1 1.72 7.0799999 26.5499993 8.8500004 0.790854 0.612005 1.0 +4461 1 1.72 10.6199999 24.7800007 7.0799999 -0.75998 -0.649947 1.0 +4462 1 1.72 12.3900004 26.5499993 7.0799999 -0.811587 0.584232 1.0 +4463 1 1.72 12.3900004 24.7800007 8.8500004 -0.935379 0.353646 1.0 +4464 1 1.72 10.6199999 26.5499993 8.8500004 0.249472 0.968382 1.0 +4465 1 1.72 14.1599999 24.7800007 7.0799999 -0.99959 -0.0286383 1.0 +4466 1 1.72 15.9300004 26.5499993 7.0799999 -0.333542 -0.942735 1.0 +4467 1 1.72 15.9300004 24.7800007 8.8500004 0.996988 0.0775509 1.0 +4468 1 1.72 14.1599999 26.5499993 8.8500004 0.994077 0.108682 1.0 +4469 1 1.72 17.7000008 24.7800007 7.0799999 -0.820874 -0.57111 1.0 +4470 1 1.72 19.4699993 26.5499993 7.0799999 0.447196 0.894436 1.0 +4471 1 1.72 19.4699993 24.7800007 8.8500004 0.828337 -0.560231 1.0 +4472 1 1.72 17.7000008 26.5499993 8.8500004 -0.771982 0.635644 1.0 +4473 1 1.72 21.2399998 24.7800007 7.0799999 -0.794712 -0.606987 1.0 +4474 1 1.72 23.0100002 26.5499993 7.0799999 0.133751 0.991015 1.0 +4475 1 1.72 23.0100002 24.7800007 8.8500004 -0.75836 0.651835 1.0 +4476 1 1.72 21.2399998 26.5499993 8.8500004 0.231901 -0.972739 1.0 +4477 1 1.72 24.7800007 24.7800007 7.0799999 -0.87801 0.478642 1.0 +4478 1 1.72 26.5499993 26.5499993 7.0799999 0.679121 0.734026 1.0 +4479 1 1.72 26.5499993 24.7800007 8.8500004 -0.603507 0.797358 1.0 +4480 1 1.72 24.7800007 26.5499993 8.8500004 -0.216816 0.976213 1.0 +4481 1 1.72 0.0 14.1599999 10.6199999 0.908994 0.41681 1.0 +4482 1 1.72 1.77 15.9300004 10.6199999 -0.90057 0.434711 1.0 +4483 1 1.72 1.77 14.1599999 12.3900004 0.984598 -0.174836 1.0 +4484 1 1.72 0.0 15.9300004 12.3900004 0.0461737 -0.998933 1.0 +4485 1 1.72 3.54 14.1599999 10.6199999 -0.919527 0.393026 1.0 +4486 1 1.72 5.31 15.9300004 10.6199999 0.523208 0.852205 1.0 +4487 1 1.72 5.31 14.1599999 12.3900004 0.921577 -0.388195 1.0 +4488 1 1.72 3.54 15.9300004 12.3900004 -0.870544 -0.49209 1.0 +4489 1 1.72 7.0799999 14.1599999 10.6199999 0.937467 0.348074 1.0 +4490 1 1.72 8.8500004 15.9300004 10.6199999 0.997427 0.0716938 1.0 +4491 1 1.72 8.8500004 14.1599999 12.3900004 -0.396352 -0.918099 1.0 +4492 1 1.72 7.0799999 15.9300004 12.3900004 0.758783 -0.651343 1.0 +4493 1 1.72 10.6199999 14.1599999 10.6199999 -0.688254 0.72547 1.0 +4494 1 1.72 12.3900004 15.9300004 10.6199999 0.607432 -0.794372 1.0 +4495 1 1.72 12.3900004 14.1599999 12.3900004 0.69027 0.723552 1.0 +4496 1 1.72 10.6199999 15.9300004 12.3900004 0.553331 0.832961 1.0 +4497 1 1.72 14.1599999 14.1599999 10.6199999 -0.228975 -0.973432 1.0 +4498 1 1.72 15.9300004 15.9300004 10.6199999 0.794483 0.607286 1.0 +4499 1 1.72 15.9300004 14.1599999 12.3900004 -0.643544 -0.765409 1.0 +4500 1 1.72 14.1599999 15.9300004 12.3900004 -0.60014 -0.799895 1.0 +4501 1 1.72 17.7000008 14.1599999 10.6199999 -0.0501868 -0.99874 1.0 +4502 1 1.72 19.4699993 15.9300004 10.6199999 -0.371291 0.928517 1.0 +4503 1 1.72 19.4699993 14.1599999 12.3900004 -0.345316 -0.938486 1.0 +4504 1 1.72 17.7000008 15.9300004 12.3900004 0.962953 -0.269668 1.0 +4505 1 1.72 21.2399998 14.1599999 10.6199999 -0.653125 -0.75725 1.0 +4506 1 1.72 23.0100002 15.9300004 10.6199999 -0.999681 0.0252371 1.0 +4507 1 1.72 23.0100002 14.1599999 12.3900004 -0.761747 0.647875 1.0 +4508 1 1.72 21.2399998 15.9300004 12.3900004 -0.80914 -0.587616 1.0 +4509 1 1.72 24.7800007 14.1599999 10.6199999 -0.213704 -0.976899 1.0 +4510 1 1.72 26.5499993 15.9300004 10.6199999 -0.172547 -0.985001 1.0 +4511 1 1.72 26.5499993 14.1599999 12.3900004 -0.671755 0.740774 1.0 +4512 1 1.72 24.7800007 15.9300004 12.3900004 0.639133 -0.769096 1.0 +4513 1 1.72 0.0 17.7000008 10.6199999 0.919701 -0.39262 1.0 +4514 1 1.72 1.77 19.4699993 10.6199999 0.29967 -0.954043 1.0 +4515 1 1.72 1.77 17.7000008 12.3900004 -0.86833 -0.495987 1.0 +4516 1 1.72 0.0 19.4699993 12.3900004 -0.652729 -0.757592 1.0 +4517 1 1.72 3.54 17.7000008 10.6199999 -0.188558 -0.982062 1.0 +4518 1 1.72 5.31 19.4699993 10.6199999 0.451584 -0.892229 1.0 +4519 1 1.72 5.31 17.7000008 12.3900004 -0.479953 -0.877294 1.0 +4520 1 1.72 3.54 19.4699993 12.3900004 -0.931169 0.364588 1.0 +4521 1 1.72 7.0799999 17.7000008 10.6199999 1 -0.000774994 1.0 +4522 1 1.72 8.8500004 19.4699993 10.6199999 -0.758272 0.651938 1.0 +4523 1 1.72 8.8500004 17.7000008 12.3900004 0.557064 -0.83047 1.0 +4524 1 1.72 7.0799999 19.4699993 12.3900004 -0.949933 -0.312453 1.0 +4525 1 1.72 10.6199999 17.7000008 10.6199999 0.110061 0.993925 1.0 +4526 1 1.72 12.3900004 19.4699993 10.6199999 0.115398 0.993319 1.0 +4527 1 1.72 12.3900004 17.7000008 12.3900004 -0.665778 -0.74615 1.0 +4528 1 1.72 10.6199999 19.4699993 12.3900004 -0.334698 0.942325 1.0 +4529 1 1.72 14.1599999 17.7000008 10.6199999 0.424145 0.905594 1.0 +4530 1 1.72 15.9300004 19.4699993 10.6199999 0.618126 -0.786079 1.0 +4531 1 1.72 15.9300004 17.7000008 12.3900004 -0.936358 0.351046 1.0 +4532 1 1.72 14.1599999 19.4699993 12.3900004 0.38979 0.920904 1.0 +4533 1 1.72 17.7000008 17.7000008 10.6199999 0.4006 -0.916253 1.0 +4534 1 1.72 19.4699993 19.4699993 10.6199999 0.622408 0.782693 1.0 +4535 1 1.72 19.4699993 17.7000008 12.3900004 0.793847 -0.608117 1.0 +4536 1 1.72 17.7000008 19.4699993 12.3900004 -0.537975 0.842961 1.0 +4537 1 1.72 21.2399998 17.7000008 10.6199999 -0.556228 -0.83103 1.0 +4538 1 1.72 23.0100002 19.4699993 10.6199999 -0.872784 -0.488107 1.0 +4539 1 1.72 23.0100002 17.7000008 12.3900004 -0.345759 -0.938323 1.0 +4540 1 1.72 21.2399998 19.4699993 12.3900004 0.0260887 0.99966 1.0 +4541 1 1.72 24.7800007 17.7000008 10.6199999 0.943649 -0.330949 1.0 +4542 1 1.72 26.5499993 19.4699993 10.6199999 0.906226 0.422795 1.0 +4543 1 1.72 26.5499993 17.7000008 12.3900004 -0.653568 0.756868 1.0 +4544 1 1.72 24.7800007 19.4699993 12.3900004 0.363348 -0.931654 1.0 +4545 1 1.72 0.0 21.2399998 10.6199999 0.997162 0.0752915 1.0 +4546 1 1.72 1.77 23.0100002 10.6199999 0.811111 -0.584892 1.0 +4547 1 1.72 1.77 21.2399998 12.3900004 0.700551 -0.713602 1.0 +4548 1 1.72 0.0 23.0100002 12.3900004 0.515933 -0.856629 1.0 +4549 1 1.72 3.54 21.2399998 10.6199999 -0.662327 0.749215 1.0 +4550 1 1.72 5.31 23.0100002 10.6199999 0.901628 -0.432511 1.0 +4551 1 1.72 5.31 21.2399998 12.3900004 0.999667 0.025797 1.0 +4552 1 1.72 3.54 23.0100002 12.3900004 0.931109 -0.364742 1.0 +4553 1 1.72 7.0799999 21.2399998 10.6199999 -0.597114 -0.802157 1.0 +4554 1 1.72 8.8500004 23.0100002 10.6199999 0.793064 -0.609139 1.0 +4555 1 1.72 8.8500004 21.2399998 12.3900004 0.756695 -0.653768 1.0 +4556 1 1.72 7.0799999 23.0100002 12.3900004 0.720351 -0.693609 1.0 +4557 1 1.72 10.6199999 21.2399998 10.6199999 0.810855 0.585247 1.0 +4558 1 1.72 12.3900004 23.0100002 10.6199999 -0.0903136 0.995913 1.0 +4559 1 1.72 12.3900004 21.2399998 12.3900004 0.186442 -0.982466 1.0 +4560 1 1.72 10.6199999 23.0100002 12.3900004 -0.284874 -0.958565 1.0 +4561 1 1.72 14.1599999 21.2399998 10.6199999 -0.289868 0.957067 1.0 +4562 1 1.72 15.9300004 23.0100002 10.6199999 0.0838039 0.996482 1.0 +4563 1 1.72 15.9300004 21.2399998 12.3900004 0.591675 0.806176 1.0 +4564 1 1.72 14.1599999 23.0100002 12.3900004 0.999111 0.0421503 1.0 +4565 1 1.72 17.7000008 21.2399998 10.6199999 -0.146207 0.989254 1.0 +4566 1 1.72 19.4699993 23.0100002 10.6199999 -0.913395 0.407075 1.0 +4567 1 1.72 19.4699993 21.2399998 12.3900004 -0.503238 -0.864148 1.0 +4568 1 1.72 17.7000008 23.0100002 12.3900004 -0.124052 -0.992276 1.0 +4569 1 1.72 21.2399998 21.2399998 10.6199999 0.683509 0.729942 1.0 +4570 1 1.72 23.0100002 23.0100002 10.6199999 -0.979364 -0.202103 1.0 +4571 1 1.72 23.0100002 21.2399998 12.3900004 -0.593631 -0.804737 1.0 +4572 1 1.72 21.2399998 23.0100002 12.3900004 -0.390436 -0.92063 1.0 +4573 1 1.72 24.7800007 21.2399998 10.6199999 0.732179 -0.681113 1.0 +4574 1 1.72 26.5499993 23.0100002 10.6199999 0.824941 0.565219 1.0 +4575 1 1.72 26.5499993 21.2399998 12.3900004 0.148915 0.98885 1.0 +4576 1 1.72 24.7800007 23.0100002 12.3900004 0.632992 -0.774158 1.0 +4577 1 1.72 0.0 24.7800007 10.6199999 -0.813481 -0.581591 1.0 +4578 1 1.72 1.77 26.5499993 10.6199999 0.00527343 0.999986 1.0 +4579 1 1.72 1.77 24.7800007 12.3900004 -0.999527 -0.0307504 1.0 +4580 1 1.72 0.0 26.5499993 12.3900004 -0.985953 0.167026 1.0 +4581 1 1.72 3.54 24.7800007 10.6199999 -0.15577 0.987793 1.0 +4582 1 1.72 5.31 26.5499993 10.6199999 0.536408 0.843959 1.0 +4583 1 1.72 5.31 24.7800007 12.3900004 0.743861 -0.668334 1.0 +4584 1 1.72 3.54 26.5499993 12.3900004 -0.406549 -0.913629 1.0 +4585 1 1.72 7.0799999 24.7800007 10.6199999 -0.41531 -0.90968 1.0 +4586 1 1.72 8.8500004 26.5499993 10.6199999 0.903185 -0.429252 1.0 +4587 1 1.72 8.8500004 24.7800007 12.3900004 -0.800286 -0.599618 1.0 +4588 1 1.72 7.0799999 26.5499993 12.3900004 -0.546893 -0.837202 1.0 +4589 1 1.72 10.6199999 24.7800007 10.6199999 0.6517 0.758477 1.0 +4590 1 1.72 12.3900004 26.5499993 10.6199999 -0.521078 0.853509 1.0 +4591 1 1.72 12.3900004 24.7800007 12.3900004 0.355689 -0.934604 1.0 +4592 1 1.72 10.6199999 26.5499993 12.3900004 -0.359895 -0.932993 1.0 +4593 1 1.72 14.1599999 24.7800007 10.6199999 0.696541 -0.717517 1.0 +4594 1 1.72 15.9300004 26.5499993 10.6199999 0.297939 0.954585 1.0 +4595 1 1.72 15.9300004 24.7800007 12.3900004 -0.140014 0.99015 1.0 +4596 1 1.72 14.1599999 26.5499993 12.3900004 0.802136 0.597142 1.0 +4597 1 1.72 17.7000008 24.7800007 10.6199999 0.627523 0.778598 1.0 +4598 1 1.72 19.4699993 26.5499993 10.6199999 0.734195 0.678939 1.0 +4599 1 1.72 19.4699993 24.7800007 12.3900004 -0.496642 0.867956 1.0 +4600 1 1.72 17.7000008 26.5499993 12.3900004 0.144391 -0.989521 1.0 +4601 1 1.72 21.2399998 24.7800007 10.6199999 0.161764 -0.986829 1.0 +4602 1 1.72 23.0100002 26.5499993 10.6199999 0.992924 0.118749 1.0 +4603 1 1.72 23.0100002 24.7800007 12.3900004 -0.986063 0.166374 1.0 +4604 1 1.72 21.2399998 26.5499993 12.3900004 0.702052 0.712126 1.0 +4605 1 1.72 24.7800007 24.7800007 10.6199999 -0.960074 0.279745 1.0 +4606 1 1.72 26.5499993 26.5499993 10.6199999 0.983554 -0.180616 1.0 +4607 1 1.72 26.5499993 24.7800007 12.3900004 0.722759 -0.691101 1.0 +4608 1 1.72 24.7800007 26.5499993 12.3900004 -0.580057 0.814576 1.0 +4609 1 1.72 0.0 14.1599999 14.1599999 0.898495 -0.438984 1.0 +4610 1 1.72 1.77 15.9300004 14.1599999 0.898355 -0.43927 1.0 +4611 1 1.72 1.77 14.1599999 15.9300004 -0.999822 0.0188926 1.0 +4612 1 1.72 0.0 15.9300004 15.9300004 -0.653457 -0.756964 1.0 +4613 1 1.72 3.54 14.1599999 14.1599999 -0.719114 0.694892 1.0 +4614 1 1.72 5.31 15.9300004 14.1599999 0.479834 0.877359 1.0 +4615 1 1.72 5.31 14.1599999 15.9300004 -0.538514 -0.842617 1.0 +4616 1 1.72 3.54 15.9300004 15.9300004 -0.527295 0.849682 1.0 +4617 1 1.72 7.0799999 14.1599999 14.1599999 0.615282 0.788307 1.0 +4618 1 1.72 8.8500004 15.9300004 14.1599999 0.974251 0.225466 1.0 +4619 1 1.72 8.8500004 14.1599999 15.9300004 0.909249 0.416253 1.0 +4620 1 1.72 7.0799999 15.9300004 15.9300004 0.557205 0.830375 1.0 +4621 1 1.72 10.6199999 14.1599999 14.1599999 0.734293 -0.678833 1.0 +4622 1 1.72 12.3900004 15.9300004 14.1599999 -0.58749 0.809231 1.0 +4623 1 1.72 12.3900004 14.1599999 15.9300004 -0.306743 -0.951793 1.0 +4624 1 1.72 10.6199999 15.9300004 15.9300004 0.271723 -0.962376 1.0 +4625 1 1.72 14.1599999 14.1599999 14.1599999 0.976646 0.214856 1.0 +4626 1 1.72 15.9300004 15.9300004 14.1599999 0.72288 -0.690974 1.0 +4627 1 1.72 15.9300004 14.1599999 15.9300004 0.101237 0.994862 1.0 +4628 1 1.72 14.1599999 15.9300004 15.9300004 0.934698 0.355444 1.0 +4629 1 1.72 17.7000008 14.1599999 14.1599999 -0.780883 -0.624677 1.0 +4630 1 1.72 19.4699993 15.9300004 14.1599999 0.861882 0.507108 1.0 +4631 1 1.72 19.4699993 14.1599999 15.9300004 -0.909657 0.41536 1.0 +4632 1 1.72 17.7000008 15.9300004 15.9300004 0.979476 -0.20156 1.0 +4633 1 1.72 21.2399998 14.1599999 14.1599999 -0.979973 -0.199131 1.0 +4634 1 1.72 23.0100002 15.9300004 14.1599999 0.255641 0.966772 1.0 +4635 1 1.72 23.0100002 14.1599999 15.9300004 0.994045 0.10897 1.0 +4636 1 1.72 21.2399998 15.9300004 15.9300004 -0.804393 -0.594098 1.0 +4637 1 1.72 24.7800007 14.1599999 14.1599999 0.967582 -0.252559 1.0 +4638 1 1.72 26.5499993 15.9300004 14.1599999 0.769435 0.638725 1.0 +4639 1 1.72 26.5499993 14.1599999 15.9300004 0.272809 -0.962068 1.0 +4640 1 1.72 24.7800007 15.9300004 15.9300004 0.66758 0.744538 1.0 +4641 1 1.72 0.0 17.7000008 14.1599999 -0.999948 0.0102384 1.0 +4642 1 1.72 1.77 19.4699993 14.1599999 -0.414781 0.909921 1.0 +4643 1 1.72 1.77 17.7000008 15.9300004 -0.730587 0.682819 1.0 +4644 1 1.72 0.0 19.4699993 15.9300004 -0.652983 -0.757373 1.0 +4645 1 1.72 3.54 17.7000008 14.1599999 -0.505507 0.862823 1.0 +4646 1 1.72 5.31 19.4699993 14.1599999 -0.214487 0.976727 1.0 +4647 1 1.72 5.31 17.7000008 15.9300004 -0.629988 -0.776605 1.0 +4648 1 1.72 3.54 19.4699993 15.9300004 0.728578 -0.684962 1.0 +4649 1 1.72 7.0799999 17.7000008 14.1599999 0.598541 -0.801092 1.0 +4650 1 1.72 8.8500004 19.4699993 14.1599999 0.217028 -0.976165 1.0 +4651 1 1.72 8.8500004 17.7000008 15.9300004 -0.924673 0.380763 1.0 +4652 1 1.72 7.0799999 19.4699993 15.9300004 -0.949249 0.314526 1.0 +4653 1 1.72 10.6199999 17.7000008 14.1599999 -0.872514 -0.488589 1.0 +4654 1 1.72 12.3900004 19.4699993 14.1599999 0.234325 -0.972158 1.0 +4655 1 1.72 12.3900004 17.7000008 15.9300004 0.978999 0.203864 1.0 +4656 1 1.72 10.6199999 19.4699993 15.9300004 -0.716114 -0.697983 1.0 +4657 1 1.72 14.1599999 17.7000008 14.1599999 0.230999 -0.972954 1.0 +4658 1 1.72 15.9300004 19.4699993 14.1599999 0.711772 -0.702411 1.0 +4659 1 1.72 15.9300004 17.7000008 15.9300004 0.927654 0.37344 1.0 +4660 1 1.72 14.1599999 19.4699993 15.9300004 0.162511 0.986707 1.0 +4661 1 1.72 17.7000008 17.7000008 14.1599999 -0.464053 -0.885807 1.0 +4662 1 1.72 19.4699993 19.4699993 14.1599999 0.0203239 -0.999793 1.0 +4663 1 1.72 19.4699993 17.7000008 15.9300004 -0.752808 -0.65824 1.0 +4664 1 1.72 17.7000008 19.4699993 15.9300004 -0.113934 -0.993488 1.0 +4665 1 1.72 21.2399998 17.7000008 14.1599999 0.995299 0.0968465 1.0 +4666 1 1.72 23.0100002 19.4699993 14.1599999 0.825943 0.563753 1.0 +4667 1 1.72 23.0100002 17.7000008 15.9300004 -0.940301 0.340345 1.0 +4668 1 1.72 21.2399998 19.4699993 15.9300004 -0.941709 0.336429 1.0 +4669 1 1.72 24.7800007 17.7000008 14.1599999 0.0628844 -0.998021 1.0 +4670 1 1.72 26.5499993 19.4699993 14.1599999 -0.0214455 -0.99977 1.0 +4671 1 1.72 26.5499993 17.7000008 15.9300004 0.800256 -0.599659 1.0 +4672 1 1.72 24.7800007 19.4699993 15.9300004 -0.77575 0.631041 1.0 +4673 1 1.72 0.0 21.2399998 14.1599999 -0.519774 -0.854304 1.0 +4674 1 1.72 1.77 23.0100002 14.1599999 -0.994022 -0.109178 1.0 +4675 1 1.72 1.77 21.2399998 15.9300004 0.672958 0.739681 1.0 +4676 1 1.72 0.0 23.0100002 15.9300004 0.889674 0.456597 1.0 +4677 1 1.72 3.54 21.2399998 14.1599999 0.818423 -0.574616 1.0 +4678 1 1.72 5.31 23.0100002 14.1599999 -0.957733 0.287658 1.0 +4679 1 1.72 5.31 21.2399998 15.9300004 -0.645442 -0.763809 1.0 +4680 1 1.72 3.54 23.0100002 15.9300004 -0.975916 0.218145 1.0 +4681 1 1.72 7.0799999 21.2399998 14.1599999 -0.960305 0.27895 1.0 +4682 1 1.72 8.8500004 23.0100002 14.1599999 -0.939525 0.34248 1.0 +4683 1 1.72 8.8500004 21.2399998 15.9300004 0.603042 0.797709 1.0 +4684 1 1.72 7.0799999 23.0100002 15.9300004 0.697728 0.716363 1.0 +4685 1 1.72 10.6199999 21.2399998 14.1599999 0.981033 -0.193843 1.0 +4686 1 1.72 12.3900004 23.0100002 14.1599999 0.235213 -0.971944 1.0 +4687 1 1.72 12.3900004 21.2399998 15.9300004 0.950475 0.310802 1.0 +4688 1 1.72 10.6199999 23.0100002 15.9300004 -0.968579 0.248708 1.0 +4689 1 1.72 14.1599999 21.2399998 14.1599999 0.675919 -0.736976 1.0 +4690 1 1.72 15.9300004 23.0100002 14.1599999 -0.0863749 0.996263 1.0 +4691 1 1.72 15.9300004 21.2399998 15.9300004 0.906294 -0.422647 1.0 +4692 1 1.72 14.1599999 23.0100002 15.9300004 -0.724048 -0.689749 1.0 +4693 1 1.72 17.7000008 21.2399998 14.1599999 -0.742833 0.669477 1.0 +4694 1 1.72 19.4699993 23.0100002 14.1599999 0.561499 -0.827478 1.0 +4695 1 1.72 19.4699993 21.2399998 15.9300004 0.162316 -0.986739 1.0 +4696 1 1.72 17.7000008 23.0100002 15.9300004 -0.130022 -0.991511 1.0 +4697 1 1.72 21.2399998 21.2399998 14.1599999 0.98598 0.166862 1.0 +4698 1 1.72 23.0100002 23.0100002 14.1599999 -0.737623 -0.675212 1.0 +4699 1 1.72 23.0100002 21.2399998 15.9300004 0.951756 -0.306854 1.0 +4700 1 1.72 21.2399998 23.0100002 15.9300004 0.676021 -0.736882 1.0 +4701 1 1.72 24.7800007 21.2399998 14.1599999 0.999702 0.0244247 1.0 +4702 1 1.72 26.5499993 23.0100002 14.1599999 0.496668 0.86794 1.0 +4703 1 1.72 26.5499993 21.2399998 15.9300004 0.803789 0.594915 1.0 +4704 1 1.72 24.7800007 23.0100002 15.9300004 -0.999822 -0.0188456 1.0 +4705 1 1.72 0.0 24.7800007 14.1599999 -0.907671 -0.419682 1.0 +4706 1 1.72 1.77 26.5499993 14.1599999 -0.965801 -0.259283 1.0 +4707 1 1.72 1.77 24.7800007 15.9300004 -0.879901 0.475158 1.0 +4708 1 1.72 0.0 26.5499993 15.9300004 0.951565 -0.307449 1.0 +4709 1 1.72 3.54 24.7800007 14.1599999 0.0527975 0.998605 1.0 +4710 1 1.72 5.31 26.5499993 14.1599999 -0.702953 -0.711237 1.0 +4711 1 1.72 5.31 24.7800007 15.9300004 -0.647956 0.761678 1.0 +4712 1 1.72 3.54 26.5499993 15.9300004 0.99404 0.109016 1.0 +4713 1 1.72 7.0799999 24.7800007 14.1599999 -0.994139 0.108113 1.0 +4714 1 1.72 8.8500004 26.5499993 14.1599999 -0.47316 -0.880976 1.0 +4715 1 1.72 8.8500004 24.7800007 15.9300004 0.989064 -0.147486 1.0 +4716 1 1.72 7.0799999 26.5499993 15.9300004 -0.630752 -0.775985 1.0 +4717 1 1.72 10.6199999 24.7800007 14.1599999 0.841419 0.540382 1.0 +4718 1 1.72 12.3900004 26.5499993 14.1599999 -0.729401 0.684086 1.0 +4719 1 1.72 12.3900004 24.7800007 15.9300004 0.294335 0.955702 1.0 +4720 1 1.72 10.6199999 26.5499993 15.9300004 -0.985284 0.170927 1.0 +4721 1 1.72 14.1599999 24.7800007 14.1599999 0.950681 -0.310171 1.0 +4722 1 1.72 15.9300004 26.5499993 14.1599999 0.894618 -0.446831 1.0 +4723 1 1.72 15.9300004 24.7800007 15.9300004 -0.814836 -0.579692 1.0 +4724 1 1.72 14.1599999 26.5499993 15.9300004 0.923357 0.383942 1.0 +4725 1 1.72 17.7000008 24.7800007 14.1599999 -0.854541 0.519383 1.0 +4726 1 1.72 19.4699993 26.5499993 14.1599999 -0.666207 -0.745767 1.0 +4727 1 1.72 19.4699993 24.7800007 15.9300004 0.998296 -0.0583603 1.0 +4728 1 1.72 17.7000008 26.5499993 15.9300004 0.833738 0.552161 1.0 +4729 1 1.72 21.2399998 24.7800007 14.1599999 -0.996334 -0.0855453 1.0 +4730 1 1.72 23.0100002 26.5499993 14.1599999 -0.639059 -0.769158 1.0 +4731 1 1.72 23.0100002 24.7800007 15.9300004 0.910601 0.413287 1.0 +4732 1 1.72 21.2399998 26.5499993 15.9300004 0.992126 -0.125246 1.0 +4733 1 1.72 24.7800007 24.7800007 14.1599999 0.974517 -0.224313 1.0 +4734 1 1.72 26.5499993 26.5499993 14.1599999 0.646393 0.763005 1.0 +4735 1 1.72 26.5499993 24.7800007 15.9300004 -0.789694 0.6135 1.0 +4736 1 1.72 24.7800007 26.5499993 15.9300004 0.88136 -0.472445 1.0 +4737 1 1.72 0.0 14.1599999 17.7000008 -0.71052 -0.703677 1.0 +4738 1 1.72 1.77 15.9300004 17.7000008 -0.903994 -0.427545 1.0 +4739 1 1.72 1.77 14.1599999 19.4699993 -0.722258 -0.691624 0.9998646 +4740 1 1.72 0.0 15.9300004 19.4699993 -0.868595 -0.495523 0.9998646 +4741 1 1.72 3.54 14.1599999 17.7000008 -0.176732 0.984259 1.0 +4742 1 1.72 5.31 15.9300004 17.7000008 0.12352 -0.992342 1.0 +4743 1 1.72 5.31 14.1599999 19.4699993 -0.99653 0.0832297 0.9998646 +4744 1 1.72 3.54 15.9300004 19.4699993 -0.739522 -0.673132 0.9998646 +4745 1 1.72 7.0799999 14.1599999 17.7000008 0.963981 -0.265971 1.0 +4746 1 1.72 8.8500004 15.9300004 17.7000008 -0.814702 0.57988 1.0 +4747 1 1.72 8.8500004 14.1599999 19.4699993 0.98442 -0.175835 0.9998646 +4748 1 1.72 7.0799999 15.9300004 19.4699993 -0.987866 -0.15531 0.9998646 +4749 1 1.72 10.6199999 14.1599999 17.7000008 0.381502 -0.924368 1.0 +4750 1 1.72 12.3900004 15.9300004 17.7000008 -0.412419 -0.910995 1.0 +4751 1 1.72 12.3900004 14.1599999 19.4699993 -0.839682 0.543079 0.9998646 +4752 1 1.72 10.6199999 15.9300004 19.4699993 -0.913468 0.406909 0.9998646 +4753 1 1.72 14.1599999 14.1599999 17.7000008 0.142699 0.989766 1.0 +4754 1 1.72 15.9300004 15.9300004 17.7000008 -0.920861 -0.38989 1.0 +4755 1 1.72 15.9300004 14.1599999 19.4699993 0.623914 -0.781493 0.9998646 +4756 1 1.72 14.1599999 15.9300004 19.4699993 -0.828256 -0.56035 0.9998646 +4757 1 1.72 17.7000008 14.1599999 17.7000008 -0.258405 0.966037 1.0 +4758 1 1.72 19.4699993 15.9300004 17.7000008 0.74072 0.671814 1.0 +4759 1 1.72 19.4699993 14.1599999 19.4699993 0.641762 -0.766904 0.9998646 +4760 1 1.72 17.7000008 15.9300004 19.4699993 -0.989296 -0.145925 0.9998646 +4761 1 1.72 21.2399998 14.1599999 17.7000008 -0.810254 0.586079 1.0 +4762 1 1.72 23.0100002 15.9300004 17.7000008 0.655839 0.754901 1.0 +4763 1 1.72 23.0100002 14.1599999 19.4699993 0.998305 0.0581924 0.9998646 +4764 1 1.72 21.2399998 15.9300004 19.4699993 -0.76789 0.640581 0.9998646 +4765 1 1.72 24.7800007 14.1599999 17.7000008 -0.410016 -0.912078 1.0 +4766 1 1.72 26.5499993 15.9300004 17.7000008 0.911191 0.411984 1.0 +4767 1 1.72 26.5499993 14.1599999 19.4699993 0.328368 0.94455 0.9998646 +4768 1 1.72 24.7800007 15.9300004 19.4699993 -0.759067 -0.651012 0.9998646 +4769 1 1.72 0.0 17.7000008 17.7000008 -0.755623 0.655006 1.0 +4770 1 1.72 1.77 19.4699993 17.7000008 -0.558683 -0.829382 1.0 +4771 1 1.72 1.77 17.7000008 19.4699993 0.986182 -0.165668 0.9998646 +4772 1 1.72 0.0 19.4699993 19.4699993 -0.642325 0.766433 0.9998646 +4773 1 1.72 3.54 17.7000008 17.7000008 -0.844871 0.53497 1.0 +4774 1 1.72 5.31 19.4699993 17.7000008 0.48545 0.874264 1.0 +4775 1 1.72 5.31 17.7000008 19.4699993 0.57745 -0.816426 0.9998646 +4776 1 1.72 3.54 19.4699993 19.4699993 -0.584462 0.811421 0.9998646 +4777 1 1.72 7.0799999 17.7000008 17.7000008 -0.402171 0.915565 1.0 +4778 1 1.72 8.8500004 19.4699993 17.7000008 0.710853 0.70334 1.0 +4779 1 1.72 8.8500004 17.7000008 19.4699993 0.532986 -0.846124 0.9998646 +4780 1 1.72 7.0799999 19.4699993 19.4699993 0.700774 0.713383 0.9998646 +4781 1 1.72 10.6199999 17.7000008 17.7000008 0.0735889 0.997289 1.0 +4782 1 1.72 12.3900004 19.4699993 17.7000008 -0.986772 0.162111 1.0 +4783 1 1.72 12.3900004 17.7000008 19.4699993 -0.947271 -0.320433 0.9998646 +4784 1 1.72 10.6199999 19.4699993 19.4699993 -0.257096 -0.966386 0.9998646 +4785 1 1.72 14.1599999 17.7000008 17.7000008 -0.173897 -0.984764 1.0 +4786 1 1.72 15.9300004 19.4699993 17.7000008 -0.893974 -0.448119 1.0 +4787 1 1.72 15.9300004 17.7000008 19.4699993 0.498785 0.866726 0.9998646 +4788 1 1.72 14.1599999 19.4699993 19.4699993 0.227872 0.973691 0.9998646 +4789 1 1.72 17.7000008 17.7000008 17.7000008 -0.969279 0.245964 1.0 +4790 1 1.72 19.4699993 19.4699993 17.7000008 -0.444064 0.895995 1.0 +4791 1 1.72 19.4699993 17.7000008 19.4699993 0.839164 0.543878 0.9998646 +4792 1 1.72 17.7000008 19.4699993 19.4699993 -0.457329 0.889297 0.9998646 +4793 1 1.72 21.2399998 17.7000008 17.7000008 0.445656 0.895204 1.0 +4794 1 1.72 23.0100002 19.4699993 17.7000008 0.283655 0.958926 1.0 +4795 1 1.72 23.0100002 17.7000008 19.4699993 0.50898 0.860778 0.9998646 +4796 1 1.72 21.2399998 19.4699993 19.4699993 -0.620733 0.784022 0.9998646 +4797 1 1.72 24.7800007 17.7000008 17.7000008 -0.839294 0.543677 1.0 +4798 1 1.72 26.5499993 19.4699993 17.7000008 0.226712 0.973962 1.0 +4799 1 1.72 26.5499993 17.7000008 19.4699993 0.160581 -0.987023 0.9998646 +4800 1 1.72 24.7800007 19.4699993 19.4699993 -0.766613 0.64211 0.9998646 +4801 1 1.72 0.0 21.2399998 17.7000008 0.370123 -0.928983 1.0 +4802 1 1.72 1.77 23.0100002 17.7000008 -0.996751 -0.0805427 1.0 +4803 1 1.72 1.77 21.2399998 19.4699993 -0.877737 0.479143 0.9998646 +4804 1 1.72 0.0 23.0100002 19.4699993 -0.176344 -0.984329 0.9998646 +4805 1 1.72 3.54 21.2399998 17.7000008 -0.812291 -0.583252 1.0 +4806 1 1.72 5.31 23.0100002 17.7000008 -0.963973 -0.266002 1.0 +4807 1 1.72 5.31 21.2399998 19.4699993 0.438022 0.898964 0.9998646 +4808 1 1.72 3.54 23.0100002 19.4699993 0.936712 -0.350101 0.9998646 +4809 1 1.72 7.0799999 21.2399998 17.7000008 0.609551 -0.792747 1.0 +4810 1 1.72 8.8500004 23.0100002 17.7000008 0.705278 -0.708931 1.0 +4811 1 1.72 8.8500004 21.2399998 19.4699993 -0.958505 -0.285074 0.9998646 +4812 1 1.72 7.0799999 23.0100002 19.4699993 0.201802 -0.979426 0.9998646 +4813 1 1.72 10.6199999 21.2399998 17.7000008 -0.141119 -0.989993 1.0 +4814 1 1.72 12.3900004 23.0100002 17.7000008 -0.52444 0.851447 1.0 +4815 1 1.72 12.3900004 21.2399998 19.4699993 0.705299 0.70891 0.9998646 +4816 1 1.72 10.6199999 23.0100002 19.4699993 -0.381262 -0.924467 0.9998646 +4817 1 1.72 14.1599999 21.2399998 17.7000008 -0.843638 -0.536912 1.0 +4818 1 1.72 15.9300004 23.0100002 17.7000008 0.0410599 -0.999157 1.0 +4819 1 1.72 15.9300004 21.2399998 19.4699993 -0.0055479 -0.999985 0.9998646 +4820 1 1.72 14.1599999 23.0100002 19.4699993 0.926649 0.375927 0.9998646 +4821 1 1.72 17.7000008 21.2399998 17.7000008 0.595931 0.803036 1.0 +4822 1 1.72 19.4699993 23.0100002 17.7000008 0.518293 -0.855203 1.0 +4823 1 1.72 19.4699993 21.2399998 19.4699993 0.984962 -0.172773 0.9998646 +4824 1 1.72 17.7000008 23.0100002 19.4699993 -0.964206 0.265155 0.9998646 +4825 1 1.72 21.2399998 21.2399998 17.7000008 0.807127 0.590378 1.0 +4826 1 1.72 23.0100002 23.0100002 17.7000008 -0.812304 0.583234 1.0 +4827 1 1.72 23.0100002 21.2399998 19.4699993 -0.311821 0.950141 0.9998646 +4828 1 1.72 21.2399998 23.0100002 19.4699993 0.855357 0.518039 0.9998646 +4829 1 1.72 24.7800007 21.2399998 17.7000008 -0.0451344 -0.998981 1.0 +4830 1 1.72 26.5499993 23.0100002 17.7000008 0.801778 0.597622 1.0 +4831 1 1.72 26.5499993 21.2399998 19.4699993 0.173712 -0.984796 0.9998646 +4832 1 1.72 24.7800007 23.0100002 19.4699993 -0.147421 -0.989074 0.9998646 +4833 1 1.72 0.0 24.7800007 17.7000008 -0.96452 0.264009 1.0 +4834 1 1.72 1.77 26.5499993 17.7000008 -0.990408 -0.138174 1.0 +4835 1 1.72 1.77 24.7800007 19.4699993 -0.50363 0.863919 0.9998646 +4836 1 1.72 0.0 26.5499993 19.4699993 -0.888278 -0.459306 0.9998646 +4837 1 1.72 3.54 24.7800007 17.7000008 -0.69788 -0.716215 1.0 +4838 1 1.72 5.31 26.5499993 17.7000008 -0.984385 0.176028 1.0 +4839 1 1.72 5.31 24.7800007 19.4699993 -0.99621 -0.0869785 0.9998646 +4840 1 1.72 3.54 26.5499993 19.4699993 -0.632368 -0.774668 0.9998646 +4841 1 1.72 7.0799999 24.7800007 17.7000008 0.981394 0.192006 1.0 +4842 1 1.72 8.8500004 26.5499993 17.7000008 -0.823995 0.566597 1.0 +4843 1 1.72 8.8500004 24.7800007 19.4699993 -0.961219 0.275786 0.9998646 +4844 1 1.72 7.0799999 26.5499993 19.4699993 -0.730726 0.68267 0.9998646 +4845 1 1.72 10.6199999 24.7800007 17.7000008 -0.148554 -0.988904 1.0 +4846 1 1.72 12.3900004 26.5499993 17.7000008 0.989886 0.141863 1.0 +4847 1 1.72 12.3900004 24.7800007 19.4699993 0.722733 0.691127 0.9998646 +4848 1 1.72 10.6199999 26.5499993 19.4699993 0.739725 0.672909 0.9998646 +4849 1 1.72 14.1599999 24.7800007 17.7000008 0.139647 0.990201 1.0 +4850 1 1.72 15.9300004 26.5499993 17.7000008 0.72947 0.684013 1.0 +4851 1 1.72 15.9300004 24.7800007 19.4699993 0.804404 -0.594082 0.9998646 +4852 1 1.72 14.1599999 26.5499993 19.4699993 -0.19326 0.981147 0.9998646 +4853 1 1.72 17.7000008 24.7800007 17.7000008 0.745325 -0.666702 1.0 +4854 1 1.72 19.4699993 26.5499993 17.7000008 0.910565 -0.413365 1.0 +4855 1 1.72 19.4699993 24.7800007 19.4699993 -0.995491 0.0948576 0.9998646 +4856 1 1.72 17.7000008 26.5499993 19.4699993 0.58679 -0.809739 0.9998646 +4857 1 1.72 21.2399998 24.7800007 17.7000008 0.847549 -0.530718 1.0 +4858 1 1.72 23.0100002 26.5499993 17.7000008 0.155607 0.987819 1.0 +4859 1 1.72 23.0100002 24.7800007 19.4699993 -0.874717 -0.484635 0.9998646 +4860 1 1.72 21.2399998 26.5499993 19.4699993 0.843141 0.537693 0.9998646 +4861 1 1.72 24.7800007 24.7800007 17.7000008 0.0392297 -0.99923 1.0 +4862 1 1.72 26.5499993 26.5499993 17.7000008 -0.665476 -0.746419 1.0 +4863 1 1.72 26.5499993 24.7800007 19.4699993 -0.987315 -0.158773 0.9998646 +4864 1 1.72 24.7800007 26.5499993 19.4699993 -0.926055 -0.377388 0.9998646 +4865 1 1.72 0.0 14.1599999 21.2399998 -0.859299 0.511473 0.9508352 +4866 1 1.72 1.77 15.9300004 21.2399998 -0.947509 0.319728 0.9508352 +4867 1 1.72 1.77 14.1599999 23.0100002 -0.549143 -0.835728 0.8177586 +4868 1 1.72 0.0 15.9300004 23.0100002 -0.409049 0.912513 0.8177586 +4869 1 1.72 3.54 14.1599999 21.2399998 0.948492 0.316801 0.9508352 +4870 1 1.72 5.31 15.9300004 21.2399998 0.418075 0.908412 0.9508352 +4871 1 1.72 5.31 14.1599999 23.0100002 0.829361 -0.558713 0.8177586 +4872 1 1.72 3.54 15.9300004 23.0100002 0.680949 0.732331 0.8177586 +4873 1 1.72 7.0799999 14.1599999 21.2399998 0.421429 -0.906861 0.9508352 +4874 1 1.72 8.8500004 15.9300004 21.2399998 -0.679022 0.734118 0.9508352 +4875 1 1.72 8.8500004 14.1599999 23.0100002 0.877322 -0.479903 0.8177586 +4876 1 1.72 7.0799999 15.9300004 23.0100002 -0.0614811 -0.998108 0.8177586 +4877 1 1.72 10.6199999 14.1599999 21.2399998 -0.932853 -0.360258 0.9508352 +4878 1 1.72 12.3900004 15.9300004 21.2399998 -0.416156 0.909293 0.9508352 +4879 1 1.72 12.3900004 14.1599999 23.0100002 -0.9054 -0.42456 0.8177586 +4880 1 1.72 10.6199999 15.9300004 23.0100002 -0.910881 -0.41267 0.8177586 +4881 1 1.72 14.1599999 14.1599999 21.2399998 -0.9533 0.302024 0.9508352 +4882 1 1.72 15.9300004 15.9300004 21.2399998 0.672984 -0.739657 0.9508352 +4883 1 1.72 15.9300004 14.1599999 23.0100002 -0.371384 0.928479 0.8177586 +4884 1 1.72 14.1599999 15.9300004 23.0100002 0.983833 0.179087 0.8177586 +4885 1 1.72 17.7000008 14.1599999 21.2399998 0.608993 0.793175 0.9508352 +4886 1 1.72 19.4699993 15.9300004 21.2399998 -0.703806 -0.710393 0.9508352 +4887 1 1.72 19.4699993 14.1599999 23.0100002 0.556676 -0.83073 0.8177586 +4888 1 1.72 17.7000008 15.9300004 23.0100002 -0.50991 -0.860228 0.8177586 +4889 1 1.72 21.2399998 14.1599999 21.2399998 -0.458692 0.888595 0.9508352 +4890 1 1.72 23.0100002 15.9300004 21.2399998 0.140923 -0.99002 0.9508352 +4891 1 1.72 23.0100002 14.1599999 23.0100002 0.994933 -0.100543 0.8177586 +4892 1 1.72 21.2399998 15.9300004 23.0100002 -0.514367 -0.85757 0.8177586 +4893 1 1.72 24.7800007 14.1599999 21.2399998 0.611336 0.791371 0.9508352 +4894 1 1.72 26.5499993 15.9300004 21.2399998 0.614774 0.788704 0.9508352 +4895 1 1.72 26.5499993 14.1599999 23.0100002 -0.217201 0.976127 0.8177586 +4896 1 1.72 24.7800007 15.9300004 23.0100002 0.279073 -0.96027 0.8177586 +4897 1 1.72 0.0 17.7000008 21.2399998 -0.0555854 0.998454 0.9508352 +4898 1 1.72 1.77 19.4699993 21.2399998 0.696673 0.717389 0.9508352 +4899 1 1.72 1.77 17.7000008 23.0100002 0.180283 0.983615 0.8177586 +4900 1 1.72 0.0 19.4699993 23.0100002 -0.669533 -0.742782 0.8177586 +4901 1 1.72 3.54 17.7000008 21.2399998 -0.139767 0.990184 0.9508352 +4902 1 1.72 5.31 19.4699993 21.2399998 -0.994595 -0.103829 0.9508352 +4903 1 1.72 5.31 17.7000008 23.0100002 -0.583311 0.812249 0.8177586 +4904 1 1.72 3.54 19.4699993 23.0100002 0.945954 0.324299 0.8177586 +4905 1 1.72 7.0799999 17.7000008 21.2399998 0.859464 0.511195 0.9508352 +4906 1 1.72 8.8500004 19.4699993 21.2399998 0.537374 -0.843344 0.9508352 +4907 1 1.72 8.8500004 17.7000008 23.0100002 -0.6427 -0.766118 0.8177586 +4908 1 1.72 7.0799999 19.4699993 23.0100002 -0.986665 -0.162764 0.8177586 +4909 1 1.72 10.6199999 17.7000008 21.2399998 -0.992585 0.121553 0.9508352 +4910 1 1.72 12.3900004 19.4699993 21.2399998 -0.747558 0.664196 0.9508352 +4911 1 1.72 12.3900004 17.7000008 23.0100002 0.304539 -0.9525 0.8177586 +4912 1 1.72 10.6199999 19.4699993 23.0100002 -0.990568 0.137025 0.8177586 +4913 1 1.72 14.1599999 17.7000008 21.2399998 -0.619412 -0.785066 0.9508352 +4914 1 1.72 15.9300004 19.4699993 21.2399998 0.535863 -0.844305 0.9508352 +4915 1 1.72 15.9300004 17.7000008 23.0100002 -0.98722 0.159363 0.8177586 +4916 1 1.72 14.1599999 19.4699993 23.0100002 -0.529231 -0.848478 0.8177586 +4917 1 1.72 17.7000008 17.7000008 21.2399998 0.161865 -0.986813 0.9508352 +4918 1 1.72 19.4699993 19.4699993 21.2399998 -0.980679 -0.195622 0.9508352 +4919 1 1.72 19.4699993 17.7000008 23.0100002 -0.208298 -0.978065 0.8177586 +4920 1 1.72 17.7000008 19.4699993 23.0100002 0.998815 0.0486723 0.8177586 +4921 1 1.72 21.2399998 17.7000008 21.2399998 0.429036 0.903287 0.9508352 +4922 1 1.72 23.0100002 19.4699993 21.2399998 -0.794053 -0.607849 0.9508352 +4923 1 1.72 23.0100002 17.7000008 23.0100002 -0.658344 0.752717 0.8177586 +4924 1 1.72 21.2399998 19.4699993 23.0100002 -0.80656 0.591152 0.8177586 +4925 1 1.72 24.7800007 17.7000008 21.2399998 0.471104 -0.882078 0.9508352 +4926 1 1.72 26.5499993 19.4699993 21.2399998 -0.936966 -0.349419 0.9508352 +4927 1 1.72 26.5499993 17.7000008 23.0100002 0.01024 -0.999948 0.8177586 +4928 1 1.72 24.7800007 19.4699993 23.0100002 -0.705147 0.709062 0.8177586 +4929 1 1.72 0.0 21.2399998 21.2399998 0.546412 -0.837517 0.9508352 +4930 1 1.72 1.77 23.0100002 21.2399998 0.530285 0.847819 0.9508352 +4931 1 1.72 1.77 21.2399998 23.0100002 -0.666762 -0.745271 0.8177586 +4932 1 1.72 0.0 23.0100002 23.0100002 0.814231 0.580542 0.8177586 +4933 1 1.72 3.54 21.2399998 21.2399998 -0.766357 -0.642415 0.9508352 +4934 1 1.72 5.31 23.0100002 21.2399998 0.725931 -0.687768 0.9508352 +4935 1 1.72 5.31 21.2399998 23.0100002 -0.624618 0.78093 0.8177586 +4936 1 1.72 3.54 23.0100002 23.0100002 -0.388709 0.92136 0.8177586 +4937 1 1.72 7.0799999 21.2399998 21.2399998 0.749884 0.66157 0.9508352 +4938 1 1.72 8.8500004 23.0100002 21.2399998 -0.293017 0.956107 0.9508352 +4939 1 1.72 8.8500004 21.2399998 23.0100002 -0.929705 0.368305 0.8177586 +4940 1 1.72 7.0799999 23.0100002 23.0100002 -0.480512 -0.876988 0.8177586 +4941 1 1.72 10.6199999 21.2399998 21.2399998 -0.619122 0.785295 0.9508352 +4942 1 1.72 12.3900004 23.0100002 21.2399998 -0.779729 0.626117 0.9508352 +4943 1 1.72 12.3900004 21.2399998 23.0100002 -0.581943 0.81323 0.8177586 +4944 1 1.72 10.6199999 23.0100002 23.0100002 0.479238 -0.877685 0.8177586 +4945 1 1.72 14.1599999 21.2399998 21.2399998 0.931306 -0.364237 0.9508352 +4946 1 1.72 15.9300004 23.0100002 21.2399998 0.997542 -0.0700703 0.9508352 +4947 1 1.72 15.9300004 21.2399998 23.0100002 0.981493 0.191499 0.8177586 +4948 1 1.72 14.1599999 23.0100002 23.0100002 0.695362 0.71866 0.8177586 +4949 1 1.72 17.7000008 21.2399998 21.2399998 -0.991962 0.12654 0.9508352 +4950 1 1.72 19.4699993 23.0100002 21.2399998 -0.996948 -0.0780626 0.9508352 +4951 1 1.72 19.4699993 21.2399998 23.0100002 0.926065 0.377364 0.8177586 +4952 1 1.72 17.7000008 23.0100002 23.0100002 -0.0634509 0.997985 0.8177586 +4953 1 1.72 21.2399998 21.2399998 21.2399998 0.809001 -0.587807 0.9508352 +4954 1 1.72 23.0100002 23.0100002 21.2399998 0.0810413 -0.996711 0.9508352 +4955 1 1.72 23.0100002 21.2399998 23.0100002 0.444743 0.895658 0.8177586 +4956 1 1.72 21.2399998 23.0100002 23.0100002 0.576019 -0.817436 0.8177586 +4957 1 1.72 24.7800007 21.2399998 21.2399998 -0.104116 0.994565 0.9508352 +4958 1 1.72 26.5499993 23.0100002 21.2399998 -0.686861 -0.726789 0.9508352 +4959 1 1.72 26.5499993 21.2399998 23.0100002 -0.99817 -0.0604626 0.8177586 +4960 1 1.72 24.7800007 23.0100002 23.0100002 0.917693 -0.39729 0.8177586 +4961 1 1.72 0.0 24.7800007 21.2399998 0.689075 -0.72469 0.9508352 +4962 1 1.72 1.77 26.5499993 21.2399998 -0.9207 0.390272 0.9508352 +4963 1 1.72 1.77 24.7800007 23.0100002 0.882098 -0.471066 0.8177586 +4964 1 1.72 0.0 26.5499993 23.0100002 -0.187894 0.982189 0.8177586 +4965 1 1.72 3.54 24.7800007 21.2399998 0.804801 0.593545 0.9508352 +4966 1 1.72 5.31 26.5499993 21.2399998 0.769036 -0.639205 0.9508352 +4967 1 1.72 5.31 24.7800007 23.0100002 -0.830625 -0.556833 0.8177586 +4968 1 1.72 3.54 26.5499993 23.0100002 -0.501438 0.865193 0.8177586 +4969 1 1.72 7.0799999 24.7800007 21.2399998 -0.311265 0.950323 0.9508352 +4970 1 1.72 8.8500004 26.5499993 21.2399998 -0.702551 -0.711633 0.9508352 +4971 1 1.72 8.8500004 24.7800007 23.0100002 -0.964031 0.265788 0.8177586 +4972 1 1.72 7.0799999 26.5499993 23.0100002 -0.835662 0.549244 0.8177586 +4973 1 1.72 10.6199999 24.7800007 21.2399998 -0.996065 0.0886264 0.9508352 +4974 1 1.72 12.3900004 26.5499993 21.2399998 0.827753 -0.561092 0.9508352 +4975 1 1.72 12.3900004 24.7800007 23.0100002 -0.359947 0.932973 0.8177586 +4976 1 1.72 10.6199999 26.5499993 23.0100002 -0.9958 0.091554 0.8177586 +4977 1 1.72 14.1599999 24.7800007 21.2399998 -0.984559 0.17505 0.9508352 +4978 1 1.72 15.9300004 26.5499993 21.2399998 -0.964078 0.26562 0.9508352 +4979 1 1.72 15.9300004 24.7800007 23.0100002 -0.768137 -0.640286 0.8177586 +4980 1 1.72 14.1599999 26.5499993 23.0100002 -0.634836 0.772647 0.8177586 +4981 1 1.72 17.7000008 24.7800007 21.2399998 -0.694609 -0.719387 0.9508352 +4982 1 1.72 19.4699993 26.5499993 21.2399998 0.54219 0.840256 0.9508352 +4983 1 1.72 19.4699993 24.7800007 23.0100002 -0.791282 -0.611451 0.8177586 +4984 1 1.72 17.7000008 26.5499993 23.0100002 -0.256791 0.966467 0.8177586 +4985 1 1.72 21.2399998 24.7800007 21.2399998 -0.887382 0.461035 0.9508352 +4986 1 1.72 23.0100002 26.5499993 21.2399998 -0.235944 0.971767 0.9508352 +4987 1 1.72 23.0100002 24.7800007 23.0100002 -0.527684 0.849441 0.8177586 +4988 1 1.72 21.2399998 26.5499993 23.0100002 0.771936 0.6357 0.8177586 +4989 1 1.72 24.7800007 24.7800007 21.2399998 -0.719308 0.694691 0.9508352 +4990 1 1.72 26.5499993 26.5499993 21.2399998 0.483936 0.875103 0.9508352 +4991 1 1.72 26.5499993 24.7800007 23.0100002 0.918191 -0.396138 0.8177586 +4992 1 1.72 24.7800007 26.5499993 23.0100002 -0.997321 -0.0731492 0.8177586 +4993 1 1.72 0.0 14.1599999 24.7800007 0.649213 -0.760607 0.6123979 +4994 1 1.72 1.77 15.9300004 24.7800007 0.471464 0.881885 0.6123979 +4995 1 1.72 1.77 14.1599999 26.5499993 -0.953886 0.30017 0.3529058 +4996 1 1.72 0.0 15.9300004 26.5499993 -0.915811 -0.401608 0.3529058 +4997 1 1.72 3.54 14.1599999 24.7800007 0.769699 -0.638407 0.6123979 +4998 1 1.72 5.31 15.9300004 24.7800007 0.618394 -0.785868 0.6123979 +4999 1 1.72 5.31 14.1599999 26.5499993 0.430537 0.902573 0.3529058 +5000 1 1.72 3.54 15.9300004 26.5499993 -0.164837 -0.986321 0.3529058 +5001 1 1.72 7.0799999 14.1599999 24.7800007 -0.618317 -0.785929 0.6123979 +5002 1 1.72 8.8500004 15.9300004 24.7800007 -0.485147 0.874433 0.6123979 +5003 1 1.72 8.8500004 14.1599999 26.5499993 -0.76817 -0.640246 0.3529058 +5004 1 1.72 7.0799999 15.9300004 26.5499993 -0.718033 -0.696009 0.3529058 +5005 1 1.72 10.6199999 14.1599999 24.7800007 0.856403 -0.516308 0.6123979 +5006 1 1.72 12.3900004 15.9300004 24.7800007 0.784956 0.619552 0.6123979 +5007 1 1.72 12.3900004 14.1599999 26.5499993 -0.932373 0.361497 0.3529058 +5008 1 1.72 10.6199999 15.9300004 26.5499993 -0.402786 0.915294 0.3529058 +5009 1 1.72 14.1599999 14.1599999 24.7800007 -0.852333 -0.522999 0.6123979 +5010 1 1.72 15.9300004 15.9300004 24.7800007 0.503565 0.863957 0.6123979 +5011 1 1.72 15.9300004 14.1599999 26.5499993 -0.325636 0.945495 0.3529058 +5012 1 1.72 14.1599999 15.9300004 26.5499993 -0.999297 -0.0374935 0.3529058 +5013 1 1.72 17.7000008 14.1599999 24.7800007 -0.321973 -0.946749 0.6123979 +5014 1 1.72 19.4699993 15.9300004 24.7800007 -0.996288 0.0860804 0.6123979 +5015 1 1.72 19.4699993 14.1599999 26.5499993 -0.95317 0.302436 0.3529058 +5016 1 1.72 17.7000008 15.9300004 26.5499993 0.427529 0.904002 0.3529058 +5017 1 1.72 21.2399998 14.1599999 24.7800007 0.644001 -0.765025 0.6123979 +5018 1 1.72 23.0100002 15.9300004 24.7800007 0.939904 0.341439 0.6123979 +5019 1 1.72 23.0100002 14.1599999 26.5499993 0.896518 0.443007 0.3529058 +5020 1 1.72 21.2399998 15.9300004 26.5499993 0.179121 -0.983827 0.3529058 +5021 1 1.72 24.7800007 14.1599999 24.7800007 -0.937835 -0.347082 0.6123979 +5022 1 1.72 26.5499993 15.9300004 24.7800007 0.63078 0.775961 0.6123979 +5023 1 1.72 26.5499993 14.1599999 26.5499993 0.303892 -0.952706 0.3529058 +5024 1 1.72 24.7800007 15.9300004 26.5499993 0.961916 0.273344 0.3529058 +5025 1 1.72 0.0 17.7000008 24.7800007 -0.216547 -0.976272 0.6123979 +5026 1 1.72 1.77 19.4699993 24.7800007 -0.99581 0.091445 0.6123979 +5027 1 1.72 1.77 17.7000008 26.5499993 0.767442 -0.641118 0.3529058 +5028 1 1.72 0.0 19.4699993 26.5499993 0.00869188 -0.999962 0.3529058 +5029 1 1.72 3.54 17.7000008 24.7800007 0.500197 -0.865911 0.6123979 +5030 1 1.72 5.31 19.4699993 24.7800007 0.671199 0.741277 0.6123979 +5031 1 1.72 5.31 17.7000008 26.5499993 -0.906892 -0.421364 0.3529058 +5032 1 1.72 3.54 19.4699993 26.5499993 0.559857 0.828589 0.3529058 +5033 1 1.72 7.0799999 17.7000008 24.7800007 -0.1065 -0.994313 0.6123979 +5034 1 1.72 8.8500004 19.4699993 24.7800007 0.995668 0.0929837 0.6123979 +5035 1 1.72 8.8500004 17.7000008 26.5499993 -0.488411 0.872614 0.3529058 +5036 1 1.72 7.0799999 19.4699993 26.5499993 -0.247088 0.968993 0.3529058 +5037 1 1.72 10.6199999 17.7000008 24.7800007 -0.287187 0.957874 0.6123979 +5038 1 1.72 12.3900004 19.4699993 24.7800007 0.965967 -0.258666 0.6123979 +5039 1 1.72 12.3900004 17.7000008 26.5499993 -0.203482 0.979079 0.3529058 +5040 1 1.72 10.6199999 19.4699993 26.5499993 -0.321459 0.946923 0.3529058 +5041 1 1.72 14.1599999 17.7000008 24.7800007 0.340045 -0.940409 0.6123979 +5042 1 1.72 15.9300004 19.4699993 24.7800007 -0.556815 0.830637 0.6123979 +5043 1 1.72 15.9300004 17.7000008 26.5499993 0.932065 -0.362291 0.3529058 +5044 1 1.72 14.1599999 19.4699993 26.5499993 0.833157 -0.553036 0.3529058 +5045 1 1.72 17.7000008 17.7000008 24.7800007 -0.991443 -0.130537 0.6123979 +5046 1 1.72 19.4699993 19.4699993 24.7800007 -0.134961 0.990851 0.6123979 +5047 1 1.72 19.4699993 17.7000008 26.5499993 0.67943 0.73374 0.3529058 +5048 1 1.72 17.7000008 19.4699993 26.5499993 -0.973762 -0.227568 0.3529058 +5049 1 1.72 21.2399998 17.7000008 24.7800007 -0.544769 0.838586 0.6123979 +5050 1 1.72 23.0100002 19.4699993 24.7800007 0.943199 -0.332229 0.6123979 +5051 1 1.72 23.0100002 17.7000008 26.5499993 0.815557 -0.578677 0.3529058 +5052 1 1.72 21.2399998 19.4699993 26.5499993 -0.880082 -0.474822 0.3529058 +5053 1 1.72 24.7800007 17.7000008 24.7800007 0.757198 0.653185 0.6123979 +5054 1 1.72 26.5499993 19.4699993 24.7800007 0.698452 0.715657 0.6123979 +5055 1 1.72 26.5499993 17.7000008 26.5499993 0.185765 0.982594 0.3529058 +5056 1 1.72 24.7800007 19.4699993 26.5499993 0.827442 0.561552 0.3529058 +5057 1 1.72 0.0 21.2399998 24.7800007 0.0012874 -0.999999 0.6123979 +5058 1 1.72 1.77 23.0100002 24.7800007 -0.714463 -0.699673 0.6123979 +5059 1 1.72 1.77 21.2399998 26.5499993 -0.541319 0.840817 0.3529058 +5060 1 1.72 0.0 23.0100002 26.5499993 -0.819916 -0.572483 0.3529058 +5061 1 1.72 3.54 21.2399998 24.7800007 -0.685813 0.727778 0.6123979 +5062 1 1.72 5.31 23.0100002 24.7800007 0.706506 -0.707707 0.6123979 +5063 1 1.72 5.31 21.2399998 26.5499993 -0.721846 -0.692053 0.3529058 +5064 1 1.72 3.54 23.0100002 26.5499993 0.994997 -0.0999066 0.3529058 +5065 1 1.72 7.0799999 21.2399998 24.7800007 0.994778 -0.102062 0.6123979 +5066 1 1.72 8.8500004 23.0100002 24.7800007 -0.901532 0.432713 0.6123979 +5067 1 1.72 8.8500004 21.2399998 26.5499993 -0.758101 0.652137 0.3529058 +5068 1 1.72 7.0799999 23.0100002 26.5499993 0.545903 -0.837848 0.3529058 +5069 1 1.72 10.6199999 21.2399998 24.7800007 -0.311066 0.950388 0.6123979 +5070 1 1.72 12.3900004 23.0100002 24.7800007 -0.943213 0.332189 0.6123979 +5071 1 1.72 12.3900004 21.2399998 26.5499993 0.99872 0.0505823 0.3529058 +5072 1 1.72 10.6199999 23.0100002 26.5499993 -0.783184 0.621789 0.3529058 +5073 1 1.72 14.1599999 21.2399998 24.7800007 -0.34058 0.940215 0.6123979 +5074 1 1.72 15.9300004 23.0100002 24.7800007 -0.533482 0.845811 0.6123979 +5075 1 1.72 15.9300004 21.2399998 26.5499993 0.495343 0.868697 0.3529058 +5076 1 1.72 14.1599999 23.0100002 26.5499993 0.989277 0.146048 0.3529058 +5077 1 1.72 17.7000008 21.2399998 24.7800007 -0.364303 -0.931281 0.6123979 +5078 1 1.72 19.4699993 23.0100002 24.7800007 0.711971 -0.702209 0.6123979 +5079 1 1.72 19.4699993 21.2399998 26.5499993 -0.888562 0.458757 0.3529058 +5080 1 1.72 17.7000008 23.0100002 26.5499993 0.25824 0.966081 0.3529058 +5081 1 1.72 21.2399998 21.2399998 24.7800007 0.101864 -0.994798 0.6123979 +5082 1 1.72 23.0100002 23.0100002 24.7800007 -0.454654 0.890668 0.6123979 +5083 1 1.72 23.0100002 21.2399998 26.5499993 -0.711235 0.702954 0.3529058 +5084 1 1.72 21.2399998 23.0100002 26.5499993 -0.307221 0.951638 0.3529058 +5085 1 1.72 24.7800007 21.2399998 24.7800007 -0.724204 -0.689585 0.6123979 +5086 1 1.72 26.5499993 23.0100002 24.7800007 -0.325348 -0.945594 0.6123979 +5087 1 1.72 26.5499993 21.2399998 26.5499993 -0.705765 0.708446 0.3529058 +5088 1 1.72 24.7800007 23.0100002 26.5499993 0.891901 0.452231 0.3529058 +5089 1 1.72 0.0 24.7800007 24.7800007 -0.94282 -0.333302 0.6123979 +5090 1 1.72 1.77 26.5499993 24.7800007 -0.587454 -0.809258 0.6123979 +5091 1 1.72 1.77 24.7800007 26.5499993 0.781209 0.624269 0.3529058 +5092 1 1.72 0.0 26.5499993 26.5499993 -0.915198 0.403005 0.3529058 +5093 1 1.72 3.54 24.7800007 24.7800007 -0.574682 0.818377 0.6123979 +5094 1 1.72 5.31 26.5499993 24.7800007 -0.74574 0.666237 0.6123979 +5095 1 1.72 5.31 24.7800007 26.5499993 0.276988 -0.960873 0.3529058 +5096 1 1.72 3.54 26.5499993 26.5499993 0.722932 -0.690919 0.3529058 +5097 1 1.72 7.0799999 24.7800007 24.7800007 0.996475 -0.0838891 0.6123979 +5098 1 1.72 8.8500004 26.5499993 24.7800007 0.497023 -0.867737 0.6123979 +5099 1 1.72 8.8500004 24.7800007 26.5499993 -0.861946 0.507001 0.3529058 +5100 1 1.72 7.0799999 26.5499993 26.5499993 0.754572 -0.656218 0.3529058 +5101 1 1.72 10.6199999 24.7800007 24.7800007 -0.570168 0.821528 0.6123979 +5102 1 1.72 12.3900004 26.5499993 24.7800007 0.564689 -0.825304 0.6123979 +5103 1 1.72 12.3900004 24.7800007 26.5499993 0.610043 -0.792369 0.3529058 +5104 1 1.72 10.6199999 26.5499993 26.5499993 0.713516 -0.700639 0.3529058 +5105 1 1.72 14.1599999 24.7800007 24.7800007 -0.509962 0.860197 0.6123979 +5106 1 1.72 15.9300004 26.5499993 24.7800007 0.630623 -0.77609 0.6123979 +5107 1 1.72 15.9300004 24.7800007 26.5499993 -0.999923 0.0124217 0.3529058 +5108 1 1.72 14.1599999 26.5499993 26.5499993 -0.813024 0.58223 0.3529058 +5109 1 1.72 17.7000008 24.7800007 24.7800007 -0.131959 0.991255 0.6123979 +5110 1 1.72 19.4699993 26.5499993 24.7800007 -0.823885 0.566756 0.6123979 +5111 1 1.72 19.4699993 24.7800007 26.5499993 0.933887 0.357568 0.3529058 +5112 1 1.72 17.7000008 26.5499993 26.5499993 -0.705374 -0.708836 0.3529058 +5113 1 1.72 21.2399998 24.7800007 24.7800007 0.0150901 0.999886 0.6123979 +5114 1 1.72 23.0100002 26.5499993 24.7800007 0.596109 -0.802904 0.6123979 +5115 1 1.72 23.0100002 24.7800007 26.5499993 -0.899825 -0.436252 0.3529058 +5116 1 1.72 21.2399998 26.5499993 26.5499993 -0.519668 -0.854368 0.3529058 +5117 1 1.72 24.7800007 24.7800007 24.7800007 -0.751232 0.660038 0.6123979 +5118 1 1.72 26.5499993 26.5499993 24.7800007 0.797109 -0.603835 0.6123979 +5119 1 1.72 26.5499993 24.7800007 26.5499993 0.38916 -0.92117 0.3529058 +5120 1 1.72 24.7800007 26.5499993 26.5499993 0.999174 0.0406333 0.3529058 +5121 1 1.72 0.0 14.1599999 28.3199997 0.936404 0.350923 0.0622191 +5122 1 1.72 1.77 15.9300004 28.3199997 -0.920972 -0.38963 0.0622191 +5123 1 1.72 1.77 14.1599999 30.0900002 -0.506501 0.862239 -0.2339673 +5124 1 1.72 0.0 15.9300004 30.0900002 0.997989 0.0633857 -0.2339673 +5125 1 1.72 3.54 14.1599999 28.3199997 0.890646 0.454697 0.0622191 +5126 1 1.72 5.31 15.9300004 28.3199997 0.303706 -0.952766 0.0622191 +5127 1 1.72 5.31 14.1599999 30.0900002 -0.353716 -0.935353 -0.2339673 +5128 1 1.72 3.54 15.9300004 30.0900002 -0.516192 -0.856473 -0.2339673 +5129 1 1.72 7.0799999 14.1599999 28.3199997 -0.73024 0.68319 0.0622191 +5130 1 1.72 8.8500004 15.9300004 28.3199997 0.965554 0.260203 0.0622191 +5131 1 1.72 8.8500004 14.1599999 30.0900002 0.457961 0.888972 -0.2339673 +5132 1 1.72 7.0799999 15.9300004 30.0900002 -0.195705 -0.980663 -0.2339673 +5133 1 1.72 10.6199999 14.1599999 28.3199997 -0.932914 -0.360098 0.0622191 +5134 1 1.72 12.3900004 15.9300004 28.3199997 -0.484941 -0.874547 0.0622191 +5135 1 1.72 12.3900004 14.1599999 30.0900002 -0.674146 0.738598 -0.2339673 +5136 1 1.72 10.6199999 15.9300004 30.0900002 0.970753 0.240079 -0.2339673 +5137 1 1.72 14.1599999 14.1599999 28.3199997 -0.388955 -0.921257 0.0622191 +5138 1 1.72 15.9300004 15.9300004 28.3199997 -0.906629 0.421928 0.0622191 +5139 1 1.72 15.9300004 14.1599999 30.0900002 0.926955 -0.375173 -0.2339673 +5140 1 1.72 14.1599999 15.9300004 30.0900002 0.950179 0.311706 -0.2339673 +5141 1 1.72 17.7000008 14.1599999 28.3199997 0.689716 0.72408 0.0622191 +5142 1 1.72 19.4699993 15.9300004 28.3199997 0.732941 -0.680292 0.0622191 +5143 1 1.72 19.4699993 14.1599999 30.0900002 -0.825929 -0.563773 -0.2339673 +5144 1 1.72 17.7000008 15.9300004 30.0900002 0.431624 -0.902054 -0.2339673 +5145 1 1.72 21.2399998 14.1599999 28.3199997 -0.854854 -0.518869 0.0622191 +5146 1 1.72 23.0100002 15.9300004 28.3199997 0.482751 -0.875758 0.0622191 +5147 1 1.72 23.0100002 14.1599999 30.0900002 0.775163 -0.631761 -0.2339673 +5148 1 1.72 21.2399998 15.9300004 30.0900002 0.611785 -0.791024 -0.2339673 +5149 1 1.72 24.7800007 14.1599999 28.3199997 0.485109 -0.874454 0.0622191 +5150 1 1.72 26.5499993 15.9300004 28.3199997 -0.372972 -0.927843 0.0622191 +5151 1 1.72 26.5499993 14.1599999 30.0900002 0.982446 0.186549 -0.2339673 +5152 1 1.72 24.7800007 15.9300004 30.0900002 -0.393458 -0.919343 -0.2339673 +5153 1 1.72 0.0 17.7000008 28.3199997 -0.315445 -0.948944 0.0622191 +5154 1 1.72 1.77 19.4699993 28.3199997 -0.562917 0.826513 0.0622191 +5155 1 1.72 1.77 17.7000008 30.0900002 -0.987131 -0.159916 -0.2339673 +5156 1 1.72 0.0 19.4699993 30.0900002 -0.803633 0.595125 -0.2339673 +5157 1 1.72 3.54 17.7000008 28.3199997 -0.65859 -0.752502 0.0622191 +5158 1 1.72 5.31 19.4699993 28.3199997 0.999555 0.0298222 0.0622191 +5159 1 1.72 5.31 17.7000008 30.0900002 -0.948892 0.315602 -0.2339673 +5160 1 1.72 3.54 19.4699993 30.0900002 -0.341108 -0.940024 -0.2339673 +5161 1 1.72 7.0799999 17.7000008 28.3199997 -0.781295 0.624162 0.0622191 +5162 1 1.72 8.8500004 19.4699993 28.3199997 0.116526 -0.993188 0.0622191 +5163 1 1.72 8.8500004 17.7000008 30.0900002 -0.456192 -0.889881 -0.2339673 +5164 1 1.72 7.0799999 19.4699993 30.0900002 0.850451 -0.526055 -0.2339673 +5165 1 1.72 10.6199999 17.7000008 28.3199997 -0.816786 -0.57694 0.0622191 +5166 1 1.72 12.3900004 19.4699993 28.3199997 -0.87935 -0.476176 0.0622191 +5167 1 1.72 12.3900004 17.7000008 30.0900002 -0.207685 0.978196 -0.2339673 +5168 1 1.72 10.6199999 19.4699993 30.0900002 0.797819 -0.602898 -0.2339673 +5169 1 1.72 14.1599999 17.7000008 28.3199997 0.517279 -0.855817 0.0622191 +5170 1 1.72 15.9300004 19.4699993 28.3199997 -0.218342 0.975872 0.0622191 +5171 1 1.72 15.9300004 17.7000008 30.0900002 -0.870082 0.492906 -0.2339673 +5172 1 1.72 14.1599999 19.4699993 30.0900002 0.384419 -0.923159 -0.2339673 +5173 1 1.72 17.7000008 17.7000008 28.3199997 0.272317 -0.962208 0.0622191 +5174 1 1.72 19.4699993 19.4699993 28.3199997 -0.738903 0.673812 0.0622191 +5175 1 1.72 19.4699993 17.7000008 30.0900002 0.0900444 0.995938 -0.2339673 +5176 1 1.72 17.7000008 19.4699993 30.0900002 -0.987573 -0.157162 -0.2339673 +5177 1 1.72 21.2399998 17.7000008 28.3199997 -0.581449 -0.813583 0.0622191 +5178 1 1.72 23.0100002 19.4699993 28.3199997 -0.994211 0.107449 0.0622191 +5179 1 1.72 23.0100002 17.7000008 30.0900002 0.898962 -0.438027 -0.2339673 +5180 1 1.72 21.2399998 19.4699993 30.0900002 0.920183 0.391489 -0.2339673 +5181 1 1.72 24.7800007 17.7000008 28.3199997 0.677361 0.735651 0.0622191 +5182 1 1.72 26.5499993 19.4699993 28.3199997 -0.397341 0.917671 0.0622191 +5183 1 1.72 26.5499993 17.7000008 30.0900002 -0.985267 0.171024 -0.2339673 +5184 1 1.72 24.7800007 19.4699993 30.0900002 -0.980829 -0.19487 -0.2339673 +5185 1 1.72 0.0 21.2399998 28.3199997 0.0867301 0.996232 0.0622191 +5186 1 1.72 1.77 23.0100002 28.3199997 0.955104 -0.296271 0.0622191 +5187 1 1.72 1.77 21.2399998 30.0900002 0.630376 -0.77629 -0.2339673 +5188 1 1.72 0.0 23.0100002 30.0900002 0.993745 0.111669 -0.2339673 +5189 1 1.72 3.54 21.2399998 28.3199997 0.226838 0.973933 0.0622191 +5190 1 1.72 5.31 23.0100002 28.3199997 -0.928207 -0.372064 0.0622191 +5191 1 1.72 5.31 21.2399998 30.0900002 -0.964938 0.262479 -0.2339673 +5192 1 1.72 3.54 23.0100002 30.0900002 0.363426 -0.931623 -0.2339673 +5193 1 1.72 7.0799999 21.2399998 28.3199997 0.795243 0.606291 0.0622191 +5194 1 1.72 8.8500004 23.0100002 28.3199997 0.948913 -0.315538 0.0622191 +5195 1 1.72 8.8500004 21.2399998 30.0900002 -0.938523 0.345216 -0.2339673 +5196 1 1.72 7.0799999 23.0100002 30.0900002 0.728099 -0.685472 -0.2339673 +5197 1 1.72 10.6199999 21.2399998 28.3199997 -0.925696 0.378268 0.0622191 +5198 1 1.72 12.3900004 23.0100002 28.3199997 0.653074 0.757294 0.0622191 +5199 1 1.72 12.3900004 21.2399998 30.0900002 -0.946268 -0.323384 -0.2339673 +5200 1 1.72 10.6199999 23.0100002 30.0900002 -0.863035 -0.505145 -0.2339673 +5201 1 1.72 14.1599999 21.2399998 28.3199997 0.0380463 -0.999276 0.0622191 +5202 1 1.72 15.9300004 23.0100002 28.3199997 -0.989163 0.146823 0.0622191 +5203 1 1.72 15.9300004 21.2399998 30.0900002 0.712561 0.70161 -0.2339673 +5204 1 1.72 14.1599999 23.0100002 30.0900002 -0.526124 -0.850408 -0.2339673 +5205 1 1.72 17.7000008 21.2399998 28.3199997 0.984049 0.177899 0.0622191 +5206 1 1.72 19.4699993 23.0100002 28.3199997 -0.871017 0.491254 0.0622191 +5207 1 1.72 19.4699993 21.2399998 30.0900002 0.707706 -0.706507 -0.2339673 +5208 1 1.72 17.7000008 23.0100002 30.0900002 -0.258299 -0.966065 -0.2339673 +5209 1 1.72 21.2399998 21.2399998 28.3199997 0.45692 -0.889508 0.0622191 +5210 1 1.72 23.0100002 23.0100002 28.3199997 0.759946 -0.649986 0.0622191 +5211 1 1.72 23.0100002 21.2399998 30.0900002 -0.643073 0.765805 -0.2339673 +5212 1 1.72 21.2399998 23.0100002 30.0900002 0.347238 -0.937777 -0.2339673 +5213 1 1.72 24.7800007 21.2399998 28.3199997 -0.169673 0.9855 0.0622191 +5214 1 1.72 26.5499993 23.0100002 28.3199997 0.744735 0.66736 0.0622191 +5215 1 1.72 26.5499993 21.2399998 30.0900002 0.334654 -0.942341 -0.2339673 +5216 1 1.72 24.7800007 23.0100002 30.0900002 -0.968246 0.25 -0.2339673 +5217 1 1.72 0.0 24.7800007 28.3199997 0.915465 0.402397 0.0622191 +5218 1 1.72 1.77 26.5499993 28.3199997 0.80384 0.594846 0.0622191 +5219 1 1.72 1.77 24.7800007 30.0900002 0.66324 -0.748407 -0.2339673 +5220 1 1.72 0.0 26.5499993 30.0900002 0.750633 0.660719 -0.2339673 +5221 1 1.72 3.54 24.7800007 28.3199997 0.449802 -0.893128 0.0622191 +5222 1 1.72 5.31 26.5499993 28.3199997 -0.998079 -0.0619591 0.0622191 +5223 1 1.72 5.31 24.7800007 30.0900002 0.46524 -0.885185 -0.2339673 +5224 1 1.72 3.54 26.5499993 30.0900002 -0.720865 -0.693076 -0.2339673 +5225 1 1.72 7.0799999 24.7800007 28.3199997 0.333811 0.94264 0.0622191 +5226 1 1.72 8.8500004 26.5499993 28.3199997 0.956833 -0.290637 0.0622191 +5227 1 1.72 8.8500004 24.7800007 30.0900002 -0.318611 -0.947885 -0.2339673 +5228 1 1.72 7.0799999 26.5499993 30.0900002 0.88467 0.466218 -0.2339673 +5229 1 1.72 10.6199999 24.7800007 28.3199997 -0.434117 -0.900856 0.0622191 +5230 1 1.72 12.3900004 26.5499993 28.3199997 0.281938 0.959433 0.0622191 +5231 1 1.72 12.3900004 24.7800007 30.0900002 -0.680162 -0.733062 -0.2339673 +5232 1 1.72 10.6199999 26.5499993 30.0900002 -0.409279 -0.912409 -0.2339673 +5233 1 1.72 14.1599999 24.7800007 28.3199997 0.343407 0.939187 0.0622191 +5234 1 1.72 15.9300004 26.5499993 28.3199997 0.198347 -0.980132 0.0622191 +5235 1 1.72 15.9300004 24.7800007 30.0900002 0.497449 0.867493 -0.2339673 +5236 1 1.72 14.1599999 26.5499993 30.0900002 0.999964 -0.00851605 -0.2339673 +5237 1 1.72 17.7000008 24.7800007 28.3199997 0.768382 0.639991 0.0622191 +5238 1 1.72 19.4699993 26.5499993 28.3199997 0.966463 -0.256808 0.0622191 +5239 1 1.72 19.4699993 24.7800007 30.0900002 0.887957 0.459926 -0.2339673 +5240 1 1.72 17.7000008 26.5499993 30.0900002 -0.386982 0.922087 -0.2339673 +5241 1 1.72 21.2399998 24.7800007 28.3199997 -0.256382 0.966576 0.0622191 +5242 1 1.72 23.0100002 26.5499993 28.3199997 0.985861 0.167563 0.0622191 +5243 1 1.72 23.0100002 24.7800007 30.0900002 -0.81267 0.582724 -0.2339673 +5244 1 1.72 21.2399998 26.5499993 30.0900002 -0.800487 -0.59935 -0.2339673 +5245 1 1.72 24.7800007 24.7800007 28.3199997 -0.644728 0.764412 0.0622191 +5246 1 1.72 26.5499993 26.5499993 28.3199997 0.960616 0.277881 0.0622191 +5247 1 1.72 26.5499993 24.7800007 30.0900002 -0.806771 -0.590864 -0.2339673 +5248 1 1.72 24.7800007 26.5499993 30.0900002 0.67102 -0.741439 -0.2339673 +5249 1 1.72 0.0 14.1599999 31.8600006 -0.998507 0.0546209 -0.5094728 +5250 1 1.72 1.77 15.9300004 31.8600006 0.909033 0.416725 -0.5094728 +5251 1 1.72 1.77 14.1599999 33.6300011 -0.466077 -0.884744 -0.7399443 +5252 1 1.72 0.0 15.9300004 33.6300011 0.618832 0.785523 -0.7399443 +5253 1 1.72 3.54 14.1599999 31.8600006 0.864393 -0.502817 -0.5094728 +5254 1 1.72 5.31 15.9300004 31.8600006 -0.676238 -0.736683 -0.5094728 +5255 1 1.72 5.31 14.1599999 33.6300011 0.624955 -0.780661 -0.7399443 +5256 1 1.72 3.54 15.9300004 33.6300011 -0.829168 -0.559 -0.7399443 +5257 1 1.72 7.0799999 14.1599999 31.8600006 -0.28926 -0.957251 -0.5094728 +5258 1 1.72 8.8500004 15.9300004 31.8600006 0.733776 0.679392 -0.5094728 +5259 1 1.72 8.8500004 14.1599999 33.6300011 -0.11972 -0.992808 -0.7399443 +5260 1 1.72 7.0799999 15.9300004 33.6300011 -0.197605 0.980282 -0.7399443 +5261 1 1.72 10.6199999 14.1599999 31.8600006 0.649865 -0.76005 -0.5094728 +5262 1 1.72 12.3900004 15.9300004 31.8600006 0.892295 -0.451453 -0.5094728 +5263 1 1.72 12.3900004 14.1599999 33.6300011 0.270802 -0.962635 -0.7399443 +5264 1 1.72 10.6199999 15.9300004 33.6300011 -0.616011 -0.787737 -0.7399443 +5265 1 1.72 14.1599999 14.1599999 31.8600006 0.153639 0.988127 -0.5094728 +5266 1 1.72 15.9300004 15.9300004 31.8600006 -0.691492 -0.722384 -0.5094728 +5267 1 1.72 15.9300004 14.1599999 33.6300011 -0.991338 -0.131334 -0.7399443 +5268 1 1.72 14.1599999 15.9300004 33.6300011 0.697075 0.716999 -0.7399443 +5269 1 1.72 17.7000008 14.1599999 31.8600006 -0.0811343 0.996703 -0.5094728 +5270 1 1.72 19.4699993 15.9300004 31.8600006 -0.338332 -0.941027 -0.5094728 +5271 1 1.72 19.4699993 14.1599999 33.6300011 0.209732 0.977759 -0.7399443 +5272 1 1.72 17.7000008 15.9300004 33.6300011 0.220159 0.975464 -0.7399443 +5273 1 1.72 21.2399998 14.1599999 31.8600006 -0.715425 -0.698689 -0.5094728 +5274 1 1.72 23.0100002 15.9300004 31.8600006 -0.292528 0.956257 -0.5094728 +5275 1 1.72 23.0100002 14.1599999 33.6300011 0.392585 -0.919716 -0.7399443 +5276 1 1.72 21.2399998 15.9300004 33.6300011 0.871122 0.491066 -0.7399443 +5277 1 1.72 24.7800007 14.1599999 31.8600006 -0.446814 -0.894627 -0.5094728 +5278 1 1.72 26.5499993 15.9300004 31.8600006 -0.16761 -0.985853 -0.5094728 +5279 1 1.72 26.5499993 14.1599999 33.6300011 0.988968 -0.148132 -0.7399443 +5280 1 1.72 24.7800007 15.9300004 33.6300011 -0.142166 -0.989843 -0.7399443 +5281 1 1.72 0.0 17.7000008 31.8600006 -0.0817241 0.996655 -0.5094728 +5282 1 1.72 1.77 19.4699993 31.8600006 -0.215095 0.976593 -0.5094728 +5283 1 1.72 1.77 17.7000008 33.6300011 -0.651519 -0.758632 -0.7399443 +5284 1 1.72 0.0 19.4699993 33.6300011 0.0251259 -0.999684 -0.7399443 +5285 1 1.72 3.54 17.7000008 31.8600006 0.0344304 -0.999407 -0.5094728 +5286 1 1.72 5.31 19.4699993 31.8600006 -0.509912 0.860226 -0.5094728 +5287 1 1.72 5.31 17.7000008 33.6300011 -0.464734 0.88545 -0.7399443 +5288 1 1.72 3.54 19.4699993 33.6300011 0.386294 -0.922376 -0.7399443 +5289 1 1.72 7.0799999 17.7000008 31.8600006 -0.426555 0.904462 -0.5094728 +5290 1 1.72 8.8500004 19.4699993 31.8600006 0.865532 0.500854 -0.5094728 +5291 1 1.72 8.8500004 17.7000008 33.6300011 0.942082 0.335383 -0.7399443 +5292 1 1.72 7.0799999 19.4699993 33.6300011 -0.0418509 0.999124 -0.7399443 +5293 1 1.72 10.6199999 17.7000008 31.8600006 -0.789801 0.613363 -0.5094728 +5294 1 1.72 12.3900004 19.4699993 31.8600006 -0.979234 0.202734 -0.5094728 +5295 1 1.72 12.3900004 17.7000008 33.6300011 0.698459 -0.71565 -0.7399443 +5296 1 1.72 10.6199999 19.4699993 33.6300011 0.790094 -0.612986 -0.7399443 +5297 1 1.72 14.1599999 17.7000008 31.8600006 0.804675 0.593715 -0.5094728 +5298 1 1.72 15.9300004 19.4699993 31.8600006 -0.780968 -0.624572 -0.5094728 +5299 1 1.72 15.9300004 17.7000008 33.6300011 -0.700425 0.713726 -0.7399443 +5300 1 1.72 14.1599999 19.4699993 33.6300011 0.974495 0.224408 -0.7399443 +5301 1 1.72 17.7000008 17.7000008 31.8600006 -0.297954 -0.95458 -0.5094728 +5302 1 1.72 19.4699993 19.4699993 31.8600006 0.884182 0.467143 -0.5094728 +5303 1 1.72 19.4699993 17.7000008 33.6300011 -0.256865 -0.966447 -0.7399443 +5304 1 1.72 17.7000008 19.4699993 33.6300011 -0.804755 -0.593607 -0.7399443 +5305 1 1.72 21.2399998 17.7000008 31.8600006 0.450956 -0.892546 -0.5094728 +5306 1 1.72 23.0100002 19.4699993 31.8600006 -0.397426 0.917634 -0.5094728 +5307 1 1.72 23.0100002 17.7000008 33.6300011 0.312389 -0.949954 -0.7399443 +5308 1 1.72 21.2399998 19.4699993 33.6300011 0.959131 -0.282964 -0.7399443 +5309 1 1.72 24.7800007 17.7000008 31.8600006 -0.98402 0.178059 -0.5094728 +5310 1 1.72 26.5499993 19.4699993 31.8600006 -0.727382 0.686233 -0.5094728 +5311 1 1.72 26.5499993 17.7000008 33.6300011 -0.0703547 -0.997522 -0.7399443 +5312 1 1.72 24.7800007 19.4699993 33.6300011 -0.990546 0.137184 -0.7399443 +5313 1 1.72 0.0 21.2399998 31.8600006 0.460899 0.887453 -0.5094728 +5314 1 1.72 1.77 23.0100002 31.8600006 -0.76979 0.638298 -0.5094728 +5315 1 1.72 1.77 21.2399998 33.6300011 0.225061 -0.974345 -0.7399443 +5316 1 1.72 0.0 23.0100002 33.6300011 0.620394 0.78429 -0.7399443 +5317 1 1.72 3.54 21.2399998 31.8600006 0.773402 0.633916 -0.5094728 +5318 1 1.72 5.31 23.0100002 31.8600006 0.976168 -0.217015 -0.5094728 +5319 1 1.72 5.31 21.2399998 33.6300011 -0.81219 -0.583393 -0.7399443 +5320 1 1.72 3.54 23.0100002 33.6300011 -0.569992 -0.821651 -0.7399443 +5321 1 1.72 7.0799999 21.2399998 31.8600006 0.944218 0.32932 -0.5094728 +5322 1 1.72 8.8500004 23.0100002 31.8600006 -0.98898 -0.148048 -0.5094728 +5323 1 1.72 8.8500004 21.2399998 33.6300011 -0.982641 -0.185519 -0.7399443 +5324 1 1.72 7.0799999 23.0100002 33.6300011 0.449101 -0.893481 -0.7399443 +5325 1 1.72 10.6199999 21.2399998 31.8600006 0.39586 0.918311 -0.5094728 +5326 1 1.72 12.3900004 23.0100002 31.8600006 -0.556925 0.830563 -0.5094728 +5327 1 1.72 12.3900004 21.2399998 33.6300011 -0.998583 -0.0532254 -0.7399443 +5328 1 1.72 10.6199999 23.0100002 33.6300011 0.965261 0.261287 -0.7399443 +5329 1 1.72 14.1599999 21.2399998 31.8600006 0.917713 -0.397244 -0.5094728 +5330 1 1.72 15.9300004 23.0100002 31.8600006 0.675071 0.737753 -0.5094728 +5331 1 1.72 15.9300004 21.2399998 33.6300011 0.737474 0.675376 -0.7399443 +5332 1 1.72 14.1599999 23.0100002 33.6300011 0.840918 -0.541162 -0.7399443 +5333 1 1.72 17.7000008 21.2399998 31.8600006 -0.902854 0.429947 -0.5094728 +5334 1 1.72 19.4699993 23.0100002 31.8600006 -0.844756 0.535152 -0.5094728 +5335 1 1.72 19.4699993 21.2399998 33.6300011 0.143014 0.989721 -0.7399443 +5336 1 1.72 17.7000008 23.0100002 33.6300011 0.219625 -0.975584 -0.7399443 +5337 1 1.72 21.2399998 21.2399998 31.8600006 -0.862494 0.506067 -0.5094728 +5338 1 1.72 23.0100002 23.0100002 31.8600006 0.898035 -0.439924 -0.5094728 +5339 1 1.72 23.0100002 21.2399998 33.6300011 -0.912712 -0.408602 -0.7399443 +5340 1 1.72 21.2399998 23.0100002 33.6300011 0.655056 -0.755581 -0.7399443 +5341 1 1.72 24.7800007 21.2399998 31.8600006 0.242077 -0.970257 -0.5094728 +5342 1 1.72 26.5499993 23.0100002 31.8600006 -0.96244 0.271495 -0.5094728 +5343 1 1.72 26.5499993 21.2399998 33.6300011 0.104967 0.994476 -0.7399443 +5344 1 1.72 24.7800007 23.0100002 33.6300011 -0.269313 -0.963053 -0.7399443 +5345 1 1.72 0.0 24.7800007 31.8600006 -0.993236 -0.116112 -0.5094728 +5346 1 1.72 1.77 26.5499993 31.8600006 -0.93668 -0.350187 -0.5094728 +5347 1 1.72 1.77 24.7800007 33.6300011 -0.614681 -0.788776 -0.7399443 +5348 1 1.72 0.0 26.5499993 33.6300011 0.806719 -0.590936 -0.7399443 +5349 1 1.72 3.54 24.7800007 31.8600006 -0.868253 0.496122 -0.5094728 +5350 1 1.72 5.31 26.5499993 31.8600006 -0.670673 0.741753 -0.5094728 +5351 1 1.72 5.31 24.7800007 33.6300011 0.204193 -0.978931 -0.7399443 +5352 1 1.72 3.54 26.5499993 33.6300011 0.620581 0.784143 -0.7399443 +5353 1 1.72 7.0799999 24.7800007 31.8600006 0.0753117 0.99716 -0.5094728 +5354 1 1.72 8.8500004 26.5499993 31.8600006 0.890699 0.454594 -0.5094728 +5355 1 1.72 8.8500004 24.7800007 33.6300011 0.802441 -0.596731 -0.7399443 +5356 1 1.72 7.0799999 26.5499993 33.6300011 -0.558577 -0.829453 -0.7399443 +5357 1 1.72 10.6199999 24.7800007 31.8600006 0.697144 -0.716931 -0.5094728 +5358 1 1.72 12.3900004 26.5499993 31.8600006 0.849722 0.527231 -0.5094728 +5359 1 1.72 12.3900004 24.7800007 33.6300011 -0.75529 -0.655391 -0.7399443 +5360 1 1.72 10.6199999 26.5499993 33.6300011 0.142355 0.989816 -0.7399443 +5361 1 1.72 14.1599999 24.7800007 31.8600006 -0.930705 0.365772 -0.5094728 +5362 1 1.72 15.9300004 26.5499993 31.8600006 -0.878865 -0.477071 -0.5094728 +5363 1 1.72 15.9300004 24.7800007 33.6300011 0.837917 0.545797 -0.7399443 +5364 1 1.72 14.1599999 26.5499993 33.6300011 0.397033 0.917804 -0.7399443 +5365 1 1.72 17.7000008 24.7800007 31.8600006 -0.508662 0.860966 -0.5094728 +5366 1 1.72 19.4699993 26.5499993 31.8600006 0.846923 -0.531715 -0.5094728 +5367 1 1.72 19.4699993 24.7800007 33.6300011 0.85114 0.524939 -0.7399443 +5368 1 1.72 17.7000008 26.5499993 33.6300011 0.306373 -0.951912 -0.7399443 +5369 1 1.72 21.2399998 24.7800007 31.8600006 -0.695164 -0.718851 -0.5094728 +5370 1 1.72 23.0100002 26.5499993 31.8600006 0.86257 -0.505938 -0.5094728 +5371 1 1.72 23.0100002 24.7800007 33.6300011 -0.891155 0.4537 -0.7399443 +5372 1 1.72 21.2399998 26.5499993 33.6300011 -0.203415 -0.979093 -0.7399443 +5373 1 1.72 24.7800007 24.7800007 31.8600006 -0.798235 -0.602346 -0.5094728 +5374 1 1.72 26.5499993 26.5499993 31.8600006 -0.350505 -0.936561 -0.5094728 +5375 1 1.72 26.5499993 24.7800007 33.6300011 0.422829 0.90621 -0.7399443 +5376 1 1.72 24.7800007 26.5499993 33.6300011 -0.694315 -0.719671 -0.7399443 +5377 1 1.72 0.0 14.1599999 35.4000015 -0.389988 0.92082 -0.90501 +5378 1 1.72 1.77 15.9300004 35.4000015 0.257718 0.96622 -0.90501 +5379 1 1.72 1.77 14.1599999 37.1699982 0.266723 -0.963773 -0.990079 +5380 1 1.72 0.0 15.9300004 37.1699982 0.919424 0.393268 -0.990079 +5381 1 1.72 3.54 14.1599999 35.4000015 -0.372992 0.927835 -0.90501 +5382 1 1.72 5.31 15.9300004 35.4000015 -0.754765 0.655996 -0.90501 +5383 1 1.72 5.31 14.1599999 37.1699982 -0.991133 -0.132877 -0.990079 +5384 1 1.72 3.54 15.9300004 37.1699982 -0.870934 -0.491401 -0.990079 +5385 1 1.72 7.0799999 14.1599999 35.4000015 -0.89691 0.442212 -0.90501 +5386 1 1.72 8.8500004 15.9300004 35.4000015 0.944304 0.329074 -0.90501 +5387 1 1.72 8.8500004 14.1599999 37.1699982 0.573242 -0.819386 -0.990079 +5388 1 1.72 7.0799999 15.9300004 37.1699982 0.928895 -0.370344 -0.990079 +5389 1 1.72 10.6199999 14.1599999 35.4000015 0.614808 0.788676 -0.90501 +5390 1 1.72 12.3900004 15.9300004 35.4000015 0.997843 -0.0656429 -0.90501 +5391 1 1.72 12.3900004 14.1599999 37.1699982 0.664588 0.74721 -0.990079 +5392 1 1.72 10.6199999 15.9300004 37.1699982 -0.613544 -0.789661 -0.990079 +5393 1 1.72 14.1599999 14.1599999 35.4000015 -0.999404 -0.0345162 -0.90501 +5394 1 1.72 15.9300004 15.9300004 35.4000015 -0.404436 0.914566 -0.90501 +5395 1 1.72 15.9300004 14.1599999 37.1699982 -0.63854 0.769589 -0.990079 +5396 1 1.72 14.1599999 15.9300004 37.1699982 -0.35481 0.934939 -0.990079 +5397 1 1.72 17.7000008 14.1599999 35.4000015 0.997728 -0.067377 -0.90501 +5398 1 1.72 19.4699993 15.9300004 35.4000015 -0.982579 0.185848 -0.90501 +5399 1 1.72 19.4699993 14.1599999 37.1699982 -0.715497 0.698616 -0.990079 +5400 1 1.72 17.7000008 15.9300004 37.1699982 0.847739 0.530413 -0.990079 +5401 1 1.72 21.2399998 14.1599999 35.4000015 -0.936281 -0.351252 -0.90501 +5402 1 1.72 23.0100002 15.9300004 35.4000015 0.600824 0.799382 -0.90501 +5403 1 1.72 23.0100002 14.1599999 37.1699982 0.738381 0.674384 -0.990079 +5404 1 1.72 21.2399998 15.9300004 37.1699982 -0.800963 0.598714 -0.990079 +5405 1 1.72 24.7800007 14.1599999 35.4000015 -0.888468 0.458938 -0.90501 +5406 1 1.72 26.5499993 15.9300004 35.4000015 -0.479364 -0.877616 -0.90501 +5407 1 1.72 26.5499993 14.1599999 37.1699982 -0.910014 0.414577 -0.990079 +5408 1 1.72 24.7800007 15.9300004 37.1699982 0.0926422 0.995699 -0.990079 +5409 1 1.72 0.0 17.7000008 35.4000015 0.901963 0.431814 -0.90501 +5410 1 1.72 1.77 19.4699993 35.4000015 0.355735 -0.934587 -0.90501 +5411 1 1.72 1.77 17.7000008 37.1699982 -0.539958 -0.841692 -0.990079 +5412 1 1.72 0.0 19.4699993 37.1699982 0.834041 -0.551703 -0.990079 +5413 1 1.72 3.54 17.7000008 35.4000015 0.433526 -0.901141 -0.90501 +5414 1 1.72 5.31 19.4699993 35.4000015 -0.582798 -0.812617 -0.90501 +5415 1 1.72 5.31 17.7000008 37.1699982 -0.604681 0.796468 -0.990079 +5416 1 1.72 3.54 19.4699993 37.1699982 0.424072 -0.905628 -0.990079 +5417 1 1.72 7.0799999 17.7000008 35.4000015 0.974058 -0.226298 -0.90501 +5418 1 1.72 8.8500004 19.4699993 35.4000015 0.372551 -0.928012 -0.90501 +5419 1 1.72 8.8500004 17.7000008 37.1699982 -0.999964 -0.00852606 -0.990079 +5420 1 1.72 7.0799999 19.4699993 37.1699982 0.507146 0.86186 -0.990079 +5421 1 1.72 10.6199999 17.7000008 35.4000015 0.266328 -0.963882 -0.90501 +5422 1 1.72 12.3900004 19.4699993 35.4000015 0.98873 -0.149711 -0.90501 +5423 1 1.72 12.3900004 17.7000008 37.1699982 -0.295248 -0.955421 -0.990079 +5424 1 1.72 10.6199999 19.4699993 37.1699982 0.869041 -0.49474 -0.990079 +5425 1 1.72 14.1599999 17.7000008 35.4000015 -0.415749 -0.909479 -0.90501 +5426 1 1.72 15.9300004 19.4699993 35.4000015 0.772291 0.635269 -0.90501 +5427 1 1.72 15.9300004 17.7000008 37.1699982 -0.554706 0.832046 -0.990079 +5428 1 1.72 14.1599999 19.4699993 37.1699982 -0.873929 -0.486053 -0.990079 +5429 1 1.72 17.7000008 17.7000008 35.4000015 0.975475 -0.220112 -0.90501 +5430 1 1.72 19.4699993 19.4699993 35.4000015 -0.990015 0.140962 -0.90501 +5431 1 1.72 19.4699993 17.7000008 37.1699982 0.0647704 0.9979 -0.990079 +5432 1 1.72 17.7000008 19.4699993 37.1699982 -0.116503 -0.99319 -0.990079 +5433 1 1.72 21.2399998 17.7000008 35.4000015 0.668131 -0.744043 -0.90501 +5434 1 1.72 23.0100002 19.4699993 35.4000015 0.999169 0.0407496 -0.90501 +5435 1 1.72 23.0100002 17.7000008 37.1699982 -0.494492 -0.869182 -0.990079 +5436 1 1.72 21.2399998 19.4699993 37.1699982 0.172294 0.985046 -0.990079 +5437 1 1.72 24.7800007 17.7000008 35.4000015 0.627484 0.77863 -0.90501 +5438 1 1.72 26.5499993 19.4699993 35.4000015 0.932251 0.361811 -0.90501 +5439 1 1.72 26.5499993 17.7000008 37.1699982 0.998443 0.0557842 -0.990079 +5440 1 1.72 24.7800007 19.4699993 37.1699982 0.974835 0.22293 -0.990079 +5441 1 1.72 0.0 21.2399998 35.4000015 -0.857941 -0.513749 -0.90501 +5442 1 1.72 1.77 23.0100002 35.4000015 0.732137 -0.681157 -0.90501 +5443 1 1.72 1.77 21.2399998 37.1699982 0.93731 -0.348495 -0.990079 +5444 1 1.72 0.0 23.0100002 37.1699982 0.392214 0.919874 -0.990079 +5445 1 1.72 3.54 21.2399998 35.4000015 0.383002 -0.923748 -0.90501 +5446 1 1.72 5.31 23.0100002 35.4000015 0.958115 -0.286384 -0.90501 +5447 1 1.72 5.31 21.2399998 37.1699982 -0.99728 -0.07371 -0.990079 +5448 1 1.72 3.54 23.0100002 37.1699982 0.117013 -0.99313 -0.990079 +5449 1 1.72 7.0799999 21.2399998 35.4000015 -0.469392 0.88299 -0.90501 +5450 1 1.72 8.8500004 23.0100002 35.4000015 -0.769937 0.63812 -0.90501 +5451 1 1.72 8.8500004 21.2399998 37.1699982 0.977244 0.21212 -0.990079 +5452 1 1.72 7.0799999 23.0100002 37.1699982 0.803106 0.595837 -0.990079 +5453 1 1.72 10.6199999 21.2399998 35.4000015 0.57107 -0.820901 -0.90501 +5454 1 1.72 12.3900004 23.0100002 35.4000015 -0.720825 0.693117 -0.90501 +5455 1 1.72 12.3900004 21.2399998 37.1699982 -0.82027 -0.571976 -0.990079 +5456 1 1.72 10.6199999 23.0100002 37.1699982 -0.775038 -0.631915 -0.990079 +5457 1 1.72 14.1599999 21.2399998 35.4000015 -0.819028 0.573753 -0.90501 +5458 1 1.72 15.9300004 23.0100002 35.4000015 0.487476 0.873136 -0.90501 +5459 1 1.72 15.9300004 21.2399998 37.1699982 0.965051 -0.262062 -0.990079 +5460 1 1.72 14.1599999 23.0100002 37.1699982 -0.770531 -0.637403 -0.990079 +5461 1 1.72 17.7000008 21.2399998 35.4000015 -0.696447 -0.717608 -0.90501 +5462 1 1.72 19.4699993 23.0100002 35.4000015 0.105825 -0.994385 -0.90501 +5463 1 1.72 19.4699993 21.2399998 37.1699982 0.621435 0.783466 -0.990079 +5464 1 1.72 17.7000008 23.0100002 37.1699982 0.834518 -0.550981 -0.990079 +5465 1 1.72 21.2399998 21.2399998 35.4000015 -0.649569 -0.760302 -0.90501 +5466 1 1.72 23.0100002 23.0100002 35.4000015 0.309515 -0.950894 -0.90501 +5467 1 1.72 23.0100002 21.2399998 37.1699982 -0.738111 0.67468 -0.990079 +5468 1 1.72 21.2399998 23.0100002 37.1699982 -0.477237 0.878774 -0.990079 +5469 1 1.72 24.7800007 21.2399998 35.4000015 -0.122202 0.992505 -0.90501 +5470 1 1.72 26.5499993 23.0100002 35.4000015 0.146333 0.989235 -0.90501 +5471 1 1.72 26.5499993 21.2399998 37.1699982 -0.865112 0.501578 -0.990079 +5472 1 1.72 24.7800007 23.0100002 37.1699982 0.748241 0.663426 -0.990079 +5473 1 1.72 0.0 24.7800007 35.4000015 -0.837551 -0.546359 -0.90501 +5474 1 1.72 1.77 26.5499993 35.4000015 -0.988206 0.153129 -0.90501 +5475 1 1.72 1.77 24.7800007 37.1699982 -0.353216 -0.935542 -0.990079 +5476 1 1.72 0.0 26.5499993 37.1699982 0.550368 0.834922 -0.990079 +5477 1 1.72 3.54 24.7800007 35.4000015 0.884397 0.466736 -0.90501 +5478 1 1.72 5.31 26.5499993 35.4000015 0.685911 0.727685 -0.90501 +5479 1 1.72 5.31 24.7800007 37.1699982 0.537144 -0.84349 -0.990079 +5480 1 1.72 3.54 26.5499993 37.1699982 0.453905 -0.89105 -0.990079 +5481 1 1.72 7.0799999 24.7800007 35.4000015 0.408605 -0.912711 -0.90501 +5482 1 1.72 8.8500004 26.5499993 35.4000015 0.685604 0.727974 -0.90501 +5483 1 1.72 8.8500004 24.7800007 37.1699982 -0.230561 -0.973058 -0.990079 +5484 1 1.72 7.0799999 26.5499993 37.1699982 -0.793802 0.608176 -0.990079 +5485 1 1.72 10.6199999 24.7800007 35.4000015 0.983169 -0.182696 -0.90501 +5486 1 1.72 12.3900004 26.5499993 35.4000015 0.899862 -0.436176 -0.90501 +5487 1 1.72 12.3900004 24.7800007 37.1699982 -0.995944 -0.0899741 -0.990079 +5488 1 1.72 10.6199999 26.5499993 37.1699982 0.666773 -0.745261 -0.990079 +5489 1 1.72 14.1599999 24.7800007 35.4000015 0.422752 0.906245 -0.90501 +5490 1 1.72 15.9300004 26.5499993 35.4000015 -0.77619 0.630499 -0.90501 +5491 1 1.72 15.9300004 24.7800007 37.1699982 -0.559672 0.828714 -0.990079 +5492 1 1.72 14.1599999 26.5499993 37.1699982 -0.212755 -0.977106 -0.990079 +5493 1 1.72 17.7000008 24.7800007 35.4000015 -0.997012 -0.0772431 -0.90501 +5494 1 1.72 19.4699993 26.5499993 35.4000015 0.295569 0.955321 -0.90501 +5495 1 1.72 19.4699993 24.7800007 37.1699982 -0.292546 0.956251 -0.990079 +5496 1 1.72 17.7000008 26.5499993 37.1699982 0.782781 0.622297 -0.990079 +5497 1 1.72 21.2399998 24.7800007 35.4000015 -0.889419 -0.457093 -0.90501 +5498 1 1.72 23.0100002 26.5499993 35.4000015 -0.901367 0.433056 -0.90501 +5499 1 1.72 23.0100002 24.7800007 37.1699982 0.972573 0.232598 -0.990079 +5500 1 1.72 21.2399998 26.5499993 37.1699982 -0.940004 0.341164 -0.990079 +5501 1 1.72 24.7800007 24.7800007 35.4000015 -0.839078 -0.544011 -0.90501 +5502 1 1.72 26.5499993 26.5499993 35.4000015 -0.170667 -0.985329 -0.90501 +5503 1 1.72 26.5499993 24.7800007 37.1699982 0.550481 0.834848 -0.990079 +5504 1 1.72 24.7800007 26.5499993 37.1699982 -0.199914 0.979813 -0.990079 +5505 1 1.72 0.0 14.1599999 38.9399986 -0.728913 0.684606 -1.0 +5506 1 1.72 1.77 15.9300004 38.9399986 -0.356673 0.934229 -1.0 +5507 1 1.72 1.77 14.1599999 40.7099991 -0.967116 0.254336 -1.0 +5508 1 1.72 0.0 15.9300004 40.7099991 0.719903 0.694075 -1.0 +5509 1 1.72 3.54 14.1599999 38.9399986 -0.554354 -0.832281 -1.0 +5510 1 1.72 5.31 15.9300004 38.9399986 -0.833913 0.551896 -1.0 +5511 1 1.72 5.31 14.1599999 40.7099991 -0.717875 0.696172 -1.0 +5512 1 1.72 3.54 15.9300004 40.7099991 0.977864 -0.20924 -1.0 +5513 1 1.72 7.0799999 14.1599999 38.9399986 0.605369 -0.795945 -1.0 +5514 1 1.72 8.8500004 15.9300004 38.9399986 0.905957 -0.423371 -1.0 +5515 1 1.72 8.8500004 14.1599999 40.7099991 -0.329184 0.944266 -1.0 +5516 1 1.72 7.0799999 15.9300004 40.7099991 0.438118 0.898918 -1.0 +5517 1 1.72 10.6199999 14.1599999 38.9399986 -0.495563 0.868572 -1.0 +5518 1 1.72 12.3900004 15.9300004 38.9399986 -0.73631 0.676644 -1.0 +5519 1 1.72 12.3900004 14.1599999 40.7099991 -0.448389 -0.893839 -1.0 +5520 1 1.72 10.6199999 15.9300004 40.7099991 -0.699135 -0.71499 -1.0 +5521 1 1.72 14.1599999 14.1599999 38.9399986 -0.996992 -0.0775051 -1.0 +5522 1 1.72 15.9300004 15.9300004 38.9399986 0.999604 -0.0281236 -1.0 +5523 1 1.72 15.9300004 14.1599999 40.7099991 -0.342034 0.939687 -1.0 +5524 1 1.72 14.1599999 15.9300004 40.7099991 -0.542456 0.840084 -1.0 +5525 1 1.72 17.7000008 14.1599999 38.9399986 -0.974833 -0.222938 -1.0 +5526 1 1.72 19.4699993 15.9300004 38.9399986 -0.728594 0.684946 -1.0 +5527 1 1.72 19.4699993 14.1599999 40.7099991 0.0871988 -0.996191 -1.0 +5528 1 1.72 17.7000008 15.9300004 40.7099991 0.806905 0.590682 -1.0 +5529 1 1.72 21.2399998 14.1599999 38.9399986 0.621636 -0.783306 -1.0 +5530 1 1.72 23.0100002 15.9300004 38.9399986 -0.999638 0.0268909 -1.0 +5531 1 1.72 23.0100002 14.1599999 40.7099991 0.109163 0.994024 -1.0 +5532 1 1.72 21.2399998 15.9300004 40.7099991 0.572181 -0.820127 -1.0 +5533 1 1.72 24.7800007 14.1599999 38.9399986 -0.873829 0.486233 -1.0 +5534 1 1.72 26.5499993 15.9300004 38.9399986 -0.853458 -0.521162 -1.0 +5535 1 1.72 26.5499993 14.1599999 40.7099991 -0.988781 0.149371 -1.0 +5536 1 1.72 24.7800007 15.9300004 40.7099991 0.563745 0.825949 -1.0 +5537 1 1.72 0.0 17.7000008 38.9399986 0.619487 0.785007 -1.0 +5538 1 1.72 1.77 19.4699993 38.9399986 -0.369062 0.929405 -1.0 +5539 1 1.72 1.77 17.7000008 40.7099991 0.411566 -0.91138 -1.0 +5540 1 1.72 0.0 19.4699993 40.7099991 0.970326 0.241799 -1.0 +5541 1 1.72 3.54 17.7000008 38.9399986 -0.582829 -0.812595 -1.0 +5542 1 1.72 5.31 19.4699993 38.9399986 -0.718853 0.695162 -1.0 +5543 1 1.72 5.31 17.7000008 40.7099991 -0.346479 -0.938058 -1.0 +5544 1 1.72 3.54 19.4699993 40.7099991 -0.863874 0.503709 -1.0 +5545 1 1.72 7.0799999 17.7000008 38.9399986 -0.850068 -0.526672 -1.0 +5546 1 1.72 8.8500004 19.4699993 38.9399986 -0.960725 0.277504 -1.0 +5547 1 1.72 8.8500004 17.7000008 40.7099991 0.0478734 0.998853 -1.0 +5548 1 1.72 7.0799999 19.4699993 40.7099991 0.999983 0.0059031 -1.0 +5549 1 1.72 10.6199999 17.7000008 38.9399986 0.768654 0.639665 -1.0 +5550 1 1.72 12.3900004 19.4699993 38.9399986 0.607405 0.794392 -1.0 +5551 1 1.72 12.3900004 17.7000008 40.7099991 0.697878 0.716217 -1.0 +5552 1 1.72 10.6199999 19.4699993 40.7099991 0.928711 0.370803 -1.0 +5553 1 1.72 14.1599999 17.7000008 38.9399986 -0.357698 -0.933837 -1.0 +5554 1 1.72 15.9300004 19.4699993 38.9399986 -0.00615694 -0.999981 -1.0 +5555 1 1.72 15.9300004 17.7000008 40.7099991 0.942067 -0.335423 -1.0 +5556 1 1.72 14.1599999 19.4699993 40.7099991 -0.690114 0.7237 -1.0 +5557 1 1.72 17.7000008 17.7000008 38.9399986 0.580972 0.813924 -1.0 +5558 1 1.72 19.4699993 19.4699993 38.9399986 0.198919 -0.980016 -1.0 +5559 1 1.72 19.4699993 17.7000008 40.7099991 0.743789 -0.668414 -1.0 +5560 1 1.72 17.7000008 19.4699993 40.7099991 0.22317 -0.97478 -1.0 +5561 1 1.72 21.2399998 17.7000008 38.9399986 -0.783377 0.621547 -1.0 +5562 1 1.72 23.0100002 19.4699993 38.9399986 -0.0521092 0.998641 -1.0 +5563 1 1.72 23.0100002 17.7000008 40.7099991 0.0397883 0.999208 -1.0 +5564 1 1.72 21.2399998 19.4699993 40.7099991 0.18598 -0.982554 -1.0 +5565 1 1.72 24.7800007 17.7000008 38.9399986 0.927056 -0.374923 -1.0 +5566 1 1.72 26.5499993 19.4699993 38.9399986 -0.0159181 0.999873 -1.0 +5567 1 1.72 26.5499993 17.7000008 40.7099991 0.587651 -0.809114 -1.0 +5568 1 1.72 24.7800007 19.4699993 40.7099991 -0.138861 0.990312 -1.0 +5569 1 1.72 0.0 21.2399998 38.9399986 -0.953825 0.300362 -1.0 +5570 1 1.72 1.77 23.0100002 38.9399986 -0.843884 -0.536526 -1.0 +5571 1 1.72 1.77 21.2399998 40.7099991 0.532461 -0.846454 -1.0 +5572 1 1.72 0.0 23.0100002 40.7099991 -0.651253 0.758861 -1.0 +5573 1 1.72 3.54 21.2399998 38.9399986 -0.906382 0.422459 -1.0 +5574 1 1.72 5.31 23.0100002 38.9399986 -0.0377215 0.999288 -1.0 +5575 1 1.72 5.31 21.2399998 40.7099991 -0.412651 0.910889 -1.0 +5576 1 1.72 3.54 23.0100002 40.7099991 0.510001 -0.860174 -1.0 +5577 1 1.72 7.0799999 21.2399998 38.9399986 -0.49809 -0.867125 -1.0 +5578 1 1.72 8.8500004 23.0100002 38.9399986 0.416152 -0.909295 -1.0 +5579 1 1.72 8.8500004 21.2399998 40.7099991 -0.672172 -0.740395 -1.0 +5580 1 1.72 7.0799999 23.0100002 40.7099991 -0.965518 0.260336 -1.0 +5581 1 1.72 10.6199999 21.2399998 38.9399986 -0.893842 -0.448381 -1.0 +5582 1 1.72 12.3900004 23.0100002 38.9399986 0.587274 0.809388 -1.0 +5583 1 1.72 12.3900004 21.2399998 40.7099991 -0.835906 0.548873 -1.0 +5584 1 1.72 10.6199999 23.0100002 40.7099991 -0.389073 0.921207 -1.0 +5585 1 1.72 14.1599999 21.2399998 38.9399986 -0.0617973 -0.998089 -1.0 +5586 1 1.72 15.9300004 23.0100002 38.9399986 -0.701828 0.712346 -1.0 +5587 1 1.72 15.9300004 21.2399998 40.7099991 -0.815216 -0.579157 -1.0 +5588 1 1.72 14.1599999 23.0100002 40.7099991 0.959393 -0.282073 -1.0 +5589 1 1.72 17.7000008 21.2399998 38.9399986 -0.640123 -0.768273 -1.0 +5590 1 1.72 19.4699993 23.0100002 38.9399986 0.335857 0.941913 -1.0 +5591 1 1.72 19.4699993 21.2399998 40.7099991 0.975829 0.218538 -1.0 +5592 1 1.72 17.7000008 23.0100002 40.7099991 0.584346 -0.811504 -1.0 +5593 1 1.72 21.2399998 21.2399998 38.9399986 -0.906157 0.422942 -1.0 +5594 1 1.72 23.0100002 23.0100002 38.9399986 -0.999998 -0.00211532 -1.0 +5595 1 1.72 23.0100002 21.2399998 40.7099991 0.798868 0.601507 -1.0 +5596 1 1.72 21.2399998 23.0100002 40.7099991 0.74009 0.672507 -1.0 +5597 1 1.72 24.7800007 21.2399998 38.9399986 0.990373 -0.138422 -1.0 +5598 1 1.72 26.5499993 23.0100002 38.9399986 -0.761842 -0.647763 -1.0 +5599 1 1.72 26.5499993 21.2399998 40.7099991 -0.94254 -0.334093 -1.0 +5600 1 1.72 24.7800007 23.0100002 40.7099991 0.831354 -0.555743 -1.0 +5601 1 1.72 0.0 24.7800007 38.9399986 0.238252 0.971203 -1.0 +5602 1 1.72 1.77 26.5499993 38.9399986 -0.935735 0.352704 -1.0 +5603 1 1.72 1.77 24.7800007 40.7099991 -0.498963 -0.866623 -1.0 +5604 1 1.72 0.0 26.5499993 40.7099991 -0.576389 -0.817176 -1.0 +5605 1 1.72 3.54 24.7800007 38.9399986 -0.922288 0.386504 -1.0 +5606 1 1.72 5.31 26.5499993 38.9399986 -0.436584 -0.899664 -1.0 +5607 1 1.72 5.31 24.7800007 40.7099991 -0.98866 0.150174 -1.0 +5608 1 1.72 3.54 26.5499993 40.7099991 -0.984766 0.173887 -1.0 +5609 1 1.72 7.0799999 24.7800007 38.9399986 -0.844926 -0.534883 -1.0 +5610 1 1.72 8.8500004 26.5499993 38.9399986 -0.500861 0.865528 -1.0 +5611 1 1.72 8.8500004 24.7800007 40.7099991 0.956076 0.293119 -1.0 +5612 1 1.72 7.0799999 26.5499993 40.7099991 0.341816 -0.939767 -1.0 +5613 1 1.72 10.6199999 24.7800007 38.9399986 -0.97169 0.236262 -1.0 +5614 1 1.72 12.3900004 26.5499993 38.9399986 -0.477417 0.878677 -1.0 +5615 1 1.72 12.3900004 24.7800007 40.7099991 -0.969585 0.244753 -1.0 +5616 1 1.72 10.6199999 26.5499993 40.7099991 0.366851 0.93028 -1.0 +5617 1 1.72 14.1599999 24.7800007 38.9399986 0.999925 -0.0122643 -1.0 +5618 1 1.72 15.9300004 26.5499993 38.9399986 -0.970896 0.239503 -1.0 +5619 1 1.72 15.9300004 24.7800007 40.7099991 -0.423829 0.905742 -1.0 +5620 1 1.72 14.1599999 26.5499993 40.7099991 0.473615 -0.880732 -1.0 +5621 1 1.72 17.7000008 24.7800007 38.9399986 -0.838027 -0.545628 -1.0 +5622 1 1.72 19.4699993 26.5499993 38.9399986 -0.46279 -0.886468 -1.0 +5623 1 1.72 19.4699993 24.7800007 40.7099991 -0.613178 -0.789945 -1.0 +5624 1 1.72 17.7000008 26.5499993 40.7099991 0.748545 -0.663084 -1.0 +5625 1 1.72 21.2399998 24.7800007 38.9399986 -0.603035 -0.797714 -1.0 +5626 1 1.72 23.0100002 26.5499993 38.9399986 0.134335 0.990936 -1.0 +5627 1 1.72 23.0100002 24.7800007 40.7099991 -0.964637 -0.263582 -1.0 +5628 1 1.72 21.2399998 26.5499993 40.7099991 -0.231878 -0.972745 -1.0 +5629 1 1.72 24.7800007 24.7800007 38.9399986 -0.995907 -0.0903845 -1.0 +5630 1 1.72 26.5499993 26.5499993 38.9399986 0.0203008 0.999794 -1.0 +5631 1 1.72 26.5499993 24.7800007 40.7099991 -0.934209 -0.356726 -1.0 +5632 1 1.72 24.7800007 26.5499993 40.7099991 -0.826197 -0.563382 -1.0 +5633 1 1.72 0.0 14.1599999 42.4799996 0.296732 0.954961 -1.0 +5634 1 1.72 1.77 15.9300004 42.4799996 0.926302 0.376781 -1.0 +5635 1 1.72 1.77 14.1599999 44.25 0.114966 -0.993369 -1.0 +5636 1 1.72 0.0 15.9300004 44.25 -0.793242 -0.608907 -1.0 +5637 1 1.72 3.54 14.1599999 42.4799996 0.890111 -0.455743 -1.0 +5638 1 1.72 5.31 15.9300004 42.4799996 -0.388588 -0.921412 -1.0 +5639 1 1.72 5.31 14.1599999 44.25 0.665864 0.746073 -1.0 +5640 1 1.72 3.54 15.9300004 44.25 0.613679 0.789556 -1.0 +5641 1 1.72 7.0799999 14.1599999 42.4799996 0.555101 -0.831783 -1.0 +5642 1 1.72 8.8500004 15.9300004 42.4799996 -0.57697 -0.816765 -1.0 +5643 1 1.72 8.8500004 14.1599999 44.25 0.660166 -0.75112 -1.0 +5644 1 1.72 7.0799999 15.9300004 44.25 -0.482608 0.875836 -1.0 +5645 1 1.72 10.6199999 14.1599999 42.4799996 -0.574921 -0.818209 -1.0 +5646 1 1.72 12.3900004 15.9300004 42.4799996 0.648157 0.761507 -1.0 +5647 1 1.72 12.3900004 14.1599999 44.25 -0.568504 -0.822681 -1.0 +5648 1 1.72 10.6199999 15.9300004 44.25 -0.656285 -0.754513 -1.0 +5649 1 1.72 14.1599999 14.1599999 42.4799996 0.926247 0.376917 -1.0 +5650 1 1.72 15.9300004 15.9300004 42.4799996 -0.765324 -0.643645 -1.0 +5651 1 1.72 15.9300004 14.1599999 44.25 -0.734715 -0.678376 -1.0 +5652 1 1.72 14.1599999 15.9300004 44.25 -0.999977 -0.00675202 -1.0 +5653 1 1.72 17.7000008 14.1599999 42.4799996 0.623918 -0.78149 -1.0 +5654 1 1.72 19.4699993 15.9300004 42.4799996 -0.61758 -0.786508 -1.0 +5655 1 1.72 19.4699993 14.1599999 44.25 0.188507 0.982072 -1.0 +5656 1 1.72 17.7000008 15.9300004 44.25 -0.903688 0.428191 -1.0 +5657 1 1.72 21.2399998 14.1599999 42.4799996 -0.102099 -0.994774 -1.0 +5658 1 1.72 23.0100002 15.9300004 42.4799996 0.727423 -0.686189 -1.0 +5659 1 1.72 23.0100002 14.1599999 44.25 -0.55747 0.830197 -1.0 +5660 1 1.72 21.2399998 15.9300004 44.25 -0.987501 0.157614 -1.0 +5661 1 1.72 24.7800007 14.1599999 42.4799996 -0.55077 0.834657 -1.0 +5662 1 1.72 26.5499993 15.9300004 42.4799996 0.959515 -0.281656 -1.0 +5663 1 1.72 26.5499993 14.1599999 44.25 -0.199257 -0.979947 -1.0 +5664 1 1.72 24.7800007 15.9300004 44.25 -0.537322 0.843377 -1.0 +5665 1 1.72 0.0 17.7000008 42.4799996 0.637141 -0.770747 -1.0 +5666 1 1.72 1.77 19.4699993 42.4799996 -0.980658 -0.195731 -1.0 +5667 1 1.72 1.77 17.7000008 44.25 0.687658 0.726035 -1.0 +5668 1 1.72 0.0 19.4699993 44.25 0.450625 0.892713 -1.0 +5669 1 1.72 3.54 17.7000008 42.4799996 -0.439257 -0.898361 -1.0 +5670 1 1.72 5.31 19.4699993 42.4799996 0.581591 0.813481 -1.0 +5671 1 1.72 5.31 17.7000008 44.25 -0.573557 0.819166 -1.0 +5672 1 1.72 3.54 19.4699993 44.25 0.941965 0.335712 -1.0 +5673 1 1.72 7.0799999 17.7000008 42.4799996 0.993047 -0.117716 -1.0 +5674 1 1.72 8.8500004 19.4699993 42.4799996 0.743001 0.66929 -1.0 +5675 1 1.72 8.8500004 17.7000008 44.25 -0.626343 0.779547 -1.0 +5676 1 1.72 7.0799999 19.4699993 44.25 -0.743959 -0.668226 -1.0 +5677 1 1.72 10.6199999 17.7000008 42.4799996 -0.734484 -0.678625 -1.0 +5678 1 1.72 12.3900004 19.4699993 42.4799996 -0.952206 0.305456 -1.0 +5679 1 1.72 12.3900004 17.7000008 44.25 -0.187175 0.982327 -1.0 +5680 1 1.72 10.6199999 19.4699993 44.25 -0.540894 0.841091 -1.0 +5681 1 1.72 14.1599999 17.7000008 42.4799996 0.272231 0.962232 -1.0 +5682 1 1.72 15.9300004 19.4699993 42.4799996 -0.99901 0.044492 -1.0 +5683 1 1.72 15.9300004 17.7000008 44.25 -0.901935 0.431872 -1.0 +5684 1 1.72 14.1599999 19.4699993 44.25 -0.7599 -0.65004 -1.0 +5685 1 1.72 17.7000008 17.7000008 42.4799996 0.998909 -0.0466904 -1.0 +5686 1 1.72 19.4699993 19.4699993 42.4799996 0.655375 -0.755304 -1.0 +5687 1 1.72 19.4699993 17.7000008 44.25 -0.918008 0.396563 -1.0 +5688 1 1.72 17.7000008 19.4699993 44.25 -0.679932 -0.733275 -1.0 +5689 1 1.72 21.2399998 17.7000008 42.4799996 -0.597873 -0.801591 -1.0 +5690 1 1.72 23.0100002 19.4699993 42.4799996 -0.939289 0.343126 -1.0 +5691 1 1.72 23.0100002 17.7000008 44.25 0.704395 0.709808 -1.0 +5692 1 1.72 21.2399998 19.4699993 44.25 0.133697 -0.991022 -1.0 +5693 1 1.72 24.7800007 17.7000008 42.4799996 -0.699363 -0.714767 -1.0 +5694 1 1.72 26.5499993 19.4699993 42.4799996 -0.778209 -0.628005 -1.0 +5695 1 1.72 26.5499993 17.7000008 44.25 0.484649 -0.874709 -1.0 +5696 1 1.72 24.7800007 19.4699993 44.25 -0.285731 0.95831 -1.0 +5697 1 1.72 0.0 21.2399998 42.4799996 -0.923423 0.383783 -1.0 +5698 1 1.72 1.77 23.0100002 42.4799996 0.142385 -0.989811 -1.0 +5699 1 1.72 1.77 21.2399998 44.25 0.349696 0.936863 -1.0 +5700 1 1.72 0.0 23.0100002 44.25 -0.957471 0.288531 -1.0 +5701 1 1.72 3.54 21.2399998 42.4799996 -0.495881 0.86839 -1.0 +5702 1 1.72 5.31 23.0100002 42.4799996 -0.856574 0.516023 -1.0 +5703 1 1.72 5.31 21.2399998 44.25 -0.62503 -0.780601 -1.0 +5704 1 1.72 3.54 23.0100002 44.25 0.0976695 0.995219 -1.0 +5705 1 1.72 7.0799999 21.2399998 42.4799996 -0.0769641 0.997034 -1.0 +5706 1 1.72 8.8500004 23.0100002 42.4799996 -0.448501 0.893782 -1.0 +5707 1 1.72 8.8500004 21.2399998 44.25 -0.933659 0.358163 -1.0 +5708 1 1.72 7.0799999 23.0100002 44.25 -0.814214 -0.580564 -1.0 +5709 1 1.72 10.6199999 21.2399998 42.4799996 -0.97067 0.240417 -1.0 +5710 1 1.72 12.3900004 23.0100002 42.4799996 0.716162 0.697934 -1.0 +5711 1 1.72 12.3900004 21.2399998 44.25 -0.912235 0.409668 -1.0 +5712 1 1.72 10.6199999 23.0100002 44.25 0.922866 0.385122 -1.0 +5713 1 1.72 14.1599999 21.2399998 42.4799996 0.976905 -0.213674 -1.0 +5714 1 1.72 15.9300004 23.0100002 42.4799996 -0.970937 -0.239335 -1.0 +5715 1 1.72 15.9300004 21.2399998 44.25 -0.979743 -0.200258 -1.0 +5716 1 1.72 14.1599999 23.0100002 44.25 -0.463369 -0.886166 -1.0 +5717 1 1.72 17.7000008 21.2399998 42.4799996 -0.77459 -0.632464 -1.0 +5718 1 1.72 19.4699993 23.0100002 42.4799996 -0.811216 0.584747 -1.0 +5719 1 1.72 19.4699993 21.2399998 44.25 0.701006 0.713156 -1.0 +5720 1 1.72 17.7000008 23.0100002 44.25 0.958187 -0.286143 -1.0 +5721 1 1.72 21.2399998 21.2399998 42.4799996 -0.688919 -0.724838 -1.0 +5722 1 1.72 23.0100002 23.0100002 42.4799996 -0.70051 0.713642 -1.0 +5723 1 1.72 23.0100002 21.2399998 44.25 -0.437869 0.899039 -1.0 +5724 1 1.72 21.2399998 23.0100002 44.25 -0.964577 0.263802 -1.0 +5725 1 1.72 24.7800007 21.2399998 42.4799996 -0.0350513 -0.999386 -1.0 +5726 1 1.72 26.5499993 23.0100002 42.4799996 0.847505 0.530788 -1.0 +5727 1 1.72 26.5499993 21.2399998 44.25 -0.386859 -0.922139 -1.0 +5728 1 1.72 24.7800007 23.0100002 44.25 -0.909653 0.415369 -1.0 +5729 1 1.72 0.0 24.7800007 42.4799996 -0.63388 0.773431 -1.0 +5730 1 1.72 1.77 26.5499993 42.4799996 -0.974393 -0.224853 -1.0 +5731 1 1.72 1.77 24.7800007 44.25 0.808037 -0.589131 -1.0 +5732 1 1.72 0.0 26.5499993 44.25 0.67125 -0.741231 -1.0 +5733 1 1.72 3.54 24.7800007 42.4799996 0.874443 0.485127 -1.0 +5734 1 1.72 5.31 26.5499993 42.4799996 -0.749473 -0.662035 -1.0 +5735 1 1.72 5.31 24.7800007 44.25 -0.992215 0.12454 -1.0 +5736 1 1.72 3.54 26.5499993 44.25 0.793376 -0.608732 -1.0 +5737 1 1.72 7.0799999 24.7800007 42.4799996 0.818703 0.574217 -1.0 +5738 1 1.72 8.8500004 26.5499993 42.4799996 0.792933 0.609309 -1.0 +5739 1 1.72 8.8500004 24.7800007 44.25 0.663977 -0.747753 -1.0 +5740 1 1.72 7.0799999 26.5499993 44.25 0.575864 0.817546 -1.0 +5741 1 1.72 10.6199999 24.7800007 42.4799996 -0.847311 0.531097 -1.0 +5742 1 1.72 12.3900004 26.5499993 42.4799996 -0.316619 -0.948553 -1.0 +5743 1 1.72 12.3900004 24.7800007 44.25 0.257315 -0.966328 -1.0 +5744 1 1.72 10.6199999 26.5499993 44.25 0.0636618 0.997972 -1.0 +5745 1 1.72 14.1599999 24.7800007 42.4799996 0.79046 -0.612514 -1.0 +5746 1 1.72 15.9300004 26.5499993 42.4799996 0.975041 -0.222023 -1.0 +5747 1 1.72 15.9300004 24.7800007 44.25 -0.847312 0.531096 -1.0 +5748 1 1.72 14.1599999 26.5499993 44.25 0.973922 0.226884 -1.0 +5749 1 1.72 17.7000008 24.7800007 42.4799996 0.8456 -0.533817 -1.0 +5750 1 1.72 19.4699993 26.5499993 42.4799996 0.659989 0.751275 -1.0 +5751 1 1.72 19.4699993 24.7800007 44.25 -0.943734 -0.330706 -1.0 +5752 1 1.72 17.7000008 26.5499993 44.25 0.511563 0.859246 -1.0 +5753 1 1.72 21.2399998 24.7800007 42.4799996 0.801584 -0.597882 -1.0 +5754 1 1.72 23.0100002 26.5499993 42.4799996 0.206444 -0.978458 -1.0 +5755 1 1.72 23.0100002 24.7800007 44.25 0.807611 -0.589716 -1.0 +5756 1 1.72 21.2399998 26.5499993 44.25 -0.992905 0.11891 -1.0 +5757 1 1.72 24.7800007 24.7800007 42.4799996 -0.295507 -0.95534 -1.0 +5758 1 1.72 26.5499993 26.5499993 42.4799996 -0.649213 -0.760606 -1.0 +5759 1 1.72 26.5499993 24.7800007 44.25 -0.741809 -0.670612 -1.0 +5760 1 1.72 24.7800007 26.5499993 44.25 0.632442 0.774608 -1.0 +5761 1 1.72 0.0 14.1599999 46.0200005 -0.258896 0.965905 -1.0 +5762 1 1.72 1.77 15.9300004 46.0200005 0.613464 0.789723 -1.0 +5763 1 1.72 1.77 14.1599999 47.7900009 0.548687 0.836028 -1.0 +5764 1 1.72 0.0 15.9300004 47.7900009 -0.219025 -0.975719 -1.0 +5765 1 1.72 3.54 14.1599999 46.0200005 -0.741605 -0.670837 -1.0 +5766 1 1.72 5.31 15.9300004 46.0200005 0.737991 0.67481 -1.0 +5767 1 1.72 5.31 14.1599999 47.7900009 0.999808 -0.0195981 -1.0 +5768 1 1.72 3.54 15.9300004 47.7900009 0.650079 -0.759867 -1.0 +5769 1 1.72 7.0799999 14.1599999 46.0200005 -0.964777 -0.26307 -1.0 +5770 1 1.72 8.8500004 15.9300004 46.0200005 -0.603655 -0.797246 -1.0 +5771 1 1.72 8.8500004 14.1599999 47.7900009 0.717374 -0.696688 -1.0 +5772 1 1.72 7.0799999 15.9300004 47.7900009 0.982255 -0.187548 -1.0 +5773 1 1.72 10.6199999 14.1599999 46.0200005 -0.750629 0.660724 -1.0 +5774 1 1.72 12.3900004 15.9300004 46.0200005 -0.78847 0.615073 -1.0 +5775 1 1.72 12.3900004 14.1599999 47.7900009 0.479535 0.877523 -1.0 +5776 1 1.72 10.6199999 15.9300004 47.7900009 -0.917588 -0.397533 -1.0 +5777 1 1.72 14.1599999 14.1599999 46.0200005 -0.974895 0.222665 -1.0 +5778 1 1.72 15.9300004 15.9300004 46.0200005 -0.989064 -0.147489 -1.0 +5779 1 1.72 15.9300004 14.1599999 47.7900009 -0.977148 -0.21256 -1.0 +5780 1 1.72 14.1599999 15.9300004 47.7900009 -0.860564 -0.509342 -1.0 +5781 1 1.72 17.7000008 14.1599999 46.0200005 0.734567 0.678536 -1.0 +5782 1 1.72 19.4699993 15.9300004 46.0200005 0.296258 -0.955108 -1.0 +5783 1 1.72 19.4699993 14.1599999 47.7900009 0.708531 0.705679 -1.0 +5784 1 1.72 17.7000008 15.9300004 47.7900009 -0.99677 -0.0803078 -1.0 +5785 1 1.72 21.2399998 14.1599999 46.0200005 0.708863 0.705346 -1.0 +5786 1 1.72 23.0100002 15.9300004 46.0200005 -0.516014 0.85658 -1.0 +5787 1 1.72 23.0100002 14.1599999 47.7900009 -0.768646 0.639675 -1.0 +5788 1 1.72 21.2399998 15.9300004 47.7900009 0.545654 0.83801 -1.0 +5789 1 1.72 24.7800007 14.1599999 46.0200005 -0.709344 0.704862 -1.0 +5790 1 1.72 26.5499993 15.9300004 46.0200005 -0.0791587 0.996862 -1.0 +5791 1 1.72 26.5499993 14.1599999 47.7900009 -0.613487 0.789704 -1.0 +5792 1 1.72 24.7800007 15.9300004 47.7900009 -0.751593 0.659627 -1.0 +5793 1 1.72 0.0 17.7000008 46.0200005 0.156439 0.987688 -1.0 +5794 1 1.72 1.77 19.4699993 46.0200005 0.946086 0.323915 -1.0 +5795 1 1.72 1.77 17.7000008 47.7900009 0.324054 -0.946039 -1.0 +5796 1 1.72 0.0 19.4699993 47.7900009 -0.380184 -0.924911 -1.0 +5797 1 1.72 3.54 17.7000008 46.0200005 -0.997566 0.0697237 -1.0 +5798 1 1.72 5.31 19.4699993 46.0200005 -0.00855329 0.999963 -1.0 +5799 1 1.72 5.31 17.7000008 47.7900009 -0.283175 -0.959068 -1.0 +5800 1 1.72 3.54 19.4699993 47.7900009 0.151529 -0.988453 -1.0 +5801 1 1.72 7.0799999 17.7000008 46.0200005 -0.155772 -0.987793 -1.0 +5802 1 1.72 8.8500004 19.4699993 46.0200005 0.594388 0.804179 -1.0 +5803 1 1.72 8.8500004 17.7000008 47.7900009 -0.02795 -0.999609 -1.0 +5804 1 1.72 7.0799999 19.4699993 47.7900009 0.780889 0.62467 -1.0 +5805 1 1.72 10.6199999 17.7000008 46.0200005 -0.788316 0.615271 -1.0 +5806 1 1.72 12.3900004 19.4699993 46.0200005 0.862787 -0.505567 -1.0 +5807 1 1.72 12.3900004 17.7000008 47.7900009 0.528517 -0.848923 -1.0 +5808 1 1.72 10.6199999 19.4699993 47.7900009 -0.914504 -0.404578 -1.0 +5809 1 1.72 14.1599999 17.7000008 46.0200005 -0.689964 -0.723844 -1.0 +5810 1 1.72 15.9300004 19.4699993 46.0200005 0.0323825 0.999476 -1.0 +5811 1 1.72 15.9300004 17.7000008 47.7900009 0.721354 -0.692567 -1.0 +5812 1 1.72 14.1599999 19.4699993 47.7900009 -0.996066 0.0886176 -1.0 +5813 1 1.72 17.7000008 17.7000008 46.0200005 0.922306 0.386461 -1.0 +5814 1 1.72 19.4699993 19.4699993 46.0200005 -0.56807 -0.82298 -1.0 +5815 1 1.72 19.4699993 17.7000008 47.7900009 0.793198 -0.608964 -1.0 +5816 1 1.72 17.7000008 19.4699993 47.7900009 0.516482 0.856298 -1.0 +5817 1 1.72 21.2399998 17.7000008 46.0200005 -0.144465 0.98951 -1.0 +5818 1 1.72 23.0100002 19.4699993 46.0200005 0.641254 0.767329 -1.0 +5819 1 1.72 23.0100002 17.7000008 47.7900009 0.884326 -0.466871 -1.0 +5820 1 1.72 21.2399998 19.4699993 47.7900009 -0.998958 -0.0456484 -1.0 +5821 1 1.72 24.7800007 17.7000008 46.0200005 0.933227 -0.359287 -1.0 +5822 1 1.72 26.5499993 19.4699993 46.0200005 0.554881 0.831929 -1.0 +5823 1 1.72 26.5499993 17.7000008 47.7900009 -1 9.33214e-05 -1.0 +5824 1 1.72 24.7800007 19.4699993 47.7900009 0.685526 -0.728049 -1.0 +5825 1 1.72 0.0 21.2399998 46.0200005 -0.986876 0.161481 -1.0 +5826 1 1.72 1.77 23.0100002 46.0200005 0.95263 -0.304131 -1.0 +5827 1 1.72 1.77 21.2399998 47.7900009 -0.879186 -0.47648 -1.0 +5828 1 1.72 0.0 23.0100002 47.7900009 0.161941 0.986801 -1.0 +5829 1 1.72 3.54 21.2399998 46.0200005 0.31256 -0.949898 -1.0 +5830 1 1.72 5.31 23.0100002 46.0200005 -0.407537 -0.913189 -1.0 +5831 1 1.72 5.31 21.2399998 47.7900009 0.968549 0.248822 -1.0 +5832 1 1.72 3.54 23.0100002 47.7900009 0.745773 0.666201 -1.0 +5833 1 1.72 7.0799999 21.2399998 46.0200005 -0.826377 -0.563117 -1.0 +5834 1 1.72 8.8500004 23.0100002 46.0200005 -0.28528 0.958444 -1.0 +5835 1 1.72 8.8500004 21.2399998 47.7900009 -0.724735 0.689028 -1.0 +5836 1 1.72 7.0799999 23.0100002 47.7900009 -0.867468 0.497494 -1.0 +5837 1 1.72 10.6199999 21.2399998 46.0200005 0.835506 -0.549481 -1.0 +5838 1 1.72 12.3900004 23.0100002 46.0200005 0.0559503 0.998434 -1.0 +5839 1 1.72 12.3900004 21.2399998 47.7900009 0.927847 -0.372962 -1.0 +5840 1 1.72 10.6199999 23.0100002 47.7900009 -0.0226294 -0.999744 -1.0 +5841 1 1.72 14.1599999 21.2399998 46.0200005 -0.982308 -0.187273 -1.0 +5842 1 1.72 15.9300004 23.0100002 46.0200005 -0.0043554 0.999991 -1.0 +5843 1 1.72 15.9300004 21.2399998 47.7900009 0.774304 -0.632814 -1.0 +5844 1 1.72 14.1599999 23.0100002 47.7900009 0.589507 0.807763 -1.0 +5845 1 1.72 17.7000008 21.2399998 46.0200005 0.915179 -0.403047 -1.0 +5846 1 1.72 19.4699993 23.0100002 46.0200005 -0.422625 -0.906305 -1.0 +5847 1 1.72 19.4699993 21.2399998 47.7900009 0.153881 -0.988089 -1.0 +5848 1 1.72 17.7000008 23.0100002 47.7900009 0.37917 0.925327 -1.0 +5849 1 1.72 21.2399998 21.2399998 46.0200005 0.838492 0.544914 -1.0 +5850 1 1.72 23.0100002 23.0100002 46.0200005 0.319679 0.947526 -1.0 +5851 1 1.72 23.0100002 21.2399998 47.7900009 0.600233 -0.799825 -1.0 +5852 1 1.72 21.2399998 23.0100002 47.7900009 -0.805494 -0.592604 -1.0 +5853 1 1.72 24.7800007 21.2399998 46.0200005 -0.142404 0.989809 -1.0 +5854 1 1.72 26.5499993 23.0100002 46.0200005 0.201734 0.97944 -1.0 +5855 1 1.72 26.5499993 21.2399998 47.7900009 -0.318626 -0.94788 -1.0 +5856 1 1.72 24.7800007 23.0100002 47.7900009 -0.178565 -0.983928 -1.0 +5857 1 1.72 0.0 24.7800007 46.0200005 -0.658313 0.752744 -1.0 +5858 1 1.72 1.77 26.5499993 46.0200005 -0.991669 0.128812 -1.0 +5859 1 1.72 1.77 24.7800007 47.7900009 0.874459 -0.485099 -1.0 +5860 1 1.72 0.0 26.5499993 47.7900009 0.585971 -0.810332 -1.0 +5861 1 1.72 3.54 24.7800007 46.0200005 -0.99995 0.00995136 -1.0 +5862 1 1.72 5.31 26.5499993 46.0200005 -0.946633 0.322315 -1.0 +5863 1 1.72 5.31 24.7800007 47.7900009 0.938436 -0.345452 -1.0 +5864 1 1.72 3.54 26.5499993 47.7900009 -0.731072 -0.6823 -1.0 +5865 1 1.72 7.0799999 24.7800007 46.0200005 0.205982 0.978556 -1.0 +5866 1 1.72 8.8500004 26.5499993 46.0200005 -0.164318 -0.986407 -1.0 +5867 1 1.72 8.8500004 24.7800007 47.7900009 0.509471 0.860488 -1.0 +5868 1 1.72 7.0799999 26.5499993 47.7900009 -0.361047 0.932548 -1.0 +5869 1 1.72 10.6199999 24.7800007 46.0200005 0.722525 -0.691344 -1.0 +5870 1 1.72 12.3900004 26.5499993 46.0200005 -0.724186 0.689604 -1.0 +5871 1 1.72 12.3900004 24.7800007 47.7900009 -0.290863 -0.956765 -1.0 +5872 1 1.72 10.6199999 26.5499993 47.7900009 -0.120971 -0.992656 -1.0 +5873 1 1.72 14.1599999 24.7800007 46.0200005 -0.939219 -0.343319 -1.0 +5874 1 1.72 15.9300004 26.5499993 46.0200005 0.233855 -0.972272 -1.0 +5875 1 1.72 15.9300004 24.7800007 47.7900009 0.946714 0.322076 -1.0 +5876 1 1.72 14.1599999 26.5499993 47.7900009 -0.996297 -0.0859731 -1.0 +5877 1 1.72 17.7000008 24.7800007 46.0200005 -0.498565 -0.866852 -1.0 +5878 1 1.72 19.4699993 26.5499993 46.0200005 0.509565 0.860432 -1.0 +5879 1 1.72 19.4699993 24.7800007 47.7900009 -0.321241 -0.946997 -1.0 +5880 1 1.72 17.7000008 26.5499993 47.7900009 -0.73784 0.674976 -1.0 +5881 1 1.72 21.2399998 24.7800007 46.0200005 0.729409 0.684078 -1.0 +5882 1 1.72 23.0100002 26.5499993 46.0200005 0.998968 0.045429 -1.0 +5883 1 1.72 23.0100002 24.7800007 47.7900009 -0.673111 -0.739541 -1.0 +5884 1 1.72 21.2399998 26.5499993 47.7900009 0.281915 0.959439 -1.0 +5885 1 1.72 24.7800007 24.7800007 46.0200005 -0.786832 -0.617167 -1.0 +5886 1 1.72 26.5499993 26.5499993 46.0200005 0.551405 -0.834238 -1.0 +5887 1 1.72 26.5499993 24.7800007 47.7900009 0.982712 -0.185139 -1.0 +5888 1 1.72 24.7800007 26.5499993 47.7900009 -0.811209 -0.584756 -1.0 +5889 1 1.72 0.0 14.1599999 49.5600014 -0.378852 -0.925457 -1.0 +5890 1 1.72 1.77 15.9300004 49.5600014 0.94023 0.340539 -1.0 +5891 1 1.72 1.77 14.1599999 51.3300018 -0.778255 0.627949 -1.0 +5892 1 1.72 0.0 15.9300004 51.3300018 -0.882207 -0.470862 -1.0 +5893 1 1.72 3.54 14.1599999 49.5600014 0.829729 -0.558167 -1.0 +5894 1 1.72 5.31 15.9300004 49.5600014 0.730525 -0.682886 -1.0 +5895 1 1.72 5.31 14.1599999 51.3300018 0.881015 0.473089 -1.0 +5896 1 1.72 3.54 15.9300004 51.3300018 -0.272063 0.962279 -1.0 +5897 1 1.72 7.0799999 14.1599999 49.5600014 -0.555908 -0.831244 -1.0 +5898 1 1.72 8.8500004 15.9300004 49.5600014 0.161216 0.986919 -1.0 +5899 1 1.72 8.8500004 14.1599999 51.3300018 0.55463 -0.832097 -1.0 +5900 1 1.72 7.0799999 15.9300004 51.3300018 0.0775085 -0.996992 -1.0 +5901 1 1.72 10.6199999 14.1599999 49.5600014 0.606038 0.795436 -1.0 +5902 1 1.72 12.3900004 15.9300004 49.5600014 -0.407017 -0.91342 -1.0 +5903 1 1.72 12.3900004 14.1599999 51.3300018 -0.766085 -0.642739 -1.0 +5904 1 1.72 10.6199999 15.9300004 51.3300018 0.197994 -0.980203 -1.0 +5905 1 1.72 14.1599999 14.1599999 49.5600014 -0.324909 -0.945745 -1.0 +5906 1 1.72 15.9300004 15.9300004 49.5600014 0.948694 -0.316195 -1.0 +5907 1 1.72 15.9300004 14.1599999 51.3300018 0.22908 -0.973408 -1.0 +5908 1 1.72 14.1599999 15.9300004 51.3300018 0.0967196 -0.995312 -1.0 +5909 1 1.72 17.7000008 14.1599999 49.5600014 0.966499 0.256671 -1.0 +5910 1 1.72 19.4699993 15.9300004 49.5600014 -0.992529 0.122013 -1.0 +5911 1 1.72 19.4699993 14.1599999 51.3300018 -0.585995 0.810314 -1.0 +5912 1 1.72 17.7000008 15.9300004 51.3300018 -0.841433 -0.540361 -1.0 +5913 1 1.72 21.2399998 14.1599999 49.5600014 -0.810271 -0.586055 -1.0 +5914 1 1.72 23.0100002 15.9300004 49.5600014 -0.756237 0.654298 -1.0 +5915 1 1.72 23.0100002 14.1599999 51.3300018 -0.985467 -0.169868 -1.0 +5916 1 1.72 21.2399998 15.9300004 51.3300018 -0.793037 -0.609173 -1.0 +5917 1 1.72 24.7800007 14.1599999 49.5600014 0.627531 -0.778592 -1.0 +5918 1 1.72 26.5499993 15.9300004 49.5600014 -0.100017 -0.994986 -1.0 +5919 1 1.72 26.5499993 14.1599999 51.3300018 0.359122 0.933291 -1.0 +5920 1 1.72 24.7800007 15.9300004 51.3300018 0.760315 -0.649555 -1.0 +5921 1 1.72 0.0 17.7000008 49.5600014 -0.602877 0.797834 -1.0 +5922 1 1.72 1.77 19.4699993 49.5600014 -0.0245025 0.9997 -1.0 +5923 1 1.72 1.77 17.7000008 51.3300018 0.645255 -0.763967 -1.0 +5924 1 1.72 0.0 19.4699993 51.3300018 0.427044 0.904231 -1.0 +5925 1 1.72 3.54 17.7000008 49.5600014 0.244096 0.969751 -1.0 +5926 1 1.72 5.31 19.4699993 49.5600014 0.6477 -0.761896 -1.0 +5927 1 1.72 5.31 17.7000008 51.3300018 -0.999997 -0.00230823 -1.0 +5928 1 1.72 3.54 19.4699993 51.3300018 0.849217 0.528044 -1.0 +5929 1 1.72 7.0799999 17.7000008 49.5600014 -0.591012 0.806663 -1.0 +5930 1 1.72 8.8500004 19.4699993 49.5600014 -0.711179 -0.70301 -1.0 +5931 1 1.72 8.8500004 17.7000008 51.3300018 0.724686 -0.689079 -1.0 +5932 1 1.72 7.0799999 19.4699993 51.3300018 -0.321062 0.947058 -1.0 +5933 1 1.72 10.6199999 17.7000008 49.5600014 0.477399 0.878687 -1.0 +5934 1 1.72 12.3900004 19.4699993 49.5600014 0.100959 -0.994891 -1.0 +5935 1 1.72 12.3900004 17.7000008 51.3300018 -0.735617 -0.677398 -1.0 +5936 1 1.72 10.6199999 19.4699993 51.3300018 -0.850138 0.52656 -1.0 +5937 1 1.72 14.1599999 17.7000008 49.5600014 0.663083 0.748546 -1.0 +5938 1 1.72 15.9300004 19.4699993 49.5600014 0.924604 0.38093 -1.0 +5939 1 1.72 15.9300004 17.7000008 51.3300018 -0.978143 0.207935 -1.0 +5940 1 1.72 14.1599999 19.4699993 51.3300018 0.354761 0.934957 -1.0 +5941 1 1.72 17.7000008 17.7000008 49.5600014 -0.766512 -0.64223 -1.0 +5942 1 1.72 19.4699993 19.4699993 49.5600014 0.997204 0.0747274 -1.0 +5943 1 1.72 19.4699993 17.7000008 51.3300018 0.706698 -0.707515 -1.0 +5944 1 1.72 17.7000008 19.4699993 51.3300018 -0.895599 -0.444862 -1.0 +5945 1 1.72 21.2399998 17.7000008 49.5600014 0.67208 0.740479 -1.0 +5946 1 1.72 23.0100002 19.4699993 49.5600014 0.875781 -0.482709 -1.0 +5947 1 1.72 23.0100002 17.7000008 51.3300018 -0.347583 0.937649 -1.0 +5948 1 1.72 21.2399998 19.4699993 51.3300018 0.548923 -0.835873 -1.0 +5949 1 1.72 24.7800007 17.7000008 49.5600014 0.771295 -0.636478 -1.0 +5950 1 1.72 26.5499993 19.4699993 49.5600014 0.941643 0.336614 -1.0 +5951 1 1.72 26.5499993 17.7000008 51.3300018 -0.865584 0.500763 -1.0 +5952 1 1.72 24.7800007 19.4699993 51.3300018 0.779822 -0.626001 -1.0 +5953 1 1.72 0.0 21.2399998 49.5600014 0.979665 0.20064 -1.0 +5954 1 1.72 1.77 23.0100002 49.5600014 0.137288 -0.990531 -1.0 +5955 1 1.72 1.77 21.2399998 51.3300018 -0.904205 -0.427099 -1.0 +5956 1 1.72 0.0 23.0100002 51.3300018 -0.0732805 0.997311 -1.0 +5957 1 1.72 3.54 21.2399998 49.5600014 0.559086 -0.829109 -1.0 +5958 1 1.72 5.31 23.0100002 49.5600014 0.199777 -0.979841 -1.0 +5959 1 1.72 5.31 21.2399998 51.3300018 -0.755573 0.655064 -1.0 +5960 1 1.72 3.54 23.0100002 51.3300018 -0.846541 0.532324 -1.0 +5961 1 1.72 7.0799999 21.2399998 49.5600014 0.693924 0.720048 -1.0 +5962 1 1.72 8.8500004 23.0100002 49.5600014 0.19329 -0.981142 -1.0 +5963 1 1.72 8.8500004 21.2399998 51.3300018 0.655598 0.75511 -1.0 +5964 1 1.72 7.0799999 23.0100002 51.3300018 -0.629838 -0.776727 -1.0 +5965 1 1.72 10.6199999 21.2399998 49.5600014 -0.895625 -0.444809 -1.0 +5966 1 1.72 12.3900004 23.0100002 49.5600014 -0.54358 -0.839357 -1.0 +5967 1 1.72 12.3900004 21.2399998 51.3300018 -0.975636 0.219395 -1.0 +5968 1 1.72 10.6199999 23.0100002 51.3300018 0.698311 0.715794 -1.0 +5969 1 1.72 14.1599999 21.2399998 49.5600014 -0.340312 -0.940313 -1.0 +5970 1 1.72 15.9300004 23.0100002 49.5600014 -0.903902 -0.42774 -1.0 +5971 1 1.72 15.9300004 21.2399998 51.3300018 -0.230151 0.973155 -1.0 +5972 1 1.72 14.1599999 23.0100002 51.3300018 0.701267 0.712899 -1.0 +5973 1 1.72 17.7000008 21.2399998 49.5600014 -0.689618 -0.724173 -1.0 +5974 1 1.72 19.4699993 23.0100002 49.5600014 -0.881775 0.47167 -1.0 +5975 1 1.72 19.4699993 21.2399998 51.3300018 0.912698 0.408635 -1.0 +5976 1 1.72 17.7000008 23.0100002 51.3300018 0.34639 0.93809 -1.0 +5977 1 1.72 21.2399998 21.2399998 49.5600014 -0.0205107 0.99979 -1.0 +5978 1 1.72 23.0100002 23.0100002 49.5600014 0.298867 0.954295 -1.0 +5979 1 1.72 23.0100002 21.2399998 51.3300018 -0.673034 -0.739612 -1.0 +5980 1 1.72 21.2399998 23.0100002 51.3300018 0.145859 0.989305 -1.0 +5981 1 1.72 24.7800007 21.2399998 49.5600014 -0.79415 0.607722 -1.0 +5982 1 1.72 26.5499993 23.0100002 49.5600014 0.73531 -0.677731 -1.0 +5983 1 1.72 26.5499993 21.2399998 51.3300018 0.173649 -0.984808 -1.0 +5984 1 1.72 24.7800007 23.0100002 51.3300018 -0.976362 -0.216143 -1.0 +5985 1 1.72 0.0 24.7800007 49.5600014 0.5347 -0.845042 -1.0 +5986 1 1.72 1.77 26.5499993 49.5600014 -0.187923 -0.982184 -1.0 +5987 1 1.72 1.77 24.7800007 51.3300018 -0.844181 -0.536058 -1.0 +5988 1 1.72 0.0 26.5499993 51.3300018 0.907133 -0.420845 -1.0 +5989 1 1.72 3.54 24.7800007 49.5600014 -0.586332 -0.810071 -1.0 +5990 1 1.72 5.31 26.5499993 49.5600014 0.438191 0.898882 -1.0 +5991 1 1.72 5.31 24.7800007 51.3300018 -0.913197 -0.407519 -1.0 +5992 1 1.72 3.54 26.5499993 51.3300018 -0.41393 0.910309 -1.0 +5993 1 1.72 7.0799999 24.7800007 49.5600014 0.288946 -0.957345 -1.0 +5994 1 1.72 8.8500004 26.5499993 49.5600014 0.78547 0.618899 -1.0 +5995 1 1.72 8.8500004 24.7800007 51.3300018 -0.776557 0.630047 -1.0 +5996 1 1.72 7.0799999 26.5499993 51.3300018 0.985367 -0.170445 -1.0 +5997 1 1.72 10.6199999 24.7800007 49.5600014 0.887208 0.461369 -1.0 +5998 1 1.72 12.3900004 26.5499993 49.5600014 -0.713169 0.700993 -1.0 +5999 1 1.72 12.3900004 24.7800007 51.3300018 -0.997513 -0.0704793 -1.0 +6000 1 1.72 10.6199999 26.5499993 51.3300018 -0.7018 0.712374 -1.0 +6001 1 1.72 14.1599999 24.7800007 49.5600014 0.564894 0.825163 -1.0 +6002 1 1.72 15.9300004 26.5499993 49.5600014 -0.400972 0.91609 -1.0 +6003 1 1.72 15.9300004 24.7800007 51.3300018 -0.636085 -0.771619 -1.0 +6004 1 1.72 14.1599999 26.5499993 51.3300018 -0.998899 -0.0469201 -1.0 +6005 1 1.72 17.7000008 24.7800007 49.5600014 0.577245 0.816571 -1.0 +6006 1 1.72 19.4699993 26.5499993 49.5600014 0.501571 -0.865116 -1.0 +6007 1 1.72 19.4699993 24.7800007 51.3300018 -0.849829 0.527058 -1.0 +6008 1 1.72 17.7000008 26.5499993 51.3300018 -0.856265 0.516537 -1.0 +6009 1 1.72 21.2399998 24.7800007 49.5600014 0.54668 0.837342 -1.0 +6010 1 1.72 23.0100002 26.5499993 49.5600014 -0.887267 0.461256 -1.0 +6011 1 1.72 23.0100002 24.7800007 51.3300018 -0.603538 0.797334 -1.0 +6012 1 1.72 21.2399998 26.5499993 51.3300018 0.920581 0.390551 -1.0 +6013 1 1.72 24.7800007 24.7800007 49.5600014 0.746523 0.66536 -1.0 +6014 1 1.72 26.5499993 26.5499993 49.5600014 -0.338329 -0.941028 -1.0 +6015 1 1.72 26.5499993 24.7800007 51.3300018 -0.986506 0.163725 -1.0 +6016 1 1.72 24.7800007 26.5499993 51.3300018 0.265652 -0.964069 -1.0 +6017 1 1.72 0.0 14.1599999 53.0999985 -0.72963 0.683842 -1.0 +6018 1 1.72 1.77 15.9300004 53.0999985 -0.299932 0.953961 -1.0 +6019 1 1.72 1.77 14.1599999 54.869999 0.957468 0.288538 -1.0 +6020 1 1.72 0.0 15.9300004 54.869999 0.866176 -0.49974 -1.0 +6021 1 1.72 3.54 14.1599999 53.0999985 -0.501889 0.864932 -1.0 +6022 1 1.72 5.31 15.9300004 53.0999985 0.493589 -0.869696 -1.0 +6023 1 1.72 5.31 14.1599999 54.869999 -0.776653 -0.629928 -1.0 +6024 1 1.72 3.54 15.9300004 54.869999 0.610332 0.792146 -1.0 +6025 1 1.72 7.0799999 14.1599999 53.0999985 0.885414 0.464804 -1.0 +6026 1 1.72 8.8500004 15.9300004 53.0999985 0.268507 -0.963278 -1.0 +6027 1 1.72 8.8500004 14.1599999 54.869999 0.635853 0.77181 -1.0 +6028 1 1.72 7.0799999 15.9300004 54.869999 -0.392523 0.919742 -1.0 +6029 1 1.72 10.6199999 14.1599999 53.0999985 -0.807955 -0.589244 -1.0 +6030 1 1.72 12.3900004 15.9300004 53.0999985 -0.765741 0.643149 -1.0 +6031 1 1.72 12.3900004 14.1599999 54.869999 -0.0402604 0.999189 -1.0 +6032 1 1.72 10.6199999 15.9300004 54.869999 -0.976692 0.214646 -1.0 +6033 1 1.72 14.1599999 14.1599999 53.0999985 0.656043 -0.754723 -1.0 +6034 1 1.72 15.9300004 15.9300004 53.0999985 0.984375 0.176087 -1.0 +6035 1 1.72 15.9300004 14.1599999 54.869999 -0.403852 0.914824 -1.0 +6036 1 1.72 14.1599999 15.9300004 54.869999 -0.991719 0.128425 -1.0 +6037 1 1.72 17.7000008 14.1599999 53.0999985 -0.497478 -0.867477 -1.0 +6038 1 1.72 19.4699993 15.9300004 53.0999985 0.693678 0.720286 -1.0 +6039 1 1.72 19.4699993 14.1599999 54.869999 0.59347 0.804856 -1.0 +6040 1 1.72 17.7000008 15.9300004 54.869999 -0.631317 -0.775525 -1.0 +6041 1 1.72 21.2399998 14.1599999 53.0999985 -0.597686 -0.80173 -1.0 +6042 1 1.72 23.0100002 15.9300004 53.0999985 0.64387 0.765135 -1.0 +6043 1 1.72 23.0100002 14.1599999 54.869999 0.802127 0.597153 -1.0 +6044 1 1.72 21.2399998 15.9300004 54.869999 0.495227 0.868764 -1.0 +6045 1 1.72 24.7800007 14.1599999 53.0999985 -0.960438 0.278492 -1.0 +6046 1 1.72 26.5499993 15.9300004 53.0999985 0.748164 -0.663513 -1.0 +6047 1 1.72 26.5499993 14.1599999 54.869999 0.601855 -0.798606 -1.0 +6048 1 1.72 24.7800007 15.9300004 54.869999 -0.537521 0.843251 -1.0 +6049 1 1.72 0.0 17.7000008 53.0999985 -0.991989 0.126325 -1.0 +6050 1 1.72 1.77 19.4699993 53.0999985 -0.94481 -0.327618 -1.0 +6051 1 1.72 1.77 17.7000008 54.869999 -0.0136834 0.999906 -1.0 +6052 1 1.72 0.0 19.4699993 54.869999 0.708202 0.70601 -1.0 +6053 1 1.72 3.54 17.7000008 53.0999985 0.226221 -0.974076 -1.0 +6054 1 1.72 5.31 19.4699993 53.0999985 0.523416 -0.852077 -1.0 +6055 1 1.72 5.31 17.7000008 54.869999 0.883203 -0.46899 -1.0 +6056 1 1.72 3.54 19.4699993 54.869999 -0.784698 0.619878 -1.0 +6057 1 1.72 7.0799999 17.7000008 53.0999985 -0.81023 0.586112 -1.0 +6058 1 1.72 8.8500004 19.4699993 53.0999985 -0.859116 -0.511781 -1.0 +6059 1 1.72 8.8500004 17.7000008 54.869999 -0.903797 -0.427962 -1.0 +6060 1 1.72 7.0799999 19.4699993 54.869999 -0.879628 0.475663 -1.0 +6061 1 1.72 10.6199999 17.7000008 53.0999985 -0.789816 -0.613343 -1.0 +6062 1 1.72 12.3900004 19.4699993 53.0999985 -0.942537 -0.334103 -1.0 +6063 1 1.72 12.3900004 17.7000008 54.869999 0.416996 0.908908 -1.0 +6064 1 1.72 10.6199999 19.4699993 54.869999 -0.681301 0.732004 -1.0 +6065 1 1.72 14.1599999 17.7000008 53.0999985 -0.957046 -0.289937 -1.0 +6066 1 1.72 15.9300004 19.4699993 53.0999985 -0.869426 0.494063 -1.0 +6067 1 1.72 15.9300004 17.7000008 54.869999 0.899954 0.435985 -1.0 +6068 1 1.72 14.1599999 19.4699993 54.869999 0.928905 -0.370318 -1.0 +6069 1 1.72 17.7000008 17.7000008 53.0999985 0.800868 0.598841 -1.0 +6070 1 1.72 19.4699993 19.4699993 53.0999985 -0.0768143 0.997045 -1.0 +6071 1 1.72 19.4699993 17.7000008 54.869999 -0.873311 -0.487162 -1.0 +6072 1 1.72 17.7000008 19.4699993 54.869999 0.185048 0.98273 -1.0 +6073 1 1.72 21.2399998 17.7000008 53.0999985 0.920819 0.389991 -1.0 +6074 1 1.72 23.0100002 19.4699993 53.0999985 0.941101 0.338127 -1.0 +6075 1 1.72 23.0100002 17.7000008 54.869999 -0.838651 0.544669 -1.0 +6076 1 1.72 21.2399998 19.4699993 54.869999 0.970527 0.240994 -1.0 +6077 1 1.72 24.7800007 17.7000008 53.0999985 -0.969271 0.245995 -1.0 +6078 1 1.72 26.5499993 19.4699993 53.0999985 0.379428 -0.925221 -1.0 +6079 1 1.72 26.5499993 17.7000008 54.869999 -0.663907 -0.747815 -1.0 +6080 1 1.72 24.7800007 19.4699993 54.869999 0.782445 -0.62272 -1.0 +6081 1 1.72 0.0 21.2399998 53.0999985 0.664193 0.747561 -1.0 +6082 1 1.72 1.77 23.0100002 53.0999985 0.319604 -0.947551 -1.0 +6083 1 1.72 1.77 21.2399998 54.869999 -0.979708 0.200428 -1.0 +6084 1 1.72 0.0 23.0100002 54.869999 -0.860156 0.510031 -1.0 +6085 1 1.72 3.54 21.2399998 53.0999985 0.748734 -0.662871 -1.0 +6086 1 1.72 5.31 23.0100002 53.0999985 0.992462 0.122552 -1.0 +6087 1 1.72 5.31 21.2399998 54.869999 0.963914 0.266214 -1.0 +6088 1 1.72 3.54 23.0100002 54.869999 0.432071 -0.901839 -1.0 +6089 1 1.72 7.0799999 21.2399998 53.0999985 -0.26461 0.964356 -1.0 +6090 1 1.72 8.8500004 23.0100002 53.0999985 0.481707 -0.876333 -1.0 +6091 1 1.72 8.8500004 21.2399998 54.869999 -0.871163 0.490995 -1.0 +6092 1 1.72 7.0799999 23.0100002 54.869999 0.756985 0.653432 -1.0 +6093 1 1.72 10.6199999 21.2399998 53.0999985 0.339734 0.940521 -1.0 +6094 1 1.72 12.3900004 23.0100002 53.0999985 -0.939021 0.343859 -1.0 +6095 1 1.72 12.3900004 21.2399998 54.869999 -0.682085 -0.731273 -1.0 +6096 1 1.72 10.6199999 23.0100002 54.869999 0.96389 0.266299 -1.0 +6097 1 1.72 14.1599999 21.2399998 53.0999985 0.860549 0.509368 -1.0 +6098 1 1.72 15.9300004 23.0100002 53.0999985 0.908841 0.417142 -1.0 +6099 1 1.72 15.9300004 21.2399998 54.869999 -0.883369 0.468677 -1.0 +6100 1 1.72 14.1599999 23.0100002 54.869999 0.733525 -0.679663 -1.0 +6101 1 1.72 17.7000008 21.2399998 53.0999985 0.463029 0.886343 -1.0 +6102 1 1.72 19.4699993 23.0100002 53.0999985 -0.792296 0.610137 -1.0 +6103 1 1.72 19.4699993 21.2399998 54.869999 0.981842 0.1897 -1.0 +6104 1 1.72 17.7000008 23.0100002 54.869999 0.0679748 0.997687 -1.0 +6105 1 1.72 21.2399998 21.2399998 53.0999985 0.956503 0.291723 -1.0 +6106 1 1.72 23.0100002 23.0100002 53.0999985 -0.748672 -0.662941 -1.0 +6107 1 1.72 23.0100002 21.2399998 54.869999 -0.0648316 0.997896 -1.0 +6108 1 1.72 21.2399998 23.0100002 54.869999 -0.734013 -0.679135 -1.0 +6109 1 1.72 24.7800007 21.2399998 53.0999985 -0.970461 0.241259 -1.0 +6110 1 1.72 26.5499993 23.0100002 53.0999985 -0.955043 0.296468 -1.0 +6111 1 1.72 26.5499993 21.2399998 54.869999 -0.985548 -0.169399 -1.0 +6112 1 1.72 24.7800007 23.0100002 54.869999 -0.43818 -0.898887 -1.0 +6113 1 1.72 0.0 24.7800007 53.0999985 -0.600664 0.799502 -1.0 +6114 1 1.72 1.77 26.5499993 53.0999985 0.736182 -0.676783 -1.0 +6115 1 1.72 1.77 24.7800007 54.869999 -0.515497 0.856891 -1.0 +6116 1 1.72 0.0 26.5499993 54.869999 0.692556 -0.721364 -1.0 +6117 1 1.72 3.54 24.7800007 53.0999985 0.939422 -0.342762 -1.0 +6118 1 1.72 5.31 26.5499993 53.0999985 0.880277 0.474461 -1.0 +6119 1 1.72 5.31 24.7800007 54.869999 -0.985977 0.166882 -1.0 +6120 1 1.72 3.54 26.5499993 54.869999 -0.606136 0.795361 -1.0 +6121 1 1.72 7.0799999 24.7800007 53.0999985 -0.461354 -0.887216 -1.0 +6122 1 1.72 8.8500004 26.5499993 53.0999985 0.31104 0.950397 -1.0 +6123 1 1.72 8.8500004 24.7800007 54.869999 -0.825827 -0.563924 -1.0 +6124 1 1.72 7.0799999 26.5499993 54.869999 -0.839495 0.543368 -1.0 +6125 1 1.72 10.6199999 24.7800007 53.0999985 -0.837533 -0.546387 -1.0 +6126 1 1.72 12.3900004 26.5499993 53.0999985 -0.323314 0.946292 -1.0 +6127 1 1.72 12.3900004 24.7800007 54.869999 0.958557 0.284901 -1.0 +6128 1 1.72 10.6199999 26.5499993 54.869999 -0.896889 0.442255 -1.0 +6129 1 1.72 14.1599999 24.7800007 53.0999985 0.645668 0.763618 -1.0 +6130 1 1.72 15.9300004 26.5499993 53.0999985 0.811009 -0.585034 -1.0 +6131 1 1.72 15.9300004 24.7800007 54.869999 -0.984547 -0.175122 -1.0 +6132 1 1.72 14.1599999 26.5499993 54.869999 0.664199 0.747556 -1.0 +6133 1 1.72 17.7000008 24.7800007 53.0999985 -0.991435 -0.130602 -1.0 +6134 1 1.72 19.4699993 26.5499993 53.0999985 0.851608 -0.524179 -1.0 +6135 1 1.72 19.4699993 24.7800007 54.869999 -0.0537322 -0.998555 -1.0 +6136 1 1.72 17.7000008 26.5499993 54.869999 0.632995 -0.774156 -1.0 +6137 1 1.72 21.2399998 24.7800007 53.0999985 0.821012 -0.570911 -1.0 +6138 1 1.72 23.0100002 26.5499993 53.0999985 -0.479579 -0.877499 -1.0 +6139 1 1.72 23.0100002 24.7800007 54.869999 0.796757 0.604299 -1.0 +6140 1 1.72 21.2399998 26.5499993 54.869999 0.418754 0.9081 -1.0 +6141 1 1.72 24.7800007 24.7800007 53.0999985 0.706741 0.707472 -1.0 +6142 1 1.72 26.5499993 26.5499993 53.0999985 -0.332138 -0.943231 -1.0 +6143 1 1.72 26.5499993 24.7800007 54.869999 -0.979636 0.200783 -1.0 +6144 1 1.72 24.7800007 26.5499993 54.869999 -0.934429 0.356149 -1.0 +6145 1 1.72 0.0 14.1599999 56.6399994 0.745078 -0.666977 -1.0 +6146 1 1.72 1.77 15.9300004 56.6399994 -0.0534769 0.998569 -1.0 +6147 1 1.72 1.77 14.1599999 58.4099999 0.0381051 0.999274 -1.0 +6148 1 1.72 0.0 15.9300004 58.4099999 0.484357 -0.874871 -1.0 +6149 1 1.72 3.54 14.1599999 56.6399994 -0.448471 0.893797 -1.0 +6150 1 1.72 5.31 15.9300004 56.6399994 -0.785522 -0.618833 -1.0 +6151 1 1.72 5.31 14.1599999 58.4099999 -0.264326 0.964434 -1.0 +6152 1 1.72 3.54 15.9300004 58.4099999 0.915682 0.401904 -1.0 +6153 1 1.72 7.0799999 14.1599999 56.6399994 -0.820932 -0.571026 -1.0 +6154 1 1.72 8.8500004 15.9300004 56.6399994 -0.252086 0.967705 -1.0 +6155 1 1.72 8.8500004 14.1599999 58.4099999 0.977799 0.209544 -1.0 +6156 1 1.72 7.0799999 15.9300004 58.4099999 0.311074 -0.950386 -1.0 +6157 1 1.72 10.6199999 14.1599999 56.6399994 -0.290455 0.956889 -1.0 +6158 1 1.72 12.3900004 15.9300004 56.6399994 -0.834731 -0.550658 -1.0 +6159 1 1.72 12.3900004 14.1599999 58.4099999 -0.45901 -0.888431 -1.0 +6160 1 1.72 10.6199999 15.9300004 58.4099999 0.898137 0.439716 -1.0 +6161 1 1.72 14.1599999 14.1599999 56.6399994 0.683583 -0.729872 -1.0 +6162 1 1.72 15.9300004 15.9300004 56.6399994 -0.683908 0.729568 -1.0 +6163 1 1.72 15.9300004 14.1599999 58.4099999 -0.149631 -0.988742 -1.0 +6164 1 1.72 14.1599999 15.9300004 58.4099999 -0.928038 -0.372486 -1.0 +6165 1 1.72 17.7000008 14.1599999 56.6399994 0.562022 -0.827122 -1.0 +6166 1 1.72 19.4699993 15.9300004 56.6399994 -0.747294 -0.664493 -1.0 +6167 1 1.72 19.4699993 14.1599999 58.4099999 -0.914706 0.404121 -1.0 +6168 1 1.72 17.7000008 15.9300004 58.4099999 0.940618 -0.339468 -1.0 +6169 1 1.72 21.2399998 14.1599999 56.6399994 -0.850079 -0.526656 -1.0 +6170 1 1.72 23.0100002 15.9300004 56.6399994 0.0720329 0.997402 -1.0 +6171 1 1.72 23.0100002 14.1599999 58.4099999 0.666717 -0.745311 -1.0 +6172 1 1.72 21.2399998 15.9300004 58.4099999 -0.961714 0.274054 -1.0 +6173 1 1.72 24.7800007 14.1599999 56.6399994 0.838655 0.544663 -1.0 +6174 1 1.72 26.5499993 15.9300004 56.6399994 -0.682543 -0.730846 -1.0 +6175 1 1.72 26.5499993 14.1599999 58.4099999 -0.0831215 0.996539 -1.0 +6176 1 1.72 24.7800007 15.9300004 58.4099999 0.759416 0.650605 -1.0 +6177 1 1.72 0.0 17.7000008 56.6399994 0.0576829 -0.998335 -1.0 +6178 1 1.72 1.77 19.4699993 56.6399994 -0.769262 -0.638933 -1.0 +6179 1 1.72 1.77 17.7000008 58.4099999 -0.208584 -0.978004 -1.0 +6180 1 1.72 0.0 19.4699993 58.4099999 -0.924776 -0.380511 -1.0 +6181 1 1.72 3.54 17.7000008 56.6399994 -0.962506 0.27126 -1.0 +6182 1 1.72 5.31 19.4699993 56.6399994 -0.0716457 -0.99743 -1.0 +6183 1 1.72 5.31 17.7000008 58.4099999 0.164676 0.986348 -1.0 +6184 1 1.72 3.54 19.4699993 58.4099999 0.991412 0.130774 -1.0 +6185 1 1.72 7.0799999 17.7000008 56.6399994 -0.363444 0.931616 -1.0 +6186 1 1.72 8.8500004 19.4699993 56.6399994 -0.0119062 0.999929 -1.0 +6187 1 1.72 8.8500004 17.7000008 58.4099999 0.22231 0.974976 -1.0 +6188 1 1.72 7.0799999 19.4699993 58.4099999 0.961408 -0.275128 -1.0 +6189 1 1.72 10.6199999 17.7000008 56.6399994 -0.607423 -0.794378 -1.0 +6190 1 1.72 12.3900004 19.4699993 56.6399994 0.989865 -0.142013 -1.0 +6191 1 1.72 12.3900004 17.7000008 58.4099999 0.767012 0.641633 -1.0 +6192 1 1.72 10.6199999 19.4699993 58.4099999 -0.736003 -0.676978 -1.0 +6193 1 1.72 14.1599999 17.7000008 56.6399994 -0.971226 0.238158 -1.0 +6194 1 1.72 15.9300004 19.4699993 56.6399994 0.373071 -0.927803 -1.0 +6195 1 1.72 15.9300004 17.7000008 58.4099999 -0.875468 0.483276 -1.0 +6196 1 1.72 14.1599999 19.4699993 58.4099999 0.982302 0.187305 -1.0 +6197 1 1.72 17.7000008 17.7000008 56.6399994 -0.560127 -0.828407 -1.0 +6198 1 1.72 19.4699993 19.4699993 56.6399994 -0.714866 0.699261 -1.0 +6199 1 1.72 19.4699993 17.7000008 58.4099999 0.985568 0.169281 -1.0 +6200 1 1.72 17.7000008 19.4699993 58.4099999 -0.767819 -0.640666 -1.0 +6201 1 1.72 21.2399998 17.7000008 56.6399994 -0.806884 -0.590709 -1.0 +6202 1 1.72 23.0100002 19.4699993 56.6399994 -0.763425 0.645896 -1.0 +6203 1 1.72 23.0100002 17.7000008 58.4099999 -0.239619 0.970867 -1.0 +6204 1 1.72 21.2399998 19.4699993 58.4099999 0.756541 -0.653946 -1.0 +6205 1 1.72 24.7800007 17.7000008 56.6399994 -0.875227 0.483712 -1.0 +6206 1 1.72 26.5499993 19.4699993 56.6399994 -0.98215 -0.188097 -1.0 +6207 1 1.72 26.5499993 17.7000008 58.4099999 0.274667 0.961539 -1.0 +6208 1 1.72 24.7800007 19.4699993 58.4099999 0.0453293 -0.998972 -1.0 +6209 1 1.72 0.0 21.2399998 56.6399994 -0.432482 -0.901642 -1.0 +6210 1 1.72 1.77 23.0100002 56.6399994 0.621095 0.783735 -1.0 +6211 1 1.72 1.77 21.2399998 58.4099999 0.341431 -0.939907 -1.0 +6212 1 1.72 0.0 23.0100002 58.4099999 0.685631 0.727949 -1.0 +6213 1 1.72 3.54 21.2399998 56.6399994 -0.854038 0.520211 -1.0 +6214 1 1.72 5.31 23.0100002 56.6399994 0.991484 0.130229 -1.0 +6215 1 1.72 5.31 21.2399998 58.4099999 -0.482334 -0.875987 -1.0 +6216 1 1.72 3.54 23.0100002 58.4099999 0.49268 -0.870211 -1.0 +6217 1 1.72 7.0799999 21.2399998 56.6399994 0.816957 -0.576699 -1.0 +6218 1 1.72 8.8500004 23.0100002 56.6399994 -0.268876 0.963175 -1.0 +6219 1 1.72 8.8500004 21.2399998 58.4099999 0.57304 -0.819528 -1.0 +6220 1 1.72 7.0799999 23.0100002 58.4099999 0.727064 0.68657 -1.0 +6221 1 1.72 10.6199999 21.2399998 56.6399994 0.978699 -0.2053 -1.0 +6222 1 1.72 12.3900004 23.0100002 56.6399994 -0.991386 0.130972 -1.0 +6223 1 1.72 12.3900004 21.2399998 58.4099999 -0.515684 0.856779 -1.0 +6224 1 1.72 10.6199999 23.0100002 58.4099999 -0.733937 0.679218 -1.0 +6225 1 1.72 14.1599999 21.2399998 56.6399994 0.471506 0.881863 -1.0 +6226 1 1.72 15.9300004 23.0100002 56.6399994 0.647446 -0.762111 -1.0 +6227 1 1.72 15.9300004 21.2399998 58.4099999 -0.775205 0.63171 -1.0 +6228 1 1.72 14.1599999 23.0100002 58.4099999 -0.668817 -0.743427 -1.0 +6229 1 1.72 17.7000008 21.2399998 56.6399994 0.585737 -0.810501 -1.0 +6230 1 1.72 19.4699993 23.0100002 56.6399994 0.998764 -0.0497064 -1.0 +6231 1 1.72 19.4699993 21.2399998 58.4099999 0.852448 -0.522812 -1.0 +6232 1 1.72 17.7000008 23.0100002 58.4099999 0.425432 0.90499 -1.0 +6233 1 1.72 21.2399998 21.2399998 56.6399994 0.0530341 -0.998593 -1.0 +6234 1 1.72 23.0100002 23.0100002 56.6399994 -0.979915 0.199415 -1.0 +6235 1 1.72 23.0100002 21.2399998 58.4099999 0.844026 -0.536302 -1.0 +6236 1 1.72 21.2399998 23.0100002 58.4099999 -0.790956 0.611874 -1.0 +6237 1 1.72 24.7800007 21.2399998 56.6399994 0.663333 0.748324 -1.0 +6238 1 1.72 26.5499993 23.0100002 56.6399994 -0.533281 0.845938 -1.0 +6239 1 1.72 26.5499993 21.2399998 58.4099999 -0.910052 -0.414494 -1.0 +6240 1 1.72 24.7800007 23.0100002 58.4099999 0.537132 -0.843498 -1.0 +6241 1 1.72 0.0 24.7800007 56.6399994 0.848385 -0.52938 -1.0 +6242 1 1.72 1.77 26.5499993 56.6399994 0.995841 0.0911106 -1.0 +6243 1 1.72 1.77 24.7800007 58.4099999 -0.583088 0.812409 -1.0 +6244 1 1.72 0.0 26.5499993 58.4099999 0.878633 0.477498 -1.0 +6245 1 1.72 3.54 24.7800007 56.6399994 -0.934373 0.356296 -1.0 +6246 1 1.72 5.31 26.5499993 56.6399994 0.951664 0.307141 -1.0 +6247 1 1.72 5.31 24.7800007 58.4099999 -0.99961 -0.0279216 -1.0 +6248 1 1.72 3.54 26.5499993 58.4099999 -0.570758 0.821118 -1.0 +6249 1 1.72 7.0799999 24.7800007 56.6399994 -0.313684 -0.949527 -1.0 +6250 1 1.72 8.8500004 26.5499993 56.6399994 -0.865837 -0.500326 -1.0 +6251 1 1.72 8.8500004 24.7800007 58.4099999 -0.980798 0.195025 -1.0 +6252 1 1.72 7.0799999 26.5499993 58.4099999 -0.92155 -0.38826 -1.0 +6253 1 1.72 10.6199999 24.7800007 56.6399994 0.912035 0.410113 -1.0 +6254 1 1.72 12.3900004 26.5499993 56.6399994 0.853489 0.52111 -1.0 +6255 1 1.72 12.3900004 24.7800007 58.4099999 0.344436 -0.93881 -1.0 +6256 1 1.72 10.6199999 26.5499993 58.4099999 0.26886 0.963179 -1.0 +6257 1 1.72 14.1599999 24.7800007 56.6399994 0.208194 -0.978088 -1.0 +6258 1 1.72 15.9300004 26.5499993 56.6399994 0.0824067 0.996599 -1.0 +6259 1 1.72 15.9300004 24.7800007 58.4099999 -0.999797 -0.0201295 -1.0 +6260 1 1.72 14.1599999 26.5499993 58.4099999 0.704372 -0.709831 -1.0 +6261 1 1.72 17.7000008 24.7800007 56.6399994 0.409549 0.912288 -1.0 +6262 1 1.72 19.4699993 26.5499993 56.6399994 -0.980213 0.197946 -1.0 +6263 1 1.72 19.4699993 24.7800007 58.4099999 -0.791638 0.610991 -1.0 +6264 1 1.72 17.7000008 26.5499993 58.4099999 -0.624425 -0.781085 -1.0 +6265 1 1.72 21.2399998 24.7800007 56.6399994 0.923377 -0.383894 -1.0 +6266 1 1.72 23.0100002 26.5499993 56.6399994 -0.887062 0.461651 -1.0 +6267 1 1.72 23.0100002 24.7800007 58.4099999 -0.619539 0.784966 -1.0 +6268 1 1.72 21.2399998 26.5499993 58.4099999 -0.625322 -0.780367 -1.0 +6269 1 1.72 24.7800007 24.7800007 56.6399994 0.973814 -0.227344 -1.0 +6270 1 1.72 26.5499993 26.5499993 56.6399994 0.894843 0.446381 -1.0 +6271 1 1.72 26.5499993 24.7800007 58.4099999 0.960872 -0.276992 -1.0 +6272 1 1.72 24.7800007 26.5499993 58.4099999 0.999491 -0.0319134 -1.0 +6273 1 1.72 0.0 14.1599999 60.1800003 -0.678206 0.734872 -1.0 +6274 1 1.72 1.77 15.9300004 60.1800003 -0.466331 0.88461 -1.0 +6275 1 1.72 1.77 14.1599999 61.9500008 -0.992613 -0.121323 -1.0 +6276 1 1.72 0.0 15.9300004 61.9500008 -0.716033 0.698067 -1.0 +6277 1 1.72 3.54 14.1599999 60.1800003 0.903093 -0.429445 -1.0 +6278 1 1.72 5.31 15.9300004 60.1800003 0.0728353 -0.997344 -1.0 +6279 1 1.72 5.31 14.1599999 61.9500008 -0.786114 0.618081 -1.0 +6280 1 1.72 3.54 15.9300004 61.9500008 0.859938 0.510398 -1.0 +6281 1 1.72 7.0799999 14.1599999 60.1800003 -0.369668 0.929164 -1.0 +6282 1 1.72 8.8500004 15.9300004 60.1800003 -0.710335 -0.703864 -1.0 +6283 1 1.72 8.8500004 14.1599999 61.9500008 -0.76494 -0.644101 -1.0 +6284 1 1.72 7.0799999 15.9300004 61.9500008 -0.769731 0.638368 -1.0 +6285 1 1.72 10.6199999 14.1599999 60.1800003 0.995274 0.0971048 -1.0 +6286 1 1.72 12.3900004 15.9300004 60.1800003 0.918975 -0.394316 -1.0 +6287 1 1.72 12.3900004 14.1599999 61.9500008 0.998909 -0.0467025 -1.0 +6288 1 1.72 10.6199999 15.9300004 61.9500008 0.952064 0.305898 -1.0 +6289 1 1.72 14.1599999 14.1599999 60.1800003 0.601145 0.79914 -1.0 +6290 1 1.72 15.9300004 15.9300004 60.1800003 -0.929001 -0.370076 -1.0 +6291 1 1.72 15.9300004 14.1599999 61.9500008 -0.76166 0.647976 -1.0 +6292 1 1.72 14.1599999 15.9300004 61.9500008 0.484777 0.874638 -1.0 +6293 1 1.72 17.7000008 14.1599999 60.1800003 -0.597767 0.80167 -1.0 +6294 1 1.72 19.4699993 15.9300004 60.1800003 -0.941756 0.336298 -1.0 +6295 1 1.72 19.4699993 14.1599999 61.9500008 -0.0163846 -0.999866 -1.0 +6296 1 1.72 17.7000008 15.9300004 61.9500008 0.661434 -0.750003 -1.0 +6297 1 1.72 21.2399998 14.1599999 60.1800003 0.541161 0.840919 -1.0 +6298 1 1.72 23.0100002 15.9300004 60.1800003 0.856964 0.515377 -1.0 +6299 1 1.72 23.0100002 14.1599999 61.9500008 0.759367 -0.650663 -1.0 +6300 1 1.72 21.2399998 15.9300004 61.9500008 -0.810904 0.585179 -1.0 +6301 1 1.72 24.7800007 14.1599999 60.1800003 0.842901 -0.538068 -1.0 +6302 1 1.72 26.5499993 15.9300004 60.1800003 -0.149096 -0.988823 -1.0 +6303 1 1.72 26.5499993 14.1599999 61.9500008 0.971862 -0.235549 -1.0 +6304 1 1.72 24.7800007 15.9300004 61.9500008 0.396752 -0.917926 -1.0 +6305 1 1.72 0.0 17.7000008 60.1800003 -0.597404 -0.801941 -1.0 +6306 1 1.72 1.77 19.4699993 60.1800003 0.767696 -0.640815 -1.0 +6307 1 1.72 1.77 17.7000008 61.9500008 -0.240229 0.970716 -1.0 +6308 1 1.72 0.0 19.4699993 61.9500008 0.668067 0.744101 -1.0 +6309 1 1.72 3.54 17.7000008 60.1800003 0.66095 -0.75043 -1.0 +6310 1 1.72 5.31 19.4699993 60.1800003 -0.782958 -0.622075 -1.0 +6311 1 1.72 5.31 17.7000008 61.9500008 0.820799 0.571218 -1.0 +6312 1 1.72 3.54 19.4699993 61.9500008 -0.649762 0.760137 -1.0 +6313 1 1.72 7.0799999 17.7000008 60.1800003 -0.945153 0.326627 -1.0 +6314 1 1.72 8.8500004 19.4699993 60.1800003 -0.997626 -0.0688692 -1.0 +6315 1 1.72 8.8500004 17.7000008 61.9500008 0.479112 0.877754 -1.0 +6316 1 1.72 7.0799999 19.4699993 61.9500008 -0.991374 0.131061 -1.0 +6317 1 1.72 10.6199999 17.7000008 60.1800003 0.635642 0.771984 -1.0 +6318 1 1.72 12.3900004 19.4699993 60.1800003 0.999287 0.0377521 -1.0 +6319 1 1.72 12.3900004 17.7000008 61.9500008 0.185712 0.982604 -1.0 +6320 1 1.72 10.6199999 19.4699993 61.9500008 -0.232277 -0.97265 -1.0 +6321 1 1.72 14.1599999 17.7000008 60.1800003 -0.777848 0.628453 -1.0 +6322 1 1.72 15.9300004 19.4699993 60.1800003 0.581922 -0.813244 -1.0 +6323 1 1.72 15.9300004 17.7000008 61.9500008 0.321131 0.947035 -1.0 +6324 1 1.72 14.1599999 19.4699993 61.9500008 -0.152242 -0.988343 -1.0 +6325 1 1.72 17.7000008 17.7000008 60.1800003 -0.136373 0.990658 -1.0 +6326 1 1.72 19.4699993 19.4699993 60.1800003 -0.137885 -0.990448 -1.0 +6327 1 1.72 19.4699993 17.7000008 61.9500008 0.819997 -0.572368 -1.0 +6328 1 1.72 17.7000008 19.4699993 61.9500008 -0.330077 -0.943954 -1.0 +6329 1 1.72 21.2399998 17.7000008 60.1800003 0.406827 0.913505 -1.0 +6330 1 1.72 23.0100002 19.4699993 60.1800003 -0.980709 -0.195474 -1.0 +6331 1 1.72 23.0100002 17.7000008 61.9500008 0.804692 -0.593692 -1.0 +6332 1 1.72 21.2399998 19.4699993 61.9500008 0.82908 0.55913 -1.0 +6333 1 1.72 24.7800007 17.7000008 60.1800003 0.691292 0.722576 -1.0 +6334 1 1.72 26.5499993 19.4699993 60.1800003 0.622705 -0.782457 -1.0 +6335 1 1.72 26.5499993 17.7000008 61.9500008 0.542311 -0.840178 -1.0 +6336 1 1.72 24.7800007 19.4699993 61.9500008 0.630638 0.776077 -1.0 +6337 1 1.72 0.0 21.2399998 60.1800003 0.642238 -0.766505 -1.0 +6338 1 1.72 1.77 23.0100002 60.1800003 0.17935 -0.983785 -1.0 +6339 1 1.72 1.77 21.2399998 61.9500008 0.754108 -0.65675 -1.0 +6340 1 1.72 0.0 23.0100002 61.9500008 -0.996622 -0.0821202 -1.0 +6341 1 1.72 3.54 21.2399998 60.1800003 -0.682652 0.730743 -1.0 +6342 1 1.72 5.31 23.0100002 60.1800003 0.39884 -0.91702 -1.0 +6343 1 1.72 5.31 21.2399998 61.9500008 0.173424 0.984847 -1.0 +6344 1 1.72 3.54 23.0100002 61.9500008 0.863469 0.504402 -1.0 +6345 1 1.72 7.0799999 21.2399998 60.1800003 0.983806 0.179239 -1.0 +6346 1 1.72 8.8500004 23.0100002 60.1800003 -0.302619 -0.953112 -1.0 +6347 1 1.72 8.8500004 21.2399998 61.9500008 0.928662 -0.370926 -1.0 +6348 1 1.72 7.0799999 23.0100002 61.9500008 0.869869 0.493282 -1.0 +6349 1 1.72 10.6199999 21.2399998 60.1800003 0.868844 0.495086 -1.0 +6350 1 1.72 12.3900004 23.0100002 60.1800003 -0.845685 0.533682 -1.0 +6351 1 1.72 12.3900004 21.2399998 61.9500008 0.471269 0.88199 -1.0 +6352 1 1.72 10.6199999 23.0100002 61.9500008 -0.239449 0.970909 -1.0 +6353 1 1.72 14.1599999 21.2399998 60.1800003 0.251254 0.967921 -1.0 +6354 1 1.72 15.9300004 23.0100002 60.1800003 -0.800991 0.598677 -1.0 +6355 1 1.72 15.9300004 21.2399998 61.9500008 0.0848994 0.99639 -1.0 +6356 1 1.72 14.1599999 23.0100002 61.9500008 0.312058 0.950063 -1.0 +6357 1 1.72 17.7000008 21.2399998 60.1800003 0.873 -0.487721 -1.0 +6358 1 1.72 19.4699993 23.0100002 60.1800003 0.962796 -0.270229 -1.0 +6359 1 1.72 19.4699993 21.2399998 61.9500008 -0.859399 -0.511305 -1.0 +6360 1 1.72 17.7000008 23.0100002 61.9500008 -0.54086 -0.841112 -1.0 +6361 1 1.72 21.2399998 21.2399998 60.1800003 -0.997974 0.0636247 -1.0 +6362 1 1.72 23.0100002 23.0100002 60.1800003 -0.454222 -0.890888 -1.0 +6363 1 1.72 23.0100002 21.2399998 61.9500008 -0.613124 0.789987 -1.0 +6364 1 1.72 21.2399998 23.0100002 61.9500008 -0.221408 0.975181 -1.0 +6365 1 1.72 24.7800007 21.2399998 60.1800003 0.0184886 -0.999829 -1.0 +6366 1 1.72 26.5499993 23.0100002 60.1800003 -0.804666 -0.593728 -1.0 +6367 1 1.72 26.5499993 21.2399998 61.9500008 -0.884887 -0.465805 -1.0 +6368 1 1.72 24.7800007 23.0100002 61.9500008 -0.778953 0.627082 -1.0 +6369 1 1.72 0.0 24.7800007 60.1800003 -0.554126 -0.832433 -1.0 +6370 1 1.72 1.77 26.5499993 60.1800003 -0.762575 -0.646899 -1.0 +6371 1 1.72 1.77 24.7800007 61.9500008 -0.175625 0.984457 -1.0 +6372 1 1.72 0.0 26.5499993 61.9500008 0.338197 0.941075 -1.0 +6373 1 1.72 3.54 24.7800007 60.1800003 0.965929 -0.258809 -1.0 +6374 1 1.72 5.31 26.5499993 60.1800003 -0.533867 -0.845569 -1.0 +6375 1 1.72 5.31 24.7800007 61.9500008 0.288766 -0.9574 -1.0 +6376 1 1.72 3.54 26.5499993 61.9500008 -0.36985 0.929092 -1.0 +6377 1 1.72 7.0799999 24.7800007 60.1800003 0.0627644 -0.998028 -1.0 +6378 1 1.72 8.8500004 26.5499993 60.1800003 -0.534432 0.845211 -1.0 +6379 1 1.72 8.8500004 24.7800007 61.9500008 -0.720039 0.693933 -1.0 +6380 1 1.72 7.0799999 26.5499993 61.9500008 0.745883 -0.666077 -1.0 +6381 1 1.72 10.6199999 24.7800007 60.1800003 0.440379 -0.897812 -1.0 +6382 1 1.72 12.3900004 26.5499993 60.1800003 -0.231122 0.972925 -1.0 +6383 1 1.72 12.3900004 24.7800007 61.9500008 -0.795809 0.605548 -1.0 +6384 1 1.72 10.6199999 26.5499993 61.9500008 -0.355998 0.934487 -1.0 +6385 1 1.72 14.1599999 24.7800007 60.1800003 -0.633709 0.773572 -1.0 +6386 1 1.72 15.9300004 26.5499993 60.1800003 -0.712303 0.701872 -1.0 +6387 1 1.72 15.9300004 24.7800007 61.9500008 -0.527688 0.849439 -1.0 +6388 1 1.72 14.1599999 26.5499993 61.9500008 -0.409641 0.912247 -1.0 +6389 1 1.72 17.7000008 24.7800007 60.1800003 0.102376 0.994746 -1.0 +6390 1 1.72 19.4699993 26.5499993 60.1800003 -0.713841 0.700308 -1.0 +6391 1 1.72 19.4699993 24.7800007 61.9500008 -0.392095 0.919925 -1.0 +6392 1 1.72 17.7000008 26.5499993 61.9500008 -0.00513087 -0.999987 -1.0 +6393 1 1.72 21.2399998 24.7800007 60.1800003 0.238291 0.971194 -1.0 +6394 1 1.72 23.0100002 26.5499993 60.1800003 0.817168 -0.5764 -1.0 +6395 1 1.72 23.0100002 24.7800007 61.9500008 0.634044 0.773297 -1.0 +6396 1 1.72 21.2399998 26.5499993 61.9500008 -0.992661 0.120928 -1.0 +6397 1 1.72 24.7800007 24.7800007 60.1800003 -0.962121 -0.272624 -1.0 +6398 1 1.72 26.5499993 26.5499993 60.1800003 -0.127845 0.991794 -1.0 +6399 1 1.72 26.5499993 24.7800007 61.9500008 0.306713 0.951802 -1.0 +6400 1 1.72 24.7800007 26.5499993 61.9500008 0.93199 -0.362485 -1.0 +6401 1 1.72 0.0 14.1599999 63.7200012 0.244456 0.96966 -1.0 +6402 1 1.72 1.77 15.9300004 63.7200012 0.906764 0.421638 -1.0 +6403 1 1.72 1.77 14.1599999 65.4899979 -0.0159795 0.999872 -1.0 +6404 1 1.72 0.0 15.9300004 65.4899979 0.876117 -0.482098 -1.0 +6405 1 1.72 3.54 14.1599999 63.7200012 -0.9345 -0.355962 -1.0 +6406 1 1.72 5.31 15.9300004 63.7200012 0.757074 0.653329 -1.0 +6407 1 1.72 5.31 14.1599999 65.4899979 -0.999824 -0.0187767 -1.0 +6408 1 1.72 3.54 15.9300004 65.4899979 0.999754 -0.0221863 -1.0 +6409 1 1.72 7.0799999 14.1599999 63.7200012 -0.0266067 0.999646 -1.0 +6410 1 1.72 8.8500004 15.9300004 63.7200012 0.337721 0.941246 -1.0 +6411 1 1.72 8.8500004 14.1599999 65.4899979 -0.924652 0.380814 -1.0 +6412 1 1.72 7.0799999 15.9300004 65.4899979 0.85257 -0.522613 -1.0 +6413 1 1.72 10.6199999 14.1599999 63.7200012 -0.574371 0.818595 -1.0 +6414 1 1.72 12.3900004 15.9300004 63.7200012 -0.916457 -0.400132 -1.0 +6415 1 1.72 12.3900004 14.1599999 65.4899979 0.574534 0.818481 -1.0 +6416 1 1.72 10.6199999 15.9300004 65.4899979 0.46387 0.885903 -1.0 +6417 1 1.72 14.1599999 14.1599999 63.7200012 0.529827 -0.848106 -1.0 +6418 1 1.72 15.9300004 15.9300004 63.7200012 -0.355528 0.934666 -1.0 +6419 1 1.72 15.9300004 14.1599999 65.4899979 -0.34941 0.93697 -1.0 +6420 1 1.72 14.1599999 15.9300004 65.4899979 -0.0601426 0.99819 -1.0 +6421 1 1.72 17.7000008 14.1599999 63.7200012 1 -0.000777058 -1.0 +6422 1 1.72 19.4699993 15.9300004 63.7200012 -0.999869 -0.0161834 -1.0 +6423 1 1.72 19.4699993 14.1599999 65.4899979 0.945448 0.325773 -1.0 +6424 1 1.72 17.7000008 15.9300004 65.4899979 -0.433125 0.901334 -1.0 +6425 1 1.72 21.2399998 14.1599999 63.7200012 -0.995927 0.0901635 -1.0 +6426 1 1.72 23.0100002 15.9300004 63.7200012 0.374725 -0.927136 -1.0 +6427 1 1.72 23.0100002 14.1599999 65.4899979 -0.976745 -0.214407 -1.0 +6428 1 1.72 21.2399998 15.9300004 65.4899979 -0.745958 -0.665993 -1.0 +6429 1 1.72 24.7800007 14.1599999 63.7200012 0.036316 -0.99934 -1.0 +6430 1 1.72 26.5499993 15.9300004 63.7200012 -0.227081 -0.973876 -1.0 +6431 1 1.72 26.5499993 14.1599999 65.4899979 -0.738204 0.674578 -1.0 +6432 1 1.72 24.7800007 15.9300004 65.4899979 -0.0579713 0.998318 -1.0 +6433 1 1.72 0.0 17.7000008 63.7200012 0.25366 -0.967293 -1.0 +6434 1 1.72 1.77 19.4699993 63.7200012 0.922366 0.386317 -1.0 +6435 1 1.72 1.77 17.7000008 65.4899979 0.61591 -0.787816 -1.0 +6436 1 1.72 0.0 19.4699993 65.4899979 0.28935 -0.957223 -1.0 +6437 1 1.72 3.54 17.7000008 63.7200012 -0.622173 -0.78288 -1.0 +6438 1 1.72 5.31 19.4699993 63.7200012 -0.89036 -0.455257 -1.0 +6439 1 1.72 5.31 17.7000008 65.4899979 -0.990148 0.140027 -1.0 +6440 1 1.72 3.54 19.4699993 65.4899979 0.883397 0.468626 -1.0 +6441 1 1.72 7.0799999 17.7000008 63.7200012 -0.288056 -0.957614 -1.0 +6442 1 1.72 8.8500004 19.4699993 63.7200012 -0.356241 0.934394 -1.0 +6443 1 1.72 8.8500004 17.7000008 65.4899979 0.282286 0.95933 -1.0 +6444 1 1.72 7.0799999 19.4699993 65.4899979 0.434675 0.900587 -1.0 +6445 1 1.72 10.6199999 17.7000008 63.7200012 -0.999862 0.0166135 -1.0 +6446 1 1.72 12.3900004 19.4699993 63.7200012 0.837914 0.545802 -1.0 +6447 1 1.72 12.3900004 17.7000008 65.4899979 -0.297773 -0.954637 -1.0 +6448 1 1.72 10.6199999 19.4699993 65.4899979 -0.0247984 -0.999692 -1.0 +6449 1 1.72 14.1599999 17.7000008 63.7200012 0.933256 0.359213 -1.0 +6450 1 1.72 15.9300004 19.4699993 63.7200012 0.573099 -0.819486 -1.0 +6451 1 1.72 15.9300004 17.7000008 65.4899979 0.498589 0.866838 -1.0 +6452 1 1.72 14.1599999 19.4699993 65.4899979 -0.915794 0.401647 -1.0 +6453 1 1.72 17.7000008 17.7000008 63.7200012 0.870286 0.492546 -1.0 +6454 1 1.72 19.4699993 19.4699993 63.7200012 0.875191 -0.483778 -1.0 +6455 1 1.72 19.4699993 17.7000008 65.4899979 0.635261 -0.772297 -1.0 +6456 1 1.72 17.7000008 19.4699993 65.4899979 0.587316 0.809358 -1.0 +6457 1 1.72 21.2399998 17.7000008 63.7200012 0.539067 -0.842263 -1.0 +6458 1 1.72 23.0100002 19.4699993 63.7200012 -0.991651 -0.128952 -1.0 +6459 1 1.72 23.0100002 17.7000008 65.4899979 0.20644 -0.978459 -1.0 +6460 1 1.72 21.2399998 19.4699993 65.4899979 -0.708169 -0.706043 -1.0 +6461 1 1.72 24.7800007 17.7000008 63.7200012 0.717692 -0.696361 -1.0 +6462 1 1.72 26.5499993 19.4699993 63.7200012 -0.997761 -0.0668857 -1.0 +6463 1 1.72 26.5499993 17.7000008 65.4899979 -0.993374 -0.114923 -1.0 +6464 1 1.72 24.7800007 19.4699993 65.4899979 0.987452 -0.157921 -1.0 +6465 1 1.72 0.0 21.2399998 63.7200012 -0.266421 -0.963857 -1.0 +6466 1 1.72 1.77 23.0100002 63.7200012 -0.0315061 -0.999504 -1.0 +6467 1 1.72 1.77 21.2399998 65.4899979 -0.961436 -0.27503 -1.0 +6468 1 1.72 0.0 23.0100002 65.4899979 -0.334425 0.942422 -1.0 +6469 1 1.72 3.54 21.2399998 63.7200012 -0.812159 0.583436 -1.0 +6470 1 1.72 5.31 23.0100002 63.7200012 0.149683 0.988734 -1.0 +6471 1 1.72 5.31 21.2399998 65.4899979 0.652667 0.757645 -1.0 +6472 1 1.72 3.54 23.0100002 65.4899979 -0.542246 -0.84022 -1.0 +6473 1 1.72 7.0799999 21.2399998 63.7200012 0.313021 0.949746 -1.0 +6474 1 1.72 8.8500004 23.0100002 63.7200012 0.988847 -0.148936 -1.0 +6475 1 1.72 8.8500004 21.2399998 65.4899979 -0.999068 0.043159 -1.0 +6476 1 1.72 7.0799999 23.0100002 65.4899979 -0.257953 -0.966158 -1.0 +6477 1 1.72 10.6199999 21.2399998 63.7200012 -0.93969 0.342026 -1.0 +6478 1 1.72 12.3900004 23.0100002 63.7200012 0.691642 -0.722241 -1.0 +6479 1 1.72 12.3900004 21.2399998 65.4899979 0.910415 0.413697 -1.0 +6480 1 1.72 10.6199999 23.0100002 65.4899979 0.977044 -0.213039 -1.0 +6481 1 1.72 14.1599999 21.2399998 63.7200012 -0.994924 -0.100625 -1.0 +6482 1 1.72 15.9300004 23.0100002 63.7200012 0.997765 0.0668215 -1.0 +6483 1 1.72 15.9300004 21.2399998 65.4899979 -0.953713 -0.300718 -1.0 +6484 1 1.72 14.1599999 23.0100002 65.4899979 -0.587848 -0.808972 -1.0 +6485 1 1.72 17.7000008 21.2399998 63.7200012 -0.809417 0.587234 -1.0 +6486 1 1.72 19.4699993 23.0100002 63.7200012 -0.711209 -0.70298 -1.0 +6487 1 1.72 19.4699993 21.2399998 65.4899979 -0.625646 -0.780107 -1.0 +6488 1 1.72 17.7000008 23.0100002 65.4899979 0.997192 0.0748852 -1.0 +6489 1 1.72 21.2399998 21.2399998 63.7200012 0.00737696 0.999973 -1.0 +6490 1 1.72 23.0100002 23.0100002 63.7200012 0.0583806 0.998294 -1.0 +6491 1 1.72 23.0100002 21.2399998 65.4899979 0.389595 -0.920986 -1.0 +6492 1 1.72 21.2399998 23.0100002 65.4899979 0.831391 0.555688 -1.0 +6493 1 1.72 24.7800007 21.2399998 63.7200012 0.929878 0.367867 -1.0 +6494 1 1.72 26.5499993 23.0100002 63.7200012 0.331794 -0.943352 -1.0 +6495 1 1.72 26.5499993 21.2399998 65.4899979 0.970172 0.242418 -1.0 +6496 1 1.72 24.7800007 23.0100002 65.4899979 0.432347 -0.901707 -1.0 +6497 1 1.72 0.0 24.7800007 63.7200012 -0.226161 -0.97409 -1.0 +6498 1 1.72 1.77 26.5499993 63.7200012 -0.579739 -0.814802 -1.0 +6499 1 1.72 1.77 24.7800007 65.4899979 -0.864858 -0.502017 -1.0 +6500 1 1.72 0.0 26.5499993 65.4899979 0.741342 0.671127 -1.0 +6501 1 1.72 3.54 24.7800007 63.7200012 -0.284528 -0.958668 -1.0 +6502 1 1.72 5.31 26.5499993 63.7200012 -0.979081 -0.20347 -1.0 +6503 1 1.72 5.31 24.7800007 65.4899979 0.996323 -0.0856767 -1.0 +6504 1 1.72 3.54 26.5499993 65.4899979 -0.0196231 0.999807 -1.0 +6505 1 1.72 7.0799999 24.7800007 63.7200012 0.996112 0.0880975 -1.0 +6506 1 1.72 8.8500004 26.5499993 63.7200012 0.693808 -0.72016 -1.0 +6507 1 1.72 8.8500004 24.7800007 65.4899979 0.0953527 0.995444 -1.0 +6508 1 1.72 7.0799999 26.5499993 65.4899979 -0.501416 -0.865206 -1.0 +6509 1 1.72 10.6199999 24.7800007 63.7200012 0.575267 0.817966 -1.0 +6510 1 1.72 12.3900004 26.5499993 63.7200012 -0.221833 -0.975085 -1.0 +6511 1 1.72 12.3900004 24.7800007 65.4899979 -0.404036 -0.914743 -1.0 +6512 1 1.72 10.6199999 26.5499993 65.4899979 0.681269 0.732033 -1.0 +6513 1 1.72 14.1599999 24.7800007 63.7200012 -0.267765 -0.963484 -1.0 +6514 1 1.72 15.9300004 26.5499993 63.7200012 0.929298 -0.36933 -1.0 +6515 1 1.72 15.9300004 24.7800007 65.4899979 -0.500618 -0.865669 -1.0 +6516 1 1.72 14.1599999 26.5499993 65.4899979 0.447365 0.894352 -1.0 +6517 1 1.72 17.7000008 24.7800007 63.7200012 0.69879 0.715327 -1.0 +6518 1 1.72 19.4699993 26.5499993 63.7200012 0.172359 0.985034 -1.0 +6519 1 1.72 19.4699993 24.7800007 65.4899979 0.757533 0.652797 -1.0 +6520 1 1.72 17.7000008 26.5499993 65.4899979 0.874572 -0.484896 -1.0 +6521 1 1.72 21.2399998 24.7800007 63.7200012 0.952157 0.305611 -1.0 +6522 1 1.72 23.0100002 26.5499993 63.7200012 0.977243 -0.212123 -1.0 +6523 1 1.72 23.0100002 24.7800007 65.4899979 0.802441 -0.596731 -1.0 +6524 1 1.72 21.2399998 26.5499993 65.4899979 0.515242 -0.857045 -1.0 +6525 1 1.72 24.7800007 24.7800007 63.7200012 -0.852782 -0.522266 -1.0 +6526 1 1.72 26.5499993 26.5499993 63.7200012 0.0552851 -0.998471 -1.0 +6527 1 1.72 26.5499993 24.7800007 65.4899979 -0.979565 0.201126 -1.0 +6528 1 1.72 24.7800007 26.5499993 65.4899979 -0.863429 0.504471 -1.0 +6529 1 1.72 0.0 14.1599999 67.2600021 0.87739 -0.479777 -1.0 +6530 1 1.72 1.77 15.9300004 67.2600021 0.61897 0.785414 -1.0 +6531 1 1.72 1.77 14.1599999 69.0299988 -0.842018 0.53945 -1.0 +6532 1 1.72 0.0 15.9300004 69.0299988 -0.666081 0.745879 -1.0 +6533 1 1.72 3.54 14.1599999 67.2600021 0.964859 -0.262767 -1.0 +6534 1 1.72 5.31 15.9300004 67.2600021 -0.629911 -0.776667 -1.0 +6535 1 1.72 5.31 14.1599999 69.0299988 -0.332087 -0.943249 -1.0 +6536 1 1.72 3.54 15.9300004 69.0299988 -0.994652 0.103279 -1.0 +6537 1 1.72 7.0799999 14.1599999 67.2600021 -0.272747 0.962086 -1.0 +6538 1 1.72 8.8500004 15.9300004 67.2600021 -0.321511 0.946906 -1.0 +6539 1 1.72 8.8500004 14.1599999 69.0299988 -0.905073 0.425257 -1.0 +6540 1 1.72 7.0799999 15.9300004 69.0299988 0.992922 0.118766 -1.0 +6541 1 1.72 10.6199999 14.1599999 67.2600021 0.567579 0.823319 -1.0 +6542 1 1.72 12.3900004 15.9300004 67.2600021 0.852352 -0.522969 -1.0 +6543 1 1.72 12.3900004 14.1599999 69.0299988 -0.183958 -0.982934 -1.0 +6544 1 1.72 10.6199999 15.9300004 69.0299988 0.112641 0.993636 -1.0 +6545 1 1.72 14.1599999 14.1599999 67.2600021 -0.834419 0.551131 -1.0 +6546 1 1.72 15.9300004 15.9300004 67.2600021 -0.665779 0.746149 -1.0 +6547 1 1.72 15.9300004 14.1599999 69.0299988 -0.251836 0.96777 -1.0 +6548 1 1.72 14.1599999 15.9300004 69.0299988 0.732972 0.680259 -1.0 +6549 1 1.72 17.7000008 14.1599999 67.2600021 0.560181 -0.82837 -1.0 +6550 1 1.72 19.4699993 15.9300004 67.2600021 0.580172 0.814494 -1.0 +6551 1 1.72 19.4699993 14.1599999 69.0299988 0.623081 -0.782157 -1.0 +6552 1 1.72 17.7000008 15.9300004 69.0299988 0.0812622 0.996693 -1.0 +6553 1 1.72 21.2399998 14.1599999 67.2600021 0.414327 0.910128 -1.0 +6554 1 1.72 23.0100002 15.9300004 67.2600021 0.866352 0.499434 -1.0 +6555 1 1.72 23.0100002 14.1599999 69.0299988 -0.899415 -0.437097 -1.0 +6556 1 1.72 21.2399998 15.9300004 69.0299988 0.634276 -0.773107 -1.0 +6557 1 1.72 24.7800007 14.1599999 67.2600021 -0.900873 -0.434082 -1.0 +6558 1 1.72 26.5499993 15.9300004 67.2600021 -0.87466 0.484737 -1.0 +6559 1 1.72 26.5499993 14.1599999 69.0299988 0.548213 -0.836339 -1.0 +6560 1 1.72 24.7800007 15.9300004 69.0299988 -0.723261 -0.690575 -1.0 +6561 1 1.72 0.0 17.7000008 67.2600021 0.932227 0.361874 -1.0 +6562 1 1.72 1.77 19.4699993 67.2600021 0.682505 -0.730881 -1.0 +6563 1 1.72 1.77 17.7000008 69.0299988 0.232272 0.972651 -1.0 +6564 1 1.72 0.0 19.4699993 69.0299988 -0.719388 -0.694608 -1.0 +6565 1 1.72 3.54 17.7000008 67.2600021 0.814313 -0.580426 -1.0 +6566 1 1.72 5.31 19.4699993 67.2600021 0.805219 0.592978 -1.0 +6567 1 1.72 5.31 17.7000008 69.0299988 -0.929754 -0.36818 -1.0 +6568 1 1.72 3.54 19.4699993 69.0299988 0.538733 0.842477 -1.0 +6569 1 1.72 7.0799999 17.7000008 67.2600021 0.21099 0.977488 -1.0 +6570 1 1.72 8.8500004 19.4699993 67.2600021 0.401478 0.915869 -1.0 +6571 1 1.72 8.8500004 17.7000008 69.0299988 0.479212 -0.877699 -1.0 +6572 1 1.72 7.0799999 19.4699993 69.0299988 -0.99607 -0.0885645 -1.0 +6573 1 1.72 10.6199999 17.7000008 67.2600021 0.501774 0.864999 -1.0 +6574 1 1.72 12.3900004 19.4699993 67.2600021 -0.644282 0.764788 -1.0 +6575 1 1.72 12.3900004 17.7000008 69.0299988 0.9996 0.0282884 -1.0 +6576 1 1.72 10.6199999 19.4699993 69.0299988 -0.989743 -0.142859 -1.0 +6577 1 1.72 14.1599999 17.7000008 67.2600021 -0.221584 0.975141 -1.0 +6578 1 1.72 15.9300004 19.4699993 67.2600021 0.720961 0.692975 -1.0 +6579 1 1.72 15.9300004 17.7000008 69.0299988 -0.0140114 -0.999902 -1.0 +6580 1 1.72 14.1599999 19.4699993 69.0299988 0.959081 0.283133 -1.0 +6581 1 1.72 17.7000008 17.7000008 67.2600021 0.170917 0.985285 -1.0 +6582 1 1.72 19.4699993 19.4699993 67.2600021 0.307773 -0.95146 -1.0 +6583 1 1.72 19.4699993 17.7000008 69.0299988 0.57945 0.815008 -1.0 +6584 1 1.72 17.7000008 19.4699993 69.0299988 -0.899687 -0.436535 -1.0 +6585 1 1.72 21.2399998 17.7000008 67.2600021 0.523108 0.852266 -1.0 +6586 1 1.72 23.0100002 19.4699993 67.2600021 0.936372 0.35101 -1.0 +6587 1 1.72 23.0100002 17.7000008 69.0299988 -0.600411 0.799692 -1.0 +6588 1 1.72 21.2399998 19.4699993 69.0299988 0.941876 -0.335961 -1.0 +6589 1 1.72 24.7800007 17.7000008 67.2600021 -0.153774 -0.988106 -1.0 +6590 1 1.72 26.5499993 19.4699993 67.2600021 0.362793 0.93187 -1.0 +6591 1 1.72 26.5499993 17.7000008 69.0299988 -0.886574 0.462587 -1.0 +6592 1 1.72 24.7800007 19.4699993 69.0299988 -0.290998 0.956724 -1.0 +6593 1 1.72 0.0 21.2399998 67.2600021 -0.961752 -0.273921 -1.0 +6594 1 1.72 1.77 23.0100002 67.2600021 -0.0876775 -0.996149 -1.0 +6595 1 1.72 1.77 21.2399998 69.0299988 0.928451 -0.371456 -1.0 +6596 1 1.72 0.0 23.0100002 69.0299988 0.210289 -0.977639 -1.0 +6597 1 1.72 3.54 21.2399998 67.2600021 0.808145 -0.588983 -1.0 +6598 1 1.72 5.31 23.0100002 67.2600021 0.489345 0.87209 -1.0 +6599 1 1.72 5.31 21.2399998 69.0299988 -0.96947 -0.245209 -1.0 +6600 1 1.72 3.54 23.0100002 69.0299988 0.447867 0.8941 -1.0 +6601 1 1.72 7.0799999 21.2399998 67.2600021 -0.666432 0.745566 -1.0 +6602 1 1.72 8.8500004 23.0100002 67.2600021 -0.742723 0.669598 -1.0 +6603 1 1.72 8.8500004 21.2399998 69.0299988 0.944426 -0.328724 -1.0 +6604 1 1.72 7.0799999 23.0100002 69.0299988 0.336112 0.941822 -1.0 +6605 1 1.72 10.6199999 21.2399998 67.2600021 -0.985894 0.167369 -1.0 +6606 1 1.72 12.3900004 23.0100002 67.2600021 0.874583 0.484876 -1.0 +6607 1 1.72 12.3900004 21.2399998 69.0299988 0.585447 0.810711 -1.0 +6608 1 1.72 10.6199999 23.0100002 69.0299988 -0.685897 -0.727699 -1.0 +6609 1 1.72 14.1599999 21.2399998 67.2600021 0.285439 0.958397 -1.0 +6610 1 1.72 15.9300004 23.0100002 67.2600021 -0.19925 -0.979949 -1.0 +6611 1 1.72 15.9300004 21.2399998 69.0299988 -0.385146 0.922856 -1.0 +6612 1 1.72 14.1599999 23.0100002 69.0299988 0.659697 -0.751531 -1.0 +6613 1 1.72 17.7000008 21.2399998 67.2600021 0.468079 -0.883687 -1.0 +6614 1 1.72 19.4699993 23.0100002 67.2600021 0.954334 -0.298743 -1.0 +6615 1 1.72 19.4699993 21.2399998 69.0299988 0.765492 0.643446 -1.0 +6616 1 1.72 17.7000008 23.0100002 69.0299988 -0.364953 0.931026 -1.0 +6617 1 1.72 21.2399998 21.2399998 67.2600021 -0.674507 0.738269 -1.0 +6618 1 1.72 23.0100002 23.0100002 67.2600021 0.280405 -0.959882 -1.0 +6619 1 1.72 23.0100002 21.2399998 69.0299988 0.532257 0.846583 -1.0 +6620 1 1.72 21.2399998 23.0100002 69.0299988 0.812031 -0.583615 -1.0 +6621 1 1.72 24.7800007 21.2399998 67.2600021 0.147104 0.989121 -1.0 +6622 1 1.72 26.5499993 23.0100002 67.2600021 -0.71423 -0.699911 -1.0 +6623 1 1.72 26.5499993 21.2399998 69.0299988 -0.97684 0.213973 -1.0 +6624 1 1.72 24.7800007 23.0100002 69.0299988 -0.60991 0.792471 -1.0 +6625 1 1.72 0.0 24.7800007 67.2600021 0.991453 0.130463 -1.0 +6626 1 1.72 1.77 26.5499993 67.2600021 -0.802961 0.596032 -1.0 +6627 1 1.72 1.77 24.7800007 69.0299988 -0.222438 0.974947 -1.0 +6628 1 1.72 0.0 26.5499993 69.0299988 0.418506 0.908214 -1.0 +6629 1 1.72 3.54 24.7800007 67.2600021 0.880651 0.473766 -1.0 +6630 1 1.72 5.31 26.5499993 67.2600021 -0.808772 -0.588122 -1.0 +6631 1 1.72 5.31 24.7800007 69.0299988 -0.303163 -0.952939 -1.0 +6632 1 1.72 3.54 26.5499993 69.0299988 -0.789817 -0.613343 -1.0 +6633 1 1.72 7.0799999 24.7800007 67.2600021 -0.0525347 -0.998619 -1.0 +6634 1 1.72 8.8500004 26.5499993 67.2600021 -0.908101 0.418752 -1.0 +6635 1 1.72 8.8500004 24.7800007 69.0299988 -0.997227 0.0744199 -1.0 +6636 1 1.72 7.0799999 26.5499993 69.0299988 0.692675 -0.721249 -1.0 +6637 1 1.72 10.6199999 24.7800007 67.2600021 0.835829 0.54899 -1.0 +6638 1 1.72 12.3900004 26.5499993 67.2600021 0.612682 -0.790329 -1.0 +6639 1 1.72 12.3900004 24.7800007 69.0299988 -0.586983 0.809599 -1.0 +6640 1 1.72 10.6199999 26.5499993 69.0299988 -0.802581 -0.596543 -1.0 +6641 1 1.72 14.1599999 24.7800007 67.2600021 0.684556 0.72896 -1.0 +6642 1 1.72 15.9300004 26.5499993 67.2600021 0.490033 0.871704 -1.0 +6643 1 1.72 15.9300004 24.7800007 69.0299988 -0.679028 -0.734113 -1.0 +6644 1 1.72 14.1599999 26.5499993 69.0299988 -0.998102 -0.0615778 -1.0 +6645 1 1.72 17.7000008 24.7800007 67.2600021 0.97802 0.208512 -1.0 +6646 1 1.72 19.4699993 26.5499993 67.2600021 0.882844 0.469666 -1.0 +6647 1 1.72 19.4699993 24.7800007 69.0299988 0.171639 -0.98516 -1.0 +6648 1 1.72 17.7000008 26.5499993 69.0299988 -0.994123 -0.108258 -1.0 +6649 1 1.72 21.2399998 24.7800007 67.2600021 0.451029 -0.892509 -1.0 +6650 1 1.72 23.0100002 26.5499993 67.2600021 0.333532 0.942739 -1.0 +6651 1 1.72 23.0100002 24.7800007 69.0299988 -0.713851 -0.700298 -1.0 +6652 1 1.72 21.2399998 26.5499993 69.0299988 -0.882595 -0.470134 -1.0 +6653 1 1.72 24.7800007 24.7800007 67.2600021 0.753585 -0.657351 -1.0 +6654 1 1.72 26.5499993 26.5499993 67.2600021 -0.616616 0.787264 -1.0 +6655 1 1.72 26.5499993 24.7800007 69.0299988 -0.0466451 0.998912 -1.0 +6656 1 1.72 24.7800007 26.5499993 69.0299988 -0.273643 0.961831 -1.0 +6657 1 1.72 0.0 14.1599999 70.8000031 0.978741 0.205099 -1.0 +6658 1 1.72 1.77 15.9300004 70.8000031 -0.729137 0.684368 -1.0 +6659 1 1.72 1.77 14.1599999 72.5699997 0.220864 -0.975305 -1.0 +6660 1 1.72 0.0 15.9300004 72.5699997 0.78785 -0.615868 -1.0 +6661 1 1.72 3.54 14.1599999 70.8000031 0.906063 -0.423143 -1.0 +6662 1 1.72 5.31 15.9300004 70.8000031 -0.855733 -0.517418 -1.0 +6663 1 1.72 5.31 14.1599999 72.5699997 0.0235815 0.999722 -1.0 +6664 1 1.72 3.54 15.9300004 72.5699997 0.859711 -0.51078 -1.0 +6665 1 1.72 7.0799999 14.1599999 70.8000031 0.781283 0.624177 -1.0 +6666 1 1.72 8.8500004 15.9300004 70.8000031 -0.978043 -0.208402 -1.0 +6667 1 1.72 8.8500004 14.1599999 72.5699997 -0.869578 0.493795 -1.0 +6668 1 1.72 7.0799999 15.9300004 72.5699997 -0.93941 -0.342796 -1.0 +6669 1 1.72 10.6199999 14.1599999 70.8000031 0.911545 0.4112 -1.0 +6670 1 1.72 12.3900004 15.9300004 70.8000031 -0.389525 0.921016 -1.0 +6671 1 1.72 12.3900004 14.1599999 72.5699997 -0.445105 0.895478 -1.0 +6672 1 1.72 10.6199999 15.9300004 72.5699997 0.603963 0.797012 -1.0 +6673 1 1.72 14.1599999 14.1599999 70.8000031 -0.999989 0.00466273 -1.0 +6674 1 1.72 15.9300004 15.9300004 70.8000031 0.681259 0.732042 -1.0 +6675 1 1.72 15.9300004 14.1599999 72.5699997 0.109688 -0.993966 -1.0 +6676 1 1.72 14.1599999 15.9300004 72.5699997 0.310439 -0.950593 -1.0 +6677 1 1.72 17.7000008 14.1599999 70.8000031 0.963891 -0.266299 -1.0 +6678 1 1.72 19.4699993 15.9300004 70.8000031 0.808447 -0.588569 -1.0 +6679 1 1.72 19.4699993 14.1599999 72.5699997 -0.813087 0.582142 -1.0 +6680 1 1.72 17.7000008 15.9300004 72.5699997 -0.918742 0.394859 -1.0 +6681 1 1.72 21.2399998 14.1599999 70.8000031 -0.623102 0.78214 -1.0 +6682 1 1.72 23.0100002 15.9300004 70.8000031 0.265835 -0.964019 -1.0 +6683 1 1.72 23.0100002 14.1599999 72.5699997 0.0856731 0.996323 -1.0 +6684 1 1.72 21.2399998 15.9300004 72.5699997 0.963284 0.268484 -1.0 +6685 1 1.72 24.7800007 14.1599999 70.8000031 0.996656 -0.0817137 -1.0 +6686 1 1.72 26.5499993 15.9300004 70.8000031 -0.999592 -0.0285468 -1.0 +6687 1 1.72 26.5499993 14.1599999 72.5699997 0.994038 -0.109037 -1.0 +6688 1 1.72 24.7800007 15.9300004 72.5699997 0.440626 -0.897691 -1.0 +6689 1 1.72 0.0 17.7000008 70.8000031 -0.635711 -0.771927 -1.0 +6690 1 1.72 1.77 19.4699993 70.8000031 0.836998 -0.547206 -1.0 +6691 1 1.72 1.77 17.7000008 72.5699997 -0.226243 -0.974071 -1.0 +6692 1 1.72 0.0 19.4699993 72.5699997 -0.728806 -0.68472 -1.0 +6693 1 1.72 3.54 17.7000008 70.8000031 0.115481 -0.99331 -1.0 +6694 1 1.72 5.31 19.4699993 70.8000031 -0.929076 -0.369888 -1.0 +6695 1 1.72 5.31 17.7000008 72.5699997 0.667579 0.744539 -1.0 +6696 1 1.72 3.54 19.4699993 72.5699997 0.772755 0.634704 -1.0 +6697 1 1.72 7.0799999 17.7000008 70.8000031 0.89582 0.444417 -1.0 +6698 1 1.72 8.8500004 19.4699993 70.8000031 -0.571345 -0.82071 -1.0 +6699 1 1.72 8.8500004 17.7000008 72.5699997 -0.930746 -0.365666 -1.0 +6700 1 1.72 7.0799999 19.4699993 72.5699997 -0.5172 0.855865 -1.0 +6701 1 1.72 10.6199999 17.7000008 70.8000031 -0.926759 0.375657 -1.0 +6702 1 1.72 12.3900004 19.4699993 70.8000031 0.95546 0.295121 -1.0 +6703 1 1.72 12.3900004 17.7000008 72.5699997 0.691504 0.722373 -1.0 +6704 1 1.72 10.6199999 19.4699993 72.5699997 -0.432539 0.901615 -1.0 +6705 1 1.72 14.1599999 17.7000008 70.8000031 0.966332 -0.257299 -1.0 +6706 1 1.72 15.9300004 19.4699993 70.8000031 0.89671 -0.442618 -1.0 +6707 1 1.72 15.9300004 17.7000008 72.5699997 -0.928459 0.371435 -1.0 +6708 1 1.72 14.1599999 19.4699993 72.5699997 -0.891535 0.452953 -1.0 +6709 1 1.72 17.7000008 17.7000008 70.8000031 0.923927 0.382568 -1.0 +6710 1 1.72 19.4699993 19.4699993 70.8000031 -0.190266 -0.981733 -1.0 +6711 1 1.72 19.4699993 17.7000008 72.5699997 0.431386 0.902167 -1.0 +6712 1 1.72 17.7000008 19.4699993 72.5699997 0.692605 0.721317 -1.0 +6713 1 1.72 21.2399998 17.7000008 70.8000031 0.881341 0.472481 -1.0 +6714 1 1.72 23.0100002 19.4699993 70.8000031 0.929748 0.368197 -1.0 +6715 1 1.72 23.0100002 17.7000008 72.5699997 0.538103 0.842879 -1.0 +6716 1 1.72 21.2399998 19.4699993 72.5699997 0.608936 0.79322 -1.0 +6717 1 1.72 24.7800007 17.7000008 70.8000031 0.131981 -0.991252 -1.0 +6718 1 1.72 26.5499993 19.4699993 70.8000031 -0.410349 0.911929 -1.0 +6719 1 1.72 26.5499993 17.7000008 72.5699997 0.563545 0.826085 -1.0 +6720 1 1.72 24.7800007 19.4699993 72.5699997 0.128492 -0.991711 -1.0 +6721 1 1.72 0.0 21.2399998 70.8000031 0.754052 -0.656814 -1.0 +6722 1 1.72 1.77 23.0100002 70.8000031 -0.996879 -0.0789434 -1.0 +6723 1 1.72 1.77 21.2399998 72.5699997 -0.935458 -0.353438 -1.0 +6724 1 1.72 0.0 23.0100002 72.5699997 0.997896 0.0648414 -1.0 +6725 1 1.72 3.54 21.2399998 70.8000031 0.103204 -0.99466 -1.0 +6726 1 1.72 5.31 23.0100002 70.8000031 -0.0146918 -0.999892 -1.0 +6727 1 1.72 5.31 21.2399998 72.5699997 0.129717 -0.991551 -1.0 +6728 1 1.72 3.54 23.0100002 72.5699997 0.285649 -0.958334 -1.0 +6729 1 1.72 7.0799999 21.2399998 70.8000031 0.850011 0.526764 -1.0 +6730 1 1.72 8.8500004 23.0100002 70.8000031 0.987398 0.158259 -1.0 +6731 1 1.72 8.8500004 21.2399998 72.5699997 -0.848604 0.529028 -1.0 +6732 1 1.72 7.0799999 23.0100002 72.5699997 0.971502 0.23703 -1.0 +6733 1 1.72 10.6199999 21.2399998 70.8000031 -0.234695 -0.972069 -1.0 +6734 1 1.72 12.3900004 23.0100002 70.8000031 -0.239717 -0.970843 -1.0 +6735 1 1.72 12.3900004 21.2399998 72.5699997 -0.949156 0.314806 -1.0 +6736 1 1.72 10.6199999 23.0100002 72.5699997 -0.094091 -0.995564 -1.0 +6737 1 1.72 14.1599999 21.2399998 70.8000031 0.816531 -0.577302 -1.0 +6738 1 1.72 15.9300004 23.0100002 70.8000031 -0.115972 -0.993252 -1.0 +6739 1 1.72 15.9300004 21.2399998 72.5699997 -0.581646 0.813442 -1.0 +6740 1 1.72 14.1599999 23.0100002 72.5699997 0.999928 -0.0119888 -1.0 +6741 1 1.72 17.7000008 21.2399998 70.8000031 -0.376659 0.926352 -1.0 +6742 1 1.72 19.4699993 23.0100002 70.8000031 0.735304 0.677738 -1.0 +6743 1 1.72 19.4699993 21.2399998 72.5699997 0.174364 0.984681 -1.0 +6744 1 1.72 17.7000008 23.0100002 72.5699997 -0.939792 -0.341748 -1.0 +6745 1 1.72 21.2399998 21.2399998 70.8000031 0.10769 0.994185 -1.0 +6746 1 1.72 23.0100002 23.0100002 70.8000031 0.938343 0.345706 -1.0 +6747 1 1.72 23.0100002 21.2399998 72.5699997 -0.994638 0.103415 -1.0 +6748 1 1.72 21.2399998 23.0100002 72.5699997 -0.793569 0.60848 -1.0 +6749 1 1.72 24.7800007 21.2399998 70.8000031 0.645359 0.763879 -1.0 +6750 1 1.72 26.5499993 23.0100002 70.8000031 -0.850356 -0.526209 -1.0 +6751 1 1.72 26.5499993 21.2399998 72.5699997 0.678389 0.734703 -1.0 +6752 1 1.72 24.7800007 23.0100002 72.5699997 0.448115 0.893976 -1.0 +6753 1 1.72 0.0 24.7800007 70.8000031 0.80702 0.590525 -1.0 +6754 1 1.72 1.77 26.5499993 70.8000031 -0.912397 0.409305 -1.0 +6755 1 1.72 1.77 24.7800007 72.5699997 0.0670246 0.997751 -1.0 +6756 1 1.72 0.0 26.5499993 72.5699997 -0.57862 0.815598 -1.0 +6757 1 1.72 3.54 24.7800007 70.8000031 -0.667173 -0.744903 -1.0 +6758 1 1.72 5.31 26.5499993 70.8000031 -0.97133 0.237733 -1.0 +6759 1 1.72 5.31 24.7800007 72.5699997 -0.698831 0.715287 -1.0 +6760 1 1.72 3.54 26.5499993 72.5699997 -0.250775 0.968045 -1.0 +6761 1 1.72 7.0799999 24.7800007 70.8000031 -0.729737 -0.683728 -1.0 +6762 1 1.72 8.8500004 26.5499993 70.8000031 -0.74959 0.661903 -1.0 +6763 1 1.72 8.8500004 24.7800007 72.5699997 -0.979551 -0.201196 -1.0 +6764 1 1.72 7.0799999 26.5499993 72.5699997 0.965879 -0.258994 -1.0 +6765 1 1.72 10.6199999 24.7800007 70.8000031 0.984449 -0.175671 -1.0 +6766 1 1.72 12.3900004 26.5499993 70.8000031 0.867935 -0.496679 -1.0 +6767 1 1.72 12.3900004 24.7800007 72.5699997 -0.535107 -0.844784 -1.0 +6768 1 1.72 10.6199999 26.5499993 72.5699997 0.800702 0.599063 -1.0 +6769 1 1.72 14.1599999 24.7800007 70.8000031 -0.898391 -0.439197 -1.0 +6770 1 1.72 15.9300004 26.5499993 70.8000031 -0.603445 -0.797404 -1.0 +6771 1 1.72 15.9300004 24.7800007 72.5699997 -0.556372 0.830933 -1.0 +6772 1 1.72 14.1599999 26.5499993 72.5699997 -0.831395 0.555681 -1.0 +6773 1 1.72 17.7000008 24.7800007 70.8000031 0.719698 0.694288 -1.0 +6774 1 1.72 19.4699993 26.5499993 70.8000031 -0.936839 -0.34976 -1.0 +6775 1 1.72 19.4699993 24.7800007 72.5699997 -0.340637 0.940195 -1.0 +6776 1 1.72 17.7000008 26.5499993 72.5699997 -0.58854 0.808468 -1.0 +6777 1 1.72 21.2399998 24.7800007 70.8000031 0.430324 0.902674 -1.0 +6778 1 1.72 23.0100002 26.5499993 70.8000031 -0.977698 0.210016 -1.0 +6779 1 1.72 23.0100002 24.7800007 72.5699997 -0.137458 -0.990508 -1.0 +6780 1 1.72 21.2399998 26.5499993 72.5699997 0.446041 0.895013 -1.0 +6781 1 1.72 24.7800007 24.7800007 70.8000031 -0.965895 0.258935 -1.0 +6782 1 1.72 26.5499993 26.5499993 70.8000031 -0.0805905 -0.996747 -1.0 +6783 1 1.72 26.5499993 24.7800007 72.5699997 -0.848441 -0.529289 -1.0 +6784 1 1.72 24.7800007 26.5499993 72.5699997 -0.971397 0.23746 -1.0 +6785 1 1.72 0.0 14.1599999 74.3399964 -0.567765 -0.823191 -1.0 +6786 1 1.72 1.77 15.9300004 74.3399964 0.257878 -0.966178 -1.0 +6787 1 1.72 1.77 14.1599999 76.1100006 -0.850722 -0.525616 -0.990079 +6788 1 1.72 0.0 15.9300004 76.1100006 0.371099 -0.928593 -0.990079 +6789 1 1.72 3.54 14.1599999 74.3399964 0.548981 -0.835835 -1.0 +6790 1 1.72 5.31 15.9300004 74.3399964 0.793136 0.609045 -1.0 +6791 1 1.72 5.31 14.1599999 76.1100006 -0.660052 -0.75122 -0.990079 +6792 1 1.72 3.54 15.9300004 76.1100006 -0.747507 -0.664254 -0.990079 +6793 1 1.72 7.0799999 14.1599999 74.3399964 0.649953 -0.759975 -1.0 +6794 1 1.72 8.8500004 15.9300004 74.3399964 -0.00836538 0.999965 -1.0 +6795 1 1.72 8.8500004 14.1599999 76.1100006 0.668659 -0.743569 -0.990079 +6796 1 1.72 7.0799999 15.9300004 76.1100006 -0.818428 0.574609 -0.990079 +6797 1 1.72 10.6199999 14.1599999 74.3399964 0.662787 0.748808 -1.0 +6798 1 1.72 12.3900004 15.9300004 74.3399964 0.954976 -0.296682 -1.0 +6799 1 1.72 12.3900004 14.1599999 76.1100006 -0.524912 -0.851157 -0.990079 +6800 1 1.72 10.6199999 15.9300004 76.1100006 0.746102 0.665832 -0.990079 +6801 1 1.72 14.1599999 14.1599999 74.3399964 0.998611 -0.0526852 -1.0 +6802 1 1.72 15.9300004 15.9300004 74.3399964 0.386207 -0.922412 -1.0 +6803 1 1.72 15.9300004 14.1599999 76.1100006 0.899522 0.436876 -0.990079 +6804 1 1.72 14.1599999 15.9300004 76.1100006 0.741752 -0.670674 -0.990079 +6805 1 1.72 17.7000008 14.1599999 74.3399964 -0.969453 0.245277 -1.0 +6806 1 1.72 19.4699993 15.9300004 74.3399964 0.542289 -0.840192 -1.0 +6807 1 1.72 19.4699993 14.1599999 76.1100006 -0.819042 -0.573734 -0.990079 +6808 1 1.72 17.7000008 15.9300004 76.1100006 0.875278 -0.483621 -0.990079 +6809 1 1.72 21.2399998 14.1599999 74.3399964 0.672245 -0.740329 -1.0 +6810 1 1.72 23.0100002 15.9300004 74.3399964 0.741619 -0.670821 -1.0 +6811 1 1.72 23.0100002 14.1599999 76.1100006 0.996374 0.0850818 -0.990079 +6812 1 1.72 21.2399998 15.9300004 76.1100006 0.792092 -0.610401 -0.990079 +6813 1 1.72 24.7800007 14.1599999 74.3399964 -0.485996 0.873961 -1.0 +6814 1 1.72 26.5499993 15.9300004 74.3399964 -0.652846 0.75749 -1.0 +6815 1 1.72 26.5499993 14.1599999 76.1100006 0.642313 -0.766442 -0.990079 +6816 1 1.72 24.7800007 15.9300004 76.1100006 0.972472 0.233019 -0.990079 +6817 1 1.72 0.0 17.7000008 74.3399964 0.469174 -0.883106 -1.0 +6818 1 1.72 1.77 19.4699993 74.3399964 0.884089 -0.467318 -1.0 +6819 1 1.72 1.77 17.7000008 76.1100006 -0.750286 -0.661114 -0.990079 +6820 1 1.72 0.0 19.4699993 76.1100006 0.171014 0.985269 -0.990079 +6821 1 1.72 3.54 17.7000008 74.3399964 0.997298 -0.073459 -1.0 +6822 1 1.72 5.31 19.4699993 74.3399964 0.235303 0.971922 -1.0 +6823 1 1.72 5.31 17.7000008 76.1100006 0.176893 0.98423 -0.990079 +6824 1 1.72 3.54 19.4699993 76.1100006 0.949277 0.314441 -0.990079 +6825 1 1.72 7.0799999 17.7000008 74.3399964 0.970422 0.241414 -1.0 +6826 1 1.72 8.8500004 19.4699993 74.3399964 0.604221 -0.796817 -1.0 +6827 1 1.72 8.8500004 17.7000008 76.1100006 -0.981042 0.193794 -0.990079 +6828 1 1.72 7.0799999 19.4699993 76.1100006 -0.0325079 0.999471 -0.990079 +6829 1 1.72 10.6199999 17.7000008 74.3399964 0.821573 -0.570103 -1.0 +6830 1 1.72 12.3900004 19.4699993 74.3399964 0.988124 0.153658 -1.0 +6831 1 1.72 12.3900004 17.7000008 76.1100006 -0.676222 -0.736698 -0.990079 +6832 1 1.72 10.6199999 19.4699993 76.1100006 0.932658 -0.360763 -0.990079 +6833 1 1.72 14.1599999 17.7000008 74.3399964 0.878617 -0.477527 -1.0 +6834 1 1.72 15.9300004 19.4699993 74.3399964 0.742212 -0.670166 -1.0 +6835 1 1.72 15.9300004 17.7000008 76.1100006 -0.836565 -0.547868 -0.990079 +6836 1 1.72 14.1599999 19.4699993 76.1100006 -0.578564 -0.815637 -0.990079 +6837 1 1.72 17.7000008 17.7000008 74.3399964 -0.444299 0.895879 -1.0 +6838 1 1.72 19.4699993 19.4699993 74.3399964 0.990291 -0.13901 -1.0 +6839 1 1.72 19.4699993 17.7000008 76.1100006 -0.394816 0.91876 -0.990079 +6840 1 1.72 17.7000008 19.4699993 76.1100006 -0.791081 0.611711 -0.990079 +6841 1 1.72 21.2399998 17.7000008 74.3399964 0.99924 -0.0389884 -1.0 +6842 1 1.72 23.0100002 19.4699993 74.3399964 0.939301 -0.343094 -1.0 +6843 1 1.72 23.0100002 17.7000008 76.1100006 -0.713126 -0.701036 -0.990079 +6844 1 1.72 21.2399998 19.4699993 76.1100006 -0.999997 -0.00242839 -0.990079 +6845 1 1.72 24.7800007 17.7000008 74.3399964 -0.330908 0.943663 -1.0 +6846 1 1.72 26.5499993 19.4699993 74.3399964 -0.177809 -0.984065 -1.0 +6847 1 1.72 26.5499993 17.7000008 76.1100006 -0.768941 0.63932 -0.990079 +6848 1 1.72 24.7800007 19.4699993 76.1100006 -0.203415 0.979093 -0.990079 +6849 1 1.72 0.0 21.2399998 74.3399964 0.855589 0.517655 -1.0 +6850 1 1.72 1.77 23.0100002 74.3399964 -0.99144 -0.130565 -1.0 +6851 1 1.72 1.77 21.2399998 76.1100006 -0.379104 -0.925354 -0.990079 +6852 1 1.72 0.0 23.0100002 76.1100006 0.973052 -0.230585 -0.990079 +6853 1 1.72 3.54 21.2399998 74.3399964 -0.674831 -0.737972 -1.0 +6854 1 1.72 5.31 23.0100002 74.3399964 0.458285 -0.888805 -1.0 +6855 1 1.72 5.31 21.2399998 76.1100006 -0.698843 -0.715275 -0.990079 +6856 1 1.72 3.54 23.0100002 76.1100006 -0.777965 -0.628308 -0.990079 +6857 1 1.72 7.0799999 21.2399998 74.3399964 0.440106 -0.897946 -1.0 +6858 1 1.72 8.8500004 23.0100002 74.3399964 0.986729 -0.162378 -1.0 +6859 1 1.72 8.8500004 21.2399998 76.1100006 0.802085 0.59721 -0.990079 +6860 1 1.72 7.0799999 23.0100002 76.1100006 -0.627671 -0.778479 -0.990079 +6861 1 1.72 10.6199999 21.2399998 74.3399964 0.992473 -0.122464 -1.0 +6862 1 1.72 12.3900004 23.0100002 74.3399964 -0.93871 -0.344707 -1.0 +6863 1 1.72 12.3900004 21.2399998 76.1100006 0.130804 -0.991408 -0.990079 +6864 1 1.72 10.6199999 23.0100002 76.1100006 0.957384 -0.28882 -0.990079 +6865 1 1.72 14.1599999 21.2399998 74.3399964 -0.698344 -0.715762 -1.0 +6866 1 1.72 15.9300004 23.0100002 74.3399964 0.818977 -0.573827 -1.0 +6867 1 1.72 15.9300004 21.2399998 76.1100006 0.840262 -0.54218 -0.990079 +6868 1 1.72 14.1599999 23.0100002 76.1100006 0.498073 0.867135 -0.990079 +6869 1 1.72 17.7000008 21.2399998 74.3399964 0.516657 0.856193 -1.0 +6870 1 1.72 19.4699993 23.0100002 74.3399964 0.448977 -0.893543 -1.0 +6871 1 1.72 19.4699993 21.2399998 76.1100006 -0.672411 -0.740178 -0.990079 +6872 1 1.72 17.7000008 23.0100002 76.1100006 0.999971 0.00766673 -0.990079 +6873 1 1.72 21.2399998 21.2399998 74.3399964 0.888294 -0.459276 -1.0 +6874 1 1.72 23.0100002 23.0100002 74.3399964 0.765527 -0.643404 -1.0 +6875 1 1.72 23.0100002 21.2399998 76.1100006 0.177036 0.984204 -0.990079 +6876 1 1.72 21.2399998 23.0100002 76.1100006 0.345329 -0.938482 -0.990079 +6877 1 1.72 24.7800007 21.2399998 74.3399964 -0.958628 -0.284661 -1.0 +6878 1 1.72 26.5499993 23.0100002 74.3399964 -0.787231 0.616659 -1.0 +6879 1 1.72 26.5499993 21.2399998 76.1100006 -0.931104 0.364754 -0.990079 +6880 1 1.72 24.7800007 23.0100002 76.1100006 0.569458 0.82202 -0.990079 +6881 1 1.72 0.0 24.7800007 74.3399964 0.331571 0.94343 -1.0 +6882 1 1.72 1.77 26.5499993 74.3399964 -0.675936 0.73696 -1.0 +6883 1 1.72 1.77 24.7800007 76.1100006 0.380233 -0.924891 -0.990079 +6884 1 1.72 0.0 26.5499993 76.1100006 0.3638 -0.931477 -0.990079 +6885 1 1.72 3.54 24.7800007 74.3399964 -0.905911 -0.423467 -1.0 +6886 1 1.72 5.31 26.5499993 74.3399964 -0.678895 0.734235 -1.0 +6887 1 1.72 5.31 24.7800007 76.1100006 0.887204 -0.461377 -0.990079 +6888 1 1.72 3.54 26.5499993 76.1100006 -0.687113 -0.726551 -0.990079 +6889 1 1.72 7.0799999 24.7800007 74.3399964 0.935651 -0.352927 -1.0 +6890 1 1.72 8.8500004 26.5499993 74.3399964 0.979988 0.199058 -1.0 +6891 1 1.72 8.8500004 24.7800007 76.1100006 0.0830268 0.996547 -0.990079 +6892 1 1.72 7.0799999 26.5499993 76.1100006 -0.994514 -0.104602 -0.990079 +6893 1 1.72 10.6199999 24.7800007 74.3399964 -0.973078 0.230476 -1.0 +6894 1 1.72 12.3900004 26.5499993 74.3399964 0.019238 -0.999815 -1.0 +6895 1 1.72 12.3900004 24.7800007 76.1100006 -0.92641 0.376516 -0.990079 +6896 1 1.72 10.6199999 26.5499993 76.1100006 -0.232199 0.972668 -0.990079 +6897 1 1.72 14.1599999 24.7800007 74.3399964 0.695625 -0.718405 -1.0 +6898 1 1.72 15.9300004 26.5499993 74.3399964 -0.975639 -0.219384 -1.0 +6899 1 1.72 15.9300004 24.7800007 76.1100006 0.102125 -0.994772 -0.990079 +6900 1 1.72 14.1599999 26.5499993 76.1100006 0.684259 -0.729239 -0.990079 +6901 1 1.72 17.7000008 24.7800007 74.3399964 0.146276 0.989244 -1.0 +6902 1 1.72 19.4699993 26.5499993 74.3399964 0.549686 -0.835372 -1.0 +6903 1 1.72 19.4699993 24.7800007 76.1100006 0.0466004 -0.998914 -0.990079 +6904 1 1.72 17.7000008 26.5499993 76.1100006 0.165019 0.98629 -0.990079 +6905 1 1.72 21.2399998 24.7800007 74.3399964 0.681308 -0.731997 -1.0 +6906 1 1.72 23.0100002 26.5499993 74.3399964 0.749317 -0.662211 -1.0 +6907 1 1.72 23.0100002 24.7800007 76.1100006 0.275438 -0.961319 -0.990079 +6908 1 1.72 21.2399998 26.5499993 76.1100006 0.772149 -0.635441 -0.990079 +6909 1 1.72 24.7800007 24.7800007 74.3399964 -0.806507 -0.591224 -1.0 +6910 1 1.72 26.5499993 26.5499993 74.3399964 0.997995 0.0632932 -1.0 +6911 1 1.72 26.5499993 24.7800007 76.1100006 -0.890072 0.455819 -0.990079 +6912 1 1.72 24.7800007 26.5499993 76.1100006 -0.933125 -0.359551 -0.990079 +6913 1 1.72 0.0 14.1599999 77.8799974 -0.780577 -0.625059 -0.90501 +6914 1 1.72 1.77 15.9300004 77.8799974 0.893541 -0.448982 -0.90501 +6915 1 1.72 1.77 14.1599999 79.6500016 -0.98474 0.174029 -0.7399438 +6916 1 1.72 0.0 15.9300004 79.6500016 0.473496 0.880796 -0.7399438 +6917 1 1.72 3.54 14.1599999 77.8799974 -0.0815826 -0.996667 -0.90501 +6918 1 1.72 5.31 15.9300004 77.8799974 0.996248 -0.0865471 -0.90501 +6919 1 1.72 5.31 14.1599999 79.6500016 0.394824 -0.918757 -0.7399438 +6920 1 1.72 3.54 15.9300004 79.6500016 0.913843 -0.406068 -0.7399438 +6921 1 1.72 7.0799999 14.1599999 77.8799974 0.122405 -0.99248 -0.90501 +6922 1 1.72 8.8500004 15.9300004 77.8799974 -0.584725 -0.811231 -0.90501 +6923 1 1.72 8.8500004 14.1599999 79.6500016 -0.999361 0.0357329 -0.7399438 +6924 1 1.72 7.0799999 15.9300004 79.6500016 -0.090933 0.995857 -0.7399438 +6925 1 1.72 10.6199999 14.1599999 77.8799974 0.0532691 0.99858 -0.90501 +6926 1 1.72 12.3900004 15.9300004 77.8799974 0.306578 -0.951845 -0.90501 +6927 1 1.72 12.3900004 14.1599999 79.6500016 0.785338 -0.619067 -0.7399438 +6928 1 1.72 10.6199999 15.9300004 79.6500016 -0.156736 -0.987641 -0.7399438 +6929 1 1.72 14.1599999 14.1599999 77.8799974 -0.602134 -0.798395 -0.90501 +6930 1 1.72 15.9300004 15.9300004 77.8799974 -0.809404 -0.587252 -0.90501 +6931 1 1.72 15.9300004 14.1599999 79.6500016 0.977013 0.21318 -0.7399438 +6932 1 1.72 14.1599999 15.9300004 79.6500016 -0.733097 0.680124 -0.7399438 +6933 1 1.72 17.7000008 14.1599999 77.8799974 -0.679952 0.733257 -0.90501 +6934 1 1.72 19.4699993 15.9300004 77.8799974 -0.947316 -0.320301 -0.90501 +6935 1 1.72 19.4699993 14.1599999 79.6500016 -0.854634 0.519231 -0.7399438 +6936 1 1.72 17.7000008 15.9300004 79.6500016 -0.0618815 0.998084 -0.7399438 +6937 1 1.72 21.2399998 14.1599999 77.8799974 0.918767 0.3948 -0.90501 +6938 1 1.72 23.0100002 15.9300004 77.8799974 0.640437 -0.768011 -0.90501 +6939 1 1.72 23.0100002 14.1599999 79.6500016 0.904393 -0.4267 -0.7399438 +6940 1 1.72 21.2399998 15.9300004 79.6500016 -0.338833 -0.940847 -0.7399438 +6941 1 1.72 24.7800007 14.1599999 77.8799974 0.964505 0.264063 -0.90501 +6942 1 1.72 26.5499993 15.9300004 77.8799974 -0.477707 -0.878519 -0.90501 +6943 1 1.72 26.5499993 14.1599999 79.6500016 -0.702518 0.711666 -0.7399438 +6944 1 1.72 24.7800007 15.9300004 79.6500016 -0.761034 -0.648712 -0.7399438 +6945 1 1.72 0.0 17.7000008 77.8799974 0.203153 0.979147 -0.90501 +6946 1 1.72 1.77 19.4699993 77.8799974 -0.829569 0.558404 -0.90501 +6947 1 1.72 1.77 17.7000008 79.6500016 0.885818 -0.464032 -0.7399438 +6948 1 1.72 0.0 19.4699993 79.6500016 -0.985232 0.171223 -0.7399438 +6949 1 1.72 3.54 17.7000008 77.8799974 -0.841608 0.540089 -0.90501 +6950 1 1.72 5.31 19.4699993 77.8799974 -0.841199 0.540726 -0.90501 +6951 1 1.72 5.31 17.7000008 79.6500016 -0.334542 -0.942381 -0.7399438 +6952 1 1.72 3.54 19.4699993 79.6500016 -0.848193 0.529687 -0.7399438 +6953 1 1.72 7.0799999 17.7000008 77.8799974 0.721483 0.692432 -0.90501 +6954 1 1.72 8.8500004 19.4699993 77.8799974 0.945822 0.324687 -0.90501 +6955 1 1.72 8.8500004 17.7000008 79.6500016 0.86688 -0.498516 -0.7399438 +6956 1 1.72 7.0799999 19.4699993 79.6500016 -0.785585 -0.618754 -0.7399438 +6957 1 1.72 10.6199999 17.7000008 77.8799974 -0.662362 0.749184 -0.90501 +6958 1 1.72 12.3900004 19.4699993 77.8799974 0.346896 0.937904 -0.90501 +6959 1 1.72 12.3900004 17.7000008 79.6500016 0.91237 -0.409365 -0.7399438 +6960 1 1.72 10.6199999 19.4699993 79.6500016 -0.771458 -0.63628 -0.7399438 +6961 1 1.72 14.1599999 17.7000008 77.8799974 0.673401 0.739277 -0.90501 +6962 1 1.72 15.9300004 19.4699993 77.8799974 0.651844 0.758353 -0.90501 +6963 1 1.72 15.9300004 17.7000008 79.6500016 -0.572496 -0.819908 -0.7399438 +6964 1 1.72 14.1599999 19.4699993 79.6500016 0.0755922 0.997139 -0.7399438 +6965 1 1.72 17.7000008 17.7000008 77.8799974 0.971473 -0.237149 -0.90501 +6966 1 1.72 19.4699993 19.4699993 77.8799974 0.745671 -0.666314 -0.90501 +6967 1 1.72 19.4699993 17.7000008 79.6500016 0.626417 -0.779488 -0.7399438 +6968 1 1.72 17.7000008 19.4699993 79.6500016 0.633903 0.773413 -0.7399438 +6969 1 1.72 21.2399998 17.7000008 77.8799974 -0.826718 -0.562616 -0.90501 +6970 1 1.72 23.0100002 19.4699993 77.8799974 0.606466 -0.79511 -0.90501 +6971 1 1.72 23.0100002 17.7000008 79.6500016 0.447562 0.894253 -0.7399438 +6972 1 1.72 21.2399998 19.4699993 79.6500016 -0.646893 -0.762581 -0.7399438 +6973 1 1.72 24.7800007 17.7000008 77.8799974 -0.885594 -0.464459 -0.90501 +6974 1 1.72 26.5499993 19.4699993 77.8799974 -0.353703 -0.935358 -0.90501 +6975 1 1.72 26.5499993 17.7000008 79.6500016 0.999745 0.0225836 -0.7399438 +6976 1 1.72 24.7800007 19.4699993 79.6500016 0.309711 -0.950831 -0.7399438 +6977 1 1.72 0.0 21.2399998 77.8799974 -0.523377 0.852101 -0.90501 +6978 1 1.72 1.77 23.0100002 77.8799974 0.673568 0.739125 -0.90501 +6979 1 1.72 1.77 21.2399998 79.6500016 0.695071 -0.718941 -0.7399438 +6980 1 1.72 0.0 23.0100002 79.6500016 -0.191277 0.981536 -0.7399438 +6981 1 1.72 3.54 21.2399998 77.8799974 0.926635 -0.375962 -0.90501 +6982 1 1.72 5.31 23.0100002 77.8799974 0.433126 -0.901333 -0.90501 +6983 1 1.72 5.31 21.2399998 79.6500016 -0.787647 0.616127 -0.7399438 +6984 1 1.72 3.54 23.0100002 79.6500016 -0.738776 0.673951 -0.7399438 +6985 1 1.72 7.0799999 21.2399998 77.8799974 -0.795304 0.60621 -0.90501 +6986 1 1.72 8.8500004 23.0100002 77.8799974 -0.269326 0.963049 -0.90501 +6987 1 1.72 8.8500004 21.2399998 79.6500016 -0.841835 -0.539735 -0.7399438 +6988 1 1.72 7.0799999 23.0100002 79.6500016 0.91975 -0.392505 -0.7399438 +6989 1 1.72 10.6199999 21.2399998 77.8799974 -0.94168 0.336509 -0.90501 +6990 1 1.72 12.3900004 23.0100002 77.8799974 0.746561 -0.665317 -0.90501 +6991 1 1.72 12.3900004 21.2399998 79.6500016 0.824408 0.565996 -0.7399438 +6992 1 1.72 10.6199999 23.0100002 79.6500016 0.833036 0.553218 -0.7399438 +6993 1 1.72 14.1599999 21.2399998 77.8799974 -0.360402 0.932797 -0.90501 +6994 1 1.72 15.9300004 23.0100002 77.8799974 -0.0617366 0.998092 -0.90501 +6995 1 1.72 15.9300004 21.2399998 79.6500016 -0.809157 -0.587593 -0.7399438 +6996 1 1.72 14.1599999 23.0100002 79.6500016 0.619444 -0.785041 -0.7399438 +6997 1 1.72 17.7000008 21.2399998 77.8799974 -0.540978 -0.841037 -0.90501 +6998 1 1.72 19.4699993 23.0100002 77.8799974 -0.894518 0.447033 -0.90501 +6999 1 1.72 19.4699993 21.2399998 79.6500016 0.0811275 0.996704 -0.7399438 +7000 1 1.72 17.7000008 23.0100002 79.6500016 -0.820644 -0.57144 -0.7399438 +7001 1 1.72 21.2399998 21.2399998 77.8799974 0.624137 -0.781315 -0.90501 +7002 1 1.72 23.0100002 23.0100002 77.8799974 0.537563 -0.843224 -0.90501 +7003 1 1.72 23.0100002 21.2399998 79.6500016 -0.994474 -0.104981 -0.7399438 +7004 1 1.72 21.2399998 23.0100002 79.6500016 -0.549368 0.83558 -0.7399438 +7005 1 1.72 24.7800007 21.2399998 77.8799974 -0.997654 -0.0684574 -0.90501 +7006 1 1.72 26.5499993 23.0100002 77.8799974 0.243537 0.969892 -0.90501 +7007 1 1.72 26.5499993 21.2399998 79.6500016 0.664477 -0.747309 -0.7399438 +7008 1 1.72 24.7800007 23.0100002 79.6500016 0.856676 -0.515854 -0.7399438 +7009 1 1.72 0.0 24.7800007 77.8799974 -0.739251 0.67343 -0.90501 +7010 1 1.72 1.77 26.5499993 77.8799974 0.563631 -0.826027 -0.90501 +7011 1 1.72 1.77 24.7800007 79.6500016 -0.813186 -0.582004 -0.7399438 +7012 1 1.72 0.0 26.5499993 79.6500016 -0.826546 -0.562869 -0.7399438 +7013 1 1.72 3.54 24.7800007 77.8799974 0.674552 -0.738227 -0.90501 +7014 1 1.72 5.31 26.5499993 77.8799974 0.063026 -0.998012 -0.90501 +7015 1 1.72 5.31 24.7800007 79.6500016 -0.29652 -0.955027 -0.7399438 +7016 1 1.72 3.54 26.5499993 79.6500016 -0.605414 -0.795911 -0.7399438 +7017 1 1.72 7.0799999 24.7800007 77.8799974 0.29254 -0.956253 -0.90501 +7018 1 1.72 8.8500004 26.5499993 77.8799974 0.0698194 -0.99756 -0.90501 +7019 1 1.72 8.8500004 24.7800007 79.6500016 0.62672 0.779244 -0.7399438 +7020 1 1.72 7.0799999 26.5499993 79.6500016 -0.742365 -0.669995 -0.7399438 +7021 1 1.72 10.6199999 24.7800007 77.8799974 -0.837019 -0.547174 -0.90501 +7022 1 1.72 12.3900004 26.5499993 77.8799974 -0.703101 0.71109 -0.90501 +7023 1 1.72 12.3900004 24.7800007 79.6500016 -0.944894 0.327376 -0.7399438 +7024 1 1.72 10.6199999 26.5499993 79.6500016 0.863867 0.50372 -0.7399438 +7025 1 1.72 14.1599999 24.7800007 77.8799974 0.986685 0.162642 -0.90501 +7026 1 1.72 15.9300004 26.5499993 77.8799974 -0.418962 -0.908004 -0.90501 +7027 1 1.72 15.9300004 24.7800007 79.6500016 0.895 0.446066 -0.7399438 +7028 1 1.72 14.1599999 26.5499993 79.6500016 0.802757 0.596306 -0.7399438 +7029 1 1.72 17.7000008 24.7800007 77.8799974 -0.999873 -0.0159247 -0.90501 +7030 1 1.72 19.4699993 26.5499993 77.8799974 -0.314501 0.949257 -0.90501 +7031 1 1.72 19.4699993 24.7800007 79.6500016 -0.329709 0.944082 -0.7399438 +7032 1 1.72 17.7000008 26.5499993 79.6500016 0.962407 0.27161 -0.7399438 +7033 1 1.72 21.2399998 24.7800007 77.8799974 0.748958 -0.662618 -0.90501 +7034 1 1.72 23.0100002 26.5499993 77.8799974 0.0723828 0.997377 -0.90501 +7035 1 1.72 23.0100002 24.7800007 79.6500016 0.327213 -0.944951 -0.7399438 +7036 1 1.72 21.2399998 26.5499993 79.6500016 -0.336781 -0.941583 -0.7399438 +7037 1 1.72 24.7800007 24.7800007 77.8799974 0.926617 -0.376006 -0.90501 +7038 1 1.72 26.5499993 26.5499993 77.8799974 0.950136 0.311836 -0.90501 +7039 1 1.72 26.5499993 24.7800007 79.6500016 -0.829968 0.557811 -0.7399438 +7040 1 1.72 24.7800007 26.5499993 79.6500016 0.45494 0.890522 -0.7399438 +7041 1 1.72 0.0 14.1599999 81.4199982 0.999634 0.0270574 -0.5094728 +7042 1 1.72 1.77 15.9300004 81.4199982 -0.957232 0.289322 -0.5094728 +7043 1 1.72 1.77 14.1599999 83.1900024 0.873881 -0.486139 -0.2339667 +7044 1 1.72 0.0 15.9300004 83.1900024 0.990666 -0.136312 -0.2339667 +7045 1 1.72 3.54 14.1599999 81.4199982 0.997456 -0.0712869 -0.5094728 +7046 1 1.72 5.31 15.9300004 81.4199982 0.933222 -0.359301 -0.5094728 +7047 1 1.72 5.31 14.1599999 83.1900024 0.0180853 -0.999836 -0.2339667 +7048 1 1.72 3.54 15.9300004 83.1900024 -0.84563 -0.533769 -0.2339667 +7049 1 1.72 7.0799999 14.1599999 81.4199982 0.764295 0.644867 -0.5094728 +7050 1 1.72 8.8500004 15.9300004 81.4199982 -0.212755 0.977106 -0.5094728 +7051 1 1.72 8.8500004 14.1599999 83.1900024 0.698096 -0.716004 -0.2339667 +7052 1 1.72 7.0799999 15.9300004 83.1900024 0.718019 0.696024 -0.2339667 +7053 1 1.72 10.6199999 14.1599999 81.4199982 0.493211 0.86991 -0.5094728 +7054 1 1.72 12.3900004 15.9300004 81.4199982 -0.517483 0.855694 -0.5094728 +7055 1 1.72 12.3900004 14.1599999 83.1900024 -0.173388 -0.984854 -0.2339667 +7056 1 1.72 10.6199999 15.9300004 83.1900024 -0.858606 -0.512636 -0.2339667 +7057 1 1.72 14.1599999 14.1599999 81.4199982 -0.727816 -0.685773 -0.5094728 +7058 1 1.72 15.9300004 15.9300004 81.4199982 -0.989598 0.143862 -0.5094728 +7059 1 1.72 15.9300004 14.1599999 83.1900024 0.0306837 -0.999529 -0.2339667 +7060 1 1.72 14.1599999 15.9300004 83.1900024 0.329766 0.944063 -0.2339667 +7061 1 1.72 17.7000008 14.1599999 81.4199982 0.589489 0.807776 -0.5094728 +7062 1 1.72 19.4699993 15.9300004 81.4199982 0.532448 -0.846462 -0.5094728 +7063 1 1.72 19.4699993 14.1599999 83.1900024 0.407167 -0.913354 -0.2339667 +7064 1 1.72 17.7000008 15.9300004 83.1900024 -0.968965 0.247199 -0.2339667 +7065 1 1.72 21.2399998 14.1599999 81.4199982 -0.706805 -0.707408 -0.5094728 +7066 1 1.72 23.0100002 15.9300004 81.4199982 -0.881991 0.471267 -0.5094728 +7067 1 1.72 23.0100002 14.1599999 83.1900024 0.993572 0.113198 -0.2339667 +7068 1 1.72 21.2399998 15.9300004 83.1900024 0.0578672 -0.998324 -0.2339667 +7069 1 1.72 24.7800007 14.1599999 81.4199982 0.477638 -0.878557 -0.5094728 +7070 1 1.72 26.5499993 15.9300004 81.4199982 0.921229 0.38902 -0.5094728 +7071 1 1.72 26.5499993 14.1599999 83.1900024 -0.874612 0.484824 -0.2339667 +7072 1 1.72 24.7800007 15.9300004 83.1900024 -0.910406 -0.413715 -0.2339667 +7073 1 1.72 0.0 17.7000008 81.4199982 -0.14237 0.989813 -0.5094728 +7074 1 1.72 1.77 19.4699993 81.4199982 -0.52984 -0.848098 -0.5094728 +7075 1 1.72 1.77 17.7000008 83.1900024 -0.584402 0.811464 -0.2339667 +7076 1 1.72 0.0 19.4699993 83.1900024 -0.756935 0.65349 -0.2339667 +7077 1 1.72 3.54 17.7000008 81.4199982 0.957755 -0.287585 -0.5094728 +7078 1 1.72 5.31 19.4699993 81.4199982 -0.0824402 -0.996596 -0.5094728 +7079 1 1.72 5.31 17.7000008 83.1900024 0.472481 -0.881341 -0.2339667 +7080 1 1.72 3.54 19.4699993 83.1900024 0.969563 0.244842 -0.2339667 +7081 1 1.72 7.0799999 17.7000008 81.4199982 -0.131922 -0.99126 -0.5094728 +7082 1 1.72 8.8500004 19.4699993 81.4199982 0.274979 0.96145 -0.5094728 +7083 1 1.72 8.8500004 17.7000008 83.1900024 0.0674292 0.997724 -0.2339667 +7084 1 1.72 7.0799999 19.4699993 83.1900024 0.0835993 0.996499 -0.2339667 +7085 1 1.72 10.6199999 17.7000008 81.4199982 0.457758 -0.889077 -0.5094728 +7086 1 1.72 12.3900004 19.4699993 81.4199982 -0.999996 0.00299647 -0.5094728 +7087 1 1.72 12.3900004 17.7000008 83.1900024 -0.667837 0.744307 -0.2339667 +7088 1 1.72 10.6199999 19.4699993 83.1900024 0.887556 0.460699 -0.2339667 +7089 1 1.72 14.1599999 17.7000008 81.4199982 0.454278 -0.89086 -0.5094728 +7090 1 1.72 15.9300004 19.4699993 81.4199982 0.228603 -0.97352 -0.5094728 +7091 1 1.72 15.9300004 17.7000008 83.1900024 -0.99614 0.0877811 -0.2339667 +7092 1 1.72 14.1599999 19.4699993 83.1900024 -0.090983 0.995852 -0.2339667 +7093 1 1.72 17.7000008 17.7000008 81.4199982 -0.999791 0.0204222 -0.5094728 +7094 1 1.72 19.4699993 19.4699993 81.4199982 -0.294693 -0.955592 -0.5094728 +7095 1 1.72 19.4699993 17.7000008 83.1900024 -0.629027 -0.777383 -0.2339667 +7096 1 1.72 17.7000008 19.4699993 83.1900024 0.316158 -0.948707 -0.2339667 +7097 1 1.72 21.2399998 17.7000008 81.4199982 -0.998324 0.0578649 -0.5094728 +7098 1 1.72 23.0100002 19.4699993 81.4199982 -0.0887738 -0.996052 -0.5094728 +7099 1 1.72 23.0100002 17.7000008 83.1900024 0.464489 0.885579 -0.2339667 +7100 1 1.72 21.2399998 19.4699993 83.1900024 -0.874197 -0.485571 -0.2339667 +7101 1 1.72 24.7800007 17.7000008 81.4199982 -0.734032 0.679115 -0.5094728 +7102 1 1.72 26.5499993 19.4699993 81.4199982 -0.999881 0.015397 -0.5094728 +7103 1 1.72 26.5499993 17.7000008 83.1900024 -0.123666 0.992324 -0.2339667 +7104 1 1.72 24.7800007 19.4699993 83.1900024 0.91355 -0.406726 -0.2339667 +7105 1 1.72 0.0 21.2399998 81.4199982 0.74571 -0.666271 -0.5094728 +7106 1 1.72 1.77 23.0100002 81.4199982 -0.892722 0.450608 -0.5094728 +7107 1 1.72 1.77 21.2399998 83.1900024 0.660678 0.750669 -0.2339667 +7108 1 1.72 0.0 23.0100002 83.1900024 0.935743 0.352682 -0.2339667 +7109 1 1.72 3.54 21.2399998 81.4199982 0.143165 -0.989699 -0.5094728 +7110 1 1.72 5.31 23.0100002 81.4199982 0.522418 0.852689 -0.5094728 +7111 1 1.72 5.31 21.2399998 83.1900024 0.614548 0.788879 -0.2339667 +7112 1 1.72 3.54 23.0100002 83.1900024 -0.0485635 -0.99882 -0.2339667 +7113 1 1.72 7.0799999 21.2399998 81.4199982 -0.999697 0.0245976 -0.5094728 +7114 1 1.72 8.8500004 23.0100002 81.4199982 0.926548 0.376176 -0.5094728 +7115 1 1.72 8.8500004 21.2399998 83.1900024 0.680014 0.733199 -0.2339667 +7116 1 1.72 7.0799999 23.0100002 83.1900024 0.999483 -0.032137 -0.2339667 +7117 1 1.72 10.6199999 21.2399998 81.4199982 0.714085 -0.700059 -0.5094728 +7118 1 1.72 12.3900004 23.0100002 81.4199982 -0.716187 0.697908 -0.5094728 +7119 1 1.72 12.3900004 21.2399998 83.1900024 0.505048 -0.863091 -0.2339667 +7120 1 1.72 10.6199999 23.0100002 83.1900024 0.743576 0.668652 -0.2339667 +7121 1 1.72 14.1599999 21.2399998 81.4199982 -0.999991 0.00428482 -0.5094728 +7122 1 1.72 15.9300004 23.0100002 81.4199982 -0.997548 0.0699824 -0.5094728 +7123 1 1.72 15.9300004 21.2399998 83.1900024 0.323665 -0.946172 -0.2339667 +7124 1 1.72 14.1599999 23.0100002 83.1900024 -0.296312 -0.955091 -0.2339667 +7125 1 1.72 17.7000008 21.2399998 81.4199982 0.728366 0.685188 -0.5094728 +7126 1 1.72 19.4699993 23.0100002 81.4199982 -0.80173 -0.597686 -0.5094728 +7127 1 1.72 19.4699993 21.2399998 83.1900024 0.930908 0.365253 -0.2339667 +7128 1 1.72 17.7000008 23.0100002 83.1900024 -0.521183 -0.853445 -0.2339667 +7129 1 1.72 21.2399998 21.2399998 81.4199982 -0.373281 0.927718 -0.5094728 +7130 1 1.72 23.0100002 23.0100002 81.4199982 0.784854 -0.61968 -0.5094728 +7131 1 1.72 23.0100002 21.2399998 83.1900024 0.707922 -0.70629 -0.2339667 +7132 1 1.72 21.2399998 23.0100002 83.1900024 -0.18421 -0.982887 -0.2339667 +7133 1 1.72 24.7800007 21.2399998 81.4199982 -0.159016 0.987276 -0.5094728 +7134 1 1.72 26.5499993 23.0100002 81.4199982 -0.651023 -0.759058 -0.5094728 +7135 1 1.72 26.5499993 21.2399998 83.1900024 0.847935 -0.5301 -0.2339667 +7136 1 1.72 24.7800007 23.0100002 83.1900024 -0.261981 0.965073 -0.2339667 +7137 1 1.72 0.0 24.7800007 81.4199982 -0.472632 -0.88126 -0.5094728 +7138 1 1.72 1.77 26.5499993 81.4199982 -0.278598 -0.960408 -0.5094728 +7139 1 1.72 1.77 24.7800007 83.1900024 -0.844972 0.53481 -0.2339667 +7140 1 1.72 0.0 26.5499993 83.1900024 -0.901843 0.432064 -0.2339667 +7141 1 1.72 3.54 24.7800007 81.4199982 0.924459 -0.381281 -0.5094728 +7142 1 1.72 5.31 26.5499993 81.4199982 -0.963023 0.269418 -0.5094728 +7143 1 1.72 5.31 24.7800007 83.1900024 0.813307 -0.581835 -0.2339667 +7144 1 1.72 3.54 26.5499993 83.1900024 -0.114065 0.993473 -0.2339667 +7145 1 1.72 7.0799999 24.7800007 81.4199982 -0.675722 0.737157 -0.5094728 +7146 1 1.72 8.8500004 26.5499993 81.4199982 0.431609 0.902061 -0.5094728 +7147 1 1.72 8.8500004 24.7800007 83.1900024 0.214693 -0.976682 -0.2339667 +7148 1 1.72 7.0799999 26.5499993 83.1900024 0.448992 -0.893536 -0.2339667 +7149 1 1.72 10.6199999 24.7800007 81.4199982 -0.538867 -0.842391 -0.5094728 +7150 1 1.72 12.3900004 26.5499993 81.4199982 0.98976 -0.142744 -0.5094728 +7151 1 1.72 12.3900004 24.7800007 83.1900024 0.644963 0.764214 -0.2339667 +7152 1 1.72 10.6199999 26.5499993 83.1900024 0.212099 -0.977248 -0.2339667 +7153 1 1.72 14.1599999 24.7800007 81.4199982 -0.157915 -0.987453 -0.5094728 +7154 1 1.72 15.9300004 26.5499993 81.4199982 -0.374307 0.927305 -0.5094728 +7155 1 1.72 15.9300004 24.7800007 83.1900024 -0.459929 0.887956 -0.2339667 +7156 1 1.72 14.1599999 26.5499993 83.1900024 -0.844814 0.53506 -0.2339667 +7157 1 1.72 17.7000008 24.7800007 81.4199982 -0.999444 0.0333365 -0.5094728 +7158 1 1.72 19.4699993 26.5499993 81.4199982 -0.999628 -0.0272822 -0.5094728 +7159 1 1.72 19.4699993 24.7800007 83.1900024 -0.999682 0.0252339 -0.2339667 +7160 1 1.72 17.7000008 26.5499993 83.1900024 0.633134 -0.774042 -0.2339667 +7161 1 1.72 21.2399998 24.7800007 81.4199982 0.197382 -0.980327 -0.5094728 +7162 1 1.72 23.0100002 26.5499993 81.4199982 -0.95722 0.28936 -0.5094728 +7163 1 1.72 23.0100002 24.7800007 83.1900024 -0.247443 -0.968902 -0.2339667 +7164 1 1.72 21.2399998 26.5499993 83.1900024 0.208658 -0.977989 -0.2339667 +7165 1 1.72 24.7800007 24.7800007 81.4199982 -0.180183 -0.983633 -0.5094728 +7166 1 1.72 26.5499993 26.5499993 81.4199982 -0.969499 0.245096 -0.5094728 +7167 1 1.72 26.5499993 24.7800007 83.1900024 -0.512175 -0.858881 -0.2339667 +7168 1 1.72 24.7800007 26.5499993 83.1900024 -0.510903 0.859638 -0.2339667 +7169 1 1.72 0.0 14.1599999 84.9599992 0.997482 -0.0709225 0.0622191 +7170 1 1.72 1.77 15.9300004 84.9599992 0.885982 0.46372 0.0622191 +7171 1 1.72 1.77 14.1599999 86.7300034 -0.277482 0.960731 0.3529064 +7172 1 1.72 0.0 15.9300004 86.7300034 -0.728851 0.684673 0.3529064 +7173 1 1.72 3.54 14.1599999 84.9599992 0.98343 0.181287 0.0622191 +7174 1 1.72 5.31 15.9300004 84.9599992 0.891522 -0.452978 0.0622191 +7175 1 1.72 5.31 14.1599999 86.7300034 -0.608097 -0.793863 0.3529064 +7176 1 1.72 3.54 15.9300004 86.7300034 0.170945 0.985281 0.3529064 +7177 1 1.72 7.0799999 14.1599999 84.9599992 0.996296 0.0859857 0.0622191 +7178 1 1.72 8.8500004 15.9300004 84.9599992 -0.991856 -0.127364 0.0622191 +7179 1 1.72 8.8500004 14.1599999 86.7300034 0.62125 0.783613 0.3529064 +7180 1 1.72 7.0799999 15.9300004 86.7300034 0.233158 0.972439 0.3529064 +7181 1 1.72 10.6199999 14.1599999 84.9599992 0.760174 0.64972 0.0622191 +7182 1 1.72 12.3900004 15.9300004 84.9599992 -0.994505 -0.104689 0.0622191 +7183 1 1.72 12.3900004 14.1599999 86.7300034 0.156642 0.987655 0.3529064 +7184 1 1.72 10.6199999 15.9300004 86.7300034 -0.46551 0.885043 0.3529064 +7185 1 1.72 14.1599999 14.1599999 84.9599992 -0.725009 -0.688739 0.0622191 +7186 1 1.72 15.9300004 15.9300004 84.9599992 -0.368241 0.929731 0.0622191 +7187 1 1.72 15.9300004 14.1599999 86.7300034 -0.225927 0.974144 0.3529064 +7188 1 1.72 14.1599999 15.9300004 86.7300034 0.526065 0.850444 0.3529064 +7189 1 1.72 17.7000008 14.1599999 84.9599992 0.603996 0.796988 0.0622191 +7190 1 1.72 19.4699993 15.9300004 84.9599992 0.396232 0.91815 0.0622191 +7191 1 1.72 19.4699993 14.1599999 86.7300034 -0.967313 0.253585 0.3529064 +7192 1 1.72 17.7000008 15.9300004 86.7300034 -0.839125 -0.543938 0.3529064 +7193 1 1.72 21.2399998 14.1599999 84.9599992 0.695207 -0.718809 0.0622191 +7194 1 1.72 23.0100002 15.9300004 84.9599992 -0.00841705 0.999965 0.0622191 +7195 1 1.72 23.0100002 14.1599999 86.7300034 -0.6788 0.734323 0.3529064 +7196 1 1.72 21.2399998 15.9300004 86.7300034 -0.966386 -0.257096 0.3529064 +7197 1 1.72 24.7800007 14.1599999 84.9599992 0.583612 0.812033 0.0622191 +7198 1 1.72 26.5499993 15.9300004 84.9599992 0.814357 0.580364 0.0622191 +7199 1 1.72 26.5499993 14.1599999 86.7300034 0.138949 -0.990299 0.3529064 +7200 1 1.72 24.7800007 15.9300004 86.7300034 0.362207 0.932098 0.3529064 +7201 1 1.72 0.0 17.7000008 84.9599992 -0.132318 0.991207 0.0622191 +7202 1 1.72 1.77 19.4699993 84.9599992 0.854371 0.519664 0.0622191 +7203 1 1.72 1.77 17.7000008 86.7300034 0.496644 -0.867954 0.3529064 +7204 1 1.72 0.0 19.4699993 86.7300034 -0.63657 0.771219 0.3529064 +7205 1 1.72 3.54 17.7000008 84.9599992 -0.257392 -0.966307 0.0622191 +7206 1 1.72 5.31 19.4699993 84.9599992 0.849831 -0.527055 0.0622191 +7207 1 1.72 5.31 17.7000008 86.7300034 -0.78081 -0.624769 0.3529064 +7208 1 1.72 3.54 19.4699993 86.7300034 -0.781205 -0.624275 0.3529064 +7209 1 1.72 7.0799999 17.7000008 84.9599992 0.759744 -0.650223 0.0622191 +7210 1 1.72 8.8500004 19.4699993 84.9599992 -0.755777 0.654829 0.0622191 +7211 1 1.72 8.8500004 17.7000008 86.7300034 0.498246 0.867036 0.3529064 +7212 1 1.72 7.0799999 19.4699993 86.7300034 -0.904963 0.425491 0.3529064 +7213 1 1.72 10.6199999 17.7000008 84.9599992 -0.63527 0.77229 0.0622191 +7214 1 1.72 12.3900004 19.4699993 84.9599992 0.450913 0.892568 0.0622191 +7215 1 1.72 12.3900004 17.7000008 86.7300034 -0.463738 -0.885973 0.3529064 +7216 1 1.72 10.6199999 19.4699993 86.7300034 0.579384 -0.815055 0.3529064 +7217 1 1.72 14.1599999 17.7000008 84.9599992 -0.638167 -0.769898 0.0622191 +7218 1 1.72 15.9300004 19.4699993 84.9599992 0.837725 0.546093 0.0622191 +7219 1 1.72 15.9300004 17.7000008 86.7300034 -0.961775 -0.273839 0.3529064 +7220 1 1.72 14.1599999 19.4699993 86.7300034 0.403298 0.915069 0.3529064 +7221 1 1.72 17.7000008 17.7000008 84.9599992 0.758982 -0.651112 0.0622191 +7222 1 1.72 19.4699993 19.4699993 84.9599992 0.330809 -0.943698 0.0622191 +7223 1 1.72 19.4699993 17.7000008 86.7300034 -0.90535 0.424667 0.3529064 +7224 1 1.72 17.7000008 19.4699993 86.7300034 -0.244936 0.969539 0.3529064 +7225 1 1.72 21.2399998 17.7000008 84.9599992 0.711106 -0.703085 0.0622191 +7226 1 1.72 23.0100002 19.4699993 84.9599992 0.77967 0.626191 0.0622191 +7227 1 1.72 23.0100002 17.7000008 86.7300034 -0.701476 -0.712693 0.3529064 +7228 1 1.72 21.2399998 19.4699993 86.7300034 -0.752627 -0.658447 0.3529064 +7229 1 1.72 24.7800007 17.7000008 84.9599992 0.597296 0.802021 0.0622191 +7230 1 1.72 26.5499993 19.4699993 84.9599992 -0.68935 -0.724429 0.0622191 +7231 1 1.72 26.5499993 17.7000008 86.7300034 0.87852 -0.477705 0.3529064 +7232 1 1.72 24.7800007 19.4699993 86.7300034 -0.348809 -0.937194 0.3529064 +7233 1 1.72 0.0 21.2399998 84.9599992 0.0103127 -0.999947 0.0622191 +7234 1 1.72 1.77 23.0100002 84.9599992 -0.980241 -0.197808 0.0622191 +7235 1 1.72 1.77 21.2399998 86.7300034 -0.181089 -0.983467 0.3529064 +7236 1 1.72 0.0 23.0100002 86.7300034 0.838894 0.544294 0.3529064 +7237 1 1.72 3.54 21.2399998 84.9599992 -0.999821 0.0189285 0.0622191 +7238 1 1.72 5.31 23.0100002 84.9599992 -0.859955 -0.510369 0.0622191 +7239 1 1.72 5.31 21.2399998 86.7300034 0.214569 -0.976709 0.3529064 +7240 1 1.72 3.54 23.0100002 86.7300034 -0.901816 0.432121 0.3529064 +7241 1 1.72 7.0799999 21.2399998 84.9599992 0.24824 0.968699 0.0622191 +7242 1 1.72 8.8500004 23.0100002 84.9599992 -0.913784 -0.406201 0.0622191 +7243 1 1.72 8.8500004 21.2399998 86.7300034 0.903048 0.42954 0.3529064 +7244 1 1.72 7.0799999 23.0100002 86.7300034 0.331813 -0.943345 0.3529064 +7245 1 1.72 10.6199999 21.2399998 84.9599992 0.399421 0.916767 0.0622191 +7246 1 1.72 12.3900004 23.0100002 84.9599992 0.616546 0.787319 0.0622191 +7247 1 1.72 12.3900004 21.2399998 86.7300034 -0.876837 -0.480789 0.3529064 +7248 1 1.72 10.6199999 23.0100002 86.7300034 0.290635 0.956834 0.3529064 +7249 1 1.72 14.1599999 21.2399998 84.9599992 -0.892637 0.450777 0.0622191 +7250 1 1.72 15.9300004 23.0100002 84.9599992 -0.0240963 0.99971 0.0622191 +7251 1 1.72 15.9300004 21.2399998 86.7300034 0.0937539 0.995595 0.3529064 +7252 1 1.72 14.1599999 23.0100002 86.7300034 0.604352 -0.796718 0.3529064 +7253 1 1.72 17.7000008 21.2399998 84.9599992 0.347235 -0.937778 0.0622191 +7254 1 1.72 19.4699993 23.0100002 84.9599992 -0.641414 -0.767195 0.0622191 +7255 1 1.72 19.4699993 21.2399998 86.7300034 0.772043 -0.635571 0.3529064 +7256 1 1.72 17.7000008 23.0100002 86.7300034 0.093297 -0.995638 0.3529064 +7257 1 1.72 21.2399998 21.2399998 84.9599992 0.940947 0.338553 0.0622191 +7258 1 1.72 23.0100002 23.0100002 84.9599992 -0.170928 0.985284 0.0622191 +7259 1 1.72 23.0100002 21.2399998 86.7300034 0.785236 0.619196 0.3529064 +7260 1 1.72 21.2399998 23.0100002 86.7300034 0.362203 -0.932099 0.3529064 +7261 1 1.72 24.7800007 21.2399998 84.9599992 0.98602 0.166625 0.0622191 +7262 1 1.72 26.5499993 23.0100002 84.9599992 0.232046 -0.972705 0.0622191 +7263 1 1.72 26.5499993 21.2399998 86.7300034 0.999763 -0.021768 0.3529064 +7264 1 1.72 24.7800007 23.0100002 86.7300034 0.921563 -0.388228 0.3529064 +7265 1 1.72 0.0 24.7800007 84.9599992 -0.994342 0.106224 0.0622191 +7266 1 1.72 1.77 26.5499993 84.9599992 -0.949506 -0.31375 0.0622191 +7267 1 1.72 1.77 24.7800007 86.7300034 0.401109 0.916031 0.3529064 +7268 1 1.72 0.0 26.5499993 86.7300034 -0.999701 0.0244554 0.3529064 +7269 1 1.72 3.54 24.7800007 84.9599992 0.399626 0.916678 0.0622191 +7270 1 1.72 5.31 26.5499993 84.9599992 0.709862 0.704341 0.0622191 +7271 1 1.72 5.31 24.7800007 86.7300034 0.821681 -0.569948 0.3529064 +7272 1 1.72 3.54 26.5499993 86.7300034 0.295562 -0.955324 0.3529064 +7273 1 1.72 7.0799999 24.7800007 84.9599992 0.789035 -0.614348 0.0622191 +7274 1 1.72 8.8500004 26.5499993 84.9599992 0.815041 0.579404 0.0622191 +7275 1 1.72 8.8500004 24.7800007 86.7300034 0.919138 0.393935 0.3529064 +7276 1 1.72 7.0799999 26.5499993 86.7300034 -0.495859 -0.868403 0.3529064 +7277 1 1.72 10.6199999 24.7800007 84.9599992 0.0912077 0.995832 0.0622191 +7278 1 1.72 12.3900004 26.5499993 84.9599992 -0.502062 0.864832 0.0622191 +7279 1 1.72 12.3900004 24.7800007 86.7300034 -0.849236 -0.528014 0.3529064 +7280 1 1.72 10.6199999 26.5499993 86.7300034 -0.49546 0.868631 0.3529064 +7281 1 1.72 14.1599999 24.7800007 84.9599992 0.954735 0.297457 0.0622191 +7282 1 1.72 15.9300004 26.5499993 84.9599992 0.700122 0.714023 0.0622191 +7283 1 1.72 15.9300004 24.7800007 86.7300034 0.828515 0.559966 0.3529064 +7284 1 1.72 14.1599999 26.5499993 86.7300034 -0.680411 0.732831 0.3529064 +7285 1 1.72 17.7000008 24.7800007 84.9599992 -0.902274 -0.431164 0.0622191 +7286 1 1.72 19.4699993 26.5499993 84.9599992 -0.110751 -0.993848 0.0622191 +7287 1 1.72 19.4699993 24.7800007 86.7300034 -0.997825 -0.0659212 0.3529064 +7288 1 1.72 17.7000008 26.5499993 86.7300034 -0.775716 0.631082 0.3529064 +7289 1 1.72 21.2399998 24.7800007 84.9599992 0.969548 0.244901 0.0622191 +7290 1 1.72 23.0100002 26.5499993 84.9599992 0.59449 -0.804103 0.0622191 +7291 1 1.72 23.0100002 24.7800007 86.7300034 0.84485 -0.535003 0.3529064 +7292 1 1.72 21.2399998 26.5499993 86.7300034 -0.988923 -0.148432 0.3529064 +7293 1 1.72 24.7800007 24.7800007 84.9599992 0.738501 0.674252 0.0622191 +7294 1 1.72 26.5499993 26.5499993 84.9599992 0.986944 -0.161065 0.0622191 +7295 1 1.72 26.5499993 24.7800007 86.7300034 0.878155 -0.478376 0.3529064 +7296 1 1.72 24.7800007 26.5499993 86.7300034 -0.643802 -0.765193 0.3529064 +7297 1 1.72 0.0 14.1599999 88.5 -0.0246609 -0.999696 0.6123981 +7298 1 1.72 1.77 15.9300004 88.5 0.790916 0.611924 0.6123981 +7299 1 1.72 1.77 14.1599999 90.2699967 -0.115202 -0.993342 0.8177584 +7300 1 1.72 0.0 15.9300004 90.2699967 0.699062 -0.715061 0.8177584 +7301 1 1.72 3.54 14.1599999 88.5 0.927062 -0.374909 0.6123981 +7302 1 1.72 5.31 15.9300004 88.5 -0.545116 0.838361 0.6123981 +7303 1 1.72 5.31 14.1599999 90.2699967 -0.752065 -0.659089 0.8177584 +7304 1 1.72 3.54 15.9300004 90.2699967 -0.167863 -0.98581 0.8177584 +7305 1 1.72 7.0799999 14.1599999 88.5 0.945505 -0.325607 0.6123981 +7306 1 1.72 8.8500004 15.9300004 88.5 0.977361 0.211579 0.6123981 +7307 1 1.72 8.8500004 14.1599999 90.2699967 -0.684967 -0.728574 0.8177584 +7308 1 1.72 7.0799999 15.9300004 90.2699967 0.606717 0.794918 0.8177584 +7309 1 1.72 10.6199999 14.1599999 88.5 -0.471888 -0.881659 0.6123981 +7310 1 1.72 12.3900004 15.9300004 88.5 0.77984 -0.625979 0.6123981 +7311 1 1.72 12.3900004 14.1599999 90.2699967 -0.56107 0.827768 0.8177584 +7312 1 1.72 10.6199999 15.9300004 90.2699967 -0.999858 0.0168652 0.8177584 +7313 1 1.72 14.1599999 14.1599999 88.5 0.996362 -0.0852198 0.6123981 +7314 1 1.72 15.9300004 15.9300004 88.5 -0.497088 0.8677 0.6123981 +7315 1 1.72 15.9300004 14.1599999 90.2699967 0.886892 0.461976 0.8177584 +7316 1 1.72 14.1599999 15.9300004 90.2699967 -0.901658 -0.432449 0.8177584 +7317 1 1.72 17.7000008 14.1599999 88.5 0.999836 -0.0181131 0.6123981 +7318 1 1.72 19.4699993 15.9300004 88.5 0.233596 -0.972334 0.6123981 +7319 1 1.72 19.4699993 14.1599999 90.2699967 0.547461 0.836831 0.8177584 +7320 1 1.72 17.7000008 15.9300004 90.2699967 -0.90072 0.434399 0.8177584 +7321 1 1.72 21.2399998 14.1599999 88.5 -0.227619 -0.97375 0.6123981 +7322 1 1.72 23.0100002 15.9300004 88.5 0.997611 -0.0690778 0.6123981 +7323 1 1.72 23.0100002 14.1599999 90.2699967 0.759299 0.650742 0.8177584 +7324 1 1.72 21.2399998 15.9300004 90.2699967 -0.127055 0.991896 0.8177584 +7325 1 1.72 24.7800007 14.1599999 88.5 -0.31189 -0.950118 0.6123981 +7326 1 1.72 26.5499993 15.9300004 88.5 -0.535362 0.844622 0.6123981 +7327 1 1.72 26.5499993 14.1599999 90.2699967 -0.604466 0.796631 0.8177584 +7328 1 1.72 24.7800007 15.9300004 90.2699967 0.772721 0.634745 0.8177584 +7329 1 1.72 0.0 17.7000008 88.5 -0.444358 -0.895849 0.6123981 +7330 1 1.72 1.77 19.4699993 88.5 -0.702097 0.712081 0.6123981 +7331 1 1.72 1.77 17.7000008 90.2699967 0.823896 -0.566741 0.8177584 +7332 1 1.72 0.0 19.4699993 90.2699967 -0.855453 -0.51788 0.8177584 +7333 1 1.72 3.54 17.7000008 88.5 -0.999819 -0.0190445 0.6123981 +7334 1 1.72 5.31 19.4699993 88.5 0.678474 0.734624 0.6123981 +7335 1 1.72 5.31 17.7000008 90.2699967 -0.0725891 -0.997362 0.8177584 +7336 1 1.72 3.54 19.4699993 90.2699967 0.932619 0.360862 0.8177584 +7337 1 1.72 7.0799999 17.7000008 88.5 -0.997187 -0.0749493 0.6123981 +7338 1 1.72 8.8500004 19.4699993 88.5 0.198699 -0.980061 0.6123981 +7339 1 1.72 8.8500004 17.7000008 90.2699967 0.0111635 -0.999938 0.8177584 +7340 1 1.72 7.0799999 19.4699993 90.2699967 -0.967641 -0.252332 0.8177584 +7341 1 1.72 10.6199999 17.7000008 88.5 0.686412 0.727213 0.6123981 +7342 1 1.72 12.3900004 19.4699993 88.5 0.342127 0.939654 0.6123981 +7343 1 1.72 12.3900004 17.7000008 90.2699967 0.575416 0.817861 0.8177584 +7344 1 1.72 10.6199999 19.4699993 90.2699967 -0.972882 -0.231301 0.8177584 +7345 1 1.72 14.1599999 17.7000008 88.5 -0.572681 -0.819779 0.6123981 +7346 1 1.72 15.9300004 19.4699993 88.5 -0.0140865 0.999901 0.6123981 +7347 1 1.72 15.9300004 17.7000008 90.2699967 -0.936861 -0.349702 0.8177584 +7348 1 1.72 14.1599999 19.4699993 90.2699967 -0.667916 0.744237 0.8177584 +7349 1 1.72 17.7000008 17.7000008 88.5 0.918304 0.395876 0.6123981 +7350 1 1.72 19.4699993 19.4699993 88.5 0.890628 0.454732 0.6123981 +7351 1 1.72 19.4699993 17.7000008 90.2699967 -0.726814 0.686835 0.8177584 +7352 1 1.72 17.7000008 19.4699993 90.2699967 0.773635 -0.633631 0.8177584 +7353 1 1.72 21.2399998 17.7000008 88.5 -0.0889625 -0.996035 0.6123981 +7354 1 1.72 23.0100002 19.4699993 88.5 0.272131 -0.96226 0.6123981 +7355 1 1.72 23.0100002 17.7000008 90.2699967 0.851679 0.524064 0.8177584 +7356 1 1.72 21.2399998 19.4699993 90.2699967 0.582995 0.812476 0.8177584 +7357 1 1.72 24.7800007 17.7000008 88.5 -0.737106 0.675777 0.6123981 +7358 1 1.72 26.5499993 19.4699993 88.5 -0.252896 0.967493 0.6123981 +7359 1 1.72 26.5499993 17.7000008 90.2699967 -0.777732 0.628596 0.8177584 +7360 1 1.72 24.7800007 19.4699993 90.2699967 -0.718837 -0.695178 0.8177584 +7361 1 1.72 0.0 21.2399998 88.5 0.491714 0.870757 0.6123981 +7362 1 1.72 1.77 23.0100002 88.5 0.952461 0.304659 0.6123981 +7363 1 1.72 1.77 21.2399998 90.2699967 0.995469 0.0950876 0.8177584 +7364 1 1.72 0.0 23.0100002 90.2699967 -0.990871 -0.13481 0.8177584 +7365 1 1.72 3.54 21.2399998 88.5 0.757677 -0.65263 0.6123981 +7366 1 1.72 5.31 23.0100002 88.5 0.904318 -0.426859 0.6123981 +7367 1 1.72 5.31 21.2399998 90.2699967 0.999862 0.0166328 0.8177584 +7368 1 1.72 3.54 23.0100002 90.2699967 0.881145 -0.472846 0.8177584 +7369 1 1.72 7.0799999 21.2399998 88.5 -0.2958 0.95525 0.6123981 +7370 1 1.72 8.8500004 23.0100002 88.5 0.943812 0.330482 0.6123981 +7371 1 1.72 8.8500004 21.2399998 90.2699967 0.995311 0.0967292 0.8177584 +7372 1 1.72 7.0799999 23.0100002 90.2699967 0.74448 0.667645 0.8177584 +7373 1 1.72 10.6199999 21.2399998 88.5 -0.21849 -0.975839 0.6123981 +7374 1 1.72 12.3900004 23.0100002 88.5 -0.422067 0.906565 0.6123981 +7375 1 1.72 12.3900004 21.2399998 90.2699967 -0.241443 -0.970415 0.8177584 +7376 1 1.72 10.6199999 23.0100002 90.2699967 -0.927547 0.373706 0.8177584 +7377 1 1.72 14.1599999 21.2399998 88.5 -0.868774 0.495209 0.6123981 +7378 1 1.72 15.9300004 23.0100002 88.5 -0.951215 -0.308528 0.6123981 +7379 1 1.72 15.9300004 21.2399998 90.2699967 -0.402489 -0.915425 0.8177584 +7380 1 1.72 14.1599999 23.0100002 90.2699967 0.990755 -0.135666 0.8177584 +7381 1 1.72 17.7000008 21.2399998 88.5 0.714331 -0.699808 0.6123981 +7382 1 1.72 19.4699993 23.0100002 88.5 -0.99629 -0.086064 0.6123981 +7383 1 1.72 19.4699993 21.2399998 90.2699967 0.125689 -0.99207 0.8177584 +7384 1 1.72 17.7000008 23.0100002 90.2699967 -0.261601 0.965176 0.8177584 +7385 1 1.72 21.2399998 21.2399998 88.5 -0.461799 0.886984 0.6123981 +7386 1 1.72 23.0100002 23.0100002 88.5 -0.330304 -0.943875 0.6123981 +7387 1 1.72 23.0100002 21.2399998 90.2699967 0.878229 0.478241 0.8177584 +7388 1 1.72 21.2399998 23.0100002 90.2699967 0.0148454 -0.99989 0.8177584 +7389 1 1.72 24.7800007 21.2399998 88.5 0.328363 -0.944552 0.6123981 +7390 1 1.72 26.5499993 23.0100002 88.5 -0.779689 0.626167 0.6123981 +7391 1 1.72 26.5499993 21.2399998 90.2699967 0.849962 0.526844 0.8177584 +7392 1 1.72 24.7800007 23.0100002 90.2699967 -0.896835 0.442365 0.8177584 +7393 1 1.72 0.0 24.7800007 88.5 -0.722017 -0.691876 0.6123981 +7394 1 1.72 1.77 26.5499993 88.5 0.913836 0.406083 0.6123981 +7395 1 1.72 1.77 24.7800007 90.2699967 0.524932 0.851144 0.8177584 +7396 1 1.72 0.0 26.5499993 90.2699967 0.0550976 0.998481 0.8177584 +7397 1 1.72 3.54 24.7800007 88.5 0.660772 -0.750587 0.6123981 +7398 1 1.72 5.31 26.5499993 88.5 -0.0838394 0.996479 0.6123981 +7399 1 1.72 5.31 24.7800007 90.2699967 -0.00543521 -0.999985 0.8177584 +7400 1 1.72 3.54 26.5499993 90.2699967 -0.21014 0.977671 0.8177584 +7401 1 1.72 7.0799999 24.7800007 88.5 -0.8526 0.522564 0.6123981 +7402 1 1.72 8.8500004 26.5499993 88.5 -0.504776 0.86325 0.6123981 +7403 1 1.72 8.8500004 24.7800007 90.2699967 0.950668 -0.310211 0.8177584 +7404 1 1.72 7.0799999 26.5499993 90.2699967 0.178442 0.98395 0.8177584 +7405 1 1.72 10.6199999 24.7800007 88.5 0.678587 -0.73452 0.6123981 +7406 1 1.72 12.3900004 26.5499993 88.5 -0.815395 -0.578904 0.6123981 +7407 1 1.72 12.3900004 24.7800007 90.2699967 0.607768 -0.794115 0.8177584 +7408 1 1.72 10.6199999 26.5499993 90.2699967 -0.56705 -0.823683 0.8177584 +7409 1 1.72 14.1599999 24.7800007 88.5 0.815427 -0.57886 0.6123981 +7410 1 1.72 15.9300004 26.5499993 88.5 0.185859 0.982577 0.6123981 +7411 1 1.72 15.9300004 24.7800007 90.2699967 0.993476 -0.11404 0.8177584 +7412 1 1.72 14.1599999 26.5499993 90.2699967 -0.852693 -0.522413 0.8177584 +7413 1 1.72 17.7000008 24.7800007 88.5 0.989865 0.142013 0.6123981 +7414 1 1.72 19.4699993 26.5499993 88.5 0.808801 0.588083 0.6123981 +7415 1 1.72 19.4699993 24.7800007 90.2699967 0.297282 -0.95479 0.8177584 +7416 1 1.72 17.7000008 26.5499993 90.2699967 0.743135 0.669142 0.8177584 +7417 1 1.72 21.2399998 24.7800007 88.5 0.763867 0.645373 0.6123981 +7418 1 1.72 23.0100002 26.5499993 88.5 0.109154 0.994025 0.6123981 +7419 1 1.72 23.0100002 24.7800007 90.2699967 0.935386 0.353628 0.8177584 +7420 1 1.72 21.2399998 26.5499993 90.2699967 0.717344 -0.696719 0.8177584 +7421 1 1.72 24.7800007 24.7800007 88.5 -0.99474 -0.102432 0.6123981 +7422 1 1.72 26.5499993 26.5499993 88.5 0.74773 -0.664003 0.6123981 +7423 1 1.72 26.5499993 24.7800007 90.2699967 0.418067 0.908416 0.8177584 +7424 1 1.72 24.7800007 26.5499993 90.2699967 0.367478 -0.930032 0.8177584 +7425 1 1.72 0.0 14.1599999 92.0400009 0.54352 -0.839396 0.9508352 +7426 1 1.72 1.77 15.9300004 92.0400009 0.56064 0.82806 0.9508352 +7427 1 1.72 1.77 14.1599999 93.8099976 -0.681358 -0.73195 0.9998646 +7428 1 1.72 0.0 15.9300004 93.8099976 -0.764215 -0.644961 0.9998646 +7429 1 1.72 3.54 14.1599999 92.0400009 -0.161248 0.986914 0.9508352 +7430 1 1.72 5.31 15.9300004 92.0400009 -0.19046 -0.981695 0.9508352 +7431 1 1.72 5.31 14.1599999 93.8099976 -0.256974 0.966418 0.9998646 +7432 1 1.72 3.54 15.9300004 93.8099976 -0.999738 0.022888 0.9998646 +7433 1 1.72 7.0799999 14.1599999 92.0400009 -0.611676 -0.791108 0.9508352 +7434 1 1.72 8.8500004 15.9300004 92.0400009 0.779078 -0.626928 0.9508352 +7435 1 1.72 8.8500004 14.1599999 93.8099976 0.638623 0.76952 0.9998646 +7436 1 1.72 7.0799999 15.9300004 93.8099976 0.530092 0.84794 0.9998646 +7437 1 1.72 10.6199999 14.1599999 92.0400009 0.815198 0.579182 0.9508352 +7438 1 1.72 12.3900004 15.9300004 92.0400009 -0.634202 -0.773167 0.9508352 +7439 1 1.72 12.3900004 14.1599999 93.8099976 0.68496 0.728581 0.9998646 +7440 1 1.72 10.6199999 15.9300004 93.8099976 0.577594 -0.816324 0.9998646 +7441 1 1.72 14.1599999 14.1599999 92.0400009 0.998732 0.0503514 0.9508352 +7442 1 1.72 15.9300004 15.9300004 92.0400009 0.967565 0.252622 0.9508352 +7443 1 1.72 15.9300004 14.1599999 93.8099976 0.958245 -0.28595 0.9998646 +7444 1 1.72 14.1599999 15.9300004 93.8099976 0.785628 -0.618699 0.9998646 +7445 1 1.72 17.7000008 14.1599999 92.0400009 -0.663981 -0.747749 0.9508352 +7446 1 1.72 19.4699993 15.9300004 92.0400009 -0.845747 -0.533584 0.9508352 +7447 1 1.72 19.4699993 14.1599999 93.8099976 -0.0125419 0.999921 0.9998646 +7448 1 1.72 17.7000008 15.9300004 93.8099976 0.774267 0.632859 0.9998646 +7449 1 1.72 21.2399998 14.1599999 92.0400009 0.852801 -0.522236 0.9508352 +7450 1 1.72 23.0100002 15.9300004 92.0400009 0.981855 0.189635 0.9508352 +7451 1 1.72 23.0100002 14.1599999 93.8099976 0.910292 0.413966 0.9998646 +7452 1 1.72 21.2399998 15.9300004 93.8099976 0.89673 -0.442579 0.9998646 +7453 1 1.72 24.7800007 14.1599999 92.0400009 -0.40498 0.914326 0.9508352 +7454 1 1.72 26.5499993 15.9300004 92.0400009 0.150924 -0.988545 0.9508352 +7455 1 1.72 26.5499993 14.1599999 93.8099976 0.829418 -0.558629 0.9998646 +7456 1 1.72 24.7800007 15.9300004 93.8099976 -0.675589 -0.737279 0.9998646 +7457 1 1.72 0.0 17.7000008 92.0400009 -0.674773 0.738026 0.9508352 +7458 1 1.72 1.77 19.4699993 92.0400009 -0.489982 0.871732 0.9508352 +7459 1 1.72 1.77 17.7000008 93.8099976 -0.754154 0.656697 0.9998646 +7460 1 1.72 0.0 19.4699993 93.8099976 0.408462 -0.912775 0.9998646 +7461 1 1.72 3.54 17.7000008 92.0400009 -0.982961 0.183812 0.9508352 +7462 1 1.72 5.31 19.4699993 92.0400009 0.278581 0.960413 0.9508352 +7463 1 1.72 5.31 17.7000008 93.8099976 -0.86954 0.493863 0.9998646 +7464 1 1.72 3.54 19.4699993 93.8099976 -0.757885 0.652388 0.9998646 +7465 1 1.72 7.0799999 17.7000008 92.0400009 0.878023 0.478619 0.9508352 +7466 1 1.72 8.8500004 19.4699993 92.0400009 0.531715 0.846924 0.9508352 +7467 1 1.72 8.8500004 17.7000008 93.8099976 0.999072 0.0430685 0.9998646 +7468 1 1.72 7.0799999 19.4699993 93.8099976 -0.38005 0.924966 0.9998646 +7469 1 1.72 10.6199999 17.7000008 92.0400009 -0.202988 0.979181 0.9508352 +7470 1 1.72 12.3900004 19.4699993 92.0400009 0.996325 0.0856516 0.9508352 +7471 1 1.72 12.3900004 17.7000008 93.8099976 -0.134627 -0.990896 0.9998646 +7472 1 1.72 10.6199999 19.4699993 93.8099976 -0.857924 0.513776 0.9998646 +7473 1 1.72 14.1599999 17.7000008 92.0400009 0.955448 -0.29516 0.9508352 +7474 1 1.72 15.9300004 19.4699993 92.0400009 -0.954921 -0.296861 0.9508352 +7475 1 1.72 15.9300004 17.7000008 93.8099976 0.879663 0.475597 0.9998646 +7476 1 1.72 14.1599999 19.4699993 93.8099976 0.657262 0.753662 0.9998646 +7477 1 1.72 17.7000008 17.7000008 92.0400009 0.784111 -0.62062 0.9508352 +7478 1 1.72 19.4699993 19.4699993 92.0400009 0.382123 -0.924111 0.9508352 +7479 1 1.72 19.4699993 17.7000008 93.8099976 0.800999 0.598666 0.9998646 +7480 1 1.72 17.7000008 19.4699993 93.8099976 0.370904 -0.928671 0.9998646 +7481 1 1.72 21.2399998 17.7000008 92.0400009 0.125205 0.992131 0.9508352 +7482 1 1.72 23.0100002 19.4699993 92.0400009 -0.848755 0.528787 0.9508352 +7483 1 1.72 23.0100002 17.7000008 93.8099976 -0.632259 0.774757 0.9998646 +7484 1 1.72 21.2399998 19.4699993 93.8099976 -0.510586 -0.859827 0.9998646 +7485 1 1.72 24.7800007 17.7000008 92.0400009 0.27172 0.962376 0.9508352 +7486 1 1.72 26.5499993 19.4699993 92.0400009 0.739764 -0.672866 0.9508352 +7487 1 1.72 26.5499993 17.7000008 93.8099976 0.549757 0.835325 0.9998646 +7488 1 1.72 24.7800007 19.4699993 93.8099976 0.999757 0.0220605 0.9998646 +7489 1 1.72 0.0 21.2399998 92.0400009 -0.836145 -0.548508 0.9508352 +7490 1 1.72 1.77 23.0100002 92.0400009 0.999394 -0.0348173 0.9508352 +7491 1 1.72 1.77 21.2399998 93.8099976 0.0767681 -0.997049 0.9998646 +7492 1 1.72 0.0 23.0100002 93.8099976 0.999137 0.0415294 0.9998646 +7493 1 1.72 3.54 21.2399998 92.0400009 -0.999726 0.0234262 0.9508352 +7494 1 1.72 5.31 23.0100002 92.0400009 -0.68701 -0.726648 0.9508352 +7495 1 1.72 5.31 21.2399998 93.8099976 -0.897805 -0.440394 0.9998646 +7496 1 1.72 3.54 23.0100002 93.8099976 0.995575 -0.0939748 0.9998646 +7497 1 1.72 7.0799999 21.2399998 92.0400009 -0.169419 -0.985544 0.9508352 +7498 1 1.72 8.8500004 23.0100002 92.0400009 0.68083 0.732441 0.9508352 +7499 1 1.72 8.8500004 21.2399998 93.8099976 0.879996 -0.474982 0.9998646 +7500 1 1.72 7.0799999 23.0100002 93.8099976 -0.660693 -0.750656 0.9998646 +7501 1 1.72 10.6199999 21.2399998 92.0400009 0.828709 0.55968 0.9508352 +7502 1 1.72 12.3900004 23.0100002 92.0400009 -0.788559 0.614959 0.9508352 +7503 1 1.72 12.3900004 21.2399998 93.8099976 0.653632 0.756813 0.9998646 +7504 1 1.72 10.6199999 23.0100002 93.8099976 0.491311 0.870984 0.9998646 +7505 1 1.72 14.1599999 21.2399998 92.0400009 -0.0205317 0.999789 0.9508352 +7506 1 1.72 15.9300004 23.0100002 92.0400009 0.967023 -0.254687 0.9508352 +7507 1 1.72 15.9300004 21.2399998 93.8099976 0.985513 -0.1696 0.9998646 +7508 1 1.72 14.1599999 23.0100002 93.8099976 -0.374146 0.92737 0.9998646 +7509 1 1.72 17.7000008 21.2399998 92.0400009 0.131305 -0.991342 0.9508352 +7510 1 1.72 19.4699993 23.0100002 92.0400009 0.735471 -0.677556 0.9508352 +7511 1 1.72 19.4699993 21.2399998 93.8099976 0.733608 0.679573 0.9998646 +7512 1 1.72 17.7000008 23.0100002 93.8099976 0.0812353 -0.996695 0.9998646 +7513 1 1.72 21.2399998 21.2399998 92.0400009 -0.995493 0.0948322 0.9508352 +7514 1 1.72 23.0100002 23.0100002 92.0400009 0.335871 0.941908 0.9508352 +7515 1 1.72 23.0100002 21.2399998 93.8099976 -0.337147 0.941452 0.9998646 +7516 1 1.72 21.2399998 23.0100002 93.8099976 -0.849803 0.527101 0.9998646 +7517 1 1.72 24.7800007 21.2399998 92.0400009 0.350758 0.936466 0.9508352 +7518 1 1.72 26.5499993 23.0100002 92.0400009 0.18551 -0.982642 0.9508352 +7519 1 1.72 26.5499993 21.2399998 93.8099976 0.852909 -0.522059 0.9998646 +7520 1 1.72 24.7800007 23.0100002 93.8099976 -0.626436 -0.779473 0.9998646 +7521 1 1.72 0.0 24.7800007 92.0400009 -0.822167 -0.569247 0.9508352 +7522 1 1.72 1.77 26.5499993 92.0400009 0.775316 0.631573 0.9508352 +7523 1 1.72 1.77 24.7800007 93.8099976 0.998674 0.0514815 0.9998646 +7524 1 1.72 0.0 26.5499993 93.8099976 -0.997266 -0.0738963 0.9998646 +7525 1 1.72 3.54 24.7800007 92.0400009 0.569917 0.821702 0.9508352 +7526 1 1.72 5.31 26.5499993 92.0400009 0.987663 0.156593 0.9508352 +7527 1 1.72 5.31 24.7800007 93.8099976 0.210537 0.977586 0.9998646 +7528 1 1.72 3.54 26.5499993 93.8099976 -0.499337 -0.866408 0.9998646 +7529 1 1.72 7.0799999 24.7800007 92.0400009 0.851634 0.524136 0.9508352 +7530 1 1.72 8.8500004 26.5499993 92.0400009 0.187787 0.98221 0.9508352 +7531 1 1.72 8.8500004 24.7800007 93.8099976 0.135388 0.990793 0.9998646 +7532 1 1.72 7.0799999 26.5499993 93.8099976 0.561079 -0.827762 0.9998646 +7533 1 1.72 10.6199999 24.7800007 92.0400009 0.839991 0.5426 0.9508352 +7534 1 1.72 12.3900004 26.5499993 92.0400009 0.223665 -0.974666 0.9508352 +7535 1 1.72 12.3900004 24.7800007 93.8099976 0.972933 0.231087 0.9998646 +7536 1 1.72 10.6199999 26.5499993 93.8099976 -0.950008 0.312225 0.9998646 +7537 1 1.72 14.1599999 24.7800007 92.0400009 -0.947443 -0.319926 0.9508352 +7538 1 1.72 15.9300004 26.5499993 92.0400009 -0.206333 -0.978482 0.9508352 +7539 1 1.72 15.9300004 24.7800007 93.8099976 0.92193 -0.387356 0.9998646 +7540 1 1.72 14.1599999 26.5499993 93.8099976 -0.921197 -0.389097 0.9998646 +7541 1 1.72 17.7000008 24.7800007 92.0400009 0.957364 -0.288883 0.9508352 +7542 1 1.72 19.4699993 26.5499993 92.0400009 0.804185 -0.594379 0.9508352 +7543 1 1.72 19.4699993 24.7800007 93.8099976 -0.59431 0.804236 0.9998646 +7544 1 1.72 17.7000008 26.5499993 93.8099976 0.797111 0.603833 0.9998646 +7545 1 1.72 21.2399998 24.7800007 92.0400009 0.421084 0.907022 0.9508352 +7546 1 1.72 23.0100002 26.5499993 92.0400009 -0.550155 0.835062 0.9508352 +7547 1 1.72 23.0100002 24.7800007 93.8099976 -0.913516 -0.406802 0.9998646 +7548 1 1.72 21.2399998 26.5499993 93.8099976 0.910159 -0.414259 0.9998646 +7549 1 1.72 24.7800007 24.7800007 92.0400009 -0.530157 0.847899 0.9508352 +7550 1 1.72 26.5499993 26.5499993 92.0400009 -0.995756 -0.0920293 0.9508352 +7551 1 1.72 26.5499993 24.7800007 93.8099976 0.756358 -0.654158 0.9998646 +7552 1 1.72 24.7800007 26.5499993 93.8099976 0.147534 0.989057 0.9998646 +7553 1 1.72 0.0 14.1599999 95.5800019 -0.665006 0.746838 1.0 +7554 1 1.72 1.77 15.9300004 95.5800019 0.809106 -0.587662 1.0 +7555 1 1.72 1.77 14.1599999 97.3499985 0.692802 -0.721128 1.0 +7556 1 1.72 0.0 15.9300004 97.3499985 -0.923603 -0.383351 1.0 +7557 1 1.72 3.54 14.1599999 95.5800019 0.482055 -0.876141 1.0 +7558 1 1.72 5.31 15.9300004 95.5800019 -0.796218 -0.605009 1.0 +7559 1 1.72 5.31 14.1599999 97.3499985 -0.247815 0.968807 1.0 +7560 1 1.72 3.54 15.9300004 97.3499985 0.127839 0.991795 1.0 +7561 1 1.72 7.0799999 14.1599999 95.5800019 -0.298338 -0.95446 1.0 +7562 1 1.72 8.8500004 15.9300004 95.5800019 0.761113 0.648619 1.0 +7563 1 1.72 8.8500004 14.1599999 97.3499985 0.937634 -0.347623 1.0 +7564 1 1.72 7.0799999 15.9300004 97.3499985 0.264289 0.964444 1.0 +7565 1 1.72 10.6199999 14.1599999 95.5800019 0.851258 -0.524747 1.0 +7566 1 1.72 12.3900004 15.9300004 95.5800019 0.0944879 -0.995526 1.0 +7567 1 1.72 12.3900004 14.1599999 97.3499985 0.515867 -0.856668 1.0 +7568 1 1.72 10.6199999 15.9300004 97.3499985 -0.438115 -0.898919 1.0 +7569 1 1.72 14.1599999 14.1599999 95.5800019 0.998803 0.0489194 1.0 +7570 1 1.72 15.9300004 15.9300004 95.5800019 0.991046 0.13352 1.0 +7571 1 1.72 15.9300004 14.1599999 97.3499985 -0.0648131 -0.997897 1.0 +7572 1 1.72 14.1599999 15.9300004 97.3499985 -0.740711 -0.671824 1.0 +7573 1 1.72 17.7000008 14.1599999 95.5800019 0.551882 -0.833922 1.0 +7574 1 1.72 19.4699993 15.9300004 95.5800019 0.489205 -0.872169 1.0 +7575 1 1.72 19.4699993 14.1599999 97.3499985 -0.18181 -0.983334 1.0 +7576 1 1.72 17.7000008 15.9300004 97.3499985 0.641243 -0.767337 1.0 +7577 1 1.72 21.2399998 14.1599999 95.5800019 0.66581 -0.746121 1.0 +7578 1 1.72 23.0100002 15.9300004 95.5800019 0.997858 -0.06542 1.0 +7579 1 1.72 23.0100002 14.1599999 97.3499985 -0.124468 -0.992224 1.0 +7580 1 1.72 21.2399998 15.9300004 97.3499985 0.975173 0.221443 1.0 +7581 1 1.72 24.7800007 14.1599999 95.5800019 0.999194 0.0401463 1.0 +7582 1 1.72 26.5499993 15.9300004 95.5800019 0.759971 0.649957 1.0 +7583 1 1.72 26.5499993 14.1599999 97.3499985 0.72002 0.693953 1.0 +7584 1 1.72 24.7800007 15.9300004 97.3499985 0.663458 0.748214 1.0 +7585 1 1.72 0.0 17.7000008 95.5800019 -0.605875 0.79556 1.0 +7586 1 1.72 1.77 19.4699993 95.5800019 0.214841 -0.976649 1.0 +7587 1 1.72 1.77 17.7000008 97.3499985 0.771975 0.635653 1.0 +7588 1 1.72 0.0 19.4699993 97.3499985 0.608465 -0.793581 1.0 +7589 1 1.72 3.54 17.7000008 95.5800019 0.945228 -0.326412 1.0 +7590 1 1.72 5.31 19.4699993 95.5800019 -0.974022 -0.226452 1.0 +7591 1 1.72 5.31 17.7000008 97.3499985 0.744467 -0.667659 1.0 +7592 1 1.72 3.54 19.4699993 97.3499985 -0.427445 -0.904041 1.0 +7593 1 1.72 7.0799999 17.7000008 95.5800019 0.836238 0.548367 1.0 +7594 1 1.72 8.8500004 19.4699993 95.5800019 0.945234 0.326393 1.0 +7595 1 1.72 8.8500004 17.7000008 97.3499985 -0.709222 0.704985 1.0 +7596 1 1.72 7.0799999 19.4699993 97.3499985 0.988556 -0.150852 1.0 +7597 1 1.72 10.6199999 17.7000008 95.5800019 0.962003 0.27304 1.0 +7598 1 1.72 12.3900004 19.4699993 95.5800019 0.632917 -0.77422 1.0 +7599 1 1.72 12.3900004 17.7000008 97.3499985 0.849077 0.528269 1.0 +7600 1 1.72 10.6199999 19.4699993 97.3499985 0.645128 -0.764075 1.0 +7601 1 1.72 14.1599999 17.7000008 95.5800019 -0.990418 0.1381 1.0 +7602 1 1.72 15.9300004 19.4699993 95.5800019 0.916608 -0.399788 1.0 +7603 1 1.72 15.9300004 17.7000008 97.3499985 0.787421 -0.616416 1.0 +7604 1 1.72 14.1599999 19.4699993 97.3499985 -0.990944 0.134277 1.0 +7605 1 1.72 17.7000008 17.7000008 95.5800019 0.732753 -0.680495 1.0 +7606 1 1.72 19.4699993 19.4699993 95.5800019 0.945485 -0.325665 1.0 +7607 1 1.72 19.4699993 17.7000008 97.3499985 0.99995 0.0100488 1.0 +7608 1 1.72 17.7000008 19.4699993 97.3499985 0.788838 0.614601 1.0 +7609 1 1.72 21.2399998 17.7000008 95.5800019 -0.444905 0.895578 1.0 +7610 1 1.72 23.0100002 19.4699993 95.5800019 0.992065 0.125728 1.0 +7611 1 1.72 23.0100002 17.7000008 97.3499985 0.832045 -0.554708 1.0 +7612 1 1.72 21.2399998 19.4699993 97.3499985 0.985162 -0.171627 1.0 +7613 1 1.72 24.7800007 17.7000008 95.5800019 -0.402 -0.91564 1.0 +7614 1 1.72 26.5499993 19.4699993 95.5800019 -0.0499137 -0.998754 1.0 +7615 1 1.72 26.5499993 17.7000008 97.3499985 0.0327699 0.999463 1.0 +7616 1 1.72 24.7800007 19.4699993 97.3499985 -0.629882 -0.776691 1.0 +7617 1 1.72 0.0 21.2399998 95.5800019 0.670866 -0.741578 1.0 +7618 1 1.72 1.77 23.0100002 95.5800019 -0.544609 0.83869 1.0 +7619 1 1.72 1.77 21.2399998 97.3499985 -0.893655 -0.448754 1.0 +7620 1 1.72 0.0 23.0100002 97.3499985 0.861757 -0.507322 1.0 +7621 1 1.72 3.54 21.2399998 95.5800019 -0.643527 0.765423 1.0 +7622 1 1.72 5.31 23.0100002 95.5800019 0.572624 -0.819818 1.0 +7623 1 1.72 5.31 21.2399998 97.3499985 0.523185 -0.852219 1.0 +7624 1 1.72 3.54 23.0100002 97.3499985 0.0537154 -0.998556 1.0 +7625 1 1.72 7.0799999 21.2399998 95.5800019 0.665988 0.745963 1.0 +7626 1 1.72 8.8500004 23.0100002 95.5800019 -0.439705 0.898142 1.0 +7627 1 1.72 8.8500004 21.2399998 97.3499985 0.675737 0.737143 1.0 +7628 1 1.72 7.0799999 23.0100002 97.3499985 -0.201572 0.979474 1.0 +7629 1 1.72 10.6199999 21.2399998 95.5800019 -0.892867 -0.450321 1.0 +7630 1 1.72 12.3900004 23.0100002 95.5800019 -0.506673 -0.862138 1.0 +7631 1 1.72 12.3900004 21.2399998 97.3499985 -0.946024 0.324097 1.0 +7632 1 1.72 10.6199999 23.0100002 97.3499985 0.906318 0.422597 1.0 +7633 1 1.72 14.1599999 21.2399998 95.5800019 0.765057 -0.643963 1.0 +7634 1 1.72 15.9300004 23.0100002 95.5800019 -0.608357 0.793664 1.0 +7635 1 1.72 15.9300004 21.2399998 97.3499985 0.765975 0.64287 1.0 +7636 1 1.72 14.1599999 23.0100002 97.3499985 0.00933545 0.999956 1.0 +7637 1 1.72 17.7000008 21.2399998 95.5800019 0.984736 0.174054 1.0 +7638 1 1.72 19.4699993 23.0100002 95.5800019 0.940895 -0.338699 1.0 +7639 1 1.72 19.4699993 21.2399998 97.3499985 0.86165 -0.507502 1.0 +7640 1 1.72 17.7000008 23.0100002 97.3499985 -0.876053 0.482216 1.0 +7641 1 1.72 21.2399998 21.2399998 95.5800019 -0.492639 -0.870234 1.0 +7642 1 1.72 23.0100002 23.0100002 95.5800019 0.840547 0.541738 1.0 +7643 1 1.72 23.0100002 21.2399998 97.3499985 -0.909339 0.416055 1.0 +7644 1 1.72 21.2399998 23.0100002 97.3499985 0.593004 -0.8052 1.0 +7645 1 1.72 24.7800007 21.2399998 95.5800019 0.634651 0.772799 1.0 +7646 1 1.72 26.5499993 23.0100002 95.5800019 -0.681041 0.732245 1.0 +7647 1 1.72 26.5499993 21.2399998 97.3499985 0.660676 0.750671 1.0 +7648 1 1.72 24.7800007 23.0100002 97.3499985 -0.982181 0.18794 1.0 +7649 1 1.72 0.0 24.7800007 95.5800019 0.863674 -0.504051 1.0 +7650 1 1.72 1.77 26.5499993 95.5800019 0.929522 -0.368768 1.0 +7651 1 1.72 1.77 24.7800007 97.3499985 0.958515 -0.285042 1.0 +7652 1 1.72 0.0 26.5499993 97.3499985 0.626965 0.779048 1.0 +7653 1 1.72 3.54 24.7800007 95.5800019 -0.315379 0.948966 1.0 +7654 1 1.72 5.31 26.5499993 95.5800019 -0.414121 -0.910222 1.0 +7655 1 1.72 5.31 24.7800007 97.3499985 -0.857974 0.513694 1.0 +7656 1 1.72 3.54 26.5499993 97.3499985 0.642573 0.766225 1.0 +7657 1 1.72 7.0799999 24.7800007 95.5800019 0.771993 0.635631 1.0 +7658 1 1.72 8.8500004 26.5499993 95.5800019 -0.861434 0.507869 1.0 +7659 1 1.72 8.8500004 24.7800007 97.3499985 -0.683643 0.729817 1.0 +7660 1 1.72 7.0799999 26.5499993 97.3499985 -0.281866 0.959454 1.0 +7661 1 1.72 10.6199999 24.7800007 95.5800019 -0.93135 -0.364124 1.0 +7662 1 1.72 12.3900004 26.5499993 95.5800019 -0.480964 0.87674 1.0 +7663 1 1.72 12.3900004 24.7800007 97.3499985 -0.434018 0.900904 1.0 +7664 1 1.72 10.6199999 26.5499993 97.3499985 0.749863 -0.661593 1.0 +7665 1 1.72 14.1599999 24.7800007 95.5800019 0.603805 -0.797132 1.0 +7666 1 1.72 15.9300004 26.5499993 95.5800019 -0.910161 -0.414254 1.0 +7667 1 1.72 15.9300004 24.7800007 97.3499985 0.933647 -0.358194 1.0 +7668 1 1.72 14.1599999 26.5499993 97.3499985 0.586524 0.809932 1.0 +7669 1 1.72 17.7000008 24.7800007 95.5800019 -0.994473 -0.104989 1.0 +7670 1 1.72 19.4699993 26.5499993 95.5800019 0.816024 -0.578019 1.0 +7671 1 1.72 19.4699993 24.7800007 97.3499985 -0.248395 0.968659 1.0 +7672 1 1.72 17.7000008 26.5499993 97.3499985 -0.851779 0.523902 1.0 +7673 1 1.72 21.2399998 24.7800007 95.5800019 0.33512 -0.942175 1.0 +7674 1 1.72 23.0100002 26.5499993 95.5800019 0.967319 -0.253563 1.0 +7675 1 1.72 23.0100002 24.7800007 97.3499985 0.568616 0.822603 1.0 +7676 1 1.72 21.2399998 26.5499993 97.3499985 -0.989246 -0.146261 1.0 +7677 1 1.72 24.7800007 24.7800007 95.5800019 -0.515552 -0.856858 1.0 +7678 1 1.72 26.5499993 26.5499993 95.5800019 0.359802 -0.933029 1.0 +7679 1 1.72 26.5499993 24.7800007 97.3499985 0.122087 0.992519 1.0 +7680 1 1.72 24.7800007 26.5499993 97.3499985 0.948266 0.317476 1.0 +7681 1 1.72 0.0 14.1599999 99.1200028 -0.0957775 -0.995403 1.0 +7682 1 1.72 1.77 15.9300004 99.1200028 0.811706 -0.584066 1.0 +7683 1 1.72 1.77 14.1599999 100.8899994 -0.336287 0.94176 1.0 +7684 1 1.72 0.0 15.9300004 100.8899994 -0.309953 -0.950752 1.0 +7685 1 1.72 3.54 14.1599999 99.1200028 -0.577122 -0.816658 1.0 +7686 1 1.72 5.31 15.9300004 99.1200028 -0.923779 0.382927 1.0 +7687 1 1.72 5.31 14.1599999 100.8899994 0.981176 -0.193118 1.0 +7688 1 1.72 3.54 15.9300004 100.8899994 0.920536 0.390658 1.0 +7689 1 1.72 7.0799999 14.1599999 99.1200028 0.95175 0.306876 1.0 +7690 1 1.72 8.8500004 15.9300004 99.1200028 0.947237 0.320535 1.0 +7691 1 1.72 8.8500004 14.1599999 100.8899994 0.184989 0.982741 1.0 +7692 1 1.72 7.0799999 15.9300004 100.8899994 -0.71109 0.703101 1.0 +7693 1 1.72 10.6199999 14.1599999 99.1200028 -0.94206 -0.335444 1.0 +7694 1 1.72 12.3900004 15.9300004 99.1200028 -0.862398 -0.506231 1.0 +7695 1 1.72 12.3900004 14.1599999 100.8899994 -0.704298 0.709905 1.0 +7696 1 1.72 10.6199999 15.9300004 100.8899994 0.663923 0.747801 1.0 +7697 1 1.72 14.1599999 14.1599999 99.1200028 0.742838 -0.669471 1.0 +7698 1 1.72 15.9300004 15.9300004 99.1200028 -0.594731 -0.803925 1.0 +7699 1 1.72 15.9300004 14.1599999 100.8899994 -0.457786 0.889063 1.0 +7700 1 1.72 14.1599999 15.9300004 100.8899994 -0.925244 -0.379372 1.0 +7701 1 1.72 17.7000008 14.1599999 99.1200028 0.831863 -0.554982 1.0 +7702 1 1.72 19.4699993 15.9300004 99.1200028 0.551025 0.834489 1.0 +7703 1 1.72 19.4699993 14.1599999 100.8899994 -0.946635 -0.322307 1.0 +7704 1 1.72 17.7000008 15.9300004 100.8899994 0.682709 -0.730691 1.0 +7705 1 1.72 21.2399998 14.1599999 99.1200028 0.999953 -0.00970487 1.0 +7706 1 1.72 23.0100002 15.9300004 99.1200028 -0.854577 -0.519325 1.0 +7707 1 1.72 23.0100002 14.1599999 100.8899994 0.603128 -0.797645 1.0 +7708 1 1.72 21.2399998 15.9300004 100.8899994 -0.608551 0.793515 1.0 +7709 1 1.72 24.7800007 14.1599999 99.1200028 0.099631 -0.995024 1.0 +7710 1 1.72 26.5499993 15.9300004 99.1200028 0.651863 0.758337 1.0 +7711 1 1.72 26.5499993 14.1599999 100.8899994 -0.852916 -0.522048 1.0 +7712 1 1.72 24.7800007 15.9300004 100.8899994 -0.723631 0.690187 1.0 +7713 1 1.72 0.0 17.7000008 99.1200028 0.524246 -0.851567 1.0 +7714 1 1.72 1.77 19.4699993 99.1200028 0.663206 0.748437 1.0 +7715 1 1.72 1.77 17.7000008 100.8899994 -0.78621 0.61796 1.0 +7716 1 1.72 0.0 19.4699993 100.8899994 0.989224 -0.146413 1.0 +7717 1 1.72 3.54 17.7000008 99.1200028 0.841443 -0.540346 1.0 +7718 1 1.72 5.31 19.4699993 99.1200028 0.609713 0.792622 1.0 +7719 1 1.72 5.31 17.7000008 100.8899994 0.929941 0.367709 1.0 +7720 1 1.72 3.54 19.4699993 100.8899994 0.908531 -0.417817 1.0 +7721 1 1.72 7.0799999 17.7000008 99.1200028 0.949676 -0.313234 1.0 +7722 1 1.72 8.8500004 19.4699993 99.1200028 -0.804524 0.593919 1.0 +7723 1 1.72 8.8500004 17.7000008 100.8899994 0.609752 -0.792592 1.0 +7724 1 1.72 7.0799999 19.4699993 100.8899994 -0.152461 0.988309 1.0 +7725 1 1.72 10.6199999 17.7000008 99.1200028 -0.998265 -0.0588744 1.0 +7726 1 1.72 12.3900004 19.4699993 99.1200028 -0.901615 -0.432539 1.0 +7727 1 1.72 12.3900004 17.7000008 100.8899994 -0.653334 -0.75707 1.0 +7728 1 1.72 10.6199999 19.4699993 100.8899994 -0.719882 -0.694096 1.0 +7729 1 1.72 14.1599999 17.7000008 99.1200028 -0.595691 0.803214 1.0 +7730 1 1.72 15.9300004 19.4699993 99.1200028 -0.978072 0.208267 1.0 +7731 1 1.72 15.9300004 17.7000008 100.8899994 -0.450174 -0.892941 1.0 +7732 1 1.72 14.1599999 19.4699993 100.8899994 0.7817 -0.623654 1.0 +7733 1 1.72 17.7000008 17.7000008 99.1200028 0.988782 -0.149364 1.0 +7734 1 1.72 19.4699993 19.4699993 99.1200028 -0.851692 -0.524043 1.0 +7735 1 1.72 19.4699993 17.7000008 100.8899994 -0.999946 0.0104333 1.0 +7736 1 1.72 17.7000008 19.4699993 100.8899994 0.510942 -0.859615 1.0 +7737 1 1.72 21.2399998 17.7000008 99.1200028 -0.483169 -0.875527 1.0 +7738 1 1.72 23.0100002 19.4699993 99.1200028 -0.899616 0.436682 1.0 +7739 1 1.72 23.0100002 17.7000008 100.8899994 0.66007 -0.751204 1.0 +7740 1 1.72 21.2399998 19.4699993 100.8899994 -0.352216 -0.935919 1.0 +7741 1 1.72 24.7800007 17.7000008 99.1200028 0.901703 -0.432356 1.0 +7742 1 1.72 26.5499993 19.4699993 99.1200028 -0.829201 -0.55895 1.0 +7743 1 1.72 26.5499993 17.7000008 100.8899994 0.867833 0.496856 1.0 +7744 1 1.72 24.7800007 19.4699993 100.8899994 0.583584 -0.812052 1.0 +7745 1 1.72 0.0 21.2399998 99.1200028 0.702777 0.71141 1.0 +7746 1 1.72 1.77 23.0100002 99.1200028 -0.866447 0.499269 1.0 +7747 1 1.72 1.77 21.2399998 100.8899994 0.963 -0.2695 1.0 +7748 1 1.72 0.0 23.0100002 100.8899994 -0.0966114 -0.995322 1.0 +7749 1 1.72 3.54 21.2399998 99.1200028 0.589259 -0.807944 1.0 +7750 1 1.72 5.31 23.0100002 99.1200028 0.984551 0.175098 1.0 +7751 1 1.72 5.31 21.2399998 100.8899994 -0.910449 -0.413621 1.0 +7752 1 1.72 3.54 23.0100002 100.8899994 0.741845 0.670571 1.0 +7753 1 1.72 7.0799999 21.2399998 99.1200028 -0.98907 -0.147449 1.0 +7754 1 1.72 8.8500004 23.0100002 99.1200028 -0.975402 0.220433 1.0 +7755 1 1.72 8.8500004 21.2399998 100.8899994 -0.990825 -0.135149 1.0 +7756 1 1.72 7.0799999 23.0100002 100.8899994 0.377269 -0.926104 1.0 +7757 1 1.72 10.6199999 21.2399998 99.1200028 -0.348817 0.937191 1.0 +7758 1 1.72 12.3900004 23.0100002 99.1200028 0.724858 -0.688898 1.0 +7759 1 1.72 12.3900004 21.2399998 100.8899994 -0.217413 0.97608 1.0 +7760 1 1.72 10.6199999 23.0100002 100.8899994 -0.670852 -0.741591 1.0 +7761 1 1.72 14.1599999 21.2399998 99.1200028 -0.56715 0.823614 1.0 +7762 1 1.72 15.9300004 23.0100002 99.1200028 -0.13955 -0.990215 1.0 +7763 1 1.72 15.9300004 21.2399998 100.8899994 0.468046 0.883704 1.0 +7764 1 1.72 14.1599999 23.0100002 100.8899994 -0.789191 0.614148 1.0 +7765 1 1.72 17.7000008 21.2399998 99.1200028 -0.275527 -0.961293 1.0 +7766 1 1.72 19.4699993 23.0100002 99.1200028 -0.849396 -0.527757 1.0 +7767 1 1.72 19.4699993 21.2399998 100.8899994 0.966551 0.256475 1.0 +7768 1 1.72 17.7000008 23.0100002 100.8899994 -0.630763 -0.775975 1.0 +7769 1 1.72 21.2399998 21.2399998 99.1200028 -0.381513 0.924363 1.0 +7770 1 1.72 23.0100002 23.0100002 99.1200028 0.985063 -0.172192 1.0 +7771 1 1.72 23.0100002 21.2399998 100.8899994 -0.27955 0.960131 1.0 +7772 1 1.72 21.2399998 23.0100002 100.8899994 0.794596 -0.607138 1.0 +7773 1 1.72 24.7800007 21.2399998 99.1200028 -0.634059 0.773284 1.0 +7774 1 1.72 26.5499993 23.0100002 99.1200028 -0.950907 -0.309478 1.0 +7775 1 1.72 26.5499993 21.2399998 100.8899994 0.728927 0.684591 1.0 +7776 1 1.72 24.7800007 23.0100002 100.8899994 -0.952419 -0.304792 1.0 +7777 1 1.72 0.0 24.7800007 99.1200028 -0.43233 -0.901716 1.0 +7778 1 1.72 1.77 26.5499993 99.1200028 0.997814 -0.066086 1.0 +7779 1 1.72 1.77 24.7800007 100.8899994 0.820411 -0.571774 1.0 +7780 1 1.72 0.0 26.5499993 100.8899994 0.771688 0.636002 1.0 +7781 1 1.72 3.54 24.7800007 99.1200028 -0.999512 0.0312212 1.0 +7782 1 1.72 5.31 26.5499993 99.1200028 0.830231 0.557419 1.0 +7783 1 1.72 5.31 24.7800007 100.8899994 -0.515911 -0.856642 1.0 +7784 1 1.72 3.54 26.5499993 100.8899994 -0.590436 0.807085 1.0 +7785 1 1.72 7.0799999 24.7800007 99.1200028 -0.728978 -0.684537 1.0 +7786 1 1.72 8.8500004 26.5499993 99.1200028 0.584767 -0.811202 1.0 +7787 1 1.72 8.8500004 24.7800007 100.8899994 -0.997406 -0.0719798 1.0 +7788 1 1.72 7.0799999 26.5499993 100.8899994 0.424111 0.90561 1.0 +7789 1 1.72 10.6199999 24.7800007 99.1200028 -0.92167 -0.387975 1.0 +7790 1 1.72 12.3900004 26.5499993 99.1200028 0.91551 0.402294 1.0 +7791 1 1.72 12.3900004 24.7800007 100.8899994 -0.442849 -0.896596 1.0 +7792 1 1.72 10.6199999 26.5499993 100.8899994 0.989553 -0.14417 1.0 +7793 1 1.72 14.1599999 24.7800007 99.1200028 0.0895189 -0.995985 1.0 +7794 1 1.72 15.9300004 26.5499993 99.1200028 0.396149 -0.918186 1.0 +7795 1 1.72 15.9300004 24.7800007 100.8899994 -0.177128 0.984188 1.0 +7796 1 1.72 14.1599999 26.5499993 100.8899994 -0.938494 -0.345297 1.0 +7797 1 1.72 17.7000008 24.7800007 99.1200028 0.793939 -0.607998 1.0 +7798 1 1.72 19.4699993 26.5499993 99.1200028 -0.94869 0.316207 1.0 +7799 1 1.72 19.4699993 24.7800007 100.8899994 -0.354765 -0.934956 1.0 +7800 1 1.72 17.7000008 26.5499993 100.8899994 0.879892 -0.475173 1.0 +7801 1 1.72 21.2399998 24.7800007 99.1200028 0.71091 -0.703283 1.0 +7802 1 1.72 23.0100002 26.5499993 99.1200028 -0.184636 -0.982807 1.0 +7803 1 1.72 23.0100002 24.7800007 100.8899994 0.746098 -0.665836 1.0 +7804 1 1.72 21.2399998 26.5499993 100.8899994 -0.971137 0.238522 1.0 +7805 1 1.72 24.7800007 24.7800007 99.1200028 -0.0449819 -0.998988 1.0 +7806 1 1.72 26.5499993 26.5499993 99.1200028 -0.724165 0.689627 1.0 +7807 1 1.72 26.5499993 24.7800007 100.8899994 0.548458 0.836178 1.0 +7808 1 1.72 24.7800007 26.5499993 100.8899994 -0.806404 -0.591365 1.0 +7809 1 1.72 0.0 14.1599999 102.6600037 0.718014 -0.696029 1.0 +7810 1 1.72 1.77 15.9300004 102.6600037 0.794305 -0.60752 1.0 +7811 1 1.72 1.77 14.1599999 104.4300003 0.165479 -0.986213 1.0 +7812 1 1.72 0.0 15.9300004 104.4300003 -0.886945 0.461875 1.0 +7813 1 1.72 3.54 14.1599999 102.6600037 0.993145 0.116892 1.0 +7814 1 1.72 5.31 15.9300004 102.6600037 0.713946 -0.700201 1.0 +7815 1 1.72 5.31 14.1599999 104.4300003 -0.53919 -0.842184 1.0 +7816 1 1.72 3.54 15.9300004 104.4300003 0.787143 0.61677 1.0 +7817 1 1.72 7.0799999 14.1599999 102.6600037 0.706052 0.70816 1.0 +7818 1 1.72 8.8500004 15.9300004 102.6600037 -0.237864 -0.971299 1.0 +7819 1 1.72 8.8500004 14.1599999 104.4300003 -0.826909 -0.562335 1.0 +7820 1 1.72 7.0799999 15.9300004 104.4300003 0.99781 0.0661425 1.0 +7821 1 1.72 10.6199999 14.1599999 102.6600037 -0.610356 -0.792127 1.0 +7822 1 1.72 12.3900004 15.9300004 102.6600037 -0.987539 -0.157375 1.0 +7823 1 1.72 12.3900004 14.1599999 104.4300003 0.991128 -0.132914 1.0 +7824 1 1.72 10.6199999 15.9300004 104.4300003 -0.750294 -0.661104 1.0 +7825 1 1.72 14.1599999 14.1599999 102.6600037 -0.774968 0.632001 1.0 +7826 1 1.72 15.9300004 15.9300004 102.6600037 0.980467 -0.196685 1.0 +7827 1 1.72 15.9300004 14.1599999 104.4300003 0.176406 0.984317 1.0 +7828 1 1.72 14.1599999 15.9300004 104.4300003 0.758483 0.651693 1.0 +7829 1 1.72 17.7000008 14.1599999 102.6600037 0.625002 -0.780623 1.0 +7830 1 1.72 19.4699993 15.9300004 102.6600037 -0.972812 0.231598 1.0 +7831 1 1.72 19.4699993 14.1599999 104.4300003 -0.701726 0.712447 1.0 +7832 1 1.72 17.7000008 15.9300004 104.4300003 -0.922879 0.38509 1.0 +7833 1 1.72 21.2399998 14.1599999 102.6600037 0.744751 0.667342 1.0 +7834 1 1.72 23.0100002 15.9300004 102.6600037 -0.0190369 0.999819 1.0 +7835 1 1.72 23.0100002 14.1599999 104.4300003 0.13808 0.990421 1.0 +7836 1 1.72 21.2399998 15.9300004 104.4300003 0.897872 0.440257 1.0 +7837 1 1.72 24.7800007 14.1599999 102.6600037 -0.718894 -0.695119 1.0 +7838 1 1.72 26.5499993 15.9300004 102.6600037 -0.947431 -0.319961 1.0 +7839 1 1.72 26.5499993 14.1599999 104.4300003 0.721178 -0.69275 1.0 +7840 1 1.72 24.7800007 15.9300004 104.4300003 0.981006 -0.193977 1.0 +7841 1 1.72 0.0 17.7000008 102.6600037 0.846051 0.533102 1.0 +7842 1 1.72 1.77 19.4699993 102.6600037 0.731512 0.681829 1.0 +7843 1 1.72 1.77 17.7000008 104.4300003 0.994268 -0.106913 1.0 +7844 1 1.72 0.0 19.4699993 104.4300003 0.320925 0.947105 1.0 +7845 1 1.72 3.54 17.7000008 102.6600037 -0.78876 0.614701 1.0 +7846 1 1.72 5.31 19.4699993 102.6600037 -0.710711 0.703484 1.0 +7847 1 1.72 5.31 17.7000008 104.4300003 -0.841895 -0.539641 1.0 +7848 1 1.72 3.54 19.4699993 104.4300003 0.985732 0.16832 1.0 +7849 1 1.72 7.0799999 17.7000008 102.6600037 -0.136398 0.990654 1.0 +7850 1 1.72 8.8500004 19.4699993 102.6600037 -0.637513 0.770439 1.0 +7851 1 1.72 8.8500004 17.7000008 104.4300003 0.203727 -0.979028 1.0 +7852 1 1.72 7.0799999 19.4699993 104.4300003 -0.998625 0.052421 1.0 +7853 1 1.72 10.6199999 17.7000008 102.6600037 0.996195 0.0871547 1.0 +7854 1 1.72 12.3900004 19.4699993 102.6600037 0.788239 -0.615369 1.0 +7855 1 1.72 12.3900004 17.7000008 104.4300003 0.728306 0.685252 1.0 +7856 1 1.72 10.6199999 19.4699993 104.4300003 -0.712032 -0.702147 1.0 +7857 1 1.72 14.1599999 17.7000008 102.6600037 0.743198 -0.669072 1.0 +7858 1 1.72 15.9300004 19.4699993 102.6600037 -0.787311 -0.616557 1.0 +7859 1 1.72 15.9300004 17.7000008 104.4300003 -0.988099 -0.153818 1.0 +7860 1 1.72 14.1599999 19.4699993 104.4300003 0.484532 -0.874773 1.0 +7861 1 1.72 17.7000008 17.7000008 102.6600037 -0.71714 0.696929 1.0 +7862 1 1.72 19.4699993 19.4699993 102.6600037 -0.564687 -0.825305 1.0 +7863 1 1.72 19.4699993 17.7000008 104.4300003 -0.995283 -0.097017 1.0 +7864 1 1.72 17.7000008 19.4699993 104.4300003 -0.314585 0.949229 1.0 +7865 1 1.72 21.2399998 17.7000008 102.6600037 -0.555112 0.831776 1.0 +7866 1 1.72 23.0100002 19.4699993 102.6600037 -0.77956 0.626328 1.0 +7867 1 1.72 23.0100002 17.7000008 104.4300003 -0.805024 -0.593243 1.0 +7868 1 1.72 21.2399998 19.4699993 104.4300003 -0.916152 0.400831 1.0 +7869 1 1.72 24.7800007 17.7000008 102.6600037 -0.901623 -0.432523 1.0 +7870 1 1.72 26.5499993 19.4699993 102.6600037 0.788648 -0.614846 1.0 +7871 1 1.72 26.5499993 17.7000008 104.4300003 -0.81442 0.580276 1.0 +7872 1 1.72 24.7800007 19.4699993 104.4300003 0.366785 0.930306 1.0 +7873 1 1.72 0.0 21.2399998 102.6600037 0.286258 0.958152 1.0 +7874 1 1.72 1.77 23.0100002 102.6600037 -0.397 0.917819 1.0 +7875 1 1.72 1.77 21.2399998 104.4300003 0.470152 0.882585 1.0 +7876 1 1.72 0.0 23.0100002 104.4300003 0.75033 0.661063 1.0 +7877 1 1.72 3.54 21.2399998 102.6600037 -0.974879 0.222736 1.0 +7878 1 1.72 5.31 23.0100002 102.6600037 0.182825 0.983145 1.0 +7879 1 1.72 5.31 21.2399998 104.4300003 -0.10059 -0.994928 1.0 +7880 1 1.72 3.54 23.0100002 104.4300003 0.996002 -0.0893334 1.0 +7881 1 1.72 7.0799999 21.2399998 102.6600037 -0.0181344 0.999836 1.0 +7882 1 1.72 8.8500004 23.0100002 102.6600037 0.914625 -0.404304 1.0 +7883 1 1.72 8.8500004 21.2399998 104.4300003 -0.631742 -0.775178 1.0 +7884 1 1.72 7.0799999 23.0100002 104.4300003 -0.864958 0.501844 1.0 +7885 1 1.72 10.6199999 21.2399998 102.6600037 0.937049 0.349198 1.0 +7886 1 1.72 12.3900004 23.0100002 102.6600037 -0.620684 -0.784061 1.0 +7887 1 1.72 12.3900004 21.2399998 104.4300003 -0.291821 -0.956473 1.0 +7888 1 1.72 10.6199999 23.0100002 104.4300003 -0.920865 0.389883 1.0 +7889 1 1.72 14.1599999 21.2399998 102.6600037 0.324832 0.945772 1.0 +7890 1 1.72 15.9300004 23.0100002 102.6600037 -0.998544 -0.0539416 1.0 +7891 1 1.72 15.9300004 21.2399998 104.4300003 0.999017 0.044321 1.0 +7892 1 1.72 14.1599999 23.0100002 104.4300003 -0.999064 -0.0432479 1.0 +7893 1 1.72 17.7000008 21.2399998 102.6600037 -0.383492 0.923544 1.0 +7894 1 1.72 19.4699993 23.0100002 102.6600037 0.447994 -0.894037 1.0 +7895 1 1.72 19.4699993 21.2399998 104.4300003 0.622643 0.782506 1.0 +7896 1 1.72 17.7000008 23.0100002 104.4300003 0.997361 -0.0726039 1.0 +7897 1 1.72 21.2399998 21.2399998 102.6600037 -0.969731 -0.244176 1.0 +7898 1 1.72 23.0100002 23.0100002 102.6600037 0.769501 -0.638646 1.0 +7899 1 1.72 23.0100002 21.2399998 104.4300003 0.713758 0.700393 1.0 +7900 1 1.72 21.2399998 23.0100002 104.4300003 0.98485 -0.173407 1.0 +7901 1 1.72 24.7800007 21.2399998 102.6600037 -0.783911 0.620874 1.0 +7902 1 1.72 26.5499993 23.0100002 102.6600037 -0.130812 0.991407 1.0 +7903 1 1.72 26.5499993 21.2399998 104.4300003 -0.551451 0.834208 1.0 +7904 1 1.72 24.7800007 23.0100002 104.4300003 -0.73884 0.673881 1.0 +7905 1 1.72 0.0 24.7800007 102.6600037 0.855567 -0.517693 1.0 +7906 1 1.72 1.77 26.5499993 102.6600037 -0.885878 -0.463917 1.0 +7907 1 1.72 1.77 24.7800007 104.4300003 -0.996933 0.0782605 1.0 +7908 1 1.72 0.0 26.5499993 104.4300003 0.324929 -0.945738 1.0 +7909 1 1.72 3.54 24.7800007 102.6600037 0.542386 0.840129 1.0 +7910 1 1.72 5.31 26.5499993 102.6600037 0.771751 0.635925 1.0 +7911 1 1.72 5.31 24.7800007 104.4300003 0.200902 -0.979611 1.0 +7912 1 1.72 3.54 26.5499993 104.4300003 -0.771677 -0.636015 1.0 +7913 1 1.72 7.0799999 24.7800007 102.6600037 -0.983876 0.178852 1.0 +7914 1 1.72 8.8500004 26.5499993 102.6600037 0.672745 -0.739874 1.0 +7915 1 1.72 8.8500004 24.7800007 104.4300003 -0.665648 -0.746266 1.0 +7916 1 1.72 7.0799999 26.5499993 104.4300003 0.967365 -0.253386 1.0 +7917 1 1.72 10.6199999 24.7800007 102.6600037 0.450059 -0.892999 1.0 +7918 1 1.72 12.3900004 26.5499993 102.6600037 0.597121 -0.802151 1.0 +7919 1 1.72 12.3900004 24.7800007 104.4300003 0.99982 0.018953 1.0 +7920 1 1.72 10.6199999 26.5499993 104.4300003 -0.829992 -0.557776 1.0 +7921 1 1.72 14.1599999 24.7800007 102.6600037 0.956629 -0.291309 1.0 +7922 1 1.72 15.9300004 26.5499993 102.6600037 -0.0692161 -0.997602 1.0 +7923 1 1.72 15.9300004 24.7800007 104.4300003 -0.81727 -0.576256 1.0 +7924 1 1.72 14.1599999 26.5499993 104.4300003 0.919649 -0.39274 1.0 +7925 1 1.72 17.7000008 24.7800007 102.6600037 0.182673 0.983174 1.0 +7926 1 1.72 19.4699993 26.5499993 102.6600037 0.636883 0.770961 1.0 +7927 1 1.72 19.4699993 24.7800007 104.4300003 0.363522 0.931586 1.0 +7928 1 1.72 17.7000008 26.5499993 104.4300003 0.999343 0.0362372 1.0 +7929 1 1.72 21.2399998 24.7800007 102.6600037 0.568441 0.822724 1.0 +7930 1 1.72 23.0100002 26.5499993 102.6600037 0.205118 -0.978737 1.0 +7931 1 1.72 23.0100002 24.7800007 104.4300003 0.835399 0.549644 1.0 +7932 1 1.72 21.2399998 26.5499993 104.4300003 -0.684916 0.728622 1.0 +7933 1 1.72 24.7800007 24.7800007 102.6600037 0.422102 0.906548 1.0 +7934 1 1.72 26.5499993 26.5499993 102.6600037 -0.350216 0.936669 1.0 +7935 1 1.72 26.5499993 24.7800007 104.4300003 0.0798424 0.996808 1.0 +7936 1 1.72 24.7800007 26.5499993 104.4300003 -0.846981 -0.531623 1.0 +7937 1 1.72 0.0 14.1599999 106.199997 0.0235058 0.999724 1.0 +7938 1 1.72 1.77 15.9300004 106.199997 -0.67301 -0.739633 1.0 +7939 1 1.72 1.77 14.1599999 107.9700012 -0.234939 -0.97201 1.0 +7940 1 1.72 0.0 15.9300004 107.9700012 0.997354 0.0727014 1.0 +7941 1 1.72 3.54 14.1599999 106.199997 -0.999858 0.0168258 1.0 +7942 1 1.72 5.31 15.9300004 106.199997 -0.342273 0.9396 1.0 +7943 1 1.72 5.31 14.1599999 107.9700012 -0.342701 0.939444 1.0 +7944 1 1.72 3.54 15.9300004 107.9700012 0.612049 -0.790819 1.0 +7945 1 1.72 7.0799999 14.1599999 106.199997 0.337695 -0.941256 1.0 +7946 1 1.72 8.8500004 15.9300004 106.199997 0.138222 0.990401 1.0 +7947 1 1.72 8.8500004 14.1599999 107.9700012 -0.998189 0.0601586 1.0 +7948 1 1.72 7.0799999 15.9300004 107.9700012 -0.120382 0.992728 1.0 +7949 1 1.72 10.6199999 14.1599999 106.199997 -0.269411 -0.963025 1.0 +7950 1 1.72 12.3900004 15.9300004 106.199997 0.0430112 0.999075 1.0 +7951 1 1.72 12.3900004 14.1599999 107.9700012 0.840409 -0.541953 1.0 +7952 1 1.72 10.6199999 15.9300004 107.9700012 -0.609328 -0.792918 1.0 +7953 1 1.72 14.1599999 14.1599999 106.199997 -0.883102 -0.469181 1.0 +7954 1 1.72 15.9300004 15.9300004 106.199997 -0.858513 -0.512791 1.0 +7955 1 1.72 15.9300004 14.1599999 107.9700012 0.973326 -0.229426 1.0 +7956 1 1.72 14.1599999 15.9300004 107.9700012 -0.180664 -0.983545 1.0 +7957 1 1.72 17.7000008 14.1599999 106.199997 -0.138677 -0.990338 1.0 +7958 1 1.72 19.4699993 15.9300004 106.199997 0.983145 0.182825 1.0 +7959 1 1.72 19.4699993 14.1599999 107.9700012 0.211545 -0.977368 1.0 +7960 1 1.72 17.7000008 15.9300004 107.9700012 -0.502641 0.864495 1.0 +7961 1 1.72 21.2399998 14.1599999 106.199997 0.224991 0.974361 1.0 +7962 1 1.72 23.0100002 15.9300004 106.199997 0.93058 0.366088 1.0 +7963 1 1.72 23.0100002 14.1599999 107.9700012 0.307645 -0.951501 1.0 +7964 1 1.72 21.2399998 15.9300004 107.9700012 -0.749363 0.662159 1.0 +7965 1 1.72 24.7800007 14.1599999 106.199997 0.893633 -0.448799 1.0 +7966 1 1.72 26.5499993 15.9300004 106.199997 -0.560742 -0.827991 1.0 +7967 1 1.72 26.5499993 14.1599999 107.9700012 0.794338 0.607476 1.0 +7968 1 1.72 24.7800007 15.9300004 107.9700012 -0.295801 -0.955249 1.0 +7969 1 1.72 0.0 17.7000008 106.199997 -0.59001 -0.807396 1.0 +7970 1 1.72 1.77 19.4699993 106.199997 -0.875886 -0.482518 1.0 +7971 1 1.72 1.77 17.7000008 107.9700012 -0.832003 0.554771 1.0 +7972 1 1.72 0.0 19.4699993 107.9700012 -0.406725 -0.913551 1.0 +7973 1 1.72 3.54 17.7000008 106.199997 0.721355 -0.692566 1.0 +7974 1 1.72 5.31 19.4699993 106.199997 0.0305422 0.999533 1.0 +7975 1 1.72 5.31 17.7000008 107.9700012 -0.0795884 -0.996828 1.0 +7976 1 1.72 3.54 19.4699993 107.9700012 0.0140007 -0.999902 1.0 +7977 1 1.72 7.0799999 17.7000008 106.199997 -0.94189 0.335921 1.0 +7978 1 1.72 8.8500004 19.4699993 106.199997 0.524096 0.851659 1.0 +7979 1 1.72 8.8500004 17.7000008 107.9700012 0.855792 0.51732 1.0 +7980 1 1.72 7.0799999 19.4699993 107.9700012 0.746658 -0.665208 1.0 +7981 1 1.72 10.6199999 17.7000008 106.199997 0.784228 -0.620473 1.0 +7982 1 1.72 12.3900004 19.4699993 106.199997 -0.907146 0.420817 1.0 +7983 1 1.72 12.3900004 17.7000008 107.9700012 -0.954707 0.297549 1.0 +7984 1 1.72 10.6199999 19.4699993 107.9700012 0.226297 -0.974058 1.0 +7985 1 1.72 14.1599999 17.7000008 106.199997 -0.91913 0.393955 1.0 +7986 1 1.72 15.9300004 19.4699993 106.199997 -0.998259 -0.0589852 1.0 +7987 1 1.72 15.9300004 17.7000008 107.9700012 -0.749372 -0.662149 1.0 +7988 1 1.72 14.1599999 19.4699993 107.9700012 -0.586105 -0.810235 1.0 +7989 1 1.72 17.7000008 17.7000008 106.199997 0.818487 -0.574525 1.0 +7990 1 1.72 19.4699993 19.4699993 106.199997 0.131836 0.991272 1.0 +7991 1 1.72 19.4699993 17.7000008 107.9700012 -0.456832 0.889553 1.0 +7992 1 1.72 17.7000008 19.4699993 107.9700012 -0.194103 -0.980981 1.0 +7993 1 1.72 21.2399998 17.7000008 106.199997 -0.0928376 0.995681 1.0 +7994 1 1.72 23.0100002 19.4699993 106.199997 -0.796606 -0.604498 1.0 +7995 1 1.72 23.0100002 17.7000008 107.9700012 -0.951358 -0.308086 1.0 +7996 1 1.72 21.2399998 19.4699993 107.9700012 0.794297 -0.60753 1.0 +7997 1 1.72 24.7800007 17.7000008 106.199997 0.970816 -0.239828 1.0 +7998 1 1.72 26.5499993 19.4699993 106.199997 -0.697499 -0.716586 1.0 +7999 1 1.72 26.5499993 17.7000008 107.9700012 0.630414 -0.776259 1.0 +8000 1 1.72 24.7800007 19.4699993 107.9700012 -0.414321 0.910131 1.0 +8001 1 1.72 0.0 21.2399998 106.199997 0.367314 0.930097 1.0 +8002 1 1.72 1.77 23.0100002 106.199997 0.929855 -0.367926 1.0 +8003 1 1.72 1.77 21.2399998 107.9700012 0.399758 -0.916621 1.0 +8004 1 1.72 0.0 23.0100002 107.9700012 0.950228 -0.311555 1.0 +8005 1 1.72 3.54 21.2399998 106.199997 0.542333 0.840164 1.0 +8006 1 1.72 5.31 23.0100002 106.199997 0.645661 -0.763624 1.0 +8007 1 1.72 5.31 21.2399998 107.9700012 0.685041 -0.728504 1.0 +8008 1 1.72 3.54 23.0100002 107.9700012 0.856821 0.515613 1.0 +8009 1 1.72 7.0799999 21.2399998 106.199997 -0.759673 0.650305 1.0 +8010 1 1.72 8.8500004 23.0100002 106.199997 -0.980243 0.197796 1.0 +8011 1 1.72 8.8500004 21.2399998 107.9700012 0.194678 -0.980867 1.0 +8012 1 1.72 7.0799999 23.0100002 107.9700012 0.593868 0.804563 1.0 +8013 1 1.72 10.6199999 21.2399998 106.199997 0.1006 -0.994927 1.0 +8014 1 1.72 12.3900004 23.0100002 106.199997 -0.730997 0.68238 1.0 +8015 1 1.72 12.3900004 21.2399998 107.9700012 0.996593 0.0824784 1.0 +8016 1 1.72 10.6199999 23.0100002 107.9700012 -0.289244 0.957255 1.0 +8017 1 1.72 14.1599999 21.2399998 106.199997 0.978422 -0.206617 1.0 +8018 1 1.72 15.9300004 23.0100002 106.199997 0.858283 0.513177 1.0 +8019 1 1.72 15.9300004 21.2399998 107.9700012 -0.817296 -0.576219 1.0 +8020 1 1.72 14.1599999 23.0100002 107.9700012 0.254198 0.967152 1.0 +8021 1 1.72 17.7000008 21.2399998 106.199997 -0.525053 -0.851069 1.0 +8022 1 1.72 19.4699993 23.0100002 106.199997 0.880454 -0.474132 1.0 +8023 1 1.72 19.4699993 21.2399998 107.9700012 -0.95547 -0.295088 1.0 +8024 1 1.72 17.7000008 23.0100002 107.9700012 -0.995394 0.0958685 1.0 +8025 1 1.72 21.2399998 21.2399998 106.199997 0.294309 -0.95571 1.0 +8026 1 1.72 23.0100002 23.0100002 106.199997 0.999976 0.00686959 1.0 +8027 1 1.72 23.0100002 21.2399998 107.9700012 0.964871 -0.262724 1.0 +8028 1 1.72 21.2399998 23.0100002 107.9700012 -0.93148 0.363794 1.0 +8029 1 1.72 24.7800007 21.2399998 106.199997 0.538866 0.842391 1.0 +8030 1 1.72 26.5499993 23.0100002 106.199997 -0.806887 0.590706 1.0 +8031 1 1.72 26.5499993 21.2399998 107.9700012 0.790491 0.612474 1.0 +8032 1 1.72 24.7800007 23.0100002 107.9700012 0.664179 0.747574 1.0 +8033 1 1.72 0.0 24.7800007 106.199997 0.999409 -0.0343895 1.0 +8034 1 1.72 1.77 26.5499993 106.199997 -0.762063 -0.647503 1.0 +8035 1 1.72 1.77 24.7800007 107.9700012 0.549304 -0.835623 1.0 +8036 1 1.72 0.0 26.5499993 107.9700012 0.496016 -0.868313 1.0 +8037 1 1.72 3.54 24.7800007 106.199997 -0.583021 0.812457 1.0 +8038 1 1.72 5.31 26.5499993 106.199997 0.922664 0.385605 1.0 +8039 1 1.72 5.31 24.7800007 107.9700012 0.751487 -0.659747 1.0 +8040 1 1.72 3.54 26.5499993 107.9700012 0.131462 -0.991321 1.0 +8041 1 1.72 7.0799999 24.7800007 106.199997 -0.489419 -0.872049 1.0 +8042 1 1.72 8.8500004 26.5499993 106.199997 0.342979 0.939343 1.0 +8043 1 1.72 8.8500004 24.7800007 107.9700012 -0.462518 0.88661 1.0 +8044 1 1.72 7.0799999 26.5499993 107.9700012 -0.999893 0.0146542 1.0 +8045 1 1.72 10.6199999 24.7800007 106.199997 -0.522321 -0.852749 1.0 +8046 1 1.72 12.3900004 26.5499993 106.199997 0.596773 0.80241 1.0 +8047 1 1.72 12.3900004 24.7800007 107.9700012 0.560211 -0.82835 1.0 +8048 1 1.72 10.6199999 26.5499993 107.9700012 0.792026 -0.610487 1.0 +8049 1 1.72 14.1599999 24.7800007 106.199997 0.362454 -0.932002 1.0 +8050 1 1.72 15.9300004 26.5499993 106.199997 0.964069 0.265653 1.0 +8051 1 1.72 15.9300004 24.7800007 107.9700012 0.939727 0.341925 1.0 +8052 1 1.72 14.1599999 26.5499993 107.9700012 0.874482 -0.485058 1.0 +8053 1 1.72 17.7000008 24.7800007 106.199997 -0.965123 -0.261795 1.0 +8054 1 1.72 19.4699993 26.5499993 106.199997 -0.998076 0.0620007 1.0 +8055 1 1.72 19.4699993 24.7800007 107.9700012 -0.3918 -0.920051 1.0 +8056 1 1.72 17.7000008 26.5499993 107.9700012 0.638895 -0.769294 1.0 +8057 1 1.72 21.2399998 24.7800007 106.199997 -0.253481 -0.96734 1.0 +8058 1 1.72 23.0100002 26.5499993 106.199997 0.99744 -0.0715016 1.0 +8059 1 1.72 23.0100002 24.7800007 107.9700012 -0.772384 -0.635156 1.0 +8060 1 1.72 21.2399998 26.5499993 107.9700012 0.998532 -0.0541581 1.0 +8061 1 1.72 24.7800007 24.7800007 106.199997 -0.996903 0.0786397 1.0 +8062 1 1.72 26.5499993 26.5499993 106.199997 -0.228243 -0.973604 1.0 +8063 1 1.72 26.5499993 24.7800007 107.9700012 0.937775 0.347244 1.0 +8064 1 1.72 24.7800007 26.5499993 107.9700012 0.763881 0.645357 1.0 +8065 1 1.72 0.0 14.1599999 109.7399979 -0.999997 0.00262531 1.0 +8066 1 1.72 1.77 15.9300004 109.7399979 -0.997339 -0.0729054 1.0 +8067 1 1.72 1.77 14.1599999 111.5100022 0.248085 0.968738 1.0 +8068 1 1.72 0.0 15.9300004 111.5100022 0.942297 -0.334778 1.0 +8069 1 1.72 3.54 14.1599999 109.7399979 -0.99867 0.0515492 1.0 +8070 1 1.72 5.31 15.9300004 109.7399979 -0.0854102 0.996346 1.0 +8071 1 1.72 5.31 14.1599999 111.5100022 -0.677764 -0.73528 1.0 +8072 1 1.72 3.54 15.9300004 111.5100022 -0.774162 0.632988 1.0 +8073 1 1.72 7.0799999 14.1599999 109.7399979 -0.880261 0.47449 1.0 +8074 1 1.72 8.8500004 15.9300004 109.7399979 0.583813 -0.811888 1.0 +8075 1 1.72 8.8500004 14.1599999 111.5100022 -0.85971 -0.510782 1.0 +8076 1 1.72 7.0799999 15.9300004 111.5100022 0.340665 0.940185 1.0 +8077 1 1.72 10.6199999 14.1599999 109.7399979 -0.955138 0.296162 1.0 +8078 1 1.72 12.3900004 15.9300004 109.7399979 -0.866352 0.499434 1.0 +8079 1 1.72 12.3900004 14.1599999 111.5100022 -0.995464 -0.0951342 1.0 +8080 1 1.72 10.6199999 15.9300004 111.5100022 0.471157 -0.882049 1.0 +8081 1 1.72 14.1599999 14.1599999 109.7399979 -0.700944 -0.713216 1.0 +8082 1 1.72 15.9300004 15.9300004 109.7399979 0.982164 -0.188026 1.0 +8083 1 1.72 15.9300004 14.1599999 111.5100022 0.661595 -0.749862 1.0 +8084 1 1.72 14.1599999 15.9300004 111.5100022 0.894789 0.446489 1.0 +8085 1 1.72 17.7000008 14.1599999 109.7399979 -0.59649 0.802621 1.0 +8086 1 1.72 19.4699993 15.9300004 109.7399979 0.945592 -0.325356 1.0 +8087 1 1.72 19.4699993 14.1599999 111.5100022 0.237079 -0.97149 1.0 +8088 1 1.72 17.7000008 15.9300004 111.5100022 0.541095 -0.840961 1.0 +8089 1 1.72 21.2399998 14.1599999 109.7399979 0.547786 0.836619 1.0 +8090 1 1.72 23.0100002 15.9300004 109.7399979 -0.810246 0.58609 1.0 +8091 1 1.72 23.0100002 14.1599999 111.5100022 -0.0396045 -0.999215 1.0 +8092 1 1.72 21.2399998 15.9300004 111.5100022 0.999244 0.0388725 1.0 +8093 1 1.72 24.7800007 14.1599999 109.7399979 -0.995393 -0.0958841 1.0 +8094 1 1.72 26.5499993 15.9300004 109.7399979 0.707666 -0.706547 1.0 +8095 1 1.72 26.5499993 14.1599999 111.5100022 -0.857797 0.513989 1.0 +8096 1 1.72 24.7800007 15.9300004 111.5100022 0.688346 0.725383 1.0 +8097 1 1.72 0.0 17.7000008 109.7399979 0.453695 0.891157 1.0 +8098 1 1.72 1.77 19.4699993 109.7399979 -0.869991 0.493068 1.0 +8099 1 1.72 1.77 17.7000008 111.5100022 -0.828945 0.55933 1.0 +8100 1 1.72 0.0 19.4699993 111.5100022 -0.578312 -0.815815 1.0 +8101 1 1.72 3.54 17.7000008 109.7399979 -0.474111 -0.880465 1.0 +8102 1 1.72 5.31 19.4699993 109.7399979 -0.953145 0.302515 1.0 +8103 1 1.72 5.31 17.7000008 111.5100022 -0.662482 0.749078 1.0 +8104 1 1.72 3.54 19.4699993 111.5100022 -0.673709 0.738997 1.0 +8105 1 1.72 7.0799999 17.7000008 109.7399979 0.703708 0.71049 1.0 +8106 1 1.72 8.8500004 19.4699993 109.7399979 -0.962777 0.270298 1.0 +8107 1 1.72 8.8500004 17.7000008 111.5100022 -0.409325 0.912389 1.0 +8108 1 1.72 7.0799999 19.4699993 111.5100022 0.992278 0.12403 1.0 +8109 1 1.72 10.6199999 17.7000008 109.7399979 -0.256869 -0.966446 1.0 +8110 1 1.72 12.3900004 19.4699993 109.7399979 -0.81811 0.575062 1.0 +8111 1 1.72 12.3900004 17.7000008 111.5100022 0.944442 -0.328678 1.0 +8112 1 1.72 10.6199999 19.4699993 111.5100022 -0.790776 0.612106 1.0 +8113 1 1.72 14.1599999 17.7000008 109.7399979 0.99885 0.047945 1.0 +8114 1 1.72 15.9300004 19.4699993 109.7399979 -0.75767 0.652638 1.0 +8115 1 1.72 15.9300004 17.7000008 111.5100022 0.104479 -0.994527 1.0 +8116 1 1.72 14.1599999 19.4699993 111.5100022 -0.366155 -0.930554 1.0 +8117 1 1.72 17.7000008 17.7000008 109.7399979 -0.100712 0.994916 1.0 +8118 1 1.72 19.4699993 19.4699993 109.7399979 0.20119 -0.979552 1.0 +8119 1 1.72 19.4699993 17.7000008 111.5100022 0.7043 -0.709902 1.0 +8120 1 1.72 17.7000008 19.4699993 111.5100022 0.995221 -0.0976515 1.0 +8121 1 1.72 21.2399998 17.7000008 109.7399979 0.0913868 0.995815 1.0 +8122 1 1.72 23.0100002 19.4699993 109.7399979 -0.783334 0.6216 1.0 +8123 1 1.72 23.0100002 17.7000008 111.5100022 0.762993 0.646407 1.0 +8124 1 1.72 21.2399998 19.4699993 111.5100022 0.969106 -0.246644 1.0 +8125 1 1.72 24.7800007 17.7000008 109.7399979 -0.99318 -0.116594 1.0 +8126 1 1.72 26.5499993 19.4699993 109.7399979 0.751321 -0.659937 1.0 +8127 1 1.72 26.5499993 17.7000008 111.5100022 -0.41311 -0.910681 1.0 +8128 1 1.72 24.7800007 19.4699993 111.5100022 -0.231533 0.972827 1.0 +8129 1 1.72 0.0 21.2399998 109.7399979 -0.638342 -0.769753 1.0 +8130 1 1.72 1.77 23.0100002 109.7399979 -0.358386 -0.933574 1.0 +8131 1 1.72 1.77 21.2399998 111.5100022 0.0433983 -0.999058 1.0 +8132 1 1.72 0.0 23.0100002 111.5100022 -0.986115 -0.166067 1.0 +8133 1 1.72 3.54 21.2399998 109.7399979 0.996583 0.082601 1.0 +8134 1 1.72 5.31 23.0100002 109.7399979 -0.865815 0.500364 1.0 +8135 1 1.72 5.31 21.2399998 111.5100022 0.446465 0.894801 1.0 +8136 1 1.72 3.54 23.0100002 111.5100022 0.701589 -0.712582 1.0 +8137 1 1.72 7.0799999 21.2399998 109.7399979 0.994388 0.105798 1.0 +8138 1 1.72 8.8500004 23.0100002 109.7399979 0.779675 0.626184 1.0 +8139 1 1.72 8.8500004 21.2399998 111.5100022 -0.913378 0.407112 1.0 +8140 1 1.72 7.0799999 23.0100002 111.5100022 -0.974435 0.22467 1.0 +8141 1 1.72 10.6199999 21.2399998 109.7399979 0.0180628 0.999837 1.0 +8142 1 1.72 12.3900004 23.0100002 109.7399979 -0.393018 0.919531 1.0 +8143 1 1.72 12.3900004 21.2399998 111.5100022 0.171283 -0.985222 1.0 +8144 1 1.72 10.6199999 23.0100002 111.5100022 0.853928 0.520391 1.0 +8145 1 1.72 14.1599999 21.2399998 109.7399979 -0.893534 -0.448996 1.0 +8146 1 1.72 15.9300004 23.0100002 109.7399979 0.783901 0.620886 1.0 +8147 1 1.72 15.9300004 21.2399998 111.5100022 -0.636441 0.771326 1.0 +8148 1 1.72 14.1599999 23.0100002 111.5100022 -0.62653 0.779398 1.0 +8149 1 1.72 17.7000008 21.2399998 109.7399979 -0.426717 -0.904385 1.0 +8150 1 1.72 19.4699993 23.0100002 109.7399979 0.150477 -0.988614 1.0 +8151 1 1.72 19.4699993 21.2399998 111.5100022 0.993032 -0.117843 1.0 +8152 1 1.72 17.7000008 23.0100002 111.5100022 -0.858474 -0.512857 1.0 +8153 1 1.72 21.2399998 21.2399998 109.7399979 0.671527 -0.74098 1.0 +8154 1 1.72 23.0100002 23.0100002 109.7399979 0.724398 -0.689382 1.0 +8155 1 1.72 23.0100002 21.2399998 111.5100022 -0.533734 -0.845652 1.0 +8156 1 1.72 21.2399998 23.0100002 111.5100022 0.446337 0.894865 1.0 +8157 1 1.72 24.7800007 21.2399998 109.7399979 0.100506 -0.994936 1.0 +8158 1 1.72 26.5499993 23.0100002 109.7399979 0.663547 -0.748135 1.0 +8159 1 1.72 26.5499993 21.2399998 111.5100022 -0.838999 0.544134 1.0 +8160 1 1.72 24.7800007 23.0100002 111.5100022 -0.412355 -0.911023 1.0 +8161 1 1.72 0.0 24.7800007 109.7399979 -0.768577 -0.639757 1.0 +8162 1 1.72 1.77 26.5499993 109.7399979 0.876973 -0.480539 1.0 +8163 1 1.72 1.77 24.7800007 111.5100022 0.940988 0.33844 1.0 +8164 1 1.72 0.0 26.5499993 111.5100022 -0.739484 -0.673174 1.0 +8165 1 1.72 3.54 24.7800007 109.7399979 0.463964 0.885854 1.0 +8166 1 1.72 5.31 26.5499993 109.7399979 0.834599 0.550857 1.0 +8167 1 1.72 5.31 24.7800007 111.5100022 -0.414423 -0.910084 1.0 +8168 1 1.72 3.54 26.5499993 111.5100022 0.209991 0.977703 1.0 +8169 1 1.72 7.0799999 24.7800007 109.7399979 -0.200071 -0.979781 1.0 +8170 1 1.72 8.8500004 26.5499993 109.7399979 -0.593916 0.804527 1.0 +8171 1 1.72 8.8500004 24.7800007 111.5100022 -0.976341 -0.216238 1.0 +8172 1 1.72 7.0799999 26.5499993 111.5100022 0.892014 -0.452008 1.0 +8173 1 1.72 10.6199999 24.7800007 109.7399979 0.262541 0.964921 1.0 +8174 1 1.72 12.3900004 26.5499993 109.7399979 -0.541535 -0.840678 1.0 +8175 1 1.72 12.3900004 24.7800007 111.5100022 0.789328 0.613972 1.0 +8176 1 1.72 10.6199999 26.5499993 111.5100022 0.500046 0.865999 1.0 +8177 1 1.72 14.1599999 24.7800007 109.7399979 0.353277 0.935519 1.0 +8178 1 1.72 15.9300004 26.5499993 109.7399979 0.604788 0.796387 1.0 +8179 1 1.72 15.9300004 24.7800007 111.5100022 0.840508 -0.541799 1.0 +8180 1 1.72 14.1599999 26.5499993 111.5100022 0.296351 -0.955079 1.0 +8181 1 1.72 17.7000008 24.7800007 109.7399979 -0.957237 0.289304 1.0 +8182 1 1.72 19.4699993 26.5499993 109.7399979 0.344119 -0.938926 1.0 +8183 1 1.72 19.4699993 24.7800007 111.5100022 -0.989355 -0.145521 1.0 +8184 1 1.72 17.7000008 26.5499993 111.5100022 0.787109 0.616813 1.0 +8185 1 1.72 21.2399998 24.7800007 109.7399979 -0.321766 0.946819 1.0 +8186 1 1.72 23.0100002 26.5499993 109.7399979 -0.647284 -0.762249 1.0 +8187 1 1.72 23.0100002 24.7800007 111.5100022 -0.999094 0.0425548 1.0 +8188 1 1.72 21.2399998 26.5499993 111.5100022 -0.33438 0.942438 1.0 +8189 1 1.72 24.7800007 24.7800007 109.7399979 0.960667 -0.277704 1.0 +8190 1 1.72 26.5499993 26.5499993 109.7399979 0.822147 -0.569276 1.0 +8191 1 1.72 26.5499993 24.7800007 111.5100022 0.915832 -0.401561 1.0 +8192 1 1.72 24.7800007 26.5499993 111.5100022 -0.746316 -0.665592 1.0 diff --git a/examples/SPIN/in.spin.cobalt b/examples/SPIN/in.spin.cobalt index 8147aad5fc..cb64c65f5c 100644 --- a/examples/SPIN/in.spin.cobalt +++ b/examples/SPIN/in.spin.cobalt @@ -6,7 +6,7 @@ clear units metal dimension 3 boundary p p p -#boundary f f f +#boundary p p f #newton off @@ -48,39 +48,42 @@ velocity all create 200 4928459 rot yes dist gaussian #pair_style pair/spin/exchange 4.0 #pair_style eam/alloy #pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co #pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co -#pair_style pair/spin 4.0 +#pair_style pair/spin/exchange 4.0 #type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) #pair_coeff * * exchange 4.0 -0.0446928 0.003496 1.4885 #pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 -pair_coeff * * pair/spin/exchange exchange 4.0 -0.0446928 0.003496 1.4885 +#pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 #type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) #pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 #pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 #type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) -#pair_coeff * * pair/spin/soc/neel neel 4.0 -0.003330282 0.864159 2.13731 +#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 +pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 +#pair_coeff * * pair/spin/soc/neel neel 4.0 0.0 0.864159 2.13731 #Define a skin distance, update neigh list every -#neighbor 1.0 bin +#neighbor 0.1 bin #neigh_modify every 10 check yes delay 20 -neighbor 1.0 bin -neigh_modify every 1 check no delay 0 +neighbor 0.1 bin +neigh_modify every 1 check no delay 0 #Magnetic field fix #Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 +#fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 0.0 0.0 0.0 21 +#fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix fix 3 all integration/spin mpi @@ -105,16 +108,17 @@ variable magnorm equal c_out_mag[5] variable emag equal c_out_mag[6] variable tmag equal c_out_mag[7] variable mag_force equal f_1 +#variable test equal etotal-0.5*c_out_mag[6] thermo 10 #thermo_style custom step time v_emag c_out_pe c_out_ke c_out_temp v_mag_force v_magnorm v_tmag etotal -thermo_style custom step time v_tmag v_magz v_magnorm etotal +thermo_style custom step time v_magnorm v_emag v_tmag temp etotal thermo_modify format float %20.15g #Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 500 dump_VSRSV.lammpstrj type x y z spx spy spz +dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -#run 100 +#run 1 run 10000 diff --git a/examples/SPIN/in.spin.read_data b/examples/SPIN/in.spin.read_data new file mode 100644 index 0000000000..81d654ad5b --- /dev/null +++ b/examples/SPIN/in.spin.read_data @@ -0,0 +1,88 @@ +################### +#######Init######## +################### + +clear +units metal +dimension 3 +boundary p p p +#boundary f f f + +#setting atom_style to spin: +atom_style spin + +atom_modify map array + +########################### +#######Create atoms######## +########################### + +read_data ../examples/SPIN/Norm_randXY_8x8x32_test.data + +####################### +#######Settings######## +####################### + +#Setting one or more properties of one or more atoms. +mass 1 58.93 + +#velocity all create 200 4928459 rot yes dist gaussian + +#Magneto-mechanic interactions for bulk fcc Cobalt +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 + +# cobalt eam potential +pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co + +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 + +#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) +pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 + +#Define a skin distance, update neigh list every +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 + +#Magnetic field fix +#Type | Intensity (T or eV) | Direction +fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 + +#Fix Langevin spins (merging damping and temperature) +#Temp | Alpha_trans | Alpha_long | Seed +fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all integration/spin serial + +#Setting the timestep for the simulation (in ps) +timestep 0.0001 + +################## +#######run######## +################## + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[4] +variable magnorm equal c_out_mag[5] +variable emag equal c_out_mag[6] +variable tmag equal c_out_mag[7] +variable mag_force equal f_1 + +thermo 10 +thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo_modify format float %20.15g + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 1 dump.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +run 10 +#run 10000 + diff --git a/examples/SPIN/in.spin.restart b/examples/SPIN/in.spin.restart new file mode 100644 index 0000000000..bd9e0716e9 --- /dev/null +++ b/examples/SPIN/in.spin.restart @@ -0,0 +1,109 @@ +################### +#######Init######## +################### + +clear +units metal +dimension 3 +boundary p p p +#boundary f f f + +#newton off + +#setting atom_style to spin: +atom_style spin + +#Define sort for paramagnetic simulations (if no pair interaction) +#atom_modify sort 1000 4.0 + +atom_modify map array + +########################### +#######Create atoms######## +########################### + +lattice fcc 3.54 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +#create_atoms 1 box + +#read_dump dump_cobalt.lammpstrj 500 x y z vx vy vz box yes +read_dump ../examples/SPIN/Norm_randXY_8x8x32.dump 0 x y z box yes + +create_atoms 1 box + +####################### +#######Settings######## +####################### + +#isolating 1 atom into a group +group single_spin id 10 + +#Setting one or more properties of one or more atoms. +mass 1 58.93 + +#Setting spins orientation and moment +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 +set group single_spin spin/random 11 1.72 + +velocity all create 200 4928459 rot yes dist gaussian + +#Magneto-mechanic interactions for bulk fcc Cobalt +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 + +# cobalt eam potential +pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co + +#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 + +#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) +pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 + +#Define a skin distance, update neigh list every +#neighbor 1.0 bin +#neigh_modify every 10 check yes delay 20 +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 + +#Magnetic field fix +#Type | Intensity (T or eV) | Direction +fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 + +#Fix Langevin spins (merging damping and temperature) +#Temp | Alpha_trans | Alpha_long | Seed +fix 2 all langevin/spin 0.0 0.0 0.0 21 + +#Magnetic integration fix +fix 3 all integration/spin serial + +#Setting the timestep for the simulation (in ps) +timestep 0.0001 + +################## +#######run######## +################## + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[4] +variable magnorm equal c_out_mag[5] +variable emag equal c_out_mag[6] +variable tmag equal c_out_mag[7] +variable mag_force equal f_1 + +thermo 10 +thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo_modify format float %20.15g + +#Dump the positions and spin directions of magnetic particles (vmd format) +dump 1 all custom 20 dump.lammpstrj type x y z spx spy spz + +#Running the simulations for N timesteps +run 100 +#run 10000 + diff --git a/examples/SPIN/vmd_nano.vmd b/examples/SPIN/vmd_nano.vmd new file mode 100644 index 0000000000..f9e3454270 --- /dev/null +++ b/examples/SPIN/vmd_nano.vmd @@ -0,0 +1,79 @@ +proc vmd_draw_arrow {mol start end} { + set middle [vecadd $start [vecscale 0.9 [vecsub $end $start]]] + graphics $mol cylinder $start $middle radius 0.05 + graphics $mol cone $middle $end radius 0.01 color 3 +} + +proc vmd_draw_vector {args} { + set usage {"draw vector {x1 y1 z1} {x2 y2 z2} [scale ] [resolution ] [radius ] [filled ]"} + # defaults + set scale 2.0 + set res 50 + set radius 0.1 + set filled yes + + if {[llength $args] < 3} { + error "wrong # args: should be $usage" + } + set mol [lindex $args 0] + set center [lindex $args 1] + set vector [lindex $args 2] + if {[llength $center] != 3 || [llength $vector] != 3} { + error "wrong type of args: should be $usage" + } + + foreach {flag value} [lrange $args 3 end] { + switch -glob $flag { + scale {set scale $value} + res* {set res $value} + rad* {set radius $value} + fill* {set filled $value} + default {error "unknown option '$flag': should be $usage" } + } + } + + set vechalf [vecscale [expr $scale * 0.5] $vector] + return [list \ + [graphics $mol color yellow]\ + [graphics $mol cylinder [vecsub $center $vechalf]\ + [vecadd $center [vecscale 0.7 $vechalf]] \ + radius $radius resolution $res filled $filled] \ + [graphics $mol color orange]\ + [graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \ + [vecadd $center $vechalf] radius [expr $radius * 2.5] \ + resolution $res]] +} + +proc vmd_draw_spin {args} { + global molid + graphics $molid delete all + set frame [molinfo $molid get frame] + set natoms [molinfo $molid get numatoms] + for {set i 0} {$i < $natoms} {incr i} { + set sel [atomselect top "index $i"] +# set sel [atomselect top "index 1200"] + set coords [lindex [$sel get {x y z}] $molid] + set velocities [lindex [$sel get {vx vy vz}] $molid] + draw vector $coords $velocities + set uvx [lindex [$sel get {vx}] $molid] + set uvy [lindex [$sel get {vy}] $molid] + set uvz [lindex [$sel get {vz}] $molid] + $sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]] + $sel set user $uvy + #draw vector $coords {0.0 uvy 0.0} + } + #pbc box -color 3 +} + +proc enable_trace {} { + global vmd_frame + trace variable vmd_frame([molinfo top]) w vmd_draw_spin + } + +set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] +scale by 0.5 +animate style Loop +enable_trace + + + diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 8edf8211ca..3f0f9e02bc 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -45,7 +45,7 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) size_reverse = 6; size_border = 11; size_velocity = 3; - size_data_atom = 10; // to check later + size_data_atom = 9; // to check later size_data_vel = 4; xcol_data = 4; diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 1fd0e25d4c..69ed8ed0e8 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -55,7 +55,8 @@ enum{NONE,SPIN}; FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), - rsec(NULL), k(NULL), adv_list(NULL), + rsec(NULL), stack_head(NULL), stack_foot(NULL), + backward_stacks(NULL), forward_stacks(NULL), lockpairspinexchange(NULL), lockpairspinsocneel(NULL), lockforcespin(NULL), locklangevinspin(NULL) { @@ -82,7 +83,8 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); magpair_flag = 0; - exch_flag = soc_flag = 0; + exch_flag = 0; + soc_neel_flag = soc_dmi_flag = 0; magforce_flag = 0; zeeman_flag = aniso_flag = 0; maglangevin_flag = 0; @@ -91,12 +93,15 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : } /* ---------------------------------------------------------------------- */ + FixIntegrationSpin::~FixIntegrationSpin() { - memory->destroy(k); - memory->destroy(adv_list); - + memory->destroy(rsec); + memory->destroy(stack_head); + memory->destroy(stack_foot); + memory->destroy(forward_stacks); + memory->destroy(backward_stacks); } @@ -106,6 +111,7 @@ int FixIntegrationSpin::setmask() { int mask = 0; mask |= INITIAL_INTEGRATE; + mask |= PRE_NEIGHBOR; mask |= FINAL_INTEGRATE; return mask; } @@ -126,8 +132,11 @@ void FixIntegrationSpin::init() exch_flag = 1; lockpairspinexchange = (PairSpinExchange *) force->pair; } else if (strstr(force->pair_style,"pair/spin/soc/neel")) { - soc_flag = 1; + soc_neel_flag = 1; lockpairspinsocneel = (PairSpinSocNeel *) force->pair; + } else if (strstr(force->pair_style,"pair/spin/soc/dmi")) { + soc_dmi_flag = 1; + lockpairspinsocdmi = (PairSpinSocDmi *) force->pair; } else if (strstr(force->pair_style,"hybrid/overlay")) { PairHybrid *lockhybrid = (PairHybrid *) force->pair; int nhybrid_styles = lockhybrid->nstyles; @@ -137,8 +146,11 @@ void FixIntegrationSpin::init() exch_flag = 1; lockpairspinexchange = (PairSpinExchange *) lockhybrid->styles[ipair]; } else if (strstr(lockhybrid->keywords[ipair],"pair/spin/soc/neel")) { - soc_flag = 1; + soc_neel_flag = 1; lockpairspinsocneel = (PairSpinSocNeel *) lockhybrid->styles[ipair]; + } else if (strstr(lockhybrid->keywords[ipair],"pair/spin/soc/dmi")) { + soc_dmi_flag = 1; + lockpairspinsocdmi = (PairSpinSocDmi *) lockhybrid->styles[ipair]; } } } else error->all(FLERR,"Illegal fix integration/spin command"); @@ -179,8 +191,10 @@ void FixIntegrationSpin::init() // grow tables for k and adv_list - k = memory->grow(k,nsectors,"integration/spin:k"); - adv_list = memory->grow(adv_list,nsectors,atom->nmax,"integration/spin:adv_list"); + stack_head = memory->grow(stack_head,nsectors,"integration/spin:stack_head"); + stack_foot = memory->grow(stack_foot,nsectors,"integration/spin:stack_foot"); + forward_stacks = memory->grow(forward_stacks,atom->nmax,"integration/spin:forward_stacks"); + backward_stacks = memory->grow(backward_stacks,atom->nmax,"integration/spin:backward_stacks"); } @@ -189,7 +203,6 @@ void FixIntegrationSpin::init() void FixIntegrationSpin::initial_integrate(int vflag) { double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; - double xi[3]; double spi[3], fmi[3]; double **x = atom->x; @@ -216,55 +229,37 @@ void FixIntegrationSpin::initial_integrate(int vflag) } } - // grow/shrink adv_list table to nlocal - // init. tables for mpi-sector storage - - int p; - adv_list = memory->grow(adv_list,nsectors,nlocal,"integration/spin:adv_list"); - for (int j = 0; j < nsectors; j++) { - k[j] = 0; - for (int i = 0; i < nlocal; i++) { - adv_list[j][i] = 0; - } - } - // update half s for all atoms if (extra == SPIN) { if (mpi_flag) { // mpi seq. update - int nseci; for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal comm->forward_comm(); - k[j] = 0; - for (int i = 0; i < nlocal; i++) { - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - nseci = coords2sector(xi); - if (j != nseci) continue; + int i = stack_foot[j]; + while (i >= 0) { ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts); - adv_list[j][k[j]] = i; - k[j]++; - } + i = forward_stacks[i]; + } } - for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal - comm->forward_comm(); - for (int i = k[j]-1; i >= 0; i--) { - p = adv_list[j][i]; - ComputeInteractionsSpin(p); - AdvanceSingleSpin(p,dts); - } + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal + comm->forward_comm(); + int i = stack_head[j]; + while (i >= 0) { + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts); + i = backward_stacks[i]; + } } } else if (mpi_flag == 0) { // serial seq. update comm->forward_comm(); // comm. positions of ghost atoms - for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal + for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal-1 ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts); } ComputeInteractionsSpin(nlocal-1); AdvanceSingleSpin(nlocal-1,2.0*dts); // advance half s for 1 - for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal + for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal-1 ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts); } @@ -287,48 +282,94 @@ void FixIntegrationSpin::initial_integrate(int vflag) if (extra == SPIN) { if (mpi_flag) { // mpi seq. update - int nseci; for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal - comm->forward_comm(); - for (int i = 0; i < k[j]; i++) { - p = adv_list[j][i]; - ComputeInteractionsSpin(p); - AdvanceSingleSpin(p,dts); - } + comm->forward_comm(); + int i = stack_foot[j]; + while (i >= 0) { + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts); + i = forward_stacks[i]; + } } for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); - for (int i = k[j]-1; i >= 0; i--) { - p = adv_list[j][i]; - ComputeInteractionsSpin(p); - AdvanceSingleSpin(p,dts); - } + int i = stack_head[j]; + while (i >= 0) { + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i,dts); + i = backward_stacks[i]; + } } } else if (mpi_flag == 0) { // serial seq. update comm->forward_comm(); // comm. positions of ghost atoms - for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal + for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal-1 ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts); } ComputeInteractionsSpin(nlocal-1); AdvanceSingleSpin(nlocal-1,2.0*dts); // advance half s for 1 - for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal + for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal-1 ComputeInteractionsSpin(i); AdvanceSingleSpin(i,dts); } } else error->all(FLERR,"Illegal fix integration/spin command"); } +} + +/* ---------------------------------------------------------------------- + setup pre_neighbor() +---------------------------------------------------------------------- */ + +void FixIntegrationSpin::setup_pre_neighbor() +{ + pre_neighbor(); +} + +/* ---------------------------------------------------------------------- + store in two linked lists the advance order of the spins +---------------------------------------------------------------------- */ + +void FixIntegrationSpin::pre_neighbor() +{ + double **x = atom->x; + int nlocal = atom->nlocal; + + for (int j = 0; j < nsectors; j++) { + stack_head[j] = -1; + stack_foot[j] = -1; + } + + int nseci; + for (int j = 0; j < nsectors; j++) { // stacking backward order + for (int i = 0; i < nlocal; i++) { + nseci = coords2sector(x[i]); + if (j != nseci) continue; + backward_stacks[i] = stack_head[j]; + stack_head[j] = i; + } + } + for (int j = nsectors-1; j >= 0; j--) { // stacking forward order + for (int i = nlocal-1; i >= 0; i--) { + nseci = coords2sector(x[i]); + if (j != nseci) continue; + forward_stacks[i] = stack_foot[j]; + stack_foot[j] = i; + } + } } -/* ---------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + compute the magnetic force for the spin ii +---------------------------------------------------------------------- */ + void FixIntegrationSpin::ComputeInteractionsSpin(int ii) { const int nlocal = atom->nlocal; - double xi[3], rij[3]; + double xi[3], rij[3], eij[3]; double spi[3], spj[3]; - double fmi[3], fmj[3]; + double fmi[3]; int i,j,jj,inum,jnum,itype,jtype; int *ilist,*jlist,*numneigh,**firstneigh; @@ -338,7 +379,7 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) int *type = atom->type; const int newton_pair = force->newton_pair; - // add test here + // add test here (only exchange quantities here) if (exch_flag) { inum = lockpairspinexchange->list->inum; ilist = lockpairspinexchange->list->ilist; @@ -366,7 +407,6 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) xi[1] = x[i][1]; xi[2] = x[i][2]; fmi[0] = fmi[1] = fmi[2] = 0.0; - fmj[0] = fmj[1] = fmj[2] = 0.0; jlist = firstneigh[i]; jnum = numneigh[i]; @@ -383,31 +423,41 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - rij[0] = x[j][0] - xi[0]; rij[1] = x[j][1] - xi[1]; rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); - rij[0] *= inorm; - rij[1] *= inorm; - rij[2] *= inorm; temp_cut = 0.0; if (exch_flag) { // exchange temp_cut = lockpairspinexchange->cut_spin_exchange[itype][jtype]; cut_2 = temp_cut*temp_cut; - if (rsq <= cut_2) { - lockpairspinexchange->compute_exchange(i,j,rsq,fmi,fmj,spi,spj); + if (rsq <= cut_2) { + lockpairspinexchange->compute_exchange(i,j,rsq,fmi,spi,spj); } } - if (soc_flag) { // soc + if (soc_neel_flag) { // soc_neel temp_cut = lockpairspinsocneel->cut_soc_neel[itype][jtype]; cut_2 = temp_cut*temp_cut; if (rsq <= cut_2) { - //lockpairspinsocneel->compute_soc_neel(i,j,rsq,rij,fmi,fmj,spi,spj); + eij[0] = rij[0]*inorm; + eij[1] = rij[1]*inorm; + eij[2] = rij[2]*inorm; + lockpairspinsocneel->compute_soc_neel(i,j,rsq,eij,fmi,spi,spj); + } + } + + if (soc_dmi_flag) { // soc_dmi + temp_cut = lockpairspinsocdmi->cut_soc_dmi[itype][jtype]; + cut_2 = temp_cut*temp_cut; + if (rsq <= cut_2) { + eij[0] = rij[0]*inorm; + eij[1] = rij[1]*inorm; + eij[2] = rij[2]*inorm; + lockpairspinsocdmi->compute_soc_dmi(i,j,fmi,spi,spj); } } @@ -431,7 +481,7 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) } } - // replace the magnethic force i by its new value + // replace the magnetic force fm[i] by its new value fm[i][0] = fmi[0]; fm[i][1] = fmi[1]; @@ -439,7 +489,10 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) } -/* ---------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + divide each domain into sectors +---------------------------------------------------------------------- */ + void FixIntegrationSpin::sectoring() { int sec[3]; @@ -482,9 +535,11 @@ void FixIntegrationSpin::sectoring() } -/* ---------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + define sector for an atom at a position x[i] +---------------------------------------------------------------------- */ -int FixIntegrationSpin::coords2sector(double x[3]) +int FixIntegrationSpin::coords2sector(double *x) { int nseci; int seci[3]; @@ -494,6 +549,8 @@ int FixIntegrationSpin::coords2sector(double x[3]) sublo[dim]=sublotmp[dim]; } +//#define M1 +#if defined M1 double rix = (x[0] - sublo[0])/rsec[0]; double riy = (x[1] - sublo[1])/rsec[1]; double riz = (x[2] - sublo[2])/rsec[2]; @@ -501,14 +558,23 @@ int FixIntegrationSpin::coords2sector(double x[3]) seci[0] = static_cast(rix); seci[1] = static_cast(riy); seci[2] = static_cast(riz); +#endif + +#define M2 +#if defined M2 + seci[0] = x[0] > (sublo[0] + rsec[0]); + seci[1] = x[1] > (sublo[1] + rsec[1]); + seci[2] = x[2] > (sublo[2] + rsec[2]); +#endif nseci = (seci[0] + 2*seci[1] + 4*seci[2]); return nseci; } - -/* ---------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + advance the spin i of a timestep dtl +---------------------------------------------------------------------- */ void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl) { diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_integration_spin.h index dfeef599a3..727b5c89c6 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -38,7 +38,10 @@ class FixIntegrationSpin : public Fix { void AdvanceSingleSpin(int, double); void sectoring(); // sectoring operation functions - int coords2sector(double x[3]); + int coords2sector(double *); + + void setup_pre_neighbor(); + void pre_neighbor(); protected: int extra, mpi_flag; @@ -46,7 +49,8 @@ class FixIntegrationSpin : public Fix { double dtv,dtf,dts; // velocity, force, and spin timesteps int magpair_flag; // magnetic pair flags - int soc_flag, exch_flag; + int exch_flag; + int soc_neel_flag, soc_dmi_flag; int magforce_flag; // magnetic force flags int zeeman_flag, aniso_flag; int maglangevin_flag; // magnetic langevin flags @@ -57,12 +61,19 @@ class FixIntegrationSpin : public Fix { class PairHybrid *lockhybrid; class PairSpinExchange *lockpairspinexchange; class PairSpinSocNeel *lockpairspinsocneel; + class PairSpinSocDmi *lockpairspinsocdmi; class FixForceSpin *lockforcespin; class FixLangevinSpin *locklangevinspin; int nsectors; // sectoring variables double *rsec; - int *k, **adv_list; + + // stacking variables for sectoring algorithm + + int *stack_head; // index of first atom in backward_stacks + int *stack_foot; // index of first atom in forward_stacks + int *backward_stacks; // index of next atom in backward stack + int *forward_stacks; // index of next atom in forward stack }; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 9080fce51d..e16f3e6d31 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -42,9 +42,6 @@ PairSpinExchange::PairSpinExchange(LAMMPS *lmp) : Pair(lmp) { hbar = force->hplanck/MY_2PI; - newton_pair_spin = 0; // no newton pair for now => to be corrected - // newton_pair = 0; - single_enable = 0; exch_flag = 0; exch_mech_flag = 0; @@ -77,7 +74,6 @@ void PairSpinExchange::compute(int eflag, int vflag) double evdwl,ecoul; double xi[3], rij[3]; double fi[3], fmi[3]; - double fj[3], fmj[3]; double cut_ex_2,cut_spin_exchange_global2; double rsq,rd,inorm; int *ilist,*jlist,*numneigh,**firstneigh; @@ -129,9 +125,7 @@ void PairSpinExchange::compute(int eflag, int vflag) evdwl = 0.0; fi[0] = fi[1] = fi[2] = 0.0; - fj[0] = fj[1] = fj[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - fmj[0] = fmj[1] = fmj[2] = 0.0; rij[0] = x[j][0] - xi[0]; rij[1] = x[j][1] - xi[1]; @@ -150,8 +144,8 @@ void PairSpinExchange::compute(int eflag, int vflag) if (exch_flag) { cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; if (rsq <= cut_ex_2) { - compute_exchange(i,j,rsq,fmi,fmj,spi,spj); - compute_exchange_mech(i,j,rsq,rij,fi,fj,spi,spj); + compute_exchange(i,j,rsq,fmi,spi,spj); + compute_exchange_mech(i,j,rsq,rij,fi,spi,spj); } } @@ -162,22 +156,16 @@ void PairSpinExchange::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - // check newton pair => needs correction -// if (newton_pair || j < nlocal) { - if (newton_pair_spin) { - f[j][0] += fj[0]; - f[j][1] += fj[1]; - f[j][2] += fj[2]; - fm[j][0] += fmj[0]; - fm[j][1] += fmj[1]; - fm[j][2] += fmj[2]; + // check newton pair => see if needs correction + if (newton_pair || j < nlocal) { + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; + f[j][2] -= fi[2]; } - + if (eflag) { if (rsq <= cut_ex_2) { - evdwl -= spi[0]*fmi[0]; - evdwl -= spi[1]*fmi[1]; - evdwl -= spi[2]*fmi[2]; + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= hbar; } else evdwl = 0.0; } @@ -193,7 +181,7 @@ void PairSpinExchange::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ -void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], double fmj[3], double spi[3], double spj[3]) +void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -205,20 +193,16 @@ void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], Jex = 4.0*J1_mag[itype][jtype]*ra; Jex *= (1.0-J2[itype][jtype]*ra); Jex *= exp(-ra); - - fmi[0] -= 0.5*Jex*spj[0]; - fmi[1] -= 0.5*Jex*spj[1]; - fmi[2] -= 0.5*Jex*spj[2]; + + fmi[0] += Jex*spj[0]; + fmi[1] += Jex*spj[1]; + fmi[2] += Jex*spj[2]; - fmj[0] -= 0.5*Jex*spi[0]; - fmj[1] -= 0.5*Jex*spi[1]; - fmj[2] -= 0.5*Jex*spi[2]; - } /* ---------------------------------------------------------------------- */ -void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double rij[3], double fi[3], double fj[3], double *spi, double *spj) +void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double rij[3], double fi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -234,15 +218,11 @@ void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double ri Jex_mech = 1.0-ra-J2[itype][jtype]*ra*(2.0-ra); Jex_mech *= 8.0*Jex*rr*exp(-ra); Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); - - fi[0] += Jex_mech*rij[0]; - fi[1] += Jex_mech*rij[1]; - fi[2] += Jex_mech*rij[2]; + + fi[0] -= Jex_mech*rij[0]; + fi[1] -= Jex_mech*rij[1]; + fi[2] -= Jex_mech*rij[2]; - fj[0] -= Jex_mech*rij[0]; - fj[1] -= Jex_mech*rij[1]; - fj[2] -= Jex_mech*rij[2]; - } /* ---------------------------------------------------------------------- @@ -259,11 +239,11 @@ void PairSpinExchange::allocate() for (int j = i; j <= n; j++) setflag[i][j] = 0; - memory->create(cut_spin_exchange,n+1,n+1,"pair:cut_spin_exchange"); - memory->create(J1_mag,n+1,n+1,"pair:J1_mag"); - memory->create(J1_mech,n+1,n+1,"pair:J1_mech"); - memory->create(J2,n+1,n+1,"pair:J2"); - memory->create(J3,n+1,n+1,"pair:J3"); + memory->create(cut_spin_exchange,n+1,n+1,"pair/spin/exchange:cut_spin_exchange"); + memory->create(J1_mag,n+1,n+1,"pair/spin/exchange:J1_mag"); + memory->create(J1_mech,n+1,n+1,"pair/spin/exchange:J1_mech"); + memory->create(J2,n+1,n+1,"pair/spin/exchange:J2"); + memory->create(J3,n+1,n+1,"pair/spin/exchange:J3"); memory->create(cutsq,n+1,n+1,"pair:cutsq"); @@ -361,13 +341,10 @@ void PairSpinExchange::init_style() neighbor->request(this,instance_me); - // check this half/full request => needs correction/review -#define FULLNEI -#if defined FULLNEI + // check this half/full request => to be verified int irequest = neighbor->request(this,instance_me); neighbor->requests[irequest]->half = 0; neighbor->requests[irequest]->full = 1; -#endif } diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h index 38cd03570f..0337d79faf 100755 --- a/src/SPIN/pair_spin_exchange.h +++ b/src/SPIN/pair_spin_exchange.h @@ -39,19 +39,16 @@ class PairSpinExchange : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_exchange(int, int, double, double fmi[3], double fmj[3],double spi[3], double spj[3]); - void compute_exchange_mech(int, int, double, double rij[3], double fmi[3], double fmj[3], double spi[3], double spj[3]); + void compute_exchange(int, int, double, double fmi[3], double spi[3], double spj[3]); + void compute_exchange_mech(int, int, double, double rij[3], double fi[3], double spi[3], double spj[3]); int exch_flag; // magnetic exchange flag int exch_mech_flag; // mechanic exchange flags - double cut_spin_exchange_global; // global exchange cutoff double **cut_spin_exchange; // cutoff distance per exchange protected: - int newton_pair_spin; double hbar; - double **J1_mag, **J1_mech; // exchange coeffs Jij double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang diff --git a/src/SPIN/pair_spin_soc_dmi.cpp b/src/SPIN/pair_spin_soc_dmi.cpp index 341f230fd3..60ef5d7941 100755 --- a/src/SPIN/pair_spin_soc_dmi.cpp +++ b/src/SPIN/pair_spin_soc_dmi.cpp @@ -42,11 +42,8 @@ PairSpinSocDmi::PairSpinSocDmi(LAMMPS *lmp) : Pair(lmp) { hbar = force->hplanck/MY_2PI; - newton_pair_spin = 0; // no newton pair for now => to be corrected - // newton_pair = 0; - single_enable = 0; - dmi_flag = 0; + soc_dmi_flag = 0; no_virial_fdotr_compute = 1; } @@ -58,7 +55,7 @@ PairSpinSocDmi::~PairSpinSocDmi() if (allocated) { memory->destroy(setflag); - memory->destroy(cut_spin_dmi); + memory->destroy(cut_soc_dmi); memory->destroy(DM); memory->destroy(v_dmx); memory->destroy(v_dmy); @@ -76,16 +73,15 @@ void PairSpinSocDmi::compute(int eflag, int vflag) double evdwl, ecoul; double xi[3], rij[3]; double spi[3], spj[3]; - double fi[3], fj[3]; - double fmi[3], fmj[3]; - double cut_dmi_2, cut_spin_me_global2; + double fi[3], fmi[3]; + double cut_soc_dmi_2; double rsq, rd, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = vflag_fdotr = 0; - cut_dmi_2 = cut_spin_dmi_global*cut_spin_dmi_global; + cut_soc_dmi_2 = cut_soc_global*cut_soc_global; double **x = atom->x; double **f = atom->f; @@ -127,9 +123,7 @@ void PairSpinSocDmi::compute(int eflag, int vflag) evdwl = 0.0; fi[0] = fi[1] = fi[2] = 0.0; - fj[0] = fj[1] = fj[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - fmj[0] = fmj[1] = fmj[2] = 0.0; rij[0] = rij[1] = rij[2] = 0.0; rij[0] = x[j][0] - xi[0]; @@ -140,15 +134,17 @@ void PairSpinSocDmi::compute(int eflag, int vflag) rij[0] *= inorm; rij[1] *= inorm; rij[2] *= inorm; - + itype = type[i]; jtype = type[j]; - // dm interaction - if (dmi_flag){ - cut_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; - if (rsq <= cut_dmi_2){ - compute_dmi(i,j,fmi,fmj,spi,spj); + // compute magnetic and mechanical components of soc_dmi + + if (soc_dmi_flag){ + cut_soc_dmi_2 = cut_soc_dmi[itype][jtype]*cut_soc_dmi[itype][jtype]; + if (rsq <= cut_soc_dmi_2){ + compute_soc_dmi(i,j,fmi,spi,spj); + compute_soc_dmi_mech(i,j,fi,spi,spj); } } @@ -159,18 +155,15 @@ void PairSpinSocDmi::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; -// if (newton_pair || j < nlocal) { - if (newton_pair_spin) { - f[j][0] += fj[0]; - f[j][1] += fj[1]; - f[j][2] += fj[2]; - fm[j][0] += fmj[0]; - fm[j][1] += fmj[1]; - fm[j][2] += fmj[2]; + // check newton pair => see if needs correction + if (newton_pair || j < nlocal) { + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; + f[j][2] -= fi[2]; } if (eflag) { - if (rsq <= cut_dmi_2) { + if (rsq <= cut_soc_dmi_2) { evdwl -= spi[0]*fmi[0]; evdwl -= spi[1]*fmi[1]; evdwl -= spi[2]*fmi[2]; @@ -189,7 +182,7 @@ void PairSpinSocDmi::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ -void PairSpinSocDmi::compute_dmi(int i, int j, double fmi[3], double fmj[3], double spi[3], double spj[3]) +void PairSpinSocDmi::compute_soc_dmi(int i, int j, double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -205,11 +198,18 @@ void PairSpinSocDmi::compute_dmi(int i, int j, double fmi[3], double fmj[3], do fmi[1] += spj[2]*dmix-spj[0]*dmiz; fmi[2] += spj[0]*dmiy-spj[1]*dmix; - fmj[0] -= spi[1]*dmiz-spi[2]*dmiy; - fmj[1] -= spi[2]*dmix-spi[0]*dmiz; - fmj[2] -= spi[0]*dmiy-spi[1]*dmix; } +/* ---------------------------------------------------------------------- */ + +void PairSpinSocDmi::compute_soc_dmi_mech(int i, int j, double fi[3], double spi[3], double spj[3]) +{ + fi[0] += 0.0; + fi[1] += 0.0; + fi[2] += 0.0; +} + + /* ---------------------------------------------------------------------- allocate all arrays ------------------------------------------------------------------------- */ @@ -224,7 +224,7 @@ void PairSpinSocDmi::allocate() for (int j = i; j <= n; j++) setflag[i][j] = 0; - memory->create(cut_spin_dmi,n+1,n+1,"pair:cut_spin_dmi"); + memory->create(cut_soc_dmi,n+1,n+1,"pair:cut_soc_dmi"); memory->create(DM,n+1,n+1,"pair:DM"); memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); @@ -246,7 +246,7 @@ void PairSpinSocDmi::settings(int narg, char **arg) if (strcmp(update->unit_style,"metal") != 0) error->all(FLERR,"Spin simulations require metal unit style"); - cut_spin_dmi_global = force->numeric(FLERR,arg[0]); + cut_soc_global = force->numeric(FLERR,arg[0]); // reset cutoffs that have been explicitly set @@ -255,7 +255,7 @@ void PairSpinSocDmi::settings(int narg, char **arg) for (i = 1; i <= atom->ntypes; i++) for (j = i+1; j <= atom->ntypes; j++) if (setflag[i][j]) { - cut_spin_dmi[i][j] = cut_spin_dmi_global; + cut_soc_dmi[i][j] = cut_soc_global; } } @@ -273,7 +273,7 @@ void PairSpinSocDmi::coeff(int narg, char **arg) if (strcmp(arg[2],"dmi")==0) { if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - dmi_flag = 1; + soc_dmi_flag = 1; int ilo,ihi,jlo,jhi; force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); @@ -293,7 +293,7 @@ void PairSpinSocDmi::coeff(int narg, char **arg) int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_dmi[i][j] = rij; + cut_soc_dmi[i][j] = rij; DM[i][j] = dm; v_dmx[i][j] = dmx; v_dmy[i][j] = dmy; @@ -319,13 +319,10 @@ void PairSpinSocDmi::init_style() neighbor->request(this,instance_me); - // check this half/full request -#define FULLNEI -#if defined FULLNEI + // check this half/full request => to be verified int irequest = neighbor->request(this,instance_me); neighbor->requests[irequest]->half = 0; neighbor->requests[irequest]->full = 1; -#endif } @@ -338,7 +335,7 @@ double PairSpinSocDmi::init_one(int i, int j) if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - return cut_spin_dmi_global; + return cut_soc_global; } /* ---------------------------------------------------------------------- @@ -354,12 +351,12 @@ void PairSpinSocDmi::write_restart(FILE *fp) for (j = i; j <= atom->ntypes; j++) { fwrite(&setflag[i][j],sizeof(int),1,fp); if (setflag[i][j]) { - if (dmi_flag) { + if (soc_dmi_flag) { fwrite(&DM[i][j],sizeof(double),1,fp); fwrite(&v_dmx[i][j],sizeof(double),1,fp); fwrite(&v_dmy[i][j],sizeof(double),1,fp); fwrite(&v_dmz[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_dmi[i][j],sizeof(double),1,fp); + fwrite(&cut_soc_dmi[i][j],sizeof(double),1,fp); } } } @@ -387,13 +384,13 @@ void PairSpinSocDmi::read_restart(FILE *fp) fread(&v_dmx[i][j],sizeof(double),1,fp); fread(&v_dmy[i][j],sizeof(double),1,fp); fread(&v_dmz[i][j],sizeof(double),1,fp); - fread(&cut_spin_dmi[i][j],sizeof(double),1,fp); + fread(&cut_soc_dmi[i][j],sizeof(double),1,fp); } MPI_Bcast(&DM[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmx[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmy[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmz[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_spin_dmi[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_soc_dmi[i][j],1,MPI_DOUBLE,0,world); } } } @@ -406,7 +403,7 @@ void PairSpinSocDmi::read_restart(FILE *fp) void PairSpinSocDmi::write_restart_settings(FILE *fp) { - fwrite(&cut_spin_dmi_global,sizeof(double),1,fp); + fwrite(&cut_soc_global,sizeof(double),1,fp); fwrite(&offset_flag,sizeof(int),1,fp); fwrite(&mix_flag,sizeof(int),1,fp); } @@ -418,11 +415,11 @@ void PairSpinSocDmi::write_restart_settings(FILE *fp) void PairSpinSocDmi::read_restart_settings(FILE *fp) { if (comm->me == 0) { - fread(&cut_spin_dmi_global,sizeof(double),1,fp); + fread(&cut_soc_global,sizeof(double),1,fp); fread(&offset_flag,sizeof(int),1,fp); fread(&mix_flag,sizeof(int),1,fp); } - MPI_Bcast(&cut_spin_dmi_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_soc_global,1,MPI_DOUBLE,0,world); MPI_Bcast(&offset_flag,1,MPI_INT,0,world); MPI_Bcast(&mix_flag,1,MPI_INT,0,world); } diff --git a/src/SPIN/pair_spin_soc_dmi.h b/src/SPIN/pair_spin_soc_dmi.h index 627001135e..8097b5ae14 100755 --- a/src/SPIN/pair_spin_soc_dmi.h +++ b/src/SPIN/pair_spin_soc_dmi.h @@ -39,12 +39,13 @@ class PairSpinSocDmi : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_dmi(int, int, double fmi[3], double fmj[3], double spi[3], double spj[3]); + void compute_soc_dmi(int, int, double fmi[3], double spi[3], double spj[3]); + void compute_soc_dmi_mech(int, int, double fi[3], double spi[3], double spj[3]); - int dmi_flag; // dmi flag + int soc_dmi_flag; // dmi flag - double cut_spin_dmi_global; // short range pair cutoff - double **cut_spin_dmi; // cutoff distance dmi + double cut_soc_global; // short range pair cutoff + double **cut_soc_dmi; // cutoff distance dmi protected: int newton_pair_spin; diff --git a/src/SPIN/pair_spin_soc_neel.cpp b/src/SPIN/pair_spin_soc_neel.cpp index 94ac35848b..6952e0334a 100755 --- a/src/SPIN/pair_spin_soc_neel.cpp +++ b/src/SPIN/pair_spin_soc_neel.cpp @@ -42,11 +42,9 @@ PairSpinSocNeel::PairSpinSocNeel(LAMMPS *lmp) : Pair(lmp) { hbar = force->hplanck/MY_2PI; - newton_pair_spin = 0; // no newton pair for now => to be corrected - // newton_pair = 0; - single_enable = 0; - soc_neel_flag = 0; + soc_neel_flag = 0; + soc_mech_flag = 0; no_virial_fdotr_compute = 1; } @@ -74,10 +72,9 @@ void PairSpinSocNeel::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl,ecoul; - double xi[3], rij[3]; + double xi[3], rij[3], eij[3]; double spi[3], spj[3]; - double fi[3], fj[3]; - double fmi[3], fmj[3]; + double fi[3], fmi[3]; double cut_soc_neel_2, cut_soc_global2; double rsq, rd, inorm; int *ilist,*jlist,*numneigh,**firstneigh; @@ -128,9 +125,7 @@ void PairSpinSocNeel::compute(int eflag, int vflag) evdwl = 0.0; fi[0] = fi[1] = fi[2] = 0.0; - fj[0] = fj[1] = fj[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - fmj[0] = fmj[1] = fmj[2] = 0.0; rij[0] = rij[1] = rij[2] = 0.0; rij[0] = x[j][0] - xi[0]; @@ -138,9 +133,9 @@ void PairSpinSocNeel::compute(int eflag, int vflag) rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); - rij[0] *= inorm; - rij[1] *= inorm; - rij[2] *= inorm; + eij[0] = rij[0]*inorm; + eij[1] = rij[1]*inorm; + eij[2] = rij[2]*inorm; itype = type[i]; jtype = type[j]; @@ -149,8 +144,8 @@ void PairSpinSocNeel::compute(int eflag, int vflag) cut_soc_neel_2 = cut_soc_neel[itype][jtype]*cut_soc_neel[itype][jtype]; if (rsq <= cut_soc_neel_2) { - compute_soc_neel(i,j,rsq,rij,fmi,fmj,spi,spj); - compute_soc_mech_neel(i,j,rsq,rij,fi,fj,spi,spj); + compute_soc_neel(i,j,rsq,eij,fmi,spi,spj); + compute_soc_mech_neel(i,j,rsq,eij,fi,spi,spj); } f[i][0] += fi[0]; @@ -160,21 +155,16 @@ void PairSpinSocNeel::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; -// if (newton_pair || j < nlocal) { // => to be corrected - if (newton_pair_spin) { - f[j][0] += fj[0]; - f[j][1] += fj[1]; - f[j][2] += fj[2]; - fm[j][0] += fmj[0]; - fm[j][1] += fmj[1]; - fm[j][2] += fmj[2]; + // check newton pair => see if needs correction + if (newton_pair || j < nlocal) { + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; + f[j][2] -= fi[2]; } - + if (eflag) { if (rsq <= cut_soc_neel_2) { - evdwl -= spi[0]*fmi[0]; - evdwl -= spi[1]*fmi[1]; - evdwl -= spi[2]*fmi[2]; + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= hbar; } else evdwl = 0.0; } @@ -190,11 +180,12 @@ void PairSpinSocNeel::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ -void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double rij[3], double fmi[3], double fmj[3], double spi[3], double spj[3]) +void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; - double Kij, Kij_3, ra, scalar; + double Kij, Kij_3, ra; + double scalar_i, scalar_j; itype = type[i]; jtype = type[j]; @@ -203,60 +194,55 @@ void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double rij[3], Kij *= (1.0-K2[itype][jtype]*ra); Kij *= exp(-ra); - scalar = rij[0]*spj[0]+rij[1]*spj[1]+rij[2]*spj[2]; + scalar_i = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; + scalar_j = eij[0]*spi[0]+eij[1]*spi[1]+eij[2]*spi[2]; Kij_3 = Kij/3.0; - fmi[0] -= Kij*scalar*rij[0] - Kij_3*spj[0]; - fmi[1] -= Kij*scalar*rij[1] - Kij_3*spj[1]; - fmi[2] -= Kij*scalar*rij[2] - Kij_3*spj[2]; - - fmj[0] += Kij*scalar*rij[0] + Kij_3*spi[0]; - fmj[1] += Kij*scalar*rij[1] + Kij_3*spi[1]; - fmj[2] += Kij*scalar*rij[2] + Kij_3*spi[2]; + fmi[0] += Kij*scalar_i*eij[0] - Kij_3*spj[0]; + fmi[1] += Kij*scalar_i*eij[1] - Kij_3*spj[1]; + fmi[2] += Kij*scalar_i*eij[2] - Kij_3*spj[2]; } /* ---------------------------------------------------------------------- */ -void PairSpinSocNeel::compute_soc_mech_neel(int i, int j, double rsq, double rij[3], double fi[3], double fj[3], double spi[3], double spj[3]) +void PairSpinSocNeel::compute_soc_mech_neel(int i, int j, double rsq, double eij[3], double fi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; - double scalar_si_sj, scalar_rij_si, scalar_rij_sj; + double scalar_si_sj, scalar_eij_si, scalar_eij_sj; double K_mech, Kij, dKij, ra, rr, drij, iK3; double t1, t2, t3; itype = type[i]; jtype = type[j]; + drij = sqrt(rsq); + scalar_si_sj = spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]; - scalar_rij_si = rij[0]*spi[0]+rij[1]*spi[1]+rij[2]*spi[2]; - scalar_rij_sj = rij[0]*spj[0]+rij[1]*spj[1]+rij[2]*spj[2]; + scalar_eij_si = eij[0]*spi[0]+eij[1]*spi[1]+eij[2]*spi[2]; + scalar_eij_sj = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; K_mech = K1_mech[itype][jtype]; iK3 = 1.0/(K3[itype][jtype]*K3[itype][jtype]); - drij = sqrt(rsq); ra = rsq*iK3; rr = drij*iK3; + Kij = 4.0*K_mech*ra; Kij *= (1.0-K2[itype][jtype]*ra); - Kij *= 4.0*K_mech*ra*exp(-ra); + Kij *= exp(-ra); dKij = 1.0-ra-K2[itype][jtype]*ra*(2.0-ra); dKij *= 8.0*K_mech*rr*exp(-ra); - t1 = (dKij-2.0*Kij/drij)*scalar_rij_si*scalar_rij_sj; + t1 = (dKij-2.0*Kij/drij)*scalar_eij_si*scalar_eij_sj; t1 -= scalar_si_sj*dKij/3.0; - t2 = scalar_rij_sj*Kij/drij; - t3 = scalar_rij_si*Kij/drij; + t2 = scalar_eij_sj*Kij/drij; + t3 = scalar_eij_si*Kij/drij; - fi[0] += t1*rij[0]+t2*spi[0]+t3*spj[0]; - fi[1] += t1*rij[1]+t2*spi[1]+t3*spj[1]; - fi[2] += t1*rij[2]+t2*spi[2]+t3*spj[2]; - - fj[0] -= t1*rij[0]-t2*spi[0]-t3*spj[0]; - fj[1] -= t1*rij[1]-t2*spi[1]-t3*spj[1]; - fj[2] -= t1*rij[2]-t2*spi[2]-t3*spj[2]; + fi[0] -= (t1*eij[0] + t2*spi[0] + t3*spj[0]); + fi[1] -= (t1*eij[1] + t2*spi[1] + t3*spj[1]); + fi[2] -= (t1*eij[2] + t2*spi[2] + t3*spj[2]); } @@ -274,13 +260,13 @@ void PairSpinSocNeel::allocate() for (int j = i; j <= n; j++) setflag[i][j] = 0; - memory->create(cut_soc_neel,n+1,n+1,"pair:cut_soc_neel"); - memory->create(K1,n+1,n+1,"pair:K1"); - memory->create(K1_mech,n+1,n+1,"pair:K1_mech"); - memory->create(K2,n+1,n+1,"pair:K2"); - memory->create(K3,n+1,n+1,"pair:K3"); + memory->create(cut_soc_neel,n+1,n+1,"pair/spin/soc/neel:cut_soc_neel"); + memory->create(K1,n+1,n+1,"pair/spin/soc/neel:K1"); + memory->create(K1_mech,n+1,n+1,"pair/spin/soc/neel:K1_mech"); + memory->create(K2,n+1,n+1,"pair/spin/soc/neel:K2"); + memory->create(K3,n+1,n+1,"pair/spin/soc/neel:K3"); - memory->create(cutsq,n+1,n+1,"pair:cutsq"); + memory->create(cutsq,n+1,n+1,"pair/spin/soc/neel:cutsq"); } @@ -302,11 +288,13 @@ void PairSpinSocNeel::settings(int narg, char **arg) if (allocated) { int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i+1; j <= atom->ntypes; j++) - if (setflag[i][j]) { - cut_soc_neel[i][j] = cut_soc_global; + for (i = 1; i <= atom->ntypes; i++) { + for (j = i+1; j <= atom->ntypes; j++) { + if (setflag[i][j]) { + cut_soc_neel[i][j] = cut_soc_global; } + } + } } } @@ -321,12 +309,12 @@ void PairSpinSocNeel::coeff(int narg, char **arg) if (!allocated) allocate(); - // set mech_flag to 1 if magneto-mech simulation + // set soc_mech_flag to 1 if magneto-mech simulation //no longer correct: can be hybrid without magneto-mech => needs review/correction if (strstr(force->pair_style,"pair/spin")) { - mech_flag = 0; + soc_mech_flag = 0; } else if (strstr(force->pair_style,"hybrid/overlay")) { - mech_flag = 1; + soc_mech_flag = 1; } else error->all(FLERR,"Incorrect args in pair_style command"); @@ -348,7 +336,7 @@ void PairSpinSocNeel::coeff(int narg, char **arg) for (int j = MAX(jlo,i); j <= jhi; j++) { cut_soc_neel[i][j] = rij; K1[i][j] = k1/hbar; - if (mech_flag) { + if (soc_mech_flag) { K1_mech[i][j] = k1; } else { K1_mech[i][j] = 0.0; @@ -376,12 +364,9 @@ void PairSpinSocNeel::init_style() neighbor->request(this,instance_me); // check this half/full request => to be verified -#define FULLNEI -#if defined FULLNEI int irequest = neighbor->request(this,instance_me); neighbor->requests[irequest]->half = 0; neighbor->requests[irequest]->full = 1; -#endif } diff --git a/src/SPIN/pair_spin_soc_neel.h b/src/SPIN/pair_spin_soc_neel.h index 4584ddb9eb..ee675b36c7 100755 --- a/src/SPIN/pair_spin_soc_neel.h +++ b/src/SPIN/pair_spin_soc_neel.h @@ -39,17 +39,17 @@ class PairSpinSocNeel : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_soc_neel(int, int, double, double rij[3], double fmi[3], double fmj[3],double spi[3], double spj[3]); - void compute_soc_mech_neel(int, int, double, double rij[3], double fi[3], double fj[3],double spi[3], double spj[3]); + void compute_soc_neel(int, int, double, double eij[3], double fmi[3], double spi[3], double spj[3]); + void compute_soc_mech_neel(int, int, double, double eij[3], double fi[3], double spi[3], double spj[3]); int soc_neel_flag; // soc neel flag - int mech_flag; // mech calc. flag + int soc_mech_flag; // mech calculation flag double cut_soc_global; double **cut_soc_neel; // cutoff distance exchange protected: - int newton_pair_spin; + //int newton_pair_spin; double hbar; double **K1, **K1_mech; // exchange coeffs Kij diff --git a/src/atom.h b/src/atom.h index 285f067e24..b0641f6381 100644 --- a/src/atom.h +++ b/src/atom.h @@ -152,6 +152,7 @@ class Atom : protected Pointers { int dpd_flag,edpd_flag,tdpd_flag; //USER-SPIN package + int mumag_flag,sp_flag; // USER-SMD package From 01f378d265c22fd613ff6d4d04cd610bf8711627 Mon Sep 17 00:00:00 2001 From: araven Date: Tue, 9 Jan 2018 21:19:28 +0100 Subject: [PATCH 060/675] minor updates on examples/SPIN --- examples/SPIN/prepare_vmd.sh | 86 ++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/examples/SPIN/prepare_vmd.sh b/examples/SPIN/prepare_vmd.sh index 331f2741e4..59a4c407fb 100755 --- a/examples/SPIN/prepare_vmd.sh +++ b/examples/SPIN/prepare_vmd.sh @@ -13,67 +13,67 @@ FILE=view_${TS}.vmd cat >${FILE} <] [resolution ] [radius ] [filled ]"} # defaults - set scale 3.0 - set res 5 + set scale 2.0 + set res 50 set radius 0.1 set filled yes - if {[llength $args] < 3} { - error "wrong # args: should be $usage" + if {[llength \$args] < 3} { + error "wrong # args: should be \$usage" } - set mol [lindex $args 0] - set center [lindex $args 1] - set vector [lindex $args 2] - if {[llength $center] != 3 || [llength $vector] != 3} { - error "wrong type of args: should be $usage" + set mol [lindex \$args 0] + set center [lindex \$args 1] + set vector [lindex \$args 2] + if {[llength \$center] != 3 || [llength \$vector] != 3} { + error "wrong type of args: should be \$usage" } - foreach {flag value} [lrange $args 3 end] { - switch -glob $flag { - scale {set scale $value} - res* {set res $value} - rad* {set radius $value} - fill* {set filled $value} - default {error "unknown option '$flag': should be $usage" } + foreach {flag value} [lrange \$args 3 end] { + switch -glob \$flag { + scale {set scale \$value} + res* {set res \$value} + rad* {set radius \$value} + fill* {set filled \$value} + default {error "unknown option '\$flag': should be \$usage" } } } - set vechalf [vecscale [expr $scale * 0.5] $vector] - return [list \ - [graphics $mol color yellow]\ - [graphics $mol cylinder [vecsub $center $vechalf]\ - [vecadd $center [vecscale 0.7 $vechalf]] \ - radius $radius resolution $res filled $filled] \ - [graphics $mol color orange]\ - [graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \ - [vecadd $center $vechalf] radius [expr $radius * 2.5] \ - resolution $res]] + set vechalf [vecscale [expr \$scale * 0.5] \$vector] + return [list \\ + [graphics \$mol color yellow]\\ + [graphics \$mol cylinder [vecsub \$center \$vechalf]\\ + [vecadd \$center [vecscale 0.7 \$vechalf]] \\ + radius \$radius resolution \$res filled \$filled] \\ + [graphics \$mol color orange]\\ + [graphics \$mol cone [vecadd \$center [vecscale 0.6 \$vechalf]] \\ + [vecadd \$center \$vechalf] radius [expr \$radius * 2.5] \\ + resolution \$res]] } proc vmd_draw_spin {args} { global molid - graphics $molid delete all - set frame [molinfo $molid get frame] - set natoms [molinfo $molid get numatoms] - for {set i 0} {$i < $natoms} {incr i} { - set sel [atomselect top "index $i"] - set coords [lindex [$sel get {x y z}] $molid] - set velocities [lindex [$sel get {vx vy vz}] $molid] - draw vector $coords $velocities - set uvx [lindex [$sel get {vx}] $molid] - set uvy [lindex [$sel get {vy}] $molid] - set uvz [lindex [$sel get {vz}] $molid] - $sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]] - $sel set user $uvy - #draw vector $coords {0.0 uvy 0.0} + graphics \$molid delete all + set frame [molinfo \$molid get frame] + set natoms [molinfo \$molid get numatoms] + for {set i 0} {\$i < \$natoms} {incr i} { + set sel [atomselect top "index \$i"] + set coords [lindex [\$sel get {x y z}] \$molid] + set velocities [lindex [\$sel get {vx vy vz}] \$molid] + draw vector \$coords \$velocities + set uvx [lindex [\$sel get {vx}] \$molid] + set uvy [lindex [\$sel get {vy}] \$molid] + set uvz [lindex [\$sel get {vz}] \$molid] + \$sel set user [vecadd [vecadd [vecscale \$uvy \$uvy] [vecscale \$uvz \$uvz] ] [vecscale \$uvx \$uvx]] + \$sel set user \$uvy + #draw vector \$coords {0.0 uvy 0.0} } #pbc box -color 3 } From 7cc62f4234999a4fff18de6394fbac036572385c Mon Sep 17 00:00:00 2001 From: araven Date: Tue, 9 Jan 2018 21:22:24 +0100 Subject: [PATCH 061/675] minor updates on examples/SPIN --- examples/SPIN/prepare_vmd.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/SPIN/prepare_vmd.sh b/examples/SPIN/prepare_vmd.sh index 59a4c407fb..b593b295a3 100755 --- a/examples/SPIN/prepare_vmd.sh +++ b/examples/SPIN/prepare_vmd.sh @@ -14,7 +14,7 @@ FILE=view_${TS}.vmd cat >${FILE} < Date: Tue, 9 Jan 2018 21:36:12 +0100 Subject: [PATCH 062/675] beautyfy shell script --- examples/SPIN/prepare_vmd.sh | 112 +++++++++++++++++------------------ 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/examples/SPIN/prepare_vmd.sh b/examples/SPIN/prepare_vmd.sh index b593b295a3..fa62c6e109 100755 --- a/examples/SPIN/prepare_vmd.sh +++ b/examples/SPIN/prepare_vmd.sh @@ -13,75 +13,75 @@ FILE=view_${TS}.vmd cat >${FILE} <] [resolution ] [radius ] [filled ]"} - # defaults - set scale 2.0 - set res 50 - set radius 0.1 - set filled yes + set usage {"draw vector {x1 y1 z1} {x2 y2 z2} [scale ] [resolution ] [radius ] [filled ]"} + # defaults + set scale 2.0 + set res 50 + set radius 0.1 + set filled yes - if {[llength \$args] < 3} { - error "wrong # args: should be \$usage" - } - set mol [lindex \$args 0] - set center [lindex \$args 1] - set vector [lindex \$args 2] - if {[llength \$center] != 3 || [llength \$vector] != 3} { - error "wrong type of args: should be \$usage" - } + if {[llength \$args] < 3} { + error "wrong # args: should be \$usage" + } + set mol [lindex \$args 0] + set center [lindex \$args 1] + set vector [lindex \$args 2] + if {[llength \$center] != 3 || [llength \$vector] != 3} { + error "wrong type of args: should be \$usage" + } - foreach {flag value} [lrange \$args 3 end] { - switch -glob \$flag { - scale {set scale \$value} - res* {set res \$value} - rad* {set radius \$value} - fill* {set filled \$value} - default {error "unknown option '\$flag': should be \$usage" } - } + foreach {flag value} [lrange \$args 3 end] { + switch -glob \$flag { + scale {set scale \$value} + res* {set res \$value} + rad* {set radius \$value} + fill* {set filled \$value} + default {error "unknown option '\$flag': should be \$usage" } } + } - set vechalf [vecscale [expr \$scale * 0.5] \$vector] - return [list \\ - [graphics \$mol color yellow]\\ - [graphics \$mol cylinder [vecsub \$center \$vechalf]\\ - [vecadd \$center [vecscale 0.7 \$vechalf]] \\ - radius \$radius resolution \$res filled \$filled] \\ - [graphics \$mol color orange]\\ - [graphics \$mol cone [vecadd \$center [vecscale 0.6 \$vechalf]] \\ - [vecadd \$center \$vechalf] radius [expr \$radius * 2.5] \\ - resolution \$res]] + set vechalf [vecscale [expr \$scale * 0.5] \$vector] + return [list \\ + [graphics \$mol color yellow]\\ + [graphics \$mol cylinder [vecsub \$center \$vechalf]\\ + [vecadd \$center [vecscale 0.7 \$vechalf]] \\ + radius \$radius resolution \$res filled \$filled] \\ + [graphics \$mol color orange]\\ + [graphics \$mol cone [vecadd \$center [vecscale 0.6 \$vechalf]] \\ + [vecadd \$center \$vechalf] radius [expr \$radius * 2.5] \\ + resolution \$res]] } proc vmd_draw_spin {args} { - global molid - graphics \$molid delete all - set frame [molinfo \$molid get frame] - set natoms [molinfo \$molid get numatoms] - for {set i 0} {\$i < \$natoms} {incr i} { - set sel [atomselect top "index \$i"] - set coords [lindex [\$sel get {x y z}] \$molid] - set velocities [lindex [\$sel get {vx vy vz}] \$molid] - draw vector \$coords \$velocities - set uvx [lindex [\$sel get {vx}] \$molid] - set uvy [lindex [\$sel get {vy}] \$molid] - set uvz [lindex [\$sel get {vz}] \$molid] - \$sel set user [vecadd [vecadd [vecscale \$uvy \$uvy] [vecscale \$uvz \$uvz] ] [vecscale \$uvx \$uvx]] - \$sel set user \$uvy - #draw vector \$coords {0.0 uvy 0.0} - } - #pbc box -color 3 + global molid + graphics \$molid delete all + set frame [molinfo \$molid get frame] + set natoms [molinfo \$molid get numatoms] + for {set i 0} {\$i < \$natoms} {incr i} { + set sel [atomselect top "index \$i"] + set coords [lindex [\$sel get {x y z}] \$molid] + set velocities [lindex [\$sel get {vx vy vz}] \$molid] + draw vector \$coords \$velocities + set uvx [lindex [\$sel get {vx}] \$molid] + set uvy [lindex [\$sel get {vy}] \$molid] + set uvz [lindex [\$sel get {vz}] \$molid] + \$sel set user [vecadd [vecadd [vecscale \$uvy \$uvy] [vecscale \$uvz \$uvz] ] [vecscale \$uvx \$uvx]] + \$sel set user \$uvy + #draw vector \$coords {0.0 uvy 0.0} + } + #pbc box -color 3 } proc enable_trace {} { - global vmd_frame - trace variable vmd_frame([molinfo top]) w vmd_draw_spin - } + global vmd_frame + trace variable vmd_frame([molinfo top]) w vmd_draw_spin +} set molid [mol addfile {$1} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] scale by 0.5 From 1e096d77efaef348a2ea5af6717f7cc5744a77ac Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 15 Jan 2018 11:39:44 -0700 Subject: [PATCH 063/675] Commit JT 011518 --- examples/SPIN/in.spin.bfo | 72 +++++++++-------------- examples/SPIN/in.spin.cobalt | 24 ++++---- src/SPIN/atom_vec_spin.cpp | 2 +- src/SPIN/fix_integration_spin.cpp | 20 ++++++- src/SPIN/fix_integration_spin.h | 2 + src/SPIN/pair_spin_me.cpp | 94 +++++++++++++++++++------------ src/SPIN/pair_spin_me.h | 6 +- src/SPIN/pair_spin_soc_neel.h | 4 +- 8 files changed, 127 insertions(+), 97 deletions(-) diff --git a/examples/SPIN/in.spin.bfo b/examples/SPIN/in.spin.bfo index aee3454765..1ceeb86614 100644 --- a/examples/SPIN/in.spin.bfo +++ b/examples/SPIN/in.spin.bfo @@ -3,14 +3,9 @@ ################### clear -#setting units to metal (Ang, picosecs, eV, ...): units metal - -#setting dimension of the system (N=2 or 3): dimension 3 - -#setting boundary conditions. (p for periodic, f for fixed, ...) -boundary p p f +boundary p p p #setting atom_style to spin: atom_style spin @@ -21,8 +16,6 @@ atom_style spin #why? atom_modify map array -#newton off for pair spin in SEQNEI -#newton off off ########################### #######Create atoms######## @@ -30,49 +23,31 @@ atom_modify map array #Lattice constant of sc Iron atoms of BFO lattice sc 3.96 - -#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen -#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) region box block 0.0 17.0 0.0 17.0 0.0 5.0 - -#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. create_box 1 box - -#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... -#Entries: atom type, create_atoms 1 box -#Replicating NxNxN the entire set of atoms -#replicate 1 1 1 - - ####################### #######Settings######## ####################### #Setting one or more properties of one or more atoms. -#Setting mass mass 1 1.0 -#set group all mass 1.0 + #Setting spins orientation and moment set group all spin/random 11 2.50 #set group all spin 2.50 1.0 0.0 0.0 -#Magnetic exchange interaction coefficient for bulk fcc Cobalt -pair_style pair/spin 5.7 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * exchange 5.7 -0.01575 0.0 1.965 +#Magnetic interactions for BFO #type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 4.0 0.000109 1.0 1.0 1.0 -#Mex10 -pair_coeff * * me 4.0 0.00109 1.0 1.0 1.0 +pair_style hybrid/overlay pair/spin/exchange 6.0 pair/spin/me 4.5 +pair_coeff * * pair/spin/exchange exchange 6.0 -0.01575 0.0 1.965 +pair_coeff * * pair/spin/me me 4.5 0.00109 1.0 1.0 1.0 +#pair_coeff * * pair/spin/soc/dmi dmi 4.5 0.001 1.0 1.0 1.0 #Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 neighbor 0.0 bin -neigh_modify every 1 check no delay 0 +neigh_modify every 10 check yes delay 20 #Magnetic field fix #Type | Intensity (T or eV) | Direction @@ -81,17 +56,10 @@ fix 1 all force/spin anisotropy 0.0000035 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 fix 2 all langevin/spin 0.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -fix 3 all nve/spin mpi - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm -compute mag all compute/spin -fix outmag all ave/time 1 1 500 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_BFO.dat format %20.16g +fix 3 all integration/spin serial #Setting the timestep for the simulation (in ps) timestep 0.0001 @@ -100,10 +68,26 @@ timestep 0.0001 #######run######## ################## +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +#compute real time, total magnetization, magnetic energy, and spin temperature +#Iteration | Time | Mx | My | Mz | |M| | Em | Tm +variable magz equal c_out_mag[4] +variable magnorm equal c_out_mag[5] +variable emag equal c_out_mag[6] +variable tmag equal c_out_mag[7] +variable mag_force equal f_1 + +thermo 10 +thermo_style custom step time v_magnorm v_emag temp etotal +thermo_modify format float %20.15g + #Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 5000 dump_spin_BFO.lammpstrj type x y z spx spy spz +dump 1 all custom 100 dump_spin_BFO.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 30000 -#run 1 +run 50000 diff --git a/examples/SPIN/in.spin.cobalt b/examples/SPIN/in.spin.cobalt index cb64c65f5c..ce3008d3d4 100644 --- a/examples/SPIN/in.spin.cobalt +++ b/examples/SPIN/in.spin.cobalt @@ -5,8 +5,8 @@ clear units metal dimension 3 -boundary p p p -#boundary p p f +#boundary p p p +boundary p p f #newton off @@ -42,13 +42,14 @@ set group all spin/random 31 1.72 #set group all spin 1.72 0.0 0.0 1.0 #set group single_spin spin/random 11 1.72 -velocity all create 200 4928459 rot yes dist gaussian +#velocity all create 200 4928459 rot yes dist gaussian +velocity all create 10 4928459 rot yes dist gaussian #Magneto-mechanic interactions for bulk fcc Cobalt #pair_style pair/spin/exchange 4.0 #pair_style eam/alloy #pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co #pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co @@ -57,8 +58,9 @@ pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co #type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) #pair_coeff * * exchange 4.0 -0.0446928 0.003496 1.4885 #pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 -#pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +#pair_coeff * * pair/spin/exchange exchange 2.5 0.0446928 0.003496 1.4885 +#pair_coeff * * pair/spin/exchange exchange 4.0 0.0 0.003496 1.4885 #type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) #pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 @@ -66,14 +68,13 @@ pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 #type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) #pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 -pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 #pair_coeff * * pair/spin/soc/neel neel 4.0 0.0 0.864159 2.13731 #Define a skin distance, update neigh list every -#neighbor 0.1 bin -#neigh_modify every 10 check yes delay 20 neighbor 0.1 bin -neigh_modify every 1 check no delay 0 +neigh_modify every 10 check yes delay 20 +#neighbor 1.0 bin +#neigh_modify every 1 check no delay 0 #Magnetic field fix #Type | Intensity (T or eV) | Direction @@ -111,14 +112,13 @@ variable mag_force equal f_1 #variable test equal etotal-0.5*c_out_mag[6] thermo 10 -#thermo_style custom step time v_emag c_out_pe c_out_ke c_out_temp v_mag_force v_magnorm v_tmag etotal -thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo_style custom step time v_magnorm v_emag temp etotal thermo_modify format float %20.15g #Dump the positions and spin directions of magnetic particles (vmd format) dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -#run 1 run 10000 +#run 10000 diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 3f0f9e02bc..1af3440958 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -45,7 +45,7 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) size_reverse = 6; size_border = 11; size_velocity = 3; - size_data_atom = 9; // to check later + size_data_atom = 9; size_data_vel = 4; xcol_data = 4; diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 69ed8ed0e8..a79d24a570 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -85,6 +85,7 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : magpair_flag = 0; exch_flag = 0; soc_neel_flag = soc_dmi_flag = 0; + me_flag = 0; magforce_flag = 0; zeeman_flag = aniso_flag = 0; maglangevin_flag = 0; @@ -137,6 +138,9 @@ void FixIntegrationSpin::init() } else if (strstr(force->pair_style,"pair/spin/soc/dmi")) { soc_dmi_flag = 1; lockpairspinsocdmi = (PairSpinSocDmi *) force->pair; + } else if (strstr(force->pair_style,"pair/spin/me")) { + me_flag = 1; + lockpairspinme = (PairSpinMe *) force->pair; } else if (strstr(force->pair_style,"hybrid/overlay")) { PairHybrid *lockhybrid = (PairHybrid *) force->pair; int nhybrid_styles = lockhybrid->nstyles; @@ -151,6 +155,9 @@ void FixIntegrationSpin::init() } else if (strstr(lockhybrid->keywords[ipair],"pair/spin/soc/dmi")) { soc_dmi_flag = 1; lockpairspinsocdmi = (PairSpinSocDmi *) lockhybrid->styles[ipair]; + } else if (strstr(lockhybrid->keywords[ipair],"pair/spin/me")) { + me_flag = 1; + lockpairspinme = (PairSpinMe *) lockhybrid->styles[ipair]; } } } else error->all(FLERR,"Illegal fix integration/spin command"); @@ -189,7 +196,7 @@ void FixIntegrationSpin::init() if (mpi_flag) sectoring(); - // grow tables for k and adv_list + // grow tables of stacking variables stack_head = memory->grow(stack_head,nsectors,"integration/spin:stack_head"); stack_foot = memory->grow(stack_foot,nsectors,"integration/spin:stack_foot"); @@ -461,6 +468,17 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) } } + if (me_flag) { // me + temp_cut = lockpairspinme->cut_spin_me[itype][jtype]; + cut_2 = temp_cut*temp_cut; + if (rsq <= cut_2) { + eij[0] = rij[0]*inorm; + eij[1] = rij[1]*inorm; + eij[2] = rij[2]*inorm; + lockpairspinme->compute_me(i,j,eij,fmi,spi,spj); + } + } + } if (magforce_flag) { // mag. forces diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_integration_spin.h index 727b5c89c6..7f55368922 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -51,6 +51,7 @@ class FixIntegrationSpin : public Fix { int magpair_flag; // magnetic pair flags int exch_flag; int soc_neel_flag, soc_dmi_flag; + int me_flag; int magforce_flag; // magnetic force flags int zeeman_flag, aniso_flag; int maglangevin_flag; // magnetic langevin flags @@ -62,6 +63,7 @@ class FixIntegrationSpin : public Fix { class PairSpinExchange *lockpairspinexchange; class PairSpinSocNeel *lockpairspinsocneel; class PairSpinSocDmi *lockpairspinsocdmi; + class PairSpinMe *lockpairspinme; class FixForceSpin *lockforcespin; class FixLangevinSpin *locklangevinspin; diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_me.cpp index 3c6f4fa7ed..1fc4cc6c44 100755 --- a/src/SPIN/pair_spin_me.cpp +++ b/src/SPIN/pair_spin_me.cpp @@ -42,11 +42,12 @@ PairSpinMe::PairSpinMe(LAMMPS *lmp) : Pair(lmp) { hbar = force->hplanck/MY_2PI; - newton_pair_spin = 0; // no newton pair for now + //newton_pair_spin = 0; // no newton pair for now // newton_pair = 0; single_enable = 0; me_flag = 0; + me_mech_flag = 0; no_virial_fdotr_compute = 1; } @@ -60,6 +61,7 @@ PairSpinMe::~PairSpinMe() memory->destroy(cut_spin_me); memory->destroy(ME); + memory->destroy(ME_mech); memory->destroy(v_mex); memory->destroy(v_mey); memory->destroy(v_mez); @@ -150,7 +152,8 @@ void PairSpinMe::compute(int eflag, int vflag) if (me_flag){ cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; if (rsq <= cut_me_2){ - compute_me(i,j,fmi,fmj,spi,spj); + compute_me(i,j,rij,fmi,spi,spj); + compute_me_mech(i,j,fi,spi,spj); } } @@ -161,14 +164,11 @@ void PairSpinMe::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; -// if (newton_pair || j < nlocal) { => to be corrected - if (newton_pair_spin) { + if (newton_pair || j < nlocal) { // => to be corrected +// if (newton_pair_spin) { f[j][0] += fj[0]; f[j][1] += fj[1]; f[j][2] += fj[2]; - fm[j][0] += fmj[0]; - fm[j][1] += fmj[1]; - fm[j][2] += fmj[2]; } if (eflag) { @@ -189,30 +189,29 @@ void PairSpinMe::compute(int eflag, int vflag) } - /* ---------------------------------------------------------------------- */ -void PairSpinMe::compute_me(int i, int j, double fmi[3], double fmj[3], double spi[3], double spj[3]) +void PairSpinMe::compute_me(int i, int j, double eij[3], double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; itype = type[i]; jtype = type[j]; - double **x = atom->x; double meix,meiy,meiz; - double rx, ry, rz, inorm; + double rx, ry, rz; + double vx, vy, vz; - rx = x[j][0] - x[i][0]; - ry = x[j][1] - x[i][1]; - rz = x[j][2] - x[i][2]; - inorm = 1.0/sqrt(rx*rx+ry*ry+rz*rz); - rx *= inorm; - ry *= inorm; - rz *= inorm; + rx = eij[0]; + ry = eij[1]; + rz = eij[2]; - meix = v_mey[itype][jtype]*rz - v_mez[itype][jtype]*ry; - meiy = v_mez[itype][jtype]*rx - v_mex[itype][jtype]*rz; - meiz = v_mex[itype][jtype]*ry - v_mey[itype][jtype]*rx; + vx = v_mex[itype][jtype]; + vy = v_mey[itype][jtype]; + vz = v_mez[itype][jtype]; + + meix = vy*rz - vz*ry; + meiy = vz*rx - vx*rz; + meiz = vx*ry - vy*rx; meix *= ME[itype][jtype]; meiy *= ME[itype][jtype]; @@ -221,13 +220,39 @@ void PairSpinMe::compute_me(int i, int j, double fmi[3], double fmj[3], double fmi[0] += spj[1]*meiz - spj[2]*meiy; fmi[1] += spj[2]*meix - spj[0]*meiz; fmi[2] += spj[0]*meiy - spj[1]*meix; - - fmj[0] -= spi[1]*meiz - spi[2]*meiy; - fmj[1] -= spi[2]*meix - spi[0]*meiz; - fmj[2] -= spi[0]*meiy - spi[1]*meix; } +/* ---------------------------------------------------------------------- */ + +void PairSpinMe::compute_me_mech(int i, int j, double fi[3], double spi[3], double spj[3]) +{ + int *type = atom->type; + int itype, jtype; + itype = type[i]; + jtype = type[j]; + + double meix,meiy,meiz; + double vx, vy, vz; + + vx = v_mex[itype][jtype]; + vy = v_mey[itype][jtype]; + vz = v_mez[itype][jtype]; + + meix = spi[1]*spi[2] - spi[2]*spj[1]; + meiy = spi[2]*spi[0] - spi[0]*spj[2]; + meiz = spi[0]*spi[1] - spi[1]*spj[0]; + + meix *= ME_mech[itype][jtype]; + meiy *= ME_mech[itype][jtype]; + meiz *= ME_mech[itype][jtype]; + + fi[0] = meiy*vz - meiz*vy; + fi[1] = meiz*vx - meix*vz; + fi[2] = meix*vy - meiy*vx; + +} + /* ---------------------------------------------------------------------- allocate all arrays ------------------------------------------------------------------------- */ @@ -242,11 +267,12 @@ void PairSpinMe::allocate() for (int j = i; j <= n; j++) setflag[i][j] = 0; - memory->create(cut_spin_me,n+1,n+1,"pair:cut_spin_me"); - memory->create(ME,n+1,n+1,"pair:ME"); - memory->create(v_mex,n+1,n+1,"pair:ME_vector_x"); - memory->create(v_mey,n+1,n+1,"pair:ME_vector_y"); - memory->create(v_mez,n+1,n+1,"pair:ME_vector_z"); + memory->create(cut_spin_me,n+1,n+1,"pair/spin/me:cut_spin_me"); + memory->create(ME,n+1,n+1,"pair/spin/me:ME"); + memory->create(ME_mech,n+1,n+1,"pair/spin/me:ME_mech"); + memory->create(v_mex,n+1,n+1,"pair/spin/me:ME_vector_x"); + memory->create(v_mey,n+1,n+1,"pair/spin/me:ME_vector_y"); + memory->create(v_mez,n+1,n+1,"pair/spin/me:ME_vector_z"); memory->create(cutsq,n+1,n+1,"pair:cutsq"); @@ -297,7 +323,7 @@ void PairSpinMe::coeff(int narg, char **arg) force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); const double rij = force->numeric(FLERR,arg[3]); - const double me = (force->numeric(FLERR,arg[4]))/hbar; + const double me = (force->numeric(FLERR,arg[4])); double mex = force->numeric(FLERR,arg[5]); double mey = force->numeric(FLERR,arg[6]); double mez = force->numeric(FLERR,arg[7]); @@ -311,7 +337,8 @@ void PairSpinMe::coeff(int narg, char **arg) for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { cut_spin_me[i][j] = rij; - ME[i][j] = me; + ME[i][j] = me/hbar; + ME_mech[i][j] = me; v_mex[i][j] = mex; v_mey[i][j] = mey; v_mez[i][j] = mez; @@ -337,12 +364,9 @@ void PairSpinMe::init_style() neighbor->request(this,instance_me); // check this half/full request => to be corrected/reviewed -#define FULLNEI -#if defined FULLNEI int irequest = neighbor->request(this,instance_me); neighbor->requests[irequest]->half = 0; neighbor->requests[irequest]->full = 1; -#endif } diff --git a/src/SPIN/pair_spin_me.h b/src/SPIN/pair_spin_me.h index 31e0d8b560..18b7ffbb00 100755 --- a/src/SPIN/pair_spin_me.h +++ b/src/SPIN/pair_spin_me.h @@ -39,9 +39,11 @@ class PairSpinMe : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_me(int, int, double fmi[3], double fmj[3], double spi[3], double spj[3]); + void compute_me(int, int, double [3], double [3], double [3], double [3]); + void compute_me_mech(int, int, double [3], double [3], double [3]); int me_flag; // me flag + int me_mech_flag; // mech calculation flag double cut_spin_me_global; // global me cutoff double **cut_spin_me; // me cutoff distance @@ -50,7 +52,7 @@ class PairSpinMe : public Pair { int newton_pair_spin; double hbar; - double **ME; // me coeff in eV + double **ME, **ME_mech; // me coeff in eV double **v_mex, **v_mey, **v_mez; // me direction void allocate(); diff --git a/src/SPIN/pair_spin_soc_neel.h b/src/SPIN/pair_spin_soc_neel.h index ee675b36c7..b02731b214 100755 --- a/src/SPIN/pair_spin_soc_neel.h +++ b/src/SPIN/pair_spin_soc_neel.h @@ -39,8 +39,8 @@ class PairSpinSocNeel : public Pair { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_soc_neel(int, int, double, double eij[3], double fmi[3], double spi[3], double spj[3]); - void compute_soc_mech_neel(int, int, double, double eij[3], double fi[3], double spi[3], double spj[3]); + void compute_soc_neel(int, int, double, double [3], double [3], double [3], double [3]); + void compute_soc_mech_neel(int, int, double, double [3], double [3], double [3], double [3]); int soc_neel_flag; // soc neel flag int soc_mech_flag; // mech calculation flag From 5b93fc6a273824087f71de1a8dc65b2ca7592855 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 16 Jan 2018 12:50:00 -0700 Subject: [PATCH 064/675] Commit JT 011617 --- examples/SPIN/in.spin.bfo | 7 ++- src/SPIN/compute_spin.cpp | 4 +- src/SPIN/fix_force_spin.cpp | 29 +++++----- src/SPIN/fix_force_spin.h | 6 +- src/SPIN/fix_integration_spin.cpp | 92 ++++++++++++++++++++++--------- src/SPIN/fix_integration_spin.h | 2 + src/SPIN/pair_spin_me.cpp | 14 ++--- 7 files changed, 96 insertions(+), 58 deletions(-) diff --git a/examples/SPIN/in.spin.bfo b/examples/SPIN/in.spin.bfo index 1ceeb86614..bf42a31c67 100644 --- a/examples/SPIN/in.spin.bfo +++ b/examples/SPIN/in.spin.bfo @@ -23,7 +23,7 @@ atom_modify map array #Lattice constant of sc Iron atoms of BFO lattice sc 3.96 -region box block 0.0 17.0 0.0 17.0 0.0 5.0 +region box block 0.0 34.0 0.0 34.0 0.0 5.0 create_box 1 box create_atoms 1 box @@ -53,13 +53,14 @@ neigh_modify every 10 check yes delay 20 #Type | Intensity (T or eV) | Direction #fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 fix 1 all force/spin anisotropy 0.0000035 0.0 0.0 1.0 +#fix 1 all force/spin anisotropy 0.0 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed -fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -fix 3 all integration/spin serial +fix 3 all integration/spin serial lattice no #Setting the timestep for the simulation (in ps) timestep 0.0001 diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index a7069fa808..313250b6e9 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -106,9 +106,7 @@ void ComputeSpin::compute_vector() mag[0] += sp[i][0]; mag[1] += sp[i][1]; mag[2] += sp[i][2]; - magenergy -= sp[i][0]*fm[i][0]; - magenergy -= sp[i][1]*fm[i][1]; - magenergy -= sp[i][2]*fm[i][2]; + magenergy -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_force_spin.cpp index 921a9964bb..d9ee1e8457 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_force_spin.cpp @@ -187,22 +187,23 @@ void FixForceSpin::post_force(int vflag) emag = 0.0; for (int i = 0; i < nlocal; i++) { + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; fmi[0] = fmi[1] = fmi[2] = 0.0; - if (zeeman_flag) { + + if (zeeman_flag) { // compute Zeeman interaction compute_zeeman(i,fmi); - emag -= sp[i][0] * fmi[0]; - emag -= sp[i][1] * fmi[1]; - emag -= sp[i][2] * fmi[2]; + emag -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + emag *= hbar; } - if (aniso_flag) { - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; + + if (aniso_flag) { // compute magnetic anisotropy compute_anisotropy(i,spi,fmi); - emag -= 0.5 * sp[i][0] * fmi[0]; - emag -= 0.5 * sp[i][1] * fmi[1]; - emag -= 0.5 * sp[i][2] * fmi[2]; + emag -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + emag *= hbar; } + fm[i][0] += fmi[0]; fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; @@ -259,16 +260,12 @@ void FixForceSpin::set_magneticforce() double FixForceSpin::compute_scalar() { - double emag_all = 0.0; - // only sum across procs one time + //printf("test inside compute_scalar \n"); if (eflag == 0) { MPI_Allreduce(&emag,&emag_all,1,MPI_DOUBLE,MPI_SUM,world); eflag = 1; } - - emag_all *= hbar; - return emag_all; } diff --git a/src/SPIN/fix_force_spin.h b/src/SPIN/fix_force_spin.h index 1f2b36d8e7..dfc526088e 100644 --- a/src/SPIN/fix_force_spin.h +++ b/src/SPIN/fix_force_spin.h @@ -38,8 +38,8 @@ class FixForceSpin : public Fix { double compute_scalar(); int zeeman_flag, aniso_flag; - void compute_zeeman(int, double fmi[3]); - void compute_anisotropy(int, double spi[3], double fmi[3]); + void compute_zeeman(int, double [3]); + void compute_anisotropy(int, double [3], double [3]); protected: int style; // style of the magnetic force @@ -49,7 +49,7 @@ class FixForceSpin : public Fix { int ilevel_respa; int time_origin; int eflag; - double emag; + double emag, emag_all; int varflag; int magfieldstyle; diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index a79d24a570..764f35e49b 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -60,7 +60,9 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : lockpairspinexchange(NULL), lockpairspinsocneel(NULL), lockforcespin(NULL), locklangevinspin(NULL) { - + +//#define INIT1 +#if defined INIT1 if (narg != 4) error->all(FLERR,"Illegal fix integration/spin command"); time_integrate = 1; @@ -77,11 +79,48 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : mpi_flag = 1; } else error->all(FLERR,"Illegal fix integration/spin command"); } else error->all(FLERR,"Illegal fix integration/spin command"); +#endif + + +#define INIT2 +#if defined INIT2 + if (narg < 4) error->all(FLERR,"Illegal fix/integration/spin command"); + + time_integrate = 1; + + extra = NONE; + mpi_flag = NONE; + mech_flag = 1; + + if (strcmp(arg[2],"integration/spin") == 0) { + extra = SPIN; + } else error->all(FLERR,"Illegal fix integration/spin command"); + + int iarg = 3; + while (iarg < narg) { + if (strcmp(arg[iarg],"serial") == 0){ + mpi_flag = 0; + iarg += 1; + } else if (strcmp(arg[iarg],"mpi") == 0) { + mpi_flag = 1; + iarg += 1; + } else if (strcmp(arg[iarg],"lattice") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal fix/integration/spin command"); + if (strcmp(arg[iarg+1],"no") == 0) mech_flag = 0; + else if (strcmp(arg[iarg+1],"yes") == 0) mech_flag = 1; + else error->all(FLERR,"Illegal fix/integration/spin command"); + iarg += 2; + } else error->all(FLERR,"Illegal fix langevin command"); + } - // error checks +#endif + if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); + if (mpi_flag = NONE) + error->all(FLERR,"Illegal fix/integration/spin command"); + magpair_flag = 0; exch_flag = 0; soc_neel_flag = soc_dmi_flag = 0; @@ -97,13 +136,11 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : FixIntegrationSpin::~FixIntegrationSpin() { - memory->destroy(rsec); memory->destroy(stack_head); memory->destroy(stack_foot); memory->destroy(forward_stacks); memory->destroy(backward_stacks); - } /* ---------------------------------------------------------------------- */ @@ -225,14 +262,16 @@ void FixIntegrationSpin::initial_integrate(int vflag) int *mask = atom->mask; // update half v for all atoms - - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - if (rmass) dtfm = dtf / rmass[i]; - else dtfm = dtf / mass[type[i]]; - v[i][0] += dtfm * f[i][0]; - v[i][1] += dtfm * f[i][1]; - v[i][2] += dtfm * f[i][2]; + + if (mech_flag) { + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (rmass) dtfm = dtf / rmass[i]; + else dtfm = dtf / mass[type[i]]; + v[i][0] += dtfm * f[i][0]; + v[i][1] += dtfm * f[i][1]; + v[i][2] += dtfm * f[i][2]; + } } } @@ -276,15 +315,16 @@ void FixIntegrationSpin::initial_integrate(int vflag) // update x for all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - x[i][0] += dtv * v[i][0]; - x[i][1] += dtv * v[i][1]; - x[i][2] += dtv * v[i][2]; + if (mech_flag) { + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] += dtv * v[i][0]; + x[i][1] += dtv * v[i][1]; + x[i][2] += dtv * v[i][2]; } + } } - // update half s for all particles if (extra == SPIN) { @@ -675,13 +715,15 @@ void FixIntegrationSpin::final_integrate() // update half v for all particles - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - if (rmass) dtfm = dtf / rmass[i]; - else dtfm = dtf / mass[type[i]]; - v[i][0] += dtfm * f[i][0]; - v[i][1] += dtfm * f[i][1]; - v[i][2] += dtfm * f[i][2]; + if (mech_flag) { + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + if (rmass) dtfm = dtf / rmass[i]; + else dtfm = dtf / mass[type[i]]; + v[i][0] += dtfm * f[i][0]; + v[i][1] += dtfm * f[i][1]; + v[i][2] += dtfm * f[i][2]; + } } } diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_integration_spin.h index 7f55368922..6d79b7d6e6 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -45,6 +45,8 @@ class FixIntegrationSpin : public Fix { protected: int extra, mpi_flag; + int mech_flag; // mech_flag = 0 if spins only + // mech_flag = 1 if spin-lattice calc. double dtv,dtf,dts; // velocity, force, and spin timesteps diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_me.cpp index 1fc4cc6c44..575b5f53d4 100755 --- a/src/SPIN/pair_spin_me.cpp +++ b/src/SPIN/pair_spin_me.cpp @@ -164,18 +164,16 @@ void PairSpinMe::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - if (newton_pair || j < nlocal) { // => to be corrected -// if (newton_pair_spin) { - f[j][0] += fj[0]; - f[j][1] += fj[1]; - f[j][2] += fj[2]; + // check newton pair => see if needs correction + if (newton_pair || j < nlocal) { + f[j][0] -= fj[0]; + f[j][1] -= fj[1]; + f[j][2] -= fj[2]; } if (eflag) { if (rsq <= cut_me_2) { - evdwl -= spi[0]*fmi[0]; - evdwl -= spi[1]*fmi[1]; - evdwl -= spi[2]*fmi[2]; + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= hbar; } else evdwl = 0.0; } From 3abb7f0eafe49ff802d3dc361c2ebcb600886776 Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 17 Jan 2018 14:24:34 -0700 Subject: [PATCH 065/675] Commit JT 011718 Correction bug in fix/integration/spin --- examples/SPIN/in.spin.cobalt | 4 +-- src/SPIN/fix_integration_spin.cpp | 43 ++++++++++--------------------- src/SPIN/fix_integration_spin.h | 3 ++- 3 files changed, 18 insertions(+), 32 deletions(-) diff --git a/examples/SPIN/in.spin.cobalt b/examples/SPIN/in.spin.cobalt index ce3008d3d4..36d3cfd85f 100644 --- a/examples/SPIN/in.spin.cobalt +++ b/examples/SPIN/in.spin.cobalt @@ -6,7 +6,7 @@ clear units metal dimension 3 #boundary p p p -boundary p p f +boundary p p p #newton off @@ -119,6 +119,6 @@ thermo_modify format float %20.15g dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 10000 +run 10 #run 10000 diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 764f35e49b..dc91b5cc9f 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -60,30 +60,7 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : lockpairspinexchange(NULL), lockpairspinsocneel(NULL), lockforcespin(NULL), locklangevinspin(NULL) { - -//#define INIT1 -#if defined INIT1 - if (narg != 4) error->all(FLERR,"Illegal fix integration/spin command"); - - time_integrate = 1; - extra = NONE; - mpi_flag = NONE; - - int iarg = 2; - if (strcmp(arg[iarg],"integration/spin") == 0) { - extra = SPIN; - if (strcmp(arg[iarg+1],"serial") == 0){ - mpi_flag = 0; - } else if (strcmp(arg[iarg+1],"mpi") == 0) { - mpi_flag = 1; - } else error->all(FLERR,"Illegal fix integration/spin command"); - } else error->all(FLERR,"Illegal fix integration/spin command"); -#endif - - -#define INIT2 -#if defined INIT2 if (narg < 4) error->all(FLERR,"Illegal fix/integration/spin command"); time_integrate = 1; @@ -97,6 +74,7 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : } else error->all(FLERR,"Illegal fix integration/spin command"); int iarg = 3; + while (iarg < narg) { if (strcmp(arg[iarg],"serial") == 0){ mpi_flag = 0; @@ -113,12 +91,10 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : } else error->all(FLERR,"Illegal fix langevin command"); } -#endif - if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); - if (mpi_flag = NONE) + if (mpi_flag == NONE) error->all(FLERR,"Illegal fix/integration/spin command"); magpair_flag = 0; @@ -231,15 +207,24 @@ void FixIntegrationSpin::init() // perform the sectoring if mpi integration - if (mpi_flag) sectoring(); + if (mpi_flag) { + sectoring(); + + // grow tables of stacking variables + + stack_head = memory->grow(stack_head,nsectors,"integration/spin:stack_head"); + stack_foot = memory->grow(stack_foot,nsectors,"integration/spin:stack_foot"); + forward_stacks = memory->grow(forward_stacks,atom->nmax,"integration/spin:forward_stacks"); + backward_stacks = memory->grow(backward_stacks,atom->nmax,"integration/spin:backward_stacks"); + } // grow tables of stacking variables - + /* stack_head = memory->grow(stack_head,nsectors,"integration/spin:stack_head"); stack_foot = memory->grow(stack_foot,nsectors,"integration/spin:stack_foot"); forward_stacks = memory->grow(forward_stacks,atom->nmax,"integration/spin:forward_stacks"); backward_stacks = memory->grow(backward_stacks,atom->nmax,"integration/spin:backward_stacks"); - +*/ } /* ---------------------------------------------------------------------- */ diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_integration_spin.h index 6d79b7d6e6..15471278ab 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -44,7 +44,8 @@ class FixIntegrationSpin : public Fix { void pre_neighbor(); protected: - int extra, mpi_flag; + int extra; + int mpi_flag; //mpi_flag = if parallel algorithm int mech_flag; // mech_flag = 0 if spins only // mech_flag = 1 if spin-lattice calc. From 05a7e5011fc27306f8d8b95865abdeeea97f4324 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 23 Jan 2018 17:23:05 -0700 Subject: [PATCH 066/675] Commit JT 012318 --- examples/SPIN/in.spin.cobalt | 3 ++- src/SPIN/fix_integration_spin.cpp | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/SPIN/in.spin.cobalt b/examples/SPIN/in.spin.cobalt index 36d3cfd85f..61ffa3f03d 100644 --- a/examples/SPIN/in.spin.cobalt +++ b/examples/SPIN/in.spin.cobalt @@ -87,7 +87,8 @@ neigh_modify every 10 check yes delay 20 #fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -fix 3 all integration/spin mpi +#fix 3 all integration/spin mpi +fix 3 all integration/spin serial lattice no #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index dc91b5cc9f..a2724b106e 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -88,14 +88,14 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : else if (strcmp(arg[iarg+1],"yes") == 0) mech_flag = 1; else error->all(FLERR,"Illegal fix/integration/spin command"); iarg += 2; - } else error->all(FLERR,"Illegal fix langevin command"); + } else error->all(FLERR,"Illegal fix/integration/spin command"); } if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); - if (mpi_flag == NONE) - error->all(FLERR,"Illegal fix/integration/spin command"); + //if (mpi_flag == NONE) + // error->all(FLERR,"Illegal fix/integration/spin command"); magpair_flag = 0; exch_flag = 0; From 755bda22755f44124d504dfd3345978cfae6eaca Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 1 Feb 2018 15:31:01 -0700 Subject: [PATCH 067/675] Commit JT 020118 --- examples/SPIN/in.spin.cobalt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/SPIN/in.spin.cobalt b/examples/SPIN/in.spin.cobalt index 61ffa3f03d..1f740f0741 100644 --- a/examples/SPIN/in.spin.cobalt +++ b/examples/SPIN/in.spin.cobalt @@ -120,6 +120,5 @@ thermo_modify format float %20.15g dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 10 -#run 10000 +run 1000 From 642c8f9859b9ea3b99fad369efc4d59b71e2b60a Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 5 Feb 2018 14:22:48 -0700 Subject: [PATCH 068/675] Commit JT 020518 Begin work documentation --- doc/src/Eqs/pair_spin_exchange_function.pdf | Bin 0 -> 71498 bytes doc/src/Eqs/pair_spin_exchange_function.tex | 13 +++ .../Eqs/pair_spin_exchange_interaction.pdf | Bin 0 -> 61879 bytes .../Eqs/pair_spin_exchange_interaction.tex | 11 +++ doc/src/compute_spin.txt | 28 ++++-- doc/src/pair_spin_exchange.txt | 82 ++++++++++++++++++ examples/SPIN/in.spin.cobalt | 4 +- src/SPIN/fix_integration_spin.cpp | 1 - 8 files changed, 130 insertions(+), 9 deletions(-) create mode 100644 doc/src/Eqs/pair_spin_exchange_function.pdf create mode 100644 doc/src/Eqs/pair_spin_exchange_function.tex create mode 100644 doc/src/Eqs/pair_spin_exchange_interaction.pdf create mode 100644 doc/src/Eqs/pair_spin_exchange_interaction.tex create mode 100644 doc/src/pair_spin_exchange.txt diff --git a/doc/src/Eqs/pair_spin_exchange_function.pdf b/doc/src/Eqs/pair_spin_exchange_function.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4c80a14de8af12257d7f37e40da1da99970def9d GIT binary patch literal 71498 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

%pUbfczzBFU3q2QGD z{VH@Nq*;*r=r{C%)xAGV)^I?1F=3 z+n&FUrtFBX*&AKj>wRfSskmNI;7T=j$+Kd_B^SG)rEMDDH$gpz47DrD!)j}IFX@yR z7!CF<7LabS&{97w-n$BOJ{r|o5UvmSAAQ1z-5A| zsFknyRfHG?TQ3j`Mu5@2Wc4EM&|SNXYN^x`A}=d}Jlw3zhub9u3^h~&{4v%0f*r$j zafuNekcSi88t2h~eEO7R9i)g$*JvQZ<#^Iex+ z$k=Egisy^}p0F@H7`t|GzZdWJl=mBSLxHc89QFr$)x{GGL;He^Po)V6?Kd2E-|KGu zR=mQLqJq@xs%Ld#oDqt#sDev}4J~IeV#_@=6mvqD@gX7WM?uLEqAJ)1VJV+h0nJrTE1 zhlAnmy)DT%Mx~TJwNqX-?jf4Z#;9BZ*H&k7OXyMMy5)_IOw&}mji&Q>9wnpQbHrAc zUa4s8-z{9hBgae`Ob4Hr?qq#cyP2?X8-TJouI_FeId-q)Tl@f=*90i#h5cC?U2bBJEc#xhF1V_}cg5fTYGgFc#y+h;mvf zqf+eKYi_Ec_2Jg_-Q{N>VYZf?BtPW}KZ|D0&M@^Ku-NxYJd$Z-9H`Y2Fo+n%qI$Mp z!NKYi3=6)ESBA9mXh{v0R;&4H!Km~}WFDGA05&LR|#nF=#;gCI!6f`g$H9Y;2PN|lcxXzKzc z;QgXj)jVS%H{qj=y~Lk!thx565vcsPVVUP&EyH?CG&bWlM7H+#3ymuj!)uAxgG{FG zb>~66%0JF<@peY7bgGS!{8t*M_yMugUPGM2$ z{z;sfmvkI#gvfG4BVlS(ZjwY< z!@=))VZ3B$J+x>(k07#i_d*Rqq0gQ5CZR4Erc&i~>Qf-u=jr~b!m@2i|N-_V<+t306hE9!o+F)3Lo88Tq=Jl z^O=HLtICemv&nHC1v|_%|91(5Y+OmU7!9WSO*baPAV0jQCGwY`)9Wu25^llpjrGg@ zAa|1oxpx5fJKYC4w@N|SSF3TK0yvLWD~%~%GrVurhi=0nN(!3dbrk>DZuj8z#i1>- zv&7l)?cJrOm{KaRu{pi4qWwi#j((P6Xjq{3v6~=Bx}Rxc50TgV+Er2W3Qk5T#3(D% zxEv#GiGqNcVI;9bL7GtH%t)<82+7qrsDp!K zh~K+hJa=G(HS-gAT?2o6fRB@iu*Yp?SH0RKwRrVOv|d7`J#;ZmW?5V72532f($)Kt zX`wx}d}m58iKPAqPF^Nh;NN=(t{3XOWt$jZF|zHh4|suK(Vf)`=DGV9X!D+P_T#bN zg8DeN5f@c6fm@Y)m#_)uYi>gImu|RB&$>PhNz=~7V<@HX+Pn-azeg@KwIcKz$2q7f zRLqJp+75%Xx7Xq$k4R{8p3-b&Rul7^j6Fm-cnam;9PR`6x1iM7au%&K37;qr$h|QR zHY#O#k12alpO*i<^(_UL;mjvgL_t*Exb%z1NOtoXA5;ha{n3+U2dcERb*){rDfi@H z#$|}bHQI@$%;1uNCsNeDNJYp^lc9NA2Fd?VbpXvWkPF1Y(bbJS1a{d1f9D#=9HTEx zIZSb%F&=i-Km|H|GI@Ht5H&x=@3P4QkN40=-l$uRJpAwMXG(UGx(hpj<>nZoQ4qy^ zItM8&q3=1Zq>XV;^v5SB3ZrNUPW9VozYcB3$kbehSi4JfpU8@VP&XBi>QVc}&-{B) z%_?)yFo-HAJl+%%0m;+;#t%TlcauTU8 zi>koH9M3`{qz~2M-Kqr=j^L3fD=~#plFAwfCE5&U1UXvJwT+Ek(h4C6`W&| z@M)j51=wk1`su+t{D8kuzcjHWy|j4w6{2$H4>l+4Q_OHDRCC-M4Bm2zT2#z5Hhg5q9z3{pFVcFDW2KUQ=^^?sMrT+OSsm=UF4L(C z!}})UIS;fEBj%9LtEb~p8>oc{>46a-j!TmfEZu^OoZQ>f+EJdxbqA+NTaXB z_TA98l!{UeuawU{al#nYw$~M_5cqWG9<}(Xzf!AjyZFZ%X5?x)3A2<*8h-Xqn^4S^B+w0Emd!jRY)|(=vi@7F!OrzD;ecP`dUC5jjxJ8ugZ#Mb|1R%^h7xFrA z7L8ec((2&j6?G0NtiCDEx7@n-sqT1UN9RVEwKFgtxsj+j-b{8&d-A_Kqbxyyre=Va zwu%J41({Yh>|eUASI7j=CcOBY(otMTfSmFD?R(w}r8PykN6c!{R$^7fTu@;GuF%1* zCLAjxbgs+S_&5Ie`rYcx7fI)XD*m>Z4QJ*99Xc2u#tgSMhY!9_ zW(s$#Lj(o0-DjTs`9$06Aay0fr{J|0jw?Kc1nR%PGRcDxi&3+krTzDGL>1FT85J`J zVSAnjT^|+f9yLjaqsK0ko0SKFX=nqH$AZmfPABrH*azQLyD(XJ(eY`a>S6qc85jaO zCv0D*xZ^3Lqt?bBb+oajNp;VJiFDnHr_AlWnSI6+mIIwl&2C=I&fcE#I!!ZElDoH2 zu4rIckaUPPEnDgq?aFTY_E*tg<#nmU?e|=pFDwi06T_O8BGpA3jtQiYs2|QM{l$pC z76%z#DXmxT?5$^V;=9tdJy+MS#l5nGICL!r=DWwR+mg0M5L)HmPiti3%f+*fa{!J# zQEqIOD(qc@rJvGcwL&e-fMpnY@bP|8YPPL3r$yM9>GUEHX=0WWrK22#>>m$}o|HJ=KfzL&AK+6tYBUfJpNq^qN4^SUcEqfEgAV0_Xgs>TGh zaZ_}0A(s<${ML2eJXNw-X|J*z(y=nRkaUA&!EN(za;3p*u zeMFnK1v#+Iqw?kkQm{8E$Dr+2QWra5?tiCsvzU7QujQ& zN@3NAK%r~S5O9nBsClyl5TanS$rC?ENDlLxg3VHngrv}%PTt7D3JfSibFyx6f4_M)%$whiM}&w95VSm!joeus zs->OHbckXgGzI9JyVLFVPfic9dB>#}XmEDqswtFQ(to8Z_dtw_T<8J#`gzQ3Or$l{ zo*NY>1^5#$l-+C_sT6fxnB29-xe+*%%%!?c>S&ctbb9ud<{FL*p4Ib==3P-kody>} zQ3tabK$e3uTkx2oA$pG4(%bOr-0B;}EwvcfFAP#fQz!5SNTE+h4zq0q@{JnFtgC zuP}P}^D{T{(FE@*=1EG%XBOMVcV%<+iXolChA8uX1W06dIYMn8HL`oE$51I*Vu1>< zx%Ph(dA+94BDwf%60zr0xE^@syBf>rRvf0FsjK~!y}=l4FI^lW#yE!H5DqpCcj7h= zE$J3KQ+!+TIq(mSXOaOKuO}8<@;6qr3r-kfkZAzQ*5#fM6+%)9i zb*t>U(=;EV&bCI)K6qkRl>d;SL(A%r8%nmYe=D?fN~@7ZWMr+F5uEB)NZpvKY;Y|^ zcx?t34*^>B_%A?^mb4T=C`a13W=zJv{~Bp2e|!lXYD!2zx1=x`0|{6;YB%(X=|i{> z==<7XSaJXqQP|heI*pP3!fCw@K#WN@qb@JD#ILHjU8+Wa$Q^^^(kIBbhsUI^anWV* z-#DUK!%+?FJD}*Md2R?{#uzEBDm_jv2g)XXCiiAiMtEyRQ`gc6UWI)-f5~nX9h_7} zUC2d19}^Sj_3SqbEXRBMw$VG&cxm0|80KI$B%@>IRy4;;zgam9_KBM4>mNRd#kqu# zbM!b~bk%y0@Fd%0mmIQyJA0;YkKByV$~AYr(*q}-k_Z&dpZQbJJSXG(y*};k$0;*~ zTi=5rS&ob9684@@KzQl45{I+T${S!~54u&HL^aPG}WXcM5EUnE$a3$4Woi}8y+8YmbD9kVK+wF7;(DUg&x&ywrAWdcPW@*1S zbZ#Byni=-ur;h~dm~fU~49liWAlzIL-{aj3`ozGmg=Vu$K`D}yFIw7qcQLUKl<5bhzU`m~#yK z)3eAdX$Tdvm^FztCjJhv9?H$8?3x^TP3?}c3%~kk$2ILWOO(4CqphuaUGs2%a9^Dl z$Npg)!Qd~pB?0ovgk3|Qo(4yYT%Qo|2qVl}Yf9rz#~sJIq;~*Yz!HCmc%a#nH4gw= zU8u%zy@fpm&g(RANKNHN#Y5!Ip{hK%}&Ee;7IH)Ej(Tu5+5Z*;H z|1X%oZVV(PKCcQCpDym%Ml;h}kimmM+-Iq7){jiu@NK)RUX)UBR?3`g^_IBlq`@@e zv?2*0+Y-oyBws-Jp;7qqs2E8$xu`pKdD48GpjP~VrhSPY+f#(>Sg+{Ufgy(+Av&gHb=;y_FYQ(spx&Zw%LZ zdgOJqtodnmecEB@#_KtCuMH$K9vf<&#&_#*Mp>U9g}YrSrjz|4Jws~J zkD`Z&Q0}^7QMaL8wlDf5#+%FjTV6)S!4()}wW9dXT;IF_HF%`wr&t;$-Vzme-uhIq z`4hQxRKj+F#zCg`GKU?KIK`ERR@T1I?zy3hed%vWH&~z~lc~mrr)6TkW=B1IxRe$- z@S{~#o)PA|I)u7M?z+|xCBdtSVk$4Ht$VfPT zeonVcz?u=-RKHU?H{)-6XL4N?K2KN0JPf?hEWJ|C{fg;b`Vm12(YK=4d_`9vK4zQZ zAHLSy00}=-wV2CWb#a0U>wgzGk_=nUAVtQ1fF;A4*kM)-Zy7``3(m)^M&2pjr^09p&ciLM{v|Zt&ZU>C*LR{|J?X9=W`{q_9ULE z>eV9s*WHOwTd(mOr}cOu@U{usJhZpF_UssJ<25XEV{5atmb6JBE3pUD zi#ac-i)w*H^YWcq>rRfdBg-(d6?o1D0~X?&==4jOZYHJF>OCTe>>w?DLL?b9&K;+_ zhW$9u^M-SuBpU|WQ#aIjnE)-*5ILkfx2Rso+d2DEeH&}R!L!we)A+Bp7aEp91u1$Y zVcY6>Q{U!<%Y;K6hx+jO`aJg@V#~#hJPc$oAC=JN-193sSWO&_{huYk6?>tRD1!>{ zL?=_y*Jt_fw_Z$&i4!=}m18-R#zOJp&G+6^<84@>VC0FU^5R4%r^f%;T;jXi_=Nw+e&)z?2Q9h=Xh~`lOJo7A>~K9x z&h6y+jr7oK&ir5KEAxM)um9&LYED*`|4LuESXutR+Qo}oZ}eMXMXVx$PNnlAuA#jE zFnB~3M))nFFrvJqpTtxM^U+1~#JT~j^INwPJvTfjzSCWnTODTAJC{Ir;~VpynGQ`H z=STO$%UyN@BD|18l-;9LaLV83Ft=bYufcAwuMl?{ng~RalrOf}u}jcVc7eTy3Ewn= zARv&$H%wy4_x$o`h+t)HA|Rl`01!nf5GE-fA3q|2o~_4=ffv zUNt{|lEEtm9YUMfM{wd^KTiPcUx5pzje}Z%P4A8? z81gR0i+Wp6gD+MyJY=)3fR3dpm$efNrk zf(C_H+l2by;(`VwEkO8P!+gojOksl93$@?13+44t-G9-mlH@=f3; zK=sYB^<8uSo$%#L2z`ne{AKU>araGV6UPF6{^{D=m9!NPG|q?VAw*pD4gC@L{liqQ z4u5d#wWq5>a`w}0v=1-uyInjC7kM9|dBLB^8vlEKRzSCv0V%k*m)nkG^kxLI*Kw!r z`+f^4>+0bhYUrw4-B)M#-TiHbF4>^ju45;Vg7POUfEby`w)1^?NBbv0-~Sz^3C!~| zp4~4N3sPdc6mWg^`cEeh-MNF00e*|a84#bhb4nbXuhO-Ey& zH9F0>`C_xAZrEcLwqo6R-_h(*$x*)^#=$0g=S*oXQ&S&_n3^&o=rVOPyfj1k!sWqt zj>WbNukLyW#jRO%l9N5Im#iDy@VSRp*=}iCaQ?CqyyISgpsx*n68+a~y(n6l*^t=% z)Q%wW(i0^*J1Zu^3$NYym*+(ANe@0<(uHL+CAK5eHH*F#(dn}Ekg%z^RH%>eyg>gk zO;3E$^Y3{M0oUt`B=s&Q`T+^yYgb2JBzF#Q<#8ep#k%zvhuE((O#kF4(Ox*0jM^fa zyCaAu6E$dZ>-&1~N=hY@wpmBUE%C^%53hxC#mue+o^_n?n`Bo%CSm1~>b!RLol5GJ z*PQKIUh}=1AJd)|o~auj(GMo=Ccp7{AqZ%=G9;#_q)TSI253bQ^O}AHs*Vvj%(#(8 z=o<(07kP^y9x{|eq&U31P7N~g{CfZ6D#rYQX!Idd0c_I390{Yy&mo-=z7ZB{y0+@> z+}N43oDXVn&y{7!oygl@249#%8hw!r{$x zLBcGz)$-x``xx<7+QSJ~;}itW(_3x$Mkl6TUrGsC`NCc$2^ld^!d zs3|oXPXRow?dGJEkG&ec&w3@q*rZCvwj=j*>Z<(1iUhz!h+(M(Rqdrt=v!nO>GLu(lP)7EdrU zP3bP8E!CaRBiiCAZ^96S6=wxX@yx26{`|da%R(Kk(Lvu>C zmZ7cOCRbGM23=ivLb(`S8sT|Y=XAqQfWa`s^Ig)e)Ti% zRwrMF9;~SS`Qi{M4V%zB5vR6@0@|(Q`?JX1a4fzhC8nvapM7%%;drJEViFoIFUj1| zJA+qnLt9Vb{5&8J2!iwwP$&tap~%2^;ddb;!RLUbFEwk~u-A!ZJU>@YT1|5`V4iE} zQo0fU>`~WvmHBmE8= zb_QVqx+}Bnak@m|_iW$lz^8bl@(LnCp8l7rjO}oK(PP$;J6zce?iPOO1dqj2jk269+e6gL+Nk z{BekfmgDd^{p=7fCXNrmwFL<^W=p~wV@fand`eX=zy7%R3XAj8qT%)qL1U0qsUDkY z$-^6Dh;i+~I#$oh@NfNMqkOs4UyST|-W>GAX%^Hc!!>v}lcoAk-A?I0yO8P#^aozs zG{3^FUvG|K34FEF%t$v*1C34$-Y+!aElo$0;&2_Ovv__>fr~oCZY>bt$KEgLx z84ojE{MBNK%Rq4UrHNPekexjuvx1stz5r+b!S8hBEc%2WVY${I+*(C>lM5+6Gmj*` z3cTm0aa#LleHMy6u1lTOnRhz#q=4M+bpEyb23$ANu@DtMOA{;8#U0<19ZIb$?%dtM zjAg?fGodMdA3P_AQkQUAYdIPBQ1{+1WH=Ucrm8q31JV+nL>#g{9x%Nu=Yo+s2n&KC z&K*}FP0Z!W6?S@5ykJg4$q=N_;V5IlNFfin$06-?JILIz?KO*g2xE~c_q>@gTQ>Qf zc-lz2k4b7 z-PTgY6&xJZTPChdcCk0w-m7~|PnhW8AyPmz-Q1kUGvoe42VZAvG)-R6W(*f=Axmv?djaIC$FJh$O-2dei~_aat`*UqgGe6<@GGHnd)!Whq0(MKE(yw$X?V zFv!D}3t4DwL{Gmao_UOR#thyU-}6T0v7zA`=md!6ef|LuL6oW$?Qrq^*x zuytjis0ZV<+qAEjYFu?9CNpPQ@F~w7fxkr~yd!dIf)wIuM%F51P8lIqS7yO)v%Ys! zf@S72kXNu~QvT)g2rpXDwzDDQZn9z;8d+W#BEzq#OTs|$WN>aI63?d(8 z8mcO=uF?1!xbWAae1P+Y*B*azbJNapzHkNMzPHQab)@V##0!zX@AiP3X6n93J4pa? zydep(0H$>m>OL7<|A+6f=0a$<0vHR-)S{+mE+nWn^cmvzMNwoV@amU{M@mhN5RNTI zMGiYlV9Yw|3RgJm+Y;qw2fq|8Yx^WRKCjPyPvgUSasZjroR8P~KWDdd-6n9Y-aIfb z9?vUP_}uX47}QX(1w=C97(tc`Yo_z%@QZk}1v5#1(T zU>qbcmzquS0w&)+Xmi7Ef-jy8?vm!ox*R_e9+Bua#1CCaqevnH({d$*xHe9iy&sSd z&9>;qid6WCPNSzx*nYF1!oh&*I_mGs^{jA4eg#vuyfLlbw6=d+g0a*d?LQA5mWrR( zYHi%QwO@ZA>|8Ti=`;ldQ(z0iO)IWOAj6h70}CfZSzf ziUEgU$vGF7mbA_i>5}LcHfhtPEg;(xokG_Ww1|vn&Uy-BITIymh+s<1hP@)>tscww{o2L6P+{!`7cHFu7 zR2=0zwuExEtIR7R6_4e@YVx6Y`hac+A8uKm+~VW>>FKA;)9jKhe$3(}@~ouHq_ZwS zxO^@`Z1pmsqi9*>!CR(IrZwpjdWcUQlb>z5nCxSXx}<9~=g@B(2#&2KeiEcHfH=R* z%t&$Pz@BJ)Pr1VM5z4ohqHHz)UiqgA&GeNfuWaqhJnS1Xf30DKe9||R32K62O1S3s zp(hsqUVURxJ>5!u5;2w!)qNIGJkmb3Ytu!F*y`8Q8JtOr-!FUXt$43`_1YLOSJ0H` z@^i%t2ro=QAb?=vHGu}U&LLl8`UUqJ^Op$yr!Yn;J?P&lTyo0zFmnuqUYE;&I= z>_^S$MIJtOSy+{ww=!GsShl6>@Ypc*4`%g*z52+E%R4TA@!* zbn@ch(L8=IiAYb?zhDnyqU)`#Euh4wA`%orgPa5Vi3Nd~FyuV9Bh zwvfsQ29wS--nV$kOs7Fsm9lD^j9`NIC2OfrL-zBxvj53a1iD#_w%*VS99## z2CfK7S(*l1+V(iY5rM9ggu7MuwVYWf*~A26SZ*IxPJpXq14#;lRNbuin>V=ckOf~O z(33<%?YAmbQcJaE6k%1}U@Eas*gA4s6yS@0L3k2q8K96kO=`>pR7htmKZ#@X&W_Av zB3O~O@p)_Xy6$JX1Ocm1W*btS@5A~h6b*5S^|Q}M>r}CJys&oTjBVXHYaq|4zM-}I zp`VYYj+WVm298Yx9y9CT3+B5Rg%T4wNv&hpGBf&_+sP(rk5Yk%4sN#`sKW*eUkZg>xjlU~R$yu3 zS#AJ_(_c;Z%~F|rfIx%xd6N*VS zA{nG+j4ka>khuy4XlBmw#}X*(9c%+HLIrHImrw3(in6xcYeBsnkBRkgXLM~;tS@px zJ#`r5BL@_X;L>uW$dpo@*=$ubRujqFBGt)C^|MuFAiO#V1n;_W`@6KFuXNXkG?0Ci zXygGR>N*s>&u#+;noV@h@%F|AT~oJ$KBQe`9tJ!n?>)L2-^!B3;8bIeo2o>kk(7fj za;~V*h{>93l3}CjcwmK!^rpcNwW7x%8aa@qp`SJbZ9=f@N{9sq-zHh z-a|5@9ZLX|Q|A`;+L(#-c#}?jL-TrN$?|bUo&sAI`MLm%1{(LyXAyPtuq=9lkCBBA z->8|_F$EI|&Z|dH^1?)Q@-54)8@sa!y(z~vaR-PM`|_Vyv!aXUwI^AIOn(P@o@WZO zYn21&!j|XyE$peL*_5qboivy&`JxYOKp!GH!ec7o^k~e4EnMFhdcgZ#B&DrIHy% zNnc3YpR?7!;h08TXz<_-C|Hw#(MQy zozoXQ;!7;^55Mw#TF%$1_4>1$`v7|F|J5JrP`#B4PFUl9VS<#*AQ#)qqInmMl+EDYM0ndC5qyxP3Fz3zV zgiih(uN6g;mxHVbZ=q0IvRUd`&d6%dJvB#Zgx^8L1+wMUT}Zpo<$3;Bqw|&@b6xC)leEM9bU0f}k5vqJKm7UwhL5e~FO2NC z5*=1pS!^veYS)zVK^fNOtOi1%qyh9A*X;hOr*|%~tX%Em<=f zS3_MK-P(Kb#dWYpiO#k1SBqxlh&Bm`55zS=$n^`f$=owY0-h>fG{hD>AUPChl{mtM&=5e|E6p;IMgo=0X zfCTP4r!U7;qI493!h*p?5>*b?%nSIvtmKTWO2B9)9pM^Y+!%yE<%Q8a7!UD9Uxc&@ zTB$ELeD#bF3x{2HRbM3%i#(-T`4sMk#5{-Fd%5GASKmVJ-co&JtomjV;|I95l?9T`t z5O5)8B)_52WMdr6h)`zJawQLTo)hIqdhVwuT$QV?ca;Cw127{@(S-4fs?Tgg;OM00TW1D2;7sFAo+m2&RT+4K4zOe5;j^sL^&LPQ;~y zW*tO#Hw7A;J3FsGi87qIM8t5axAnvy>(JoQ7Bkp9p_@X2T#QJ2ci-ZQOX!JC5OK%9E(TsAhA6n)%XG;#OvhtH=}5O z%#+D*MxlwgS*I}Xg_3O1xPZTJT!Hc`nCoh-$XuF;CeSgGu~=a!4sY zz%y)5_FE6X!Lzs2RuE0bru%P79LY$|7;|#MMk|)?NG6+${o*^>_{h7n(OoT9;jie? zkqEcp%fvnLXIbCi+sAY5^uMo1@ibGZKx(cDMP4%ii?t!KW+^orUqheI}TyQS&fVc&I z*UAi5!4UC5LnCiK=eX*tIt@_tlh*}|C z&S~yTCP*%Q*>;P+rDf?Ou}Xd}Ph$E)0Otl}TDbrQ{|5gUx^) zXG2`Qh^R!&LD(d>A{q%4@RHsh2!42;`al{YfMx#{V}@Px8u3{IKxE@aZF(R)S%uP` zt6yUgON;!GE($eE#B(n=n(Jhm5r36W_YJVfS);6A`Hd4wGaG_1n3=W(zK1pB<7^Gk z*eL(NzO8iCbpdHZ@sWH9QQ86H20O9gwf(s$o+W15!q5~dz%Pr;)xIAD-J}0deWch> zqeb}WQE;+*?hUj4(4s>GNTss*Ix!rNjfR4ZlU!X^7!DutL`i3E&aX!IhZ&AMwfU|i z4;hcu(h|vSdxDCZM4ln{(Riz~n3$YR(U%2rnr^YAChj(9b>h#s5vJrC#(5QSh!GIF zpq{a^WGLWBUeFHr{mVnKSB)8|Si!HxZO*>+6St{EXukH7hMQaez2uWyVpQ%(qQyF< z=qD8)4ECdWVHlJZr>}qX&&&C08bdcoC$Em%(zzgs=Z-4tKFGYCdF7XynAWE?ajpB* za%zV0ypWEs;?(9oO2*8bc(amS2PGJrtDv@a1g{NK3s4jdWoGAzeEmS1o(YC4As*IW z_STkLrGfWJ$Cw^Iko!i51ki3r-L;c4{E=ODO*=iyoK>g0i^Mlx616>rIXM|cP61U0 z|15KUKOOx}E9YXeVpe}QYZ=JvK+Ox4kX;vnLq>vhQ z8p?CQWD9Vf8rH@vDk^<0=(AiW^eNX)+UrD%X2`#U({+Jaz`!EGv$HqWqfa3DuI(9sa&;k4po({m_ppfO-cb z0nY_pDc!coFQLa2r*B+Ib_v{i2s4jUS-=`njzHgEs&mr2zREaGP=c@*t+o3CAnrtu zA1ETec6_ZMH4`SA71XslVeK!1dx$FdViXZu!^-5cHO6BeNvDrGJ5O$JLrBd_H=f@6{F=*d%-4GMpDRyY!^pc#^110{P4Aj;xn5KAD}64hoj^DhuFx}jPM;ynCd+~2pC4xfc`g}SJw7t{vC#&YNPH}6fx;jz2 zmUQ!TAlh?Z8NoB?&TgG{oB(yXg#gpd;wxD&Q7yp@5FET!)wybMrxFOTSctx_k8``Z z^`vf-73#=E9=V$NR8~+&bt9ttjimlm>Z&R7jNjHVye%X|orimRtbvACgK0?vBYdn` zkl6U~E_=B|6TOS7JilDFKR=g$#Ws|EB$b?}?Mph#L zsQaX8L-jR0v#n6YLBU;AN+itv>y7)UUJv!6v1WFoTsZwrJUtbCrsCb{zOtW~Ui6IF zJmy?>ve0&W*)FcmRrg!u(x$FJmw+AV*hmN8n*(y1)C^;njsKx?bUT%+N_at5(Ox(l zM(o)=Cu{N7iYi#nFknP8sPmq)eGF`9(5$3=(XtFjKuz=BJZ3=7Iv6jIyyw9MaT#9- zWK`iQDS-kV>H?FTY1jq9s1q3w>{=!vV?vwo&Ys3|&Sveno!R+|I9{pDU8$bXsz}SI=C+^|) z&!U6a`R39oeW?Jp^l<#*ii+8{Zk+rBAc4UF0`~r_;4mTW`jmkJ|AZF6=%D{>v`~Rs zppl|ok`R!do}Q5Y|I$O?#Y2B^dHu|8`yJw>LFik>43!S(X+XQcP`{1pd;P$v4VkP;zI%hjgSxnz_S4i zLqVf_f!Lm1L%v@lf0&GB@9wUm>_gU%$@{+zT@j?CHPAsG0RrYH+`#+o{@%R3#;S{h z>x2C%0&Il`L(hK0bB@L^{2jwx^dO#s(uW-emjeg*dj9HZ95$bX1$2A)A^UQ30)bgp zc0rzU_e1*GEGZAa1A2Ra0tEaTEaZE|v$OK*0|_l=IyRm6Z)5Ys;e^2H}4gYO63z&Z?ja`TX<>%t7q zgaK&}cG^dW5ULp9A#mkvU{3!82l&1G2fCXH8g^bJU%!u+2|#+&|95|A3UdwOkwU3&lDi%!3u3o!ztbvI^A`P=H(tC0Yn4m{o66%sHN)}b2Gg0n_m z|KUgvFX4NZ>TUGqxHeX#`>4Y~iugmGYOX)WjznMUw z?tbvL%q9D0&6DVU3Tz{HehVk$!q&8K^DFcL%Qwx|cQinj{duhh6I;Xf2GO{4eW@&0 zr&4!$d*o4Qwru5@bz+2B!WT8}Q4B*w6Bt$6zPn*Mz1VC>?2!p+r|4r}gxA6OE8*h# z>=`G9UDxopPJz&)*K~4l-YkhXiX?QfoHeuy+Vp9PT})ZXD7!Z@>o2DBVsD5C6c3Z` zGoy!_?(UJ4#$Flx8nUkn?4loF-F5X7dZrD+M|KJ@_`cyq!B4ilhO(4VjPYWJ%8vPW zAf^t*0kFZ2b%R=VQOjJOAxb#k#MGw8=B{AOkN|eoE)Et2`t>i*ipbsjrFDphx^u($ z5%+hio<@LFu3D&Erb7D964wX&_?Ff}ElOC19BMe1tG`TloE7e^RG~`+vU03!7yArU zM5LpG8XqpUcC`E36;gC8{)~mNxzT&p_)0IBBxoKA<3?NREcy}VUU`!@D^Ef2&T7DB z`4zBPUF18%8TF_PQ&dC*y=%cxWu%Uty{MWxt~A!Gw*hh*ew03$gtZU%RsLtbOBn4r z8SBknnSQMlLs}=Xt%|nfsP;6%i2U#7eg9=ccmi+t=lXX>8`nJ3|q{>gDh=I;sjj-CK+y^Ah8j7?m^xPpt>CK2sf^E21!7RH7quMT?c_Wlu~ zbw2la8@NGset(@;|G@pSPr+9a?_%m1LJ`6UmD2>__2i@*NX-2}CRuQu3_7u4ynBP3 zb=1QX2rkS!RzyU63Cw3%J(ZHglzbKCXHNpQnO7sz@hKc% zyZ0NrtNdT)i=Bt_HIL;fP2Q5GNqtAFNoJdV~IlE;g%TRczuKQp_rdRu3L{4 z83bi_o^C^WokpJLNXul;V8>F3pIK6+*BESO)nB(Onv%W^d%Gd6aLex2N7u04MYtH* zky}8{m;Q&VT@WTZi0g7QEl;-#7Ta^;zzUZi>cY%F$(*M-oqy{qvw+Q_`RLvtChwi_ zP>*q6ntY}9)wmp>B=yw&if)y9%O9LrZ|uC8tU)K{@8{2b_z}Mv-PEyeNcPwG*quM9 zB&qqT%h(#GUAcvGL{!te%4=z%OXXv`__YsXyo4cgd*#Z==(f!!5ik2N+BI-mTHIZx zl5oWMIm6)n6s+dh}ArJ<~yI7>5F?< z#E9P^cH_SfpEz^?hOVg?dAW$mGr+n?x50efI&@-=8_%l2tA{1XKMFl}17I_gnrk;a z6QvtwH)i`qZd|bo>Oapyu>`7$5$D0N71tHqa3m{lk2aV#S-3x!m(&s1Of?*#9#_dU z_NEBhwneW=3`DI}m$J9JsYoMWC zPFECUUnQjBPjm@Nj|^ia&XI9dse``e%I6pNYu+0QwpsQ8p|(bFRzEiIZRZHD7s;`^nXrI=dsohNlRt1c zlD73p>q3W~iV&y6#??sI2j%W_H!D_%)WZH8Y8v{3trU-5)aKo?)5b)B_fBA|EtD^u zyMTZg!^5UZom!T=IYp{+%Om^hSPhi)r~?u%LWOml6l)XTkDaz#F`znHGbWM;ht%`s zS5u622GUU8;5$1fqbm47H;9KWR;r|?m6wNJaQ<5@w^ioh%tstM;G&v*>;;d5is6Qn z-7kB{qqGb15S<|!+w+FK!P9JYx+I=Zn~d6$fS%Y=;DJBYOr&-91uD1B-l zT#$8S-h~Z4isd?(k;suF7?;B`6(W zbXsfCZH^@n!F?}CUj8NTKNnSw!<$9`=jIJ@T*{`1Q78y)u*e)Q;f+=uaZKB~(OkBy zoG|ll-wm+2Ov|7%@! z85hn#i@| z?sC*&`b6jSs5;@u@MuSA6$zNkea2u7wivOXHp$7142QobH8DwWA;G{z$4uLH9_Ux* z=5HW=h>Vlgw7=OTqkd3uoqf;F$ueU`9WmaN>Us4-G;e?Eg@x*P^6fjnz;R^CA!~@~ z*t!^}e6_h&wc}v0Ih#$aJp+JgJjV7A8CjvJogrH1&2skiZPwT7KKz5{q&lmu1#9IO zI~;C!RU3~u6XG;Utw%Uwc~jt+lgH>jkaPN}X3#Atpp5z2>w0gFGgVxle7s5`wJGm7 z9~$AjotZtX(no{hxNBFR63+z^8pwz1_}qC}tWbAexP&%*IAFT-mr+!JV5WKil1CPR z^hVZ4B6H_L=IW=Faop`p!QRKn=^%f(n~ofx3QORnweoj6h;<2#bz;SF*NQNYImz9F z#`N12&K%*h>(-Px$a3r1~!(rq;#Mv#)LMT=qyva^Dy67LSDJvqA_8+BPkEI8k9 zZ893o)yn*3xw8>(TL(^=*aepdS%odc)J~o@r<92_gWq;u)Q)HbDT`+Z-1!ZiK_N9pKr_cSp9n^FW1cf+P9!q*JfPFuvR$Sm>2Ex(HLgFh; z87&Vsnbv$4#rR9{ARBd}UI@(7Ls#nHh3>3IqoXlTwM7VTYErard9zyanoMyKD(>8(H+-W-=l+x1g-#Lxk-T z2y&vlKf~eozq)H}C-V%|rtw2!z1CW>bVTSxFgfEkzo(+iXXv=I(=n}B>&a!Q&V4V! z)H4$iKJ92%%OWaTqp)s?w-h}cN%0mtbN*t0xAq^SQ#ZVEs{%Zfcs6Ap-Q9?;zz8+8 zcYBlB4E8s|FIop}bblZ@{IHgZrddLAD^6R9@+OqYZS;3KlFi)zfs(Wn?+TIbC>Mv8 zlwy}j*!pan0aWVWU5pQ!a$dk0A#sIx;5TTN@lJqSM3M) z`x9L4ZsFQ3_bM>>sl$sC8U-iC(tOdQT??k+405gd_W}O3W?+Bmel?07RD>6F&wvT* zP-V91wbt8JfE|jm&Qr+FTg&909?x%E8hiAaiK1p@<$|z9uqV8)P$Dz$>2286FXGXn zyl~Xvk_R@Td~RYOe0`lI=w!UNA{JssTx>AhqGvM=f$| zk8U^z|2^`v!zTC647wx}nmY|gf#(wLQAP!yVp=-z$`bYvmI-adZd7fD|;AUdnOsyGpj~( zvWpRQZY+usrUXP^H?rF51?7s09WII>mr-N_F$5hXF#{&=+ z9<1=8akOIm8x^{R{S7>9n#(cQtb1LxamD?!AI3_YkQSc40@W8Lk#zw@&At zY(im)XQH66T1)H3w<;90>4lIG?6)H0AR5Fq!D+ryl^+LObD!#ag@9@O6X;Hg&XRhw;uW@t%9pD) zZlXcePmsJoBWx|CPUhgwvX6aZUP22)71vwoI`2ukn3Es2TUO{%k8HS+oSkb2@#|b} zU;W3GO(AY}7g`H8jvVk6rloo;NpEBktiFG7DKm*~H~cnHA3YlS9HP<$GF%C`?k=U~ zd1AZYIyD5=39OG>AFwLn2Zx%^@xlMj<-Y8Y|s&Sk=8_^OTL{A}NMq{rQgLh7G z>&69fkasG}O4jGMx^%n#Ea~yh!w}&I`nKMB(f;M}Z*e;>r#-CGyRMQUr@=ZE0&^Fw zyegvmed3iOBNniSgUdHd!7G zX`jfDpx5xED4|1|hccq3dJIkATs|_4lQ{@O8XmdYSENB`7 zzM7F+$6~$V6Ircg^o4j~#YP@mY=Mx)IW8}{xRwaNKQ&ee{Fpc^`MVE)WV{sKR<>c) zB!lKzfpsc){Ma==JFycA))5U2wPiAgMU$~y+{%?U@WMTOf3VKA)>C2*FyNvoacIXq zQ%C{(SaSU0L63z}UqZl|c=Tc_?POQCi5T}dQcAu!ko6FUSV~9sEJJzItDA*v()lON zO{KH1r{GV4^j3xEdgB~x{0WxpJ3=2JelBr&==qecG1TN0eSXoU;lyJY8FfmJa5hcK z(Zd+*xzLQKLxWk}6mLUwj^c{e@{G?N*FMU%@Je zj6h_AnjF4#vw^=pRq05AEKq7^U4OS;io-)phqfpkp4R|B(8RWY! zc(G}5fLVx`oN49M`vxW}9LxG4pWb(BOF@0z#r~36rYU<|;;wxs%RcC2lZTf&h54TC z?w9*&T&CAL#V@~amZ?luxh2cr9vPGBz@t_G8X_BM%=wW5c{uwo@KM)YcFzRTf8_&& zwrwB6AK@ULv#f*r2iTn2cI4|3Ft=lp9?JNZhP^Cpzec32_VUh3tAMpk(VJC zQU~L6D9Z7*goH=4o5S%PLP6b8$>)d~vqQo>B5uwuE1GBir z7It1)9N-;6n`KZa%45iR4F+b!R58(li1hxXB_Rx8k-fGfA6T&)Tj5kxj8g zs!ND~{TD@Y@yt63zF(3(NbgtXM=b1BP4#Eo%oHQdm|D_*x9Qw*6FN`#l;8 zRk!BZ)+Sdoh$^jN#bnkIH>@8c9PI&KI|gO5-^({o^WRHFo$nJ9OKn?S9>p3XCMl!h z07D)B8^;j{Xp7kwodDvwV=$$3yMw4}>s*_Vn-z0z$BtWzQa)+nJ)G6*w;1GIUKYC{ z^3Dsz%FMHalOHHoPJjFV@NZ-NFaB-+*&ol!&d&Z{_tF3T+mdcKONm9p78oHcS`z{n zwsRDXpwa7LM#ljWB_o29ArluO!50?r@f8sf7Z4>Y{h4>4)OK%weNMf1J!aQGx!ts1 zop@ed`pmpnqoqYsa^_|2VVEJQAQApd0;)XA82jtj2cx4?!|ok23F-6f`>6wZquNKq z0mUSK+WD$LV@Hl`F6FCxr}JWhEZsi?3ljUoTX2L&W1~YOg9VxVLJAul`CH2K1vAO( zL6--K4)_3gSDM%HLk}*)MAbd4B9a3j0Sg+NmLxj$B?~4IO;&{{43bEL6bVz-QPSKDQ4&(05>uP6Ow-I#QHypS&7w zZ}oi%9-ST9?=m2N*XEhO;9H@cZ-o{-xoMIPa;8@o-wAne6Ro!9#SC}{_-*V2atx@X zU%x(@8Xf!CNs^ado$5&y&yg z`wjZBp&1uenc7xRe`Ve6(xRX^1Hh9}(*8k4Ndx*r0Po#i~4(; z{44X=C;tPt{(I`d?9IdD=LO>1@f(H~DeMmVb3RtJh8C3v?!)X$EB}jO3Gr(b{=7c} zu6N|;+0r2YWlUbA&GXwU92^Hq2ykN^+&{SW13#z7(?8@zC~r^H40o_<21*VI81y?7 zmdBC~_M>zVbh~7ShRrAWOIr~eSdim4o!y?y3?Dhb{|E4G^w3R_9~+o2d*;r6w-YpQ zSl*nP7bLt44aix*2%zsHVhqIKd%iE)-w$xen*sf+{@a$j_d@S;Hwh*Ttlz-D0)qMK zMCY}#%MO+*W&K-34fI&-U6mRSBJ!Y=e!6#z+1MhGu8Hu30c^s;2gf-tbs6L(rL<$l z9t)=KZy}aabe3$O98RK)sA?ua(vaE?EYGHV?afK?9z2VZCJgT*Y%BOHzAe7>^8V!W zOOJq2@~r#WZV86`whrqfuchIL`*TS%?Xkr=*gV+Dee3>+k++Ae+?YnYL_=Zrksx#z zV6)LDSP?Xb5SljU-$DQQX)weP_AHS5;G+Bd^;6RWUYqLfYF6s(;ZNvWvD!oBl|`3y zz5_|fQ^-+kpD05T-WG&4i%?l=h4C#&Vd7o)k~JxBn`M{#Q&TDvA3jN8rcy)B@AZoe z@%J1^I>L(O7Nt91*;|}Wn=N273?Um7x65-TjOC%#I669svC#87ZKI^L-BY>ajghUq zmqW$$lZ7oKnYwmVkirwj(v|#qKb(zgAVFOdvBs|D$xrv6+R--FLD|D1$Z*`8i)x1p*loCL-Q`l( zz}F<1jPgpQP%z}B%ket_AW1&5It^E@B5lNWWO*@7Jyqq7mSS7>L7&*I%9x9Uv9~WQ zl8}~1BzO!T%Y9t#h^E3O4LypECX5x+Q2Pnmw`aXfy`Sq1G)<*CJzLuFGQHm||HIfj zg9*blz?Ng%wr$(C?Rm$xZQHhO+qP}n_uFju**~~>N1b(@t~#TRX^Xle{U^R(GTJ`H zig}vfBo_bur!EJ+n?>(LU-s#>oRv{bLV_GU2FIkTW-Fx&=uK3)+8_nQg%*v8dLjlB zZ<}>GBuu)-PkpRL<6SgK7jI$4MtNVCUlSI)10ee_SDVJuhe!?8J6$=&?!MP^|5rSt zOj|h@&(v&-xX&oDggD<*!SZHiO%}CarYF8hYkfAd*xa4<=zQ|M@1?}qsg_I9ycDc| zgoBK+YveWBBA(SIx}LB$11Wc*-Pa7y>{)>nd}TJ}Mi`&RU+oe)?31(NJs5Wt>}{>= zh^GP#+dSA@T%n4wNs?0j76D7@lei~=xZgx?0T!X%yuu8<+E&l|^I6b!*3|!fi{@CC zuu_tca*YHWCK^r$)2k`IZ*J%czmWe-hhPI092Eeqi7eBSmDL3H-FOC{Srph(B#a1FFUZnK) zM(1e`yX7xY$Yq#iLzUwqjY^=Korsc13jy%%{nf0w!e0l`1gWb#qaZzB?FRPER{k#E z?=wF;s9TGLzAczXz{d)EyzB2`A&6S?LkQ`dJqk6BsCq1TfWr{D;ixII-ZrEl9mDry z`@R#;CI>lI&Od7B>z}GEKD~;FX{|d*Fc7%|O`R{-jb4KwNe91~@x2_5z`dhByUI9! zx8g&#{oQ2Ki%stHT8AP@qp3Cf8$g|8GCd?8BUEugas=duiGI+t>Du~i<~1UJ?3A>R z9wtI$@-0D+sbSrf6FX>6knSr44{VxU>L~*A5!3jcoWW-CBu!v zffFZf+Odn{jIF3lfla-$8RX279WPS*R?#x~Ywp3=t9Li>JqT&bNxwkF)I@@jwiUPRyM2hfA@Ih`WeZ6@5=x zPidAQ{TfNd;>2hmfVfy9ybFNjQp58}GG(kfiQL%d!ofF;kp6_#N5oWQXNfurf1P!{ zR*Dn0z2-(rT!%;|p0JU9#w9pomJu=;paihws#x5IDj*q<-{>@$JY@YZqAsR`)$H_T zVGWlcjuk7IeS_SyXYThy@7l&HfGf3qYM>2Xk7$)W2*EIFo-i(x-f9M3b4wbaZ51ya zy7b;??7t;`BSn0hU9#)4=oV;=DBYURl^o}3dcwg`xFlkAk{&E>*ZEDeKl_v19j$13uh-a z*Sz);zI*6;VWbi%MVlH(2jf=wr7Nu?yUpG8gh$vNy$;$j(&`Ecs|0(7a=|{CwA1bpzZ??fc9T)6P;4_v|}IyJJIywO?M@AJC(D z#t)F9U)&Z#`M^0Z&u23|-c`FE=T!J|4PzVwr&0Nn)-%X$8TieVDPCXC*zCN zFPoBMlbUI9|62zUvW%x%9#?LW)Lm9hZnhWFi78n_`OPoIqN0wJhXQ%5gd8S=a%3aQs#NTw@FM~-V|H7oB5Wzk0X}-$QRfMVIw>K zL>R^xC~!IIlV_fo_@FPPRH}ei5of}OR4C)3L%~ps-71oi5w~t?V(7z-j;4UOS;kGD z0-wBg_b60vwTaW#S7-_P0P30)saPy8>Ec-FwTnyp%^Aof5vb@pVEP(Sm4Yx;{W)7P zN6M(FwhA0dTl8*=Gq#9=I*{fruIGs0)!grAG-Y_O!uh)}rs-lkB9xlL>|JTG+1n5U zzrm)h*$B<>(Ng-$=TL$I>^0@*Y#T74*Wn@>Ka<5M8woUWkw_c%jVD+LR5&L!{R{Oh zsNDv|>fKIiC-woPM(OuJsc@~E)CH#Ey`5VM*8nDovXBP`TDR2aD`C)CI~hxB&PXvh zbnbOS=iPqzo%Uvu9u8j(&23*?@_}ER5%SoN^X)GQG%{r+&{EfhvWFy|feAKhzd~2p(NjwybMO10t;Xno9DxT>?_}LlJ2c#%&-PZGI>xSda ztqMb?jh7uCqrMG;H!ZPj@=H;x=UXQMf0!kyoQlsBvWm$-mZ9s31KcM!$H;T^U6mE* z)Yj&+J32q@gUN?jVk#puwoG#Ou$~sbjTrlm(js$%1(D&ql4&0;7xKXH+Z8cvN-~dD zpOD$-JM*l?0sgTCGi$B2qH!e< z9GB01@8eX|XgkJA^ZG~-gihqtpQjO%^HskW?$?ei&ZN~efhQv(=K>ja%GtBjZhkF< zXyMnkb+tVu(Yv4p0yAN1@HH>k>9^d|S(W+k)V#%T$8VE;(KPzT#g@I;pbj_AE+DHu z_Mfg5tL!<2uO<_Nm^Q2X3bnJ?syLuHhVxB|I}mQ4QcVKv>FL8n8q-H!aP%5^x&+$j zohkBRBsXw|woZC#$^A`K4<%+Jy#C6NHI33cF7%r27ho?N`5Y41S)Fsx|Mz1Max z5nD1$k4wkK1)RW(0jP)}b?@d`0 z`Zc$_4Ys;LpgS$k5YYi;&@*(^8aEbQdgUC#6uu)Dn2Wx zP7@3XS~WSVcBu|)z@NY0tRd&qRr$y&HZxK-tG`eY!K2H2CfPq|QUY)2jvb!YWC4^| zO0R7E=HWFQu4+L$S4d`dV{<9%ei>6@hO$C+4jwGy3}P|!4^wkG1(^et0Xs@y}~5wKEZHQ)dy+D@r=vtMMm{iFnX&x6~1HtX+oFj zsJdAMJe|x?t1SqZ8{DvexdM}d0`BIsqCt2(TNJ?;j{C1oQ1e~~sqfG_mH9Bp>pNDY zj*i|cvii-D3t62Gr}YdGjr@3k>ZMLkymBok*g}OBhd# zdyp^Z+VCGYiJCQ5T=U@VoFa^N;vdj&-5f!I{j@P_iYnUZb+yW9t(B z!j)JnQM`HQEo7`2gyy&zk#Kqmu*Ovb(SpjNgd@rNFUR`j@!Q<-!?gEQjs7*U6tGNr zT42Ir2foa~ZgO``;=ekZ(tTa*qlENUF}wDL&fDG<0Pbmq<+{geLjj~C!{Te`VA>HTo@5gL|fl=p5E1*bSX#!p$c zH&#(q;Hy2l26uC70@D$P4^vPrF})OAYRj$!n<_}=2MQ`JOj{4Zti1nopbHGmjh*pl zAyH0TZ7Vv)F3u~`PvJ5D^?kO^E)85VweBY*o$xHewJuSeB-f;@<}VVBe%Uhugd1zy z!zV|F;CzJnT44PF!>UxWH^T>zP8B!^mbQ<}4)rY#;Fiu+5hy}x!6eMviAuGpn`cDm zVpT|wYgb0GM0|BiAuF}K62*|u<{NiH*6A~5;Lu=lGVPF24?xlhqIJ|LMRR1KAxlg0 z6vnLT%lI+jB;kCw9~sS`=sq(a9A(Y*usnjFX|7DU*x0P`51m(K`I471uxFFpMyjI= zMqEM0A;?<6Xkw-NvQD_>hOoW35VP z*CsqKIuQ%bUt#adSVgfC*rR-SqdaI$&Z5|<_So?3xpy6XhaxO>91~jrN2p{tP#?b8 zV`g&GpxW*V+nf96^Jf^*67$#b-#ibP-A_ zzgC>u)T~7~fvb>`dH|6oXAYC=^_P556qDZ(#v%~2^`|fRTEx-X0Z2~ z7T)mlxV}o|rP8m)Euyh!&HXt&2-Q>kNJF`e)#Do=tS6P)0 z3N&6Eo9uK-1C3|DfGS(Ox-J zDnw3PxAF^{KKbV9i;kme2uC&cZkZA@pbZlu=|V(RMloE>3CSd0iX_tWdBWHW;675W19 zrkYHps13TH?88@a_<_@(UqV_vihgH~Y-#Z>un?$Is2#ZOuXMEg&pq{;fl!lfpN$>W zO&J#K11A?Xso|ju4qvGNP#AHbz~iHLPoE$--fsbTAuFi6&&n$<&A(QuMRdsGEUc`T z(QqD^v3B&gq+9nUBMl^l{ZjY4d{VRw3_bk4v1VfYKwjKu4<}&*W)<`CfN+^vME>{>EITPKcBV302OR^|08^$y2?+X(?`x zHFR#A>Nbm6O2z)=^GvX1amFy5pydbJ$wVH#?=~sPs3s$L71xpl+DR}GcW=BU*(>iG zCXpTtgp3ZOP5B8KI{)S+c&;Tkui~XS>*URFoRn)28KO8gev=2u(SycEsjhJbT9WDz z?Z=sP4--6Cnh@+AmFn>nt6v$5C`Q{h9<&Li!ON2_rAgo8k}|Vc1LY6e3|$=Lf8aHa z|Ap6B7#RQGbvB0oU1#H9W&6LzYwqAG%2$hQKtM!2Za|Ax02e)PyP}p71PDkZ1wqeL zJ(A+_dLYHbq7{o-&Y+Z1^#2_^N9WD;y6gDsTYamkZfV-fFgM#h%Q1ItWaEwsVC*X- z9t5lo^)Gr40r6J?Fx54dCL{oWKtTim3VGPrkj!`>%v?Ih7|2D`2{Yx25c2C zu%UXTU{OE^1pntT2p~iRK*&f*=s-z;KmY?G^$RQFE&-@=-IE^+pbO}a1_UQ|*hEdd z?ZcZdH%sB1(`N^$LtyJ4UtG+wcW3Wkh`kOB)ffise4{vP!0s#>&kJJ^4Inr`vFBI3 zpXeY~uw4QI+SAhmdc6}51OZRZY0Kx&j&cIS07N{1r)MDEPd^F3>&1SLZwd5%4S;M; z@kk%W2o(6(`UU_z4~BsP5=y*4m}@Uy4-TM0a4(i;P>O*zC-_m7bcp2c-4DVNbdp0 zy7#(z1z;5w_UFw!!1tAi2VcewK@ku#?Bjs?l?viBQ*AF|8k~WJ5hr}`yO9UI1OzLX z+fl!lchWt8uxtO@qlQ4ah4>I1T3FJZM}hM>hFn$o2olV?|FdxdDgr1JkYr?3Bm{Uz z1h@uvMEh3lA6~=#-ul>zK1Ddci?s(Am}lt^P=LVr3Au}Feggtlz{}nL&(ZAs?G!>! z0%9K=r~m+7kBk!gcX$1d8RKycYsU}19KIhaJT(si;Qi{Uj@znv5C_pd{jTqzPn)LP z%+S!Xbl@xOu`gRn3IgAszptLeUtb9Z0s#pL2{=3|3JB;g<4m9Yp8ac24cO~EZ|6r` zOqK%#F#bCVkR=0tVfq zpCJ%j*r%l(;HJ4mKJR|#joPcNbs8nod=-f*;ylfL=eXE6t(4(YZg8&7NAs|1l!s?$ zLg$}xcH_Kxypyq;kO~(8gcNM{6*y1pb3ETX#~`OqAPSzb5dN~51wB)2#3!uJLTyDd zuXx{b33ZE`T#cL^X3-t50{{1&2s{5dJD4;G54A3RuO;kbI5ETqmeu+ro+My;h-zs` zWXbsu>Z8dU5BymaU-J;<*t{7%fiR{d> zg@BPGS!6DSdNE1ELVBBsQ?34bSiN@+1-4rX59PtyaZwqrqw3GSd7}xCkc&KPugP)H zpew`pQ8qrll$CTeqwbb63(2d7c=W^mRIvu4Iv+hN64HNZzU5ol4NOtZ*RUd}V;Lvx zi$iAk^oeAqMAzH3F}~iVlSanq{>X`x5f~%s3u4&&LW>MnKyFOVHb0_d?6C2a(=kqd z|LV#2Uka!b)wgxmi_Mt5{4!(UO?-kQ7s*5+vsaxRdxxm<^EYkb2KF)1nlCgYh7k`fz-~=dw1Fau!k3KQ2uH@{y9(;iHhuDS6aaM zS6m?4r;(ixD&o#dSlnA{^$h+(Rq$o&fr$35J}q~QH7RYQOg1iUBZC6(Y6s$OJ*sV& z_L5q_yu{lWdf{tEX$i*W$@T4hF|2zCK{rny)0(jv%cPntHzn`5rF8ZH&(~~1YXYRP z+Lz=DgG3n0(zxb1Xp&a%P}*W41?EiMB) zh+h9OrT`E1LUkA`o1oZAUJdmQ5xeBB;M8CX^-EYOvIfiDXiv7shfmaL72*ZF_HuNG zv)bEv+O(iNXsuTYMeYLAV@6l$oZ}BLTdyxGOf&jNu^QZv)E!sK{XlK$7;Uat$-i{! z)VJkoY4&=Wj2f9=0u@{QQV3>Y79QPK%eg)IggXlf<5an+nlxMw`Z09AdPTLBm-v=T zZ6{B*m*j;38+ziC=Mbc89br^+Z>>U1Q0?At!O8@kLpgP(N_TJwYiY%&#eT4+M#3pC z#;opTMJI`&xfEz;LZs6t-Uv!p3X?te^<{x3z{5ITJ;u=DC;|?grs^9C9)#^T&m;~* z)%91OfC|+x-980FdTC-BrW6^o5r1aEtB-NVc=bn`JpgUuswRt!+HcLF+;6Q)?m3tYPR{FQygnzABW{89+*tdqeMh7z8SL)e3&D zBi?Bv!X&Y85L1>Bpyq#vm8RZ?UZ;eIs^v30+R)oL0izh_%?~bVx zV0yA@Mn59pR>RAppdBp)vlxB~`F_vK{qaHrGGKSeq5ln-)nq}%|Fm;^|MMtvI6bQN zBQ4Mqr5H_M=6=*ZnRVa;D6;XDtxKnJeo}7PSUi0<&}j1!ZGG8j{ieYOJROJtu0%-9 zypSPE{Z{7RtQu>D8T)76EXXv0VGv|$-*0s8>u@HE^dp)Twk|q`eUTUnj=8l1oTUdX zlUNJVTMVfpi$&RcyXZ_M{DkeVg1!k{uq|0(Tx5TB3C{`VdpY@7eO&;!4^O&Fv-N^$ zZ1g}(Dh9S?ou|E7?CaWlgm)>U(9>40dpNGS^Hq_R+gFpZU&9be;KT3#BQ0dGY{c%f zJ?Lc#)Rqvw3BKm+Bg!R$gj_d=b|gq#CW{OaDLQ?*j)NPM=ytPtHz$|%)WO_$$TxYG zqYtL}S^5^&Lq$2>5h8C}#f{}=JXSaF4^6^6)KPH8GnG@G$5SVOnFf!F%suH>-j+X1 zb_Uf16LsEYzrt+S=;7ZxFFEsFeZIxAEl~G6QA##caP9Uu-7SBu8_cW;i7|O*RO`V zW|p;aowlO!@@SdvUd|T0n>}bZQq=z{@Y=;y#czJ{lOO@DD?q8vE^FuMbBtJ%xBnG- zD%xj}vkQLk-$RS4EgkIk3E58@xDv0OeQc4Jq1TdE6-Otkax}`;y-TcXzOp@I^|cfk z^r{knt(~%YkOA^RF!lNRS=>*!IJSXSw9KI8DiDxz!!|zrTb6 z(?lFV4+$N3DhuCoxx{=Z#YjxvwW-x78-Dtgx{l6L`w}KKcO^&NsSm~;(GRfA2SNZi|+x7p0^bx zy7I?cDlJ)7PlOdz5%G9&&c$^reghq1J``o74|9D&Iu78v^xt7(R;OA)ql`KW@eq?s z>FevRIsjg$d(wTYmc2%z4XNH#_CiYAyVfcnR8stE^e3LV9_RBMaKfU7?$DCtj0H)C z+$}HOXp4JYZ6;t{O{5>9Yt9*j7{(4My-1Zgu9bC)JurVL^#O}+?d9nxOF3RvEuOAJ zHU7OB&}FeYebVxA;HsMF9QFe9^W?Q}F<31oh;3%2G*>hCN)@-bIX4;?0nzp~Q1PY; zO&<5yq23yP2sIdCxuC`eB{;yJWtD5b`W#B3P00ik} z+nBT-r!kcV_s_^z@VrNN%iTr}c)NJpnE>ll28&9jgb9r}_0A#{vnO=n^bMHvWn3>0I#FDB;ZB``em^|cZOaWK6K7IGtt!*MjMd~D%<8sY7vv1ES zPj2o`Z>ZDM5oup}KRX_}2d8_yyi6|tkZo&}mLC>R2p6D(A!NF_Rmy*yMt?yM&$4mZ zGV?r9&^1Z@-j7b*5(|ne|Gc?hHr*2BLA$i(fj%FQb|C`=gxDOpi7#nQR_w_;SHzf> z1YBM=B?+5aSndjFl-n^rMLVlO?L*jl96gUP_qL%ng3EXzwCD$@u{)0TxfE z=owAy{g-|(ov5ZRDtkp?Yq=wRm~VDeILA-RjCLUFT=2lbp&8MHbHc+0867l{y+!~E zbLf(36`NWBkg@Xcdsv39E2HcT?qb64hEDCV^k1AaFvAoQ=fk=4n!u!4%1xMfOVg^G zZW@X!t2OLF&J!Oc8f|EgJea8`|B9oFI~CHS_aEn7B+A)|!vQXwm8u=Sg+N+Np^dY6Fx zU#g~gT$-~#cR)_dypdQ9!B7z{_ zE3_Vy%I#+Yod`pm|GlOG89j#jxZje^J2jrWKF61pf=~p z!>Odp+bASU%XwkNJdDj}-eu%PDJ}TM=**|?yQU}zGAwIEt0b8w*vvh}5H&Dcgk3%` zFP+w+oJe1D{q9Zs^co-LMQ)RW5HckjfJKQb>Bd36DIN4p-u>;tiW*WXpSxP+!`j1Q;8VhjhdH6W!f3MribkFWuI5mZcO-~=ana<0 zRg$CQK)M(2plSI?J~D8v=gphknpLv>S_Cyd!V#QDHv_Ll27b;swquCa1H8_j%dW)qyPOQ49G zW4NGQS`dCJNOJ8ZSeH=rwG2X@)*+#rAaQ3DxvpjBwu#`z)ag%WCj%An<74<8Y6tns zPU*CH5v5pfS`v{Yqm6d8#4e1Qv1~hnvWY+*g+XH}IhEdkkunwxV%tVg>BcxGOUteo zLOLO*G5p8jjZC!p!Ns~>yq->KR=t%i(VTc#5VPv40oIVbGEZ-zs25>$!+S$N)7QuI z>R@9;XaFHd4&qc#qd<@AA&WiB|9wiEhWtcKbugZ&~ChPDyAw0H`RE#&~2%=ot`Z9LJEBjZl$I(fU=vyp-*>P zxj|H>79q__DF-b5q?zB`6n`GBo_QJWTjSaFXjqw)iJdi+;y#)9y;NREY2U2&dLE&p`~=3!V_ZWjMOtQq*jVe;QO{0O2>jr@F*=(Zi7+COc)U|w z{*BZaYQ!SpR)TV(ib~I~x-B9o?F57TV9(A6>1;KX97EL0Z68|lx9S6A5=oqkev>>k zJ%J+?^Nc^e2l4jUoLiGdv(g95q=oqx7_U9b*@#`ZXu?nbYo0l?hTT!iZHw> zE^5dfFAL3DA^cR&sF52kNvy)^t`LePve0@Qh6zpZ7n>lsY^9#^&NIstVF88wV;;J! z{E%7FlY&e@)LH-}NohVa=0xS?r}*A7wsE)|X*)Jv z1Z}BHoBmpl7D}ZzsZfYC&LkRQT0ZXqGmEb4!#^N;dmHo_X_m6pZ~{&otKtO)(;8|o zWu?w^4^^rh2fYnr6!dwTl=9+3CRB6ay{#zpvN)Q`)Op z!cF(I^g!Ny|Ly$MP^%O7kHDkAz0Eq=YM#7*$Q4gF8U}?_rs@EWJ*X)*`Vaqz;20aIumr;7FhV;@y`ap!JL_evBU9J6F}?>ZQJKT+|Ax%48X9@%@}lJBVH zRa|g?DY*Q;W+m)kxWzfD>jt8M;)LKaj9vX_B+sbdJ-|qQ7&+r}9gPRRwGnhH8kkBM zSxc#A8I;X^r-S&-iC9pN(B2tt z?Axx_j6p&@a22-!I^Obwcd3Xn8fvF&r=w7Dd-!PMKNDOgY3fpec)X4BO{kSG*c3OS zwB%eGHK<(UC@i$_WT&hd(FHrRl^1fc=baUhuIJNN&mfrF z-bdXD@eug?o+NepJ1-|!|q$XDIfYxK*qCfvyLe6o{T==+}uOq6o2I93tL%&i7C&m|> z0Ne)_u1X&$$*W}2R_4Gl)Dhh0FBX4PwI*BqMr^g5ZF%`kPl2VjDrge@3WY7pi&A4g zog`-$cGOeNT=DzT>YWHxRJiaHo(b>3J;7Vj!enhUj|G(7XpY%KpSYAz`T5`{p?fX6DfC+MFUE?2!jB*#IlWK0a1v>q1tt~I$23= zOm$b{i`VQQV91YX$p0Uou`v8Ee8$Yl{Qtpc|I@F_#=*++e~r(a|67B!+M?49T!e*# zl7JYRCnDU5afTfN5T5R5aAsEml9G)0Pp(V21B(>s@9YLa^j}k`^R4agC#PwZ(`wc8 z%;(m-_N%uxEk;y2O?(r}5L8v5Uy+AEkB`y6y0bO`!aq*lKP@gUFFZyTKGZSz*Obg? zDU3+h5Tbqk4=P?%Xn>+w7A{(7tb%wS0F_-FKmq^&2@NMq*uMPkXf*j!aJYjrj?*hProB|09a0u|yAQ^WV zat9H}737?VfPrH2N}rTt_(p-koRMIDXebE%`gk%*U{lJG55&D+!4&|voEqfAZ4knD!J= zc6PpfGW9~;*Tg`)0)*$aUO#`9i$5{XKA#`1wSm1=mOerCPIiF&0RuXFdE>S|;XmXB zel~3iD1zZP2@MSe6aW`M0bWAae*Ke|?(BlToP2#V79f6n^I+zFFj$~V@TP#mzi@Az zfm;Ots0*-{r;oi@zr1h(0)JMRKp+i48$hVVCw5Nbnu*!u{V9b=1T&&^SVfCPs2W4h34|#9d$f7L5)8p{JwYwfM}7xp78g1 zk|T5^pm+ayrj}68-&1ygacJ@Uc}f5lF@AqoAjxN|8gGDnWSHC2&nc8nAyU zhwV|(B`%aV29c|0Z3o86y)Zi9d*VE@Tg-uIi7AbW7>_$uOyWG8Kj`{fHU-nG5T09# z3CZSFCSj19GHx`o_A+?g4C$YkWQ&CLnym?LD~FvH-~Z6}K`7qECKIRqBU5HAH%21a zj0|AKZq4;R5s&%T&EJC#A?cFSE;q0>T@ z=M_Dx>P=wDUKbTfP0E)$jOwQ#e3E>!Q2gTP_9(M`0JkbEk%q^|vDQS#&Oj(kn(>oE zMUBXaSntZCS6SF%U>};^BAULRUkANr$QZr5AS=>}AxDAUBKoB`3AXe?fFWtIX~*VJ ztX9#>lD5Tx+y=y|GZZ^}#G8Y@aB&(pphFkv#HHF;S?G&W*|wGrbFfJbh|Szurh<=0 zqs?8;mMg=3T0+hW7(Mc?du`Jv7kSCa%TjvI+^yRgf21DV-H@68NsS^4ydvc}tP$Y0 zeFKJmmrgWxj+7*RN*)`O-D}%Ij5MxPJFONrsMdUoH?I22Y!3-K4WkdVWZonMtPL|p zqIODq>&w*51nBqr@+cbQ`xT`g!~qOed&ftk9PF&8HCQf03{*aAYWSg3#A&)n zr!_{kog%`@0etlHFre)f{RR^%Iml%H`rf#r&6^O(-a8o=^td&(O)X+P30s~H8;-sL#XomdIURH@|RV@b_TSm-Ih<0J+_myDZqJQhiw0WEsAz%#uKABfUc zu+%V}pXKcws9e_l`kn&G8A+sA4&A!*$hx!B_4fDTRb9$bMx8gYG{$y<4;fFosZVz>~hwirvUuvS?mhBYF*Uz}HKLFEBqVEwCq*f13U}DKy}<TP6^P!hpNm>Im^H*(92J+y!qd@##o{{SDOkUD5|(cW+2W6Nzax%KgYo+yZ2!y zt92%xL5WH!7xj#l}eLDw3Gj+|-x$WwRYLf;ktlUd2&bJI8sVlx4 zLHC!UFqxM&ThDa5Mjtq1f}X8#vfwtK5B%*Gw6_N#Vhib4in`iS-HeaAp%R<%mNmVm zlpwOz9(oKO&cuo0o@{E41~9lBGF2e&dzdmXQQHD))%FvOLHp0W&oYTy#Z8C^TZ|!+p z4CNcN4#s%?$E)V;Y}4=0wOv+wxl?FXOa87~mlKHLmTrx(7madgT<{5gxE(Y3jWY*g zy%XMWMRPpdm8Sx9BSiG_^-UTLyq^J$-ee`-047!q9JKs`-MXTro|^{-(p&R#JG1jH ziSCJVQ!5p&p$uA@R^-1ADUBBqx*g=+^~hts|42xaQ|o)L4=Pkjs^`=dT$m)vT+)X! z^Vkx0nXwm9tkj+O4zAJc_1Rf{;34%8jt2AB zIJLohJJLJ6i9X$5|3c!PTTjx29D#@5QOak0fqlg{0<>n}Vg)6Rqj`gpD&;LWN}vu5veDwlN14TO=Svbj!Dg|gEWb}Q|Bi$R7rpe~O< zDSKZ_l!|skBwnxf&y~G>cZ0-qJmr3^?xbcKAv$!iAf^_Gy79gTcni?pnOG?ds&MZ1 z9Nl{=fBfl$7{Bs4{;gs`0uoBM%GaGtv-z8pPzj9KbbjqSC;b5{NFdz(GSMMWIkjop z6M0H%o;C!Q(FnNT4C_Y{NF)Bx63K}?1Jvr6#)kSk)3_A!FjC0%a5H&MJzMRtZgN#I*2R5QtFy7Kv0_iVg9KLn4xR81Q0$d;Ajmqi5StaTKenVI|ZaQ3fW!v|) zM{%duEA1|w%dc_bsUp;{3vt(Vn z^aO>p^xxn)_DA6fjdl6Y)^TDttGosumXHZnJy72mKD_VLTjl_hop9a`WiIp_LKGBA zR*n|YI-_KuwArClBKKL^|rWH1%yle2!!3N z`gJSHddWe$2!YIb&MT^b-fPD=m>9&%u2ghz*OQi0l2RtI<)Wj7f6f zk{Tk_2qwe*qd7EW? z#Dpt%n_6ge`TT%nwU$f1nJ&xT)I&JfB;VBL&b2ENej}I-b+kC zIwUk9fOP4Cw9o|v1d(0?i1dz9rFZEd9i@2l-E+>&nYm}?+}ZDsz4p7_+0VOvtmntt zdp+-rW8oN0Qj&w~j&JOKin8+_T$GW2Szs#Cp8fE;n|Ts3=FaWQ)zY_u zdjaAkN@ufgICC4#Hs6fW)yBT#%*7WE&v`7j1EYH{l%6p%ZVw6AEn}%5s^e%lix7Uv zJG8(5DtB~hz0Mwhd_UBOd0*D*>+Xl?PZM70`XEFRMfydcoJR{^3@z`()niBGLw0-Alrs?+*$OqV5XIb<5hZVO+CcdQI{F4 z9KF+GO>4P%w?10|Hy)@a8+}kFeae+eAvOe37`4YrJ#S*{MhoYD4hIu+7ThhRvsi0^ zRw;(xx~jA_n@Www{=RFIItN~S60Y;eU-c!5;Qf{ln%_>yYJ@1!5=!UysfyLIG25>BhzB2|yxeWY%7t%E@+zLA5t?`pt9&k1jF2GexN}ufc^|S5il|HZiOLaL0UgRV5OP{6MC(z)&Dmp^SmNz6JfpTG_C>-_5c|rWqWJqm zJJWM{7LgKql4ubzF7L~HGR?db>?T-Rwn z6N`Cu+^NMM4zzrrR=zb(9A#C0KX4z6hD(XW_2bLp!lX)QY5RFw+!amvk zU95~~MhnNY%U^Hx3t~KCIR0rG(bg#9CJNh+4)aA*~d*?V~(-XE$J(HHcH(=d2_sPG~&Zd zodfX34b!fm;i-$i;l`Q|#5cinPrZwfS57pen>%uYv^goikqVmMtHuPfsoX%wAR=_@ zf?<=ATSb2Xs{t}N=7aTzyzkW+Gg%YOK9=bZyJ_;IFADf2I%=nF;~HRpaM`vWG+Jp! zTfGz066gwpN@w}~RL+#k=g2_(bzL-CNp6_oF@<&xLBAg;c`#waY9cdU4h|gTz91T0 zNN~nqKbdHOum;AcjLV7=%)e94CUcM|6An6Ux2p(ACy>5T2#35bi)o?CB0WT*XQ~vW z`1qHbBUbpt*V8tp=Q%~XwuyTEKV9e;R3_qM;ltK>=DO*%C6zzp*BWA@=B{7Q5~n&J zAoE$s(&)UaN2Im&=1x}*&Z}I?Uo&(#L5cBKo$csvl48%*G|!_Z8icJ0J5;uo4#+?; z#Ck>Sh^gkJ*v+n1M@NPR_M|?}x1aVS@bE}Vxic-OKI83|meuV^n4zZxwv}D$2KsaS zOrC!KmNiAdpGB0X@pyxL+vg^$vVb!3N?|8=QM9vO0HOAk#e-bxE<|%Rn438h=B|&q zXiHF+B{S-F;4&j*xhwl2<#x+F?tNct9`}RR><={_5N0K|JSi`MRzCg1@1P$wD?7dk zuys05A$${N4?4Qyh9|E+#T~s_>T-&7O6GY{OcI#ism1O0@(udoAd%B{()UlDfM5B* z=3c`T<)$vKcUA+-VKj?&dXibsBRKVnA2Q+3=WKQI+l93W5OGZ^Qd{*^uvKXhJv&Ys zHyF5%%Ria);}Fj+ZiALANT&sO1PvX~Bt{MyhsZ2+PdW5`8*N*1LW_capH77%Yww?2 z3tkCgF?wd!zkEp6+nnS3 zpq51&so0CK82Vr^SR46q=hvDoRxdqSCdHv(mR#Ew7W%*H=cYf#&-@k5Eu zTGoDBETaNf$%!- z0gCt2EaBlc#ZxdTs=TN0%!TIA^_jvK@~x7^=5$>4`N5TxPs*#)W0m4xEoS9ijyjkI5@qNoU{lmrNzg za~6_U3A>lMp6JR~7(W=DzgWO);+_)!hvFGd91W+`7j6((zlM)pd z6crNt7u5d+2-I@$MgVb`z`Q^wcU#XFD1pB|NAD66FaL6&3qeK@kWN6_@(|)(y*zUG(Rm_ijH~dpw%k z1}RXBMVp3TXqov|hBZv}c$<>E3U2HA_ z?2J>6Cc%PgyHytLcRupIql?ufctPQ>Q%X3l=n+9Q-%iE@prza6`Gg6k9V2)(zf9g{ z%1w_(;Wdk}EVq8uLTyk}Tr`sPAGjvP{RtE>@lMr^;h4)+NbXi{f&+%s)W!KyPl~$> zP1wjiR%;tE8==1>yt_eoq948j4k7M7+3f@PgQO9)OD$1%l<5#ytN>%j29M%&=SnHb z(q8l6eCg(68?j8QSc zwuKapUhl`wH8B)Z&5&l~6pw28#RvGv<--FQ#ZykU-EU`4(jm=k0P11}o$s4lBRewihvl^ z(_{LAM_b;B)yR*B^~;0m&@^|@|P>qDjxEV>!qJVw{Wv6Psx-)AF5Bd{JFy5a05^^RlOq&ioDg{EfP zrC$VhC3LU7j>F&lhfhuaV&~~6;EJm0e9)ab4y;A_SB>^|m$p358(#myF%M(3AW6-( z-A{zLW!zu2TUdekCzq&=19xJ&86KHG-M2SKEB)AjN`-*AZY%XliQ3>~3q)M?y&1L(!&PWG7S8OK!_-gru6=Hw{rtR{!Z9`8!A9^Sw%^(l&G?zlCr9}Dp*8B3M?iCQWXJ7NJ)ak zMI@9|<$?d*1-FY9!qwjM1rP-Or#dL`@3imiiQ^w(s56e_R1nYI;0PRR08pMdDs%z( z&N2^T@8jXosji@=ud2M|ruiT;b7(Vi%gWy!b${6!5WL00PELtabK&S#CP(;RERFxF|}IZ1q8Zr<#T<533yFur*n8J5UZmhqwM1Q+Xf6t>ju$^Ra}YM^!ltZ{cA6 z|48(o_n*A*tgQb(omog(*qM3$M|D~-V{*bq#uK-d!JlejUJph&x4LUT~ z0NA^6GW{Zk9vb*FAf23)nTGC`gx2%OK!t`$2MsMCAi$)qG>#ektZ?)P>}^DWJ{Yw! z3C%ppIpnJZo-yD#^t*ssei(__HSF#4h*^TW=(A6n24H&|D3b3)V)vVA6D|tUxDrC% z{SgpusQhYV+|>gJ4iuUK3k($j$-ew}*CNOL1Ty1-i+Fkm?FBKnBJ|=NgF)fioWm7? zD+dFZH_vcTFZV)vheN)4nNjK}ux~%kjRXHiu>k&9yhh}qK*BwUzQKO<^7}huzNJ8K zSR%D1;rB0Kz)QWwf3@fFBEp3ke-P8$TeV(0g$faVy^P^O16{r)2F6z81__ZLp2N<| zKz+sv=Ah;_VHE&e{-3hsVoJa{QXsUjzJxy(Gs0u=w@0vlMm?eEtRXB@AX_RlJLECq z(06=+U$4J10R9XCNd#1SkoSWX6?PXgBp(o~jDwqfxwBSpS@vLLb@`c42MA<9?eHfB z+^(D$DLt&AV7R;D7Ubz zEGFvxj5x@qZ|5;UFQ&InXyqd=nb*k*Quvq&d-eHiYVc;p=JtCIiDWkq3lViSEF9bu z)CKYoh9iaifO;3I+y#z;9Nz*g-i%&AJ&wg^7khUbGaop+pt}$O6XKwN|5BbMOoj^L zdSxNMca-H$jiQz#c>8<>KpT}I;ARqq;J~|AEeaFC%sN0>5*i|u^OtShcP<2H7YrgY zhv;jsf0rvjl$7+g$5(qzWV8MTi{!G&zaw8;*E5)mgL z1DGYPQq0K*>scWnB}bIXuOkEe>_QD>1DAQW{X0JoKqE0yn%Sup_>mr$2E%=e6MRXc zLE0@%sTtbC1?CghGt+~G5(X_yX5P2}`&++hqw#c_1c{F8D~!1ao}`r}73D2-wsDkk zCog$W$M?xAVPX^`rHZRd9l;jAb7b8066Z9h*>b=28D^Nss_*3GI_r-a@2KT4F7!^? zRT(={U19@l2CXBcktd9vcCZ?%U zPyTW~ZrQC@K=0}j z*|*;DdvlBp;*0m$WEKBFecBcQ);!%dJE*i*x_|NQ+R@yV4phD<80Vi4v7V2ykCU|P zOloSNvO}rWIHegLS20^b3`@HYq36msc6L0V42sQK+vUz&Umw{^r`eHz$YKs@ii3@< zFt~WFVLW=zAp5V6W%RwHdXF^VO*G+GXux4b=TTU}5;&GMRftyWlbJC49Dhi_-Ry|Q z5zK3Rb}2vav^(jrFjfS2dPI}WZd3bIy>XFE483N(L1k7 z_$y8<){95RrRy$saFS5ZLW8(_+nVCMtx%R-!|%BnC)Z>~5*EZPI0>SSGE?G*@72)i zRK629cgdzz`~;hnyQff)GHI*SGnEC^sQKp+^bB)HRup+j4)xsQoL)};%{q$`0l4E) z@}?+yBG*nf7Pd8_6F~y@LJaHW)oSTGW-p1itu)o{0xm96bWqAiu%x;)bjKla#ozwb^ShYtAz5mg4e zZqpe~g(HXOk7$gjSF#PlgbQ4xB(%1b2x>iAmyG1>ki1D89@Zme)i z-CEPl#U2DrRs-d%dSYQ#6fOHeQ#wX}REWB@)?4KIJtD3cwXYb#ZrV@vAVe)UNl)$* zYoEsGat2=PQ?4U&kd49)L;d1e(@zLcMTs6#wyKwB_qsab3mkp?@R;YGOh+c$=AVxg zU#40_qV-M-!)&GL{#nnpJ6t%%E7?F;h=m?OaM=CxES*kA7*^|Pxz%m-!(r1%TkDv< znhSTcNaa{DEi;TdV{G?z2!12Bo8}Ls+vext_!TV!N`DIZdkpshypf&#Q+~T~h91HY^K^uNbR(t$?0FW|HdJ@!2}sTXU}ZgSfg2B zvboIRZl}kTa#?^r^uVzSLSCC*d?F>9XB@h%GRA3??yDWedOjP$M{k zWMN)r*b3KYvh2{1%kFv^el@DJ(*Iz@WbB;!4jUyUiO#0~o8@3cn{F?||EBdziV0JgMgiJC2+P02O8Y%g*e3cqshd%%MI54bhBK-0vkp4GSZpI;%u;Huq^&SOJgY3b z4|mWZo^l{4A*uT>f6J#d=cnJ)m3;xb;S&w%?VHF^P-6!^Jxh+gxQW5DD8TieJWf>D zF3uwTd8Ks4xWHU687q?g5r^a3xs;Z+L?PV5U=Mr4{f?z>bBwRvn_iy8-^I$DrKl7f zhh*P+pE=KUJaK6%&<=<3qx;aPr6f@4V^A1D^D1nSrGL$c2zU`QY;=D&O!SKZn2AG!=X$d%^okva?CQ9+3-!Hm!gA74BUZ}RVN*}A*-i+)5HUh9YXt}-6(ng%a#cl{I_5q zLy$F7kZky&TNN1Z&tndtPpTh$()$`4OdFC!PR{h-n0b*ua`aM$^_jGGu77XH`n~K% z!&v4*#G%?esZ2arA@9%n%^`%E=DWqB_9*n8_+H}1*UJ`aDOEU-MvZB3PY@sV= zE{n#`kV7GidSe-e-lwIhX79#o9i8`Q$G0}$fB88W<(w-IfaEKJyxda9zYw*34fl^he}z~S7!NX0 zN+P!aJYVUXX|5+9Qf{$`sv|6N^V1+;3m-haUoQ7cj$38-fTzLW!}`A z?-funLnpD5s)1iP;@TC2-7+bulHAE^z2er}{gZ5^BegHF-45r$DHFiF2zpo})FD@K z7HL5Yyu`=xIgf6pI82W?Qsfr1>Y$3xxD{pW+^fo$k>MK(yyNk<_~i((^JKY~uQ&~! z22=GmVQIVoF|3oQrzO2^@n(tX>OejTkF%-O^pYDZ-K6|oNXrMo%MRjZ^`#_JuoAG$ z-ai|cdOtM(BY<{6s3sOi+I`$|(}1)-#D=#(yo{N-w*J@TUa<;9V*+cb4*zOd1d zul=_JsA4IUpeZ6Lu(_#^1!}G4r6p03(=FeC$DQh?DTSfi#@`Pb*M!=(xFne zMHzuxwgh%}_gzKIV$uPnB#z#J zSP}|u1|Bw$ur#f{^t-kp{7Pux)4DW6NTxpUPdg)iTQ)I1_td{mzY=u{ES>dy{A}0m zoG*)eh2ntHsM;G_iKex{_Ad30rRgk)(j|k(kOkdDxML1E%&!$1Kc@9n@>P9ECi^=e z7@vqFJQIP>*~yk4mHoeO)Hok}E)T0|qb^*emHvZvuXpErF*7Ac`YDeqGbkThTKwIERp4>j&vH*M`pDP`)43(RiYqY4 zl>+s{ALFDLT4G%N|4mPnETtYhB(Y`CqMx)R&@6{)$jBXFW%&#YB!a&J)MZIl3$3ZA zSZB!LN*>m|OVP$${9M1_x}0KsR^z8b+OdAOMt?qP!W_JJo_lc9DdV~EcFK$) zukN`^WC?XR3qt!1U+Q%ID5KqP`i|#tPE1kLI}cZ_CGg6XkUo@YrdbPz$uMb*ps4-( z@9{VG)6CJZz#a4+7*-5^e2&GMkcz6*Av8py7#EeX_A9f|%#xavo?lQ!M$`52t6?$E2WIIb8M$?XU zf&I!i60hNcc4|yy4Ft67H}ILtv~;bsva+pUt&L)ARC=OyXi4#HcDS=ep#Jdh!5{t4 z&6=`vrP*V7cZkx+kvKQL8ChuCyq}W41DaTeYr^UT;EJDYJDIAI9M@^%1u4ZOZa8hW zt4=6UckX-FxEdeqy#mTgot=x=^z!1C3%<(^aCe#`|DD?Om>T4lsRe`gMVF}@BR^c| zL_iMBcI9L|)Y@~;*N=bRf66jk5D<=7pY?YHg*{8wl>dQVFk3nxT?cOO`5AG>FE=rM z%-}z&WhsOUMpCNG+r7jSZ8dtcv9)jCxxk!F6g6BPA(UWw`V91CYR~au8^0~dR;taP z$$h@0ajN5CZbcw2B`ZhqBie6b$(SGC?alBvHj_{}K6h_MN1wTOWKlM;Oq(Gvg}}@c ztS67-*BB|%Wt3WKhG`V{U?L~eL&}KLPN{shm?CpLx3nmmXuvZcid;>GXf$m&+pQU7OjyK)5RP>-LnK|%3 zpGfLJE4_^qQBNjxl!!k$9#gvgn|m4kfYgdFI5YcW8F)@oV6!m_+mTJZ0~Sfb6|J2^ z#s31v#SF&t0;gU9w9yTZEf|%mti~fQf31LC!HA9zn}0iqMq17jO9*0>sgZ$@-9TMg z3$}~Ro4Z71<+Tl-8Dj|_Q#W`JBC}v0K_J^+F_J~aJ~rR@_dR)RkCMG_EZyPh^0IJ= zELdwOalsKEx>}WGq(7TryAL_Bm^!)qFxfsBlbxly(8M`nv;0H6H9h(7Z8I=jfL@~^ zm~e)Taq`S`(cx~UZQVxV(d8hj)DC}`xa$y|2EjL;VT|YRFH>@HhKZ+P*|?64_P}n+ zuNd!OHTUZLEA%-p1p|X@%g8kk6&>-;2|ar0Lv1r)njIdSs3i^K1acRNfsfPD+4$8D z*U1o5QbTqtwGw(qMlRyfcA_V>hjClu248eRibLxY);YmIu*WZ){&-_^PklXbzH82z^;ysjhH{Cqw! zvO*;LyMj~#z`@1_^?~+=F}c-vOIcA<;bqubH&N7IPs!V~6*r|#LM-J@-!Tv)PSc&x z4hD%G%#rDW8N~l~Z=S1wg0%-MQ8+#Yo6zVV*OeB6zC>ww3GAZFMm}b$(M0VTfoOY> zb!g&FekBwJn#X{Ji^dUN|D|7$#LLfz`wFO8^h+CHnncwTf^JuXek+l54}{Y^*nja{ zV2!`&n8gU*gcmm?Q+w^J@5ZplRrAU#MOtJXl-vDpBV~!(X0GjTT=_zQ7CseW1O+UC z1e!mNi4%fc5&S=|(jy~kl*n{KqI=>d=lg>@E2XW5Mzy^oXg`1b*WS)9REUy-RMUs2 zGV5{%$8dZI1N_APJdAdSx0C4HtkV?l4A`wKU4d-pz~dV-I~0X`Pj+m)<`M7qQQlq^ ztDGc^WWK4lXL4EBwJq~Qm5W6h$-3wIkPkZGycm&@)Gg2E^}IRbblO;?S7f}YIQGB% z$4--#_eksWnMPAIIeHZ6fok?~-Vb885LTESxLn!DqL&nd{fGFevaWe*p!_y= z)K-3>=oSg&(*kXlz@mmJC!tJLlvKGlmdr#dNndg%mWzABH&t(myEJftx>D9d>{#^h zdNi1rgR)Qz;%CdUFk@UcOP8GR+wWc4wSIQ(*#cT3rh>e8lPdX)EeBgitSiau7@5w( zW=g1@I+cQ2e!cTdb;ekD;>p?>L>*4)uZWPt`9t@YT$PQmJB_6Le&;FQ4Nvedhh3u~-`f#|Rdqh1r2oYJX0nr$O**7suy+)Wp+tNmCLs4n!rg7S`!spUI*{OG8OFUFy zfk76+vtYf+iaCyW#!5i&hLV^N(SPNngaX#RuOA8SAXZ0|Q1UM}mzzd@_$YGPz2~VZ z8AmYnvwRvDN`(tXlj>tk`IU;ktEvgVEXn8A!4(G~{bQ+YJ`e@-a*Mof4 zM1IA7^4$mAKa%D88%`pm*6touR4}z#3T$ynIP<(?8bto!z8YYIisXu}^n2vLU4TC5 zkr;$eY-2H)C7FRp^;nPmFAw$JF^(w=%+Zxv5?T%+By<-WbgVJ5MXQM5b|iWFAFR)q z{+N>XkIu-0;}$af$6C3SOM>4)uVGb8)fGcP3+8AtYPlxWCpnhliUmI2~ zRaKQgH+0*0OE@4&(toG&XldmyXhYpxj>IaANk;~r>eDUZ2^2QMu^yu?y2Majd=K0dw`ms zl4&ea-6>dZtVk0*S(LsxVVmp&IXh{Ad}4Nof|`j;kj3;r1Q(arO!{~efZ7=KA9`HB z#$_ySxkn*2RMYPN1;?@fuQ-nL{{?WYq@3(LtpCH{{=Ybmi=B)0{}{&sVU&}sS2*X3 zxzNtUp;GbDy>Gf?rO?Pi0R@y~k#6zZD&CH=8fQesv>L+6HPR`_@X}1+Ms8bMz#UND zTlbj!eYStihyF?K4}Gp1Tm-r`GJBJAX-G{}L`WG3^~cAiUQz%oB{*bI=vZs3{H`|6 zs*yJBR|6LNq%1-l&_vP>=p_f#wX$oA;zNSNh6t+$@Q}~V z12lf~Z6fExK>ngYV@AYFgGWCK3+LlDb$0*uhP)N_0yCzig$pv;15jz<;vJA(BPfHa48C$aF;KPXg$q|>a~-b;^QMCU{Lp?z{uy2?>oT(DBR0v#*hQOv)9ag zy-K41zu)wiTA|xp18u&OP?lf3y42v1%CLw}q=oAXkOMDFufm?O~UZ1NC27okq zSwPzl7TMn?yGCtA7{orgt#pSKHW)(%^pSnWpg>3rsAwaiLIB?)RZgw&H(4slF4f~} zYM3Fh#hx35G`R7hhjKd7W^eX*DdLG?^Li+KxcjHSe;{^5(2%J?ZeEee%RRNAC`vrX zO@oC){SKm}5~myjFmnMWG0tfo8v`S8;GZX8zsrYBZXZO*Q~*ANi0LGo#Ni)g4}HR$ zCV-#sWRo)|LP((0(O%;~BEl%B)qcWV*oJ_HgGJ^KA&bq=IVYt+Dp)BYX29da!%GrY ztcizoX!MHEb&upv^9tKCJG*fZ!TpY;g+=j?UMXd9TvD2!(BOe0g^2*T&5)g*hfhE7 zfC5lS7eo-~`dWz9hU_vSFptW=u$O4ZNP06sE#%~7`xgA$K$Iksf*rB<0R?muGAOLP ziSr8Tgz6Ff4mbp590eSK0)WNevqMK|IVVaHpb=!}uny0!=U%jTGVB&YZ|Th_((jEW z!sipoi@wWU6a&ykMOfHwsyN(UAVoW=HYP0kmm11Q*?@qF2XI%r>>$tl-4?$UpV0~O z5*Zx=@dr2)lR}D<*0-VpkQ+&Qi6f~$cz(gD1jaurEiu6%4o9AX zP=^4b=>g&<&VX2Sp_co!Yoi!plES%G#Q+xAl_R73+AMJBhft9*K?TwRRx-sUGKP^9 z*`LJ06JibG8`dM({lQ{TDAILXHWbSUaKmdlYP?K~LheCJB;5Zl=sSo`CKa#Wel9sJ zdPfq&yOh=PIIRvV=o1^_$vyIzc5#So{eD^Gm&h<^$K8qnMlfXl4N>o#F4#zqUVn)@ zpN@+p-h8AwM_(^sc(*4?q0(tbtWvc!>cKV1vip!v9eTzCjehOFQ+l!-`J(0 zHDfeD#=&R4ZGU%LuQN8U%muAqi%jrkn`rBDWC&_%%vEApF3gnqA7XbnTF$<$+UToo zHeLAhjAXg!SNB}BHg#CLC;ccF>z|_@6NLU;`Us7|=1{234xgSdifs7E#+VkFou$w7 z3}v~HkFf2|VEE`it|B6?IN;z|=HUk&6ew1t9)0AZ5`%R?wnfjE)cU*YSJz)Zo4ig1 zsQ;a1EWcwjzjJt9gAuyea~sPQJcJ`+!)Z>IceP_lV9HE|w??kZ$3iP`izrRWQiWTp zel}$2^f^6X@V>LFtyakJ8LuYCN0Y-j5HMo9%2K&~bR+or*o>WNh*h+Iwb$-+s<+o> zT(WTy_4ASb!ND2pgHuT6gBzL_X?N7CdyW_jeFD}lwo~KTtDb&8unSXY8o5?n=;r9m zpLC#u*c>4jHp558c=GJ;%Nw;nv~V7x#)ZP;{#un%>`ZeqbBv+=B#b>Pa=NU_#U76sozEF3EEcF;CPug3 z{YmNAC2wDUH-Bx<(WTZqVlq&<1W^i?pH%8(eUKynob=IgQ725bUnWdzPLsa4;2W>9 zgmNtv5P{IT08TkN`h;DC*z;@J4q#SuEU?aPI!Ad}^bl3iSk9K{Ie$i;^q9W`=W%TD#V^vxLq`razl?1nUj$N6~zVF`A+%wcp{!j&)C-D^)g;ed3>)F)z{Q7?U zRq3E;NOrrvs9G(vJtBCRnjkfN8qBW4?L%Eb_gD`dtixe7-s?lH2f00Ek8*pQSw_^XNG005mcXq+CtcU1)I0=+0ikb-U7rY3 zNxm^l?8NVI#5C+)mOi(#mHZ@CL`=WLUr8m;akcuLoAvj&)SQHY-)@0!QxPoNW=qjI z`D$SA)ittEx|Ut78mWj%uY|dFB}7U`R`RN`mDOd}2Mi|UK+CvW{ssNAx%tPv(Dpa8 z2=WBhZM~tbFQ3!72I}n@=Q%!$Rr?t#eKAcwFR9+7@@wvIb~6tMxx7n*7!#7)JE}$b z=<-D2>=FEG-~~52fej8SD*uCM0Gs?OJbc7Y!l-M5ar?$DvC9f2T|7 zc0N8xZX~_+E6tWSCUMYqD=(s4a2_DKX_D#MRWf|!2d4OT7U_%=TiAn8uam7Iz!LIGV zsq3z~FFKn9GaguP?$bfiTFzsAB4xjY!VWR6n(FUYYsXG&ni0J^IAG)?W!EO4vGiMFJSB=%v2z9@GSVKQ3Z zjBS%@dV-s!t|ad0b#Qqh__JM%R{8a4pZ2Mf`ULL;4WCyHC~F(|rCaA5|7Hab#j025 zmT`o$w}S0*U-~7sp7mCanB8tIBBuRtQP#At{n*HcIxH#6BPIS;1<$ zKt}g@!)V9h`CJ)fqqtZR^W?P3qmKudOz{?+qbF#7@v9f8o2@@4rZa1c*OUu~77_%+ z!%OveQAEc=tR_uMPZ)_L=&pZ1#yu&mPVXjnMT12yr3US>&kkjRto|+|wgWNuFT6h- zPb-saaW9Bs2Ud$8Gy5w<<@S$ol)IR)`mUR#&_P4<=QABU{e#o zTyYodc&8u}0Ftb|v=y9|Io7=hcs2u*Hz7hEXfN zZ6-*9QzTC>fcTzu-)Wnl!o>jpLR5LtZmt6MWr35UevGCvpOQ0yXANSQzGiE}t>qPt zdE~!oHBl74h*r+jkE+gjOPRL_Q%Ho6rK;41Bg$GfHAR}Z<)oQ|mo3uQJ~-Ju1!(wq z7APvNtQ7ZS&{EeyFd+&RiBoPfQiGk7?!H|RlF!&`K;P2ydM$+PNG9r4HY=KbqwrAECDHcop+iM3q2V(Gd z{bS}aL-o77X*GCRTFrR$DxPgqp1N6x19r=uYcKOJ!&N5iHtNIL zIHch6a}k~3^9b{IE>$_D@s3)fFQc@w_x9~mpbbMSfto zZe{h&3b!KG0Wf1zk3>G<5GpHk*iU6b^RRk2O1V{~=c!+chvlZIQ#tgt#tv4$OSi=DWaIC_0^yMcw`U~4t9Dwv>qsT@B5p6N8hMtAAOH>c^{>O4VHVZ zea9T}v1HSLmo@~(=DNoz+R+GgnqwOp=6{*~EZrNy&0lJ&^D%~L^l0JPpk2JdTl?bD zR!E7d-1z!&c_wOJfiMxM^;InBq`g8e!7EaJxd5Nq9P@J0?HDLnK0EG|W;T2937cyg zUM@vPY5l2pqfMYAv}M~V>oRC|=g8j({|JpECtG>iEjbuLGCYZzq~c9QR@Xkw0y0 zjs+U0NWAS!;pq=tu_4%N-k1ZYJ96;J*)%!9Ug7+A&*n2c4?9==BDB&2=k4=$GzlBt zsW#ByIw!g4`y$t6e_q zB9_B~YBWyq^&51i>>|BPXpTj~k=7N=8kh+1``W3r##KryCOTP(9eJ^Btwn{<^kQ8+ zld&FEpBAmpzR8#OQFUs0W&3n59(J_1@xkW_`Hodp39*kj&AnpIw=^Sn{w;A{gp(az zv*@*P)|CUnSL7@u7m2`om?O=_eJuLSq`-}Sl;b&$u=zHAyUhENx_{+-A#5CGtXNVc zK0orpU)wURsuBEa7xa|z?}t~7?Y{P1Oa*g*rubNA)fg-cqOavV(dTGaWQ)*nHjajW z+wCM~c(+&T>bqQEP11gj{@Ojv*t+sDrgN$8XDITxH1=^;3Oik%kb8MP9fl}H(CyR? zYua2m1EXr53&&zHhLdccsz{TNRBPpL`ls7h($$PFtJLBa1T4M%1)}~#33>=8#r}LP zLTyxb?5wuacG-Vyd&rn=m?6A-cS2`%rMb}^O#%u)MjIheakT!TP!VHr94NpIg{kpAbMK)4L9dk>!C& z$+5co7sLkt!!|2vTg$?w6b4DS<7iR)qh1w`m4V!Ow{;JsCoiu8~t1i`jG=>1X|e(0nVPyo3QUVIOOf zE;#KR!AxK;Ma7b7lV%@=fZmWgWlla{lL-E?*3(mGN?~&*a~QUx&B1`?5FmtozL-Zm z{z^!g&K?Op7wUf4?WI};vh(?4ncF($<=Q>ru>J5awJ1~H(aBl7KqD9n-#Br0Pin2R z1k3H2LCrI~{FBqdgxlnONV0{>+JbJ)6Z~Usou9OWQQ%E-Lv9MBV-cpaG6#6q+X|Q@)Ajfvu1za zoBSy;>B@~d>L9~$X;KR|8PUaSe1O^UssLe-mC6cUrmN*D3g) zi@eYkU=Xu(l5w@XK7}QC9Lc<^6Ac}piMZ^N8szeh_BDqo>^K&3Yf#L_mUZO7m+Jg9 zXoy9E)MC4ngnlb*loa+T+PaSHye5h%S{X_hx4a$IoGqxf7#H#i`eyO7@4h9Vd+8LGn=3hTvBsi=6&MQ?sMGViIWsnEh~wVh zAdTY=jgY#alZSO}M`$pI`c}M{1^oNl_^mQBN%{ILCvzN@o^76->6RrG;4#e{f}b4A z&(hM^q^5XbEYP6cv0`~*p9oc(aPn-|?@cI@_M?22*=fA~kW;3yf_g#n`iC-!VAC|n z9V5hpY{*pmz{9wpiGWN@DX%DPTK+1m{m#~A$HDig9}ZxB@f40 z-HzUU&7tY>cqNyiE!m~b^CpCq^gDe?e2I_ly^#0i!pcJnbI~DyOY{#R)y}%MQ@21; zM_&G~Y~XpN!n99Ytyf-rSo*dSsrBHNx`;+9mocfuMg{3Zr!oE8lA`EY+M0U|N>@`Y zM&vC%t33Bg(<3rYXW<l#8#QrwJ{TF`+E@LqwWWcxS$KkBZI-#Wgex_=PyAchpDF zUsvBY={Gv--S$H`&u%X8RSvC(PFOVmg!*5;P9?Lz_-?W{A}sKq%zs)(i7@(iXIr_O zxN@mHVjhi#DwmK6Qx1z?vd}2hs`tFBN{xHzQcn{6XXMVo)X<${On}rTfA`wX&yL<*57 z{?&Z!b73a7<|kRlH%yvOyLu=)Wp(0Qug-@sX&rTZP+`nx<(fR$kd-#~+m7iY_($7j zw{fZujuhe?{&vuiu%}7)}2iidy1$q&!|lpWeiS3rNuR5 zN#S#`s=MVke-1t8vFXvW?PJtbPo-+SxQ$Q4sy60?QpKUO!H>MlGOS)*>^zCgTI%k> zW7AmVG%D;a?&XUX%VyR{=@$^iR9EnoeBW&Jq_yCqm|~yke9_9Gb$4)zvH^a7{Fg3< z==vsuBS=tJ_p?e4drR$@IkLW=73tfD2%>GAMZ;C)iohj?(swf?h#H-V>Wd_7WJ{4C z+?89@-tliv<)fB{|4#|m>Wdo-V&e4DZN)9oSM6h z?s|ZHI;wY-;7Ds&R&p~BbYxK}r-wU6TglXor2D_(5eRG|L(Ijq^|2B0@PiBesbY10 z47{Emiz+6DH}}LLPLrFrDoZ77D$Zy+&Gdc`@PjOy6YgBU7zfAxHdj5%9H% zlP+vx)0D*zsR{xBet>d|-e>A)hcTSr?oe_~b@)d?FEVs3Lq}9UW zAKi`O+#}^A#wPn-VPHo)+39RJJTHMq3HaKZdHw+XBLBT|{PCbJHn9Efo=c(?Cyp_M zn`BFj2{RK8Id?IoK}xYIJ;?rQhq;YcevzU)4TRSJgTnh$a9h}YRcUIE0+#W1ebBpi z(W3-P;cmyRo%8Ic`&cLbmb7gO-#HH-7RWg26vwE?x|>Id6BAhB(bX+gX|4CEy(>R) z$YJGqITWvTTzXqQNS{edv!mmx~=5>LR=4qfpwRLN;wz zVqrhby!`RPEY6M6}BnY;S-JE!P__qEtikzv3Vy%A! zp3)7+Y@!cwb)1;Lrhc9S5yJj~Xyw9JF89z;IXMChsx+QSGOx;@j5&o(1>-OO6`a#q z>Do13_sxv?U_j177e+>*Zo1$RDyNjo9+qcALJRcX@Bg+umZb7mUYlW1Cb}NRiQ+

*Z1@Fhptt@9{tS+zm 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

D8l9^8YAYy8u?B@W#HZNwMed= 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 bIymavJG$C`?j}1k8xt1-Ik}kJPlW#lVS>7g literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_spin_exchange_interaction.tex b/doc/src/Eqs/pair_spin_exchange_interaction.tex new file mode 100644 index 0000000000..6e598f75ac --- /dev/null +++ b/doc/src/Eqs/pair_spin_exchange_interaction.tex @@ -0,0 +1,11 @@ +\documentclass[preview]{standalone} +\usepackage{varwidth} +\usepackage[utf8x]{inputenc} +\usepackage{amsmath,amssymb,amsthm,bm} +\begin{document} +\begin{varwidth}{50in} + \begin{equation} + \bm{H}_{exchange} ~=~ -\sum_{i,j,i\neq j}^{N} {J} \left(r_{ij} \right)\, \vec{s}_{i}\cdot \vec{s}_{j} \nonumber + \end{equation} +\end{varwidth} +\end{document} diff --git a/doc/src/compute_spin.txt b/doc/src/compute_spin.txt index 4cef1c0143..9067a9859f 100644 --- a/doc/src/compute_spin.txt +++ b/doc/src/compute_spin.txt @@ -25,20 +25,35 @@ Define a computation that calculates the magnetic quantities for a system of atoms having spins. This compute calculates 6 magnetic quantities. -The three first ones are the x,y and z cooredinates of the total magnetization. + +The three first quantities are the x,y and z coordinates of the total magnetization. + The fourth quantity is the norm of the total magnetization. + The fifth one is referred to as the spin temperature, according to the work of "(Nurdin)"_#Nurdin1. The sixth quantity is the magnetic energy. +The simplest way to output the results of the compute spin calculation +is to define some of the quantities as variables, and to use the thermo and +thermo_style commands, for example +for example: -A simple way to output the results of the compute spin -calculation to a file is to use the "fix ave/time"_fix_ave_time.html -command, for example: +compute out_mag all compute/spin :pre + +variable mag_z equal c_out_mag\[4\] +variable mag_norm equal c_out_mag\[5\] +variable temp_mag equal c_out_mag\[7\] :pre + +thermo 10 +thermo_style custom step v_mag_z v_mag_norm v_temp_mag :pre + +This serie of commands evaluates the total magnetization along z, the norm of +the total magnetization, and the magnetic temperature. Three variables are +assigned to those quantities. The thermo and thermo_style commands print them +every 10 timesteps. -compute mag all compute/spin -fix outmag all ave/time 1 1 50 c_mag[2] c_mag[3] c_mag[4] c_mag[7] file mag.dat [Output info:] @@ -50,6 +65,7 @@ metal units ("units"_units.html). The {spin} compute is part of the SPIN package. This compute is only enabled if LAMMPS was built with this package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. +The atom_style has to be "spin" for this compute to be valid. [Related commands:] none diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt new file mode 100644 index 0000000000..cd94984230 --- /dev/null +++ b/doc/src/pair_spin_exchange.txt @@ -0,0 +1,82 @@ + + + + +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +pair_style pair/spin/exchange command :h3 + +[Syntax:] + +pair_style pair/spin/exchange cutoff :pre + +cutoff = global cutoff pair (distance in metal units) :ulb,l + +:ule + +[Examples:] + +pair_style pair/spin/exchange 4.0 +pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff 1 2 exchange 6.0 -0.01575 0.0 1.965 :pre + +[Description:] + +Style {pair/spin/exchange} computes the exchange interaction between +pairs of magnetic spins. + +:c,image(Eqs/pair_spin_exchange_interaction.pdf) + +where si and sj are two neighboring magnetic spins of two particles, +rij = ri - rj is the inter-atomic distance between the two particles, +and J(rij) is a function defining the intensity and the sign of the exchange +interaction. + +This function is defined as: + +:c,image(Eqs/pair_spin_exchange_function.pdf) + +where a, b and d are the three constants defined in the associated "pair_coeff" +command. + +More explanations the {pair/spin/exchange} and its parametrization are reported +in "(Tranchida)"_#Tranchida1. + + + +The {lj/cut} and {lj/cut/coul/long} pair styles support the use of the +{inner}, {middle}, and {outer} keywords of the "run_style +respa"_run_style.html command, meaning the pairwise forces can be + +:line + +[Restrictions:] + +All the {pair/spin} styles are part of the SPIN package. +These styles are only enabled if LAMMPS was built with this package, and +if the atom_style "spin" was declared. +See the "Making LAMMPS"_Section_start.html#start_3 section for more info. + +[Related commands:] + +"eam" + +"pair_coeff"_pair_coeff.html + +[Default:] none + +:line + +:link(Tranchida1) +[(Tranchida)]https://arxiv.org/abs/1801.10233 + diff --git a/examples/SPIN/in.spin.cobalt b/examples/SPIN/in.spin.cobalt index 1f740f0741..dc93920585 100644 --- a/examples/SPIN/in.spin.cobalt +++ b/examples/SPIN/in.spin.cobalt @@ -43,7 +43,7 @@ set group all spin/random 31 1.72 #set group single_spin spin/random 11 1.72 #velocity all create 200 4928459 rot yes dist gaussian -velocity all create 10 4928459 rot yes dist gaussian +velocity all create 200 4928459 rot yes dist gaussian #Magneto-mechanic interactions for bulk fcc Cobalt #pair_style pair/spin/exchange 4.0 @@ -88,7 +88,7 @@ neigh_modify every 10 check yes delay 20 #Magnetic integration fix #fix 3 all integration/spin mpi -fix 3 all integration/spin serial lattice no +fix 3 all integration/spin serial lattice yes #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index a2724b106e..8a21463b7f 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -297,7 +297,6 @@ void FixIntegrationSpin::initial_integrate(int vflag) } else error->all(FLERR,"Illegal fix integration/spin command"); } - // update x for all particles if (mech_flag) { From 6490ee46b775bfe1d5ea9e26887ce7c820248d30 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 6 Feb 2018 10:42:22 -0700 Subject: [PATCH 069/675] Commit JT 020618 - Documentation - Memory leaks solved --- doc/src/Eqs/force_spin_aniso.pdf | Bin 0 -> 54854 bytes doc/src/Eqs/force_spin_aniso.tex | 11 ++++++ doc/src/Eqs/force_spin_zeeman.pdf | Bin 0 -> 55223 bytes doc/src/Eqs/force_spin_zeeman.tex | 11 ++++++ doc/src/fix_force_spin.txt | 51 +++++++++++-------------- doc/src/pair_spin_exchange.txt | 30 +++++---------- examples/SPIN/in.spin.cobalt | 7 ++-- src/SPIN/compute_spin.cpp | 1 + src/SPIN/fix_integration_spin.cpp | 60 +++++++++++------------------- src/SPIN/fix_integration_spin.h | 3 +- src/atom.cpp | 4 ++ 11 files changed, 84 insertions(+), 94 deletions(-) create mode 100644 doc/src/Eqs/force_spin_aniso.pdf create mode 100644 doc/src/Eqs/force_spin_aniso.tex create mode 100644 doc/src/Eqs/force_spin_zeeman.pdf create mode 100644 doc/src/Eqs/force_spin_zeeman.tex diff --git a/doc/src/Eqs/force_spin_aniso.pdf b/doc/src/Eqs/force_spin_aniso.pdf new file mode 100644 index 0000000000000000000000000000000000000000..29a2b49ca6441946964429c0c7ab4970b9cec648 GIT binary patch literal 54854 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

N_-lwI=XYa;pZ0+}F$G0}$|9IQzXPqkyf`Ad^ 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 Date: Tue, 20 Mar 2018 11:42:22 -0600 Subject: [PATCH 081/675] Delete pair_spin_exchange_function.pdf --- doc/src/Eqs/pair_spin_exchange_function.pdf | Bin 71498 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/src/Eqs/pair_spin_exchange_function.pdf diff --git a/doc/src/Eqs/pair_spin_exchange_function.pdf b/doc/src/Eqs/pair_spin_exchange_function.pdf deleted file mode 100644 index 4c80a14de8af12257d7f37e40da1da99970def9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71498 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

%pUbfczzBFU3q2QGD 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 Date: Tue, 20 Mar 2018 11:42:42 -0600 Subject: [PATCH 082/675] rm pdf equations --- doc/src/Eqs/force_spin_zeeman.pdf | Bin 55223 -> 0 bytes doc/src/Eqs/pair_spin_exchange_interaction.pdf | Bin 61879 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/src/Eqs/force_spin_zeeman.pdf delete mode 100644 doc/src/Eqs/pair_spin_exchange_interaction.pdf diff --git a/doc/src/Eqs/force_spin_zeeman.pdf b/doc/src/Eqs/force_spin_zeeman.pdf deleted file mode 100644 index 2f53946ae420d796e0f8e1dbfd85ffd6b29dd493..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55223 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 EFX8QqMF0Q* diff --git a/doc/src/Eqs/pair_spin_exchange_interaction.pdf b/doc/src/Eqs/pair_spin_exchange_interaction.pdf deleted file mode 100644 index d1246c15aab0daa300e114536ae1b729f0a61798..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61879 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

*Z1@Fhptt@9{tS+zm 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

k<#!7JN$Jw!&x9F-@E6?u}F7i(EEmTM&t3Wi#WS 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 WMEZE>!Lnw=`U*(Mh)!D1XZ{Ng_IZ2& literal 18405 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 GTmD~HIFsxE diff --git a/doc/src/Eqs/force_spin_zeeman.jpg b/doc/src/Eqs/force_spin_zeeman.jpg index 424460970b13da25a6ab3e11c7db5d34c72dd395..14fb5500cf3328480bd30dc352de699575201bf8 100644 GIT binary patch literal 6517 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

hWTQ$eB}< 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 YAN#n!=#A%hftx-OcW#2Ko`=Q%0oGV3X8-^I literal 43983 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 N diff --git a/doc/src/Eqs/pair_spin_exchange_function.jpg b/doc/src/Eqs/pair_spin_exchange_function.jpg index afe09ec0578120d6933327652d29ba63cc252639..d9a7ed3ce0ba64ef054f9ca7c2115ab971d003e5 100644 GIT binary patch literal 10597 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 E02$m44*&oF literal 32386 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�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 Z)S#DEroT0-vH6x4f&d7=GW>e`{{Z+6_woP$ diff --git a/doc/src/Eqs/pair_spin_exchange_interaction.jpg b/doc/src/Eqs/pair_spin_exchange_interaction.jpg index 32670444b30ce7d24d9b67567cab11b584b6833b..d51524d27ca413ec4ded189107c2219b061f7d7e 100644 GIT binary patch literal 6661 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 Az}^aQy^LSI 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 Y!I7Y)M6E}T!>}O5I?IZdWBgP9*_K%BU;qFB literal 23008 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 diff --git a/doc/src/Eqs/pair_spin_soc_dmi_interaction.jpg b/doc/src/Eqs/pair_spin_soc_dmi_interaction.jpg index 0522bafd688739ed8d15f88f6dc1de8d8a1f2b69..74807b105d711c2724629968b417c043a852f18b 100644 GIT binary patch literal 7161 zcmb7o1yoe;xAvJ~W|$#|9*`0S1O(}>p}SEU>5!0?mXMHUK#(4gR-{Wp8YCnHBoqM= zkWxxP1TOyL_x*qCTld~|-?P`d_Ph79_c~{tx1N1DcexB8)s@wh0T2iT3|&3ILgk_m1w?H(JZRgtx%n(70g007Yq z1__gdjSXe?E&wd`L4fLjzK+~+;$8u99sN@P@IE+lxu)`t`Rc0xKsnumXi)JV>VI@d z#jjx1r>b5ab1Y+m{(U1}*tq`)ea($)P+0=pz3o!%3xE8%Y3o3=yUw+5^!E1nV3Q}o`WnNAJe^NKX0DrpAO3k$JiBshi{ZT z&%VDO&l=nSsBcHOoQjH{taAOJ=U-7gs`-4|!%;VhcL81$H&7ZX7S|C&6p(vjr7uxf zdvb=^TWZYA@g*3v0blponBL=k`bkaWdEd|5ekcQf0oyzQio~bVPA|59DT#8-QV~BW zNh6znl<2!byCtC5lV>eh6>L)2QESd6O})`r)_Ty17K+aoW3F8^vAY+YqgYhdW}U3Q zanIy5tXk_BFEq*zf)^|5N@k z&962>SrEPK|A4q!Gyg(pUM(RI7z~Bs6C&`Tf0BT}cn~sx97=JWUk=G4pl9t#$;_%B zo>~Z_5)_u#jlkA+PonvRFbW1Xb?+2y)6$E2zI#R1PwoF}iNR#S=gQgGk_ApKGj7Gg z;law281uS37ds0>&9e{`{_g3Bx9T}aP$W|oTYsb3(3Q#%QudbL}ka_u-crB1`E$VYe=Z=z;Rz4@C zM61mb`F_N?o)qKMr4G85QtyWYtACBQa%IPc=a|R6 zFeKS`y*+MFVwaSSuUp6*UocB5+V(y!u#$o0dwcbBy)1V5i=8$Zbw zNu*SsU34LR+rO8im{3b|u%FnS{Na=P^_QhmZ(uX4WwBC4D5WCEle;48KN#|F#ZNW_ zsypddSem>yqMgBA6Zq)A`zcsWPo)H1p20R=UKuA)?M^?V&#zI;LVL%))1YgQ^?jW5 zHSK=(=ji&EC##mJ-#$o-8Oqt|SxG4@f2*w24%X=v)!Pw^sDf$P>?#~+uS(-*aD3fe z@zsZ4e+_=nj01dyA`+XfY8LYZe1-mV6Dd~LYImTAO>E5eubIRu;#*G1TqW6!g*+`P71?g}* zXo!hd;_C<1eR?W-RFa=uG)U?lXHh3p$-g5X8o?c=gs@7XURAXEDxviQ8Tmfs3S3|8 zrIcau)@;fN)mE%EuRXtAOTGkT`O9uLm(Z&z(f(*|raE?a!?I>JHj}ywg-G>sw`$bo z(>@mYv08Kq)J+c2d{upa2IH#KOk|LvJdouduEl;BTPko65>{N$cG`Mp#G~>v;v=DD zZ^Me!%#io>5C==Eo!6FvTWguQG~62A4U1`-{RcKv-cd*MuRlKCO3>G-G+$_mns2Lx zDp#$};)1d90-wSM!WCLs%G2K2GX-=H-}(S!F3Ju}WY|kAhW1-|l(|nt{P@^nZDxdS z&1EYxTiAH`faP$Mij00@`i8p5C6Ft&(qL9M6&wCN%liHlAabBGwk;*kQ* zUerZIU$on0L%>;9KDo5HfHA*=PvEx;=XG0*M)Y~#TZQqVx8%a;|0SBMraL&)%0wd93=({!q<+Y{T2r*Q(cdfQk#JHmTL+nH-P%)uLvDi$W{-TD2u7 z@>m#btt6P|1|1i_W78lsFksr5yaaaqf3*iq^;1rr)~nhw)|64Hf7dk}H_$yMS6k6; zzHza1y+Gs5wSGLuxHzUr;thUj)~&T?6|zth&FSU~Ve$9#1v61akDu6LosQ>U`_Zj0 zz0_jHPH!_mLSK6z^n?2}C>;Fp>7?GEuJ04!J2OeKQMwsNd%cpm`ab;l~%GrSmJeD;d zy>|`9!K|JetD(bj$_ak?;p2|-(p%MKlVi%!;7;uvQXxi~RZk+lP&GE$&8Z%4Yw5ha zr^!76w7cW{NB8F=q0*Y^<9TL6Iw>h6lR42G*_Eim=nQLJ?)ki@?khDmO;rv~SQM%} zxp*qLz@7Ph&UlIo{IIH-PQ4+RN{Umltg1TiVy0hyVkl)MU7{?-Lcu0)D~qvc_Ca#d zr#{J_C#gb}-hK0_GjVk}X8yh7L?(9LSxH{*vrX=2p8e(;4A`oy^$kW(w;0OlF&bCao(*U$pDsFUiF|6k+-SDt~Lx^CgiUt}-bAPGk3?{=@atY9S z`c3)VlXSd0NW6S__SxXTHqz;+X-96wExTeMAPBX~>_@zmJc=rAS)eruRPFU-Xwlux z+ik3JIWU}_GKj7WK7ihGeH%J5XT!i|0xzXJTIX09MQyk^y5)+1!tok$H-?$dafdPppb0xvZ_?9y~3TYh5T*eEp(RC-P>mEE;4l=4yO z)f+sL+Rmz>xgQ-hHA=zH9xn|(mM$Z`W;x33>grJ*#>G*C7qdmGVZ_*k|CMd%^>Zew z!Q;jK!G6zkzu%tw<_|4i)1xb%v695_iRV15UY~QGt#vL7pb1)`P7co0v2(}h@B>W{X87a_*uto9aj zYG107ibUJE&!|*yIH0o} znQji-l$3Foa3+mXyHj6uq0G^^wNEI0I#mJ#@hrJ3#K*+3BhsDc{El?uC_!1a+QKZIq{VX%MwnKJ!-||qihPURfmpq*+OIpWQGkfYC z5mCj^LU zIGK`F&G^jfvz$*f9n*;Br973bQmKDN@_joMHK_Xz8w>B}i( zqeBMqxu(WV5Au|F9xI9!)mM&{312)T8IvBUcZV;bSJvtDiX6=6L%OAWyTC`-bdg}U zSIF)FQZ6@>;K>Xl9`v>ms85T84(6W6KqC*$*mOJyJ{o+4RVn4jUBQ*@C~ z7A<;K1X|rh2^#uKn_^ia9vYGv$1c=}u#DQUgYrfI9S z5D`Za>ej}1bdNr3#3x}1pQ4Om(=J3qql_=EW!>!4tqKYYh7Ep}k%%vwZ63_b^7Hy* z&w!7wyzSnwA`Wg(58%Xxzod0tyVI?I(6Qqd`k=~(wJ0EUpHh9HDQQwl z2`>TL-#^!A<#7~rKO*+oUb$E>KAyY={9C}37a4j|NTo^>t+BphwcV6Y>WMT;EGaik} zs{|m({tOQdJy@6(%f~0HrT>3m>FP^)o`(>g){a;?MZH**EN5vazH#bzr9COV8No+v zyeA>qO`OA&26HhZ6P*M;=t9_PqM*qHcbM@^Q-JgPYY1ZQ(G2ihyrBRpVoffG8pq)$ zMvB`%NGI58_)PaCUMJMm(f91dE9~b<-Wq3Ze|zsq81?B@dL zrC{{?{6j*9oz2A7)91Nzlpo|=+e^Vc#(}>x%B)qs02{6#wEb?R4(8%s#QErMf}<)? z5G`F|j?AFjU+#YZvP|dA?JI`x{qGNV@DYiFxEAY)TGTh$9^UxH*AD58QaxYN(DuiS zREU<4PKi%eI*9m8L4Ix%h_XvCOt$E9>T=l8_Jm7cd*qyX#v>J9&M<*nB6-#>BYt!o zKk+2fDdlY+3HkcA(K18siCpi3u>~>Jg$elB1$$p0fKpkC=~vpO3Z3PUP;w85Jef6a zo+UdRq#y>+krqd#FiaD?#}u>Iyw|^}!~h|H8E{oE&`r=M5^~?tj9POF)q9`Bmixqz zkKh}|`-nwyA&ecrwN){UT_((o+gayFr|W@t!45mVXT)8;_^oCa)`j|-vufW5Z_Rg~ z5LY-DA6h9edZeUrh%4Am2b@SL>ENdd{q|$>-FtaDl2=#Q$UVa73OCp^kQYKMv+$D% zh$}8}rL3k<0?ffK#TXk%$kRw3J~M~j5_ywOkCsi8OVfPCl-~-S>saqcpOnnLb2`)! zb%3;O{bSKkp&8ZD^-<#$jo!g&f&E{uq)9$Gs2o1D1Y*OHgRGNuImmm?ROON5`?fd; zC%EQ3@@#0i38U&07C@h9L0GnHS1<@J;;wUy5*&Hzz~WVtOBuy=QwVkq*6{P&@M>UZVkd$>w`(HsTBdKcmZk@UASkD}i_j zXM%=cxQ0hL2w1E=fhNx_&ad^B;UU39aS*zCzr;m|n7UeF4{jpXZL=I)6Q)Rk0YDM^ zl#mAA+uxY!BBsb)(RA0-xj|U04?gdU42Xq#+h|*r%}I&%eQVSS6BDOJ)C0R|Dsbs> zdiOReR`H(cqN`ZC0b(+mVw{+!hNOypy`ec{cw0?rFD=Fg}-r%2pfYR7q}Km`FMO=fUPq zWwG>t9ysFob&`VRVncL*OPwnX;(i^ybn?xm8-_H6%oeuUA3nvuY?Cy|MZ{!C+2p=n z(u-RrqMPnw2Ix^11`QOws5i#tD2vTB2>vFf^$;z2c5pll^J<*zv@b2Iu5A>6PKGwtjFN{TBc z$oQ0>gsfdROe9vD%y}olV2A=wW4l#O)mj^5lh0&1WC9Vp@~VrN!fHjrL#)V*p7ZS zlaD!OZY2=LDBIS(=r9VmDCZXF3ByPQe+)Z^lIJiX$YLMIX4c7>El&Y(6Wuo@ed*B{ z7MQGYg@L;qRGvDHNQkXajj)h@(9**$;}T%{=B4O?@fLzlqkYK4>6tzwb%6;0wEYYA z-YgDCNwH7(B^`M5J7$oR6BV7xc(E{8ORoxsA(mGR2c@K!T#MG|%)yhm()&b2C!VUI zO%T|OE3t4@(u5GSPsq*3+8&U93g<$CZUY`bv5q|T$2+@zrCOs=Kpx9YL+0H0@!}95 z>-ua`-8YKGap5U8=4hEIahTN*#%`4iq6w~>^e{1n!t*`Gg1=`6H$+VUj~Ltq$-Tk{ z?=A-$BG|)gHh=gF*Ya=Hq->S0CL%5WJI04$`f&L*8i zZAiiAm!ooTp>lU@QlB|iHPu1#?%0tTm0gvU8P&g5er*Hja#FHV00@%qKz9J}YaI{=z)(=XGbBMn zG7LNn3^X(hA{-nnJTf9OG7=&Z5(+9NItnTVDiRVpE;i{Y#i+0 zBp@(E2O0(e1_l8e1qlWFKTf{}01SBG7#ao)!T_K!Kwu2euOWaK00H3Ntp$OAzY;7Q zJPb4#0qS=(_CLgbtNyhHAcH{w6gn6k06>dmf0O@TenX-9j9Y_VQZ4*v`dShGJSH0H z!4LnL8jkZPp(Cr7|4a#}i4hqYzSH~9w4nOP!w=OZRx*PAGrj+h(JEBtXF+IJ*SS|R zikN@e(kv_ew~W#^BNY@{Bm;14wa5eZm`1;qVA#A+5r(;){`UmnWG%Rv`*Z}Y0`UdC z?SEiEiE=tWumpktv@A8;M~ECQw_5ZEF~^wj4BCDTk_JRV3f0a8(EyKWmt_NFVH@B6 z)DFVBLM(kB1b}xf#Hx5rmN<6gb7sE$S@*{$T;}rwjnwDAB={@m8NtwWSO!6=;X`gB z5GkX0sS@P-&CTjAcz>GKmtw`NAUw;Q%E)d0G>pHq8>7zJcAX;Ku;p^H#!OraP=cU#6~>A*mz~?V1C8 zhs3=6^8g7aN(!X`so5hV#SE+_w+aB}NNxNEi@c>GeQd=TdZ;n{MQdm!A~|JF2f%P? z1fb@qf_|F?WlYv)|4{<)&(B^s?{ipJ$O8P5@YaA?s99)`CiSW0#7dWPA;)SJ#8FU^ zlbI2T1M3{u<%n*b%EoX((}%&FvqjU!uvT0hxk#m_I7MvKg_D-0Kyb>yJNm(A){<;> z>9Jk}?;NBL!MNkuablJs=VS+Kzm5M+P~lV-^?w#6+oT1+XvyG*KuY zLFQi8!UEh~V1yl4AprO(99mOGh$md7k<1Gaczpx3se}9z*uhLHh#TMXF=zP>Oyy*c zIaSL<*u8&WZBVU6Nx{8(;VN>A$jVD_}usbGF+kz(^UXc@Si^+5(+?zCi^!G zoa!#}H=;kkoslDK#J>T*05p11Ms-2b!qUor0KDL@+5T|^DUt5L(u~ghlj!#W476q; z06^z1{x3EEuM0ra0{s?57nu z1-VRYG|N1V0jF3LZT!^TAb6pn*chl{=9?i(Xuj5eiwD|k+OiCYPhEA(PZ8|;);c((axPyY*E&><(eZ`!OUsW@|X;yd_bIJd?LNdJN{W->bY|GZnx$G!DLSxw^^db9?IHsEAdhkb=`q>EdZ8W{; zGkfin@(cJFXz#+s`QvsvK!zF#zKv0B=%AEV zb$}kDlgd>VJMg1_G&s?Fw!zJpKspFM$V`*<_0w({VK`~Ie!Q)rPTb6SCVa__gbL=U zLL1RiXCq-bzYqf4Rv*(qH^Hno!L`dC0-0f?OVmn}b3d%`k_>J|)Jx*wtOB_kZi9O`^*M@b<%c?7m zDVyq0k~g6~nbG(zO7bEcO6Z{4$BVDn=xvZ4+AyTWRAeTSuz3h$nN*oMiR;myZSX3t zdv`0!WW~Pb-e&zlW8-f_)(GE&FUcT{^n%(ECRr$Y>|tye*Q@;yKE~`|y5GhenM1NP z7cPm_*{xbD+oL#7W{{s}x+46nBK%Ydy8t_UG$S_b_O&Qtm-qa@of^qA+atD2hs*Z~ zpn?h^-rR-=<#W2M*HZ*K;SXPn8zTqT>aM9XQk=U^tW2uo zS;jg&*d21}SIx^7bmyh5`s|ep$hb?zl)k7{n2mmnqzGF<3eV#f{qAc&E9gu3c`_@o zLy}pRBcYx~i6nPMMTtDAMokxY6CqKj5m|-zgLqr71MK8;7S;_o)78ASqe$u`X(JeKKX!=%ZPsWwSZp`&JXorsa(Q&42sJX*kE@d09^fwcu zoZ5ZOSv_`A^zoXj##wN%WChbz%owHOHy-axo7&z@sMNzhU{y?c?Uj;68oou-~dqt)h<5s!e4-?~zXIhDej&&-LR_L`qaLfFb7}_P zhG1P>)20h`w9ek|qsUFJ-yN=nr&*Xrqj~kkD_aw`$z9*WU%>aSW@pxEensyz`26&o=1mTtYuKXly67Wxw@@H@+?6VW+XXK3w6JfQA_#U(fYY?j z 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 d. @@ -115,7 +115,7 @@ gamma_t is in units of (1/(time*distance)). Note that in the Hookean case, Kn can be thought of as a linear spring constant with units of force/distance. In the Hertzian case, Kn is like a non-linear spring constant with units of force/area or -pressure, and as shown in the "(Zhang)"_#Zhang3 paper, Kn = 4G / +pressure, and as shown in the "(Zhang)"_#Zhang4 paper, Kn = 4G / (3(1-nu)) where nu = the Poisson ratio, G = shear modulus = E / (2(1+nu)), and E = Young's modulus. Similarly, Kt = 4G / (2-nu). (NOTE: in an earlier version of the manual, we incorrectly stated that @@ -267,5 +267,5 @@ p 5382-5392 (1996). [(Silbert)] Silbert, Ertas, Grest, Halsey, Levine, Plimpton, Phys Rev E, 64, p 051302 (2001). -:link(Zhang3) +:link(Zhang4) [(Zhang)] Zhang and Makse, Phys Rev E, 72, p 011301 (2005). diff --git a/doc/src/pair_meam_spline.txt b/doc/src/pair_meam_spline.txt index 6653b397a0..086854a0eb 100644 --- a/doc/src/pair_meam_spline.txt +++ b/doc/src/pair_meam_spline.txt @@ -164,5 +164,9 @@ for more info. Kress, Modelling Simulation Materials Science Engineering, 8, 825 (2000). +<<<<<<< HEAD :link(Zhang4) +======= +:link(Zhang2) +>>>>>>> Documentation V1 [(Zhang)] Zhang and Trinkle, Computational Materials Science, 124, 204-210 (2016). diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index 01bd2edc31..c1b20dfe94 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -45,7 +45,7 @@ The coefficients a, b, and d need to be fitted so that the function above matche the value of the exchange interaction for the N neighbor shells taken into account. Examples and more explanations about this function and its parametrization are reported -in "(Tranchida)"_#Tranchida1. +in "(Tranchida)"_#Tranchida3. From this exchange interaction, each spin i will be submitted to a magnetic torque omega, and its associated atom can be submitted to a @@ -57,7 +57,7 @@ force F for spin-lattice calculations (see with h the Planck constant (in metal units). More details about the derivation of these torques/forces are reported in -"(Tranchida)"_#Tranchida1. +"(Tranchida)"_#Tranchida3. :line @@ -77,6 +77,5 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :line -:link(Tranchida1) -[(Tranchida)]https://arxiv.org/abs/1801.10233 - +:link(Tranchida3) +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson. diff --git a/doc/src/pair_spin_me.txt b/doc/src/pair_spin_me.txt index 149a4c5f2c..8b3b69fdee 100644 --- a/doc/src/pair_spin_me.txt +++ b/doc/src/pair_spin_me.txt @@ -45,7 +45,7 @@ force F for spin-lattice calculations (see with h the Planck constant (in metal units). More details about the derivation of these torques/forces are reported in -"(Tranchida)"_#Tranchida1. +"(Tranchida)"_#Tranchida4. :line @@ -68,6 +68,5 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Katsura1) [(Katsura)] H. Katsura, N. Nagaosa, A.V. Balatsky. Phys. Rev. Lett., 95(5), 057205. (2005) -:link(Tranchida1) -[(Tranchida)] J. Tranchida, S.J. Plimpton, P. Thibaudeau, A.P. Thompson. -arXiv preprint arXiv:1801.10233. (2018) +:link(Tranchida4) +[(Tranchida)] Tranchida, Plimpton, Thibaudeau, and Thompson. diff --git a/doc/src/pair_spin_soc_dmi.txt b/doc/src/pair_spin_soc_dmi.txt index e669b7ccfd..acbd5148ad 100644 --- a/doc/src/pair_spin_soc_dmi.txt +++ b/doc/src/pair_spin_soc_dmi.txt @@ -49,7 +49,7 @@ the value of the DM interaction for the N neighbor shells taken into account. Examples and more explanations about this function and its parametrization are reported -in "(Tranchida)"_#Tranchida1. +in "(Tranchida)"_#Tranchida5. From this DM interaction, each spin i will be submitted to a magnetic torque omega and its associated atom to a force F (for spin-lattice calculations only), @@ -60,7 +60,7 @@ such as: with h the Planck constant (in metal units). More details about the derivation of these torques/forces are reported in -"(Tranchida)"_#Tranchida1. +"(Tranchida)"_#Tranchida5. :line @@ -80,6 +80,5 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :line -:link(Tranchida1) -[(Tranchida)]https://arxiv.org/abs/1801.10233 - +:link(Tranchida5) +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson. diff --git a/doc/src/pair_spin_soc_neel.txt b/doc/src/pair_spin_soc_neel.txt index 5f24234d0c..ffe0fed3c2 100644 --- a/doc/src/pair_spin_soc_neel.txt +++ b/doc/src/pair_spin_soc_neel.txt @@ -49,7 +49,7 @@ the value of the DM interaction for the N neighbor shells taken into account. Examples and more explanations about this function and its parametrization are reported -in "(Tranchida)"_#Tranchida1. +in "(Tranchida)"_#Tranchida6. From this DM interaction, each spin i will be submitted to a magnetic torque omega and its associated atom to a force F (for spin-lattice calculations only), @@ -60,7 +60,7 @@ such as: with h the Planck constant (in metal units). More details about the derivation of these torques/forces are reported in -"(Tranchida)"_#Tranchida1. +"(Tranchida)"_#Tranchida6. :line @@ -80,6 +80,6 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :line -:link(Tranchida1) -[(Tranchida)]https://arxiv.org/abs/1801.10233 +:link(Tranchida6) +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson. From 65b7e43a912e5894f953ffba836bec56890e3954 Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 21 Mar 2018 07:55:41 -0600 Subject: [PATCH 084/675] Examples and docs --- examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc | 1 + .../Co_PurjaPun_2012.eam.alloy | 6006 ----------------- examples/SPIN/curie_temperature/compliance.py | 95 - examples/SPIN/curie_temperature/displace.mod | 142 - .../SPIN/curie_temperature/in.spin.cobalt | 59 - .../in.spin.curie_temperature | 204 - examples/SPIN/curie_temperature/init.mod | 55 - examples/SPIN/curie_temperature/potential.mod | 30 - examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy | 6006 ----------------- examples/SPIN/dev/in.spin.cobalt | 129 - examples/SPIN/dev/in.spin.kagome | 126 - .../exchange_fit_fcc_ni/exchange_fcc_ni.dat | 5 + .../exchange_fit_fcc_ni/exchange_fit.py | 32 + examples/SPIN/nickel/in.spin.nickel | 14 +- examples/SPIN/skyrmion/in.spin.skyrmion | 81 - 15 files changed, 45 insertions(+), 12940 deletions(-) delete mode 100644 examples/SPIN/curie_temperature/Co_PurjaPun_2012.eam.alloy delete mode 100755 examples/SPIN/curie_temperature/compliance.py delete mode 100644 examples/SPIN/curie_temperature/displace.mod delete mode 100644 examples/SPIN/curie_temperature/in.spin.cobalt delete mode 100644 examples/SPIN/curie_temperature/in.spin.curie_temperature delete mode 100644 examples/SPIN/curie_temperature/init.mod delete mode 100644 examples/SPIN/curie_temperature/potential.mod delete mode 100644 examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy delete mode 100644 examples/SPIN/dev/in.spin.cobalt delete mode 100644 examples/SPIN/dev/in.spin.kagome create mode 100644 examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat create mode 100644 examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fit.py delete mode 100644 examples/SPIN/skyrmion/in.spin.skyrmion diff --git a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc index 5f74afbd5b..8428e1fe9e 100644 --- a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc +++ b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc @@ -36,6 +36,7 @@ fix 3 all integration/spin lattice yes timestep 0.0001 +# compute and output options compute out_mag all compute/spin compute out_pe all pe diff --git a/examples/SPIN/curie_temperature/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/curie_temperature/Co_PurjaPun_2012.eam.alloy deleted file mode 100644 index 3af058baf7..0000000000 --- a/examples/SPIN/curie_temperature/Co_PurjaPun_2012.eam.alloy +++ /dev/null @@ -1,6006 +0,0 @@ -Cobalt EAM potential: G. P. Purja Pun and Y. Mishin, Phys. Rev. B xx, 004100 (2012) (in press) -Data below r = 1.5 A is extrapolated. F(Rho) data not extrapolated. -Created on Wed Sep 26 17:29:54 2012 -1 Co -10000 4.788742913000000e-04 10000 6.499539000000001e-04 6.499539000000000e+00 -27 5.893320000000000e+01 2.507000000000000e+00 hcp - -1.680303080000000e-02 -1.879913964471138e-02 -2.091739081044659e-02 -2.303564197615629e-02 -2.503175082079116e-02 - -2.681996612041136e-02 -2.846010103933253e-02 -3.003179469400266e-02 -3.154842562124295e-02 -3.300931506782415e-02 - -3.442381570000001e-02 -3.580233366714632e-02 -3.714945763166951e-02 -3.846832763111274e-02 -3.976210669053554e-02 - -4.103374908125148e-02 -4.228535107207521e-02 -4.351872320172212e-02 -4.473539109100971e-02 -4.593674531110434e-02 - -4.712392115246503e-02 -4.829795108118731e-02 -4.945971154662068e-02 -5.061001094949964e-02 -5.174954151284258e-02 - -5.287894548568519e-02 -5.399878139884967e-02 -5.510957102742049e-02 -5.621177284174523e-02 -5.730581735016625e-02 - -5.839208651773948e-02 -5.947094067448531e-02 -6.054270215356945e-02 -6.160767623453070e-02 -6.266613797925552e-02 - -6.371834880435967e-02 -6.476454576302854e-02 -6.580495483863194e-02 -6.683978209870683e-02 -6.786922452279202e-02 - -6.889346265426707e-02 -6.991266949659354e-02 -7.092700432972064e-02 -7.193662011890395e-02 -7.294165829413661e-02 - -7.394225494811188e-02 -7.493853635958479e-02 -7.593062425993033e-02 -7.691863200494162e-02 -7.790266905197404e-02 - -7.888283764021425e-02 -7.985923664258643e-02 -8.083195868513401e-02 -8.180109346997461e-02 -8.276672525040257e-02 - -8.372893572415932e-02 -8.468780181559693e-02 -8.564339820511864e-02 -8.659579537072190e-02 -8.754506181558984e-02 - -8.849126234605453e-02 -8.943446001410092e-02 -9.037471455117625e-02 -9.131208412841478e-02 -9.224662399623559e-02 - -9.317838801321032e-02 -9.410742739123597e-02 -9.503379209498646e-02 -9.595752974691800e-02 -9.687868684755546e-02 - -9.779730775191570e-02 -9.871343580120046e-02 -9.962711242685958e-02 -1.005383781439554e-01 -1.014472717117523e-01 - -1.023538310651938e-01 -1.032580925977369e-01 -1.041600919387366e-01 -1.050598632026273e-01 -1.059574398208095e-01 - -1.068528540074704e-01 -1.077461373458066e-01 -1.086373201122683e-01 -1.095264320028559e-01 -1.104135016985198e-01 - -1.112985573626335e-01 -1.121816261033156e-01 -1.130627345294291e-01 -1.139419083080692e-01 -1.148191726662944e-01 - -1.156945520127823e-01 -1.165680703406650e-01 -1.174397507992727e-01 -1.183096161572101e-01 -1.191776885039839e-01 - -1.200439895800373e-01 -1.209085404086571e-01 -1.217713616730546e-01 -1.226324734132936e-01 -1.234918953788508e-01 - -1.243496468000000e-01 -1.252057466264230e-01 -1.260602132046348e-01 -1.269130646065986e-01 -1.277643184092350e-01 - -1.286139919512837e-01 -1.294621021138015e-01 -1.303086655551642e-01 -1.311536985007052e-01 -1.319972169590798e-01 - -1.328392365052704e-01 -1.336797725161469e-01 -1.345188400098036e-01 -1.353564538215464e-01 -1.361926284143060e-01 - -1.370273780803152e-01 -1.378607168013910e-01 -1.386926583917836e-01 -1.395232163058920e-01 -1.403524038515728e-01 - -1.411802341103638e-01 -1.420067200256853e-01 -1.428318742148069e-01 -1.436557091565456e-01 -1.444782371020595e-01 - -1.452994701862315e-01 -1.461194203065015e-01 -1.469380992388567e-01 -1.477555185109162e-01 -1.485716895480879e-01 - -1.493866236153044e-01 -1.502003318703277e-01 -1.510128252027127e-01 -1.518241144121522e-01 -1.526342102070998e-01 - -1.534431232126203e-01 -1.542508638114616e-01 -1.550574422930448e-01 -1.558628688157988e-01 -1.566671534698807e-01 - -1.574703062033520e-01 -1.582723368973844e-01 -1.590732553076882e-01 -1.598730711132973e-01 -1.606717938120008e-01 - -1.614694328459875e-01 -1.622659976162905e-01 -1.630614974730487e-01 -1.638559416039789e-01 -1.646493391351259e-01 - -1.654416991082678e-01 -1.662330305252601e-01 -1.670233423125346e-01 -1.678126433512354e-01 -1.686009424167802e-01 - -1.693882482431861e-01 -1.701745695045948e-01 -1.709599148401449e-01 -1.717442928088396e-01 -1.725277119385885e-01 - -1.733101807130639e-01 -1.740917075837066e-01 -1.748723009172683e-01 -1.756519690655456e-01 -1.764307204052008e-01 - -1.772085632840185e-01 -1.779855059094047e-01 -1.787615564692287e-01 -1.795367232135896e-01 -1.803110143830451e-01 - -1.810844381177561e-01 -1.818570025406103e-01 -1.826287158057983e-01 -1.833995860626770e-01 -1.841696214099643e-01 - -1.849388299454831e-01 -1.857072198141128e-01 -1.864747991526175e-01 -1.872415760182443e-01 -1.880075584641173e-01 - -1.887727546063884e-01 -1.895371725773110e-01 -1.903008205105196e-01 -1.910637065418589e-01 -1.918258388146347e-01 - -1.925872254807121e-01 -1.933478747187342e-01 -1.941077947209150e-01 -1.948669937069724e-01 -1.956254799127480e-01 - -1.963832616110719e-01 -1.971403470967068e-01 -1.978967447151567e-01 -1.986524628291068e-01 -1.994075098192274e-01 - -2.001618941005484e-01 -2.009156242075518e-01 -2.016687086990372e-01 -2.024211561116226e-01 -2.031729750127928e-01 - -2.039241741156804e-01 -2.046747621691974e-01 -2.054247479197256e-01 -2.061741401521784e-01 -2.069229478081280e-01 - -2.076711798806499e-01 -2.084188454121736e-01 -2.091659534755806e-01 -2.099125132162076e-01 -2.106585338443872e-01 - -2.114040247579823e-01 -2.121489953974893e-01 -2.128934551864067e-01 -2.136374136027109e-01 -2.143808803592873e-01 - -2.151238652468154e-01 -2.158663781322411e-01 -2.166084289346303e-01 -2.173500277052638e-01 -2.180911845646947e-01 - -2.188319097783510e-01 -2.195722136949507e-01 -2.203121068514981e-01 -2.210515998518519e-01 -2.217907033790026e-01 - -2.225294282016381e-01 -2.232677853521022e-01 -2.240057859531163e-01 -2.247434412252567e-01 -2.254807624804862e-01 - -2.262177612984613e-01 -2.269544493586047e-01 -2.276908384717110e-01 -2.284269405581227e-01 -2.291627678450005e-01 - -2.298983326532392e-01 -2.306336473718499e-01 -2.313687245044682e-01 -2.321035769451089e-01 -2.328382177230701e-01 - -2.335726600184018e-01 -2.343069171312917e-01 -2.350410026917230e-01 -2.357749304696442e-01 -2.365087144650665e-01 - -2.372423688046511e-01 -2.379759078915950e-01 -2.387093462817347e-01 -2.394426988649284e-01 -2.401759806938325e-01 - -2.409092071382775e-01 -2.416423937275558e-01 -2.423755563116356e-01 -2.431087109081851e-01 -2.438418738849959e-01 - -2.445750618045980e-01 -2.453082916583512e-01 -2.460415806101058e-01 -2.467749460848467e-01 -2.475084057095742e-01 - -2.482419776582159e-01 -2.489756803241430e-01 -2.497095324315720e-01 -2.504435529132133e-01 -2.511777612049070e-01 - -2.519121769824342e-01 -2.526468203782122e-01 -2.533817117688987e-01 -2.541168720514789e-01 -2.548523223627430e-01 - -2.555880842783758e-01 -2.563241796571988e-01 -2.570606310516858e-01 -2.577974612919421e-01 -2.585346936249472e-01 - -2.592723515924181e-01 -2.600104594981498e-01 -2.607490419576605e-01 -2.614881240712832e-01 -2.622277312727207e-01 - -2.629678898443362e-01 -2.637086264051527e-01 -2.644499680721714e-01 -2.651919423187013e-01 -2.659345775453039e-01 - -2.666779025531186e-01 -2.674219468183432e-01 -2.681667401972407e-01 -2.689123133912765e-01 -2.696586975492495e-01 - -2.704059247640904e-01 -2.711540275538941e-01 -2.719030391932789e-01 -2.726529934197978e-01 -2.734039250662187e-01 - -2.741558694758598e-01 -2.749088629390239e-01 -2.756629422674556e-01 -2.764181454116789e-01 -2.771745108563868e-01 - -2.779320780841674e-01 -2.786908871694924e-01 -2.794509795564719e-01 -2.802123972949423e-01 -2.809751834880072e-01 - -2.817393818716988e-01 -2.825050376604960e-01 -2.832721967688652e-01 -2.840409064327807e-01 -2.848112145951165e-01 - -2.855831707048412e-01 -2.863568249759762e-01 -2.871322291766564e-01 -2.879094358829076e-01 -2.886884993482028e-01 - -2.894694746623641e-01 -2.902524185831628e-01 -2.910373887617654e-01 -2.918244447549689e-01 -2.926136470970381e-01 - -2.934050583264800e-01 -2.941987419693519e-01 -2.949947634976693e-01 -2.957931894604184e-01 -2.965940887685082e-01 - -2.973975314584912e-01 -2.982035897075678e-01 -2.990123368838905e-01 -2.998238489787670e-01 -3.006382032814213e-01 - -3.014554796495834e-01 -3.022757592753754e-01 -3.030991261199829e-01 -3.039256655881672e-01 -3.047554660899296e-01 - -3.055886175640754e-01 -3.064252130593845e-01 -3.072653472379187e-01 -3.081091181048918e-01 -3.089566254021406e-01 - -3.098079724748395e-01 -3.106632645082006e-01 -3.115226104442510e-01 -3.123861211846884e-01 -3.132539117130802e-01 - -3.141260990998875e-01 -3.150028046812773e-01 -3.158841520361693e-01 -3.167702694487885e-01 -3.176612875689104e-01 - -3.185573418032087e-01 -3.194585700942650e-01 -3.203651157713922e-01 -3.212771249044592e-01 -3.221947491388281e-01 - -3.231181430183639e-01 -3.240474671054514e-01 -3.249828850672117e-01 -3.259245669711927e-01 -3.268726862299913e-01 - -3.278274232359761e-01 -3.287889619469540e-01 -3.297574936027157e-01 -3.307332132733838e-01 -3.317163240684192e-01 - -3.327070332351553e-01 -3.337055565330767e-01 -3.347121141277095e-01 -3.357269352965953e-01 -3.367502540927247e-01 - -3.377823145588749e-01 -3.388233658450175e-01 -3.398736675401181e-01 -3.409334847493447e-01 -3.420030942036733e-01 - -3.430827786115977e-01 -3.441728329658748e-01 -3.452735586625544e-01 -3.463852704265985e-01 -3.475082899277179e-01 - -3.486429532857090e-01 -3.497896041380748e-01 -3.509486017430585e-01 -3.521203134619261e-01 -3.533051234472958e-01 - -3.545034246605078e-01 -3.557156285064298e-01 -3.569421559513399e-01 -3.581834477636310e-01 -3.594399550688090e-01 - -3.607121506187135e-01 -3.620005184199024e-01 -3.633055658714727e-01 -3.646278119965309e-01 -3.659677989216845e-01 - -3.673260803339768e-01 -3.687032330586966e-01 -3.700998457090232e-01 -3.715165309114429e-01 -3.729539131544640e-01 - -3.744126403613781e-01 -3.758933720658462e-01 -3.773967908082255e-01 -3.789235902651524e-01 -3.804744856516886e-01 - -3.820502023195389e-01 -3.836514846285581e-01 -3.852790856353807e-01 -3.869337741756033e-01 -3.886163256972291e-01 - -3.903275263189269e-01 -3.920681658458204e-01 -3.938390381581898e-01 -3.956409370872805e-01 -3.974746521930466e-01 - -3.993409682701225e-01 -4.012406553231547e-01 -4.031744727439548e-01 -4.051431522629808e-01 -4.071474082130475e-01 - -4.091879129977703e-01 -4.112653138348391e-01 -4.133801991274390e-01 -4.155331235094092e-01 -4.177245653517079e-01 - -4.199549603385881e-01 -4.222246496703586e-01 -4.245339230260172e-01 -4.268829584832519e-01 -4.292718744431503e-01 - -4.317006622016948e-01 -4.341692468068394e-01 -4.366774154195978e-01 -4.392248845800756e-01 -4.418112262316757e-01 - -4.444359401252420e-01 -4.470983818380713e-01 -4.497978365893122e-01 -4.525334523390530e-01 -4.553043120100788e-01 - -4.581093756350076e-01 -4.609475466791835e-01 -4.638176252290113e-01 -4.667183660407072e-01 -4.696484459287199e-01 - -4.726065094563343e-01 -4.755911501239359e-01 -4.786009429283761e-01 -4.816344399152602e-01 -4.846901882843556e-01 - -4.877667388033212e-01 -4.908626497957108e-01 -4.939765062407663e-01 -4.971069114027755e-01 -5.002525150305011e-01 - -5.034119937007041e-01 -5.065840848176727e-01 -5.097675587133593e-01 -5.129612566028576e-01 -5.161640565945169e-01 - -5.193749134865747e-01 -5.225928209640586e-01 -5.258168515692775e-01 -5.290461169135583e-01 -5.322798060270272e-01 - -5.355171460831645e-01 -5.387574394100244e-01 -5.420000245805213e-01 -5.452443099924439e-01 -5.484897376520451e-01 - -5.517358141745681e-01 -5.549820769247875e-01 -5.582281216566209e-01 -5.614735718423751e-01 -5.647181034387753e-01 - -5.679614169890416e-01 -5.712032588979591e-01 -5.744433972991336e-01 -5.776816413798681e-01 -5.809178193507762e-01 - -5.841517944620215e-01 -5.873834463985003e-01 -5.906126855444893e-01 -5.938394364748391e-01 -5.970636498273136e-01 - -6.002852884426439e-01 -6.035043379105128e-01 -6.067207941645156e-01 -6.099346717649501e-01 -6.131459940881434e-01 - -6.163548011478311e-01 -6.195611404873568e-01 -6.227650731310865e-01 -6.259666663617727e-01 -6.291659990146931e-01 - -6.323631552654742e-01 -6.355582290986170e-01 -6.387513188871106e-01 -6.419425307490256e-01 -6.451319745539882e-01 - -6.483197674327603e-01 -6.515060293214946e-01 -6.546908841167685e-01 -6.578744572836812e-01 -6.610568766009968e-01 - -6.642382709221243e-01 -6.674187710853904e-01 -6.705985088370179e-01 -6.737776175698923e-01 -6.769562312911304e-01 - -6.801344848181089e-01 -6.833125134999645e-01 -6.864904540026142e-01 -6.896684434132225e-01 -6.928466191871651e-01 - -6.960251190039876e-01 -6.992040810717012e-01 -7.023836437724149e-01 -7.055639456561626e-01 -7.087451254024176e-01 - -7.119273220404884e-01 -7.151106745784721e-01 -7.182953215897911e-01 -7.214814016245582e-01 -7.246690535743215e-01 - -7.278584163200112e-01 -7.310496283586513e-01 -7.342428280442573e-01 -7.374381535427195e-01 -7.406357429444993e-01 - -7.438357342264661e-01 -7.470382651689156e-01 -7.502434728794412e-01 -7.534514943101106e-01 -7.566624664635970e-01 - -7.598765262236051e-01 -7.630938099473661e-01 -7.663144537782537e-01 -7.695385935306881e-01 -7.727663648349232e-01 - -7.759979029135046e-01 -7.792333428394971e-01 -7.824728194957561e-01 -7.857164675195603e-01 -7.889644207560909e-01 - -7.922168128628783e-01 -7.954737775389469e-01 -7.987354483417761e-01 -8.020019582211745e-01 -8.052734399002169e-01 - -8.085500258027153e-01 -8.118318481538471e-01 -8.151190386835121e-01 -8.184117289678831e-01 -8.217100504635063e-01 - -8.250141343769457e-01 -8.283241110344656e-01 -8.316401105683494e-01 -8.349622632152548e-01 -8.382906990624389e-01 - -8.416255474951805e-01 -8.449669376504778e-01 -8.483149983741850e-01 -8.516698583310095e-01 -8.550316457522134e-01 - -8.584004886419279e-01 -8.617765145292081e-01 -8.651598508088844e-01 -8.685506248139727e-01 -8.719489622521989e-01 - -8.753549823919468e-01 -8.787687997490927e-01 -8.821905162688262e-01 -8.856202278084699e-01 -8.890580184445617e-01 - -8.925039663319011e-01 -8.959581377191167e-01 -8.994205926453692e-01 -9.028913782181163e-01 -9.063705352609543e-01 - -9.098580923937473e-01 -9.133540718558304e-01 -9.168584825681617e-01 -9.203713268261465e-01 -9.238925937413506e-01 - -9.274222656928153e-01 -9.309603113133150e-01 -9.345066924037853e-01 -9.380613571840678e-01 -9.416242468397124e-01 - -9.451952880001965e-01 -9.487744002152808e-01 -9.523614892719469e-01 -9.559564538973973e-01 -9.595591783425093e-01 - -9.631695396882074e-01 -9.667874008119273e-01 -9.704126174878044e-01 -9.740450312802591e-01 -9.776844767743714e-01 - -9.813307748475731e-01 -9.849837394560669e-01 -9.886431705787867e-01 -9.923088615430331e-01 -9.959805930468456e-01 - -9.996581394281877e-01 -1.003341262213973e+00 -1.007029716826452e+00 -1.010723247080268e+00 -1.014421591236032e+00 - -1.018124476945841e+00 -1.021831626529500e+00 -1.025542751586175e+00 -1.029257558992056e+00 -1.032975747452084e+00 - -1.036697011770175e+00 -1.040421039317395e+00 -1.044147513860548e+00 -1.047876112182243e+00 -1.051606508161453e+00 - -1.055338371046766e+00 -1.059071368055605e+00 -1.062805162911107e+00 -1.066539417837194e+00 -1.070273792555226e+00 - -1.074007946119602e+00 -1.077741537419413e+00 -1.081474225260823e+00 -1.085205668283577e+00 -1.088935525821090e+00 - -1.092663460147868e+00 -1.096389134999202e+00 -1.100112217012435e+00 -1.103832374788097e+00 -1.107549281877421e+00 - -1.111262614364874e+00 -1.114972053517157e+00 -1.118677283811066e+00 -1.122377997381517e+00 -1.126073890115035e+00 - -1.129764665246453e+00 -1.133450029987863e+00 -1.137129700112097e+00 -1.140803395884355e+00 -1.144470846978575e+00 - -1.148131787996958e+00 -1.151785963846005e+00 -1.155433124321719e+00 -1.159073028473816e+00 -1.162705440550504e+00 - -1.166330136340245e+00 -1.169946897198408e+00 -1.173555515207745e+00 -1.177155787675114e+00 -1.180747522076412e+00 - -1.184330531453910e+00 -1.187904640946331e+00 -1.191469681045491e+00 -1.195025491559137e+00 -1.198571917630371e+00 - -1.202108816427798e+00 -1.205636050425976e+00 -1.209153491297797e+00 -1.212661015717853e+00 -1.216158511169199e+00 - -1.219645870103956e+00 -1.223122994042052e+00 -1.226589789250444e+00 -1.230046171916402e+00 -1.233492062734542e+00 - -1.236927390508550e+00 -1.240352088211073e+00 -1.243766097381527e+00 -1.247169363751694e+00 -1.250561841256042e+00 - -1.253943487695246e+00 -1.257314268132119e+00 -1.260674151007197e+00 -1.264023111009775e+00 -1.267361126327042e+00 - -1.270688182889021e+00 -1.274004269717549e+00 -1.277309380458899e+00 -1.280603511471348e+00 -1.283886665336751e+00 - -1.287158847447705e+00 -1.290420068216200e+00 -1.293670340397085e+00 -1.296909681097245e+00 -1.300138109654688e+00 - -1.303355649979877e+00 -1.306562327924205e+00 -1.309758172530325e+00 -1.312943214678930e+00 -1.316117489411603e+00 - -1.319281033477409e+00 -1.322433886294459e+00 -1.325576088655014e+00 -1.328707684178879e+00 -1.331828717822939e+00 - -1.334939237064845e+00 -1.338039290534788e+00 -1.341128928952336e+00 -1.344208204044806e+00 -1.347277169481128e+00 - -1.350335879836220e+00 -1.353384391367341e+00 -1.356422761075585e+00 -1.359451047255056e+00 -1.362469308854003e+00 - -1.365477606144248e+00 -1.368475999956682e+00 -1.371464552034891e+00 -1.374443324607048e+00 -1.377412380926959e+00 - -1.380371784452904e+00 -1.383321598435415e+00 -1.386261886043311e+00 -1.389192710326296e+00 -1.392114134331963e+00 - -1.395026221218571e+00 -1.397929034013782e+00 -1.400822635112213e+00 -1.403707086730599e+00 -1.406582451007194e+00 - -1.409448790047375e+00 -1.412306165903488e+00 -1.415154640386279e+00 -1.417994274393129e+00 -1.420825128672226e+00 - -1.423647264288326e+00 -1.426460742270041e+00 -1.429265623184807e+00 -1.432061967292326e+00 -1.434849834082543e+00 - -1.437629282863016e+00 -1.440400372981510e+00 -1.443163163644870e+00 -1.445917713456040e+00 -1.448664080745027e+00 - -1.451402323353998e+00 -1.454132498983212e+00 -1.456854665253158e+00 -1.459568879518891e+00 -1.462275198153495e+00 - -1.464973677286479e+00 -1.467664373054985e+00 -1.470347341460922e+00 -1.473022637957602e+00 -1.475690317602213e+00 - -1.478350434416031e+00 -1.481003042251009e+00 -1.483648195317718e+00 -1.486285947650543e+00 -1.488916352220507e+00 - -1.491539461636770e+00 -1.494155328124374e+00 -1.496764003712290e+00 -1.499365540029296e+00 -1.501959988475343e+00 - -1.504547399935251e+00 -1.507127824972320e+00 -1.509701313378898e+00 -1.512267914702716e+00 -1.514827678283996e+00 - -1.517380653263305e+00 -1.519926888190102e+00 -1.522466431291609e+00 -1.524999330097196e+00 -1.527525631932397e+00 - -1.530045384005255e+00 -1.532558633226744e+00 -1.535065425437065e+00 -1.537565806237489e+00 -1.540059821344337e+00 - -1.542547516227056e+00 -1.545028935252552e+00 -1.547504122520188e+00 -1.549973122161691e+00 -1.552435978060152e+00 - -1.554892733071735e+00 -1.557343429814709e+00 -1.559788110982664e+00 -1.562226819032855e+00 -1.564659595401864e+00 - -1.567086481207361e+00 -1.569507517312065e+00 -1.571922744465970e+00 -1.574332203223133e+00 -1.576735933784567e+00 - -1.579133975135047e+00 -1.581526366095511e+00 -1.583913146047792e+00 -1.586294354132112e+00 -1.588670027961349e+00 - -1.591040204840321e+00 -1.593404922368944e+00 -1.595764217997401e+00 -1.598118128281829e+00 -1.600466689560657e+00 - -1.602809938195509e+00 -1.605147910317183e+00 -1.607480641109968e+00 -1.609808165462235e+00 -1.612130518025190e+00 - -1.614447733364541e+00 -1.616759845941160e+00 -1.619066889913862e+00 -1.621368898338053e+00 -1.623665904067572e+00 - -1.625957940253400e+00 -1.628245039905108e+00 -1.630527235169479e+00 -1.632804557955816e+00 -1.635077040086276e+00 - -1.637344713164072e+00 -1.639607608003776e+00 -1.641865755216986e+00 -1.644119185392045e+00 -1.646367929030376e+00 - -1.648612016308968e+00 -1.650851477080719e+00 -1.653086340226579e+00 -1.655316634503563e+00 -1.657542389144867e+00 - -1.659763633269537e+00 -1.661980395063818e+00 -1.664192702419508e+00 -1.666400582983419e+00 -1.668604064251645e+00 - -1.670803173362428e+00 -1.672997937236383e+00 -1.675188382281491e+00 -1.677374534802169e+00 -1.679556421201192e+00 - -1.681734067628149e+00 -1.683907499121518e+00 -1.686076740528519e+00 -1.688241817042459e+00 -1.690402753749855e+00 - -1.692559574964003e+00 -1.694712304797627e+00 -1.696860967334408e+00 -1.699005586454806e+00 -1.701146185255449e+00 - -1.703282786721620e+00 -1.705415414177082e+00 -1.707544090831449e+00 -1.709668839099297e+00 -1.711789681156861e+00 - -1.713906639022084e+00 -1.716019734585396e+00 -1.718128989385494e+00 -1.720234424849230e+00 -1.722336062307809e+00 - -1.724433922917529e+00 -1.726528027230686e+00 -1.728618395721282e+00 -1.730705049154116e+00 -1.732788008101886e+00 - -1.734867292078088e+00 -1.736942920442919e+00 -1.739014913002594e+00 -1.741083289547465e+00 -1.743148069358425e+00 - -1.745209271450225e+00 -1.747266914282488e+00 -1.749321016270471e+00 -1.751371596207075e+00 -1.753418672811714e+00 - -1.755462264132180e+00 -1.757502388000569e+00 -1.759539062057792e+00 -1.761572303881055e+00 -1.763602130983907e+00 - -1.765628560778196e+00 -1.767651610332621e+00 -1.769671296580689e+00 -1.771687636258316e+00 -1.773700645994041e+00 - -1.775710342184503e+00 -1.777716741146727e+00 -1.779719859111176e+00 -1.781719712181211e+00 -1.783716316038327e+00 - -1.785709686327057e+00 -1.787699838965949e+00 -1.789686789700248e+00 -1.791670553307960e+00 -1.793651144443631e+00 - -1.795628578235185e+00 -1.797602869852874e+00 -1.799574034162875e+00 -1.801542085839167e+00 -1.803507039091021e+00 - -1.805468908052258e+00 -1.807427707019619e+00 -1.809383450209764e+00 -1.811336151356113e+00 -1.813285824110837e+00 - -1.815232482284336e+00 -1.817176139592257e+00 -1.819116809213001e+00 -1.821054504262256e+00 -1.822989238142106e+00 - -1.824921024174149e+00 -1.826849875071642e+00 -1.828775803432498e+00 -1.830698822001605e+00 -1.832618943490715e+00 - -1.834536180332052e+00 -1.836450544855570e+00 -1.838362049261658e+00 -1.840270705693083e+00 -1.842176526191684e+00 - -1.844079522732226e+00 -1.845979707122125e+00 -1.847877091069540e+00 -1.849771686052976e+00 -1.851663503515020e+00 - -1.853552554984233e+00 -1.855438851906239e+00 -1.857322405308933e+00 -1.859203226114476e+00 -1.861081325239847e+00 - -1.862956713608023e+00 -1.864829402171162e+00 -1.866699401811557e+00 -1.868566723102871e+00 -1.870431376467943e+00 - -1.872293372034969e+00 -1.874152719980291e+00 -1.876009430967454e+00 -1.877863515541558e+00 -1.879714983286677e+00 - -1.881563843740828e+00 -1.883410107218835e+00 -1.885253783963326e+00 -1.887094883151373e+00 -1.888933413891583e+00 - -1.890769386084288e+00 -1.892602809677417e+00 -1.894433694017575e+00 -1.896262048252058e+00 -1.898087881332244e+00 - -1.899911202238771e+00 -1.901732020265218e+00 -1.903550344662578e+00 -1.905366184198560e+00 -1.907179547502340e+00 - -1.908990443132265e+00 -1.910798879695625e+00 -1.912604866066330e+00 -1.914408411061036e+00 -1.916209523000752e+00 - -1.918008210058423e+00 -1.919804480310377e+00 -1.921598341888620e+00 -1.923389803244497e+00 -1.925178872754823e+00 - -1.926965558178970e+00 -1.928749867237572e+00 -1.930531808113790e+00 -1.932311388923252e+00 -1.934088617048956e+00 - -1.935863499807747e+00 -1.937636044984464e+00 -1.939406260367225e+00 -1.941174153289245e+00 -1.942939731044444e+00 - -1.944703001224463e+00 -1.946463971324967e+00 -1.948222648160018e+00 -1.949979038559213e+00 -1.951733150095908e+00 - -1.953484990331042e+00 -1.955234566032130e+00 -1.956981883796339e+00 -1.958726950332857e+00 -1.960469772453529e+00 - -1.962210357268799e+00 -1.963948711773954e+00 -1.965684842205069e+00 -1.967418754747339e+00 -1.969150456141664e+00 - -1.970879953151972e+00 -1.972607252078582e+00 -1.974332359180596e+00 -1.976055281015821e+00 -1.977776024078765e+00 - -1.979494594312026e+00 -1.981210997612849e+00 -1.982925240248993e+00 -1.984637328483028e+00 -1.986347268186276e+00 - -1.988055065135925e+00 -1.989760725123873e+00 -1.991464254028801e+00 -1.993165658061782e+00 -1.994864943305917e+00 - -1.996562115000000e+00 -1.998257178352118e+00 -1.999950139291834e+00 -2.001641003786081e+00 -2.003329777229788e+00 - -2.005016464899233e+00 -2.006701072168050e+00 -2.008383604435580e+00 -2.010064067106614e+00 -2.011742465557514e+00 - -2.013418805045480e+00 -2.015093090790721e+00 -2.016765327984645e+00 -2.018435521788566e+00 -2.020103677272243e+00 - -2.021769799450648e+00 -2.023433893211152e+00 -2.025095963440481e+00 -2.026756015150358e+00 -2.028414053372033e+00 - -2.030070083089858e+00 -2.031724109167109e+00 -2.033376136029651e+00 -2.035026168111125e+00 -2.036674210313675e+00 - -2.038320267543339e+00 -2.039964344253219e+00 -2.041606444873179e+00 -2.043246574193053e+00 -2.044884736927830e+00 - -2.046520937133174e+00 -2.048155178894251e+00 -2.049787467073582e+00 -2.051417806490505e+00 -2.053046201014273e+00 - -2.054672654449746e+00 -2.056297171294283e+00 -2.057919756136151e+00 -2.059540413234731e+00 -2.061159146675282e+00 - -2.062775960175462e+00 -2.064390857518372e+00 -2.066003843116474e+00 -2.067614921377108e+00 -2.069224096057763e+00 - -2.070831370870978e+00 -2.072436749999330e+00 -2.074040237602111e+00 -2.075641837275425e+00 -2.077241552544816e+00 - -2.078839387216755e+00 -2.080435345153352e+00 -2.082029430158359e+00 -2.083621645967183e+00 -2.085211996100236e+00 - -2.086800484128769e+00 -2.088387114042385e+00 -2.089971889736969e+00 -2.091554814315162e+00 -2.093135890870968e+00 - -2.094715123257078e+00 -2.096292515329556e+00 -2.097868070199266e+00 -2.099441790929908e+00 -2.101013681141721e+00 - -2.102583744473837e+00 -2.104151984084442e+00 -2.105718403103298e+00 -2.107283005027429e+00 -2.108845793364375e+00 - -2.110406771296459e+00 -2.111965941910842e+00 -2.113523308239219e+00 -2.115078873308544e+00 -2.116632640182243e+00 - -2.118184611994434e+00 -2.119734792125529e+00 -2.121283183887100e+00 -2.122829790069075e+00 -2.124374613416041e+00 - -2.125917657012881e+00 -2.127458923984833e+00 -2.128998417278243e+00 -2.130536139767974e+00 -2.132072094221826e+00 - -2.133606283403289e+00 -2.135138710165668e+00 -2.136669377406417e+00 -2.138198288109766e+00 -2.139725445172409e+00 - -2.141250851054121e+00 -2.142774508270670e+00 -2.144296419998729e+00 -2.145816589318136e+00 -2.147335018260493e+00 - -2.148851708859426e+00 -2.150366664204882e+00 -2.151879887475646e+00 -2.153391381149525e+00 -2.154901147551277e+00 - -2.156409189094421e+00 -2.157915508301146e+00 -2.159420108039566e+00 -2.160922991060322e+00 -2.162424159298261e+00 - -2.163923614721020e+00 -2.165421360243191e+00 -2.166917398765767e+00 -2.168411732188371e+00 -2.169904362385663e+00 - -2.171395292133801e+00 -2.172884524283159e+00 -2.174372061079477e+00 -2.175857904621596e+00 -2.177342057025400e+00 - -2.178824520458782e+00 -2.180305297280612e+00 -2.181784389836284e+00 -2.183261800226323e+00 -2.184737530553230e+00 - -2.186211583172279e+00 -2.187683960396664e+00 -2.189154664118480e+00 -2.190623696232450e+00 -2.192091059064924e+00 - -2.193556754973807e+00 -2.195020786011611e+00 -2.196483154140098e+00 -2.197943861263397e+00 -2.199402909290797e+00 - -2.200860300209873e+00 -2.202316036078389e+00 -2.203770119156592e+00 -2.205222551620105e+00 -2.206673335103553e+00 - -2.208122471221687e+00 -2.209569962050753e+00 -2.211015809743800e+00 -2.212460016299604e+00 -2.213902583604158e+00 - -2.215343513246597e+00 -2.216782806815468e+00 -2.218220466193829e+00 -2.219656493330310e+00 -2.221090890141300e+00 - -2.222523658493742e+00 -2.223954800089009e+00 -2.225384316635711e+00 -2.226812210036953e+00 -2.228238482128524e+00 - -2.229663134282465e+00 -2.231086167933421e+00 -2.232507585230206e+00 -2.233927388263609e+00 -2.235345578178182e+00 - -2.236762156112363e+00 -2.238177124126393e+00 -2.239590484325721e+00 -2.241002238074839e+00 -2.242412386688506e+00 - -2.243820932023517e+00 -2.245227875877045e+00 -2.246633219265731e+00 -2.248036963296034e+00 -2.249439110214208e+00 - -2.250839662216949e+00 -2.252238620162919e+00 -2.253635984842608e+00 -2.255031758111861e+00 -2.256425941987018e+00 - -2.257818538061035e+00 -2.259209547728066e+00 -2.260598972010440e+00 -2.261986811976363e+00 -2.263373069249392e+00 - -2.264757745520950e+00 -2.266140842198597e+00 -2.267522360622610e+00 -2.268902302148032e+00 -2.270280668153553e+00 - -2.271657460097697e+00 -2.273032679375423e+00 -2.274406327047590e+00 -2.275778404191426e+00 -2.277148912283742e+00 - -2.278517852852843e+00 -2.279885227233438e+00 -2.281251036662961e+00 -2.282615282183361e+00 -2.283977964870765e+00 - -2.285339086133513e+00 -2.286698647429660e+00 -2.288056650083893e+00 -2.289413095312870e+00 -2.290767984034498e+00 - -2.292121317209354e+00 -2.293473096267451e+00 -2.294823322630535e+00 -2.296171997217860e+00 -2.297519120939147e+00 - -2.298864695168495e+00 -2.300208721271999e+00 -2.301551200119357e+00 -2.302892132586471e+00 -2.304231520070443e+00 - -2.305569363951571e+00 -2.306905665021753e+00 -2.308240424043668e+00 -2.309573642251534e+00 -2.310905320943594e+00 - -2.312235461202651e+00 -2.313564064009707e+00 -2.314891130153991e+00 -2.316216660462560e+00 -2.317540656105554e+00 - -2.318863118293744e+00 -2.320184048057342e+00 -2.321503446385586e+00 -2.322821314284393e+00 -2.324137652689092e+00 - -2.325452462235987e+00 -2.326765743634779e+00 -2.328077498187803e+00 -2.329387727168217e+00 -2.330696431139842e+00 - -2.332003610675342e+00 -2.333309267092103e+00 -2.334613401701304e+00 -2.335916015044585e+00 -2.337217107588464e+00 - -2.338516680268511e+00 -2.339814734134101e+00 -2.341111270220800e+00 -2.342406289434137e+00 -2.343699792173311e+00 - -2.344991778936741e+00 -2.346282251126043e+00 -2.347571210092017e+00 -2.348858656078995e+00 -2.350144589310363e+00 - -2.351429011032167e+00 -2.352711922533504e+00 -2.353993324252988e+00 -2.355273216536063e+00 -2.356551600205969e+00 - -2.357828476165661e+00 -2.359103845159169e+00 -2.360377707896761e+00 -2.361650065112589e+00 -2.362920917562625e+00 - -2.364190266066228e+00 -2.365458111389245e+00 -2.366724454020086e+00 -2.367989294422349e+00 -2.369252633237819e+00 - -2.370514471195048e+00 -2.371774809191487e+00 -2.373033648052395e+00 -2.374290988145372e+00 -2.375546829856004e+00 - -2.376801174099476e+00 -2.378054021758188e+00 -2.379305373053798e+00 -2.380555228228685e+00 -2.381803588268867e+00 - -2.383050454170042e+00 -2.384295826222999e+00 -2.385539704659158e+00 -2.386782090177350e+00 -2.388022983519428e+00 - -2.389262385131917e+00 -2.390500295440986e+00 -2.391736715086700e+00 -2.392971644747536e+00 -2.394205085041701e+00 - -2.395437036486230e+00 -2.396667499253712e+00 -2.397896473568759e+00 -2.399123960208524e+00 -2.400349959968320e+00 - -2.401574473163553e+00 -2.402797500049246e+00 -2.404019041118798e+00 -2.405239096931802e+00 -2.406457668074259e+00 - -2.407674755052769e+00 -2.408890358029935e+00 -2.410104477201394e+00 -2.411317113238899e+00 -2.412528266823138e+00 - -2.413737938194389e+00 -2.414946127524263e+00 -2.416152835150093e+00 -2.417358061488310e+00 -2.418561807106014e+00 - -2.419764072540869e+00 -2.420964858062149e+00 -2.422164163883997e+00 -2.423361990268478e+00 -2.424558337539998e+00 - -2.425753206224426e+00 -2.426946596778449e+00 -2.428138509180588e+00 -2.429328943436301e+00 -2.430517900136966e+00 - -2.431705379929064e+00 -2.432891383093559e+00 -2.434075909789072e+00 -2.435258960050367e+00 -2.436440534002261e+00 - -2.437620632253666e+00 -2.438799255363957e+00 -2.439976403210287e+00 -2.441152075652963e+00 -2.442326273167121e+00 - -2.443498996281469e+00 -2.444670245124171e+00 -2.445840019720089e+00 -2.447008320081434e+00 -2.448175146330043e+00 - -2.449340499038912e+00 -2.450504378726154e+00 -2.451666785239187e+00 -2.452827718349615e+00 -2.453987178196479e+00 - -2.455145165027037e+00 -2.456301679153984e+00 -2.457456720843679e+00 -2.458610290111703e+00 -2.459762386895362e+00 - -2.460913011069636e+00 -2.462062162618941e+00 -2.463209842027783e+00 -2.464356049701044e+00 -2.465500785225038e+00 - -2.466644048210323e+00 -2.467785839182998e+00 -2.468926158651886e+00 -2.470065006141172e+00 -2.471202381154697e+00 - -2.472338284099561e+00 -2.473472715451581e+00 -2.474605675058163e+00 -2.475737162666682e+00 -2.476867178252799e+00 - -2.477995721814551e+00 -2.479122793211214e+00 -2.480248392312651e+00 -2.481372519169843e+00 -2.482495173828069e+00 - -2.483616356128687e+00 -2.484736065895716e+00 -2.485854303087743e+00 -2.486971067738408e+00 -2.488086360047014e+00 - -2.489200180083995e+00 -2.490312527238630e+00 -2.491423400907520e+00 -2.492532801197714e+00 -2.493640728315912e+00 - -2.494747182157012e+00 -2.495852162518061e+00 -2.496955669116524e+00 -2.498057701682506e+00 -2.499158260076250e+00 - -2.500257344205291e+00 -2.501354954036191e+00 -2.502451089487258e+00 -2.503545750224782e+00 -2.504638935878569e+00 - -2.505730646184535e+00 -2.506820880947837e+00 -2.507909640144502e+00 -2.508996923692245e+00 -2.510082731104683e+00 - -2.511167061905791e+00 -2.512249916065080e+00 -2.513331293568936e+00 -2.514411194025691e+00 -2.515489616993924e+00 - -2.516566562211253e+00 -2.517642029416175e+00 -2.518716018171676e+00 -2.519788528087044e+00 -2.520859559132313e+00 - -2.521929111272669e+00 -2.522997184093166e+00 -2.524063777123772e+00 -2.525128890054233e+00 -2.526192522577199e+00 - -2.527254674237163e+00 -2.528315344566595e+00 -2.529374533198041e+00 -2.530432239809303e+00 -2.531488464159136e+00 - -2.532543206017777e+00 -2.533596465120445e+00 -2.534648241083385e+00 -2.535698533081969e+00 -2.536747340380982e+00 - -2.537794663043710e+00 -2.538840501172024e+00 -2.539884854223596e+00 -2.540927721482817e+00 -2.541969102185147e+00 - -2.543008995720672e+00 -2.544047402146914e+00 -2.545084321505733e+00 -2.546119753108897e+00 -2.547153696148885e+00 - -2.548186150071097e+00 -2.549217114438763e+00 -2.550246589033513e+00 -2.551274573561718e+00 -2.552301067210345e+00 - -2.553326069170913e+00 -2.554349579172571e+00 -2.555371597001575e+00 -2.556392122135012e+00 -2.557411153995589e+00 - -2.558428692097672e+00 -2.559444735964176e+00 -2.560459285060548e+00 -2.561472338773803e+00 -2.562483896234721e+00 - -2.563493956701396e+00 -2.564502520197407e+00 -2.565509586690590e+00 -2.566515155160310e+00 -2.567519224484451e+00 - -2.568521794123430e+00 -2.569522863722881e+00 -2.570522433086768e+00 -2.571520501879673e+00 -2.572517069050324e+00 - -2.573512133570669e+00 -2.574505695221420e+00 -2.575497753777856e+00 -2.576488308184784e+00 -2.577477357385580e+00 - -2.578464901148367e+00 -2.579450939304331e+00 -2.580435471112168e+00 -2.581418495678755e+00 -2.582400012076188e+00 - -2.583380019545771e+00 -2.584358518040427e+00 -2.585335507388502e+00 -2.586310986208430e+00 -2.587284953146766e+00 - -2.588257408172476e+00 -2.589228351266687e+00 -2.590197781136742e+00 -2.591165696464199e+00 -2.592132097101227e+00 - -2.593096982965479e+00 -2.594060353065933e+00 -2.595022206300420e+00 -2.595982542030859e+00 -2.596941359648237e+00 - -2.597898658195753e+00 -2.598854436786441e+00 -2.599808695160485e+00 -2.600761432999720e+00 -2.601712649125437e+00 - -2.602662342322502e+00 -2.603610512090611e+00 -2.604557157983472e+00 -2.605502279056006e+00 -2.606445874333086e+00 - -2.607387943218189e+00 -2.608328485131743e+00 -2.609267499183389e+00 -2.610204984445080e+00 -2.611140940148811e+00 - -2.612075365584592e+00 -2.613008260114454e+00 -2.613939623006402e+00 -2.614869453080320e+00 -2.615797749224179e+00 - -2.616724511046408e+00 -2.617649738126216e+00 -2.618573429205448e+00 -2.619495583026503e+00 -2.620416199171340e+00 - -2.621335277249019e+00 -2.622252816137456e+00 -2.623168814653865e+00 -2.624083272103795e+00 -2.624996187859330e+00 - -2.625907561070358e+00 -2.626817390806325e+00 -2.627725676037143e+00 -2.628632415761536e+00 -2.629537609193020e+00 - -2.630441255587996e+00 -2.631343354159609e+00 -2.632243904045731e+00 -2.633142904126422e+00 -2.634040353337229e+00 - -2.634936251093461e+00 -2.635830596765059e+00 -2.636723389060725e+00 -2.637614626713354e+00 -2.638504309213838e+00 - -2.639392436080191e+00 -2.640279006180904e+00 -2.641164018251881e+00 -2.642047471148195e+00 -2.642929363899640e+00 - -2.643809696115713e+00 -2.644688467316341e+00 -2.645565676083456e+00 -2.646441320932559e+00 -2.647315401051427e+00 - -2.648187915755844e+00 -2.649058864201336e+00 -2.649928245427330e+00 -2.650796058169106e+00 -2.651662301248424e+00 - -2.652526974137104e+00 -2.653390076247662e+00 -2.654251606105329e+00 -2.655111562238285e+00 -2.655969944073783e+00 - -2.656826751086593e+00 -2.657681982042466e+00 -2.658535635661370e+00 -2.659387711189145e+00 -2.660238207837736e+00 - -2.661087124157626e+00 -2.661934458755756e+00 -2.662780211126336e+00 -2.663624380741185e+00 -2.664466966095276e+00 - -2.665307965694397e+00 -2.666147379064445e+00 -2.666985205710447e+00 -2.667821444033845e+00 -2.668656092405469e+00 - -2.669489150177272e+00 -2.670320616801000e+00 -2.671150491146469e+00 -2.671978771965001e+00 -2.672805458115896e+00 - -2.673630548501148e+00 -2.674454042085555e+00 -2.675275937884819e+00 -2.676096235055446e+00 -2.676914932653945e+00 - -2.677732029196031e+00 -2.678547523253807e+00 -2.679361414165717e+00 -2.680173701269736e+00 -2.680984383135636e+00 - -2.681793458321363e+00 -2.682600926105787e+00 -2.683406785794135e+00 -2.684211036076172e+00 -2.685013675548027e+00 - -2.685814703046789e+00 -2.686614117528503e+00 -2.687411918184072e+00 -2.688208104155523e+00 -2.689002674154484e+00 - -2.689795626844247e+00 -2.690586961125131e+00 -2.691376675931391e+00 -2.692164770096012e+00 -2.692951242468673e+00 - -2.693736092067127e+00 -2.694519317933390e+00 -2.695300919038479e+00 -2.696080894259941e+00 -2.696859242172434e+00 - -2.697635961409562e+00 -2.698411051143577e+00 -2.699184510529523e+00 -2.699956338114957e+00 -2.700726532498006e+00 - -2.701495093086574e+00 -2.702262019208106e+00 -2.703027309058428e+00 -2.703790960874505e+00 -2.704552974189474e+00 - -2.705313348537555e+00 -2.706072082161119e+00 -2.706829173257158e+00 -2.707584621133000e+00 -2.708338425191227e+00 - -2.709090584105120e+00 -2.709841096442358e+00 -2.710589961077480e+00 -2.711337176962203e+00 -2.712082743050078e+00 - -2.712826658235913e+00 -2.713568921177743e+00 -2.714309530527581e+00 -2.715048485150131e+00 -2.715785783993005e+00 - -2.716521426122757e+00 -2.717255410569124e+00 -2.717987736095623e+00 -2.718718401385704e+00 -2.719447405068731e+00 - -2.720174745881186e+00 -2.720900423042079e+00 -2.721624435690877e+00 -2.722346782166338e+00 -2.723067460855530e+00 - -2.723786471139474e+00 -2.724503812410580e+00 -2.725219483112852e+00 -2.725933481634188e+00 -2.726645807086471e+00 - -2.727356458650697e+00 -2.728065435060333e+00 -2.728772734953498e+00 -2.729478357034439e+00 -2.730182300087997e+00 - -2.730884563155262e+00 -2.731585145263588e+00 -2.732284045129153e+00 -2.732981261442558e+00 -2.733676793103288e+00 - -2.734370639038562e+00 -2.735062798077667e+00 -2.735753269071118e+00 -2.736442051052291e+00 -2.737129142959769e+00 - -2.737814543170111e+00 -2.738498250131983e+00 -2.739180263144520e+00 -2.739860581563291e+00 -2.740539204119172e+00 - -2.741216129405992e+00 -2.741891356094071e+00 -2.742564882952538e+00 -2.743236709069217e+00 -2.743906833523784e+00 - -2.744575255044610e+00 -2.745241972311204e+00 -2.745906984158941e+00 -2.746570289467025e+00 -2.747231887134115e+00 - -2.747891776057501e+00 -2.748549955109537e+00 -2.749206423158993e+00 -2.749861179085207e+00 -2.750514221765824e+00 - -2.751165550061125e+00 -2.751815162841771e+00 -2.752463059037292e+00 -2.753109237554207e+00 -2.753753697148108e+00 - -2.754396436622574e+00 -2.755037455124055e+00 -2.755676751755156e+00 -2.756314325100252e+00 -2.756950173779785e+00 - -2.757584297076699e+00 -2.758216694281619e+00 -2.758847364053396e+00 -2.759476305000437e+00 -2.760103516161140e+00 - -2.760728996610216e+00 -2.761352745137616e+00 -2.761974760563591e+00 -2.762595042114344e+00 -2.763213589016364e+00 - -2.763830400091322e+00 -2.764445474113015e+00 -2.765058810068553e+00 -2.765670407011266e+00 -2.766280264046035e+00 - -2.766888380201558e+00 -2.767494754150214e+00 -2.768099384646222e+00 -2.768702271127474e+00 -2.769303413030783e+00 - -2.769902809104988e+00 -2.770500458053093e+00 -2.771096359082754e+00 -2.771690511445131e+00 -2.772282914060774e+00 - -2.772873565847032e+00 -2.773462466039048e+00 -2.774049613856528e+00 -2.774635008139637e+00 -2.775218647762881e+00 - -2.775800532117688e+00 -2.776380660598635e+00 -2.776959032095993e+00 -2.777535645483684e+00 -2.778110500074552e+00 - -2.778683595228330e+00 -2.779254930053368e+00 -2.779824503611819e+00 -2.780392315032438e+00 -2.780958363471580e+00 - -2.781522648129417e+00 -2.782085168237396e+00 -2.782645923108263e+00 -2.783204912027138e+00 -2.783762134087364e+00 - -2.784317588365996e+00 -2.784871274066723e+00 -2.785423190471204e+00 -2.785973337046338e+00 -2.786521713227682e+00 - -2.787068318140169e+00 -2.787613150927563e+00 -2.788156211119559e+00 -2.788697498201977e+00 -2.789237011099205e+00 - -2.789774748795882e+00 -2.790310711079109e+00 -2.790844897774500e+00 -2.791377308059270e+00 -2.791907941021321e+00 - -2.792436796039691e+00 -2.792963872575855e+00 -2.793489170129877e+00 -2.794012688183935e+00 -2.794534426110070e+00 - -2.795054383269529e+00 -2.795572559090522e+00 -2.796088953089790e+00 -2.796603565071232e+00 -2.797116394731634e+00 - -2.797627441052200e+00 -2.798136703104035e+00 -2.798644181033428e+00 -2.799149874997305e+00 -2.799653784119957e+00 - -2.800155907491874e+00 -2.800656245100958e+00 -2.801154796934787e+00 -2.801651562082218e+00 -2.802146539693571e+00 - -2.802639730063738e+00 -2.803131133478864e+00 -2.803620749045517e+00 -2.804108575856467e+00 -2.804594614128865e+00 - -2.805078864118387e+00 -2.805561325110418e+00 -2.806041996375143e+00 -2.806520878092229e+00 -2.806997970489045e+00 - -2.807473273074300e+00 -2.807946785293329e+00 -2.808418507056632e+00 -2.808888438355500e+00 -2.809356579039224e+00 - -2.809822928959404e+00 -2.810287488118900e+00 -2.810750256531227e+00 -2.811211234101264e+00 -2.811670420689050e+00 - -2.812127816083888e+00 -2.812583420143096e+00 -2.813037233066774e+00 -2.813489255065615e+00 -2.813939486049919e+00 - -2.814387925944586e+00 -2.814834575033324e+00 -2.815279433542374e+00 -2.815722501109326e+00 -2.816163777438837e+00 - -2.816603263092504e+00 -2.817040958671196e+00 -2.817476864075942e+00 -2.817910979131784e+00 -2.818343304059641e+00 - -2.818773839208482e+00 -2.819202585043600e+00 -2.819629541969078e+00 -2.820054710027820e+00 -2.820478089265513e+00 - -2.820899680100151e+00 -2.821319482977751e+00 -2.821737498084143e+00 -2.822153725615352e+00 -2.822568166068396e+00 - -2.822980820018520e+00 -2.823391688052908e+00 -2.823800770674544e+00 -2.824208068037681e+00 -2.824613580315654e+00 - -2.825017308106835e+00 -2.825419252121360e+00 -2.825819413091381e+00 -2.826217791658008e+00 -2.826614388076187e+00 - -2.827009202624378e+00 -2.827402236061253e+00 -2.827793489256864e+00 -2.828182963046578e+00 -2.828570658171722e+00 - -2.828956575032161e+00 -2.829340714052488e+00 -2.829723076097664e+00 -2.830103662132774e+00 -2.830482473083023e+00 - -2.830859509823491e+00 -2.831234773068641e+00 -2.831608263528317e+00 -2.831979982054516e+00 -2.832349929557777e+00 - -2.832718107040651e+00 -2.833084515526141e+00 -2.833449156027042e+00 -2.833812029550204e+00 -2.834173137088914e+00 - -2.834532479620883e+00 -2.834890058075082e+00 -2.835245873448821e+00 -2.835599927061508e+00 -2.835952220243667e+00 - -2.836302754048190e+00 -2.836651529530672e+00 -2.836998548035129e+00 -2.837343810883671e+00 -2.837687319022324e+00 - -2.838029073490917e+00 -2.838369076080591e+00 -2.838707328586376e+00 -2.839043832067564e+00 -2.839378587474163e+00 - -2.839711596054793e+00 -2.840042859259108e+00 -2.840372379042276e+00 -2.840700157280677e+00 -2.841026195030013e+00 - -2.841350493343512e+00 -2.841673054085180e+00 -2.841993879190829e+00 -2.842312970072699e+00 -2.842630328108386e+00 - -2.842945955060471e+00 -2.843259852775203e+00 -2.843572023048496e+00 -2.843882467617769e+00 -2.844191188036773e+00 - -2.844498185884593e+00 -2.844803463025301e+00 -2.845107021413000e+00 -2.845408863076932e+00 -2.845708990020076e+00 - -2.846007404065244e+00 -2.846304107050338e+00 -2.846599101053807e+00 -2.846892388135785e+00 -2.847183970042619e+00 - -2.847473848570861e+00 -2.847762026031680e+00 -2.848048504803730e+00 -2.848333287020989e+00 -2.848616374754612e+00 - -2.848897770069131e+00 -2.849177475073159e+00 -2.849455492058227e+00 -2.849731823327478e+00 -2.850006471047571e+00 - -2.850279437434387e+00 -2.850550725037162e+00 -2.850820336439234e+00 -2.851088274026996e+00 -2.851354540133094e+00 - -2.851619137072155e+00 -2.851882067200814e+00 -2.852143333061782e+00 -2.852402937208544e+00 -2.852660882051651e+00 - -2.852917170055367e+00 -2.853171804041764e+00 -2.853424786850297e+00 -2.853676121032120e+00 -2.853925809140160e+00 - -2.854173854022716e+00 -2.854420258509995e+00 -2.854665025064492e+00 -2.854908156206457e+00 -2.855149655054884e+00 - -2.855389524765914e+00 -2.855627768045515e+00 -2.855864387531145e+00 -2.856099386036384e+00 -2.856332766480263e+00 - -2.856564532027491e+00 -2.856794685864488e+00 -2.857023231018833e+00 -2.857250170456676e+00 -2.857475507057297e+00 - -2.857699243787178e+00 -2.857921384048440e+00 -2.858141931205942e+00 -2.858360888039817e+00 -2.858578257403886e+00 - -2.858794043031427e+00 -2.859008248642304e+00 -2.859220877023269e+00 -2.859431930941042e+00 -2.859641414015340e+00 - -2.859849329964776e+00 -2.860055682050569e+00 -2.860260473522559e+00 -2.860463708042447e+00 -2.860665389218646e+00 - -2.860865520034553e+00 -2.861064103583913e+00 -2.861261144026887e+00 -2.861456645505078e+00 -2.861650611019446e+00 - -2.861843043539793e+00 -2.862033947051935e+00 -2.862223325674870e+00 -2.862411183044306e+00 -2.862597522669464e+00 - -2.862782348036900e+00 -2.862965662765951e+00 -2.863147471029718e+00 -2.863327776966641e+00 -2.863506584022756e+00 - -2.863683895649960e+00 -2.863859716016013e+00 -2.864034049304372e+00 -2.864206899045429e+00 -2.864378268816853e+00 - -2.864548163038503e+00 -2.864716586175495e+00 -2.864883542031795e+00 -2.865049034317118e+00 -2.865213067025303e+00 - -2.865375644227383e+00 -2.865536770019026e+00 -2.865696448531390e+00 -2.865854684012960e+00 -2.866011480747103e+00 - -2.866166843039399e+00 -2.866320775137251e+00 -2.866473281033156e+00 -2.866624364792500e+00 -2.866774031027124e+00 - -2.866922284373643e+00 -2.867069129021301e+00 -2.867214569108258e+00 -2.867358609015685e+00 -2.867501253183005e+00 - -2.867642506039625e+00 -2.867782372075631e+00 -2.867920856033839e+00 -2.868057962606175e+00 -2.868193696028257e+00 - -2.868328060561013e+00 -2.868461061022879e+00 -2.868592702303233e+00 -2.868722989017701e+00 -2.868851925722842e+00 - -2.868979517012722e+00 -2.869105767524959e+00 -2.869230682033886e+00 -2.869354265317122e+00 -2.869476522028743e+00 - -2.869597456891174e+00 -2.869717075023798e+00 -2.869835381525858e+00 -2.869952381019048e+00 -2.870068078133983e+00 - -2.870182478014490e+00 -2.870295585788873e+00 -2.870407406010122e+00 -2.870517943287246e+00 -2.870627203028626e+00 - -2.870735190678368e+00 -2.870841911024103e+00 -2.870947368779615e+00 -2.871051569019769e+00 -2.871154516959833e+00 - -2.871256218015620e+00 -2.871356677487263e+00 -2.871455900011655e+00 -2.871553890297982e+00 -2.871650654007871e+00 - -2.871746196881877e+00 -2.871840524023838e+00 -2.871933640394619e+00 -2.872025551019907e+00 -2.872116261043417e+00 - -2.872205776016155e+00 -2.872294101539941e+00 -2.872381243012580e+00 -2.872467205758066e+00 -2.872551995009178e+00 - -2.872635615995248e+00 -2.872718074023048e+00 -2.872799374482606e+00 -2.872879523019508e+00 -2.872958525324841e+00 - -2.873036387016140e+00 -2.873113113575017e+00 -2.873188710012942e+00 -2.873263181462381e+00 -2.873336534009911e+00 - -2.873408773769060e+00 -2.873479906007045e+00 -2.873549935889074e+00 -2.873618869018622e+00 -2.873686711126628e+00 - -2.873753468015626e+00 -2.873819145455355e+00 -2.873883749012791e+00 -2.873947284262238e+00 -2.874009757010115e+00 - -2.874071173064448e+00 -2.874131538007598e+00 -2.874190857408149e+00 -2.874249137005235e+00 -2.874306382592947e+00 - -2.874362600014657e+00 -2.874417795154723e+00 -2.874471974012172e+00 -2.874525142492177e+00 -2.874577306009839e+00 - -2.874628470067637e+00 -2.874678641007656e+00 -2.874727825164796e+00 -2.874776028005620e+00 -2.874823254939239e+00 - -2.874869512013286e+00 -2.874914805384953e+00 -2.874959141011137e+00 -2.875002524843012e+00 -2.875044963009132e+00 - -2.875086461553842e+00 -2.875127026007268e+00 -2.875166661990855e+00 -2.875205376005544e+00 -2.875243174521211e+00 - -2.875280063003956e+00 -2.875316046953741e+00 -2.875351133009737e+00 -2.875385327829893e+00 -2.875418637008044e+00 - -2.875451066029114e+00 -2.875482621006486e+00 -2.875513308222273e+00 -2.875543134005058e+00 -2.875572104616458e+00 - -2.875600226003760e+00 -2.875627504088381e+00 -2.875653945002586e+00 -2.875679554924722e+00 -2.875704340006628e+00 - -2.875728306365356e+00 -2.875751460005359e+00 -2.875773807024162e+00 -2.875795354004213e+00 -2.875816107441742e+00 - -2.875836073003188e+00 -2.875855256356105e+00 -2.875873664002281e+00 -2.875891302525273e+00 -2.875908178001488e+00 - -2.875924296429527e+00 -2.875939664003940e+00 -2.875954287022889e+00 -2.875968172003060e+00 -2.875981325374513e+00 - -2.875993753002293e+00 -2.876005460745149e+00 -2.876016455001635e+00 -2.876026742281703e+00 -2.876036329001085e+00 - -2.876045221511428e+00 -2.876053426002279e+00 -2.876060948682664e+00 -2.876067796001651e+00 -2.876073974394489e+00 - -2.876079490001126e+00 -2.876084348997735e+00 -2.876088558000703e+00 -2.876092123620084e+00 -2.876095052000378e+00 - -2.876097349275196e+00 -2.876099022000147e+00 -2.876100076780735e+00 -2.876100520000039e+00 -2.876100357977497e+00 - -2.876099597000405e+00 -2.876098243435337e+00 -2.876096303998139e+00 -2.876093785401991e+00 -2.876090694000126e+00 - -2.876087036076098e+00 -2.876082817994697e+00 -2.876078046153286e+00 -2.876072726998279e+00 -2.876066867041051e+00 - -2.876060473003754e+00 -2.876053551562065e+00 -2.876046108994973e+00 -2.876038151582050e+00 -2.876029686001908e+00 - -2.876020718975022e+00 -2.876011256990315e+00 -2.876001306494705e+00 -2.875990873998654e+00 -2.875979966015766e+00 - -2.875968589008655e+00 -2.875956749461299e+00 -2.875944453994101e+00 -2.875931709272467e+00 -2.875918522005370e+00 - -2.875904898821941e+00 -2.875890845988358e+00 -2.875876369796106e+00 -2.875861477000839e+00 -2.875846174460938e+00 - -2.875830468981534e+00 -2.875814367182402e+00 -2.875797874995170e+00 -2.875780998493851e+00 -2.875763745010153e+00 - -2.875746121853747e+00 -2.875728134988475e+00 -2.875709790337169e+00 -2.875691095004476e+00 -2.875672056151185e+00 - -2.875652679980860e+00 -2.875632972639220e+00 -2.875612940997824e+00 -2.875592591983200e+00 -2.875571932015899e+00 - -2.875550967463832e+00 -2.875529704990307e+00 -2.875508151305197e+00 -2.875486313009207e+00 -2.875464196688727e+00 - -2.875441808982035e+00 -2.875419156538716e+00 -2.875396246001703e+00 -2.875373083982446e+00 -2.875349676973115e+00 - -2.875326031456047e+00 -2.875302153993497e+00 -2.875278051224424e+00 -2.875253730014671e+00 -2.875229197164465e+00 - -2.875204458984698e+00 -2.875179521740897e+00 -2.875154392006447e+00 -2.875129076470253e+00 -2.875103581975416e+00 - -2.875077915323747e+00 -2.875052082997684e+00 -2.875026091410789e+00 -2.874999947020509e+00 -2.874973656330889e+00 - -2.874947225988491e+00 -2.874920662667701e+00 -2.874893973011697e+00 -2.874867163623783e+00 -2.874840240978976e+00 - -2.874813211559227e+00 -2.874786082002508e+00 -2.874758858958694e+00 -2.874731548969249e+00 -2.874704158521300e+00 - -2.874676693993052e+00 -2.874649161850167e+00 -2.874621569017096e+00 -2.874593922351292e+00 -2.874566227983435e+00 - -2.874538491996276e+00 -2.874510721007613e+00 -2.874482921761722e+00 -2.874455100973768e+00 -2.874427265275985e+00 - -2.874399420998023e+00 -2.874371574431975e+00 -2.874343732022288e+00 -2.874315900299783e+00 -2.874288085988434e+00 - -2.874260295776052e+00 -2.874232536012641e+00 -2.874204812974258e+00 -2.874177132978955e+00 -2.874149502426689e+00 - -2.874121928003048e+00 -2.874094416390038e+00 -2.874066973969692e+00 -2.874039607056358e+00 -2.874012321993617e+00 - -2.873985125156578e+00 -2.873958023017241e+00 -2.873931022092817e+00 -2.873904128984454e+00 -2.873877350227203e+00 - -2.873850692007775e+00 -2.873824160475146e+00 -2.873797761975665e+00 -2.873771502947487e+00 -2.873745389998629e+00 - -2.873719429664607e+00 -2.873693628021065e+00 -2.873667991196405e+00 -2.873642525989910e+00 -2.873617239207638e+00 - -2.873592137011854e+00 -2.873567225478465e+00 -2.873542510981722e+00 -2.873517999984164e+00 -2.873493699003122e+00 - -2.873469614539558e+00 -2.873445752974173e+00 -2.873422120664412e+00 -2.873398723994974e+00 -2.873375569341346e+00 - -2.873352663014937e+00 -2.873330011368907e+00 -2.873307620987516e+00 -2.873285498440290e+00 -2.873263650006746e+00 - -2.873242081977908e+00 -2.873220800980854e+00 -2.873199813610778e+00 -2.873179125999297e+00 -2.873158744269642e+00 - -2.873138674975094e+00 -2.873118924733721e+00 -2.873099499992696e+00 -2.873080407078925e+00 -2.873061652009151e+00 - -2.873043240951156e+00 -2.873025180987050e+00 -2.873007479104932e+00 -2.872990141002529e+00 -2.872973172348110e+00 - -2.872956579982463e+00 -2.872940370832477e+00 -2.872924550996914e+00 -2.872909126514257e+00 -2.872894104009989e+00 - -2.872879490127201e+00 -2.872865290992410e+00 -2.872851512733995e+00 -2.872838162004323e+00 -2.872825245427317e+00 - -2.872812768989124e+00 -2.872800738661925e+00 -2.872789160999820e+00 -2.872778042642130e+00 -2.872767389987160e+00 - -2.872757209355336e+00 -2.872747506996586e+00 -2.872738289140315e+00 -2.872729562004331e+00 -2.872721331833777e+00 - -2.872713604994726e+00 -2.872706387896571e+00 -2.872699687001068e+00 -2.872693508692679e+00 -2.872687858994343e+00 - -2.872682743943764e+00 -2.872678169999229e+00 -2.872674143639194e+00 -2.872670671002211e+00 -2.872667758252759e+00 - -2.872665411998920e+00 -2.872663638727966e+00 -2.872662444000314e+00 -2.872661833458480e+00 -2.872661814000242e+00 - -2.872662392564575e+00 -2.872663574999996e+00 -2.872665367034357e+00 -2.872667775003300e+00 -2.872670805307676e+00 - -2.872674464001362e+00 -2.872678757122995e+00 -2.872683690997219e+00 -2.872689271947241e+00 -2.872695506004511e+00 - -2.872702399218003e+00 -2.872709957998547e+00 -2.872718188690384e+00 -2.872727097009549e+00 -2.872736688669513e+00 - -2.872746970001709e+00 -2.872757947412680e+00 -2.872769626991446e+00 -2.872782014787135e+00 -2.872795117006809e+00 - -2.872808939808297e+00 -2.872823488994544e+00 -2.872838770359238e+00 -2.872854790013944e+00 -2.872871554154958e+00 - -2.872889068999627e+00 -2.872907340687168e+00 -2.872926375023218e+00 -2.872946177789640e+00 -2.872966755006795e+00 - -2.872988112738970e+00 -2.873010256987659e+00 -2.873033193743455e+00 -2.873056929016149e+00 -2.873081468798353e+00 - -2.873106818994782e+00 -2.873132985471494e+00 -2.873159974027786e+00 -2.873187790508094e+00 -2.873216441004140e+00 - -2.873245931584463e+00 -2.873276267977569e+00 -2.873307455856915e+00 -2.873339501015828e+00 -2.873372409342765e+00 - -2.873406186986854e+00 -2.873440840030674e+00 -2.873476374029945e+00 -2.873512794459630e+00 -2.873550106998518e+00 - -2.873588317466817e+00 -2.873627432046586e+00 -2.873667456808100e+00 -2.873708397012657e+00 -2.873750257967860e+00 - -2.873793045975522e+00 -2.873836767295967e+00 -2.873881427029366e+00 -2.873927030237608e+00 -2.873973582989610e+00 - -2.874021091436191e+00 -2.874069561048740e+00 -2.874118997257345e+00 -2.874169406006314e+00 -2.874220793186470e+00 - -2.874273163960479e+00 -2.874326523535612e+00 -2.874380878025728e+00 -2.874436233504353e+00 -2.874492594977105e+00 - -2.874549967456173e+00 -2.874608357047944e+00 -2.874667769870749e+00 -2.874728210996486e+00 -2.874789685444839e+00 - -2.874852199073056e+00 -2.874915757808161e+00 -2.874980367018717e+00 -2.875046031956011e+00 -2.875112757960702e+00 - -2.875180550448241e+00 -2.875249415043884e+00 -2.875319357389408e+00 -2.875390382982873e+00 -2.875462497200150e+00 - -2.875535705072081e+00 -2.875610011724477e+00 -2.875685423008027e+00 -2.875761944747628e+00 -2.875839581940104e+00 - -2.875918339524430e+00 -2.875998223036253e+00 -2.876079238083328e+00 -2.876161389965175e+00 -2.876244683897332e+00 - -2.876329125067640e+00 -2.876414718675390e+00 -2.876501469993362e+00 -2.876589384334920e+00 -2.876678467102276e+00 - -2.876768723646439e+00 -2.876860159024752e+00 -2.876952778311590e+00 -2.877046586943105e+00 -2.877141590285005e+00 - -2.877237793059432e+00 -2.877335200055582e+00 -2.877433816974432e+00 -2.877533649470098e+00 -2.877634702097487e+00 - -2.877736979404358e+00 -2.877840487009089e+00 -2.877945230580227e+00 -2.878051214916385e+00 -2.878158444703550e+00 - -2.878266925047163e+00 -2.878376661120778e+00 -2.878487657950954e+00 -2.878599920558564e+00 -2.878713454088738e+00 - -2.878828263638601e+00 -2.878944353988982e+00 -2.879061729871082e+00 -2.879180396133895e+00 -2.879300357745253e+00 - -2.879421620030550e+00 -2.879544188234639e+00 -2.879668066922659e+00 -2.879793260582870e+00 -2.879919774075741e+00 - -2.880047612428619e+00 -2.880176780964157e+00 -2.880307284823274e+00 -2.880439128124635e+00 -2.880572315044195e+00 - -2.880706851009318e+00 -2.880842741491739e+00 -2.880979990889281e+00 -2.881118603470176e+00 -2.881258584058220e+00 - -2.881399937594580e+00 -2.881542668934350e+00 -2.881686782880171e+00 -2.881832284110943e+00 -2.881979177270132e+00 - -2.882127466983199e+00 -2.882277157822698e+00 -2.882428254167564e+00 -2.882580760515876e+00 -2.882734682035907e+00 - -2.882890023809088e+00 -2.883046789899305e+00 -2.883204984344022e+00 -2.883364612092550e+00 -2.883525678164890e+00 - -2.883688186951939e+00 -2.883852142755886e+00 -2.884017550153203e+00 -2.884184413751485e+00 -2.884352738008543e+00 - -2.884522527349429e+00 -2.884693786217942e+00 -2.884866519029743e+00 -2.885040730069195e+00 -2.885216423722596e+00 - -2.885393604915286e+00 -2.885572278454246e+00 -2.885752448133968e+00 -2.885934117732660e+00 -2.886117291975880e+00 - -2.886301975695701e+00 -2.886488173202934e+00 -2.886675888645447e+00 -2.886865126040629e+00 -2.887055889528861e+00 - -2.887248183873006e+00 -2.887442013779875e+00 -2.887637383109605e+00 -2.887834295673936e+00 -2.888032755937675e+00 - -2.888232768417303e+00 -2.888434337182880e+00 -2.888637466267979e+00 -2.888842160006608e+00 -2.889048422705334e+00 - -2.889256258260521e+00 -2.889465670586525e+00 -2.889676664079871e+00 -2.889889243164732e+00 -2.890103411893701e+00 - -2.890319174230825e+00 -2.890536534157536e+00 -2.890755495690120e+00 -2.890976062966901e+00 -2.891198240133124e+00 - -2.891422031239666e+00 -2.891647440271526e+00 -2.891874471044534e+00 -2.892103127449178e+00 -2.892333413843735e+00 - -2.892565334531329e+00 -2.892798893126666e+00 -2.893034093211137e+00 -2.893270938921286e+00 -2.893509434394119e+00 - -2.893749583213363e+00 -2.893991388990754e+00 -2.894234856003367e+00 -2.894479988544211e+00 -2.894726790304690e+00 - -2.894975264880993e+00 -2.895225416090045e+00 -2.895477247800793e+00 -2.895730763869547e+00 -2.895985968110420e+00 - -2.896242864181383e+00 -2.896501455784724e+00 -2.896761746956156e+00 -2.897023741664482e+00 -2.897287443277443e+00 - -2.897552855132549e+00 -2.897819981047455e+00 -2.898088824960355e+00 -2.898359390811481e+00 -2.898631682423090e+00 - -2.898905703143506e+00 -2.899181456336644e+00 -2.899458945902694e+00 -2.899738175745144e+00 -2.900019149244370e+00 - -2.900301869748365e+00 -2.900586340998689e+00 -2.900872566741790e+00 -2.901160550350105e+00 -2.901450295205248e+00 - -2.901741805099525e+00 -2.902035083835090e+00 -2.902330134842785e+00 -2.902626961482952e+00 -2.902925567205262e+00 - -2.903225955501619e+00 -2.903528129943548e+00 -2.903832094083243e+00 -2.904137851315957e+00 -2.904445404943298e+00 - -2.904754758049239e+00 -2.905065913908475e+00 -2.905378876776237e+00 -2.905693650730528e+00 -2.906010238159916e+00 - -2.906328641477237e+00 -2.906648864881840e+00 -2.906970912612057e+00 -2.907294787275635e+00 -2.907620491421319e+00 - -2.907948028992455e+00 -2.908277404008211e+00 -2.908608619396449e+00 -2.908941677961907e+00 -2.909276583108139e+00 - -2.909613338320582e+00 -2.909951946813384e+00 -2.910292411733319e+00 -2.910634736228945e+00 -2.910978923497479e+00 - -2.911324976928991e+00 -2.911672899876866e+00 -2.912022695354926e+00 -2.912374366346152e+00 -2.912727916049746e+00 - -2.913083347735332e+00 -2.913440664738005e+00 -2.913799870293631e+00 -2.914160967175702e+00 -2.914523958205600e+00 - -2.914888846858668e+00 -2.915255636613397e+00 -2.915624330306910e+00 -2.915994930711883e+00 -2.916367440984558e+00 - -2.916741864289805e+00 -2.917118203443422e+00 -2.917496461287171e+00 -2.917876641115726e+00 -2.918258746264796e+00 - -2.918642779781321e+00 -2.919028744569610e+00 -2.919416643252220e+00 -2.919806478556714e+00 -2.920198253912409e+00 - -2.920591972698769e+00 -2.920987637394092e+00 -2.921385250442034e+00 -2.921784815048848e+00 -2.922186334507697e+00 - -2.922589811696789e+00 -2.922995249368979e+00 -2.923402650190686e+00 -2.923812016928122e+00 -2.924223352833133e+00 - -2.924636661116357e+00 -2.925051944337972e+00 -2.925469204994078e+00 -2.925888445974902e+00 -2.926309670222330e+00 - -2.926732880490753e+00 -2.927158079512877e+00 -2.927585270122142e+00 -2.928014455203420e+00 -2.928445637746579e+00 - -2.928878820641719e+00 -2.929314006274898e+00 -2.929751197043434e+00 -2.930190395893735e+00 -2.930631605816839e+00 - -2.931074829433217e+00 -2.931520069294359e+00 -2.931967328046430e+00 -2.932416608452995e+00 -2.932867913652596e+00 - -2.933321246608101e+00 -2.933776609204709e+00 -2.934234003435805e+00 -2.934693432805196e+00 -2.935154900804807e+00 - -2.935618409368617e+00 -2.936083960365691e+00 -2.936551556963400e+00 -2.937021202354904e+00 -2.937492898538196e+00 - -2.937966647468766e+00 -2.938442452127255e+00 -2.938920315642269e+00 -2.939400240709141e+00 -2.939882229846171e+00 - -2.940366285296803e+00 -2.940852409365155e+00 -2.941340604872910e+00 -2.941830874578781e+00 -2.942323220472084e+00 - -2.942817644603974e+00 -2.943314150042391e+00 -2.943812739919231e+00 -2.944313416605433e+00 -2.944816182292809e+00 - -2.945321039217627e+00 -2.945827989752984e+00 -2.946337036774817e+00 -2.946848183049044e+00 -2.947361430398659e+00 - -2.947876780695535e+00 -2.948394236949976e+00 -2.948913802216184e+00 -2.949435478585527e+00 -2.949959268045502e+00 - -2.950485173130951e+00 -2.951013196489051e+00 -2.951543340668991e+00 -2.952075608036040e+00 -2.952610000317780e+00 - -2.953146519451356e+00 -2.953685168849877e+00 -2.954225951787981e+00 -2.954768869510503e+00 -2.955313923227115e+00 - -2.955861116036636e+00 -2.956410451196468e+00 -2.956961930709160e+00 -2.957515556348660e+00 -2.958071330229310e+00 - -2.958629254704319e+00 -2.959189332741965e+00 -2.959751567143614e+00 -2.960315959427935e+00 -2.960882511105170e+00 - -2.961451224934558e+00 -2.962022103774683e+00 -2.962595149632548e+00 -2.963170364371659e+00 -2.963747750133120e+00 - -2.964327309260061e+00 -2.964909044626116e+00 -2.965492958892178e+00 -2.966079053337689e+00 -2.966667329311879e+00 - -2.967257789824588e+00 -2.967850437973655e+00 -2.968445275548303e+00 -2.969042304161408e+00 -2.969641526029084e+00 - -2.970242943489398e+00 -2.970846558764995e+00 -2.971452374012471e+00 -2.972060391239641e+00 -2.972670612566008e+00 - -2.973283040706606e+00 -2.973897678221620e+00 -2.974514526456296e+00 -2.975133586785449e+00 -2.975754861917081e+00 - -2.976378354633252e+00 -2.977004066679083e+00 -2.977631999719257e+00 -2.978262156133669e+00 -2.978894538388579e+00 - -2.979529148580497e+00 -2.980165988659094e+00 -2.980805060356407e+00 -2.981446365534977e+00 -2.982089906796993e+00 - -2.982735686662750e+00 -2.983383706585328e+00 -2.984033968085205e+00 -2.984686474019655e+00 -2.985341227187940e+00 - -2.985998228820469e+00 -2.986657480057624e+00 -2.987318983248517e+00 -2.987982740990944e+00 -2.988648755668708e+00 - -2.989317029403636e+00 -2.989987563483614e+00 -2.990660359350691e+00 -2.991335419897486e+00 -2.992012747963469e+00 - -2.992692344724977e+00 -2.993374211287029e+00 -2.994058350132512e+00 -2.994744763907397e+00 -2.995433454532118e+00 - -2.996124423756546e+00 -2.996817673373822e+00 -2.997513205283444e+00 -2.998211021767050e+00 -2.998911125033880e+00 - -2.999613516621449e+00 -3.000318198120732e+00 -3.001025172008281e+00 -3.001734440748973e+00 -3.002446005875424e+00 - -3.003159868783688e+00 -3.003876031255844e+00 -3.004594495323234e+00 -3.005315263628241e+00 -3.006038338638268e+00 - -3.006763721509772e+00 -3.007491413411925e+00 -3.008221416875716e+00 -3.008953734497098e+00 -3.009688367770095e+00 - -3.010425318036306e+00 -3.011164587129571e+00 -3.011906177113799e+00 -3.012650090480955e+00 -3.013396329533748e+00 - -3.014144895389836e+00 -3.014895789237767e+00 -3.015649013734712e+00 -3.016404571515447e+00 -3.017162463656545e+00 - -3.017922691248400e+00 -3.018685256994897e+00 -3.019450163571901e+00 -3.020217411929727e+00 -3.020987002987051e+00 - -3.021758939261538e+00 -3.022533223477289e+00 -3.023309857585168e+00 -3.024088843221124e+00 -3.024870181534668e+00 - -3.025653873871900e+00 -3.026439922851719e+00 -3.027228331077071e+00 -3.028019099814318e+00 -3.028812230192102e+00 - -3.029607724124773e+00 -3.030405583764245e+00 -3.031205811426982e+00 -3.032008409239547e+00 -3.032813378404362e+00 - -3.033620720145768e+00 -3.034430436699938e+00 -3.035242530366928e+00 -3.036057002690514e+00 -3.036873855182042e+00 - -3.037693089979441e+00 -3.038514709166424e+00 -3.039338713983260e+00 -3.040165105664532e+00 -3.040993886265523e+00 - -3.041825058080565e+00 -3.042658623539453e+00 -3.043494584770202e+00 -3.044332942558215e+00 -3.045173697755793e+00 - -3.046016852825442e+00 -3.046862410359265e+00 -3.047710371857544e+00 -3.048560738605269e+00 -3.049413512118055e+00 - -3.050268694173960e+00 -3.051126287370169e+00 -3.051986294136892e+00 -3.052848715417321e+00 -3.053713552140092e+00 - -3.054580806662679e+00 -3.055450481419417e+00 -3.056322577723267e+00 -3.057197096839233e+00 -3.058074040961857e+00 - -3.058953412280709e+00 -3.059835212035924e+00 -3.060719441405425e+00 -3.061606102267731e+00 -3.062495196777212e+00 - -3.063386727491054e+00 -3.064280696619269e+00 -3.065177104580330e+00 -3.066075951959016e+00 -3.066977241796834e+00 - -3.067880977177860e+00 -3.068787158899685e+00 -3.069695787543252e+00 -3.070606865109353e+00 -3.071520393938529e+00 - -3.072436376310475e+00 -3.073354814200677e+00 -3.074275708428639e+00 -3.075199059975246e+00 -3.076124871622891e+00 - -3.077053146054635e+00 -3.077983883754724e+00 -3.078917085313194e+00 -3.079852753942089e+00 -3.080790892784741e+00 - -3.081731502087634e+00 -3.082674582011150e+00 -3.083620135268097e+00 -3.084568164866139e+00 -3.085518672439932e+00 - -3.086471659270948e+00 -3.087427126600947e+00 -3.088385075921834e+00 -3.089345509765843e+00 -3.090308430518810e+00 - -3.091273838940665e+00 -3.092241735746584e+00 -3.093212123098609e+00 -3.094185003484481e+00 -3.095160379247863e+00 - -3.096138252358965e+00 -3.097118623438258e+00 -3.098101493262150e+00 -3.099086864580523e+00 -3.100074740150514e+00 - -3.101065120784818e+00 -3.102058007230942e+00 -3.103053401920080e+00 -3.104051307417155e+00 -3.105051725138318e+00 - -3.106054656274756e+00 -3.107060102266563e+00 -3.108068064811119e+00 -3.109078546386035e+00 -3.110091549326776e+00 - -3.111107074619999e+00 -3.112125123273996e+00 -3.113145697732417e+00 -3.114168800386244e+00 -3.115194431980418e+00 - -3.116222593318652e+00 -3.117253287085768e+00 -3.118286516039464e+00 -3.119322281347848e+00 -3.120360583948459e+00 - -3.121401425446115e+00 -3.122444807777008e+00 -3.123490733535526e+00 -3.124539205035892e+00 -3.125590222813487e+00 - -3.126643787500575e+00 -3.127699901895779e+00 -3.128758568841378e+00 -3.129819789187914e+00 -3.130883563634097e+00 - -3.131949894263071e+00 -3.133018783446947e+00 -3.134090233329311e+00 -3.135164245759380e+00 -3.136240821637432e+00 - -3.137319962039862e+00 -3.138401669696502e+00 -3.139485947209752e+00 -3.140572795018887e+00 -3.141662213641400e+00 - -3.142754206070774e+00 -3.143848775370422e+00 -3.144945922407469e+00 -3.146045647810740e+00 -3.147147953452156e+00 - -3.148252841552866e+00 -3.149360314487843e+00 -3.150470374336312e+00 -3.151583021840677e+00 -3.152698257836541e+00 - -3.153816084869129e+00 -3.154936505573740e+00 -3.156059521236365e+00 -3.157185132934072e+00 -3.158313342257567e+00 - -3.159444151127381e+00 -3.160577562269707e+00 -3.161713578058511e+00 -3.162852198653188e+00 -3.163993424406347e+00 - -3.165137258658042e+00 -3.166283704751602e+00 -3.167432763056018e+00 -3.168584433853514e+00 -3.169738720053572e+00 - -3.170895624664928e+00 -3.172055148466089e+00 -3.173217292044841e+00 -3.174382057456326e+00 -3.175549447119023e+00 - -3.176719463437418e+00 -3.177892108465135e+00 -3.179067382866334e+00 -3.180245287430775e+00 -3.181425824840074e+00 - -3.182608997807819e+00 -3.183794807283624e+00 -3.184983254083125e+00 -3.186174340249998e+00 -3.187368068149750e+00 - -3.188564440207163e+00 -3.189763458501066e+00 -3.190965123667219e+00 -3.192169436468204e+00 -3.193376399616980e+00 - -3.194586015855556e+00 -3.195798286091764e+00 -3.197013211234878e+00 -3.198230794034108e+00 -3.199451037209393e+00 - -3.200673941523666e+00 -3.201899507599942e+00 -3.203127737458575e+00 -3.204358633517069e+00 -3.205592198384193e+00 - -3.206828434306502e+00 -3.208067341890413e+00 -3.209308921829809e+00 -3.210553176808560e+00 -3.211800109598040e+00 - -3.213049721329648e+00 -3.214302012941719e+00 -3.215556986240311e+00 -3.216814643392485e+00 -3.218074987141617e+00 - -3.219338019837523e+00 -3.220603741679474e+00 -3.221872153094758e+00 -3.223143257573258e+00 -3.224417058543514e+00 - -3.225693556126080e+00 -3.226972750453261e+00 -3.228254645012327e+00 -3.229539243310538e+00 -3.230826545580160e+00 - -3.232116551831102e+00 -3.233409264458852e+00 -3.234704686394765e+00 -3.236002820328103e+00 -3.237303668413965e+00 - -3.238607230912866e+00 -3.239913508296335e+00 -3.241222503774527e+00 -3.242534220589764e+00 -3.243848659374397e+00 - -3.245165820540432e+00 -3.246485706228452e+00 -3.247808319087641e+00 -3.249133662073000e+00 -3.250461737608715e+00 - -3.251792545689908e+00 -3.253126086515263e+00 -3.254462363526813e+00 -3.255801380232294e+00 -3.257143137158927e+00 - -3.258487634736825e+00 -3.259834875988172e+00 -3.261184864013611e+00 -3.262537599635538e+00 -3.263893083453904e+00 - -3.265251317457108e+00 -3.266612304094287e+00 -3.267976046269084e+00 -3.269342546452898e+00 -3.270711804933652e+00 - -3.272083822201368e+00 -3.273458601737915e+00 -3.274836147008249e+00 -3.276216458417835e+00 -3.277599536106921e+00 - -3.278985382214368e+00 -3.280373999474050e+00 -3.281765391001240e+00 -3.283159559381294e+00 -3.284556504698475e+00 - -3.285956227223949e+00 -3.287358730477579e+00 -3.288764018003004e+00 -3.290172090190266e+00 -3.291582947391597e+00 - -3.292996592961586e+00 -3.294413030263101e+00 -3.295832259689772e+00 -3.297254281509102e+00 -3.298679098453292e+00 - -3.300106713632883e+00 -3.301537129207062e+00 -3.302970346938195e+00 -3.304406367952729e+00 -3.305845193592728e+00 - -3.307286826698660e+00 -3.308731270022015e+00 -3.310178524459931e+00 -3.311628590794006e+00 -3.313081471198005e+00 - -3.314537168271639e+00 -3.315995684926260e+00 -3.317457023622331e+00 -3.318921184705128e+00 -3.320388168757214e+00 - -3.321857979425488e+00 -3.323330620242623e+00 -3.324806091220061e+00 -3.326284392457951e+00 -3.327765527932510e+00 - -3.329249501635255e+00 -3.330736313742837e+00 -3.332225964151081e+00 -3.333718455447356e+00 -3.335213790816533e+00 - -3.336711973141963e+00 -3.338213004741188e+00 -3.339716885970061e+00 -3.341223617428788e+00 -3.342733202656698e+00 - -3.344245645175923e+00 -3.345760945500658e+00 -3.347279103963591e+00 -3.348800123179309e+00 -3.350324006237700e+00 - -3.351850755847976e+00 -3.353380374190363e+00 -3.354912861709826e+00 -3.356448219173252e+00 -3.357986450370467e+00 - -3.359527558984502e+00 -3.361071545248283e+00 -3.362618409368982e+00 -3.364168154900880e+00 -3.365720785489059e+00 - -3.367276301794712e+00 -3.368834704260551e+00 -3.370395995439248e+00 -3.371960178388195e+00 -3.373527256073704e+00 - -3.375097230883950e+00 -3.376670102985606e+00 -3.378245872877927e+00 -3.379824544611959e+00 -3.381406122149057e+00 - -3.382990605539988e+00 -3.384577994855671e+00 -3.386168294158221e+00 -3.387761507524905e+00 -3.389357635102426e+00 - -3.390956676825633e+00 -3.392558635712520e+00 -3.394163515324364e+00 -3.395771318312439e+00 -3.397382046745834e+00 - -3.398995701274896e+00 -3.400612282828281e+00 -3.402231794866633e+00 -3.403854240867662e+00 -3.405479621845378e+00 - -3.407107938586081e+00 -3.408739193428916e+00 -3.410373389185216e+00 -3.412010529002203e+00 -3.413650615518111e+00 - -3.415293648999326e+00 -3.416939629995896e+00 -3.418588562564371e+00 -3.420240450691449e+00 -3.421895294577897e+00 - -3.423553094414080e+00 -3.425213854134680e+00 -3.426877577792018e+00 -3.428544266164663e+00 -3.430213919689846e+00 - -3.431886540713168e+00 -3.433562132145608e+00 -3.435240697251321e+00 -3.436922238808692e+00 -3.438606757299870e+00 - -3.440294253397158e+00 -3.441984730829699e+00 -3.443678193368453e+00 -3.445374641894819e+00 -3.447074077051543e+00 - -3.448776501416308e+00 -3.450481918039497e+00 -3.452190329927366e+00 -3.453901739641781e+00 -3.455616148011183e+00 - -3.457333556082980e+00 -3.459053967513855e+00 -3.460777385853499e+00 -3.462503811614361e+00 -3.464233245386620e+00 - -3.465965691108627e+00 -3.467701152771073e+00 -3.469439631225878e+00 -3.471181127031554e+00 -3.472925642711720e+00 - -3.474673181335264e+00 -3.476423746187027e+00 -3.478177340029919e+00 -3.479933963323171e+00 -3.481693616824597e+00 - -3.483456304790008e+00 -3.485222031388338e+00 -3.486990796943019e+00 -3.488762601570069e+00 -3.490537448401365e+00 - -3.492315341151373e+00 -3.494096282849095e+00 -3.495880275915030e+00 -3.497667321021135e+00 -3.499457419173128e+00 - -3.501250574460328e+00 -3.503046790838973e+00 -3.504846068649357e+00 -3.506648408298966e+00 -3.508453814079994e+00 - -3.510262290280344e+00 -3.512073837286068e+00 -3.513888455301771e+00 -3.515706147708129e+00 -3.517526918395819e+00 - -3.519350770119465e+00 -3.521177705073145e+00 -3.523007724344773e+00 -3.524840829328240e+00 -3.526677023747485e+00 - -3.528516311267811e+00 -3.530358692989965e+00 -3.532204169811781e+00 -3.534052744384031e+00 -3.535904419874647e+00 - -3.537759199767289e+00 -3.539617087002065e+00 -3.541478082029144e+00 -3.543342185630307e+00 -3.545209402403708e+00 - -3.547079736777425e+00 -3.548953188682862e+00 -3.550829758143615e+00 -3.552709450048714e+00 -3.554592269345012e+00 - -3.556478216345227e+00 -3.558367291032073e+00 -3.560259496702344e+00 -3.562154837300620e+00 -3.564053316048536e+00 - -3.565954935512961e+00 -3.567859696364639e+00 -3.569767599635964e+00 -3.571678649702049e+00 -3.573592850895430e+00 - -3.575510204035641e+00 -3.577430709619281e+00 -3.579354370364244e+00 -3.581281189700099e+00 -3.583211171681835e+00 - -3.585144319721653e+00 -3.587080634035166e+00 -3.589020115063184e+00 -3.590962767343901e+00 -3.592908595415016e+00 - -3.594857599714854e+00 -3.596809780701911e+00 -3.598765143014713e+00 -3.600723691343250e+00 -3.602685426403352e+00 - -3.604650348553174e+00 -3.606618460694309e+00 -3.608589766473437e+00 -3.610564269974137e+00 -3.612541974573128e+00 - -3.614522880382737e+00 -3.616506987803558e+00 -3.618494301653613e+00 -3.620484826823921e+00 -3.622478564080036e+00 - -3.624475513850586e+00 -3.626475679341938e+00 -3.628479064392689e+00 -3.630485672592619e+00 -3.632495506905407e+00 - -3.634508568039156e+00 -3.636524857004877e+00 -3.638544378280809e+00 -3.640567136287224e+00 -3.642593131745308e+00 - -3.644622365423449e+00 -3.646654841977913e+00 -3.648690566065893e+00 -3.650729538460438e+00 -3.652771759626902e+00 - -3.654817232683972e+00 -3.656865961450936e+00 -3.658917949896158e+00 -3.660973201344661e+00 -3.663031716399031e+00 - -3.665093495929850e+00 -3.667158544602091e+00 -3.669226867066577e+00 -3.671298464123134e+00 -3.673373336353373e+00 - -3.675451487317045e+00 -3.677532921173144e+00 -3.679617641499514e+00 -3.681705651197185e+00 -3.683796951041065e+00 - -3.685891542158701e+00 -3.687989429214330e+00 -3.690090616811484e+00 -3.692195105774196e+00 -3.694302896934788e+00 - -3.696413994938233e+00 -3.698528404463948e+00 -3.700646126516483e+00 -3.702767161822413e+00 -3.704891513671268e+00 - -3.707019186005269e+00 -3.709150182814482e+00 -3.711284507419287e+00 -3.713422160413482e+00 -3.715563142750310e+00 - -3.717707459547388e+00 -3.719855115839397e+00 -3.722006112164920e+00 -3.724160448777861e+00 -3.726318129289493e+00 - -3.728479158099316e+00 -3.730643539402395e+00 -3.732811276589775e+00 -3.734982370040845e+00 -3.737156820495128e+00 - -3.739334633144358e+00 -3.741515813112657e+00 -3.743700360801490e+00 -3.745888276640612e+00 -3.748079565895588e+00 - -3.750274233918474e+00 -3.752472281571475e+00 -3.754673709335501e+00 -3.756878520656135e+00 -3.759086719721971e+00 - -3.761298310728990e+00 -3.763513297133539e+00 -3.765731679426046e+00 -3.767953458457793e+00 -3.770178639489403e+00 - -3.772407227784000e+00 -3.774639224205367e+00 -3.776874629489326e+00 -3.779113448259203e+00 -3.781355685279774e+00 - -3.783601341994148e+00 -3.785850419525435e+00 -3.788102921038436e+00 -3.790358850378410e+00 -3.792618212070778e+00 - -3.794881010002580e+00 -3.797147244827153e+00 -3.799416917428862e+00 -3.801690032849888e+00 -3.803966596190487e+00 - -3.806246608625402e+00 -3.808530070983860e+00 -3.810816986638503e+00 -3.813107359693981e+00 -3.815401194639556e+00 - -3.817698495297397e+00 -3.819999262436677e+00 -3.822303497093916e+00 -3.824611204428034e+00 -3.826922389548483e+00 - -3.829237053244454e+00 -3.831555196353405e+00 -3.833876824226091e+00 -3.836201942201953e+00 -3.838530551061888e+00 - -3.840862651326505e+00 -3.843198247033778e+00 -3.845537342919513e+00 -3.847879942993476e+00 -3.850226050562932e+00 - -3.852575666851148e+00 -3.854928793361406e+00 -3.857285434801036e+00 -3.859645595950435e+00 -3.862009278678248e+00 - -3.864376484523473e+00 -3.866747216618300e+00 -3.869121478726629e+00 -3.871499275546047e+00 -3.873880611182955e+00 - -3.876265486445322e+00 -3.878653902389424e+00 -3.881045864363169e+00 -3.883441377687285e+00 -3.885840443282151e+00 - -3.888243062046155e+00 -3.890649239190073e+00 -3.893058980047241e+00 -3.895472286128841e+00 -3.897889158595383e+00 - -3.900309601026809e+00 -3.902733617656517e+00 -3.905161212912323e+00 -3.907592390603840e+00 -3.910027151873432e+00 - -3.912465498159137e+00 -3.914907434748928e+00 -3.917352966879188e+00 -3.919802095729995e+00 -3.922254822259626e+00 - -3.924711150595445e+00 -3.927171085542605e+00 -3.929634631448325e+00 -3.932101791843537e+00 -3.934572567451927e+00 - -3.937046959532740e+00 -3.939524974294695e+00 -3.942006617767883e+00 -3.944491890318428e+00 -3.946980792233828e+00 - -3.949473329151056e+00 -3.951969506957779e+00 -3.954469327195002e+00 -3.956972790971958e+00 -3.959479902017460e+00 - -3.961990664762499e+00 -3.964505083827194e+00 -3.967023163167552e+00 -3.969544903893966e+00 -3.972070307479498e+00 - -3.974599379693463e+00 -3.977132126179292e+00 -3.979668547780628e+00 -3.982208645099321e+00 -3.984752422569858e+00 - -3.987299885436030e+00 -3.989851038346246e+00 -3.992405885069993e+00 -3.994964426456437e+00 -3.997526663815754e+00 - -4.000092603222488e+00 -4.002662250581340e+00 -4.005235606353252e+00 -4.007812671084819e+00 -4.010393451108941e+00 - -4.012977952843547e+00 -4.015566177260363e+00 -4.018158124897606e+00 -4.020753800005660e+00 -4.023353207686703e+00 - -4.025956352737950e+00 -4.028563239140089e+00 -4.031173867912699e+00 -4.033788240453579e+00 -4.036406362634527e+00 - -4.039028240314873e+00 -4.041653874830120e+00 -4.044283267179555e+00 -4.046916421541453e+00 -4.049553342894448e+00 - -4.052194036239657e+00 -4.054838505774454e+00 -4.057486752458788e+00 -4.060138777601743e+00 -4.062794587146426e+00 - -4.065454187011838e+00 -4.068117578386588e+00 -4.070784762448621e+00 -4.073455745063631e+00 -4.076130532171974e+00 - -4.078809125324914e+00 -4.081491525652789e+00 -4.084177736991329e+00 -4.086867764089578e+00 -4.089561612644448e+00 - -4.092259287473573e+00 -4.094960788929582e+00 -4.097666117736884e+00 -4.100375280572002e+00 -4.103088284211306e+00 - -4.105805129878449e+00 -4.108525818267906e+00 -4.111250353510137e+00 -4.113978740671802e+00 -4.116710985128399e+00 - -4.119447091422845e+00 -4.122187060458915e+00 -4.124930893522407e+00 -4.127678597066370e+00 -4.130430177441071e+00 - -4.133185635418395e+00 -4.135944971791250e+00 -4.138708193015015e+00 -4.141475305696859e+00 -4.144246311388639e+00 - -4.147021211130915e+00 -4.149800008974389e+00 -4.152582709893380e+00 -4.155369319546537e+00 -4.158159842709882e+00 - -4.160954279944561e+00 -4.163752632239020e+00 -4.166554906505763e+00 -4.169361109687737e+00 -4.172171242925584e+00 - -4.174985306927709e+00 -4.177803306475812e+00 -4.180625247195196e+00 -4.183451134012302e+00 -4.186280970992621e+00 - -4.189114759456745e+00 -4.191952501240072e+00 -4.194794202982180e+00 -4.197639871116617e+00 -4.200489506448629e+00 - -4.203343109834506e+00 -4.206200687962978e+00 -4.209062247657938e+00 -4.211927790451525e+00 -4.214797317400862e+00 - -4.217670832954751e+00 -4.220548342457539e+00 -4.223429851444060e+00 -4.226315364591702e+00 -4.229204882957573e+00 - -4.232098408004153e+00 -4.234995946435681e+00 -4.237897504949240e+00 -4.240803084971501e+00 -4.243712687544032e+00 - -4.246626317438374e+00 -4.249543980343883e+00 -4.252465681891192e+00 -4.255391426705907e+00 -4.258321215452209e+00 - -4.261255049361277e+00 -4.264192935893713e+00 -4.267134882389568e+00 -4.270080889477248e+00 -4.273030957691918e+00 - -4.275985093907401e+00 -4.278943305249538e+00 -4.281905593513557e+00 -4.284871959946388e+00 -4.287842408932329e+00 - -4.290816945777364e+00 -4.293795576336856e+00 -4.296778305653331e+00 -4.299765134968560e+00 -4.302756065899131e+00 - -4.305751105361620e+00 -4.308750260118541e+00 -4.311753531016159e+00 -4.314760919008608e+00 -4.317772431397722e+00 - -4.320788075591533e+00 -4.323807853075197e+00 -4.326831764792573e+00 -4.329859815445223e+00 -4.332892010759197e+00 - -4.335928356800809e+00 -4.338968858700405e+00 -4.342013517504197e+00 -4.345062334602749e+00 -4.348115316848165e+00 - -4.351172471198577e+00 -4.354233799574710e+00 -4.357299303495111e+00 -4.360368987907023e+00 -4.363442858590077e+00 - -4.366520921224746e+00 -4.369603180592436e+00 -4.372689637977453e+00 -4.375780295145305e+00 -4.378875159283436e+00 - -4.381974237486932e+00 -4.385077531059527e+00 -4.388185041309383e+00 -4.391296775353732e+00 -4.394412740393244e+00 - -4.397532938153312e+00 -4.400657369887305e+00 -4.403786040435705e+00 -4.406918955633090e+00 -4.410056121703311e+00 - -4.413197543940346e+00 -4.416343223529426e+00 -4.419493162052248e+00 -4.422647366785128e+00 -4.425805845047289e+00 - -4.428968598634965e+00 -4.432135628892382e+00 -4.435306940878729e+00 -4.438482540596634e+00 -4.441662434107552e+00 - -4.444846626509031e+00 -4.448035118984182e+00 -4.451227913265940e+00 -4.454425017200977e+00 -4.457626438485681e+00 - -4.460832178101560e+00 -4.464042236947444e+00 -4.467256622306292e+00 -4.470475341701105e+00 -4.473698397230936e+00 - -4.476925790483307e+00 -4.480157526423565e+00 -4.483393610985775e+00 -4.486634050601043e+00 -4.489878850742320e+00 - -4.493128012552872e+00 -4.496381537630165e+00 -4.499639433718156e+00 -4.502901708553144e+00 -4.506168363694287e+00 - -4.509439400268067e+00 -4.512714823847340e+00 -4.515994641019672e+00 -4.519278857985080e+00 -4.522567479881829e+00 - -4.525860507988668e+00 -4.529157944122721e+00 -4.532459796114085e+00 -4.535766071688615e+00 -4.539076772142213e+00 - -4.542391898765175e+00 -4.545711459255270e+00 -4.549035461446213e+00 -4.552363907308053e+00 -4.555696798263391e+00 - -4.559034139408705e+00 -4.562375936904542e+00 -4.565722197493832e+00 -4.569072926948550e+00 -4.572428126574475e+00 - -4.575787798129616e+00 -4.579151949647104e+00 -4.582520589075836e+00 -4.585893717752653e+00 -4.589271336639746e+00 - -4.592653451812744e+00 -4.596040070428725e+00 -4.599431198857142e+00 -4.602826842289216e+00 -4.606227001990830e+00 - -4.609631679831751e+00 -4.613040884022596e+00 -4.616454622677202e+00 -4.619872897181441e+00 -4.623295708819967e+00 - -4.626723065200532e+00 -4.630154974192006e+00 -4.633591438384649e+00 -4.637032459790966e+00 -4.640478043391029e+00 - -4.643928195196958e+00 -4.647382922381489e+00 -4.650842231139545e+00 -4.654306122594169e+00 -4.657774598295235e+00 - -4.661247666571815e+00 -4.664725335805659e+00 -4.668207607810025e+00 -4.671694483876048e+00 -4.675185969774820e+00 - -4.678682072408495e+00 -4.682182798723523e+00 -4.685688154522786e+00 -4.689198140990583e+00 -4.692712759891060e+00 - -4.696232019926335e+00 -4.699755929666950e+00 -4.703284490219185e+00 -4.706817702626076e+00 -4.710355575141943e+00 - -4.713898116290367e+00 -4.717445328460708e+00 -4.720997213393779e+00 -4.724553776370427e+00 -4.728115023824750e+00 - -4.731680963263822e+00 -4.735251601139764e+00 -4.738826938611875e+00 -4.742406977241646e+00 -4.745991725492132e+00 - -4.749581191958943e+00 -4.753175378866366e+00 -4.756774287871428e+00 -4.760377924733439e+00 -4.763986296289299e+00 - -4.767599409584012e+00 -4.771217270615820e+00 -4.774839880987831e+00 -4.778467242836293e+00 -4.782099364825118e+00 - -4.785736255481164e+00 -4.789377916255392e+00 -4.793024348603915e+00 -4.796675561079348e+00 -4.800331562360717e+00 - -4.803992354536202e+00 -4.807657939173200e+00 -4.811328322346788e+00 -4.815003511262576e+00 -4.818683513140625e+00 - -4.822368334073276e+00 -4.826057975627521e+00 -4.829752439872078e+00 -4.833451735407881e+00 -4.837155870922971e+00 - -4.840864848921632e+00 -4.844578671297884e+00 -4.848297343688468e+00 -4.852020872870312e+00 -4.855749266438375e+00 - -4.859482530948563e+00 -4.863220667982479e+00 -4.866963679596293e+00 -4.870711574718753e+00 -4.874464362148352e+00 - -4.878222043289993e+00 -4.881984619584831e+00 -4.885752100012597e+00 -4.889524493673498e+00 -4.893301802611106e+00 - -4.897084028340568e+00 -4.900871177319985e+00 -4.904663257144151e+00 -4.908460275011687e+00 -4.912262236942902e+00 - -4.916069144641015e+00 -4.919881000415621e+00 -4.923697813318887e+00 -4.927519592402767e+00 -4.931346339975771e+00 - -4.935178057730553e+00 -4.939014751639765e+00 -4.942856428895341e+00 -4.946703097286389e+00 -4.950554763469543e+00 - -4.954411428974413e+00 -4.958273095882141e+00 -4.962139773607051e+00 -4.966011471374763e+00 -4.969888190322918e+00 - -4.973769931656962e+00 -4.977656704941523e+00 -4.981548519919207e+00 -4.985445378685372e+00 -4.989347282670139e+00 - -4.993254238289898e+00 -4.997166253181426e+00 -5.001083334876794e+00 -5.005005489750602e+00 -5.008932719652265e+00 - -5.012865027026571e+00 -5.016802421224969e+00 -5.020744911403345e+00 -5.024692499028711e+00 -5.028645185619313e+00 - -5.032602980587180e+00 -5.036565893470627e+00 -5.040533926419334e+00 -5.044507081015939e+00 -5.048485363963517e+00 - -5.052468783200935e+00 -5.056457346489804e+00 -5.060451060330298e+00 -5.064449926354071e+00 -5.068453946757710e+00 - -5.072463130865962e+00 -5.076477488052552e+00 -5.080497020758939e+00 -5.084521730904982e+00 -5.088551625256381e+00 - -5.092586711696772e+00 -5.096626997735727e+00 -5.100672489712744e+00 -5.104723189661156e+00 -5.108779100266077e+00 - -5.112840231125939e+00 -5.116906591587866e+00 -5.120978183080382e+00 -5.125055007124604e+00 -5.129137073530554e+00 - -5.133224392250169e+00 -5.137316965514153e+00 -5.141414794882011e+00 -5.145517886949661e+00 -5.149626249667421e+00 - -5.153739891366810e+00 -5.157858819095347e+00 -5.161983034383363e+00 -5.166112539324860e+00 -5.170247343785729e+00 - -5.174387457616170e+00 -5.178532882831751e+00 -5.182683620936045e+00 -5.186839679219287e+00 -5.191001066208124e+00 - -5.195167789588259e+00 -5.199339855740569e+00 -5.203517266667578e+00 -5.207700025095241e+00 -5.211888141021600e+00 - -5.216081624199723e+00 -5.220280476130696e+00 -5.224484698310884e+00 -5.228694300469721e+00 -5.232909292611727e+00 - -5.237129677608738e+00 -5.241355457600706e+00 -5.245586638932716e+00 -5.249823229255573e+00 -5.254065237237846e+00 - -5.258312670369801e+00 -5.262565530410686e+00 -5.266823819583928e+00 -5.271087547700648e+00 -5.275356724632263e+00 - -5.279631352903723e+00 -5.283911434448228e+00 -5.288196976178466e+00 -5.292487986327965e+00 -5.296784473434150e+00 - -5.301086444698075e+00 -5.305393901671405e+00 -5.309706846569482e+00 -5.314025289911748e+00 -5.318349242027271e+00 - -5.322678704179561e+00 -5.327013677718438e+00 -5.331354173404511e+00 -5.335700202105029e+00 -5.340051765703035e+00 - -5.344408865432155e+00 -5.348771508912536e+00 -5.353139705124518e+00 -5.357513462102698e+00 -5.361892786505948e+00 - -5.366277680435933e+00 -5.370668146715638e+00 -5.375064195610523e+00 -5.379465837274747e+00 -5.383873073974794e+00 - -5.388285907439377e+00 -5.392704345133761e+00 -5.397128395890300e+00 -5.401558068273167e+00 -5.405993369375257e+00 - -5.410434300672517e+00 -5.414880864443758e+00 -5.419333071796174e+00 -5.423790933634701e+00 -5.428254451226888e+00 - -5.432723625834648e+00 -5.437198468334746e+00 -5.441678989715544e+00 -5.446165191796978e+00 -5.450657075821366e+00 - -5.455154649888983e+00 -5.459657923508107e+00 -5.464166904961132e+00 -5.468681600997277e+00 -5.473202013458992e+00 - -5.477728145011161e+00 -5.482260006515158e+00 -5.486797608759512e+00 -5.491340954044872e+00 -5.495890044003880e+00 - -5.500444886085005e+00 -5.505005489175888e+00 -5.509571862105057e+00 -5.514144012303452e+00 -5.518721941670775e+00 - -5.523305652810777e+00 -5.527895156674663e+00 -5.532490463993778e+00 -5.537091576272570e+00 -5.541698495053784e+00 - -5.546311231260242e+00 -5.550929796018560e+00 -5.555554191890502e+00 -5.560184420697174e+00 -5.564820489861896e+00 - -5.569462408240030e+00 -5.574110184812914e+00 -5.578763827204064e+00 -5.583423337479740e+00 -5.588088718319627e+00 - -5.592759980414353e+00 -5.597437134453794e+00 -5.602120183113874e+00 -5.606809128447821e+00 -5.611503978032022e+00 - -5.616204740842362e+00 -5.620911425929568e+00 -5.625624040919794e+00 -5.630342587666039e+00 -5.635067068763208e+00 - -5.639797495546991e+00 -5.644533879170592e+00 -5.649276221316504e+00 -5.654024523642824e+00 -5.658778797180806e+00 - -5.663539053129186e+00 -5.668305293983524e+00 -5.673077521581335e+00 -5.677855743831122e+00 -5.682639970117403e+00 - -5.687430209657800e+00 -5.692226470164904e+00 -5.697028753498052e+00 -5.701837062188433e+00 -5.706651407307890e+00 - -5.711471800003379e+00 -5.716298243181697e+00 -5.721130739014699e+00 -5.725969294974640e+00 -5.730813920019088e+00 - -5.735664623746429e+00 -5.740521414337008e+00 -5.745384293658165e+00 -5.750253264219532e+00 -5.755128337412918e+00 - -5.760009524502356e+00 -5.764896827358567e+00 -5.769790247833362e+00 -5.774689797096235e+00 -5.779595486532854e+00 - -5.784507319075965e+00 -5.789425296924678e+00 -5.794349427796488e+00 -5.799279720850703e+00 -5.804216185495535e+00 - -5.809158829710795e+00 -5.814107655513784e+00 -5.819062665706917e+00 -5.824023872195552e+00 -5.828991286593848e+00 - -5.833964910248241e+00 -5.838944744496904e+00 -5.843930800912663e+00 -5.848923091405570e+00 -5.853921618999967e+00 - -5.858926385866531e+00 -5.863937399646989e+00 -5.868954669511408e+00 -5.873978205272220e+00 -5.879008015280387e+00 - -5.884044101398642e+00 -5.889086466127434e+00 -5.894135121006329e+00 -5.899190077679159e+00 -5.904251339167730e+00 - -5.909318907675908e+00 -5.914392790757818e+00 -5.919472997569684e+00 -5.924559538325873e+00 -5.929652421747786e+00 - -5.934751649526802e+00 -5.939857223994977e+00 -5.944969157077114e+00 -5.950087460588470e+00 -5.955212136313389e+00 - -5.960343186070434e+00 -5.965480621845905e+00 -5.970624455737114e+00 -5.975774690117698e+00 -5.980931326619691e+00 - -5.986094373632355e+00 -5.991263841186835e+00 -5.996439739124646e+00 -6.001622075628632e+00 -6.006810852436582e+00 - -6.012006072105073e+00 -6.017207746910874e+00 -6.022415889122929e+00 -6.027630501258702e+00 -6.032851585034692e+00 - -6.038079148714933e+00 -6.043313202169935e+00 -6.048553755148549e+00 -6.053800815867540e+00 -6.059054386536941e+00 - -6.064314470164098e+00 -6.069581078952353e+00 -6.074854224823474e+00 -6.080133909377011e+00 -6.085420134277816e+00 - -6.090712911774160e+00 -6.096012254273324e+00 -6.101318164235261e+00 -6.106630643404864e+00 -6.111949700614082e+00 - -6.117275346267099e+00 -6.122607589969956e+00 -6.127946439669295e+00 -6.133291897472249e+00 -6.138643966380033e+00 - -6.144002658809652e+00 -6.149367987035877e+00 -6.154739953348771e+00 -6.160118559324411e+00 -6.165503813667637e+00 - -6.170895726810269e+00 -6.176294308963303e+00 -6.181699568610070e+00 -6.187111507544039e+00 -6.192530128394146e+00 - -6.197955443821025e+00 -6.203387466288188e+00 -6.208826197438971e+00 -6.214271638855750e+00 -6.219723802697215e+00 - -6.225182701452046e+00 -6.230648338352550e+00 -6.236120715733020e+00 -6.241599841591995e+00 -6.247085725644578e+00 - -6.252578378807894e+00 -6.258077810320607e+00 -6.263584021505486e+00 -6.269097014385768e+00 -6.274616801702433e+00 - -6.280143396389799e+00 -6.285676801437800e+00 -6.291217018848358e+00 -6.296764056615736e+00 -6.302317924554712e+00 - -6.307878633769864e+00 -6.313446193664602e+00 -6.319020605547922e+00 -6.324601871487839e+00 -6.330190004682891e+00 - -6.335785018206249e+00 -6.341386913499118e+00 -6.346995691980793e+00 -6.352611366614864e+00 -6.358233950592316e+00 - -6.363863446469443e+00 -6.369499855900457e+00 -6.375143187565898e+00 -6.380793451939097e+00 -6.386450659638202e+00 - -6.392114819555641e+00 -6.397785933536126e+00 -6.403464004233896e+00 -6.409149044588990e+00 -6.414841067513965e+00 - -6.420540075525660e+00 -6.426246070301758e+00 -6.431959060559017e+00 -6.437679056917068e+00 -6.443406070567963e+00 - -6.449140110779302e+00 -6.454881178548420e+00 -6.460629275812415e+00 -6.466384416537711e+00 -6.472146614484319e+00 - -6.477915870557313e+00 -6.483692185657911e+00 -6.489475573526882e+00 -6.495266048141532e+00 -6.501063611585819e+00 - -6.506868264986595e+00 -6.512680017535606e+00 -6.518498880384615e+00 -6.524324864460620e+00 -6.530157978732819e+00 - -6.535998224564008e+00 -6.541845604255500e+00 -6.547700131469085e+00 -6.553561819849423e+00 -6.559430671612207e+00 - -6.565306688088189e+00 -6.571189878497283e+00 -6.577080253965905e+00 -6.582977825357318e+00 -6.588882601649868e+00 - -6.594794584545345e+00 -6.600713776640095e+00 -6.606640191385222e+00 -6.612573842086468e+00 -6.618514730613387e+00 - -6.624462858757332e+00 -6.630418239433046e+00 -6.636380885778538e+00 -6.642350800701542e+00 -6.648327986279747e+00 - -6.654312451500913e+00 -6.660304207148021e+00 -6.666303264274883e+00 -6.672309632144893e+00 -6.678323312588955e+00 - -6.684344308236361e+00 -6.690372632342481e+00 -6.696408298209058e+00 -6.702451308697293e+00 -6.708501665794167e+00 - -6.714559378430309e+00 -6.720624457416141e+00 -6.726696914137652e+00 -6.732776758078630e+00 -6.738863990538500e+00 - -6.744958613795213e+00 -6.751060642225177e+00 -6.757170089911689e+00 -6.763286957667176e+00 -6.769411246357500e+00 - -6.775542970333119e+00 -6.781682144164359e+00 -6.787828769816468e+00 -6.793982848306231e+00 -6.800144389461610e+00 - -6.806313405086916e+00 -6.812489906080716e+00 -6.818673901333698e+00 -6.824865392610781e+00 -6.831064382650163e+00 - -6.837270885208925e+00 -6.843484914029985e+00 -6.849706471780753e+00 -6.855935560196301e+00 -6.862172188357874e+00 - -6.868416367348060e+00 -6.874668108908677e+00 -6.880927422841348e+00 -6.887194310527692e+00 -6.893468774218006e+00 - -6.899750828057308e+00 -6.906040486046904e+00 -6.912337749718504e+00 -6.918642620544160e+00 -6.924955112226868e+00 - -6.931275238742860e+00 -6.937603002930438e+00 -6.943938406703657e+00 -6.950281459417487e+00 -6.956632172330878e+00 - -6.962990556877839e+00 -6.969356622516854e+00 -6.975730370629293e+00 -6.982111803620415e+00 -6.988500936068168e+00 - -6.994897782349220e+00 -7.001302343862422e+00 -7.007714621896787e+00 -7.014134630279748e+00 -7.020562383120512e+00 - -7.026997883116998e+00 -7.033441132058707e+00 -7.039892139512705e+00 -7.046350916975187e+00 -7.052817475881351e+00 - -7.059291825658977e+00 -7.065773967767182e+00 -7.072263904706783e+00 -7.078761651114045e+00 -7.085267221537997e+00 - -7.091780618043302e+00 -7.098301841735545e+00 -7.104830902368316e+00 -7.111367811800725e+00 -7.117912581665987e+00 - -7.124465221496127e+00 -7.131025732644298e+00 -7.137594117517873e+00 -7.144170390919956e+00 -7.150754567380619e+00 - -7.157346647942116e+00 -7.163946633668109e+00 -7.170554539195697e+00 -7.177170379365883e+00 -7.183794156261903e+00 - -7.190425870988396e+00 -7.197065533493338e+00 -7.203713155838439e+00 -7.210368749697043e+00 -7.217032324589560e+00 - -7.223703881813015e+00 -7.230383423705708e+00 -7.237070964994412e+00 -7.243766520390449e+00 -7.250470092154861e+00 - -7.257181681552523e+00 -7.263901298313877e+00 -7.270628954301988e+00 -7.277364661444877e+00 -7.284108429522252e+00 - -7.290860259655573e+00 -7.297620154032538e+00 -7.304388127764033e+00 -7.311164195737019e+00 -7.317948359019635e+00 - -7.324740618617562e+00 -7.331540989105481e+00 -7.338349485298712e+00 -7.345166109406192e+00 -7.351990862719772e+00 - -7.358823755469352e+00 -7.365664799915581e+00 -7.372514007504119e+00 -7.379371387574386e+00 -7.386236941855793e+00 - -7.393110673113762e+00 -7.399992595867711e+00 -7.406882724521767e+00 -7.413781061264927e+00 -7.420687607444220e+00 - -7.427602373253923e+00 -7.434525370953283e+00 -7.441456612214240e+00 -7.448396106579596e+00 -7.455343855662903e+00 - -7.462299862106879e+00 -7.469264140600134e+00 -7.476236705537742e+00 -7.483217558094771e+00 -7.490206699573982e+00 - -7.497204145008848e+00 -7.504209909607961e+00 -7.511223995549668e+00 -7.518246403916826e+00 -7.525277144440522e+00 - -7.532316229110418e+00 -7.539363670302306e+00 -7.546419478207750e+00 -7.553483653895294e+00 -7.560556199398457e+00 - -7.567637129733686e+00 -7.574726459966183e+00 -7.581824192373288e+00 -7.588930328179804e+00 -7.596044877188221e+00 - -7.603167851392376e+00 -7.610299262973792e+00 -7.617439121971403e+00 -7.624587429666054e+00 -7.631744188388593e+00 - -7.638909413427992e+00 -7.646083119762239e+00 -7.653265308167305e+00 -7.660455979470388e+00 -7.667655148905554e+00 - -7.674862831955687e+00 -7.682079030692125e+00 -7.689303746121935e+00 -7.696536988406601e+00 -7.703778769965018e+00 - -7.711029103091334e+00 -7.718287997777487e+00 -7.725555454931286e+00 -7.732831476489904e+00 -7.740116077592081e+00 - -7.747409273463959e+00 -7.754711066479733e+00 -7.762021457991705e+00 -7.769340458116517e+00 -7.776668079072852e+00 - -7.784004332723263e+00 -7.791349228774319e+00 -7.798702768664788e+00 -7.806064954991001e+00 -7.813435803247359e+00 - -7.820815328504128e+00 -7.828203531237023e+00 -7.835600412067597e+00 -7.843005986795347e+00 -7.850420271453628e+00 - -7.857843267833355e+00 -7.865274976500961e+00 -7.872715407367362e+00 -7.880164572827870e+00 -7.887622485870939e+00 - -7.895089157097287e+00 -7.902564586963549e+00 -7.910048776908389e+00 -7.917541742442640e+00 -7.925043499243823e+00 - -7.932554049584044e+00 -7.940073394568305e+00 -7.947601544038569e+00 -7.955138510136092e+00 -7.962684305462377e+00 - -7.970238940357911e+00 -7.977802415658878e+00 -7.985374733292938e+00 -7.992955909057959e+00 -8.000545958501995e+00 - -8.008144882303682e+00 -8.015752681155906e+00 -8.023369370677967e+00 -8.030994966700497e+00 -8.038629470973136e+00 - -8.046272884117311e+00 -8.053925216322545e+00 -8.061586480220186e+00 -8.069256688640843e+00 -8.076935852017314e+00 - -8.084623970991846e+00 -8.092321047230506e+00 -8.100027096285098e+00 -8.107742133772728e+00 -8.115466161685978e+00 - -8.123199180963685e+00 -8.130941201954130e+00 -8.138692237272345e+00 -8.146452299190864e+00 -8.154221397655556e+00 - -8.161999533648068e+00 -8.169786709369063e+00 -8.177582940859525e+00 -8.185388243772254e+00 -8.193202618367051e+00 - -8.201026064968486e+00 -8.208858599553158e+00 -8.216700238370747e+00 -8.224550983111227e+00 -8.232410834288519e+00 - -8.240279802271914e+00 -8.248157899820946e+00 -8.256045139400785e+00 -8.263941531127587e+00 -8.271847076015916e+00 - -8.279761776165609e+00 -8.287685647119202e+00 -8.295618704371698e+00 -8.303560949785306e+00 -8.311512384182917e+00 - -8.319473017862927e+00 -8.327442863513763e+00 -8.335421933908444e+00 -8.343410239406900e+00 -8.351407780632112e+00 - -8.359414559352070e+00 -8.367430591651793e+00 -8.375455893292965e+00 -8.383490464426892e+00 -8.391534305333888e+00 - -8.399587432420665e+00 -8.407649862295598e+00 -8.415721596247392e+00 -8.423802634359653e+00 -8.431892987215194e+00 - -8.439992667917126e+00 -8.448101689150496e+00 -8.456220061058572e+00 -8.464347784035521e+00 -8.472484859778373e+00 - -8.480631304944675e+00 -8.488787135775029e+00 -8.496952351881781e+00 -8.505126952972617e+00 -8.513310955764712e+00 - -8.521504377280520e+00 -8.529707218754108e+00 -8.537919480083488e+00 -8.546141171610756e+00 -8.554372306334406e+00 - -8.562612897434500e+00 -8.570862955488629e+00 -8.579122480482935e+00 -8.587391473585072e+00 -8.595669951280222e+00 - -8.603957930092136e+00 -8.612255411381385e+00 -8.620562395277888e+00 -8.628878892152137e+00 -8.637204914976417e+00 - -8.645540476889700e+00 -8.653885588365707e+00 -8.662240249050400e+00 -8.670604460002718e+00 -8.678978238761259e+00 - -8.687361602440037e+00 -8.695754549975142e+00 -8.704157080317993e+00 -8.712569210659231e+00 -8.720990958572770e+00 - -8.729422324926496e+00 -8.737863309144757e+00 -8.746313921583734e+00 -8.754774175423437e+00 -8.763244084207386e+00 - -8.771723658743657e+00 -8.780212898534927e+00 -8.788711804325507e+00 -8.797220393131562e+00 -8.805738681960509e+00 - -8.814266671512945e+00 -8.822804361262596e+00 -8.831351762082482e+00 -8.839908887544672e+00 -8.848475750618142e+00 - -8.857052361519681e+00 -8.865638720060298e+00 -8.874234827408518e+00 -8.882840700568694e+00 -8.891456356239988e+00 - -8.900081794065120e+00 -8.908717013654563e+00 -8.917362031546196e+00 -8.926016864607513e+00 -8.934681514097109e+00 - -8.943355979966887e+00 -8.952040272550780e+00 -8.960734404827180e+00 -8.969438389970174e+00 -8.978152238557112e+00 - -8.986875950582608e+00 -8.995609527224275e+00 -9.004352984974421e+00 -9.013106340348738e+00 -9.021869594641789e+00 - -9.030642747850949e+00 -9.039425810005964e+00 -9.048218793898496e+00 -9.057021713335553e+00 -9.065834579375275e+00 - -9.074657391064932e+00 -9.083490148798390e+00 -9.092332870366718e+00 -9.101185573233034e+00 -9.110048256151465e+00 - -9.118920917820537e+00 -9.127803575425368e+00 -9.136696246597257e+00 -9.145598932265708e+00 -9.154511631860180e+00 - -9.163434355511646e+00 -9.172367116215408e+00 -9.181309927722621e+00 -9.190262801063124e+00 -9.199225735625708e+00 - -9.208198731948572e+00 -9.217181806808554e+00 -9.226174977077383e+00 -9.235178243767663e+00 -9.244191606592038e+00 - -9.253215075922315e+00 -9.262248664894432e+00 -9.271292387041701e+00 -9.280346253080740e+00 -9.289410262064051e+00 - -9.298484414471314e+00 -9.307568728155069e+00 -9.316663220573421e+00 -9.325767890233902e+00 -9.334882735648362e+00 - -9.344007774296474e+00 -9.353143024056331e+00 -9.362288485431986e+00 -9.371444157433135e+00 -9.380610050466057e+00 - -9.389786177888119e+00 -9.398972553464475e+00 -9.408169188076664e+00 -9.417376080663951e+00 -9.426593231436920e+00 - -9.435820657633688e+00 -9.445058376575700e+00 -9.454306388890288e+00 -9.463564693828612e+00 -9.472833301831271e+00 - -9.482112226230582e+00 -9.491401480736307e+00 -9.500701076124317e+00 -9.510011011057383e+00 -9.519331285649606e+00 - -9.528661917933491e+00 -9.538002925632075e+00 -9.547354307312132e+00 -9.556716061430350e+00 -9.566088205159264e+00 - -9.575470756067922e+00 -9.584863714595665e+00 -9.594267079809105e+00 -9.603680862413734e+00 -9.613105076017005e+00 - -9.622539734195460e+00 -9.631984847535897e+00 -9.641440414697058e+00 -9.650906435763309e+00 -9.660382928449559e+00 - -9.669869910482992e+00 -9.679367382009378e+00 -9.688875341677877e+00 -9.698393799732578e+00 -9.707922769547205e+00 - -9.717462265419133e+00 -9.727012298576232e+00 -9.736572867044643e+00 -9.746143970285512e+00 -9.755725626701739e+00 - -9.765317854403191e+00 -9.774920651385886e+00 -9.784534015610914e+00 -9.794157965013451e+00 -9.803792517858509e+00 - -9.813437673756464e+00 -9.823093430886084e+00 -9.832759800354408e+00 -9.842436796281985e+00 -9.852124431915341e+00 - -9.861822717446652e+00 -9.871531651724764e+00 -9.881251235098006e+00 -9.890981485255914e+00 -9.900722419735771e+00 - -9.910474038124631e+00 -9.920236338721825e+00 -9.930009332625946e+00 -9.939793033953066e+00 -9.949587456089942e+00 - -9.959392609292857e+00 -9.969208492025555e+00 -9.979035104343238e+00 -9.988872464459540e+00 -9.998720590171930e+00 - -1.000857947945488e+01 -1.001844913033355e+01 -1.002832956085879e+01 -1.003822078906736e+01 -1.004812281291406e+01 - -1.005803562971182e+01 -1.006795925428782e+01 -1.007789370360111e+01 -1.008783898562387e+01 -1.009779510571246e+01 - -1.010776206774677e+01 -1.011773987740720e+01 -1.012772854905251e+01 -1.013772809631413e+01 -1.014773852123577e+01 - -1.015775982444731e+01 -1.016779201251112e+01 -1.017783509576905e+01 -1.018788909374848e+01 -1.019795402262726e+01 - -1.020802987599985e+01 -1.021811664796306e+01 -1.022821435720666e+01 -1.023832302389762e+01 -1.024844264951883e+01 - -1.025857323411911e+01 -1.026871479069502e+01 -1.027886733277511e+01 -1.028903086306819e+01 -1.029920538356622e+01 - -1.030939090421369e+01 -1.031958743714735e+01 -1.032979499532081e+01 -1.034001358910991e+01 -1.035024321776280e+01 - -1.036048388191000e+01 -1.037073559883907e+01 -1.038099838556339e+01 -1.039127224134250e+01 -1.040155716512729e+01 - -1.041185317238784e+01 -1.042216027887615e+01 -1.043247848495290e+01 -1.044280779013644e+01 -1.045314820596725e+01 - -1.046349974688984e+01 -1.047386242694284e+01 -1.048423625623699e+01 -1.049462122957744e+01 -1.050501734396915e+01 - -1.051542462052187e+01 -1.052584308069211e+01 -1.053627272321853e+01 -1.054671354447971e+01 -1.055716555413174e+01 - -1.056762876571201e+01 -1.057810319500591e+01 -1.058858885406686e+01 -1.059908573777257e+01 -1.060959384260205e+01 - -1.062011318861535e+01 -1.063064379594653e+01 -1.064118566144451e+01 -1.065173878128750e+01 -1.066230317225584e+01 - -1.067287885251234e+01 -1.068346582514766e+01 -1.069406409086973e+01 -1.070467365592747e+01 -1.071529452946521e+01 - -1.072592672666786e+01 -1.073657026057826e+01 -1.074722512963040e+01 -1.075789133336255e+01 -1.076856889033910e+01 - -1.077925781838790e+01 -1.078995811336476e+01 -1.080066977044343e+01 -1.081139280404170e+01 -1.082212723175914e+01 - -1.083287306467895e+01 -1.084363031023443e+01 -1.085439896777578e+01 -1.086517903841335e+01 -1.087597053838113e+01 - -1.088677348334085e+01 -1.089758787154147e+01 -1.090841370173705e+01 -1.091925099211483e+01 -1.093009976068779e+01 - -1.094096000533889e+01 -1.095183172286895e+01 -1.096271492588021e+01 -1.097360962990334e+01 -1.098451584638146e+01 - -1.099543358339704e+01 -1.100636283967740e+01 -1.101730361593110e+01 -1.102825593014644e+01 -1.103921979985815e+01 - -1.105019522350652e+01 -1.106118219809120e+01 -1.107218073394329e+01 -1.108319084475604e+01 -1.109421254433972e+01 - -1.110524584310812e+01 -1.111629073777213e+01 -1.112734722664297e+01 -1.113841532813614e+01 -1.114949506055284e+01 - -1.116058642163307e+01 -1.117168940919924e+01 -1.118280404196459e+01 -1.119393033845125e+01 -1.120506829552628e+01 - -1.121621790821428e+01 -1.122737918582522e+01 -1.123855214233318e+01 -1.124973679608346e+01 -1.126093316109601e+01 - -1.127214122971816e+01 -1.128336099568353e+01 -1.129459247994368e+01 -1.130583570391351e+01 -1.131709066364352e+01 - -1.132835735316995e+01 -1.133963578383626e+01 -1.135092597165251e+01 -1.136222793398803e+01 -1.137354168289046e+01 - -1.138486720776133e+01 -1.139620450077960e+01 -1.140755358788016e+01 -1.141891449467379e+01 -1.143028721171902e+01 - -1.144167172931863e+01 -1.145306807180483e+01 -1.146447626363145e+01 -1.147589629570943e+01 -1.148732815744427e+01 - -1.149877186576219e+01 -1.151022744176966e+01 -1.152169489577362e+01 -1.153317423307527e+01 -1.154466544975234e+01 - -1.155616854500299e+01 -1.156768353973055e+01 -1.157921045411968e+01 -1.159074928377541e+01 -1.160230002278200e+01 - -1.161386268372032e+01 -1.162543728297182e+01 -1.163702383362365e+01 -1.164862234413445e+01 -1.166023280774309e+01 - -1.167185522083641e+01 -1.168348960761297e+01 -1.169513599109641e+01 -1.170679436179895e+01 -1.171846471050954e+01 - -1.173014706163534e+01 -1.174184143967664e+01 -1.175354783588804e+01 -1.176526623959987e+01 -1.177699666569085e+01 - -1.178873913359907e+01 -1.180049365545172e+01 -1.181226023874721e+01 -1.182403887977966e+01 -1.183582957710202e+01 - -1.184763234950681e+01 -1.185944721571250e+01 -1.187127417390187e+01 -1.188311322026980e+01 -1.189496436359524e+01 - -1.190682761635663e+01 -1.191870299324639e+01 -1.193059050542573e+01 -1.194249014771712e+01 -1.195440191732676e+01 - -1.196632583733436e+01 -1.197826192918009e+01 -1.199021018187259e+01 -1.200217058481946e+01 -1.201414316145583e+01 - -1.202612793653577e+01 -1.203812490606177e+01 -1.205013406283600e+01 -1.206215541561094e+01 -1.207418897775090e+01 - -1.208623476511758e+01 -1.209829279023755e+01 -1.211036304979982e+01 -1.212244554104682e+01 -1.213454027927224e+01 - -1.214664728029985e+01 -1.215876654402256e+01 -1.217089806888390e+01 -1.218304186346073e+01 -1.219519793969503e+01 - -1.220736631285608e+01 -1.221954699446002e+01 -1.223173997768314e+01 -1.224394525782826e+01 -1.225616285704409e+01 - -1.226839279716718e+01 -1.228063507193962e+01 -1.229288967419984e+01 -1.230515662126608e+01 -1.231743593190913e+01 - -1.232972760623024e+01 -1.234203164189830e+01 -1.235434804552219e+01 -1.236667682754052e+01 -1.237901800477097e+01 - -1.239137159078778e+01 -1.240373757981251e+01 -1.241611596680448e+01 -1.242850676902663e+01 -1.244091000477032e+01 - -1.245332567413717e+01 -1.246575377485128e+01 -1.247819431331654e+01 -1.249064729993889e+01 -1.250311275245252e+01 - -1.251559068470151e+01 -1.252808108764087e+01 -1.254058395403090e+01 -1.255309930674196e+01 -1.256562716858205e+01 - -1.257816753199971e+01 -1.259072038911156e+01 -1.260328576106586e+01 -1.261586366917709e+01 -1.262845410639316e+01 - -1.264105706405277e+01 -1.265367255542431e+01 -1.266630059802175e+01 -1.267894120441173e+01 -1.269159438291520e+01 - -1.270426012981745e+01 -1.271693844300063e+01 -1.272962933876972e+01 -1.274233283335257e+01 -1.275504892424538e+01 - -1.276777760888006e+01 -1.278051890316245e+01 -1.279327282335948e+01 -1.280603936870822e+01 -1.281881853703964e+01 - -1.283161033759003e+01 -1.284441478278821e+01 -1.285723188642777e+01 -1.287006165845383e+01 -1.288290409205257e+01 - -1.289575918258311e+01 -1.290862695085492e+01 -1.292150741744502e+01 -1.293440057655018e+01 -1.294730642109768e+01 - -1.296022496531707e+01 -1.297315622664438e+01 -1.298610021403966e+01 -1.299905693252094e+01 -1.301202637981436e+01 - -1.302500855607946e+01 -1.303800347850134e+01 -1.305101116311717e+01 -1.306403160434687e+01 -1.307706479749205e+01 - -1.309011076299821e+01 -1.310316952145874e+01 -1.311624106891474e+01 -1.312932539865738e+01 -1.314242251753035e+01 - -1.315553243732881e+01 -1.316865517610136e+01 -1.318179074759510e+01 -1.319493914209791e+01 -1.320810035188408e+01 - -1.322127440063306e+01 -1.323446131182036e+01 -1.324766107670098e+01 -1.326087368408213e+01 -1.327409914520021e+01 - -1.328733747660298e+01 -1.330058869365459e+01 -1.331385280702646e+01 -1.332712980980294e+01 -1.334041969690924e+01 - -1.335372248822127e+01 -1.336703820316815e+01 -1.338036683444133e+01 -1.339370837465144e+01 -1.340706284282357e+01 - -1.342043025877972e+01 -1.343381061911550e+01 -1.344720391854233e+01 -1.346061016746156e+01 -1.347402937953320e+01 - -1.348746156576247e+01 -1.350090673400032e+01 -1.351436488213541e+01 -1.352783600940468e+01 -1.354132013040003e+01 - -1.355481725974633e+01 -1.356832739684519e+01 -1.358185053959114e+01 -1.359538669507347e+01 -1.360893587411229e+01 - -1.362249809325635e+01 -1.363607336498644e+01 -1.364966167978290e+01 -1.366326303005515e+01 -1.367687743792930e+01 - -1.369050492543861e+01 -1.370414548452841e+01 -1.371779910680898e+01 -1.373146581263829e+01 -1.374514562258463e+01 - -1.375883852931014e+01 -1.377254452369323e+01 -1.378626361738342e+01 -1.379999582664259e+01 -1.381374116541099e+01 - -1.382749964295472e+01 -1.384127125216480e+01 -1.385505598801133e+01 -1.386885387015567e+01 -1.388266491822051e+01 - -1.389648912698253e+01 -1.391032648926665e+01 -1.392417701493663e+01 -1.393804071810552e+01 -1.395191761284479e+01 - -1.396580770902492e+01 -1.397971099975399e+01 -1.399362747983656e+01 -1.400755716762526e+01 -1.402150008127576e+01 - -1.403545621460787e+01 -1.404942556175519e+01 -1.406340814244217e+01 -1.407740397661280e+01 -1.409141305949836e+01 - -1.410543538386059e+01 -1.411947095729565e+01 -1.413351979216372e+01 -1.414758190504674e+01 -1.416165730817942e+01 - -1.417574599218579e+01 -1.418984794931155e+01 -1.420396319989974e+01 -1.421809176459019e+01 -1.423223363711269e+01 - -1.424638880961032e+01 -1.426055729478944e+01 -1.427473910897708e+01 -1.428893426241975e+01 -1.430314276106135e+01 - -1.431736459971596e+01 -1.433159977568000e+01 -1.434584830730895e+01 -1.436011021230267e+01 -1.437438548467938e+01 - -1.438867411856965e+01 -1.440297613223502e+01 -1.441729154417122e+01 -1.443162034967981e+01 -1.444596254173529e+01 - -1.446031812719803e+01 -1.447468711827448e+01 -1.448906953466952e+01 -1.450346539077074e+01 -1.451787467219810e+01 - -1.453229736674074e+01 -1.454673349963205e+01 -1.456118309651608e+01 -1.457564614723534e+01 -1.459012263904241e+01 - -1.460461258463169e+01 -1.461911600163362e+01 -1.463363290198108e+01 -1.464816329304780e+01 -1.466270716966852e+01 - -1.467726452861927e+01 -1.469183538698022e+01 -1.470641976118071e+01 -1.472101764474266e+01 -1.473562903182180e+01 - -1.475025394201659e+01 -1.476489239431922e+01 -1.477954437985420e+01 -1.479420988900897e+01 -1.480888893709030e+01 - -1.482358154289730e+01 -1.483828771427918e+01 -1.485300745484606e+01 -1.486774076220148e+01 -1.488248763590571e+01 - -1.489724808935241e+01 -1.491202213620220e+01 -1.492680977735018e+01 -1.494161101188853e+01 -1.495642584446314e+01 - -1.497125428281713e+01 -1.498609634152866e+01 -1.500095203243959e+01 -1.501582134961145e+01 -1.503070428834008e+01 - -1.504560086663885e+01 -1.506051110171047e+01 -1.507543498479744e+01 -1.509037250787217e+01 -1.510532369178669e+01 - -1.512028855781273e+01 -1.513526710002122e+01 -1.515025931004586e+01 -1.516526519697226e+01 -1.518028477406786e+01 - -1.519531805387558e+01 -1.521036504514735e+01 -1.522542574219565e+01 -1.524050014105165e+01 -1.525558825906066e+01 - -1.527069011317451e+01 -1.528580569745696e+01 -1.530093500454836e+01 -1.531607804428359e+01 -1.533123483115148e+01 - -1.534640538106230e+01 -1.536158970459035e+01 -1.537678778954449e+01 -1.539199962605270e+01 -1.540722523628471e+01 - -1.542246464244602e+01 -1.543771783484346e+01 -1.545298480379291e+01 -1.546826557154514e+01 -1.548356016030771e+01 - -1.549886856018057e+01 -1.551419075889859e+01 -1.552952676684366e+01 -1.554487659991805e+01 -1.556024027345857e+01 - -1.557561779759322e+01 -1.559100916218038e+01 -1.560641435912106e+01 -1.562183340875659e+01 -1.563726633124305e+01 - -1.565271311755539e+01 -1.566817375858786e+01 -1.568364827409284e+01 -1.569913668435983e+01 -1.571463898296877e+01 - -1.573015516140282e+01 -1.574568522946743e+01 -1.576122920078429e+01 -1.577678708591764e+01 -1.579235889192325e+01 - -1.580794461488044e+01 -1.582354425266206e+01 -1.583915782129173e+01 -1.585478533595468e+01 -1.587042679033195e+01 - -1.588608217713541e+01 -1.590175150670428e+01 -1.591743479377280e+01 -1.593313205302798e+01 -1.594884329356461e+01 - -1.596456850215542e+01 -1.598030766876410e+01 -1.599606081844003e+01 -1.601182797567503e+01 -1.602760912764517e+01 - -1.604340426053651e+01 -1.605921339389068e+01 -1.607503654929621e+01 -1.609087372317365e+01 -1.610672490846679e+01 - -1.612259010938000e+01 -1.613846933535691e+01 -1.615436260553746e+01 -1.617026993400350e+01 -1.618619130490810e+01 - -1.620212670496088e+01 -1.621807616102629e+01 -1.623403970021593e+01 -1.625001731047507e+01 -1.626600897617460e+01 - -1.628201470655392e+01 -1.629803451699528e+01 -1.631406842258372e+01 -1.633011643368945e+01 -1.634617854212047e+01 - -1.636225474110459e+01 -1.637834504811086e+01 -1.639444948009596e+01 -1.641056802772599e+01 -1.642670068226715e+01 - -1.644284746367691e+01 -1.645900839255391e+01 -1.647518346337059e+01 -1.649137266740475e+01 -1.650757600928198e+01 - -1.652379349905581e+01 -1.654002515514406e+01 -1.655627099138395e+01 -1.657253099492616e+01 -1.658880515436409e+01 - -1.660509349074862e+01 -1.662139602569388e+01 -1.663771275060954e+01 -1.665404365442992e+01 -1.667038874639235e+01 - -1.668674804082613e+01 -1.670312155212567e+01 -1.671950928959044e+01 -1.673591124207530e+01 -1.675232740091000e+01 - -1.676875778776886e+01 -1.678520242381186e+01 -1.680166129779755e+01 -1.681813439803682e+01 -1.683462174345131e+01 - -1.685112335404732e+01 -1.686763922355921e+01 -1.688416934305047e+01 -1.690071371917313e+01 -1.691727236387981e+01 - -1.693384529473730e+01 -1.695043252373442e+01 -1.696703403493436e+01 -1.698364981519248e+01 -1.700027989045860e+01 - -1.701692428668450e+01 -1.703358299073511e+01 -1.705025598664567e+01 -1.706694328621936e+01 -1.708364490699094e+01 - -1.710036086165371e+01 -1.711709115711999e+01 -1.713383578201967e+01 -1.715059472804424e+01 -1.716736801741393e+01 - -1.718415567151382e+01 -1.720095767785962e+01 -1.721777402421613e+01 -1.723460473321376e+01 -1.725144982735173e+01 - -1.726830929373925e+01 -1.728518311723097e+01 -1.730207130905323e+01 -1.731897388644410e+01 -1.733589086431708e+01 - -1.735282225151622e+01 -1.736976803493245e+01 -1.738672820398455e+01 -1.740370278015603e+01 -1.742069178532102e+01 - -1.743769521085149e+01 -1.745471304524893e+01 -1.747174529603476e+01 -1.748879197614670e+01 -1.750585310116775e+01 - -1.752292868122209e+01 -1.754001870195336e+01 -1.755712315207324e+01 -1.757424205704595e+01 -1.759137544124289e+01 - -1.760852328791187e+01 -1.762568558032359e+01 -1.764286234296404e+01 -1.766005360135051e+01 -1.767725934391039e+01 - -1.769447955614261e+01 -1.771171424892207e+01 -1.772896343807829e+01 -1.774622713388326e+01 -1.776350534196338e+01 - -1.778079805492016e+01 -1.779810526797336e+01 -1.781542699984077e+01 -1.783276326793605e+01 -1.785011406095838e+01 - -1.786747936642481e+01 -1.788485919583838e+01 -1.790225356596892e+01 -1.791966249066770e+01 -1.793708597750879e+01 - -1.795452401187612e+01 -1.797197658287230e+01 -1.798944371666477e+01 -1.800692543788475e+01 -1.802442172795408e+01 - -1.804193256819016e+01 -1.805945798270200e+01 -1.807699799758296e+01 -1.809455260407236e+01 -1.811212178929598e+01 - -1.812970555877947e+01 -1.814730392419934e+01 -1.816491690343573e+01 -1.818254450889657e+01 -1.820018672489731e+01 - -1.821784353770839e+01 -1.823551496951270e+01 -1.825320104351004e+01 -1.827090175105552e+01 -1.828861707995103e+01 - -1.830634703563002e+01 -1.832409162961503e+01 -1.834185088015348e+01 -1.835962479982180e+01 -1.837741337178776e+01 - -1.839521658191638e+01 -1.841303445627024e+01 -1.843086702044687e+01 -1.844871425798603e+01 -1.846657615155986e+01 - -1.848445272242748e+01 -1.850234399331442e+01 -1.852024995422484e+01 -1.853817059263430e+01 -1.855610591862525e+01 - -1.857405594751762e+01 -1.859202069297440e+01 -1.861000016303027e+01 -1.862799434486363e+01 -1.864600322762024e+01 - -1.866402682917165e+01 -1.868206516860479e+01 -1.870011824114266e+01 -1.871818603889838e+01 -1.873626856540951e+01 - -1.875436582948875e+01 -1.877247784962497e+01 -1.879060463922456e+01 -1.880874618168810e+01 -1.882690246254704e+01 - -1.884507350586227e+01 -1.886325933574866e+01 -1.888145993800745e+01 -1.889967529731236e+01 -1.891790543214035e+01 - -1.893615036295555e+01 -1.895441008436764e+01 -1.897268458788422e+01 -1.899097387845919e+01 -1.900927796546465e+01 - -1.902759686249918e+01 -1.904593057916082e+01 -1.906427910481893e+01 -1.908264243109121e+01 -1.910102057881749e+01 - -1.911941356739387e+01 -1.913782138121961e+01 -1.915624400568942e+01 -1.917468146517671e+01 -1.919313378404767e+01 - -1.921160094766128e+01 -1.923008293912871e+01 -1.924857977157690e+01 -1.926709146357444e+01 -1.928561802544077e+01 - -1.930415946120927e+01 -1.932271575801813e+01 -1.934128690695999e+01 -1.935987293184044e+01 -1.937847385553680e+01 - -1.939708966450047e+01 -1.941572034241033e+01 -1.943436589828115e+01 -1.945302634705033e+01 -1.947170170200994e+01 - -1.949039197138318e+01 -1.950909714476303e+01 -1.952781721398065e+01 -1.954655219845012e+01 -1.956530211609402e+01 - -1.958406695128608e+01 -1.960284668959667e+01 -1.962164135493148e+01 -1.964045097168231e+01 -1.965927552785040e+01 - -1.967811500826448e+01 -1.969696942145404e+01 -1.971583878200212e+01 -1.973472310500559e+01 -1.975362239928199e+01 - -1.977253664801789e+01 -1.979146583743514e+01 -1.981040999152762e+01 -1.982936913462439e+01 -1.984834325462312e+01 - -1.986733233626431e+01 -1.988633638809098e+01 -1.990535542475069e+01 -1.992438946150660e+01 -1.994343850724086e+01 - -1.996250254469571e+01 -1.998158155988759e+01 -2.000067557806942e+01 -2.001978462401460e+01 -2.003890868134189e+01 - -2.005804773353269e+01 -2.007720180467363e+01 -2.009637091866160e+01 -2.011555505802958e+01 -2.013475420367532e+01 - -2.015396837131929e+01 -2.017319758216888e+01 -2.019244184455664e+01 -2.021170116029698e+01 -2.023097551800653e+01 - -2.025026491057744e+01 -2.026956936120177e+01 -2.028888889127859e+01 -2.030822348473533e+01 -2.032757312336421e+01 - -2.034693781788847e+01 -2.036631758558183e+01 -2.038571244098909e+01 -2.040512239225047e+01 -2.042454742461679e+01 - -2.044398752597867e+01 -2.046344271767523e+01 -2.048291302072143e+01 -2.050239842138679e+01 -2.052189890581644e+01 - -2.054141449440303e+01 -2.056094520839277e+01 -2.058049103819856e+01 -2.060005197091200e+01 -2.061962801117254e+01 - -2.063921916971323e+01 -2.065882546409381e+01 -2.067844690614864e+01 -2.069808347798381e+01 -2.071773516441981e+01 - -2.073740199086278e+01 -2.075708398272239e+01 -2.077678112483692e+01 -2.079649339928443e+01 -2.081622081767353e+01 - -2.083596339752241e+01 -2.085572115045732e+01 -2.087549408142252e+01 -2.089528217452614e+01 -2.091508541798258e+01 - -2.093490383726751e+01 -2.095473745703866e+01 -2.097458626142068e+01 -2.099445023367205e+01 -2.101432939411960e+01 - -2.103422376365449e+01 -2.105413332835716e+01 -2.107405807288499e+01 -2.109399801101360e+01 -2.111395316146354e+01 - -2.113392353361706e+01 -2.115390913036233e+01 -2.117390993794961e+01 -2.119392594678185e+01 -2.121395718051052e+01 - -2.123400366165125e+01 -2.125406537492771e+01 -2.127414230292253e+01 -2.129423445744600e+01 -2.131434185603574e+01 - -2.133446450991120e+01 -2.135460242400538e+01 -2.137475558442359e+01 -2.139492398094176e+01 -2.141510763684612e+01 - -2.143530657354728e+01 -2.145552077144329e+01 -2.147575021223202e+01 -2.149599492382317e+01 -2.151625493458459e+01 - -2.153653022850520e+01 -2.155682078515937e+01 -2.157712661084235e+01 -2.159744772002078e+01 -2.161778413312624e+01 - -2.163813586321833e+01 -2.165850288790379e+01 -2.167888518769065e+01 -2.169928279014487e+01 -2.171969572392566e+01 - -2.174012397500749e+01 -2.176056752455845e+01 -2.178102637720577e+01 -2.180150054539059e+01 -2.182199004935065e+01 - -2.184249490264348e+01 -2.186301508430896e+01 -2.188355057625899e+01 -2.190410140641098e+01 -2.192466760199104e+01 - -2.194524914145450e+01 -2.196584600311797e+01 -2.198645821351363e+01 -2.200708580045210e+01 -2.202772874864248e+01 - -2.204838703903658e+01 -2.206906068065864e+01 -2.208974968965916e+01 -2.211045408262128e+01 -2.213117386881762e+01 - -2.215190902784613e+01 -2.217265954271720e+01 -2.219342543976576e+01 -2.221420674565993e+01 -2.223500344507609e+01 - -2.225581551916326e+01 -2.227664297695268e+01 -2.229748583458740e+01 -2.231834410877561e+01 -2.233921780886325e+01 - -2.236010691418214e+01 -2.238101140757746e+01 -2.240193131596196e+01 -2.242286666626994e+01 -2.244381744145418e+01 - -2.246478362333585e+01 -2.248576523319086e+01 -2.250676229308250e+01 -2.252777478876882e+01 -2.254880270395783e+01 - -2.256984605046237e+01 -2.259090484578745e+01 -2.261197910210208e+01 -2.263306882483333e+01 -2.265417399777652e+01 - -2.267529460825966e+01 -2.269643067937303e+01 -2.271758223358744e+01 -2.273874925513337e+01 -2.275993172840441e+01 - -2.278112967668665e+01 -2.280234312326570e+01 -2.282357205253301e+01 -2.284481644618636e+01 -2.286607631404299e+01 - -2.288735167241803e+01 -2.290864253549898e+01 -2.292994891082159e+01 -2.295127078144212e+01 -2.297260813386354e+01 - -2.299396099285480e+01 -2.301532938287575e+01 -2.303671328888409e+01 -2.305811269234469e+01 -2.307952760025338e+01 - -2.310095802706863e+01 -2.312240399156859e+01 -2.314386550544134e+01 -2.316534254769484e+01 -2.318683510020089e+01 - -2.320834318896662e+01 -2.322986684000025e+01 -2.325140603517923e+01 -2.327296075598023e+01 -2.329453102640753e+01 - -2.331611687084991e+01 -2.333771827270656e+01 -2.335933521295700e+01 -2.338096770389138e+01 -2.340261576396985e+01 - -2.342427940502197e+01 -2.344595863230511e+01 -2.346765343141823e+01 -2.348936379112492e+01 -2.351108973250527e+01 - -2.353283127622654e+01 -2.355458840898814e+01 -2.357636111469370e+01 -2.359814940003157e+01 -2.361995327887107e+01 - -2.364177277102066e+01 -2.366360788867084e+01 -2.368545860760097e+01 -2.370732490730504e+01 -2.372920681854641e+01 - -2.375110437181196e+01 -2.377301754521346e+01 -2.379494631547129e+01 -2.381689070611525e+01 -2.383885074279985e+01 - -2.386082641286912e+01 -2.388281770027697e+01 -2.390482461372720e+01 -2.392684716763744e+01 -2.394888537453080e+01 - -2.397093924094647e+01 -2.399300875138237e+01 -2.401509389381072e+01 -2.403719469214220e+01 -2.405931116939521e+01 - -2.408144330908079e+01 -2.410359109227195e+01 -2.412575452979684e+01 -2.414793363861520e+01 -2.417012843045825e+01 - -2.419233891107258e+01 -2.421456506749473e+01 -2.423680688969797e+01 -2.425906439811232e+01 -2.428133761196757e+01 - -2.430362651523593e+01 -2.432593109247103e+01 -2.434825136580965e+01 -2.437058735754595e+01 -2.439293905302052e+01 - -2.441530643508021e+01 -2.443768951355032e+01 -2.446008830475372e+01 -2.448250282402539e+01 -2.450493307947941e+01 - -2.452737905133441e+01 -2.454984072340254e+01 -2.457231812176549e+01 -2.459481127247106e+01 -2.461732015916192e+01 - -2.463984476198997e+01 -2.466238508954903e+01 -2.468494115731883e+01 -2.470751297988127e+01 -2.473010056541401e+01 - -2.475270389737600e+01 -2.477532296279144e+01 -2.479795778766421e+01 -2.482060839605179e+01 -2.484327476524651e+01 - -2.486595687297807e+01 -2.488865474549064e+01 -2.491136841050829e+01 -2.493409785316058e+01 -2.495684305468689e+01 - -2.497960402336061e+01 -2.500238077436705e+01 -2.502517332350563e+01 -2.504798167938967e+01 -2.507080582127416e+01 - -2.509364573240812e+01 -2.511650144137505e+01 -2.513937297643642e+01 -2.516226031923135e+01 -2.518516344740990e+01 - -2.520808236928804e+01 -2.523101710100030e+01 -2.525396765928963e+01 -2.527693405405919e+01 -2.529991626724470e+01 - -2.532291428361040e+01 -2.534592812720204e+01 -2.536895782110043e+01 -2.539200334524508e+01 -2.541506468057373e+01 - -2.543814185515816e+01 -2.546123489657537e+01 -2.548434378328921e+01 -2.550746849096137e+01 -2.553060903315797e+01 - -2.555376543163097e+01 -2.557693770297151e+01 -2.560012585444837e+01 -2.562332986120158e+01 -2.564654970308929e+01 - -2.566978541097076e+01 -2.569303701597250e+01 -2.571630449928904e+01 -2.573958783754457e+01 -2.576288703901380e+01 - -2.578620212017663e+01 -2.580953309868325e+01 -2.583287998467666e+01 -2.585624275710073e+01 -2.587962139846310e+01 - -2.590301593672573e+01 -2.592642639921134e+01 -2.594985276523152e+01 -2.597329501305775e+01 -2.599675316481207e+01 - -2.602022724494944e+01 -2.604371724340627e+01 -2.606722314554395e+01 -2.609074495294231e+01 -2.611428267453130e+01 - -2.613783633242288e+01 -2.616140594232113e+01 -2.618499148111656e+01 -2.620859292804694e+01 -2.623221031055255e+01 - -2.625584365675950e+01 -2.627949294933480e+01 -2.630315816707157e+01 -2.632683931872623e+01 -2.635053642045652e+01 - -2.637424948806206e+01 -2.639797853015353e+01 -2.642172352694394e+01 -2.644548446269175e+01 -2.646926136623515e+01 - -2.649305426487780e+01 -2.651686313520573e+01 -2.654068795336410e+01 -2.656452874445229e+01 -2.658838553565089e+01 - -2.661225831351167e+01 -2.663614706041860e+01 -2.666005178271351e+01 -2.668397249386109e+01 -2.670790921185966e+01 - -2.673186194785124e+01 -2.675583068101895e+01 -2.677981539336416e+01 -2.680381611012034e+01 -2.682783285712106e+01 - -2.685186561936856e+01 -2.687591437786270e+01 -2.689997913842517e+01 -2.692405991477839e+01 -2.694815672742597e+01 - -2.697226958936361e+01 -2.699639847677425e+01 -2.702054336911223e+01 -2.704470429573021e+01 -2.706888128546201e+01 - -2.709307431516761e+01 -2.711728336172764e+01 -2.714150845407871e+01 -2.716574962162754e+01 -2.719000684360529e+01 - -2.721428009605862e+01 -2.723856939247152e+01 -2.726287475352885e+01 -2.728719619128178e+01 -2.731153370993099e+01 - -2.733588729090867e+01 -2.736025692081293e+01 -2.738464262967399e+01 -2.740904444482641e+01 -2.743346233939021e+01 - -2.745789628706843e+01 -2.748234631811058e+01 -2.750681246441337e+01 -2.753129470791622e+01 -2.755579302585287e+01 - -2.758030742659158e+01 -2.760483792680023e+01 -2.762938454521084e+01 -2.765394729250735e+01 -2.767852614511706e+01 - -2.770312108289846e+01 -2.772773213369129e+01 -2.775235932608502e+01 -2.777700264368704e+01 -2.780166206614083e+01 - -2.782633760221619e+01 -2.785102926812099e+01 -2.787573708068912e+01 -2.790046104903706e+01 -2.792520115078565e+01 - -2.794995736764946e+01 -2.797472972921345e+01 -2.799951826412358e+01 -2.802432294939970e+01 -2.804914376169005e+01 - -2.807398072778233e+01 -2.809883387567351e+01 -2.812370318805837e+01 -2.814858864438241e+01 -2.817349025639583e+01 - -2.819840804241009e+01 -2.822334201467696e+01 -2.824829217820057e+01 -2.827325851505399e+01 -2.829824101147483e+01 - -2.832323969328987e+01 -2.834825458594292e+01 -2.837328567375688e+01 -2.839833293713809e+01 -2.842339638194745e+01 - -2.844847602232610e+01 -2.847357188008160e+01 -2.849868396869187e+01 -2.852381226064981e+01 -2.854895673259501e+01 - -2.857411741873861e+01 -2.859929435285462e+01 -2.862448750939692e+01 -2.864969686163745e+01 -2.867492243744038e+01 - -2.870016426611871e+01 -2.872542232818885e+01 -2.875069660076976e+01 -2.877598709618692e+01 -2.880129383482867e+01 - -2.882661683412842e+01 -2.885195610246809e+01 -2.887731161497835e+01 -2.890268335136361e+01 -2.892807134287440e+01 - -2.895347562064698e+01 -2.897889616381469e+01 -2.900433294736006e+01 -2.902978598166526e+01 -2.905525528595928e+01 - -2.908074087945912e+01 -2.910624277257485e+01 -2.913176094050105e+01 -2.915729536236611e+01 -2.918284606824940e+01 - -2.920841308797334e+01 -2.923399639938179e+01 -2.925959597987842e+01 -2.928521185708459e+01 -2.931084405942344e+01 - -2.933649256830759e+01 -2.936215736109871e+01 -2.938783844596477e+01 -2.941353583979598e+01 -2.943924956356517e+01 - -2.946497963001566e+01 -2.949072601489006e+01 -2.951648869675137e+01 -2.954226770244480e+01 -2.956806305999476e+01 - -2.959387475386040e+01 -2.961970276467950e+01 -2.964554710136948e+01 -2.967140778023144e+01 -2.969728481882160e+01 - -2.972317822671904e+01 -2.974908798033929e+01 -2.977501406036931e+01 -2.980095649774566e+01 -2.982691532231985e+01 - -2.985289050935425e+01 -2.987888203414534e+01 -2.990488992671488e+01 -2.993091421806754e+01 -2.995695488841446e+01 - -2.998301191396682e+01 -3.000908530572931e+01 -3.003517508294127e+01 -3.006128126298706e+01 -3.008740385472813e+01 - -3.011354283478899e+01 -3.013969818396866e+01 -3.016586993200092e+01 -3.019205810852835e+01 -3.021826269389396e+01 - -3.024448366459688e+01 -3.027072103106001e+01 -3.029697481234801e+01 -3.032324502816885e+01 -3.034953168930138e+01 - -3.037583477016444e+01 -3.040215424919064e+01 -3.042849015722735e+01 -3.045484252487287e+01 -3.048121132931426e+01 - -3.050759654718701e+01 -3.053399820633122e+01 -3.056041633582694e+01 -3.058685091850949e+01 -3.061330193277164e+01 - -3.063976938548045e+01 -3.066625329189824e+01 -3.069275367239408e+01 -3.071927054017274e+01 -3.074580387467516e+01 - -3.077235365736276e+01 -3.079891991154272e+01 -3.082550266154129e+01 -3.085210189391538e+01 -3.087871759159065e+01 - -3.090534976073683e+01 -3.093199841535169e+01 -3.095866357750086e+01 -3.098534526117247e+01 -3.101204343997652e+01 - -3.103875809113482e+01 -3.106548924669440e+01 -3.109223693806243e+01 -3.111900113926174e+01 -3.114578182447812e+01 - -3.117257902593346e+01 -3.119939277712214e+01 -3.122622305859262e+01 -3.125306984560579e+01 -3.127993314521812e+01 - -3.130681297362548e+01 -3.133370935178603e+01 -3.136062229292185e+01 -3.138755177454848e+01 -3.141449777743489e+01 - -3.144146033107010e+01 -3.146843946420585e+01 -3.149543515392452e+01 -3.152244737446985e+01 -3.154947614039987e+01 - -3.157652147508332e+01 -3.160358339681746e+01 -3.163066191390917e+01 -3.165775699977537e+01 -3.168486863280270e+01 - -3.171199684614663e+01 -3.173914167265754e+01 -3.176630308919665e+01 -3.179348107134120e+01 -3.182067564552154e+01 - -3.184788683989369e+01 -3.187511463866380e+01 -3.190235902163426e+01 -3.192961999494226e+01 -3.195689757352222e+01 - -3.198419178116283e+01 -3.201150263346307e+01 -3.203883010440887e+01 -3.206617417058478e+01 -3.209353486058297e+01 - -3.212091220418486e+01 -3.214830618392138e+01 -3.217571677868305e+01 -3.220314400004898e+01 -3.223058786708538e+01 - -3.225804839611857e+01 -3.228552559489243e+01 -3.231301943956095e+01 -3.234052991162765e+01 -3.236805704558397e+01 - -3.239560087404328e+01 -3.242316136911894e+01 -3.245073850255218e+01 -3.247833230509534e+01 -3.250594280965240e+01 - -3.253356999872297e+01 -3.256121385028732e+01 -3.258887437465276e+01 -3.261655158960600e+01 -3.264424551052439e+01 - -3.267195614529539e+01 -3.269968347425627e+01 -3.272742748229857e+01 -3.275518820008119e+01 -3.278296565603427e+01 - -3.281075982390590e+01 -3.283857067801981e+01 -3.286639824968410e+01 -3.289424257141810e+01 -3.292210362360176e+01 - -3.294998138240963e+01 -3.297787585933321e+01 -3.300578707421773e+01 -3.303371504500630e+01 -3.306165978102434e+01 - -3.308962125902853e+01 -3.311759946003357e+01 -3.314559441465483e+01 -3.317360615365304e+01 -3.320163465877013e+01 - -3.322967990687330e+01 -3.325774190434956e+01 -3.328582066713852e+01 -3.331391621987054e+01 -3.334202857831301e+01 - -3.337015771409062e+01 -3.339830360273710e+01 -3.342646627956469e+01 -3.345464577921614e+01 -3.348284207387808e+01 - -3.351105513572078e+01 -3.353928499930519e+01 -3.356753169996216e+01 -3.359579521371194e+01 -3.362407551222610e+01 - -3.365237260909204e+01 -3.368068652715969e+01 -3.370901728441355e+01 -3.373736488954338e+01 -3.376572931892538e+01 - -3.379411055342771e+01 -3.382250862419983e+01 -3.385092356238306e+01 -3.387935534880526e+01 -3.390780395979943e+01 - -3.393626940403256e+01 -3.396475169950308e+01 -3.399325086920118e+01 -3.402176692682492e+01 -3.405029984391190e+01 - -3.407884959628061e+01 -3.410741621903333e+01 -3.413599974690003e+01 -3.416460015383780e+01 -3.419321741347679e+01 - -3.422185155891206e+01 -3.425050262370409e+01 -3.427917058381036e+01 -3.430785541111823e+01 -3.433655711883738e+01 - -3.436527572977491e+01 -3.439401126380553e+01 -3.442276373145798e+01 -3.445153310880944e+01 -3.448031937598221e+01 - -3.450912256373026e+01 -3.453794270224409e+01 -3.456677976882821e+01 -3.459563373771100e+01 -3.462450462370172e+01 - -3.465339245071625e+01 -3.468229723851619e+01 -3.471121899611902e+01 -3.474015769371995e+01 -3.476911330776019e+01 - -3.479808587848705e+01 -3.482707544447295e+01 -3.485608197378501e+01 -3.488510543365825e+01 -3.491414585850467e+01 - -3.494320328527482e+01 -3.497227769389696e+01 -3.500136905869145e+01 -3.503047738856913e+01 -3.505960270226024e+01 - -3.508874502318216e+01 -3.511790436512474e+01 -3.514708069868058e+01 -3.517627399907308e+01 -3.520548430324607e+01 - -3.523471164812467e+01 -3.526395600883895e+01 -3.529321735592740e+01 -3.532249570335686e+01 -3.535179107461137e+01 - -3.538110348781549e+01 -3.541043295179184e+01 -3.543977944351469e+01 -3.546914294470585e+01 -3.549852348792567e+01 - -3.552792110371767e+01 -3.555733576371960e+01 -3.558676744035331e+01 -3.561621616808287e+01 -3.564568198278825e+01 - -3.567516486397158e+01 -3.570466478590109e+01 -3.573418175828719e+01 -3.576371580017962e+01 -3.579326693254331e+01 - -3.582283516733191e+01 -3.585242047853867e+01 -3.588202284498269e+01 -3.591164230274704e+01 -3.594127888660625e+01 - -3.597093256883734e+01 -3.600060331833949e+01 -3.603029115299790e+01 -3.605999610029281e+01 -3.608971817709886e+01 - -3.611945738978410e+01 -3.614921371329605e+01 -3.617898712799953e+01 -3.620877766734910e+01 -3.623858536391516e+01 - -3.626841019364145e+01 -3.629825213180558e+01 -3.632811120764664e+01 -3.635798745148868e+01 -3.638788084403422e+01 - -3.641779136227628e+01 -3.644771901799147e+01 -3.647766383142195e+01 -3.650762582188893e+01 -3.653760499949427e+01 - -3.656760133838370e+01 -3.659761481766282e+01 -3.662764547223315e+01 -3.665769333671685e+01 -3.668775838882340e+01 - -3.671784060113342e+01 -3.674793998262476e+01 -3.677805655273779e+01 -3.680819033636626e+01 -3.683834134900049e+01 - -3.686850956306390e+01 -3.689869495454472e+01 -3.692889755675729e+01 -3.695911740229619e+01 -3.698935446355054e+01 - -3.701960871343802e+01 -3.704988018719579e+01 -3.708016892120266e+01 -3.711047489408478e+01 -3.714079807933708e+01 - -3.717113848768184e+01 -3.720149613882988e+01 -3.723187105121882e+01 -3.726226323497034e+01 -3.729267266821555e+01 - -3.732309933333587e+01 -3.735354326170426e+01 -3.738400448395760e+01 -3.741448297879693e+01 -3.744497872108128e+01 - -3.747549172223736e+01 -3.750602200310610e+01 -3.753656958561755e+01 -3.756713448177913e+01 -3.759771666281819e+01 - -3.762831610507856e+01 -3.765893284615005e+01 -3.768956692232328e+01 -3.772021830344675e+01 -3.775088695941269e+01 - -3.778157292673024e+01 -3.781227624306894e+01 -3.784299688412320e+01 -3.787373482086582e+01 -3.790449006735824e+01 - -3.793526264738479e+01 -3.796605258053289e+01 -3.799685987630166e+01 -3.802768450803411e+01 -3.805852645435349e+01 - -3.808938575116029e+01 -3.812026243387959e+01 -3.815115647875793e+01 -3.818206785737669e+01 -3.821299658183555e+01 - -3.824394267407146e+01 -3.827490615485264e+01 -3.830588703573063e+01 -3.833688529255877e+01 -3.836790090523419e+01 - -3.839893390552727e+01 -3.842998432385276e+01 -3.846105213333004e+01 -3.849213730842061e+01 -3.852323988624988e+01 - -3.855435990371658e+01 -3.858549733414936e+01 -3.861665214665468e+01 -3.864782435702053e+01 -3.867901399128823e+01 - -3.871022106983104e+01 -3.874144560188923e+01 -3.877268755783931e+01 -3.880394691415978e+01 -3.883522371060106e+01 - -3.886651798555487e+01 -3.889782970870629e+01 -3.892915884903668e+01 -3.896050544141922e+01 -3.899186952243698e+01 - -3.902325106962145e+01 -3.905465005558139e+01 -3.908606649228560e+01 -3.911750040150871e+01 -3.914895180488885e+01 - -3.918042071436301e+01 -3.921190710320024e+01 -3.924341094905042e+01 -3.927493228575462e+01 -3.930647114756201e+01 - -3.933802751416320e+01 -3.936960136044893e+01 -3.940119269666864e+01 -3.943280154239230e+01 -3.946442791911308e+01 - -3.949607183932866e+01 -3.952773327763106e+01 -3.955941221301939e+01 -3.959110868002649e+01 -3.962282271157864e+01 - -3.965455427864192e+01 -3.968630335291520e+01 -3.971806997098832e+01 -3.974985417066340e+01 -3.978165592970123e+01 - -3.981347522024374e+01 -3.984531205199855e+01 -3.987716644515135e+01 -3.990903842423468e+01 -3.994092800366619e+01 - -3.997283515305731e+01 -4.000475984705376e+01 -4.003670212524431e+01 -4.006866202678586e+01 -4.010063952416471e+01 - -4.013263458527370e+01 -4.016464722630246e+01 -4.019667747391531e+01 -4.022872534837892e+01 -4.026079085897078e+01 - -4.029287397740929e+01 -4.032497468131004e+01 -4.035709300943645e+01 -4.038922899883853e+01 -4.042138261856475e+01 - -4.045355383733334e+01 -4.048574269054266e+01 -4.051794921541258e+01 -4.055017338976896e+01 -4.058241518694505e+01 - -4.061467462169752e+01 -4.064695171778673e+01 -4.067924649356458e+01 -4.071155895737036e+01 -4.074388908290122e+01 - -4.077623684962312e+01 -4.080860229471885e+01 -4.084098545450960e+01 -4.087338630415373e+01 -4.090580481395003e+01 - -4.093824099592192e+01 -4.097069487270115e+01 -4.100316646762842e+01 -4.103565579436854e+01 -4.106816282717386e+01 - -4.110068754422534e+01 -4.113322997883087e+01 -4.116579016300655e+01 -4.119836806847471e+01 -4.123096366815907e+01 - -4.126357700008218e+01 -4.129620810254014e+01 -4.132885694982463e+01 -4.136152351139461e+01 -4.139420780138244e+01 - -4.142690984447184e+01 -4.145962966287846e+01 -4.149236726828771e+01 -4.152512263273182e+01 -4.155789573295193e+01 - -4.159068660417814e+01 -4.162349528189675e+01 -4.165632174413023e+01 -4.168916596438000e+01 -4.172202795552684e+01 - -4.175490773972726e+01 -4.178780533686147e+01 -4.182072075745918e+01 -4.185365397692470e+01 -4.188660497553830e+01 - -4.191957378820953e+01 -4.195256044830271e+01 -4.198556492837179e+01 -4.201858720098863e+01 -4.205162729960676e+01 - -4.208468525919077e+01 -4.211776105986812e+01 -4.215085467691669e+01 -4.218396612105321e+01 -4.221709541226407e+01 - -4.225024257217616e+01 -4.228340761361360e+01 -4.231659051254899e+01 -4.234979124870078e+01 -4.238300985362200e+01 - -4.241624635885866e+01 -4.244950074409413e+01 -4.248277298525672e+01 -4.251606309511715e+01 -4.254937109530931e+01 - -4.258269700607782e+01 -4.261604083828603e+01 -4.264940256666174e+01 -4.268278217100897e+01 -4.271617968757233e+01 - -4.274959515039267e+01 -4.278302852825576e+01 -4.281647979114838e+01 -4.284994897911630e+01 -4.288343613339240e+01 - -4.291694122989936e+01 -4.295046423857267e+01 -4.298400517070971e+01 -4.301756404788966e+01 -4.305114089145757e+01 - -4.308473571388112e+01 -4.311834849235274e+01 -4.315197920801049e+01 -4.318562789305037e+01 -4.321929457904871e+01 - -4.325297924404543e+01 -4.328668186207582e+01 -4.332040244469275e+01 -4.335414101381126e+01 -4.338789759527743e+01 - -4.342167220389723e+01 -4.345546480638487e+01 -4.348927537558045e+01 -4.352310395691921e+01 -4.355695059370569e+01 - -4.359081524812669e+01 -4.362469788222823e+01 -4.365859853861065e+01 -4.369251726260594e+01 -4.372645402991838e+01 - -4.376040880917880e+01 -4.379438161035186e+01 -4.382837245512241e+01 -4.386238137072252e+01 -4.389640837367813e+01 - -4.393045343214298e+01 -4.396451651875527e+01 -4.399859767246311e+01 -4.403269693263155e+01 -4.406681427398399e+01 - -4.410094966630350e+01 -4.413510312425358e+01 -4.416927467295284e+01 -4.420346433446015e+01 -4.423767212069691e+01 - -4.427189800609401e+01 -4.430614196966567e+01 -4.434040404624994e+01 -4.437468426893484e+01 -4.440898260798443e+01 - -4.444329903479183e+01 -4.447763358808973e+01 -4.451198630763288e+01 -4.454635716992501e+01 -4.458074614621454e+01 - -4.461515324997958e+01 -4.464957850449220e+01 -4.468402192997090e+01 -4.471848353715485e+01 -4.475296330191956e+01 - -4.478746120505344e+01 -4.482197728186011e+01 -4.485651156648301e+01 -4.489106403390974e+01 -4.492563465506775e+01 - -4.496022344379944e+01 -4.499483042484561e+01 -4.502945562362576e+01 -4.506409905435962e+01 -4.509876068578905e+01 - -4.513344049220396e+01 -4.516813851556444e+01 -4.520285479589762e+01 -4.523758929782897e+01 -4.527234198687941e+01 - -4.530711290755342e+01 -4.534190210524451e+01 -4.537670954991925e+01 -4.541153520580425e+01 -4.544637908959269e+01 - -4.548124122972980e+01 -4.551612164920255e+01 -4.555102035951307e+01 -4.558593733168242e+01 -4.562087254236648e+01 - -4.565582603124118e+01 -4.569079783605451e+01 -4.572578792382265e+01 -4.576079626235065e+01 -4.579582289333027e+01 - -4.583086785976433e+01 -4.586593113601344e+01 -4.590101269036680e+01 -4.593611253546989e+01 -4.597123069530716e+01 - -4.600636719486254e+01 -4.604152204856955e+01 -4.607669522766013e+01 -4.611188670797630e+01 -4.614709652700154e+01 - -4.618232472227299e+01 -4.621757126990104e+01 -4.625283614113306e+01 -4.628811934919114e+01 -4.632342091751210e+01 - -4.635874086841728e+01 -4.639407921460932e+01 -4.642943593143147e+01 -4.646481099859044e+01 -4.650020445060623e+01 - -4.653561632090474e+01 -4.657104658372261e+01 -4.660649521327068e+01 -4.664196224284595e+01 -4.667744770698098e+01 - -4.671295158606459e+01 -4.674847385553061e+01 -4.678401452513644e+01 -4.681957361522331e+01 -4.685515115414413e+01 - -4.689074715945064e+01 -4.692636159747788e+01 -4.696199443933372e+01 -4.699764572643400e+01 -4.703331550121288e+01 - -4.706900373987032e+01 -4.710471041222129e+01 -4.714043552877479e+01 -4.717617911151273e+01 -4.721194118761495e+01 - -4.724772177397794e+01 -4.728352084116666e+01 -4.731933836391387e+01 -4.735517437995513e+01 -4.739102892624472e+01 - -4.742690197360956e+01 -4.746279349304486e+01 -4.749870352234630e+01 -4.753463210070628e+01 -4.757057920610364e+01 - -4.760654481072343e+01 -4.764252892478859e+01 -4.767853156968457e+01 -4.771455277340900e+01 -4.775059255327958e+01 - -4.778665087728216e+01 -4.782272771801416e+01 -4.785882311585065e+01 -4.789493711157514e+01 -4.793106967982698e+01 - -4.796722079021173e+01 -4.800339045834357e+01 -4.803957871014897e+01 -4.807578556679541e+01 -4.811201103905631e+01 - -4.814825510088780e+01 -4.818451773166895e+01 -4.822079896928767e+01 -4.825709884980719e+01 -4.829341734348342e+01 - -4.832975442115909e+01 -4.836611012183125e+01 -4.840248448526336e+01 -4.843887748613056e+01 -4.847528909416636e+01 - -4.851171932442625e+01 -4.854816820273300e+01 -4.858463575265701e+01 -4.862112198691646e+01 -4.865762687707282e+01 - -4.869415040003414e+01 -4.873069259525141e+01 -4.876725350118260e+01 -4.880383308977095e+01 -4.884043132904604e+01 - -4.887704823789731e+01 -4.891368384608068e+01 -4.895033817595851e+01 -4.898701123776245e+01 -4.902370300059485e+01 - -4.906041344002308e+01 -4.909714259860375e+01 -4.913389051725400e+01 -4.917065716334413e+01 -4.920744250429804e+01 - -4.924424658130064e+01 -4.928106943700116e+01 -4.931791104614518e+01 -4.935477137752828e+01 -4.939165044404930e+01 - -4.942854827009338e+01 -4.946546488188807e+01 -4.950240029454247e+01 -4.953935447684974e+01 -4.957632740294361e+01 - -4.961331911463601e+01 -4.965032965315336e+01 -4.968735898970213e+01 -4.972440709120082e+01 -4.976147397743583e+01 - -4.979855967878247e+01 -4.983566421510402e+01 -4.987278759472007e+01 -4.990992979028766e+01 -4.994709078100569e+01 - -4.998427060790318e+01 -5.002146930959274e+01 -5.005868685319148e+01 -5.009592320640078e+01 -5.013317841075434e+01 - -5.017045250915469e+01 -5.020774547614742e+01 -5.024505728017924e+01 -5.028238793365752e+01 -5.031973746104961e+01 - -5.035710589110189e+01 -5.039449324090066e+01 -5.043189947661289e+01 -5.046932456973549e+01 -5.050676856400442e+01 - -5.054423150327239e+01 -5.058171335962052e+01 -5.061921409929316e+01 -5.065673373695915e+01 -5.069427229950105e+01 - -5.073182981423184e+01 -5.076940629607507e+01 -5.080700170996615e+01 -5.084461602753602e+01 -5.088224929718589e+01 - -5.091990156525010e+01 -5.095757279302548e+01 -5.099526294209112e+01 -5.103297206019221e+01 -5.107070019605169e+01 - -5.110844731613729e+01 -5.114621338143406e+01 -5.118399841325091e+01 -5.122180244526444e+01 -5.125962550029841e+01 - -5.129746758802490e+01 -5.133532867636215e+01 -5.137320874011100e+01 -5.141110782335645e+01 -5.144902596945006e+01 - -5.148696314952589e+01 -5.152491932947918e+01 -5.156289452646703e+01 -5.160088876945014e+01 -5.163890208334180e+01 - -5.167693448081514e+01 -5.171498592963017e+01 -5.175305640369855e+01 -5.179114594645165e+01 -5.182925460014935e+01 - -5.186738233284598e+01 -5.190552911234031e+01 -5.194369497961412e+01 -5.198187997663295e+01 -5.202008407611459e+01 - -5.205830724580739e+01 -5.209654950282933e+01 -5.213481087573764e+01 -5.217309138947744e+01 -5.221139105690054e+01 - -5.224970984609732e+01 -5.228804773087789e+01 -5.232640475269200e+01 -5.236478095346914e+01 -5.240317630941821e+01 - -5.244159079031952e+01 -5.248002440595931e+01 -5.251847717885386e+01 -5.255694914243367e+01 -5.259544031823210e+01 - -5.263395066927961e+01 -5.267248016335085e+01 -5.271102884570031e+01 -5.274959676081755e+01 -5.278818387265291e+01 - -5.282679014593192e+01 -5.286541562901994e+01 -5.290406037048660e+01 -5.294272433607927e+01 -5.298140748616263e+01 - -5.302010984239256e+01 -5.305883143892672e+01 -5.309757229863885e+01 -5.313633243133304e+01 -5.317511180581835e+01 - -5.321391039785607e+01 -5.325272825201081e+01 -5.329156541074357e+01 -5.333042183929739e+01 -5.336929750308754e+01 - -5.340819244543594e+01 -5.344710671111962e+01 -5.348604027282968e+01 -5.352499309722418e+01 -5.356396519891433e+01 - -5.360295660504364e+01 -5.364196734493171e+01 -5.368099743556814e+01 -5.372004684244607e+01 -5.375911553606044e+01 - -5.379820355840945e+01 -5.383731095277006e+01 -5.387643769603123e+01 -5.391558375867469e+01 -5.395474915194053e+01 - -5.399393389872404e+01 -5.403313802778240e+01 -5.407236155707715e+01 -5.411160445552515e+01 -5.415086669663323e+01 - -5.419014832131279e+01 -5.422944936941720e+01 -5.426876980916325e+01 -5.430810960961936e+01 -5.434746881489674e+01 - -5.438684746929877e+01 -5.442624554285502e+01 -5.446566300018413e+01 -5.450509985853421e+01 -5.454455614758906e+01 - -5.458403189414573e+01 -5.462352711279953e+01 -5.466304177222543e+01 -5.470257584656953e+01 -5.474212937778257e+01 - -5.478170240720980e+01 -5.482129490597043e+01 -5.486090684084346e+01 -5.490053823147309e+01 -5.494018910890276e+01 - -5.497985949690793e+01 -5.501954940653937e+01 -5.505925880521750e+01 -5.509898766755921e+01 -5.513873604059781e+01 - -5.517850396943321e+01 -5.521829141901578e+01 -5.525809835354192e+01 -5.529792481434151e+01 -5.533777084523449e+01 - -5.537763642286803e+01 -5.541752151714192e+01 -5.545742613813913e+01 -5.549735030880384e+01 -5.553729406334213e+01 - -5.557725742375872e+01 -5.561724035199087e+01 -5.565724281465346e+01 -5.569726485713910e+01 -5.573730652628086e+01 - -5.577736779589668e+01 -5.581744863307357e+01 -5.585754905099014e+01 -5.589766907536871e+01 -5.593780873601526e+01 - -5.597796805069111e+01 -5.601814698489535e+01 -5.605834550959182e+01 -5.609856366986563e+01 -5.613880151023810e+01 - -5.617905899885479e+01 -5.621933610311022e+01 -5.625963286377015e+01 -5.629994932270948e+01 -5.634028545286861e+01 - -5.638064122221132e+01 -5.642101664772899e+01 -5.646141175844968e+01 -5.650182658252075e+01 -5.654226113528433e+01 - -5.658271538174220e+01 -5.662318929319503e+01 -5.666368291647893e+01 -5.670419629786259e+01 -5.674472940580990e+01 - -5.678528220346420e+01 -5.682585471049146e+01 -5.686644695909487e+01 -5.690705897510426e+01 -5.694769077129006e+01 - -5.698834231455854e+01 -5.702901357847642e+01 -5.706970460911611e+01 -5.711041545084194e+01 -5.715114606868026e+01 - -5.719189642778805e+01 -5.723266657318249e+01 -5.727345655110785e+01 -5.731426633285666e+01 -5.735509588339112e+01 - -5.739594521730356e+01 -5.743681436264626e+01 -5.747770335168147e+01 -5.751861220364783e+01 -5.755954088147938e+01 - -5.760048935348805e+01 -5.764145766580183e+01 -5.768244586550730e+01 -5.772345392571002e+01 -5.776448181276131e+01 - -5.780552953997691e+01 -5.784659713354442e+01 -5.788768462417462e+01 -5.792879202998626e+01 -5.796991931420698e+01 - -5.801106644664837e+01 -5.805223347834903e+01 -5.809342045860209e+01 -5.813462734849197e+01 -5.817585410820936e+01 - -5.821710078257841e+01 -5.825836741928538e+01 -5.829965399283203e+01 -5.834096047087346e+01 -5.838228686686274e+01 - -5.842363320676851e+01 -5.846499952082397e+01 -5.850638582715609e+01 -5.854779209120221e+01 -5.858921828442874e+01 - -5.863066445510763e+01 -5.867213065032231e+01 -5.871361683559694e+01 -5.875512297138874e+01 -5.879664907944645e+01 - -5.883819519466417e+01 -5.887976134322624e+01 -5.892134753756825e+01 -5.896295374384051e+01 -5.900457993500612e+01 - -5.904622615756436e+01 -5.908789245663575e+01 -5.912957879828990e+01 -5.917128514850664e+01 -5.921301155195771e+01 - -5.925475805384439e+01 -5.929652462279476e+01 -5.933831122286624e+01 -5.938011787640643e+01 -5.942194461763230e+01 - -5.946379146994821e+01 -5.950565844408734e+01 -5.954754551091072e+01 -5.958945264733813e+01 -5.963137989439624e+01 - -5.967332729249499e+01 -5.971529481547052e+01 -5.975728243227523e+01 -5.979929015889982e+01 -5.984131802305070e+01 - -5.988336605225896e+01 -5.992543426246962e+01 -5.996752262345901e+01 -6.000963111046766e+01 -6.005175976676178e+01 - -6.009390863383608e+01 -6.013607767807394e+01 -6.017826686618813e+01 -6.022047624132026e+01 -6.026270584835797e+01 - -6.030495566274465e+01 -6.034722565381767e+01 -6.038951583593452e+01 -6.043182623512069e+01 -6.047415687905394e+01 - -6.051650778421003e+01 -6.055887892060463e+01 -6.060127026325783e+01 -6.064368185366749e+01 -6.068611373308907e+01 - -6.072856587533070e+01 -6.077103824887340e+01 -6.081353086833690e+01 -6.085604376132918e+01 -6.089857696127247e+01 - -6.094113048823596e+01 -6.098370430306234e+01 -6.102629837247437e+01 -6.106891274594116e+01 -6.111154747264118e+01 - -6.115420251784390e+01 -6.119687784580902e+01 -6.123957350066591e+01 -6.128228952841628e+01 -6.132502590268162e+01 - -6.136778259056138e+01 -6.141055960544676e+01 -6.145335697380811e+01 -6.149617472814099e+01 -6.153901288864162e+01 - -6.158187142028389e+01 -6.162475029314290e+01 -6.166764955292113e+01 -6.171056924466600e+01 -6.175350933517737e+01 - -6.179646979123154e+01 -6.183945065775757e+01 -6.188245198047678e+01 -6.192547373012725e+01 -6.196851587175868e+01 - -6.201157842265037e+01 -6.205466141333163e+01 -6.209776487510229e+01 -6.214088882566958e+01 -6.218403322759970e+01 - -6.222719804958889e+01 -6.227038333999444e+01 -6.231358914752139e+01 -6.235681544260558e+01 -6.240006218936849e+01 - -6.244332940494305e+01 -6.248661712010740e+01 -6.252992536720910e+01 -6.257325416420860e+01 -6.261660346994837e+01 - -6.265997325077347e+01 -6.270336356215701e+01 -6.274677445777788e+01 -6.279020589501037e+01 -6.283365783085999e+01 - -6.287713031716163e+01 -6.292062340781234e+01 -6.296413707012920e+01 -6.300767126475596e+01 -6.305122601222295e+01 - -6.309480134635203e+01 -6.313839729424505e+01 -6.318201386936521e+01 -6.322565103734121e+01 -6.326930877093868e+01 - -6.331298711930568e+01 -6.335668613058504e+01 -6.340040577251647e+01 -6.344414600718050e+01 -6.348790685442323e+01 - -6.353168834759008e+01 -6.357549051625812e+01 -6.361931337593239e+01 -6.366315688959789e+01 -6.370702102749119e+01 - -6.375090584137499e+01 -6.379481138078580e+01 -6.383873760482961e+01 -6.388268447297220e+01 -6.392665203654889e+01 - -6.397064034897519e+01 -6.401464938011861e+01 -6.405867909237229e+01 -6.410272950177993e+01 -6.414680063823367e+01 - -6.419089253336912e+01 -6.423500520539493e+01 -6.427913861706836e+01 -6.432329273774181e+01 -6.436746761859949e+01 - -6.441166331065573e+01 -6.445587978241413e+01 -6.450011699516882e+01 -6.454437496388719e+01 -6.458865371852110e+01 - -6.463295329528786e+01 -6.467727371608086e+01 -6.472161493923234e+01 -6.476597692945877e+01 -6.481035974057480e+01 - -6.485476342551981e+01 -6.489918794463497e+01 -6.494363325783405e+01 -6.498809941591921e+01 -6.503258647107099e+01 - -6.507709439009531e+01 -6.512162313341831e+01 -6.516617272132122e+01 -6.521074318787740e+01 -6.525533456247440e+01 - -6.529994686059398e+01 -6.534458004678092e+01 -6.538923409250538e+01 -6.543390904787570e+01 -6.547860496211884e+01 - -6.552332180229843e+01 -6.556805952953434e+01 -6.561281816333469e+01 -6.565759773746066e+01 -6.570239828429803e+01 - -6.574721982146080e+01 -6.579206230885156e+01 -6.583692571363754e+01 -6.588181008975629e+01 -6.592671548982709e+01 - -6.597164187442638e+01 -6.601658920334479e+01 -6.606155752527242e+01 -6.610654689090467e+01 -6.615155727005924e+01 - -6.619658862652422e+01 -6.624164098084657e+01 -6.628671436645676e+01 -6.633180881156068e+01 -6.637692433038681e+01 - -6.642206088647883e+01 -6.646721845110714e+01 -6.651239707713407e+01 -6.655759681603797e+01 -6.660281763216933e+01 - -6.664805948389387e+01 -6.669332239276561e+01 -6.673860639512726e+01 -6.678391152328841e+01 -6.682923779433044e+01 - -6.687458516845543e+01 -6.691995361277515e+01 -6.696534317891920e+01 -6.701075391795754e+01 -6.705618579420361e+01 - -6.710163877100581e+01 -6.714711289460833e+01 -6.719260821321966e+01 -6.723812470001026e+01 -6.728366232121398e+01 - -6.732922109035582e+01 -6.737480103488133e+01 -6.742040219062761e+01 -6.746602458035952e+01 -6.751166816616187e+01 - -6.755733291529161e+01 -6.760301887637438e+01 -6.764872609859751e+01 -6.769445455202660e+01 -6.774020420051386e+01 - -6.778597506217976e+01 -6.783176716876942e+01 -6.787758055225885e+01 -6.792341523092826e+01 -6.796927116804379e+01 - -6.801514833341810e+01 -6.806104677806347e+01 -6.810696655123587e+01 -6.815290761396663e+01 -6.819886992772128e+01 - -6.824485354392678e+01 -6.829085851532395e+01 -6.833688480994840e+01 -6.838293238885097e+01 -6.842900126984890e+01 - -6.847509148538957e+01 -6.852120306967514e+01 -6.856733604269469e+01 -6.861349036583006e+01 -6.865966600658993e+01 - -6.870586301559659e+01 -6.875208144399036e+01 -6.879832126187024e+01 -6.884458243234171e+01 -6.889086497157696e+01 - -6.893716890990422e+01 -6.898349428120915e+01 -6.902984110598732e+01 -6.907620934761650e+01 -6.912259897511596e+01 - -6.916901003718877e+01 -6.921544258172949e+01 -6.926189657371528e+01 -6.930837197817074e+01 -6.935486884322755e+01 - -6.940138721768092e+01 -6.944792706987337e+01 -6.949448836290087e+01 -6.954107111932564e+01 -6.958767537490402e+01 - -6.963430115870300e+01 -6.968094848498497e+01 -6.972761731548312e+01 -6.977430762020695e+01 -6.982101945480034e+01 - -6.986775287255249e+01 -6.991450783170005e+01 -6.996128429032680e+01 -7.000808230095708e+01 -7.005490191787665e+01 - -7.010174310797666e+01 -7.014860583121035e+01 -7.019549010717337e+01 -7.024239597049470e+01 -7.028932345629492e+01 - -7.033627258446040e+01 -7.038324331344937e+01 -7.043023560838913e+01 -7.047724952251053e+01 -7.052428510987777e+01 - -7.057134233978515e+01 -7.061842117397924e+01 -7.066552162878578e+01 -7.071264373512433e+01 -7.075978752771100e+01 - -7.080695302731498e+01 -7.085414019512091e+01 -7.090134899910394e+01 -7.094857949398551e+01 -7.099583173235354e+01 - -7.104310567151599e+01 -7.109040126922885e+01 -7.113771858031990e+01 -7.118505766125368e+01 -7.123241847797109e+01 - -7.127980098937178e+01 -7.132720521671429e+01 -7.137463119544236e+01 -7.142207895538176e+01 -7.146954851252747e+01 - -7.151703983316882e+01 -7.156455289009196e+01 -7.161208773177542e+01 -7.165964440570248e+01 -7.170722287968356e+01 - -7.175482311646741e+01 -7.180244513822917e+01 -7.185008898098621e+01 -7.189775467669884e+01 -7.194544224180910e+01 - -7.199315163474331e+01 -7.204088282234626e+01 -7.208863586315185e+01 -7.213641081375658e+01 -7.218420763131780e+01 - -7.223202627227879e+01 -7.227986678966526e+01 -7.232772923884254e+01 -7.237561358795277e+01 -7.242351979769759e+01 - -7.247144788623903e+01 -7.251939788668284e+01 -7.256736983444897e+01 -7.261536375015235e+01 -7.266337959287341e+01 - -7.271141732841731e+01 -7.275947701102203e+01 -7.280755869538000e+01 -7.285566234956853e+01 -7.290378793432680e+01 - -7.295193546765573e+01 -7.300010498266862e+01 -7.304829651566631e+01 -7.309651008753943e+01 -7.314474565435016e+01 - -7.319300317971540e+01 -7.324128272229925e+01 -7.328958433981238e+01 -7.333790799110540e+01 -7.338625363374130e+01 - -7.343462131899291e+01 -7.348301110053259e+01 -7.353142294792167e+01 -7.357985682361442e+01 -7.362831274574745e+01 - -7.367679074711965e+01 -7.372529086349638e+01 -7.377381311579366e+01 -7.382235746256312e+01 -7.387092386912651e+01 - -7.391951239025020e+01 -7.396812308115555e+01 -7.401675590943988e+01 -7.406541083531380e+01 -7.411408787706513e+01 - -7.416278706814910e+01 -7.421150844461324e+01 -7.426025202733783e+01 -7.430901777394124e+01 -7.435780564940528e+01 - -7.440661571142732e+01 -7.445544801616209e+01 -7.450430252087864e+01 -7.455317918285648e+01 -7.460207805830268e+01 - -7.465099920497126e+01 -7.469994258787753e+01 -7.474890816454140e+01 -7.479789595523943e+01 -7.484690599592756e+01 - -7.489593832252380e+01 -7.494499295533201e+01 -7.499406985223764e+01 -7.504316897827101e+01 -7.509229038945979e+01 - -7.514143414169166e+01 -7.519060019929748e+01 -7.523978851997632e+01 -7.528899912645726e+01 -7.533823205657275e+01 - -7.538748734353926e+01 -7.543676500532445e+01 -7.548606500351643e+01 -7.553538730703876e+01 -7.558473197053598e+01 - -7.563409904619321e+01 -7.568348849063742e+01 -7.573290026170078e+01 -7.578233441759443e+01 -7.583179101796470e+01 - -7.588127002782028e+01 -7.593077140392674e+01 -7.598029516471465e+01 -7.602984134475692e+01 -7.607940998153097e+01 - -7.612900109746634e+01 -7.617861465189691e+01 -7.622825061065345e+01 -7.627790902865043e+01 -7.632758996032740e+01 - -7.637729336914126e+01 -7.642701921265419e+01 -7.647676751583191e+01 -7.652653831849052e+01 -7.657633165244424e+01 - -7.662614753370475e+01 -7.667598592307560e+01 -7.672584678949215e+01 -7.677573018962489e+01 -7.682563617769370e+01 - -7.687556471038147e+01 -7.692551574474433e+01 -7.697548933686781e+01 -7.702548554509247e+01 -7.707550433774978e+01 - -7.712554567498073e+01 -7.717560957417300e+01 -7.722569606768573e+01 -7.727580519051753e+01 -7.732593696392289e+01 - -7.737609135154067e+01 -7.742626832278943e+01 -7.747646792782194e+01 -7.752669021677298e+01 -7.757693515897095e+01 - -7.762720271798948e+01 -7.767749291518889e+01 -7.772780578562232e+01 -7.777814136132783e+01 -7.782849965970544e+01 - -7.787888064261847e+01 -7.792928427988689e+01 -7.797971062869398e+01 -7.803015974345008e+01 -7.808063158011076e+01 - -7.813112609521906e+01 -7.818164334612277e+01 -7.823218339188995e+01 -7.828274619766600e+01 -7.833333172107952e+01 - -7.838393998361434e+01 -7.843457102192369e+01 -7.848522486948340e+01 -7.853590154498607e+01 -7.858660101116894e+01 - -7.863732323758104e+01 -7.868806827697425e+01 -7.873883618163512e+01 -7.878962691878654e+01 -7.884044044940295e+01 - -7.889127679452803e+01 -7.894213598992800e+01 -7.899301807018992e+01 -7.904392305456564e+01 -7.909485090214494e+01 - -7.914580158005610e+01 -7.919677514774288e+01 -7.924777166238927e+01 -7.929879107982515e+01 -7.934983335558289e+01 - -7.940089854535901e+01 -7.945198670709752e+01 -7.950309780756868e+01 -7.955423180605224e+01 -7.960538872303847e+01 - -7.965656859466247e+01 -7.970777145842827e+01 -7.975899733555858e+01 -7.981024618078136e+01 -7.986151795697417e+01 - -7.991281272610696e+01 -7.996413054847572e+01 -8.001547137858779e+01 -8.006683517069925e+01 -8.011822198384908e+01 - -8.016963187855384e+01 -8.022106481645797e+01 -8.027252075224854e+01 -8.032399971165485e+01 -8.037550173585385e+01 - -8.042702685677139e+01 -8.047857509055929e+01 -8.053014639952434e+01 -8.058174075328817e+01 -8.063335820457638e+01 - -8.068499880610621e+01 -8.073666252745771e+01 -8.078834933088126e+01 -8.084005923244513e+01 -8.089179226408041e+01 - -8.094354846735196e+01 -8.099532786819320e+01 -8.104713042037783e+01 -8.109895608507813e+01 -8.115080492521992e+01 - -8.120267700205356e+01 -8.125457226837462e+01 -8.130649067623317e+01 -8.135843228315183e+01 -8.141039715010918e+01 - -8.146238524643556e+01 -8.151439653208425e+01 -8.156643102114791e+01 -8.161848874447259e+01 -8.167056974577932e+01 - -8.172267405314662e+01 -8.177480161920819e+01 -8.182695240289546e+01 -8.187912646377457e+01 -8.193132386298609e+01 - -8.198354456733288e+01 -8.203578853472443e+01 -8.208805578183410e+01 -8.214034634197473e+01 -8.219266025625411e+01 - -8.224499755029157e+01 -8.229735817995817e+01 -8.234974210798764e+01 -8.240214939431286e+01 -8.245458009683706e+01 - -8.250703416814667e+01 -8.255951156203467e+01 -8.261201234243612e+01 -8.266453657428882e+01 -8.271708421639993e+01 - -8.276965521981012e+01 -8.282224961062391e+01 -8.287486743131451e+01 -8.292750871476633e+01 -8.298017347733835e+01 - -8.303286167887651e+01 -8.308557328775250e+01 -8.313830836295337e+01 -8.319106696215761e+01 -8.324384904719405e+01 - -8.329665457280116e+01 -8.334948356120523e+01 -8.340233605179664e+01 -8.345521208513452e+01 -8.350811168407860e+01 - -8.356103479952203e+01 -8.361398139085040e+01 -8.366695152338559e+01 -8.371994526125894e+01 -8.377296255790387e+01 - -8.382600336547402e+01 -8.387906774170159e+01 -8.393215574692768e+01 -8.398526734635097e+01 -8.403840249721476e+01 - -8.409156122008268e+01 -8.414474355213920e+01 -8.419794953373223e+01 -8.425117918830632e+01 -8.430443246852916e+01 - -8.435770933516140e+01 -8.441100985211256e+01 -8.446433408298962e+01 -8.451768198704093e+01 -8.457105351533237e+01 - -8.462444869055821e+01 -8.467786755329161e+01 -8.473131014399300e+01 -8.478477648534972e+01 -8.483826652906932e+01 - -8.489178023573824e+01 -8.494531767243778e+01 -8.499887890373510e+01 -8.505246387764603e+01 -8.510607254206460e+01 - -8.515970496094809e+01 -8.521336120130535e+01 -8.526704122628841e+01 -8.532074498941530e+01 -8.537447250952404e+01 - -8.542822382319736e+01 -8.548199897267675e+01 -8.553579798342942e+01 -8.558962080816578e+01 -8.564346740685433e+01 - -8.569733784125194e+01 -8.575123217367282e+01 -8.580515036687339e+01 -8.585909237532205e+01 -8.591305821989287e+01 - -8.596704793875205e+01 -8.602106157282915e+01 -8.607509914567974e+01 -8.612916060859980e+01 -8.618324592155754e+01 - -8.623735515146925e+01 -8.629148836331387e+01 -8.634564550737286e+01 -8.639982653295500e+01 -8.645403150017543e+01 - -8.650826047252751e+01 -8.656251341621210e+01 -8.661679028858919e+01 -8.667109110894766e+01 -8.672541591317201e+01 - -8.677976474159972e+01 -8.683413761829634e+01 -8.688853449778628e+01 -8.694295534179228e+01 -8.699740021037117e+01 - -8.705186916402354e+01 -8.710636216669133e+01 -8.716087917454270e+01 -8.721542020920894e+01 -8.726998530877070e+01 - -8.732457451164281e+01 -8.737918783967393e+01 -8.743382524811331e+01 -8.748848670054353e+01 -8.754317226047976e+01 - -8.759788198894785e+01 -8.765261583708421e+01 -8.770737375634857e+01 -8.776215580938322e+01 -8.781696206132678e+01 - -8.787179247612183e+01 -8.792664700860111e+01 -8.798152567835336e+01 -8.803642852212045e+01 -8.809135558050070e+01 - -8.814630687756171e+01 -8.820128236739042e+01 -8.825628201129771e+01 -8.831130586947003e+01 -8.836635400284558e+01 - -8.842142637649435e+01 -8.847652294770472e+01 -8.853164373850628e+01 -8.858678878695027e+01 -8.864195813043362e+01 - -8.869715178945941e+01 -8.875236971760948e+01 -8.880761187808301e+01 -8.886287833946902e+01 -8.891816916696094e+01 - -8.897348430677987e+01 -8.902882370531137e+01 -8.908418742857141e+01 -8.913957554536425e+01 -8.919498801601753e+01 - -8.925042479199006e+01 -8.930588589774098e+01 -8.936137137472512e+01 -8.941688125937962e+01 -8.947241557120560e+01 - -8.952797426697802e+01 -8.958355731201681e+01 -8.963916476854843e+01 -8.969479669732335e+01 -8.975045305628245e+01 - -8.980613379692392e+01 -8.986183894778455e+01 -8.991756855389235e+01 -8.997332264920152e+01 -9.002910125051302e+01 - -9.008490431708829e+01 -9.014073181666647e+01 -9.019658380843681e+01 -9.025246034941333e+01 -9.030836139645970e+01 - -9.036428690661128e+01 -9.042023693773967e+01 -9.047621154925669e+01 -9.053221070589892e+01 -9.058823436476921e+01 - -9.064428254711031e+01 -9.070035529106499e+01 -9.075645263823618e+01 -9.081257461289793e+01 -9.086872116654884e+01 - -9.092489225918972e+01 -9.098108795760594e+01 -9.103730832657459e+01 -9.109355331605536e+01 -9.114982287548730e+01 - -9.120611706704364e+01 -9.126243595579022e+01 -9.131877950563008e+01 -9.137514767186437e+01 -9.143154047654943e+01 - -9.148795795857168e+01 -9.154440015738282e+01 -9.160086709537343e+01 -9.165735872612346e+01 -9.171387501169491e+01 - -9.177041601688784e+01 -9.182698180564800e+01 -9.188357233576582e+01 -9.194018755741556e+01 -9.199682749646104e+01 - -9.205349219658670e+01 -9.211018169707003e+01 -9.216689601912306e+01 -9.222363511610273e+01 -9.228039895018067e+01 - -9.233718758664240e+01 -9.239400108840672e+01 -9.245083940581294e+01 -9.250770248979978e+01 -9.256459040628322e+01 - -9.262150322244982e+01 -9.267844089559186e+01 -9.273540337476760e+01 -9.279239068599267e+01 -9.284940287335907e+01 - -9.290643997630693e+01 -9.296350201607783e+01 -9.302058894577094e+01 -9.307770072730455e+01 -9.313483742601555e+01 - -9.319199910633068e+01 -9.324918572561810e+01 -9.330639723351504e+01 -9.336363365579297e+01 -9.342089503640302e+01 - -9.347818141588093e+01 -9.353549281584256e+01 -9.359282918563940e+01 -9.365019048477910e+01 -9.370757678565749e+01 - -9.376498815769901e+01 -9.382242454555492e+01 -9.387988589305337e+01 -9.393737226550313e+01 -9.399488373202897e+01 - -9.405242025553964e+01 -9.410998178945039e+01 -9.416756835541781e+01 -9.422517999301114e+01 -9.428281674520871e+01 - -9.434047863667399e+01 -9.439816561540189e+01 -9.445587763836596e+01 -9.451361477512259e+01 -9.457137709520302e+01 - -9.462916455545547e+01 -9.468697710379740e+01 -9.474481476510589e+01 -9.480267758244509e+01 -9.486056559466863e+01 - -9.491847882335075e+01 -9.497641722515867e+01 -9.503438076487508e+01 -9.509236950465109e+01 -9.515038350409563e+01 - -9.520842271528107e+01 -9.526648709103007e+01 -9.532457669470300e+01 -9.538269159175374e+01 -9.544083174547335e+01 - -9.549899710997526e+01 -9.555718770482461e+01 -9.561540356780063e+01 -9.567364474408794e+01 -9.573191126075703e+01 - -9.579020306501620e+01 -9.584852011272490e+01 -9.590686247420874e+01 -9.596523021978578e+01 -9.602362330527772e+01 - -9.608204167783254e+01 -9.614048536439948e+01 -9.619895441016116e+01 -9.625744885343293e+01 -9.631596871403326e+01 - -9.637451394466026e+01 -9.643308450797647e+01 -9.649168047362274e+01 -9.655030190767742e+01 -9.660894875499127e+01 - -9.666762096089710e+01 -9.672631859388268e+01 -9.678504172537357e+01 -9.684379031539257e+01 -9.690256431417546e+01 - -9.696136374421286e+01 -9.702018864639355e+01 -9.707903906294442e+01 -9.713791501832830e+01 -9.719681646461351e+01 - -9.725574336170810e+01 -9.731469577327378e+01 -9.737367376351882e+01 -9.743267729508464e+01 -9.749170632178308e+01 - -9.755076086367355e+01 -9.760984095895955e+01 -9.766894665217343e+01 -9.772807797034233e+01 -9.778723486414395e+01 - -9.784641729236439e+01 -9.790562532257231e+01 -9.796485902036660e+01 -9.802411833468516e+01 -9.808340321418262e+01 - -9.814271372304191e+01 -9.820204992860188e+01 -9.826141179529722e+01 -9.832079927766843e+01 -9.838021239358226e+01 - -9.843965117935535e+01 -9.849911568177785e+01 -9.855860593025675e+01 -9.861812187419362e+01 -9.867766347002308e+01 - -9.873723078231735e+01 -9.879682387670165e+01 -9.885644271487612e+01 -9.891608724974174e+01 -9.897575750292785e+01 - -9.903545351466867e+01 -9.909517533088989e+01 -9.915492297862031e+01 -9.921469640360959e+01 -9.927449556058966e+01 - -9.933432052149955e+01 -9.939417135686639e+01 -9.945404801436261e+01 -9.951395044077229e+01 -9.957387870218038e+01 - -9.963383286719130e+01 -9.969381289518709e+01 -9.975381873630593e+01 -9.981385041293248e+01 -9.987390796877466e+01 - -9.993399146058783e+01 -9.999410091983435e+01 -1.000542362637563e+02 -1.001143974249114e+02 -1.001745845113392e+02 - -1.002347976270743e+02 -1.002950366846517e+02 -1.003553015922550e+02 -1.004155924321621e+02 -1.004759093011103e+02 - -1.005362521795820e+02 -1.005966210292817e+02 -1.006570158530568e+02 -1.007174366671700e+02 -1.007778835004040e+02 - -1.008383563749385e+02 -1.008988552740233e+02 -1.009593801813489e+02 -1.010199311212978e+02 -1.010805081231472e+02 - -1.011411111950619e+02 -1.012017403376325e+02 -1.012623955422635e+02 -1.013230768099676e+02 -1.013837841893743e+02 - -1.014445177207514e+02 -1.015052773633014e+02 -1.015660630775449e+02 -1.016268749103392e+02 -1.016877129150088e+02 - -1.017485770844115e+02 -1.018094673966629e+02 -1.018703838313761e+02 -1.019313263923028e+02 -1.019922951782496e+02 - -1.020532902664119e+02 -1.021143115524854e+02 -1.021753589342455e+02 -1.022364324992857e+02 -1.022975323519374e+02 - -1.023586584736673e+02 -1.024198108268543e+02 -1.024809894203941e+02 -1.025421942728475e+02 -1.026034253949216e+02 - -1.026646827901934e+02 -1.027259664415750e+02 -1.027872763473731e+02 -1.028486125881369e+02 -1.029099752254547e+02 - -1.029713641628286e+02 -1.030327793161952e+02 -1.030942208093169e+02 -1.031556887637190e+02 -1.032171830841550e+02 - -1.032787036718354e+02 -1.033402506305696e+02 -1.034018240681317e+02 -1.034634239055545e+02 -1.035250500515010e+02 - -1.035867025518952e+02 -1.036483814821213e+02 -1.037100868981441e+02 -1.037718188237329e+02 -1.038335771732939e+02 - -1.038953618747522e+02 -1.039571730194689e+02 -1.040190107055651e+02 -1.040808748947658e+02 -1.041427655331822e+02 - -1.042046826408667e+02 -1.042666262524425e+02 -1.043285963868752e+02 -1.043905930564436e+02 -1.044526162623378e+02 - -1.045146660069125e+02 -1.045767423082721e+02 -1.046388451777543e+02 -1.047009745838822e+02 -1.047631305085241e+02 - -1.048253130297424e+02 -1.048875222165416e+02 -1.049497580055002e+02 -1.050120203310284e+02 -1.050743092512860e+02 - -1.051366248384456e+02 -1.051989670969791e+02 -1.052613360137520e+02 -1.053237315729033e+02 -1.053861537661844e+02 - -1.054486026185219e+02 -1.055110781583045e+02 -1.055735803945944e+02 -1.056361093274371e+02 -1.056986649401382e+02 - -1.057612472323176e+02 -1.058238562855892e+02 -1.058864921618116e+02 -1.059491547618286e+02 -1.060118440001799e+02 - -1.060745600072047e+02 -1.061373029070868e+02 -1.062000725835928e+02 -1.062628689188559e+02 -1.063256920288941e+02 - -1.063885420424685e+02 -1.064514189054312e+02 -1.065143225392365e+02 -1.065772529506575e+02 -1.066402101774261e+02 - -1.067031942957903e+02 -1.067662053568374e+02 -1.068292432724951e+02 -1.068923079625714e+02 -1.069553995175528e+02 - -1.070185180380394e+02 -1.070816634944072e+02 -1.071448358336418e+02 -1.072080350393896e+02 -1.072712611247882e+02 - -1.073345141842783e+02 -1.073977942922143e+02 -1.074611013613008e+02 -1.075244353055826e+02 -1.075877962061142e+02 - -1.076511841502191e+02 -1.077145990832866e+02 -1.077780409492339e+02 -1.078415098280245e+02 -1.079050057992970e+02 - -1.079685288053471e+02 -1.080320787786834e+02 -1.080956557500093e+02 -1.081592597729443e+02 -1.082228908945775e+02 - -1.082865491424036e+02 -1.083502344720692e+02 -1.084139468448718e+02 -1.084776863165616e+02 -1.085414529440200e+02 - -1.086052466942038e+02 -1.086690675238350e+02 -1.087329154386204e+02 -1.087967904674474e+02 -1.088606926829425e+02 - -1.089246221377382e+02 -1.089885787607543e+02 -1.090525624876805e+02 -1.091165734050004e+02 -1.091806115963225e+02 - -1.092446769829633e+02 -1.093087694909110e+02 -1.093728892271333e+02 -1.094370362953419e+02 -1.095012106052476e+02 - -1.095654120623545e+02 -1.096296407493415e+02 -1.096938967647426e+02 -1.097581800933404e+02 -1.098224906984946e+02 - -1.098868285716250e+02 -1.099511937236656e+02 -1.100155862155477e+02 -1.100800060933800e+02 -1.101444532939841e+02 - -1.102089277564002e+02 -1.102734295378303e+02 -1.103379587096266e+02 -1.104025152815812e+02 -1.104670992426730e+02 - -1.105317105601886e+02 -1.105963492199813e+02 -1.106610153038629e+02 -1.107257088820756e+02 -1.107904298826226e+02 - -1.108551782361634e+02 -1.109199540262203e+02 -1.109847573373186e+02 -1.110495881051325e+02 -1.111144462586115e+02 - -1.111793318486534e+02 -1.112442449476576e+02 -1.113091855920787e+02 -1.113741537899001e+02 -1.114391494711626e+02 - -1.115041725824562e+02 -1.115692232145109e+02 -1.116343014623147e+02 -1.116994072937479e+02 -1.117645406555522e+02 - -1.118297015370191e+02 -1.118948899532702e+02 -1.119601059801944e+02 -1.120253496750247e+02 -1.120906209596036e+02 - -1.121559197660155e+02 -1.122212462027017e+02 -1.122866003728487e+02 -1.123519821822644e+02 -1.124173915349786e+02 - -1.124828285252852e+02 -1.125482932599049e+02 -1.126137857050017e+02 -1.126793058037530e+02 -1.127448535479451e+02 - -1.128104289543148e+02 -1.128760320907921e+02 -1.129416630123176e+02 -1.130073216706816e+02 -1.130730080183262e+02 - -1.131387221134510e+02 -1.132044640167948e+02 -1.132702336934948e+02 -1.133360310978225e+02 -1.134018562361866e+02 - -1.134677091387784e+02 -1.135335898787815e+02 -1.135994985091588e+02 -1.136654349589990e+02 -1.137313991629182e+02 - -1.137973912015162e+02 -1.138634111582333e+02 -1.139294589818884e+02 -1.139955346168527e+02 -1.140616381243277e+02 - -1.141277695680233e+02 -1.141939289048548e+02 -1.142601160860919e+02 -1.143263311472162e+02 -1.143925741390390e+02 - -1.144588450894802e+02 -1.145251440101338e+02 -1.145914708701818e+02 -1.146578256494022e+02 -1.147242084123678e+02 - -1.147906192149256e+02 -1.148570579932248e+02 -1.149235246826633e+02 -1.149900193353325e+02 -1.150565420227369e+02 - -1.151230927773426e+02 -1.151896716067799e+02 -1.152562784583746e+02 -1.153229132947855e+02 -1.153895762003063e+02 - -1.154562672526404e+02 -1.155229863814943e+02 -1.155897335150450e+02 -1.156565087233475e+02 -1.157233120892246e+02 - -1.157901436046917e+02 -1.158570032371645e+02 -1.159238909464663e+02 -1.159908067231330e+02 -1.160577506881430e+02 - -1.161247229415995e+02 -1.161917233696630e+02 -1.162587518588770e+02 -1.163258085112608e+02 -1.163928934406831e+02 - -1.164600065929374e+02 -1.165271479034755e+02 -1.165943174344564e+02 -1.166615152526160e+02 -1.167287413162901e+02 - -1.167959955757904e+02 -1.168632780577301e+02 -1.169305888112216e+02 -1.169979278990717e+02 -1.170652953548001e+02 - -1.171326910810820e+02 -1.172001149975291e+02 -1.172675672223445e+02 -1.173350478778825e+02 -1.174025569045121e+02 - -1.174700942215011e+02 -1.175376598456954e+02 -1.176052538191002e+02 -1.176728761867799e+02 -1.177405269796691e+02 - -1.178082061691247e+02 -1.178759137299273e+02 -1.179436497101298e+02 -1.180114141509050e+02 -1.180792069926326e+02 - -1.181470281872303e+02 -1.182148778335583e+02 -1.182827560287664e+02 -1.183506627162192e+02 -1.184185978220269e+02 - -1.184865613570652e+02 -1.185545533602401e+02 -1.186225738978121e+02 -1.186906230193939e+02 -1.187587006806511e+02 - -1.188268068350639e+02 -1.188949415213182e+02 -1.189631047837780e+02 -1.190312966043158e+02 -1.190995169567162e+02 - -1.191677658449030e+02 -1.192360432941998e+02 -1.193043493853908e+02 -1.193726841751893e+02 -1.194410475685670e+02 - -1.195094394794060e+02 -1.195778600089746e+02 -1.196463092648311e+02 -1.197147871923100e+02 -1.197832937276135e+02 - -1.198518289326376e+02 -1.199203928745778e+02 -1.199889855161324e+02 -1.200576068078755e+02 -1.201262567563797e+02 - -1.201949353935382e+02 -1.202636427965272e+02 -1.203323790196208e+02 -1.204011439802014e+02 -1.204699376081542e+02 - -1.205387600202684e+02 -1.206076113241917e+02 -1.206764914041025e+02 -1.207454001431820e+02 -1.208143376440890e+02 - -1.208833040296615e+02 -1.209522992839752e+02 -1.210213233653680e+02 -1.210903762679893e+02 -1.211594580022500e+02 - -1.212285686077949e+02 -1.212977081155049e+02 -1.213668764919694e+02 -1.214360737100132e+02 -1.215052998316942e+02 - -1.215745549154533e+02 -1.216438389160294e+02 -1.217131517838345e+02 -1.217824935556734e+02 -1.218518642837182e+02 - -1.219212639952166e+02 -1.219906927020717e+02 -1.220601503797327e+02 -1.221296370078328e+02 -1.221991526191948e+02 - -1.222686972509000e+02 -1.223382709038720e+02 -1.224078735702578e+02 -1.224775052432531e+02 -1.225471659287695e+02 - -1.226168556825330e+02 -1.226865745477072e+02 -1.227563224673916e+02 -1.228260993926653e+02 -1.228959054065903e+02 - -1.229657405910973e+02 -1.230356048916106e+02 -1.231054982500379e+02 -1.231754207307278e+02 -1.232453724007864e+02 - -1.233153532159101e+02 -1.233853631242201e+02 -1.234554021549459e+02 -1.235254703591199e+02 -1.235955677938801e+02 - -1.236656944915691e+02 -1.237358503792446e+02 -1.238060353939673e+02 -1.238762496180971e+02 -1.239464931371069e+02 - -1.240167659036240e+02 -1.240870678602586e+02 -1.241573990423949e+02 -1.242277595040581e+02 -1.242981492810638e+02 - -1.243685683872523e+02 -1.244390167667736e+02 -1.245094943779347e+02 -1.245800013053605e+02 -1.246505376299316e+02 - -1.247211032912332e+02 -1.247916982296097e+02 -1.248623225297382e+02 -1.249329762770640e+02 -1.250036594157741e+02 - -1.250743718736609e+02 -1.251451136541969e+02 -1.252158847947410e+02 -1.252866853925174e+02 -1.253575155184925e+02 - -1.254283750787370e+02 -1.254992639825418e+02 -1.255701823169751e+02 -1.256411301759969e+02 -1.257121075033584e+02 - -1.257831142369608e+02 -1.258541504415142e+02 -1.259252161922362e+02 -1.259963114795672e+02 -1.260674362758903e+02 - -1.261385905661348e+02 -1.262097743537985e+02 -1.262809877041053e+02 -1.263522306696565e+02 -1.264235031908370e+02 - -1.264948052148923e+02 -1.265661368287249e+02 -1.266374981169807e+02 -1.267088890156212e+02 -1.267803094502130e+02 - -1.268517594534262e+02 -1.269232390831601e+02 -1.269947483911282e+02 -1.270662874069690e+02 -1.271378560782095e+02 - -1.272094543594662e+02 -1.272810823158284e+02 -1.273527400123002e+02 -1.274244274030747e+02 -1.274961444355319e+02 - -1.275678911406106e+02 -1.276396675704015e+02 -1.277114737780431e+02 -1.277833097950603e+02 -1.278551755654751e+02 - -1.279270710424012e+02 -1.279989963028243e+02 -1.280709514152536e+02 -1.281429362904217e+02 -1.282149508513121e+02 - -1.282869952276877e+02 -1.283590695463467e+02 -1.284311737154509e+02 -1.285033076302067e+02 -1.285754713526335e+02 - -1.286476649682441e+02 -1.287198884897120e+02 -1.287921419051992e+02 -1.288644251776617e+02 -1.289367382880697e+02 - -1.290090813146567e+02 -1.290814543319980e+02 -1.291538573027727e+02 -1.292262901737162e+02 -1.292987529396840e+02 - -1.293712456190937e+02 -1.294437682764910e+02 -1.295163209673579e+02 -1.295889036647941e+02 -1.296615163353197e+02 - -1.297341590015173e+02 -1.298068316903185e+02 -1.298795343899871e+02 -1.299522670904091e+02 -1.300250298266263e+02 - -1.300978226354063e+02 -1.301706455152632e+02 -1.302434984561237e+02 -1.303163814518184e+02 -1.303892945098205e+02 - -1.304622376882688e+02 -1.305352110313897e+02 -1.306082144770936e+02 -1.306812479731976e+02 -1.307543116134598e+02 - -1.308274054850011e+02 -1.309005295024521e+02 -1.309736835845235e+02 -1.310468678387340e+02 -1.311200823754845e+02 - -1.311933271278942e+02 -1.312666020134129e+02 -1.313399070640916e+02 -1.314132423401880e+02 -1.314866079001839e+02 - -1.315600037753056e+02 -1.316334298895329e+02 -1.317068861777292e+02 -1.317803727255405e+02 -1.318538896215189e+02 - -1.319274368150577e+02 -1.320010142454794e+02 -1.320746219509807e+02 -1.321482599879661e+02 -1.322219283867981e+02 - -1.322956271602158e+02 -1.323693562765047e+02 -1.324431157110688e+02 -1.325169055122373e+02 -1.325907257242561e+02 - -1.326645763021127e+02 -1.327384572099461e+02 -1.328123685377604e+02 -1.328863103680995e+02 -1.329602826278048e+02 - -1.330342852393407e+02 -1.331083182633673e+02 -1.331823817787306e+02 -1.332564757988239e+02 -1.333306003141445e+02 - -1.334047552890586e+02 -1.334789407033280e+02 -1.335531566244299e+02 -1.336274031130300e+02 -1.337016801148342e+02 - -1.337759875748336e+02 -1.338503255501201e+02 -1.339246941130952e+02 -1.339990932852997e+02 -1.340735230609586e+02 - -1.341479833758948e+02 -1.342224741891434e+02 -1.342969956109889e+02 -1.343715477431406e+02 -1.344461305017541e+02 - -1.345207438015131e+02 -1.345953877367626e+02 -1.346700624038786e+02 -1.347447677276981e+02 -1.348195036263442e+02 - -1.348942701626209e+02 -1.349690674171868e+02 -1.350438953974369e+02 -1.351187540921076e+02 -1.351936434885642e+02 - -1.352685635848754e+02 -1.353435144232942e+02 -1.354184960414874e+02 -1.354935084145923e+02 -1.355685515128237e+02 - -1.356436253492364e+02 -1.357187299541088e+02 -1.357938653837732e+02 -1.358690316768758e+02 -1.359442287752637e+02 - -1.360194566279880e+02 -1.360947153097144e+02 -1.361700048911278e+02 -1.362453253013760e+02 -1.363206764782614e+02 - -1.363960585357406e+02 -1.364714715821978e+02 -1.365469155275740e+02 -1.366223902703805e+02 -1.366978958618521e+02 - -1.367734323848502e+02 -1.368489998960226e+02 -1.369245984210613e+02 -1.370002278880492e+02 -1.370758882331093e+02 - -1.371515795221331e+02 -1.372273018270698e+02 -1.373030551143317e+02 -1.373788393429953e+02 -1.374546545483291e+02 - -1.375305007816427e+02 -1.376063780822184e+02 -1.376822864668756e+02 -1.377582258746108e+02 -1.378341962588316e+02 - -1.379101977084133e+02 -1.379862303093919e+02 -1.380622940009784e+02 -1.381383887192652e+02 -1.382145145346940e+02 - -1.382906715205862e+02 -1.383668596274320e+02 -1.384430787972570e+02 -1.385193290610606e+02 -1.385956104734610e+02 - -1.386719230945808e+02 -1.387482669582360e+02 -1.388246419875133e+02 -1.389010481148665e+02 -1.389774854209464e+02 - -1.390539539951986e+02 -1.391304538140523e+02 -1.392069848343242e+02 -1.392835470473980e+02 -1.393601404693719e+02 - -1.394367651806349e+02 -1.395134212422815e+02 -1.395901085739362e+02 -1.396668271002043e+02 -1.397435769070855e+02 - -1.398203580874878e+02 -1.398971706005607e+02 -1.399740143977720e+02 -1.400508895336226e+02 -1.401277960614956e+02 - -1.402047339272718e+02 -1.402817030764181e+02 -1.403587035602461e+02 -1.404357354502877e+02 -1.405127987931110e+02 - -1.405898936026113e+02 -1.406670197869564e+02 -1.407441772794584e+02 -1.408213662197336e+02 -1.408985867371466e+02 - -1.409758387137537e+02 -1.410531220224061e+02 -1.411304367464428e+02 -1.412077829961380e+02 -1.412851607790223e+02 - -1.413625700771281e+02 -1.414400108732392e+02 -1.415174831646232e+02 -1.415949870057306e+02 -1.416725224388105e+02 - -1.417500894001226e+02 -1.418276878351835e+02 -1.419053178325258e+02 -1.419829794809226e+02 -1.420606727270934e+02 - -1.421383975074728e+02 -1.422161538594082e+02 -1.422939418408956e+02 -1.423717614916131e+02 -1.424496128273150e+02 - -1.425274957863782e+02 -1.426054103213069e+02 -1.426833565184944e+02 -1.427613344645970e+02 -1.428393441134355e+02 - -1.429173854035838e+02 -1.429954583454632e+02 -1.430735629773860e+02 -1.431516993773805e+02 -1.432298676007922e+02 - -1.433080675725197e+02 -1.433862992191345e+02 -1.434645626043482e+02 -1.435428578032951e+02 -1.436211847996638e+02 - -1.436995435672099e+02 -1.437779341314036e+02 -1.438563565210897e+02 -1.439348107268960e+02 -1.440132967358192e+02 - -1.440918145585468e+02 -1.441703642214681e+02 -1.442489457900865e+02 -1.443275593072134e+02 -1.444062046857781e+02 - -1.444848818522611e+02 -1.445635909172288e+02 -1.446423319927847e+02 -1.447211050130976e+02 -1.447999098925679e+02 - -1.448787466444589e+02 -1.449576153140356e+02 -1.450365159757091e+02 -1.451154486823820e+02 -1.451944133717774e+02 - -1.452734099863848e+02 -1.453524386029381e+02 -1.454314992962476e+02 -1.455105919991844e+02 -1.455897166474813e+02 - -1.456688733302556e+02 -1.457480621396693e+02 -1.458272830266799e+02 -1.459065359271370e+02 -1.459858208576615e+02 - -1.460651378591126e+02 -1.461444869885314e+02 -1.462238682831965e+02 -1.463032816851561e+02 -1.463827271416525e+02 - -1.464622047159361e+02 -1.465417144784923e+02 -1.466212564127396e+02 -1.467008304928943e+02 -1.467804367434297e+02 - -1.468600751934606e+02 -1.469397458404120e+02 -1.470194486722770e+02 -1.470991836710121e+02 -1.471789508433917e+02 - -1.472587503015001e+02 -1.473385821300154e+02 -1.474184461986837e+02 -1.474983423870870e+02 -1.475782708290815e+02 - -1.476582316674545e+02 -1.477382248264445e+02 -1.478182502096616e+02 -1.478983078567520e+02 -1.479783978350921e+02 - -1.480585201869469e+02 -1.481386749269736e+02 -1.482188619845118e+02 -1.482990813088785e+02 -1.483793330146163e+02 - -1.484596172099193e+02 -1.485399338123612e+02 -1.486202827323657e+02 -1.487006640423751e+02 -1.487810778248495e+02 - -1.488615240403001e+02 -1.489420026412511e+02 -1.490225136702235e+02 -1.491030571832025e+02 -1.491836332000337e+02 - -1.492642417202360e+02 -1.493448826981615e+02 -1.494255561054278e+02 -1.495062620278810e+02 -1.495870005487025e+02 - -1.496677716261896e+02 -1.497485751994623e+02 -1.498294112558179e+02 -1.499102798158717e+02 -1.499911809853331e+02 - -1.500721148441144e+02 -1.501530812838450e+02 -1.502340802026938e+02 -1.503151117132690e+02 -1.503961759364751e+02 - -1.504772728119622e+02 -1.505584022645880e+02 -1.506395643412949e+02 -1.507207591024668e+02 -1.508019865401696e+02 - -1.508832466324269e+02 -1.509645393694111e+02 -1.510458647628492e+02 -1.511272228985386e+02 -1.512086138412552e+02 - -1.512900374976176e+02 -1.513714937855876e+02 -1.514529828266537e+02 -1.515345047392310e+02 -1.516160594259147e+02 - -1.516976467776822e+02 -1.517792668548592e+02 -1.518609197460578e+02 -1.519426054836894e+02 -1.520243240750476e+02 - -1.521060754831553e+02 -1.521878596792744e+02 -1.522696767118938e+02 -1.523515266305248e+02 -1.524334094115421e+02 - -1.525153250314230e+02 -1.525972735401888e+02 -1.526792549864990e+02 -1.527612693400200e+02 -1.528433165631959e+02 - -1.529253966685747e+02 -1.530075096900777e+02 -1.530896556970147e+02 -1.531718347321965e+02 -1.532540466970516e+02 - -1.533362915133235e+02 -1.534185693253995e+02 -1.535008802693854e+02 -1.535832242256197e+02 -1.536656010621809e+02 - -1.537480108538752e+02 -1.538304537113657e+02 -1.539129296820158e+02 -1.539954387715506e+02 -1.540779808824423e+02 - -1.541605559457948e+02 -1.542431641104905e+02 -1.543258055115917e+02 -1.544084800111010e+02 -1.544911874726015e+02 - -1.545739280390565e+02 -1.546567018609975e+02 -1.547395088398511e+02 -1.548223488576198e+02 -1.549052219677139e+02 - -1.549881282595875e+02 -1.550710677954614e+02 -1.551540406026988e+02 -1.552370465964632e+02 -1.553200857053796e+02 - -1.554031580241178e+02 -1.554862636500489e+02 -1.555694025253043e+02 -1.556525745801794e+02 -1.557357798528659e+02 - -1.558190184045264e+02 -1.559022902803117e+02 -1.559855954979769e+02 -1.560689339817060e+02 -1.561523056771075e+02 - -1.562357107090587e+02 -1.563191491909100e+02 -1.564026210106382e+02 -1.564861260558312e+02 -1.565696644378976e+02 - -1.566532362813955e+02 -1.567368415396626e+02 -1.568204801387562e+02 -1.569041520668287e+02 -1.569878573487146e+02 - -1.570715960938785e+02 -1.571553683828581e+02 -1.572391740958522e+02 -1.573230131265335e+02 -1.574068856228085e+02 - -1.574907917295132e+02 -1.575747313249683e+02 -1.576587042737324e+02 -1.577427106518309e+02 -1.578267505715277e+02 - -1.579108240785769e+02 -1.579949311783184e+02 -1.580790717809458e+02 -1.581632458187553e+02 -1.582474534075981e+02 - -1.583316946623155e+02 -1.584159695101536e+02 -1.585002778727259e+02 -1.585846198367120e+02 -1.586689954874005e+02 - -1.587534047394542e+02 -1.588378475061590e+02 -1.589223238659185e+02 -1.590068339195322e+02 -1.590913776922658e+02 - -1.591759551748261e+02 -1.592605662952183e+02 -1.593452110061037e+02 -1.594298894214712e+02 -1.595146016508511e+02 - -1.595993476246111e+02 -1.596841272537272e+02 -1.597689405507699e+02 -1.598537875632453e+02 -1.599386683768111e+02 - -1.600235830481832e+02 -1.601085314801616e+02 -1.601935135899282e+02 -1.602785295061083e+02 -1.603635793509372e+02 - -1.604486630096468e+02 -1.605337803660765e+02 -1.606189315354990e+02 -1.607041166452176e+02 -1.607893356392255e+02 - -1.608745884397152e+02 -1.609598750649831e+02 -1.610451955612870e+02 -1.611305499906227e+02 -1.612159383917271e+02 - -1.613013606945609e+02 -1.613868168398436e+02 -1.614723069201057e+02 -1.615578310304217e+02 -1.616433891242326e+02 - -1.617289811339727e+02 -1.618146070496823e+02 -1.619002668955830e+02 -1.619859607750138e+02 -1.620716887676450e+02 - -1.621574507793529e+02 -1.622432467219253e+02 -1.623290767045893e+02 -1.624149408340039e+02 -1.625008390091176e+02 - -1.625867711331680e+02 -1.626727373342588e+02 -1.627587377384768e+02 -1.628447722389764e+02 -1.629308407201184e+02 - -1.630169432640222e+02 -1.631030799800713e+02 -1.631892508889492e+02 -1.632754559784962e+02 -1.633616951938801e+02 - -1.634479685044198e+02 -1.635342760187116e+02 -1.636206178291233e+02 -1.637069938238325e+02 -1.637934038942077e+02 - -1.638798481485683e+02 -1.639663267112721e+02 -1.640528395538795e+02 -1.641393866180353e+02 -1.642259678785196e+02 - -1.643125833411851e+02 -1.643992331030405e+02 -1.644859172470150e+02 -1.645726357085657e+02 -1.646593884180614e+02 - -1.647461754329907e+02 -1.648329968179324e+02 -1.649198525387065e+02 -1.650067425502886e+02 -1.650936668630355e+02 - -1.651806255134507e+02 -1.652676185872448e+02 -1.653546461444497e+02 -1.654417080931755e+02 -1.655288043499995e+02 - -1.656159350172886e+02 -1.657031001994683e+02 -1.657902998234105e+02 -1.658775338117127e+02 -1.659648022474274e+02 - -1.660521052162188e+02 -1.661394426537408e+02 -1.662268144894047e+02 -1.663142207776613e+02 -1.664016615975541e+02 - -1.664891370014617e+02 -1.665766470055737e+02 -1.666641915079906e+02 -1.667517704334961e+02 -1.668393839316945e+02 - -1.669270321420214e+02 -1.670147149384157e+02 -1.671024321837371e+02 -1.671901839620226e+02 -1.672779703889409e+02 - -1.673657914855093e+02 -1.674536472385115e+02 -1.675415375924466e+02 -1.676294625158688e+02 -1.677174221158364e+02 - -1.678054164853866e+02 -1.678934455229663e+02 -1.679815091339810e+02 -1.680696074462591e+02 -1.681577405863894e+02 - -1.682459084535819e+02 -1.683341109324726e+02 -1.684223480767776e+02 -1.685106199767677e+02 -1.685989266998525e+02 - -1.686872682758898e+02 -1.687756446073924e+02 -1.688640556163956e+02 -1.689525014303699e+02 -1.690409821718389e+02 - -1.691294977381033e+02 -1.692180480141565e+02 -1.693066330609834e+02 -1.693952529706734e+02 -1.694839077837423e+02 - -1.695725975104607e+02 -1.696613220916933e+02 -1.697500814887782e+02 -1.698388758143547e+02 -1.699277051650943e+02 - -1.700165694224996e+02 -1.701054684738952e+02 -1.701944024450633e+02 -1.702833714670375e+02 -1.703723754534025e+02 - -1.704614143033400e+02 -1.705504880758685e+02 -1.706395968591658e+02 -1.707287406982126e+02 -1.708179196055015e+02 - -1.709071335067704e+02 -1.709963823462651e+02 -1.710856662290167e+02 -1.711749852543236e+02 -1.712643393377691e+02 - -1.713537283867857e+02 -1.714431524599174e+02 -1.715326116432521e+02 -1.716221059819435e+02 -1.717116354891412e+02 - -1.718012000909151e+02 -1.718907997312464e+02 -1.719804345128430e+02 -1.720701045346718e+02 -1.721598097220100e+02 - -1.722495499971131e+02 -1.723393254438396e+02 -1.724291361494486e+02 -1.725189820532021e+02 -1.726088630837053e+02 - -1.726987792749333e+02 -1.727887306891670e+02 -1.728787173965418e+02 -1.729687394350333e+02 -1.730587967061244e+02 - -1.731488891286860e+02 -1.732390168276344e+02 -1.733291799265234e+02 -1.734193783374131e+02 -1.735096119603506e+02 - -1.735998808588243e+02 -1.736901851222248e+02 -1.737805247801124e+02 -1.738708998286339e+02 -1.739613101901119e+02 - -1.740517558114003e+02 -1.741422368113012e+02 -1.742327533050288e+02 -1.743233052214973e+02 -1.744138924793676e+02 - -1.745045151425876e+02 -1.745951732822802e+02 -1.746858668529805e+02 -1.747765958032038e+02 -1.748673601739718e+02 - -1.749581600245709e+02 -1.750489953948396e+02 -1.751398663036498e+02 -1.752307727054541e+02 -1.753217145616989e+02 - -1.754126919262226e+02 -1.755037048571098e+02 -1.755947533370347e+02 -1.756858373371216e+02 -1.757769568577038e+02 - -1.758681119173357e+02 -1.759593025782490e+02 -1.760505288876894e+02 -1.761417907892832e+02 -1.762330882344909e+02 - -1.763244213097290e+02 -1.764157900964081e+02 -1.765071945209611e+02 -1.765986345094344e+02 -1.766901101413071e+02 - -1.767816215026837e+02 -1.768731685527375e+02 -1.769647512369523e+02 -1.770563695729838e+02 -1.771480236027573e+02 - -1.772397133931058e+02 -1.773314389867134e+02 -1.774232003047593e+02 -1.775149972814722e+02 -1.776068300247813e+02 - -1.776986986385443e+02 -1.777906030366335e+02 -1.778825431235826e+02 -1.779745189565556e+02 -1.780665306226855e+02 - -1.781585781763529e+02 -1.782506616334199e+02 -1.783427808884287e+02 -1.784349358629673e+02 -1.785271267081259e+02 - -1.786193535668995e+02 -1.787116163204012e+02 -1.788039148425030e+02 -1.788962492399977e+02 -1.789886196318098e+02 - -1.790810259524725e+02 -1.791734681201561e+02 -1.792659461719689e+02 -1.793584601742520e+02 -1.794510101913400e+02 - -1.795435962594126e+02 -1.796362183040394e+02 -1.797288762617232e+02 -1.798215702233099e+02 -1.799143002757676e+02 - -1.800070663362093e+02 -1.800998683262517e+02 -1.801927063553792e+02 -1.802855805315161e+02 -1.803784907684791e+02 - -1.804714369692463e+02 -1.805644191875481e+02 -1.806574375103104e+02 -1.807504920064915e+02 -1.808435827084130e+02 - -1.809367095198169e+02 -1.810298723599504e+02 -1.811230713386593e+02 -1.812163065647390e+02 -1.813095779521854e+02 - -1.814028854036152e+02 -1.814962289709267e+02 -1.815896087407728e+02 -1.816830247895420e+02 -1.817764771515762e+02 - -1.818699657032943e+02 -1.819634903439186e+02 -1.820570512218083e+02 -1.821506484855823e+02 -1.822442820357622e+02 - -1.823379517614509e+02 -1.824316577541746e+02 -1.825254001134493e+02 -1.826191787683301e+02 -1.827129936397535e+02 - -1.828068447866412e+02 -1.829007322929544e+02 -1.829946562048259e+02 -1.830886165373395e+02 -1.831826132192083e+02 - -1.832766461922778e+02 -1.833707155372913e+02 -1.834648213380734e+02 -1.835589635518759e+02 -1.836531421229175e+02 - -1.837473570698571e+02 -1.838416084358642e+02 -1.839358962877114e+02 -1.840302206684350e+02 -1.841245815025237e+02 - -1.842189787235884e+02 -1.843134124202761e+02 -1.844078826806361e+02 -1.845023894352911e+02 -1.845969326205561e+02 - -1.846915123529413e+02 -1.847861287393624e+02 -1.848807816681596e+02 -1.849754710227848e+02 -1.850701968857076e+02 - -1.851649593688754e+02 -1.852597585031284e+02 -1.853545942804591e+02 -1.854494666185751e+02 -1.855443754618861e+02 - -1.856393209358935e+02 -1.857343031604275e+02 -1.858293220515437e+02 -1.859243775087027e+02 -1.860194695687597e+02 - -1.861145983033516e+02 -1.862097637858479e+02 -1.863049660540466e+02 -1.864002050017272e+02 -1.864954805431744e+02 - -1.865907928187129e+02 -1.866861419596013e+02 -1.867815278347963e+02 -1.868769503164351e+02 -1.869724095516791e+02 - -1.870679056966096e+02 -1.871634386679672e+02 -1.872590083560524e+02 -1.873546147847470e+02 -1.874502580123688e+02 - -1.875459381013990e+02 -1.876416550903780e+02 -1.877374089179168e+02 -1.878331995340542e+02 -1.879290270344656e+02 - -1.880248915055781e+02 -1.881207928511883e+02 -1.882167309755823e+02 -1.883127059676341e+02 -1.884087179360091e+02 - -1.885047668839511e+02 -1.886008527852007e+02 -1.886969756009047e+02 -1.887931353152428e+02 -1.888893320171184e+02 - -1.889855657829229e+02 -1.890818365342772e+02 -1.891781441947396e+02 -1.892744888503877e+02 -1.893708705921393e+02 - -1.894672893677523e+02 -1.895637451161106e+02 -1.896602378837592e+02 -1.897567677352667e+02 -1.898533346996371e+02 - -1.899499387807097e+02 -1.900465799172331e+02 -1.901432580674921e+02 -1.902399733330072e+02 -1.903367258125687e+02 - -1.904335154508099e+02 -1.905303421711713e+02 -1.906272059664800e+02 -1.907241068668330e+02 -1.908210449820209e+02 - -1.909180203947948e+02 -1.910150330000556e+02 -1.911120827002041e+02 -1.912091696154924e+02 -1.913062938635582e+02 - -1.914034553337337e+02 -1.915006539182285e+02 -1.915978897490666e+02 -1.916951629619544e+02 -1.917924734675151e+02 - -1.918898211586861e+02 -1.919872060827436e+02 -1.920846283161583e+02 -1.921820878978424e+02 -1.922795848438701e+02 - -1.923771191165239e+02 -1.924746906889474e+02 -1.925722996315181e+02 -1.926699460069926e+02 -1.927676297504074e+02 - -1.928653507913461e+02 -1.929631091652971e+02 -1.930609049367203e+02 -1.931587381800568e+02 -1.932566089358633e+02 - -1.933545170991796e+02 -1.934524625825225e+02 -1.935504455138344e+02 -1.936484660231147e+02 -1.937465240331655e+02 - -1.938446194535055e+02 -1.939427523477156e+02 -1.940409227930324e+02 -1.941391307672549e+02 -1.942373762317632e+02 - -1.943356591817002e+02 -1.944339796386271e+02 -1.945323376960147e+02 -1.946307334225392e+02 -1.947291667157886e+02 - -1.948276374816129e+02 -1.949261458299981e+02 -1.950246918758956e+02 -1.951232755499811e+02 -1.952218967672293e+02 - -1.953205555640852e+02 -1.954192520091347e+02 -1.955179861780584e+02 -1.956167581109271e+02 -1.957155676982765e+02 - -1.958144148511486e+02 -1.959132997121442e+02 -1.960122224157670e+02 -1.961111828325720e+02 -1.962101808324193e+02 - -1.963092165463342e+02 -1.964082901163006e+02 -1.965074014669716e+02 -1.966065505047830e+02 -1.967057372806285e+02 - -1.968049618689787e+02 -1.969042242941536e+02 -1.970035245570506e+02 -1.971028626150270e+02 -1.972022384428475e+02 - -1.973016521284466e+02 -1.974011037520065e+02 -1.975005932495305e+02 -1.976001205455443e+02 -1.976996856628438e+02 - -1.977992886519515e+02 -1.978989295760255e+02 -1.979986084767589e+02 -1.980983252973461e+02 -1.981980799861144e+02 - -1.982978726104215e+02 -1.983977032396124e+02 -1.984975718319531e+02 -1.985974783450467e+02 -1.986974228449224e+02 - -1.987974053983538e+02 -1.988974259666649e+02 -1.989974844962869e+02 -1.990975809795281e+02 -1.991977154414513e+02 - -1.992978879922588e+02 -1.993980987169082e+02 -1.994983475142392e+02 -1.995986342853965e+02 -1.996989591268633e+02 - -1.997993221398394e+02 -1.998997232490551e+02 -2.000001623829878e+02 -2.001006396615730e+02 -2.002011551976202e+02 - -2.003017088839768e+02 -2.004023006006677e+02 -2.005029303963877e+02 -2.006035983645368e+02 -2.007043046086661e+02 - -2.008050491826254e+02 -2.009058319313084e+02 -2.010066527248718e+02 -2.011075117434797e+02 -2.012084091672780e+02 - -2.013093448663347e+02 -2.014103186854462e+02 -2.015113306783989e+02 -2.016123809487723e+02 -2.017134695903300e+02 - -2.018145966520298e+02 -2.019157620134241e+02 -2.020169655668574e+02 -2.021182074252480e+02 -2.022194877090834e+02 - -2.023208063485549e+02 -2.024221632682046e+02 -2.025235585602719e+02 -2.026249923196053e+02 -2.027264644837921e+02 - -2.028279749730532e+02 -2.029295237954015e+02 -2.030311109992572e+02 -2.031327367068774e+02 -2.032344010007734e+02 - -2.033361037306376e+02 -2.034378447601810e+02 -2.035396242420057e+02 -2.036414423389593e+02 -2.037432989659801e+02 - -2.038451940079258e+02 -2.039471274772405e+02 -2.040490994323931e+02 -2.041511099883670e+02 -2.042531592234435e+02 - -2.043552470125819e+02 -2.044573732391661e+02 -2.045595380236004e+02 -2.046617414909655e+02 -2.047639835480296e+02 - -2.048662640993485e+02 -2.049685832589404e+02 -2.050709411450770e+02 -2.051733376835843e+02 -2.052757727854042e+02 - -2.053782464943871e+02 -2.054807588829732e+02 -2.055833100050551e+02 -2.056858998827895e+02 -2.057885284299405e+02 - -2.058911955783421e+02 -2.059939014405005e+02 -2.060966461276917e+02 -2.061994295656012e+02 -2.063022516666823e+02 - -2.064051124760526e+02 -2.065080120661920e+02 -2.066109504863692e+02 -2.067139277576765e+02 -2.068169438117121e+02 - -2.069199985973326e+02 -2.070230922219201e+02 -2.071262247789163e+02 -2.072293961474789e+02 -2.073326062201854e+02 - -2.074358551575783e+02 -2.075391431180403e+02 -2.076424699833530e+02 -2.077458356179337e+02 -2.078492400933438e+02 - -2.079526835133251e+02 -2.080561659031989e+02 -2.081596872578975e+02 -2.082632475292167e+02 -2.083668466898186e+02 - -2.084704848389632e+02 -2.085741620623951e+02 -2.086778782651976e+02 -2.087816333480700e+02 -2.088854273748348e+02 - -2.089892604383302e+02 -2.090931325843364e+02 -2.091970438282278e+02 -2.093009941108145e+02 -2.094049833841979e+02 - -2.095090117202067e+02 -2.096130791905716e+02 -2.097171857469022e+02 -2.098213313423286e+02 -2.099255160561849e+02 - -2.100297399619016e+02 -2.101340029830976e+02 -2.102383050403986e+02 -2.103426461922712e+02 -2.104470265253758e+02 - -2.105514461013085e+02 -2.106559049410852e+02 -2.107604029284658e+02 -2.108649399745926e+02 -2.109695162373935e+02 - -2.110741318706494e+02 -2.111787867647689e+02 -2.112834807867834e+02 -2.113882139735869e+02 -2.114929864074473e+02 - -2.115977981822681e+02 -2.117026493533424e+02 -2.118075398098887e+02 -2.119124694556393e+02 -2.120174384184601e+02 - -2.121224468216736e+02 -2.122274945462991e+02 -2.123325814769304e+02 -2.124377077547605e+02 -2.125428735238108e+02 - -2.126480786828185e+02 -2.127533231155498e+02 -2.128586068911697e+02 -2.129639301084739e+02 -2.130692927993837e+02 - -2.131746949622090e+02 -2.132801365276879e+02 -2.133856174488912e+02 -2.134911378357916e+02 -2.135966977951921e+02 - -2.137022972643151e+02 -2.138079361581469e+02 -2.139136144723085e+02 -2.140193322420075e+02 -2.141250895801643e+02 - -2.142308865713384e+02 -2.143367231089345e+02 -2.144425990899214e+02 -2.145485146166798e+02 -2.146544697958461e+02 - -2.147604645456698e+02 -2.148664987887291e+02 -2.149725726533044e+02 -2.150786862586875e+02 -2.151848394825147e+02 - -2.152910321964648e+02 -2.153972644900385e+02 -2.155035364828845e+02 -2.156098481974242e+02 -2.157161996246267e+02 - -2.158225907268823e+02 -2.159290214790141e+02 -2.160354919341570e+02 -2.161420021424622e+02 -2.162485520638355e+02 - -2.163551416576007e+02 -2.164617709709994e+02 -2.165684400663080e+02 -2.166751489780245e+02 -2.167818977145845e+02 - -2.168886862079515e+02 -2.169955144082682e+02 -2.171023824148656e+02 -2.172092903208214e+02 -2.173162380450137e+02 - -2.174232255130703e+02 -2.175302528518165e+02 -2.176373201799158e+02 -2.177444273821862e+02 -2.178515743317612e+02 - -2.179587610888773e+02 -2.180659877532527e+02 -2.181732543954297e+02 -2.182805610486399e+02 -2.183879076260487e+02 - -2.184952940541088e+02 -2.186027204324891e+02 -2.187101868605661e+02 -2.188176932633304e+02 -2.189252395535715e+02 - -2.190328257696591e+02 -2.191404519835346e+02 -2.192481182758485e+02 -2.193558246894080e+02 -2.194635711069396e+02 - -2.195713574321837e+02 -2.196791838130171e+02 -2.197870503917547e+02 -2.198949570443306e+02 -2.200029036478261e+02 - -2.201108903502962e+02 -2.202189173008489e+02 -2.203269843818326e+02 -2.204350914576510e+02 -2.205432385876858e+02 - -2.206514258738742e+02 -2.207596533933995e+02 -2.208679211808499e+02 -2.209762291251867e+02 -2.210845771334710e+02 - -2.211929653307878e+02 -2.213013938407175e+02 -2.214098625627986e+02 -2.215183713969045e+02 -2.216269204682873e+02 - -2.217355099024502e+02 -2.218441396005216e+02 -2.219528094497077e+02 -2.220615195058979e+02 -2.221702698646027e+02 - -2.222790606111339e+02 -2.223878917838657e+02 -2.224967632436199e+02 -2.226056748766821e+02 -2.227146268487432e+02 - -2.228236193240230e+02 -2.229326521814535e+02 -2.230417252803019e+02 -2.231508386864637e+02 -2.232599925050409e+02 - -2.233691867913336e+02 -2.234784215614204e+02 -2.235876967242961e+02 -2.236970122086523e+02 -2.238063681290529e+02 - -2.239157646015454e+02 -2.240252015622403e+02 -2.241346789340316e+02 -2.242441967668838e+02 -2.243537551247286e+02 - -2.244633540002964e+02 -2.245729933685804e+02 -2.246826732048266e+02 -2.247923935126906e+02 -2.249021544092157e+02 - -2.250119559889259e+02 -2.251217981428817e+02 -2.252316807628839e+02 -2.253416039471573e+02 -2.254515678046834e+02 - -2.255615722810486e+02 -2.256716173029860e+02 -2.257817028852108e+02 -2.258918290784169e+02 -2.260019959892315e+02 - -2.261122036854213e+02 -2.262224520233766e+02 -2.263327408802082e+02 -2.264430704272837e+02 -2.265534408332552e+02 - -2.266638519616550e+02 -2.267743036660735e+02 -2.268847960654481e+02 -2.269953292962885e+02 -2.271059033000460e+02 - -2.272165179952407e+02 -2.273271734037251e+02 -2.274378695801794e+02 -2.275486066072624e+02 -2.276593845334010e+02 - -2.277702032421150e+02 -2.278810626343348e+02 -2.279919628455381e+02 -2.281029040172474e+02 -2.282138860806176e+02 - -2.283249089376286e+02 -2.284359725839265e+02 -2.285470770593814e+02 -2.286582224870930e+02 -2.287694089544078e+02 - -2.288806363224278e+02 -2.289919044640359e+02 -2.291032135254801e+02 -2.292145636582007e+02 -2.293259547610424e+02 - -2.294373867252146e+02 -2.295488596639802e+02 -2.296603736910369e+02 -2.297719286997702e+02 -2.298835245768747e+02 - -2.299951614025932e+02 -2.301068392919157e+02 -2.302185583052736e+02 -2.303303184582155e+02 -2.304421196413199e+02 - -2.305539617649887e+02 -2.306658449438852e+02 -2.307777692999738e+02 -2.308897347801602e+02 -2.310017413072381e+02 - -2.311137888826106e+02 -2.312258775426401e+02 -2.313380073849178e+02 -2.314501784790464e+02 -2.315623907214496e+02 - -2.316746440227619e+02 -2.317869385236417e+02 -2.318992743527083e+02 -2.320116513604021e+02 -2.321240694060221e+02 - -2.322365286624793e+02 -2.323490293043759e+02 -2.324615711994689e+02 -2.325741541998047e+02 -2.326867784014305e+02 - -2.327994439322068e+02 -2.329121508032486e+02 -2.330248989898164e+02 -2.331376884404961e+02 -2.332505191272475e+02 - -2.333633911421986e+02 -2.334763045743060e+02 -2.335892593796759e+02 -2.337022554911374e+02 -2.338152928812627e+02 - -2.339283715644559e+02 -2.340414916827054e+02 -2.341546533474617e+02 -2.342678564204413e+02 -2.343811007676228e+02 - -2.344943865217682e+02 -2.346077138212040e+02 -2.347210825597340e+02 -2.348344926295532e+02 -2.349479441609453e+02 - -2.350614372851493e+02 -2.351749718991416e+02 -2.352885478850955e+02 -2.354021653002366e+02 -2.355158242429473e+02 - -2.356295248011875e+02 -2.357432670145577e+02 -2.358570507396431e+02 -2.359708758587992e+02 -2.360847425404777e+02 - -2.361986509531367e+02 -2.363126009791645e+02 -2.364265924750662e+02 -2.365406254798825e+02 -2.366547000814751e+02 - -2.367688163804559e+02 -2.368829744348273e+02 -2.369971741194025e+02 -2.371114153287764e+02 -2.372256982198593e+02 - -2.373400229428812e+02 -2.374543893590377e+02 -2.375687973238754e+02 -2.376832469593778e+02 -2.377977384043928e+02 - -2.379122715987879e+02 -2.380268464580362e+02 -2.381414629990116e+02 -2.382561212769444e+02 -2.383708213990897e+02 - -2.384855634334210e+02 -2.386003472387607e+02 -2.387151726904082e+02 -2.388300399387221e+02 -2.389449491374237e+02 - -2.390599001786255e+02 -2.391748929369255e+02 -2.392899274784697e+02 -2.394050039061344e+02 -2.395201222781684e+02 - -2.396352826134916e+02 -2.397504848183333e+02 -2.398657288168898e+02 -2.399810147179146e+02 -2.400963426277219e+02 - -2.402117124583125e+02 -2.403271241258893e+02 -2.404425777577767e+02 -2.405580734795174e+02 -2.406736111984077e+02 - -2.407891907995794e+02 -2.409048122977546e+02 -2.410204757554728e+02 -2.411361812969551e+02 -2.412519290053517e+02 - -2.413677187378485e+02 -2.414835503650167e+02 -2.415994240369316e+02 -2.417153399089511e+02 -2.418312978780588e+02 - -2.419472978191357e+02 -2.420633397770240e+02 -2.421794238369657e+02 -2.422955500758429e+02 -2.424117185344053e+02 - -2.425279291172331e+02 -2.426441817421263e+02 -2.427604765159341e+02 -2.428768135466203e+02 -2.429931927575585e+02 - -2.431096140668555e+02 -2.432260775561414e+02 -2.433425833145866e+02 -2.434591312980004e+02 -2.435757214497087e+02 - -2.436923537964655e+02 -2.438090283895336e+02 -2.439257452947832e+02 -2.440425045463603e+02 -2.441593060369063e+02 - -2.442761496825792e+02 -2.443930356351059e+02 -2.445099640393889e+02 -2.446269347774639e+02 -2.447439477225602e+02 - -2.448610029755453e+02 -2.449781006544274e+02 -2.450952407181387e+02 -2.452124231032676e+02 -2.453296478161015e+02 - -2.454469148921256e+02 -2.455642244139170e+02 -2.456815764363974e+02 -2.457989708567751e+02 -2.459164075868465e+02 - -2.460338867544718e+02 -2.461514084874868e+02 -2.462689726975661e+02 -2.463865792818051e+02 -2.465042282951439e+02 - -2.466219198202147e+02 -2.467396538925739e+02 -2.468574305187124e+02 -2.469752496359336e+02 -2.470931112029433e+02 - -2.472110153332446e+02 -2.473289621270786e+02 -2.474469514768406e+02 -2.475649832814832e+02 -2.476830576740329e+02 - -2.478011747871381e+02 -2.479193345178656e+02 -2.480375367456449e+02 -2.481557815149384e+02 -2.482740689103307e+02 - -2.483923990118631e+02 -2.485107718618152e+02 -2.486291873559622e+02 -2.487476454083695e+02 -2.488661461527674e+02 - -2.489846897184250e+02 -2.491032759971039e+02 -2.492219048675295e+02 -2.493405763937896e+02 -2.494592906781626e+02 - -2.495780477903268e+02 -2.496968477531592e+02 -2.498156904349301e+02 -2.499345757349562e+02 -2.500535038313474e+02 - -2.501724748933778e+02 -2.502914887761886e+02 -2.504105453266259e+02 -2.505296446724864e+02 -2.506487869586733e+02 - -2.507679721175656e+02 -2.508872000588222e+02 -2.510064708137437e+02 -2.511257844438344e+02 -2.512451410097723e+02 - -2.513645405425343e+02 -2.514839829551193e+02 -2.516034681806881e+02 -2.517229963510282e+02 -2.518425675906852e+02 - -2.519621817966139e+02 -2.520818388494823e+02 -2.522015387924022e+02 -2.523212817096907e+02 -2.524410676880414e+02 - -2.525608967718439e+02 -2.526807688338955e+02 -2.528006837687293e+02 -2.529206417294141e+02 -2.530406428681973e+02 - -2.531606870755077e+02 -2.532807742357317e+02 -2.534009044709059e+02 -2.535210779031462e+02 -2.536412944172385e+02 - -2.537615538911017e+02 -2.538818564125164e+02 -2.540022021028112e+02 -2.541225910076441e+02 -2.542430231270507e+02 - -2.543634983542462e+02 -2.544840166121418e+02 -2.546045780492533e+02 -2.547251828099108e+02 -2.548458307960956e+02 - -2.549665218842466e+02 -2.550872560909815e+02 -2.552080334828205e+02 -2.553288541857174e+02 -2.554497182835964e+02 - -2.555706256328296e+02 -2.556915761009198e+02 -2.558125698274442e+02 -2.559336069560756e+02 -2.560546873747970e+02 - -2.561758109689862e+02 -2.562969778692906e+02 -2.564181882127723e+02 -2.565394419168841e+02 -2.566607388759341e+02 - -2.567820791112567e+02 -2.569034626862424e+02 -2.570248897054782e+02 -2.571463602359873e+02 -2.572678741533426e+02 - -2.573894313462550e+02 -2.575110319474426e+02 -2.576326760938784e+02 -2.577543636955484e+02 -2.578760946446893e+02 - -2.579978689895271e+02 -2.581196868133063e+02 -2.582415481833543e+02 -2.583634531275302e+02 -2.584854015317316e+02 - -2.586073933093156e+02 -2.587294286254374e+02 -2.588515076317444e+02 -2.589736301740566e+02 -2.590957960996737e+02 - -2.592180055676404e+02 -2.593402587446819e+02 -2.594625555165019e+02 -2.595848957490105e+02 -2.597072795099639e+02 - -2.598297069067293e+02 -2.599521780032740e+02 -2.600746928207452e+02 -2.601972512524080e+02 -2.603198532148209e+02 - -2.604424988455961e+02 -2.605651882765137e+02 -2.606879213949725e+02 -2.608106980758151e+02 -2.609335183880386e+02 - -2.610563824372016e+02 -2.611792902809524e+02 -2.613022419394243e+02 -2.614252373306019e+02 -2.615482763897488e+02 - -2.616713592233935e+02 -2.617944859260970e+02 -2.619176563732862e+02 -2.620408704583867e+02 -2.621641283659552e+02 - -2.622874302706103e+02 -2.624107760160917e+02 -2.625341654302978e+02 -2.626575986086381e+02 -2.627810756876698e+02 - -2.629045967010318e+02 -2.630281616427657e+02 -2.631517704514422e+02 -2.632754230861743e+02 -2.633991196437133e+02 - -2.635228602105341e+02 -2.636466446943674e+02 -2.637704729984163e+02 -2.638943451865159e+02 -2.640182613561179e+02 - -2.641422215785110e+02 -2.642662258795402e+02 -2.643902741294400e+02 -2.645143662245587e+02 -2.646385023213122e+02 - -2.647626825745115e+02 -2.648869068724856e+02 -2.650111750962730e+02 -2.651354873642347e+02 -2.652598438005879e+02 - -2.653842443156531e+02 -2.655086888035231e+02 -2.656331773072787e+02 -2.657577099091213e+02 -2.658822866987512e+02 - -2.660069077230897e+02 -2.661315728504449e+02 -2.662562819710931e+02 -2.663810352417937e+02 -2.665058328192844e+02 - -2.666306745937331e+02 -2.667555604333347e+02 -2.668804903849584e+02 -2.670054645383429e+02 -2.671304829760297e+02 - -2.672555457413816e+02 -2.673806527282453e+02 -2.675058038464400e+02 -2.676309992191929e+02 -2.677562389652032e+02 - -2.678815229716541e+02 -2.680068511277727e+02 -2.681322235624782e+02 -2.682576404136338e+02 -2.683831016151858e+02 - -2.685086070756685e+02 -2.686341568058856e+02 -2.687597508516357e+02 -2.688853892964312e+02 -2.690110721950252e+02 - -2.691367994494158e+02 -2.692625709807897e+02 -2.693883869398372e+02 -2.695142474621058e+02 -2.696401523930688e+02 - -2.697661015819900e+02 -2.698920951833660e+02 -2.700181333642693e+02 -2.701442160368443e+02 -2.702703430840482e+02 - -2.703965145270174e+02 -2.705227304331903e+02 -2.706489909170355e+02 -2.707752960482972e+02 -2.709016456707917e+02 - -2.710280396495872e+02 -2.711544781606855e+02 -2.712809613853167e+02 -2.714074892146895e+02 -2.715340615102555e+02 - -2.716606783044584e+02 -2.717873396730564e+02 -2.719140456940721e+02 -2.720407964136753e+02 -2.721675917483545e+02 - -2.722944316245073e+02 -2.724213161378437e+02 -2.725482453844213e+02 -2.726752192923742e+02 -2.728022377909456e+02 - -2.729293009817382e+02 -2.730564089616648e+02 -2.731835616365174e+02 -2.733107589046467e+02 -2.734380008257563e+02 - -2.735652874983575e+02 -2.736926190148396e+02 -2.738199954194386e+02 -2.739474165698984e+02 -2.740748823405867e+02 - -2.742023928588563e+02 -2.743299482670098e+02 -2.744575485141638e+02 -2.745851935229188e+02 -2.747128833029967e+02 - -2.748406178969678e+02 -2.749683973916734e+02 -2.750962218440648e+02 -2.752240911472609e+02 -2.753520052060601e+02 - -2.754799641358123e+02 -2.756079680559450e+02 -2.757360168916492e+02 -2.758641105650285e+02 -2.759922491800748e+02 - -2.761204328366440e+02 -2.762486614361617e+02 -2.763769348745897e+02 -2.765052532244616e+02 -2.766336165883748e+02 - -2.767620250126050e+02 -2.768904785041199e+02 -2.770189769689730e+02 -2.771475203398639e+02 -2.772761087569904e+02 - -2.774047423518460e+02 -2.775334210136085e+02 -2.776621446145333e+02 -2.777909132015001e+02 -2.779197268642361e+02 - -2.780485856892346e+02 -2.781774897218528e+02 -2.783064388461343e+02 -2.784354329669438e+02 -2.785644722337429e+02 - -2.786935567875348e+02 -2.788226864908934e+02 -2.789518612068105e+02 -2.790810810783757e+02 -2.792103462555617e+02 - -2.793396566357773e+02 -2.794690121008859e+02 -2.795984127231330e+02 -2.797278586088501e+02 -2.798573498103315e+02 - -2.799868863353985e+02 -2.801164680680156e+02 -2.802460949220819e+02 -2.803757670550874e+02 -2.805054846206144e+02 - -2.806352475130235e+02 -2.807650555997772e+02 -2.808949088999684e+02 -2.810248074853591e+02 -2.811547514867556e+02 - -2.812847409903677e+02 -2.814147758449749e+02 -2.815448559108459e+02 -2.816749813316353e+02 -2.818051522586102e+02 - -2.819353685901064e+02 -2.820656302199222e+02 -2.821959372766401e+02 -2.823262898869716e+02 -2.824566879353637e+02 - -2.825871312931868e+02 -2.827176200217700e+02 -2.828481542276227e+02 -2.829787340080183e+02 -2.831093594072626e+02 - -2.832400302670260e+02 -2.833707464559445e+02 -2.835015081531469e+02 -2.836323155420096e+02 -2.837631685124079e+02 - -2.838940669226656e+02 -2.840250107984012e+02 -2.841560002155769e+02 -2.842870352842360e+02 -2.844181160721325e+02 - -2.845492424437817e+02 -2.846804142799303e+02 -2.848116317294889e+02 -2.849428949404899e+02 -2.850742037892878e+02 - -2.852055581519247e+02 -2.853369581748677e+02 -2.854684040068092e+02 -2.855998955349205e+02 -2.857314326251873e+02 - -2.858630153203723e+02 -2.859946437114748e+02 -2.861263179056654e+02 -2.862580379663874e+02 -2.863898037660037e+02 - -2.865216151879669e+02 -2.866534723511688e+02 -2.867853753832939e+02 -2.869173242117615e+02 -2.870493187426322e+02 - -2.871813589967982e+02 -2.873134450373917e+02 -2.874455769816758e+02 -2.875777549027032e+02 -2.877099786425546e+02 - -2.878422480619707e+02 -2.879745633273037e+02 -2.881069246090204e+02 -2.882393317884377e+02 -2.883717847366556e+02 - -2.885042835730584e+02 -2.886368284288774e+02 -2.887694192344474e+02 -2.889020558953364e+02 -2.890347384189399e+02 - -2.891674668528066e+02 -2.893002413032724e+02 -2.894330618447220e+02 -2.895659283649483e+02 -2.896988407604515e+02 - -2.898317991491523e+02 -2.899648036558058e+02 -2.900978542110840e+02 -2.902309507220182e+02 -2.903640931951591e+02 - -2.904972816775983e+02 -2.906305162790740e+02 -2.907637970750559e+02 -2.908971239412933e+02 -2.910304967707643e+02 - -2.911639157250792e+02 -2.912973809535366e+02 -2.914308922875549e+02 -2.915644495654761e+02 -2.916980529712119e+02 - -2.918317026983915e+02 -2.919653986339440e+02 -2.920991406314096e+02 -2.922329287174719e+02 -2.923667629702973e+02 - -2.925006435008390e+02 -2.926345703772706e+02 -2.927685434638595e+02 -2.929025626397000e+02 -2.930366280470975e+02 - -2.931707398343328e+02 -2.933048979103752e+02 -2.934391021578708e+02 -2.935733525934834e+02 -2.937076492857184e+02 - -2.938419923764308e+02 -2.939763819565550e+02 -2.941108178399977e+02 -2.942452998623305e+02 -2.943798282228154e+02 - -2.945144031200941e+02 -2.946490243866398e+02 -2.947836918481424e+02 -2.949184056693277e+02 -2.950531660302706e+02 - -2.951879728334102e+02 -2.953228259514730e+02 -2.954577254159683e+02 -2.955926713017622e+02 -2.957276636983648e+02 - -2.958627026572042e+02 -2.959977880627373e+02 -2.961329198152110e+02 -2.962680980450039e+02 -2.964033228802077e+02 - -2.965385942096344e+02 -2.966739119278574e+02 -2.968092761917713e+02 -2.969446871501122e+02 -2.970801446566606e+02 - -2.972156485544735e+02 -2.973511989386669e+02 -2.974867959450954e+02 -2.976224396205114e+02 -2.977581299655766e+02 - -2.978938668856917e+02 -2.980296503111913e+02 -2.981654803674056e+02 -2.983013571739824e+02 -2.984372806328453e+02 - -2.985732506311156e+02 -2.987092672144286e+02 -2.988453304703744e+02 -2.989814404958496e+02 -2.991175973412398e+02 - -2.992538008615809e+02 -2.993900509369414e+02 -2.995263477428711e+02 -2.996626914493826e+02 -2.997990819088619e+02 - -2.999355189707111e+02 -3.000720027900217e+02 -3.002085335269560e+02 -3.003451110562723e+02 -3.004817352353309e+02 - -3.006184061373012e+02 -3.007551238767678e+02 -3.008918885181671e+02 -3.010287000846923e+02 -3.011655584847104e+02 - -3.013024636430795e+02 -3.014394156654455e+02 -3.015764146559894e+02 -3.017134605322491e+02 -3.018505532010304e+02 - -3.019876927128527e+02 -3.021248791518991e+02 -3.022621125932933e+02 -3.023993930706231e+02 -3.025367204603900e+02 - -3.026740946641424e+02 -3.028115158406990e+02 -3.029489841386069e+02 -3.030864994080570e+02 -3.032240615026816e+02 - -3.033616705882347e+02 -3.034993268395738e+02 -3.036370301558538e+02 -3.037747804087723e+02 -3.039125776359002e+02 - -3.040504219146317e+02 -3.041883133157825e+02 -3.043262518737324e+02 -3.044642374836954e+02 -3.046022700638564e+02 - -3.047403497634464e+02 -3.048784767248004e+02 -3.050166508316213e+02 -3.051548719471290e+02 -3.052931401112401e+02 - -3.054314554166776e+02 -3.055698179906950e+02 -3.057082279030724e+02 -3.058466849591645e+02 -3.059851889955948e+02 - -3.061237402384871e+02 -3.062623389075358e+02 -3.064009848072192e+02 -3.065396777363650e+02 -3.066784178864098e+02 - -3.068172054654241e+02 -3.069560403554044e+02 -3.070949224023651e+02 -3.072338516344630e+02 -3.073728281334552e+02 - -3.075118520133569e+02 -3.076509233435525e+02 -3.077900419826468e+02 -3.079292078053290e+02 -3.080684209614084e+02 - -3.082076816048298e+02 -3.083469896309615e+02 -3.084863449149456e+02 -3.086257475095906e+02 -3.087651975081579e+02 - -3.089046949880547e+02 -3.090442399817611e+02 -3.091838323579038e+02 -3.093234720151574e+02 -3.094631591362355e+02 - -3.096028938900603e+02 -3.097426761063483e+02 -3.098825056148365e+02 -3.100223825845469e+02 -3.101623071983122e+02 - -3.103022793549238e+02 -3.104422989228102e+02 -3.105823659329897e+02 -3.107224804626276e+02 -3.108626426108901e+02 - -3.110028524323948e+02 -3.111431097815640e+02 -3.112834145351391e+02 -3.114237668593314e+02 -3.115641669247677e+02 - -3.117046146302696e+02 -3.118451098470761e+02 -3.119856526079039e+02 -3.121262429897644e+02 -3.122668810853719e+02 - -3.124075669478935e+02 -3.125483004566077e+02 -3.126890815070839e+02 -3.128299102339429e+02 -3.129707867704560e+02 - -3.131117110054437e+02 -3.132526828292356e+02 -3.133937023826453e+02 -3.135347698019019e+02 -3.136758849544115e+02 - -3.138170476993112e+02 -3.139582581314797e+02 -3.140995163841689e+02 -3.142408225083815e+02 -3.143821765079714e+02 - -3.145235782804463e+02 -3.146650277504123e+02 -3.148065250572144e+02 -3.149480703283944e+02 -3.150896634295446e+02 - -3.152313042212708e+02 -3.153729928061792e+02 -3.155147293192109e+02 -3.156565137826469e+02 -3.157983461803634e+02 - -3.159402264552761e+02 -3.160821545730877e+02 -3.162241306316100e+02 -3.163661547129774e+02 -3.165082267045055e+02 - -3.166503465083330e+02 -3.167925142807053e+02 -3.169347301718565e+02 -3.170769940538677e+02 -3.172193057829434e+02 - -3.173616654299331e+02 -3.175040731106142e+02 -3.176465289058318e+02 -3.177890328440690e+02 -3.179315847792938e+02 - -3.180741845934695e+02 -3.182168324550577e+02 -3.183595285351408e+02 -3.185022727287870e+02 -3.186450649049847e+02 - -3.187879051044167e+02 -3.189307934072479e+02 -3.190737298798787e+02 -3.192167145562098e+02 -3.193597473539087e+02 - -3.195028282067584e+02 -3.196459572292360e+02 -3.197891345287240e+02 -3.199323600035334e+02 -3.200756335516368e+02 - -3.202189552787263e+02 -3.203623252990410e+02 -3.205057435532916e+02 -3.206492099607363e+02 -3.207927245283494e+02 - -3.209362873029775e+02 -3.210798984032395e+02 -3.212235579095965e+02 -3.213672656781062e+02 -3.215110215776564e+02 - -3.216548257528610e+02 -3.217986783602123e+02 -3.219425793279964e+02 -3.220865285490494e+02 -3.222305260026159e+02 - -3.223745717228416e+02 -3.225186658770672e+02 -3.226628085862362e+02 -3.228069996525048e+02 -3.229512388959131e+02 - -3.230955265268207e+02 -3.232398627556209e+02 -3.233842474025269e+02 -3.235286802821290e+02 -3.236731615767077e+02 - -3.238176914785998e+02 -3.239622698526831e+02 -3.241068965416273e+02 -3.242515716267282e+02 -3.243962952303619e+02 - -3.245410674006047e+02 -3.246858881442026e+02 -3.248307573768830e+02 -3.249756750377737e+02 -3.251206412506237e+02 - -3.252656561247559e+02 -3.254107195271718e+02 -3.255558313340717e+02 -3.257009917007768e+02 -3.258462007853361e+02 - -3.259914584775946e+02 -3.261367646471811e+02 -3.262821193510638e+02 -3.264275226864755e+02 -3.265729747243638e+02 - -3.267184754961565e+02 -3.268640249014856e+02 -3.270096228564299e+02 -3.271552694746495e+02 -3.273009648690628e+02 - -3.274467089520415e+02 -3.275925016223748e+02 -3.277383429250694e+02 -3.278842329472037e+02 -3.280301717979274e+02 - -3.281761595333842e+02 -3.283221959756238e+02 -3.284682809773962e+02 -3.286144147483458e+02 -3.287605974914733e+02 - -3.289068290263132e+02 -3.290531091681708e+02 -3.291994380988984e+02 -3.293458160115122e+02 -3.294922427771376e+02 - -3.296387182388717e+02 -3.297852424495862e+02 -3.299318155124273e+02 -3.300784375218649e+02 -3.302251085265343e+02 - -3.303718284004092e+02 -3.305185970357408e+02 -3.306654145725511e+02 -3.308122811494171e+02 -3.309591966513669e+02 - -3.311061609508276e+02 -3.312531741233722e+02 -3.314002362831168e+02 -3.315473474952068e+02 -3.316945077733321e+02 - -3.318417169743284e+02 -3.319889749946440e+02 -3.321362820460264e+02 -3.322836383216903e+02 -3.324310436254205e+02 - -3.325784977579187e+02 -3.327260008969810e+02 -3.328735532388732e+02 -3.330211546766479e+02 -3.331688050699581e+02 - -3.333165044480712e+02 -3.334642528918999e+02 -3.336120505193238e+02 -3.337598974031960e+02 -3.339077933992973e+02 - -3.340557383761620e+02 -3.342037324704123e+02 -3.343517758263186e+02 -3.344998683506588e+02 -3.346480099317598e+02 - -3.347962006216366e+02 -3.349444405123485e+02 -3.350927296924430e+02 -3.352410681997821e+02 -3.353894558729969e+02 - -3.355378925848257e+02 -3.356863785436656e+02 -3.358349139484366e+02 -3.359834986244929e+02 -3.361321323883865e+02 - -3.362808153950241e+02 -3.364295478191028e+02 -3.365783295761255e+02 -3.367271605486342e+02 -3.368760407465185e+02 - -3.370249702279324e+02 -3.371739491167402e+02 -3.373229774932894e+02 -3.374720551981496e+02 -3.376211820935624e+02 - -3.377703583682330e+02 -3.379195842066430e+02 -3.380688594499171e+02 -3.382181839217990e+02 -3.383675577198622e+02 - -3.385169809890102e+02 -3.386664537896355e+02 -3.388159761271593e+02 -3.389655478716282e+02 -3.391151689236262e+02 - -3.392648394412631e+02 -3.394145595795439e+02 -3.395643292235305e+02 -3.397141482525620e+02 -3.398640167930273e+02 - -3.400139349724158e+02 -3.401639026755699e+02 -3.403139197760493e+02 -3.404639863449279e+02 -3.406141024957107e+02 - -3.407642683141136e+02 -3.409144838324194e+02 -3.410647488969659e+02 -3.412150633828331e+02 -3.413654274660125e+02 - -3.415158413252182e+02 -3.416663048491409e+02 -3.418168178992377e+02 -3.419673805180489e+02 -3.421179927901010e+02 - -3.422686547867838e+02 -3.424193665441726e+02 -3.425701279702224e+02 -3.427209389917095e+02 -3.428717997388184e+02 - -3.430227103286458e+02 -3.431736706225328e+02 -3.433246804902436e+02 -3.434757400909901e+02 -3.436268495884827e+02 - -3.437780088749811e+02 -3.439292178162220e+02 -3.440804764432992e+02 -3.442317848369893e+02 -3.443831431114438e+02 - -3.445345513395477e+02 -3.446860093957458e+02 -3.448375171638715e+02 -3.449890747637513e+02 -3.451406823209921e+02 - -3.452923397483303e+02 -3.454440469383874e+02 -3.455958039161959e+02 -3.457476107544265e+02 -3.458994675838882e+02 - -3.460513744837874e+02 -3.462033312687789e+02 -3.463553377809081e+02 -3.465073942363314e+02 -3.466595008454457e+02 - -3.468116574214998e+02 -3.469638637732855e+02 -3.471161200889126e+02 -3.472684265676839e+02 -3.474207830743587e+02 - -3.475731894457752e+02 -3.477256457416318e+02 -3.478781520698926e+02 -3.480307085087305e+02 -3.481833150905516e+02 - -3.483359716944890e+02 -3.484886782275422e+02 -3.486414348614480e+02 -3.487942417546251e+02 -3.489470987474849e+02 - -3.491000056682386e+02 -3.492529626143035e+02 -3.494059697303613e+02 -3.495590270809477e+02 -3.497121346735108e+02 - -3.498652923672977e+02 -3.500185000578142e+02 -3.501717579338015e+02 -3.503250661735650e+02 -3.504784246204307e+02 - -3.506318331106053e+02 -3.507852917867942e+02 -3.509388008057230e+02 -3.510923600737020e+02 -3.512459694729739e+02 - -3.513996290399252e+02 -3.515533388531561e+02 -3.517070990059733e+02 -3.518609095547224e+02 -3.520147703931951e+02 - -3.521686814254426e+02 -3.523226427591028e+02 -3.524766545004363e+02 -3.526307165466042e+02 -3.527848288024159e+02 - -3.529389914123712e+02 -3.530932045168612e+02 -3.532474680001527e+02 -3.534017817301934e+02 -3.535561457657783e+02 - -3.537105602073667e+02 -3.538650251312291e+02 -3.540195405716707e+02 -3.541741064193253e+02 -3.543287225825957e+02 - -3.544833891846346e+02 -3.546381063473606e+02 -3.547928739730113e+02 -3.549476919508821e+02 -3.551025603381796e+02 - -3.552574792297605e+02 -3.554124487031720e+02 -3.555674687945711e+02 -3.557225393918643e+02 -3.558776604020463e+02 - -3.560328319567154e+02 -3.561880541805177e+02 -3.563433269456882e+02 -3.564986501330765e+02 -3.566540239103983e+02 - -3.568094484429710e+02 -3.569649235996524e+02 -3.571204492251743e+02 -3.572760253642205e+02 -3.574316521198430e+02 - -3.575873296286128e+02 -3.577430579645793e+02 -3.578988369181832e+02 -3.580546663122107e+02 -3.582105463824335e+02 - -3.583664773634632e+02 -3.585224590722860e+02 -3.586784912980774e+02 -3.588345741363943e+02 -3.589907077420278e+02 - -3.591468922003262e+02 -3.593031275347307e+02 -3.594594135904955e+02 -3.596157502414973e+02 -3.597721376542854e+02 - -3.599285759961583e+02 -3.600850651447366e+02 -3.602416049709182e+02 -3.603981956083848e+02 -3.605548371920680e+02 - -3.607115295991184e+02 -3.608682726958015e+02 -3.610250665626241e+02 -3.611819113190277e+02 -3.613388070259530e+02 - -3.614957536972620e+02 -3.616527512170044e+02 -3.618097994957786e+02 -3.619668986801910e+02 -3.621240489112448e+02 - -3.622812500715253e+02 -3.624385020268735e+02 -3.625958048345691e+02 -3.627531585959862e+02 -3.629105633974360e+02 - -3.630680192762735e+02 -3.632255260890885e+02 -3.633830837209757e+02 -3.635406923518125e+02 -3.636983521500620e+02 - -3.638560629437486e+02 -3.640138245654421e+02 -3.641716372063300e+02 -3.643295010634408e+02 -3.644874159985495e+02 - -3.646453818454157e+02 -3.648033986609884e+02 -3.649614665547653e+02 -3.651195856232492e+02 -3.652777559169987e+02 - -3.654359773157880e+02 -3.655942497193339e+02 -3.657525732779061e+02 -3.659109481367831e+02 -3.660693741707290e+02 - -3.662278512419212e+02 -3.663863794327037e+02 -3.665449588644519e+02 -3.667035895945005e+02 -3.668622716357800e+02 - -3.670210048876434e+02 -3.671797892763418e+02 -3.673386249492966e+02 -3.674975120447079e+02 -3.676564504427247e+02 - -3.678154400208724e+02 -3.679744809042344e+02 -3.681335732252156e+02 -3.682927168979475e+02 -3.684519118222935e+02 - -3.686111580593141e+02 -3.687704557033292e+02 -3.689298048205014e+02 -3.690892054329191e+02 -3.692486574145354e+02 - -3.694081606700869e+02 -3.695677153755793e+02 -3.697273216946131e+02 -3.698869794698993e+02 -3.700466885253786e+02 - -3.702064489307988e+02 -3.703662608017668e+02 -3.705261241915196e+02 -3.706860391012269e+02 -3.708460053861607e+02 - -3.710060229388483e+02 -3.711660919467376e+02 -3.713262125796104e+02 -3.714863846416646e+02 -3.716466079328989e+02 - -3.718068826020972e+02 -3.719672088201144e+02 -3.721275864973102e+02 -3.722880155098476e+02 -3.724484958575989e+02 - -3.726090275883345e+02 -3.727696108177087e+02 -3.729302456171431e+02 -3.730909318132427e+02 -3.732516692484294e+02 - -3.734124580732086e+02 -3.735732984485285e+02 -3.737341902690280e+02 -3.738951333966488e+02 -3.740561278288502e+02 - -3.742171736164895e+02 -3.743782708884933e+02 -3.745394197314636e+02 -3.747006199846337e+02 -3.748618715145197e+02 - -3.750231745441332e+02 -3.751845292967938e+02 -3.753459356405600e+02 -3.755073934398666e+02 -3.756689028999150e+02 - -3.758304642401999e+02 -3.759920773966298e+02 -3.761537422764503e+02 -3.763154589558405e+02 -3.764772275566993e+02 - -3.766390482148706e+02 -3.768009210261144e+02 -3.769628459119104e+02 -3.771248228066682e+02 -3.772868518707951e+02 - -3.774489332703654e+02 -3.776110669681248e+02 -3.777732529036114e+02 -3.779354911268638e+02 -3.780977817328078e+02 - -3.782601248854201e+02 -3.784225207068740e+02 -3.785849690830777e+02 -3.787474699201715e+02 -3.789100234414875e+02 - -3.790726298611719e+02 -3.792352890394379e+02 -3.793980008403989e+02 -3.795607654977005e+02 -3.797235832511840e+02 - -3.798864539959452e+02 -3.800493775732837e+02 -3.802123539540593e+02 -3.803753831256555e+02 -3.805384650119894e+02 - -3.807015994897982e+02 -3.808647863105625e+02 -3.810280252452890e+02 -3.811913162683451e+02 -3.813546593533040e+02 - -3.815180542672069e+02 -3.816815007606327e+02 -3.818449987248433e+02 -3.820085480876401e+02 -3.821721487823003e+02 - -3.823358007029311e+02 -3.824995035814819e+02 -3.826632571794644e+02 -3.828270615387958e+02 -3.829909166775790e+02 - -3.831548222382581e+02 -3.833187778788636e+02 -3.834827836954302e+02 -3.836468397830658e+02 -3.838109457951704e+02 - -3.839751013606573e+02 -3.841393064522010e+02 -3.843035610985582e+02 -3.844678652090594e+02 -3.846322186342679e+02 - -3.847966211091070e+02 -3.849610723938522e+02 -3.851255724658270e+02 -3.852901213276589e+02 -3.854547188661456e+02 - -3.856193651039130e+02 -3.857840607227301e+02 -3.859488064858506e+02 -3.861136028233281e+02 -3.862784501283425e+02 - -3.864433489797775e+02 -3.866083000045549e+02 -3.867733038360474e+02 -3.869383610689728e+02 -3.871034721369783e+02 - -3.872686374886131e+02 -3.874338577931016e+02 -3.875991337168530e+02 -3.877644656943423e+02 -3.879298541437876e+02 - -3.880952996503134e+02 -3.882608028487801e+02 -3.884263644060860e+02 -3.885919849359946e+02 -3.887576648076931e+02 - -3.889234044110585e+02 -3.890892044633024e+02 -3.892550656828005e+02 -3.894209884652491e+02 -3.895869732058733e+02 - -3.897530206206903e+02 -3.899191314265681e+02 -3.900853060229904e+02 -3.902515447813749e+02 -3.904178482782592e+02 - -3.905842171832736e+02 -3.907506523333024e+02 -3.909171542011455e+02 -3.910837216360146e+02 -3.912503530200719e+02 - -3.914170464908692e+02 -3.915838000867597e+02 -3.917506116939103e+02 -3.919174791997058e+02 -3.920844006485843e+02 - -3.922513741233318e+02 -3.924183977030698e+02 -3.925854694180132e+02 -3.927525871064144e+02 -3.929197486330507e+02 - -3.930869521607613e+02 -3.932541958513385e+02 -3.934214775643266e+02 -3.935887951493436e+02 -3.937561467185514e+02 - -3.939235303999417e+02 -3.940909441222876e+02 -3.942583857858931e+02 -3.944258533764072e+02 -3.945933449213566e+02 - -3.947608585304349e+02 -3.949283922804248e+02 -3.950959440342958e+02 -3.952635116636291e+02 -3.954310932882606e+02 - -3.955986870327357e+02 -3.957662907921835e+02 -3.959339024467546e+02 -3.961015200461023e+02 -3.962691416638499e+02 - 1.070000000000000e-01 1.069682658750319e-01 1.069365186252596e-01 1.069047582677665e-01 1.068729848196356e-01 - 1.068411982979503e-01 1.068093987197937e-01 1.067775861022493e-01 1.067457604624000e-01 1.067139218173294e-01 - 1.066820701841205e-01 1.066502055798566e-01 1.066183280216209e-01 1.065864375264968e-01 1.065545341115673e-01 - 1.065226177939159e-01 1.064906885906257e-01 1.064587465187799e-01 1.064267915954618e-01 1.063948238377547e-01 - 1.063628432627417e-01 1.063308498875062e-01 1.062988437291314e-01 1.062668248047005e-01 1.062347931312967e-01 - 1.062027487260033e-01 1.061706916059036e-01 1.061386217880807e-01 1.061065392896180e-01 1.060744441275985e-01 - 1.060423363191058e-01 1.060102158812228e-01 1.059780828310330e-01 1.059459371856195e-01 1.059137789620655e-01 - 1.058816081774544e-01 1.058494248488693e-01 1.058172289933936e-01 1.057850206281103e-01 1.057527997701029e-01 - 1.057205664364545e-01 1.056883206442483e-01 1.056560624105677e-01 1.056237917524958e-01 1.055915086871159e-01 - 1.055592132315112e-01 1.055269054027650e-01 1.054945852179606e-01 1.054622526941811e-01 1.054299078485097e-01 - 1.053975506980299e-01 1.053651812598247e-01 1.053327995509774e-01 1.053004055885713e-01 1.052679993896897e-01 - 1.052355809714157e-01 1.052031503508325e-01 1.051707075450236e-01 1.051382525710719e-01 1.051057854460610e-01 - 1.050733061870738e-01 1.050408148111938e-01 1.050083113355042e-01 1.049757957770881e-01 1.049432681530288e-01 - 1.049107284804097e-01 1.048781767763138e-01 1.048456130578245e-01 1.048130373420250e-01 1.047804496459986e-01 - 1.047478499868284e-01 1.047152383815977e-01 1.046826148473898e-01 1.046499794012880e-01 1.046173320603753e-01 - 1.045846728417352e-01 1.045520017624508e-01 1.045193188396054e-01 1.044866240902822e-01 1.044539175315645e-01 - 1.044211991805354e-01 1.043884690542783e-01 1.043557271698764e-01 1.043229735444130e-01 1.042902081949712e-01 - 1.042574311386343e-01 1.042246423924855e-01 1.041918419736082e-01 1.041590298990855e-01 1.041262061860007e-01 - 1.040933708514369e-01 1.040605239124776e-01 1.040276653862059e-01 1.039947952897050e-01 1.039619136400582e-01 - 1.039290204543487e-01 1.038961157496599e-01 1.038631995430748e-01 1.038302718516768e-01 1.037973326925491e-01 - 1.037643820827749e-01 1.037314200394375e-01 1.036984465796201e-01 1.036654617204061e-01 1.036324654788785e-01 - 1.035994578721206e-01 1.035664389172158e-01 1.035334086312472e-01 1.035003670312980e-01 1.034673141344516e-01 - 1.034342499577912e-01 1.034011745183999e-01 1.033680878333612e-01 1.033349899197580e-01 1.033018807946739e-01 - 1.032687604751918e-01 1.032356289783953e-01 1.032024863213673e-01 1.031693325211913e-01 1.031361675949504e-01 - 1.031029915597278e-01 1.030698044326069e-01 1.030366062306709e-01 1.030033969710030e-01 1.029701766706864e-01 - 1.029369453468044e-01 1.029037030164402e-01 1.028704496966771e-01 1.028371854045984e-01 1.028039101572872e-01 - 1.027706239718267e-01 1.027373268653004e-01 1.027040188547913e-01 1.026706999573827e-01 1.026373701901580e-01 - 1.026040295702002e-01 1.025706781145926e-01 1.025373158404186e-01 1.025039427647613e-01 1.024705589047040e-01 - 1.024371642773299e-01 1.024037588997223e-01 1.023703427889643e-01 1.023369159621393e-01 1.023034784363305e-01 - 1.022700302286212e-01 1.022365713560945e-01 1.022031018358337e-01 1.021696216849221e-01 1.021361309204428e-01 - 1.021026295594792e-01 1.020691176191145e-01 1.020355951164319e-01 1.020020620685147e-01 1.019685184924461e-01 - 1.019349644053093e-01 1.019013998241876e-01 1.018678247661643e-01 1.018342392483225e-01 1.018006432877456e-01 - 1.017670369015167e-01 1.017334201067191e-01 1.016997929204361e-01 1.016661553597508e-01 1.016325074417466e-01 - 1.015988491835066e-01 1.015651806021141e-01 1.015315017146524e-01 1.014978125382047e-01 1.014641130898543e-01 - 1.014304033866843e-01 1.013966834457780e-01 1.013629532842187e-01 1.013292129190896e-01 1.012954623674739e-01 - 1.012617016464549e-01 1.012279307731159e-01 1.011941497645400e-01 1.011603586378106e-01 1.011265574100107e-01 - 1.010927460982239e-01 1.010589247195331e-01 1.010250932910217e-01 1.009912518297729e-01 1.009574003528701e-01 - 1.009235388773963e-01 1.008896674204348e-01 1.008557859990690e-01 1.008218946303820e-01 1.007879933314571e-01 - 1.007540821193774e-01 1.007201610112264e-01 1.006862300240872e-01 1.006522891750429e-01 1.006183384811770e-01 - 1.005843779595726e-01 1.005504076273130e-01 1.005164275014813e-01 1.004824375991610e-01 1.004484379374351e-01 - 1.004144285333870e-01 1.003804094040999e-01 1.003463805666569e-01 1.003123420381414e-01 1.002782938356367e-01 - 1.002442359762259e-01 1.002101684769922e-01 1.001760913550190e-01 1.001420046273895e-01 1.001079083111869e-01 - 1.000738024234945e-01 1.000396869813954e-01 1.000055620019730e-01 9.997142750231042e-02 9.993728349949102e-02 - 9.990313001059796e-02 9.986896705271456e-02 9.983479464292398e-02 9.980061279830947e-02 9.976642153595434e-02 - 9.973222087294174e-02 9.969801082635499e-02 9.966379141327726e-02 9.962956265079187e-02 9.959532455598200e-02 - 9.956107714593093e-02 9.952682043772192e-02 9.949255444843813e-02 9.945827919516288e-02 9.942399469497937e-02 - 9.938970096497086e-02 9.935539802222057e-02 9.932108588381178e-02 9.928676456682770e-02 9.925243408835159e-02 - 9.921809446546671e-02 9.918374571525623e-02 9.914938785480347e-02 9.911502090119163e-02 9.908064487150398e-02 - 9.904625978282372e-02 9.901186565223413e-02 9.897746249681845e-02 9.894305033365988e-02 9.890862917984172e-02 - 9.887419905244718e-02 9.883975996855951e-02 9.880531194526194e-02 9.877085499963774e-02 9.873638914877009e-02 - 9.870191440974231e-02 9.866743079963761e-02 9.863293833553920e-02 9.859843703453038e-02 9.856392691369432e-02 - 9.852940799011436e-02 9.849488028087365e-02 9.846034380305550e-02 9.842579857374308e-02 9.839124461001970e-02 - 9.835668192896858e-02 9.832211054767293e-02 9.828753048321603e-02 9.825294175268109e-02 9.821834437315143e-02 - 9.818373836171017e-02 9.814912373544066e-02 9.811450051142606e-02 9.807986870674969e-02 9.804522833849474e-02 - 9.801057942374444e-02 9.797592197958208e-02 9.794125602309085e-02 9.790658157135405e-02 9.787189864145487e-02 - 9.783720725047659e-02 9.780250741550246e-02 9.776779915361565e-02 9.773308248189948e-02 9.769835741743713e-02 - 9.766362397731190e-02 9.762888217860698e-02 9.759413203840565e-02 9.755937357379113e-02 9.752460680184671e-02 - 9.748983173965557e-02 9.745504840430097e-02 9.742025681286617e-02 9.738545698243438e-02 9.735064893008888e-02 - 9.731583267291286e-02 9.728100822798963e-02 9.724617561240236e-02 9.721133484323437e-02 9.717648593756885e-02 - 9.714162891248904e-02 9.710676378507821e-02 9.707189057241956e-02 9.703700929159639e-02 9.700211995969188e-02 - 9.696722259378933e-02 9.693231721097194e-02 9.689740382832296e-02 9.686248246292567e-02 9.682755313186324e-02 - 9.679261585221899e-02 9.675767064107609e-02 9.672271751551782e-02 9.668775649262741e-02 9.665278758948814e-02 - 9.661781082318323e-02 9.658282621079586e-02 9.654783376940938e-02 9.651283351610694e-02 9.647782546797186e-02 - 9.644280964208730e-02 9.640778605553657e-02 9.637275472540287e-02 9.633771566876947e-02 9.630266890271960e-02 - 9.626761444433649e-02 9.623255231070338e-02 9.619748251890356e-02 9.616240508602021e-02 9.612732002913663e-02 - 9.609222736533599e-02 9.605712711170160e-02 9.602201928531666e-02 9.598690390326445e-02 9.595178098262819e-02 - 9.591665054049109e-02 9.588151259393644e-02 9.584636716004745e-02 9.581121425590743e-02 9.577605389859950e-02 - 9.574088610520702e-02 9.570571089281314e-02 9.567052827850117e-02 9.563533827935435e-02 9.560014091245586e-02 - 9.556493619488900e-02 9.552972414373699e-02 9.549450477608308e-02 9.545927810901049e-02 9.542404415960248e-02 - 9.538880294494230e-02 9.535355448211316e-02 9.531829878819836e-02 9.528303588028109e-02 9.524776577544461e-02 - 9.521248849077216e-02 9.517720404334697e-02 9.514191245025229e-02 9.510661372857139e-02 9.507130789538748e-02 - 9.503599496778380e-02 9.500067496284360e-02 9.496534789765015e-02 9.493001378928664e-02 9.489467265483635e-02 - 9.485932451138250e-02 9.482396937600834e-02 9.478860726579713e-02 9.475323819783207e-02 9.471786218919645e-02 - 9.468247925697347e-02 9.464708941824643e-02 9.461169269009850e-02 9.457628908961296e-02 9.454087863387305e-02 - 9.450546133996199e-02 9.447003722496307e-02 9.443460630595948e-02 9.439916860003450e-02 9.436372412427137e-02 - 9.432827289575330e-02 9.429281493156354e-02 9.425735024878537e-02 9.422187886450198e-02 9.418640079579664e-02 - 9.415091605975259e-02 9.411542467345307e-02 9.407992665398136e-02 9.404442201842063e-02 9.400891078385415e-02 - 9.397339296736518e-02 9.393786858603695e-02 9.390233765695270e-02 9.386680019719568e-02 9.383125622384911e-02 - 9.379570575399625e-02 9.376014880472036e-02 9.372458539310466e-02 9.368901553623238e-02 9.365343925118678e-02 - 9.361785655505112e-02 9.358226746490858e-02 9.354667199784246e-02 9.351107017093598e-02 9.347546200127239e-02 - 9.343984750593494e-02 9.340422670200685e-02 9.336859960657137e-02 9.333296623671174e-02 9.329732660951121e-02 - 9.326168074205300e-02 9.322602865142039e-02 9.319037035469660e-02 9.315470586896488e-02 9.311903521130845e-02 - 9.308335839881057e-02 9.304767544855448e-02 9.301198637762342e-02 9.297629120310064e-02 9.294058994206936e-02 - 9.290488261161287e-02 9.286916922881436e-02 9.283344981075708e-02 9.279772437452428e-02 9.276199293719922e-02 - 9.272625551586512e-02 9.269051212760523e-02 9.265476278950278e-02 9.261900751864104e-02 9.258324633210324e-02 - 9.254747924697261e-02 9.251170628033240e-02 9.247592744926583e-02 9.244014277085617e-02 9.240435226218666e-02 - 9.236855594034055e-02 9.233275382240104e-02 9.229694592545142e-02 9.226113226657491e-02 9.222531286285476e-02 - 9.218948773137420e-02 9.215365688921646e-02 9.211782035346482e-02 9.208197814120249e-02 9.204613026951274e-02 - 9.201027675547878e-02 9.197441761618388e-02 9.193855286871126e-02 9.190268253014419e-02 9.186680661756588e-02 - 9.183092514805957e-02 9.179503813870854e-02 9.175914560659600e-02 9.172324756880521e-02 9.168734404241941e-02 - 9.165143504452181e-02 9.161552059219569e-02 9.157960070252427e-02 9.154367539259080e-02 9.150774467947854e-02 - 9.147180858027071e-02 9.143586711205055e-02 9.139992029190132e-02 9.136396813690625e-02 9.132801066414858e-02 - 9.129204789071155e-02 9.125607983367841e-02 9.122010651013239e-02 9.118412793715676e-02 9.114814413183472e-02 - 9.111215511124955e-02 9.107616089248448e-02 9.104016149262276e-02 9.100415692874760e-02 9.096814721794225e-02 - 9.093213237728998e-02 9.089611242387401e-02 9.086008737477760e-02 9.082405724708396e-02 9.078802205787638e-02 - 9.075198182423806e-02 9.071593656325225e-02 9.067988629200220e-02 9.064383102757116e-02 9.060777078704237e-02 - 9.057170558749904e-02 9.053563544602444e-02 9.049956037970180e-02 9.046348040561442e-02 9.042739554084545e-02 - 9.039130580247817e-02 9.035521120759583e-02 9.031911177328168e-02 9.028300751661894e-02 9.024689845469086e-02 - 9.021078460458068e-02 9.017466598337168e-02 9.013854260814702e-02 9.010241449599002e-02 9.006628166398388e-02 - 9.003014412921184e-02 8.999400190875718e-02 8.995785501970310e-02 8.992170347913286e-02 8.988554730412972e-02 - 8.984938651177689e-02 8.981322111915761e-02 8.977705114335516e-02 8.974087660145275e-02 8.970469751053363e-02 - 8.966851388768103e-02 8.963232574997822e-02 8.959613311450842e-02 8.955993599835491e-02 8.952373441860086e-02 - 8.948752839232957e-02 8.945131793662427e-02 8.941510306856817e-02 8.937888380524456e-02 8.934266016373665e-02 - 8.930643216112769e-02 8.927019981450095e-02 8.923396314093963e-02 8.919772215752698e-02 8.916147688134625e-02 - 8.912522732948071e-02 8.908897351901354e-02 8.905271546702803e-02 8.901645319060740e-02 8.898018670683491e-02 - 8.894391603279379e-02 8.890764118556729e-02 8.887136218223864e-02 8.883507903989107e-02 8.879879177560786e-02 - 8.876250040647221e-02 8.872620494956741e-02 8.868990542197666e-02 8.865360184078323e-02 8.861729422307035e-02 - 8.858098258592126e-02 8.854466694641919e-02 8.850834732164740e-02 8.847202372868912e-02 8.843569618462761e-02 - 8.839936470654611e-02 8.836302931152785e-02 8.832669001665606e-02 8.829034683901400e-02 8.825399979568492e-02 - 8.821764890375206e-02 8.818129418029862e-02 8.814493564240788e-02 8.810857330716310e-02 8.807220719164749e-02 - 8.803583731294432e-02 8.799946368813677e-02 8.796308633430815e-02 8.792670526854167e-02 8.789032050792057e-02 - 8.785393206952812e-02 8.781753997044753e-02 8.778114422776205e-02 8.774474485855495e-02 8.770834187990943e-02 - 8.767193530890875e-02 8.763552516263615e-02 8.759911145817488e-02 8.756269421260816e-02 8.752627344301928e-02 - 8.748984916649143e-02 8.745342140010788e-02 8.741699016095185e-02 8.738055546610660e-02 8.734411733265539e-02 - 8.730767577768141e-02 8.727123081826793e-02 8.723478247149821e-02 8.719833075445547e-02 8.716187568422298e-02 - 8.712541727788393e-02 8.708895555252159e-02 8.705249052521923e-02 8.701602221306004e-02 8.697955063312730e-02 - 8.694307580250422e-02 8.690659773827408e-02 8.687011645752010e-02 8.683363197732555e-02 8.679714431477362e-02 - 8.676065348694757e-02 8.672415951093065e-02 8.668766240380611e-02 8.665116218265721e-02 8.661465886456714e-02 - 8.657815246661917e-02 8.654164300589655e-02 8.650513049948251e-02 8.646861496446030e-02 8.643209641791315e-02 - 8.639557487692430e-02 8.635905035857701e-02 8.632252287995451e-02 8.628599245814005e-02 8.624945911021686e-02 - 8.621292285326819e-02 8.617638370437727e-02 8.613984168062737e-02 8.610329679910171e-02 8.606674907688353e-02 - 8.603019853105608e-02 8.599364517870259e-02 8.595708903690633e-02 8.592053012275053e-02 8.588396845331842e-02 - 8.584740404569323e-02 8.581083691695822e-02 8.577426708419665e-02 8.573769456449173e-02 8.570111937492672e-02 - 8.566454153258486e-02 8.562796105454940e-02 8.559137795790356e-02 8.555479225973059e-02 8.551820397711374e-02 - 8.548161312713624e-02 8.544501972688134e-02 8.540842379343229e-02 8.537182534387232e-02 8.533522439528468e-02 - 8.529862096475260e-02 8.526201506935933e-02 8.522540672618811e-02 8.518879595232219e-02 8.515218276484479e-02 - 8.511556718083918e-02 8.507894921738858e-02 8.504232889157626e-02 8.500570622048544e-02 8.496908122119934e-02 - 8.493245391080124e-02 8.489582430637438e-02 8.485919242500198e-02 8.482255828376728e-02 8.478592189975355e-02 - 8.474928329004400e-02 8.471264247172190e-02 8.467599946187047e-02 8.463935427757298e-02 8.460270693591267e-02 - 8.456605745397273e-02 8.452940584883646e-02 8.449275213758706e-02 8.445609633730780e-02 8.441943846508193e-02 - 8.438277853799266e-02 8.434611657312326e-02 8.430945258755695e-02 8.427278659837699e-02 8.423611862266661e-02 - 8.419944867750905e-02 8.416277677998756e-02 8.412610294718537e-02 8.408942719618576e-02 8.405274954407191e-02 - 8.401607000792713e-02 8.397938860483460e-02 8.394270535187759e-02 8.390602026613936e-02 8.386933336470312e-02 - 8.383264466465212e-02 8.379595418306962e-02 8.375926193703884e-02 8.372256794364304e-02 8.368587221996546e-02 - 8.364917478308932e-02 8.361247565009787e-02 8.357577483807437e-02 8.353907236410206e-02 8.350236824526415e-02 - 8.346566249864391e-02 8.342895514132459e-02 8.339224619038943e-02 8.335553566292164e-02 8.331882357600448e-02 - 8.328210994672121e-02 8.324539479215504e-02 8.320867812938924e-02 8.317195997550704e-02 8.313524034759166e-02 - 8.309851926272641e-02 8.306179673799445e-02 8.302507279047908e-02 8.298834743726349e-02 8.295162069543097e-02 - 8.291489258206473e-02 8.287816311424805e-02 8.284143230906414e-02 8.280470018359624e-02 8.276796675492762e-02 - 8.273123204014149e-02 8.269449605632111e-02 8.265775882054972e-02 8.262102034991055e-02 8.258428066148686e-02 - 8.254753977236187e-02 8.251079769961885e-02 8.247405446034105e-02 8.243731007161166e-02 8.240056455051395e-02 - 8.236381791413117e-02 8.232707017954656e-02 8.229032136384334e-02 8.225357148410478e-02 8.221682055741411e-02 - 8.218006860085458e-02 8.214331563150944e-02 8.210656166646188e-02 8.206980672279519e-02 8.203305081759260e-02 - 8.199629396793737e-02 8.195953619091272e-02 8.192277750360188e-02 8.188601792308813e-02 8.184925746645468e-02 - 8.181249615078479e-02 8.177573399316168e-02 8.173897101066861e-02 8.170220722038883e-02 8.166544263940556e-02 - 8.162867728480205e-02 8.159191117366156e-02 8.155514432306732e-02 8.151837675010254e-02 8.148160847185050e-02 - 8.144483950539445e-02 8.140806986781760e-02 8.137129957620320e-02 8.133452864763450e-02 8.129775709919475e-02 - 8.126098494796720e-02 8.122421221103504e-02 8.118743890548155e-02 8.115066504838998e-02 8.111389065684355e-02 - 8.107711574792552e-02 8.104034033871912e-02 8.100356444630759e-02 8.096678808777417e-02 8.093001128020215e-02 - 8.089323404067471e-02 8.085645638627510e-02 8.081967833408658e-02 8.078289990119239e-02 8.074612110467576e-02 - 8.070934196161997e-02 8.067256248910820e-02 8.063578270422375e-02 8.059900262404983e-02 8.056222226566968e-02 - 8.052544164616657e-02 8.048866078262369e-02 8.045187969212433e-02 8.041509839175172e-02 8.037831689858911e-02 - 8.034153522971973e-02 8.030475340222681e-02 8.026797143319361e-02 8.023118933970336e-02 8.019440713883932e-02 - 8.015762484768471e-02 8.012084248332278e-02 8.008406006283678e-02 8.004727760330994e-02 8.001049512182555e-02 - 7.997371263546676e-02 7.993693016131688e-02 7.990014771645915e-02 7.986336531797676e-02 7.982658298295300e-02 - 7.978980072847111e-02 7.975301857161432e-02 7.971623652946590e-02 7.967945461910902e-02 7.964267285762699e-02 - 7.960589126210302e-02 7.956910984962039e-02 7.953232863726228e-02 7.949554764211197e-02 7.945876688125271e-02 - 7.942198637176773e-02 7.938520613074028e-02 7.934842617525358e-02 7.931164652239087e-02 7.927486718923542e-02 - 7.923808819287045e-02 7.920130955037924e-02 7.916453127884499e-02 7.912775339535094e-02 7.909097591698037e-02 - 7.905419886081648e-02 7.901742224394255e-02 7.898064608344180e-02 7.894387039639746e-02 7.890709519989279e-02 - 7.887032051101103e-02 7.883354634683543e-02 7.879677272444922e-02 7.875999966093565e-02 7.872322717337794e-02 - 7.868645527885937e-02 7.864968399446313e-02 7.861291333727252e-02 7.857614332437074e-02 7.853937397284104e-02 - 7.850260529976670e-02 7.846583732223091e-02 7.842907005731693e-02 7.839230352210801e-02 7.835553773368738e-02 - 7.831877270913830e-02 7.828200846554398e-02 7.824524501998768e-02 7.820848238955266e-02 7.817172059132216e-02 - 7.813495964237939e-02 7.809819955980761e-02 7.806144036069006e-02 7.802468206210998e-02 7.798792468115062e-02 - 7.795116823489523e-02 7.791441274042703e-02 7.787765821482928e-02 7.784090467518520e-02 7.780415213857807e-02 - 7.776740062209107e-02 7.773065014280750e-02 7.769390071781057e-02 7.765715236418354e-02 7.762040509900967e-02 - 7.758365893937215e-02 7.754691390235426e-02 7.751017000503922e-02 7.747342726451029e-02 7.743668569785070e-02 - 7.739994532214370e-02 7.736320615447252e-02 7.732646821192042e-02 7.728973151157063e-02 7.725299607050642e-02 - 7.721626190581099e-02 7.717952903456758e-02 7.714279747385946e-02 7.710606724076986e-02 7.706933835238206e-02 - 7.703261082577922e-02 7.699588467804465e-02 7.695915992626157e-02 7.692243658751323e-02 7.688571467888285e-02 - 7.684899421745368e-02 7.681227522030898e-02 7.677555770453198e-02 7.673884168720593e-02 7.670212718541405e-02 - 7.666541421623961e-02 7.662870279676583e-02 7.659199294407595e-02 7.655528467525324e-02 7.651857800738091e-02 - 7.648187295754222e-02 7.644516954282041e-02 7.640846778029871e-02 7.637176768706039e-02 7.633506928018867e-02 - 7.629837257676678e-02 7.626167759387799e-02 7.622498434860552e-02 7.618829285803264e-02 7.615160313924255e-02 - 7.611491520931853e-02 7.607822908534380e-02 7.604154478440163e-02 7.600486232357523e-02 7.596818171994783e-02 - 7.593150299060271e-02 7.589482615262309e-02 7.585815122309225e-02 7.582147821909338e-02 7.578480715770973e-02 - 7.574813805602458e-02 7.571147093112113e-02 7.567480580008265e-02 7.563814267999236e-02 7.560148158793352e-02 - 7.556482254098935e-02 7.552816555624312e-02 7.549151065077807e-02 7.545485784167741e-02 7.541820714602442e-02 - 7.538155858090231e-02 7.534491216339434e-02 7.530826791058375e-02 7.527162583955378e-02 7.523498596738766e-02 - 7.519834831116866e-02 7.516171288797999e-02 7.512507971490495e-02 7.508844880902671e-02 7.505182018742854e-02 - 7.501519386719367e-02 7.497856986540538e-02 7.494194819914687e-02 7.490532888550142e-02 7.486871194155223e-02 - 7.483209738438257e-02 7.479548523107570e-02 7.475887549871482e-02 7.472226820438319e-02 7.468566336516404e-02 - 7.464906099814063e-02 7.461246112039621e-02 7.457586374901400e-02 7.453926890107723e-02 7.450267659366919e-02 - 7.446608684387307e-02 7.442949966877216e-02 7.439291508544965e-02 7.435633311098883e-02 7.431975376247291e-02 - 7.428317705698513e-02 7.424660301160878e-02 7.421003164342704e-02 7.417346296952319e-02 7.413689700698045e-02 - 7.410033377288210e-02 7.406377328431132e-02 7.402721555835140e-02 7.399066061208556e-02 7.395410846259706e-02 - 7.391755912696915e-02 7.388101262228504e-02 7.384446896562798e-02 7.380792817408122e-02 7.377139026472800e-02 - 7.373485525465158e-02 7.369832316093516e-02 7.366179400066203e-02 7.362526779091538e-02 7.358874454877849e-02 - 7.355222429133459e-02 7.351570703566694e-02 7.347919279885876e-02 7.344268159799329e-02 7.340617345015378e-02 - 7.336966837242348e-02 7.333316638188561e-02 7.329666749562345e-02 7.326017173072021e-02 7.322367910425913e-02 - 7.318718963332346e-02 7.315070333499644e-02 7.311422022636133e-02 7.307774032450136e-02 7.304126364649975e-02 - 7.300479020943977e-02 7.296832003040465e-02 7.293185312647765e-02 7.289538951474199e-02 7.285892921228092e-02 - 7.282247223617767e-02 7.278601860351550e-02 7.274956833137766e-02 7.271312143684736e-02 7.267667793700786e-02 - 7.264023784894239e-02 7.260380118973422e-02 7.256736797646657e-02 7.253093822622268e-02 7.249451195608582e-02 - 7.245808918313920e-02 7.242166992446607e-02 7.238525419714967e-02 7.234884201827325e-02 7.231243340492007e-02 - 7.227602837417331e-02 7.223962694311627e-02 7.220322912883217e-02 7.216683494840427e-02 7.213044441891579e-02 - 7.209405755744998e-02 7.205767438109009e-02 7.202129490691934e-02 7.198491915202099e-02 7.194854713347830e-02 - 7.191217886837446e-02 7.187581437379276e-02 7.183945366681642e-02 7.180309676452867e-02 7.176674368401278e-02 - 7.173039444235199e-02 7.169404905662952e-02 7.165770754392863e-02 7.162136992133256e-02 7.158503620592453e-02 - 7.154870641478780e-02 7.151238056500563e-02 7.147605867366123e-02 7.143974075783785e-02 7.140342683461876e-02 - 7.136711692108716e-02 7.133081103432631e-02 7.129450919141947e-02 7.125821140944985e-02 7.122191770550071e-02 - 7.118562809665530e-02 7.114934259999683e-02 7.111306123260858e-02 7.107678401157377e-02 7.104051095397565e-02 - 7.100424207689746e-02 7.096797739742244e-02 7.093171693263382e-02 7.089546069961486e-02 7.085920871544882e-02 - 7.082296099721888e-02 7.078671756200834e-02 7.075047842690044e-02 7.071424360897838e-02 7.067801312532543e-02 - 7.064178699302483e-02 7.060556522915983e-02 7.056934785081363e-02 7.053313487506954e-02 7.049692631901075e-02 - 7.046072219972052e-02 7.042452253428211e-02 7.038832733977872e-02 7.035213663329361e-02 7.031595043191004e-02 - 7.027976875271123e-02 7.024359161278042e-02 7.020741902920087e-02 7.017125101905583e-02 7.013508759942851e-02 - 7.009892878740216e-02 7.006277460006004e-02 7.002662505448538e-02 6.999048016776144e-02 6.995433995697144e-02 - 6.991820443919861e-02 6.988207363152622e-02 6.984594755103750e-02 6.980982621481568e-02 6.977370963994402e-02 - 6.973759784350578e-02 6.970149084258416e-02 6.966538865426242e-02 6.962929129562380e-02 6.959319878375156e-02 - 6.955711113572893e-02 6.952102836863913e-02 6.948495049956542e-02 6.944887754559105e-02 6.941280952379927e-02 - 6.937674645127329e-02 6.934068834509637e-02 6.930463522235174e-02 6.926858710012268e-02 6.923254399549238e-02 - 6.919650592554411e-02 6.916047290736112e-02 6.912444495802665e-02 6.908842209462392e-02 6.905240433423616e-02 - 6.901639169394666e-02 6.898038419083864e-02 6.894438184199533e-02 6.890838466449999e-02 6.887239267543585e-02 - 6.883640589188617e-02 6.880042433093415e-02 6.876444800966307e-02 6.872847694515619e-02 6.869251115449670e-02 - 6.865655065476786e-02 6.862059546305292e-02 6.858464559643512e-02 6.854870107199770e-02 6.851276190682393e-02 - 6.847682811799699e-02 6.844089972260017e-02 6.840497673771671e-02 6.836905918042983e-02 6.833314706782279e-02 - 6.829724041697882e-02 6.826133924498116e-02 6.822544356891308e-02 6.818955340585779e-02 6.815366877289854e-02 - 6.811778968711857e-02 6.808191616560114e-02 6.804604822542948e-02 6.801018588368681e-02 6.797432915745642e-02 - 6.793847806382150e-02 6.790263261986533e-02 6.786679284267115e-02 6.783095874932217e-02 6.779513035690166e-02 - 6.775930768249286e-02 6.772349074317900e-02 6.768767955604332e-02 6.765187413816909e-02 6.761607450663952e-02 - 6.758028067853786e-02 6.754449267094738e-02 6.750871050095128e-02 6.747293418563281e-02 6.743716374207524e-02 - 6.740139918736179e-02 6.736564053857570e-02 6.732988781280023e-02 6.729414102711860e-02 6.725840019861405e-02 - 6.722266534436987e-02 6.718693648146923e-02 6.715121362699542e-02 6.711549679803168e-02 6.707978601166123e-02 - 6.704408128496732e-02 6.700838263503321e-02 6.697269007894212e-02 6.693700363377729e-02 6.690132331662198e-02 - 6.686564914455943e-02 6.682998113467287e-02 6.679431930404556e-02 6.675866366976070e-02 6.672301424890158e-02 - 6.668737105855144e-02 6.665173411579348e-02 6.661610343771096e-02 6.658047904138716e-02 6.654486094390526e-02 - 6.650924916234854e-02 6.647364371380024e-02 6.643804461534360e-02 6.640245188406185e-02 6.636686553703826e-02 - 6.633128559135604e-02 6.629571206409844e-02 6.626014497234871e-02 6.622458433319009e-02 6.618903016370581e-02 - 6.615348248097914e-02 6.611794130209329e-02 6.608240664413152e-02 6.604687852417708e-02 6.601135695931318e-02 - 6.597584196662311e-02 6.594033356319007e-02 6.590483176609731e-02 6.586933659242808e-02 6.583384805926563e-02 - 6.579836618369318e-02 6.576289098279399e-02 6.572742247365128e-02 6.569196067334833e-02 6.565650559896835e-02 - 6.562105726759460e-02 6.558561569631030e-02 6.555018090219872e-02 6.551475290234308e-02 6.547933171382664e-02 - 6.544391735373260e-02 6.540850983914427e-02 6.537310918714484e-02 6.533771541481756e-02 6.530232853924568e-02 - 6.526694857751246e-02 6.523157554670111e-02 6.519620946389489e-02 6.516085034617702e-02 6.512549821063078e-02 - 6.509015307433939e-02 6.505481495438609e-02 6.501948386785412e-02 6.498415983182672e-02 6.494884286338716e-02 - 6.491353297961865e-02 6.487823019760443e-02 6.484293453442776e-02 6.480764600717190e-02 6.477236463292005e-02 - 6.473709042875546e-02 6.470182341176141e-02 6.466656359902111e-02 6.463131100761778e-02 6.459606565463470e-02 - 6.456082755715510e-02 6.452559673226224e-02 6.449037319703932e-02 6.445515696856961e-02 6.441994806393636e-02 - 6.438474650022280e-02 6.434955229451217e-02 6.431436546388770e-02 6.427918602543267e-02 6.424401399623028e-02 - 6.420884939336380e-02 6.417369223391646e-02 6.413854253497149e-02 6.410340031361215e-02 6.406826558692170e-02 - 6.403313837198334e-02 6.399801868588033e-02 6.396290654569593e-02 6.392780196851335e-02 6.389270497141585e-02 - 6.385761557148667e-02 6.382253378580906e-02 6.378745963146625e-02 6.375239312554147e-02 6.371733428511799e-02 - 6.368228312727903e-02 6.364723966910786e-02 6.361220392768768e-02 6.357717592010177e-02 6.354215566343337e-02 - 6.350714317476568e-02 6.347213847118198e-02 6.343714156976551e-02 6.340215248759951e-02 6.336717124176720e-02 - 6.333219784935186e-02 6.329723232743668e-02 6.326227469310496e-02 6.322732496343991e-02 6.319238315552476e-02 - 6.315744928644278e-02 6.312252337327721e-02 6.308760543311126e-02 6.305269548302821e-02 6.301779354011129e-02 - 6.298289962144372e-02 6.294801374410877e-02 6.291313592518968e-02 6.287826618176968e-02 6.284340453093201e-02 - 6.280855098975993e-02 6.277370557533665e-02 6.273886830474544e-02 6.270403919506955e-02 6.266921826339220e-02 - 6.263440552679662e-02 6.259960100236607e-02 6.256480470718381e-02 6.253001665833306e-02 6.249523687289707e-02 - 6.246046536795907e-02 6.242570216060229e-02 6.239094726791002e-02 6.235620070696547e-02 6.232146249485187e-02 - 6.228673264865250e-02 6.225201118545055e-02 6.221729812232930e-02 6.218259347637199e-02 6.214789726466187e-02 - 6.211320950428215e-02 6.207853021231610e-02 6.204385940584693e-02 6.200919710195792e-02 6.197454331773228e-02 - 6.193989807025328e-02 6.190526137660414e-02 6.187063325386812e-02 6.183601371912845e-02 6.180140278946837e-02 - 6.176680048197113e-02 6.173220681371997e-02 6.169762180179813e-02 6.166304546328885e-02 6.162847781527538e-02 - 6.159391887484095e-02 6.155936865906880e-02 6.152482718504219e-02 6.149029446984435e-02 6.145577053055853e-02 - 6.142125538426796e-02 6.138674904805590e-02 6.135225153900557e-02 6.131776287420022e-02 6.128328307072310e-02 - 6.124881214565744e-02 6.121435011608650e-02 6.117989699909349e-02 6.114545281176169e-02 6.111101757117431e-02 - 6.107659129441460e-02 6.104217399856583e-02 6.100776570071121e-02 6.097336641793399e-02 6.093897616731742e-02 - 6.090459496594473e-02 6.087022283089916e-02 6.083585977926396e-02 6.080150582812238e-02 6.076716099455765e-02 - 6.073282529565302e-02 6.069849874849172e-02 6.066418137015700e-02 6.062987317773211e-02 6.059557418830027e-02 - 6.056128441894475e-02 6.052700388674876e-02 6.049273260879557e-02 6.045847060216841e-02 6.042421788395052e-02 - 6.038997447122514e-02 6.035574038107552e-02 6.032151563058490e-02 6.028730023683652e-02 6.025309421691362e-02 - 6.021889758789946e-02 6.018471036687725e-02 6.015053257093025e-02 6.011636421714171e-02 6.008220532259485e-02 - 6.004805590437293e-02 6.001391597955918e-02 5.997978556523686e-02 5.994566467848918e-02 5.991155333639943e-02 - 5.987745155605081e-02 5.984335935452657e-02 5.980927674890997e-02 5.977520375628423e-02 5.974114039373261e-02 - 5.970708667833834e-02 5.967304262718466e-02 5.963900825735483e-02 5.960498358593206e-02 5.957096862999962e-02 - 5.953696340664075e-02 5.950296793293869e-02 5.946898222597666e-02 5.943500630283793e-02 5.940104018060574e-02 - 5.936708387636331e-02 5.933313740719390e-02 5.929920079018074e-02 5.926527404240709e-02 5.923135718095618e-02 - 5.919745022291125e-02 5.916355318535554e-02 5.912966608537230e-02 5.909578894004478e-02 5.906192176645620e-02 - 5.902806458168981e-02 5.899421740282887e-02 5.896038024695659e-02 5.892655313115624e-02 5.889273607251104e-02 - 5.885892908810425e-02 5.882513219501910e-02 5.879134541033884e-02 5.875756875114671e-02 5.872380223452595e-02 - 5.869004587755981e-02 5.865629969733151e-02 5.862256371092430e-02 5.858883793542144e-02 5.855512238790617e-02 - 5.852141708546170e-02 5.848772204517131e-02 5.845403728411822e-02 5.842036281938568e-02 5.838669866805692e-02 - 5.835304484721521e-02 5.831940137394376e-02 5.828576826532585e-02 5.825214553844467e-02 5.821853321038349e-02 - 5.818493129822556e-02 5.815133981905412e-02 5.811775878995240e-02 5.808418822800365e-02 5.805062815029110e-02 - 5.801707857389801e-02 5.798353951590760e-02 5.795001099340315e-02 5.791649302346786e-02 5.788298562318499e-02 - 5.784948880963779e-02 5.781600259990949e-02 5.778252701108333e-02 5.774906206024256e-02 5.771560776447041e-02 - 5.768216414085015e-02 5.764873120646499e-02 5.761530897839819e-02 5.758189747373298e-02 5.754849670955262e-02 - 5.751510670294033e-02 5.748172747097936e-02 5.744835903075296e-02 5.741500139934437e-02 5.738165459383683e-02 - 5.734831863131357e-02 5.731499352885785e-02 5.728167930355290e-02 5.724837597248197e-02 5.721508355272830e-02 - 5.718180206137512e-02 5.714853151550570e-02 5.711527193220325e-02 5.708202332855103e-02 5.704878572163228e-02 - 5.701555912853024e-02 5.698234356632816e-02 5.694913905210926e-02 5.691594560295680e-02 5.688276323595402e-02 - 5.684959196818416e-02 5.681643181673045e-02 5.678328279867616e-02 5.675014493110452e-02 5.671701823109875e-02 - 5.668390271574211e-02 5.665079840211785e-02 5.661770530730920e-02 5.658462344839940e-02 5.655155284247171e-02 - 5.651849350660935e-02 5.648544545789557e-02 5.645240871341362e-02 5.641938329024674e-02 5.638636920547815e-02 - 5.635336647619112e-02 5.632037511946889e-02 5.628739515239468e-02 5.625442659205174e-02 5.622146945552333e-02 - 5.618852375989267e-02 5.615558952224302e-02 5.612266675965761e-02 5.608975548921968e-02 5.605685572801247e-02 - 5.602396749311925e-02 5.599109080162322e-02 5.595822567060765e-02 5.592537211715578e-02 5.589253015835084e-02 - 5.585969981127608e-02 5.582688109301474e-02 5.579407402065006e-02 5.576127861126528e-02 5.572849488194366e-02 - 5.569572284976842e-02 5.566296253182280e-02 5.563021394519008e-02 5.559747710695345e-02 5.556475203419618e-02 - 5.553203874400151e-02 5.549933725345269e-02 5.546664757963294e-02 5.543396973962551e-02 5.540130375051366e-02 - 5.536864962938060e-02 5.533600739330961e-02 5.530337705938389e-02 5.527075864468672e-02 5.523815216630132e-02 - 5.520555764131094e-02 5.517297508679882e-02 5.514040451984819e-02 5.510784595754230e-02 5.507529941696442e-02 - 5.504276491519774e-02 5.501024246932555e-02 5.497773209643106e-02 5.494523381359754e-02 5.491274763790820e-02 - 5.488027358644629e-02 5.484781167629507e-02 5.481536192453777e-02 5.478292434825763e-02 5.475049896453790e-02 - 5.471808579046181e-02 5.468568484311261e-02 5.465329613957354e-02 5.462091969692785e-02 5.458855553225877e-02 - 5.455620366264955e-02 5.452386410518342e-02 5.449153687694363e-02 5.445922199501343e-02 5.442691947647604e-02 - 5.439462933841474e-02 5.436235159791274e-02 5.433008627205328e-02 5.429783337791962e-02 5.426559293259499e-02 - 5.423336495316264e-02 5.420114945670580e-02 5.416894646030773e-02 5.413675598105167e-02 5.410457803602083e-02 - 5.407241264229849e-02 5.404025981696787e-02 5.400811957711223e-02 5.397599193981480e-02 5.394387692215881e-02 - 5.391177454122753e-02 5.387968481410418e-02 5.384760775787202e-02 5.381554338961427e-02 5.378349172641418e-02 - 5.375145278535501e-02 5.371942658351998e-02 5.368741313799234e-02 5.365541246585533e-02 5.362342458419220e-02 - 5.359144951008617e-02 5.355948726062051e-02 5.352753785287844e-02 5.349560130394321e-02 5.346367763089808e-02 - 5.343176685082626e-02 5.339986898081100e-02 5.336798403793557e-02 5.333611203928318e-02 5.330425300193709e-02 - 5.327240694298052e-02 5.324057387949673e-02 5.320875382856897e-02 5.317694680728046e-02 5.314515283271445e-02 - 5.311337192195419e-02 5.308160409208292e-02 5.304984936018387e-02 5.301810774334029e-02 5.298637925860694e-02 - 5.295466392210174e-02 5.292296174881576e-02 5.289127275367324e-02 5.285959695159842e-02 5.282793435751552e-02 - 5.279628498634878e-02 5.276464885302243e-02 5.273302597246069e-02 5.270141635958780e-02 5.266982002932800e-02 - 5.263823699660550e-02 5.260666727634453e-02 5.257511088346935e-02 5.254356783290417e-02 5.251203813957321e-02 - 5.248052181840073e-02 5.244901888431094e-02 5.241752935222807e-02 5.238605323707637e-02 5.235459055378005e-02 - 5.232314131726334e-02 5.229170554245050e-02 5.226028324426572e-02 5.222887443763326e-02 5.219747913747734e-02 - 5.216609735872220e-02 5.213472911629205e-02 5.210337442511115e-02 5.207203330010370e-02 5.204070575619395e-02 - 5.200939180830615e-02 5.197809147136448e-02 5.194680476029321e-02 5.191553169001656e-02 5.188427227545876e-02 - 5.185302653154403e-02 5.182179447319664e-02 5.179057611534077e-02 5.175937147290068e-02 5.172818056080060e-02 - 5.169700339396475e-02 5.166583998731737e-02 5.163469035578269e-02 5.160355451428494e-02 5.157243247774834e-02 - 5.154132426109714e-02 5.151022987925555e-02 5.147914934714782e-02 5.144808267969817e-02 5.141702989183084e-02 - 5.138599099847005e-02 5.135496601454004e-02 5.132395495496503e-02 5.129295783466926e-02 5.126197466857695e-02 - 5.123100547161235e-02 5.120005025869967e-02 5.116910904476317e-02 5.113818184472704e-02 5.110726867351554e-02 - 5.107636954605289e-02 5.104548447726333e-02 5.101461348207109e-02 5.098375657540039e-02 5.095291377217546e-02 - 5.092208508732055e-02 5.089127053575987e-02 5.086047013241765e-02 5.082968389221815e-02 5.079891183008556e-02 - 5.076815396094415e-02 5.073741029971812e-02 5.070668086133172e-02 5.067596566070917e-02 5.064526471277472e-02 - 5.061457803245257e-02 5.058390563466697e-02 5.055324753434216e-02 5.052260374640234e-02 5.049197428577178e-02 - 5.046135916737467e-02 5.043075840613528e-02 5.040017201697781e-02 5.036960001482652e-02 5.033904241460560e-02 - 5.030849923123931e-02 5.027797047965189e-02 5.024745617476754e-02 5.021695633151052e-02 5.018647096480505e-02 - 5.015600008957535e-02 5.012554372074565e-02 5.009510187324022e-02 5.006467456198324e-02 5.003426180189897e-02 - 5.000386360791163e-02 4.997347999494546e-02 4.994311097792468e-02 4.991275657177353e-02 4.988241679141623e-02 - 4.985209165177702e-02 4.982178116778014e-02 4.979148535434980e-02 4.976120422641023e-02 4.973093779888569e-02 - 4.970068608670038e-02 4.967044910477855e-02 4.964022686804442e-02 4.961001939142222e-02 4.957982668983620e-02 - 4.954964877821057e-02 4.951948567146956e-02 4.948933738453741e-02 4.945920393233836e-02 4.942908532979662e-02 - 4.939898159183643e-02 4.936889273338203e-02 4.933881876935763e-02 4.930875971468749e-02 4.927871558429582e-02 - 4.924868639310685e-02 4.921867215604481e-02 4.918867288803395e-02 4.915868860399848e-02 4.912871931886263e-02 - 4.909876504755066e-02 4.906882580498677e-02 4.903890160609520e-02 4.900899246580018e-02 4.897909839902595e-02 - 4.894921942069672e-02 4.891935554573676e-02 4.888950678907025e-02 4.885967316562146e-02 4.882985469031461e-02 - 4.880005137807392e-02 4.877026324382362e-02 4.874049030248797e-02 4.871073256899117e-02 4.868099005825745e-02 - 4.865126278521108e-02 4.862155076477624e-02 4.859185401187720e-02 4.856217254143816e-02 4.853250636838338e-02 - 4.850285550763707e-02 4.847321997412347e-02 4.844359978276680e-02 4.841399494849130e-02 4.838440548622121e-02 - 4.835483141088075e-02 4.832527273739414e-02 4.829572948068564e-02 4.826620165567946e-02 4.823668927729983e-02 - 4.820719236047098e-02 4.817771092011715e-02 4.814824497116257e-02 4.811879452853147e-02 4.808935960714807e-02 - 4.805994022193662e-02 4.803053638782134e-02 4.800114811972645e-02 4.797177543257621e-02 4.794241834129482e-02 - 4.791307686080653e-02 4.788375100603556e-02 4.785444079190614e-02 4.782514623334252e-02 4.779586734526891e-02 - 4.776660414260955e-02 4.773735664028868e-02 4.770812485323050e-02 4.767890879635927e-02 4.764970848459921e-02 - 4.762052393287456e-02 4.759135515610954e-02 4.756220216922838e-02 4.753306498715533e-02 4.750394362481459e-02 - 4.747483809713041e-02 4.744574841902701e-02 4.741667460542864e-02 4.738761667125952e-02 4.735857463144388e-02 - 4.732954850090595e-02 4.730053829456995e-02 4.727154402736015e-02 4.724256571420073e-02 4.721360337001596e-02 - 4.718465700973005e-02 4.715572664826723e-02 4.712681230055175e-02 4.709791398150782e-02 4.706903170605968e-02 - 4.704016548913156e-02 4.701131534564769e-02 4.698248129053231e-02 4.695366333870963e-02 4.692486150510391e-02 - 4.689607580463934e-02 4.686730625224018e-02 4.683855286283068e-02 4.680981565133503e-02 4.678109463267748e-02 - 4.675238982178226e-02 4.672370123357359e-02 4.669502888297572e-02 4.666637278491287e-02 4.663773295430927e-02 - 4.660910940608916e-02 4.658050215517676e-02 4.655191121649629e-02 4.652333660497202e-02 4.649477833552815e-02 - 4.646623642308891e-02 4.643771088257853e-02 4.640920172892127e-02 4.638070897704132e-02 4.635223264186294e-02 - 4.632377273831036e-02 4.629532928130779e-02 4.626690228577947e-02 4.623849176664965e-02 4.621009773884253e-02 - 4.618172021728237e-02 4.615335921689338e-02 4.612501475259979e-02 4.609668683932586e-02 4.606837549199577e-02 - 4.604008072553380e-02 4.601180255486416e-02 4.598354099491107e-02 4.595529606059879e-02 4.592706776685152e-02 - 4.589885612859351e-02 4.587066116074899e-02 4.584248287824218e-02 4.581432129599732e-02 4.578617642893863e-02 - 4.575804829199037e-02 4.572993690007673e-02 4.570184226812196e-02 4.567376441105030e-02 4.564570334378597e-02 - 4.561765908125320e-02 4.558963163837623e-02 4.556162103007928e-02 4.553362727128659e-02 4.550565037692238e-02 - 4.547769036191089e-02 4.544974724117636e-02 4.542182102964300e-02 4.539391174223504e-02 4.536601939387674e-02 - 4.533814399949231e-02 4.531028557400597e-02 4.528244413234197e-02 4.525461968942453e-02 4.522681226017790e-02 - 4.519902185952628e-02 4.517124850239393e-02 4.514349220370505e-02 4.511575297838390e-02 4.508803084135470e-02 - 4.506032580754168e-02 4.503263789186907e-02 4.500496710926111e-02 4.497731347464200e-02 4.494967700293602e-02 - 4.492205770906736e-02 4.489445560796028e-02 4.486687071453899e-02 4.483930304372771e-02 4.481175261045071e-02 - 4.478421942963219e-02 4.475670351619640e-02 4.472920488506756e-02 4.470172355116988e-02 4.467425952942764e-02 - 4.464681283476502e-02 4.461938348210628e-02 4.459197148637566e-02 4.456457686249737e-02 4.453719962539564e-02 - 4.450983978999472e-02 4.448249737121881e-02 4.445517238399217e-02 4.442786484323902e-02 4.440057476388359e-02 - 4.437330216085012e-02 4.434604704906282e-02 4.431880944344595e-02 4.429158935892372e-02 4.426438681042035e-02 - 4.423720181286010e-02 4.421003438116718e-02 4.418288453026584e-02 4.415575227508029e-02 4.412863763053477e-02 - 4.410154061155352e-02 4.407446123306075e-02 4.404739950998071e-02 4.402035545723762e-02 4.399332908975571e-02 - 4.396632042245923e-02 4.393932947027238e-02 4.391235624811941e-02 4.388540077092456e-02 4.385846305361203e-02 - 4.383154311110608e-02 4.380464095833093e-02 4.377775661021081e-02 4.375089008166996e-02 4.372404138763258e-02 - 4.369721054302294e-02 4.367039756276526e-02 4.364360246178376e-02 4.361682525500267e-02 4.359006595734623e-02 - 4.356332458373868e-02 4.353660114910423e-02 4.350989566836711e-02 4.348320815645158e-02 4.345653862828184e-02 - 4.342988709878214e-02 4.340325358287669e-02 4.337663809548974e-02 4.335004065154552e-02 4.332346126596825e-02 - 4.329689995368217e-02 4.327035672961151e-02 4.324383160868049e-02 4.321732460581335e-02 4.319083573593433e-02 - 4.316436501396765e-02 4.313791245483754e-02 4.311147807346823e-02 4.308506188478395e-02 4.305866390370894e-02 - 4.303228414516742e-02 4.300592262408363e-02 4.297957935538180e-02 4.295325435398616e-02 4.292694763482094e-02 - 4.290065921281035e-02 4.287438910287866e-02 4.284813731995007e-02 4.282190387894883e-02 4.279568879479917e-02 - 4.276949208242530e-02 4.274331375675147e-02 4.271715383270192e-02 4.269101232520085e-02 4.266488924917250e-02 - 4.263878461954113e-02 4.261269845123093e-02 4.258663075916616e-02 4.256058155827103e-02 4.253455086346980e-02 - 4.250853868968667e-02 4.248254505184589e-02 4.245656996487169e-02 4.243061344368828e-02 4.240467550321991e-02 - 4.237875615839081e-02 4.235285542412521e-02 4.232697331534734e-02 4.230110984698143e-02 4.227526503395169e-02 - 4.224943889118240e-02 4.222363143359775e-02 4.219784267612198e-02 4.217207263367933e-02 4.214632132119402e-02 - 4.212058875359029e-02 4.209487494579236e-02 4.206917991272448e-02 4.204350366931086e-02 4.201784623047573e-02 - 4.199220761114335e-02 4.196658782623791e-02 4.194098689068368e-02 4.191540481940486e-02 4.188984162732570e-02 - 4.186429732937041e-02 4.183877194046326e-02 4.181326547552844e-02 4.178777794949019e-02 4.176230937727277e-02 - 4.173685977380037e-02 4.171142915399725e-02 4.168601753278764e-02 4.166062492509574e-02 4.163525134584580e-02 - 4.160989680996207e-02 4.158456133236876e-02 4.155924492799010e-02 4.153394761175032e-02 4.150866939857367e-02 - 4.148341030338436e-02 4.145817034110662e-02 4.143294952666470e-02 4.140774787498282e-02 4.138256540098521e-02 - 4.135740211959609e-02 4.133225804573972e-02 4.130713319434030e-02 4.128202758032209e-02 4.125694121860929e-02 - 4.123187412412615e-02 4.120682631179690e-02 4.118179779654577e-02 4.115678859329698e-02 4.113179871697477e-02 - 4.110682818250337e-02 4.108187700480702e-02 4.105694519880994e-02 4.103203277943635e-02 4.100713976161051e-02 - 4.098226616025662e-02 4.095741199029894e-02 4.093257726666168e-02 4.090776200426908e-02 4.088296621804536e-02 - 4.085818992291476e-02 4.083343313380151e-02 4.080869586562985e-02 4.078397813332400e-02 4.075927995180818e-02 - 4.073460133600665e-02 4.070994230084361e-02 4.068530286124331e-02 4.066068303212998e-02 4.063608282842784e-02 - 4.061150226506113e-02 4.058694135695408e-02 4.056240011903092e-02 4.053787856621588e-02 4.051337671343318e-02 - 4.048889457560707e-02 4.046443216766178e-02 4.043998950452153e-02 4.041556660111054e-02 4.039116347235307e-02 - 4.036678013317334e-02 4.034241659849556e-02 4.031807288324400e-02 4.029374900234285e-02 4.026944497071637e-02 - 4.024516080328877e-02 4.022089651498431e-02 4.019665212072718e-02 4.017242763544165e-02 4.014822307405193e-02 - 4.012403845148225e-02 4.009987378265685e-02 4.007572908249996e-02 4.005160436593580e-02 4.002749964788860e-02 - 4.000341494328261e-02 3.997935026862905e-02 3.995530565020248e-02 3.993128111798760e-02 3.990727670197625e-02 - 3.988329243216027e-02 3.985932833853151e-02 3.983538445108181e-02 3.981146079980302e-02 3.978755741468697e-02 - 3.976367432572553e-02 3.973981156291052e-02 3.971596915623379e-02 3.969214713568721e-02 3.966834553126258e-02 - 3.964456437295178e-02 3.962080369074663e-02 3.959706351463900e-02 3.957334387462071e-02 3.954964480068362e-02 - 3.952596632281957e-02 3.950230847102040e-02 3.947867127527795e-02 3.945505476558409e-02 3.943145897193063e-02 - 3.940788392430945e-02 3.938432965271236e-02 3.936079618713123e-02 3.933728355755788e-02 3.931379179398419e-02 - 3.929032092640197e-02 3.926687098480308e-02 3.924344199917935e-02 3.922003399952266e-02 3.919664701582481e-02 - 3.917328107807769e-02 3.914993621627309e-02 3.912661246040292e-02 3.910330984045896e-02 3.908002838643308e-02 - 3.905676812831715e-02 3.903352909610298e-02 3.901031131978242e-02 3.898711482934733e-02 3.896393965478955e-02 - 3.894078582610091e-02 3.891765337327326e-02 3.889454232629846e-02 3.887145271516833e-02 3.884838456987474e-02 - 3.882533792040951e-02 3.880231279676451e-02 3.877930922893155e-02 3.875632724690252e-02 3.873336688066923e-02 - 3.871042816022353e-02 3.868751111555727e-02 3.866461577666229e-02 3.864174217353044e-02 3.861889033615356e-02 - 3.859606029452349e-02 3.857325207863209e-02 3.855046571847119e-02 3.852770124403264e-02 3.850495868530828e-02 - 3.848223807228996e-02 3.845953943496952e-02 3.843686280333881e-02 3.841420820738967e-02 3.839157567711395e-02 - 3.836896524250349e-02 3.834637693355013e-02 3.832381078024572e-02 3.830126681258209e-02 3.827874506055112e-02 - 3.825624555414461e-02 3.823376832335444e-02 3.821131339817244e-02 3.818888080859045e-02 3.816647058460032e-02 - 3.814408275619389e-02 3.812171735336303e-02 3.809937440609954e-02 3.807705394439530e-02 3.805475599824214e-02 - 3.803248059763190e-02 3.801022777255643e-02 3.798799755300758e-02 3.796578996897719e-02 3.794360505045710e-02 - 3.792144282743916e-02 3.789930332991522e-02 3.787718658787710e-02 3.785509263131667e-02 3.783302149022577e-02 - 3.781097319459624e-02 3.778894777441992e-02 3.776694525968866e-02 3.774496568039430e-02 3.772300906652870e-02 - 3.770107544808367e-02 3.767916485505110e-02 3.765727731742280e-02 3.763541286519063e-02 3.761357152834642e-02 - 3.759175333688204e-02 3.756995832078931e-02 3.754818651006007e-02 3.752643793468620e-02 3.750471262465951e-02 - 3.748301060997186e-02 3.746133192061509e-02 3.743967658658105e-02 3.741804463786157e-02 3.739643610444850e-02 - 3.737485101633371e-02 3.735328940350900e-02 3.733175129596625e-02 3.731023672369729e-02 3.728874571669397e-02 - 3.726727830494812e-02 3.724583451845160e-02 3.722441438719625e-02 3.720301794117391e-02 3.718164521037644e-02 - 3.716029622479566e-02 3.713897101442343e-02 3.711766960925159e-02 3.709639203927199e-02 3.707513833447647e-02 - 3.705390852485687e-02 3.703270264040504e-02 3.701152071111283e-02 3.699036276697207e-02 3.696922883797462e-02 - 3.694811895411231e-02 3.692703314537699e-02 3.690597144176051e-02 3.688493387325471e-02 3.686392046985143e-02 - 3.684293126154253e-02 3.682196627831984e-02 3.680102555017520e-02 3.678010910710046e-02 3.675921697908748e-02 - 3.673834919612807e-02 3.671750578821411e-02 3.669668678533742e-02 3.667589221748987e-02 3.665512211466327e-02 - 3.663437650684950e-02 3.661365542404037e-02 3.659295889622776e-02 3.657228695340348e-02 3.655163962555941e-02 - 3.653101694268735e-02 3.651041893477919e-02 3.648984563182674e-02 3.646929706382188e-02 3.644877326075641e-02 - 3.642827425262220e-02 3.640780006941109e-02 3.638735074111494e-02 3.636692629772557e-02 3.634652676923484e-02 - 3.632615218563458e-02 3.630580257691665e-02 3.628547797307289e-02 3.626517840409513e-02 3.624490389997524e-02 - 3.622465449070505e-02 3.620443020627639e-02 3.618423107668113e-02 3.616405713191111e-02 3.614390840195816e-02 - 3.612378491681414e-02 3.610368670647089e-02 3.608361380092025e-02 3.606356623015406e-02 3.604354402416417e-02 - 3.602354721294244e-02 3.600357582648069e-02 3.598362989477077e-02 3.596370944780453e-02 3.594381451557382e-02 - 3.592394512807047e-02 3.590410131528634e-02 3.588428310721326e-02 3.586449053384308e-02 3.584472362516764e-02 - 3.582498241117880e-02 3.580526692186839e-02 3.578557718722826e-02 3.576591323725024e-02 3.574627510192620e-02 - 3.572666281124797e-02 3.570707639520740e-02 3.568751588379632e-02 3.566798130700659e-02 3.564847269483005e-02 - 3.562899007725854e-02 3.560953348428391e-02 3.559010294589800e-02 3.557069849209266e-02 3.555132015285974e-02 - 3.553196795819106e-02 3.551264193807849e-02 3.549334212251386e-02 3.547406854148901e-02 3.545482122499580e-02 - 3.543560020302607e-02 3.541640550557167e-02 3.539723716262443e-02 3.537809520417620e-02 3.535897966021882e-02 - 3.533989056074414e-02 3.532082793574401e-02 3.530179181521027e-02 3.528278222913475e-02 3.526379920750932e-02 - 3.524484278032580e-02 3.522591297757607e-02 3.520700982925193e-02 3.518813336534525e-02 3.516928361584787e-02 - 3.515046061075164e-02 3.513166438004838e-02 3.511289495372998e-02 3.509415236178823e-02 3.507543663421501e-02 - 3.505674780100216e-02 3.503808589214152e-02 3.501945093762493e-02 3.500084296744425e-02 3.498226201159130e-02 - 3.496370810005795e-02 3.494518126283602e-02 3.492668152991737e-02 3.490820893129385e-02 3.488976349695729e-02 - 3.487134525689954e-02 3.485295424111245e-02 3.483459047958785e-02 3.481625400231760e-02 3.479794483929353e-02 - 3.477966302050750e-02 3.476140857595134e-02 3.474318153561690e-02 3.472498192949603e-02 3.470680978758058e-02 - 3.468866513986237e-02 3.467054801633326e-02 3.465245844698509e-02 3.463439646180971e-02 3.461636209079897e-02 - 3.459835536394470e-02 3.458037631123875e-02 3.456242496267296e-02 3.454450134823919e-02 3.452660549792927e-02 - 3.450873744173504e-02 3.449089720964835e-02 3.447308483166107e-02 3.445530033776500e-02 3.443754375795202e-02 - 3.441981512221395e-02 3.440211446054266e-02 3.438444180292995e-02 3.436679717936773e-02 3.434918061984778e-02 - 3.433159215436199e-02 3.431403181290218e-02 3.429649962546020e-02 3.427899562202789e-02 3.426151983259711e-02 - 3.424407228715969e-02 3.422665301570748e-02 3.420926204823232e-02 3.419189941472606e-02 3.417456514518054e-02 - 3.415725926958761e-02 3.413998181793911e-02 3.412273282022688e-02 3.410551230644278e-02 3.408832030657864e-02 - 3.407115685062630e-02 3.405402196857762e-02 3.403691569042444e-02 3.401983804615860e-02 3.400278906577194e-02 - 3.398576877925633e-02 3.396877721660357e-02 3.395181440780554e-02 3.393488038285408e-02 3.391797517174103e-02 - 3.390109880445821e-02 3.388425131099751e-02 3.386743272135074e-02 3.385064306550976e-02 3.383388237346641e-02 - 3.381715067521254e-02 3.380044800073998e-02 3.378377438004059e-02 3.376712984310620e-02 3.375051441992868e-02 - 3.373392814049984e-02 3.371737103481155e-02 3.370084313285564e-02 3.368434446462396e-02 3.366787506010836e-02 - 3.365143466564878e-02 3.363501887624541e-02 3.361862209777612e-02 3.360224500875989e-02 3.358588827878357e-02 - 3.356955147090725e-02 3.355323458431880e-02 3.353693766165054e-02 3.352066065506343e-02 3.350440352193865e-02 - 3.348816624199871e-02 3.347194881659273e-02 3.345575121630599e-02 3.343957340404732e-02 3.342341535303144e-02 - 3.340727704441876e-02 3.339115845430404e-02 3.337505954322636e-02 3.335898029706669e-02 3.334292070921326e-02 - 3.332688074834195e-02 3.331086037969291e-02 3.329485957414917e-02 3.327887831864652e-02 3.326291658484171e-02 - 3.324697433542376e-02 3.323105156623186e-02 3.321514826023114e-02 3.319926437839098e-02 3.318339989412266e-02 - 3.316755478754796e-02 3.315172903929034e-02 3.313592261295018e-02 3.312013548124740e-02 3.310436764153749e-02 - 3.308861906981869e-02 3.307288973180764e-02 3.305717959801665e-02 3.304148865245999e-02 3.302581687574703e-02 - 3.301016422142487e-02 3.299453067800234e-02 3.297891624809741e-02 3.296332088425066e-02 3.294774455685354e-02 - 3.293218725810471e-02 3.291664896225673e-02 3.290112963401578e-02 3.288562923879117e-02 3.287014777263271e-02 - 3.285468522369568e-02 3.283924155670871e-02 3.282381674440858e-02 3.280841076589561e-02 3.279302360243119e-02 - 3.277765521941309e-02 3.276230558706894e-02 3.274697470113698e-02 3.273166254219040e-02 3.271636907936865e-02 - 3.270109428250347e-02 3.268583813280482e-02 3.267060061307020e-02 3.265538168459424e-02 3.264018132671115e-02 - 3.262499953449712e-02 3.260983628233858e-02 3.259469153939318e-02 3.257956527754512e-02 3.256445748091834e-02 - 3.254936812698490e-02 3.253429718174427e-02 3.251924463148387e-02 3.250421046229880e-02 3.248919464552218e-02 - 3.247419715298105e-02 3.245921796288541e-02 3.244425706251369e-02 3.242931441545717e-02 3.241438998652282e-02 - 3.239948378141620e-02 3.238459577882156e-02 3.236972593925531e-02 3.235487424670715e-02 3.234004068301546e-02 - 3.232522522137563e-02 3.231042782696456e-02 3.229564848261764e-02 3.228088718700101e-02 3.226614390644563e-02 - 3.225141860917057e-02 3.223671128042128e-02 3.222202190260593e-02 3.220735044835789e-02 3.219269687989033e-02 - 3.217806118663362e-02 3.216344336205739e-02 3.214884337811092e-02 3.213426120193776e-02 3.211969680852602e-02 - 3.210515019435922e-02 3.209062132655478e-02 3.207611016186721e-02 3.206161670288540e-02 3.204714093648681e-02 - 3.203268282961075e-02 3.201824236239234e-02 3.200381951210604e-02 3.198941424912934e-02 3.197502654604618e-02 - 3.196065638811887e-02 3.194630377248257e-02 3.193196866763873e-02 3.191765104079724e-02 3.190335087680102e-02 - 3.188906815766901e-02 3.187480285784819e-02 3.186055494296534e-02 3.184632440204734e-02 3.183211122836238e-02 - 3.181791538780577e-02 3.180373685568510e-02 3.178957561657719e-02 3.177543165075891e-02 3.176130492904844e-02 - 3.174719542079285e-02 3.173310312097031e-02 3.171902801589959e-02 3.170497007535993e-02 3.169092927256592e-02 - 3.167690558660036e-02 3.166289900092451e-02 3.164890948767075e-02 3.163493702375719e-02 3.162098160094597e-02 - 3.160704320149037e-02 3.159312179836957e-02 3.157921735868882e-02 3.156532987076624e-02 3.155145932224658e-02 - 3.153760566663864e-02 3.152376889172848e-02 3.150994900180672e-02 3.149614595827410e-02 3.148235973399625e-02 - 3.146859031868535e-02 3.145483769408502e-02 3.144110182886523e-02 3.142738268687409e-02 3.141368026942635e-02 - 3.139999456778463e-02 3.138632554513814e-02 3.137267318073906e-02 3.135903745883740e-02 3.134541835839263e-02 - 3.133181584694165e-02 3.131822989974722e-02 3.130466051752389e-02 3.129110768114365e-02 3.127757136018487e-02 - 3.126405153214003e-02 3.125054818119363e-02 3.123706128835145e-02 3.122359081277034e-02 3.121013674152311e-02 - 3.119669908223311e-02 3.118327780512727e-02 3.116987287740892e-02 3.115648427590923e-02 3.114311198755302e-02 - 3.112975599208620e-02 3.111641625878769e-02 3.110309278026453e-02 3.108978554429882e-02 3.107649451605467e-02 - 3.106321967573116e-02 3.104996101093369e-02 3.103671850522385e-02 3.102349212552239e-02 3.101028184118182e-02 - 3.099708765215899e-02 3.098390954305432e-02 3.097074748653887e-02 3.095760146577434e-02 3.094447145973171e-02 - 3.093135744175442e-02 3.091825938652267e-02 3.090517727892404e-02 3.089211111199125e-02 3.087906086415095e-02 - 3.086602651045607e-02 3.085300802884278e-02 3.084000540267990e-02 3.082701861024971e-02 3.081404762072755e-02 - 3.080109242772720e-02 3.078815302348911e-02 3.077522937271052e-02 3.076232145526043e-02 3.074942925853004e-02 - 3.073655275969265e-02 3.072369193358731e-02 3.071084675893487e-02 3.069801722815575e-02 3.068520332655950e-02 - 3.067240502926292e-02 3.065962230727411e-02 3.064685514336771e-02 3.063410352936318e-02 3.062136743092317e-02 - 3.060864682743443e-02 3.059594172387181e-02 3.058325209340110e-02 3.057057790484611e-02 3.055791914232513e-02 - 3.054527578866520e-02 3.053264782274670e-02 3.052003521936738e-02 3.050743796632342e-02 3.049485605420712e-02 - 3.048228945948342e-02 3.046973815764381e-02 3.045720212753895e-02 3.044468135532321e-02 3.043217582076147e-02 - 3.041968549967531e-02 3.040721038082923e-02 3.039475044749309e-02 3.038230567464306e-02 3.036987604544383e-02 - 3.035746154526919e-02 3.034506215632694e-02 3.033267784558463e-02 3.032030859116679e-02 3.030795439680851e-02 - 3.029561524020229e-02 3.028329109283977e-02 3.027098194217670e-02 3.025868776986960e-02 3.024640855125834e-02 - 3.023414425922958e-02 3.022189488753165e-02 3.020966043396606e-02 3.019744085927903e-02 3.018523614254973e-02 - 3.017304628070488e-02 3.016087124712451e-02 3.014871101490015e-02 3.013656556629268e-02 3.012443489643160e-02 - 3.011231899192166e-02 3.010021782348693e-02 3.008813136953290e-02 3.007605961443153e-02 3.006400254477032e-02 - 3.005196013216448e-02 3.003993235442936e-02 3.002791921520012e-02 3.001592069144608e-02 3.000393675083135e-02 - 2.999196738372897e-02 2.998001257673401e-02 2.996807230790781e-02 2.995614654679549e-02 2.994423528130847e-02 - 2.993233851118915e-02 2.992045620999083e-02 2.990858835120550e-02 2.989673491731453e-02 2.988489589805536e-02 - 2.987307127537464e-02 2.986126102011340e-02 2.984946511909828e-02 2.983768356331996e-02 2.982591633787642e-02 - 2.981416341477938e-02 2.980242477098497e-02 2.979070040412034e-02 2.977899028736241e-02 2.976729439085326e-02 - 2.975561271768286e-02 2.974394525020974e-02 2.973229195799546e-02 2.972065283153817e-02 2.970902785474345e-02 - 2.969741700233630e-02 2.968582025251779e-02 2.967423759388233e-02 2.966266902120933e-02 2.965111450751603e-02 - 2.963957402972690e-02 2.962804757853395e-02 2.961653513685447e-02 2.960503668212408e-02 2.959355219023237e-02 - 2.958208165129883e-02 2.957062505724755e-02 2.955918238857859e-02 2.954775362079399e-02 2.953633873283637e-02 - 2.952493771681483e-02 2.951355054848872e-02 2.950217720053436e-02 2.949081767862442e-02 2.947947196700992e-02 - 2.946814003034778e-02 2.945682185755054e-02 2.944551743582863e-02 2.943422674341014e-02 2.942294975870480e-02 - 2.941168646812421e-02 2.940043686618776e-02 2.938920093147064e-02 2.937797864134186e-02 2.936676998172867e-02 - 2.935557493479196e-02 2.934439347979633e-02 2.933322559583284e-02 2.932207127373048e-02 2.931093050463312e-02 - 2.929980326285230e-02 2.928868953142686e-02 2.927758929945683e-02 2.926650254799867e-02 2.925542925398767e-02 - 2.924436939550082e-02 2.923332296415483e-02 2.922228995044700e-02 2.921127033783603e-02 2.920026410004271e-02 - 2.918927122033416e-02 2.917829169471517e-02 2.916732549176795e-02 2.915637258777840e-02 2.914543298801943e-02 - 2.913450667577263e-02 2.912359362430894e-02 2.911269381274288e-02 2.910180723305731e-02 2.909093387402745e-02 - 2.908007369930849e-02 2.906922669822638e-02 2.905839287303405e-02 2.904757219714476e-02 2.903676465199738e-02 - 2.902597022808873e-02 2.901518890157972e-02 2.900442065055892e-02 2.899366546087253e-02 2.898292332562971e-02 - 2.897219423070421e-02 2.896147815085827e-02 2.895077507160809e-02 2.894008498122344e-02 2.892940786384609e-02 - 2.891874369517828e-02 2.890809245634708e-02 2.889745414621765e-02 2.888682874769054e-02 2.887621623583590e-02 - 2.886561659425123e-02 2.885502981116054e-02 2.884445587294774e-02 2.883389475319686e-02 2.882334643970105e-02 - 2.881281093000496e-02 2.880228819979298e-02 2.879177822929067e-02 2.878128100842524e-02 2.877079651898801e-02 - 2.876032473884395e-02 2.874986564740009e-02 2.873941924390505e-02 2.872898552052601e-02 2.871856444638324e-02 - 2.870815600507148e-02 2.869776018641480e-02 2.868737697516582e-02 2.867700634591397e-02 2.866664827916806e-02 - 2.865630278319325e-02 2.864596983917359e-02 2.863564941328856e-02 2.862534149829953e-02 2.861504608429113e-02 - 2.860476315234840e-02 2.859449267740666e-02 2.858423464566411e-02 2.857398905422620e-02 2.856375588402207e-02 - 2.855353511594846e-02 2.854332673804624e-02 2.853313073796621e-02 2.852294709429606e-02 2.851277577543872e-02 - 2.850261678440491e-02 2.849247012219593e-02 2.848233575178603e-02 2.847221365657614e-02 2.846210383116990e-02 - 2.845200625935100e-02 2.844192091752946e-02 2.843184778466237e-02 2.842178686053369e-02 2.841173813547823e-02 - 2.840170158739025e-02 2.839167719418843e-02 2.838166494245600e-02 2.837166482484053e-02 2.836167681707307e-02 - 2.835170090137019e-02 2.834173707461769e-02 2.833178532393912e-02 2.832184563033358e-02 2.831191797277370e-02 - 2.830200233825938e-02 2.829209871310940e-02 2.828220707523810e-02 2.827232741579271e-02 2.826245972853687e-02 - 2.825260399229306e-02 2.824276019064247e-02 2.823292831178126e-02 2.822310834132040e-02 2.821330025651807e-02 - 2.820350403438503e-02 2.819371967866794e-02 2.818394718049788e-02 2.817418651237375e-02 2.816443766090156e-02 - 2.815470061416237e-02 2.814497535504664e-02 2.813526186206681e-02 2.812556012131105e-02 2.811587013236315e-02 - 2.810619188120791e-02 2.809652534562629e-02 2.808687050311100e-02 2.807722734684383e-02 2.806759586949595e-02 - 2.805797603975531e-02 2.804836784541272e-02 2.803877128655403e-02 2.802918634812817e-02 2.801961300908425e-02 - 2.801005124931340e-02 2.800050106254358e-02 2.799096243185147e-02 2.798143533065562e-02 2.797191976200169e-02 - 2.796241571829330e-02 2.795292316767612e-02 2.794344209750147e-02 2.793397250080147e-02 2.792451436474921e-02 - 2.791506766429417e-02 2.790563238187514e-02 2.789620852426368e-02 2.788679607109519e-02 2.787739499448651e-02 - 2.786800529276515e-02 2.785862695250820e-02 2.784925995023579e-02 2.783990426851568e-02 2.783055990112446e-02 - 2.782122684523413e-02 2.781190507602721e-02 2.780259457625915e-02 2.779329533996523e-02 2.778400734510273e-02 - 2.777473057425486e-02 2.776546502209671e-02 2.775621067523501e-02 2.774696751775778e-02 2.773773553529171e-02 - 2.772851471226555e-02 2.771930503638066e-02 2.771010650156085e-02 2.770091908311444e-02 2.769174275675288e-02 - 2.768257752750487e-02 2.767342338343482e-02 2.766428030170250e-02 2.765514827509389e-02 2.764602728937508e-02 - 2.763691732224667e-02 2.762781835629091e-02 2.761873038318760e-02 2.760965340016332e-02 2.760058738918467e-02 - 2.759153233095657e-02 2.758248821223181e-02 2.757345502668101e-02 2.756443275844788e-02 2.755542137569210e-02 - 2.754642087861812e-02 2.753743126859248e-02 2.752845251726651e-02 2.751948461051369e-02 2.751052754088128e-02 - 2.750158129051000e-02 2.749264584112846e-02 2.748372117908398e-02 2.747480730190011e-02 2.746590419839729e-02 - 2.745701184777745e-02 2.744813023052759e-02 2.743925933666562e-02 2.743039916197098e-02 2.742154968107790e-02 - 2.741271087850060e-02 2.740388275814067e-02 2.739506530469222e-02 2.738625849608251e-02 2.737746231424592e-02 - 2.736867675514432e-02 2.735990180809817e-02 2.735113743878892e-02 2.734238364845174e-02 2.733364044336462e-02 - 2.732490778587926e-02 2.731618566204183e-02 2.730747407386686e-02 2.729877300249025e-02 2.729008242908668e-02 - 2.728140234030172e-02 2.727273272900814e-02 2.726407358354408e-02 2.725542488697956e-02 2.724678662927163e-02 - 2.723815879907967e-02 2.722954137935252e-02 2.722093434732608e-02 2.721233769152850e-02 2.720375141931018e-02 - 2.719517551218435e-02 2.718660994644712e-02 2.717805471481514e-02 2.716950980584153e-02 2.716097520393317e-02 - 2.715245089289530e-02 2.714393686286031e-02 2.713543310581999e-02 2.712693960497614e-02 2.711845634782483e-02 - 2.710998332519429e-02 2.710152051958041e-02 2.709306791441093e-02 2.708462549834906e-02 2.707619326918369e-02 - 2.706777121480425e-02 2.705935930907671e-02 2.705095754483260e-02 2.704256591454058e-02 2.703418439795306e-02 - 2.702581298145425e-02 2.701745165546447e-02 2.700910041075726e-02 2.700075923746808e-02 2.699242812272907e-02 - 2.698410704764140e-02 2.697579599978723e-02 2.696749496984126e-02 2.695920394125775e-02 2.695092290187428e-02 - 2.694265184396634e-02 2.693439075649869e-02 2.692613962541774e-02 2.691789843589869e-02 2.690966718080280e-02 - 2.690144584430361e-02 2.689323440003169e-02 2.688503284907665e-02 2.687684119009101e-02 2.686865940030225e-02 - 2.686048746353486e-02 2.685232536881714e-02 2.684417310662326e-02 2.683603066151065e-02 2.682789801897943e-02 - 2.681977517552054e-02 2.681166212021913e-02 2.680355883616239e-02 2.679546530889016e-02 2.678738152752996e-02 - 2.677930748200765e-02 2.677124315479004e-02 2.676318853591112e-02 2.675514362231527e-02 2.674710839396962e-02 - 2.673908283555094e-02 2.673106694339361e-02 2.672306070150655e-02 2.671506409151823e-02 2.670707710108217e-02 - 2.669909972943648e-02 2.669113197027321e-02 2.668317379682501e-02 2.667522519875436e-02 2.666728617090520e-02 - 2.665935669311371e-02 2.665143675159882e-02 2.664352634032146e-02 2.663562545659268e-02 2.662773408361464e-02 - 2.661985219717407e-02 2.661197979572226e-02 2.660411687169956e-02 2.659626340488144e-02 2.658841937631547e-02 - 2.658058477937751e-02 2.657275961893512e-02 2.656494387358596e-02 2.655713752275513e-02 2.654934056348008e-02 - 2.654155298332925e-02 2.653377476657220e-02 2.652600590198415e-02 2.651824638075199e-02 2.651049619255404e-02 - 2.650275532091429e-02 2.649502375487615e-02 2.648730148802552e-02 2.647958851263073e-02 2.647188480891689e-02 - 2.646419035368700e-02 2.645650515131691e-02 2.644882919484906e-02 2.644116246069965e-02 2.643350494181170e-02 - 2.642585663084689e-02 2.641821751242615e-02 2.641058756892747e-02 2.640296679007395e-02 2.639535517653221e-02 - 2.638775271175803e-02 2.638015937698240e-02 2.637257516664822e-02 2.636500007332271e-02 2.635743408373907e-02 - 2.634987717633525e-02 2.634232934391862e-02 2.633479058525924e-02 2.632726088227431e-02 2.631974022390311e-02 - 2.631222860499385e-02 2.630472600717760e-02 2.629723241433261e-02 2.628974781674581e-02 2.628227220621198e-02 - 2.627480557677242e-02 2.626734792215179e-02 2.625989921852152e-02 2.625245945041883e-02 2.624502862403611e-02 - 2.623760671958282e-02 2.623019371536040e-02 2.622278961237779e-02 2.621539440295659e-02 2.620800807254220e-02 - 2.620063060674004e-02 2.619326199404739e-02 2.618590222410475e-02 2.617855128386046e-02 2.617120916522779e-02 - 2.616387586230346e-02 2.615655135861502e-02 2.614923564213544e-02 2.614192870720641e-02 2.613463054125929e-02 - 2.612734112755428e-02 2.612006044964381e-02 2.611278850871195e-02 2.610552530050819e-02 2.609827080222275e-02 - 2.609102500359168e-02 2.608378789925431e-02 2.607655947900249e-02 2.606933972466179e-02 2.606212861946312e-02 - 2.605492616097670e-02 2.604773234503024e-02 2.604054716124884e-02 2.603337058950191e-02 2.602620261873257e-02 - 2.601904324395194e-02 2.601189244598317e-02 2.600475021758196e-02 2.599761656283118e-02 2.599049145836681e-02 - 2.598337488632347e-02 2.597626684662969e-02 2.596916733159564e-02 2.596207632537513e-02 2.595499380688753e-02 - 2.594791977426907e-02 2.594085422650568e-02 2.593379714560815e-02 2.592674851872178e-02 2.591970833661526e-02 - 2.591267658830654e-02 2.590565326173340e-02 2.589863834578747e-02 2.589163183398775e-02 2.588463371701131e-02 - 2.587764398252935e-02 2.587066261956569e-02 2.586368961749470e-02 2.585672496539723e-02 2.584976865103265e-02 - 2.584282066471713e-02 2.583588100000093e-02 2.582894964599770e-02 2.582202659070586e-02 2.581511182332461e-02 - 2.580820533343631e-02 2.580130710958863e-02 2.579441713875388e-02 2.578753541579036e-02 2.578066193633965e-02 - 2.577379668579866e-02 2.576693964640701e-02 2.576009080523955e-02 2.575325016689414e-02 2.574641771694009e-02 - 2.573959342940173e-02 2.573277731100565e-02 2.572596935753856e-02 2.571916954588383e-02 2.571237786264848e-02 - 2.570559430241213e-02 2.569881886299849e-02 2.569205152414907e-02 2.568529227185872e-02 2.567854111122693e-02 - 2.567179802594942e-02 2.566506299732867e-02 2.565833602386073e-02 2.565161709921462e-02 2.564490620914589e-02 - 2.563820333139000e-02 2.563150846268354e-02 2.562482160754986e-02 2.561814274902439e-02 2.561147187258114e-02 - 2.560480896924013e-02 2.559815402833877e-02 2.559150703774291e-02 2.558486798572520e-02 2.557823686789989e-02 - 2.557161367849433e-02 2.556499840587265e-02 2.555839103232124e-02 2.555179154834854e-02 2.554519995829834e-02 - 2.553861624178350e-02 2.553204037844031e-02 2.552547237202886e-02 2.551891221538829e-02 2.551235989397021e-02 - 2.550581539575596e-02 2.549927871458803e-02 2.549274984258965e-02 2.548622875540724e-02 2.547971544999134e-02 - 2.547320993631275e-02 2.546671219025347e-02 2.546022219347805e-02 2.545373994243675e-02 2.544726542971977e-02 - 2.544079864501286e-02 2.543433957656028e-02 2.542788821576999e-02 2.542144455508066e-02 2.541500858637495e-02 - 2.540858030019949e-02 2.540215968413957e-02 2.539574672197945e-02 2.538934140646816e-02 2.538294373410821e-02 - 2.537655369660362e-02 2.537017128263758e-02 2.536379648098229e-02 2.535742928550868e-02 2.535106968465225e-02 - 2.534471766277936e-02 2.533837321084466e-02 2.533203632423742e-02 2.532570699881585e-02 2.531938521813243e-02 - 2.531307097096266e-02 2.530676425602581e-02 2.530046505932213e-02 2.529417336607690e-02 2.528788916915281e-02 - 2.528161246489754e-02 2.527534324609989e-02 2.526908149634068e-02 2.526282720495094e-02 2.525658036572961e-02 - 2.525034097275206e-02 2.524410901058027e-02 2.523788446449190e-02 2.523166734234336e-02 2.522545763237074e-02 - 2.521925530838600e-02 2.521306037097086e-02 2.520687281776321e-02 2.520069263496993e-02 2.519451980442291e-02 - 2.518835431925369e-02 2.518219618546694e-02 2.517604538654039e-02 2.516990190396150e-02 2.516376573127799e-02 - 2.515763686639562e-02 2.515151530112912e-02 2.514540101358030e-02 2.513929399756280e-02 2.513319425347670e-02 - 2.512710177240427e-02 2.512101654329324e-02 2.511493855506050e-02 2.510886779787783e-02 2.510280425830826e-02 - 2.509674792451250e-02 2.509069880343641e-02 2.508465688466923e-02 2.507862214067907e-02 2.507259457630134e-02 - 2.506657418922008e-02 2.506056095604422e-02 2.505455486579475e-02 2.504855591546334e-02 2.504256410459500e-02 - 2.503657941982099e-02 2.503060184642849e-02 2.502463137903613e-02 2.501866800626509e-02 2.501271171663477e-02 - 2.500676250820755e-02 2.500082037092928e-02 2.499488529135626e-02 2.498895726677344e-02 2.498303628979692e-02 - 2.497712234741346e-02 2.497121542814719e-02 2.496531552247531e-02 2.495942262282587e-02 2.495353672310340e-02 - 2.494765781766853e-02 2.494178589943900e-02 2.493592095223772e-02 2.493006296439117e-02 2.492421193524048e-02 - 2.491836784922406e-02 2.491253069345717e-02 2.490670047398909e-02 2.490087718065651e-02 2.489506079631419e-02 - 2.488925131370227e-02 2.488344872747560e-02 2.487765302865731e-02 2.487186419727612e-02 2.486608223223404e-02 - 2.486030714174834e-02 2.485453889875117e-02 2.484877749156952e-02 2.484302292908405e-02 2.483727519324232e-02 - 2.483153426549052e-02 2.482580013961989e-02 2.482007281919668e-02 2.481435229933991e-02 2.480863855780388e-02 - 2.480293158683973e-02 2.479723138421890e-02 2.479153794250162e-02 2.478585124573938e-02 2.478017128120043e-02 - 2.477449805440481e-02 2.476883155587847e-02 2.476317176818658e-02 2.475751868877601e-02 2.475187231076201e-02 - 2.474623262098153e-02 2.474059960704484e-02 2.473497326224523e-02 2.472935358498410e-02 2.472374056978996e-02 - 2.471813420423485e-02 2.471253447111526e-02 2.470694136984621e-02 2.470135489678424e-02 2.469577503399494e-02 - 2.469020177298829e-02 2.468463511029760e-02 2.467907504169421e-02 2.467352155791407e-02 2.466797464651026e-02 - 2.466243429488579e-02 2.465690049712254e-02 2.465137324948606e-02 2.464585254039273e-02 2.464033836402688e-02 - 2.463483071739735e-02 2.462932958374225e-02 2.462383495186045e-02 2.461834681928389e-02 2.461286517898853e-02 - 2.460739002108202e-02 2.460192133524253e-02 2.459645911917798e-02 2.459100336526309e-02 2.458555405446716e-02 - 2.458011118496141e-02 2.457467475465895e-02 2.456924474486533e-02 2.456382114921245e-02 2.455840396700115e-02 - 2.455299319041756e-02 2.454758880740113e-02 2.454219080674820e-02 2.453679918638537e-02 2.453141393576077e-02 - 2.452603503863916e-02 2.452066249180092e-02 2.451529629410615e-02 2.450993644073534e-02 2.450458291517292e-02 - 2.449923570627392e-02 2.449389481263279e-02 2.448856022075961e-02 2.448323192252920e-02 2.447790992354739e-02 - 2.447259420740984e-02 2.446728475663024e-02 2.446198157303190e-02 2.445668465268695e-02 2.445139398411770e-02 - 2.444610955000165e-02 2.444083134675017e-02 2.443555937646448e-02 2.443029362647454e-02 2.442503408583922e-02 - 2.441978074770511e-02 2.441453360513738e-02 2.440929264714783e-02 2.440405786136508e-02 2.439882924944217e-02 - 2.439360680824694e-02 2.438839052372590e-02 2.438318038826778e-02 2.437797639360750e-02 2.437277852674977e-02 - 2.436758678074824e-02 2.436240115296091e-02 2.435722164202054e-02 2.435204823529888e-02 2.434688091817521e-02 - 2.434171968740183e-02 2.433656453724402e-02 2.433141545805634e-02 2.432627243782077e-02 2.432113546933723e-02 - 2.431600455029639e-02 2.431087967900234e-02 2.430576084399959e-02 2.430064802749307e-02 2.429554123205279e-02 - 2.429044044976694e-02 2.428534565606734e-02 2.428025685952290e-02 2.427517406275088e-02 2.427009724038350e-02 - 2.426502638834353e-02 2.425996150697585e-02 2.425490258288459e-02 2.424984960255012e-02 2.424480255754471e-02 - 2.423976144931379e-02 2.423472627405213e-02 2.422969702193537e-02 2.422467367993699e-02 2.421965624107330e-02 - 2.421464470176334e-02 2.420963904926960e-02 2.420463927567678e-02 2.419964537946393e-02 2.419465735323985e-02 - 2.418967518800793e-02 2.418469887545246e-02 2.417972840901141e-02 2.417476377855392e-02 2.416980496962540e-02 - 2.416485198688481e-02 2.415990483049387e-02 2.415496347565664e-02 2.415002792020104e-02 2.414509816788697e-02 - 2.414017420064829e-02 2.413525600526027e-02 2.413034357711665e-02 2.412543691925479e-02 2.412053602209589e-02 - 2.411564086852338e-02 2.411075145960207e-02 2.410586778967854e-02 2.410098984367492e-02 2.409611761892932e-02 - 2.409125110932578e-02 2.408639030144091e-02 2.408153519631380e-02 2.407668578962185e-02 2.407184206146642e-02 - 2.406700400909483e-02 2.406217163125833e-02 2.405734491326586e-02 2.405252385052364e-02 2.404770844026444e-02 - 2.404289866819192e-02 2.403809452984102e-02 2.403329602484744e-02 2.402850314011094e-02 2.402371586479471e-02 - 2.401893419282938e-02 2.401415812045089e-02 2.400938764313821e-02 2.400462275334547e-02 2.399986343578922e-02 - 2.399510968520409e-02 2.399036150812855e-02 2.398561888480285e-02 2.398088180164008e-02 2.397615026865237e-02 - 2.397142427338870e-02 2.396670380040281e-02 2.396198885088599e-02 2.395727942113068e-02 2.395257549962209e-02 - 2.394787706723708e-02 2.394318412617158e-02 2.393849668455232e-02 2.393381472012022e-02 2.392913822141401e-02 - 2.392446719065216e-02 2.391980162598514e-02 2.391514151312970e-02 2.391048683154523e-02 2.390583758880722e-02 - 2.390119378770886e-02 2.389655541357522e-02 2.389192245255953e-02 2.388729489743550e-02 2.388267274893805e-02 - 2.387805599705324e-02 2.387344463051915e-02 2.386883864637205e-02 2.386423804212813e-02 2.385964281176755e-02 - 2.385505294183017e-02 2.385046842474073e-02 2.384588925674739e-02 2.384131543037479e-02 2.383674693675093e-02 - 2.383218376863605e-02 2.382762592698097e-02 2.382307340607612e-02 2.381852619200930e-02 2.381398427584630e-02 - 2.380944765139419e-02 2.380491631418275e-02 2.380039026147703e-02 2.379586948695320e-02 2.379135397827495e-02 - 2.378684372855616e-02 2.378233873403001e-02 2.377783899070361e-02 2.377334448688785e-02 2.376885521259772e-02 - 2.376437117173840e-02 2.375989235311110e-02 2.375541874056297e-02 2.375095033967465e-02 2.374648714507580e-02 - 2.374202914136664e-02 2.373757632537944e-02 2.373312869288914e-02 2.372868623536894e-02 2.372424894471153e-02 - 2.371981681484819e-02 2.371538984133524e-02 2.371096801501392e-02 2.370655132827953e-02 2.370213977833190e-02 - 2.369773335765337e-02 2.369333205880069e-02 2.368893587883010e-02 2.368454481046802e-02 2.368015884444250e-02 - 2.367577797334512e-02 2.367140218742613e-02 2.366703147963686e-02 2.366266585606776e-02 2.365830530976384e-02 - 2.365394982335759e-02 2.364959939168465e-02 2.364525401200215e-02 2.364091367903051e-02 2.363657837870221e-02 - 2.363224810602428e-02 2.362792286773459e-02 2.362360264929340e-02 2.361928743769403e-02 2.361497723470610e-02 - 2.361067203383207e-02 2.360637182449869e-02 2.360207659794005e-02 2.359778635431920e-02 2.359350109143980e-02 - 2.358922079027601e-02 2.358494544772182e-02 2.358067506765588e-02 2.357640963547734e-02 2.357214914179353e-02 - 2.356789358468287e-02 2.356364296127548e-02 2.355939726289868e-02 2.355515647729875e-02 2.355092060314220e-02 - 2.354668963726047e-02 2.354246356971432e-02 2.353824239065819e-02 2.353402609608870e-02 2.352981468856027e-02 - 2.352560815209497e-02 2.352140647526573e-02 2.351720967050562e-02 2.351301772305351e-02 2.350883061252196e-02 - 2.350464834642137e-02 2.350047092197861e-02 2.349629832802946e-02 2.349213055910952e-02 2.348796760574937e-02 - 2.348380945835795e-02 2.347965612326723e-02 2.347550759163322e-02 2.347136384068571e-02 2.346722487769892e-02 - 2.346309070523777e-02 2.345896130833473e-02 2.345483667635093e-02 2.345071680463291e-02 2.344660169327714e-02 - 2.344249133136094e-02 2.343838570884467e-02 2.343428482723373e-02 2.343018868068117e-02 2.342609726030811e-02 - 2.342201056195244e-02 2.341792857876926e-02 2.341385130156056e-02 2.340977872164902e-02 2.340571083589386e-02 - 2.340164764377465e-02 2.339758913684304e-02 2.339353530825718e-02 2.338948615385810e-02 2.338544166438565e-02 - 2.338140183238109e-02 2.337736665460082e-02 2.337333612670094e-02 2.336931024309368e-02 2.336528899670786e-02 - 2.336127237782067e-02 2.335726037932775e-02 2.335325300092871e-02 2.334925023614406e-02 2.334525207670920e-02 - 2.334125851951941e-02 2.333726955725296e-02 2.333328518197435e-02 2.332930539416707e-02 2.332533018620607e-02 - 2.332135954429912e-02 2.331739346348105e-02 2.331343194297124e-02 2.330947498175055e-02 2.330552256758802e-02 - 2.330157469245372e-02 2.329763135682490e-02 2.329369255310137e-02 2.328975827131819e-02 2.328582850377367e-02 - 2.328190324900185e-02 2.327798250467623e-02 2.327406626164597e-02 2.327015451465238e-02 2.326624725851670e-02 - 2.326234448228765e-02 2.325844618291867e-02 2.325455236057939e-02 2.325066300636415e-02 2.324677811186985e-02 - 2.324289767062798e-02 2.323902167622130e-02 2.323515012509116e-02 2.323128301561370e-02 2.322742034088871e-02 - 2.322356209250113e-02 2.321970826255392e-02 2.321585884544971e-02 2.321201383858435e-02 2.320817324137425e-02 - 2.320433704277431e-02 2.320050523099401e-02 2.319667780275936e-02 2.319285475700314e-02 2.318903609087885e-02 - 2.318522179577433e-02 2.318141186586264e-02 2.317760629632794e-02 2.317380507773795e-02 2.317000820301008e-02 - 2.316621566880872e-02 2.316242747510807e-02 2.315864361575457e-02 2.315486407850317e-02 2.315108885694486e-02 - 2.314731794816131e-02 2.314355135044316e-02 2.313978905662257e-02 2.313603105913640e-02 2.313227735329952e-02 - 2.312852793585061e-02 2.312478280157292e-02 2.312104194073204e-02 2.311730534704967e-02 2.311357301587891e-02 - 2.310984494137890e-02 2.310612112341407e-02 2.310240155989217e-02 2.309868623130452e-02 2.309497513592190e-02 - 2.309126828241582e-02 2.308756565023808e-02 2.308386723175103e-02 2.308017303542274e-02 2.307648304592169e-02 - 2.307279725617671e-02 2.306911567493640e-02 2.306543828441958e-02 2.306176507302976e-02 2.305809605235563e-02 - 2.305443121050249e-02 2.305077053229759e-02 2.304711401909808e-02 2.304346166830784e-02 2.303981347406350e-02 - 2.303616943085239e-02 2.303252953349069e-02 2.302889377643319e-02 2.302526215247478e-02 2.302163465435939e-02 - 2.301801127709388e-02 2.301439202296127e-02 2.301077688440331e-02 2.300716584594829e-02 2.300355891234385e-02 - 2.299995607931316e-02 2.299635732709070e-02 2.299276266087610e-02 2.298917208378683e-02 2.298558558107965e-02 - 2.298200314503575e-02 2.297842477288603e-02 2.297485046311076e-02 2.297128020911345e-02 2.296771400315858e-02 - 2.296415184168031e-02 2.296059371667762e-02 2.295703962066644e-02 2.295348955785851e-02 2.294994352217295e-02 - 2.294640149900077e-02 2.294286348264926e-02 2.293932947451599e-02 2.293579947717141e-02 2.293227347444131e-02 - 2.292875145668869e-02 2.292523342863249e-02 2.292171938675970e-02 2.291820932208030e-02 2.291470322329688e-02 - 2.291120108573121e-02 2.290770290936340e-02 2.290420869564250e-02 2.290071843254762e-02 2.289723210840996e-02 - 2.289374972996874e-02 2.289027128684278e-02 2.288679676284003e-02 2.288332616596880e-02 2.287985949623025e-02 - 2.287639674290211e-02 2.287293789614104e-02 2.286948295143698e-02 2.286603190794522e-02 2.286258475709644e-02 - 2.285914149325583e-02 2.285570211629635e-02 2.285226661817064e-02 2.284883499242224e-02 2.284540723897847e-02 - 2.284198334984975e-02 2.283856331588243e-02 2.283514713353579e-02 2.283173480111027e-02 2.282832631556901e-02 - 2.282492166909090e-02 2.282152085461623e-02 2.281812386736860e-02 2.281473070606539e-02 2.281134136558116e-02 - 2.280795583769253e-02 2.280457411713410e-02 2.280119619914733e-02 2.279782207936136e-02 2.279445175627783e-02 - 2.279108522557549e-02 2.278772247795469e-02 2.278436350274908e-02 2.278100829770330e-02 2.277765687156956e-02 - 2.277430921150676e-02 2.277096530368425e-02 2.276762515226868e-02 2.276428875675497e-02 2.276095610802096e-02 - 2.275762718728153e-02 2.275430199700514e-02 2.275098054723153e-02 2.274766282325953e-02 2.274434881806882e-02 - 2.274103853245654e-02 2.273773195657694e-02 2.273442908251650e-02 2.273112990748000e-02 2.272783443024632e-02 - 2.272454264587135e-02 2.272125454541999e-02 2.271797012768606e-02 2.271468938883630e-02 2.271141231743784e-02 - 2.270813891155475e-02 2.270486917113991e-02 2.270160309030139e-02 2.269834065991423e-02 2.269508187421201e-02 - 2.269182673791773e-02 2.268857524219826e-02 2.268532737305624e-02 2.268208313254210e-02 2.267884251722086e-02 - 2.267560551920548e-02 2.267237214108131e-02 2.266914237609957e-02 2.266591620883689e-02 2.266269364166427e-02 - 2.265947467384046e-02 2.265625929499294e-02 2.265304750285308e-02 2.264983929495161e-02 2.264663466331073e-02 - 2.264343359962570e-02 2.264023610100446e-02 2.263704217283995e-02 2.263385180078203e-02 2.263066497176033e-02 - 2.262748170200772e-02 2.262430198020481e-02 2.262112578516977e-02 2.261795313211606e-02 2.261478401664109e-02 - 2.261161841743119e-02 2.260845633522814e-02 2.260529777070043e-02 2.260214271924124e-02 2.259899117823321e-02 - 2.259584314154298e-02 2.259269859890657e-02 2.258955754741791e-02 2.258641998536936e-02 2.258328590829124e-02 - 2.258015531052365e-02 2.257702818646037e-02 2.257390453172050e-02 2.257078434461123e-02 2.256766762198980e-02 - 2.256455435398716e-02 2.256144453344060e-02 2.255833815784602e-02 2.255523523027356e-02 2.255213574452021e-02 - 2.254903968810603e-02 2.254594705829782e-02 2.254285785514665e-02 2.253977207653749e-02 2.253668970834607e-02 - 2.253361074658835e-02 2.253053520058667e-02 2.252746305460894e-02 2.252439429792020e-02 2.252132894054988e-02 - 2.251826697539277e-02 2.251520839162438e-02 2.251215318778324e-02 2.250910135797150e-02 2.250605289615611e-02 - 2.250300780314812e-02 2.249996607511807e-02 2.249692770517706e-02 2.249389268897849e-02 2.249086101912092e-02 - 2.248783268793952e-02 2.248480769791340e-02 2.248178604607573e-02 2.247876772289102e-02 2.247575272657626e-02 - 2.247274105420605e-02 2.246973269884927e-02 2.246672765673356e-02 2.246372592391256e-02 2.246072749418018e-02 - 2.245773236145919e-02 2.245474052366870e-02 2.245175198466864e-02 2.244876673416187e-02 2.244578475935081e-02 - 2.244280606154297e-02 2.243983064008646e-02 2.243685849064164e-02 2.243388960632717e-02 2.243092397966235e-02 - 2.242796160524575e-02 2.242500248562306e-02 2.242204661762487e-02 2.241909399183298e-02 2.241614460666303e-02 - 2.241319845819517e-02 2.241025553754803e-02 2.240731584245553e-02 2.240437937032112e-02 2.240144611432051e-02 - 2.239851607018801e-02 2.239558923444239e-02 2.239266560299412e-02 2.238974517661811e-02 2.238682795331298e-02 - 2.238391391839321e-02 2.238100306495051e-02 2.237809539304577e-02 2.237519090301935e-02 2.237228958954325e-02 - 2.236939144530989e-02 2.236649647337483e-02 2.236360466636645e-02 2.236071600836286e-02 2.235783050633204e-02 - 2.235494816009726e-02 2.235206895420678e-02 2.234919288912077e-02 2.234631996540050e-02 2.234345017408028e-02 - 2.234058350741709e-02 2.233771996217690e-02 2.233485954108143e-02 2.233200223848051e-02 2.232914804618978e-02 - 2.232629696222737e-02 2.232344898389008e-02 2.232060410657171e-02 2.231776232362639e-02 2.231492363175558e-02 - 2.231208802922137e-02 2.230925550831191e-02 2.230642606279709e-02 2.230359969032392e-02 2.230077639232617e-02 - 2.229795616382932e-02 2.229513899284023e-02 2.229232488215048e-02 2.228951382986107e-02 2.228670582046145e-02 - 2.228390085767177e-02 2.228109894426768e-02 2.227830006461064e-02 2.227550421765863e-02 2.227271140560883e-02 - 2.226992161633195e-02 2.226713484518715e-02 2.226435109357777e-02 2.226157036041665e-02 2.225879263594571e-02 - 2.225601790864145e-02 2.225324618600033e-02 2.225047746610503e-02 2.224771173578603e-02 2.224494899695189e-02 - 2.224218924606724e-02 2.223943246967720e-02 2.223667867147697e-02 2.223392785229840e-02 2.223117999944780e-02 - 2.222843510958861e-02 2.222569318138216e-02 2.222295420869658e-02 2.222021819230338e-02 2.221748513172378e-02 - 2.221475501403353e-02 2.221202783347761e-02 2.220930358964832e-02 2.220658227937696e-02 2.220386389978368e-02 - 2.220114844711944e-02 2.219843591216284e-02 2.219572629440826e-02 2.219301959936691e-02 2.219031581219321e-02 - 2.218761492468887e-02 2.218491694233576e-02 2.218222185562244e-02 2.217952965986671e-02 2.217684036403281e-02 - 2.217415395419634e-02 2.217147041795686e-02 2.216878976537657e-02 2.216611199005385e-02 2.216343708084910e-02 - 2.216076504044857e-02 2.215809586407636e-02 2.215542954392592e-02 2.215276608232491e-02 2.215010547339664e-02 - 2.214744770611955e-02 2.214479278225410e-02 2.214214070177000e-02 2.213949145934428e-02 2.213684504847090e-02 - 2.213420146383213e-02 2.213156070201421e-02 2.212892275987791e-02 2.212628763520102e-02 2.212365532631548e-02 - 2.212102582567219e-02 2.211839912707401e-02 2.211577523186081e-02 2.211315413883962e-02 2.211053584219323e-02 - 2.210792033053083e-02 2.210530760247808e-02 2.210269766011106e-02 2.210009049378774e-02 2.209748609987134e-02 - 2.209488448015577e-02 2.209228563063591e-02 2.208968954607055e-02 2.208709622107550e-02 2.208450564887732e-02 - 2.208191782589816e-02 2.207933275252874e-02 2.207675042560285e-02 2.207417084119970e-02 2.207159399606388e-02 - 2.206901988424427e-02 2.206644850045388e-02 2.206387984291528e-02 2.206131390816773e-02 2.205875069196218e-02 - 2.205619019101501e-02 2.205363240248722e-02 2.205107732226570e-02 2.204852494231603e-02 2.204597526222870e-02 - 2.204342828418220e-02 2.204088399409952e-02 2.203834238815479e-02 2.203580347352047e-02 2.203326724064265e-02 - 2.203073368487589e-02 2.202820281109562e-02 2.202567460568826e-02 2.202314905892956e-02 2.202062617713913e-02 - 2.201810595951965e-02 2.201558839960293e-02 2.201307348855861e-02 2.201056122699519e-02 2.200805161543166e-02 - 2.200554464185156e-02 2.200304030240887e-02 2.200053859846551e-02 2.199803952619762e-02 2.199554308107517e-02 - 2.199304925941878e-02 2.199055805969111e-02 2.198806947716193e-02 2.198558350490501e-02 2.198310014348315e-02 - 2.198061939050182e-02 2.197814123774413e-02 2.197566568143648e-02 2.197319271829654e-02 2.197072234409288e-02 - 2.196825456242376e-02 2.196578937054303e-02 2.196332674903257e-02 2.196086670076693e-02 2.195840923401799e-02 - 2.195595433798292e-02 2.195350200785295e-02 2.195105224287541e-02 2.194860503638501e-02 2.194616038337459e-02 - 2.194371828086876e-02 2.194127872478465e-02 2.193884171275727e-02 2.193640724439015e-02 2.193397531871202e-02 - 2.193154592984012e-02 2.192911906730429e-02 2.192669472874541e-02 2.192427291582612e-02 2.192185362988310e-02 - 2.191943685926103e-02 2.191702259589666e-02 2.191461084837004e-02 2.191220161094460e-02 2.190979487232746e-02 - 2.190739062981033e-02 2.190498888177591e-02 2.190258962778606e-02 2.190019287048831e-02 2.189779860038415e-02 - 2.189540680312951e-02 2.189301748590321e-02 2.189063064823816e-02 2.188824627921663e-02 2.188586438035036e-02 - 2.188348494945867e-02 2.188110797669410e-02 2.187873346273279e-02 2.187636140793982e-02 2.187399180563438e-02 - 2.187162464701073e-02 2.186925992764394e-02 2.186689765219864e-02 2.186453782016761e-02 2.186218042520733e-02 - 2.185982545624109e-02 2.185747291143151e-02 2.185512279286289e-02 2.185277509428750e-02 2.185042981497303e-02 - 2.184808695595145e-02 2.184574650317918e-02 2.184340845337333e-02 2.184107281435048e-02 2.183873957690715e-02 - 2.183640873122354e-02 2.183408027442373e-02 2.183175421068970e-02 2.182943053984947e-02 2.182710925220595e-02 - 2.182479034512406e-02 2.182247381639650e-02 2.182015965839264e-02 2.181784786935527e-02 2.181553844939510e-02 - 2.181323139439093e-02 2.181092669994856e-02 2.180862436262286e-02 2.180632438083940e-02 2.180402674952244e-02 - 2.180173146217098e-02 2.179943851892379e-02 2.179714791838810e-02 2.179485965603752e-02 2.179257372764807e-02 - 2.179029013045416e-02 2.178800886254997e-02 2.178572991731780e-02 2.178345329019238e-02 2.178117898198011e-02 - 2.177890698980304e-02 2.177663730909087e-02 2.177436993586566e-02 2.177210486810286e-02 2.176984210277431e-02 - 2.176758163245009e-02 2.176532345522340e-02 2.176306757137086e-02 2.176081397536724e-02 2.175856266623576e-02 - 2.175631364444715e-02 2.175406689861889e-02 2.175182242380624e-02 2.174958022311289e-02 2.174734029291431e-02 - 2.174510262809328e-02 2.174286722491656e-02 2.174063408336708e-02 2.173840320169586e-02 2.173617457340815e-02 - 2.173394819180500e-02 2.173172405255836e-02 2.172950215559655e-02 2.172728250040623e-02 2.172506508580887e-02 - 2.172284990969628e-02 2.172063696250313e-02 2.171842623537083e-02 2.171621773566752e-02 2.171401146093844e-02 - 2.171180740120238e-02 2.170960555830954e-02 2.170740592901658e-02 2.170520850408856e-02 2.170301328419004e-02 - 2.170082027006994e-02 2.169862945830807e-02 2.169644084240343e-02 2.169425441572978e-02 2.169207017401216e-02 - 2.168988812007480e-02 2.168770825534887e-02 2.168553057272023e-02 2.168335506533793e-02 2.168118172867985e-02 - 2.167901056214399e-02 2.167684156632982e-02 2.167467473989915e-02 2.167251007478243e-02 2.167034756604321e-02 - 2.166818721221639e-02 2.166602901099679e-02 2.166387295840019e-02 2.166171905012346e-02 2.165956728718834e-02 - 2.165741766632386e-02 2.165527017845730e-02 2.165312482355555e-02 2.165098160273919e-02 2.164884051303741e-02 - 2.164670154730472e-02 2.164456469954934e-02 2.164242996946321e-02 2.164029735885670e-02 2.163816686523918e-02 - 2.163603847533059e-02 2.163391219068715e-02 2.163178801684997e-02 2.162966593882407e-02 2.162754595404139e-02 - 2.162542806873079e-02 2.162331227177066e-02 2.162119856181649e-02 2.161908694674025e-02 2.161697741144211e-02 - 2.161486994763257e-02 2.161276456243416e-02 2.161066125301312e-02 2.160856001324272e-02 2.160646083892226e-02 - 2.160436373197112e-02 2.160226869104043e-02 2.160017570438035e-02 2.159808476849354e-02 2.159599588501710e-02 - 2.159390905460169e-02 2.159182427010056e-02 2.158974152429478e-02 2.158766082444429e-02 2.158558216760809e-02 - 2.158350554187339e-02 2.158143094233737e-02 2.157935837033232e-02 2.157728782941571e-02 2.157521931196140e-02 - 2.157315281164952e-02 2.157108832745493e-02 2.156902585566251e-02 2.156696539445298e-02 2.156490694526656e-02 - 2.156285049964247e-02 2.156079605212440e-02 2.155874360997529e-02 2.155669316474123e-02 2.155464470676604e-02 - 2.155259824484399e-02 2.155055377365348e-02 2.154851128035285e-02 2.154647076406023e-02 2.154443222886153e-02 - 2.154239567713112e-02 2.154036109691455e-02 2.153832848380287e-02 2.153629784162443e-02 2.153426916110383e-02 - 2.153224243839968e-02 2.153021767928900e-02 2.152819487735599e-02 2.152617402486068e-02 2.152415511969989e-02 - 2.152213816346627e-02 2.152012315489333e-02 2.151811008517867e-02 2.151609895106827e-02 2.151408975350627e-02 - 2.151208249405811e-02 2.151007716412923e-02 2.150807375412716e-02 2.150607227139823e-02 2.150407271389111e-02 - 2.150207507178008e-02 2.150007934512424e-02 2.149808553345600e-02 2.149609363244227e-02 2.149410363369511e-02 - 2.149211553597770e-02 2.149012934592863e-02 2.148814505588094e-02 2.148616265955859e-02 2.148418215959600e-02 - 2.148220354775919e-02 2.148022681859241e-02 2.147825198020547e-02 2.147627902590631e-02 2.147430794498996e-02 - 2.147233873858447e-02 2.147037140717467e-02 2.146840594879004e-02 2.146644235912430e-02 2.146448063553682e-02 - 2.146252077578778e-02 2.146056277288728e-02 2.145860662318243e-02 2.145665232726965e-02 2.145469988438242e-02 - 2.145274929256557e-02 2.145080054831608e-02 2.144885364454498e-02 2.144690857746641e-02 2.144496534942983e-02 - 2.144302395654175e-02 2.144108439499599e-02 2.143914666610025e-02 2.143721076355154e-02 2.143527668029283e-02 - 2.143334441800114e-02 2.143141397685691e-02 2.142948535268880e-02 2.142755853497146e-02 2.142563352602930e-02 - 2.142371033388222e-02 2.142178894500280e-02 2.141986935358769e-02 2.141795156402302e-02 2.141603556793572e-02 - 2.141412136230918e-02 2.141220895321441e-02 2.141029833297722e-02 2.140838949470163e-02 2.140648244009975e-02 - 2.140457716697424e-02 2.140267367166504e-02 2.140077195168551e-02 2.139887200433115e-02 2.139697382547902e-02 - 2.139507740888590e-02 2.139318275720074e-02 2.139128987343195e-02 2.138939874415982e-02 2.138750936775835e-02 - 2.138562175102568e-02 2.138373588641631e-02 2.138185176599392e-02 2.137996938652284e-02 2.137808875223814e-02 - 2.137620986251236e-02 2.137433270909064e-02 2.137245728978030e-02 2.137058360186242e-02 2.136871163953864e-02 - 2.136684140688612e-02 2.136497290390506e-02 2.136310611597474e-02 2.136124104345297e-02 2.135937769212130e-02 - 2.135751605860686e-02 2.135565613610374e-02 2.135379791822062e-02 2.135194140402438e-02 2.135008659417071e-02 - 2.134823348788390e-02 2.134638207760105e-02 2.134453236032835e-02 2.134268433814086e-02 2.134083800772077e-02 - 2.133899336411597e-02 2.133715040305821e-02 2.133530912424798e-02 2.133346952672500e-02 2.133163160670673e-02 - 2.132979536297411e-02 2.132796079152963e-02 2.132612788229375e-02 2.132429663915477e-02 2.132246706798375e-02 - 2.132063916037057e-02 2.131881290769116e-02 2.131698830582932e-02 2.131516535978050e-02 2.131334407028698e-02 - 2.131152443198118e-02 2.130970643552249e-02 2.130789007885127e-02 2.130607536669811e-02 2.130426229682303e-02 - 2.130245086421657e-02 2.130064106313053e-02 2.129883288837854e-02 2.129702633875496e-02 2.129522141788389e-02 - 2.129341812290223e-02 2.129161644909972e-02 2.128981639414264e-02 2.128801795585396e-02 2.128622113110773e-02 - 2.128442591509673e-02 2.128263230760480e-02 2.128084030772261e-02 2.127904990395241e-02 2.127726109953179e-02 - 2.127547390424031e-02 2.127368830171838e-02 2.127190428479188e-02 2.127012186038021e-02 2.126834102886177e-02 - 2.126656178481652e-02 2.126478411995624e-02 2.126300803603507e-02 2.126123353191450e-02 2.125946059821390e-02 - 2.125768923851055e-02 2.125591945439615e-02 2.125415123382016e-02 2.125238457915817e-02 2.125061949358618e-02 - 2.124885596288304e-02 2.124709398735697e-02 2.124533357303348e-02 2.124357470952245e-02 2.124181739435340e-02 - 2.124006163206048e-02 2.123830741948956e-02 2.123655475001017e-02 2.123480361731545e-02 2.123305402409987e-02 - 2.123130596739953e-02 2.122955943693203e-02 2.122781443910126e-02 2.122607097723360e-02 2.122432904130337e-02 - 2.122258862659696e-02 2.122084973282204e-02 2.121911236175234e-02 2.121737650789419e-02 2.121564216387619e-02 - 2.121390932803162e-02 2.121217800425756e-02 2.121044819455527e-02 2.120871988671843e-02 2.120699307684077e-02 - 2.120526776795157e-02 2.120354395552526e-02 2.120182163603621e-02 2.120010080901829e-02 2.119838147500087e-02 - 2.119666363123091e-02 2.119494727091758e-02 2.119323238927472e-02 2.119151898655034e-02 2.118980706773010e-02 - 2.118809662574528e-02 2.118638765303925e-02 2.118468015121633e-02 2.118297411864271e-02 2.118126955146517e-02 - 2.117956644637810e-02 2.117786480292237e-02 2.117616462067450e-02 2.117446589411339e-02 2.117276862084477e-02 - 2.117107280130004e-02 2.116937843379139e-02 2.116768551256503e-02 2.116599403067535e-02 2.116430399205533e-02 - 2.116261539753040e-02 2.116092824074994e-02 2.115924251858398e-02 2.115755822756320e-02 2.115587536308644e-02 - 2.115419393062315e-02 2.115251393109511e-02 2.115083534999197e-02 2.114915818684827e-02 2.114748244571777e-02 - 2.114580812117730e-02 2.114413521000233e-02 2.114246371011731e-02 2.114079361630021e-02 2.113912493113981e-02 - 2.113745765864524e-02 2.113579178347091e-02 2.113412730283017e-02 2.113246422731517e-02 2.113080255018658e-02 - 2.112914226466844e-02 2.112748336987266e-02 2.112582586239263e-02 2.112416973838773e-02 2.112251499585494e-02 - 2.112086163946853e-02 2.111920966923609e-02 2.111755907231158e-02 2.111590984741022e-02 2.111426199652882e-02 - 2.111261551330255e-02 2.111097039854193e-02 2.110932665501722e-02 2.110768427494188e-02 2.110604325159932e-02 - 2.110440358337455e-02 2.110276527755971e-02 2.110112832954347e-02 2.109949272542061e-02 2.109785847270291e-02 - 2.109622557382813e-02 2.109459401840321e-02 2.109296380279178e-02 2.109133492634166e-02 2.108970738897449e-02 - 2.108808119187406e-02 2.108645633261542e-02 2.108483280177793e-02 2.108321059649476e-02 2.108158971816587e-02 - 2.107997016818712e-02 2.107835194176262e-02 2.107673503228282e-02 2.107511943992769e-02 2.107350516482023e-02 - 2.107189220511111e-02 2.107028055587330e-02 2.106867021606288e-02 2.106706118735907e-02 2.106545346293816e-02 - 2.106384703796383e-02 2.106224191316689e-02 2.106063808955507e-02 2.105903556250238e-02 2.105743432153898e-02 - 2.105583437513380e-02 2.105423572746437e-02 2.105263836035830e-02 2.105104227142354e-02 2.104944746729932e-02 - 2.104785395134047e-02 2.104626171573087e-02 2.104467074966839e-02 2.104308105452007e-02 2.104149263222363e-02 - 2.103990548218236e-02 2.103831959968388e-02 2.103673498293864e-02 2.103515163200819e-02 2.103356953798411e-02 - 2.103198869775456e-02 2.103040911733209e-02 2.102883079574534e-02 2.102725372695269e-02 2.102567790273802e-02 - 2.102410332486244e-02 2.102252999507990e-02 2.102095790737760e-02 2.101938706174730e-02 2.101781745879964e-02 - 2.101624909192282e-02 2.101468195450770e-02 2.101311604447429e-02 2.101155137000445e-02 2.100998792857284e-02 - 2.100842571064132e-02 2.100686471849675e-02 2.100530495078897e-02 2.100374640001838e-02 2.100218906014547e-02 - 2.100063293273019e-02 2.099907802537045e-02 2.099752433031871e-02 2.099597184169578e-02 2.099442056340826e-02 - 2.099287048844137e-02 2.099132161182849e-02 2.098977394056553e-02 2.098822746767990e-02 2.098668218492037e-02 - 2.098513809937855e-02 2.098359520656010e-02 2.098205349870481e-02 2.098051298433238e-02 2.097897365788888e-02 - 2.097743550607582e-02 2.097589853771057e-02 2.097436275317134e-02 2.097282814179318e-02 2.097129470444368e-02 - 2.096976244194844e-02 2.096823135057212e-02 2.096670142502171e-02 2.096517266432222e-02 2.096364507294766e-02 - 2.096211864290872e-02 2.096059336882086e-02 2.095906925902597e-02 2.095754630598820e-02 2.095602449947026e-02 - 2.095450384463222e-02 2.095298434369944e-02 2.095146599313072e-02 2.094994878341327e-02 2.094843271500539e-02 - 2.094691779352117e-02 2.094540401073429e-02 2.094389136288097e-02 2.094237985194064e-02 2.094086947133280e-02 - 2.093936021927527e-02 2.093785210108921e-02 2.093634511142213e-02 2.093483924325246e-02 2.093333449385128e-02 - 2.093183086645815e-02 2.093032836253444e-02 2.092882697593887e-02 2.092732670311165e-02 2.092582754108962e-02 - 2.092432948474122e-02 2.092283253800634e-02 2.092133670446908e-02 2.091984196956714e-02 2.091834833166288e-02 - 2.091685579922333e-02 2.091536436905392e-02 2.091387403364116e-02 2.091238478662568e-02 2.091089663391256e-02 - 2.090940957508328e-02 2.090792359986955e-02 2.090643871032298e-02 2.090495490818039e-02 2.090347218811059e-02 - 2.090199054718417e-02 2.090050998308706e-02 2.089903049243704e-02 2.089755207414248e-02 2.089607472810411e-02 - 2.089459845325996e-02 2.089312324594328e-02 2.089164910255710e-02 2.089017602427597e-02 2.088870401009232e-02 - 2.088723305634642e-02 2.088576315893389e-02 2.088429431601771e-02 2.088282652696964e-02 2.088135978615913e-02 - 2.087989409321534e-02 2.087842945395569e-02 2.087696586275656e-02 2.087550331287119e-02 2.087404180207852e-02 - 2.087258132736208e-02 2.087112188861259e-02 2.086966349090147e-02 2.086820612891688e-02 2.086674979608584e-02 - 2.086529449590395e-02 2.086384022331517e-02 2.086238697045790e-02 2.086093474039187e-02 2.085948353444753e-02 - 2.085803335091995e-02 2.085658418796912e-02 2.085513604081134e-02 2.085368890289571e-02 2.085224277300881e-02 - 2.085079765267601e-02 2.084935354393509e-02 2.084791044341373e-02 2.084646834711395e-02 2.084502725286095e-02 - 2.084358715744794e-02 2.084214805848912e-02 2.084070995598070e-02 2.083927284909677e-02 2.083783673573611e-02 - 2.083640161226469e-02 2.083496747523998e-02 2.083353432223483e-02 2.083210215303235e-02 2.083067096927498e-02 - 2.082924077044086e-02 2.082781154460241e-02 2.082638329211299e-02 2.082495602309350e-02 2.082352972509603e-02 - 2.082210439277076e-02 2.082068003454410e-02 2.081925664261260e-02 2.081783421113447e-02 2.081641274508624e-02 - 2.081499224082686e-02 2.081357269450268e-02 2.081215410878219e-02 2.081073647873721e-02 2.080931979776872e-02 - 2.080790406592918e-02 2.080648928500749e-02 2.080507545608266e-02 2.080366257645188e-02 2.080225063919177e-02 - 2.080083963814898e-02 2.079942957984240e-02 2.079802046255642e-02 2.079661227641324e-02 2.079520502452446e-02 - 2.079379870732677e-02 2.079239331877295e-02 2.079098886066600e-02 2.078958533155146e-02 2.078818272238310e-02 - 2.078678103594075e-02 2.078538027480030e-02 2.078398043169412e-02 2.078258150517176e-02 2.078118349582184e-02 - 2.077978640032045e-02 2.077839021518007e-02 2.077699493798996e-02 2.077560056860569e-02 2.077420710626992e-02 - 2.077281454908150e-02 2.077142289397691e-02 2.077003213665487e-02 2.076864227381708e-02 2.076725331084939e-02 - 2.076586524753700e-02 2.076447807479244e-02 2.076309178893910e-02 2.076170639200464e-02 2.076032188924749e-02 - 2.075893827075576e-02 2.075755552867013e-02 2.075617367037054e-02 2.075479269394757e-02 2.075341259415677e-02 - 2.075203337133167e-02 2.075065502119062e-02 2.074927754004291e-02 2.074790093527532e-02 2.074652520196147e-02 - 2.074515032814618e-02 2.074377631824518e-02 2.074240317461906e-02 2.074103089389617e-02 2.073965947285912e-02 - 2.073828890806665e-02 2.073691919635770e-02 2.073555033844026e-02 2.073418233381763e-02 2.073281517823886e-02 - 2.073144886803073e-02 2.073008340377233e-02 2.072871879147831e-02 2.072735502222402e-02 2.072599208688765e-02 - 2.072462999392301e-02 2.072326873860233e-02 2.072190831224300e-02 2.072054872378210e-02 2.071918997148765e-02 - 2.071783204556565e-02 2.071647494755481e-02 2.071511867766477e-02 2.071376323196711e-02 2.071240860565183e-02 - 2.071105479791370e-02 2.070970181180314e-02 2.070834964331268e-02 2.070699828917085e-02 2.070564775075080e-02 - 2.070429802727900e-02 2.070294911380581e-02 2.070160100113699e-02 2.070025369244763e-02 2.069890719322030e-02 - 2.069756149841416e-02 2.069621660331007e-02 2.069487250616514e-02 2.069352920972353e-02 2.069218670843115e-02 - 2.069084499406914e-02 2.068950407478504e-02 2.068816395008570e-02 2.068682460979861e-02 2.068548605525363e-02 - 2.068414828647597e-02 2.068281129879088e-02 2.068147509294542e-02 2.068013966727868e-02 2.067880501481977e-02 - 2.067747113766845e-02 2.067613803889334e-02 2.067480571527677e-02 2.067347415977921e-02 2.067214336769299e-02 - 2.067081334319025e-02 2.066948408776949e-02 2.066815559807265e-02 2.066682786498898e-02 2.066550088830383e-02 - 2.066417467341183e-02 2.066284921698086e-02 2.066152451475288e-02 2.066020056372571e-02 2.065887736182303e-02 - 2.065755490839281e-02 2.065623320354572e-02 2.065491224367795e-02 2.065359202675738e-02 2.065227255436574e-02 - 2.065095382314874e-02 2.064963582941213e-02 2.064831857270797e-02 2.064700204957123e-02 2.064568625651786e-02 - 2.064437119414936e-02 2.064305686324694e-02 2.064174326345409e-02 2.064043039179931e-02 2.063911824280925e-02 - 2.063780681176866e-02 2.063649610237503e-02 2.063518611610314e-02 2.063387684909248e-02 2.063256829217405e-02 - 2.063126044539576e-02 2.062995331851188e-02 2.062864690334512e-02 2.062734119190086e-02 2.062603618600375e-02 - 2.062473188642144e-02 2.062342829221786e-02 2.062212540064643e-02 2.062082320714733e-02 2.061952170915304e-02 - 2.061822091004314e-02 2.061692080716460e-02 2.061562139605911e-02 2.061432267954307e-02 2.061302465323251e-02 - 2.061172730955065e-02 2.061043065371613e-02 2.060913468523504e-02 2.060783939685846e-02 2.060654478913799e-02 - 2.060525086119714e-02 2.060395760866959e-02 2.060266503271371e-02 2.060137313244415e-02 2.060008190215519e-02 - 2.059879134465455e-02 2.059750146004468e-02 2.059621223782829e-02 2.059492368052522e-02 2.059363579225837e-02 - 2.059234856405708e-02 2.059106199328788e-02 2.058977608130871e-02 2.058849082556723e-02 2.058720622498806e-02 - 2.058592227959311e-02 2.058463898696043e-02 2.058335634281647e-02 2.058207434376584e-02 2.058079299573017e-02 - 2.057951229614279e-02 2.057823223269817e-02 2.057695281356401e-02 2.057567404187197e-02 2.057439590387300e-02 - 2.057311839681732e-02 2.057184152455586e-02 2.057056529173392e-02 2.056928969078429e-02 2.056801471376779e-02 - 2.056674036634529e-02 2.056546664830153e-02 2.056419355486686e-02 2.056292108306100e-02 2.056164923170236e-02 - 2.056037800067255e-02 2.055910738924650e-02 2.055783739340399e-02 2.055656800859636e-02 2.055529924146672e-02 - 2.055403109005562e-02 2.055276354110791e-02 2.055149659755915e-02 2.055023026272679e-02 2.054896453244645e-02 - 2.054769940766287e-02 2.054643488681757e-02 2.054517096062926e-02 2.054390763218316e-02 2.054264490512525e-02 - 2.054138276915942e-02 2.054012122328143e-02 2.053886027085424e-02 2.053759990682471e-02 2.053634012878631e-02 - 2.053508093799464e-02 2.053382233647706e-02 2.053256431985532e-02 2.053130687980379e-02 2.053005001911220e-02 - 2.052879373804411e-02 2.052753803104820e-02 2.052628289842169e-02 2.052502834052905e-02 2.052377435424499e-02 - 2.052252093383405e-02 2.052126807833591e-02 2.052001579579881e-02 2.051876408076618e-02 2.051751292558091e-02 - 2.051626233431153e-02 2.051501230108543e-02 2.051376281904528e-02 2.051251389905356e-02 2.051126553806812e-02 - 2.051001772450580e-02 2.050877046477720e-02 2.050752375748313e-02 2.050627759308629e-02 2.050503197764233e-02 - 2.050378691120845e-02 2.050254238346269e-02 2.050129839647772e-02 2.050005495152270e-02 2.049881204279591e-02 - 2.049756967049427e-02 2.049632783497685e-02 2.049508653204386e-02 2.049384576061373e-02 2.049260552085964e-02 - 2.049136581124810e-02 2.049012662828215e-02 2.048888796855573e-02 2.048764983217528e-02 2.048641222055239e-02 - 2.048517513365279e-02 2.048393856449956e-02 2.048270250702790e-02 2.048146696002243e-02 2.048023193267689e-02 - 2.047899742444990e-02 2.047776342204647e-02 2.047652992557144e-02 2.047529693666283e-02 2.047406445284291e-02 - 2.047283247820367e-02 2.047160101124722e-02 2.047037003705319e-02 2.046913955996649e-02 2.046790958805229e-02 - 2.046668011290463e-02 2.046545112747173e-02 2.046422263048016e-02 2.046299462941648e-02 2.046176712182623e-02 - 2.046054009863872e-02 2.045931356011635e-02 2.045808750875261e-02 2.045686194483555e-02 2.045563685869128e-02 - 2.045441224888558e-02 2.045318812405373e-02 2.045196447539730e-02 2.045074129851060e-02 2.044951860203706e-02 - 2.044829637561388e-02 2.044707461146781e-02 2.044585332076453e-02 2.044463250090934e-02 2.044341214478788e-02 - 2.044219225389736e-02 2.044097282684260e-02 2.043975385980242e-02 2.043853534979080e-02 2.043731729516990e-02 - 2.043609969584751e-02 2.043488255365452e-02 2.043366586840525e-02 2.043244963622695e-02 2.043123384788510e-02 - 2.043001850356880e-02 2.042880361352058e-02 2.042758917125052e-02 2.042637516923373e-02 2.042516160738241e-02 - 2.042394848596822e-02 2.042273580364956e-02 2.042152355668345e-02 2.042031174421715e-02 2.041910036711696e-02 - 2.041788942589821e-02 2.041667891618270e-02 2.041546883283581e-02 2.041425917723074e-02 2.041304994671302e-02 - 2.041184113736942e-02 2.041063275507356e-02 2.040942479864618e-02 2.040821725911453e-02 2.040701013329647e-02 - 2.040580342336421e-02 2.040459713364973e-02 2.040339125626194e-02 2.040218578748979e-02 2.040098073437600e-02 - 2.039977609190064e-02 2.039857185194057e-02 2.039736801200263e-02 2.039616457948628e-02 2.039496155847034e-02 - 2.039375893548800e-02 2.039255670811317e-02 2.039135487906758e-02 2.039015344139171e-02 2.038895239754324e-02 - 2.038775175394349e-02 2.038655150008423e-02 2.038535163468296e-02 2.038415216492024e-02 2.038295307932101e-02 - 2.038175437156158e-02 2.038055604740632e-02 2.037935811014152e-02 2.037816055719221e-02 2.037696338008003e-02 - 2.037576657774965e-02 2.037457015197002e-02 2.037337410306159e-02 2.037217842811476e-02 2.037098312337542e-02 - 2.036978818702816e-02 2.036859361901312e-02 2.036739941883561e-02 2.036620558232109e-02 2.036501210897116e-02 - 2.036381899981477e-02 2.036262624936801e-02 2.036143385733716e-02 2.036024182706139e-02 2.035905014947786e-02 - 2.035785882153747e-02 2.035666784977269e-02 2.035547723079831e-02 2.035428696142468e-02 2.035309704319765e-02 - 2.035190747134853e-02 2.035071824110532e-02 2.034952935293085e-02 2.034834080749865e-02 2.034715260430401e-02 - 2.034596474052595e-02 2.034477721202228e-02 2.034359001578161e-02 2.034240315367684e-02 2.034121662664043e-02 - 2.034003043357028e-02 2.033884457132868e-02 2.033765903741480e-02 2.033647382949949e-02 2.033528894162872e-02 - 2.033410437471255e-02 2.033292013620119e-02 2.033173621775026e-02 2.033055261459435e-02 2.032936933387398e-02 - 2.032818637173341e-02 2.032700371995237e-02 2.032582137330103e-02 2.032463934032926e-02 2.032345762721536e-02 - 2.032227621977112e-02 2.032109511380310e-02 2.031991431266943e-02 2.031873381713771e-02 2.031755362367381e-02 - 2.031637372822898e-02 2.031519413522404e-02 2.031401484060572e-02 2.031283583475656e-02 2.031165712768451e-02 - 2.031047872082618e-02 2.030930060067025e-02 2.030812276414845e-02 2.030694521582938e-02 2.030576796297434e-02 - 2.030459099391277e-02 2.030341430130414e-02 2.030223789822972e-02 2.030106177803277e-02 2.029988592949474e-02 - 2.029871035725545e-02 2.029753506661443e-02 2.029636005659757e-02 2.029518531267896e-02 2.029401083596470e-02 - 2.029283663654064e-02 2.029166270589052e-02 2.029048903923464e-02 2.028931563858370e-02 2.028814250195392e-02 - 2.028696962711050e-02 2.028579701358946e-02 2.028462466440920e-02 2.028345257575578e-02 2.028228073462766e-02 - 2.028110914546667e-02 2.027993781542017e-02 2.027876674182124e-02 2.027759591671596e-02 2.027642533515473e-02 - 2.027525500323221e-02 2.027408491983729e-02 2.027291508043819e-02 2.027174548650143e-02 2.027057613494678e-02 - 2.026940701983228e-02 2.026823814087089e-02 2.026706949898955e-02 2.026590109425394e-02 2.026473292320746e-02 - 2.026356498366547e-02 2.026239727592488e-02 2.026122979922282e-02 2.026006255023894e-02 2.025889552388743e-02 - 2.025772872449768e-02 2.025656215399196e-02 2.025539580342713e-02 2.025422967119250e-02 2.025306375830951e-02 - 2.025189806183918e-02 2.025073258129647e-02 2.024956731656576e-02 2.024840226339874e-02 2.024723742127980e-02 - 2.024607279125879e-02 2.024490836776212e-02 2.024374415071052e-02 2.024258014353189e-02 2.024141633571028e-02 - 2.024025272656142e-02 2.023908932762591e-02 2.023792612793740e-02 2.023676312010299e-02 2.023560031179207e-02 - 2.023443769779265e-02 2.023327527310789e-02 2.023211304323675e-02 2.023095100708355e-02 2.022978916007167e-02 - 2.022862749919407e-02 2.022746602379288e-02 2.022630473371739e-02 2.022514362648272e-02 2.022398270121405e-02 - 2.022282195791762e-02 2.022166139402294e-02 2.022050100551405e-02 2.021934078921764e-02 2.021818074920451e-02 - 2.021702088593813e-02 2.021586119314628e-02 2.021470166428228e-02 2.021354230080554e-02 2.021238311308448e-02 - 2.021122409287018e-02 2.021006523025651e-02 2.020890652716039e-02 2.020774798484683e-02 2.020658960393083e-02 - 2.020543138529554e-02 2.020427332378045e-02 2.020311541298552e-02 2.020195765397637e-02 2.020080004744672e-02 - 2.019964259236717e-02 2.019848528642001e-02 2.019732812869024e-02 2.019617111926010e-02 2.019501425544548e-02 - 2.019385753379127e-02 2.019270095135025e-02 2.019154450793482e-02 2.019038820298517e-02 2.018923203417478e-02 - 2.018807600019563e-02 2.018692010151906e-02 2.018576433995726e-02 2.018460870891364e-02 2.018345320296787e-02 - 2.018229782843392e-02 2.018114258172615e-02 2.017998745649097e-02 2.017883245877245e-02 2.017767758620927e-02 - 2.017652283054322e-02 2.017536819223788e-02 2.017421367319040e-02 2.017305927292809e-02 2.017190498313902e-02 - 2.017075080461503e-02 2.016959674752286e-02 2.016844280049332e-02 2.016728895684716e-02 2.016613522539111e-02 - 2.016498159847723e-02 2.016382807033869e-02 2.016267465040216e-02 2.016152133310211e-02 2.016036811076429e-02 - 2.015921498985646e-02 2.015806197025070e-02 2.015690904702832e-02 2.015575621731957e-02 2.015460347791708e-02 - 2.015345082711757e-02 2.015229826996444e-02 2.015114580452791e-02 2.014999342256183e-02 2.014884112402139e-02 - 2.014768891079059e-02 2.014653678283008e-02 2.014538473229735e-02 2.014423275838842e-02 2.014308087159530e-02 - 2.014192906336537e-02 2.014077732405132e-02 2.013962565684693e-02 2.013847406112768e-02 2.013732253607323e-02 - 2.013617108558620e-02 2.013501970367529e-02 2.013386838304751e-02 2.013271713092954e-02 2.013156594450895e-02 - 2.013041481517404e-02 2.012926374836556e-02 2.012811274375330e-02 2.012696179396415e-02 2.012581089842930e-02 - 2.012466005832842e-02 2.012350927388322e-02 2.012235854139777e-02 2.012120785897021e-02 2.012005722808521e-02 - 2.011890664240422e-02 2.011775609861771e-02 2.011660560342765e-02 2.011545514995805e-02 2.011430473248947e-02 - 2.011315436328775e-02 2.011200403690588e-02 2.011085374071231e-02 2.010970347811273e-02 2.010855325123000e-02 - 2.010740305829795e-02 2.010625289543029e-02 2.010510276184403e-02 2.010395265874816e-02 2.010280258124321e-02 - 2.010165252783862e-02 2.010050250168409e-02 2.009935249835288e-02 2.009820251528310e-02 2.009705255512517e-02 - 2.009590261098061e-02 2.009475267797075e-02 2.009360276160796e-02 2.009245286068316e-02 2.009130297235736e-02 - 2.009015309860190e-02 2.008900323371492e-02 2.008785337125678e-02 2.008670351711407e-02 2.008555367122358e-02 - 2.008440382812401e-02 2.008325398588614e-02 2.008210414433437e-02 2.008095430334925e-02 2.007980445913736e-02 - 2.007865461009197e-02 2.007750475755383e-02 2.007635489836262e-02 2.007520502856765e-02 2.007405514609401e-02 - 2.007290525369839e-02 2.007175535352643e-02 2.007060544261636e-02 2.006945551378952e-02 2.006830556246986e-02 - 2.006715559358176e-02 2.006600560685722e-02 2.006485559907452e-02 2.006370557035152e-02 2.006255552017783e-02 - 2.006140544519211e-02 2.006025533608720e-02 2.005910519424486e-02 2.005795502866486e-02 2.005680483150780e-02 - 2.005565460068358e-02 2.005450434307724e-02 2.005335404752871e-02 2.005220370751987e-02 2.005105333078331e-02 - 2.004990291380246e-02 2.004875245256121e-02 2.004760195075808e-02 2.004645140541610e-02 2.004530081249103e-02 - 2.004415017386308e-02 2.004299948719255e-02 2.004184874893760e-02 2.004069796075558e-02 2.003954711861807e-02 - 2.003839621652469e-02 2.003724525928808e-02 2.003609424691447e-02 2.003494317431652e-02 2.003379204407136e-02 - 2.003264085311753e-02 2.003148959193977e-02 2.003033826577724e-02 2.002918687817827e-02 2.002803542325049e-02 - 2.002688389828578e-02 2.002573230084169e-02 2.002458062668545e-02 2.002342887779152e-02 2.002227705716231e-02 - 2.002112516254241e-02 2.001997318998642e-02 2.001882113644655e-02 2.001766900292078e-02 2.001651678857442e-02 - 2.001536448981540e-02 2.001421210083374e-02 2.001305962366636e-02 2.001190706486020e-02 2.001075441600587e-02 - 2.000960167234195e-02 2.000844883687991e-02 2.000729590520412e-02 2.000614287591466e-02 2.000498975435740e-02 - 2.000383653574291e-02 2.000268321490327e-02 2.000152979351511e-02 2.000037626872929e-02 1.999922263743778e-02 - 1.999806890154111e-02 1.999691505794393e-02 1.999576110265488e-02 1.999460703886217e-02 1.999345286480270e-02 - 1.999229857569377e-02 1.999114417297134e-02 1.998998965543275e-02 1.998883501902821e-02 1.998768026399775e-02 - 1.998652538946059e-02 1.998537039260291e-02 1.998421527483334e-02 1.998306003351848e-02 1.998190465988335e-02 - 1.998074915750420e-02 1.997959352937345e-02 1.997843776879367e-02 1.997728187765045e-02 1.997612585705249e-02 - 1.997496969649909e-02 1.997381339760593e-02 1.997265696528752e-02 1.997150039002939e-02 1.997034367059401e-02 - 1.996918681208352e-02 1.996802981226081e-02 1.996687266788810e-02 1.996571537594770e-02 1.996455793197006e-02 - 1.996340033608642e-02 1.996224259309599e-02 1.996108470119043e-02 1.995992665416334e-02 1.995876844505867e-02 - 1.995761008193637e-02 1.995645156786617e-02 1.995529288784624e-02 1.995413404457776e-02 1.995297504246996e-02 - 1.995181586885687e-02 1.995065652904149e-02 1.994949703248385e-02 1.994833736513130e-02 1.994717752162546e-02 - 1.994601750553184e-02 1.994485731663886e-02 1.994369695406686e-02 1.994253641736701e-02 1.994137570693218e-02 - 1.994021481716852e-02 1.993905373876526e-02 1.993789248152490e-02 1.993673104732284e-02 1.993556942048493e-02 - 1.993440760773439e-02 1.993324561433191e-02 1.993208342679873e-02 1.993092104568069e-02 1.992975847582151e-02 - 1.992859571315939e-02 1.992743275300710e-02 1.992626959353599e-02 1.992510623927749e-02 1.992394268911061e-02 - 1.992277893654564e-02 1.992161497535049e-02 1.992045080942924e-02 1.991928644769617e-02 1.991812187931771e-02 - 1.991695709651699e-02 1.991579210148713e-02 1.991462689658082e-02 1.991346148075462e-02 1.991229584907280e-02 - 1.991113000189043e-02 1.990996393932216e-02 1.990879765723607e-02 1.990763115454515e-02 1.990646443148474e-02 - 1.990529748687400e-02 1.990413031580006e-02 1.990296291532720e-02 1.990179529310021e-02 1.990062744303953e-02 - 1.989945935329500e-02 1.989829103342642e-02 1.989712248515872e-02 1.989595370004318e-02 1.989478467737964e-02 - 1.989361541884726e-02 1.989244592499573e-02 1.989127618925862e-02 1.989010620674421e-02 1.988893597834538e-02 - 1.988776550466197e-02 1.988659478703524e-02 1.988542382727661e-02 1.988425261506333e-02 1.988308114268849e-02 - 1.988190942098788e-02 1.988073745006194e-02 1.987956522359536e-02 1.987839274079954e-02 1.987722000000555e-02 - 1.987604699732070e-02 1.987487372670402e-02 1.987370019241589e-02 1.987252640362364e-02 1.987135234678179e-02 - 1.987017801708705e-02 1.986900342417090e-02 1.986782856130232e-02 1.986665342124566e-02 1.986547800516037e-02 - 1.986430231940191e-02 1.986312636323797e-02 1.986195012209680e-02 1.986077359858922e-02 1.985959679883774e-02 - 1.985841971608161e-02 1.985724235007767e-02 1.985606470192896e-02 1.985488676268764e-02 1.985370853173279e-02 - 1.985253001389235e-02 1.985135120589531e-02 1.985017210671596e-02 1.984899271721913e-02 1.984781303008921e-02 - 1.984663304141680e-02 1.984545275323681e-02 1.984427216416261e-02 1.984309127447186e-02 1.984191008724042e-02 - 1.984072859600846e-02 1.983954679442092e-02 1.983836468369445e-02 1.983718226650526e-02 1.983599954091759e-02 - 1.983481649574990e-02 1.983363313683907e-02 1.983244947316962e-02 1.983126549121019e-02 1.983008118452795e-02 - 1.982889655650101e-02 1.982771161407836e-02 1.982652635127155e-02 1.982534075477381e-02 1.982415483542671e-02 - 1.982296859699974e-02 1.982178202865004e-02 1.982059512679342e-02 1.981940789099672e-02 1.981822032140366e-02 - 1.981703241807743e-02 1.981584417989424e-02 1.981465560415464e-02 1.981346669171603e-02 1.981227744136961e-02 - 1.981108784415540e-02 1.980989790130036e-02 1.980870761757638e-02 1.980751698807925e-02 1.980632600934410e-02 - 1.980513468056937e-02 1.980394300171975e-02 1.980275097143216e-02 1.980155858653555e-02 1.980036584235624e-02 - 1.979917273943820e-02 1.979797928262491e-02 1.979678546489206e-02 1.979559128379798e-02 1.979439674657348e-02 - 1.979320184217468e-02 1.979200656369760e-02 1.979081092352834e-02 1.978961491694981e-02 1.978841853542797e-02 - 1.978722178317891e-02 1.978602465925507e-02 1.978482715855289e-02 1.978362927697639e-02 1.978243101628911e-02 - 1.978123238058121e-02 1.978003336668686e-02 1.977883396860304e-02 1.977763418131442e-02 1.977643400902304e-02 - 1.977523345232920e-02 1.977403250607500e-02 1.977283117205557e-02 1.977162944865208e-02 1.977042732702634e-02 - 1.976922480613855e-02 1.976802188997964e-02 1.976681858355301e-02 1.976561487769950e-02 1.976441076369096e-02 - 1.976320624890566e-02 1.976200133147697e-02 1.976079600616600e-02 1.975959027757971e-02 1.975838414138116e-02 - 1.975717758909272e-02 1.975597062600439e-02 1.975476325369590e-02 1.975355546738499e-02 1.975234726242962e-02 - 1.975113863825908e-02 1.974992959762522e-02 1.974872013640206e-02 1.974751025163228e-02 1.974629994489470e-02 - 1.974508921425132e-02 1.974387805573186e-02 1.974266646519683e-02 1.974145444319864e-02 1.974024199150465e-02 - 1.973902910920840e-02 1.973781579519036e-02 1.973660204598839e-02 1.973538785240977e-02 1.973417321684443e-02 - 1.973295814730416e-02 1.973174263781577e-02 1.973052668253849e-02 1.972931027913797e-02 1.972809342747564e-02 - 1.972687612827085e-02 1.972565838187941e-02 1.972444018482310e-02 1.972322153363352e-02 1.972200242687443e-02 - 1.972078286440720e-02 1.971956284541047e-02 1.971834236691286e-02 1.971712142485657e-02 1.971590001741145e-02 - 1.971467814826898e-02 1.971345581852119e-02 1.971223302479186e-02 1.971100975804211e-02 1.970978601823674e-02 - 1.970856181065497e-02 1.970733713228995e-02 1.970611197806177e-02 1.970488634450282e-02 1.970366023582840e-02 - 1.970243364879734e-02 1.970120657299705e-02 1.969997901837739e-02 1.969875098677333e-02 1.969752246217473e-02 - 1.969629345274012e-02 1.969506396226801e-02 1.969383397141272e-02 1.969260348756574e-02 1.969137252109090e-02 - 1.969014105730648e-02 1.968890909233832e-02 1.968767662961491e-02 1.968644366805134e-02 1.968521020635475e-02 - 1.968397624286150e-02 1.968274177331172e-02 1.968150679588088e-02 1.968027131148579e-02 1.967903532058098e-02 - 1.967779882218197e-02 1.967656181292412e-02 1.967532428489620e-02 1.967408623811289e-02 1.967284768294825e-02 - 1.967160860971293e-02 1.967036900987211e-02 1.966912889102269e-02 1.966788825153749e-02 1.966664708600774e-02 - 1.966540539310703e-02 1.966416317292449e-02 1.966292042476060e-02 1.966167714455673e-02 1.966043333167102e-02 - 1.965918898702837e-02 1.965794410650064e-02 1.965669868705162e-02 1.965545272765306e-02 1.965420622710374e-02 - 1.965295918609461e-02 1.965171160585919e-02 1.965046347855766e-02 1.964921480087875e-02 1.964796557872257e-02 - 1.964671580769246e-02 1.964546548231519e-02 1.964421460325605e-02 1.964296317129598e-02 1.964171118580111e-02 - 1.964045864365522e-02 1.963920554157133e-02 1.963795187629582e-02 1.963669764477085e-02 1.963544284945441e-02 - 1.963418749362842e-02 1.963293156932153e-02 1.963167507295046e-02 1.963041800662418e-02 1.962916036936736e-02 - 1.962790216073956e-02 1.962664338014056e-02 1.962538401760687e-02 1.962412407160046e-02 1.962286355381917e-02 - 1.962160245501161e-02 1.962034076606272e-02 1.961907849332115e-02 1.961781563715828e-02 1.961655219371613e-02 - 1.961528815879130e-02 1.961402353224150e-02 1.961275831461461e-02 1.961149250160691e-02 1.961022609250104e-02 - 1.960895908768241e-02 1.960769148013132e-02 1.960642326897369e-02 1.960515445887448e-02 1.960388504699325e-02 - 1.960261502901453e-02 1.960134440209794e-02 1.960007316755673e-02 1.959880132269796e-02 1.959752885956289e-02 - 1.959625578572781e-02 1.959498210471557e-02 1.959370780282661e-02 1.959243287776576e-02 1.959115733236078e-02 - 1.958988116575855e-02 1.958860437570835e-02 1.958732696070351e-02 1.958604892230215e-02 1.958477025538254e-02 - 1.958349095293616e-02 1.958221102005211e-02 1.958093045820349e-02 1.957964926225915e-02 1.957836742427244e-02 - 1.957708494595253e-02 1.957580183693370e-02 1.957451808573694e-02 1.957323368588814e-02 1.957194864588927e-02 - 1.957066295908808e-02 1.956937661864716e-02 1.956808962863577e-02 1.956680198857452e-02 1.956551369740821e-02 - 1.956422475810978e-02 1.956293516289206e-02 1.956164490198652e-02 1.956035397935251e-02 1.955906239928264e-02 - 1.955777016187055e-02 1.955647725858155e-02 1.955518368630142e-02 1.955388944730695e-02 1.955259453790914e-02 - 1.955129895574477e-02 1.955000270138056e-02 1.954870577278503e-02 1.954740816848287e-02 1.954610988870274e-02 - 1.954481093111385e-02 1.954351129226784e-02 1.954221096901902e-02 1.954090996078360e-02 1.953960826724446e-02 - 1.953830588603245e-02 1.953700281656794e-02 1.953569905855491e-02 1.953439460897686e-02 1.953308946443935e-02 - 1.953178362233442e-02 1.953047708245082e-02 1.952916984426731e-02 1.952786190592496e-02 1.952655326324738e-02 - 1.952524391408689e-02 1.952393385929222e-02 1.952262309949111e-02 1.952131163370209e-02 1.951999945844595e-02 - 1.951868656751035e-02 1.951737295829730e-02 1.951605863555755e-02 1.951474359789877e-02 1.951342784097203e-02 - 1.951211136184995e-02 1.951079415956861e-02 1.950947623396647e-02 1.950815758387342e-02 1.950683820574165e-02 - 1.950551809587482e-02 1.950419725560715e-02 1.950287568354725e-02 1.950155337574423e-02 1.950023033242808e-02 - 1.949890655251627e-02 1.949758203322258e-02 1.949625677745909e-02 1.949493078034667e-02 1.949360402739089e-02 - 1.949227653112452e-02 1.949094829757290e-02 1.948961930480046e-02 1.948828955781861e-02 1.948695906691206e-02 - 1.948562782150981e-02 1.948429581598615e-02 1.948296304982478e-02 1.948162952319633e-02 1.948029523591830e-02 - 1.947896018726217e-02 1.947762437581102e-02 1.947628779922486e-02 1.947495045397724e-02 1.947361233489661e-02 - 1.947227344348770e-02 1.947093378593678e-02 1.946959335022997e-02 1.946825212971076e-02 1.946691013283964e-02 - 1.946556736109183e-02 1.946422381089845e-02 1.946287947598024e-02 1.946153435147304e-02 1.946018843640089e-02 - 1.945884173551620e-02 1.945749424593349e-02 1.945614596164208e-02 1.945479688244431e-02 1.945344700980195e-02 - 1.945209634356683e-02 1.945074487666461e-02 1.944939260492236e-02 1.944803952905332e-02 1.944668565282712e-02 - 1.944533097303948e-02 1.944397548026850e-02 1.944261917903520e-02 1.944126207147254e-02 1.943990414971487e-02 - 1.943854540610747e-02 1.943718584222317e-02 1.943582547177293e-02 1.943446428245481e-02 1.943310226105812e-02 - 1.943173942068859e-02 1.943037575924362e-02 1.942901126749138e-02 1.942764594793762e-02 1.942627979717840e-02 - 1.942491280913776e-02 1.942354498868186e-02 1.942217633546996e-02 1.942080684436220e-02 1.941943651933332e-02 - 1.941806535493775e-02 1.941669333695301e-02 1.941532047644210e-02 1.941394677715704e-02 1.941257222315028e-02 - 1.941119681542690e-02 1.940982056035791e-02 1.940844345901757e-02 1.940706550055424e-02 1.940568667678698e-02 - 1.940430699663802e-02 1.940292645883611e-02 1.940154505765652e-02 1.940016279578962e-02 1.939877966977487e-02 - 1.939739567223053e-02 1.939601080219835e-02 1.939462506233509e-02 1.939323845462366e-02 1.939185096971125e-02 - 1.939046260516801e-02 1.938907336764642e-02 1.938768325184633e-02 1.938629225021856e-02 1.938490035911401e-02 - 1.938350758330235e-02 1.938211392651081e-02 1.938071938447496e-02 1.937932394922459e-02 1.937792761695239e-02 - 1.937653039473651e-02 1.937513227779157e-02 1.937373325789699e-02 1.937233333934693e-02 1.937093252080456e-02 - 1.936953079702195e-02 1.936812816928827e-02 1.936672463690015e-02 1.936532019607867e-02 1.936391484345597e-02 - 1.936250857586552e-02 1.936110139138094e-02 1.935969329410197e-02 1.935828428412852e-02 1.935687435366041e-02 - 1.935546349795341e-02 1.935405171682407e-02 1.935263901452006e-02 1.935122538845629e-02 1.934981083240821e-02 - 1.934839534117787e-02 1.934697891910190e-02 1.934556156924906e-02 1.934414327695751e-02 1.934272404361874e-02 - 1.934130387854031e-02 1.933988276959641e-02 1.933846071416343e-02 1.933703771882020e-02 1.933561377409585e-02 - 1.933418887831357e-02 1.933276303945045e-02 1.933133624375953e-02 1.932990848653697e-02 1.932847978247962e-02 - 1.932705012296452e-02 1.932561949662077e-02 1.932418790536504e-02 1.932275535526071e-02 1.932132184669807e-02 - 1.931988736608416e-02 1.931845191123332e-02 1.931701548648173e-02 1.931557809132799e-02 1.931413972218449e-02 - 1.931270037603072e-02 1.931126005688787e-02 1.930981875761609e-02 1.930837646527647e-02 1.930693319154590e-02 - 1.930548893938918e-02 1.930404369700001e-02 1.930259746628386e-02 1.930115024647330e-02 1.929970202824377e-02 - 1.929825281461415e-02 1.929680260792617e-02 1.929535140092010e-02 1.929389919235001e-02 1.929244598266550e-02 - 1.929099176842190e-02 1.928953654639375e-02 1.928808031414528e-02 1.928662307035359e-02 1.928516481711372e-02 - 1.928370555611205e-02 1.928224527966380e-02 1.928078398206115e-02 1.927932166173262e-02 1.927785831899656e-02 - 1.927639395364510e-02 1.927492856464996e-02 1.927346215243780e-02 1.927199471282116e-02 1.927052623652251e-02 - 1.926905672766994e-02 1.926758618873705e-02 1.926611461056382e-02 1.926464199150991e-02 1.926316833245443e-02 - 1.926169363057714e-02 1.926021788634381e-02 1.925874109903830e-02 1.925726325940621e-02 1.925578436860509e-02 - 1.925430443199749e-02 1.925282343948819e-02 1.925134138889128e-02 1.924985828498051e-02 1.924837411847957e-02 - 1.924688888599618e-02 1.924540259377309e-02 1.924391524090012e-02 1.924242682077230e-02 1.924093732460676e-02 - 1.923944675829762e-02 1.923795512510602e-02 1.923646241448938e-02 1.923496862521413e-02 1.923347375911634e-02 - 1.923197781292445e-02 1.923048078180134e-02 1.922898266296426e-02 1.922748346006174e-02 1.922598317069195e-02 - 1.922448178990142e-02 1.922297932164773e-02 1.922147575963824e-02 1.921997109174737e-02 1.921846532805457e-02 - 1.921695846861228e-02 1.921545049993734e-02 1.921394143207274e-02 1.921243126559395e-02 1.921091998083786e-02 - 1.920940758472120e-02 1.920789408374423e-02 1.920637946562360e-02 1.920486373146851e-02 1.920334688393281e-02 - 1.920182891329169e-02 1.920030981699324e-02 1.919878959725658e-02 1.919726825432456e-02 1.919574578635056e-02 - 1.919422218928470e-02 1.919269745661605e-02 1.919117158884151e-02 1.918964459045353e-02 1.918811645370936e-02 - 1.918658717454346e-02 1.918505675553962e-02 1.918352519296369e-02 1.918199248296462e-02 1.918045862469436e-02 - 1.917892361805418e-02 1.917738746182788e-02 1.917585015265352e-02 1.917431168820606e-02 1.917277206550804e-02 - 1.917123127946213e-02 1.916968933132487e-02 1.916814622316750e-02 1.916660194885779e-02 1.916505650873668e-02 - 1.916350990423480e-02 1.916196212155291e-02 1.916041316033273e-02 1.915886303062994e-02 1.915731172194125e-02 - 1.915575922930148e-02 1.915420555876758e-02 1.915265070860661e-02 1.915109467332810e-02 1.914953744666585e-02 - 1.914797902645569e-02 1.914641941412443e-02 1.914485861314037e-02 1.914329661713828e-02 1.914173341932142e-02 - 1.914016902223032e-02 1.913860342379879e-02 1.913703662029905e-02 1.913546861279183e-02 1.913389939805644e-02 - 1.913232897075573e-02 1.913075733118505e-02 1.912918447844714e-02 1.912761040908805e-02 1.912603511839811e-02 - 1.912445860715432e-02 1.912288088009771e-02 1.912130192853472e-02 1.911972174626816e-02 1.911814033569584e-02 - 1.911655769224527e-02 1.911497381452394e-02 1.911338870990516e-02 1.911180236957772e-02 1.911021478317005e-02 - 1.910862595492130e-02 1.910703588697045e-02 1.910544457683553e-02 1.910385201685182e-02 1.910225820527016e-02 - 1.910066314375077e-02 1.909906682830796e-02 1.909746925477876e-02 1.909587042200599e-02 1.909427033688354e-02 - 1.909266899402551e-02 1.909106637643193e-02 1.908946249114346e-02 1.908785734491775e-02 1.908625093213804e-02 - 1.908464324204344e-02 1.908303427175084e-02 1.908142403234494e-02 1.907981251534393e-02 1.907819971100440e-02 - 1.907658562789714e-02 1.907497026158614e-02 1.907335360333112e-02 1.907173565762024e-02 1.907011642370295e-02 - 1.906849589616872e-02 1.906687407274958e-02 1.906525095073851e-02 1.906362652703246e-02 1.906200080112851e-02 - 1.906037377260159e-02 1.905874543999789e-02 1.905711580005939e-02 1.905548484883143e-02 1.905385258297056e-02 - 1.905221900422594e-02 1.905058411108648e-02 1.904894789413228e-02 1.904731035325132e-02 1.904567149183364e-02 - 1.904403130952197e-02 1.904238980136186e-02 1.904074696113758e-02 1.903910278612417e-02 1.903745727544392e-02 - 1.903581042868199e-02 1.903416224385271e-02 1.903251272055347e-02 1.903086185871027e-02 1.902920965236104e-02 - 1.902755609551852e-02 1.902590118543579e-02 1.902424492713456e-02 1.902258731926820e-02 1.902092835050054e-02 - 1.901926802409253e-02 1.901760634215130e-02 1.901594329530476e-02 1.901427888303375e-02 1.901261310655987e-02 - 1.901094596056572e-02 1.900927744335199e-02 1.900760755425454e-02 1.900593628837979e-02 1.900426364429972e-02 - 1.900258962310978e-02 1.900091422355684e-02 1.899923743835855e-02 1.899755925950979e-02 1.899587969656637e-02 - 1.899419874741247e-02 1.899251639645128e-02 1.899083265299966e-02 1.898914752052511e-02 1.898746098477085e-02 - 1.898577304386013e-02 1.898408369969058e-02 1.898239295076986e-02 1.898070079269564e-02 1.897900722255288e-02 - 1.897731224261929e-02 1.897561584849886e-02 1.897391803334516e-02 1.897221879605241e-02 1.897051814026927e-02 - 1.896881606767167e-02 1.896711256470153e-02 1.896540762798833e-02 1.896370126437186e-02 1.896199347193909e-02 - 1.896028424413336e-02 1.895857357350164e-02 1.895686146124061e-02 1.895514791045918e-02 1.895343292131205e-02 - 1.895171648302300e-02 1.894999858923527e-02 1.894827924721451e-02 1.894655845419708e-02 1.894483620522033e-02 - 1.894311250187257e-02 1.894138733732357e-02 1.893966070463249e-02 1.893793261072514e-02 1.893620305335951e-02 - 1.893447202418282e-02 1.893273952309081e-02 1.893100555094376e-02 1.892927010627177e-02 1.892753318110494e-02 - 1.892579477108063e-02 1.892405487784487e-02 1.892231350329449e-02 1.892057064453369e-02 1.891882629307712e-02 - 1.891708044683251e-02 1.891533310610873e-02 1.891358427035544e-02 1.891183393696100e-02 1.891008210291091e-02 - 1.890832876617924e-02 1.890657392211156e-02 1.890481756749361e-02 1.890305970669826e-02 1.890130033664154e-02 - 1.889953944876527e-02 1.889777703845312e-02 1.889601310905792e-02 1.889424766560776e-02 1.889248069356991e-02 - 1.889071219005931e-02 1.888894216610460e-02 1.888717060771540e-02 1.888539750970531e-02 1.888362288621832e-02 - 1.888184672351093e-02 1.888006901097801e-02 1.887828976119468e-02 1.887650896887177e-02 1.887472662448569e-02 - 1.887294273026847e-02 1.887115728373587e-02 1.886937028132879e-02 1.886758172601296e-02 1.886579161241305e-02 - 1.886399993232671e-02 1.886220669095003e-02 1.886041188581822e-02 1.885861550746470e-02 1.885681755698847e-02 - 1.885501803485419e-02 1.885321693733238e-02 1.885141425906957e-02 1.884960999916156e-02 1.884780416185130e-02 - 1.884599674103886e-02 1.884418772927479e-02 1.884237712445391e-02 1.884056492700234e-02 1.883875113673901e-02 - 1.883693574995443e-02 1.883511876102816e-02 1.883330016667216e-02 1.883147997149076e-02 1.882965817385698e-02 - 1.882783476601560e-02 1.882600973926643e-02 1.882418309568715e-02 1.882235484340025e-02 1.882052497417560e-02 - 1.881869348031539e-02 1.881686035975185e-02 1.881502561164409e-02 1.881318923741505e-02 1.881135123913003e-02 - 1.880951160558249e-02 1.880767032900146e-02 1.880582741534564e-02 1.880398286136111e-02 1.880213666245483e-02 - 1.880028882149621e-02 1.879843933370182e-02 1.879658819228311e-02 1.879473539862031e-02 1.879288094991765e-02 - 1.879102484097325e-02 1.878916707209326e-02 1.878730764191372e-02 1.878544654683108e-02 1.878358378459472e-02 - 1.878171935183507e-02 1.877985324430765e-02 1.877798546179407e-02 1.877611600228067e-02 1.877424486050507e-02 - 1.877237203778229e-02 1.877049753324887e-02 1.876862133863330e-02 1.876674345293673e-02 1.876486387617420e-02 - 1.876298260257535e-02 1.876109963059111e-02 1.875921496034764e-02 1.875732858848502e-02 1.875544051216185e-02 - 1.875355072885378e-02 1.875165923449702e-02 1.874976602623304e-02 1.874787110336161e-02 1.874597446797304e-02 - 1.874407611425766e-02 1.874217603022874e-02 1.874027422146802e-02 1.873837068906284e-02 1.873646542198345e-02 - 1.873455842189881e-02 1.873264969164939e-02 1.873073922656172e-02 1.872882701964194e-02 1.872691306648714e-02 - 1.872499736923527e-02 1.872307992509612e-02 1.872116072949887e-02 1.871923978227258e-02 1.871731708186487e-02 - 1.871539262387551e-02 1.871346640021372e-02 1.871153841041527e-02 1.870960865979342e-02 1.870767714578883e-02 - 1.870574386089293e-02 1.870380879685916e-02 1.870187195798613e-02 1.869993334446320e-02 1.869799294696750e-02 - 1.869605076691687e-02 1.869410680376838e-02 1.869216104730458e-02 1.869021349836844e-02 1.868826416022470e-02 - 1.868631302853863e-02 1.868436009644664e-02 1.868240535897862e-02 1.868044881818047e-02 1.867849047172725e-02 - 1.867653031474529e-02 1.867456834731333e-02 1.867260456736053e-02 1.867063897034608e-02 1.866867155351236e-02 - 1.866670231459311e-02 1.866473125095620e-02 1.866275835809391e-02 1.866078363356833e-02 1.865880707775009e-02 - 1.865682868564128e-02 1.865484845476688e-02 1.865286638889887e-02 1.865088247751579e-02 1.864889671303901e-02 - 1.864690910747520e-02 1.864491965354244e-02 1.864292833855512e-02 1.864093516946379e-02 1.863894014384585e-02 - 1.863694325319922e-02 1.863494449952898e-02 1.863294388193027e-02 1.863094139526787e-02 1.862893703607748e-02 - 1.862693080034535e-02 1.862492268387857e-02 1.862291268732941e-02 1.862090081042848e-02 1.861888704957227e-02 - 1.861687140151818e-02 1.861485386231105e-02 1.861283442704270e-02 1.861081309610335e-02 1.860878986806025e-02 - 1.860676473338590e-02 1.860473769529663e-02 1.860270875778476e-02 1.860067790615180e-02 1.859864513789995e-02 - 1.859661045850656e-02 1.859457386260990e-02 1.859253534675110e-02 1.859049490946049e-02 1.858845254228221e-02 - 1.858640824383296e-02 1.858436201966219e-02 1.858231386031445e-02 1.858026376148910e-02 1.857821173011040e-02 - 1.857615775674864e-02 1.857410183289329e-02 1.857204396224591e-02 1.856998414158087e-02 1.856792236630606e-02 - 1.856585863699762e-02 1.856379295088432e-02 1.856172530348682e-02 1.855965569223371e-02 1.855758411493529e-02 - 1.855551056872843e-02 1.855343504862798e-02 1.855135755357239e-02 1.854927808391809e-02 1.854719662999937e-02 - 1.854511318947389e-02 1.854302776884543e-02 1.854094036342127e-02 1.853885096469986e-02 1.853675956540365e-02 - 1.853466616668727e-02 1.853257077183708e-02 1.853047338096206e-02 1.852837398473379e-02 1.852627257507170e-02 - 1.852416915520061e-02 1.852206372211816e-02 1.851995627104085e-02 1.851784680396669e-02 1.851573531468755e-02 - 1.851362179508880e-02 1.851150625260910e-02 1.850938868433302e-02 1.850726907790290e-02 1.850514743267316e-02 - 1.850302375022463e-02 1.850089802974987e-02 1.849877026321467e-02 1.849664044568886e-02 1.849450857919205e-02 - 1.849237466328984e-02 1.849023869225825e-02 1.848810065567833e-02 1.848596056072587e-02 1.848381841125062e-02 - 1.848167418759208e-02 1.847952788817062e-02 1.847737952020788e-02 1.847522908039946e-02 1.847307656165976e-02 - 1.847092195736722e-02 1.846876526733367e-02 1.846660649126623e-02 1.846444562782898e-02 1.846228267641075e-02 - 1.846011763022634e-02 1.845795047822359e-02 1.845578122357826e-02 1.845360986824314e-02 1.845143640646702e-02 - 1.844926083412144e-02 1.844708314829677e-02 1.844490334652741e-02 1.844272142526039e-02 1.844053738232335e-02 - 1.843835121884711e-02 1.843616292877729e-02 1.843397250473794e-02 1.843177994759022e-02 1.842958525561723e-02 - 1.842738842512387e-02 1.842518945510765e-02 1.842298833954339e-02 1.842078507029563e-02 1.841857965103055e-02 - 1.841637208298309e-02 1.841416236088061e-02 1.841195047731196e-02 1.840973642948215e-02 1.840752022011446e-02 - 1.840530184216091e-02 1.840308128892246e-02 1.840085856103635e-02 1.839863365911139e-02 1.839640658087383e-02 - 1.839417731924000e-02 1.839194587083986e-02 1.838971223370895e-02 1.838747640300020e-02 1.838523837692452e-02 - 1.838299815548432e-02 1.838075573582631e-02 1.837851111106092e-02 1.837626427462707e-02 1.837401523350234e-02 - 1.837176398539980e-02 1.836951051641877e-02 1.836725482529124e-02 1.836499691387402e-02 1.836273678151691e-02 - 1.836047442118306e-02 1.835820982858270e-02 1.835594300692513e-02 1.835367394977665e-02 1.835140264983480e-02 - 1.834912910825698e-02 1.834685332362546e-02 1.834457529066184e-02 1.834229500068380e-02 1.834001245612868e-02 - 1.833772766191195e-02 1.833544060380268e-02 1.833315127769170e-02 1.833085968975407e-02 1.832856583633842e-02 - 1.832626971106521e-02 1.832397130817964e-02 1.832167062581619e-02 1.831936766045366e-02 1.831706240632338e-02 - 1.831475486820015e-02 1.831244504576387e-02 1.831013292472488e-02 1.830781850356614e-02 1.830550178468002e-02 - 1.830318276421879e-02 1.830086143845657e-02 1.829853780375753e-02 1.829621185558813e-02 1.829388359300937e-02 - 1.829155301569956e-02 1.828922011662799e-02 1.828688489153528e-02 1.828454733892483e-02 1.828220745351499e-02 - 1.827986523367206e-02 1.827752068069898e-02 1.827517378500067e-02 1.827282454323407e-02 1.827047296291425e-02 - 1.826811903643735e-02 1.826576275326505e-02 1.826340410954280e-02 1.826104310998728e-02 1.825867975496676e-02 - 1.825631402943589e-02 1.825394593365713e-02 1.825157547349511e-02 1.824920264235266e-02 1.824682743095013e-02 - 1.824444983334214e-02 1.824206985531418e-02 1.823968749396920e-02 1.823730273947125e-02 1.823491559405069e-02 - 1.823252605635143e-02 1.823013411851380e-02 1.822773977727079e-02 1.822534302885856e-02 1.822294386817581e-02 - 1.822054229933361e-02 1.821813832218229e-02 1.821573192447362e-02 1.821332310276354e-02 1.821091185568656e-02 - 1.820849817689734e-02 1.820608206836350e-02 1.820366353310689e-02 1.820124256311412e-02 1.819881915016099e-02 - 1.819639328969794e-02 1.819396498477247e-02 1.819153423068764e-02 1.818910101812068e-02 1.818666535246774e-02 - 1.818422723286477e-02 1.818178664914423e-02 1.817934360000525e-02 1.817689808189780e-02 1.817445008627356e-02 - 1.817199961756547e-02 1.816954667558178e-02 1.816709124568389e-02 1.816463332917677e-02 1.816217292950077e-02 - 1.815971003769815e-02 1.815724465123547e-02 1.815477676809149e-02 1.815230637650250e-02 1.814983348051392e-02 - 1.814735808823705e-02 1.814488018072306e-02 1.814239975267995e-02 1.813991681262074e-02 1.813743135508509e-02 - 1.813494337086823e-02 1.813245285281114e-02 1.812995980445686e-02 1.812746422731492e-02 1.812496611573551e-02 - 1.812246546481565e-02 1.811996226848969e-02 1.811745651920204e-02 1.811494821957559e-02 1.811243737133842e-02 - 1.810992396481434e-02 1.810740799805441e-02 1.810488947142559e-02 1.810236837745802e-02 1.809984471224923e-02 - 1.809731847419077e-02 1.809478965788605e-02 1.809225826197647e-02 1.808972428730369e-02 1.808718772623545e-02 - 1.808464857219165e-02 1.808210682315950e-02 1.807956248210254e-02 1.807701554512131e-02 1.807446599893149e-02 - 1.807191384222250e-02 1.806935907649996e-02 1.806680169977935e-02 1.806424171112906e-02 1.806167910639137e-02 - 1.805911387430984e-02 1.805654601234490e-02 1.805397552118165e-02 1.805140239539148e-02 1.804882663464111e-02 - 1.804624823872755e-02 1.804366719439020e-02 1.804108350087335e-02 1.803849716547347e-02 1.803590817366155e-02 - 1.803331652090480e-02 1.803072221546651e-02 1.802812524400898e-02 1.802552559998909e-02 1.802292329257977e-02 - 1.802031831251088e-02 1.801771065083283e-02 1.801510031065072e-02 1.801248728509480e-02 1.800987156794499e-02 - 1.800725316456288e-02 1.800463207196059e-02 1.800200828229563e-02 1.799938179038418e-02 1.799675259135415e-02 - 1.799412068157979e-02 1.799148606152016e-02 1.798884872978088e-02 1.798620868169797e-02 1.798356590941466e-02 - 1.798092041139825e-02 1.797827219073602e-02 1.797562123473000e-02 1.797296753674024e-02 1.797031110360818e-02 - 1.796765193280976e-02 1.796499001786419e-02 1.796232535287627e-02 1.795965793501132e-02 1.795698776183851e-02 - 1.795431482887613e-02 1.795163913285315e-02 1.794896067070983e-02 1.794627943785036e-02 1.794359543174794e-02 - 1.794090865000600e-02 1.793821908548673e-02 1.793552673496832e-02 1.793283159877326e-02 1.793013367385930e-02 - 1.792743295577707e-02 1.792472944026945e-02 1.792202312682011e-02 1.791931400976357e-02 1.791660207728341e-02 - 1.791388733234035e-02 1.791116977642004e-02 1.790844939977351e-02 1.790572620127331e-02 1.790300018053203e-02 - 1.790027132960331e-02 1.789753964610457e-02 1.789480512776976e-02 1.789206776371137e-02 1.788932755546883e-02 - 1.788658450796398e-02 1.788383860557862e-02 1.788108984645815e-02 1.787833823870088e-02 1.787558376650758e-02 - 1.787282642238153e-02 1.787006621288861e-02 1.786730313584615e-02 1.786453718506033e-02 1.786176835331611e-02 - 1.785899663566110e-02 1.785622203220682e-02 1.785344454733639e-02 1.785066416506327e-02 1.784788087479271e-02 - 1.784509469481547e-02 1.784230561688990e-02 1.783951362363962e-02 1.783671871969004e-02 1.783392090351773e-02 - 1.783112016693977e-02 1.782831650359620e-02 1.782550991644932e-02 1.782270041052123e-02 1.781988796773664e-02 - 1.781707258188517e-02 1.781425426228424e-02 1.781143299909701e-02 1.780860878344276e-02 1.780578161636334e-02 - 1.780295150019453e-02 1.780011843142990e-02 1.779728239750767e-02 1.779444339320670e-02 1.779160141853593e-02 - 1.778875647528820e-02 1.778590855799184e-02 1.778305765851556e-02 1.778020377358821e-02 1.777734690358035e-02 - 1.777448704738365e-02 1.777162419310320e-02 1.776875833746895e-02 1.776588948369731e-02 1.776301762263940e-02 - 1.776014274927566e-02 1.775726486578331e-02 1.775438397030816e-02 1.775150005486545e-02 1.774861310790110e-02 - 1.774572313526677e-02 1.774283013776283e-02 1.773993409898065e-02 1.773703502220879e-02 1.773413291089222e-02 - 1.773122774923129e-02 1.772831953604024e-02 1.772540827370780e-02 1.772249394894422e-02 1.771957656009896e-02 - 1.771665611194296e-02 1.771373259698992e-02 1.771080600888477e-02 1.770787634473108e-02 1.770494360249459e-02 - 1.770200777818149e-02 1.769906886558849e-02 1.769612685929023e-02 1.769318175770428e-02 1.769023356261796e-02 - 1.768728226707501e-02 1.768432786370409e-02 1.768137035050212e-02 1.767840972761326e-02 1.767544598996190e-02 - 1.767247912224100e-02 1.766950912887429e-02 1.766653601772543e-02 1.766355977437013e-02 1.766058039164660e-02 - 1.765759786981226e-02 1.765461220736955e-02 1.765162339764906e-02 1.764863143247870e-02 1.764563631444012e-02 - 1.764263804044564e-02 1.763963660052613e-02 1.763663199590508e-02 1.763362422648862e-02 1.763061328532627e-02 - 1.762759916389677e-02 1.762458185742205e-02 1.762156136756127e-02 1.761853769290762e-02 1.761551082691653e-02 - 1.761248075761478e-02 1.760944748669641e-02 1.760641101894919e-02 1.760337134551661e-02 1.760032845807722e-02 - 1.759728235211478e-02 1.759423302856655e-02 1.759118048266074e-02 1.758812470690578e-02 1.758506570645847e-02 - 1.758200347417691e-02 1.757893799151254e-02 1.757586926700291e-02 1.757279730534286e-02 1.756972209521438e-02 - 1.756664362962799e-02 1.756356190543487e-02 1.756047692143249e-02 1.755738866974527e-02 1.755429714394244e-02 - 1.755120234663686e-02 1.754810427470094e-02 1.754500292288027e-02 1.754189829041229e-02 1.753879037098419e-02 - 1.753567915477636e-02 1.753256463576890e-02 1.752944681640228e-02 1.752632570156945e-02 1.752320127895599e-02 - 1.752007354011609e-02 1.751694248500407e-02 1.751380811099548e-02 1.751067041466748e-02 1.750752939229762e-02 - 1.750438503712632e-02 1.750123734468025e-02 1.749808631552286e-02 1.749493194526630e-02 1.749177422703599e-02 - 1.748861315463852e-02 1.748544872591071e-02 1.748228094036503e-02 1.747910979560325e-02 1.747593528635296e-02 - 1.747275740493088e-02 1.746957614261004e-02 1.746639150171011e-02 1.746320348827029e-02 1.746001208402579e-02 - 1.745681728232032e-02 1.745361909228664e-02 1.745041750587895e-02 1.744721251527593e-02 1.744400411995098e-02 - 1.744079231626219e-02 1.743757709612158e-02 1.743435844889677e-02 1.743113638300998e-02 1.742791090294012e-02 - 1.742468198827393e-02 1.742144963687445e-02 1.741821385208018e-02 1.741497462017237e-02 1.741173194001650e-02 - 1.740848581625378e-02 1.740523623716524e-02 1.740198319673262e-02 1.739872669626729e-02 1.739546673433575e-02 - 1.739220330474240e-02 1.738893639777237e-02 1.738566600801745e-02 1.738239213410604e-02 1.737911477739739e-02 - 1.737583393441487e-02 1.737254959973500e-02 1.736926176792087e-02 1.736597043319887e-02 1.736267559029083e-02 - 1.735937723525189e-02 1.735607536431420e-02 1.735276997535949e-02 1.734946106967137e-02 1.734614863942214e-02 - 1.734283267462293e-02 1.733951317984790e-02 1.733619014933173e-02 1.733286356952035e-02 1.732953344236944e-02 - 1.732619976822115e-02 1.732286254123125e-02 1.731952175476255e-02 1.731617740506982e-02 1.731282949118149e-02 - 1.730947800429541e-02 1.730612293897103e-02 1.730276429900506e-02 1.729940207772190e-02 1.729603626710180e-02 - 1.729266686687025e-02 1.728929387127552e-02 1.728591727431661e-02 1.728253707811547e-02 1.727915327486350e-02 - 1.727576585445017e-02 1.727237482415143e-02 1.726898017713387e-02 1.726558189725253e-02 1.726217999255776e-02 - 1.725877446141184e-02 1.725536528836806e-02 1.725195247427305e-02 1.724853602088567e-02 1.724511592318061e-02 - 1.724169217016580e-02 1.723826475637563e-02 1.723483368674653e-02 1.723139894995541e-02 1.722796053633534e-02 - 1.722451845482723e-02 1.722107270070567e-02 1.721762326419149e-02 1.721417014587169e-02 1.721071333868621e-02 - 1.720725283251134e-02 1.720378862838028e-02 1.720032072298445e-02 1.719684910908383e-02 1.719337378669194e-02 - 1.718989475327181e-02 1.718641200187306e-02 1.718292552719872e-02 1.717943532374793e-02 1.717594138625576e-02 - 1.717244371734551e-02 1.716894231509765e-02 1.716543716617480e-02 1.716192826455456e-02 1.715841561099909e-02 - 1.715489920993168e-02 1.715137904713604e-02 1.714785510917266e-02 1.714432741097788e-02 1.714079594608009e-02 - 1.713726069602739e-02 1.713372166332687e-02 1.713017885016558e-02 1.712663225240283e-02 1.712308185705881e-02 - 1.711952765873538e-02 1.711596966109396e-02 1.711240786053498e-02 1.710884225051524e-02 1.710527282476134e-02 - 1.710169958307061e-02 1.709812252022495e-02 1.709454162136748e-02 1.709095688985418e-02 1.708736832996113e-02 - 1.708377593024533e-02 1.708017968752960e-02 1.707657960032946e-02 1.707297565703870e-02 1.706936785401023e-02 - 1.706575619189593e-02 1.706214066346443e-02 1.705852126552140e-02 1.705489799818787e-02 1.705127085519305e-02 - 1.704763983091843e-02 1.704400492089210e-02 1.704036611449886e-02 1.703672340943711e-02 1.703307681394708e-02 - 1.702942631772786e-02 1.702577190966809e-02 1.702211358937508e-02 1.701845135582294e-02 1.701478520463906e-02 - 1.701111512687454e-02 1.700744111902223e-02 1.700376317991698e-02 1.700008130526762e-02 1.699639548886451e-02 - 1.699270572517141e-02 1.698901201362202e-02 1.698531434790372e-02 1.698161271901581e-02 1.697790713038581e-02 - 1.697419757947398e-02 1.697048405591379e-02 1.696676655885514e-02 1.696304508413142e-02 1.695931962055792e-02 - 1.695559016575875e-02 1.695185672007940e-02 1.694811928170539e-02 1.694437784303563e-02 1.694063239701608e-02 - 1.693688294268234e-02 1.693312947555357e-02 1.692937198914621e-02 1.692561047849961e-02 1.692184494218333e-02 - 1.691807537819241e-02 1.691430177590003e-02 1.691052413380094e-02 1.690674245501956e-02 1.690295672392027e-02 - 1.689916693403359e-02 1.689537309141036e-02 1.689157519031890e-02 1.688777322481082e-02 1.688396719247375e-02 - 1.688015708323470e-02 1.687634289028026e-02 1.687252461641300e-02 1.686870225976892e-02 1.686487581335405e-02 - 1.686104526641643e-02 1.685721061978611e-02 1.685337187596560e-02 1.684952902423863e-02 1.684568205626177e-02 - 1.684183096806695e-02 1.683797575916921e-02 1.683411642637722e-02 1.683025296370582e-02 1.682638536598722e-02 - 1.682251363071521e-02 1.681863775630957e-02 1.681475773295268e-02 1.681087355358095e-02 1.680698521822956e-02 - 1.680309272743823e-02 1.679919607564722e-02 1.679529524908240e-02 1.679139024683375e-02 1.678748107079098e-02 - 1.678356771499038e-02 1.677965016895157e-02 1.677572842703558e-02 1.677180249929987e-02 1.676787237703614e-02 - 1.676393804299063e-02 1.675999950051788e-02 1.675605674951069e-02 1.675210978219402e-02 1.674815858725950e-02 - 1.674420316518524e-02 1.674024352454331e-02 1.673627964747038e-02 1.673231152527195e-02 1.672833916857912e-02 - 1.672436256552257e-02 1.672038170373856e-02 1.671639658470834e-02 1.671240720840105e-02 1.670841357063555e-02 - 1.670441566220705e-02 1.670041347959014e-02 1.669640702110204e-02 1.669239628051189e-02 1.668838125191250e-02 - 1.668436193143650e-02 1.668033831890629e-02 1.667631040878886e-02 1.667227819212758e-02 1.666824166734860e-02 - 1.666420083129591e-02 1.666015567735254e-02 1.665610620005455e-02 1.665205239678242e-02 1.664799426695549e-02 - 1.664393180284348e-02 1.663986499713315e-02 1.663579384792829e-02 1.663171835503466e-02 1.662763851356003e-02 - 1.662355430939835e-02 1.661946574092143e-02 1.661537281150426e-02 1.661127551677910e-02 1.660717384720702e-02 - 1.660306779425839e-02 1.659895736095696e-02 1.659484254425630e-02 1.659072333444665e-02 1.658659972465595e-02 - 1.658247171530552e-02 1.657833931027815e-02 1.657420249617699e-02 1.657006126301349e-02 1.656591561144095e-02 - 1.656176553662080e-02 1.655761103381663e-02 1.655345210211223e-02 1.654928873901935e-02 1.654512093811135e-02 - 1.654094868807454e-02 1.653677198858015e-02 1.653259084096055e-02 1.652840523447503e-02 1.652421516561530e-02 - 1.652002063436291e-02 1.651582163151349e-02 1.651161815099949e-02 1.650741019156900e-02 1.650319775344297e-02 - 1.649898082810461e-02 1.649475940168675e-02 1.649053348141889e-02 1.648630306850305e-02 1.648206814836095e-02 - 1.647782871114676e-02 1.647358475732917e-02 1.646933629656457e-02 1.646508330893651e-02 1.646082578033714e-02 - 1.645656373337251e-02 1.645229715576629e-02 1.644802602626009e-02 1.644375035674409e-02 1.643947014097659e-02 - 1.643518536281393e-02 1.643089602671802e-02 1.642660213310334e-02 1.642230367492405e-02 1.641800064388943e-02 - 1.641369303446324e-02 1.640938084474308e-02 1.640506407467653e-02 1.640074271742540e-02 1.639641675907646e-02 - 1.639208620097271e-02 1.638775104513307e-02 1.638341128505268e-02 1.637906691499287e-02 1.637471792980197e-02 - 1.637036432400064e-02 1.636600609175647e-02 1.636164322915392e-02 1.635727573684415e-02 1.635290360792794e-02 - 1.634852683359730e-02 1.634414541697593e-02 1.633975935494602e-02 1.633536863669590e-02 1.633097325119221e-02 - 1.632657319870386e-02 1.632216848742881e-02 1.631775910539292e-02 1.631334504210032e-02 1.630892629731235e-02 - 1.630450287107613e-02 1.630007475715268e-02 1.629564194133085e-02 1.629120442381021e-02 1.628676220752001e-02 - 1.628231528645751e-02 1.627786365361661e-02 1.627340730437480e-02 1.626894623909321e-02 1.626448044809207e-02 - 1.626000991935131e-02 1.625553465710418e-02 1.625105466086324e-02 1.624656992364918e-02 1.624208044008659e-02 - 1.623758620493278e-02 1.623308721259990e-02 1.622858345750622e-02 1.622407493651434e-02 1.621956164908100e-02 - 1.621504359102545e-02 1.621052075671857e-02 1.620599314061202e-02 1.620146073758967e-02 1.619692354185834e-02 - 1.619238154678624e-02 1.618783475477294e-02 1.618328316706134e-02 1.617872676957040e-02 1.617416555535298e-02 - 1.616959952441603e-02 1.616502867670949e-02 1.616045300241566e-02 1.615587248863419e-02 1.615128714307292e-02 - 1.614669696726644e-02 1.614210195036420e-02 1.613750207990814e-02 1.613289735436475e-02 1.612828778261194e-02 - 1.612367334765880e-02 1.611905403879705e-02 1.611442986870223e-02 1.610980082722066e-02 1.610516690212456e-02 - 1.610052809916244e-02 1.609588441136000e-02 1.609123582829610e-02 1.608658235171540e-02 1.608192397521171e-02 - 1.607726068992654e-02 1.607259250083978e-02 1.606791940362701e-02 1.606324138657220e-02 1.605855844962495e-02 - 1.605387058768025e-02 1.604917779011535e-02 1.604448006054786e-02 1.603977739874237e-02 1.603506979420087e-02 - 1.603035723984084e-02 1.602563973257448e-02 1.602091727188371e-02 1.601618984720332e-02 1.601145745295015e-02 - 1.600672010067149e-02 1.600197777942985e-02 1.599723047266619e-02 1.599247818462375e-02 1.598772091449355e-02 - 1.598295865408641e-02 1.597819139147786e-02 1.597341912912636e-02 1.596864187530068e-02 1.596385961058315e-02 - 1.595907232771693e-02 1.595428003613896e-02 1.594948272828454e-02 1.594468039178993e-02 1.593987301780130e-02 - 1.593506061365002e-02 1.593024318102167e-02 1.592542070422077e-02 1.592059317798925e-02 1.591576060279083e-02 - 1.591092297799217e-02 1.590608029141302e-02 1.590123253274349e-02 1.589637971157846e-02 1.589152182656434e-02 - 1.588665886609507e-02 1.588179081847464e-02 1.587691768450550e-02 1.587203947045915e-02 1.586715616213467e-02 - 1.586226775168990e-02 1.585737424168921e-02 1.585247562649581e-02 1.584757190117160e-02 1.584266306445842e-02 - 1.583774911091078e-02 1.583283003450806e-02 1.582790583090947e-02 1.582297649499978e-02 1.581804202355953e-02 - 1.581310241701619e-02 1.580815766650671e-02 1.580320776320766e-02 1.579825271139450e-02 1.579329250537274e-02 - 1.578832713506978e-02 1.578335660262603e-02 1.577838090296324e-02 1.577340002574811e-02 1.576841397243399e-02 - 1.576342274326813e-02 1.575842633194578e-02 1.575342472205075e-02 1.574841791148685e-02 1.574340591569888e-02 - 1.573838872006093e-02 1.573336631006632e-02 1.572833869008299e-02 1.572330586230670e-02 1.571826781924578e-02 - 1.571322454052314e-02 1.570817603062760e-02 1.570312230059812e-02 1.569806333998715e-02 1.569299913693516e-02 - 1.568792968457186e-02 1.568285498663007e-02 1.567777503779379e-02 1.567268982728102e-02 1.566759935997030e-02 - 1.566250363482262e-02 1.565740264102256e-02 1.565229637077196e-02 1.564718482295817e-02 1.564206800099241e-02 - 1.563694589151567e-02 1.563181848599405e-02 1.562668579194260e-02 1.562154780177149e-02 1.561640450642917e-02 - 1.561125590888111e-02 1.560610200797837e-02 1.560094279515962e-02 1.559577825343192e-02 1.559060838842812e-02 - 1.558543321151646e-02 1.558025270088283e-02 1.557506685188879e-02 1.556987567405825e-02 1.556467915294808e-02 - 1.555947727806998e-02 1.555427005014520e-02 1.554905747326830e-02 1.554383954557267e-02 1.553861625685508e-02 - 1.553338760005679e-02 1.552815357203842e-02 1.552291417232042e-02 1.551766939022104e-02 1.551241921985975e-02 - 1.550716367246923e-02 1.550190274051892e-02 1.549663640983429e-02 1.549136467943576e-02 1.548608754911306e-02 - 1.548080501516420e-02 1.547551706650131e-02 1.547022370107663e-02 1.546492492363977e-02 1.545962073006300e-02 - 1.545431111106912e-02 1.544899605692932e-02 1.544367557060635e-02 1.543834964941066e-02 1.543301828099291e-02 - 1.542768146907574e-02 1.542233921474585e-02 1.541699150599057e-02 1.541163833967913e-02 1.540627971422265e-02 - 1.540091562222576e-02 1.539554606062004e-02 1.539017102808156e-02 1.538479052048013e-02 1.537940453376258e-02 - 1.537401306270197e-02 1.536861609811398e-02 1.536321364249661e-02 1.535780570199338e-02 1.535239225620149e-02 - 1.534697329939463e-02 1.534154884369051e-02 1.533611887960563e-02 1.533068339829330e-02 1.532524239983298e-02 - 1.531979587995433e-02 1.531434383110085e-02 1.530888624554550e-02 1.530342313142362e-02 1.529795449144603e-02 - 1.529248030485156e-02 1.528700056732233e-02 1.528151528324413e-02 1.527602445059826e-02 1.527052806021316e-02 - 1.526502610370102e-02 1.525951858764995e-02 1.525400550804322e-02 1.524848685322667e-02 1.524296262660809e-02 - 1.523743282528689e-02 1.523189743753784e-02 1.522635646012132e-02 1.522080989370855e-02 1.521525773883866e-02 - 1.520969998584297e-02 1.520413662809972e-02 1.519856766896251e-02 1.519299310438481e-02 1.518741292689401e-02 - 1.518182713051541e-02 1.517623571498702e-02 1.517063867977171e-02 1.516503601659771e-02 1.515942772580205e-02 - 1.515381380882217e-02 1.514819425008754e-02 1.514256904339338e-02 1.513693819284546e-02 1.513130169987854e-02 - 1.512565955837021e-02 1.512001175774349e-02 1.511435830052952e-02 1.510869918485496e-02 1.510303439909880e-02 - 1.509736393861015e-02 1.509168780464220e-02 1.508600600178219e-02 1.508031852355242e-02 1.507462535986425e-02 - 1.506892650464710e-02 1.506322195838325e-02 1.505751172137055e-02 1.505179578553525e-02 1.504607414992266e-02 - 1.504034681527993e-02 1.503461377008154e-02 1.502887501067205e-02 1.502313053999477e-02 1.501738035243006e-02 - 1.501162444030474e-02 1.500586279803602e-02 1.500009542963074e-02 1.499432233574762e-02 1.498854350912934e-02 - 1.498275894315130e-02 1.497696863387312e-02 1.497117258012378e-02 1.496537077480856e-02 1.495956321394884e-02 - 1.495374990400090e-02 1.494793083920974e-02 1.494210600904758e-02 1.493627541059610e-02 1.493043904648383e-02 - 1.492459691659297e-02 1.491874900408085e-02 1.491289530722370e-02 1.490703583623931e-02 1.490117058646935e-02 - 1.489529954725381e-02 1.488942270892006e-02 1.488354007804980e-02 1.487765165385858e-02 1.487175742273507e-02 - 1.486585738883519e-02 1.485995155398175e-02 1.485403990610964e-02 1.484812243988829e-02 1.484219915557141e-02 - 1.483627005584607e-02 1.483033513203473e-02 1.482439437542072e-02 1.481844779264578e-02 1.481249538141862e-02 - 1.480653713381494e-02 1.480057304868135e-02 1.479460312202780e-02 1.478862734716873e-02 1.478264572087699e-02 - 1.477665824308106e-02 1.477066491441443e-02 1.476466572742758e-02 1.475866067903805e-02 1.475264977269339e-02 - 1.474663299844858e-02 1.474061034872640e-02 1.473458182710518e-02 1.472854743115566e-02 1.472250715651883e-02 - 1.471646100132783e-02 1.471040896256117e-02 1.470435103749897e-02 1.469828722554372e-02 1.469221751827344e-02 - 1.468614190646898e-02 1.468006039547928e-02 1.467397298615093e-02 1.466787967378610e-02 1.466178045636883e-02 - 1.465567533041493e-02 1.464956428982840e-02 1.464344732703370e-02 1.463732444018100e-02 1.463119563426315e-02 - 1.462506090797482e-02 1.461892025637629e-02 1.461277367320199e-02 1.460662115516677e-02 1.460046270026797e-02 - 1.459429830605704e-02 1.458812796887011e-02 1.458195168595082e-02 1.457576945823491e-02 1.456958128559711e-02 - 1.456338716422361e-02 1.455718708308891e-02 1.455098103823577e-02 1.454476903226018e-02 1.453855106504101e-02 - 1.453232713525658e-02 1.452609724028033e-02 1.451986137384772e-02 1.451361953112174e-02 1.450737171027855e-02 - 1.450111790831084e-02 1.449485812287890e-02 1.448859235383744e-02 1.448232060352556e-02 1.447604287018101e-02 - 1.446975914267516e-02 1.446346941597466e-02 1.445717368938523e-02 1.445087196279080e-02 1.444456423724572e-02 - 1.443825051237331e-02 1.443193078136921e-02 1.442560503975330e-02 1.441927328581930e-02 1.441293551683267e-02 - 1.440659172970616e-02 1.440024192165075e-02 1.439388609177658e-02 1.438752424156573e-02 1.438115637277796e-02 - 1.437478247503487e-02 1.436840254149195e-02 1.436201657648160e-02 1.435562457263202e-02 1.434922652522855e-02 - 1.434282244486077e-02 1.433641232984850e-02 1.432999617114929e-02 1.432357396196595e-02 1.431714570255755e-02 - 1.431071139387867e-02 1.430427102559402e-02 1.429782460021014e-02 1.429137212732056e-02 1.428491359501307e-02 - 1.427844899676062e-02 1.427197833606156e-02 1.426550161130239e-02 1.425901881685885e-02 1.425252994564961e-02 - 1.424603499980085e-02 1.423953398385027e-02 1.423302689906778e-02 1.422651373475527e-02 1.421999448399202e-02 - 1.421346915585374e-02 1.420693774198730e-02 1.420040023237321e-02 1.419385663850131e-02 1.418730696003290e-02 - 1.418075118751426e-02 1.417418931634679e-02 1.416762135086922e-02 1.416104729584521e-02 1.415446713263836e-02 - 1.414788085973522e-02 1.414128849363525e-02 1.413469002361970e-02 1.412808544052846e-02 1.412147474772301e-02 - 1.411485794712882e-02 1.410823503604182e-02 1.410160600672222e-02 1.409497085818714e-02 1.408832959214252e-02 - 1.408168220875668e-02 1.407502870564407e-02 1.406836907961611e-02 1.406170332864153e-02 1.405503144837146e-02 - 1.404835343608425e-02 1.404166929852345e-02 1.403497903248639e-02 1.402828262916828e-02 1.402158009603205e-02 - 1.401487143048169e-02 1.400815661918214e-02 1.400143566703935e-02 1.399470857625501e-02 1.398797534046779e-02 - 1.398123596549795e-02 1.397449045134991e-02 1.396773878380821e-02 1.396098096640959e-02 1.395421700271061e-02 - 1.394744688102961e-02 1.394067060648909e-02 1.393388818692338e-02 1.392709961198955e-02 1.392030488001634e-02 - 1.391350399327543e-02 1.390669694254475e-02 1.389988372719557e-02 1.389306435287330e-02 1.388623881438261e-02 - 1.387940711188756e-02 1.387256925103053e-02 1.386572522405790e-02 1.385887502683316e-02 1.385201866296698e-02 - 1.384515612379329e-02 1.383828740611332e-02 1.383141252098464e-02 1.382453146615934e-02 1.381764423695148e-02 - 1.381075083621117e-02 1.380385125926009e-02 1.379694549932224e-02 1.379003355634722e-02 1.378311543405784e-02 - 1.377619113577579e-02 1.376926065784134e-02 1.376232399626086e-02 1.375538114862362e-02 1.374843211529037e-02 - 1.374147689626999e-02 1.373451549097131e-02 1.372754790081035e-02 1.372057412482435e-02 1.371359415880417e-02 - 1.370660800191563e-02 1.369961565562416e-02 1.369261712158748e-02 1.368561239160383e-02 1.367860146147292e-02 - 1.367158434223160e-02 1.366456103295884e-02 1.365753152816715e-02 1.365049582984413e-02 1.364345393626983e-02 - 1.363640584363454e-02 1.362935155197557e-02 1.362229106201978e-02 1.361522437421294e-02 1.360815148809621e-02 - 1.360107240365773e-02 1.359398712117658e-02 1.358689563898480e-02 1.357979795217255e-02 1.357269405533802e-02 - 1.356558396017600e-02 1.355846767355538e-02 1.355134518540141e-02 1.354421648973967e-02 1.353708158728038e-02 - 1.352994048497773e-02 1.352279317412557e-02 1.351563964921714e-02 1.350847993234027e-02 1.350131401794928e-02 - 1.349414188812881e-02 1.348696355361660e-02 1.347977901858603e-02 1.347258827670450e-02 1.346539132112732e-02 - 1.345818815687027e-02 1.345097879723517e-02 1.344376323611521e-02 1.343654146470481e-02 1.342931348024562e-02 - 1.342207929164266e-02 1.341483890125029e-02 1.340759229714105e-02 1.340033948592649e-02 1.339308047488992e-02 - 1.338581525615185e-02 1.337854383232506e-02 1.337126620737807e-02 1.336398237245951e-02 1.335669232490426e-02 - 1.334939606999042e-02 1.334209361886319e-02 1.333478496691931e-02 1.332747010093965e-02 1.332014902896288e-02 - 1.331282175723704e-02 1.330548828381385e-02 1.329814860211957e-02 1.329080271412866e-02 1.328345063097246e-02 - 1.327609234424045e-02 1.326872784914616e-02 1.326135715657202e-02 1.325398026514318e-02 1.324659716972378e-02 - 1.323920787031880e-02 1.323181236976987e-02 1.322441067219326e-02 1.321700278123619e-02 1.320958869473772e-02 - 1.320216840889533e-02 1.319474192647233e-02 1.318730924299288e-02 1.317987035320805e-02 1.317242527523754e-02 - 1.316497401404441e-02 1.315751655750498e-02 1.315005290457417e-02 1.314258305915991e-02 1.313510702533477e-02 - 1.312762479749873e-02 1.312013637454663e-02 1.311264176674524e-02 1.310514097528989e-02 1.309763399743803e-02 - 1.309012083240218e-02 1.308260148524151e-02 1.307507595779872e-02 1.306754423810231e-02 1.306000633130083e-02 - 1.305246225068735e-02 1.304491199415833e-02 1.303735555888092e-02 1.302979294561730e-02 1.302222416114251e-02 - 1.301464920127586e-02 1.300706805512286e-02 1.299948074007148e-02 1.299188726392925e-02 1.298428761376350e-02 - 1.297668178953030e-02 1.296906979917289e-02 1.296145165196894e-02 1.295382733572278e-02 1.294619684321666e-02 - 1.293856019418804e-02 1.293091739361701e-02 1.292326843600229e-02 1.291561331594024e-02 1.290795203962965e-02 - 1.290028461406370e-02 1.289261102589192e-02 1.288493127982097e-02 1.287724539399148e-02 1.286955336728896e-02 - 1.286185519483855e-02 1.285415087393522e-02 1.284644040779901e-02 1.283872379943217e-02 1.283100105007112e-02 - 1.282327216499671e-02 1.281553714651719e-02 1.280779599126801e-02 1.280004870582322e-02 1.279229529551004e-02 - 1.278453575462785e-02 1.277677008230648e-02 1.276899828322272e-02 1.276122036637128e-02 1.275343633303281e-02 - 1.274564618082443e-02 1.273784991358546e-02 1.273004753391990e-02 1.272223904101719e-02 1.271442442957637e-02 - 1.270660370794978e-02 1.269877689384363e-02 1.269094397773904e-02 1.268310495443295e-02 1.267525983383190e-02 - 1.266740862159357e-02 1.265955131610305e-02 1.265168790986125e-02 1.264381841321034e-02 1.263594283614933e-02 - 1.262806117310012e-02 1.262017342951705e-02 1.261227961209872e-02 1.260437971406514e-02 1.259647373729069e-02 - 1.258856168925583e-02 1.258064357239260e-02 1.257271939240096e-02 1.256478915520078e-02 1.255685285459754e-02 - 1.254891049173029e-02 1.254096207570647e-02 1.253300760376554e-02 1.252504707668881e-02 1.251708050378790e-02 - 1.250910789128773e-02 1.250112924190730e-02 1.249314455497329e-02 1.248515382942968e-02 1.247715706626537e-02 - 1.246915427066142e-02 1.246114545004359e-02 1.245313061093009e-02 1.244510975519442e-02 1.243708288271855e-02 - 1.242904999334644e-02 1.242101108960597e-02 1.241296617602342e-02 1.240491525784085e-02 1.239685833832253e-02 - 1.238879542265411e-02 1.238072651672425e-02 1.237265161832934e-02 1.236457072972670e-02 1.235648385971585e-02 - 1.234839100475330e-02 1.234029216644840e-02 1.233218735967670e-02 1.232407658450629e-02 1.231595983825897e-02 - 1.230783712734204e-02 1.229970846199802e-02 1.229157384500942e-02 1.228343326032102e-02 1.227528672233900e-02 - 1.226713425500730e-02 1.225897584359588e-02 1.225081148758153e-02 1.224264120133804e-02 1.223446498720786e-02 - 1.222628284514866e-02 1.221809477711035e-02 1.220990079161559e-02 1.220170089405064e-02 1.219349508434973e-02 - 1.218528336781141e-02 1.217706575082829e-02 1.216884223701085e-02 1.216061282093886e-02 1.215237750559525e-02 - 1.214413631491834e-02 1.213588924765066e-02 1.212763629639266e-02 1.211937747504947e-02 1.211111278696468e-02 - 1.210284222899338e-02 1.209456580676226e-02 1.208628352659129e-02 1.207799539529086e-02 1.206970142400196e-02 - 1.206140161359375e-02 1.205309595715539e-02 1.204478446558403e-02 1.203646714593309e-02 1.202814399601385e-02 - 1.201981502726849e-02 1.201148024892713e-02 1.200313965960066e-02 1.199479326438714e-02 1.198644106975963e-02 - 1.197808307814890e-02 1.196971928979660e-02 1.196134970757412e-02 1.195297434273665e-02 1.194459320579336e-02 - 1.193620630286995e-02 1.192781363156250e-02 1.191941519457288e-02 1.191101099930699e-02 1.190260104978759e-02 - 1.189418535108248e-02 1.188576391078268e-02 1.187733673904143e-02 1.186890383909906e-02 1.186046520717658e-02 - 1.185202085452967e-02 1.184357078721630e-02 1.183511499765447e-02 1.182665350164435e-02 1.181818631619212e-02 - 1.180971343948878e-02 1.180123487113532e-02 1.179275061618258e-02 1.178426068678883e-02 1.177576508273127e-02 - 1.176726380098327e-02 1.175875685721244e-02 1.175024426443667e-02 1.174172602804813e-02 1.173320214474543e-02 - 1.172467261918110e-02 1.171613746318596e-02 1.170759667473828e-02 1.169905025976067e-02 1.169049823639713e-02 - 1.168194060529573e-02 1.167337736787376e-02 1.166480853596695e-02 1.165623411322526e-02 1.164765410079015e-02 - 1.163906850325271e-02 1.163047732858534e-02 1.162188058835008e-02 1.161327829716097e-02 1.160467045202270e-02 - 1.159605704763531e-02 1.158743810702480e-02 1.157881363156412e-02 1.157018361041755e-02 1.156154807040710e-02 - 1.155290702254676e-02 1.154426045745637e-02 1.153560838867705e-02 1.152695082724772e-02 1.151828777265603e-02 - 1.150961922666123e-02 1.150094519786783e-02 1.149226570234640e-02 1.148358074611148e-02 1.147489033148848e-02 - 1.146619446355201e-02 1.145749315215113e-02 1.144878640491215e-02 1.144007421936342e-02 1.143135660500108e-02 - 1.142263357779597e-02 1.141390514531738e-02 1.140517131031360e-02 1.139643207471360e-02 1.138768744746770e-02 - 1.137893743736065e-02 1.137018205114591e-02 1.136142129485616e-02 1.135265517811921e-02 1.134388371322748e-02 - 1.133510690045416e-02 1.132632474439678e-02 1.131753726104511e-02 1.130874445081251e-02 1.129994631541456e-02 - 1.129114287234474e-02 1.128233413053084e-02 1.127352009524980e-02 1.126470077646612e-02 1.125587617975814e-02 - 1.124704630615814e-02 1.123821115477194e-02 1.122937074388692e-02 1.122052509984340e-02 1.121167421843202e-02 - 1.120281809651728e-02 1.119395674175946e-02 1.118509017235879e-02 1.117621839625571e-02 1.116734140890626e-02 - 1.115845922925729e-02 1.114957187162777e-02 1.114067933143962e-02 1.113178161769016e-02 1.112287874451852e-02 - 1.111397072153178e-02 1.110505754694771e-02 1.109613922373310e-02 1.108721577854856e-02 1.107828721826434e-02 - 1.106935353946150e-02 1.106041475521090e-02 1.105147087839408e-02 1.104252191603393e-02 1.103356786436798e-02 - 1.102460873384026e-02 1.101564454870664e-02 1.100667531791245e-02 1.099770104268406e-02 1.098872172333136e-02 - 1.097973737703280e-02 1.097074801492989e-02 1.096175363206450e-02 1.095275424291130e-02 1.094374986633713e-02 - 1.093474051123777e-02 1.092572618232803e-02 1.091670688531980e-02 1.090768263148204e-02 1.089865342255811e-02 - 1.088961926240844e-02 1.088058018050034e-02 1.087153618780464e-02 1.086248727940419e-02 1.085343346361914e-02 - 1.084437475261139e-02 1.083531115780061e-02 1.082624268419920e-02 1.081716934144050e-02 1.080809114559821e-02 - 1.079900810312026e-02 1.078992022093278e-02 1.078082751184906e-02 1.077172998533364e-02 1.076262764813011e-02 - 1.075352050586474e-02 1.074440857092024e-02 1.073529185762834e-02 1.072617037570664e-02 1.071704413251609e-02 - 1.070791313635956e-02 1.069877740113652e-02 1.068963693244828e-02 1.068049173224424e-02 1.067134181766250e-02 - 1.066218720670161e-02 1.065302791162099e-02 1.064386393117340e-02 1.063469527249458e-02 1.062552195483164e-02 - 1.061634397913101e-02 1.060716135205155e-02 1.059797409807024e-02 1.058878223029125e-02 1.057958575437316e-02 - 1.057038467384018e-02 1.056117900039964e-02 1.055196874533382e-02 1.054275390960051e-02 1.053353451406393e-02 - 1.052431058354873e-02 1.051508211263400e-02 1.050584910821505e-02 1.049661158906674e-02 1.048736956269110e-02 - 1.047812303544552e-02 1.046887201730896e-02 1.045961652742825e-02 1.045035657823219e-02 1.044109217270465e-02 - 1.043182332652317e-02 1.042255005238709e-02 1.041327235213399e-02 1.040399023555266e-02 1.039470371859749e-02 - 1.038541282005145e-02 1.037611754740451e-02 1.036681790639924e-02 1.035751391340543e-02 1.034820558036888e-02 - 1.033889291336949e-02 1.032957591435120e-02 1.032025460242317e-02 1.031092900384275e-02 1.030159911688449e-02 - 1.029226495054825e-02 1.028292652729243e-02 1.027358385071069e-02 1.026423692589549e-02 1.025488576741323e-02 - 1.024553039300053e-02 1.023617081698821e-02 1.022680704740226e-02 1.021743909457171e-02 1.020806697035185e-02 - 1.019869068658227e-02 1.018931025066223e-02 1.017992567348438e-02 1.017053697875713e-02 1.016114417776936e-02 - 1.015174727399650e-02 1.014234627700861e-02 1.013294120450803e-02 1.012353207457940e-02 1.011411888599992e-02 - 1.010470164920459e-02 1.009528038851809e-02 1.008585511657422e-02 1.007642584330934e-02 1.006699257991301e-02 - 1.005755533847607e-02 1.004811412861271e-02 1.003866895746225e-02 1.002921984502842e-02 1.001976681035788e-02 - 1.001030986009602e-02 1.000084900502786e-02 9.991384259025663e-03 9.981915635495017e-03 9.972443141719819e-03 - 9.962966786689603e-03 9.953486595586885e-03 9.944002583039199e-03 9.934514754395770e-03 9.925023122335749e-03 - 9.915527701693664e-03 9.906028505794947e-03 9.896525539473492e-03 9.887018817044350e-03 9.877508364713565e-03 - 9.867994191756903e-03 9.858476305769829e-03 9.848954721540815e-03 9.839429453723526e-03 9.829900512927632e-03 - 9.820367904529967e-03 9.810831649938153e-03 9.801291772225836e-03 9.791748277276684e-03 9.782201174956444e-03 - 9.772650480173910e-03 9.763096209214261e-03 9.753538370443265e-03 9.743976971083063e-03 9.734412038356991e-03 - 9.724843589152831e-03 9.715271627378256e-03 9.705696167153652e-03 9.696117225097080e-03 9.686534815487291e-03 - 9.676948943754414e-03 9.667359623576509e-03 9.657766883492007e-03 9.648170733986708e-03 9.638571181819185e-03 - 9.628968243024477e-03 9.619361933494769e-03 9.609752265452595e-03 9.600139245296816e-03 9.590522893495216e-03 - 9.580903234511828e-03 9.571280275331249e-03 9.561654026946651e-03 9.552024506017841e-03 9.542391727779683e-03 - 9.532755702177183e-03 9.523116437885958e-03 9.513473960404769e-03 9.503828289303256e-03 9.494179431678001e-03 - 9.484527400058637e-03 9.474872210511853e-03 9.465213879778082e-03 9.455552415295903e-03 9.445887829718797e-03 - 9.436220151655284e-03 9.426549394486200e-03 9.416875565725477e-03 9.407198681221749e-03 9.397518758018270e-03 - 9.387835810148322e-03 9.378149843813783e-03 9.368460878589471e-03 9.358768941430739e-03 9.349074041571485e-03 - 9.339376189353358e-03 9.329675400879622e-03 9.319971694171958e-03 9.310265081086165e-03 9.300555568605354e-03 - 9.290843182951191e-03 9.281127946492163e-03 9.271409865969660e-03 9.261688954922952e-03 9.251965230660204e-03 - 9.242238709904914e-03 9.232509401801155e-03 9.222777318787652e-03 9.213042489474691e-03 9.203304930168641e-03 - 9.193564649383718e-03 9.183821661973759e-03 9.174075985705271e-03 9.164327637046287e-03 9.154576623077591e-03 - 9.144822962285418e-03 9.135066683045857e-03 9.125307796249328e-03 9.115546312613307e-03 9.105782249286811e-03 - 9.096015624756502e-03 9.086246452281876e-03 9.076474739187750e-03 9.066700510968253e-03 9.056923792083085e-03 - 9.047144590189744e-03 9.037362919662660e-03 9.027578799121916e-03 9.017792245480461e-03 9.008003268928564e-03 - 8.998211881680073e-03 8.988418113610518e-03 8.978621982540696e-03 8.968823496265647e-03 8.959022672124209e-03 - 8.949219528590024e-03 8.939414081469170e-03 8.929606339864140e-03 8.919796321979990e-03 8.909984056877767e-03 - 8.900169557867096e-03 8.890352835957138e-03 8.880533907981049e-03 8.870712793191068e-03 8.860889506593549e-03 - 8.851064055633283e-03 8.841236465905915e-03 8.831406764712287e-03 8.821574959648875e-03 8.811741064546590e-03 - 8.801905099237244e-03 8.792067082696866e-03 8.782227026145442e-03 8.772384940188230e-03 8.762540855386065e-03 - 8.752694792574688e-03 8.742846759945761e-03 8.732996774006149e-03 8.723144854408183e-03 8.713291019755398e-03 - 8.703435278608567e-03 8.693577647775636e-03 8.683718159456632e-03 8.673856827661263e-03 8.663993662505663e-03 - 8.654128683145933e-03 8.644261909320558e-03 8.634393356690426e-03 8.624523033451901e-03 8.614650964506795e-03 - 8.604777179373340e-03 8.594901686657006e-03 8.585024500118565e-03 8.575145640490715e-03 8.565265126670765e-03 - 8.555382971806235e-03 8.545499187654319e-03 8.535613803632294e-03 8.525726842250045e-03 8.515838312646278e-03 - 8.505948232174527e-03 8.496056621077198e-03 8.486163497882877e-03 8.476268872748003e-03 8.466372762116349e-03 - 8.456475199094931e-03 8.446576199856061e-03 8.436675774300739e-03 8.426773941795081e-03 8.416870722731803e-03 - 8.406966134358667e-03 8.397060186389057e-03 8.387152901959176e-03 8.377244311160385e-03 8.367334425300299e-03 - 8.357423258296441e-03 8.347510830980188e-03 8.337597163605794e-03 8.327682270401855e-03 8.317766161869340e-03 - 8.307848867754637e-03 8.297930413816063e-03 8.288010810083676e-03 8.278090072673102e-03 8.268168221765407e-03 - 8.258245278027963e-03 8.248321253600945e-03 8.238396163758082e-03 8.228470040664376e-03 8.218542903042886e-03 - 8.208614761992156e-03 8.198685637447353e-03 8.188755549837494e-03 8.178824516773604e-03 8.168892549578916e-03 - 8.158959670459199e-03 8.149025910256038e-03 8.139091282816925e-03 8.129155801857130e-03 8.119219487437710e-03 - 8.109282361690508e-03 8.099344440765549e-03 8.089405733754036e-03 8.079466270417937e-03 8.069526079135253e-03 - 8.059585169010465e-03 8.049643556954327e-03 8.039701265060109e-03 8.029758314127560e-03 8.019814717074126e-03 - 8.009870488264625e-03 7.999925660293698e-03 7.989980254561855e-03 7.980034282561204e-03 7.970087763203990e-03 - 7.960140717914167e-03 7.950193166721423e-03 7.940245120231920e-03 7.930296599391260e-03 7.920347637831796e-03 - 7.910398250263278e-03 7.900448449763646e-03 7.890498257622273e-03 7.880547695356892e-03 7.870596780430528e-03 - 7.860645524802819e-03 7.850693955430419e-03 7.840742100859013e-03 7.830789973961963e-03 7.820837591210042e-03 - 7.810884973654219e-03 7.800932143705464e-03 7.790979115476222e-03 7.781025902060369e-03 7.771072537550891e-03 - 7.761119045304192e-03 7.751165435253132e-03 7.741211727248220e-03 7.731257943744334e-03 7.721304105116559e-03 - 7.711350222852130e-03 7.701396316987202e-03 7.691442422531397e-03 7.681488555826352e-03 7.671534729460651e-03 - 7.661580965493510e-03 7.651627286213397e-03 7.641673709645761e-03 7.631720246474624e-03 7.621766924002147e-03 - 7.611813774300424e-03 7.601860809420407e-03 7.591908045212342e-03 7.581955503946372e-03 7.572003208680656e-03 - 7.562051174726026e-03 7.552099414296815e-03 7.542147961065804e-03 7.532196840825635e-03 7.522246063843738e-03 - 7.512295650102864e-03 7.502345622322073e-03 7.492396000716249e-03 7.482446799189802e-03 7.472498037196947e-03 - 7.462549747897286e-03 7.452601950331629e-03 7.442654658211039e-03 7.432707892744488e-03 7.422761676416634e-03 - 7.412816028768508e-03 7.402870961455420e-03 7.392926500328647e-03 7.382982678429822e-03 7.373039508794957e-03 - 7.363097007225734e-03 7.353155196864952e-03 7.343214100532815e-03 7.333273734782904e-03 7.323334112197604e-03 - 7.313395265021593e-03 7.303457220900774e-03 7.293519991033275e-03 7.283583594600794e-03 7.273648054943689e-03 - 7.263713394446934e-03 7.253779626580373e-03 7.243846768480717e-03 7.233914855435080e-03 7.223983908518886e-03 - 7.214053940460562e-03 7.204124972417771e-03 7.194197027491048e-03 7.184270126394881e-03 7.174344280726286e-03 - 7.164419514784642e-03 7.154495863236941e-03 7.144573340914020e-03 7.134651962993328e-03 7.124731752265264e-03 - 7.114812732100897e-03 7.104894920638768e-03 7.094978330575343e-03 7.085062992246606e-03 7.075148934793896e-03 - 7.065236171017366e-03 7.055324719420953e-03 7.045414603125002e-03 7.035505845669364e-03 7.025598461448587e-03 - 7.015692466009597e-03 7.005787894887785e-03 6.995884771371198e-03 6.985983107977662e-03 6.976082925249031e-03 - 6.966184246523457e-03 6.956287093797063e-03 6.946391479271966e-03 6.936497425652844e-03 6.926604968509339e-03 - 6.916714124366364e-03 6.906824907731460e-03 6.896937340931554e-03 6.887051448149962e-03 6.877167248699087e-03 - 6.867284753979424e-03 6.857403994050719e-03 6.847525000658012e-03 6.837647785670592e-03 6.827772367409923e-03 - 6.817898770109592e-03 6.808027016717447e-03 6.798157122708669e-03 6.788289103240300e-03 6.778422992931511e-03 - 6.768558816798320e-03 6.758696587557012e-03 6.748836325648165e-03 6.738978054348659e-03 6.729121795949092e-03 - 6.719267563927435e-03 6.709415379633438e-03 6.699565278400954e-03 6.689717278120727e-03 6.679871393303892e-03 - 6.670027647355804e-03 6.660186063525513e-03 6.650346660981845e-03 6.640509452367944e-03 6.630674466396449e-03 - 6.620841735868644e-03 6.611011273308148e-03 6.601183096392477e-03 6.591357229649247e-03 6.581533696087914e-03 - 6.571712512145987e-03 6.561893692372858e-03 6.552077270290561e-03 6.542263272668194e-03 6.532451712617284e-03 - 6.522642609933696e-03 6.512835987879551e-03 6.503031869590782e-03 6.493230268870023e-03 6.483431205156500e-03 - 6.473634714105858e-03 6.463840816056773e-03 6.454049525191551e-03 6.444260863046832e-03 6.434474853362258e-03 - 6.424691517208967e-03 6.414910866799055e-03 6.405132928351729e-03 6.395357735592168e-03 6.385585303753894e-03 - 6.375815649717760e-03 6.366048796411005e-03 6.356284767471845e-03 6.346523580477974e-03 6.336765248927921e-03 - 6.327009805730009e-03 6.317257279178600e-03 6.307507681412946e-03 6.297761032647583e-03 6.288017356862164e-03 - 6.278276676438099e-03 6.268539005625230e-03 6.258804362658888e-03 6.249072783406197e-03 6.239344289504087e-03 - 6.229618894349891e-03 6.219896619699197e-03 6.210177489065160e-03 6.200461523673893e-03 6.190748736475173e-03 - 6.181039151999554e-03 6.171332804226705e-03 6.161629709556120e-03 6.151929884103313e-03 6.142233350147177e-03 - 6.132540131644584e-03 6.122850247356021e-03 6.113163710170625e-03 6.103480551213418e-03 6.093800800141988e-03 - 6.084124469547710e-03 6.074451578566364e-03 6.064782150905211e-03 6.055116209626953e-03 6.045453769994722e-03 - 6.035794848740185e-03 6.026139480474754e-03 6.016487688229946e-03 6.006839485237500e-03 5.997194892776407e-03 - 5.987553934341584e-03 5.977916631713333e-03 5.968282997802390e-03 5.958653055343909e-03 5.949026838944569e-03 - 5.939404365780911e-03 5.929785651209331e-03 5.920170717549854e-03 5.910559587858684e-03 5.900952281370824e-03 - 5.891348811852907e-03 5.881749208142844e-03 5.872153500225121e-03 5.862561701850070e-03 5.852973831530551e-03 - 5.843389912374926e-03 5.833809966833203e-03 5.824234011006907e-03 5.814662060999971e-03 5.805094150375409e-03 - 5.795530303292347e-03 5.785970532524381e-03 5.776414859211175e-03 5.766863306294991e-03 5.757315894674337e-03 - 5.747772638659374e-03 5.738233559732430e-03 5.728698691311226e-03 5.719168051719483e-03 5.709641656042984e-03 - 5.700119526414031e-03 5.690601685377130e-03 5.681088152168133e-03 5.671578940158426e-03 5.662074076665564e-03 - 5.652573592801510e-03 5.643077502877857e-03 5.633585823810169e-03 5.624098577633230e-03 5.614615788052954e-03 - 5.605137471831965e-03 5.595663642810052e-03 5.586194333773162e-03 5.576729570469775e-03 5.567269364923084e-03 - 5.557813736696195e-03 5.548362708847973e-03 5.538916303890826e-03 5.529474534822445e-03 5.520037420561356e-03 - 5.510604996543656e-03 5.501177281279281e-03 5.491754287530179e-03 5.482336037985177e-03 5.472922555453679e-03 - 5.463513859119052e-03 5.454109961206277e-03 5.444710887376439e-03 5.435316669896643e-03 5.425927322428118e-03 - 5.416542861379438e-03 5.407163309793553e-03 5.397788689388935e-03 5.388419016905312e-03 5.379054306533677e-03 - 5.369694588817857e-03 5.360339890208465e-03 5.350990223294556e-03 5.341645606645782e-03 5.332306062415535e-03 - 5.322971612709802e-03 5.313642271564683e-03 5.304318056285795e-03 5.294999000250198e-03 5.285685123732157e-03 - 5.276376439554206e-03 5.267072968338082e-03 5.257774732353860e-03 5.248481751732874e-03 5.239194038865901e-03 - 5.229911616755654e-03 5.220634516968343e-03 5.211362754853240e-03 5.202096346092698e-03 5.192835312362628e-03 - 5.183579674966123e-03 5.174329450821569e-03 5.165084652994387e-03 5.155845310548846e-03 5.146611450951191e-03 - 5.137383086378589e-03 5.128160234647254e-03 5.118942917508807e-03 5.109731156137037e-03 5.100524965000140e-03 - 5.091324360054826e-03 5.082129373049942e-03 5.072940025255639e-03 5.063756329149303e-03 5.054578304260502e-03 - 5.045405972366202e-03 5.036239353680495e-03 5.027078459118392e-03 5.017923310123222e-03 5.008773940483098e-03 - 4.999630364315774e-03 4.990492594829337e-03 4.981360654331298e-03 4.972234563790402e-03 4.963114339923834e-03 - 4.953999995020500e-03 4.944891556281875e-03 4.935789051765770e-03 4.926692493194353e-03 4.917601897109304e-03 - 4.908517284729773e-03 4.899438676825864e-03 4.890366088012707e-03 4.881299532722441e-03 4.872239041569468e-03 - 4.863184636415129e-03 4.854136328649667e-03 4.845094137498133e-03 4.836058083872883e-03 4.827028186746977e-03 - 4.818004458681770e-03 4.808986918914880e-03 4.799975597861264e-03 4.790970512088721e-03 4.781971675128856e-03 - 4.772979106768043e-03 4.763992827229902e-03 4.755012853632298e-03 4.746039197549013e-03 4.737071883993436e-03 - 4.728110941197518e-03 4.719156380399636e-03 4.710208217424537e-03 4.701266473663848e-03 4.692331168251817e-03 - 4.683402315353613e-03 4.674479928383867e-03 4.665564036556664e-03 4.656654662394768e-03 4.647751816371710e-03 - 4.638855516650367e-03 4.629965783672686e-03 4.621082635909843e-03 4.612206084994354e-03 4.603336148102954e-03 - 4.594472856159325e-03 4.585616225744373e-03 4.576766268345947e-03 4.567923003199363e-03 4.559086450091263e-03 - 4.550256626033265e-03 4.541433541986122e-03 4.532617220194613e-03 4.523807688535670e-03 4.515004959722835e-03 - 4.506209047920159e-03 4.497419972185719e-03 4.488637751873642e-03 4.479862401381760e-03 4.471093932025212e-03 - 4.462332371280023e-03 4.453577742726973e-03 4.444830056583276e-03 4.436089328917552e-03 4.427355578888171e-03 - 4.418628824988929e-03 4.409909078668640e-03 4.401196354933857e-03 4.392490684030716e-03 4.383792083151365e-03 - 4.375100562120779e-03 4.366416138313078e-03 4.357738831525952e-03 4.349068659591380e-03 4.340405630957790e-03 - 4.331749765364269e-03 4.323101091949651e-03 4.314459623208851e-03 4.305825371349630e-03 4.297198354190413e-03 - 4.288578590720092e-03 4.279966095343473e-03 4.271360877578565e-03 4.262762963097229e-03 4.254172376200769e-03 - 4.245589126222103e-03 4.237013227440267e-03 4.228444697962537e-03 4.219883556022182e-03 4.211329813254019e-03 - 4.202783482548908e-03 4.194244591796649e-03 4.185713159116739e-03 4.177189194188086e-03 4.168672712320958e-03 - 4.160163731860882e-03 4.151662270610665e-03 4.143168336754119e-03 4.134681947397693e-03 4.126203130809124e-03 - 4.117731899759874e-03 4.109268265260960e-03 4.100812244167818e-03 4.092363854125291e-03 4.083923109325604e-03 - 4.075490018959178e-03 4.067064605609816e-03 4.058646892914489e-03 4.050236890474988e-03 4.041834611549669e-03 - 4.033440073099425e-03 4.025053291802670e-03 4.016674279190388e-03 4.008303046950822e-03 3.999939621219669e-03 - 3.991584019864232e-03 3.983236251035503e-03 3.974896329846703e-03 3.966564273682151e-03 3.958240098637734e-03 - 3.949923812376889e-03 3.941615430268695e-03 3.933314980874398e-03 3.925022475755094e-03 3.916737923312982e-03 - 3.908461340476090e-03 3.900192744628528e-03 3.891932149238224e-03 3.883679560814138e-03 3.875435000263637e-03 - 3.867198492508630e-03 3.858970045729460e-03 3.850749670926077e-03 3.842537384120139e-03 3.834333202377867e-03 - 3.826137136626801e-03 3.817949195349815e-03 3.809769403427763e-03 3.801597779587331e-03 3.793434330750140e-03 - 3.785279069923421e-03 3.777132013373491e-03 3.768993177352847e-03 3.760862568898475e-03 3.752740200334732e-03 - 3.744626099044159e-03 3.736520277340854e-03 3.728422742215669e-03 3.720333508785603e-03 3.712252593018920e-03 - 3.704180008090329e-03 3.696115760631814e-03 3.688059868276574e-03 3.680012354362612e-03 3.671973228138760e-03 - 3.663942499526064e-03 3.655920182566113e-03 3.647906292785413e-03 3.639900840938008e-03 3.631903834337251e-03 - 3.623915295229000e-03 3.615935242250758e-03 3.607963681828620e-03 3.600000626081414e-03 3.592046089865790e-03 - 3.584100087061132e-03 3.576162625323692e-03 3.568233715505030e-03 3.560313381862740e-03 3.552401637255495e-03 - 3.544498488187401e-03 3.536603947761108e-03 3.528718030587010e-03 3.520840749407267e-03 3.512972109975055e-03 - 3.505112127471606e-03 3.497260824593953e-03 3.489418209893856e-03 3.481584291815555e-03 3.473759083632174e-03 - 3.465942599385497e-03 3.458134849136788e-03 3.450335838875430e-03 3.442545588595099e-03 3.434764116831954e-03 - 3.426991428902786e-03 3.419227535146918e-03 3.411472449427477e-03 3.403726185233638e-03 3.395988749408295e-03 - 3.388260149964055e-03 3.380540409506120e-03 3.372829541439428e-03 3.365127551327278e-03 3.357434450344299e-03 - 3.349750251864305e-03 3.342074968176267e-03 3.334408603200120e-03 3.326751169911567e-03 3.319102691777129e-03 - 3.311463175183513e-03 3.303832626198486e-03 3.296211059114474e-03 3.288598486024217e-03 3.280994915398627e-03 - 3.273400352769854e-03 3.265814815709593e-03 3.258238322074859e-03 3.250670876135365e-03 3.243112486983179e-03 - 3.235563167624456e-03 3.228022929479646e-03 3.220491779361285e-03 3.212969724272006e-03 3.205456783570964e-03 - 3.197952970426890e-03 3.190458290104943e-03 3.182972751519780e-03 3.175496366385864e-03 3.168029146873250e-03 - 3.160571096621216e-03 3.153122225636278e-03 3.145682555500280e-03 3.138252093348739e-03 3.130830843615626e-03 - 3.123418817816768e-03 3.116016027518625e-03 3.108622481356378e-03 3.101238183229207e-03 3.093863147897005e-03 - 3.086497392737253e-03 3.079140921752824e-03 3.071793741871484e-03 3.064455864252268e-03 3.057127299904285e-03 - 3.049808055146270e-03 3.042498134791386e-03 3.035197556645182e-03 3.027906333235584e-03 3.020624467536793e-03 - 3.013351968343262e-03 3.006088846580162e-03 2.998835112089031e-03 2.991590768047797e-03 2.984355822285627e-03 - 2.977130294631421e-03 2.969914192263928e-03 2.962707518230782e-03 2.955510282832787e-03 2.948322496039390e-03 - 2.941144165204636e-03 2.933975293458325e-03 2.926815893073326e-03 2.919665980487675e-03 2.912525559332239e-03 - 2.905394635071103e-03 2.898273217656210e-03 2.891161316595433e-03 2.884058936906487e-03 2.876966081111658e-03 - 2.869882766189157e-03 2.862809005041444e-03 2.855744798230348e-03 2.848690153100023e-03 2.841645079496137e-03 - 2.834609585256340e-03 2.827583673848185e-03 2.820567351490293e-03 2.813560634590312e-03 2.806563530531927e-03 - 2.799576041999259e-03 2.792598177467573e-03 2.785629945309582e-03 2.778671351607254e-03 2.771722398039775e-03 - 2.764783095014263e-03 2.757853459091809e-03 2.750933492568204e-03 2.744023198517816e-03 2.737122585640385e-03 - 2.730231662189404e-03 2.723350432970404e-03 2.716478899800820e-03 2.709617075896625e-03 2.702764973241287e-03 - 2.695922593060963e-03 2.689089940152226e-03 2.682267022316270e-03 2.675453847914084e-03 2.668650418902243e-03 - 2.661856738145520e-03 2.655072822033232e-03 2.648298678030288e-03 2.641534306206961e-03 2.634779712258937e-03 - 2.628034904058933e-03 2.621299888635041e-03 2.614574665771587e-03 2.607859242632423e-03 2.601153634957146e-03 - 2.594457844452072e-03 2.587771872555374e-03 2.581095727373358e-03 2.574429415266960e-03 2.567772939497474e-03 - 2.561126300777387e-03 2.554489510835181e-03 2.547862581281132e-03 2.541245510713479e-03 2.534638303078699e-03 - 2.528040966193904e-03 2.521453505493298e-03 2.514875922225054e-03 2.508308218200437e-03 2.501750407164573e-03 - 2.495202496081871e-03 2.488664484118587e-03 2.482136376281468e-03 2.475618178705269e-03 2.469109895957427e-03 - 2.462611527825166e-03 2.456123079328407e-03 2.449644563898542e-03 2.443175984269443e-03 2.436717340526153e-03 - 2.430268636964234e-03 2.423829879853036e-03 2.417401073311931e-03 2.410982215756923e-03 2.404573315098301e-03 - 2.398174382071132e-03 2.391785416912405e-03 2.385406421217447e-03 2.379037399546287e-03 2.372678357701878e-03 - 2.366329296305038e-03 2.359990214012962e-03 2.353661123666590e-03 2.347342032379030e-03 2.341032936953993e-03 - 2.334733840455562e-03 2.328444748068140e-03 2.322165663885325e-03 2.315896586946297e-03 2.309637519733881e-03 - 2.303388473653537e-03 2.297149451184649e-03 2.290920451297887e-03 2.284701476927273e-03 2.278492533074980e-03 - 2.272293622898508e-03 2.266104742447669e-03 2.259925897918875e-03 2.253757100645447e-03 2.247598348619136e-03 - 2.241449641489242e-03 2.235310983406359e-03 2.229182378556762e-03 2.223063827011661e-03 2.216955326220785e-03 - 2.210856885615230e-03 2.204768511855369e-03 2.198690202073136e-03 2.192621957162963e-03 2.186563780523993e-03 - 2.180515675851768e-03 2.174477640514074e-03 2.168449674335647e-03 2.162431789038673e-03 2.156423986093689e-03 - 2.150426261719325e-03 2.144438618887063e-03 2.138461061015507e-03 2.132493589319895e-03 2.126536199820428e-03 - 2.120588896234097e-03 2.114651688169617e-03 2.108724573757348e-03 2.102807551461262e-03 2.096900623831682e-03 - 2.091003792760502e-03 2.085117057433877e-03 2.079240415028002e-03 2.073373872799373e-03 2.067517436442142e-03 - 2.061671101563673e-03 2.055834867994772e-03 2.050008738194652e-03 2.044192713868095e-03 2.038386792128391e-03 - 2.032590971333173e-03 2.026805260662020e-03 2.021029661329869e-03 2.015264168518725e-03 2.009508783500123e-03 - 2.003763508166370e-03 1.998028342654997e-03 1.992303282805534e-03 1.986588330078225e-03 1.980883492165770e-03 - 1.975188767039759e-03 1.969504151730439e-03 1.963829647004430e-03 1.958165254218237e-03 1.952510971963634e-03 - 1.946866794889960e-03 1.941232728159857e-03 1.935608777640074e-03 1.929994938329363e-03 1.924391207914093e-03 - 1.918797587114099e-03 1.913214077256622e-03 1.907640674795718e-03 1.902077375557082e-03 1.896524186430478e-03 - 1.890981108949087e-03 1.885448138032121e-03 1.879925272541809e-03 1.874412513138102e-03 1.868909859971047e-03 - 1.863417306389931e-03 1.857934851379391e-03 1.852462503653811e-03 1.847000259754348e-03 1.841548114039762e-03 - 1.836106066817225e-03 1.830674118529854e-03 1.825252266916765e-03 1.819840505202892e-03 1.814438836319749e-03 - 1.809047265638602e-03 1.803665787133681e-03 1.798294397101445e-03 1.792933095135866e-03 1.787581880369786e-03 - 1.782240749155103e-03 1.776909697172910e-03 1.771588728179710e-03 1.766277842767543e-03 1.760977035675204e-03 - 1.755686304337379e-03 1.750405647484752e-03 1.745135063548007e-03 1.739874546386865e-03 1.734624093589025e-03 - 1.729383711586370e-03 1.724153396315838e-03 1.718933140719367e-03 1.713722944309894e-03 1.708522806163372e-03 - 1.703332722978997e-03 1.698152687791741e-03 1.692982700783420e-03 1.687822765464940e-03 1.682672875794938e-03 - 1.677533027054054e-03 1.672403217813849e-03 1.667283446525115e-03 1.662173708173832e-03 1.657073995739192e-03 - 1.651984312946546e-03 1.646904660364047e-03 1.641835029387390e-03 1.636775416468660e-03 1.631725820220986e-03 - 1.626686238226539e-03 1.621656663682810e-03 1.616637091835148e-03 1.611627526662728e-03 1.606627964700548e-03 - 1.601638398623349e-03 1.596658825754688e-03 1.591689243408400e-03 1.586729647378206e-03 1.581780030725023e-03 - 1.576840391697073e-03 1.571910732264727e-03 1.566991046477593e-03 1.562081328242421e-03 1.557181574037859e-03 - 1.552291781114454e-03 1.547411944138861e-03 1.542542055154552e-03 1.537682115822498e-03 1.532832126356767e-03 - 1.527992077470792e-03 1.523161963747274e-03 1.518341782422417e-03 1.513531530571088e-03 1.508731200913292e-03 - 1.503940786876937e-03 1.499160290964809e-03 1.494389709200610e-03 1.489629032745148e-03 1.484878257820629e-03 - 1.480137381279299e-03 1.475406398389162e-03 1.470685299850305e-03 1.465974082141071e-03 1.461272748080975e-03 - 1.456581290224651e-03 1.451899700275850e-03 1.447227974089072e-03 1.442566108566721e-03 1.437914097994959e-03 - 1.433271932504185e-03 1.428639611034298e-03 1.424017133356480e-03 1.419404490680891e-03 1.414801676491448e-03 - 1.410208686553135e-03 1.405625516589791e-03 1.401052158609908e-03 1.396488604511052e-03 1.391934855472548e-03 - 1.387390907364871e-03 1.382856750165021e-03 1.378332378783991e-03 1.373817788890047e-03 1.369312974750468e-03 - 1.364817927255285e-03 1.360332641059443e-03 1.355857116711623e-03 1.351391347026849e-03 1.346935323100728e-03 - 1.342489039284644e-03 1.338052491255308e-03 1.333625672740901e-03 1.329208572800934e-03 1.324801188462658e-03 - 1.320403519143769e-03 1.316015555822497e-03 1.311637290544184e-03 1.307268717472159e-03 1.302909831116118e-03 - 1.298560623326278e-03 1.294221085253892e-03 1.289891216124110e-03 1.285571011566486e-03 1.281260461060531e-03 - 1.276959557618139e-03 1.272668295740209e-03 1.268386669608614e-03 1.264114669618853e-03 1.259852288349743e-03 - 1.255599524419093e-03 1.251356371085625e-03 1.247122819189722e-03 1.242898861265979e-03 1.238684491359706e-03 - 1.234479702756933e-03 1.230284484841117e-03 1.226098832748256e-03 1.221922744434409e-03 1.217756210326720e-03 - 1.213599221362577e-03 1.209451770765583e-03 1.205313852635065e-03 1.201185458480448e-03 1.197066577985755e-03 - 1.192957208640432e-03 1.188857345511447e-03 1.184766976969275e-03 1.180686095693037e-03 1.176614695732404e-03 - 1.172552769621902e-03 1.168500307042727e-03 1.164457299537124e-03 1.160423745213695e-03 1.156399636114517e-03 - 1.152384961360659e-03 1.148379714206853e-03 1.144383887440774e-03 1.140397472403066e-03 1.136420458871837e-03 - 1.132452840804467e-03 1.128494614815977e-03 1.124545770440235e-03 1.120606297984056e-03 1.116676190709075e-03 - 1.112755440623707e-03 1.108844038267568e-03 1.104941973598277e-03 1.101049242215234e-03 1.097165838523137e-03 - 1.093291750933755e-03 1.089426970747485e-03 1.085571490835547e-03 1.081725303225761e-03 1.077888396808512e-03 - 1.074060761522748e-03 1.070242395009795e-03 1.066433289590875e-03 1.062633433332422e-03 1.058842817553080e-03 - 1.055061434373011e-03 1.051289275348505e-03 1.047526329409495e-03 1.043772588486000e-03 1.040028047931513e-03 - 1.036292698203525e-03 1.032566529042292e-03 1.028849531681517e-03 1.025141697676040e-03 1.021443017315572e-03 - 1.017753479165712e-03 1.014073077446178e-03 1.010401806565697e-03 1.006739654876394e-03 1.003086612170896e-03 - 9.994426698862881e-04 9.958078198244436e-04 9.921820510029489e-04 9.885653522799815e-04 9.849577193159157e-04 - 9.813591440739670e-04 9.777696142556011e-04 9.741891204675346e-04 9.706176542328248e-04 9.670552065524777e-04 - 9.635017651512704e-04 9.599573207794398e-04 9.564218691437683e-04 9.528953995809905e-04 9.493779002331982e-04 - 9.458693621672339e-04 9.423697766254766e-04 9.388791334439822e-04 9.353974200435674e-04 9.319246293443443e-04 - 9.284607555133966e-04 9.250057861419034e-04 9.215597102726345e-04 9.181225189615299e-04 9.146942031524666e-04 - 9.112747514066988e-04 9.078641516289516e-04 9.044623983719834e-04 9.010694834242857e-04 8.976853937790154e-04 - 8.943101192935385e-04 8.909436508104612e-04 8.875859786393426e-04 8.842370902316334e-04 8.808969751654204e-04 - 8.775656281905130e-04 8.742430385918343e-04 8.709291937982416e-04 8.676240840155020e-04 8.643276998573467e-04 - 8.610400308208924e-04 8.577610636611962e-04 8.544907899714905e-04 8.512292035626933e-04 8.479762917886125e-04 - 8.447320428739457e-04 8.414964471843920e-04 8.382694949325988e-04 8.350511744137459e-04 8.318414728923707e-04 - 8.286403836395943e-04 8.254478982373706e-04 8.222640032931049e-04 8.190886878204532e-04 8.159219419987107e-04 - 8.127637556794064e-04 8.096141160179775e-04 8.064730115089579e-04 8.033404360997527e-04 8.002163789609624e-04 - 7.971008268111541e-04 7.939937692507287e-04 7.908951962853333e-04 7.878050969946667e-04 7.847234577702081e-04 - 7.816502689905088e-04 7.785855239466778e-04 7.755292098590464e-04 7.724813142232633e-04 7.694418267842021e-04 - 7.664107372089749e-04 7.633880335334087e-04 7.603737023812342e-04 7.573677358642847e-04 7.543701253849379e-04 - 7.513808572285544e-04 7.483999196962093e-04 7.454273024026923e-04 7.424629947358947e-04 7.395069836664074e-04 - 7.365592567622367e-04 7.336198070174806e-04 7.306886236388442e-04 7.277656929130117e-04 7.248510036837761e-04 - 7.219445453636994e-04 7.190463067357669e-04 7.161562739946586e-04 7.132744364309508e-04 7.104007867132190e-04 - 7.075353120392018e-04 7.046779992824802e-04 7.018288375861283e-04 6.989878161882759e-04 6.961549229362052e-04 - 6.933301438820412e-04 6.905134700383686e-04 6.877048926511914e-04 6.849043978549774e-04 6.821119732944710e-04 - 6.793276080246700e-04 6.765512910034699e-04 6.737830090783149e-04 6.710227490756584e-04 6.682705030776122e-04 - 6.655262603091742e-04 6.627900067379164e-04 6.600617305924390e-04 6.573414207627890e-04 6.546290656955580e-04 - 6.519246513982958e-04 6.492281662548372e-04 6.465396024423735e-04 6.438589471596415e-04 6.411861867028291e-04 - 6.385213096762252e-04 6.358643049114898e-04 6.332151601148890e-04 6.305738609661260e-04 6.279403974635571e-04 - 6.253147606410383e-04 6.226969365620930e-04 6.200869123319087e-04 6.174846765257772e-04 6.148902176504979e-04 - 6.123035224628875e-04 6.097245772740803e-04 6.071533733723410e-04 6.045898999580564e-04 6.020341426510520e-04 - 5.994860891934145e-04 5.969457280748620e-04 5.944130474177512e-04 5.918880332091087e-04 5.893706730594447e-04 - 5.868609584534629e-04 5.843588766665737e-04 5.818644136544619e-04 5.793775576682911e-04 5.768982970317317e-04 - 5.744266191686133e-04 5.719625097277512e-04 5.695059578510202e-04 5.670569542308351e-04 5.646154849082753e-04 - 5.621815365284883e-04 5.597550972743215e-04 5.573361553519681e-04 5.549246974872960e-04 5.525207095632259e-04 - 5.501241820142805e-04 5.477351040267441e-04 5.453534610951853e-04 5.429792405131840e-04 5.406124304314462e-04 - 5.382530187447214e-04 5.359009913605971e-04 5.335563351904396e-04 5.312190411682156e-04 5.288890968140364e-04 - 5.265664878332606e-04 5.242512018091515e-04 5.219432267978740e-04 5.196425502978362e-04 5.173491576918976e-04 - 5.150630373381158e-04 5.127841797796618e-04 5.105125710953982e-04 5.082481974966798e-04 5.059910467933278e-04 - 5.037411069671739e-04 5.014983647643853e-04 4.992628057533249e-04 4.970344196034297e-04 4.948131954905409e-04 - 4.925991188614672e-04 4.903921766298550e-04 4.881923566574878e-04 4.859996466359864e-04 4.838140324815327e-04 - 4.816355005995136e-04 4.794640414647377e-04 4.772996426854546e-04 4.751422896755638e-04 4.729919697488023e-04 - 4.708486707166207e-04 4.687123799720691e-04 4.665830828962369e-04 4.644607671738101e-04 4.623454230212830e-04 - 4.602370366779194e-04 4.581355941018685e-04 4.560410828358216e-04 4.539534906171381e-04 4.518728041821612e-04 - 4.497990089033435e-04 4.477320938149108e-04 4.456720481170030e-04 4.436188572707195e-04 4.415725078895158e-04 - 4.395329875976124e-04 4.375002838422590e-04 4.354743826722610e-04 4.334552702201095e-04 4.314429363226086e-04 - 4.294373687059989e-04 4.274385527576286e-04 4.254464755700176e-04 4.234611247199864e-04 4.214824874479911e-04 - 4.195105492176435e-04 4.175452972239935e-04 4.155867214135851e-04 4.136348082067204e-04 4.116895433467350e-04 - 4.097509141339746e-04 4.078189081189173e-04 4.058935120995524e-04 4.039747114386321e-04 4.020624945699733e-04 - 4.001568506324645e-04 3.982577652062802e-04 3.963652246433777e-04 3.944792163840573e-04 3.925997278951708e-04 - 3.907267452820787e-04 3.888602542761684e-04 3.870002443827855e-04 3.851467035420477e-04 3.832996170232135e-04 - 3.814589716941001e-04 3.796247550166885e-04 3.777969542187427e-04 3.759755548771444e-04 3.741605437648361e-04 - 3.723519105456335e-04 3.705496418343326e-04 3.687537232626712e-04 3.669641420580878e-04 3.651808856652343e-04 - 3.634039408935104e-04 3.616332930379869e-04 3.598689301103073e-04 3.581108413327368e-04 3.563590123412032e-04 - 3.546134293224166e-04 3.528740796868620e-04 3.511409507353364e-04 3.494140287293094e-04 3.476932993968030e-04 - 3.459787517007610e-04 3.442703736842207e-04 3.425681507579447e-04 3.408720696736798e-04 3.391821178070990e-04 - 3.374982823340253e-04 3.358205489790399e-04 3.341489042294683e-04 3.324833375391577e-04 3.308238358267097e-04 - 3.291703846864138e-04 3.275229711235071e-04 3.258815824857735e-04 3.242462057388915e-04 3.226168264116891e-04 - 3.209934320343741e-04 3.193760116170641e-04 3.177645512713499e-04 3.161590371207419e-04 3.145594562690266e-04 - 3.129657961319975e-04 3.113780432227079e-04 3.097961831114660e-04 3.082202043645004e-04 3.066500952444524e-04 - 3.050858414009347e-04 3.035274294402161e-04 3.019748466354355e-04 3.004280802320956e-04 2.988871162192853e-04 - 2.973519409077311e-04 2.958225434173786e-04 2.942989109163873e-04 2.927810290941792e-04 2.912688849504159e-04 - 2.897624658129895e-04 2.882617587216531e-04 2.867667493909568e-04 2.852774250910157e-04 2.837937747837379e-04 - 2.823157848000407e-04 2.808434412718301e-04 2.793767313619733e-04 2.779156424588856e-04 2.764601612241833e-04 - 2.750102732798498e-04 2.735659669757869e-04 2.721272307826111e-04 2.706940504177620e-04 2.692664125118005e-04 - 2.678443044384447e-04 2.664277133531666e-04 2.650166254907073e-04 2.636110271946842e-04 2.622109073508727e-04 - 2.608162534146021e-04 2.594270512444905e-04 2.580432877716125e-04 2.566649503351083e-04 2.552920261463284e-04 - 2.539245011192165e-04 2.525623623480746e-04 2.512055988243127e-04 2.498541971146173e-04 2.485081433825346e-04 - 2.471674249383843e-04 2.458320291468696e-04 2.445019428356345e-04 2.431771519464020e-04 2.418576445147758e-04 - 2.405434090455539e-04 2.392344316436903e-04 2.379306989304936e-04 2.366321982706708e-04 2.353389171046539e-04 - 2.340508418959193e-04 2.327679588365217e-04 2.314902568213100e-04 2.302177235947735e-04 2.289503450019842e-04 - 2.276881081822984e-04 2.264310006278554e-04 2.251790095285085e-04 2.239321211178975e-04 2.226903224828012e-04 - 2.214536025966827e-04 2.202219483393713e-04 2.189953459440866e-04 2.177737827672056e-04 2.165572463172210e-04 - 2.153457236927424e-04 2.141392010208329e-04 2.129376661694288e-04 2.117411078009580e-04 2.105495123800498e-04 - 2.093628666254358e-04 2.081811579562958e-04 2.070043738711933e-04 2.058325011765904e-04 2.046655262979033e-04 - 2.035034378928387e-04 2.023462239716796e-04 2.011938707312936e-04 2.000463653117907e-04 1.989036953143001e-04 - 1.977658482429478e-04 1.966328105707422e-04 1.955045692837424e-04 1.943811134060168e-04 1.932624302421221e-04 - 1.921485062157297e-04 1.910393287336514e-04 1.899348854684124e-04 1.888351638115297e-04 1.877401500482506e-04 - 1.866498319949601e-04 1.855641985831636e-04 1.844832365124926e-04 1.834069326310023e-04 1.823352746298841e-04 - 1.812682501147551e-04 1.802058461455679e-04 1.791480493724017e-04 1.780948483852737e-04 1.770462314872484e-04 - 1.760021851824818e-04 1.749626967491274e-04 1.739277539439587e-04 1.728973444305181e-04 1.718714550470096e-04 - 1.708500728855944e-04 1.698331869571933e-04 1.688207849549946e-04 1.678128535713188e-04 1.668093803524777e-04 - 1.658103531111011e-04 1.648157594964937e-04 1.638255861976382e-04 1.628398210066413e-04 1.618584529166454e-04 - 1.608814690931768e-04 1.599088565742865e-04 1.589406031206167e-04 1.579766966509897e-04 1.570171246224424e-04 - 1.560618738321770e-04 1.551109328208930e-04 1.541642902068764e-04 1.532219328717612e-04 1.522838482661923e-04 - 1.513500243337891e-04 1.504204489591066e-04 1.494951093483970e-04 1.485739927662749e-04 1.476570882997282e-04 - 1.467443839796364e-04 1.458358667202351e-04 1.449315243896633e-04 1.440313449862068e-04 1.431353162531848e-04 - 1.422434254066872e-04 1.413556604013758e-04 1.404720102486319e-04 1.395924625558734e-04 1.387170046489957e-04 - 1.378456244430427e-04 1.369783100559194e-04 1.361150493062282e-04 1.352558293490397e-04 1.344006387024136e-04 - 1.335494662293593e-04 1.327022993333140e-04 1.318591256583063e-04 1.310199332689028e-04 1.301847103692820e-04 - 1.293534446013900e-04 1.285261234477974e-04 1.277027359881715e-04 1.268832706365997e-04 1.260677147052468e-04 - 1.252560562359565e-04 1.244482834803957e-04 1.236443845356053e-04 1.228443469528238e-04 1.220481588198588e-04 - 1.212558093699401e-04 1.204672865809282e-04 1.196825780471873e-04 1.189016720308052e-04 1.181245568536085e-04 - 1.173512205995857e-04 1.165816508484800e-04 1.158158362776897e-04 1.150537660210759e-04 1.142954277590100e-04 - 1.135408094568152e-04 1.127898995954114e-04 1.120426864956402e-04 1.112991581353023e-04 1.105593024093304e-04 - 1.098231085283700e-04 1.090905652465313e-04 1.083616601800625e-04 1.076363816399760e-04 1.069147182196831e-04 - 1.061966583782502e-04 1.054821899944032e-04 1.047713013150353e-04 1.040639818640637e-04 1.033602200082437e-04 - 1.026600035826387e-04 1.019633211976323e-04 1.012701615275282e-04 1.005805130149820e-04 9.989436355203399e-05 - 9.921170194739147e-05 9.853251765411631e-05 9.785679881782247e-05 9.718453366352614e-05 9.651571091087277e-05 - 9.585031930594751e-05 9.518834724915350e-05 9.452978284703146e-05 9.387461543789448e-05 9.322283420353250e-05 - 9.257442723618249e-05 9.192938310286574e-05 9.128769066247626e-05 9.064933872161225e-05 9.001431561187756e-05 - 8.938260983500139e-05 8.875421104519957e-05 8.812910809646098e-05 8.750728925694059e-05 8.688874335824857e-05 - 8.627345936363417e-05 8.566142611724158e-05 8.505263195150667e-05 8.444706587898619e-05 8.384471762172232e-05 - 8.324557578035348e-05 8.264962891132210e-05 8.205686604727953e-05 8.146727626544971e-05 8.088084838175318e-05 - 8.029757088191735e-05 7.971743327705584e-05 7.914042512047892e-05 7.856653495630607e-05 7.799575166346450e-05 - 7.742806441871695e-05 7.686346239245813e-05 7.630193435494130e-05 7.574346911053080e-05 7.518805653837606e-05 - 7.463568593117825e-05 7.408634594826592e-05 7.354002575090044e-05 7.299671464423979e-05 7.245640185167563e-05 - 7.191907614532941e-05 7.138472679150608e-05 7.085334380230530e-05 7.032491623916224e-05 6.979943301854977e-05 - 6.927688351841825e-05 6.875725716877753e-05 6.824054320182008e-05 6.772673050550591e-05 6.721580881996242e-05 - 6.670776807704407e-05 6.620259726868480e-05 6.570028562031883e-05 6.520082266140781e-05 6.470419793220322e-05 - 6.421040064958054e-05 6.371941996817583e-05 6.323124601185380e-05 6.274586851226631e-05 6.226327655003573e-05 - 6.178345963615301e-05 6.130640743984757e-05 6.083210957777482e-05 6.036055527561582e-05 5.989173409263222e-05 - 5.942563633391719e-05 5.896225154191688e-05 5.850156903007261e-05 5.804357852627766e-05 5.758826983099529e-05 - 5.713563260712647e-05 5.668565617514362e-05 5.623833053838233e-05 5.579364600051564e-05 5.535159201768813e-05 - 5.491215819134343e-05 5.447533442712218e-05 5.404111064124177e-05 5.360947650466450e-05 5.318042157160001e-05 - 5.275393622516995e-05 5.233001062811153e-05 5.190863431238880e-05 5.148979716458554e-05 5.107348923404401e-05 - 5.065970053025621e-05 5.024842074849432e-05 4.983963979263951e-05 4.943334827635427e-05 4.902953621108006e-05 - 4.862819332553702e-05 4.822930973793706e-05 4.783287562882953e-05 4.743888107972067e-05 4.704731588033618e-05 - 4.665817033540254e-05 4.627143510842172e-05 4.588710014690383e-05 4.550515545082771e-05 4.512559130332447e-05 - 4.474839802715817e-05 4.437356575264515e-05 4.400108444300858e-05 4.363094478314062e-05 4.326313737450849e-05 - 4.289765220307346e-05 4.253447954450777e-05 4.217360984935306e-05 4.181503354031293e-05 4.145874078526325e-05 - 4.110472186234567e-05 4.075296770939578e-05 4.040346881442376e-05 4.005621534517384e-05 3.971119780891244e-05 - 3.936840678851008e-05 3.902783280379881e-05 3.868946611492773e-05 3.835329736378580e-05 3.801931758461789e-05 - 3.768751721520911e-05 3.735788667634669e-05 3.703041665089796e-05 3.670509786268472e-05 3.638192090588934e-05 - 3.606087620758478e-05 3.574195476070656e-05 3.542514758568229e-05 3.511044516462031e-05 3.479783817623805e-05 - 3.448731747191980e-05 3.417887390941621e-05 3.387249813623169e-05 3.356818082938366e-05 3.326591326488256e-05 - 3.296568640239042e-05 3.266749086476883e-05 3.237131756688427e-05 3.207715751232477e-05 3.178500166911470e-05 - 3.149484077201404e-05 3.120666582870710e-05 3.092046825328168e-05 3.063623897047349e-05 3.035396883732847e-05 - 3.007364895961203e-05 2.979527048619034e-05 2.951882447255356e-05 2.924430180184470e-05 2.897169381596313e-05 - 2.870099196601076e-05 2.843218722351712e-05 2.816527069305565e-05 2.790023364581556e-05 2.763706736588794e-05 - 2.737576298520704e-05 2.711631161938774e-05 2.685870489191871e-05 2.660293422952212e-05 2.634899073350601e-05 - 2.609686574272242e-05 2.584655068622352e-05 2.559803697386157e-05 2.535131582907573e-05 2.510637865851451e-05 - 2.486321726016628e-05 2.462182305120829e-05 2.438218734168926e-05 2.414430166313400e-05 2.390815760058303e-05 - 2.367374667612129e-05 2.344106023464476e-05 2.321008999935892e-05 2.298082786356460e-05 2.275326527748312e-05 - 2.252739378233606e-05 2.230320509258137e-05 2.208069093512809e-05 2.185984291941186e-05 2.164065260635458e-05 - 2.142311199522572e-05 2.120721298028661e-05 2.099294714303281e-05 2.078030625998752e-05 2.056928220029127e-05 - 2.035986682231265e-05 2.015205183896797e-05 1.994582907956633e-05 1.974119073954575e-05 1.953812872162773e-05 - 1.933663479825456e-05 1.913670094979531e-05 1.893831919578259e-05 1.874148151575467e-05 1.854617976080873e-05 - 1.835240605058427e-05 1.816015268982217e-05 1.796941162992672e-05 1.778017486956627e-05 1.759243456762222e-05 - 1.740618289118282e-05 1.722141193137039e-05 1.703811372777776e-05 1.685628066375182e-05 1.667590509374455e-05 - 1.649697910104339e-05 1.631949489857415e-05 1.614344479286407e-05 1.596882111103627e-05 1.579561606259506e-05 - 1.562382191518076e-05 1.545343126338709e-05 1.528443649706141e-05 1.511682986511545e-05 1.495060379262073e-05 - 1.478575075387210e-05 1.462226320346460e-05 1.446013347627832e-05 1.429935410828208e-05 1.413991783947596e-05 - 1.398181711799591e-05 1.382504440087988e-05 1.366959229690567e-05 1.351545344207288e-05 1.336262041089977e-05 - 1.321108569966174e-05 1.306084210743495e-05 1.291188246012095e-05 1.276419932540445e-05 1.261778537439798e-05 - 1.247263337350260e-05 1.232873611168182e-05 1.218608628547451e-05 1.204467661277090e-05 1.190450010670460e-05 - 1.176554964839514e-05 1.162781797531038e-05 1.149129796332477e-05 1.135598253898601e-05 1.122186462622714e-05 - 1.108893706038782e-05 1.095719281332111e-05 1.082662505098182e-05 1.069722672643097e-05 1.056899077370047e-05 - 1.044191025341683e-05 1.031597825830204e-05 1.019118784797653e-05 1.006753201372614e-05 9.945003972957807e-06 - 9.823597003224701e-06 9.703304169766936e-06 9.584118614966616e-06 9.466033570975281e-06 9.349042284940899e-06 - 9.233137946012443e-06 9.118313747892748e-06 9.004563126071509e-06 8.891879438415634e-06 8.780255908737012e-06 - 8.669685879934477e-06 8.560162746518096e-06 8.451679906731882e-06 8.344230688978416e-06 8.237808513777729e-06 - 8.132406985376577e-06 8.028019552616531e-06 7.924639629701503e-06 7.822260741691212e-06 7.720876445763237e-06 - 7.620480284148957e-06 7.521065743540658e-06 7.422626477381218e-06 7.325156218634066e-06 7.228648532638821e-06 - 7.133097034958690e-06 7.038495423985100e-06 6.944837416133499e-06 6.852116691729515e-06 6.760326924607246e-06 - 6.669461983453847e-06 6.579515704432944e-06 6.490481806747385e-06 6.402354101863004e-06 6.315126452251840e-06 - 6.228792731669073e-06 6.143346764859859e-06 6.058782435540508e-06 5.975093791198315e-06 5.892274772590937e-06 - 5.810319279027480e-06 5.729221306547671e-06 5.648974882411472e-06 5.569574030477156e-06 5.491012732167998e-06 - 5.413285091010444e-06 5.336385298912571e-06 5.260307420244722e-06 5.185045547999291e-06 5.110593849728286e-06 - 5.036946516955677e-06 4.964097720721464e-06 4.892041619202182e-06 4.820772525961763e-06 4.750284753859853e-06 - 4.680572517390150e-06 4.611630102585562e-06 4.543451844884654e-06 4.476032095169469e-06 4.409365173309600e-06 - 4.343445435493855e-06 4.278267378107974e-06 4.213825432046252e-06 4.150113986510229e-06 4.087127510654963e-06 - 4.024860505544460e-06 3.963307478207591e-06 3.902462905546128e-06 3.842321351732513e-06 3.782877469285005e-06 - 3.724125818875267e-06 3.666060976275786e-06 3.608677584308628e-06 3.551970310325800e-06 3.495933813913828e-06 - 3.440562742860537e-06 3.385851865026623e-06 3.331795968547279e-06 3.278389763636986e-06 3.225628015585682e-06 - 3.173505536483180e-06 3.122017155106099e-06 3.071157684657154e-06 3.020921961442045e-06 2.971304937503200e-06 - 2.922301530764381e-06 2.873906622400171e-06 2.826115159163556e-06 2.778922119160790e-06 2.732322492500433e-06 - 2.686311250918327e-06 2.640883427466542e-06 2.596034137909800e-06 2.551758437600915e-06 2.508051388712647e-06 - 2.464908112415978e-06 2.422323753722291e-06 2.380293459852445e-06 2.338812372063220e-06 2.297875719562253e-06 - 2.257478763762930e-06 2.217616712073996e-06 2.178284811840686e-06 2.139478353112250e-06 2.101192645402220e-06 - 2.063422994293474e-06 2.026164721213360e-06 1.989413239181793e-06 1.953163950788084e-06 1.917412231009713e-06 - 1.882153506609316e-06 1.847383234461138e-06 1.813096887995954e-06 1.779289933937322e-06 1.745957881749227e-06 - 1.713096313387221e-06 1.680700776153704e-06 1.648766820412035e-06 1.617290047665242e-06 1.586266083282953e-06 - 1.555690561349229e-06 1.525559115412809e-06 1.495867444877275e-06 1.466611286844381e-06 1.437786342321971e-06 - 1.409388342689011e-06 1.381413059137875e-06 1.353856283643994e-06 1.326713811980504e-06 1.299981452903499e-06 - 1.273655087535907e-06 1.247730601634883e-06 1.222203862466376e-06 1.197070780161529e-06 1.172327293218336e-06 - 1.147969358200551e-06 1.123992934949297e-06 1.100394014305713e-06 1.077168647815731e-06 1.054312872343777e-06 - 1.031822727943270e-06 1.009694299029158e-06 9.879236928228051e-07 9.665070295488333e-07 9.454404356909418e-07 - 9.247200854784831e-07 9.043421911847067e-07 8.843029477247774e-07 8.645985728173436e-07 8.452253193362285e-07 - 8.261794626052351e-07 8.074572875932502e-07 7.890550921071068e-07 7.709692301619030e-07 7.531960701353248e-07 - 7.357319715620587e-07 7.185733287203112e-07 7.017165630618881e-07 6.851581162834306e-07 6.688944388625421e-07 - 6.529220052598067e-07 6.372373411274385e-07 6.218369717692920e-07 6.067174274527125e-07 5.918752755194360e-07 - 5.773071063798692e-07 5.630095271034721e-07 5.489791556312369e-07 5.352126455394792e-07 5.217066864180125e-07 - 5.084579644193884e-07 4.954631845887763e-07 4.827190834887087e-07 4.702224204045173e-07 4.579699684713550e-07 - 4.459585154334098e-07 4.341848919935187e-07 4.226459485782965e-07 4.113385363883691e-07 4.002595352312233e-07 - 3.894058504065020e-07 3.787744086301839e-07 3.683621500987016e-07 3.581660355932383e-07 3.481830676805770e-07 - 3.384102581524441e-07 3.288446273745833e-07 3.194832275224818e-07 3.103231330843525e-07 3.013614373207315e-07 - 2.925952486098954e-07 2.840217031010630e-07 2.756379695267500e-07 2.674412234106971e-07 2.594286576386206e-07 - 2.515974937029081e-07 2.439449754383926e-07 2.364683632309526e-07 2.291649345383248e-07 2.220320002407473e-07 - 2.150668931442167e-07 2.082669548865648e-07 2.016295514473211e-07 1.951520727682157e-07 1.888319311586693e-07 - 1.826665552837694e-07 1.766533931743509e-07 1.707899271779558e-07 1.650736547045015e-07 1.595020857916059e-07 - 1.540727581256184e-07 1.487832309302349e-07 1.436310837043274e-07 1.386139140291348e-07 1.337293426531939e-07 - 1.289750194034745e-07 1.243486077550924e-07 1.198477884856861e-07 1.154702687444825e-07 1.112137774078364e-07 - 1.070760615754017e-07 1.030548878714015e-07 9.914804983102429e-08 9.535336319532080e-08 9.166865877274502e-08 - 8.809178921148019e-08 8.462062987184363e-08 8.125307865123530e-08 7.798705169188094e-08 7.482048486743137e-08 - 7.175134265372113e-08 6.877760756933380e-08 6.589727849023001e-08 6.310837918621049e-08 6.040895419177239e-08 - 5.779706919084610e-08 5.527080986023133e-08 5.282828275733461e-08 5.046762055622123e-08 4.818697371034567e-08 - 4.598451068334482e-08 4.385842456607357e-08 4.180692971968811e-08 3.982825980405518e-08 3.792066966127786e-08 - 3.608243718277188e-08 3.431186206040581e-08 3.260726312426322e-08 3.096697968233847e-08 2.938937298745983e-08 - 2.787282684203093e-08 2.641574418968914e-08 2.501654849393015e-08 2.367368813134603e-08 2.238563078881267e-08 - 2.115086344400587e-08 1.996789606940446e-08 1.883525886916157e-08 1.775150390948272e-08 1.671520402936120e-08 - 1.572495208680648e-08 1.477936511938296e-08 1.387707990026544e-08 1.301675220490221e-08 1.219706138041649e-08 - 1.141670750179082e-08 1.067441065312196e-08 9.968913113355902e-09 9.298978133402818e-09 8.663390331238368e-09 - 8.060955677291694e-09 7.490500025975069e-09 6.950870854385858e-09 6.440937996309972e-09 5.959590797852082e-09 - 5.505739944416565e-09 5.078318901633865e-09 4.676280806472903e-09 4.298600029449081e-09 3.944272776496124e-09 - 3.612315204086912e-09 3.301765808464261e-09 3.011683971683484e-09 2.741149022073358e-09 2.489263438950313e-09 - 2.255150010734707e-09 2.037951439802415e-09 1.836833426869985e-09 1.650981924522248e-09 1.479603458288696e-09 - 1.321927088896133e-09 1.177201927023745e-09 1.044698361371603e-09 9.237089042804517e-10 8.135457713165132e-10 - 7.135428727606122e-10 6.230561233086797e-10 5.414610837010692e-10 4.681552957722881e-10 4.025579739718386e-10 - 3.441080911031397e-10 2.922668865200973e-10 2.465167169238545e-10 2.063598966733955e-10 1.713213823559041e-10 - 1.409467301732644e-10 1.148017117805301e-10 9.247489436372923e-11 7.357503403670199e-11 5.773147403071901e-11 - 4.459623415664643e-11 3.384125546419585e-11 2.515956035071991e-11 1.826656159304613e-11 1.289741553721677e-11 - 8.808852910154413e-12 5.779611749592996e-12 3.608107240050744e-12 2.114775563702074e-12 1.141629414770904e-12 - 5.504076981088132e-13 2.252028793998774e-13 7.135404618680312e-14 1.400208835054596e-14 2.858282411901289e-16 - 0.000000000000000e+00 3.280907692410757e+00 6.559093802140417e+00 9.834554467967374e+00 1.310728583537977e+01 - 1.637728405657552e+01 1.964454529046227e+01 2.290906570265743e+01 2.617084146548816e+01 2.942986875799139e+01 - 3.268614376591378e+01 3.593966268171175e+01 3.919042170455148e+01 4.243841704030890e+01 4.568364490156970e+01 - 4.892610150762930e+01 5.216578308449292e+01 5.540268586487547e+01 5.863680608820168e+01 6.186814000060598e+01 - 6.509668385493259e+01 6.832243391073550e+01 7.154538643427834e+01 7.476553769853463e+01 7.798288398318758e+01 - 8.119742157463018e+01 8.440914676596513e+01 8.761805585700493e+01 9.082414515427180e+01 9.402741097099775e+01 - 9.722784962712448e+01 1.004254574493035e+02 1.036202307708961e+02 1.068121659319733e+02 1.100012592793157e+02 - 1.131875071664140e+02 1.163709059534683e+02 1.195514520073887e+02 1.227291417017950e+02 1.259039714170167e+02 - 1.290759375400930e+02 1.322450364647731e+02 1.354112645915156e+02 1.385746183274891e+02 1.417350940865720e+02 - 1.448926882893522e+02 1.480473973631275e+02 1.511992177419055e+02 1.543481458664036e+02 1.574941781840487e+02 - 1.606373111489777e+02 1.637775412220371e+02 1.669148648707833e+02 1.700492785694823e+02 1.731807787991100e+02 - 1.763093620473519e+02 1.794350248086033e+02 1.825577635839695e+02 1.856775748812652e+02 1.887944552150149e+02 - 1.919084011064531e+02 1.950194090835239e+02 1.981274756808810e+02 2.012325974398883e+02 2.043347709086188e+02 - 2.074339926418558e+02 2.105302592010923e+02 2.136235671545306e+02 2.167139130770834e+02 2.198012935503726e+02 - 2.228857051627302e+02 2.259671445091978e+02 2.290456081915269e+02 2.321210928181784e+02 2.351935950043234e+02 - 2.382631113718425e+02 2.413296385493261e+02 2.443931731720744e+02 2.474537118820972e+02 2.505112513281143e+02 - 2.535657881655549e+02 2.566173190565586e+02 2.596658406699738e+02 2.627113496813596e+02 2.657538427729843e+02 - 2.687933166338259e+02 2.718297679595726e+02 2.748631934526219e+02 2.778935898220815e+02 2.809209537837683e+02 - 2.839452820602094e+02 2.869665713806416e+02 2.899848184810112e+02 2.930000201039745e+02 2.960121729988974e+02 - 2.990212739218558e+02 3.020273196356349e+02 3.050303069097302e+02 3.080302325203465e+02 3.110270932503987e+02 - 3.140208858895110e+02 3.170116072340180e+02 3.199992540869634e+02 3.229838232581013e+02 3.259653115638948e+02 - 3.289437158275174e+02 3.319190328788521e+02 3.348912595544916e+02 3.378603926977383e+02 3.408264291586049e+02 - 3.437893657938130e+02 3.467491994667945e+02 3.497059270476910e+02 3.526595454133537e+02 3.556100514473437e+02 - 3.585574420399318e+02 3.615017140880985e+02 3.644428644955341e+02 3.673808901726388e+02 3.703157880365222e+02 - 3.732475550110041e+02 3.761761880266134e+02 3.791016840205897e+02 3.820240399368814e+02 3.849432527261474e+02 - 3.878593193457557e+02 3.907722367597846e+02 3.936820019390219e+02 3.965886118609651e+02 3.994920635098217e+02 - 4.023923538765087e+02 4.052894799586530e+02 4.081834387605912e+02 4.110742272933696e+02 4.139618425747443e+02 - 4.168462816291812e+02 4.197275414878559e+02 4.226056191886540e+02 4.254805117761704e+02 4.283522163017099e+02 - 4.312207298232872e+02 4.340860494056267e+02 4.369481721201628e+02 4.398070950450389e+02 4.426628152651090e+02 - 4.455153298719365e+02 4.483646359637945e+02 4.512107306456656e+02 4.540536110292430e+02 4.568932742329288e+02 - 4.597297173818351e+02 4.625629376077841e+02 4.653929320493071e+02 4.682196978516460e+02 4.710432321667516e+02 - 4.738635321532851e+02 4.766805949766169e+02 4.794944178088276e+02 4.823049978287075e+02 4.851123322217564e+02 - 4.879164181801841e+02 4.907172529029099e+02 4.935148335955632e+02 4.963091574704831e+02 4.991002217467178e+02 - 5.018880236500261e+02 5.046725604128764e+02 5.074538292744463e+02 5.102318274806237e+02 5.130065522840063e+02 - 5.157780009439010e+02 5.185461707263250e+02 5.213110589040049e+02 5.240726627563774e+02 5.268309795695885e+02 - 5.295860066364945e+02 5.323377412566609e+02 5.350861807363634e+02 5.378313223885873e+02 5.405731635330272e+02 - 5.433117014960885e+02 5.460469336108854e+02 5.487788572172420e+02 5.515074696616928e+02 5.542327682974811e+02 - 5.569547504845609e+02 5.596734135895950e+02 5.623887549859570e+02 5.651007720537292e+02 5.678094621797045e+02 - 5.705148227573850e+02 5.732168511869830e+02 5.759155448754203e+02 5.786109012363282e+02 5.813029176900482e+02 - 5.839915916636313e+02 5.866769205908384e+02 5.893589019121401e+02 5.920375330747167e+02 5.947128115324583e+02 - 5.973847347459648e+02 6.000533001825459e+02 6.027185053162206e+02 6.053803476277183e+02 6.080388246044777e+02 - 6.106939337406476e+02 6.133456725370861e+02 6.159940385013617e+02 6.186390291477520e+02 6.212806419972447e+02 - 6.239188745775372e+02 6.265537244230364e+02 6.291851890748597e+02 6.318132660808333e+02 6.344379529954938e+02 - 6.370592473800871e+02 6.396771468025696e+02 6.422916488376064e+02 6.449027510665734e+02 6.475104510775553e+02 - 6.501147464653474e+02 6.527156348314542e+02 6.553131137840901e+02 6.579071809381794e+02 6.604978339153558e+02 - 6.630850703439634e+02 6.656688878590552e+02 6.682492841023947e+02 6.708262567224546e+02 6.733998033744177e+02 - 6.759699217201766e+02 6.785366094283333e+02 6.810998641742000e+02 6.836596836397980e+02 6.862160655138592e+02 - 6.887690074918247e+02 6.913185072758453e+02 6.938645625747821e+02 6.964071711042051e+02 6.989463305863949e+02 - 7.014820387503412e+02 7.040142933317441e+02 7.065430920730126e+02 7.090684327232666e+02 7.115903130383348e+02 - 7.141087307807558e+02 7.166236837197782e+02 7.191351696313601e+02 7.216431862981700e+02 7.241477315095852e+02 - 7.266488030616937e+02 7.291463987572921e+02 7.316405164058881e+02 7.341311538236981e+02 7.366183088336488e+02 - 7.391019792653765e+02 7.415821629552270e+02 7.440588577462564e+02 7.465320614882301e+02 7.490017720376235e+02 - 7.514679872576214e+02 7.539307050181191e+02 7.563899231957208e+02 7.588456396737411e+02 7.612978523422037e+02 - 7.637465590978424e+02 7.661917578441014e+02 7.686334464911333e+02 7.710716229558018e+02 7.735062851616793e+02 - 7.759374310390485e+02 7.783650585249019e+02 7.807891655629417e+02 7.832097501035795e+02 7.856268101039369e+02 - 7.880403435278453e+02 7.904503483458460e+02 7.928568225351897e+02 7.952597640798369e+02 7.976591709704585e+02 - 8.000550412044341e+02 8.024473727858536e+02 8.048361637255169e+02 8.072214120409334e+02 8.096031157563222e+02 - 8.119812729026120e+02 8.143558815174417e+02 8.167269396451593e+02 8.190944453368236e+02 8.214583966502021e+02 - 8.238187916497725e+02 8.261756284067224e+02 8.285289049989487e+02 8.308786195110586e+02 8.332247700343684e+02 - 8.355673546669050e+02 8.379063715134042e+02 8.402418186853124e+02 8.425736943007848e+02 8.449019964846872e+02 - 8.472267233685945e+02 8.495478730907921e+02 8.518654437962743e+02 8.541794336367457e+02 8.564898407706205e+02 - 8.587966633630226e+02 8.610998995857861e+02 8.633995476174539e+02 8.656956056432798e+02 8.679880718552264e+02 - 8.702769444519665e+02 8.725622216388828e+02 8.748439016280670e+02 8.771219826383219e+02 8.793964628951586e+02 - 8.816673406307990e+02 8.839346140841741e+02 8.861982815009252e+02 8.884583411334027e+02 8.907147912406675e+02 - 8.929676300884897e+02 8.952168559493493e+02 8.974624671024361e+02 8.997044618336495e+02 9.019428384355992e+02 - 9.041775952076036e+02 9.064087304556922e+02 9.086362424926032e+02 9.108601296377846e+02 9.130803902173951e+02 - 9.152970225643020e+02 9.175100250180832e+02 9.197193959250255e+02 9.219251336381268e+02 9.241272365170935e+02 - 9.263257029283417e+02 9.285205312449986e+02 9.307117198468995e+02 9.328992671205907e+02 9.350831714593277e+02 - 9.372634312630761e+02 9.394400449385104e+02 9.416130108990160e+02 9.437823275646871e+02 9.459479933623287e+02 - 9.481100067254541e+02 9.502683660942876e+02 9.524230699157629e+02 9.545741166435229e+02 9.567215047379214e+02 - 9.588652326660207e+02 9.610052989015940e+02 9.631417019251231e+02 9.652744402238004e+02 9.674035122915279e+02 - 9.695289166289172e+02 9.716506517432896e+02 9.737687161486764e+02 9.758831083658184e+02 9.779938269221661e+02 - 9.801008703518804e+02 9.822042371958310e+02 9.843039260015983e+02 9.863999353234714e+02 9.884922637224498e+02 - 9.905809097662435e+02 9.926658720292703e+02 9.947471490926598e+02 9.968247395442500e+02 9.988986419785891e+02 - 1.000968854996935e+03 1.003035377207256e+03 1.005098207224229e+03 1.007157343669241e+03 1.009212785170389e+03 - 1.011264530362480e+03 1.013312577887031e+03 1.015356926392268e+03 1.017397574533126e+03 1.019434520971252e+03 - 1.021467764375000e+03 1.023497303419437e+03 1.025523136786337e+03 1.027545263164185e+03 1.029563681248175e+03 - 1.031578389740212e+03 1.033589387348909e+03 1.035596672789591e+03 1.037600244784291e+03 1.039600102061752e+03 - 1.041596243357428e+03 1.043588667413480e+03 1.045577372978782e+03 1.047562358808916e+03 1.049543623666173e+03 - 1.051521166319557e+03 1.053494985544777e+03 1.055465080124256e+03 1.057431448847125e+03 1.059394090509224e+03 - 1.061353003913104e+03 1.063308187868025e+03 1.065259641189957e+03 1.067207362701581e+03 1.069151351232285e+03 - 1.071091605618170e+03 1.073028124702043e+03 1.074960907333424e+03 1.076889952368542e+03 1.078815258670335e+03 - 1.080736825108451e+03 1.082654650559248e+03 1.084568733905793e+03 1.086479074037864e+03 1.088385669851947e+03 - 1.090288520251241e+03 1.092187624145651e+03 1.094082980451794e+03 1.095974588092995e+03 1.097862445999292e+03 - 1.099746553107428e+03 1.101626908360861e+03 1.103503510709754e+03 1.105376359110983e+03 1.107245452528133e+03 - 1.109110789931497e+03 1.110972370298081e+03 1.112830192611597e+03 1.114684255862470e+03 1.116534559047833e+03 - 1.118381101171529e+03 1.120223881244111e+03 1.122062898282842e+03 1.123898151311694e+03 1.125729639361349e+03 - 1.127557361469200e+03 1.129381316679347e+03 1.131201504042604e+03 1.133017922616489e+03 1.134830571465235e+03 - 1.136639449659783e+03 1.138444556277782e+03 1.140245890403593e+03 1.142043451128286e+03 1.143837237549640e+03 - 1.145627248772146e+03 1.147413483907002e+03 1.149195942072117e+03 1.150974622392110e+03 1.152749523998310e+03 - 1.154520646028755e+03 1.156287987628192e+03 1.158051547948079e+03 1.159811326146585e+03 1.161567321388586e+03 - 1.163319532845669e+03 1.165067959696131e+03 1.166812601124979e+03 1.168553456323928e+03 1.170290524491405e+03 - 1.172023804832545e+03 1.173753296559195e+03 1.175478998889909e+03 1.177200911049953e+03 1.178919032271301e+03 - 1.180633361792637e+03 1.182343898859357e+03 1.184050642723563e+03 1.185753592644071e+03 1.187452747886402e+03 - 1.189148107722792e+03 1.190839671432183e+03 1.192527438300227e+03 1.194211407619287e+03 1.195891578688435e+03 - 1.197567950813455e+03 1.199240523306837e+03 1.200909295487783e+03 1.202574266682204e+03 1.204235436222721e+03 - 1.205892803448666e+03 1.207546367706079e+03 1.209196128347710e+03 1.210842084733019e+03 1.212484236228177e+03 - 1.214122582206062e+03 1.215757122046265e+03 1.217387855135084e+03 1.219014780865528e+03 1.220637898637316e+03 - 1.222257207856876e+03 1.223872707937346e+03 1.225484398298575e+03 1.227092278367119e+03 1.228696347576247e+03 - 1.230296605365935e+03 1.231893051182870e+03 1.233485684480449e+03 1.235074504718779e+03 1.236659511364675e+03 - 1.238240703891664e+03 1.239818081779981e+03 1.241391644516571e+03 1.242961391595090e+03 1.244527322515903e+03 - 1.246089436786084e+03 1.247647733919417e+03 1.249202213436398e+03 1.250752874864230e+03 1.252299717736826e+03 - 1.253842741594810e+03 1.255381945985516e+03 1.256917330462986e+03 1.258448894587972e+03 1.259976637927938e+03 - 1.261500560057056e+03 1.263020660556207e+03 1.264536939012984e+03 1.266049395021687e+03 1.267558028183329e+03 - 1.269062838105629e+03 1.270563824403019e+03 1.272060986696640e+03 1.273554324614341e+03 1.275043837790682e+03 - 1.276529525866934e+03 1.278011388491075e+03 1.279489425317796e+03 1.280963636008494e+03 1.282434020231280e+03 - 1.283900577660971e+03 1.285363307979095e+03 1.286822210873891e+03 1.288277286040307e+03 1.289728533179999e+03 - 1.291175952001336e+03 1.292619542219393e+03 1.294059303555960e+03 1.295495235739530e+03 1.296927338505312e+03 - 1.298355611595221e+03 1.299780054757883e+03 1.301200667748633e+03 1.302617450329516e+03 1.304030402269289e+03 - 1.305439523343415e+03 1.306844813334069e+03 1.308246272030136e+03 1.309643899227210e+03 1.311037694727594e+03 - 1.312427658340302e+03 1.313813789881058e+03 1.315196089172293e+03 1.316574556043153e+03 1.317949190329488e+03 - 1.319319991873862e+03 1.320686960525546e+03 1.322050096140523e+03 1.323409398581483e+03 1.324764867717829e+03 - 1.326116503425671e+03 1.327464305587830e+03 1.328808274093838e+03 1.330148408839934e+03 1.331484709729068e+03 - 1.332817176670901e+03 1.334145809581802e+03 1.335470608384850e+03 1.336791573009835e+03 1.338108703393256e+03 - 1.339421999478320e+03 1.340731461214948e+03 1.342037088559766e+03 1.343338881476113e+03 1.344636839934036e+03 - 1.345930963910293e+03 1.347221253388351e+03 1.348507708358388e+03 1.349790328817288e+03 1.351069114768650e+03 - 1.352344066222779e+03 1.353615183196692e+03 1.354882465714113e+03 1.356145913805479e+03 1.357405527507935e+03 - 1.358661306865335e+03 1.359913251928245e+03 1.361161362753938e+03 1.362405639406399e+03 1.363646081956323e+03 - 1.364882690481112e+03 1.366115465064880e+03 1.367344405798451e+03 1.368569512779358e+03 1.369790786111843e+03 - 1.371008225906858e+03 1.372221832282067e+03 1.373431605361840e+03 1.374637545277261e+03 1.375839652166119e+03 - 1.377037926172918e+03 1.378232367448867e+03 1.379422976151887e+03 1.380609752446609e+03 1.381792696504374e+03 - 1.382971808503231e+03 1.384147088627939e+03 1.385318537069970e+03 1.386486154027501e+03 1.387649939705423e+03 - 1.388809894315333e+03 1.389966018075540e+03 1.391118311211063e+03 1.392266773953630e+03 1.393411406541678e+03 - 1.394552209220356e+03 1.395689182241520e+03 1.396822325863737e+03 1.397951640352285e+03 1.399077125979150e+03 - 1.400198783023028e+03 1.401316611769325e+03 1.402430612510158e+03 1.403540785544351e+03 1.404647131177441e+03 - 1.405749649721672e+03 1.406848341496000e+03 1.407943206826088e+03 1.409034246044311e+03 1.410121459489754e+03 - 1.411204847508209e+03 1.412284410452182e+03 1.413360148680885e+03 1.414432062560241e+03 1.415500152462884e+03 - 1.416564418768155e+03 1.417624861862108e+03 1.418681482137504e+03 1.419734279993815e+03 1.420783255837224e+03 - 1.421828410080621e+03 1.422869743143608e+03 1.423907255452495e+03 1.424940947440303e+03 1.425970819546763e+03 - 1.426996872218314e+03 1.428019105908108e+03 1.429037521076003e+03 1.430052118188569e+03 1.431062897719085e+03 - 1.432069860147540e+03 1.433073005960632e+03 1.434072335651771e+03 1.435067849721075e+03 1.436059548675370e+03 - 1.437047433028196e+03 1.438031503299800e+03 1.439011760017138e+03 1.439988203713878e+03 1.440960834930396e+03 - 1.441929654213780e+03 1.442894662117825e+03 1.443855859203037e+03 1.444813246036631e+03 1.445766823192535e+03 - 1.446716591251382e+03 1.447662550800518e+03 1.448604702433997e+03 1.449543046752585e+03 1.450477584363755e+03 - 1.451408315881691e+03 1.452335241927287e+03 1.453258363128147e+03 1.454177680118583e+03 1.455093193539620e+03 - 1.456004904038989e+03 1.456912812271134e+03 1.457816918897206e+03 1.458717224585068e+03 1.459613730009291e+03 - 1.460506435851157e+03 1.461395342798658e+03 1.462280451546494e+03 1.463161762796076e+03 1.464039277255525e+03 - 1.464912995639670e+03 1.465782918670054e+03 1.466649047074924e+03 1.467511381589240e+03 1.468369922954673e+03 - 1.469224671919600e+03 1.470075629239112e+03 1.470922795675006e+03 1.471766171995790e+03 1.472605758976684e+03 - 1.473441557399614e+03 1.474273568053219e+03 1.475101791732846e+03 1.475926229240551e+03 1.476746881385102e+03 - 1.477563748981976e+03 1.478376832853358e+03 1.479186133828146e+03 1.479991652741944e+03 1.480793390437068e+03 - 1.481591347762545e+03 1.482385525574108e+03 1.483175924734204e+03 1.483962546111986e+03 1.484745390583318e+03 - 1.485524459030776e+03 1.486299752343644e+03 1.487071271417914e+03 1.487839017156289e+03 1.488602990468185e+03 - 1.489363192269722e+03 1.490119623483735e+03 1.490872285039765e+03 1.491621177874064e+03 1.492366302929595e+03 - 1.493107661156030e+03 1.493845253509749e+03 1.494579080953843e+03 1.495309144458115e+03 1.496035444999074e+03 - 1.496757983559942e+03 1.497476761130647e+03 1.498191778707831e+03 1.498903037294843e+03 1.499610537901742e+03 - 1.500314281545298e+03 1.501014269248990e+03 1.501710502043006e+03 1.502402980964245e+03 1.503091707056315e+03 - 1.503776681369534e+03 1.504457904960931e+03 1.505135378894241e+03 1.505809104239914e+03 1.506479082075105e+03 - 1.507145313483682e+03 1.507807799556220e+03 1.508466541390007e+03 1.509121540089038e+03 1.509772796764020e+03 - 1.510420312532367e+03 1.511064088518205e+03 1.511704125852369e+03 1.512340425672404e+03 1.512972989122564e+03 - 1.513601817353814e+03 1.514226911523828e+03 1.514848272796989e+03 1.515465902344391e+03 1.516079801343838e+03 - 1.516689970979842e+03 1.517296412443626e+03 1.517899126933124e+03 1.518498115652977e+03 1.519093379814537e+03 - 1.519684920635866e+03 1.520272739341736e+03 1.520856837163628e+03 1.521437215339733e+03 1.522013875114953e+03 - 1.522586817740897e+03 1.523156044475887e+03 1.523721556584951e+03 1.524283355339831e+03 1.524841442018975e+03 - 1.525395817907543e+03 1.525946484297405e+03 1.526493442487138e+03 1.527036693782033e+03 1.527576239494086e+03 - 1.528112080942007e+03 1.528644219451213e+03 1.529172656353831e+03 1.529697392988700e+03 1.530218430701367e+03 - 1.530735770844087e+03 1.531249414775829e+03 1.531759363862268e+03 1.532265619475790e+03 1.532768182995492e+03 - 1.533267055807180e+03 1.533762239303368e+03 1.534253734883281e+03 1.534741543952856e+03 1.535225667924735e+03 - 1.535706108218275e+03 1.536182866259539e+03 1.536655943481301e+03 1.537125341323045e+03 1.537591061230964e+03 - 1.538053104657961e+03 1.538511473063650e+03 1.538966167914353e+03 1.539417190683102e+03 1.539864542849641e+03 - 1.540308225900420e+03 1.540748241328602e+03 1.541184590634058e+03 1.541617275323370e+03 1.542046296909827e+03 - 1.542471656913432e+03 1.542893356860894e+03 1.543311398285634e+03 1.543725782727782e+03 1.544136511734178e+03 - 1.544543586858370e+03 1.544947009660620e+03 1.545346781707894e+03 1.545742904573873e+03 1.546135379838945e+03 - 1.546524209090207e+03 1.546909393921469e+03 1.547290935933248e+03 1.547668836732771e+03 1.548043097933976e+03 - 1.548413721157510e+03 1.548780708030729e+03 1.549144060187701e+03 1.549503779269201e+03 1.549859866922715e+03 - 1.550212324802440e+03 1.550561154569281e+03 1.550906357890854e+03 1.551247936441483e+03 1.551585891902203e+03 - 1.551920225960758e+03 1.552250940311604e+03 1.552578036655905e+03 1.552901516701533e+03 1.553221382163073e+03 - 1.553537634761818e+03 1.553850276225772e+03 1.554159308289647e+03 1.554464732694865e+03 1.554766551189559e+03 - 1.555064765528572e+03 1.555359377473454e+03 1.555650388792468e+03 1.555937801260586e+03 1.556221616659488e+03 - 1.556501836777564e+03 1.556778463409917e+03 1.557051498358356e+03 1.557320943431401e+03 1.557586800444283e+03 - 1.557849071218940e+03 1.558107757584023e+03 1.558362861374890e+03 1.558614384433611e+03 1.558862328608964e+03 - 1.559106695756438e+03 1.559347487738230e+03 1.559584706423249e+03 1.559818353687112e+03 1.560048431412147e+03 - 1.560274941487391e+03 1.560497885808591e+03 1.560717266278204e+03 1.560933084805396e+03 1.561145343306044e+03 - 1.561354043702732e+03 1.561559187924758e+03 1.561760777908126e+03 1.561958815595552e+03 1.562153302936461e+03 - 1.562344241886987e+03 1.562531634409975e+03 1.562715482474979e+03 1.562895788058264e+03 1.563072553142803e+03 - 1.563245779718279e+03 1.563415469781085e+03 1.563581625334326e+03 1.563744248387813e+03 1.563903340958068e+03 - 1.564058905068325e+03 1.564210942748526e+03 1.564359456035321e+03 1.564504446972073e+03 1.564645917608853e+03 - 1.564783870002442e+03 1.564918306216331e+03 1.565049228320720e+03 1.565176638392519e+03 1.565300538515349e+03 - 1.565420930779540e+03 1.565537817282130e+03 1.565651200126870e+03 1.565761081424219e+03 1.565867463291344e+03 - 1.565970347852125e+03 1.566069737237150e+03 1.566165633583717e+03 1.566258039035835e+03 1.566346955744220e+03 - 1.566432385866300e+03 1.566514331566212e+03 1.566592795014803e+03 1.566667778389629e+03 1.566739283874957e+03 - 1.566807313661764e+03 1.566871869947734e+03 1.566932954937263e+03 1.566990570841457e+03 1.567044719878131e+03 - 1.567095404271811e+03 1.567142626253729e+03 1.567186388061831e+03 1.567226691940771e+03 1.567263540141913e+03 - 1.567296934923331e+03 1.567326878549808e+03 1.567353373292836e+03 1.567376421430620e+03 1.567396025248071e+03 - 1.567412187036812e+03 1.567424909095176e+03 1.567434193728203e+03 1.567440043247646e+03 1.567442459971967e+03 - 1.567441446226336e+03 1.567437004342634e+03 1.567429136659453e+03 1.567417845522091e+03 1.567403133282561e+03 - 1.567385002299581e+03 1.567363454938582e+03 1.567338493571702e+03 1.567310120577791e+03 1.567278338342408e+03 - 1.567243149257822e+03 1.567204555723011e+03 1.567162560143663e+03 1.567117164932177e+03 1.567068372507660e+03 - 1.567016185295929e+03 1.566960605729512e+03 1.566901636247646e+03 1.566839279296277e+03 1.566773537328063e+03 - 1.566704412802369e+03 1.566631908185271e+03 1.566556025949555e+03 1.566476768574717e+03 1.566394138546961e+03 - 1.566308138359204e+03 1.566218770511069e+03 1.566126037508891e+03 1.566029941865714e+03 1.565930486101294e+03 - 1.565827672742092e+03 1.565721504321283e+03 1.565611983378751e+03 1.565499112461087e+03 1.565382894121595e+03 - 1.565263330920288e+03 1.565140425423888e+03 1.565014180205826e+03 1.564884597846246e+03 1.564751680931997e+03 - 1.564615432056643e+03 1.564475853820452e+03 1.564332948830408e+03 1.564186719700199e+03 1.564037169050227e+03 - 1.563884299507601e+03 1.563728113706142e+03 1.563568614286379e+03 1.563405803895550e+03 1.563239685187607e+03 - 1.563070260823207e+03 1.562897533469719e+03 1.562721505801220e+03 1.562542180498501e+03 1.562359560249057e+03 - 1.562173647747097e+03 1.561984445693539e+03 1.561791956796009e+03 1.561596183768845e+03 1.561397129333092e+03 - 1.561194796216507e+03 1.560989187153558e+03 1.560780304885418e+03 1.560568152159974e+03 1.560352731731822e+03 - 1.560134046362267e+03 1.559912098819323e+03 1.559686891877715e+03 1.559458428318879e+03 1.559226710930956e+03 - 1.558991742508803e+03 1.558753525853981e+03 1.558512063774766e+03 1.558267359086140e+03 1.558019414609795e+03 - 1.557768233174136e+03 1.557513817614273e+03 1.557256170772030e+03 1.556995295495938e+03 1.556731194641239e+03 - 1.556463871069885e+03 1.556193327650536e+03 1.555919567258564e+03 1.555642592776049e+03 1.555362407091783e+03 - 1.555079013101264e+03 1.554792413706704e+03 1.554502611817021e+03 1.554209610347846e+03 1.553913412221517e+03 - 1.553614020367084e+03 1.553311437720305e+03 1.553005667223649e+03 1.552696711826295e+03 1.552384574484129e+03 - 1.552069258159750e+03 1.551750765822466e+03 1.551429100448294e+03 1.551104265019960e+03 1.550776262526902e+03 - 1.550445095965265e+03 1.550110768337907e+03 1.549773282654394e+03 1.549432641931000e+03 1.549088849190713e+03 - 1.548741907463227e+03 1.548391819784946e+03 1.548038589198987e+03 1.547682218755173e+03 1.547322711510039e+03 - 1.546960070526829e+03 1.546594298875496e+03 1.546225399632705e+03 1.545853375881829e+03 1.545478230712950e+03 - 1.545099967222861e+03 1.544718588515066e+03 1.544334097699777e+03 1.543946497893915e+03 1.543555792221112e+03 - 1.543161983811711e+03 1.542765075802762e+03 1.542365071338026e+03 1.541961973567975e+03 1.541555785649789e+03 - 1.541146510747358e+03 1.540734152031283e+03 1.540318712678874e+03 1.539900195874149e+03 1.539478604807839e+03 - 1.539053942677383e+03 1.538626212686929e+03 1.538195418047336e+03 1.537761561976173e+03 1.537324647697717e+03 - 1.536884678442957e+03 1.536441657449592e+03 1.535995587962026e+03 1.535546473231378e+03 1.535094316515475e+03 - 1.534639121078853e+03 1.534180890192759e+03 1.533719627135150e+03 1.533255335190690e+03 1.532788017650757e+03 - 1.532317677813435e+03 1.531844318983518e+03 1.531367944472514e+03 1.530888557598635e+03 1.530406161686807e+03 - 1.529920760068664e+03 1.529432356082550e+03 1.528940953073517e+03 1.528446554393331e+03 1.527949163400464e+03 - 1.527448783460099e+03 1.526945417944129e+03 1.526439070231157e+03 1.525929743706494e+03 1.525417441762163e+03 - 1.524902167796895e+03 1.524383925216131e+03 1.523862717432025e+03 1.523338547863434e+03 1.522811419935932e+03 - 1.522281337081799e+03 1.521748302740024e+03 1.521212320356308e+03 1.520673393383061e+03 1.520131525279401e+03 - 1.519586719511159e+03 1.519038979550873e+03 1.518488308877793e+03 1.517934710977876e+03 1.517378189343791e+03 - 1.516818747474916e+03 1.516256388877339e+03 1.515691117063858e+03 1.515122935553979e+03 1.514551847873920e+03 - 1.513977857556607e+03 1.513400968141679e+03 1.512821183175479e+03 1.512238506211065e+03 1.511652940808203e+03 - 1.511064490533368e+03 1.510473158959745e+03 1.509878949667230e+03 1.509281866242427e+03 1.508681912278651e+03 - 1.508079091375926e+03 1.507473407140987e+03 1.506864863187277e+03 1.506253463134950e+03 1.505639210610869e+03 - 1.505022109248608e+03 1.504402162688449e+03 1.503779374577385e+03 1.503153748569118e+03 1.502525288324061e+03 - 1.501893997509335e+03 1.501259879798773e+03 1.500622938872914e+03 1.499983178419011e+03 1.499340602131025e+03 - 1.498695213709626e+03 1.498047016862194e+03 1.497396015302820e+03 1.496742212752304e+03 1.496085612938155e+03 - 1.495426219594593e+03 1.494764036462547e+03 1.494099067289655e+03 1.493431315830267e+03 1.492760785845442e+03 - 1.492087481102946e+03 1.491411405377259e+03 1.490732562449567e+03 1.490050956107769e+03 1.489366590146471e+03 - 1.488679468366991e+03 1.487989594577355e+03 1.487296972592300e+03 1.486601606233272e+03 1.485903499328426e+03 - 1.485202655712629e+03 1.484499079227457e+03 1.483792773721193e+03 1.483083743048834e+03 1.482371991072084e+03 - 1.481657521659358e+03 1.480940338685780e+03 1.480220446033183e+03 1.479497847590113e+03 1.478772547251821e+03 - 1.478044548920272e+03 1.477313856504138e+03 1.476580473918802e+03 1.475844405086357e+03 1.475105653935605e+03 - 1.474364224402058e+03 1.473620120427938e+03 1.472873345962177e+03 1.472123904960415e+03 1.471371801385004e+03 - 1.470617039205005e+03 1.469859622396187e+03 1.469099554941032e+03 1.468336840828730e+03 1.467571484055180e+03 - 1.466803488622991e+03 1.466032858541484e+03 1.465259597826687e+03 1.464483710501340e+03 1.463705200594890e+03 - 1.462924072143496e+03 1.462140329190026e+03 1.461353975784058e+03 1.460565015981880e+03 1.459773453846489e+03 - 1.458979293447591e+03 1.458182538861605e+03 1.457383194171656e+03 1.456581263467582e+03 1.455776750845927e+03 - 1.454969660409948e+03 1.454159996269611e+03 1.453347762541590e+03 1.452532963349272e+03 1.451715602822750e+03 - 1.450895685098830e+03 1.450073214321026e+03 1.449248194639563e+03 1.448420630211373e+03 1.447590525200101e+03 - 1.446757883776100e+03 1.445922710116434e+03 1.445085008404874e+03 1.444244782831905e+03 1.443402037594718e+03 - 1.442556776897215e+03 1.441709004950008e+03 1.440858725970420e+03 1.440005944182481e+03 1.439150663816933e+03 - 1.438292889111226e+03 1.437432624309523e+03 1.436569873662692e+03 1.435704641428314e+03 1.434836931870678e+03 - 1.433966749260786e+03 1.433094097876346e+03 1.432218982001777e+03 1.431341405928208e+03 1.430461373953479e+03 - 1.429578890382137e+03 1.428693959525441e+03 1.427806585701360e+03 1.426916773234569e+03 1.426024526456458e+03 - 1.425129849705122e+03 1.424232747325370e+03 1.423333223668719e+03 1.422431283093393e+03 1.421526929964331e+03 - 1.420620168653178e+03 1.419711003538289e+03 1.418799439004731e+03 1.417885479444278e+03 1.416969129255415e+03 - 1.416050392843337e+03 1.415129274619950e+03 1.414205779003866e+03 1.413279910420411e+03 1.412351673301618e+03 - 1.411421072086230e+03 1.410488111219700e+03 1.409552795154193e+03 1.408615128348581e+03 1.407675115268446e+03 - 1.406732760386080e+03 1.405788068180486e+03 1.404841043137375e+03 1.403891689749170e+03 1.402940012515001e+03 - 1.401986015940709e+03 1.401029704538846e+03 1.400071082828672e+03 1.399110155336157e+03 1.398146926593981e+03 - 1.397181401141535e+03 1.396213583524918e+03 1.395243478296938e+03 1.394271090017116e+03 1.393296423251680e+03 - 1.392319482573570e+03 1.391340272562432e+03 1.390358797804626e+03 1.389375062893219e+03 1.388389072427989e+03 - 1.387400831015423e+03 1.386410343268718e+03 1.385417613807782e+03 1.384422647259231e+03 1.383425448256391e+03 - 1.382426021439299e+03 1.381424371454700e+03 1.380420502956051e+03 1.379414420603515e+03 1.378406129063970e+03 - 1.377395633010999e+03 1.376382937124898e+03 1.375368046092671e+03 1.374350964608031e+03 1.373331697371403e+03 - 1.372310249089921e+03 1.371286624477428e+03 1.370260828254477e+03 1.369232865148331e+03 1.368202739892964e+03 - 1.367170457229056e+03 1.366136021904002e+03 1.365099438671902e+03 1.364060712293568e+03 1.363019847536522e+03 - 1.361976849174995e+03 1.360931721989928e+03 1.359884470768972e+03 1.358835100306487e+03 1.357783615403544e+03 - 1.356730020867921e+03 1.355674321514110e+03 1.354616522163310e+03 1.353556627643430e+03 1.352494642789090e+03 - 1.351430572441617e+03 1.350364421449050e+03 1.349296194666138e+03 1.348225896954338e+03 1.347153533181818e+03 - 1.346079108223457e+03 1.345002626960841e+03 1.343924094282267e+03 1.342843515082743e+03 1.341760894263984e+03 - 1.340676236734416e+03 1.339589547409177e+03 1.338500831210112e+03 1.337410093065776e+03 1.336317337911434e+03 - 1.335222570689062e+03 1.334125796347346e+03 1.333027019841677e+03 1.331926246134163e+03 1.330823480193616e+03 - 1.329718726995561e+03 1.328611991522230e+03 1.327503278762568e+03 1.326392593712228e+03 1.325279941373571e+03 - 1.324165326755672e+03 1.323048754874311e+03 1.321930230751983e+03 1.320809759417887e+03 1.319687345907936e+03 - 1.318562995264752e+03 1.317436712537665e+03 1.316308502782716e+03 1.315178371062656e+03 1.314046322446946e+03 - 1.312912362011755e+03 1.311776494839963e+03 1.310638726021160e+03 1.309499060651645e+03 1.308357503834428e+03 - 1.307214060679228e+03 1.306068736302473e+03 1.304921535827301e+03 1.303772464383560e+03 1.302621527107810e+03 - 1.301468729143317e+03 1.300314075640058e+03 1.299157571754721e+03 1.297999222650704e+03 1.296839033498112e+03 - 1.295677009473761e+03 1.294513155761180e+03 1.293347477550602e+03 1.292179980038974e+03 1.291010668429951e+03 - 1.289839547933899e+03 1.288666623767893e+03 1.287491901155716e+03 1.286315385327865e+03 1.285137081521542e+03 - 1.283956994980662e+03 1.282775130955849e+03 1.281591494704436e+03 1.280406091490466e+03 1.279218926584693e+03 - 1.278030005264579e+03 1.276839332814297e+03 1.275646914524728e+03 1.274452755693465e+03 1.273256861624810e+03 - 1.272059237629775e+03 1.270859889026079e+03 1.269658821138155e+03 1.268456039297144e+03 1.267251548840895e+03 - 1.266045355113969e+03 1.264837463467636e+03 1.263627879259876e+03 1.262416607855379e+03 1.261203654625543e+03 - 1.259989024948479e+03 1.258772724209004e+03 1.257554757798647e+03 1.256335131115646e+03 1.255113849564950e+03 - 1.253890918558217e+03 1.252666343513813e+03 1.251440129856817e+03 1.250212283019015e+03 1.248982808438904e+03 - 1.247751711561691e+03 1.246518997839292e+03 1.245284672730334e+03 1.244048741700151e+03 1.242811210220790e+03 - 1.241572083771006e+03 1.240331367836264e+03 1.239089067908740e+03 1.237845189487317e+03 1.236599738077590e+03 - 1.235352719191863e+03 1.234104138349150e+03 1.232854001075175e+03 1.231602312902370e+03 1.230349079369880e+03 - 1.229094306023557e+03 1.227837998415964e+03 1.226580162106373e+03 1.225320802660766e+03 1.224059925651835e+03 - 1.222797536658982e+03 1.221533641268318e+03 1.220268245072664e+03 1.219001353671552e+03 1.217732972671222e+03 - 1.216463107684624e+03 1.215191764331420e+03 1.213918948237977e+03 1.212644665037377e+03 1.211368920369408e+03 - 1.210091719880570e+03 1.208813069224072e+03 1.207532974059833e+03 1.206251440054480e+03 1.204968472881353e+03 - 1.203684078220499e+03 1.202398261758676e+03 1.201111029189351e+03 1.199822386212701e+03 1.198532338535615e+03 - 1.197240891871687e+03 1.195948051941225e+03 1.194653824471246e+03 1.193358215195474e+03 1.192061229854346e+03 - 1.190762874195007e+03 1.189463153971313e+03 1.188162074943828e+03 1.186859642879827e+03 1.185555863553295e+03 - 1.184250742744927e+03 1.182944286242125e+03 1.181636499839004e+03 1.180327389336388e+03 1.179016960541809e+03 - 1.177705219269511e+03 1.176392171340446e+03 1.175077822582277e+03 1.173762178829377e+03 1.172445245922827e+03 - 1.171127029710419e+03 1.169807536046655e+03 1.168486770792745e+03 1.167164739816612e+03 1.165841448992886e+03 - 1.164516904202907e+03 1.163191111334726e+03 1.161864076283103e+03 1.160535804949508e+03 1.159206303242120e+03 - 1.157875577075829e+03 1.156543632372233e+03 1.155210475059642e+03 1.153876111073074e+03 1.152540546354257e+03 - 1.151203786851631e+03 1.149865838520342e+03 1.148526707322247e+03 1.147186399225916e+03 1.145844920206624e+03 - 1.144502276246358e+03 1.143158473333815e+03 1.141813517464402e+03 1.140467414640234e+03 1.139120170870139e+03 - 1.137771792169650e+03 1.136422284561014e+03 1.135071654073185e+03 1.133719906741829e+03 1.132367048609320e+03 - 1.131013085724743e+03 1.129658024143891e+03 1.128301869929270e+03 1.126944629150092e+03 1.125586307882280e+03 - 1.124226912208469e+03 1.122866448218001e+03 1.121504922006928e+03 1.120142339678013e+03 1.118778707340729e+03 - 1.117414031111256e+03 1.116048317112488e+03 1.114681571474025e+03 1.113313800332179e+03 1.111945009829970e+03 - 1.110575206117129e+03 1.109204395350097e+03 1.107832583692024e+03 1.106459777312770e+03 1.105085982388904e+03 - 1.103711205103706e+03 1.102335451647166e+03 1.100958728215983e+03 1.099581041013564e+03 1.098202396250028e+03 - 1.096822800142205e+03 1.095442258913632e+03 1.094060778794555e+03 1.092678366021934e+03 1.091295026839436e+03 - 1.089910767497437e+03 1.088525594253023e+03 1.087139513369993e+03 1.085752531118851e+03 1.084364653776815e+03 - 1.082975887627809e+03 1.081586238962469e+03 1.080195714078142e+03 1.078804319278880e+03 1.077412060875450e+03 - 1.076018945185327e+03 1.074624978532693e+03 1.073230167248444e+03 1.071834517670182e+03 1.070438036142223e+03 - 1.069040729015589e+03 1.067642602648012e+03 1.066243663403937e+03 1.064843917654515e+03 1.063443371777609e+03 - 1.062042032157791e+03 1.060639905186343e+03 1.059236997261256e+03 1.057833314787232e+03 1.056428864175682e+03 - 1.055023651844726e+03 1.053617684219196e+03 1.052210967730631e+03 1.050803508817282e+03 1.049395313897890e+03 - 1.047986388534756e+03 1.046576737255851e+03 1.045166364529164e+03 1.043755274824231e+03 1.042343472612131e+03 - 1.040930962365484e+03 1.039517748558457e+03 1.038103835666756e+03 1.036689228167636e+03 1.035273930539893e+03 - 1.033857947263865e+03 1.032441282821436e+03 1.031023941696033e+03 1.029605928372625e+03 1.028187247337727e+03 - 1.026767903079397e+03 1.025347900087235e+03 1.023927242852386e+03 1.022505935867538e+03 1.021083983626923e+03 - 1.019661390626317e+03 1.018238161363038e+03 1.016814300335948e+03 1.015389812045455e+03 1.013964700993507e+03 - 1.012538971683598e+03 1.011112628620765e+03 1.009685676311588e+03 1.008258119264191e+03 1.006829961988242e+03 - 1.005401208994952e+03 1.003971864797076e+03 1.002541933908912e+03 1.001111420846301e+03 9.996803301266303e+02 - 9.982486662688275e+02 9.968164337933661e+02 9.953836372222621e+02 9.939502810790750e+02 9.925163698889086e+02 - 9.910819081784098e+02 9.896469004757686e+02 9.882113513107199e+02 9.867752652145410e+02 9.853386467200531e+02 - 9.839015003616214e+02 9.824638306751541e+02 9.810256421981031e+02 9.795869394694643e+02 9.781477270297768e+02 - 9.767080094211232e+02 9.752677911871300e+02 9.738270768729670e+02 9.723858710253478e+02 9.709441781925295e+02 - 9.695020029243127e+02 9.680593497720415e+02 9.666162232886040e+02 9.651726280284314e+02 9.637285685474986e+02 - 9.622840494033246e+02 9.608390751549712e+02 9.593936503630440e+02 9.579477795896925e+02 9.565014673986094e+02 - 9.550547183550314e+02 9.536075370257383e+02 9.521599279790540e+02 9.507118957848456e+02 9.492634450145238e+02 - 9.478145802410424e+02 9.463653060389005e+02 9.449156269841388e+02 9.434655476543426e+02 9.420150726286407e+02 - 9.405642064877048e+02 9.391129538137513e+02 9.376613191905399e+02 9.362093072033728e+02 9.347569224390970e+02 - 9.333041694861028e+02 9.318510529343232e+02 9.303975773752362e+02 9.289437474018629e+02 9.274895676087672e+02 - 9.260350425920570e+02 9.245801769493847e+02 9.231249752799448e+02 9.216694421844763e+02 9.202135822652619e+02 - 9.187574001261273e+02 9.173009003724419e+02 9.158440876111187e+02 9.143869664506148e+02 9.129295415009306e+02 - 9.114718173736089e+02 9.100137986817383e+02 9.085554900399494e+02 9.070968960644165e+02 9.056380213728581e+02 - 9.041788705845360e+02 9.027194483202552e+02 9.012597592023648e+02 8.997998078547574e+02 8.983395989028686e+02 - 8.968791369736786e+02 8.954184266957105e+02 8.939574726990309e+02 8.924962796152502e+02 8.910348520775226e+02 - 8.895731947205452e+02 8.881113121805595e+02 8.866492090953504e+02 8.851868901042455e+02 8.837243598481174e+02 - 8.822616229693809e+02 8.807986841119955e+02 8.793355479214636e+02 8.778722190448314e+02 8.764087021306887e+02 - 8.749450018291686e+02 8.734811227919481e+02 8.720170696722481e+02 8.705528471248323e+02 8.690884598060085e+02 - 8.676239123736278e+02 8.661592094870851e+02 8.646943558073189e+02 8.632293559968109e+02 8.617642147195870e+02 - 8.602989366412162e+02 8.588335264288111e+02 8.573679887510280e+02 8.559023282780669e+02 8.544365496816713e+02 - 8.529706576351281e+02 8.515046568132680e+02 8.500385518924651e+02 8.485723475506371e+02 8.471060484672456e+02 - 8.456396593232956e+02 8.441731848013352e+02 8.427066295854568e+02 8.412399983612960e+02 8.397732958160319e+02 - 8.383065266383875e+02 8.368396955186294e+02 8.353728071485672e+02 8.339058662215547e+02 8.324388774324890e+02 - 8.309718454778108e+02 8.295047750555044e+02 8.280376708650979e+02 8.265705376076626e+02 8.251033799858133e+02 - 8.236362027037090e+02 8.221690104670519e+02 8.207018079830875e+02 8.192345999606056e+02 8.177673911099388e+02 - 8.163001861429635e+02 8.148329897731001e+02 8.133658067153123e+02 8.118986416861073e+02 8.104314994035359e+02 - 8.089643845871925e+02 8.074973019582153e+02 8.060302562392853e+02 8.045632521546285e+02 8.030962944300132e+02 - 8.016293877927517e+02 8.001625369717000e+02 7.986957466972576e+02 7.972290217013673e+02 7.957623667175162e+02 - 7.942957864807344e+02 7.928292857275953e+02 7.913628691962167e+02 7.898965416262595e+02 7.884303077589279e+02 - 7.869641723369706e+02 7.854981401046790e+02 7.840322158078881e+02 7.825664041939773e+02 7.811007100118686e+02 - 7.796351380120283e+02 7.781696929464658e+02 7.767043795687346e+02 7.752392026339312e+02 7.737741668986956e+02 - 7.723092771212124e+02 7.708445380612087e+02 7.693799544799557e+02 7.679155311402681e+02 7.664512728065041e+02 - 7.649871842445651e+02 7.635232702218972e+02 7.620595355074889e+02 7.605959848718730e+02 7.591326230871256e+02 - 7.576694549268664e+02 7.562064851662584e+02 7.547437185820088e+02 7.532811599523681e+02 7.518188140571300e+02 - 7.503566856776325e+02 7.488947795967565e+02 7.474331005989271e+02 7.459716534701122e+02 7.445104429978242e+02 - 7.430494739711182e+02 7.415887511805935e+02 7.401282794183929e+02 7.386680634782024e+02 7.372081081552518e+02 - 7.357484182463149e+02 7.342889985497084e+02 7.328298538652926e+02 7.313709889944722e+02 7.299124087401947e+02 - 7.284541179069513e+02 7.269961213007771e+02 7.255384237292504e+02 7.240810300014931e+02 7.226239449281712e+02 - 7.211671733214938e+02 7.197107199952134e+02 7.182545897646269e+02 7.167987874465738e+02 7.153433178594373e+02 - 7.138881858231457e+02 7.124333961591685e+02 7.109789536905207e+02 7.095248632417597e+02 7.080711296389870e+02 - 7.066177577098478e+02 7.051647522835304e+02 7.037121181907675e+02 7.022598602638342e+02 7.008079833365500e+02 - 6.993564922442782e+02 6.979053918239249e+02 6.964546869139400e+02 6.950043823543177e+02 6.935544829865950e+02 - 6.921049936538523e+02 6.906559192007142e+02 6.892072644733491e+02 6.877590343194680e+02 6.863112335883264e+02 - 6.848638671307228e+02 6.834169397989994e+02 6.819704564470420e+02 6.805244219302806e+02 6.790788411056876e+02 - 6.776337188317796e+02 6.761890599686175e+02 6.747448693778041e+02 6.733011519224871e+02 6.718579124673579e+02 - 6.704151558786504e+02 6.689728870241429e+02 6.675311107731571e+02 6.660898319965579e+02 6.646490555667547e+02 - 6.632087863576994e+02 6.617690292448882e+02 6.603297891053608e+02 6.588910708177000e+02 6.574528792620325e+02 - 6.560152193200289e+02 6.545780958749028e+02 6.531415138114120e+02 6.517054780158572e+02 6.502699933760831e+02 - 6.488350647814780e+02 6.474006971229736e+02 6.459668952930450e+02 6.445336641857116e+02 6.431010086965356e+02 - 6.416689337226230e+02 6.402374441626239e+02 6.388065449167315e+02 6.373762408866819e+02 6.359465369757564e+02 - 6.345174380887786e+02 6.330889491321157e+02 6.316610750136796e+02 6.302338206429247e+02 6.288071909308491e+02 - 6.273811907899951e+02 6.259558251344477e+02 6.245310988798360e+02 6.231070169433332e+02 6.216835842436550e+02 - 6.202608057010611e+02 6.188386862373554e+02 6.174172307758844e+02 6.159964442415383e+02 6.145763315607522e+02 - 6.131568976615030e+02 6.117381474733122e+02 6.103200859272448e+02 6.089027179559087e+02 6.074860484934565e+02 - 6.060700824755835e+02 6.046548248395288e+02 6.032402805240755e+02 6.018264544695495e+02 6.004133516178208e+02 - 5.990009769123031e+02 5.975893352979532e+02 5.961784317212720e+02 5.947682711303036e+02 5.933588584746357e+02 - 5.919501987053994e+02 5.905422967752705e+02 5.891351576384668e+02 5.877287862507508e+02 5.863231875694282e+02 - 5.849183665533477e+02 5.835143281629030e+02 5.821110773600302e+02 5.807086191082091e+02 5.793069583724634e+02 - 5.779061001193606e+02 5.765060493170109e+02 5.751068109350690e+02 5.737083899447330e+02 5.723107913187440e+02 - 5.709140200313871e+02 5.695180810584912e+02 5.681229793774282e+02 5.667287199671144e+02 5.653353078080089e+02 - 5.639427478821145e+02 5.625510451729782e+02 5.611602046656897e+02 5.597702313468828e+02 5.583811302047351e+02 - 5.569929062289672e+02 5.556055644108436e+02 5.542191097431725e+02 5.528335472203050e+02 5.514488818381369e+02 - 5.500651185941068e+02 5.486822624871968e+02 5.473003185179330e+02 5.459192916883851e+02 5.445391870021655e+02 - 5.431600094644319e+02 5.417817640818839e+02 5.404044558627653e+02 5.390280898168637e+02 5.376526709555103e+02 - 5.362782042915790e+02 5.349046948394886e+02 5.335321476152006e+02 5.321605676362202e+02 5.307899599215965e+02 - 5.294203294919217e+02 5.280516813693320e+02 5.266840205775071e+02 5.253173521416702e+02 5.239516810885877e+02 - 5.225870124465707e+02 5.212233512454725e+02 5.198607025166908e+02 5.184990712931668e+02 5.171384626093851e+02 - 5.157788815013741e+02 5.144203330067055e+02 5.130628221644946e+02 5.117063540154008e+02 5.103509336016263e+02 - 5.089965659669175e+02 5.076432561565640e+02 5.062910092173990e+02 5.049398301977998e+02 5.035897241476866e+02 - 5.022406961185235e+02 5.008927511633182e+02 4.995458943366220e+02 4.982001306945292e+02 4.968554652946787e+02 - 4.955119031962524e+02 4.941694494599757e+02 4.928281091481178e+02 4.914878873244913e+02 4.901487890544524e+02 - 4.888108194049014e+02 4.874739834442815e+02 4.861382862425793e+02 4.848037328713260e+02 4.834703284035954e+02 - 4.821380779140055e+02 4.808069864787175e+02 4.794770591754360e+02 4.781483010834104e+02 4.768207172834317e+02 - 4.754943128578365e+02 4.741690928905032e+02 4.728450624668552e+02 4.715222266738587e+02 4.702005906000235e+02 - 4.688801593354034e+02 4.675609379715956e+02 4.662429316017405e+02 4.649261453205227e+02 4.636105842241698e+02 - 4.622962534104534e+02 4.609831579786886e+02 4.596713030297340e+02 4.583606936659914e+02 4.570513349914071e+02 - 4.557432321114703e+02 4.544363901332138e+02 4.531308141652141e+02 4.518265093175915e+02 4.505234807020092e+02 - 4.492217334316751e+02 4.479212726213398e+02 4.466221033872973e+02 4.453242308473862e+02 4.440276601209875e+02 - 4.427323963290266e+02 4.414384445939725e+02 4.401458100398370e+02 4.388544977921764e+02 4.375645129780900e+02 - 4.362758607262207e+02 4.349885461667554e+02 4.337025744314242e+02 4.324179506535007e+02 4.311346799678025e+02 - 4.298527675106906e+02 4.285722184200691e+02 4.272930378353866e+02 4.260152308976346e+02 4.247388027493482e+02 - 4.234637585346064e+02 4.221901033990317e+02 4.209178424897899e+02 4.196469809555908e+02 4.183775239466873e+02 - 4.171094766148764e+02 4.158428441134982e+02 4.145776315974367e+02 4.133138442231195e+02 4.120514871485177e+02 - 4.107905655331455e+02 4.095310845380616e+02 4.082730493258674e+02 4.070164650607085e+02 4.057613369082738e+02 - 4.045076700357962e+02 4.032554696120511e+02 4.020047408073589e+02 4.007554887935824e+02 3.995077187441286e+02 - 3.982614358339480e+02 3.970166452395346e+02 3.957733521389259e+02 3.945315617117033e+02 3.932912791389912e+02 - 3.920525096034583e+02 3.908152582893162e+02 3.895795303823206e+02 3.883453310697706e+02 3.871126655405087e+02 - 3.858815389849212e+02 3.846519565949380e+02 3.834239235640323e+02 3.821974450872211e+02 3.809725263610652e+02 - 3.797491725836686e+02 3.785273889546788e+02 3.773071806752873e+02 3.760885529482291e+02 3.748715109777822e+02 - 3.736560599697692e+02 3.724422051315553e+02 3.712299516720498e+02 3.700193048017055e+02 3.688102697325187e+02 - 3.676028516780295e+02 3.663970558533210e+02 3.651928874750207e+02 3.639903517612993e+02 3.627894539318706e+02 - 3.615901992079928e+02 3.603925928124674e+02 3.591966399696389e+02 3.580023459053963e+02 3.568097158471716e+02 - 3.556187550239405e+02 3.544294686662223e+02 3.532418620060801e+02 3.520559402771199e+02 3.508717087144923e+02 - 3.496891725548904e+02 3.485083370365518e+02 3.473292073992571e+02 3.461517888843309e+02 3.449760867346407e+02 - 3.438021061945983e+02 3.426298525101589e+02 3.414593309288210e+02 3.402905466996269e+02 3.391235050731623e+02 - 3.379582113015570e+02 3.367946706384836e+02 3.356328883391590e+02 3.344728696603431e+02 3.333146198603399e+02 - 3.321581441989965e+02 3.310034479377038e+02 3.298505363393963e+02 3.286994146685523e+02 3.275500881911931e+02 - 3.264025621748842e+02 3.252568418887342e+02 3.241129326033955e+02 3.229708395910641e+02 3.218305681254797e+02 - 3.206921234819250e+02 3.195555109372272e+02 3.184207357697562e+02 3.172878032594259e+02 3.161567186876940e+02 - 3.150274873375612e+02 3.139001144935722e+02 3.127746054418153e+02 3.116509654699221e+02 3.105291998670680e+02 - 3.094093139239718e+02 3.082913129328962e+02 3.071752021876472e+02 3.060609869835743e+02 3.049486726175709e+02 - 3.038382643880739e+02 3.027297675950632e+02 3.016231875400634e+02 3.005185295261418e+02 2.994157988579094e+02 - 2.983150008415209e+02 2.972161407846750e+02 2.961192239966130e+02 2.950242557881208e+02 2.939312414715272e+02 - 2.928401863607048e+02 2.917510957710699e+02 2.906639750195822e+02 2.895788294247451e+02 2.884956643066055e+02 - 2.874144849867538e+02 2.863352967883243e+02 2.852581050359946e+02 2.841829150559857e+02 2.831097321760628e+02 - 2.820385617255341e+02 2.809694090352515e+02 2.799022794376108e+02 2.788371782665511e+02 2.777741108575549e+02 - 2.767130825476488e+02 2.756540986754025e+02 2.745971645809293e+02 2.735422856058867e+02 2.724894670934750e+02 - 2.714387143884384e+02 2.703900328370648e+02 2.693434277871856e+02 2.682989045881756e+02 2.672564685909533e+02 - 2.662161251479810e+02 2.651778796132642e+02 2.641417373423522e+02 2.631077036923379e+02 2.620757840218578e+02 - 2.610459836910915e+02 2.600183080617631e+02 2.589927624971394e+02 2.579693523620314e+02 2.569480830227931e+02 - 2.559289598473227e+02 2.549119882050614e+02 2.538971734669946e+02 2.528845210056507e+02 2.518740361951020e+02 - 2.508657244109642e+02 2.498595910303967e+02 2.488556414321026e+02 2.478538809963281e+02 2.468543151048638e+02 - 2.458569491410431e+02 2.448617884897432e+02 2.438688385373852e+02 2.428781046719333e+02 2.418895922828956e+02 - 2.409033067613238e+02 2.399192534998131e+02 2.389374378925019e+02 2.379578653350729e+02 2.369805412247519e+02 - 2.360054709603084e+02 2.350326599420553e+02 2.340621135718494e+02 2.330938372530911e+02 2.321278363907239e+02 - 2.311641163912353e+02 2.302026826626565e+02 2.292435406145617e+02 2.282866956580692e+02 2.273321532058407e+02 - 2.263799186720815e+02 2.254299974725404e+02 2.244823950245099e+02 2.235371167468261e+02 2.225941680598685e+02 - 2.216535543855603e+02 2.207152811473682e+02 2.197793537703028e+02 2.188457776809178e+02 2.179145583073106e+02 - 2.169857010791227e+02 2.160592114275385e+02 2.151350947852860e+02 2.142133565866376e+02 2.132940022674083e+02 - 2.123770372649571e+02 2.114624670181867e+02 2.105502969675431e+02 2.096405325550162e+02 2.087331792241393e+02 - 2.078282424199890e+02 2.069257275891860e+02 2.060256401798943e+02 2.051279856418216e+02 2.042327694262190e+02 - 2.033399969858813e+02 2.024496737751469e+02 2.015618052498977e+02 2.006763968675590e+02 1.997934540871004e+02 - 1.989129823690343e+02 1.980349871754169e+02 1.971594739698481e+02 1.962864482174713e+02 1.954159153849736e+02 - 1.945478809405854e+02 1.936823503540812e+02 1.928193290967781e+02 1.919588226415381e+02 1.911008364627658e+02 - 1.902453760364096e+02 1.893924468399617e+02 1.885420543524577e+02 1.876942040544768e+02 1.868489014281417e+02 - 1.860061519571189e+02 1.851659611266184e+02 1.843283344233937e+02 1.834932773357418e+02 1.826607953535034e+02 - 1.818308939680629e+02 1.810035786723481e+02 1.801788549608304e+02 1.793567283295249e+02 1.785372042759901e+02 - 1.777202882993282e+02 1.769059859001850e+02 1.760943025807497e+02 1.752852438447554e+02 1.744788151974785e+02 - 1.736750221457390e+02 1.728738701979007e+02 1.720753648638706e+02 1.712795116550998e+02 1.704863160845825e+02 - 1.696957836668566e+02 1.689079199180039e+02 1.681227303556493e+02 1.673402204989617e+02 1.665603958686532e+02 - 1.657832619869799e+02 1.650088243777409e+02 1.642370885662795e+02 1.634680600794823e+02 1.627017444457793e+02 - 1.619381471951445e+02 1.611772738590951e+02 1.604191299706921e+02 1.596637210645399e+02 1.589110526767867e+02 - 1.581611303451241e+02 1.574139596087874e+02 1.566695460085554e+02 1.559278950867503e+02 1.551890123872385e+02 - 1.544529034554292e+02 1.537195738382757e+02 1.529890290842748e+02 1.522612747434666e+02 1.515363163674351e+02 - 1.508141595093076e+02 1.500948097237555e+02 1.493782725669932e+02 1.486645535967789e+02 1.479536583724143e+02 - 1.472455924547449e+02 1.465403614061596e+02 1.458379707905909e+02 1.451384261735148e+02 1.444417331219514e+02 - 1.437478972044633e+02 1.430569239911578e+02 1.423688190536853e+02 1.416835879652396e+02 1.410012363005585e+02 - 1.403217696359229e+02 1.396451935491577e+02 1.389715136196312e+02 1.383007354282553e+02 1.376328645574854e+02 - 1.369679065913208e+02 1.363058671153038e+02 1.356467517165207e+02 1.349905659836014e+02 1.343373155067194e+02 - 1.336870058775913e+02 1.330396426894780e+02 1.323952315371832e+02 1.317537780170550e+02 1.311152877269845e+02 - 1.304797662664065e+02 1.298472192362996e+02 1.292176522391855e+02 1.285910708791301e+02 1.279674807617425e+02 - 1.273468874941753e+02 1.267292966851250e+02 1.261147139448316e+02 1.255031448850783e+02 1.248945951191923e+02 - 1.242890702620443e+02 1.236865759300485e+02 1.230871177411627e+02 1.224907013148884e+02 1.218973322722703e+02 - 1.213070162358971e+02 1.207197588299010e+02 1.201355656799576e+02 1.195544424132864e+02 1.189763946586499e+02 - 1.184014280463548e+02 1.178295482082510e+02 1.172607607777323e+02 1.166950713897357e+02 1.161324856807421e+02 - 1.155730092887757e+02 1.150166478534045e+02 1.144634070157400e+02 1.139132924184372e+02 1.133663097056950e+02 - 1.128224645232555e+02 1.122817625184044e+02 1.117442093399712e+02 1.112098106383290e+02 1.106785720653942e+02 - 1.101504843345202e+02 1.096253193854976e+02 1.091027814759659e+02 1.085828903190926e+02 1.080656662057070e+02 - 1.075510744401853e+02 1.070391017583160e+02 1.065297369211215e+02 1.060229642403793e+02 1.055187689946627e+02 - 1.050171373101604e+02 1.045180558156006e+02 1.040215103049707e+02 1.035274865113781e+02 1.030359706887152e+02 - 1.025469492169604e+02 1.020604083357866e+02 1.015763340040288e+02 1.010947131078929e+02 1.006155327791835e+02 - 1.001387792631148e+02 9.966443911893010e+01 9.919249927205091e+01 9.872294669690289e+01 9.825576811144268e+01 - 9.779095024426459e+01 9.732848086108395e+01 9.686834738339628e+01 9.641053663288847e+01 9.595503591883143e+01 - 9.550183276437639e+01 9.505091470489599e+01 9.460226894357737e+01 9.415588307372171e+01 9.371174549820027e+01 - 9.326984390100915e+01 9.283016578095182e+01 9.239269910989660e+01 9.195743199867270e+01 9.152435246657959e+01 - 9.109344822825337e+01 9.066470776170968e+01 9.023811990175319e+01 8.981367265385576e+01 8.939135422700863e+01 - 8.897115319588202e+01 8.855305819940260e+01 8.813705766268812e+01 8.772313993524557e+01 8.731129428898021e+01 - 8.690150981214184e+01 8.649377498492467e+01 8.608807868460502e+01 8.568441000539183e+01 8.528275807208179e+01 - 8.488311171021131e+01 8.448546000255536e+01 8.408979283578468e+01 8.369609949978657e+01 8.330436902264381e+01 - 8.291459088961614e+01 8.252675470341519e+01 8.214085000107356e+01 8.175686603719873e+01 8.137479266933553e+01 - 8.099462018292702e+01 8.061633811896954e+01 8.023993612969721e+01 7.986540422509246e+01 7.949273245617202e+01 - 7.912191071864751e+01 7.875292880591886e+01 7.838577728963824e+01 7.802044667908689e+01 7.765692688210476e+01 - 7.729520814701189e+01 7.693528093921003e+01 7.657713574044320e+01 7.622076279877933e+01 7.586615250876412e+01 - 7.551329599462582e+01 7.516218394284439e+01 7.481280673973237e+01 7.446515517211270e+01 7.411922012543234e+01 - 7.377499243991551e+01 7.343246273248482e+01 7.309162206375170e+01 7.275246194060588e+01 7.241497325488510e+01 - 7.207914691168762e+01 7.174497413637995e+01 7.141244624067238e+01 7.108155440657860e+01 7.075228964021176e+01 - 7.042464364044737e+01 7.009860816502822e+01 6.977417437950896e+01 6.945133371117183e+01 6.913007780419414e+01 - 6.881039831641085e+01 6.849228672098478e+01 6.817573455985929e+01 6.786073404036127e+01 6.754727706019318e+01 - 6.723535518365489e+01 6.692496029976250e+01 6.661608442214438e+01 6.630871955818391e+01 6.600285747074972e+01 - 6.569849025826812e+01 6.539561050984807e+01 6.509421028016476e+01 6.479428156422156e+01 6.449581665898590e+01 - 6.419880794007263e+01 6.390324769379086e+01 6.360912802573969e+01 6.331644161216560e+01 6.302518126952705e+01 - 6.273533924838438e+01 6.244690800283556e+01 6.215988021335375e+01 6.187424856554645e+01 6.159000558852496e+01 - 6.130714382209544e+01 6.102565642873360e+01 6.074553634647369e+01 6.046677613965124e+01 6.018936867893675e+01 - 5.991330696615304e+01 5.963858400265185e+01 5.936519255461710e+01 5.909312563142009e+01 5.882237675846172e+01 - 5.855293899151076e+01 5.828480526925385e+01 5.801796883717194e+01 5.775242299813667e+01 5.748816098906929e+01 - 5.722517588172157e+01 5.696346118973321e+01 5.670301063052477e+01 5.644381744585571e+01 5.618587497447161e+01 - 5.592917675378749e+01 5.567371639288440e+01 5.541948735564524e+01 5.516648303666721e+01 5.491469740133566e+01 - 5.466412430128952e+01 5.441475721341882e+01 5.416658984866251e+01 5.391961604526729e+01 5.367382965707854e+01 - 5.342922435049869e+01 5.318579394824101e+01 5.294353276046760e+01 5.270243471566913e+01 5.246249358126801e+01 - 5.222370341980431e+01 5.198605834991378e+01 5.174955243603662e+01 5.151417956992881e+01 5.127993401538280e+01 - 5.104681029539683e+01 5.081480246751264e+01 5.058390465007635e+01 5.035411117607305e+01 5.012541641928832e+01 - 4.989781463692880e+01 4.967129999443014e+01 4.944586717469857e+01 4.922151081792142e+01 4.899822516393252e+01 - 4.877600466591702e+01 4.855484391176263e+01 4.833473749525371e+01 4.811567985888949e+01 4.789766553100244e+01 - 4.768068948486052e+01 4.746474643299185e+01 4.724983089968822e+01 4.703593761581940e+01 4.682306140175855e+01 - 4.661119706938157e+01 4.640033923440899e+01 4.619048280117971e+01 4.598162297433280e+01 4.577375454810339e+01 - 4.556687232031752e+01 4.536097129194708e+01 4.515604651624491e+01 4.495209295916556e+01 4.474910546848848e+01 - 4.454707932343867e+01 4.434600983627007e+01 4.414589194663536e+01 4.394672075425581e+01 4.374849149110094e+01 - 4.355119939554362e+01 4.335483958155968e+01 4.315940720272008e+01 4.296489783321342e+01 4.277130684141869e+01 - 4.257862938067940e+01 4.238686082011235e+01 4.219599659307687e+01 4.200603211268383e+01 4.181696265307154e+01 - 4.162878369849639e+01 4.144149102922540e+01 4.125508008000694e+01 4.106954625154178e+01 4.088488514080404e+01 - 4.070109237453877e+01 4.051816351991027e+01 4.033609404369983e+01 4.015487975529847e+01 3.997451654390139e+01 - 3.979499995457292e+01 3.961632565249730e+01 3.943848943565658e+01 3.926148710146721e+01 3.908531435163689e+01 - 3.890996689581685e+01 3.873544082272831e+01 3.856173207783515e+01 3.838883637414560e+01 3.821674961156019e+01 - 3.804546776546066e+01 3.787498680517137e+01 3.770530255859592e+01 3.753641100849845e+01 3.736830845518836e+01 - 3.720099088344971e+01 3.703445420945200e+01 3.686869456603723e+01 3.670370808841574e+01 3.653949085950763e+01 - 3.637603888796111e+01 3.621334844811717e+01 3.605141592615973e+01 3.589023740445852e+01 3.572980904042850e+01 - 3.557012712196481e+01 3.541118795282225e+01 3.525298774403768e+01 3.509552267323749e+01 3.493878928773343e+01 - 3.478278404343990e+01 3.462750313614663e+01 3.447294293878365e+01 3.431909990161546e+01 3.416597046087814e+01 - 3.401355094900445e+01 3.386183779648810e+01 3.371082772101448e+01 3.356051721064496e+01 3.341090265530899e+01 - 3.326198061398263e+01 3.311374767636361e+01 3.296620040125966e+01 3.281933525310492e+01 3.267314891432770e+01 - 3.252763821351709e+01 3.238279969616838e+01 3.223862995512887e+01 3.209512571750849e+01 3.195228370249094e+01 - 3.181010057023420e+01 3.166857295105629e+01 3.152769775432829e+01 3.138747186368265e+01 3.124789194582367e+01 - 3.110895478177638e+01 3.097065722333928e+01 3.083299612203396e+01 3.069596823521478e+01 3.055957038379009e+01 - 3.042379968490992e+01 3.028865305190764e+01 3.015412726448298e+01 3.002021927954454e+01 2.988692608783410e+01 - 2.975424465393443e+01 2.962217185358958e+01 2.949070472525562e+01 2.935984046863818e+01 2.922957605244617e+01 - 2.909990844798608e+01 2.897083474125067e+01 2.884235205411202e+01 2.871445744621140e+01 2.858714789194334e+01 - 2.846042066311678e+01 2.833427304434733e+01 2.820870204788112e+01 2.808370481822039e+01 2.795927858955916e+01 - 2.783542056310479e+01 2.771212788710439e+01 2.758939774558937e+01 2.746722754519704e+01 2.734561457842300e+01 - 2.722455602005491e+01 2.710404915757552e+01 2.698409131619408e+01 2.686467981339180e+01 2.674581188504884e+01 - 2.662748489299116e+01 2.650969637323688e+01 2.639244364869198e+01 2.627572402574995e+01 2.615953493480668e+01 - 2.604387380499337e+01 2.592873803144385e+01 2.581412497154068e+01 2.570003216993883e+01 2.558645721031992e+01 - 2.547339748309297e+01 2.536085044648649e+01 2.524881363723968e+01 2.513728460374055e+01 2.502626081142699e+01 - 2.491573971820056e+01 2.480571905896494e+01 2.469619646153339e+01 2.458716938319504e+01 2.447863542000312e+01 - 2.437059221927192e+01 2.426303741725681e+01 2.415596854366440e+01 2.404938323139217e+01 2.394327933047775e+01 - 2.383765447837906e+01 2.373250626120992e+01 2.362783239922733e+01 2.352363062421024e+01 2.341989863680159e+01 - 2.331663407933185e+01 2.321383475989216e+01 2.311149855755017e+01 2.300962316438995e+01 2.290820631357202e+01 - 2.280724581327735e+01 2.270673948178020e+01 2.260668508940155e+01 2.250708039173678e+01 2.240792334786956e+01 - 2.230921186720802e+01 2.221094371595302e+01 2.211311674173436e+01 2.201572884123411e+01 2.191877792312015e+01 - 2.182226182065280e+01 2.172617842216956e+01 2.163052579410284e+01 2.153530186271772e+01 2.144050449256298e+01 - 2.134613164544727e+01 2.125218130870039e+01 2.115865145244560e+01 2.106553997668644e+01 2.097284492087666e+01 - 2.088056441996010e+01 2.078869643251129e+01 2.069723893213309e+01 2.060618996606658e+01 2.051554761096601e+01 - 2.042530989859754e+01 2.033547481777502e+01 2.024604054022628e+01 2.015700522393599e+01 2.006836688994228e+01 - 1.998012363072147e+01 1.989227358045817e+01 1.980481486918973e+01 1.971774557717947e+01 1.963106382303616e+01 - 1.954476789103884e+01 1.945885594703988e+01 1.937332608222908e+01 1.928817649453870e+01 1.920340539662878e+01 - 1.911901098077130e+01 1.903499138773951e+01 1.895134486255558e+01 1.886806974988112e+01 1.878516424109755e+01 - 1.870262653275597e+01 1.862045489823334e+01 1.853864761644500e+01 1.845720293609644e+01 1.837611907561623e+01 - 1.829539441141390e+01 1.821502731690405e+01 1.813501600648008e+01 1.805535878852776e+01 1.797605402680784e+01 - 1.789710004813803e+01 1.781849513976010e+01 1.774023761822760e+01 1.766232596769640e+01 1.758475857461898e+01 - 1.750753373031707e+01 1.743064982368309e+01 1.735410526816905e+01 1.727789846424588e+01 1.720202775432962e+01 - 1.712649156263800e+01 1.705128842771503e+01 1.697641675133914e+01 1.690187492053174e+01 1.682766139576636e+01 - 1.675377465125957e+01 1.668021313537254e+01 1.660697525047803e+01 1.653405953620346e+01 1.646146456303875e+01 - 1.638918876353225e+01 1.631723061252691e+01 1.624558863577738e+01 1.617426136715184e+01 1.610324729276991e+01 - 1.603254489420701e+01 1.596215281065743e+01 1.589206962268447e+01 1.582229381597797e+01 1.575282394813798e+01 - 1.568365860435203e+01 1.561479636559848e+01 1.554623575841051e+01 1.547797536749664e+01 1.541001389568697e+01 - 1.534234992945672e+01 1.527498202635700e+01 1.520790881496337e+01 1.514112893627654e+01 1.507464101206718e+01 - 1.500844361854594e+01 1.494253544400039e+01 1.487691522461213e+01 1.481158156982783e+01 1.474653311471545e+01 - 1.468176854391490e+01 1.461728655322583e+01 1.455308580005108e+01 1.448916492494823e+01 1.442552270891503e+01 - 1.436215789907635e+01 1.429906914560298e+01 1.423625515786986e+01 1.417371467503432e+01 1.411144643634281e+01 - 1.404944913182382e+01 1.398772148936426e+01 1.392626235467004e+01 1.386507047757601e+01 1.380414456703780e+01 - 1.374348339923097e+01 1.368308576360786e+01 1.362295043539383e+01 1.356307614411792e+01 1.350346171009224e+01 - 1.344410601461897e+01 1.338500782259274e+01 1.332616591200318e+01 1.326757911048049e+01 1.320924625504148e+01 - 1.315116615215319e+01 1.309333758418828e+01 1.303575945915385e+01 1.297843067064863e+01 1.292135001185642e+01 - 1.286451632934388e+01 1.280792850075226e+01 1.275158540067995e+01 1.269548586414703e+01 1.263962874841400e+01 - 1.258401302186647e+01 1.252863758019894e+01 1.247350127006052e+01 1.241860299544399e+01 1.236394167532885e+01 - 1.230951622025856e+01 1.225532549825102e+01 1.220136844757296e+01 1.214764407513537e+01 1.209415128431592e+01 - 1.204088897936275e+01 1.198785611322907e+01 1.193505164847797e+01 1.188247452422181e+01 1.183012365035161e+01 - 1.177799804372636e+01 1.172609672645034e+01 1.167441862559045e+01 1.162296270435431e+01 1.157172795813644e+01 - 1.152071338824009e+01 1.146991795771504e+01 1.141934063624516e+01 1.136898050295155e+01 1.131883658051165e+01 - 1.126890783457083e+01 1.121919328583311e+01 1.116969196974251e+01 1.112040291453270e+01 1.107132511138846e+01 - 1.102245760367597e+01 1.097379950683186e+01 1.092534984778681e+01 1.087710764406476e+01 1.082907196010627e+01 - 1.078124186863284e+01 1.073361642501848e+01 1.068619465441603e+01 1.063897567074718e+01 1.059195860734133e+01 - 1.054514250814830e+01 1.049852644360809e+01 1.045210951602862e+01 1.040589083229813e+01 1.035986946911022e+01 - 1.031404450080543e+01 1.026841510170119e+01 1.022298040707346e+01 1.017773949095798e+01 1.013269147478631e+01 - 1.008783549702620e+01 1.004317069189082e+01 9.998696157456914e+00 9.954411030186206e+00 9.910314523784715e+00 - 9.866405774945729e+00 9.822683900561229e+00 9.779148062474189e+00 9.735797433007823e+00 9.692631171490490e+00 - 9.649648402951970e+00 9.606848328743531e+00 9.564230182014787e+00 9.521793107635142e+00 9.479536270440141e+00 - 9.437458869806633e+00 9.395560106559989e+00 9.353839157926716e+00 9.312295192835592e+00 9.270927467731591e+00 - 9.229735216231479e+00 9.188717610212938e+00 9.147873860369382e+00 9.107203196336844e+00 9.066704846764596e+00 - 9.026378005702853e+00 8.986221892357717e+00 8.946235805206038e+00 8.906418978693665e+00 8.866770619316361e+00 - 8.827289975974383e+00 8.787976307390357e+00 8.748828863538764e+00 8.709846863139358e+00 8.671029583554503e+00 - 8.632376341244221e+00 8.593886376949055e+00 8.555558939921891e+00 8.517393311170933e+00 8.479388776756116e+00 - 8.441544603229096e+00 8.403860042243403e+00 8.366334424744339e+00 8.328967072292842e+00 8.291757243124138e+00 - 8.254704227472720e+00 8.217807335382002e+00 8.181065876905594e+00 8.144479133106664e+00 8.108046399433587e+00 - 8.071767047639053e+00 8.035640397926882e+00 7.999665736506032e+00 7.963842390434660e+00 7.928169696145141e+00 - 7.892646983285742e+00 7.857273552651162e+00 7.822048750599857e+00 7.786971968025827e+00 7.752042529333232e+00 - 7.717259758863888e+00 7.682623011133142e+00 7.648131647347260e+00 7.613785013617140e+00 7.579582436948184e+00 - 7.545523312250220e+00 7.511607037617057e+00 7.477832951167176e+00 7.444200413093294e+00 7.410708803334905e+00 - 7.377357505498556e+00 7.344145878673218e+00 7.311073286547245e+00 7.278139163173499e+00 7.245342906306997e+00 - 7.212683876663248e+00 7.180161467446147e+00 7.147775082852699e+00 7.115524124234772e+00 7.083407965702390e+00 - 7.051426016132217e+00 7.019577732801474e+00 6.987862512275252e+00 6.956279745475502e+00 6.924828855941318e+00 - 6.893509269882150e+00 6.862320401692200e+00 6.831261647888545e+00 6.800332460884749e+00 6.769532305211046e+00 - 6.738860589806862e+00 6.708316738463165e+00 6.677900193977888e+00 6.647610403615440e+00 6.617446795946176e+00 - 6.587408797932629e+00 6.557495898186097e+00 6.527707560796614e+00 6.498043211862364e+00 6.468502306113241e+00 - 6.439084309299234e+00 6.409788685242900e+00 6.380614873655190e+00 6.351562339061567e+00 6.322630595895343e+00 - 6.293819108127046e+00 6.265127326375664e+00 6.236554729526047e+00 6.208100805116588e+00 6.179765032202197e+00 - 6.151546864740690e+00 6.123445807150094e+00 6.095461385258917e+00 6.067593067877628e+00 6.039840335121551e+00 - 6.012202688508743e+00 5.984679633169969e+00 5.957270656961056e+00 5.929975240292937e+00 5.902792923627279e+00 - 5.875723232013562e+00 5.848765648702115e+00 5.821919682493143e+00 5.795184854142510e+00 5.768560683026402e+00 - 5.742046666390822e+00 5.715642318587924e+00 5.689347205919744e+00 5.663160851223163e+00 5.637082758311135e+00 - 5.611112458697719e+00 5.585249491519008e+00 5.559493390584049e+00 5.533843667789125e+00 5.508299872311603e+00 - 5.482861578646651e+00 5.457528314665947e+00 5.432299611523626e+00 5.407175018586152e+00 5.382154093094761e+00 - 5.357236378022760e+00 5.332421403106363e+00 5.307708752059064e+00 5.283098003376689e+00 5.258588694187007e+00 - 5.234180379291222e+00 5.209872626694981e+00 5.185665008050016e+00 5.161557074183171e+00 5.137548383980142e+00 - 5.113638545797982e+00 5.089827134282968e+00 5.066113702430728e+00 5.042497830741953e+00 5.018979105007048e+00 - 4.995557105455633e+00 4.972231392615168e+00 4.949001558388967e+00 4.925867224885915e+00 4.902827967986653e+00 - 4.879883363679411e+00 4.857033008673309e+00 4.834276503129009e+00 4.811613436797770e+00 4.789043387081744e+00 - 4.766565977795326e+00 4.744180833573695e+00 4.721887536130310e+00 4.699685684376157e+00 4.677574891583497e+00 - 4.655554772271826e+00 4.633624922898647e+00 4.611784942911348e+00 4.590034481232405e+00 4.568373160121153e+00 - 4.546800575450856e+00 4.525316347519302e+00 4.503920103923871e+00 4.482611469298424e+00 4.461390048788094e+00 - 4.440255471271009e+00 4.419207398665950e+00 4.398245451269402e+00 4.377369245425554e+00 4.356578419383048e+00 - 4.335872613273037e+00 4.315251459075552e+00 4.294714576337845e+00 4.274261622204341e+00 4.253892261314030e+00 - 4.233606119889290e+00 4.213402835603544e+00 4.193282059746365e+00 4.173243445650493e+00 4.153286631923412e+00 - 4.133411255497697e+00 4.113616998652003e+00 4.093903524786619e+00 4.074270469191258e+00 4.054717490515994e+00 - 4.035244253601178e+00 4.015850419023907e+00 3.996535633568783e+00 3.977299560905666e+00 3.958141896495164e+00 - 3.939062301025637e+00 3.920060427447142e+00 3.901135950094528e+00 3.882288544897898e+00 3.863517881118590e+00 - 3.844823615448907e+00 3.826205437051391e+00 3.807663047653544e+00 3.789196110563124e+00 3.770804297342049e+00 - 3.752487294212357e+00 3.734244789018890e+00 3.716076457976182e+00 3.697981972490954e+00 3.679961043694115e+00 - 3.662013372248035e+00 3.644138631063968e+00 3.626336509775109e+00 3.608606705542072e+00 3.590948914412318e+00 - 3.573362819793663e+00 3.555848115085657e+00 3.538404523614169e+00 3.521031745026515e+00 3.503729467883798e+00 - 3.486497394134707e+00 3.469335231734055e+00 3.452242686325544e+00 3.435219448952052e+00 3.418265234650198e+00 - 3.401379774604279e+00 3.384562769850576e+00 3.367813923930398e+00 3.351132951883403e+00 3.334519571031865e+00 - 3.317973491801103e+00 3.301494419647167e+00 3.285082090084510e+00 3.268736234671993e+00 3.252456560777042e+00 - 3.236242786971220e+00 3.220094639575606e+00 3.204011846234647e+00 3.187994121490988e+00 3.172041185626448e+00 - 3.156152791161071e+00 3.140328668842820e+00 3.124568535295174e+00 3.108872124034968e+00 3.093239171871656e+00 - 3.077669412161458e+00 3.062162565910707e+00 3.046718374098970e+00 3.031336596904380e+00 3.016016966139392e+00 - 3.000759212810465e+00 2.985563079528153e+00 2.970428312130104e+00 2.955354650145179e+00 2.940341825152254e+00 - 2.925389598488303e+00 2.910497731503551e+00 2.895665957526404e+00 2.880894022713473e+00 2.866181682137055e+00 - 2.851528688498591e+00 2.836934785005289e+00 2.822399718118186e+00 2.807923264019232e+00 2.793505182293368e+00 - 2.779145216423770e+00 2.764843124903896e+00 2.750598669795774e+00 2.736411610868753e+00 2.722281698431688e+00 - 2.708208697067331e+00 2.694192390113966e+00 2.680232535961204e+00 2.666328890540199e+00 2.652481222662398e+00 - 2.638689303226956e+00 2.624952898002155e+00 2.611271764144950e+00 2.597645683492627e+00 2.584074442444535e+00 - 2.570557801667266e+00 2.557095530257868e+00 2.543687406599445e+00 2.530333209423413e+00 2.517032707379746e+00 - 2.503785668122807e+00 2.490591889861845e+00 2.477451158950901e+00 2.464363243138197e+00 2.451327922049569e+00 - 2.438344980862380e+00 2.425414204994132e+00 2.412535368413293e+00 2.399708255484590e+00 2.386932671907132e+00 - 2.374208401602455e+00 2.361535223009603e+00 2.348912926727443e+00 2.336341305706971e+00 2.323820149408004e+00 - 2.311349238873846e+00 2.298928374328811e+00 2.286557363678248e+00 2.274235992966902e+00 2.261964052364815e+00 - 2.249741340335214e+00 2.237567658215990e+00 2.225442798573621e+00 2.213366549457367e+00 2.201338726388740e+00 - 2.189359138707274e+00 2.177427577694549e+00 2.165543843493499e+00 2.153707741170415e+00 2.141919076444355e+00 - 2.130177647034976e+00 2.118483256831743e+00 2.106835728234196e+00 2.095234867960482e+00 2.083680476325080e+00 - 2.072172364176171e+00 2.060710343839133e+00 2.049294224696878e+00 2.037923808395575e+00 2.026598913260298e+00 - 2.015319367985618e+00 2.004084979196668e+00 1.992895556108562e+00 1.981750916950703e+00 1.970650881000152e+00 - 1.959595261684839e+00 1.948583868145923e+00 1.937616532016987e+00 1.926693081878526e+00 1.915813328267264e+00 - 1.904977090405082e+00 1.894184192977273e+00 1.883434460875044e+00 1.872727710477953e+00 1.862063762090873e+00 - 1.851442457083682e+00 1.840863622251705e+00 1.830327074965862e+00 1.819832643502570e+00 1.809380158797907e+00 - 1.798969449793061e+00 1.788600336572885e+00 1.778272652771865e+00 1.767986244795942e+00 1.757740938619203e+00 - 1.747536560606076e+00 1.737372946411540e+00 1.727249932639099e+00 1.717167351154095e+00 1.707125028541288e+00 - 1.697122811212298e+00 1.687160545804055e+00 1.677238060829077e+00 1.667355192130723e+00 1.657511781312863e+00 - 1.647707669880958e+00 1.637942692337234e+00 1.628216684763444e+00 1.618529503053863e+00 1.608880992276723e+00 - 1.599270986915247e+00 1.589699330823691e+00 1.580165870897195e+00 1.570670452975510e+00 1.561212914561866e+00 - 1.551793103249197e+00 1.542410880472349e+00 1.533066090216831e+00 1.523758574579748e+00 1.514488184288800e+00 - 1.505254771462676e+00 1.496058184704016e+00 1.486898266759950e+00 1.477774877044576e+00 1.468687878023066e+00 - 1.459637114930725e+00 1.450622438289068e+00 1.441643704572125e+00 1.432700770639202e+00 1.423793487269355e+00 - 1.414921704769478e+00 1.406085292220042e+00 1.397284110913275e+00 1.388518010515092e+00 1.379786849127615e+00 - 1.371090488107240e+00 1.362428788219066e+00 1.353801602746353e+00 1.345208792137069e+00 1.336650231141558e+00 - 1.328125779708811e+00 1.319635294146069e+00 1.311178639017341e+00 1.302755680403749e+00 1.294366281732825e+00 - 1.286010300246468e+00 1.277687607130681e+00 1.269398079017509e+00 1.261141576506052e+00 1.252917963373013e+00 - 1.244727109229262e+00 1.236568884548108e+00 1.228443154841189e+00 1.220349783647821e+00 1.212288651549746e+00 - 1.204259634287000e+00 1.196262595500517e+00 1.188297406122070e+00 1.180363940507803e+00 1.172462072687314e+00 - 1.164591670206239e+00 1.156752605274376e+00 1.148944764287503e+00 1.141168021685895e+00 1.133422246839356e+00 - 1.125707316556084e+00 1.118023109341937e+00 1.110369501923575e+00 1.102746365022667e+00 1.095153580538906e+00 - 1.087591037394418e+00 1.080058609806265e+00 1.072556173728377e+00 1.065083611042832e+00 1.057640804167975e+00 - 1.050227631677888e+00 1.042843969448370e+00 1.035489708218281e+00 1.028164736497249e+00 1.020868930712798e+00 - 1.013602173363602e+00 1.006364350528145e+00 9.991553480860069e-01 9.919750464549014e-01 9.848233287198007e-01 - 9.777000916381701e-01 9.706052224312447e-01 9.635386022157533e-01 9.565001191688937e-01 9.494896630661879e-01 - 9.425071223228538e-01 9.355523797940184e-01 9.286253271866921e-01 9.217258644183214e-01 9.148538781303724e-01 - 9.080092551050607e-01 9.011918879859632e-01 8.944016703005543e-01 8.876384924746002e-01 8.809022413584221e-01 - 8.741928168976413e-01 8.675101190938330e-01 8.608540359442419e-01 8.542244603473701e-01 8.476212889430066e-01 - 8.410444181391276e-01 8.344937399710189e-01 8.279691476350027e-01 8.214705470141707e-01 8.149978368018493e-01 - 8.085509088588196e-01 8.021296614287111e-01 7.957339944800463e-01 7.893638070383275e-01 7.830189931350516e-01 - 7.766994532966268e-01 7.704050967403675e-01 7.641358215802615e-01 7.578915247022724e-01 7.516721083807270e-01 - 7.454774759379389e-01 7.393075284143857e-01 7.331621629407183e-01 7.270412875750237e-01 7.209448123528730e-01 - 7.148726361079928e-01 7.088246610576617e-01 7.028007931997213e-01 6.968009387204053e-01 6.908250000358214e-01 - 6.848728793751606e-01 6.789444908271167e-01 6.730397435251165e-01 6.671585392499849e-01 6.613007849024644e-01 - 6.554663896318030e-01 6.496552624588109e-01 6.438673070778183e-01 6.381024319556428e-01 6.323605552121262e-01 - 6.266415850605696e-01 6.209454272475601e-01 6.152719929073242e-01 6.096211942955035e-01 6.039929419697414e-01 - 5.983871423673978e-01 5.928037109278776e-01 5.872425665727200e-01 5.817036179262789e-01 5.761867757580472e-01 - 5.706919545755328e-01 5.652190691753797e-01 5.597680312855905e-01 5.543387515608681e-01 5.489311514266204e-01 - 5.435451491959484e-01 5.381806555529779e-01 5.328375858091706e-01 5.275158573424954e-01 5.222153871968650e-01 - 5.169360885007255e-01 5.116778775087658e-01 5.064406794925096e-01 5.012244118255510e-01 4.960289886382637e-01 - 4.908543290552675e-01 4.857003532629381e-01 4.805669801867241e-01 4.754541247133137e-01 4.703617092625736e-01 - 4.652896609026711e-01 4.602378967146020e-01 4.552063350475851e-01 4.501948983226124e-01 4.452035092771810e-01 - 4.402320879227842e-01 4.352805523654864e-01 4.303488309750054e-01 4.254368504386150e-01 4.205445290166767e-01 - 4.156717895856258e-01 4.108185573527897e-01 4.059847567861119e-01 4.011703090912549e-01 3.963751374739253e-01 - 3.915991740467544e-01 3.868423443729578e-01 3.821045699452743e-01 3.773857771630841e-01 3.726858934536713e-01 - 3.680048452743795e-01 3.633425553945757e-01 3.586989523890614e-01 3.540739701811214e-01 3.494675340422360e-01 - 3.448795694018267e-01 3.403100055229290e-01 3.357587720701978e-01 3.312257966625470e-01 3.267110046986084e-01 - 3.222143302305144e-01 3.177357072575733e-01 3.132750617821559e-01 3.088323230437107e-01 3.044074228278458e-01 - 3.000002929514869e-01 2.956108619814004e-01 2.912390591663653e-01 2.868848226223222e-01 2.825480855369588e-01 - 2.782287763584979e-01 2.739268276304007e-01 2.696421732978619e-01 2.653747469077652e-01 2.611244782932083e-01 - 2.568913016367161e-01 2.526751570146955e-01 2.484759769388697e-01 2.442936932048949e-01 2.401282413902519e-01 - 2.359795575701045e-01 2.318475761710866e-01 2.277322290127450e-01 2.236334554284879e-01 2.195511960314929e-01 - 2.154853836729677e-01 2.114359536211432e-01 2.074028437636633e-01 2.033859920182897e-01 1.993853337119912e-01 - 1.954008040589642e-01 1.914323463143237e-01 1.874799002688242e-01 1.835434007181165e-01 1.796227861758036e-01 - 1.757179964922509e-01 1.718289711649378e-01 1.679556465242757e-01 1.640979620393169e-01 1.602558632656972e-01 - 1.564292893436780e-01 1.526181778855338e-01 1.488224700413446e-01 1.450421075715582e-01 1.412770310767497e-01 - 1.375271785489454e-01 1.337924939887067e-01 1.300729236356154e-01 1.263684067750867e-01 1.226788841702678e-01 - 1.190042991249222e-01 1.153445951805052e-01 1.116997137432381e-01 1.080695954417651e-01 1.044541881911586e-01 - 1.008534377603918e-01 9.726728475975084e-02 9.369567294988820e-02 9.013854752144720e-02 8.659585347215112e-02 - 8.306753302147955e-02 7.955353046975124e-02 7.605379621791922e-02 7.256827534889604e-02 6.909691079142652e-02 - 6.563964883225221e-02 6.219643640409570e-02 5.876721959493493e-02 5.535194193553600e-02 5.195055179453398e-02 - 4.856300050562060e-02 4.518923308325209e-02 4.182919528191363e-02 3.848283536820589e-02 3.515010193539807e-02 - 3.183094185890936e-02 2.852530077920949e-02 2.523313079087341e-02 2.195438300307553e-02 1.868900335629075e-02 - 1.543694036357313e-02 1.219814405293583e-02 8.972564385828061e-03 5.760148923624660e-03 2.560846417529306e-03 - -6.253884489496408e-04 -3.798605206001689e-03 -6.958856024607482e-03 -1.010619000899848e-02 -1.324065554473652e-02 - -1.636230159824732e-02 -1.947117958312726e-02 -2.256733711284757e-02 -2.565081832749929e-02 -2.872167302619957e-02 - -3.177995089902724e-02 -3.482569914268617e-02 -3.785896464500105e-02 -4.087979562235380e-02 -4.388824175488684e-02 - -4.688434717766576e-02 -4.986815604286890e-02 -5.283971753775529e-02 -5.579907881824794e-02 -5.874628546589089e-02 - -6.168138307363240e-02 -6.460441923558070e-02 -6.751544105442296e-02 -7.041449003639784e-02 -7.330161087707579e-02 - -7.617685125406765e-02 -7.904025608548425e-02 -8.189186951723537e-02 -8.473173608907363e-02 -8.755990257827875e-02 - -9.037641289395969e-02 -9.318130717201861e-02 -9.597463047763352e-02 -9.875642835115833e-02 -1.015267439140877e-01 - -1.042856199263307e-01 -1.070331001684683e-01 -1.097692300567918e-01 -1.124940502948268e-01 -1.152076007898061e-01 - -1.179099262631479e-01 -1.206010699593113e-01 -1.232810735016665e-01 -1.259499784255051e-01 -1.286078279418341e-01 - -1.312546653333709e-01 -1.338905286984875e-01 -1.365154583874092e-01 -1.391294979538990e-01 -1.417326885345280e-01 - -1.443250704192513e-01 -1.469066841433861e-01 -1.494775722507627e-01 -1.520377752494497e-01 -1.545873297590701e-01 - -1.571262765202916e-01 -1.596546572452540e-01 -1.621725113907878e-01 -1.646798779801165e-01 -1.671767967821347e-01 - -1.696633092874520e-01 -1.721394530811854e-01 -1.746052643091513e-01 -1.770607836101869e-01 -1.795060506428017e-01 - -1.819411034225526e-01 -1.843659798390828e-01 -1.867807191554161e-01 -1.891853611111403e-01 -1.915799407499077e-01 - -1.939644945120454e-01 -1.963390621459183e-01 -1.987036813730624e-01 -2.010583889984393e-01 -2.034032219467188e-01 - -2.057382189127211e-01 -2.080634172465200e-01 -2.103788504106409e-01 -2.126845552585028e-01 -2.149805700057577e-01 - -2.172669307458855e-01 -2.195436731393316e-01 -2.218108333786645e-01 -2.240684493062661e-01 -2.263165556286022e-01 - -2.285551851690127e-01 -2.307843748874083e-01 -2.330041611277884e-01 -2.352145785311434e-01 -2.374156618282909e-01 - -2.396074467707450e-01 -2.417899696732801e-01 -2.439632627554057e-01 -2.461273590292558e-01 -2.482822949571798e-01 - -2.504281050002428e-01 -2.525648226666662e-01 -2.546924818382261e-01 -2.568111176810049e-01 -2.589207645010757e-01 - -2.610214530059819e-01 -2.631132165202481e-01 -2.651960899948890e-01 -2.672701065219724e-01 -2.693352987894519e-01 - -2.713916998229662e-01 -2.734393439668777e-01 -2.754782632038173e-01 -2.775084874639143e-01 -2.795300503441993e-01 - -2.815429852855671e-01 -2.835473240274155e-01 -2.855430981234691e-01 -2.875303400246380e-01 -2.895090831627840e-01 - -2.914793573631382e-01 -2.934411924374482e-01 -2.953946213942734e-01 -2.973396760049649e-01 -2.992763870705049e-01 - -3.012047853752455e-01 -3.031249029054077e-01 -3.050367713048046e-01 -3.069404187491607e-01 -3.088358754333808e-01 - -3.107231733999588e-01 -3.126023429151826e-01 -3.144734138246973e-01 -3.163364162512183e-01 -3.181913814969073e-01 - -3.200383391593082e-01 -3.218773166629695e-01 -3.237083442965246e-01 -3.255314526206347e-01 -3.273466708133588e-01 - -3.291540279174764e-01 -3.309535535062730e-01 -3.327452779044484e-01 -3.345292286746930e-01 -3.363054329977739e-01 - -3.380739209920870e-01 -3.398347217688169e-01 -3.415878634526212e-01 -3.433333743100879e-01 -3.450712833788954e-01 - -3.468016195958206e-01 -3.485244091566739e-01 -3.502396793974815e-01 -3.519474593420066e-01 -3.536477770380763e-01 - -3.553406598299846e-01 -3.570261348354672e-01 -3.587042307855341e-01 -3.603749751839582e-01 -3.620383929731605e-01 - -3.636945116923384e-01 -3.653433594409278e-01 -3.669849628231984e-01 -3.686193482790397e-01 -3.702465427747400e-01 - -3.718665743211436e-01 -3.734794684043725e-01 -3.750852495624684e-01 -3.766839451194457e-01 -3.782755819189342e-01 - -3.798601858648072e-01 -3.814377826321034e-01 -3.830083986549013e-01 -3.845720606417443e-01 -3.861287926090124e-01 - -3.876786193539286e-01 -3.892215675502101e-01 -3.907576628594260e-01 -3.922869303026715e-01 -3.938093947284727e-01 - -3.953250822556230e-01 -3.968340182497304e-01 -3.983362256494206e-01 -3.998317293097848e-01 -4.013205549386248e-01 - -4.028027272117153e-01 -4.042782703087232e-01 -4.057472086115670e-01 -4.072095677082399e-01 -4.086653712889545e-01 - -4.101146418277140e-01 -4.115574040934622e-01 -4.129936826934361e-01 -4.144235014035024e-01 -4.158468836578273e-01 - -4.172638535617268e-01 -4.186744357650895e-01 -4.200786523524958e-01 -4.214765258006608e-01 -4.228680805923657e-01 - -4.242533401481378e-01 -4.256323273241845e-01 -4.270050650780072e-01 -4.283715771591216e-01 -4.297318868367957e-01 - -4.310860152683936e-01 -4.324339850671611e-01 -4.337758197699306e-01 -4.351115419219263e-01 -4.364411736856622e-01 - -4.377647373653272e-01 -4.390822563519974e-01 -4.403937525793140e-01 -4.416992465950099e-01 -4.429987609092939e-01 - -4.442923180804305e-01 -4.455799398898891e-01 -4.468616477876415e-01 -4.481374637930542e-01 -4.494074106490894e-01 - -4.506715085877422e-01 -4.519297779021105e-01 -4.531822412097039e-01 -4.544289201442401e-01 -4.556698355752103e-01 - -4.569050083194456e-01 -4.581344599890250e-01 -4.593582121055255e-01 -4.605762842891920e-01 -4.617886970897419e-01 - -4.629954719556403e-01 -4.641966295426422e-01 -4.653921902577345e-01 -4.665821746143150e-01 -4.677666038635413e-01 - -4.689454981292748e-01 -4.701188761476531e-01 -4.712867586709557e-01 -4.724491664926360e-01 -4.736061192593240e-01 - -4.747576368456714e-01 -4.759037394682022e-01 -4.770444475543998e-01 -4.781797800875144e-01 -4.793097558338887e-01 - -4.804343950164401e-01 -4.815537175042383e-01 -4.826677426390972e-01 -4.837764894228364e-01 -4.848799775883490e-01 - -4.859782270303963e-01 -4.870712557287352e-01 -4.881590823344398e-01 -4.892417265305033e-01 -4.903192072931410e-01 - -4.913915433426016e-01 -4.924587534540600e-01 -4.935208569593936e-01 -4.945778724869024e-01 -4.956298174121960e-01 - -4.966767104426105e-01 -4.977185705977166e-01 -4.987554161795947e-01 -4.997872652579317e-01 -5.008141361357437e-01 - -5.018360477540788e-01 -5.028530175622089e-01 -5.038650625463708e-01 -5.048722015765362e-01 -5.058744527800632e-01 - -5.068718334710337e-01 -5.078643614554021e-01 -5.088520548881869e-01 -5.098349318298798e-01 -5.108130088001350e-01 - -5.117863028619736e-01 -5.127548322161382e-01 -5.137186142245088e-01 -5.146776659499980e-01 -5.156320045833772e-01 - -5.165816478015819e-01 -5.175266128170244e-01 -5.184669156304091e-01 -5.194025733016244e-01 -5.203336032597101e-01 - -5.212600221732120e-01 -5.221818466804444e-01 -5.230990936596679e-01 -5.240117804553392e-01 -5.249199232262068e-01 - -5.258235374392936e-01 -5.267226400387954e-01 -5.276172478389746e-01 -5.285073771019844e-01 -5.293930438910602e-01 - -5.302742646986305e-01 -5.311510563423283e-01 -5.320234339437281e-01 -5.328914129379527e-01 -5.337550101355577e-01 - -5.346142414983102e-01 -5.354691226448078e-01 -5.363196694209366e-01 -5.371658979374595e-01 -5.380078240078261e-01 - -5.388454624615836e-01 -5.396788287704753e-01 -5.405079388378121e-01 -5.413328081929075e-01 -5.421534521210617e-01 - -5.429698859177164e-01 -5.437821254261226e-01 -5.445901856060492e-01 -5.453940806517681e-01 -5.461938261275164e-01 - -5.469894375147514e-01 -5.477809296410460e-01 -5.485683172596564e-01 -5.493516154047422e-01 -5.501308394233321e-01 - -5.509060035978606e-01 -5.516771220917993e-01 -5.524442098036262e-01 -5.532072816062331e-01 -5.539663521228516e-01 - -5.547214355736525e-01 -5.554725467511782e-01 -5.562197004144761e-01 -5.569629099559865e-01 -5.577021895124128e-01 - -5.584375539231472e-01 -5.591690174427206e-01 -5.598965939391384e-01 -5.606202972403660e-01 -5.613401421520022e-01 - -5.620561426054913e-01 -5.627683113219669e-01 -5.634766626491997e-01 -5.641812109417922e-01 -5.648819696019924e-01 - -5.655789522526887e-01 -5.662721727674018e-01 -5.669616451334641e-01 -5.676473824290281e-01 -5.683293976251365e-01 - -5.690077046537543e-01 -5.696823171027902e-01 -5.703532481968968e-01 -5.710205111045815e-01 -5.716841193018837e-01 - -5.723440862989044e-01 -5.730004247377283e-01 -5.736531475408438e-01 -5.743022680808630e-01 -5.749477994635019e-01 - -5.755897545119250e-01 -5.762281459317424e-01 -5.768629872133108e-01 -5.774942912813225e-01 -5.781220698864685e-01 - -5.787463360372200e-01 -5.793671029370097e-01 -5.799843829591812e-01 -5.805981885004621e-01 -5.812085322229668e-01 - -5.818154271777390e-01 -5.824188854500640e-01 -5.830189187855023e-01 -5.836155400127914e-01 -5.842087616519486e-01 - -5.847985957903102e-01 -5.853850545399070e-01 -5.859681502822114e-01 -5.865478954643482e-01 -5.871243015837295e-01 - -5.876973804424807e-01 -5.882671445115567e-01 -5.888336058093040e-01 -5.893967761301214e-01 -5.899566672475657e-01 - -5.905132912554449e-01 -5.910666600004119e-01 -5.916167846344484e-01 -5.921636769312483e-01 -5.927073488739303e-01 - -5.932478119884005e-01 -5.937850777230974e-01 -5.943191576345895e-01 -5.948500635775013e-01 -5.953778067525587e-01 - -5.959023980172641e-01 -5.964238491804477e-01 -5.969421717317064e-01 -5.974573766302176e-01 -5.979694750153504e-01 - -5.984784782975928e-01 -5.989843980133127e-01 -5.994872448737363e-01 -5.999870296226286e-01 -6.004837635008013e-01 - -6.009774575116591e-01 -6.014681225640990e-01 -6.019557696406324e-01 -6.024404098188824e-01 -6.029220539582525e-01 - -6.034007123251734e-01 -6.038763957092128e-01 -6.043491151546724e-01 -6.048188811990667e-01 -6.052857043294740e-01 - -6.057495951725935e-01 -6.062105647034982e-01 -6.066686232996821e-01 -6.071237808282512e-01 -6.075760480581535e-01 - -6.080254356249652e-01 -6.084719536597242e-01 -6.089156123708600e-01 -6.093564221655233e-01 -6.097943936088406e-01 - -6.102295366277345e-01 -6.106618611466814e-01 -6.110913776082281e-01 -6.115180960018122e-01 -6.119420262061138e-01 - -6.123631785057825e-01 -6.127815629923925e-01 -6.131971895415724e-01 -6.136100679122567e-01 -6.140202079254689e-01 - -6.144276194632986e-01 -6.148323123693087e-01 -6.152342964516117e-01 -6.156335814880438e-01 -6.160301772367670e-01 - -6.164240932773791e-01 -6.168153390131846e-01 -6.172039241057757e-01 -6.175898582479540e-01 -6.179731510100582e-01 - -6.183538118537011e-01 -6.187318502245757e-01 -6.191072755983122e-01 -6.194800972241303e-01 -6.198503243163954e-01 - -6.202179663089392e-01 -6.205830326036273e-01 -6.209455324825972e-01 -6.213054750121583e-01 -6.216628693834372e-01 - -6.220177248671027e-01 -6.223700505100402e-01 -6.227198553511943e-01 -6.230671484590707e-01 -6.234119388224310e-01 - -6.237542354039819e-01 -6.240940471906395e-01 -6.244313833278470e-01 -6.247662526956897e-01 -6.250986637315333e-01 - -6.254286253149073e-01 -6.257561464374979e-01 -6.260812358699522e-01 -6.264039022632663e-01 -6.267241542804416e-01 - -6.270420007239386e-01 -6.273574502418447e-01 -6.276705113436000e-01 -6.279811924920996e-01 -6.282895022600340e-01 - -6.285954492669960e-01 -6.288990419377586e-01 -6.292002887596219e-01 -6.294991982474318e-01 -6.297957785295903e-01 - -6.300900379535952e-01 -6.303819851813233e-01 -6.306716282540937e-01 -6.309589752809680e-01 -6.312440348023121e-01 - -6.315268150763020e-01 -6.318073241903770e-01 -6.320855701836068e-01 -6.323615610879741e-01 -6.326353050044859e-01 - -6.329068101802829e-01 -6.331760846635813e-01 -6.334431363818833e-01 -6.337079733473078e-01 -6.339706034520735e-01 - -6.342310345121693e-01 -6.344892744839461e-01 -6.347453312805855e-01 -6.349992127114430e-01 -6.352509264768633e-01 - -6.355004804526597e-01 -6.357478826585540e-01 -6.359931404400122e-01 -6.362362612918424e-01 -6.364772532644518e-01 - -6.367161239398067e-01 -6.369528807876881e-01 -6.371875315012039e-01 -6.374200836672138e-01 -6.376505447719858e-01 - -6.378789222449943e-01 -6.381052236017390e-01 -6.383294563385360e-01 -6.385516277126226e-01 -6.387717451483415e-01 - -6.389898161925324e-01 -6.392058481779943e-01 -6.394198483013303e-01 -6.396318237129481e-01 -6.398417817583982e-01 - -6.400497298004382e-01 -6.402556751053731e-01 -6.404596246811356e-01 -6.406615856182318e-01 -6.408615652398488e-01 - -6.410595705960431e-01 -6.412556087124355e-01 -6.414496867908267e-01 -6.416418117430738e-01 -6.418319904244396e-01 - -6.420202299552208e-01 -6.422065373268501e-01 -6.423909194238488e-01 -6.425733831564441e-01 -6.427539354568388e-01 - -6.429325832107947e-01 -6.431093330874931e-01 -6.432841919278923e-01 -6.434571667152847e-01 -6.436282640341581e-01 - -6.437974905134223e-01 -6.439648529819666e-01 -6.441303582355420e-01 -6.442940129046214e-01 -6.444558234243410e-01 - -6.446157964842297e-01 -6.447739387669796e-01 -6.449302567289288e-01 -6.450847570451982e-01 -6.452374463418470e-01 - -6.453883308317777e-01 -6.455374170518916e-01 -6.456847116523639e-01 -6.458302208459006e-01 -6.459739509825424e-01 - -6.461159085765001e-01 -6.462561000624228e-01 -6.463945317857885e-01 -6.465312099893501e-01 -6.466661407794220e-01 - -6.467993305071421e-01 -6.469307857586633e-01 -6.470605124176557e-01 -6.471885165505020e-01 -6.473148048129491e-01 - -6.474393831451855e-01 -6.475622574433044e-01 -6.476834341411803e-01 -6.478029193005811e-01 -6.479207188186653e-01 - -6.480368387749067e-01 -6.481512852365653e-01 -6.482640642356557e-01 -6.483751817763184e-01 -6.484846438333333e-01 - -6.485924563559199e-01 -6.486986252696630e-01 -6.488031563964390e-01 -6.489060555062011e-01 -6.490073285956434e-01 - -6.491069816182633e-01 -6.492050203757027e-01 -6.493014505946639e-01 -6.493962779796888e-01 -6.494895082497514e-01 - -6.495811472172135e-01 -6.496712006463234e-01 -6.497596741452655e-01 -6.498465734697708e-01 -6.499319043537729e-01 - -6.500156722751166e-01 -6.500978828758883e-01 -6.501785418212779e-01 -6.502576544563589e-01 -6.503352264336196e-01 - -6.504112635780723e-01 -6.504857712206107e-01 -6.505587548117625e-01 -6.506302199692129e-01 -6.507001719669850e-01 - -6.507686161481057e-01 -6.508355580770583e-01 -6.509010033515999e-01 -6.509649573333303e-01 -6.510274250599254e-01 - -6.510884119408136e-01 -6.511479234691252e-01 -6.512059649357221e-01 -6.512625414820176e-01 -6.513176583196066e-01 - -6.513713209657690e-01 -6.514235346566493e-01 -6.514743044494572e-01 -6.515236355351222e-01 -6.515715331668240e-01 - -6.516180025498758e-01 -6.516630486086969e-01 -6.517066764698182e-01 -6.517488914696901e-01 -6.517896986474616e-01 - -6.518291029696229e-01 -6.518671094474887e-01 -6.519037232298822e-01 -6.519389493677847e-01 -6.519727927034696e-01 - -6.520052582102593e-01 -6.520363509344871e-01 -6.520660759114448e-01 -6.520944379877177e-01 -6.521214419863292e-01 - -6.521470929034477e-01 -6.521713955379932e-01 -6.521943546611896e-01 -6.522159753870301e-01 -6.522362625000242e-01 - -6.522552205660485e-01 -6.522728545508729e-01 -6.522891692872490e-01 -6.523041693781095e-01 -6.523178594474156e-01 - -6.523302443147758e-01 -6.523413289626511e-01 -6.523511179648659e-01 -6.523596158248584e-01 -6.523668271884714e-01 - -6.523727568212391e-01 -6.523774093997819e-01 -6.523807893579161e-01 -6.523829012952149e-01 -6.523837498990516e-01 - -6.523833397960367e-01 -6.523816754611410e-01 -6.523787613199525e-01 -6.523746019358498e-01 -6.523692018302728e-01 - -6.523625654555820e-01 -6.523546972248629e-01 -6.523456017173497e-01 -6.523352835702680e-01 -6.523237468711672e-01 - -6.523109959032295e-01 -6.522970353197415e-01 -6.522818693382445e-01 -6.522655022842732e-01 -6.522479388337681e-01 - -6.522291831409690e-01 -6.522092393163972e-01 -6.521881118419591e-01 -6.521658050464721e-01 -6.521423231008568e-01 - -6.521176700882644e-01 -6.520918504277817e-01 -6.520648685798258e-01 -6.520367284462982e-01 -6.520074341903623e-01 - -6.519769901852531e-01 -6.519454004576026e-01 -6.519126690272374e-01 -6.518788000417296e-01 -6.518437978790763e-01 - -6.518076667685843e-01 -6.517704106505043e-01 -6.517320333460206e-01 -6.516925389358605e-01 -6.516519318553129e-01 - -6.516102158220000e-01 -6.515673946405215e-01 -6.515234728464969e-01 -6.514784543315630e-01 -6.514323427842886e-01 - -6.513851423523833e-01 -6.513368570527661e-01 -6.512874907235414e-01 -6.512370470939771e-01 -6.511855301990920e-01 - -6.511329442190841e-01 -6.510792928715797e-01 -6.510245798816351e-01 -6.509688091361985e-01 -6.509119847142907e-01 - -6.508541103488035e-01 -6.507951894034477e-01 -6.507352259931611e-01 -6.506742241942834e-01 -6.506121876059120e-01 - -6.505491199228429e-01 -6.504850249436106e-01 -6.504199065016956e-01 -6.503537680222150e-01 -6.502866130342899e-01 - -6.502184457971011e-01 -6.501492700279957e-01 -6.500790890906794e-01 -6.500079066129352e-01 -6.499357263329657e-01 - -6.498625519683058e-01 -6.497883869826074e-01 -6.497132350047277e-01 -6.496370998048885e-01 -6.495599847614121e-01 - -6.494818934475555e-01 -6.494028297363450e-01 -6.493227969968260e-01 -6.492417985197620e-01 -6.491598378013752e-01 - -6.490769185970405e-01 -6.489930446200032e-01 -6.489082192796405e-01 -6.488224457999440e-01 -6.487357275334984e-01 - -6.486480682838258e-01 -6.485594713376021e-01 -6.484699398068251e-01 -6.483794774339799e-01 -6.482880877536140e-01 - -6.481957740532812e-01 -6.481025397024727e-01 -6.480083880017639e-01 -6.479133221889776e-01 -6.478173456351086e-01 - -6.477204618036257e-01 -6.476226741599570e-01 -6.475239858039916e-01 -6.474243999826228e-01 -6.473239202990485e-01 - -6.472225498463482e-01 -6.471202916312221e-01 -6.470171489638400e-01 -6.469131252405815e-01 -6.468082238277443e-01 - -6.467024479420175e-01 -6.465958006550642e-01 -6.464882850509053e-01 -6.463799044773618e-01 -6.462706620382276e-01 - -6.461605607272912e-01 -6.460496040101232e-01 -6.459377950690467e-01 -6.458251367734501e-01 -6.457116323868038e-01 - -6.455972850655802e-01 -6.454820977029684e-01 -6.453660732942879e-01 -6.452492150754419e-01 -6.451315264887545e-01 - -6.450130102914885e-01 -6.448936692680686e-01 -6.447735068128447e-01 -6.446525260129213e-01 -6.445307296530088e-01 - -6.444081203587793e-01 -6.442847014715996e-01 -6.441604765089356e-01 -6.440354480546840e-01 -6.439096188724848e-01 - -6.437829920095609e-01 -6.436555704731397e-01 -6.435273570693492e-01 -6.433983545533010e-01 -6.432685663163126e-01 - -6.431379953365300e-01 -6.430066439769492e-01 -6.428745153347271e-01 -6.427416124750638e-01 -6.426079380140648e-01 - -6.424734947555180e-01 -6.423382856273998e-01 -6.422023135830728e-01 -6.420655814260000e-01 -6.419280919255173e-01 - -6.417898479598759e-01 -6.416508523135933e-01 -6.415111076305331e-01 -6.413706163966455e-01 -6.412293816393564e-01 - -6.410874066048897e-01 -6.409446936267265e-01 -6.408012453136449e-01 -6.406570646910840e-01 -6.405121544270317e-01 - -6.403665170374713e-01 -6.402201550644944e-01 -6.400730715072882e-01 -6.399252691822962e-01 -6.397767504407681e-01 - -6.396275180930010e-01 -6.394775749890055e-01 -6.393269236107165e-01 -6.391755662191552e-01 -6.390235053902433e-01 - -6.388707445708105e-01 -6.387172861694177e-01 -6.385631322023312e-01 -6.384082857966726e-01 -6.382527494896121e-01 - -6.380965253642142e-01 -6.379396162401521e-01 -6.377820248167250e-01 -6.376237535602883e-01 -6.374648052204416e-01 - -6.373051823107587e-01 -6.371448870124290e-01 -6.369839218821269e-01 -6.368222895078627e-01 -6.366599923302766e-01 - -6.364970329561520e-01 -6.363334139746031e-01 -6.361691377885151e-01 -6.360042067688202e-01 -6.358386233547334e-01 - -6.356723901317635e-01 -6.355055093799952e-01 -6.353379833438523e-01 -6.351698147827204e-01 -6.350010061497325e-01 - -6.348315596278746e-01 -6.346614776297652e-01 -6.344907627044540e-01 -6.343194173354602e-01 -6.341474433478579e-01 - -6.339748431233465e-01 -6.338016197812808e-01 -6.336277753787244e-01 -6.334533118997744e-01 -6.332782318265875e-01 - -6.331025376588558e-01 -6.329262316544187e-01 -6.327493157114107e-01 -6.325717923863455e-01 -6.323936643403999e-01 - -6.322149336030685e-01 -6.320356024195775e-01 -6.318556731749607e-01 -6.316751480498738e-01 -6.314940290711796e-01 - -6.313123183267710e-01 -6.311300184615836e-01 -6.309471319109403e-01 -6.307636607640942e-01 -6.305796070902886e-01 - -6.303949730482692e-01 -6.302097608691579e-01 -6.300239725606558e-01 -6.298376103756032e-01 -6.296506769748604e-01 - -6.294631743864889e-01 -6.292751044804592e-01 -6.290864694027335e-01 -6.288972714311484e-01 -6.287075127245377e-01 - -6.285171950849623e-01 -6.283263208775478e-01 -6.281348926187029e-01 -6.279429120773061e-01 -6.277503812180564e-01 - -6.275573022752827e-01 -6.273636774541002e-01 -6.271695087389834e-01 -6.269747979757735e-01 -6.267795473573458e-01 - -6.265837591630624e-01 -6.263874355834504e-01 -6.261905784094625e-01 -6.259931895045528e-01 -6.257952710369122e-01 - -6.255968250363517e-01 -6.253978534898084e-01 -6.251983584520242e-01 -6.249983420853732e-01 -6.247978064572296e-01 - -6.245967533125147e-01 -6.243951846742302e-01 -6.241931026018996e-01 -6.239905086686763e-01 -6.237874050561640e-01 - -6.235837942608177e-01 -6.233796778475696e-01 -6.231750576026635e-01 -6.229699356978790e-01 -6.227643140512986e-01 - -6.225581944126894e-01 -6.223515785171654e-01 -6.221444686516174e-01 -6.219368669106876e-01 -6.217287748516653e-01 - -6.215201944179222e-01 -6.213111276341791e-01 -6.211015763012264e-01 -6.208915420627059e-01 -6.206810267189914e-01 - -6.204700325606027e-01 -6.202585614407183e-01 -6.200466150025669e-01 -6.198341952555039e-01 -6.196213039807257e-01 - -6.194079427661365e-01 -6.191941133919308e-01 -6.189798178811384e-01 -6.187650583625046e-01 -6.185498365366234e-01 - -6.183341539791172e-01 -6.181180123373080e-01 -6.179014136693182e-01 -6.176843597571294e-01 -6.174668518753883e-01 - -6.172488922358068e-01 -6.170304830078728e-01 -6.168116255085183e-01 -6.165923213940302e-01 -6.163725725542526e-01 - -6.161523808379610e-01 -6.159317477445455e-01 -6.157106747923912e-01 -6.154891641891720e-01 -6.152672177134336e-01 - -6.150448367622374e-01 -6.148220230127394e-01 -6.145987783325538e-01 -6.143751045698781e-01 -6.141510029326600e-01 - -6.139264750393221e-01 -6.137015231470567e-01 -6.134761489851926e-01 -6.132503540152313e-01 -6.130241396532106e-01 - -6.127975076851865e-01 -6.125704598048077e-01 -6.123429972989166e-01 -6.121151221351967e-01 -6.118868363314907e-01 - -6.116581411278224e-01 -6.114290380220153e-01 -6.111995287783158e-01 -6.109696151823703e-01 -6.107392985450728e-01 - -6.105085801024925e-01 -6.102774622058419e-01 -6.100459465922933e-01 -6.098140342484372e-01 -6.095817267256873e-01 - -6.093490257933440e-01 -6.091159331809802e-01 -6.088824500709522e-01 -6.086485779905337e-01 -6.084143191489354e-01 - -6.081796748129595e-01 -6.079446461968719e-01 -6.077092351925356e-01 -6.074734432434898e-01 -6.072372716150822e-01 - -6.070007218360295e-01 -6.067637956065657e-01 -6.065264946232775e-01 -6.062888203126375e-01 -6.060507740692458e-01 - -6.058123573561740e-01 -6.055735718185850e-01 -6.053344188005130e-01 -6.050948994718379e-01 -6.048550157592759e-01 - -6.046147693250087e-01 -6.043741612917217e-01 -6.041331930896253e-01 -6.038918662688606e-01 -6.036501823335466e-01 - -6.034081424814672e-01 -6.031657481058161e-01 -6.029230011393863e-01 -6.026799028730719e-01 -6.024364544399844e-01 - -6.021926574869638e-01 -6.019485136055120e-01 -6.017040241022006e-01 -6.014591897708976e-01 -6.012140122415236e-01 - -6.009684936432825e-01 -6.007226351565053e-01 -6.004764378633045e-01 -6.002299030368295e-01 -5.999830322604393e-01 - -5.997358269112610e-01 -5.994882881008079e-01 -5.992404174674395e-01 -5.989922165630734e-01 -5.987436865327392e-01 - -5.984948286273432e-01 -5.982456442781595e-01 -5.979961350600861e-01 -5.977463018616249e-01 -5.974961457245347e-01 - -5.972456688462123e-01 -5.969948725706038e-01 -5.967437577688297e-01 -5.964923259025159e-01 -5.962405782771161e-01 - -5.959885160038786e-01 -5.957361402849749e-01 -5.954834525607696e-01 -5.952304544228757e-01 -5.949771471628894e-01 - -5.947235319540697e-01 -5.944696099654433e-01 -5.942153825546195e-01 -5.939608509107162e-01 -5.937060159741117e-01 - -5.934508794411635e-01 -5.931954428951332e-01 -5.929397071302310e-01 -5.926836734445704e-01 -5.924273432987167e-01 - -5.921707177793331e-01 -5.919137978828047e-01 -5.916565847753502e-01 -5.913990801532651e-01 -5.911412853604616e-01 - -5.908832013941032e-01 -5.906248293335863e-01 -5.903661704565201e-01 -5.901072261246485e-01 -5.898479972855557e-01 - -5.895884850905705e-01 -5.893286910470348e-01 -5.890686164387193e-01 -5.888082623596927e-01 -5.885476297953414e-01 - -5.882867200485414e-01 -5.880255342895034e-01 -5.877640732646211e-01 -5.875023385228563e-01 -5.872403317009627e-01 - -5.869780535979796e-01 -5.867155052441069e-01 -5.864526878805291e-01 -5.861896026754034e-01 -5.859262506932092e-01 - -5.856626329801135e-01 -5.853987507817091e-01 -5.851346053972879e-01 -5.848701980701103e-01 -5.846055297559873e-01 - -5.843406014627009e-01 -5.840754143260567e-01 -5.838099692919883e-01 -5.835442675863415e-01 -5.832783108438364e-01 - -5.830120998737411e-01 -5.827456354637697e-01 -5.824789190313094e-01 -5.822119517157962e-01 -5.819447343999242e-01 - -5.816772678604962e-01 -5.814095534384316e-01 -5.811415926659900e-01 -5.808733865100626e-01 -5.806049358083534e-01 - -5.803362414940428e-01 -5.800673049021045e-01 -5.797981269727348e-01 -5.795287083747186e-01 -5.792590507223763e-01 - -5.789891553127540e-01 -5.787190227795775e-01 -5.784486540773595e-01 -5.781780503537821e-01 -5.779072127885909e-01 - -5.776361421027820e-01 -5.773648392415993e-01 -5.770933058481036e-01 -5.768215427543451e-01 -5.765495506173008e-01 - -5.762773307782053e-01 -5.760048843724456e-01 -5.757322122309633e-01 -5.754593149355522e-01 -5.751861936930261e-01 - -5.749128500443350e-01 -5.746392847733658e-01 -5.743654986749642e-01 -5.740914927526973e-01 -5.738172681170074e-01 - -5.735428256834612e-01 -5.732681661997935e-01 -5.729932909950833e-01 -5.727182011898047e-01 -5.724428973589288e-01 - -5.721673806475209e-01 -5.718916522032619e-01 -5.716157126986885e-01 -5.713395629769044e-01 -5.710632040862346e-01 - -5.707866372440725e-01 -5.705098634203313e-01 -5.702328834166335e-01 -5.699556980810941e-01 -5.696783084118523e-01 - -5.694007154024264e-01 -5.691229196446771e-01 -5.688449222662509e-01 -5.685667247951188e-01 -5.682883277592247e-01 - -5.680097317796297e-01 -5.677309379467054e-01 -5.674519473718960e-01 -5.671727608332666e-01 -5.668933787438524e-01 - -5.666138024324125e-01 -5.663340332775648e-01 -5.660540719736767e-01 -5.657739191147048e-01 -5.654935755198692e-01 - -5.652130424887296e-01 -5.649323205844615e-01 -5.646514102596061e-01 -5.643703131320561e-01 -5.640890302500955e-01 - -5.638075621229782e-01 -5.635259096013298e-01 -5.632440735413435e-01 -5.629620547371306e-01 -5.626798540413637e-01 - -5.623974724401825e-01 -5.621149109968532e-01 -5.618321704141040e-01 -5.615492514232792e-01 -5.612661549867731e-01 - -5.609828820346520e-01 -5.606994332802816e-01 -5.604158091721365e-01 -5.601320109850756e-01 -5.598480400285579e-01 - -5.595638966628304e-01 -5.592795815381203e-01 -5.589950956088516e-01 -5.587104398719418e-01 -5.584256150214867e-01 - -5.581406216413944e-01 -5.578554608147975e-01 -5.575701335442586e-01 -5.572846406020895e-01 -5.569989825973618e-01 - -5.567131602740183e-01 -5.564271745453506e-01 -5.561410260628522e-01 -5.558547156725416e-01 -5.555682445647333e-01 - -5.552816133007876e-01 -5.549948224318785e-01 -5.547078730025937e-01 -5.544207659049382e-01 -5.541335017868810e-01 - -5.538460810525171e-01 -5.535585047530838e-01 -5.532707741030544e-01 -5.529828895161875e-01 -5.526948516856666e-01 - -5.524066615722431e-01 -5.521183198617187e-01 -5.518298271294942e-01 -5.515411840216864e-01 -5.512523916981388e-01 - -5.509634510475757e-01 -5.506743625070015e-01 -5.503851268106821e-01 -5.500957448096843e-01 -5.498062173123895e-01 - -5.495165448046009e-01 -5.492267279674086e-01 -5.489367680360671e-01 -5.486466657159732e-01 -5.483564214808752e-01 - -5.480660360175322e-01 -5.477755101695411e-01 -5.474848446983241e-01 -5.471940399297857e-01 -5.469030967097296e-01 - -5.466120162347039e-01 -5.463207992130580e-01 -5.460294461220425e-01 -5.457379574365921e-01 -5.454463341419615e-01 - -5.451545769787555e-01 -5.448626863052353e-01 -5.445706629798505e-01 -5.442785079610155e-01 -5.439862220351145e-01 - -5.436938056623958e-01 -5.434012594168094e-01 -5.431085842649811e-01 -5.428157805859503e-01 -5.425228488112607e-01 - -5.422297902211034e-01 -5.419366056396356e-01 -5.416432955189590e-01 -5.413498603513526e-01 -5.410563008101139e-01 - -5.407626176406882e-01 -5.404688113584152e-01 -5.401748827259091e-01 -5.398808327262222e-01 -5.395866619984641e-01 - -5.392923710452394e-01 -5.389979603718316e-01 -5.387034307479797e-01 -5.384087828255361e-01 -5.381140170098579e-01 - -5.378191341794292e-01 -5.375241352697128e-01 -5.372290208939874e-01 -5.369337913756430e-01 -5.366384472427702e-01 - -5.363429897090184e-01 -5.360474189692397e-01 -5.357517350808286e-01 -5.354559397287709e-01 -5.351600336380363e-01 - -5.348640167550405e-01 -5.345678898586708e-01 -5.342716537895550e-01 -5.339753091509816e-01 -5.336788560795809e-01 - -5.333822952812678e-01 -5.330856281219807e-01 -5.327888549366336e-01 -5.324919760228772e-01 -5.321949921530423e-01 - -5.318979038948367e-01 -5.316007117591099e-01 -5.313034163655616e-01 -5.310060185016283e-01 -5.307085188690476e-01 - -5.304109178113635e-01 -5.301132159560333e-01 -5.298154141057816e-01 -5.295175129068631e-01 -5.292195125739295e-01 - -5.289214133220888e-01 -5.286232164928936e-01 -5.283249229043371e-01 -5.280265326905970e-01 -5.277280463629660e-01 - -5.274294646406563e-01 -5.271307882435877e-01 -5.268320172699235e-01 -5.265331522204252e-01 -5.262341943956992e-01 - -5.259351442515741e-01 -5.256360020246456e-01 -5.253367683007200e-01 -5.250374438802079e-01 -5.247380293156688e-01 - -5.244385244793137e-01 -5.241389303158239e-01 -5.238392481089597e-01 -5.235394779437145e-01 -5.232396201567239e-01 - -5.229396754457293e-01 -5.226396444439171e-01 -5.223395275325885e-01 -5.220393250130385e-01 -5.217390378529512e-01 - -5.214386667612969e-01 -5.211382119631184e-01 -5.208376739941909e-01 -5.205370535049869e-01 -5.202363510969753e-01 - -5.199355670763710e-01 -5.196347019022574e-01 -5.193337564915598e-01 -5.190327313042545e-01 -5.187316266472318e-01 - -5.184304431068453e-01 -5.181291813913007e-01 -5.178278420262173e-01 -5.175264249304404e-01 -5.172249309061349e-01 - -5.169233612064826e-01 -5.166217158673360e-01 -5.163199951550123e-01 -5.160181998004911e-01 -5.157163303784532e-01 - -5.154143871836301e-01 -5.151123703899823e-01 -5.148102810445049e-01 -5.145081200022412e-01 -5.142058873966443e-01 - -5.139035834879907e-01 -5.136012088439446e-01 -5.132987643470369e-01 -5.129962500176725e-01 -5.126936660139045e-01 - -5.123910137907831e-01 -5.120882937169244e-01 -5.117855056864241e-01 -5.114826505830118e-01 -5.111797289351894e-01 - -5.108767409175631e-01 -5.105736869791608e-01 -5.102705678009448e-01 -5.099673841164564e-01 -5.096641361609235e-01 - -5.093608243087677e-01 -5.090574492425100e-01 -5.087540114820200e-01 -5.084505112619658e-01 -5.081469486274651e-01 - -5.078433245912960e-01 -5.075396400795943e-01 -5.072358951124865e-01 -5.069320899536702e-01 -5.066282251477461e-01 - -5.063243014155288e-01 -5.060203189866231e-01 -5.057162780382299e-01 -5.054121795257869e-01 -5.051080240346536e-01 - -5.048038117428125e-01 -5.044995428560932e-01 -5.041952179946867e-01 -5.038908379779851e-01 -5.035864027540428e-01 - -5.032819126747086e-01 -5.029773687584369e-01 -5.026727713803431e-01 -5.023681207203433e-01 -5.020634170773620e-01 - -5.017586611304518e-01 -5.014538534087800e-01 -5.011489939472488e-01 -5.008440834008399e-01 -5.005391225202214e-01 - -5.002341114848970e-01 -4.999290507534227e-01 -4.996239408965545e-01 -4.993187821357916e-01 -4.990135746184980e-01 - -4.987083187010172e-01 -4.984030154770353e-01 -4.980976654859903e-01 -4.977922686591017e-01 -4.974868253646026e-01 - -4.971813362150598e-01 -4.968758018164073e-01 -4.965702219796178e-01 -4.962645970518764e-01 -4.959589283986423e-01 - -4.956532161259331e-01 -4.953474601672504e-01 -4.950416611894621e-01 -4.947358197709370e-01 -4.944299362131679e-01 - -4.941240104625670e-01 -4.938180432013966e-01 -4.935120353360559e-01 -4.932059869696777e-01 -4.928998983832586e-01 - -4.925937700937396e-01 -4.922876025288242e-01 -4.919813957951697e-01 -4.916751499430368e-01 -4.913688660561277e-01 - -4.910625447982750e-01 -4.907561860728009e-01 -4.904497902858990e-01 -4.901433579647613e-01 -4.898368894758774e-01 - -4.895303847877975e-01 -4.892238442443610e-01 -4.889172690570770e-01 -4.886106594399146e-01 -4.883040152916479e-01 - -4.879973371198497e-01 -4.876906255185612e-01 -4.873838808516193e-01 -4.870771028969680e-01 -4.867702923235035e-01 - -4.864634502410182e-01 -4.861565765237592e-01 -4.858496713307078e-01 -4.855427352755911e-01 -4.852357685536697e-01 - -4.849287714451036e-01 -4.846217444589359e-01 -4.843146879997467e-01 -4.840076025123002e-01 -4.837004885060202e-01 - -4.833933461066379e-01 -4.830861755003688e-01 -4.827789772517898e-01 -4.824717516127337e-01 -4.821644988235214e-01 - -4.818572195031119e-01 -4.815499140763169e-01 -4.812425828318353e-01 -4.809352261296052e-01 -4.806278443199989e-01 - -4.803204376463540e-01 -4.800130060714603e-01 -4.797055501717924e-01 -4.793980709573083e-01 -4.790905684347367e-01 - -4.787830426340720e-01 -4.784754939887473e-01 -4.781679231200341e-01 -4.778603302286951e-01 -4.775527150015833e-01 - -4.772450784284375e-01 -4.769374213667171e-01 -4.766297434623847e-01 -4.763220450397429e-01 -4.760143266869929e-01 - -4.757065886153464e-01 -4.753988310011543e-01 -4.750910541528841e-01 -4.747832586964973e-01 -4.744754450010169e-01 - -4.741676132522562e-01 -4.738597638648681e-01 -4.735518971269201e-01 -4.732440131603057e-01 -4.729361121339242e-01 - -4.726281945136708e-01 -4.723202610280838e-01 -4.720123119889466e-01 -4.717043475548789e-01 -4.713963678930571e-01 - -4.710883732580126e-01 -4.707803639362851e-01 -4.704723402372425e-01 -4.701643027667922e-01 -4.698562520096238e-01 - -4.695481878708884e-01 -4.692401107063794e-01 -4.689320210638210e-01 -4.686239190614940e-01 -4.683158048406638e-01 - -4.680076787162389e-01 -4.676995413185929e-01 -4.673913930202820e-01 -4.670832339045677e-01 -4.667750641928977e-01 - -4.664668842720264e-01 -4.661586945788764e-01 -4.658504950199774e-01 -4.655422858974875e-01 -4.652340682220931e-01 - -4.649258420178881e-01 -4.646176071935555e-01 -4.643093642460228e-01 -4.640011135361189e-01 -4.636928552533583e-01 - -4.633845894780055e-01 -4.630763167063440e-01 -4.627680375263447e-01 -4.624597520114774e-01 -4.621514604268375e-01 - -4.618431632080228e-01 -4.615348605890552e-01 -4.612265525685530e-01 -4.609182391698630e-01 -4.606099213200685e-01 - -4.603015994943055e-01 -4.599932734377760e-01 -4.596849434943749e-01 -4.593766101319814e-01 -4.590682736286037e-01 - -4.587599339472412e-01 -4.584515913122191e-01 -4.581432465762054e-01 -4.578348999443045e-01 -4.575265513883392e-01 - -4.572182012155285e-01 -4.569098498253546e-01 -4.566014974456956e-01 -4.562931438038699e-01 -4.559847894939479e-01 - -4.556764355440957e-01 -4.553680818446301e-01 -4.550597283221777e-01 -4.547513752454754e-01 -4.544430231318768e-01 - -4.541346721146189e-01 -4.538263219879204e-01 -4.535179736207505e-01 -4.532096276207381e-01 -4.529012837320638e-01 - -4.525929421989657e-01 -4.522846033793929e-01 -4.519762674029318e-01 -4.516679344715044e-01 -4.513596049388520e-01 - -4.510512793496801e-01 -4.507429578901284e-01 -4.504346405869434e-01 -4.501263277269192e-01 -4.498180196893253e-01 - -4.495097167463535e-01 -4.492014186979058e-01 -4.488931259139300e-01 -4.485848392328776e-01 -4.482765586745183e-01 - -4.479682843350483e-01 -4.476600166157323e-01 -4.473517555800268e-01 -4.470435013321629e-01 -4.467352542154915e-01 - -4.464270145748750e-01 -4.461187827567155e-01 -4.458105590951706e-01 -4.455023436689998e-01 -4.451941365719282e-01 - -4.448859382022067e-01 -4.445777486373541e-01 -4.442695679571050e-01 -4.439613968717006e-01 -4.436532356916815e-01 - -4.433450843880059e-01 -4.430369431657580e-01 -4.427288122616561e-01 -4.424206918620519e-01 -4.421125820372482e-01 - -4.418044832064567e-01 -4.414963960811867e-01 -4.411883204960218e-01 -4.408802564087612e-01 -4.405722043668788e-01 - -4.402641646390490e-01 -4.399561373068210e-01 -4.396481224088197e-01 -4.393401203468038e-01 -4.390321316119934e-01 - -4.387241564347777e-01 -4.384161947343386e-01 -4.381082465266398e-01 -4.378003125430411e-01 -4.374923928277115e-01 - -4.371844871230922e-01 -4.368765963346815e-01 -4.365687207997857e-01 -4.362608601883623e-01 -4.359530147661063e-01 - -4.356451849773876e-01 -4.353373711547212e-01 -4.350295729831375e-01 -4.347217906709347e-01 -4.344140253247259e-01 - -4.341062767701542e-01 -4.337985447574569e-01 -4.334908298973194e-01 -4.331831324142745e-01 -4.328754522838512e-01 - -4.325677895304312e-01 -4.322601446380396e-01 -4.319525182069930e-01 -4.316449103351276e-01 -4.313373209430619e-01 - -4.310297500384340e-01 -4.307221981580691e-01 -4.304146654764764e-01 -4.301071518609876e-01 -4.297996578556980e-01 - -4.294921838432407e-01 -4.291847298181669e-01 -4.288772959356691e-01 -4.285698824691314e-01 -4.282624896947286e-01 - -4.279551173581843e-01 -4.276477655542056e-01 -4.273404353166645e-01 -4.270331268873108e-01 -4.267258400671970e-01 - -4.264185747737768e-01 -4.261113314513503e-01 -4.258041105111009e-01 -4.254969114260224e-01 -4.251897346526543e-01 - -4.248825811839114e-01 -4.245754507348872e-01 -4.242683433304872e-01 -4.239612594489042e-01 -4.236541990429175e-01 - -4.233471621233121e-01 -4.230401489624036e-01 -4.227331599159186e-01 -4.224261953202194e-01 -4.221192554076946e-01 - -4.218123401221037e-01 -4.215054495276057e-01 -4.211985840665567e-01 -4.208917437341202e-01 -4.205849285470991e-01 - -4.202781391077526e-01 -4.199713756820169e-01 -4.196646382796324e-01 -4.193579269625680e-01 -4.190512419898234e-01 - -4.187445835885104e-01 -4.184379514023820e-01 -4.181313458657921e-01 -4.178247679943504e-01 -4.175182174706034e-01 - -4.172116941638125e-01 -4.169051985589959e-01 -4.165987308801878e-01 -4.162922910262470e-01 -4.159858787333477e-01 - -4.156794948456864e-01 -4.153731400237493e-01 -4.150668138055245e-01 -4.147605162480433e-01 -4.144542477033889e-01 - -4.141480084083939e-01 -4.138417983331389e-01 -4.135356175072968e-01 -4.132294665425894e-01 -4.129233456523720e-01 - -4.126172547353913e-01 -4.123111939769975e-01 -4.120051637027982e-01 -4.116991641480549e-01 -4.113931948631621e-01 - -4.110872561089984e-01 -4.107813489720965e-01 -4.104754732505308e-01 -4.101696286974395e-01 -4.098638156566466e-01 - -4.095580344057681e-01 -4.092522850492459e-01 -4.089465675148873e-01 -4.086408821301867e-01 -4.083352292811099e-01 - -4.080296090087697e-01 -4.077240214925531e-01 -4.074184669621912e-01 -4.071129454474836e-01 -4.068074568206541e-01 - -4.065020011172992e-01 -4.061965792344674e-01 -4.058911914234347e-01 -4.055858372701102e-01 -4.052805169731385e-01 - -4.049752308691225e-01 -4.046699791746853e-01 -4.043647616984872e-01 -4.040595785275335e-01 -4.037544302850327e-01 - -4.034493171430220e-01 -4.031442391412985e-01 -4.028391964411297e-01 -4.025341890399178e-01 -4.022292169515432e-01 - -4.019242804318620e-01 -4.016193797575413e-01 -4.013145151618574e-01 -4.010096867767989e-01 -4.007048946739946e-01 - -4.004001389575452e-01 -4.000954199442892e-01 -3.997907376333255e-01 -3.994860918450180e-01 -3.991814831388100e-01 - -3.988769118682245e-01 -3.985723779299208e-01 -3.982678813725196e-01 -3.979634224118638e-01 -3.976590013430957e-01 - -3.973546179557737e-01 -3.970502723184750e-01 -3.967459652757308e-01 -3.964416967373386e-01 -3.961374664325438e-01 - -3.958332748416728e-01 -3.955291221412219e-01 -3.952250082276700e-01 -3.949209329883424e-01 -3.946168969005399e-01 - -3.943129006192436e-01 -3.940089438207542e-01 -3.937050264421336e-01 -3.934011488327164e-01 -3.930973111392007e-01 - -3.927935133510078e-01 -3.924897554398895e-01 -3.921860379028622e-01 -3.918823611410527e-01 -3.915787251272155e-01 - -3.912751296302741e-01 -3.909715747221262e-01 -3.906680610479274e-01 -3.903645884467465e-01 -3.900611567141484e-01 - -3.897577665105899e-01 -3.894544180732338e-01 -3.891511112918067e-01 -3.888478460867855e-01 -3.885446227676595e-01 - -3.882414417069796e-01 -3.879383024897914e-01 -3.876352053351357e-01 -3.873321510269954e-01 -3.870291394376005e-01 - -3.867261704550462e-01 -3.864232442776043e-01 -3.861203610538394e-01 -3.858175208256477e-01 -3.855147235659399e-01 - -3.852119696012977e-01 -3.849092593053318e-01 -3.846065928280623e-01 -3.843039700003283e-01 -3.840013907871894e-01 - -3.836988557264463e-01 -3.833963646642737e-01 -3.830939173673272e-01 -3.827915146861536e-01 -3.824891567344230e-01 - -3.821868431312930e-01 -3.818845742897094e-01 -3.815823505036508e-01 -3.812801717050347e-01 -3.809780375081945e-01 - -3.806759481537249e-01 -3.803739045452896e-01 -3.800719066553854e-01 -3.797699542729503e-01 -3.794680474344709e-01 - -3.791661864151066e-01 -3.788643713579414e-01 -3.785626020610045e-01 -3.782608787892401e-01 -3.779592019649877e-01 - -3.776575717504184e-01 -3.773559879986245e-01 -3.770544506277551e-01 -3.767529601718599e-01 -3.764515165488658e-01 - -3.761501194541416e-01 -3.758487697291592e-01 -3.755474675286999e-01 -3.752462123142175e-01 -3.749450044400430e-01 - -3.746438442933219e-01 -3.743427319385532e-01 -3.740416670860849e-01 -3.737406497610264e-01 -3.734396805632812e-01 - -3.731387597991040e-01 -3.728378873981389e-01 -3.725370629746288e-01 -3.722362869751284e-01 -3.719355598195744e-01 - -3.716348809475082e-01 -3.713342505611615e-01 -3.710336692885385e-01 -3.707331373206220e-01 -3.704326544188714e-01 - -3.701322203470578e-01 -3.698318357923215e-01 -3.695315007664240e-01 -3.692312147431765e-01 -3.689309784821330e-01 - -3.686307923312130e-01 -3.683306558583173e-01 -3.680305692832940e-01 -3.677305328772401e-01 -3.674305466155561e-01 - -3.671306102835627e-01 -3.668307239979260e-01 -3.665308885123383e-01 -3.662311039528895e-01 -3.659313700864294e-01 - -3.656316867340536e-01 -3.653320542170925e-01 -3.650324728818179e-01 -3.647329423252613e-01 -3.644334627823841e-01 - -3.641340348652060e-01 -3.638346584224414e-01 -3.635353333854674e-01 -3.632360599381753e-01 -3.629368383087880e-01 - -3.626376683911322e-01 -3.623385498640058e-01 -3.620394834143431e-01 -3.617404694429358e-01 -3.614415075289109e-01 - -3.611425978472304e-01 -3.608437406892576e-01 -3.605449360396625e-01 -3.602461837170217e-01 -3.599474837636126e-01 - -3.596488368123176e-01 -3.593502429497555e-01 -3.590517019950174e-01 -3.587532141258951e-01 -3.584547794364419e-01 - -3.581563978967544e-01 -3.578580694598877e-01 -3.575597943932133e-01 -3.572615731273898e-01 -3.569634054963255e-01 - -3.566652915450074e-01 -3.563672316398869e-01 -3.560692255181004e-01 -3.557712730433470e-01 -3.554733745722332e-01 - -3.551755304325120e-01 -3.548777407381354e-01 -3.545800053200450e-01 -3.542823243820459e-01 -3.539846981602633e-01 - -3.536871265064687e-01 -3.533896092936707e-01 -3.530921466577667e-01 -3.527947392696623e-01 -3.524973870763591e-01 - -3.522000896417020e-01 -3.519028473926252e-01 -3.516056606257513e-01 -3.513085292624320e-01 -3.510114529438408e-01 - -3.507144318797571e-01 -3.504174668509267e-01 -3.501205576763053e-01 -3.498237041407538e-01 -3.495269064579332e-01 - -3.492301648012658e-01 -3.489334792023763e-01 -3.486368495320163e-01 -3.483402759532310e-01 -3.480437587608516e-01 - -3.477472981563033e-01 -3.474508940116457e-01 -3.471545462266357e-01 -3.468582552838557e-01 -3.465620210594309e-01 - -3.462658431862374e-01 -3.459697223261950e-01 -3.456736587298253e-01 -3.453776521244075e-01 -3.450817025977070e-01 - -3.447858103250944e-01 -3.444899754033867e-01 -3.441941976114102e-01 -3.438984770490408e-01 -3.436028143288083e-01 - -3.433072093931014e-01 -3.430116620696204e-01 -3.427161725111446e-01 -3.424207408695913e-01 -3.421253671506906e-01 - -3.418300511322294e-01 -3.415347931565998e-01 -3.412395936962896e-01 -3.409444525560181e-01 -3.406493696743920e-01 - -3.403543451949735e-01 -3.400593792856730e-01 -3.397644718554241e-01 -3.394696227303268e-01 -3.391748324448361e-01 - -3.388801012525273e-01 -3.385854289098167e-01 -3.382908154719833e-01 -3.379962610967925e-01 -3.377017658856785e-01 - -3.374073296405456e-01 -3.371129523992028e-01 -3.368186347618567e-01 -3.365243767275647e-01 -3.362301780997549e-01 - -3.359360390044588e-01 -3.356419595939377e-01 -3.353479398983790e-01 -3.350539796822969e-01 -3.347600792157354e-01 - -3.344662390001809e-01 -3.341724588683134e-01 -3.338787387386647e-01 -3.335850787505256e-01 -3.332914790393797e-01 - -3.329979395469141e-01 -3.327044601082655e-01 -3.324110411740308e-01 -3.321176830325031e-01 -3.318243854727410e-01 - -3.315311485033696e-01 -3.312379722613320e-01 -3.309448568815591e-01 -3.306518021855764e-01 -3.303588081394571e-01 - -3.300658753265905e-01 -3.297730038003383e-01 -3.294801933460689e-01 -3.291874440822869e-01 -3.288947561448500e-01 - -3.286021295596533e-01 -3.283095641084477e-01 -3.280170600152969e-01 -3.277246178092963e-01 -3.274322373144385e-01 - -3.271399184133136e-01 -3.268476612759387e-01 -3.265554660369243e-01 -3.262633326374516e-01 -3.259712608638953e-01 - -3.256792511518811e-01 -3.253873038511834e-01 -3.250954187049387e-01 -3.248035957166725e-01 -3.245118350464998e-01 - -3.242201368055027e-01 -3.239285008232202e-01 -3.236369270127419e-01 -3.233454159517716e-01 -3.230539677655248e-01 - -3.227625822208953e-01 -3.224712593689608e-01 -3.221799993547627e-01 -3.218888022707884e-01 -3.215976678728723e-01 - -3.213065962862219e-01 -3.210155880538063e-01 -3.207246430922022e-01 -3.204337612603162e-01 -3.201429426545060e-01 - -3.198521874188910e-01 -3.195614955407240e-01 -3.192708667833873e-01 -3.189803015317205e-01 -3.186898001852494e-01 - -3.183993624745159e-01 -3.181089883645859e-01 -3.178186780215274e-01 -3.175284315788672e-01 -3.172382488912609e-01 - -3.169481298117736e-01 -3.166580748847834e-01 -3.163680842820584e-01 -3.160781577505636e-01 -3.157882953403168e-01 - -3.154984971942622e-01 -3.152087634033934e-01 -3.149190937439705e-01 -3.146294882798918e-01 -3.143399475483734e-01 - -3.140504715109739e-01 -3.137610600081304e-01 -3.134717131245625e-01 -3.131824310053718e-01 -3.128932136614712e-01 - -3.126040608259110e-01 -3.123149728003283e-01 -3.120259500284038e-01 -3.117369923103007e-01 -3.114480995811182e-01 - -3.111592719695180e-01 -3.108705096041851e-01 -3.105818123704323e-01 -3.102931800853200e-01 -3.100046132424714e-01 - -3.097161120700553e-01 -3.094276763275429e-01 -3.091393060498078e-01 -3.088510013669117e-01 -3.085627623567511e-01 - -3.082745888090075e-01 -3.079864807413559e-01 -3.076984387104112e-01 -3.074104627037881e-01 -3.071225525229602e-01 - -3.068347082674415e-01 -3.065469300647063e-01 -3.062592179233167e-01 -3.059715715883658e-01 -3.056839913222955e-01 - -3.053964776128304e-01 -3.051090302429263e-01 -3.048216491115613e-01 -3.045343343664140e-01 -3.042470861256498e-01 - -3.039599042912569e-01 -3.036727886539801e-01 -3.033857396783212e-01 -3.030987576532087e-01 -3.028118423290159e-01 - -3.025249936916685e-01 -3.022382118572411e-01 -3.019514969324824e-01 -3.016648487319269e-01 -3.013782672163520e-01 - -3.010917529380510e-01 -3.008053059332530e-01 -3.005189259718208e-01 -3.002326131255288e-01 -2.999463675243501e-01 - -2.996601892115071e-01 -2.993740779431134e-01 -2.990880338991673e-01 -2.988020575697556e-01 -2.985161488129333e-01 - -2.982303074956766e-01 -2.979445337070337e-01 -2.976588275957710e-01 -2.973731891105994e-01 -2.970876179949718e-01 - -2.968021146693378e-01 -2.965166794729635e-01 -2.962313121299224e-01 -2.959460126205053e-01 -2.956607810824475e-01 - -2.953756176130727e-01 -2.950905220348498e-01 -2.948054942542040e-01 -2.945205348259674e-01 -2.942356438398593e-01 - -2.939508210351428e-01 -2.936660664737455e-01 -2.933813802767271e-01 -2.930967624892026e-01 -2.928122128931882e-01 - -2.925277316158055e-01 -2.922433191494531e-01 -2.919589753765323e-01 -2.916747001400424e-01 -2.913904935350139e-01 - -2.911063557118664e-01 -2.908222866434848e-01 -2.905382860439090e-01 -2.902543542778646e-01 -2.899704917370004e-01 - -2.896866981425306e-01 -2.894029734511842e-01 -2.891193178139609e-01 -2.888357313345801e-01 -2.885522138545054e-01 - -2.882687652243500e-01 -2.879853859636904e-01 -2.877020762131379e-01 -2.874188357014512e-01 -2.871356645025479e-01 - -2.868525627422169e-01 -2.865695304469716e-01 -2.862865673963798e-01 -2.860036736642309e-01 -2.857208497673618e-01 - -2.854380956360413e-01 -2.851554110854154e-01 -2.848727961880673e-01 -2.845902510831507e-01 -2.843077757793696e-01 - -2.840253700094237e-01 -2.837430340397069e-01 -2.834607682748240e-01 -2.831785725328111e-01 -2.828964467316310e-01 - -2.826143909542473e-01 -2.823324053101364e-01 -2.820504896922502e-01 -2.817686439371250e-01 -2.814868685136343e-01 - -2.812051636152371e-01 -2.809235289745332e-01 -2.806419646055033e-01 -2.803604706362606e-01 -2.800790471610514e-01 - -2.797976939416736e-01 -2.795164109639519e-01 -2.792351987736799e-01 -2.789540573481899e-01 -2.786729864814172e-01 - -2.783919862645312e-01 -2.781110567914744e-01 -2.778301980476193e-01 -2.775494098202491e-01 -2.772686923282846e-01 - -2.769880459823117e-01 -2.767074706347814e-01 -2.764269661749121e-01 -2.761465326612197e-01 -2.758661702373058e-01 - -2.755858788282252e-01 -2.753056582075042e-01 -2.750255088041456e-01 -2.747454308713073e-01 -2.744654241403574e-01 - -2.741854886058927e-01 -2.739056243892176e-01 -2.736258315782464e-01 -2.733461099674180e-01 -2.730664595012521e-01 - -2.727868807168794e-01 -2.725073736368404e-01 -2.722279380246611e-01 -2.719485739535283e-01 -2.716692815376729e-01 - -2.713900607905190e-01 -2.711109114418696e-01 -2.708318336740216e-01 -2.705528279896257e-01 -2.702738942089605e-01 - -2.699950321750810e-01 -2.697162419812612e-01 -2.694375237750356e-01 -2.691588774953904e-01 -2.688803028674867e-01 - -2.686018002777490e-01 -2.683233700490228e-01 -2.680450119322323e-01 -2.677667258920440e-01 -2.674885120321642e-01 - -2.672103704327183e-01 -2.669323009240009e-01 -2.666543034142266e-01 -2.663763784024609e-01 -2.660985259744725e-01 - -2.658207458961011e-01 -2.655430381891060e-01 -2.652654029648259e-01 -2.649878402880381e-01 -2.647103499069445e-01 - -2.644329319184849e-01 -2.641555868035665e-01 -2.638783144422805e-01 -2.636011146840161e-01 -2.633239876271375e-01 - -2.630469333706403e-01 -2.627699518665801e-01 -2.624930428881614e-01 -2.622162067361601e-01 -2.619394437425979e-01 - -2.616627537197243e-01 -2.613861365959049e-01 -2.611095924398818e-01 -2.608331213683194e-01 -2.605567232565551e-01 - -2.602803979638560e-01 -2.600041459185203e-01 -2.597279672559259e-01 -2.594518617711524e-01 -2.591758294668244e-01 - -2.588998704444723e-01 -2.586239847880919e-01 -2.583481722507706e-01 -2.580724328621725e-01 -2.577967671126083e-01 - -2.575211749406902e-01 -2.572456561780725e-01 -2.569702108956164e-01 -2.566948391959332e-01 -2.564195410517088e-01 - -2.561443162003717e-01 -2.558691649278121e-01 -2.555940876367002e-01 -2.553190840839927e-01 -2.550441541814838e-01 - -2.547692980445108e-01 -2.544945157803290e-01 -2.542198072584164e-01 -2.539451722830000e-01 -2.536706112997469e-01 - -2.533961245035316e-01 -2.531217116489478e-01 -2.528473727232912e-01 -2.525731078267265e-01 -2.522989170513077e-01 - -2.520248001810547e-01 -2.517507572028029e-01 -2.514767886096237e-01 -2.512028943623831e-01 -2.509290742545349e-01 - -2.506553283625735e-01 -2.503816568034038e-01 -2.501080595782905e-01 -2.498345364108095e-01 -2.495610875124447e-01 - -2.492877133133172e-01 -2.490144136112123e-01 -2.487411882994743e-01 -2.484680374856057e-01 -2.481949612635986e-01 - -2.479219595287280e-01 -2.476490320734136e-01 -2.473761793087864e-01 -2.471034014703498e-01 -2.468306982957061e-01 - -2.465580697844871e-01 -2.462855160432138e-01 -2.460130371204629e-01 -2.457406328233614e-01 -2.454683031113906e-01 - -2.451960484794311e-01 -2.449238689415910e-01 -2.446517642712055e-01 -2.443797345227543e-01 -2.441077797933181e-01 - -2.438359000947776e-01 -2.435640951889690e-01 -2.432923652315951e-01 -2.430207106571287e-01 -2.427491313175689e-01 - -2.424776270783986e-01 -2.422061980074125e-01 -2.419348442072336e-01 -2.416635656192684e-01 -2.413923620306189e-01 - -2.411212337762792e-01 -2.408501811283544e-01 -2.405792038734625e-01 -2.403083019688687e-01 -2.400374754936993e-01 - -2.397667245256450e-01 -2.394960488977194e-01 -2.392254485194238e-01 -2.389549238762380e-01 -2.386844750244205e-01 - -2.384141017100180e-01 -2.381438039886236e-01 -2.378735819631148e-01 -2.376034356560101e-01 -2.373333648418426e-01 - -2.370633696160408e-01 -2.367934504134751e-01 -2.365236071336530e-01 -2.362538396334552e-01 -2.359841479713349e-01 - -2.357145322333765e-01 -2.354449923780104e-01 -2.351755281955192e-01 -2.349061399838227e-01 -2.346368280467886e-01 - -2.343675921502802e-01 -2.340984322401892e-01 -2.338293484224673e-01 -2.335603407944267e-01 -2.332914091991481e-01 - -2.330225534791031e-01 -2.327537740958542e-01 -2.324850711724544e-01 -2.322164444575208e-01 -2.319478939696494e-01 - -2.316794198107119e-01 -2.314110220364787e-01 -2.311427004172850e-01 -2.308744549913938e-01 -2.306062862221652e-01 - -2.303381940399467e-01 -2.300701782673901e-01 -2.298022389505013e-01 -2.295343762055658e-01 -2.292665900251787e-01 - -2.289988801367178e-01 -2.287312467963517e-01 -2.284636903804389e-01 -2.281962106639611e-01 -2.279288075702767e-01 - -2.276614812041137e-01 -2.273942316314865e-01 -2.271270587234099e-01 -2.268599623216859e-01 -2.265929428586625e-01 - -2.263260004971463e-01 -2.260591349680134e-01 -2.257923462859340e-01 -2.255256345570404e-01 -2.252589998316905e-01 - -2.249924418873443e-01 -2.247259607239798e-01 -2.244595568451081e-01 -2.241932301870257e-01 -2.239269805236896e-01 - -2.236608079513920e-01 -2.233947125724077e-01 -2.231286943677930e-01 -2.228627530899186e-01 -2.225968889349937e-01 - -2.223311022938890e-01 -2.220653929888047e-01 -2.217997609137618e-01 -2.215342061492806e-01 -2.212687287997047e-01 - -2.210033287645195e-01 -2.207380058226258e-01 -2.204727603658667e-01 -2.202075926188733e-01 -2.199425023254976e-01 - -2.196774894791217e-01 -2.194125541827232e-01 -2.191476964953657e-01 -2.188829162198361e-01 -2.186182133017065e-01 - -2.183535882155842e-01 -2.180890409721393e-01 -2.178245713492862e-01 -2.175601793915103e-01 -2.172958651996608e-01 - -2.170316287941991e-01 -2.167674699222372e-01 -2.165033887351043e-01 -2.162393856655618e-01 -2.159754605317784e-01 - -2.157116131976179e-01 -2.154478437626437e-01 -2.151841523053365e-01 -2.149205387568082e-01 -2.146570029331132e-01 - -2.143935451423346e-01 -2.141301656253313e-01 -2.138668641770334e-01 -2.136036407648879e-01 -2.133404954698548e-01 - -2.130774283590253e-01 -2.128144392711416e-01 -2.125515281171839e-01 -2.122886953403734e-01 -2.120259409959825e-01 - -2.117632648531722e-01 -2.115006669388265e-01 -2.112381473557379e-01 -2.109757061544524e-01 -2.107133431005909e-01 - -2.104510582708100e-01 -2.101888520817322e-01 -2.099267244352251e-01 -2.096646751892664e-01 -2.094027043922436e-01 - -2.091408121382980e-01 -2.088789983898283e-01 -2.086172629233026e-01 -2.083556060294393e-01 -2.080940280081475e-01 - -2.078325286261216e-01 -2.075711078316715e-01 -2.073097657230958e-01 -2.070485023681648e-01 -2.067873176254528e-01 - -2.065262113703670e-01 -2.062651840261599e-01 -2.060042356935543e-01 -2.057433661320316e-01 -2.054825753736384e-01 - -2.052218635119340e-01 -2.049612305777034e-01 -2.047006763593381e-01 -2.044402009029163e-01 -2.041798046444743e-01 - -2.039194875091236e-01 -2.036592493288050e-01 -2.033990901597007e-01 -2.031390101041152e-01 -2.028790091364410e-01 - -2.026190869860804e-01 -2.023592439213894e-01 -2.020994803209571e-01 -2.018397959336108e-01 -2.015801906636277e-01 - -2.013206646163115e-01 -2.010612178968381e-01 -2.008018503846473e-01 -2.005425618909167e-01 -2.002833527994660e-01 - -2.000242232866459e-01 -1.997651731545872e-01 -1.995062023757428e-01 -1.992473110134654e-01 -1.989884991329442e-01 - -1.987297665552775e-01 -1.984711132804359e-01 -1.982125397288479e-01 -1.979540458641874e-01 -1.976956315048893e-01 - -1.974372966986851e-01 -1.971790415364275e-01 -1.969208660181268e-01 -1.966627699138122e-01 -1.964047534115951e-01 - -1.961468168792641e-01 -1.958889601415059e-01 -1.956311830976701e-01 -1.953734858227050e-01 -1.951158683885618e-01 - -1.948583307060198e-01 -1.946008726082255e-01 -1.943434944554087e-01 -1.940861964418109e-01 -1.938289783248288e-01 - -1.935718400929853e-01 -1.933147818435645e-01 -1.930578036445209e-01 -1.928009053047615e-01 -1.925440867668252e-01 - -1.922873484836986e-01 -1.920306904586313e-01 -1.917741124759950e-01 -1.915176145882685e-01 -1.912611968971867e-01 - -1.910048594156118e-01 -1.907486018758652e-01 -1.904924244300230e-01 -1.902363275204000e-01 -1.899803109613821e-01 - -1.897243746214878e-01 -1.894685186111405e-01 -1.892127429944364e-01 -1.889570476814606e-01 -1.887014324762902e-01 - -1.884458977092228e-01 -1.881904436322386e-01 -1.879350700181010e-01 -1.876797768445363e-01 -1.874245641980662e-01 - -1.871694321106837e-01 -1.869143804464632e-01 -1.866594091449939e-01 -1.864045185802509e-01 -1.861497088150435e-01 - -1.858949796742653e-01 -1.856403311585743e-01 -1.853857633524328e-01 -1.851312763093270e-01 -1.848768697910832e-01 - -1.846225438828809e-01 -1.843682990131126e-01 -1.841141350478542e-01 -1.838600518410295e-01 -1.836060494900988e-01 - -1.833521280737523e-01 -1.830982875326949e-01 -1.828445276569093e-01 -1.825908487213151e-01 -1.823372510073639e-01 - -1.820837342990139e-01 -1.818302985608840e-01 -1.815769438919524e-01 -1.813236703339543e-01 -1.810704777470943e-01 - -1.808173660274447e-01 -1.805643355946649e-01 -1.803113865319381e-01 -1.800585185867421e-01 -1.798057318207557e-01 - -1.795530263298101e-01 -1.793004021140676e-01 -1.790478589821669e-01 -1.787953969871552e-01 -1.785430165333783e-01 - -1.782907175616041e-01 -1.780384999147782e-01 -1.777863636186671e-01 -1.775343087850783e-01 -1.772823354138563e-01 - -1.770304432439544e-01 -1.767786324996124e-01 -1.765269035206169e-01 -1.762752561209628e-01 -1.760236902365481e-01 - -1.757722059508868e-01 -1.755208033072168e-01 -1.752694821962465e-01 -1.750182424985018e-01 -1.747670845873172e-01 - -1.745160085943736e-01 -1.742650142826787e-01 -1.740141016708582e-01 -1.737632708599284e-01 -1.735125219002990e-01 - -1.732618545819516e-01 -1.730112688968157e-01 -1.727607652962038e-01 -1.725103437360838e-01 -1.722600040199003e-01 - -1.720097462053399e-01 -1.717595703957765e-01 -1.715094765937824e-01 -1.712594645505801e-01 -1.710095344617568e-01 - -1.707596867053610e-01 -1.705099210652020e-01 -1.702602374503936e-01 -1.700106359820640e-01 -1.697611167032507e-01 - -1.695116795170456e-01 -1.692623242857098e-01 -1.690130513415946e-01 -1.687638608735592e-01 -1.685147526839133e-01 - -1.682657267304136e-01 -1.680167830834059e-01 -1.677679218434041e-01 -1.675191428301483e-01 -1.672704459776749e-01 - -1.670218317162355e-01 -1.667733000505553e-01 -1.665248507843929e-01 -1.662764839848620e-01 -1.660281997331086e-01 - -1.657799980211539e-01 -1.655318786421316e-01 -1.652838417439954e-01 -1.650358877061586e-01 -1.647880163635810e-01 - -1.645402275978841e-01 -1.642925215033296e-01 -1.640448981629310e-01 -1.637973575048030e-01 -1.635498993322754e-01 - -1.633025239587731e-01 -1.630552316214122e-01 -1.628080220971913e-01 -1.625608953706327e-01 -1.623138515347123e-01 - -1.620668906280902e-01 -1.618200125176413e-01 -1.615732171440627e-01 -1.613265048790783e-01 -1.610798757703294e-01 - -1.608333296326273e-01 -1.605868664946396e-01 -1.603404864451659e-01 -1.600941895233320e-01 -1.598479755194739e-01 - -1.596018445089071e-01 -1.593557968710357e-01 -1.591098325274174e-01 -1.588639513462271e-01 -1.586181533501567e-01 - -1.583724386633118e-01 -1.581268072684121e-01 -1.578812589110151e-01 -1.576357938605635e-01 -1.573904124176000e-01 - -1.571451143885420e-01 -1.568998997115455e-01 -1.566547684551118e-01 -1.564097207009810e-01 -1.561647563377750e-01 - -1.559198752534892e-01 -1.556750777971572e-01 -1.554303640753041e-01 -1.551857339241298e-01 -1.549411873472499e-01 - -1.546967244117141e-01 -1.544523451583313e-01 -1.542080493972972e-01 -1.539638371771692e-01 -1.537197089019022e-01 - -1.534756644902717e-01 -1.532317037874507e-01 -1.529878268669247e-01 -1.527440338285302e-01 -1.525003246495042e-01 - -1.522566990917994e-01 -1.520131573865194e-01 -1.517696998607227e-01 -1.515263263105132e-01 -1.512830366842278e-01 - -1.510398310896279e-01 -1.507967095609423e-01 -1.505536719818633e-01 -1.503107182379510e-01 -1.500678487166025e-01 - -1.498250635429138e-01 -1.495823624607518e-01 -1.493397455183047e-01 -1.490972128240516e-01 -1.488547643939502e-01 - -1.486124000468938e-01 -1.483701197975273e-01 -1.481279240643807e-01 -1.478858128086334e-01 -1.476437858541442e-01 - -1.474018432575297e-01 -1.471599850901578e-01 -1.469182113447434e-01 -1.466765218581870e-01 -1.464349167991909e-01 - -1.461933964691583e-01 -1.459519607332137e-01 -1.457106095126376e-01 -1.454693428712828e-01 -1.452281609001614e-01 - -1.449870635167667e-01 -1.447460505411944e-01 -1.445051223204885e-01 -1.442642790465533e-01 -1.440235204958664e-01 - -1.437828466645076e-01 -1.435422576460715e-01 -1.433017535021517e-01 -1.430613340788666e-01 -1.428209993367665e-01 - -1.425807496580667e-01 -1.423405850452980e-01 -1.421005053276286e-01 -1.418605105748216e-01 -1.416206008760722e-01 - -1.413807762310167e-01 -1.411410364179444e-01 -1.409013815814383e-01 -1.406618121114770e-01 -1.404223278620860e-01 - -1.401829287142080e-01 -1.399436147388266e-01 -1.397043860171121e-01 -1.394652424999606e-01 -1.392261840277533e-01 - -1.389872108800275e-01 -1.387483232704581e-01 -1.385095210193419e-01 -1.382708041155041e-01 -1.380321726381191e-01 - -1.377936266235328e-01 -1.375551659356028e-01 -1.373167905196480e-01 -1.370785007699294e-01 -1.368402967462084e-01 - -1.366021782602805e-01 -1.363641453151502e-01 -1.361261980034910e-01 -1.358883363925467e-01 -1.356505602730137e-01 - -1.354128697173978e-01 -1.351752651019714e-01 -1.349377463365720e-01 -1.347003133096952e-01 -1.344629660943524e-01 - -1.342257047644556e-01 -1.339885292721434e-01 -1.337514394288152e-01 -1.335144355004790e-01 -1.332775177574095e-01 - -1.330406860095451e-01 -1.328039402156265e-01 -1.325672804621033e-01 -1.323307068237664e-01 -1.320942191803451e-01 - -1.318578174250235e-01 -1.316215019436967e-01 -1.313852728254415e-01 -1.311491298574344e-01 -1.309130730812647e-01 - -1.306771025967214e-01 -1.304412184433993e-01 -1.302054204167683e-01 -1.299697085633917e-01 -1.297340833011096e-01 - -1.294985445422908e-01 -1.292630921400970e-01 -1.290277262032818e-01 -1.287924468024440e-01 -1.285572538860320e-01 - -1.283221472565841e-01 -1.280871271607027e-01 -1.278521939245786e-01 -1.276173473594251e-01 -1.273825873815436e-01 - -1.271479140654554e-01 -1.269133275291332e-01 -1.266788276689478e-01 -1.264444143112885e-01 -1.262100878411512e-01 - -1.259758484249543e-01 -1.257416958580221e-01 -1.255076301118343e-01 -1.252736512740011e-01 -1.250397594556589e-01 - -1.248059544551782e-01 -1.245722362561283e-01 -1.243386053032582e-01 -1.241050615437150e-01 -1.238716047916152e-01 - -1.236382351439431e-01 -1.234049527007845e-01 -1.231717574487822e-01 -1.229386491649988e-01 -1.227056280466961e-01 - -1.224726944551588e-01 -1.222398481939305e-01 -1.220070891810755e-01 -1.217744175349468e-01 -1.215418333321439e-01 - -1.213093364896874e-01 -1.210769268543440e-01 -1.208446047468073e-01 -1.206123703546746e-01 -1.203802234985189e-01 - -1.201481641556592e-01 -1.199161924040098e-01 -1.196843083373426e-01 -1.194525118101599e-01 -1.192208027778711e-01 - -1.189891816158967e-01 -1.187576483334740e-01 -1.185262027772708e-01 -1.182948450325541e-01 -1.180635751718018e-01 - -1.178323931740712e-01 -1.176012988598141e-01 -1.173702923768903e-01 -1.171393740841554e-01 -1.169085438684581e-01 - -1.166778016318426e-01 -1.164471474323627e-01 -1.162165813372163e-01 -1.159861033094216e-01 -1.157557132288848e-01 - -1.155254113554128e-01 -1.152951978878259e-01 -1.150650726784410e-01 -1.148350356935617e-01 -1.146050869998271e-01 - -1.143752266983624e-01 -1.141454546633286e-01 -1.139157708150553e-01 -1.136861755297615e-01 -1.134566688685596e-01 - -1.132272506625232e-01 -1.129979209389772e-01 -1.127686797968139e-01 -1.125395272939830e-01 -1.123104632216639e-01 - -1.120814876598629e-01 -1.118526009932446e-01 -1.116238031362107e-01 -1.113950939743172e-01 -1.111664735714766e-01 - -1.109379420230661e-01 -1.107094992989161e-01 -1.104811452047023e-01 -1.102528800189790e-01 -1.100247040176238e-01 - -1.097966169898620e-01 -1.095686189066022e-01 -1.093407098806465e-01 -1.091128899944971e-01 -1.088851591239916e-01 - -1.086575171512236e-01 -1.084299644451029e-01 -1.082025011238454e-01 -1.079751270251657e-01 -1.077478421434466e-01 - -1.075206465724022e-01 -1.072935404061887e-01 -1.070665234272605e-01 -1.068395956686409e-01 -1.066127575621145e-01 - -1.063860090403522e-01 -1.061593499609373e-01 -1.059327804074918e-01 -1.057063004552603e-01 -1.054799100848440e-01 - -1.052536091459819e-01 -1.050273978363624e-01 -1.048012764247322e-01 -1.045752447992682e-01 -1.043493029044653e-01 - -1.041234507912105e-01 -1.038976885616201e-01 -1.036720161437409e-01 -1.034464334142674e-01 -1.032209407082870e-01 - -1.029955381585720e-01 -1.027702255852857e-01 -1.025450030256683e-01 -1.023198705766582e-01 -1.020948282803886e-01 - -1.018698759615270e-01 -1.016450136357437e-01 -1.014202417243671e-01 -1.011955602054591e-01 -1.009709689162001e-01 - -1.007464679013254e-01 -1.005220572777319e-01 -1.002977370772110e-01 -1.000735070732387e-01 -9.984936745539402e-02 - -9.962531858349888e-02 -9.940136027998529e-02 -9.917749246814733e-02 -9.895371525770333e-02 -9.873002873335845e-02 - -9.850643282337790e-02 -9.828292738770521e-02 -9.805951276903688e-02 -9.783618914357473e-02 -9.761295629040607e-02 - -9.738981424317925e-02 -9.716676311420755e-02 -9.694380293900719e-02 -9.672093359332221e-02 -9.649815506782670e-02 - -9.627546771326484e-02 -9.605287156919239e-02 -9.583036651098850e-02 -9.560795255252680e-02 -9.538562978098189e-02 - -9.516339824129488e-02 -9.494125774199282e-02 -9.471920843970391e-02 -9.449725071216948e-02 -9.427538438593883e-02 - -9.405360936874554e-02 -9.383192580278800e-02 -9.361033376064058e-02 -9.338883317577901e-02 -9.316742389906425e-02 - -9.294610622995669e-02 -9.272488039403920e-02 -9.250374621386263e-02 -9.228270367992475e-02 -9.206175287916113e-02 - -9.184089387273792e-02 -9.162012656935895e-02 -9.139945093572596e-02 -9.117886729658348e-02 -9.095837571294788e-02 - -9.073797605928635e-02 -9.051766837713708e-02 -9.029745274779008e-02 -9.007732920697027e-02 -8.985729759887780e-02 - -8.963735802530043e-02 -8.941751083887589e-02 -8.919775594907166e-02 -8.897809325953572e-02 -8.875852286193828e-02 - -8.853904483959285e-02 -8.831965916578795e-02 -8.810036569419880e-02 -8.788116467295366e-02 -8.766205635082600e-02 - -8.744304058057480e-02 -8.722411733824492e-02 -8.700528670561582e-02 -8.678654875532379e-02 -8.656790339361393e-02 - -8.634935054757228e-02 -8.613089058374623e-02 -8.591252359970507e-02 -8.569424942256174e-02 -8.547606809595372e-02 - -8.525797972327777e-02 -8.503998436304407e-02 -8.482208183975883e-02 -8.460427219735964e-02 -8.438655581333676e-02 - -8.416893266387415e-02 -8.395140264416648e-02 -8.373396580036768e-02 -8.351662221748458e-02 -8.329937190808817e-02 - -8.308221474187347e-02 -8.286515089972675e-02 -8.264818063381729e-02 -8.243130387381740e-02 -8.221452057360500e-02 - -8.199783077068876e-02 -8.178123458056528e-02 -8.156473193866548e-02 -8.134832272179610e-02 -8.113200727104515e-02 - -8.091578573554094e-02 -8.069965795549490e-02 -8.048362394306618e-02 -8.026768379237301e-02 -8.005183759034226e-02 - -7.983608519016389e-02 -7.962042660317335e-02 -7.940486220827629e-02 -7.918939199917317e-02 -7.897401585103307e-02 - -7.875873382193239e-02 -7.854354599947752e-02 -7.832845240531904e-02 -7.811345290511561e-02 -7.789854765910142e-02 - -7.768373695009409e-02 -7.746902070156129e-02 -7.725439886068521e-02 -7.703987147751143e-02 -7.682543865920169e-02 - -7.661110037032860e-02 -7.639685648697914e-02 -7.618270730319152e-02 -7.596865299784139e-02 -7.575469343456721e-02 - -7.554082861289950e-02 -7.532705861915691e-02 -7.511338355056779e-02 -7.489980327273796e-02 -7.468631776375068e-02 - -7.447292742489155e-02 -7.425963225373161e-02 -7.404643208981297e-02 -7.383332706618533e-02 -7.362031725942129e-02 - -7.340740264369265e-02 -7.319458312424655e-02 -7.298185885257603e-02 -7.276923011698885e-02 -7.255669681825400e-02 - -7.234425890125808e-02 -7.213191646645117e-02 -7.191966959969415e-02 -7.170751827394115e-02 -7.149546237742448e-02 - -7.128350216363183e-02 -7.107163782537941e-02 -7.085986923051370e-02 -7.064819639413342e-02 -7.043661941815849e-02 - -7.022513838389523e-02 -7.001375316964638e-02 -6.980246372359999e-02 -6.959127044971054e-02 -6.938017339783993e-02 - -6.916917238807876e-02 -6.895826751099868e-02 -6.874745887832359e-02 -6.853674652264935e-02 -6.832613029387129e-02 - -6.811561029537151e-02 -6.790518687416305e-02 -6.769485994872884e-02 -6.748462944761908e-02 -6.727449549181348e-02 - -6.706445814195625e-02 -6.685451736224034e-02 -6.664467305023641e-02 -6.643492546019260e-02 -6.622527482862205e-02 - -6.601572100856345e-02 -6.580626400049541e-02 -6.559690390732385e-02 -6.538764078471235e-02 -6.517847455920224e-02 - -6.496940519404462e-02 -6.476043303620643e-02 -6.455155816426872e-02 -6.434278041275177e-02 -6.413409988235154e-02 - -6.392551667227454e-02 -6.371703078482928e-02 -6.350864213121965e-02 -6.330035079826633e-02 -6.309215709125325e-02 - -6.288406097171770e-02 -6.267606236590158e-02 -6.246816137578116e-02 -6.226035810132791e-02 -6.205265253482506e-02 - -6.184504450634240e-02 -6.163753424009603e-02 -6.143012204113525e-02 -6.122280779495761e-02 -6.101559145710207e-02 - -6.080847310111580e-02 -6.060145284620669e-02 -6.039453063876327e-02 -6.018770637541451e-02 -5.998098039534337e-02 - -5.977435284136760e-02 -5.956782355675167e-02 -5.936139258218223e-02 -5.915506002510895e-02 -5.894882595975996e-02 - -5.874269025717062e-02 -5.853665294379332e-02 -5.833071438748900e-02 -5.812487459491447e-02 -5.791913345983549e-02 - -5.771349104248068e-02 -5.750794745476003e-02 -5.730250273990040e-02 -5.709715674449271e-02 -5.689190963313420e-02 - -5.668676170442684e-02 -5.648171287301057e-02 -5.627676311138611e-02 -5.607191251359627e-02 -5.586716116856662e-02 - -5.566250902085241e-02 -5.545795595276776e-02 -5.525350230977423e-02 -5.504914828197500e-02 -5.484489368806074e-02 - -5.464073856561743e-02 -5.443668303623681e-02 -5.423272717677420e-02 -5.402887087270093e-02 -5.382511411736842e-02 - -5.362145727556954e-02 -5.341790037997223e-02 -5.321444331788154e-02 -5.301108618236487e-02 -5.280782907094528e-02 - -5.260467200594416e-02 -5.240161485390568e-02 -5.219865776343095e-02 -5.199580105954085e-02 -5.179304465507040e-02 - -5.159038850941820e-02 -5.138783273765680e-02 -5.118537740030552e-02 -5.098302246878324e-02 -5.078076787428482e-02 - -5.057861387937131e-02 -5.037656068404879e-02 -5.017460818262723e-02 -4.997275637519877e-02 -4.977100534878579e-02 - -4.956935521374012e-02 -4.936780587637167e-02 -4.916635729330274e-02 -4.896500983679772e-02 -4.876376358063662e-02 - -4.856261839799727e-02 -4.836157437280066e-02 -4.816063160553166e-02 -4.795979012910388e-02 -4.775904981223175e-02 - -4.755841077230219e-02 -4.735787336181510e-02 -4.715743752596301e-02 -4.695710319390285e-02 -4.675687045398216e-02 - -4.655673941737810e-02 -4.635671009364274e-02 -4.615678236145827e-02 -4.595695644691457e-02 -4.575723258610617e-02 - -4.555761069075770e-02 -4.535809077212207e-02 -4.515867291944397e-02 -4.495935719937229e-02 -4.476014355843901e-02 - -4.456103197632578e-02 -4.436202279051898e-02 -4.416311608901573e-02 -4.396431172960501e-02 -4.376560979706327e-02 - -4.356701040970479e-02 -4.336851362154585e-02 -4.317011930970618e-02 -4.297182755295056e-02 -4.277363871130811e-02 - -4.257555275870079e-02 -4.237756961321195e-02 -4.217968936488893e-02 -4.198191211978222e-02 -4.178423789759614e-02 - -4.158666657665847e-02 -4.138919837391426e-02 -4.119183356383482e-02 -4.099457203865310e-02 -4.079741379048268e-02 - -4.060035892668235e-02 -4.040340754077800e-02 -4.020655958670875e-02 -4.000981499812348e-02 -3.981317410229721e-02 - -3.961663704352115e-02 -3.942020369405195e-02 -3.922387410519079e-02 -3.902764838570288e-02 -3.883152661169272e-02 - -3.863550868276464e-02 -3.843959464464100e-02 -3.824378485096525e-02 -3.804807931112070e-02 -3.785247793879744e-02 - -3.765698082240899e-02 -3.746158806803077e-02 -3.726629970906549e-02 -3.707111562537097e-02 -3.687603600301111e-02 - -3.668106114329449e-02 -3.648619095542227e-02 -3.629142541706046e-02 -3.609676463615045e-02 -3.590220871216067e-02 - -3.570775761915167e-02 -3.551341127587861e-02 -3.531916998478909e-02 -3.512503392646860e-02 -3.493100298239093e-02 - -3.473707719308593e-02 -3.454325666569649e-02 -3.434954148093054e-02 -3.415593156072503e-02 -3.396242692622412e-02 - -3.376902792182854e-02 -3.357573459185429e-02 -3.338254684613227e-02 -3.318946476737597e-02 -3.299648846264201e-02 - -3.280361798076661e-02 -3.261085320981364e-02 -3.241819429994710e-02 -3.222564156785773e-02 -3.203319495411584e-02 - -3.184085442350271e-02 -3.164862007407277e-02 -3.145649201602077e-02 -3.126447024597763e-02 -3.107255466700169e-02 - -3.088074555671056e-02 -3.068904313085425e-02 -3.049744727803826e-02 -3.030595802638682e-02 -3.011457548570120e-02 - -2.992329974875160e-02 -2.973213075050443e-02 -2.954106848293515e-02 -2.935011329195715e-02 -2.915926525661732e-02 - -2.896852427673346e-02 -2.877789042941862e-02 -2.858736382466336e-02 -2.839694452567641e-02 -2.820663243092813e-02 - -2.801642765839682e-02 -2.782633053619610e-02 -2.763634102981755e-02 -2.744645909471058e-02 -2.725668483048721e-02 - -2.706701834793413e-02 -2.687745966148872e-02 -2.668800867127078e-02 -2.649866562411629e-02 -2.630943076513501e-02 - -2.612030399888650e-02 -2.593128533989631e-02 -2.574237489560391e-02 -2.555357276907920e-02 -2.536487891525730e-02 - -2.517629330290238e-02 -2.498781626631630e-02 -2.479944791947400e-02 -2.461118815951395e-02 -2.442303705775731e-02 - -2.423499472682666e-02 -2.404706124098910e-02 -2.385923651050157e-02 -2.367152062237768e-02 -2.348391391197065e-02 - -2.329641637680258e-02 -2.310902796361102e-02 -2.292174876507744e-02 -2.273457889435020e-02 -2.254751838574287e-02 - -2.236056713942959e-02 -2.217372537079298e-02 -2.198699334983061e-02 -2.180037099746794e-02 -2.161385831877313e-02 - -2.142745542221016e-02 -2.124116241611923e-02 -2.105497927356034e-02 -2.086890594375282e-02 -2.068294274565517e-02 - -2.049708982965088e-02 -2.031134709508492e-02 -2.012571460207244e-02 -1.994019246558534e-02 -1.975478077426674e-02 - -1.956947944878238e-02 -1.938428854559868e-02 -1.919920840769478e-02 -1.901423906121075e-02 -1.882938044349050e-02 - -1.864463264867233e-02 -1.845999578941159e-02 -1.827546991282947e-02 -1.809105492490821e-02 -1.790675101318496e-02 - -1.772255847013706e-02 -1.753847723077995e-02 -1.735450728912205e-02 -1.717064875577919e-02 -1.698690174123156e-02 - -1.680326624034783e-02 -1.661974219495428e-02 -1.643632989539235e-02 -1.625302952284425e-02 -1.606984099009794e-02 - -1.588676434582367e-02 -1.570379970237604e-02 -1.552094715767664e-02 -1.533820665109939e-02 -1.515557821470722e-02 - -1.497306218983010e-02 -1.479065863118324e-02 -1.460836746737021e-02 -1.442618879376636e-02 -1.424412272699600e-02 - -1.406216932715821e-02 -1.388032850365394e-02 -1.369860041414062e-02 -1.351698537084881e-02 -1.333548332713773e-02 - -1.315409426742165e-02 -1.297281830737383e-02 -1.279165555870565e-02 -1.261060603011550e-02 -1.242966965324022e-02 - -1.224884670128487e-02 -1.206813738892206e-02 -1.188754163203305e-02 -1.170705946859269e-02 -1.152669101347058e-02 - -1.134643637569507e-02 -1.116629550991553e-02 -1.098626842139487e-02 -1.080635544822676e-02 -1.062655668128806e-02 - -1.044687204494093e-02 -1.026730162280993e-02 -1.008784553433474e-02 -9.908503858526582e-03 -9.729276511698201e-03 - -9.550163618928804e-03 -9.371165505355611e-03 -9.192282154920128e-03 -9.013513542246960e-03 -8.834859775588668e-03 - -8.656320970291077e-03 -8.477897155130903e-03 -8.299588259899083e-03 -8.121394531144674e-03 -7.943316209259341e-03 - -7.765353219198069e-03 -7.587505591333328e-03 -7.409773443860054e-03 -7.232156891183837e-03 -7.054655906230881e-03 - -6.877270474033493e-03 -6.700000921715352e-03 -6.522847372218281e-03 -6.345809748257097e-03 -6.168888131399519e-03 - -5.992082642122597e-03 -5.815393366379400e-03 -5.638820235869921e-03 -5.462363348533388e-03 -5.286023033805962e-03 - -5.109799304673499e-03 -4.933692127821829e-03 -4.757701606393674e-03 -4.581827861470766e-03 -4.406070940931505e-03 - -4.230430770274698e-03 -4.054907567997104e-03 -3.879501600335772e-03 -3.704212807069328e-03 -3.529041210474627e-03 - -3.353986930090703e-03 -3.179050081041732e-03 -3.004230655593028e-03 -2.829528626659512e-03 -2.654944304289923e-03 - -2.480477843039907e-03 -2.306129168890747e-03 -2.131898354626704e-03 -1.957785522367332e-03 -1.783790769612464e-03 - -1.609914041309663e-03 -1.436155409326836e-03 -1.262515208025358e-03 -1.088993476198761e-03 -9.155901719868249e-04 - -7.423054008843995e-04 -5.691392854771952e-04 -3.960918865957833e-04 -2.231631331613931e-04 -5.035321608514060e-05 - 1.223375771945329e-04 2.949092895407656e-04 4.673619084872533e-04 6.396953140537370e-04 8.119093865188150e-04 - 9.840041155727759e-04 1.155979539871523e-03 1.327835367602612e-03 1.499571413663267e-03 1.671187748049661e-03 - 1.842684305331169e-03 2.014060960896812e-03 2.185317608856639e-03 2.356454289147141e-03 2.527470954200780e-03 - 2.698367270832486e-03 2.869143169831049e-03 3.039798698561594e-03 3.210333755176400e-03 3.380748214685887e-03 - 3.551042001872539e-03 3.721215182132198e-03 3.891267592694254e-03 4.061198929412137e-03 4.231009214636464e-03 - 4.400698444839332e-03 4.570266499650065e-03 4.739713256426893e-03 4.909038688279234e-03 5.078242841339914e-03 - 5.247325443294046e-03 5.416286280121805e-03 5.585125417934797e-03 5.753842797319914e-03 5.922438289361948e-03 - 6.090911784292105e-03 6.259263304936011e-03 6.427492823105761e-03 6.595600012759487e-03 6.763584774419725e-03 - 6.931447157908777e-03 7.099187064683324e-03 7.266804368739545e-03 7.434298984071849e-03 7.601670964899477e-03 - 7.768920175905106e-03 7.936046303989365e-03 8.103049345026314e-03 8.269929303195386e-03 8.436686062480435e-03 - 8.603319496825714e-03 8.769829559891583e-03 8.936216298209541e-03 9.102479469308070e-03 9.268618835503980e-03 - 9.434634442417017e-03 9.600526244002849e-03 9.766294116521254e-03 9.931937936947469e-03 1.009745771049027e-02 - 1.026285342997890e-02 1.042812477681206e-02 1.059327162144324e-02 1.075829401681754e-02 1.092319186819127e-02 - 1.108796504594824e-02 1.125261345370748e-02 1.141713713772357e-02 1.158153598704318e-02 1.174580967555363e-02 - 1.190995817803677e-02 1.207398151021485e-02 1.223787955540131e-02 1.240165218070774e-02 1.256529932365555e-02 - 1.272882103806231e-02 1.289221710280211e-02 1.305548725320952e-02 1.321863152957668e-02 1.338164989105289e-02 - 1.354454220587777e-02 1.370730835288826e-02 1.386994832163190e-02 1.403246211588375e-02 1.419484943187744e-02 - 1.435711010999991e-02 1.451924419921884e-02 1.468125161270911e-02 1.484313222013652e-02 1.500488591571896e-02 - 1.516651273046586e-02 1.532801257754355e-02 1.548938513124086e-02 1.565063033579857e-02 1.581174821092933e-02 - 1.597273864701365e-02 1.613360150922888e-02 1.629433671764488e-02 1.645494432276120e-02 1.661542413184349e-02 - 1.677577586209575e-02 1.693599953321696e-02 1.709609511287956e-02 1.725606247097126e-02 1.741590148147653e-02 - 1.757561211738663e-02 1.773519439308624e-02 1.789464801957598e-02 1.805397280960725e-02 1.821316881163111e-02 - 1.837223594327105e-02 1.853117406905512e-02 1.868998307594014e-02 1.884866298214414e-02 1.900721372338833e-02 - 1.916563497459167e-02 1.932392665507269e-02 1.948208878919649e-02 1.964012126059438e-02 1.979802393750615e-02 - 1.995579673545799e-02 2.011343968946751e-02 2.027095263124555e-02 2.042833526879373e-02 2.058558759933038e-02 - 2.074270959919291e-02 2.089970114286997e-02 2.105656209513535e-02 2.121329241031374e-02 2.136989211400533e-02 - 2.152636093833320e-02 2.168269866776463e-02 2.183890534086288e-02 2.199498088647827e-02 2.215092516911965e-02 - 2.230673806408907e-02 2.246241957468516e-02 2.261796965793072e-02 2.277338799181243e-02 2.292867446749406e-02 - 2.308382911412376e-02 2.323885181888266e-02 2.339374244699652e-02 2.354850090287507e-02 2.370312721409915e-02 - 2.385762123470989e-02 2.401198266010886e-02 2.416621147301771e-02 2.432030765671687e-02 2.447427107682733e-02 - 2.462810160176357e-02 2.478179917471193e-02 2.493536381795363e-02 2.508879528739230e-02 2.524209334527653e-02 - 2.539525801488748e-02 2.554828923354157e-02 2.570118686847216e-02 2.585395079171064e-02 2.600658098606827e-02 - 2.615907742012537e-02 2.631143978762620e-02 2.646366795301069e-02 2.661576194257877e-02 2.676772164859378e-02 - 2.691954693391293e-02 2.707123769272043e-02 2.722279394328245e-02 2.737421556407061e-02 2.752550224474631e-02 - 2.767665393933695e-02 2.782767063812680e-02 2.797855221700411e-02 2.812929853552858e-02 2.827990951702357e-02 - 2.843038519104858e-02 2.858072533585580e-02 2.873092969062032e-02 2.888099827101270e-02 2.903093101911967e-02 - 2.918072779556083e-02 2.933038847140823e-02 2.947991301658642e-02 2.962930141213865e-02 2.977855336278226e-02 - 2.992766870509821e-02 3.007664746318324e-02 3.022548953626840e-02 3.037419478553557e-02 3.052276309616091e-02 - 3.067119447416764e-02 3.081948881896879e-02 3.096764581778017e-02 3.111566540198458e-02 3.126354756710210e-02 - 3.141129218718559e-02 3.155889912410548e-02 3.170636829125183e-02 3.185369970791438e-02 3.200089317518744e-02 - 3.214794841776677e-02 3.229486543634106e-02 3.244164418203412e-02 3.258828451581320e-02 3.273478630264194e-02 - 3.288114949586567e-02 3.302737408530167e-02 3.317345979235018e-02 3.331940642975919e-02 3.346521401820098e-02 - 3.361088246101045e-02 3.375641161607764e-02 3.390180136352038e-02 3.404705169548587e-02 3.419216253016829e-02 - 3.433713355905806e-02 3.448196468652563e-02 3.462665590981111e-02 3.477120710939272e-02 3.491561814527116e-02 - 3.505988891618091e-02 3.520401943397326e-02 3.534800952666442e-02 3.549185891051008e-02 3.563556756111654e-02 - 3.577913543618631e-02 3.592256240340591e-02 3.606584831947614e-02 3.620899312153205e-02 3.635199681091714e-02 - 3.649485912620978e-02 3.663757985375464e-02 3.678015900636063e-02 3.692259649832257e-02 3.706489218607827e-02 - 3.720704593508108e-02 3.734905772908955e-02 3.749092751022131e-02 3.763265496742431e-02 3.777423997951684e-02 - 3.791568254953915e-02 3.805698256030369e-02 3.819813986869797e-02 3.833915436267914e-02 3.848002605018682e-02 - 3.862075477984065e-02 3.876134025391093e-02 3.890178243600422e-02 3.904208129158644e-02 3.918223668100989e-02 - 3.932224846044379e-02 3.946211655605483e-02 3.960184097189857e-02 3.974142146457355e-02 3.988085779819951e-02 - 4.002014997942075e-02 4.015929792921669e-02 4.029830150192959e-02 4.043716055991190e-02 4.057587507004282e-02 - 4.071444498657769e-02 4.085287001066611e-02 4.099114999824743e-02 4.112928495212512e-02 4.126727475679569e-02 - 4.140511926665246e-02 4.154281836167219e-02 4.168037204269245e-02 4.181778018003033e-02 4.195504246778908e-02 - 4.209215884913708e-02 4.222912929605258e-02 4.236595366776428e-02 4.250263182248033e-02 4.263916367566677e-02 - 4.277554922465009e-02 4.291178824859961e-02 4.304788049654025e-02 4.318382596138427e-02 4.331962457087349e-02 - 4.345527617981602e-02 4.359078064797250e-02 4.372613792550029e-02 4.386134797486977e-02 4.399641051415262e-02 - 4.413132537776133e-02 4.426609256403441e-02 4.440071196061698e-02 4.453518342174363e-02 4.466950682320869e-02 - 4.480368214879805e-02 4.493770928728694e-02 4.507158793990715e-02 4.520531802497359e-02 4.533889951667943e-02 - 4.547233228082954e-02 4.560561616979211e-02 4.573875108353129e-02 4.587173702317195e-02 4.600457379177124e-02 - 4.613726112101928e-02 4.626979898466685e-02 4.640218731770854e-02 4.653442597807410e-02 4.666651481740990e-02 - 4.679845378497393e-02 4.693024287357150e-02 4.706188178521280e-02 4.719337030512012e-02 4.732470843170088e-02 - 4.745589609974604e-02 4.758693317708736e-02 4.771781949014568e-02 4.784855500276729e-02 4.797913963655120e-02 - 4.810957311625792e-02 4.823985532440599e-02 4.836998622519359e-02 4.849996572088229e-02 4.862979364778694e-02 - 4.875946986129576e-02 4.888899438454671e-02 4.901836703838853e-02 4.914758752328308e-02 4.927665585368439e-02 - 4.940557196434897e-02 4.953433564666962e-02 4.966294680168561e-02 4.979140536998770e-02 4.991971127467005e-02 - 5.004786430086550e-02 5.017586426593462e-02 5.030371111424699e-02 5.043140473941395e-02 5.055894500969876e-02 - 5.068633180855401e-02 5.081356509387767e-02 5.094064477169723e-02 5.106757053524139e-02 5.119434226596677e-02 - 5.132095996453229e-02 5.144742351517578e-02 5.157373274644007e-02 5.169988750799723e-02 5.182588783131492e-02 - 5.195173357105356e-02 5.207742440366903e-02 5.220296027189056e-02 5.232834113948501e-02 5.245356688434039e-02 - 5.257863735375337e-02 5.270355244318054e-02 5.282831211610928e-02 5.295291615700908e-02 5.307736435753736e-02 - 5.320165668494783e-02 5.332579302368824e-02 5.344977322479061e-02 5.357359720391287e-02 5.369726488407797e-02 - 5.382077614890905e-02 5.394413077320572e-02 5.406732861255047e-02 5.419036960275756e-02 5.431325364836510e-02 - 5.443598061485443e-02 5.455855035736775e-02 5.468096283548277e-02 5.480321791614200e-02 5.492531533836561e-02 - 5.504725504027442e-02 5.516903696522249e-02 5.529066094250196e-02 5.541212681912044e-02 5.553343451105355e-02 - 5.565458402054679e-02 5.577557512714444e-02 5.589640757833542e-02 5.601708136214176e-02 5.613759637012277e-02 - 5.625795242697428e-02 5.637814944133901e-02 5.649818735356010e-02 5.661806606948155e-02 5.673778531909066e-02 - 5.685734496106067e-02 5.697674499811992e-02 5.709598525886500e-02 5.721506557962035e-02 5.733398588420521e-02 - 5.745274613557275e-02 5.757134619305772e-02 5.768978576165893e-02 5.780806477237931e-02 5.792618319490116e-02 - 5.804414085654030e-02 5.816193759992416e-02 5.827957333255503e-02 5.839704805764100e-02 5.851436157058919e-02 - 5.863151359019340e-02 5.874850407742044e-02 5.886533297606138e-02 5.898200016057164e-02 5.909850545490182e-02 - 5.921484876799358e-02 5.933103006596772e-02 5.944704910278828e-02 5.956290569090495e-02 5.967859979076014e-02 - 5.979413129454921e-02 5.990950006107775e-02 6.002470595625681e-02 6.013974894676900e-02 6.025462892974234e-02 - 6.036934559538653e-02 6.048389882575328e-02 6.059828859366181e-02 6.071251478747773e-02 6.082657726499330e-02 - 6.094047589468096e-02 6.105421060960093e-02 6.116778124880510e-02 6.128118760026364e-02 6.139442960439424e-02 - 6.150750715787331e-02 6.162042008748835e-02 6.173316829355946e-02 6.184575170612789e-02 6.195817023946892e-02 - 6.207042366308074e-02 6.218251178412997e-02 6.229443455021107e-02 6.240619187345142e-02 6.251778362644587e-02 - 6.262920965673664e-02 6.274046989094115e-02 6.285156423838029e-02 6.296249246083868e-02 6.307325441937692e-02 - 6.318385004239983e-02 6.329427920287174e-02 6.340454177652059e-02 6.351463766120390e-02 6.362456678994362e-02 - 6.373432899407734e-02 6.384392402667542e-02 6.395335181995393e-02 6.406261231361865e-02 6.417170537725830e-02 - 6.428063082883417e-02 6.438938856382127e-02 6.449797859582693e-02 6.460640069400744e-02 6.471465460887021e-02 - 6.482274028565467e-02 6.493065766530991e-02 6.503840663024645e-02 6.514598697176463e-02 6.525339863731919e-02 - 6.536064160053869e-02 6.546771556229376e-02 6.557462036169828e-02 6.568135597564134e-02 6.578792228094754e-02 - 6.589431913461476e-02 6.600054641494822e-02 6.610660407274732e-02 6.621249195669229e-02 6.631820979208959e-02 - 6.642375751800587e-02 6.652913508526218e-02 6.663434233390064e-02 6.673937912206085e-02 6.684424535139094e-02 - 6.694894096694531e-02 6.705346576057515e-02 6.715781952052316e-02 6.726200223606826e-02 6.736601378290344e-02 - 6.746985396850236e-02 6.757352270136854e-02 6.767701992273348e-02 6.778034554033589e-02 6.788349929667206e-02 - 6.798648102682574e-02 6.808929069330329e-02 6.819192820375723e-02 6.829439341428477e-02 6.839668615716293e-02 - 6.849880637697058e-02 6.860075397106770e-02 6.870252870886938e-02 6.880413046413429e-02 6.890555915577500e-02 - 6.900681468090485e-02 6.910789689150486e-02 6.920880565820778e-02 6.930954094436353e-02 6.941010257623929e-02 - 6.951049032497619e-02 6.961070411466443e-02 6.971074386483528e-02 6.981060945693285e-02 6.991030074013053e-02 - 7.000981760721879e-02 7.010915998226322e-02 7.020832768385020e-02 7.030732053981503e-02 7.040613843777971e-02 - 7.050478130476578e-02 7.060324902125202e-02 7.070154139632766e-02 7.079965841104072e-02 7.089759998592053e-02 - 7.099536579014293e-02 7.109295574922263e-02 7.119036986301433e-02 7.128760792254588e-02 7.138466979343019e-02 - 7.148155540894172e-02 7.157826467726322e-02 7.167479742578257e-02 7.177115345207208e-02 7.186733268619028e-02 - 7.196333504975572e-02 7.205916041090092e-02 7.215480858692887e-02 7.225027948023270e-02 7.234557308374470e-02 - 7.244068916926014e-02 7.253562753252076e-02 7.263038813284139e-02 7.272497087062332e-02 7.281937559790036e-02 - 7.291360215228662e-02 7.300765049821943e-02 7.310152057265214e-02 7.319521208383468e-02 7.328872490709243e-02 - 7.338205901635925e-02 7.347521425841259e-02 7.356819049091311e-02 7.366098761637971e-02 7.375360558736099e-02 - 7.384604424623381e-02 7.393830334347133e-02 7.403038279875497e-02 7.412228254437477e-02 7.421400245985316e-02 - 7.430554241104276e-02 7.439690229021774e-02 7.448808202204141e-02 7.457908141717452e-02 7.466990029970315e-02 - 7.476053861745356e-02 7.485099625058683e-02 7.494127304678436e-02 7.503136889191833e-02 7.512128371784581e-02 - 7.521101743547498e-02 7.530056981436373e-02 7.538994071268737e-02 7.547913007544443e-02 7.556813780083994e-02 - 7.565696374971752e-02 7.574560777501017e-02 7.583406981695588e-02 7.592234975180168e-02 7.601044736291800e-02 - 7.609836256769248e-02 7.618609528331391e-02 7.627364535037680e-02 7.636101265407126e-02 7.644819711937149e-02 - 7.653519868718589e-02 7.662201715447789e-02 7.670865230880411e-02 7.679510411035856e-02 7.688137246970578e-02 - 7.696745724207896e-02 7.705335828035317e-02 7.713907552614908e-02 7.722460893765626e-02 7.730995825366380e-02 - 7.739512330293280e-02 7.748010405365591e-02 7.756490042829636e-02 7.764951228919105e-02 7.773393946198498e-02 - 7.781818189157449e-02 7.790223948237281e-02 7.798611201876808e-02 7.806979939436651e-02 7.815330154059554e-02 - 7.823661834982702e-02 7.831974966729814e-02 7.840269536418043e-02 7.848545542109749e-02 7.856802968700778e-02 - 7.865041794492959e-02 7.873262009221961e-02 7.881463606524114e-02 7.889646578364969e-02 7.897810905385311e-02 - 7.905956578813299e-02 7.914083598393755e-02 7.922191938944982e-02 7.930281582198326e-02 7.938352526916173e-02 - 7.946404763288464e-02 7.954438277705837e-02 7.962453057021987e-02 7.970449093695484e-02 7.978426377009373e-02 - 7.986384886265184e-02 7.994324611178145e-02 8.002245546069972e-02 8.010147680163558e-02 8.018030998339011e-02 - 8.025895486859348e-02 8.033741142939121e-02 8.041567953647351e-02 8.049375898816008e-02 8.057164970191152e-02 - 8.064935159117341e-02 8.072686453538828e-02 8.080418841559016e-02 8.088132313650849e-02 8.095826861741187e-02 - 8.103502469212946e-02 8.111159121525567e-02 8.118796811657426e-02 8.126415526945288e-02 8.134015254787534e-02 - 8.141595988122388e-02 8.149157718184835e-02 8.156700432424771e-02 8.164224113093393e-02 8.171728750211138e-02 - 8.179214337283539e-02 8.186680860558979e-02 8.194128308109257e-02 8.201556671181809e-02 8.208965942384167e-02 - 8.216356107347705e-02 8.223727146913333e-02 8.231079055026533e-02 8.238411825286719e-02 8.245725445426123e-02 - 8.253019901019013e-02 8.260295182089074e-02 8.267551284923887e-02 8.274788192985057e-02 8.282005889192648e-02 - 8.289204367192234e-02 8.296383619751495e-02 8.303543635380874e-02 8.310684396376640e-02 8.317805898151856e-02 - 8.324908138250064e-02 8.331991092178788e-02 8.339054746670159e-02 8.346099098907200e-02 8.353124136246602e-02 - 8.360129848004999e-02 8.367116227251760e-02 8.374083263302687e-02 8.381030943134427e-02 8.387959252741883e-02 - 8.394868181167527e-02 8.401757720093640e-02 8.408627862550171e-02 8.415478594369409e-02 8.422309904154775e-02 - 8.429121790707177e-02 8.435914237533512e-02 8.442687225429805e-02 8.449440750560887e-02 8.456174803803686e-02 - 8.462889372267089e-02 8.469584447602406e-02 8.476260023136410e-02 8.482916090148240e-02 8.489552630009754e-02 - 8.496169630228255e-02 8.502767086164854e-02 8.509344988672647e-02 8.515903326018803e-02 8.522442086136313e-02 - 8.528961263471936e-02 8.535460848680074e-02 8.541940824041729e-02 8.548401181612168e-02 8.554841915131453e-02 - 8.561263012321893e-02 8.567664461211427e-02 8.574046253447680e-02 8.580408386832587e-02 8.586750845589863e-02 - 8.593073610333024e-02 8.599376680387132e-02 8.605660047760594e-02 8.611923696874126e-02 8.618167618396408e-02 - 8.624391807608472e-02 8.630596259724549e-02 8.636780954833972e-02 8.642945878839840e-02 8.649091029427977e-02 - 8.655216396695875e-02 8.661321970043215e-02 8.667407742210617e-02 8.673473702989365e-02 8.679519841504303e-02 - 8.685546148336530e-02 8.691552612855238e-02 8.697539224666265e-02 8.703505975750943e-02 8.709452857692032e-02 - 8.715379861893667e-02 8.721286980508075e-02 8.727174201224434e-02 8.733041510377958e-02 8.738888903629666e-02 - 8.744716372671989e-02 8.750523904187274e-02 8.756311491392924e-02 8.762079127795709e-02 8.767826803995526e-02 - 8.773554506310657e-02 8.779262223690780e-02 8.784949951260017e-02 8.790617682173207e-02 8.796265406226209e-02 - 8.801893109931651e-02 8.807500788687952e-02 8.813088437660771e-02 8.818656039674132e-02 8.824203585227545e-02 - 8.829731070095961e-02 8.835238486000704e-02 8.840725822106667e-02 8.846193068214857e-02 8.851640221803356e-02 - 8.857067273700293e-02 8.862474207580676e-02 8.867861014722141e-02 8.873227689758616e-02 8.878574227696898e-02 - 8.883900618220902e-02 8.889206851560667e-02 8.894492921167085e-02 8.899758815302622e-02 8.905004524008538e-02 - 8.910230044719054e-02 8.915435367300073e-02 8.920620479173334e-02 8.925785373448247e-02 8.930930045917142e-02 - 8.936054490961548e-02 8.941158695191696e-02 8.946242647641844e-02 8.951306341364354e-02 8.956349771969928e-02 - 8.961372931388180e-02 8.966375808278661e-02 8.971358396554302e-02 8.976320688963368e-02 8.981262675341668e-02 - 8.986184348935064e-02 8.991085703129179e-02 8.995966729258320e-02 9.000827417122792e-02 9.005667759770250e-02 - 9.010487756379584e-02 9.015287394264000e-02 9.020066659275561e-02 9.024825550203337e-02 9.029564061179933e-02 - 9.034282181894199e-02 9.038979902630290e-02 9.043657218570805e-02 9.048314126656666e-02 9.052950615463343e-02 - 9.057566675480395e-02 9.062162300961238e-02 9.066737484935303e-02 9.071292219781772e-02 9.075826498061153e-02 - 9.080340315127385e-02 9.084833664156222e-02 9.089306533771581e-02 9.093758915627431e-02 9.098190804149961e-02 - 9.102602195783284e-02 9.106993084471440e-02 9.111363462196023e-02 9.115713320054021e-02 9.120042650346059e-02 - 9.124351446434358e-02 9.128639702175202e-02 9.132907412994692e-02 9.137154573427010e-02 9.141381170435277e-02 - 9.145587198962597e-02 9.149772660800266e-02 9.153937542844172e-02 9.158081834977004e-02 9.162205535599281e-02 - 9.166308637778346e-02 9.170391133536025e-02 9.174453017072061e-02 9.178494285856946e-02 9.182514933661440e-02 - 9.186514945794547e-02 9.190494319482566e-02 9.194453054665523e-02 9.198391140758180e-02 9.202308569543158e-02 - 9.206205336702038e-02 9.210081441034919e-02 9.213936875086109e-02 9.217771627651770e-02 9.221585694962209e-02 - 9.225379072840771e-02 9.229151754885842e-02 9.232903734819613e-02 9.236635007909103e-02 9.240345570404732e-02 - 9.244035413434255e-02 9.247704529963750e-02 9.251352918345666e-02 9.254980573968512e-02 9.258587489795035e-02 - 9.262173657649034e-02 9.265739073985793e-02 9.269283735974691e-02 9.272807636276849e-02 9.276310769047050e-02 - 9.279793130272118e-02 9.283254716719631e-02 9.286695521394739e-02 9.290115536246511e-02 9.293514761281572e-02 - 9.296893192325742e-02 9.300250819824006e-02 9.303587638369953e-02 9.306903645092859e-02 9.310198837852499e-02 - 9.313473209662422e-02 9.316726755984403e-02 9.319959477466139e-02 9.323171364631608e-02 9.326362408592948e-02 - 9.329532610133226e-02 9.332681964339190e-02 9.335810464438972e-02 9.338918108249107e-02 9.342004893308628e-02 - 9.345070815580041e-02 9.348115868437977e-02 9.351140046962789e-02 9.354143348306601e-02 9.357125770365762e-02 - 9.360087308621738e-02 9.363027956518245e-02 9.365947710363894e-02 9.368846567300493e-02 9.371724524372237e-02 - 9.374581578300241e-02 9.377417725111503e-02 9.380232960142115e-02 9.383027280206080e-02 9.385800682788301e-02 - 9.388553164914089e-02 9.391284719773688e-02 9.393995342276806e-02 9.396685035781838e-02 9.399353796706621e-02 - 9.402001617537038e-02 9.404628495786660e-02 9.407234429781461e-02 9.409819417117830e-02 9.412383453169183e-02 - 9.414926534580341e-02 9.417448659641373e-02 9.419949825736050e-02 9.422430029380560e-02 9.424889267135104e-02 - 9.427327539998738e-02 9.429744844865905e-02 9.432141171534560e-02 9.434516522540957e-02 9.436870900006604e-02 - 9.439204294634228e-02 9.441516705436934e-02 9.443808133745002e-02 9.446078573953387e-02 9.448328023801857e-02 - 9.450556483411636e-02 9.452763950923013e-02 9.454950421611270e-02 9.457115890701832e-02 9.459260360830167e-02 - 9.461383832574666e-02 9.463486302352626e-02 9.465567765409444e-02 9.467628220109425e-02 9.469667668274938e-02 - 9.471686106967921e-02 9.473683533004949e-02 9.475659945563136e-02 9.477615343325803e-02 9.479549725292793e-02 - 9.481463091432241e-02 9.483355439545672e-02 9.485226766778346e-02 9.487077071788189e-02 9.488906353992572e-02 - 9.490714613644993e-02 9.492501852119042e-02 9.494268066964073e-02 9.496013253895599e-02 9.497737414244060e-02 - 9.499440547543551e-02 9.501122651272445e-02 9.502783728094538e-02 9.504423778187990e-02 9.506042797340242e-02 - 9.507640785191551e-02 9.509217742006319e-02 9.510773667189122e-02 9.512308563868060e-02 9.513822432123879e-02 - 9.515315264231193e-02 9.516787063845662e-02 9.518237836728226e-02 9.519667577724227e-02 9.521076284349063e-02 - 9.522463958294539e-02 9.523830604498588e-02 9.525176221483619e-02 9.526500804718509e-02 9.527804359769618e-02 - 9.529086886623650e-02 9.530348379689602e-02 9.531588845120076e-02 9.532808286166987e-02 9.534006699012688e-02 - 9.535184085361241e-02 9.536340447105748e-02 9.537475783364874e-02 9.538590095359538e-02 9.539683385237334e-02 - 9.540755654711666e-02 9.541806903829181e-02 9.542837132640679e-02 9.543846343230179e-02 9.544834536597921e-02 - 9.545801714100983e-02 9.546747880593646e-02 9.547673036184304e-02 9.548577178084619e-02 9.549460309483834e-02 - 9.550322434581640e-02 9.551163556335956e-02 9.551983673903520e-02 9.552782788036314e-02 9.553560902903191e-02 - 9.554318022933674e-02 9.555054148771730e-02 9.555769276632298e-02 9.556463412975340e-02 9.557136563747151e-02 - 9.557788725689133e-02 9.558419903459103e-02 9.559030102901959e-02 9.559619321427665e-02 9.560187562136102e-02 - 9.560734830883322e-02 9.561261127917654e-02 9.561766456108449e-02 9.562250820572099e-02 9.562714223416331e-02 - 9.563156666435306e-02 9.563578152405575e-02 9.563978686682097e-02 9.564358272631937e-02 9.564716910782914e-02 - 9.565054604965099e-02 9.565371359980702e-02 9.565667179877529e-02 9.565942066526258e-02 9.566196023293236e-02 - 9.566429057683135e-02 9.566641172752892e-02 9.566832368940979e-02 9.567002647518966e-02 9.567152016429874e-02 - 9.567280484915060e-02 9.567388053004788e-02 9.567474721294261e-02 9.567540493730267e-02 9.567585379392737e-02 - 9.567609383300600e-02 9.567612506298810e-02 9.567594754568214e-02 9.567556133790830e-02 9.567496647244744e-02 - 9.567416299512438e-02 9.567315095370396e-02 9.567193039196389e-02 9.567050136232016e-02 9.566886392120964e-02 - 9.566701812558283e-02 9.566496403827787e-02 9.566270170884209e-02 9.566023115264767e-02 9.565755243736668e-02 - 9.565466564791879e-02 9.565157080775241e-02 9.564826797386157e-02 9.564475723264595e-02 9.564103864027859e-02 - 9.563711223757489e-02 9.563297806735498e-02 9.562863621895812e-02 9.562408675116861e-02 9.561932968250994e-02 - 9.561436511583814e-02 9.560919313325968e-02 9.560381374743886e-02 9.559822704785555e-02 9.559243313048145e-02 - 9.558643203289170e-02 9.558022378864620e-02 9.557380846466877e-02 9.556718619530349e-02 9.556035703327785e-02 - 9.555332100122134e-02 9.554607821247386e-02 9.553862873475936e-02 9.553097259908433e-02 9.552310989218279e-02 - 9.551504070130773e-02 9.550676510186747e-02 9.549828317393894e-02 9.548959500356741e-02 9.548070067318166e-02 - 9.547160021295119e-02 9.546229369018946e-02 9.545278124506257e-02 9.544306292579091e-02 9.543313878273989e-02 - 9.542300894892854e-02 9.541267351639289e-02 9.540213254817664e-02 9.539138610562420e-02 9.538043425774057e-02 - 9.536927709152246e-02 9.535791472882026e-02 9.534634726779553e-02 9.533457478138217e-02 9.532259734256758e-02 - 9.531041503990305e-02 9.529802797105680e-02 9.528543620462085e-02 9.527263983869082e-02 9.525963900525855e-02 - 9.524643375927100e-02 9.523302417643500e-02 9.521941040061487e-02 9.520559252291068e-02 9.519157060486365e-02 - 9.517734471153570e-02 9.516291499670615e-02 9.514828160467456e-02 9.513344455080376e-02 9.511840393248631e-02 - 9.510315989360162e-02 9.508771251519674e-02 9.507206189457258e-02 9.505620814925633e-02 9.504015138530268e-02 - 9.502389169582724e-02 9.500742917228551e-02 9.499076394524120e-02 9.497389612890822e-02 9.495682580659018e-02 - 9.493955308203066e-02 9.492207807526097e-02 9.490440091330225e-02 9.488652168366014e-02 9.486844048723730e-02 - 9.485015747906970e-02 9.483167277063544e-02 9.481298644119306e-02 9.479409856622809e-02 9.477500930738031e-02 - 9.475571884085587e-02 9.473622721810367e-02 9.471653454723004e-02 9.469664098786204e-02 9.467654664635866e-02 - 9.465625162221861e-02 9.463575602621152e-02 9.461505999415500e-02 9.459416367044585e-02 9.457306719633034e-02 - 9.455177068421998e-02 9.453027423759350e-02 9.450857796468222e-02 9.448668199276268e-02 9.446458647203468e-02 - 9.444229157255099e-02 9.441979739649474e-02 9.439710403006842e-02 9.437421161454676e-02 9.435112031829759e-02 - 9.432783029179438e-02 9.430434160094567e-02 9.428065438538669e-02 9.425676883924589e-02 9.423268508508292e-02 - 9.420840322981890e-02 9.418392339716981e-02 9.415924578030670e-02 9.413437051700123e-02 9.410929767030043e-02 - 9.408402741009517e-02 9.405855992335012e-02 9.403289535840260e-02 9.400703383941893e-02 9.398097549341558e-02 - 9.395472046838550e-02 9.392826889502673e-02 9.390162091553057e-02 9.387477672023849e-02 9.384773645864139e-02 - 9.382050025947151e-02 9.379306828457251e-02 9.376544068778003e-02 9.373761760606118e-02 9.370959916011609e-02 - 9.368138552427184e-02 9.365297690930323e-02 9.362437342817573e-02 9.359557520850639e-02 9.356658243379877e-02 - 9.353739529945312e-02 9.350801394425273e-02 9.347843843855524e-02 9.344866901272440e-02 9.341870589097585e-02 - 9.338854915644307e-02 9.335819897637819e-02 9.332765555734250e-02 9.329691906420928e-02 9.326598960092489e-02 - 9.323486729288316e-02 9.320355242698486e-02 9.317204517635257e-02 9.314034562740874e-02 9.310845398153604e-02 - 9.307637042858882e-02 9.304409511565054e-02 9.301162817412864e-02 9.297896979469056e-02 9.294612022999450e-02 - 9.291307963943660e-02 9.287984815938743e-02 9.284642594887814e-02 9.281281319942865e-02 9.277901009754375e-02 - 9.274501679883909e-02 9.271083349621308e-02 9.267646039527271e-02 9.264189767811302e-02 9.260714551564306e-02 - 9.257220408228978e-02 9.253707357624473e-02 9.250175417101536e-02 9.246624602802385e-02 9.243054935165987e-02 - 9.239466434718238e-02 9.235859120974489e-02 9.232233012999355e-02 9.228588129454922e-02 9.224924488066757e-02 - 9.221242103323031e-02 9.217540995047416e-02 9.213821191347883e-02 9.210082709355732e-02 9.206325564930115e-02 - 9.202549780755387e-02 9.198755374602623e-02 9.194942363528436e-02 9.191110769995278e-02 9.187260614753277e-02 - 9.183391917841241e-02 9.179504701848260e-02 9.175598985687712e-02 9.171674785963810e-02 9.167732123351167e-02 - 9.163771019528422e-02 9.159791495855178e-02 9.155793572040530e-02 9.151777270193290e-02 9.147742614628342e-02 - 9.143689622063791e-02 9.139618310892414e-02 9.135528705455570e-02 9.131420824439858e-02 9.127294688450004e-02 - 9.123150325806001e-02 9.118987755991119e-02 9.114806996063474e-02 9.110608069642255e-02 9.106390998608170e-02 - 9.102155802996120e-02 9.097902503011562e-02 9.093631123402490e-02 9.089341690732793e-02 9.085034224655422e-02 - 9.080708743846595e-02 9.076365269164367e-02 9.072003828369785e-02 9.067624443485320e-02 9.063227129485288e-02 - 9.058811915193726e-02 9.054378827004000e-02 9.049927881221763e-02 9.045459103770109e-02 9.040972520178260e-02 - 9.036468147234690e-02 9.031946007844127e-02 9.027406127956829e-02 9.022848531585773e-02 9.018273243214560e-02 - 9.013680287341128e-02 9.009069686920407e-02 9.004441462623869e-02 8.999795635152021e-02 8.995132231203949e-02 - 8.990451276610797e-02 8.985752795281814e-02 8.981036812557305e-02 8.976303351703613e-02 8.971552434037033e-02 - 8.966784087291869e-02 8.961998334831080e-02 8.957195192338249e-02 8.952374693198487e-02 8.947536869631613e-02 - 8.942681737354224e-02 8.937809319632291e-02 8.932919644498671e-02 8.928012738635183e-02 8.923088623240803e-02 - 8.918147319450437e-02 8.913188858291199e-02 8.908213269254797e-02 8.903220577223506e-02 8.898210800726358e-02 - 8.893183965769864e-02 8.888140104180198e-02 8.883079233855783e-02 8.878001380541380e-02 8.872906581842580e-02 - 8.867794859494142e-02 8.862666233412557e-02 8.857520730323154e-02 8.852358381153494e-02 8.847179212845252e-02 - 8.841983243253916e-02 8.836770502123131e-02 8.831541022882371e-02 8.826294830990469e-02 8.821031949641793e-02 - 8.815752403748606e-02 8.810456224863354e-02 8.805143437639511e-02 8.799814063336710e-02 8.794468134879541e-02 - 8.789105684257616e-02 8.783726738270531e-02 8.778331316928159e-02 8.772919447874153e-02 8.767491167446911e-02 - 8.762046495069514e-02 8.756585454037039e-02 8.751108081839833e-02 8.745614408581825e-02 8.740104459021790e-02 - 8.734578256007368e-02 8.729035830815834e-02 8.723477214343743e-02 8.717902426868683e-02 8.712311501918556e-02 - 8.706704476846663e-02 8.701081371877695e-02 8.695442211628683e-02 8.689787027644420e-02 8.684115853767592e-02 - 8.678428714435096e-02 8.672725629439892e-02 8.667006642064547e-02 8.661271785522098e-02 8.655521075244504e-02 - 8.649754543067346e-02 8.643972223965939e-02 8.638174147222141e-02 8.632360334916610e-02 8.626530814542391e-02 - 8.620685627786050e-02 8.614824804295058e-02 8.608948367410735e-02 8.603056343813603e-02 8.597148768708160e-02 - 8.591225676580187e-02 8.585287085352321e-02 8.579333027004854e-02 8.573363543090719e-02 8.567378659419787e-02 - 8.561378404241062e-02 8.555362810687137e-02 8.549331906471129e-02 8.543285719635127e-02 8.537224281446841e-02 - 8.531147627953188e-02 8.525055791649624e-02 8.518948798167383e-02 8.512826679756995e-02 8.506689470133286e-02 - 8.500537199311337e-02 8.494369892596923e-02 8.488187579804041e-02 8.481990305210670e-02 8.475778099074194e-02 - 8.469550984763315e-02 8.463308996695838e-02 8.457052168539449e-02 8.450780530789033e-02 8.444494110975011e-02 - 8.438192942971584e-02 8.431877065438623e-02 8.425546507059704e-02 8.419201297696736e-02 8.412841471805475e-02 - 8.406467061549007e-02 8.400078097306259e-02 8.393674609180030e-02 8.387256634619757e-02 8.380824209666674e-02 - 8.374377362095807e-02 8.367916122870038e-02 8.361440526888680e-02 8.354950611900661e-02 8.348446403538942e-02 - 8.341927927704872e-02 8.335395233905314e-02 8.328848356223681e-02 8.322287316371958e-02 8.315712149574238e-02 - 8.309122893699929e-02 8.302519583647612e-02 8.295902243510637e-02 8.289270907781640e-02 8.282625623697057e-02 - 8.275966417678003e-02 8.269293318851907e-02 8.262606370095599e-02 8.255905601211083e-02 8.249191039312886e-02 - 8.242462718945633e-02 8.235720681988298e-02 8.228964967784431e-02 8.222195602541869e-02 8.215412621284769e-02 - 8.208616062445039e-02 8.201805954142698e-02 8.194982329150195e-02 8.188145225476894e-02 8.181294680713293e-02 - 8.174430731452863e-02 8.167553412282050e-02 8.160662752890076e-02 8.153758789030935e-02 8.146841562526554e-02 - 8.139911098330359e-02 8.132967428676124e-02 8.126010603531450e-02 8.119040656216225e-02 8.112057615694021e-02 - 8.105061517994502e-02 8.098052402265073e-02 8.091030303880128e-02 8.083995248093376e-02 8.076947276447492e-02 - 8.069886435754116e-02 8.062812754457355e-02 8.055726265736828e-02 8.048627008799529e-02 8.041515020636995e-02 - 8.034390332540668e-02 8.027252974489747e-02 8.020102993492553e-02 8.012940431195667e-02 8.005765317555476e-02 - 7.998577686939379e-02 7.991377577220368e-02 7.984165027334414e-02 7.976940065907111e-02 7.969702727793032e-02 - 7.962453065567111e-02 7.955191112254574e-02 7.947916895239987e-02 7.940630455590227e-02 7.933331833212637e-02 - 7.926021063894960e-02 7.918698178217287e-02 7.911363216326053e-02 7.904016223823181e-02 7.896657235187955e-02 - 7.889286283938438e-02 7.881903406306398e-02 7.874508643443230e-02 7.867102031060058e-02 7.859683599526633e-02 - 7.852253395767629e-02 7.844811463098400e-02 7.837357831424305e-02 7.829892537205134e-02 7.822415619643758e-02 - 7.814927116484589e-02 7.807427062910767e-02 7.799915496813195e-02 7.792392464520610e-02 7.784858004657273e-02 - 7.777312150359181e-02 7.769754936428309e-02 7.762186403791040e-02 7.754606594385612e-02 7.747015537442642e-02 - 7.739413273994507e-02 7.731799855521804e-02 7.724175314852555e-02 7.716539684747571e-02 7.708893004657069e-02 - 7.701235315053030e-02 7.693566653742440e-02 7.685887055661017e-02 7.678196565918903e-02 7.670495227727288e-02 - 7.662783073280909e-02 7.655060142689749e-02 7.647326478202995e-02 7.639582115595660e-02 7.631827089499127e-02 - 7.624061438211467e-02 7.616285210329320e-02 7.608498447266238e-02 7.600701183814436e-02 7.592893457493513e-02 - 7.585075308733022e-02 7.577246778116596e-02 7.569407897223836e-02 7.561558707997214e-02 7.553699264667676e-02 - 7.545829602219666e-02 7.537949752159374e-02 7.530059752746436e-02 7.522159652110559e-02 7.514249491290788e-02 - 7.506329293711217e-02 7.498399108869409e-02 7.490458989985715e-02 7.482508965268882e-02 7.474549074308040e-02 - 7.466579363230305e-02 7.458599868473173e-02 7.450610623924510e-02 7.442611667561436e-02 7.434603053570255e-02 - 7.426584824442337e-02 7.418557009969678e-02 7.410519651333995e-02 7.402472793153594e-02 7.394416477978479e-02 - 7.386350736456949e-02 7.378275607823381e-02 7.370191147772952e-02 7.362097394239986e-02 7.353994380500382e-02 - 7.345882147239775e-02 7.337760740248925e-02 7.329630201371148e-02 7.321490559729334e-02 7.313341861868546e-02 - 7.305184160923943e-02 7.297017492620234e-02 7.288841893034562e-02 7.280657402242413e-02 7.272464064227188e-02 - 7.264261917439505e-02 7.256050997585588e-02 7.247831356170273e-02 7.239603038649280e-02 7.231366079163171e-02 - 7.223120520116612e-02 7.214866404160214e-02 7.206603769517569e-02 7.198332653777370e-02 7.190053098792457e-02 - 7.181765153838118e-02 7.173468863077177e-02 7.165164265282598e-02 7.156851395212357e-02 7.148530298289761e-02 - 7.140201021117390e-02 7.131863593482980e-02 7.123518058493326e-02 7.115164469180060e-02 7.106802866653637e-02 - 7.098433289103630e-02 7.090055775733806e-02 7.081670370962735e-02 7.073277114629017e-02 7.064876042084919e-02 - 7.056467204467058e-02 7.048050649359339e-02 7.039626411522021e-02 7.031194531783586e-02 7.022755055007633e-02 - 7.014308026270048e-02 7.005853477507426e-02 6.997391445865883e-02 6.988921994223606e-02 6.980445161374127e-02 - 6.971960976161336e-02 6.963469490630880e-02 6.954970749457975e-02 6.946464787470261e-02 6.937951638488904e-02 - 6.929431352344900e-02 6.920903988440608e-02 6.912369577614699e-02 6.903828154824053e-02 6.895279768813133e-02 - 6.886724462309453e-02 6.878162274040467e-02 6.869593242264821e-02 6.861017418575431e-02 6.852434851303352e-02 - 6.843845573229547e-02 6.835249626715924e-02 6.826647058722328e-02 6.818037912112360e-02 6.809422221022603e-02 - 6.800800023353686e-02 6.792171381432285e-02 6.783536337902803e-02 6.774894920974223e-02 6.766247176656806e-02 - 6.757593152448671e-02 6.748932891036163e-02 6.740266425451470e-02 6.731593799992638e-02 6.722915072040272e-02 - 6.714230278026269e-02 6.705539454984789e-02 6.696842651283096e-02 6.688139909018249e-02 6.679431266253504e-02 - 6.670716761081900e-02 6.661996446504156e-02 6.653270374249923e-02 6.644538575792285e-02 6.635801090742725e-02 - 6.627057965598744e-02 6.618309245387675e-02 6.609554968705872e-02 6.600795173819872e-02 6.592029914958422e-02 - 6.583259238307172e-02 6.574483179767340e-02 6.565701780669353e-02 6.556915085921187e-02 6.548123140723705e-02 - 6.539325979064996e-02 6.530523643565112e-02 6.521716192687264e-02 6.512903665438342e-02 6.504086097557776e-02 - 6.495263535156262e-02 6.486436022769713e-02 6.477603601048113e-02 6.468766306269763e-02 6.459924187637454e-02 - 6.451077298036002e-02 6.442225675573160e-02 6.433369358016772e-02 6.424508387319842e-02 6.415642813133042e-02 - 6.406772674084167e-02 6.397898002556264e-02 6.389018858464109e-02 6.380135290132970e-02 6.371247325592760e-02 - 6.362355010153516e-02 6.353458392277617e-02 6.344557514446422e-02 6.335652411846264e-02 6.326743126079815e-02 - 6.317829713990436e-02 6.308912216326193e-02 6.299990668862973e-02 6.291065117630994e-02 6.282135608306753e-02 - 6.273202182393535e-02 6.264264873955985e-02 6.255323731562341e-02 6.246378810230178e-02 6.237430143094801e-02 - 6.228477769978175e-02 6.219521740601344e-02 6.210562097707054e-02 6.201598879095212e-02 6.192632121693314e-02 - 6.183661876812600e-02 6.174688193928092e-02 6.165711112558074e-02 6.156730673780070e-02 6.147746920022401e-02 - 6.138759893800432e-02 6.129769633241683e-02 6.120776180293847e-02 6.111779589683188e-02 6.102779903735479e-02 - 6.093777158500626e-02 6.084771398591046e-02 6.075762667844817e-02 6.066751007308262e-02 6.057736455111417e-02 - 6.048719057054321e-02 6.039698864588414e-02 6.030675917961215e-02 6.021650256672047e-02 6.012621923377075e-02 - 6.003590961818356e-02 5.994557411659043e-02 5.985521308639186e-02 5.976482706463886e-02 5.967441656528669e-02 - 5.958398192281734e-02 5.949352353003544e-02 5.940304183449088e-02 5.931253730252380e-02 5.922201027916447e-02 - 5.913146112197507e-02 5.904089044032181e-02 5.895029868043596e-02 5.885968615096351e-02 5.876905326755812e-02 - 5.867840050492581e-02 5.858772833116550e-02 5.849703703991720e-02 5.840632705235495e-02 5.831559896255584e-02 - 5.822485314806121e-02 5.813408997000494e-02 5.804330987759122e-02 5.795251328764216e-02 5.786170059865808e-02 - 5.777087221384987e-02 5.768002859772193e-02 5.758917021647553e-02 5.749829746896256e-02 5.740741077575853e-02 - 5.731651056875526e-02 5.722559725171274e-02 5.713467118430270e-02 5.704373274635539e-02 5.695278249332581e-02 - 5.686182088614487e-02 5.677084826809927e-02 5.667986504336005e-02 5.658887165217444e-02 5.649786853613976e-02 - 5.640685602792318e-02 5.631583453941855e-02 5.622480462822738e-02 5.613376666437993e-02 5.604272100502515e-02 - 5.595166813210956e-02 5.586060845174765e-02 5.576954232437998e-02 5.567847012652845e-02 5.558739236715193e-02 - 5.549630955542323e-02 5.540522197136583e-02 5.531413002536285e-02 5.522303422299683e-02 5.513193492275553e-02 - 5.504083247717721e-02 5.494972729209355e-02 5.485861988753332e-02 5.476751071228679e-02 5.467640010379995e-02 - 5.458528846418693e-02 5.449417622493567e-02 5.440306381105370e-02 5.431195155656662e-02 5.422083985771245e-02 - 5.412972927459819e-02 5.403862019627870e-02 5.394751295390937e-02 5.385640797531270e-02 5.376530569364821e-02 - 5.367420650537214e-02 5.358311072889269e-02 5.349201882499156e-02 5.340093132499041e-02 5.330984856991542e-02 - 5.321877091980749e-02 5.312769879767464e-02 5.303663263591166e-02 5.294557280318667e-02 5.285451962473617e-02 - 5.276347361952855e-02 5.267243525955664e-02 5.258140485845194e-02 5.249038280640431e-02 5.239936952998326e-02 - 5.230836544276557e-02 5.221737088032564e-02 5.212638621732711e-02 5.203541199430900e-02 5.194444860919033e-02 - 5.185349638284296e-02 5.176255572471577e-02 5.167162705674897e-02 5.158071077330502e-02 5.148980718747074e-02 - 5.139891673261619e-02 5.130803993485430e-02 5.121717713356427e-02 5.112632867301793e-02 5.103549496777923e-02 - 5.094467643725986e-02 5.085387344650644e-02 5.076308630673339e-02 5.067231551219451e-02 5.058156153920812e-02 - 5.049082469322039e-02 5.040010534612100e-02 5.030940391348503e-02 5.021872080090227e-02 5.012805633824483e-02 - 5.003741087422633e-02 4.994678493647212e-02 4.985617892926745e-02 4.976559315779018e-02 4.967502801470126e-02 - 4.958448390876292e-02 4.949396122643934e-02 4.940346027599988e-02 4.931298146262254e-02 4.922252530167843e-02 - 4.913209213539834e-02 4.904168229174269e-02 4.895129616994274e-02 4.886093417404704e-02 4.877059666413559e-02 - 4.868028394034647e-02 4.858999646754281e-02 4.849973472130898e-02 4.840949900241633e-02 4.831928966152828e-02 - 4.822910709871525e-02 4.813895171199074e-02 4.804882382564480e-02 4.795872376124456e-02 4.786865202942978e-02 - 4.777860903855367e-02 4.768859507592742e-02 4.759861051627762e-02 4.750865575639699e-02 4.741873117406014e-02 - 4.732883706721817e-02 4.723897381137243e-02 4.714914191200375e-02 4.705934171189571e-02 4.696957351961628e-02 - 4.687983771740974e-02 4.679013469431771e-02 4.670046480338604e-02 4.661082833156779e-02 4.652122571187634e-02 - 4.643165741520618e-02 4.634212373882778e-02 4.625262501422293e-02 4.616316162482947e-02 4.607373395212459e-02 - 4.598434231610999e-02 4.589498701904484e-02 4.580566854223844e-02 4.571638729424802e-02 4.562714355109129e-02 - 4.553793766452621e-02 4.544877001582995e-02 4.535964097502848e-02 4.527055082898004e-02 4.518149992236756e-02 - 4.509248874970542e-02 4.500351765014129e-02 4.491458690878355e-02 4.482569689376779e-02 4.473684797939540e-02 - 4.464804050747698e-02 4.455927474828068e-02 4.447055110499822e-02 4.438187004531898e-02 4.429323185876936e-02 - 4.420463685202721e-02 4.411608538888854e-02 4.402757783926076e-02 4.393911451733543e-02 4.385069570127949e-02 - 4.376232184208732e-02 4.367399334643604e-02 4.358571047769912e-02 4.349747356709084e-02 4.340928298020802e-02 - 4.332113907381294e-02 4.323304212320113e-02 4.314499244129432e-02 4.305699050668390e-02 4.296903665620930e-02 - 4.288113115167341e-02 4.279327434447749e-02 4.270546659199307e-02 4.261770822231841e-02 4.252999949469098e-02 - 4.244234077853745e-02 4.235473252680039e-02 4.226717502474875e-02 4.217966855846760e-02 4.209221347273914e-02 - 4.200481011967518e-02 4.191745880279663e-02 4.183015977695443e-02 4.174291346429643e-02 4.165572027077732e-02 - 4.156858044734360e-02 4.148149429654668e-02 4.139446216241891e-02 4.130748439363172e-02 4.122056125606220e-02 - 4.113369302794675e-02 4.104688016346336e-02 4.096012300095512e-02 4.087342178434451e-02 4.078677683583759e-02 - 4.070018849668031e-02 4.061365708919899e-02 4.052718285106741e-02 4.044076611819490e-02 4.035440733833207e-02 - 4.026810678092279e-02 4.018186470341873e-02 4.009568143909095e-02 4.000955732298062e-02 3.992349264534106e-02 - 3.983748763759326e-02 3.975154269055037e-02 3.966565820546299e-02 3.957983441649049e-02 3.949407160357907e-02 - 3.940837009289332e-02 3.932273021031552e-02 3.923715221270428e-02 3.915163635394041e-02 3.906618306202975e-02 - 3.898079266950179e-02 3.889546539672872e-02 3.881020154253283e-02 3.872500143016262e-02 3.863986536923758e-02 - 3.855479358615301e-02 3.846978637959592e-02 3.838484417257106e-02 3.829996723484980e-02 3.821515580420295e-02 - 3.813041018714970e-02 3.804573069687705e-02 3.796111761198420e-02 3.787657114752344e-02 3.779209165765486e-02 - 3.770767953120019e-02 3.762333499040284e-02 3.753905829251161e-02 3.745484974542636e-02 3.737070965331050e-02 - 3.728663825939783e-02 3.720263578933122e-02 3.711870264209954e-02 3.703483914671073e-02 3.695104550519348e-02 - 3.686732199057993e-02 3.678366890490292e-02 3.670008654113079e-02 3.661657511036890e-02 3.653313487804630e-02 - 3.644976625150438e-02 3.636646948823320e-02 3.628324479604935e-02 3.620009246605282e-02 3.611701279349350e-02 - 3.603400604041686e-02 3.595107239910939e-02 3.586821219020735e-02 3.578542579441001e-02 3.570271341631447e-02 - 3.562007528519529e-02 3.553751169069794e-02 3.545502291550906e-02 3.537260919186706e-02 3.529027072401183e-02 - 3.520800787214007e-02 3.512582095428173e-02 3.504371015751370e-02 3.496167573051010e-02 3.487971795476078e-02 - 3.479783710598274e-02 3.471603337811516e-02 3.463430699965583e-02 3.455265835796009e-02 3.447108770848941e-02 - 3.438959523450754e-02 3.430818119554624e-02 3.422684586511945e-02 3.414558949343227e-02 3.406441225419257e-02 - 3.398331443038755e-02 3.390229638782512e-02 3.382135832287533e-02 3.374050043789544e-02 3.365972299780525e-02 - 3.357902626321113e-02 3.349841045119794e-02 3.341787574130316e-02 3.333742246166845e-02 3.325705092272905e-02 - 3.317676129391954e-02 3.309655379649919e-02 3.301642868788483e-02 3.293638622159571e-02 3.285642658240021e-02 - 3.277654996949401e-02 3.269675673538998e-02 3.261704712715797e-02 3.253742130855802e-02 3.245787951722746e-02 - 3.237842200259459e-02 3.229904899349424e-02 3.221976065258773e-02 3.214055722659278e-02 3.206143905506719e-02 - 3.198240632628265e-02 3.190345921865954e-02 3.182459797365254e-02 3.174582282841434e-02 3.166713398447476e-02 - 3.158853160183031e-02 3.151001597036992e-02 3.143158738592136e-02 3.135324600516137e-02 3.127499202279022e-02 - 3.119682567104914e-02 3.111874718036912e-02 3.104075672462514e-02 3.096285447683152e-02 3.088504075536903e-02 - 3.080731579690068e-02 3.072967974437236e-02 3.065213281019982e-02 3.057467522135681e-02 3.049730718652442e-02 - 3.042002885157935e-02 3.034284042889533e-02 3.026574223701538e-02 3.018873445294931e-02 3.011181722724549e-02 - 3.003499077734359e-02 2.995825532248887e-02 2.988161104857855e-02 2.980505808548691e-02 2.972859668986686e-02 - 2.965222714891759e-02 2.957594959806504e-02 2.949976420500935e-02 2.942367118266701e-02 2.934767073798247e-02 - 2.927176302885600e-02 2.919594820074298e-02 2.912022654108078e-02 2.904459827654108e-02 2.896906352751058e-02 - 2.889362247668933e-02 2.881827533028623e-02 2.874302228403363e-02 2.866786346167200e-02 2.859279903706265e-02 - 2.851782931145582e-02 2.844295445253672e-02 2.836817458182308e-02 2.829348988995876e-02 2.821890057629359e-02 - 2.814440681221589e-02 2.807000870175516e-02 2.799570646465742e-02 2.792150037589211e-02 2.784739055623231e-02 - 2.777337714638600e-02 2.769946033688953e-02 2.762564030841585e-02 2.755191720229608e-02 2.747829114116882e-02 - 2.740476237631904e-02 2.733133112357609e-02 2.725799748998750e-02 2.718476162641247e-02 2.711162371095654e-02 - 2.703858392279279e-02 2.696564237390275e-02 2.689279920452167e-02 2.682005468428394e-02 2.674740897239565e-02 - 2.667486216835663e-02 2.660241443488607e-02 2.653006594727732e-02 2.645781686062815e-02 2.638566726160998e-02 - 2.631361733435826e-02 2.624166733570949e-02 2.616981737012440e-02 2.609806754771221e-02 2.602641803533937e-02 - 2.595486900051258e-02 2.588342056814261e-02 2.581207282360541e-02 2.574082599292273e-02 2.566968028470076e-02 - 2.559863577456860e-02 2.552769259041796e-02 2.545685089381796e-02 2.538611083889939e-02 2.531547252137675e-02 - 2.524493605061727e-02 2.517450166747065e-02 2.510416952086314e-02 2.503393968681819e-02 2.496381230163825e-02 - 2.489378751859868e-02 2.482386547683629e-02 2.475404624292582e-02 2.468432996264991e-02 2.461471687229032e-02 - 2.454520706873932e-02 2.447580063686782e-02 2.440649771598710e-02 2.433729844997764e-02 2.426820294893469e-02 - 2.419921127712116e-02 2.413032362216684e-02 2.406154017790910e-02 2.399286100816565e-02 2.392428621229386e-02 - 2.385581592554643e-02 2.378745028409909e-02 2.371918936700126e-02 2.365103325041379e-02 2.358298215018098e-02 - 2.351503620457756e-02 2.344719546326070e-02 2.337946004127276e-02 2.331183006962702e-02 2.324430566419196e-02 - 2.317688687789637e-02 2.310957382435168e-02 2.304236671579298e-02 2.297526563441205e-02 2.290827063843882e-02 - 2.284138184722980e-02 2.277459938171355e-02 2.270792333404544e-02 2.264135374860772e-02 2.257489077729924e-02 - 2.250853459738779e-02 2.244228525780410e-02 2.237614283279474e-02 2.231010743473913e-02 2.224417917668724e-02 - 2.217835812285958e-02 2.211264432248330e-02 2.204703795931322e-02 2.198153916317220e-02 2.191614796666107e-02 - 2.185086445220271e-02 2.178568872592581e-02 2.172062089111306e-02 2.165566098457172e-02 2.159080908357505e-02 - 2.152606537366001e-02 2.146142993110024e-02 2.139690279242156e-02 2.133248404619538e-02 2.126817379406035e-02 - 2.120397211607284e-02 2.113987903003668e-02 2.107589465469217e-02 2.101201915594272e-02 2.094825256288664e-02 - 2.088459492231405e-02 2.082104632696408e-02 2.075760686991806e-02 2.069427660166107e-02 2.063105554609518e-02 - 2.056794384972622e-02 2.050494162894281e-02 2.044204890243054e-02 2.037926573000831e-02 2.031659219454509e-02 - 2.025402837653619e-02 2.019157429898307e-02 2.012923000978476e-02 2.006699566765361e-02 2.000487133731908e-02 - 1.994285703240835e-02 1.988095281849638e-02 1.981915877663429e-02 1.975747497137283e-02 1.969590139839621e-02 - 1.963443814246610e-02 1.957308535571834e-02 1.951184305296579e-02 1.945071125524195e-02 1.938969003470093e-02 - 1.932877945979973e-02 1.926797956444602e-02 1.920729035294688e-02 1.914671194302782e-02 1.908624443873623e-02 - 1.902588783798898e-02 1.896564217312377e-02 1.890550750534374e-02 1.884548390173623e-02 1.878557136933607e-02 - 1.872576992282937e-02 1.866607969751645e-02 1.860650074902563e-02 1.854703306920867e-02 1.848767670108510e-02 - 1.842843170242723e-02 1.836929811895166e-02 1.831027593341436e-02 1.825136519709141e-02 1.819256603897189e-02 - 1.813387846842225e-02 1.807530248298604e-02 1.801683812530333e-02 1.795848544988909e-02 1.790024447932676e-02 - 1.784211518704799e-02 1.778409766075985e-02 1.772619199567190e-02 1.766839817113224e-02 1.761071619932593e-02 - 1.755314612276550e-02 1.749568797940397e-02 1.743834176385679e-02 1.738110747126647e-02 1.732398520795971e-02 - 1.726697501687009e-02 1.721007686976607e-02 1.715329079150987e-02 1.709661681774517e-02 1.704005496995066e-02 - 1.698360522175755e-02 1.692726759648597e-02 1.687104219632033e-02 1.681492902190890e-02 1.675892805218375e-02 - 1.670303930866012e-02 1.664726282100333e-02 1.659159859573434e-02 1.653604659349284e-02 1.648060687061485e-02 - 1.642527950537791e-02 1.637006446137386e-02 1.631496172845883e-02 1.625997133117372e-02 1.620509328829045e-02 - 1.615032758053278e-02 1.609567417924041e-02 1.604113316306734e-02 1.598670456411958e-02 1.593238833576510e-02 - 1.587818448257840e-02 1.582409302120838e-02 1.577011395254391e-02 1.571624723647299e-02 1.566249287063067e-02 - 1.560885093721684e-02 1.555532142372995e-02 1.550190428691725e-02 1.544859953345741e-02 1.539540716895692e-02 - 1.534232718045593e-02 1.528935952298772e-02 1.523650422043375e-02 1.518376132655854e-02 1.513113080051426e-02 - 1.507861261080395e-02 1.502620675643192e-02 1.497391324399307e-02 1.492173204313831e-02 1.486966309840608e-02 - 1.481770646058926e-02 1.476586215324725e-02 1.471413011485714e-02 1.466251032223325e-02 1.461100277337298e-02 - 1.455960746411957e-02 1.450832433725036e-02 1.445715335761371e-02 1.440609458945226e-02 1.435514801148310e-02 - 1.430431355790390e-02 1.425359121341204e-02 1.420298097105418e-02 1.415248280845771e-02 1.410209665546564e-02 - 1.405182250942155e-02 1.400166041623447e-02 1.395161031395394e-02 1.390167215017196e-02 1.385184591619880e-02 - 1.380213159317199e-02 1.375252913341631e-02 1.370303846818604e-02 1.365365962256361e-02 1.360439260851619e-02 - 1.355523734898775e-02 1.350619380184460e-02 1.345726194685572e-02 1.340844175819677e-02 1.335973317080697e-02 - 1.331113613029375e-02 1.326265067233158e-02 1.321427676765317e-02 1.316601433678336e-02 1.311786334248669e-02 - 1.306982375879771e-02 1.302189555021592e-02 1.297407863461756e-02 1.292637298076667e-02 1.287877861455418e-02 - 1.283129547339001e-02 1.278392348592105e-02 1.273666261347862e-02 1.268951282495219e-02 1.264247406704279e-02 - 1.259554625321822e-02 1.254872937642621e-02 1.250202343522368e-02 1.245542834900525e-02 1.240894405313941e-02 - 1.236257050462080e-02 1.231630767029411e-02 1.227015547343941e-02 1.222411383176151e-02 1.217818275998809e-02 - 1.213236222220244e-02 1.208665212384520e-02 1.204105241018576e-02 1.199556303854240e-02 1.195018395838791e-02 - 1.190491507365890e-02 1.185975632952753e-02 1.181470773836339e-02 1.176976922480089e-02 1.172494069835479e-02 - 1.168022211004454e-02 1.163561340968965e-02 1.159111452823667e-02 1.154672536811994e-02 1.150244589927961e-02 - 1.145827610670764e-02 1.141421589534856e-02 1.137026518661645e-02 1.132642392502224e-02 1.128269205281729e-02 - 1.123906948383837e-02 1.119555612518262e-02 1.115215196588227e-02 1.110885695891592e-02 1.106567099667937e-02 - 1.102259400831050e-02 1.097962593601935e-02 1.093676671505125e-02 1.089401623812122e-02 1.085137442757511e-02 - 1.080884127911701e-02 1.076641671182367e-02 1.072410061923310e-02 1.068189293399554e-02 1.063979359231152e-02 - 1.059780251428707e-02 1.055591958418482e-02 1.051414475108346e-02 1.047247799305691e-02 1.043091920126454e-02 - 1.038946827795377e-02 1.034812515386981e-02 1.030688975996647e-02 1.026576200007446e-02 1.022474176231751e-02 - 1.018382901647819e-02 1.014302370834395e-02 1.010232571551464e-02 1.006173495028295e-02 1.002125134058496e-02 - 9.980874808217161e-03 9.940605238090998e-03 9.900442533803457e-03 9.860386673211879e-03 9.820437566105797e-03 - 9.780595089730604e-03 9.740859166502601e-03 9.701229717604148e-03 9.661706648486619e-03 9.622289837555094e-03 - 9.582979211676392e-03 9.543774731762645e-03 9.504676285752028e-03 9.465683761437204e-03 9.426797070527869e-03 - 9.388016130061547e-03 9.349340837763126e-03 9.310771071700266e-03 9.272306774287777e-03 9.233947879847340e-03 - 9.195694263233465e-03 9.157545820041815e-03 9.119502462398593e-03 9.081564104605406e-03 9.043730620594144e-03 - 9.006001891771507e-03 8.968377884117109e-03 8.930858503326412e-03 8.893443610144467e-03 8.856133108771761e-03 - 8.818926910576046e-03 8.781824915337199e-03 8.744826984807866e-03 8.707933026764444e-03 8.671142997995955e-03 - 8.634456771198624e-03 8.597874217863410e-03 8.561395247729468e-03 8.525019762147885e-03 8.488747643810387e-03 - 8.452578758551675e-03 8.416513035074836e-03 8.380550402064440e-03 8.344690718755845e-03 8.308933866062409e-03 - 8.273279745485652e-03 8.237728259206089e-03 8.202279277607399e-03 8.166932668725525e-03 8.131688373197346e-03 - 8.096546291813443e-03 8.061506280849479e-03 8.026568229604077e-03 7.991732033790425e-03 7.956997581179438e-03 - 7.922364735477982e-03 7.887833385768220e-03 7.853403460644042e-03 7.819074838170454e-03 7.784847385209607e-03 - 7.750720988388416e-03 7.716695538073770e-03 7.682770912288046e-03 7.648946965667346e-03 7.615223607644973e-03 - 7.581600758648286e-03 7.548078272068747e-03 7.514656018308716e-03 7.481333888256649e-03 7.448111767084748e-03 - 7.414989518558892e-03 7.381967002509678e-03 7.349044141005179e-03 7.316220829119200e-03 7.283496916229069e-03 - 7.250872276568530e-03 7.218346796125786e-03 7.185920358959778e-03 7.153592811909379e-03 7.121364026156801e-03 - 7.089233934032213e-03 7.057202401526107e-03 7.025269274784423e-03 6.993434437254338e-03 6.961697770726437e-03 - 6.930059144137623e-03 6.898518406074085e-03 6.867075445461445e-03 6.835730169890301e-03 6.804482436531050e-03 - 6.773332103630715e-03 6.742279042830752e-03 6.711323134446215e-03 6.680464239400761e-03 6.649702204950062e-03 - 6.619036937093537e-03 6.588468325547939e-03 6.557996212108587e-03 6.527620458965777e-03 6.497340941897300e-03 - 6.467157538628341e-03 6.437070090473932e-03 6.407078453159759e-03 6.377182548096138e-03 6.347382238649846e-03 - 6.317677359750170e-03 6.288067782822399e-03 6.258553381641384e-03 6.229134019133821e-03 6.199809533909972e-03 - 6.170579803332374e-03 6.141444731866248e-03 6.112404164377095e-03 6.083457948651627e-03 6.054605954063168e-03 - 6.025848047899531e-03 5.997184082520315e-03 5.968613898555075e-03 5.940137388272029e-03 5.911754435973001e-03 - 5.883464876798197e-03 5.855268565478542e-03 5.827165369238958e-03 5.799155152943781e-03 5.771237757858197e-03 - 5.743413031370796e-03 5.715680873423079e-03 5.688041146137241e-03 5.660493683352233e-03 5.633038344713090e-03 - 5.605674994693767e-03 5.578403490874967e-03 5.551223666073857e-03 5.524135383482108e-03 5.497138538622371e-03 - 5.470232973711985e-03 5.443418527865922e-03 5.416695061766649e-03 5.390062436684385e-03 5.363520500801443e-03 - 5.337069085950208e-03 5.310708070645691e-03 5.284437334686721e-03 5.258256709167105e-03 5.232166039984466e-03 - 5.206165186351173e-03 5.180254006079314e-03 5.154432337116667e-03 5.128700017566677e-03 5.103056934758595e-03 - 5.077502948400768e-03 5.052037887552509e-03 5.026661602896529e-03 5.001373950974750e-03 4.976174783805283e-03 - 4.951063931174483e-03 4.926041244835856e-03 4.901106610871052e-03 4.876259869861805e-03 4.851500854152867e-03 - 4.826829416485723e-03 4.802245411238555e-03 4.777748682676776e-03 4.753339057595283e-03 4.729016402174706e-03 - 4.704780591018902e-03 4.680631452386119e-03 4.656568824906738e-03 4.632592561043116e-03 4.608702512089780e-03 - 4.584898512841469e-03 4.561180394112987e-03 4.537548032865621e-03 4.514001286180084e-03 4.490539978046344e-03 - 4.467163952568486e-03 4.443873060291688e-03 4.420667147623122e-03 4.397546041481102e-03 4.374509584352294e-03 - 4.351557654555007e-03 4.328690090868674e-03 4.305906719484884e-03 4.283207387010587e-03 4.260591942258349e-03 - 4.238060226010617e-03 4.215612060889534e-03 4.193247302342208e-03 4.170965820265097e-03 4.148767441443334e-03 - 4.126651998168965e-03 4.104619336614093e-03 4.082669303050944e-03 4.060801730082235e-03 4.039016442831475e-03 - 4.017313308452854e-03 3.995692181792875e-03 3.974152883344686e-03 3.952695251163741e-03 3.931319130911208e-03 - 3.910024364917125e-03 3.888810777810686e-03 3.867678204037116e-03 3.846626514691173e-03 3.825655547709963e-03 - 3.804765124734014e-03 3.783955087456414e-03 3.763225279741349e-03 3.742575538839424e-03 3.722005684569956e-03 - 3.701515563829318e-03 3.681105042529648e-03 3.660773945892437e-03 3.640522100973796e-03 3.620349349516141e-03 - 3.600255533338096e-03 3.580240483202974e-03 3.560304020332013e-03 3.540446002992503e-03 3.520666284206718e-03 - 3.500964682823155e-03 3.481341031384374e-03 3.461795171007476e-03 3.442326941040924e-03 3.422936165061433e-03 - 3.403622671201535e-03 3.384386323473485e-03 3.365226959961049e-03 3.346144399498565e-03 3.327138478378434e-03 - 3.308209036536853e-03 3.289355909461925e-03 3.270578915351533e-03 3.251877893639187e-03 3.233252706195778e-03 - 3.214703178029928e-03 3.196229132118811e-03 3.177830406368320e-03 3.159506839403438e-03 3.141258260810600e-03 - 3.123084488811596e-03 3.104985374197366e-03 3.086960768611876e-03 3.069010490077185e-03 3.051134366997480e-03 - 3.033332237019262e-03 3.015603936903380e-03 2.997949290147841e-03 2.980368120588831e-03 2.962860285290425e-03 - 2.945425622240710e-03 2.928063948810786e-03 2.910775098113858e-03 2.893558906982335e-03 2.876415208617919e-03 - 2.859343821344898e-03 2.842344578930633e-03 2.825417338731532e-03 2.808561926446875e-03 2.791778162629514e-03 - 2.775065882662152e-03 2.758424922052246e-03 2.741855109318431e-03 2.725356262118107e-03 2.708928224810950e-03 - 2.692570847204586e-03 2.676283947708203e-03 2.660067352018658e-03 2.643920895408666e-03 2.627844412630983e-03 - 2.611837727127577e-03 2.595900659591014e-03 2.580033062057212e-03 2.564234773200918e-03 2.548505609580814e-03 - 2.532845401329118e-03 2.517253983314282e-03 2.501731188088862e-03 2.486276834298587e-03 2.470890751027053e-03 - 2.455572791828030e-03 2.440322784214469e-03 2.425140547489158e-03 2.410025914370114e-03 2.394978718743150e-03 - 2.379998789312335e-03 2.365085943631231e-03 2.350240020749269e-03 2.335460868942443e-03 2.320748308349550e-03 - 2.306102163022297e-03 2.291522266200105e-03 2.277008450857895e-03 2.262560541519312e-03 2.248178358404482e-03 - 2.233861748393963e-03 2.219610550590767e-03 2.205424582540762e-03 2.191303672653564e-03 2.177247654150935e-03 - 2.163256358437406e-03 2.149329606085116e-03 2.135467224025938e-03 2.121669062135428e-03 2.107934949596006e-03 - 2.094264705479671e-03 2.080658161247730e-03 2.067115150052171e-03 2.053635501035216e-03 2.040219032033609e-03 - 2.026865578574763e-03 2.013574988607888e-03 2.000347084189316e-03 1.987181688126059e-03 1.974078632294973e-03 - 1.961037750159034e-03 1.948058867783843e-03 1.935141804192390e-03 1.922286403096425e-03 1.909492504980594e-03 - 1.896759928265229e-03 1.884088500763132e-03 1.871478055631251e-03 1.858928424089599e-03 1.846439428400912e-03 - 1.834010894228015e-03 1.821642669213327e-03 1.809334584628213e-03 1.797086460037203e-03 1.784898126770644e-03 - 1.772769417737367e-03 1.760700162615002e-03 1.748690181778845e-03 1.736739308394668e-03 1.724847388831493e-03 - 1.713014248130287e-03 1.701239709792772e-03 1.689523605558227e-03 1.677865768960374e-03 1.666266027776910e-03 - 1.654724201747776e-03 1.643240132443950e-03 1.631813662093462e-03 1.620444610863358e-03 1.609132806416696e-03 - 1.597878082462674e-03 1.586680271167799e-03 1.575539197124769e-03 1.564454685806544e-03 1.553426583192850e-03 - 1.542454723186195e-03 1.531538926942232e-03 1.520679025889417e-03 1.509874853790604e-03 1.499126242122267e-03 - 1.488433013507451e-03 1.477795000037597e-03 1.467212048115432e-03 1.456683985464255e-03 1.446210636719452e-03 - 1.435791835117153e-03 1.425427414393694e-03 1.415117204211151e-03 1.404861027594662e-03 1.394658724273689e-03 - 1.384510137356095e-03 1.374415090575271e-03 1.364373412382042e-03 1.354384937246215e-03 1.344449499301808e-03 - 1.334566925970926e-03 1.324737043332181e-03 1.314959696939330e-03 1.305234723823342e-03 1.295561947265019e-03 - 1.285941199528206e-03 1.276372315963847e-03 1.266855130463658e-03 1.257389468322312e-03 1.247975161599065e-03 - 1.238612057815808e-03 1.229299987951490e-03 1.220038778115428e-03 1.210828263449681e-03 1.201668279419893e-03 - 1.192558658328712e-03 1.183499226491516e-03 1.174489822883548e-03 1.165530291825810e-03 1.156620461345326e-03 - 1.147760161971411e-03 1.138949229776032e-03 1.130187500878873e-03 1.121474806129454e-03 1.112810973708310e-03 - 1.104195848566657e-03 1.095629271185936e-03 1.087111069073448e-03 1.078641075658101e-03 1.070219127753748e-03 - 1.061845062287274e-03 1.053518708913237e-03 1.045239900848634e-03 1.037008485418972e-03 1.028824298155823e-03 - 1.020687168641753e-03 1.012596933141099e-03 1.004553429894111e-03 9.965564952721074e-04 9.886059579764911e-04 - 9.807016577383673e-04 9.728434421263681e-04 9.650311428619217e-04 9.572645925441391e-04 9.495436296868831e-04 - 9.418680934992058e-04 9.342378189983833e-04 9.266526374013966e-04 9.191123940951565e-04 9.116169327210938e-04 - 9.041660846048507e-04 8.967596865276394e-04 8.893975784458786e-04 8.820795994475233e-04 8.748055834052338e-04 - 8.675753662309574e-04 8.603887967412885e-04 8.532457145816050e-04 8.461459528881801e-04 8.390893515597134e-04 - 8.320757512954288e-04 8.251049910410551e-04 8.181769052102455e-04 8.112913354889369e-04 8.044481307476467e-04 - 7.976471276304203e-04 7.908881626723219e-04 7.841710779271092e-04 7.774957151422038e-04 7.708619131557394e-04 - 7.642695077220146e-04 7.577183458379644e-04 7.512082748417916e-04 7.447391309361296e-04 7.383107537219758e-04 - 7.319229861740803e-04 7.255756719189899e-04 7.192686493738265e-04 7.130017570250109e-04 7.067748463319056e-04 - 7.005877618919097e-04 6.944403408515077e-04 6.883324261093659e-04 6.822638623160529e-04 6.762344932684062e-04 - 6.702441573916524e-04 6.642926986443232e-04 6.583799694858947e-04 6.525058122102392e-04 6.466700672293728e-04 - 6.408725793807691e-04 6.351131947715911e-04 6.293917574305099e-04 6.237081070877600e-04 6.180620932909059e-04 - 6.124535677685099e-04 6.068823714677426e-04 6.013483481700967e-04 5.958513451670206e-04 5.903912096703989e-04 - 5.849677853780454e-04 5.795809154020751e-04 5.742304534677881e-04 5.689162489783443e-04 5.636381442526738e-04 - 5.583959863498279e-04 5.531896240506697e-04 5.480189055622431e-04 5.428836748799696e-04 5.377837797240800e-04 - 5.327190759830209e-04 5.276894110958636e-04 5.226946300477827e-04 5.177345825024617e-04 5.128091188465486e-04 - 5.079180879528710e-04 5.030613351067660e-04 4.982387130290541e-04 4.934500776624026e-04 4.886952758062522e-04 - 4.839741558713263e-04 4.792865695826084e-04 4.746323688630657e-04 4.700114029595036e-04 4.654235198613055e-04 - 4.608685766627245e-04 4.563464280591107e-04 4.518569219186994e-04 4.473999099762359e-04 4.429752457691277e-04 - 4.385827824909558e-04 4.342223700107388e-04 4.298938604566902e-04 4.255971135329090e-04 4.213319826090788e-04 - 4.170983180859963e-04 4.128959744299958e-04 4.087248069577171e-04 4.045846700338900e-04 4.004754147907325e-04 - 3.963968979642262e-04 3.923489801919561e-04 3.883315144592717e-04 3.843443544269981e-04 3.803873568608614e-04 - 3.764603788261386e-04 3.725632754784107e-04 3.686959004384349e-04 3.648581147870281e-04 3.610497787686854e-04 - 3.572707463878945e-04 3.535208745539621e-04 3.498000220657478e-04 3.461080477383748e-04 3.424448076363575e-04 - 3.388101589386426e-04 3.352039657815740e-04 3.316260877532703e-04 3.280763812137888e-04 3.245547060139738e-04 - 3.210609229167205e-04 3.175948921405597e-04 3.141564711604799e-04 3.107455215081982e-04 3.073619088757455e-04 - 3.040054927848886e-04 3.006761327105527e-04 2.973736909925681e-04 2.940980303881470e-04 2.908490123115160e-04 - 2.876264965105581e-04 2.844303488008553e-04 2.812604353029198e-04 2.781166164989417e-04 2.749987551423296e-04 - 2.719067158817455e-04 2.688403633742989e-04 2.657995602462465e-04 2.627841695326067e-04 2.597940603791381e-04 - 2.568290988582687e-04 2.538891477672460e-04 2.509740728301346e-04 2.480837407612393e-04 2.452180180501483e-04 - 2.423767689150773e-04 2.395598604007145e-04 2.367671637065971e-04 2.339985452156380e-04 2.312538707417314e-04 - 2.285330086975239e-04 2.258358279521211e-04 2.231621965330517e-04 2.205119809474630e-04 2.178850522930381e-04 - 2.152812827957872e-04 2.127005401044592e-04 2.101426932429596e-04 2.076076129630843e-04 2.050951703707553e-04 - 2.026052350574154e-04 2.001376764695323e-04 1.976923692963255e-04 1.952691863631026e-04 1.928679973631469e-04 - 1.904886744667185e-04 1.881310908124045e-04 1.857951194428946e-04 1.834806317739651e-04 1.811875010647571e-04 - 1.789156043640377e-04 1.766648152326652e-04 1.744350063601967e-04 1.722260526922104e-04 1.700378296945535e-04 - 1.678702123432160e-04 1.657230742438847e-04 1.635962925697728e-04 1.614897461072756e-04 1.594033097074569e-04 - 1.573368592094730e-04 1.552902721810668e-04 1.532634264532060e-04 1.512561988693490e-04 1.492684659352835e-04 - 1.473001083560244e-04 1.453510059716440e-04 1.434210358729406e-04 1.415100771164913e-04 1.396180097223186e-04 - 1.377447137267307e-04 1.358900680130841e-04 1.340539526362652e-04 1.322362510498252e-04 1.304368442346035e-04 - 1.286556121626104e-04 1.268924368411170e-04 1.251472007379926e-04 1.234197860690376e-04 1.217100740639766e-04 - 1.200179485071157e-04 1.183432949752447e-04 1.166859960758634e-04 1.150459349477667e-04 1.134229962637926e-04 - 1.118170649981152e-04 1.102280255615328e-04 1.086557620076939e-04 1.071001616642248e-04 1.055611117192228e-04 - 1.040384970703678e-04 1.025322040262462e-04 1.010421198490596e-04 9.956813202096472e-05 9.811012722455996e-05 - 9.666799283658755e-05 9.524161921027426e-05 9.383089505710078e-05 9.243570803818307e-05 9.105594759252440e-05 - 8.969150364397068e-05 8.834226604286881e-05 8.700812397260034e-05 8.568896841419017e-05 8.438469212608002e-05 - 8.309518568825200e-05 8.182033994906239e-05 8.056004718218619e-05 7.931419998170841e-05 7.808269064296404e-05 - 7.686541112857092e-05 7.566225594198306e-05 7.447311991364301e-05 7.329789600792314e-05 7.213647827366786e-05 - 7.098876170896106e-05 6.985464163907488e-05 6.873401282606521e-05 6.762677039259616e-05 6.653281205307769e-05 - 6.545203459530543e-05 6.438433381335806e-05 6.332960688869456e-05 6.228775159650499e-05 6.125866586213212e-05 - 6.024224709312662e-05 5.923839394811549e-05 5.824700680510711e-05 5.726798458845817e-05 5.630122626966778e-05 - 5.534663202079377e-05 5.440410243697520e-05 5.347353805513213e-05 5.255483915897720e-05 5.164790790372327e-05 - 5.075264706713765e-05 4.986895809670387e-05 4.899674321102013e-05 4.813590548272275e-05 4.728634834520723e-05 - 4.644797500988253e-05 4.562068892036128e-05 4.480439551815946e-05 4.399899988301035e-05 4.320440633696577e-05 - 4.242052030402665e-05 4.164724778526068e-05 4.088449502887978e-05 4.013216802138054e-05 3.939017361734100e-05 - 3.865842020891389e-05 3.793681530287127e-05 3.722526637683801e-05 3.652368195642655e-05 3.583197100166348e-05 - 3.515004257550265e-05 3.447780563338777e-05 3.381517049939420e-05 3.316204825033269e-05 3.251834908257212e-05 - 3.188398376275541e-05 3.125886384349450e-05 3.064290126992314e-05 3.003600797392098e-05 2.943809607683111e-05 - 2.884907925556903e-05 2.826887119646782e-05 2.769738505988399e-05 2.713453488302094e-05 2.658023526748751e-05 - 2.603440114263312e-05 2.549694738792051e-05 2.496778949423694e-05 2.444684425976710e-05 2.393402805764408e-05 - 2.342925723948219e-05 2.293244905822871e-05 2.244352120797989e-05 2.196239159983278e-05 2.148897818423003e-05 - 2.102319990982268e-05 2.056497650699234e-05 2.011422722229805e-05 1.967087173846936e-05 1.923483045310688e-05 - 1.880602417859793e-05 1.838437386840237e-05 1.796980069033951e-05 1.756222699777835e-05 1.716157539169325e-05 - 1.676776819323897e-05 1.638072842752046e-05 1.600037965967140e-05 1.562664583506045e-05 1.525945101785764e-05 - 1.489871974108943e-05 1.454437762041471e-05 1.419635018600421e-05 1.385456300630342e-05 1.351894241351905e-05 - 1.318941519258516e-05 1.286590843459537e-05 1.254834939298960e-05 1.223666606495489e-05 1.193078719950152e-05 - 1.163064137727749e-05 1.133615754527981e-05 1.104726530816775e-05 1.076389469662666e-05 1.048597599093073e-05 - 1.021343974753131e-05 9.946217419267380e-06 9.684240838620889e-06 9.427441790773100e-06 9.175752643853506e-06 - 8.929106280098344e-06 8.687435997194528e-06 8.450675338936148e-06 8.218758257424963e-06 7.991619584870982e-06 - 7.769194298227330e-06 7.551417507621627e-06 7.338224987041431e-06 7.129552955942858e-06 6.925337997222138e-06 - 6.725516977155444e-06 6.530027335862672e-06 6.338807194551445e-06 6.151794769434223e-06 5.968928615355085e-06 - 5.790147878391894e-06 5.615392155261267e-06 5.444601365246586e-06 5.277715758699128e-06 5.114676291438329e-06 - 4.955424365336747e-06 4.799901525655197e-06 4.648049820836300e-06 4.499811793985402e-06 4.355130438087899e-06 - 4.213949069835453e-06 4.076211399540344e-06 3.941861865039729e-06 3.810845196499976e-06 3.683106361660463e-06 - 3.558590910585118e-06 3.437244835818923e-06 3.319014541070219e-06 3.203846795533912e-06 3.091688852089737e-06 - 2.982488579295818e-06 2.876194109656037e-06 2.772753925582794e-06 2.672117063800105e-06 2.574233014808049e-06 - 2.479051643033932e-06 2.386523210361943e-06 2.296598552297165e-06 2.209228971591383e-06 2.124366069775506e-06 - 2.041961906232304e-06 1.961969019732135e-06 1.884340423438541e-06 1.809029507182080e-06 1.735990071613592e-06 - 1.665176534356502e-06 1.596543687803830e-06 1.530046658503296e-06 1.465641105678908e-06 1.403283128309336e-06 - 1.342929271825179e-06 1.284536503035511e-06 1.228062233226246e-06 1.173464436795038e-06 1.120701460082181e-06 - 1.069732028902882e-06 1.020515399241352e-06 9.730112822753146e-07 9.271798002921477e-07 8.829815278752155e-07 - 8.403775374680640e-07 7.993293716485992e-07 7.597989809176624e-07 7.217487560416926e-07 6.851415619710593e-07 - 6.499407524191172e-07 6.161100929136179e-07 5.836137918783888e-07 5.524166028233452e-07 5.224836968385216e-07 - 4.937806609639881e-07 4.662735849361845e-07 4.399289991547822e-07 4.147139110260500e-07 3.905957813609555e-07 - 3.675425084859321e-07 3.455225231396512e-07 3.245046871736890e-07 3.044582778536548e-07 2.853530928283095e-07 - 2.671593859185241e-07 2.498478511400059e-07 2.333896726605378e-07 2.177564985206194e-07 2.029204500538344e-07 - 1.888541210793108e-07 1.755305458522738e-07 1.629232393506973e-07 1.510062144201093e-07 1.397539174372155e-07 - 1.291412703741045e-07 1.191437050672961e-07 1.097370923617762e-07 1.008977778162274e-07 9.260259669902208e-08 - 8.482883141984319e-08 7.755426670738778e-08 7.075715683240311e-08 6.441620467100832e-08 5.851063608240125e-08 - 5.302013495440350e-08 4.792483459927075e-08 4.320538955913144e-08 3.884291294265582e-08 3.481898425658018e-08 - 3.111569527451850e-08 2.771559342817648e-08 2.460171067137196e-08 2.175758348333717e-08 1.916719757773861e-08 - 1.681503457183268e-08 1.468607978947252e-08 1.276576812429566e-08 1.104003874048358e-08 9.495328649625366e-09 - 8.118528715645258e-09 6.897042498203040e-09 5.818760232281117e-09 4.872032311209139e-09 4.045732447740840e-09 - 3.329210679517489e-09 2.712284881132093e-09 2.185301687016959e-09 1.739076161987666e-09 1.364901589086205e-09 - 1.054599065845252e-09 8.004535320102697e-10 5.952414597054672e-10 4.322622496028902e-10 3.052766304104823e-10 - 2.085502003918036e-10 1.368642901349301e-10 8.546164059834664e-11 5.010215808832263e-11 2.705311520847365e-11 - 1.304599438344934e-11 5.339090781311160e-12 1.692041320615927e-12 3.321208355096226e-13 6.781366937015517e-15 diff --git a/examples/SPIN/curie_temperature/compliance.py b/examples/SPIN/curie_temperature/compliance.py deleted file mode 100755 index 6ef35be553..0000000000 --- a/examples/SPIN/curie_temperature/compliance.py +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env python - -# This file reads in the file log.lammps generated by the script ELASTIC/in.elastic -# It prints out the 6x6 tensor of elastic constants Cij -# followed by the 6x6 tensor of compliance constants Sij -# It uses the same conventions as described in: -# Sprik, Impey and Klein PRB (1984). -# The units of Cij are whatever was used in log.lammps (usually GPa) -# The units of Sij are the inverse of that (usually 1/GPa) - -from numpy import zeros -from numpy.linalg import inv - -# define logfile layout - -nvals = 21 -valpos = 4 -valstr = '\nElastic Constant C' - -# define order of Cij in logfile - -cindices = [0]*nvals -cindices[0] = (0,0) -cindices[1] = (1,1) -cindices[2] = (2,2) -cindices[3] = (0,1) -cindices[4] = (0,2) -cindices[5] = (1,2) -cindices[6] = (3,3) -cindices[7] = (4,4) -cindices[8] = (5,5) -cindices[9] = (0,3) -cindices[10] = (0,4) -cindices[11] = (0,5) -cindices[12] = (1,3) -cindices[13] = (1,4) -cindices[14] = (1,5) -cindices[15] = (2,3) -cindices[16] = (2,4) -cindices[17] = (2,5) -cindices[18] = (3,4) -cindices[19] = (3,5) -cindices[20] = (4,5) - -# open logfile - -logfile = open("log.lammps",'r') - -txt = logfile.read() - -# search for 21 elastic constants - -c = zeros((6,6)) -s2 = 0 - -for ival in range(nvals): - s1 = txt.find(valstr,s2) - if (s1 == -1): - print "Failed to find elastic constants in log file" - exit(1) - s1 += 1 - s2 = txt.find("\n",s1) - line = txt[s1:s2] -# print line - words = line.split() - (i1,i2) = cindices[ival] - c[i1,i2] = float(words[valpos]) - c[i2,i1] = c[i1,i2] - -print "C tensor [GPa]" -for i in range(6): - for j in range(6): - print "%10.8g " % c[i][j], - print - -# apply factor of 2 to columns of off-diagonal elements - -for i in range(6): - for j in range(3,6): - c[i][j] *= 2.0 - -s = inv(c) - -# apply factor of 1/2 to columns of off-diagonal elements - -for i in range(6): - for j in range(3,6): - s[i][j] *= 0.5 - -print "S tensor [1/GPa]" -for i in range(6): - for j in range(6): - print "%10.8g " % s[i][j], - print - diff --git a/examples/SPIN/curie_temperature/displace.mod b/examples/SPIN/curie_temperature/displace.mod deleted file mode 100644 index 9664fa8d0d..0000000000 --- a/examples/SPIN/curie_temperature/displace.mod +++ /dev/null @@ -1,142 +0,0 @@ -# NOTE: This script should not need to be -# modified. See in.elastic for more info. -# -# Find which reference length to use - -if "${dir} == 1" then & - "variable len0 equal ${lx0}" -if "${dir} == 2" then & - "variable len0 equal ${ly0}" -if "${dir} == 3" then & - "variable len0 equal ${lz0}" -if "${dir} == 4" then & - "variable len0 equal ${lz0}" -if "${dir} == 5" then & - "variable len0 equal ${lz0}" -if "${dir} == 6" then & - "variable len0 equal ${ly0}" - -# Reset box and simulation parameters - -clear -box tilt large -read_restart restart.equil -include potential.mod - -# Negative deformation - -variable delta equal -${up}*${len0} -variable deltaxy equal -${up}*xy -variable deltaxz equal -${up}*xz -variable deltayz equal -${up}*yz -if "${dir} == 1" then & - "change_box all x delta 0 ${delta} xy delta ${deltaxy} xz delta ${deltaxz} remap units box" -if "${dir} == 2" then & - "change_box all y delta 0 ${delta} yz delta ${deltayz} remap units box" -if "${dir} == 3" then & - "change_box all z delta 0 ${delta} remap units box" -if "${dir} == 4" then & - "change_box all yz delta ${delta} remap units box" -if "${dir} == 5" then & - "change_box all xz delta ${delta} remap units box" -if "${dir} == 6" then & - "change_box all xy delta ${delta} remap units box" - -# Relax atoms positions - -minimize ${etol} ${ftol} ${maxiter} ${maxeval} - -# Obtain new stress tensor - -variable tmp equal pxx -variable pxx1 equal ${tmp} -variable tmp equal pyy -variable pyy1 equal ${tmp} -variable tmp equal pzz -variable pzz1 equal ${tmp} -variable tmp equal pxy -variable pxy1 equal ${tmp} -variable tmp equal pxz -variable pxz1 equal ${tmp} -variable tmp equal pyz -variable pyz1 equal ${tmp} - -# Compute elastic constant from pressure tensor - -variable C1neg equal ${d1} -variable C2neg equal ${d2} -variable C3neg equal ${d3} -variable C4neg equal ${d4} -variable C5neg equal ${d5} -variable C6neg equal ${d6} - -# Reset box and simulation parameters - -clear -box tilt large -read_restart restart.equil -include potential.mod - -# Positive deformation - -variable delta equal ${up}*${len0} -variable deltaxy equal ${up}*xy -variable deltaxz equal ${up}*xz -variable deltayz equal ${up}*yz -if "${dir} == 1" then & - "change_box all x delta 0 ${delta} xy delta ${deltaxy} xz delta ${deltaxz} remap units box" -if "${dir} == 2" then & - "change_box all y delta 0 ${delta} yz delta ${deltayz} remap units box" -if "${dir} == 3" then & - "change_box all z delta 0 ${delta} remap units box" -if "${dir} == 4" then & - "change_box all yz delta ${delta} remap units box" -if "${dir} == 5" then & - "change_box all xz delta ${delta} remap units box" -if "${dir} == 6" then & - "change_box all xy delta ${delta} remap units box" - -# Relax atoms positions - -minimize ${etol} ${ftol} ${maxiter} ${maxeval} - -# Obtain new stress tensor - -variable tmp equal pe -variable e1 equal ${tmp} -variable tmp equal press -variable p1 equal ${tmp} -variable tmp equal pxx -variable pxx1 equal ${tmp} -variable tmp equal pyy -variable pyy1 equal ${tmp} -variable tmp equal pzz -variable pzz1 equal ${tmp} -variable tmp equal pxy -variable pxy1 equal ${tmp} -variable tmp equal pxz -variable pxz1 equal ${tmp} -variable tmp equal pyz -variable pyz1 equal ${tmp} - -# Compute elastic constant from pressure tensor - -variable C1pos equal ${d1} -variable C2pos equal ${d2} -variable C3pos equal ${d3} -variable C4pos equal ${d4} -variable C5pos equal ${d5} -variable C6pos equal ${d6} - -# Combine positive and negative - -variable C1${dir} equal 0.5*(${C1neg}+${C1pos}) -variable C2${dir} equal 0.5*(${C2neg}+${C2pos}) -variable C3${dir} equal 0.5*(${C3neg}+${C3pos}) -variable C4${dir} equal 0.5*(${C4neg}+${C4pos}) -variable C5${dir} equal 0.5*(${C5neg}+${C5pos}) -variable C6${dir} equal 0.5*(${C6neg}+${C6pos}) - -# Delete dir to make sure it is not reused - -variable dir delete diff --git a/examples/SPIN/curie_temperature/in.spin.cobalt b/examples/SPIN/curie_temperature/in.spin.cobalt deleted file mode 100644 index 682baf9418..0000000000 --- a/examples/SPIN/curie_temperature/in.spin.cobalt +++ /dev/null @@ -1,59 +0,0 @@ -# fcc cobalt in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# check why? -atom_modify map array - -lattice fcc 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -create_atoms 1 box - -# setting mass, mag. moments, and interactions for cobalt - -mass 1 58.93 - -set group all spin/random 31 1.72 -velocity all create 100 4928459 rot yes dist gaussian - -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/cobalt/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.1 21 - -fix 3 all integration/spin lattice yes - -timestep 0.0001 - - -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] -variable mag_force equal f_1 - -thermo_style custom step time v_magnorm v_emag temp etotal -thermo 10 - -#dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz - -run 1000 - diff --git a/examples/SPIN/curie_temperature/in.spin.curie_temperature b/examples/SPIN/curie_temperature/in.spin.curie_temperature deleted file mode 100644 index 15db19913e..0000000000 --- a/examples/SPIN/curie_temperature/in.spin.curie_temperature +++ /dev/null @@ -1,204 +0,0 @@ -# Compute elastic constant tensor for a crystal -# -# Written by Aidan Thompson (Sandia, athomps@sandia.gov) -# -# This script uses the following three include files. -# -# init.mod (must be modified for different crystal structures) -# Define units, deformation parameters and initial -# configuration of the atoms and simulation cell. -# -# -# potential.mod (must be modified for different pair styles) -# Define pair style and other attributes -# not stored in restart file -# -# -# displace.mod (displace.mod should not need to be modified) -# Perform positive and negative box displacements -# in direction ${dir} and size ${up}. -# It uses the resultant changes -# in stress to compute one -# row of the elastic stiffness tensor -# -# Inputs variables: -# dir = the Voigt deformation component -# (1,2,3,4,5,6) -# Global constants: -# up = the deformation magnitude (strain units) -# cfac = conversion from LAMMPS pressure units to -# output units for elastic constants -# -# -# To run this on a different system, it should only be necessary to -# modify the files init.mod and potential.mod. In order to calculate -# the elastic constants correctly, care must be taken to specify -# the correct units in init.mod (units, cfac and cunits). It is also -# important to verify that the minimization of energy w.r.t atom -# positions in the deformed cell is fully converged. -# One indication of this is that the elastic constants are insensitive -# to the choice of the variable ${up} in init.mod. Another is to check -# the final max and two-norm forces reported in the log file. If you know -# that minimization is not required, you can set maxiter = 0.0 in -# init.mod. -# - -include init.mod -include potential.mod - -# Compute initial state -fix 3 all box/relax aniso 0.0 -minimize ${etol} ${ftol} ${maxiter} ${maxeval} - -variable tmp equal pxx -variable pxx0 equal ${tmp} -variable tmp equal pyy -variable pyy0 equal ${tmp} -variable tmp equal pzz -variable pzz0 equal ${tmp} -variable tmp equal pyz -variable pyz0 equal ${tmp} -variable tmp equal pxz -variable pxz0 equal ${tmp} -variable tmp equal pxy -variable pxy0 equal ${tmp} - -variable tmp equal lx -variable lx0 equal ${tmp} -variable tmp equal ly -variable ly0 equal ${tmp} -variable tmp equal lz -variable lz0 equal ${tmp} - -# These formulas define the derivatives w.r.t. strain components -# Constants uses $, variables use v_ -variable d1 equal -(v_pxx1-${pxx0})/(v_delta/v_len0)*${cfac} -variable d2 equal -(v_pyy1-${pyy0})/(v_delta/v_len0)*${cfac} -variable d3 equal -(v_pzz1-${pzz0})/(v_delta/v_len0)*${cfac} -variable d4 equal -(v_pyz1-${pyz0})/(v_delta/v_len0)*${cfac} -variable d5 equal -(v_pxz1-${pxz0})/(v_delta/v_len0)*${cfac} -variable d6 equal -(v_pxy1-${pxy0})/(v_delta/v_len0)*${cfac} - -displace_atoms all random ${atomjiggle} ${atomjiggle} ${atomjiggle} 87287 units box - -# Write restart -unfix 3 -write_restart restart.equil - -# uxx Perturbation - -variable dir equal 1 -include displace.mod - -# uyy Perturbation - -variable dir equal 2 -include displace.mod - -# uzz Perturbation - -variable dir equal 3 -include displace.mod - -# uyz Perturbation - -variable dir equal 4 -include displace.mod - -# uxz Perturbation - -variable dir equal 5 -include displace.mod - -# uxy Perturbation - -variable dir equal 6 -include displace.mod - -# Output final values - -variable C11all equal ${C11} -variable C22all equal ${C22} -variable C33all equal ${C33} - -variable C12all equal 0.5*(${C12}+${C21}) -variable C13all equal 0.5*(${C13}+${C31}) -variable C23all equal 0.5*(${C23}+${C32}) - -variable C44all equal ${C44} -variable C55all equal ${C55} -variable C66all equal ${C66} - -variable C14all equal 0.5*(${C14}+${C41}) -variable C15all equal 0.5*(${C15}+${C51}) -variable C16all equal 0.5*(${C16}+${C61}) - -variable C24all equal 0.5*(${C24}+${C42}) -variable C25all equal 0.5*(${C25}+${C52}) -variable C26all equal 0.5*(${C26}+${C62}) - -variable C34all equal 0.5*(${C34}+${C43}) -variable C35all equal 0.5*(${C35}+${C53}) -variable C36all equal 0.5*(${C36}+${C63}) - -variable C45all equal 0.5*(${C45}+${C54}) -variable C46all equal 0.5*(${C46}+${C64}) -variable C56all equal 0.5*(${C56}+${C65}) - -# Average moduli for cubic crystals - -variable C11cubic equal (${C11all}+${C22all}+${C33all})/3.0 -variable C12cubic equal (${C12all}+${C13all}+${C23all})/3.0 -variable C44cubic equal (${C44all}+${C55all}+${C66all})/3.0 - -variable bulkmodulus equal (${C11cubic}+2*${C12cubic})/3.0 -variable shearmodulus1 equal ${C44cubic} -variable shearmodulus2 equal (${C11cubic}-${C12cubic})/2.0 -variable poissonratio equal 1.0/(1.0+${C11cubic}/${C12cubic}) - -# For Stillinger-Weber silicon, the analytical results -# are known to be (E. R. Cowley, 1988): -# C11 = 151.4 GPa -# C12 = 76.4 GPa -# C44 = 56.4 GPa - -print "=========================================" -print "Components of the Elastic Constant Tensor" -print "=========================================" - -print "Elastic Constant C11all = ${C11all} ${cunits}" -print "Elastic Constant C22all = ${C22all} ${cunits}" -print "Elastic Constant C33all = ${C33all} ${cunits}" - -print "Elastic Constant C12all = ${C12all} ${cunits}" -print "Elastic Constant C13all = ${C13all} ${cunits}" -print "Elastic Constant C23all = ${C23all} ${cunits}" - -print "Elastic Constant C44all = ${C44all} ${cunits}" -print "Elastic Constant C55all = ${C55all} ${cunits}" -print "Elastic Constant C66all = ${C66all} ${cunits}" - -print "Elastic Constant C14all = ${C14all} ${cunits}" -print "Elastic Constant C15all = ${C15all} ${cunits}" -print "Elastic Constant C16all = ${C16all} ${cunits}" - -print "Elastic Constant C24all = ${C24all} ${cunits}" -print "Elastic Constant C25all = ${C25all} ${cunits}" -print "Elastic Constant C26all = ${C26all} ${cunits}" - -print "Elastic Constant C34all = ${C34all} ${cunits}" -print "Elastic Constant C35all = ${C35all} ${cunits}" -print "Elastic Constant C36all = ${C36all} ${cunits}" - -print "Elastic Constant C45all = ${C45all} ${cunits}" -print "Elastic Constant C46all = ${C46all} ${cunits}" -print "Elastic Constant C56all = ${C56all} ${cunits}" - -print "=========================================" -print "Average properties for a cubic crystal" -print "=========================================" - -print "Bulk Modulus = ${bulkmodulus} ${cunits}" -print "Shear Modulus 1 = ${shearmodulus1} ${cunits}" -print "Shear Modulus 2 = ${shearmodulus2} ${cunits}" -print "Poisson Ratio = ${poissonratio}" diff --git a/examples/SPIN/curie_temperature/init.mod b/examples/SPIN/curie_temperature/init.mod deleted file mode 100644 index 09ff27367d..0000000000 --- a/examples/SPIN/curie_temperature/init.mod +++ /dev/null @@ -1,55 +0,0 @@ -# NOTE: This script can be modified for different atomic structures, -# units, etc. See in.spin.curie_temperature for more info. -# - -# Define the finite deformation size. Try several values of this -# variable to verify that results do not depend on it. -variable up equal 1.0e-6 - -# Define the amount of random jiggle for atoms -# This prevents atoms from staying on saddle points -variable atomjiggle equal 1.0e-5 - -# Uncomment one of these blocks, depending on what units -# you are using in LAMMPS and for output - -# metal units, elastic constants in eV/A^3 -#units metal -#variable cfac equal 6.2414e-7 -#variable cunits string eV/A^3 - -# metal units, elastic constants in GPa -units metal -variable cfac equal 1.0e-4 -variable cunits string GPa - -# real units, elastic constants in GPa -#units real -#variable cfac equal 1.01325e-4 -#variable cunits string GPa - -# Define minimization parameters -variable etol equal 0.0 -variable ftol equal 1.0e-10 -variable maxiter equal 100 -variable maxeval equal 1000 -variable dmax equal 1.0e-2 - -# generate the box and atom positions using a diamond lattice -variable a equal 5.43 - -boundary p p p - -lattice fcc 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -create_atoms 1 box - -#lattice diamond $a -#region box prism 0 2.0 0 3.0 0 4.0 0.0 0.0 0.0 -#create_box 1 box -#create_atoms 1 box - -# Need to set mass (even for fixed lattice calculation, just to satisfy LAMMPS) -mass 1 58.93 - diff --git a/examples/SPIN/curie_temperature/potential.mod b/examples/SPIN/curie_temperature/potential.mod deleted file mode 100644 index efdf3ff643..0000000000 --- a/examples/SPIN/curie_temperature/potential.mod +++ /dev/null @@ -1,30 +0,0 @@ -# NOTE: This script can be modified for different pair styles -# See in.elastic for more info. - -# Choose potentials (spin or spin-lattice) -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/cobalt/Co_PurjaPun_2012.eam.alloy Co -air_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 - -# Setup neighbor style -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -# Setup minimization style -min_style cg -min_modify dmax ${dmax} line quadratic - -# Setup output -compute out_mag all compute/spin -compute out_temp all temp - -variable magnorm equal c_out_mag[5] -variable tmag equal c_out_mag[7] - -thermo_style custom step time v_magnorm v_tmag temp -thermo 1 - - -#thermo 1 -#thermo_style custom step temp pe press pxx pyy pzz pxy pxz pyz lx ly lz vol -#thermo_modify norm no diff --git a/examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy deleted file mode 100644 index 3af058baf7..0000000000 --- a/examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy +++ /dev/null @@ -1,6006 +0,0 @@ -Cobalt EAM potential: G. P. Purja Pun and Y. Mishin, Phys. Rev. B xx, 004100 (2012) (in press) -Data below r = 1.5 A is extrapolated. F(Rho) data not extrapolated. -Created on Wed Sep 26 17:29:54 2012 -1 Co -10000 4.788742913000000e-04 10000 6.499539000000001e-04 6.499539000000000e+00 -27 5.893320000000000e+01 2.507000000000000e+00 hcp - -1.680303080000000e-02 -1.879913964471138e-02 -2.091739081044659e-02 -2.303564197615629e-02 -2.503175082079116e-02 - -2.681996612041136e-02 -2.846010103933253e-02 -3.003179469400266e-02 -3.154842562124295e-02 -3.300931506782415e-02 - -3.442381570000001e-02 -3.580233366714632e-02 -3.714945763166951e-02 -3.846832763111274e-02 -3.976210669053554e-02 - -4.103374908125148e-02 -4.228535107207521e-02 -4.351872320172212e-02 -4.473539109100971e-02 -4.593674531110434e-02 - -4.712392115246503e-02 -4.829795108118731e-02 -4.945971154662068e-02 -5.061001094949964e-02 -5.174954151284258e-02 - -5.287894548568519e-02 -5.399878139884967e-02 -5.510957102742049e-02 -5.621177284174523e-02 -5.730581735016625e-02 - -5.839208651773948e-02 -5.947094067448531e-02 -6.054270215356945e-02 -6.160767623453070e-02 -6.266613797925552e-02 - -6.371834880435967e-02 -6.476454576302854e-02 -6.580495483863194e-02 -6.683978209870683e-02 -6.786922452279202e-02 - -6.889346265426707e-02 -6.991266949659354e-02 -7.092700432972064e-02 -7.193662011890395e-02 -7.294165829413661e-02 - -7.394225494811188e-02 -7.493853635958479e-02 -7.593062425993033e-02 -7.691863200494162e-02 -7.790266905197404e-02 - -7.888283764021425e-02 -7.985923664258643e-02 -8.083195868513401e-02 -8.180109346997461e-02 -8.276672525040257e-02 - -8.372893572415932e-02 -8.468780181559693e-02 -8.564339820511864e-02 -8.659579537072190e-02 -8.754506181558984e-02 - -8.849126234605453e-02 -8.943446001410092e-02 -9.037471455117625e-02 -9.131208412841478e-02 -9.224662399623559e-02 - -9.317838801321032e-02 -9.410742739123597e-02 -9.503379209498646e-02 -9.595752974691800e-02 -9.687868684755546e-02 - -9.779730775191570e-02 -9.871343580120046e-02 -9.962711242685958e-02 -1.005383781439554e-01 -1.014472717117523e-01 - -1.023538310651938e-01 -1.032580925977369e-01 -1.041600919387366e-01 -1.050598632026273e-01 -1.059574398208095e-01 - -1.068528540074704e-01 -1.077461373458066e-01 -1.086373201122683e-01 -1.095264320028559e-01 -1.104135016985198e-01 - -1.112985573626335e-01 -1.121816261033156e-01 -1.130627345294291e-01 -1.139419083080692e-01 -1.148191726662944e-01 - -1.156945520127823e-01 -1.165680703406650e-01 -1.174397507992727e-01 -1.183096161572101e-01 -1.191776885039839e-01 - -1.200439895800373e-01 -1.209085404086571e-01 -1.217713616730546e-01 -1.226324734132936e-01 -1.234918953788508e-01 - -1.243496468000000e-01 -1.252057466264230e-01 -1.260602132046348e-01 -1.269130646065986e-01 -1.277643184092350e-01 - -1.286139919512837e-01 -1.294621021138015e-01 -1.303086655551642e-01 -1.311536985007052e-01 -1.319972169590798e-01 - -1.328392365052704e-01 -1.336797725161469e-01 -1.345188400098036e-01 -1.353564538215464e-01 -1.361926284143060e-01 - -1.370273780803152e-01 -1.378607168013910e-01 -1.386926583917836e-01 -1.395232163058920e-01 -1.403524038515728e-01 - -1.411802341103638e-01 -1.420067200256853e-01 -1.428318742148069e-01 -1.436557091565456e-01 -1.444782371020595e-01 - -1.452994701862315e-01 -1.461194203065015e-01 -1.469380992388567e-01 -1.477555185109162e-01 -1.485716895480879e-01 - -1.493866236153044e-01 -1.502003318703277e-01 -1.510128252027127e-01 -1.518241144121522e-01 -1.526342102070998e-01 - -1.534431232126203e-01 -1.542508638114616e-01 -1.550574422930448e-01 -1.558628688157988e-01 -1.566671534698807e-01 - -1.574703062033520e-01 -1.582723368973844e-01 -1.590732553076882e-01 -1.598730711132973e-01 -1.606717938120008e-01 - -1.614694328459875e-01 -1.622659976162905e-01 -1.630614974730487e-01 -1.638559416039789e-01 -1.646493391351259e-01 - -1.654416991082678e-01 -1.662330305252601e-01 -1.670233423125346e-01 -1.678126433512354e-01 -1.686009424167802e-01 - -1.693882482431861e-01 -1.701745695045948e-01 -1.709599148401449e-01 -1.717442928088396e-01 -1.725277119385885e-01 - -1.733101807130639e-01 -1.740917075837066e-01 -1.748723009172683e-01 -1.756519690655456e-01 -1.764307204052008e-01 - -1.772085632840185e-01 -1.779855059094047e-01 -1.787615564692287e-01 -1.795367232135896e-01 -1.803110143830451e-01 - -1.810844381177561e-01 -1.818570025406103e-01 -1.826287158057983e-01 -1.833995860626770e-01 -1.841696214099643e-01 - -1.849388299454831e-01 -1.857072198141128e-01 -1.864747991526175e-01 -1.872415760182443e-01 -1.880075584641173e-01 - -1.887727546063884e-01 -1.895371725773110e-01 -1.903008205105196e-01 -1.910637065418589e-01 -1.918258388146347e-01 - -1.925872254807121e-01 -1.933478747187342e-01 -1.941077947209150e-01 -1.948669937069724e-01 -1.956254799127480e-01 - -1.963832616110719e-01 -1.971403470967068e-01 -1.978967447151567e-01 -1.986524628291068e-01 -1.994075098192274e-01 - -2.001618941005484e-01 -2.009156242075518e-01 -2.016687086990372e-01 -2.024211561116226e-01 -2.031729750127928e-01 - -2.039241741156804e-01 -2.046747621691974e-01 -2.054247479197256e-01 -2.061741401521784e-01 -2.069229478081280e-01 - -2.076711798806499e-01 -2.084188454121736e-01 -2.091659534755806e-01 -2.099125132162076e-01 -2.106585338443872e-01 - -2.114040247579823e-01 -2.121489953974893e-01 -2.128934551864067e-01 -2.136374136027109e-01 -2.143808803592873e-01 - -2.151238652468154e-01 -2.158663781322411e-01 -2.166084289346303e-01 -2.173500277052638e-01 -2.180911845646947e-01 - -2.188319097783510e-01 -2.195722136949507e-01 -2.203121068514981e-01 -2.210515998518519e-01 -2.217907033790026e-01 - -2.225294282016381e-01 -2.232677853521022e-01 -2.240057859531163e-01 -2.247434412252567e-01 -2.254807624804862e-01 - -2.262177612984613e-01 -2.269544493586047e-01 -2.276908384717110e-01 -2.284269405581227e-01 -2.291627678450005e-01 - -2.298983326532392e-01 -2.306336473718499e-01 -2.313687245044682e-01 -2.321035769451089e-01 -2.328382177230701e-01 - -2.335726600184018e-01 -2.343069171312917e-01 -2.350410026917230e-01 -2.357749304696442e-01 -2.365087144650665e-01 - -2.372423688046511e-01 -2.379759078915950e-01 -2.387093462817347e-01 -2.394426988649284e-01 -2.401759806938325e-01 - -2.409092071382775e-01 -2.416423937275558e-01 -2.423755563116356e-01 -2.431087109081851e-01 -2.438418738849959e-01 - -2.445750618045980e-01 -2.453082916583512e-01 -2.460415806101058e-01 -2.467749460848467e-01 -2.475084057095742e-01 - -2.482419776582159e-01 -2.489756803241430e-01 -2.497095324315720e-01 -2.504435529132133e-01 -2.511777612049070e-01 - -2.519121769824342e-01 -2.526468203782122e-01 -2.533817117688987e-01 -2.541168720514789e-01 -2.548523223627430e-01 - -2.555880842783758e-01 -2.563241796571988e-01 -2.570606310516858e-01 -2.577974612919421e-01 -2.585346936249472e-01 - -2.592723515924181e-01 -2.600104594981498e-01 -2.607490419576605e-01 -2.614881240712832e-01 -2.622277312727207e-01 - -2.629678898443362e-01 -2.637086264051527e-01 -2.644499680721714e-01 -2.651919423187013e-01 -2.659345775453039e-01 - -2.666779025531186e-01 -2.674219468183432e-01 -2.681667401972407e-01 -2.689123133912765e-01 -2.696586975492495e-01 - -2.704059247640904e-01 -2.711540275538941e-01 -2.719030391932789e-01 -2.726529934197978e-01 -2.734039250662187e-01 - -2.741558694758598e-01 -2.749088629390239e-01 -2.756629422674556e-01 -2.764181454116789e-01 -2.771745108563868e-01 - -2.779320780841674e-01 -2.786908871694924e-01 -2.794509795564719e-01 -2.802123972949423e-01 -2.809751834880072e-01 - -2.817393818716988e-01 -2.825050376604960e-01 -2.832721967688652e-01 -2.840409064327807e-01 -2.848112145951165e-01 - -2.855831707048412e-01 -2.863568249759762e-01 -2.871322291766564e-01 -2.879094358829076e-01 -2.886884993482028e-01 - -2.894694746623641e-01 -2.902524185831628e-01 -2.910373887617654e-01 -2.918244447549689e-01 -2.926136470970381e-01 - -2.934050583264800e-01 -2.941987419693519e-01 -2.949947634976693e-01 -2.957931894604184e-01 -2.965940887685082e-01 - -2.973975314584912e-01 -2.982035897075678e-01 -2.990123368838905e-01 -2.998238489787670e-01 -3.006382032814213e-01 - -3.014554796495834e-01 -3.022757592753754e-01 -3.030991261199829e-01 -3.039256655881672e-01 -3.047554660899296e-01 - -3.055886175640754e-01 -3.064252130593845e-01 -3.072653472379187e-01 -3.081091181048918e-01 -3.089566254021406e-01 - -3.098079724748395e-01 -3.106632645082006e-01 -3.115226104442510e-01 -3.123861211846884e-01 -3.132539117130802e-01 - -3.141260990998875e-01 -3.150028046812773e-01 -3.158841520361693e-01 -3.167702694487885e-01 -3.176612875689104e-01 - -3.185573418032087e-01 -3.194585700942650e-01 -3.203651157713922e-01 -3.212771249044592e-01 -3.221947491388281e-01 - -3.231181430183639e-01 -3.240474671054514e-01 -3.249828850672117e-01 -3.259245669711927e-01 -3.268726862299913e-01 - -3.278274232359761e-01 -3.287889619469540e-01 -3.297574936027157e-01 -3.307332132733838e-01 -3.317163240684192e-01 - -3.327070332351553e-01 -3.337055565330767e-01 -3.347121141277095e-01 -3.357269352965953e-01 -3.367502540927247e-01 - -3.377823145588749e-01 -3.388233658450175e-01 -3.398736675401181e-01 -3.409334847493447e-01 -3.420030942036733e-01 - -3.430827786115977e-01 -3.441728329658748e-01 -3.452735586625544e-01 -3.463852704265985e-01 -3.475082899277179e-01 - -3.486429532857090e-01 -3.497896041380748e-01 -3.509486017430585e-01 -3.521203134619261e-01 -3.533051234472958e-01 - -3.545034246605078e-01 -3.557156285064298e-01 -3.569421559513399e-01 -3.581834477636310e-01 -3.594399550688090e-01 - -3.607121506187135e-01 -3.620005184199024e-01 -3.633055658714727e-01 -3.646278119965309e-01 -3.659677989216845e-01 - -3.673260803339768e-01 -3.687032330586966e-01 -3.700998457090232e-01 -3.715165309114429e-01 -3.729539131544640e-01 - -3.744126403613781e-01 -3.758933720658462e-01 -3.773967908082255e-01 -3.789235902651524e-01 -3.804744856516886e-01 - -3.820502023195389e-01 -3.836514846285581e-01 -3.852790856353807e-01 -3.869337741756033e-01 -3.886163256972291e-01 - -3.903275263189269e-01 -3.920681658458204e-01 -3.938390381581898e-01 -3.956409370872805e-01 -3.974746521930466e-01 - -3.993409682701225e-01 -4.012406553231547e-01 -4.031744727439548e-01 -4.051431522629808e-01 -4.071474082130475e-01 - -4.091879129977703e-01 -4.112653138348391e-01 -4.133801991274390e-01 -4.155331235094092e-01 -4.177245653517079e-01 - -4.199549603385881e-01 -4.222246496703586e-01 -4.245339230260172e-01 -4.268829584832519e-01 -4.292718744431503e-01 - -4.317006622016948e-01 -4.341692468068394e-01 -4.366774154195978e-01 -4.392248845800756e-01 -4.418112262316757e-01 - -4.444359401252420e-01 -4.470983818380713e-01 -4.497978365893122e-01 -4.525334523390530e-01 -4.553043120100788e-01 - -4.581093756350076e-01 -4.609475466791835e-01 -4.638176252290113e-01 -4.667183660407072e-01 -4.696484459287199e-01 - -4.726065094563343e-01 -4.755911501239359e-01 -4.786009429283761e-01 -4.816344399152602e-01 -4.846901882843556e-01 - -4.877667388033212e-01 -4.908626497957108e-01 -4.939765062407663e-01 -4.971069114027755e-01 -5.002525150305011e-01 - -5.034119937007041e-01 -5.065840848176727e-01 -5.097675587133593e-01 -5.129612566028576e-01 -5.161640565945169e-01 - -5.193749134865747e-01 -5.225928209640586e-01 -5.258168515692775e-01 -5.290461169135583e-01 -5.322798060270272e-01 - -5.355171460831645e-01 -5.387574394100244e-01 -5.420000245805213e-01 -5.452443099924439e-01 -5.484897376520451e-01 - -5.517358141745681e-01 -5.549820769247875e-01 -5.582281216566209e-01 -5.614735718423751e-01 -5.647181034387753e-01 - -5.679614169890416e-01 -5.712032588979591e-01 -5.744433972991336e-01 -5.776816413798681e-01 -5.809178193507762e-01 - -5.841517944620215e-01 -5.873834463985003e-01 -5.906126855444893e-01 -5.938394364748391e-01 -5.970636498273136e-01 - -6.002852884426439e-01 -6.035043379105128e-01 -6.067207941645156e-01 -6.099346717649501e-01 -6.131459940881434e-01 - -6.163548011478311e-01 -6.195611404873568e-01 -6.227650731310865e-01 -6.259666663617727e-01 -6.291659990146931e-01 - -6.323631552654742e-01 -6.355582290986170e-01 -6.387513188871106e-01 -6.419425307490256e-01 -6.451319745539882e-01 - -6.483197674327603e-01 -6.515060293214946e-01 -6.546908841167685e-01 -6.578744572836812e-01 -6.610568766009968e-01 - -6.642382709221243e-01 -6.674187710853904e-01 -6.705985088370179e-01 -6.737776175698923e-01 -6.769562312911304e-01 - -6.801344848181089e-01 -6.833125134999645e-01 -6.864904540026142e-01 -6.896684434132225e-01 -6.928466191871651e-01 - -6.960251190039876e-01 -6.992040810717012e-01 -7.023836437724149e-01 -7.055639456561626e-01 -7.087451254024176e-01 - -7.119273220404884e-01 -7.151106745784721e-01 -7.182953215897911e-01 -7.214814016245582e-01 -7.246690535743215e-01 - -7.278584163200112e-01 -7.310496283586513e-01 -7.342428280442573e-01 -7.374381535427195e-01 -7.406357429444993e-01 - -7.438357342264661e-01 -7.470382651689156e-01 -7.502434728794412e-01 -7.534514943101106e-01 -7.566624664635970e-01 - -7.598765262236051e-01 -7.630938099473661e-01 -7.663144537782537e-01 -7.695385935306881e-01 -7.727663648349232e-01 - -7.759979029135046e-01 -7.792333428394971e-01 -7.824728194957561e-01 -7.857164675195603e-01 -7.889644207560909e-01 - -7.922168128628783e-01 -7.954737775389469e-01 -7.987354483417761e-01 -8.020019582211745e-01 -8.052734399002169e-01 - -8.085500258027153e-01 -8.118318481538471e-01 -8.151190386835121e-01 -8.184117289678831e-01 -8.217100504635063e-01 - -8.250141343769457e-01 -8.283241110344656e-01 -8.316401105683494e-01 -8.349622632152548e-01 -8.382906990624389e-01 - -8.416255474951805e-01 -8.449669376504778e-01 -8.483149983741850e-01 -8.516698583310095e-01 -8.550316457522134e-01 - -8.584004886419279e-01 -8.617765145292081e-01 -8.651598508088844e-01 -8.685506248139727e-01 -8.719489622521989e-01 - -8.753549823919468e-01 -8.787687997490927e-01 -8.821905162688262e-01 -8.856202278084699e-01 -8.890580184445617e-01 - -8.925039663319011e-01 -8.959581377191167e-01 -8.994205926453692e-01 -9.028913782181163e-01 -9.063705352609543e-01 - -9.098580923937473e-01 -9.133540718558304e-01 -9.168584825681617e-01 -9.203713268261465e-01 -9.238925937413506e-01 - -9.274222656928153e-01 -9.309603113133150e-01 -9.345066924037853e-01 -9.380613571840678e-01 -9.416242468397124e-01 - -9.451952880001965e-01 -9.487744002152808e-01 -9.523614892719469e-01 -9.559564538973973e-01 -9.595591783425093e-01 - -9.631695396882074e-01 -9.667874008119273e-01 -9.704126174878044e-01 -9.740450312802591e-01 -9.776844767743714e-01 - -9.813307748475731e-01 -9.849837394560669e-01 -9.886431705787867e-01 -9.923088615430331e-01 -9.959805930468456e-01 - -9.996581394281877e-01 -1.003341262213973e+00 -1.007029716826452e+00 -1.010723247080268e+00 -1.014421591236032e+00 - -1.018124476945841e+00 -1.021831626529500e+00 -1.025542751586175e+00 -1.029257558992056e+00 -1.032975747452084e+00 - -1.036697011770175e+00 -1.040421039317395e+00 -1.044147513860548e+00 -1.047876112182243e+00 -1.051606508161453e+00 - -1.055338371046766e+00 -1.059071368055605e+00 -1.062805162911107e+00 -1.066539417837194e+00 -1.070273792555226e+00 - -1.074007946119602e+00 -1.077741537419413e+00 -1.081474225260823e+00 -1.085205668283577e+00 -1.088935525821090e+00 - -1.092663460147868e+00 -1.096389134999202e+00 -1.100112217012435e+00 -1.103832374788097e+00 -1.107549281877421e+00 - -1.111262614364874e+00 -1.114972053517157e+00 -1.118677283811066e+00 -1.122377997381517e+00 -1.126073890115035e+00 - -1.129764665246453e+00 -1.133450029987863e+00 -1.137129700112097e+00 -1.140803395884355e+00 -1.144470846978575e+00 - -1.148131787996958e+00 -1.151785963846005e+00 -1.155433124321719e+00 -1.159073028473816e+00 -1.162705440550504e+00 - -1.166330136340245e+00 -1.169946897198408e+00 -1.173555515207745e+00 -1.177155787675114e+00 -1.180747522076412e+00 - -1.184330531453910e+00 -1.187904640946331e+00 -1.191469681045491e+00 -1.195025491559137e+00 -1.198571917630371e+00 - -1.202108816427798e+00 -1.205636050425976e+00 -1.209153491297797e+00 -1.212661015717853e+00 -1.216158511169199e+00 - -1.219645870103956e+00 -1.223122994042052e+00 -1.226589789250444e+00 -1.230046171916402e+00 -1.233492062734542e+00 - -1.236927390508550e+00 -1.240352088211073e+00 -1.243766097381527e+00 -1.247169363751694e+00 -1.250561841256042e+00 - -1.253943487695246e+00 -1.257314268132119e+00 -1.260674151007197e+00 -1.264023111009775e+00 -1.267361126327042e+00 - -1.270688182889021e+00 -1.274004269717549e+00 -1.277309380458899e+00 -1.280603511471348e+00 -1.283886665336751e+00 - -1.287158847447705e+00 -1.290420068216200e+00 -1.293670340397085e+00 -1.296909681097245e+00 -1.300138109654688e+00 - -1.303355649979877e+00 -1.306562327924205e+00 -1.309758172530325e+00 -1.312943214678930e+00 -1.316117489411603e+00 - -1.319281033477409e+00 -1.322433886294459e+00 -1.325576088655014e+00 -1.328707684178879e+00 -1.331828717822939e+00 - -1.334939237064845e+00 -1.338039290534788e+00 -1.341128928952336e+00 -1.344208204044806e+00 -1.347277169481128e+00 - -1.350335879836220e+00 -1.353384391367341e+00 -1.356422761075585e+00 -1.359451047255056e+00 -1.362469308854003e+00 - -1.365477606144248e+00 -1.368475999956682e+00 -1.371464552034891e+00 -1.374443324607048e+00 -1.377412380926959e+00 - -1.380371784452904e+00 -1.383321598435415e+00 -1.386261886043311e+00 -1.389192710326296e+00 -1.392114134331963e+00 - -1.395026221218571e+00 -1.397929034013782e+00 -1.400822635112213e+00 -1.403707086730599e+00 -1.406582451007194e+00 - -1.409448790047375e+00 -1.412306165903488e+00 -1.415154640386279e+00 -1.417994274393129e+00 -1.420825128672226e+00 - -1.423647264288326e+00 -1.426460742270041e+00 -1.429265623184807e+00 -1.432061967292326e+00 -1.434849834082543e+00 - -1.437629282863016e+00 -1.440400372981510e+00 -1.443163163644870e+00 -1.445917713456040e+00 -1.448664080745027e+00 - -1.451402323353998e+00 -1.454132498983212e+00 -1.456854665253158e+00 -1.459568879518891e+00 -1.462275198153495e+00 - -1.464973677286479e+00 -1.467664373054985e+00 -1.470347341460922e+00 -1.473022637957602e+00 -1.475690317602213e+00 - -1.478350434416031e+00 -1.481003042251009e+00 -1.483648195317718e+00 -1.486285947650543e+00 -1.488916352220507e+00 - -1.491539461636770e+00 -1.494155328124374e+00 -1.496764003712290e+00 -1.499365540029296e+00 -1.501959988475343e+00 - -1.504547399935251e+00 -1.507127824972320e+00 -1.509701313378898e+00 -1.512267914702716e+00 -1.514827678283996e+00 - -1.517380653263305e+00 -1.519926888190102e+00 -1.522466431291609e+00 -1.524999330097196e+00 -1.527525631932397e+00 - -1.530045384005255e+00 -1.532558633226744e+00 -1.535065425437065e+00 -1.537565806237489e+00 -1.540059821344337e+00 - -1.542547516227056e+00 -1.545028935252552e+00 -1.547504122520188e+00 -1.549973122161691e+00 -1.552435978060152e+00 - -1.554892733071735e+00 -1.557343429814709e+00 -1.559788110982664e+00 -1.562226819032855e+00 -1.564659595401864e+00 - -1.567086481207361e+00 -1.569507517312065e+00 -1.571922744465970e+00 -1.574332203223133e+00 -1.576735933784567e+00 - -1.579133975135047e+00 -1.581526366095511e+00 -1.583913146047792e+00 -1.586294354132112e+00 -1.588670027961349e+00 - -1.591040204840321e+00 -1.593404922368944e+00 -1.595764217997401e+00 -1.598118128281829e+00 -1.600466689560657e+00 - -1.602809938195509e+00 -1.605147910317183e+00 -1.607480641109968e+00 -1.609808165462235e+00 -1.612130518025190e+00 - -1.614447733364541e+00 -1.616759845941160e+00 -1.619066889913862e+00 -1.621368898338053e+00 -1.623665904067572e+00 - -1.625957940253400e+00 -1.628245039905108e+00 -1.630527235169479e+00 -1.632804557955816e+00 -1.635077040086276e+00 - -1.637344713164072e+00 -1.639607608003776e+00 -1.641865755216986e+00 -1.644119185392045e+00 -1.646367929030376e+00 - -1.648612016308968e+00 -1.650851477080719e+00 -1.653086340226579e+00 -1.655316634503563e+00 -1.657542389144867e+00 - -1.659763633269537e+00 -1.661980395063818e+00 -1.664192702419508e+00 -1.666400582983419e+00 -1.668604064251645e+00 - -1.670803173362428e+00 -1.672997937236383e+00 -1.675188382281491e+00 -1.677374534802169e+00 -1.679556421201192e+00 - -1.681734067628149e+00 -1.683907499121518e+00 -1.686076740528519e+00 -1.688241817042459e+00 -1.690402753749855e+00 - -1.692559574964003e+00 -1.694712304797627e+00 -1.696860967334408e+00 -1.699005586454806e+00 -1.701146185255449e+00 - -1.703282786721620e+00 -1.705415414177082e+00 -1.707544090831449e+00 -1.709668839099297e+00 -1.711789681156861e+00 - -1.713906639022084e+00 -1.716019734585396e+00 -1.718128989385494e+00 -1.720234424849230e+00 -1.722336062307809e+00 - -1.724433922917529e+00 -1.726528027230686e+00 -1.728618395721282e+00 -1.730705049154116e+00 -1.732788008101886e+00 - -1.734867292078088e+00 -1.736942920442919e+00 -1.739014913002594e+00 -1.741083289547465e+00 -1.743148069358425e+00 - -1.745209271450225e+00 -1.747266914282488e+00 -1.749321016270471e+00 -1.751371596207075e+00 -1.753418672811714e+00 - -1.755462264132180e+00 -1.757502388000569e+00 -1.759539062057792e+00 -1.761572303881055e+00 -1.763602130983907e+00 - -1.765628560778196e+00 -1.767651610332621e+00 -1.769671296580689e+00 -1.771687636258316e+00 -1.773700645994041e+00 - -1.775710342184503e+00 -1.777716741146727e+00 -1.779719859111176e+00 -1.781719712181211e+00 -1.783716316038327e+00 - -1.785709686327057e+00 -1.787699838965949e+00 -1.789686789700248e+00 -1.791670553307960e+00 -1.793651144443631e+00 - -1.795628578235185e+00 -1.797602869852874e+00 -1.799574034162875e+00 -1.801542085839167e+00 -1.803507039091021e+00 - -1.805468908052258e+00 -1.807427707019619e+00 -1.809383450209764e+00 -1.811336151356113e+00 -1.813285824110837e+00 - -1.815232482284336e+00 -1.817176139592257e+00 -1.819116809213001e+00 -1.821054504262256e+00 -1.822989238142106e+00 - -1.824921024174149e+00 -1.826849875071642e+00 -1.828775803432498e+00 -1.830698822001605e+00 -1.832618943490715e+00 - -1.834536180332052e+00 -1.836450544855570e+00 -1.838362049261658e+00 -1.840270705693083e+00 -1.842176526191684e+00 - -1.844079522732226e+00 -1.845979707122125e+00 -1.847877091069540e+00 -1.849771686052976e+00 -1.851663503515020e+00 - -1.853552554984233e+00 -1.855438851906239e+00 -1.857322405308933e+00 -1.859203226114476e+00 -1.861081325239847e+00 - -1.862956713608023e+00 -1.864829402171162e+00 -1.866699401811557e+00 -1.868566723102871e+00 -1.870431376467943e+00 - -1.872293372034969e+00 -1.874152719980291e+00 -1.876009430967454e+00 -1.877863515541558e+00 -1.879714983286677e+00 - -1.881563843740828e+00 -1.883410107218835e+00 -1.885253783963326e+00 -1.887094883151373e+00 -1.888933413891583e+00 - -1.890769386084288e+00 -1.892602809677417e+00 -1.894433694017575e+00 -1.896262048252058e+00 -1.898087881332244e+00 - -1.899911202238771e+00 -1.901732020265218e+00 -1.903550344662578e+00 -1.905366184198560e+00 -1.907179547502340e+00 - -1.908990443132265e+00 -1.910798879695625e+00 -1.912604866066330e+00 -1.914408411061036e+00 -1.916209523000752e+00 - -1.918008210058423e+00 -1.919804480310377e+00 -1.921598341888620e+00 -1.923389803244497e+00 -1.925178872754823e+00 - -1.926965558178970e+00 -1.928749867237572e+00 -1.930531808113790e+00 -1.932311388923252e+00 -1.934088617048956e+00 - -1.935863499807747e+00 -1.937636044984464e+00 -1.939406260367225e+00 -1.941174153289245e+00 -1.942939731044444e+00 - -1.944703001224463e+00 -1.946463971324967e+00 -1.948222648160018e+00 -1.949979038559213e+00 -1.951733150095908e+00 - -1.953484990331042e+00 -1.955234566032130e+00 -1.956981883796339e+00 -1.958726950332857e+00 -1.960469772453529e+00 - -1.962210357268799e+00 -1.963948711773954e+00 -1.965684842205069e+00 -1.967418754747339e+00 -1.969150456141664e+00 - -1.970879953151972e+00 -1.972607252078582e+00 -1.974332359180596e+00 -1.976055281015821e+00 -1.977776024078765e+00 - -1.979494594312026e+00 -1.981210997612849e+00 -1.982925240248993e+00 -1.984637328483028e+00 -1.986347268186276e+00 - -1.988055065135925e+00 -1.989760725123873e+00 -1.991464254028801e+00 -1.993165658061782e+00 -1.994864943305917e+00 - -1.996562115000000e+00 -1.998257178352118e+00 -1.999950139291834e+00 -2.001641003786081e+00 -2.003329777229788e+00 - -2.005016464899233e+00 -2.006701072168050e+00 -2.008383604435580e+00 -2.010064067106614e+00 -2.011742465557514e+00 - -2.013418805045480e+00 -2.015093090790721e+00 -2.016765327984645e+00 -2.018435521788566e+00 -2.020103677272243e+00 - -2.021769799450648e+00 -2.023433893211152e+00 -2.025095963440481e+00 -2.026756015150358e+00 -2.028414053372033e+00 - -2.030070083089858e+00 -2.031724109167109e+00 -2.033376136029651e+00 -2.035026168111125e+00 -2.036674210313675e+00 - -2.038320267543339e+00 -2.039964344253219e+00 -2.041606444873179e+00 -2.043246574193053e+00 -2.044884736927830e+00 - -2.046520937133174e+00 -2.048155178894251e+00 -2.049787467073582e+00 -2.051417806490505e+00 -2.053046201014273e+00 - -2.054672654449746e+00 -2.056297171294283e+00 -2.057919756136151e+00 -2.059540413234731e+00 -2.061159146675282e+00 - -2.062775960175462e+00 -2.064390857518372e+00 -2.066003843116474e+00 -2.067614921377108e+00 -2.069224096057763e+00 - -2.070831370870978e+00 -2.072436749999330e+00 -2.074040237602111e+00 -2.075641837275425e+00 -2.077241552544816e+00 - -2.078839387216755e+00 -2.080435345153352e+00 -2.082029430158359e+00 -2.083621645967183e+00 -2.085211996100236e+00 - -2.086800484128769e+00 -2.088387114042385e+00 -2.089971889736969e+00 -2.091554814315162e+00 -2.093135890870968e+00 - -2.094715123257078e+00 -2.096292515329556e+00 -2.097868070199266e+00 -2.099441790929908e+00 -2.101013681141721e+00 - -2.102583744473837e+00 -2.104151984084442e+00 -2.105718403103298e+00 -2.107283005027429e+00 -2.108845793364375e+00 - -2.110406771296459e+00 -2.111965941910842e+00 -2.113523308239219e+00 -2.115078873308544e+00 -2.116632640182243e+00 - -2.118184611994434e+00 -2.119734792125529e+00 -2.121283183887100e+00 -2.122829790069075e+00 -2.124374613416041e+00 - -2.125917657012881e+00 -2.127458923984833e+00 -2.128998417278243e+00 -2.130536139767974e+00 -2.132072094221826e+00 - -2.133606283403289e+00 -2.135138710165668e+00 -2.136669377406417e+00 -2.138198288109766e+00 -2.139725445172409e+00 - -2.141250851054121e+00 -2.142774508270670e+00 -2.144296419998729e+00 -2.145816589318136e+00 -2.147335018260493e+00 - -2.148851708859426e+00 -2.150366664204882e+00 -2.151879887475646e+00 -2.153391381149525e+00 -2.154901147551277e+00 - -2.156409189094421e+00 -2.157915508301146e+00 -2.159420108039566e+00 -2.160922991060322e+00 -2.162424159298261e+00 - -2.163923614721020e+00 -2.165421360243191e+00 -2.166917398765767e+00 -2.168411732188371e+00 -2.169904362385663e+00 - -2.171395292133801e+00 -2.172884524283159e+00 -2.174372061079477e+00 -2.175857904621596e+00 -2.177342057025400e+00 - -2.178824520458782e+00 -2.180305297280612e+00 -2.181784389836284e+00 -2.183261800226323e+00 -2.184737530553230e+00 - -2.186211583172279e+00 -2.187683960396664e+00 -2.189154664118480e+00 -2.190623696232450e+00 -2.192091059064924e+00 - -2.193556754973807e+00 -2.195020786011611e+00 -2.196483154140098e+00 -2.197943861263397e+00 -2.199402909290797e+00 - -2.200860300209873e+00 -2.202316036078389e+00 -2.203770119156592e+00 -2.205222551620105e+00 -2.206673335103553e+00 - -2.208122471221687e+00 -2.209569962050753e+00 -2.211015809743800e+00 -2.212460016299604e+00 -2.213902583604158e+00 - -2.215343513246597e+00 -2.216782806815468e+00 -2.218220466193829e+00 -2.219656493330310e+00 -2.221090890141300e+00 - -2.222523658493742e+00 -2.223954800089009e+00 -2.225384316635711e+00 -2.226812210036953e+00 -2.228238482128524e+00 - -2.229663134282465e+00 -2.231086167933421e+00 -2.232507585230206e+00 -2.233927388263609e+00 -2.235345578178182e+00 - -2.236762156112363e+00 -2.238177124126393e+00 -2.239590484325721e+00 -2.241002238074839e+00 -2.242412386688506e+00 - -2.243820932023517e+00 -2.245227875877045e+00 -2.246633219265731e+00 -2.248036963296034e+00 -2.249439110214208e+00 - -2.250839662216949e+00 -2.252238620162919e+00 -2.253635984842608e+00 -2.255031758111861e+00 -2.256425941987018e+00 - -2.257818538061035e+00 -2.259209547728066e+00 -2.260598972010440e+00 -2.261986811976363e+00 -2.263373069249392e+00 - -2.264757745520950e+00 -2.266140842198597e+00 -2.267522360622610e+00 -2.268902302148032e+00 -2.270280668153553e+00 - -2.271657460097697e+00 -2.273032679375423e+00 -2.274406327047590e+00 -2.275778404191426e+00 -2.277148912283742e+00 - -2.278517852852843e+00 -2.279885227233438e+00 -2.281251036662961e+00 -2.282615282183361e+00 -2.283977964870765e+00 - -2.285339086133513e+00 -2.286698647429660e+00 -2.288056650083893e+00 -2.289413095312870e+00 -2.290767984034498e+00 - -2.292121317209354e+00 -2.293473096267451e+00 -2.294823322630535e+00 -2.296171997217860e+00 -2.297519120939147e+00 - -2.298864695168495e+00 -2.300208721271999e+00 -2.301551200119357e+00 -2.302892132586471e+00 -2.304231520070443e+00 - -2.305569363951571e+00 -2.306905665021753e+00 -2.308240424043668e+00 -2.309573642251534e+00 -2.310905320943594e+00 - -2.312235461202651e+00 -2.313564064009707e+00 -2.314891130153991e+00 -2.316216660462560e+00 -2.317540656105554e+00 - -2.318863118293744e+00 -2.320184048057342e+00 -2.321503446385586e+00 -2.322821314284393e+00 -2.324137652689092e+00 - -2.325452462235987e+00 -2.326765743634779e+00 -2.328077498187803e+00 -2.329387727168217e+00 -2.330696431139842e+00 - -2.332003610675342e+00 -2.333309267092103e+00 -2.334613401701304e+00 -2.335916015044585e+00 -2.337217107588464e+00 - -2.338516680268511e+00 -2.339814734134101e+00 -2.341111270220800e+00 -2.342406289434137e+00 -2.343699792173311e+00 - -2.344991778936741e+00 -2.346282251126043e+00 -2.347571210092017e+00 -2.348858656078995e+00 -2.350144589310363e+00 - -2.351429011032167e+00 -2.352711922533504e+00 -2.353993324252988e+00 -2.355273216536063e+00 -2.356551600205969e+00 - -2.357828476165661e+00 -2.359103845159169e+00 -2.360377707896761e+00 -2.361650065112589e+00 -2.362920917562625e+00 - -2.364190266066228e+00 -2.365458111389245e+00 -2.366724454020086e+00 -2.367989294422349e+00 -2.369252633237819e+00 - -2.370514471195048e+00 -2.371774809191487e+00 -2.373033648052395e+00 -2.374290988145372e+00 -2.375546829856004e+00 - -2.376801174099476e+00 -2.378054021758188e+00 -2.379305373053798e+00 -2.380555228228685e+00 -2.381803588268867e+00 - -2.383050454170042e+00 -2.384295826222999e+00 -2.385539704659158e+00 -2.386782090177350e+00 -2.388022983519428e+00 - -2.389262385131917e+00 -2.390500295440986e+00 -2.391736715086700e+00 -2.392971644747536e+00 -2.394205085041701e+00 - -2.395437036486230e+00 -2.396667499253712e+00 -2.397896473568759e+00 -2.399123960208524e+00 -2.400349959968320e+00 - -2.401574473163553e+00 -2.402797500049246e+00 -2.404019041118798e+00 -2.405239096931802e+00 -2.406457668074259e+00 - -2.407674755052769e+00 -2.408890358029935e+00 -2.410104477201394e+00 -2.411317113238899e+00 -2.412528266823138e+00 - -2.413737938194389e+00 -2.414946127524263e+00 -2.416152835150093e+00 -2.417358061488310e+00 -2.418561807106014e+00 - -2.419764072540869e+00 -2.420964858062149e+00 -2.422164163883997e+00 -2.423361990268478e+00 -2.424558337539998e+00 - -2.425753206224426e+00 -2.426946596778449e+00 -2.428138509180588e+00 -2.429328943436301e+00 -2.430517900136966e+00 - -2.431705379929064e+00 -2.432891383093559e+00 -2.434075909789072e+00 -2.435258960050367e+00 -2.436440534002261e+00 - -2.437620632253666e+00 -2.438799255363957e+00 -2.439976403210287e+00 -2.441152075652963e+00 -2.442326273167121e+00 - -2.443498996281469e+00 -2.444670245124171e+00 -2.445840019720089e+00 -2.447008320081434e+00 -2.448175146330043e+00 - -2.449340499038912e+00 -2.450504378726154e+00 -2.451666785239187e+00 -2.452827718349615e+00 -2.453987178196479e+00 - -2.455145165027037e+00 -2.456301679153984e+00 -2.457456720843679e+00 -2.458610290111703e+00 -2.459762386895362e+00 - -2.460913011069636e+00 -2.462062162618941e+00 -2.463209842027783e+00 -2.464356049701044e+00 -2.465500785225038e+00 - -2.466644048210323e+00 -2.467785839182998e+00 -2.468926158651886e+00 -2.470065006141172e+00 -2.471202381154697e+00 - -2.472338284099561e+00 -2.473472715451581e+00 -2.474605675058163e+00 -2.475737162666682e+00 -2.476867178252799e+00 - -2.477995721814551e+00 -2.479122793211214e+00 -2.480248392312651e+00 -2.481372519169843e+00 -2.482495173828069e+00 - -2.483616356128687e+00 -2.484736065895716e+00 -2.485854303087743e+00 -2.486971067738408e+00 -2.488086360047014e+00 - -2.489200180083995e+00 -2.490312527238630e+00 -2.491423400907520e+00 -2.492532801197714e+00 -2.493640728315912e+00 - -2.494747182157012e+00 -2.495852162518061e+00 -2.496955669116524e+00 -2.498057701682506e+00 -2.499158260076250e+00 - -2.500257344205291e+00 -2.501354954036191e+00 -2.502451089487258e+00 -2.503545750224782e+00 -2.504638935878569e+00 - -2.505730646184535e+00 -2.506820880947837e+00 -2.507909640144502e+00 -2.508996923692245e+00 -2.510082731104683e+00 - -2.511167061905791e+00 -2.512249916065080e+00 -2.513331293568936e+00 -2.514411194025691e+00 -2.515489616993924e+00 - -2.516566562211253e+00 -2.517642029416175e+00 -2.518716018171676e+00 -2.519788528087044e+00 -2.520859559132313e+00 - -2.521929111272669e+00 -2.522997184093166e+00 -2.524063777123772e+00 -2.525128890054233e+00 -2.526192522577199e+00 - -2.527254674237163e+00 -2.528315344566595e+00 -2.529374533198041e+00 -2.530432239809303e+00 -2.531488464159136e+00 - -2.532543206017777e+00 -2.533596465120445e+00 -2.534648241083385e+00 -2.535698533081969e+00 -2.536747340380982e+00 - -2.537794663043710e+00 -2.538840501172024e+00 -2.539884854223596e+00 -2.540927721482817e+00 -2.541969102185147e+00 - -2.543008995720672e+00 -2.544047402146914e+00 -2.545084321505733e+00 -2.546119753108897e+00 -2.547153696148885e+00 - -2.548186150071097e+00 -2.549217114438763e+00 -2.550246589033513e+00 -2.551274573561718e+00 -2.552301067210345e+00 - -2.553326069170913e+00 -2.554349579172571e+00 -2.555371597001575e+00 -2.556392122135012e+00 -2.557411153995589e+00 - -2.558428692097672e+00 -2.559444735964176e+00 -2.560459285060548e+00 -2.561472338773803e+00 -2.562483896234721e+00 - -2.563493956701396e+00 -2.564502520197407e+00 -2.565509586690590e+00 -2.566515155160310e+00 -2.567519224484451e+00 - -2.568521794123430e+00 -2.569522863722881e+00 -2.570522433086768e+00 -2.571520501879673e+00 -2.572517069050324e+00 - -2.573512133570669e+00 -2.574505695221420e+00 -2.575497753777856e+00 -2.576488308184784e+00 -2.577477357385580e+00 - -2.578464901148367e+00 -2.579450939304331e+00 -2.580435471112168e+00 -2.581418495678755e+00 -2.582400012076188e+00 - -2.583380019545771e+00 -2.584358518040427e+00 -2.585335507388502e+00 -2.586310986208430e+00 -2.587284953146766e+00 - -2.588257408172476e+00 -2.589228351266687e+00 -2.590197781136742e+00 -2.591165696464199e+00 -2.592132097101227e+00 - -2.593096982965479e+00 -2.594060353065933e+00 -2.595022206300420e+00 -2.595982542030859e+00 -2.596941359648237e+00 - -2.597898658195753e+00 -2.598854436786441e+00 -2.599808695160485e+00 -2.600761432999720e+00 -2.601712649125437e+00 - -2.602662342322502e+00 -2.603610512090611e+00 -2.604557157983472e+00 -2.605502279056006e+00 -2.606445874333086e+00 - -2.607387943218189e+00 -2.608328485131743e+00 -2.609267499183389e+00 -2.610204984445080e+00 -2.611140940148811e+00 - -2.612075365584592e+00 -2.613008260114454e+00 -2.613939623006402e+00 -2.614869453080320e+00 -2.615797749224179e+00 - -2.616724511046408e+00 -2.617649738126216e+00 -2.618573429205448e+00 -2.619495583026503e+00 -2.620416199171340e+00 - -2.621335277249019e+00 -2.622252816137456e+00 -2.623168814653865e+00 -2.624083272103795e+00 -2.624996187859330e+00 - -2.625907561070358e+00 -2.626817390806325e+00 -2.627725676037143e+00 -2.628632415761536e+00 -2.629537609193020e+00 - -2.630441255587996e+00 -2.631343354159609e+00 -2.632243904045731e+00 -2.633142904126422e+00 -2.634040353337229e+00 - -2.634936251093461e+00 -2.635830596765059e+00 -2.636723389060725e+00 -2.637614626713354e+00 -2.638504309213838e+00 - -2.639392436080191e+00 -2.640279006180904e+00 -2.641164018251881e+00 -2.642047471148195e+00 -2.642929363899640e+00 - -2.643809696115713e+00 -2.644688467316341e+00 -2.645565676083456e+00 -2.646441320932559e+00 -2.647315401051427e+00 - -2.648187915755844e+00 -2.649058864201336e+00 -2.649928245427330e+00 -2.650796058169106e+00 -2.651662301248424e+00 - -2.652526974137104e+00 -2.653390076247662e+00 -2.654251606105329e+00 -2.655111562238285e+00 -2.655969944073783e+00 - -2.656826751086593e+00 -2.657681982042466e+00 -2.658535635661370e+00 -2.659387711189145e+00 -2.660238207837736e+00 - -2.661087124157626e+00 -2.661934458755756e+00 -2.662780211126336e+00 -2.663624380741185e+00 -2.664466966095276e+00 - -2.665307965694397e+00 -2.666147379064445e+00 -2.666985205710447e+00 -2.667821444033845e+00 -2.668656092405469e+00 - -2.669489150177272e+00 -2.670320616801000e+00 -2.671150491146469e+00 -2.671978771965001e+00 -2.672805458115896e+00 - -2.673630548501148e+00 -2.674454042085555e+00 -2.675275937884819e+00 -2.676096235055446e+00 -2.676914932653945e+00 - -2.677732029196031e+00 -2.678547523253807e+00 -2.679361414165717e+00 -2.680173701269736e+00 -2.680984383135636e+00 - -2.681793458321363e+00 -2.682600926105787e+00 -2.683406785794135e+00 -2.684211036076172e+00 -2.685013675548027e+00 - -2.685814703046789e+00 -2.686614117528503e+00 -2.687411918184072e+00 -2.688208104155523e+00 -2.689002674154484e+00 - -2.689795626844247e+00 -2.690586961125131e+00 -2.691376675931391e+00 -2.692164770096012e+00 -2.692951242468673e+00 - -2.693736092067127e+00 -2.694519317933390e+00 -2.695300919038479e+00 -2.696080894259941e+00 -2.696859242172434e+00 - -2.697635961409562e+00 -2.698411051143577e+00 -2.699184510529523e+00 -2.699956338114957e+00 -2.700726532498006e+00 - -2.701495093086574e+00 -2.702262019208106e+00 -2.703027309058428e+00 -2.703790960874505e+00 -2.704552974189474e+00 - -2.705313348537555e+00 -2.706072082161119e+00 -2.706829173257158e+00 -2.707584621133000e+00 -2.708338425191227e+00 - -2.709090584105120e+00 -2.709841096442358e+00 -2.710589961077480e+00 -2.711337176962203e+00 -2.712082743050078e+00 - -2.712826658235913e+00 -2.713568921177743e+00 -2.714309530527581e+00 -2.715048485150131e+00 -2.715785783993005e+00 - -2.716521426122757e+00 -2.717255410569124e+00 -2.717987736095623e+00 -2.718718401385704e+00 -2.719447405068731e+00 - -2.720174745881186e+00 -2.720900423042079e+00 -2.721624435690877e+00 -2.722346782166338e+00 -2.723067460855530e+00 - -2.723786471139474e+00 -2.724503812410580e+00 -2.725219483112852e+00 -2.725933481634188e+00 -2.726645807086471e+00 - -2.727356458650697e+00 -2.728065435060333e+00 -2.728772734953498e+00 -2.729478357034439e+00 -2.730182300087997e+00 - -2.730884563155262e+00 -2.731585145263588e+00 -2.732284045129153e+00 -2.732981261442558e+00 -2.733676793103288e+00 - -2.734370639038562e+00 -2.735062798077667e+00 -2.735753269071118e+00 -2.736442051052291e+00 -2.737129142959769e+00 - -2.737814543170111e+00 -2.738498250131983e+00 -2.739180263144520e+00 -2.739860581563291e+00 -2.740539204119172e+00 - -2.741216129405992e+00 -2.741891356094071e+00 -2.742564882952538e+00 -2.743236709069217e+00 -2.743906833523784e+00 - -2.744575255044610e+00 -2.745241972311204e+00 -2.745906984158941e+00 -2.746570289467025e+00 -2.747231887134115e+00 - -2.747891776057501e+00 -2.748549955109537e+00 -2.749206423158993e+00 -2.749861179085207e+00 -2.750514221765824e+00 - -2.751165550061125e+00 -2.751815162841771e+00 -2.752463059037292e+00 -2.753109237554207e+00 -2.753753697148108e+00 - -2.754396436622574e+00 -2.755037455124055e+00 -2.755676751755156e+00 -2.756314325100252e+00 -2.756950173779785e+00 - -2.757584297076699e+00 -2.758216694281619e+00 -2.758847364053396e+00 -2.759476305000437e+00 -2.760103516161140e+00 - -2.760728996610216e+00 -2.761352745137616e+00 -2.761974760563591e+00 -2.762595042114344e+00 -2.763213589016364e+00 - -2.763830400091322e+00 -2.764445474113015e+00 -2.765058810068553e+00 -2.765670407011266e+00 -2.766280264046035e+00 - -2.766888380201558e+00 -2.767494754150214e+00 -2.768099384646222e+00 -2.768702271127474e+00 -2.769303413030783e+00 - -2.769902809104988e+00 -2.770500458053093e+00 -2.771096359082754e+00 -2.771690511445131e+00 -2.772282914060774e+00 - -2.772873565847032e+00 -2.773462466039048e+00 -2.774049613856528e+00 -2.774635008139637e+00 -2.775218647762881e+00 - -2.775800532117688e+00 -2.776380660598635e+00 -2.776959032095993e+00 -2.777535645483684e+00 -2.778110500074552e+00 - -2.778683595228330e+00 -2.779254930053368e+00 -2.779824503611819e+00 -2.780392315032438e+00 -2.780958363471580e+00 - -2.781522648129417e+00 -2.782085168237396e+00 -2.782645923108263e+00 -2.783204912027138e+00 -2.783762134087364e+00 - -2.784317588365996e+00 -2.784871274066723e+00 -2.785423190471204e+00 -2.785973337046338e+00 -2.786521713227682e+00 - -2.787068318140169e+00 -2.787613150927563e+00 -2.788156211119559e+00 -2.788697498201977e+00 -2.789237011099205e+00 - -2.789774748795882e+00 -2.790310711079109e+00 -2.790844897774500e+00 -2.791377308059270e+00 -2.791907941021321e+00 - -2.792436796039691e+00 -2.792963872575855e+00 -2.793489170129877e+00 -2.794012688183935e+00 -2.794534426110070e+00 - -2.795054383269529e+00 -2.795572559090522e+00 -2.796088953089790e+00 -2.796603565071232e+00 -2.797116394731634e+00 - -2.797627441052200e+00 -2.798136703104035e+00 -2.798644181033428e+00 -2.799149874997305e+00 -2.799653784119957e+00 - -2.800155907491874e+00 -2.800656245100958e+00 -2.801154796934787e+00 -2.801651562082218e+00 -2.802146539693571e+00 - -2.802639730063738e+00 -2.803131133478864e+00 -2.803620749045517e+00 -2.804108575856467e+00 -2.804594614128865e+00 - -2.805078864118387e+00 -2.805561325110418e+00 -2.806041996375143e+00 -2.806520878092229e+00 -2.806997970489045e+00 - -2.807473273074300e+00 -2.807946785293329e+00 -2.808418507056632e+00 -2.808888438355500e+00 -2.809356579039224e+00 - -2.809822928959404e+00 -2.810287488118900e+00 -2.810750256531227e+00 -2.811211234101264e+00 -2.811670420689050e+00 - -2.812127816083888e+00 -2.812583420143096e+00 -2.813037233066774e+00 -2.813489255065615e+00 -2.813939486049919e+00 - -2.814387925944586e+00 -2.814834575033324e+00 -2.815279433542374e+00 -2.815722501109326e+00 -2.816163777438837e+00 - -2.816603263092504e+00 -2.817040958671196e+00 -2.817476864075942e+00 -2.817910979131784e+00 -2.818343304059641e+00 - -2.818773839208482e+00 -2.819202585043600e+00 -2.819629541969078e+00 -2.820054710027820e+00 -2.820478089265513e+00 - -2.820899680100151e+00 -2.821319482977751e+00 -2.821737498084143e+00 -2.822153725615352e+00 -2.822568166068396e+00 - -2.822980820018520e+00 -2.823391688052908e+00 -2.823800770674544e+00 -2.824208068037681e+00 -2.824613580315654e+00 - -2.825017308106835e+00 -2.825419252121360e+00 -2.825819413091381e+00 -2.826217791658008e+00 -2.826614388076187e+00 - -2.827009202624378e+00 -2.827402236061253e+00 -2.827793489256864e+00 -2.828182963046578e+00 -2.828570658171722e+00 - -2.828956575032161e+00 -2.829340714052488e+00 -2.829723076097664e+00 -2.830103662132774e+00 -2.830482473083023e+00 - -2.830859509823491e+00 -2.831234773068641e+00 -2.831608263528317e+00 -2.831979982054516e+00 -2.832349929557777e+00 - -2.832718107040651e+00 -2.833084515526141e+00 -2.833449156027042e+00 -2.833812029550204e+00 -2.834173137088914e+00 - -2.834532479620883e+00 -2.834890058075082e+00 -2.835245873448821e+00 -2.835599927061508e+00 -2.835952220243667e+00 - -2.836302754048190e+00 -2.836651529530672e+00 -2.836998548035129e+00 -2.837343810883671e+00 -2.837687319022324e+00 - -2.838029073490917e+00 -2.838369076080591e+00 -2.838707328586376e+00 -2.839043832067564e+00 -2.839378587474163e+00 - -2.839711596054793e+00 -2.840042859259108e+00 -2.840372379042276e+00 -2.840700157280677e+00 -2.841026195030013e+00 - -2.841350493343512e+00 -2.841673054085180e+00 -2.841993879190829e+00 -2.842312970072699e+00 -2.842630328108386e+00 - -2.842945955060471e+00 -2.843259852775203e+00 -2.843572023048496e+00 -2.843882467617769e+00 -2.844191188036773e+00 - -2.844498185884593e+00 -2.844803463025301e+00 -2.845107021413000e+00 -2.845408863076932e+00 -2.845708990020076e+00 - -2.846007404065244e+00 -2.846304107050338e+00 -2.846599101053807e+00 -2.846892388135785e+00 -2.847183970042619e+00 - -2.847473848570861e+00 -2.847762026031680e+00 -2.848048504803730e+00 -2.848333287020989e+00 -2.848616374754612e+00 - -2.848897770069131e+00 -2.849177475073159e+00 -2.849455492058227e+00 -2.849731823327478e+00 -2.850006471047571e+00 - -2.850279437434387e+00 -2.850550725037162e+00 -2.850820336439234e+00 -2.851088274026996e+00 -2.851354540133094e+00 - -2.851619137072155e+00 -2.851882067200814e+00 -2.852143333061782e+00 -2.852402937208544e+00 -2.852660882051651e+00 - -2.852917170055367e+00 -2.853171804041764e+00 -2.853424786850297e+00 -2.853676121032120e+00 -2.853925809140160e+00 - -2.854173854022716e+00 -2.854420258509995e+00 -2.854665025064492e+00 -2.854908156206457e+00 -2.855149655054884e+00 - -2.855389524765914e+00 -2.855627768045515e+00 -2.855864387531145e+00 -2.856099386036384e+00 -2.856332766480263e+00 - -2.856564532027491e+00 -2.856794685864488e+00 -2.857023231018833e+00 -2.857250170456676e+00 -2.857475507057297e+00 - -2.857699243787178e+00 -2.857921384048440e+00 -2.858141931205942e+00 -2.858360888039817e+00 -2.858578257403886e+00 - -2.858794043031427e+00 -2.859008248642304e+00 -2.859220877023269e+00 -2.859431930941042e+00 -2.859641414015340e+00 - -2.859849329964776e+00 -2.860055682050569e+00 -2.860260473522559e+00 -2.860463708042447e+00 -2.860665389218646e+00 - -2.860865520034553e+00 -2.861064103583913e+00 -2.861261144026887e+00 -2.861456645505078e+00 -2.861650611019446e+00 - -2.861843043539793e+00 -2.862033947051935e+00 -2.862223325674870e+00 -2.862411183044306e+00 -2.862597522669464e+00 - -2.862782348036900e+00 -2.862965662765951e+00 -2.863147471029718e+00 -2.863327776966641e+00 -2.863506584022756e+00 - -2.863683895649960e+00 -2.863859716016013e+00 -2.864034049304372e+00 -2.864206899045429e+00 -2.864378268816853e+00 - -2.864548163038503e+00 -2.864716586175495e+00 -2.864883542031795e+00 -2.865049034317118e+00 -2.865213067025303e+00 - -2.865375644227383e+00 -2.865536770019026e+00 -2.865696448531390e+00 -2.865854684012960e+00 -2.866011480747103e+00 - -2.866166843039399e+00 -2.866320775137251e+00 -2.866473281033156e+00 -2.866624364792500e+00 -2.866774031027124e+00 - -2.866922284373643e+00 -2.867069129021301e+00 -2.867214569108258e+00 -2.867358609015685e+00 -2.867501253183005e+00 - -2.867642506039625e+00 -2.867782372075631e+00 -2.867920856033839e+00 -2.868057962606175e+00 -2.868193696028257e+00 - -2.868328060561013e+00 -2.868461061022879e+00 -2.868592702303233e+00 -2.868722989017701e+00 -2.868851925722842e+00 - -2.868979517012722e+00 -2.869105767524959e+00 -2.869230682033886e+00 -2.869354265317122e+00 -2.869476522028743e+00 - -2.869597456891174e+00 -2.869717075023798e+00 -2.869835381525858e+00 -2.869952381019048e+00 -2.870068078133983e+00 - -2.870182478014490e+00 -2.870295585788873e+00 -2.870407406010122e+00 -2.870517943287246e+00 -2.870627203028626e+00 - -2.870735190678368e+00 -2.870841911024103e+00 -2.870947368779615e+00 -2.871051569019769e+00 -2.871154516959833e+00 - -2.871256218015620e+00 -2.871356677487263e+00 -2.871455900011655e+00 -2.871553890297982e+00 -2.871650654007871e+00 - -2.871746196881877e+00 -2.871840524023838e+00 -2.871933640394619e+00 -2.872025551019907e+00 -2.872116261043417e+00 - -2.872205776016155e+00 -2.872294101539941e+00 -2.872381243012580e+00 -2.872467205758066e+00 -2.872551995009178e+00 - -2.872635615995248e+00 -2.872718074023048e+00 -2.872799374482606e+00 -2.872879523019508e+00 -2.872958525324841e+00 - -2.873036387016140e+00 -2.873113113575017e+00 -2.873188710012942e+00 -2.873263181462381e+00 -2.873336534009911e+00 - -2.873408773769060e+00 -2.873479906007045e+00 -2.873549935889074e+00 -2.873618869018622e+00 -2.873686711126628e+00 - -2.873753468015626e+00 -2.873819145455355e+00 -2.873883749012791e+00 -2.873947284262238e+00 -2.874009757010115e+00 - -2.874071173064448e+00 -2.874131538007598e+00 -2.874190857408149e+00 -2.874249137005235e+00 -2.874306382592947e+00 - -2.874362600014657e+00 -2.874417795154723e+00 -2.874471974012172e+00 -2.874525142492177e+00 -2.874577306009839e+00 - -2.874628470067637e+00 -2.874678641007656e+00 -2.874727825164796e+00 -2.874776028005620e+00 -2.874823254939239e+00 - -2.874869512013286e+00 -2.874914805384953e+00 -2.874959141011137e+00 -2.875002524843012e+00 -2.875044963009132e+00 - -2.875086461553842e+00 -2.875127026007268e+00 -2.875166661990855e+00 -2.875205376005544e+00 -2.875243174521211e+00 - -2.875280063003956e+00 -2.875316046953741e+00 -2.875351133009737e+00 -2.875385327829893e+00 -2.875418637008044e+00 - -2.875451066029114e+00 -2.875482621006486e+00 -2.875513308222273e+00 -2.875543134005058e+00 -2.875572104616458e+00 - -2.875600226003760e+00 -2.875627504088381e+00 -2.875653945002586e+00 -2.875679554924722e+00 -2.875704340006628e+00 - -2.875728306365356e+00 -2.875751460005359e+00 -2.875773807024162e+00 -2.875795354004213e+00 -2.875816107441742e+00 - -2.875836073003188e+00 -2.875855256356105e+00 -2.875873664002281e+00 -2.875891302525273e+00 -2.875908178001488e+00 - -2.875924296429527e+00 -2.875939664003940e+00 -2.875954287022889e+00 -2.875968172003060e+00 -2.875981325374513e+00 - -2.875993753002293e+00 -2.876005460745149e+00 -2.876016455001635e+00 -2.876026742281703e+00 -2.876036329001085e+00 - -2.876045221511428e+00 -2.876053426002279e+00 -2.876060948682664e+00 -2.876067796001651e+00 -2.876073974394489e+00 - -2.876079490001126e+00 -2.876084348997735e+00 -2.876088558000703e+00 -2.876092123620084e+00 -2.876095052000378e+00 - -2.876097349275196e+00 -2.876099022000147e+00 -2.876100076780735e+00 -2.876100520000039e+00 -2.876100357977497e+00 - -2.876099597000405e+00 -2.876098243435337e+00 -2.876096303998139e+00 -2.876093785401991e+00 -2.876090694000126e+00 - -2.876087036076098e+00 -2.876082817994697e+00 -2.876078046153286e+00 -2.876072726998279e+00 -2.876066867041051e+00 - -2.876060473003754e+00 -2.876053551562065e+00 -2.876046108994973e+00 -2.876038151582050e+00 -2.876029686001908e+00 - -2.876020718975022e+00 -2.876011256990315e+00 -2.876001306494705e+00 -2.875990873998654e+00 -2.875979966015766e+00 - -2.875968589008655e+00 -2.875956749461299e+00 -2.875944453994101e+00 -2.875931709272467e+00 -2.875918522005370e+00 - -2.875904898821941e+00 -2.875890845988358e+00 -2.875876369796106e+00 -2.875861477000839e+00 -2.875846174460938e+00 - -2.875830468981534e+00 -2.875814367182402e+00 -2.875797874995170e+00 -2.875780998493851e+00 -2.875763745010153e+00 - -2.875746121853747e+00 -2.875728134988475e+00 -2.875709790337169e+00 -2.875691095004476e+00 -2.875672056151185e+00 - -2.875652679980860e+00 -2.875632972639220e+00 -2.875612940997824e+00 -2.875592591983200e+00 -2.875571932015899e+00 - -2.875550967463832e+00 -2.875529704990307e+00 -2.875508151305197e+00 -2.875486313009207e+00 -2.875464196688727e+00 - -2.875441808982035e+00 -2.875419156538716e+00 -2.875396246001703e+00 -2.875373083982446e+00 -2.875349676973115e+00 - -2.875326031456047e+00 -2.875302153993497e+00 -2.875278051224424e+00 -2.875253730014671e+00 -2.875229197164465e+00 - -2.875204458984698e+00 -2.875179521740897e+00 -2.875154392006447e+00 -2.875129076470253e+00 -2.875103581975416e+00 - -2.875077915323747e+00 -2.875052082997684e+00 -2.875026091410789e+00 -2.874999947020509e+00 -2.874973656330889e+00 - -2.874947225988491e+00 -2.874920662667701e+00 -2.874893973011697e+00 -2.874867163623783e+00 -2.874840240978976e+00 - -2.874813211559227e+00 -2.874786082002508e+00 -2.874758858958694e+00 -2.874731548969249e+00 -2.874704158521300e+00 - -2.874676693993052e+00 -2.874649161850167e+00 -2.874621569017096e+00 -2.874593922351292e+00 -2.874566227983435e+00 - -2.874538491996276e+00 -2.874510721007613e+00 -2.874482921761722e+00 -2.874455100973768e+00 -2.874427265275985e+00 - -2.874399420998023e+00 -2.874371574431975e+00 -2.874343732022288e+00 -2.874315900299783e+00 -2.874288085988434e+00 - -2.874260295776052e+00 -2.874232536012641e+00 -2.874204812974258e+00 -2.874177132978955e+00 -2.874149502426689e+00 - -2.874121928003048e+00 -2.874094416390038e+00 -2.874066973969692e+00 -2.874039607056358e+00 -2.874012321993617e+00 - -2.873985125156578e+00 -2.873958023017241e+00 -2.873931022092817e+00 -2.873904128984454e+00 -2.873877350227203e+00 - -2.873850692007775e+00 -2.873824160475146e+00 -2.873797761975665e+00 -2.873771502947487e+00 -2.873745389998629e+00 - -2.873719429664607e+00 -2.873693628021065e+00 -2.873667991196405e+00 -2.873642525989910e+00 -2.873617239207638e+00 - -2.873592137011854e+00 -2.873567225478465e+00 -2.873542510981722e+00 -2.873517999984164e+00 -2.873493699003122e+00 - -2.873469614539558e+00 -2.873445752974173e+00 -2.873422120664412e+00 -2.873398723994974e+00 -2.873375569341346e+00 - -2.873352663014937e+00 -2.873330011368907e+00 -2.873307620987516e+00 -2.873285498440290e+00 -2.873263650006746e+00 - -2.873242081977908e+00 -2.873220800980854e+00 -2.873199813610778e+00 -2.873179125999297e+00 -2.873158744269642e+00 - -2.873138674975094e+00 -2.873118924733721e+00 -2.873099499992696e+00 -2.873080407078925e+00 -2.873061652009151e+00 - -2.873043240951156e+00 -2.873025180987050e+00 -2.873007479104932e+00 -2.872990141002529e+00 -2.872973172348110e+00 - -2.872956579982463e+00 -2.872940370832477e+00 -2.872924550996914e+00 -2.872909126514257e+00 -2.872894104009989e+00 - -2.872879490127201e+00 -2.872865290992410e+00 -2.872851512733995e+00 -2.872838162004323e+00 -2.872825245427317e+00 - -2.872812768989124e+00 -2.872800738661925e+00 -2.872789160999820e+00 -2.872778042642130e+00 -2.872767389987160e+00 - -2.872757209355336e+00 -2.872747506996586e+00 -2.872738289140315e+00 -2.872729562004331e+00 -2.872721331833777e+00 - -2.872713604994726e+00 -2.872706387896571e+00 -2.872699687001068e+00 -2.872693508692679e+00 -2.872687858994343e+00 - -2.872682743943764e+00 -2.872678169999229e+00 -2.872674143639194e+00 -2.872670671002211e+00 -2.872667758252759e+00 - -2.872665411998920e+00 -2.872663638727966e+00 -2.872662444000314e+00 -2.872661833458480e+00 -2.872661814000242e+00 - -2.872662392564575e+00 -2.872663574999996e+00 -2.872665367034357e+00 -2.872667775003300e+00 -2.872670805307676e+00 - -2.872674464001362e+00 -2.872678757122995e+00 -2.872683690997219e+00 -2.872689271947241e+00 -2.872695506004511e+00 - -2.872702399218003e+00 -2.872709957998547e+00 -2.872718188690384e+00 -2.872727097009549e+00 -2.872736688669513e+00 - -2.872746970001709e+00 -2.872757947412680e+00 -2.872769626991446e+00 -2.872782014787135e+00 -2.872795117006809e+00 - -2.872808939808297e+00 -2.872823488994544e+00 -2.872838770359238e+00 -2.872854790013944e+00 -2.872871554154958e+00 - -2.872889068999627e+00 -2.872907340687168e+00 -2.872926375023218e+00 -2.872946177789640e+00 -2.872966755006795e+00 - -2.872988112738970e+00 -2.873010256987659e+00 -2.873033193743455e+00 -2.873056929016149e+00 -2.873081468798353e+00 - -2.873106818994782e+00 -2.873132985471494e+00 -2.873159974027786e+00 -2.873187790508094e+00 -2.873216441004140e+00 - -2.873245931584463e+00 -2.873276267977569e+00 -2.873307455856915e+00 -2.873339501015828e+00 -2.873372409342765e+00 - -2.873406186986854e+00 -2.873440840030674e+00 -2.873476374029945e+00 -2.873512794459630e+00 -2.873550106998518e+00 - -2.873588317466817e+00 -2.873627432046586e+00 -2.873667456808100e+00 -2.873708397012657e+00 -2.873750257967860e+00 - -2.873793045975522e+00 -2.873836767295967e+00 -2.873881427029366e+00 -2.873927030237608e+00 -2.873973582989610e+00 - -2.874021091436191e+00 -2.874069561048740e+00 -2.874118997257345e+00 -2.874169406006314e+00 -2.874220793186470e+00 - -2.874273163960479e+00 -2.874326523535612e+00 -2.874380878025728e+00 -2.874436233504353e+00 -2.874492594977105e+00 - -2.874549967456173e+00 -2.874608357047944e+00 -2.874667769870749e+00 -2.874728210996486e+00 -2.874789685444839e+00 - -2.874852199073056e+00 -2.874915757808161e+00 -2.874980367018717e+00 -2.875046031956011e+00 -2.875112757960702e+00 - -2.875180550448241e+00 -2.875249415043884e+00 -2.875319357389408e+00 -2.875390382982873e+00 -2.875462497200150e+00 - -2.875535705072081e+00 -2.875610011724477e+00 -2.875685423008027e+00 -2.875761944747628e+00 -2.875839581940104e+00 - -2.875918339524430e+00 -2.875998223036253e+00 -2.876079238083328e+00 -2.876161389965175e+00 -2.876244683897332e+00 - -2.876329125067640e+00 -2.876414718675390e+00 -2.876501469993362e+00 -2.876589384334920e+00 -2.876678467102276e+00 - -2.876768723646439e+00 -2.876860159024752e+00 -2.876952778311590e+00 -2.877046586943105e+00 -2.877141590285005e+00 - -2.877237793059432e+00 -2.877335200055582e+00 -2.877433816974432e+00 -2.877533649470098e+00 -2.877634702097487e+00 - -2.877736979404358e+00 -2.877840487009089e+00 -2.877945230580227e+00 -2.878051214916385e+00 -2.878158444703550e+00 - -2.878266925047163e+00 -2.878376661120778e+00 -2.878487657950954e+00 -2.878599920558564e+00 -2.878713454088738e+00 - -2.878828263638601e+00 -2.878944353988982e+00 -2.879061729871082e+00 -2.879180396133895e+00 -2.879300357745253e+00 - -2.879421620030550e+00 -2.879544188234639e+00 -2.879668066922659e+00 -2.879793260582870e+00 -2.879919774075741e+00 - -2.880047612428619e+00 -2.880176780964157e+00 -2.880307284823274e+00 -2.880439128124635e+00 -2.880572315044195e+00 - -2.880706851009318e+00 -2.880842741491739e+00 -2.880979990889281e+00 -2.881118603470176e+00 -2.881258584058220e+00 - -2.881399937594580e+00 -2.881542668934350e+00 -2.881686782880171e+00 -2.881832284110943e+00 -2.881979177270132e+00 - -2.882127466983199e+00 -2.882277157822698e+00 -2.882428254167564e+00 -2.882580760515876e+00 -2.882734682035907e+00 - -2.882890023809088e+00 -2.883046789899305e+00 -2.883204984344022e+00 -2.883364612092550e+00 -2.883525678164890e+00 - -2.883688186951939e+00 -2.883852142755886e+00 -2.884017550153203e+00 -2.884184413751485e+00 -2.884352738008543e+00 - -2.884522527349429e+00 -2.884693786217942e+00 -2.884866519029743e+00 -2.885040730069195e+00 -2.885216423722596e+00 - -2.885393604915286e+00 -2.885572278454246e+00 -2.885752448133968e+00 -2.885934117732660e+00 -2.886117291975880e+00 - -2.886301975695701e+00 -2.886488173202934e+00 -2.886675888645447e+00 -2.886865126040629e+00 -2.887055889528861e+00 - -2.887248183873006e+00 -2.887442013779875e+00 -2.887637383109605e+00 -2.887834295673936e+00 -2.888032755937675e+00 - -2.888232768417303e+00 -2.888434337182880e+00 -2.888637466267979e+00 -2.888842160006608e+00 -2.889048422705334e+00 - -2.889256258260521e+00 -2.889465670586525e+00 -2.889676664079871e+00 -2.889889243164732e+00 -2.890103411893701e+00 - -2.890319174230825e+00 -2.890536534157536e+00 -2.890755495690120e+00 -2.890976062966901e+00 -2.891198240133124e+00 - -2.891422031239666e+00 -2.891647440271526e+00 -2.891874471044534e+00 -2.892103127449178e+00 -2.892333413843735e+00 - -2.892565334531329e+00 -2.892798893126666e+00 -2.893034093211137e+00 -2.893270938921286e+00 -2.893509434394119e+00 - -2.893749583213363e+00 -2.893991388990754e+00 -2.894234856003367e+00 -2.894479988544211e+00 -2.894726790304690e+00 - -2.894975264880993e+00 -2.895225416090045e+00 -2.895477247800793e+00 -2.895730763869547e+00 -2.895985968110420e+00 - -2.896242864181383e+00 -2.896501455784724e+00 -2.896761746956156e+00 -2.897023741664482e+00 -2.897287443277443e+00 - -2.897552855132549e+00 -2.897819981047455e+00 -2.898088824960355e+00 -2.898359390811481e+00 -2.898631682423090e+00 - -2.898905703143506e+00 -2.899181456336644e+00 -2.899458945902694e+00 -2.899738175745144e+00 -2.900019149244370e+00 - -2.900301869748365e+00 -2.900586340998689e+00 -2.900872566741790e+00 -2.901160550350105e+00 -2.901450295205248e+00 - -2.901741805099525e+00 -2.902035083835090e+00 -2.902330134842785e+00 -2.902626961482952e+00 -2.902925567205262e+00 - -2.903225955501619e+00 -2.903528129943548e+00 -2.903832094083243e+00 -2.904137851315957e+00 -2.904445404943298e+00 - -2.904754758049239e+00 -2.905065913908475e+00 -2.905378876776237e+00 -2.905693650730528e+00 -2.906010238159916e+00 - -2.906328641477237e+00 -2.906648864881840e+00 -2.906970912612057e+00 -2.907294787275635e+00 -2.907620491421319e+00 - -2.907948028992455e+00 -2.908277404008211e+00 -2.908608619396449e+00 -2.908941677961907e+00 -2.909276583108139e+00 - -2.909613338320582e+00 -2.909951946813384e+00 -2.910292411733319e+00 -2.910634736228945e+00 -2.910978923497479e+00 - -2.911324976928991e+00 -2.911672899876866e+00 -2.912022695354926e+00 -2.912374366346152e+00 -2.912727916049746e+00 - -2.913083347735332e+00 -2.913440664738005e+00 -2.913799870293631e+00 -2.914160967175702e+00 -2.914523958205600e+00 - -2.914888846858668e+00 -2.915255636613397e+00 -2.915624330306910e+00 -2.915994930711883e+00 -2.916367440984558e+00 - -2.916741864289805e+00 -2.917118203443422e+00 -2.917496461287171e+00 -2.917876641115726e+00 -2.918258746264796e+00 - -2.918642779781321e+00 -2.919028744569610e+00 -2.919416643252220e+00 -2.919806478556714e+00 -2.920198253912409e+00 - -2.920591972698769e+00 -2.920987637394092e+00 -2.921385250442034e+00 -2.921784815048848e+00 -2.922186334507697e+00 - -2.922589811696789e+00 -2.922995249368979e+00 -2.923402650190686e+00 -2.923812016928122e+00 -2.924223352833133e+00 - -2.924636661116357e+00 -2.925051944337972e+00 -2.925469204994078e+00 -2.925888445974902e+00 -2.926309670222330e+00 - -2.926732880490753e+00 -2.927158079512877e+00 -2.927585270122142e+00 -2.928014455203420e+00 -2.928445637746579e+00 - -2.928878820641719e+00 -2.929314006274898e+00 -2.929751197043434e+00 -2.930190395893735e+00 -2.930631605816839e+00 - -2.931074829433217e+00 -2.931520069294359e+00 -2.931967328046430e+00 -2.932416608452995e+00 -2.932867913652596e+00 - -2.933321246608101e+00 -2.933776609204709e+00 -2.934234003435805e+00 -2.934693432805196e+00 -2.935154900804807e+00 - -2.935618409368617e+00 -2.936083960365691e+00 -2.936551556963400e+00 -2.937021202354904e+00 -2.937492898538196e+00 - -2.937966647468766e+00 -2.938442452127255e+00 -2.938920315642269e+00 -2.939400240709141e+00 -2.939882229846171e+00 - -2.940366285296803e+00 -2.940852409365155e+00 -2.941340604872910e+00 -2.941830874578781e+00 -2.942323220472084e+00 - -2.942817644603974e+00 -2.943314150042391e+00 -2.943812739919231e+00 -2.944313416605433e+00 -2.944816182292809e+00 - -2.945321039217627e+00 -2.945827989752984e+00 -2.946337036774817e+00 -2.946848183049044e+00 -2.947361430398659e+00 - -2.947876780695535e+00 -2.948394236949976e+00 -2.948913802216184e+00 -2.949435478585527e+00 -2.949959268045502e+00 - -2.950485173130951e+00 -2.951013196489051e+00 -2.951543340668991e+00 -2.952075608036040e+00 -2.952610000317780e+00 - -2.953146519451356e+00 -2.953685168849877e+00 -2.954225951787981e+00 -2.954768869510503e+00 -2.955313923227115e+00 - -2.955861116036636e+00 -2.956410451196468e+00 -2.956961930709160e+00 -2.957515556348660e+00 -2.958071330229310e+00 - -2.958629254704319e+00 -2.959189332741965e+00 -2.959751567143614e+00 -2.960315959427935e+00 -2.960882511105170e+00 - -2.961451224934558e+00 -2.962022103774683e+00 -2.962595149632548e+00 -2.963170364371659e+00 -2.963747750133120e+00 - -2.964327309260061e+00 -2.964909044626116e+00 -2.965492958892178e+00 -2.966079053337689e+00 -2.966667329311879e+00 - -2.967257789824588e+00 -2.967850437973655e+00 -2.968445275548303e+00 -2.969042304161408e+00 -2.969641526029084e+00 - -2.970242943489398e+00 -2.970846558764995e+00 -2.971452374012471e+00 -2.972060391239641e+00 -2.972670612566008e+00 - -2.973283040706606e+00 -2.973897678221620e+00 -2.974514526456296e+00 -2.975133586785449e+00 -2.975754861917081e+00 - -2.976378354633252e+00 -2.977004066679083e+00 -2.977631999719257e+00 -2.978262156133669e+00 -2.978894538388579e+00 - -2.979529148580497e+00 -2.980165988659094e+00 -2.980805060356407e+00 -2.981446365534977e+00 -2.982089906796993e+00 - -2.982735686662750e+00 -2.983383706585328e+00 -2.984033968085205e+00 -2.984686474019655e+00 -2.985341227187940e+00 - -2.985998228820469e+00 -2.986657480057624e+00 -2.987318983248517e+00 -2.987982740990944e+00 -2.988648755668708e+00 - -2.989317029403636e+00 -2.989987563483614e+00 -2.990660359350691e+00 -2.991335419897486e+00 -2.992012747963469e+00 - -2.992692344724977e+00 -2.993374211287029e+00 -2.994058350132512e+00 -2.994744763907397e+00 -2.995433454532118e+00 - -2.996124423756546e+00 -2.996817673373822e+00 -2.997513205283444e+00 -2.998211021767050e+00 -2.998911125033880e+00 - -2.999613516621449e+00 -3.000318198120732e+00 -3.001025172008281e+00 -3.001734440748973e+00 -3.002446005875424e+00 - -3.003159868783688e+00 -3.003876031255844e+00 -3.004594495323234e+00 -3.005315263628241e+00 -3.006038338638268e+00 - -3.006763721509772e+00 -3.007491413411925e+00 -3.008221416875716e+00 -3.008953734497098e+00 -3.009688367770095e+00 - -3.010425318036306e+00 -3.011164587129571e+00 -3.011906177113799e+00 -3.012650090480955e+00 -3.013396329533748e+00 - -3.014144895389836e+00 -3.014895789237767e+00 -3.015649013734712e+00 -3.016404571515447e+00 -3.017162463656545e+00 - -3.017922691248400e+00 -3.018685256994897e+00 -3.019450163571901e+00 -3.020217411929727e+00 -3.020987002987051e+00 - -3.021758939261538e+00 -3.022533223477289e+00 -3.023309857585168e+00 -3.024088843221124e+00 -3.024870181534668e+00 - -3.025653873871900e+00 -3.026439922851719e+00 -3.027228331077071e+00 -3.028019099814318e+00 -3.028812230192102e+00 - -3.029607724124773e+00 -3.030405583764245e+00 -3.031205811426982e+00 -3.032008409239547e+00 -3.032813378404362e+00 - -3.033620720145768e+00 -3.034430436699938e+00 -3.035242530366928e+00 -3.036057002690514e+00 -3.036873855182042e+00 - -3.037693089979441e+00 -3.038514709166424e+00 -3.039338713983260e+00 -3.040165105664532e+00 -3.040993886265523e+00 - -3.041825058080565e+00 -3.042658623539453e+00 -3.043494584770202e+00 -3.044332942558215e+00 -3.045173697755793e+00 - -3.046016852825442e+00 -3.046862410359265e+00 -3.047710371857544e+00 -3.048560738605269e+00 -3.049413512118055e+00 - -3.050268694173960e+00 -3.051126287370169e+00 -3.051986294136892e+00 -3.052848715417321e+00 -3.053713552140092e+00 - -3.054580806662679e+00 -3.055450481419417e+00 -3.056322577723267e+00 -3.057197096839233e+00 -3.058074040961857e+00 - -3.058953412280709e+00 -3.059835212035924e+00 -3.060719441405425e+00 -3.061606102267731e+00 -3.062495196777212e+00 - -3.063386727491054e+00 -3.064280696619269e+00 -3.065177104580330e+00 -3.066075951959016e+00 -3.066977241796834e+00 - -3.067880977177860e+00 -3.068787158899685e+00 -3.069695787543252e+00 -3.070606865109353e+00 -3.071520393938529e+00 - -3.072436376310475e+00 -3.073354814200677e+00 -3.074275708428639e+00 -3.075199059975246e+00 -3.076124871622891e+00 - -3.077053146054635e+00 -3.077983883754724e+00 -3.078917085313194e+00 -3.079852753942089e+00 -3.080790892784741e+00 - -3.081731502087634e+00 -3.082674582011150e+00 -3.083620135268097e+00 -3.084568164866139e+00 -3.085518672439932e+00 - -3.086471659270948e+00 -3.087427126600947e+00 -3.088385075921834e+00 -3.089345509765843e+00 -3.090308430518810e+00 - -3.091273838940665e+00 -3.092241735746584e+00 -3.093212123098609e+00 -3.094185003484481e+00 -3.095160379247863e+00 - -3.096138252358965e+00 -3.097118623438258e+00 -3.098101493262150e+00 -3.099086864580523e+00 -3.100074740150514e+00 - -3.101065120784818e+00 -3.102058007230942e+00 -3.103053401920080e+00 -3.104051307417155e+00 -3.105051725138318e+00 - -3.106054656274756e+00 -3.107060102266563e+00 -3.108068064811119e+00 -3.109078546386035e+00 -3.110091549326776e+00 - -3.111107074619999e+00 -3.112125123273996e+00 -3.113145697732417e+00 -3.114168800386244e+00 -3.115194431980418e+00 - -3.116222593318652e+00 -3.117253287085768e+00 -3.118286516039464e+00 -3.119322281347848e+00 -3.120360583948459e+00 - -3.121401425446115e+00 -3.122444807777008e+00 -3.123490733535526e+00 -3.124539205035892e+00 -3.125590222813487e+00 - -3.126643787500575e+00 -3.127699901895779e+00 -3.128758568841378e+00 -3.129819789187914e+00 -3.130883563634097e+00 - -3.131949894263071e+00 -3.133018783446947e+00 -3.134090233329311e+00 -3.135164245759380e+00 -3.136240821637432e+00 - -3.137319962039862e+00 -3.138401669696502e+00 -3.139485947209752e+00 -3.140572795018887e+00 -3.141662213641400e+00 - -3.142754206070774e+00 -3.143848775370422e+00 -3.144945922407469e+00 -3.146045647810740e+00 -3.147147953452156e+00 - -3.148252841552866e+00 -3.149360314487843e+00 -3.150470374336312e+00 -3.151583021840677e+00 -3.152698257836541e+00 - -3.153816084869129e+00 -3.154936505573740e+00 -3.156059521236365e+00 -3.157185132934072e+00 -3.158313342257567e+00 - -3.159444151127381e+00 -3.160577562269707e+00 -3.161713578058511e+00 -3.162852198653188e+00 -3.163993424406347e+00 - -3.165137258658042e+00 -3.166283704751602e+00 -3.167432763056018e+00 -3.168584433853514e+00 -3.169738720053572e+00 - -3.170895624664928e+00 -3.172055148466089e+00 -3.173217292044841e+00 -3.174382057456326e+00 -3.175549447119023e+00 - -3.176719463437418e+00 -3.177892108465135e+00 -3.179067382866334e+00 -3.180245287430775e+00 -3.181425824840074e+00 - -3.182608997807819e+00 -3.183794807283624e+00 -3.184983254083125e+00 -3.186174340249998e+00 -3.187368068149750e+00 - -3.188564440207163e+00 -3.189763458501066e+00 -3.190965123667219e+00 -3.192169436468204e+00 -3.193376399616980e+00 - -3.194586015855556e+00 -3.195798286091764e+00 -3.197013211234878e+00 -3.198230794034108e+00 -3.199451037209393e+00 - -3.200673941523666e+00 -3.201899507599942e+00 -3.203127737458575e+00 -3.204358633517069e+00 -3.205592198384193e+00 - -3.206828434306502e+00 -3.208067341890413e+00 -3.209308921829809e+00 -3.210553176808560e+00 -3.211800109598040e+00 - -3.213049721329648e+00 -3.214302012941719e+00 -3.215556986240311e+00 -3.216814643392485e+00 -3.218074987141617e+00 - -3.219338019837523e+00 -3.220603741679474e+00 -3.221872153094758e+00 -3.223143257573258e+00 -3.224417058543514e+00 - -3.225693556126080e+00 -3.226972750453261e+00 -3.228254645012327e+00 -3.229539243310538e+00 -3.230826545580160e+00 - -3.232116551831102e+00 -3.233409264458852e+00 -3.234704686394765e+00 -3.236002820328103e+00 -3.237303668413965e+00 - -3.238607230912866e+00 -3.239913508296335e+00 -3.241222503774527e+00 -3.242534220589764e+00 -3.243848659374397e+00 - -3.245165820540432e+00 -3.246485706228452e+00 -3.247808319087641e+00 -3.249133662073000e+00 -3.250461737608715e+00 - -3.251792545689908e+00 -3.253126086515263e+00 -3.254462363526813e+00 -3.255801380232294e+00 -3.257143137158927e+00 - -3.258487634736825e+00 -3.259834875988172e+00 -3.261184864013611e+00 -3.262537599635538e+00 -3.263893083453904e+00 - -3.265251317457108e+00 -3.266612304094287e+00 -3.267976046269084e+00 -3.269342546452898e+00 -3.270711804933652e+00 - -3.272083822201368e+00 -3.273458601737915e+00 -3.274836147008249e+00 -3.276216458417835e+00 -3.277599536106921e+00 - -3.278985382214368e+00 -3.280373999474050e+00 -3.281765391001240e+00 -3.283159559381294e+00 -3.284556504698475e+00 - -3.285956227223949e+00 -3.287358730477579e+00 -3.288764018003004e+00 -3.290172090190266e+00 -3.291582947391597e+00 - -3.292996592961586e+00 -3.294413030263101e+00 -3.295832259689772e+00 -3.297254281509102e+00 -3.298679098453292e+00 - -3.300106713632883e+00 -3.301537129207062e+00 -3.302970346938195e+00 -3.304406367952729e+00 -3.305845193592728e+00 - -3.307286826698660e+00 -3.308731270022015e+00 -3.310178524459931e+00 -3.311628590794006e+00 -3.313081471198005e+00 - -3.314537168271639e+00 -3.315995684926260e+00 -3.317457023622331e+00 -3.318921184705128e+00 -3.320388168757214e+00 - -3.321857979425488e+00 -3.323330620242623e+00 -3.324806091220061e+00 -3.326284392457951e+00 -3.327765527932510e+00 - -3.329249501635255e+00 -3.330736313742837e+00 -3.332225964151081e+00 -3.333718455447356e+00 -3.335213790816533e+00 - -3.336711973141963e+00 -3.338213004741188e+00 -3.339716885970061e+00 -3.341223617428788e+00 -3.342733202656698e+00 - -3.344245645175923e+00 -3.345760945500658e+00 -3.347279103963591e+00 -3.348800123179309e+00 -3.350324006237700e+00 - -3.351850755847976e+00 -3.353380374190363e+00 -3.354912861709826e+00 -3.356448219173252e+00 -3.357986450370467e+00 - -3.359527558984502e+00 -3.361071545248283e+00 -3.362618409368982e+00 -3.364168154900880e+00 -3.365720785489059e+00 - -3.367276301794712e+00 -3.368834704260551e+00 -3.370395995439248e+00 -3.371960178388195e+00 -3.373527256073704e+00 - -3.375097230883950e+00 -3.376670102985606e+00 -3.378245872877927e+00 -3.379824544611959e+00 -3.381406122149057e+00 - -3.382990605539988e+00 -3.384577994855671e+00 -3.386168294158221e+00 -3.387761507524905e+00 -3.389357635102426e+00 - -3.390956676825633e+00 -3.392558635712520e+00 -3.394163515324364e+00 -3.395771318312439e+00 -3.397382046745834e+00 - -3.398995701274896e+00 -3.400612282828281e+00 -3.402231794866633e+00 -3.403854240867662e+00 -3.405479621845378e+00 - -3.407107938586081e+00 -3.408739193428916e+00 -3.410373389185216e+00 -3.412010529002203e+00 -3.413650615518111e+00 - -3.415293648999326e+00 -3.416939629995896e+00 -3.418588562564371e+00 -3.420240450691449e+00 -3.421895294577897e+00 - -3.423553094414080e+00 -3.425213854134680e+00 -3.426877577792018e+00 -3.428544266164663e+00 -3.430213919689846e+00 - -3.431886540713168e+00 -3.433562132145608e+00 -3.435240697251321e+00 -3.436922238808692e+00 -3.438606757299870e+00 - -3.440294253397158e+00 -3.441984730829699e+00 -3.443678193368453e+00 -3.445374641894819e+00 -3.447074077051543e+00 - -3.448776501416308e+00 -3.450481918039497e+00 -3.452190329927366e+00 -3.453901739641781e+00 -3.455616148011183e+00 - -3.457333556082980e+00 -3.459053967513855e+00 -3.460777385853499e+00 -3.462503811614361e+00 -3.464233245386620e+00 - -3.465965691108627e+00 -3.467701152771073e+00 -3.469439631225878e+00 -3.471181127031554e+00 -3.472925642711720e+00 - -3.474673181335264e+00 -3.476423746187027e+00 -3.478177340029919e+00 -3.479933963323171e+00 -3.481693616824597e+00 - -3.483456304790008e+00 -3.485222031388338e+00 -3.486990796943019e+00 -3.488762601570069e+00 -3.490537448401365e+00 - -3.492315341151373e+00 -3.494096282849095e+00 -3.495880275915030e+00 -3.497667321021135e+00 -3.499457419173128e+00 - -3.501250574460328e+00 -3.503046790838973e+00 -3.504846068649357e+00 -3.506648408298966e+00 -3.508453814079994e+00 - -3.510262290280344e+00 -3.512073837286068e+00 -3.513888455301771e+00 -3.515706147708129e+00 -3.517526918395819e+00 - -3.519350770119465e+00 -3.521177705073145e+00 -3.523007724344773e+00 -3.524840829328240e+00 -3.526677023747485e+00 - -3.528516311267811e+00 -3.530358692989965e+00 -3.532204169811781e+00 -3.534052744384031e+00 -3.535904419874647e+00 - -3.537759199767289e+00 -3.539617087002065e+00 -3.541478082029144e+00 -3.543342185630307e+00 -3.545209402403708e+00 - -3.547079736777425e+00 -3.548953188682862e+00 -3.550829758143615e+00 -3.552709450048714e+00 -3.554592269345012e+00 - -3.556478216345227e+00 -3.558367291032073e+00 -3.560259496702344e+00 -3.562154837300620e+00 -3.564053316048536e+00 - -3.565954935512961e+00 -3.567859696364639e+00 -3.569767599635964e+00 -3.571678649702049e+00 -3.573592850895430e+00 - -3.575510204035641e+00 -3.577430709619281e+00 -3.579354370364244e+00 -3.581281189700099e+00 -3.583211171681835e+00 - -3.585144319721653e+00 -3.587080634035166e+00 -3.589020115063184e+00 -3.590962767343901e+00 -3.592908595415016e+00 - -3.594857599714854e+00 -3.596809780701911e+00 -3.598765143014713e+00 -3.600723691343250e+00 -3.602685426403352e+00 - -3.604650348553174e+00 -3.606618460694309e+00 -3.608589766473437e+00 -3.610564269974137e+00 -3.612541974573128e+00 - -3.614522880382737e+00 -3.616506987803558e+00 -3.618494301653613e+00 -3.620484826823921e+00 -3.622478564080036e+00 - -3.624475513850586e+00 -3.626475679341938e+00 -3.628479064392689e+00 -3.630485672592619e+00 -3.632495506905407e+00 - -3.634508568039156e+00 -3.636524857004877e+00 -3.638544378280809e+00 -3.640567136287224e+00 -3.642593131745308e+00 - -3.644622365423449e+00 -3.646654841977913e+00 -3.648690566065893e+00 -3.650729538460438e+00 -3.652771759626902e+00 - -3.654817232683972e+00 -3.656865961450936e+00 -3.658917949896158e+00 -3.660973201344661e+00 -3.663031716399031e+00 - -3.665093495929850e+00 -3.667158544602091e+00 -3.669226867066577e+00 -3.671298464123134e+00 -3.673373336353373e+00 - -3.675451487317045e+00 -3.677532921173144e+00 -3.679617641499514e+00 -3.681705651197185e+00 -3.683796951041065e+00 - -3.685891542158701e+00 -3.687989429214330e+00 -3.690090616811484e+00 -3.692195105774196e+00 -3.694302896934788e+00 - -3.696413994938233e+00 -3.698528404463948e+00 -3.700646126516483e+00 -3.702767161822413e+00 -3.704891513671268e+00 - -3.707019186005269e+00 -3.709150182814482e+00 -3.711284507419287e+00 -3.713422160413482e+00 -3.715563142750310e+00 - -3.717707459547388e+00 -3.719855115839397e+00 -3.722006112164920e+00 -3.724160448777861e+00 -3.726318129289493e+00 - -3.728479158099316e+00 -3.730643539402395e+00 -3.732811276589775e+00 -3.734982370040845e+00 -3.737156820495128e+00 - -3.739334633144358e+00 -3.741515813112657e+00 -3.743700360801490e+00 -3.745888276640612e+00 -3.748079565895588e+00 - -3.750274233918474e+00 -3.752472281571475e+00 -3.754673709335501e+00 -3.756878520656135e+00 -3.759086719721971e+00 - -3.761298310728990e+00 -3.763513297133539e+00 -3.765731679426046e+00 -3.767953458457793e+00 -3.770178639489403e+00 - -3.772407227784000e+00 -3.774639224205367e+00 -3.776874629489326e+00 -3.779113448259203e+00 -3.781355685279774e+00 - -3.783601341994148e+00 -3.785850419525435e+00 -3.788102921038436e+00 -3.790358850378410e+00 -3.792618212070778e+00 - -3.794881010002580e+00 -3.797147244827153e+00 -3.799416917428862e+00 -3.801690032849888e+00 -3.803966596190487e+00 - -3.806246608625402e+00 -3.808530070983860e+00 -3.810816986638503e+00 -3.813107359693981e+00 -3.815401194639556e+00 - -3.817698495297397e+00 -3.819999262436677e+00 -3.822303497093916e+00 -3.824611204428034e+00 -3.826922389548483e+00 - -3.829237053244454e+00 -3.831555196353405e+00 -3.833876824226091e+00 -3.836201942201953e+00 -3.838530551061888e+00 - -3.840862651326505e+00 -3.843198247033778e+00 -3.845537342919513e+00 -3.847879942993476e+00 -3.850226050562932e+00 - -3.852575666851148e+00 -3.854928793361406e+00 -3.857285434801036e+00 -3.859645595950435e+00 -3.862009278678248e+00 - -3.864376484523473e+00 -3.866747216618300e+00 -3.869121478726629e+00 -3.871499275546047e+00 -3.873880611182955e+00 - -3.876265486445322e+00 -3.878653902389424e+00 -3.881045864363169e+00 -3.883441377687285e+00 -3.885840443282151e+00 - -3.888243062046155e+00 -3.890649239190073e+00 -3.893058980047241e+00 -3.895472286128841e+00 -3.897889158595383e+00 - -3.900309601026809e+00 -3.902733617656517e+00 -3.905161212912323e+00 -3.907592390603840e+00 -3.910027151873432e+00 - -3.912465498159137e+00 -3.914907434748928e+00 -3.917352966879188e+00 -3.919802095729995e+00 -3.922254822259626e+00 - -3.924711150595445e+00 -3.927171085542605e+00 -3.929634631448325e+00 -3.932101791843537e+00 -3.934572567451927e+00 - -3.937046959532740e+00 -3.939524974294695e+00 -3.942006617767883e+00 -3.944491890318428e+00 -3.946980792233828e+00 - -3.949473329151056e+00 -3.951969506957779e+00 -3.954469327195002e+00 -3.956972790971958e+00 -3.959479902017460e+00 - -3.961990664762499e+00 -3.964505083827194e+00 -3.967023163167552e+00 -3.969544903893966e+00 -3.972070307479498e+00 - -3.974599379693463e+00 -3.977132126179292e+00 -3.979668547780628e+00 -3.982208645099321e+00 -3.984752422569858e+00 - -3.987299885436030e+00 -3.989851038346246e+00 -3.992405885069993e+00 -3.994964426456437e+00 -3.997526663815754e+00 - -4.000092603222488e+00 -4.002662250581340e+00 -4.005235606353252e+00 -4.007812671084819e+00 -4.010393451108941e+00 - -4.012977952843547e+00 -4.015566177260363e+00 -4.018158124897606e+00 -4.020753800005660e+00 -4.023353207686703e+00 - -4.025956352737950e+00 -4.028563239140089e+00 -4.031173867912699e+00 -4.033788240453579e+00 -4.036406362634527e+00 - -4.039028240314873e+00 -4.041653874830120e+00 -4.044283267179555e+00 -4.046916421541453e+00 -4.049553342894448e+00 - -4.052194036239657e+00 -4.054838505774454e+00 -4.057486752458788e+00 -4.060138777601743e+00 -4.062794587146426e+00 - -4.065454187011838e+00 -4.068117578386588e+00 -4.070784762448621e+00 -4.073455745063631e+00 -4.076130532171974e+00 - -4.078809125324914e+00 -4.081491525652789e+00 -4.084177736991329e+00 -4.086867764089578e+00 -4.089561612644448e+00 - -4.092259287473573e+00 -4.094960788929582e+00 -4.097666117736884e+00 -4.100375280572002e+00 -4.103088284211306e+00 - -4.105805129878449e+00 -4.108525818267906e+00 -4.111250353510137e+00 -4.113978740671802e+00 -4.116710985128399e+00 - -4.119447091422845e+00 -4.122187060458915e+00 -4.124930893522407e+00 -4.127678597066370e+00 -4.130430177441071e+00 - -4.133185635418395e+00 -4.135944971791250e+00 -4.138708193015015e+00 -4.141475305696859e+00 -4.144246311388639e+00 - -4.147021211130915e+00 -4.149800008974389e+00 -4.152582709893380e+00 -4.155369319546537e+00 -4.158159842709882e+00 - -4.160954279944561e+00 -4.163752632239020e+00 -4.166554906505763e+00 -4.169361109687737e+00 -4.172171242925584e+00 - -4.174985306927709e+00 -4.177803306475812e+00 -4.180625247195196e+00 -4.183451134012302e+00 -4.186280970992621e+00 - -4.189114759456745e+00 -4.191952501240072e+00 -4.194794202982180e+00 -4.197639871116617e+00 -4.200489506448629e+00 - -4.203343109834506e+00 -4.206200687962978e+00 -4.209062247657938e+00 -4.211927790451525e+00 -4.214797317400862e+00 - -4.217670832954751e+00 -4.220548342457539e+00 -4.223429851444060e+00 -4.226315364591702e+00 -4.229204882957573e+00 - -4.232098408004153e+00 -4.234995946435681e+00 -4.237897504949240e+00 -4.240803084971501e+00 -4.243712687544032e+00 - -4.246626317438374e+00 -4.249543980343883e+00 -4.252465681891192e+00 -4.255391426705907e+00 -4.258321215452209e+00 - -4.261255049361277e+00 -4.264192935893713e+00 -4.267134882389568e+00 -4.270080889477248e+00 -4.273030957691918e+00 - -4.275985093907401e+00 -4.278943305249538e+00 -4.281905593513557e+00 -4.284871959946388e+00 -4.287842408932329e+00 - -4.290816945777364e+00 -4.293795576336856e+00 -4.296778305653331e+00 -4.299765134968560e+00 -4.302756065899131e+00 - -4.305751105361620e+00 -4.308750260118541e+00 -4.311753531016159e+00 -4.314760919008608e+00 -4.317772431397722e+00 - -4.320788075591533e+00 -4.323807853075197e+00 -4.326831764792573e+00 -4.329859815445223e+00 -4.332892010759197e+00 - -4.335928356800809e+00 -4.338968858700405e+00 -4.342013517504197e+00 -4.345062334602749e+00 -4.348115316848165e+00 - -4.351172471198577e+00 -4.354233799574710e+00 -4.357299303495111e+00 -4.360368987907023e+00 -4.363442858590077e+00 - -4.366520921224746e+00 -4.369603180592436e+00 -4.372689637977453e+00 -4.375780295145305e+00 -4.378875159283436e+00 - -4.381974237486932e+00 -4.385077531059527e+00 -4.388185041309383e+00 -4.391296775353732e+00 -4.394412740393244e+00 - -4.397532938153312e+00 -4.400657369887305e+00 -4.403786040435705e+00 -4.406918955633090e+00 -4.410056121703311e+00 - -4.413197543940346e+00 -4.416343223529426e+00 -4.419493162052248e+00 -4.422647366785128e+00 -4.425805845047289e+00 - -4.428968598634965e+00 -4.432135628892382e+00 -4.435306940878729e+00 -4.438482540596634e+00 -4.441662434107552e+00 - -4.444846626509031e+00 -4.448035118984182e+00 -4.451227913265940e+00 -4.454425017200977e+00 -4.457626438485681e+00 - -4.460832178101560e+00 -4.464042236947444e+00 -4.467256622306292e+00 -4.470475341701105e+00 -4.473698397230936e+00 - -4.476925790483307e+00 -4.480157526423565e+00 -4.483393610985775e+00 -4.486634050601043e+00 -4.489878850742320e+00 - -4.493128012552872e+00 -4.496381537630165e+00 -4.499639433718156e+00 -4.502901708553144e+00 -4.506168363694287e+00 - -4.509439400268067e+00 -4.512714823847340e+00 -4.515994641019672e+00 -4.519278857985080e+00 -4.522567479881829e+00 - -4.525860507988668e+00 -4.529157944122721e+00 -4.532459796114085e+00 -4.535766071688615e+00 -4.539076772142213e+00 - -4.542391898765175e+00 -4.545711459255270e+00 -4.549035461446213e+00 -4.552363907308053e+00 -4.555696798263391e+00 - -4.559034139408705e+00 -4.562375936904542e+00 -4.565722197493832e+00 -4.569072926948550e+00 -4.572428126574475e+00 - -4.575787798129616e+00 -4.579151949647104e+00 -4.582520589075836e+00 -4.585893717752653e+00 -4.589271336639746e+00 - -4.592653451812744e+00 -4.596040070428725e+00 -4.599431198857142e+00 -4.602826842289216e+00 -4.606227001990830e+00 - -4.609631679831751e+00 -4.613040884022596e+00 -4.616454622677202e+00 -4.619872897181441e+00 -4.623295708819967e+00 - -4.626723065200532e+00 -4.630154974192006e+00 -4.633591438384649e+00 -4.637032459790966e+00 -4.640478043391029e+00 - -4.643928195196958e+00 -4.647382922381489e+00 -4.650842231139545e+00 -4.654306122594169e+00 -4.657774598295235e+00 - -4.661247666571815e+00 -4.664725335805659e+00 -4.668207607810025e+00 -4.671694483876048e+00 -4.675185969774820e+00 - -4.678682072408495e+00 -4.682182798723523e+00 -4.685688154522786e+00 -4.689198140990583e+00 -4.692712759891060e+00 - -4.696232019926335e+00 -4.699755929666950e+00 -4.703284490219185e+00 -4.706817702626076e+00 -4.710355575141943e+00 - -4.713898116290367e+00 -4.717445328460708e+00 -4.720997213393779e+00 -4.724553776370427e+00 -4.728115023824750e+00 - -4.731680963263822e+00 -4.735251601139764e+00 -4.738826938611875e+00 -4.742406977241646e+00 -4.745991725492132e+00 - -4.749581191958943e+00 -4.753175378866366e+00 -4.756774287871428e+00 -4.760377924733439e+00 -4.763986296289299e+00 - -4.767599409584012e+00 -4.771217270615820e+00 -4.774839880987831e+00 -4.778467242836293e+00 -4.782099364825118e+00 - -4.785736255481164e+00 -4.789377916255392e+00 -4.793024348603915e+00 -4.796675561079348e+00 -4.800331562360717e+00 - -4.803992354536202e+00 -4.807657939173200e+00 -4.811328322346788e+00 -4.815003511262576e+00 -4.818683513140625e+00 - -4.822368334073276e+00 -4.826057975627521e+00 -4.829752439872078e+00 -4.833451735407881e+00 -4.837155870922971e+00 - -4.840864848921632e+00 -4.844578671297884e+00 -4.848297343688468e+00 -4.852020872870312e+00 -4.855749266438375e+00 - -4.859482530948563e+00 -4.863220667982479e+00 -4.866963679596293e+00 -4.870711574718753e+00 -4.874464362148352e+00 - -4.878222043289993e+00 -4.881984619584831e+00 -4.885752100012597e+00 -4.889524493673498e+00 -4.893301802611106e+00 - -4.897084028340568e+00 -4.900871177319985e+00 -4.904663257144151e+00 -4.908460275011687e+00 -4.912262236942902e+00 - -4.916069144641015e+00 -4.919881000415621e+00 -4.923697813318887e+00 -4.927519592402767e+00 -4.931346339975771e+00 - -4.935178057730553e+00 -4.939014751639765e+00 -4.942856428895341e+00 -4.946703097286389e+00 -4.950554763469543e+00 - -4.954411428974413e+00 -4.958273095882141e+00 -4.962139773607051e+00 -4.966011471374763e+00 -4.969888190322918e+00 - -4.973769931656962e+00 -4.977656704941523e+00 -4.981548519919207e+00 -4.985445378685372e+00 -4.989347282670139e+00 - -4.993254238289898e+00 -4.997166253181426e+00 -5.001083334876794e+00 -5.005005489750602e+00 -5.008932719652265e+00 - -5.012865027026571e+00 -5.016802421224969e+00 -5.020744911403345e+00 -5.024692499028711e+00 -5.028645185619313e+00 - -5.032602980587180e+00 -5.036565893470627e+00 -5.040533926419334e+00 -5.044507081015939e+00 -5.048485363963517e+00 - -5.052468783200935e+00 -5.056457346489804e+00 -5.060451060330298e+00 -5.064449926354071e+00 -5.068453946757710e+00 - -5.072463130865962e+00 -5.076477488052552e+00 -5.080497020758939e+00 -5.084521730904982e+00 -5.088551625256381e+00 - -5.092586711696772e+00 -5.096626997735727e+00 -5.100672489712744e+00 -5.104723189661156e+00 -5.108779100266077e+00 - -5.112840231125939e+00 -5.116906591587866e+00 -5.120978183080382e+00 -5.125055007124604e+00 -5.129137073530554e+00 - -5.133224392250169e+00 -5.137316965514153e+00 -5.141414794882011e+00 -5.145517886949661e+00 -5.149626249667421e+00 - -5.153739891366810e+00 -5.157858819095347e+00 -5.161983034383363e+00 -5.166112539324860e+00 -5.170247343785729e+00 - -5.174387457616170e+00 -5.178532882831751e+00 -5.182683620936045e+00 -5.186839679219287e+00 -5.191001066208124e+00 - -5.195167789588259e+00 -5.199339855740569e+00 -5.203517266667578e+00 -5.207700025095241e+00 -5.211888141021600e+00 - -5.216081624199723e+00 -5.220280476130696e+00 -5.224484698310884e+00 -5.228694300469721e+00 -5.232909292611727e+00 - -5.237129677608738e+00 -5.241355457600706e+00 -5.245586638932716e+00 -5.249823229255573e+00 -5.254065237237846e+00 - -5.258312670369801e+00 -5.262565530410686e+00 -5.266823819583928e+00 -5.271087547700648e+00 -5.275356724632263e+00 - -5.279631352903723e+00 -5.283911434448228e+00 -5.288196976178466e+00 -5.292487986327965e+00 -5.296784473434150e+00 - -5.301086444698075e+00 -5.305393901671405e+00 -5.309706846569482e+00 -5.314025289911748e+00 -5.318349242027271e+00 - -5.322678704179561e+00 -5.327013677718438e+00 -5.331354173404511e+00 -5.335700202105029e+00 -5.340051765703035e+00 - -5.344408865432155e+00 -5.348771508912536e+00 -5.353139705124518e+00 -5.357513462102698e+00 -5.361892786505948e+00 - -5.366277680435933e+00 -5.370668146715638e+00 -5.375064195610523e+00 -5.379465837274747e+00 -5.383873073974794e+00 - -5.388285907439377e+00 -5.392704345133761e+00 -5.397128395890300e+00 -5.401558068273167e+00 -5.405993369375257e+00 - -5.410434300672517e+00 -5.414880864443758e+00 -5.419333071796174e+00 -5.423790933634701e+00 -5.428254451226888e+00 - -5.432723625834648e+00 -5.437198468334746e+00 -5.441678989715544e+00 -5.446165191796978e+00 -5.450657075821366e+00 - -5.455154649888983e+00 -5.459657923508107e+00 -5.464166904961132e+00 -5.468681600997277e+00 -5.473202013458992e+00 - -5.477728145011161e+00 -5.482260006515158e+00 -5.486797608759512e+00 -5.491340954044872e+00 -5.495890044003880e+00 - -5.500444886085005e+00 -5.505005489175888e+00 -5.509571862105057e+00 -5.514144012303452e+00 -5.518721941670775e+00 - -5.523305652810777e+00 -5.527895156674663e+00 -5.532490463993778e+00 -5.537091576272570e+00 -5.541698495053784e+00 - -5.546311231260242e+00 -5.550929796018560e+00 -5.555554191890502e+00 -5.560184420697174e+00 -5.564820489861896e+00 - -5.569462408240030e+00 -5.574110184812914e+00 -5.578763827204064e+00 -5.583423337479740e+00 -5.588088718319627e+00 - -5.592759980414353e+00 -5.597437134453794e+00 -5.602120183113874e+00 -5.606809128447821e+00 -5.611503978032022e+00 - -5.616204740842362e+00 -5.620911425929568e+00 -5.625624040919794e+00 -5.630342587666039e+00 -5.635067068763208e+00 - -5.639797495546991e+00 -5.644533879170592e+00 -5.649276221316504e+00 -5.654024523642824e+00 -5.658778797180806e+00 - -5.663539053129186e+00 -5.668305293983524e+00 -5.673077521581335e+00 -5.677855743831122e+00 -5.682639970117403e+00 - -5.687430209657800e+00 -5.692226470164904e+00 -5.697028753498052e+00 -5.701837062188433e+00 -5.706651407307890e+00 - -5.711471800003379e+00 -5.716298243181697e+00 -5.721130739014699e+00 -5.725969294974640e+00 -5.730813920019088e+00 - -5.735664623746429e+00 -5.740521414337008e+00 -5.745384293658165e+00 -5.750253264219532e+00 -5.755128337412918e+00 - -5.760009524502356e+00 -5.764896827358567e+00 -5.769790247833362e+00 -5.774689797096235e+00 -5.779595486532854e+00 - -5.784507319075965e+00 -5.789425296924678e+00 -5.794349427796488e+00 -5.799279720850703e+00 -5.804216185495535e+00 - -5.809158829710795e+00 -5.814107655513784e+00 -5.819062665706917e+00 -5.824023872195552e+00 -5.828991286593848e+00 - -5.833964910248241e+00 -5.838944744496904e+00 -5.843930800912663e+00 -5.848923091405570e+00 -5.853921618999967e+00 - -5.858926385866531e+00 -5.863937399646989e+00 -5.868954669511408e+00 -5.873978205272220e+00 -5.879008015280387e+00 - -5.884044101398642e+00 -5.889086466127434e+00 -5.894135121006329e+00 -5.899190077679159e+00 -5.904251339167730e+00 - -5.909318907675908e+00 -5.914392790757818e+00 -5.919472997569684e+00 -5.924559538325873e+00 -5.929652421747786e+00 - -5.934751649526802e+00 -5.939857223994977e+00 -5.944969157077114e+00 -5.950087460588470e+00 -5.955212136313389e+00 - -5.960343186070434e+00 -5.965480621845905e+00 -5.970624455737114e+00 -5.975774690117698e+00 -5.980931326619691e+00 - -5.986094373632355e+00 -5.991263841186835e+00 -5.996439739124646e+00 -6.001622075628632e+00 -6.006810852436582e+00 - -6.012006072105073e+00 -6.017207746910874e+00 -6.022415889122929e+00 -6.027630501258702e+00 -6.032851585034692e+00 - -6.038079148714933e+00 -6.043313202169935e+00 -6.048553755148549e+00 -6.053800815867540e+00 -6.059054386536941e+00 - -6.064314470164098e+00 -6.069581078952353e+00 -6.074854224823474e+00 -6.080133909377011e+00 -6.085420134277816e+00 - -6.090712911774160e+00 -6.096012254273324e+00 -6.101318164235261e+00 -6.106630643404864e+00 -6.111949700614082e+00 - -6.117275346267099e+00 -6.122607589969956e+00 -6.127946439669295e+00 -6.133291897472249e+00 -6.138643966380033e+00 - -6.144002658809652e+00 -6.149367987035877e+00 -6.154739953348771e+00 -6.160118559324411e+00 -6.165503813667637e+00 - -6.170895726810269e+00 -6.176294308963303e+00 -6.181699568610070e+00 -6.187111507544039e+00 -6.192530128394146e+00 - -6.197955443821025e+00 -6.203387466288188e+00 -6.208826197438971e+00 -6.214271638855750e+00 -6.219723802697215e+00 - -6.225182701452046e+00 -6.230648338352550e+00 -6.236120715733020e+00 -6.241599841591995e+00 -6.247085725644578e+00 - -6.252578378807894e+00 -6.258077810320607e+00 -6.263584021505486e+00 -6.269097014385768e+00 -6.274616801702433e+00 - -6.280143396389799e+00 -6.285676801437800e+00 -6.291217018848358e+00 -6.296764056615736e+00 -6.302317924554712e+00 - -6.307878633769864e+00 -6.313446193664602e+00 -6.319020605547922e+00 -6.324601871487839e+00 -6.330190004682891e+00 - -6.335785018206249e+00 -6.341386913499118e+00 -6.346995691980793e+00 -6.352611366614864e+00 -6.358233950592316e+00 - -6.363863446469443e+00 -6.369499855900457e+00 -6.375143187565898e+00 -6.380793451939097e+00 -6.386450659638202e+00 - -6.392114819555641e+00 -6.397785933536126e+00 -6.403464004233896e+00 -6.409149044588990e+00 -6.414841067513965e+00 - -6.420540075525660e+00 -6.426246070301758e+00 -6.431959060559017e+00 -6.437679056917068e+00 -6.443406070567963e+00 - -6.449140110779302e+00 -6.454881178548420e+00 -6.460629275812415e+00 -6.466384416537711e+00 -6.472146614484319e+00 - -6.477915870557313e+00 -6.483692185657911e+00 -6.489475573526882e+00 -6.495266048141532e+00 -6.501063611585819e+00 - -6.506868264986595e+00 -6.512680017535606e+00 -6.518498880384615e+00 -6.524324864460620e+00 -6.530157978732819e+00 - -6.535998224564008e+00 -6.541845604255500e+00 -6.547700131469085e+00 -6.553561819849423e+00 -6.559430671612207e+00 - -6.565306688088189e+00 -6.571189878497283e+00 -6.577080253965905e+00 -6.582977825357318e+00 -6.588882601649868e+00 - -6.594794584545345e+00 -6.600713776640095e+00 -6.606640191385222e+00 -6.612573842086468e+00 -6.618514730613387e+00 - -6.624462858757332e+00 -6.630418239433046e+00 -6.636380885778538e+00 -6.642350800701542e+00 -6.648327986279747e+00 - -6.654312451500913e+00 -6.660304207148021e+00 -6.666303264274883e+00 -6.672309632144893e+00 -6.678323312588955e+00 - -6.684344308236361e+00 -6.690372632342481e+00 -6.696408298209058e+00 -6.702451308697293e+00 -6.708501665794167e+00 - -6.714559378430309e+00 -6.720624457416141e+00 -6.726696914137652e+00 -6.732776758078630e+00 -6.738863990538500e+00 - -6.744958613795213e+00 -6.751060642225177e+00 -6.757170089911689e+00 -6.763286957667176e+00 -6.769411246357500e+00 - -6.775542970333119e+00 -6.781682144164359e+00 -6.787828769816468e+00 -6.793982848306231e+00 -6.800144389461610e+00 - -6.806313405086916e+00 -6.812489906080716e+00 -6.818673901333698e+00 -6.824865392610781e+00 -6.831064382650163e+00 - -6.837270885208925e+00 -6.843484914029985e+00 -6.849706471780753e+00 -6.855935560196301e+00 -6.862172188357874e+00 - -6.868416367348060e+00 -6.874668108908677e+00 -6.880927422841348e+00 -6.887194310527692e+00 -6.893468774218006e+00 - -6.899750828057308e+00 -6.906040486046904e+00 -6.912337749718504e+00 -6.918642620544160e+00 -6.924955112226868e+00 - -6.931275238742860e+00 -6.937603002930438e+00 -6.943938406703657e+00 -6.950281459417487e+00 -6.956632172330878e+00 - -6.962990556877839e+00 -6.969356622516854e+00 -6.975730370629293e+00 -6.982111803620415e+00 -6.988500936068168e+00 - -6.994897782349220e+00 -7.001302343862422e+00 -7.007714621896787e+00 -7.014134630279748e+00 -7.020562383120512e+00 - -7.026997883116998e+00 -7.033441132058707e+00 -7.039892139512705e+00 -7.046350916975187e+00 -7.052817475881351e+00 - -7.059291825658977e+00 -7.065773967767182e+00 -7.072263904706783e+00 -7.078761651114045e+00 -7.085267221537997e+00 - -7.091780618043302e+00 -7.098301841735545e+00 -7.104830902368316e+00 -7.111367811800725e+00 -7.117912581665987e+00 - -7.124465221496127e+00 -7.131025732644298e+00 -7.137594117517873e+00 -7.144170390919956e+00 -7.150754567380619e+00 - -7.157346647942116e+00 -7.163946633668109e+00 -7.170554539195697e+00 -7.177170379365883e+00 -7.183794156261903e+00 - -7.190425870988396e+00 -7.197065533493338e+00 -7.203713155838439e+00 -7.210368749697043e+00 -7.217032324589560e+00 - -7.223703881813015e+00 -7.230383423705708e+00 -7.237070964994412e+00 -7.243766520390449e+00 -7.250470092154861e+00 - -7.257181681552523e+00 -7.263901298313877e+00 -7.270628954301988e+00 -7.277364661444877e+00 -7.284108429522252e+00 - -7.290860259655573e+00 -7.297620154032538e+00 -7.304388127764033e+00 -7.311164195737019e+00 -7.317948359019635e+00 - -7.324740618617562e+00 -7.331540989105481e+00 -7.338349485298712e+00 -7.345166109406192e+00 -7.351990862719772e+00 - -7.358823755469352e+00 -7.365664799915581e+00 -7.372514007504119e+00 -7.379371387574386e+00 -7.386236941855793e+00 - -7.393110673113762e+00 -7.399992595867711e+00 -7.406882724521767e+00 -7.413781061264927e+00 -7.420687607444220e+00 - -7.427602373253923e+00 -7.434525370953283e+00 -7.441456612214240e+00 -7.448396106579596e+00 -7.455343855662903e+00 - -7.462299862106879e+00 -7.469264140600134e+00 -7.476236705537742e+00 -7.483217558094771e+00 -7.490206699573982e+00 - -7.497204145008848e+00 -7.504209909607961e+00 -7.511223995549668e+00 -7.518246403916826e+00 -7.525277144440522e+00 - -7.532316229110418e+00 -7.539363670302306e+00 -7.546419478207750e+00 -7.553483653895294e+00 -7.560556199398457e+00 - -7.567637129733686e+00 -7.574726459966183e+00 -7.581824192373288e+00 -7.588930328179804e+00 -7.596044877188221e+00 - -7.603167851392376e+00 -7.610299262973792e+00 -7.617439121971403e+00 -7.624587429666054e+00 -7.631744188388593e+00 - -7.638909413427992e+00 -7.646083119762239e+00 -7.653265308167305e+00 -7.660455979470388e+00 -7.667655148905554e+00 - -7.674862831955687e+00 -7.682079030692125e+00 -7.689303746121935e+00 -7.696536988406601e+00 -7.703778769965018e+00 - -7.711029103091334e+00 -7.718287997777487e+00 -7.725555454931286e+00 -7.732831476489904e+00 -7.740116077592081e+00 - -7.747409273463959e+00 -7.754711066479733e+00 -7.762021457991705e+00 -7.769340458116517e+00 -7.776668079072852e+00 - -7.784004332723263e+00 -7.791349228774319e+00 -7.798702768664788e+00 -7.806064954991001e+00 -7.813435803247359e+00 - -7.820815328504128e+00 -7.828203531237023e+00 -7.835600412067597e+00 -7.843005986795347e+00 -7.850420271453628e+00 - -7.857843267833355e+00 -7.865274976500961e+00 -7.872715407367362e+00 -7.880164572827870e+00 -7.887622485870939e+00 - -7.895089157097287e+00 -7.902564586963549e+00 -7.910048776908389e+00 -7.917541742442640e+00 -7.925043499243823e+00 - -7.932554049584044e+00 -7.940073394568305e+00 -7.947601544038569e+00 -7.955138510136092e+00 -7.962684305462377e+00 - -7.970238940357911e+00 -7.977802415658878e+00 -7.985374733292938e+00 -7.992955909057959e+00 -8.000545958501995e+00 - -8.008144882303682e+00 -8.015752681155906e+00 -8.023369370677967e+00 -8.030994966700497e+00 -8.038629470973136e+00 - -8.046272884117311e+00 -8.053925216322545e+00 -8.061586480220186e+00 -8.069256688640843e+00 -8.076935852017314e+00 - -8.084623970991846e+00 -8.092321047230506e+00 -8.100027096285098e+00 -8.107742133772728e+00 -8.115466161685978e+00 - -8.123199180963685e+00 -8.130941201954130e+00 -8.138692237272345e+00 -8.146452299190864e+00 -8.154221397655556e+00 - -8.161999533648068e+00 -8.169786709369063e+00 -8.177582940859525e+00 -8.185388243772254e+00 -8.193202618367051e+00 - -8.201026064968486e+00 -8.208858599553158e+00 -8.216700238370747e+00 -8.224550983111227e+00 -8.232410834288519e+00 - -8.240279802271914e+00 -8.248157899820946e+00 -8.256045139400785e+00 -8.263941531127587e+00 -8.271847076015916e+00 - -8.279761776165609e+00 -8.287685647119202e+00 -8.295618704371698e+00 -8.303560949785306e+00 -8.311512384182917e+00 - -8.319473017862927e+00 -8.327442863513763e+00 -8.335421933908444e+00 -8.343410239406900e+00 -8.351407780632112e+00 - -8.359414559352070e+00 -8.367430591651793e+00 -8.375455893292965e+00 -8.383490464426892e+00 -8.391534305333888e+00 - -8.399587432420665e+00 -8.407649862295598e+00 -8.415721596247392e+00 -8.423802634359653e+00 -8.431892987215194e+00 - -8.439992667917126e+00 -8.448101689150496e+00 -8.456220061058572e+00 -8.464347784035521e+00 -8.472484859778373e+00 - -8.480631304944675e+00 -8.488787135775029e+00 -8.496952351881781e+00 -8.505126952972617e+00 -8.513310955764712e+00 - -8.521504377280520e+00 -8.529707218754108e+00 -8.537919480083488e+00 -8.546141171610756e+00 -8.554372306334406e+00 - -8.562612897434500e+00 -8.570862955488629e+00 -8.579122480482935e+00 -8.587391473585072e+00 -8.595669951280222e+00 - -8.603957930092136e+00 -8.612255411381385e+00 -8.620562395277888e+00 -8.628878892152137e+00 -8.637204914976417e+00 - -8.645540476889700e+00 -8.653885588365707e+00 -8.662240249050400e+00 -8.670604460002718e+00 -8.678978238761259e+00 - -8.687361602440037e+00 -8.695754549975142e+00 -8.704157080317993e+00 -8.712569210659231e+00 -8.720990958572770e+00 - -8.729422324926496e+00 -8.737863309144757e+00 -8.746313921583734e+00 -8.754774175423437e+00 -8.763244084207386e+00 - -8.771723658743657e+00 -8.780212898534927e+00 -8.788711804325507e+00 -8.797220393131562e+00 -8.805738681960509e+00 - -8.814266671512945e+00 -8.822804361262596e+00 -8.831351762082482e+00 -8.839908887544672e+00 -8.848475750618142e+00 - -8.857052361519681e+00 -8.865638720060298e+00 -8.874234827408518e+00 -8.882840700568694e+00 -8.891456356239988e+00 - -8.900081794065120e+00 -8.908717013654563e+00 -8.917362031546196e+00 -8.926016864607513e+00 -8.934681514097109e+00 - -8.943355979966887e+00 -8.952040272550780e+00 -8.960734404827180e+00 -8.969438389970174e+00 -8.978152238557112e+00 - -8.986875950582608e+00 -8.995609527224275e+00 -9.004352984974421e+00 -9.013106340348738e+00 -9.021869594641789e+00 - -9.030642747850949e+00 -9.039425810005964e+00 -9.048218793898496e+00 -9.057021713335553e+00 -9.065834579375275e+00 - -9.074657391064932e+00 -9.083490148798390e+00 -9.092332870366718e+00 -9.101185573233034e+00 -9.110048256151465e+00 - -9.118920917820537e+00 -9.127803575425368e+00 -9.136696246597257e+00 -9.145598932265708e+00 -9.154511631860180e+00 - -9.163434355511646e+00 -9.172367116215408e+00 -9.181309927722621e+00 -9.190262801063124e+00 -9.199225735625708e+00 - -9.208198731948572e+00 -9.217181806808554e+00 -9.226174977077383e+00 -9.235178243767663e+00 -9.244191606592038e+00 - -9.253215075922315e+00 -9.262248664894432e+00 -9.271292387041701e+00 -9.280346253080740e+00 -9.289410262064051e+00 - -9.298484414471314e+00 -9.307568728155069e+00 -9.316663220573421e+00 -9.325767890233902e+00 -9.334882735648362e+00 - -9.344007774296474e+00 -9.353143024056331e+00 -9.362288485431986e+00 -9.371444157433135e+00 -9.380610050466057e+00 - -9.389786177888119e+00 -9.398972553464475e+00 -9.408169188076664e+00 -9.417376080663951e+00 -9.426593231436920e+00 - -9.435820657633688e+00 -9.445058376575700e+00 -9.454306388890288e+00 -9.463564693828612e+00 -9.472833301831271e+00 - -9.482112226230582e+00 -9.491401480736307e+00 -9.500701076124317e+00 -9.510011011057383e+00 -9.519331285649606e+00 - -9.528661917933491e+00 -9.538002925632075e+00 -9.547354307312132e+00 -9.556716061430350e+00 -9.566088205159264e+00 - -9.575470756067922e+00 -9.584863714595665e+00 -9.594267079809105e+00 -9.603680862413734e+00 -9.613105076017005e+00 - -9.622539734195460e+00 -9.631984847535897e+00 -9.641440414697058e+00 -9.650906435763309e+00 -9.660382928449559e+00 - -9.669869910482992e+00 -9.679367382009378e+00 -9.688875341677877e+00 -9.698393799732578e+00 -9.707922769547205e+00 - -9.717462265419133e+00 -9.727012298576232e+00 -9.736572867044643e+00 -9.746143970285512e+00 -9.755725626701739e+00 - -9.765317854403191e+00 -9.774920651385886e+00 -9.784534015610914e+00 -9.794157965013451e+00 -9.803792517858509e+00 - -9.813437673756464e+00 -9.823093430886084e+00 -9.832759800354408e+00 -9.842436796281985e+00 -9.852124431915341e+00 - -9.861822717446652e+00 -9.871531651724764e+00 -9.881251235098006e+00 -9.890981485255914e+00 -9.900722419735771e+00 - -9.910474038124631e+00 -9.920236338721825e+00 -9.930009332625946e+00 -9.939793033953066e+00 -9.949587456089942e+00 - -9.959392609292857e+00 -9.969208492025555e+00 -9.979035104343238e+00 -9.988872464459540e+00 -9.998720590171930e+00 - -1.000857947945488e+01 -1.001844913033355e+01 -1.002832956085879e+01 -1.003822078906736e+01 -1.004812281291406e+01 - -1.005803562971182e+01 -1.006795925428782e+01 -1.007789370360111e+01 -1.008783898562387e+01 -1.009779510571246e+01 - -1.010776206774677e+01 -1.011773987740720e+01 -1.012772854905251e+01 -1.013772809631413e+01 -1.014773852123577e+01 - -1.015775982444731e+01 -1.016779201251112e+01 -1.017783509576905e+01 -1.018788909374848e+01 -1.019795402262726e+01 - -1.020802987599985e+01 -1.021811664796306e+01 -1.022821435720666e+01 -1.023832302389762e+01 -1.024844264951883e+01 - -1.025857323411911e+01 -1.026871479069502e+01 -1.027886733277511e+01 -1.028903086306819e+01 -1.029920538356622e+01 - -1.030939090421369e+01 -1.031958743714735e+01 -1.032979499532081e+01 -1.034001358910991e+01 -1.035024321776280e+01 - -1.036048388191000e+01 -1.037073559883907e+01 -1.038099838556339e+01 -1.039127224134250e+01 -1.040155716512729e+01 - -1.041185317238784e+01 -1.042216027887615e+01 -1.043247848495290e+01 -1.044280779013644e+01 -1.045314820596725e+01 - -1.046349974688984e+01 -1.047386242694284e+01 -1.048423625623699e+01 -1.049462122957744e+01 -1.050501734396915e+01 - -1.051542462052187e+01 -1.052584308069211e+01 -1.053627272321853e+01 -1.054671354447971e+01 -1.055716555413174e+01 - -1.056762876571201e+01 -1.057810319500591e+01 -1.058858885406686e+01 -1.059908573777257e+01 -1.060959384260205e+01 - -1.062011318861535e+01 -1.063064379594653e+01 -1.064118566144451e+01 -1.065173878128750e+01 -1.066230317225584e+01 - -1.067287885251234e+01 -1.068346582514766e+01 -1.069406409086973e+01 -1.070467365592747e+01 -1.071529452946521e+01 - -1.072592672666786e+01 -1.073657026057826e+01 -1.074722512963040e+01 -1.075789133336255e+01 -1.076856889033910e+01 - -1.077925781838790e+01 -1.078995811336476e+01 -1.080066977044343e+01 -1.081139280404170e+01 -1.082212723175914e+01 - -1.083287306467895e+01 -1.084363031023443e+01 -1.085439896777578e+01 -1.086517903841335e+01 -1.087597053838113e+01 - -1.088677348334085e+01 -1.089758787154147e+01 -1.090841370173705e+01 -1.091925099211483e+01 -1.093009976068779e+01 - -1.094096000533889e+01 -1.095183172286895e+01 -1.096271492588021e+01 -1.097360962990334e+01 -1.098451584638146e+01 - -1.099543358339704e+01 -1.100636283967740e+01 -1.101730361593110e+01 -1.102825593014644e+01 -1.103921979985815e+01 - -1.105019522350652e+01 -1.106118219809120e+01 -1.107218073394329e+01 -1.108319084475604e+01 -1.109421254433972e+01 - -1.110524584310812e+01 -1.111629073777213e+01 -1.112734722664297e+01 -1.113841532813614e+01 -1.114949506055284e+01 - -1.116058642163307e+01 -1.117168940919924e+01 -1.118280404196459e+01 -1.119393033845125e+01 -1.120506829552628e+01 - -1.121621790821428e+01 -1.122737918582522e+01 -1.123855214233318e+01 -1.124973679608346e+01 -1.126093316109601e+01 - -1.127214122971816e+01 -1.128336099568353e+01 -1.129459247994368e+01 -1.130583570391351e+01 -1.131709066364352e+01 - -1.132835735316995e+01 -1.133963578383626e+01 -1.135092597165251e+01 -1.136222793398803e+01 -1.137354168289046e+01 - -1.138486720776133e+01 -1.139620450077960e+01 -1.140755358788016e+01 -1.141891449467379e+01 -1.143028721171902e+01 - -1.144167172931863e+01 -1.145306807180483e+01 -1.146447626363145e+01 -1.147589629570943e+01 -1.148732815744427e+01 - -1.149877186576219e+01 -1.151022744176966e+01 -1.152169489577362e+01 -1.153317423307527e+01 -1.154466544975234e+01 - -1.155616854500299e+01 -1.156768353973055e+01 -1.157921045411968e+01 -1.159074928377541e+01 -1.160230002278200e+01 - -1.161386268372032e+01 -1.162543728297182e+01 -1.163702383362365e+01 -1.164862234413445e+01 -1.166023280774309e+01 - -1.167185522083641e+01 -1.168348960761297e+01 -1.169513599109641e+01 -1.170679436179895e+01 -1.171846471050954e+01 - -1.173014706163534e+01 -1.174184143967664e+01 -1.175354783588804e+01 -1.176526623959987e+01 -1.177699666569085e+01 - -1.178873913359907e+01 -1.180049365545172e+01 -1.181226023874721e+01 -1.182403887977966e+01 -1.183582957710202e+01 - -1.184763234950681e+01 -1.185944721571250e+01 -1.187127417390187e+01 -1.188311322026980e+01 -1.189496436359524e+01 - -1.190682761635663e+01 -1.191870299324639e+01 -1.193059050542573e+01 -1.194249014771712e+01 -1.195440191732676e+01 - -1.196632583733436e+01 -1.197826192918009e+01 -1.199021018187259e+01 -1.200217058481946e+01 -1.201414316145583e+01 - -1.202612793653577e+01 -1.203812490606177e+01 -1.205013406283600e+01 -1.206215541561094e+01 -1.207418897775090e+01 - -1.208623476511758e+01 -1.209829279023755e+01 -1.211036304979982e+01 -1.212244554104682e+01 -1.213454027927224e+01 - -1.214664728029985e+01 -1.215876654402256e+01 -1.217089806888390e+01 -1.218304186346073e+01 -1.219519793969503e+01 - -1.220736631285608e+01 -1.221954699446002e+01 -1.223173997768314e+01 -1.224394525782826e+01 -1.225616285704409e+01 - -1.226839279716718e+01 -1.228063507193962e+01 -1.229288967419984e+01 -1.230515662126608e+01 -1.231743593190913e+01 - -1.232972760623024e+01 -1.234203164189830e+01 -1.235434804552219e+01 -1.236667682754052e+01 -1.237901800477097e+01 - -1.239137159078778e+01 -1.240373757981251e+01 -1.241611596680448e+01 -1.242850676902663e+01 -1.244091000477032e+01 - -1.245332567413717e+01 -1.246575377485128e+01 -1.247819431331654e+01 -1.249064729993889e+01 -1.250311275245252e+01 - -1.251559068470151e+01 -1.252808108764087e+01 -1.254058395403090e+01 -1.255309930674196e+01 -1.256562716858205e+01 - -1.257816753199971e+01 -1.259072038911156e+01 -1.260328576106586e+01 -1.261586366917709e+01 -1.262845410639316e+01 - -1.264105706405277e+01 -1.265367255542431e+01 -1.266630059802175e+01 -1.267894120441173e+01 -1.269159438291520e+01 - -1.270426012981745e+01 -1.271693844300063e+01 -1.272962933876972e+01 -1.274233283335257e+01 -1.275504892424538e+01 - -1.276777760888006e+01 -1.278051890316245e+01 -1.279327282335948e+01 -1.280603936870822e+01 -1.281881853703964e+01 - -1.283161033759003e+01 -1.284441478278821e+01 -1.285723188642777e+01 -1.287006165845383e+01 -1.288290409205257e+01 - -1.289575918258311e+01 -1.290862695085492e+01 -1.292150741744502e+01 -1.293440057655018e+01 -1.294730642109768e+01 - -1.296022496531707e+01 -1.297315622664438e+01 -1.298610021403966e+01 -1.299905693252094e+01 -1.301202637981436e+01 - -1.302500855607946e+01 -1.303800347850134e+01 -1.305101116311717e+01 -1.306403160434687e+01 -1.307706479749205e+01 - -1.309011076299821e+01 -1.310316952145874e+01 -1.311624106891474e+01 -1.312932539865738e+01 -1.314242251753035e+01 - -1.315553243732881e+01 -1.316865517610136e+01 -1.318179074759510e+01 -1.319493914209791e+01 -1.320810035188408e+01 - -1.322127440063306e+01 -1.323446131182036e+01 -1.324766107670098e+01 -1.326087368408213e+01 -1.327409914520021e+01 - -1.328733747660298e+01 -1.330058869365459e+01 -1.331385280702646e+01 -1.332712980980294e+01 -1.334041969690924e+01 - -1.335372248822127e+01 -1.336703820316815e+01 -1.338036683444133e+01 -1.339370837465144e+01 -1.340706284282357e+01 - -1.342043025877972e+01 -1.343381061911550e+01 -1.344720391854233e+01 -1.346061016746156e+01 -1.347402937953320e+01 - -1.348746156576247e+01 -1.350090673400032e+01 -1.351436488213541e+01 -1.352783600940468e+01 -1.354132013040003e+01 - -1.355481725974633e+01 -1.356832739684519e+01 -1.358185053959114e+01 -1.359538669507347e+01 -1.360893587411229e+01 - -1.362249809325635e+01 -1.363607336498644e+01 -1.364966167978290e+01 -1.366326303005515e+01 -1.367687743792930e+01 - -1.369050492543861e+01 -1.370414548452841e+01 -1.371779910680898e+01 -1.373146581263829e+01 -1.374514562258463e+01 - -1.375883852931014e+01 -1.377254452369323e+01 -1.378626361738342e+01 -1.379999582664259e+01 -1.381374116541099e+01 - -1.382749964295472e+01 -1.384127125216480e+01 -1.385505598801133e+01 -1.386885387015567e+01 -1.388266491822051e+01 - -1.389648912698253e+01 -1.391032648926665e+01 -1.392417701493663e+01 -1.393804071810552e+01 -1.395191761284479e+01 - -1.396580770902492e+01 -1.397971099975399e+01 -1.399362747983656e+01 -1.400755716762526e+01 -1.402150008127576e+01 - -1.403545621460787e+01 -1.404942556175519e+01 -1.406340814244217e+01 -1.407740397661280e+01 -1.409141305949836e+01 - -1.410543538386059e+01 -1.411947095729565e+01 -1.413351979216372e+01 -1.414758190504674e+01 -1.416165730817942e+01 - -1.417574599218579e+01 -1.418984794931155e+01 -1.420396319989974e+01 -1.421809176459019e+01 -1.423223363711269e+01 - -1.424638880961032e+01 -1.426055729478944e+01 -1.427473910897708e+01 -1.428893426241975e+01 -1.430314276106135e+01 - -1.431736459971596e+01 -1.433159977568000e+01 -1.434584830730895e+01 -1.436011021230267e+01 -1.437438548467938e+01 - -1.438867411856965e+01 -1.440297613223502e+01 -1.441729154417122e+01 -1.443162034967981e+01 -1.444596254173529e+01 - -1.446031812719803e+01 -1.447468711827448e+01 -1.448906953466952e+01 -1.450346539077074e+01 -1.451787467219810e+01 - -1.453229736674074e+01 -1.454673349963205e+01 -1.456118309651608e+01 -1.457564614723534e+01 -1.459012263904241e+01 - -1.460461258463169e+01 -1.461911600163362e+01 -1.463363290198108e+01 -1.464816329304780e+01 -1.466270716966852e+01 - -1.467726452861927e+01 -1.469183538698022e+01 -1.470641976118071e+01 -1.472101764474266e+01 -1.473562903182180e+01 - -1.475025394201659e+01 -1.476489239431922e+01 -1.477954437985420e+01 -1.479420988900897e+01 -1.480888893709030e+01 - -1.482358154289730e+01 -1.483828771427918e+01 -1.485300745484606e+01 -1.486774076220148e+01 -1.488248763590571e+01 - -1.489724808935241e+01 -1.491202213620220e+01 -1.492680977735018e+01 -1.494161101188853e+01 -1.495642584446314e+01 - -1.497125428281713e+01 -1.498609634152866e+01 -1.500095203243959e+01 -1.501582134961145e+01 -1.503070428834008e+01 - -1.504560086663885e+01 -1.506051110171047e+01 -1.507543498479744e+01 -1.509037250787217e+01 -1.510532369178669e+01 - -1.512028855781273e+01 -1.513526710002122e+01 -1.515025931004586e+01 -1.516526519697226e+01 -1.518028477406786e+01 - -1.519531805387558e+01 -1.521036504514735e+01 -1.522542574219565e+01 -1.524050014105165e+01 -1.525558825906066e+01 - -1.527069011317451e+01 -1.528580569745696e+01 -1.530093500454836e+01 -1.531607804428359e+01 -1.533123483115148e+01 - -1.534640538106230e+01 -1.536158970459035e+01 -1.537678778954449e+01 -1.539199962605270e+01 -1.540722523628471e+01 - -1.542246464244602e+01 -1.543771783484346e+01 -1.545298480379291e+01 -1.546826557154514e+01 -1.548356016030771e+01 - -1.549886856018057e+01 -1.551419075889859e+01 -1.552952676684366e+01 -1.554487659991805e+01 -1.556024027345857e+01 - -1.557561779759322e+01 -1.559100916218038e+01 -1.560641435912106e+01 -1.562183340875659e+01 -1.563726633124305e+01 - -1.565271311755539e+01 -1.566817375858786e+01 -1.568364827409284e+01 -1.569913668435983e+01 -1.571463898296877e+01 - -1.573015516140282e+01 -1.574568522946743e+01 -1.576122920078429e+01 -1.577678708591764e+01 -1.579235889192325e+01 - -1.580794461488044e+01 -1.582354425266206e+01 -1.583915782129173e+01 -1.585478533595468e+01 -1.587042679033195e+01 - -1.588608217713541e+01 -1.590175150670428e+01 -1.591743479377280e+01 -1.593313205302798e+01 -1.594884329356461e+01 - -1.596456850215542e+01 -1.598030766876410e+01 -1.599606081844003e+01 -1.601182797567503e+01 -1.602760912764517e+01 - -1.604340426053651e+01 -1.605921339389068e+01 -1.607503654929621e+01 -1.609087372317365e+01 -1.610672490846679e+01 - -1.612259010938000e+01 -1.613846933535691e+01 -1.615436260553746e+01 -1.617026993400350e+01 -1.618619130490810e+01 - -1.620212670496088e+01 -1.621807616102629e+01 -1.623403970021593e+01 -1.625001731047507e+01 -1.626600897617460e+01 - -1.628201470655392e+01 -1.629803451699528e+01 -1.631406842258372e+01 -1.633011643368945e+01 -1.634617854212047e+01 - -1.636225474110459e+01 -1.637834504811086e+01 -1.639444948009596e+01 -1.641056802772599e+01 -1.642670068226715e+01 - -1.644284746367691e+01 -1.645900839255391e+01 -1.647518346337059e+01 -1.649137266740475e+01 -1.650757600928198e+01 - -1.652379349905581e+01 -1.654002515514406e+01 -1.655627099138395e+01 -1.657253099492616e+01 -1.658880515436409e+01 - -1.660509349074862e+01 -1.662139602569388e+01 -1.663771275060954e+01 -1.665404365442992e+01 -1.667038874639235e+01 - -1.668674804082613e+01 -1.670312155212567e+01 -1.671950928959044e+01 -1.673591124207530e+01 -1.675232740091000e+01 - -1.676875778776886e+01 -1.678520242381186e+01 -1.680166129779755e+01 -1.681813439803682e+01 -1.683462174345131e+01 - -1.685112335404732e+01 -1.686763922355921e+01 -1.688416934305047e+01 -1.690071371917313e+01 -1.691727236387981e+01 - -1.693384529473730e+01 -1.695043252373442e+01 -1.696703403493436e+01 -1.698364981519248e+01 -1.700027989045860e+01 - -1.701692428668450e+01 -1.703358299073511e+01 -1.705025598664567e+01 -1.706694328621936e+01 -1.708364490699094e+01 - -1.710036086165371e+01 -1.711709115711999e+01 -1.713383578201967e+01 -1.715059472804424e+01 -1.716736801741393e+01 - -1.718415567151382e+01 -1.720095767785962e+01 -1.721777402421613e+01 -1.723460473321376e+01 -1.725144982735173e+01 - -1.726830929373925e+01 -1.728518311723097e+01 -1.730207130905323e+01 -1.731897388644410e+01 -1.733589086431708e+01 - -1.735282225151622e+01 -1.736976803493245e+01 -1.738672820398455e+01 -1.740370278015603e+01 -1.742069178532102e+01 - -1.743769521085149e+01 -1.745471304524893e+01 -1.747174529603476e+01 -1.748879197614670e+01 -1.750585310116775e+01 - -1.752292868122209e+01 -1.754001870195336e+01 -1.755712315207324e+01 -1.757424205704595e+01 -1.759137544124289e+01 - -1.760852328791187e+01 -1.762568558032359e+01 -1.764286234296404e+01 -1.766005360135051e+01 -1.767725934391039e+01 - -1.769447955614261e+01 -1.771171424892207e+01 -1.772896343807829e+01 -1.774622713388326e+01 -1.776350534196338e+01 - -1.778079805492016e+01 -1.779810526797336e+01 -1.781542699984077e+01 -1.783276326793605e+01 -1.785011406095838e+01 - -1.786747936642481e+01 -1.788485919583838e+01 -1.790225356596892e+01 -1.791966249066770e+01 -1.793708597750879e+01 - -1.795452401187612e+01 -1.797197658287230e+01 -1.798944371666477e+01 -1.800692543788475e+01 -1.802442172795408e+01 - -1.804193256819016e+01 -1.805945798270200e+01 -1.807699799758296e+01 -1.809455260407236e+01 -1.811212178929598e+01 - -1.812970555877947e+01 -1.814730392419934e+01 -1.816491690343573e+01 -1.818254450889657e+01 -1.820018672489731e+01 - -1.821784353770839e+01 -1.823551496951270e+01 -1.825320104351004e+01 -1.827090175105552e+01 -1.828861707995103e+01 - -1.830634703563002e+01 -1.832409162961503e+01 -1.834185088015348e+01 -1.835962479982180e+01 -1.837741337178776e+01 - -1.839521658191638e+01 -1.841303445627024e+01 -1.843086702044687e+01 -1.844871425798603e+01 -1.846657615155986e+01 - -1.848445272242748e+01 -1.850234399331442e+01 -1.852024995422484e+01 -1.853817059263430e+01 -1.855610591862525e+01 - -1.857405594751762e+01 -1.859202069297440e+01 -1.861000016303027e+01 -1.862799434486363e+01 -1.864600322762024e+01 - -1.866402682917165e+01 -1.868206516860479e+01 -1.870011824114266e+01 -1.871818603889838e+01 -1.873626856540951e+01 - -1.875436582948875e+01 -1.877247784962497e+01 -1.879060463922456e+01 -1.880874618168810e+01 -1.882690246254704e+01 - -1.884507350586227e+01 -1.886325933574866e+01 -1.888145993800745e+01 -1.889967529731236e+01 -1.891790543214035e+01 - -1.893615036295555e+01 -1.895441008436764e+01 -1.897268458788422e+01 -1.899097387845919e+01 -1.900927796546465e+01 - -1.902759686249918e+01 -1.904593057916082e+01 -1.906427910481893e+01 -1.908264243109121e+01 -1.910102057881749e+01 - -1.911941356739387e+01 -1.913782138121961e+01 -1.915624400568942e+01 -1.917468146517671e+01 -1.919313378404767e+01 - -1.921160094766128e+01 -1.923008293912871e+01 -1.924857977157690e+01 -1.926709146357444e+01 -1.928561802544077e+01 - -1.930415946120927e+01 -1.932271575801813e+01 -1.934128690695999e+01 -1.935987293184044e+01 -1.937847385553680e+01 - -1.939708966450047e+01 -1.941572034241033e+01 -1.943436589828115e+01 -1.945302634705033e+01 -1.947170170200994e+01 - -1.949039197138318e+01 -1.950909714476303e+01 -1.952781721398065e+01 -1.954655219845012e+01 -1.956530211609402e+01 - -1.958406695128608e+01 -1.960284668959667e+01 -1.962164135493148e+01 -1.964045097168231e+01 -1.965927552785040e+01 - -1.967811500826448e+01 -1.969696942145404e+01 -1.971583878200212e+01 -1.973472310500559e+01 -1.975362239928199e+01 - -1.977253664801789e+01 -1.979146583743514e+01 -1.981040999152762e+01 -1.982936913462439e+01 -1.984834325462312e+01 - -1.986733233626431e+01 -1.988633638809098e+01 -1.990535542475069e+01 -1.992438946150660e+01 -1.994343850724086e+01 - -1.996250254469571e+01 -1.998158155988759e+01 -2.000067557806942e+01 -2.001978462401460e+01 -2.003890868134189e+01 - -2.005804773353269e+01 -2.007720180467363e+01 -2.009637091866160e+01 -2.011555505802958e+01 -2.013475420367532e+01 - -2.015396837131929e+01 -2.017319758216888e+01 -2.019244184455664e+01 -2.021170116029698e+01 -2.023097551800653e+01 - -2.025026491057744e+01 -2.026956936120177e+01 -2.028888889127859e+01 -2.030822348473533e+01 -2.032757312336421e+01 - -2.034693781788847e+01 -2.036631758558183e+01 -2.038571244098909e+01 -2.040512239225047e+01 -2.042454742461679e+01 - -2.044398752597867e+01 -2.046344271767523e+01 -2.048291302072143e+01 -2.050239842138679e+01 -2.052189890581644e+01 - -2.054141449440303e+01 -2.056094520839277e+01 -2.058049103819856e+01 -2.060005197091200e+01 -2.061962801117254e+01 - -2.063921916971323e+01 -2.065882546409381e+01 -2.067844690614864e+01 -2.069808347798381e+01 -2.071773516441981e+01 - -2.073740199086278e+01 -2.075708398272239e+01 -2.077678112483692e+01 -2.079649339928443e+01 -2.081622081767353e+01 - -2.083596339752241e+01 -2.085572115045732e+01 -2.087549408142252e+01 -2.089528217452614e+01 -2.091508541798258e+01 - -2.093490383726751e+01 -2.095473745703866e+01 -2.097458626142068e+01 -2.099445023367205e+01 -2.101432939411960e+01 - -2.103422376365449e+01 -2.105413332835716e+01 -2.107405807288499e+01 -2.109399801101360e+01 -2.111395316146354e+01 - -2.113392353361706e+01 -2.115390913036233e+01 -2.117390993794961e+01 -2.119392594678185e+01 -2.121395718051052e+01 - -2.123400366165125e+01 -2.125406537492771e+01 -2.127414230292253e+01 -2.129423445744600e+01 -2.131434185603574e+01 - -2.133446450991120e+01 -2.135460242400538e+01 -2.137475558442359e+01 -2.139492398094176e+01 -2.141510763684612e+01 - -2.143530657354728e+01 -2.145552077144329e+01 -2.147575021223202e+01 -2.149599492382317e+01 -2.151625493458459e+01 - -2.153653022850520e+01 -2.155682078515937e+01 -2.157712661084235e+01 -2.159744772002078e+01 -2.161778413312624e+01 - -2.163813586321833e+01 -2.165850288790379e+01 -2.167888518769065e+01 -2.169928279014487e+01 -2.171969572392566e+01 - -2.174012397500749e+01 -2.176056752455845e+01 -2.178102637720577e+01 -2.180150054539059e+01 -2.182199004935065e+01 - -2.184249490264348e+01 -2.186301508430896e+01 -2.188355057625899e+01 -2.190410140641098e+01 -2.192466760199104e+01 - -2.194524914145450e+01 -2.196584600311797e+01 -2.198645821351363e+01 -2.200708580045210e+01 -2.202772874864248e+01 - -2.204838703903658e+01 -2.206906068065864e+01 -2.208974968965916e+01 -2.211045408262128e+01 -2.213117386881762e+01 - -2.215190902784613e+01 -2.217265954271720e+01 -2.219342543976576e+01 -2.221420674565993e+01 -2.223500344507609e+01 - -2.225581551916326e+01 -2.227664297695268e+01 -2.229748583458740e+01 -2.231834410877561e+01 -2.233921780886325e+01 - -2.236010691418214e+01 -2.238101140757746e+01 -2.240193131596196e+01 -2.242286666626994e+01 -2.244381744145418e+01 - -2.246478362333585e+01 -2.248576523319086e+01 -2.250676229308250e+01 -2.252777478876882e+01 -2.254880270395783e+01 - -2.256984605046237e+01 -2.259090484578745e+01 -2.261197910210208e+01 -2.263306882483333e+01 -2.265417399777652e+01 - -2.267529460825966e+01 -2.269643067937303e+01 -2.271758223358744e+01 -2.273874925513337e+01 -2.275993172840441e+01 - -2.278112967668665e+01 -2.280234312326570e+01 -2.282357205253301e+01 -2.284481644618636e+01 -2.286607631404299e+01 - -2.288735167241803e+01 -2.290864253549898e+01 -2.292994891082159e+01 -2.295127078144212e+01 -2.297260813386354e+01 - -2.299396099285480e+01 -2.301532938287575e+01 -2.303671328888409e+01 -2.305811269234469e+01 -2.307952760025338e+01 - -2.310095802706863e+01 -2.312240399156859e+01 -2.314386550544134e+01 -2.316534254769484e+01 -2.318683510020089e+01 - -2.320834318896662e+01 -2.322986684000025e+01 -2.325140603517923e+01 -2.327296075598023e+01 -2.329453102640753e+01 - -2.331611687084991e+01 -2.333771827270656e+01 -2.335933521295700e+01 -2.338096770389138e+01 -2.340261576396985e+01 - -2.342427940502197e+01 -2.344595863230511e+01 -2.346765343141823e+01 -2.348936379112492e+01 -2.351108973250527e+01 - -2.353283127622654e+01 -2.355458840898814e+01 -2.357636111469370e+01 -2.359814940003157e+01 -2.361995327887107e+01 - -2.364177277102066e+01 -2.366360788867084e+01 -2.368545860760097e+01 -2.370732490730504e+01 -2.372920681854641e+01 - -2.375110437181196e+01 -2.377301754521346e+01 -2.379494631547129e+01 -2.381689070611525e+01 -2.383885074279985e+01 - -2.386082641286912e+01 -2.388281770027697e+01 -2.390482461372720e+01 -2.392684716763744e+01 -2.394888537453080e+01 - -2.397093924094647e+01 -2.399300875138237e+01 -2.401509389381072e+01 -2.403719469214220e+01 -2.405931116939521e+01 - -2.408144330908079e+01 -2.410359109227195e+01 -2.412575452979684e+01 -2.414793363861520e+01 -2.417012843045825e+01 - -2.419233891107258e+01 -2.421456506749473e+01 -2.423680688969797e+01 -2.425906439811232e+01 -2.428133761196757e+01 - -2.430362651523593e+01 -2.432593109247103e+01 -2.434825136580965e+01 -2.437058735754595e+01 -2.439293905302052e+01 - -2.441530643508021e+01 -2.443768951355032e+01 -2.446008830475372e+01 -2.448250282402539e+01 -2.450493307947941e+01 - -2.452737905133441e+01 -2.454984072340254e+01 -2.457231812176549e+01 -2.459481127247106e+01 -2.461732015916192e+01 - -2.463984476198997e+01 -2.466238508954903e+01 -2.468494115731883e+01 -2.470751297988127e+01 -2.473010056541401e+01 - -2.475270389737600e+01 -2.477532296279144e+01 -2.479795778766421e+01 -2.482060839605179e+01 -2.484327476524651e+01 - -2.486595687297807e+01 -2.488865474549064e+01 -2.491136841050829e+01 -2.493409785316058e+01 -2.495684305468689e+01 - -2.497960402336061e+01 -2.500238077436705e+01 -2.502517332350563e+01 -2.504798167938967e+01 -2.507080582127416e+01 - -2.509364573240812e+01 -2.511650144137505e+01 -2.513937297643642e+01 -2.516226031923135e+01 -2.518516344740990e+01 - -2.520808236928804e+01 -2.523101710100030e+01 -2.525396765928963e+01 -2.527693405405919e+01 -2.529991626724470e+01 - -2.532291428361040e+01 -2.534592812720204e+01 -2.536895782110043e+01 -2.539200334524508e+01 -2.541506468057373e+01 - -2.543814185515816e+01 -2.546123489657537e+01 -2.548434378328921e+01 -2.550746849096137e+01 -2.553060903315797e+01 - -2.555376543163097e+01 -2.557693770297151e+01 -2.560012585444837e+01 -2.562332986120158e+01 -2.564654970308929e+01 - -2.566978541097076e+01 -2.569303701597250e+01 -2.571630449928904e+01 -2.573958783754457e+01 -2.576288703901380e+01 - -2.578620212017663e+01 -2.580953309868325e+01 -2.583287998467666e+01 -2.585624275710073e+01 -2.587962139846310e+01 - -2.590301593672573e+01 -2.592642639921134e+01 -2.594985276523152e+01 -2.597329501305775e+01 -2.599675316481207e+01 - -2.602022724494944e+01 -2.604371724340627e+01 -2.606722314554395e+01 -2.609074495294231e+01 -2.611428267453130e+01 - -2.613783633242288e+01 -2.616140594232113e+01 -2.618499148111656e+01 -2.620859292804694e+01 -2.623221031055255e+01 - -2.625584365675950e+01 -2.627949294933480e+01 -2.630315816707157e+01 -2.632683931872623e+01 -2.635053642045652e+01 - -2.637424948806206e+01 -2.639797853015353e+01 -2.642172352694394e+01 -2.644548446269175e+01 -2.646926136623515e+01 - -2.649305426487780e+01 -2.651686313520573e+01 -2.654068795336410e+01 -2.656452874445229e+01 -2.658838553565089e+01 - -2.661225831351167e+01 -2.663614706041860e+01 -2.666005178271351e+01 -2.668397249386109e+01 -2.670790921185966e+01 - -2.673186194785124e+01 -2.675583068101895e+01 -2.677981539336416e+01 -2.680381611012034e+01 -2.682783285712106e+01 - -2.685186561936856e+01 -2.687591437786270e+01 -2.689997913842517e+01 -2.692405991477839e+01 -2.694815672742597e+01 - -2.697226958936361e+01 -2.699639847677425e+01 -2.702054336911223e+01 -2.704470429573021e+01 -2.706888128546201e+01 - -2.709307431516761e+01 -2.711728336172764e+01 -2.714150845407871e+01 -2.716574962162754e+01 -2.719000684360529e+01 - -2.721428009605862e+01 -2.723856939247152e+01 -2.726287475352885e+01 -2.728719619128178e+01 -2.731153370993099e+01 - -2.733588729090867e+01 -2.736025692081293e+01 -2.738464262967399e+01 -2.740904444482641e+01 -2.743346233939021e+01 - -2.745789628706843e+01 -2.748234631811058e+01 -2.750681246441337e+01 -2.753129470791622e+01 -2.755579302585287e+01 - -2.758030742659158e+01 -2.760483792680023e+01 -2.762938454521084e+01 -2.765394729250735e+01 -2.767852614511706e+01 - -2.770312108289846e+01 -2.772773213369129e+01 -2.775235932608502e+01 -2.777700264368704e+01 -2.780166206614083e+01 - -2.782633760221619e+01 -2.785102926812099e+01 -2.787573708068912e+01 -2.790046104903706e+01 -2.792520115078565e+01 - -2.794995736764946e+01 -2.797472972921345e+01 -2.799951826412358e+01 -2.802432294939970e+01 -2.804914376169005e+01 - -2.807398072778233e+01 -2.809883387567351e+01 -2.812370318805837e+01 -2.814858864438241e+01 -2.817349025639583e+01 - -2.819840804241009e+01 -2.822334201467696e+01 -2.824829217820057e+01 -2.827325851505399e+01 -2.829824101147483e+01 - -2.832323969328987e+01 -2.834825458594292e+01 -2.837328567375688e+01 -2.839833293713809e+01 -2.842339638194745e+01 - -2.844847602232610e+01 -2.847357188008160e+01 -2.849868396869187e+01 -2.852381226064981e+01 -2.854895673259501e+01 - -2.857411741873861e+01 -2.859929435285462e+01 -2.862448750939692e+01 -2.864969686163745e+01 -2.867492243744038e+01 - -2.870016426611871e+01 -2.872542232818885e+01 -2.875069660076976e+01 -2.877598709618692e+01 -2.880129383482867e+01 - -2.882661683412842e+01 -2.885195610246809e+01 -2.887731161497835e+01 -2.890268335136361e+01 -2.892807134287440e+01 - -2.895347562064698e+01 -2.897889616381469e+01 -2.900433294736006e+01 -2.902978598166526e+01 -2.905525528595928e+01 - -2.908074087945912e+01 -2.910624277257485e+01 -2.913176094050105e+01 -2.915729536236611e+01 -2.918284606824940e+01 - -2.920841308797334e+01 -2.923399639938179e+01 -2.925959597987842e+01 -2.928521185708459e+01 -2.931084405942344e+01 - -2.933649256830759e+01 -2.936215736109871e+01 -2.938783844596477e+01 -2.941353583979598e+01 -2.943924956356517e+01 - -2.946497963001566e+01 -2.949072601489006e+01 -2.951648869675137e+01 -2.954226770244480e+01 -2.956806305999476e+01 - -2.959387475386040e+01 -2.961970276467950e+01 -2.964554710136948e+01 -2.967140778023144e+01 -2.969728481882160e+01 - -2.972317822671904e+01 -2.974908798033929e+01 -2.977501406036931e+01 -2.980095649774566e+01 -2.982691532231985e+01 - -2.985289050935425e+01 -2.987888203414534e+01 -2.990488992671488e+01 -2.993091421806754e+01 -2.995695488841446e+01 - -2.998301191396682e+01 -3.000908530572931e+01 -3.003517508294127e+01 -3.006128126298706e+01 -3.008740385472813e+01 - -3.011354283478899e+01 -3.013969818396866e+01 -3.016586993200092e+01 -3.019205810852835e+01 -3.021826269389396e+01 - -3.024448366459688e+01 -3.027072103106001e+01 -3.029697481234801e+01 -3.032324502816885e+01 -3.034953168930138e+01 - -3.037583477016444e+01 -3.040215424919064e+01 -3.042849015722735e+01 -3.045484252487287e+01 -3.048121132931426e+01 - -3.050759654718701e+01 -3.053399820633122e+01 -3.056041633582694e+01 -3.058685091850949e+01 -3.061330193277164e+01 - -3.063976938548045e+01 -3.066625329189824e+01 -3.069275367239408e+01 -3.071927054017274e+01 -3.074580387467516e+01 - -3.077235365736276e+01 -3.079891991154272e+01 -3.082550266154129e+01 -3.085210189391538e+01 -3.087871759159065e+01 - -3.090534976073683e+01 -3.093199841535169e+01 -3.095866357750086e+01 -3.098534526117247e+01 -3.101204343997652e+01 - -3.103875809113482e+01 -3.106548924669440e+01 -3.109223693806243e+01 -3.111900113926174e+01 -3.114578182447812e+01 - -3.117257902593346e+01 -3.119939277712214e+01 -3.122622305859262e+01 -3.125306984560579e+01 -3.127993314521812e+01 - -3.130681297362548e+01 -3.133370935178603e+01 -3.136062229292185e+01 -3.138755177454848e+01 -3.141449777743489e+01 - -3.144146033107010e+01 -3.146843946420585e+01 -3.149543515392452e+01 -3.152244737446985e+01 -3.154947614039987e+01 - -3.157652147508332e+01 -3.160358339681746e+01 -3.163066191390917e+01 -3.165775699977537e+01 -3.168486863280270e+01 - -3.171199684614663e+01 -3.173914167265754e+01 -3.176630308919665e+01 -3.179348107134120e+01 -3.182067564552154e+01 - -3.184788683989369e+01 -3.187511463866380e+01 -3.190235902163426e+01 -3.192961999494226e+01 -3.195689757352222e+01 - -3.198419178116283e+01 -3.201150263346307e+01 -3.203883010440887e+01 -3.206617417058478e+01 -3.209353486058297e+01 - -3.212091220418486e+01 -3.214830618392138e+01 -3.217571677868305e+01 -3.220314400004898e+01 -3.223058786708538e+01 - -3.225804839611857e+01 -3.228552559489243e+01 -3.231301943956095e+01 -3.234052991162765e+01 -3.236805704558397e+01 - -3.239560087404328e+01 -3.242316136911894e+01 -3.245073850255218e+01 -3.247833230509534e+01 -3.250594280965240e+01 - -3.253356999872297e+01 -3.256121385028732e+01 -3.258887437465276e+01 -3.261655158960600e+01 -3.264424551052439e+01 - -3.267195614529539e+01 -3.269968347425627e+01 -3.272742748229857e+01 -3.275518820008119e+01 -3.278296565603427e+01 - -3.281075982390590e+01 -3.283857067801981e+01 -3.286639824968410e+01 -3.289424257141810e+01 -3.292210362360176e+01 - -3.294998138240963e+01 -3.297787585933321e+01 -3.300578707421773e+01 -3.303371504500630e+01 -3.306165978102434e+01 - -3.308962125902853e+01 -3.311759946003357e+01 -3.314559441465483e+01 -3.317360615365304e+01 -3.320163465877013e+01 - -3.322967990687330e+01 -3.325774190434956e+01 -3.328582066713852e+01 -3.331391621987054e+01 -3.334202857831301e+01 - -3.337015771409062e+01 -3.339830360273710e+01 -3.342646627956469e+01 -3.345464577921614e+01 -3.348284207387808e+01 - -3.351105513572078e+01 -3.353928499930519e+01 -3.356753169996216e+01 -3.359579521371194e+01 -3.362407551222610e+01 - -3.365237260909204e+01 -3.368068652715969e+01 -3.370901728441355e+01 -3.373736488954338e+01 -3.376572931892538e+01 - -3.379411055342771e+01 -3.382250862419983e+01 -3.385092356238306e+01 -3.387935534880526e+01 -3.390780395979943e+01 - -3.393626940403256e+01 -3.396475169950308e+01 -3.399325086920118e+01 -3.402176692682492e+01 -3.405029984391190e+01 - -3.407884959628061e+01 -3.410741621903333e+01 -3.413599974690003e+01 -3.416460015383780e+01 -3.419321741347679e+01 - -3.422185155891206e+01 -3.425050262370409e+01 -3.427917058381036e+01 -3.430785541111823e+01 -3.433655711883738e+01 - -3.436527572977491e+01 -3.439401126380553e+01 -3.442276373145798e+01 -3.445153310880944e+01 -3.448031937598221e+01 - -3.450912256373026e+01 -3.453794270224409e+01 -3.456677976882821e+01 -3.459563373771100e+01 -3.462450462370172e+01 - -3.465339245071625e+01 -3.468229723851619e+01 -3.471121899611902e+01 -3.474015769371995e+01 -3.476911330776019e+01 - -3.479808587848705e+01 -3.482707544447295e+01 -3.485608197378501e+01 -3.488510543365825e+01 -3.491414585850467e+01 - -3.494320328527482e+01 -3.497227769389696e+01 -3.500136905869145e+01 -3.503047738856913e+01 -3.505960270226024e+01 - -3.508874502318216e+01 -3.511790436512474e+01 -3.514708069868058e+01 -3.517627399907308e+01 -3.520548430324607e+01 - -3.523471164812467e+01 -3.526395600883895e+01 -3.529321735592740e+01 -3.532249570335686e+01 -3.535179107461137e+01 - -3.538110348781549e+01 -3.541043295179184e+01 -3.543977944351469e+01 -3.546914294470585e+01 -3.549852348792567e+01 - -3.552792110371767e+01 -3.555733576371960e+01 -3.558676744035331e+01 -3.561621616808287e+01 -3.564568198278825e+01 - -3.567516486397158e+01 -3.570466478590109e+01 -3.573418175828719e+01 -3.576371580017962e+01 -3.579326693254331e+01 - -3.582283516733191e+01 -3.585242047853867e+01 -3.588202284498269e+01 -3.591164230274704e+01 -3.594127888660625e+01 - -3.597093256883734e+01 -3.600060331833949e+01 -3.603029115299790e+01 -3.605999610029281e+01 -3.608971817709886e+01 - -3.611945738978410e+01 -3.614921371329605e+01 -3.617898712799953e+01 -3.620877766734910e+01 -3.623858536391516e+01 - -3.626841019364145e+01 -3.629825213180558e+01 -3.632811120764664e+01 -3.635798745148868e+01 -3.638788084403422e+01 - -3.641779136227628e+01 -3.644771901799147e+01 -3.647766383142195e+01 -3.650762582188893e+01 -3.653760499949427e+01 - -3.656760133838370e+01 -3.659761481766282e+01 -3.662764547223315e+01 -3.665769333671685e+01 -3.668775838882340e+01 - -3.671784060113342e+01 -3.674793998262476e+01 -3.677805655273779e+01 -3.680819033636626e+01 -3.683834134900049e+01 - -3.686850956306390e+01 -3.689869495454472e+01 -3.692889755675729e+01 -3.695911740229619e+01 -3.698935446355054e+01 - -3.701960871343802e+01 -3.704988018719579e+01 -3.708016892120266e+01 -3.711047489408478e+01 -3.714079807933708e+01 - -3.717113848768184e+01 -3.720149613882988e+01 -3.723187105121882e+01 -3.726226323497034e+01 -3.729267266821555e+01 - -3.732309933333587e+01 -3.735354326170426e+01 -3.738400448395760e+01 -3.741448297879693e+01 -3.744497872108128e+01 - -3.747549172223736e+01 -3.750602200310610e+01 -3.753656958561755e+01 -3.756713448177913e+01 -3.759771666281819e+01 - -3.762831610507856e+01 -3.765893284615005e+01 -3.768956692232328e+01 -3.772021830344675e+01 -3.775088695941269e+01 - -3.778157292673024e+01 -3.781227624306894e+01 -3.784299688412320e+01 -3.787373482086582e+01 -3.790449006735824e+01 - -3.793526264738479e+01 -3.796605258053289e+01 -3.799685987630166e+01 -3.802768450803411e+01 -3.805852645435349e+01 - -3.808938575116029e+01 -3.812026243387959e+01 -3.815115647875793e+01 -3.818206785737669e+01 -3.821299658183555e+01 - -3.824394267407146e+01 -3.827490615485264e+01 -3.830588703573063e+01 -3.833688529255877e+01 -3.836790090523419e+01 - -3.839893390552727e+01 -3.842998432385276e+01 -3.846105213333004e+01 -3.849213730842061e+01 -3.852323988624988e+01 - -3.855435990371658e+01 -3.858549733414936e+01 -3.861665214665468e+01 -3.864782435702053e+01 -3.867901399128823e+01 - -3.871022106983104e+01 -3.874144560188923e+01 -3.877268755783931e+01 -3.880394691415978e+01 -3.883522371060106e+01 - -3.886651798555487e+01 -3.889782970870629e+01 -3.892915884903668e+01 -3.896050544141922e+01 -3.899186952243698e+01 - -3.902325106962145e+01 -3.905465005558139e+01 -3.908606649228560e+01 -3.911750040150871e+01 -3.914895180488885e+01 - -3.918042071436301e+01 -3.921190710320024e+01 -3.924341094905042e+01 -3.927493228575462e+01 -3.930647114756201e+01 - -3.933802751416320e+01 -3.936960136044893e+01 -3.940119269666864e+01 -3.943280154239230e+01 -3.946442791911308e+01 - -3.949607183932866e+01 -3.952773327763106e+01 -3.955941221301939e+01 -3.959110868002649e+01 -3.962282271157864e+01 - -3.965455427864192e+01 -3.968630335291520e+01 -3.971806997098832e+01 -3.974985417066340e+01 -3.978165592970123e+01 - -3.981347522024374e+01 -3.984531205199855e+01 -3.987716644515135e+01 -3.990903842423468e+01 -3.994092800366619e+01 - -3.997283515305731e+01 -4.000475984705376e+01 -4.003670212524431e+01 -4.006866202678586e+01 -4.010063952416471e+01 - -4.013263458527370e+01 -4.016464722630246e+01 -4.019667747391531e+01 -4.022872534837892e+01 -4.026079085897078e+01 - -4.029287397740929e+01 -4.032497468131004e+01 -4.035709300943645e+01 -4.038922899883853e+01 -4.042138261856475e+01 - -4.045355383733334e+01 -4.048574269054266e+01 -4.051794921541258e+01 -4.055017338976896e+01 -4.058241518694505e+01 - -4.061467462169752e+01 -4.064695171778673e+01 -4.067924649356458e+01 -4.071155895737036e+01 -4.074388908290122e+01 - -4.077623684962312e+01 -4.080860229471885e+01 -4.084098545450960e+01 -4.087338630415373e+01 -4.090580481395003e+01 - -4.093824099592192e+01 -4.097069487270115e+01 -4.100316646762842e+01 -4.103565579436854e+01 -4.106816282717386e+01 - -4.110068754422534e+01 -4.113322997883087e+01 -4.116579016300655e+01 -4.119836806847471e+01 -4.123096366815907e+01 - -4.126357700008218e+01 -4.129620810254014e+01 -4.132885694982463e+01 -4.136152351139461e+01 -4.139420780138244e+01 - -4.142690984447184e+01 -4.145962966287846e+01 -4.149236726828771e+01 -4.152512263273182e+01 -4.155789573295193e+01 - -4.159068660417814e+01 -4.162349528189675e+01 -4.165632174413023e+01 -4.168916596438000e+01 -4.172202795552684e+01 - -4.175490773972726e+01 -4.178780533686147e+01 -4.182072075745918e+01 -4.185365397692470e+01 -4.188660497553830e+01 - -4.191957378820953e+01 -4.195256044830271e+01 -4.198556492837179e+01 -4.201858720098863e+01 -4.205162729960676e+01 - -4.208468525919077e+01 -4.211776105986812e+01 -4.215085467691669e+01 -4.218396612105321e+01 -4.221709541226407e+01 - -4.225024257217616e+01 -4.228340761361360e+01 -4.231659051254899e+01 -4.234979124870078e+01 -4.238300985362200e+01 - -4.241624635885866e+01 -4.244950074409413e+01 -4.248277298525672e+01 -4.251606309511715e+01 -4.254937109530931e+01 - -4.258269700607782e+01 -4.261604083828603e+01 -4.264940256666174e+01 -4.268278217100897e+01 -4.271617968757233e+01 - -4.274959515039267e+01 -4.278302852825576e+01 -4.281647979114838e+01 -4.284994897911630e+01 -4.288343613339240e+01 - -4.291694122989936e+01 -4.295046423857267e+01 -4.298400517070971e+01 -4.301756404788966e+01 -4.305114089145757e+01 - -4.308473571388112e+01 -4.311834849235274e+01 -4.315197920801049e+01 -4.318562789305037e+01 -4.321929457904871e+01 - -4.325297924404543e+01 -4.328668186207582e+01 -4.332040244469275e+01 -4.335414101381126e+01 -4.338789759527743e+01 - -4.342167220389723e+01 -4.345546480638487e+01 -4.348927537558045e+01 -4.352310395691921e+01 -4.355695059370569e+01 - -4.359081524812669e+01 -4.362469788222823e+01 -4.365859853861065e+01 -4.369251726260594e+01 -4.372645402991838e+01 - -4.376040880917880e+01 -4.379438161035186e+01 -4.382837245512241e+01 -4.386238137072252e+01 -4.389640837367813e+01 - -4.393045343214298e+01 -4.396451651875527e+01 -4.399859767246311e+01 -4.403269693263155e+01 -4.406681427398399e+01 - -4.410094966630350e+01 -4.413510312425358e+01 -4.416927467295284e+01 -4.420346433446015e+01 -4.423767212069691e+01 - -4.427189800609401e+01 -4.430614196966567e+01 -4.434040404624994e+01 -4.437468426893484e+01 -4.440898260798443e+01 - -4.444329903479183e+01 -4.447763358808973e+01 -4.451198630763288e+01 -4.454635716992501e+01 -4.458074614621454e+01 - -4.461515324997958e+01 -4.464957850449220e+01 -4.468402192997090e+01 -4.471848353715485e+01 -4.475296330191956e+01 - -4.478746120505344e+01 -4.482197728186011e+01 -4.485651156648301e+01 -4.489106403390974e+01 -4.492563465506775e+01 - -4.496022344379944e+01 -4.499483042484561e+01 -4.502945562362576e+01 -4.506409905435962e+01 -4.509876068578905e+01 - -4.513344049220396e+01 -4.516813851556444e+01 -4.520285479589762e+01 -4.523758929782897e+01 -4.527234198687941e+01 - -4.530711290755342e+01 -4.534190210524451e+01 -4.537670954991925e+01 -4.541153520580425e+01 -4.544637908959269e+01 - -4.548124122972980e+01 -4.551612164920255e+01 -4.555102035951307e+01 -4.558593733168242e+01 -4.562087254236648e+01 - -4.565582603124118e+01 -4.569079783605451e+01 -4.572578792382265e+01 -4.576079626235065e+01 -4.579582289333027e+01 - -4.583086785976433e+01 -4.586593113601344e+01 -4.590101269036680e+01 -4.593611253546989e+01 -4.597123069530716e+01 - -4.600636719486254e+01 -4.604152204856955e+01 -4.607669522766013e+01 -4.611188670797630e+01 -4.614709652700154e+01 - -4.618232472227299e+01 -4.621757126990104e+01 -4.625283614113306e+01 -4.628811934919114e+01 -4.632342091751210e+01 - -4.635874086841728e+01 -4.639407921460932e+01 -4.642943593143147e+01 -4.646481099859044e+01 -4.650020445060623e+01 - -4.653561632090474e+01 -4.657104658372261e+01 -4.660649521327068e+01 -4.664196224284595e+01 -4.667744770698098e+01 - -4.671295158606459e+01 -4.674847385553061e+01 -4.678401452513644e+01 -4.681957361522331e+01 -4.685515115414413e+01 - -4.689074715945064e+01 -4.692636159747788e+01 -4.696199443933372e+01 -4.699764572643400e+01 -4.703331550121288e+01 - -4.706900373987032e+01 -4.710471041222129e+01 -4.714043552877479e+01 -4.717617911151273e+01 -4.721194118761495e+01 - -4.724772177397794e+01 -4.728352084116666e+01 -4.731933836391387e+01 -4.735517437995513e+01 -4.739102892624472e+01 - -4.742690197360956e+01 -4.746279349304486e+01 -4.749870352234630e+01 -4.753463210070628e+01 -4.757057920610364e+01 - -4.760654481072343e+01 -4.764252892478859e+01 -4.767853156968457e+01 -4.771455277340900e+01 -4.775059255327958e+01 - -4.778665087728216e+01 -4.782272771801416e+01 -4.785882311585065e+01 -4.789493711157514e+01 -4.793106967982698e+01 - -4.796722079021173e+01 -4.800339045834357e+01 -4.803957871014897e+01 -4.807578556679541e+01 -4.811201103905631e+01 - -4.814825510088780e+01 -4.818451773166895e+01 -4.822079896928767e+01 -4.825709884980719e+01 -4.829341734348342e+01 - -4.832975442115909e+01 -4.836611012183125e+01 -4.840248448526336e+01 -4.843887748613056e+01 -4.847528909416636e+01 - -4.851171932442625e+01 -4.854816820273300e+01 -4.858463575265701e+01 -4.862112198691646e+01 -4.865762687707282e+01 - -4.869415040003414e+01 -4.873069259525141e+01 -4.876725350118260e+01 -4.880383308977095e+01 -4.884043132904604e+01 - -4.887704823789731e+01 -4.891368384608068e+01 -4.895033817595851e+01 -4.898701123776245e+01 -4.902370300059485e+01 - -4.906041344002308e+01 -4.909714259860375e+01 -4.913389051725400e+01 -4.917065716334413e+01 -4.920744250429804e+01 - -4.924424658130064e+01 -4.928106943700116e+01 -4.931791104614518e+01 -4.935477137752828e+01 -4.939165044404930e+01 - -4.942854827009338e+01 -4.946546488188807e+01 -4.950240029454247e+01 -4.953935447684974e+01 -4.957632740294361e+01 - -4.961331911463601e+01 -4.965032965315336e+01 -4.968735898970213e+01 -4.972440709120082e+01 -4.976147397743583e+01 - -4.979855967878247e+01 -4.983566421510402e+01 -4.987278759472007e+01 -4.990992979028766e+01 -4.994709078100569e+01 - -4.998427060790318e+01 -5.002146930959274e+01 -5.005868685319148e+01 -5.009592320640078e+01 -5.013317841075434e+01 - -5.017045250915469e+01 -5.020774547614742e+01 -5.024505728017924e+01 -5.028238793365752e+01 -5.031973746104961e+01 - -5.035710589110189e+01 -5.039449324090066e+01 -5.043189947661289e+01 -5.046932456973549e+01 -5.050676856400442e+01 - -5.054423150327239e+01 -5.058171335962052e+01 -5.061921409929316e+01 -5.065673373695915e+01 -5.069427229950105e+01 - -5.073182981423184e+01 -5.076940629607507e+01 -5.080700170996615e+01 -5.084461602753602e+01 -5.088224929718589e+01 - -5.091990156525010e+01 -5.095757279302548e+01 -5.099526294209112e+01 -5.103297206019221e+01 -5.107070019605169e+01 - -5.110844731613729e+01 -5.114621338143406e+01 -5.118399841325091e+01 -5.122180244526444e+01 -5.125962550029841e+01 - -5.129746758802490e+01 -5.133532867636215e+01 -5.137320874011100e+01 -5.141110782335645e+01 -5.144902596945006e+01 - -5.148696314952589e+01 -5.152491932947918e+01 -5.156289452646703e+01 -5.160088876945014e+01 -5.163890208334180e+01 - -5.167693448081514e+01 -5.171498592963017e+01 -5.175305640369855e+01 -5.179114594645165e+01 -5.182925460014935e+01 - -5.186738233284598e+01 -5.190552911234031e+01 -5.194369497961412e+01 -5.198187997663295e+01 -5.202008407611459e+01 - -5.205830724580739e+01 -5.209654950282933e+01 -5.213481087573764e+01 -5.217309138947744e+01 -5.221139105690054e+01 - -5.224970984609732e+01 -5.228804773087789e+01 -5.232640475269200e+01 -5.236478095346914e+01 -5.240317630941821e+01 - -5.244159079031952e+01 -5.248002440595931e+01 -5.251847717885386e+01 -5.255694914243367e+01 -5.259544031823210e+01 - -5.263395066927961e+01 -5.267248016335085e+01 -5.271102884570031e+01 -5.274959676081755e+01 -5.278818387265291e+01 - -5.282679014593192e+01 -5.286541562901994e+01 -5.290406037048660e+01 -5.294272433607927e+01 -5.298140748616263e+01 - -5.302010984239256e+01 -5.305883143892672e+01 -5.309757229863885e+01 -5.313633243133304e+01 -5.317511180581835e+01 - -5.321391039785607e+01 -5.325272825201081e+01 -5.329156541074357e+01 -5.333042183929739e+01 -5.336929750308754e+01 - -5.340819244543594e+01 -5.344710671111962e+01 -5.348604027282968e+01 -5.352499309722418e+01 -5.356396519891433e+01 - -5.360295660504364e+01 -5.364196734493171e+01 -5.368099743556814e+01 -5.372004684244607e+01 -5.375911553606044e+01 - -5.379820355840945e+01 -5.383731095277006e+01 -5.387643769603123e+01 -5.391558375867469e+01 -5.395474915194053e+01 - -5.399393389872404e+01 -5.403313802778240e+01 -5.407236155707715e+01 -5.411160445552515e+01 -5.415086669663323e+01 - -5.419014832131279e+01 -5.422944936941720e+01 -5.426876980916325e+01 -5.430810960961936e+01 -5.434746881489674e+01 - -5.438684746929877e+01 -5.442624554285502e+01 -5.446566300018413e+01 -5.450509985853421e+01 -5.454455614758906e+01 - -5.458403189414573e+01 -5.462352711279953e+01 -5.466304177222543e+01 -5.470257584656953e+01 -5.474212937778257e+01 - -5.478170240720980e+01 -5.482129490597043e+01 -5.486090684084346e+01 -5.490053823147309e+01 -5.494018910890276e+01 - -5.497985949690793e+01 -5.501954940653937e+01 -5.505925880521750e+01 -5.509898766755921e+01 -5.513873604059781e+01 - -5.517850396943321e+01 -5.521829141901578e+01 -5.525809835354192e+01 -5.529792481434151e+01 -5.533777084523449e+01 - -5.537763642286803e+01 -5.541752151714192e+01 -5.545742613813913e+01 -5.549735030880384e+01 -5.553729406334213e+01 - -5.557725742375872e+01 -5.561724035199087e+01 -5.565724281465346e+01 -5.569726485713910e+01 -5.573730652628086e+01 - -5.577736779589668e+01 -5.581744863307357e+01 -5.585754905099014e+01 -5.589766907536871e+01 -5.593780873601526e+01 - -5.597796805069111e+01 -5.601814698489535e+01 -5.605834550959182e+01 -5.609856366986563e+01 -5.613880151023810e+01 - -5.617905899885479e+01 -5.621933610311022e+01 -5.625963286377015e+01 -5.629994932270948e+01 -5.634028545286861e+01 - -5.638064122221132e+01 -5.642101664772899e+01 -5.646141175844968e+01 -5.650182658252075e+01 -5.654226113528433e+01 - -5.658271538174220e+01 -5.662318929319503e+01 -5.666368291647893e+01 -5.670419629786259e+01 -5.674472940580990e+01 - -5.678528220346420e+01 -5.682585471049146e+01 -5.686644695909487e+01 -5.690705897510426e+01 -5.694769077129006e+01 - -5.698834231455854e+01 -5.702901357847642e+01 -5.706970460911611e+01 -5.711041545084194e+01 -5.715114606868026e+01 - -5.719189642778805e+01 -5.723266657318249e+01 -5.727345655110785e+01 -5.731426633285666e+01 -5.735509588339112e+01 - -5.739594521730356e+01 -5.743681436264626e+01 -5.747770335168147e+01 -5.751861220364783e+01 -5.755954088147938e+01 - -5.760048935348805e+01 -5.764145766580183e+01 -5.768244586550730e+01 -5.772345392571002e+01 -5.776448181276131e+01 - -5.780552953997691e+01 -5.784659713354442e+01 -5.788768462417462e+01 -5.792879202998626e+01 -5.796991931420698e+01 - -5.801106644664837e+01 -5.805223347834903e+01 -5.809342045860209e+01 -5.813462734849197e+01 -5.817585410820936e+01 - -5.821710078257841e+01 -5.825836741928538e+01 -5.829965399283203e+01 -5.834096047087346e+01 -5.838228686686274e+01 - -5.842363320676851e+01 -5.846499952082397e+01 -5.850638582715609e+01 -5.854779209120221e+01 -5.858921828442874e+01 - -5.863066445510763e+01 -5.867213065032231e+01 -5.871361683559694e+01 -5.875512297138874e+01 -5.879664907944645e+01 - -5.883819519466417e+01 -5.887976134322624e+01 -5.892134753756825e+01 -5.896295374384051e+01 -5.900457993500612e+01 - -5.904622615756436e+01 -5.908789245663575e+01 -5.912957879828990e+01 -5.917128514850664e+01 -5.921301155195771e+01 - -5.925475805384439e+01 -5.929652462279476e+01 -5.933831122286624e+01 -5.938011787640643e+01 -5.942194461763230e+01 - -5.946379146994821e+01 -5.950565844408734e+01 -5.954754551091072e+01 -5.958945264733813e+01 -5.963137989439624e+01 - -5.967332729249499e+01 -5.971529481547052e+01 -5.975728243227523e+01 -5.979929015889982e+01 -5.984131802305070e+01 - -5.988336605225896e+01 -5.992543426246962e+01 -5.996752262345901e+01 -6.000963111046766e+01 -6.005175976676178e+01 - -6.009390863383608e+01 -6.013607767807394e+01 -6.017826686618813e+01 -6.022047624132026e+01 -6.026270584835797e+01 - -6.030495566274465e+01 -6.034722565381767e+01 -6.038951583593452e+01 -6.043182623512069e+01 -6.047415687905394e+01 - -6.051650778421003e+01 -6.055887892060463e+01 -6.060127026325783e+01 -6.064368185366749e+01 -6.068611373308907e+01 - -6.072856587533070e+01 -6.077103824887340e+01 -6.081353086833690e+01 -6.085604376132918e+01 -6.089857696127247e+01 - -6.094113048823596e+01 -6.098370430306234e+01 -6.102629837247437e+01 -6.106891274594116e+01 -6.111154747264118e+01 - -6.115420251784390e+01 -6.119687784580902e+01 -6.123957350066591e+01 -6.128228952841628e+01 -6.132502590268162e+01 - -6.136778259056138e+01 -6.141055960544676e+01 -6.145335697380811e+01 -6.149617472814099e+01 -6.153901288864162e+01 - -6.158187142028389e+01 -6.162475029314290e+01 -6.166764955292113e+01 -6.171056924466600e+01 -6.175350933517737e+01 - -6.179646979123154e+01 -6.183945065775757e+01 -6.188245198047678e+01 -6.192547373012725e+01 -6.196851587175868e+01 - -6.201157842265037e+01 -6.205466141333163e+01 -6.209776487510229e+01 -6.214088882566958e+01 -6.218403322759970e+01 - -6.222719804958889e+01 -6.227038333999444e+01 -6.231358914752139e+01 -6.235681544260558e+01 -6.240006218936849e+01 - -6.244332940494305e+01 -6.248661712010740e+01 -6.252992536720910e+01 -6.257325416420860e+01 -6.261660346994837e+01 - -6.265997325077347e+01 -6.270336356215701e+01 -6.274677445777788e+01 -6.279020589501037e+01 -6.283365783085999e+01 - -6.287713031716163e+01 -6.292062340781234e+01 -6.296413707012920e+01 -6.300767126475596e+01 -6.305122601222295e+01 - -6.309480134635203e+01 -6.313839729424505e+01 -6.318201386936521e+01 -6.322565103734121e+01 -6.326930877093868e+01 - -6.331298711930568e+01 -6.335668613058504e+01 -6.340040577251647e+01 -6.344414600718050e+01 -6.348790685442323e+01 - -6.353168834759008e+01 -6.357549051625812e+01 -6.361931337593239e+01 -6.366315688959789e+01 -6.370702102749119e+01 - -6.375090584137499e+01 -6.379481138078580e+01 -6.383873760482961e+01 -6.388268447297220e+01 -6.392665203654889e+01 - -6.397064034897519e+01 -6.401464938011861e+01 -6.405867909237229e+01 -6.410272950177993e+01 -6.414680063823367e+01 - -6.419089253336912e+01 -6.423500520539493e+01 -6.427913861706836e+01 -6.432329273774181e+01 -6.436746761859949e+01 - -6.441166331065573e+01 -6.445587978241413e+01 -6.450011699516882e+01 -6.454437496388719e+01 -6.458865371852110e+01 - -6.463295329528786e+01 -6.467727371608086e+01 -6.472161493923234e+01 -6.476597692945877e+01 -6.481035974057480e+01 - -6.485476342551981e+01 -6.489918794463497e+01 -6.494363325783405e+01 -6.498809941591921e+01 -6.503258647107099e+01 - -6.507709439009531e+01 -6.512162313341831e+01 -6.516617272132122e+01 -6.521074318787740e+01 -6.525533456247440e+01 - -6.529994686059398e+01 -6.534458004678092e+01 -6.538923409250538e+01 -6.543390904787570e+01 -6.547860496211884e+01 - -6.552332180229843e+01 -6.556805952953434e+01 -6.561281816333469e+01 -6.565759773746066e+01 -6.570239828429803e+01 - -6.574721982146080e+01 -6.579206230885156e+01 -6.583692571363754e+01 -6.588181008975629e+01 -6.592671548982709e+01 - -6.597164187442638e+01 -6.601658920334479e+01 -6.606155752527242e+01 -6.610654689090467e+01 -6.615155727005924e+01 - -6.619658862652422e+01 -6.624164098084657e+01 -6.628671436645676e+01 -6.633180881156068e+01 -6.637692433038681e+01 - -6.642206088647883e+01 -6.646721845110714e+01 -6.651239707713407e+01 -6.655759681603797e+01 -6.660281763216933e+01 - -6.664805948389387e+01 -6.669332239276561e+01 -6.673860639512726e+01 -6.678391152328841e+01 -6.682923779433044e+01 - -6.687458516845543e+01 -6.691995361277515e+01 -6.696534317891920e+01 -6.701075391795754e+01 -6.705618579420361e+01 - -6.710163877100581e+01 -6.714711289460833e+01 -6.719260821321966e+01 -6.723812470001026e+01 -6.728366232121398e+01 - -6.732922109035582e+01 -6.737480103488133e+01 -6.742040219062761e+01 -6.746602458035952e+01 -6.751166816616187e+01 - -6.755733291529161e+01 -6.760301887637438e+01 -6.764872609859751e+01 -6.769445455202660e+01 -6.774020420051386e+01 - -6.778597506217976e+01 -6.783176716876942e+01 -6.787758055225885e+01 -6.792341523092826e+01 -6.796927116804379e+01 - -6.801514833341810e+01 -6.806104677806347e+01 -6.810696655123587e+01 -6.815290761396663e+01 -6.819886992772128e+01 - -6.824485354392678e+01 -6.829085851532395e+01 -6.833688480994840e+01 -6.838293238885097e+01 -6.842900126984890e+01 - -6.847509148538957e+01 -6.852120306967514e+01 -6.856733604269469e+01 -6.861349036583006e+01 -6.865966600658993e+01 - -6.870586301559659e+01 -6.875208144399036e+01 -6.879832126187024e+01 -6.884458243234171e+01 -6.889086497157696e+01 - -6.893716890990422e+01 -6.898349428120915e+01 -6.902984110598732e+01 -6.907620934761650e+01 -6.912259897511596e+01 - -6.916901003718877e+01 -6.921544258172949e+01 -6.926189657371528e+01 -6.930837197817074e+01 -6.935486884322755e+01 - -6.940138721768092e+01 -6.944792706987337e+01 -6.949448836290087e+01 -6.954107111932564e+01 -6.958767537490402e+01 - -6.963430115870300e+01 -6.968094848498497e+01 -6.972761731548312e+01 -6.977430762020695e+01 -6.982101945480034e+01 - -6.986775287255249e+01 -6.991450783170005e+01 -6.996128429032680e+01 -7.000808230095708e+01 -7.005490191787665e+01 - -7.010174310797666e+01 -7.014860583121035e+01 -7.019549010717337e+01 -7.024239597049470e+01 -7.028932345629492e+01 - -7.033627258446040e+01 -7.038324331344937e+01 -7.043023560838913e+01 -7.047724952251053e+01 -7.052428510987777e+01 - -7.057134233978515e+01 -7.061842117397924e+01 -7.066552162878578e+01 -7.071264373512433e+01 -7.075978752771100e+01 - -7.080695302731498e+01 -7.085414019512091e+01 -7.090134899910394e+01 -7.094857949398551e+01 -7.099583173235354e+01 - -7.104310567151599e+01 -7.109040126922885e+01 -7.113771858031990e+01 -7.118505766125368e+01 -7.123241847797109e+01 - -7.127980098937178e+01 -7.132720521671429e+01 -7.137463119544236e+01 -7.142207895538176e+01 -7.146954851252747e+01 - -7.151703983316882e+01 -7.156455289009196e+01 -7.161208773177542e+01 -7.165964440570248e+01 -7.170722287968356e+01 - -7.175482311646741e+01 -7.180244513822917e+01 -7.185008898098621e+01 -7.189775467669884e+01 -7.194544224180910e+01 - -7.199315163474331e+01 -7.204088282234626e+01 -7.208863586315185e+01 -7.213641081375658e+01 -7.218420763131780e+01 - -7.223202627227879e+01 -7.227986678966526e+01 -7.232772923884254e+01 -7.237561358795277e+01 -7.242351979769759e+01 - -7.247144788623903e+01 -7.251939788668284e+01 -7.256736983444897e+01 -7.261536375015235e+01 -7.266337959287341e+01 - -7.271141732841731e+01 -7.275947701102203e+01 -7.280755869538000e+01 -7.285566234956853e+01 -7.290378793432680e+01 - -7.295193546765573e+01 -7.300010498266862e+01 -7.304829651566631e+01 -7.309651008753943e+01 -7.314474565435016e+01 - -7.319300317971540e+01 -7.324128272229925e+01 -7.328958433981238e+01 -7.333790799110540e+01 -7.338625363374130e+01 - -7.343462131899291e+01 -7.348301110053259e+01 -7.353142294792167e+01 -7.357985682361442e+01 -7.362831274574745e+01 - -7.367679074711965e+01 -7.372529086349638e+01 -7.377381311579366e+01 -7.382235746256312e+01 -7.387092386912651e+01 - -7.391951239025020e+01 -7.396812308115555e+01 -7.401675590943988e+01 -7.406541083531380e+01 -7.411408787706513e+01 - -7.416278706814910e+01 -7.421150844461324e+01 -7.426025202733783e+01 -7.430901777394124e+01 -7.435780564940528e+01 - -7.440661571142732e+01 -7.445544801616209e+01 -7.450430252087864e+01 -7.455317918285648e+01 -7.460207805830268e+01 - -7.465099920497126e+01 -7.469994258787753e+01 -7.474890816454140e+01 -7.479789595523943e+01 -7.484690599592756e+01 - -7.489593832252380e+01 -7.494499295533201e+01 -7.499406985223764e+01 -7.504316897827101e+01 -7.509229038945979e+01 - -7.514143414169166e+01 -7.519060019929748e+01 -7.523978851997632e+01 -7.528899912645726e+01 -7.533823205657275e+01 - -7.538748734353926e+01 -7.543676500532445e+01 -7.548606500351643e+01 -7.553538730703876e+01 -7.558473197053598e+01 - -7.563409904619321e+01 -7.568348849063742e+01 -7.573290026170078e+01 -7.578233441759443e+01 -7.583179101796470e+01 - -7.588127002782028e+01 -7.593077140392674e+01 -7.598029516471465e+01 -7.602984134475692e+01 -7.607940998153097e+01 - -7.612900109746634e+01 -7.617861465189691e+01 -7.622825061065345e+01 -7.627790902865043e+01 -7.632758996032740e+01 - -7.637729336914126e+01 -7.642701921265419e+01 -7.647676751583191e+01 -7.652653831849052e+01 -7.657633165244424e+01 - -7.662614753370475e+01 -7.667598592307560e+01 -7.672584678949215e+01 -7.677573018962489e+01 -7.682563617769370e+01 - -7.687556471038147e+01 -7.692551574474433e+01 -7.697548933686781e+01 -7.702548554509247e+01 -7.707550433774978e+01 - -7.712554567498073e+01 -7.717560957417300e+01 -7.722569606768573e+01 -7.727580519051753e+01 -7.732593696392289e+01 - -7.737609135154067e+01 -7.742626832278943e+01 -7.747646792782194e+01 -7.752669021677298e+01 -7.757693515897095e+01 - -7.762720271798948e+01 -7.767749291518889e+01 -7.772780578562232e+01 -7.777814136132783e+01 -7.782849965970544e+01 - -7.787888064261847e+01 -7.792928427988689e+01 -7.797971062869398e+01 -7.803015974345008e+01 -7.808063158011076e+01 - -7.813112609521906e+01 -7.818164334612277e+01 -7.823218339188995e+01 -7.828274619766600e+01 -7.833333172107952e+01 - -7.838393998361434e+01 -7.843457102192369e+01 -7.848522486948340e+01 -7.853590154498607e+01 -7.858660101116894e+01 - -7.863732323758104e+01 -7.868806827697425e+01 -7.873883618163512e+01 -7.878962691878654e+01 -7.884044044940295e+01 - -7.889127679452803e+01 -7.894213598992800e+01 -7.899301807018992e+01 -7.904392305456564e+01 -7.909485090214494e+01 - -7.914580158005610e+01 -7.919677514774288e+01 -7.924777166238927e+01 -7.929879107982515e+01 -7.934983335558289e+01 - -7.940089854535901e+01 -7.945198670709752e+01 -7.950309780756868e+01 -7.955423180605224e+01 -7.960538872303847e+01 - -7.965656859466247e+01 -7.970777145842827e+01 -7.975899733555858e+01 -7.981024618078136e+01 -7.986151795697417e+01 - -7.991281272610696e+01 -7.996413054847572e+01 -8.001547137858779e+01 -8.006683517069925e+01 -8.011822198384908e+01 - -8.016963187855384e+01 -8.022106481645797e+01 -8.027252075224854e+01 -8.032399971165485e+01 -8.037550173585385e+01 - -8.042702685677139e+01 -8.047857509055929e+01 -8.053014639952434e+01 -8.058174075328817e+01 -8.063335820457638e+01 - -8.068499880610621e+01 -8.073666252745771e+01 -8.078834933088126e+01 -8.084005923244513e+01 -8.089179226408041e+01 - -8.094354846735196e+01 -8.099532786819320e+01 -8.104713042037783e+01 -8.109895608507813e+01 -8.115080492521992e+01 - -8.120267700205356e+01 -8.125457226837462e+01 -8.130649067623317e+01 -8.135843228315183e+01 -8.141039715010918e+01 - -8.146238524643556e+01 -8.151439653208425e+01 -8.156643102114791e+01 -8.161848874447259e+01 -8.167056974577932e+01 - -8.172267405314662e+01 -8.177480161920819e+01 -8.182695240289546e+01 -8.187912646377457e+01 -8.193132386298609e+01 - -8.198354456733288e+01 -8.203578853472443e+01 -8.208805578183410e+01 -8.214034634197473e+01 -8.219266025625411e+01 - -8.224499755029157e+01 -8.229735817995817e+01 -8.234974210798764e+01 -8.240214939431286e+01 -8.245458009683706e+01 - -8.250703416814667e+01 -8.255951156203467e+01 -8.261201234243612e+01 -8.266453657428882e+01 -8.271708421639993e+01 - -8.276965521981012e+01 -8.282224961062391e+01 -8.287486743131451e+01 -8.292750871476633e+01 -8.298017347733835e+01 - -8.303286167887651e+01 -8.308557328775250e+01 -8.313830836295337e+01 -8.319106696215761e+01 -8.324384904719405e+01 - -8.329665457280116e+01 -8.334948356120523e+01 -8.340233605179664e+01 -8.345521208513452e+01 -8.350811168407860e+01 - -8.356103479952203e+01 -8.361398139085040e+01 -8.366695152338559e+01 -8.371994526125894e+01 -8.377296255790387e+01 - -8.382600336547402e+01 -8.387906774170159e+01 -8.393215574692768e+01 -8.398526734635097e+01 -8.403840249721476e+01 - -8.409156122008268e+01 -8.414474355213920e+01 -8.419794953373223e+01 -8.425117918830632e+01 -8.430443246852916e+01 - -8.435770933516140e+01 -8.441100985211256e+01 -8.446433408298962e+01 -8.451768198704093e+01 -8.457105351533237e+01 - -8.462444869055821e+01 -8.467786755329161e+01 -8.473131014399300e+01 -8.478477648534972e+01 -8.483826652906932e+01 - -8.489178023573824e+01 -8.494531767243778e+01 -8.499887890373510e+01 -8.505246387764603e+01 -8.510607254206460e+01 - -8.515970496094809e+01 -8.521336120130535e+01 -8.526704122628841e+01 -8.532074498941530e+01 -8.537447250952404e+01 - -8.542822382319736e+01 -8.548199897267675e+01 -8.553579798342942e+01 -8.558962080816578e+01 -8.564346740685433e+01 - -8.569733784125194e+01 -8.575123217367282e+01 -8.580515036687339e+01 -8.585909237532205e+01 -8.591305821989287e+01 - -8.596704793875205e+01 -8.602106157282915e+01 -8.607509914567974e+01 -8.612916060859980e+01 -8.618324592155754e+01 - -8.623735515146925e+01 -8.629148836331387e+01 -8.634564550737286e+01 -8.639982653295500e+01 -8.645403150017543e+01 - -8.650826047252751e+01 -8.656251341621210e+01 -8.661679028858919e+01 -8.667109110894766e+01 -8.672541591317201e+01 - -8.677976474159972e+01 -8.683413761829634e+01 -8.688853449778628e+01 -8.694295534179228e+01 -8.699740021037117e+01 - -8.705186916402354e+01 -8.710636216669133e+01 -8.716087917454270e+01 -8.721542020920894e+01 -8.726998530877070e+01 - -8.732457451164281e+01 -8.737918783967393e+01 -8.743382524811331e+01 -8.748848670054353e+01 -8.754317226047976e+01 - -8.759788198894785e+01 -8.765261583708421e+01 -8.770737375634857e+01 -8.776215580938322e+01 -8.781696206132678e+01 - -8.787179247612183e+01 -8.792664700860111e+01 -8.798152567835336e+01 -8.803642852212045e+01 -8.809135558050070e+01 - -8.814630687756171e+01 -8.820128236739042e+01 -8.825628201129771e+01 -8.831130586947003e+01 -8.836635400284558e+01 - -8.842142637649435e+01 -8.847652294770472e+01 -8.853164373850628e+01 -8.858678878695027e+01 -8.864195813043362e+01 - -8.869715178945941e+01 -8.875236971760948e+01 -8.880761187808301e+01 -8.886287833946902e+01 -8.891816916696094e+01 - -8.897348430677987e+01 -8.902882370531137e+01 -8.908418742857141e+01 -8.913957554536425e+01 -8.919498801601753e+01 - -8.925042479199006e+01 -8.930588589774098e+01 -8.936137137472512e+01 -8.941688125937962e+01 -8.947241557120560e+01 - -8.952797426697802e+01 -8.958355731201681e+01 -8.963916476854843e+01 -8.969479669732335e+01 -8.975045305628245e+01 - -8.980613379692392e+01 -8.986183894778455e+01 -8.991756855389235e+01 -8.997332264920152e+01 -9.002910125051302e+01 - -9.008490431708829e+01 -9.014073181666647e+01 -9.019658380843681e+01 -9.025246034941333e+01 -9.030836139645970e+01 - -9.036428690661128e+01 -9.042023693773967e+01 -9.047621154925669e+01 -9.053221070589892e+01 -9.058823436476921e+01 - -9.064428254711031e+01 -9.070035529106499e+01 -9.075645263823618e+01 -9.081257461289793e+01 -9.086872116654884e+01 - -9.092489225918972e+01 -9.098108795760594e+01 -9.103730832657459e+01 -9.109355331605536e+01 -9.114982287548730e+01 - -9.120611706704364e+01 -9.126243595579022e+01 -9.131877950563008e+01 -9.137514767186437e+01 -9.143154047654943e+01 - -9.148795795857168e+01 -9.154440015738282e+01 -9.160086709537343e+01 -9.165735872612346e+01 -9.171387501169491e+01 - -9.177041601688784e+01 -9.182698180564800e+01 -9.188357233576582e+01 -9.194018755741556e+01 -9.199682749646104e+01 - -9.205349219658670e+01 -9.211018169707003e+01 -9.216689601912306e+01 -9.222363511610273e+01 -9.228039895018067e+01 - -9.233718758664240e+01 -9.239400108840672e+01 -9.245083940581294e+01 -9.250770248979978e+01 -9.256459040628322e+01 - -9.262150322244982e+01 -9.267844089559186e+01 -9.273540337476760e+01 -9.279239068599267e+01 -9.284940287335907e+01 - -9.290643997630693e+01 -9.296350201607783e+01 -9.302058894577094e+01 -9.307770072730455e+01 -9.313483742601555e+01 - -9.319199910633068e+01 -9.324918572561810e+01 -9.330639723351504e+01 -9.336363365579297e+01 -9.342089503640302e+01 - -9.347818141588093e+01 -9.353549281584256e+01 -9.359282918563940e+01 -9.365019048477910e+01 -9.370757678565749e+01 - -9.376498815769901e+01 -9.382242454555492e+01 -9.387988589305337e+01 -9.393737226550313e+01 -9.399488373202897e+01 - -9.405242025553964e+01 -9.410998178945039e+01 -9.416756835541781e+01 -9.422517999301114e+01 -9.428281674520871e+01 - -9.434047863667399e+01 -9.439816561540189e+01 -9.445587763836596e+01 -9.451361477512259e+01 -9.457137709520302e+01 - -9.462916455545547e+01 -9.468697710379740e+01 -9.474481476510589e+01 -9.480267758244509e+01 -9.486056559466863e+01 - -9.491847882335075e+01 -9.497641722515867e+01 -9.503438076487508e+01 -9.509236950465109e+01 -9.515038350409563e+01 - -9.520842271528107e+01 -9.526648709103007e+01 -9.532457669470300e+01 -9.538269159175374e+01 -9.544083174547335e+01 - -9.549899710997526e+01 -9.555718770482461e+01 -9.561540356780063e+01 -9.567364474408794e+01 -9.573191126075703e+01 - -9.579020306501620e+01 -9.584852011272490e+01 -9.590686247420874e+01 -9.596523021978578e+01 -9.602362330527772e+01 - -9.608204167783254e+01 -9.614048536439948e+01 -9.619895441016116e+01 -9.625744885343293e+01 -9.631596871403326e+01 - -9.637451394466026e+01 -9.643308450797647e+01 -9.649168047362274e+01 -9.655030190767742e+01 -9.660894875499127e+01 - -9.666762096089710e+01 -9.672631859388268e+01 -9.678504172537357e+01 -9.684379031539257e+01 -9.690256431417546e+01 - -9.696136374421286e+01 -9.702018864639355e+01 -9.707903906294442e+01 -9.713791501832830e+01 -9.719681646461351e+01 - -9.725574336170810e+01 -9.731469577327378e+01 -9.737367376351882e+01 -9.743267729508464e+01 -9.749170632178308e+01 - -9.755076086367355e+01 -9.760984095895955e+01 -9.766894665217343e+01 -9.772807797034233e+01 -9.778723486414395e+01 - -9.784641729236439e+01 -9.790562532257231e+01 -9.796485902036660e+01 -9.802411833468516e+01 -9.808340321418262e+01 - -9.814271372304191e+01 -9.820204992860188e+01 -9.826141179529722e+01 -9.832079927766843e+01 -9.838021239358226e+01 - -9.843965117935535e+01 -9.849911568177785e+01 -9.855860593025675e+01 -9.861812187419362e+01 -9.867766347002308e+01 - -9.873723078231735e+01 -9.879682387670165e+01 -9.885644271487612e+01 -9.891608724974174e+01 -9.897575750292785e+01 - -9.903545351466867e+01 -9.909517533088989e+01 -9.915492297862031e+01 -9.921469640360959e+01 -9.927449556058966e+01 - -9.933432052149955e+01 -9.939417135686639e+01 -9.945404801436261e+01 -9.951395044077229e+01 -9.957387870218038e+01 - -9.963383286719130e+01 -9.969381289518709e+01 -9.975381873630593e+01 -9.981385041293248e+01 -9.987390796877466e+01 - -9.993399146058783e+01 -9.999410091983435e+01 -1.000542362637563e+02 -1.001143974249114e+02 -1.001745845113392e+02 - -1.002347976270743e+02 -1.002950366846517e+02 -1.003553015922550e+02 -1.004155924321621e+02 -1.004759093011103e+02 - -1.005362521795820e+02 -1.005966210292817e+02 -1.006570158530568e+02 -1.007174366671700e+02 -1.007778835004040e+02 - -1.008383563749385e+02 -1.008988552740233e+02 -1.009593801813489e+02 -1.010199311212978e+02 -1.010805081231472e+02 - -1.011411111950619e+02 -1.012017403376325e+02 -1.012623955422635e+02 -1.013230768099676e+02 -1.013837841893743e+02 - -1.014445177207514e+02 -1.015052773633014e+02 -1.015660630775449e+02 -1.016268749103392e+02 -1.016877129150088e+02 - -1.017485770844115e+02 -1.018094673966629e+02 -1.018703838313761e+02 -1.019313263923028e+02 -1.019922951782496e+02 - -1.020532902664119e+02 -1.021143115524854e+02 -1.021753589342455e+02 -1.022364324992857e+02 -1.022975323519374e+02 - -1.023586584736673e+02 -1.024198108268543e+02 -1.024809894203941e+02 -1.025421942728475e+02 -1.026034253949216e+02 - -1.026646827901934e+02 -1.027259664415750e+02 -1.027872763473731e+02 -1.028486125881369e+02 -1.029099752254547e+02 - -1.029713641628286e+02 -1.030327793161952e+02 -1.030942208093169e+02 -1.031556887637190e+02 -1.032171830841550e+02 - -1.032787036718354e+02 -1.033402506305696e+02 -1.034018240681317e+02 -1.034634239055545e+02 -1.035250500515010e+02 - -1.035867025518952e+02 -1.036483814821213e+02 -1.037100868981441e+02 -1.037718188237329e+02 -1.038335771732939e+02 - -1.038953618747522e+02 -1.039571730194689e+02 -1.040190107055651e+02 -1.040808748947658e+02 -1.041427655331822e+02 - -1.042046826408667e+02 -1.042666262524425e+02 -1.043285963868752e+02 -1.043905930564436e+02 -1.044526162623378e+02 - -1.045146660069125e+02 -1.045767423082721e+02 -1.046388451777543e+02 -1.047009745838822e+02 -1.047631305085241e+02 - -1.048253130297424e+02 -1.048875222165416e+02 -1.049497580055002e+02 -1.050120203310284e+02 -1.050743092512860e+02 - -1.051366248384456e+02 -1.051989670969791e+02 -1.052613360137520e+02 -1.053237315729033e+02 -1.053861537661844e+02 - -1.054486026185219e+02 -1.055110781583045e+02 -1.055735803945944e+02 -1.056361093274371e+02 -1.056986649401382e+02 - -1.057612472323176e+02 -1.058238562855892e+02 -1.058864921618116e+02 -1.059491547618286e+02 -1.060118440001799e+02 - -1.060745600072047e+02 -1.061373029070868e+02 -1.062000725835928e+02 -1.062628689188559e+02 -1.063256920288941e+02 - -1.063885420424685e+02 -1.064514189054312e+02 -1.065143225392365e+02 -1.065772529506575e+02 -1.066402101774261e+02 - -1.067031942957903e+02 -1.067662053568374e+02 -1.068292432724951e+02 -1.068923079625714e+02 -1.069553995175528e+02 - -1.070185180380394e+02 -1.070816634944072e+02 -1.071448358336418e+02 -1.072080350393896e+02 -1.072712611247882e+02 - -1.073345141842783e+02 -1.073977942922143e+02 -1.074611013613008e+02 -1.075244353055826e+02 -1.075877962061142e+02 - -1.076511841502191e+02 -1.077145990832866e+02 -1.077780409492339e+02 -1.078415098280245e+02 -1.079050057992970e+02 - -1.079685288053471e+02 -1.080320787786834e+02 -1.080956557500093e+02 -1.081592597729443e+02 -1.082228908945775e+02 - -1.082865491424036e+02 -1.083502344720692e+02 -1.084139468448718e+02 -1.084776863165616e+02 -1.085414529440200e+02 - -1.086052466942038e+02 -1.086690675238350e+02 -1.087329154386204e+02 -1.087967904674474e+02 -1.088606926829425e+02 - -1.089246221377382e+02 -1.089885787607543e+02 -1.090525624876805e+02 -1.091165734050004e+02 -1.091806115963225e+02 - -1.092446769829633e+02 -1.093087694909110e+02 -1.093728892271333e+02 -1.094370362953419e+02 -1.095012106052476e+02 - -1.095654120623545e+02 -1.096296407493415e+02 -1.096938967647426e+02 -1.097581800933404e+02 -1.098224906984946e+02 - -1.098868285716250e+02 -1.099511937236656e+02 -1.100155862155477e+02 -1.100800060933800e+02 -1.101444532939841e+02 - -1.102089277564002e+02 -1.102734295378303e+02 -1.103379587096266e+02 -1.104025152815812e+02 -1.104670992426730e+02 - -1.105317105601886e+02 -1.105963492199813e+02 -1.106610153038629e+02 -1.107257088820756e+02 -1.107904298826226e+02 - -1.108551782361634e+02 -1.109199540262203e+02 -1.109847573373186e+02 -1.110495881051325e+02 -1.111144462586115e+02 - -1.111793318486534e+02 -1.112442449476576e+02 -1.113091855920787e+02 -1.113741537899001e+02 -1.114391494711626e+02 - -1.115041725824562e+02 -1.115692232145109e+02 -1.116343014623147e+02 -1.116994072937479e+02 -1.117645406555522e+02 - -1.118297015370191e+02 -1.118948899532702e+02 -1.119601059801944e+02 -1.120253496750247e+02 -1.120906209596036e+02 - -1.121559197660155e+02 -1.122212462027017e+02 -1.122866003728487e+02 -1.123519821822644e+02 -1.124173915349786e+02 - -1.124828285252852e+02 -1.125482932599049e+02 -1.126137857050017e+02 -1.126793058037530e+02 -1.127448535479451e+02 - -1.128104289543148e+02 -1.128760320907921e+02 -1.129416630123176e+02 -1.130073216706816e+02 -1.130730080183262e+02 - -1.131387221134510e+02 -1.132044640167948e+02 -1.132702336934948e+02 -1.133360310978225e+02 -1.134018562361866e+02 - -1.134677091387784e+02 -1.135335898787815e+02 -1.135994985091588e+02 -1.136654349589990e+02 -1.137313991629182e+02 - -1.137973912015162e+02 -1.138634111582333e+02 -1.139294589818884e+02 -1.139955346168527e+02 -1.140616381243277e+02 - -1.141277695680233e+02 -1.141939289048548e+02 -1.142601160860919e+02 -1.143263311472162e+02 -1.143925741390390e+02 - -1.144588450894802e+02 -1.145251440101338e+02 -1.145914708701818e+02 -1.146578256494022e+02 -1.147242084123678e+02 - -1.147906192149256e+02 -1.148570579932248e+02 -1.149235246826633e+02 -1.149900193353325e+02 -1.150565420227369e+02 - -1.151230927773426e+02 -1.151896716067799e+02 -1.152562784583746e+02 -1.153229132947855e+02 -1.153895762003063e+02 - -1.154562672526404e+02 -1.155229863814943e+02 -1.155897335150450e+02 -1.156565087233475e+02 -1.157233120892246e+02 - -1.157901436046917e+02 -1.158570032371645e+02 -1.159238909464663e+02 -1.159908067231330e+02 -1.160577506881430e+02 - -1.161247229415995e+02 -1.161917233696630e+02 -1.162587518588770e+02 -1.163258085112608e+02 -1.163928934406831e+02 - -1.164600065929374e+02 -1.165271479034755e+02 -1.165943174344564e+02 -1.166615152526160e+02 -1.167287413162901e+02 - -1.167959955757904e+02 -1.168632780577301e+02 -1.169305888112216e+02 -1.169979278990717e+02 -1.170652953548001e+02 - -1.171326910810820e+02 -1.172001149975291e+02 -1.172675672223445e+02 -1.173350478778825e+02 -1.174025569045121e+02 - -1.174700942215011e+02 -1.175376598456954e+02 -1.176052538191002e+02 -1.176728761867799e+02 -1.177405269796691e+02 - -1.178082061691247e+02 -1.178759137299273e+02 -1.179436497101298e+02 -1.180114141509050e+02 -1.180792069926326e+02 - -1.181470281872303e+02 -1.182148778335583e+02 -1.182827560287664e+02 -1.183506627162192e+02 -1.184185978220269e+02 - -1.184865613570652e+02 -1.185545533602401e+02 -1.186225738978121e+02 -1.186906230193939e+02 -1.187587006806511e+02 - -1.188268068350639e+02 -1.188949415213182e+02 -1.189631047837780e+02 -1.190312966043158e+02 -1.190995169567162e+02 - -1.191677658449030e+02 -1.192360432941998e+02 -1.193043493853908e+02 -1.193726841751893e+02 -1.194410475685670e+02 - -1.195094394794060e+02 -1.195778600089746e+02 -1.196463092648311e+02 -1.197147871923100e+02 -1.197832937276135e+02 - -1.198518289326376e+02 -1.199203928745778e+02 -1.199889855161324e+02 -1.200576068078755e+02 -1.201262567563797e+02 - -1.201949353935382e+02 -1.202636427965272e+02 -1.203323790196208e+02 -1.204011439802014e+02 -1.204699376081542e+02 - -1.205387600202684e+02 -1.206076113241917e+02 -1.206764914041025e+02 -1.207454001431820e+02 -1.208143376440890e+02 - -1.208833040296615e+02 -1.209522992839752e+02 -1.210213233653680e+02 -1.210903762679893e+02 -1.211594580022500e+02 - -1.212285686077949e+02 -1.212977081155049e+02 -1.213668764919694e+02 -1.214360737100132e+02 -1.215052998316942e+02 - -1.215745549154533e+02 -1.216438389160294e+02 -1.217131517838345e+02 -1.217824935556734e+02 -1.218518642837182e+02 - -1.219212639952166e+02 -1.219906927020717e+02 -1.220601503797327e+02 -1.221296370078328e+02 -1.221991526191948e+02 - -1.222686972509000e+02 -1.223382709038720e+02 -1.224078735702578e+02 -1.224775052432531e+02 -1.225471659287695e+02 - -1.226168556825330e+02 -1.226865745477072e+02 -1.227563224673916e+02 -1.228260993926653e+02 -1.228959054065903e+02 - -1.229657405910973e+02 -1.230356048916106e+02 -1.231054982500379e+02 -1.231754207307278e+02 -1.232453724007864e+02 - -1.233153532159101e+02 -1.233853631242201e+02 -1.234554021549459e+02 -1.235254703591199e+02 -1.235955677938801e+02 - -1.236656944915691e+02 -1.237358503792446e+02 -1.238060353939673e+02 -1.238762496180971e+02 -1.239464931371069e+02 - -1.240167659036240e+02 -1.240870678602586e+02 -1.241573990423949e+02 -1.242277595040581e+02 -1.242981492810638e+02 - -1.243685683872523e+02 -1.244390167667736e+02 -1.245094943779347e+02 -1.245800013053605e+02 -1.246505376299316e+02 - -1.247211032912332e+02 -1.247916982296097e+02 -1.248623225297382e+02 -1.249329762770640e+02 -1.250036594157741e+02 - -1.250743718736609e+02 -1.251451136541969e+02 -1.252158847947410e+02 -1.252866853925174e+02 -1.253575155184925e+02 - -1.254283750787370e+02 -1.254992639825418e+02 -1.255701823169751e+02 -1.256411301759969e+02 -1.257121075033584e+02 - -1.257831142369608e+02 -1.258541504415142e+02 -1.259252161922362e+02 -1.259963114795672e+02 -1.260674362758903e+02 - -1.261385905661348e+02 -1.262097743537985e+02 -1.262809877041053e+02 -1.263522306696565e+02 -1.264235031908370e+02 - -1.264948052148923e+02 -1.265661368287249e+02 -1.266374981169807e+02 -1.267088890156212e+02 -1.267803094502130e+02 - -1.268517594534262e+02 -1.269232390831601e+02 -1.269947483911282e+02 -1.270662874069690e+02 -1.271378560782095e+02 - -1.272094543594662e+02 -1.272810823158284e+02 -1.273527400123002e+02 -1.274244274030747e+02 -1.274961444355319e+02 - -1.275678911406106e+02 -1.276396675704015e+02 -1.277114737780431e+02 -1.277833097950603e+02 -1.278551755654751e+02 - -1.279270710424012e+02 -1.279989963028243e+02 -1.280709514152536e+02 -1.281429362904217e+02 -1.282149508513121e+02 - -1.282869952276877e+02 -1.283590695463467e+02 -1.284311737154509e+02 -1.285033076302067e+02 -1.285754713526335e+02 - -1.286476649682441e+02 -1.287198884897120e+02 -1.287921419051992e+02 -1.288644251776617e+02 -1.289367382880697e+02 - -1.290090813146567e+02 -1.290814543319980e+02 -1.291538573027727e+02 -1.292262901737162e+02 -1.292987529396840e+02 - -1.293712456190937e+02 -1.294437682764910e+02 -1.295163209673579e+02 -1.295889036647941e+02 -1.296615163353197e+02 - -1.297341590015173e+02 -1.298068316903185e+02 -1.298795343899871e+02 -1.299522670904091e+02 -1.300250298266263e+02 - -1.300978226354063e+02 -1.301706455152632e+02 -1.302434984561237e+02 -1.303163814518184e+02 -1.303892945098205e+02 - -1.304622376882688e+02 -1.305352110313897e+02 -1.306082144770936e+02 -1.306812479731976e+02 -1.307543116134598e+02 - -1.308274054850011e+02 -1.309005295024521e+02 -1.309736835845235e+02 -1.310468678387340e+02 -1.311200823754845e+02 - -1.311933271278942e+02 -1.312666020134129e+02 -1.313399070640916e+02 -1.314132423401880e+02 -1.314866079001839e+02 - -1.315600037753056e+02 -1.316334298895329e+02 -1.317068861777292e+02 -1.317803727255405e+02 -1.318538896215189e+02 - -1.319274368150577e+02 -1.320010142454794e+02 -1.320746219509807e+02 -1.321482599879661e+02 -1.322219283867981e+02 - -1.322956271602158e+02 -1.323693562765047e+02 -1.324431157110688e+02 -1.325169055122373e+02 -1.325907257242561e+02 - -1.326645763021127e+02 -1.327384572099461e+02 -1.328123685377604e+02 -1.328863103680995e+02 -1.329602826278048e+02 - -1.330342852393407e+02 -1.331083182633673e+02 -1.331823817787306e+02 -1.332564757988239e+02 -1.333306003141445e+02 - -1.334047552890586e+02 -1.334789407033280e+02 -1.335531566244299e+02 -1.336274031130300e+02 -1.337016801148342e+02 - -1.337759875748336e+02 -1.338503255501201e+02 -1.339246941130952e+02 -1.339990932852997e+02 -1.340735230609586e+02 - -1.341479833758948e+02 -1.342224741891434e+02 -1.342969956109889e+02 -1.343715477431406e+02 -1.344461305017541e+02 - -1.345207438015131e+02 -1.345953877367626e+02 -1.346700624038786e+02 -1.347447677276981e+02 -1.348195036263442e+02 - -1.348942701626209e+02 -1.349690674171868e+02 -1.350438953974369e+02 -1.351187540921076e+02 -1.351936434885642e+02 - -1.352685635848754e+02 -1.353435144232942e+02 -1.354184960414874e+02 -1.354935084145923e+02 -1.355685515128237e+02 - -1.356436253492364e+02 -1.357187299541088e+02 -1.357938653837732e+02 -1.358690316768758e+02 -1.359442287752637e+02 - -1.360194566279880e+02 -1.360947153097144e+02 -1.361700048911278e+02 -1.362453253013760e+02 -1.363206764782614e+02 - -1.363960585357406e+02 -1.364714715821978e+02 -1.365469155275740e+02 -1.366223902703805e+02 -1.366978958618521e+02 - -1.367734323848502e+02 -1.368489998960226e+02 -1.369245984210613e+02 -1.370002278880492e+02 -1.370758882331093e+02 - -1.371515795221331e+02 -1.372273018270698e+02 -1.373030551143317e+02 -1.373788393429953e+02 -1.374546545483291e+02 - -1.375305007816427e+02 -1.376063780822184e+02 -1.376822864668756e+02 -1.377582258746108e+02 -1.378341962588316e+02 - -1.379101977084133e+02 -1.379862303093919e+02 -1.380622940009784e+02 -1.381383887192652e+02 -1.382145145346940e+02 - -1.382906715205862e+02 -1.383668596274320e+02 -1.384430787972570e+02 -1.385193290610606e+02 -1.385956104734610e+02 - -1.386719230945808e+02 -1.387482669582360e+02 -1.388246419875133e+02 -1.389010481148665e+02 -1.389774854209464e+02 - -1.390539539951986e+02 -1.391304538140523e+02 -1.392069848343242e+02 -1.392835470473980e+02 -1.393601404693719e+02 - -1.394367651806349e+02 -1.395134212422815e+02 -1.395901085739362e+02 -1.396668271002043e+02 -1.397435769070855e+02 - -1.398203580874878e+02 -1.398971706005607e+02 -1.399740143977720e+02 -1.400508895336226e+02 -1.401277960614956e+02 - -1.402047339272718e+02 -1.402817030764181e+02 -1.403587035602461e+02 -1.404357354502877e+02 -1.405127987931110e+02 - -1.405898936026113e+02 -1.406670197869564e+02 -1.407441772794584e+02 -1.408213662197336e+02 -1.408985867371466e+02 - -1.409758387137537e+02 -1.410531220224061e+02 -1.411304367464428e+02 -1.412077829961380e+02 -1.412851607790223e+02 - -1.413625700771281e+02 -1.414400108732392e+02 -1.415174831646232e+02 -1.415949870057306e+02 -1.416725224388105e+02 - -1.417500894001226e+02 -1.418276878351835e+02 -1.419053178325258e+02 -1.419829794809226e+02 -1.420606727270934e+02 - -1.421383975074728e+02 -1.422161538594082e+02 -1.422939418408956e+02 -1.423717614916131e+02 -1.424496128273150e+02 - -1.425274957863782e+02 -1.426054103213069e+02 -1.426833565184944e+02 -1.427613344645970e+02 -1.428393441134355e+02 - -1.429173854035838e+02 -1.429954583454632e+02 -1.430735629773860e+02 -1.431516993773805e+02 -1.432298676007922e+02 - -1.433080675725197e+02 -1.433862992191345e+02 -1.434645626043482e+02 -1.435428578032951e+02 -1.436211847996638e+02 - -1.436995435672099e+02 -1.437779341314036e+02 -1.438563565210897e+02 -1.439348107268960e+02 -1.440132967358192e+02 - -1.440918145585468e+02 -1.441703642214681e+02 -1.442489457900865e+02 -1.443275593072134e+02 -1.444062046857781e+02 - -1.444848818522611e+02 -1.445635909172288e+02 -1.446423319927847e+02 -1.447211050130976e+02 -1.447999098925679e+02 - -1.448787466444589e+02 -1.449576153140356e+02 -1.450365159757091e+02 -1.451154486823820e+02 -1.451944133717774e+02 - -1.452734099863848e+02 -1.453524386029381e+02 -1.454314992962476e+02 -1.455105919991844e+02 -1.455897166474813e+02 - -1.456688733302556e+02 -1.457480621396693e+02 -1.458272830266799e+02 -1.459065359271370e+02 -1.459858208576615e+02 - -1.460651378591126e+02 -1.461444869885314e+02 -1.462238682831965e+02 -1.463032816851561e+02 -1.463827271416525e+02 - -1.464622047159361e+02 -1.465417144784923e+02 -1.466212564127396e+02 -1.467008304928943e+02 -1.467804367434297e+02 - -1.468600751934606e+02 -1.469397458404120e+02 -1.470194486722770e+02 -1.470991836710121e+02 -1.471789508433917e+02 - -1.472587503015001e+02 -1.473385821300154e+02 -1.474184461986837e+02 -1.474983423870870e+02 -1.475782708290815e+02 - -1.476582316674545e+02 -1.477382248264445e+02 -1.478182502096616e+02 -1.478983078567520e+02 -1.479783978350921e+02 - -1.480585201869469e+02 -1.481386749269736e+02 -1.482188619845118e+02 -1.482990813088785e+02 -1.483793330146163e+02 - -1.484596172099193e+02 -1.485399338123612e+02 -1.486202827323657e+02 -1.487006640423751e+02 -1.487810778248495e+02 - -1.488615240403001e+02 -1.489420026412511e+02 -1.490225136702235e+02 -1.491030571832025e+02 -1.491836332000337e+02 - -1.492642417202360e+02 -1.493448826981615e+02 -1.494255561054278e+02 -1.495062620278810e+02 -1.495870005487025e+02 - -1.496677716261896e+02 -1.497485751994623e+02 -1.498294112558179e+02 -1.499102798158717e+02 -1.499911809853331e+02 - -1.500721148441144e+02 -1.501530812838450e+02 -1.502340802026938e+02 -1.503151117132690e+02 -1.503961759364751e+02 - -1.504772728119622e+02 -1.505584022645880e+02 -1.506395643412949e+02 -1.507207591024668e+02 -1.508019865401696e+02 - -1.508832466324269e+02 -1.509645393694111e+02 -1.510458647628492e+02 -1.511272228985386e+02 -1.512086138412552e+02 - -1.512900374976176e+02 -1.513714937855876e+02 -1.514529828266537e+02 -1.515345047392310e+02 -1.516160594259147e+02 - -1.516976467776822e+02 -1.517792668548592e+02 -1.518609197460578e+02 -1.519426054836894e+02 -1.520243240750476e+02 - -1.521060754831553e+02 -1.521878596792744e+02 -1.522696767118938e+02 -1.523515266305248e+02 -1.524334094115421e+02 - -1.525153250314230e+02 -1.525972735401888e+02 -1.526792549864990e+02 -1.527612693400200e+02 -1.528433165631959e+02 - -1.529253966685747e+02 -1.530075096900777e+02 -1.530896556970147e+02 -1.531718347321965e+02 -1.532540466970516e+02 - -1.533362915133235e+02 -1.534185693253995e+02 -1.535008802693854e+02 -1.535832242256197e+02 -1.536656010621809e+02 - -1.537480108538752e+02 -1.538304537113657e+02 -1.539129296820158e+02 -1.539954387715506e+02 -1.540779808824423e+02 - -1.541605559457948e+02 -1.542431641104905e+02 -1.543258055115917e+02 -1.544084800111010e+02 -1.544911874726015e+02 - -1.545739280390565e+02 -1.546567018609975e+02 -1.547395088398511e+02 -1.548223488576198e+02 -1.549052219677139e+02 - -1.549881282595875e+02 -1.550710677954614e+02 -1.551540406026988e+02 -1.552370465964632e+02 -1.553200857053796e+02 - -1.554031580241178e+02 -1.554862636500489e+02 -1.555694025253043e+02 -1.556525745801794e+02 -1.557357798528659e+02 - -1.558190184045264e+02 -1.559022902803117e+02 -1.559855954979769e+02 -1.560689339817060e+02 -1.561523056771075e+02 - -1.562357107090587e+02 -1.563191491909100e+02 -1.564026210106382e+02 -1.564861260558312e+02 -1.565696644378976e+02 - -1.566532362813955e+02 -1.567368415396626e+02 -1.568204801387562e+02 -1.569041520668287e+02 -1.569878573487146e+02 - -1.570715960938785e+02 -1.571553683828581e+02 -1.572391740958522e+02 -1.573230131265335e+02 -1.574068856228085e+02 - -1.574907917295132e+02 -1.575747313249683e+02 -1.576587042737324e+02 -1.577427106518309e+02 -1.578267505715277e+02 - -1.579108240785769e+02 -1.579949311783184e+02 -1.580790717809458e+02 -1.581632458187553e+02 -1.582474534075981e+02 - -1.583316946623155e+02 -1.584159695101536e+02 -1.585002778727259e+02 -1.585846198367120e+02 -1.586689954874005e+02 - -1.587534047394542e+02 -1.588378475061590e+02 -1.589223238659185e+02 -1.590068339195322e+02 -1.590913776922658e+02 - -1.591759551748261e+02 -1.592605662952183e+02 -1.593452110061037e+02 -1.594298894214712e+02 -1.595146016508511e+02 - -1.595993476246111e+02 -1.596841272537272e+02 -1.597689405507699e+02 -1.598537875632453e+02 -1.599386683768111e+02 - -1.600235830481832e+02 -1.601085314801616e+02 -1.601935135899282e+02 -1.602785295061083e+02 -1.603635793509372e+02 - -1.604486630096468e+02 -1.605337803660765e+02 -1.606189315354990e+02 -1.607041166452176e+02 -1.607893356392255e+02 - -1.608745884397152e+02 -1.609598750649831e+02 -1.610451955612870e+02 -1.611305499906227e+02 -1.612159383917271e+02 - -1.613013606945609e+02 -1.613868168398436e+02 -1.614723069201057e+02 -1.615578310304217e+02 -1.616433891242326e+02 - -1.617289811339727e+02 -1.618146070496823e+02 -1.619002668955830e+02 -1.619859607750138e+02 -1.620716887676450e+02 - -1.621574507793529e+02 -1.622432467219253e+02 -1.623290767045893e+02 -1.624149408340039e+02 -1.625008390091176e+02 - -1.625867711331680e+02 -1.626727373342588e+02 -1.627587377384768e+02 -1.628447722389764e+02 -1.629308407201184e+02 - -1.630169432640222e+02 -1.631030799800713e+02 -1.631892508889492e+02 -1.632754559784962e+02 -1.633616951938801e+02 - -1.634479685044198e+02 -1.635342760187116e+02 -1.636206178291233e+02 -1.637069938238325e+02 -1.637934038942077e+02 - -1.638798481485683e+02 -1.639663267112721e+02 -1.640528395538795e+02 -1.641393866180353e+02 -1.642259678785196e+02 - -1.643125833411851e+02 -1.643992331030405e+02 -1.644859172470150e+02 -1.645726357085657e+02 -1.646593884180614e+02 - -1.647461754329907e+02 -1.648329968179324e+02 -1.649198525387065e+02 -1.650067425502886e+02 -1.650936668630355e+02 - -1.651806255134507e+02 -1.652676185872448e+02 -1.653546461444497e+02 -1.654417080931755e+02 -1.655288043499995e+02 - -1.656159350172886e+02 -1.657031001994683e+02 -1.657902998234105e+02 -1.658775338117127e+02 -1.659648022474274e+02 - -1.660521052162188e+02 -1.661394426537408e+02 -1.662268144894047e+02 -1.663142207776613e+02 -1.664016615975541e+02 - -1.664891370014617e+02 -1.665766470055737e+02 -1.666641915079906e+02 -1.667517704334961e+02 -1.668393839316945e+02 - -1.669270321420214e+02 -1.670147149384157e+02 -1.671024321837371e+02 -1.671901839620226e+02 -1.672779703889409e+02 - -1.673657914855093e+02 -1.674536472385115e+02 -1.675415375924466e+02 -1.676294625158688e+02 -1.677174221158364e+02 - -1.678054164853866e+02 -1.678934455229663e+02 -1.679815091339810e+02 -1.680696074462591e+02 -1.681577405863894e+02 - -1.682459084535819e+02 -1.683341109324726e+02 -1.684223480767776e+02 -1.685106199767677e+02 -1.685989266998525e+02 - -1.686872682758898e+02 -1.687756446073924e+02 -1.688640556163956e+02 -1.689525014303699e+02 -1.690409821718389e+02 - -1.691294977381033e+02 -1.692180480141565e+02 -1.693066330609834e+02 -1.693952529706734e+02 -1.694839077837423e+02 - -1.695725975104607e+02 -1.696613220916933e+02 -1.697500814887782e+02 -1.698388758143547e+02 -1.699277051650943e+02 - -1.700165694224996e+02 -1.701054684738952e+02 -1.701944024450633e+02 -1.702833714670375e+02 -1.703723754534025e+02 - -1.704614143033400e+02 -1.705504880758685e+02 -1.706395968591658e+02 -1.707287406982126e+02 -1.708179196055015e+02 - -1.709071335067704e+02 -1.709963823462651e+02 -1.710856662290167e+02 -1.711749852543236e+02 -1.712643393377691e+02 - -1.713537283867857e+02 -1.714431524599174e+02 -1.715326116432521e+02 -1.716221059819435e+02 -1.717116354891412e+02 - -1.718012000909151e+02 -1.718907997312464e+02 -1.719804345128430e+02 -1.720701045346718e+02 -1.721598097220100e+02 - -1.722495499971131e+02 -1.723393254438396e+02 -1.724291361494486e+02 -1.725189820532021e+02 -1.726088630837053e+02 - -1.726987792749333e+02 -1.727887306891670e+02 -1.728787173965418e+02 -1.729687394350333e+02 -1.730587967061244e+02 - -1.731488891286860e+02 -1.732390168276344e+02 -1.733291799265234e+02 -1.734193783374131e+02 -1.735096119603506e+02 - -1.735998808588243e+02 -1.736901851222248e+02 -1.737805247801124e+02 -1.738708998286339e+02 -1.739613101901119e+02 - -1.740517558114003e+02 -1.741422368113012e+02 -1.742327533050288e+02 -1.743233052214973e+02 -1.744138924793676e+02 - -1.745045151425876e+02 -1.745951732822802e+02 -1.746858668529805e+02 -1.747765958032038e+02 -1.748673601739718e+02 - -1.749581600245709e+02 -1.750489953948396e+02 -1.751398663036498e+02 -1.752307727054541e+02 -1.753217145616989e+02 - -1.754126919262226e+02 -1.755037048571098e+02 -1.755947533370347e+02 -1.756858373371216e+02 -1.757769568577038e+02 - -1.758681119173357e+02 -1.759593025782490e+02 -1.760505288876894e+02 -1.761417907892832e+02 -1.762330882344909e+02 - -1.763244213097290e+02 -1.764157900964081e+02 -1.765071945209611e+02 -1.765986345094344e+02 -1.766901101413071e+02 - -1.767816215026837e+02 -1.768731685527375e+02 -1.769647512369523e+02 -1.770563695729838e+02 -1.771480236027573e+02 - -1.772397133931058e+02 -1.773314389867134e+02 -1.774232003047593e+02 -1.775149972814722e+02 -1.776068300247813e+02 - -1.776986986385443e+02 -1.777906030366335e+02 -1.778825431235826e+02 -1.779745189565556e+02 -1.780665306226855e+02 - -1.781585781763529e+02 -1.782506616334199e+02 -1.783427808884287e+02 -1.784349358629673e+02 -1.785271267081259e+02 - -1.786193535668995e+02 -1.787116163204012e+02 -1.788039148425030e+02 -1.788962492399977e+02 -1.789886196318098e+02 - -1.790810259524725e+02 -1.791734681201561e+02 -1.792659461719689e+02 -1.793584601742520e+02 -1.794510101913400e+02 - -1.795435962594126e+02 -1.796362183040394e+02 -1.797288762617232e+02 -1.798215702233099e+02 -1.799143002757676e+02 - -1.800070663362093e+02 -1.800998683262517e+02 -1.801927063553792e+02 -1.802855805315161e+02 -1.803784907684791e+02 - -1.804714369692463e+02 -1.805644191875481e+02 -1.806574375103104e+02 -1.807504920064915e+02 -1.808435827084130e+02 - -1.809367095198169e+02 -1.810298723599504e+02 -1.811230713386593e+02 -1.812163065647390e+02 -1.813095779521854e+02 - -1.814028854036152e+02 -1.814962289709267e+02 -1.815896087407728e+02 -1.816830247895420e+02 -1.817764771515762e+02 - -1.818699657032943e+02 -1.819634903439186e+02 -1.820570512218083e+02 -1.821506484855823e+02 -1.822442820357622e+02 - -1.823379517614509e+02 -1.824316577541746e+02 -1.825254001134493e+02 -1.826191787683301e+02 -1.827129936397535e+02 - -1.828068447866412e+02 -1.829007322929544e+02 -1.829946562048259e+02 -1.830886165373395e+02 -1.831826132192083e+02 - -1.832766461922778e+02 -1.833707155372913e+02 -1.834648213380734e+02 -1.835589635518759e+02 -1.836531421229175e+02 - -1.837473570698571e+02 -1.838416084358642e+02 -1.839358962877114e+02 -1.840302206684350e+02 -1.841245815025237e+02 - -1.842189787235884e+02 -1.843134124202761e+02 -1.844078826806361e+02 -1.845023894352911e+02 -1.845969326205561e+02 - -1.846915123529413e+02 -1.847861287393624e+02 -1.848807816681596e+02 -1.849754710227848e+02 -1.850701968857076e+02 - -1.851649593688754e+02 -1.852597585031284e+02 -1.853545942804591e+02 -1.854494666185751e+02 -1.855443754618861e+02 - -1.856393209358935e+02 -1.857343031604275e+02 -1.858293220515437e+02 -1.859243775087027e+02 -1.860194695687597e+02 - -1.861145983033516e+02 -1.862097637858479e+02 -1.863049660540466e+02 -1.864002050017272e+02 -1.864954805431744e+02 - -1.865907928187129e+02 -1.866861419596013e+02 -1.867815278347963e+02 -1.868769503164351e+02 -1.869724095516791e+02 - -1.870679056966096e+02 -1.871634386679672e+02 -1.872590083560524e+02 -1.873546147847470e+02 -1.874502580123688e+02 - -1.875459381013990e+02 -1.876416550903780e+02 -1.877374089179168e+02 -1.878331995340542e+02 -1.879290270344656e+02 - -1.880248915055781e+02 -1.881207928511883e+02 -1.882167309755823e+02 -1.883127059676341e+02 -1.884087179360091e+02 - -1.885047668839511e+02 -1.886008527852007e+02 -1.886969756009047e+02 -1.887931353152428e+02 -1.888893320171184e+02 - -1.889855657829229e+02 -1.890818365342772e+02 -1.891781441947396e+02 -1.892744888503877e+02 -1.893708705921393e+02 - -1.894672893677523e+02 -1.895637451161106e+02 -1.896602378837592e+02 -1.897567677352667e+02 -1.898533346996371e+02 - -1.899499387807097e+02 -1.900465799172331e+02 -1.901432580674921e+02 -1.902399733330072e+02 -1.903367258125687e+02 - -1.904335154508099e+02 -1.905303421711713e+02 -1.906272059664800e+02 -1.907241068668330e+02 -1.908210449820209e+02 - -1.909180203947948e+02 -1.910150330000556e+02 -1.911120827002041e+02 -1.912091696154924e+02 -1.913062938635582e+02 - -1.914034553337337e+02 -1.915006539182285e+02 -1.915978897490666e+02 -1.916951629619544e+02 -1.917924734675151e+02 - -1.918898211586861e+02 -1.919872060827436e+02 -1.920846283161583e+02 -1.921820878978424e+02 -1.922795848438701e+02 - -1.923771191165239e+02 -1.924746906889474e+02 -1.925722996315181e+02 -1.926699460069926e+02 -1.927676297504074e+02 - -1.928653507913461e+02 -1.929631091652971e+02 -1.930609049367203e+02 -1.931587381800568e+02 -1.932566089358633e+02 - -1.933545170991796e+02 -1.934524625825225e+02 -1.935504455138344e+02 -1.936484660231147e+02 -1.937465240331655e+02 - -1.938446194535055e+02 -1.939427523477156e+02 -1.940409227930324e+02 -1.941391307672549e+02 -1.942373762317632e+02 - -1.943356591817002e+02 -1.944339796386271e+02 -1.945323376960147e+02 -1.946307334225392e+02 -1.947291667157886e+02 - -1.948276374816129e+02 -1.949261458299981e+02 -1.950246918758956e+02 -1.951232755499811e+02 -1.952218967672293e+02 - -1.953205555640852e+02 -1.954192520091347e+02 -1.955179861780584e+02 -1.956167581109271e+02 -1.957155676982765e+02 - -1.958144148511486e+02 -1.959132997121442e+02 -1.960122224157670e+02 -1.961111828325720e+02 -1.962101808324193e+02 - -1.963092165463342e+02 -1.964082901163006e+02 -1.965074014669716e+02 -1.966065505047830e+02 -1.967057372806285e+02 - -1.968049618689787e+02 -1.969042242941536e+02 -1.970035245570506e+02 -1.971028626150270e+02 -1.972022384428475e+02 - -1.973016521284466e+02 -1.974011037520065e+02 -1.975005932495305e+02 -1.976001205455443e+02 -1.976996856628438e+02 - -1.977992886519515e+02 -1.978989295760255e+02 -1.979986084767589e+02 -1.980983252973461e+02 -1.981980799861144e+02 - -1.982978726104215e+02 -1.983977032396124e+02 -1.984975718319531e+02 -1.985974783450467e+02 -1.986974228449224e+02 - -1.987974053983538e+02 -1.988974259666649e+02 -1.989974844962869e+02 -1.990975809795281e+02 -1.991977154414513e+02 - -1.992978879922588e+02 -1.993980987169082e+02 -1.994983475142392e+02 -1.995986342853965e+02 -1.996989591268633e+02 - -1.997993221398394e+02 -1.998997232490551e+02 -2.000001623829878e+02 -2.001006396615730e+02 -2.002011551976202e+02 - -2.003017088839768e+02 -2.004023006006677e+02 -2.005029303963877e+02 -2.006035983645368e+02 -2.007043046086661e+02 - -2.008050491826254e+02 -2.009058319313084e+02 -2.010066527248718e+02 -2.011075117434797e+02 -2.012084091672780e+02 - -2.013093448663347e+02 -2.014103186854462e+02 -2.015113306783989e+02 -2.016123809487723e+02 -2.017134695903300e+02 - -2.018145966520298e+02 -2.019157620134241e+02 -2.020169655668574e+02 -2.021182074252480e+02 -2.022194877090834e+02 - -2.023208063485549e+02 -2.024221632682046e+02 -2.025235585602719e+02 -2.026249923196053e+02 -2.027264644837921e+02 - -2.028279749730532e+02 -2.029295237954015e+02 -2.030311109992572e+02 -2.031327367068774e+02 -2.032344010007734e+02 - -2.033361037306376e+02 -2.034378447601810e+02 -2.035396242420057e+02 -2.036414423389593e+02 -2.037432989659801e+02 - -2.038451940079258e+02 -2.039471274772405e+02 -2.040490994323931e+02 -2.041511099883670e+02 -2.042531592234435e+02 - -2.043552470125819e+02 -2.044573732391661e+02 -2.045595380236004e+02 -2.046617414909655e+02 -2.047639835480296e+02 - -2.048662640993485e+02 -2.049685832589404e+02 -2.050709411450770e+02 -2.051733376835843e+02 -2.052757727854042e+02 - -2.053782464943871e+02 -2.054807588829732e+02 -2.055833100050551e+02 -2.056858998827895e+02 -2.057885284299405e+02 - -2.058911955783421e+02 -2.059939014405005e+02 -2.060966461276917e+02 -2.061994295656012e+02 -2.063022516666823e+02 - -2.064051124760526e+02 -2.065080120661920e+02 -2.066109504863692e+02 -2.067139277576765e+02 -2.068169438117121e+02 - -2.069199985973326e+02 -2.070230922219201e+02 -2.071262247789163e+02 -2.072293961474789e+02 -2.073326062201854e+02 - -2.074358551575783e+02 -2.075391431180403e+02 -2.076424699833530e+02 -2.077458356179337e+02 -2.078492400933438e+02 - -2.079526835133251e+02 -2.080561659031989e+02 -2.081596872578975e+02 -2.082632475292167e+02 -2.083668466898186e+02 - -2.084704848389632e+02 -2.085741620623951e+02 -2.086778782651976e+02 -2.087816333480700e+02 -2.088854273748348e+02 - -2.089892604383302e+02 -2.090931325843364e+02 -2.091970438282278e+02 -2.093009941108145e+02 -2.094049833841979e+02 - -2.095090117202067e+02 -2.096130791905716e+02 -2.097171857469022e+02 -2.098213313423286e+02 -2.099255160561849e+02 - -2.100297399619016e+02 -2.101340029830976e+02 -2.102383050403986e+02 -2.103426461922712e+02 -2.104470265253758e+02 - -2.105514461013085e+02 -2.106559049410852e+02 -2.107604029284658e+02 -2.108649399745926e+02 -2.109695162373935e+02 - -2.110741318706494e+02 -2.111787867647689e+02 -2.112834807867834e+02 -2.113882139735869e+02 -2.114929864074473e+02 - -2.115977981822681e+02 -2.117026493533424e+02 -2.118075398098887e+02 -2.119124694556393e+02 -2.120174384184601e+02 - -2.121224468216736e+02 -2.122274945462991e+02 -2.123325814769304e+02 -2.124377077547605e+02 -2.125428735238108e+02 - -2.126480786828185e+02 -2.127533231155498e+02 -2.128586068911697e+02 -2.129639301084739e+02 -2.130692927993837e+02 - -2.131746949622090e+02 -2.132801365276879e+02 -2.133856174488912e+02 -2.134911378357916e+02 -2.135966977951921e+02 - -2.137022972643151e+02 -2.138079361581469e+02 -2.139136144723085e+02 -2.140193322420075e+02 -2.141250895801643e+02 - -2.142308865713384e+02 -2.143367231089345e+02 -2.144425990899214e+02 -2.145485146166798e+02 -2.146544697958461e+02 - -2.147604645456698e+02 -2.148664987887291e+02 -2.149725726533044e+02 -2.150786862586875e+02 -2.151848394825147e+02 - -2.152910321964648e+02 -2.153972644900385e+02 -2.155035364828845e+02 -2.156098481974242e+02 -2.157161996246267e+02 - -2.158225907268823e+02 -2.159290214790141e+02 -2.160354919341570e+02 -2.161420021424622e+02 -2.162485520638355e+02 - -2.163551416576007e+02 -2.164617709709994e+02 -2.165684400663080e+02 -2.166751489780245e+02 -2.167818977145845e+02 - -2.168886862079515e+02 -2.169955144082682e+02 -2.171023824148656e+02 -2.172092903208214e+02 -2.173162380450137e+02 - -2.174232255130703e+02 -2.175302528518165e+02 -2.176373201799158e+02 -2.177444273821862e+02 -2.178515743317612e+02 - -2.179587610888773e+02 -2.180659877532527e+02 -2.181732543954297e+02 -2.182805610486399e+02 -2.183879076260487e+02 - -2.184952940541088e+02 -2.186027204324891e+02 -2.187101868605661e+02 -2.188176932633304e+02 -2.189252395535715e+02 - -2.190328257696591e+02 -2.191404519835346e+02 -2.192481182758485e+02 -2.193558246894080e+02 -2.194635711069396e+02 - -2.195713574321837e+02 -2.196791838130171e+02 -2.197870503917547e+02 -2.198949570443306e+02 -2.200029036478261e+02 - -2.201108903502962e+02 -2.202189173008489e+02 -2.203269843818326e+02 -2.204350914576510e+02 -2.205432385876858e+02 - -2.206514258738742e+02 -2.207596533933995e+02 -2.208679211808499e+02 -2.209762291251867e+02 -2.210845771334710e+02 - -2.211929653307878e+02 -2.213013938407175e+02 -2.214098625627986e+02 -2.215183713969045e+02 -2.216269204682873e+02 - -2.217355099024502e+02 -2.218441396005216e+02 -2.219528094497077e+02 -2.220615195058979e+02 -2.221702698646027e+02 - -2.222790606111339e+02 -2.223878917838657e+02 -2.224967632436199e+02 -2.226056748766821e+02 -2.227146268487432e+02 - -2.228236193240230e+02 -2.229326521814535e+02 -2.230417252803019e+02 -2.231508386864637e+02 -2.232599925050409e+02 - -2.233691867913336e+02 -2.234784215614204e+02 -2.235876967242961e+02 -2.236970122086523e+02 -2.238063681290529e+02 - -2.239157646015454e+02 -2.240252015622403e+02 -2.241346789340316e+02 -2.242441967668838e+02 -2.243537551247286e+02 - -2.244633540002964e+02 -2.245729933685804e+02 -2.246826732048266e+02 -2.247923935126906e+02 -2.249021544092157e+02 - -2.250119559889259e+02 -2.251217981428817e+02 -2.252316807628839e+02 -2.253416039471573e+02 -2.254515678046834e+02 - -2.255615722810486e+02 -2.256716173029860e+02 -2.257817028852108e+02 -2.258918290784169e+02 -2.260019959892315e+02 - -2.261122036854213e+02 -2.262224520233766e+02 -2.263327408802082e+02 -2.264430704272837e+02 -2.265534408332552e+02 - -2.266638519616550e+02 -2.267743036660735e+02 -2.268847960654481e+02 -2.269953292962885e+02 -2.271059033000460e+02 - -2.272165179952407e+02 -2.273271734037251e+02 -2.274378695801794e+02 -2.275486066072624e+02 -2.276593845334010e+02 - -2.277702032421150e+02 -2.278810626343348e+02 -2.279919628455381e+02 -2.281029040172474e+02 -2.282138860806176e+02 - -2.283249089376286e+02 -2.284359725839265e+02 -2.285470770593814e+02 -2.286582224870930e+02 -2.287694089544078e+02 - -2.288806363224278e+02 -2.289919044640359e+02 -2.291032135254801e+02 -2.292145636582007e+02 -2.293259547610424e+02 - -2.294373867252146e+02 -2.295488596639802e+02 -2.296603736910369e+02 -2.297719286997702e+02 -2.298835245768747e+02 - -2.299951614025932e+02 -2.301068392919157e+02 -2.302185583052736e+02 -2.303303184582155e+02 -2.304421196413199e+02 - -2.305539617649887e+02 -2.306658449438852e+02 -2.307777692999738e+02 -2.308897347801602e+02 -2.310017413072381e+02 - -2.311137888826106e+02 -2.312258775426401e+02 -2.313380073849178e+02 -2.314501784790464e+02 -2.315623907214496e+02 - -2.316746440227619e+02 -2.317869385236417e+02 -2.318992743527083e+02 -2.320116513604021e+02 -2.321240694060221e+02 - -2.322365286624793e+02 -2.323490293043759e+02 -2.324615711994689e+02 -2.325741541998047e+02 -2.326867784014305e+02 - -2.327994439322068e+02 -2.329121508032486e+02 -2.330248989898164e+02 -2.331376884404961e+02 -2.332505191272475e+02 - -2.333633911421986e+02 -2.334763045743060e+02 -2.335892593796759e+02 -2.337022554911374e+02 -2.338152928812627e+02 - -2.339283715644559e+02 -2.340414916827054e+02 -2.341546533474617e+02 -2.342678564204413e+02 -2.343811007676228e+02 - -2.344943865217682e+02 -2.346077138212040e+02 -2.347210825597340e+02 -2.348344926295532e+02 -2.349479441609453e+02 - -2.350614372851493e+02 -2.351749718991416e+02 -2.352885478850955e+02 -2.354021653002366e+02 -2.355158242429473e+02 - -2.356295248011875e+02 -2.357432670145577e+02 -2.358570507396431e+02 -2.359708758587992e+02 -2.360847425404777e+02 - -2.361986509531367e+02 -2.363126009791645e+02 -2.364265924750662e+02 -2.365406254798825e+02 -2.366547000814751e+02 - -2.367688163804559e+02 -2.368829744348273e+02 -2.369971741194025e+02 -2.371114153287764e+02 -2.372256982198593e+02 - -2.373400229428812e+02 -2.374543893590377e+02 -2.375687973238754e+02 -2.376832469593778e+02 -2.377977384043928e+02 - -2.379122715987879e+02 -2.380268464580362e+02 -2.381414629990116e+02 -2.382561212769444e+02 -2.383708213990897e+02 - -2.384855634334210e+02 -2.386003472387607e+02 -2.387151726904082e+02 -2.388300399387221e+02 -2.389449491374237e+02 - -2.390599001786255e+02 -2.391748929369255e+02 -2.392899274784697e+02 -2.394050039061344e+02 -2.395201222781684e+02 - -2.396352826134916e+02 -2.397504848183333e+02 -2.398657288168898e+02 -2.399810147179146e+02 -2.400963426277219e+02 - -2.402117124583125e+02 -2.403271241258893e+02 -2.404425777577767e+02 -2.405580734795174e+02 -2.406736111984077e+02 - -2.407891907995794e+02 -2.409048122977546e+02 -2.410204757554728e+02 -2.411361812969551e+02 -2.412519290053517e+02 - -2.413677187378485e+02 -2.414835503650167e+02 -2.415994240369316e+02 -2.417153399089511e+02 -2.418312978780588e+02 - -2.419472978191357e+02 -2.420633397770240e+02 -2.421794238369657e+02 -2.422955500758429e+02 -2.424117185344053e+02 - -2.425279291172331e+02 -2.426441817421263e+02 -2.427604765159341e+02 -2.428768135466203e+02 -2.429931927575585e+02 - -2.431096140668555e+02 -2.432260775561414e+02 -2.433425833145866e+02 -2.434591312980004e+02 -2.435757214497087e+02 - -2.436923537964655e+02 -2.438090283895336e+02 -2.439257452947832e+02 -2.440425045463603e+02 -2.441593060369063e+02 - -2.442761496825792e+02 -2.443930356351059e+02 -2.445099640393889e+02 -2.446269347774639e+02 -2.447439477225602e+02 - -2.448610029755453e+02 -2.449781006544274e+02 -2.450952407181387e+02 -2.452124231032676e+02 -2.453296478161015e+02 - -2.454469148921256e+02 -2.455642244139170e+02 -2.456815764363974e+02 -2.457989708567751e+02 -2.459164075868465e+02 - -2.460338867544718e+02 -2.461514084874868e+02 -2.462689726975661e+02 -2.463865792818051e+02 -2.465042282951439e+02 - -2.466219198202147e+02 -2.467396538925739e+02 -2.468574305187124e+02 -2.469752496359336e+02 -2.470931112029433e+02 - -2.472110153332446e+02 -2.473289621270786e+02 -2.474469514768406e+02 -2.475649832814832e+02 -2.476830576740329e+02 - -2.478011747871381e+02 -2.479193345178656e+02 -2.480375367456449e+02 -2.481557815149384e+02 -2.482740689103307e+02 - -2.483923990118631e+02 -2.485107718618152e+02 -2.486291873559622e+02 -2.487476454083695e+02 -2.488661461527674e+02 - -2.489846897184250e+02 -2.491032759971039e+02 -2.492219048675295e+02 -2.493405763937896e+02 -2.494592906781626e+02 - -2.495780477903268e+02 -2.496968477531592e+02 -2.498156904349301e+02 -2.499345757349562e+02 -2.500535038313474e+02 - -2.501724748933778e+02 -2.502914887761886e+02 -2.504105453266259e+02 -2.505296446724864e+02 -2.506487869586733e+02 - -2.507679721175656e+02 -2.508872000588222e+02 -2.510064708137437e+02 -2.511257844438344e+02 -2.512451410097723e+02 - -2.513645405425343e+02 -2.514839829551193e+02 -2.516034681806881e+02 -2.517229963510282e+02 -2.518425675906852e+02 - -2.519621817966139e+02 -2.520818388494823e+02 -2.522015387924022e+02 -2.523212817096907e+02 -2.524410676880414e+02 - -2.525608967718439e+02 -2.526807688338955e+02 -2.528006837687293e+02 -2.529206417294141e+02 -2.530406428681973e+02 - -2.531606870755077e+02 -2.532807742357317e+02 -2.534009044709059e+02 -2.535210779031462e+02 -2.536412944172385e+02 - -2.537615538911017e+02 -2.538818564125164e+02 -2.540022021028112e+02 -2.541225910076441e+02 -2.542430231270507e+02 - -2.543634983542462e+02 -2.544840166121418e+02 -2.546045780492533e+02 -2.547251828099108e+02 -2.548458307960956e+02 - -2.549665218842466e+02 -2.550872560909815e+02 -2.552080334828205e+02 -2.553288541857174e+02 -2.554497182835964e+02 - -2.555706256328296e+02 -2.556915761009198e+02 -2.558125698274442e+02 -2.559336069560756e+02 -2.560546873747970e+02 - -2.561758109689862e+02 -2.562969778692906e+02 -2.564181882127723e+02 -2.565394419168841e+02 -2.566607388759341e+02 - -2.567820791112567e+02 -2.569034626862424e+02 -2.570248897054782e+02 -2.571463602359873e+02 -2.572678741533426e+02 - -2.573894313462550e+02 -2.575110319474426e+02 -2.576326760938784e+02 -2.577543636955484e+02 -2.578760946446893e+02 - -2.579978689895271e+02 -2.581196868133063e+02 -2.582415481833543e+02 -2.583634531275302e+02 -2.584854015317316e+02 - -2.586073933093156e+02 -2.587294286254374e+02 -2.588515076317444e+02 -2.589736301740566e+02 -2.590957960996737e+02 - -2.592180055676404e+02 -2.593402587446819e+02 -2.594625555165019e+02 -2.595848957490105e+02 -2.597072795099639e+02 - -2.598297069067293e+02 -2.599521780032740e+02 -2.600746928207452e+02 -2.601972512524080e+02 -2.603198532148209e+02 - -2.604424988455961e+02 -2.605651882765137e+02 -2.606879213949725e+02 -2.608106980758151e+02 -2.609335183880386e+02 - -2.610563824372016e+02 -2.611792902809524e+02 -2.613022419394243e+02 -2.614252373306019e+02 -2.615482763897488e+02 - -2.616713592233935e+02 -2.617944859260970e+02 -2.619176563732862e+02 -2.620408704583867e+02 -2.621641283659552e+02 - -2.622874302706103e+02 -2.624107760160917e+02 -2.625341654302978e+02 -2.626575986086381e+02 -2.627810756876698e+02 - -2.629045967010318e+02 -2.630281616427657e+02 -2.631517704514422e+02 -2.632754230861743e+02 -2.633991196437133e+02 - -2.635228602105341e+02 -2.636466446943674e+02 -2.637704729984163e+02 -2.638943451865159e+02 -2.640182613561179e+02 - -2.641422215785110e+02 -2.642662258795402e+02 -2.643902741294400e+02 -2.645143662245587e+02 -2.646385023213122e+02 - -2.647626825745115e+02 -2.648869068724856e+02 -2.650111750962730e+02 -2.651354873642347e+02 -2.652598438005879e+02 - -2.653842443156531e+02 -2.655086888035231e+02 -2.656331773072787e+02 -2.657577099091213e+02 -2.658822866987512e+02 - -2.660069077230897e+02 -2.661315728504449e+02 -2.662562819710931e+02 -2.663810352417937e+02 -2.665058328192844e+02 - -2.666306745937331e+02 -2.667555604333347e+02 -2.668804903849584e+02 -2.670054645383429e+02 -2.671304829760297e+02 - -2.672555457413816e+02 -2.673806527282453e+02 -2.675058038464400e+02 -2.676309992191929e+02 -2.677562389652032e+02 - -2.678815229716541e+02 -2.680068511277727e+02 -2.681322235624782e+02 -2.682576404136338e+02 -2.683831016151858e+02 - -2.685086070756685e+02 -2.686341568058856e+02 -2.687597508516357e+02 -2.688853892964312e+02 -2.690110721950252e+02 - -2.691367994494158e+02 -2.692625709807897e+02 -2.693883869398372e+02 -2.695142474621058e+02 -2.696401523930688e+02 - -2.697661015819900e+02 -2.698920951833660e+02 -2.700181333642693e+02 -2.701442160368443e+02 -2.702703430840482e+02 - -2.703965145270174e+02 -2.705227304331903e+02 -2.706489909170355e+02 -2.707752960482972e+02 -2.709016456707917e+02 - -2.710280396495872e+02 -2.711544781606855e+02 -2.712809613853167e+02 -2.714074892146895e+02 -2.715340615102555e+02 - -2.716606783044584e+02 -2.717873396730564e+02 -2.719140456940721e+02 -2.720407964136753e+02 -2.721675917483545e+02 - -2.722944316245073e+02 -2.724213161378437e+02 -2.725482453844213e+02 -2.726752192923742e+02 -2.728022377909456e+02 - -2.729293009817382e+02 -2.730564089616648e+02 -2.731835616365174e+02 -2.733107589046467e+02 -2.734380008257563e+02 - -2.735652874983575e+02 -2.736926190148396e+02 -2.738199954194386e+02 -2.739474165698984e+02 -2.740748823405867e+02 - -2.742023928588563e+02 -2.743299482670098e+02 -2.744575485141638e+02 -2.745851935229188e+02 -2.747128833029967e+02 - -2.748406178969678e+02 -2.749683973916734e+02 -2.750962218440648e+02 -2.752240911472609e+02 -2.753520052060601e+02 - -2.754799641358123e+02 -2.756079680559450e+02 -2.757360168916492e+02 -2.758641105650285e+02 -2.759922491800748e+02 - -2.761204328366440e+02 -2.762486614361617e+02 -2.763769348745897e+02 -2.765052532244616e+02 -2.766336165883748e+02 - -2.767620250126050e+02 -2.768904785041199e+02 -2.770189769689730e+02 -2.771475203398639e+02 -2.772761087569904e+02 - -2.774047423518460e+02 -2.775334210136085e+02 -2.776621446145333e+02 -2.777909132015001e+02 -2.779197268642361e+02 - -2.780485856892346e+02 -2.781774897218528e+02 -2.783064388461343e+02 -2.784354329669438e+02 -2.785644722337429e+02 - -2.786935567875348e+02 -2.788226864908934e+02 -2.789518612068105e+02 -2.790810810783757e+02 -2.792103462555617e+02 - -2.793396566357773e+02 -2.794690121008859e+02 -2.795984127231330e+02 -2.797278586088501e+02 -2.798573498103315e+02 - -2.799868863353985e+02 -2.801164680680156e+02 -2.802460949220819e+02 -2.803757670550874e+02 -2.805054846206144e+02 - -2.806352475130235e+02 -2.807650555997772e+02 -2.808949088999684e+02 -2.810248074853591e+02 -2.811547514867556e+02 - -2.812847409903677e+02 -2.814147758449749e+02 -2.815448559108459e+02 -2.816749813316353e+02 -2.818051522586102e+02 - -2.819353685901064e+02 -2.820656302199222e+02 -2.821959372766401e+02 -2.823262898869716e+02 -2.824566879353637e+02 - -2.825871312931868e+02 -2.827176200217700e+02 -2.828481542276227e+02 -2.829787340080183e+02 -2.831093594072626e+02 - -2.832400302670260e+02 -2.833707464559445e+02 -2.835015081531469e+02 -2.836323155420096e+02 -2.837631685124079e+02 - -2.838940669226656e+02 -2.840250107984012e+02 -2.841560002155769e+02 -2.842870352842360e+02 -2.844181160721325e+02 - -2.845492424437817e+02 -2.846804142799303e+02 -2.848116317294889e+02 -2.849428949404899e+02 -2.850742037892878e+02 - -2.852055581519247e+02 -2.853369581748677e+02 -2.854684040068092e+02 -2.855998955349205e+02 -2.857314326251873e+02 - -2.858630153203723e+02 -2.859946437114748e+02 -2.861263179056654e+02 -2.862580379663874e+02 -2.863898037660037e+02 - -2.865216151879669e+02 -2.866534723511688e+02 -2.867853753832939e+02 -2.869173242117615e+02 -2.870493187426322e+02 - -2.871813589967982e+02 -2.873134450373917e+02 -2.874455769816758e+02 -2.875777549027032e+02 -2.877099786425546e+02 - -2.878422480619707e+02 -2.879745633273037e+02 -2.881069246090204e+02 -2.882393317884377e+02 -2.883717847366556e+02 - -2.885042835730584e+02 -2.886368284288774e+02 -2.887694192344474e+02 -2.889020558953364e+02 -2.890347384189399e+02 - -2.891674668528066e+02 -2.893002413032724e+02 -2.894330618447220e+02 -2.895659283649483e+02 -2.896988407604515e+02 - -2.898317991491523e+02 -2.899648036558058e+02 -2.900978542110840e+02 -2.902309507220182e+02 -2.903640931951591e+02 - -2.904972816775983e+02 -2.906305162790740e+02 -2.907637970750559e+02 -2.908971239412933e+02 -2.910304967707643e+02 - -2.911639157250792e+02 -2.912973809535366e+02 -2.914308922875549e+02 -2.915644495654761e+02 -2.916980529712119e+02 - -2.918317026983915e+02 -2.919653986339440e+02 -2.920991406314096e+02 -2.922329287174719e+02 -2.923667629702973e+02 - -2.925006435008390e+02 -2.926345703772706e+02 -2.927685434638595e+02 -2.929025626397000e+02 -2.930366280470975e+02 - -2.931707398343328e+02 -2.933048979103752e+02 -2.934391021578708e+02 -2.935733525934834e+02 -2.937076492857184e+02 - -2.938419923764308e+02 -2.939763819565550e+02 -2.941108178399977e+02 -2.942452998623305e+02 -2.943798282228154e+02 - -2.945144031200941e+02 -2.946490243866398e+02 -2.947836918481424e+02 -2.949184056693277e+02 -2.950531660302706e+02 - -2.951879728334102e+02 -2.953228259514730e+02 -2.954577254159683e+02 -2.955926713017622e+02 -2.957276636983648e+02 - -2.958627026572042e+02 -2.959977880627373e+02 -2.961329198152110e+02 -2.962680980450039e+02 -2.964033228802077e+02 - -2.965385942096344e+02 -2.966739119278574e+02 -2.968092761917713e+02 -2.969446871501122e+02 -2.970801446566606e+02 - -2.972156485544735e+02 -2.973511989386669e+02 -2.974867959450954e+02 -2.976224396205114e+02 -2.977581299655766e+02 - -2.978938668856917e+02 -2.980296503111913e+02 -2.981654803674056e+02 -2.983013571739824e+02 -2.984372806328453e+02 - -2.985732506311156e+02 -2.987092672144286e+02 -2.988453304703744e+02 -2.989814404958496e+02 -2.991175973412398e+02 - -2.992538008615809e+02 -2.993900509369414e+02 -2.995263477428711e+02 -2.996626914493826e+02 -2.997990819088619e+02 - -2.999355189707111e+02 -3.000720027900217e+02 -3.002085335269560e+02 -3.003451110562723e+02 -3.004817352353309e+02 - -3.006184061373012e+02 -3.007551238767678e+02 -3.008918885181671e+02 -3.010287000846923e+02 -3.011655584847104e+02 - -3.013024636430795e+02 -3.014394156654455e+02 -3.015764146559894e+02 -3.017134605322491e+02 -3.018505532010304e+02 - -3.019876927128527e+02 -3.021248791518991e+02 -3.022621125932933e+02 -3.023993930706231e+02 -3.025367204603900e+02 - -3.026740946641424e+02 -3.028115158406990e+02 -3.029489841386069e+02 -3.030864994080570e+02 -3.032240615026816e+02 - -3.033616705882347e+02 -3.034993268395738e+02 -3.036370301558538e+02 -3.037747804087723e+02 -3.039125776359002e+02 - -3.040504219146317e+02 -3.041883133157825e+02 -3.043262518737324e+02 -3.044642374836954e+02 -3.046022700638564e+02 - -3.047403497634464e+02 -3.048784767248004e+02 -3.050166508316213e+02 -3.051548719471290e+02 -3.052931401112401e+02 - -3.054314554166776e+02 -3.055698179906950e+02 -3.057082279030724e+02 -3.058466849591645e+02 -3.059851889955948e+02 - -3.061237402384871e+02 -3.062623389075358e+02 -3.064009848072192e+02 -3.065396777363650e+02 -3.066784178864098e+02 - -3.068172054654241e+02 -3.069560403554044e+02 -3.070949224023651e+02 -3.072338516344630e+02 -3.073728281334552e+02 - -3.075118520133569e+02 -3.076509233435525e+02 -3.077900419826468e+02 -3.079292078053290e+02 -3.080684209614084e+02 - -3.082076816048298e+02 -3.083469896309615e+02 -3.084863449149456e+02 -3.086257475095906e+02 -3.087651975081579e+02 - -3.089046949880547e+02 -3.090442399817611e+02 -3.091838323579038e+02 -3.093234720151574e+02 -3.094631591362355e+02 - -3.096028938900603e+02 -3.097426761063483e+02 -3.098825056148365e+02 -3.100223825845469e+02 -3.101623071983122e+02 - -3.103022793549238e+02 -3.104422989228102e+02 -3.105823659329897e+02 -3.107224804626276e+02 -3.108626426108901e+02 - -3.110028524323948e+02 -3.111431097815640e+02 -3.112834145351391e+02 -3.114237668593314e+02 -3.115641669247677e+02 - -3.117046146302696e+02 -3.118451098470761e+02 -3.119856526079039e+02 -3.121262429897644e+02 -3.122668810853719e+02 - -3.124075669478935e+02 -3.125483004566077e+02 -3.126890815070839e+02 -3.128299102339429e+02 -3.129707867704560e+02 - -3.131117110054437e+02 -3.132526828292356e+02 -3.133937023826453e+02 -3.135347698019019e+02 -3.136758849544115e+02 - -3.138170476993112e+02 -3.139582581314797e+02 -3.140995163841689e+02 -3.142408225083815e+02 -3.143821765079714e+02 - -3.145235782804463e+02 -3.146650277504123e+02 -3.148065250572144e+02 -3.149480703283944e+02 -3.150896634295446e+02 - -3.152313042212708e+02 -3.153729928061792e+02 -3.155147293192109e+02 -3.156565137826469e+02 -3.157983461803634e+02 - -3.159402264552761e+02 -3.160821545730877e+02 -3.162241306316100e+02 -3.163661547129774e+02 -3.165082267045055e+02 - -3.166503465083330e+02 -3.167925142807053e+02 -3.169347301718565e+02 -3.170769940538677e+02 -3.172193057829434e+02 - -3.173616654299331e+02 -3.175040731106142e+02 -3.176465289058318e+02 -3.177890328440690e+02 -3.179315847792938e+02 - -3.180741845934695e+02 -3.182168324550577e+02 -3.183595285351408e+02 -3.185022727287870e+02 -3.186450649049847e+02 - -3.187879051044167e+02 -3.189307934072479e+02 -3.190737298798787e+02 -3.192167145562098e+02 -3.193597473539087e+02 - -3.195028282067584e+02 -3.196459572292360e+02 -3.197891345287240e+02 -3.199323600035334e+02 -3.200756335516368e+02 - -3.202189552787263e+02 -3.203623252990410e+02 -3.205057435532916e+02 -3.206492099607363e+02 -3.207927245283494e+02 - -3.209362873029775e+02 -3.210798984032395e+02 -3.212235579095965e+02 -3.213672656781062e+02 -3.215110215776564e+02 - -3.216548257528610e+02 -3.217986783602123e+02 -3.219425793279964e+02 -3.220865285490494e+02 -3.222305260026159e+02 - -3.223745717228416e+02 -3.225186658770672e+02 -3.226628085862362e+02 -3.228069996525048e+02 -3.229512388959131e+02 - -3.230955265268207e+02 -3.232398627556209e+02 -3.233842474025269e+02 -3.235286802821290e+02 -3.236731615767077e+02 - -3.238176914785998e+02 -3.239622698526831e+02 -3.241068965416273e+02 -3.242515716267282e+02 -3.243962952303619e+02 - -3.245410674006047e+02 -3.246858881442026e+02 -3.248307573768830e+02 -3.249756750377737e+02 -3.251206412506237e+02 - -3.252656561247559e+02 -3.254107195271718e+02 -3.255558313340717e+02 -3.257009917007768e+02 -3.258462007853361e+02 - -3.259914584775946e+02 -3.261367646471811e+02 -3.262821193510638e+02 -3.264275226864755e+02 -3.265729747243638e+02 - -3.267184754961565e+02 -3.268640249014856e+02 -3.270096228564299e+02 -3.271552694746495e+02 -3.273009648690628e+02 - -3.274467089520415e+02 -3.275925016223748e+02 -3.277383429250694e+02 -3.278842329472037e+02 -3.280301717979274e+02 - -3.281761595333842e+02 -3.283221959756238e+02 -3.284682809773962e+02 -3.286144147483458e+02 -3.287605974914733e+02 - -3.289068290263132e+02 -3.290531091681708e+02 -3.291994380988984e+02 -3.293458160115122e+02 -3.294922427771376e+02 - -3.296387182388717e+02 -3.297852424495862e+02 -3.299318155124273e+02 -3.300784375218649e+02 -3.302251085265343e+02 - -3.303718284004092e+02 -3.305185970357408e+02 -3.306654145725511e+02 -3.308122811494171e+02 -3.309591966513669e+02 - -3.311061609508276e+02 -3.312531741233722e+02 -3.314002362831168e+02 -3.315473474952068e+02 -3.316945077733321e+02 - -3.318417169743284e+02 -3.319889749946440e+02 -3.321362820460264e+02 -3.322836383216903e+02 -3.324310436254205e+02 - -3.325784977579187e+02 -3.327260008969810e+02 -3.328735532388732e+02 -3.330211546766479e+02 -3.331688050699581e+02 - -3.333165044480712e+02 -3.334642528918999e+02 -3.336120505193238e+02 -3.337598974031960e+02 -3.339077933992973e+02 - -3.340557383761620e+02 -3.342037324704123e+02 -3.343517758263186e+02 -3.344998683506588e+02 -3.346480099317598e+02 - -3.347962006216366e+02 -3.349444405123485e+02 -3.350927296924430e+02 -3.352410681997821e+02 -3.353894558729969e+02 - -3.355378925848257e+02 -3.356863785436656e+02 -3.358349139484366e+02 -3.359834986244929e+02 -3.361321323883865e+02 - -3.362808153950241e+02 -3.364295478191028e+02 -3.365783295761255e+02 -3.367271605486342e+02 -3.368760407465185e+02 - -3.370249702279324e+02 -3.371739491167402e+02 -3.373229774932894e+02 -3.374720551981496e+02 -3.376211820935624e+02 - -3.377703583682330e+02 -3.379195842066430e+02 -3.380688594499171e+02 -3.382181839217990e+02 -3.383675577198622e+02 - -3.385169809890102e+02 -3.386664537896355e+02 -3.388159761271593e+02 -3.389655478716282e+02 -3.391151689236262e+02 - -3.392648394412631e+02 -3.394145595795439e+02 -3.395643292235305e+02 -3.397141482525620e+02 -3.398640167930273e+02 - -3.400139349724158e+02 -3.401639026755699e+02 -3.403139197760493e+02 -3.404639863449279e+02 -3.406141024957107e+02 - -3.407642683141136e+02 -3.409144838324194e+02 -3.410647488969659e+02 -3.412150633828331e+02 -3.413654274660125e+02 - -3.415158413252182e+02 -3.416663048491409e+02 -3.418168178992377e+02 -3.419673805180489e+02 -3.421179927901010e+02 - -3.422686547867838e+02 -3.424193665441726e+02 -3.425701279702224e+02 -3.427209389917095e+02 -3.428717997388184e+02 - -3.430227103286458e+02 -3.431736706225328e+02 -3.433246804902436e+02 -3.434757400909901e+02 -3.436268495884827e+02 - -3.437780088749811e+02 -3.439292178162220e+02 -3.440804764432992e+02 -3.442317848369893e+02 -3.443831431114438e+02 - -3.445345513395477e+02 -3.446860093957458e+02 -3.448375171638715e+02 -3.449890747637513e+02 -3.451406823209921e+02 - -3.452923397483303e+02 -3.454440469383874e+02 -3.455958039161959e+02 -3.457476107544265e+02 -3.458994675838882e+02 - -3.460513744837874e+02 -3.462033312687789e+02 -3.463553377809081e+02 -3.465073942363314e+02 -3.466595008454457e+02 - -3.468116574214998e+02 -3.469638637732855e+02 -3.471161200889126e+02 -3.472684265676839e+02 -3.474207830743587e+02 - -3.475731894457752e+02 -3.477256457416318e+02 -3.478781520698926e+02 -3.480307085087305e+02 -3.481833150905516e+02 - -3.483359716944890e+02 -3.484886782275422e+02 -3.486414348614480e+02 -3.487942417546251e+02 -3.489470987474849e+02 - -3.491000056682386e+02 -3.492529626143035e+02 -3.494059697303613e+02 -3.495590270809477e+02 -3.497121346735108e+02 - -3.498652923672977e+02 -3.500185000578142e+02 -3.501717579338015e+02 -3.503250661735650e+02 -3.504784246204307e+02 - -3.506318331106053e+02 -3.507852917867942e+02 -3.509388008057230e+02 -3.510923600737020e+02 -3.512459694729739e+02 - -3.513996290399252e+02 -3.515533388531561e+02 -3.517070990059733e+02 -3.518609095547224e+02 -3.520147703931951e+02 - -3.521686814254426e+02 -3.523226427591028e+02 -3.524766545004363e+02 -3.526307165466042e+02 -3.527848288024159e+02 - -3.529389914123712e+02 -3.530932045168612e+02 -3.532474680001527e+02 -3.534017817301934e+02 -3.535561457657783e+02 - -3.537105602073667e+02 -3.538650251312291e+02 -3.540195405716707e+02 -3.541741064193253e+02 -3.543287225825957e+02 - -3.544833891846346e+02 -3.546381063473606e+02 -3.547928739730113e+02 -3.549476919508821e+02 -3.551025603381796e+02 - -3.552574792297605e+02 -3.554124487031720e+02 -3.555674687945711e+02 -3.557225393918643e+02 -3.558776604020463e+02 - -3.560328319567154e+02 -3.561880541805177e+02 -3.563433269456882e+02 -3.564986501330765e+02 -3.566540239103983e+02 - -3.568094484429710e+02 -3.569649235996524e+02 -3.571204492251743e+02 -3.572760253642205e+02 -3.574316521198430e+02 - -3.575873296286128e+02 -3.577430579645793e+02 -3.578988369181832e+02 -3.580546663122107e+02 -3.582105463824335e+02 - -3.583664773634632e+02 -3.585224590722860e+02 -3.586784912980774e+02 -3.588345741363943e+02 -3.589907077420278e+02 - -3.591468922003262e+02 -3.593031275347307e+02 -3.594594135904955e+02 -3.596157502414973e+02 -3.597721376542854e+02 - -3.599285759961583e+02 -3.600850651447366e+02 -3.602416049709182e+02 -3.603981956083848e+02 -3.605548371920680e+02 - -3.607115295991184e+02 -3.608682726958015e+02 -3.610250665626241e+02 -3.611819113190277e+02 -3.613388070259530e+02 - -3.614957536972620e+02 -3.616527512170044e+02 -3.618097994957786e+02 -3.619668986801910e+02 -3.621240489112448e+02 - -3.622812500715253e+02 -3.624385020268735e+02 -3.625958048345691e+02 -3.627531585959862e+02 -3.629105633974360e+02 - -3.630680192762735e+02 -3.632255260890885e+02 -3.633830837209757e+02 -3.635406923518125e+02 -3.636983521500620e+02 - -3.638560629437486e+02 -3.640138245654421e+02 -3.641716372063300e+02 -3.643295010634408e+02 -3.644874159985495e+02 - -3.646453818454157e+02 -3.648033986609884e+02 -3.649614665547653e+02 -3.651195856232492e+02 -3.652777559169987e+02 - -3.654359773157880e+02 -3.655942497193339e+02 -3.657525732779061e+02 -3.659109481367831e+02 -3.660693741707290e+02 - -3.662278512419212e+02 -3.663863794327037e+02 -3.665449588644519e+02 -3.667035895945005e+02 -3.668622716357800e+02 - -3.670210048876434e+02 -3.671797892763418e+02 -3.673386249492966e+02 -3.674975120447079e+02 -3.676564504427247e+02 - -3.678154400208724e+02 -3.679744809042344e+02 -3.681335732252156e+02 -3.682927168979475e+02 -3.684519118222935e+02 - -3.686111580593141e+02 -3.687704557033292e+02 -3.689298048205014e+02 -3.690892054329191e+02 -3.692486574145354e+02 - -3.694081606700869e+02 -3.695677153755793e+02 -3.697273216946131e+02 -3.698869794698993e+02 -3.700466885253786e+02 - -3.702064489307988e+02 -3.703662608017668e+02 -3.705261241915196e+02 -3.706860391012269e+02 -3.708460053861607e+02 - -3.710060229388483e+02 -3.711660919467376e+02 -3.713262125796104e+02 -3.714863846416646e+02 -3.716466079328989e+02 - -3.718068826020972e+02 -3.719672088201144e+02 -3.721275864973102e+02 -3.722880155098476e+02 -3.724484958575989e+02 - -3.726090275883345e+02 -3.727696108177087e+02 -3.729302456171431e+02 -3.730909318132427e+02 -3.732516692484294e+02 - -3.734124580732086e+02 -3.735732984485285e+02 -3.737341902690280e+02 -3.738951333966488e+02 -3.740561278288502e+02 - -3.742171736164895e+02 -3.743782708884933e+02 -3.745394197314636e+02 -3.747006199846337e+02 -3.748618715145197e+02 - -3.750231745441332e+02 -3.751845292967938e+02 -3.753459356405600e+02 -3.755073934398666e+02 -3.756689028999150e+02 - -3.758304642401999e+02 -3.759920773966298e+02 -3.761537422764503e+02 -3.763154589558405e+02 -3.764772275566993e+02 - -3.766390482148706e+02 -3.768009210261144e+02 -3.769628459119104e+02 -3.771248228066682e+02 -3.772868518707951e+02 - -3.774489332703654e+02 -3.776110669681248e+02 -3.777732529036114e+02 -3.779354911268638e+02 -3.780977817328078e+02 - -3.782601248854201e+02 -3.784225207068740e+02 -3.785849690830777e+02 -3.787474699201715e+02 -3.789100234414875e+02 - -3.790726298611719e+02 -3.792352890394379e+02 -3.793980008403989e+02 -3.795607654977005e+02 -3.797235832511840e+02 - -3.798864539959452e+02 -3.800493775732837e+02 -3.802123539540593e+02 -3.803753831256555e+02 -3.805384650119894e+02 - -3.807015994897982e+02 -3.808647863105625e+02 -3.810280252452890e+02 -3.811913162683451e+02 -3.813546593533040e+02 - -3.815180542672069e+02 -3.816815007606327e+02 -3.818449987248433e+02 -3.820085480876401e+02 -3.821721487823003e+02 - -3.823358007029311e+02 -3.824995035814819e+02 -3.826632571794644e+02 -3.828270615387958e+02 -3.829909166775790e+02 - -3.831548222382581e+02 -3.833187778788636e+02 -3.834827836954302e+02 -3.836468397830658e+02 -3.838109457951704e+02 - -3.839751013606573e+02 -3.841393064522010e+02 -3.843035610985582e+02 -3.844678652090594e+02 -3.846322186342679e+02 - -3.847966211091070e+02 -3.849610723938522e+02 -3.851255724658270e+02 -3.852901213276589e+02 -3.854547188661456e+02 - -3.856193651039130e+02 -3.857840607227301e+02 -3.859488064858506e+02 -3.861136028233281e+02 -3.862784501283425e+02 - -3.864433489797775e+02 -3.866083000045549e+02 -3.867733038360474e+02 -3.869383610689728e+02 -3.871034721369783e+02 - -3.872686374886131e+02 -3.874338577931016e+02 -3.875991337168530e+02 -3.877644656943423e+02 -3.879298541437876e+02 - -3.880952996503134e+02 -3.882608028487801e+02 -3.884263644060860e+02 -3.885919849359946e+02 -3.887576648076931e+02 - -3.889234044110585e+02 -3.890892044633024e+02 -3.892550656828005e+02 -3.894209884652491e+02 -3.895869732058733e+02 - -3.897530206206903e+02 -3.899191314265681e+02 -3.900853060229904e+02 -3.902515447813749e+02 -3.904178482782592e+02 - -3.905842171832736e+02 -3.907506523333024e+02 -3.909171542011455e+02 -3.910837216360146e+02 -3.912503530200719e+02 - -3.914170464908692e+02 -3.915838000867597e+02 -3.917506116939103e+02 -3.919174791997058e+02 -3.920844006485843e+02 - -3.922513741233318e+02 -3.924183977030698e+02 -3.925854694180132e+02 -3.927525871064144e+02 -3.929197486330507e+02 - -3.930869521607613e+02 -3.932541958513385e+02 -3.934214775643266e+02 -3.935887951493436e+02 -3.937561467185514e+02 - -3.939235303999417e+02 -3.940909441222876e+02 -3.942583857858931e+02 -3.944258533764072e+02 -3.945933449213566e+02 - -3.947608585304349e+02 -3.949283922804248e+02 -3.950959440342958e+02 -3.952635116636291e+02 -3.954310932882606e+02 - -3.955986870327357e+02 -3.957662907921835e+02 -3.959339024467546e+02 -3.961015200461023e+02 -3.962691416638499e+02 - 1.070000000000000e-01 1.069682658750319e-01 1.069365186252596e-01 1.069047582677665e-01 1.068729848196356e-01 - 1.068411982979503e-01 1.068093987197937e-01 1.067775861022493e-01 1.067457604624000e-01 1.067139218173294e-01 - 1.066820701841205e-01 1.066502055798566e-01 1.066183280216209e-01 1.065864375264968e-01 1.065545341115673e-01 - 1.065226177939159e-01 1.064906885906257e-01 1.064587465187799e-01 1.064267915954618e-01 1.063948238377547e-01 - 1.063628432627417e-01 1.063308498875062e-01 1.062988437291314e-01 1.062668248047005e-01 1.062347931312967e-01 - 1.062027487260033e-01 1.061706916059036e-01 1.061386217880807e-01 1.061065392896180e-01 1.060744441275985e-01 - 1.060423363191058e-01 1.060102158812228e-01 1.059780828310330e-01 1.059459371856195e-01 1.059137789620655e-01 - 1.058816081774544e-01 1.058494248488693e-01 1.058172289933936e-01 1.057850206281103e-01 1.057527997701029e-01 - 1.057205664364545e-01 1.056883206442483e-01 1.056560624105677e-01 1.056237917524958e-01 1.055915086871159e-01 - 1.055592132315112e-01 1.055269054027650e-01 1.054945852179606e-01 1.054622526941811e-01 1.054299078485097e-01 - 1.053975506980299e-01 1.053651812598247e-01 1.053327995509774e-01 1.053004055885713e-01 1.052679993896897e-01 - 1.052355809714157e-01 1.052031503508325e-01 1.051707075450236e-01 1.051382525710719e-01 1.051057854460610e-01 - 1.050733061870738e-01 1.050408148111938e-01 1.050083113355042e-01 1.049757957770881e-01 1.049432681530288e-01 - 1.049107284804097e-01 1.048781767763138e-01 1.048456130578245e-01 1.048130373420250e-01 1.047804496459986e-01 - 1.047478499868284e-01 1.047152383815977e-01 1.046826148473898e-01 1.046499794012880e-01 1.046173320603753e-01 - 1.045846728417352e-01 1.045520017624508e-01 1.045193188396054e-01 1.044866240902822e-01 1.044539175315645e-01 - 1.044211991805354e-01 1.043884690542783e-01 1.043557271698764e-01 1.043229735444130e-01 1.042902081949712e-01 - 1.042574311386343e-01 1.042246423924855e-01 1.041918419736082e-01 1.041590298990855e-01 1.041262061860007e-01 - 1.040933708514369e-01 1.040605239124776e-01 1.040276653862059e-01 1.039947952897050e-01 1.039619136400582e-01 - 1.039290204543487e-01 1.038961157496599e-01 1.038631995430748e-01 1.038302718516768e-01 1.037973326925491e-01 - 1.037643820827749e-01 1.037314200394375e-01 1.036984465796201e-01 1.036654617204061e-01 1.036324654788785e-01 - 1.035994578721206e-01 1.035664389172158e-01 1.035334086312472e-01 1.035003670312980e-01 1.034673141344516e-01 - 1.034342499577912e-01 1.034011745183999e-01 1.033680878333612e-01 1.033349899197580e-01 1.033018807946739e-01 - 1.032687604751918e-01 1.032356289783953e-01 1.032024863213673e-01 1.031693325211913e-01 1.031361675949504e-01 - 1.031029915597278e-01 1.030698044326069e-01 1.030366062306709e-01 1.030033969710030e-01 1.029701766706864e-01 - 1.029369453468044e-01 1.029037030164402e-01 1.028704496966771e-01 1.028371854045984e-01 1.028039101572872e-01 - 1.027706239718267e-01 1.027373268653004e-01 1.027040188547913e-01 1.026706999573827e-01 1.026373701901580e-01 - 1.026040295702002e-01 1.025706781145926e-01 1.025373158404186e-01 1.025039427647613e-01 1.024705589047040e-01 - 1.024371642773299e-01 1.024037588997223e-01 1.023703427889643e-01 1.023369159621393e-01 1.023034784363305e-01 - 1.022700302286212e-01 1.022365713560945e-01 1.022031018358337e-01 1.021696216849221e-01 1.021361309204428e-01 - 1.021026295594792e-01 1.020691176191145e-01 1.020355951164319e-01 1.020020620685147e-01 1.019685184924461e-01 - 1.019349644053093e-01 1.019013998241876e-01 1.018678247661643e-01 1.018342392483225e-01 1.018006432877456e-01 - 1.017670369015167e-01 1.017334201067191e-01 1.016997929204361e-01 1.016661553597508e-01 1.016325074417466e-01 - 1.015988491835066e-01 1.015651806021141e-01 1.015315017146524e-01 1.014978125382047e-01 1.014641130898543e-01 - 1.014304033866843e-01 1.013966834457780e-01 1.013629532842187e-01 1.013292129190896e-01 1.012954623674739e-01 - 1.012617016464549e-01 1.012279307731159e-01 1.011941497645400e-01 1.011603586378106e-01 1.011265574100107e-01 - 1.010927460982239e-01 1.010589247195331e-01 1.010250932910217e-01 1.009912518297729e-01 1.009574003528701e-01 - 1.009235388773963e-01 1.008896674204348e-01 1.008557859990690e-01 1.008218946303820e-01 1.007879933314571e-01 - 1.007540821193774e-01 1.007201610112264e-01 1.006862300240872e-01 1.006522891750429e-01 1.006183384811770e-01 - 1.005843779595726e-01 1.005504076273130e-01 1.005164275014813e-01 1.004824375991610e-01 1.004484379374351e-01 - 1.004144285333870e-01 1.003804094040999e-01 1.003463805666569e-01 1.003123420381414e-01 1.002782938356367e-01 - 1.002442359762259e-01 1.002101684769922e-01 1.001760913550190e-01 1.001420046273895e-01 1.001079083111869e-01 - 1.000738024234945e-01 1.000396869813954e-01 1.000055620019730e-01 9.997142750231042e-02 9.993728349949102e-02 - 9.990313001059796e-02 9.986896705271456e-02 9.983479464292398e-02 9.980061279830947e-02 9.976642153595434e-02 - 9.973222087294174e-02 9.969801082635499e-02 9.966379141327726e-02 9.962956265079187e-02 9.959532455598200e-02 - 9.956107714593093e-02 9.952682043772192e-02 9.949255444843813e-02 9.945827919516288e-02 9.942399469497937e-02 - 9.938970096497086e-02 9.935539802222057e-02 9.932108588381178e-02 9.928676456682770e-02 9.925243408835159e-02 - 9.921809446546671e-02 9.918374571525623e-02 9.914938785480347e-02 9.911502090119163e-02 9.908064487150398e-02 - 9.904625978282372e-02 9.901186565223413e-02 9.897746249681845e-02 9.894305033365988e-02 9.890862917984172e-02 - 9.887419905244718e-02 9.883975996855951e-02 9.880531194526194e-02 9.877085499963774e-02 9.873638914877009e-02 - 9.870191440974231e-02 9.866743079963761e-02 9.863293833553920e-02 9.859843703453038e-02 9.856392691369432e-02 - 9.852940799011436e-02 9.849488028087365e-02 9.846034380305550e-02 9.842579857374308e-02 9.839124461001970e-02 - 9.835668192896858e-02 9.832211054767293e-02 9.828753048321603e-02 9.825294175268109e-02 9.821834437315143e-02 - 9.818373836171017e-02 9.814912373544066e-02 9.811450051142606e-02 9.807986870674969e-02 9.804522833849474e-02 - 9.801057942374444e-02 9.797592197958208e-02 9.794125602309085e-02 9.790658157135405e-02 9.787189864145487e-02 - 9.783720725047659e-02 9.780250741550246e-02 9.776779915361565e-02 9.773308248189948e-02 9.769835741743713e-02 - 9.766362397731190e-02 9.762888217860698e-02 9.759413203840565e-02 9.755937357379113e-02 9.752460680184671e-02 - 9.748983173965557e-02 9.745504840430097e-02 9.742025681286617e-02 9.738545698243438e-02 9.735064893008888e-02 - 9.731583267291286e-02 9.728100822798963e-02 9.724617561240236e-02 9.721133484323437e-02 9.717648593756885e-02 - 9.714162891248904e-02 9.710676378507821e-02 9.707189057241956e-02 9.703700929159639e-02 9.700211995969188e-02 - 9.696722259378933e-02 9.693231721097194e-02 9.689740382832296e-02 9.686248246292567e-02 9.682755313186324e-02 - 9.679261585221899e-02 9.675767064107609e-02 9.672271751551782e-02 9.668775649262741e-02 9.665278758948814e-02 - 9.661781082318323e-02 9.658282621079586e-02 9.654783376940938e-02 9.651283351610694e-02 9.647782546797186e-02 - 9.644280964208730e-02 9.640778605553657e-02 9.637275472540287e-02 9.633771566876947e-02 9.630266890271960e-02 - 9.626761444433649e-02 9.623255231070338e-02 9.619748251890356e-02 9.616240508602021e-02 9.612732002913663e-02 - 9.609222736533599e-02 9.605712711170160e-02 9.602201928531666e-02 9.598690390326445e-02 9.595178098262819e-02 - 9.591665054049109e-02 9.588151259393644e-02 9.584636716004745e-02 9.581121425590743e-02 9.577605389859950e-02 - 9.574088610520702e-02 9.570571089281314e-02 9.567052827850117e-02 9.563533827935435e-02 9.560014091245586e-02 - 9.556493619488900e-02 9.552972414373699e-02 9.549450477608308e-02 9.545927810901049e-02 9.542404415960248e-02 - 9.538880294494230e-02 9.535355448211316e-02 9.531829878819836e-02 9.528303588028109e-02 9.524776577544461e-02 - 9.521248849077216e-02 9.517720404334697e-02 9.514191245025229e-02 9.510661372857139e-02 9.507130789538748e-02 - 9.503599496778380e-02 9.500067496284360e-02 9.496534789765015e-02 9.493001378928664e-02 9.489467265483635e-02 - 9.485932451138250e-02 9.482396937600834e-02 9.478860726579713e-02 9.475323819783207e-02 9.471786218919645e-02 - 9.468247925697347e-02 9.464708941824643e-02 9.461169269009850e-02 9.457628908961296e-02 9.454087863387305e-02 - 9.450546133996199e-02 9.447003722496307e-02 9.443460630595948e-02 9.439916860003450e-02 9.436372412427137e-02 - 9.432827289575330e-02 9.429281493156354e-02 9.425735024878537e-02 9.422187886450198e-02 9.418640079579664e-02 - 9.415091605975259e-02 9.411542467345307e-02 9.407992665398136e-02 9.404442201842063e-02 9.400891078385415e-02 - 9.397339296736518e-02 9.393786858603695e-02 9.390233765695270e-02 9.386680019719568e-02 9.383125622384911e-02 - 9.379570575399625e-02 9.376014880472036e-02 9.372458539310466e-02 9.368901553623238e-02 9.365343925118678e-02 - 9.361785655505112e-02 9.358226746490858e-02 9.354667199784246e-02 9.351107017093598e-02 9.347546200127239e-02 - 9.343984750593494e-02 9.340422670200685e-02 9.336859960657137e-02 9.333296623671174e-02 9.329732660951121e-02 - 9.326168074205300e-02 9.322602865142039e-02 9.319037035469660e-02 9.315470586896488e-02 9.311903521130845e-02 - 9.308335839881057e-02 9.304767544855448e-02 9.301198637762342e-02 9.297629120310064e-02 9.294058994206936e-02 - 9.290488261161287e-02 9.286916922881436e-02 9.283344981075708e-02 9.279772437452428e-02 9.276199293719922e-02 - 9.272625551586512e-02 9.269051212760523e-02 9.265476278950278e-02 9.261900751864104e-02 9.258324633210324e-02 - 9.254747924697261e-02 9.251170628033240e-02 9.247592744926583e-02 9.244014277085617e-02 9.240435226218666e-02 - 9.236855594034055e-02 9.233275382240104e-02 9.229694592545142e-02 9.226113226657491e-02 9.222531286285476e-02 - 9.218948773137420e-02 9.215365688921646e-02 9.211782035346482e-02 9.208197814120249e-02 9.204613026951274e-02 - 9.201027675547878e-02 9.197441761618388e-02 9.193855286871126e-02 9.190268253014419e-02 9.186680661756588e-02 - 9.183092514805957e-02 9.179503813870854e-02 9.175914560659600e-02 9.172324756880521e-02 9.168734404241941e-02 - 9.165143504452181e-02 9.161552059219569e-02 9.157960070252427e-02 9.154367539259080e-02 9.150774467947854e-02 - 9.147180858027071e-02 9.143586711205055e-02 9.139992029190132e-02 9.136396813690625e-02 9.132801066414858e-02 - 9.129204789071155e-02 9.125607983367841e-02 9.122010651013239e-02 9.118412793715676e-02 9.114814413183472e-02 - 9.111215511124955e-02 9.107616089248448e-02 9.104016149262276e-02 9.100415692874760e-02 9.096814721794225e-02 - 9.093213237728998e-02 9.089611242387401e-02 9.086008737477760e-02 9.082405724708396e-02 9.078802205787638e-02 - 9.075198182423806e-02 9.071593656325225e-02 9.067988629200220e-02 9.064383102757116e-02 9.060777078704237e-02 - 9.057170558749904e-02 9.053563544602444e-02 9.049956037970180e-02 9.046348040561442e-02 9.042739554084545e-02 - 9.039130580247817e-02 9.035521120759583e-02 9.031911177328168e-02 9.028300751661894e-02 9.024689845469086e-02 - 9.021078460458068e-02 9.017466598337168e-02 9.013854260814702e-02 9.010241449599002e-02 9.006628166398388e-02 - 9.003014412921184e-02 8.999400190875718e-02 8.995785501970310e-02 8.992170347913286e-02 8.988554730412972e-02 - 8.984938651177689e-02 8.981322111915761e-02 8.977705114335516e-02 8.974087660145275e-02 8.970469751053363e-02 - 8.966851388768103e-02 8.963232574997822e-02 8.959613311450842e-02 8.955993599835491e-02 8.952373441860086e-02 - 8.948752839232957e-02 8.945131793662427e-02 8.941510306856817e-02 8.937888380524456e-02 8.934266016373665e-02 - 8.930643216112769e-02 8.927019981450095e-02 8.923396314093963e-02 8.919772215752698e-02 8.916147688134625e-02 - 8.912522732948071e-02 8.908897351901354e-02 8.905271546702803e-02 8.901645319060740e-02 8.898018670683491e-02 - 8.894391603279379e-02 8.890764118556729e-02 8.887136218223864e-02 8.883507903989107e-02 8.879879177560786e-02 - 8.876250040647221e-02 8.872620494956741e-02 8.868990542197666e-02 8.865360184078323e-02 8.861729422307035e-02 - 8.858098258592126e-02 8.854466694641919e-02 8.850834732164740e-02 8.847202372868912e-02 8.843569618462761e-02 - 8.839936470654611e-02 8.836302931152785e-02 8.832669001665606e-02 8.829034683901400e-02 8.825399979568492e-02 - 8.821764890375206e-02 8.818129418029862e-02 8.814493564240788e-02 8.810857330716310e-02 8.807220719164749e-02 - 8.803583731294432e-02 8.799946368813677e-02 8.796308633430815e-02 8.792670526854167e-02 8.789032050792057e-02 - 8.785393206952812e-02 8.781753997044753e-02 8.778114422776205e-02 8.774474485855495e-02 8.770834187990943e-02 - 8.767193530890875e-02 8.763552516263615e-02 8.759911145817488e-02 8.756269421260816e-02 8.752627344301928e-02 - 8.748984916649143e-02 8.745342140010788e-02 8.741699016095185e-02 8.738055546610660e-02 8.734411733265539e-02 - 8.730767577768141e-02 8.727123081826793e-02 8.723478247149821e-02 8.719833075445547e-02 8.716187568422298e-02 - 8.712541727788393e-02 8.708895555252159e-02 8.705249052521923e-02 8.701602221306004e-02 8.697955063312730e-02 - 8.694307580250422e-02 8.690659773827408e-02 8.687011645752010e-02 8.683363197732555e-02 8.679714431477362e-02 - 8.676065348694757e-02 8.672415951093065e-02 8.668766240380611e-02 8.665116218265721e-02 8.661465886456714e-02 - 8.657815246661917e-02 8.654164300589655e-02 8.650513049948251e-02 8.646861496446030e-02 8.643209641791315e-02 - 8.639557487692430e-02 8.635905035857701e-02 8.632252287995451e-02 8.628599245814005e-02 8.624945911021686e-02 - 8.621292285326819e-02 8.617638370437727e-02 8.613984168062737e-02 8.610329679910171e-02 8.606674907688353e-02 - 8.603019853105608e-02 8.599364517870259e-02 8.595708903690633e-02 8.592053012275053e-02 8.588396845331842e-02 - 8.584740404569323e-02 8.581083691695822e-02 8.577426708419665e-02 8.573769456449173e-02 8.570111937492672e-02 - 8.566454153258486e-02 8.562796105454940e-02 8.559137795790356e-02 8.555479225973059e-02 8.551820397711374e-02 - 8.548161312713624e-02 8.544501972688134e-02 8.540842379343229e-02 8.537182534387232e-02 8.533522439528468e-02 - 8.529862096475260e-02 8.526201506935933e-02 8.522540672618811e-02 8.518879595232219e-02 8.515218276484479e-02 - 8.511556718083918e-02 8.507894921738858e-02 8.504232889157626e-02 8.500570622048544e-02 8.496908122119934e-02 - 8.493245391080124e-02 8.489582430637438e-02 8.485919242500198e-02 8.482255828376728e-02 8.478592189975355e-02 - 8.474928329004400e-02 8.471264247172190e-02 8.467599946187047e-02 8.463935427757298e-02 8.460270693591267e-02 - 8.456605745397273e-02 8.452940584883646e-02 8.449275213758706e-02 8.445609633730780e-02 8.441943846508193e-02 - 8.438277853799266e-02 8.434611657312326e-02 8.430945258755695e-02 8.427278659837699e-02 8.423611862266661e-02 - 8.419944867750905e-02 8.416277677998756e-02 8.412610294718537e-02 8.408942719618576e-02 8.405274954407191e-02 - 8.401607000792713e-02 8.397938860483460e-02 8.394270535187759e-02 8.390602026613936e-02 8.386933336470312e-02 - 8.383264466465212e-02 8.379595418306962e-02 8.375926193703884e-02 8.372256794364304e-02 8.368587221996546e-02 - 8.364917478308932e-02 8.361247565009787e-02 8.357577483807437e-02 8.353907236410206e-02 8.350236824526415e-02 - 8.346566249864391e-02 8.342895514132459e-02 8.339224619038943e-02 8.335553566292164e-02 8.331882357600448e-02 - 8.328210994672121e-02 8.324539479215504e-02 8.320867812938924e-02 8.317195997550704e-02 8.313524034759166e-02 - 8.309851926272641e-02 8.306179673799445e-02 8.302507279047908e-02 8.298834743726349e-02 8.295162069543097e-02 - 8.291489258206473e-02 8.287816311424805e-02 8.284143230906414e-02 8.280470018359624e-02 8.276796675492762e-02 - 8.273123204014149e-02 8.269449605632111e-02 8.265775882054972e-02 8.262102034991055e-02 8.258428066148686e-02 - 8.254753977236187e-02 8.251079769961885e-02 8.247405446034105e-02 8.243731007161166e-02 8.240056455051395e-02 - 8.236381791413117e-02 8.232707017954656e-02 8.229032136384334e-02 8.225357148410478e-02 8.221682055741411e-02 - 8.218006860085458e-02 8.214331563150944e-02 8.210656166646188e-02 8.206980672279519e-02 8.203305081759260e-02 - 8.199629396793737e-02 8.195953619091272e-02 8.192277750360188e-02 8.188601792308813e-02 8.184925746645468e-02 - 8.181249615078479e-02 8.177573399316168e-02 8.173897101066861e-02 8.170220722038883e-02 8.166544263940556e-02 - 8.162867728480205e-02 8.159191117366156e-02 8.155514432306732e-02 8.151837675010254e-02 8.148160847185050e-02 - 8.144483950539445e-02 8.140806986781760e-02 8.137129957620320e-02 8.133452864763450e-02 8.129775709919475e-02 - 8.126098494796720e-02 8.122421221103504e-02 8.118743890548155e-02 8.115066504838998e-02 8.111389065684355e-02 - 8.107711574792552e-02 8.104034033871912e-02 8.100356444630759e-02 8.096678808777417e-02 8.093001128020215e-02 - 8.089323404067471e-02 8.085645638627510e-02 8.081967833408658e-02 8.078289990119239e-02 8.074612110467576e-02 - 8.070934196161997e-02 8.067256248910820e-02 8.063578270422375e-02 8.059900262404983e-02 8.056222226566968e-02 - 8.052544164616657e-02 8.048866078262369e-02 8.045187969212433e-02 8.041509839175172e-02 8.037831689858911e-02 - 8.034153522971973e-02 8.030475340222681e-02 8.026797143319361e-02 8.023118933970336e-02 8.019440713883932e-02 - 8.015762484768471e-02 8.012084248332278e-02 8.008406006283678e-02 8.004727760330994e-02 8.001049512182555e-02 - 7.997371263546676e-02 7.993693016131688e-02 7.990014771645915e-02 7.986336531797676e-02 7.982658298295300e-02 - 7.978980072847111e-02 7.975301857161432e-02 7.971623652946590e-02 7.967945461910902e-02 7.964267285762699e-02 - 7.960589126210302e-02 7.956910984962039e-02 7.953232863726228e-02 7.949554764211197e-02 7.945876688125271e-02 - 7.942198637176773e-02 7.938520613074028e-02 7.934842617525358e-02 7.931164652239087e-02 7.927486718923542e-02 - 7.923808819287045e-02 7.920130955037924e-02 7.916453127884499e-02 7.912775339535094e-02 7.909097591698037e-02 - 7.905419886081648e-02 7.901742224394255e-02 7.898064608344180e-02 7.894387039639746e-02 7.890709519989279e-02 - 7.887032051101103e-02 7.883354634683543e-02 7.879677272444922e-02 7.875999966093565e-02 7.872322717337794e-02 - 7.868645527885937e-02 7.864968399446313e-02 7.861291333727252e-02 7.857614332437074e-02 7.853937397284104e-02 - 7.850260529976670e-02 7.846583732223091e-02 7.842907005731693e-02 7.839230352210801e-02 7.835553773368738e-02 - 7.831877270913830e-02 7.828200846554398e-02 7.824524501998768e-02 7.820848238955266e-02 7.817172059132216e-02 - 7.813495964237939e-02 7.809819955980761e-02 7.806144036069006e-02 7.802468206210998e-02 7.798792468115062e-02 - 7.795116823489523e-02 7.791441274042703e-02 7.787765821482928e-02 7.784090467518520e-02 7.780415213857807e-02 - 7.776740062209107e-02 7.773065014280750e-02 7.769390071781057e-02 7.765715236418354e-02 7.762040509900967e-02 - 7.758365893937215e-02 7.754691390235426e-02 7.751017000503922e-02 7.747342726451029e-02 7.743668569785070e-02 - 7.739994532214370e-02 7.736320615447252e-02 7.732646821192042e-02 7.728973151157063e-02 7.725299607050642e-02 - 7.721626190581099e-02 7.717952903456758e-02 7.714279747385946e-02 7.710606724076986e-02 7.706933835238206e-02 - 7.703261082577922e-02 7.699588467804465e-02 7.695915992626157e-02 7.692243658751323e-02 7.688571467888285e-02 - 7.684899421745368e-02 7.681227522030898e-02 7.677555770453198e-02 7.673884168720593e-02 7.670212718541405e-02 - 7.666541421623961e-02 7.662870279676583e-02 7.659199294407595e-02 7.655528467525324e-02 7.651857800738091e-02 - 7.648187295754222e-02 7.644516954282041e-02 7.640846778029871e-02 7.637176768706039e-02 7.633506928018867e-02 - 7.629837257676678e-02 7.626167759387799e-02 7.622498434860552e-02 7.618829285803264e-02 7.615160313924255e-02 - 7.611491520931853e-02 7.607822908534380e-02 7.604154478440163e-02 7.600486232357523e-02 7.596818171994783e-02 - 7.593150299060271e-02 7.589482615262309e-02 7.585815122309225e-02 7.582147821909338e-02 7.578480715770973e-02 - 7.574813805602458e-02 7.571147093112113e-02 7.567480580008265e-02 7.563814267999236e-02 7.560148158793352e-02 - 7.556482254098935e-02 7.552816555624312e-02 7.549151065077807e-02 7.545485784167741e-02 7.541820714602442e-02 - 7.538155858090231e-02 7.534491216339434e-02 7.530826791058375e-02 7.527162583955378e-02 7.523498596738766e-02 - 7.519834831116866e-02 7.516171288797999e-02 7.512507971490495e-02 7.508844880902671e-02 7.505182018742854e-02 - 7.501519386719367e-02 7.497856986540538e-02 7.494194819914687e-02 7.490532888550142e-02 7.486871194155223e-02 - 7.483209738438257e-02 7.479548523107570e-02 7.475887549871482e-02 7.472226820438319e-02 7.468566336516404e-02 - 7.464906099814063e-02 7.461246112039621e-02 7.457586374901400e-02 7.453926890107723e-02 7.450267659366919e-02 - 7.446608684387307e-02 7.442949966877216e-02 7.439291508544965e-02 7.435633311098883e-02 7.431975376247291e-02 - 7.428317705698513e-02 7.424660301160878e-02 7.421003164342704e-02 7.417346296952319e-02 7.413689700698045e-02 - 7.410033377288210e-02 7.406377328431132e-02 7.402721555835140e-02 7.399066061208556e-02 7.395410846259706e-02 - 7.391755912696915e-02 7.388101262228504e-02 7.384446896562798e-02 7.380792817408122e-02 7.377139026472800e-02 - 7.373485525465158e-02 7.369832316093516e-02 7.366179400066203e-02 7.362526779091538e-02 7.358874454877849e-02 - 7.355222429133459e-02 7.351570703566694e-02 7.347919279885876e-02 7.344268159799329e-02 7.340617345015378e-02 - 7.336966837242348e-02 7.333316638188561e-02 7.329666749562345e-02 7.326017173072021e-02 7.322367910425913e-02 - 7.318718963332346e-02 7.315070333499644e-02 7.311422022636133e-02 7.307774032450136e-02 7.304126364649975e-02 - 7.300479020943977e-02 7.296832003040465e-02 7.293185312647765e-02 7.289538951474199e-02 7.285892921228092e-02 - 7.282247223617767e-02 7.278601860351550e-02 7.274956833137766e-02 7.271312143684736e-02 7.267667793700786e-02 - 7.264023784894239e-02 7.260380118973422e-02 7.256736797646657e-02 7.253093822622268e-02 7.249451195608582e-02 - 7.245808918313920e-02 7.242166992446607e-02 7.238525419714967e-02 7.234884201827325e-02 7.231243340492007e-02 - 7.227602837417331e-02 7.223962694311627e-02 7.220322912883217e-02 7.216683494840427e-02 7.213044441891579e-02 - 7.209405755744998e-02 7.205767438109009e-02 7.202129490691934e-02 7.198491915202099e-02 7.194854713347830e-02 - 7.191217886837446e-02 7.187581437379276e-02 7.183945366681642e-02 7.180309676452867e-02 7.176674368401278e-02 - 7.173039444235199e-02 7.169404905662952e-02 7.165770754392863e-02 7.162136992133256e-02 7.158503620592453e-02 - 7.154870641478780e-02 7.151238056500563e-02 7.147605867366123e-02 7.143974075783785e-02 7.140342683461876e-02 - 7.136711692108716e-02 7.133081103432631e-02 7.129450919141947e-02 7.125821140944985e-02 7.122191770550071e-02 - 7.118562809665530e-02 7.114934259999683e-02 7.111306123260858e-02 7.107678401157377e-02 7.104051095397565e-02 - 7.100424207689746e-02 7.096797739742244e-02 7.093171693263382e-02 7.089546069961486e-02 7.085920871544882e-02 - 7.082296099721888e-02 7.078671756200834e-02 7.075047842690044e-02 7.071424360897838e-02 7.067801312532543e-02 - 7.064178699302483e-02 7.060556522915983e-02 7.056934785081363e-02 7.053313487506954e-02 7.049692631901075e-02 - 7.046072219972052e-02 7.042452253428211e-02 7.038832733977872e-02 7.035213663329361e-02 7.031595043191004e-02 - 7.027976875271123e-02 7.024359161278042e-02 7.020741902920087e-02 7.017125101905583e-02 7.013508759942851e-02 - 7.009892878740216e-02 7.006277460006004e-02 7.002662505448538e-02 6.999048016776144e-02 6.995433995697144e-02 - 6.991820443919861e-02 6.988207363152622e-02 6.984594755103750e-02 6.980982621481568e-02 6.977370963994402e-02 - 6.973759784350578e-02 6.970149084258416e-02 6.966538865426242e-02 6.962929129562380e-02 6.959319878375156e-02 - 6.955711113572893e-02 6.952102836863913e-02 6.948495049956542e-02 6.944887754559105e-02 6.941280952379927e-02 - 6.937674645127329e-02 6.934068834509637e-02 6.930463522235174e-02 6.926858710012268e-02 6.923254399549238e-02 - 6.919650592554411e-02 6.916047290736112e-02 6.912444495802665e-02 6.908842209462392e-02 6.905240433423616e-02 - 6.901639169394666e-02 6.898038419083864e-02 6.894438184199533e-02 6.890838466449999e-02 6.887239267543585e-02 - 6.883640589188617e-02 6.880042433093415e-02 6.876444800966307e-02 6.872847694515619e-02 6.869251115449670e-02 - 6.865655065476786e-02 6.862059546305292e-02 6.858464559643512e-02 6.854870107199770e-02 6.851276190682393e-02 - 6.847682811799699e-02 6.844089972260017e-02 6.840497673771671e-02 6.836905918042983e-02 6.833314706782279e-02 - 6.829724041697882e-02 6.826133924498116e-02 6.822544356891308e-02 6.818955340585779e-02 6.815366877289854e-02 - 6.811778968711857e-02 6.808191616560114e-02 6.804604822542948e-02 6.801018588368681e-02 6.797432915745642e-02 - 6.793847806382150e-02 6.790263261986533e-02 6.786679284267115e-02 6.783095874932217e-02 6.779513035690166e-02 - 6.775930768249286e-02 6.772349074317900e-02 6.768767955604332e-02 6.765187413816909e-02 6.761607450663952e-02 - 6.758028067853786e-02 6.754449267094738e-02 6.750871050095128e-02 6.747293418563281e-02 6.743716374207524e-02 - 6.740139918736179e-02 6.736564053857570e-02 6.732988781280023e-02 6.729414102711860e-02 6.725840019861405e-02 - 6.722266534436987e-02 6.718693648146923e-02 6.715121362699542e-02 6.711549679803168e-02 6.707978601166123e-02 - 6.704408128496732e-02 6.700838263503321e-02 6.697269007894212e-02 6.693700363377729e-02 6.690132331662198e-02 - 6.686564914455943e-02 6.682998113467287e-02 6.679431930404556e-02 6.675866366976070e-02 6.672301424890158e-02 - 6.668737105855144e-02 6.665173411579348e-02 6.661610343771096e-02 6.658047904138716e-02 6.654486094390526e-02 - 6.650924916234854e-02 6.647364371380024e-02 6.643804461534360e-02 6.640245188406185e-02 6.636686553703826e-02 - 6.633128559135604e-02 6.629571206409844e-02 6.626014497234871e-02 6.622458433319009e-02 6.618903016370581e-02 - 6.615348248097914e-02 6.611794130209329e-02 6.608240664413152e-02 6.604687852417708e-02 6.601135695931318e-02 - 6.597584196662311e-02 6.594033356319007e-02 6.590483176609731e-02 6.586933659242808e-02 6.583384805926563e-02 - 6.579836618369318e-02 6.576289098279399e-02 6.572742247365128e-02 6.569196067334833e-02 6.565650559896835e-02 - 6.562105726759460e-02 6.558561569631030e-02 6.555018090219872e-02 6.551475290234308e-02 6.547933171382664e-02 - 6.544391735373260e-02 6.540850983914427e-02 6.537310918714484e-02 6.533771541481756e-02 6.530232853924568e-02 - 6.526694857751246e-02 6.523157554670111e-02 6.519620946389489e-02 6.516085034617702e-02 6.512549821063078e-02 - 6.509015307433939e-02 6.505481495438609e-02 6.501948386785412e-02 6.498415983182672e-02 6.494884286338716e-02 - 6.491353297961865e-02 6.487823019760443e-02 6.484293453442776e-02 6.480764600717190e-02 6.477236463292005e-02 - 6.473709042875546e-02 6.470182341176141e-02 6.466656359902111e-02 6.463131100761778e-02 6.459606565463470e-02 - 6.456082755715510e-02 6.452559673226224e-02 6.449037319703932e-02 6.445515696856961e-02 6.441994806393636e-02 - 6.438474650022280e-02 6.434955229451217e-02 6.431436546388770e-02 6.427918602543267e-02 6.424401399623028e-02 - 6.420884939336380e-02 6.417369223391646e-02 6.413854253497149e-02 6.410340031361215e-02 6.406826558692170e-02 - 6.403313837198334e-02 6.399801868588033e-02 6.396290654569593e-02 6.392780196851335e-02 6.389270497141585e-02 - 6.385761557148667e-02 6.382253378580906e-02 6.378745963146625e-02 6.375239312554147e-02 6.371733428511799e-02 - 6.368228312727903e-02 6.364723966910786e-02 6.361220392768768e-02 6.357717592010177e-02 6.354215566343337e-02 - 6.350714317476568e-02 6.347213847118198e-02 6.343714156976551e-02 6.340215248759951e-02 6.336717124176720e-02 - 6.333219784935186e-02 6.329723232743668e-02 6.326227469310496e-02 6.322732496343991e-02 6.319238315552476e-02 - 6.315744928644278e-02 6.312252337327721e-02 6.308760543311126e-02 6.305269548302821e-02 6.301779354011129e-02 - 6.298289962144372e-02 6.294801374410877e-02 6.291313592518968e-02 6.287826618176968e-02 6.284340453093201e-02 - 6.280855098975993e-02 6.277370557533665e-02 6.273886830474544e-02 6.270403919506955e-02 6.266921826339220e-02 - 6.263440552679662e-02 6.259960100236607e-02 6.256480470718381e-02 6.253001665833306e-02 6.249523687289707e-02 - 6.246046536795907e-02 6.242570216060229e-02 6.239094726791002e-02 6.235620070696547e-02 6.232146249485187e-02 - 6.228673264865250e-02 6.225201118545055e-02 6.221729812232930e-02 6.218259347637199e-02 6.214789726466187e-02 - 6.211320950428215e-02 6.207853021231610e-02 6.204385940584693e-02 6.200919710195792e-02 6.197454331773228e-02 - 6.193989807025328e-02 6.190526137660414e-02 6.187063325386812e-02 6.183601371912845e-02 6.180140278946837e-02 - 6.176680048197113e-02 6.173220681371997e-02 6.169762180179813e-02 6.166304546328885e-02 6.162847781527538e-02 - 6.159391887484095e-02 6.155936865906880e-02 6.152482718504219e-02 6.149029446984435e-02 6.145577053055853e-02 - 6.142125538426796e-02 6.138674904805590e-02 6.135225153900557e-02 6.131776287420022e-02 6.128328307072310e-02 - 6.124881214565744e-02 6.121435011608650e-02 6.117989699909349e-02 6.114545281176169e-02 6.111101757117431e-02 - 6.107659129441460e-02 6.104217399856583e-02 6.100776570071121e-02 6.097336641793399e-02 6.093897616731742e-02 - 6.090459496594473e-02 6.087022283089916e-02 6.083585977926396e-02 6.080150582812238e-02 6.076716099455765e-02 - 6.073282529565302e-02 6.069849874849172e-02 6.066418137015700e-02 6.062987317773211e-02 6.059557418830027e-02 - 6.056128441894475e-02 6.052700388674876e-02 6.049273260879557e-02 6.045847060216841e-02 6.042421788395052e-02 - 6.038997447122514e-02 6.035574038107552e-02 6.032151563058490e-02 6.028730023683652e-02 6.025309421691362e-02 - 6.021889758789946e-02 6.018471036687725e-02 6.015053257093025e-02 6.011636421714171e-02 6.008220532259485e-02 - 6.004805590437293e-02 6.001391597955918e-02 5.997978556523686e-02 5.994566467848918e-02 5.991155333639943e-02 - 5.987745155605081e-02 5.984335935452657e-02 5.980927674890997e-02 5.977520375628423e-02 5.974114039373261e-02 - 5.970708667833834e-02 5.967304262718466e-02 5.963900825735483e-02 5.960498358593206e-02 5.957096862999962e-02 - 5.953696340664075e-02 5.950296793293869e-02 5.946898222597666e-02 5.943500630283793e-02 5.940104018060574e-02 - 5.936708387636331e-02 5.933313740719390e-02 5.929920079018074e-02 5.926527404240709e-02 5.923135718095618e-02 - 5.919745022291125e-02 5.916355318535554e-02 5.912966608537230e-02 5.909578894004478e-02 5.906192176645620e-02 - 5.902806458168981e-02 5.899421740282887e-02 5.896038024695659e-02 5.892655313115624e-02 5.889273607251104e-02 - 5.885892908810425e-02 5.882513219501910e-02 5.879134541033884e-02 5.875756875114671e-02 5.872380223452595e-02 - 5.869004587755981e-02 5.865629969733151e-02 5.862256371092430e-02 5.858883793542144e-02 5.855512238790617e-02 - 5.852141708546170e-02 5.848772204517131e-02 5.845403728411822e-02 5.842036281938568e-02 5.838669866805692e-02 - 5.835304484721521e-02 5.831940137394376e-02 5.828576826532585e-02 5.825214553844467e-02 5.821853321038349e-02 - 5.818493129822556e-02 5.815133981905412e-02 5.811775878995240e-02 5.808418822800365e-02 5.805062815029110e-02 - 5.801707857389801e-02 5.798353951590760e-02 5.795001099340315e-02 5.791649302346786e-02 5.788298562318499e-02 - 5.784948880963779e-02 5.781600259990949e-02 5.778252701108333e-02 5.774906206024256e-02 5.771560776447041e-02 - 5.768216414085015e-02 5.764873120646499e-02 5.761530897839819e-02 5.758189747373298e-02 5.754849670955262e-02 - 5.751510670294033e-02 5.748172747097936e-02 5.744835903075296e-02 5.741500139934437e-02 5.738165459383683e-02 - 5.734831863131357e-02 5.731499352885785e-02 5.728167930355290e-02 5.724837597248197e-02 5.721508355272830e-02 - 5.718180206137512e-02 5.714853151550570e-02 5.711527193220325e-02 5.708202332855103e-02 5.704878572163228e-02 - 5.701555912853024e-02 5.698234356632816e-02 5.694913905210926e-02 5.691594560295680e-02 5.688276323595402e-02 - 5.684959196818416e-02 5.681643181673045e-02 5.678328279867616e-02 5.675014493110452e-02 5.671701823109875e-02 - 5.668390271574211e-02 5.665079840211785e-02 5.661770530730920e-02 5.658462344839940e-02 5.655155284247171e-02 - 5.651849350660935e-02 5.648544545789557e-02 5.645240871341362e-02 5.641938329024674e-02 5.638636920547815e-02 - 5.635336647619112e-02 5.632037511946889e-02 5.628739515239468e-02 5.625442659205174e-02 5.622146945552333e-02 - 5.618852375989267e-02 5.615558952224302e-02 5.612266675965761e-02 5.608975548921968e-02 5.605685572801247e-02 - 5.602396749311925e-02 5.599109080162322e-02 5.595822567060765e-02 5.592537211715578e-02 5.589253015835084e-02 - 5.585969981127608e-02 5.582688109301474e-02 5.579407402065006e-02 5.576127861126528e-02 5.572849488194366e-02 - 5.569572284976842e-02 5.566296253182280e-02 5.563021394519008e-02 5.559747710695345e-02 5.556475203419618e-02 - 5.553203874400151e-02 5.549933725345269e-02 5.546664757963294e-02 5.543396973962551e-02 5.540130375051366e-02 - 5.536864962938060e-02 5.533600739330961e-02 5.530337705938389e-02 5.527075864468672e-02 5.523815216630132e-02 - 5.520555764131094e-02 5.517297508679882e-02 5.514040451984819e-02 5.510784595754230e-02 5.507529941696442e-02 - 5.504276491519774e-02 5.501024246932555e-02 5.497773209643106e-02 5.494523381359754e-02 5.491274763790820e-02 - 5.488027358644629e-02 5.484781167629507e-02 5.481536192453777e-02 5.478292434825763e-02 5.475049896453790e-02 - 5.471808579046181e-02 5.468568484311261e-02 5.465329613957354e-02 5.462091969692785e-02 5.458855553225877e-02 - 5.455620366264955e-02 5.452386410518342e-02 5.449153687694363e-02 5.445922199501343e-02 5.442691947647604e-02 - 5.439462933841474e-02 5.436235159791274e-02 5.433008627205328e-02 5.429783337791962e-02 5.426559293259499e-02 - 5.423336495316264e-02 5.420114945670580e-02 5.416894646030773e-02 5.413675598105167e-02 5.410457803602083e-02 - 5.407241264229849e-02 5.404025981696787e-02 5.400811957711223e-02 5.397599193981480e-02 5.394387692215881e-02 - 5.391177454122753e-02 5.387968481410418e-02 5.384760775787202e-02 5.381554338961427e-02 5.378349172641418e-02 - 5.375145278535501e-02 5.371942658351998e-02 5.368741313799234e-02 5.365541246585533e-02 5.362342458419220e-02 - 5.359144951008617e-02 5.355948726062051e-02 5.352753785287844e-02 5.349560130394321e-02 5.346367763089808e-02 - 5.343176685082626e-02 5.339986898081100e-02 5.336798403793557e-02 5.333611203928318e-02 5.330425300193709e-02 - 5.327240694298052e-02 5.324057387949673e-02 5.320875382856897e-02 5.317694680728046e-02 5.314515283271445e-02 - 5.311337192195419e-02 5.308160409208292e-02 5.304984936018387e-02 5.301810774334029e-02 5.298637925860694e-02 - 5.295466392210174e-02 5.292296174881576e-02 5.289127275367324e-02 5.285959695159842e-02 5.282793435751552e-02 - 5.279628498634878e-02 5.276464885302243e-02 5.273302597246069e-02 5.270141635958780e-02 5.266982002932800e-02 - 5.263823699660550e-02 5.260666727634453e-02 5.257511088346935e-02 5.254356783290417e-02 5.251203813957321e-02 - 5.248052181840073e-02 5.244901888431094e-02 5.241752935222807e-02 5.238605323707637e-02 5.235459055378005e-02 - 5.232314131726334e-02 5.229170554245050e-02 5.226028324426572e-02 5.222887443763326e-02 5.219747913747734e-02 - 5.216609735872220e-02 5.213472911629205e-02 5.210337442511115e-02 5.207203330010370e-02 5.204070575619395e-02 - 5.200939180830615e-02 5.197809147136448e-02 5.194680476029321e-02 5.191553169001656e-02 5.188427227545876e-02 - 5.185302653154403e-02 5.182179447319664e-02 5.179057611534077e-02 5.175937147290068e-02 5.172818056080060e-02 - 5.169700339396475e-02 5.166583998731737e-02 5.163469035578269e-02 5.160355451428494e-02 5.157243247774834e-02 - 5.154132426109714e-02 5.151022987925555e-02 5.147914934714782e-02 5.144808267969817e-02 5.141702989183084e-02 - 5.138599099847005e-02 5.135496601454004e-02 5.132395495496503e-02 5.129295783466926e-02 5.126197466857695e-02 - 5.123100547161235e-02 5.120005025869967e-02 5.116910904476317e-02 5.113818184472704e-02 5.110726867351554e-02 - 5.107636954605289e-02 5.104548447726333e-02 5.101461348207109e-02 5.098375657540039e-02 5.095291377217546e-02 - 5.092208508732055e-02 5.089127053575987e-02 5.086047013241765e-02 5.082968389221815e-02 5.079891183008556e-02 - 5.076815396094415e-02 5.073741029971812e-02 5.070668086133172e-02 5.067596566070917e-02 5.064526471277472e-02 - 5.061457803245257e-02 5.058390563466697e-02 5.055324753434216e-02 5.052260374640234e-02 5.049197428577178e-02 - 5.046135916737467e-02 5.043075840613528e-02 5.040017201697781e-02 5.036960001482652e-02 5.033904241460560e-02 - 5.030849923123931e-02 5.027797047965189e-02 5.024745617476754e-02 5.021695633151052e-02 5.018647096480505e-02 - 5.015600008957535e-02 5.012554372074565e-02 5.009510187324022e-02 5.006467456198324e-02 5.003426180189897e-02 - 5.000386360791163e-02 4.997347999494546e-02 4.994311097792468e-02 4.991275657177353e-02 4.988241679141623e-02 - 4.985209165177702e-02 4.982178116778014e-02 4.979148535434980e-02 4.976120422641023e-02 4.973093779888569e-02 - 4.970068608670038e-02 4.967044910477855e-02 4.964022686804442e-02 4.961001939142222e-02 4.957982668983620e-02 - 4.954964877821057e-02 4.951948567146956e-02 4.948933738453741e-02 4.945920393233836e-02 4.942908532979662e-02 - 4.939898159183643e-02 4.936889273338203e-02 4.933881876935763e-02 4.930875971468749e-02 4.927871558429582e-02 - 4.924868639310685e-02 4.921867215604481e-02 4.918867288803395e-02 4.915868860399848e-02 4.912871931886263e-02 - 4.909876504755066e-02 4.906882580498677e-02 4.903890160609520e-02 4.900899246580018e-02 4.897909839902595e-02 - 4.894921942069672e-02 4.891935554573676e-02 4.888950678907025e-02 4.885967316562146e-02 4.882985469031461e-02 - 4.880005137807392e-02 4.877026324382362e-02 4.874049030248797e-02 4.871073256899117e-02 4.868099005825745e-02 - 4.865126278521108e-02 4.862155076477624e-02 4.859185401187720e-02 4.856217254143816e-02 4.853250636838338e-02 - 4.850285550763707e-02 4.847321997412347e-02 4.844359978276680e-02 4.841399494849130e-02 4.838440548622121e-02 - 4.835483141088075e-02 4.832527273739414e-02 4.829572948068564e-02 4.826620165567946e-02 4.823668927729983e-02 - 4.820719236047098e-02 4.817771092011715e-02 4.814824497116257e-02 4.811879452853147e-02 4.808935960714807e-02 - 4.805994022193662e-02 4.803053638782134e-02 4.800114811972645e-02 4.797177543257621e-02 4.794241834129482e-02 - 4.791307686080653e-02 4.788375100603556e-02 4.785444079190614e-02 4.782514623334252e-02 4.779586734526891e-02 - 4.776660414260955e-02 4.773735664028868e-02 4.770812485323050e-02 4.767890879635927e-02 4.764970848459921e-02 - 4.762052393287456e-02 4.759135515610954e-02 4.756220216922838e-02 4.753306498715533e-02 4.750394362481459e-02 - 4.747483809713041e-02 4.744574841902701e-02 4.741667460542864e-02 4.738761667125952e-02 4.735857463144388e-02 - 4.732954850090595e-02 4.730053829456995e-02 4.727154402736015e-02 4.724256571420073e-02 4.721360337001596e-02 - 4.718465700973005e-02 4.715572664826723e-02 4.712681230055175e-02 4.709791398150782e-02 4.706903170605968e-02 - 4.704016548913156e-02 4.701131534564769e-02 4.698248129053231e-02 4.695366333870963e-02 4.692486150510391e-02 - 4.689607580463934e-02 4.686730625224018e-02 4.683855286283068e-02 4.680981565133503e-02 4.678109463267748e-02 - 4.675238982178226e-02 4.672370123357359e-02 4.669502888297572e-02 4.666637278491287e-02 4.663773295430927e-02 - 4.660910940608916e-02 4.658050215517676e-02 4.655191121649629e-02 4.652333660497202e-02 4.649477833552815e-02 - 4.646623642308891e-02 4.643771088257853e-02 4.640920172892127e-02 4.638070897704132e-02 4.635223264186294e-02 - 4.632377273831036e-02 4.629532928130779e-02 4.626690228577947e-02 4.623849176664965e-02 4.621009773884253e-02 - 4.618172021728237e-02 4.615335921689338e-02 4.612501475259979e-02 4.609668683932586e-02 4.606837549199577e-02 - 4.604008072553380e-02 4.601180255486416e-02 4.598354099491107e-02 4.595529606059879e-02 4.592706776685152e-02 - 4.589885612859351e-02 4.587066116074899e-02 4.584248287824218e-02 4.581432129599732e-02 4.578617642893863e-02 - 4.575804829199037e-02 4.572993690007673e-02 4.570184226812196e-02 4.567376441105030e-02 4.564570334378597e-02 - 4.561765908125320e-02 4.558963163837623e-02 4.556162103007928e-02 4.553362727128659e-02 4.550565037692238e-02 - 4.547769036191089e-02 4.544974724117636e-02 4.542182102964300e-02 4.539391174223504e-02 4.536601939387674e-02 - 4.533814399949231e-02 4.531028557400597e-02 4.528244413234197e-02 4.525461968942453e-02 4.522681226017790e-02 - 4.519902185952628e-02 4.517124850239393e-02 4.514349220370505e-02 4.511575297838390e-02 4.508803084135470e-02 - 4.506032580754168e-02 4.503263789186907e-02 4.500496710926111e-02 4.497731347464200e-02 4.494967700293602e-02 - 4.492205770906736e-02 4.489445560796028e-02 4.486687071453899e-02 4.483930304372771e-02 4.481175261045071e-02 - 4.478421942963219e-02 4.475670351619640e-02 4.472920488506756e-02 4.470172355116988e-02 4.467425952942764e-02 - 4.464681283476502e-02 4.461938348210628e-02 4.459197148637566e-02 4.456457686249737e-02 4.453719962539564e-02 - 4.450983978999472e-02 4.448249737121881e-02 4.445517238399217e-02 4.442786484323902e-02 4.440057476388359e-02 - 4.437330216085012e-02 4.434604704906282e-02 4.431880944344595e-02 4.429158935892372e-02 4.426438681042035e-02 - 4.423720181286010e-02 4.421003438116718e-02 4.418288453026584e-02 4.415575227508029e-02 4.412863763053477e-02 - 4.410154061155352e-02 4.407446123306075e-02 4.404739950998071e-02 4.402035545723762e-02 4.399332908975571e-02 - 4.396632042245923e-02 4.393932947027238e-02 4.391235624811941e-02 4.388540077092456e-02 4.385846305361203e-02 - 4.383154311110608e-02 4.380464095833093e-02 4.377775661021081e-02 4.375089008166996e-02 4.372404138763258e-02 - 4.369721054302294e-02 4.367039756276526e-02 4.364360246178376e-02 4.361682525500267e-02 4.359006595734623e-02 - 4.356332458373868e-02 4.353660114910423e-02 4.350989566836711e-02 4.348320815645158e-02 4.345653862828184e-02 - 4.342988709878214e-02 4.340325358287669e-02 4.337663809548974e-02 4.335004065154552e-02 4.332346126596825e-02 - 4.329689995368217e-02 4.327035672961151e-02 4.324383160868049e-02 4.321732460581335e-02 4.319083573593433e-02 - 4.316436501396765e-02 4.313791245483754e-02 4.311147807346823e-02 4.308506188478395e-02 4.305866390370894e-02 - 4.303228414516742e-02 4.300592262408363e-02 4.297957935538180e-02 4.295325435398616e-02 4.292694763482094e-02 - 4.290065921281035e-02 4.287438910287866e-02 4.284813731995007e-02 4.282190387894883e-02 4.279568879479917e-02 - 4.276949208242530e-02 4.274331375675147e-02 4.271715383270192e-02 4.269101232520085e-02 4.266488924917250e-02 - 4.263878461954113e-02 4.261269845123093e-02 4.258663075916616e-02 4.256058155827103e-02 4.253455086346980e-02 - 4.250853868968667e-02 4.248254505184589e-02 4.245656996487169e-02 4.243061344368828e-02 4.240467550321991e-02 - 4.237875615839081e-02 4.235285542412521e-02 4.232697331534734e-02 4.230110984698143e-02 4.227526503395169e-02 - 4.224943889118240e-02 4.222363143359775e-02 4.219784267612198e-02 4.217207263367933e-02 4.214632132119402e-02 - 4.212058875359029e-02 4.209487494579236e-02 4.206917991272448e-02 4.204350366931086e-02 4.201784623047573e-02 - 4.199220761114335e-02 4.196658782623791e-02 4.194098689068368e-02 4.191540481940486e-02 4.188984162732570e-02 - 4.186429732937041e-02 4.183877194046326e-02 4.181326547552844e-02 4.178777794949019e-02 4.176230937727277e-02 - 4.173685977380037e-02 4.171142915399725e-02 4.168601753278764e-02 4.166062492509574e-02 4.163525134584580e-02 - 4.160989680996207e-02 4.158456133236876e-02 4.155924492799010e-02 4.153394761175032e-02 4.150866939857367e-02 - 4.148341030338436e-02 4.145817034110662e-02 4.143294952666470e-02 4.140774787498282e-02 4.138256540098521e-02 - 4.135740211959609e-02 4.133225804573972e-02 4.130713319434030e-02 4.128202758032209e-02 4.125694121860929e-02 - 4.123187412412615e-02 4.120682631179690e-02 4.118179779654577e-02 4.115678859329698e-02 4.113179871697477e-02 - 4.110682818250337e-02 4.108187700480702e-02 4.105694519880994e-02 4.103203277943635e-02 4.100713976161051e-02 - 4.098226616025662e-02 4.095741199029894e-02 4.093257726666168e-02 4.090776200426908e-02 4.088296621804536e-02 - 4.085818992291476e-02 4.083343313380151e-02 4.080869586562985e-02 4.078397813332400e-02 4.075927995180818e-02 - 4.073460133600665e-02 4.070994230084361e-02 4.068530286124331e-02 4.066068303212998e-02 4.063608282842784e-02 - 4.061150226506113e-02 4.058694135695408e-02 4.056240011903092e-02 4.053787856621588e-02 4.051337671343318e-02 - 4.048889457560707e-02 4.046443216766178e-02 4.043998950452153e-02 4.041556660111054e-02 4.039116347235307e-02 - 4.036678013317334e-02 4.034241659849556e-02 4.031807288324400e-02 4.029374900234285e-02 4.026944497071637e-02 - 4.024516080328877e-02 4.022089651498431e-02 4.019665212072718e-02 4.017242763544165e-02 4.014822307405193e-02 - 4.012403845148225e-02 4.009987378265685e-02 4.007572908249996e-02 4.005160436593580e-02 4.002749964788860e-02 - 4.000341494328261e-02 3.997935026862905e-02 3.995530565020248e-02 3.993128111798760e-02 3.990727670197625e-02 - 3.988329243216027e-02 3.985932833853151e-02 3.983538445108181e-02 3.981146079980302e-02 3.978755741468697e-02 - 3.976367432572553e-02 3.973981156291052e-02 3.971596915623379e-02 3.969214713568721e-02 3.966834553126258e-02 - 3.964456437295178e-02 3.962080369074663e-02 3.959706351463900e-02 3.957334387462071e-02 3.954964480068362e-02 - 3.952596632281957e-02 3.950230847102040e-02 3.947867127527795e-02 3.945505476558409e-02 3.943145897193063e-02 - 3.940788392430945e-02 3.938432965271236e-02 3.936079618713123e-02 3.933728355755788e-02 3.931379179398419e-02 - 3.929032092640197e-02 3.926687098480308e-02 3.924344199917935e-02 3.922003399952266e-02 3.919664701582481e-02 - 3.917328107807769e-02 3.914993621627309e-02 3.912661246040292e-02 3.910330984045896e-02 3.908002838643308e-02 - 3.905676812831715e-02 3.903352909610298e-02 3.901031131978242e-02 3.898711482934733e-02 3.896393965478955e-02 - 3.894078582610091e-02 3.891765337327326e-02 3.889454232629846e-02 3.887145271516833e-02 3.884838456987474e-02 - 3.882533792040951e-02 3.880231279676451e-02 3.877930922893155e-02 3.875632724690252e-02 3.873336688066923e-02 - 3.871042816022353e-02 3.868751111555727e-02 3.866461577666229e-02 3.864174217353044e-02 3.861889033615356e-02 - 3.859606029452349e-02 3.857325207863209e-02 3.855046571847119e-02 3.852770124403264e-02 3.850495868530828e-02 - 3.848223807228996e-02 3.845953943496952e-02 3.843686280333881e-02 3.841420820738967e-02 3.839157567711395e-02 - 3.836896524250349e-02 3.834637693355013e-02 3.832381078024572e-02 3.830126681258209e-02 3.827874506055112e-02 - 3.825624555414461e-02 3.823376832335444e-02 3.821131339817244e-02 3.818888080859045e-02 3.816647058460032e-02 - 3.814408275619389e-02 3.812171735336303e-02 3.809937440609954e-02 3.807705394439530e-02 3.805475599824214e-02 - 3.803248059763190e-02 3.801022777255643e-02 3.798799755300758e-02 3.796578996897719e-02 3.794360505045710e-02 - 3.792144282743916e-02 3.789930332991522e-02 3.787718658787710e-02 3.785509263131667e-02 3.783302149022577e-02 - 3.781097319459624e-02 3.778894777441992e-02 3.776694525968866e-02 3.774496568039430e-02 3.772300906652870e-02 - 3.770107544808367e-02 3.767916485505110e-02 3.765727731742280e-02 3.763541286519063e-02 3.761357152834642e-02 - 3.759175333688204e-02 3.756995832078931e-02 3.754818651006007e-02 3.752643793468620e-02 3.750471262465951e-02 - 3.748301060997186e-02 3.746133192061509e-02 3.743967658658105e-02 3.741804463786157e-02 3.739643610444850e-02 - 3.737485101633371e-02 3.735328940350900e-02 3.733175129596625e-02 3.731023672369729e-02 3.728874571669397e-02 - 3.726727830494812e-02 3.724583451845160e-02 3.722441438719625e-02 3.720301794117391e-02 3.718164521037644e-02 - 3.716029622479566e-02 3.713897101442343e-02 3.711766960925159e-02 3.709639203927199e-02 3.707513833447647e-02 - 3.705390852485687e-02 3.703270264040504e-02 3.701152071111283e-02 3.699036276697207e-02 3.696922883797462e-02 - 3.694811895411231e-02 3.692703314537699e-02 3.690597144176051e-02 3.688493387325471e-02 3.686392046985143e-02 - 3.684293126154253e-02 3.682196627831984e-02 3.680102555017520e-02 3.678010910710046e-02 3.675921697908748e-02 - 3.673834919612807e-02 3.671750578821411e-02 3.669668678533742e-02 3.667589221748987e-02 3.665512211466327e-02 - 3.663437650684950e-02 3.661365542404037e-02 3.659295889622776e-02 3.657228695340348e-02 3.655163962555941e-02 - 3.653101694268735e-02 3.651041893477919e-02 3.648984563182674e-02 3.646929706382188e-02 3.644877326075641e-02 - 3.642827425262220e-02 3.640780006941109e-02 3.638735074111494e-02 3.636692629772557e-02 3.634652676923484e-02 - 3.632615218563458e-02 3.630580257691665e-02 3.628547797307289e-02 3.626517840409513e-02 3.624490389997524e-02 - 3.622465449070505e-02 3.620443020627639e-02 3.618423107668113e-02 3.616405713191111e-02 3.614390840195816e-02 - 3.612378491681414e-02 3.610368670647089e-02 3.608361380092025e-02 3.606356623015406e-02 3.604354402416417e-02 - 3.602354721294244e-02 3.600357582648069e-02 3.598362989477077e-02 3.596370944780453e-02 3.594381451557382e-02 - 3.592394512807047e-02 3.590410131528634e-02 3.588428310721326e-02 3.586449053384308e-02 3.584472362516764e-02 - 3.582498241117880e-02 3.580526692186839e-02 3.578557718722826e-02 3.576591323725024e-02 3.574627510192620e-02 - 3.572666281124797e-02 3.570707639520740e-02 3.568751588379632e-02 3.566798130700659e-02 3.564847269483005e-02 - 3.562899007725854e-02 3.560953348428391e-02 3.559010294589800e-02 3.557069849209266e-02 3.555132015285974e-02 - 3.553196795819106e-02 3.551264193807849e-02 3.549334212251386e-02 3.547406854148901e-02 3.545482122499580e-02 - 3.543560020302607e-02 3.541640550557167e-02 3.539723716262443e-02 3.537809520417620e-02 3.535897966021882e-02 - 3.533989056074414e-02 3.532082793574401e-02 3.530179181521027e-02 3.528278222913475e-02 3.526379920750932e-02 - 3.524484278032580e-02 3.522591297757607e-02 3.520700982925193e-02 3.518813336534525e-02 3.516928361584787e-02 - 3.515046061075164e-02 3.513166438004838e-02 3.511289495372998e-02 3.509415236178823e-02 3.507543663421501e-02 - 3.505674780100216e-02 3.503808589214152e-02 3.501945093762493e-02 3.500084296744425e-02 3.498226201159130e-02 - 3.496370810005795e-02 3.494518126283602e-02 3.492668152991737e-02 3.490820893129385e-02 3.488976349695729e-02 - 3.487134525689954e-02 3.485295424111245e-02 3.483459047958785e-02 3.481625400231760e-02 3.479794483929353e-02 - 3.477966302050750e-02 3.476140857595134e-02 3.474318153561690e-02 3.472498192949603e-02 3.470680978758058e-02 - 3.468866513986237e-02 3.467054801633326e-02 3.465245844698509e-02 3.463439646180971e-02 3.461636209079897e-02 - 3.459835536394470e-02 3.458037631123875e-02 3.456242496267296e-02 3.454450134823919e-02 3.452660549792927e-02 - 3.450873744173504e-02 3.449089720964835e-02 3.447308483166107e-02 3.445530033776500e-02 3.443754375795202e-02 - 3.441981512221395e-02 3.440211446054266e-02 3.438444180292995e-02 3.436679717936773e-02 3.434918061984778e-02 - 3.433159215436199e-02 3.431403181290218e-02 3.429649962546020e-02 3.427899562202789e-02 3.426151983259711e-02 - 3.424407228715969e-02 3.422665301570748e-02 3.420926204823232e-02 3.419189941472606e-02 3.417456514518054e-02 - 3.415725926958761e-02 3.413998181793911e-02 3.412273282022688e-02 3.410551230644278e-02 3.408832030657864e-02 - 3.407115685062630e-02 3.405402196857762e-02 3.403691569042444e-02 3.401983804615860e-02 3.400278906577194e-02 - 3.398576877925633e-02 3.396877721660357e-02 3.395181440780554e-02 3.393488038285408e-02 3.391797517174103e-02 - 3.390109880445821e-02 3.388425131099751e-02 3.386743272135074e-02 3.385064306550976e-02 3.383388237346641e-02 - 3.381715067521254e-02 3.380044800073998e-02 3.378377438004059e-02 3.376712984310620e-02 3.375051441992868e-02 - 3.373392814049984e-02 3.371737103481155e-02 3.370084313285564e-02 3.368434446462396e-02 3.366787506010836e-02 - 3.365143466564878e-02 3.363501887624541e-02 3.361862209777612e-02 3.360224500875989e-02 3.358588827878357e-02 - 3.356955147090725e-02 3.355323458431880e-02 3.353693766165054e-02 3.352066065506343e-02 3.350440352193865e-02 - 3.348816624199871e-02 3.347194881659273e-02 3.345575121630599e-02 3.343957340404732e-02 3.342341535303144e-02 - 3.340727704441876e-02 3.339115845430404e-02 3.337505954322636e-02 3.335898029706669e-02 3.334292070921326e-02 - 3.332688074834195e-02 3.331086037969291e-02 3.329485957414917e-02 3.327887831864652e-02 3.326291658484171e-02 - 3.324697433542376e-02 3.323105156623186e-02 3.321514826023114e-02 3.319926437839098e-02 3.318339989412266e-02 - 3.316755478754796e-02 3.315172903929034e-02 3.313592261295018e-02 3.312013548124740e-02 3.310436764153749e-02 - 3.308861906981869e-02 3.307288973180764e-02 3.305717959801665e-02 3.304148865245999e-02 3.302581687574703e-02 - 3.301016422142487e-02 3.299453067800234e-02 3.297891624809741e-02 3.296332088425066e-02 3.294774455685354e-02 - 3.293218725810471e-02 3.291664896225673e-02 3.290112963401578e-02 3.288562923879117e-02 3.287014777263271e-02 - 3.285468522369568e-02 3.283924155670871e-02 3.282381674440858e-02 3.280841076589561e-02 3.279302360243119e-02 - 3.277765521941309e-02 3.276230558706894e-02 3.274697470113698e-02 3.273166254219040e-02 3.271636907936865e-02 - 3.270109428250347e-02 3.268583813280482e-02 3.267060061307020e-02 3.265538168459424e-02 3.264018132671115e-02 - 3.262499953449712e-02 3.260983628233858e-02 3.259469153939318e-02 3.257956527754512e-02 3.256445748091834e-02 - 3.254936812698490e-02 3.253429718174427e-02 3.251924463148387e-02 3.250421046229880e-02 3.248919464552218e-02 - 3.247419715298105e-02 3.245921796288541e-02 3.244425706251369e-02 3.242931441545717e-02 3.241438998652282e-02 - 3.239948378141620e-02 3.238459577882156e-02 3.236972593925531e-02 3.235487424670715e-02 3.234004068301546e-02 - 3.232522522137563e-02 3.231042782696456e-02 3.229564848261764e-02 3.228088718700101e-02 3.226614390644563e-02 - 3.225141860917057e-02 3.223671128042128e-02 3.222202190260593e-02 3.220735044835789e-02 3.219269687989033e-02 - 3.217806118663362e-02 3.216344336205739e-02 3.214884337811092e-02 3.213426120193776e-02 3.211969680852602e-02 - 3.210515019435922e-02 3.209062132655478e-02 3.207611016186721e-02 3.206161670288540e-02 3.204714093648681e-02 - 3.203268282961075e-02 3.201824236239234e-02 3.200381951210604e-02 3.198941424912934e-02 3.197502654604618e-02 - 3.196065638811887e-02 3.194630377248257e-02 3.193196866763873e-02 3.191765104079724e-02 3.190335087680102e-02 - 3.188906815766901e-02 3.187480285784819e-02 3.186055494296534e-02 3.184632440204734e-02 3.183211122836238e-02 - 3.181791538780577e-02 3.180373685568510e-02 3.178957561657719e-02 3.177543165075891e-02 3.176130492904844e-02 - 3.174719542079285e-02 3.173310312097031e-02 3.171902801589959e-02 3.170497007535993e-02 3.169092927256592e-02 - 3.167690558660036e-02 3.166289900092451e-02 3.164890948767075e-02 3.163493702375719e-02 3.162098160094597e-02 - 3.160704320149037e-02 3.159312179836957e-02 3.157921735868882e-02 3.156532987076624e-02 3.155145932224658e-02 - 3.153760566663864e-02 3.152376889172848e-02 3.150994900180672e-02 3.149614595827410e-02 3.148235973399625e-02 - 3.146859031868535e-02 3.145483769408502e-02 3.144110182886523e-02 3.142738268687409e-02 3.141368026942635e-02 - 3.139999456778463e-02 3.138632554513814e-02 3.137267318073906e-02 3.135903745883740e-02 3.134541835839263e-02 - 3.133181584694165e-02 3.131822989974722e-02 3.130466051752389e-02 3.129110768114365e-02 3.127757136018487e-02 - 3.126405153214003e-02 3.125054818119363e-02 3.123706128835145e-02 3.122359081277034e-02 3.121013674152311e-02 - 3.119669908223311e-02 3.118327780512727e-02 3.116987287740892e-02 3.115648427590923e-02 3.114311198755302e-02 - 3.112975599208620e-02 3.111641625878769e-02 3.110309278026453e-02 3.108978554429882e-02 3.107649451605467e-02 - 3.106321967573116e-02 3.104996101093369e-02 3.103671850522385e-02 3.102349212552239e-02 3.101028184118182e-02 - 3.099708765215899e-02 3.098390954305432e-02 3.097074748653887e-02 3.095760146577434e-02 3.094447145973171e-02 - 3.093135744175442e-02 3.091825938652267e-02 3.090517727892404e-02 3.089211111199125e-02 3.087906086415095e-02 - 3.086602651045607e-02 3.085300802884278e-02 3.084000540267990e-02 3.082701861024971e-02 3.081404762072755e-02 - 3.080109242772720e-02 3.078815302348911e-02 3.077522937271052e-02 3.076232145526043e-02 3.074942925853004e-02 - 3.073655275969265e-02 3.072369193358731e-02 3.071084675893487e-02 3.069801722815575e-02 3.068520332655950e-02 - 3.067240502926292e-02 3.065962230727411e-02 3.064685514336771e-02 3.063410352936318e-02 3.062136743092317e-02 - 3.060864682743443e-02 3.059594172387181e-02 3.058325209340110e-02 3.057057790484611e-02 3.055791914232513e-02 - 3.054527578866520e-02 3.053264782274670e-02 3.052003521936738e-02 3.050743796632342e-02 3.049485605420712e-02 - 3.048228945948342e-02 3.046973815764381e-02 3.045720212753895e-02 3.044468135532321e-02 3.043217582076147e-02 - 3.041968549967531e-02 3.040721038082923e-02 3.039475044749309e-02 3.038230567464306e-02 3.036987604544383e-02 - 3.035746154526919e-02 3.034506215632694e-02 3.033267784558463e-02 3.032030859116679e-02 3.030795439680851e-02 - 3.029561524020229e-02 3.028329109283977e-02 3.027098194217670e-02 3.025868776986960e-02 3.024640855125834e-02 - 3.023414425922958e-02 3.022189488753165e-02 3.020966043396606e-02 3.019744085927903e-02 3.018523614254973e-02 - 3.017304628070488e-02 3.016087124712451e-02 3.014871101490015e-02 3.013656556629268e-02 3.012443489643160e-02 - 3.011231899192166e-02 3.010021782348693e-02 3.008813136953290e-02 3.007605961443153e-02 3.006400254477032e-02 - 3.005196013216448e-02 3.003993235442936e-02 3.002791921520012e-02 3.001592069144608e-02 3.000393675083135e-02 - 2.999196738372897e-02 2.998001257673401e-02 2.996807230790781e-02 2.995614654679549e-02 2.994423528130847e-02 - 2.993233851118915e-02 2.992045620999083e-02 2.990858835120550e-02 2.989673491731453e-02 2.988489589805536e-02 - 2.987307127537464e-02 2.986126102011340e-02 2.984946511909828e-02 2.983768356331996e-02 2.982591633787642e-02 - 2.981416341477938e-02 2.980242477098497e-02 2.979070040412034e-02 2.977899028736241e-02 2.976729439085326e-02 - 2.975561271768286e-02 2.974394525020974e-02 2.973229195799546e-02 2.972065283153817e-02 2.970902785474345e-02 - 2.969741700233630e-02 2.968582025251779e-02 2.967423759388233e-02 2.966266902120933e-02 2.965111450751603e-02 - 2.963957402972690e-02 2.962804757853395e-02 2.961653513685447e-02 2.960503668212408e-02 2.959355219023237e-02 - 2.958208165129883e-02 2.957062505724755e-02 2.955918238857859e-02 2.954775362079399e-02 2.953633873283637e-02 - 2.952493771681483e-02 2.951355054848872e-02 2.950217720053436e-02 2.949081767862442e-02 2.947947196700992e-02 - 2.946814003034778e-02 2.945682185755054e-02 2.944551743582863e-02 2.943422674341014e-02 2.942294975870480e-02 - 2.941168646812421e-02 2.940043686618776e-02 2.938920093147064e-02 2.937797864134186e-02 2.936676998172867e-02 - 2.935557493479196e-02 2.934439347979633e-02 2.933322559583284e-02 2.932207127373048e-02 2.931093050463312e-02 - 2.929980326285230e-02 2.928868953142686e-02 2.927758929945683e-02 2.926650254799867e-02 2.925542925398767e-02 - 2.924436939550082e-02 2.923332296415483e-02 2.922228995044700e-02 2.921127033783603e-02 2.920026410004271e-02 - 2.918927122033416e-02 2.917829169471517e-02 2.916732549176795e-02 2.915637258777840e-02 2.914543298801943e-02 - 2.913450667577263e-02 2.912359362430894e-02 2.911269381274288e-02 2.910180723305731e-02 2.909093387402745e-02 - 2.908007369930849e-02 2.906922669822638e-02 2.905839287303405e-02 2.904757219714476e-02 2.903676465199738e-02 - 2.902597022808873e-02 2.901518890157972e-02 2.900442065055892e-02 2.899366546087253e-02 2.898292332562971e-02 - 2.897219423070421e-02 2.896147815085827e-02 2.895077507160809e-02 2.894008498122344e-02 2.892940786384609e-02 - 2.891874369517828e-02 2.890809245634708e-02 2.889745414621765e-02 2.888682874769054e-02 2.887621623583590e-02 - 2.886561659425123e-02 2.885502981116054e-02 2.884445587294774e-02 2.883389475319686e-02 2.882334643970105e-02 - 2.881281093000496e-02 2.880228819979298e-02 2.879177822929067e-02 2.878128100842524e-02 2.877079651898801e-02 - 2.876032473884395e-02 2.874986564740009e-02 2.873941924390505e-02 2.872898552052601e-02 2.871856444638324e-02 - 2.870815600507148e-02 2.869776018641480e-02 2.868737697516582e-02 2.867700634591397e-02 2.866664827916806e-02 - 2.865630278319325e-02 2.864596983917359e-02 2.863564941328856e-02 2.862534149829953e-02 2.861504608429113e-02 - 2.860476315234840e-02 2.859449267740666e-02 2.858423464566411e-02 2.857398905422620e-02 2.856375588402207e-02 - 2.855353511594846e-02 2.854332673804624e-02 2.853313073796621e-02 2.852294709429606e-02 2.851277577543872e-02 - 2.850261678440491e-02 2.849247012219593e-02 2.848233575178603e-02 2.847221365657614e-02 2.846210383116990e-02 - 2.845200625935100e-02 2.844192091752946e-02 2.843184778466237e-02 2.842178686053369e-02 2.841173813547823e-02 - 2.840170158739025e-02 2.839167719418843e-02 2.838166494245600e-02 2.837166482484053e-02 2.836167681707307e-02 - 2.835170090137019e-02 2.834173707461769e-02 2.833178532393912e-02 2.832184563033358e-02 2.831191797277370e-02 - 2.830200233825938e-02 2.829209871310940e-02 2.828220707523810e-02 2.827232741579271e-02 2.826245972853687e-02 - 2.825260399229306e-02 2.824276019064247e-02 2.823292831178126e-02 2.822310834132040e-02 2.821330025651807e-02 - 2.820350403438503e-02 2.819371967866794e-02 2.818394718049788e-02 2.817418651237375e-02 2.816443766090156e-02 - 2.815470061416237e-02 2.814497535504664e-02 2.813526186206681e-02 2.812556012131105e-02 2.811587013236315e-02 - 2.810619188120791e-02 2.809652534562629e-02 2.808687050311100e-02 2.807722734684383e-02 2.806759586949595e-02 - 2.805797603975531e-02 2.804836784541272e-02 2.803877128655403e-02 2.802918634812817e-02 2.801961300908425e-02 - 2.801005124931340e-02 2.800050106254358e-02 2.799096243185147e-02 2.798143533065562e-02 2.797191976200169e-02 - 2.796241571829330e-02 2.795292316767612e-02 2.794344209750147e-02 2.793397250080147e-02 2.792451436474921e-02 - 2.791506766429417e-02 2.790563238187514e-02 2.789620852426368e-02 2.788679607109519e-02 2.787739499448651e-02 - 2.786800529276515e-02 2.785862695250820e-02 2.784925995023579e-02 2.783990426851568e-02 2.783055990112446e-02 - 2.782122684523413e-02 2.781190507602721e-02 2.780259457625915e-02 2.779329533996523e-02 2.778400734510273e-02 - 2.777473057425486e-02 2.776546502209671e-02 2.775621067523501e-02 2.774696751775778e-02 2.773773553529171e-02 - 2.772851471226555e-02 2.771930503638066e-02 2.771010650156085e-02 2.770091908311444e-02 2.769174275675288e-02 - 2.768257752750487e-02 2.767342338343482e-02 2.766428030170250e-02 2.765514827509389e-02 2.764602728937508e-02 - 2.763691732224667e-02 2.762781835629091e-02 2.761873038318760e-02 2.760965340016332e-02 2.760058738918467e-02 - 2.759153233095657e-02 2.758248821223181e-02 2.757345502668101e-02 2.756443275844788e-02 2.755542137569210e-02 - 2.754642087861812e-02 2.753743126859248e-02 2.752845251726651e-02 2.751948461051369e-02 2.751052754088128e-02 - 2.750158129051000e-02 2.749264584112846e-02 2.748372117908398e-02 2.747480730190011e-02 2.746590419839729e-02 - 2.745701184777745e-02 2.744813023052759e-02 2.743925933666562e-02 2.743039916197098e-02 2.742154968107790e-02 - 2.741271087850060e-02 2.740388275814067e-02 2.739506530469222e-02 2.738625849608251e-02 2.737746231424592e-02 - 2.736867675514432e-02 2.735990180809817e-02 2.735113743878892e-02 2.734238364845174e-02 2.733364044336462e-02 - 2.732490778587926e-02 2.731618566204183e-02 2.730747407386686e-02 2.729877300249025e-02 2.729008242908668e-02 - 2.728140234030172e-02 2.727273272900814e-02 2.726407358354408e-02 2.725542488697956e-02 2.724678662927163e-02 - 2.723815879907967e-02 2.722954137935252e-02 2.722093434732608e-02 2.721233769152850e-02 2.720375141931018e-02 - 2.719517551218435e-02 2.718660994644712e-02 2.717805471481514e-02 2.716950980584153e-02 2.716097520393317e-02 - 2.715245089289530e-02 2.714393686286031e-02 2.713543310581999e-02 2.712693960497614e-02 2.711845634782483e-02 - 2.710998332519429e-02 2.710152051958041e-02 2.709306791441093e-02 2.708462549834906e-02 2.707619326918369e-02 - 2.706777121480425e-02 2.705935930907671e-02 2.705095754483260e-02 2.704256591454058e-02 2.703418439795306e-02 - 2.702581298145425e-02 2.701745165546447e-02 2.700910041075726e-02 2.700075923746808e-02 2.699242812272907e-02 - 2.698410704764140e-02 2.697579599978723e-02 2.696749496984126e-02 2.695920394125775e-02 2.695092290187428e-02 - 2.694265184396634e-02 2.693439075649869e-02 2.692613962541774e-02 2.691789843589869e-02 2.690966718080280e-02 - 2.690144584430361e-02 2.689323440003169e-02 2.688503284907665e-02 2.687684119009101e-02 2.686865940030225e-02 - 2.686048746353486e-02 2.685232536881714e-02 2.684417310662326e-02 2.683603066151065e-02 2.682789801897943e-02 - 2.681977517552054e-02 2.681166212021913e-02 2.680355883616239e-02 2.679546530889016e-02 2.678738152752996e-02 - 2.677930748200765e-02 2.677124315479004e-02 2.676318853591112e-02 2.675514362231527e-02 2.674710839396962e-02 - 2.673908283555094e-02 2.673106694339361e-02 2.672306070150655e-02 2.671506409151823e-02 2.670707710108217e-02 - 2.669909972943648e-02 2.669113197027321e-02 2.668317379682501e-02 2.667522519875436e-02 2.666728617090520e-02 - 2.665935669311371e-02 2.665143675159882e-02 2.664352634032146e-02 2.663562545659268e-02 2.662773408361464e-02 - 2.661985219717407e-02 2.661197979572226e-02 2.660411687169956e-02 2.659626340488144e-02 2.658841937631547e-02 - 2.658058477937751e-02 2.657275961893512e-02 2.656494387358596e-02 2.655713752275513e-02 2.654934056348008e-02 - 2.654155298332925e-02 2.653377476657220e-02 2.652600590198415e-02 2.651824638075199e-02 2.651049619255404e-02 - 2.650275532091429e-02 2.649502375487615e-02 2.648730148802552e-02 2.647958851263073e-02 2.647188480891689e-02 - 2.646419035368700e-02 2.645650515131691e-02 2.644882919484906e-02 2.644116246069965e-02 2.643350494181170e-02 - 2.642585663084689e-02 2.641821751242615e-02 2.641058756892747e-02 2.640296679007395e-02 2.639535517653221e-02 - 2.638775271175803e-02 2.638015937698240e-02 2.637257516664822e-02 2.636500007332271e-02 2.635743408373907e-02 - 2.634987717633525e-02 2.634232934391862e-02 2.633479058525924e-02 2.632726088227431e-02 2.631974022390311e-02 - 2.631222860499385e-02 2.630472600717760e-02 2.629723241433261e-02 2.628974781674581e-02 2.628227220621198e-02 - 2.627480557677242e-02 2.626734792215179e-02 2.625989921852152e-02 2.625245945041883e-02 2.624502862403611e-02 - 2.623760671958282e-02 2.623019371536040e-02 2.622278961237779e-02 2.621539440295659e-02 2.620800807254220e-02 - 2.620063060674004e-02 2.619326199404739e-02 2.618590222410475e-02 2.617855128386046e-02 2.617120916522779e-02 - 2.616387586230346e-02 2.615655135861502e-02 2.614923564213544e-02 2.614192870720641e-02 2.613463054125929e-02 - 2.612734112755428e-02 2.612006044964381e-02 2.611278850871195e-02 2.610552530050819e-02 2.609827080222275e-02 - 2.609102500359168e-02 2.608378789925431e-02 2.607655947900249e-02 2.606933972466179e-02 2.606212861946312e-02 - 2.605492616097670e-02 2.604773234503024e-02 2.604054716124884e-02 2.603337058950191e-02 2.602620261873257e-02 - 2.601904324395194e-02 2.601189244598317e-02 2.600475021758196e-02 2.599761656283118e-02 2.599049145836681e-02 - 2.598337488632347e-02 2.597626684662969e-02 2.596916733159564e-02 2.596207632537513e-02 2.595499380688753e-02 - 2.594791977426907e-02 2.594085422650568e-02 2.593379714560815e-02 2.592674851872178e-02 2.591970833661526e-02 - 2.591267658830654e-02 2.590565326173340e-02 2.589863834578747e-02 2.589163183398775e-02 2.588463371701131e-02 - 2.587764398252935e-02 2.587066261956569e-02 2.586368961749470e-02 2.585672496539723e-02 2.584976865103265e-02 - 2.584282066471713e-02 2.583588100000093e-02 2.582894964599770e-02 2.582202659070586e-02 2.581511182332461e-02 - 2.580820533343631e-02 2.580130710958863e-02 2.579441713875388e-02 2.578753541579036e-02 2.578066193633965e-02 - 2.577379668579866e-02 2.576693964640701e-02 2.576009080523955e-02 2.575325016689414e-02 2.574641771694009e-02 - 2.573959342940173e-02 2.573277731100565e-02 2.572596935753856e-02 2.571916954588383e-02 2.571237786264848e-02 - 2.570559430241213e-02 2.569881886299849e-02 2.569205152414907e-02 2.568529227185872e-02 2.567854111122693e-02 - 2.567179802594942e-02 2.566506299732867e-02 2.565833602386073e-02 2.565161709921462e-02 2.564490620914589e-02 - 2.563820333139000e-02 2.563150846268354e-02 2.562482160754986e-02 2.561814274902439e-02 2.561147187258114e-02 - 2.560480896924013e-02 2.559815402833877e-02 2.559150703774291e-02 2.558486798572520e-02 2.557823686789989e-02 - 2.557161367849433e-02 2.556499840587265e-02 2.555839103232124e-02 2.555179154834854e-02 2.554519995829834e-02 - 2.553861624178350e-02 2.553204037844031e-02 2.552547237202886e-02 2.551891221538829e-02 2.551235989397021e-02 - 2.550581539575596e-02 2.549927871458803e-02 2.549274984258965e-02 2.548622875540724e-02 2.547971544999134e-02 - 2.547320993631275e-02 2.546671219025347e-02 2.546022219347805e-02 2.545373994243675e-02 2.544726542971977e-02 - 2.544079864501286e-02 2.543433957656028e-02 2.542788821576999e-02 2.542144455508066e-02 2.541500858637495e-02 - 2.540858030019949e-02 2.540215968413957e-02 2.539574672197945e-02 2.538934140646816e-02 2.538294373410821e-02 - 2.537655369660362e-02 2.537017128263758e-02 2.536379648098229e-02 2.535742928550868e-02 2.535106968465225e-02 - 2.534471766277936e-02 2.533837321084466e-02 2.533203632423742e-02 2.532570699881585e-02 2.531938521813243e-02 - 2.531307097096266e-02 2.530676425602581e-02 2.530046505932213e-02 2.529417336607690e-02 2.528788916915281e-02 - 2.528161246489754e-02 2.527534324609989e-02 2.526908149634068e-02 2.526282720495094e-02 2.525658036572961e-02 - 2.525034097275206e-02 2.524410901058027e-02 2.523788446449190e-02 2.523166734234336e-02 2.522545763237074e-02 - 2.521925530838600e-02 2.521306037097086e-02 2.520687281776321e-02 2.520069263496993e-02 2.519451980442291e-02 - 2.518835431925369e-02 2.518219618546694e-02 2.517604538654039e-02 2.516990190396150e-02 2.516376573127799e-02 - 2.515763686639562e-02 2.515151530112912e-02 2.514540101358030e-02 2.513929399756280e-02 2.513319425347670e-02 - 2.512710177240427e-02 2.512101654329324e-02 2.511493855506050e-02 2.510886779787783e-02 2.510280425830826e-02 - 2.509674792451250e-02 2.509069880343641e-02 2.508465688466923e-02 2.507862214067907e-02 2.507259457630134e-02 - 2.506657418922008e-02 2.506056095604422e-02 2.505455486579475e-02 2.504855591546334e-02 2.504256410459500e-02 - 2.503657941982099e-02 2.503060184642849e-02 2.502463137903613e-02 2.501866800626509e-02 2.501271171663477e-02 - 2.500676250820755e-02 2.500082037092928e-02 2.499488529135626e-02 2.498895726677344e-02 2.498303628979692e-02 - 2.497712234741346e-02 2.497121542814719e-02 2.496531552247531e-02 2.495942262282587e-02 2.495353672310340e-02 - 2.494765781766853e-02 2.494178589943900e-02 2.493592095223772e-02 2.493006296439117e-02 2.492421193524048e-02 - 2.491836784922406e-02 2.491253069345717e-02 2.490670047398909e-02 2.490087718065651e-02 2.489506079631419e-02 - 2.488925131370227e-02 2.488344872747560e-02 2.487765302865731e-02 2.487186419727612e-02 2.486608223223404e-02 - 2.486030714174834e-02 2.485453889875117e-02 2.484877749156952e-02 2.484302292908405e-02 2.483727519324232e-02 - 2.483153426549052e-02 2.482580013961989e-02 2.482007281919668e-02 2.481435229933991e-02 2.480863855780388e-02 - 2.480293158683973e-02 2.479723138421890e-02 2.479153794250162e-02 2.478585124573938e-02 2.478017128120043e-02 - 2.477449805440481e-02 2.476883155587847e-02 2.476317176818658e-02 2.475751868877601e-02 2.475187231076201e-02 - 2.474623262098153e-02 2.474059960704484e-02 2.473497326224523e-02 2.472935358498410e-02 2.472374056978996e-02 - 2.471813420423485e-02 2.471253447111526e-02 2.470694136984621e-02 2.470135489678424e-02 2.469577503399494e-02 - 2.469020177298829e-02 2.468463511029760e-02 2.467907504169421e-02 2.467352155791407e-02 2.466797464651026e-02 - 2.466243429488579e-02 2.465690049712254e-02 2.465137324948606e-02 2.464585254039273e-02 2.464033836402688e-02 - 2.463483071739735e-02 2.462932958374225e-02 2.462383495186045e-02 2.461834681928389e-02 2.461286517898853e-02 - 2.460739002108202e-02 2.460192133524253e-02 2.459645911917798e-02 2.459100336526309e-02 2.458555405446716e-02 - 2.458011118496141e-02 2.457467475465895e-02 2.456924474486533e-02 2.456382114921245e-02 2.455840396700115e-02 - 2.455299319041756e-02 2.454758880740113e-02 2.454219080674820e-02 2.453679918638537e-02 2.453141393576077e-02 - 2.452603503863916e-02 2.452066249180092e-02 2.451529629410615e-02 2.450993644073534e-02 2.450458291517292e-02 - 2.449923570627392e-02 2.449389481263279e-02 2.448856022075961e-02 2.448323192252920e-02 2.447790992354739e-02 - 2.447259420740984e-02 2.446728475663024e-02 2.446198157303190e-02 2.445668465268695e-02 2.445139398411770e-02 - 2.444610955000165e-02 2.444083134675017e-02 2.443555937646448e-02 2.443029362647454e-02 2.442503408583922e-02 - 2.441978074770511e-02 2.441453360513738e-02 2.440929264714783e-02 2.440405786136508e-02 2.439882924944217e-02 - 2.439360680824694e-02 2.438839052372590e-02 2.438318038826778e-02 2.437797639360750e-02 2.437277852674977e-02 - 2.436758678074824e-02 2.436240115296091e-02 2.435722164202054e-02 2.435204823529888e-02 2.434688091817521e-02 - 2.434171968740183e-02 2.433656453724402e-02 2.433141545805634e-02 2.432627243782077e-02 2.432113546933723e-02 - 2.431600455029639e-02 2.431087967900234e-02 2.430576084399959e-02 2.430064802749307e-02 2.429554123205279e-02 - 2.429044044976694e-02 2.428534565606734e-02 2.428025685952290e-02 2.427517406275088e-02 2.427009724038350e-02 - 2.426502638834353e-02 2.425996150697585e-02 2.425490258288459e-02 2.424984960255012e-02 2.424480255754471e-02 - 2.423976144931379e-02 2.423472627405213e-02 2.422969702193537e-02 2.422467367993699e-02 2.421965624107330e-02 - 2.421464470176334e-02 2.420963904926960e-02 2.420463927567678e-02 2.419964537946393e-02 2.419465735323985e-02 - 2.418967518800793e-02 2.418469887545246e-02 2.417972840901141e-02 2.417476377855392e-02 2.416980496962540e-02 - 2.416485198688481e-02 2.415990483049387e-02 2.415496347565664e-02 2.415002792020104e-02 2.414509816788697e-02 - 2.414017420064829e-02 2.413525600526027e-02 2.413034357711665e-02 2.412543691925479e-02 2.412053602209589e-02 - 2.411564086852338e-02 2.411075145960207e-02 2.410586778967854e-02 2.410098984367492e-02 2.409611761892932e-02 - 2.409125110932578e-02 2.408639030144091e-02 2.408153519631380e-02 2.407668578962185e-02 2.407184206146642e-02 - 2.406700400909483e-02 2.406217163125833e-02 2.405734491326586e-02 2.405252385052364e-02 2.404770844026444e-02 - 2.404289866819192e-02 2.403809452984102e-02 2.403329602484744e-02 2.402850314011094e-02 2.402371586479471e-02 - 2.401893419282938e-02 2.401415812045089e-02 2.400938764313821e-02 2.400462275334547e-02 2.399986343578922e-02 - 2.399510968520409e-02 2.399036150812855e-02 2.398561888480285e-02 2.398088180164008e-02 2.397615026865237e-02 - 2.397142427338870e-02 2.396670380040281e-02 2.396198885088599e-02 2.395727942113068e-02 2.395257549962209e-02 - 2.394787706723708e-02 2.394318412617158e-02 2.393849668455232e-02 2.393381472012022e-02 2.392913822141401e-02 - 2.392446719065216e-02 2.391980162598514e-02 2.391514151312970e-02 2.391048683154523e-02 2.390583758880722e-02 - 2.390119378770886e-02 2.389655541357522e-02 2.389192245255953e-02 2.388729489743550e-02 2.388267274893805e-02 - 2.387805599705324e-02 2.387344463051915e-02 2.386883864637205e-02 2.386423804212813e-02 2.385964281176755e-02 - 2.385505294183017e-02 2.385046842474073e-02 2.384588925674739e-02 2.384131543037479e-02 2.383674693675093e-02 - 2.383218376863605e-02 2.382762592698097e-02 2.382307340607612e-02 2.381852619200930e-02 2.381398427584630e-02 - 2.380944765139419e-02 2.380491631418275e-02 2.380039026147703e-02 2.379586948695320e-02 2.379135397827495e-02 - 2.378684372855616e-02 2.378233873403001e-02 2.377783899070361e-02 2.377334448688785e-02 2.376885521259772e-02 - 2.376437117173840e-02 2.375989235311110e-02 2.375541874056297e-02 2.375095033967465e-02 2.374648714507580e-02 - 2.374202914136664e-02 2.373757632537944e-02 2.373312869288914e-02 2.372868623536894e-02 2.372424894471153e-02 - 2.371981681484819e-02 2.371538984133524e-02 2.371096801501392e-02 2.370655132827953e-02 2.370213977833190e-02 - 2.369773335765337e-02 2.369333205880069e-02 2.368893587883010e-02 2.368454481046802e-02 2.368015884444250e-02 - 2.367577797334512e-02 2.367140218742613e-02 2.366703147963686e-02 2.366266585606776e-02 2.365830530976384e-02 - 2.365394982335759e-02 2.364959939168465e-02 2.364525401200215e-02 2.364091367903051e-02 2.363657837870221e-02 - 2.363224810602428e-02 2.362792286773459e-02 2.362360264929340e-02 2.361928743769403e-02 2.361497723470610e-02 - 2.361067203383207e-02 2.360637182449869e-02 2.360207659794005e-02 2.359778635431920e-02 2.359350109143980e-02 - 2.358922079027601e-02 2.358494544772182e-02 2.358067506765588e-02 2.357640963547734e-02 2.357214914179353e-02 - 2.356789358468287e-02 2.356364296127548e-02 2.355939726289868e-02 2.355515647729875e-02 2.355092060314220e-02 - 2.354668963726047e-02 2.354246356971432e-02 2.353824239065819e-02 2.353402609608870e-02 2.352981468856027e-02 - 2.352560815209497e-02 2.352140647526573e-02 2.351720967050562e-02 2.351301772305351e-02 2.350883061252196e-02 - 2.350464834642137e-02 2.350047092197861e-02 2.349629832802946e-02 2.349213055910952e-02 2.348796760574937e-02 - 2.348380945835795e-02 2.347965612326723e-02 2.347550759163322e-02 2.347136384068571e-02 2.346722487769892e-02 - 2.346309070523777e-02 2.345896130833473e-02 2.345483667635093e-02 2.345071680463291e-02 2.344660169327714e-02 - 2.344249133136094e-02 2.343838570884467e-02 2.343428482723373e-02 2.343018868068117e-02 2.342609726030811e-02 - 2.342201056195244e-02 2.341792857876926e-02 2.341385130156056e-02 2.340977872164902e-02 2.340571083589386e-02 - 2.340164764377465e-02 2.339758913684304e-02 2.339353530825718e-02 2.338948615385810e-02 2.338544166438565e-02 - 2.338140183238109e-02 2.337736665460082e-02 2.337333612670094e-02 2.336931024309368e-02 2.336528899670786e-02 - 2.336127237782067e-02 2.335726037932775e-02 2.335325300092871e-02 2.334925023614406e-02 2.334525207670920e-02 - 2.334125851951941e-02 2.333726955725296e-02 2.333328518197435e-02 2.332930539416707e-02 2.332533018620607e-02 - 2.332135954429912e-02 2.331739346348105e-02 2.331343194297124e-02 2.330947498175055e-02 2.330552256758802e-02 - 2.330157469245372e-02 2.329763135682490e-02 2.329369255310137e-02 2.328975827131819e-02 2.328582850377367e-02 - 2.328190324900185e-02 2.327798250467623e-02 2.327406626164597e-02 2.327015451465238e-02 2.326624725851670e-02 - 2.326234448228765e-02 2.325844618291867e-02 2.325455236057939e-02 2.325066300636415e-02 2.324677811186985e-02 - 2.324289767062798e-02 2.323902167622130e-02 2.323515012509116e-02 2.323128301561370e-02 2.322742034088871e-02 - 2.322356209250113e-02 2.321970826255392e-02 2.321585884544971e-02 2.321201383858435e-02 2.320817324137425e-02 - 2.320433704277431e-02 2.320050523099401e-02 2.319667780275936e-02 2.319285475700314e-02 2.318903609087885e-02 - 2.318522179577433e-02 2.318141186586264e-02 2.317760629632794e-02 2.317380507773795e-02 2.317000820301008e-02 - 2.316621566880872e-02 2.316242747510807e-02 2.315864361575457e-02 2.315486407850317e-02 2.315108885694486e-02 - 2.314731794816131e-02 2.314355135044316e-02 2.313978905662257e-02 2.313603105913640e-02 2.313227735329952e-02 - 2.312852793585061e-02 2.312478280157292e-02 2.312104194073204e-02 2.311730534704967e-02 2.311357301587891e-02 - 2.310984494137890e-02 2.310612112341407e-02 2.310240155989217e-02 2.309868623130452e-02 2.309497513592190e-02 - 2.309126828241582e-02 2.308756565023808e-02 2.308386723175103e-02 2.308017303542274e-02 2.307648304592169e-02 - 2.307279725617671e-02 2.306911567493640e-02 2.306543828441958e-02 2.306176507302976e-02 2.305809605235563e-02 - 2.305443121050249e-02 2.305077053229759e-02 2.304711401909808e-02 2.304346166830784e-02 2.303981347406350e-02 - 2.303616943085239e-02 2.303252953349069e-02 2.302889377643319e-02 2.302526215247478e-02 2.302163465435939e-02 - 2.301801127709388e-02 2.301439202296127e-02 2.301077688440331e-02 2.300716584594829e-02 2.300355891234385e-02 - 2.299995607931316e-02 2.299635732709070e-02 2.299276266087610e-02 2.298917208378683e-02 2.298558558107965e-02 - 2.298200314503575e-02 2.297842477288603e-02 2.297485046311076e-02 2.297128020911345e-02 2.296771400315858e-02 - 2.296415184168031e-02 2.296059371667762e-02 2.295703962066644e-02 2.295348955785851e-02 2.294994352217295e-02 - 2.294640149900077e-02 2.294286348264926e-02 2.293932947451599e-02 2.293579947717141e-02 2.293227347444131e-02 - 2.292875145668869e-02 2.292523342863249e-02 2.292171938675970e-02 2.291820932208030e-02 2.291470322329688e-02 - 2.291120108573121e-02 2.290770290936340e-02 2.290420869564250e-02 2.290071843254762e-02 2.289723210840996e-02 - 2.289374972996874e-02 2.289027128684278e-02 2.288679676284003e-02 2.288332616596880e-02 2.287985949623025e-02 - 2.287639674290211e-02 2.287293789614104e-02 2.286948295143698e-02 2.286603190794522e-02 2.286258475709644e-02 - 2.285914149325583e-02 2.285570211629635e-02 2.285226661817064e-02 2.284883499242224e-02 2.284540723897847e-02 - 2.284198334984975e-02 2.283856331588243e-02 2.283514713353579e-02 2.283173480111027e-02 2.282832631556901e-02 - 2.282492166909090e-02 2.282152085461623e-02 2.281812386736860e-02 2.281473070606539e-02 2.281134136558116e-02 - 2.280795583769253e-02 2.280457411713410e-02 2.280119619914733e-02 2.279782207936136e-02 2.279445175627783e-02 - 2.279108522557549e-02 2.278772247795469e-02 2.278436350274908e-02 2.278100829770330e-02 2.277765687156956e-02 - 2.277430921150676e-02 2.277096530368425e-02 2.276762515226868e-02 2.276428875675497e-02 2.276095610802096e-02 - 2.275762718728153e-02 2.275430199700514e-02 2.275098054723153e-02 2.274766282325953e-02 2.274434881806882e-02 - 2.274103853245654e-02 2.273773195657694e-02 2.273442908251650e-02 2.273112990748000e-02 2.272783443024632e-02 - 2.272454264587135e-02 2.272125454541999e-02 2.271797012768606e-02 2.271468938883630e-02 2.271141231743784e-02 - 2.270813891155475e-02 2.270486917113991e-02 2.270160309030139e-02 2.269834065991423e-02 2.269508187421201e-02 - 2.269182673791773e-02 2.268857524219826e-02 2.268532737305624e-02 2.268208313254210e-02 2.267884251722086e-02 - 2.267560551920548e-02 2.267237214108131e-02 2.266914237609957e-02 2.266591620883689e-02 2.266269364166427e-02 - 2.265947467384046e-02 2.265625929499294e-02 2.265304750285308e-02 2.264983929495161e-02 2.264663466331073e-02 - 2.264343359962570e-02 2.264023610100446e-02 2.263704217283995e-02 2.263385180078203e-02 2.263066497176033e-02 - 2.262748170200772e-02 2.262430198020481e-02 2.262112578516977e-02 2.261795313211606e-02 2.261478401664109e-02 - 2.261161841743119e-02 2.260845633522814e-02 2.260529777070043e-02 2.260214271924124e-02 2.259899117823321e-02 - 2.259584314154298e-02 2.259269859890657e-02 2.258955754741791e-02 2.258641998536936e-02 2.258328590829124e-02 - 2.258015531052365e-02 2.257702818646037e-02 2.257390453172050e-02 2.257078434461123e-02 2.256766762198980e-02 - 2.256455435398716e-02 2.256144453344060e-02 2.255833815784602e-02 2.255523523027356e-02 2.255213574452021e-02 - 2.254903968810603e-02 2.254594705829782e-02 2.254285785514665e-02 2.253977207653749e-02 2.253668970834607e-02 - 2.253361074658835e-02 2.253053520058667e-02 2.252746305460894e-02 2.252439429792020e-02 2.252132894054988e-02 - 2.251826697539277e-02 2.251520839162438e-02 2.251215318778324e-02 2.250910135797150e-02 2.250605289615611e-02 - 2.250300780314812e-02 2.249996607511807e-02 2.249692770517706e-02 2.249389268897849e-02 2.249086101912092e-02 - 2.248783268793952e-02 2.248480769791340e-02 2.248178604607573e-02 2.247876772289102e-02 2.247575272657626e-02 - 2.247274105420605e-02 2.246973269884927e-02 2.246672765673356e-02 2.246372592391256e-02 2.246072749418018e-02 - 2.245773236145919e-02 2.245474052366870e-02 2.245175198466864e-02 2.244876673416187e-02 2.244578475935081e-02 - 2.244280606154297e-02 2.243983064008646e-02 2.243685849064164e-02 2.243388960632717e-02 2.243092397966235e-02 - 2.242796160524575e-02 2.242500248562306e-02 2.242204661762487e-02 2.241909399183298e-02 2.241614460666303e-02 - 2.241319845819517e-02 2.241025553754803e-02 2.240731584245553e-02 2.240437937032112e-02 2.240144611432051e-02 - 2.239851607018801e-02 2.239558923444239e-02 2.239266560299412e-02 2.238974517661811e-02 2.238682795331298e-02 - 2.238391391839321e-02 2.238100306495051e-02 2.237809539304577e-02 2.237519090301935e-02 2.237228958954325e-02 - 2.236939144530989e-02 2.236649647337483e-02 2.236360466636645e-02 2.236071600836286e-02 2.235783050633204e-02 - 2.235494816009726e-02 2.235206895420678e-02 2.234919288912077e-02 2.234631996540050e-02 2.234345017408028e-02 - 2.234058350741709e-02 2.233771996217690e-02 2.233485954108143e-02 2.233200223848051e-02 2.232914804618978e-02 - 2.232629696222737e-02 2.232344898389008e-02 2.232060410657171e-02 2.231776232362639e-02 2.231492363175558e-02 - 2.231208802922137e-02 2.230925550831191e-02 2.230642606279709e-02 2.230359969032392e-02 2.230077639232617e-02 - 2.229795616382932e-02 2.229513899284023e-02 2.229232488215048e-02 2.228951382986107e-02 2.228670582046145e-02 - 2.228390085767177e-02 2.228109894426768e-02 2.227830006461064e-02 2.227550421765863e-02 2.227271140560883e-02 - 2.226992161633195e-02 2.226713484518715e-02 2.226435109357777e-02 2.226157036041665e-02 2.225879263594571e-02 - 2.225601790864145e-02 2.225324618600033e-02 2.225047746610503e-02 2.224771173578603e-02 2.224494899695189e-02 - 2.224218924606724e-02 2.223943246967720e-02 2.223667867147697e-02 2.223392785229840e-02 2.223117999944780e-02 - 2.222843510958861e-02 2.222569318138216e-02 2.222295420869658e-02 2.222021819230338e-02 2.221748513172378e-02 - 2.221475501403353e-02 2.221202783347761e-02 2.220930358964832e-02 2.220658227937696e-02 2.220386389978368e-02 - 2.220114844711944e-02 2.219843591216284e-02 2.219572629440826e-02 2.219301959936691e-02 2.219031581219321e-02 - 2.218761492468887e-02 2.218491694233576e-02 2.218222185562244e-02 2.217952965986671e-02 2.217684036403281e-02 - 2.217415395419634e-02 2.217147041795686e-02 2.216878976537657e-02 2.216611199005385e-02 2.216343708084910e-02 - 2.216076504044857e-02 2.215809586407636e-02 2.215542954392592e-02 2.215276608232491e-02 2.215010547339664e-02 - 2.214744770611955e-02 2.214479278225410e-02 2.214214070177000e-02 2.213949145934428e-02 2.213684504847090e-02 - 2.213420146383213e-02 2.213156070201421e-02 2.212892275987791e-02 2.212628763520102e-02 2.212365532631548e-02 - 2.212102582567219e-02 2.211839912707401e-02 2.211577523186081e-02 2.211315413883962e-02 2.211053584219323e-02 - 2.210792033053083e-02 2.210530760247808e-02 2.210269766011106e-02 2.210009049378774e-02 2.209748609987134e-02 - 2.209488448015577e-02 2.209228563063591e-02 2.208968954607055e-02 2.208709622107550e-02 2.208450564887732e-02 - 2.208191782589816e-02 2.207933275252874e-02 2.207675042560285e-02 2.207417084119970e-02 2.207159399606388e-02 - 2.206901988424427e-02 2.206644850045388e-02 2.206387984291528e-02 2.206131390816773e-02 2.205875069196218e-02 - 2.205619019101501e-02 2.205363240248722e-02 2.205107732226570e-02 2.204852494231603e-02 2.204597526222870e-02 - 2.204342828418220e-02 2.204088399409952e-02 2.203834238815479e-02 2.203580347352047e-02 2.203326724064265e-02 - 2.203073368487589e-02 2.202820281109562e-02 2.202567460568826e-02 2.202314905892956e-02 2.202062617713913e-02 - 2.201810595951965e-02 2.201558839960293e-02 2.201307348855861e-02 2.201056122699519e-02 2.200805161543166e-02 - 2.200554464185156e-02 2.200304030240887e-02 2.200053859846551e-02 2.199803952619762e-02 2.199554308107517e-02 - 2.199304925941878e-02 2.199055805969111e-02 2.198806947716193e-02 2.198558350490501e-02 2.198310014348315e-02 - 2.198061939050182e-02 2.197814123774413e-02 2.197566568143648e-02 2.197319271829654e-02 2.197072234409288e-02 - 2.196825456242376e-02 2.196578937054303e-02 2.196332674903257e-02 2.196086670076693e-02 2.195840923401799e-02 - 2.195595433798292e-02 2.195350200785295e-02 2.195105224287541e-02 2.194860503638501e-02 2.194616038337459e-02 - 2.194371828086876e-02 2.194127872478465e-02 2.193884171275727e-02 2.193640724439015e-02 2.193397531871202e-02 - 2.193154592984012e-02 2.192911906730429e-02 2.192669472874541e-02 2.192427291582612e-02 2.192185362988310e-02 - 2.191943685926103e-02 2.191702259589666e-02 2.191461084837004e-02 2.191220161094460e-02 2.190979487232746e-02 - 2.190739062981033e-02 2.190498888177591e-02 2.190258962778606e-02 2.190019287048831e-02 2.189779860038415e-02 - 2.189540680312951e-02 2.189301748590321e-02 2.189063064823816e-02 2.188824627921663e-02 2.188586438035036e-02 - 2.188348494945867e-02 2.188110797669410e-02 2.187873346273279e-02 2.187636140793982e-02 2.187399180563438e-02 - 2.187162464701073e-02 2.186925992764394e-02 2.186689765219864e-02 2.186453782016761e-02 2.186218042520733e-02 - 2.185982545624109e-02 2.185747291143151e-02 2.185512279286289e-02 2.185277509428750e-02 2.185042981497303e-02 - 2.184808695595145e-02 2.184574650317918e-02 2.184340845337333e-02 2.184107281435048e-02 2.183873957690715e-02 - 2.183640873122354e-02 2.183408027442373e-02 2.183175421068970e-02 2.182943053984947e-02 2.182710925220595e-02 - 2.182479034512406e-02 2.182247381639650e-02 2.182015965839264e-02 2.181784786935527e-02 2.181553844939510e-02 - 2.181323139439093e-02 2.181092669994856e-02 2.180862436262286e-02 2.180632438083940e-02 2.180402674952244e-02 - 2.180173146217098e-02 2.179943851892379e-02 2.179714791838810e-02 2.179485965603752e-02 2.179257372764807e-02 - 2.179029013045416e-02 2.178800886254997e-02 2.178572991731780e-02 2.178345329019238e-02 2.178117898198011e-02 - 2.177890698980304e-02 2.177663730909087e-02 2.177436993586566e-02 2.177210486810286e-02 2.176984210277431e-02 - 2.176758163245009e-02 2.176532345522340e-02 2.176306757137086e-02 2.176081397536724e-02 2.175856266623576e-02 - 2.175631364444715e-02 2.175406689861889e-02 2.175182242380624e-02 2.174958022311289e-02 2.174734029291431e-02 - 2.174510262809328e-02 2.174286722491656e-02 2.174063408336708e-02 2.173840320169586e-02 2.173617457340815e-02 - 2.173394819180500e-02 2.173172405255836e-02 2.172950215559655e-02 2.172728250040623e-02 2.172506508580887e-02 - 2.172284990969628e-02 2.172063696250313e-02 2.171842623537083e-02 2.171621773566752e-02 2.171401146093844e-02 - 2.171180740120238e-02 2.170960555830954e-02 2.170740592901658e-02 2.170520850408856e-02 2.170301328419004e-02 - 2.170082027006994e-02 2.169862945830807e-02 2.169644084240343e-02 2.169425441572978e-02 2.169207017401216e-02 - 2.168988812007480e-02 2.168770825534887e-02 2.168553057272023e-02 2.168335506533793e-02 2.168118172867985e-02 - 2.167901056214399e-02 2.167684156632982e-02 2.167467473989915e-02 2.167251007478243e-02 2.167034756604321e-02 - 2.166818721221639e-02 2.166602901099679e-02 2.166387295840019e-02 2.166171905012346e-02 2.165956728718834e-02 - 2.165741766632386e-02 2.165527017845730e-02 2.165312482355555e-02 2.165098160273919e-02 2.164884051303741e-02 - 2.164670154730472e-02 2.164456469954934e-02 2.164242996946321e-02 2.164029735885670e-02 2.163816686523918e-02 - 2.163603847533059e-02 2.163391219068715e-02 2.163178801684997e-02 2.162966593882407e-02 2.162754595404139e-02 - 2.162542806873079e-02 2.162331227177066e-02 2.162119856181649e-02 2.161908694674025e-02 2.161697741144211e-02 - 2.161486994763257e-02 2.161276456243416e-02 2.161066125301312e-02 2.160856001324272e-02 2.160646083892226e-02 - 2.160436373197112e-02 2.160226869104043e-02 2.160017570438035e-02 2.159808476849354e-02 2.159599588501710e-02 - 2.159390905460169e-02 2.159182427010056e-02 2.158974152429478e-02 2.158766082444429e-02 2.158558216760809e-02 - 2.158350554187339e-02 2.158143094233737e-02 2.157935837033232e-02 2.157728782941571e-02 2.157521931196140e-02 - 2.157315281164952e-02 2.157108832745493e-02 2.156902585566251e-02 2.156696539445298e-02 2.156490694526656e-02 - 2.156285049964247e-02 2.156079605212440e-02 2.155874360997529e-02 2.155669316474123e-02 2.155464470676604e-02 - 2.155259824484399e-02 2.155055377365348e-02 2.154851128035285e-02 2.154647076406023e-02 2.154443222886153e-02 - 2.154239567713112e-02 2.154036109691455e-02 2.153832848380287e-02 2.153629784162443e-02 2.153426916110383e-02 - 2.153224243839968e-02 2.153021767928900e-02 2.152819487735599e-02 2.152617402486068e-02 2.152415511969989e-02 - 2.152213816346627e-02 2.152012315489333e-02 2.151811008517867e-02 2.151609895106827e-02 2.151408975350627e-02 - 2.151208249405811e-02 2.151007716412923e-02 2.150807375412716e-02 2.150607227139823e-02 2.150407271389111e-02 - 2.150207507178008e-02 2.150007934512424e-02 2.149808553345600e-02 2.149609363244227e-02 2.149410363369511e-02 - 2.149211553597770e-02 2.149012934592863e-02 2.148814505588094e-02 2.148616265955859e-02 2.148418215959600e-02 - 2.148220354775919e-02 2.148022681859241e-02 2.147825198020547e-02 2.147627902590631e-02 2.147430794498996e-02 - 2.147233873858447e-02 2.147037140717467e-02 2.146840594879004e-02 2.146644235912430e-02 2.146448063553682e-02 - 2.146252077578778e-02 2.146056277288728e-02 2.145860662318243e-02 2.145665232726965e-02 2.145469988438242e-02 - 2.145274929256557e-02 2.145080054831608e-02 2.144885364454498e-02 2.144690857746641e-02 2.144496534942983e-02 - 2.144302395654175e-02 2.144108439499599e-02 2.143914666610025e-02 2.143721076355154e-02 2.143527668029283e-02 - 2.143334441800114e-02 2.143141397685691e-02 2.142948535268880e-02 2.142755853497146e-02 2.142563352602930e-02 - 2.142371033388222e-02 2.142178894500280e-02 2.141986935358769e-02 2.141795156402302e-02 2.141603556793572e-02 - 2.141412136230918e-02 2.141220895321441e-02 2.141029833297722e-02 2.140838949470163e-02 2.140648244009975e-02 - 2.140457716697424e-02 2.140267367166504e-02 2.140077195168551e-02 2.139887200433115e-02 2.139697382547902e-02 - 2.139507740888590e-02 2.139318275720074e-02 2.139128987343195e-02 2.138939874415982e-02 2.138750936775835e-02 - 2.138562175102568e-02 2.138373588641631e-02 2.138185176599392e-02 2.137996938652284e-02 2.137808875223814e-02 - 2.137620986251236e-02 2.137433270909064e-02 2.137245728978030e-02 2.137058360186242e-02 2.136871163953864e-02 - 2.136684140688612e-02 2.136497290390506e-02 2.136310611597474e-02 2.136124104345297e-02 2.135937769212130e-02 - 2.135751605860686e-02 2.135565613610374e-02 2.135379791822062e-02 2.135194140402438e-02 2.135008659417071e-02 - 2.134823348788390e-02 2.134638207760105e-02 2.134453236032835e-02 2.134268433814086e-02 2.134083800772077e-02 - 2.133899336411597e-02 2.133715040305821e-02 2.133530912424798e-02 2.133346952672500e-02 2.133163160670673e-02 - 2.132979536297411e-02 2.132796079152963e-02 2.132612788229375e-02 2.132429663915477e-02 2.132246706798375e-02 - 2.132063916037057e-02 2.131881290769116e-02 2.131698830582932e-02 2.131516535978050e-02 2.131334407028698e-02 - 2.131152443198118e-02 2.130970643552249e-02 2.130789007885127e-02 2.130607536669811e-02 2.130426229682303e-02 - 2.130245086421657e-02 2.130064106313053e-02 2.129883288837854e-02 2.129702633875496e-02 2.129522141788389e-02 - 2.129341812290223e-02 2.129161644909972e-02 2.128981639414264e-02 2.128801795585396e-02 2.128622113110773e-02 - 2.128442591509673e-02 2.128263230760480e-02 2.128084030772261e-02 2.127904990395241e-02 2.127726109953179e-02 - 2.127547390424031e-02 2.127368830171838e-02 2.127190428479188e-02 2.127012186038021e-02 2.126834102886177e-02 - 2.126656178481652e-02 2.126478411995624e-02 2.126300803603507e-02 2.126123353191450e-02 2.125946059821390e-02 - 2.125768923851055e-02 2.125591945439615e-02 2.125415123382016e-02 2.125238457915817e-02 2.125061949358618e-02 - 2.124885596288304e-02 2.124709398735697e-02 2.124533357303348e-02 2.124357470952245e-02 2.124181739435340e-02 - 2.124006163206048e-02 2.123830741948956e-02 2.123655475001017e-02 2.123480361731545e-02 2.123305402409987e-02 - 2.123130596739953e-02 2.122955943693203e-02 2.122781443910126e-02 2.122607097723360e-02 2.122432904130337e-02 - 2.122258862659696e-02 2.122084973282204e-02 2.121911236175234e-02 2.121737650789419e-02 2.121564216387619e-02 - 2.121390932803162e-02 2.121217800425756e-02 2.121044819455527e-02 2.120871988671843e-02 2.120699307684077e-02 - 2.120526776795157e-02 2.120354395552526e-02 2.120182163603621e-02 2.120010080901829e-02 2.119838147500087e-02 - 2.119666363123091e-02 2.119494727091758e-02 2.119323238927472e-02 2.119151898655034e-02 2.118980706773010e-02 - 2.118809662574528e-02 2.118638765303925e-02 2.118468015121633e-02 2.118297411864271e-02 2.118126955146517e-02 - 2.117956644637810e-02 2.117786480292237e-02 2.117616462067450e-02 2.117446589411339e-02 2.117276862084477e-02 - 2.117107280130004e-02 2.116937843379139e-02 2.116768551256503e-02 2.116599403067535e-02 2.116430399205533e-02 - 2.116261539753040e-02 2.116092824074994e-02 2.115924251858398e-02 2.115755822756320e-02 2.115587536308644e-02 - 2.115419393062315e-02 2.115251393109511e-02 2.115083534999197e-02 2.114915818684827e-02 2.114748244571777e-02 - 2.114580812117730e-02 2.114413521000233e-02 2.114246371011731e-02 2.114079361630021e-02 2.113912493113981e-02 - 2.113745765864524e-02 2.113579178347091e-02 2.113412730283017e-02 2.113246422731517e-02 2.113080255018658e-02 - 2.112914226466844e-02 2.112748336987266e-02 2.112582586239263e-02 2.112416973838773e-02 2.112251499585494e-02 - 2.112086163946853e-02 2.111920966923609e-02 2.111755907231158e-02 2.111590984741022e-02 2.111426199652882e-02 - 2.111261551330255e-02 2.111097039854193e-02 2.110932665501722e-02 2.110768427494188e-02 2.110604325159932e-02 - 2.110440358337455e-02 2.110276527755971e-02 2.110112832954347e-02 2.109949272542061e-02 2.109785847270291e-02 - 2.109622557382813e-02 2.109459401840321e-02 2.109296380279178e-02 2.109133492634166e-02 2.108970738897449e-02 - 2.108808119187406e-02 2.108645633261542e-02 2.108483280177793e-02 2.108321059649476e-02 2.108158971816587e-02 - 2.107997016818712e-02 2.107835194176262e-02 2.107673503228282e-02 2.107511943992769e-02 2.107350516482023e-02 - 2.107189220511111e-02 2.107028055587330e-02 2.106867021606288e-02 2.106706118735907e-02 2.106545346293816e-02 - 2.106384703796383e-02 2.106224191316689e-02 2.106063808955507e-02 2.105903556250238e-02 2.105743432153898e-02 - 2.105583437513380e-02 2.105423572746437e-02 2.105263836035830e-02 2.105104227142354e-02 2.104944746729932e-02 - 2.104785395134047e-02 2.104626171573087e-02 2.104467074966839e-02 2.104308105452007e-02 2.104149263222363e-02 - 2.103990548218236e-02 2.103831959968388e-02 2.103673498293864e-02 2.103515163200819e-02 2.103356953798411e-02 - 2.103198869775456e-02 2.103040911733209e-02 2.102883079574534e-02 2.102725372695269e-02 2.102567790273802e-02 - 2.102410332486244e-02 2.102252999507990e-02 2.102095790737760e-02 2.101938706174730e-02 2.101781745879964e-02 - 2.101624909192282e-02 2.101468195450770e-02 2.101311604447429e-02 2.101155137000445e-02 2.100998792857284e-02 - 2.100842571064132e-02 2.100686471849675e-02 2.100530495078897e-02 2.100374640001838e-02 2.100218906014547e-02 - 2.100063293273019e-02 2.099907802537045e-02 2.099752433031871e-02 2.099597184169578e-02 2.099442056340826e-02 - 2.099287048844137e-02 2.099132161182849e-02 2.098977394056553e-02 2.098822746767990e-02 2.098668218492037e-02 - 2.098513809937855e-02 2.098359520656010e-02 2.098205349870481e-02 2.098051298433238e-02 2.097897365788888e-02 - 2.097743550607582e-02 2.097589853771057e-02 2.097436275317134e-02 2.097282814179318e-02 2.097129470444368e-02 - 2.096976244194844e-02 2.096823135057212e-02 2.096670142502171e-02 2.096517266432222e-02 2.096364507294766e-02 - 2.096211864290872e-02 2.096059336882086e-02 2.095906925902597e-02 2.095754630598820e-02 2.095602449947026e-02 - 2.095450384463222e-02 2.095298434369944e-02 2.095146599313072e-02 2.094994878341327e-02 2.094843271500539e-02 - 2.094691779352117e-02 2.094540401073429e-02 2.094389136288097e-02 2.094237985194064e-02 2.094086947133280e-02 - 2.093936021927527e-02 2.093785210108921e-02 2.093634511142213e-02 2.093483924325246e-02 2.093333449385128e-02 - 2.093183086645815e-02 2.093032836253444e-02 2.092882697593887e-02 2.092732670311165e-02 2.092582754108962e-02 - 2.092432948474122e-02 2.092283253800634e-02 2.092133670446908e-02 2.091984196956714e-02 2.091834833166288e-02 - 2.091685579922333e-02 2.091536436905392e-02 2.091387403364116e-02 2.091238478662568e-02 2.091089663391256e-02 - 2.090940957508328e-02 2.090792359986955e-02 2.090643871032298e-02 2.090495490818039e-02 2.090347218811059e-02 - 2.090199054718417e-02 2.090050998308706e-02 2.089903049243704e-02 2.089755207414248e-02 2.089607472810411e-02 - 2.089459845325996e-02 2.089312324594328e-02 2.089164910255710e-02 2.089017602427597e-02 2.088870401009232e-02 - 2.088723305634642e-02 2.088576315893389e-02 2.088429431601771e-02 2.088282652696964e-02 2.088135978615913e-02 - 2.087989409321534e-02 2.087842945395569e-02 2.087696586275656e-02 2.087550331287119e-02 2.087404180207852e-02 - 2.087258132736208e-02 2.087112188861259e-02 2.086966349090147e-02 2.086820612891688e-02 2.086674979608584e-02 - 2.086529449590395e-02 2.086384022331517e-02 2.086238697045790e-02 2.086093474039187e-02 2.085948353444753e-02 - 2.085803335091995e-02 2.085658418796912e-02 2.085513604081134e-02 2.085368890289571e-02 2.085224277300881e-02 - 2.085079765267601e-02 2.084935354393509e-02 2.084791044341373e-02 2.084646834711395e-02 2.084502725286095e-02 - 2.084358715744794e-02 2.084214805848912e-02 2.084070995598070e-02 2.083927284909677e-02 2.083783673573611e-02 - 2.083640161226469e-02 2.083496747523998e-02 2.083353432223483e-02 2.083210215303235e-02 2.083067096927498e-02 - 2.082924077044086e-02 2.082781154460241e-02 2.082638329211299e-02 2.082495602309350e-02 2.082352972509603e-02 - 2.082210439277076e-02 2.082068003454410e-02 2.081925664261260e-02 2.081783421113447e-02 2.081641274508624e-02 - 2.081499224082686e-02 2.081357269450268e-02 2.081215410878219e-02 2.081073647873721e-02 2.080931979776872e-02 - 2.080790406592918e-02 2.080648928500749e-02 2.080507545608266e-02 2.080366257645188e-02 2.080225063919177e-02 - 2.080083963814898e-02 2.079942957984240e-02 2.079802046255642e-02 2.079661227641324e-02 2.079520502452446e-02 - 2.079379870732677e-02 2.079239331877295e-02 2.079098886066600e-02 2.078958533155146e-02 2.078818272238310e-02 - 2.078678103594075e-02 2.078538027480030e-02 2.078398043169412e-02 2.078258150517176e-02 2.078118349582184e-02 - 2.077978640032045e-02 2.077839021518007e-02 2.077699493798996e-02 2.077560056860569e-02 2.077420710626992e-02 - 2.077281454908150e-02 2.077142289397691e-02 2.077003213665487e-02 2.076864227381708e-02 2.076725331084939e-02 - 2.076586524753700e-02 2.076447807479244e-02 2.076309178893910e-02 2.076170639200464e-02 2.076032188924749e-02 - 2.075893827075576e-02 2.075755552867013e-02 2.075617367037054e-02 2.075479269394757e-02 2.075341259415677e-02 - 2.075203337133167e-02 2.075065502119062e-02 2.074927754004291e-02 2.074790093527532e-02 2.074652520196147e-02 - 2.074515032814618e-02 2.074377631824518e-02 2.074240317461906e-02 2.074103089389617e-02 2.073965947285912e-02 - 2.073828890806665e-02 2.073691919635770e-02 2.073555033844026e-02 2.073418233381763e-02 2.073281517823886e-02 - 2.073144886803073e-02 2.073008340377233e-02 2.072871879147831e-02 2.072735502222402e-02 2.072599208688765e-02 - 2.072462999392301e-02 2.072326873860233e-02 2.072190831224300e-02 2.072054872378210e-02 2.071918997148765e-02 - 2.071783204556565e-02 2.071647494755481e-02 2.071511867766477e-02 2.071376323196711e-02 2.071240860565183e-02 - 2.071105479791370e-02 2.070970181180314e-02 2.070834964331268e-02 2.070699828917085e-02 2.070564775075080e-02 - 2.070429802727900e-02 2.070294911380581e-02 2.070160100113699e-02 2.070025369244763e-02 2.069890719322030e-02 - 2.069756149841416e-02 2.069621660331007e-02 2.069487250616514e-02 2.069352920972353e-02 2.069218670843115e-02 - 2.069084499406914e-02 2.068950407478504e-02 2.068816395008570e-02 2.068682460979861e-02 2.068548605525363e-02 - 2.068414828647597e-02 2.068281129879088e-02 2.068147509294542e-02 2.068013966727868e-02 2.067880501481977e-02 - 2.067747113766845e-02 2.067613803889334e-02 2.067480571527677e-02 2.067347415977921e-02 2.067214336769299e-02 - 2.067081334319025e-02 2.066948408776949e-02 2.066815559807265e-02 2.066682786498898e-02 2.066550088830383e-02 - 2.066417467341183e-02 2.066284921698086e-02 2.066152451475288e-02 2.066020056372571e-02 2.065887736182303e-02 - 2.065755490839281e-02 2.065623320354572e-02 2.065491224367795e-02 2.065359202675738e-02 2.065227255436574e-02 - 2.065095382314874e-02 2.064963582941213e-02 2.064831857270797e-02 2.064700204957123e-02 2.064568625651786e-02 - 2.064437119414936e-02 2.064305686324694e-02 2.064174326345409e-02 2.064043039179931e-02 2.063911824280925e-02 - 2.063780681176866e-02 2.063649610237503e-02 2.063518611610314e-02 2.063387684909248e-02 2.063256829217405e-02 - 2.063126044539576e-02 2.062995331851188e-02 2.062864690334512e-02 2.062734119190086e-02 2.062603618600375e-02 - 2.062473188642144e-02 2.062342829221786e-02 2.062212540064643e-02 2.062082320714733e-02 2.061952170915304e-02 - 2.061822091004314e-02 2.061692080716460e-02 2.061562139605911e-02 2.061432267954307e-02 2.061302465323251e-02 - 2.061172730955065e-02 2.061043065371613e-02 2.060913468523504e-02 2.060783939685846e-02 2.060654478913799e-02 - 2.060525086119714e-02 2.060395760866959e-02 2.060266503271371e-02 2.060137313244415e-02 2.060008190215519e-02 - 2.059879134465455e-02 2.059750146004468e-02 2.059621223782829e-02 2.059492368052522e-02 2.059363579225837e-02 - 2.059234856405708e-02 2.059106199328788e-02 2.058977608130871e-02 2.058849082556723e-02 2.058720622498806e-02 - 2.058592227959311e-02 2.058463898696043e-02 2.058335634281647e-02 2.058207434376584e-02 2.058079299573017e-02 - 2.057951229614279e-02 2.057823223269817e-02 2.057695281356401e-02 2.057567404187197e-02 2.057439590387300e-02 - 2.057311839681732e-02 2.057184152455586e-02 2.057056529173392e-02 2.056928969078429e-02 2.056801471376779e-02 - 2.056674036634529e-02 2.056546664830153e-02 2.056419355486686e-02 2.056292108306100e-02 2.056164923170236e-02 - 2.056037800067255e-02 2.055910738924650e-02 2.055783739340399e-02 2.055656800859636e-02 2.055529924146672e-02 - 2.055403109005562e-02 2.055276354110791e-02 2.055149659755915e-02 2.055023026272679e-02 2.054896453244645e-02 - 2.054769940766287e-02 2.054643488681757e-02 2.054517096062926e-02 2.054390763218316e-02 2.054264490512525e-02 - 2.054138276915942e-02 2.054012122328143e-02 2.053886027085424e-02 2.053759990682471e-02 2.053634012878631e-02 - 2.053508093799464e-02 2.053382233647706e-02 2.053256431985532e-02 2.053130687980379e-02 2.053005001911220e-02 - 2.052879373804411e-02 2.052753803104820e-02 2.052628289842169e-02 2.052502834052905e-02 2.052377435424499e-02 - 2.052252093383405e-02 2.052126807833591e-02 2.052001579579881e-02 2.051876408076618e-02 2.051751292558091e-02 - 2.051626233431153e-02 2.051501230108543e-02 2.051376281904528e-02 2.051251389905356e-02 2.051126553806812e-02 - 2.051001772450580e-02 2.050877046477720e-02 2.050752375748313e-02 2.050627759308629e-02 2.050503197764233e-02 - 2.050378691120845e-02 2.050254238346269e-02 2.050129839647772e-02 2.050005495152270e-02 2.049881204279591e-02 - 2.049756967049427e-02 2.049632783497685e-02 2.049508653204386e-02 2.049384576061373e-02 2.049260552085964e-02 - 2.049136581124810e-02 2.049012662828215e-02 2.048888796855573e-02 2.048764983217528e-02 2.048641222055239e-02 - 2.048517513365279e-02 2.048393856449956e-02 2.048270250702790e-02 2.048146696002243e-02 2.048023193267689e-02 - 2.047899742444990e-02 2.047776342204647e-02 2.047652992557144e-02 2.047529693666283e-02 2.047406445284291e-02 - 2.047283247820367e-02 2.047160101124722e-02 2.047037003705319e-02 2.046913955996649e-02 2.046790958805229e-02 - 2.046668011290463e-02 2.046545112747173e-02 2.046422263048016e-02 2.046299462941648e-02 2.046176712182623e-02 - 2.046054009863872e-02 2.045931356011635e-02 2.045808750875261e-02 2.045686194483555e-02 2.045563685869128e-02 - 2.045441224888558e-02 2.045318812405373e-02 2.045196447539730e-02 2.045074129851060e-02 2.044951860203706e-02 - 2.044829637561388e-02 2.044707461146781e-02 2.044585332076453e-02 2.044463250090934e-02 2.044341214478788e-02 - 2.044219225389736e-02 2.044097282684260e-02 2.043975385980242e-02 2.043853534979080e-02 2.043731729516990e-02 - 2.043609969584751e-02 2.043488255365452e-02 2.043366586840525e-02 2.043244963622695e-02 2.043123384788510e-02 - 2.043001850356880e-02 2.042880361352058e-02 2.042758917125052e-02 2.042637516923373e-02 2.042516160738241e-02 - 2.042394848596822e-02 2.042273580364956e-02 2.042152355668345e-02 2.042031174421715e-02 2.041910036711696e-02 - 2.041788942589821e-02 2.041667891618270e-02 2.041546883283581e-02 2.041425917723074e-02 2.041304994671302e-02 - 2.041184113736942e-02 2.041063275507356e-02 2.040942479864618e-02 2.040821725911453e-02 2.040701013329647e-02 - 2.040580342336421e-02 2.040459713364973e-02 2.040339125626194e-02 2.040218578748979e-02 2.040098073437600e-02 - 2.039977609190064e-02 2.039857185194057e-02 2.039736801200263e-02 2.039616457948628e-02 2.039496155847034e-02 - 2.039375893548800e-02 2.039255670811317e-02 2.039135487906758e-02 2.039015344139171e-02 2.038895239754324e-02 - 2.038775175394349e-02 2.038655150008423e-02 2.038535163468296e-02 2.038415216492024e-02 2.038295307932101e-02 - 2.038175437156158e-02 2.038055604740632e-02 2.037935811014152e-02 2.037816055719221e-02 2.037696338008003e-02 - 2.037576657774965e-02 2.037457015197002e-02 2.037337410306159e-02 2.037217842811476e-02 2.037098312337542e-02 - 2.036978818702816e-02 2.036859361901312e-02 2.036739941883561e-02 2.036620558232109e-02 2.036501210897116e-02 - 2.036381899981477e-02 2.036262624936801e-02 2.036143385733716e-02 2.036024182706139e-02 2.035905014947786e-02 - 2.035785882153747e-02 2.035666784977269e-02 2.035547723079831e-02 2.035428696142468e-02 2.035309704319765e-02 - 2.035190747134853e-02 2.035071824110532e-02 2.034952935293085e-02 2.034834080749865e-02 2.034715260430401e-02 - 2.034596474052595e-02 2.034477721202228e-02 2.034359001578161e-02 2.034240315367684e-02 2.034121662664043e-02 - 2.034003043357028e-02 2.033884457132868e-02 2.033765903741480e-02 2.033647382949949e-02 2.033528894162872e-02 - 2.033410437471255e-02 2.033292013620119e-02 2.033173621775026e-02 2.033055261459435e-02 2.032936933387398e-02 - 2.032818637173341e-02 2.032700371995237e-02 2.032582137330103e-02 2.032463934032926e-02 2.032345762721536e-02 - 2.032227621977112e-02 2.032109511380310e-02 2.031991431266943e-02 2.031873381713771e-02 2.031755362367381e-02 - 2.031637372822898e-02 2.031519413522404e-02 2.031401484060572e-02 2.031283583475656e-02 2.031165712768451e-02 - 2.031047872082618e-02 2.030930060067025e-02 2.030812276414845e-02 2.030694521582938e-02 2.030576796297434e-02 - 2.030459099391277e-02 2.030341430130414e-02 2.030223789822972e-02 2.030106177803277e-02 2.029988592949474e-02 - 2.029871035725545e-02 2.029753506661443e-02 2.029636005659757e-02 2.029518531267896e-02 2.029401083596470e-02 - 2.029283663654064e-02 2.029166270589052e-02 2.029048903923464e-02 2.028931563858370e-02 2.028814250195392e-02 - 2.028696962711050e-02 2.028579701358946e-02 2.028462466440920e-02 2.028345257575578e-02 2.028228073462766e-02 - 2.028110914546667e-02 2.027993781542017e-02 2.027876674182124e-02 2.027759591671596e-02 2.027642533515473e-02 - 2.027525500323221e-02 2.027408491983729e-02 2.027291508043819e-02 2.027174548650143e-02 2.027057613494678e-02 - 2.026940701983228e-02 2.026823814087089e-02 2.026706949898955e-02 2.026590109425394e-02 2.026473292320746e-02 - 2.026356498366547e-02 2.026239727592488e-02 2.026122979922282e-02 2.026006255023894e-02 2.025889552388743e-02 - 2.025772872449768e-02 2.025656215399196e-02 2.025539580342713e-02 2.025422967119250e-02 2.025306375830951e-02 - 2.025189806183918e-02 2.025073258129647e-02 2.024956731656576e-02 2.024840226339874e-02 2.024723742127980e-02 - 2.024607279125879e-02 2.024490836776212e-02 2.024374415071052e-02 2.024258014353189e-02 2.024141633571028e-02 - 2.024025272656142e-02 2.023908932762591e-02 2.023792612793740e-02 2.023676312010299e-02 2.023560031179207e-02 - 2.023443769779265e-02 2.023327527310789e-02 2.023211304323675e-02 2.023095100708355e-02 2.022978916007167e-02 - 2.022862749919407e-02 2.022746602379288e-02 2.022630473371739e-02 2.022514362648272e-02 2.022398270121405e-02 - 2.022282195791762e-02 2.022166139402294e-02 2.022050100551405e-02 2.021934078921764e-02 2.021818074920451e-02 - 2.021702088593813e-02 2.021586119314628e-02 2.021470166428228e-02 2.021354230080554e-02 2.021238311308448e-02 - 2.021122409287018e-02 2.021006523025651e-02 2.020890652716039e-02 2.020774798484683e-02 2.020658960393083e-02 - 2.020543138529554e-02 2.020427332378045e-02 2.020311541298552e-02 2.020195765397637e-02 2.020080004744672e-02 - 2.019964259236717e-02 2.019848528642001e-02 2.019732812869024e-02 2.019617111926010e-02 2.019501425544548e-02 - 2.019385753379127e-02 2.019270095135025e-02 2.019154450793482e-02 2.019038820298517e-02 2.018923203417478e-02 - 2.018807600019563e-02 2.018692010151906e-02 2.018576433995726e-02 2.018460870891364e-02 2.018345320296787e-02 - 2.018229782843392e-02 2.018114258172615e-02 2.017998745649097e-02 2.017883245877245e-02 2.017767758620927e-02 - 2.017652283054322e-02 2.017536819223788e-02 2.017421367319040e-02 2.017305927292809e-02 2.017190498313902e-02 - 2.017075080461503e-02 2.016959674752286e-02 2.016844280049332e-02 2.016728895684716e-02 2.016613522539111e-02 - 2.016498159847723e-02 2.016382807033869e-02 2.016267465040216e-02 2.016152133310211e-02 2.016036811076429e-02 - 2.015921498985646e-02 2.015806197025070e-02 2.015690904702832e-02 2.015575621731957e-02 2.015460347791708e-02 - 2.015345082711757e-02 2.015229826996444e-02 2.015114580452791e-02 2.014999342256183e-02 2.014884112402139e-02 - 2.014768891079059e-02 2.014653678283008e-02 2.014538473229735e-02 2.014423275838842e-02 2.014308087159530e-02 - 2.014192906336537e-02 2.014077732405132e-02 2.013962565684693e-02 2.013847406112768e-02 2.013732253607323e-02 - 2.013617108558620e-02 2.013501970367529e-02 2.013386838304751e-02 2.013271713092954e-02 2.013156594450895e-02 - 2.013041481517404e-02 2.012926374836556e-02 2.012811274375330e-02 2.012696179396415e-02 2.012581089842930e-02 - 2.012466005832842e-02 2.012350927388322e-02 2.012235854139777e-02 2.012120785897021e-02 2.012005722808521e-02 - 2.011890664240422e-02 2.011775609861771e-02 2.011660560342765e-02 2.011545514995805e-02 2.011430473248947e-02 - 2.011315436328775e-02 2.011200403690588e-02 2.011085374071231e-02 2.010970347811273e-02 2.010855325123000e-02 - 2.010740305829795e-02 2.010625289543029e-02 2.010510276184403e-02 2.010395265874816e-02 2.010280258124321e-02 - 2.010165252783862e-02 2.010050250168409e-02 2.009935249835288e-02 2.009820251528310e-02 2.009705255512517e-02 - 2.009590261098061e-02 2.009475267797075e-02 2.009360276160796e-02 2.009245286068316e-02 2.009130297235736e-02 - 2.009015309860190e-02 2.008900323371492e-02 2.008785337125678e-02 2.008670351711407e-02 2.008555367122358e-02 - 2.008440382812401e-02 2.008325398588614e-02 2.008210414433437e-02 2.008095430334925e-02 2.007980445913736e-02 - 2.007865461009197e-02 2.007750475755383e-02 2.007635489836262e-02 2.007520502856765e-02 2.007405514609401e-02 - 2.007290525369839e-02 2.007175535352643e-02 2.007060544261636e-02 2.006945551378952e-02 2.006830556246986e-02 - 2.006715559358176e-02 2.006600560685722e-02 2.006485559907452e-02 2.006370557035152e-02 2.006255552017783e-02 - 2.006140544519211e-02 2.006025533608720e-02 2.005910519424486e-02 2.005795502866486e-02 2.005680483150780e-02 - 2.005565460068358e-02 2.005450434307724e-02 2.005335404752871e-02 2.005220370751987e-02 2.005105333078331e-02 - 2.004990291380246e-02 2.004875245256121e-02 2.004760195075808e-02 2.004645140541610e-02 2.004530081249103e-02 - 2.004415017386308e-02 2.004299948719255e-02 2.004184874893760e-02 2.004069796075558e-02 2.003954711861807e-02 - 2.003839621652469e-02 2.003724525928808e-02 2.003609424691447e-02 2.003494317431652e-02 2.003379204407136e-02 - 2.003264085311753e-02 2.003148959193977e-02 2.003033826577724e-02 2.002918687817827e-02 2.002803542325049e-02 - 2.002688389828578e-02 2.002573230084169e-02 2.002458062668545e-02 2.002342887779152e-02 2.002227705716231e-02 - 2.002112516254241e-02 2.001997318998642e-02 2.001882113644655e-02 2.001766900292078e-02 2.001651678857442e-02 - 2.001536448981540e-02 2.001421210083374e-02 2.001305962366636e-02 2.001190706486020e-02 2.001075441600587e-02 - 2.000960167234195e-02 2.000844883687991e-02 2.000729590520412e-02 2.000614287591466e-02 2.000498975435740e-02 - 2.000383653574291e-02 2.000268321490327e-02 2.000152979351511e-02 2.000037626872929e-02 1.999922263743778e-02 - 1.999806890154111e-02 1.999691505794393e-02 1.999576110265488e-02 1.999460703886217e-02 1.999345286480270e-02 - 1.999229857569377e-02 1.999114417297134e-02 1.998998965543275e-02 1.998883501902821e-02 1.998768026399775e-02 - 1.998652538946059e-02 1.998537039260291e-02 1.998421527483334e-02 1.998306003351848e-02 1.998190465988335e-02 - 1.998074915750420e-02 1.997959352937345e-02 1.997843776879367e-02 1.997728187765045e-02 1.997612585705249e-02 - 1.997496969649909e-02 1.997381339760593e-02 1.997265696528752e-02 1.997150039002939e-02 1.997034367059401e-02 - 1.996918681208352e-02 1.996802981226081e-02 1.996687266788810e-02 1.996571537594770e-02 1.996455793197006e-02 - 1.996340033608642e-02 1.996224259309599e-02 1.996108470119043e-02 1.995992665416334e-02 1.995876844505867e-02 - 1.995761008193637e-02 1.995645156786617e-02 1.995529288784624e-02 1.995413404457776e-02 1.995297504246996e-02 - 1.995181586885687e-02 1.995065652904149e-02 1.994949703248385e-02 1.994833736513130e-02 1.994717752162546e-02 - 1.994601750553184e-02 1.994485731663886e-02 1.994369695406686e-02 1.994253641736701e-02 1.994137570693218e-02 - 1.994021481716852e-02 1.993905373876526e-02 1.993789248152490e-02 1.993673104732284e-02 1.993556942048493e-02 - 1.993440760773439e-02 1.993324561433191e-02 1.993208342679873e-02 1.993092104568069e-02 1.992975847582151e-02 - 1.992859571315939e-02 1.992743275300710e-02 1.992626959353599e-02 1.992510623927749e-02 1.992394268911061e-02 - 1.992277893654564e-02 1.992161497535049e-02 1.992045080942924e-02 1.991928644769617e-02 1.991812187931771e-02 - 1.991695709651699e-02 1.991579210148713e-02 1.991462689658082e-02 1.991346148075462e-02 1.991229584907280e-02 - 1.991113000189043e-02 1.990996393932216e-02 1.990879765723607e-02 1.990763115454515e-02 1.990646443148474e-02 - 1.990529748687400e-02 1.990413031580006e-02 1.990296291532720e-02 1.990179529310021e-02 1.990062744303953e-02 - 1.989945935329500e-02 1.989829103342642e-02 1.989712248515872e-02 1.989595370004318e-02 1.989478467737964e-02 - 1.989361541884726e-02 1.989244592499573e-02 1.989127618925862e-02 1.989010620674421e-02 1.988893597834538e-02 - 1.988776550466197e-02 1.988659478703524e-02 1.988542382727661e-02 1.988425261506333e-02 1.988308114268849e-02 - 1.988190942098788e-02 1.988073745006194e-02 1.987956522359536e-02 1.987839274079954e-02 1.987722000000555e-02 - 1.987604699732070e-02 1.987487372670402e-02 1.987370019241589e-02 1.987252640362364e-02 1.987135234678179e-02 - 1.987017801708705e-02 1.986900342417090e-02 1.986782856130232e-02 1.986665342124566e-02 1.986547800516037e-02 - 1.986430231940191e-02 1.986312636323797e-02 1.986195012209680e-02 1.986077359858922e-02 1.985959679883774e-02 - 1.985841971608161e-02 1.985724235007767e-02 1.985606470192896e-02 1.985488676268764e-02 1.985370853173279e-02 - 1.985253001389235e-02 1.985135120589531e-02 1.985017210671596e-02 1.984899271721913e-02 1.984781303008921e-02 - 1.984663304141680e-02 1.984545275323681e-02 1.984427216416261e-02 1.984309127447186e-02 1.984191008724042e-02 - 1.984072859600846e-02 1.983954679442092e-02 1.983836468369445e-02 1.983718226650526e-02 1.983599954091759e-02 - 1.983481649574990e-02 1.983363313683907e-02 1.983244947316962e-02 1.983126549121019e-02 1.983008118452795e-02 - 1.982889655650101e-02 1.982771161407836e-02 1.982652635127155e-02 1.982534075477381e-02 1.982415483542671e-02 - 1.982296859699974e-02 1.982178202865004e-02 1.982059512679342e-02 1.981940789099672e-02 1.981822032140366e-02 - 1.981703241807743e-02 1.981584417989424e-02 1.981465560415464e-02 1.981346669171603e-02 1.981227744136961e-02 - 1.981108784415540e-02 1.980989790130036e-02 1.980870761757638e-02 1.980751698807925e-02 1.980632600934410e-02 - 1.980513468056937e-02 1.980394300171975e-02 1.980275097143216e-02 1.980155858653555e-02 1.980036584235624e-02 - 1.979917273943820e-02 1.979797928262491e-02 1.979678546489206e-02 1.979559128379798e-02 1.979439674657348e-02 - 1.979320184217468e-02 1.979200656369760e-02 1.979081092352834e-02 1.978961491694981e-02 1.978841853542797e-02 - 1.978722178317891e-02 1.978602465925507e-02 1.978482715855289e-02 1.978362927697639e-02 1.978243101628911e-02 - 1.978123238058121e-02 1.978003336668686e-02 1.977883396860304e-02 1.977763418131442e-02 1.977643400902304e-02 - 1.977523345232920e-02 1.977403250607500e-02 1.977283117205557e-02 1.977162944865208e-02 1.977042732702634e-02 - 1.976922480613855e-02 1.976802188997964e-02 1.976681858355301e-02 1.976561487769950e-02 1.976441076369096e-02 - 1.976320624890566e-02 1.976200133147697e-02 1.976079600616600e-02 1.975959027757971e-02 1.975838414138116e-02 - 1.975717758909272e-02 1.975597062600439e-02 1.975476325369590e-02 1.975355546738499e-02 1.975234726242962e-02 - 1.975113863825908e-02 1.974992959762522e-02 1.974872013640206e-02 1.974751025163228e-02 1.974629994489470e-02 - 1.974508921425132e-02 1.974387805573186e-02 1.974266646519683e-02 1.974145444319864e-02 1.974024199150465e-02 - 1.973902910920840e-02 1.973781579519036e-02 1.973660204598839e-02 1.973538785240977e-02 1.973417321684443e-02 - 1.973295814730416e-02 1.973174263781577e-02 1.973052668253849e-02 1.972931027913797e-02 1.972809342747564e-02 - 1.972687612827085e-02 1.972565838187941e-02 1.972444018482310e-02 1.972322153363352e-02 1.972200242687443e-02 - 1.972078286440720e-02 1.971956284541047e-02 1.971834236691286e-02 1.971712142485657e-02 1.971590001741145e-02 - 1.971467814826898e-02 1.971345581852119e-02 1.971223302479186e-02 1.971100975804211e-02 1.970978601823674e-02 - 1.970856181065497e-02 1.970733713228995e-02 1.970611197806177e-02 1.970488634450282e-02 1.970366023582840e-02 - 1.970243364879734e-02 1.970120657299705e-02 1.969997901837739e-02 1.969875098677333e-02 1.969752246217473e-02 - 1.969629345274012e-02 1.969506396226801e-02 1.969383397141272e-02 1.969260348756574e-02 1.969137252109090e-02 - 1.969014105730648e-02 1.968890909233832e-02 1.968767662961491e-02 1.968644366805134e-02 1.968521020635475e-02 - 1.968397624286150e-02 1.968274177331172e-02 1.968150679588088e-02 1.968027131148579e-02 1.967903532058098e-02 - 1.967779882218197e-02 1.967656181292412e-02 1.967532428489620e-02 1.967408623811289e-02 1.967284768294825e-02 - 1.967160860971293e-02 1.967036900987211e-02 1.966912889102269e-02 1.966788825153749e-02 1.966664708600774e-02 - 1.966540539310703e-02 1.966416317292449e-02 1.966292042476060e-02 1.966167714455673e-02 1.966043333167102e-02 - 1.965918898702837e-02 1.965794410650064e-02 1.965669868705162e-02 1.965545272765306e-02 1.965420622710374e-02 - 1.965295918609461e-02 1.965171160585919e-02 1.965046347855766e-02 1.964921480087875e-02 1.964796557872257e-02 - 1.964671580769246e-02 1.964546548231519e-02 1.964421460325605e-02 1.964296317129598e-02 1.964171118580111e-02 - 1.964045864365522e-02 1.963920554157133e-02 1.963795187629582e-02 1.963669764477085e-02 1.963544284945441e-02 - 1.963418749362842e-02 1.963293156932153e-02 1.963167507295046e-02 1.963041800662418e-02 1.962916036936736e-02 - 1.962790216073956e-02 1.962664338014056e-02 1.962538401760687e-02 1.962412407160046e-02 1.962286355381917e-02 - 1.962160245501161e-02 1.962034076606272e-02 1.961907849332115e-02 1.961781563715828e-02 1.961655219371613e-02 - 1.961528815879130e-02 1.961402353224150e-02 1.961275831461461e-02 1.961149250160691e-02 1.961022609250104e-02 - 1.960895908768241e-02 1.960769148013132e-02 1.960642326897369e-02 1.960515445887448e-02 1.960388504699325e-02 - 1.960261502901453e-02 1.960134440209794e-02 1.960007316755673e-02 1.959880132269796e-02 1.959752885956289e-02 - 1.959625578572781e-02 1.959498210471557e-02 1.959370780282661e-02 1.959243287776576e-02 1.959115733236078e-02 - 1.958988116575855e-02 1.958860437570835e-02 1.958732696070351e-02 1.958604892230215e-02 1.958477025538254e-02 - 1.958349095293616e-02 1.958221102005211e-02 1.958093045820349e-02 1.957964926225915e-02 1.957836742427244e-02 - 1.957708494595253e-02 1.957580183693370e-02 1.957451808573694e-02 1.957323368588814e-02 1.957194864588927e-02 - 1.957066295908808e-02 1.956937661864716e-02 1.956808962863577e-02 1.956680198857452e-02 1.956551369740821e-02 - 1.956422475810978e-02 1.956293516289206e-02 1.956164490198652e-02 1.956035397935251e-02 1.955906239928264e-02 - 1.955777016187055e-02 1.955647725858155e-02 1.955518368630142e-02 1.955388944730695e-02 1.955259453790914e-02 - 1.955129895574477e-02 1.955000270138056e-02 1.954870577278503e-02 1.954740816848287e-02 1.954610988870274e-02 - 1.954481093111385e-02 1.954351129226784e-02 1.954221096901902e-02 1.954090996078360e-02 1.953960826724446e-02 - 1.953830588603245e-02 1.953700281656794e-02 1.953569905855491e-02 1.953439460897686e-02 1.953308946443935e-02 - 1.953178362233442e-02 1.953047708245082e-02 1.952916984426731e-02 1.952786190592496e-02 1.952655326324738e-02 - 1.952524391408689e-02 1.952393385929222e-02 1.952262309949111e-02 1.952131163370209e-02 1.951999945844595e-02 - 1.951868656751035e-02 1.951737295829730e-02 1.951605863555755e-02 1.951474359789877e-02 1.951342784097203e-02 - 1.951211136184995e-02 1.951079415956861e-02 1.950947623396647e-02 1.950815758387342e-02 1.950683820574165e-02 - 1.950551809587482e-02 1.950419725560715e-02 1.950287568354725e-02 1.950155337574423e-02 1.950023033242808e-02 - 1.949890655251627e-02 1.949758203322258e-02 1.949625677745909e-02 1.949493078034667e-02 1.949360402739089e-02 - 1.949227653112452e-02 1.949094829757290e-02 1.948961930480046e-02 1.948828955781861e-02 1.948695906691206e-02 - 1.948562782150981e-02 1.948429581598615e-02 1.948296304982478e-02 1.948162952319633e-02 1.948029523591830e-02 - 1.947896018726217e-02 1.947762437581102e-02 1.947628779922486e-02 1.947495045397724e-02 1.947361233489661e-02 - 1.947227344348770e-02 1.947093378593678e-02 1.946959335022997e-02 1.946825212971076e-02 1.946691013283964e-02 - 1.946556736109183e-02 1.946422381089845e-02 1.946287947598024e-02 1.946153435147304e-02 1.946018843640089e-02 - 1.945884173551620e-02 1.945749424593349e-02 1.945614596164208e-02 1.945479688244431e-02 1.945344700980195e-02 - 1.945209634356683e-02 1.945074487666461e-02 1.944939260492236e-02 1.944803952905332e-02 1.944668565282712e-02 - 1.944533097303948e-02 1.944397548026850e-02 1.944261917903520e-02 1.944126207147254e-02 1.943990414971487e-02 - 1.943854540610747e-02 1.943718584222317e-02 1.943582547177293e-02 1.943446428245481e-02 1.943310226105812e-02 - 1.943173942068859e-02 1.943037575924362e-02 1.942901126749138e-02 1.942764594793762e-02 1.942627979717840e-02 - 1.942491280913776e-02 1.942354498868186e-02 1.942217633546996e-02 1.942080684436220e-02 1.941943651933332e-02 - 1.941806535493775e-02 1.941669333695301e-02 1.941532047644210e-02 1.941394677715704e-02 1.941257222315028e-02 - 1.941119681542690e-02 1.940982056035791e-02 1.940844345901757e-02 1.940706550055424e-02 1.940568667678698e-02 - 1.940430699663802e-02 1.940292645883611e-02 1.940154505765652e-02 1.940016279578962e-02 1.939877966977487e-02 - 1.939739567223053e-02 1.939601080219835e-02 1.939462506233509e-02 1.939323845462366e-02 1.939185096971125e-02 - 1.939046260516801e-02 1.938907336764642e-02 1.938768325184633e-02 1.938629225021856e-02 1.938490035911401e-02 - 1.938350758330235e-02 1.938211392651081e-02 1.938071938447496e-02 1.937932394922459e-02 1.937792761695239e-02 - 1.937653039473651e-02 1.937513227779157e-02 1.937373325789699e-02 1.937233333934693e-02 1.937093252080456e-02 - 1.936953079702195e-02 1.936812816928827e-02 1.936672463690015e-02 1.936532019607867e-02 1.936391484345597e-02 - 1.936250857586552e-02 1.936110139138094e-02 1.935969329410197e-02 1.935828428412852e-02 1.935687435366041e-02 - 1.935546349795341e-02 1.935405171682407e-02 1.935263901452006e-02 1.935122538845629e-02 1.934981083240821e-02 - 1.934839534117787e-02 1.934697891910190e-02 1.934556156924906e-02 1.934414327695751e-02 1.934272404361874e-02 - 1.934130387854031e-02 1.933988276959641e-02 1.933846071416343e-02 1.933703771882020e-02 1.933561377409585e-02 - 1.933418887831357e-02 1.933276303945045e-02 1.933133624375953e-02 1.932990848653697e-02 1.932847978247962e-02 - 1.932705012296452e-02 1.932561949662077e-02 1.932418790536504e-02 1.932275535526071e-02 1.932132184669807e-02 - 1.931988736608416e-02 1.931845191123332e-02 1.931701548648173e-02 1.931557809132799e-02 1.931413972218449e-02 - 1.931270037603072e-02 1.931126005688787e-02 1.930981875761609e-02 1.930837646527647e-02 1.930693319154590e-02 - 1.930548893938918e-02 1.930404369700001e-02 1.930259746628386e-02 1.930115024647330e-02 1.929970202824377e-02 - 1.929825281461415e-02 1.929680260792617e-02 1.929535140092010e-02 1.929389919235001e-02 1.929244598266550e-02 - 1.929099176842190e-02 1.928953654639375e-02 1.928808031414528e-02 1.928662307035359e-02 1.928516481711372e-02 - 1.928370555611205e-02 1.928224527966380e-02 1.928078398206115e-02 1.927932166173262e-02 1.927785831899656e-02 - 1.927639395364510e-02 1.927492856464996e-02 1.927346215243780e-02 1.927199471282116e-02 1.927052623652251e-02 - 1.926905672766994e-02 1.926758618873705e-02 1.926611461056382e-02 1.926464199150991e-02 1.926316833245443e-02 - 1.926169363057714e-02 1.926021788634381e-02 1.925874109903830e-02 1.925726325940621e-02 1.925578436860509e-02 - 1.925430443199749e-02 1.925282343948819e-02 1.925134138889128e-02 1.924985828498051e-02 1.924837411847957e-02 - 1.924688888599618e-02 1.924540259377309e-02 1.924391524090012e-02 1.924242682077230e-02 1.924093732460676e-02 - 1.923944675829762e-02 1.923795512510602e-02 1.923646241448938e-02 1.923496862521413e-02 1.923347375911634e-02 - 1.923197781292445e-02 1.923048078180134e-02 1.922898266296426e-02 1.922748346006174e-02 1.922598317069195e-02 - 1.922448178990142e-02 1.922297932164773e-02 1.922147575963824e-02 1.921997109174737e-02 1.921846532805457e-02 - 1.921695846861228e-02 1.921545049993734e-02 1.921394143207274e-02 1.921243126559395e-02 1.921091998083786e-02 - 1.920940758472120e-02 1.920789408374423e-02 1.920637946562360e-02 1.920486373146851e-02 1.920334688393281e-02 - 1.920182891329169e-02 1.920030981699324e-02 1.919878959725658e-02 1.919726825432456e-02 1.919574578635056e-02 - 1.919422218928470e-02 1.919269745661605e-02 1.919117158884151e-02 1.918964459045353e-02 1.918811645370936e-02 - 1.918658717454346e-02 1.918505675553962e-02 1.918352519296369e-02 1.918199248296462e-02 1.918045862469436e-02 - 1.917892361805418e-02 1.917738746182788e-02 1.917585015265352e-02 1.917431168820606e-02 1.917277206550804e-02 - 1.917123127946213e-02 1.916968933132487e-02 1.916814622316750e-02 1.916660194885779e-02 1.916505650873668e-02 - 1.916350990423480e-02 1.916196212155291e-02 1.916041316033273e-02 1.915886303062994e-02 1.915731172194125e-02 - 1.915575922930148e-02 1.915420555876758e-02 1.915265070860661e-02 1.915109467332810e-02 1.914953744666585e-02 - 1.914797902645569e-02 1.914641941412443e-02 1.914485861314037e-02 1.914329661713828e-02 1.914173341932142e-02 - 1.914016902223032e-02 1.913860342379879e-02 1.913703662029905e-02 1.913546861279183e-02 1.913389939805644e-02 - 1.913232897075573e-02 1.913075733118505e-02 1.912918447844714e-02 1.912761040908805e-02 1.912603511839811e-02 - 1.912445860715432e-02 1.912288088009771e-02 1.912130192853472e-02 1.911972174626816e-02 1.911814033569584e-02 - 1.911655769224527e-02 1.911497381452394e-02 1.911338870990516e-02 1.911180236957772e-02 1.911021478317005e-02 - 1.910862595492130e-02 1.910703588697045e-02 1.910544457683553e-02 1.910385201685182e-02 1.910225820527016e-02 - 1.910066314375077e-02 1.909906682830796e-02 1.909746925477876e-02 1.909587042200599e-02 1.909427033688354e-02 - 1.909266899402551e-02 1.909106637643193e-02 1.908946249114346e-02 1.908785734491775e-02 1.908625093213804e-02 - 1.908464324204344e-02 1.908303427175084e-02 1.908142403234494e-02 1.907981251534393e-02 1.907819971100440e-02 - 1.907658562789714e-02 1.907497026158614e-02 1.907335360333112e-02 1.907173565762024e-02 1.907011642370295e-02 - 1.906849589616872e-02 1.906687407274958e-02 1.906525095073851e-02 1.906362652703246e-02 1.906200080112851e-02 - 1.906037377260159e-02 1.905874543999789e-02 1.905711580005939e-02 1.905548484883143e-02 1.905385258297056e-02 - 1.905221900422594e-02 1.905058411108648e-02 1.904894789413228e-02 1.904731035325132e-02 1.904567149183364e-02 - 1.904403130952197e-02 1.904238980136186e-02 1.904074696113758e-02 1.903910278612417e-02 1.903745727544392e-02 - 1.903581042868199e-02 1.903416224385271e-02 1.903251272055347e-02 1.903086185871027e-02 1.902920965236104e-02 - 1.902755609551852e-02 1.902590118543579e-02 1.902424492713456e-02 1.902258731926820e-02 1.902092835050054e-02 - 1.901926802409253e-02 1.901760634215130e-02 1.901594329530476e-02 1.901427888303375e-02 1.901261310655987e-02 - 1.901094596056572e-02 1.900927744335199e-02 1.900760755425454e-02 1.900593628837979e-02 1.900426364429972e-02 - 1.900258962310978e-02 1.900091422355684e-02 1.899923743835855e-02 1.899755925950979e-02 1.899587969656637e-02 - 1.899419874741247e-02 1.899251639645128e-02 1.899083265299966e-02 1.898914752052511e-02 1.898746098477085e-02 - 1.898577304386013e-02 1.898408369969058e-02 1.898239295076986e-02 1.898070079269564e-02 1.897900722255288e-02 - 1.897731224261929e-02 1.897561584849886e-02 1.897391803334516e-02 1.897221879605241e-02 1.897051814026927e-02 - 1.896881606767167e-02 1.896711256470153e-02 1.896540762798833e-02 1.896370126437186e-02 1.896199347193909e-02 - 1.896028424413336e-02 1.895857357350164e-02 1.895686146124061e-02 1.895514791045918e-02 1.895343292131205e-02 - 1.895171648302300e-02 1.894999858923527e-02 1.894827924721451e-02 1.894655845419708e-02 1.894483620522033e-02 - 1.894311250187257e-02 1.894138733732357e-02 1.893966070463249e-02 1.893793261072514e-02 1.893620305335951e-02 - 1.893447202418282e-02 1.893273952309081e-02 1.893100555094376e-02 1.892927010627177e-02 1.892753318110494e-02 - 1.892579477108063e-02 1.892405487784487e-02 1.892231350329449e-02 1.892057064453369e-02 1.891882629307712e-02 - 1.891708044683251e-02 1.891533310610873e-02 1.891358427035544e-02 1.891183393696100e-02 1.891008210291091e-02 - 1.890832876617924e-02 1.890657392211156e-02 1.890481756749361e-02 1.890305970669826e-02 1.890130033664154e-02 - 1.889953944876527e-02 1.889777703845312e-02 1.889601310905792e-02 1.889424766560776e-02 1.889248069356991e-02 - 1.889071219005931e-02 1.888894216610460e-02 1.888717060771540e-02 1.888539750970531e-02 1.888362288621832e-02 - 1.888184672351093e-02 1.888006901097801e-02 1.887828976119468e-02 1.887650896887177e-02 1.887472662448569e-02 - 1.887294273026847e-02 1.887115728373587e-02 1.886937028132879e-02 1.886758172601296e-02 1.886579161241305e-02 - 1.886399993232671e-02 1.886220669095003e-02 1.886041188581822e-02 1.885861550746470e-02 1.885681755698847e-02 - 1.885501803485419e-02 1.885321693733238e-02 1.885141425906957e-02 1.884960999916156e-02 1.884780416185130e-02 - 1.884599674103886e-02 1.884418772927479e-02 1.884237712445391e-02 1.884056492700234e-02 1.883875113673901e-02 - 1.883693574995443e-02 1.883511876102816e-02 1.883330016667216e-02 1.883147997149076e-02 1.882965817385698e-02 - 1.882783476601560e-02 1.882600973926643e-02 1.882418309568715e-02 1.882235484340025e-02 1.882052497417560e-02 - 1.881869348031539e-02 1.881686035975185e-02 1.881502561164409e-02 1.881318923741505e-02 1.881135123913003e-02 - 1.880951160558249e-02 1.880767032900146e-02 1.880582741534564e-02 1.880398286136111e-02 1.880213666245483e-02 - 1.880028882149621e-02 1.879843933370182e-02 1.879658819228311e-02 1.879473539862031e-02 1.879288094991765e-02 - 1.879102484097325e-02 1.878916707209326e-02 1.878730764191372e-02 1.878544654683108e-02 1.878358378459472e-02 - 1.878171935183507e-02 1.877985324430765e-02 1.877798546179407e-02 1.877611600228067e-02 1.877424486050507e-02 - 1.877237203778229e-02 1.877049753324887e-02 1.876862133863330e-02 1.876674345293673e-02 1.876486387617420e-02 - 1.876298260257535e-02 1.876109963059111e-02 1.875921496034764e-02 1.875732858848502e-02 1.875544051216185e-02 - 1.875355072885378e-02 1.875165923449702e-02 1.874976602623304e-02 1.874787110336161e-02 1.874597446797304e-02 - 1.874407611425766e-02 1.874217603022874e-02 1.874027422146802e-02 1.873837068906284e-02 1.873646542198345e-02 - 1.873455842189881e-02 1.873264969164939e-02 1.873073922656172e-02 1.872882701964194e-02 1.872691306648714e-02 - 1.872499736923527e-02 1.872307992509612e-02 1.872116072949887e-02 1.871923978227258e-02 1.871731708186487e-02 - 1.871539262387551e-02 1.871346640021372e-02 1.871153841041527e-02 1.870960865979342e-02 1.870767714578883e-02 - 1.870574386089293e-02 1.870380879685916e-02 1.870187195798613e-02 1.869993334446320e-02 1.869799294696750e-02 - 1.869605076691687e-02 1.869410680376838e-02 1.869216104730458e-02 1.869021349836844e-02 1.868826416022470e-02 - 1.868631302853863e-02 1.868436009644664e-02 1.868240535897862e-02 1.868044881818047e-02 1.867849047172725e-02 - 1.867653031474529e-02 1.867456834731333e-02 1.867260456736053e-02 1.867063897034608e-02 1.866867155351236e-02 - 1.866670231459311e-02 1.866473125095620e-02 1.866275835809391e-02 1.866078363356833e-02 1.865880707775009e-02 - 1.865682868564128e-02 1.865484845476688e-02 1.865286638889887e-02 1.865088247751579e-02 1.864889671303901e-02 - 1.864690910747520e-02 1.864491965354244e-02 1.864292833855512e-02 1.864093516946379e-02 1.863894014384585e-02 - 1.863694325319922e-02 1.863494449952898e-02 1.863294388193027e-02 1.863094139526787e-02 1.862893703607748e-02 - 1.862693080034535e-02 1.862492268387857e-02 1.862291268732941e-02 1.862090081042848e-02 1.861888704957227e-02 - 1.861687140151818e-02 1.861485386231105e-02 1.861283442704270e-02 1.861081309610335e-02 1.860878986806025e-02 - 1.860676473338590e-02 1.860473769529663e-02 1.860270875778476e-02 1.860067790615180e-02 1.859864513789995e-02 - 1.859661045850656e-02 1.859457386260990e-02 1.859253534675110e-02 1.859049490946049e-02 1.858845254228221e-02 - 1.858640824383296e-02 1.858436201966219e-02 1.858231386031445e-02 1.858026376148910e-02 1.857821173011040e-02 - 1.857615775674864e-02 1.857410183289329e-02 1.857204396224591e-02 1.856998414158087e-02 1.856792236630606e-02 - 1.856585863699762e-02 1.856379295088432e-02 1.856172530348682e-02 1.855965569223371e-02 1.855758411493529e-02 - 1.855551056872843e-02 1.855343504862798e-02 1.855135755357239e-02 1.854927808391809e-02 1.854719662999937e-02 - 1.854511318947389e-02 1.854302776884543e-02 1.854094036342127e-02 1.853885096469986e-02 1.853675956540365e-02 - 1.853466616668727e-02 1.853257077183708e-02 1.853047338096206e-02 1.852837398473379e-02 1.852627257507170e-02 - 1.852416915520061e-02 1.852206372211816e-02 1.851995627104085e-02 1.851784680396669e-02 1.851573531468755e-02 - 1.851362179508880e-02 1.851150625260910e-02 1.850938868433302e-02 1.850726907790290e-02 1.850514743267316e-02 - 1.850302375022463e-02 1.850089802974987e-02 1.849877026321467e-02 1.849664044568886e-02 1.849450857919205e-02 - 1.849237466328984e-02 1.849023869225825e-02 1.848810065567833e-02 1.848596056072587e-02 1.848381841125062e-02 - 1.848167418759208e-02 1.847952788817062e-02 1.847737952020788e-02 1.847522908039946e-02 1.847307656165976e-02 - 1.847092195736722e-02 1.846876526733367e-02 1.846660649126623e-02 1.846444562782898e-02 1.846228267641075e-02 - 1.846011763022634e-02 1.845795047822359e-02 1.845578122357826e-02 1.845360986824314e-02 1.845143640646702e-02 - 1.844926083412144e-02 1.844708314829677e-02 1.844490334652741e-02 1.844272142526039e-02 1.844053738232335e-02 - 1.843835121884711e-02 1.843616292877729e-02 1.843397250473794e-02 1.843177994759022e-02 1.842958525561723e-02 - 1.842738842512387e-02 1.842518945510765e-02 1.842298833954339e-02 1.842078507029563e-02 1.841857965103055e-02 - 1.841637208298309e-02 1.841416236088061e-02 1.841195047731196e-02 1.840973642948215e-02 1.840752022011446e-02 - 1.840530184216091e-02 1.840308128892246e-02 1.840085856103635e-02 1.839863365911139e-02 1.839640658087383e-02 - 1.839417731924000e-02 1.839194587083986e-02 1.838971223370895e-02 1.838747640300020e-02 1.838523837692452e-02 - 1.838299815548432e-02 1.838075573582631e-02 1.837851111106092e-02 1.837626427462707e-02 1.837401523350234e-02 - 1.837176398539980e-02 1.836951051641877e-02 1.836725482529124e-02 1.836499691387402e-02 1.836273678151691e-02 - 1.836047442118306e-02 1.835820982858270e-02 1.835594300692513e-02 1.835367394977665e-02 1.835140264983480e-02 - 1.834912910825698e-02 1.834685332362546e-02 1.834457529066184e-02 1.834229500068380e-02 1.834001245612868e-02 - 1.833772766191195e-02 1.833544060380268e-02 1.833315127769170e-02 1.833085968975407e-02 1.832856583633842e-02 - 1.832626971106521e-02 1.832397130817964e-02 1.832167062581619e-02 1.831936766045366e-02 1.831706240632338e-02 - 1.831475486820015e-02 1.831244504576387e-02 1.831013292472488e-02 1.830781850356614e-02 1.830550178468002e-02 - 1.830318276421879e-02 1.830086143845657e-02 1.829853780375753e-02 1.829621185558813e-02 1.829388359300937e-02 - 1.829155301569956e-02 1.828922011662799e-02 1.828688489153528e-02 1.828454733892483e-02 1.828220745351499e-02 - 1.827986523367206e-02 1.827752068069898e-02 1.827517378500067e-02 1.827282454323407e-02 1.827047296291425e-02 - 1.826811903643735e-02 1.826576275326505e-02 1.826340410954280e-02 1.826104310998728e-02 1.825867975496676e-02 - 1.825631402943589e-02 1.825394593365713e-02 1.825157547349511e-02 1.824920264235266e-02 1.824682743095013e-02 - 1.824444983334214e-02 1.824206985531418e-02 1.823968749396920e-02 1.823730273947125e-02 1.823491559405069e-02 - 1.823252605635143e-02 1.823013411851380e-02 1.822773977727079e-02 1.822534302885856e-02 1.822294386817581e-02 - 1.822054229933361e-02 1.821813832218229e-02 1.821573192447362e-02 1.821332310276354e-02 1.821091185568656e-02 - 1.820849817689734e-02 1.820608206836350e-02 1.820366353310689e-02 1.820124256311412e-02 1.819881915016099e-02 - 1.819639328969794e-02 1.819396498477247e-02 1.819153423068764e-02 1.818910101812068e-02 1.818666535246774e-02 - 1.818422723286477e-02 1.818178664914423e-02 1.817934360000525e-02 1.817689808189780e-02 1.817445008627356e-02 - 1.817199961756547e-02 1.816954667558178e-02 1.816709124568389e-02 1.816463332917677e-02 1.816217292950077e-02 - 1.815971003769815e-02 1.815724465123547e-02 1.815477676809149e-02 1.815230637650250e-02 1.814983348051392e-02 - 1.814735808823705e-02 1.814488018072306e-02 1.814239975267995e-02 1.813991681262074e-02 1.813743135508509e-02 - 1.813494337086823e-02 1.813245285281114e-02 1.812995980445686e-02 1.812746422731492e-02 1.812496611573551e-02 - 1.812246546481565e-02 1.811996226848969e-02 1.811745651920204e-02 1.811494821957559e-02 1.811243737133842e-02 - 1.810992396481434e-02 1.810740799805441e-02 1.810488947142559e-02 1.810236837745802e-02 1.809984471224923e-02 - 1.809731847419077e-02 1.809478965788605e-02 1.809225826197647e-02 1.808972428730369e-02 1.808718772623545e-02 - 1.808464857219165e-02 1.808210682315950e-02 1.807956248210254e-02 1.807701554512131e-02 1.807446599893149e-02 - 1.807191384222250e-02 1.806935907649996e-02 1.806680169977935e-02 1.806424171112906e-02 1.806167910639137e-02 - 1.805911387430984e-02 1.805654601234490e-02 1.805397552118165e-02 1.805140239539148e-02 1.804882663464111e-02 - 1.804624823872755e-02 1.804366719439020e-02 1.804108350087335e-02 1.803849716547347e-02 1.803590817366155e-02 - 1.803331652090480e-02 1.803072221546651e-02 1.802812524400898e-02 1.802552559998909e-02 1.802292329257977e-02 - 1.802031831251088e-02 1.801771065083283e-02 1.801510031065072e-02 1.801248728509480e-02 1.800987156794499e-02 - 1.800725316456288e-02 1.800463207196059e-02 1.800200828229563e-02 1.799938179038418e-02 1.799675259135415e-02 - 1.799412068157979e-02 1.799148606152016e-02 1.798884872978088e-02 1.798620868169797e-02 1.798356590941466e-02 - 1.798092041139825e-02 1.797827219073602e-02 1.797562123473000e-02 1.797296753674024e-02 1.797031110360818e-02 - 1.796765193280976e-02 1.796499001786419e-02 1.796232535287627e-02 1.795965793501132e-02 1.795698776183851e-02 - 1.795431482887613e-02 1.795163913285315e-02 1.794896067070983e-02 1.794627943785036e-02 1.794359543174794e-02 - 1.794090865000600e-02 1.793821908548673e-02 1.793552673496832e-02 1.793283159877326e-02 1.793013367385930e-02 - 1.792743295577707e-02 1.792472944026945e-02 1.792202312682011e-02 1.791931400976357e-02 1.791660207728341e-02 - 1.791388733234035e-02 1.791116977642004e-02 1.790844939977351e-02 1.790572620127331e-02 1.790300018053203e-02 - 1.790027132960331e-02 1.789753964610457e-02 1.789480512776976e-02 1.789206776371137e-02 1.788932755546883e-02 - 1.788658450796398e-02 1.788383860557862e-02 1.788108984645815e-02 1.787833823870088e-02 1.787558376650758e-02 - 1.787282642238153e-02 1.787006621288861e-02 1.786730313584615e-02 1.786453718506033e-02 1.786176835331611e-02 - 1.785899663566110e-02 1.785622203220682e-02 1.785344454733639e-02 1.785066416506327e-02 1.784788087479271e-02 - 1.784509469481547e-02 1.784230561688990e-02 1.783951362363962e-02 1.783671871969004e-02 1.783392090351773e-02 - 1.783112016693977e-02 1.782831650359620e-02 1.782550991644932e-02 1.782270041052123e-02 1.781988796773664e-02 - 1.781707258188517e-02 1.781425426228424e-02 1.781143299909701e-02 1.780860878344276e-02 1.780578161636334e-02 - 1.780295150019453e-02 1.780011843142990e-02 1.779728239750767e-02 1.779444339320670e-02 1.779160141853593e-02 - 1.778875647528820e-02 1.778590855799184e-02 1.778305765851556e-02 1.778020377358821e-02 1.777734690358035e-02 - 1.777448704738365e-02 1.777162419310320e-02 1.776875833746895e-02 1.776588948369731e-02 1.776301762263940e-02 - 1.776014274927566e-02 1.775726486578331e-02 1.775438397030816e-02 1.775150005486545e-02 1.774861310790110e-02 - 1.774572313526677e-02 1.774283013776283e-02 1.773993409898065e-02 1.773703502220879e-02 1.773413291089222e-02 - 1.773122774923129e-02 1.772831953604024e-02 1.772540827370780e-02 1.772249394894422e-02 1.771957656009896e-02 - 1.771665611194296e-02 1.771373259698992e-02 1.771080600888477e-02 1.770787634473108e-02 1.770494360249459e-02 - 1.770200777818149e-02 1.769906886558849e-02 1.769612685929023e-02 1.769318175770428e-02 1.769023356261796e-02 - 1.768728226707501e-02 1.768432786370409e-02 1.768137035050212e-02 1.767840972761326e-02 1.767544598996190e-02 - 1.767247912224100e-02 1.766950912887429e-02 1.766653601772543e-02 1.766355977437013e-02 1.766058039164660e-02 - 1.765759786981226e-02 1.765461220736955e-02 1.765162339764906e-02 1.764863143247870e-02 1.764563631444012e-02 - 1.764263804044564e-02 1.763963660052613e-02 1.763663199590508e-02 1.763362422648862e-02 1.763061328532627e-02 - 1.762759916389677e-02 1.762458185742205e-02 1.762156136756127e-02 1.761853769290762e-02 1.761551082691653e-02 - 1.761248075761478e-02 1.760944748669641e-02 1.760641101894919e-02 1.760337134551661e-02 1.760032845807722e-02 - 1.759728235211478e-02 1.759423302856655e-02 1.759118048266074e-02 1.758812470690578e-02 1.758506570645847e-02 - 1.758200347417691e-02 1.757893799151254e-02 1.757586926700291e-02 1.757279730534286e-02 1.756972209521438e-02 - 1.756664362962799e-02 1.756356190543487e-02 1.756047692143249e-02 1.755738866974527e-02 1.755429714394244e-02 - 1.755120234663686e-02 1.754810427470094e-02 1.754500292288027e-02 1.754189829041229e-02 1.753879037098419e-02 - 1.753567915477636e-02 1.753256463576890e-02 1.752944681640228e-02 1.752632570156945e-02 1.752320127895599e-02 - 1.752007354011609e-02 1.751694248500407e-02 1.751380811099548e-02 1.751067041466748e-02 1.750752939229762e-02 - 1.750438503712632e-02 1.750123734468025e-02 1.749808631552286e-02 1.749493194526630e-02 1.749177422703599e-02 - 1.748861315463852e-02 1.748544872591071e-02 1.748228094036503e-02 1.747910979560325e-02 1.747593528635296e-02 - 1.747275740493088e-02 1.746957614261004e-02 1.746639150171011e-02 1.746320348827029e-02 1.746001208402579e-02 - 1.745681728232032e-02 1.745361909228664e-02 1.745041750587895e-02 1.744721251527593e-02 1.744400411995098e-02 - 1.744079231626219e-02 1.743757709612158e-02 1.743435844889677e-02 1.743113638300998e-02 1.742791090294012e-02 - 1.742468198827393e-02 1.742144963687445e-02 1.741821385208018e-02 1.741497462017237e-02 1.741173194001650e-02 - 1.740848581625378e-02 1.740523623716524e-02 1.740198319673262e-02 1.739872669626729e-02 1.739546673433575e-02 - 1.739220330474240e-02 1.738893639777237e-02 1.738566600801745e-02 1.738239213410604e-02 1.737911477739739e-02 - 1.737583393441487e-02 1.737254959973500e-02 1.736926176792087e-02 1.736597043319887e-02 1.736267559029083e-02 - 1.735937723525189e-02 1.735607536431420e-02 1.735276997535949e-02 1.734946106967137e-02 1.734614863942214e-02 - 1.734283267462293e-02 1.733951317984790e-02 1.733619014933173e-02 1.733286356952035e-02 1.732953344236944e-02 - 1.732619976822115e-02 1.732286254123125e-02 1.731952175476255e-02 1.731617740506982e-02 1.731282949118149e-02 - 1.730947800429541e-02 1.730612293897103e-02 1.730276429900506e-02 1.729940207772190e-02 1.729603626710180e-02 - 1.729266686687025e-02 1.728929387127552e-02 1.728591727431661e-02 1.728253707811547e-02 1.727915327486350e-02 - 1.727576585445017e-02 1.727237482415143e-02 1.726898017713387e-02 1.726558189725253e-02 1.726217999255776e-02 - 1.725877446141184e-02 1.725536528836806e-02 1.725195247427305e-02 1.724853602088567e-02 1.724511592318061e-02 - 1.724169217016580e-02 1.723826475637563e-02 1.723483368674653e-02 1.723139894995541e-02 1.722796053633534e-02 - 1.722451845482723e-02 1.722107270070567e-02 1.721762326419149e-02 1.721417014587169e-02 1.721071333868621e-02 - 1.720725283251134e-02 1.720378862838028e-02 1.720032072298445e-02 1.719684910908383e-02 1.719337378669194e-02 - 1.718989475327181e-02 1.718641200187306e-02 1.718292552719872e-02 1.717943532374793e-02 1.717594138625576e-02 - 1.717244371734551e-02 1.716894231509765e-02 1.716543716617480e-02 1.716192826455456e-02 1.715841561099909e-02 - 1.715489920993168e-02 1.715137904713604e-02 1.714785510917266e-02 1.714432741097788e-02 1.714079594608009e-02 - 1.713726069602739e-02 1.713372166332687e-02 1.713017885016558e-02 1.712663225240283e-02 1.712308185705881e-02 - 1.711952765873538e-02 1.711596966109396e-02 1.711240786053498e-02 1.710884225051524e-02 1.710527282476134e-02 - 1.710169958307061e-02 1.709812252022495e-02 1.709454162136748e-02 1.709095688985418e-02 1.708736832996113e-02 - 1.708377593024533e-02 1.708017968752960e-02 1.707657960032946e-02 1.707297565703870e-02 1.706936785401023e-02 - 1.706575619189593e-02 1.706214066346443e-02 1.705852126552140e-02 1.705489799818787e-02 1.705127085519305e-02 - 1.704763983091843e-02 1.704400492089210e-02 1.704036611449886e-02 1.703672340943711e-02 1.703307681394708e-02 - 1.702942631772786e-02 1.702577190966809e-02 1.702211358937508e-02 1.701845135582294e-02 1.701478520463906e-02 - 1.701111512687454e-02 1.700744111902223e-02 1.700376317991698e-02 1.700008130526762e-02 1.699639548886451e-02 - 1.699270572517141e-02 1.698901201362202e-02 1.698531434790372e-02 1.698161271901581e-02 1.697790713038581e-02 - 1.697419757947398e-02 1.697048405591379e-02 1.696676655885514e-02 1.696304508413142e-02 1.695931962055792e-02 - 1.695559016575875e-02 1.695185672007940e-02 1.694811928170539e-02 1.694437784303563e-02 1.694063239701608e-02 - 1.693688294268234e-02 1.693312947555357e-02 1.692937198914621e-02 1.692561047849961e-02 1.692184494218333e-02 - 1.691807537819241e-02 1.691430177590003e-02 1.691052413380094e-02 1.690674245501956e-02 1.690295672392027e-02 - 1.689916693403359e-02 1.689537309141036e-02 1.689157519031890e-02 1.688777322481082e-02 1.688396719247375e-02 - 1.688015708323470e-02 1.687634289028026e-02 1.687252461641300e-02 1.686870225976892e-02 1.686487581335405e-02 - 1.686104526641643e-02 1.685721061978611e-02 1.685337187596560e-02 1.684952902423863e-02 1.684568205626177e-02 - 1.684183096806695e-02 1.683797575916921e-02 1.683411642637722e-02 1.683025296370582e-02 1.682638536598722e-02 - 1.682251363071521e-02 1.681863775630957e-02 1.681475773295268e-02 1.681087355358095e-02 1.680698521822956e-02 - 1.680309272743823e-02 1.679919607564722e-02 1.679529524908240e-02 1.679139024683375e-02 1.678748107079098e-02 - 1.678356771499038e-02 1.677965016895157e-02 1.677572842703558e-02 1.677180249929987e-02 1.676787237703614e-02 - 1.676393804299063e-02 1.675999950051788e-02 1.675605674951069e-02 1.675210978219402e-02 1.674815858725950e-02 - 1.674420316518524e-02 1.674024352454331e-02 1.673627964747038e-02 1.673231152527195e-02 1.672833916857912e-02 - 1.672436256552257e-02 1.672038170373856e-02 1.671639658470834e-02 1.671240720840105e-02 1.670841357063555e-02 - 1.670441566220705e-02 1.670041347959014e-02 1.669640702110204e-02 1.669239628051189e-02 1.668838125191250e-02 - 1.668436193143650e-02 1.668033831890629e-02 1.667631040878886e-02 1.667227819212758e-02 1.666824166734860e-02 - 1.666420083129591e-02 1.666015567735254e-02 1.665610620005455e-02 1.665205239678242e-02 1.664799426695549e-02 - 1.664393180284348e-02 1.663986499713315e-02 1.663579384792829e-02 1.663171835503466e-02 1.662763851356003e-02 - 1.662355430939835e-02 1.661946574092143e-02 1.661537281150426e-02 1.661127551677910e-02 1.660717384720702e-02 - 1.660306779425839e-02 1.659895736095696e-02 1.659484254425630e-02 1.659072333444665e-02 1.658659972465595e-02 - 1.658247171530552e-02 1.657833931027815e-02 1.657420249617699e-02 1.657006126301349e-02 1.656591561144095e-02 - 1.656176553662080e-02 1.655761103381663e-02 1.655345210211223e-02 1.654928873901935e-02 1.654512093811135e-02 - 1.654094868807454e-02 1.653677198858015e-02 1.653259084096055e-02 1.652840523447503e-02 1.652421516561530e-02 - 1.652002063436291e-02 1.651582163151349e-02 1.651161815099949e-02 1.650741019156900e-02 1.650319775344297e-02 - 1.649898082810461e-02 1.649475940168675e-02 1.649053348141889e-02 1.648630306850305e-02 1.648206814836095e-02 - 1.647782871114676e-02 1.647358475732917e-02 1.646933629656457e-02 1.646508330893651e-02 1.646082578033714e-02 - 1.645656373337251e-02 1.645229715576629e-02 1.644802602626009e-02 1.644375035674409e-02 1.643947014097659e-02 - 1.643518536281393e-02 1.643089602671802e-02 1.642660213310334e-02 1.642230367492405e-02 1.641800064388943e-02 - 1.641369303446324e-02 1.640938084474308e-02 1.640506407467653e-02 1.640074271742540e-02 1.639641675907646e-02 - 1.639208620097271e-02 1.638775104513307e-02 1.638341128505268e-02 1.637906691499287e-02 1.637471792980197e-02 - 1.637036432400064e-02 1.636600609175647e-02 1.636164322915392e-02 1.635727573684415e-02 1.635290360792794e-02 - 1.634852683359730e-02 1.634414541697593e-02 1.633975935494602e-02 1.633536863669590e-02 1.633097325119221e-02 - 1.632657319870386e-02 1.632216848742881e-02 1.631775910539292e-02 1.631334504210032e-02 1.630892629731235e-02 - 1.630450287107613e-02 1.630007475715268e-02 1.629564194133085e-02 1.629120442381021e-02 1.628676220752001e-02 - 1.628231528645751e-02 1.627786365361661e-02 1.627340730437480e-02 1.626894623909321e-02 1.626448044809207e-02 - 1.626000991935131e-02 1.625553465710418e-02 1.625105466086324e-02 1.624656992364918e-02 1.624208044008659e-02 - 1.623758620493278e-02 1.623308721259990e-02 1.622858345750622e-02 1.622407493651434e-02 1.621956164908100e-02 - 1.621504359102545e-02 1.621052075671857e-02 1.620599314061202e-02 1.620146073758967e-02 1.619692354185834e-02 - 1.619238154678624e-02 1.618783475477294e-02 1.618328316706134e-02 1.617872676957040e-02 1.617416555535298e-02 - 1.616959952441603e-02 1.616502867670949e-02 1.616045300241566e-02 1.615587248863419e-02 1.615128714307292e-02 - 1.614669696726644e-02 1.614210195036420e-02 1.613750207990814e-02 1.613289735436475e-02 1.612828778261194e-02 - 1.612367334765880e-02 1.611905403879705e-02 1.611442986870223e-02 1.610980082722066e-02 1.610516690212456e-02 - 1.610052809916244e-02 1.609588441136000e-02 1.609123582829610e-02 1.608658235171540e-02 1.608192397521171e-02 - 1.607726068992654e-02 1.607259250083978e-02 1.606791940362701e-02 1.606324138657220e-02 1.605855844962495e-02 - 1.605387058768025e-02 1.604917779011535e-02 1.604448006054786e-02 1.603977739874237e-02 1.603506979420087e-02 - 1.603035723984084e-02 1.602563973257448e-02 1.602091727188371e-02 1.601618984720332e-02 1.601145745295015e-02 - 1.600672010067149e-02 1.600197777942985e-02 1.599723047266619e-02 1.599247818462375e-02 1.598772091449355e-02 - 1.598295865408641e-02 1.597819139147786e-02 1.597341912912636e-02 1.596864187530068e-02 1.596385961058315e-02 - 1.595907232771693e-02 1.595428003613896e-02 1.594948272828454e-02 1.594468039178993e-02 1.593987301780130e-02 - 1.593506061365002e-02 1.593024318102167e-02 1.592542070422077e-02 1.592059317798925e-02 1.591576060279083e-02 - 1.591092297799217e-02 1.590608029141302e-02 1.590123253274349e-02 1.589637971157846e-02 1.589152182656434e-02 - 1.588665886609507e-02 1.588179081847464e-02 1.587691768450550e-02 1.587203947045915e-02 1.586715616213467e-02 - 1.586226775168990e-02 1.585737424168921e-02 1.585247562649581e-02 1.584757190117160e-02 1.584266306445842e-02 - 1.583774911091078e-02 1.583283003450806e-02 1.582790583090947e-02 1.582297649499978e-02 1.581804202355953e-02 - 1.581310241701619e-02 1.580815766650671e-02 1.580320776320766e-02 1.579825271139450e-02 1.579329250537274e-02 - 1.578832713506978e-02 1.578335660262603e-02 1.577838090296324e-02 1.577340002574811e-02 1.576841397243399e-02 - 1.576342274326813e-02 1.575842633194578e-02 1.575342472205075e-02 1.574841791148685e-02 1.574340591569888e-02 - 1.573838872006093e-02 1.573336631006632e-02 1.572833869008299e-02 1.572330586230670e-02 1.571826781924578e-02 - 1.571322454052314e-02 1.570817603062760e-02 1.570312230059812e-02 1.569806333998715e-02 1.569299913693516e-02 - 1.568792968457186e-02 1.568285498663007e-02 1.567777503779379e-02 1.567268982728102e-02 1.566759935997030e-02 - 1.566250363482262e-02 1.565740264102256e-02 1.565229637077196e-02 1.564718482295817e-02 1.564206800099241e-02 - 1.563694589151567e-02 1.563181848599405e-02 1.562668579194260e-02 1.562154780177149e-02 1.561640450642917e-02 - 1.561125590888111e-02 1.560610200797837e-02 1.560094279515962e-02 1.559577825343192e-02 1.559060838842812e-02 - 1.558543321151646e-02 1.558025270088283e-02 1.557506685188879e-02 1.556987567405825e-02 1.556467915294808e-02 - 1.555947727806998e-02 1.555427005014520e-02 1.554905747326830e-02 1.554383954557267e-02 1.553861625685508e-02 - 1.553338760005679e-02 1.552815357203842e-02 1.552291417232042e-02 1.551766939022104e-02 1.551241921985975e-02 - 1.550716367246923e-02 1.550190274051892e-02 1.549663640983429e-02 1.549136467943576e-02 1.548608754911306e-02 - 1.548080501516420e-02 1.547551706650131e-02 1.547022370107663e-02 1.546492492363977e-02 1.545962073006300e-02 - 1.545431111106912e-02 1.544899605692932e-02 1.544367557060635e-02 1.543834964941066e-02 1.543301828099291e-02 - 1.542768146907574e-02 1.542233921474585e-02 1.541699150599057e-02 1.541163833967913e-02 1.540627971422265e-02 - 1.540091562222576e-02 1.539554606062004e-02 1.539017102808156e-02 1.538479052048013e-02 1.537940453376258e-02 - 1.537401306270197e-02 1.536861609811398e-02 1.536321364249661e-02 1.535780570199338e-02 1.535239225620149e-02 - 1.534697329939463e-02 1.534154884369051e-02 1.533611887960563e-02 1.533068339829330e-02 1.532524239983298e-02 - 1.531979587995433e-02 1.531434383110085e-02 1.530888624554550e-02 1.530342313142362e-02 1.529795449144603e-02 - 1.529248030485156e-02 1.528700056732233e-02 1.528151528324413e-02 1.527602445059826e-02 1.527052806021316e-02 - 1.526502610370102e-02 1.525951858764995e-02 1.525400550804322e-02 1.524848685322667e-02 1.524296262660809e-02 - 1.523743282528689e-02 1.523189743753784e-02 1.522635646012132e-02 1.522080989370855e-02 1.521525773883866e-02 - 1.520969998584297e-02 1.520413662809972e-02 1.519856766896251e-02 1.519299310438481e-02 1.518741292689401e-02 - 1.518182713051541e-02 1.517623571498702e-02 1.517063867977171e-02 1.516503601659771e-02 1.515942772580205e-02 - 1.515381380882217e-02 1.514819425008754e-02 1.514256904339338e-02 1.513693819284546e-02 1.513130169987854e-02 - 1.512565955837021e-02 1.512001175774349e-02 1.511435830052952e-02 1.510869918485496e-02 1.510303439909880e-02 - 1.509736393861015e-02 1.509168780464220e-02 1.508600600178219e-02 1.508031852355242e-02 1.507462535986425e-02 - 1.506892650464710e-02 1.506322195838325e-02 1.505751172137055e-02 1.505179578553525e-02 1.504607414992266e-02 - 1.504034681527993e-02 1.503461377008154e-02 1.502887501067205e-02 1.502313053999477e-02 1.501738035243006e-02 - 1.501162444030474e-02 1.500586279803602e-02 1.500009542963074e-02 1.499432233574762e-02 1.498854350912934e-02 - 1.498275894315130e-02 1.497696863387312e-02 1.497117258012378e-02 1.496537077480856e-02 1.495956321394884e-02 - 1.495374990400090e-02 1.494793083920974e-02 1.494210600904758e-02 1.493627541059610e-02 1.493043904648383e-02 - 1.492459691659297e-02 1.491874900408085e-02 1.491289530722370e-02 1.490703583623931e-02 1.490117058646935e-02 - 1.489529954725381e-02 1.488942270892006e-02 1.488354007804980e-02 1.487765165385858e-02 1.487175742273507e-02 - 1.486585738883519e-02 1.485995155398175e-02 1.485403990610964e-02 1.484812243988829e-02 1.484219915557141e-02 - 1.483627005584607e-02 1.483033513203473e-02 1.482439437542072e-02 1.481844779264578e-02 1.481249538141862e-02 - 1.480653713381494e-02 1.480057304868135e-02 1.479460312202780e-02 1.478862734716873e-02 1.478264572087699e-02 - 1.477665824308106e-02 1.477066491441443e-02 1.476466572742758e-02 1.475866067903805e-02 1.475264977269339e-02 - 1.474663299844858e-02 1.474061034872640e-02 1.473458182710518e-02 1.472854743115566e-02 1.472250715651883e-02 - 1.471646100132783e-02 1.471040896256117e-02 1.470435103749897e-02 1.469828722554372e-02 1.469221751827344e-02 - 1.468614190646898e-02 1.468006039547928e-02 1.467397298615093e-02 1.466787967378610e-02 1.466178045636883e-02 - 1.465567533041493e-02 1.464956428982840e-02 1.464344732703370e-02 1.463732444018100e-02 1.463119563426315e-02 - 1.462506090797482e-02 1.461892025637629e-02 1.461277367320199e-02 1.460662115516677e-02 1.460046270026797e-02 - 1.459429830605704e-02 1.458812796887011e-02 1.458195168595082e-02 1.457576945823491e-02 1.456958128559711e-02 - 1.456338716422361e-02 1.455718708308891e-02 1.455098103823577e-02 1.454476903226018e-02 1.453855106504101e-02 - 1.453232713525658e-02 1.452609724028033e-02 1.451986137384772e-02 1.451361953112174e-02 1.450737171027855e-02 - 1.450111790831084e-02 1.449485812287890e-02 1.448859235383744e-02 1.448232060352556e-02 1.447604287018101e-02 - 1.446975914267516e-02 1.446346941597466e-02 1.445717368938523e-02 1.445087196279080e-02 1.444456423724572e-02 - 1.443825051237331e-02 1.443193078136921e-02 1.442560503975330e-02 1.441927328581930e-02 1.441293551683267e-02 - 1.440659172970616e-02 1.440024192165075e-02 1.439388609177658e-02 1.438752424156573e-02 1.438115637277796e-02 - 1.437478247503487e-02 1.436840254149195e-02 1.436201657648160e-02 1.435562457263202e-02 1.434922652522855e-02 - 1.434282244486077e-02 1.433641232984850e-02 1.432999617114929e-02 1.432357396196595e-02 1.431714570255755e-02 - 1.431071139387867e-02 1.430427102559402e-02 1.429782460021014e-02 1.429137212732056e-02 1.428491359501307e-02 - 1.427844899676062e-02 1.427197833606156e-02 1.426550161130239e-02 1.425901881685885e-02 1.425252994564961e-02 - 1.424603499980085e-02 1.423953398385027e-02 1.423302689906778e-02 1.422651373475527e-02 1.421999448399202e-02 - 1.421346915585374e-02 1.420693774198730e-02 1.420040023237321e-02 1.419385663850131e-02 1.418730696003290e-02 - 1.418075118751426e-02 1.417418931634679e-02 1.416762135086922e-02 1.416104729584521e-02 1.415446713263836e-02 - 1.414788085973522e-02 1.414128849363525e-02 1.413469002361970e-02 1.412808544052846e-02 1.412147474772301e-02 - 1.411485794712882e-02 1.410823503604182e-02 1.410160600672222e-02 1.409497085818714e-02 1.408832959214252e-02 - 1.408168220875668e-02 1.407502870564407e-02 1.406836907961611e-02 1.406170332864153e-02 1.405503144837146e-02 - 1.404835343608425e-02 1.404166929852345e-02 1.403497903248639e-02 1.402828262916828e-02 1.402158009603205e-02 - 1.401487143048169e-02 1.400815661918214e-02 1.400143566703935e-02 1.399470857625501e-02 1.398797534046779e-02 - 1.398123596549795e-02 1.397449045134991e-02 1.396773878380821e-02 1.396098096640959e-02 1.395421700271061e-02 - 1.394744688102961e-02 1.394067060648909e-02 1.393388818692338e-02 1.392709961198955e-02 1.392030488001634e-02 - 1.391350399327543e-02 1.390669694254475e-02 1.389988372719557e-02 1.389306435287330e-02 1.388623881438261e-02 - 1.387940711188756e-02 1.387256925103053e-02 1.386572522405790e-02 1.385887502683316e-02 1.385201866296698e-02 - 1.384515612379329e-02 1.383828740611332e-02 1.383141252098464e-02 1.382453146615934e-02 1.381764423695148e-02 - 1.381075083621117e-02 1.380385125926009e-02 1.379694549932224e-02 1.379003355634722e-02 1.378311543405784e-02 - 1.377619113577579e-02 1.376926065784134e-02 1.376232399626086e-02 1.375538114862362e-02 1.374843211529037e-02 - 1.374147689626999e-02 1.373451549097131e-02 1.372754790081035e-02 1.372057412482435e-02 1.371359415880417e-02 - 1.370660800191563e-02 1.369961565562416e-02 1.369261712158748e-02 1.368561239160383e-02 1.367860146147292e-02 - 1.367158434223160e-02 1.366456103295884e-02 1.365753152816715e-02 1.365049582984413e-02 1.364345393626983e-02 - 1.363640584363454e-02 1.362935155197557e-02 1.362229106201978e-02 1.361522437421294e-02 1.360815148809621e-02 - 1.360107240365773e-02 1.359398712117658e-02 1.358689563898480e-02 1.357979795217255e-02 1.357269405533802e-02 - 1.356558396017600e-02 1.355846767355538e-02 1.355134518540141e-02 1.354421648973967e-02 1.353708158728038e-02 - 1.352994048497773e-02 1.352279317412557e-02 1.351563964921714e-02 1.350847993234027e-02 1.350131401794928e-02 - 1.349414188812881e-02 1.348696355361660e-02 1.347977901858603e-02 1.347258827670450e-02 1.346539132112732e-02 - 1.345818815687027e-02 1.345097879723517e-02 1.344376323611521e-02 1.343654146470481e-02 1.342931348024562e-02 - 1.342207929164266e-02 1.341483890125029e-02 1.340759229714105e-02 1.340033948592649e-02 1.339308047488992e-02 - 1.338581525615185e-02 1.337854383232506e-02 1.337126620737807e-02 1.336398237245951e-02 1.335669232490426e-02 - 1.334939606999042e-02 1.334209361886319e-02 1.333478496691931e-02 1.332747010093965e-02 1.332014902896288e-02 - 1.331282175723704e-02 1.330548828381385e-02 1.329814860211957e-02 1.329080271412866e-02 1.328345063097246e-02 - 1.327609234424045e-02 1.326872784914616e-02 1.326135715657202e-02 1.325398026514318e-02 1.324659716972378e-02 - 1.323920787031880e-02 1.323181236976987e-02 1.322441067219326e-02 1.321700278123619e-02 1.320958869473772e-02 - 1.320216840889533e-02 1.319474192647233e-02 1.318730924299288e-02 1.317987035320805e-02 1.317242527523754e-02 - 1.316497401404441e-02 1.315751655750498e-02 1.315005290457417e-02 1.314258305915991e-02 1.313510702533477e-02 - 1.312762479749873e-02 1.312013637454663e-02 1.311264176674524e-02 1.310514097528989e-02 1.309763399743803e-02 - 1.309012083240218e-02 1.308260148524151e-02 1.307507595779872e-02 1.306754423810231e-02 1.306000633130083e-02 - 1.305246225068735e-02 1.304491199415833e-02 1.303735555888092e-02 1.302979294561730e-02 1.302222416114251e-02 - 1.301464920127586e-02 1.300706805512286e-02 1.299948074007148e-02 1.299188726392925e-02 1.298428761376350e-02 - 1.297668178953030e-02 1.296906979917289e-02 1.296145165196894e-02 1.295382733572278e-02 1.294619684321666e-02 - 1.293856019418804e-02 1.293091739361701e-02 1.292326843600229e-02 1.291561331594024e-02 1.290795203962965e-02 - 1.290028461406370e-02 1.289261102589192e-02 1.288493127982097e-02 1.287724539399148e-02 1.286955336728896e-02 - 1.286185519483855e-02 1.285415087393522e-02 1.284644040779901e-02 1.283872379943217e-02 1.283100105007112e-02 - 1.282327216499671e-02 1.281553714651719e-02 1.280779599126801e-02 1.280004870582322e-02 1.279229529551004e-02 - 1.278453575462785e-02 1.277677008230648e-02 1.276899828322272e-02 1.276122036637128e-02 1.275343633303281e-02 - 1.274564618082443e-02 1.273784991358546e-02 1.273004753391990e-02 1.272223904101719e-02 1.271442442957637e-02 - 1.270660370794978e-02 1.269877689384363e-02 1.269094397773904e-02 1.268310495443295e-02 1.267525983383190e-02 - 1.266740862159357e-02 1.265955131610305e-02 1.265168790986125e-02 1.264381841321034e-02 1.263594283614933e-02 - 1.262806117310012e-02 1.262017342951705e-02 1.261227961209872e-02 1.260437971406514e-02 1.259647373729069e-02 - 1.258856168925583e-02 1.258064357239260e-02 1.257271939240096e-02 1.256478915520078e-02 1.255685285459754e-02 - 1.254891049173029e-02 1.254096207570647e-02 1.253300760376554e-02 1.252504707668881e-02 1.251708050378790e-02 - 1.250910789128773e-02 1.250112924190730e-02 1.249314455497329e-02 1.248515382942968e-02 1.247715706626537e-02 - 1.246915427066142e-02 1.246114545004359e-02 1.245313061093009e-02 1.244510975519442e-02 1.243708288271855e-02 - 1.242904999334644e-02 1.242101108960597e-02 1.241296617602342e-02 1.240491525784085e-02 1.239685833832253e-02 - 1.238879542265411e-02 1.238072651672425e-02 1.237265161832934e-02 1.236457072972670e-02 1.235648385971585e-02 - 1.234839100475330e-02 1.234029216644840e-02 1.233218735967670e-02 1.232407658450629e-02 1.231595983825897e-02 - 1.230783712734204e-02 1.229970846199802e-02 1.229157384500942e-02 1.228343326032102e-02 1.227528672233900e-02 - 1.226713425500730e-02 1.225897584359588e-02 1.225081148758153e-02 1.224264120133804e-02 1.223446498720786e-02 - 1.222628284514866e-02 1.221809477711035e-02 1.220990079161559e-02 1.220170089405064e-02 1.219349508434973e-02 - 1.218528336781141e-02 1.217706575082829e-02 1.216884223701085e-02 1.216061282093886e-02 1.215237750559525e-02 - 1.214413631491834e-02 1.213588924765066e-02 1.212763629639266e-02 1.211937747504947e-02 1.211111278696468e-02 - 1.210284222899338e-02 1.209456580676226e-02 1.208628352659129e-02 1.207799539529086e-02 1.206970142400196e-02 - 1.206140161359375e-02 1.205309595715539e-02 1.204478446558403e-02 1.203646714593309e-02 1.202814399601385e-02 - 1.201981502726849e-02 1.201148024892713e-02 1.200313965960066e-02 1.199479326438714e-02 1.198644106975963e-02 - 1.197808307814890e-02 1.196971928979660e-02 1.196134970757412e-02 1.195297434273665e-02 1.194459320579336e-02 - 1.193620630286995e-02 1.192781363156250e-02 1.191941519457288e-02 1.191101099930699e-02 1.190260104978759e-02 - 1.189418535108248e-02 1.188576391078268e-02 1.187733673904143e-02 1.186890383909906e-02 1.186046520717658e-02 - 1.185202085452967e-02 1.184357078721630e-02 1.183511499765447e-02 1.182665350164435e-02 1.181818631619212e-02 - 1.180971343948878e-02 1.180123487113532e-02 1.179275061618258e-02 1.178426068678883e-02 1.177576508273127e-02 - 1.176726380098327e-02 1.175875685721244e-02 1.175024426443667e-02 1.174172602804813e-02 1.173320214474543e-02 - 1.172467261918110e-02 1.171613746318596e-02 1.170759667473828e-02 1.169905025976067e-02 1.169049823639713e-02 - 1.168194060529573e-02 1.167337736787376e-02 1.166480853596695e-02 1.165623411322526e-02 1.164765410079015e-02 - 1.163906850325271e-02 1.163047732858534e-02 1.162188058835008e-02 1.161327829716097e-02 1.160467045202270e-02 - 1.159605704763531e-02 1.158743810702480e-02 1.157881363156412e-02 1.157018361041755e-02 1.156154807040710e-02 - 1.155290702254676e-02 1.154426045745637e-02 1.153560838867705e-02 1.152695082724772e-02 1.151828777265603e-02 - 1.150961922666123e-02 1.150094519786783e-02 1.149226570234640e-02 1.148358074611148e-02 1.147489033148848e-02 - 1.146619446355201e-02 1.145749315215113e-02 1.144878640491215e-02 1.144007421936342e-02 1.143135660500108e-02 - 1.142263357779597e-02 1.141390514531738e-02 1.140517131031360e-02 1.139643207471360e-02 1.138768744746770e-02 - 1.137893743736065e-02 1.137018205114591e-02 1.136142129485616e-02 1.135265517811921e-02 1.134388371322748e-02 - 1.133510690045416e-02 1.132632474439678e-02 1.131753726104511e-02 1.130874445081251e-02 1.129994631541456e-02 - 1.129114287234474e-02 1.128233413053084e-02 1.127352009524980e-02 1.126470077646612e-02 1.125587617975814e-02 - 1.124704630615814e-02 1.123821115477194e-02 1.122937074388692e-02 1.122052509984340e-02 1.121167421843202e-02 - 1.120281809651728e-02 1.119395674175946e-02 1.118509017235879e-02 1.117621839625571e-02 1.116734140890626e-02 - 1.115845922925729e-02 1.114957187162777e-02 1.114067933143962e-02 1.113178161769016e-02 1.112287874451852e-02 - 1.111397072153178e-02 1.110505754694771e-02 1.109613922373310e-02 1.108721577854856e-02 1.107828721826434e-02 - 1.106935353946150e-02 1.106041475521090e-02 1.105147087839408e-02 1.104252191603393e-02 1.103356786436798e-02 - 1.102460873384026e-02 1.101564454870664e-02 1.100667531791245e-02 1.099770104268406e-02 1.098872172333136e-02 - 1.097973737703280e-02 1.097074801492989e-02 1.096175363206450e-02 1.095275424291130e-02 1.094374986633713e-02 - 1.093474051123777e-02 1.092572618232803e-02 1.091670688531980e-02 1.090768263148204e-02 1.089865342255811e-02 - 1.088961926240844e-02 1.088058018050034e-02 1.087153618780464e-02 1.086248727940419e-02 1.085343346361914e-02 - 1.084437475261139e-02 1.083531115780061e-02 1.082624268419920e-02 1.081716934144050e-02 1.080809114559821e-02 - 1.079900810312026e-02 1.078992022093278e-02 1.078082751184906e-02 1.077172998533364e-02 1.076262764813011e-02 - 1.075352050586474e-02 1.074440857092024e-02 1.073529185762834e-02 1.072617037570664e-02 1.071704413251609e-02 - 1.070791313635956e-02 1.069877740113652e-02 1.068963693244828e-02 1.068049173224424e-02 1.067134181766250e-02 - 1.066218720670161e-02 1.065302791162099e-02 1.064386393117340e-02 1.063469527249458e-02 1.062552195483164e-02 - 1.061634397913101e-02 1.060716135205155e-02 1.059797409807024e-02 1.058878223029125e-02 1.057958575437316e-02 - 1.057038467384018e-02 1.056117900039964e-02 1.055196874533382e-02 1.054275390960051e-02 1.053353451406393e-02 - 1.052431058354873e-02 1.051508211263400e-02 1.050584910821505e-02 1.049661158906674e-02 1.048736956269110e-02 - 1.047812303544552e-02 1.046887201730896e-02 1.045961652742825e-02 1.045035657823219e-02 1.044109217270465e-02 - 1.043182332652317e-02 1.042255005238709e-02 1.041327235213399e-02 1.040399023555266e-02 1.039470371859749e-02 - 1.038541282005145e-02 1.037611754740451e-02 1.036681790639924e-02 1.035751391340543e-02 1.034820558036888e-02 - 1.033889291336949e-02 1.032957591435120e-02 1.032025460242317e-02 1.031092900384275e-02 1.030159911688449e-02 - 1.029226495054825e-02 1.028292652729243e-02 1.027358385071069e-02 1.026423692589549e-02 1.025488576741323e-02 - 1.024553039300053e-02 1.023617081698821e-02 1.022680704740226e-02 1.021743909457171e-02 1.020806697035185e-02 - 1.019869068658227e-02 1.018931025066223e-02 1.017992567348438e-02 1.017053697875713e-02 1.016114417776936e-02 - 1.015174727399650e-02 1.014234627700861e-02 1.013294120450803e-02 1.012353207457940e-02 1.011411888599992e-02 - 1.010470164920459e-02 1.009528038851809e-02 1.008585511657422e-02 1.007642584330934e-02 1.006699257991301e-02 - 1.005755533847607e-02 1.004811412861271e-02 1.003866895746225e-02 1.002921984502842e-02 1.001976681035788e-02 - 1.001030986009602e-02 1.000084900502786e-02 9.991384259025663e-03 9.981915635495017e-03 9.972443141719819e-03 - 9.962966786689603e-03 9.953486595586885e-03 9.944002583039199e-03 9.934514754395770e-03 9.925023122335749e-03 - 9.915527701693664e-03 9.906028505794947e-03 9.896525539473492e-03 9.887018817044350e-03 9.877508364713565e-03 - 9.867994191756903e-03 9.858476305769829e-03 9.848954721540815e-03 9.839429453723526e-03 9.829900512927632e-03 - 9.820367904529967e-03 9.810831649938153e-03 9.801291772225836e-03 9.791748277276684e-03 9.782201174956444e-03 - 9.772650480173910e-03 9.763096209214261e-03 9.753538370443265e-03 9.743976971083063e-03 9.734412038356991e-03 - 9.724843589152831e-03 9.715271627378256e-03 9.705696167153652e-03 9.696117225097080e-03 9.686534815487291e-03 - 9.676948943754414e-03 9.667359623576509e-03 9.657766883492007e-03 9.648170733986708e-03 9.638571181819185e-03 - 9.628968243024477e-03 9.619361933494769e-03 9.609752265452595e-03 9.600139245296816e-03 9.590522893495216e-03 - 9.580903234511828e-03 9.571280275331249e-03 9.561654026946651e-03 9.552024506017841e-03 9.542391727779683e-03 - 9.532755702177183e-03 9.523116437885958e-03 9.513473960404769e-03 9.503828289303256e-03 9.494179431678001e-03 - 9.484527400058637e-03 9.474872210511853e-03 9.465213879778082e-03 9.455552415295903e-03 9.445887829718797e-03 - 9.436220151655284e-03 9.426549394486200e-03 9.416875565725477e-03 9.407198681221749e-03 9.397518758018270e-03 - 9.387835810148322e-03 9.378149843813783e-03 9.368460878589471e-03 9.358768941430739e-03 9.349074041571485e-03 - 9.339376189353358e-03 9.329675400879622e-03 9.319971694171958e-03 9.310265081086165e-03 9.300555568605354e-03 - 9.290843182951191e-03 9.281127946492163e-03 9.271409865969660e-03 9.261688954922952e-03 9.251965230660204e-03 - 9.242238709904914e-03 9.232509401801155e-03 9.222777318787652e-03 9.213042489474691e-03 9.203304930168641e-03 - 9.193564649383718e-03 9.183821661973759e-03 9.174075985705271e-03 9.164327637046287e-03 9.154576623077591e-03 - 9.144822962285418e-03 9.135066683045857e-03 9.125307796249328e-03 9.115546312613307e-03 9.105782249286811e-03 - 9.096015624756502e-03 9.086246452281876e-03 9.076474739187750e-03 9.066700510968253e-03 9.056923792083085e-03 - 9.047144590189744e-03 9.037362919662660e-03 9.027578799121916e-03 9.017792245480461e-03 9.008003268928564e-03 - 8.998211881680073e-03 8.988418113610518e-03 8.978621982540696e-03 8.968823496265647e-03 8.959022672124209e-03 - 8.949219528590024e-03 8.939414081469170e-03 8.929606339864140e-03 8.919796321979990e-03 8.909984056877767e-03 - 8.900169557867096e-03 8.890352835957138e-03 8.880533907981049e-03 8.870712793191068e-03 8.860889506593549e-03 - 8.851064055633283e-03 8.841236465905915e-03 8.831406764712287e-03 8.821574959648875e-03 8.811741064546590e-03 - 8.801905099237244e-03 8.792067082696866e-03 8.782227026145442e-03 8.772384940188230e-03 8.762540855386065e-03 - 8.752694792574688e-03 8.742846759945761e-03 8.732996774006149e-03 8.723144854408183e-03 8.713291019755398e-03 - 8.703435278608567e-03 8.693577647775636e-03 8.683718159456632e-03 8.673856827661263e-03 8.663993662505663e-03 - 8.654128683145933e-03 8.644261909320558e-03 8.634393356690426e-03 8.624523033451901e-03 8.614650964506795e-03 - 8.604777179373340e-03 8.594901686657006e-03 8.585024500118565e-03 8.575145640490715e-03 8.565265126670765e-03 - 8.555382971806235e-03 8.545499187654319e-03 8.535613803632294e-03 8.525726842250045e-03 8.515838312646278e-03 - 8.505948232174527e-03 8.496056621077198e-03 8.486163497882877e-03 8.476268872748003e-03 8.466372762116349e-03 - 8.456475199094931e-03 8.446576199856061e-03 8.436675774300739e-03 8.426773941795081e-03 8.416870722731803e-03 - 8.406966134358667e-03 8.397060186389057e-03 8.387152901959176e-03 8.377244311160385e-03 8.367334425300299e-03 - 8.357423258296441e-03 8.347510830980188e-03 8.337597163605794e-03 8.327682270401855e-03 8.317766161869340e-03 - 8.307848867754637e-03 8.297930413816063e-03 8.288010810083676e-03 8.278090072673102e-03 8.268168221765407e-03 - 8.258245278027963e-03 8.248321253600945e-03 8.238396163758082e-03 8.228470040664376e-03 8.218542903042886e-03 - 8.208614761992156e-03 8.198685637447353e-03 8.188755549837494e-03 8.178824516773604e-03 8.168892549578916e-03 - 8.158959670459199e-03 8.149025910256038e-03 8.139091282816925e-03 8.129155801857130e-03 8.119219487437710e-03 - 8.109282361690508e-03 8.099344440765549e-03 8.089405733754036e-03 8.079466270417937e-03 8.069526079135253e-03 - 8.059585169010465e-03 8.049643556954327e-03 8.039701265060109e-03 8.029758314127560e-03 8.019814717074126e-03 - 8.009870488264625e-03 7.999925660293698e-03 7.989980254561855e-03 7.980034282561204e-03 7.970087763203990e-03 - 7.960140717914167e-03 7.950193166721423e-03 7.940245120231920e-03 7.930296599391260e-03 7.920347637831796e-03 - 7.910398250263278e-03 7.900448449763646e-03 7.890498257622273e-03 7.880547695356892e-03 7.870596780430528e-03 - 7.860645524802819e-03 7.850693955430419e-03 7.840742100859013e-03 7.830789973961963e-03 7.820837591210042e-03 - 7.810884973654219e-03 7.800932143705464e-03 7.790979115476222e-03 7.781025902060369e-03 7.771072537550891e-03 - 7.761119045304192e-03 7.751165435253132e-03 7.741211727248220e-03 7.731257943744334e-03 7.721304105116559e-03 - 7.711350222852130e-03 7.701396316987202e-03 7.691442422531397e-03 7.681488555826352e-03 7.671534729460651e-03 - 7.661580965493510e-03 7.651627286213397e-03 7.641673709645761e-03 7.631720246474624e-03 7.621766924002147e-03 - 7.611813774300424e-03 7.601860809420407e-03 7.591908045212342e-03 7.581955503946372e-03 7.572003208680656e-03 - 7.562051174726026e-03 7.552099414296815e-03 7.542147961065804e-03 7.532196840825635e-03 7.522246063843738e-03 - 7.512295650102864e-03 7.502345622322073e-03 7.492396000716249e-03 7.482446799189802e-03 7.472498037196947e-03 - 7.462549747897286e-03 7.452601950331629e-03 7.442654658211039e-03 7.432707892744488e-03 7.422761676416634e-03 - 7.412816028768508e-03 7.402870961455420e-03 7.392926500328647e-03 7.382982678429822e-03 7.373039508794957e-03 - 7.363097007225734e-03 7.353155196864952e-03 7.343214100532815e-03 7.333273734782904e-03 7.323334112197604e-03 - 7.313395265021593e-03 7.303457220900774e-03 7.293519991033275e-03 7.283583594600794e-03 7.273648054943689e-03 - 7.263713394446934e-03 7.253779626580373e-03 7.243846768480717e-03 7.233914855435080e-03 7.223983908518886e-03 - 7.214053940460562e-03 7.204124972417771e-03 7.194197027491048e-03 7.184270126394881e-03 7.174344280726286e-03 - 7.164419514784642e-03 7.154495863236941e-03 7.144573340914020e-03 7.134651962993328e-03 7.124731752265264e-03 - 7.114812732100897e-03 7.104894920638768e-03 7.094978330575343e-03 7.085062992246606e-03 7.075148934793896e-03 - 7.065236171017366e-03 7.055324719420953e-03 7.045414603125002e-03 7.035505845669364e-03 7.025598461448587e-03 - 7.015692466009597e-03 7.005787894887785e-03 6.995884771371198e-03 6.985983107977662e-03 6.976082925249031e-03 - 6.966184246523457e-03 6.956287093797063e-03 6.946391479271966e-03 6.936497425652844e-03 6.926604968509339e-03 - 6.916714124366364e-03 6.906824907731460e-03 6.896937340931554e-03 6.887051448149962e-03 6.877167248699087e-03 - 6.867284753979424e-03 6.857403994050719e-03 6.847525000658012e-03 6.837647785670592e-03 6.827772367409923e-03 - 6.817898770109592e-03 6.808027016717447e-03 6.798157122708669e-03 6.788289103240300e-03 6.778422992931511e-03 - 6.768558816798320e-03 6.758696587557012e-03 6.748836325648165e-03 6.738978054348659e-03 6.729121795949092e-03 - 6.719267563927435e-03 6.709415379633438e-03 6.699565278400954e-03 6.689717278120727e-03 6.679871393303892e-03 - 6.670027647355804e-03 6.660186063525513e-03 6.650346660981845e-03 6.640509452367944e-03 6.630674466396449e-03 - 6.620841735868644e-03 6.611011273308148e-03 6.601183096392477e-03 6.591357229649247e-03 6.581533696087914e-03 - 6.571712512145987e-03 6.561893692372858e-03 6.552077270290561e-03 6.542263272668194e-03 6.532451712617284e-03 - 6.522642609933696e-03 6.512835987879551e-03 6.503031869590782e-03 6.493230268870023e-03 6.483431205156500e-03 - 6.473634714105858e-03 6.463840816056773e-03 6.454049525191551e-03 6.444260863046832e-03 6.434474853362258e-03 - 6.424691517208967e-03 6.414910866799055e-03 6.405132928351729e-03 6.395357735592168e-03 6.385585303753894e-03 - 6.375815649717760e-03 6.366048796411005e-03 6.356284767471845e-03 6.346523580477974e-03 6.336765248927921e-03 - 6.327009805730009e-03 6.317257279178600e-03 6.307507681412946e-03 6.297761032647583e-03 6.288017356862164e-03 - 6.278276676438099e-03 6.268539005625230e-03 6.258804362658888e-03 6.249072783406197e-03 6.239344289504087e-03 - 6.229618894349891e-03 6.219896619699197e-03 6.210177489065160e-03 6.200461523673893e-03 6.190748736475173e-03 - 6.181039151999554e-03 6.171332804226705e-03 6.161629709556120e-03 6.151929884103313e-03 6.142233350147177e-03 - 6.132540131644584e-03 6.122850247356021e-03 6.113163710170625e-03 6.103480551213418e-03 6.093800800141988e-03 - 6.084124469547710e-03 6.074451578566364e-03 6.064782150905211e-03 6.055116209626953e-03 6.045453769994722e-03 - 6.035794848740185e-03 6.026139480474754e-03 6.016487688229946e-03 6.006839485237500e-03 5.997194892776407e-03 - 5.987553934341584e-03 5.977916631713333e-03 5.968282997802390e-03 5.958653055343909e-03 5.949026838944569e-03 - 5.939404365780911e-03 5.929785651209331e-03 5.920170717549854e-03 5.910559587858684e-03 5.900952281370824e-03 - 5.891348811852907e-03 5.881749208142844e-03 5.872153500225121e-03 5.862561701850070e-03 5.852973831530551e-03 - 5.843389912374926e-03 5.833809966833203e-03 5.824234011006907e-03 5.814662060999971e-03 5.805094150375409e-03 - 5.795530303292347e-03 5.785970532524381e-03 5.776414859211175e-03 5.766863306294991e-03 5.757315894674337e-03 - 5.747772638659374e-03 5.738233559732430e-03 5.728698691311226e-03 5.719168051719483e-03 5.709641656042984e-03 - 5.700119526414031e-03 5.690601685377130e-03 5.681088152168133e-03 5.671578940158426e-03 5.662074076665564e-03 - 5.652573592801510e-03 5.643077502877857e-03 5.633585823810169e-03 5.624098577633230e-03 5.614615788052954e-03 - 5.605137471831965e-03 5.595663642810052e-03 5.586194333773162e-03 5.576729570469775e-03 5.567269364923084e-03 - 5.557813736696195e-03 5.548362708847973e-03 5.538916303890826e-03 5.529474534822445e-03 5.520037420561356e-03 - 5.510604996543656e-03 5.501177281279281e-03 5.491754287530179e-03 5.482336037985177e-03 5.472922555453679e-03 - 5.463513859119052e-03 5.454109961206277e-03 5.444710887376439e-03 5.435316669896643e-03 5.425927322428118e-03 - 5.416542861379438e-03 5.407163309793553e-03 5.397788689388935e-03 5.388419016905312e-03 5.379054306533677e-03 - 5.369694588817857e-03 5.360339890208465e-03 5.350990223294556e-03 5.341645606645782e-03 5.332306062415535e-03 - 5.322971612709802e-03 5.313642271564683e-03 5.304318056285795e-03 5.294999000250198e-03 5.285685123732157e-03 - 5.276376439554206e-03 5.267072968338082e-03 5.257774732353860e-03 5.248481751732874e-03 5.239194038865901e-03 - 5.229911616755654e-03 5.220634516968343e-03 5.211362754853240e-03 5.202096346092698e-03 5.192835312362628e-03 - 5.183579674966123e-03 5.174329450821569e-03 5.165084652994387e-03 5.155845310548846e-03 5.146611450951191e-03 - 5.137383086378589e-03 5.128160234647254e-03 5.118942917508807e-03 5.109731156137037e-03 5.100524965000140e-03 - 5.091324360054826e-03 5.082129373049942e-03 5.072940025255639e-03 5.063756329149303e-03 5.054578304260502e-03 - 5.045405972366202e-03 5.036239353680495e-03 5.027078459118392e-03 5.017923310123222e-03 5.008773940483098e-03 - 4.999630364315774e-03 4.990492594829337e-03 4.981360654331298e-03 4.972234563790402e-03 4.963114339923834e-03 - 4.953999995020500e-03 4.944891556281875e-03 4.935789051765770e-03 4.926692493194353e-03 4.917601897109304e-03 - 4.908517284729773e-03 4.899438676825864e-03 4.890366088012707e-03 4.881299532722441e-03 4.872239041569468e-03 - 4.863184636415129e-03 4.854136328649667e-03 4.845094137498133e-03 4.836058083872883e-03 4.827028186746977e-03 - 4.818004458681770e-03 4.808986918914880e-03 4.799975597861264e-03 4.790970512088721e-03 4.781971675128856e-03 - 4.772979106768043e-03 4.763992827229902e-03 4.755012853632298e-03 4.746039197549013e-03 4.737071883993436e-03 - 4.728110941197518e-03 4.719156380399636e-03 4.710208217424537e-03 4.701266473663848e-03 4.692331168251817e-03 - 4.683402315353613e-03 4.674479928383867e-03 4.665564036556664e-03 4.656654662394768e-03 4.647751816371710e-03 - 4.638855516650367e-03 4.629965783672686e-03 4.621082635909843e-03 4.612206084994354e-03 4.603336148102954e-03 - 4.594472856159325e-03 4.585616225744373e-03 4.576766268345947e-03 4.567923003199363e-03 4.559086450091263e-03 - 4.550256626033265e-03 4.541433541986122e-03 4.532617220194613e-03 4.523807688535670e-03 4.515004959722835e-03 - 4.506209047920159e-03 4.497419972185719e-03 4.488637751873642e-03 4.479862401381760e-03 4.471093932025212e-03 - 4.462332371280023e-03 4.453577742726973e-03 4.444830056583276e-03 4.436089328917552e-03 4.427355578888171e-03 - 4.418628824988929e-03 4.409909078668640e-03 4.401196354933857e-03 4.392490684030716e-03 4.383792083151365e-03 - 4.375100562120779e-03 4.366416138313078e-03 4.357738831525952e-03 4.349068659591380e-03 4.340405630957790e-03 - 4.331749765364269e-03 4.323101091949651e-03 4.314459623208851e-03 4.305825371349630e-03 4.297198354190413e-03 - 4.288578590720092e-03 4.279966095343473e-03 4.271360877578565e-03 4.262762963097229e-03 4.254172376200769e-03 - 4.245589126222103e-03 4.237013227440267e-03 4.228444697962537e-03 4.219883556022182e-03 4.211329813254019e-03 - 4.202783482548908e-03 4.194244591796649e-03 4.185713159116739e-03 4.177189194188086e-03 4.168672712320958e-03 - 4.160163731860882e-03 4.151662270610665e-03 4.143168336754119e-03 4.134681947397693e-03 4.126203130809124e-03 - 4.117731899759874e-03 4.109268265260960e-03 4.100812244167818e-03 4.092363854125291e-03 4.083923109325604e-03 - 4.075490018959178e-03 4.067064605609816e-03 4.058646892914489e-03 4.050236890474988e-03 4.041834611549669e-03 - 4.033440073099425e-03 4.025053291802670e-03 4.016674279190388e-03 4.008303046950822e-03 3.999939621219669e-03 - 3.991584019864232e-03 3.983236251035503e-03 3.974896329846703e-03 3.966564273682151e-03 3.958240098637734e-03 - 3.949923812376889e-03 3.941615430268695e-03 3.933314980874398e-03 3.925022475755094e-03 3.916737923312982e-03 - 3.908461340476090e-03 3.900192744628528e-03 3.891932149238224e-03 3.883679560814138e-03 3.875435000263637e-03 - 3.867198492508630e-03 3.858970045729460e-03 3.850749670926077e-03 3.842537384120139e-03 3.834333202377867e-03 - 3.826137136626801e-03 3.817949195349815e-03 3.809769403427763e-03 3.801597779587331e-03 3.793434330750140e-03 - 3.785279069923421e-03 3.777132013373491e-03 3.768993177352847e-03 3.760862568898475e-03 3.752740200334732e-03 - 3.744626099044159e-03 3.736520277340854e-03 3.728422742215669e-03 3.720333508785603e-03 3.712252593018920e-03 - 3.704180008090329e-03 3.696115760631814e-03 3.688059868276574e-03 3.680012354362612e-03 3.671973228138760e-03 - 3.663942499526064e-03 3.655920182566113e-03 3.647906292785413e-03 3.639900840938008e-03 3.631903834337251e-03 - 3.623915295229000e-03 3.615935242250758e-03 3.607963681828620e-03 3.600000626081414e-03 3.592046089865790e-03 - 3.584100087061132e-03 3.576162625323692e-03 3.568233715505030e-03 3.560313381862740e-03 3.552401637255495e-03 - 3.544498488187401e-03 3.536603947761108e-03 3.528718030587010e-03 3.520840749407267e-03 3.512972109975055e-03 - 3.505112127471606e-03 3.497260824593953e-03 3.489418209893856e-03 3.481584291815555e-03 3.473759083632174e-03 - 3.465942599385497e-03 3.458134849136788e-03 3.450335838875430e-03 3.442545588595099e-03 3.434764116831954e-03 - 3.426991428902786e-03 3.419227535146918e-03 3.411472449427477e-03 3.403726185233638e-03 3.395988749408295e-03 - 3.388260149964055e-03 3.380540409506120e-03 3.372829541439428e-03 3.365127551327278e-03 3.357434450344299e-03 - 3.349750251864305e-03 3.342074968176267e-03 3.334408603200120e-03 3.326751169911567e-03 3.319102691777129e-03 - 3.311463175183513e-03 3.303832626198486e-03 3.296211059114474e-03 3.288598486024217e-03 3.280994915398627e-03 - 3.273400352769854e-03 3.265814815709593e-03 3.258238322074859e-03 3.250670876135365e-03 3.243112486983179e-03 - 3.235563167624456e-03 3.228022929479646e-03 3.220491779361285e-03 3.212969724272006e-03 3.205456783570964e-03 - 3.197952970426890e-03 3.190458290104943e-03 3.182972751519780e-03 3.175496366385864e-03 3.168029146873250e-03 - 3.160571096621216e-03 3.153122225636278e-03 3.145682555500280e-03 3.138252093348739e-03 3.130830843615626e-03 - 3.123418817816768e-03 3.116016027518625e-03 3.108622481356378e-03 3.101238183229207e-03 3.093863147897005e-03 - 3.086497392737253e-03 3.079140921752824e-03 3.071793741871484e-03 3.064455864252268e-03 3.057127299904285e-03 - 3.049808055146270e-03 3.042498134791386e-03 3.035197556645182e-03 3.027906333235584e-03 3.020624467536793e-03 - 3.013351968343262e-03 3.006088846580162e-03 2.998835112089031e-03 2.991590768047797e-03 2.984355822285627e-03 - 2.977130294631421e-03 2.969914192263928e-03 2.962707518230782e-03 2.955510282832787e-03 2.948322496039390e-03 - 2.941144165204636e-03 2.933975293458325e-03 2.926815893073326e-03 2.919665980487675e-03 2.912525559332239e-03 - 2.905394635071103e-03 2.898273217656210e-03 2.891161316595433e-03 2.884058936906487e-03 2.876966081111658e-03 - 2.869882766189157e-03 2.862809005041444e-03 2.855744798230348e-03 2.848690153100023e-03 2.841645079496137e-03 - 2.834609585256340e-03 2.827583673848185e-03 2.820567351490293e-03 2.813560634590312e-03 2.806563530531927e-03 - 2.799576041999259e-03 2.792598177467573e-03 2.785629945309582e-03 2.778671351607254e-03 2.771722398039775e-03 - 2.764783095014263e-03 2.757853459091809e-03 2.750933492568204e-03 2.744023198517816e-03 2.737122585640385e-03 - 2.730231662189404e-03 2.723350432970404e-03 2.716478899800820e-03 2.709617075896625e-03 2.702764973241287e-03 - 2.695922593060963e-03 2.689089940152226e-03 2.682267022316270e-03 2.675453847914084e-03 2.668650418902243e-03 - 2.661856738145520e-03 2.655072822033232e-03 2.648298678030288e-03 2.641534306206961e-03 2.634779712258937e-03 - 2.628034904058933e-03 2.621299888635041e-03 2.614574665771587e-03 2.607859242632423e-03 2.601153634957146e-03 - 2.594457844452072e-03 2.587771872555374e-03 2.581095727373358e-03 2.574429415266960e-03 2.567772939497474e-03 - 2.561126300777387e-03 2.554489510835181e-03 2.547862581281132e-03 2.541245510713479e-03 2.534638303078699e-03 - 2.528040966193904e-03 2.521453505493298e-03 2.514875922225054e-03 2.508308218200437e-03 2.501750407164573e-03 - 2.495202496081871e-03 2.488664484118587e-03 2.482136376281468e-03 2.475618178705269e-03 2.469109895957427e-03 - 2.462611527825166e-03 2.456123079328407e-03 2.449644563898542e-03 2.443175984269443e-03 2.436717340526153e-03 - 2.430268636964234e-03 2.423829879853036e-03 2.417401073311931e-03 2.410982215756923e-03 2.404573315098301e-03 - 2.398174382071132e-03 2.391785416912405e-03 2.385406421217447e-03 2.379037399546287e-03 2.372678357701878e-03 - 2.366329296305038e-03 2.359990214012962e-03 2.353661123666590e-03 2.347342032379030e-03 2.341032936953993e-03 - 2.334733840455562e-03 2.328444748068140e-03 2.322165663885325e-03 2.315896586946297e-03 2.309637519733881e-03 - 2.303388473653537e-03 2.297149451184649e-03 2.290920451297887e-03 2.284701476927273e-03 2.278492533074980e-03 - 2.272293622898508e-03 2.266104742447669e-03 2.259925897918875e-03 2.253757100645447e-03 2.247598348619136e-03 - 2.241449641489242e-03 2.235310983406359e-03 2.229182378556762e-03 2.223063827011661e-03 2.216955326220785e-03 - 2.210856885615230e-03 2.204768511855369e-03 2.198690202073136e-03 2.192621957162963e-03 2.186563780523993e-03 - 2.180515675851768e-03 2.174477640514074e-03 2.168449674335647e-03 2.162431789038673e-03 2.156423986093689e-03 - 2.150426261719325e-03 2.144438618887063e-03 2.138461061015507e-03 2.132493589319895e-03 2.126536199820428e-03 - 2.120588896234097e-03 2.114651688169617e-03 2.108724573757348e-03 2.102807551461262e-03 2.096900623831682e-03 - 2.091003792760502e-03 2.085117057433877e-03 2.079240415028002e-03 2.073373872799373e-03 2.067517436442142e-03 - 2.061671101563673e-03 2.055834867994772e-03 2.050008738194652e-03 2.044192713868095e-03 2.038386792128391e-03 - 2.032590971333173e-03 2.026805260662020e-03 2.021029661329869e-03 2.015264168518725e-03 2.009508783500123e-03 - 2.003763508166370e-03 1.998028342654997e-03 1.992303282805534e-03 1.986588330078225e-03 1.980883492165770e-03 - 1.975188767039759e-03 1.969504151730439e-03 1.963829647004430e-03 1.958165254218237e-03 1.952510971963634e-03 - 1.946866794889960e-03 1.941232728159857e-03 1.935608777640074e-03 1.929994938329363e-03 1.924391207914093e-03 - 1.918797587114099e-03 1.913214077256622e-03 1.907640674795718e-03 1.902077375557082e-03 1.896524186430478e-03 - 1.890981108949087e-03 1.885448138032121e-03 1.879925272541809e-03 1.874412513138102e-03 1.868909859971047e-03 - 1.863417306389931e-03 1.857934851379391e-03 1.852462503653811e-03 1.847000259754348e-03 1.841548114039762e-03 - 1.836106066817225e-03 1.830674118529854e-03 1.825252266916765e-03 1.819840505202892e-03 1.814438836319749e-03 - 1.809047265638602e-03 1.803665787133681e-03 1.798294397101445e-03 1.792933095135866e-03 1.787581880369786e-03 - 1.782240749155103e-03 1.776909697172910e-03 1.771588728179710e-03 1.766277842767543e-03 1.760977035675204e-03 - 1.755686304337379e-03 1.750405647484752e-03 1.745135063548007e-03 1.739874546386865e-03 1.734624093589025e-03 - 1.729383711586370e-03 1.724153396315838e-03 1.718933140719367e-03 1.713722944309894e-03 1.708522806163372e-03 - 1.703332722978997e-03 1.698152687791741e-03 1.692982700783420e-03 1.687822765464940e-03 1.682672875794938e-03 - 1.677533027054054e-03 1.672403217813849e-03 1.667283446525115e-03 1.662173708173832e-03 1.657073995739192e-03 - 1.651984312946546e-03 1.646904660364047e-03 1.641835029387390e-03 1.636775416468660e-03 1.631725820220986e-03 - 1.626686238226539e-03 1.621656663682810e-03 1.616637091835148e-03 1.611627526662728e-03 1.606627964700548e-03 - 1.601638398623349e-03 1.596658825754688e-03 1.591689243408400e-03 1.586729647378206e-03 1.581780030725023e-03 - 1.576840391697073e-03 1.571910732264727e-03 1.566991046477593e-03 1.562081328242421e-03 1.557181574037859e-03 - 1.552291781114454e-03 1.547411944138861e-03 1.542542055154552e-03 1.537682115822498e-03 1.532832126356767e-03 - 1.527992077470792e-03 1.523161963747274e-03 1.518341782422417e-03 1.513531530571088e-03 1.508731200913292e-03 - 1.503940786876937e-03 1.499160290964809e-03 1.494389709200610e-03 1.489629032745148e-03 1.484878257820629e-03 - 1.480137381279299e-03 1.475406398389162e-03 1.470685299850305e-03 1.465974082141071e-03 1.461272748080975e-03 - 1.456581290224651e-03 1.451899700275850e-03 1.447227974089072e-03 1.442566108566721e-03 1.437914097994959e-03 - 1.433271932504185e-03 1.428639611034298e-03 1.424017133356480e-03 1.419404490680891e-03 1.414801676491448e-03 - 1.410208686553135e-03 1.405625516589791e-03 1.401052158609908e-03 1.396488604511052e-03 1.391934855472548e-03 - 1.387390907364871e-03 1.382856750165021e-03 1.378332378783991e-03 1.373817788890047e-03 1.369312974750468e-03 - 1.364817927255285e-03 1.360332641059443e-03 1.355857116711623e-03 1.351391347026849e-03 1.346935323100728e-03 - 1.342489039284644e-03 1.338052491255308e-03 1.333625672740901e-03 1.329208572800934e-03 1.324801188462658e-03 - 1.320403519143769e-03 1.316015555822497e-03 1.311637290544184e-03 1.307268717472159e-03 1.302909831116118e-03 - 1.298560623326278e-03 1.294221085253892e-03 1.289891216124110e-03 1.285571011566486e-03 1.281260461060531e-03 - 1.276959557618139e-03 1.272668295740209e-03 1.268386669608614e-03 1.264114669618853e-03 1.259852288349743e-03 - 1.255599524419093e-03 1.251356371085625e-03 1.247122819189722e-03 1.242898861265979e-03 1.238684491359706e-03 - 1.234479702756933e-03 1.230284484841117e-03 1.226098832748256e-03 1.221922744434409e-03 1.217756210326720e-03 - 1.213599221362577e-03 1.209451770765583e-03 1.205313852635065e-03 1.201185458480448e-03 1.197066577985755e-03 - 1.192957208640432e-03 1.188857345511447e-03 1.184766976969275e-03 1.180686095693037e-03 1.176614695732404e-03 - 1.172552769621902e-03 1.168500307042727e-03 1.164457299537124e-03 1.160423745213695e-03 1.156399636114517e-03 - 1.152384961360659e-03 1.148379714206853e-03 1.144383887440774e-03 1.140397472403066e-03 1.136420458871837e-03 - 1.132452840804467e-03 1.128494614815977e-03 1.124545770440235e-03 1.120606297984056e-03 1.116676190709075e-03 - 1.112755440623707e-03 1.108844038267568e-03 1.104941973598277e-03 1.101049242215234e-03 1.097165838523137e-03 - 1.093291750933755e-03 1.089426970747485e-03 1.085571490835547e-03 1.081725303225761e-03 1.077888396808512e-03 - 1.074060761522748e-03 1.070242395009795e-03 1.066433289590875e-03 1.062633433332422e-03 1.058842817553080e-03 - 1.055061434373011e-03 1.051289275348505e-03 1.047526329409495e-03 1.043772588486000e-03 1.040028047931513e-03 - 1.036292698203525e-03 1.032566529042292e-03 1.028849531681517e-03 1.025141697676040e-03 1.021443017315572e-03 - 1.017753479165712e-03 1.014073077446178e-03 1.010401806565697e-03 1.006739654876394e-03 1.003086612170896e-03 - 9.994426698862881e-04 9.958078198244436e-04 9.921820510029489e-04 9.885653522799815e-04 9.849577193159157e-04 - 9.813591440739670e-04 9.777696142556011e-04 9.741891204675346e-04 9.706176542328248e-04 9.670552065524777e-04 - 9.635017651512704e-04 9.599573207794398e-04 9.564218691437683e-04 9.528953995809905e-04 9.493779002331982e-04 - 9.458693621672339e-04 9.423697766254766e-04 9.388791334439822e-04 9.353974200435674e-04 9.319246293443443e-04 - 9.284607555133966e-04 9.250057861419034e-04 9.215597102726345e-04 9.181225189615299e-04 9.146942031524666e-04 - 9.112747514066988e-04 9.078641516289516e-04 9.044623983719834e-04 9.010694834242857e-04 8.976853937790154e-04 - 8.943101192935385e-04 8.909436508104612e-04 8.875859786393426e-04 8.842370902316334e-04 8.808969751654204e-04 - 8.775656281905130e-04 8.742430385918343e-04 8.709291937982416e-04 8.676240840155020e-04 8.643276998573467e-04 - 8.610400308208924e-04 8.577610636611962e-04 8.544907899714905e-04 8.512292035626933e-04 8.479762917886125e-04 - 8.447320428739457e-04 8.414964471843920e-04 8.382694949325988e-04 8.350511744137459e-04 8.318414728923707e-04 - 8.286403836395943e-04 8.254478982373706e-04 8.222640032931049e-04 8.190886878204532e-04 8.159219419987107e-04 - 8.127637556794064e-04 8.096141160179775e-04 8.064730115089579e-04 8.033404360997527e-04 8.002163789609624e-04 - 7.971008268111541e-04 7.939937692507287e-04 7.908951962853333e-04 7.878050969946667e-04 7.847234577702081e-04 - 7.816502689905088e-04 7.785855239466778e-04 7.755292098590464e-04 7.724813142232633e-04 7.694418267842021e-04 - 7.664107372089749e-04 7.633880335334087e-04 7.603737023812342e-04 7.573677358642847e-04 7.543701253849379e-04 - 7.513808572285544e-04 7.483999196962093e-04 7.454273024026923e-04 7.424629947358947e-04 7.395069836664074e-04 - 7.365592567622367e-04 7.336198070174806e-04 7.306886236388442e-04 7.277656929130117e-04 7.248510036837761e-04 - 7.219445453636994e-04 7.190463067357669e-04 7.161562739946586e-04 7.132744364309508e-04 7.104007867132190e-04 - 7.075353120392018e-04 7.046779992824802e-04 7.018288375861283e-04 6.989878161882759e-04 6.961549229362052e-04 - 6.933301438820412e-04 6.905134700383686e-04 6.877048926511914e-04 6.849043978549774e-04 6.821119732944710e-04 - 6.793276080246700e-04 6.765512910034699e-04 6.737830090783149e-04 6.710227490756584e-04 6.682705030776122e-04 - 6.655262603091742e-04 6.627900067379164e-04 6.600617305924390e-04 6.573414207627890e-04 6.546290656955580e-04 - 6.519246513982958e-04 6.492281662548372e-04 6.465396024423735e-04 6.438589471596415e-04 6.411861867028291e-04 - 6.385213096762252e-04 6.358643049114898e-04 6.332151601148890e-04 6.305738609661260e-04 6.279403974635571e-04 - 6.253147606410383e-04 6.226969365620930e-04 6.200869123319087e-04 6.174846765257772e-04 6.148902176504979e-04 - 6.123035224628875e-04 6.097245772740803e-04 6.071533733723410e-04 6.045898999580564e-04 6.020341426510520e-04 - 5.994860891934145e-04 5.969457280748620e-04 5.944130474177512e-04 5.918880332091087e-04 5.893706730594447e-04 - 5.868609584534629e-04 5.843588766665737e-04 5.818644136544619e-04 5.793775576682911e-04 5.768982970317317e-04 - 5.744266191686133e-04 5.719625097277512e-04 5.695059578510202e-04 5.670569542308351e-04 5.646154849082753e-04 - 5.621815365284883e-04 5.597550972743215e-04 5.573361553519681e-04 5.549246974872960e-04 5.525207095632259e-04 - 5.501241820142805e-04 5.477351040267441e-04 5.453534610951853e-04 5.429792405131840e-04 5.406124304314462e-04 - 5.382530187447214e-04 5.359009913605971e-04 5.335563351904396e-04 5.312190411682156e-04 5.288890968140364e-04 - 5.265664878332606e-04 5.242512018091515e-04 5.219432267978740e-04 5.196425502978362e-04 5.173491576918976e-04 - 5.150630373381158e-04 5.127841797796618e-04 5.105125710953982e-04 5.082481974966798e-04 5.059910467933278e-04 - 5.037411069671739e-04 5.014983647643853e-04 4.992628057533249e-04 4.970344196034297e-04 4.948131954905409e-04 - 4.925991188614672e-04 4.903921766298550e-04 4.881923566574878e-04 4.859996466359864e-04 4.838140324815327e-04 - 4.816355005995136e-04 4.794640414647377e-04 4.772996426854546e-04 4.751422896755638e-04 4.729919697488023e-04 - 4.708486707166207e-04 4.687123799720691e-04 4.665830828962369e-04 4.644607671738101e-04 4.623454230212830e-04 - 4.602370366779194e-04 4.581355941018685e-04 4.560410828358216e-04 4.539534906171381e-04 4.518728041821612e-04 - 4.497990089033435e-04 4.477320938149108e-04 4.456720481170030e-04 4.436188572707195e-04 4.415725078895158e-04 - 4.395329875976124e-04 4.375002838422590e-04 4.354743826722610e-04 4.334552702201095e-04 4.314429363226086e-04 - 4.294373687059989e-04 4.274385527576286e-04 4.254464755700176e-04 4.234611247199864e-04 4.214824874479911e-04 - 4.195105492176435e-04 4.175452972239935e-04 4.155867214135851e-04 4.136348082067204e-04 4.116895433467350e-04 - 4.097509141339746e-04 4.078189081189173e-04 4.058935120995524e-04 4.039747114386321e-04 4.020624945699733e-04 - 4.001568506324645e-04 3.982577652062802e-04 3.963652246433777e-04 3.944792163840573e-04 3.925997278951708e-04 - 3.907267452820787e-04 3.888602542761684e-04 3.870002443827855e-04 3.851467035420477e-04 3.832996170232135e-04 - 3.814589716941001e-04 3.796247550166885e-04 3.777969542187427e-04 3.759755548771444e-04 3.741605437648361e-04 - 3.723519105456335e-04 3.705496418343326e-04 3.687537232626712e-04 3.669641420580878e-04 3.651808856652343e-04 - 3.634039408935104e-04 3.616332930379869e-04 3.598689301103073e-04 3.581108413327368e-04 3.563590123412032e-04 - 3.546134293224166e-04 3.528740796868620e-04 3.511409507353364e-04 3.494140287293094e-04 3.476932993968030e-04 - 3.459787517007610e-04 3.442703736842207e-04 3.425681507579447e-04 3.408720696736798e-04 3.391821178070990e-04 - 3.374982823340253e-04 3.358205489790399e-04 3.341489042294683e-04 3.324833375391577e-04 3.308238358267097e-04 - 3.291703846864138e-04 3.275229711235071e-04 3.258815824857735e-04 3.242462057388915e-04 3.226168264116891e-04 - 3.209934320343741e-04 3.193760116170641e-04 3.177645512713499e-04 3.161590371207419e-04 3.145594562690266e-04 - 3.129657961319975e-04 3.113780432227079e-04 3.097961831114660e-04 3.082202043645004e-04 3.066500952444524e-04 - 3.050858414009347e-04 3.035274294402161e-04 3.019748466354355e-04 3.004280802320956e-04 2.988871162192853e-04 - 2.973519409077311e-04 2.958225434173786e-04 2.942989109163873e-04 2.927810290941792e-04 2.912688849504159e-04 - 2.897624658129895e-04 2.882617587216531e-04 2.867667493909568e-04 2.852774250910157e-04 2.837937747837379e-04 - 2.823157848000407e-04 2.808434412718301e-04 2.793767313619733e-04 2.779156424588856e-04 2.764601612241833e-04 - 2.750102732798498e-04 2.735659669757869e-04 2.721272307826111e-04 2.706940504177620e-04 2.692664125118005e-04 - 2.678443044384447e-04 2.664277133531666e-04 2.650166254907073e-04 2.636110271946842e-04 2.622109073508727e-04 - 2.608162534146021e-04 2.594270512444905e-04 2.580432877716125e-04 2.566649503351083e-04 2.552920261463284e-04 - 2.539245011192165e-04 2.525623623480746e-04 2.512055988243127e-04 2.498541971146173e-04 2.485081433825346e-04 - 2.471674249383843e-04 2.458320291468696e-04 2.445019428356345e-04 2.431771519464020e-04 2.418576445147758e-04 - 2.405434090455539e-04 2.392344316436903e-04 2.379306989304936e-04 2.366321982706708e-04 2.353389171046539e-04 - 2.340508418959193e-04 2.327679588365217e-04 2.314902568213100e-04 2.302177235947735e-04 2.289503450019842e-04 - 2.276881081822984e-04 2.264310006278554e-04 2.251790095285085e-04 2.239321211178975e-04 2.226903224828012e-04 - 2.214536025966827e-04 2.202219483393713e-04 2.189953459440866e-04 2.177737827672056e-04 2.165572463172210e-04 - 2.153457236927424e-04 2.141392010208329e-04 2.129376661694288e-04 2.117411078009580e-04 2.105495123800498e-04 - 2.093628666254358e-04 2.081811579562958e-04 2.070043738711933e-04 2.058325011765904e-04 2.046655262979033e-04 - 2.035034378928387e-04 2.023462239716796e-04 2.011938707312936e-04 2.000463653117907e-04 1.989036953143001e-04 - 1.977658482429478e-04 1.966328105707422e-04 1.955045692837424e-04 1.943811134060168e-04 1.932624302421221e-04 - 1.921485062157297e-04 1.910393287336514e-04 1.899348854684124e-04 1.888351638115297e-04 1.877401500482506e-04 - 1.866498319949601e-04 1.855641985831636e-04 1.844832365124926e-04 1.834069326310023e-04 1.823352746298841e-04 - 1.812682501147551e-04 1.802058461455679e-04 1.791480493724017e-04 1.780948483852737e-04 1.770462314872484e-04 - 1.760021851824818e-04 1.749626967491274e-04 1.739277539439587e-04 1.728973444305181e-04 1.718714550470096e-04 - 1.708500728855944e-04 1.698331869571933e-04 1.688207849549946e-04 1.678128535713188e-04 1.668093803524777e-04 - 1.658103531111011e-04 1.648157594964937e-04 1.638255861976382e-04 1.628398210066413e-04 1.618584529166454e-04 - 1.608814690931768e-04 1.599088565742865e-04 1.589406031206167e-04 1.579766966509897e-04 1.570171246224424e-04 - 1.560618738321770e-04 1.551109328208930e-04 1.541642902068764e-04 1.532219328717612e-04 1.522838482661923e-04 - 1.513500243337891e-04 1.504204489591066e-04 1.494951093483970e-04 1.485739927662749e-04 1.476570882997282e-04 - 1.467443839796364e-04 1.458358667202351e-04 1.449315243896633e-04 1.440313449862068e-04 1.431353162531848e-04 - 1.422434254066872e-04 1.413556604013758e-04 1.404720102486319e-04 1.395924625558734e-04 1.387170046489957e-04 - 1.378456244430427e-04 1.369783100559194e-04 1.361150493062282e-04 1.352558293490397e-04 1.344006387024136e-04 - 1.335494662293593e-04 1.327022993333140e-04 1.318591256583063e-04 1.310199332689028e-04 1.301847103692820e-04 - 1.293534446013900e-04 1.285261234477974e-04 1.277027359881715e-04 1.268832706365997e-04 1.260677147052468e-04 - 1.252560562359565e-04 1.244482834803957e-04 1.236443845356053e-04 1.228443469528238e-04 1.220481588198588e-04 - 1.212558093699401e-04 1.204672865809282e-04 1.196825780471873e-04 1.189016720308052e-04 1.181245568536085e-04 - 1.173512205995857e-04 1.165816508484800e-04 1.158158362776897e-04 1.150537660210759e-04 1.142954277590100e-04 - 1.135408094568152e-04 1.127898995954114e-04 1.120426864956402e-04 1.112991581353023e-04 1.105593024093304e-04 - 1.098231085283700e-04 1.090905652465313e-04 1.083616601800625e-04 1.076363816399760e-04 1.069147182196831e-04 - 1.061966583782502e-04 1.054821899944032e-04 1.047713013150353e-04 1.040639818640637e-04 1.033602200082437e-04 - 1.026600035826387e-04 1.019633211976323e-04 1.012701615275282e-04 1.005805130149820e-04 9.989436355203399e-05 - 9.921170194739147e-05 9.853251765411631e-05 9.785679881782247e-05 9.718453366352614e-05 9.651571091087277e-05 - 9.585031930594751e-05 9.518834724915350e-05 9.452978284703146e-05 9.387461543789448e-05 9.322283420353250e-05 - 9.257442723618249e-05 9.192938310286574e-05 9.128769066247626e-05 9.064933872161225e-05 9.001431561187756e-05 - 8.938260983500139e-05 8.875421104519957e-05 8.812910809646098e-05 8.750728925694059e-05 8.688874335824857e-05 - 8.627345936363417e-05 8.566142611724158e-05 8.505263195150667e-05 8.444706587898619e-05 8.384471762172232e-05 - 8.324557578035348e-05 8.264962891132210e-05 8.205686604727953e-05 8.146727626544971e-05 8.088084838175318e-05 - 8.029757088191735e-05 7.971743327705584e-05 7.914042512047892e-05 7.856653495630607e-05 7.799575166346450e-05 - 7.742806441871695e-05 7.686346239245813e-05 7.630193435494130e-05 7.574346911053080e-05 7.518805653837606e-05 - 7.463568593117825e-05 7.408634594826592e-05 7.354002575090044e-05 7.299671464423979e-05 7.245640185167563e-05 - 7.191907614532941e-05 7.138472679150608e-05 7.085334380230530e-05 7.032491623916224e-05 6.979943301854977e-05 - 6.927688351841825e-05 6.875725716877753e-05 6.824054320182008e-05 6.772673050550591e-05 6.721580881996242e-05 - 6.670776807704407e-05 6.620259726868480e-05 6.570028562031883e-05 6.520082266140781e-05 6.470419793220322e-05 - 6.421040064958054e-05 6.371941996817583e-05 6.323124601185380e-05 6.274586851226631e-05 6.226327655003573e-05 - 6.178345963615301e-05 6.130640743984757e-05 6.083210957777482e-05 6.036055527561582e-05 5.989173409263222e-05 - 5.942563633391719e-05 5.896225154191688e-05 5.850156903007261e-05 5.804357852627766e-05 5.758826983099529e-05 - 5.713563260712647e-05 5.668565617514362e-05 5.623833053838233e-05 5.579364600051564e-05 5.535159201768813e-05 - 5.491215819134343e-05 5.447533442712218e-05 5.404111064124177e-05 5.360947650466450e-05 5.318042157160001e-05 - 5.275393622516995e-05 5.233001062811153e-05 5.190863431238880e-05 5.148979716458554e-05 5.107348923404401e-05 - 5.065970053025621e-05 5.024842074849432e-05 4.983963979263951e-05 4.943334827635427e-05 4.902953621108006e-05 - 4.862819332553702e-05 4.822930973793706e-05 4.783287562882953e-05 4.743888107972067e-05 4.704731588033618e-05 - 4.665817033540254e-05 4.627143510842172e-05 4.588710014690383e-05 4.550515545082771e-05 4.512559130332447e-05 - 4.474839802715817e-05 4.437356575264515e-05 4.400108444300858e-05 4.363094478314062e-05 4.326313737450849e-05 - 4.289765220307346e-05 4.253447954450777e-05 4.217360984935306e-05 4.181503354031293e-05 4.145874078526325e-05 - 4.110472186234567e-05 4.075296770939578e-05 4.040346881442376e-05 4.005621534517384e-05 3.971119780891244e-05 - 3.936840678851008e-05 3.902783280379881e-05 3.868946611492773e-05 3.835329736378580e-05 3.801931758461789e-05 - 3.768751721520911e-05 3.735788667634669e-05 3.703041665089796e-05 3.670509786268472e-05 3.638192090588934e-05 - 3.606087620758478e-05 3.574195476070656e-05 3.542514758568229e-05 3.511044516462031e-05 3.479783817623805e-05 - 3.448731747191980e-05 3.417887390941621e-05 3.387249813623169e-05 3.356818082938366e-05 3.326591326488256e-05 - 3.296568640239042e-05 3.266749086476883e-05 3.237131756688427e-05 3.207715751232477e-05 3.178500166911470e-05 - 3.149484077201404e-05 3.120666582870710e-05 3.092046825328168e-05 3.063623897047349e-05 3.035396883732847e-05 - 3.007364895961203e-05 2.979527048619034e-05 2.951882447255356e-05 2.924430180184470e-05 2.897169381596313e-05 - 2.870099196601076e-05 2.843218722351712e-05 2.816527069305565e-05 2.790023364581556e-05 2.763706736588794e-05 - 2.737576298520704e-05 2.711631161938774e-05 2.685870489191871e-05 2.660293422952212e-05 2.634899073350601e-05 - 2.609686574272242e-05 2.584655068622352e-05 2.559803697386157e-05 2.535131582907573e-05 2.510637865851451e-05 - 2.486321726016628e-05 2.462182305120829e-05 2.438218734168926e-05 2.414430166313400e-05 2.390815760058303e-05 - 2.367374667612129e-05 2.344106023464476e-05 2.321008999935892e-05 2.298082786356460e-05 2.275326527748312e-05 - 2.252739378233606e-05 2.230320509258137e-05 2.208069093512809e-05 2.185984291941186e-05 2.164065260635458e-05 - 2.142311199522572e-05 2.120721298028661e-05 2.099294714303281e-05 2.078030625998752e-05 2.056928220029127e-05 - 2.035986682231265e-05 2.015205183896797e-05 1.994582907956633e-05 1.974119073954575e-05 1.953812872162773e-05 - 1.933663479825456e-05 1.913670094979531e-05 1.893831919578259e-05 1.874148151575467e-05 1.854617976080873e-05 - 1.835240605058427e-05 1.816015268982217e-05 1.796941162992672e-05 1.778017486956627e-05 1.759243456762222e-05 - 1.740618289118282e-05 1.722141193137039e-05 1.703811372777776e-05 1.685628066375182e-05 1.667590509374455e-05 - 1.649697910104339e-05 1.631949489857415e-05 1.614344479286407e-05 1.596882111103627e-05 1.579561606259506e-05 - 1.562382191518076e-05 1.545343126338709e-05 1.528443649706141e-05 1.511682986511545e-05 1.495060379262073e-05 - 1.478575075387210e-05 1.462226320346460e-05 1.446013347627832e-05 1.429935410828208e-05 1.413991783947596e-05 - 1.398181711799591e-05 1.382504440087988e-05 1.366959229690567e-05 1.351545344207288e-05 1.336262041089977e-05 - 1.321108569966174e-05 1.306084210743495e-05 1.291188246012095e-05 1.276419932540445e-05 1.261778537439798e-05 - 1.247263337350260e-05 1.232873611168182e-05 1.218608628547451e-05 1.204467661277090e-05 1.190450010670460e-05 - 1.176554964839514e-05 1.162781797531038e-05 1.149129796332477e-05 1.135598253898601e-05 1.122186462622714e-05 - 1.108893706038782e-05 1.095719281332111e-05 1.082662505098182e-05 1.069722672643097e-05 1.056899077370047e-05 - 1.044191025341683e-05 1.031597825830204e-05 1.019118784797653e-05 1.006753201372614e-05 9.945003972957807e-06 - 9.823597003224701e-06 9.703304169766936e-06 9.584118614966616e-06 9.466033570975281e-06 9.349042284940899e-06 - 9.233137946012443e-06 9.118313747892748e-06 9.004563126071509e-06 8.891879438415634e-06 8.780255908737012e-06 - 8.669685879934477e-06 8.560162746518096e-06 8.451679906731882e-06 8.344230688978416e-06 8.237808513777729e-06 - 8.132406985376577e-06 8.028019552616531e-06 7.924639629701503e-06 7.822260741691212e-06 7.720876445763237e-06 - 7.620480284148957e-06 7.521065743540658e-06 7.422626477381218e-06 7.325156218634066e-06 7.228648532638821e-06 - 7.133097034958690e-06 7.038495423985100e-06 6.944837416133499e-06 6.852116691729515e-06 6.760326924607246e-06 - 6.669461983453847e-06 6.579515704432944e-06 6.490481806747385e-06 6.402354101863004e-06 6.315126452251840e-06 - 6.228792731669073e-06 6.143346764859859e-06 6.058782435540508e-06 5.975093791198315e-06 5.892274772590937e-06 - 5.810319279027480e-06 5.729221306547671e-06 5.648974882411472e-06 5.569574030477156e-06 5.491012732167998e-06 - 5.413285091010444e-06 5.336385298912571e-06 5.260307420244722e-06 5.185045547999291e-06 5.110593849728286e-06 - 5.036946516955677e-06 4.964097720721464e-06 4.892041619202182e-06 4.820772525961763e-06 4.750284753859853e-06 - 4.680572517390150e-06 4.611630102585562e-06 4.543451844884654e-06 4.476032095169469e-06 4.409365173309600e-06 - 4.343445435493855e-06 4.278267378107974e-06 4.213825432046252e-06 4.150113986510229e-06 4.087127510654963e-06 - 4.024860505544460e-06 3.963307478207591e-06 3.902462905546128e-06 3.842321351732513e-06 3.782877469285005e-06 - 3.724125818875267e-06 3.666060976275786e-06 3.608677584308628e-06 3.551970310325800e-06 3.495933813913828e-06 - 3.440562742860537e-06 3.385851865026623e-06 3.331795968547279e-06 3.278389763636986e-06 3.225628015585682e-06 - 3.173505536483180e-06 3.122017155106099e-06 3.071157684657154e-06 3.020921961442045e-06 2.971304937503200e-06 - 2.922301530764381e-06 2.873906622400171e-06 2.826115159163556e-06 2.778922119160790e-06 2.732322492500433e-06 - 2.686311250918327e-06 2.640883427466542e-06 2.596034137909800e-06 2.551758437600915e-06 2.508051388712647e-06 - 2.464908112415978e-06 2.422323753722291e-06 2.380293459852445e-06 2.338812372063220e-06 2.297875719562253e-06 - 2.257478763762930e-06 2.217616712073996e-06 2.178284811840686e-06 2.139478353112250e-06 2.101192645402220e-06 - 2.063422994293474e-06 2.026164721213360e-06 1.989413239181793e-06 1.953163950788084e-06 1.917412231009713e-06 - 1.882153506609316e-06 1.847383234461138e-06 1.813096887995954e-06 1.779289933937322e-06 1.745957881749227e-06 - 1.713096313387221e-06 1.680700776153704e-06 1.648766820412035e-06 1.617290047665242e-06 1.586266083282953e-06 - 1.555690561349229e-06 1.525559115412809e-06 1.495867444877275e-06 1.466611286844381e-06 1.437786342321971e-06 - 1.409388342689011e-06 1.381413059137875e-06 1.353856283643994e-06 1.326713811980504e-06 1.299981452903499e-06 - 1.273655087535907e-06 1.247730601634883e-06 1.222203862466376e-06 1.197070780161529e-06 1.172327293218336e-06 - 1.147969358200551e-06 1.123992934949297e-06 1.100394014305713e-06 1.077168647815731e-06 1.054312872343777e-06 - 1.031822727943270e-06 1.009694299029158e-06 9.879236928228051e-07 9.665070295488333e-07 9.454404356909418e-07 - 9.247200854784831e-07 9.043421911847067e-07 8.843029477247774e-07 8.645985728173436e-07 8.452253193362285e-07 - 8.261794626052351e-07 8.074572875932502e-07 7.890550921071068e-07 7.709692301619030e-07 7.531960701353248e-07 - 7.357319715620587e-07 7.185733287203112e-07 7.017165630618881e-07 6.851581162834306e-07 6.688944388625421e-07 - 6.529220052598067e-07 6.372373411274385e-07 6.218369717692920e-07 6.067174274527125e-07 5.918752755194360e-07 - 5.773071063798692e-07 5.630095271034721e-07 5.489791556312369e-07 5.352126455394792e-07 5.217066864180125e-07 - 5.084579644193884e-07 4.954631845887763e-07 4.827190834887087e-07 4.702224204045173e-07 4.579699684713550e-07 - 4.459585154334098e-07 4.341848919935187e-07 4.226459485782965e-07 4.113385363883691e-07 4.002595352312233e-07 - 3.894058504065020e-07 3.787744086301839e-07 3.683621500987016e-07 3.581660355932383e-07 3.481830676805770e-07 - 3.384102581524441e-07 3.288446273745833e-07 3.194832275224818e-07 3.103231330843525e-07 3.013614373207315e-07 - 2.925952486098954e-07 2.840217031010630e-07 2.756379695267500e-07 2.674412234106971e-07 2.594286576386206e-07 - 2.515974937029081e-07 2.439449754383926e-07 2.364683632309526e-07 2.291649345383248e-07 2.220320002407473e-07 - 2.150668931442167e-07 2.082669548865648e-07 2.016295514473211e-07 1.951520727682157e-07 1.888319311586693e-07 - 1.826665552837694e-07 1.766533931743509e-07 1.707899271779558e-07 1.650736547045015e-07 1.595020857916059e-07 - 1.540727581256184e-07 1.487832309302349e-07 1.436310837043274e-07 1.386139140291348e-07 1.337293426531939e-07 - 1.289750194034745e-07 1.243486077550924e-07 1.198477884856861e-07 1.154702687444825e-07 1.112137774078364e-07 - 1.070760615754017e-07 1.030548878714015e-07 9.914804983102429e-08 9.535336319532080e-08 9.166865877274502e-08 - 8.809178921148019e-08 8.462062987184363e-08 8.125307865123530e-08 7.798705169188094e-08 7.482048486743137e-08 - 7.175134265372113e-08 6.877760756933380e-08 6.589727849023001e-08 6.310837918621049e-08 6.040895419177239e-08 - 5.779706919084610e-08 5.527080986023133e-08 5.282828275733461e-08 5.046762055622123e-08 4.818697371034567e-08 - 4.598451068334482e-08 4.385842456607357e-08 4.180692971968811e-08 3.982825980405518e-08 3.792066966127786e-08 - 3.608243718277188e-08 3.431186206040581e-08 3.260726312426322e-08 3.096697968233847e-08 2.938937298745983e-08 - 2.787282684203093e-08 2.641574418968914e-08 2.501654849393015e-08 2.367368813134603e-08 2.238563078881267e-08 - 2.115086344400587e-08 1.996789606940446e-08 1.883525886916157e-08 1.775150390948272e-08 1.671520402936120e-08 - 1.572495208680648e-08 1.477936511938296e-08 1.387707990026544e-08 1.301675220490221e-08 1.219706138041649e-08 - 1.141670750179082e-08 1.067441065312196e-08 9.968913113355902e-09 9.298978133402818e-09 8.663390331238368e-09 - 8.060955677291694e-09 7.490500025975069e-09 6.950870854385858e-09 6.440937996309972e-09 5.959590797852082e-09 - 5.505739944416565e-09 5.078318901633865e-09 4.676280806472903e-09 4.298600029449081e-09 3.944272776496124e-09 - 3.612315204086912e-09 3.301765808464261e-09 3.011683971683484e-09 2.741149022073358e-09 2.489263438950313e-09 - 2.255150010734707e-09 2.037951439802415e-09 1.836833426869985e-09 1.650981924522248e-09 1.479603458288696e-09 - 1.321927088896133e-09 1.177201927023745e-09 1.044698361371603e-09 9.237089042804517e-10 8.135457713165132e-10 - 7.135428727606122e-10 6.230561233086797e-10 5.414610837010692e-10 4.681552957722881e-10 4.025579739718386e-10 - 3.441080911031397e-10 2.922668865200973e-10 2.465167169238545e-10 2.063598966733955e-10 1.713213823559041e-10 - 1.409467301732644e-10 1.148017117805301e-10 9.247489436372923e-11 7.357503403670199e-11 5.773147403071901e-11 - 4.459623415664643e-11 3.384125546419585e-11 2.515956035071991e-11 1.826656159304613e-11 1.289741553721677e-11 - 8.808852910154413e-12 5.779611749592996e-12 3.608107240050744e-12 2.114775563702074e-12 1.141629414770904e-12 - 5.504076981088132e-13 2.252028793998774e-13 7.135404618680312e-14 1.400208835054596e-14 2.858282411901289e-16 - 0.000000000000000e+00 3.280907692410757e+00 6.559093802140417e+00 9.834554467967374e+00 1.310728583537977e+01 - 1.637728405657552e+01 1.964454529046227e+01 2.290906570265743e+01 2.617084146548816e+01 2.942986875799139e+01 - 3.268614376591378e+01 3.593966268171175e+01 3.919042170455148e+01 4.243841704030890e+01 4.568364490156970e+01 - 4.892610150762930e+01 5.216578308449292e+01 5.540268586487547e+01 5.863680608820168e+01 6.186814000060598e+01 - 6.509668385493259e+01 6.832243391073550e+01 7.154538643427834e+01 7.476553769853463e+01 7.798288398318758e+01 - 8.119742157463018e+01 8.440914676596513e+01 8.761805585700493e+01 9.082414515427180e+01 9.402741097099775e+01 - 9.722784962712448e+01 1.004254574493035e+02 1.036202307708961e+02 1.068121659319733e+02 1.100012592793157e+02 - 1.131875071664140e+02 1.163709059534683e+02 1.195514520073887e+02 1.227291417017950e+02 1.259039714170167e+02 - 1.290759375400930e+02 1.322450364647731e+02 1.354112645915156e+02 1.385746183274891e+02 1.417350940865720e+02 - 1.448926882893522e+02 1.480473973631275e+02 1.511992177419055e+02 1.543481458664036e+02 1.574941781840487e+02 - 1.606373111489777e+02 1.637775412220371e+02 1.669148648707833e+02 1.700492785694823e+02 1.731807787991100e+02 - 1.763093620473519e+02 1.794350248086033e+02 1.825577635839695e+02 1.856775748812652e+02 1.887944552150149e+02 - 1.919084011064531e+02 1.950194090835239e+02 1.981274756808810e+02 2.012325974398883e+02 2.043347709086188e+02 - 2.074339926418558e+02 2.105302592010923e+02 2.136235671545306e+02 2.167139130770834e+02 2.198012935503726e+02 - 2.228857051627302e+02 2.259671445091978e+02 2.290456081915269e+02 2.321210928181784e+02 2.351935950043234e+02 - 2.382631113718425e+02 2.413296385493261e+02 2.443931731720744e+02 2.474537118820972e+02 2.505112513281143e+02 - 2.535657881655549e+02 2.566173190565586e+02 2.596658406699738e+02 2.627113496813596e+02 2.657538427729843e+02 - 2.687933166338259e+02 2.718297679595726e+02 2.748631934526219e+02 2.778935898220815e+02 2.809209537837683e+02 - 2.839452820602094e+02 2.869665713806416e+02 2.899848184810112e+02 2.930000201039745e+02 2.960121729988974e+02 - 2.990212739218558e+02 3.020273196356349e+02 3.050303069097302e+02 3.080302325203465e+02 3.110270932503987e+02 - 3.140208858895110e+02 3.170116072340180e+02 3.199992540869634e+02 3.229838232581013e+02 3.259653115638948e+02 - 3.289437158275174e+02 3.319190328788521e+02 3.348912595544916e+02 3.378603926977383e+02 3.408264291586049e+02 - 3.437893657938130e+02 3.467491994667945e+02 3.497059270476910e+02 3.526595454133537e+02 3.556100514473437e+02 - 3.585574420399318e+02 3.615017140880985e+02 3.644428644955341e+02 3.673808901726388e+02 3.703157880365222e+02 - 3.732475550110041e+02 3.761761880266134e+02 3.791016840205897e+02 3.820240399368814e+02 3.849432527261474e+02 - 3.878593193457557e+02 3.907722367597846e+02 3.936820019390219e+02 3.965886118609651e+02 3.994920635098217e+02 - 4.023923538765087e+02 4.052894799586530e+02 4.081834387605912e+02 4.110742272933696e+02 4.139618425747443e+02 - 4.168462816291812e+02 4.197275414878559e+02 4.226056191886540e+02 4.254805117761704e+02 4.283522163017099e+02 - 4.312207298232872e+02 4.340860494056267e+02 4.369481721201628e+02 4.398070950450389e+02 4.426628152651090e+02 - 4.455153298719365e+02 4.483646359637945e+02 4.512107306456656e+02 4.540536110292430e+02 4.568932742329288e+02 - 4.597297173818351e+02 4.625629376077841e+02 4.653929320493071e+02 4.682196978516460e+02 4.710432321667516e+02 - 4.738635321532851e+02 4.766805949766169e+02 4.794944178088276e+02 4.823049978287075e+02 4.851123322217564e+02 - 4.879164181801841e+02 4.907172529029099e+02 4.935148335955632e+02 4.963091574704831e+02 4.991002217467178e+02 - 5.018880236500261e+02 5.046725604128764e+02 5.074538292744463e+02 5.102318274806237e+02 5.130065522840063e+02 - 5.157780009439010e+02 5.185461707263250e+02 5.213110589040049e+02 5.240726627563774e+02 5.268309795695885e+02 - 5.295860066364945e+02 5.323377412566609e+02 5.350861807363634e+02 5.378313223885873e+02 5.405731635330272e+02 - 5.433117014960885e+02 5.460469336108854e+02 5.487788572172420e+02 5.515074696616928e+02 5.542327682974811e+02 - 5.569547504845609e+02 5.596734135895950e+02 5.623887549859570e+02 5.651007720537292e+02 5.678094621797045e+02 - 5.705148227573850e+02 5.732168511869830e+02 5.759155448754203e+02 5.786109012363282e+02 5.813029176900482e+02 - 5.839915916636313e+02 5.866769205908384e+02 5.893589019121401e+02 5.920375330747167e+02 5.947128115324583e+02 - 5.973847347459648e+02 6.000533001825459e+02 6.027185053162206e+02 6.053803476277183e+02 6.080388246044777e+02 - 6.106939337406476e+02 6.133456725370861e+02 6.159940385013617e+02 6.186390291477520e+02 6.212806419972447e+02 - 6.239188745775372e+02 6.265537244230364e+02 6.291851890748597e+02 6.318132660808333e+02 6.344379529954938e+02 - 6.370592473800871e+02 6.396771468025696e+02 6.422916488376064e+02 6.449027510665734e+02 6.475104510775553e+02 - 6.501147464653474e+02 6.527156348314542e+02 6.553131137840901e+02 6.579071809381794e+02 6.604978339153558e+02 - 6.630850703439634e+02 6.656688878590552e+02 6.682492841023947e+02 6.708262567224546e+02 6.733998033744177e+02 - 6.759699217201766e+02 6.785366094283333e+02 6.810998641742000e+02 6.836596836397980e+02 6.862160655138592e+02 - 6.887690074918247e+02 6.913185072758453e+02 6.938645625747821e+02 6.964071711042051e+02 6.989463305863949e+02 - 7.014820387503412e+02 7.040142933317441e+02 7.065430920730126e+02 7.090684327232666e+02 7.115903130383348e+02 - 7.141087307807558e+02 7.166236837197782e+02 7.191351696313601e+02 7.216431862981700e+02 7.241477315095852e+02 - 7.266488030616937e+02 7.291463987572921e+02 7.316405164058881e+02 7.341311538236981e+02 7.366183088336488e+02 - 7.391019792653765e+02 7.415821629552270e+02 7.440588577462564e+02 7.465320614882301e+02 7.490017720376235e+02 - 7.514679872576214e+02 7.539307050181191e+02 7.563899231957208e+02 7.588456396737411e+02 7.612978523422037e+02 - 7.637465590978424e+02 7.661917578441014e+02 7.686334464911333e+02 7.710716229558018e+02 7.735062851616793e+02 - 7.759374310390485e+02 7.783650585249019e+02 7.807891655629417e+02 7.832097501035795e+02 7.856268101039369e+02 - 7.880403435278453e+02 7.904503483458460e+02 7.928568225351897e+02 7.952597640798369e+02 7.976591709704585e+02 - 8.000550412044341e+02 8.024473727858536e+02 8.048361637255169e+02 8.072214120409334e+02 8.096031157563222e+02 - 8.119812729026120e+02 8.143558815174417e+02 8.167269396451593e+02 8.190944453368236e+02 8.214583966502021e+02 - 8.238187916497725e+02 8.261756284067224e+02 8.285289049989487e+02 8.308786195110586e+02 8.332247700343684e+02 - 8.355673546669050e+02 8.379063715134042e+02 8.402418186853124e+02 8.425736943007848e+02 8.449019964846872e+02 - 8.472267233685945e+02 8.495478730907921e+02 8.518654437962743e+02 8.541794336367457e+02 8.564898407706205e+02 - 8.587966633630226e+02 8.610998995857861e+02 8.633995476174539e+02 8.656956056432798e+02 8.679880718552264e+02 - 8.702769444519665e+02 8.725622216388828e+02 8.748439016280670e+02 8.771219826383219e+02 8.793964628951586e+02 - 8.816673406307990e+02 8.839346140841741e+02 8.861982815009252e+02 8.884583411334027e+02 8.907147912406675e+02 - 8.929676300884897e+02 8.952168559493493e+02 8.974624671024361e+02 8.997044618336495e+02 9.019428384355992e+02 - 9.041775952076036e+02 9.064087304556922e+02 9.086362424926032e+02 9.108601296377846e+02 9.130803902173951e+02 - 9.152970225643020e+02 9.175100250180832e+02 9.197193959250255e+02 9.219251336381268e+02 9.241272365170935e+02 - 9.263257029283417e+02 9.285205312449986e+02 9.307117198468995e+02 9.328992671205907e+02 9.350831714593277e+02 - 9.372634312630761e+02 9.394400449385104e+02 9.416130108990160e+02 9.437823275646871e+02 9.459479933623287e+02 - 9.481100067254541e+02 9.502683660942876e+02 9.524230699157629e+02 9.545741166435229e+02 9.567215047379214e+02 - 9.588652326660207e+02 9.610052989015940e+02 9.631417019251231e+02 9.652744402238004e+02 9.674035122915279e+02 - 9.695289166289172e+02 9.716506517432896e+02 9.737687161486764e+02 9.758831083658184e+02 9.779938269221661e+02 - 9.801008703518804e+02 9.822042371958310e+02 9.843039260015983e+02 9.863999353234714e+02 9.884922637224498e+02 - 9.905809097662435e+02 9.926658720292703e+02 9.947471490926598e+02 9.968247395442500e+02 9.988986419785891e+02 - 1.000968854996935e+03 1.003035377207256e+03 1.005098207224229e+03 1.007157343669241e+03 1.009212785170389e+03 - 1.011264530362480e+03 1.013312577887031e+03 1.015356926392268e+03 1.017397574533126e+03 1.019434520971252e+03 - 1.021467764375000e+03 1.023497303419437e+03 1.025523136786337e+03 1.027545263164185e+03 1.029563681248175e+03 - 1.031578389740212e+03 1.033589387348909e+03 1.035596672789591e+03 1.037600244784291e+03 1.039600102061752e+03 - 1.041596243357428e+03 1.043588667413480e+03 1.045577372978782e+03 1.047562358808916e+03 1.049543623666173e+03 - 1.051521166319557e+03 1.053494985544777e+03 1.055465080124256e+03 1.057431448847125e+03 1.059394090509224e+03 - 1.061353003913104e+03 1.063308187868025e+03 1.065259641189957e+03 1.067207362701581e+03 1.069151351232285e+03 - 1.071091605618170e+03 1.073028124702043e+03 1.074960907333424e+03 1.076889952368542e+03 1.078815258670335e+03 - 1.080736825108451e+03 1.082654650559248e+03 1.084568733905793e+03 1.086479074037864e+03 1.088385669851947e+03 - 1.090288520251241e+03 1.092187624145651e+03 1.094082980451794e+03 1.095974588092995e+03 1.097862445999292e+03 - 1.099746553107428e+03 1.101626908360861e+03 1.103503510709754e+03 1.105376359110983e+03 1.107245452528133e+03 - 1.109110789931497e+03 1.110972370298081e+03 1.112830192611597e+03 1.114684255862470e+03 1.116534559047833e+03 - 1.118381101171529e+03 1.120223881244111e+03 1.122062898282842e+03 1.123898151311694e+03 1.125729639361349e+03 - 1.127557361469200e+03 1.129381316679347e+03 1.131201504042604e+03 1.133017922616489e+03 1.134830571465235e+03 - 1.136639449659783e+03 1.138444556277782e+03 1.140245890403593e+03 1.142043451128286e+03 1.143837237549640e+03 - 1.145627248772146e+03 1.147413483907002e+03 1.149195942072117e+03 1.150974622392110e+03 1.152749523998310e+03 - 1.154520646028755e+03 1.156287987628192e+03 1.158051547948079e+03 1.159811326146585e+03 1.161567321388586e+03 - 1.163319532845669e+03 1.165067959696131e+03 1.166812601124979e+03 1.168553456323928e+03 1.170290524491405e+03 - 1.172023804832545e+03 1.173753296559195e+03 1.175478998889909e+03 1.177200911049953e+03 1.178919032271301e+03 - 1.180633361792637e+03 1.182343898859357e+03 1.184050642723563e+03 1.185753592644071e+03 1.187452747886402e+03 - 1.189148107722792e+03 1.190839671432183e+03 1.192527438300227e+03 1.194211407619287e+03 1.195891578688435e+03 - 1.197567950813455e+03 1.199240523306837e+03 1.200909295487783e+03 1.202574266682204e+03 1.204235436222721e+03 - 1.205892803448666e+03 1.207546367706079e+03 1.209196128347710e+03 1.210842084733019e+03 1.212484236228177e+03 - 1.214122582206062e+03 1.215757122046265e+03 1.217387855135084e+03 1.219014780865528e+03 1.220637898637316e+03 - 1.222257207856876e+03 1.223872707937346e+03 1.225484398298575e+03 1.227092278367119e+03 1.228696347576247e+03 - 1.230296605365935e+03 1.231893051182870e+03 1.233485684480449e+03 1.235074504718779e+03 1.236659511364675e+03 - 1.238240703891664e+03 1.239818081779981e+03 1.241391644516571e+03 1.242961391595090e+03 1.244527322515903e+03 - 1.246089436786084e+03 1.247647733919417e+03 1.249202213436398e+03 1.250752874864230e+03 1.252299717736826e+03 - 1.253842741594810e+03 1.255381945985516e+03 1.256917330462986e+03 1.258448894587972e+03 1.259976637927938e+03 - 1.261500560057056e+03 1.263020660556207e+03 1.264536939012984e+03 1.266049395021687e+03 1.267558028183329e+03 - 1.269062838105629e+03 1.270563824403019e+03 1.272060986696640e+03 1.273554324614341e+03 1.275043837790682e+03 - 1.276529525866934e+03 1.278011388491075e+03 1.279489425317796e+03 1.280963636008494e+03 1.282434020231280e+03 - 1.283900577660971e+03 1.285363307979095e+03 1.286822210873891e+03 1.288277286040307e+03 1.289728533179999e+03 - 1.291175952001336e+03 1.292619542219393e+03 1.294059303555960e+03 1.295495235739530e+03 1.296927338505312e+03 - 1.298355611595221e+03 1.299780054757883e+03 1.301200667748633e+03 1.302617450329516e+03 1.304030402269289e+03 - 1.305439523343415e+03 1.306844813334069e+03 1.308246272030136e+03 1.309643899227210e+03 1.311037694727594e+03 - 1.312427658340302e+03 1.313813789881058e+03 1.315196089172293e+03 1.316574556043153e+03 1.317949190329488e+03 - 1.319319991873862e+03 1.320686960525546e+03 1.322050096140523e+03 1.323409398581483e+03 1.324764867717829e+03 - 1.326116503425671e+03 1.327464305587830e+03 1.328808274093838e+03 1.330148408839934e+03 1.331484709729068e+03 - 1.332817176670901e+03 1.334145809581802e+03 1.335470608384850e+03 1.336791573009835e+03 1.338108703393256e+03 - 1.339421999478320e+03 1.340731461214948e+03 1.342037088559766e+03 1.343338881476113e+03 1.344636839934036e+03 - 1.345930963910293e+03 1.347221253388351e+03 1.348507708358388e+03 1.349790328817288e+03 1.351069114768650e+03 - 1.352344066222779e+03 1.353615183196692e+03 1.354882465714113e+03 1.356145913805479e+03 1.357405527507935e+03 - 1.358661306865335e+03 1.359913251928245e+03 1.361161362753938e+03 1.362405639406399e+03 1.363646081956323e+03 - 1.364882690481112e+03 1.366115465064880e+03 1.367344405798451e+03 1.368569512779358e+03 1.369790786111843e+03 - 1.371008225906858e+03 1.372221832282067e+03 1.373431605361840e+03 1.374637545277261e+03 1.375839652166119e+03 - 1.377037926172918e+03 1.378232367448867e+03 1.379422976151887e+03 1.380609752446609e+03 1.381792696504374e+03 - 1.382971808503231e+03 1.384147088627939e+03 1.385318537069970e+03 1.386486154027501e+03 1.387649939705423e+03 - 1.388809894315333e+03 1.389966018075540e+03 1.391118311211063e+03 1.392266773953630e+03 1.393411406541678e+03 - 1.394552209220356e+03 1.395689182241520e+03 1.396822325863737e+03 1.397951640352285e+03 1.399077125979150e+03 - 1.400198783023028e+03 1.401316611769325e+03 1.402430612510158e+03 1.403540785544351e+03 1.404647131177441e+03 - 1.405749649721672e+03 1.406848341496000e+03 1.407943206826088e+03 1.409034246044311e+03 1.410121459489754e+03 - 1.411204847508209e+03 1.412284410452182e+03 1.413360148680885e+03 1.414432062560241e+03 1.415500152462884e+03 - 1.416564418768155e+03 1.417624861862108e+03 1.418681482137504e+03 1.419734279993815e+03 1.420783255837224e+03 - 1.421828410080621e+03 1.422869743143608e+03 1.423907255452495e+03 1.424940947440303e+03 1.425970819546763e+03 - 1.426996872218314e+03 1.428019105908108e+03 1.429037521076003e+03 1.430052118188569e+03 1.431062897719085e+03 - 1.432069860147540e+03 1.433073005960632e+03 1.434072335651771e+03 1.435067849721075e+03 1.436059548675370e+03 - 1.437047433028196e+03 1.438031503299800e+03 1.439011760017138e+03 1.439988203713878e+03 1.440960834930396e+03 - 1.441929654213780e+03 1.442894662117825e+03 1.443855859203037e+03 1.444813246036631e+03 1.445766823192535e+03 - 1.446716591251382e+03 1.447662550800518e+03 1.448604702433997e+03 1.449543046752585e+03 1.450477584363755e+03 - 1.451408315881691e+03 1.452335241927287e+03 1.453258363128147e+03 1.454177680118583e+03 1.455093193539620e+03 - 1.456004904038989e+03 1.456912812271134e+03 1.457816918897206e+03 1.458717224585068e+03 1.459613730009291e+03 - 1.460506435851157e+03 1.461395342798658e+03 1.462280451546494e+03 1.463161762796076e+03 1.464039277255525e+03 - 1.464912995639670e+03 1.465782918670054e+03 1.466649047074924e+03 1.467511381589240e+03 1.468369922954673e+03 - 1.469224671919600e+03 1.470075629239112e+03 1.470922795675006e+03 1.471766171995790e+03 1.472605758976684e+03 - 1.473441557399614e+03 1.474273568053219e+03 1.475101791732846e+03 1.475926229240551e+03 1.476746881385102e+03 - 1.477563748981976e+03 1.478376832853358e+03 1.479186133828146e+03 1.479991652741944e+03 1.480793390437068e+03 - 1.481591347762545e+03 1.482385525574108e+03 1.483175924734204e+03 1.483962546111986e+03 1.484745390583318e+03 - 1.485524459030776e+03 1.486299752343644e+03 1.487071271417914e+03 1.487839017156289e+03 1.488602990468185e+03 - 1.489363192269722e+03 1.490119623483735e+03 1.490872285039765e+03 1.491621177874064e+03 1.492366302929595e+03 - 1.493107661156030e+03 1.493845253509749e+03 1.494579080953843e+03 1.495309144458115e+03 1.496035444999074e+03 - 1.496757983559942e+03 1.497476761130647e+03 1.498191778707831e+03 1.498903037294843e+03 1.499610537901742e+03 - 1.500314281545298e+03 1.501014269248990e+03 1.501710502043006e+03 1.502402980964245e+03 1.503091707056315e+03 - 1.503776681369534e+03 1.504457904960931e+03 1.505135378894241e+03 1.505809104239914e+03 1.506479082075105e+03 - 1.507145313483682e+03 1.507807799556220e+03 1.508466541390007e+03 1.509121540089038e+03 1.509772796764020e+03 - 1.510420312532367e+03 1.511064088518205e+03 1.511704125852369e+03 1.512340425672404e+03 1.512972989122564e+03 - 1.513601817353814e+03 1.514226911523828e+03 1.514848272796989e+03 1.515465902344391e+03 1.516079801343838e+03 - 1.516689970979842e+03 1.517296412443626e+03 1.517899126933124e+03 1.518498115652977e+03 1.519093379814537e+03 - 1.519684920635866e+03 1.520272739341736e+03 1.520856837163628e+03 1.521437215339733e+03 1.522013875114953e+03 - 1.522586817740897e+03 1.523156044475887e+03 1.523721556584951e+03 1.524283355339831e+03 1.524841442018975e+03 - 1.525395817907543e+03 1.525946484297405e+03 1.526493442487138e+03 1.527036693782033e+03 1.527576239494086e+03 - 1.528112080942007e+03 1.528644219451213e+03 1.529172656353831e+03 1.529697392988700e+03 1.530218430701367e+03 - 1.530735770844087e+03 1.531249414775829e+03 1.531759363862268e+03 1.532265619475790e+03 1.532768182995492e+03 - 1.533267055807180e+03 1.533762239303368e+03 1.534253734883281e+03 1.534741543952856e+03 1.535225667924735e+03 - 1.535706108218275e+03 1.536182866259539e+03 1.536655943481301e+03 1.537125341323045e+03 1.537591061230964e+03 - 1.538053104657961e+03 1.538511473063650e+03 1.538966167914353e+03 1.539417190683102e+03 1.539864542849641e+03 - 1.540308225900420e+03 1.540748241328602e+03 1.541184590634058e+03 1.541617275323370e+03 1.542046296909827e+03 - 1.542471656913432e+03 1.542893356860894e+03 1.543311398285634e+03 1.543725782727782e+03 1.544136511734178e+03 - 1.544543586858370e+03 1.544947009660620e+03 1.545346781707894e+03 1.545742904573873e+03 1.546135379838945e+03 - 1.546524209090207e+03 1.546909393921469e+03 1.547290935933248e+03 1.547668836732771e+03 1.548043097933976e+03 - 1.548413721157510e+03 1.548780708030729e+03 1.549144060187701e+03 1.549503779269201e+03 1.549859866922715e+03 - 1.550212324802440e+03 1.550561154569281e+03 1.550906357890854e+03 1.551247936441483e+03 1.551585891902203e+03 - 1.551920225960758e+03 1.552250940311604e+03 1.552578036655905e+03 1.552901516701533e+03 1.553221382163073e+03 - 1.553537634761818e+03 1.553850276225772e+03 1.554159308289647e+03 1.554464732694865e+03 1.554766551189559e+03 - 1.555064765528572e+03 1.555359377473454e+03 1.555650388792468e+03 1.555937801260586e+03 1.556221616659488e+03 - 1.556501836777564e+03 1.556778463409917e+03 1.557051498358356e+03 1.557320943431401e+03 1.557586800444283e+03 - 1.557849071218940e+03 1.558107757584023e+03 1.558362861374890e+03 1.558614384433611e+03 1.558862328608964e+03 - 1.559106695756438e+03 1.559347487738230e+03 1.559584706423249e+03 1.559818353687112e+03 1.560048431412147e+03 - 1.560274941487391e+03 1.560497885808591e+03 1.560717266278204e+03 1.560933084805396e+03 1.561145343306044e+03 - 1.561354043702732e+03 1.561559187924758e+03 1.561760777908126e+03 1.561958815595552e+03 1.562153302936461e+03 - 1.562344241886987e+03 1.562531634409975e+03 1.562715482474979e+03 1.562895788058264e+03 1.563072553142803e+03 - 1.563245779718279e+03 1.563415469781085e+03 1.563581625334326e+03 1.563744248387813e+03 1.563903340958068e+03 - 1.564058905068325e+03 1.564210942748526e+03 1.564359456035321e+03 1.564504446972073e+03 1.564645917608853e+03 - 1.564783870002442e+03 1.564918306216331e+03 1.565049228320720e+03 1.565176638392519e+03 1.565300538515349e+03 - 1.565420930779540e+03 1.565537817282130e+03 1.565651200126870e+03 1.565761081424219e+03 1.565867463291344e+03 - 1.565970347852125e+03 1.566069737237150e+03 1.566165633583717e+03 1.566258039035835e+03 1.566346955744220e+03 - 1.566432385866300e+03 1.566514331566212e+03 1.566592795014803e+03 1.566667778389629e+03 1.566739283874957e+03 - 1.566807313661764e+03 1.566871869947734e+03 1.566932954937263e+03 1.566990570841457e+03 1.567044719878131e+03 - 1.567095404271811e+03 1.567142626253729e+03 1.567186388061831e+03 1.567226691940771e+03 1.567263540141913e+03 - 1.567296934923331e+03 1.567326878549808e+03 1.567353373292836e+03 1.567376421430620e+03 1.567396025248071e+03 - 1.567412187036812e+03 1.567424909095176e+03 1.567434193728203e+03 1.567440043247646e+03 1.567442459971967e+03 - 1.567441446226336e+03 1.567437004342634e+03 1.567429136659453e+03 1.567417845522091e+03 1.567403133282561e+03 - 1.567385002299581e+03 1.567363454938582e+03 1.567338493571702e+03 1.567310120577791e+03 1.567278338342408e+03 - 1.567243149257822e+03 1.567204555723011e+03 1.567162560143663e+03 1.567117164932177e+03 1.567068372507660e+03 - 1.567016185295929e+03 1.566960605729512e+03 1.566901636247646e+03 1.566839279296277e+03 1.566773537328063e+03 - 1.566704412802369e+03 1.566631908185271e+03 1.566556025949555e+03 1.566476768574717e+03 1.566394138546961e+03 - 1.566308138359204e+03 1.566218770511069e+03 1.566126037508891e+03 1.566029941865714e+03 1.565930486101294e+03 - 1.565827672742092e+03 1.565721504321283e+03 1.565611983378751e+03 1.565499112461087e+03 1.565382894121595e+03 - 1.565263330920288e+03 1.565140425423888e+03 1.565014180205826e+03 1.564884597846246e+03 1.564751680931997e+03 - 1.564615432056643e+03 1.564475853820452e+03 1.564332948830408e+03 1.564186719700199e+03 1.564037169050227e+03 - 1.563884299507601e+03 1.563728113706142e+03 1.563568614286379e+03 1.563405803895550e+03 1.563239685187607e+03 - 1.563070260823207e+03 1.562897533469719e+03 1.562721505801220e+03 1.562542180498501e+03 1.562359560249057e+03 - 1.562173647747097e+03 1.561984445693539e+03 1.561791956796009e+03 1.561596183768845e+03 1.561397129333092e+03 - 1.561194796216507e+03 1.560989187153558e+03 1.560780304885418e+03 1.560568152159974e+03 1.560352731731822e+03 - 1.560134046362267e+03 1.559912098819323e+03 1.559686891877715e+03 1.559458428318879e+03 1.559226710930956e+03 - 1.558991742508803e+03 1.558753525853981e+03 1.558512063774766e+03 1.558267359086140e+03 1.558019414609795e+03 - 1.557768233174136e+03 1.557513817614273e+03 1.557256170772030e+03 1.556995295495938e+03 1.556731194641239e+03 - 1.556463871069885e+03 1.556193327650536e+03 1.555919567258564e+03 1.555642592776049e+03 1.555362407091783e+03 - 1.555079013101264e+03 1.554792413706704e+03 1.554502611817021e+03 1.554209610347846e+03 1.553913412221517e+03 - 1.553614020367084e+03 1.553311437720305e+03 1.553005667223649e+03 1.552696711826295e+03 1.552384574484129e+03 - 1.552069258159750e+03 1.551750765822466e+03 1.551429100448294e+03 1.551104265019960e+03 1.550776262526902e+03 - 1.550445095965265e+03 1.550110768337907e+03 1.549773282654394e+03 1.549432641931000e+03 1.549088849190713e+03 - 1.548741907463227e+03 1.548391819784946e+03 1.548038589198987e+03 1.547682218755173e+03 1.547322711510039e+03 - 1.546960070526829e+03 1.546594298875496e+03 1.546225399632705e+03 1.545853375881829e+03 1.545478230712950e+03 - 1.545099967222861e+03 1.544718588515066e+03 1.544334097699777e+03 1.543946497893915e+03 1.543555792221112e+03 - 1.543161983811711e+03 1.542765075802762e+03 1.542365071338026e+03 1.541961973567975e+03 1.541555785649789e+03 - 1.541146510747358e+03 1.540734152031283e+03 1.540318712678874e+03 1.539900195874149e+03 1.539478604807839e+03 - 1.539053942677383e+03 1.538626212686929e+03 1.538195418047336e+03 1.537761561976173e+03 1.537324647697717e+03 - 1.536884678442957e+03 1.536441657449592e+03 1.535995587962026e+03 1.535546473231378e+03 1.535094316515475e+03 - 1.534639121078853e+03 1.534180890192759e+03 1.533719627135150e+03 1.533255335190690e+03 1.532788017650757e+03 - 1.532317677813435e+03 1.531844318983518e+03 1.531367944472514e+03 1.530888557598635e+03 1.530406161686807e+03 - 1.529920760068664e+03 1.529432356082550e+03 1.528940953073517e+03 1.528446554393331e+03 1.527949163400464e+03 - 1.527448783460099e+03 1.526945417944129e+03 1.526439070231157e+03 1.525929743706494e+03 1.525417441762163e+03 - 1.524902167796895e+03 1.524383925216131e+03 1.523862717432025e+03 1.523338547863434e+03 1.522811419935932e+03 - 1.522281337081799e+03 1.521748302740024e+03 1.521212320356308e+03 1.520673393383061e+03 1.520131525279401e+03 - 1.519586719511159e+03 1.519038979550873e+03 1.518488308877793e+03 1.517934710977876e+03 1.517378189343791e+03 - 1.516818747474916e+03 1.516256388877339e+03 1.515691117063858e+03 1.515122935553979e+03 1.514551847873920e+03 - 1.513977857556607e+03 1.513400968141679e+03 1.512821183175479e+03 1.512238506211065e+03 1.511652940808203e+03 - 1.511064490533368e+03 1.510473158959745e+03 1.509878949667230e+03 1.509281866242427e+03 1.508681912278651e+03 - 1.508079091375926e+03 1.507473407140987e+03 1.506864863187277e+03 1.506253463134950e+03 1.505639210610869e+03 - 1.505022109248608e+03 1.504402162688449e+03 1.503779374577385e+03 1.503153748569118e+03 1.502525288324061e+03 - 1.501893997509335e+03 1.501259879798773e+03 1.500622938872914e+03 1.499983178419011e+03 1.499340602131025e+03 - 1.498695213709626e+03 1.498047016862194e+03 1.497396015302820e+03 1.496742212752304e+03 1.496085612938155e+03 - 1.495426219594593e+03 1.494764036462547e+03 1.494099067289655e+03 1.493431315830267e+03 1.492760785845442e+03 - 1.492087481102946e+03 1.491411405377259e+03 1.490732562449567e+03 1.490050956107769e+03 1.489366590146471e+03 - 1.488679468366991e+03 1.487989594577355e+03 1.487296972592300e+03 1.486601606233272e+03 1.485903499328426e+03 - 1.485202655712629e+03 1.484499079227457e+03 1.483792773721193e+03 1.483083743048834e+03 1.482371991072084e+03 - 1.481657521659358e+03 1.480940338685780e+03 1.480220446033183e+03 1.479497847590113e+03 1.478772547251821e+03 - 1.478044548920272e+03 1.477313856504138e+03 1.476580473918802e+03 1.475844405086357e+03 1.475105653935605e+03 - 1.474364224402058e+03 1.473620120427938e+03 1.472873345962177e+03 1.472123904960415e+03 1.471371801385004e+03 - 1.470617039205005e+03 1.469859622396187e+03 1.469099554941032e+03 1.468336840828730e+03 1.467571484055180e+03 - 1.466803488622991e+03 1.466032858541484e+03 1.465259597826687e+03 1.464483710501340e+03 1.463705200594890e+03 - 1.462924072143496e+03 1.462140329190026e+03 1.461353975784058e+03 1.460565015981880e+03 1.459773453846489e+03 - 1.458979293447591e+03 1.458182538861605e+03 1.457383194171656e+03 1.456581263467582e+03 1.455776750845927e+03 - 1.454969660409948e+03 1.454159996269611e+03 1.453347762541590e+03 1.452532963349272e+03 1.451715602822750e+03 - 1.450895685098830e+03 1.450073214321026e+03 1.449248194639563e+03 1.448420630211373e+03 1.447590525200101e+03 - 1.446757883776100e+03 1.445922710116434e+03 1.445085008404874e+03 1.444244782831905e+03 1.443402037594718e+03 - 1.442556776897215e+03 1.441709004950008e+03 1.440858725970420e+03 1.440005944182481e+03 1.439150663816933e+03 - 1.438292889111226e+03 1.437432624309523e+03 1.436569873662692e+03 1.435704641428314e+03 1.434836931870678e+03 - 1.433966749260786e+03 1.433094097876346e+03 1.432218982001777e+03 1.431341405928208e+03 1.430461373953479e+03 - 1.429578890382137e+03 1.428693959525441e+03 1.427806585701360e+03 1.426916773234569e+03 1.426024526456458e+03 - 1.425129849705122e+03 1.424232747325370e+03 1.423333223668719e+03 1.422431283093393e+03 1.421526929964331e+03 - 1.420620168653178e+03 1.419711003538289e+03 1.418799439004731e+03 1.417885479444278e+03 1.416969129255415e+03 - 1.416050392843337e+03 1.415129274619950e+03 1.414205779003866e+03 1.413279910420411e+03 1.412351673301618e+03 - 1.411421072086230e+03 1.410488111219700e+03 1.409552795154193e+03 1.408615128348581e+03 1.407675115268446e+03 - 1.406732760386080e+03 1.405788068180486e+03 1.404841043137375e+03 1.403891689749170e+03 1.402940012515001e+03 - 1.401986015940709e+03 1.401029704538846e+03 1.400071082828672e+03 1.399110155336157e+03 1.398146926593981e+03 - 1.397181401141535e+03 1.396213583524918e+03 1.395243478296938e+03 1.394271090017116e+03 1.393296423251680e+03 - 1.392319482573570e+03 1.391340272562432e+03 1.390358797804626e+03 1.389375062893219e+03 1.388389072427989e+03 - 1.387400831015423e+03 1.386410343268718e+03 1.385417613807782e+03 1.384422647259231e+03 1.383425448256391e+03 - 1.382426021439299e+03 1.381424371454700e+03 1.380420502956051e+03 1.379414420603515e+03 1.378406129063970e+03 - 1.377395633010999e+03 1.376382937124898e+03 1.375368046092671e+03 1.374350964608031e+03 1.373331697371403e+03 - 1.372310249089921e+03 1.371286624477428e+03 1.370260828254477e+03 1.369232865148331e+03 1.368202739892964e+03 - 1.367170457229056e+03 1.366136021904002e+03 1.365099438671902e+03 1.364060712293568e+03 1.363019847536522e+03 - 1.361976849174995e+03 1.360931721989928e+03 1.359884470768972e+03 1.358835100306487e+03 1.357783615403544e+03 - 1.356730020867921e+03 1.355674321514110e+03 1.354616522163310e+03 1.353556627643430e+03 1.352494642789090e+03 - 1.351430572441617e+03 1.350364421449050e+03 1.349296194666138e+03 1.348225896954338e+03 1.347153533181818e+03 - 1.346079108223457e+03 1.345002626960841e+03 1.343924094282267e+03 1.342843515082743e+03 1.341760894263984e+03 - 1.340676236734416e+03 1.339589547409177e+03 1.338500831210112e+03 1.337410093065776e+03 1.336317337911434e+03 - 1.335222570689062e+03 1.334125796347346e+03 1.333027019841677e+03 1.331926246134163e+03 1.330823480193616e+03 - 1.329718726995561e+03 1.328611991522230e+03 1.327503278762568e+03 1.326392593712228e+03 1.325279941373571e+03 - 1.324165326755672e+03 1.323048754874311e+03 1.321930230751983e+03 1.320809759417887e+03 1.319687345907936e+03 - 1.318562995264752e+03 1.317436712537665e+03 1.316308502782716e+03 1.315178371062656e+03 1.314046322446946e+03 - 1.312912362011755e+03 1.311776494839963e+03 1.310638726021160e+03 1.309499060651645e+03 1.308357503834428e+03 - 1.307214060679228e+03 1.306068736302473e+03 1.304921535827301e+03 1.303772464383560e+03 1.302621527107810e+03 - 1.301468729143317e+03 1.300314075640058e+03 1.299157571754721e+03 1.297999222650704e+03 1.296839033498112e+03 - 1.295677009473761e+03 1.294513155761180e+03 1.293347477550602e+03 1.292179980038974e+03 1.291010668429951e+03 - 1.289839547933899e+03 1.288666623767893e+03 1.287491901155716e+03 1.286315385327865e+03 1.285137081521542e+03 - 1.283956994980662e+03 1.282775130955849e+03 1.281591494704436e+03 1.280406091490466e+03 1.279218926584693e+03 - 1.278030005264579e+03 1.276839332814297e+03 1.275646914524728e+03 1.274452755693465e+03 1.273256861624810e+03 - 1.272059237629775e+03 1.270859889026079e+03 1.269658821138155e+03 1.268456039297144e+03 1.267251548840895e+03 - 1.266045355113969e+03 1.264837463467636e+03 1.263627879259876e+03 1.262416607855379e+03 1.261203654625543e+03 - 1.259989024948479e+03 1.258772724209004e+03 1.257554757798647e+03 1.256335131115646e+03 1.255113849564950e+03 - 1.253890918558217e+03 1.252666343513813e+03 1.251440129856817e+03 1.250212283019015e+03 1.248982808438904e+03 - 1.247751711561691e+03 1.246518997839292e+03 1.245284672730334e+03 1.244048741700151e+03 1.242811210220790e+03 - 1.241572083771006e+03 1.240331367836264e+03 1.239089067908740e+03 1.237845189487317e+03 1.236599738077590e+03 - 1.235352719191863e+03 1.234104138349150e+03 1.232854001075175e+03 1.231602312902370e+03 1.230349079369880e+03 - 1.229094306023557e+03 1.227837998415964e+03 1.226580162106373e+03 1.225320802660766e+03 1.224059925651835e+03 - 1.222797536658982e+03 1.221533641268318e+03 1.220268245072664e+03 1.219001353671552e+03 1.217732972671222e+03 - 1.216463107684624e+03 1.215191764331420e+03 1.213918948237977e+03 1.212644665037377e+03 1.211368920369408e+03 - 1.210091719880570e+03 1.208813069224072e+03 1.207532974059833e+03 1.206251440054480e+03 1.204968472881353e+03 - 1.203684078220499e+03 1.202398261758676e+03 1.201111029189351e+03 1.199822386212701e+03 1.198532338535615e+03 - 1.197240891871687e+03 1.195948051941225e+03 1.194653824471246e+03 1.193358215195474e+03 1.192061229854346e+03 - 1.190762874195007e+03 1.189463153971313e+03 1.188162074943828e+03 1.186859642879827e+03 1.185555863553295e+03 - 1.184250742744927e+03 1.182944286242125e+03 1.181636499839004e+03 1.180327389336388e+03 1.179016960541809e+03 - 1.177705219269511e+03 1.176392171340446e+03 1.175077822582277e+03 1.173762178829377e+03 1.172445245922827e+03 - 1.171127029710419e+03 1.169807536046655e+03 1.168486770792745e+03 1.167164739816612e+03 1.165841448992886e+03 - 1.164516904202907e+03 1.163191111334726e+03 1.161864076283103e+03 1.160535804949508e+03 1.159206303242120e+03 - 1.157875577075829e+03 1.156543632372233e+03 1.155210475059642e+03 1.153876111073074e+03 1.152540546354257e+03 - 1.151203786851631e+03 1.149865838520342e+03 1.148526707322247e+03 1.147186399225916e+03 1.145844920206624e+03 - 1.144502276246358e+03 1.143158473333815e+03 1.141813517464402e+03 1.140467414640234e+03 1.139120170870139e+03 - 1.137771792169650e+03 1.136422284561014e+03 1.135071654073185e+03 1.133719906741829e+03 1.132367048609320e+03 - 1.131013085724743e+03 1.129658024143891e+03 1.128301869929270e+03 1.126944629150092e+03 1.125586307882280e+03 - 1.124226912208469e+03 1.122866448218001e+03 1.121504922006928e+03 1.120142339678013e+03 1.118778707340729e+03 - 1.117414031111256e+03 1.116048317112488e+03 1.114681571474025e+03 1.113313800332179e+03 1.111945009829970e+03 - 1.110575206117129e+03 1.109204395350097e+03 1.107832583692024e+03 1.106459777312770e+03 1.105085982388904e+03 - 1.103711205103706e+03 1.102335451647166e+03 1.100958728215983e+03 1.099581041013564e+03 1.098202396250028e+03 - 1.096822800142205e+03 1.095442258913632e+03 1.094060778794555e+03 1.092678366021934e+03 1.091295026839436e+03 - 1.089910767497437e+03 1.088525594253023e+03 1.087139513369993e+03 1.085752531118851e+03 1.084364653776815e+03 - 1.082975887627809e+03 1.081586238962469e+03 1.080195714078142e+03 1.078804319278880e+03 1.077412060875450e+03 - 1.076018945185327e+03 1.074624978532693e+03 1.073230167248444e+03 1.071834517670182e+03 1.070438036142223e+03 - 1.069040729015589e+03 1.067642602648012e+03 1.066243663403937e+03 1.064843917654515e+03 1.063443371777609e+03 - 1.062042032157791e+03 1.060639905186343e+03 1.059236997261256e+03 1.057833314787232e+03 1.056428864175682e+03 - 1.055023651844726e+03 1.053617684219196e+03 1.052210967730631e+03 1.050803508817282e+03 1.049395313897890e+03 - 1.047986388534756e+03 1.046576737255851e+03 1.045166364529164e+03 1.043755274824231e+03 1.042343472612131e+03 - 1.040930962365484e+03 1.039517748558457e+03 1.038103835666756e+03 1.036689228167636e+03 1.035273930539893e+03 - 1.033857947263865e+03 1.032441282821436e+03 1.031023941696033e+03 1.029605928372625e+03 1.028187247337727e+03 - 1.026767903079397e+03 1.025347900087235e+03 1.023927242852386e+03 1.022505935867538e+03 1.021083983626923e+03 - 1.019661390626317e+03 1.018238161363038e+03 1.016814300335948e+03 1.015389812045455e+03 1.013964700993507e+03 - 1.012538971683598e+03 1.011112628620765e+03 1.009685676311588e+03 1.008258119264191e+03 1.006829961988242e+03 - 1.005401208994952e+03 1.003971864797076e+03 1.002541933908912e+03 1.001111420846301e+03 9.996803301266303e+02 - 9.982486662688275e+02 9.968164337933661e+02 9.953836372222621e+02 9.939502810790750e+02 9.925163698889086e+02 - 9.910819081784098e+02 9.896469004757686e+02 9.882113513107199e+02 9.867752652145410e+02 9.853386467200531e+02 - 9.839015003616214e+02 9.824638306751541e+02 9.810256421981031e+02 9.795869394694643e+02 9.781477270297768e+02 - 9.767080094211232e+02 9.752677911871300e+02 9.738270768729670e+02 9.723858710253478e+02 9.709441781925295e+02 - 9.695020029243127e+02 9.680593497720415e+02 9.666162232886040e+02 9.651726280284314e+02 9.637285685474986e+02 - 9.622840494033246e+02 9.608390751549712e+02 9.593936503630440e+02 9.579477795896925e+02 9.565014673986094e+02 - 9.550547183550314e+02 9.536075370257383e+02 9.521599279790540e+02 9.507118957848456e+02 9.492634450145238e+02 - 9.478145802410424e+02 9.463653060389005e+02 9.449156269841388e+02 9.434655476543426e+02 9.420150726286407e+02 - 9.405642064877048e+02 9.391129538137513e+02 9.376613191905399e+02 9.362093072033728e+02 9.347569224390970e+02 - 9.333041694861028e+02 9.318510529343232e+02 9.303975773752362e+02 9.289437474018629e+02 9.274895676087672e+02 - 9.260350425920570e+02 9.245801769493847e+02 9.231249752799448e+02 9.216694421844763e+02 9.202135822652619e+02 - 9.187574001261273e+02 9.173009003724419e+02 9.158440876111187e+02 9.143869664506148e+02 9.129295415009306e+02 - 9.114718173736089e+02 9.100137986817383e+02 9.085554900399494e+02 9.070968960644165e+02 9.056380213728581e+02 - 9.041788705845360e+02 9.027194483202552e+02 9.012597592023648e+02 8.997998078547574e+02 8.983395989028686e+02 - 8.968791369736786e+02 8.954184266957105e+02 8.939574726990309e+02 8.924962796152502e+02 8.910348520775226e+02 - 8.895731947205452e+02 8.881113121805595e+02 8.866492090953504e+02 8.851868901042455e+02 8.837243598481174e+02 - 8.822616229693809e+02 8.807986841119955e+02 8.793355479214636e+02 8.778722190448314e+02 8.764087021306887e+02 - 8.749450018291686e+02 8.734811227919481e+02 8.720170696722481e+02 8.705528471248323e+02 8.690884598060085e+02 - 8.676239123736278e+02 8.661592094870851e+02 8.646943558073189e+02 8.632293559968109e+02 8.617642147195870e+02 - 8.602989366412162e+02 8.588335264288111e+02 8.573679887510280e+02 8.559023282780669e+02 8.544365496816713e+02 - 8.529706576351281e+02 8.515046568132680e+02 8.500385518924651e+02 8.485723475506371e+02 8.471060484672456e+02 - 8.456396593232956e+02 8.441731848013352e+02 8.427066295854568e+02 8.412399983612960e+02 8.397732958160319e+02 - 8.383065266383875e+02 8.368396955186294e+02 8.353728071485672e+02 8.339058662215547e+02 8.324388774324890e+02 - 8.309718454778108e+02 8.295047750555044e+02 8.280376708650979e+02 8.265705376076626e+02 8.251033799858133e+02 - 8.236362027037090e+02 8.221690104670519e+02 8.207018079830875e+02 8.192345999606056e+02 8.177673911099388e+02 - 8.163001861429635e+02 8.148329897731001e+02 8.133658067153123e+02 8.118986416861073e+02 8.104314994035359e+02 - 8.089643845871925e+02 8.074973019582153e+02 8.060302562392853e+02 8.045632521546285e+02 8.030962944300132e+02 - 8.016293877927517e+02 8.001625369717000e+02 7.986957466972576e+02 7.972290217013673e+02 7.957623667175162e+02 - 7.942957864807344e+02 7.928292857275953e+02 7.913628691962167e+02 7.898965416262595e+02 7.884303077589279e+02 - 7.869641723369706e+02 7.854981401046790e+02 7.840322158078881e+02 7.825664041939773e+02 7.811007100118686e+02 - 7.796351380120283e+02 7.781696929464658e+02 7.767043795687346e+02 7.752392026339312e+02 7.737741668986956e+02 - 7.723092771212124e+02 7.708445380612087e+02 7.693799544799557e+02 7.679155311402681e+02 7.664512728065041e+02 - 7.649871842445651e+02 7.635232702218972e+02 7.620595355074889e+02 7.605959848718730e+02 7.591326230871256e+02 - 7.576694549268664e+02 7.562064851662584e+02 7.547437185820088e+02 7.532811599523681e+02 7.518188140571300e+02 - 7.503566856776325e+02 7.488947795967565e+02 7.474331005989271e+02 7.459716534701122e+02 7.445104429978242e+02 - 7.430494739711182e+02 7.415887511805935e+02 7.401282794183929e+02 7.386680634782024e+02 7.372081081552518e+02 - 7.357484182463149e+02 7.342889985497084e+02 7.328298538652926e+02 7.313709889944722e+02 7.299124087401947e+02 - 7.284541179069513e+02 7.269961213007771e+02 7.255384237292504e+02 7.240810300014931e+02 7.226239449281712e+02 - 7.211671733214938e+02 7.197107199952134e+02 7.182545897646269e+02 7.167987874465738e+02 7.153433178594373e+02 - 7.138881858231457e+02 7.124333961591685e+02 7.109789536905207e+02 7.095248632417597e+02 7.080711296389870e+02 - 7.066177577098478e+02 7.051647522835304e+02 7.037121181907675e+02 7.022598602638342e+02 7.008079833365500e+02 - 6.993564922442782e+02 6.979053918239249e+02 6.964546869139400e+02 6.950043823543177e+02 6.935544829865950e+02 - 6.921049936538523e+02 6.906559192007142e+02 6.892072644733491e+02 6.877590343194680e+02 6.863112335883264e+02 - 6.848638671307228e+02 6.834169397989994e+02 6.819704564470420e+02 6.805244219302806e+02 6.790788411056876e+02 - 6.776337188317796e+02 6.761890599686175e+02 6.747448693778041e+02 6.733011519224871e+02 6.718579124673579e+02 - 6.704151558786504e+02 6.689728870241429e+02 6.675311107731571e+02 6.660898319965579e+02 6.646490555667547e+02 - 6.632087863576994e+02 6.617690292448882e+02 6.603297891053608e+02 6.588910708177000e+02 6.574528792620325e+02 - 6.560152193200289e+02 6.545780958749028e+02 6.531415138114120e+02 6.517054780158572e+02 6.502699933760831e+02 - 6.488350647814780e+02 6.474006971229736e+02 6.459668952930450e+02 6.445336641857116e+02 6.431010086965356e+02 - 6.416689337226230e+02 6.402374441626239e+02 6.388065449167315e+02 6.373762408866819e+02 6.359465369757564e+02 - 6.345174380887786e+02 6.330889491321157e+02 6.316610750136796e+02 6.302338206429247e+02 6.288071909308491e+02 - 6.273811907899951e+02 6.259558251344477e+02 6.245310988798360e+02 6.231070169433332e+02 6.216835842436550e+02 - 6.202608057010611e+02 6.188386862373554e+02 6.174172307758844e+02 6.159964442415383e+02 6.145763315607522e+02 - 6.131568976615030e+02 6.117381474733122e+02 6.103200859272448e+02 6.089027179559087e+02 6.074860484934565e+02 - 6.060700824755835e+02 6.046548248395288e+02 6.032402805240755e+02 6.018264544695495e+02 6.004133516178208e+02 - 5.990009769123031e+02 5.975893352979532e+02 5.961784317212720e+02 5.947682711303036e+02 5.933588584746357e+02 - 5.919501987053994e+02 5.905422967752705e+02 5.891351576384668e+02 5.877287862507508e+02 5.863231875694282e+02 - 5.849183665533477e+02 5.835143281629030e+02 5.821110773600302e+02 5.807086191082091e+02 5.793069583724634e+02 - 5.779061001193606e+02 5.765060493170109e+02 5.751068109350690e+02 5.737083899447330e+02 5.723107913187440e+02 - 5.709140200313871e+02 5.695180810584912e+02 5.681229793774282e+02 5.667287199671144e+02 5.653353078080089e+02 - 5.639427478821145e+02 5.625510451729782e+02 5.611602046656897e+02 5.597702313468828e+02 5.583811302047351e+02 - 5.569929062289672e+02 5.556055644108436e+02 5.542191097431725e+02 5.528335472203050e+02 5.514488818381369e+02 - 5.500651185941068e+02 5.486822624871968e+02 5.473003185179330e+02 5.459192916883851e+02 5.445391870021655e+02 - 5.431600094644319e+02 5.417817640818839e+02 5.404044558627653e+02 5.390280898168637e+02 5.376526709555103e+02 - 5.362782042915790e+02 5.349046948394886e+02 5.335321476152006e+02 5.321605676362202e+02 5.307899599215965e+02 - 5.294203294919217e+02 5.280516813693320e+02 5.266840205775071e+02 5.253173521416702e+02 5.239516810885877e+02 - 5.225870124465707e+02 5.212233512454725e+02 5.198607025166908e+02 5.184990712931668e+02 5.171384626093851e+02 - 5.157788815013741e+02 5.144203330067055e+02 5.130628221644946e+02 5.117063540154008e+02 5.103509336016263e+02 - 5.089965659669175e+02 5.076432561565640e+02 5.062910092173990e+02 5.049398301977998e+02 5.035897241476866e+02 - 5.022406961185235e+02 5.008927511633182e+02 4.995458943366220e+02 4.982001306945292e+02 4.968554652946787e+02 - 4.955119031962524e+02 4.941694494599757e+02 4.928281091481178e+02 4.914878873244913e+02 4.901487890544524e+02 - 4.888108194049014e+02 4.874739834442815e+02 4.861382862425793e+02 4.848037328713260e+02 4.834703284035954e+02 - 4.821380779140055e+02 4.808069864787175e+02 4.794770591754360e+02 4.781483010834104e+02 4.768207172834317e+02 - 4.754943128578365e+02 4.741690928905032e+02 4.728450624668552e+02 4.715222266738587e+02 4.702005906000235e+02 - 4.688801593354034e+02 4.675609379715956e+02 4.662429316017405e+02 4.649261453205227e+02 4.636105842241698e+02 - 4.622962534104534e+02 4.609831579786886e+02 4.596713030297340e+02 4.583606936659914e+02 4.570513349914071e+02 - 4.557432321114703e+02 4.544363901332138e+02 4.531308141652141e+02 4.518265093175915e+02 4.505234807020092e+02 - 4.492217334316751e+02 4.479212726213398e+02 4.466221033872973e+02 4.453242308473862e+02 4.440276601209875e+02 - 4.427323963290266e+02 4.414384445939725e+02 4.401458100398370e+02 4.388544977921764e+02 4.375645129780900e+02 - 4.362758607262207e+02 4.349885461667554e+02 4.337025744314242e+02 4.324179506535007e+02 4.311346799678025e+02 - 4.298527675106906e+02 4.285722184200691e+02 4.272930378353866e+02 4.260152308976346e+02 4.247388027493482e+02 - 4.234637585346064e+02 4.221901033990317e+02 4.209178424897899e+02 4.196469809555908e+02 4.183775239466873e+02 - 4.171094766148764e+02 4.158428441134982e+02 4.145776315974367e+02 4.133138442231195e+02 4.120514871485177e+02 - 4.107905655331455e+02 4.095310845380616e+02 4.082730493258674e+02 4.070164650607085e+02 4.057613369082738e+02 - 4.045076700357962e+02 4.032554696120511e+02 4.020047408073589e+02 4.007554887935824e+02 3.995077187441286e+02 - 3.982614358339480e+02 3.970166452395346e+02 3.957733521389259e+02 3.945315617117033e+02 3.932912791389912e+02 - 3.920525096034583e+02 3.908152582893162e+02 3.895795303823206e+02 3.883453310697706e+02 3.871126655405087e+02 - 3.858815389849212e+02 3.846519565949380e+02 3.834239235640323e+02 3.821974450872211e+02 3.809725263610652e+02 - 3.797491725836686e+02 3.785273889546788e+02 3.773071806752873e+02 3.760885529482291e+02 3.748715109777822e+02 - 3.736560599697692e+02 3.724422051315553e+02 3.712299516720498e+02 3.700193048017055e+02 3.688102697325187e+02 - 3.676028516780295e+02 3.663970558533210e+02 3.651928874750207e+02 3.639903517612993e+02 3.627894539318706e+02 - 3.615901992079928e+02 3.603925928124674e+02 3.591966399696389e+02 3.580023459053963e+02 3.568097158471716e+02 - 3.556187550239405e+02 3.544294686662223e+02 3.532418620060801e+02 3.520559402771199e+02 3.508717087144923e+02 - 3.496891725548904e+02 3.485083370365518e+02 3.473292073992571e+02 3.461517888843309e+02 3.449760867346407e+02 - 3.438021061945983e+02 3.426298525101589e+02 3.414593309288210e+02 3.402905466996269e+02 3.391235050731623e+02 - 3.379582113015570e+02 3.367946706384836e+02 3.356328883391590e+02 3.344728696603431e+02 3.333146198603399e+02 - 3.321581441989965e+02 3.310034479377038e+02 3.298505363393963e+02 3.286994146685523e+02 3.275500881911931e+02 - 3.264025621748842e+02 3.252568418887342e+02 3.241129326033955e+02 3.229708395910641e+02 3.218305681254797e+02 - 3.206921234819250e+02 3.195555109372272e+02 3.184207357697562e+02 3.172878032594259e+02 3.161567186876940e+02 - 3.150274873375612e+02 3.139001144935722e+02 3.127746054418153e+02 3.116509654699221e+02 3.105291998670680e+02 - 3.094093139239718e+02 3.082913129328962e+02 3.071752021876472e+02 3.060609869835743e+02 3.049486726175709e+02 - 3.038382643880739e+02 3.027297675950632e+02 3.016231875400634e+02 3.005185295261418e+02 2.994157988579094e+02 - 2.983150008415209e+02 2.972161407846750e+02 2.961192239966130e+02 2.950242557881208e+02 2.939312414715272e+02 - 2.928401863607048e+02 2.917510957710699e+02 2.906639750195822e+02 2.895788294247451e+02 2.884956643066055e+02 - 2.874144849867538e+02 2.863352967883243e+02 2.852581050359946e+02 2.841829150559857e+02 2.831097321760628e+02 - 2.820385617255341e+02 2.809694090352515e+02 2.799022794376108e+02 2.788371782665511e+02 2.777741108575549e+02 - 2.767130825476488e+02 2.756540986754025e+02 2.745971645809293e+02 2.735422856058867e+02 2.724894670934750e+02 - 2.714387143884384e+02 2.703900328370648e+02 2.693434277871856e+02 2.682989045881756e+02 2.672564685909533e+02 - 2.662161251479810e+02 2.651778796132642e+02 2.641417373423522e+02 2.631077036923379e+02 2.620757840218578e+02 - 2.610459836910915e+02 2.600183080617631e+02 2.589927624971394e+02 2.579693523620314e+02 2.569480830227931e+02 - 2.559289598473227e+02 2.549119882050614e+02 2.538971734669946e+02 2.528845210056507e+02 2.518740361951020e+02 - 2.508657244109642e+02 2.498595910303967e+02 2.488556414321026e+02 2.478538809963281e+02 2.468543151048638e+02 - 2.458569491410431e+02 2.448617884897432e+02 2.438688385373852e+02 2.428781046719333e+02 2.418895922828956e+02 - 2.409033067613238e+02 2.399192534998131e+02 2.389374378925019e+02 2.379578653350729e+02 2.369805412247519e+02 - 2.360054709603084e+02 2.350326599420553e+02 2.340621135718494e+02 2.330938372530911e+02 2.321278363907239e+02 - 2.311641163912353e+02 2.302026826626565e+02 2.292435406145617e+02 2.282866956580692e+02 2.273321532058407e+02 - 2.263799186720815e+02 2.254299974725404e+02 2.244823950245099e+02 2.235371167468261e+02 2.225941680598685e+02 - 2.216535543855603e+02 2.207152811473682e+02 2.197793537703028e+02 2.188457776809178e+02 2.179145583073106e+02 - 2.169857010791227e+02 2.160592114275385e+02 2.151350947852860e+02 2.142133565866376e+02 2.132940022674083e+02 - 2.123770372649571e+02 2.114624670181867e+02 2.105502969675431e+02 2.096405325550162e+02 2.087331792241393e+02 - 2.078282424199890e+02 2.069257275891860e+02 2.060256401798943e+02 2.051279856418216e+02 2.042327694262190e+02 - 2.033399969858813e+02 2.024496737751469e+02 2.015618052498977e+02 2.006763968675590e+02 1.997934540871004e+02 - 1.989129823690343e+02 1.980349871754169e+02 1.971594739698481e+02 1.962864482174713e+02 1.954159153849736e+02 - 1.945478809405854e+02 1.936823503540812e+02 1.928193290967781e+02 1.919588226415381e+02 1.911008364627658e+02 - 1.902453760364096e+02 1.893924468399617e+02 1.885420543524577e+02 1.876942040544768e+02 1.868489014281417e+02 - 1.860061519571189e+02 1.851659611266184e+02 1.843283344233937e+02 1.834932773357418e+02 1.826607953535034e+02 - 1.818308939680629e+02 1.810035786723481e+02 1.801788549608304e+02 1.793567283295249e+02 1.785372042759901e+02 - 1.777202882993282e+02 1.769059859001850e+02 1.760943025807497e+02 1.752852438447554e+02 1.744788151974785e+02 - 1.736750221457390e+02 1.728738701979007e+02 1.720753648638706e+02 1.712795116550998e+02 1.704863160845825e+02 - 1.696957836668566e+02 1.689079199180039e+02 1.681227303556493e+02 1.673402204989617e+02 1.665603958686532e+02 - 1.657832619869799e+02 1.650088243777409e+02 1.642370885662795e+02 1.634680600794823e+02 1.627017444457793e+02 - 1.619381471951445e+02 1.611772738590951e+02 1.604191299706921e+02 1.596637210645399e+02 1.589110526767867e+02 - 1.581611303451241e+02 1.574139596087874e+02 1.566695460085554e+02 1.559278950867503e+02 1.551890123872385e+02 - 1.544529034554292e+02 1.537195738382757e+02 1.529890290842748e+02 1.522612747434666e+02 1.515363163674351e+02 - 1.508141595093076e+02 1.500948097237555e+02 1.493782725669932e+02 1.486645535967789e+02 1.479536583724143e+02 - 1.472455924547449e+02 1.465403614061596e+02 1.458379707905909e+02 1.451384261735148e+02 1.444417331219514e+02 - 1.437478972044633e+02 1.430569239911578e+02 1.423688190536853e+02 1.416835879652396e+02 1.410012363005585e+02 - 1.403217696359229e+02 1.396451935491577e+02 1.389715136196312e+02 1.383007354282553e+02 1.376328645574854e+02 - 1.369679065913208e+02 1.363058671153038e+02 1.356467517165207e+02 1.349905659836014e+02 1.343373155067194e+02 - 1.336870058775913e+02 1.330396426894780e+02 1.323952315371832e+02 1.317537780170550e+02 1.311152877269845e+02 - 1.304797662664065e+02 1.298472192362996e+02 1.292176522391855e+02 1.285910708791301e+02 1.279674807617425e+02 - 1.273468874941753e+02 1.267292966851250e+02 1.261147139448316e+02 1.255031448850783e+02 1.248945951191923e+02 - 1.242890702620443e+02 1.236865759300485e+02 1.230871177411627e+02 1.224907013148884e+02 1.218973322722703e+02 - 1.213070162358971e+02 1.207197588299010e+02 1.201355656799576e+02 1.195544424132864e+02 1.189763946586499e+02 - 1.184014280463548e+02 1.178295482082510e+02 1.172607607777323e+02 1.166950713897357e+02 1.161324856807421e+02 - 1.155730092887757e+02 1.150166478534045e+02 1.144634070157400e+02 1.139132924184372e+02 1.133663097056950e+02 - 1.128224645232555e+02 1.122817625184044e+02 1.117442093399712e+02 1.112098106383290e+02 1.106785720653942e+02 - 1.101504843345202e+02 1.096253193854976e+02 1.091027814759659e+02 1.085828903190926e+02 1.080656662057070e+02 - 1.075510744401853e+02 1.070391017583160e+02 1.065297369211215e+02 1.060229642403793e+02 1.055187689946627e+02 - 1.050171373101604e+02 1.045180558156006e+02 1.040215103049707e+02 1.035274865113781e+02 1.030359706887152e+02 - 1.025469492169604e+02 1.020604083357866e+02 1.015763340040288e+02 1.010947131078929e+02 1.006155327791835e+02 - 1.001387792631148e+02 9.966443911893010e+01 9.919249927205091e+01 9.872294669690289e+01 9.825576811144268e+01 - 9.779095024426459e+01 9.732848086108395e+01 9.686834738339628e+01 9.641053663288847e+01 9.595503591883143e+01 - 9.550183276437639e+01 9.505091470489599e+01 9.460226894357737e+01 9.415588307372171e+01 9.371174549820027e+01 - 9.326984390100915e+01 9.283016578095182e+01 9.239269910989660e+01 9.195743199867270e+01 9.152435246657959e+01 - 9.109344822825337e+01 9.066470776170968e+01 9.023811990175319e+01 8.981367265385576e+01 8.939135422700863e+01 - 8.897115319588202e+01 8.855305819940260e+01 8.813705766268812e+01 8.772313993524557e+01 8.731129428898021e+01 - 8.690150981214184e+01 8.649377498492467e+01 8.608807868460502e+01 8.568441000539183e+01 8.528275807208179e+01 - 8.488311171021131e+01 8.448546000255536e+01 8.408979283578468e+01 8.369609949978657e+01 8.330436902264381e+01 - 8.291459088961614e+01 8.252675470341519e+01 8.214085000107356e+01 8.175686603719873e+01 8.137479266933553e+01 - 8.099462018292702e+01 8.061633811896954e+01 8.023993612969721e+01 7.986540422509246e+01 7.949273245617202e+01 - 7.912191071864751e+01 7.875292880591886e+01 7.838577728963824e+01 7.802044667908689e+01 7.765692688210476e+01 - 7.729520814701189e+01 7.693528093921003e+01 7.657713574044320e+01 7.622076279877933e+01 7.586615250876412e+01 - 7.551329599462582e+01 7.516218394284439e+01 7.481280673973237e+01 7.446515517211270e+01 7.411922012543234e+01 - 7.377499243991551e+01 7.343246273248482e+01 7.309162206375170e+01 7.275246194060588e+01 7.241497325488510e+01 - 7.207914691168762e+01 7.174497413637995e+01 7.141244624067238e+01 7.108155440657860e+01 7.075228964021176e+01 - 7.042464364044737e+01 7.009860816502822e+01 6.977417437950896e+01 6.945133371117183e+01 6.913007780419414e+01 - 6.881039831641085e+01 6.849228672098478e+01 6.817573455985929e+01 6.786073404036127e+01 6.754727706019318e+01 - 6.723535518365489e+01 6.692496029976250e+01 6.661608442214438e+01 6.630871955818391e+01 6.600285747074972e+01 - 6.569849025826812e+01 6.539561050984807e+01 6.509421028016476e+01 6.479428156422156e+01 6.449581665898590e+01 - 6.419880794007263e+01 6.390324769379086e+01 6.360912802573969e+01 6.331644161216560e+01 6.302518126952705e+01 - 6.273533924838438e+01 6.244690800283556e+01 6.215988021335375e+01 6.187424856554645e+01 6.159000558852496e+01 - 6.130714382209544e+01 6.102565642873360e+01 6.074553634647369e+01 6.046677613965124e+01 6.018936867893675e+01 - 5.991330696615304e+01 5.963858400265185e+01 5.936519255461710e+01 5.909312563142009e+01 5.882237675846172e+01 - 5.855293899151076e+01 5.828480526925385e+01 5.801796883717194e+01 5.775242299813667e+01 5.748816098906929e+01 - 5.722517588172157e+01 5.696346118973321e+01 5.670301063052477e+01 5.644381744585571e+01 5.618587497447161e+01 - 5.592917675378749e+01 5.567371639288440e+01 5.541948735564524e+01 5.516648303666721e+01 5.491469740133566e+01 - 5.466412430128952e+01 5.441475721341882e+01 5.416658984866251e+01 5.391961604526729e+01 5.367382965707854e+01 - 5.342922435049869e+01 5.318579394824101e+01 5.294353276046760e+01 5.270243471566913e+01 5.246249358126801e+01 - 5.222370341980431e+01 5.198605834991378e+01 5.174955243603662e+01 5.151417956992881e+01 5.127993401538280e+01 - 5.104681029539683e+01 5.081480246751264e+01 5.058390465007635e+01 5.035411117607305e+01 5.012541641928832e+01 - 4.989781463692880e+01 4.967129999443014e+01 4.944586717469857e+01 4.922151081792142e+01 4.899822516393252e+01 - 4.877600466591702e+01 4.855484391176263e+01 4.833473749525371e+01 4.811567985888949e+01 4.789766553100244e+01 - 4.768068948486052e+01 4.746474643299185e+01 4.724983089968822e+01 4.703593761581940e+01 4.682306140175855e+01 - 4.661119706938157e+01 4.640033923440899e+01 4.619048280117971e+01 4.598162297433280e+01 4.577375454810339e+01 - 4.556687232031752e+01 4.536097129194708e+01 4.515604651624491e+01 4.495209295916556e+01 4.474910546848848e+01 - 4.454707932343867e+01 4.434600983627007e+01 4.414589194663536e+01 4.394672075425581e+01 4.374849149110094e+01 - 4.355119939554362e+01 4.335483958155968e+01 4.315940720272008e+01 4.296489783321342e+01 4.277130684141869e+01 - 4.257862938067940e+01 4.238686082011235e+01 4.219599659307687e+01 4.200603211268383e+01 4.181696265307154e+01 - 4.162878369849639e+01 4.144149102922540e+01 4.125508008000694e+01 4.106954625154178e+01 4.088488514080404e+01 - 4.070109237453877e+01 4.051816351991027e+01 4.033609404369983e+01 4.015487975529847e+01 3.997451654390139e+01 - 3.979499995457292e+01 3.961632565249730e+01 3.943848943565658e+01 3.926148710146721e+01 3.908531435163689e+01 - 3.890996689581685e+01 3.873544082272831e+01 3.856173207783515e+01 3.838883637414560e+01 3.821674961156019e+01 - 3.804546776546066e+01 3.787498680517137e+01 3.770530255859592e+01 3.753641100849845e+01 3.736830845518836e+01 - 3.720099088344971e+01 3.703445420945200e+01 3.686869456603723e+01 3.670370808841574e+01 3.653949085950763e+01 - 3.637603888796111e+01 3.621334844811717e+01 3.605141592615973e+01 3.589023740445852e+01 3.572980904042850e+01 - 3.557012712196481e+01 3.541118795282225e+01 3.525298774403768e+01 3.509552267323749e+01 3.493878928773343e+01 - 3.478278404343990e+01 3.462750313614663e+01 3.447294293878365e+01 3.431909990161546e+01 3.416597046087814e+01 - 3.401355094900445e+01 3.386183779648810e+01 3.371082772101448e+01 3.356051721064496e+01 3.341090265530899e+01 - 3.326198061398263e+01 3.311374767636361e+01 3.296620040125966e+01 3.281933525310492e+01 3.267314891432770e+01 - 3.252763821351709e+01 3.238279969616838e+01 3.223862995512887e+01 3.209512571750849e+01 3.195228370249094e+01 - 3.181010057023420e+01 3.166857295105629e+01 3.152769775432829e+01 3.138747186368265e+01 3.124789194582367e+01 - 3.110895478177638e+01 3.097065722333928e+01 3.083299612203396e+01 3.069596823521478e+01 3.055957038379009e+01 - 3.042379968490992e+01 3.028865305190764e+01 3.015412726448298e+01 3.002021927954454e+01 2.988692608783410e+01 - 2.975424465393443e+01 2.962217185358958e+01 2.949070472525562e+01 2.935984046863818e+01 2.922957605244617e+01 - 2.909990844798608e+01 2.897083474125067e+01 2.884235205411202e+01 2.871445744621140e+01 2.858714789194334e+01 - 2.846042066311678e+01 2.833427304434733e+01 2.820870204788112e+01 2.808370481822039e+01 2.795927858955916e+01 - 2.783542056310479e+01 2.771212788710439e+01 2.758939774558937e+01 2.746722754519704e+01 2.734561457842300e+01 - 2.722455602005491e+01 2.710404915757552e+01 2.698409131619408e+01 2.686467981339180e+01 2.674581188504884e+01 - 2.662748489299116e+01 2.650969637323688e+01 2.639244364869198e+01 2.627572402574995e+01 2.615953493480668e+01 - 2.604387380499337e+01 2.592873803144385e+01 2.581412497154068e+01 2.570003216993883e+01 2.558645721031992e+01 - 2.547339748309297e+01 2.536085044648649e+01 2.524881363723968e+01 2.513728460374055e+01 2.502626081142699e+01 - 2.491573971820056e+01 2.480571905896494e+01 2.469619646153339e+01 2.458716938319504e+01 2.447863542000312e+01 - 2.437059221927192e+01 2.426303741725681e+01 2.415596854366440e+01 2.404938323139217e+01 2.394327933047775e+01 - 2.383765447837906e+01 2.373250626120992e+01 2.362783239922733e+01 2.352363062421024e+01 2.341989863680159e+01 - 2.331663407933185e+01 2.321383475989216e+01 2.311149855755017e+01 2.300962316438995e+01 2.290820631357202e+01 - 2.280724581327735e+01 2.270673948178020e+01 2.260668508940155e+01 2.250708039173678e+01 2.240792334786956e+01 - 2.230921186720802e+01 2.221094371595302e+01 2.211311674173436e+01 2.201572884123411e+01 2.191877792312015e+01 - 2.182226182065280e+01 2.172617842216956e+01 2.163052579410284e+01 2.153530186271772e+01 2.144050449256298e+01 - 2.134613164544727e+01 2.125218130870039e+01 2.115865145244560e+01 2.106553997668644e+01 2.097284492087666e+01 - 2.088056441996010e+01 2.078869643251129e+01 2.069723893213309e+01 2.060618996606658e+01 2.051554761096601e+01 - 2.042530989859754e+01 2.033547481777502e+01 2.024604054022628e+01 2.015700522393599e+01 2.006836688994228e+01 - 1.998012363072147e+01 1.989227358045817e+01 1.980481486918973e+01 1.971774557717947e+01 1.963106382303616e+01 - 1.954476789103884e+01 1.945885594703988e+01 1.937332608222908e+01 1.928817649453870e+01 1.920340539662878e+01 - 1.911901098077130e+01 1.903499138773951e+01 1.895134486255558e+01 1.886806974988112e+01 1.878516424109755e+01 - 1.870262653275597e+01 1.862045489823334e+01 1.853864761644500e+01 1.845720293609644e+01 1.837611907561623e+01 - 1.829539441141390e+01 1.821502731690405e+01 1.813501600648008e+01 1.805535878852776e+01 1.797605402680784e+01 - 1.789710004813803e+01 1.781849513976010e+01 1.774023761822760e+01 1.766232596769640e+01 1.758475857461898e+01 - 1.750753373031707e+01 1.743064982368309e+01 1.735410526816905e+01 1.727789846424588e+01 1.720202775432962e+01 - 1.712649156263800e+01 1.705128842771503e+01 1.697641675133914e+01 1.690187492053174e+01 1.682766139576636e+01 - 1.675377465125957e+01 1.668021313537254e+01 1.660697525047803e+01 1.653405953620346e+01 1.646146456303875e+01 - 1.638918876353225e+01 1.631723061252691e+01 1.624558863577738e+01 1.617426136715184e+01 1.610324729276991e+01 - 1.603254489420701e+01 1.596215281065743e+01 1.589206962268447e+01 1.582229381597797e+01 1.575282394813798e+01 - 1.568365860435203e+01 1.561479636559848e+01 1.554623575841051e+01 1.547797536749664e+01 1.541001389568697e+01 - 1.534234992945672e+01 1.527498202635700e+01 1.520790881496337e+01 1.514112893627654e+01 1.507464101206718e+01 - 1.500844361854594e+01 1.494253544400039e+01 1.487691522461213e+01 1.481158156982783e+01 1.474653311471545e+01 - 1.468176854391490e+01 1.461728655322583e+01 1.455308580005108e+01 1.448916492494823e+01 1.442552270891503e+01 - 1.436215789907635e+01 1.429906914560298e+01 1.423625515786986e+01 1.417371467503432e+01 1.411144643634281e+01 - 1.404944913182382e+01 1.398772148936426e+01 1.392626235467004e+01 1.386507047757601e+01 1.380414456703780e+01 - 1.374348339923097e+01 1.368308576360786e+01 1.362295043539383e+01 1.356307614411792e+01 1.350346171009224e+01 - 1.344410601461897e+01 1.338500782259274e+01 1.332616591200318e+01 1.326757911048049e+01 1.320924625504148e+01 - 1.315116615215319e+01 1.309333758418828e+01 1.303575945915385e+01 1.297843067064863e+01 1.292135001185642e+01 - 1.286451632934388e+01 1.280792850075226e+01 1.275158540067995e+01 1.269548586414703e+01 1.263962874841400e+01 - 1.258401302186647e+01 1.252863758019894e+01 1.247350127006052e+01 1.241860299544399e+01 1.236394167532885e+01 - 1.230951622025856e+01 1.225532549825102e+01 1.220136844757296e+01 1.214764407513537e+01 1.209415128431592e+01 - 1.204088897936275e+01 1.198785611322907e+01 1.193505164847797e+01 1.188247452422181e+01 1.183012365035161e+01 - 1.177799804372636e+01 1.172609672645034e+01 1.167441862559045e+01 1.162296270435431e+01 1.157172795813644e+01 - 1.152071338824009e+01 1.146991795771504e+01 1.141934063624516e+01 1.136898050295155e+01 1.131883658051165e+01 - 1.126890783457083e+01 1.121919328583311e+01 1.116969196974251e+01 1.112040291453270e+01 1.107132511138846e+01 - 1.102245760367597e+01 1.097379950683186e+01 1.092534984778681e+01 1.087710764406476e+01 1.082907196010627e+01 - 1.078124186863284e+01 1.073361642501848e+01 1.068619465441603e+01 1.063897567074718e+01 1.059195860734133e+01 - 1.054514250814830e+01 1.049852644360809e+01 1.045210951602862e+01 1.040589083229813e+01 1.035986946911022e+01 - 1.031404450080543e+01 1.026841510170119e+01 1.022298040707346e+01 1.017773949095798e+01 1.013269147478631e+01 - 1.008783549702620e+01 1.004317069189082e+01 9.998696157456914e+00 9.954411030186206e+00 9.910314523784715e+00 - 9.866405774945729e+00 9.822683900561229e+00 9.779148062474189e+00 9.735797433007823e+00 9.692631171490490e+00 - 9.649648402951970e+00 9.606848328743531e+00 9.564230182014787e+00 9.521793107635142e+00 9.479536270440141e+00 - 9.437458869806633e+00 9.395560106559989e+00 9.353839157926716e+00 9.312295192835592e+00 9.270927467731591e+00 - 9.229735216231479e+00 9.188717610212938e+00 9.147873860369382e+00 9.107203196336844e+00 9.066704846764596e+00 - 9.026378005702853e+00 8.986221892357717e+00 8.946235805206038e+00 8.906418978693665e+00 8.866770619316361e+00 - 8.827289975974383e+00 8.787976307390357e+00 8.748828863538764e+00 8.709846863139358e+00 8.671029583554503e+00 - 8.632376341244221e+00 8.593886376949055e+00 8.555558939921891e+00 8.517393311170933e+00 8.479388776756116e+00 - 8.441544603229096e+00 8.403860042243403e+00 8.366334424744339e+00 8.328967072292842e+00 8.291757243124138e+00 - 8.254704227472720e+00 8.217807335382002e+00 8.181065876905594e+00 8.144479133106664e+00 8.108046399433587e+00 - 8.071767047639053e+00 8.035640397926882e+00 7.999665736506032e+00 7.963842390434660e+00 7.928169696145141e+00 - 7.892646983285742e+00 7.857273552651162e+00 7.822048750599857e+00 7.786971968025827e+00 7.752042529333232e+00 - 7.717259758863888e+00 7.682623011133142e+00 7.648131647347260e+00 7.613785013617140e+00 7.579582436948184e+00 - 7.545523312250220e+00 7.511607037617057e+00 7.477832951167176e+00 7.444200413093294e+00 7.410708803334905e+00 - 7.377357505498556e+00 7.344145878673218e+00 7.311073286547245e+00 7.278139163173499e+00 7.245342906306997e+00 - 7.212683876663248e+00 7.180161467446147e+00 7.147775082852699e+00 7.115524124234772e+00 7.083407965702390e+00 - 7.051426016132217e+00 7.019577732801474e+00 6.987862512275252e+00 6.956279745475502e+00 6.924828855941318e+00 - 6.893509269882150e+00 6.862320401692200e+00 6.831261647888545e+00 6.800332460884749e+00 6.769532305211046e+00 - 6.738860589806862e+00 6.708316738463165e+00 6.677900193977888e+00 6.647610403615440e+00 6.617446795946176e+00 - 6.587408797932629e+00 6.557495898186097e+00 6.527707560796614e+00 6.498043211862364e+00 6.468502306113241e+00 - 6.439084309299234e+00 6.409788685242900e+00 6.380614873655190e+00 6.351562339061567e+00 6.322630595895343e+00 - 6.293819108127046e+00 6.265127326375664e+00 6.236554729526047e+00 6.208100805116588e+00 6.179765032202197e+00 - 6.151546864740690e+00 6.123445807150094e+00 6.095461385258917e+00 6.067593067877628e+00 6.039840335121551e+00 - 6.012202688508743e+00 5.984679633169969e+00 5.957270656961056e+00 5.929975240292937e+00 5.902792923627279e+00 - 5.875723232013562e+00 5.848765648702115e+00 5.821919682493143e+00 5.795184854142510e+00 5.768560683026402e+00 - 5.742046666390822e+00 5.715642318587924e+00 5.689347205919744e+00 5.663160851223163e+00 5.637082758311135e+00 - 5.611112458697719e+00 5.585249491519008e+00 5.559493390584049e+00 5.533843667789125e+00 5.508299872311603e+00 - 5.482861578646651e+00 5.457528314665947e+00 5.432299611523626e+00 5.407175018586152e+00 5.382154093094761e+00 - 5.357236378022760e+00 5.332421403106363e+00 5.307708752059064e+00 5.283098003376689e+00 5.258588694187007e+00 - 5.234180379291222e+00 5.209872626694981e+00 5.185665008050016e+00 5.161557074183171e+00 5.137548383980142e+00 - 5.113638545797982e+00 5.089827134282968e+00 5.066113702430728e+00 5.042497830741953e+00 5.018979105007048e+00 - 4.995557105455633e+00 4.972231392615168e+00 4.949001558388967e+00 4.925867224885915e+00 4.902827967986653e+00 - 4.879883363679411e+00 4.857033008673309e+00 4.834276503129009e+00 4.811613436797770e+00 4.789043387081744e+00 - 4.766565977795326e+00 4.744180833573695e+00 4.721887536130310e+00 4.699685684376157e+00 4.677574891583497e+00 - 4.655554772271826e+00 4.633624922898647e+00 4.611784942911348e+00 4.590034481232405e+00 4.568373160121153e+00 - 4.546800575450856e+00 4.525316347519302e+00 4.503920103923871e+00 4.482611469298424e+00 4.461390048788094e+00 - 4.440255471271009e+00 4.419207398665950e+00 4.398245451269402e+00 4.377369245425554e+00 4.356578419383048e+00 - 4.335872613273037e+00 4.315251459075552e+00 4.294714576337845e+00 4.274261622204341e+00 4.253892261314030e+00 - 4.233606119889290e+00 4.213402835603544e+00 4.193282059746365e+00 4.173243445650493e+00 4.153286631923412e+00 - 4.133411255497697e+00 4.113616998652003e+00 4.093903524786619e+00 4.074270469191258e+00 4.054717490515994e+00 - 4.035244253601178e+00 4.015850419023907e+00 3.996535633568783e+00 3.977299560905666e+00 3.958141896495164e+00 - 3.939062301025637e+00 3.920060427447142e+00 3.901135950094528e+00 3.882288544897898e+00 3.863517881118590e+00 - 3.844823615448907e+00 3.826205437051391e+00 3.807663047653544e+00 3.789196110563124e+00 3.770804297342049e+00 - 3.752487294212357e+00 3.734244789018890e+00 3.716076457976182e+00 3.697981972490954e+00 3.679961043694115e+00 - 3.662013372248035e+00 3.644138631063968e+00 3.626336509775109e+00 3.608606705542072e+00 3.590948914412318e+00 - 3.573362819793663e+00 3.555848115085657e+00 3.538404523614169e+00 3.521031745026515e+00 3.503729467883798e+00 - 3.486497394134707e+00 3.469335231734055e+00 3.452242686325544e+00 3.435219448952052e+00 3.418265234650198e+00 - 3.401379774604279e+00 3.384562769850576e+00 3.367813923930398e+00 3.351132951883403e+00 3.334519571031865e+00 - 3.317973491801103e+00 3.301494419647167e+00 3.285082090084510e+00 3.268736234671993e+00 3.252456560777042e+00 - 3.236242786971220e+00 3.220094639575606e+00 3.204011846234647e+00 3.187994121490988e+00 3.172041185626448e+00 - 3.156152791161071e+00 3.140328668842820e+00 3.124568535295174e+00 3.108872124034968e+00 3.093239171871656e+00 - 3.077669412161458e+00 3.062162565910707e+00 3.046718374098970e+00 3.031336596904380e+00 3.016016966139392e+00 - 3.000759212810465e+00 2.985563079528153e+00 2.970428312130104e+00 2.955354650145179e+00 2.940341825152254e+00 - 2.925389598488303e+00 2.910497731503551e+00 2.895665957526404e+00 2.880894022713473e+00 2.866181682137055e+00 - 2.851528688498591e+00 2.836934785005289e+00 2.822399718118186e+00 2.807923264019232e+00 2.793505182293368e+00 - 2.779145216423770e+00 2.764843124903896e+00 2.750598669795774e+00 2.736411610868753e+00 2.722281698431688e+00 - 2.708208697067331e+00 2.694192390113966e+00 2.680232535961204e+00 2.666328890540199e+00 2.652481222662398e+00 - 2.638689303226956e+00 2.624952898002155e+00 2.611271764144950e+00 2.597645683492627e+00 2.584074442444535e+00 - 2.570557801667266e+00 2.557095530257868e+00 2.543687406599445e+00 2.530333209423413e+00 2.517032707379746e+00 - 2.503785668122807e+00 2.490591889861845e+00 2.477451158950901e+00 2.464363243138197e+00 2.451327922049569e+00 - 2.438344980862380e+00 2.425414204994132e+00 2.412535368413293e+00 2.399708255484590e+00 2.386932671907132e+00 - 2.374208401602455e+00 2.361535223009603e+00 2.348912926727443e+00 2.336341305706971e+00 2.323820149408004e+00 - 2.311349238873846e+00 2.298928374328811e+00 2.286557363678248e+00 2.274235992966902e+00 2.261964052364815e+00 - 2.249741340335214e+00 2.237567658215990e+00 2.225442798573621e+00 2.213366549457367e+00 2.201338726388740e+00 - 2.189359138707274e+00 2.177427577694549e+00 2.165543843493499e+00 2.153707741170415e+00 2.141919076444355e+00 - 2.130177647034976e+00 2.118483256831743e+00 2.106835728234196e+00 2.095234867960482e+00 2.083680476325080e+00 - 2.072172364176171e+00 2.060710343839133e+00 2.049294224696878e+00 2.037923808395575e+00 2.026598913260298e+00 - 2.015319367985618e+00 2.004084979196668e+00 1.992895556108562e+00 1.981750916950703e+00 1.970650881000152e+00 - 1.959595261684839e+00 1.948583868145923e+00 1.937616532016987e+00 1.926693081878526e+00 1.915813328267264e+00 - 1.904977090405082e+00 1.894184192977273e+00 1.883434460875044e+00 1.872727710477953e+00 1.862063762090873e+00 - 1.851442457083682e+00 1.840863622251705e+00 1.830327074965862e+00 1.819832643502570e+00 1.809380158797907e+00 - 1.798969449793061e+00 1.788600336572885e+00 1.778272652771865e+00 1.767986244795942e+00 1.757740938619203e+00 - 1.747536560606076e+00 1.737372946411540e+00 1.727249932639099e+00 1.717167351154095e+00 1.707125028541288e+00 - 1.697122811212298e+00 1.687160545804055e+00 1.677238060829077e+00 1.667355192130723e+00 1.657511781312863e+00 - 1.647707669880958e+00 1.637942692337234e+00 1.628216684763444e+00 1.618529503053863e+00 1.608880992276723e+00 - 1.599270986915247e+00 1.589699330823691e+00 1.580165870897195e+00 1.570670452975510e+00 1.561212914561866e+00 - 1.551793103249197e+00 1.542410880472349e+00 1.533066090216831e+00 1.523758574579748e+00 1.514488184288800e+00 - 1.505254771462676e+00 1.496058184704016e+00 1.486898266759950e+00 1.477774877044576e+00 1.468687878023066e+00 - 1.459637114930725e+00 1.450622438289068e+00 1.441643704572125e+00 1.432700770639202e+00 1.423793487269355e+00 - 1.414921704769478e+00 1.406085292220042e+00 1.397284110913275e+00 1.388518010515092e+00 1.379786849127615e+00 - 1.371090488107240e+00 1.362428788219066e+00 1.353801602746353e+00 1.345208792137069e+00 1.336650231141558e+00 - 1.328125779708811e+00 1.319635294146069e+00 1.311178639017341e+00 1.302755680403749e+00 1.294366281732825e+00 - 1.286010300246468e+00 1.277687607130681e+00 1.269398079017509e+00 1.261141576506052e+00 1.252917963373013e+00 - 1.244727109229262e+00 1.236568884548108e+00 1.228443154841189e+00 1.220349783647821e+00 1.212288651549746e+00 - 1.204259634287000e+00 1.196262595500517e+00 1.188297406122070e+00 1.180363940507803e+00 1.172462072687314e+00 - 1.164591670206239e+00 1.156752605274376e+00 1.148944764287503e+00 1.141168021685895e+00 1.133422246839356e+00 - 1.125707316556084e+00 1.118023109341937e+00 1.110369501923575e+00 1.102746365022667e+00 1.095153580538906e+00 - 1.087591037394418e+00 1.080058609806265e+00 1.072556173728377e+00 1.065083611042832e+00 1.057640804167975e+00 - 1.050227631677888e+00 1.042843969448370e+00 1.035489708218281e+00 1.028164736497249e+00 1.020868930712798e+00 - 1.013602173363602e+00 1.006364350528145e+00 9.991553480860069e-01 9.919750464549014e-01 9.848233287198007e-01 - 9.777000916381701e-01 9.706052224312447e-01 9.635386022157533e-01 9.565001191688937e-01 9.494896630661879e-01 - 9.425071223228538e-01 9.355523797940184e-01 9.286253271866921e-01 9.217258644183214e-01 9.148538781303724e-01 - 9.080092551050607e-01 9.011918879859632e-01 8.944016703005543e-01 8.876384924746002e-01 8.809022413584221e-01 - 8.741928168976413e-01 8.675101190938330e-01 8.608540359442419e-01 8.542244603473701e-01 8.476212889430066e-01 - 8.410444181391276e-01 8.344937399710189e-01 8.279691476350027e-01 8.214705470141707e-01 8.149978368018493e-01 - 8.085509088588196e-01 8.021296614287111e-01 7.957339944800463e-01 7.893638070383275e-01 7.830189931350516e-01 - 7.766994532966268e-01 7.704050967403675e-01 7.641358215802615e-01 7.578915247022724e-01 7.516721083807270e-01 - 7.454774759379389e-01 7.393075284143857e-01 7.331621629407183e-01 7.270412875750237e-01 7.209448123528730e-01 - 7.148726361079928e-01 7.088246610576617e-01 7.028007931997213e-01 6.968009387204053e-01 6.908250000358214e-01 - 6.848728793751606e-01 6.789444908271167e-01 6.730397435251165e-01 6.671585392499849e-01 6.613007849024644e-01 - 6.554663896318030e-01 6.496552624588109e-01 6.438673070778183e-01 6.381024319556428e-01 6.323605552121262e-01 - 6.266415850605696e-01 6.209454272475601e-01 6.152719929073242e-01 6.096211942955035e-01 6.039929419697414e-01 - 5.983871423673978e-01 5.928037109278776e-01 5.872425665727200e-01 5.817036179262789e-01 5.761867757580472e-01 - 5.706919545755328e-01 5.652190691753797e-01 5.597680312855905e-01 5.543387515608681e-01 5.489311514266204e-01 - 5.435451491959484e-01 5.381806555529779e-01 5.328375858091706e-01 5.275158573424954e-01 5.222153871968650e-01 - 5.169360885007255e-01 5.116778775087658e-01 5.064406794925096e-01 5.012244118255510e-01 4.960289886382637e-01 - 4.908543290552675e-01 4.857003532629381e-01 4.805669801867241e-01 4.754541247133137e-01 4.703617092625736e-01 - 4.652896609026711e-01 4.602378967146020e-01 4.552063350475851e-01 4.501948983226124e-01 4.452035092771810e-01 - 4.402320879227842e-01 4.352805523654864e-01 4.303488309750054e-01 4.254368504386150e-01 4.205445290166767e-01 - 4.156717895856258e-01 4.108185573527897e-01 4.059847567861119e-01 4.011703090912549e-01 3.963751374739253e-01 - 3.915991740467544e-01 3.868423443729578e-01 3.821045699452743e-01 3.773857771630841e-01 3.726858934536713e-01 - 3.680048452743795e-01 3.633425553945757e-01 3.586989523890614e-01 3.540739701811214e-01 3.494675340422360e-01 - 3.448795694018267e-01 3.403100055229290e-01 3.357587720701978e-01 3.312257966625470e-01 3.267110046986084e-01 - 3.222143302305144e-01 3.177357072575733e-01 3.132750617821559e-01 3.088323230437107e-01 3.044074228278458e-01 - 3.000002929514869e-01 2.956108619814004e-01 2.912390591663653e-01 2.868848226223222e-01 2.825480855369588e-01 - 2.782287763584979e-01 2.739268276304007e-01 2.696421732978619e-01 2.653747469077652e-01 2.611244782932083e-01 - 2.568913016367161e-01 2.526751570146955e-01 2.484759769388697e-01 2.442936932048949e-01 2.401282413902519e-01 - 2.359795575701045e-01 2.318475761710866e-01 2.277322290127450e-01 2.236334554284879e-01 2.195511960314929e-01 - 2.154853836729677e-01 2.114359536211432e-01 2.074028437636633e-01 2.033859920182897e-01 1.993853337119912e-01 - 1.954008040589642e-01 1.914323463143237e-01 1.874799002688242e-01 1.835434007181165e-01 1.796227861758036e-01 - 1.757179964922509e-01 1.718289711649378e-01 1.679556465242757e-01 1.640979620393169e-01 1.602558632656972e-01 - 1.564292893436780e-01 1.526181778855338e-01 1.488224700413446e-01 1.450421075715582e-01 1.412770310767497e-01 - 1.375271785489454e-01 1.337924939887067e-01 1.300729236356154e-01 1.263684067750867e-01 1.226788841702678e-01 - 1.190042991249222e-01 1.153445951805052e-01 1.116997137432381e-01 1.080695954417651e-01 1.044541881911586e-01 - 1.008534377603918e-01 9.726728475975084e-02 9.369567294988820e-02 9.013854752144720e-02 8.659585347215112e-02 - 8.306753302147955e-02 7.955353046975124e-02 7.605379621791922e-02 7.256827534889604e-02 6.909691079142652e-02 - 6.563964883225221e-02 6.219643640409570e-02 5.876721959493493e-02 5.535194193553600e-02 5.195055179453398e-02 - 4.856300050562060e-02 4.518923308325209e-02 4.182919528191363e-02 3.848283536820589e-02 3.515010193539807e-02 - 3.183094185890936e-02 2.852530077920949e-02 2.523313079087341e-02 2.195438300307553e-02 1.868900335629075e-02 - 1.543694036357313e-02 1.219814405293583e-02 8.972564385828061e-03 5.760148923624660e-03 2.560846417529306e-03 - -6.253884489496408e-04 -3.798605206001689e-03 -6.958856024607482e-03 -1.010619000899848e-02 -1.324065554473652e-02 - -1.636230159824732e-02 -1.947117958312726e-02 -2.256733711284757e-02 -2.565081832749929e-02 -2.872167302619957e-02 - -3.177995089902724e-02 -3.482569914268617e-02 -3.785896464500105e-02 -4.087979562235380e-02 -4.388824175488684e-02 - -4.688434717766576e-02 -4.986815604286890e-02 -5.283971753775529e-02 -5.579907881824794e-02 -5.874628546589089e-02 - -6.168138307363240e-02 -6.460441923558070e-02 -6.751544105442296e-02 -7.041449003639784e-02 -7.330161087707579e-02 - -7.617685125406765e-02 -7.904025608548425e-02 -8.189186951723537e-02 -8.473173608907363e-02 -8.755990257827875e-02 - -9.037641289395969e-02 -9.318130717201861e-02 -9.597463047763352e-02 -9.875642835115833e-02 -1.015267439140877e-01 - -1.042856199263307e-01 -1.070331001684683e-01 -1.097692300567918e-01 -1.124940502948268e-01 -1.152076007898061e-01 - -1.179099262631479e-01 -1.206010699593113e-01 -1.232810735016665e-01 -1.259499784255051e-01 -1.286078279418341e-01 - -1.312546653333709e-01 -1.338905286984875e-01 -1.365154583874092e-01 -1.391294979538990e-01 -1.417326885345280e-01 - -1.443250704192513e-01 -1.469066841433861e-01 -1.494775722507627e-01 -1.520377752494497e-01 -1.545873297590701e-01 - -1.571262765202916e-01 -1.596546572452540e-01 -1.621725113907878e-01 -1.646798779801165e-01 -1.671767967821347e-01 - -1.696633092874520e-01 -1.721394530811854e-01 -1.746052643091513e-01 -1.770607836101869e-01 -1.795060506428017e-01 - -1.819411034225526e-01 -1.843659798390828e-01 -1.867807191554161e-01 -1.891853611111403e-01 -1.915799407499077e-01 - -1.939644945120454e-01 -1.963390621459183e-01 -1.987036813730624e-01 -2.010583889984393e-01 -2.034032219467188e-01 - -2.057382189127211e-01 -2.080634172465200e-01 -2.103788504106409e-01 -2.126845552585028e-01 -2.149805700057577e-01 - -2.172669307458855e-01 -2.195436731393316e-01 -2.218108333786645e-01 -2.240684493062661e-01 -2.263165556286022e-01 - -2.285551851690127e-01 -2.307843748874083e-01 -2.330041611277884e-01 -2.352145785311434e-01 -2.374156618282909e-01 - -2.396074467707450e-01 -2.417899696732801e-01 -2.439632627554057e-01 -2.461273590292558e-01 -2.482822949571798e-01 - -2.504281050002428e-01 -2.525648226666662e-01 -2.546924818382261e-01 -2.568111176810049e-01 -2.589207645010757e-01 - -2.610214530059819e-01 -2.631132165202481e-01 -2.651960899948890e-01 -2.672701065219724e-01 -2.693352987894519e-01 - -2.713916998229662e-01 -2.734393439668777e-01 -2.754782632038173e-01 -2.775084874639143e-01 -2.795300503441993e-01 - -2.815429852855671e-01 -2.835473240274155e-01 -2.855430981234691e-01 -2.875303400246380e-01 -2.895090831627840e-01 - -2.914793573631382e-01 -2.934411924374482e-01 -2.953946213942734e-01 -2.973396760049649e-01 -2.992763870705049e-01 - -3.012047853752455e-01 -3.031249029054077e-01 -3.050367713048046e-01 -3.069404187491607e-01 -3.088358754333808e-01 - -3.107231733999588e-01 -3.126023429151826e-01 -3.144734138246973e-01 -3.163364162512183e-01 -3.181913814969073e-01 - -3.200383391593082e-01 -3.218773166629695e-01 -3.237083442965246e-01 -3.255314526206347e-01 -3.273466708133588e-01 - -3.291540279174764e-01 -3.309535535062730e-01 -3.327452779044484e-01 -3.345292286746930e-01 -3.363054329977739e-01 - -3.380739209920870e-01 -3.398347217688169e-01 -3.415878634526212e-01 -3.433333743100879e-01 -3.450712833788954e-01 - -3.468016195958206e-01 -3.485244091566739e-01 -3.502396793974815e-01 -3.519474593420066e-01 -3.536477770380763e-01 - -3.553406598299846e-01 -3.570261348354672e-01 -3.587042307855341e-01 -3.603749751839582e-01 -3.620383929731605e-01 - -3.636945116923384e-01 -3.653433594409278e-01 -3.669849628231984e-01 -3.686193482790397e-01 -3.702465427747400e-01 - -3.718665743211436e-01 -3.734794684043725e-01 -3.750852495624684e-01 -3.766839451194457e-01 -3.782755819189342e-01 - -3.798601858648072e-01 -3.814377826321034e-01 -3.830083986549013e-01 -3.845720606417443e-01 -3.861287926090124e-01 - -3.876786193539286e-01 -3.892215675502101e-01 -3.907576628594260e-01 -3.922869303026715e-01 -3.938093947284727e-01 - -3.953250822556230e-01 -3.968340182497304e-01 -3.983362256494206e-01 -3.998317293097848e-01 -4.013205549386248e-01 - -4.028027272117153e-01 -4.042782703087232e-01 -4.057472086115670e-01 -4.072095677082399e-01 -4.086653712889545e-01 - -4.101146418277140e-01 -4.115574040934622e-01 -4.129936826934361e-01 -4.144235014035024e-01 -4.158468836578273e-01 - -4.172638535617268e-01 -4.186744357650895e-01 -4.200786523524958e-01 -4.214765258006608e-01 -4.228680805923657e-01 - -4.242533401481378e-01 -4.256323273241845e-01 -4.270050650780072e-01 -4.283715771591216e-01 -4.297318868367957e-01 - -4.310860152683936e-01 -4.324339850671611e-01 -4.337758197699306e-01 -4.351115419219263e-01 -4.364411736856622e-01 - -4.377647373653272e-01 -4.390822563519974e-01 -4.403937525793140e-01 -4.416992465950099e-01 -4.429987609092939e-01 - -4.442923180804305e-01 -4.455799398898891e-01 -4.468616477876415e-01 -4.481374637930542e-01 -4.494074106490894e-01 - -4.506715085877422e-01 -4.519297779021105e-01 -4.531822412097039e-01 -4.544289201442401e-01 -4.556698355752103e-01 - -4.569050083194456e-01 -4.581344599890250e-01 -4.593582121055255e-01 -4.605762842891920e-01 -4.617886970897419e-01 - -4.629954719556403e-01 -4.641966295426422e-01 -4.653921902577345e-01 -4.665821746143150e-01 -4.677666038635413e-01 - -4.689454981292748e-01 -4.701188761476531e-01 -4.712867586709557e-01 -4.724491664926360e-01 -4.736061192593240e-01 - -4.747576368456714e-01 -4.759037394682022e-01 -4.770444475543998e-01 -4.781797800875144e-01 -4.793097558338887e-01 - -4.804343950164401e-01 -4.815537175042383e-01 -4.826677426390972e-01 -4.837764894228364e-01 -4.848799775883490e-01 - -4.859782270303963e-01 -4.870712557287352e-01 -4.881590823344398e-01 -4.892417265305033e-01 -4.903192072931410e-01 - -4.913915433426016e-01 -4.924587534540600e-01 -4.935208569593936e-01 -4.945778724869024e-01 -4.956298174121960e-01 - -4.966767104426105e-01 -4.977185705977166e-01 -4.987554161795947e-01 -4.997872652579317e-01 -5.008141361357437e-01 - -5.018360477540788e-01 -5.028530175622089e-01 -5.038650625463708e-01 -5.048722015765362e-01 -5.058744527800632e-01 - -5.068718334710337e-01 -5.078643614554021e-01 -5.088520548881869e-01 -5.098349318298798e-01 -5.108130088001350e-01 - -5.117863028619736e-01 -5.127548322161382e-01 -5.137186142245088e-01 -5.146776659499980e-01 -5.156320045833772e-01 - -5.165816478015819e-01 -5.175266128170244e-01 -5.184669156304091e-01 -5.194025733016244e-01 -5.203336032597101e-01 - -5.212600221732120e-01 -5.221818466804444e-01 -5.230990936596679e-01 -5.240117804553392e-01 -5.249199232262068e-01 - -5.258235374392936e-01 -5.267226400387954e-01 -5.276172478389746e-01 -5.285073771019844e-01 -5.293930438910602e-01 - -5.302742646986305e-01 -5.311510563423283e-01 -5.320234339437281e-01 -5.328914129379527e-01 -5.337550101355577e-01 - -5.346142414983102e-01 -5.354691226448078e-01 -5.363196694209366e-01 -5.371658979374595e-01 -5.380078240078261e-01 - -5.388454624615836e-01 -5.396788287704753e-01 -5.405079388378121e-01 -5.413328081929075e-01 -5.421534521210617e-01 - -5.429698859177164e-01 -5.437821254261226e-01 -5.445901856060492e-01 -5.453940806517681e-01 -5.461938261275164e-01 - -5.469894375147514e-01 -5.477809296410460e-01 -5.485683172596564e-01 -5.493516154047422e-01 -5.501308394233321e-01 - -5.509060035978606e-01 -5.516771220917993e-01 -5.524442098036262e-01 -5.532072816062331e-01 -5.539663521228516e-01 - -5.547214355736525e-01 -5.554725467511782e-01 -5.562197004144761e-01 -5.569629099559865e-01 -5.577021895124128e-01 - -5.584375539231472e-01 -5.591690174427206e-01 -5.598965939391384e-01 -5.606202972403660e-01 -5.613401421520022e-01 - -5.620561426054913e-01 -5.627683113219669e-01 -5.634766626491997e-01 -5.641812109417922e-01 -5.648819696019924e-01 - -5.655789522526887e-01 -5.662721727674018e-01 -5.669616451334641e-01 -5.676473824290281e-01 -5.683293976251365e-01 - -5.690077046537543e-01 -5.696823171027902e-01 -5.703532481968968e-01 -5.710205111045815e-01 -5.716841193018837e-01 - -5.723440862989044e-01 -5.730004247377283e-01 -5.736531475408438e-01 -5.743022680808630e-01 -5.749477994635019e-01 - -5.755897545119250e-01 -5.762281459317424e-01 -5.768629872133108e-01 -5.774942912813225e-01 -5.781220698864685e-01 - -5.787463360372200e-01 -5.793671029370097e-01 -5.799843829591812e-01 -5.805981885004621e-01 -5.812085322229668e-01 - -5.818154271777390e-01 -5.824188854500640e-01 -5.830189187855023e-01 -5.836155400127914e-01 -5.842087616519486e-01 - -5.847985957903102e-01 -5.853850545399070e-01 -5.859681502822114e-01 -5.865478954643482e-01 -5.871243015837295e-01 - -5.876973804424807e-01 -5.882671445115567e-01 -5.888336058093040e-01 -5.893967761301214e-01 -5.899566672475657e-01 - -5.905132912554449e-01 -5.910666600004119e-01 -5.916167846344484e-01 -5.921636769312483e-01 -5.927073488739303e-01 - -5.932478119884005e-01 -5.937850777230974e-01 -5.943191576345895e-01 -5.948500635775013e-01 -5.953778067525587e-01 - -5.959023980172641e-01 -5.964238491804477e-01 -5.969421717317064e-01 -5.974573766302176e-01 -5.979694750153504e-01 - -5.984784782975928e-01 -5.989843980133127e-01 -5.994872448737363e-01 -5.999870296226286e-01 -6.004837635008013e-01 - -6.009774575116591e-01 -6.014681225640990e-01 -6.019557696406324e-01 -6.024404098188824e-01 -6.029220539582525e-01 - -6.034007123251734e-01 -6.038763957092128e-01 -6.043491151546724e-01 -6.048188811990667e-01 -6.052857043294740e-01 - -6.057495951725935e-01 -6.062105647034982e-01 -6.066686232996821e-01 -6.071237808282512e-01 -6.075760480581535e-01 - -6.080254356249652e-01 -6.084719536597242e-01 -6.089156123708600e-01 -6.093564221655233e-01 -6.097943936088406e-01 - -6.102295366277345e-01 -6.106618611466814e-01 -6.110913776082281e-01 -6.115180960018122e-01 -6.119420262061138e-01 - -6.123631785057825e-01 -6.127815629923925e-01 -6.131971895415724e-01 -6.136100679122567e-01 -6.140202079254689e-01 - -6.144276194632986e-01 -6.148323123693087e-01 -6.152342964516117e-01 -6.156335814880438e-01 -6.160301772367670e-01 - -6.164240932773791e-01 -6.168153390131846e-01 -6.172039241057757e-01 -6.175898582479540e-01 -6.179731510100582e-01 - -6.183538118537011e-01 -6.187318502245757e-01 -6.191072755983122e-01 -6.194800972241303e-01 -6.198503243163954e-01 - -6.202179663089392e-01 -6.205830326036273e-01 -6.209455324825972e-01 -6.213054750121583e-01 -6.216628693834372e-01 - -6.220177248671027e-01 -6.223700505100402e-01 -6.227198553511943e-01 -6.230671484590707e-01 -6.234119388224310e-01 - -6.237542354039819e-01 -6.240940471906395e-01 -6.244313833278470e-01 -6.247662526956897e-01 -6.250986637315333e-01 - -6.254286253149073e-01 -6.257561464374979e-01 -6.260812358699522e-01 -6.264039022632663e-01 -6.267241542804416e-01 - -6.270420007239386e-01 -6.273574502418447e-01 -6.276705113436000e-01 -6.279811924920996e-01 -6.282895022600340e-01 - -6.285954492669960e-01 -6.288990419377586e-01 -6.292002887596219e-01 -6.294991982474318e-01 -6.297957785295903e-01 - -6.300900379535952e-01 -6.303819851813233e-01 -6.306716282540937e-01 -6.309589752809680e-01 -6.312440348023121e-01 - -6.315268150763020e-01 -6.318073241903770e-01 -6.320855701836068e-01 -6.323615610879741e-01 -6.326353050044859e-01 - -6.329068101802829e-01 -6.331760846635813e-01 -6.334431363818833e-01 -6.337079733473078e-01 -6.339706034520735e-01 - -6.342310345121693e-01 -6.344892744839461e-01 -6.347453312805855e-01 -6.349992127114430e-01 -6.352509264768633e-01 - -6.355004804526597e-01 -6.357478826585540e-01 -6.359931404400122e-01 -6.362362612918424e-01 -6.364772532644518e-01 - -6.367161239398067e-01 -6.369528807876881e-01 -6.371875315012039e-01 -6.374200836672138e-01 -6.376505447719858e-01 - -6.378789222449943e-01 -6.381052236017390e-01 -6.383294563385360e-01 -6.385516277126226e-01 -6.387717451483415e-01 - -6.389898161925324e-01 -6.392058481779943e-01 -6.394198483013303e-01 -6.396318237129481e-01 -6.398417817583982e-01 - -6.400497298004382e-01 -6.402556751053731e-01 -6.404596246811356e-01 -6.406615856182318e-01 -6.408615652398488e-01 - -6.410595705960431e-01 -6.412556087124355e-01 -6.414496867908267e-01 -6.416418117430738e-01 -6.418319904244396e-01 - -6.420202299552208e-01 -6.422065373268501e-01 -6.423909194238488e-01 -6.425733831564441e-01 -6.427539354568388e-01 - -6.429325832107947e-01 -6.431093330874931e-01 -6.432841919278923e-01 -6.434571667152847e-01 -6.436282640341581e-01 - -6.437974905134223e-01 -6.439648529819666e-01 -6.441303582355420e-01 -6.442940129046214e-01 -6.444558234243410e-01 - -6.446157964842297e-01 -6.447739387669796e-01 -6.449302567289288e-01 -6.450847570451982e-01 -6.452374463418470e-01 - -6.453883308317777e-01 -6.455374170518916e-01 -6.456847116523639e-01 -6.458302208459006e-01 -6.459739509825424e-01 - -6.461159085765001e-01 -6.462561000624228e-01 -6.463945317857885e-01 -6.465312099893501e-01 -6.466661407794220e-01 - -6.467993305071421e-01 -6.469307857586633e-01 -6.470605124176557e-01 -6.471885165505020e-01 -6.473148048129491e-01 - -6.474393831451855e-01 -6.475622574433044e-01 -6.476834341411803e-01 -6.478029193005811e-01 -6.479207188186653e-01 - -6.480368387749067e-01 -6.481512852365653e-01 -6.482640642356557e-01 -6.483751817763184e-01 -6.484846438333333e-01 - -6.485924563559199e-01 -6.486986252696630e-01 -6.488031563964390e-01 -6.489060555062011e-01 -6.490073285956434e-01 - -6.491069816182633e-01 -6.492050203757027e-01 -6.493014505946639e-01 -6.493962779796888e-01 -6.494895082497514e-01 - -6.495811472172135e-01 -6.496712006463234e-01 -6.497596741452655e-01 -6.498465734697708e-01 -6.499319043537729e-01 - -6.500156722751166e-01 -6.500978828758883e-01 -6.501785418212779e-01 -6.502576544563589e-01 -6.503352264336196e-01 - -6.504112635780723e-01 -6.504857712206107e-01 -6.505587548117625e-01 -6.506302199692129e-01 -6.507001719669850e-01 - -6.507686161481057e-01 -6.508355580770583e-01 -6.509010033515999e-01 -6.509649573333303e-01 -6.510274250599254e-01 - -6.510884119408136e-01 -6.511479234691252e-01 -6.512059649357221e-01 -6.512625414820176e-01 -6.513176583196066e-01 - -6.513713209657690e-01 -6.514235346566493e-01 -6.514743044494572e-01 -6.515236355351222e-01 -6.515715331668240e-01 - -6.516180025498758e-01 -6.516630486086969e-01 -6.517066764698182e-01 -6.517488914696901e-01 -6.517896986474616e-01 - -6.518291029696229e-01 -6.518671094474887e-01 -6.519037232298822e-01 -6.519389493677847e-01 -6.519727927034696e-01 - -6.520052582102593e-01 -6.520363509344871e-01 -6.520660759114448e-01 -6.520944379877177e-01 -6.521214419863292e-01 - -6.521470929034477e-01 -6.521713955379932e-01 -6.521943546611896e-01 -6.522159753870301e-01 -6.522362625000242e-01 - -6.522552205660485e-01 -6.522728545508729e-01 -6.522891692872490e-01 -6.523041693781095e-01 -6.523178594474156e-01 - -6.523302443147758e-01 -6.523413289626511e-01 -6.523511179648659e-01 -6.523596158248584e-01 -6.523668271884714e-01 - -6.523727568212391e-01 -6.523774093997819e-01 -6.523807893579161e-01 -6.523829012952149e-01 -6.523837498990516e-01 - -6.523833397960367e-01 -6.523816754611410e-01 -6.523787613199525e-01 -6.523746019358498e-01 -6.523692018302728e-01 - -6.523625654555820e-01 -6.523546972248629e-01 -6.523456017173497e-01 -6.523352835702680e-01 -6.523237468711672e-01 - -6.523109959032295e-01 -6.522970353197415e-01 -6.522818693382445e-01 -6.522655022842732e-01 -6.522479388337681e-01 - -6.522291831409690e-01 -6.522092393163972e-01 -6.521881118419591e-01 -6.521658050464721e-01 -6.521423231008568e-01 - -6.521176700882644e-01 -6.520918504277817e-01 -6.520648685798258e-01 -6.520367284462982e-01 -6.520074341903623e-01 - -6.519769901852531e-01 -6.519454004576026e-01 -6.519126690272374e-01 -6.518788000417296e-01 -6.518437978790763e-01 - -6.518076667685843e-01 -6.517704106505043e-01 -6.517320333460206e-01 -6.516925389358605e-01 -6.516519318553129e-01 - -6.516102158220000e-01 -6.515673946405215e-01 -6.515234728464969e-01 -6.514784543315630e-01 -6.514323427842886e-01 - -6.513851423523833e-01 -6.513368570527661e-01 -6.512874907235414e-01 -6.512370470939771e-01 -6.511855301990920e-01 - -6.511329442190841e-01 -6.510792928715797e-01 -6.510245798816351e-01 -6.509688091361985e-01 -6.509119847142907e-01 - -6.508541103488035e-01 -6.507951894034477e-01 -6.507352259931611e-01 -6.506742241942834e-01 -6.506121876059120e-01 - -6.505491199228429e-01 -6.504850249436106e-01 -6.504199065016956e-01 -6.503537680222150e-01 -6.502866130342899e-01 - -6.502184457971011e-01 -6.501492700279957e-01 -6.500790890906794e-01 -6.500079066129352e-01 -6.499357263329657e-01 - -6.498625519683058e-01 -6.497883869826074e-01 -6.497132350047277e-01 -6.496370998048885e-01 -6.495599847614121e-01 - -6.494818934475555e-01 -6.494028297363450e-01 -6.493227969968260e-01 -6.492417985197620e-01 -6.491598378013752e-01 - -6.490769185970405e-01 -6.489930446200032e-01 -6.489082192796405e-01 -6.488224457999440e-01 -6.487357275334984e-01 - -6.486480682838258e-01 -6.485594713376021e-01 -6.484699398068251e-01 -6.483794774339799e-01 -6.482880877536140e-01 - -6.481957740532812e-01 -6.481025397024727e-01 -6.480083880017639e-01 -6.479133221889776e-01 -6.478173456351086e-01 - -6.477204618036257e-01 -6.476226741599570e-01 -6.475239858039916e-01 -6.474243999826228e-01 -6.473239202990485e-01 - -6.472225498463482e-01 -6.471202916312221e-01 -6.470171489638400e-01 -6.469131252405815e-01 -6.468082238277443e-01 - -6.467024479420175e-01 -6.465958006550642e-01 -6.464882850509053e-01 -6.463799044773618e-01 -6.462706620382276e-01 - -6.461605607272912e-01 -6.460496040101232e-01 -6.459377950690467e-01 -6.458251367734501e-01 -6.457116323868038e-01 - -6.455972850655802e-01 -6.454820977029684e-01 -6.453660732942879e-01 -6.452492150754419e-01 -6.451315264887545e-01 - -6.450130102914885e-01 -6.448936692680686e-01 -6.447735068128447e-01 -6.446525260129213e-01 -6.445307296530088e-01 - -6.444081203587793e-01 -6.442847014715996e-01 -6.441604765089356e-01 -6.440354480546840e-01 -6.439096188724848e-01 - -6.437829920095609e-01 -6.436555704731397e-01 -6.435273570693492e-01 -6.433983545533010e-01 -6.432685663163126e-01 - -6.431379953365300e-01 -6.430066439769492e-01 -6.428745153347271e-01 -6.427416124750638e-01 -6.426079380140648e-01 - -6.424734947555180e-01 -6.423382856273998e-01 -6.422023135830728e-01 -6.420655814260000e-01 -6.419280919255173e-01 - -6.417898479598759e-01 -6.416508523135933e-01 -6.415111076305331e-01 -6.413706163966455e-01 -6.412293816393564e-01 - -6.410874066048897e-01 -6.409446936267265e-01 -6.408012453136449e-01 -6.406570646910840e-01 -6.405121544270317e-01 - -6.403665170374713e-01 -6.402201550644944e-01 -6.400730715072882e-01 -6.399252691822962e-01 -6.397767504407681e-01 - -6.396275180930010e-01 -6.394775749890055e-01 -6.393269236107165e-01 -6.391755662191552e-01 -6.390235053902433e-01 - -6.388707445708105e-01 -6.387172861694177e-01 -6.385631322023312e-01 -6.384082857966726e-01 -6.382527494896121e-01 - -6.380965253642142e-01 -6.379396162401521e-01 -6.377820248167250e-01 -6.376237535602883e-01 -6.374648052204416e-01 - -6.373051823107587e-01 -6.371448870124290e-01 -6.369839218821269e-01 -6.368222895078627e-01 -6.366599923302766e-01 - -6.364970329561520e-01 -6.363334139746031e-01 -6.361691377885151e-01 -6.360042067688202e-01 -6.358386233547334e-01 - -6.356723901317635e-01 -6.355055093799952e-01 -6.353379833438523e-01 -6.351698147827204e-01 -6.350010061497325e-01 - -6.348315596278746e-01 -6.346614776297652e-01 -6.344907627044540e-01 -6.343194173354602e-01 -6.341474433478579e-01 - -6.339748431233465e-01 -6.338016197812808e-01 -6.336277753787244e-01 -6.334533118997744e-01 -6.332782318265875e-01 - -6.331025376588558e-01 -6.329262316544187e-01 -6.327493157114107e-01 -6.325717923863455e-01 -6.323936643403999e-01 - -6.322149336030685e-01 -6.320356024195775e-01 -6.318556731749607e-01 -6.316751480498738e-01 -6.314940290711796e-01 - -6.313123183267710e-01 -6.311300184615836e-01 -6.309471319109403e-01 -6.307636607640942e-01 -6.305796070902886e-01 - -6.303949730482692e-01 -6.302097608691579e-01 -6.300239725606558e-01 -6.298376103756032e-01 -6.296506769748604e-01 - -6.294631743864889e-01 -6.292751044804592e-01 -6.290864694027335e-01 -6.288972714311484e-01 -6.287075127245377e-01 - -6.285171950849623e-01 -6.283263208775478e-01 -6.281348926187029e-01 -6.279429120773061e-01 -6.277503812180564e-01 - -6.275573022752827e-01 -6.273636774541002e-01 -6.271695087389834e-01 -6.269747979757735e-01 -6.267795473573458e-01 - -6.265837591630624e-01 -6.263874355834504e-01 -6.261905784094625e-01 -6.259931895045528e-01 -6.257952710369122e-01 - -6.255968250363517e-01 -6.253978534898084e-01 -6.251983584520242e-01 -6.249983420853732e-01 -6.247978064572296e-01 - -6.245967533125147e-01 -6.243951846742302e-01 -6.241931026018996e-01 -6.239905086686763e-01 -6.237874050561640e-01 - -6.235837942608177e-01 -6.233796778475696e-01 -6.231750576026635e-01 -6.229699356978790e-01 -6.227643140512986e-01 - -6.225581944126894e-01 -6.223515785171654e-01 -6.221444686516174e-01 -6.219368669106876e-01 -6.217287748516653e-01 - -6.215201944179222e-01 -6.213111276341791e-01 -6.211015763012264e-01 -6.208915420627059e-01 -6.206810267189914e-01 - -6.204700325606027e-01 -6.202585614407183e-01 -6.200466150025669e-01 -6.198341952555039e-01 -6.196213039807257e-01 - -6.194079427661365e-01 -6.191941133919308e-01 -6.189798178811384e-01 -6.187650583625046e-01 -6.185498365366234e-01 - -6.183341539791172e-01 -6.181180123373080e-01 -6.179014136693182e-01 -6.176843597571294e-01 -6.174668518753883e-01 - -6.172488922358068e-01 -6.170304830078728e-01 -6.168116255085183e-01 -6.165923213940302e-01 -6.163725725542526e-01 - -6.161523808379610e-01 -6.159317477445455e-01 -6.157106747923912e-01 -6.154891641891720e-01 -6.152672177134336e-01 - -6.150448367622374e-01 -6.148220230127394e-01 -6.145987783325538e-01 -6.143751045698781e-01 -6.141510029326600e-01 - -6.139264750393221e-01 -6.137015231470567e-01 -6.134761489851926e-01 -6.132503540152313e-01 -6.130241396532106e-01 - -6.127975076851865e-01 -6.125704598048077e-01 -6.123429972989166e-01 -6.121151221351967e-01 -6.118868363314907e-01 - -6.116581411278224e-01 -6.114290380220153e-01 -6.111995287783158e-01 -6.109696151823703e-01 -6.107392985450728e-01 - -6.105085801024925e-01 -6.102774622058419e-01 -6.100459465922933e-01 -6.098140342484372e-01 -6.095817267256873e-01 - -6.093490257933440e-01 -6.091159331809802e-01 -6.088824500709522e-01 -6.086485779905337e-01 -6.084143191489354e-01 - -6.081796748129595e-01 -6.079446461968719e-01 -6.077092351925356e-01 -6.074734432434898e-01 -6.072372716150822e-01 - -6.070007218360295e-01 -6.067637956065657e-01 -6.065264946232775e-01 -6.062888203126375e-01 -6.060507740692458e-01 - -6.058123573561740e-01 -6.055735718185850e-01 -6.053344188005130e-01 -6.050948994718379e-01 -6.048550157592759e-01 - -6.046147693250087e-01 -6.043741612917217e-01 -6.041331930896253e-01 -6.038918662688606e-01 -6.036501823335466e-01 - -6.034081424814672e-01 -6.031657481058161e-01 -6.029230011393863e-01 -6.026799028730719e-01 -6.024364544399844e-01 - -6.021926574869638e-01 -6.019485136055120e-01 -6.017040241022006e-01 -6.014591897708976e-01 -6.012140122415236e-01 - -6.009684936432825e-01 -6.007226351565053e-01 -6.004764378633045e-01 -6.002299030368295e-01 -5.999830322604393e-01 - -5.997358269112610e-01 -5.994882881008079e-01 -5.992404174674395e-01 -5.989922165630734e-01 -5.987436865327392e-01 - -5.984948286273432e-01 -5.982456442781595e-01 -5.979961350600861e-01 -5.977463018616249e-01 -5.974961457245347e-01 - -5.972456688462123e-01 -5.969948725706038e-01 -5.967437577688297e-01 -5.964923259025159e-01 -5.962405782771161e-01 - -5.959885160038786e-01 -5.957361402849749e-01 -5.954834525607696e-01 -5.952304544228757e-01 -5.949771471628894e-01 - -5.947235319540697e-01 -5.944696099654433e-01 -5.942153825546195e-01 -5.939608509107162e-01 -5.937060159741117e-01 - -5.934508794411635e-01 -5.931954428951332e-01 -5.929397071302310e-01 -5.926836734445704e-01 -5.924273432987167e-01 - -5.921707177793331e-01 -5.919137978828047e-01 -5.916565847753502e-01 -5.913990801532651e-01 -5.911412853604616e-01 - -5.908832013941032e-01 -5.906248293335863e-01 -5.903661704565201e-01 -5.901072261246485e-01 -5.898479972855557e-01 - -5.895884850905705e-01 -5.893286910470348e-01 -5.890686164387193e-01 -5.888082623596927e-01 -5.885476297953414e-01 - -5.882867200485414e-01 -5.880255342895034e-01 -5.877640732646211e-01 -5.875023385228563e-01 -5.872403317009627e-01 - -5.869780535979796e-01 -5.867155052441069e-01 -5.864526878805291e-01 -5.861896026754034e-01 -5.859262506932092e-01 - -5.856626329801135e-01 -5.853987507817091e-01 -5.851346053972879e-01 -5.848701980701103e-01 -5.846055297559873e-01 - -5.843406014627009e-01 -5.840754143260567e-01 -5.838099692919883e-01 -5.835442675863415e-01 -5.832783108438364e-01 - -5.830120998737411e-01 -5.827456354637697e-01 -5.824789190313094e-01 -5.822119517157962e-01 -5.819447343999242e-01 - -5.816772678604962e-01 -5.814095534384316e-01 -5.811415926659900e-01 -5.808733865100626e-01 -5.806049358083534e-01 - -5.803362414940428e-01 -5.800673049021045e-01 -5.797981269727348e-01 -5.795287083747186e-01 -5.792590507223763e-01 - -5.789891553127540e-01 -5.787190227795775e-01 -5.784486540773595e-01 -5.781780503537821e-01 -5.779072127885909e-01 - -5.776361421027820e-01 -5.773648392415993e-01 -5.770933058481036e-01 -5.768215427543451e-01 -5.765495506173008e-01 - -5.762773307782053e-01 -5.760048843724456e-01 -5.757322122309633e-01 -5.754593149355522e-01 -5.751861936930261e-01 - -5.749128500443350e-01 -5.746392847733658e-01 -5.743654986749642e-01 -5.740914927526973e-01 -5.738172681170074e-01 - -5.735428256834612e-01 -5.732681661997935e-01 -5.729932909950833e-01 -5.727182011898047e-01 -5.724428973589288e-01 - -5.721673806475209e-01 -5.718916522032619e-01 -5.716157126986885e-01 -5.713395629769044e-01 -5.710632040862346e-01 - -5.707866372440725e-01 -5.705098634203313e-01 -5.702328834166335e-01 -5.699556980810941e-01 -5.696783084118523e-01 - -5.694007154024264e-01 -5.691229196446771e-01 -5.688449222662509e-01 -5.685667247951188e-01 -5.682883277592247e-01 - -5.680097317796297e-01 -5.677309379467054e-01 -5.674519473718960e-01 -5.671727608332666e-01 -5.668933787438524e-01 - -5.666138024324125e-01 -5.663340332775648e-01 -5.660540719736767e-01 -5.657739191147048e-01 -5.654935755198692e-01 - -5.652130424887296e-01 -5.649323205844615e-01 -5.646514102596061e-01 -5.643703131320561e-01 -5.640890302500955e-01 - -5.638075621229782e-01 -5.635259096013298e-01 -5.632440735413435e-01 -5.629620547371306e-01 -5.626798540413637e-01 - -5.623974724401825e-01 -5.621149109968532e-01 -5.618321704141040e-01 -5.615492514232792e-01 -5.612661549867731e-01 - -5.609828820346520e-01 -5.606994332802816e-01 -5.604158091721365e-01 -5.601320109850756e-01 -5.598480400285579e-01 - -5.595638966628304e-01 -5.592795815381203e-01 -5.589950956088516e-01 -5.587104398719418e-01 -5.584256150214867e-01 - -5.581406216413944e-01 -5.578554608147975e-01 -5.575701335442586e-01 -5.572846406020895e-01 -5.569989825973618e-01 - -5.567131602740183e-01 -5.564271745453506e-01 -5.561410260628522e-01 -5.558547156725416e-01 -5.555682445647333e-01 - -5.552816133007876e-01 -5.549948224318785e-01 -5.547078730025937e-01 -5.544207659049382e-01 -5.541335017868810e-01 - -5.538460810525171e-01 -5.535585047530838e-01 -5.532707741030544e-01 -5.529828895161875e-01 -5.526948516856666e-01 - -5.524066615722431e-01 -5.521183198617187e-01 -5.518298271294942e-01 -5.515411840216864e-01 -5.512523916981388e-01 - -5.509634510475757e-01 -5.506743625070015e-01 -5.503851268106821e-01 -5.500957448096843e-01 -5.498062173123895e-01 - -5.495165448046009e-01 -5.492267279674086e-01 -5.489367680360671e-01 -5.486466657159732e-01 -5.483564214808752e-01 - -5.480660360175322e-01 -5.477755101695411e-01 -5.474848446983241e-01 -5.471940399297857e-01 -5.469030967097296e-01 - -5.466120162347039e-01 -5.463207992130580e-01 -5.460294461220425e-01 -5.457379574365921e-01 -5.454463341419615e-01 - -5.451545769787555e-01 -5.448626863052353e-01 -5.445706629798505e-01 -5.442785079610155e-01 -5.439862220351145e-01 - -5.436938056623958e-01 -5.434012594168094e-01 -5.431085842649811e-01 -5.428157805859503e-01 -5.425228488112607e-01 - -5.422297902211034e-01 -5.419366056396356e-01 -5.416432955189590e-01 -5.413498603513526e-01 -5.410563008101139e-01 - -5.407626176406882e-01 -5.404688113584152e-01 -5.401748827259091e-01 -5.398808327262222e-01 -5.395866619984641e-01 - -5.392923710452394e-01 -5.389979603718316e-01 -5.387034307479797e-01 -5.384087828255361e-01 -5.381140170098579e-01 - -5.378191341794292e-01 -5.375241352697128e-01 -5.372290208939874e-01 -5.369337913756430e-01 -5.366384472427702e-01 - -5.363429897090184e-01 -5.360474189692397e-01 -5.357517350808286e-01 -5.354559397287709e-01 -5.351600336380363e-01 - -5.348640167550405e-01 -5.345678898586708e-01 -5.342716537895550e-01 -5.339753091509816e-01 -5.336788560795809e-01 - -5.333822952812678e-01 -5.330856281219807e-01 -5.327888549366336e-01 -5.324919760228772e-01 -5.321949921530423e-01 - -5.318979038948367e-01 -5.316007117591099e-01 -5.313034163655616e-01 -5.310060185016283e-01 -5.307085188690476e-01 - -5.304109178113635e-01 -5.301132159560333e-01 -5.298154141057816e-01 -5.295175129068631e-01 -5.292195125739295e-01 - -5.289214133220888e-01 -5.286232164928936e-01 -5.283249229043371e-01 -5.280265326905970e-01 -5.277280463629660e-01 - -5.274294646406563e-01 -5.271307882435877e-01 -5.268320172699235e-01 -5.265331522204252e-01 -5.262341943956992e-01 - -5.259351442515741e-01 -5.256360020246456e-01 -5.253367683007200e-01 -5.250374438802079e-01 -5.247380293156688e-01 - -5.244385244793137e-01 -5.241389303158239e-01 -5.238392481089597e-01 -5.235394779437145e-01 -5.232396201567239e-01 - -5.229396754457293e-01 -5.226396444439171e-01 -5.223395275325885e-01 -5.220393250130385e-01 -5.217390378529512e-01 - -5.214386667612969e-01 -5.211382119631184e-01 -5.208376739941909e-01 -5.205370535049869e-01 -5.202363510969753e-01 - -5.199355670763710e-01 -5.196347019022574e-01 -5.193337564915598e-01 -5.190327313042545e-01 -5.187316266472318e-01 - -5.184304431068453e-01 -5.181291813913007e-01 -5.178278420262173e-01 -5.175264249304404e-01 -5.172249309061349e-01 - -5.169233612064826e-01 -5.166217158673360e-01 -5.163199951550123e-01 -5.160181998004911e-01 -5.157163303784532e-01 - -5.154143871836301e-01 -5.151123703899823e-01 -5.148102810445049e-01 -5.145081200022412e-01 -5.142058873966443e-01 - -5.139035834879907e-01 -5.136012088439446e-01 -5.132987643470369e-01 -5.129962500176725e-01 -5.126936660139045e-01 - -5.123910137907831e-01 -5.120882937169244e-01 -5.117855056864241e-01 -5.114826505830118e-01 -5.111797289351894e-01 - -5.108767409175631e-01 -5.105736869791608e-01 -5.102705678009448e-01 -5.099673841164564e-01 -5.096641361609235e-01 - -5.093608243087677e-01 -5.090574492425100e-01 -5.087540114820200e-01 -5.084505112619658e-01 -5.081469486274651e-01 - -5.078433245912960e-01 -5.075396400795943e-01 -5.072358951124865e-01 -5.069320899536702e-01 -5.066282251477461e-01 - -5.063243014155288e-01 -5.060203189866231e-01 -5.057162780382299e-01 -5.054121795257869e-01 -5.051080240346536e-01 - -5.048038117428125e-01 -5.044995428560932e-01 -5.041952179946867e-01 -5.038908379779851e-01 -5.035864027540428e-01 - -5.032819126747086e-01 -5.029773687584369e-01 -5.026727713803431e-01 -5.023681207203433e-01 -5.020634170773620e-01 - -5.017586611304518e-01 -5.014538534087800e-01 -5.011489939472488e-01 -5.008440834008399e-01 -5.005391225202214e-01 - -5.002341114848970e-01 -4.999290507534227e-01 -4.996239408965545e-01 -4.993187821357916e-01 -4.990135746184980e-01 - -4.987083187010172e-01 -4.984030154770353e-01 -4.980976654859903e-01 -4.977922686591017e-01 -4.974868253646026e-01 - -4.971813362150598e-01 -4.968758018164073e-01 -4.965702219796178e-01 -4.962645970518764e-01 -4.959589283986423e-01 - -4.956532161259331e-01 -4.953474601672504e-01 -4.950416611894621e-01 -4.947358197709370e-01 -4.944299362131679e-01 - -4.941240104625670e-01 -4.938180432013966e-01 -4.935120353360559e-01 -4.932059869696777e-01 -4.928998983832586e-01 - -4.925937700937396e-01 -4.922876025288242e-01 -4.919813957951697e-01 -4.916751499430368e-01 -4.913688660561277e-01 - -4.910625447982750e-01 -4.907561860728009e-01 -4.904497902858990e-01 -4.901433579647613e-01 -4.898368894758774e-01 - -4.895303847877975e-01 -4.892238442443610e-01 -4.889172690570770e-01 -4.886106594399146e-01 -4.883040152916479e-01 - -4.879973371198497e-01 -4.876906255185612e-01 -4.873838808516193e-01 -4.870771028969680e-01 -4.867702923235035e-01 - -4.864634502410182e-01 -4.861565765237592e-01 -4.858496713307078e-01 -4.855427352755911e-01 -4.852357685536697e-01 - -4.849287714451036e-01 -4.846217444589359e-01 -4.843146879997467e-01 -4.840076025123002e-01 -4.837004885060202e-01 - -4.833933461066379e-01 -4.830861755003688e-01 -4.827789772517898e-01 -4.824717516127337e-01 -4.821644988235214e-01 - -4.818572195031119e-01 -4.815499140763169e-01 -4.812425828318353e-01 -4.809352261296052e-01 -4.806278443199989e-01 - -4.803204376463540e-01 -4.800130060714603e-01 -4.797055501717924e-01 -4.793980709573083e-01 -4.790905684347367e-01 - -4.787830426340720e-01 -4.784754939887473e-01 -4.781679231200341e-01 -4.778603302286951e-01 -4.775527150015833e-01 - -4.772450784284375e-01 -4.769374213667171e-01 -4.766297434623847e-01 -4.763220450397429e-01 -4.760143266869929e-01 - -4.757065886153464e-01 -4.753988310011543e-01 -4.750910541528841e-01 -4.747832586964973e-01 -4.744754450010169e-01 - -4.741676132522562e-01 -4.738597638648681e-01 -4.735518971269201e-01 -4.732440131603057e-01 -4.729361121339242e-01 - -4.726281945136708e-01 -4.723202610280838e-01 -4.720123119889466e-01 -4.717043475548789e-01 -4.713963678930571e-01 - -4.710883732580126e-01 -4.707803639362851e-01 -4.704723402372425e-01 -4.701643027667922e-01 -4.698562520096238e-01 - -4.695481878708884e-01 -4.692401107063794e-01 -4.689320210638210e-01 -4.686239190614940e-01 -4.683158048406638e-01 - -4.680076787162389e-01 -4.676995413185929e-01 -4.673913930202820e-01 -4.670832339045677e-01 -4.667750641928977e-01 - -4.664668842720264e-01 -4.661586945788764e-01 -4.658504950199774e-01 -4.655422858974875e-01 -4.652340682220931e-01 - -4.649258420178881e-01 -4.646176071935555e-01 -4.643093642460228e-01 -4.640011135361189e-01 -4.636928552533583e-01 - -4.633845894780055e-01 -4.630763167063440e-01 -4.627680375263447e-01 -4.624597520114774e-01 -4.621514604268375e-01 - -4.618431632080228e-01 -4.615348605890552e-01 -4.612265525685530e-01 -4.609182391698630e-01 -4.606099213200685e-01 - -4.603015994943055e-01 -4.599932734377760e-01 -4.596849434943749e-01 -4.593766101319814e-01 -4.590682736286037e-01 - -4.587599339472412e-01 -4.584515913122191e-01 -4.581432465762054e-01 -4.578348999443045e-01 -4.575265513883392e-01 - -4.572182012155285e-01 -4.569098498253546e-01 -4.566014974456956e-01 -4.562931438038699e-01 -4.559847894939479e-01 - -4.556764355440957e-01 -4.553680818446301e-01 -4.550597283221777e-01 -4.547513752454754e-01 -4.544430231318768e-01 - -4.541346721146189e-01 -4.538263219879204e-01 -4.535179736207505e-01 -4.532096276207381e-01 -4.529012837320638e-01 - -4.525929421989657e-01 -4.522846033793929e-01 -4.519762674029318e-01 -4.516679344715044e-01 -4.513596049388520e-01 - -4.510512793496801e-01 -4.507429578901284e-01 -4.504346405869434e-01 -4.501263277269192e-01 -4.498180196893253e-01 - -4.495097167463535e-01 -4.492014186979058e-01 -4.488931259139300e-01 -4.485848392328776e-01 -4.482765586745183e-01 - -4.479682843350483e-01 -4.476600166157323e-01 -4.473517555800268e-01 -4.470435013321629e-01 -4.467352542154915e-01 - -4.464270145748750e-01 -4.461187827567155e-01 -4.458105590951706e-01 -4.455023436689998e-01 -4.451941365719282e-01 - -4.448859382022067e-01 -4.445777486373541e-01 -4.442695679571050e-01 -4.439613968717006e-01 -4.436532356916815e-01 - -4.433450843880059e-01 -4.430369431657580e-01 -4.427288122616561e-01 -4.424206918620519e-01 -4.421125820372482e-01 - -4.418044832064567e-01 -4.414963960811867e-01 -4.411883204960218e-01 -4.408802564087612e-01 -4.405722043668788e-01 - -4.402641646390490e-01 -4.399561373068210e-01 -4.396481224088197e-01 -4.393401203468038e-01 -4.390321316119934e-01 - -4.387241564347777e-01 -4.384161947343386e-01 -4.381082465266398e-01 -4.378003125430411e-01 -4.374923928277115e-01 - -4.371844871230922e-01 -4.368765963346815e-01 -4.365687207997857e-01 -4.362608601883623e-01 -4.359530147661063e-01 - -4.356451849773876e-01 -4.353373711547212e-01 -4.350295729831375e-01 -4.347217906709347e-01 -4.344140253247259e-01 - -4.341062767701542e-01 -4.337985447574569e-01 -4.334908298973194e-01 -4.331831324142745e-01 -4.328754522838512e-01 - -4.325677895304312e-01 -4.322601446380396e-01 -4.319525182069930e-01 -4.316449103351276e-01 -4.313373209430619e-01 - -4.310297500384340e-01 -4.307221981580691e-01 -4.304146654764764e-01 -4.301071518609876e-01 -4.297996578556980e-01 - -4.294921838432407e-01 -4.291847298181669e-01 -4.288772959356691e-01 -4.285698824691314e-01 -4.282624896947286e-01 - -4.279551173581843e-01 -4.276477655542056e-01 -4.273404353166645e-01 -4.270331268873108e-01 -4.267258400671970e-01 - -4.264185747737768e-01 -4.261113314513503e-01 -4.258041105111009e-01 -4.254969114260224e-01 -4.251897346526543e-01 - -4.248825811839114e-01 -4.245754507348872e-01 -4.242683433304872e-01 -4.239612594489042e-01 -4.236541990429175e-01 - -4.233471621233121e-01 -4.230401489624036e-01 -4.227331599159186e-01 -4.224261953202194e-01 -4.221192554076946e-01 - -4.218123401221037e-01 -4.215054495276057e-01 -4.211985840665567e-01 -4.208917437341202e-01 -4.205849285470991e-01 - -4.202781391077526e-01 -4.199713756820169e-01 -4.196646382796324e-01 -4.193579269625680e-01 -4.190512419898234e-01 - -4.187445835885104e-01 -4.184379514023820e-01 -4.181313458657921e-01 -4.178247679943504e-01 -4.175182174706034e-01 - -4.172116941638125e-01 -4.169051985589959e-01 -4.165987308801878e-01 -4.162922910262470e-01 -4.159858787333477e-01 - -4.156794948456864e-01 -4.153731400237493e-01 -4.150668138055245e-01 -4.147605162480433e-01 -4.144542477033889e-01 - -4.141480084083939e-01 -4.138417983331389e-01 -4.135356175072968e-01 -4.132294665425894e-01 -4.129233456523720e-01 - -4.126172547353913e-01 -4.123111939769975e-01 -4.120051637027982e-01 -4.116991641480549e-01 -4.113931948631621e-01 - -4.110872561089984e-01 -4.107813489720965e-01 -4.104754732505308e-01 -4.101696286974395e-01 -4.098638156566466e-01 - -4.095580344057681e-01 -4.092522850492459e-01 -4.089465675148873e-01 -4.086408821301867e-01 -4.083352292811099e-01 - -4.080296090087697e-01 -4.077240214925531e-01 -4.074184669621912e-01 -4.071129454474836e-01 -4.068074568206541e-01 - -4.065020011172992e-01 -4.061965792344674e-01 -4.058911914234347e-01 -4.055858372701102e-01 -4.052805169731385e-01 - -4.049752308691225e-01 -4.046699791746853e-01 -4.043647616984872e-01 -4.040595785275335e-01 -4.037544302850327e-01 - -4.034493171430220e-01 -4.031442391412985e-01 -4.028391964411297e-01 -4.025341890399178e-01 -4.022292169515432e-01 - -4.019242804318620e-01 -4.016193797575413e-01 -4.013145151618574e-01 -4.010096867767989e-01 -4.007048946739946e-01 - -4.004001389575452e-01 -4.000954199442892e-01 -3.997907376333255e-01 -3.994860918450180e-01 -3.991814831388100e-01 - -3.988769118682245e-01 -3.985723779299208e-01 -3.982678813725196e-01 -3.979634224118638e-01 -3.976590013430957e-01 - -3.973546179557737e-01 -3.970502723184750e-01 -3.967459652757308e-01 -3.964416967373386e-01 -3.961374664325438e-01 - -3.958332748416728e-01 -3.955291221412219e-01 -3.952250082276700e-01 -3.949209329883424e-01 -3.946168969005399e-01 - -3.943129006192436e-01 -3.940089438207542e-01 -3.937050264421336e-01 -3.934011488327164e-01 -3.930973111392007e-01 - -3.927935133510078e-01 -3.924897554398895e-01 -3.921860379028622e-01 -3.918823611410527e-01 -3.915787251272155e-01 - -3.912751296302741e-01 -3.909715747221262e-01 -3.906680610479274e-01 -3.903645884467465e-01 -3.900611567141484e-01 - -3.897577665105899e-01 -3.894544180732338e-01 -3.891511112918067e-01 -3.888478460867855e-01 -3.885446227676595e-01 - -3.882414417069796e-01 -3.879383024897914e-01 -3.876352053351357e-01 -3.873321510269954e-01 -3.870291394376005e-01 - -3.867261704550462e-01 -3.864232442776043e-01 -3.861203610538394e-01 -3.858175208256477e-01 -3.855147235659399e-01 - -3.852119696012977e-01 -3.849092593053318e-01 -3.846065928280623e-01 -3.843039700003283e-01 -3.840013907871894e-01 - -3.836988557264463e-01 -3.833963646642737e-01 -3.830939173673272e-01 -3.827915146861536e-01 -3.824891567344230e-01 - -3.821868431312930e-01 -3.818845742897094e-01 -3.815823505036508e-01 -3.812801717050347e-01 -3.809780375081945e-01 - -3.806759481537249e-01 -3.803739045452896e-01 -3.800719066553854e-01 -3.797699542729503e-01 -3.794680474344709e-01 - -3.791661864151066e-01 -3.788643713579414e-01 -3.785626020610045e-01 -3.782608787892401e-01 -3.779592019649877e-01 - -3.776575717504184e-01 -3.773559879986245e-01 -3.770544506277551e-01 -3.767529601718599e-01 -3.764515165488658e-01 - -3.761501194541416e-01 -3.758487697291592e-01 -3.755474675286999e-01 -3.752462123142175e-01 -3.749450044400430e-01 - -3.746438442933219e-01 -3.743427319385532e-01 -3.740416670860849e-01 -3.737406497610264e-01 -3.734396805632812e-01 - -3.731387597991040e-01 -3.728378873981389e-01 -3.725370629746288e-01 -3.722362869751284e-01 -3.719355598195744e-01 - -3.716348809475082e-01 -3.713342505611615e-01 -3.710336692885385e-01 -3.707331373206220e-01 -3.704326544188714e-01 - -3.701322203470578e-01 -3.698318357923215e-01 -3.695315007664240e-01 -3.692312147431765e-01 -3.689309784821330e-01 - -3.686307923312130e-01 -3.683306558583173e-01 -3.680305692832940e-01 -3.677305328772401e-01 -3.674305466155561e-01 - -3.671306102835627e-01 -3.668307239979260e-01 -3.665308885123383e-01 -3.662311039528895e-01 -3.659313700864294e-01 - -3.656316867340536e-01 -3.653320542170925e-01 -3.650324728818179e-01 -3.647329423252613e-01 -3.644334627823841e-01 - -3.641340348652060e-01 -3.638346584224414e-01 -3.635353333854674e-01 -3.632360599381753e-01 -3.629368383087880e-01 - -3.626376683911322e-01 -3.623385498640058e-01 -3.620394834143431e-01 -3.617404694429358e-01 -3.614415075289109e-01 - -3.611425978472304e-01 -3.608437406892576e-01 -3.605449360396625e-01 -3.602461837170217e-01 -3.599474837636126e-01 - -3.596488368123176e-01 -3.593502429497555e-01 -3.590517019950174e-01 -3.587532141258951e-01 -3.584547794364419e-01 - -3.581563978967544e-01 -3.578580694598877e-01 -3.575597943932133e-01 -3.572615731273898e-01 -3.569634054963255e-01 - -3.566652915450074e-01 -3.563672316398869e-01 -3.560692255181004e-01 -3.557712730433470e-01 -3.554733745722332e-01 - -3.551755304325120e-01 -3.548777407381354e-01 -3.545800053200450e-01 -3.542823243820459e-01 -3.539846981602633e-01 - -3.536871265064687e-01 -3.533896092936707e-01 -3.530921466577667e-01 -3.527947392696623e-01 -3.524973870763591e-01 - -3.522000896417020e-01 -3.519028473926252e-01 -3.516056606257513e-01 -3.513085292624320e-01 -3.510114529438408e-01 - -3.507144318797571e-01 -3.504174668509267e-01 -3.501205576763053e-01 -3.498237041407538e-01 -3.495269064579332e-01 - -3.492301648012658e-01 -3.489334792023763e-01 -3.486368495320163e-01 -3.483402759532310e-01 -3.480437587608516e-01 - -3.477472981563033e-01 -3.474508940116457e-01 -3.471545462266357e-01 -3.468582552838557e-01 -3.465620210594309e-01 - -3.462658431862374e-01 -3.459697223261950e-01 -3.456736587298253e-01 -3.453776521244075e-01 -3.450817025977070e-01 - -3.447858103250944e-01 -3.444899754033867e-01 -3.441941976114102e-01 -3.438984770490408e-01 -3.436028143288083e-01 - -3.433072093931014e-01 -3.430116620696204e-01 -3.427161725111446e-01 -3.424207408695913e-01 -3.421253671506906e-01 - -3.418300511322294e-01 -3.415347931565998e-01 -3.412395936962896e-01 -3.409444525560181e-01 -3.406493696743920e-01 - -3.403543451949735e-01 -3.400593792856730e-01 -3.397644718554241e-01 -3.394696227303268e-01 -3.391748324448361e-01 - -3.388801012525273e-01 -3.385854289098167e-01 -3.382908154719833e-01 -3.379962610967925e-01 -3.377017658856785e-01 - -3.374073296405456e-01 -3.371129523992028e-01 -3.368186347618567e-01 -3.365243767275647e-01 -3.362301780997549e-01 - -3.359360390044588e-01 -3.356419595939377e-01 -3.353479398983790e-01 -3.350539796822969e-01 -3.347600792157354e-01 - -3.344662390001809e-01 -3.341724588683134e-01 -3.338787387386647e-01 -3.335850787505256e-01 -3.332914790393797e-01 - -3.329979395469141e-01 -3.327044601082655e-01 -3.324110411740308e-01 -3.321176830325031e-01 -3.318243854727410e-01 - -3.315311485033696e-01 -3.312379722613320e-01 -3.309448568815591e-01 -3.306518021855764e-01 -3.303588081394571e-01 - -3.300658753265905e-01 -3.297730038003383e-01 -3.294801933460689e-01 -3.291874440822869e-01 -3.288947561448500e-01 - -3.286021295596533e-01 -3.283095641084477e-01 -3.280170600152969e-01 -3.277246178092963e-01 -3.274322373144385e-01 - -3.271399184133136e-01 -3.268476612759387e-01 -3.265554660369243e-01 -3.262633326374516e-01 -3.259712608638953e-01 - -3.256792511518811e-01 -3.253873038511834e-01 -3.250954187049387e-01 -3.248035957166725e-01 -3.245118350464998e-01 - -3.242201368055027e-01 -3.239285008232202e-01 -3.236369270127419e-01 -3.233454159517716e-01 -3.230539677655248e-01 - -3.227625822208953e-01 -3.224712593689608e-01 -3.221799993547627e-01 -3.218888022707884e-01 -3.215976678728723e-01 - -3.213065962862219e-01 -3.210155880538063e-01 -3.207246430922022e-01 -3.204337612603162e-01 -3.201429426545060e-01 - -3.198521874188910e-01 -3.195614955407240e-01 -3.192708667833873e-01 -3.189803015317205e-01 -3.186898001852494e-01 - -3.183993624745159e-01 -3.181089883645859e-01 -3.178186780215274e-01 -3.175284315788672e-01 -3.172382488912609e-01 - -3.169481298117736e-01 -3.166580748847834e-01 -3.163680842820584e-01 -3.160781577505636e-01 -3.157882953403168e-01 - -3.154984971942622e-01 -3.152087634033934e-01 -3.149190937439705e-01 -3.146294882798918e-01 -3.143399475483734e-01 - -3.140504715109739e-01 -3.137610600081304e-01 -3.134717131245625e-01 -3.131824310053718e-01 -3.128932136614712e-01 - -3.126040608259110e-01 -3.123149728003283e-01 -3.120259500284038e-01 -3.117369923103007e-01 -3.114480995811182e-01 - -3.111592719695180e-01 -3.108705096041851e-01 -3.105818123704323e-01 -3.102931800853200e-01 -3.100046132424714e-01 - -3.097161120700553e-01 -3.094276763275429e-01 -3.091393060498078e-01 -3.088510013669117e-01 -3.085627623567511e-01 - -3.082745888090075e-01 -3.079864807413559e-01 -3.076984387104112e-01 -3.074104627037881e-01 -3.071225525229602e-01 - -3.068347082674415e-01 -3.065469300647063e-01 -3.062592179233167e-01 -3.059715715883658e-01 -3.056839913222955e-01 - -3.053964776128304e-01 -3.051090302429263e-01 -3.048216491115613e-01 -3.045343343664140e-01 -3.042470861256498e-01 - -3.039599042912569e-01 -3.036727886539801e-01 -3.033857396783212e-01 -3.030987576532087e-01 -3.028118423290159e-01 - -3.025249936916685e-01 -3.022382118572411e-01 -3.019514969324824e-01 -3.016648487319269e-01 -3.013782672163520e-01 - -3.010917529380510e-01 -3.008053059332530e-01 -3.005189259718208e-01 -3.002326131255288e-01 -2.999463675243501e-01 - -2.996601892115071e-01 -2.993740779431134e-01 -2.990880338991673e-01 -2.988020575697556e-01 -2.985161488129333e-01 - -2.982303074956766e-01 -2.979445337070337e-01 -2.976588275957710e-01 -2.973731891105994e-01 -2.970876179949718e-01 - -2.968021146693378e-01 -2.965166794729635e-01 -2.962313121299224e-01 -2.959460126205053e-01 -2.956607810824475e-01 - -2.953756176130727e-01 -2.950905220348498e-01 -2.948054942542040e-01 -2.945205348259674e-01 -2.942356438398593e-01 - -2.939508210351428e-01 -2.936660664737455e-01 -2.933813802767271e-01 -2.930967624892026e-01 -2.928122128931882e-01 - -2.925277316158055e-01 -2.922433191494531e-01 -2.919589753765323e-01 -2.916747001400424e-01 -2.913904935350139e-01 - -2.911063557118664e-01 -2.908222866434848e-01 -2.905382860439090e-01 -2.902543542778646e-01 -2.899704917370004e-01 - -2.896866981425306e-01 -2.894029734511842e-01 -2.891193178139609e-01 -2.888357313345801e-01 -2.885522138545054e-01 - -2.882687652243500e-01 -2.879853859636904e-01 -2.877020762131379e-01 -2.874188357014512e-01 -2.871356645025479e-01 - -2.868525627422169e-01 -2.865695304469716e-01 -2.862865673963798e-01 -2.860036736642309e-01 -2.857208497673618e-01 - -2.854380956360413e-01 -2.851554110854154e-01 -2.848727961880673e-01 -2.845902510831507e-01 -2.843077757793696e-01 - -2.840253700094237e-01 -2.837430340397069e-01 -2.834607682748240e-01 -2.831785725328111e-01 -2.828964467316310e-01 - -2.826143909542473e-01 -2.823324053101364e-01 -2.820504896922502e-01 -2.817686439371250e-01 -2.814868685136343e-01 - -2.812051636152371e-01 -2.809235289745332e-01 -2.806419646055033e-01 -2.803604706362606e-01 -2.800790471610514e-01 - -2.797976939416736e-01 -2.795164109639519e-01 -2.792351987736799e-01 -2.789540573481899e-01 -2.786729864814172e-01 - -2.783919862645312e-01 -2.781110567914744e-01 -2.778301980476193e-01 -2.775494098202491e-01 -2.772686923282846e-01 - -2.769880459823117e-01 -2.767074706347814e-01 -2.764269661749121e-01 -2.761465326612197e-01 -2.758661702373058e-01 - -2.755858788282252e-01 -2.753056582075042e-01 -2.750255088041456e-01 -2.747454308713073e-01 -2.744654241403574e-01 - -2.741854886058927e-01 -2.739056243892176e-01 -2.736258315782464e-01 -2.733461099674180e-01 -2.730664595012521e-01 - -2.727868807168794e-01 -2.725073736368404e-01 -2.722279380246611e-01 -2.719485739535283e-01 -2.716692815376729e-01 - -2.713900607905190e-01 -2.711109114418696e-01 -2.708318336740216e-01 -2.705528279896257e-01 -2.702738942089605e-01 - -2.699950321750810e-01 -2.697162419812612e-01 -2.694375237750356e-01 -2.691588774953904e-01 -2.688803028674867e-01 - -2.686018002777490e-01 -2.683233700490228e-01 -2.680450119322323e-01 -2.677667258920440e-01 -2.674885120321642e-01 - -2.672103704327183e-01 -2.669323009240009e-01 -2.666543034142266e-01 -2.663763784024609e-01 -2.660985259744725e-01 - -2.658207458961011e-01 -2.655430381891060e-01 -2.652654029648259e-01 -2.649878402880381e-01 -2.647103499069445e-01 - -2.644329319184849e-01 -2.641555868035665e-01 -2.638783144422805e-01 -2.636011146840161e-01 -2.633239876271375e-01 - -2.630469333706403e-01 -2.627699518665801e-01 -2.624930428881614e-01 -2.622162067361601e-01 -2.619394437425979e-01 - -2.616627537197243e-01 -2.613861365959049e-01 -2.611095924398818e-01 -2.608331213683194e-01 -2.605567232565551e-01 - -2.602803979638560e-01 -2.600041459185203e-01 -2.597279672559259e-01 -2.594518617711524e-01 -2.591758294668244e-01 - -2.588998704444723e-01 -2.586239847880919e-01 -2.583481722507706e-01 -2.580724328621725e-01 -2.577967671126083e-01 - -2.575211749406902e-01 -2.572456561780725e-01 -2.569702108956164e-01 -2.566948391959332e-01 -2.564195410517088e-01 - -2.561443162003717e-01 -2.558691649278121e-01 -2.555940876367002e-01 -2.553190840839927e-01 -2.550441541814838e-01 - -2.547692980445108e-01 -2.544945157803290e-01 -2.542198072584164e-01 -2.539451722830000e-01 -2.536706112997469e-01 - -2.533961245035316e-01 -2.531217116489478e-01 -2.528473727232912e-01 -2.525731078267265e-01 -2.522989170513077e-01 - -2.520248001810547e-01 -2.517507572028029e-01 -2.514767886096237e-01 -2.512028943623831e-01 -2.509290742545349e-01 - -2.506553283625735e-01 -2.503816568034038e-01 -2.501080595782905e-01 -2.498345364108095e-01 -2.495610875124447e-01 - -2.492877133133172e-01 -2.490144136112123e-01 -2.487411882994743e-01 -2.484680374856057e-01 -2.481949612635986e-01 - -2.479219595287280e-01 -2.476490320734136e-01 -2.473761793087864e-01 -2.471034014703498e-01 -2.468306982957061e-01 - -2.465580697844871e-01 -2.462855160432138e-01 -2.460130371204629e-01 -2.457406328233614e-01 -2.454683031113906e-01 - -2.451960484794311e-01 -2.449238689415910e-01 -2.446517642712055e-01 -2.443797345227543e-01 -2.441077797933181e-01 - -2.438359000947776e-01 -2.435640951889690e-01 -2.432923652315951e-01 -2.430207106571287e-01 -2.427491313175689e-01 - -2.424776270783986e-01 -2.422061980074125e-01 -2.419348442072336e-01 -2.416635656192684e-01 -2.413923620306189e-01 - -2.411212337762792e-01 -2.408501811283544e-01 -2.405792038734625e-01 -2.403083019688687e-01 -2.400374754936993e-01 - -2.397667245256450e-01 -2.394960488977194e-01 -2.392254485194238e-01 -2.389549238762380e-01 -2.386844750244205e-01 - -2.384141017100180e-01 -2.381438039886236e-01 -2.378735819631148e-01 -2.376034356560101e-01 -2.373333648418426e-01 - -2.370633696160408e-01 -2.367934504134751e-01 -2.365236071336530e-01 -2.362538396334552e-01 -2.359841479713349e-01 - -2.357145322333765e-01 -2.354449923780104e-01 -2.351755281955192e-01 -2.349061399838227e-01 -2.346368280467886e-01 - -2.343675921502802e-01 -2.340984322401892e-01 -2.338293484224673e-01 -2.335603407944267e-01 -2.332914091991481e-01 - -2.330225534791031e-01 -2.327537740958542e-01 -2.324850711724544e-01 -2.322164444575208e-01 -2.319478939696494e-01 - -2.316794198107119e-01 -2.314110220364787e-01 -2.311427004172850e-01 -2.308744549913938e-01 -2.306062862221652e-01 - -2.303381940399467e-01 -2.300701782673901e-01 -2.298022389505013e-01 -2.295343762055658e-01 -2.292665900251787e-01 - -2.289988801367178e-01 -2.287312467963517e-01 -2.284636903804389e-01 -2.281962106639611e-01 -2.279288075702767e-01 - -2.276614812041137e-01 -2.273942316314865e-01 -2.271270587234099e-01 -2.268599623216859e-01 -2.265929428586625e-01 - -2.263260004971463e-01 -2.260591349680134e-01 -2.257923462859340e-01 -2.255256345570404e-01 -2.252589998316905e-01 - -2.249924418873443e-01 -2.247259607239798e-01 -2.244595568451081e-01 -2.241932301870257e-01 -2.239269805236896e-01 - -2.236608079513920e-01 -2.233947125724077e-01 -2.231286943677930e-01 -2.228627530899186e-01 -2.225968889349937e-01 - -2.223311022938890e-01 -2.220653929888047e-01 -2.217997609137618e-01 -2.215342061492806e-01 -2.212687287997047e-01 - -2.210033287645195e-01 -2.207380058226258e-01 -2.204727603658667e-01 -2.202075926188733e-01 -2.199425023254976e-01 - -2.196774894791217e-01 -2.194125541827232e-01 -2.191476964953657e-01 -2.188829162198361e-01 -2.186182133017065e-01 - -2.183535882155842e-01 -2.180890409721393e-01 -2.178245713492862e-01 -2.175601793915103e-01 -2.172958651996608e-01 - -2.170316287941991e-01 -2.167674699222372e-01 -2.165033887351043e-01 -2.162393856655618e-01 -2.159754605317784e-01 - -2.157116131976179e-01 -2.154478437626437e-01 -2.151841523053365e-01 -2.149205387568082e-01 -2.146570029331132e-01 - -2.143935451423346e-01 -2.141301656253313e-01 -2.138668641770334e-01 -2.136036407648879e-01 -2.133404954698548e-01 - -2.130774283590253e-01 -2.128144392711416e-01 -2.125515281171839e-01 -2.122886953403734e-01 -2.120259409959825e-01 - -2.117632648531722e-01 -2.115006669388265e-01 -2.112381473557379e-01 -2.109757061544524e-01 -2.107133431005909e-01 - -2.104510582708100e-01 -2.101888520817322e-01 -2.099267244352251e-01 -2.096646751892664e-01 -2.094027043922436e-01 - -2.091408121382980e-01 -2.088789983898283e-01 -2.086172629233026e-01 -2.083556060294393e-01 -2.080940280081475e-01 - -2.078325286261216e-01 -2.075711078316715e-01 -2.073097657230958e-01 -2.070485023681648e-01 -2.067873176254528e-01 - -2.065262113703670e-01 -2.062651840261599e-01 -2.060042356935543e-01 -2.057433661320316e-01 -2.054825753736384e-01 - -2.052218635119340e-01 -2.049612305777034e-01 -2.047006763593381e-01 -2.044402009029163e-01 -2.041798046444743e-01 - -2.039194875091236e-01 -2.036592493288050e-01 -2.033990901597007e-01 -2.031390101041152e-01 -2.028790091364410e-01 - -2.026190869860804e-01 -2.023592439213894e-01 -2.020994803209571e-01 -2.018397959336108e-01 -2.015801906636277e-01 - -2.013206646163115e-01 -2.010612178968381e-01 -2.008018503846473e-01 -2.005425618909167e-01 -2.002833527994660e-01 - -2.000242232866459e-01 -1.997651731545872e-01 -1.995062023757428e-01 -1.992473110134654e-01 -1.989884991329442e-01 - -1.987297665552775e-01 -1.984711132804359e-01 -1.982125397288479e-01 -1.979540458641874e-01 -1.976956315048893e-01 - -1.974372966986851e-01 -1.971790415364275e-01 -1.969208660181268e-01 -1.966627699138122e-01 -1.964047534115951e-01 - -1.961468168792641e-01 -1.958889601415059e-01 -1.956311830976701e-01 -1.953734858227050e-01 -1.951158683885618e-01 - -1.948583307060198e-01 -1.946008726082255e-01 -1.943434944554087e-01 -1.940861964418109e-01 -1.938289783248288e-01 - -1.935718400929853e-01 -1.933147818435645e-01 -1.930578036445209e-01 -1.928009053047615e-01 -1.925440867668252e-01 - -1.922873484836986e-01 -1.920306904586313e-01 -1.917741124759950e-01 -1.915176145882685e-01 -1.912611968971867e-01 - -1.910048594156118e-01 -1.907486018758652e-01 -1.904924244300230e-01 -1.902363275204000e-01 -1.899803109613821e-01 - -1.897243746214878e-01 -1.894685186111405e-01 -1.892127429944364e-01 -1.889570476814606e-01 -1.887014324762902e-01 - -1.884458977092228e-01 -1.881904436322386e-01 -1.879350700181010e-01 -1.876797768445363e-01 -1.874245641980662e-01 - -1.871694321106837e-01 -1.869143804464632e-01 -1.866594091449939e-01 -1.864045185802509e-01 -1.861497088150435e-01 - -1.858949796742653e-01 -1.856403311585743e-01 -1.853857633524328e-01 -1.851312763093270e-01 -1.848768697910832e-01 - -1.846225438828809e-01 -1.843682990131126e-01 -1.841141350478542e-01 -1.838600518410295e-01 -1.836060494900988e-01 - -1.833521280737523e-01 -1.830982875326949e-01 -1.828445276569093e-01 -1.825908487213151e-01 -1.823372510073639e-01 - -1.820837342990139e-01 -1.818302985608840e-01 -1.815769438919524e-01 -1.813236703339543e-01 -1.810704777470943e-01 - -1.808173660274447e-01 -1.805643355946649e-01 -1.803113865319381e-01 -1.800585185867421e-01 -1.798057318207557e-01 - -1.795530263298101e-01 -1.793004021140676e-01 -1.790478589821669e-01 -1.787953969871552e-01 -1.785430165333783e-01 - -1.782907175616041e-01 -1.780384999147782e-01 -1.777863636186671e-01 -1.775343087850783e-01 -1.772823354138563e-01 - -1.770304432439544e-01 -1.767786324996124e-01 -1.765269035206169e-01 -1.762752561209628e-01 -1.760236902365481e-01 - -1.757722059508868e-01 -1.755208033072168e-01 -1.752694821962465e-01 -1.750182424985018e-01 -1.747670845873172e-01 - -1.745160085943736e-01 -1.742650142826787e-01 -1.740141016708582e-01 -1.737632708599284e-01 -1.735125219002990e-01 - -1.732618545819516e-01 -1.730112688968157e-01 -1.727607652962038e-01 -1.725103437360838e-01 -1.722600040199003e-01 - -1.720097462053399e-01 -1.717595703957765e-01 -1.715094765937824e-01 -1.712594645505801e-01 -1.710095344617568e-01 - -1.707596867053610e-01 -1.705099210652020e-01 -1.702602374503936e-01 -1.700106359820640e-01 -1.697611167032507e-01 - -1.695116795170456e-01 -1.692623242857098e-01 -1.690130513415946e-01 -1.687638608735592e-01 -1.685147526839133e-01 - -1.682657267304136e-01 -1.680167830834059e-01 -1.677679218434041e-01 -1.675191428301483e-01 -1.672704459776749e-01 - -1.670218317162355e-01 -1.667733000505553e-01 -1.665248507843929e-01 -1.662764839848620e-01 -1.660281997331086e-01 - -1.657799980211539e-01 -1.655318786421316e-01 -1.652838417439954e-01 -1.650358877061586e-01 -1.647880163635810e-01 - -1.645402275978841e-01 -1.642925215033296e-01 -1.640448981629310e-01 -1.637973575048030e-01 -1.635498993322754e-01 - -1.633025239587731e-01 -1.630552316214122e-01 -1.628080220971913e-01 -1.625608953706327e-01 -1.623138515347123e-01 - -1.620668906280902e-01 -1.618200125176413e-01 -1.615732171440627e-01 -1.613265048790783e-01 -1.610798757703294e-01 - -1.608333296326273e-01 -1.605868664946396e-01 -1.603404864451659e-01 -1.600941895233320e-01 -1.598479755194739e-01 - -1.596018445089071e-01 -1.593557968710357e-01 -1.591098325274174e-01 -1.588639513462271e-01 -1.586181533501567e-01 - -1.583724386633118e-01 -1.581268072684121e-01 -1.578812589110151e-01 -1.576357938605635e-01 -1.573904124176000e-01 - -1.571451143885420e-01 -1.568998997115455e-01 -1.566547684551118e-01 -1.564097207009810e-01 -1.561647563377750e-01 - -1.559198752534892e-01 -1.556750777971572e-01 -1.554303640753041e-01 -1.551857339241298e-01 -1.549411873472499e-01 - -1.546967244117141e-01 -1.544523451583313e-01 -1.542080493972972e-01 -1.539638371771692e-01 -1.537197089019022e-01 - -1.534756644902717e-01 -1.532317037874507e-01 -1.529878268669247e-01 -1.527440338285302e-01 -1.525003246495042e-01 - -1.522566990917994e-01 -1.520131573865194e-01 -1.517696998607227e-01 -1.515263263105132e-01 -1.512830366842278e-01 - -1.510398310896279e-01 -1.507967095609423e-01 -1.505536719818633e-01 -1.503107182379510e-01 -1.500678487166025e-01 - -1.498250635429138e-01 -1.495823624607518e-01 -1.493397455183047e-01 -1.490972128240516e-01 -1.488547643939502e-01 - -1.486124000468938e-01 -1.483701197975273e-01 -1.481279240643807e-01 -1.478858128086334e-01 -1.476437858541442e-01 - -1.474018432575297e-01 -1.471599850901578e-01 -1.469182113447434e-01 -1.466765218581870e-01 -1.464349167991909e-01 - -1.461933964691583e-01 -1.459519607332137e-01 -1.457106095126376e-01 -1.454693428712828e-01 -1.452281609001614e-01 - -1.449870635167667e-01 -1.447460505411944e-01 -1.445051223204885e-01 -1.442642790465533e-01 -1.440235204958664e-01 - -1.437828466645076e-01 -1.435422576460715e-01 -1.433017535021517e-01 -1.430613340788666e-01 -1.428209993367665e-01 - -1.425807496580667e-01 -1.423405850452980e-01 -1.421005053276286e-01 -1.418605105748216e-01 -1.416206008760722e-01 - -1.413807762310167e-01 -1.411410364179444e-01 -1.409013815814383e-01 -1.406618121114770e-01 -1.404223278620860e-01 - -1.401829287142080e-01 -1.399436147388266e-01 -1.397043860171121e-01 -1.394652424999606e-01 -1.392261840277533e-01 - -1.389872108800275e-01 -1.387483232704581e-01 -1.385095210193419e-01 -1.382708041155041e-01 -1.380321726381191e-01 - -1.377936266235328e-01 -1.375551659356028e-01 -1.373167905196480e-01 -1.370785007699294e-01 -1.368402967462084e-01 - -1.366021782602805e-01 -1.363641453151502e-01 -1.361261980034910e-01 -1.358883363925467e-01 -1.356505602730137e-01 - -1.354128697173978e-01 -1.351752651019714e-01 -1.349377463365720e-01 -1.347003133096952e-01 -1.344629660943524e-01 - -1.342257047644556e-01 -1.339885292721434e-01 -1.337514394288152e-01 -1.335144355004790e-01 -1.332775177574095e-01 - -1.330406860095451e-01 -1.328039402156265e-01 -1.325672804621033e-01 -1.323307068237664e-01 -1.320942191803451e-01 - -1.318578174250235e-01 -1.316215019436967e-01 -1.313852728254415e-01 -1.311491298574344e-01 -1.309130730812647e-01 - -1.306771025967214e-01 -1.304412184433993e-01 -1.302054204167683e-01 -1.299697085633917e-01 -1.297340833011096e-01 - -1.294985445422908e-01 -1.292630921400970e-01 -1.290277262032818e-01 -1.287924468024440e-01 -1.285572538860320e-01 - -1.283221472565841e-01 -1.280871271607027e-01 -1.278521939245786e-01 -1.276173473594251e-01 -1.273825873815436e-01 - -1.271479140654554e-01 -1.269133275291332e-01 -1.266788276689478e-01 -1.264444143112885e-01 -1.262100878411512e-01 - -1.259758484249543e-01 -1.257416958580221e-01 -1.255076301118343e-01 -1.252736512740011e-01 -1.250397594556589e-01 - -1.248059544551782e-01 -1.245722362561283e-01 -1.243386053032582e-01 -1.241050615437150e-01 -1.238716047916152e-01 - -1.236382351439431e-01 -1.234049527007845e-01 -1.231717574487822e-01 -1.229386491649988e-01 -1.227056280466961e-01 - -1.224726944551588e-01 -1.222398481939305e-01 -1.220070891810755e-01 -1.217744175349468e-01 -1.215418333321439e-01 - -1.213093364896874e-01 -1.210769268543440e-01 -1.208446047468073e-01 -1.206123703546746e-01 -1.203802234985189e-01 - -1.201481641556592e-01 -1.199161924040098e-01 -1.196843083373426e-01 -1.194525118101599e-01 -1.192208027778711e-01 - -1.189891816158967e-01 -1.187576483334740e-01 -1.185262027772708e-01 -1.182948450325541e-01 -1.180635751718018e-01 - -1.178323931740712e-01 -1.176012988598141e-01 -1.173702923768903e-01 -1.171393740841554e-01 -1.169085438684581e-01 - -1.166778016318426e-01 -1.164471474323627e-01 -1.162165813372163e-01 -1.159861033094216e-01 -1.157557132288848e-01 - -1.155254113554128e-01 -1.152951978878259e-01 -1.150650726784410e-01 -1.148350356935617e-01 -1.146050869998271e-01 - -1.143752266983624e-01 -1.141454546633286e-01 -1.139157708150553e-01 -1.136861755297615e-01 -1.134566688685596e-01 - -1.132272506625232e-01 -1.129979209389772e-01 -1.127686797968139e-01 -1.125395272939830e-01 -1.123104632216639e-01 - -1.120814876598629e-01 -1.118526009932446e-01 -1.116238031362107e-01 -1.113950939743172e-01 -1.111664735714766e-01 - -1.109379420230661e-01 -1.107094992989161e-01 -1.104811452047023e-01 -1.102528800189790e-01 -1.100247040176238e-01 - -1.097966169898620e-01 -1.095686189066022e-01 -1.093407098806465e-01 -1.091128899944971e-01 -1.088851591239916e-01 - -1.086575171512236e-01 -1.084299644451029e-01 -1.082025011238454e-01 -1.079751270251657e-01 -1.077478421434466e-01 - -1.075206465724022e-01 -1.072935404061887e-01 -1.070665234272605e-01 -1.068395956686409e-01 -1.066127575621145e-01 - -1.063860090403522e-01 -1.061593499609373e-01 -1.059327804074918e-01 -1.057063004552603e-01 -1.054799100848440e-01 - -1.052536091459819e-01 -1.050273978363624e-01 -1.048012764247322e-01 -1.045752447992682e-01 -1.043493029044653e-01 - -1.041234507912105e-01 -1.038976885616201e-01 -1.036720161437409e-01 -1.034464334142674e-01 -1.032209407082870e-01 - -1.029955381585720e-01 -1.027702255852857e-01 -1.025450030256683e-01 -1.023198705766582e-01 -1.020948282803886e-01 - -1.018698759615270e-01 -1.016450136357437e-01 -1.014202417243671e-01 -1.011955602054591e-01 -1.009709689162001e-01 - -1.007464679013254e-01 -1.005220572777319e-01 -1.002977370772110e-01 -1.000735070732387e-01 -9.984936745539402e-02 - -9.962531858349888e-02 -9.940136027998529e-02 -9.917749246814733e-02 -9.895371525770333e-02 -9.873002873335845e-02 - -9.850643282337790e-02 -9.828292738770521e-02 -9.805951276903688e-02 -9.783618914357473e-02 -9.761295629040607e-02 - -9.738981424317925e-02 -9.716676311420755e-02 -9.694380293900719e-02 -9.672093359332221e-02 -9.649815506782670e-02 - -9.627546771326484e-02 -9.605287156919239e-02 -9.583036651098850e-02 -9.560795255252680e-02 -9.538562978098189e-02 - -9.516339824129488e-02 -9.494125774199282e-02 -9.471920843970391e-02 -9.449725071216948e-02 -9.427538438593883e-02 - -9.405360936874554e-02 -9.383192580278800e-02 -9.361033376064058e-02 -9.338883317577901e-02 -9.316742389906425e-02 - -9.294610622995669e-02 -9.272488039403920e-02 -9.250374621386263e-02 -9.228270367992475e-02 -9.206175287916113e-02 - -9.184089387273792e-02 -9.162012656935895e-02 -9.139945093572596e-02 -9.117886729658348e-02 -9.095837571294788e-02 - -9.073797605928635e-02 -9.051766837713708e-02 -9.029745274779008e-02 -9.007732920697027e-02 -8.985729759887780e-02 - -8.963735802530043e-02 -8.941751083887589e-02 -8.919775594907166e-02 -8.897809325953572e-02 -8.875852286193828e-02 - -8.853904483959285e-02 -8.831965916578795e-02 -8.810036569419880e-02 -8.788116467295366e-02 -8.766205635082600e-02 - -8.744304058057480e-02 -8.722411733824492e-02 -8.700528670561582e-02 -8.678654875532379e-02 -8.656790339361393e-02 - -8.634935054757228e-02 -8.613089058374623e-02 -8.591252359970507e-02 -8.569424942256174e-02 -8.547606809595372e-02 - -8.525797972327777e-02 -8.503998436304407e-02 -8.482208183975883e-02 -8.460427219735964e-02 -8.438655581333676e-02 - -8.416893266387415e-02 -8.395140264416648e-02 -8.373396580036768e-02 -8.351662221748458e-02 -8.329937190808817e-02 - -8.308221474187347e-02 -8.286515089972675e-02 -8.264818063381729e-02 -8.243130387381740e-02 -8.221452057360500e-02 - -8.199783077068876e-02 -8.178123458056528e-02 -8.156473193866548e-02 -8.134832272179610e-02 -8.113200727104515e-02 - -8.091578573554094e-02 -8.069965795549490e-02 -8.048362394306618e-02 -8.026768379237301e-02 -8.005183759034226e-02 - -7.983608519016389e-02 -7.962042660317335e-02 -7.940486220827629e-02 -7.918939199917317e-02 -7.897401585103307e-02 - -7.875873382193239e-02 -7.854354599947752e-02 -7.832845240531904e-02 -7.811345290511561e-02 -7.789854765910142e-02 - -7.768373695009409e-02 -7.746902070156129e-02 -7.725439886068521e-02 -7.703987147751143e-02 -7.682543865920169e-02 - -7.661110037032860e-02 -7.639685648697914e-02 -7.618270730319152e-02 -7.596865299784139e-02 -7.575469343456721e-02 - -7.554082861289950e-02 -7.532705861915691e-02 -7.511338355056779e-02 -7.489980327273796e-02 -7.468631776375068e-02 - -7.447292742489155e-02 -7.425963225373161e-02 -7.404643208981297e-02 -7.383332706618533e-02 -7.362031725942129e-02 - -7.340740264369265e-02 -7.319458312424655e-02 -7.298185885257603e-02 -7.276923011698885e-02 -7.255669681825400e-02 - -7.234425890125808e-02 -7.213191646645117e-02 -7.191966959969415e-02 -7.170751827394115e-02 -7.149546237742448e-02 - -7.128350216363183e-02 -7.107163782537941e-02 -7.085986923051370e-02 -7.064819639413342e-02 -7.043661941815849e-02 - -7.022513838389523e-02 -7.001375316964638e-02 -6.980246372359999e-02 -6.959127044971054e-02 -6.938017339783993e-02 - -6.916917238807876e-02 -6.895826751099868e-02 -6.874745887832359e-02 -6.853674652264935e-02 -6.832613029387129e-02 - -6.811561029537151e-02 -6.790518687416305e-02 -6.769485994872884e-02 -6.748462944761908e-02 -6.727449549181348e-02 - -6.706445814195625e-02 -6.685451736224034e-02 -6.664467305023641e-02 -6.643492546019260e-02 -6.622527482862205e-02 - -6.601572100856345e-02 -6.580626400049541e-02 -6.559690390732385e-02 -6.538764078471235e-02 -6.517847455920224e-02 - -6.496940519404462e-02 -6.476043303620643e-02 -6.455155816426872e-02 -6.434278041275177e-02 -6.413409988235154e-02 - -6.392551667227454e-02 -6.371703078482928e-02 -6.350864213121965e-02 -6.330035079826633e-02 -6.309215709125325e-02 - -6.288406097171770e-02 -6.267606236590158e-02 -6.246816137578116e-02 -6.226035810132791e-02 -6.205265253482506e-02 - -6.184504450634240e-02 -6.163753424009603e-02 -6.143012204113525e-02 -6.122280779495761e-02 -6.101559145710207e-02 - -6.080847310111580e-02 -6.060145284620669e-02 -6.039453063876327e-02 -6.018770637541451e-02 -5.998098039534337e-02 - -5.977435284136760e-02 -5.956782355675167e-02 -5.936139258218223e-02 -5.915506002510895e-02 -5.894882595975996e-02 - -5.874269025717062e-02 -5.853665294379332e-02 -5.833071438748900e-02 -5.812487459491447e-02 -5.791913345983549e-02 - -5.771349104248068e-02 -5.750794745476003e-02 -5.730250273990040e-02 -5.709715674449271e-02 -5.689190963313420e-02 - -5.668676170442684e-02 -5.648171287301057e-02 -5.627676311138611e-02 -5.607191251359627e-02 -5.586716116856662e-02 - -5.566250902085241e-02 -5.545795595276776e-02 -5.525350230977423e-02 -5.504914828197500e-02 -5.484489368806074e-02 - -5.464073856561743e-02 -5.443668303623681e-02 -5.423272717677420e-02 -5.402887087270093e-02 -5.382511411736842e-02 - -5.362145727556954e-02 -5.341790037997223e-02 -5.321444331788154e-02 -5.301108618236487e-02 -5.280782907094528e-02 - -5.260467200594416e-02 -5.240161485390568e-02 -5.219865776343095e-02 -5.199580105954085e-02 -5.179304465507040e-02 - -5.159038850941820e-02 -5.138783273765680e-02 -5.118537740030552e-02 -5.098302246878324e-02 -5.078076787428482e-02 - -5.057861387937131e-02 -5.037656068404879e-02 -5.017460818262723e-02 -4.997275637519877e-02 -4.977100534878579e-02 - -4.956935521374012e-02 -4.936780587637167e-02 -4.916635729330274e-02 -4.896500983679772e-02 -4.876376358063662e-02 - -4.856261839799727e-02 -4.836157437280066e-02 -4.816063160553166e-02 -4.795979012910388e-02 -4.775904981223175e-02 - -4.755841077230219e-02 -4.735787336181510e-02 -4.715743752596301e-02 -4.695710319390285e-02 -4.675687045398216e-02 - -4.655673941737810e-02 -4.635671009364274e-02 -4.615678236145827e-02 -4.595695644691457e-02 -4.575723258610617e-02 - -4.555761069075770e-02 -4.535809077212207e-02 -4.515867291944397e-02 -4.495935719937229e-02 -4.476014355843901e-02 - -4.456103197632578e-02 -4.436202279051898e-02 -4.416311608901573e-02 -4.396431172960501e-02 -4.376560979706327e-02 - -4.356701040970479e-02 -4.336851362154585e-02 -4.317011930970618e-02 -4.297182755295056e-02 -4.277363871130811e-02 - -4.257555275870079e-02 -4.237756961321195e-02 -4.217968936488893e-02 -4.198191211978222e-02 -4.178423789759614e-02 - -4.158666657665847e-02 -4.138919837391426e-02 -4.119183356383482e-02 -4.099457203865310e-02 -4.079741379048268e-02 - -4.060035892668235e-02 -4.040340754077800e-02 -4.020655958670875e-02 -4.000981499812348e-02 -3.981317410229721e-02 - -3.961663704352115e-02 -3.942020369405195e-02 -3.922387410519079e-02 -3.902764838570288e-02 -3.883152661169272e-02 - -3.863550868276464e-02 -3.843959464464100e-02 -3.824378485096525e-02 -3.804807931112070e-02 -3.785247793879744e-02 - -3.765698082240899e-02 -3.746158806803077e-02 -3.726629970906549e-02 -3.707111562537097e-02 -3.687603600301111e-02 - -3.668106114329449e-02 -3.648619095542227e-02 -3.629142541706046e-02 -3.609676463615045e-02 -3.590220871216067e-02 - -3.570775761915167e-02 -3.551341127587861e-02 -3.531916998478909e-02 -3.512503392646860e-02 -3.493100298239093e-02 - -3.473707719308593e-02 -3.454325666569649e-02 -3.434954148093054e-02 -3.415593156072503e-02 -3.396242692622412e-02 - -3.376902792182854e-02 -3.357573459185429e-02 -3.338254684613227e-02 -3.318946476737597e-02 -3.299648846264201e-02 - -3.280361798076661e-02 -3.261085320981364e-02 -3.241819429994710e-02 -3.222564156785773e-02 -3.203319495411584e-02 - -3.184085442350271e-02 -3.164862007407277e-02 -3.145649201602077e-02 -3.126447024597763e-02 -3.107255466700169e-02 - -3.088074555671056e-02 -3.068904313085425e-02 -3.049744727803826e-02 -3.030595802638682e-02 -3.011457548570120e-02 - -2.992329974875160e-02 -2.973213075050443e-02 -2.954106848293515e-02 -2.935011329195715e-02 -2.915926525661732e-02 - -2.896852427673346e-02 -2.877789042941862e-02 -2.858736382466336e-02 -2.839694452567641e-02 -2.820663243092813e-02 - -2.801642765839682e-02 -2.782633053619610e-02 -2.763634102981755e-02 -2.744645909471058e-02 -2.725668483048721e-02 - -2.706701834793413e-02 -2.687745966148872e-02 -2.668800867127078e-02 -2.649866562411629e-02 -2.630943076513501e-02 - -2.612030399888650e-02 -2.593128533989631e-02 -2.574237489560391e-02 -2.555357276907920e-02 -2.536487891525730e-02 - -2.517629330290238e-02 -2.498781626631630e-02 -2.479944791947400e-02 -2.461118815951395e-02 -2.442303705775731e-02 - -2.423499472682666e-02 -2.404706124098910e-02 -2.385923651050157e-02 -2.367152062237768e-02 -2.348391391197065e-02 - -2.329641637680258e-02 -2.310902796361102e-02 -2.292174876507744e-02 -2.273457889435020e-02 -2.254751838574287e-02 - -2.236056713942959e-02 -2.217372537079298e-02 -2.198699334983061e-02 -2.180037099746794e-02 -2.161385831877313e-02 - -2.142745542221016e-02 -2.124116241611923e-02 -2.105497927356034e-02 -2.086890594375282e-02 -2.068294274565517e-02 - -2.049708982965088e-02 -2.031134709508492e-02 -2.012571460207244e-02 -1.994019246558534e-02 -1.975478077426674e-02 - -1.956947944878238e-02 -1.938428854559868e-02 -1.919920840769478e-02 -1.901423906121075e-02 -1.882938044349050e-02 - -1.864463264867233e-02 -1.845999578941159e-02 -1.827546991282947e-02 -1.809105492490821e-02 -1.790675101318496e-02 - -1.772255847013706e-02 -1.753847723077995e-02 -1.735450728912205e-02 -1.717064875577919e-02 -1.698690174123156e-02 - -1.680326624034783e-02 -1.661974219495428e-02 -1.643632989539235e-02 -1.625302952284425e-02 -1.606984099009794e-02 - -1.588676434582367e-02 -1.570379970237604e-02 -1.552094715767664e-02 -1.533820665109939e-02 -1.515557821470722e-02 - -1.497306218983010e-02 -1.479065863118324e-02 -1.460836746737021e-02 -1.442618879376636e-02 -1.424412272699600e-02 - -1.406216932715821e-02 -1.388032850365394e-02 -1.369860041414062e-02 -1.351698537084881e-02 -1.333548332713773e-02 - -1.315409426742165e-02 -1.297281830737383e-02 -1.279165555870565e-02 -1.261060603011550e-02 -1.242966965324022e-02 - -1.224884670128487e-02 -1.206813738892206e-02 -1.188754163203305e-02 -1.170705946859269e-02 -1.152669101347058e-02 - -1.134643637569507e-02 -1.116629550991553e-02 -1.098626842139487e-02 -1.080635544822676e-02 -1.062655668128806e-02 - -1.044687204494093e-02 -1.026730162280993e-02 -1.008784553433474e-02 -9.908503858526582e-03 -9.729276511698201e-03 - -9.550163618928804e-03 -9.371165505355611e-03 -9.192282154920128e-03 -9.013513542246960e-03 -8.834859775588668e-03 - -8.656320970291077e-03 -8.477897155130903e-03 -8.299588259899083e-03 -8.121394531144674e-03 -7.943316209259341e-03 - -7.765353219198069e-03 -7.587505591333328e-03 -7.409773443860054e-03 -7.232156891183837e-03 -7.054655906230881e-03 - -6.877270474033493e-03 -6.700000921715352e-03 -6.522847372218281e-03 -6.345809748257097e-03 -6.168888131399519e-03 - -5.992082642122597e-03 -5.815393366379400e-03 -5.638820235869921e-03 -5.462363348533388e-03 -5.286023033805962e-03 - -5.109799304673499e-03 -4.933692127821829e-03 -4.757701606393674e-03 -4.581827861470766e-03 -4.406070940931505e-03 - -4.230430770274698e-03 -4.054907567997104e-03 -3.879501600335772e-03 -3.704212807069328e-03 -3.529041210474627e-03 - -3.353986930090703e-03 -3.179050081041732e-03 -3.004230655593028e-03 -2.829528626659512e-03 -2.654944304289923e-03 - -2.480477843039907e-03 -2.306129168890747e-03 -2.131898354626704e-03 -1.957785522367332e-03 -1.783790769612464e-03 - -1.609914041309663e-03 -1.436155409326836e-03 -1.262515208025358e-03 -1.088993476198761e-03 -9.155901719868249e-04 - -7.423054008843995e-04 -5.691392854771952e-04 -3.960918865957833e-04 -2.231631331613931e-04 -5.035321608514060e-05 - 1.223375771945329e-04 2.949092895407656e-04 4.673619084872533e-04 6.396953140537370e-04 8.119093865188150e-04 - 9.840041155727759e-04 1.155979539871523e-03 1.327835367602612e-03 1.499571413663267e-03 1.671187748049661e-03 - 1.842684305331169e-03 2.014060960896812e-03 2.185317608856639e-03 2.356454289147141e-03 2.527470954200780e-03 - 2.698367270832486e-03 2.869143169831049e-03 3.039798698561594e-03 3.210333755176400e-03 3.380748214685887e-03 - 3.551042001872539e-03 3.721215182132198e-03 3.891267592694254e-03 4.061198929412137e-03 4.231009214636464e-03 - 4.400698444839332e-03 4.570266499650065e-03 4.739713256426893e-03 4.909038688279234e-03 5.078242841339914e-03 - 5.247325443294046e-03 5.416286280121805e-03 5.585125417934797e-03 5.753842797319914e-03 5.922438289361948e-03 - 6.090911784292105e-03 6.259263304936011e-03 6.427492823105761e-03 6.595600012759487e-03 6.763584774419725e-03 - 6.931447157908777e-03 7.099187064683324e-03 7.266804368739545e-03 7.434298984071849e-03 7.601670964899477e-03 - 7.768920175905106e-03 7.936046303989365e-03 8.103049345026314e-03 8.269929303195386e-03 8.436686062480435e-03 - 8.603319496825714e-03 8.769829559891583e-03 8.936216298209541e-03 9.102479469308070e-03 9.268618835503980e-03 - 9.434634442417017e-03 9.600526244002849e-03 9.766294116521254e-03 9.931937936947469e-03 1.009745771049027e-02 - 1.026285342997890e-02 1.042812477681206e-02 1.059327162144324e-02 1.075829401681754e-02 1.092319186819127e-02 - 1.108796504594824e-02 1.125261345370748e-02 1.141713713772357e-02 1.158153598704318e-02 1.174580967555363e-02 - 1.190995817803677e-02 1.207398151021485e-02 1.223787955540131e-02 1.240165218070774e-02 1.256529932365555e-02 - 1.272882103806231e-02 1.289221710280211e-02 1.305548725320952e-02 1.321863152957668e-02 1.338164989105289e-02 - 1.354454220587777e-02 1.370730835288826e-02 1.386994832163190e-02 1.403246211588375e-02 1.419484943187744e-02 - 1.435711010999991e-02 1.451924419921884e-02 1.468125161270911e-02 1.484313222013652e-02 1.500488591571896e-02 - 1.516651273046586e-02 1.532801257754355e-02 1.548938513124086e-02 1.565063033579857e-02 1.581174821092933e-02 - 1.597273864701365e-02 1.613360150922888e-02 1.629433671764488e-02 1.645494432276120e-02 1.661542413184349e-02 - 1.677577586209575e-02 1.693599953321696e-02 1.709609511287956e-02 1.725606247097126e-02 1.741590148147653e-02 - 1.757561211738663e-02 1.773519439308624e-02 1.789464801957598e-02 1.805397280960725e-02 1.821316881163111e-02 - 1.837223594327105e-02 1.853117406905512e-02 1.868998307594014e-02 1.884866298214414e-02 1.900721372338833e-02 - 1.916563497459167e-02 1.932392665507269e-02 1.948208878919649e-02 1.964012126059438e-02 1.979802393750615e-02 - 1.995579673545799e-02 2.011343968946751e-02 2.027095263124555e-02 2.042833526879373e-02 2.058558759933038e-02 - 2.074270959919291e-02 2.089970114286997e-02 2.105656209513535e-02 2.121329241031374e-02 2.136989211400533e-02 - 2.152636093833320e-02 2.168269866776463e-02 2.183890534086288e-02 2.199498088647827e-02 2.215092516911965e-02 - 2.230673806408907e-02 2.246241957468516e-02 2.261796965793072e-02 2.277338799181243e-02 2.292867446749406e-02 - 2.308382911412376e-02 2.323885181888266e-02 2.339374244699652e-02 2.354850090287507e-02 2.370312721409915e-02 - 2.385762123470989e-02 2.401198266010886e-02 2.416621147301771e-02 2.432030765671687e-02 2.447427107682733e-02 - 2.462810160176357e-02 2.478179917471193e-02 2.493536381795363e-02 2.508879528739230e-02 2.524209334527653e-02 - 2.539525801488748e-02 2.554828923354157e-02 2.570118686847216e-02 2.585395079171064e-02 2.600658098606827e-02 - 2.615907742012537e-02 2.631143978762620e-02 2.646366795301069e-02 2.661576194257877e-02 2.676772164859378e-02 - 2.691954693391293e-02 2.707123769272043e-02 2.722279394328245e-02 2.737421556407061e-02 2.752550224474631e-02 - 2.767665393933695e-02 2.782767063812680e-02 2.797855221700411e-02 2.812929853552858e-02 2.827990951702357e-02 - 2.843038519104858e-02 2.858072533585580e-02 2.873092969062032e-02 2.888099827101270e-02 2.903093101911967e-02 - 2.918072779556083e-02 2.933038847140823e-02 2.947991301658642e-02 2.962930141213865e-02 2.977855336278226e-02 - 2.992766870509821e-02 3.007664746318324e-02 3.022548953626840e-02 3.037419478553557e-02 3.052276309616091e-02 - 3.067119447416764e-02 3.081948881896879e-02 3.096764581778017e-02 3.111566540198458e-02 3.126354756710210e-02 - 3.141129218718559e-02 3.155889912410548e-02 3.170636829125183e-02 3.185369970791438e-02 3.200089317518744e-02 - 3.214794841776677e-02 3.229486543634106e-02 3.244164418203412e-02 3.258828451581320e-02 3.273478630264194e-02 - 3.288114949586567e-02 3.302737408530167e-02 3.317345979235018e-02 3.331940642975919e-02 3.346521401820098e-02 - 3.361088246101045e-02 3.375641161607764e-02 3.390180136352038e-02 3.404705169548587e-02 3.419216253016829e-02 - 3.433713355905806e-02 3.448196468652563e-02 3.462665590981111e-02 3.477120710939272e-02 3.491561814527116e-02 - 3.505988891618091e-02 3.520401943397326e-02 3.534800952666442e-02 3.549185891051008e-02 3.563556756111654e-02 - 3.577913543618631e-02 3.592256240340591e-02 3.606584831947614e-02 3.620899312153205e-02 3.635199681091714e-02 - 3.649485912620978e-02 3.663757985375464e-02 3.678015900636063e-02 3.692259649832257e-02 3.706489218607827e-02 - 3.720704593508108e-02 3.734905772908955e-02 3.749092751022131e-02 3.763265496742431e-02 3.777423997951684e-02 - 3.791568254953915e-02 3.805698256030369e-02 3.819813986869797e-02 3.833915436267914e-02 3.848002605018682e-02 - 3.862075477984065e-02 3.876134025391093e-02 3.890178243600422e-02 3.904208129158644e-02 3.918223668100989e-02 - 3.932224846044379e-02 3.946211655605483e-02 3.960184097189857e-02 3.974142146457355e-02 3.988085779819951e-02 - 4.002014997942075e-02 4.015929792921669e-02 4.029830150192959e-02 4.043716055991190e-02 4.057587507004282e-02 - 4.071444498657769e-02 4.085287001066611e-02 4.099114999824743e-02 4.112928495212512e-02 4.126727475679569e-02 - 4.140511926665246e-02 4.154281836167219e-02 4.168037204269245e-02 4.181778018003033e-02 4.195504246778908e-02 - 4.209215884913708e-02 4.222912929605258e-02 4.236595366776428e-02 4.250263182248033e-02 4.263916367566677e-02 - 4.277554922465009e-02 4.291178824859961e-02 4.304788049654025e-02 4.318382596138427e-02 4.331962457087349e-02 - 4.345527617981602e-02 4.359078064797250e-02 4.372613792550029e-02 4.386134797486977e-02 4.399641051415262e-02 - 4.413132537776133e-02 4.426609256403441e-02 4.440071196061698e-02 4.453518342174363e-02 4.466950682320869e-02 - 4.480368214879805e-02 4.493770928728694e-02 4.507158793990715e-02 4.520531802497359e-02 4.533889951667943e-02 - 4.547233228082954e-02 4.560561616979211e-02 4.573875108353129e-02 4.587173702317195e-02 4.600457379177124e-02 - 4.613726112101928e-02 4.626979898466685e-02 4.640218731770854e-02 4.653442597807410e-02 4.666651481740990e-02 - 4.679845378497393e-02 4.693024287357150e-02 4.706188178521280e-02 4.719337030512012e-02 4.732470843170088e-02 - 4.745589609974604e-02 4.758693317708736e-02 4.771781949014568e-02 4.784855500276729e-02 4.797913963655120e-02 - 4.810957311625792e-02 4.823985532440599e-02 4.836998622519359e-02 4.849996572088229e-02 4.862979364778694e-02 - 4.875946986129576e-02 4.888899438454671e-02 4.901836703838853e-02 4.914758752328308e-02 4.927665585368439e-02 - 4.940557196434897e-02 4.953433564666962e-02 4.966294680168561e-02 4.979140536998770e-02 4.991971127467005e-02 - 5.004786430086550e-02 5.017586426593462e-02 5.030371111424699e-02 5.043140473941395e-02 5.055894500969876e-02 - 5.068633180855401e-02 5.081356509387767e-02 5.094064477169723e-02 5.106757053524139e-02 5.119434226596677e-02 - 5.132095996453229e-02 5.144742351517578e-02 5.157373274644007e-02 5.169988750799723e-02 5.182588783131492e-02 - 5.195173357105356e-02 5.207742440366903e-02 5.220296027189056e-02 5.232834113948501e-02 5.245356688434039e-02 - 5.257863735375337e-02 5.270355244318054e-02 5.282831211610928e-02 5.295291615700908e-02 5.307736435753736e-02 - 5.320165668494783e-02 5.332579302368824e-02 5.344977322479061e-02 5.357359720391287e-02 5.369726488407797e-02 - 5.382077614890905e-02 5.394413077320572e-02 5.406732861255047e-02 5.419036960275756e-02 5.431325364836510e-02 - 5.443598061485443e-02 5.455855035736775e-02 5.468096283548277e-02 5.480321791614200e-02 5.492531533836561e-02 - 5.504725504027442e-02 5.516903696522249e-02 5.529066094250196e-02 5.541212681912044e-02 5.553343451105355e-02 - 5.565458402054679e-02 5.577557512714444e-02 5.589640757833542e-02 5.601708136214176e-02 5.613759637012277e-02 - 5.625795242697428e-02 5.637814944133901e-02 5.649818735356010e-02 5.661806606948155e-02 5.673778531909066e-02 - 5.685734496106067e-02 5.697674499811992e-02 5.709598525886500e-02 5.721506557962035e-02 5.733398588420521e-02 - 5.745274613557275e-02 5.757134619305772e-02 5.768978576165893e-02 5.780806477237931e-02 5.792618319490116e-02 - 5.804414085654030e-02 5.816193759992416e-02 5.827957333255503e-02 5.839704805764100e-02 5.851436157058919e-02 - 5.863151359019340e-02 5.874850407742044e-02 5.886533297606138e-02 5.898200016057164e-02 5.909850545490182e-02 - 5.921484876799358e-02 5.933103006596772e-02 5.944704910278828e-02 5.956290569090495e-02 5.967859979076014e-02 - 5.979413129454921e-02 5.990950006107775e-02 6.002470595625681e-02 6.013974894676900e-02 6.025462892974234e-02 - 6.036934559538653e-02 6.048389882575328e-02 6.059828859366181e-02 6.071251478747773e-02 6.082657726499330e-02 - 6.094047589468096e-02 6.105421060960093e-02 6.116778124880510e-02 6.128118760026364e-02 6.139442960439424e-02 - 6.150750715787331e-02 6.162042008748835e-02 6.173316829355946e-02 6.184575170612789e-02 6.195817023946892e-02 - 6.207042366308074e-02 6.218251178412997e-02 6.229443455021107e-02 6.240619187345142e-02 6.251778362644587e-02 - 6.262920965673664e-02 6.274046989094115e-02 6.285156423838029e-02 6.296249246083868e-02 6.307325441937692e-02 - 6.318385004239983e-02 6.329427920287174e-02 6.340454177652059e-02 6.351463766120390e-02 6.362456678994362e-02 - 6.373432899407734e-02 6.384392402667542e-02 6.395335181995393e-02 6.406261231361865e-02 6.417170537725830e-02 - 6.428063082883417e-02 6.438938856382127e-02 6.449797859582693e-02 6.460640069400744e-02 6.471465460887021e-02 - 6.482274028565467e-02 6.493065766530991e-02 6.503840663024645e-02 6.514598697176463e-02 6.525339863731919e-02 - 6.536064160053869e-02 6.546771556229376e-02 6.557462036169828e-02 6.568135597564134e-02 6.578792228094754e-02 - 6.589431913461476e-02 6.600054641494822e-02 6.610660407274732e-02 6.621249195669229e-02 6.631820979208959e-02 - 6.642375751800587e-02 6.652913508526218e-02 6.663434233390064e-02 6.673937912206085e-02 6.684424535139094e-02 - 6.694894096694531e-02 6.705346576057515e-02 6.715781952052316e-02 6.726200223606826e-02 6.736601378290344e-02 - 6.746985396850236e-02 6.757352270136854e-02 6.767701992273348e-02 6.778034554033589e-02 6.788349929667206e-02 - 6.798648102682574e-02 6.808929069330329e-02 6.819192820375723e-02 6.829439341428477e-02 6.839668615716293e-02 - 6.849880637697058e-02 6.860075397106770e-02 6.870252870886938e-02 6.880413046413429e-02 6.890555915577500e-02 - 6.900681468090485e-02 6.910789689150486e-02 6.920880565820778e-02 6.930954094436353e-02 6.941010257623929e-02 - 6.951049032497619e-02 6.961070411466443e-02 6.971074386483528e-02 6.981060945693285e-02 6.991030074013053e-02 - 7.000981760721879e-02 7.010915998226322e-02 7.020832768385020e-02 7.030732053981503e-02 7.040613843777971e-02 - 7.050478130476578e-02 7.060324902125202e-02 7.070154139632766e-02 7.079965841104072e-02 7.089759998592053e-02 - 7.099536579014293e-02 7.109295574922263e-02 7.119036986301433e-02 7.128760792254588e-02 7.138466979343019e-02 - 7.148155540894172e-02 7.157826467726322e-02 7.167479742578257e-02 7.177115345207208e-02 7.186733268619028e-02 - 7.196333504975572e-02 7.205916041090092e-02 7.215480858692887e-02 7.225027948023270e-02 7.234557308374470e-02 - 7.244068916926014e-02 7.253562753252076e-02 7.263038813284139e-02 7.272497087062332e-02 7.281937559790036e-02 - 7.291360215228662e-02 7.300765049821943e-02 7.310152057265214e-02 7.319521208383468e-02 7.328872490709243e-02 - 7.338205901635925e-02 7.347521425841259e-02 7.356819049091311e-02 7.366098761637971e-02 7.375360558736099e-02 - 7.384604424623381e-02 7.393830334347133e-02 7.403038279875497e-02 7.412228254437477e-02 7.421400245985316e-02 - 7.430554241104276e-02 7.439690229021774e-02 7.448808202204141e-02 7.457908141717452e-02 7.466990029970315e-02 - 7.476053861745356e-02 7.485099625058683e-02 7.494127304678436e-02 7.503136889191833e-02 7.512128371784581e-02 - 7.521101743547498e-02 7.530056981436373e-02 7.538994071268737e-02 7.547913007544443e-02 7.556813780083994e-02 - 7.565696374971752e-02 7.574560777501017e-02 7.583406981695588e-02 7.592234975180168e-02 7.601044736291800e-02 - 7.609836256769248e-02 7.618609528331391e-02 7.627364535037680e-02 7.636101265407126e-02 7.644819711937149e-02 - 7.653519868718589e-02 7.662201715447789e-02 7.670865230880411e-02 7.679510411035856e-02 7.688137246970578e-02 - 7.696745724207896e-02 7.705335828035317e-02 7.713907552614908e-02 7.722460893765626e-02 7.730995825366380e-02 - 7.739512330293280e-02 7.748010405365591e-02 7.756490042829636e-02 7.764951228919105e-02 7.773393946198498e-02 - 7.781818189157449e-02 7.790223948237281e-02 7.798611201876808e-02 7.806979939436651e-02 7.815330154059554e-02 - 7.823661834982702e-02 7.831974966729814e-02 7.840269536418043e-02 7.848545542109749e-02 7.856802968700778e-02 - 7.865041794492959e-02 7.873262009221961e-02 7.881463606524114e-02 7.889646578364969e-02 7.897810905385311e-02 - 7.905956578813299e-02 7.914083598393755e-02 7.922191938944982e-02 7.930281582198326e-02 7.938352526916173e-02 - 7.946404763288464e-02 7.954438277705837e-02 7.962453057021987e-02 7.970449093695484e-02 7.978426377009373e-02 - 7.986384886265184e-02 7.994324611178145e-02 8.002245546069972e-02 8.010147680163558e-02 8.018030998339011e-02 - 8.025895486859348e-02 8.033741142939121e-02 8.041567953647351e-02 8.049375898816008e-02 8.057164970191152e-02 - 8.064935159117341e-02 8.072686453538828e-02 8.080418841559016e-02 8.088132313650849e-02 8.095826861741187e-02 - 8.103502469212946e-02 8.111159121525567e-02 8.118796811657426e-02 8.126415526945288e-02 8.134015254787534e-02 - 8.141595988122388e-02 8.149157718184835e-02 8.156700432424771e-02 8.164224113093393e-02 8.171728750211138e-02 - 8.179214337283539e-02 8.186680860558979e-02 8.194128308109257e-02 8.201556671181809e-02 8.208965942384167e-02 - 8.216356107347705e-02 8.223727146913333e-02 8.231079055026533e-02 8.238411825286719e-02 8.245725445426123e-02 - 8.253019901019013e-02 8.260295182089074e-02 8.267551284923887e-02 8.274788192985057e-02 8.282005889192648e-02 - 8.289204367192234e-02 8.296383619751495e-02 8.303543635380874e-02 8.310684396376640e-02 8.317805898151856e-02 - 8.324908138250064e-02 8.331991092178788e-02 8.339054746670159e-02 8.346099098907200e-02 8.353124136246602e-02 - 8.360129848004999e-02 8.367116227251760e-02 8.374083263302687e-02 8.381030943134427e-02 8.387959252741883e-02 - 8.394868181167527e-02 8.401757720093640e-02 8.408627862550171e-02 8.415478594369409e-02 8.422309904154775e-02 - 8.429121790707177e-02 8.435914237533512e-02 8.442687225429805e-02 8.449440750560887e-02 8.456174803803686e-02 - 8.462889372267089e-02 8.469584447602406e-02 8.476260023136410e-02 8.482916090148240e-02 8.489552630009754e-02 - 8.496169630228255e-02 8.502767086164854e-02 8.509344988672647e-02 8.515903326018803e-02 8.522442086136313e-02 - 8.528961263471936e-02 8.535460848680074e-02 8.541940824041729e-02 8.548401181612168e-02 8.554841915131453e-02 - 8.561263012321893e-02 8.567664461211427e-02 8.574046253447680e-02 8.580408386832587e-02 8.586750845589863e-02 - 8.593073610333024e-02 8.599376680387132e-02 8.605660047760594e-02 8.611923696874126e-02 8.618167618396408e-02 - 8.624391807608472e-02 8.630596259724549e-02 8.636780954833972e-02 8.642945878839840e-02 8.649091029427977e-02 - 8.655216396695875e-02 8.661321970043215e-02 8.667407742210617e-02 8.673473702989365e-02 8.679519841504303e-02 - 8.685546148336530e-02 8.691552612855238e-02 8.697539224666265e-02 8.703505975750943e-02 8.709452857692032e-02 - 8.715379861893667e-02 8.721286980508075e-02 8.727174201224434e-02 8.733041510377958e-02 8.738888903629666e-02 - 8.744716372671989e-02 8.750523904187274e-02 8.756311491392924e-02 8.762079127795709e-02 8.767826803995526e-02 - 8.773554506310657e-02 8.779262223690780e-02 8.784949951260017e-02 8.790617682173207e-02 8.796265406226209e-02 - 8.801893109931651e-02 8.807500788687952e-02 8.813088437660771e-02 8.818656039674132e-02 8.824203585227545e-02 - 8.829731070095961e-02 8.835238486000704e-02 8.840725822106667e-02 8.846193068214857e-02 8.851640221803356e-02 - 8.857067273700293e-02 8.862474207580676e-02 8.867861014722141e-02 8.873227689758616e-02 8.878574227696898e-02 - 8.883900618220902e-02 8.889206851560667e-02 8.894492921167085e-02 8.899758815302622e-02 8.905004524008538e-02 - 8.910230044719054e-02 8.915435367300073e-02 8.920620479173334e-02 8.925785373448247e-02 8.930930045917142e-02 - 8.936054490961548e-02 8.941158695191696e-02 8.946242647641844e-02 8.951306341364354e-02 8.956349771969928e-02 - 8.961372931388180e-02 8.966375808278661e-02 8.971358396554302e-02 8.976320688963368e-02 8.981262675341668e-02 - 8.986184348935064e-02 8.991085703129179e-02 8.995966729258320e-02 9.000827417122792e-02 9.005667759770250e-02 - 9.010487756379584e-02 9.015287394264000e-02 9.020066659275561e-02 9.024825550203337e-02 9.029564061179933e-02 - 9.034282181894199e-02 9.038979902630290e-02 9.043657218570805e-02 9.048314126656666e-02 9.052950615463343e-02 - 9.057566675480395e-02 9.062162300961238e-02 9.066737484935303e-02 9.071292219781772e-02 9.075826498061153e-02 - 9.080340315127385e-02 9.084833664156222e-02 9.089306533771581e-02 9.093758915627431e-02 9.098190804149961e-02 - 9.102602195783284e-02 9.106993084471440e-02 9.111363462196023e-02 9.115713320054021e-02 9.120042650346059e-02 - 9.124351446434358e-02 9.128639702175202e-02 9.132907412994692e-02 9.137154573427010e-02 9.141381170435277e-02 - 9.145587198962597e-02 9.149772660800266e-02 9.153937542844172e-02 9.158081834977004e-02 9.162205535599281e-02 - 9.166308637778346e-02 9.170391133536025e-02 9.174453017072061e-02 9.178494285856946e-02 9.182514933661440e-02 - 9.186514945794547e-02 9.190494319482566e-02 9.194453054665523e-02 9.198391140758180e-02 9.202308569543158e-02 - 9.206205336702038e-02 9.210081441034919e-02 9.213936875086109e-02 9.217771627651770e-02 9.221585694962209e-02 - 9.225379072840771e-02 9.229151754885842e-02 9.232903734819613e-02 9.236635007909103e-02 9.240345570404732e-02 - 9.244035413434255e-02 9.247704529963750e-02 9.251352918345666e-02 9.254980573968512e-02 9.258587489795035e-02 - 9.262173657649034e-02 9.265739073985793e-02 9.269283735974691e-02 9.272807636276849e-02 9.276310769047050e-02 - 9.279793130272118e-02 9.283254716719631e-02 9.286695521394739e-02 9.290115536246511e-02 9.293514761281572e-02 - 9.296893192325742e-02 9.300250819824006e-02 9.303587638369953e-02 9.306903645092859e-02 9.310198837852499e-02 - 9.313473209662422e-02 9.316726755984403e-02 9.319959477466139e-02 9.323171364631608e-02 9.326362408592948e-02 - 9.329532610133226e-02 9.332681964339190e-02 9.335810464438972e-02 9.338918108249107e-02 9.342004893308628e-02 - 9.345070815580041e-02 9.348115868437977e-02 9.351140046962789e-02 9.354143348306601e-02 9.357125770365762e-02 - 9.360087308621738e-02 9.363027956518245e-02 9.365947710363894e-02 9.368846567300493e-02 9.371724524372237e-02 - 9.374581578300241e-02 9.377417725111503e-02 9.380232960142115e-02 9.383027280206080e-02 9.385800682788301e-02 - 9.388553164914089e-02 9.391284719773688e-02 9.393995342276806e-02 9.396685035781838e-02 9.399353796706621e-02 - 9.402001617537038e-02 9.404628495786660e-02 9.407234429781461e-02 9.409819417117830e-02 9.412383453169183e-02 - 9.414926534580341e-02 9.417448659641373e-02 9.419949825736050e-02 9.422430029380560e-02 9.424889267135104e-02 - 9.427327539998738e-02 9.429744844865905e-02 9.432141171534560e-02 9.434516522540957e-02 9.436870900006604e-02 - 9.439204294634228e-02 9.441516705436934e-02 9.443808133745002e-02 9.446078573953387e-02 9.448328023801857e-02 - 9.450556483411636e-02 9.452763950923013e-02 9.454950421611270e-02 9.457115890701832e-02 9.459260360830167e-02 - 9.461383832574666e-02 9.463486302352626e-02 9.465567765409444e-02 9.467628220109425e-02 9.469667668274938e-02 - 9.471686106967921e-02 9.473683533004949e-02 9.475659945563136e-02 9.477615343325803e-02 9.479549725292793e-02 - 9.481463091432241e-02 9.483355439545672e-02 9.485226766778346e-02 9.487077071788189e-02 9.488906353992572e-02 - 9.490714613644993e-02 9.492501852119042e-02 9.494268066964073e-02 9.496013253895599e-02 9.497737414244060e-02 - 9.499440547543551e-02 9.501122651272445e-02 9.502783728094538e-02 9.504423778187990e-02 9.506042797340242e-02 - 9.507640785191551e-02 9.509217742006319e-02 9.510773667189122e-02 9.512308563868060e-02 9.513822432123879e-02 - 9.515315264231193e-02 9.516787063845662e-02 9.518237836728226e-02 9.519667577724227e-02 9.521076284349063e-02 - 9.522463958294539e-02 9.523830604498588e-02 9.525176221483619e-02 9.526500804718509e-02 9.527804359769618e-02 - 9.529086886623650e-02 9.530348379689602e-02 9.531588845120076e-02 9.532808286166987e-02 9.534006699012688e-02 - 9.535184085361241e-02 9.536340447105748e-02 9.537475783364874e-02 9.538590095359538e-02 9.539683385237334e-02 - 9.540755654711666e-02 9.541806903829181e-02 9.542837132640679e-02 9.543846343230179e-02 9.544834536597921e-02 - 9.545801714100983e-02 9.546747880593646e-02 9.547673036184304e-02 9.548577178084619e-02 9.549460309483834e-02 - 9.550322434581640e-02 9.551163556335956e-02 9.551983673903520e-02 9.552782788036314e-02 9.553560902903191e-02 - 9.554318022933674e-02 9.555054148771730e-02 9.555769276632298e-02 9.556463412975340e-02 9.557136563747151e-02 - 9.557788725689133e-02 9.558419903459103e-02 9.559030102901959e-02 9.559619321427665e-02 9.560187562136102e-02 - 9.560734830883322e-02 9.561261127917654e-02 9.561766456108449e-02 9.562250820572099e-02 9.562714223416331e-02 - 9.563156666435306e-02 9.563578152405575e-02 9.563978686682097e-02 9.564358272631937e-02 9.564716910782914e-02 - 9.565054604965099e-02 9.565371359980702e-02 9.565667179877529e-02 9.565942066526258e-02 9.566196023293236e-02 - 9.566429057683135e-02 9.566641172752892e-02 9.566832368940979e-02 9.567002647518966e-02 9.567152016429874e-02 - 9.567280484915060e-02 9.567388053004788e-02 9.567474721294261e-02 9.567540493730267e-02 9.567585379392737e-02 - 9.567609383300600e-02 9.567612506298810e-02 9.567594754568214e-02 9.567556133790830e-02 9.567496647244744e-02 - 9.567416299512438e-02 9.567315095370396e-02 9.567193039196389e-02 9.567050136232016e-02 9.566886392120964e-02 - 9.566701812558283e-02 9.566496403827787e-02 9.566270170884209e-02 9.566023115264767e-02 9.565755243736668e-02 - 9.565466564791879e-02 9.565157080775241e-02 9.564826797386157e-02 9.564475723264595e-02 9.564103864027859e-02 - 9.563711223757489e-02 9.563297806735498e-02 9.562863621895812e-02 9.562408675116861e-02 9.561932968250994e-02 - 9.561436511583814e-02 9.560919313325968e-02 9.560381374743886e-02 9.559822704785555e-02 9.559243313048145e-02 - 9.558643203289170e-02 9.558022378864620e-02 9.557380846466877e-02 9.556718619530349e-02 9.556035703327785e-02 - 9.555332100122134e-02 9.554607821247386e-02 9.553862873475936e-02 9.553097259908433e-02 9.552310989218279e-02 - 9.551504070130773e-02 9.550676510186747e-02 9.549828317393894e-02 9.548959500356741e-02 9.548070067318166e-02 - 9.547160021295119e-02 9.546229369018946e-02 9.545278124506257e-02 9.544306292579091e-02 9.543313878273989e-02 - 9.542300894892854e-02 9.541267351639289e-02 9.540213254817664e-02 9.539138610562420e-02 9.538043425774057e-02 - 9.536927709152246e-02 9.535791472882026e-02 9.534634726779553e-02 9.533457478138217e-02 9.532259734256758e-02 - 9.531041503990305e-02 9.529802797105680e-02 9.528543620462085e-02 9.527263983869082e-02 9.525963900525855e-02 - 9.524643375927100e-02 9.523302417643500e-02 9.521941040061487e-02 9.520559252291068e-02 9.519157060486365e-02 - 9.517734471153570e-02 9.516291499670615e-02 9.514828160467456e-02 9.513344455080376e-02 9.511840393248631e-02 - 9.510315989360162e-02 9.508771251519674e-02 9.507206189457258e-02 9.505620814925633e-02 9.504015138530268e-02 - 9.502389169582724e-02 9.500742917228551e-02 9.499076394524120e-02 9.497389612890822e-02 9.495682580659018e-02 - 9.493955308203066e-02 9.492207807526097e-02 9.490440091330225e-02 9.488652168366014e-02 9.486844048723730e-02 - 9.485015747906970e-02 9.483167277063544e-02 9.481298644119306e-02 9.479409856622809e-02 9.477500930738031e-02 - 9.475571884085587e-02 9.473622721810367e-02 9.471653454723004e-02 9.469664098786204e-02 9.467654664635866e-02 - 9.465625162221861e-02 9.463575602621152e-02 9.461505999415500e-02 9.459416367044585e-02 9.457306719633034e-02 - 9.455177068421998e-02 9.453027423759350e-02 9.450857796468222e-02 9.448668199276268e-02 9.446458647203468e-02 - 9.444229157255099e-02 9.441979739649474e-02 9.439710403006842e-02 9.437421161454676e-02 9.435112031829759e-02 - 9.432783029179438e-02 9.430434160094567e-02 9.428065438538669e-02 9.425676883924589e-02 9.423268508508292e-02 - 9.420840322981890e-02 9.418392339716981e-02 9.415924578030670e-02 9.413437051700123e-02 9.410929767030043e-02 - 9.408402741009517e-02 9.405855992335012e-02 9.403289535840260e-02 9.400703383941893e-02 9.398097549341558e-02 - 9.395472046838550e-02 9.392826889502673e-02 9.390162091553057e-02 9.387477672023849e-02 9.384773645864139e-02 - 9.382050025947151e-02 9.379306828457251e-02 9.376544068778003e-02 9.373761760606118e-02 9.370959916011609e-02 - 9.368138552427184e-02 9.365297690930323e-02 9.362437342817573e-02 9.359557520850639e-02 9.356658243379877e-02 - 9.353739529945312e-02 9.350801394425273e-02 9.347843843855524e-02 9.344866901272440e-02 9.341870589097585e-02 - 9.338854915644307e-02 9.335819897637819e-02 9.332765555734250e-02 9.329691906420928e-02 9.326598960092489e-02 - 9.323486729288316e-02 9.320355242698486e-02 9.317204517635257e-02 9.314034562740874e-02 9.310845398153604e-02 - 9.307637042858882e-02 9.304409511565054e-02 9.301162817412864e-02 9.297896979469056e-02 9.294612022999450e-02 - 9.291307963943660e-02 9.287984815938743e-02 9.284642594887814e-02 9.281281319942865e-02 9.277901009754375e-02 - 9.274501679883909e-02 9.271083349621308e-02 9.267646039527271e-02 9.264189767811302e-02 9.260714551564306e-02 - 9.257220408228978e-02 9.253707357624473e-02 9.250175417101536e-02 9.246624602802385e-02 9.243054935165987e-02 - 9.239466434718238e-02 9.235859120974489e-02 9.232233012999355e-02 9.228588129454922e-02 9.224924488066757e-02 - 9.221242103323031e-02 9.217540995047416e-02 9.213821191347883e-02 9.210082709355732e-02 9.206325564930115e-02 - 9.202549780755387e-02 9.198755374602623e-02 9.194942363528436e-02 9.191110769995278e-02 9.187260614753277e-02 - 9.183391917841241e-02 9.179504701848260e-02 9.175598985687712e-02 9.171674785963810e-02 9.167732123351167e-02 - 9.163771019528422e-02 9.159791495855178e-02 9.155793572040530e-02 9.151777270193290e-02 9.147742614628342e-02 - 9.143689622063791e-02 9.139618310892414e-02 9.135528705455570e-02 9.131420824439858e-02 9.127294688450004e-02 - 9.123150325806001e-02 9.118987755991119e-02 9.114806996063474e-02 9.110608069642255e-02 9.106390998608170e-02 - 9.102155802996120e-02 9.097902503011562e-02 9.093631123402490e-02 9.089341690732793e-02 9.085034224655422e-02 - 9.080708743846595e-02 9.076365269164367e-02 9.072003828369785e-02 9.067624443485320e-02 9.063227129485288e-02 - 9.058811915193726e-02 9.054378827004000e-02 9.049927881221763e-02 9.045459103770109e-02 9.040972520178260e-02 - 9.036468147234690e-02 9.031946007844127e-02 9.027406127956829e-02 9.022848531585773e-02 9.018273243214560e-02 - 9.013680287341128e-02 9.009069686920407e-02 9.004441462623869e-02 8.999795635152021e-02 8.995132231203949e-02 - 8.990451276610797e-02 8.985752795281814e-02 8.981036812557305e-02 8.976303351703613e-02 8.971552434037033e-02 - 8.966784087291869e-02 8.961998334831080e-02 8.957195192338249e-02 8.952374693198487e-02 8.947536869631613e-02 - 8.942681737354224e-02 8.937809319632291e-02 8.932919644498671e-02 8.928012738635183e-02 8.923088623240803e-02 - 8.918147319450437e-02 8.913188858291199e-02 8.908213269254797e-02 8.903220577223506e-02 8.898210800726358e-02 - 8.893183965769864e-02 8.888140104180198e-02 8.883079233855783e-02 8.878001380541380e-02 8.872906581842580e-02 - 8.867794859494142e-02 8.862666233412557e-02 8.857520730323154e-02 8.852358381153494e-02 8.847179212845252e-02 - 8.841983243253916e-02 8.836770502123131e-02 8.831541022882371e-02 8.826294830990469e-02 8.821031949641793e-02 - 8.815752403748606e-02 8.810456224863354e-02 8.805143437639511e-02 8.799814063336710e-02 8.794468134879541e-02 - 8.789105684257616e-02 8.783726738270531e-02 8.778331316928159e-02 8.772919447874153e-02 8.767491167446911e-02 - 8.762046495069514e-02 8.756585454037039e-02 8.751108081839833e-02 8.745614408581825e-02 8.740104459021790e-02 - 8.734578256007368e-02 8.729035830815834e-02 8.723477214343743e-02 8.717902426868683e-02 8.712311501918556e-02 - 8.706704476846663e-02 8.701081371877695e-02 8.695442211628683e-02 8.689787027644420e-02 8.684115853767592e-02 - 8.678428714435096e-02 8.672725629439892e-02 8.667006642064547e-02 8.661271785522098e-02 8.655521075244504e-02 - 8.649754543067346e-02 8.643972223965939e-02 8.638174147222141e-02 8.632360334916610e-02 8.626530814542391e-02 - 8.620685627786050e-02 8.614824804295058e-02 8.608948367410735e-02 8.603056343813603e-02 8.597148768708160e-02 - 8.591225676580187e-02 8.585287085352321e-02 8.579333027004854e-02 8.573363543090719e-02 8.567378659419787e-02 - 8.561378404241062e-02 8.555362810687137e-02 8.549331906471129e-02 8.543285719635127e-02 8.537224281446841e-02 - 8.531147627953188e-02 8.525055791649624e-02 8.518948798167383e-02 8.512826679756995e-02 8.506689470133286e-02 - 8.500537199311337e-02 8.494369892596923e-02 8.488187579804041e-02 8.481990305210670e-02 8.475778099074194e-02 - 8.469550984763315e-02 8.463308996695838e-02 8.457052168539449e-02 8.450780530789033e-02 8.444494110975011e-02 - 8.438192942971584e-02 8.431877065438623e-02 8.425546507059704e-02 8.419201297696736e-02 8.412841471805475e-02 - 8.406467061549007e-02 8.400078097306259e-02 8.393674609180030e-02 8.387256634619757e-02 8.380824209666674e-02 - 8.374377362095807e-02 8.367916122870038e-02 8.361440526888680e-02 8.354950611900661e-02 8.348446403538942e-02 - 8.341927927704872e-02 8.335395233905314e-02 8.328848356223681e-02 8.322287316371958e-02 8.315712149574238e-02 - 8.309122893699929e-02 8.302519583647612e-02 8.295902243510637e-02 8.289270907781640e-02 8.282625623697057e-02 - 8.275966417678003e-02 8.269293318851907e-02 8.262606370095599e-02 8.255905601211083e-02 8.249191039312886e-02 - 8.242462718945633e-02 8.235720681988298e-02 8.228964967784431e-02 8.222195602541869e-02 8.215412621284769e-02 - 8.208616062445039e-02 8.201805954142698e-02 8.194982329150195e-02 8.188145225476894e-02 8.181294680713293e-02 - 8.174430731452863e-02 8.167553412282050e-02 8.160662752890076e-02 8.153758789030935e-02 8.146841562526554e-02 - 8.139911098330359e-02 8.132967428676124e-02 8.126010603531450e-02 8.119040656216225e-02 8.112057615694021e-02 - 8.105061517994502e-02 8.098052402265073e-02 8.091030303880128e-02 8.083995248093376e-02 8.076947276447492e-02 - 8.069886435754116e-02 8.062812754457355e-02 8.055726265736828e-02 8.048627008799529e-02 8.041515020636995e-02 - 8.034390332540668e-02 8.027252974489747e-02 8.020102993492553e-02 8.012940431195667e-02 8.005765317555476e-02 - 7.998577686939379e-02 7.991377577220368e-02 7.984165027334414e-02 7.976940065907111e-02 7.969702727793032e-02 - 7.962453065567111e-02 7.955191112254574e-02 7.947916895239987e-02 7.940630455590227e-02 7.933331833212637e-02 - 7.926021063894960e-02 7.918698178217287e-02 7.911363216326053e-02 7.904016223823181e-02 7.896657235187955e-02 - 7.889286283938438e-02 7.881903406306398e-02 7.874508643443230e-02 7.867102031060058e-02 7.859683599526633e-02 - 7.852253395767629e-02 7.844811463098400e-02 7.837357831424305e-02 7.829892537205134e-02 7.822415619643758e-02 - 7.814927116484589e-02 7.807427062910767e-02 7.799915496813195e-02 7.792392464520610e-02 7.784858004657273e-02 - 7.777312150359181e-02 7.769754936428309e-02 7.762186403791040e-02 7.754606594385612e-02 7.747015537442642e-02 - 7.739413273994507e-02 7.731799855521804e-02 7.724175314852555e-02 7.716539684747571e-02 7.708893004657069e-02 - 7.701235315053030e-02 7.693566653742440e-02 7.685887055661017e-02 7.678196565918903e-02 7.670495227727288e-02 - 7.662783073280909e-02 7.655060142689749e-02 7.647326478202995e-02 7.639582115595660e-02 7.631827089499127e-02 - 7.624061438211467e-02 7.616285210329320e-02 7.608498447266238e-02 7.600701183814436e-02 7.592893457493513e-02 - 7.585075308733022e-02 7.577246778116596e-02 7.569407897223836e-02 7.561558707997214e-02 7.553699264667676e-02 - 7.545829602219666e-02 7.537949752159374e-02 7.530059752746436e-02 7.522159652110559e-02 7.514249491290788e-02 - 7.506329293711217e-02 7.498399108869409e-02 7.490458989985715e-02 7.482508965268882e-02 7.474549074308040e-02 - 7.466579363230305e-02 7.458599868473173e-02 7.450610623924510e-02 7.442611667561436e-02 7.434603053570255e-02 - 7.426584824442337e-02 7.418557009969678e-02 7.410519651333995e-02 7.402472793153594e-02 7.394416477978479e-02 - 7.386350736456949e-02 7.378275607823381e-02 7.370191147772952e-02 7.362097394239986e-02 7.353994380500382e-02 - 7.345882147239775e-02 7.337760740248925e-02 7.329630201371148e-02 7.321490559729334e-02 7.313341861868546e-02 - 7.305184160923943e-02 7.297017492620234e-02 7.288841893034562e-02 7.280657402242413e-02 7.272464064227188e-02 - 7.264261917439505e-02 7.256050997585588e-02 7.247831356170273e-02 7.239603038649280e-02 7.231366079163171e-02 - 7.223120520116612e-02 7.214866404160214e-02 7.206603769517569e-02 7.198332653777370e-02 7.190053098792457e-02 - 7.181765153838118e-02 7.173468863077177e-02 7.165164265282598e-02 7.156851395212357e-02 7.148530298289761e-02 - 7.140201021117390e-02 7.131863593482980e-02 7.123518058493326e-02 7.115164469180060e-02 7.106802866653637e-02 - 7.098433289103630e-02 7.090055775733806e-02 7.081670370962735e-02 7.073277114629017e-02 7.064876042084919e-02 - 7.056467204467058e-02 7.048050649359339e-02 7.039626411522021e-02 7.031194531783586e-02 7.022755055007633e-02 - 7.014308026270048e-02 7.005853477507426e-02 6.997391445865883e-02 6.988921994223606e-02 6.980445161374127e-02 - 6.971960976161336e-02 6.963469490630880e-02 6.954970749457975e-02 6.946464787470261e-02 6.937951638488904e-02 - 6.929431352344900e-02 6.920903988440608e-02 6.912369577614699e-02 6.903828154824053e-02 6.895279768813133e-02 - 6.886724462309453e-02 6.878162274040467e-02 6.869593242264821e-02 6.861017418575431e-02 6.852434851303352e-02 - 6.843845573229547e-02 6.835249626715924e-02 6.826647058722328e-02 6.818037912112360e-02 6.809422221022603e-02 - 6.800800023353686e-02 6.792171381432285e-02 6.783536337902803e-02 6.774894920974223e-02 6.766247176656806e-02 - 6.757593152448671e-02 6.748932891036163e-02 6.740266425451470e-02 6.731593799992638e-02 6.722915072040272e-02 - 6.714230278026269e-02 6.705539454984789e-02 6.696842651283096e-02 6.688139909018249e-02 6.679431266253504e-02 - 6.670716761081900e-02 6.661996446504156e-02 6.653270374249923e-02 6.644538575792285e-02 6.635801090742725e-02 - 6.627057965598744e-02 6.618309245387675e-02 6.609554968705872e-02 6.600795173819872e-02 6.592029914958422e-02 - 6.583259238307172e-02 6.574483179767340e-02 6.565701780669353e-02 6.556915085921187e-02 6.548123140723705e-02 - 6.539325979064996e-02 6.530523643565112e-02 6.521716192687264e-02 6.512903665438342e-02 6.504086097557776e-02 - 6.495263535156262e-02 6.486436022769713e-02 6.477603601048113e-02 6.468766306269763e-02 6.459924187637454e-02 - 6.451077298036002e-02 6.442225675573160e-02 6.433369358016772e-02 6.424508387319842e-02 6.415642813133042e-02 - 6.406772674084167e-02 6.397898002556264e-02 6.389018858464109e-02 6.380135290132970e-02 6.371247325592760e-02 - 6.362355010153516e-02 6.353458392277617e-02 6.344557514446422e-02 6.335652411846264e-02 6.326743126079815e-02 - 6.317829713990436e-02 6.308912216326193e-02 6.299990668862973e-02 6.291065117630994e-02 6.282135608306753e-02 - 6.273202182393535e-02 6.264264873955985e-02 6.255323731562341e-02 6.246378810230178e-02 6.237430143094801e-02 - 6.228477769978175e-02 6.219521740601344e-02 6.210562097707054e-02 6.201598879095212e-02 6.192632121693314e-02 - 6.183661876812600e-02 6.174688193928092e-02 6.165711112558074e-02 6.156730673780070e-02 6.147746920022401e-02 - 6.138759893800432e-02 6.129769633241683e-02 6.120776180293847e-02 6.111779589683188e-02 6.102779903735479e-02 - 6.093777158500626e-02 6.084771398591046e-02 6.075762667844817e-02 6.066751007308262e-02 6.057736455111417e-02 - 6.048719057054321e-02 6.039698864588414e-02 6.030675917961215e-02 6.021650256672047e-02 6.012621923377075e-02 - 6.003590961818356e-02 5.994557411659043e-02 5.985521308639186e-02 5.976482706463886e-02 5.967441656528669e-02 - 5.958398192281734e-02 5.949352353003544e-02 5.940304183449088e-02 5.931253730252380e-02 5.922201027916447e-02 - 5.913146112197507e-02 5.904089044032181e-02 5.895029868043596e-02 5.885968615096351e-02 5.876905326755812e-02 - 5.867840050492581e-02 5.858772833116550e-02 5.849703703991720e-02 5.840632705235495e-02 5.831559896255584e-02 - 5.822485314806121e-02 5.813408997000494e-02 5.804330987759122e-02 5.795251328764216e-02 5.786170059865808e-02 - 5.777087221384987e-02 5.768002859772193e-02 5.758917021647553e-02 5.749829746896256e-02 5.740741077575853e-02 - 5.731651056875526e-02 5.722559725171274e-02 5.713467118430270e-02 5.704373274635539e-02 5.695278249332581e-02 - 5.686182088614487e-02 5.677084826809927e-02 5.667986504336005e-02 5.658887165217444e-02 5.649786853613976e-02 - 5.640685602792318e-02 5.631583453941855e-02 5.622480462822738e-02 5.613376666437993e-02 5.604272100502515e-02 - 5.595166813210956e-02 5.586060845174765e-02 5.576954232437998e-02 5.567847012652845e-02 5.558739236715193e-02 - 5.549630955542323e-02 5.540522197136583e-02 5.531413002536285e-02 5.522303422299683e-02 5.513193492275553e-02 - 5.504083247717721e-02 5.494972729209355e-02 5.485861988753332e-02 5.476751071228679e-02 5.467640010379995e-02 - 5.458528846418693e-02 5.449417622493567e-02 5.440306381105370e-02 5.431195155656662e-02 5.422083985771245e-02 - 5.412972927459819e-02 5.403862019627870e-02 5.394751295390937e-02 5.385640797531270e-02 5.376530569364821e-02 - 5.367420650537214e-02 5.358311072889269e-02 5.349201882499156e-02 5.340093132499041e-02 5.330984856991542e-02 - 5.321877091980749e-02 5.312769879767464e-02 5.303663263591166e-02 5.294557280318667e-02 5.285451962473617e-02 - 5.276347361952855e-02 5.267243525955664e-02 5.258140485845194e-02 5.249038280640431e-02 5.239936952998326e-02 - 5.230836544276557e-02 5.221737088032564e-02 5.212638621732711e-02 5.203541199430900e-02 5.194444860919033e-02 - 5.185349638284296e-02 5.176255572471577e-02 5.167162705674897e-02 5.158071077330502e-02 5.148980718747074e-02 - 5.139891673261619e-02 5.130803993485430e-02 5.121717713356427e-02 5.112632867301793e-02 5.103549496777923e-02 - 5.094467643725986e-02 5.085387344650644e-02 5.076308630673339e-02 5.067231551219451e-02 5.058156153920812e-02 - 5.049082469322039e-02 5.040010534612100e-02 5.030940391348503e-02 5.021872080090227e-02 5.012805633824483e-02 - 5.003741087422633e-02 4.994678493647212e-02 4.985617892926745e-02 4.976559315779018e-02 4.967502801470126e-02 - 4.958448390876292e-02 4.949396122643934e-02 4.940346027599988e-02 4.931298146262254e-02 4.922252530167843e-02 - 4.913209213539834e-02 4.904168229174269e-02 4.895129616994274e-02 4.886093417404704e-02 4.877059666413559e-02 - 4.868028394034647e-02 4.858999646754281e-02 4.849973472130898e-02 4.840949900241633e-02 4.831928966152828e-02 - 4.822910709871525e-02 4.813895171199074e-02 4.804882382564480e-02 4.795872376124456e-02 4.786865202942978e-02 - 4.777860903855367e-02 4.768859507592742e-02 4.759861051627762e-02 4.750865575639699e-02 4.741873117406014e-02 - 4.732883706721817e-02 4.723897381137243e-02 4.714914191200375e-02 4.705934171189571e-02 4.696957351961628e-02 - 4.687983771740974e-02 4.679013469431771e-02 4.670046480338604e-02 4.661082833156779e-02 4.652122571187634e-02 - 4.643165741520618e-02 4.634212373882778e-02 4.625262501422293e-02 4.616316162482947e-02 4.607373395212459e-02 - 4.598434231610999e-02 4.589498701904484e-02 4.580566854223844e-02 4.571638729424802e-02 4.562714355109129e-02 - 4.553793766452621e-02 4.544877001582995e-02 4.535964097502848e-02 4.527055082898004e-02 4.518149992236756e-02 - 4.509248874970542e-02 4.500351765014129e-02 4.491458690878355e-02 4.482569689376779e-02 4.473684797939540e-02 - 4.464804050747698e-02 4.455927474828068e-02 4.447055110499822e-02 4.438187004531898e-02 4.429323185876936e-02 - 4.420463685202721e-02 4.411608538888854e-02 4.402757783926076e-02 4.393911451733543e-02 4.385069570127949e-02 - 4.376232184208732e-02 4.367399334643604e-02 4.358571047769912e-02 4.349747356709084e-02 4.340928298020802e-02 - 4.332113907381294e-02 4.323304212320113e-02 4.314499244129432e-02 4.305699050668390e-02 4.296903665620930e-02 - 4.288113115167341e-02 4.279327434447749e-02 4.270546659199307e-02 4.261770822231841e-02 4.252999949469098e-02 - 4.244234077853745e-02 4.235473252680039e-02 4.226717502474875e-02 4.217966855846760e-02 4.209221347273914e-02 - 4.200481011967518e-02 4.191745880279663e-02 4.183015977695443e-02 4.174291346429643e-02 4.165572027077732e-02 - 4.156858044734360e-02 4.148149429654668e-02 4.139446216241891e-02 4.130748439363172e-02 4.122056125606220e-02 - 4.113369302794675e-02 4.104688016346336e-02 4.096012300095512e-02 4.087342178434451e-02 4.078677683583759e-02 - 4.070018849668031e-02 4.061365708919899e-02 4.052718285106741e-02 4.044076611819490e-02 4.035440733833207e-02 - 4.026810678092279e-02 4.018186470341873e-02 4.009568143909095e-02 4.000955732298062e-02 3.992349264534106e-02 - 3.983748763759326e-02 3.975154269055037e-02 3.966565820546299e-02 3.957983441649049e-02 3.949407160357907e-02 - 3.940837009289332e-02 3.932273021031552e-02 3.923715221270428e-02 3.915163635394041e-02 3.906618306202975e-02 - 3.898079266950179e-02 3.889546539672872e-02 3.881020154253283e-02 3.872500143016262e-02 3.863986536923758e-02 - 3.855479358615301e-02 3.846978637959592e-02 3.838484417257106e-02 3.829996723484980e-02 3.821515580420295e-02 - 3.813041018714970e-02 3.804573069687705e-02 3.796111761198420e-02 3.787657114752344e-02 3.779209165765486e-02 - 3.770767953120019e-02 3.762333499040284e-02 3.753905829251161e-02 3.745484974542636e-02 3.737070965331050e-02 - 3.728663825939783e-02 3.720263578933122e-02 3.711870264209954e-02 3.703483914671073e-02 3.695104550519348e-02 - 3.686732199057993e-02 3.678366890490292e-02 3.670008654113079e-02 3.661657511036890e-02 3.653313487804630e-02 - 3.644976625150438e-02 3.636646948823320e-02 3.628324479604935e-02 3.620009246605282e-02 3.611701279349350e-02 - 3.603400604041686e-02 3.595107239910939e-02 3.586821219020735e-02 3.578542579441001e-02 3.570271341631447e-02 - 3.562007528519529e-02 3.553751169069794e-02 3.545502291550906e-02 3.537260919186706e-02 3.529027072401183e-02 - 3.520800787214007e-02 3.512582095428173e-02 3.504371015751370e-02 3.496167573051010e-02 3.487971795476078e-02 - 3.479783710598274e-02 3.471603337811516e-02 3.463430699965583e-02 3.455265835796009e-02 3.447108770848941e-02 - 3.438959523450754e-02 3.430818119554624e-02 3.422684586511945e-02 3.414558949343227e-02 3.406441225419257e-02 - 3.398331443038755e-02 3.390229638782512e-02 3.382135832287533e-02 3.374050043789544e-02 3.365972299780525e-02 - 3.357902626321113e-02 3.349841045119794e-02 3.341787574130316e-02 3.333742246166845e-02 3.325705092272905e-02 - 3.317676129391954e-02 3.309655379649919e-02 3.301642868788483e-02 3.293638622159571e-02 3.285642658240021e-02 - 3.277654996949401e-02 3.269675673538998e-02 3.261704712715797e-02 3.253742130855802e-02 3.245787951722746e-02 - 3.237842200259459e-02 3.229904899349424e-02 3.221976065258773e-02 3.214055722659278e-02 3.206143905506719e-02 - 3.198240632628265e-02 3.190345921865954e-02 3.182459797365254e-02 3.174582282841434e-02 3.166713398447476e-02 - 3.158853160183031e-02 3.151001597036992e-02 3.143158738592136e-02 3.135324600516137e-02 3.127499202279022e-02 - 3.119682567104914e-02 3.111874718036912e-02 3.104075672462514e-02 3.096285447683152e-02 3.088504075536903e-02 - 3.080731579690068e-02 3.072967974437236e-02 3.065213281019982e-02 3.057467522135681e-02 3.049730718652442e-02 - 3.042002885157935e-02 3.034284042889533e-02 3.026574223701538e-02 3.018873445294931e-02 3.011181722724549e-02 - 3.003499077734359e-02 2.995825532248887e-02 2.988161104857855e-02 2.980505808548691e-02 2.972859668986686e-02 - 2.965222714891759e-02 2.957594959806504e-02 2.949976420500935e-02 2.942367118266701e-02 2.934767073798247e-02 - 2.927176302885600e-02 2.919594820074298e-02 2.912022654108078e-02 2.904459827654108e-02 2.896906352751058e-02 - 2.889362247668933e-02 2.881827533028623e-02 2.874302228403363e-02 2.866786346167200e-02 2.859279903706265e-02 - 2.851782931145582e-02 2.844295445253672e-02 2.836817458182308e-02 2.829348988995876e-02 2.821890057629359e-02 - 2.814440681221589e-02 2.807000870175516e-02 2.799570646465742e-02 2.792150037589211e-02 2.784739055623231e-02 - 2.777337714638600e-02 2.769946033688953e-02 2.762564030841585e-02 2.755191720229608e-02 2.747829114116882e-02 - 2.740476237631904e-02 2.733133112357609e-02 2.725799748998750e-02 2.718476162641247e-02 2.711162371095654e-02 - 2.703858392279279e-02 2.696564237390275e-02 2.689279920452167e-02 2.682005468428394e-02 2.674740897239565e-02 - 2.667486216835663e-02 2.660241443488607e-02 2.653006594727732e-02 2.645781686062815e-02 2.638566726160998e-02 - 2.631361733435826e-02 2.624166733570949e-02 2.616981737012440e-02 2.609806754771221e-02 2.602641803533937e-02 - 2.595486900051258e-02 2.588342056814261e-02 2.581207282360541e-02 2.574082599292273e-02 2.566968028470076e-02 - 2.559863577456860e-02 2.552769259041796e-02 2.545685089381796e-02 2.538611083889939e-02 2.531547252137675e-02 - 2.524493605061727e-02 2.517450166747065e-02 2.510416952086314e-02 2.503393968681819e-02 2.496381230163825e-02 - 2.489378751859868e-02 2.482386547683629e-02 2.475404624292582e-02 2.468432996264991e-02 2.461471687229032e-02 - 2.454520706873932e-02 2.447580063686782e-02 2.440649771598710e-02 2.433729844997764e-02 2.426820294893469e-02 - 2.419921127712116e-02 2.413032362216684e-02 2.406154017790910e-02 2.399286100816565e-02 2.392428621229386e-02 - 2.385581592554643e-02 2.378745028409909e-02 2.371918936700126e-02 2.365103325041379e-02 2.358298215018098e-02 - 2.351503620457756e-02 2.344719546326070e-02 2.337946004127276e-02 2.331183006962702e-02 2.324430566419196e-02 - 2.317688687789637e-02 2.310957382435168e-02 2.304236671579298e-02 2.297526563441205e-02 2.290827063843882e-02 - 2.284138184722980e-02 2.277459938171355e-02 2.270792333404544e-02 2.264135374860772e-02 2.257489077729924e-02 - 2.250853459738779e-02 2.244228525780410e-02 2.237614283279474e-02 2.231010743473913e-02 2.224417917668724e-02 - 2.217835812285958e-02 2.211264432248330e-02 2.204703795931322e-02 2.198153916317220e-02 2.191614796666107e-02 - 2.185086445220271e-02 2.178568872592581e-02 2.172062089111306e-02 2.165566098457172e-02 2.159080908357505e-02 - 2.152606537366001e-02 2.146142993110024e-02 2.139690279242156e-02 2.133248404619538e-02 2.126817379406035e-02 - 2.120397211607284e-02 2.113987903003668e-02 2.107589465469217e-02 2.101201915594272e-02 2.094825256288664e-02 - 2.088459492231405e-02 2.082104632696408e-02 2.075760686991806e-02 2.069427660166107e-02 2.063105554609518e-02 - 2.056794384972622e-02 2.050494162894281e-02 2.044204890243054e-02 2.037926573000831e-02 2.031659219454509e-02 - 2.025402837653619e-02 2.019157429898307e-02 2.012923000978476e-02 2.006699566765361e-02 2.000487133731908e-02 - 1.994285703240835e-02 1.988095281849638e-02 1.981915877663429e-02 1.975747497137283e-02 1.969590139839621e-02 - 1.963443814246610e-02 1.957308535571834e-02 1.951184305296579e-02 1.945071125524195e-02 1.938969003470093e-02 - 1.932877945979973e-02 1.926797956444602e-02 1.920729035294688e-02 1.914671194302782e-02 1.908624443873623e-02 - 1.902588783798898e-02 1.896564217312377e-02 1.890550750534374e-02 1.884548390173623e-02 1.878557136933607e-02 - 1.872576992282937e-02 1.866607969751645e-02 1.860650074902563e-02 1.854703306920867e-02 1.848767670108510e-02 - 1.842843170242723e-02 1.836929811895166e-02 1.831027593341436e-02 1.825136519709141e-02 1.819256603897189e-02 - 1.813387846842225e-02 1.807530248298604e-02 1.801683812530333e-02 1.795848544988909e-02 1.790024447932676e-02 - 1.784211518704799e-02 1.778409766075985e-02 1.772619199567190e-02 1.766839817113224e-02 1.761071619932593e-02 - 1.755314612276550e-02 1.749568797940397e-02 1.743834176385679e-02 1.738110747126647e-02 1.732398520795971e-02 - 1.726697501687009e-02 1.721007686976607e-02 1.715329079150987e-02 1.709661681774517e-02 1.704005496995066e-02 - 1.698360522175755e-02 1.692726759648597e-02 1.687104219632033e-02 1.681492902190890e-02 1.675892805218375e-02 - 1.670303930866012e-02 1.664726282100333e-02 1.659159859573434e-02 1.653604659349284e-02 1.648060687061485e-02 - 1.642527950537791e-02 1.637006446137386e-02 1.631496172845883e-02 1.625997133117372e-02 1.620509328829045e-02 - 1.615032758053278e-02 1.609567417924041e-02 1.604113316306734e-02 1.598670456411958e-02 1.593238833576510e-02 - 1.587818448257840e-02 1.582409302120838e-02 1.577011395254391e-02 1.571624723647299e-02 1.566249287063067e-02 - 1.560885093721684e-02 1.555532142372995e-02 1.550190428691725e-02 1.544859953345741e-02 1.539540716895692e-02 - 1.534232718045593e-02 1.528935952298772e-02 1.523650422043375e-02 1.518376132655854e-02 1.513113080051426e-02 - 1.507861261080395e-02 1.502620675643192e-02 1.497391324399307e-02 1.492173204313831e-02 1.486966309840608e-02 - 1.481770646058926e-02 1.476586215324725e-02 1.471413011485714e-02 1.466251032223325e-02 1.461100277337298e-02 - 1.455960746411957e-02 1.450832433725036e-02 1.445715335761371e-02 1.440609458945226e-02 1.435514801148310e-02 - 1.430431355790390e-02 1.425359121341204e-02 1.420298097105418e-02 1.415248280845771e-02 1.410209665546564e-02 - 1.405182250942155e-02 1.400166041623447e-02 1.395161031395394e-02 1.390167215017196e-02 1.385184591619880e-02 - 1.380213159317199e-02 1.375252913341631e-02 1.370303846818604e-02 1.365365962256361e-02 1.360439260851619e-02 - 1.355523734898775e-02 1.350619380184460e-02 1.345726194685572e-02 1.340844175819677e-02 1.335973317080697e-02 - 1.331113613029375e-02 1.326265067233158e-02 1.321427676765317e-02 1.316601433678336e-02 1.311786334248669e-02 - 1.306982375879771e-02 1.302189555021592e-02 1.297407863461756e-02 1.292637298076667e-02 1.287877861455418e-02 - 1.283129547339001e-02 1.278392348592105e-02 1.273666261347862e-02 1.268951282495219e-02 1.264247406704279e-02 - 1.259554625321822e-02 1.254872937642621e-02 1.250202343522368e-02 1.245542834900525e-02 1.240894405313941e-02 - 1.236257050462080e-02 1.231630767029411e-02 1.227015547343941e-02 1.222411383176151e-02 1.217818275998809e-02 - 1.213236222220244e-02 1.208665212384520e-02 1.204105241018576e-02 1.199556303854240e-02 1.195018395838791e-02 - 1.190491507365890e-02 1.185975632952753e-02 1.181470773836339e-02 1.176976922480089e-02 1.172494069835479e-02 - 1.168022211004454e-02 1.163561340968965e-02 1.159111452823667e-02 1.154672536811994e-02 1.150244589927961e-02 - 1.145827610670764e-02 1.141421589534856e-02 1.137026518661645e-02 1.132642392502224e-02 1.128269205281729e-02 - 1.123906948383837e-02 1.119555612518262e-02 1.115215196588227e-02 1.110885695891592e-02 1.106567099667937e-02 - 1.102259400831050e-02 1.097962593601935e-02 1.093676671505125e-02 1.089401623812122e-02 1.085137442757511e-02 - 1.080884127911701e-02 1.076641671182367e-02 1.072410061923310e-02 1.068189293399554e-02 1.063979359231152e-02 - 1.059780251428707e-02 1.055591958418482e-02 1.051414475108346e-02 1.047247799305691e-02 1.043091920126454e-02 - 1.038946827795377e-02 1.034812515386981e-02 1.030688975996647e-02 1.026576200007446e-02 1.022474176231751e-02 - 1.018382901647819e-02 1.014302370834395e-02 1.010232571551464e-02 1.006173495028295e-02 1.002125134058496e-02 - 9.980874808217161e-03 9.940605238090998e-03 9.900442533803457e-03 9.860386673211879e-03 9.820437566105797e-03 - 9.780595089730604e-03 9.740859166502601e-03 9.701229717604148e-03 9.661706648486619e-03 9.622289837555094e-03 - 9.582979211676392e-03 9.543774731762645e-03 9.504676285752028e-03 9.465683761437204e-03 9.426797070527869e-03 - 9.388016130061547e-03 9.349340837763126e-03 9.310771071700266e-03 9.272306774287777e-03 9.233947879847340e-03 - 9.195694263233465e-03 9.157545820041815e-03 9.119502462398593e-03 9.081564104605406e-03 9.043730620594144e-03 - 9.006001891771507e-03 8.968377884117109e-03 8.930858503326412e-03 8.893443610144467e-03 8.856133108771761e-03 - 8.818926910576046e-03 8.781824915337199e-03 8.744826984807866e-03 8.707933026764444e-03 8.671142997995955e-03 - 8.634456771198624e-03 8.597874217863410e-03 8.561395247729468e-03 8.525019762147885e-03 8.488747643810387e-03 - 8.452578758551675e-03 8.416513035074836e-03 8.380550402064440e-03 8.344690718755845e-03 8.308933866062409e-03 - 8.273279745485652e-03 8.237728259206089e-03 8.202279277607399e-03 8.166932668725525e-03 8.131688373197346e-03 - 8.096546291813443e-03 8.061506280849479e-03 8.026568229604077e-03 7.991732033790425e-03 7.956997581179438e-03 - 7.922364735477982e-03 7.887833385768220e-03 7.853403460644042e-03 7.819074838170454e-03 7.784847385209607e-03 - 7.750720988388416e-03 7.716695538073770e-03 7.682770912288046e-03 7.648946965667346e-03 7.615223607644973e-03 - 7.581600758648286e-03 7.548078272068747e-03 7.514656018308716e-03 7.481333888256649e-03 7.448111767084748e-03 - 7.414989518558892e-03 7.381967002509678e-03 7.349044141005179e-03 7.316220829119200e-03 7.283496916229069e-03 - 7.250872276568530e-03 7.218346796125786e-03 7.185920358959778e-03 7.153592811909379e-03 7.121364026156801e-03 - 7.089233934032213e-03 7.057202401526107e-03 7.025269274784423e-03 6.993434437254338e-03 6.961697770726437e-03 - 6.930059144137623e-03 6.898518406074085e-03 6.867075445461445e-03 6.835730169890301e-03 6.804482436531050e-03 - 6.773332103630715e-03 6.742279042830752e-03 6.711323134446215e-03 6.680464239400761e-03 6.649702204950062e-03 - 6.619036937093537e-03 6.588468325547939e-03 6.557996212108587e-03 6.527620458965777e-03 6.497340941897300e-03 - 6.467157538628341e-03 6.437070090473932e-03 6.407078453159759e-03 6.377182548096138e-03 6.347382238649846e-03 - 6.317677359750170e-03 6.288067782822399e-03 6.258553381641384e-03 6.229134019133821e-03 6.199809533909972e-03 - 6.170579803332374e-03 6.141444731866248e-03 6.112404164377095e-03 6.083457948651627e-03 6.054605954063168e-03 - 6.025848047899531e-03 5.997184082520315e-03 5.968613898555075e-03 5.940137388272029e-03 5.911754435973001e-03 - 5.883464876798197e-03 5.855268565478542e-03 5.827165369238958e-03 5.799155152943781e-03 5.771237757858197e-03 - 5.743413031370796e-03 5.715680873423079e-03 5.688041146137241e-03 5.660493683352233e-03 5.633038344713090e-03 - 5.605674994693767e-03 5.578403490874967e-03 5.551223666073857e-03 5.524135383482108e-03 5.497138538622371e-03 - 5.470232973711985e-03 5.443418527865922e-03 5.416695061766649e-03 5.390062436684385e-03 5.363520500801443e-03 - 5.337069085950208e-03 5.310708070645691e-03 5.284437334686721e-03 5.258256709167105e-03 5.232166039984466e-03 - 5.206165186351173e-03 5.180254006079314e-03 5.154432337116667e-03 5.128700017566677e-03 5.103056934758595e-03 - 5.077502948400768e-03 5.052037887552509e-03 5.026661602896529e-03 5.001373950974750e-03 4.976174783805283e-03 - 4.951063931174483e-03 4.926041244835856e-03 4.901106610871052e-03 4.876259869861805e-03 4.851500854152867e-03 - 4.826829416485723e-03 4.802245411238555e-03 4.777748682676776e-03 4.753339057595283e-03 4.729016402174706e-03 - 4.704780591018902e-03 4.680631452386119e-03 4.656568824906738e-03 4.632592561043116e-03 4.608702512089780e-03 - 4.584898512841469e-03 4.561180394112987e-03 4.537548032865621e-03 4.514001286180084e-03 4.490539978046344e-03 - 4.467163952568486e-03 4.443873060291688e-03 4.420667147623122e-03 4.397546041481102e-03 4.374509584352294e-03 - 4.351557654555007e-03 4.328690090868674e-03 4.305906719484884e-03 4.283207387010587e-03 4.260591942258349e-03 - 4.238060226010617e-03 4.215612060889534e-03 4.193247302342208e-03 4.170965820265097e-03 4.148767441443334e-03 - 4.126651998168965e-03 4.104619336614093e-03 4.082669303050944e-03 4.060801730082235e-03 4.039016442831475e-03 - 4.017313308452854e-03 3.995692181792875e-03 3.974152883344686e-03 3.952695251163741e-03 3.931319130911208e-03 - 3.910024364917125e-03 3.888810777810686e-03 3.867678204037116e-03 3.846626514691173e-03 3.825655547709963e-03 - 3.804765124734014e-03 3.783955087456414e-03 3.763225279741349e-03 3.742575538839424e-03 3.722005684569956e-03 - 3.701515563829318e-03 3.681105042529648e-03 3.660773945892437e-03 3.640522100973796e-03 3.620349349516141e-03 - 3.600255533338096e-03 3.580240483202974e-03 3.560304020332013e-03 3.540446002992503e-03 3.520666284206718e-03 - 3.500964682823155e-03 3.481341031384374e-03 3.461795171007476e-03 3.442326941040924e-03 3.422936165061433e-03 - 3.403622671201535e-03 3.384386323473485e-03 3.365226959961049e-03 3.346144399498565e-03 3.327138478378434e-03 - 3.308209036536853e-03 3.289355909461925e-03 3.270578915351533e-03 3.251877893639187e-03 3.233252706195778e-03 - 3.214703178029928e-03 3.196229132118811e-03 3.177830406368320e-03 3.159506839403438e-03 3.141258260810600e-03 - 3.123084488811596e-03 3.104985374197366e-03 3.086960768611876e-03 3.069010490077185e-03 3.051134366997480e-03 - 3.033332237019262e-03 3.015603936903380e-03 2.997949290147841e-03 2.980368120588831e-03 2.962860285290425e-03 - 2.945425622240710e-03 2.928063948810786e-03 2.910775098113858e-03 2.893558906982335e-03 2.876415208617919e-03 - 2.859343821344898e-03 2.842344578930633e-03 2.825417338731532e-03 2.808561926446875e-03 2.791778162629514e-03 - 2.775065882662152e-03 2.758424922052246e-03 2.741855109318431e-03 2.725356262118107e-03 2.708928224810950e-03 - 2.692570847204586e-03 2.676283947708203e-03 2.660067352018658e-03 2.643920895408666e-03 2.627844412630983e-03 - 2.611837727127577e-03 2.595900659591014e-03 2.580033062057212e-03 2.564234773200918e-03 2.548505609580814e-03 - 2.532845401329118e-03 2.517253983314282e-03 2.501731188088862e-03 2.486276834298587e-03 2.470890751027053e-03 - 2.455572791828030e-03 2.440322784214469e-03 2.425140547489158e-03 2.410025914370114e-03 2.394978718743150e-03 - 2.379998789312335e-03 2.365085943631231e-03 2.350240020749269e-03 2.335460868942443e-03 2.320748308349550e-03 - 2.306102163022297e-03 2.291522266200105e-03 2.277008450857895e-03 2.262560541519312e-03 2.248178358404482e-03 - 2.233861748393963e-03 2.219610550590767e-03 2.205424582540762e-03 2.191303672653564e-03 2.177247654150935e-03 - 2.163256358437406e-03 2.149329606085116e-03 2.135467224025938e-03 2.121669062135428e-03 2.107934949596006e-03 - 2.094264705479671e-03 2.080658161247730e-03 2.067115150052171e-03 2.053635501035216e-03 2.040219032033609e-03 - 2.026865578574763e-03 2.013574988607888e-03 2.000347084189316e-03 1.987181688126059e-03 1.974078632294973e-03 - 1.961037750159034e-03 1.948058867783843e-03 1.935141804192390e-03 1.922286403096425e-03 1.909492504980594e-03 - 1.896759928265229e-03 1.884088500763132e-03 1.871478055631251e-03 1.858928424089599e-03 1.846439428400912e-03 - 1.834010894228015e-03 1.821642669213327e-03 1.809334584628213e-03 1.797086460037203e-03 1.784898126770644e-03 - 1.772769417737367e-03 1.760700162615002e-03 1.748690181778845e-03 1.736739308394668e-03 1.724847388831493e-03 - 1.713014248130287e-03 1.701239709792772e-03 1.689523605558227e-03 1.677865768960374e-03 1.666266027776910e-03 - 1.654724201747776e-03 1.643240132443950e-03 1.631813662093462e-03 1.620444610863358e-03 1.609132806416696e-03 - 1.597878082462674e-03 1.586680271167799e-03 1.575539197124769e-03 1.564454685806544e-03 1.553426583192850e-03 - 1.542454723186195e-03 1.531538926942232e-03 1.520679025889417e-03 1.509874853790604e-03 1.499126242122267e-03 - 1.488433013507451e-03 1.477795000037597e-03 1.467212048115432e-03 1.456683985464255e-03 1.446210636719452e-03 - 1.435791835117153e-03 1.425427414393694e-03 1.415117204211151e-03 1.404861027594662e-03 1.394658724273689e-03 - 1.384510137356095e-03 1.374415090575271e-03 1.364373412382042e-03 1.354384937246215e-03 1.344449499301808e-03 - 1.334566925970926e-03 1.324737043332181e-03 1.314959696939330e-03 1.305234723823342e-03 1.295561947265019e-03 - 1.285941199528206e-03 1.276372315963847e-03 1.266855130463658e-03 1.257389468322312e-03 1.247975161599065e-03 - 1.238612057815808e-03 1.229299987951490e-03 1.220038778115428e-03 1.210828263449681e-03 1.201668279419893e-03 - 1.192558658328712e-03 1.183499226491516e-03 1.174489822883548e-03 1.165530291825810e-03 1.156620461345326e-03 - 1.147760161971411e-03 1.138949229776032e-03 1.130187500878873e-03 1.121474806129454e-03 1.112810973708310e-03 - 1.104195848566657e-03 1.095629271185936e-03 1.087111069073448e-03 1.078641075658101e-03 1.070219127753748e-03 - 1.061845062287274e-03 1.053518708913237e-03 1.045239900848634e-03 1.037008485418972e-03 1.028824298155823e-03 - 1.020687168641753e-03 1.012596933141099e-03 1.004553429894111e-03 9.965564952721074e-04 9.886059579764911e-04 - 9.807016577383673e-04 9.728434421263681e-04 9.650311428619217e-04 9.572645925441391e-04 9.495436296868831e-04 - 9.418680934992058e-04 9.342378189983833e-04 9.266526374013966e-04 9.191123940951565e-04 9.116169327210938e-04 - 9.041660846048507e-04 8.967596865276394e-04 8.893975784458786e-04 8.820795994475233e-04 8.748055834052338e-04 - 8.675753662309574e-04 8.603887967412885e-04 8.532457145816050e-04 8.461459528881801e-04 8.390893515597134e-04 - 8.320757512954288e-04 8.251049910410551e-04 8.181769052102455e-04 8.112913354889369e-04 8.044481307476467e-04 - 7.976471276304203e-04 7.908881626723219e-04 7.841710779271092e-04 7.774957151422038e-04 7.708619131557394e-04 - 7.642695077220146e-04 7.577183458379644e-04 7.512082748417916e-04 7.447391309361296e-04 7.383107537219758e-04 - 7.319229861740803e-04 7.255756719189899e-04 7.192686493738265e-04 7.130017570250109e-04 7.067748463319056e-04 - 7.005877618919097e-04 6.944403408515077e-04 6.883324261093659e-04 6.822638623160529e-04 6.762344932684062e-04 - 6.702441573916524e-04 6.642926986443232e-04 6.583799694858947e-04 6.525058122102392e-04 6.466700672293728e-04 - 6.408725793807691e-04 6.351131947715911e-04 6.293917574305099e-04 6.237081070877600e-04 6.180620932909059e-04 - 6.124535677685099e-04 6.068823714677426e-04 6.013483481700967e-04 5.958513451670206e-04 5.903912096703989e-04 - 5.849677853780454e-04 5.795809154020751e-04 5.742304534677881e-04 5.689162489783443e-04 5.636381442526738e-04 - 5.583959863498279e-04 5.531896240506697e-04 5.480189055622431e-04 5.428836748799696e-04 5.377837797240800e-04 - 5.327190759830209e-04 5.276894110958636e-04 5.226946300477827e-04 5.177345825024617e-04 5.128091188465486e-04 - 5.079180879528710e-04 5.030613351067660e-04 4.982387130290541e-04 4.934500776624026e-04 4.886952758062522e-04 - 4.839741558713263e-04 4.792865695826084e-04 4.746323688630657e-04 4.700114029595036e-04 4.654235198613055e-04 - 4.608685766627245e-04 4.563464280591107e-04 4.518569219186994e-04 4.473999099762359e-04 4.429752457691277e-04 - 4.385827824909558e-04 4.342223700107388e-04 4.298938604566902e-04 4.255971135329090e-04 4.213319826090788e-04 - 4.170983180859963e-04 4.128959744299958e-04 4.087248069577171e-04 4.045846700338900e-04 4.004754147907325e-04 - 3.963968979642262e-04 3.923489801919561e-04 3.883315144592717e-04 3.843443544269981e-04 3.803873568608614e-04 - 3.764603788261386e-04 3.725632754784107e-04 3.686959004384349e-04 3.648581147870281e-04 3.610497787686854e-04 - 3.572707463878945e-04 3.535208745539621e-04 3.498000220657478e-04 3.461080477383748e-04 3.424448076363575e-04 - 3.388101589386426e-04 3.352039657815740e-04 3.316260877532703e-04 3.280763812137888e-04 3.245547060139738e-04 - 3.210609229167205e-04 3.175948921405597e-04 3.141564711604799e-04 3.107455215081982e-04 3.073619088757455e-04 - 3.040054927848886e-04 3.006761327105527e-04 2.973736909925681e-04 2.940980303881470e-04 2.908490123115160e-04 - 2.876264965105581e-04 2.844303488008553e-04 2.812604353029198e-04 2.781166164989417e-04 2.749987551423296e-04 - 2.719067158817455e-04 2.688403633742989e-04 2.657995602462465e-04 2.627841695326067e-04 2.597940603791381e-04 - 2.568290988582687e-04 2.538891477672460e-04 2.509740728301346e-04 2.480837407612393e-04 2.452180180501483e-04 - 2.423767689150773e-04 2.395598604007145e-04 2.367671637065971e-04 2.339985452156380e-04 2.312538707417314e-04 - 2.285330086975239e-04 2.258358279521211e-04 2.231621965330517e-04 2.205119809474630e-04 2.178850522930381e-04 - 2.152812827957872e-04 2.127005401044592e-04 2.101426932429596e-04 2.076076129630843e-04 2.050951703707553e-04 - 2.026052350574154e-04 2.001376764695323e-04 1.976923692963255e-04 1.952691863631026e-04 1.928679973631469e-04 - 1.904886744667185e-04 1.881310908124045e-04 1.857951194428946e-04 1.834806317739651e-04 1.811875010647571e-04 - 1.789156043640377e-04 1.766648152326652e-04 1.744350063601967e-04 1.722260526922104e-04 1.700378296945535e-04 - 1.678702123432160e-04 1.657230742438847e-04 1.635962925697728e-04 1.614897461072756e-04 1.594033097074569e-04 - 1.573368592094730e-04 1.552902721810668e-04 1.532634264532060e-04 1.512561988693490e-04 1.492684659352835e-04 - 1.473001083560244e-04 1.453510059716440e-04 1.434210358729406e-04 1.415100771164913e-04 1.396180097223186e-04 - 1.377447137267307e-04 1.358900680130841e-04 1.340539526362652e-04 1.322362510498252e-04 1.304368442346035e-04 - 1.286556121626104e-04 1.268924368411170e-04 1.251472007379926e-04 1.234197860690376e-04 1.217100740639766e-04 - 1.200179485071157e-04 1.183432949752447e-04 1.166859960758634e-04 1.150459349477667e-04 1.134229962637926e-04 - 1.118170649981152e-04 1.102280255615328e-04 1.086557620076939e-04 1.071001616642248e-04 1.055611117192228e-04 - 1.040384970703678e-04 1.025322040262462e-04 1.010421198490596e-04 9.956813202096472e-05 9.811012722455996e-05 - 9.666799283658755e-05 9.524161921027426e-05 9.383089505710078e-05 9.243570803818307e-05 9.105594759252440e-05 - 8.969150364397068e-05 8.834226604286881e-05 8.700812397260034e-05 8.568896841419017e-05 8.438469212608002e-05 - 8.309518568825200e-05 8.182033994906239e-05 8.056004718218619e-05 7.931419998170841e-05 7.808269064296404e-05 - 7.686541112857092e-05 7.566225594198306e-05 7.447311991364301e-05 7.329789600792314e-05 7.213647827366786e-05 - 7.098876170896106e-05 6.985464163907488e-05 6.873401282606521e-05 6.762677039259616e-05 6.653281205307769e-05 - 6.545203459530543e-05 6.438433381335806e-05 6.332960688869456e-05 6.228775159650499e-05 6.125866586213212e-05 - 6.024224709312662e-05 5.923839394811549e-05 5.824700680510711e-05 5.726798458845817e-05 5.630122626966778e-05 - 5.534663202079377e-05 5.440410243697520e-05 5.347353805513213e-05 5.255483915897720e-05 5.164790790372327e-05 - 5.075264706713765e-05 4.986895809670387e-05 4.899674321102013e-05 4.813590548272275e-05 4.728634834520723e-05 - 4.644797500988253e-05 4.562068892036128e-05 4.480439551815946e-05 4.399899988301035e-05 4.320440633696577e-05 - 4.242052030402665e-05 4.164724778526068e-05 4.088449502887978e-05 4.013216802138054e-05 3.939017361734100e-05 - 3.865842020891389e-05 3.793681530287127e-05 3.722526637683801e-05 3.652368195642655e-05 3.583197100166348e-05 - 3.515004257550265e-05 3.447780563338777e-05 3.381517049939420e-05 3.316204825033269e-05 3.251834908257212e-05 - 3.188398376275541e-05 3.125886384349450e-05 3.064290126992314e-05 3.003600797392098e-05 2.943809607683111e-05 - 2.884907925556903e-05 2.826887119646782e-05 2.769738505988399e-05 2.713453488302094e-05 2.658023526748751e-05 - 2.603440114263312e-05 2.549694738792051e-05 2.496778949423694e-05 2.444684425976710e-05 2.393402805764408e-05 - 2.342925723948219e-05 2.293244905822871e-05 2.244352120797989e-05 2.196239159983278e-05 2.148897818423003e-05 - 2.102319990982268e-05 2.056497650699234e-05 2.011422722229805e-05 1.967087173846936e-05 1.923483045310688e-05 - 1.880602417859793e-05 1.838437386840237e-05 1.796980069033951e-05 1.756222699777835e-05 1.716157539169325e-05 - 1.676776819323897e-05 1.638072842752046e-05 1.600037965967140e-05 1.562664583506045e-05 1.525945101785764e-05 - 1.489871974108943e-05 1.454437762041471e-05 1.419635018600421e-05 1.385456300630342e-05 1.351894241351905e-05 - 1.318941519258516e-05 1.286590843459537e-05 1.254834939298960e-05 1.223666606495489e-05 1.193078719950152e-05 - 1.163064137727749e-05 1.133615754527981e-05 1.104726530816775e-05 1.076389469662666e-05 1.048597599093073e-05 - 1.021343974753131e-05 9.946217419267380e-06 9.684240838620889e-06 9.427441790773100e-06 9.175752643853506e-06 - 8.929106280098344e-06 8.687435997194528e-06 8.450675338936148e-06 8.218758257424963e-06 7.991619584870982e-06 - 7.769194298227330e-06 7.551417507621627e-06 7.338224987041431e-06 7.129552955942858e-06 6.925337997222138e-06 - 6.725516977155444e-06 6.530027335862672e-06 6.338807194551445e-06 6.151794769434223e-06 5.968928615355085e-06 - 5.790147878391894e-06 5.615392155261267e-06 5.444601365246586e-06 5.277715758699128e-06 5.114676291438329e-06 - 4.955424365336747e-06 4.799901525655197e-06 4.648049820836300e-06 4.499811793985402e-06 4.355130438087899e-06 - 4.213949069835453e-06 4.076211399540344e-06 3.941861865039729e-06 3.810845196499976e-06 3.683106361660463e-06 - 3.558590910585118e-06 3.437244835818923e-06 3.319014541070219e-06 3.203846795533912e-06 3.091688852089737e-06 - 2.982488579295818e-06 2.876194109656037e-06 2.772753925582794e-06 2.672117063800105e-06 2.574233014808049e-06 - 2.479051643033932e-06 2.386523210361943e-06 2.296598552297165e-06 2.209228971591383e-06 2.124366069775506e-06 - 2.041961906232304e-06 1.961969019732135e-06 1.884340423438541e-06 1.809029507182080e-06 1.735990071613592e-06 - 1.665176534356502e-06 1.596543687803830e-06 1.530046658503296e-06 1.465641105678908e-06 1.403283128309336e-06 - 1.342929271825179e-06 1.284536503035511e-06 1.228062233226246e-06 1.173464436795038e-06 1.120701460082181e-06 - 1.069732028902882e-06 1.020515399241352e-06 9.730112822753146e-07 9.271798002921477e-07 8.829815278752155e-07 - 8.403775374680640e-07 7.993293716485992e-07 7.597989809176624e-07 7.217487560416926e-07 6.851415619710593e-07 - 6.499407524191172e-07 6.161100929136179e-07 5.836137918783888e-07 5.524166028233452e-07 5.224836968385216e-07 - 4.937806609639881e-07 4.662735849361845e-07 4.399289991547822e-07 4.147139110260500e-07 3.905957813609555e-07 - 3.675425084859321e-07 3.455225231396512e-07 3.245046871736890e-07 3.044582778536548e-07 2.853530928283095e-07 - 2.671593859185241e-07 2.498478511400059e-07 2.333896726605378e-07 2.177564985206194e-07 2.029204500538344e-07 - 1.888541210793108e-07 1.755305458522738e-07 1.629232393506973e-07 1.510062144201093e-07 1.397539174372155e-07 - 1.291412703741045e-07 1.191437050672961e-07 1.097370923617762e-07 1.008977778162274e-07 9.260259669902208e-08 - 8.482883141984319e-08 7.755426670738778e-08 7.075715683240311e-08 6.441620467100832e-08 5.851063608240125e-08 - 5.302013495440350e-08 4.792483459927075e-08 4.320538955913144e-08 3.884291294265582e-08 3.481898425658018e-08 - 3.111569527451850e-08 2.771559342817648e-08 2.460171067137196e-08 2.175758348333717e-08 1.916719757773861e-08 - 1.681503457183268e-08 1.468607978947252e-08 1.276576812429566e-08 1.104003874048358e-08 9.495328649625366e-09 - 8.118528715645258e-09 6.897042498203040e-09 5.818760232281117e-09 4.872032311209139e-09 4.045732447740840e-09 - 3.329210679517489e-09 2.712284881132093e-09 2.185301687016959e-09 1.739076161987666e-09 1.364901589086205e-09 - 1.054599065845252e-09 8.004535320102697e-10 5.952414597054672e-10 4.322622496028902e-10 3.052766304104823e-10 - 2.085502003918036e-10 1.368642901349301e-10 8.546164059834664e-11 5.010215808832263e-11 2.705311520847365e-11 - 1.304599438344934e-11 5.339090781311160e-12 1.692041320615927e-12 3.321208355096226e-13 6.781366937015517e-15 diff --git a/examples/SPIN/dev/in.spin.cobalt b/examples/SPIN/dev/in.spin.cobalt deleted file mode 100644 index 8ab9843174..0000000000 --- a/examples/SPIN/dev/in.spin.cobalt +++ /dev/null @@ -1,129 +0,0 @@ -################### -#######Init######## -################### - -clear -units metal -dimension 3 -#boundary p p p -boundary p p p - -#newton off - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -atom_modify map array - -########################### -#######Create atoms######## -########################### - -lattice fcc 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -create_atoms 1 box - -####################### -#######Settings######## -####################### - -#isolating 1 atom into a group -group single_spin id 10 - -#Setting one or more properties of one or more atoms. -mass 1 58.93 - -#Setting spins orientation and moment -set group all spin/random 31 1.72 -#set group all spin 1.72 0.0 0.0 1.0 -#set group single_spin spin/random 11 1.72 - -#velocity all create 200 4928459 rot yes dist gaussian -velocity all create 200 4928459 rot yes dist gaussian - -#Magneto-mechanic interactions for bulk fcc Cobalt -#pair_style pair/spin/exchange 4.0 -#pair_style eam/alloy -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 - -pair_coeff * * eam/alloy ../examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy Co -#pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co - -#pair_style pair/spin/exchange 4.0 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -#pair_coeff * * exchange 4.0 -0.0446928 0.003496 1.4885 -#pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -#pair_coeff * * pair/spin/exchange exchange 2.5 0.0446928 0.003496 1.4885 -#pair_coeff * * pair/spin/exchange exchange 4.0 0.0 0.003496 1.4885 - -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 - -#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 - -pair_coeff * * pair/spin/soc/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 - -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.0 0.864159 2.13731 - -#Define a skin distance, update neigh list every -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 -#neighbor 1.0 bin -#neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 21 -fix 2 all langevin/spin 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all integration/spin lattice yes -#fix 3 all integration/spin lattice no - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magx equal c_out_mag[1] -variable magy equal c_out_mag[2] -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo 50 -#thermo_style custom step time v_magx v_magy v_magy v_magnorm v_emag v_tmag -thermo_style custom step time pe ke v_emag etotal -thermo_modify format float %20.15g - -#Dump the positions and spin directions of magnetic particles (vmd format) -#dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -#run 10 -run 20000 - diff --git a/examples/SPIN/dev/in.spin.kagome b/examples/SPIN/dev/in.spin.kagome deleted file mode 100644 index c51c35ff73..0000000000 --- a/examples/SPIN/dev/in.spin.kagome +++ /dev/null @@ -1,126 +0,0 @@ -################### -#######Init######## -################### - -clear -#setting units to metal (Ang, picosecs, eV, ...): -units metal - -#setting dimension of the system (N=2 or 3): -dimension 3 - -#setting boundary conditions. (p for periodic, f for fixed, ...) -boundary p p p -#boundary f f f - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -#why? -atom_modify map array - -#newton off for pair spin in SEQNEI -#newton off off - -########################### -#######Create atoms######## -########################### - -#Lattice constant of fcc Cobalt -lattice fcc 3.54 -#lattice sc 2.50 - -#Test Kagome -#variable a equal sqrt(3.0)/8.0 -#variable b equal 3.0*sqrt(3.0)/8.0 -#variable c equal sqrt(3.0)/4.0 - -#lattice custom 2.5 a1 1.0 0.0 0.0 & -# a2 0.0 1.0 0.0 & -# a3 0.0 0.0 1.0 & -# basis 0.0 $a 0.0 & -# basis 0.25 $a 0.0 & -# basis 0.375 0.0 0.0 & -# basis 0.25 $b 0.0 & -# basis 0.5 $b 0.0 & -# basis 0.625 $c 0.0 - -#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen -#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 5.0 0.0 5.0 0.0 5.0 - -#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. -create_box 1 box - -#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... -#Entries: atom type, -create_atoms 1 box - -#Replicating NxNxN the entire set of atoms -#replicate 1 1 1 - - -####################### -#######Settings######## -####################### - -#Setting one or more properties of one or more atoms. -#Setting mass -mass 1 1.0 -#set group all mass 1.0 -#Setting spins orientation and moment -#set group all spin/random 11 1.72 -set group all spin 1.72 1.0 0.0 0.0 - -#Magnetic exchange interaction coefficient for bulk fcc Cobalt -pair_style pair/spin 4.0 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 0.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 1.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all nve/spin mpi - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm -compute mag all compute/spin -fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -run 2000 -#run 1 - diff --git a/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat new file mode 100644 index 0000000000..dc2a9fe9a9 --- /dev/null +++ b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat @@ -0,0 +1,5 @@ +2.492 2.803 +3.524 0.0816 +4.316 0.35 +4.983 0.16 +5.572 0.0408 diff --git a/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fit.py b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fit.py new file mode 100644 index 0000000000..dd07e9f295 --- /dev/null +++ b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fit.py @@ -0,0 +1,32 @@ +# program fitting the exchange interaction +# model curve: Bethe-Slater function +import numpy as np, pylab, tkinter +import matplotlib.pyplot as plt +from scipy.optimize import curve_fit +from decimal import * + +print("Loop begin") + +# definition of the Bethe-Slater function +def func(x,a,b,c): + return 4*a*((x/c)**2)*(1-b*(x/c)**2)*np.exp(-(x/c)**2) + +# exchange coeff table (data to fit) +rdata, Jdata = np.loadtxt('exchange_fcc_ni.dat', usecols=(0,1), unpack=True) +plt.plot(rdata, Jdata, 'b-', label='data') + +# perform the fit +popt, pcov = curve_fit(func, rdata, Jdata, bounds=(0, [500.,5.,5.])) +plt.plot(rdata, func(rdata, *popt), 'r--', label='fit') + +# print the fitted parameters +print("Parameters: a={:.10} (in meV), b={:.10} (adim), c={:.10} (in Ang)".format(*popt)) + +# ploting the result +plt.xlabel('r_ij') +pylab.xlim([0,6.5]) +plt.ylabel('J_ij') +plt.legend() +plt.show() + +print("Loop end") diff --git a/examples/SPIN/nickel/in.spin.nickel b/examples/SPIN/nickel/in.spin.nickel index 682baf9418..7511795bcf 100644 --- a/examples/SPIN/nickel/in.spin.nickel +++ b/examples/SPIN/nickel/in.spin.nickel @@ -10,29 +10,29 @@ boundary p p p # check why? atom_modify map array -lattice fcc 3.54 +lattice fcc 3.524 region box block 0.0 5.0 0.0 5.0 0.0 5.0 create_box 1 box create_atoms 1 box # setting mass, mag. moments, and interactions for cobalt -mass 1 58.93 +mass 1 58.69 -set group all spin/random 31 1.72 +set group all spin/random 31 0.6 velocity all create 100 4928459 rot yes dist gaussian #pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/cobalt/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * eam/alloy ../examples/SPIN/nickel/Ni99.eam.alloy Ni +pair_coeff * * pair/spin/exchange exchange 4.0 0.009718152197 0.000153 1.243 #pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 -fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.1 21 +fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 fix 3 all integration/spin lattice yes diff --git a/examples/SPIN/skyrmion/in.spin.skyrmion b/examples/SPIN/skyrmion/in.spin.skyrmion deleted file mode 100644 index a0d4e8c1d4..0000000000 --- a/examples/SPIN/skyrmion/in.spin.skyrmion +++ /dev/null @@ -1,81 +0,0 @@ -# initial variables - -# dimensions of the box and of each layer -variable box_size equal 50.0 -variable ir_thick equal 4.0 -variable fe_thick equal 0.5 -variable pd_thick equal 0.5 - -variable fe_hi equal ${ir_thick}+${fe_thick} -variable pd_hi equal ${ir_thick}+${fe_thick}+${pd_thick} - - -units metal -atom_style spin - -dimension 3 -boundary p p f - -# check why? -atom_modify map array - -lattice fcc 3.839 orient x 1 -1 0 orient y 1 1 -2 orient z 1 1 1 -region box block 0.0 ${box_size} 0.0 ${box_size} 0.0 ${pd_hi} -region box_ir block 0.0 ${box_size} 0.0 ${box_size} 0.0 ${ir_thick} -region box_fe block 0.0 ${box_size} 0.0 ${box_size} ${ir_thick} ${fe_hi} -region box_pd block 0.0 ${box_size} 0.0 ${box_size} ${fe_hi} ${pd_hi} - -create_box 3 box - -create_atoms 1 region box_ir -create_atoms 2 region box_fe -create_atoms 3 region box_pd - -group ir_atoms region box_ir -group fe_atoms region box_fe -group pd_atoms region box_pd - -# setting mass, mag. moments, and interactions for cobalt - -mass 1 192.217 # mass of Ir atoms -mass 2 55.845 # mass of Fe atoms -mass 3 106.42 # mass of Pd atoms - -set group ir_atoms spin/random 31 0.01 # has to set a length for LAMMPS to be happy -set group fe_atoms spin/random 89 2.7 -set group pd_atoms spin/random 55 0.3 - -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay pair/spin/exchange 4.0 -#pair_style hybrid/overlay pair/spin/exchange 4.0 pair/spin/soc/dmi 2.6 -pair_coeff * * pair/spin/exchange exchange 4.0 0.0 0.003496 1.4885 -pair_coeff 2 2 pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -#pair_coeff * * pair/spin/soc/dmi dmi 2.6 0.01 0.0 0.0 1.0 -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 fe_atoms force/spin anisotropy 0.0001 0.0 0.0 1.0 -fix 2 all force/spin zeeman 0.1 0.0 0.0 1.0 -fix 3 all langevin/spin 0.0 0.1 21 -fix 4 all integration/spin lattice no - -timestep 0.0002 - -# define output and run - -compute out_mag all compute/spin -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] -variable mag_force equal f_1 - -thermo_style custom step time v_magnorm v_emag etotal -thermo 10 - -dump 1 all custom 50 dump_skyrmion.lammpstrj type x y z spx spy spz - -run 1000 - From 08bc115380591a60aac3ca75c832ca987f0433fe Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 22 Mar 2018 11:41:04 -0600 Subject: [PATCH 085/675] Commit before meeting 032218 --- doc/src/fix_integration_spin.txt | 12 +++++- doc/src/fix_langevin_spin.txt | 3 +- doc/src/pair_spin_exchange.txt | 3 +- doc/src/pair_spin_me.txt | 3 +- doc/src/pair_spin_soc_dmi.txt | 3 +- doc/src/pair_spin_soc_neel.txt | 4 +- examples/SPIN/bfo/in.spin.bfo | 2 +- examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc | 2 +- examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 2 +- examples/SPIN/iron/in.spin.iron | 2 +- examples/SPIN/nickel/in.spin.nickel | 2 +- examples/SPIN/read_restart/in.spin.read_data | 39 ++++++++++++++++++++ examples/SPIN/read_restart/in.spin.restart | 35 ++---------------- 13 files changed, 69 insertions(+), 43 deletions(-) diff --git a/doc/src/fix_integration_spin.txt b/doc/src/fix_integration_spin.txt index f03ddab79e..4538e22284 100644 --- a/doc/src/fix_integration_spin.txt +++ b/doc/src/fix_integration_spin.txt @@ -51,6 +51,15 @@ This fix style can only be used if LAMMPS was built with the SPIN package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info on packages. +When the spin algorithm is used for serial calculations, it is +necessary to define a map via the atom_modify command. +Typically, by adding the command: + +atom_modify map array :pre + +before you create the simulation box. Note that the keyword "hash" +instead of "array" is also valid. + [Related commands:] "atom_style spin"_atom_style.html, "fix nve"_fix_nve.html @@ -64,4 +73,5 @@ section for more info on packages. 86(5), 898. (2001). :link(Tranchida1) -[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson. +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, +arXiv preprint arXiv:1801.10233, (2018). diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt index 8507f4aa4f..20e98eba87 100644 --- a/doc/src/fix_langevin_spin.txt +++ b/doc/src/fix_langevin_spin.txt @@ -98,4 +98,5 @@ This fix has to be the last defined magnetic fix before the integration fix [(Mayergoyz)] I.D. Mayergoyz, G. Bertotti, C. Serpico (2009). Elsevier (2009) :link(Tranchida2) -[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson. +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, +arXiv preprint arXiv:1801.10233, (2018). diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index c1b20dfe94..e6938afd40 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -78,4 +78,5 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :line :link(Tranchida3) -[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson. +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, +arXiv preprint arXiv:1801.10233, (2018). diff --git a/doc/src/pair_spin_me.txt b/doc/src/pair_spin_me.txt index 8b3b69fdee..bc4b6b840b 100644 --- a/doc/src/pair_spin_me.txt +++ b/doc/src/pair_spin_me.txt @@ -69,4 +69,5 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. [(Katsura)] H. Katsura, N. Nagaosa, A.V. Balatsky. Phys. Rev. Lett., 95(5), 057205. (2005) :link(Tranchida4) -[(Tranchida)] Tranchida, Plimpton, Thibaudeau, and Thompson. +[(Tranchida)] Tranchida, Plimpton, Thibaudeau, and Thompson, +arXiv preprint arXiv:1801.10233, (2018). diff --git a/doc/src/pair_spin_soc_dmi.txt b/doc/src/pair_spin_soc_dmi.txt index acbd5148ad..a3a9bb3172 100644 --- a/doc/src/pair_spin_soc_dmi.txt +++ b/doc/src/pair_spin_soc_dmi.txt @@ -81,4 +81,5 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :line :link(Tranchida5) -[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson. +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, +arXiv preprint arXiv:1801.10233, (2018). diff --git a/doc/src/pair_spin_soc_neel.txt b/doc/src/pair_spin_soc_neel.txt index ffe0fed3c2..44ca5b3b22 100644 --- a/doc/src/pair_spin_soc_neel.txt +++ b/doc/src/pair_spin_soc_neel.txt @@ -81,5 +81,5 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :line :link(Tranchida6) -[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson. - +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, +arXiv preprint arXiv:1801.10233, (2018). diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index c6c73e531d..65304794d8 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -7,7 +7,7 @@ atom_style spin dimension 3 boundary p p f -# check why? +# necessary for the serial algorithm (sametag) atom_modify map array lattice sc 3.96 diff --git a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc index 8428e1fe9e..25512daab7 100644 --- a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc +++ b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc @@ -7,7 +7,7 @@ atom_style spin dimension 3 boundary p p p -# check why? +# necessary for the serial algorithm (sametag) atom_modify map array lattice fcc 3.54 diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index 68a9316e3b..d63c333962 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -7,7 +7,7 @@ atom_style spin dimension 3 boundary p p p -# check why? +# necessary for the serial algorithm (sametag) atom_modify map array #lattice hcp 2.5071 2.5071 4.0695 diff --git a/examples/SPIN/iron/in.spin.iron b/examples/SPIN/iron/in.spin.iron index 86db12afe5..5d436ebb21 100644 --- a/examples/SPIN/iron/in.spin.iron +++ b/examples/SPIN/iron/in.spin.iron @@ -7,7 +7,7 @@ atom_style spin dimension 3 boundary p p p -# check why? +# necessary for the serial algorithm (sametag) atom_modify map array lattice bcc 2.8665 diff --git a/examples/SPIN/nickel/in.spin.nickel b/examples/SPIN/nickel/in.spin.nickel index 7511795bcf..b42147373c 100644 --- a/examples/SPIN/nickel/in.spin.nickel +++ b/examples/SPIN/nickel/in.spin.nickel @@ -7,7 +7,7 @@ atom_style spin dimension 3 boundary p p p -# check why? +# necessary for the serial algorithm (sametag) atom_modify map array lattice fcc 3.524 diff --git a/examples/SPIN/read_restart/in.spin.read_data b/examples/SPIN/read_restart/in.spin.read_data index 3a49dd4a33..1f56df2564 100644 --- a/examples/SPIN/read_restart/in.spin.read_data +++ b/examples/SPIN/read_restart/in.spin.read_data @@ -1,3 +1,4 @@ +<<<<<<< HEAD # start a spin-lattice simulation from a data file clear units metal @@ -10,10 +11,25 @@ atom_style spin atom_modify map array read_data ../examples/SPIN/read_restart/Norm_randXY_8x8x32.data +======= +clear +units metal +dimension 3 +boundary p p p + +atom_style spin + +# necessary for the serial algorithm (sametag) +atom_modify map array + +read_data ../examples/SPIN/Norm_randXY_8x8x32_test.data + +>>>>>>> Commit before meeting 032218 mass 1 58.93 # define magneto-mechanical potentials and forces +<<<<<<< HEAD pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 @@ -28,6 +44,23 @@ fix 3 all nve/spin lattice yes timestep 0.0001 # define outputs and computes +======= +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 + +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 + +fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all integration/spin serial +timestep 0.0001 + +# define outputs +>>>>>>> Commit before meeting 032218 compute out_mag all compute/spin compute out_pe all pe @@ -43,8 +76,14 @@ thermo 10 thermo_style custom step time v_magnorm v_emag v_tmag temp etotal thermo_modify format float %20.15g +<<<<<<< HEAD compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] run 100 +======= +dump 1 all custom 1 dump.lammpstrj type x y z spx spy spz + +run 10000 +>>>>>>> Commit before meeting 032218 diff --git a/examples/SPIN/read_restart/in.spin.restart b/examples/SPIN/read_restart/in.spin.restart index 2e3a465cab..2afcfb6291 100644 --- a/examples/SPIN/read_restart/in.spin.restart +++ b/examples/SPIN/read_restart/in.spin.restart @@ -1,5 +1,3 @@ -# read a dump file for a sim. of magnetic cobalt - clear units metal atom_style spin @@ -7,7 +5,7 @@ atom_style spin dimension 3 boundary p p p -# check why? +# necessary for the serial algorithm (sametag) atom_modify map array lattice fcc 3.54 @@ -22,48 +20,26 @@ create_atoms 1 box mass 1 58.93 -#Setting spins orientation and moment -#set group all spin/random 31 1.72 set group all spin 1.72 0.0 0.0 1.0 set group single_spin spin/random 11 1.72 - velocity all create 200 4928459 rot yes dist gaussian -#Magneto-mechanic interactions for bulk fcc Cobalt +# define magneto-mechanical potentials and forces pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 - -# cobalt eam potential pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co - -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 - -#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 neighbor 1.0 bin neigh_modify every 1 check no delay 0 -#Magnetic field fix -#Type | Intensity (T or eV) | Direction fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed fix 2 all langevin/spin 0.0 0.0 0.0 21 -#Magnetic integration fix fix 3 all integration/spin serial - -#Setting the timestep for the simulation (in ps) timestep 0.0001 -################## -#######run######## -################## +# define outputs compute out_mag all compute/spin compute out_pe all pe @@ -80,10 +56,7 @@ thermo 10 thermo_style custom step time v_magnorm v_emag v_tmag temp etotal thermo_modify format float %20.15g -#Dump the positions and spin directions of magnetic particles (vmd format) dump 1 all custom 20 dump.lammpstrj type x y z spx spy spz -#Running the simulations for N timesteps -run 100 -#run 10000 +run 1000 From a315599bac3d52b72678b7ba47772c95feabf9f7 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 26 Mar 2018 13:30:36 -0600 Subject: [PATCH 086/675] Commit modifs before release 1 (03/26/18) --- examples/SPIN/bfo/in.spin.bfo | 8 +- examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc | 63 +- examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 71 +- examples/SPIN/iron/in.spin.iron | 65 +- .../exchange_fit_fcc_ni/exchange_fcc_ni.dat | 10 +- examples/SPIN/nickel/in.spin.nickel | 71 +- .../read_restart/Co_PurjaPun_2012.eam.alloy | 6006 +++++++++++++++++ examples/SPIN/read_restart/in.spin.read_data | 47 +- examples/SPIN/read_restart/in.spin.restart | 67 +- .../SPIN/read_restart/in.spin.write_restart | 58 + src/SPIN/atom_vec_spin.cpp | 80 +- src/SPIN/atom_vec_spin.h | 4 +- src/SPIN/compute_spin.cpp | 5 +- src/SPIN/fix_langevin_spin.cpp | 4 +- src/SPIN/fix_langevin_spin.h | 1 - ..._integration_spin.cpp => fix_nve_spin.cpp} | 249 +- ...{fix_integration_spin.h => fix_nve_spin.h} | 33 +- ...force_spin.cpp => fix_precession_spin.cpp} | 52 +- ...fix_force_spin.h => fix_precession_spin.h} | 21 +- src/SPIN/pair_spin_exchange.cpp | 5 +- src/SPIN/pair_spin_exchange.h | 2 +- src/SPIN/pair_spin_me.cpp | 5 +- src/SPIN/pair_spin_me.h | 2 +- src/SPIN/pair_spin_soc_dmi.cpp | 5 +- src/SPIN/pair_spin_soc_dmi.h | 2 +- src/SPIN/pair_spin_soc_neel.cpp | 5 +- src/SPIN/pair_spin_soc_neel.h | 2 +- src/atom.cpp | 6 +- src/atom.h | 4 +- src/compute_property_atom.cpp | 141 +- src/compute_property_atom.h | 8 + src/dump_custom.cpp | 127 - src/dump_custom.h | 5 - src/pair_hybrid.h | 2 +- src/set.cpp | 20 +- src/verlet.cpp | 2 +- 36 files changed, 6660 insertions(+), 598 deletions(-) create mode 100644 examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy create mode 100644 examples/SPIN/read_restart/in.spin.write_restart rename src/SPIN/{fix_integration_spin.cpp => fix_nve_spin.cpp} (73%) rename src/SPIN/{fix_integration_spin.h => fix_nve_spin.h} (76%) rename src/SPIN/{fix_force_spin.cpp => fix_precession_spin.cpp} (81%) rename src/SPIN/{fix_force_spin.h => fix_precession_spin.h} (77%) diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index 65304794d8..dfeb48eb08 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -28,9 +28,9 @@ pair_coeff * * pair/spin/me me 4.5 0.000109 1.0 1.0 1.0 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 -fix 1 all force/spin anisotropy 0.0000033 0.0 0.0 1.0 +fix 1 all precession/spin anisotropy 0.0000033 0.0 0.0 1.0 fix 2 all langevin/spin 0.0 0.1 21 -fix 3 all integration/spin lattice no +fix 3 all nve/spin lattice yes timestep 0.0002 @@ -43,12 +43,12 @@ variable magz equal c_out_mag[3] variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -variable mag_force equal f_1 thermo_style custom step time v_magnorm v_emag temp etotal thermo 50 -dump 1 all custom 50 dump_spin_BFO.lammpstrj type x y z spx spy spz +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] run 5000 diff --git a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc index 25512daab7..e70765e08d 100644 --- a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc +++ b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc @@ -1,58 +1,57 @@ # fcc cobalt in a 3d periodic box clear -units metal -atom_style spin +units metal +atom_style spin -dimension 3 -boundary p p p +dimension 3 +boundary p p p # necessary for the serial algorithm (sametag) -atom_modify map array +atom_modify map array -lattice fcc 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -create_atoms 1 box +lattice fcc 3.54 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +create_atoms 1 box -# setting mass, mag. moments, and interactions for cobalt +# setting mass, mag. moments, and interactions for fcc cobalt mass 1 58.93 -set group all spin/random 31 1.72 -velocity all create 100 4928459 rot yes dist gaussian +set group all spin/random 31 1.72 +velocity all create 100 4928459 rot yes dist gaussian -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/cobalt_fcc/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_coeff * * eam/alloy ../examples/SPIN/cobalt_fcc/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all integration/spin lattice yes +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 +fix 3 all nve/spin lattice yes timestep 0.0001 # compute and output options -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] -variable mag_force equal f_1 +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] thermo_style custom step time v_magnorm v_emag temp etotal thermo 10 -dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] -run 10000 +run 1000 diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index d63c333962..9076cd6d6c 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -1,60 +1,57 @@ -# fcc cobalt in a 3d periodic box +# hcp cobalt in a 3d periodic box clear -units metal -atom_style spin +units metal +atom_style spin -dimension 3 -boundary p p p +dimension 3 +boundary p p p # necessary for the serial algorithm (sametag) -atom_modify map array +atom_modify map array -#lattice hcp 2.5071 2.5071 4.0695 -lattice hcp 2.5071 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -create_atoms 1 box +lattice hcp 2.5071 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +create_atoms 1 box -# setting mass, mag. moments, and interactions for cobalt +# setting mass, mag. moments, and interactions for hcp cobalt mass 1 58.93 -set group all spin/random 31 1.72 -velocity all create 100 4928459 rot yes dist gaussian +set group all spin/random 31 1.72 +velocity all create 100 4928459 rot yes dist gaussian -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_coeff * * eam/alloy ../examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * pair/spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 +#pair_coeff * * pair/spin/soc/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 -fix 1 all force/spin zeeman 0.01 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all integration/spin lattice yes +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 +fix 3 all nve/spin lattice yes timestep 0.0001 -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] -variable mag_force equal f_1 +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] thermo_style custom step time v_magnorm v_emag temp etotal thermo 10 -dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz - -run 1000 +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] +run 20000 diff --git a/examples/SPIN/iron/in.spin.iron b/examples/SPIN/iron/in.spin.iron index 5d436ebb21..83301309e0 100644 --- a/examples/SPIN/iron/in.spin.iron +++ b/examples/SPIN/iron/in.spin.iron @@ -1,59 +1,56 @@ # bcc iron in a 3d periodic box clear -units metal -atom_style spin +units metal +atom_style spin -dimension 3 -boundary p p p +dimension 3 +boundary p p p # necessary for the serial algorithm (sametag) -atom_modify map array +atom_modify map array -lattice bcc 2.8665 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -create_atoms 1 box +lattice bcc 2.8665 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +create_atoms 1 box # setting mass, mag. moments, and interactions for bcc iron mass 1 55.845 -set group all spin/random 31 2.2 -velocity all create 100 4928459 rot yes dist gaussian +set group all spin/random 31 2.2 +velocity all create 100 4928459 rot yes dist gaussian -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 3.5 -pair_coeff * * eam/alloy ../examples/SPIN/iron/Fe_Mishin2006.eam.alloy Fe -pair_coeff * * pair/spin/exchange exchange 3.4 0.02726 0.2171 1.841 -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 3.5 +pair_coeff * * eam/alloy ../examples/SPIN/iron/Fe_Mishin2006.eam.alloy Fe +pair_coeff * * pair/spin/exchange exchange 3.4 0.02726 0.2171 1.841 -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all integration/spin lattice yes +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 +fix 3 all nve/spin lattice yes timestep 0.0001 +# compute and output options -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] -variable mag_force equal f_1 +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] thermo_style custom step time v_magnorm v_tmag temp v_emag ke pe etotal thermo 50 -dump 1 all custom 50 dump_iron.lammpstrj type x y z spx spy spz - -run 100000 +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump_iron.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] +run 100000 diff --git a/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat index dc2a9fe9a9..4e5aa47659 100644 --- a/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat +++ b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat @@ -1,5 +1,5 @@ -2.492 2.803 -3.524 0.0816 -4.316 0.35 -4.983 0.16 -5.572 0.0408 +2.495 8.3 +3.524 -3.99 +4.31 0.998 +4.99 -0.955 +5.56 0.213 diff --git a/examples/SPIN/nickel/in.spin.nickel b/examples/SPIN/nickel/in.spin.nickel index b42147373c..0b1faa5319 100644 --- a/examples/SPIN/nickel/in.spin.nickel +++ b/examples/SPIN/nickel/in.spin.nickel @@ -1,59 +1,58 @@ -# fcc cobalt in a 3d periodic box +# fcc nickel in a 3d periodic box clear -units metal -atom_style spin +units metal +atom_style spin -dimension 3 -boundary p p p +dimension 3 +boundary p p p # necessary for the serial algorithm (sametag) -atom_modify map array +atom_modify map array -lattice fcc 3.524 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -create_atoms 1 box +lattice fcc 3.524 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +create_atoms 1 box # setting mass, mag. moments, and interactions for cobalt mass 1 58.69 -set group all spin/random 31 0.6 -velocity all create 100 4928459 rot yes dist gaussian +set group all spin/random 31 0.63 +#set group all spin 0.63 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/nickel/Ni99.eam.alloy Ni -pair_coeff * * pair/spin/exchange exchange 4.0 0.009718152197 0.000153 1.243 -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_coeff * * eam/alloy ../examples/SPIN/nickel/Ni99.eam.alloy Ni +pair_coeff * * pair/spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all integration/spin lattice yes +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 +fix 3 all nve/spin lattice yes timestep 0.0001 +# compute and output options -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] -variable mag_force equal f_1 +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] -thermo_style custom step time v_magnorm v_emag temp etotal -thermo 10 +thermo_style custom step time v_magnorm v_emag temp v_tmag etotal +thermo 50 -#dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 50 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] -run 1000 +run 2000 diff --git a/examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy new file mode 100644 index 0000000000..3af058baf7 --- /dev/null +++ b/examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy @@ -0,0 +1,6006 @@ +Cobalt EAM potential: G. P. Purja Pun and Y. Mishin, Phys. Rev. B xx, 004100 (2012) (in press) +Data below r = 1.5 A is extrapolated. F(Rho) data not extrapolated. +Created on Wed Sep 26 17:29:54 2012 +1 Co +10000 4.788742913000000e-04 10000 6.499539000000001e-04 6.499539000000000e+00 +27 5.893320000000000e+01 2.507000000000000e+00 hcp + -1.680303080000000e-02 -1.879913964471138e-02 -2.091739081044659e-02 -2.303564197615629e-02 -2.503175082079116e-02 + -2.681996612041136e-02 -2.846010103933253e-02 -3.003179469400266e-02 -3.154842562124295e-02 -3.300931506782415e-02 + -3.442381570000001e-02 -3.580233366714632e-02 -3.714945763166951e-02 -3.846832763111274e-02 -3.976210669053554e-02 + -4.103374908125148e-02 -4.228535107207521e-02 -4.351872320172212e-02 -4.473539109100971e-02 -4.593674531110434e-02 + -4.712392115246503e-02 -4.829795108118731e-02 -4.945971154662068e-02 -5.061001094949964e-02 -5.174954151284258e-02 + -5.287894548568519e-02 -5.399878139884967e-02 -5.510957102742049e-02 -5.621177284174523e-02 -5.730581735016625e-02 + -5.839208651773948e-02 -5.947094067448531e-02 -6.054270215356945e-02 -6.160767623453070e-02 -6.266613797925552e-02 + -6.371834880435967e-02 -6.476454576302854e-02 -6.580495483863194e-02 -6.683978209870683e-02 -6.786922452279202e-02 + -6.889346265426707e-02 -6.991266949659354e-02 -7.092700432972064e-02 -7.193662011890395e-02 -7.294165829413661e-02 + -7.394225494811188e-02 -7.493853635958479e-02 -7.593062425993033e-02 -7.691863200494162e-02 -7.790266905197404e-02 + -7.888283764021425e-02 -7.985923664258643e-02 -8.083195868513401e-02 -8.180109346997461e-02 -8.276672525040257e-02 + -8.372893572415932e-02 -8.468780181559693e-02 -8.564339820511864e-02 -8.659579537072190e-02 -8.754506181558984e-02 + -8.849126234605453e-02 -8.943446001410092e-02 -9.037471455117625e-02 -9.131208412841478e-02 -9.224662399623559e-02 + -9.317838801321032e-02 -9.410742739123597e-02 -9.503379209498646e-02 -9.595752974691800e-02 -9.687868684755546e-02 + -9.779730775191570e-02 -9.871343580120046e-02 -9.962711242685958e-02 -1.005383781439554e-01 -1.014472717117523e-01 + -1.023538310651938e-01 -1.032580925977369e-01 -1.041600919387366e-01 -1.050598632026273e-01 -1.059574398208095e-01 + -1.068528540074704e-01 -1.077461373458066e-01 -1.086373201122683e-01 -1.095264320028559e-01 -1.104135016985198e-01 + -1.112985573626335e-01 -1.121816261033156e-01 -1.130627345294291e-01 -1.139419083080692e-01 -1.148191726662944e-01 + -1.156945520127823e-01 -1.165680703406650e-01 -1.174397507992727e-01 -1.183096161572101e-01 -1.191776885039839e-01 + -1.200439895800373e-01 -1.209085404086571e-01 -1.217713616730546e-01 -1.226324734132936e-01 -1.234918953788508e-01 + -1.243496468000000e-01 -1.252057466264230e-01 -1.260602132046348e-01 -1.269130646065986e-01 -1.277643184092350e-01 + -1.286139919512837e-01 -1.294621021138015e-01 -1.303086655551642e-01 -1.311536985007052e-01 -1.319972169590798e-01 + -1.328392365052704e-01 -1.336797725161469e-01 -1.345188400098036e-01 -1.353564538215464e-01 -1.361926284143060e-01 + -1.370273780803152e-01 -1.378607168013910e-01 -1.386926583917836e-01 -1.395232163058920e-01 -1.403524038515728e-01 + -1.411802341103638e-01 -1.420067200256853e-01 -1.428318742148069e-01 -1.436557091565456e-01 -1.444782371020595e-01 + -1.452994701862315e-01 -1.461194203065015e-01 -1.469380992388567e-01 -1.477555185109162e-01 -1.485716895480879e-01 + -1.493866236153044e-01 -1.502003318703277e-01 -1.510128252027127e-01 -1.518241144121522e-01 -1.526342102070998e-01 + -1.534431232126203e-01 -1.542508638114616e-01 -1.550574422930448e-01 -1.558628688157988e-01 -1.566671534698807e-01 + -1.574703062033520e-01 -1.582723368973844e-01 -1.590732553076882e-01 -1.598730711132973e-01 -1.606717938120008e-01 + -1.614694328459875e-01 -1.622659976162905e-01 -1.630614974730487e-01 -1.638559416039789e-01 -1.646493391351259e-01 + -1.654416991082678e-01 -1.662330305252601e-01 -1.670233423125346e-01 -1.678126433512354e-01 -1.686009424167802e-01 + -1.693882482431861e-01 -1.701745695045948e-01 -1.709599148401449e-01 -1.717442928088396e-01 -1.725277119385885e-01 + -1.733101807130639e-01 -1.740917075837066e-01 -1.748723009172683e-01 -1.756519690655456e-01 -1.764307204052008e-01 + -1.772085632840185e-01 -1.779855059094047e-01 -1.787615564692287e-01 -1.795367232135896e-01 -1.803110143830451e-01 + -1.810844381177561e-01 -1.818570025406103e-01 -1.826287158057983e-01 -1.833995860626770e-01 -1.841696214099643e-01 + -1.849388299454831e-01 -1.857072198141128e-01 -1.864747991526175e-01 -1.872415760182443e-01 -1.880075584641173e-01 + -1.887727546063884e-01 -1.895371725773110e-01 -1.903008205105196e-01 -1.910637065418589e-01 -1.918258388146347e-01 + -1.925872254807121e-01 -1.933478747187342e-01 -1.941077947209150e-01 -1.948669937069724e-01 -1.956254799127480e-01 + -1.963832616110719e-01 -1.971403470967068e-01 -1.978967447151567e-01 -1.986524628291068e-01 -1.994075098192274e-01 + -2.001618941005484e-01 -2.009156242075518e-01 -2.016687086990372e-01 -2.024211561116226e-01 -2.031729750127928e-01 + -2.039241741156804e-01 -2.046747621691974e-01 -2.054247479197256e-01 -2.061741401521784e-01 -2.069229478081280e-01 + -2.076711798806499e-01 -2.084188454121736e-01 -2.091659534755806e-01 -2.099125132162076e-01 -2.106585338443872e-01 + -2.114040247579823e-01 -2.121489953974893e-01 -2.128934551864067e-01 -2.136374136027109e-01 -2.143808803592873e-01 + -2.151238652468154e-01 -2.158663781322411e-01 -2.166084289346303e-01 -2.173500277052638e-01 -2.180911845646947e-01 + -2.188319097783510e-01 -2.195722136949507e-01 -2.203121068514981e-01 -2.210515998518519e-01 -2.217907033790026e-01 + -2.225294282016381e-01 -2.232677853521022e-01 -2.240057859531163e-01 -2.247434412252567e-01 -2.254807624804862e-01 + -2.262177612984613e-01 -2.269544493586047e-01 -2.276908384717110e-01 -2.284269405581227e-01 -2.291627678450005e-01 + -2.298983326532392e-01 -2.306336473718499e-01 -2.313687245044682e-01 -2.321035769451089e-01 -2.328382177230701e-01 + -2.335726600184018e-01 -2.343069171312917e-01 -2.350410026917230e-01 -2.357749304696442e-01 -2.365087144650665e-01 + -2.372423688046511e-01 -2.379759078915950e-01 -2.387093462817347e-01 -2.394426988649284e-01 -2.401759806938325e-01 + -2.409092071382775e-01 -2.416423937275558e-01 -2.423755563116356e-01 -2.431087109081851e-01 -2.438418738849959e-01 + -2.445750618045980e-01 -2.453082916583512e-01 -2.460415806101058e-01 -2.467749460848467e-01 -2.475084057095742e-01 + -2.482419776582159e-01 -2.489756803241430e-01 -2.497095324315720e-01 -2.504435529132133e-01 -2.511777612049070e-01 + -2.519121769824342e-01 -2.526468203782122e-01 -2.533817117688987e-01 -2.541168720514789e-01 -2.548523223627430e-01 + -2.555880842783758e-01 -2.563241796571988e-01 -2.570606310516858e-01 -2.577974612919421e-01 -2.585346936249472e-01 + -2.592723515924181e-01 -2.600104594981498e-01 -2.607490419576605e-01 -2.614881240712832e-01 -2.622277312727207e-01 + -2.629678898443362e-01 -2.637086264051527e-01 -2.644499680721714e-01 -2.651919423187013e-01 -2.659345775453039e-01 + -2.666779025531186e-01 -2.674219468183432e-01 -2.681667401972407e-01 -2.689123133912765e-01 -2.696586975492495e-01 + -2.704059247640904e-01 -2.711540275538941e-01 -2.719030391932789e-01 -2.726529934197978e-01 -2.734039250662187e-01 + -2.741558694758598e-01 -2.749088629390239e-01 -2.756629422674556e-01 -2.764181454116789e-01 -2.771745108563868e-01 + -2.779320780841674e-01 -2.786908871694924e-01 -2.794509795564719e-01 -2.802123972949423e-01 -2.809751834880072e-01 + -2.817393818716988e-01 -2.825050376604960e-01 -2.832721967688652e-01 -2.840409064327807e-01 -2.848112145951165e-01 + -2.855831707048412e-01 -2.863568249759762e-01 -2.871322291766564e-01 -2.879094358829076e-01 -2.886884993482028e-01 + -2.894694746623641e-01 -2.902524185831628e-01 -2.910373887617654e-01 -2.918244447549689e-01 -2.926136470970381e-01 + -2.934050583264800e-01 -2.941987419693519e-01 -2.949947634976693e-01 -2.957931894604184e-01 -2.965940887685082e-01 + -2.973975314584912e-01 -2.982035897075678e-01 -2.990123368838905e-01 -2.998238489787670e-01 -3.006382032814213e-01 + -3.014554796495834e-01 -3.022757592753754e-01 -3.030991261199829e-01 -3.039256655881672e-01 -3.047554660899296e-01 + -3.055886175640754e-01 -3.064252130593845e-01 -3.072653472379187e-01 -3.081091181048918e-01 -3.089566254021406e-01 + -3.098079724748395e-01 -3.106632645082006e-01 -3.115226104442510e-01 -3.123861211846884e-01 -3.132539117130802e-01 + -3.141260990998875e-01 -3.150028046812773e-01 -3.158841520361693e-01 -3.167702694487885e-01 -3.176612875689104e-01 + -3.185573418032087e-01 -3.194585700942650e-01 -3.203651157713922e-01 -3.212771249044592e-01 -3.221947491388281e-01 + -3.231181430183639e-01 -3.240474671054514e-01 -3.249828850672117e-01 -3.259245669711927e-01 -3.268726862299913e-01 + -3.278274232359761e-01 -3.287889619469540e-01 -3.297574936027157e-01 -3.307332132733838e-01 -3.317163240684192e-01 + -3.327070332351553e-01 -3.337055565330767e-01 -3.347121141277095e-01 -3.357269352965953e-01 -3.367502540927247e-01 + -3.377823145588749e-01 -3.388233658450175e-01 -3.398736675401181e-01 -3.409334847493447e-01 -3.420030942036733e-01 + -3.430827786115977e-01 -3.441728329658748e-01 -3.452735586625544e-01 -3.463852704265985e-01 -3.475082899277179e-01 + -3.486429532857090e-01 -3.497896041380748e-01 -3.509486017430585e-01 -3.521203134619261e-01 -3.533051234472958e-01 + -3.545034246605078e-01 -3.557156285064298e-01 -3.569421559513399e-01 -3.581834477636310e-01 -3.594399550688090e-01 + -3.607121506187135e-01 -3.620005184199024e-01 -3.633055658714727e-01 -3.646278119965309e-01 -3.659677989216845e-01 + -3.673260803339768e-01 -3.687032330586966e-01 -3.700998457090232e-01 -3.715165309114429e-01 -3.729539131544640e-01 + -3.744126403613781e-01 -3.758933720658462e-01 -3.773967908082255e-01 -3.789235902651524e-01 -3.804744856516886e-01 + -3.820502023195389e-01 -3.836514846285581e-01 -3.852790856353807e-01 -3.869337741756033e-01 -3.886163256972291e-01 + -3.903275263189269e-01 -3.920681658458204e-01 -3.938390381581898e-01 -3.956409370872805e-01 -3.974746521930466e-01 + -3.993409682701225e-01 -4.012406553231547e-01 -4.031744727439548e-01 -4.051431522629808e-01 -4.071474082130475e-01 + -4.091879129977703e-01 -4.112653138348391e-01 -4.133801991274390e-01 -4.155331235094092e-01 -4.177245653517079e-01 + -4.199549603385881e-01 -4.222246496703586e-01 -4.245339230260172e-01 -4.268829584832519e-01 -4.292718744431503e-01 + -4.317006622016948e-01 -4.341692468068394e-01 -4.366774154195978e-01 -4.392248845800756e-01 -4.418112262316757e-01 + -4.444359401252420e-01 -4.470983818380713e-01 -4.497978365893122e-01 -4.525334523390530e-01 -4.553043120100788e-01 + -4.581093756350076e-01 -4.609475466791835e-01 -4.638176252290113e-01 -4.667183660407072e-01 -4.696484459287199e-01 + -4.726065094563343e-01 -4.755911501239359e-01 -4.786009429283761e-01 -4.816344399152602e-01 -4.846901882843556e-01 + -4.877667388033212e-01 -4.908626497957108e-01 -4.939765062407663e-01 -4.971069114027755e-01 -5.002525150305011e-01 + -5.034119937007041e-01 -5.065840848176727e-01 -5.097675587133593e-01 -5.129612566028576e-01 -5.161640565945169e-01 + -5.193749134865747e-01 -5.225928209640586e-01 -5.258168515692775e-01 -5.290461169135583e-01 -5.322798060270272e-01 + -5.355171460831645e-01 -5.387574394100244e-01 -5.420000245805213e-01 -5.452443099924439e-01 -5.484897376520451e-01 + -5.517358141745681e-01 -5.549820769247875e-01 -5.582281216566209e-01 -5.614735718423751e-01 -5.647181034387753e-01 + -5.679614169890416e-01 -5.712032588979591e-01 -5.744433972991336e-01 -5.776816413798681e-01 -5.809178193507762e-01 + -5.841517944620215e-01 -5.873834463985003e-01 -5.906126855444893e-01 -5.938394364748391e-01 -5.970636498273136e-01 + -6.002852884426439e-01 -6.035043379105128e-01 -6.067207941645156e-01 -6.099346717649501e-01 -6.131459940881434e-01 + -6.163548011478311e-01 -6.195611404873568e-01 -6.227650731310865e-01 -6.259666663617727e-01 -6.291659990146931e-01 + -6.323631552654742e-01 -6.355582290986170e-01 -6.387513188871106e-01 -6.419425307490256e-01 -6.451319745539882e-01 + -6.483197674327603e-01 -6.515060293214946e-01 -6.546908841167685e-01 -6.578744572836812e-01 -6.610568766009968e-01 + -6.642382709221243e-01 -6.674187710853904e-01 -6.705985088370179e-01 -6.737776175698923e-01 -6.769562312911304e-01 + -6.801344848181089e-01 -6.833125134999645e-01 -6.864904540026142e-01 -6.896684434132225e-01 -6.928466191871651e-01 + -6.960251190039876e-01 -6.992040810717012e-01 -7.023836437724149e-01 -7.055639456561626e-01 -7.087451254024176e-01 + -7.119273220404884e-01 -7.151106745784721e-01 -7.182953215897911e-01 -7.214814016245582e-01 -7.246690535743215e-01 + -7.278584163200112e-01 -7.310496283586513e-01 -7.342428280442573e-01 -7.374381535427195e-01 -7.406357429444993e-01 + -7.438357342264661e-01 -7.470382651689156e-01 -7.502434728794412e-01 -7.534514943101106e-01 -7.566624664635970e-01 + -7.598765262236051e-01 -7.630938099473661e-01 -7.663144537782537e-01 -7.695385935306881e-01 -7.727663648349232e-01 + -7.759979029135046e-01 -7.792333428394971e-01 -7.824728194957561e-01 -7.857164675195603e-01 -7.889644207560909e-01 + -7.922168128628783e-01 -7.954737775389469e-01 -7.987354483417761e-01 -8.020019582211745e-01 -8.052734399002169e-01 + -8.085500258027153e-01 -8.118318481538471e-01 -8.151190386835121e-01 -8.184117289678831e-01 -8.217100504635063e-01 + -8.250141343769457e-01 -8.283241110344656e-01 -8.316401105683494e-01 -8.349622632152548e-01 -8.382906990624389e-01 + -8.416255474951805e-01 -8.449669376504778e-01 -8.483149983741850e-01 -8.516698583310095e-01 -8.550316457522134e-01 + -8.584004886419279e-01 -8.617765145292081e-01 -8.651598508088844e-01 -8.685506248139727e-01 -8.719489622521989e-01 + -8.753549823919468e-01 -8.787687997490927e-01 -8.821905162688262e-01 -8.856202278084699e-01 -8.890580184445617e-01 + -8.925039663319011e-01 -8.959581377191167e-01 -8.994205926453692e-01 -9.028913782181163e-01 -9.063705352609543e-01 + -9.098580923937473e-01 -9.133540718558304e-01 -9.168584825681617e-01 -9.203713268261465e-01 -9.238925937413506e-01 + -9.274222656928153e-01 -9.309603113133150e-01 -9.345066924037853e-01 -9.380613571840678e-01 -9.416242468397124e-01 + -9.451952880001965e-01 -9.487744002152808e-01 -9.523614892719469e-01 -9.559564538973973e-01 -9.595591783425093e-01 + -9.631695396882074e-01 -9.667874008119273e-01 -9.704126174878044e-01 -9.740450312802591e-01 -9.776844767743714e-01 + -9.813307748475731e-01 -9.849837394560669e-01 -9.886431705787867e-01 -9.923088615430331e-01 -9.959805930468456e-01 + -9.996581394281877e-01 -1.003341262213973e+00 -1.007029716826452e+00 -1.010723247080268e+00 -1.014421591236032e+00 + -1.018124476945841e+00 -1.021831626529500e+00 -1.025542751586175e+00 -1.029257558992056e+00 -1.032975747452084e+00 + -1.036697011770175e+00 -1.040421039317395e+00 -1.044147513860548e+00 -1.047876112182243e+00 -1.051606508161453e+00 + -1.055338371046766e+00 -1.059071368055605e+00 -1.062805162911107e+00 -1.066539417837194e+00 -1.070273792555226e+00 + -1.074007946119602e+00 -1.077741537419413e+00 -1.081474225260823e+00 -1.085205668283577e+00 -1.088935525821090e+00 + -1.092663460147868e+00 -1.096389134999202e+00 -1.100112217012435e+00 -1.103832374788097e+00 -1.107549281877421e+00 + -1.111262614364874e+00 -1.114972053517157e+00 -1.118677283811066e+00 -1.122377997381517e+00 -1.126073890115035e+00 + -1.129764665246453e+00 -1.133450029987863e+00 -1.137129700112097e+00 -1.140803395884355e+00 -1.144470846978575e+00 + -1.148131787996958e+00 -1.151785963846005e+00 -1.155433124321719e+00 -1.159073028473816e+00 -1.162705440550504e+00 + -1.166330136340245e+00 -1.169946897198408e+00 -1.173555515207745e+00 -1.177155787675114e+00 -1.180747522076412e+00 + -1.184330531453910e+00 -1.187904640946331e+00 -1.191469681045491e+00 -1.195025491559137e+00 -1.198571917630371e+00 + -1.202108816427798e+00 -1.205636050425976e+00 -1.209153491297797e+00 -1.212661015717853e+00 -1.216158511169199e+00 + -1.219645870103956e+00 -1.223122994042052e+00 -1.226589789250444e+00 -1.230046171916402e+00 -1.233492062734542e+00 + -1.236927390508550e+00 -1.240352088211073e+00 -1.243766097381527e+00 -1.247169363751694e+00 -1.250561841256042e+00 + -1.253943487695246e+00 -1.257314268132119e+00 -1.260674151007197e+00 -1.264023111009775e+00 -1.267361126327042e+00 + -1.270688182889021e+00 -1.274004269717549e+00 -1.277309380458899e+00 -1.280603511471348e+00 -1.283886665336751e+00 + -1.287158847447705e+00 -1.290420068216200e+00 -1.293670340397085e+00 -1.296909681097245e+00 -1.300138109654688e+00 + -1.303355649979877e+00 -1.306562327924205e+00 -1.309758172530325e+00 -1.312943214678930e+00 -1.316117489411603e+00 + -1.319281033477409e+00 -1.322433886294459e+00 -1.325576088655014e+00 -1.328707684178879e+00 -1.331828717822939e+00 + -1.334939237064845e+00 -1.338039290534788e+00 -1.341128928952336e+00 -1.344208204044806e+00 -1.347277169481128e+00 + -1.350335879836220e+00 -1.353384391367341e+00 -1.356422761075585e+00 -1.359451047255056e+00 -1.362469308854003e+00 + -1.365477606144248e+00 -1.368475999956682e+00 -1.371464552034891e+00 -1.374443324607048e+00 -1.377412380926959e+00 + -1.380371784452904e+00 -1.383321598435415e+00 -1.386261886043311e+00 -1.389192710326296e+00 -1.392114134331963e+00 + -1.395026221218571e+00 -1.397929034013782e+00 -1.400822635112213e+00 -1.403707086730599e+00 -1.406582451007194e+00 + -1.409448790047375e+00 -1.412306165903488e+00 -1.415154640386279e+00 -1.417994274393129e+00 -1.420825128672226e+00 + -1.423647264288326e+00 -1.426460742270041e+00 -1.429265623184807e+00 -1.432061967292326e+00 -1.434849834082543e+00 + -1.437629282863016e+00 -1.440400372981510e+00 -1.443163163644870e+00 -1.445917713456040e+00 -1.448664080745027e+00 + -1.451402323353998e+00 -1.454132498983212e+00 -1.456854665253158e+00 -1.459568879518891e+00 -1.462275198153495e+00 + -1.464973677286479e+00 -1.467664373054985e+00 -1.470347341460922e+00 -1.473022637957602e+00 -1.475690317602213e+00 + -1.478350434416031e+00 -1.481003042251009e+00 -1.483648195317718e+00 -1.486285947650543e+00 -1.488916352220507e+00 + -1.491539461636770e+00 -1.494155328124374e+00 -1.496764003712290e+00 -1.499365540029296e+00 -1.501959988475343e+00 + -1.504547399935251e+00 -1.507127824972320e+00 -1.509701313378898e+00 -1.512267914702716e+00 -1.514827678283996e+00 + -1.517380653263305e+00 -1.519926888190102e+00 -1.522466431291609e+00 -1.524999330097196e+00 -1.527525631932397e+00 + -1.530045384005255e+00 -1.532558633226744e+00 -1.535065425437065e+00 -1.537565806237489e+00 -1.540059821344337e+00 + -1.542547516227056e+00 -1.545028935252552e+00 -1.547504122520188e+00 -1.549973122161691e+00 -1.552435978060152e+00 + -1.554892733071735e+00 -1.557343429814709e+00 -1.559788110982664e+00 -1.562226819032855e+00 -1.564659595401864e+00 + -1.567086481207361e+00 -1.569507517312065e+00 -1.571922744465970e+00 -1.574332203223133e+00 -1.576735933784567e+00 + -1.579133975135047e+00 -1.581526366095511e+00 -1.583913146047792e+00 -1.586294354132112e+00 -1.588670027961349e+00 + -1.591040204840321e+00 -1.593404922368944e+00 -1.595764217997401e+00 -1.598118128281829e+00 -1.600466689560657e+00 + -1.602809938195509e+00 -1.605147910317183e+00 -1.607480641109968e+00 -1.609808165462235e+00 -1.612130518025190e+00 + -1.614447733364541e+00 -1.616759845941160e+00 -1.619066889913862e+00 -1.621368898338053e+00 -1.623665904067572e+00 + -1.625957940253400e+00 -1.628245039905108e+00 -1.630527235169479e+00 -1.632804557955816e+00 -1.635077040086276e+00 + -1.637344713164072e+00 -1.639607608003776e+00 -1.641865755216986e+00 -1.644119185392045e+00 -1.646367929030376e+00 + -1.648612016308968e+00 -1.650851477080719e+00 -1.653086340226579e+00 -1.655316634503563e+00 -1.657542389144867e+00 + -1.659763633269537e+00 -1.661980395063818e+00 -1.664192702419508e+00 -1.666400582983419e+00 -1.668604064251645e+00 + -1.670803173362428e+00 -1.672997937236383e+00 -1.675188382281491e+00 -1.677374534802169e+00 -1.679556421201192e+00 + -1.681734067628149e+00 -1.683907499121518e+00 -1.686076740528519e+00 -1.688241817042459e+00 -1.690402753749855e+00 + -1.692559574964003e+00 -1.694712304797627e+00 -1.696860967334408e+00 -1.699005586454806e+00 -1.701146185255449e+00 + -1.703282786721620e+00 -1.705415414177082e+00 -1.707544090831449e+00 -1.709668839099297e+00 -1.711789681156861e+00 + -1.713906639022084e+00 -1.716019734585396e+00 -1.718128989385494e+00 -1.720234424849230e+00 -1.722336062307809e+00 + -1.724433922917529e+00 -1.726528027230686e+00 -1.728618395721282e+00 -1.730705049154116e+00 -1.732788008101886e+00 + -1.734867292078088e+00 -1.736942920442919e+00 -1.739014913002594e+00 -1.741083289547465e+00 -1.743148069358425e+00 + -1.745209271450225e+00 -1.747266914282488e+00 -1.749321016270471e+00 -1.751371596207075e+00 -1.753418672811714e+00 + -1.755462264132180e+00 -1.757502388000569e+00 -1.759539062057792e+00 -1.761572303881055e+00 -1.763602130983907e+00 + -1.765628560778196e+00 -1.767651610332621e+00 -1.769671296580689e+00 -1.771687636258316e+00 -1.773700645994041e+00 + -1.775710342184503e+00 -1.777716741146727e+00 -1.779719859111176e+00 -1.781719712181211e+00 -1.783716316038327e+00 + -1.785709686327057e+00 -1.787699838965949e+00 -1.789686789700248e+00 -1.791670553307960e+00 -1.793651144443631e+00 + -1.795628578235185e+00 -1.797602869852874e+00 -1.799574034162875e+00 -1.801542085839167e+00 -1.803507039091021e+00 + -1.805468908052258e+00 -1.807427707019619e+00 -1.809383450209764e+00 -1.811336151356113e+00 -1.813285824110837e+00 + -1.815232482284336e+00 -1.817176139592257e+00 -1.819116809213001e+00 -1.821054504262256e+00 -1.822989238142106e+00 + -1.824921024174149e+00 -1.826849875071642e+00 -1.828775803432498e+00 -1.830698822001605e+00 -1.832618943490715e+00 + -1.834536180332052e+00 -1.836450544855570e+00 -1.838362049261658e+00 -1.840270705693083e+00 -1.842176526191684e+00 + -1.844079522732226e+00 -1.845979707122125e+00 -1.847877091069540e+00 -1.849771686052976e+00 -1.851663503515020e+00 + -1.853552554984233e+00 -1.855438851906239e+00 -1.857322405308933e+00 -1.859203226114476e+00 -1.861081325239847e+00 + -1.862956713608023e+00 -1.864829402171162e+00 -1.866699401811557e+00 -1.868566723102871e+00 -1.870431376467943e+00 + -1.872293372034969e+00 -1.874152719980291e+00 -1.876009430967454e+00 -1.877863515541558e+00 -1.879714983286677e+00 + -1.881563843740828e+00 -1.883410107218835e+00 -1.885253783963326e+00 -1.887094883151373e+00 -1.888933413891583e+00 + -1.890769386084288e+00 -1.892602809677417e+00 -1.894433694017575e+00 -1.896262048252058e+00 -1.898087881332244e+00 + -1.899911202238771e+00 -1.901732020265218e+00 -1.903550344662578e+00 -1.905366184198560e+00 -1.907179547502340e+00 + -1.908990443132265e+00 -1.910798879695625e+00 -1.912604866066330e+00 -1.914408411061036e+00 -1.916209523000752e+00 + -1.918008210058423e+00 -1.919804480310377e+00 -1.921598341888620e+00 -1.923389803244497e+00 -1.925178872754823e+00 + -1.926965558178970e+00 -1.928749867237572e+00 -1.930531808113790e+00 -1.932311388923252e+00 -1.934088617048956e+00 + -1.935863499807747e+00 -1.937636044984464e+00 -1.939406260367225e+00 -1.941174153289245e+00 -1.942939731044444e+00 + -1.944703001224463e+00 -1.946463971324967e+00 -1.948222648160018e+00 -1.949979038559213e+00 -1.951733150095908e+00 + -1.953484990331042e+00 -1.955234566032130e+00 -1.956981883796339e+00 -1.958726950332857e+00 -1.960469772453529e+00 + -1.962210357268799e+00 -1.963948711773954e+00 -1.965684842205069e+00 -1.967418754747339e+00 -1.969150456141664e+00 + -1.970879953151972e+00 -1.972607252078582e+00 -1.974332359180596e+00 -1.976055281015821e+00 -1.977776024078765e+00 + -1.979494594312026e+00 -1.981210997612849e+00 -1.982925240248993e+00 -1.984637328483028e+00 -1.986347268186276e+00 + -1.988055065135925e+00 -1.989760725123873e+00 -1.991464254028801e+00 -1.993165658061782e+00 -1.994864943305917e+00 + -1.996562115000000e+00 -1.998257178352118e+00 -1.999950139291834e+00 -2.001641003786081e+00 -2.003329777229788e+00 + -2.005016464899233e+00 -2.006701072168050e+00 -2.008383604435580e+00 -2.010064067106614e+00 -2.011742465557514e+00 + -2.013418805045480e+00 -2.015093090790721e+00 -2.016765327984645e+00 -2.018435521788566e+00 -2.020103677272243e+00 + -2.021769799450648e+00 -2.023433893211152e+00 -2.025095963440481e+00 -2.026756015150358e+00 -2.028414053372033e+00 + -2.030070083089858e+00 -2.031724109167109e+00 -2.033376136029651e+00 -2.035026168111125e+00 -2.036674210313675e+00 + -2.038320267543339e+00 -2.039964344253219e+00 -2.041606444873179e+00 -2.043246574193053e+00 -2.044884736927830e+00 + -2.046520937133174e+00 -2.048155178894251e+00 -2.049787467073582e+00 -2.051417806490505e+00 -2.053046201014273e+00 + -2.054672654449746e+00 -2.056297171294283e+00 -2.057919756136151e+00 -2.059540413234731e+00 -2.061159146675282e+00 + -2.062775960175462e+00 -2.064390857518372e+00 -2.066003843116474e+00 -2.067614921377108e+00 -2.069224096057763e+00 + -2.070831370870978e+00 -2.072436749999330e+00 -2.074040237602111e+00 -2.075641837275425e+00 -2.077241552544816e+00 + -2.078839387216755e+00 -2.080435345153352e+00 -2.082029430158359e+00 -2.083621645967183e+00 -2.085211996100236e+00 + -2.086800484128769e+00 -2.088387114042385e+00 -2.089971889736969e+00 -2.091554814315162e+00 -2.093135890870968e+00 + -2.094715123257078e+00 -2.096292515329556e+00 -2.097868070199266e+00 -2.099441790929908e+00 -2.101013681141721e+00 + -2.102583744473837e+00 -2.104151984084442e+00 -2.105718403103298e+00 -2.107283005027429e+00 -2.108845793364375e+00 + -2.110406771296459e+00 -2.111965941910842e+00 -2.113523308239219e+00 -2.115078873308544e+00 -2.116632640182243e+00 + -2.118184611994434e+00 -2.119734792125529e+00 -2.121283183887100e+00 -2.122829790069075e+00 -2.124374613416041e+00 + -2.125917657012881e+00 -2.127458923984833e+00 -2.128998417278243e+00 -2.130536139767974e+00 -2.132072094221826e+00 + -2.133606283403289e+00 -2.135138710165668e+00 -2.136669377406417e+00 -2.138198288109766e+00 -2.139725445172409e+00 + -2.141250851054121e+00 -2.142774508270670e+00 -2.144296419998729e+00 -2.145816589318136e+00 -2.147335018260493e+00 + -2.148851708859426e+00 -2.150366664204882e+00 -2.151879887475646e+00 -2.153391381149525e+00 -2.154901147551277e+00 + -2.156409189094421e+00 -2.157915508301146e+00 -2.159420108039566e+00 -2.160922991060322e+00 -2.162424159298261e+00 + -2.163923614721020e+00 -2.165421360243191e+00 -2.166917398765767e+00 -2.168411732188371e+00 -2.169904362385663e+00 + -2.171395292133801e+00 -2.172884524283159e+00 -2.174372061079477e+00 -2.175857904621596e+00 -2.177342057025400e+00 + -2.178824520458782e+00 -2.180305297280612e+00 -2.181784389836284e+00 -2.183261800226323e+00 -2.184737530553230e+00 + -2.186211583172279e+00 -2.187683960396664e+00 -2.189154664118480e+00 -2.190623696232450e+00 -2.192091059064924e+00 + -2.193556754973807e+00 -2.195020786011611e+00 -2.196483154140098e+00 -2.197943861263397e+00 -2.199402909290797e+00 + -2.200860300209873e+00 -2.202316036078389e+00 -2.203770119156592e+00 -2.205222551620105e+00 -2.206673335103553e+00 + -2.208122471221687e+00 -2.209569962050753e+00 -2.211015809743800e+00 -2.212460016299604e+00 -2.213902583604158e+00 + -2.215343513246597e+00 -2.216782806815468e+00 -2.218220466193829e+00 -2.219656493330310e+00 -2.221090890141300e+00 + -2.222523658493742e+00 -2.223954800089009e+00 -2.225384316635711e+00 -2.226812210036953e+00 -2.228238482128524e+00 + -2.229663134282465e+00 -2.231086167933421e+00 -2.232507585230206e+00 -2.233927388263609e+00 -2.235345578178182e+00 + -2.236762156112363e+00 -2.238177124126393e+00 -2.239590484325721e+00 -2.241002238074839e+00 -2.242412386688506e+00 + -2.243820932023517e+00 -2.245227875877045e+00 -2.246633219265731e+00 -2.248036963296034e+00 -2.249439110214208e+00 + -2.250839662216949e+00 -2.252238620162919e+00 -2.253635984842608e+00 -2.255031758111861e+00 -2.256425941987018e+00 + -2.257818538061035e+00 -2.259209547728066e+00 -2.260598972010440e+00 -2.261986811976363e+00 -2.263373069249392e+00 + -2.264757745520950e+00 -2.266140842198597e+00 -2.267522360622610e+00 -2.268902302148032e+00 -2.270280668153553e+00 + -2.271657460097697e+00 -2.273032679375423e+00 -2.274406327047590e+00 -2.275778404191426e+00 -2.277148912283742e+00 + -2.278517852852843e+00 -2.279885227233438e+00 -2.281251036662961e+00 -2.282615282183361e+00 -2.283977964870765e+00 + -2.285339086133513e+00 -2.286698647429660e+00 -2.288056650083893e+00 -2.289413095312870e+00 -2.290767984034498e+00 + -2.292121317209354e+00 -2.293473096267451e+00 -2.294823322630535e+00 -2.296171997217860e+00 -2.297519120939147e+00 + -2.298864695168495e+00 -2.300208721271999e+00 -2.301551200119357e+00 -2.302892132586471e+00 -2.304231520070443e+00 + -2.305569363951571e+00 -2.306905665021753e+00 -2.308240424043668e+00 -2.309573642251534e+00 -2.310905320943594e+00 + -2.312235461202651e+00 -2.313564064009707e+00 -2.314891130153991e+00 -2.316216660462560e+00 -2.317540656105554e+00 + -2.318863118293744e+00 -2.320184048057342e+00 -2.321503446385586e+00 -2.322821314284393e+00 -2.324137652689092e+00 + -2.325452462235987e+00 -2.326765743634779e+00 -2.328077498187803e+00 -2.329387727168217e+00 -2.330696431139842e+00 + -2.332003610675342e+00 -2.333309267092103e+00 -2.334613401701304e+00 -2.335916015044585e+00 -2.337217107588464e+00 + -2.338516680268511e+00 -2.339814734134101e+00 -2.341111270220800e+00 -2.342406289434137e+00 -2.343699792173311e+00 + -2.344991778936741e+00 -2.346282251126043e+00 -2.347571210092017e+00 -2.348858656078995e+00 -2.350144589310363e+00 + -2.351429011032167e+00 -2.352711922533504e+00 -2.353993324252988e+00 -2.355273216536063e+00 -2.356551600205969e+00 + -2.357828476165661e+00 -2.359103845159169e+00 -2.360377707896761e+00 -2.361650065112589e+00 -2.362920917562625e+00 + -2.364190266066228e+00 -2.365458111389245e+00 -2.366724454020086e+00 -2.367989294422349e+00 -2.369252633237819e+00 + -2.370514471195048e+00 -2.371774809191487e+00 -2.373033648052395e+00 -2.374290988145372e+00 -2.375546829856004e+00 + -2.376801174099476e+00 -2.378054021758188e+00 -2.379305373053798e+00 -2.380555228228685e+00 -2.381803588268867e+00 + -2.383050454170042e+00 -2.384295826222999e+00 -2.385539704659158e+00 -2.386782090177350e+00 -2.388022983519428e+00 + -2.389262385131917e+00 -2.390500295440986e+00 -2.391736715086700e+00 -2.392971644747536e+00 -2.394205085041701e+00 + -2.395437036486230e+00 -2.396667499253712e+00 -2.397896473568759e+00 -2.399123960208524e+00 -2.400349959968320e+00 + -2.401574473163553e+00 -2.402797500049246e+00 -2.404019041118798e+00 -2.405239096931802e+00 -2.406457668074259e+00 + -2.407674755052769e+00 -2.408890358029935e+00 -2.410104477201394e+00 -2.411317113238899e+00 -2.412528266823138e+00 + -2.413737938194389e+00 -2.414946127524263e+00 -2.416152835150093e+00 -2.417358061488310e+00 -2.418561807106014e+00 + -2.419764072540869e+00 -2.420964858062149e+00 -2.422164163883997e+00 -2.423361990268478e+00 -2.424558337539998e+00 + -2.425753206224426e+00 -2.426946596778449e+00 -2.428138509180588e+00 -2.429328943436301e+00 -2.430517900136966e+00 + -2.431705379929064e+00 -2.432891383093559e+00 -2.434075909789072e+00 -2.435258960050367e+00 -2.436440534002261e+00 + -2.437620632253666e+00 -2.438799255363957e+00 -2.439976403210287e+00 -2.441152075652963e+00 -2.442326273167121e+00 + -2.443498996281469e+00 -2.444670245124171e+00 -2.445840019720089e+00 -2.447008320081434e+00 -2.448175146330043e+00 + -2.449340499038912e+00 -2.450504378726154e+00 -2.451666785239187e+00 -2.452827718349615e+00 -2.453987178196479e+00 + -2.455145165027037e+00 -2.456301679153984e+00 -2.457456720843679e+00 -2.458610290111703e+00 -2.459762386895362e+00 + -2.460913011069636e+00 -2.462062162618941e+00 -2.463209842027783e+00 -2.464356049701044e+00 -2.465500785225038e+00 + -2.466644048210323e+00 -2.467785839182998e+00 -2.468926158651886e+00 -2.470065006141172e+00 -2.471202381154697e+00 + -2.472338284099561e+00 -2.473472715451581e+00 -2.474605675058163e+00 -2.475737162666682e+00 -2.476867178252799e+00 + -2.477995721814551e+00 -2.479122793211214e+00 -2.480248392312651e+00 -2.481372519169843e+00 -2.482495173828069e+00 + -2.483616356128687e+00 -2.484736065895716e+00 -2.485854303087743e+00 -2.486971067738408e+00 -2.488086360047014e+00 + -2.489200180083995e+00 -2.490312527238630e+00 -2.491423400907520e+00 -2.492532801197714e+00 -2.493640728315912e+00 + -2.494747182157012e+00 -2.495852162518061e+00 -2.496955669116524e+00 -2.498057701682506e+00 -2.499158260076250e+00 + -2.500257344205291e+00 -2.501354954036191e+00 -2.502451089487258e+00 -2.503545750224782e+00 -2.504638935878569e+00 + -2.505730646184535e+00 -2.506820880947837e+00 -2.507909640144502e+00 -2.508996923692245e+00 -2.510082731104683e+00 + -2.511167061905791e+00 -2.512249916065080e+00 -2.513331293568936e+00 -2.514411194025691e+00 -2.515489616993924e+00 + -2.516566562211253e+00 -2.517642029416175e+00 -2.518716018171676e+00 -2.519788528087044e+00 -2.520859559132313e+00 + -2.521929111272669e+00 -2.522997184093166e+00 -2.524063777123772e+00 -2.525128890054233e+00 -2.526192522577199e+00 + -2.527254674237163e+00 -2.528315344566595e+00 -2.529374533198041e+00 -2.530432239809303e+00 -2.531488464159136e+00 + -2.532543206017777e+00 -2.533596465120445e+00 -2.534648241083385e+00 -2.535698533081969e+00 -2.536747340380982e+00 + -2.537794663043710e+00 -2.538840501172024e+00 -2.539884854223596e+00 -2.540927721482817e+00 -2.541969102185147e+00 + -2.543008995720672e+00 -2.544047402146914e+00 -2.545084321505733e+00 -2.546119753108897e+00 -2.547153696148885e+00 + -2.548186150071097e+00 -2.549217114438763e+00 -2.550246589033513e+00 -2.551274573561718e+00 -2.552301067210345e+00 + -2.553326069170913e+00 -2.554349579172571e+00 -2.555371597001575e+00 -2.556392122135012e+00 -2.557411153995589e+00 + -2.558428692097672e+00 -2.559444735964176e+00 -2.560459285060548e+00 -2.561472338773803e+00 -2.562483896234721e+00 + -2.563493956701396e+00 -2.564502520197407e+00 -2.565509586690590e+00 -2.566515155160310e+00 -2.567519224484451e+00 + -2.568521794123430e+00 -2.569522863722881e+00 -2.570522433086768e+00 -2.571520501879673e+00 -2.572517069050324e+00 + -2.573512133570669e+00 -2.574505695221420e+00 -2.575497753777856e+00 -2.576488308184784e+00 -2.577477357385580e+00 + -2.578464901148367e+00 -2.579450939304331e+00 -2.580435471112168e+00 -2.581418495678755e+00 -2.582400012076188e+00 + -2.583380019545771e+00 -2.584358518040427e+00 -2.585335507388502e+00 -2.586310986208430e+00 -2.587284953146766e+00 + -2.588257408172476e+00 -2.589228351266687e+00 -2.590197781136742e+00 -2.591165696464199e+00 -2.592132097101227e+00 + -2.593096982965479e+00 -2.594060353065933e+00 -2.595022206300420e+00 -2.595982542030859e+00 -2.596941359648237e+00 + -2.597898658195753e+00 -2.598854436786441e+00 -2.599808695160485e+00 -2.600761432999720e+00 -2.601712649125437e+00 + -2.602662342322502e+00 -2.603610512090611e+00 -2.604557157983472e+00 -2.605502279056006e+00 -2.606445874333086e+00 + -2.607387943218189e+00 -2.608328485131743e+00 -2.609267499183389e+00 -2.610204984445080e+00 -2.611140940148811e+00 + -2.612075365584592e+00 -2.613008260114454e+00 -2.613939623006402e+00 -2.614869453080320e+00 -2.615797749224179e+00 + -2.616724511046408e+00 -2.617649738126216e+00 -2.618573429205448e+00 -2.619495583026503e+00 -2.620416199171340e+00 + -2.621335277249019e+00 -2.622252816137456e+00 -2.623168814653865e+00 -2.624083272103795e+00 -2.624996187859330e+00 + -2.625907561070358e+00 -2.626817390806325e+00 -2.627725676037143e+00 -2.628632415761536e+00 -2.629537609193020e+00 + -2.630441255587996e+00 -2.631343354159609e+00 -2.632243904045731e+00 -2.633142904126422e+00 -2.634040353337229e+00 + -2.634936251093461e+00 -2.635830596765059e+00 -2.636723389060725e+00 -2.637614626713354e+00 -2.638504309213838e+00 + -2.639392436080191e+00 -2.640279006180904e+00 -2.641164018251881e+00 -2.642047471148195e+00 -2.642929363899640e+00 + -2.643809696115713e+00 -2.644688467316341e+00 -2.645565676083456e+00 -2.646441320932559e+00 -2.647315401051427e+00 + -2.648187915755844e+00 -2.649058864201336e+00 -2.649928245427330e+00 -2.650796058169106e+00 -2.651662301248424e+00 + -2.652526974137104e+00 -2.653390076247662e+00 -2.654251606105329e+00 -2.655111562238285e+00 -2.655969944073783e+00 + -2.656826751086593e+00 -2.657681982042466e+00 -2.658535635661370e+00 -2.659387711189145e+00 -2.660238207837736e+00 + -2.661087124157626e+00 -2.661934458755756e+00 -2.662780211126336e+00 -2.663624380741185e+00 -2.664466966095276e+00 + -2.665307965694397e+00 -2.666147379064445e+00 -2.666985205710447e+00 -2.667821444033845e+00 -2.668656092405469e+00 + -2.669489150177272e+00 -2.670320616801000e+00 -2.671150491146469e+00 -2.671978771965001e+00 -2.672805458115896e+00 + -2.673630548501148e+00 -2.674454042085555e+00 -2.675275937884819e+00 -2.676096235055446e+00 -2.676914932653945e+00 + -2.677732029196031e+00 -2.678547523253807e+00 -2.679361414165717e+00 -2.680173701269736e+00 -2.680984383135636e+00 + -2.681793458321363e+00 -2.682600926105787e+00 -2.683406785794135e+00 -2.684211036076172e+00 -2.685013675548027e+00 + -2.685814703046789e+00 -2.686614117528503e+00 -2.687411918184072e+00 -2.688208104155523e+00 -2.689002674154484e+00 + -2.689795626844247e+00 -2.690586961125131e+00 -2.691376675931391e+00 -2.692164770096012e+00 -2.692951242468673e+00 + -2.693736092067127e+00 -2.694519317933390e+00 -2.695300919038479e+00 -2.696080894259941e+00 -2.696859242172434e+00 + -2.697635961409562e+00 -2.698411051143577e+00 -2.699184510529523e+00 -2.699956338114957e+00 -2.700726532498006e+00 + -2.701495093086574e+00 -2.702262019208106e+00 -2.703027309058428e+00 -2.703790960874505e+00 -2.704552974189474e+00 + -2.705313348537555e+00 -2.706072082161119e+00 -2.706829173257158e+00 -2.707584621133000e+00 -2.708338425191227e+00 + -2.709090584105120e+00 -2.709841096442358e+00 -2.710589961077480e+00 -2.711337176962203e+00 -2.712082743050078e+00 + -2.712826658235913e+00 -2.713568921177743e+00 -2.714309530527581e+00 -2.715048485150131e+00 -2.715785783993005e+00 + -2.716521426122757e+00 -2.717255410569124e+00 -2.717987736095623e+00 -2.718718401385704e+00 -2.719447405068731e+00 + -2.720174745881186e+00 -2.720900423042079e+00 -2.721624435690877e+00 -2.722346782166338e+00 -2.723067460855530e+00 + -2.723786471139474e+00 -2.724503812410580e+00 -2.725219483112852e+00 -2.725933481634188e+00 -2.726645807086471e+00 + -2.727356458650697e+00 -2.728065435060333e+00 -2.728772734953498e+00 -2.729478357034439e+00 -2.730182300087997e+00 + -2.730884563155262e+00 -2.731585145263588e+00 -2.732284045129153e+00 -2.732981261442558e+00 -2.733676793103288e+00 + -2.734370639038562e+00 -2.735062798077667e+00 -2.735753269071118e+00 -2.736442051052291e+00 -2.737129142959769e+00 + -2.737814543170111e+00 -2.738498250131983e+00 -2.739180263144520e+00 -2.739860581563291e+00 -2.740539204119172e+00 + -2.741216129405992e+00 -2.741891356094071e+00 -2.742564882952538e+00 -2.743236709069217e+00 -2.743906833523784e+00 + -2.744575255044610e+00 -2.745241972311204e+00 -2.745906984158941e+00 -2.746570289467025e+00 -2.747231887134115e+00 + -2.747891776057501e+00 -2.748549955109537e+00 -2.749206423158993e+00 -2.749861179085207e+00 -2.750514221765824e+00 + -2.751165550061125e+00 -2.751815162841771e+00 -2.752463059037292e+00 -2.753109237554207e+00 -2.753753697148108e+00 + -2.754396436622574e+00 -2.755037455124055e+00 -2.755676751755156e+00 -2.756314325100252e+00 -2.756950173779785e+00 + -2.757584297076699e+00 -2.758216694281619e+00 -2.758847364053396e+00 -2.759476305000437e+00 -2.760103516161140e+00 + -2.760728996610216e+00 -2.761352745137616e+00 -2.761974760563591e+00 -2.762595042114344e+00 -2.763213589016364e+00 + -2.763830400091322e+00 -2.764445474113015e+00 -2.765058810068553e+00 -2.765670407011266e+00 -2.766280264046035e+00 + -2.766888380201558e+00 -2.767494754150214e+00 -2.768099384646222e+00 -2.768702271127474e+00 -2.769303413030783e+00 + -2.769902809104988e+00 -2.770500458053093e+00 -2.771096359082754e+00 -2.771690511445131e+00 -2.772282914060774e+00 + -2.772873565847032e+00 -2.773462466039048e+00 -2.774049613856528e+00 -2.774635008139637e+00 -2.775218647762881e+00 + -2.775800532117688e+00 -2.776380660598635e+00 -2.776959032095993e+00 -2.777535645483684e+00 -2.778110500074552e+00 + -2.778683595228330e+00 -2.779254930053368e+00 -2.779824503611819e+00 -2.780392315032438e+00 -2.780958363471580e+00 + -2.781522648129417e+00 -2.782085168237396e+00 -2.782645923108263e+00 -2.783204912027138e+00 -2.783762134087364e+00 + -2.784317588365996e+00 -2.784871274066723e+00 -2.785423190471204e+00 -2.785973337046338e+00 -2.786521713227682e+00 + -2.787068318140169e+00 -2.787613150927563e+00 -2.788156211119559e+00 -2.788697498201977e+00 -2.789237011099205e+00 + -2.789774748795882e+00 -2.790310711079109e+00 -2.790844897774500e+00 -2.791377308059270e+00 -2.791907941021321e+00 + -2.792436796039691e+00 -2.792963872575855e+00 -2.793489170129877e+00 -2.794012688183935e+00 -2.794534426110070e+00 + -2.795054383269529e+00 -2.795572559090522e+00 -2.796088953089790e+00 -2.796603565071232e+00 -2.797116394731634e+00 + -2.797627441052200e+00 -2.798136703104035e+00 -2.798644181033428e+00 -2.799149874997305e+00 -2.799653784119957e+00 + -2.800155907491874e+00 -2.800656245100958e+00 -2.801154796934787e+00 -2.801651562082218e+00 -2.802146539693571e+00 + -2.802639730063738e+00 -2.803131133478864e+00 -2.803620749045517e+00 -2.804108575856467e+00 -2.804594614128865e+00 + -2.805078864118387e+00 -2.805561325110418e+00 -2.806041996375143e+00 -2.806520878092229e+00 -2.806997970489045e+00 + -2.807473273074300e+00 -2.807946785293329e+00 -2.808418507056632e+00 -2.808888438355500e+00 -2.809356579039224e+00 + -2.809822928959404e+00 -2.810287488118900e+00 -2.810750256531227e+00 -2.811211234101264e+00 -2.811670420689050e+00 + -2.812127816083888e+00 -2.812583420143096e+00 -2.813037233066774e+00 -2.813489255065615e+00 -2.813939486049919e+00 + -2.814387925944586e+00 -2.814834575033324e+00 -2.815279433542374e+00 -2.815722501109326e+00 -2.816163777438837e+00 + -2.816603263092504e+00 -2.817040958671196e+00 -2.817476864075942e+00 -2.817910979131784e+00 -2.818343304059641e+00 + -2.818773839208482e+00 -2.819202585043600e+00 -2.819629541969078e+00 -2.820054710027820e+00 -2.820478089265513e+00 + -2.820899680100151e+00 -2.821319482977751e+00 -2.821737498084143e+00 -2.822153725615352e+00 -2.822568166068396e+00 + -2.822980820018520e+00 -2.823391688052908e+00 -2.823800770674544e+00 -2.824208068037681e+00 -2.824613580315654e+00 + -2.825017308106835e+00 -2.825419252121360e+00 -2.825819413091381e+00 -2.826217791658008e+00 -2.826614388076187e+00 + -2.827009202624378e+00 -2.827402236061253e+00 -2.827793489256864e+00 -2.828182963046578e+00 -2.828570658171722e+00 + -2.828956575032161e+00 -2.829340714052488e+00 -2.829723076097664e+00 -2.830103662132774e+00 -2.830482473083023e+00 + -2.830859509823491e+00 -2.831234773068641e+00 -2.831608263528317e+00 -2.831979982054516e+00 -2.832349929557777e+00 + -2.832718107040651e+00 -2.833084515526141e+00 -2.833449156027042e+00 -2.833812029550204e+00 -2.834173137088914e+00 + -2.834532479620883e+00 -2.834890058075082e+00 -2.835245873448821e+00 -2.835599927061508e+00 -2.835952220243667e+00 + -2.836302754048190e+00 -2.836651529530672e+00 -2.836998548035129e+00 -2.837343810883671e+00 -2.837687319022324e+00 + -2.838029073490917e+00 -2.838369076080591e+00 -2.838707328586376e+00 -2.839043832067564e+00 -2.839378587474163e+00 + -2.839711596054793e+00 -2.840042859259108e+00 -2.840372379042276e+00 -2.840700157280677e+00 -2.841026195030013e+00 + -2.841350493343512e+00 -2.841673054085180e+00 -2.841993879190829e+00 -2.842312970072699e+00 -2.842630328108386e+00 + -2.842945955060471e+00 -2.843259852775203e+00 -2.843572023048496e+00 -2.843882467617769e+00 -2.844191188036773e+00 + -2.844498185884593e+00 -2.844803463025301e+00 -2.845107021413000e+00 -2.845408863076932e+00 -2.845708990020076e+00 + -2.846007404065244e+00 -2.846304107050338e+00 -2.846599101053807e+00 -2.846892388135785e+00 -2.847183970042619e+00 + -2.847473848570861e+00 -2.847762026031680e+00 -2.848048504803730e+00 -2.848333287020989e+00 -2.848616374754612e+00 + -2.848897770069131e+00 -2.849177475073159e+00 -2.849455492058227e+00 -2.849731823327478e+00 -2.850006471047571e+00 + -2.850279437434387e+00 -2.850550725037162e+00 -2.850820336439234e+00 -2.851088274026996e+00 -2.851354540133094e+00 + -2.851619137072155e+00 -2.851882067200814e+00 -2.852143333061782e+00 -2.852402937208544e+00 -2.852660882051651e+00 + -2.852917170055367e+00 -2.853171804041764e+00 -2.853424786850297e+00 -2.853676121032120e+00 -2.853925809140160e+00 + -2.854173854022716e+00 -2.854420258509995e+00 -2.854665025064492e+00 -2.854908156206457e+00 -2.855149655054884e+00 + -2.855389524765914e+00 -2.855627768045515e+00 -2.855864387531145e+00 -2.856099386036384e+00 -2.856332766480263e+00 + -2.856564532027491e+00 -2.856794685864488e+00 -2.857023231018833e+00 -2.857250170456676e+00 -2.857475507057297e+00 + -2.857699243787178e+00 -2.857921384048440e+00 -2.858141931205942e+00 -2.858360888039817e+00 -2.858578257403886e+00 + -2.858794043031427e+00 -2.859008248642304e+00 -2.859220877023269e+00 -2.859431930941042e+00 -2.859641414015340e+00 + -2.859849329964776e+00 -2.860055682050569e+00 -2.860260473522559e+00 -2.860463708042447e+00 -2.860665389218646e+00 + -2.860865520034553e+00 -2.861064103583913e+00 -2.861261144026887e+00 -2.861456645505078e+00 -2.861650611019446e+00 + -2.861843043539793e+00 -2.862033947051935e+00 -2.862223325674870e+00 -2.862411183044306e+00 -2.862597522669464e+00 + -2.862782348036900e+00 -2.862965662765951e+00 -2.863147471029718e+00 -2.863327776966641e+00 -2.863506584022756e+00 + -2.863683895649960e+00 -2.863859716016013e+00 -2.864034049304372e+00 -2.864206899045429e+00 -2.864378268816853e+00 + -2.864548163038503e+00 -2.864716586175495e+00 -2.864883542031795e+00 -2.865049034317118e+00 -2.865213067025303e+00 + -2.865375644227383e+00 -2.865536770019026e+00 -2.865696448531390e+00 -2.865854684012960e+00 -2.866011480747103e+00 + -2.866166843039399e+00 -2.866320775137251e+00 -2.866473281033156e+00 -2.866624364792500e+00 -2.866774031027124e+00 + -2.866922284373643e+00 -2.867069129021301e+00 -2.867214569108258e+00 -2.867358609015685e+00 -2.867501253183005e+00 + -2.867642506039625e+00 -2.867782372075631e+00 -2.867920856033839e+00 -2.868057962606175e+00 -2.868193696028257e+00 + -2.868328060561013e+00 -2.868461061022879e+00 -2.868592702303233e+00 -2.868722989017701e+00 -2.868851925722842e+00 + -2.868979517012722e+00 -2.869105767524959e+00 -2.869230682033886e+00 -2.869354265317122e+00 -2.869476522028743e+00 + -2.869597456891174e+00 -2.869717075023798e+00 -2.869835381525858e+00 -2.869952381019048e+00 -2.870068078133983e+00 + -2.870182478014490e+00 -2.870295585788873e+00 -2.870407406010122e+00 -2.870517943287246e+00 -2.870627203028626e+00 + -2.870735190678368e+00 -2.870841911024103e+00 -2.870947368779615e+00 -2.871051569019769e+00 -2.871154516959833e+00 + -2.871256218015620e+00 -2.871356677487263e+00 -2.871455900011655e+00 -2.871553890297982e+00 -2.871650654007871e+00 + -2.871746196881877e+00 -2.871840524023838e+00 -2.871933640394619e+00 -2.872025551019907e+00 -2.872116261043417e+00 + -2.872205776016155e+00 -2.872294101539941e+00 -2.872381243012580e+00 -2.872467205758066e+00 -2.872551995009178e+00 + -2.872635615995248e+00 -2.872718074023048e+00 -2.872799374482606e+00 -2.872879523019508e+00 -2.872958525324841e+00 + -2.873036387016140e+00 -2.873113113575017e+00 -2.873188710012942e+00 -2.873263181462381e+00 -2.873336534009911e+00 + -2.873408773769060e+00 -2.873479906007045e+00 -2.873549935889074e+00 -2.873618869018622e+00 -2.873686711126628e+00 + -2.873753468015626e+00 -2.873819145455355e+00 -2.873883749012791e+00 -2.873947284262238e+00 -2.874009757010115e+00 + -2.874071173064448e+00 -2.874131538007598e+00 -2.874190857408149e+00 -2.874249137005235e+00 -2.874306382592947e+00 + -2.874362600014657e+00 -2.874417795154723e+00 -2.874471974012172e+00 -2.874525142492177e+00 -2.874577306009839e+00 + -2.874628470067637e+00 -2.874678641007656e+00 -2.874727825164796e+00 -2.874776028005620e+00 -2.874823254939239e+00 + -2.874869512013286e+00 -2.874914805384953e+00 -2.874959141011137e+00 -2.875002524843012e+00 -2.875044963009132e+00 + -2.875086461553842e+00 -2.875127026007268e+00 -2.875166661990855e+00 -2.875205376005544e+00 -2.875243174521211e+00 + -2.875280063003956e+00 -2.875316046953741e+00 -2.875351133009737e+00 -2.875385327829893e+00 -2.875418637008044e+00 + -2.875451066029114e+00 -2.875482621006486e+00 -2.875513308222273e+00 -2.875543134005058e+00 -2.875572104616458e+00 + -2.875600226003760e+00 -2.875627504088381e+00 -2.875653945002586e+00 -2.875679554924722e+00 -2.875704340006628e+00 + -2.875728306365356e+00 -2.875751460005359e+00 -2.875773807024162e+00 -2.875795354004213e+00 -2.875816107441742e+00 + -2.875836073003188e+00 -2.875855256356105e+00 -2.875873664002281e+00 -2.875891302525273e+00 -2.875908178001488e+00 + -2.875924296429527e+00 -2.875939664003940e+00 -2.875954287022889e+00 -2.875968172003060e+00 -2.875981325374513e+00 + -2.875993753002293e+00 -2.876005460745149e+00 -2.876016455001635e+00 -2.876026742281703e+00 -2.876036329001085e+00 + -2.876045221511428e+00 -2.876053426002279e+00 -2.876060948682664e+00 -2.876067796001651e+00 -2.876073974394489e+00 + -2.876079490001126e+00 -2.876084348997735e+00 -2.876088558000703e+00 -2.876092123620084e+00 -2.876095052000378e+00 + -2.876097349275196e+00 -2.876099022000147e+00 -2.876100076780735e+00 -2.876100520000039e+00 -2.876100357977497e+00 + -2.876099597000405e+00 -2.876098243435337e+00 -2.876096303998139e+00 -2.876093785401991e+00 -2.876090694000126e+00 + -2.876087036076098e+00 -2.876082817994697e+00 -2.876078046153286e+00 -2.876072726998279e+00 -2.876066867041051e+00 + -2.876060473003754e+00 -2.876053551562065e+00 -2.876046108994973e+00 -2.876038151582050e+00 -2.876029686001908e+00 + -2.876020718975022e+00 -2.876011256990315e+00 -2.876001306494705e+00 -2.875990873998654e+00 -2.875979966015766e+00 + -2.875968589008655e+00 -2.875956749461299e+00 -2.875944453994101e+00 -2.875931709272467e+00 -2.875918522005370e+00 + -2.875904898821941e+00 -2.875890845988358e+00 -2.875876369796106e+00 -2.875861477000839e+00 -2.875846174460938e+00 + -2.875830468981534e+00 -2.875814367182402e+00 -2.875797874995170e+00 -2.875780998493851e+00 -2.875763745010153e+00 + -2.875746121853747e+00 -2.875728134988475e+00 -2.875709790337169e+00 -2.875691095004476e+00 -2.875672056151185e+00 + -2.875652679980860e+00 -2.875632972639220e+00 -2.875612940997824e+00 -2.875592591983200e+00 -2.875571932015899e+00 + -2.875550967463832e+00 -2.875529704990307e+00 -2.875508151305197e+00 -2.875486313009207e+00 -2.875464196688727e+00 + -2.875441808982035e+00 -2.875419156538716e+00 -2.875396246001703e+00 -2.875373083982446e+00 -2.875349676973115e+00 + -2.875326031456047e+00 -2.875302153993497e+00 -2.875278051224424e+00 -2.875253730014671e+00 -2.875229197164465e+00 + -2.875204458984698e+00 -2.875179521740897e+00 -2.875154392006447e+00 -2.875129076470253e+00 -2.875103581975416e+00 + -2.875077915323747e+00 -2.875052082997684e+00 -2.875026091410789e+00 -2.874999947020509e+00 -2.874973656330889e+00 + -2.874947225988491e+00 -2.874920662667701e+00 -2.874893973011697e+00 -2.874867163623783e+00 -2.874840240978976e+00 + -2.874813211559227e+00 -2.874786082002508e+00 -2.874758858958694e+00 -2.874731548969249e+00 -2.874704158521300e+00 + -2.874676693993052e+00 -2.874649161850167e+00 -2.874621569017096e+00 -2.874593922351292e+00 -2.874566227983435e+00 + -2.874538491996276e+00 -2.874510721007613e+00 -2.874482921761722e+00 -2.874455100973768e+00 -2.874427265275985e+00 + -2.874399420998023e+00 -2.874371574431975e+00 -2.874343732022288e+00 -2.874315900299783e+00 -2.874288085988434e+00 + -2.874260295776052e+00 -2.874232536012641e+00 -2.874204812974258e+00 -2.874177132978955e+00 -2.874149502426689e+00 + -2.874121928003048e+00 -2.874094416390038e+00 -2.874066973969692e+00 -2.874039607056358e+00 -2.874012321993617e+00 + -2.873985125156578e+00 -2.873958023017241e+00 -2.873931022092817e+00 -2.873904128984454e+00 -2.873877350227203e+00 + -2.873850692007775e+00 -2.873824160475146e+00 -2.873797761975665e+00 -2.873771502947487e+00 -2.873745389998629e+00 + -2.873719429664607e+00 -2.873693628021065e+00 -2.873667991196405e+00 -2.873642525989910e+00 -2.873617239207638e+00 + -2.873592137011854e+00 -2.873567225478465e+00 -2.873542510981722e+00 -2.873517999984164e+00 -2.873493699003122e+00 + -2.873469614539558e+00 -2.873445752974173e+00 -2.873422120664412e+00 -2.873398723994974e+00 -2.873375569341346e+00 + -2.873352663014937e+00 -2.873330011368907e+00 -2.873307620987516e+00 -2.873285498440290e+00 -2.873263650006746e+00 + -2.873242081977908e+00 -2.873220800980854e+00 -2.873199813610778e+00 -2.873179125999297e+00 -2.873158744269642e+00 + -2.873138674975094e+00 -2.873118924733721e+00 -2.873099499992696e+00 -2.873080407078925e+00 -2.873061652009151e+00 + -2.873043240951156e+00 -2.873025180987050e+00 -2.873007479104932e+00 -2.872990141002529e+00 -2.872973172348110e+00 + -2.872956579982463e+00 -2.872940370832477e+00 -2.872924550996914e+00 -2.872909126514257e+00 -2.872894104009989e+00 + -2.872879490127201e+00 -2.872865290992410e+00 -2.872851512733995e+00 -2.872838162004323e+00 -2.872825245427317e+00 + -2.872812768989124e+00 -2.872800738661925e+00 -2.872789160999820e+00 -2.872778042642130e+00 -2.872767389987160e+00 + -2.872757209355336e+00 -2.872747506996586e+00 -2.872738289140315e+00 -2.872729562004331e+00 -2.872721331833777e+00 + -2.872713604994726e+00 -2.872706387896571e+00 -2.872699687001068e+00 -2.872693508692679e+00 -2.872687858994343e+00 + -2.872682743943764e+00 -2.872678169999229e+00 -2.872674143639194e+00 -2.872670671002211e+00 -2.872667758252759e+00 + -2.872665411998920e+00 -2.872663638727966e+00 -2.872662444000314e+00 -2.872661833458480e+00 -2.872661814000242e+00 + -2.872662392564575e+00 -2.872663574999996e+00 -2.872665367034357e+00 -2.872667775003300e+00 -2.872670805307676e+00 + -2.872674464001362e+00 -2.872678757122995e+00 -2.872683690997219e+00 -2.872689271947241e+00 -2.872695506004511e+00 + -2.872702399218003e+00 -2.872709957998547e+00 -2.872718188690384e+00 -2.872727097009549e+00 -2.872736688669513e+00 + -2.872746970001709e+00 -2.872757947412680e+00 -2.872769626991446e+00 -2.872782014787135e+00 -2.872795117006809e+00 + -2.872808939808297e+00 -2.872823488994544e+00 -2.872838770359238e+00 -2.872854790013944e+00 -2.872871554154958e+00 + -2.872889068999627e+00 -2.872907340687168e+00 -2.872926375023218e+00 -2.872946177789640e+00 -2.872966755006795e+00 + -2.872988112738970e+00 -2.873010256987659e+00 -2.873033193743455e+00 -2.873056929016149e+00 -2.873081468798353e+00 + -2.873106818994782e+00 -2.873132985471494e+00 -2.873159974027786e+00 -2.873187790508094e+00 -2.873216441004140e+00 + -2.873245931584463e+00 -2.873276267977569e+00 -2.873307455856915e+00 -2.873339501015828e+00 -2.873372409342765e+00 + -2.873406186986854e+00 -2.873440840030674e+00 -2.873476374029945e+00 -2.873512794459630e+00 -2.873550106998518e+00 + -2.873588317466817e+00 -2.873627432046586e+00 -2.873667456808100e+00 -2.873708397012657e+00 -2.873750257967860e+00 + -2.873793045975522e+00 -2.873836767295967e+00 -2.873881427029366e+00 -2.873927030237608e+00 -2.873973582989610e+00 + -2.874021091436191e+00 -2.874069561048740e+00 -2.874118997257345e+00 -2.874169406006314e+00 -2.874220793186470e+00 + -2.874273163960479e+00 -2.874326523535612e+00 -2.874380878025728e+00 -2.874436233504353e+00 -2.874492594977105e+00 + -2.874549967456173e+00 -2.874608357047944e+00 -2.874667769870749e+00 -2.874728210996486e+00 -2.874789685444839e+00 + -2.874852199073056e+00 -2.874915757808161e+00 -2.874980367018717e+00 -2.875046031956011e+00 -2.875112757960702e+00 + -2.875180550448241e+00 -2.875249415043884e+00 -2.875319357389408e+00 -2.875390382982873e+00 -2.875462497200150e+00 + -2.875535705072081e+00 -2.875610011724477e+00 -2.875685423008027e+00 -2.875761944747628e+00 -2.875839581940104e+00 + -2.875918339524430e+00 -2.875998223036253e+00 -2.876079238083328e+00 -2.876161389965175e+00 -2.876244683897332e+00 + -2.876329125067640e+00 -2.876414718675390e+00 -2.876501469993362e+00 -2.876589384334920e+00 -2.876678467102276e+00 + -2.876768723646439e+00 -2.876860159024752e+00 -2.876952778311590e+00 -2.877046586943105e+00 -2.877141590285005e+00 + -2.877237793059432e+00 -2.877335200055582e+00 -2.877433816974432e+00 -2.877533649470098e+00 -2.877634702097487e+00 + -2.877736979404358e+00 -2.877840487009089e+00 -2.877945230580227e+00 -2.878051214916385e+00 -2.878158444703550e+00 + -2.878266925047163e+00 -2.878376661120778e+00 -2.878487657950954e+00 -2.878599920558564e+00 -2.878713454088738e+00 + -2.878828263638601e+00 -2.878944353988982e+00 -2.879061729871082e+00 -2.879180396133895e+00 -2.879300357745253e+00 + -2.879421620030550e+00 -2.879544188234639e+00 -2.879668066922659e+00 -2.879793260582870e+00 -2.879919774075741e+00 + -2.880047612428619e+00 -2.880176780964157e+00 -2.880307284823274e+00 -2.880439128124635e+00 -2.880572315044195e+00 + -2.880706851009318e+00 -2.880842741491739e+00 -2.880979990889281e+00 -2.881118603470176e+00 -2.881258584058220e+00 + -2.881399937594580e+00 -2.881542668934350e+00 -2.881686782880171e+00 -2.881832284110943e+00 -2.881979177270132e+00 + -2.882127466983199e+00 -2.882277157822698e+00 -2.882428254167564e+00 -2.882580760515876e+00 -2.882734682035907e+00 + -2.882890023809088e+00 -2.883046789899305e+00 -2.883204984344022e+00 -2.883364612092550e+00 -2.883525678164890e+00 + -2.883688186951939e+00 -2.883852142755886e+00 -2.884017550153203e+00 -2.884184413751485e+00 -2.884352738008543e+00 + -2.884522527349429e+00 -2.884693786217942e+00 -2.884866519029743e+00 -2.885040730069195e+00 -2.885216423722596e+00 + -2.885393604915286e+00 -2.885572278454246e+00 -2.885752448133968e+00 -2.885934117732660e+00 -2.886117291975880e+00 + -2.886301975695701e+00 -2.886488173202934e+00 -2.886675888645447e+00 -2.886865126040629e+00 -2.887055889528861e+00 + -2.887248183873006e+00 -2.887442013779875e+00 -2.887637383109605e+00 -2.887834295673936e+00 -2.888032755937675e+00 + -2.888232768417303e+00 -2.888434337182880e+00 -2.888637466267979e+00 -2.888842160006608e+00 -2.889048422705334e+00 + -2.889256258260521e+00 -2.889465670586525e+00 -2.889676664079871e+00 -2.889889243164732e+00 -2.890103411893701e+00 + -2.890319174230825e+00 -2.890536534157536e+00 -2.890755495690120e+00 -2.890976062966901e+00 -2.891198240133124e+00 + -2.891422031239666e+00 -2.891647440271526e+00 -2.891874471044534e+00 -2.892103127449178e+00 -2.892333413843735e+00 + -2.892565334531329e+00 -2.892798893126666e+00 -2.893034093211137e+00 -2.893270938921286e+00 -2.893509434394119e+00 + -2.893749583213363e+00 -2.893991388990754e+00 -2.894234856003367e+00 -2.894479988544211e+00 -2.894726790304690e+00 + -2.894975264880993e+00 -2.895225416090045e+00 -2.895477247800793e+00 -2.895730763869547e+00 -2.895985968110420e+00 + -2.896242864181383e+00 -2.896501455784724e+00 -2.896761746956156e+00 -2.897023741664482e+00 -2.897287443277443e+00 + -2.897552855132549e+00 -2.897819981047455e+00 -2.898088824960355e+00 -2.898359390811481e+00 -2.898631682423090e+00 + -2.898905703143506e+00 -2.899181456336644e+00 -2.899458945902694e+00 -2.899738175745144e+00 -2.900019149244370e+00 + -2.900301869748365e+00 -2.900586340998689e+00 -2.900872566741790e+00 -2.901160550350105e+00 -2.901450295205248e+00 + -2.901741805099525e+00 -2.902035083835090e+00 -2.902330134842785e+00 -2.902626961482952e+00 -2.902925567205262e+00 + -2.903225955501619e+00 -2.903528129943548e+00 -2.903832094083243e+00 -2.904137851315957e+00 -2.904445404943298e+00 + -2.904754758049239e+00 -2.905065913908475e+00 -2.905378876776237e+00 -2.905693650730528e+00 -2.906010238159916e+00 + -2.906328641477237e+00 -2.906648864881840e+00 -2.906970912612057e+00 -2.907294787275635e+00 -2.907620491421319e+00 + -2.907948028992455e+00 -2.908277404008211e+00 -2.908608619396449e+00 -2.908941677961907e+00 -2.909276583108139e+00 + -2.909613338320582e+00 -2.909951946813384e+00 -2.910292411733319e+00 -2.910634736228945e+00 -2.910978923497479e+00 + -2.911324976928991e+00 -2.911672899876866e+00 -2.912022695354926e+00 -2.912374366346152e+00 -2.912727916049746e+00 + -2.913083347735332e+00 -2.913440664738005e+00 -2.913799870293631e+00 -2.914160967175702e+00 -2.914523958205600e+00 + -2.914888846858668e+00 -2.915255636613397e+00 -2.915624330306910e+00 -2.915994930711883e+00 -2.916367440984558e+00 + -2.916741864289805e+00 -2.917118203443422e+00 -2.917496461287171e+00 -2.917876641115726e+00 -2.918258746264796e+00 + -2.918642779781321e+00 -2.919028744569610e+00 -2.919416643252220e+00 -2.919806478556714e+00 -2.920198253912409e+00 + -2.920591972698769e+00 -2.920987637394092e+00 -2.921385250442034e+00 -2.921784815048848e+00 -2.922186334507697e+00 + -2.922589811696789e+00 -2.922995249368979e+00 -2.923402650190686e+00 -2.923812016928122e+00 -2.924223352833133e+00 + -2.924636661116357e+00 -2.925051944337972e+00 -2.925469204994078e+00 -2.925888445974902e+00 -2.926309670222330e+00 + -2.926732880490753e+00 -2.927158079512877e+00 -2.927585270122142e+00 -2.928014455203420e+00 -2.928445637746579e+00 + -2.928878820641719e+00 -2.929314006274898e+00 -2.929751197043434e+00 -2.930190395893735e+00 -2.930631605816839e+00 + -2.931074829433217e+00 -2.931520069294359e+00 -2.931967328046430e+00 -2.932416608452995e+00 -2.932867913652596e+00 + -2.933321246608101e+00 -2.933776609204709e+00 -2.934234003435805e+00 -2.934693432805196e+00 -2.935154900804807e+00 + -2.935618409368617e+00 -2.936083960365691e+00 -2.936551556963400e+00 -2.937021202354904e+00 -2.937492898538196e+00 + -2.937966647468766e+00 -2.938442452127255e+00 -2.938920315642269e+00 -2.939400240709141e+00 -2.939882229846171e+00 + -2.940366285296803e+00 -2.940852409365155e+00 -2.941340604872910e+00 -2.941830874578781e+00 -2.942323220472084e+00 + -2.942817644603974e+00 -2.943314150042391e+00 -2.943812739919231e+00 -2.944313416605433e+00 -2.944816182292809e+00 + -2.945321039217627e+00 -2.945827989752984e+00 -2.946337036774817e+00 -2.946848183049044e+00 -2.947361430398659e+00 + -2.947876780695535e+00 -2.948394236949976e+00 -2.948913802216184e+00 -2.949435478585527e+00 -2.949959268045502e+00 + -2.950485173130951e+00 -2.951013196489051e+00 -2.951543340668991e+00 -2.952075608036040e+00 -2.952610000317780e+00 + -2.953146519451356e+00 -2.953685168849877e+00 -2.954225951787981e+00 -2.954768869510503e+00 -2.955313923227115e+00 + -2.955861116036636e+00 -2.956410451196468e+00 -2.956961930709160e+00 -2.957515556348660e+00 -2.958071330229310e+00 + -2.958629254704319e+00 -2.959189332741965e+00 -2.959751567143614e+00 -2.960315959427935e+00 -2.960882511105170e+00 + -2.961451224934558e+00 -2.962022103774683e+00 -2.962595149632548e+00 -2.963170364371659e+00 -2.963747750133120e+00 + -2.964327309260061e+00 -2.964909044626116e+00 -2.965492958892178e+00 -2.966079053337689e+00 -2.966667329311879e+00 + -2.967257789824588e+00 -2.967850437973655e+00 -2.968445275548303e+00 -2.969042304161408e+00 -2.969641526029084e+00 + -2.970242943489398e+00 -2.970846558764995e+00 -2.971452374012471e+00 -2.972060391239641e+00 -2.972670612566008e+00 + -2.973283040706606e+00 -2.973897678221620e+00 -2.974514526456296e+00 -2.975133586785449e+00 -2.975754861917081e+00 + -2.976378354633252e+00 -2.977004066679083e+00 -2.977631999719257e+00 -2.978262156133669e+00 -2.978894538388579e+00 + -2.979529148580497e+00 -2.980165988659094e+00 -2.980805060356407e+00 -2.981446365534977e+00 -2.982089906796993e+00 + -2.982735686662750e+00 -2.983383706585328e+00 -2.984033968085205e+00 -2.984686474019655e+00 -2.985341227187940e+00 + -2.985998228820469e+00 -2.986657480057624e+00 -2.987318983248517e+00 -2.987982740990944e+00 -2.988648755668708e+00 + -2.989317029403636e+00 -2.989987563483614e+00 -2.990660359350691e+00 -2.991335419897486e+00 -2.992012747963469e+00 + -2.992692344724977e+00 -2.993374211287029e+00 -2.994058350132512e+00 -2.994744763907397e+00 -2.995433454532118e+00 + -2.996124423756546e+00 -2.996817673373822e+00 -2.997513205283444e+00 -2.998211021767050e+00 -2.998911125033880e+00 + -2.999613516621449e+00 -3.000318198120732e+00 -3.001025172008281e+00 -3.001734440748973e+00 -3.002446005875424e+00 + -3.003159868783688e+00 -3.003876031255844e+00 -3.004594495323234e+00 -3.005315263628241e+00 -3.006038338638268e+00 + -3.006763721509772e+00 -3.007491413411925e+00 -3.008221416875716e+00 -3.008953734497098e+00 -3.009688367770095e+00 + -3.010425318036306e+00 -3.011164587129571e+00 -3.011906177113799e+00 -3.012650090480955e+00 -3.013396329533748e+00 + -3.014144895389836e+00 -3.014895789237767e+00 -3.015649013734712e+00 -3.016404571515447e+00 -3.017162463656545e+00 + -3.017922691248400e+00 -3.018685256994897e+00 -3.019450163571901e+00 -3.020217411929727e+00 -3.020987002987051e+00 + -3.021758939261538e+00 -3.022533223477289e+00 -3.023309857585168e+00 -3.024088843221124e+00 -3.024870181534668e+00 + -3.025653873871900e+00 -3.026439922851719e+00 -3.027228331077071e+00 -3.028019099814318e+00 -3.028812230192102e+00 + -3.029607724124773e+00 -3.030405583764245e+00 -3.031205811426982e+00 -3.032008409239547e+00 -3.032813378404362e+00 + -3.033620720145768e+00 -3.034430436699938e+00 -3.035242530366928e+00 -3.036057002690514e+00 -3.036873855182042e+00 + -3.037693089979441e+00 -3.038514709166424e+00 -3.039338713983260e+00 -3.040165105664532e+00 -3.040993886265523e+00 + -3.041825058080565e+00 -3.042658623539453e+00 -3.043494584770202e+00 -3.044332942558215e+00 -3.045173697755793e+00 + -3.046016852825442e+00 -3.046862410359265e+00 -3.047710371857544e+00 -3.048560738605269e+00 -3.049413512118055e+00 + -3.050268694173960e+00 -3.051126287370169e+00 -3.051986294136892e+00 -3.052848715417321e+00 -3.053713552140092e+00 + -3.054580806662679e+00 -3.055450481419417e+00 -3.056322577723267e+00 -3.057197096839233e+00 -3.058074040961857e+00 + -3.058953412280709e+00 -3.059835212035924e+00 -3.060719441405425e+00 -3.061606102267731e+00 -3.062495196777212e+00 + -3.063386727491054e+00 -3.064280696619269e+00 -3.065177104580330e+00 -3.066075951959016e+00 -3.066977241796834e+00 + -3.067880977177860e+00 -3.068787158899685e+00 -3.069695787543252e+00 -3.070606865109353e+00 -3.071520393938529e+00 + -3.072436376310475e+00 -3.073354814200677e+00 -3.074275708428639e+00 -3.075199059975246e+00 -3.076124871622891e+00 + -3.077053146054635e+00 -3.077983883754724e+00 -3.078917085313194e+00 -3.079852753942089e+00 -3.080790892784741e+00 + -3.081731502087634e+00 -3.082674582011150e+00 -3.083620135268097e+00 -3.084568164866139e+00 -3.085518672439932e+00 + -3.086471659270948e+00 -3.087427126600947e+00 -3.088385075921834e+00 -3.089345509765843e+00 -3.090308430518810e+00 + -3.091273838940665e+00 -3.092241735746584e+00 -3.093212123098609e+00 -3.094185003484481e+00 -3.095160379247863e+00 + -3.096138252358965e+00 -3.097118623438258e+00 -3.098101493262150e+00 -3.099086864580523e+00 -3.100074740150514e+00 + -3.101065120784818e+00 -3.102058007230942e+00 -3.103053401920080e+00 -3.104051307417155e+00 -3.105051725138318e+00 + -3.106054656274756e+00 -3.107060102266563e+00 -3.108068064811119e+00 -3.109078546386035e+00 -3.110091549326776e+00 + -3.111107074619999e+00 -3.112125123273996e+00 -3.113145697732417e+00 -3.114168800386244e+00 -3.115194431980418e+00 + -3.116222593318652e+00 -3.117253287085768e+00 -3.118286516039464e+00 -3.119322281347848e+00 -3.120360583948459e+00 + -3.121401425446115e+00 -3.122444807777008e+00 -3.123490733535526e+00 -3.124539205035892e+00 -3.125590222813487e+00 + -3.126643787500575e+00 -3.127699901895779e+00 -3.128758568841378e+00 -3.129819789187914e+00 -3.130883563634097e+00 + -3.131949894263071e+00 -3.133018783446947e+00 -3.134090233329311e+00 -3.135164245759380e+00 -3.136240821637432e+00 + -3.137319962039862e+00 -3.138401669696502e+00 -3.139485947209752e+00 -3.140572795018887e+00 -3.141662213641400e+00 + -3.142754206070774e+00 -3.143848775370422e+00 -3.144945922407469e+00 -3.146045647810740e+00 -3.147147953452156e+00 + -3.148252841552866e+00 -3.149360314487843e+00 -3.150470374336312e+00 -3.151583021840677e+00 -3.152698257836541e+00 + -3.153816084869129e+00 -3.154936505573740e+00 -3.156059521236365e+00 -3.157185132934072e+00 -3.158313342257567e+00 + -3.159444151127381e+00 -3.160577562269707e+00 -3.161713578058511e+00 -3.162852198653188e+00 -3.163993424406347e+00 + -3.165137258658042e+00 -3.166283704751602e+00 -3.167432763056018e+00 -3.168584433853514e+00 -3.169738720053572e+00 + -3.170895624664928e+00 -3.172055148466089e+00 -3.173217292044841e+00 -3.174382057456326e+00 -3.175549447119023e+00 + -3.176719463437418e+00 -3.177892108465135e+00 -3.179067382866334e+00 -3.180245287430775e+00 -3.181425824840074e+00 + -3.182608997807819e+00 -3.183794807283624e+00 -3.184983254083125e+00 -3.186174340249998e+00 -3.187368068149750e+00 + -3.188564440207163e+00 -3.189763458501066e+00 -3.190965123667219e+00 -3.192169436468204e+00 -3.193376399616980e+00 + -3.194586015855556e+00 -3.195798286091764e+00 -3.197013211234878e+00 -3.198230794034108e+00 -3.199451037209393e+00 + -3.200673941523666e+00 -3.201899507599942e+00 -3.203127737458575e+00 -3.204358633517069e+00 -3.205592198384193e+00 + -3.206828434306502e+00 -3.208067341890413e+00 -3.209308921829809e+00 -3.210553176808560e+00 -3.211800109598040e+00 + -3.213049721329648e+00 -3.214302012941719e+00 -3.215556986240311e+00 -3.216814643392485e+00 -3.218074987141617e+00 + -3.219338019837523e+00 -3.220603741679474e+00 -3.221872153094758e+00 -3.223143257573258e+00 -3.224417058543514e+00 + -3.225693556126080e+00 -3.226972750453261e+00 -3.228254645012327e+00 -3.229539243310538e+00 -3.230826545580160e+00 + -3.232116551831102e+00 -3.233409264458852e+00 -3.234704686394765e+00 -3.236002820328103e+00 -3.237303668413965e+00 + -3.238607230912866e+00 -3.239913508296335e+00 -3.241222503774527e+00 -3.242534220589764e+00 -3.243848659374397e+00 + -3.245165820540432e+00 -3.246485706228452e+00 -3.247808319087641e+00 -3.249133662073000e+00 -3.250461737608715e+00 + -3.251792545689908e+00 -3.253126086515263e+00 -3.254462363526813e+00 -3.255801380232294e+00 -3.257143137158927e+00 + -3.258487634736825e+00 -3.259834875988172e+00 -3.261184864013611e+00 -3.262537599635538e+00 -3.263893083453904e+00 + -3.265251317457108e+00 -3.266612304094287e+00 -3.267976046269084e+00 -3.269342546452898e+00 -3.270711804933652e+00 + -3.272083822201368e+00 -3.273458601737915e+00 -3.274836147008249e+00 -3.276216458417835e+00 -3.277599536106921e+00 + -3.278985382214368e+00 -3.280373999474050e+00 -3.281765391001240e+00 -3.283159559381294e+00 -3.284556504698475e+00 + -3.285956227223949e+00 -3.287358730477579e+00 -3.288764018003004e+00 -3.290172090190266e+00 -3.291582947391597e+00 + -3.292996592961586e+00 -3.294413030263101e+00 -3.295832259689772e+00 -3.297254281509102e+00 -3.298679098453292e+00 + -3.300106713632883e+00 -3.301537129207062e+00 -3.302970346938195e+00 -3.304406367952729e+00 -3.305845193592728e+00 + -3.307286826698660e+00 -3.308731270022015e+00 -3.310178524459931e+00 -3.311628590794006e+00 -3.313081471198005e+00 + -3.314537168271639e+00 -3.315995684926260e+00 -3.317457023622331e+00 -3.318921184705128e+00 -3.320388168757214e+00 + -3.321857979425488e+00 -3.323330620242623e+00 -3.324806091220061e+00 -3.326284392457951e+00 -3.327765527932510e+00 + -3.329249501635255e+00 -3.330736313742837e+00 -3.332225964151081e+00 -3.333718455447356e+00 -3.335213790816533e+00 + -3.336711973141963e+00 -3.338213004741188e+00 -3.339716885970061e+00 -3.341223617428788e+00 -3.342733202656698e+00 + -3.344245645175923e+00 -3.345760945500658e+00 -3.347279103963591e+00 -3.348800123179309e+00 -3.350324006237700e+00 + -3.351850755847976e+00 -3.353380374190363e+00 -3.354912861709826e+00 -3.356448219173252e+00 -3.357986450370467e+00 + -3.359527558984502e+00 -3.361071545248283e+00 -3.362618409368982e+00 -3.364168154900880e+00 -3.365720785489059e+00 + -3.367276301794712e+00 -3.368834704260551e+00 -3.370395995439248e+00 -3.371960178388195e+00 -3.373527256073704e+00 + -3.375097230883950e+00 -3.376670102985606e+00 -3.378245872877927e+00 -3.379824544611959e+00 -3.381406122149057e+00 + -3.382990605539988e+00 -3.384577994855671e+00 -3.386168294158221e+00 -3.387761507524905e+00 -3.389357635102426e+00 + -3.390956676825633e+00 -3.392558635712520e+00 -3.394163515324364e+00 -3.395771318312439e+00 -3.397382046745834e+00 + -3.398995701274896e+00 -3.400612282828281e+00 -3.402231794866633e+00 -3.403854240867662e+00 -3.405479621845378e+00 + -3.407107938586081e+00 -3.408739193428916e+00 -3.410373389185216e+00 -3.412010529002203e+00 -3.413650615518111e+00 + -3.415293648999326e+00 -3.416939629995896e+00 -3.418588562564371e+00 -3.420240450691449e+00 -3.421895294577897e+00 + -3.423553094414080e+00 -3.425213854134680e+00 -3.426877577792018e+00 -3.428544266164663e+00 -3.430213919689846e+00 + -3.431886540713168e+00 -3.433562132145608e+00 -3.435240697251321e+00 -3.436922238808692e+00 -3.438606757299870e+00 + -3.440294253397158e+00 -3.441984730829699e+00 -3.443678193368453e+00 -3.445374641894819e+00 -3.447074077051543e+00 + -3.448776501416308e+00 -3.450481918039497e+00 -3.452190329927366e+00 -3.453901739641781e+00 -3.455616148011183e+00 + -3.457333556082980e+00 -3.459053967513855e+00 -3.460777385853499e+00 -3.462503811614361e+00 -3.464233245386620e+00 + -3.465965691108627e+00 -3.467701152771073e+00 -3.469439631225878e+00 -3.471181127031554e+00 -3.472925642711720e+00 + -3.474673181335264e+00 -3.476423746187027e+00 -3.478177340029919e+00 -3.479933963323171e+00 -3.481693616824597e+00 + -3.483456304790008e+00 -3.485222031388338e+00 -3.486990796943019e+00 -3.488762601570069e+00 -3.490537448401365e+00 + -3.492315341151373e+00 -3.494096282849095e+00 -3.495880275915030e+00 -3.497667321021135e+00 -3.499457419173128e+00 + -3.501250574460328e+00 -3.503046790838973e+00 -3.504846068649357e+00 -3.506648408298966e+00 -3.508453814079994e+00 + -3.510262290280344e+00 -3.512073837286068e+00 -3.513888455301771e+00 -3.515706147708129e+00 -3.517526918395819e+00 + -3.519350770119465e+00 -3.521177705073145e+00 -3.523007724344773e+00 -3.524840829328240e+00 -3.526677023747485e+00 + -3.528516311267811e+00 -3.530358692989965e+00 -3.532204169811781e+00 -3.534052744384031e+00 -3.535904419874647e+00 + -3.537759199767289e+00 -3.539617087002065e+00 -3.541478082029144e+00 -3.543342185630307e+00 -3.545209402403708e+00 + -3.547079736777425e+00 -3.548953188682862e+00 -3.550829758143615e+00 -3.552709450048714e+00 -3.554592269345012e+00 + -3.556478216345227e+00 -3.558367291032073e+00 -3.560259496702344e+00 -3.562154837300620e+00 -3.564053316048536e+00 + -3.565954935512961e+00 -3.567859696364639e+00 -3.569767599635964e+00 -3.571678649702049e+00 -3.573592850895430e+00 + -3.575510204035641e+00 -3.577430709619281e+00 -3.579354370364244e+00 -3.581281189700099e+00 -3.583211171681835e+00 + -3.585144319721653e+00 -3.587080634035166e+00 -3.589020115063184e+00 -3.590962767343901e+00 -3.592908595415016e+00 + -3.594857599714854e+00 -3.596809780701911e+00 -3.598765143014713e+00 -3.600723691343250e+00 -3.602685426403352e+00 + -3.604650348553174e+00 -3.606618460694309e+00 -3.608589766473437e+00 -3.610564269974137e+00 -3.612541974573128e+00 + -3.614522880382737e+00 -3.616506987803558e+00 -3.618494301653613e+00 -3.620484826823921e+00 -3.622478564080036e+00 + -3.624475513850586e+00 -3.626475679341938e+00 -3.628479064392689e+00 -3.630485672592619e+00 -3.632495506905407e+00 + -3.634508568039156e+00 -3.636524857004877e+00 -3.638544378280809e+00 -3.640567136287224e+00 -3.642593131745308e+00 + -3.644622365423449e+00 -3.646654841977913e+00 -3.648690566065893e+00 -3.650729538460438e+00 -3.652771759626902e+00 + -3.654817232683972e+00 -3.656865961450936e+00 -3.658917949896158e+00 -3.660973201344661e+00 -3.663031716399031e+00 + -3.665093495929850e+00 -3.667158544602091e+00 -3.669226867066577e+00 -3.671298464123134e+00 -3.673373336353373e+00 + -3.675451487317045e+00 -3.677532921173144e+00 -3.679617641499514e+00 -3.681705651197185e+00 -3.683796951041065e+00 + -3.685891542158701e+00 -3.687989429214330e+00 -3.690090616811484e+00 -3.692195105774196e+00 -3.694302896934788e+00 + -3.696413994938233e+00 -3.698528404463948e+00 -3.700646126516483e+00 -3.702767161822413e+00 -3.704891513671268e+00 + -3.707019186005269e+00 -3.709150182814482e+00 -3.711284507419287e+00 -3.713422160413482e+00 -3.715563142750310e+00 + -3.717707459547388e+00 -3.719855115839397e+00 -3.722006112164920e+00 -3.724160448777861e+00 -3.726318129289493e+00 + -3.728479158099316e+00 -3.730643539402395e+00 -3.732811276589775e+00 -3.734982370040845e+00 -3.737156820495128e+00 + -3.739334633144358e+00 -3.741515813112657e+00 -3.743700360801490e+00 -3.745888276640612e+00 -3.748079565895588e+00 + -3.750274233918474e+00 -3.752472281571475e+00 -3.754673709335501e+00 -3.756878520656135e+00 -3.759086719721971e+00 + -3.761298310728990e+00 -3.763513297133539e+00 -3.765731679426046e+00 -3.767953458457793e+00 -3.770178639489403e+00 + -3.772407227784000e+00 -3.774639224205367e+00 -3.776874629489326e+00 -3.779113448259203e+00 -3.781355685279774e+00 + -3.783601341994148e+00 -3.785850419525435e+00 -3.788102921038436e+00 -3.790358850378410e+00 -3.792618212070778e+00 + -3.794881010002580e+00 -3.797147244827153e+00 -3.799416917428862e+00 -3.801690032849888e+00 -3.803966596190487e+00 + -3.806246608625402e+00 -3.808530070983860e+00 -3.810816986638503e+00 -3.813107359693981e+00 -3.815401194639556e+00 + -3.817698495297397e+00 -3.819999262436677e+00 -3.822303497093916e+00 -3.824611204428034e+00 -3.826922389548483e+00 + -3.829237053244454e+00 -3.831555196353405e+00 -3.833876824226091e+00 -3.836201942201953e+00 -3.838530551061888e+00 + -3.840862651326505e+00 -3.843198247033778e+00 -3.845537342919513e+00 -3.847879942993476e+00 -3.850226050562932e+00 + -3.852575666851148e+00 -3.854928793361406e+00 -3.857285434801036e+00 -3.859645595950435e+00 -3.862009278678248e+00 + -3.864376484523473e+00 -3.866747216618300e+00 -3.869121478726629e+00 -3.871499275546047e+00 -3.873880611182955e+00 + -3.876265486445322e+00 -3.878653902389424e+00 -3.881045864363169e+00 -3.883441377687285e+00 -3.885840443282151e+00 + -3.888243062046155e+00 -3.890649239190073e+00 -3.893058980047241e+00 -3.895472286128841e+00 -3.897889158595383e+00 + -3.900309601026809e+00 -3.902733617656517e+00 -3.905161212912323e+00 -3.907592390603840e+00 -3.910027151873432e+00 + -3.912465498159137e+00 -3.914907434748928e+00 -3.917352966879188e+00 -3.919802095729995e+00 -3.922254822259626e+00 + -3.924711150595445e+00 -3.927171085542605e+00 -3.929634631448325e+00 -3.932101791843537e+00 -3.934572567451927e+00 + -3.937046959532740e+00 -3.939524974294695e+00 -3.942006617767883e+00 -3.944491890318428e+00 -3.946980792233828e+00 + -3.949473329151056e+00 -3.951969506957779e+00 -3.954469327195002e+00 -3.956972790971958e+00 -3.959479902017460e+00 + -3.961990664762499e+00 -3.964505083827194e+00 -3.967023163167552e+00 -3.969544903893966e+00 -3.972070307479498e+00 + -3.974599379693463e+00 -3.977132126179292e+00 -3.979668547780628e+00 -3.982208645099321e+00 -3.984752422569858e+00 + -3.987299885436030e+00 -3.989851038346246e+00 -3.992405885069993e+00 -3.994964426456437e+00 -3.997526663815754e+00 + -4.000092603222488e+00 -4.002662250581340e+00 -4.005235606353252e+00 -4.007812671084819e+00 -4.010393451108941e+00 + -4.012977952843547e+00 -4.015566177260363e+00 -4.018158124897606e+00 -4.020753800005660e+00 -4.023353207686703e+00 + -4.025956352737950e+00 -4.028563239140089e+00 -4.031173867912699e+00 -4.033788240453579e+00 -4.036406362634527e+00 + -4.039028240314873e+00 -4.041653874830120e+00 -4.044283267179555e+00 -4.046916421541453e+00 -4.049553342894448e+00 + -4.052194036239657e+00 -4.054838505774454e+00 -4.057486752458788e+00 -4.060138777601743e+00 -4.062794587146426e+00 + -4.065454187011838e+00 -4.068117578386588e+00 -4.070784762448621e+00 -4.073455745063631e+00 -4.076130532171974e+00 + -4.078809125324914e+00 -4.081491525652789e+00 -4.084177736991329e+00 -4.086867764089578e+00 -4.089561612644448e+00 + -4.092259287473573e+00 -4.094960788929582e+00 -4.097666117736884e+00 -4.100375280572002e+00 -4.103088284211306e+00 + -4.105805129878449e+00 -4.108525818267906e+00 -4.111250353510137e+00 -4.113978740671802e+00 -4.116710985128399e+00 + -4.119447091422845e+00 -4.122187060458915e+00 -4.124930893522407e+00 -4.127678597066370e+00 -4.130430177441071e+00 + -4.133185635418395e+00 -4.135944971791250e+00 -4.138708193015015e+00 -4.141475305696859e+00 -4.144246311388639e+00 + -4.147021211130915e+00 -4.149800008974389e+00 -4.152582709893380e+00 -4.155369319546537e+00 -4.158159842709882e+00 + -4.160954279944561e+00 -4.163752632239020e+00 -4.166554906505763e+00 -4.169361109687737e+00 -4.172171242925584e+00 + -4.174985306927709e+00 -4.177803306475812e+00 -4.180625247195196e+00 -4.183451134012302e+00 -4.186280970992621e+00 + -4.189114759456745e+00 -4.191952501240072e+00 -4.194794202982180e+00 -4.197639871116617e+00 -4.200489506448629e+00 + -4.203343109834506e+00 -4.206200687962978e+00 -4.209062247657938e+00 -4.211927790451525e+00 -4.214797317400862e+00 + -4.217670832954751e+00 -4.220548342457539e+00 -4.223429851444060e+00 -4.226315364591702e+00 -4.229204882957573e+00 + -4.232098408004153e+00 -4.234995946435681e+00 -4.237897504949240e+00 -4.240803084971501e+00 -4.243712687544032e+00 + -4.246626317438374e+00 -4.249543980343883e+00 -4.252465681891192e+00 -4.255391426705907e+00 -4.258321215452209e+00 + -4.261255049361277e+00 -4.264192935893713e+00 -4.267134882389568e+00 -4.270080889477248e+00 -4.273030957691918e+00 + -4.275985093907401e+00 -4.278943305249538e+00 -4.281905593513557e+00 -4.284871959946388e+00 -4.287842408932329e+00 + -4.290816945777364e+00 -4.293795576336856e+00 -4.296778305653331e+00 -4.299765134968560e+00 -4.302756065899131e+00 + -4.305751105361620e+00 -4.308750260118541e+00 -4.311753531016159e+00 -4.314760919008608e+00 -4.317772431397722e+00 + -4.320788075591533e+00 -4.323807853075197e+00 -4.326831764792573e+00 -4.329859815445223e+00 -4.332892010759197e+00 + -4.335928356800809e+00 -4.338968858700405e+00 -4.342013517504197e+00 -4.345062334602749e+00 -4.348115316848165e+00 + -4.351172471198577e+00 -4.354233799574710e+00 -4.357299303495111e+00 -4.360368987907023e+00 -4.363442858590077e+00 + -4.366520921224746e+00 -4.369603180592436e+00 -4.372689637977453e+00 -4.375780295145305e+00 -4.378875159283436e+00 + -4.381974237486932e+00 -4.385077531059527e+00 -4.388185041309383e+00 -4.391296775353732e+00 -4.394412740393244e+00 + -4.397532938153312e+00 -4.400657369887305e+00 -4.403786040435705e+00 -4.406918955633090e+00 -4.410056121703311e+00 + -4.413197543940346e+00 -4.416343223529426e+00 -4.419493162052248e+00 -4.422647366785128e+00 -4.425805845047289e+00 + -4.428968598634965e+00 -4.432135628892382e+00 -4.435306940878729e+00 -4.438482540596634e+00 -4.441662434107552e+00 + -4.444846626509031e+00 -4.448035118984182e+00 -4.451227913265940e+00 -4.454425017200977e+00 -4.457626438485681e+00 + -4.460832178101560e+00 -4.464042236947444e+00 -4.467256622306292e+00 -4.470475341701105e+00 -4.473698397230936e+00 + -4.476925790483307e+00 -4.480157526423565e+00 -4.483393610985775e+00 -4.486634050601043e+00 -4.489878850742320e+00 + -4.493128012552872e+00 -4.496381537630165e+00 -4.499639433718156e+00 -4.502901708553144e+00 -4.506168363694287e+00 + -4.509439400268067e+00 -4.512714823847340e+00 -4.515994641019672e+00 -4.519278857985080e+00 -4.522567479881829e+00 + -4.525860507988668e+00 -4.529157944122721e+00 -4.532459796114085e+00 -4.535766071688615e+00 -4.539076772142213e+00 + -4.542391898765175e+00 -4.545711459255270e+00 -4.549035461446213e+00 -4.552363907308053e+00 -4.555696798263391e+00 + -4.559034139408705e+00 -4.562375936904542e+00 -4.565722197493832e+00 -4.569072926948550e+00 -4.572428126574475e+00 + -4.575787798129616e+00 -4.579151949647104e+00 -4.582520589075836e+00 -4.585893717752653e+00 -4.589271336639746e+00 + -4.592653451812744e+00 -4.596040070428725e+00 -4.599431198857142e+00 -4.602826842289216e+00 -4.606227001990830e+00 + -4.609631679831751e+00 -4.613040884022596e+00 -4.616454622677202e+00 -4.619872897181441e+00 -4.623295708819967e+00 + -4.626723065200532e+00 -4.630154974192006e+00 -4.633591438384649e+00 -4.637032459790966e+00 -4.640478043391029e+00 + -4.643928195196958e+00 -4.647382922381489e+00 -4.650842231139545e+00 -4.654306122594169e+00 -4.657774598295235e+00 + -4.661247666571815e+00 -4.664725335805659e+00 -4.668207607810025e+00 -4.671694483876048e+00 -4.675185969774820e+00 + -4.678682072408495e+00 -4.682182798723523e+00 -4.685688154522786e+00 -4.689198140990583e+00 -4.692712759891060e+00 + -4.696232019926335e+00 -4.699755929666950e+00 -4.703284490219185e+00 -4.706817702626076e+00 -4.710355575141943e+00 + -4.713898116290367e+00 -4.717445328460708e+00 -4.720997213393779e+00 -4.724553776370427e+00 -4.728115023824750e+00 + -4.731680963263822e+00 -4.735251601139764e+00 -4.738826938611875e+00 -4.742406977241646e+00 -4.745991725492132e+00 + -4.749581191958943e+00 -4.753175378866366e+00 -4.756774287871428e+00 -4.760377924733439e+00 -4.763986296289299e+00 + -4.767599409584012e+00 -4.771217270615820e+00 -4.774839880987831e+00 -4.778467242836293e+00 -4.782099364825118e+00 + -4.785736255481164e+00 -4.789377916255392e+00 -4.793024348603915e+00 -4.796675561079348e+00 -4.800331562360717e+00 + -4.803992354536202e+00 -4.807657939173200e+00 -4.811328322346788e+00 -4.815003511262576e+00 -4.818683513140625e+00 + -4.822368334073276e+00 -4.826057975627521e+00 -4.829752439872078e+00 -4.833451735407881e+00 -4.837155870922971e+00 + -4.840864848921632e+00 -4.844578671297884e+00 -4.848297343688468e+00 -4.852020872870312e+00 -4.855749266438375e+00 + -4.859482530948563e+00 -4.863220667982479e+00 -4.866963679596293e+00 -4.870711574718753e+00 -4.874464362148352e+00 + -4.878222043289993e+00 -4.881984619584831e+00 -4.885752100012597e+00 -4.889524493673498e+00 -4.893301802611106e+00 + -4.897084028340568e+00 -4.900871177319985e+00 -4.904663257144151e+00 -4.908460275011687e+00 -4.912262236942902e+00 + -4.916069144641015e+00 -4.919881000415621e+00 -4.923697813318887e+00 -4.927519592402767e+00 -4.931346339975771e+00 + -4.935178057730553e+00 -4.939014751639765e+00 -4.942856428895341e+00 -4.946703097286389e+00 -4.950554763469543e+00 + -4.954411428974413e+00 -4.958273095882141e+00 -4.962139773607051e+00 -4.966011471374763e+00 -4.969888190322918e+00 + -4.973769931656962e+00 -4.977656704941523e+00 -4.981548519919207e+00 -4.985445378685372e+00 -4.989347282670139e+00 + -4.993254238289898e+00 -4.997166253181426e+00 -5.001083334876794e+00 -5.005005489750602e+00 -5.008932719652265e+00 + -5.012865027026571e+00 -5.016802421224969e+00 -5.020744911403345e+00 -5.024692499028711e+00 -5.028645185619313e+00 + -5.032602980587180e+00 -5.036565893470627e+00 -5.040533926419334e+00 -5.044507081015939e+00 -5.048485363963517e+00 + -5.052468783200935e+00 -5.056457346489804e+00 -5.060451060330298e+00 -5.064449926354071e+00 -5.068453946757710e+00 + -5.072463130865962e+00 -5.076477488052552e+00 -5.080497020758939e+00 -5.084521730904982e+00 -5.088551625256381e+00 + -5.092586711696772e+00 -5.096626997735727e+00 -5.100672489712744e+00 -5.104723189661156e+00 -5.108779100266077e+00 + -5.112840231125939e+00 -5.116906591587866e+00 -5.120978183080382e+00 -5.125055007124604e+00 -5.129137073530554e+00 + -5.133224392250169e+00 -5.137316965514153e+00 -5.141414794882011e+00 -5.145517886949661e+00 -5.149626249667421e+00 + -5.153739891366810e+00 -5.157858819095347e+00 -5.161983034383363e+00 -5.166112539324860e+00 -5.170247343785729e+00 + -5.174387457616170e+00 -5.178532882831751e+00 -5.182683620936045e+00 -5.186839679219287e+00 -5.191001066208124e+00 + -5.195167789588259e+00 -5.199339855740569e+00 -5.203517266667578e+00 -5.207700025095241e+00 -5.211888141021600e+00 + -5.216081624199723e+00 -5.220280476130696e+00 -5.224484698310884e+00 -5.228694300469721e+00 -5.232909292611727e+00 + -5.237129677608738e+00 -5.241355457600706e+00 -5.245586638932716e+00 -5.249823229255573e+00 -5.254065237237846e+00 + -5.258312670369801e+00 -5.262565530410686e+00 -5.266823819583928e+00 -5.271087547700648e+00 -5.275356724632263e+00 + -5.279631352903723e+00 -5.283911434448228e+00 -5.288196976178466e+00 -5.292487986327965e+00 -5.296784473434150e+00 + -5.301086444698075e+00 -5.305393901671405e+00 -5.309706846569482e+00 -5.314025289911748e+00 -5.318349242027271e+00 + -5.322678704179561e+00 -5.327013677718438e+00 -5.331354173404511e+00 -5.335700202105029e+00 -5.340051765703035e+00 + -5.344408865432155e+00 -5.348771508912536e+00 -5.353139705124518e+00 -5.357513462102698e+00 -5.361892786505948e+00 + -5.366277680435933e+00 -5.370668146715638e+00 -5.375064195610523e+00 -5.379465837274747e+00 -5.383873073974794e+00 + -5.388285907439377e+00 -5.392704345133761e+00 -5.397128395890300e+00 -5.401558068273167e+00 -5.405993369375257e+00 + -5.410434300672517e+00 -5.414880864443758e+00 -5.419333071796174e+00 -5.423790933634701e+00 -5.428254451226888e+00 + -5.432723625834648e+00 -5.437198468334746e+00 -5.441678989715544e+00 -5.446165191796978e+00 -5.450657075821366e+00 + -5.455154649888983e+00 -5.459657923508107e+00 -5.464166904961132e+00 -5.468681600997277e+00 -5.473202013458992e+00 + -5.477728145011161e+00 -5.482260006515158e+00 -5.486797608759512e+00 -5.491340954044872e+00 -5.495890044003880e+00 + -5.500444886085005e+00 -5.505005489175888e+00 -5.509571862105057e+00 -5.514144012303452e+00 -5.518721941670775e+00 + -5.523305652810777e+00 -5.527895156674663e+00 -5.532490463993778e+00 -5.537091576272570e+00 -5.541698495053784e+00 + -5.546311231260242e+00 -5.550929796018560e+00 -5.555554191890502e+00 -5.560184420697174e+00 -5.564820489861896e+00 + -5.569462408240030e+00 -5.574110184812914e+00 -5.578763827204064e+00 -5.583423337479740e+00 -5.588088718319627e+00 + -5.592759980414353e+00 -5.597437134453794e+00 -5.602120183113874e+00 -5.606809128447821e+00 -5.611503978032022e+00 + -5.616204740842362e+00 -5.620911425929568e+00 -5.625624040919794e+00 -5.630342587666039e+00 -5.635067068763208e+00 + -5.639797495546991e+00 -5.644533879170592e+00 -5.649276221316504e+00 -5.654024523642824e+00 -5.658778797180806e+00 + -5.663539053129186e+00 -5.668305293983524e+00 -5.673077521581335e+00 -5.677855743831122e+00 -5.682639970117403e+00 + -5.687430209657800e+00 -5.692226470164904e+00 -5.697028753498052e+00 -5.701837062188433e+00 -5.706651407307890e+00 + -5.711471800003379e+00 -5.716298243181697e+00 -5.721130739014699e+00 -5.725969294974640e+00 -5.730813920019088e+00 + -5.735664623746429e+00 -5.740521414337008e+00 -5.745384293658165e+00 -5.750253264219532e+00 -5.755128337412918e+00 + -5.760009524502356e+00 -5.764896827358567e+00 -5.769790247833362e+00 -5.774689797096235e+00 -5.779595486532854e+00 + -5.784507319075965e+00 -5.789425296924678e+00 -5.794349427796488e+00 -5.799279720850703e+00 -5.804216185495535e+00 + -5.809158829710795e+00 -5.814107655513784e+00 -5.819062665706917e+00 -5.824023872195552e+00 -5.828991286593848e+00 + -5.833964910248241e+00 -5.838944744496904e+00 -5.843930800912663e+00 -5.848923091405570e+00 -5.853921618999967e+00 + -5.858926385866531e+00 -5.863937399646989e+00 -5.868954669511408e+00 -5.873978205272220e+00 -5.879008015280387e+00 + -5.884044101398642e+00 -5.889086466127434e+00 -5.894135121006329e+00 -5.899190077679159e+00 -5.904251339167730e+00 + -5.909318907675908e+00 -5.914392790757818e+00 -5.919472997569684e+00 -5.924559538325873e+00 -5.929652421747786e+00 + -5.934751649526802e+00 -5.939857223994977e+00 -5.944969157077114e+00 -5.950087460588470e+00 -5.955212136313389e+00 + -5.960343186070434e+00 -5.965480621845905e+00 -5.970624455737114e+00 -5.975774690117698e+00 -5.980931326619691e+00 + -5.986094373632355e+00 -5.991263841186835e+00 -5.996439739124646e+00 -6.001622075628632e+00 -6.006810852436582e+00 + -6.012006072105073e+00 -6.017207746910874e+00 -6.022415889122929e+00 -6.027630501258702e+00 -6.032851585034692e+00 + -6.038079148714933e+00 -6.043313202169935e+00 -6.048553755148549e+00 -6.053800815867540e+00 -6.059054386536941e+00 + -6.064314470164098e+00 -6.069581078952353e+00 -6.074854224823474e+00 -6.080133909377011e+00 -6.085420134277816e+00 + -6.090712911774160e+00 -6.096012254273324e+00 -6.101318164235261e+00 -6.106630643404864e+00 -6.111949700614082e+00 + -6.117275346267099e+00 -6.122607589969956e+00 -6.127946439669295e+00 -6.133291897472249e+00 -6.138643966380033e+00 + -6.144002658809652e+00 -6.149367987035877e+00 -6.154739953348771e+00 -6.160118559324411e+00 -6.165503813667637e+00 + -6.170895726810269e+00 -6.176294308963303e+00 -6.181699568610070e+00 -6.187111507544039e+00 -6.192530128394146e+00 + -6.197955443821025e+00 -6.203387466288188e+00 -6.208826197438971e+00 -6.214271638855750e+00 -6.219723802697215e+00 + -6.225182701452046e+00 -6.230648338352550e+00 -6.236120715733020e+00 -6.241599841591995e+00 -6.247085725644578e+00 + -6.252578378807894e+00 -6.258077810320607e+00 -6.263584021505486e+00 -6.269097014385768e+00 -6.274616801702433e+00 + -6.280143396389799e+00 -6.285676801437800e+00 -6.291217018848358e+00 -6.296764056615736e+00 -6.302317924554712e+00 + -6.307878633769864e+00 -6.313446193664602e+00 -6.319020605547922e+00 -6.324601871487839e+00 -6.330190004682891e+00 + -6.335785018206249e+00 -6.341386913499118e+00 -6.346995691980793e+00 -6.352611366614864e+00 -6.358233950592316e+00 + -6.363863446469443e+00 -6.369499855900457e+00 -6.375143187565898e+00 -6.380793451939097e+00 -6.386450659638202e+00 + -6.392114819555641e+00 -6.397785933536126e+00 -6.403464004233896e+00 -6.409149044588990e+00 -6.414841067513965e+00 + -6.420540075525660e+00 -6.426246070301758e+00 -6.431959060559017e+00 -6.437679056917068e+00 -6.443406070567963e+00 + -6.449140110779302e+00 -6.454881178548420e+00 -6.460629275812415e+00 -6.466384416537711e+00 -6.472146614484319e+00 + -6.477915870557313e+00 -6.483692185657911e+00 -6.489475573526882e+00 -6.495266048141532e+00 -6.501063611585819e+00 + -6.506868264986595e+00 -6.512680017535606e+00 -6.518498880384615e+00 -6.524324864460620e+00 -6.530157978732819e+00 + -6.535998224564008e+00 -6.541845604255500e+00 -6.547700131469085e+00 -6.553561819849423e+00 -6.559430671612207e+00 + -6.565306688088189e+00 -6.571189878497283e+00 -6.577080253965905e+00 -6.582977825357318e+00 -6.588882601649868e+00 + -6.594794584545345e+00 -6.600713776640095e+00 -6.606640191385222e+00 -6.612573842086468e+00 -6.618514730613387e+00 + -6.624462858757332e+00 -6.630418239433046e+00 -6.636380885778538e+00 -6.642350800701542e+00 -6.648327986279747e+00 + -6.654312451500913e+00 -6.660304207148021e+00 -6.666303264274883e+00 -6.672309632144893e+00 -6.678323312588955e+00 + -6.684344308236361e+00 -6.690372632342481e+00 -6.696408298209058e+00 -6.702451308697293e+00 -6.708501665794167e+00 + -6.714559378430309e+00 -6.720624457416141e+00 -6.726696914137652e+00 -6.732776758078630e+00 -6.738863990538500e+00 + -6.744958613795213e+00 -6.751060642225177e+00 -6.757170089911689e+00 -6.763286957667176e+00 -6.769411246357500e+00 + -6.775542970333119e+00 -6.781682144164359e+00 -6.787828769816468e+00 -6.793982848306231e+00 -6.800144389461610e+00 + -6.806313405086916e+00 -6.812489906080716e+00 -6.818673901333698e+00 -6.824865392610781e+00 -6.831064382650163e+00 + -6.837270885208925e+00 -6.843484914029985e+00 -6.849706471780753e+00 -6.855935560196301e+00 -6.862172188357874e+00 + -6.868416367348060e+00 -6.874668108908677e+00 -6.880927422841348e+00 -6.887194310527692e+00 -6.893468774218006e+00 + -6.899750828057308e+00 -6.906040486046904e+00 -6.912337749718504e+00 -6.918642620544160e+00 -6.924955112226868e+00 + -6.931275238742860e+00 -6.937603002930438e+00 -6.943938406703657e+00 -6.950281459417487e+00 -6.956632172330878e+00 + -6.962990556877839e+00 -6.969356622516854e+00 -6.975730370629293e+00 -6.982111803620415e+00 -6.988500936068168e+00 + -6.994897782349220e+00 -7.001302343862422e+00 -7.007714621896787e+00 -7.014134630279748e+00 -7.020562383120512e+00 + -7.026997883116998e+00 -7.033441132058707e+00 -7.039892139512705e+00 -7.046350916975187e+00 -7.052817475881351e+00 + -7.059291825658977e+00 -7.065773967767182e+00 -7.072263904706783e+00 -7.078761651114045e+00 -7.085267221537997e+00 + -7.091780618043302e+00 -7.098301841735545e+00 -7.104830902368316e+00 -7.111367811800725e+00 -7.117912581665987e+00 + -7.124465221496127e+00 -7.131025732644298e+00 -7.137594117517873e+00 -7.144170390919956e+00 -7.150754567380619e+00 + -7.157346647942116e+00 -7.163946633668109e+00 -7.170554539195697e+00 -7.177170379365883e+00 -7.183794156261903e+00 + -7.190425870988396e+00 -7.197065533493338e+00 -7.203713155838439e+00 -7.210368749697043e+00 -7.217032324589560e+00 + -7.223703881813015e+00 -7.230383423705708e+00 -7.237070964994412e+00 -7.243766520390449e+00 -7.250470092154861e+00 + -7.257181681552523e+00 -7.263901298313877e+00 -7.270628954301988e+00 -7.277364661444877e+00 -7.284108429522252e+00 + -7.290860259655573e+00 -7.297620154032538e+00 -7.304388127764033e+00 -7.311164195737019e+00 -7.317948359019635e+00 + -7.324740618617562e+00 -7.331540989105481e+00 -7.338349485298712e+00 -7.345166109406192e+00 -7.351990862719772e+00 + -7.358823755469352e+00 -7.365664799915581e+00 -7.372514007504119e+00 -7.379371387574386e+00 -7.386236941855793e+00 + -7.393110673113762e+00 -7.399992595867711e+00 -7.406882724521767e+00 -7.413781061264927e+00 -7.420687607444220e+00 + -7.427602373253923e+00 -7.434525370953283e+00 -7.441456612214240e+00 -7.448396106579596e+00 -7.455343855662903e+00 + -7.462299862106879e+00 -7.469264140600134e+00 -7.476236705537742e+00 -7.483217558094771e+00 -7.490206699573982e+00 + -7.497204145008848e+00 -7.504209909607961e+00 -7.511223995549668e+00 -7.518246403916826e+00 -7.525277144440522e+00 + -7.532316229110418e+00 -7.539363670302306e+00 -7.546419478207750e+00 -7.553483653895294e+00 -7.560556199398457e+00 + -7.567637129733686e+00 -7.574726459966183e+00 -7.581824192373288e+00 -7.588930328179804e+00 -7.596044877188221e+00 + -7.603167851392376e+00 -7.610299262973792e+00 -7.617439121971403e+00 -7.624587429666054e+00 -7.631744188388593e+00 + -7.638909413427992e+00 -7.646083119762239e+00 -7.653265308167305e+00 -7.660455979470388e+00 -7.667655148905554e+00 + -7.674862831955687e+00 -7.682079030692125e+00 -7.689303746121935e+00 -7.696536988406601e+00 -7.703778769965018e+00 + -7.711029103091334e+00 -7.718287997777487e+00 -7.725555454931286e+00 -7.732831476489904e+00 -7.740116077592081e+00 + -7.747409273463959e+00 -7.754711066479733e+00 -7.762021457991705e+00 -7.769340458116517e+00 -7.776668079072852e+00 + -7.784004332723263e+00 -7.791349228774319e+00 -7.798702768664788e+00 -7.806064954991001e+00 -7.813435803247359e+00 + -7.820815328504128e+00 -7.828203531237023e+00 -7.835600412067597e+00 -7.843005986795347e+00 -7.850420271453628e+00 + -7.857843267833355e+00 -7.865274976500961e+00 -7.872715407367362e+00 -7.880164572827870e+00 -7.887622485870939e+00 + -7.895089157097287e+00 -7.902564586963549e+00 -7.910048776908389e+00 -7.917541742442640e+00 -7.925043499243823e+00 + -7.932554049584044e+00 -7.940073394568305e+00 -7.947601544038569e+00 -7.955138510136092e+00 -7.962684305462377e+00 + -7.970238940357911e+00 -7.977802415658878e+00 -7.985374733292938e+00 -7.992955909057959e+00 -8.000545958501995e+00 + -8.008144882303682e+00 -8.015752681155906e+00 -8.023369370677967e+00 -8.030994966700497e+00 -8.038629470973136e+00 + -8.046272884117311e+00 -8.053925216322545e+00 -8.061586480220186e+00 -8.069256688640843e+00 -8.076935852017314e+00 + -8.084623970991846e+00 -8.092321047230506e+00 -8.100027096285098e+00 -8.107742133772728e+00 -8.115466161685978e+00 + -8.123199180963685e+00 -8.130941201954130e+00 -8.138692237272345e+00 -8.146452299190864e+00 -8.154221397655556e+00 + -8.161999533648068e+00 -8.169786709369063e+00 -8.177582940859525e+00 -8.185388243772254e+00 -8.193202618367051e+00 + -8.201026064968486e+00 -8.208858599553158e+00 -8.216700238370747e+00 -8.224550983111227e+00 -8.232410834288519e+00 + -8.240279802271914e+00 -8.248157899820946e+00 -8.256045139400785e+00 -8.263941531127587e+00 -8.271847076015916e+00 + -8.279761776165609e+00 -8.287685647119202e+00 -8.295618704371698e+00 -8.303560949785306e+00 -8.311512384182917e+00 + -8.319473017862927e+00 -8.327442863513763e+00 -8.335421933908444e+00 -8.343410239406900e+00 -8.351407780632112e+00 + -8.359414559352070e+00 -8.367430591651793e+00 -8.375455893292965e+00 -8.383490464426892e+00 -8.391534305333888e+00 + -8.399587432420665e+00 -8.407649862295598e+00 -8.415721596247392e+00 -8.423802634359653e+00 -8.431892987215194e+00 + -8.439992667917126e+00 -8.448101689150496e+00 -8.456220061058572e+00 -8.464347784035521e+00 -8.472484859778373e+00 + -8.480631304944675e+00 -8.488787135775029e+00 -8.496952351881781e+00 -8.505126952972617e+00 -8.513310955764712e+00 + -8.521504377280520e+00 -8.529707218754108e+00 -8.537919480083488e+00 -8.546141171610756e+00 -8.554372306334406e+00 + -8.562612897434500e+00 -8.570862955488629e+00 -8.579122480482935e+00 -8.587391473585072e+00 -8.595669951280222e+00 + -8.603957930092136e+00 -8.612255411381385e+00 -8.620562395277888e+00 -8.628878892152137e+00 -8.637204914976417e+00 + -8.645540476889700e+00 -8.653885588365707e+00 -8.662240249050400e+00 -8.670604460002718e+00 -8.678978238761259e+00 + -8.687361602440037e+00 -8.695754549975142e+00 -8.704157080317993e+00 -8.712569210659231e+00 -8.720990958572770e+00 + -8.729422324926496e+00 -8.737863309144757e+00 -8.746313921583734e+00 -8.754774175423437e+00 -8.763244084207386e+00 + -8.771723658743657e+00 -8.780212898534927e+00 -8.788711804325507e+00 -8.797220393131562e+00 -8.805738681960509e+00 + -8.814266671512945e+00 -8.822804361262596e+00 -8.831351762082482e+00 -8.839908887544672e+00 -8.848475750618142e+00 + -8.857052361519681e+00 -8.865638720060298e+00 -8.874234827408518e+00 -8.882840700568694e+00 -8.891456356239988e+00 + -8.900081794065120e+00 -8.908717013654563e+00 -8.917362031546196e+00 -8.926016864607513e+00 -8.934681514097109e+00 + -8.943355979966887e+00 -8.952040272550780e+00 -8.960734404827180e+00 -8.969438389970174e+00 -8.978152238557112e+00 + -8.986875950582608e+00 -8.995609527224275e+00 -9.004352984974421e+00 -9.013106340348738e+00 -9.021869594641789e+00 + -9.030642747850949e+00 -9.039425810005964e+00 -9.048218793898496e+00 -9.057021713335553e+00 -9.065834579375275e+00 + -9.074657391064932e+00 -9.083490148798390e+00 -9.092332870366718e+00 -9.101185573233034e+00 -9.110048256151465e+00 + -9.118920917820537e+00 -9.127803575425368e+00 -9.136696246597257e+00 -9.145598932265708e+00 -9.154511631860180e+00 + -9.163434355511646e+00 -9.172367116215408e+00 -9.181309927722621e+00 -9.190262801063124e+00 -9.199225735625708e+00 + -9.208198731948572e+00 -9.217181806808554e+00 -9.226174977077383e+00 -9.235178243767663e+00 -9.244191606592038e+00 + -9.253215075922315e+00 -9.262248664894432e+00 -9.271292387041701e+00 -9.280346253080740e+00 -9.289410262064051e+00 + -9.298484414471314e+00 -9.307568728155069e+00 -9.316663220573421e+00 -9.325767890233902e+00 -9.334882735648362e+00 + -9.344007774296474e+00 -9.353143024056331e+00 -9.362288485431986e+00 -9.371444157433135e+00 -9.380610050466057e+00 + -9.389786177888119e+00 -9.398972553464475e+00 -9.408169188076664e+00 -9.417376080663951e+00 -9.426593231436920e+00 + -9.435820657633688e+00 -9.445058376575700e+00 -9.454306388890288e+00 -9.463564693828612e+00 -9.472833301831271e+00 + -9.482112226230582e+00 -9.491401480736307e+00 -9.500701076124317e+00 -9.510011011057383e+00 -9.519331285649606e+00 + -9.528661917933491e+00 -9.538002925632075e+00 -9.547354307312132e+00 -9.556716061430350e+00 -9.566088205159264e+00 + -9.575470756067922e+00 -9.584863714595665e+00 -9.594267079809105e+00 -9.603680862413734e+00 -9.613105076017005e+00 + -9.622539734195460e+00 -9.631984847535897e+00 -9.641440414697058e+00 -9.650906435763309e+00 -9.660382928449559e+00 + -9.669869910482992e+00 -9.679367382009378e+00 -9.688875341677877e+00 -9.698393799732578e+00 -9.707922769547205e+00 + -9.717462265419133e+00 -9.727012298576232e+00 -9.736572867044643e+00 -9.746143970285512e+00 -9.755725626701739e+00 + -9.765317854403191e+00 -9.774920651385886e+00 -9.784534015610914e+00 -9.794157965013451e+00 -9.803792517858509e+00 + -9.813437673756464e+00 -9.823093430886084e+00 -9.832759800354408e+00 -9.842436796281985e+00 -9.852124431915341e+00 + -9.861822717446652e+00 -9.871531651724764e+00 -9.881251235098006e+00 -9.890981485255914e+00 -9.900722419735771e+00 + -9.910474038124631e+00 -9.920236338721825e+00 -9.930009332625946e+00 -9.939793033953066e+00 -9.949587456089942e+00 + -9.959392609292857e+00 -9.969208492025555e+00 -9.979035104343238e+00 -9.988872464459540e+00 -9.998720590171930e+00 + -1.000857947945488e+01 -1.001844913033355e+01 -1.002832956085879e+01 -1.003822078906736e+01 -1.004812281291406e+01 + -1.005803562971182e+01 -1.006795925428782e+01 -1.007789370360111e+01 -1.008783898562387e+01 -1.009779510571246e+01 + -1.010776206774677e+01 -1.011773987740720e+01 -1.012772854905251e+01 -1.013772809631413e+01 -1.014773852123577e+01 + -1.015775982444731e+01 -1.016779201251112e+01 -1.017783509576905e+01 -1.018788909374848e+01 -1.019795402262726e+01 + -1.020802987599985e+01 -1.021811664796306e+01 -1.022821435720666e+01 -1.023832302389762e+01 -1.024844264951883e+01 + -1.025857323411911e+01 -1.026871479069502e+01 -1.027886733277511e+01 -1.028903086306819e+01 -1.029920538356622e+01 + -1.030939090421369e+01 -1.031958743714735e+01 -1.032979499532081e+01 -1.034001358910991e+01 -1.035024321776280e+01 + -1.036048388191000e+01 -1.037073559883907e+01 -1.038099838556339e+01 -1.039127224134250e+01 -1.040155716512729e+01 + -1.041185317238784e+01 -1.042216027887615e+01 -1.043247848495290e+01 -1.044280779013644e+01 -1.045314820596725e+01 + -1.046349974688984e+01 -1.047386242694284e+01 -1.048423625623699e+01 -1.049462122957744e+01 -1.050501734396915e+01 + -1.051542462052187e+01 -1.052584308069211e+01 -1.053627272321853e+01 -1.054671354447971e+01 -1.055716555413174e+01 + -1.056762876571201e+01 -1.057810319500591e+01 -1.058858885406686e+01 -1.059908573777257e+01 -1.060959384260205e+01 + -1.062011318861535e+01 -1.063064379594653e+01 -1.064118566144451e+01 -1.065173878128750e+01 -1.066230317225584e+01 + -1.067287885251234e+01 -1.068346582514766e+01 -1.069406409086973e+01 -1.070467365592747e+01 -1.071529452946521e+01 + -1.072592672666786e+01 -1.073657026057826e+01 -1.074722512963040e+01 -1.075789133336255e+01 -1.076856889033910e+01 + -1.077925781838790e+01 -1.078995811336476e+01 -1.080066977044343e+01 -1.081139280404170e+01 -1.082212723175914e+01 + -1.083287306467895e+01 -1.084363031023443e+01 -1.085439896777578e+01 -1.086517903841335e+01 -1.087597053838113e+01 + -1.088677348334085e+01 -1.089758787154147e+01 -1.090841370173705e+01 -1.091925099211483e+01 -1.093009976068779e+01 + -1.094096000533889e+01 -1.095183172286895e+01 -1.096271492588021e+01 -1.097360962990334e+01 -1.098451584638146e+01 + -1.099543358339704e+01 -1.100636283967740e+01 -1.101730361593110e+01 -1.102825593014644e+01 -1.103921979985815e+01 + -1.105019522350652e+01 -1.106118219809120e+01 -1.107218073394329e+01 -1.108319084475604e+01 -1.109421254433972e+01 + -1.110524584310812e+01 -1.111629073777213e+01 -1.112734722664297e+01 -1.113841532813614e+01 -1.114949506055284e+01 + -1.116058642163307e+01 -1.117168940919924e+01 -1.118280404196459e+01 -1.119393033845125e+01 -1.120506829552628e+01 + -1.121621790821428e+01 -1.122737918582522e+01 -1.123855214233318e+01 -1.124973679608346e+01 -1.126093316109601e+01 + -1.127214122971816e+01 -1.128336099568353e+01 -1.129459247994368e+01 -1.130583570391351e+01 -1.131709066364352e+01 + -1.132835735316995e+01 -1.133963578383626e+01 -1.135092597165251e+01 -1.136222793398803e+01 -1.137354168289046e+01 + -1.138486720776133e+01 -1.139620450077960e+01 -1.140755358788016e+01 -1.141891449467379e+01 -1.143028721171902e+01 + -1.144167172931863e+01 -1.145306807180483e+01 -1.146447626363145e+01 -1.147589629570943e+01 -1.148732815744427e+01 + -1.149877186576219e+01 -1.151022744176966e+01 -1.152169489577362e+01 -1.153317423307527e+01 -1.154466544975234e+01 + -1.155616854500299e+01 -1.156768353973055e+01 -1.157921045411968e+01 -1.159074928377541e+01 -1.160230002278200e+01 + -1.161386268372032e+01 -1.162543728297182e+01 -1.163702383362365e+01 -1.164862234413445e+01 -1.166023280774309e+01 + -1.167185522083641e+01 -1.168348960761297e+01 -1.169513599109641e+01 -1.170679436179895e+01 -1.171846471050954e+01 + -1.173014706163534e+01 -1.174184143967664e+01 -1.175354783588804e+01 -1.176526623959987e+01 -1.177699666569085e+01 + -1.178873913359907e+01 -1.180049365545172e+01 -1.181226023874721e+01 -1.182403887977966e+01 -1.183582957710202e+01 + -1.184763234950681e+01 -1.185944721571250e+01 -1.187127417390187e+01 -1.188311322026980e+01 -1.189496436359524e+01 + -1.190682761635663e+01 -1.191870299324639e+01 -1.193059050542573e+01 -1.194249014771712e+01 -1.195440191732676e+01 + -1.196632583733436e+01 -1.197826192918009e+01 -1.199021018187259e+01 -1.200217058481946e+01 -1.201414316145583e+01 + -1.202612793653577e+01 -1.203812490606177e+01 -1.205013406283600e+01 -1.206215541561094e+01 -1.207418897775090e+01 + -1.208623476511758e+01 -1.209829279023755e+01 -1.211036304979982e+01 -1.212244554104682e+01 -1.213454027927224e+01 + -1.214664728029985e+01 -1.215876654402256e+01 -1.217089806888390e+01 -1.218304186346073e+01 -1.219519793969503e+01 + -1.220736631285608e+01 -1.221954699446002e+01 -1.223173997768314e+01 -1.224394525782826e+01 -1.225616285704409e+01 + -1.226839279716718e+01 -1.228063507193962e+01 -1.229288967419984e+01 -1.230515662126608e+01 -1.231743593190913e+01 + -1.232972760623024e+01 -1.234203164189830e+01 -1.235434804552219e+01 -1.236667682754052e+01 -1.237901800477097e+01 + -1.239137159078778e+01 -1.240373757981251e+01 -1.241611596680448e+01 -1.242850676902663e+01 -1.244091000477032e+01 + -1.245332567413717e+01 -1.246575377485128e+01 -1.247819431331654e+01 -1.249064729993889e+01 -1.250311275245252e+01 + -1.251559068470151e+01 -1.252808108764087e+01 -1.254058395403090e+01 -1.255309930674196e+01 -1.256562716858205e+01 + -1.257816753199971e+01 -1.259072038911156e+01 -1.260328576106586e+01 -1.261586366917709e+01 -1.262845410639316e+01 + -1.264105706405277e+01 -1.265367255542431e+01 -1.266630059802175e+01 -1.267894120441173e+01 -1.269159438291520e+01 + -1.270426012981745e+01 -1.271693844300063e+01 -1.272962933876972e+01 -1.274233283335257e+01 -1.275504892424538e+01 + -1.276777760888006e+01 -1.278051890316245e+01 -1.279327282335948e+01 -1.280603936870822e+01 -1.281881853703964e+01 + -1.283161033759003e+01 -1.284441478278821e+01 -1.285723188642777e+01 -1.287006165845383e+01 -1.288290409205257e+01 + -1.289575918258311e+01 -1.290862695085492e+01 -1.292150741744502e+01 -1.293440057655018e+01 -1.294730642109768e+01 + -1.296022496531707e+01 -1.297315622664438e+01 -1.298610021403966e+01 -1.299905693252094e+01 -1.301202637981436e+01 + -1.302500855607946e+01 -1.303800347850134e+01 -1.305101116311717e+01 -1.306403160434687e+01 -1.307706479749205e+01 + -1.309011076299821e+01 -1.310316952145874e+01 -1.311624106891474e+01 -1.312932539865738e+01 -1.314242251753035e+01 + -1.315553243732881e+01 -1.316865517610136e+01 -1.318179074759510e+01 -1.319493914209791e+01 -1.320810035188408e+01 + -1.322127440063306e+01 -1.323446131182036e+01 -1.324766107670098e+01 -1.326087368408213e+01 -1.327409914520021e+01 + -1.328733747660298e+01 -1.330058869365459e+01 -1.331385280702646e+01 -1.332712980980294e+01 -1.334041969690924e+01 + -1.335372248822127e+01 -1.336703820316815e+01 -1.338036683444133e+01 -1.339370837465144e+01 -1.340706284282357e+01 + -1.342043025877972e+01 -1.343381061911550e+01 -1.344720391854233e+01 -1.346061016746156e+01 -1.347402937953320e+01 + -1.348746156576247e+01 -1.350090673400032e+01 -1.351436488213541e+01 -1.352783600940468e+01 -1.354132013040003e+01 + -1.355481725974633e+01 -1.356832739684519e+01 -1.358185053959114e+01 -1.359538669507347e+01 -1.360893587411229e+01 + -1.362249809325635e+01 -1.363607336498644e+01 -1.364966167978290e+01 -1.366326303005515e+01 -1.367687743792930e+01 + -1.369050492543861e+01 -1.370414548452841e+01 -1.371779910680898e+01 -1.373146581263829e+01 -1.374514562258463e+01 + -1.375883852931014e+01 -1.377254452369323e+01 -1.378626361738342e+01 -1.379999582664259e+01 -1.381374116541099e+01 + -1.382749964295472e+01 -1.384127125216480e+01 -1.385505598801133e+01 -1.386885387015567e+01 -1.388266491822051e+01 + -1.389648912698253e+01 -1.391032648926665e+01 -1.392417701493663e+01 -1.393804071810552e+01 -1.395191761284479e+01 + -1.396580770902492e+01 -1.397971099975399e+01 -1.399362747983656e+01 -1.400755716762526e+01 -1.402150008127576e+01 + -1.403545621460787e+01 -1.404942556175519e+01 -1.406340814244217e+01 -1.407740397661280e+01 -1.409141305949836e+01 + -1.410543538386059e+01 -1.411947095729565e+01 -1.413351979216372e+01 -1.414758190504674e+01 -1.416165730817942e+01 + -1.417574599218579e+01 -1.418984794931155e+01 -1.420396319989974e+01 -1.421809176459019e+01 -1.423223363711269e+01 + -1.424638880961032e+01 -1.426055729478944e+01 -1.427473910897708e+01 -1.428893426241975e+01 -1.430314276106135e+01 + -1.431736459971596e+01 -1.433159977568000e+01 -1.434584830730895e+01 -1.436011021230267e+01 -1.437438548467938e+01 + -1.438867411856965e+01 -1.440297613223502e+01 -1.441729154417122e+01 -1.443162034967981e+01 -1.444596254173529e+01 + -1.446031812719803e+01 -1.447468711827448e+01 -1.448906953466952e+01 -1.450346539077074e+01 -1.451787467219810e+01 + -1.453229736674074e+01 -1.454673349963205e+01 -1.456118309651608e+01 -1.457564614723534e+01 -1.459012263904241e+01 + -1.460461258463169e+01 -1.461911600163362e+01 -1.463363290198108e+01 -1.464816329304780e+01 -1.466270716966852e+01 + -1.467726452861927e+01 -1.469183538698022e+01 -1.470641976118071e+01 -1.472101764474266e+01 -1.473562903182180e+01 + -1.475025394201659e+01 -1.476489239431922e+01 -1.477954437985420e+01 -1.479420988900897e+01 -1.480888893709030e+01 + -1.482358154289730e+01 -1.483828771427918e+01 -1.485300745484606e+01 -1.486774076220148e+01 -1.488248763590571e+01 + -1.489724808935241e+01 -1.491202213620220e+01 -1.492680977735018e+01 -1.494161101188853e+01 -1.495642584446314e+01 + -1.497125428281713e+01 -1.498609634152866e+01 -1.500095203243959e+01 -1.501582134961145e+01 -1.503070428834008e+01 + -1.504560086663885e+01 -1.506051110171047e+01 -1.507543498479744e+01 -1.509037250787217e+01 -1.510532369178669e+01 + -1.512028855781273e+01 -1.513526710002122e+01 -1.515025931004586e+01 -1.516526519697226e+01 -1.518028477406786e+01 + -1.519531805387558e+01 -1.521036504514735e+01 -1.522542574219565e+01 -1.524050014105165e+01 -1.525558825906066e+01 + -1.527069011317451e+01 -1.528580569745696e+01 -1.530093500454836e+01 -1.531607804428359e+01 -1.533123483115148e+01 + -1.534640538106230e+01 -1.536158970459035e+01 -1.537678778954449e+01 -1.539199962605270e+01 -1.540722523628471e+01 + -1.542246464244602e+01 -1.543771783484346e+01 -1.545298480379291e+01 -1.546826557154514e+01 -1.548356016030771e+01 + -1.549886856018057e+01 -1.551419075889859e+01 -1.552952676684366e+01 -1.554487659991805e+01 -1.556024027345857e+01 + -1.557561779759322e+01 -1.559100916218038e+01 -1.560641435912106e+01 -1.562183340875659e+01 -1.563726633124305e+01 + -1.565271311755539e+01 -1.566817375858786e+01 -1.568364827409284e+01 -1.569913668435983e+01 -1.571463898296877e+01 + -1.573015516140282e+01 -1.574568522946743e+01 -1.576122920078429e+01 -1.577678708591764e+01 -1.579235889192325e+01 + -1.580794461488044e+01 -1.582354425266206e+01 -1.583915782129173e+01 -1.585478533595468e+01 -1.587042679033195e+01 + -1.588608217713541e+01 -1.590175150670428e+01 -1.591743479377280e+01 -1.593313205302798e+01 -1.594884329356461e+01 + -1.596456850215542e+01 -1.598030766876410e+01 -1.599606081844003e+01 -1.601182797567503e+01 -1.602760912764517e+01 + -1.604340426053651e+01 -1.605921339389068e+01 -1.607503654929621e+01 -1.609087372317365e+01 -1.610672490846679e+01 + -1.612259010938000e+01 -1.613846933535691e+01 -1.615436260553746e+01 -1.617026993400350e+01 -1.618619130490810e+01 + -1.620212670496088e+01 -1.621807616102629e+01 -1.623403970021593e+01 -1.625001731047507e+01 -1.626600897617460e+01 + -1.628201470655392e+01 -1.629803451699528e+01 -1.631406842258372e+01 -1.633011643368945e+01 -1.634617854212047e+01 + -1.636225474110459e+01 -1.637834504811086e+01 -1.639444948009596e+01 -1.641056802772599e+01 -1.642670068226715e+01 + -1.644284746367691e+01 -1.645900839255391e+01 -1.647518346337059e+01 -1.649137266740475e+01 -1.650757600928198e+01 + -1.652379349905581e+01 -1.654002515514406e+01 -1.655627099138395e+01 -1.657253099492616e+01 -1.658880515436409e+01 + -1.660509349074862e+01 -1.662139602569388e+01 -1.663771275060954e+01 -1.665404365442992e+01 -1.667038874639235e+01 + -1.668674804082613e+01 -1.670312155212567e+01 -1.671950928959044e+01 -1.673591124207530e+01 -1.675232740091000e+01 + -1.676875778776886e+01 -1.678520242381186e+01 -1.680166129779755e+01 -1.681813439803682e+01 -1.683462174345131e+01 + -1.685112335404732e+01 -1.686763922355921e+01 -1.688416934305047e+01 -1.690071371917313e+01 -1.691727236387981e+01 + -1.693384529473730e+01 -1.695043252373442e+01 -1.696703403493436e+01 -1.698364981519248e+01 -1.700027989045860e+01 + -1.701692428668450e+01 -1.703358299073511e+01 -1.705025598664567e+01 -1.706694328621936e+01 -1.708364490699094e+01 + -1.710036086165371e+01 -1.711709115711999e+01 -1.713383578201967e+01 -1.715059472804424e+01 -1.716736801741393e+01 + -1.718415567151382e+01 -1.720095767785962e+01 -1.721777402421613e+01 -1.723460473321376e+01 -1.725144982735173e+01 + -1.726830929373925e+01 -1.728518311723097e+01 -1.730207130905323e+01 -1.731897388644410e+01 -1.733589086431708e+01 + -1.735282225151622e+01 -1.736976803493245e+01 -1.738672820398455e+01 -1.740370278015603e+01 -1.742069178532102e+01 + -1.743769521085149e+01 -1.745471304524893e+01 -1.747174529603476e+01 -1.748879197614670e+01 -1.750585310116775e+01 + -1.752292868122209e+01 -1.754001870195336e+01 -1.755712315207324e+01 -1.757424205704595e+01 -1.759137544124289e+01 + -1.760852328791187e+01 -1.762568558032359e+01 -1.764286234296404e+01 -1.766005360135051e+01 -1.767725934391039e+01 + -1.769447955614261e+01 -1.771171424892207e+01 -1.772896343807829e+01 -1.774622713388326e+01 -1.776350534196338e+01 + -1.778079805492016e+01 -1.779810526797336e+01 -1.781542699984077e+01 -1.783276326793605e+01 -1.785011406095838e+01 + -1.786747936642481e+01 -1.788485919583838e+01 -1.790225356596892e+01 -1.791966249066770e+01 -1.793708597750879e+01 + -1.795452401187612e+01 -1.797197658287230e+01 -1.798944371666477e+01 -1.800692543788475e+01 -1.802442172795408e+01 + -1.804193256819016e+01 -1.805945798270200e+01 -1.807699799758296e+01 -1.809455260407236e+01 -1.811212178929598e+01 + -1.812970555877947e+01 -1.814730392419934e+01 -1.816491690343573e+01 -1.818254450889657e+01 -1.820018672489731e+01 + -1.821784353770839e+01 -1.823551496951270e+01 -1.825320104351004e+01 -1.827090175105552e+01 -1.828861707995103e+01 + -1.830634703563002e+01 -1.832409162961503e+01 -1.834185088015348e+01 -1.835962479982180e+01 -1.837741337178776e+01 + -1.839521658191638e+01 -1.841303445627024e+01 -1.843086702044687e+01 -1.844871425798603e+01 -1.846657615155986e+01 + -1.848445272242748e+01 -1.850234399331442e+01 -1.852024995422484e+01 -1.853817059263430e+01 -1.855610591862525e+01 + -1.857405594751762e+01 -1.859202069297440e+01 -1.861000016303027e+01 -1.862799434486363e+01 -1.864600322762024e+01 + -1.866402682917165e+01 -1.868206516860479e+01 -1.870011824114266e+01 -1.871818603889838e+01 -1.873626856540951e+01 + -1.875436582948875e+01 -1.877247784962497e+01 -1.879060463922456e+01 -1.880874618168810e+01 -1.882690246254704e+01 + -1.884507350586227e+01 -1.886325933574866e+01 -1.888145993800745e+01 -1.889967529731236e+01 -1.891790543214035e+01 + -1.893615036295555e+01 -1.895441008436764e+01 -1.897268458788422e+01 -1.899097387845919e+01 -1.900927796546465e+01 + -1.902759686249918e+01 -1.904593057916082e+01 -1.906427910481893e+01 -1.908264243109121e+01 -1.910102057881749e+01 + -1.911941356739387e+01 -1.913782138121961e+01 -1.915624400568942e+01 -1.917468146517671e+01 -1.919313378404767e+01 + -1.921160094766128e+01 -1.923008293912871e+01 -1.924857977157690e+01 -1.926709146357444e+01 -1.928561802544077e+01 + -1.930415946120927e+01 -1.932271575801813e+01 -1.934128690695999e+01 -1.935987293184044e+01 -1.937847385553680e+01 + -1.939708966450047e+01 -1.941572034241033e+01 -1.943436589828115e+01 -1.945302634705033e+01 -1.947170170200994e+01 + -1.949039197138318e+01 -1.950909714476303e+01 -1.952781721398065e+01 -1.954655219845012e+01 -1.956530211609402e+01 + -1.958406695128608e+01 -1.960284668959667e+01 -1.962164135493148e+01 -1.964045097168231e+01 -1.965927552785040e+01 + -1.967811500826448e+01 -1.969696942145404e+01 -1.971583878200212e+01 -1.973472310500559e+01 -1.975362239928199e+01 + -1.977253664801789e+01 -1.979146583743514e+01 -1.981040999152762e+01 -1.982936913462439e+01 -1.984834325462312e+01 + -1.986733233626431e+01 -1.988633638809098e+01 -1.990535542475069e+01 -1.992438946150660e+01 -1.994343850724086e+01 + -1.996250254469571e+01 -1.998158155988759e+01 -2.000067557806942e+01 -2.001978462401460e+01 -2.003890868134189e+01 + -2.005804773353269e+01 -2.007720180467363e+01 -2.009637091866160e+01 -2.011555505802958e+01 -2.013475420367532e+01 + -2.015396837131929e+01 -2.017319758216888e+01 -2.019244184455664e+01 -2.021170116029698e+01 -2.023097551800653e+01 + -2.025026491057744e+01 -2.026956936120177e+01 -2.028888889127859e+01 -2.030822348473533e+01 -2.032757312336421e+01 + -2.034693781788847e+01 -2.036631758558183e+01 -2.038571244098909e+01 -2.040512239225047e+01 -2.042454742461679e+01 + -2.044398752597867e+01 -2.046344271767523e+01 -2.048291302072143e+01 -2.050239842138679e+01 -2.052189890581644e+01 + -2.054141449440303e+01 -2.056094520839277e+01 -2.058049103819856e+01 -2.060005197091200e+01 -2.061962801117254e+01 + -2.063921916971323e+01 -2.065882546409381e+01 -2.067844690614864e+01 -2.069808347798381e+01 -2.071773516441981e+01 + -2.073740199086278e+01 -2.075708398272239e+01 -2.077678112483692e+01 -2.079649339928443e+01 -2.081622081767353e+01 + -2.083596339752241e+01 -2.085572115045732e+01 -2.087549408142252e+01 -2.089528217452614e+01 -2.091508541798258e+01 + -2.093490383726751e+01 -2.095473745703866e+01 -2.097458626142068e+01 -2.099445023367205e+01 -2.101432939411960e+01 + -2.103422376365449e+01 -2.105413332835716e+01 -2.107405807288499e+01 -2.109399801101360e+01 -2.111395316146354e+01 + -2.113392353361706e+01 -2.115390913036233e+01 -2.117390993794961e+01 -2.119392594678185e+01 -2.121395718051052e+01 + -2.123400366165125e+01 -2.125406537492771e+01 -2.127414230292253e+01 -2.129423445744600e+01 -2.131434185603574e+01 + -2.133446450991120e+01 -2.135460242400538e+01 -2.137475558442359e+01 -2.139492398094176e+01 -2.141510763684612e+01 + -2.143530657354728e+01 -2.145552077144329e+01 -2.147575021223202e+01 -2.149599492382317e+01 -2.151625493458459e+01 + -2.153653022850520e+01 -2.155682078515937e+01 -2.157712661084235e+01 -2.159744772002078e+01 -2.161778413312624e+01 + -2.163813586321833e+01 -2.165850288790379e+01 -2.167888518769065e+01 -2.169928279014487e+01 -2.171969572392566e+01 + -2.174012397500749e+01 -2.176056752455845e+01 -2.178102637720577e+01 -2.180150054539059e+01 -2.182199004935065e+01 + -2.184249490264348e+01 -2.186301508430896e+01 -2.188355057625899e+01 -2.190410140641098e+01 -2.192466760199104e+01 + -2.194524914145450e+01 -2.196584600311797e+01 -2.198645821351363e+01 -2.200708580045210e+01 -2.202772874864248e+01 + -2.204838703903658e+01 -2.206906068065864e+01 -2.208974968965916e+01 -2.211045408262128e+01 -2.213117386881762e+01 + -2.215190902784613e+01 -2.217265954271720e+01 -2.219342543976576e+01 -2.221420674565993e+01 -2.223500344507609e+01 + -2.225581551916326e+01 -2.227664297695268e+01 -2.229748583458740e+01 -2.231834410877561e+01 -2.233921780886325e+01 + -2.236010691418214e+01 -2.238101140757746e+01 -2.240193131596196e+01 -2.242286666626994e+01 -2.244381744145418e+01 + -2.246478362333585e+01 -2.248576523319086e+01 -2.250676229308250e+01 -2.252777478876882e+01 -2.254880270395783e+01 + -2.256984605046237e+01 -2.259090484578745e+01 -2.261197910210208e+01 -2.263306882483333e+01 -2.265417399777652e+01 + -2.267529460825966e+01 -2.269643067937303e+01 -2.271758223358744e+01 -2.273874925513337e+01 -2.275993172840441e+01 + -2.278112967668665e+01 -2.280234312326570e+01 -2.282357205253301e+01 -2.284481644618636e+01 -2.286607631404299e+01 + -2.288735167241803e+01 -2.290864253549898e+01 -2.292994891082159e+01 -2.295127078144212e+01 -2.297260813386354e+01 + -2.299396099285480e+01 -2.301532938287575e+01 -2.303671328888409e+01 -2.305811269234469e+01 -2.307952760025338e+01 + -2.310095802706863e+01 -2.312240399156859e+01 -2.314386550544134e+01 -2.316534254769484e+01 -2.318683510020089e+01 + -2.320834318896662e+01 -2.322986684000025e+01 -2.325140603517923e+01 -2.327296075598023e+01 -2.329453102640753e+01 + -2.331611687084991e+01 -2.333771827270656e+01 -2.335933521295700e+01 -2.338096770389138e+01 -2.340261576396985e+01 + -2.342427940502197e+01 -2.344595863230511e+01 -2.346765343141823e+01 -2.348936379112492e+01 -2.351108973250527e+01 + -2.353283127622654e+01 -2.355458840898814e+01 -2.357636111469370e+01 -2.359814940003157e+01 -2.361995327887107e+01 + -2.364177277102066e+01 -2.366360788867084e+01 -2.368545860760097e+01 -2.370732490730504e+01 -2.372920681854641e+01 + -2.375110437181196e+01 -2.377301754521346e+01 -2.379494631547129e+01 -2.381689070611525e+01 -2.383885074279985e+01 + -2.386082641286912e+01 -2.388281770027697e+01 -2.390482461372720e+01 -2.392684716763744e+01 -2.394888537453080e+01 + -2.397093924094647e+01 -2.399300875138237e+01 -2.401509389381072e+01 -2.403719469214220e+01 -2.405931116939521e+01 + -2.408144330908079e+01 -2.410359109227195e+01 -2.412575452979684e+01 -2.414793363861520e+01 -2.417012843045825e+01 + -2.419233891107258e+01 -2.421456506749473e+01 -2.423680688969797e+01 -2.425906439811232e+01 -2.428133761196757e+01 + -2.430362651523593e+01 -2.432593109247103e+01 -2.434825136580965e+01 -2.437058735754595e+01 -2.439293905302052e+01 + -2.441530643508021e+01 -2.443768951355032e+01 -2.446008830475372e+01 -2.448250282402539e+01 -2.450493307947941e+01 + -2.452737905133441e+01 -2.454984072340254e+01 -2.457231812176549e+01 -2.459481127247106e+01 -2.461732015916192e+01 + -2.463984476198997e+01 -2.466238508954903e+01 -2.468494115731883e+01 -2.470751297988127e+01 -2.473010056541401e+01 + -2.475270389737600e+01 -2.477532296279144e+01 -2.479795778766421e+01 -2.482060839605179e+01 -2.484327476524651e+01 + -2.486595687297807e+01 -2.488865474549064e+01 -2.491136841050829e+01 -2.493409785316058e+01 -2.495684305468689e+01 + -2.497960402336061e+01 -2.500238077436705e+01 -2.502517332350563e+01 -2.504798167938967e+01 -2.507080582127416e+01 + -2.509364573240812e+01 -2.511650144137505e+01 -2.513937297643642e+01 -2.516226031923135e+01 -2.518516344740990e+01 + -2.520808236928804e+01 -2.523101710100030e+01 -2.525396765928963e+01 -2.527693405405919e+01 -2.529991626724470e+01 + -2.532291428361040e+01 -2.534592812720204e+01 -2.536895782110043e+01 -2.539200334524508e+01 -2.541506468057373e+01 + -2.543814185515816e+01 -2.546123489657537e+01 -2.548434378328921e+01 -2.550746849096137e+01 -2.553060903315797e+01 + -2.555376543163097e+01 -2.557693770297151e+01 -2.560012585444837e+01 -2.562332986120158e+01 -2.564654970308929e+01 + -2.566978541097076e+01 -2.569303701597250e+01 -2.571630449928904e+01 -2.573958783754457e+01 -2.576288703901380e+01 + -2.578620212017663e+01 -2.580953309868325e+01 -2.583287998467666e+01 -2.585624275710073e+01 -2.587962139846310e+01 + -2.590301593672573e+01 -2.592642639921134e+01 -2.594985276523152e+01 -2.597329501305775e+01 -2.599675316481207e+01 + -2.602022724494944e+01 -2.604371724340627e+01 -2.606722314554395e+01 -2.609074495294231e+01 -2.611428267453130e+01 + -2.613783633242288e+01 -2.616140594232113e+01 -2.618499148111656e+01 -2.620859292804694e+01 -2.623221031055255e+01 + -2.625584365675950e+01 -2.627949294933480e+01 -2.630315816707157e+01 -2.632683931872623e+01 -2.635053642045652e+01 + -2.637424948806206e+01 -2.639797853015353e+01 -2.642172352694394e+01 -2.644548446269175e+01 -2.646926136623515e+01 + -2.649305426487780e+01 -2.651686313520573e+01 -2.654068795336410e+01 -2.656452874445229e+01 -2.658838553565089e+01 + -2.661225831351167e+01 -2.663614706041860e+01 -2.666005178271351e+01 -2.668397249386109e+01 -2.670790921185966e+01 + -2.673186194785124e+01 -2.675583068101895e+01 -2.677981539336416e+01 -2.680381611012034e+01 -2.682783285712106e+01 + -2.685186561936856e+01 -2.687591437786270e+01 -2.689997913842517e+01 -2.692405991477839e+01 -2.694815672742597e+01 + -2.697226958936361e+01 -2.699639847677425e+01 -2.702054336911223e+01 -2.704470429573021e+01 -2.706888128546201e+01 + -2.709307431516761e+01 -2.711728336172764e+01 -2.714150845407871e+01 -2.716574962162754e+01 -2.719000684360529e+01 + -2.721428009605862e+01 -2.723856939247152e+01 -2.726287475352885e+01 -2.728719619128178e+01 -2.731153370993099e+01 + -2.733588729090867e+01 -2.736025692081293e+01 -2.738464262967399e+01 -2.740904444482641e+01 -2.743346233939021e+01 + -2.745789628706843e+01 -2.748234631811058e+01 -2.750681246441337e+01 -2.753129470791622e+01 -2.755579302585287e+01 + -2.758030742659158e+01 -2.760483792680023e+01 -2.762938454521084e+01 -2.765394729250735e+01 -2.767852614511706e+01 + -2.770312108289846e+01 -2.772773213369129e+01 -2.775235932608502e+01 -2.777700264368704e+01 -2.780166206614083e+01 + -2.782633760221619e+01 -2.785102926812099e+01 -2.787573708068912e+01 -2.790046104903706e+01 -2.792520115078565e+01 + -2.794995736764946e+01 -2.797472972921345e+01 -2.799951826412358e+01 -2.802432294939970e+01 -2.804914376169005e+01 + -2.807398072778233e+01 -2.809883387567351e+01 -2.812370318805837e+01 -2.814858864438241e+01 -2.817349025639583e+01 + -2.819840804241009e+01 -2.822334201467696e+01 -2.824829217820057e+01 -2.827325851505399e+01 -2.829824101147483e+01 + -2.832323969328987e+01 -2.834825458594292e+01 -2.837328567375688e+01 -2.839833293713809e+01 -2.842339638194745e+01 + -2.844847602232610e+01 -2.847357188008160e+01 -2.849868396869187e+01 -2.852381226064981e+01 -2.854895673259501e+01 + -2.857411741873861e+01 -2.859929435285462e+01 -2.862448750939692e+01 -2.864969686163745e+01 -2.867492243744038e+01 + -2.870016426611871e+01 -2.872542232818885e+01 -2.875069660076976e+01 -2.877598709618692e+01 -2.880129383482867e+01 + -2.882661683412842e+01 -2.885195610246809e+01 -2.887731161497835e+01 -2.890268335136361e+01 -2.892807134287440e+01 + -2.895347562064698e+01 -2.897889616381469e+01 -2.900433294736006e+01 -2.902978598166526e+01 -2.905525528595928e+01 + -2.908074087945912e+01 -2.910624277257485e+01 -2.913176094050105e+01 -2.915729536236611e+01 -2.918284606824940e+01 + -2.920841308797334e+01 -2.923399639938179e+01 -2.925959597987842e+01 -2.928521185708459e+01 -2.931084405942344e+01 + -2.933649256830759e+01 -2.936215736109871e+01 -2.938783844596477e+01 -2.941353583979598e+01 -2.943924956356517e+01 + -2.946497963001566e+01 -2.949072601489006e+01 -2.951648869675137e+01 -2.954226770244480e+01 -2.956806305999476e+01 + -2.959387475386040e+01 -2.961970276467950e+01 -2.964554710136948e+01 -2.967140778023144e+01 -2.969728481882160e+01 + -2.972317822671904e+01 -2.974908798033929e+01 -2.977501406036931e+01 -2.980095649774566e+01 -2.982691532231985e+01 + -2.985289050935425e+01 -2.987888203414534e+01 -2.990488992671488e+01 -2.993091421806754e+01 -2.995695488841446e+01 + -2.998301191396682e+01 -3.000908530572931e+01 -3.003517508294127e+01 -3.006128126298706e+01 -3.008740385472813e+01 + -3.011354283478899e+01 -3.013969818396866e+01 -3.016586993200092e+01 -3.019205810852835e+01 -3.021826269389396e+01 + -3.024448366459688e+01 -3.027072103106001e+01 -3.029697481234801e+01 -3.032324502816885e+01 -3.034953168930138e+01 + -3.037583477016444e+01 -3.040215424919064e+01 -3.042849015722735e+01 -3.045484252487287e+01 -3.048121132931426e+01 + -3.050759654718701e+01 -3.053399820633122e+01 -3.056041633582694e+01 -3.058685091850949e+01 -3.061330193277164e+01 + -3.063976938548045e+01 -3.066625329189824e+01 -3.069275367239408e+01 -3.071927054017274e+01 -3.074580387467516e+01 + -3.077235365736276e+01 -3.079891991154272e+01 -3.082550266154129e+01 -3.085210189391538e+01 -3.087871759159065e+01 + -3.090534976073683e+01 -3.093199841535169e+01 -3.095866357750086e+01 -3.098534526117247e+01 -3.101204343997652e+01 + -3.103875809113482e+01 -3.106548924669440e+01 -3.109223693806243e+01 -3.111900113926174e+01 -3.114578182447812e+01 + -3.117257902593346e+01 -3.119939277712214e+01 -3.122622305859262e+01 -3.125306984560579e+01 -3.127993314521812e+01 + -3.130681297362548e+01 -3.133370935178603e+01 -3.136062229292185e+01 -3.138755177454848e+01 -3.141449777743489e+01 + -3.144146033107010e+01 -3.146843946420585e+01 -3.149543515392452e+01 -3.152244737446985e+01 -3.154947614039987e+01 + -3.157652147508332e+01 -3.160358339681746e+01 -3.163066191390917e+01 -3.165775699977537e+01 -3.168486863280270e+01 + -3.171199684614663e+01 -3.173914167265754e+01 -3.176630308919665e+01 -3.179348107134120e+01 -3.182067564552154e+01 + -3.184788683989369e+01 -3.187511463866380e+01 -3.190235902163426e+01 -3.192961999494226e+01 -3.195689757352222e+01 + -3.198419178116283e+01 -3.201150263346307e+01 -3.203883010440887e+01 -3.206617417058478e+01 -3.209353486058297e+01 + -3.212091220418486e+01 -3.214830618392138e+01 -3.217571677868305e+01 -3.220314400004898e+01 -3.223058786708538e+01 + -3.225804839611857e+01 -3.228552559489243e+01 -3.231301943956095e+01 -3.234052991162765e+01 -3.236805704558397e+01 + -3.239560087404328e+01 -3.242316136911894e+01 -3.245073850255218e+01 -3.247833230509534e+01 -3.250594280965240e+01 + -3.253356999872297e+01 -3.256121385028732e+01 -3.258887437465276e+01 -3.261655158960600e+01 -3.264424551052439e+01 + -3.267195614529539e+01 -3.269968347425627e+01 -3.272742748229857e+01 -3.275518820008119e+01 -3.278296565603427e+01 + -3.281075982390590e+01 -3.283857067801981e+01 -3.286639824968410e+01 -3.289424257141810e+01 -3.292210362360176e+01 + -3.294998138240963e+01 -3.297787585933321e+01 -3.300578707421773e+01 -3.303371504500630e+01 -3.306165978102434e+01 + -3.308962125902853e+01 -3.311759946003357e+01 -3.314559441465483e+01 -3.317360615365304e+01 -3.320163465877013e+01 + -3.322967990687330e+01 -3.325774190434956e+01 -3.328582066713852e+01 -3.331391621987054e+01 -3.334202857831301e+01 + -3.337015771409062e+01 -3.339830360273710e+01 -3.342646627956469e+01 -3.345464577921614e+01 -3.348284207387808e+01 + -3.351105513572078e+01 -3.353928499930519e+01 -3.356753169996216e+01 -3.359579521371194e+01 -3.362407551222610e+01 + -3.365237260909204e+01 -3.368068652715969e+01 -3.370901728441355e+01 -3.373736488954338e+01 -3.376572931892538e+01 + -3.379411055342771e+01 -3.382250862419983e+01 -3.385092356238306e+01 -3.387935534880526e+01 -3.390780395979943e+01 + -3.393626940403256e+01 -3.396475169950308e+01 -3.399325086920118e+01 -3.402176692682492e+01 -3.405029984391190e+01 + -3.407884959628061e+01 -3.410741621903333e+01 -3.413599974690003e+01 -3.416460015383780e+01 -3.419321741347679e+01 + -3.422185155891206e+01 -3.425050262370409e+01 -3.427917058381036e+01 -3.430785541111823e+01 -3.433655711883738e+01 + -3.436527572977491e+01 -3.439401126380553e+01 -3.442276373145798e+01 -3.445153310880944e+01 -3.448031937598221e+01 + -3.450912256373026e+01 -3.453794270224409e+01 -3.456677976882821e+01 -3.459563373771100e+01 -3.462450462370172e+01 + -3.465339245071625e+01 -3.468229723851619e+01 -3.471121899611902e+01 -3.474015769371995e+01 -3.476911330776019e+01 + -3.479808587848705e+01 -3.482707544447295e+01 -3.485608197378501e+01 -3.488510543365825e+01 -3.491414585850467e+01 + -3.494320328527482e+01 -3.497227769389696e+01 -3.500136905869145e+01 -3.503047738856913e+01 -3.505960270226024e+01 + -3.508874502318216e+01 -3.511790436512474e+01 -3.514708069868058e+01 -3.517627399907308e+01 -3.520548430324607e+01 + -3.523471164812467e+01 -3.526395600883895e+01 -3.529321735592740e+01 -3.532249570335686e+01 -3.535179107461137e+01 + -3.538110348781549e+01 -3.541043295179184e+01 -3.543977944351469e+01 -3.546914294470585e+01 -3.549852348792567e+01 + -3.552792110371767e+01 -3.555733576371960e+01 -3.558676744035331e+01 -3.561621616808287e+01 -3.564568198278825e+01 + -3.567516486397158e+01 -3.570466478590109e+01 -3.573418175828719e+01 -3.576371580017962e+01 -3.579326693254331e+01 + -3.582283516733191e+01 -3.585242047853867e+01 -3.588202284498269e+01 -3.591164230274704e+01 -3.594127888660625e+01 + -3.597093256883734e+01 -3.600060331833949e+01 -3.603029115299790e+01 -3.605999610029281e+01 -3.608971817709886e+01 + -3.611945738978410e+01 -3.614921371329605e+01 -3.617898712799953e+01 -3.620877766734910e+01 -3.623858536391516e+01 + -3.626841019364145e+01 -3.629825213180558e+01 -3.632811120764664e+01 -3.635798745148868e+01 -3.638788084403422e+01 + -3.641779136227628e+01 -3.644771901799147e+01 -3.647766383142195e+01 -3.650762582188893e+01 -3.653760499949427e+01 + -3.656760133838370e+01 -3.659761481766282e+01 -3.662764547223315e+01 -3.665769333671685e+01 -3.668775838882340e+01 + -3.671784060113342e+01 -3.674793998262476e+01 -3.677805655273779e+01 -3.680819033636626e+01 -3.683834134900049e+01 + -3.686850956306390e+01 -3.689869495454472e+01 -3.692889755675729e+01 -3.695911740229619e+01 -3.698935446355054e+01 + -3.701960871343802e+01 -3.704988018719579e+01 -3.708016892120266e+01 -3.711047489408478e+01 -3.714079807933708e+01 + -3.717113848768184e+01 -3.720149613882988e+01 -3.723187105121882e+01 -3.726226323497034e+01 -3.729267266821555e+01 + -3.732309933333587e+01 -3.735354326170426e+01 -3.738400448395760e+01 -3.741448297879693e+01 -3.744497872108128e+01 + -3.747549172223736e+01 -3.750602200310610e+01 -3.753656958561755e+01 -3.756713448177913e+01 -3.759771666281819e+01 + -3.762831610507856e+01 -3.765893284615005e+01 -3.768956692232328e+01 -3.772021830344675e+01 -3.775088695941269e+01 + -3.778157292673024e+01 -3.781227624306894e+01 -3.784299688412320e+01 -3.787373482086582e+01 -3.790449006735824e+01 + -3.793526264738479e+01 -3.796605258053289e+01 -3.799685987630166e+01 -3.802768450803411e+01 -3.805852645435349e+01 + -3.808938575116029e+01 -3.812026243387959e+01 -3.815115647875793e+01 -3.818206785737669e+01 -3.821299658183555e+01 + -3.824394267407146e+01 -3.827490615485264e+01 -3.830588703573063e+01 -3.833688529255877e+01 -3.836790090523419e+01 + -3.839893390552727e+01 -3.842998432385276e+01 -3.846105213333004e+01 -3.849213730842061e+01 -3.852323988624988e+01 + -3.855435990371658e+01 -3.858549733414936e+01 -3.861665214665468e+01 -3.864782435702053e+01 -3.867901399128823e+01 + -3.871022106983104e+01 -3.874144560188923e+01 -3.877268755783931e+01 -3.880394691415978e+01 -3.883522371060106e+01 + -3.886651798555487e+01 -3.889782970870629e+01 -3.892915884903668e+01 -3.896050544141922e+01 -3.899186952243698e+01 + -3.902325106962145e+01 -3.905465005558139e+01 -3.908606649228560e+01 -3.911750040150871e+01 -3.914895180488885e+01 + -3.918042071436301e+01 -3.921190710320024e+01 -3.924341094905042e+01 -3.927493228575462e+01 -3.930647114756201e+01 + -3.933802751416320e+01 -3.936960136044893e+01 -3.940119269666864e+01 -3.943280154239230e+01 -3.946442791911308e+01 + -3.949607183932866e+01 -3.952773327763106e+01 -3.955941221301939e+01 -3.959110868002649e+01 -3.962282271157864e+01 + -3.965455427864192e+01 -3.968630335291520e+01 -3.971806997098832e+01 -3.974985417066340e+01 -3.978165592970123e+01 + -3.981347522024374e+01 -3.984531205199855e+01 -3.987716644515135e+01 -3.990903842423468e+01 -3.994092800366619e+01 + -3.997283515305731e+01 -4.000475984705376e+01 -4.003670212524431e+01 -4.006866202678586e+01 -4.010063952416471e+01 + -4.013263458527370e+01 -4.016464722630246e+01 -4.019667747391531e+01 -4.022872534837892e+01 -4.026079085897078e+01 + -4.029287397740929e+01 -4.032497468131004e+01 -4.035709300943645e+01 -4.038922899883853e+01 -4.042138261856475e+01 + -4.045355383733334e+01 -4.048574269054266e+01 -4.051794921541258e+01 -4.055017338976896e+01 -4.058241518694505e+01 + -4.061467462169752e+01 -4.064695171778673e+01 -4.067924649356458e+01 -4.071155895737036e+01 -4.074388908290122e+01 + -4.077623684962312e+01 -4.080860229471885e+01 -4.084098545450960e+01 -4.087338630415373e+01 -4.090580481395003e+01 + -4.093824099592192e+01 -4.097069487270115e+01 -4.100316646762842e+01 -4.103565579436854e+01 -4.106816282717386e+01 + -4.110068754422534e+01 -4.113322997883087e+01 -4.116579016300655e+01 -4.119836806847471e+01 -4.123096366815907e+01 + -4.126357700008218e+01 -4.129620810254014e+01 -4.132885694982463e+01 -4.136152351139461e+01 -4.139420780138244e+01 + -4.142690984447184e+01 -4.145962966287846e+01 -4.149236726828771e+01 -4.152512263273182e+01 -4.155789573295193e+01 + -4.159068660417814e+01 -4.162349528189675e+01 -4.165632174413023e+01 -4.168916596438000e+01 -4.172202795552684e+01 + -4.175490773972726e+01 -4.178780533686147e+01 -4.182072075745918e+01 -4.185365397692470e+01 -4.188660497553830e+01 + -4.191957378820953e+01 -4.195256044830271e+01 -4.198556492837179e+01 -4.201858720098863e+01 -4.205162729960676e+01 + -4.208468525919077e+01 -4.211776105986812e+01 -4.215085467691669e+01 -4.218396612105321e+01 -4.221709541226407e+01 + -4.225024257217616e+01 -4.228340761361360e+01 -4.231659051254899e+01 -4.234979124870078e+01 -4.238300985362200e+01 + -4.241624635885866e+01 -4.244950074409413e+01 -4.248277298525672e+01 -4.251606309511715e+01 -4.254937109530931e+01 + -4.258269700607782e+01 -4.261604083828603e+01 -4.264940256666174e+01 -4.268278217100897e+01 -4.271617968757233e+01 + -4.274959515039267e+01 -4.278302852825576e+01 -4.281647979114838e+01 -4.284994897911630e+01 -4.288343613339240e+01 + -4.291694122989936e+01 -4.295046423857267e+01 -4.298400517070971e+01 -4.301756404788966e+01 -4.305114089145757e+01 + -4.308473571388112e+01 -4.311834849235274e+01 -4.315197920801049e+01 -4.318562789305037e+01 -4.321929457904871e+01 + -4.325297924404543e+01 -4.328668186207582e+01 -4.332040244469275e+01 -4.335414101381126e+01 -4.338789759527743e+01 + -4.342167220389723e+01 -4.345546480638487e+01 -4.348927537558045e+01 -4.352310395691921e+01 -4.355695059370569e+01 + -4.359081524812669e+01 -4.362469788222823e+01 -4.365859853861065e+01 -4.369251726260594e+01 -4.372645402991838e+01 + -4.376040880917880e+01 -4.379438161035186e+01 -4.382837245512241e+01 -4.386238137072252e+01 -4.389640837367813e+01 + -4.393045343214298e+01 -4.396451651875527e+01 -4.399859767246311e+01 -4.403269693263155e+01 -4.406681427398399e+01 + -4.410094966630350e+01 -4.413510312425358e+01 -4.416927467295284e+01 -4.420346433446015e+01 -4.423767212069691e+01 + -4.427189800609401e+01 -4.430614196966567e+01 -4.434040404624994e+01 -4.437468426893484e+01 -4.440898260798443e+01 + -4.444329903479183e+01 -4.447763358808973e+01 -4.451198630763288e+01 -4.454635716992501e+01 -4.458074614621454e+01 + -4.461515324997958e+01 -4.464957850449220e+01 -4.468402192997090e+01 -4.471848353715485e+01 -4.475296330191956e+01 + -4.478746120505344e+01 -4.482197728186011e+01 -4.485651156648301e+01 -4.489106403390974e+01 -4.492563465506775e+01 + -4.496022344379944e+01 -4.499483042484561e+01 -4.502945562362576e+01 -4.506409905435962e+01 -4.509876068578905e+01 + -4.513344049220396e+01 -4.516813851556444e+01 -4.520285479589762e+01 -4.523758929782897e+01 -4.527234198687941e+01 + -4.530711290755342e+01 -4.534190210524451e+01 -4.537670954991925e+01 -4.541153520580425e+01 -4.544637908959269e+01 + -4.548124122972980e+01 -4.551612164920255e+01 -4.555102035951307e+01 -4.558593733168242e+01 -4.562087254236648e+01 + -4.565582603124118e+01 -4.569079783605451e+01 -4.572578792382265e+01 -4.576079626235065e+01 -4.579582289333027e+01 + -4.583086785976433e+01 -4.586593113601344e+01 -4.590101269036680e+01 -4.593611253546989e+01 -4.597123069530716e+01 + -4.600636719486254e+01 -4.604152204856955e+01 -4.607669522766013e+01 -4.611188670797630e+01 -4.614709652700154e+01 + -4.618232472227299e+01 -4.621757126990104e+01 -4.625283614113306e+01 -4.628811934919114e+01 -4.632342091751210e+01 + -4.635874086841728e+01 -4.639407921460932e+01 -4.642943593143147e+01 -4.646481099859044e+01 -4.650020445060623e+01 + -4.653561632090474e+01 -4.657104658372261e+01 -4.660649521327068e+01 -4.664196224284595e+01 -4.667744770698098e+01 + -4.671295158606459e+01 -4.674847385553061e+01 -4.678401452513644e+01 -4.681957361522331e+01 -4.685515115414413e+01 + -4.689074715945064e+01 -4.692636159747788e+01 -4.696199443933372e+01 -4.699764572643400e+01 -4.703331550121288e+01 + -4.706900373987032e+01 -4.710471041222129e+01 -4.714043552877479e+01 -4.717617911151273e+01 -4.721194118761495e+01 + -4.724772177397794e+01 -4.728352084116666e+01 -4.731933836391387e+01 -4.735517437995513e+01 -4.739102892624472e+01 + -4.742690197360956e+01 -4.746279349304486e+01 -4.749870352234630e+01 -4.753463210070628e+01 -4.757057920610364e+01 + -4.760654481072343e+01 -4.764252892478859e+01 -4.767853156968457e+01 -4.771455277340900e+01 -4.775059255327958e+01 + -4.778665087728216e+01 -4.782272771801416e+01 -4.785882311585065e+01 -4.789493711157514e+01 -4.793106967982698e+01 + -4.796722079021173e+01 -4.800339045834357e+01 -4.803957871014897e+01 -4.807578556679541e+01 -4.811201103905631e+01 + -4.814825510088780e+01 -4.818451773166895e+01 -4.822079896928767e+01 -4.825709884980719e+01 -4.829341734348342e+01 + -4.832975442115909e+01 -4.836611012183125e+01 -4.840248448526336e+01 -4.843887748613056e+01 -4.847528909416636e+01 + -4.851171932442625e+01 -4.854816820273300e+01 -4.858463575265701e+01 -4.862112198691646e+01 -4.865762687707282e+01 + -4.869415040003414e+01 -4.873069259525141e+01 -4.876725350118260e+01 -4.880383308977095e+01 -4.884043132904604e+01 + -4.887704823789731e+01 -4.891368384608068e+01 -4.895033817595851e+01 -4.898701123776245e+01 -4.902370300059485e+01 + -4.906041344002308e+01 -4.909714259860375e+01 -4.913389051725400e+01 -4.917065716334413e+01 -4.920744250429804e+01 + -4.924424658130064e+01 -4.928106943700116e+01 -4.931791104614518e+01 -4.935477137752828e+01 -4.939165044404930e+01 + -4.942854827009338e+01 -4.946546488188807e+01 -4.950240029454247e+01 -4.953935447684974e+01 -4.957632740294361e+01 + -4.961331911463601e+01 -4.965032965315336e+01 -4.968735898970213e+01 -4.972440709120082e+01 -4.976147397743583e+01 + -4.979855967878247e+01 -4.983566421510402e+01 -4.987278759472007e+01 -4.990992979028766e+01 -4.994709078100569e+01 + -4.998427060790318e+01 -5.002146930959274e+01 -5.005868685319148e+01 -5.009592320640078e+01 -5.013317841075434e+01 + -5.017045250915469e+01 -5.020774547614742e+01 -5.024505728017924e+01 -5.028238793365752e+01 -5.031973746104961e+01 + -5.035710589110189e+01 -5.039449324090066e+01 -5.043189947661289e+01 -5.046932456973549e+01 -5.050676856400442e+01 + -5.054423150327239e+01 -5.058171335962052e+01 -5.061921409929316e+01 -5.065673373695915e+01 -5.069427229950105e+01 + -5.073182981423184e+01 -5.076940629607507e+01 -5.080700170996615e+01 -5.084461602753602e+01 -5.088224929718589e+01 + -5.091990156525010e+01 -5.095757279302548e+01 -5.099526294209112e+01 -5.103297206019221e+01 -5.107070019605169e+01 + -5.110844731613729e+01 -5.114621338143406e+01 -5.118399841325091e+01 -5.122180244526444e+01 -5.125962550029841e+01 + -5.129746758802490e+01 -5.133532867636215e+01 -5.137320874011100e+01 -5.141110782335645e+01 -5.144902596945006e+01 + -5.148696314952589e+01 -5.152491932947918e+01 -5.156289452646703e+01 -5.160088876945014e+01 -5.163890208334180e+01 + -5.167693448081514e+01 -5.171498592963017e+01 -5.175305640369855e+01 -5.179114594645165e+01 -5.182925460014935e+01 + -5.186738233284598e+01 -5.190552911234031e+01 -5.194369497961412e+01 -5.198187997663295e+01 -5.202008407611459e+01 + -5.205830724580739e+01 -5.209654950282933e+01 -5.213481087573764e+01 -5.217309138947744e+01 -5.221139105690054e+01 + -5.224970984609732e+01 -5.228804773087789e+01 -5.232640475269200e+01 -5.236478095346914e+01 -5.240317630941821e+01 + -5.244159079031952e+01 -5.248002440595931e+01 -5.251847717885386e+01 -5.255694914243367e+01 -5.259544031823210e+01 + -5.263395066927961e+01 -5.267248016335085e+01 -5.271102884570031e+01 -5.274959676081755e+01 -5.278818387265291e+01 + -5.282679014593192e+01 -5.286541562901994e+01 -5.290406037048660e+01 -5.294272433607927e+01 -5.298140748616263e+01 + -5.302010984239256e+01 -5.305883143892672e+01 -5.309757229863885e+01 -5.313633243133304e+01 -5.317511180581835e+01 + -5.321391039785607e+01 -5.325272825201081e+01 -5.329156541074357e+01 -5.333042183929739e+01 -5.336929750308754e+01 + -5.340819244543594e+01 -5.344710671111962e+01 -5.348604027282968e+01 -5.352499309722418e+01 -5.356396519891433e+01 + -5.360295660504364e+01 -5.364196734493171e+01 -5.368099743556814e+01 -5.372004684244607e+01 -5.375911553606044e+01 + -5.379820355840945e+01 -5.383731095277006e+01 -5.387643769603123e+01 -5.391558375867469e+01 -5.395474915194053e+01 + -5.399393389872404e+01 -5.403313802778240e+01 -5.407236155707715e+01 -5.411160445552515e+01 -5.415086669663323e+01 + -5.419014832131279e+01 -5.422944936941720e+01 -5.426876980916325e+01 -5.430810960961936e+01 -5.434746881489674e+01 + -5.438684746929877e+01 -5.442624554285502e+01 -5.446566300018413e+01 -5.450509985853421e+01 -5.454455614758906e+01 + -5.458403189414573e+01 -5.462352711279953e+01 -5.466304177222543e+01 -5.470257584656953e+01 -5.474212937778257e+01 + -5.478170240720980e+01 -5.482129490597043e+01 -5.486090684084346e+01 -5.490053823147309e+01 -5.494018910890276e+01 + -5.497985949690793e+01 -5.501954940653937e+01 -5.505925880521750e+01 -5.509898766755921e+01 -5.513873604059781e+01 + -5.517850396943321e+01 -5.521829141901578e+01 -5.525809835354192e+01 -5.529792481434151e+01 -5.533777084523449e+01 + -5.537763642286803e+01 -5.541752151714192e+01 -5.545742613813913e+01 -5.549735030880384e+01 -5.553729406334213e+01 + -5.557725742375872e+01 -5.561724035199087e+01 -5.565724281465346e+01 -5.569726485713910e+01 -5.573730652628086e+01 + -5.577736779589668e+01 -5.581744863307357e+01 -5.585754905099014e+01 -5.589766907536871e+01 -5.593780873601526e+01 + -5.597796805069111e+01 -5.601814698489535e+01 -5.605834550959182e+01 -5.609856366986563e+01 -5.613880151023810e+01 + -5.617905899885479e+01 -5.621933610311022e+01 -5.625963286377015e+01 -5.629994932270948e+01 -5.634028545286861e+01 + -5.638064122221132e+01 -5.642101664772899e+01 -5.646141175844968e+01 -5.650182658252075e+01 -5.654226113528433e+01 + -5.658271538174220e+01 -5.662318929319503e+01 -5.666368291647893e+01 -5.670419629786259e+01 -5.674472940580990e+01 + -5.678528220346420e+01 -5.682585471049146e+01 -5.686644695909487e+01 -5.690705897510426e+01 -5.694769077129006e+01 + -5.698834231455854e+01 -5.702901357847642e+01 -5.706970460911611e+01 -5.711041545084194e+01 -5.715114606868026e+01 + -5.719189642778805e+01 -5.723266657318249e+01 -5.727345655110785e+01 -5.731426633285666e+01 -5.735509588339112e+01 + -5.739594521730356e+01 -5.743681436264626e+01 -5.747770335168147e+01 -5.751861220364783e+01 -5.755954088147938e+01 + -5.760048935348805e+01 -5.764145766580183e+01 -5.768244586550730e+01 -5.772345392571002e+01 -5.776448181276131e+01 + -5.780552953997691e+01 -5.784659713354442e+01 -5.788768462417462e+01 -5.792879202998626e+01 -5.796991931420698e+01 + -5.801106644664837e+01 -5.805223347834903e+01 -5.809342045860209e+01 -5.813462734849197e+01 -5.817585410820936e+01 + -5.821710078257841e+01 -5.825836741928538e+01 -5.829965399283203e+01 -5.834096047087346e+01 -5.838228686686274e+01 + -5.842363320676851e+01 -5.846499952082397e+01 -5.850638582715609e+01 -5.854779209120221e+01 -5.858921828442874e+01 + -5.863066445510763e+01 -5.867213065032231e+01 -5.871361683559694e+01 -5.875512297138874e+01 -5.879664907944645e+01 + -5.883819519466417e+01 -5.887976134322624e+01 -5.892134753756825e+01 -5.896295374384051e+01 -5.900457993500612e+01 + -5.904622615756436e+01 -5.908789245663575e+01 -5.912957879828990e+01 -5.917128514850664e+01 -5.921301155195771e+01 + -5.925475805384439e+01 -5.929652462279476e+01 -5.933831122286624e+01 -5.938011787640643e+01 -5.942194461763230e+01 + -5.946379146994821e+01 -5.950565844408734e+01 -5.954754551091072e+01 -5.958945264733813e+01 -5.963137989439624e+01 + -5.967332729249499e+01 -5.971529481547052e+01 -5.975728243227523e+01 -5.979929015889982e+01 -5.984131802305070e+01 + -5.988336605225896e+01 -5.992543426246962e+01 -5.996752262345901e+01 -6.000963111046766e+01 -6.005175976676178e+01 + -6.009390863383608e+01 -6.013607767807394e+01 -6.017826686618813e+01 -6.022047624132026e+01 -6.026270584835797e+01 + -6.030495566274465e+01 -6.034722565381767e+01 -6.038951583593452e+01 -6.043182623512069e+01 -6.047415687905394e+01 + -6.051650778421003e+01 -6.055887892060463e+01 -6.060127026325783e+01 -6.064368185366749e+01 -6.068611373308907e+01 + -6.072856587533070e+01 -6.077103824887340e+01 -6.081353086833690e+01 -6.085604376132918e+01 -6.089857696127247e+01 + -6.094113048823596e+01 -6.098370430306234e+01 -6.102629837247437e+01 -6.106891274594116e+01 -6.111154747264118e+01 + -6.115420251784390e+01 -6.119687784580902e+01 -6.123957350066591e+01 -6.128228952841628e+01 -6.132502590268162e+01 + -6.136778259056138e+01 -6.141055960544676e+01 -6.145335697380811e+01 -6.149617472814099e+01 -6.153901288864162e+01 + -6.158187142028389e+01 -6.162475029314290e+01 -6.166764955292113e+01 -6.171056924466600e+01 -6.175350933517737e+01 + -6.179646979123154e+01 -6.183945065775757e+01 -6.188245198047678e+01 -6.192547373012725e+01 -6.196851587175868e+01 + -6.201157842265037e+01 -6.205466141333163e+01 -6.209776487510229e+01 -6.214088882566958e+01 -6.218403322759970e+01 + -6.222719804958889e+01 -6.227038333999444e+01 -6.231358914752139e+01 -6.235681544260558e+01 -6.240006218936849e+01 + -6.244332940494305e+01 -6.248661712010740e+01 -6.252992536720910e+01 -6.257325416420860e+01 -6.261660346994837e+01 + -6.265997325077347e+01 -6.270336356215701e+01 -6.274677445777788e+01 -6.279020589501037e+01 -6.283365783085999e+01 + -6.287713031716163e+01 -6.292062340781234e+01 -6.296413707012920e+01 -6.300767126475596e+01 -6.305122601222295e+01 + -6.309480134635203e+01 -6.313839729424505e+01 -6.318201386936521e+01 -6.322565103734121e+01 -6.326930877093868e+01 + -6.331298711930568e+01 -6.335668613058504e+01 -6.340040577251647e+01 -6.344414600718050e+01 -6.348790685442323e+01 + -6.353168834759008e+01 -6.357549051625812e+01 -6.361931337593239e+01 -6.366315688959789e+01 -6.370702102749119e+01 + -6.375090584137499e+01 -6.379481138078580e+01 -6.383873760482961e+01 -6.388268447297220e+01 -6.392665203654889e+01 + -6.397064034897519e+01 -6.401464938011861e+01 -6.405867909237229e+01 -6.410272950177993e+01 -6.414680063823367e+01 + -6.419089253336912e+01 -6.423500520539493e+01 -6.427913861706836e+01 -6.432329273774181e+01 -6.436746761859949e+01 + -6.441166331065573e+01 -6.445587978241413e+01 -6.450011699516882e+01 -6.454437496388719e+01 -6.458865371852110e+01 + -6.463295329528786e+01 -6.467727371608086e+01 -6.472161493923234e+01 -6.476597692945877e+01 -6.481035974057480e+01 + -6.485476342551981e+01 -6.489918794463497e+01 -6.494363325783405e+01 -6.498809941591921e+01 -6.503258647107099e+01 + -6.507709439009531e+01 -6.512162313341831e+01 -6.516617272132122e+01 -6.521074318787740e+01 -6.525533456247440e+01 + -6.529994686059398e+01 -6.534458004678092e+01 -6.538923409250538e+01 -6.543390904787570e+01 -6.547860496211884e+01 + -6.552332180229843e+01 -6.556805952953434e+01 -6.561281816333469e+01 -6.565759773746066e+01 -6.570239828429803e+01 + -6.574721982146080e+01 -6.579206230885156e+01 -6.583692571363754e+01 -6.588181008975629e+01 -6.592671548982709e+01 + -6.597164187442638e+01 -6.601658920334479e+01 -6.606155752527242e+01 -6.610654689090467e+01 -6.615155727005924e+01 + -6.619658862652422e+01 -6.624164098084657e+01 -6.628671436645676e+01 -6.633180881156068e+01 -6.637692433038681e+01 + -6.642206088647883e+01 -6.646721845110714e+01 -6.651239707713407e+01 -6.655759681603797e+01 -6.660281763216933e+01 + -6.664805948389387e+01 -6.669332239276561e+01 -6.673860639512726e+01 -6.678391152328841e+01 -6.682923779433044e+01 + -6.687458516845543e+01 -6.691995361277515e+01 -6.696534317891920e+01 -6.701075391795754e+01 -6.705618579420361e+01 + -6.710163877100581e+01 -6.714711289460833e+01 -6.719260821321966e+01 -6.723812470001026e+01 -6.728366232121398e+01 + -6.732922109035582e+01 -6.737480103488133e+01 -6.742040219062761e+01 -6.746602458035952e+01 -6.751166816616187e+01 + -6.755733291529161e+01 -6.760301887637438e+01 -6.764872609859751e+01 -6.769445455202660e+01 -6.774020420051386e+01 + -6.778597506217976e+01 -6.783176716876942e+01 -6.787758055225885e+01 -6.792341523092826e+01 -6.796927116804379e+01 + -6.801514833341810e+01 -6.806104677806347e+01 -6.810696655123587e+01 -6.815290761396663e+01 -6.819886992772128e+01 + -6.824485354392678e+01 -6.829085851532395e+01 -6.833688480994840e+01 -6.838293238885097e+01 -6.842900126984890e+01 + -6.847509148538957e+01 -6.852120306967514e+01 -6.856733604269469e+01 -6.861349036583006e+01 -6.865966600658993e+01 + -6.870586301559659e+01 -6.875208144399036e+01 -6.879832126187024e+01 -6.884458243234171e+01 -6.889086497157696e+01 + -6.893716890990422e+01 -6.898349428120915e+01 -6.902984110598732e+01 -6.907620934761650e+01 -6.912259897511596e+01 + -6.916901003718877e+01 -6.921544258172949e+01 -6.926189657371528e+01 -6.930837197817074e+01 -6.935486884322755e+01 + -6.940138721768092e+01 -6.944792706987337e+01 -6.949448836290087e+01 -6.954107111932564e+01 -6.958767537490402e+01 + -6.963430115870300e+01 -6.968094848498497e+01 -6.972761731548312e+01 -6.977430762020695e+01 -6.982101945480034e+01 + -6.986775287255249e+01 -6.991450783170005e+01 -6.996128429032680e+01 -7.000808230095708e+01 -7.005490191787665e+01 + -7.010174310797666e+01 -7.014860583121035e+01 -7.019549010717337e+01 -7.024239597049470e+01 -7.028932345629492e+01 + -7.033627258446040e+01 -7.038324331344937e+01 -7.043023560838913e+01 -7.047724952251053e+01 -7.052428510987777e+01 + -7.057134233978515e+01 -7.061842117397924e+01 -7.066552162878578e+01 -7.071264373512433e+01 -7.075978752771100e+01 + -7.080695302731498e+01 -7.085414019512091e+01 -7.090134899910394e+01 -7.094857949398551e+01 -7.099583173235354e+01 + -7.104310567151599e+01 -7.109040126922885e+01 -7.113771858031990e+01 -7.118505766125368e+01 -7.123241847797109e+01 + -7.127980098937178e+01 -7.132720521671429e+01 -7.137463119544236e+01 -7.142207895538176e+01 -7.146954851252747e+01 + -7.151703983316882e+01 -7.156455289009196e+01 -7.161208773177542e+01 -7.165964440570248e+01 -7.170722287968356e+01 + -7.175482311646741e+01 -7.180244513822917e+01 -7.185008898098621e+01 -7.189775467669884e+01 -7.194544224180910e+01 + -7.199315163474331e+01 -7.204088282234626e+01 -7.208863586315185e+01 -7.213641081375658e+01 -7.218420763131780e+01 + -7.223202627227879e+01 -7.227986678966526e+01 -7.232772923884254e+01 -7.237561358795277e+01 -7.242351979769759e+01 + -7.247144788623903e+01 -7.251939788668284e+01 -7.256736983444897e+01 -7.261536375015235e+01 -7.266337959287341e+01 + -7.271141732841731e+01 -7.275947701102203e+01 -7.280755869538000e+01 -7.285566234956853e+01 -7.290378793432680e+01 + -7.295193546765573e+01 -7.300010498266862e+01 -7.304829651566631e+01 -7.309651008753943e+01 -7.314474565435016e+01 + -7.319300317971540e+01 -7.324128272229925e+01 -7.328958433981238e+01 -7.333790799110540e+01 -7.338625363374130e+01 + -7.343462131899291e+01 -7.348301110053259e+01 -7.353142294792167e+01 -7.357985682361442e+01 -7.362831274574745e+01 + -7.367679074711965e+01 -7.372529086349638e+01 -7.377381311579366e+01 -7.382235746256312e+01 -7.387092386912651e+01 + -7.391951239025020e+01 -7.396812308115555e+01 -7.401675590943988e+01 -7.406541083531380e+01 -7.411408787706513e+01 + -7.416278706814910e+01 -7.421150844461324e+01 -7.426025202733783e+01 -7.430901777394124e+01 -7.435780564940528e+01 + -7.440661571142732e+01 -7.445544801616209e+01 -7.450430252087864e+01 -7.455317918285648e+01 -7.460207805830268e+01 + -7.465099920497126e+01 -7.469994258787753e+01 -7.474890816454140e+01 -7.479789595523943e+01 -7.484690599592756e+01 + -7.489593832252380e+01 -7.494499295533201e+01 -7.499406985223764e+01 -7.504316897827101e+01 -7.509229038945979e+01 + -7.514143414169166e+01 -7.519060019929748e+01 -7.523978851997632e+01 -7.528899912645726e+01 -7.533823205657275e+01 + -7.538748734353926e+01 -7.543676500532445e+01 -7.548606500351643e+01 -7.553538730703876e+01 -7.558473197053598e+01 + -7.563409904619321e+01 -7.568348849063742e+01 -7.573290026170078e+01 -7.578233441759443e+01 -7.583179101796470e+01 + -7.588127002782028e+01 -7.593077140392674e+01 -7.598029516471465e+01 -7.602984134475692e+01 -7.607940998153097e+01 + -7.612900109746634e+01 -7.617861465189691e+01 -7.622825061065345e+01 -7.627790902865043e+01 -7.632758996032740e+01 + -7.637729336914126e+01 -7.642701921265419e+01 -7.647676751583191e+01 -7.652653831849052e+01 -7.657633165244424e+01 + -7.662614753370475e+01 -7.667598592307560e+01 -7.672584678949215e+01 -7.677573018962489e+01 -7.682563617769370e+01 + -7.687556471038147e+01 -7.692551574474433e+01 -7.697548933686781e+01 -7.702548554509247e+01 -7.707550433774978e+01 + -7.712554567498073e+01 -7.717560957417300e+01 -7.722569606768573e+01 -7.727580519051753e+01 -7.732593696392289e+01 + -7.737609135154067e+01 -7.742626832278943e+01 -7.747646792782194e+01 -7.752669021677298e+01 -7.757693515897095e+01 + -7.762720271798948e+01 -7.767749291518889e+01 -7.772780578562232e+01 -7.777814136132783e+01 -7.782849965970544e+01 + -7.787888064261847e+01 -7.792928427988689e+01 -7.797971062869398e+01 -7.803015974345008e+01 -7.808063158011076e+01 + -7.813112609521906e+01 -7.818164334612277e+01 -7.823218339188995e+01 -7.828274619766600e+01 -7.833333172107952e+01 + -7.838393998361434e+01 -7.843457102192369e+01 -7.848522486948340e+01 -7.853590154498607e+01 -7.858660101116894e+01 + -7.863732323758104e+01 -7.868806827697425e+01 -7.873883618163512e+01 -7.878962691878654e+01 -7.884044044940295e+01 + -7.889127679452803e+01 -7.894213598992800e+01 -7.899301807018992e+01 -7.904392305456564e+01 -7.909485090214494e+01 + -7.914580158005610e+01 -7.919677514774288e+01 -7.924777166238927e+01 -7.929879107982515e+01 -7.934983335558289e+01 + -7.940089854535901e+01 -7.945198670709752e+01 -7.950309780756868e+01 -7.955423180605224e+01 -7.960538872303847e+01 + -7.965656859466247e+01 -7.970777145842827e+01 -7.975899733555858e+01 -7.981024618078136e+01 -7.986151795697417e+01 + -7.991281272610696e+01 -7.996413054847572e+01 -8.001547137858779e+01 -8.006683517069925e+01 -8.011822198384908e+01 + -8.016963187855384e+01 -8.022106481645797e+01 -8.027252075224854e+01 -8.032399971165485e+01 -8.037550173585385e+01 + -8.042702685677139e+01 -8.047857509055929e+01 -8.053014639952434e+01 -8.058174075328817e+01 -8.063335820457638e+01 + -8.068499880610621e+01 -8.073666252745771e+01 -8.078834933088126e+01 -8.084005923244513e+01 -8.089179226408041e+01 + -8.094354846735196e+01 -8.099532786819320e+01 -8.104713042037783e+01 -8.109895608507813e+01 -8.115080492521992e+01 + -8.120267700205356e+01 -8.125457226837462e+01 -8.130649067623317e+01 -8.135843228315183e+01 -8.141039715010918e+01 + -8.146238524643556e+01 -8.151439653208425e+01 -8.156643102114791e+01 -8.161848874447259e+01 -8.167056974577932e+01 + -8.172267405314662e+01 -8.177480161920819e+01 -8.182695240289546e+01 -8.187912646377457e+01 -8.193132386298609e+01 + -8.198354456733288e+01 -8.203578853472443e+01 -8.208805578183410e+01 -8.214034634197473e+01 -8.219266025625411e+01 + -8.224499755029157e+01 -8.229735817995817e+01 -8.234974210798764e+01 -8.240214939431286e+01 -8.245458009683706e+01 + -8.250703416814667e+01 -8.255951156203467e+01 -8.261201234243612e+01 -8.266453657428882e+01 -8.271708421639993e+01 + -8.276965521981012e+01 -8.282224961062391e+01 -8.287486743131451e+01 -8.292750871476633e+01 -8.298017347733835e+01 + -8.303286167887651e+01 -8.308557328775250e+01 -8.313830836295337e+01 -8.319106696215761e+01 -8.324384904719405e+01 + -8.329665457280116e+01 -8.334948356120523e+01 -8.340233605179664e+01 -8.345521208513452e+01 -8.350811168407860e+01 + -8.356103479952203e+01 -8.361398139085040e+01 -8.366695152338559e+01 -8.371994526125894e+01 -8.377296255790387e+01 + -8.382600336547402e+01 -8.387906774170159e+01 -8.393215574692768e+01 -8.398526734635097e+01 -8.403840249721476e+01 + -8.409156122008268e+01 -8.414474355213920e+01 -8.419794953373223e+01 -8.425117918830632e+01 -8.430443246852916e+01 + -8.435770933516140e+01 -8.441100985211256e+01 -8.446433408298962e+01 -8.451768198704093e+01 -8.457105351533237e+01 + -8.462444869055821e+01 -8.467786755329161e+01 -8.473131014399300e+01 -8.478477648534972e+01 -8.483826652906932e+01 + -8.489178023573824e+01 -8.494531767243778e+01 -8.499887890373510e+01 -8.505246387764603e+01 -8.510607254206460e+01 + -8.515970496094809e+01 -8.521336120130535e+01 -8.526704122628841e+01 -8.532074498941530e+01 -8.537447250952404e+01 + -8.542822382319736e+01 -8.548199897267675e+01 -8.553579798342942e+01 -8.558962080816578e+01 -8.564346740685433e+01 + -8.569733784125194e+01 -8.575123217367282e+01 -8.580515036687339e+01 -8.585909237532205e+01 -8.591305821989287e+01 + -8.596704793875205e+01 -8.602106157282915e+01 -8.607509914567974e+01 -8.612916060859980e+01 -8.618324592155754e+01 + -8.623735515146925e+01 -8.629148836331387e+01 -8.634564550737286e+01 -8.639982653295500e+01 -8.645403150017543e+01 + -8.650826047252751e+01 -8.656251341621210e+01 -8.661679028858919e+01 -8.667109110894766e+01 -8.672541591317201e+01 + -8.677976474159972e+01 -8.683413761829634e+01 -8.688853449778628e+01 -8.694295534179228e+01 -8.699740021037117e+01 + -8.705186916402354e+01 -8.710636216669133e+01 -8.716087917454270e+01 -8.721542020920894e+01 -8.726998530877070e+01 + -8.732457451164281e+01 -8.737918783967393e+01 -8.743382524811331e+01 -8.748848670054353e+01 -8.754317226047976e+01 + -8.759788198894785e+01 -8.765261583708421e+01 -8.770737375634857e+01 -8.776215580938322e+01 -8.781696206132678e+01 + -8.787179247612183e+01 -8.792664700860111e+01 -8.798152567835336e+01 -8.803642852212045e+01 -8.809135558050070e+01 + -8.814630687756171e+01 -8.820128236739042e+01 -8.825628201129771e+01 -8.831130586947003e+01 -8.836635400284558e+01 + -8.842142637649435e+01 -8.847652294770472e+01 -8.853164373850628e+01 -8.858678878695027e+01 -8.864195813043362e+01 + -8.869715178945941e+01 -8.875236971760948e+01 -8.880761187808301e+01 -8.886287833946902e+01 -8.891816916696094e+01 + -8.897348430677987e+01 -8.902882370531137e+01 -8.908418742857141e+01 -8.913957554536425e+01 -8.919498801601753e+01 + -8.925042479199006e+01 -8.930588589774098e+01 -8.936137137472512e+01 -8.941688125937962e+01 -8.947241557120560e+01 + -8.952797426697802e+01 -8.958355731201681e+01 -8.963916476854843e+01 -8.969479669732335e+01 -8.975045305628245e+01 + -8.980613379692392e+01 -8.986183894778455e+01 -8.991756855389235e+01 -8.997332264920152e+01 -9.002910125051302e+01 + -9.008490431708829e+01 -9.014073181666647e+01 -9.019658380843681e+01 -9.025246034941333e+01 -9.030836139645970e+01 + -9.036428690661128e+01 -9.042023693773967e+01 -9.047621154925669e+01 -9.053221070589892e+01 -9.058823436476921e+01 + -9.064428254711031e+01 -9.070035529106499e+01 -9.075645263823618e+01 -9.081257461289793e+01 -9.086872116654884e+01 + -9.092489225918972e+01 -9.098108795760594e+01 -9.103730832657459e+01 -9.109355331605536e+01 -9.114982287548730e+01 + -9.120611706704364e+01 -9.126243595579022e+01 -9.131877950563008e+01 -9.137514767186437e+01 -9.143154047654943e+01 + -9.148795795857168e+01 -9.154440015738282e+01 -9.160086709537343e+01 -9.165735872612346e+01 -9.171387501169491e+01 + -9.177041601688784e+01 -9.182698180564800e+01 -9.188357233576582e+01 -9.194018755741556e+01 -9.199682749646104e+01 + -9.205349219658670e+01 -9.211018169707003e+01 -9.216689601912306e+01 -9.222363511610273e+01 -9.228039895018067e+01 + -9.233718758664240e+01 -9.239400108840672e+01 -9.245083940581294e+01 -9.250770248979978e+01 -9.256459040628322e+01 + -9.262150322244982e+01 -9.267844089559186e+01 -9.273540337476760e+01 -9.279239068599267e+01 -9.284940287335907e+01 + -9.290643997630693e+01 -9.296350201607783e+01 -9.302058894577094e+01 -9.307770072730455e+01 -9.313483742601555e+01 + -9.319199910633068e+01 -9.324918572561810e+01 -9.330639723351504e+01 -9.336363365579297e+01 -9.342089503640302e+01 + -9.347818141588093e+01 -9.353549281584256e+01 -9.359282918563940e+01 -9.365019048477910e+01 -9.370757678565749e+01 + -9.376498815769901e+01 -9.382242454555492e+01 -9.387988589305337e+01 -9.393737226550313e+01 -9.399488373202897e+01 + -9.405242025553964e+01 -9.410998178945039e+01 -9.416756835541781e+01 -9.422517999301114e+01 -9.428281674520871e+01 + -9.434047863667399e+01 -9.439816561540189e+01 -9.445587763836596e+01 -9.451361477512259e+01 -9.457137709520302e+01 + -9.462916455545547e+01 -9.468697710379740e+01 -9.474481476510589e+01 -9.480267758244509e+01 -9.486056559466863e+01 + -9.491847882335075e+01 -9.497641722515867e+01 -9.503438076487508e+01 -9.509236950465109e+01 -9.515038350409563e+01 + -9.520842271528107e+01 -9.526648709103007e+01 -9.532457669470300e+01 -9.538269159175374e+01 -9.544083174547335e+01 + -9.549899710997526e+01 -9.555718770482461e+01 -9.561540356780063e+01 -9.567364474408794e+01 -9.573191126075703e+01 + -9.579020306501620e+01 -9.584852011272490e+01 -9.590686247420874e+01 -9.596523021978578e+01 -9.602362330527772e+01 + -9.608204167783254e+01 -9.614048536439948e+01 -9.619895441016116e+01 -9.625744885343293e+01 -9.631596871403326e+01 + -9.637451394466026e+01 -9.643308450797647e+01 -9.649168047362274e+01 -9.655030190767742e+01 -9.660894875499127e+01 + -9.666762096089710e+01 -9.672631859388268e+01 -9.678504172537357e+01 -9.684379031539257e+01 -9.690256431417546e+01 + -9.696136374421286e+01 -9.702018864639355e+01 -9.707903906294442e+01 -9.713791501832830e+01 -9.719681646461351e+01 + -9.725574336170810e+01 -9.731469577327378e+01 -9.737367376351882e+01 -9.743267729508464e+01 -9.749170632178308e+01 + -9.755076086367355e+01 -9.760984095895955e+01 -9.766894665217343e+01 -9.772807797034233e+01 -9.778723486414395e+01 + -9.784641729236439e+01 -9.790562532257231e+01 -9.796485902036660e+01 -9.802411833468516e+01 -9.808340321418262e+01 + -9.814271372304191e+01 -9.820204992860188e+01 -9.826141179529722e+01 -9.832079927766843e+01 -9.838021239358226e+01 + -9.843965117935535e+01 -9.849911568177785e+01 -9.855860593025675e+01 -9.861812187419362e+01 -9.867766347002308e+01 + -9.873723078231735e+01 -9.879682387670165e+01 -9.885644271487612e+01 -9.891608724974174e+01 -9.897575750292785e+01 + -9.903545351466867e+01 -9.909517533088989e+01 -9.915492297862031e+01 -9.921469640360959e+01 -9.927449556058966e+01 + -9.933432052149955e+01 -9.939417135686639e+01 -9.945404801436261e+01 -9.951395044077229e+01 -9.957387870218038e+01 + -9.963383286719130e+01 -9.969381289518709e+01 -9.975381873630593e+01 -9.981385041293248e+01 -9.987390796877466e+01 + -9.993399146058783e+01 -9.999410091983435e+01 -1.000542362637563e+02 -1.001143974249114e+02 -1.001745845113392e+02 + -1.002347976270743e+02 -1.002950366846517e+02 -1.003553015922550e+02 -1.004155924321621e+02 -1.004759093011103e+02 + -1.005362521795820e+02 -1.005966210292817e+02 -1.006570158530568e+02 -1.007174366671700e+02 -1.007778835004040e+02 + -1.008383563749385e+02 -1.008988552740233e+02 -1.009593801813489e+02 -1.010199311212978e+02 -1.010805081231472e+02 + -1.011411111950619e+02 -1.012017403376325e+02 -1.012623955422635e+02 -1.013230768099676e+02 -1.013837841893743e+02 + -1.014445177207514e+02 -1.015052773633014e+02 -1.015660630775449e+02 -1.016268749103392e+02 -1.016877129150088e+02 + -1.017485770844115e+02 -1.018094673966629e+02 -1.018703838313761e+02 -1.019313263923028e+02 -1.019922951782496e+02 + -1.020532902664119e+02 -1.021143115524854e+02 -1.021753589342455e+02 -1.022364324992857e+02 -1.022975323519374e+02 + -1.023586584736673e+02 -1.024198108268543e+02 -1.024809894203941e+02 -1.025421942728475e+02 -1.026034253949216e+02 + -1.026646827901934e+02 -1.027259664415750e+02 -1.027872763473731e+02 -1.028486125881369e+02 -1.029099752254547e+02 + -1.029713641628286e+02 -1.030327793161952e+02 -1.030942208093169e+02 -1.031556887637190e+02 -1.032171830841550e+02 + -1.032787036718354e+02 -1.033402506305696e+02 -1.034018240681317e+02 -1.034634239055545e+02 -1.035250500515010e+02 + -1.035867025518952e+02 -1.036483814821213e+02 -1.037100868981441e+02 -1.037718188237329e+02 -1.038335771732939e+02 + -1.038953618747522e+02 -1.039571730194689e+02 -1.040190107055651e+02 -1.040808748947658e+02 -1.041427655331822e+02 + -1.042046826408667e+02 -1.042666262524425e+02 -1.043285963868752e+02 -1.043905930564436e+02 -1.044526162623378e+02 + -1.045146660069125e+02 -1.045767423082721e+02 -1.046388451777543e+02 -1.047009745838822e+02 -1.047631305085241e+02 + -1.048253130297424e+02 -1.048875222165416e+02 -1.049497580055002e+02 -1.050120203310284e+02 -1.050743092512860e+02 + -1.051366248384456e+02 -1.051989670969791e+02 -1.052613360137520e+02 -1.053237315729033e+02 -1.053861537661844e+02 + -1.054486026185219e+02 -1.055110781583045e+02 -1.055735803945944e+02 -1.056361093274371e+02 -1.056986649401382e+02 + -1.057612472323176e+02 -1.058238562855892e+02 -1.058864921618116e+02 -1.059491547618286e+02 -1.060118440001799e+02 + -1.060745600072047e+02 -1.061373029070868e+02 -1.062000725835928e+02 -1.062628689188559e+02 -1.063256920288941e+02 + -1.063885420424685e+02 -1.064514189054312e+02 -1.065143225392365e+02 -1.065772529506575e+02 -1.066402101774261e+02 + -1.067031942957903e+02 -1.067662053568374e+02 -1.068292432724951e+02 -1.068923079625714e+02 -1.069553995175528e+02 + -1.070185180380394e+02 -1.070816634944072e+02 -1.071448358336418e+02 -1.072080350393896e+02 -1.072712611247882e+02 + -1.073345141842783e+02 -1.073977942922143e+02 -1.074611013613008e+02 -1.075244353055826e+02 -1.075877962061142e+02 + -1.076511841502191e+02 -1.077145990832866e+02 -1.077780409492339e+02 -1.078415098280245e+02 -1.079050057992970e+02 + -1.079685288053471e+02 -1.080320787786834e+02 -1.080956557500093e+02 -1.081592597729443e+02 -1.082228908945775e+02 + -1.082865491424036e+02 -1.083502344720692e+02 -1.084139468448718e+02 -1.084776863165616e+02 -1.085414529440200e+02 + -1.086052466942038e+02 -1.086690675238350e+02 -1.087329154386204e+02 -1.087967904674474e+02 -1.088606926829425e+02 + -1.089246221377382e+02 -1.089885787607543e+02 -1.090525624876805e+02 -1.091165734050004e+02 -1.091806115963225e+02 + -1.092446769829633e+02 -1.093087694909110e+02 -1.093728892271333e+02 -1.094370362953419e+02 -1.095012106052476e+02 + -1.095654120623545e+02 -1.096296407493415e+02 -1.096938967647426e+02 -1.097581800933404e+02 -1.098224906984946e+02 + -1.098868285716250e+02 -1.099511937236656e+02 -1.100155862155477e+02 -1.100800060933800e+02 -1.101444532939841e+02 + -1.102089277564002e+02 -1.102734295378303e+02 -1.103379587096266e+02 -1.104025152815812e+02 -1.104670992426730e+02 + -1.105317105601886e+02 -1.105963492199813e+02 -1.106610153038629e+02 -1.107257088820756e+02 -1.107904298826226e+02 + -1.108551782361634e+02 -1.109199540262203e+02 -1.109847573373186e+02 -1.110495881051325e+02 -1.111144462586115e+02 + -1.111793318486534e+02 -1.112442449476576e+02 -1.113091855920787e+02 -1.113741537899001e+02 -1.114391494711626e+02 + -1.115041725824562e+02 -1.115692232145109e+02 -1.116343014623147e+02 -1.116994072937479e+02 -1.117645406555522e+02 + -1.118297015370191e+02 -1.118948899532702e+02 -1.119601059801944e+02 -1.120253496750247e+02 -1.120906209596036e+02 + -1.121559197660155e+02 -1.122212462027017e+02 -1.122866003728487e+02 -1.123519821822644e+02 -1.124173915349786e+02 + -1.124828285252852e+02 -1.125482932599049e+02 -1.126137857050017e+02 -1.126793058037530e+02 -1.127448535479451e+02 + -1.128104289543148e+02 -1.128760320907921e+02 -1.129416630123176e+02 -1.130073216706816e+02 -1.130730080183262e+02 + -1.131387221134510e+02 -1.132044640167948e+02 -1.132702336934948e+02 -1.133360310978225e+02 -1.134018562361866e+02 + -1.134677091387784e+02 -1.135335898787815e+02 -1.135994985091588e+02 -1.136654349589990e+02 -1.137313991629182e+02 + -1.137973912015162e+02 -1.138634111582333e+02 -1.139294589818884e+02 -1.139955346168527e+02 -1.140616381243277e+02 + -1.141277695680233e+02 -1.141939289048548e+02 -1.142601160860919e+02 -1.143263311472162e+02 -1.143925741390390e+02 + -1.144588450894802e+02 -1.145251440101338e+02 -1.145914708701818e+02 -1.146578256494022e+02 -1.147242084123678e+02 + -1.147906192149256e+02 -1.148570579932248e+02 -1.149235246826633e+02 -1.149900193353325e+02 -1.150565420227369e+02 + -1.151230927773426e+02 -1.151896716067799e+02 -1.152562784583746e+02 -1.153229132947855e+02 -1.153895762003063e+02 + -1.154562672526404e+02 -1.155229863814943e+02 -1.155897335150450e+02 -1.156565087233475e+02 -1.157233120892246e+02 + -1.157901436046917e+02 -1.158570032371645e+02 -1.159238909464663e+02 -1.159908067231330e+02 -1.160577506881430e+02 + -1.161247229415995e+02 -1.161917233696630e+02 -1.162587518588770e+02 -1.163258085112608e+02 -1.163928934406831e+02 + -1.164600065929374e+02 -1.165271479034755e+02 -1.165943174344564e+02 -1.166615152526160e+02 -1.167287413162901e+02 + -1.167959955757904e+02 -1.168632780577301e+02 -1.169305888112216e+02 -1.169979278990717e+02 -1.170652953548001e+02 + -1.171326910810820e+02 -1.172001149975291e+02 -1.172675672223445e+02 -1.173350478778825e+02 -1.174025569045121e+02 + -1.174700942215011e+02 -1.175376598456954e+02 -1.176052538191002e+02 -1.176728761867799e+02 -1.177405269796691e+02 + -1.178082061691247e+02 -1.178759137299273e+02 -1.179436497101298e+02 -1.180114141509050e+02 -1.180792069926326e+02 + -1.181470281872303e+02 -1.182148778335583e+02 -1.182827560287664e+02 -1.183506627162192e+02 -1.184185978220269e+02 + -1.184865613570652e+02 -1.185545533602401e+02 -1.186225738978121e+02 -1.186906230193939e+02 -1.187587006806511e+02 + -1.188268068350639e+02 -1.188949415213182e+02 -1.189631047837780e+02 -1.190312966043158e+02 -1.190995169567162e+02 + -1.191677658449030e+02 -1.192360432941998e+02 -1.193043493853908e+02 -1.193726841751893e+02 -1.194410475685670e+02 + -1.195094394794060e+02 -1.195778600089746e+02 -1.196463092648311e+02 -1.197147871923100e+02 -1.197832937276135e+02 + -1.198518289326376e+02 -1.199203928745778e+02 -1.199889855161324e+02 -1.200576068078755e+02 -1.201262567563797e+02 + -1.201949353935382e+02 -1.202636427965272e+02 -1.203323790196208e+02 -1.204011439802014e+02 -1.204699376081542e+02 + -1.205387600202684e+02 -1.206076113241917e+02 -1.206764914041025e+02 -1.207454001431820e+02 -1.208143376440890e+02 + -1.208833040296615e+02 -1.209522992839752e+02 -1.210213233653680e+02 -1.210903762679893e+02 -1.211594580022500e+02 + -1.212285686077949e+02 -1.212977081155049e+02 -1.213668764919694e+02 -1.214360737100132e+02 -1.215052998316942e+02 + -1.215745549154533e+02 -1.216438389160294e+02 -1.217131517838345e+02 -1.217824935556734e+02 -1.218518642837182e+02 + -1.219212639952166e+02 -1.219906927020717e+02 -1.220601503797327e+02 -1.221296370078328e+02 -1.221991526191948e+02 + -1.222686972509000e+02 -1.223382709038720e+02 -1.224078735702578e+02 -1.224775052432531e+02 -1.225471659287695e+02 + -1.226168556825330e+02 -1.226865745477072e+02 -1.227563224673916e+02 -1.228260993926653e+02 -1.228959054065903e+02 + -1.229657405910973e+02 -1.230356048916106e+02 -1.231054982500379e+02 -1.231754207307278e+02 -1.232453724007864e+02 + -1.233153532159101e+02 -1.233853631242201e+02 -1.234554021549459e+02 -1.235254703591199e+02 -1.235955677938801e+02 + -1.236656944915691e+02 -1.237358503792446e+02 -1.238060353939673e+02 -1.238762496180971e+02 -1.239464931371069e+02 + -1.240167659036240e+02 -1.240870678602586e+02 -1.241573990423949e+02 -1.242277595040581e+02 -1.242981492810638e+02 + -1.243685683872523e+02 -1.244390167667736e+02 -1.245094943779347e+02 -1.245800013053605e+02 -1.246505376299316e+02 + -1.247211032912332e+02 -1.247916982296097e+02 -1.248623225297382e+02 -1.249329762770640e+02 -1.250036594157741e+02 + -1.250743718736609e+02 -1.251451136541969e+02 -1.252158847947410e+02 -1.252866853925174e+02 -1.253575155184925e+02 + -1.254283750787370e+02 -1.254992639825418e+02 -1.255701823169751e+02 -1.256411301759969e+02 -1.257121075033584e+02 + -1.257831142369608e+02 -1.258541504415142e+02 -1.259252161922362e+02 -1.259963114795672e+02 -1.260674362758903e+02 + -1.261385905661348e+02 -1.262097743537985e+02 -1.262809877041053e+02 -1.263522306696565e+02 -1.264235031908370e+02 + -1.264948052148923e+02 -1.265661368287249e+02 -1.266374981169807e+02 -1.267088890156212e+02 -1.267803094502130e+02 + -1.268517594534262e+02 -1.269232390831601e+02 -1.269947483911282e+02 -1.270662874069690e+02 -1.271378560782095e+02 + -1.272094543594662e+02 -1.272810823158284e+02 -1.273527400123002e+02 -1.274244274030747e+02 -1.274961444355319e+02 + -1.275678911406106e+02 -1.276396675704015e+02 -1.277114737780431e+02 -1.277833097950603e+02 -1.278551755654751e+02 + -1.279270710424012e+02 -1.279989963028243e+02 -1.280709514152536e+02 -1.281429362904217e+02 -1.282149508513121e+02 + -1.282869952276877e+02 -1.283590695463467e+02 -1.284311737154509e+02 -1.285033076302067e+02 -1.285754713526335e+02 + -1.286476649682441e+02 -1.287198884897120e+02 -1.287921419051992e+02 -1.288644251776617e+02 -1.289367382880697e+02 + -1.290090813146567e+02 -1.290814543319980e+02 -1.291538573027727e+02 -1.292262901737162e+02 -1.292987529396840e+02 + -1.293712456190937e+02 -1.294437682764910e+02 -1.295163209673579e+02 -1.295889036647941e+02 -1.296615163353197e+02 + -1.297341590015173e+02 -1.298068316903185e+02 -1.298795343899871e+02 -1.299522670904091e+02 -1.300250298266263e+02 + -1.300978226354063e+02 -1.301706455152632e+02 -1.302434984561237e+02 -1.303163814518184e+02 -1.303892945098205e+02 + -1.304622376882688e+02 -1.305352110313897e+02 -1.306082144770936e+02 -1.306812479731976e+02 -1.307543116134598e+02 + -1.308274054850011e+02 -1.309005295024521e+02 -1.309736835845235e+02 -1.310468678387340e+02 -1.311200823754845e+02 + -1.311933271278942e+02 -1.312666020134129e+02 -1.313399070640916e+02 -1.314132423401880e+02 -1.314866079001839e+02 + -1.315600037753056e+02 -1.316334298895329e+02 -1.317068861777292e+02 -1.317803727255405e+02 -1.318538896215189e+02 + -1.319274368150577e+02 -1.320010142454794e+02 -1.320746219509807e+02 -1.321482599879661e+02 -1.322219283867981e+02 + -1.322956271602158e+02 -1.323693562765047e+02 -1.324431157110688e+02 -1.325169055122373e+02 -1.325907257242561e+02 + -1.326645763021127e+02 -1.327384572099461e+02 -1.328123685377604e+02 -1.328863103680995e+02 -1.329602826278048e+02 + -1.330342852393407e+02 -1.331083182633673e+02 -1.331823817787306e+02 -1.332564757988239e+02 -1.333306003141445e+02 + -1.334047552890586e+02 -1.334789407033280e+02 -1.335531566244299e+02 -1.336274031130300e+02 -1.337016801148342e+02 + -1.337759875748336e+02 -1.338503255501201e+02 -1.339246941130952e+02 -1.339990932852997e+02 -1.340735230609586e+02 + -1.341479833758948e+02 -1.342224741891434e+02 -1.342969956109889e+02 -1.343715477431406e+02 -1.344461305017541e+02 + -1.345207438015131e+02 -1.345953877367626e+02 -1.346700624038786e+02 -1.347447677276981e+02 -1.348195036263442e+02 + -1.348942701626209e+02 -1.349690674171868e+02 -1.350438953974369e+02 -1.351187540921076e+02 -1.351936434885642e+02 + -1.352685635848754e+02 -1.353435144232942e+02 -1.354184960414874e+02 -1.354935084145923e+02 -1.355685515128237e+02 + -1.356436253492364e+02 -1.357187299541088e+02 -1.357938653837732e+02 -1.358690316768758e+02 -1.359442287752637e+02 + -1.360194566279880e+02 -1.360947153097144e+02 -1.361700048911278e+02 -1.362453253013760e+02 -1.363206764782614e+02 + -1.363960585357406e+02 -1.364714715821978e+02 -1.365469155275740e+02 -1.366223902703805e+02 -1.366978958618521e+02 + -1.367734323848502e+02 -1.368489998960226e+02 -1.369245984210613e+02 -1.370002278880492e+02 -1.370758882331093e+02 + -1.371515795221331e+02 -1.372273018270698e+02 -1.373030551143317e+02 -1.373788393429953e+02 -1.374546545483291e+02 + -1.375305007816427e+02 -1.376063780822184e+02 -1.376822864668756e+02 -1.377582258746108e+02 -1.378341962588316e+02 + -1.379101977084133e+02 -1.379862303093919e+02 -1.380622940009784e+02 -1.381383887192652e+02 -1.382145145346940e+02 + -1.382906715205862e+02 -1.383668596274320e+02 -1.384430787972570e+02 -1.385193290610606e+02 -1.385956104734610e+02 + -1.386719230945808e+02 -1.387482669582360e+02 -1.388246419875133e+02 -1.389010481148665e+02 -1.389774854209464e+02 + -1.390539539951986e+02 -1.391304538140523e+02 -1.392069848343242e+02 -1.392835470473980e+02 -1.393601404693719e+02 + -1.394367651806349e+02 -1.395134212422815e+02 -1.395901085739362e+02 -1.396668271002043e+02 -1.397435769070855e+02 + -1.398203580874878e+02 -1.398971706005607e+02 -1.399740143977720e+02 -1.400508895336226e+02 -1.401277960614956e+02 + -1.402047339272718e+02 -1.402817030764181e+02 -1.403587035602461e+02 -1.404357354502877e+02 -1.405127987931110e+02 + -1.405898936026113e+02 -1.406670197869564e+02 -1.407441772794584e+02 -1.408213662197336e+02 -1.408985867371466e+02 + -1.409758387137537e+02 -1.410531220224061e+02 -1.411304367464428e+02 -1.412077829961380e+02 -1.412851607790223e+02 + -1.413625700771281e+02 -1.414400108732392e+02 -1.415174831646232e+02 -1.415949870057306e+02 -1.416725224388105e+02 + -1.417500894001226e+02 -1.418276878351835e+02 -1.419053178325258e+02 -1.419829794809226e+02 -1.420606727270934e+02 + -1.421383975074728e+02 -1.422161538594082e+02 -1.422939418408956e+02 -1.423717614916131e+02 -1.424496128273150e+02 + -1.425274957863782e+02 -1.426054103213069e+02 -1.426833565184944e+02 -1.427613344645970e+02 -1.428393441134355e+02 + -1.429173854035838e+02 -1.429954583454632e+02 -1.430735629773860e+02 -1.431516993773805e+02 -1.432298676007922e+02 + -1.433080675725197e+02 -1.433862992191345e+02 -1.434645626043482e+02 -1.435428578032951e+02 -1.436211847996638e+02 + -1.436995435672099e+02 -1.437779341314036e+02 -1.438563565210897e+02 -1.439348107268960e+02 -1.440132967358192e+02 + -1.440918145585468e+02 -1.441703642214681e+02 -1.442489457900865e+02 -1.443275593072134e+02 -1.444062046857781e+02 + -1.444848818522611e+02 -1.445635909172288e+02 -1.446423319927847e+02 -1.447211050130976e+02 -1.447999098925679e+02 + -1.448787466444589e+02 -1.449576153140356e+02 -1.450365159757091e+02 -1.451154486823820e+02 -1.451944133717774e+02 + -1.452734099863848e+02 -1.453524386029381e+02 -1.454314992962476e+02 -1.455105919991844e+02 -1.455897166474813e+02 + -1.456688733302556e+02 -1.457480621396693e+02 -1.458272830266799e+02 -1.459065359271370e+02 -1.459858208576615e+02 + -1.460651378591126e+02 -1.461444869885314e+02 -1.462238682831965e+02 -1.463032816851561e+02 -1.463827271416525e+02 + -1.464622047159361e+02 -1.465417144784923e+02 -1.466212564127396e+02 -1.467008304928943e+02 -1.467804367434297e+02 + -1.468600751934606e+02 -1.469397458404120e+02 -1.470194486722770e+02 -1.470991836710121e+02 -1.471789508433917e+02 + -1.472587503015001e+02 -1.473385821300154e+02 -1.474184461986837e+02 -1.474983423870870e+02 -1.475782708290815e+02 + -1.476582316674545e+02 -1.477382248264445e+02 -1.478182502096616e+02 -1.478983078567520e+02 -1.479783978350921e+02 + -1.480585201869469e+02 -1.481386749269736e+02 -1.482188619845118e+02 -1.482990813088785e+02 -1.483793330146163e+02 + -1.484596172099193e+02 -1.485399338123612e+02 -1.486202827323657e+02 -1.487006640423751e+02 -1.487810778248495e+02 + -1.488615240403001e+02 -1.489420026412511e+02 -1.490225136702235e+02 -1.491030571832025e+02 -1.491836332000337e+02 + -1.492642417202360e+02 -1.493448826981615e+02 -1.494255561054278e+02 -1.495062620278810e+02 -1.495870005487025e+02 + -1.496677716261896e+02 -1.497485751994623e+02 -1.498294112558179e+02 -1.499102798158717e+02 -1.499911809853331e+02 + -1.500721148441144e+02 -1.501530812838450e+02 -1.502340802026938e+02 -1.503151117132690e+02 -1.503961759364751e+02 + -1.504772728119622e+02 -1.505584022645880e+02 -1.506395643412949e+02 -1.507207591024668e+02 -1.508019865401696e+02 + -1.508832466324269e+02 -1.509645393694111e+02 -1.510458647628492e+02 -1.511272228985386e+02 -1.512086138412552e+02 + -1.512900374976176e+02 -1.513714937855876e+02 -1.514529828266537e+02 -1.515345047392310e+02 -1.516160594259147e+02 + -1.516976467776822e+02 -1.517792668548592e+02 -1.518609197460578e+02 -1.519426054836894e+02 -1.520243240750476e+02 + -1.521060754831553e+02 -1.521878596792744e+02 -1.522696767118938e+02 -1.523515266305248e+02 -1.524334094115421e+02 + -1.525153250314230e+02 -1.525972735401888e+02 -1.526792549864990e+02 -1.527612693400200e+02 -1.528433165631959e+02 + -1.529253966685747e+02 -1.530075096900777e+02 -1.530896556970147e+02 -1.531718347321965e+02 -1.532540466970516e+02 + -1.533362915133235e+02 -1.534185693253995e+02 -1.535008802693854e+02 -1.535832242256197e+02 -1.536656010621809e+02 + -1.537480108538752e+02 -1.538304537113657e+02 -1.539129296820158e+02 -1.539954387715506e+02 -1.540779808824423e+02 + -1.541605559457948e+02 -1.542431641104905e+02 -1.543258055115917e+02 -1.544084800111010e+02 -1.544911874726015e+02 + -1.545739280390565e+02 -1.546567018609975e+02 -1.547395088398511e+02 -1.548223488576198e+02 -1.549052219677139e+02 + -1.549881282595875e+02 -1.550710677954614e+02 -1.551540406026988e+02 -1.552370465964632e+02 -1.553200857053796e+02 + -1.554031580241178e+02 -1.554862636500489e+02 -1.555694025253043e+02 -1.556525745801794e+02 -1.557357798528659e+02 + -1.558190184045264e+02 -1.559022902803117e+02 -1.559855954979769e+02 -1.560689339817060e+02 -1.561523056771075e+02 + -1.562357107090587e+02 -1.563191491909100e+02 -1.564026210106382e+02 -1.564861260558312e+02 -1.565696644378976e+02 + -1.566532362813955e+02 -1.567368415396626e+02 -1.568204801387562e+02 -1.569041520668287e+02 -1.569878573487146e+02 + -1.570715960938785e+02 -1.571553683828581e+02 -1.572391740958522e+02 -1.573230131265335e+02 -1.574068856228085e+02 + -1.574907917295132e+02 -1.575747313249683e+02 -1.576587042737324e+02 -1.577427106518309e+02 -1.578267505715277e+02 + -1.579108240785769e+02 -1.579949311783184e+02 -1.580790717809458e+02 -1.581632458187553e+02 -1.582474534075981e+02 + -1.583316946623155e+02 -1.584159695101536e+02 -1.585002778727259e+02 -1.585846198367120e+02 -1.586689954874005e+02 + -1.587534047394542e+02 -1.588378475061590e+02 -1.589223238659185e+02 -1.590068339195322e+02 -1.590913776922658e+02 + -1.591759551748261e+02 -1.592605662952183e+02 -1.593452110061037e+02 -1.594298894214712e+02 -1.595146016508511e+02 + -1.595993476246111e+02 -1.596841272537272e+02 -1.597689405507699e+02 -1.598537875632453e+02 -1.599386683768111e+02 + -1.600235830481832e+02 -1.601085314801616e+02 -1.601935135899282e+02 -1.602785295061083e+02 -1.603635793509372e+02 + -1.604486630096468e+02 -1.605337803660765e+02 -1.606189315354990e+02 -1.607041166452176e+02 -1.607893356392255e+02 + -1.608745884397152e+02 -1.609598750649831e+02 -1.610451955612870e+02 -1.611305499906227e+02 -1.612159383917271e+02 + -1.613013606945609e+02 -1.613868168398436e+02 -1.614723069201057e+02 -1.615578310304217e+02 -1.616433891242326e+02 + -1.617289811339727e+02 -1.618146070496823e+02 -1.619002668955830e+02 -1.619859607750138e+02 -1.620716887676450e+02 + -1.621574507793529e+02 -1.622432467219253e+02 -1.623290767045893e+02 -1.624149408340039e+02 -1.625008390091176e+02 + -1.625867711331680e+02 -1.626727373342588e+02 -1.627587377384768e+02 -1.628447722389764e+02 -1.629308407201184e+02 + -1.630169432640222e+02 -1.631030799800713e+02 -1.631892508889492e+02 -1.632754559784962e+02 -1.633616951938801e+02 + -1.634479685044198e+02 -1.635342760187116e+02 -1.636206178291233e+02 -1.637069938238325e+02 -1.637934038942077e+02 + -1.638798481485683e+02 -1.639663267112721e+02 -1.640528395538795e+02 -1.641393866180353e+02 -1.642259678785196e+02 + -1.643125833411851e+02 -1.643992331030405e+02 -1.644859172470150e+02 -1.645726357085657e+02 -1.646593884180614e+02 + -1.647461754329907e+02 -1.648329968179324e+02 -1.649198525387065e+02 -1.650067425502886e+02 -1.650936668630355e+02 + -1.651806255134507e+02 -1.652676185872448e+02 -1.653546461444497e+02 -1.654417080931755e+02 -1.655288043499995e+02 + -1.656159350172886e+02 -1.657031001994683e+02 -1.657902998234105e+02 -1.658775338117127e+02 -1.659648022474274e+02 + -1.660521052162188e+02 -1.661394426537408e+02 -1.662268144894047e+02 -1.663142207776613e+02 -1.664016615975541e+02 + -1.664891370014617e+02 -1.665766470055737e+02 -1.666641915079906e+02 -1.667517704334961e+02 -1.668393839316945e+02 + -1.669270321420214e+02 -1.670147149384157e+02 -1.671024321837371e+02 -1.671901839620226e+02 -1.672779703889409e+02 + -1.673657914855093e+02 -1.674536472385115e+02 -1.675415375924466e+02 -1.676294625158688e+02 -1.677174221158364e+02 + -1.678054164853866e+02 -1.678934455229663e+02 -1.679815091339810e+02 -1.680696074462591e+02 -1.681577405863894e+02 + -1.682459084535819e+02 -1.683341109324726e+02 -1.684223480767776e+02 -1.685106199767677e+02 -1.685989266998525e+02 + -1.686872682758898e+02 -1.687756446073924e+02 -1.688640556163956e+02 -1.689525014303699e+02 -1.690409821718389e+02 + -1.691294977381033e+02 -1.692180480141565e+02 -1.693066330609834e+02 -1.693952529706734e+02 -1.694839077837423e+02 + -1.695725975104607e+02 -1.696613220916933e+02 -1.697500814887782e+02 -1.698388758143547e+02 -1.699277051650943e+02 + -1.700165694224996e+02 -1.701054684738952e+02 -1.701944024450633e+02 -1.702833714670375e+02 -1.703723754534025e+02 + -1.704614143033400e+02 -1.705504880758685e+02 -1.706395968591658e+02 -1.707287406982126e+02 -1.708179196055015e+02 + -1.709071335067704e+02 -1.709963823462651e+02 -1.710856662290167e+02 -1.711749852543236e+02 -1.712643393377691e+02 + -1.713537283867857e+02 -1.714431524599174e+02 -1.715326116432521e+02 -1.716221059819435e+02 -1.717116354891412e+02 + -1.718012000909151e+02 -1.718907997312464e+02 -1.719804345128430e+02 -1.720701045346718e+02 -1.721598097220100e+02 + -1.722495499971131e+02 -1.723393254438396e+02 -1.724291361494486e+02 -1.725189820532021e+02 -1.726088630837053e+02 + -1.726987792749333e+02 -1.727887306891670e+02 -1.728787173965418e+02 -1.729687394350333e+02 -1.730587967061244e+02 + -1.731488891286860e+02 -1.732390168276344e+02 -1.733291799265234e+02 -1.734193783374131e+02 -1.735096119603506e+02 + -1.735998808588243e+02 -1.736901851222248e+02 -1.737805247801124e+02 -1.738708998286339e+02 -1.739613101901119e+02 + -1.740517558114003e+02 -1.741422368113012e+02 -1.742327533050288e+02 -1.743233052214973e+02 -1.744138924793676e+02 + -1.745045151425876e+02 -1.745951732822802e+02 -1.746858668529805e+02 -1.747765958032038e+02 -1.748673601739718e+02 + -1.749581600245709e+02 -1.750489953948396e+02 -1.751398663036498e+02 -1.752307727054541e+02 -1.753217145616989e+02 + -1.754126919262226e+02 -1.755037048571098e+02 -1.755947533370347e+02 -1.756858373371216e+02 -1.757769568577038e+02 + -1.758681119173357e+02 -1.759593025782490e+02 -1.760505288876894e+02 -1.761417907892832e+02 -1.762330882344909e+02 + -1.763244213097290e+02 -1.764157900964081e+02 -1.765071945209611e+02 -1.765986345094344e+02 -1.766901101413071e+02 + -1.767816215026837e+02 -1.768731685527375e+02 -1.769647512369523e+02 -1.770563695729838e+02 -1.771480236027573e+02 + -1.772397133931058e+02 -1.773314389867134e+02 -1.774232003047593e+02 -1.775149972814722e+02 -1.776068300247813e+02 + -1.776986986385443e+02 -1.777906030366335e+02 -1.778825431235826e+02 -1.779745189565556e+02 -1.780665306226855e+02 + -1.781585781763529e+02 -1.782506616334199e+02 -1.783427808884287e+02 -1.784349358629673e+02 -1.785271267081259e+02 + -1.786193535668995e+02 -1.787116163204012e+02 -1.788039148425030e+02 -1.788962492399977e+02 -1.789886196318098e+02 + -1.790810259524725e+02 -1.791734681201561e+02 -1.792659461719689e+02 -1.793584601742520e+02 -1.794510101913400e+02 + -1.795435962594126e+02 -1.796362183040394e+02 -1.797288762617232e+02 -1.798215702233099e+02 -1.799143002757676e+02 + -1.800070663362093e+02 -1.800998683262517e+02 -1.801927063553792e+02 -1.802855805315161e+02 -1.803784907684791e+02 + -1.804714369692463e+02 -1.805644191875481e+02 -1.806574375103104e+02 -1.807504920064915e+02 -1.808435827084130e+02 + -1.809367095198169e+02 -1.810298723599504e+02 -1.811230713386593e+02 -1.812163065647390e+02 -1.813095779521854e+02 + -1.814028854036152e+02 -1.814962289709267e+02 -1.815896087407728e+02 -1.816830247895420e+02 -1.817764771515762e+02 + -1.818699657032943e+02 -1.819634903439186e+02 -1.820570512218083e+02 -1.821506484855823e+02 -1.822442820357622e+02 + -1.823379517614509e+02 -1.824316577541746e+02 -1.825254001134493e+02 -1.826191787683301e+02 -1.827129936397535e+02 + -1.828068447866412e+02 -1.829007322929544e+02 -1.829946562048259e+02 -1.830886165373395e+02 -1.831826132192083e+02 + -1.832766461922778e+02 -1.833707155372913e+02 -1.834648213380734e+02 -1.835589635518759e+02 -1.836531421229175e+02 + -1.837473570698571e+02 -1.838416084358642e+02 -1.839358962877114e+02 -1.840302206684350e+02 -1.841245815025237e+02 + -1.842189787235884e+02 -1.843134124202761e+02 -1.844078826806361e+02 -1.845023894352911e+02 -1.845969326205561e+02 + -1.846915123529413e+02 -1.847861287393624e+02 -1.848807816681596e+02 -1.849754710227848e+02 -1.850701968857076e+02 + -1.851649593688754e+02 -1.852597585031284e+02 -1.853545942804591e+02 -1.854494666185751e+02 -1.855443754618861e+02 + -1.856393209358935e+02 -1.857343031604275e+02 -1.858293220515437e+02 -1.859243775087027e+02 -1.860194695687597e+02 + -1.861145983033516e+02 -1.862097637858479e+02 -1.863049660540466e+02 -1.864002050017272e+02 -1.864954805431744e+02 + -1.865907928187129e+02 -1.866861419596013e+02 -1.867815278347963e+02 -1.868769503164351e+02 -1.869724095516791e+02 + -1.870679056966096e+02 -1.871634386679672e+02 -1.872590083560524e+02 -1.873546147847470e+02 -1.874502580123688e+02 + -1.875459381013990e+02 -1.876416550903780e+02 -1.877374089179168e+02 -1.878331995340542e+02 -1.879290270344656e+02 + -1.880248915055781e+02 -1.881207928511883e+02 -1.882167309755823e+02 -1.883127059676341e+02 -1.884087179360091e+02 + -1.885047668839511e+02 -1.886008527852007e+02 -1.886969756009047e+02 -1.887931353152428e+02 -1.888893320171184e+02 + -1.889855657829229e+02 -1.890818365342772e+02 -1.891781441947396e+02 -1.892744888503877e+02 -1.893708705921393e+02 + -1.894672893677523e+02 -1.895637451161106e+02 -1.896602378837592e+02 -1.897567677352667e+02 -1.898533346996371e+02 + -1.899499387807097e+02 -1.900465799172331e+02 -1.901432580674921e+02 -1.902399733330072e+02 -1.903367258125687e+02 + -1.904335154508099e+02 -1.905303421711713e+02 -1.906272059664800e+02 -1.907241068668330e+02 -1.908210449820209e+02 + -1.909180203947948e+02 -1.910150330000556e+02 -1.911120827002041e+02 -1.912091696154924e+02 -1.913062938635582e+02 + -1.914034553337337e+02 -1.915006539182285e+02 -1.915978897490666e+02 -1.916951629619544e+02 -1.917924734675151e+02 + -1.918898211586861e+02 -1.919872060827436e+02 -1.920846283161583e+02 -1.921820878978424e+02 -1.922795848438701e+02 + -1.923771191165239e+02 -1.924746906889474e+02 -1.925722996315181e+02 -1.926699460069926e+02 -1.927676297504074e+02 + -1.928653507913461e+02 -1.929631091652971e+02 -1.930609049367203e+02 -1.931587381800568e+02 -1.932566089358633e+02 + -1.933545170991796e+02 -1.934524625825225e+02 -1.935504455138344e+02 -1.936484660231147e+02 -1.937465240331655e+02 + -1.938446194535055e+02 -1.939427523477156e+02 -1.940409227930324e+02 -1.941391307672549e+02 -1.942373762317632e+02 + -1.943356591817002e+02 -1.944339796386271e+02 -1.945323376960147e+02 -1.946307334225392e+02 -1.947291667157886e+02 + -1.948276374816129e+02 -1.949261458299981e+02 -1.950246918758956e+02 -1.951232755499811e+02 -1.952218967672293e+02 + -1.953205555640852e+02 -1.954192520091347e+02 -1.955179861780584e+02 -1.956167581109271e+02 -1.957155676982765e+02 + -1.958144148511486e+02 -1.959132997121442e+02 -1.960122224157670e+02 -1.961111828325720e+02 -1.962101808324193e+02 + -1.963092165463342e+02 -1.964082901163006e+02 -1.965074014669716e+02 -1.966065505047830e+02 -1.967057372806285e+02 + -1.968049618689787e+02 -1.969042242941536e+02 -1.970035245570506e+02 -1.971028626150270e+02 -1.972022384428475e+02 + -1.973016521284466e+02 -1.974011037520065e+02 -1.975005932495305e+02 -1.976001205455443e+02 -1.976996856628438e+02 + -1.977992886519515e+02 -1.978989295760255e+02 -1.979986084767589e+02 -1.980983252973461e+02 -1.981980799861144e+02 + -1.982978726104215e+02 -1.983977032396124e+02 -1.984975718319531e+02 -1.985974783450467e+02 -1.986974228449224e+02 + -1.987974053983538e+02 -1.988974259666649e+02 -1.989974844962869e+02 -1.990975809795281e+02 -1.991977154414513e+02 + -1.992978879922588e+02 -1.993980987169082e+02 -1.994983475142392e+02 -1.995986342853965e+02 -1.996989591268633e+02 + -1.997993221398394e+02 -1.998997232490551e+02 -2.000001623829878e+02 -2.001006396615730e+02 -2.002011551976202e+02 + -2.003017088839768e+02 -2.004023006006677e+02 -2.005029303963877e+02 -2.006035983645368e+02 -2.007043046086661e+02 + -2.008050491826254e+02 -2.009058319313084e+02 -2.010066527248718e+02 -2.011075117434797e+02 -2.012084091672780e+02 + -2.013093448663347e+02 -2.014103186854462e+02 -2.015113306783989e+02 -2.016123809487723e+02 -2.017134695903300e+02 + -2.018145966520298e+02 -2.019157620134241e+02 -2.020169655668574e+02 -2.021182074252480e+02 -2.022194877090834e+02 + -2.023208063485549e+02 -2.024221632682046e+02 -2.025235585602719e+02 -2.026249923196053e+02 -2.027264644837921e+02 + -2.028279749730532e+02 -2.029295237954015e+02 -2.030311109992572e+02 -2.031327367068774e+02 -2.032344010007734e+02 + -2.033361037306376e+02 -2.034378447601810e+02 -2.035396242420057e+02 -2.036414423389593e+02 -2.037432989659801e+02 + -2.038451940079258e+02 -2.039471274772405e+02 -2.040490994323931e+02 -2.041511099883670e+02 -2.042531592234435e+02 + -2.043552470125819e+02 -2.044573732391661e+02 -2.045595380236004e+02 -2.046617414909655e+02 -2.047639835480296e+02 + -2.048662640993485e+02 -2.049685832589404e+02 -2.050709411450770e+02 -2.051733376835843e+02 -2.052757727854042e+02 + -2.053782464943871e+02 -2.054807588829732e+02 -2.055833100050551e+02 -2.056858998827895e+02 -2.057885284299405e+02 + -2.058911955783421e+02 -2.059939014405005e+02 -2.060966461276917e+02 -2.061994295656012e+02 -2.063022516666823e+02 + -2.064051124760526e+02 -2.065080120661920e+02 -2.066109504863692e+02 -2.067139277576765e+02 -2.068169438117121e+02 + -2.069199985973326e+02 -2.070230922219201e+02 -2.071262247789163e+02 -2.072293961474789e+02 -2.073326062201854e+02 + -2.074358551575783e+02 -2.075391431180403e+02 -2.076424699833530e+02 -2.077458356179337e+02 -2.078492400933438e+02 + -2.079526835133251e+02 -2.080561659031989e+02 -2.081596872578975e+02 -2.082632475292167e+02 -2.083668466898186e+02 + -2.084704848389632e+02 -2.085741620623951e+02 -2.086778782651976e+02 -2.087816333480700e+02 -2.088854273748348e+02 + -2.089892604383302e+02 -2.090931325843364e+02 -2.091970438282278e+02 -2.093009941108145e+02 -2.094049833841979e+02 + -2.095090117202067e+02 -2.096130791905716e+02 -2.097171857469022e+02 -2.098213313423286e+02 -2.099255160561849e+02 + -2.100297399619016e+02 -2.101340029830976e+02 -2.102383050403986e+02 -2.103426461922712e+02 -2.104470265253758e+02 + -2.105514461013085e+02 -2.106559049410852e+02 -2.107604029284658e+02 -2.108649399745926e+02 -2.109695162373935e+02 + -2.110741318706494e+02 -2.111787867647689e+02 -2.112834807867834e+02 -2.113882139735869e+02 -2.114929864074473e+02 + -2.115977981822681e+02 -2.117026493533424e+02 -2.118075398098887e+02 -2.119124694556393e+02 -2.120174384184601e+02 + -2.121224468216736e+02 -2.122274945462991e+02 -2.123325814769304e+02 -2.124377077547605e+02 -2.125428735238108e+02 + -2.126480786828185e+02 -2.127533231155498e+02 -2.128586068911697e+02 -2.129639301084739e+02 -2.130692927993837e+02 + -2.131746949622090e+02 -2.132801365276879e+02 -2.133856174488912e+02 -2.134911378357916e+02 -2.135966977951921e+02 + -2.137022972643151e+02 -2.138079361581469e+02 -2.139136144723085e+02 -2.140193322420075e+02 -2.141250895801643e+02 + -2.142308865713384e+02 -2.143367231089345e+02 -2.144425990899214e+02 -2.145485146166798e+02 -2.146544697958461e+02 + -2.147604645456698e+02 -2.148664987887291e+02 -2.149725726533044e+02 -2.150786862586875e+02 -2.151848394825147e+02 + -2.152910321964648e+02 -2.153972644900385e+02 -2.155035364828845e+02 -2.156098481974242e+02 -2.157161996246267e+02 + -2.158225907268823e+02 -2.159290214790141e+02 -2.160354919341570e+02 -2.161420021424622e+02 -2.162485520638355e+02 + -2.163551416576007e+02 -2.164617709709994e+02 -2.165684400663080e+02 -2.166751489780245e+02 -2.167818977145845e+02 + -2.168886862079515e+02 -2.169955144082682e+02 -2.171023824148656e+02 -2.172092903208214e+02 -2.173162380450137e+02 + -2.174232255130703e+02 -2.175302528518165e+02 -2.176373201799158e+02 -2.177444273821862e+02 -2.178515743317612e+02 + -2.179587610888773e+02 -2.180659877532527e+02 -2.181732543954297e+02 -2.182805610486399e+02 -2.183879076260487e+02 + -2.184952940541088e+02 -2.186027204324891e+02 -2.187101868605661e+02 -2.188176932633304e+02 -2.189252395535715e+02 + -2.190328257696591e+02 -2.191404519835346e+02 -2.192481182758485e+02 -2.193558246894080e+02 -2.194635711069396e+02 + -2.195713574321837e+02 -2.196791838130171e+02 -2.197870503917547e+02 -2.198949570443306e+02 -2.200029036478261e+02 + -2.201108903502962e+02 -2.202189173008489e+02 -2.203269843818326e+02 -2.204350914576510e+02 -2.205432385876858e+02 + -2.206514258738742e+02 -2.207596533933995e+02 -2.208679211808499e+02 -2.209762291251867e+02 -2.210845771334710e+02 + -2.211929653307878e+02 -2.213013938407175e+02 -2.214098625627986e+02 -2.215183713969045e+02 -2.216269204682873e+02 + -2.217355099024502e+02 -2.218441396005216e+02 -2.219528094497077e+02 -2.220615195058979e+02 -2.221702698646027e+02 + -2.222790606111339e+02 -2.223878917838657e+02 -2.224967632436199e+02 -2.226056748766821e+02 -2.227146268487432e+02 + -2.228236193240230e+02 -2.229326521814535e+02 -2.230417252803019e+02 -2.231508386864637e+02 -2.232599925050409e+02 + -2.233691867913336e+02 -2.234784215614204e+02 -2.235876967242961e+02 -2.236970122086523e+02 -2.238063681290529e+02 + -2.239157646015454e+02 -2.240252015622403e+02 -2.241346789340316e+02 -2.242441967668838e+02 -2.243537551247286e+02 + -2.244633540002964e+02 -2.245729933685804e+02 -2.246826732048266e+02 -2.247923935126906e+02 -2.249021544092157e+02 + -2.250119559889259e+02 -2.251217981428817e+02 -2.252316807628839e+02 -2.253416039471573e+02 -2.254515678046834e+02 + -2.255615722810486e+02 -2.256716173029860e+02 -2.257817028852108e+02 -2.258918290784169e+02 -2.260019959892315e+02 + -2.261122036854213e+02 -2.262224520233766e+02 -2.263327408802082e+02 -2.264430704272837e+02 -2.265534408332552e+02 + -2.266638519616550e+02 -2.267743036660735e+02 -2.268847960654481e+02 -2.269953292962885e+02 -2.271059033000460e+02 + -2.272165179952407e+02 -2.273271734037251e+02 -2.274378695801794e+02 -2.275486066072624e+02 -2.276593845334010e+02 + -2.277702032421150e+02 -2.278810626343348e+02 -2.279919628455381e+02 -2.281029040172474e+02 -2.282138860806176e+02 + -2.283249089376286e+02 -2.284359725839265e+02 -2.285470770593814e+02 -2.286582224870930e+02 -2.287694089544078e+02 + -2.288806363224278e+02 -2.289919044640359e+02 -2.291032135254801e+02 -2.292145636582007e+02 -2.293259547610424e+02 + -2.294373867252146e+02 -2.295488596639802e+02 -2.296603736910369e+02 -2.297719286997702e+02 -2.298835245768747e+02 + -2.299951614025932e+02 -2.301068392919157e+02 -2.302185583052736e+02 -2.303303184582155e+02 -2.304421196413199e+02 + -2.305539617649887e+02 -2.306658449438852e+02 -2.307777692999738e+02 -2.308897347801602e+02 -2.310017413072381e+02 + -2.311137888826106e+02 -2.312258775426401e+02 -2.313380073849178e+02 -2.314501784790464e+02 -2.315623907214496e+02 + -2.316746440227619e+02 -2.317869385236417e+02 -2.318992743527083e+02 -2.320116513604021e+02 -2.321240694060221e+02 + -2.322365286624793e+02 -2.323490293043759e+02 -2.324615711994689e+02 -2.325741541998047e+02 -2.326867784014305e+02 + -2.327994439322068e+02 -2.329121508032486e+02 -2.330248989898164e+02 -2.331376884404961e+02 -2.332505191272475e+02 + -2.333633911421986e+02 -2.334763045743060e+02 -2.335892593796759e+02 -2.337022554911374e+02 -2.338152928812627e+02 + -2.339283715644559e+02 -2.340414916827054e+02 -2.341546533474617e+02 -2.342678564204413e+02 -2.343811007676228e+02 + -2.344943865217682e+02 -2.346077138212040e+02 -2.347210825597340e+02 -2.348344926295532e+02 -2.349479441609453e+02 + -2.350614372851493e+02 -2.351749718991416e+02 -2.352885478850955e+02 -2.354021653002366e+02 -2.355158242429473e+02 + -2.356295248011875e+02 -2.357432670145577e+02 -2.358570507396431e+02 -2.359708758587992e+02 -2.360847425404777e+02 + -2.361986509531367e+02 -2.363126009791645e+02 -2.364265924750662e+02 -2.365406254798825e+02 -2.366547000814751e+02 + -2.367688163804559e+02 -2.368829744348273e+02 -2.369971741194025e+02 -2.371114153287764e+02 -2.372256982198593e+02 + -2.373400229428812e+02 -2.374543893590377e+02 -2.375687973238754e+02 -2.376832469593778e+02 -2.377977384043928e+02 + -2.379122715987879e+02 -2.380268464580362e+02 -2.381414629990116e+02 -2.382561212769444e+02 -2.383708213990897e+02 + -2.384855634334210e+02 -2.386003472387607e+02 -2.387151726904082e+02 -2.388300399387221e+02 -2.389449491374237e+02 + -2.390599001786255e+02 -2.391748929369255e+02 -2.392899274784697e+02 -2.394050039061344e+02 -2.395201222781684e+02 + -2.396352826134916e+02 -2.397504848183333e+02 -2.398657288168898e+02 -2.399810147179146e+02 -2.400963426277219e+02 + -2.402117124583125e+02 -2.403271241258893e+02 -2.404425777577767e+02 -2.405580734795174e+02 -2.406736111984077e+02 + -2.407891907995794e+02 -2.409048122977546e+02 -2.410204757554728e+02 -2.411361812969551e+02 -2.412519290053517e+02 + -2.413677187378485e+02 -2.414835503650167e+02 -2.415994240369316e+02 -2.417153399089511e+02 -2.418312978780588e+02 + -2.419472978191357e+02 -2.420633397770240e+02 -2.421794238369657e+02 -2.422955500758429e+02 -2.424117185344053e+02 + -2.425279291172331e+02 -2.426441817421263e+02 -2.427604765159341e+02 -2.428768135466203e+02 -2.429931927575585e+02 + -2.431096140668555e+02 -2.432260775561414e+02 -2.433425833145866e+02 -2.434591312980004e+02 -2.435757214497087e+02 + -2.436923537964655e+02 -2.438090283895336e+02 -2.439257452947832e+02 -2.440425045463603e+02 -2.441593060369063e+02 + -2.442761496825792e+02 -2.443930356351059e+02 -2.445099640393889e+02 -2.446269347774639e+02 -2.447439477225602e+02 + -2.448610029755453e+02 -2.449781006544274e+02 -2.450952407181387e+02 -2.452124231032676e+02 -2.453296478161015e+02 + -2.454469148921256e+02 -2.455642244139170e+02 -2.456815764363974e+02 -2.457989708567751e+02 -2.459164075868465e+02 + -2.460338867544718e+02 -2.461514084874868e+02 -2.462689726975661e+02 -2.463865792818051e+02 -2.465042282951439e+02 + -2.466219198202147e+02 -2.467396538925739e+02 -2.468574305187124e+02 -2.469752496359336e+02 -2.470931112029433e+02 + -2.472110153332446e+02 -2.473289621270786e+02 -2.474469514768406e+02 -2.475649832814832e+02 -2.476830576740329e+02 + -2.478011747871381e+02 -2.479193345178656e+02 -2.480375367456449e+02 -2.481557815149384e+02 -2.482740689103307e+02 + -2.483923990118631e+02 -2.485107718618152e+02 -2.486291873559622e+02 -2.487476454083695e+02 -2.488661461527674e+02 + -2.489846897184250e+02 -2.491032759971039e+02 -2.492219048675295e+02 -2.493405763937896e+02 -2.494592906781626e+02 + -2.495780477903268e+02 -2.496968477531592e+02 -2.498156904349301e+02 -2.499345757349562e+02 -2.500535038313474e+02 + -2.501724748933778e+02 -2.502914887761886e+02 -2.504105453266259e+02 -2.505296446724864e+02 -2.506487869586733e+02 + -2.507679721175656e+02 -2.508872000588222e+02 -2.510064708137437e+02 -2.511257844438344e+02 -2.512451410097723e+02 + -2.513645405425343e+02 -2.514839829551193e+02 -2.516034681806881e+02 -2.517229963510282e+02 -2.518425675906852e+02 + -2.519621817966139e+02 -2.520818388494823e+02 -2.522015387924022e+02 -2.523212817096907e+02 -2.524410676880414e+02 + -2.525608967718439e+02 -2.526807688338955e+02 -2.528006837687293e+02 -2.529206417294141e+02 -2.530406428681973e+02 + -2.531606870755077e+02 -2.532807742357317e+02 -2.534009044709059e+02 -2.535210779031462e+02 -2.536412944172385e+02 + -2.537615538911017e+02 -2.538818564125164e+02 -2.540022021028112e+02 -2.541225910076441e+02 -2.542430231270507e+02 + -2.543634983542462e+02 -2.544840166121418e+02 -2.546045780492533e+02 -2.547251828099108e+02 -2.548458307960956e+02 + -2.549665218842466e+02 -2.550872560909815e+02 -2.552080334828205e+02 -2.553288541857174e+02 -2.554497182835964e+02 + -2.555706256328296e+02 -2.556915761009198e+02 -2.558125698274442e+02 -2.559336069560756e+02 -2.560546873747970e+02 + -2.561758109689862e+02 -2.562969778692906e+02 -2.564181882127723e+02 -2.565394419168841e+02 -2.566607388759341e+02 + -2.567820791112567e+02 -2.569034626862424e+02 -2.570248897054782e+02 -2.571463602359873e+02 -2.572678741533426e+02 + -2.573894313462550e+02 -2.575110319474426e+02 -2.576326760938784e+02 -2.577543636955484e+02 -2.578760946446893e+02 + -2.579978689895271e+02 -2.581196868133063e+02 -2.582415481833543e+02 -2.583634531275302e+02 -2.584854015317316e+02 + -2.586073933093156e+02 -2.587294286254374e+02 -2.588515076317444e+02 -2.589736301740566e+02 -2.590957960996737e+02 + -2.592180055676404e+02 -2.593402587446819e+02 -2.594625555165019e+02 -2.595848957490105e+02 -2.597072795099639e+02 + -2.598297069067293e+02 -2.599521780032740e+02 -2.600746928207452e+02 -2.601972512524080e+02 -2.603198532148209e+02 + -2.604424988455961e+02 -2.605651882765137e+02 -2.606879213949725e+02 -2.608106980758151e+02 -2.609335183880386e+02 + -2.610563824372016e+02 -2.611792902809524e+02 -2.613022419394243e+02 -2.614252373306019e+02 -2.615482763897488e+02 + -2.616713592233935e+02 -2.617944859260970e+02 -2.619176563732862e+02 -2.620408704583867e+02 -2.621641283659552e+02 + -2.622874302706103e+02 -2.624107760160917e+02 -2.625341654302978e+02 -2.626575986086381e+02 -2.627810756876698e+02 + -2.629045967010318e+02 -2.630281616427657e+02 -2.631517704514422e+02 -2.632754230861743e+02 -2.633991196437133e+02 + -2.635228602105341e+02 -2.636466446943674e+02 -2.637704729984163e+02 -2.638943451865159e+02 -2.640182613561179e+02 + -2.641422215785110e+02 -2.642662258795402e+02 -2.643902741294400e+02 -2.645143662245587e+02 -2.646385023213122e+02 + -2.647626825745115e+02 -2.648869068724856e+02 -2.650111750962730e+02 -2.651354873642347e+02 -2.652598438005879e+02 + -2.653842443156531e+02 -2.655086888035231e+02 -2.656331773072787e+02 -2.657577099091213e+02 -2.658822866987512e+02 + -2.660069077230897e+02 -2.661315728504449e+02 -2.662562819710931e+02 -2.663810352417937e+02 -2.665058328192844e+02 + -2.666306745937331e+02 -2.667555604333347e+02 -2.668804903849584e+02 -2.670054645383429e+02 -2.671304829760297e+02 + -2.672555457413816e+02 -2.673806527282453e+02 -2.675058038464400e+02 -2.676309992191929e+02 -2.677562389652032e+02 + -2.678815229716541e+02 -2.680068511277727e+02 -2.681322235624782e+02 -2.682576404136338e+02 -2.683831016151858e+02 + -2.685086070756685e+02 -2.686341568058856e+02 -2.687597508516357e+02 -2.688853892964312e+02 -2.690110721950252e+02 + -2.691367994494158e+02 -2.692625709807897e+02 -2.693883869398372e+02 -2.695142474621058e+02 -2.696401523930688e+02 + -2.697661015819900e+02 -2.698920951833660e+02 -2.700181333642693e+02 -2.701442160368443e+02 -2.702703430840482e+02 + -2.703965145270174e+02 -2.705227304331903e+02 -2.706489909170355e+02 -2.707752960482972e+02 -2.709016456707917e+02 + -2.710280396495872e+02 -2.711544781606855e+02 -2.712809613853167e+02 -2.714074892146895e+02 -2.715340615102555e+02 + -2.716606783044584e+02 -2.717873396730564e+02 -2.719140456940721e+02 -2.720407964136753e+02 -2.721675917483545e+02 + -2.722944316245073e+02 -2.724213161378437e+02 -2.725482453844213e+02 -2.726752192923742e+02 -2.728022377909456e+02 + -2.729293009817382e+02 -2.730564089616648e+02 -2.731835616365174e+02 -2.733107589046467e+02 -2.734380008257563e+02 + -2.735652874983575e+02 -2.736926190148396e+02 -2.738199954194386e+02 -2.739474165698984e+02 -2.740748823405867e+02 + -2.742023928588563e+02 -2.743299482670098e+02 -2.744575485141638e+02 -2.745851935229188e+02 -2.747128833029967e+02 + -2.748406178969678e+02 -2.749683973916734e+02 -2.750962218440648e+02 -2.752240911472609e+02 -2.753520052060601e+02 + -2.754799641358123e+02 -2.756079680559450e+02 -2.757360168916492e+02 -2.758641105650285e+02 -2.759922491800748e+02 + -2.761204328366440e+02 -2.762486614361617e+02 -2.763769348745897e+02 -2.765052532244616e+02 -2.766336165883748e+02 + -2.767620250126050e+02 -2.768904785041199e+02 -2.770189769689730e+02 -2.771475203398639e+02 -2.772761087569904e+02 + -2.774047423518460e+02 -2.775334210136085e+02 -2.776621446145333e+02 -2.777909132015001e+02 -2.779197268642361e+02 + -2.780485856892346e+02 -2.781774897218528e+02 -2.783064388461343e+02 -2.784354329669438e+02 -2.785644722337429e+02 + -2.786935567875348e+02 -2.788226864908934e+02 -2.789518612068105e+02 -2.790810810783757e+02 -2.792103462555617e+02 + -2.793396566357773e+02 -2.794690121008859e+02 -2.795984127231330e+02 -2.797278586088501e+02 -2.798573498103315e+02 + -2.799868863353985e+02 -2.801164680680156e+02 -2.802460949220819e+02 -2.803757670550874e+02 -2.805054846206144e+02 + -2.806352475130235e+02 -2.807650555997772e+02 -2.808949088999684e+02 -2.810248074853591e+02 -2.811547514867556e+02 + -2.812847409903677e+02 -2.814147758449749e+02 -2.815448559108459e+02 -2.816749813316353e+02 -2.818051522586102e+02 + -2.819353685901064e+02 -2.820656302199222e+02 -2.821959372766401e+02 -2.823262898869716e+02 -2.824566879353637e+02 + -2.825871312931868e+02 -2.827176200217700e+02 -2.828481542276227e+02 -2.829787340080183e+02 -2.831093594072626e+02 + -2.832400302670260e+02 -2.833707464559445e+02 -2.835015081531469e+02 -2.836323155420096e+02 -2.837631685124079e+02 + -2.838940669226656e+02 -2.840250107984012e+02 -2.841560002155769e+02 -2.842870352842360e+02 -2.844181160721325e+02 + -2.845492424437817e+02 -2.846804142799303e+02 -2.848116317294889e+02 -2.849428949404899e+02 -2.850742037892878e+02 + -2.852055581519247e+02 -2.853369581748677e+02 -2.854684040068092e+02 -2.855998955349205e+02 -2.857314326251873e+02 + -2.858630153203723e+02 -2.859946437114748e+02 -2.861263179056654e+02 -2.862580379663874e+02 -2.863898037660037e+02 + -2.865216151879669e+02 -2.866534723511688e+02 -2.867853753832939e+02 -2.869173242117615e+02 -2.870493187426322e+02 + -2.871813589967982e+02 -2.873134450373917e+02 -2.874455769816758e+02 -2.875777549027032e+02 -2.877099786425546e+02 + -2.878422480619707e+02 -2.879745633273037e+02 -2.881069246090204e+02 -2.882393317884377e+02 -2.883717847366556e+02 + -2.885042835730584e+02 -2.886368284288774e+02 -2.887694192344474e+02 -2.889020558953364e+02 -2.890347384189399e+02 + -2.891674668528066e+02 -2.893002413032724e+02 -2.894330618447220e+02 -2.895659283649483e+02 -2.896988407604515e+02 + -2.898317991491523e+02 -2.899648036558058e+02 -2.900978542110840e+02 -2.902309507220182e+02 -2.903640931951591e+02 + -2.904972816775983e+02 -2.906305162790740e+02 -2.907637970750559e+02 -2.908971239412933e+02 -2.910304967707643e+02 + -2.911639157250792e+02 -2.912973809535366e+02 -2.914308922875549e+02 -2.915644495654761e+02 -2.916980529712119e+02 + -2.918317026983915e+02 -2.919653986339440e+02 -2.920991406314096e+02 -2.922329287174719e+02 -2.923667629702973e+02 + -2.925006435008390e+02 -2.926345703772706e+02 -2.927685434638595e+02 -2.929025626397000e+02 -2.930366280470975e+02 + -2.931707398343328e+02 -2.933048979103752e+02 -2.934391021578708e+02 -2.935733525934834e+02 -2.937076492857184e+02 + -2.938419923764308e+02 -2.939763819565550e+02 -2.941108178399977e+02 -2.942452998623305e+02 -2.943798282228154e+02 + -2.945144031200941e+02 -2.946490243866398e+02 -2.947836918481424e+02 -2.949184056693277e+02 -2.950531660302706e+02 + -2.951879728334102e+02 -2.953228259514730e+02 -2.954577254159683e+02 -2.955926713017622e+02 -2.957276636983648e+02 + -2.958627026572042e+02 -2.959977880627373e+02 -2.961329198152110e+02 -2.962680980450039e+02 -2.964033228802077e+02 + -2.965385942096344e+02 -2.966739119278574e+02 -2.968092761917713e+02 -2.969446871501122e+02 -2.970801446566606e+02 + -2.972156485544735e+02 -2.973511989386669e+02 -2.974867959450954e+02 -2.976224396205114e+02 -2.977581299655766e+02 + -2.978938668856917e+02 -2.980296503111913e+02 -2.981654803674056e+02 -2.983013571739824e+02 -2.984372806328453e+02 + -2.985732506311156e+02 -2.987092672144286e+02 -2.988453304703744e+02 -2.989814404958496e+02 -2.991175973412398e+02 + -2.992538008615809e+02 -2.993900509369414e+02 -2.995263477428711e+02 -2.996626914493826e+02 -2.997990819088619e+02 + -2.999355189707111e+02 -3.000720027900217e+02 -3.002085335269560e+02 -3.003451110562723e+02 -3.004817352353309e+02 + -3.006184061373012e+02 -3.007551238767678e+02 -3.008918885181671e+02 -3.010287000846923e+02 -3.011655584847104e+02 + -3.013024636430795e+02 -3.014394156654455e+02 -3.015764146559894e+02 -3.017134605322491e+02 -3.018505532010304e+02 + -3.019876927128527e+02 -3.021248791518991e+02 -3.022621125932933e+02 -3.023993930706231e+02 -3.025367204603900e+02 + -3.026740946641424e+02 -3.028115158406990e+02 -3.029489841386069e+02 -3.030864994080570e+02 -3.032240615026816e+02 + -3.033616705882347e+02 -3.034993268395738e+02 -3.036370301558538e+02 -3.037747804087723e+02 -3.039125776359002e+02 + -3.040504219146317e+02 -3.041883133157825e+02 -3.043262518737324e+02 -3.044642374836954e+02 -3.046022700638564e+02 + -3.047403497634464e+02 -3.048784767248004e+02 -3.050166508316213e+02 -3.051548719471290e+02 -3.052931401112401e+02 + -3.054314554166776e+02 -3.055698179906950e+02 -3.057082279030724e+02 -3.058466849591645e+02 -3.059851889955948e+02 + -3.061237402384871e+02 -3.062623389075358e+02 -3.064009848072192e+02 -3.065396777363650e+02 -3.066784178864098e+02 + -3.068172054654241e+02 -3.069560403554044e+02 -3.070949224023651e+02 -3.072338516344630e+02 -3.073728281334552e+02 + -3.075118520133569e+02 -3.076509233435525e+02 -3.077900419826468e+02 -3.079292078053290e+02 -3.080684209614084e+02 + -3.082076816048298e+02 -3.083469896309615e+02 -3.084863449149456e+02 -3.086257475095906e+02 -3.087651975081579e+02 + -3.089046949880547e+02 -3.090442399817611e+02 -3.091838323579038e+02 -3.093234720151574e+02 -3.094631591362355e+02 + -3.096028938900603e+02 -3.097426761063483e+02 -3.098825056148365e+02 -3.100223825845469e+02 -3.101623071983122e+02 + -3.103022793549238e+02 -3.104422989228102e+02 -3.105823659329897e+02 -3.107224804626276e+02 -3.108626426108901e+02 + -3.110028524323948e+02 -3.111431097815640e+02 -3.112834145351391e+02 -3.114237668593314e+02 -3.115641669247677e+02 + -3.117046146302696e+02 -3.118451098470761e+02 -3.119856526079039e+02 -3.121262429897644e+02 -3.122668810853719e+02 + -3.124075669478935e+02 -3.125483004566077e+02 -3.126890815070839e+02 -3.128299102339429e+02 -3.129707867704560e+02 + -3.131117110054437e+02 -3.132526828292356e+02 -3.133937023826453e+02 -3.135347698019019e+02 -3.136758849544115e+02 + -3.138170476993112e+02 -3.139582581314797e+02 -3.140995163841689e+02 -3.142408225083815e+02 -3.143821765079714e+02 + -3.145235782804463e+02 -3.146650277504123e+02 -3.148065250572144e+02 -3.149480703283944e+02 -3.150896634295446e+02 + -3.152313042212708e+02 -3.153729928061792e+02 -3.155147293192109e+02 -3.156565137826469e+02 -3.157983461803634e+02 + -3.159402264552761e+02 -3.160821545730877e+02 -3.162241306316100e+02 -3.163661547129774e+02 -3.165082267045055e+02 + -3.166503465083330e+02 -3.167925142807053e+02 -3.169347301718565e+02 -3.170769940538677e+02 -3.172193057829434e+02 + -3.173616654299331e+02 -3.175040731106142e+02 -3.176465289058318e+02 -3.177890328440690e+02 -3.179315847792938e+02 + -3.180741845934695e+02 -3.182168324550577e+02 -3.183595285351408e+02 -3.185022727287870e+02 -3.186450649049847e+02 + -3.187879051044167e+02 -3.189307934072479e+02 -3.190737298798787e+02 -3.192167145562098e+02 -3.193597473539087e+02 + -3.195028282067584e+02 -3.196459572292360e+02 -3.197891345287240e+02 -3.199323600035334e+02 -3.200756335516368e+02 + -3.202189552787263e+02 -3.203623252990410e+02 -3.205057435532916e+02 -3.206492099607363e+02 -3.207927245283494e+02 + -3.209362873029775e+02 -3.210798984032395e+02 -3.212235579095965e+02 -3.213672656781062e+02 -3.215110215776564e+02 + -3.216548257528610e+02 -3.217986783602123e+02 -3.219425793279964e+02 -3.220865285490494e+02 -3.222305260026159e+02 + -3.223745717228416e+02 -3.225186658770672e+02 -3.226628085862362e+02 -3.228069996525048e+02 -3.229512388959131e+02 + -3.230955265268207e+02 -3.232398627556209e+02 -3.233842474025269e+02 -3.235286802821290e+02 -3.236731615767077e+02 + -3.238176914785998e+02 -3.239622698526831e+02 -3.241068965416273e+02 -3.242515716267282e+02 -3.243962952303619e+02 + -3.245410674006047e+02 -3.246858881442026e+02 -3.248307573768830e+02 -3.249756750377737e+02 -3.251206412506237e+02 + -3.252656561247559e+02 -3.254107195271718e+02 -3.255558313340717e+02 -3.257009917007768e+02 -3.258462007853361e+02 + -3.259914584775946e+02 -3.261367646471811e+02 -3.262821193510638e+02 -3.264275226864755e+02 -3.265729747243638e+02 + -3.267184754961565e+02 -3.268640249014856e+02 -3.270096228564299e+02 -3.271552694746495e+02 -3.273009648690628e+02 + -3.274467089520415e+02 -3.275925016223748e+02 -3.277383429250694e+02 -3.278842329472037e+02 -3.280301717979274e+02 + -3.281761595333842e+02 -3.283221959756238e+02 -3.284682809773962e+02 -3.286144147483458e+02 -3.287605974914733e+02 + -3.289068290263132e+02 -3.290531091681708e+02 -3.291994380988984e+02 -3.293458160115122e+02 -3.294922427771376e+02 + -3.296387182388717e+02 -3.297852424495862e+02 -3.299318155124273e+02 -3.300784375218649e+02 -3.302251085265343e+02 + -3.303718284004092e+02 -3.305185970357408e+02 -3.306654145725511e+02 -3.308122811494171e+02 -3.309591966513669e+02 + -3.311061609508276e+02 -3.312531741233722e+02 -3.314002362831168e+02 -3.315473474952068e+02 -3.316945077733321e+02 + -3.318417169743284e+02 -3.319889749946440e+02 -3.321362820460264e+02 -3.322836383216903e+02 -3.324310436254205e+02 + -3.325784977579187e+02 -3.327260008969810e+02 -3.328735532388732e+02 -3.330211546766479e+02 -3.331688050699581e+02 + -3.333165044480712e+02 -3.334642528918999e+02 -3.336120505193238e+02 -3.337598974031960e+02 -3.339077933992973e+02 + -3.340557383761620e+02 -3.342037324704123e+02 -3.343517758263186e+02 -3.344998683506588e+02 -3.346480099317598e+02 + -3.347962006216366e+02 -3.349444405123485e+02 -3.350927296924430e+02 -3.352410681997821e+02 -3.353894558729969e+02 + -3.355378925848257e+02 -3.356863785436656e+02 -3.358349139484366e+02 -3.359834986244929e+02 -3.361321323883865e+02 + -3.362808153950241e+02 -3.364295478191028e+02 -3.365783295761255e+02 -3.367271605486342e+02 -3.368760407465185e+02 + -3.370249702279324e+02 -3.371739491167402e+02 -3.373229774932894e+02 -3.374720551981496e+02 -3.376211820935624e+02 + -3.377703583682330e+02 -3.379195842066430e+02 -3.380688594499171e+02 -3.382181839217990e+02 -3.383675577198622e+02 + -3.385169809890102e+02 -3.386664537896355e+02 -3.388159761271593e+02 -3.389655478716282e+02 -3.391151689236262e+02 + -3.392648394412631e+02 -3.394145595795439e+02 -3.395643292235305e+02 -3.397141482525620e+02 -3.398640167930273e+02 + -3.400139349724158e+02 -3.401639026755699e+02 -3.403139197760493e+02 -3.404639863449279e+02 -3.406141024957107e+02 + -3.407642683141136e+02 -3.409144838324194e+02 -3.410647488969659e+02 -3.412150633828331e+02 -3.413654274660125e+02 + -3.415158413252182e+02 -3.416663048491409e+02 -3.418168178992377e+02 -3.419673805180489e+02 -3.421179927901010e+02 + -3.422686547867838e+02 -3.424193665441726e+02 -3.425701279702224e+02 -3.427209389917095e+02 -3.428717997388184e+02 + -3.430227103286458e+02 -3.431736706225328e+02 -3.433246804902436e+02 -3.434757400909901e+02 -3.436268495884827e+02 + -3.437780088749811e+02 -3.439292178162220e+02 -3.440804764432992e+02 -3.442317848369893e+02 -3.443831431114438e+02 + -3.445345513395477e+02 -3.446860093957458e+02 -3.448375171638715e+02 -3.449890747637513e+02 -3.451406823209921e+02 + -3.452923397483303e+02 -3.454440469383874e+02 -3.455958039161959e+02 -3.457476107544265e+02 -3.458994675838882e+02 + -3.460513744837874e+02 -3.462033312687789e+02 -3.463553377809081e+02 -3.465073942363314e+02 -3.466595008454457e+02 + -3.468116574214998e+02 -3.469638637732855e+02 -3.471161200889126e+02 -3.472684265676839e+02 -3.474207830743587e+02 + -3.475731894457752e+02 -3.477256457416318e+02 -3.478781520698926e+02 -3.480307085087305e+02 -3.481833150905516e+02 + -3.483359716944890e+02 -3.484886782275422e+02 -3.486414348614480e+02 -3.487942417546251e+02 -3.489470987474849e+02 + -3.491000056682386e+02 -3.492529626143035e+02 -3.494059697303613e+02 -3.495590270809477e+02 -3.497121346735108e+02 + -3.498652923672977e+02 -3.500185000578142e+02 -3.501717579338015e+02 -3.503250661735650e+02 -3.504784246204307e+02 + -3.506318331106053e+02 -3.507852917867942e+02 -3.509388008057230e+02 -3.510923600737020e+02 -3.512459694729739e+02 + -3.513996290399252e+02 -3.515533388531561e+02 -3.517070990059733e+02 -3.518609095547224e+02 -3.520147703931951e+02 + -3.521686814254426e+02 -3.523226427591028e+02 -3.524766545004363e+02 -3.526307165466042e+02 -3.527848288024159e+02 + -3.529389914123712e+02 -3.530932045168612e+02 -3.532474680001527e+02 -3.534017817301934e+02 -3.535561457657783e+02 + -3.537105602073667e+02 -3.538650251312291e+02 -3.540195405716707e+02 -3.541741064193253e+02 -3.543287225825957e+02 + -3.544833891846346e+02 -3.546381063473606e+02 -3.547928739730113e+02 -3.549476919508821e+02 -3.551025603381796e+02 + -3.552574792297605e+02 -3.554124487031720e+02 -3.555674687945711e+02 -3.557225393918643e+02 -3.558776604020463e+02 + -3.560328319567154e+02 -3.561880541805177e+02 -3.563433269456882e+02 -3.564986501330765e+02 -3.566540239103983e+02 + -3.568094484429710e+02 -3.569649235996524e+02 -3.571204492251743e+02 -3.572760253642205e+02 -3.574316521198430e+02 + -3.575873296286128e+02 -3.577430579645793e+02 -3.578988369181832e+02 -3.580546663122107e+02 -3.582105463824335e+02 + -3.583664773634632e+02 -3.585224590722860e+02 -3.586784912980774e+02 -3.588345741363943e+02 -3.589907077420278e+02 + -3.591468922003262e+02 -3.593031275347307e+02 -3.594594135904955e+02 -3.596157502414973e+02 -3.597721376542854e+02 + -3.599285759961583e+02 -3.600850651447366e+02 -3.602416049709182e+02 -3.603981956083848e+02 -3.605548371920680e+02 + -3.607115295991184e+02 -3.608682726958015e+02 -3.610250665626241e+02 -3.611819113190277e+02 -3.613388070259530e+02 + -3.614957536972620e+02 -3.616527512170044e+02 -3.618097994957786e+02 -3.619668986801910e+02 -3.621240489112448e+02 + -3.622812500715253e+02 -3.624385020268735e+02 -3.625958048345691e+02 -3.627531585959862e+02 -3.629105633974360e+02 + -3.630680192762735e+02 -3.632255260890885e+02 -3.633830837209757e+02 -3.635406923518125e+02 -3.636983521500620e+02 + -3.638560629437486e+02 -3.640138245654421e+02 -3.641716372063300e+02 -3.643295010634408e+02 -3.644874159985495e+02 + -3.646453818454157e+02 -3.648033986609884e+02 -3.649614665547653e+02 -3.651195856232492e+02 -3.652777559169987e+02 + -3.654359773157880e+02 -3.655942497193339e+02 -3.657525732779061e+02 -3.659109481367831e+02 -3.660693741707290e+02 + -3.662278512419212e+02 -3.663863794327037e+02 -3.665449588644519e+02 -3.667035895945005e+02 -3.668622716357800e+02 + -3.670210048876434e+02 -3.671797892763418e+02 -3.673386249492966e+02 -3.674975120447079e+02 -3.676564504427247e+02 + -3.678154400208724e+02 -3.679744809042344e+02 -3.681335732252156e+02 -3.682927168979475e+02 -3.684519118222935e+02 + -3.686111580593141e+02 -3.687704557033292e+02 -3.689298048205014e+02 -3.690892054329191e+02 -3.692486574145354e+02 + -3.694081606700869e+02 -3.695677153755793e+02 -3.697273216946131e+02 -3.698869794698993e+02 -3.700466885253786e+02 + -3.702064489307988e+02 -3.703662608017668e+02 -3.705261241915196e+02 -3.706860391012269e+02 -3.708460053861607e+02 + -3.710060229388483e+02 -3.711660919467376e+02 -3.713262125796104e+02 -3.714863846416646e+02 -3.716466079328989e+02 + -3.718068826020972e+02 -3.719672088201144e+02 -3.721275864973102e+02 -3.722880155098476e+02 -3.724484958575989e+02 + -3.726090275883345e+02 -3.727696108177087e+02 -3.729302456171431e+02 -3.730909318132427e+02 -3.732516692484294e+02 + -3.734124580732086e+02 -3.735732984485285e+02 -3.737341902690280e+02 -3.738951333966488e+02 -3.740561278288502e+02 + -3.742171736164895e+02 -3.743782708884933e+02 -3.745394197314636e+02 -3.747006199846337e+02 -3.748618715145197e+02 + -3.750231745441332e+02 -3.751845292967938e+02 -3.753459356405600e+02 -3.755073934398666e+02 -3.756689028999150e+02 + -3.758304642401999e+02 -3.759920773966298e+02 -3.761537422764503e+02 -3.763154589558405e+02 -3.764772275566993e+02 + -3.766390482148706e+02 -3.768009210261144e+02 -3.769628459119104e+02 -3.771248228066682e+02 -3.772868518707951e+02 + -3.774489332703654e+02 -3.776110669681248e+02 -3.777732529036114e+02 -3.779354911268638e+02 -3.780977817328078e+02 + -3.782601248854201e+02 -3.784225207068740e+02 -3.785849690830777e+02 -3.787474699201715e+02 -3.789100234414875e+02 + -3.790726298611719e+02 -3.792352890394379e+02 -3.793980008403989e+02 -3.795607654977005e+02 -3.797235832511840e+02 + -3.798864539959452e+02 -3.800493775732837e+02 -3.802123539540593e+02 -3.803753831256555e+02 -3.805384650119894e+02 + -3.807015994897982e+02 -3.808647863105625e+02 -3.810280252452890e+02 -3.811913162683451e+02 -3.813546593533040e+02 + -3.815180542672069e+02 -3.816815007606327e+02 -3.818449987248433e+02 -3.820085480876401e+02 -3.821721487823003e+02 + -3.823358007029311e+02 -3.824995035814819e+02 -3.826632571794644e+02 -3.828270615387958e+02 -3.829909166775790e+02 + -3.831548222382581e+02 -3.833187778788636e+02 -3.834827836954302e+02 -3.836468397830658e+02 -3.838109457951704e+02 + -3.839751013606573e+02 -3.841393064522010e+02 -3.843035610985582e+02 -3.844678652090594e+02 -3.846322186342679e+02 + -3.847966211091070e+02 -3.849610723938522e+02 -3.851255724658270e+02 -3.852901213276589e+02 -3.854547188661456e+02 + -3.856193651039130e+02 -3.857840607227301e+02 -3.859488064858506e+02 -3.861136028233281e+02 -3.862784501283425e+02 + -3.864433489797775e+02 -3.866083000045549e+02 -3.867733038360474e+02 -3.869383610689728e+02 -3.871034721369783e+02 + -3.872686374886131e+02 -3.874338577931016e+02 -3.875991337168530e+02 -3.877644656943423e+02 -3.879298541437876e+02 + -3.880952996503134e+02 -3.882608028487801e+02 -3.884263644060860e+02 -3.885919849359946e+02 -3.887576648076931e+02 + -3.889234044110585e+02 -3.890892044633024e+02 -3.892550656828005e+02 -3.894209884652491e+02 -3.895869732058733e+02 + -3.897530206206903e+02 -3.899191314265681e+02 -3.900853060229904e+02 -3.902515447813749e+02 -3.904178482782592e+02 + -3.905842171832736e+02 -3.907506523333024e+02 -3.909171542011455e+02 -3.910837216360146e+02 -3.912503530200719e+02 + -3.914170464908692e+02 -3.915838000867597e+02 -3.917506116939103e+02 -3.919174791997058e+02 -3.920844006485843e+02 + -3.922513741233318e+02 -3.924183977030698e+02 -3.925854694180132e+02 -3.927525871064144e+02 -3.929197486330507e+02 + -3.930869521607613e+02 -3.932541958513385e+02 -3.934214775643266e+02 -3.935887951493436e+02 -3.937561467185514e+02 + -3.939235303999417e+02 -3.940909441222876e+02 -3.942583857858931e+02 -3.944258533764072e+02 -3.945933449213566e+02 + -3.947608585304349e+02 -3.949283922804248e+02 -3.950959440342958e+02 -3.952635116636291e+02 -3.954310932882606e+02 + -3.955986870327357e+02 -3.957662907921835e+02 -3.959339024467546e+02 -3.961015200461023e+02 -3.962691416638499e+02 + 1.070000000000000e-01 1.069682658750319e-01 1.069365186252596e-01 1.069047582677665e-01 1.068729848196356e-01 + 1.068411982979503e-01 1.068093987197937e-01 1.067775861022493e-01 1.067457604624000e-01 1.067139218173294e-01 + 1.066820701841205e-01 1.066502055798566e-01 1.066183280216209e-01 1.065864375264968e-01 1.065545341115673e-01 + 1.065226177939159e-01 1.064906885906257e-01 1.064587465187799e-01 1.064267915954618e-01 1.063948238377547e-01 + 1.063628432627417e-01 1.063308498875062e-01 1.062988437291314e-01 1.062668248047005e-01 1.062347931312967e-01 + 1.062027487260033e-01 1.061706916059036e-01 1.061386217880807e-01 1.061065392896180e-01 1.060744441275985e-01 + 1.060423363191058e-01 1.060102158812228e-01 1.059780828310330e-01 1.059459371856195e-01 1.059137789620655e-01 + 1.058816081774544e-01 1.058494248488693e-01 1.058172289933936e-01 1.057850206281103e-01 1.057527997701029e-01 + 1.057205664364545e-01 1.056883206442483e-01 1.056560624105677e-01 1.056237917524958e-01 1.055915086871159e-01 + 1.055592132315112e-01 1.055269054027650e-01 1.054945852179606e-01 1.054622526941811e-01 1.054299078485097e-01 + 1.053975506980299e-01 1.053651812598247e-01 1.053327995509774e-01 1.053004055885713e-01 1.052679993896897e-01 + 1.052355809714157e-01 1.052031503508325e-01 1.051707075450236e-01 1.051382525710719e-01 1.051057854460610e-01 + 1.050733061870738e-01 1.050408148111938e-01 1.050083113355042e-01 1.049757957770881e-01 1.049432681530288e-01 + 1.049107284804097e-01 1.048781767763138e-01 1.048456130578245e-01 1.048130373420250e-01 1.047804496459986e-01 + 1.047478499868284e-01 1.047152383815977e-01 1.046826148473898e-01 1.046499794012880e-01 1.046173320603753e-01 + 1.045846728417352e-01 1.045520017624508e-01 1.045193188396054e-01 1.044866240902822e-01 1.044539175315645e-01 + 1.044211991805354e-01 1.043884690542783e-01 1.043557271698764e-01 1.043229735444130e-01 1.042902081949712e-01 + 1.042574311386343e-01 1.042246423924855e-01 1.041918419736082e-01 1.041590298990855e-01 1.041262061860007e-01 + 1.040933708514369e-01 1.040605239124776e-01 1.040276653862059e-01 1.039947952897050e-01 1.039619136400582e-01 + 1.039290204543487e-01 1.038961157496599e-01 1.038631995430748e-01 1.038302718516768e-01 1.037973326925491e-01 + 1.037643820827749e-01 1.037314200394375e-01 1.036984465796201e-01 1.036654617204061e-01 1.036324654788785e-01 + 1.035994578721206e-01 1.035664389172158e-01 1.035334086312472e-01 1.035003670312980e-01 1.034673141344516e-01 + 1.034342499577912e-01 1.034011745183999e-01 1.033680878333612e-01 1.033349899197580e-01 1.033018807946739e-01 + 1.032687604751918e-01 1.032356289783953e-01 1.032024863213673e-01 1.031693325211913e-01 1.031361675949504e-01 + 1.031029915597278e-01 1.030698044326069e-01 1.030366062306709e-01 1.030033969710030e-01 1.029701766706864e-01 + 1.029369453468044e-01 1.029037030164402e-01 1.028704496966771e-01 1.028371854045984e-01 1.028039101572872e-01 + 1.027706239718267e-01 1.027373268653004e-01 1.027040188547913e-01 1.026706999573827e-01 1.026373701901580e-01 + 1.026040295702002e-01 1.025706781145926e-01 1.025373158404186e-01 1.025039427647613e-01 1.024705589047040e-01 + 1.024371642773299e-01 1.024037588997223e-01 1.023703427889643e-01 1.023369159621393e-01 1.023034784363305e-01 + 1.022700302286212e-01 1.022365713560945e-01 1.022031018358337e-01 1.021696216849221e-01 1.021361309204428e-01 + 1.021026295594792e-01 1.020691176191145e-01 1.020355951164319e-01 1.020020620685147e-01 1.019685184924461e-01 + 1.019349644053093e-01 1.019013998241876e-01 1.018678247661643e-01 1.018342392483225e-01 1.018006432877456e-01 + 1.017670369015167e-01 1.017334201067191e-01 1.016997929204361e-01 1.016661553597508e-01 1.016325074417466e-01 + 1.015988491835066e-01 1.015651806021141e-01 1.015315017146524e-01 1.014978125382047e-01 1.014641130898543e-01 + 1.014304033866843e-01 1.013966834457780e-01 1.013629532842187e-01 1.013292129190896e-01 1.012954623674739e-01 + 1.012617016464549e-01 1.012279307731159e-01 1.011941497645400e-01 1.011603586378106e-01 1.011265574100107e-01 + 1.010927460982239e-01 1.010589247195331e-01 1.010250932910217e-01 1.009912518297729e-01 1.009574003528701e-01 + 1.009235388773963e-01 1.008896674204348e-01 1.008557859990690e-01 1.008218946303820e-01 1.007879933314571e-01 + 1.007540821193774e-01 1.007201610112264e-01 1.006862300240872e-01 1.006522891750429e-01 1.006183384811770e-01 + 1.005843779595726e-01 1.005504076273130e-01 1.005164275014813e-01 1.004824375991610e-01 1.004484379374351e-01 + 1.004144285333870e-01 1.003804094040999e-01 1.003463805666569e-01 1.003123420381414e-01 1.002782938356367e-01 + 1.002442359762259e-01 1.002101684769922e-01 1.001760913550190e-01 1.001420046273895e-01 1.001079083111869e-01 + 1.000738024234945e-01 1.000396869813954e-01 1.000055620019730e-01 9.997142750231042e-02 9.993728349949102e-02 + 9.990313001059796e-02 9.986896705271456e-02 9.983479464292398e-02 9.980061279830947e-02 9.976642153595434e-02 + 9.973222087294174e-02 9.969801082635499e-02 9.966379141327726e-02 9.962956265079187e-02 9.959532455598200e-02 + 9.956107714593093e-02 9.952682043772192e-02 9.949255444843813e-02 9.945827919516288e-02 9.942399469497937e-02 + 9.938970096497086e-02 9.935539802222057e-02 9.932108588381178e-02 9.928676456682770e-02 9.925243408835159e-02 + 9.921809446546671e-02 9.918374571525623e-02 9.914938785480347e-02 9.911502090119163e-02 9.908064487150398e-02 + 9.904625978282372e-02 9.901186565223413e-02 9.897746249681845e-02 9.894305033365988e-02 9.890862917984172e-02 + 9.887419905244718e-02 9.883975996855951e-02 9.880531194526194e-02 9.877085499963774e-02 9.873638914877009e-02 + 9.870191440974231e-02 9.866743079963761e-02 9.863293833553920e-02 9.859843703453038e-02 9.856392691369432e-02 + 9.852940799011436e-02 9.849488028087365e-02 9.846034380305550e-02 9.842579857374308e-02 9.839124461001970e-02 + 9.835668192896858e-02 9.832211054767293e-02 9.828753048321603e-02 9.825294175268109e-02 9.821834437315143e-02 + 9.818373836171017e-02 9.814912373544066e-02 9.811450051142606e-02 9.807986870674969e-02 9.804522833849474e-02 + 9.801057942374444e-02 9.797592197958208e-02 9.794125602309085e-02 9.790658157135405e-02 9.787189864145487e-02 + 9.783720725047659e-02 9.780250741550246e-02 9.776779915361565e-02 9.773308248189948e-02 9.769835741743713e-02 + 9.766362397731190e-02 9.762888217860698e-02 9.759413203840565e-02 9.755937357379113e-02 9.752460680184671e-02 + 9.748983173965557e-02 9.745504840430097e-02 9.742025681286617e-02 9.738545698243438e-02 9.735064893008888e-02 + 9.731583267291286e-02 9.728100822798963e-02 9.724617561240236e-02 9.721133484323437e-02 9.717648593756885e-02 + 9.714162891248904e-02 9.710676378507821e-02 9.707189057241956e-02 9.703700929159639e-02 9.700211995969188e-02 + 9.696722259378933e-02 9.693231721097194e-02 9.689740382832296e-02 9.686248246292567e-02 9.682755313186324e-02 + 9.679261585221899e-02 9.675767064107609e-02 9.672271751551782e-02 9.668775649262741e-02 9.665278758948814e-02 + 9.661781082318323e-02 9.658282621079586e-02 9.654783376940938e-02 9.651283351610694e-02 9.647782546797186e-02 + 9.644280964208730e-02 9.640778605553657e-02 9.637275472540287e-02 9.633771566876947e-02 9.630266890271960e-02 + 9.626761444433649e-02 9.623255231070338e-02 9.619748251890356e-02 9.616240508602021e-02 9.612732002913663e-02 + 9.609222736533599e-02 9.605712711170160e-02 9.602201928531666e-02 9.598690390326445e-02 9.595178098262819e-02 + 9.591665054049109e-02 9.588151259393644e-02 9.584636716004745e-02 9.581121425590743e-02 9.577605389859950e-02 + 9.574088610520702e-02 9.570571089281314e-02 9.567052827850117e-02 9.563533827935435e-02 9.560014091245586e-02 + 9.556493619488900e-02 9.552972414373699e-02 9.549450477608308e-02 9.545927810901049e-02 9.542404415960248e-02 + 9.538880294494230e-02 9.535355448211316e-02 9.531829878819836e-02 9.528303588028109e-02 9.524776577544461e-02 + 9.521248849077216e-02 9.517720404334697e-02 9.514191245025229e-02 9.510661372857139e-02 9.507130789538748e-02 + 9.503599496778380e-02 9.500067496284360e-02 9.496534789765015e-02 9.493001378928664e-02 9.489467265483635e-02 + 9.485932451138250e-02 9.482396937600834e-02 9.478860726579713e-02 9.475323819783207e-02 9.471786218919645e-02 + 9.468247925697347e-02 9.464708941824643e-02 9.461169269009850e-02 9.457628908961296e-02 9.454087863387305e-02 + 9.450546133996199e-02 9.447003722496307e-02 9.443460630595948e-02 9.439916860003450e-02 9.436372412427137e-02 + 9.432827289575330e-02 9.429281493156354e-02 9.425735024878537e-02 9.422187886450198e-02 9.418640079579664e-02 + 9.415091605975259e-02 9.411542467345307e-02 9.407992665398136e-02 9.404442201842063e-02 9.400891078385415e-02 + 9.397339296736518e-02 9.393786858603695e-02 9.390233765695270e-02 9.386680019719568e-02 9.383125622384911e-02 + 9.379570575399625e-02 9.376014880472036e-02 9.372458539310466e-02 9.368901553623238e-02 9.365343925118678e-02 + 9.361785655505112e-02 9.358226746490858e-02 9.354667199784246e-02 9.351107017093598e-02 9.347546200127239e-02 + 9.343984750593494e-02 9.340422670200685e-02 9.336859960657137e-02 9.333296623671174e-02 9.329732660951121e-02 + 9.326168074205300e-02 9.322602865142039e-02 9.319037035469660e-02 9.315470586896488e-02 9.311903521130845e-02 + 9.308335839881057e-02 9.304767544855448e-02 9.301198637762342e-02 9.297629120310064e-02 9.294058994206936e-02 + 9.290488261161287e-02 9.286916922881436e-02 9.283344981075708e-02 9.279772437452428e-02 9.276199293719922e-02 + 9.272625551586512e-02 9.269051212760523e-02 9.265476278950278e-02 9.261900751864104e-02 9.258324633210324e-02 + 9.254747924697261e-02 9.251170628033240e-02 9.247592744926583e-02 9.244014277085617e-02 9.240435226218666e-02 + 9.236855594034055e-02 9.233275382240104e-02 9.229694592545142e-02 9.226113226657491e-02 9.222531286285476e-02 + 9.218948773137420e-02 9.215365688921646e-02 9.211782035346482e-02 9.208197814120249e-02 9.204613026951274e-02 + 9.201027675547878e-02 9.197441761618388e-02 9.193855286871126e-02 9.190268253014419e-02 9.186680661756588e-02 + 9.183092514805957e-02 9.179503813870854e-02 9.175914560659600e-02 9.172324756880521e-02 9.168734404241941e-02 + 9.165143504452181e-02 9.161552059219569e-02 9.157960070252427e-02 9.154367539259080e-02 9.150774467947854e-02 + 9.147180858027071e-02 9.143586711205055e-02 9.139992029190132e-02 9.136396813690625e-02 9.132801066414858e-02 + 9.129204789071155e-02 9.125607983367841e-02 9.122010651013239e-02 9.118412793715676e-02 9.114814413183472e-02 + 9.111215511124955e-02 9.107616089248448e-02 9.104016149262276e-02 9.100415692874760e-02 9.096814721794225e-02 + 9.093213237728998e-02 9.089611242387401e-02 9.086008737477760e-02 9.082405724708396e-02 9.078802205787638e-02 + 9.075198182423806e-02 9.071593656325225e-02 9.067988629200220e-02 9.064383102757116e-02 9.060777078704237e-02 + 9.057170558749904e-02 9.053563544602444e-02 9.049956037970180e-02 9.046348040561442e-02 9.042739554084545e-02 + 9.039130580247817e-02 9.035521120759583e-02 9.031911177328168e-02 9.028300751661894e-02 9.024689845469086e-02 + 9.021078460458068e-02 9.017466598337168e-02 9.013854260814702e-02 9.010241449599002e-02 9.006628166398388e-02 + 9.003014412921184e-02 8.999400190875718e-02 8.995785501970310e-02 8.992170347913286e-02 8.988554730412972e-02 + 8.984938651177689e-02 8.981322111915761e-02 8.977705114335516e-02 8.974087660145275e-02 8.970469751053363e-02 + 8.966851388768103e-02 8.963232574997822e-02 8.959613311450842e-02 8.955993599835491e-02 8.952373441860086e-02 + 8.948752839232957e-02 8.945131793662427e-02 8.941510306856817e-02 8.937888380524456e-02 8.934266016373665e-02 + 8.930643216112769e-02 8.927019981450095e-02 8.923396314093963e-02 8.919772215752698e-02 8.916147688134625e-02 + 8.912522732948071e-02 8.908897351901354e-02 8.905271546702803e-02 8.901645319060740e-02 8.898018670683491e-02 + 8.894391603279379e-02 8.890764118556729e-02 8.887136218223864e-02 8.883507903989107e-02 8.879879177560786e-02 + 8.876250040647221e-02 8.872620494956741e-02 8.868990542197666e-02 8.865360184078323e-02 8.861729422307035e-02 + 8.858098258592126e-02 8.854466694641919e-02 8.850834732164740e-02 8.847202372868912e-02 8.843569618462761e-02 + 8.839936470654611e-02 8.836302931152785e-02 8.832669001665606e-02 8.829034683901400e-02 8.825399979568492e-02 + 8.821764890375206e-02 8.818129418029862e-02 8.814493564240788e-02 8.810857330716310e-02 8.807220719164749e-02 + 8.803583731294432e-02 8.799946368813677e-02 8.796308633430815e-02 8.792670526854167e-02 8.789032050792057e-02 + 8.785393206952812e-02 8.781753997044753e-02 8.778114422776205e-02 8.774474485855495e-02 8.770834187990943e-02 + 8.767193530890875e-02 8.763552516263615e-02 8.759911145817488e-02 8.756269421260816e-02 8.752627344301928e-02 + 8.748984916649143e-02 8.745342140010788e-02 8.741699016095185e-02 8.738055546610660e-02 8.734411733265539e-02 + 8.730767577768141e-02 8.727123081826793e-02 8.723478247149821e-02 8.719833075445547e-02 8.716187568422298e-02 + 8.712541727788393e-02 8.708895555252159e-02 8.705249052521923e-02 8.701602221306004e-02 8.697955063312730e-02 + 8.694307580250422e-02 8.690659773827408e-02 8.687011645752010e-02 8.683363197732555e-02 8.679714431477362e-02 + 8.676065348694757e-02 8.672415951093065e-02 8.668766240380611e-02 8.665116218265721e-02 8.661465886456714e-02 + 8.657815246661917e-02 8.654164300589655e-02 8.650513049948251e-02 8.646861496446030e-02 8.643209641791315e-02 + 8.639557487692430e-02 8.635905035857701e-02 8.632252287995451e-02 8.628599245814005e-02 8.624945911021686e-02 + 8.621292285326819e-02 8.617638370437727e-02 8.613984168062737e-02 8.610329679910171e-02 8.606674907688353e-02 + 8.603019853105608e-02 8.599364517870259e-02 8.595708903690633e-02 8.592053012275053e-02 8.588396845331842e-02 + 8.584740404569323e-02 8.581083691695822e-02 8.577426708419665e-02 8.573769456449173e-02 8.570111937492672e-02 + 8.566454153258486e-02 8.562796105454940e-02 8.559137795790356e-02 8.555479225973059e-02 8.551820397711374e-02 + 8.548161312713624e-02 8.544501972688134e-02 8.540842379343229e-02 8.537182534387232e-02 8.533522439528468e-02 + 8.529862096475260e-02 8.526201506935933e-02 8.522540672618811e-02 8.518879595232219e-02 8.515218276484479e-02 + 8.511556718083918e-02 8.507894921738858e-02 8.504232889157626e-02 8.500570622048544e-02 8.496908122119934e-02 + 8.493245391080124e-02 8.489582430637438e-02 8.485919242500198e-02 8.482255828376728e-02 8.478592189975355e-02 + 8.474928329004400e-02 8.471264247172190e-02 8.467599946187047e-02 8.463935427757298e-02 8.460270693591267e-02 + 8.456605745397273e-02 8.452940584883646e-02 8.449275213758706e-02 8.445609633730780e-02 8.441943846508193e-02 + 8.438277853799266e-02 8.434611657312326e-02 8.430945258755695e-02 8.427278659837699e-02 8.423611862266661e-02 + 8.419944867750905e-02 8.416277677998756e-02 8.412610294718537e-02 8.408942719618576e-02 8.405274954407191e-02 + 8.401607000792713e-02 8.397938860483460e-02 8.394270535187759e-02 8.390602026613936e-02 8.386933336470312e-02 + 8.383264466465212e-02 8.379595418306962e-02 8.375926193703884e-02 8.372256794364304e-02 8.368587221996546e-02 + 8.364917478308932e-02 8.361247565009787e-02 8.357577483807437e-02 8.353907236410206e-02 8.350236824526415e-02 + 8.346566249864391e-02 8.342895514132459e-02 8.339224619038943e-02 8.335553566292164e-02 8.331882357600448e-02 + 8.328210994672121e-02 8.324539479215504e-02 8.320867812938924e-02 8.317195997550704e-02 8.313524034759166e-02 + 8.309851926272641e-02 8.306179673799445e-02 8.302507279047908e-02 8.298834743726349e-02 8.295162069543097e-02 + 8.291489258206473e-02 8.287816311424805e-02 8.284143230906414e-02 8.280470018359624e-02 8.276796675492762e-02 + 8.273123204014149e-02 8.269449605632111e-02 8.265775882054972e-02 8.262102034991055e-02 8.258428066148686e-02 + 8.254753977236187e-02 8.251079769961885e-02 8.247405446034105e-02 8.243731007161166e-02 8.240056455051395e-02 + 8.236381791413117e-02 8.232707017954656e-02 8.229032136384334e-02 8.225357148410478e-02 8.221682055741411e-02 + 8.218006860085458e-02 8.214331563150944e-02 8.210656166646188e-02 8.206980672279519e-02 8.203305081759260e-02 + 8.199629396793737e-02 8.195953619091272e-02 8.192277750360188e-02 8.188601792308813e-02 8.184925746645468e-02 + 8.181249615078479e-02 8.177573399316168e-02 8.173897101066861e-02 8.170220722038883e-02 8.166544263940556e-02 + 8.162867728480205e-02 8.159191117366156e-02 8.155514432306732e-02 8.151837675010254e-02 8.148160847185050e-02 + 8.144483950539445e-02 8.140806986781760e-02 8.137129957620320e-02 8.133452864763450e-02 8.129775709919475e-02 + 8.126098494796720e-02 8.122421221103504e-02 8.118743890548155e-02 8.115066504838998e-02 8.111389065684355e-02 + 8.107711574792552e-02 8.104034033871912e-02 8.100356444630759e-02 8.096678808777417e-02 8.093001128020215e-02 + 8.089323404067471e-02 8.085645638627510e-02 8.081967833408658e-02 8.078289990119239e-02 8.074612110467576e-02 + 8.070934196161997e-02 8.067256248910820e-02 8.063578270422375e-02 8.059900262404983e-02 8.056222226566968e-02 + 8.052544164616657e-02 8.048866078262369e-02 8.045187969212433e-02 8.041509839175172e-02 8.037831689858911e-02 + 8.034153522971973e-02 8.030475340222681e-02 8.026797143319361e-02 8.023118933970336e-02 8.019440713883932e-02 + 8.015762484768471e-02 8.012084248332278e-02 8.008406006283678e-02 8.004727760330994e-02 8.001049512182555e-02 + 7.997371263546676e-02 7.993693016131688e-02 7.990014771645915e-02 7.986336531797676e-02 7.982658298295300e-02 + 7.978980072847111e-02 7.975301857161432e-02 7.971623652946590e-02 7.967945461910902e-02 7.964267285762699e-02 + 7.960589126210302e-02 7.956910984962039e-02 7.953232863726228e-02 7.949554764211197e-02 7.945876688125271e-02 + 7.942198637176773e-02 7.938520613074028e-02 7.934842617525358e-02 7.931164652239087e-02 7.927486718923542e-02 + 7.923808819287045e-02 7.920130955037924e-02 7.916453127884499e-02 7.912775339535094e-02 7.909097591698037e-02 + 7.905419886081648e-02 7.901742224394255e-02 7.898064608344180e-02 7.894387039639746e-02 7.890709519989279e-02 + 7.887032051101103e-02 7.883354634683543e-02 7.879677272444922e-02 7.875999966093565e-02 7.872322717337794e-02 + 7.868645527885937e-02 7.864968399446313e-02 7.861291333727252e-02 7.857614332437074e-02 7.853937397284104e-02 + 7.850260529976670e-02 7.846583732223091e-02 7.842907005731693e-02 7.839230352210801e-02 7.835553773368738e-02 + 7.831877270913830e-02 7.828200846554398e-02 7.824524501998768e-02 7.820848238955266e-02 7.817172059132216e-02 + 7.813495964237939e-02 7.809819955980761e-02 7.806144036069006e-02 7.802468206210998e-02 7.798792468115062e-02 + 7.795116823489523e-02 7.791441274042703e-02 7.787765821482928e-02 7.784090467518520e-02 7.780415213857807e-02 + 7.776740062209107e-02 7.773065014280750e-02 7.769390071781057e-02 7.765715236418354e-02 7.762040509900967e-02 + 7.758365893937215e-02 7.754691390235426e-02 7.751017000503922e-02 7.747342726451029e-02 7.743668569785070e-02 + 7.739994532214370e-02 7.736320615447252e-02 7.732646821192042e-02 7.728973151157063e-02 7.725299607050642e-02 + 7.721626190581099e-02 7.717952903456758e-02 7.714279747385946e-02 7.710606724076986e-02 7.706933835238206e-02 + 7.703261082577922e-02 7.699588467804465e-02 7.695915992626157e-02 7.692243658751323e-02 7.688571467888285e-02 + 7.684899421745368e-02 7.681227522030898e-02 7.677555770453198e-02 7.673884168720593e-02 7.670212718541405e-02 + 7.666541421623961e-02 7.662870279676583e-02 7.659199294407595e-02 7.655528467525324e-02 7.651857800738091e-02 + 7.648187295754222e-02 7.644516954282041e-02 7.640846778029871e-02 7.637176768706039e-02 7.633506928018867e-02 + 7.629837257676678e-02 7.626167759387799e-02 7.622498434860552e-02 7.618829285803264e-02 7.615160313924255e-02 + 7.611491520931853e-02 7.607822908534380e-02 7.604154478440163e-02 7.600486232357523e-02 7.596818171994783e-02 + 7.593150299060271e-02 7.589482615262309e-02 7.585815122309225e-02 7.582147821909338e-02 7.578480715770973e-02 + 7.574813805602458e-02 7.571147093112113e-02 7.567480580008265e-02 7.563814267999236e-02 7.560148158793352e-02 + 7.556482254098935e-02 7.552816555624312e-02 7.549151065077807e-02 7.545485784167741e-02 7.541820714602442e-02 + 7.538155858090231e-02 7.534491216339434e-02 7.530826791058375e-02 7.527162583955378e-02 7.523498596738766e-02 + 7.519834831116866e-02 7.516171288797999e-02 7.512507971490495e-02 7.508844880902671e-02 7.505182018742854e-02 + 7.501519386719367e-02 7.497856986540538e-02 7.494194819914687e-02 7.490532888550142e-02 7.486871194155223e-02 + 7.483209738438257e-02 7.479548523107570e-02 7.475887549871482e-02 7.472226820438319e-02 7.468566336516404e-02 + 7.464906099814063e-02 7.461246112039621e-02 7.457586374901400e-02 7.453926890107723e-02 7.450267659366919e-02 + 7.446608684387307e-02 7.442949966877216e-02 7.439291508544965e-02 7.435633311098883e-02 7.431975376247291e-02 + 7.428317705698513e-02 7.424660301160878e-02 7.421003164342704e-02 7.417346296952319e-02 7.413689700698045e-02 + 7.410033377288210e-02 7.406377328431132e-02 7.402721555835140e-02 7.399066061208556e-02 7.395410846259706e-02 + 7.391755912696915e-02 7.388101262228504e-02 7.384446896562798e-02 7.380792817408122e-02 7.377139026472800e-02 + 7.373485525465158e-02 7.369832316093516e-02 7.366179400066203e-02 7.362526779091538e-02 7.358874454877849e-02 + 7.355222429133459e-02 7.351570703566694e-02 7.347919279885876e-02 7.344268159799329e-02 7.340617345015378e-02 + 7.336966837242348e-02 7.333316638188561e-02 7.329666749562345e-02 7.326017173072021e-02 7.322367910425913e-02 + 7.318718963332346e-02 7.315070333499644e-02 7.311422022636133e-02 7.307774032450136e-02 7.304126364649975e-02 + 7.300479020943977e-02 7.296832003040465e-02 7.293185312647765e-02 7.289538951474199e-02 7.285892921228092e-02 + 7.282247223617767e-02 7.278601860351550e-02 7.274956833137766e-02 7.271312143684736e-02 7.267667793700786e-02 + 7.264023784894239e-02 7.260380118973422e-02 7.256736797646657e-02 7.253093822622268e-02 7.249451195608582e-02 + 7.245808918313920e-02 7.242166992446607e-02 7.238525419714967e-02 7.234884201827325e-02 7.231243340492007e-02 + 7.227602837417331e-02 7.223962694311627e-02 7.220322912883217e-02 7.216683494840427e-02 7.213044441891579e-02 + 7.209405755744998e-02 7.205767438109009e-02 7.202129490691934e-02 7.198491915202099e-02 7.194854713347830e-02 + 7.191217886837446e-02 7.187581437379276e-02 7.183945366681642e-02 7.180309676452867e-02 7.176674368401278e-02 + 7.173039444235199e-02 7.169404905662952e-02 7.165770754392863e-02 7.162136992133256e-02 7.158503620592453e-02 + 7.154870641478780e-02 7.151238056500563e-02 7.147605867366123e-02 7.143974075783785e-02 7.140342683461876e-02 + 7.136711692108716e-02 7.133081103432631e-02 7.129450919141947e-02 7.125821140944985e-02 7.122191770550071e-02 + 7.118562809665530e-02 7.114934259999683e-02 7.111306123260858e-02 7.107678401157377e-02 7.104051095397565e-02 + 7.100424207689746e-02 7.096797739742244e-02 7.093171693263382e-02 7.089546069961486e-02 7.085920871544882e-02 + 7.082296099721888e-02 7.078671756200834e-02 7.075047842690044e-02 7.071424360897838e-02 7.067801312532543e-02 + 7.064178699302483e-02 7.060556522915983e-02 7.056934785081363e-02 7.053313487506954e-02 7.049692631901075e-02 + 7.046072219972052e-02 7.042452253428211e-02 7.038832733977872e-02 7.035213663329361e-02 7.031595043191004e-02 + 7.027976875271123e-02 7.024359161278042e-02 7.020741902920087e-02 7.017125101905583e-02 7.013508759942851e-02 + 7.009892878740216e-02 7.006277460006004e-02 7.002662505448538e-02 6.999048016776144e-02 6.995433995697144e-02 + 6.991820443919861e-02 6.988207363152622e-02 6.984594755103750e-02 6.980982621481568e-02 6.977370963994402e-02 + 6.973759784350578e-02 6.970149084258416e-02 6.966538865426242e-02 6.962929129562380e-02 6.959319878375156e-02 + 6.955711113572893e-02 6.952102836863913e-02 6.948495049956542e-02 6.944887754559105e-02 6.941280952379927e-02 + 6.937674645127329e-02 6.934068834509637e-02 6.930463522235174e-02 6.926858710012268e-02 6.923254399549238e-02 + 6.919650592554411e-02 6.916047290736112e-02 6.912444495802665e-02 6.908842209462392e-02 6.905240433423616e-02 + 6.901639169394666e-02 6.898038419083864e-02 6.894438184199533e-02 6.890838466449999e-02 6.887239267543585e-02 + 6.883640589188617e-02 6.880042433093415e-02 6.876444800966307e-02 6.872847694515619e-02 6.869251115449670e-02 + 6.865655065476786e-02 6.862059546305292e-02 6.858464559643512e-02 6.854870107199770e-02 6.851276190682393e-02 + 6.847682811799699e-02 6.844089972260017e-02 6.840497673771671e-02 6.836905918042983e-02 6.833314706782279e-02 + 6.829724041697882e-02 6.826133924498116e-02 6.822544356891308e-02 6.818955340585779e-02 6.815366877289854e-02 + 6.811778968711857e-02 6.808191616560114e-02 6.804604822542948e-02 6.801018588368681e-02 6.797432915745642e-02 + 6.793847806382150e-02 6.790263261986533e-02 6.786679284267115e-02 6.783095874932217e-02 6.779513035690166e-02 + 6.775930768249286e-02 6.772349074317900e-02 6.768767955604332e-02 6.765187413816909e-02 6.761607450663952e-02 + 6.758028067853786e-02 6.754449267094738e-02 6.750871050095128e-02 6.747293418563281e-02 6.743716374207524e-02 + 6.740139918736179e-02 6.736564053857570e-02 6.732988781280023e-02 6.729414102711860e-02 6.725840019861405e-02 + 6.722266534436987e-02 6.718693648146923e-02 6.715121362699542e-02 6.711549679803168e-02 6.707978601166123e-02 + 6.704408128496732e-02 6.700838263503321e-02 6.697269007894212e-02 6.693700363377729e-02 6.690132331662198e-02 + 6.686564914455943e-02 6.682998113467287e-02 6.679431930404556e-02 6.675866366976070e-02 6.672301424890158e-02 + 6.668737105855144e-02 6.665173411579348e-02 6.661610343771096e-02 6.658047904138716e-02 6.654486094390526e-02 + 6.650924916234854e-02 6.647364371380024e-02 6.643804461534360e-02 6.640245188406185e-02 6.636686553703826e-02 + 6.633128559135604e-02 6.629571206409844e-02 6.626014497234871e-02 6.622458433319009e-02 6.618903016370581e-02 + 6.615348248097914e-02 6.611794130209329e-02 6.608240664413152e-02 6.604687852417708e-02 6.601135695931318e-02 + 6.597584196662311e-02 6.594033356319007e-02 6.590483176609731e-02 6.586933659242808e-02 6.583384805926563e-02 + 6.579836618369318e-02 6.576289098279399e-02 6.572742247365128e-02 6.569196067334833e-02 6.565650559896835e-02 + 6.562105726759460e-02 6.558561569631030e-02 6.555018090219872e-02 6.551475290234308e-02 6.547933171382664e-02 + 6.544391735373260e-02 6.540850983914427e-02 6.537310918714484e-02 6.533771541481756e-02 6.530232853924568e-02 + 6.526694857751246e-02 6.523157554670111e-02 6.519620946389489e-02 6.516085034617702e-02 6.512549821063078e-02 + 6.509015307433939e-02 6.505481495438609e-02 6.501948386785412e-02 6.498415983182672e-02 6.494884286338716e-02 + 6.491353297961865e-02 6.487823019760443e-02 6.484293453442776e-02 6.480764600717190e-02 6.477236463292005e-02 + 6.473709042875546e-02 6.470182341176141e-02 6.466656359902111e-02 6.463131100761778e-02 6.459606565463470e-02 + 6.456082755715510e-02 6.452559673226224e-02 6.449037319703932e-02 6.445515696856961e-02 6.441994806393636e-02 + 6.438474650022280e-02 6.434955229451217e-02 6.431436546388770e-02 6.427918602543267e-02 6.424401399623028e-02 + 6.420884939336380e-02 6.417369223391646e-02 6.413854253497149e-02 6.410340031361215e-02 6.406826558692170e-02 + 6.403313837198334e-02 6.399801868588033e-02 6.396290654569593e-02 6.392780196851335e-02 6.389270497141585e-02 + 6.385761557148667e-02 6.382253378580906e-02 6.378745963146625e-02 6.375239312554147e-02 6.371733428511799e-02 + 6.368228312727903e-02 6.364723966910786e-02 6.361220392768768e-02 6.357717592010177e-02 6.354215566343337e-02 + 6.350714317476568e-02 6.347213847118198e-02 6.343714156976551e-02 6.340215248759951e-02 6.336717124176720e-02 + 6.333219784935186e-02 6.329723232743668e-02 6.326227469310496e-02 6.322732496343991e-02 6.319238315552476e-02 + 6.315744928644278e-02 6.312252337327721e-02 6.308760543311126e-02 6.305269548302821e-02 6.301779354011129e-02 + 6.298289962144372e-02 6.294801374410877e-02 6.291313592518968e-02 6.287826618176968e-02 6.284340453093201e-02 + 6.280855098975993e-02 6.277370557533665e-02 6.273886830474544e-02 6.270403919506955e-02 6.266921826339220e-02 + 6.263440552679662e-02 6.259960100236607e-02 6.256480470718381e-02 6.253001665833306e-02 6.249523687289707e-02 + 6.246046536795907e-02 6.242570216060229e-02 6.239094726791002e-02 6.235620070696547e-02 6.232146249485187e-02 + 6.228673264865250e-02 6.225201118545055e-02 6.221729812232930e-02 6.218259347637199e-02 6.214789726466187e-02 + 6.211320950428215e-02 6.207853021231610e-02 6.204385940584693e-02 6.200919710195792e-02 6.197454331773228e-02 + 6.193989807025328e-02 6.190526137660414e-02 6.187063325386812e-02 6.183601371912845e-02 6.180140278946837e-02 + 6.176680048197113e-02 6.173220681371997e-02 6.169762180179813e-02 6.166304546328885e-02 6.162847781527538e-02 + 6.159391887484095e-02 6.155936865906880e-02 6.152482718504219e-02 6.149029446984435e-02 6.145577053055853e-02 + 6.142125538426796e-02 6.138674904805590e-02 6.135225153900557e-02 6.131776287420022e-02 6.128328307072310e-02 + 6.124881214565744e-02 6.121435011608650e-02 6.117989699909349e-02 6.114545281176169e-02 6.111101757117431e-02 + 6.107659129441460e-02 6.104217399856583e-02 6.100776570071121e-02 6.097336641793399e-02 6.093897616731742e-02 + 6.090459496594473e-02 6.087022283089916e-02 6.083585977926396e-02 6.080150582812238e-02 6.076716099455765e-02 + 6.073282529565302e-02 6.069849874849172e-02 6.066418137015700e-02 6.062987317773211e-02 6.059557418830027e-02 + 6.056128441894475e-02 6.052700388674876e-02 6.049273260879557e-02 6.045847060216841e-02 6.042421788395052e-02 + 6.038997447122514e-02 6.035574038107552e-02 6.032151563058490e-02 6.028730023683652e-02 6.025309421691362e-02 + 6.021889758789946e-02 6.018471036687725e-02 6.015053257093025e-02 6.011636421714171e-02 6.008220532259485e-02 + 6.004805590437293e-02 6.001391597955918e-02 5.997978556523686e-02 5.994566467848918e-02 5.991155333639943e-02 + 5.987745155605081e-02 5.984335935452657e-02 5.980927674890997e-02 5.977520375628423e-02 5.974114039373261e-02 + 5.970708667833834e-02 5.967304262718466e-02 5.963900825735483e-02 5.960498358593206e-02 5.957096862999962e-02 + 5.953696340664075e-02 5.950296793293869e-02 5.946898222597666e-02 5.943500630283793e-02 5.940104018060574e-02 + 5.936708387636331e-02 5.933313740719390e-02 5.929920079018074e-02 5.926527404240709e-02 5.923135718095618e-02 + 5.919745022291125e-02 5.916355318535554e-02 5.912966608537230e-02 5.909578894004478e-02 5.906192176645620e-02 + 5.902806458168981e-02 5.899421740282887e-02 5.896038024695659e-02 5.892655313115624e-02 5.889273607251104e-02 + 5.885892908810425e-02 5.882513219501910e-02 5.879134541033884e-02 5.875756875114671e-02 5.872380223452595e-02 + 5.869004587755981e-02 5.865629969733151e-02 5.862256371092430e-02 5.858883793542144e-02 5.855512238790617e-02 + 5.852141708546170e-02 5.848772204517131e-02 5.845403728411822e-02 5.842036281938568e-02 5.838669866805692e-02 + 5.835304484721521e-02 5.831940137394376e-02 5.828576826532585e-02 5.825214553844467e-02 5.821853321038349e-02 + 5.818493129822556e-02 5.815133981905412e-02 5.811775878995240e-02 5.808418822800365e-02 5.805062815029110e-02 + 5.801707857389801e-02 5.798353951590760e-02 5.795001099340315e-02 5.791649302346786e-02 5.788298562318499e-02 + 5.784948880963779e-02 5.781600259990949e-02 5.778252701108333e-02 5.774906206024256e-02 5.771560776447041e-02 + 5.768216414085015e-02 5.764873120646499e-02 5.761530897839819e-02 5.758189747373298e-02 5.754849670955262e-02 + 5.751510670294033e-02 5.748172747097936e-02 5.744835903075296e-02 5.741500139934437e-02 5.738165459383683e-02 + 5.734831863131357e-02 5.731499352885785e-02 5.728167930355290e-02 5.724837597248197e-02 5.721508355272830e-02 + 5.718180206137512e-02 5.714853151550570e-02 5.711527193220325e-02 5.708202332855103e-02 5.704878572163228e-02 + 5.701555912853024e-02 5.698234356632816e-02 5.694913905210926e-02 5.691594560295680e-02 5.688276323595402e-02 + 5.684959196818416e-02 5.681643181673045e-02 5.678328279867616e-02 5.675014493110452e-02 5.671701823109875e-02 + 5.668390271574211e-02 5.665079840211785e-02 5.661770530730920e-02 5.658462344839940e-02 5.655155284247171e-02 + 5.651849350660935e-02 5.648544545789557e-02 5.645240871341362e-02 5.641938329024674e-02 5.638636920547815e-02 + 5.635336647619112e-02 5.632037511946889e-02 5.628739515239468e-02 5.625442659205174e-02 5.622146945552333e-02 + 5.618852375989267e-02 5.615558952224302e-02 5.612266675965761e-02 5.608975548921968e-02 5.605685572801247e-02 + 5.602396749311925e-02 5.599109080162322e-02 5.595822567060765e-02 5.592537211715578e-02 5.589253015835084e-02 + 5.585969981127608e-02 5.582688109301474e-02 5.579407402065006e-02 5.576127861126528e-02 5.572849488194366e-02 + 5.569572284976842e-02 5.566296253182280e-02 5.563021394519008e-02 5.559747710695345e-02 5.556475203419618e-02 + 5.553203874400151e-02 5.549933725345269e-02 5.546664757963294e-02 5.543396973962551e-02 5.540130375051366e-02 + 5.536864962938060e-02 5.533600739330961e-02 5.530337705938389e-02 5.527075864468672e-02 5.523815216630132e-02 + 5.520555764131094e-02 5.517297508679882e-02 5.514040451984819e-02 5.510784595754230e-02 5.507529941696442e-02 + 5.504276491519774e-02 5.501024246932555e-02 5.497773209643106e-02 5.494523381359754e-02 5.491274763790820e-02 + 5.488027358644629e-02 5.484781167629507e-02 5.481536192453777e-02 5.478292434825763e-02 5.475049896453790e-02 + 5.471808579046181e-02 5.468568484311261e-02 5.465329613957354e-02 5.462091969692785e-02 5.458855553225877e-02 + 5.455620366264955e-02 5.452386410518342e-02 5.449153687694363e-02 5.445922199501343e-02 5.442691947647604e-02 + 5.439462933841474e-02 5.436235159791274e-02 5.433008627205328e-02 5.429783337791962e-02 5.426559293259499e-02 + 5.423336495316264e-02 5.420114945670580e-02 5.416894646030773e-02 5.413675598105167e-02 5.410457803602083e-02 + 5.407241264229849e-02 5.404025981696787e-02 5.400811957711223e-02 5.397599193981480e-02 5.394387692215881e-02 + 5.391177454122753e-02 5.387968481410418e-02 5.384760775787202e-02 5.381554338961427e-02 5.378349172641418e-02 + 5.375145278535501e-02 5.371942658351998e-02 5.368741313799234e-02 5.365541246585533e-02 5.362342458419220e-02 + 5.359144951008617e-02 5.355948726062051e-02 5.352753785287844e-02 5.349560130394321e-02 5.346367763089808e-02 + 5.343176685082626e-02 5.339986898081100e-02 5.336798403793557e-02 5.333611203928318e-02 5.330425300193709e-02 + 5.327240694298052e-02 5.324057387949673e-02 5.320875382856897e-02 5.317694680728046e-02 5.314515283271445e-02 + 5.311337192195419e-02 5.308160409208292e-02 5.304984936018387e-02 5.301810774334029e-02 5.298637925860694e-02 + 5.295466392210174e-02 5.292296174881576e-02 5.289127275367324e-02 5.285959695159842e-02 5.282793435751552e-02 + 5.279628498634878e-02 5.276464885302243e-02 5.273302597246069e-02 5.270141635958780e-02 5.266982002932800e-02 + 5.263823699660550e-02 5.260666727634453e-02 5.257511088346935e-02 5.254356783290417e-02 5.251203813957321e-02 + 5.248052181840073e-02 5.244901888431094e-02 5.241752935222807e-02 5.238605323707637e-02 5.235459055378005e-02 + 5.232314131726334e-02 5.229170554245050e-02 5.226028324426572e-02 5.222887443763326e-02 5.219747913747734e-02 + 5.216609735872220e-02 5.213472911629205e-02 5.210337442511115e-02 5.207203330010370e-02 5.204070575619395e-02 + 5.200939180830615e-02 5.197809147136448e-02 5.194680476029321e-02 5.191553169001656e-02 5.188427227545876e-02 + 5.185302653154403e-02 5.182179447319664e-02 5.179057611534077e-02 5.175937147290068e-02 5.172818056080060e-02 + 5.169700339396475e-02 5.166583998731737e-02 5.163469035578269e-02 5.160355451428494e-02 5.157243247774834e-02 + 5.154132426109714e-02 5.151022987925555e-02 5.147914934714782e-02 5.144808267969817e-02 5.141702989183084e-02 + 5.138599099847005e-02 5.135496601454004e-02 5.132395495496503e-02 5.129295783466926e-02 5.126197466857695e-02 + 5.123100547161235e-02 5.120005025869967e-02 5.116910904476317e-02 5.113818184472704e-02 5.110726867351554e-02 + 5.107636954605289e-02 5.104548447726333e-02 5.101461348207109e-02 5.098375657540039e-02 5.095291377217546e-02 + 5.092208508732055e-02 5.089127053575987e-02 5.086047013241765e-02 5.082968389221815e-02 5.079891183008556e-02 + 5.076815396094415e-02 5.073741029971812e-02 5.070668086133172e-02 5.067596566070917e-02 5.064526471277472e-02 + 5.061457803245257e-02 5.058390563466697e-02 5.055324753434216e-02 5.052260374640234e-02 5.049197428577178e-02 + 5.046135916737467e-02 5.043075840613528e-02 5.040017201697781e-02 5.036960001482652e-02 5.033904241460560e-02 + 5.030849923123931e-02 5.027797047965189e-02 5.024745617476754e-02 5.021695633151052e-02 5.018647096480505e-02 + 5.015600008957535e-02 5.012554372074565e-02 5.009510187324022e-02 5.006467456198324e-02 5.003426180189897e-02 + 5.000386360791163e-02 4.997347999494546e-02 4.994311097792468e-02 4.991275657177353e-02 4.988241679141623e-02 + 4.985209165177702e-02 4.982178116778014e-02 4.979148535434980e-02 4.976120422641023e-02 4.973093779888569e-02 + 4.970068608670038e-02 4.967044910477855e-02 4.964022686804442e-02 4.961001939142222e-02 4.957982668983620e-02 + 4.954964877821057e-02 4.951948567146956e-02 4.948933738453741e-02 4.945920393233836e-02 4.942908532979662e-02 + 4.939898159183643e-02 4.936889273338203e-02 4.933881876935763e-02 4.930875971468749e-02 4.927871558429582e-02 + 4.924868639310685e-02 4.921867215604481e-02 4.918867288803395e-02 4.915868860399848e-02 4.912871931886263e-02 + 4.909876504755066e-02 4.906882580498677e-02 4.903890160609520e-02 4.900899246580018e-02 4.897909839902595e-02 + 4.894921942069672e-02 4.891935554573676e-02 4.888950678907025e-02 4.885967316562146e-02 4.882985469031461e-02 + 4.880005137807392e-02 4.877026324382362e-02 4.874049030248797e-02 4.871073256899117e-02 4.868099005825745e-02 + 4.865126278521108e-02 4.862155076477624e-02 4.859185401187720e-02 4.856217254143816e-02 4.853250636838338e-02 + 4.850285550763707e-02 4.847321997412347e-02 4.844359978276680e-02 4.841399494849130e-02 4.838440548622121e-02 + 4.835483141088075e-02 4.832527273739414e-02 4.829572948068564e-02 4.826620165567946e-02 4.823668927729983e-02 + 4.820719236047098e-02 4.817771092011715e-02 4.814824497116257e-02 4.811879452853147e-02 4.808935960714807e-02 + 4.805994022193662e-02 4.803053638782134e-02 4.800114811972645e-02 4.797177543257621e-02 4.794241834129482e-02 + 4.791307686080653e-02 4.788375100603556e-02 4.785444079190614e-02 4.782514623334252e-02 4.779586734526891e-02 + 4.776660414260955e-02 4.773735664028868e-02 4.770812485323050e-02 4.767890879635927e-02 4.764970848459921e-02 + 4.762052393287456e-02 4.759135515610954e-02 4.756220216922838e-02 4.753306498715533e-02 4.750394362481459e-02 + 4.747483809713041e-02 4.744574841902701e-02 4.741667460542864e-02 4.738761667125952e-02 4.735857463144388e-02 + 4.732954850090595e-02 4.730053829456995e-02 4.727154402736015e-02 4.724256571420073e-02 4.721360337001596e-02 + 4.718465700973005e-02 4.715572664826723e-02 4.712681230055175e-02 4.709791398150782e-02 4.706903170605968e-02 + 4.704016548913156e-02 4.701131534564769e-02 4.698248129053231e-02 4.695366333870963e-02 4.692486150510391e-02 + 4.689607580463934e-02 4.686730625224018e-02 4.683855286283068e-02 4.680981565133503e-02 4.678109463267748e-02 + 4.675238982178226e-02 4.672370123357359e-02 4.669502888297572e-02 4.666637278491287e-02 4.663773295430927e-02 + 4.660910940608916e-02 4.658050215517676e-02 4.655191121649629e-02 4.652333660497202e-02 4.649477833552815e-02 + 4.646623642308891e-02 4.643771088257853e-02 4.640920172892127e-02 4.638070897704132e-02 4.635223264186294e-02 + 4.632377273831036e-02 4.629532928130779e-02 4.626690228577947e-02 4.623849176664965e-02 4.621009773884253e-02 + 4.618172021728237e-02 4.615335921689338e-02 4.612501475259979e-02 4.609668683932586e-02 4.606837549199577e-02 + 4.604008072553380e-02 4.601180255486416e-02 4.598354099491107e-02 4.595529606059879e-02 4.592706776685152e-02 + 4.589885612859351e-02 4.587066116074899e-02 4.584248287824218e-02 4.581432129599732e-02 4.578617642893863e-02 + 4.575804829199037e-02 4.572993690007673e-02 4.570184226812196e-02 4.567376441105030e-02 4.564570334378597e-02 + 4.561765908125320e-02 4.558963163837623e-02 4.556162103007928e-02 4.553362727128659e-02 4.550565037692238e-02 + 4.547769036191089e-02 4.544974724117636e-02 4.542182102964300e-02 4.539391174223504e-02 4.536601939387674e-02 + 4.533814399949231e-02 4.531028557400597e-02 4.528244413234197e-02 4.525461968942453e-02 4.522681226017790e-02 + 4.519902185952628e-02 4.517124850239393e-02 4.514349220370505e-02 4.511575297838390e-02 4.508803084135470e-02 + 4.506032580754168e-02 4.503263789186907e-02 4.500496710926111e-02 4.497731347464200e-02 4.494967700293602e-02 + 4.492205770906736e-02 4.489445560796028e-02 4.486687071453899e-02 4.483930304372771e-02 4.481175261045071e-02 + 4.478421942963219e-02 4.475670351619640e-02 4.472920488506756e-02 4.470172355116988e-02 4.467425952942764e-02 + 4.464681283476502e-02 4.461938348210628e-02 4.459197148637566e-02 4.456457686249737e-02 4.453719962539564e-02 + 4.450983978999472e-02 4.448249737121881e-02 4.445517238399217e-02 4.442786484323902e-02 4.440057476388359e-02 + 4.437330216085012e-02 4.434604704906282e-02 4.431880944344595e-02 4.429158935892372e-02 4.426438681042035e-02 + 4.423720181286010e-02 4.421003438116718e-02 4.418288453026584e-02 4.415575227508029e-02 4.412863763053477e-02 + 4.410154061155352e-02 4.407446123306075e-02 4.404739950998071e-02 4.402035545723762e-02 4.399332908975571e-02 + 4.396632042245923e-02 4.393932947027238e-02 4.391235624811941e-02 4.388540077092456e-02 4.385846305361203e-02 + 4.383154311110608e-02 4.380464095833093e-02 4.377775661021081e-02 4.375089008166996e-02 4.372404138763258e-02 + 4.369721054302294e-02 4.367039756276526e-02 4.364360246178376e-02 4.361682525500267e-02 4.359006595734623e-02 + 4.356332458373868e-02 4.353660114910423e-02 4.350989566836711e-02 4.348320815645158e-02 4.345653862828184e-02 + 4.342988709878214e-02 4.340325358287669e-02 4.337663809548974e-02 4.335004065154552e-02 4.332346126596825e-02 + 4.329689995368217e-02 4.327035672961151e-02 4.324383160868049e-02 4.321732460581335e-02 4.319083573593433e-02 + 4.316436501396765e-02 4.313791245483754e-02 4.311147807346823e-02 4.308506188478395e-02 4.305866390370894e-02 + 4.303228414516742e-02 4.300592262408363e-02 4.297957935538180e-02 4.295325435398616e-02 4.292694763482094e-02 + 4.290065921281035e-02 4.287438910287866e-02 4.284813731995007e-02 4.282190387894883e-02 4.279568879479917e-02 + 4.276949208242530e-02 4.274331375675147e-02 4.271715383270192e-02 4.269101232520085e-02 4.266488924917250e-02 + 4.263878461954113e-02 4.261269845123093e-02 4.258663075916616e-02 4.256058155827103e-02 4.253455086346980e-02 + 4.250853868968667e-02 4.248254505184589e-02 4.245656996487169e-02 4.243061344368828e-02 4.240467550321991e-02 + 4.237875615839081e-02 4.235285542412521e-02 4.232697331534734e-02 4.230110984698143e-02 4.227526503395169e-02 + 4.224943889118240e-02 4.222363143359775e-02 4.219784267612198e-02 4.217207263367933e-02 4.214632132119402e-02 + 4.212058875359029e-02 4.209487494579236e-02 4.206917991272448e-02 4.204350366931086e-02 4.201784623047573e-02 + 4.199220761114335e-02 4.196658782623791e-02 4.194098689068368e-02 4.191540481940486e-02 4.188984162732570e-02 + 4.186429732937041e-02 4.183877194046326e-02 4.181326547552844e-02 4.178777794949019e-02 4.176230937727277e-02 + 4.173685977380037e-02 4.171142915399725e-02 4.168601753278764e-02 4.166062492509574e-02 4.163525134584580e-02 + 4.160989680996207e-02 4.158456133236876e-02 4.155924492799010e-02 4.153394761175032e-02 4.150866939857367e-02 + 4.148341030338436e-02 4.145817034110662e-02 4.143294952666470e-02 4.140774787498282e-02 4.138256540098521e-02 + 4.135740211959609e-02 4.133225804573972e-02 4.130713319434030e-02 4.128202758032209e-02 4.125694121860929e-02 + 4.123187412412615e-02 4.120682631179690e-02 4.118179779654577e-02 4.115678859329698e-02 4.113179871697477e-02 + 4.110682818250337e-02 4.108187700480702e-02 4.105694519880994e-02 4.103203277943635e-02 4.100713976161051e-02 + 4.098226616025662e-02 4.095741199029894e-02 4.093257726666168e-02 4.090776200426908e-02 4.088296621804536e-02 + 4.085818992291476e-02 4.083343313380151e-02 4.080869586562985e-02 4.078397813332400e-02 4.075927995180818e-02 + 4.073460133600665e-02 4.070994230084361e-02 4.068530286124331e-02 4.066068303212998e-02 4.063608282842784e-02 + 4.061150226506113e-02 4.058694135695408e-02 4.056240011903092e-02 4.053787856621588e-02 4.051337671343318e-02 + 4.048889457560707e-02 4.046443216766178e-02 4.043998950452153e-02 4.041556660111054e-02 4.039116347235307e-02 + 4.036678013317334e-02 4.034241659849556e-02 4.031807288324400e-02 4.029374900234285e-02 4.026944497071637e-02 + 4.024516080328877e-02 4.022089651498431e-02 4.019665212072718e-02 4.017242763544165e-02 4.014822307405193e-02 + 4.012403845148225e-02 4.009987378265685e-02 4.007572908249996e-02 4.005160436593580e-02 4.002749964788860e-02 + 4.000341494328261e-02 3.997935026862905e-02 3.995530565020248e-02 3.993128111798760e-02 3.990727670197625e-02 + 3.988329243216027e-02 3.985932833853151e-02 3.983538445108181e-02 3.981146079980302e-02 3.978755741468697e-02 + 3.976367432572553e-02 3.973981156291052e-02 3.971596915623379e-02 3.969214713568721e-02 3.966834553126258e-02 + 3.964456437295178e-02 3.962080369074663e-02 3.959706351463900e-02 3.957334387462071e-02 3.954964480068362e-02 + 3.952596632281957e-02 3.950230847102040e-02 3.947867127527795e-02 3.945505476558409e-02 3.943145897193063e-02 + 3.940788392430945e-02 3.938432965271236e-02 3.936079618713123e-02 3.933728355755788e-02 3.931379179398419e-02 + 3.929032092640197e-02 3.926687098480308e-02 3.924344199917935e-02 3.922003399952266e-02 3.919664701582481e-02 + 3.917328107807769e-02 3.914993621627309e-02 3.912661246040292e-02 3.910330984045896e-02 3.908002838643308e-02 + 3.905676812831715e-02 3.903352909610298e-02 3.901031131978242e-02 3.898711482934733e-02 3.896393965478955e-02 + 3.894078582610091e-02 3.891765337327326e-02 3.889454232629846e-02 3.887145271516833e-02 3.884838456987474e-02 + 3.882533792040951e-02 3.880231279676451e-02 3.877930922893155e-02 3.875632724690252e-02 3.873336688066923e-02 + 3.871042816022353e-02 3.868751111555727e-02 3.866461577666229e-02 3.864174217353044e-02 3.861889033615356e-02 + 3.859606029452349e-02 3.857325207863209e-02 3.855046571847119e-02 3.852770124403264e-02 3.850495868530828e-02 + 3.848223807228996e-02 3.845953943496952e-02 3.843686280333881e-02 3.841420820738967e-02 3.839157567711395e-02 + 3.836896524250349e-02 3.834637693355013e-02 3.832381078024572e-02 3.830126681258209e-02 3.827874506055112e-02 + 3.825624555414461e-02 3.823376832335444e-02 3.821131339817244e-02 3.818888080859045e-02 3.816647058460032e-02 + 3.814408275619389e-02 3.812171735336303e-02 3.809937440609954e-02 3.807705394439530e-02 3.805475599824214e-02 + 3.803248059763190e-02 3.801022777255643e-02 3.798799755300758e-02 3.796578996897719e-02 3.794360505045710e-02 + 3.792144282743916e-02 3.789930332991522e-02 3.787718658787710e-02 3.785509263131667e-02 3.783302149022577e-02 + 3.781097319459624e-02 3.778894777441992e-02 3.776694525968866e-02 3.774496568039430e-02 3.772300906652870e-02 + 3.770107544808367e-02 3.767916485505110e-02 3.765727731742280e-02 3.763541286519063e-02 3.761357152834642e-02 + 3.759175333688204e-02 3.756995832078931e-02 3.754818651006007e-02 3.752643793468620e-02 3.750471262465951e-02 + 3.748301060997186e-02 3.746133192061509e-02 3.743967658658105e-02 3.741804463786157e-02 3.739643610444850e-02 + 3.737485101633371e-02 3.735328940350900e-02 3.733175129596625e-02 3.731023672369729e-02 3.728874571669397e-02 + 3.726727830494812e-02 3.724583451845160e-02 3.722441438719625e-02 3.720301794117391e-02 3.718164521037644e-02 + 3.716029622479566e-02 3.713897101442343e-02 3.711766960925159e-02 3.709639203927199e-02 3.707513833447647e-02 + 3.705390852485687e-02 3.703270264040504e-02 3.701152071111283e-02 3.699036276697207e-02 3.696922883797462e-02 + 3.694811895411231e-02 3.692703314537699e-02 3.690597144176051e-02 3.688493387325471e-02 3.686392046985143e-02 + 3.684293126154253e-02 3.682196627831984e-02 3.680102555017520e-02 3.678010910710046e-02 3.675921697908748e-02 + 3.673834919612807e-02 3.671750578821411e-02 3.669668678533742e-02 3.667589221748987e-02 3.665512211466327e-02 + 3.663437650684950e-02 3.661365542404037e-02 3.659295889622776e-02 3.657228695340348e-02 3.655163962555941e-02 + 3.653101694268735e-02 3.651041893477919e-02 3.648984563182674e-02 3.646929706382188e-02 3.644877326075641e-02 + 3.642827425262220e-02 3.640780006941109e-02 3.638735074111494e-02 3.636692629772557e-02 3.634652676923484e-02 + 3.632615218563458e-02 3.630580257691665e-02 3.628547797307289e-02 3.626517840409513e-02 3.624490389997524e-02 + 3.622465449070505e-02 3.620443020627639e-02 3.618423107668113e-02 3.616405713191111e-02 3.614390840195816e-02 + 3.612378491681414e-02 3.610368670647089e-02 3.608361380092025e-02 3.606356623015406e-02 3.604354402416417e-02 + 3.602354721294244e-02 3.600357582648069e-02 3.598362989477077e-02 3.596370944780453e-02 3.594381451557382e-02 + 3.592394512807047e-02 3.590410131528634e-02 3.588428310721326e-02 3.586449053384308e-02 3.584472362516764e-02 + 3.582498241117880e-02 3.580526692186839e-02 3.578557718722826e-02 3.576591323725024e-02 3.574627510192620e-02 + 3.572666281124797e-02 3.570707639520740e-02 3.568751588379632e-02 3.566798130700659e-02 3.564847269483005e-02 + 3.562899007725854e-02 3.560953348428391e-02 3.559010294589800e-02 3.557069849209266e-02 3.555132015285974e-02 + 3.553196795819106e-02 3.551264193807849e-02 3.549334212251386e-02 3.547406854148901e-02 3.545482122499580e-02 + 3.543560020302607e-02 3.541640550557167e-02 3.539723716262443e-02 3.537809520417620e-02 3.535897966021882e-02 + 3.533989056074414e-02 3.532082793574401e-02 3.530179181521027e-02 3.528278222913475e-02 3.526379920750932e-02 + 3.524484278032580e-02 3.522591297757607e-02 3.520700982925193e-02 3.518813336534525e-02 3.516928361584787e-02 + 3.515046061075164e-02 3.513166438004838e-02 3.511289495372998e-02 3.509415236178823e-02 3.507543663421501e-02 + 3.505674780100216e-02 3.503808589214152e-02 3.501945093762493e-02 3.500084296744425e-02 3.498226201159130e-02 + 3.496370810005795e-02 3.494518126283602e-02 3.492668152991737e-02 3.490820893129385e-02 3.488976349695729e-02 + 3.487134525689954e-02 3.485295424111245e-02 3.483459047958785e-02 3.481625400231760e-02 3.479794483929353e-02 + 3.477966302050750e-02 3.476140857595134e-02 3.474318153561690e-02 3.472498192949603e-02 3.470680978758058e-02 + 3.468866513986237e-02 3.467054801633326e-02 3.465245844698509e-02 3.463439646180971e-02 3.461636209079897e-02 + 3.459835536394470e-02 3.458037631123875e-02 3.456242496267296e-02 3.454450134823919e-02 3.452660549792927e-02 + 3.450873744173504e-02 3.449089720964835e-02 3.447308483166107e-02 3.445530033776500e-02 3.443754375795202e-02 + 3.441981512221395e-02 3.440211446054266e-02 3.438444180292995e-02 3.436679717936773e-02 3.434918061984778e-02 + 3.433159215436199e-02 3.431403181290218e-02 3.429649962546020e-02 3.427899562202789e-02 3.426151983259711e-02 + 3.424407228715969e-02 3.422665301570748e-02 3.420926204823232e-02 3.419189941472606e-02 3.417456514518054e-02 + 3.415725926958761e-02 3.413998181793911e-02 3.412273282022688e-02 3.410551230644278e-02 3.408832030657864e-02 + 3.407115685062630e-02 3.405402196857762e-02 3.403691569042444e-02 3.401983804615860e-02 3.400278906577194e-02 + 3.398576877925633e-02 3.396877721660357e-02 3.395181440780554e-02 3.393488038285408e-02 3.391797517174103e-02 + 3.390109880445821e-02 3.388425131099751e-02 3.386743272135074e-02 3.385064306550976e-02 3.383388237346641e-02 + 3.381715067521254e-02 3.380044800073998e-02 3.378377438004059e-02 3.376712984310620e-02 3.375051441992868e-02 + 3.373392814049984e-02 3.371737103481155e-02 3.370084313285564e-02 3.368434446462396e-02 3.366787506010836e-02 + 3.365143466564878e-02 3.363501887624541e-02 3.361862209777612e-02 3.360224500875989e-02 3.358588827878357e-02 + 3.356955147090725e-02 3.355323458431880e-02 3.353693766165054e-02 3.352066065506343e-02 3.350440352193865e-02 + 3.348816624199871e-02 3.347194881659273e-02 3.345575121630599e-02 3.343957340404732e-02 3.342341535303144e-02 + 3.340727704441876e-02 3.339115845430404e-02 3.337505954322636e-02 3.335898029706669e-02 3.334292070921326e-02 + 3.332688074834195e-02 3.331086037969291e-02 3.329485957414917e-02 3.327887831864652e-02 3.326291658484171e-02 + 3.324697433542376e-02 3.323105156623186e-02 3.321514826023114e-02 3.319926437839098e-02 3.318339989412266e-02 + 3.316755478754796e-02 3.315172903929034e-02 3.313592261295018e-02 3.312013548124740e-02 3.310436764153749e-02 + 3.308861906981869e-02 3.307288973180764e-02 3.305717959801665e-02 3.304148865245999e-02 3.302581687574703e-02 + 3.301016422142487e-02 3.299453067800234e-02 3.297891624809741e-02 3.296332088425066e-02 3.294774455685354e-02 + 3.293218725810471e-02 3.291664896225673e-02 3.290112963401578e-02 3.288562923879117e-02 3.287014777263271e-02 + 3.285468522369568e-02 3.283924155670871e-02 3.282381674440858e-02 3.280841076589561e-02 3.279302360243119e-02 + 3.277765521941309e-02 3.276230558706894e-02 3.274697470113698e-02 3.273166254219040e-02 3.271636907936865e-02 + 3.270109428250347e-02 3.268583813280482e-02 3.267060061307020e-02 3.265538168459424e-02 3.264018132671115e-02 + 3.262499953449712e-02 3.260983628233858e-02 3.259469153939318e-02 3.257956527754512e-02 3.256445748091834e-02 + 3.254936812698490e-02 3.253429718174427e-02 3.251924463148387e-02 3.250421046229880e-02 3.248919464552218e-02 + 3.247419715298105e-02 3.245921796288541e-02 3.244425706251369e-02 3.242931441545717e-02 3.241438998652282e-02 + 3.239948378141620e-02 3.238459577882156e-02 3.236972593925531e-02 3.235487424670715e-02 3.234004068301546e-02 + 3.232522522137563e-02 3.231042782696456e-02 3.229564848261764e-02 3.228088718700101e-02 3.226614390644563e-02 + 3.225141860917057e-02 3.223671128042128e-02 3.222202190260593e-02 3.220735044835789e-02 3.219269687989033e-02 + 3.217806118663362e-02 3.216344336205739e-02 3.214884337811092e-02 3.213426120193776e-02 3.211969680852602e-02 + 3.210515019435922e-02 3.209062132655478e-02 3.207611016186721e-02 3.206161670288540e-02 3.204714093648681e-02 + 3.203268282961075e-02 3.201824236239234e-02 3.200381951210604e-02 3.198941424912934e-02 3.197502654604618e-02 + 3.196065638811887e-02 3.194630377248257e-02 3.193196866763873e-02 3.191765104079724e-02 3.190335087680102e-02 + 3.188906815766901e-02 3.187480285784819e-02 3.186055494296534e-02 3.184632440204734e-02 3.183211122836238e-02 + 3.181791538780577e-02 3.180373685568510e-02 3.178957561657719e-02 3.177543165075891e-02 3.176130492904844e-02 + 3.174719542079285e-02 3.173310312097031e-02 3.171902801589959e-02 3.170497007535993e-02 3.169092927256592e-02 + 3.167690558660036e-02 3.166289900092451e-02 3.164890948767075e-02 3.163493702375719e-02 3.162098160094597e-02 + 3.160704320149037e-02 3.159312179836957e-02 3.157921735868882e-02 3.156532987076624e-02 3.155145932224658e-02 + 3.153760566663864e-02 3.152376889172848e-02 3.150994900180672e-02 3.149614595827410e-02 3.148235973399625e-02 + 3.146859031868535e-02 3.145483769408502e-02 3.144110182886523e-02 3.142738268687409e-02 3.141368026942635e-02 + 3.139999456778463e-02 3.138632554513814e-02 3.137267318073906e-02 3.135903745883740e-02 3.134541835839263e-02 + 3.133181584694165e-02 3.131822989974722e-02 3.130466051752389e-02 3.129110768114365e-02 3.127757136018487e-02 + 3.126405153214003e-02 3.125054818119363e-02 3.123706128835145e-02 3.122359081277034e-02 3.121013674152311e-02 + 3.119669908223311e-02 3.118327780512727e-02 3.116987287740892e-02 3.115648427590923e-02 3.114311198755302e-02 + 3.112975599208620e-02 3.111641625878769e-02 3.110309278026453e-02 3.108978554429882e-02 3.107649451605467e-02 + 3.106321967573116e-02 3.104996101093369e-02 3.103671850522385e-02 3.102349212552239e-02 3.101028184118182e-02 + 3.099708765215899e-02 3.098390954305432e-02 3.097074748653887e-02 3.095760146577434e-02 3.094447145973171e-02 + 3.093135744175442e-02 3.091825938652267e-02 3.090517727892404e-02 3.089211111199125e-02 3.087906086415095e-02 + 3.086602651045607e-02 3.085300802884278e-02 3.084000540267990e-02 3.082701861024971e-02 3.081404762072755e-02 + 3.080109242772720e-02 3.078815302348911e-02 3.077522937271052e-02 3.076232145526043e-02 3.074942925853004e-02 + 3.073655275969265e-02 3.072369193358731e-02 3.071084675893487e-02 3.069801722815575e-02 3.068520332655950e-02 + 3.067240502926292e-02 3.065962230727411e-02 3.064685514336771e-02 3.063410352936318e-02 3.062136743092317e-02 + 3.060864682743443e-02 3.059594172387181e-02 3.058325209340110e-02 3.057057790484611e-02 3.055791914232513e-02 + 3.054527578866520e-02 3.053264782274670e-02 3.052003521936738e-02 3.050743796632342e-02 3.049485605420712e-02 + 3.048228945948342e-02 3.046973815764381e-02 3.045720212753895e-02 3.044468135532321e-02 3.043217582076147e-02 + 3.041968549967531e-02 3.040721038082923e-02 3.039475044749309e-02 3.038230567464306e-02 3.036987604544383e-02 + 3.035746154526919e-02 3.034506215632694e-02 3.033267784558463e-02 3.032030859116679e-02 3.030795439680851e-02 + 3.029561524020229e-02 3.028329109283977e-02 3.027098194217670e-02 3.025868776986960e-02 3.024640855125834e-02 + 3.023414425922958e-02 3.022189488753165e-02 3.020966043396606e-02 3.019744085927903e-02 3.018523614254973e-02 + 3.017304628070488e-02 3.016087124712451e-02 3.014871101490015e-02 3.013656556629268e-02 3.012443489643160e-02 + 3.011231899192166e-02 3.010021782348693e-02 3.008813136953290e-02 3.007605961443153e-02 3.006400254477032e-02 + 3.005196013216448e-02 3.003993235442936e-02 3.002791921520012e-02 3.001592069144608e-02 3.000393675083135e-02 + 2.999196738372897e-02 2.998001257673401e-02 2.996807230790781e-02 2.995614654679549e-02 2.994423528130847e-02 + 2.993233851118915e-02 2.992045620999083e-02 2.990858835120550e-02 2.989673491731453e-02 2.988489589805536e-02 + 2.987307127537464e-02 2.986126102011340e-02 2.984946511909828e-02 2.983768356331996e-02 2.982591633787642e-02 + 2.981416341477938e-02 2.980242477098497e-02 2.979070040412034e-02 2.977899028736241e-02 2.976729439085326e-02 + 2.975561271768286e-02 2.974394525020974e-02 2.973229195799546e-02 2.972065283153817e-02 2.970902785474345e-02 + 2.969741700233630e-02 2.968582025251779e-02 2.967423759388233e-02 2.966266902120933e-02 2.965111450751603e-02 + 2.963957402972690e-02 2.962804757853395e-02 2.961653513685447e-02 2.960503668212408e-02 2.959355219023237e-02 + 2.958208165129883e-02 2.957062505724755e-02 2.955918238857859e-02 2.954775362079399e-02 2.953633873283637e-02 + 2.952493771681483e-02 2.951355054848872e-02 2.950217720053436e-02 2.949081767862442e-02 2.947947196700992e-02 + 2.946814003034778e-02 2.945682185755054e-02 2.944551743582863e-02 2.943422674341014e-02 2.942294975870480e-02 + 2.941168646812421e-02 2.940043686618776e-02 2.938920093147064e-02 2.937797864134186e-02 2.936676998172867e-02 + 2.935557493479196e-02 2.934439347979633e-02 2.933322559583284e-02 2.932207127373048e-02 2.931093050463312e-02 + 2.929980326285230e-02 2.928868953142686e-02 2.927758929945683e-02 2.926650254799867e-02 2.925542925398767e-02 + 2.924436939550082e-02 2.923332296415483e-02 2.922228995044700e-02 2.921127033783603e-02 2.920026410004271e-02 + 2.918927122033416e-02 2.917829169471517e-02 2.916732549176795e-02 2.915637258777840e-02 2.914543298801943e-02 + 2.913450667577263e-02 2.912359362430894e-02 2.911269381274288e-02 2.910180723305731e-02 2.909093387402745e-02 + 2.908007369930849e-02 2.906922669822638e-02 2.905839287303405e-02 2.904757219714476e-02 2.903676465199738e-02 + 2.902597022808873e-02 2.901518890157972e-02 2.900442065055892e-02 2.899366546087253e-02 2.898292332562971e-02 + 2.897219423070421e-02 2.896147815085827e-02 2.895077507160809e-02 2.894008498122344e-02 2.892940786384609e-02 + 2.891874369517828e-02 2.890809245634708e-02 2.889745414621765e-02 2.888682874769054e-02 2.887621623583590e-02 + 2.886561659425123e-02 2.885502981116054e-02 2.884445587294774e-02 2.883389475319686e-02 2.882334643970105e-02 + 2.881281093000496e-02 2.880228819979298e-02 2.879177822929067e-02 2.878128100842524e-02 2.877079651898801e-02 + 2.876032473884395e-02 2.874986564740009e-02 2.873941924390505e-02 2.872898552052601e-02 2.871856444638324e-02 + 2.870815600507148e-02 2.869776018641480e-02 2.868737697516582e-02 2.867700634591397e-02 2.866664827916806e-02 + 2.865630278319325e-02 2.864596983917359e-02 2.863564941328856e-02 2.862534149829953e-02 2.861504608429113e-02 + 2.860476315234840e-02 2.859449267740666e-02 2.858423464566411e-02 2.857398905422620e-02 2.856375588402207e-02 + 2.855353511594846e-02 2.854332673804624e-02 2.853313073796621e-02 2.852294709429606e-02 2.851277577543872e-02 + 2.850261678440491e-02 2.849247012219593e-02 2.848233575178603e-02 2.847221365657614e-02 2.846210383116990e-02 + 2.845200625935100e-02 2.844192091752946e-02 2.843184778466237e-02 2.842178686053369e-02 2.841173813547823e-02 + 2.840170158739025e-02 2.839167719418843e-02 2.838166494245600e-02 2.837166482484053e-02 2.836167681707307e-02 + 2.835170090137019e-02 2.834173707461769e-02 2.833178532393912e-02 2.832184563033358e-02 2.831191797277370e-02 + 2.830200233825938e-02 2.829209871310940e-02 2.828220707523810e-02 2.827232741579271e-02 2.826245972853687e-02 + 2.825260399229306e-02 2.824276019064247e-02 2.823292831178126e-02 2.822310834132040e-02 2.821330025651807e-02 + 2.820350403438503e-02 2.819371967866794e-02 2.818394718049788e-02 2.817418651237375e-02 2.816443766090156e-02 + 2.815470061416237e-02 2.814497535504664e-02 2.813526186206681e-02 2.812556012131105e-02 2.811587013236315e-02 + 2.810619188120791e-02 2.809652534562629e-02 2.808687050311100e-02 2.807722734684383e-02 2.806759586949595e-02 + 2.805797603975531e-02 2.804836784541272e-02 2.803877128655403e-02 2.802918634812817e-02 2.801961300908425e-02 + 2.801005124931340e-02 2.800050106254358e-02 2.799096243185147e-02 2.798143533065562e-02 2.797191976200169e-02 + 2.796241571829330e-02 2.795292316767612e-02 2.794344209750147e-02 2.793397250080147e-02 2.792451436474921e-02 + 2.791506766429417e-02 2.790563238187514e-02 2.789620852426368e-02 2.788679607109519e-02 2.787739499448651e-02 + 2.786800529276515e-02 2.785862695250820e-02 2.784925995023579e-02 2.783990426851568e-02 2.783055990112446e-02 + 2.782122684523413e-02 2.781190507602721e-02 2.780259457625915e-02 2.779329533996523e-02 2.778400734510273e-02 + 2.777473057425486e-02 2.776546502209671e-02 2.775621067523501e-02 2.774696751775778e-02 2.773773553529171e-02 + 2.772851471226555e-02 2.771930503638066e-02 2.771010650156085e-02 2.770091908311444e-02 2.769174275675288e-02 + 2.768257752750487e-02 2.767342338343482e-02 2.766428030170250e-02 2.765514827509389e-02 2.764602728937508e-02 + 2.763691732224667e-02 2.762781835629091e-02 2.761873038318760e-02 2.760965340016332e-02 2.760058738918467e-02 + 2.759153233095657e-02 2.758248821223181e-02 2.757345502668101e-02 2.756443275844788e-02 2.755542137569210e-02 + 2.754642087861812e-02 2.753743126859248e-02 2.752845251726651e-02 2.751948461051369e-02 2.751052754088128e-02 + 2.750158129051000e-02 2.749264584112846e-02 2.748372117908398e-02 2.747480730190011e-02 2.746590419839729e-02 + 2.745701184777745e-02 2.744813023052759e-02 2.743925933666562e-02 2.743039916197098e-02 2.742154968107790e-02 + 2.741271087850060e-02 2.740388275814067e-02 2.739506530469222e-02 2.738625849608251e-02 2.737746231424592e-02 + 2.736867675514432e-02 2.735990180809817e-02 2.735113743878892e-02 2.734238364845174e-02 2.733364044336462e-02 + 2.732490778587926e-02 2.731618566204183e-02 2.730747407386686e-02 2.729877300249025e-02 2.729008242908668e-02 + 2.728140234030172e-02 2.727273272900814e-02 2.726407358354408e-02 2.725542488697956e-02 2.724678662927163e-02 + 2.723815879907967e-02 2.722954137935252e-02 2.722093434732608e-02 2.721233769152850e-02 2.720375141931018e-02 + 2.719517551218435e-02 2.718660994644712e-02 2.717805471481514e-02 2.716950980584153e-02 2.716097520393317e-02 + 2.715245089289530e-02 2.714393686286031e-02 2.713543310581999e-02 2.712693960497614e-02 2.711845634782483e-02 + 2.710998332519429e-02 2.710152051958041e-02 2.709306791441093e-02 2.708462549834906e-02 2.707619326918369e-02 + 2.706777121480425e-02 2.705935930907671e-02 2.705095754483260e-02 2.704256591454058e-02 2.703418439795306e-02 + 2.702581298145425e-02 2.701745165546447e-02 2.700910041075726e-02 2.700075923746808e-02 2.699242812272907e-02 + 2.698410704764140e-02 2.697579599978723e-02 2.696749496984126e-02 2.695920394125775e-02 2.695092290187428e-02 + 2.694265184396634e-02 2.693439075649869e-02 2.692613962541774e-02 2.691789843589869e-02 2.690966718080280e-02 + 2.690144584430361e-02 2.689323440003169e-02 2.688503284907665e-02 2.687684119009101e-02 2.686865940030225e-02 + 2.686048746353486e-02 2.685232536881714e-02 2.684417310662326e-02 2.683603066151065e-02 2.682789801897943e-02 + 2.681977517552054e-02 2.681166212021913e-02 2.680355883616239e-02 2.679546530889016e-02 2.678738152752996e-02 + 2.677930748200765e-02 2.677124315479004e-02 2.676318853591112e-02 2.675514362231527e-02 2.674710839396962e-02 + 2.673908283555094e-02 2.673106694339361e-02 2.672306070150655e-02 2.671506409151823e-02 2.670707710108217e-02 + 2.669909972943648e-02 2.669113197027321e-02 2.668317379682501e-02 2.667522519875436e-02 2.666728617090520e-02 + 2.665935669311371e-02 2.665143675159882e-02 2.664352634032146e-02 2.663562545659268e-02 2.662773408361464e-02 + 2.661985219717407e-02 2.661197979572226e-02 2.660411687169956e-02 2.659626340488144e-02 2.658841937631547e-02 + 2.658058477937751e-02 2.657275961893512e-02 2.656494387358596e-02 2.655713752275513e-02 2.654934056348008e-02 + 2.654155298332925e-02 2.653377476657220e-02 2.652600590198415e-02 2.651824638075199e-02 2.651049619255404e-02 + 2.650275532091429e-02 2.649502375487615e-02 2.648730148802552e-02 2.647958851263073e-02 2.647188480891689e-02 + 2.646419035368700e-02 2.645650515131691e-02 2.644882919484906e-02 2.644116246069965e-02 2.643350494181170e-02 + 2.642585663084689e-02 2.641821751242615e-02 2.641058756892747e-02 2.640296679007395e-02 2.639535517653221e-02 + 2.638775271175803e-02 2.638015937698240e-02 2.637257516664822e-02 2.636500007332271e-02 2.635743408373907e-02 + 2.634987717633525e-02 2.634232934391862e-02 2.633479058525924e-02 2.632726088227431e-02 2.631974022390311e-02 + 2.631222860499385e-02 2.630472600717760e-02 2.629723241433261e-02 2.628974781674581e-02 2.628227220621198e-02 + 2.627480557677242e-02 2.626734792215179e-02 2.625989921852152e-02 2.625245945041883e-02 2.624502862403611e-02 + 2.623760671958282e-02 2.623019371536040e-02 2.622278961237779e-02 2.621539440295659e-02 2.620800807254220e-02 + 2.620063060674004e-02 2.619326199404739e-02 2.618590222410475e-02 2.617855128386046e-02 2.617120916522779e-02 + 2.616387586230346e-02 2.615655135861502e-02 2.614923564213544e-02 2.614192870720641e-02 2.613463054125929e-02 + 2.612734112755428e-02 2.612006044964381e-02 2.611278850871195e-02 2.610552530050819e-02 2.609827080222275e-02 + 2.609102500359168e-02 2.608378789925431e-02 2.607655947900249e-02 2.606933972466179e-02 2.606212861946312e-02 + 2.605492616097670e-02 2.604773234503024e-02 2.604054716124884e-02 2.603337058950191e-02 2.602620261873257e-02 + 2.601904324395194e-02 2.601189244598317e-02 2.600475021758196e-02 2.599761656283118e-02 2.599049145836681e-02 + 2.598337488632347e-02 2.597626684662969e-02 2.596916733159564e-02 2.596207632537513e-02 2.595499380688753e-02 + 2.594791977426907e-02 2.594085422650568e-02 2.593379714560815e-02 2.592674851872178e-02 2.591970833661526e-02 + 2.591267658830654e-02 2.590565326173340e-02 2.589863834578747e-02 2.589163183398775e-02 2.588463371701131e-02 + 2.587764398252935e-02 2.587066261956569e-02 2.586368961749470e-02 2.585672496539723e-02 2.584976865103265e-02 + 2.584282066471713e-02 2.583588100000093e-02 2.582894964599770e-02 2.582202659070586e-02 2.581511182332461e-02 + 2.580820533343631e-02 2.580130710958863e-02 2.579441713875388e-02 2.578753541579036e-02 2.578066193633965e-02 + 2.577379668579866e-02 2.576693964640701e-02 2.576009080523955e-02 2.575325016689414e-02 2.574641771694009e-02 + 2.573959342940173e-02 2.573277731100565e-02 2.572596935753856e-02 2.571916954588383e-02 2.571237786264848e-02 + 2.570559430241213e-02 2.569881886299849e-02 2.569205152414907e-02 2.568529227185872e-02 2.567854111122693e-02 + 2.567179802594942e-02 2.566506299732867e-02 2.565833602386073e-02 2.565161709921462e-02 2.564490620914589e-02 + 2.563820333139000e-02 2.563150846268354e-02 2.562482160754986e-02 2.561814274902439e-02 2.561147187258114e-02 + 2.560480896924013e-02 2.559815402833877e-02 2.559150703774291e-02 2.558486798572520e-02 2.557823686789989e-02 + 2.557161367849433e-02 2.556499840587265e-02 2.555839103232124e-02 2.555179154834854e-02 2.554519995829834e-02 + 2.553861624178350e-02 2.553204037844031e-02 2.552547237202886e-02 2.551891221538829e-02 2.551235989397021e-02 + 2.550581539575596e-02 2.549927871458803e-02 2.549274984258965e-02 2.548622875540724e-02 2.547971544999134e-02 + 2.547320993631275e-02 2.546671219025347e-02 2.546022219347805e-02 2.545373994243675e-02 2.544726542971977e-02 + 2.544079864501286e-02 2.543433957656028e-02 2.542788821576999e-02 2.542144455508066e-02 2.541500858637495e-02 + 2.540858030019949e-02 2.540215968413957e-02 2.539574672197945e-02 2.538934140646816e-02 2.538294373410821e-02 + 2.537655369660362e-02 2.537017128263758e-02 2.536379648098229e-02 2.535742928550868e-02 2.535106968465225e-02 + 2.534471766277936e-02 2.533837321084466e-02 2.533203632423742e-02 2.532570699881585e-02 2.531938521813243e-02 + 2.531307097096266e-02 2.530676425602581e-02 2.530046505932213e-02 2.529417336607690e-02 2.528788916915281e-02 + 2.528161246489754e-02 2.527534324609989e-02 2.526908149634068e-02 2.526282720495094e-02 2.525658036572961e-02 + 2.525034097275206e-02 2.524410901058027e-02 2.523788446449190e-02 2.523166734234336e-02 2.522545763237074e-02 + 2.521925530838600e-02 2.521306037097086e-02 2.520687281776321e-02 2.520069263496993e-02 2.519451980442291e-02 + 2.518835431925369e-02 2.518219618546694e-02 2.517604538654039e-02 2.516990190396150e-02 2.516376573127799e-02 + 2.515763686639562e-02 2.515151530112912e-02 2.514540101358030e-02 2.513929399756280e-02 2.513319425347670e-02 + 2.512710177240427e-02 2.512101654329324e-02 2.511493855506050e-02 2.510886779787783e-02 2.510280425830826e-02 + 2.509674792451250e-02 2.509069880343641e-02 2.508465688466923e-02 2.507862214067907e-02 2.507259457630134e-02 + 2.506657418922008e-02 2.506056095604422e-02 2.505455486579475e-02 2.504855591546334e-02 2.504256410459500e-02 + 2.503657941982099e-02 2.503060184642849e-02 2.502463137903613e-02 2.501866800626509e-02 2.501271171663477e-02 + 2.500676250820755e-02 2.500082037092928e-02 2.499488529135626e-02 2.498895726677344e-02 2.498303628979692e-02 + 2.497712234741346e-02 2.497121542814719e-02 2.496531552247531e-02 2.495942262282587e-02 2.495353672310340e-02 + 2.494765781766853e-02 2.494178589943900e-02 2.493592095223772e-02 2.493006296439117e-02 2.492421193524048e-02 + 2.491836784922406e-02 2.491253069345717e-02 2.490670047398909e-02 2.490087718065651e-02 2.489506079631419e-02 + 2.488925131370227e-02 2.488344872747560e-02 2.487765302865731e-02 2.487186419727612e-02 2.486608223223404e-02 + 2.486030714174834e-02 2.485453889875117e-02 2.484877749156952e-02 2.484302292908405e-02 2.483727519324232e-02 + 2.483153426549052e-02 2.482580013961989e-02 2.482007281919668e-02 2.481435229933991e-02 2.480863855780388e-02 + 2.480293158683973e-02 2.479723138421890e-02 2.479153794250162e-02 2.478585124573938e-02 2.478017128120043e-02 + 2.477449805440481e-02 2.476883155587847e-02 2.476317176818658e-02 2.475751868877601e-02 2.475187231076201e-02 + 2.474623262098153e-02 2.474059960704484e-02 2.473497326224523e-02 2.472935358498410e-02 2.472374056978996e-02 + 2.471813420423485e-02 2.471253447111526e-02 2.470694136984621e-02 2.470135489678424e-02 2.469577503399494e-02 + 2.469020177298829e-02 2.468463511029760e-02 2.467907504169421e-02 2.467352155791407e-02 2.466797464651026e-02 + 2.466243429488579e-02 2.465690049712254e-02 2.465137324948606e-02 2.464585254039273e-02 2.464033836402688e-02 + 2.463483071739735e-02 2.462932958374225e-02 2.462383495186045e-02 2.461834681928389e-02 2.461286517898853e-02 + 2.460739002108202e-02 2.460192133524253e-02 2.459645911917798e-02 2.459100336526309e-02 2.458555405446716e-02 + 2.458011118496141e-02 2.457467475465895e-02 2.456924474486533e-02 2.456382114921245e-02 2.455840396700115e-02 + 2.455299319041756e-02 2.454758880740113e-02 2.454219080674820e-02 2.453679918638537e-02 2.453141393576077e-02 + 2.452603503863916e-02 2.452066249180092e-02 2.451529629410615e-02 2.450993644073534e-02 2.450458291517292e-02 + 2.449923570627392e-02 2.449389481263279e-02 2.448856022075961e-02 2.448323192252920e-02 2.447790992354739e-02 + 2.447259420740984e-02 2.446728475663024e-02 2.446198157303190e-02 2.445668465268695e-02 2.445139398411770e-02 + 2.444610955000165e-02 2.444083134675017e-02 2.443555937646448e-02 2.443029362647454e-02 2.442503408583922e-02 + 2.441978074770511e-02 2.441453360513738e-02 2.440929264714783e-02 2.440405786136508e-02 2.439882924944217e-02 + 2.439360680824694e-02 2.438839052372590e-02 2.438318038826778e-02 2.437797639360750e-02 2.437277852674977e-02 + 2.436758678074824e-02 2.436240115296091e-02 2.435722164202054e-02 2.435204823529888e-02 2.434688091817521e-02 + 2.434171968740183e-02 2.433656453724402e-02 2.433141545805634e-02 2.432627243782077e-02 2.432113546933723e-02 + 2.431600455029639e-02 2.431087967900234e-02 2.430576084399959e-02 2.430064802749307e-02 2.429554123205279e-02 + 2.429044044976694e-02 2.428534565606734e-02 2.428025685952290e-02 2.427517406275088e-02 2.427009724038350e-02 + 2.426502638834353e-02 2.425996150697585e-02 2.425490258288459e-02 2.424984960255012e-02 2.424480255754471e-02 + 2.423976144931379e-02 2.423472627405213e-02 2.422969702193537e-02 2.422467367993699e-02 2.421965624107330e-02 + 2.421464470176334e-02 2.420963904926960e-02 2.420463927567678e-02 2.419964537946393e-02 2.419465735323985e-02 + 2.418967518800793e-02 2.418469887545246e-02 2.417972840901141e-02 2.417476377855392e-02 2.416980496962540e-02 + 2.416485198688481e-02 2.415990483049387e-02 2.415496347565664e-02 2.415002792020104e-02 2.414509816788697e-02 + 2.414017420064829e-02 2.413525600526027e-02 2.413034357711665e-02 2.412543691925479e-02 2.412053602209589e-02 + 2.411564086852338e-02 2.411075145960207e-02 2.410586778967854e-02 2.410098984367492e-02 2.409611761892932e-02 + 2.409125110932578e-02 2.408639030144091e-02 2.408153519631380e-02 2.407668578962185e-02 2.407184206146642e-02 + 2.406700400909483e-02 2.406217163125833e-02 2.405734491326586e-02 2.405252385052364e-02 2.404770844026444e-02 + 2.404289866819192e-02 2.403809452984102e-02 2.403329602484744e-02 2.402850314011094e-02 2.402371586479471e-02 + 2.401893419282938e-02 2.401415812045089e-02 2.400938764313821e-02 2.400462275334547e-02 2.399986343578922e-02 + 2.399510968520409e-02 2.399036150812855e-02 2.398561888480285e-02 2.398088180164008e-02 2.397615026865237e-02 + 2.397142427338870e-02 2.396670380040281e-02 2.396198885088599e-02 2.395727942113068e-02 2.395257549962209e-02 + 2.394787706723708e-02 2.394318412617158e-02 2.393849668455232e-02 2.393381472012022e-02 2.392913822141401e-02 + 2.392446719065216e-02 2.391980162598514e-02 2.391514151312970e-02 2.391048683154523e-02 2.390583758880722e-02 + 2.390119378770886e-02 2.389655541357522e-02 2.389192245255953e-02 2.388729489743550e-02 2.388267274893805e-02 + 2.387805599705324e-02 2.387344463051915e-02 2.386883864637205e-02 2.386423804212813e-02 2.385964281176755e-02 + 2.385505294183017e-02 2.385046842474073e-02 2.384588925674739e-02 2.384131543037479e-02 2.383674693675093e-02 + 2.383218376863605e-02 2.382762592698097e-02 2.382307340607612e-02 2.381852619200930e-02 2.381398427584630e-02 + 2.380944765139419e-02 2.380491631418275e-02 2.380039026147703e-02 2.379586948695320e-02 2.379135397827495e-02 + 2.378684372855616e-02 2.378233873403001e-02 2.377783899070361e-02 2.377334448688785e-02 2.376885521259772e-02 + 2.376437117173840e-02 2.375989235311110e-02 2.375541874056297e-02 2.375095033967465e-02 2.374648714507580e-02 + 2.374202914136664e-02 2.373757632537944e-02 2.373312869288914e-02 2.372868623536894e-02 2.372424894471153e-02 + 2.371981681484819e-02 2.371538984133524e-02 2.371096801501392e-02 2.370655132827953e-02 2.370213977833190e-02 + 2.369773335765337e-02 2.369333205880069e-02 2.368893587883010e-02 2.368454481046802e-02 2.368015884444250e-02 + 2.367577797334512e-02 2.367140218742613e-02 2.366703147963686e-02 2.366266585606776e-02 2.365830530976384e-02 + 2.365394982335759e-02 2.364959939168465e-02 2.364525401200215e-02 2.364091367903051e-02 2.363657837870221e-02 + 2.363224810602428e-02 2.362792286773459e-02 2.362360264929340e-02 2.361928743769403e-02 2.361497723470610e-02 + 2.361067203383207e-02 2.360637182449869e-02 2.360207659794005e-02 2.359778635431920e-02 2.359350109143980e-02 + 2.358922079027601e-02 2.358494544772182e-02 2.358067506765588e-02 2.357640963547734e-02 2.357214914179353e-02 + 2.356789358468287e-02 2.356364296127548e-02 2.355939726289868e-02 2.355515647729875e-02 2.355092060314220e-02 + 2.354668963726047e-02 2.354246356971432e-02 2.353824239065819e-02 2.353402609608870e-02 2.352981468856027e-02 + 2.352560815209497e-02 2.352140647526573e-02 2.351720967050562e-02 2.351301772305351e-02 2.350883061252196e-02 + 2.350464834642137e-02 2.350047092197861e-02 2.349629832802946e-02 2.349213055910952e-02 2.348796760574937e-02 + 2.348380945835795e-02 2.347965612326723e-02 2.347550759163322e-02 2.347136384068571e-02 2.346722487769892e-02 + 2.346309070523777e-02 2.345896130833473e-02 2.345483667635093e-02 2.345071680463291e-02 2.344660169327714e-02 + 2.344249133136094e-02 2.343838570884467e-02 2.343428482723373e-02 2.343018868068117e-02 2.342609726030811e-02 + 2.342201056195244e-02 2.341792857876926e-02 2.341385130156056e-02 2.340977872164902e-02 2.340571083589386e-02 + 2.340164764377465e-02 2.339758913684304e-02 2.339353530825718e-02 2.338948615385810e-02 2.338544166438565e-02 + 2.338140183238109e-02 2.337736665460082e-02 2.337333612670094e-02 2.336931024309368e-02 2.336528899670786e-02 + 2.336127237782067e-02 2.335726037932775e-02 2.335325300092871e-02 2.334925023614406e-02 2.334525207670920e-02 + 2.334125851951941e-02 2.333726955725296e-02 2.333328518197435e-02 2.332930539416707e-02 2.332533018620607e-02 + 2.332135954429912e-02 2.331739346348105e-02 2.331343194297124e-02 2.330947498175055e-02 2.330552256758802e-02 + 2.330157469245372e-02 2.329763135682490e-02 2.329369255310137e-02 2.328975827131819e-02 2.328582850377367e-02 + 2.328190324900185e-02 2.327798250467623e-02 2.327406626164597e-02 2.327015451465238e-02 2.326624725851670e-02 + 2.326234448228765e-02 2.325844618291867e-02 2.325455236057939e-02 2.325066300636415e-02 2.324677811186985e-02 + 2.324289767062798e-02 2.323902167622130e-02 2.323515012509116e-02 2.323128301561370e-02 2.322742034088871e-02 + 2.322356209250113e-02 2.321970826255392e-02 2.321585884544971e-02 2.321201383858435e-02 2.320817324137425e-02 + 2.320433704277431e-02 2.320050523099401e-02 2.319667780275936e-02 2.319285475700314e-02 2.318903609087885e-02 + 2.318522179577433e-02 2.318141186586264e-02 2.317760629632794e-02 2.317380507773795e-02 2.317000820301008e-02 + 2.316621566880872e-02 2.316242747510807e-02 2.315864361575457e-02 2.315486407850317e-02 2.315108885694486e-02 + 2.314731794816131e-02 2.314355135044316e-02 2.313978905662257e-02 2.313603105913640e-02 2.313227735329952e-02 + 2.312852793585061e-02 2.312478280157292e-02 2.312104194073204e-02 2.311730534704967e-02 2.311357301587891e-02 + 2.310984494137890e-02 2.310612112341407e-02 2.310240155989217e-02 2.309868623130452e-02 2.309497513592190e-02 + 2.309126828241582e-02 2.308756565023808e-02 2.308386723175103e-02 2.308017303542274e-02 2.307648304592169e-02 + 2.307279725617671e-02 2.306911567493640e-02 2.306543828441958e-02 2.306176507302976e-02 2.305809605235563e-02 + 2.305443121050249e-02 2.305077053229759e-02 2.304711401909808e-02 2.304346166830784e-02 2.303981347406350e-02 + 2.303616943085239e-02 2.303252953349069e-02 2.302889377643319e-02 2.302526215247478e-02 2.302163465435939e-02 + 2.301801127709388e-02 2.301439202296127e-02 2.301077688440331e-02 2.300716584594829e-02 2.300355891234385e-02 + 2.299995607931316e-02 2.299635732709070e-02 2.299276266087610e-02 2.298917208378683e-02 2.298558558107965e-02 + 2.298200314503575e-02 2.297842477288603e-02 2.297485046311076e-02 2.297128020911345e-02 2.296771400315858e-02 + 2.296415184168031e-02 2.296059371667762e-02 2.295703962066644e-02 2.295348955785851e-02 2.294994352217295e-02 + 2.294640149900077e-02 2.294286348264926e-02 2.293932947451599e-02 2.293579947717141e-02 2.293227347444131e-02 + 2.292875145668869e-02 2.292523342863249e-02 2.292171938675970e-02 2.291820932208030e-02 2.291470322329688e-02 + 2.291120108573121e-02 2.290770290936340e-02 2.290420869564250e-02 2.290071843254762e-02 2.289723210840996e-02 + 2.289374972996874e-02 2.289027128684278e-02 2.288679676284003e-02 2.288332616596880e-02 2.287985949623025e-02 + 2.287639674290211e-02 2.287293789614104e-02 2.286948295143698e-02 2.286603190794522e-02 2.286258475709644e-02 + 2.285914149325583e-02 2.285570211629635e-02 2.285226661817064e-02 2.284883499242224e-02 2.284540723897847e-02 + 2.284198334984975e-02 2.283856331588243e-02 2.283514713353579e-02 2.283173480111027e-02 2.282832631556901e-02 + 2.282492166909090e-02 2.282152085461623e-02 2.281812386736860e-02 2.281473070606539e-02 2.281134136558116e-02 + 2.280795583769253e-02 2.280457411713410e-02 2.280119619914733e-02 2.279782207936136e-02 2.279445175627783e-02 + 2.279108522557549e-02 2.278772247795469e-02 2.278436350274908e-02 2.278100829770330e-02 2.277765687156956e-02 + 2.277430921150676e-02 2.277096530368425e-02 2.276762515226868e-02 2.276428875675497e-02 2.276095610802096e-02 + 2.275762718728153e-02 2.275430199700514e-02 2.275098054723153e-02 2.274766282325953e-02 2.274434881806882e-02 + 2.274103853245654e-02 2.273773195657694e-02 2.273442908251650e-02 2.273112990748000e-02 2.272783443024632e-02 + 2.272454264587135e-02 2.272125454541999e-02 2.271797012768606e-02 2.271468938883630e-02 2.271141231743784e-02 + 2.270813891155475e-02 2.270486917113991e-02 2.270160309030139e-02 2.269834065991423e-02 2.269508187421201e-02 + 2.269182673791773e-02 2.268857524219826e-02 2.268532737305624e-02 2.268208313254210e-02 2.267884251722086e-02 + 2.267560551920548e-02 2.267237214108131e-02 2.266914237609957e-02 2.266591620883689e-02 2.266269364166427e-02 + 2.265947467384046e-02 2.265625929499294e-02 2.265304750285308e-02 2.264983929495161e-02 2.264663466331073e-02 + 2.264343359962570e-02 2.264023610100446e-02 2.263704217283995e-02 2.263385180078203e-02 2.263066497176033e-02 + 2.262748170200772e-02 2.262430198020481e-02 2.262112578516977e-02 2.261795313211606e-02 2.261478401664109e-02 + 2.261161841743119e-02 2.260845633522814e-02 2.260529777070043e-02 2.260214271924124e-02 2.259899117823321e-02 + 2.259584314154298e-02 2.259269859890657e-02 2.258955754741791e-02 2.258641998536936e-02 2.258328590829124e-02 + 2.258015531052365e-02 2.257702818646037e-02 2.257390453172050e-02 2.257078434461123e-02 2.256766762198980e-02 + 2.256455435398716e-02 2.256144453344060e-02 2.255833815784602e-02 2.255523523027356e-02 2.255213574452021e-02 + 2.254903968810603e-02 2.254594705829782e-02 2.254285785514665e-02 2.253977207653749e-02 2.253668970834607e-02 + 2.253361074658835e-02 2.253053520058667e-02 2.252746305460894e-02 2.252439429792020e-02 2.252132894054988e-02 + 2.251826697539277e-02 2.251520839162438e-02 2.251215318778324e-02 2.250910135797150e-02 2.250605289615611e-02 + 2.250300780314812e-02 2.249996607511807e-02 2.249692770517706e-02 2.249389268897849e-02 2.249086101912092e-02 + 2.248783268793952e-02 2.248480769791340e-02 2.248178604607573e-02 2.247876772289102e-02 2.247575272657626e-02 + 2.247274105420605e-02 2.246973269884927e-02 2.246672765673356e-02 2.246372592391256e-02 2.246072749418018e-02 + 2.245773236145919e-02 2.245474052366870e-02 2.245175198466864e-02 2.244876673416187e-02 2.244578475935081e-02 + 2.244280606154297e-02 2.243983064008646e-02 2.243685849064164e-02 2.243388960632717e-02 2.243092397966235e-02 + 2.242796160524575e-02 2.242500248562306e-02 2.242204661762487e-02 2.241909399183298e-02 2.241614460666303e-02 + 2.241319845819517e-02 2.241025553754803e-02 2.240731584245553e-02 2.240437937032112e-02 2.240144611432051e-02 + 2.239851607018801e-02 2.239558923444239e-02 2.239266560299412e-02 2.238974517661811e-02 2.238682795331298e-02 + 2.238391391839321e-02 2.238100306495051e-02 2.237809539304577e-02 2.237519090301935e-02 2.237228958954325e-02 + 2.236939144530989e-02 2.236649647337483e-02 2.236360466636645e-02 2.236071600836286e-02 2.235783050633204e-02 + 2.235494816009726e-02 2.235206895420678e-02 2.234919288912077e-02 2.234631996540050e-02 2.234345017408028e-02 + 2.234058350741709e-02 2.233771996217690e-02 2.233485954108143e-02 2.233200223848051e-02 2.232914804618978e-02 + 2.232629696222737e-02 2.232344898389008e-02 2.232060410657171e-02 2.231776232362639e-02 2.231492363175558e-02 + 2.231208802922137e-02 2.230925550831191e-02 2.230642606279709e-02 2.230359969032392e-02 2.230077639232617e-02 + 2.229795616382932e-02 2.229513899284023e-02 2.229232488215048e-02 2.228951382986107e-02 2.228670582046145e-02 + 2.228390085767177e-02 2.228109894426768e-02 2.227830006461064e-02 2.227550421765863e-02 2.227271140560883e-02 + 2.226992161633195e-02 2.226713484518715e-02 2.226435109357777e-02 2.226157036041665e-02 2.225879263594571e-02 + 2.225601790864145e-02 2.225324618600033e-02 2.225047746610503e-02 2.224771173578603e-02 2.224494899695189e-02 + 2.224218924606724e-02 2.223943246967720e-02 2.223667867147697e-02 2.223392785229840e-02 2.223117999944780e-02 + 2.222843510958861e-02 2.222569318138216e-02 2.222295420869658e-02 2.222021819230338e-02 2.221748513172378e-02 + 2.221475501403353e-02 2.221202783347761e-02 2.220930358964832e-02 2.220658227937696e-02 2.220386389978368e-02 + 2.220114844711944e-02 2.219843591216284e-02 2.219572629440826e-02 2.219301959936691e-02 2.219031581219321e-02 + 2.218761492468887e-02 2.218491694233576e-02 2.218222185562244e-02 2.217952965986671e-02 2.217684036403281e-02 + 2.217415395419634e-02 2.217147041795686e-02 2.216878976537657e-02 2.216611199005385e-02 2.216343708084910e-02 + 2.216076504044857e-02 2.215809586407636e-02 2.215542954392592e-02 2.215276608232491e-02 2.215010547339664e-02 + 2.214744770611955e-02 2.214479278225410e-02 2.214214070177000e-02 2.213949145934428e-02 2.213684504847090e-02 + 2.213420146383213e-02 2.213156070201421e-02 2.212892275987791e-02 2.212628763520102e-02 2.212365532631548e-02 + 2.212102582567219e-02 2.211839912707401e-02 2.211577523186081e-02 2.211315413883962e-02 2.211053584219323e-02 + 2.210792033053083e-02 2.210530760247808e-02 2.210269766011106e-02 2.210009049378774e-02 2.209748609987134e-02 + 2.209488448015577e-02 2.209228563063591e-02 2.208968954607055e-02 2.208709622107550e-02 2.208450564887732e-02 + 2.208191782589816e-02 2.207933275252874e-02 2.207675042560285e-02 2.207417084119970e-02 2.207159399606388e-02 + 2.206901988424427e-02 2.206644850045388e-02 2.206387984291528e-02 2.206131390816773e-02 2.205875069196218e-02 + 2.205619019101501e-02 2.205363240248722e-02 2.205107732226570e-02 2.204852494231603e-02 2.204597526222870e-02 + 2.204342828418220e-02 2.204088399409952e-02 2.203834238815479e-02 2.203580347352047e-02 2.203326724064265e-02 + 2.203073368487589e-02 2.202820281109562e-02 2.202567460568826e-02 2.202314905892956e-02 2.202062617713913e-02 + 2.201810595951965e-02 2.201558839960293e-02 2.201307348855861e-02 2.201056122699519e-02 2.200805161543166e-02 + 2.200554464185156e-02 2.200304030240887e-02 2.200053859846551e-02 2.199803952619762e-02 2.199554308107517e-02 + 2.199304925941878e-02 2.199055805969111e-02 2.198806947716193e-02 2.198558350490501e-02 2.198310014348315e-02 + 2.198061939050182e-02 2.197814123774413e-02 2.197566568143648e-02 2.197319271829654e-02 2.197072234409288e-02 + 2.196825456242376e-02 2.196578937054303e-02 2.196332674903257e-02 2.196086670076693e-02 2.195840923401799e-02 + 2.195595433798292e-02 2.195350200785295e-02 2.195105224287541e-02 2.194860503638501e-02 2.194616038337459e-02 + 2.194371828086876e-02 2.194127872478465e-02 2.193884171275727e-02 2.193640724439015e-02 2.193397531871202e-02 + 2.193154592984012e-02 2.192911906730429e-02 2.192669472874541e-02 2.192427291582612e-02 2.192185362988310e-02 + 2.191943685926103e-02 2.191702259589666e-02 2.191461084837004e-02 2.191220161094460e-02 2.190979487232746e-02 + 2.190739062981033e-02 2.190498888177591e-02 2.190258962778606e-02 2.190019287048831e-02 2.189779860038415e-02 + 2.189540680312951e-02 2.189301748590321e-02 2.189063064823816e-02 2.188824627921663e-02 2.188586438035036e-02 + 2.188348494945867e-02 2.188110797669410e-02 2.187873346273279e-02 2.187636140793982e-02 2.187399180563438e-02 + 2.187162464701073e-02 2.186925992764394e-02 2.186689765219864e-02 2.186453782016761e-02 2.186218042520733e-02 + 2.185982545624109e-02 2.185747291143151e-02 2.185512279286289e-02 2.185277509428750e-02 2.185042981497303e-02 + 2.184808695595145e-02 2.184574650317918e-02 2.184340845337333e-02 2.184107281435048e-02 2.183873957690715e-02 + 2.183640873122354e-02 2.183408027442373e-02 2.183175421068970e-02 2.182943053984947e-02 2.182710925220595e-02 + 2.182479034512406e-02 2.182247381639650e-02 2.182015965839264e-02 2.181784786935527e-02 2.181553844939510e-02 + 2.181323139439093e-02 2.181092669994856e-02 2.180862436262286e-02 2.180632438083940e-02 2.180402674952244e-02 + 2.180173146217098e-02 2.179943851892379e-02 2.179714791838810e-02 2.179485965603752e-02 2.179257372764807e-02 + 2.179029013045416e-02 2.178800886254997e-02 2.178572991731780e-02 2.178345329019238e-02 2.178117898198011e-02 + 2.177890698980304e-02 2.177663730909087e-02 2.177436993586566e-02 2.177210486810286e-02 2.176984210277431e-02 + 2.176758163245009e-02 2.176532345522340e-02 2.176306757137086e-02 2.176081397536724e-02 2.175856266623576e-02 + 2.175631364444715e-02 2.175406689861889e-02 2.175182242380624e-02 2.174958022311289e-02 2.174734029291431e-02 + 2.174510262809328e-02 2.174286722491656e-02 2.174063408336708e-02 2.173840320169586e-02 2.173617457340815e-02 + 2.173394819180500e-02 2.173172405255836e-02 2.172950215559655e-02 2.172728250040623e-02 2.172506508580887e-02 + 2.172284990969628e-02 2.172063696250313e-02 2.171842623537083e-02 2.171621773566752e-02 2.171401146093844e-02 + 2.171180740120238e-02 2.170960555830954e-02 2.170740592901658e-02 2.170520850408856e-02 2.170301328419004e-02 + 2.170082027006994e-02 2.169862945830807e-02 2.169644084240343e-02 2.169425441572978e-02 2.169207017401216e-02 + 2.168988812007480e-02 2.168770825534887e-02 2.168553057272023e-02 2.168335506533793e-02 2.168118172867985e-02 + 2.167901056214399e-02 2.167684156632982e-02 2.167467473989915e-02 2.167251007478243e-02 2.167034756604321e-02 + 2.166818721221639e-02 2.166602901099679e-02 2.166387295840019e-02 2.166171905012346e-02 2.165956728718834e-02 + 2.165741766632386e-02 2.165527017845730e-02 2.165312482355555e-02 2.165098160273919e-02 2.164884051303741e-02 + 2.164670154730472e-02 2.164456469954934e-02 2.164242996946321e-02 2.164029735885670e-02 2.163816686523918e-02 + 2.163603847533059e-02 2.163391219068715e-02 2.163178801684997e-02 2.162966593882407e-02 2.162754595404139e-02 + 2.162542806873079e-02 2.162331227177066e-02 2.162119856181649e-02 2.161908694674025e-02 2.161697741144211e-02 + 2.161486994763257e-02 2.161276456243416e-02 2.161066125301312e-02 2.160856001324272e-02 2.160646083892226e-02 + 2.160436373197112e-02 2.160226869104043e-02 2.160017570438035e-02 2.159808476849354e-02 2.159599588501710e-02 + 2.159390905460169e-02 2.159182427010056e-02 2.158974152429478e-02 2.158766082444429e-02 2.158558216760809e-02 + 2.158350554187339e-02 2.158143094233737e-02 2.157935837033232e-02 2.157728782941571e-02 2.157521931196140e-02 + 2.157315281164952e-02 2.157108832745493e-02 2.156902585566251e-02 2.156696539445298e-02 2.156490694526656e-02 + 2.156285049964247e-02 2.156079605212440e-02 2.155874360997529e-02 2.155669316474123e-02 2.155464470676604e-02 + 2.155259824484399e-02 2.155055377365348e-02 2.154851128035285e-02 2.154647076406023e-02 2.154443222886153e-02 + 2.154239567713112e-02 2.154036109691455e-02 2.153832848380287e-02 2.153629784162443e-02 2.153426916110383e-02 + 2.153224243839968e-02 2.153021767928900e-02 2.152819487735599e-02 2.152617402486068e-02 2.152415511969989e-02 + 2.152213816346627e-02 2.152012315489333e-02 2.151811008517867e-02 2.151609895106827e-02 2.151408975350627e-02 + 2.151208249405811e-02 2.151007716412923e-02 2.150807375412716e-02 2.150607227139823e-02 2.150407271389111e-02 + 2.150207507178008e-02 2.150007934512424e-02 2.149808553345600e-02 2.149609363244227e-02 2.149410363369511e-02 + 2.149211553597770e-02 2.149012934592863e-02 2.148814505588094e-02 2.148616265955859e-02 2.148418215959600e-02 + 2.148220354775919e-02 2.148022681859241e-02 2.147825198020547e-02 2.147627902590631e-02 2.147430794498996e-02 + 2.147233873858447e-02 2.147037140717467e-02 2.146840594879004e-02 2.146644235912430e-02 2.146448063553682e-02 + 2.146252077578778e-02 2.146056277288728e-02 2.145860662318243e-02 2.145665232726965e-02 2.145469988438242e-02 + 2.145274929256557e-02 2.145080054831608e-02 2.144885364454498e-02 2.144690857746641e-02 2.144496534942983e-02 + 2.144302395654175e-02 2.144108439499599e-02 2.143914666610025e-02 2.143721076355154e-02 2.143527668029283e-02 + 2.143334441800114e-02 2.143141397685691e-02 2.142948535268880e-02 2.142755853497146e-02 2.142563352602930e-02 + 2.142371033388222e-02 2.142178894500280e-02 2.141986935358769e-02 2.141795156402302e-02 2.141603556793572e-02 + 2.141412136230918e-02 2.141220895321441e-02 2.141029833297722e-02 2.140838949470163e-02 2.140648244009975e-02 + 2.140457716697424e-02 2.140267367166504e-02 2.140077195168551e-02 2.139887200433115e-02 2.139697382547902e-02 + 2.139507740888590e-02 2.139318275720074e-02 2.139128987343195e-02 2.138939874415982e-02 2.138750936775835e-02 + 2.138562175102568e-02 2.138373588641631e-02 2.138185176599392e-02 2.137996938652284e-02 2.137808875223814e-02 + 2.137620986251236e-02 2.137433270909064e-02 2.137245728978030e-02 2.137058360186242e-02 2.136871163953864e-02 + 2.136684140688612e-02 2.136497290390506e-02 2.136310611597474e-02 2.136124104345297e-02 2.135937769212130e-02 + 2.135751605860686e-02 2.135565613610374e-02 2.135379791822062e-02 2.135194140402438e-02 2.135008659417071e-02 + 2.134823348788390e-02 2.134638207760105e-02 2.134453236032835e-02 2.134268433814086e-02 2.134083800772077e-02 + 2.133899336411597e-02 2.133715040305821e-02 2.133530912424798e-02 2.133346952672500e-02 2.133163160670673e-02 + 2.132979536297411e-02 2.132796079152963e-02 2.132612788229375e-02 2.132429663915477e-02 2.132246706798375e-02 + 2.132063916037057e-02 2.131881290769116e-02 2.131698830582932e-02 2.131516535978050e-02 2.131334407028698e-02 + 2.131152443198118e-02 2.130970643552249e-02 2.130789007885127e-02 2.130607536669811e-02 2.130426229682303e-02 + 2.130245086421657e-02 2.130064106313053e-02 2.129883288837854e-02 2.129702633875496e-02 2.129522141788389e-02 + 2.129341812290223e-02 2.129161644909972e-02 2.128981639414264e-02 2.128801795585396e-02 2.128622113110773e-02 + 2.128442591509673e-02 2.128263230760480e-02 2.128084030772261e-02 2.127904990395241e-02 2.127726109953179e-02 + 2.127547390424031e-02 2.127368830171838e-02 2.127190428479188e-02 2.127012186038021e-02 2.126834102886177e-02 + 2.126656178481652e-02 2.126478411995624e-02 2.126300803603507e-02 2.126123353191450e-02 2.125946059821390e-02 + 2.125768923851055e-02 2.125591945439615e-02 2.125415123382016e-02 2.125238457915817e-02 2.125061949358618e-02 + 2.124885596288304e-02 2.124709398735697e-02 2.124533357303348e-02 2.124357470952245e-02 2.124181739435340e-02 + 2.124006163206048e-02 2.123830741948956e-02 2.123655475001017e-02 2.123480361731545e-02 2.123305402409987e-02 + 2.123130596739953e-02 2.122955943693203e-02 2.122781443910126e-02 2.122607097723360e-02 2.122432904130337e-02 + 2.122258862659696e-02 2.122084973282204e-02 2.121911236175234e-02 2.121737650789419e-02 2.121564216387619e-02 + 2.121390932803162e-02 2.121217800425756e-02 2.121044819455527e-02 2.120871988671843e-02 2.120699307684077e-02 + 2.120526776795157e-02 2.120354395552526e-02 2.120182163603621e-02 2.120010080901829e-02 2.119838147500087e-02 + 2.119666363123091e-02 2.119494727091758e-02 2.119323238927472e-02 2.119151898655034e-02 2.118980706773010e-02 + 2.118809662574528e-02 2.118638765303925e-02 2.118468015121633e-02 2.118297411864271e-02 2.118126955146517e-02 + 2.117956644637810e-02 2.117786480292237e-02 2.117616462067450e-02 2.117446589411339e-02 2.117276862084477e-02 + 2.117107280130004e-02 2.116937843379139e-02 2.116768551256503e-02 2.116599403067535e-02 2.116430399205533e-02 + 2.116261539753040e-02 2.116092824074994e-02 2.115924251858398e-02 2.115755822756320e-02 2.115587536308644e-02 + 2.115419393062315e-02 2.115251393109511e-02 2.115083534999197e-02 2.114915818684827e-02 2.114748244571777e-02 + 2.114580812117730e-02 2.114413521000233e-02 2.114246371011731e-02 2.114079361630021e-02 2.113912493113981e-02 + 2.113745765864524e-02 2.113579178347091e-02 2.113412730283017e-02 2.113246422731517e-02 2.113080255018658e-02 + 2.112914226466844e-02 2.112748336987266e-02 2.112582586239263e-02 2.112416973838773e-02 2.112251499585494e-02 + 2.112086163946853e-02 2.111920966923609e-02 2.111755907231158e-02 2.111590984741022e-02 2.111426199652882e-02 + 2.111261551330255e-02 2.111097039854193e-02 2.110932665501722e-02 2.110768427494188e-02 2.110604325159932e-02 + 2.110440358337455e-02 2.110276527755971e-02 2.110112832954347e-02 2.109949272542061e-02 2.109785847270291e-02 + 2.109622557382813e-02 2.109459401840321e-02 2.109296380279178e-02 2.109133492634166e-02 2.108970738897449e-02 + 2.108808119187406e-02 2.108645633261542e-02 2.108483280177793e-02 2.108321059649476e-02 2.108158971816587e-02 + 2.107997016818712e-02 2.107835194176262e-02 2.107673503228282e-02 2.107511943992769e-02 2.107350516482023e-02 + 2.107189220511111e-02 2.107028055587330e-02 2.106867021606288e-02 2.106706118735907e-02 2.106545346293816e-02 + 2.106384703796383e-02 2.106224191316689e-02 2.106063808955507e-02 2.105903556250238e-02 2.105743432153898e-02 + 2.105583437513380e-02 2.105423572746437e-02 2.105263836035830e-02 2.105104227142354e-02 2.104944746729932e-02 + 2.104785395134047e-02 2.104626171573087e-02 2.104467074966839e-02 2.104308105452007e-02 2.104149263222363e-02 + 2.103990548218236e-02 2.103831959968388e-02 2.103673498293864e-02 2.103515163200819e-02 2.103356953798411e-02 + 2.103198869775456e-02 2.103040911733209e-02 2.102883079574534e-02 2.102725372695269e-02 2.102567790273802e-02 + 2.102410332486244e-02 2.102252999507990e-02 2.102095790737760e-02 2.101938706174730e-02 2.101781745879964e-02 + 2.101624909192282e-02 2.101468195450770e-02 2.101311604447429e-02 2.101155137000445e-02 2.100998792857284e-02 + 2.100842571064132e-02 2.100686471849675e-02 2.100530495078897e-02 2.100374640001838e-02 2.100218906014547e-02 + 2.100063293273019e-02 2.099907802537045e-02 2.099752433031871e-02 2.099597184169578e-02 2.099442056340826e-02 + 2.099287048844137e-02 2.099132161182849e-02 2.098977394056553e-02 2.098822746767990e-02 2.098668218492037e-02 + 2.098513809937855e-02 2.098359520656010e-02 2.098205349870481e-02 2.098051298433238e-02 2.097897365788888e-02 + 2.097743550607582e-02 2.097589853771057e-02 2.097436275317134e-02 2.097282814179318e-02 2.097129470444368e-02 + 2.096976244194844e-02 2.096823135057212e-02 2.096670142502171e-02 2.096517266432222e-02 2.096364507294766e-02 + 2.096211864290872e-02 2.096059336882086e-02 2.095906925902597e-02 2.095754630598820e-02 2.095602449947026e-02 + 2.095450384463222e-02 2.095298434369944e-02 2.095146599313072e-02 2.094994878341327e-02 2.094843271500539e-02 + 2.094691779352117e-02 2.094540401073429e-02 2.094389136288097e-02 2.094237985194064e-02 2.094086947133280e-02 + 2.093936021927527e-02 2.093785210108921e-02 2.093634511142213e-02 2.093483924325246e-02 2.093333449385128e-02 + 2.093183086645815e-02 2.093032836253444e-02 2.092882697593887e-02 2.092732670311165e-02 2.092582754108962e-02 + 2.092432948474122e-02 2.092283253800634e-02 2.092133670446908e-02 2.091984196956714e-02 2.091834833166288e-02 + 2.091685579922333e-02 2.091536436905392e-02 2.091387403364116e-02 2.091238478662568e-02 2.091089663391256e-02 + 2.090940957508328e-02 2.090792359986955e-02 2.090643871032298e-02 2.090495490818039e-02 2.090347218811059e-02 + 2.090199054718417e-02 2.090050998308706e-02 2.089903049243704e-02 2.089755207414248e-02 2.089607472810411e-02 + 2.089459845325996e-02 2.089312324594328e-02 2.089164910255710e-02 2.089017602427597e-02 2.088870401009232e-02 + 2.088723305634642e-02 2.088576315893389e-02 2.088429431601771e-02 2.088282652696964e-02 2.088135978615913e-02 + 2.087989409321534e-02 2.087842945395569e-02 2.087696586275656e-02 2.087550331287119e-02 2.087404180207852e-02 + 2.087258132736208e-02 2.087112188861259e-02 2.086966349090147e-02 2.086820612891688e-02 2.086674979608584e-02 + 2.086529449590395e-02 2.086384022331517e-02 2.086238697045790e-02 2.086093474039187e-02 2.085948353444753e-02 + 2.085803335091995e-02 2.085658418796912e-02 2.085513604081134e-02 2.085368890289571e-02 2.085224277300881e-02 + 2.085079765267601e-02 2.084935354393509e-02 2.084791044341373e-02 2.084646834711395e-02 2.084502725286095e-02 + 2.084358715744794e-02 2.084214805848912e-02 2.084070995598070e-02 2.083927284909677e-02 2.083783673573611e-02 + 2.083640161226469e-02 2.083496747523998e-02 2.083353432223483e-02 2.083210215303235e-02 2.083067096927498e-02 + 2.082924077044086e-02 2.082781154460241e-02 2.082638329211299e-02 2.082495602309350e-02 2.082352972509603e-02 + 2.082210439277076e-02 2.082068003454410e-02 2.081925664261260e-02 2.081783421113447e-02 2.081641274508624e-02 + 2.081499224082686e-02 2.081357269450268e-02 2.081215410878219e-02 2.081073647873721e-02 2.080931979776872e-02 + 2.080790406592918e-02 2.080648928500749e-02 2.080507545608266e-02 2.080366257645188e-02 2.080225063919177e-02 + 2.080083963814898e-02 2.079942957984240e-02 2.079802046255642e-02 2.079661227641324e-02 2.079520502452446e-02 + 2.079379870732677e-02 2.079239331877295e-02 2.079098886066600e-02 2.078958533155146e-02 2.078818272238310e-02 + 2.078678103594075e-02 2.078538027480030e-02 2.078398043169412e-02 2.078258150517176e-02 2.078118349582184e-02 + 2.077978640032045e-02 2.077839021518007e-02 2.077699493798996e-02 2.077560056860569e-02 2.077420710626992e-02 + 2.077281454908150e-02 2.077142289397691e-02 2.077003213665487e-02 2.076864227381708e-02 2.076725331084939e-02 + 2.076586524753700e-02 2.076447807479244e-02 2.076309178893910e-02 2.076170639200464e-02 2.076032188924749e-02 + 2.075893827075576e-02 2.075755552867013e-02 2.075617367037054e-02 2.075479269394757e-02 2.075341259415677e-02 + 2.075203337133167e-02 2.075065502119062e-02 2.074927754004291e-02 2.074790093527532e-02 2.074652520196147e-02 + 2.074515032814618e-02 2.074377631824518e-02 2.074240317461906e-02 2.074103089389617e-02 2.073965947285912e-02 + 2.073828890806665e-02 2.073691919635770e-02 2.073555033844026e-02 2.073418233381763e-02 2.073281517823886e-02 + 2.073144886803073e-02 2.073008340377233e-02 2.072871879147831e-02 2.072735502222402e-02 2.072599208688765e-02 + 2.072462999392301e-02 2.072326873860233e-02 2.072190831224300e-02 2.072054872378210e-02 2.071918997148765e-02 + 2.071783204556565e-02 2.071647494755481e-02 2.071511867766477e-02 2.071376323196711e-02 2.071240860565183e-02 + 2.071105479791370e-02 2.070970181180314e-02 2.070834964331268e-02 2.070699828917085e-02 2.070564775075080e-02 + 2.070429802727900e-02 2.070294911380581e-02 2.070160100113699e-02 2.070025369244763e-02 2.069890719322030e-02 + 2.069756149841416e-02 2.069621660331007e-02 2.069487250616514e-02 2.069352920972353e-02 2.069218670843115e-02 + 2.069084499406914e-02 2.068950407478504e-02 2.068816395008570e-02 2.068682460979861e-02 2.068548605525363e-02 + 2.068414828647597e-02 2.068281129879088e-02 2.068147509294542e-02 2.068013966727868e-02 2.067880501481977e-02 + 2.067747113766845e-02 2.067613803889334e-02 2.067480571527677e-02 2.067347415977921e-02 2.067214336769299e-02 + 2.067081334319025e-02 2.066948408776949e-02 2.066815559807265e-02 2.066682786498898e-02 2.066550088830383e-02 + 2.066417467341183e-02 2.066284921698086e-02 2.066152451475288e-02 2.066020056372571e-02 2.065887736182303e-02 + 2.065755490839281e-02 2.065623320354572e-02 2.065491224367795e-02 2.065359202675738e-02 2.065227255436574e-02 + 2.065095382314874e-02 2.064963582941213e-02 2.064831857270797e-02 2.064700204957123e-02 2.064568625651786e-02 + 2.064437119414936e-02 2.064305686324694e-02 2.064174326345409e-02 2.064043039179931e-02 2.063911824280925e-02 + 2.063780681176866e-02 2.063649610237503e-02 2.063518611610314e-02 2.063387684909248e-02 2.063256829217405e-02 + 2.063126044539576e-02 2.062995331851188e-02 2.062864690334512e-02 2.062734119190086e-02 2.062603618600375e-02 + 2.062473188642144e-02 2.062342829221786e-02 2.062212540064643e-02 2.062082320714733e-02 2.061952170915304e-02 + 2.061822091004314e-02 2.061692080716460e-02 2.061562139605911e-02 2.061432267954307e-02 2.061302465323251e-02 + 2.061172730955065e-02 2.061043065371613e-02 2.060913468523504e-02 2.060783939685846e-02 2.060654478913799e-02 + 2.060525086119714e-02 2.060395760866959e-02 2.060266503271371e-02 2.060137313244415e-02 2.060008190215519e-02 + 2.059879134465455e-02 2.059750146004468e-02 2.059621223782829e-02 2.059492368052522e-02 2.059363579225837e-02 + 2.059234856405708e-02 2.059106199328788e-02 2.058977608130871e-02 2.058849082556723e-02 2.058720622498806e-02 + 2.058592227959311e-02 2.058463898696043e-02 2.058335634281647e-02 2.058207434376584e-02 2.058079299573017e-02 + 2.057951229614279e-02 2.057823223269817e-02 2.057695281356401e-02 2.057567404187197e-02 2.057439590387300e-02 + 2.057311839681732e-02 2.057184152455586e-02 2.057056529173392e-02 2.056928969078429e-02 2.056801471376779e-02 + 2.056674036634529e-02 2.056546664830153e-02 2.056419355486686e-02 2.056292108306100e-02 2.056164923170236e-02 + 2.056037800067255e-02 2.055910738924650e-02 2.055783739340399e-02 2.055656800859636e-02 2.055529924146672e-02 + 2.055403109005562e-02 2.055276354110791e-02 2.055149659755915e-02 2.055023026272679e-02 2.054896453244645e-02 + 2.054769940766287e-02 2.054643488681757e-02 2.054517096062926e-02 2.054390763218316e-02 2.054264490512525e-02 + 2.054138276915942e-02 2.054012122328143e-02 2.053886027085424e-02 2.053759990682471e-02 2.053634012878631e-02 + 2.053508093799464e-02 2.053382233647706e-02 2.053256431985532e-02 2.053130687980379e-02 2.053005001911220e-02 + 2.052879373804411e-02 2.052753803104820e-02 2.052628289842169e-02 2.052502834052905e-02 2.052377435424499e-02 + 2.052252093383405e-02 2.052126807833591e-02 2.052001579579881e-02 2.051876408076618e-02 2.051751292558091e-02 + 2.051626233431153e-02 2.051501230108543e-02 2.051376281904528e-02 2.051251389905356e-02 2.051126553806812e-02 + 2.051001772450580e-02 2.050877046477720e-02 2.050752375748313e-02 2.050627759308629e-02 2.050503197764233e-02 + 2.050378691120845e-02 2.050254238346269e-02 2.050129839647772e-02 2.050005495152270e-02 2.049881204279591e-02 + 2.049756967049427e-02 2.049632783497685e-02 2.049508653204386e-02 2.049384576061373e-02 2.049260552085964e-02 + 2.049136581124810e-02 2.049012662828215e-02 2.048888796855573e-02 2.048764983217528e-02 2.048641222055239e-02 + 2.048517513365279e-02 2.048393856449956e-02 2.048270250702790e-02 2.048146696002243e-02 2.048023193267689e-02 + 2.047899742444990e-02 2.047776342204647e-02 2.047652992557144e-02 2.047529693666283e-02 2.047406445284291e-02 + 2.047283247820367e-02 2.047160101124722e-02 2.047037003705319e-02 2.046913955996649e-02 2.046790958805229e-02 + 2.046668011290463e-02 2.046545112747173e-02 2.046422263048016e-02 2.046299462941648e-02 2.046176712182623e-02 + 2.046054009863872e-02 2.045931356011635e-02 2.045808750875261e-02 2.045686194483555e-02 2.045563685869128e-02 + 2.045441224888558e-02 2.045318812405373e-02 2.045196447539730e-02 2.045074129851060e-02 2.044951860203706e-02 + 2.044829637561388e-02 2.044707461146781e-02 2.044585332076453e-02 2.044463250090934e-02 2.044341214478788e-02 + 2.044219225389736e-02 2.044097282684260e-02 2.043975385980242e-02 2.043853534979080e-02 2.043731729516990e-02 + 2.043609969584751e-02 2.043488255365452e-02 2.043366586840525e-02 2.043244963622695e-02 2.043123384788510e-02 + 2.043001850356880e-02 2.042880361352058e-02 2.042758917125052e-02 2.042637516923373e-02 2.042516160738241e-02 + 2.042394848596822e-02 2.042273580364956e-02 2.042152355668345e-02 2.042031174421715e-02 2.041910036711696e-02 + 2.041788942589821e-02 2.041667891618270e-02 2.041546883283581e-02 2.041425917723074e-02 2.041304994671302e-02 + 2.041184113736942e-02 2.041063275507356e-02 2.040942479864618e-02 2.040821725911453e-02 2.040701013329647e-02 + 2.040580342336421e-02 2.040459713364973e-02 2.040339125626194e-02 2.040218578748979e-02 2.040098073437600e-02 + 2.039977609190064e-02 2.039857185194057e-02 2.039736801200263e-02 2.039616457948628e-02 2.039496155847034e-02 + 2.039375893548800e-02 2.039255670811317e-02 2.039135487906758e-02 2.039015344139171e-02 2.038895239754324e-02 + 2.038775175394349e-02 2.038655150008423e-02 2.038535163468296e-02 2.038415216492024e-02 2.038295307932101e-02 + 2.038175437156158e-02 2.038055604740632e-02 2.037935811014152e-02 2.037816055719221e-02 2.037696338008003e-02 + 2.037576657774965e-02 2.037457015197002e-02 2.037337410306159e-02 2.037217842811476e-02 2.037098312337542e-02 + 2.036978818702816e-02 2.036859361901312e-02 2.036739941883561e-02 2.036620558232109e-02 2.036501210897116e-02 + 2.036381899981477e-02 2.036262624936801e-02 2.036143385733716e-02 2.036024182706139e-02 2.035905014947786e-02 + 2.035785882153747e-02 2.035666784977269e-02 2.035547723079831e-02 2.035428696142468e-02 2.035309704319765e-02 + 2.035190747134853e-02 2.035071824110532e-02 2.034952935293085e-02 2.034834080749865e-02 2.034715260430401e-02 + 2.034596474052595e-02 2.034477721202228e-02 2.034359001578161e-02 2.034240315367684e-02 2.034121662664043e-02 + 2.034003043357028e-02 2.033884457132868e-02 2.033765903741480e-02 2.033647382949949e-02 2.033528894162872e-02 + 2.033410437471255e-02 2.033292013620119e-02 2.033173621775026e-02 2.033055261459435e-02 2.032936933387398e-02 + 2.032818637173341e-02 2.032700371995237e-02 2.032582137330103e-02 2.032463934032926e-02 2.032345762721536e-02 + 2.032227621977112e-02 2.032109511380310e-02 2.031991431266943e-02 2.031873381713771e-02 2.031755362367381e-02 + 2.031637372822898e-02 2.031519413522404e-02 2.031401484060572e-02 2.031283583475656e-02 2.031165712768451e-02 + 2.031047872082618e-02 2.030930060067025e-02 2.030812276414845e-02 2.030694521582938e-02 2.030576796297434e-02 + 2.030459099391277e-02 2.030341430130414e-02 2.030223789822972e-02 2.030106177803277e-02 2.029988592949474e-02 + 2.029871035725545e-02 2.029753506661443e-02 2.029636005659757e-02 2.029518531267896e-02 2.029401083596470e-02 + 2.029283663654064e-02 2.029166270589052e-02 2.029048903923464e-02 2.028931563858370e-02 2.028814250195392e-02 + 2.028696962711050e-02 2.028579701358946e-02 2.028462466440920e-02 2.028345257575578e-02 2.028228073462766e-02 + 2.028110914546667e-02 2.027993781542017e-02 2.027876674182124e-02 2.027759591671596e-02 2.027642533515473e-02 + 2.027525500323221e-02 2.027408491983729e-02 2.027291508043819e-02 2.027174548650143e-02 2.027057613494678e-02 + 2.026940701983228e-02 2.026823814087089e-02 2.026706949898955e-02 2.026590109425394e-02 2.026473292320746e-02 + 2.026356498366547e-02 2.026239727592488e-02 2.026122979922282e-02 2.026006255023894e-02 2.025889552388743e-02 + 2.025772872449768e-02 2.025656215399196e-02 2.025539580342713e-02 2.025422967119250e-02 2.025306375830951e-02 + 2.025189806183918e-02 2.025073258129647e-02 2.024956731656576e-02 2.024840226339874e-02 2.024723742127980e-02 + 2.024607279125879e-02 2.024490836776212e-02 2.024374415071052e-02 2.024258014353189e-02 2.024141633571028e-02 + 2.024025272656142e-02 2.023908932762591e-02 2.023792612793740e-02 2.023676312010299e-02 2.023560031179207e-02 + 2.023443769779265e-02 2.023327527310789e-02 2.023211304323675e-02 2.023095100708355e-02 2.022978916007167e-02 + 2.022862749919407e-02 2.022746602379288e-02 2.022630473371739e-02 2.022514362648272e-02 2.022398270121405e-02 + 2.022282195791762e-02 2.022166139402294e-02 2.022050100551405e-02 2.021934078921764e-02 2.021818074920451e-02 + 2.021702088593813e-02 2.021586119314628e-02 2.021470166428228e-02 2.021354230080554e-02 2.021238311308448e-02 + 2.021122409287018e-02 2.021006523025651e-02 2.020890652716039e-02 2.020774798484683e-02 2.020658960393083e-02 + 2.020543138529554e-02 2.020427332378045e-02 2.020311541298552e-02 2.020195765397637e-02 2.020080004744672e-02 + 2.019964259236717e-02 2.019848528642001e-02 2.019732812869024e-02 2.019617111926010e-02 2.019501425544548e-02 + 2.019385753379127e-02 2.019270095135025e-02 2.019154450793482e-02 2.019038820298517e-02 2.018923203417478e-02 + 2.018807600019563e-02 2.018692010151906e-02 2.018576433995726e-02 2.018460870891364e-02 2.018345320296787e-02 + 2.018229782843392e-02 2.018114258172615e-02 2.017998745649097e-02 2.017883245877245e-02 2.017767758620927e-02 + 2.017652283054322e-02 2.017536819223788e-02 2.017421367319040e-02 2.017305927292809e-02 2.017190498313902e-02 + 2.017075080461503e-02 2.016959674752286e-02 2.016844280049332e-02 2.016728895684716e-02 2.016613522539111e-02 + 2.016498159847723e-02 2.016382807033869e-02 2.016267465040216e-02 2.016152133310211e-02 2.016036811076429e-02 + 2.015921498985646e-02 2.015806197025070e-02 2.015690904702832e-02 2.015575621731957e-02 2.015460347791708e-02 + 2.015345082711757e-02 2.015229826996444e-02 2.015114580452791e-02 2.014999342256183e-02 2.014884112402139e-02 + 2.014768891079059e-02 2.014653678283008e-02 2.014538473229735e-02 2.014423275838842e-02 2.014308087159530e-02 + 2.014192906336537e-02 2.014077732405132e-02 2.013962565684693e-02 2.013847406112768e-02 2.013732253607323e-02 + 2.013617108558620e-02 2.013501970367529e-02 2.013386838304751e-02 2.013271713092954e-02 2.013156594450895e-02 + 2.013041481517404e-02 2.012926374836556e-02 2.012811274375330e-02 2.012696179396415e-02 2.012581089842930e-02 + 2.012466005832842e-02 2.012350927388322e-02 2.012235854139777e-02 2.012120785897021e-02 2.012005722808521e-02 + 2.011890664240422e-02 2.011775609861771e-02 2.011660560342765e-02 2.011545514995805e-02 2.011430473248947e-02 + 2.011315436328775e-02 2.011200403690588e-02 2.011085374071231e-02 2.010970347811273e-02 2.010855325123000e-02 + 2.010740305829795e-02 2.010625289543029e-02 2.010510276184403e-02 2.010395265874816e-02 2.010280258124321e-02 + 2.010165252783862e-02 2.010050250168409e-02 2.009935249835288e-02 2.009820251528310e-02 2.009705255512517e-02 + 2.009590261098061e-02 2.009475267797075e-02 2.009360276160796e-02 2.009245286068316e-02 2.009130297235736e-02 + 2.009015309860190e-02 2.008900323371492e-02 2.008785337125678e-02 2.008670351711407e-02 2.008555367122358e-02 + 2.008440382812401e-02 2.008325398588614e-02 2.008210414433437e-02 2.008095430334925e-02 2.007980445913736e-02 + 2.007865461009197e-02 2.007750475755383e-02 2.007635489836262e-02 2.007520502856765e-02 2.007405514609401e-02 + 2.007290525369839e-02 2.007175535352643e-02 2.007060544261636e-02 2.006945551378952e-02 2.006830556246986e-02 + 2.006715559358176e-02 2.006600560685722e-02 2.006485559907452e-02 2.006370557035152e-02 2.006255552017783e-02 + 2.006140544519211e-02 2.006025533608720e-02 2.005910519424486e-02 2.005795502866486e-02 2.005680483150780e-02 + 2.005565460068358e-02 2.005450434307724e-02 2.005335404752871e-02 2.005220370751987e-02 2.005105333078331e-02 + 2.004990291380246e-02 2.004875245256121e-02 2.004760195075808e-02 2.004645140541610e-02 2.004530081249103e-02 + 2.004415017386308e-02 2.004299948719255e-02 2.004184874893760e-02 2.004069796075558e-02 2.003954711861807e-02 + 2.003839621652469e-02 2.003724525928808e-02 2.003609424691447e-02 2.003494317431652e-02 2.003379204407136e-02 + 2.003264085311753e-02 2.003148959193977e-02 2.003033826577724e-02 2.002918687817827e-02 2.002803542325049e-02 + 2.002688389828578e-02 2.002573230084169e-02 2.002458062668545e-02 2.002342887779152e-02 2.002227705716231e-02 + 2.002112516254241e-02 2.001997318998642e-02 2.001882113644655e-02 2.001766900292078e-02 2.001651678857442e-02 + 2.001536448981540e-02 2.001421210083374e-02 2.001305962366636e-02 2.001190706486020e-02 2.001075441600587e-02 + 2.000960167234195e-02 2.000844883687991e-02 2.000729590520412e-02 2.000614287591466e-02 2.000498975435740e-02 + 2.000383653574291e-02 2.000268321490327e-02 2.000152979351511e-02 2.000037626872929e-02 1.999922263743778e-02 + 1.999806890154111e-02 1.999691505794393e-02 1.999576110265488e-02 1.999460703886217e-02 1.999345286480270e-02 + 1.999229857569377e-02 1.999114417297134e-02 1.998998965543275e-02 1.998883501902821e-02 1.998768026399775e-02 + 1.998652538946059e-02 1.998537039260291e-02 1.998421527483334e-02 1.998306003351848e-02 1.998190465988335e-02 + 1.998074915750420e-02 1.997959352937345e-02 1.997843776879367e-02 1.997728187765045e-02 1.997612585705249e-02 + 1.997496969649909e-02 1.997381339760593e-02 1.997265696528752e-02 1.997150039002939e-02 1.997034367059401e-02 + 1.996918681208352e-02 1.996802981226081e-02 1.996687266788810e-02 1.996571537594770e-02 1.996455793197006e-02 + 1.996340033608642e-02 1.996224259309599e-02 1.996108470119043e-02 1.995992665416334e-02 1.995876844505867e-02 + 1.995761008193637e-02 1.995645156786617e-02 1.995529288784624e-02 1.995413404457776e-02 1.995297504246996e-02 + 1.995181586885687e-02 1.995065652904149e-02 1.994949703248385e-02 1.994833736513130e-02 1.994717752162546e-02 + 1.994601750553184e-02 1.994485731663886e-02 1.994369695406686e-02 1.994253641736701e-02 1.994137570693218e-02 + 1.994021481716852e-02 1.993905373876526e-02 1.993789248152490e-02 1.993673104732284e-02 1.993556942048493e-02 + 1.993440760773439e-02 1.993324561433191e-02 1.993208342679873e-02 1.993092104568069e-02 1.992975847582151e-02 + 1.992859571315939e-02 1.992743275300710e-02 1.992626959353599e-02 1.992510623927749e-02 1.992394268911061e-02 + 1.992277893654564e-02 1.992161497535049e-02 1.992045080942924e-02 1.991928644769617e-02 1.991812187931771e-02 + 1.991695709651699e-02 1.991579210148713e-02 1.991462689658082e-02 1.991346148075462e-02 1.991229584907280e-02 + 1.991113000189043e-02 1.990996393932216e-02 1.990879765723607e-02 1.990763115454515e-02 1.990646443148474e-02 + 1.990529748687400e-02 1.990413031580006e-02 1.990296291532720e-02 1.990179529310021e-02 1.990062744303953e-02 + 1.989945935329500e-02 1.989829103342642e-02 1.989712248515872e-02 1.989595370004318e-02 1.989478467737964e-02 + 1.989361541884726e-02 1.989244592499573e-02 1.989127618925862e-02 1.989010620674421e-02 1.988893597834538e-02 + 1.988776550466197e-02 1.988659478703524e-02 1.988542382727661e-02 1.988425261506333e-02 1.988308114268849e-02 + 1.988190942098788e-02 1.988073745006194e-02 1.987956522359536e-02 1.987839274079954e-02 1.987722000000555e-02 + 1.987604699732070e-02 1.987487372670402e-02 1.987370019241589e-02 1.987252640362364e-02 1.987135234678179e-02 + 1.987017801708705e-02 1.986900342417090e-02 1.986782856130232e-02 1.986665342124566e-02 1.986547800516037e-02 + 1.986430231940191e-02 1.986312636323797e-02 1.986195012209680e-02 1.986077359858922e-02 1.985959679883774e-02 + 1.985841971608161e-02 1.985724235007767e-02 1.985606470192896e-02 1.985488676268764e-02 1.985370853173279e-02 + 1.985253001389235e-02 1.985135120589531e-02 1.985017210671596e-02 1.984899271721913e-02 1.984781303008921e-02 + 1.984663304141680e-02 1.984545275323681e-02 1.984427216416261e-02 1.984309127447186e-02 1.984191008724042e-02 + 1.984072859600846e-02 1.983954679442092e-02 1.983836468369445e-02 1.983718226650526e-02 1.983599954091759e-02 + 1.983481649574990e-02 1.983363313683907e-02 1.983244947316962e-02 1.983126549121019e-02 1.983008118452795e-02 + 1.982889655650101e-02 1.982771161407836e-02 1.982652635127155e-02 1.982534075477381e-02 1.982415483542671e-02 + 1.982296859699974e-02 1.982178202865004e-02 1.982059512679342e-02 1.981940789099672e-02 1.981822032140366e-02 + 1.981703241807743e-02 1.981584417989424e-02 1.981465560415464e-02 1.981346669171603e-02 1.981227744136961e-02 + 1.981108784415540e-02 1.980989790130036e-02 1.980870761757638e-02 1.980751698807925e-02 1.980632600934410e-02 + 1.980513468056937e-02 1.980394300171975e-02 1.980275097143216e-02 1.980155858653555e-02 1.980036584235624e-02 + 1.979917273943820e-02 1.979797928262491e-02 1.979678546489206e-02 1.979559128379798e-02 1.979439674657348e-02 + 1.979320184217468e-02 1.979200656369760e-02 1.979081092352834e-02 1.978961491694981e-02 1.978841853542797e-02 + 1.978722178317891e-02 1.978602465925507e-02 1.978482715855289e-02 1.978362927697639e-02 1.978243101628911e-02 + 1.978123238058121e-02 1.978003336668686e-02 1.977883396860304e-02 1.977763418131442e-02 1.977643400902304e-02 + 1.977523345232920e-02 1.977403250607500e-02 1.977283117205557e-02 1.977162944865208e-02 1.977042732702634e-02 + 1.976922480613855e-02 1.976802188997964e-02 1.976681858355301e-02 1.976561487769950e-02 1.976441076369096e-02 + 1.976320624890566e-02 1.976200133147697e-02 1.976079600616600e-02 1.975959027757971e-02 1.975838414138116e-02 + 1.975717758909272e-02 1.975597062600439e-02 1.975476325369590e-02 1.975355546738499e-02 1.975234726242962e-02 + 1.975113863825908e-02 1.974992959762522e-02 1.974872013640206e-02 1.974751025163228e-02 1.974629994489470e-02 + 1.974508921425132e-02 1.974387805573186e-02 1.974266646519683e-02 1.974145444319864e-02 1.974024199150465e-02 + 1.973902910920840e-02 1.973781579519036e-02 1.973660204598839e-02 1.973538785240977e-02 1.973417321684443e-02 + 1.973295814730416e-02 1.973174263781577e-02 1.973052668253849e-02 1.972931027913797e-02 1.972809342747564e-02 + 1.972687612827085e-02 1.972565838187941e-02 1.972444018482310e-02 1.972322153363352e-02 1.972200242687443e-02 + 1.972078286440720e-02 1.971956284541047e-02 1.971834236691286e-02 1.971712142485657e-02 1.971590001741145e-02 + 1.971467814826898e-02 1.971345581852119e-02 1.971223302479186e-02 1.971100975804211e-02 1.970978601823674e-02 + 1.970856181065497e-02 1.970733713228995e-02 1.970611197806177e-02 1.970488634450282e-02 1.970366023582840e-02 + 1.970243364879734e-02 1.970120657299705e-02 1.969997901837739e-02 1.969875098677333e-02 1.969752246217473e-02 + 1.969629345274012e-02 1.969506396226801e-02 1.969383397141272e-02 1.969260348756574e-02 1.969137252109090e-02 + 1.969014105730648e-02 1.968890909233832e-02 1.968767662961491e-02 1.968644366805134e-02 1.968521020635475e-02 + 1.968397624286150e-02 1.968274177331172e-02 1.968150679588088e-02 1.968027131148579e-02 1.967903532058098e-02 + 1.967779882218197e-02 1.967656181292412e-02 1.967532428489620e-02 1.967408623811289e-02 1.967284768294825e-02 + 1.967160860971293e-02 1.967036900987211e-02 1.966912889102269e-02 1.966788825153749e-02 1.966664708600774e-02 + 1.966540539310703e-02 1.966416317292449e-02 1.966292042476060e-02 1.966167714455673e-02 1.966043333167102e-02 + 1.965918898702837e-02 1.965794410650064e-02 1.965669868705162e-02 1.965545272765306e-02 1.965420622710374e-02 + 1.965295918609461e-02 1.965171160585919e-02 1.965046347855766e-02 1.964921480087875e-02 1.964796557872257e-02 + 1.964671580769246e-02 1.964546548231519e-02 1.964421460325605e-02 1.964296317129598e-02 1.964171118580111e-02 + 1.964045864365522e-02 1.963920554157133e-02 1.963795187629582e-02 1.963669764477085e-02 1.963544284945441e-02 + 1.963418749362842e-02 1.963293156932153e-02 1.963167507295046e-02 1.963041800662418e-02 1.962916036936736e-02 + 1.962790216073956e-02 1.962664338014056e-02 1.962538401760687e-02 1.962412407160046e-02 1.962286355381917e-02 + 1.962160245501161e-02 1.962034076606272e-02 1.961907849332115e-02 1.961781563715828e-02 1.961655219371613e-02 + 1.961528815879130e-02 1.961402353224150e-02 1.961275831461461e-02 1.961149250160691e-02 1.961022609250104e-02 + 1.960895908768241e-02 1.960769148013132e-02 1.960642326897369e-02 1.960515445887448e-02 1.960388504699325e-02 + 1.960261502901453e-02 1.960134440209794e-02 1.960007316755673e-02 1.959880132269796e-02 1.959752885956289e-02 + 1.959625578572781e-02 1.959498210471557e-02 1.959370780282661e-02 1.959243287776576e-02 1.959115733236078e-02 + 1.958988116575855e-02 1.958860437570835e-02 1.958732696070351e-02 1.958604892230215e-02 1.958477025538254e-02 + 1.958349095293616e-02 1.958221102005211e-02 1.958093045820349e-02 1.957964926225915e-02 1.957836742427244e-02 + 1.957708494595253e-02 1.957580183693370e-02 1.957451808573694e-02 1.957323368588814e-02 1.957194864588927e-02 + 1.957066295908808e-02 1.956937661864716e-02 1.956808962863577e-02 1.956680198857452e-02 1.956551369740821e-02 + 1.956422475810978e-02 1.956293516289206e-02 1.956164490198652e-02 1.956035397935251e-02 1.955906239928264e-02 + 1.955777016187055e-02 1.955647725858155e-02 1.955518368630142e-02 1.955388944730695e-02 1.955259453790914e-02 + 1.955129895574477e-02 1.955000270138056e-02 1.954870577278503e-02 1.954740816848287e-02 1.954610988870274e-02 + 1.954481093111385e-02 1.954351129226784e-02 1.954221096901902e-02 1.954090996078360e-02 1.953960826724446e-02 + 1.953830588603245e-02 1.953700281656794e-02 1.953569905855491e-02 1.953439460897686e-02 1.953308946443935e-02 + 1.953178362233442e-02 1.953047708245082e-02 1.952916984426731e-02 1.952786190592496e-02 1.952655326324738e-02 + 1.952524391408689e-02 1.952393385929222e-02 1.952262309949111e-02 1.952131163370209e-02 1.951999945844595e-02 + 1.951868656751035e-02 1.951737295829730e-02 1.951605863555755e-02 1.951474359789877e-02 1.951342784097203e-02 + 1.951211136184995e-02 1.951079415956861e-02 1.950947623396647e-02 1.950815758387342e-02 1.950683820574165e-02 + 1.950551809587482e-02 1.950419725560715e-02 1.950287568354725e-02 1.950155337574423e-02 1.950023033242808e-02 + 1.949890655251627e-02 1.949758203322258e-02 1.949625677745909e-02 1.949493078034667e-02 1.949360402739089e-02 + 1.949227653112452e-02 1.949094829757290e-02 1.948961930480046e-02 1.948828955781861e-02 1.948695906691206e-02 + 1.948562782150981e-02 1.948429581598615e-02 1.948296304982478e-02 1.948162952319633e-02 1.948029523591830e-02 + 1.947896018726217e-02 1.947762437581102e-02 1.947628779922486e-02 1.947495045397724e-02 1.947361233489661e-02 + 1.947227344348770e-02 1.947093378593678e-02 1.946959335022997e-02 1.946825212971076e-02 1.946691013283964e-02 + 1.946556736109183e-02 1.946422381089845e-02 1.946287947598024e-02 1.946153435147304e-02 1.946018843640089e-02 + 1.945884173551620e-02 1.945749424593349e-02 1.945614596164208e-02 1.945479688244431e-02 1.945344700980195e-02 + 1.945209634356683e-02 1.945074487666461e-02 1.944939260492236e-02 1.944803952905332e-02 1.944668565282712e-02 + 1.944533097303948e-02 1.944397548026850e-02 1.944261917903520e-02 1.944126207147254e-02 1.943990414971487e-02 + 1.943854540610747e-02 1.943718584222317e-02 1.943582547177293e-02 1.943446428245481e-02 1.943310226105812e-02 + 1.943173942068859e-02 1.943037575924362e-02 1.942901126749138e-02 1.942764594793762e-02 1.942627979717840e-02 + 1.942491280913776e-02 1.942354498868186e-02 1.942217633546996e-02 1.942080684436220e-02 1.941943651933332e-02 + 1.941806535493775e-02 1.941669333695301e-02 1.941532047644210e-02 1.941394677715704e-02 1.941257222315028e-02 + 1.941119681542690e-02 1.940982056035791e-02 1.940844345901757e-02 1.940706550055424e-02 1.940568667678698e-02 + 1.940430699663802e-02 1.940292645883611e-02 1.940154505765652e-02 1.940016279578962e-02 1.939877966977487e-02 + 1.939739567223053e-02 1.939601080219835e-02 1.939462506233509e-02 1.939323845462366e-02 1.939185096971125e-02 + 1.939046260516801e-02 1.938907336764642e-02 1.938768325184633e-02 1.938629225021856e-02 1.938490035911401e-02 + 1.938350758330235e-02 1.938211392651081e-02 1.938071938447496e-02 1.937932394922459e-02 1.937792761695239e-02 + 1.937653039473651e-02 1.937513227779157e-02 1.937373325789699e-02 1.937233333934693e-02 1.937093252080456e-02 + 1.936953079702195e-02 1.936812816928827e-02 1.936672463690015e-02 1.936532019607867e-02 1.936391484345597e-02 + 1.936250857586552e-02 1.936110139138094e-02 1.935969329410197e-02 1.935828428412852e-02 1.935687435366041e-02 + 1.935546349795341e-02 1.935405171682407e-02 1.935263901452006e-02 1.935122538845629e-02 1.934981083240821e-02 + 1.934839534117787e-02 1.934697891910190e-02 1.934556156924906e-02 1.934414327695751e-02 1.934272404361874e-02 + 1.934130387854031e-02 1.933988276959641e-02 1.933846071416343e-02 1.933703771882020e-02 1.933561377409585e-02 + 1.933418887831357e-02 1.933276303945045e-02 1.933133624375953e-02 1.932990848653697e-02 1.932847978247962e-02 + 1.932705012296452e-02 1.932561949662077e-02 1.932418790536504e-02 1.932275535526071e-02 1.932132184669807e-02 + 1.931988736608416e-02 1.931845191123332e-02 1.931701548648173e-02 1.931557809132799e-02 1.931413972218449e-02 + 1.931270037603072e-02 1.931126005688787e-02 1.930981875761609e-02 1.930837646527647e-02 1.930693319154590e-02 + 1.930548893938918e-02 1.930404369700001e-02 1.930259746628386e-02 1.930115024647330e-02 1.929970202824377e-02 + 1.929825281461415e-02 1.929680260792617e-02 1.929535140092010e-02 1.929389919235001e-02 1.929244598266550e-02 + 1.929099176842190e-02 1.928953654639375e-02 1.928808031414528e-02 1.928662307035359e-02 1.928516481711372e-02 + 1.928370555611205e-02 1.928224527966380e-02 1.928078398206115e-02 1.927932166173262e-02 1.927785831899656e-02 + 1.927639395364510e-02 1.927492856464996e-02 1.927346215243780e-02 1.927199471282116e-02 1.927052623652251e-02 + 1.926905672766994e-02 1.926758618873705e-02 1.926611461056382e-02 1.926464199150991e-02 1.926316833245443e-02 + 1.926169363057714e-02 1.926021788634381e-02 1.925874109903830e-02 1.925726325940621e-02 1.925578436860509e-02 + 1.925430443199749e-02 1.925282343948819e-02 1.925134138889128e-02 1.924985828498051e-02 1.924837411847957e-02 + 1.924688888599618e-02 1.924540259377309e-02 1.924391524090012e-02 1.924242682077230e-02 1.924093732460676e-02 + 1.923944675829762e-02 1.923795512510602e-02 1.923646241448938e-02 1.923496862521413e-02 1.923347375911634e-02 + 1.923197781292445e-02 1.923048078180134e-02 1.922898266296426e-02 1.922748346006174e-02 1.922598317069195e-02 + 1.922448178990142e-02 1.922297932164773e-02 1.922147575963824e-02 1.921997109174737e-02 1.921846532805457e-02 + 1.921695846861228e-02 1.921545049993734e-02 1.921394143207274e-02 1.921243126559395e-02 1.921091998083786e-02 + 1.920940758472120e-02 1.920789408374423e-02 1.920637946562360e-02 1.920486373146851e-02 1.920334688393281e-02 + 1.920182891329169e-02 1.920030981699324e-02 1.919878959725658e-02 1.919726825432456e-02 1.919574578635056e-02 + 1.919422218928470e-02 1.919269745661605e-02 1.919117158884151e-02 1.918964459045353e-02 1.918811645370936e-02 + 1.918658717454346e-02 1.918505675553962e-02 1.918352519296369e-02 1.918199248296462e-02 1.918045862469436e-02 + 1.917892361805418e-02 1.917738746182788e-02 1.917585015265352e-02 1.917431168820606e-02 1.917277206550804e-02 + 1.917123127946213e-02 1.916968933132487e-02 1.916814622316750e-02 1.916660194885779e-02 1.916505650873668e-02 + 1.916350990423480e-02 1.916196212155291e-02 1.916041316033273e-02 1.915886303062994e-02 1.915731172194125e-02 + 1.915575922930148e-02 1.915420555876758e-02 1.915265070860661e-02 1.915109467332810e-02 1.914953744666585e-02 + 1.914797902645569e-02 1.914641941412443e-02 1.914485861314037e-02 1.914329661713828e-02 1.914173341932142e-02 + 1.914016902223032e-02 1.913860342379879e-02 1.913703662029905e-02 1.913546861279183e-02 1.913389939805644e-02 + 1.913232897075573e-02 1.913075733118505e-02 1.912918447844714e-02 1.912761040908805e-02 1.912603511839811e-02 + 1.912445860715432e-02 1.912288088009771e-02 1.912130192853472e-02 1.911972174626816e-02 1.911814033569584e-02 + 1.911655769224527e-02 1.911497381452394e-02 1.911338870990516e-02 1.911180236957772e-02 1.911021478317005e-02 + 1.910862595492130e-02 1.910703588697045e-02 1.910544457683553e-02 1.910385201685182e-02 1.910225820527016e-02 + 1.910066314375077e-02 1.909906682830796e-02 1.909746925477876e-02 1.909587042200599e-02 1.909427033688354e-02 + 1.909266899402551e-02 1.909106637643193e-02 1.908946249114346e-02 1.908785734491775e-02 1.908625093213804e-02 + 1.908464324204344e-02 1.908303427175084e-02 1.908142403234494e-02 1.907981251534393e-02 1.907819971100440e-02 + 1.907658562789714e-02 1.907497026158614e-02 1.907335360333112e-02 1.907173565762024e-02 1.907011642370295e-02 + 1.906849589616872e-02 1.906687407274958e-02 1.906525095073851e-02 1.906362652703246e-02 1.906200080112851e-02 + 1.906037377260159e-02 1.905874543999789e-02 1.905711580005939e-02 1.905548484883143e-02 1.905385258297056e-02 + 1.905221900422594e-02 1.905058411108648e-02 1.904894789413228e-02 1.904731035325132e-02 1.904567149183364e-02 + 1.904403130952197e-02 1.904238980136186e-02 1.904074696113758e-02 1.903910278612417e-02 1.903745727544392e-02 + 1.903581042868199e-02 1.903416224385271e-02 1.903251272055347e-02 1.903086185871027e-02 1.902920965236104e-02 + 1.902755609551852e-02 1.902590118543579e-02 1.902424492713456e-02 1.902258731926820e-02 1.902092835050054e-02 + 1.901926802409253e-02 1.901760634215130e-02 1.901594329530476e-02 1.901427888303375e-02 1.901261310655987e-02 + 1.901094596056572e-02 1.900927744335199e-02 1.900760755425454e-02 1.900593628837979e-02 1.900426364429972e-02 + 1.900258962310978e-02 1.900091422355684e-02 1.899923743835855e-02 1.899755925950979e-02 1.899587969656637e-02 + 1.899419874741247e-02 1.899251639645128e-02 1.899083265299966e-02 1.898914752052511e-02 1.898746098477085e-02 + 1.898577304386013e-02 1.898408369969058e-02 1.898239295076986e-02 1.898070079269564e-02 1.897900722255288e-02 + 1.897731224261929e-02 1.897561584849886e-02 1.897391803334516e-02 1.897221879605241e-02 1.897051814026927e-02 + 1.896881606767167e-02 1.896711256470153e-02 1.896540762798833e-02 1.896370126437186e-02 1.896199347193909e-02 + 1.896028424413336e-02 1.895857357350164e-02 1.895686146124061e-02 1.895514791045918e-02 1.895343292131205e-02 + 1.895171648302300e-02 1.894999858923527e-02 1.894827924721451e-02 1.894655845419708e-02 1.894483620522033e-02 + 1.894311250187257e-02 1.894138733732357e-02 1.893966070463249e-02 1.893793261072514e-02 1.893620305335951e-02 + 1.893447202418282e-02 1.893273952309081e-02 1.893100555094376e-02 1.892927010627177e-02 1.892753318110494e-02 + 1.892579477108063e-02 1.892405487784487e-02 1.892231350329449e-02 1.892057064453369e-02 1.891882629307712e-02 + 1.891708044683251e-02 1.891533310610873e-02 1.891358427035544e-02 1.891183393696100e-02 1.891008210291091e-02 + 1.890832876617924e-02 1.890657392211156e-02 1.890481756749361e-02 1.890305970669826e-02 1.890130033664154e-02 + 1.889953944876527e-02 1.889777703845312e-02 1.889601310905792e-02 1.889424766560776e-02 1.889248069356991e-02 + 1.889071219005931e-02 1.888894216610460e-02 1.888717060771540e-02 1.888539750970531e-02 1.888362288621832e-02 + 1.888184672351093e-02 1.888006901097801e-02 1.887828976119468e-02 1.887650896887177e-02 1.887472662448569e-02 + 1.887294273026847e-02 1.887115728373587e-02 1.886937028132879e-02 1.886758172601296e-02 1.886579161241305e-02 + 1.886399993232671e-02 1.886220669095003e-02 1.886041188581822e-02 1.885861550746470e-02 1.885681755698847e-02 + 1.885501803485419e-02 1.885321693733238e-02 1.885141425906957e-02 1.884960999916156e-02 1.884780416185130e-02 + 1.884599674103886e-02 1.884418772927479e-02 1.884237712445391e-02 1.884056492700234e-02 1.883875113673901e-02 + 1.883693574995443e-02 1.883511876102816e-02 1.883330016667216e-02 1.883147997149076e-02 1.882965817385698e-02 + 1.882783476601560e-02 1.882600973926643e-02 1.882418309568715e-02 1.882235484340025e-02 1.882052497417560e-02 + 1.881869348031539e-02 1.881686035975185e-02 1.881502561164409e-02 1.881318923741505e-02 1.881135123913003e-02 + 1.880951160558249e-02 1.880767032900146e-02 1.880582741534564e-02 1.880398286136111e-02 1.880213666245483e-02 + 1.880028882149621e-02 1.879843933370182e-02 1.879658819228311e-02 1.879473539862031e-02 1.879288094991765e-02 + 1.879102484097325e-02 1.878916707209326e-02 1.878730764191372e-02 1.878544654683108e-02 1.878358378459472e-02 + 1.878171935183507e-02 1.877985324430765e-02 1.877798546179407e-02 1.877611600228067e-02 1.877424486050507e-02 + 1.877237203778229e-02 1.877049753324887e-02 1.876862133863330e-02 1.876674345293673e-02 1.876486387617420e-02 + 1.876298260257535e-02 1.876109963059111e-02 1.875921496034764e-02 1.875732858848502e-02 1.875544051216185e-02 + 1.875355072885378e-02 1.875165923449702e-02 1.874976602623304e-02 1.874787110336161e-02 1.874597446797304e-02 + 1.874407611425766e-02 1.874217603022874e-02 1.874027422146802e-02 1.873837068906284e-02 1.873646542198345e-02 + 1.873455842189881e-02 1.873264969164939e-02 1.873073922656172e-02 1.872882701964194e-02 1.872691306648714e-02 + 1.872499736923527e-02 1.872307992509612e-02 1.872116072949887e-02 1.871923978227258e-02 1.871731708186487e-02 + 1.871539262387551e-02 1.871346640021372e-02 1.871153841041527e-02 1.870960865979342e-02 1.870767714578883e-02 + 1.870574386089293e-02 1.870380879685916e-02 1.870187195798613e-02 1.869993334446320e-02 1.869799294696750e-02 + 1.869605076691687e-02 1.869410680376838e-02 1.869216104730458e-02 1.869021349836844e-02 1.868826416022470e-02 + 1.868631302853863e-02 1.868436009644664e-02 1.868240535897862e-02 1.868044881818047e-02 1.867849047172725e-02 + 1.867653031474529e-02 1.867456834731333e-02 1.867260456736053e-02 1.867063897034608e-02 1.866867155351236e-02 + 1.866670231459311e-02 1.866473125095620e-02 1.866275835809391e-02 1.866078363356833e-02 1.865880707775009e-02 + 1.865682868564128e-02 1.865484845476688e-02 1.865286638889887e-02 1.865088247751579e-02 1.864889671303901e-02 + 1.864690910747520e-02 1.864491965354244e-02 1.864292833855512e-02 1.864093516946379e-02 1.863894014384585e-02 + 1.863694325319922e-02 1.863494449952898e-02 1.863294388193027e-02 1.863094139526787e-02 1.862893703607748e-02 + 1.862693080034535e-02 1.862492268387857e-02 1.862291268732941e-02 1.862090081042848e-02 1.861888704957227e-02 + 1.861687140151818e-02 1.861485386231105e-02 1.861283442704270e-02 1.861081309610335e-02 1.860878986806025e-02 + 1.860676473338590e-02 1.860473769529663e-02 1.860270875778476e-02 1.860067790615180e-02 1.859864513789995e-02 + 1.859661045850656e-02 1.859457386260990e-02 1.859253534675110e-02 1.859049490946049e-02 1.858845254228221e-02 + 1.858640824383296e-02 1.858436201966219e-02 1.858231386031445e-02 1.858026376148910e-02 1.857821173011040e-02 + 1.857615775674864e-02 1.857410183289329e-02 1.857204396224591e-02 1.856998414158087e-02 1.856792236630606e-02 + 1.856585863699762e-02 1.856379295088432e-02 1.856172530348682e-02 1.855965569223371e-02 1.855758411493529e-02 + 1.855551056872843e-02 1.855343504862798e-02 1.855135755357239e-02 1.854927808391809e-02 1.854719662999937e-02 + 1.854511318947389e-02 1.854302776884543e-02 1.854094036342127e-02 1.853885096469986e-02 1.853675956540365e-02 + 1.853466616668727e-02 1.853257077183708e-02 1.853047338096206e-02 1.852837398473379e-02 1.852627257507170e-02 + 1.852416915520061e-02 1.852206372211816e-02 1.851995627104085e-02 1.851784680396669e-02 1.851573531468755e-02 + 1.851362179508880e-02 1.851150625260910e-02 1.850938868433302e-02 1.850726907790290e-02 1.850514743267316e-02 + 1.850302375022463e-02 1.850089802974987e-02 1.849877026321467e-02 1.849664044568886e-02 1.849450857919205e-02 + 1.849237466328984e-02 1.849023869225825e-02 1.848810065567833e-02 1.848596056072587e-02 1.848381841125062e-02 + 1.848167418759208e-02 1.847952788817062e-02 1.847737952020788e-02 1.847522908039946e-02 1.847307656165976e-02 + 1.847092195736722e-02 1.846876526733367e-02 1.846660649126623e-02 1.846444562782898e-02 1.846228267641075e-02 + 1.846011763022634e-02 1.845795047822359e-02 1.845578122357826e-02 1.845360986824314e-02 1.845143640646702e-02 + 1.844926083412144e-02 1.844708314829677e-02 1.844490334652741e-02 1.844272142526039e-02 1.844053738232335e-02 + 1.843835121884711e-02 1.843616292877729e-02 1.843397250473794e-02 1.843177994759022e-02 1.842958525561723e-02 + 1.842738842512387e-02 1.842518945510765e-02 1.842298833954339e-02 1.842078507029563e-02 1.841857965103055e-02 + 1.841637208298309e-02 1.841416236088061e-02 1.841195047731196e-02 1.840973642948215e-02 1.840752022011446e-02 + 1.840530184216091e-02 1.840308128892246e-02 1.840085856103635e-02 1.839863365911139e-02 1.839640658087383e-02 + 1.839417731924000e-02 1.839194587083986e-02 1.838971223370895e-02 1.838747640300020e-02 1.838523837692452e-02 + 1.838299815548432e-02 1.838075573582631e-02 1.837851111106092e-02 1.837626427462707e-02 1.837401523350234e-02 + 1.837176398539980e-02 1.836951051641877e-02 1.836725482529124e-02 1.836499691387402e-02 1.836273678151691e-02 + 1.836047442118306e-02 1.835820982858270e-02 1.835594300692513e-02 1.835367394977665e-02 1.835140264983480e-02 + 1.834912910825698e-02 1.834685332362546e-02 1.834457529066184e-02 1.834229500068380e-02 1.834001245612868e-02 + 1.833772766191195e-02 1.833544060380268e-02 1.833315127769170e-02 1.833085968975407e-02 1.832856583633842e-02 + 1.832626971106521e-02 1.832397130817964e-02 1.832167062581619e-02 1.831936766045366e-02 1.831706240632338e-02 + 1.831475486820015e-02 1.831244504576387e-02 1.831013292472488e-02 1.830781850356614e-02 1.830550178468002e-02 + 1.830318276421879e-02 1.830086143845657e-02 1.829853780375753e-02 1.829621185558813e-02 1.829388359300937e-02 + 1.829155301569956e-02 1.828922011662799e-02 1.828688489153528e-02 1.828454733892483e-02 1.828220745351499e-02 + 1.827986523367206e-02 1.827752068069898e-02 1.827517378500067e-02 1.827282454323407e-02 1.827047296291425e-02 + 1.826811903643735e-02 1.826576275326505e-02 1.826340410954280e-02 1.826104310998728e-02 1.825867975496676e-02 + 1.825631402943589e-02 1.825394593365713e-02 1.825157547349511e-02 1.824920264235266e-02 1.824682743095013e-02 + 1.824444983334214e-02 1.824206985531418e-02 1.823968749396920e-02 1.823730273947125e-02 1.823491559405069e-02 + 1.823252605635143e-02 1.823013411851380e-02 1.822773977727079e-02 1.822534302885856e-02 1.822294386817581e-02 + 1.822054229933361e-02 1.821813832218229e-02 1.821573192447362e-02 1.821332310276354e-02 1.821091185568656e-02 + 1.820849817689734e-02 1.820608206836350e-02 1.820366353310689e-02 1.820124256311412e-02 1.819881915016099e-02 + 1.819639328969794e-02 1.819396498477247e-02 1.819153423068764e-02 1.818910101812068e-02 1.818666535246774e-02 + 1.818422723286477e-02 1.818178664914423e-02 1.817934360000525e-02 1.817689808189780e-02 1.817445008627356e-02 + 1.817199961756547e-02 1.816954667558178e-02 1.816709124568389e-02 1.816463332917677e-02 1.816217292950077e-02 + 1.815971003769815e-02 1.815724465123547e-02 1.815477676809149e-02 1.815230637650250e-02 1.814983348051392e-02 + 1.814735808823705e-02 1.814488018072306e-02 1.814239975267995e-02 1.813991681262074e-02 1.813743135508509e-02 + 1.813494337086823e-02 1.813245285281114e-02 1.812995980445686e-02 1.812746422731492e-02 1.812496611573551e-02 + 1.812246546481565e-02 1.811996226848969e-02 1.811745651920204e-02 1.811494821957559e-02 1.811243737133842e-02 + 1.810992396481434e-02 1.810740799805441e-02 1.810488947142559e-02 1.810236837745802e-02 1.809984471224923e-02 + 1.809731847419077e-02 1.809478965788605e-02 1.809225826197647e-02 1.808972428730369e-02 1.808718772623545e-02 + 1.808464857219165e-02 1.808210682315950e-02 1.807956248210254e-02 1.807701554512131e-02 1.807446599893149e-02 + 1.807191384222250e-02 1.806935907649996e-02 1.806680169977935e-02 1.806424171112906e-02 1.806167910639137e-02 + 1.805911387430984e-02 1.805654601234490e-02 1.805397552118165e-02 1.805140239539148e-02 1.804882663464111e-02 + 1.804624823872755e-02 1.804366719439020e-02 1.804108350087335e-02 1.803849716547347e-02 1.803590817366155e-02 + 1.803331652090480e-02 1.803072221546651e-02 1.802812524400898e-02 1.802552559998909e-02 1.802292329257977e-02 + 1.802031831251088e-02 1.801771065083283e-02 1.801510031065072e-02 1.801248728509480e-02 1.800987156794499e-02 + 1.800725316456288e-02 1.800463207196059e-02 1.800200828229563e-02 1.799938179038418e-02 1.799675259135415e-02 + 1.799412068157979e-02 1.799148606152016e-02 1.798884872978088e-02 1.798620868169797e-02 1.798356590941466e-02 + 1.798092041139825e-02 1.797827219073602e-02 1.797562123473000e-02 1.797296753674024e-02 1.797031110360818e-02 + 1.796765193280976e-02 1.796499001786419e-02 1.796232535287627e-02 1.795965793501132e-02 1.795698776183851e-02 + 1.795431482887613e-02 1.795163913285315e-02 1.794896067070983e-02 1.794627943785036e-02 1.794359543174794e-02 + 1.794090865000600e-02 1.793821908548673e-02 1.793552673496832e-02 1.793283159877326e-02 1.793013367385930e-02 + 1.792743295577707e-02 1.792472944026945e-02 1.792202312682011e-02 1.791931400976357e-02 1.791660207728341e-02 + 1.791388733234035e-02 1.791116977642004e-02 1.790844939977351e-02 1.790572620127331e-02 1.790300018053203e-02 + 1.790027132960331e-02 1.789753964610457e-02 1.789480512776976e-02 1.789206776371137e-02 1.788932755546883e-02 + 1.788658450796398e-02 1.788383860557862e-02 1.788108984645815e-02 1.787833823870088e-02 1.787558376650758e-02 + 1.787282642238153e-02 1.787006621288861e-02 1.786730313584615e-02 1.786453718506033e-02 1.786176835331611e-02 + 1.785899663566110e-02 1.785622203220682e-02 1.785344454733639e-02 1.785066416506327e-02 1.784788087479271e-02 + 1.784509469481547e-02 1.784230561688990e-02 1.783951362363962e-02 1.783671871969004e-02 1.783392090351773e-02 + 1.783112016693977e-02 1.782831650359620e-02 1.782550991644932e-02 1.782270041052123e-02 1.781988796773664e-02 + 1.781707258188517e-02 1.781425426228424e-02 1.781143299909701e-02 1.780860878344276e-02 1.780578161636334e-02 + 1.780295150019453e-02 1.780011843142990e-02 1.779728239750767e-02 1.779444339320670e-02 1.779160141853593e-02 + 1.778875647528820e-02 1.778590855799184e-02 1.778305765851556e-02 1.778020377358821e-02 1.777734690358035e-02 + 1.777448704738365e-02 1.777162419310320e-02 1.776875833746895e-02 1.776588948369731e-02 1.776301762263940e-02 + 1.776014274927566e-02 1.775726486578331e-02 1.775438397030816e-02 1.775150005486545e-02 1.774861310790110e-02 + 1.774572313526677e-02 1.774283013776283e-02 1.773993409898065e-02 1.773703502220879e-02 1.773413291089222e-02 + 1.773122774923129e-02 1.772831953604024e-02 1.772540827370780e-02 1.772249394894422e-02 1.771957656009896e-02 + 1.771665611194296e-02 1.771373259698992e-02 1.771080600888477e-02 1.770787634473108e-02 1.770494360249459e-02 + 1.770200777818149e-02 1.769906886558849e-02 1.769612685929023e-02 1.769318175770428e-02 1.769023356261796e-02 + 1.768728226707501e-02 1.768432786370409e-02 1.768137035050212e-02 1.767840972761326e-02 1.767544598996190e-02 + 1.767247912224100e-02 1.766950912887429e-02 1.766653601772543e-02 1.766355977437013e-02 1.766058039164660e-02 + 1.765759786981226e-02 1.765461220736955e-02 1.765162339764906e-02 1.764863143247870e-02 1.764563631444012e-02 + 1.764263804044564e-02 1.763963660052613e-02 1.763663199590508e-02 1.763362422648862e-02 1.763061328532627e-02 + 1.762759916389677e-02 1.762458185742205e-02 1.762156136756127e-02 1.761853769290762e-02 1.761551082691653e-02 + 1.761248075761478e-02 1.760944748669641e-02 1.760641101894919e-02 1.760337134551661e-02 1.760032845807722e-02 + 1.759728235211478e-02 1.759423302856655e-02 1.759118048266074e-02 1.758812470690578e-02 1.758506570645847e-02 + 1.758200347417691e-02 1.757893799151254e-02 1.757586926700291e-02 1.757279730534286e-02 1.756972209521438e-02 + 1.756664362962799e-02 1.756356190543487e-02 1.756047692143249e-02 1.755738866974527e-02 1.755429714394244e-02 + 1.755120234663686e-02 1.754810427470094e-02 1.754500292288027e-02 1.754189829041229e-02 1.753879037098419e-02 + 1.753567915477636e-02 1.753256463576890e-02 1.752944681640228e-02 1.752632570156945e-02 1.752320127895599e-02 + 1.752007354011609e-02 1.751694248500407e-02 1.751380811099548e-02 1.751067041466748e-02 1.750752939229762e-02 + 1.750438503712632e-02 1.750123734468025e-02 1.749808631552286e-02 1.749493194526630e-02 1.749177422703599e-02 + 1.748861315463852e-02 1.748544872591071e-02 1.748228094036503e-02 1.747910979560325e-02 1.747593528635296e-02 + 1.747275740493088e-02 1.746957614261004e-02 1.746639150171011e-02 1.746320348827029e-02 1.746001208402579e-02 + 1.745681728232032e-02 1.745361909228664e-02 1.745041750587895e-02 1.744721251527593e-02 1.744400411995098e-02 + 1.744079231626219e-02 1.743757709612158e-02 1.743435844889677e-02 1.743113638300998e-02 1.742791090294012e-02 + 1.742468198827393e-02 1.742144963687445e-02 1.741821385208018e-02 1.741497462017237e-02 1.741173194001650e-02 + 1.740848581625378e-02 1.740523623716524e-02 1.740198319673262e-02 1.739872669626729e-02 1.739546673433575e-02 + 1.739220330474240e-02 1.738893639777237e-02 1.738566600801745e-02 1.738239213410604e-02 1.737911477739739e-02 + 1.737583393441487e-02 1.737254959973500e-02 1.736926176792087e-02 1.736597043319887e-02 1.736267559029083e-02 + 1.735937723525189e-02 1.735607536431420e-02 1.735276997535949e-02 1.734946106967137e-02 1.734614863942214e-02 + 1.734283267462293e-02 1.733951317984790e-02 1.733619014933173e-02 1.733286356952035e-02 1.732953344236944e-02 + 1.732619976822115e-02 1.732286254123125e-02 1.731952175476255e-02 1.731617740506982e-02 1.731282949118149e-02 + 1.730947800429541e-02 1.730612293897103e-02 1.730276429900506e-02 1.729940207772190e-02 1.729603626710180e-02 + 1.729266686687025e-02 1.728929387127552e-02 1.728591727431661e-02 1.728253707811547e-02 1.727915327486350e-02 + 1.727576585445017e-02 1.727237482415143e-02 1.726898017713387e-02 1.726558189725253e-02 1.726217999255776e-02 + 1.725877446141184e-02 1.725536528836806e-02 1.725195247427305e-02 1.724853602088567e-02 1.724511592318061e-02 + 1.724169217016580e-02 1.723826475637563e-02 1.723483368674653e-02 1.723139894995541e-02 1.722796053633534e-02 + 1.722451845482723e-02 1.722107270070567e-02 1.721762326419149e-02 1.721417014587169e-02 1.721071333868621e-02 + 1.720725283251134e-02 1.720378862838028e-02 1.720032072298445e-02 1.719684910908383e-02 1.719337378669194e-02 + 1.718989475327181e-02 1.718641200187306e-02 1.718292552719872e-02 1.717943532374793e-02 1.717594138625576e-02 + 1.717244371734551e-02 1.716894231509765e-02 1.716543716617480e-02 1.716192826455456e-02 1.715841561099909e-02 + 1.715489920993168e-02 1.715137904713604e-02 1.714785510917266e-02 1.714432741097788e-02 1.714079594608009e-02 + 1.713726069602739e-02 1.713372166332687e-02 1.713017885016558e-02 1.712663225240283e-02 1.712308185705881e-02 + 1.711952765873538e-02 1.711596966109396e-02 1.711240786053498e-02 1.710884225051524e-02 1.710527282476134e-02 + 1.710169958307061e-02 1.709812252022495e-02 1.709454162136748e-02 1.709095688985418e-02 1.708736832996113e-02 + 1.708377593024533e-02 1.708017968752960e-02 1.707657960032946e-02 1.707297565703870e-02 1.706936785401023e-02 + 1.706575619189593e-02 1.706214066346443e-02 1.705852126552140e-02 1.705489799818787e-02 1.705127085519305e-02 + 1.704763983091843e-02 1.704400492089210e-02 1.704036611449886e-02 1.703672340943711e-02 1.703307681394708e-02 + 1.702942631772786e-02 1.702577190966809e-02 1.702211358937508e-02 1.701845135582294e-02 1.701478520463906e-02 + 1.701111512687454e-02 1.700744111902223e-02 1.700376317991698e-02 1.700008130526762e-02 1.699639548886451e-02 + 1.699270572517141e-02 1.698901201362202e-02 1.698531434790372e-02 1.698161271901581e-02 1.697790713038581e-02 + 1.697419757947398e-02 1.697048405591379e-02 1.696676655885514e-02 1.696304508413142e-02 1.695931962055792e-02 + 1.695559016575875e-02 1.695185672007940e-02 1.694811928170539e-02 1.694437784303563e-02 1.694063239701608e-02 + 1.693688294268234e-02 1.693312947555357e-02 1.692937198914621e-02 1.692561047849961e-02 1.692184494218333e-02 + 1.691807537819241e-02 1.691430177590003e-02 1.691052413380094e-02 1.690674245501956e-02 1.690295672392027e-02 + 1.689916693403359e-02 1.689537309141036e-02 1.689157519031890e-02 1.688777322481082e-02 1.688396719247375e-02 + 1.688015708323470e-02 1.687634289028026e-02 1.687252461641300e-02 1.686870225976892e-02 1.686487581335405e-02 + 1.686104526641643e-02 1.685721061978611e-02 1.685337187596560e-02 1.684952902423863e-02 1.684568205626177e-02 + 1.684183096806695e-02 1.683797575916921e-02 1.683411642637722e-02 1.683025296370582e-02 1.682638536598722e-02 + 1.682251363071521e-02 1.681863775630957e-02 1.681475773295268e-02 1.681087355358095e-02 1.680698521822956e-02 + 1.680309272743823e-02 1.679919607564722e-02 1.679529524908240e-02 1.679139024683375e-02 1.678748107079098e-02 + 1.678356771499038e-02 1.677965016895157e-02 1.677572842703558e-02 1.677180249929987e-02 1.676787237703614e-02 + 1.676393804299063e-02 1.675999950051788e-02 1.675605674951069e-02 1.675210978219402e-02 1.674815858725950e-02 + 1.674420316518524e-02 1.674024352454331e-02 1.673627964747038e-02 1.673231152527195e-02 1.672833916857912e-02 + 1.672436256552257e-02 1.672038170373856e-02 1.671639658470834e-02 1.671240720840105e-02 1.670841357063555e-02 + 1.670441566220705e-02 1.670041347959014e-02 1.669640702110204e-02 1.669239628051189e-02 1.668838125191250e-02 + 1.668436193143650e-02 1.668033831890629e-02 1.667631040878886e-02 1.667227819212758e-02 1.666824166734860e-02 + 1.666420083129591e-02 1.666015567735254e-02 1.665610620005455e-02 1.665205239678242e-02 1.664799426695549e-02 + 1.664393180284348e-02 1.663986499713315e-02 1.663579384792829e-02 1.663171835503466e-02 1.662763851356003e-02 + 1.662355430939835e-02 1.661946574092143e-02 1.661537281150426e-02 1.661127551677910e-02 1.660717384720702e-02 + 1.660306779425839e-02 1.659895736095696e-02 1.659484254425630e-02 1.659072333444665e-02 1.658659972465595e-02 + 1.658247171530552e-02 1.657833931027815e-02 1.657420249617699e-02 1.657006126301349e-02 1.656591561144095e-02 + 1.656176553662080e-02 1.655761103381663e-02 1.655345210211223e-02 1.654928873901935e-02 1.654512093811135e-02 + 1.654094868807454e-02 1.653677198858015e-02 1.653259084096055e-02 1.652840523447503e-02 1.652421516561530e-02 + 1.652002063436291e-02 1.651582163151349e-02 1.651161815099949e-02 1.650741019156900e-02 1.650319775344297e-02 + 1.649898082810461e-02 1.649475940168675e-02 1.649053348141889e-02 1.648630306850305e-02 1.648206814836095e-02 + 1.647782871114676e-02 1.647358475732917e-02 1.646933629656457e-02 1.646508330893651e-02 1.646082578033714e-02 + 1.645656373337251e-02 1.645229715576629e-02 1.644802602626009e-02 1.644375035674409e-02 1.643947014097659e-02 + 1.643518536281393e-02 1.643089602671802e-02 1.642660213310334e-02 1.642230367492405e-02 1.641800064388943e-02 + 1.641369303446324e-02 1.640938084474308e-02 1.640506407467653e-02 1.640074271742540e-02 1.639641675907646e-02 + 1.639208620097271e-02 1.638775104513307e-02 1.638341128505268e-02 1.637906691499287e-02 1.637471792980197e-02 + 1.637036432400064e-02 1.636600609175647e-02 1.636164322915392e-02 1.635727573684415e-02 1.635290360792794e-02 + 1.634852683359730e-02 1.634414541697593e-02 1.633975935494602e-02 1.633536863669590e-02 1.633097325119221e-02 + 1.632657319870386e-02 1.632216848742881e-02 1.631775910539292e-02 1.631334504210032e-02 1.630892629731235e-02 + 1.630450287107613e-02 1.630007475715268e-02 1.629564194133085e-02 1.629120442381021e-02 1.628676220752001e-02 + 1.628231528645751e-02 1.627786365361661e-02 1.627340730437480e-02 1.626894623909321e-02 1.626448044809207e-02 + 1.626000991935131e-02 1.625553465710418e-02 1.625105466086324e-02 1.624656992364918e-02 1.624208044008659e-02 + 1.623758620493278e-02 1.623308721259990e-02 1.622858345750622e-02 1.622407493651434e-02 1.621956164908100e-02 + 1.621504359102545e-02 1.621052075671857e-02 1.620599314061202e-02 1.620146073758967e-02 1.619692354185834e-02 + 1.619238154678624e-02 1.618783475477294e-02 1.618328316706134e-02 1.617872676957040e-02 1.617416555535298e-02 + 1.616959952441603e-02 1.616502867670949e-02 1.616045300241566e-02 1.615587248863419e-02 1.615128714307292e-02 + 1.614669696726644e-02 1.614210195036420e-02 1.613750207990814e-02 1.613289735436475e-02 1.612828778261194e-02 + 1.612367334765880e-02 1.611905403879705e-02 1.611442986870223e-02 1.610980082722066e-02 1.610516690212456e-02 + 1.610052809916244e-02 1.609588441136000e-02 1.609123582829610e-02 1.608658235171540e-02 1.608192397521171e-02 + 1.607726068992654e-02 1.607259250083978e-02 1.606791940362701e-02 1.606324138657220e-02 1.605855844962495e-02 + 1.605387058768025e-02 1.604917779011535e-02 1.604448006054786e-02 1.603977739874237e-02 1.603506979420087e-02 + 1.603035723984084e-02 1.602563973257448e-02 1.602091727188371e-02 1.601618984720332e-02 1.601145745295015e-02 + 1.600672010067149e-02 1.600197777942985e-02 1.599723047266619e-02 1.599247818462375e-02 1.598772091449355e-02 + 1.598295865408641e-02 1.597819139147786e-02 1.597341912912636e-02 1.596864187530068e-02 1.596385961058315e-02 + 1.595907232771693e-02 1.595428003613896e-02 1.594948272828454e-02 1.594468039178993e-02 1.593987301780130e-02 + 1.593506061365002e-02 1.593024318102167e-02 1.592542070422077e-02 1.592059317798925e-02 1.591576060279083e-02 + 1.591092297799217e-02 1.590608029141302e-02 1.590123253274349e-02 1.589637971157846e-02 1.589152182656434e-02 + 1.588665886609507e-02 1.588179081847464e-02 1.587691768450550e-02 1.587203947045915e-02 1.586715616213467e-02 + 1.586226775168990e-02 1.585737424168921e-02 1.585247562649581e-02 1.584757190117160e-02 1.584266306445842e-02 + 1.583774911091078e-02 1.583283003450806e-02 1.582790583090947e-02 1.582297649499978e-02 1.581804202355953e-02 + 1.581310241701619e-02 1.580815766650671e-02 1.580320776320766e-02 1.579825271139450e-02 1.579329250537274e-02 + 1.578832713506978e-02 1.578335660262603e-02 1.577838090296324e-02 1.577340002574811e-02 1.576841397243399e-02 + 1.576342274326813e-02 1.575842633194578e-02 1.575342472205075e-02 1.574841791148685e-02 1.574340591569888e-02 + 1.573838872006093e-02 1.573336631006632e-02 1.572833869008299e-02 1.572330586230670e-02 1.571826781924578e-02 + 1.571322454052314e-02 1.570817603062760e-02 1.570312230059812e-02 1.569806333998715e-02 1.569299913693516e-02 + 1.568792968457186e-02 1.568285498663007e-02 1.567777503779379e-02 1.567268982728102e-02 1.566759935997030e-02 + 1.566250363482262e-02 1.565740264102256e-02 1.565229637077196e-02 1.564718482295817e-02 1.564206800099241e-02 + 1.563694589151567e-02 1.563181848599405e-02 1.562668579194260e-02 1.562154780177149e-02 1.561640450642917e-02 + 1.561125590888111e-02 1.560610200797837e-02 1.560094279515962e-02 1.559577825343192e-02 1.559060838842812e-02 + 1.558543321151646e-02 1.558025270088283e-02 1.557506685188879e-02 1.556987567405825e-02 1.556467915294808e-02 + 1.555947727806998e-02 1.555427005014520e-02 1.554905747326830e-02 1.554383954557267e-02 1.553861625685508e-02 + 1.553338760005679e-02 1.552815357203842e-02 1.552291417232042e-02 1.551766939022104e-02 1.551241921985975e-02 + 1.550716367246923e-02 1.550190274051892e-02 1.549663640983429e-02 1.549136467943576e-02 1.548608754911306e-02 + 1.548080501516420e-02 1.547551706650131e-02 1.547022370107663e-02 1.546492492363977e-02 1.545962073006300e-02 + 1.545431111106912e-02 1.544899605692932e-02 1.544367557060635e-02 1.543834964941066e-02 1.543301828099291e-02 + 1.542768146907574e-02 1.542233921474585e-02 1.541699150599057e-02 1.541163833967913e-02 1.540627971422265e-02 + 1.540091562222576e-02 1.539554606062004e-02 1.539017102808156e-02 1.538479052048013e-02 1.537940453376258e-02 + 1.537401306270197e-02 1.536861609811398e-02 1.536321364249661e-02 1.535780570199338e-02 1.535239225620149e-02 + 1.534697329939463e-02 1.534154884369051e-02 1.533611887960563e-02 1.533068339829330e-02 1.532524239983298e-02 + 1.531979587995433e-02 1.531434383110085e-02 1.530888624554550e-02 1.530342313142362e-02 1.529795449144603e-02 + 1.529248030485156e-02 1.528700056732233e-02 1.528151528324413e-02 1.527602445059826e-02 1.527052806021316e-02 + 1.526502610370102e-02 1.525951858764995e-02 1.525400550804322e-02 1.524848685322667e-02 1.524296262660809e-02 + 1.523743282528689e-02 1.523189743753784e-02 1.522635646012132e-02 1.522080989370855e-02 1.521525773883866e-02 + 1.520969998584297e-02 1.520413662809972e-02 1.519856766896251e-02 1.519299310438481e-02 1.518741292689401e-02 + 1.518182713051541e-02 1.517623571498702e-02 1.517063867977171e-02 1.516503601659771e-02 1.515942772580205e-02 + 1.515381380882217e-02 1.514819425008754e-02 1.514256904339338e-02 1.513693819284546e-02 1.513130169987854e-02 + 1.512565955837021e-02 1.512001175774349e-02 1.511435830052952e-02 1.510869918485496e-02 1.510303439909880e-02 + 1.509736393861015e-02 1.509168780464220e-02 1.508600600178219e-02 1.508031852355242e-02 1.507462535986425e-02 + 1.506892650464710e-02 1.506322195838325e-02 1.505751172137055e-02 1.505179578553525e-02 1.504607414992266e-02 + 1.504034681527993e-02 1.503461377008154e-02 1.502887501067205e-02 1.502313053999477e-02 1.501738035243006e-02 + 1.501162444030474e-02 1.500586279803602e-02 1.500009542963074e-02 1.499432233574762e-02 1.498854350912934e-02 + 1.498275894315130e-02 1.497696863387312e-02 1.497117258012378e-02 1.496537077480856e-02 1.495956321394884e-02 + 1.495374990400090e-02 1.494793083920974e-02 1.494210600904758e-02 1.493627541059610e-02 1.493043904648383e-02 + 1.492459691659297e-02 1.491874900408085e-02 1.491289530722370e-02 1.490703583623931e-02 1.490117058646935e-02 + 1.489529954725381e-02 1.488942270892006e-02 1.488354007804980e-02 1.487765165385858e-02 1.487175742273507e-02 + 1.486585738883519e-02 1.485995155398175e-02 1.485403990610964e-02 1.484812243988829e-02 1.484219915557141e-02 + 1.483627005584607e-02 1.483033513203473e-02 1.482439437542072e-02 1.481844779264578e-02 1.481249538141862e-02 + 1.480653713381494e-02 1.480057304868135e-02 1.479460312202780e-02 1.478862734716873e-02 1.478264572087699e-02 + 1.477665824308106e-02 1.477066491441443e-02 1.476466572742758e-02 1.475866067903805e-02 1.475264977269339e-02 + 1.474663299844858e-02 1.474061034872640e-02 1.473458182710518e-02 1.472854743115566e-02 1.472250715651883e-02 + 1.471646100132783e-02 1.471040896256117e-02 1.470435103749897e-02 1.469828722554372e-02 1.469221751827344e-02 + 1.468614190646898e-02 1.468006039547928e-02 1.467397298615093e-02 1.466787967378610e-02 1.466178045636883e-02 + 1.465567533041493e-02 1.464956428982840e-02 1.464344732703370e-02 1.463732444018100e-02 1.463119563426315e-02 + 1.462506090797482e-02 1.461892025637629e-02 1.461277367320199e-02 1.460662115516677e-02 1.460046270026797e-02 + 1.459429830605704e-02 1.458812796887011e-02 1.458195168595082e-02 1.457576945823491e-02 1.456958128559711e-02 + 1.456338716422361e-02 1.455718708308891e-02 1.455098103823577e-02 1.454476903226018e-02 1.453855106504101e-02 + 1.453232713525658e-02 1.452609724028033e-02 1.451986137384772e-02 1.451361953112174e-02 1.450737171027855e-02 + 1.450111790831084e-02 1.449485812287890e-02 1.448859235383744e-02 1.448232060352556e-02 1.447604287018101e-02 + 1.446975914267516e-02 1.446346941597466e-02 1.445717368938523e-02 1.445087196279080e-02 1.444456423724572e-02 + 1.443825051237331e-02 1.443193078136921e-02 1.442560503975330e-02 1.441927328581930e-02 1.441293551683267e-02 + 1.440659172970616e-02 1.440024192165075e-02 1.439388609177658e-02 1.438752424156573e-02 1.438115637277796e-02 + 1.437478247503487e-02 1.436840254149195e-02 1.436201657648160e-02 1.435562457263202e-02 1.434922652522855e-02 + 1.434282244486077e-02 1.433641232984850e-02 1.432999617114929e-02 1.432357396196595e-02 1.431714570255755e-02 + 1.431071139387867e-02 1.430427102559402e-02 1.429782460021014e-02 1.429137212732056e-02 1.428491359501307e-02 + 1.427844899676062e-02 1.427197833606156e-02 1.426550161130239e-02 1.425901881685885e-02 1.425252994564961e-02 + 1.424603499980085e-02 1.423953398385027e-02 1.423302689906778e-02 1.422651373475527e-02 1.421999448399202e-02 + 1.421346915585374e-02 1.420693774198730e-02 1.420040023237321e-02 1.419385663850131e-02 1.418730696003290e-02 + 1.418075118751426e-02 1.417418931634679e-02 1.416762135086922e-02 1.416104729584521e-02 1.415446713263836e-02 + 1.414788085973522e-02 1.414128849363525e-02 1.413469002361970e-02 1.412808544052846e-02 1.412147474772301e-02 + 1.411485794712882e-02 1.410823503604182e-02 1.410160600672222e-02 1.409497085818714e-02 1.408832959214252e-02 + 1.408168220875668e-02 1.407502870564407e-02 1.406836907961611e-02 1.406170332864153e-02 1.405503144837146e-02 + 1.404835343608425e-02 1.404166929852345e-02 1.403497903248639e-02 1.402828262916828e-02 1.402158009603205e-02 + 1.401487143048169e-02 1.400815661918214e-02 1.400143566703935e-02 1.399470857625501e-02 1.398797534046779e-02 + 1.398123596549795e-02 1.397449045134991e-02 1.396773878380821e-02 1.396098096640959e-02 1.395421700271061e-02 + 1.394744688102961e-02 1.394067060648909e-02 1.393388818692338e-02 1.392709961198955e-02 1.392030488001634e-02 + 1.391350399327543e-02 1.390669694254475e-02 1.389988372719557e-02 1.389306435287330e-02 1.388623881438261e-02 + 1.387940711188756e-02 1.387256925103053e-02 1.386572522405790e-02 1.385887502683316e-02 1.385201866296698e-02 + 1.384515612379329e-02 1.383828740611332e-02 1.383141252098464e-02 1.382453146615934e-02 1.381764423695148e-02 + 1.381075083621117e-02 1.380385125926009e-02 1.379694549932224e-02 1.379003355634722e-02 1.378311543405784e-02 + 1.377619113577579e-02 1.376926065784134e-02 1.376232399626086e-02 1.375538114862362e-02 1.374843211529037e-02 + 1.374147689626999e-02 1.373451549097131e-02 1.372754790081035e-02 1.372057412482435e-02 1.371359415880417e-02 + 1.370660800191563e-02 1.369961565562416e-02 1.369261712158748e-02 1.368561239160383e-02 1.367860146147292e-02 + 1.367158434223160e-02 1.366456103295884e-02 1.365753152816715e-02 1.365049582984413e-02 1.364345393626983e-02 + 1.363640584363454e-02 1.362935155197557e-02 1.362229106201978e-02 1.361522437421294e-02 1.360815148809621e-02 + 1.360107240365773e-02 1.359398712117658e-02 1.358689563898480e-02 1.357979795217255e-02 1.357269405533802e-02 + 1.356558396017600e-02 1.355846767355538e-02 1.355134518540141e-02 1.354421648973967e-02 1.353708158728038e-02 + 1.352994048497773e-02 1.352279317412557e-02 1.351563964921714e-02 1.350847993234027e-02 1.350131401794928e-02 + 1.349414188812881e-02 1.348696355361660e-02 1.347977901858603e-02 1.347258827670450e-02 1.346539132112732e-02 + 1.345818815687027e-02 1.345097879723517e-02 1.344376323611521e-02 1.343654146470481e-02 1.342931348024562e-02 + 1.342207929164266e-02 1.341483890125029e-02 1.340759229714105e-02 1.340033948592649e-02 1.339308047488992e-02 + 1.338581525615185e-02 1.337854383232506e-02 1.337126620737807e-02 1.336398237245951e-02 1.335669232490426e-02 + 1.334939606999042e-02 1.334209361886319e-02 1.333478496691931e-02 1.332747010093965e-02 1.332014902896288e-02 + 1.331282175723704e-02 1.330548828381385e-02 1.329814860211957e-02 1.329080271412866e-02 1.328345063097246e-02 + 1.327609234424045e-02 1.326872784914616e-02 1.326135715657202e-02 1.325398026514318e-02 1.324659716972378e-02 + 1.323920787031880e-02 1.323181236976987e-02 1.322441067219326e-02 1.321700278123619e-02 1.320958869473772e-02 + 1.320216840889533e-02 1.319474192647233e-02 1.318730924299288e-02 1.317987035320805e-02 1.317242527523754e-02 + 1.316497401404441e-02 1.315751655750498e-02 1.315005290457417e-02 1.314258305915991e-02 1.313510702533477e-02 + 1.312762479749873e-02 1.312013637454663e-02 1.311264176674524e-02 1.310514097528989e-02 1.309763399743803e-02 + 1.309012083240218e-02 1.308260148524151e-02 1.307507595779872e-02 1.306754423810231e-02 1.306000633130083e-02 + 1.305246225068735e-02 1.304491199415833e-02 1.303735555888092e-02 1.302979294561730e-02 1.302222416114251e-02 + 1.301464920127586e-02 1.300706805512286e-02 1.299948074007148e-02 1.299188726392925e-02 1.298428761376350e-02 + 1.297668178953030e-02 1.296906979917289e-02 1.296145165196894e-02 1.295382733572278e-02 1.294619684321666e-02 + 1.293856019418804e-02 1.293091739361701e-02 1.292326843600229e-02 1.291561331594024e-02 1.290795203962965e-02 + 1.290028461406370e-02 1.289261102589192e-02 1.288493127982097e-02 1.287724539399148e-02 1.286955336728896e-02 + 1.286185519483855e-02 1.285415087393522e-02 1.284644040779901e-02 1.283872379943217e-02 1.283100105007112e-02 + 1.282327216499671e-02 1.281553714651719e-02 1.280779599126801e-02 1.280004870582322e-02 1.279229529551004e-02 + 1.278453575462785e-02 1.277677008230648e-02 1.276899828322272e-02 1.276122036637128e-02 1.275343633303281e-02 + 1.274564618082443e-02 1.273784991358546e-02 1.273004753391990e-02 1.272223904101719e-02 1.271442442957637e-02 + 1.270660370794978e-02 1.269877689384363e-02 1.269094397773904e-02 1.268310495443295e-02 1.267525983383190e-02 + 1.266740862159357e-02 1.265955131610305e-02 1.265168790986125e-02 1.264381841321034e-02 1.263594283614933e-02 + 1.262806117310012e-02 1.262017342951705e-02 1.261227961209872e-02 1.260437971406514e-02 1.259647373729069e-02 + 1.258856168925583e-02 1.258064357239260e-02 1.257271939240096e-02 1.256478915520078e-02 1.255685285459754e-02 + 1.254891049173029e-02 1.254096207570647e-02 1.253300760376554e-02 1.252504707668881e-02 1.251708050378790e-02 + 1.250910789128773e-02 1.250112924190730e-02 1.249314455497329e-02 1.248515382942968e-02 1.247715706626537e-02 + 1.246915427066142e-02 1.246114545004359e-02 1.245313061093009e-02 1.244510975519442e-02 1.243708288271855e-02 + 1.242904999334644e-02 1.242101108960597e-02 1.241296617602342e-02 1.240491525784085e-02 1.239685833832253e-02 + 1.238879542265411e-02 1.238072651672425e-02 1.237265161832934e-02 1.236457072972670e-02 1.235648385971585e-02 + 1.234839100475330e-02 1.234029216644840e-02 1.233218735967670e-02 1.232407658450629e-02 1.231595983825897e-02 + 1.230783712734204e-02 1.229970846199802e-02 1.229157384500942e-02 1.228343326032102e-02 1.227528672233900e-02 + 1.226713425500730e-02 1.225897584359588e-02 1.225081148758153e-02 1.224264120133804e-02 1.223446498720786e-02 + 1.222628284514866e-02 1.221809477711035e-02 1.220990079161559e-02 1.220170089405064e-02 1.219349508434973e-02 + 1.218528336781141e-02 1.217706575082829e-02 1.216884223701085e-02 1.216061282093886e-02 1.215237750559525e-02 + 1.214413631491834e-02 1.213588924765066e-02 1.212763629639266e-02 1.211937747504947e-02 1.211111278696468e-02 + 1.210284222899338e-02 1.209456580676226e-02 1.208628352659129e-02 1.207799539529086e-02 1.206970142400196e-02 + 1.206140161359375e-02 1.205309595715539e-02 1.204478446558403e-02 1.203646714593309e-02 1.202814399601385e-02 + 1.201981502726849e-02 1.201148024892713e-02 1.200313965960066e-02 1.199479326438714e-02 1.198644106975963e-02 + 1.197808307814890e-02 1.196971928979660e-02 1.196134970757412e-02 1.195297434273665e-02 1.194459320579336e-02 + 1.193620630286995e-02 1.192781363156250e-02 1.191941519457288e-02 1.191101099930699e-02 1.190260104978759e-02 + 1.189418535108248e-02 1.188576391078268e-02 1.187733673904143e-02 1.186890383909906e-02 1.186046520717658e-02 + 1.185202085452967e-02 1.184357078721630e-02 1.183511499765447e-02 1.182665350164435e-02 1.181818631619212e-02 + 1.180971343948878e-02 1.180123487113532e-02 1.179275061618258e-02 1.178426068678883e-02 1.177576508273127e-02 + 1.176726380098327e-02 1.175875685721244e-02 1.175024426443667e-02 1.174172602804813e-02 1.173320214474543e-02 + 1.172467261918110e-02 1.171613746318596e-02 1.170759667473828e-02 1.169905025976067e-02 1.169049823639713e-02 + 1.168194060529573e-02 1.167337736787376e-02 1.166480853596695e-02 1.165623411322526e-02 1.164765410079015e-02 + 1.163906850325271e-02 1.163047732858534e-02 1.162188058835008e-02 1.161327829716097e-02 1.160467045202270e-02 + 1.159605704763531e-02 1.158743810702480e-02 1.157881363156412e-02 1.157018361041755e-02 1.156154807040710e-02 + 1.155290702254676e-02 1.154426045745637e-02 1.153560838867705e-02 1.152695082724772e-02 1.151828777265603e-02 + 1.150961922666123e-02 1.150094519786783e-02 1.149226570234640e-02 1.148358074611148e-02 1.147489033148848e-02 + 1.146619446355201e-02 1.145749315215113e-02 1.144878640491215e-02 1.144007421936342e-02 1.143135660500108e-02 + 1.142263357779597e-02 1.141390514531738e-02 1.140517131031360e-02 1.139643207471360e-02 1.138768744746770e-02 + 1.137893743736065e-02 1.137018205114591e-02 1.136142129485616e-02 1.135265517811921e-02 1.134388371322748e-02 + 1.133510690045416e-02 1.132632474439678e-02 1.131753726104511e-02 1.130874445081251e-02 1.129994631541456e-02 + 1.129114287234474e-02 1.128233413053084e-02 1.127352009524980e-02 1.126470077646612e-02 1.125587617975814e-02 + 1.124704630615814e-02 1.123821115477194e-02 1.122937074388692e-02 1.122052509984340e-02 1.121167421843202e-02 + 1.120281809651728e-02 1.119395674175946e-02 1.118509017235879e-02 1.117621839625571e-02 1.116734140890626e-02 + 1.115845922925729e-02 1.114957187162777e-02 1.114067933143962e-02 1.113178161769016e-02 1.112287874451852e-02 + 1.111397072153178e-02 1.110505754694771e-02 1.109613922373310e-02 1.108721577854856e-02 1.107828721826434e-02 + 1.106935353946150e-02 1.106041475521090e-02 1.105147087839408e-02 1.104252191603393e-02 1.103356786436798e-02 + 1.102460873384026e-02 1.101564454870664e-02 1.100667531791245e-02 1.099770104268406e-02 1.098872172333136e-02 + 1.097973737703280e-02 1.097074801492989e-02 1.096175363206450e-02 1.095275424291130e-02 1.094374986633713e-02 + 1.093474051123777e-02 1.092572618232803e-02 1.091670688531980e-02 1.090768263148204e-02 1.089865342255811e-02 + 1.088961926240844e-02 1.088058018050034e-02 1.087153618780464e-02 1.086248727940419e-02 1.085343346361914e-02 + 1.084437475261139e-02 1.083531115780061e-02 1.082624268419920e-02 1.081716934144050e-02 1.080809114559821e-02 + 1.079900810312026e-02 1.078992022093278e-02 1.078082751184906e-02 1.077172998533364e-02 1.076262764813011e-02 + 1.075352050586474e-02 1.074440857092024e-02 1.073529185762834e-02 1.072617037570664e-02 1.071704413251609e-02 + 1.070791313635956e-02 1.069877740113652e-02 1.068963693244828e-02 1.068049173224424e-02 1.067134181766250e-02 + 1.066218720670161e-02 1.065302791162099e-02 1.064386393117340e-02 1.063469527249458e-02 1.062552195483164e-02 + 1.061634397913101e-02 1.060716135205155e-02 1.059797409807024e-02 1.058878223029125e-02 1.057958575437316e-02 + 1.057038467384018e-02 1.056117900039964e-02 1.055196874533382e-02 1.054275390960051e-02 1.053353451406393e-02 + 1.052431058354873e-02 1.051508211263400e-02 1.050584910821505e-02 1.049661158906674e-02 1.048736956269110e-02 + 1.047812303544552e-02 1.046887201730896e-02 1.045961652742825e-02 1.045035657823219e-02 1.044109217270465e-02 + 1.043182332652317e-02 1.042255005238709e-02 1.041327235213399e-02 1.040399023555266e-02 1.039470371859749e-02 + 1.038541282005145e-02 1.037611754740451e-02 1.036681790639924e-02 1.035751391340543e-02 1.034820558036888e-02 + 1.033889291336949e-02 1.032957591435120e-02 1.032025460242317e-02 1.031092900384275e-02 1.030159911688449e-02 + 1.029226495054825e-02 1.028292652729243e-02 1.027358385071069e-02 1.026423692589549e-02 1.025488576741323e-02 + 1.024553039300053e-02 1.023617081698821e-02 1.022680704740226e-02 1.021743909457171e-02 1.020806697035185e-02 + 1.019869068658227e-02 1.018931025066223e-02 1.017992567348438e-02 1.017053697875713e-02 1.016114417776936e-02 + 1.015174727399650e-02 1.014234627700861e-02 1.013294120450803e-02 1.012353207457940e-02 1.011411888599992e-02 + 1.010470164920459e-02 1.009528038851809e-02 1.008585511657422e-02 1.007642584330934e-02 1.006699257991301e-02 + 1.005755533847607e-02 1.004811412861271e-02 1.003866895746225e-02 1.002921984502842e-02 1.001976681035788e-02 + 1.001030986009602e-02 1.000084900502786e-02 9.991384259025663e-03 9.981915635495017e-03 9.972443141719819e-03 + 9.962966786689603e-03 9.953486595586885e-03 9.944002583039199e-03 9.934514754395770e-03 9.925023122335749e-03 + 9.915527701693664e-03 9.906028505794947e-03 9.896525539473492e-03 9.887018817044350e-03 9.877508364713565e-03 + 9.867994191756903e-03 9.858476305769829e-03 9.848954721540815e-03 9.839429453723526e-03 9.829900512927632e-03 + 9.820367904529967e-03 9.810831649938153e-03 9.801291772225836e-03 9.791748277276684e-03 9.782201174956444e-03 + 9.772650480173910e-03 9.763096209214261e-03 9.753538370443265e-03 9.743976971083063e-03 9.734412038356991e-03 + 9.724843589152831e-03 9.715271627378256e-03 9.705696167153652e-03 9.696117225097080e-03 9.686534815487291e-03 + 9.676948943754414e-03 9.667359623576509e-03 9.657766883492007e-03 9.648170733986708e-03 9.638571181819185e-03 + 9.628968243024477e-03 9.619361933494769e-03 9.609752265452595e-03 9.600139245296816e-03 9.590522893495216e-03 + 9.580903234511828e-03 9.571280275331249e-03 9.561654026946651e-03 9.552024506017841e-03 9.542391727779683e-03 + 9.532755702177183e-03 9.523116437885958e-03 9.513473960404769e-03 9.503828289303256e-03 9.494179431678001e-03 + 9.484527400058637e-03 9.474872210511853e-03 9.465213879778082e-03 9.455552415295903e-03 9.445887829718797e-03 + 9.436220151655284e-03 9.426549394486200e-03 9.416875565725477e-03 9.407198681221749e-03 9.397518758018270e-03 + 9.387835810148322e-03 9.378149843813783e-03 9.368460878589471e-03 9.358768941430739e-03 9.349074041571485e-03 + 9.339376189353358e-03 9.329675400879622e-03 9.319971694171958e-03 9.310265081086165e-03 9.300555568605354e-03 + 9.290843182951191e-03 9.281127946492163e-03 9.271409865969660e-03 9.261688954922952e-03 9.251965230660204e-03 + 9.242238709904914e-03 9.232509401801155e-03 9.222777318787652e-03 9.213042489474691e-03 9.203304930168641e-03 + 9.193564649383718e-03 9.183821661973759e-03 9.174075985705271e-03 9.164327637046287e-03 9.154576623077591e-03 + 9.144822962285418e-03 9.135066683045857e-03 9.125307796249328e-03 9.115546312613307e-03 9.105782249286811e-03 + 9.096015624756502e-03 9.086246452281876e-03 9.076474739187750e-03 9.066700510968253e-03 9.056923792083085e-03 + 9.047144590189744e-03 9.037362919662660e-03 9.027578799121916e-03 9.017792245480461e-03 9.008003268928564e-03 + 8.998211881680073e-03 8.988418113610518e-03 8.978621982540696e-03 8.968823496265647e-03 8.959022672124209e-03 + 8.949219528590024e-03 8.939414081469170e-03 8.929606339864140e-03 8.919796321979990e-03 8.909984056877767e-03 + 8.900169557867096e-03 8.890352835957138e-03 8.880533907981049e-03 8.870712793191068e-03 8.860889506593549e-03 + 8.851064055633283e-03 8.841236465905915e-03 8.831406764712287e-03 8.821574959648875e-03 8.811741064546590e-03 + 8.801905099237244e-03 8.792067082696866e-03 8.782227026145442e-03 8.772384940188230e-03 8.762540855386065e-03 + 8.752694792574688e-03 8.742846759945761e-03 8.732996774006149e-03 8.723144854408183e-03 8.713291019755398e-03 + 8.703435278608567e-03 8.693577647775636e-03 8.683718159456632e-03 8.673856827661263e-03 8.663993662505663e-03 + 8.654128683145933e-03 8.644261909320558e-03 8.634393356690426e-03 8.624523033451901e-03 8.614650964506795e-03 + 8.604777179373340e-03 8.594901686657006e-03 8.585024500118565e-03 8.575145640490715e-03 8.565265126670765e-03 + 8.555382971806235e-03 8.545499187654319e-03 8.535613803632294e-03 8.525726842250045e-03 8.515838312646278e-03 + 8.505948232174527e-03 8.496056621077198e-03 8.486163497882877e-03 8.476268872748003e-03 8.466372762116349e-03 + 8.456475199094931e-03 8.446576199856061e-03 8.436675774300739e-03 8.426773941795081e-03 8.416870722731803e-03 + 8.406966134358667e-03 8.397060186389057e-03 8.387152901959176e-03 8.377244311160385e-03 8.367334425300299e-03 + 8.357423258296441e-03 8.347510830980188e-03 8.337597163605794e-03 8.327682270401855e-03 8.317766161869340e-03 + 8.307848867754637e-03 8.297930413816063e-03 8.288010810083676e-03 8.278090072673102e-03 8.268168221765407e-03 + 8.258245278027963e-03 8.248321253600945e-03 8.238396163758082e-03 8.228470040664376e-03 8.218542903042886e-03 + 8.208614761992156e-03 8.198685637447353e-03 8.188755549837494e-03 8.178824516773604e-03 8.168892549578916e-03 + 8.158959670459199e-03 8.149025910256038e-03 8.139091282816925e-03 8.129155801857130e-03 8.119219487437710e-03 + 8.109282361690508e-03 8.099344440765549e-03 8.089405733754036e-03 8.079466270417937e-03 8.069526079135253e-03 + 8.059585169010465e-03 8.049643556954327e-03 8.039701265060109e-03 8.029758314127560e-03 8.019814717074126e-03 + 8.009870488264625e-03 7.999925660293698e-03 7.989980254561855e-03 7.980034282561204e-03 7.970087763203990e-03 + 7.960140717914167e-03 7.950193166721423e-03 7.940245120231920e-03 7.930296599391260e-03 7.920347637831796e-03 + 7.910398250263278e-03 7.900448449763646e-03 7.890498257622273e-03 7.880547695356892e-03 7.870596780430528e-03 + 7.860645524802819e-03 7.850693955430419e-03 7.840742100859013e-03 7.830789973961963e-03 7.820837591210042e-03 + 7.810884973654219e-03 7.800932143705464e-03 7.790979115476222e-03 7.781025902060369e-03 7.771072537550891e-03 + 7.761119045304192e-03 7.751165435253132e-03 7.741211727248220e-03 7.731257943744334e-03 7.721304105116559e-03 + 7.711350222852130e-03 7.701396316987202e-03 7.691442422531397e-03 7.681488555826352e-03 7.671534729460651e-03 + 7.661580965493510e-03 7.651627286213397e-03 7.641673709645761e-03 7.631720246474624e-03 7.621766924002147e-03 + 7.611813774300424e-03 7.601860809420407e-03 7.591908045212342e-03 7.581955503946372e-03 7.572003208680656e-03 + 7.562051174726026e-03 7.552099414296815e-03 7.542147961065804e-03 7.532196840825635e-03 7.522246063843738e-03 + 7.512295650102864e-03 7.502345622322073e-03 7.492396000716249e-03 7.482446799189802e-03 7.472498037196947e-03 + 7.462549747897286e-03 7.452601950331629e-03 7.442654658211039e-03 7.432707892744488e-03 7.422761676416634e-03 + 7.412816028768508e-03 7.402870961455420e-03 7.392926500328647e-03 7.382982678429822e-03 7.373039508794957e-03 + 7.363097007225734e-03 7.353155196864952e-03 7.343214100532815e-03 7.333273734782904e-03 7.323334112197604e-03 + 7.313395265021593e-03 7.303457220900774e-03 7.293519991033275e-03 7.283583594600794e-03 7.273648054943689e-03 + 7.263713394446934e-03 7.253779626580373e-03 7.243846768480717e-03 7.233914855435080e-03 7.223983908518886e-03 + 7.214053940460562e-03 7.204124972417771e-03 7.194197027491048e-03 7.184270126394881e-03 7.174344280726286e-03 + 7.164419514784642e-03 7.154495863236941e-03 7.144573340914020e-03 7.134651962993328e-03 7.124731752265264e-03 + 7.114812732100897e-03 7.104894920638768e-03 7.094978330575343e-03 7.085062992246606e-03 7.075148934793896e-03 + 7.065236171017366e-03 7.055324719420953e-03 7.045414603125002e-03 7.035505845669364e-03 7.025598461448587e-03 + 7.015692466009597e-03 7.005787894887785e-03 6.995884771371198e-03 6.985983107977662e-03 6.976082925249031e-03 + 6.966184246523457e-03 6.956287093797063e-03 6.946391479271966e-03 6.936497425652844e-03 6.926604968509339e-03 + 6.916714124366364e-03 6.906824907731460e-03 6.896937340931554e-03 6.887051448149962e-03 6.877167248699087e-03 + 6.867284753979424e-03 6.857403994050719e-03 6.847525000658012e-03 6.837647785670592e-03 6.827772367409923e-03 + 6.817898770109592e-03 6.808027016717447e-03 6.798157122708669e-03 6.788289103240300e-03 6.778422992931511e-03 + 6.768558816798320e-03 6.758696587557012e-03 6.748836325648165e-03 6.738978054348659e-03 6.729121795949092e-03 + 6.719267563927435e-03 6.709415379633438e-03 6.699565278400954e-03 6.689717278120727e-03 6.679871393303892e-03 + 6.670027647355804e-03 6.660186063525513e-03 6.650346660981845e-03 6.640509452367944e-03 6.630674466396449e-03 + 6.620841735868644e-03 6.611011273308148e-03 6.601183096392477e-03 6.591357229649247e-03 6.581533696087914e-03 + 6.571712512145987e-03 6.561893692372858e-03 6.552077270290561e-03 6.542263272668194e-03 6.532451712617284e-03 + 6.522642609933696e-03 6.512835987879551e-03 6.503031869590782e-03 6.493230268870023e-03 6.483431205156500e-03 + 6.473634714105858e-03 6.463840816056773e-03 6.454049525191551e-03 6.444260863046832e-03 6.434474853362258e-03 + 6.424691517208967e-03 6.414910866799055e-03 6.405132928351729e-03 6.395357735592168e-03 6.385585303753894e-03 + 6.375815649717760e-03 6.366048796411005e-03 6.356284767471845e-03 6.346523580477974e-03 6.336765248927921e-03 + 6.327009805730009e-03 6.317257279178600e-03 6.307507681412946e-03 6.297761032647583e-03 6.288017356862164e-03 + 6.278276676438099e-03 6.268539005625230e-03 6.258804362658888e-03 6.249072783406197e-03 6.239344289504087e-03 + 6.229618894349891e-03 6.219896619699197e-03 6.210177489065160e-03 6.200461523673893e-03 6.190748736475173e-03 + 6.181039151999554e-03 6.171332804226705e-03 6.161629709556120e-03 6.151929884103313e-03 6.142233350147177e-03 + 6.132540131644584e-03 6.122850247356021e-03 6.113163710170625e-03 6.103480551213418e-03 6.093800800141988e-03 + 6.084124469547710e-03 6.074451578566364e-03 6.064782150905211e-03 6.055116209626953e-03 6.045453769994722e-03 + 6.035794848740185e-03 6.026139480474754e-03 6.016487688229946e-03 6.006839485237500e-03 5.997194892776407e-03 + 5.987553934341584e-03 5.977916631713333e-03 5.968282997802390e-03 5.958653055343909e-03 5.949026838944569e-03 + 5.939404365780911e-03 5.929785651209331e-03 5.920170717549854e-03 5.910559587858684e-03 5.900952281370824e-03 + 5.891348811852907e-03 5.881749208142844e-03 5.872153500225121e-03 5.862561701850070e-03 5.852973831530551e-03 + 5.843389912374926e-03 5.833809966833203e-03 5.824234011006907e-03 5.814662060999971e-03 5.805094150375409e-03 + 5.795530303292347e-03 5.785970532524381e-03 5.776414859211175e-03 5.766863306294991e-03 5.757315894674337e-03 + 5.747772638659374e-03 5.738233559732430e-03 5.728698691311226e-03 5.719168051719483e-03 5.709641656042984e-03 + 5.700119526414031e-03 5.690601685377130e-03 5.681088152168133e-03 5.671578940158426e-03 5.662074076665564e-03 + 5.652573592801510e-03 5.643077502877857e-03 5.633585823810169e-03 5.624098577633230e-03 5.614615788052954e-03 + 5.605137471831965e-03 5.595663642810052e-03 5.586194333773162e-03 5.576729570469775e-03 5.567269364923084e-03 + 5.557813736696195e-03 5.548362708847973e-03 5.538916303890826e-03 5.529474534822445e-03 5.520037420561356e-03 + 5.510604996543656e-03 5.501177281279281e-03 5.491754287530179e-03 5.482336037985177e-03 5.472922555453679e-03 + 5.463513859119052e-03 5.454109961206277e-03 5.444710887376439e-03 5.435316669896643e-03 5.425927322428118e-03 + 5.416542861379438e-03 5.407163309793553e-03 5.397788689388935e-03 5.388419016905312e-03 5.379054306533677e-03 + 5.369694588817857e-03 5.360339890208465e-03 5.350990223294556e-03 5.341645606645782e-03 5.332306062415535e-03 + 5.322971612709802e-03 5.313642271564683e-03 5.304318056285795e-03 5.294999000250198e-03 5.285685123732157e-03 + 5.276376439554206e-03 5.267072968338082e-03 5.257774732353860e-03 5.248481751732874e-03 5.239194038865901e-03 + 5.229911616755654e-03 5.220634516968343e-03 5.211362754853240e-03 5.202096346092698e-03 5.192835312362628e-03 + 5.183579674966123e-03 5.174329450821569e-03 5.165084652994387e-03 5.155845310548846e-03 5.146611450951191e-03 + 5.137383086378589e-03 5.128160234647254e-03 5.118942917508807e-03 5.109731156137037e-03 5.100524965000140e-03 + 5.091324360054826e-03 5.082129373049942e-03 5.072940025255639e-03 5.063756329149303e-03 5.054578304260502e-03 + 5.045405972366202e-03 5.036239353680495e-03 5.027078459118392e-03 5.017923310123222e-03 5.008773940483098e-03 + 4.999630364315774e-03 4.990492594829337e-03 4.981360654331298e-03 4.972234563790402e-03 4.963114339923834e-03 + 4.953999995020500e-03 4.944891556281875e-03 4.935789051765770e-03 4.926692493194353e-03 4.917601897109304e-03 + 4.908517284729773e-03 4.899438676825864e-03 4.890366088012707e-03 4.881299532722441e-03 4.872239041569468e-03 + 4.863184636415129e-03 4.854136328649667e-03 4.845094137498133e-03 4.836058083872883e-03 4.827028186746977e-03 + 4.818004458681770e-03 4.808986918914880e-03 4.799975597861264e-03 4.790970512088721e-03 4.781971675128856e-03 + 4.772979106768043e-03 4.763992827229902e-03 4.755012853632298e-03 4.746039197549013e-03 4.737071883993436e-03 + 4.728110941197518e-03 4.719156380399636e-03 4.710208217424537e-03 4.701266473663848e-03 4.692331168251817e-03 + 4.683402315353613e-03 4.674479928383867e-03 4.665564036556664e-03 4.656654662394768e-03 4.647751816371710e-03 + 4.638855516650367e-03 4.629965783672686e-03 4.621082635909843e-03 4.612206084994354e-03 4.603336148102954e-03 + 4.594472856159325e-03 4.585616225744373e-03 4.576766268345947e-03 4.567923003199363e-03 4.559086450091263e-03 + 4.550256626033265e-03 4.541433541986122e-03 4.532617220194613e-03 4.523807688535670e-03 4.515004959722835e-03 + 4.506209047920159e-03 4.497419972185719e-03 4.488637751873642e-03 4.479862401381760e-03 4.471093932025212e-03 + 4.462332371280023e-03 4.453577742726973e-03 4.444830056583276e-03 4.436089328917552e-03 4.427355578888171e-03 + 4.418628824988929e-03 4.409909078668640e-03 4.401196354933857e-03 4.392490684030716e-03 4.383792083151365e-03 + 4.375100562120779e-03 4.366416138313078e-03 4.357738831525952e-03 4.349068659591380e-03 4.340405630957790e-03 + 4.331749765364269e-03 4.323101091949651e-03 4.314459623208851e-03 4.305825371349630e-03 4.297198354190413e-03 + 4.288578590720092e-03 4.279966095343473e-03 4.271360877578565e-03 4.262762963097229e-03 4.254172376200769e-03 + 4.245589126222103e-03 4.237013227440267e-03 4.228444697962537e-03 4.219883556022182e-03 4.211329813254019e-03 + 4.202783482548908e-03 4.194244591796649e-03 4.185713159116739e-03 4.177189194188086e-03 4.168672712320958e-03 + 4.160163731860882e-03 4.151662270610665e-03 4.143168336754119e-03 4.134681947397693e-03 4.126203130809124e-03 + 4.117731899759874e-03 4.109268265260960e-03 4.100812244167818e-03 4.092363854125291e-03 4.083923109325604e-03 + 4.075490018959178e-03 4.067064605609816e-03 4.058646892914489e-03 4.050236890474988e-03 4.041834611549669e-03 + 4.033440073099425e-03 4.025053291802670e-03 4.016674279190388e-03 4.008303046950822e-03 3.999939621219669e-03 + 3.991584019864232e-03 3.983236251035503e-03 3.974896329846703e-03 3.966564273682151e-03 3.958240098637734e-03 + 3.949923812376889e-03 3.941615430268695e-03 3.933314980874398e-03 3.925022475755094e-03 3.916737923312982e-03 + 3.908461340476090e-03 3.900192744628528e-03 3.891932149238224e-03 3.883679560814138e-03 3.875435000263637e-03 + 3.867198492508630e-03 3.858970045729460e-03 3.850749670926077e-03 3.842537384120139e-03 3.834333202377867e-03 + 3.826137136626801e-03 3.817949195349815e-03 3.809769403427763e-03 3.801597779587331e-03 3.793434330750140e-03 + 3.785279069923421e-03 3.777132013373491e-03 3.768993177352847e-03 3.760862568898475e-03 3.752740200334732e-03 + 3.744626099044159e-03 3.736520277340854e-03 3.728422742215669e-03 3.720333508785603e-03 3.712252593018920e-03 + 3.704180008090329e-03 3.696115760631814e-03 3.688059868276574e-03 3.680012354362612e-03 3.671973228138760e-03 + 3.663942499526064e-03 3.655920182566113e-03 3.647906292785413e-03 3.639900840938008e-03 3.631903834337251e-03 + 3.623915295229000e-03 3.615935242250758e-03 3.607963681828620e-03 3.600000626081414e-03 3.592046089865790e-03 + 3.584100087061132e-03 3.576162625323692e-03 3.568233715505030e-03 3.560313381862740e-03 3.552401637255495e-03 + 3.544498488187401e-03 3.536603947761108e-03 3.528718030587010e-03 3.520840749407267e-03 3.512972109975055e-03 + 3.505112127471606e-03 3.497260824593953e-03 3.489418209893856e-03 3.481584291815555e-03 3.473759083632174e-03 + 3.465942599385497e-03 3.458134849136788e-03 3.450335838875430e-03 3.442545588595099e-03 3.434764116831954e-03 + 3.426991428902786e-03 3.419227535146918e-03 3.411472449427477e-03 3.403726185233638e-03 3.395988749408295e-03 + 3.388260149964055e-03 3.380540409506120e-03 3.372829541439428e-03 3.365127551327278e-03 3.357434450344299e-03 + 3.349750251864305e-03 3.342074968176267e-03 3.334408603200120e-03 3.326751169911567e-03 3.319102691777129e-03 + 3.311463175183513e-03 3.303832626198486e-03 3.296211059114474e-03 3.288598486024217e-03 3.280994915398627e-03 + 3.273400352769854e-03 3.265814815709593e-03 3.258238322074859e-03 3.250670876135365e-03 3.243112486983179e-03 + 3.235563167624456e-03 3.228022929479646e-03 3.220491779361285e-03 3.212969724272006e-03 3.205456783570964e-03 + 3.197952970426890e-03 3.190458290104943e-03 3.182972751519780e-03 3.175496366385864e-03 3.168029146873250e-03 + 3.160571096621216e-03 3.153122225636278e-03 3.145682555500280e-03 3.138252093348739e-03 3.130830843615626e-03 + 3.123418817816768e-03 3.116016027518625e-03 3.108622481356378e-03 3.101238183229207e-03 3.093863147897005e-03 + 3.086497392737253e-03 3.079140921752824e-03 3.071793741871484e-03 3.064455864252268e-03 3.057127299904285e-03 + 3.049808055146270e-03 3.042498134791386e-03 3.035197556645182e-03 3.027906333235584e-03 3.020624467536793e-03 + 3.013351968343262e-03 3.006088846580162e-03 2.998835112089031e-03 2.991590768047797e-03 2.984355822285627e-03 + 2.977130294631421e-03 2.969914192263928e-03 2.962707518230782e-03 2.955510282832787e-03 2.948322496039390e-03 + 2.941144165204636e-03 2.933975293458325e-03 2.926815893073326e-03 2.919665980487675e-03 2.912525559332239e-03 + 2.905394635071103e-03 2.898273217656210e-03 2.891161316595433e-03 2.884058936906487e-03 2.876966081111658e-03 + 2.869882766189157e-03 2.862809005041444e-03 2.855744798230348e-03 2.848690153100023e-03 2.841645079496137e-03 + 2.834609585256340e-03 2.827583673848185e-03 2.820567351490293e-03 2.813560634590312e-03 2.806563530531927e-03 + 2.799576041999259e-03 2.792598177467573e-03 2.785629945309582e-03 2.778671351607254e-03 2.771722398039775e-03 + 2.764783095014263e-03 2.757853459091809e-03 2.750933492568204e-03 2.744023198517816e-03 2.737122585640385e-03 + 2.730231662189404e-03 2.723350432970404e-03 2.716478899800820e-03 2.709617075896625e-03 2.702764973241287e-03 + 2.695922593060963e-03 2.689089940152226e-03 2.682267022316270e-03 2.675453847914084e-03 2.668650418902243e-03 + 2.661856738145520e-03 2.655072822033232e-03 2.648298678030288e-03 2.641534306206961e-03 2.634779712258937e-03 + 2.628034904058933e-03 2.621299888635041e-03 2.614574665771587e-03 2.607859242632423e-03 2.601153634957146e-03 + 2.594457844452072e-03 2.587771872555374e-03 2.581095727373358e-03 2.574429415266960e-03 2.567772939497474e-03 + 2.561126300777387e-03 2.554489510835181e-03 2.547862581281132e-03 2.541245510713479e-03 2.534638303078699e-03 + 2.528040966193904e-03 2.521453505493298e-03 2.514875922225054e-03 2.508308218200437e-03 2.501750407164573e-03 + 2.495202496081871e-03 2.488664484118587e-03 2.482136376281468e-03 2.475618178705269e-03 2.469109895957427e-03 + 2.462611527825166e-03 2.456123079328407e-03 2.449644563898542e-03 2.443175984269443e-03 2.436717340526153e-03 + 2.430268636964234e-03 2.423829879853036e-03 2.417401073311931e-03 2.410982215756923e-03 2.404573315098301e-03 + 2.398174382071132e-03 2.391785416912405e-03 2.385406421217447e-03 2.379037399546287e-03 2.372678357701878e-03 + 2.366329296305038e-03 2.359990214012962e-03 2.353661123666590e-03 2.347342032379030e-03 2.341032936953993e-03 + 2.334733840455562e-03 2.328444748068140e-03 2.322165663885325e-03 2.315896586946297e-03 2.309637519733881e-03 + 2.303388473653537e-03 2.297149451184649e-03 2.290920451297887e-03 2.284701476927273e-03 2.278492533074980e-03 + 2.272293622898508e-03 2.266104742447669e-03 2.259925897918875e-03 2.253757100645447e-03 2.247598348619136e-03 + 2.241449641489242e-03 2.235310983406359e-03 2.229182378556762e-03 2.223063827011661e-03 2.216955326220785e-03 + 2.210856885615230e-03 2.204768511855369e-03 2.198690202073136e-03 2.192621957162963e-03 2.186563780523993e-03 + 2.180515675851768e-03 2.174477640514074e-03 2.168449674335647e-03 2.162431789038673e-03 2.156423986093689e-03 + 2.150426261719325e-03 2.144438618887063e-03 2.138461061015507e-03 2.132493589319895e-03 2.126536199820428e-03 + 2.120588896234097e-03 2.114651688169617e-03 2.108724573757348e-03 2.102807551461262e-03 2.096900623831682e-03 + 2.091003792760502e-03 2.085117057433877e-03 2.079240415028002e-03 2.073373872799373e-03 2.067517436442142e-03 + 2.061671101563673e-03 2.055834867994772e-03 2.050008738194652e-03 2.044192713868095e-03 2.038386792128391e-03 + 2.032590971333173e-03 2.026805260662020e-03 2.021029661329869e-03 2.015264168518725e-03 2.009508783500123e-03 + 2.003763508166370e-03 1.998028342654997e-03 1.992303282805534e-03 1.986588330078225e-03 1.980883492165770e-03 + 1.975188767039759e-03 1.969504151730439e-03 1.963829647004430e-03 1.958165254218237e-03 1.952510971963634e-03 + 1.946866794889960e-03 1.941232728159857e-03 1.935608777640074e-03 1.929994938329363e-03 1.924391207914093e-03 + 1.918797587114099e-03 1.913214077256622e-03 1.907640674795718e-03 1.902077375557082e-03 1.896524186430478e-03 + 1.890981108949087e-03 1.885448138032121e-03 1.879925272541809e-03 1.874412513138102e-03 1.868909859971047e-03 + 1.863417306389931e-03 1.857934851379391e-03 1.852462503653811e-03 1.847000259754348e-03 1.841548114039762e-03 + 1.836106066817225e-03 1.830674118529854e-03 1.825252266916765e-03 1.819840505202892e-03 1.814438836319749e-03 + 1.809047265638602e-03 1.803665787133681e-03 1.798294397101445e-03 1.792933095135866e-03 1.787581880369786e-03 + 1.782240749155103e-03 1.776909697172910e-03 1.771588728179710e-03 1.766277842767543e-03 1.760977035675204e-03 + 1.755686304337379e-03 1.750405647484752e-03 1.745135063548007e-03 1.739874546386865e-03 1.734624093589025e-03 + 1.729383711586370e-03 1.724153396315838e-03 1.718933140719367e-03 1.713722944309894e-03 1.708522806163372e-03 + 1.703332722978997e-03 1.698152687791741e-03 1.692982700783420e-03 1.687822765464940e-03 1.682672875794938e-03 + 1.677533027054054e-03 1.672403217813849e-03 1.667283446525115e-03 1.662173708173832e-03 1.657073995739192e-03 + 1.651984312946546e-03 1.646904660364047e-03 1.641835029387390e-03 1.636775416468660e-03 1.631725820220986e-03 + 1.626686238226539e-03 1.621656663682810e-03 1.616637091835148e-03 1.611627526662728e-03 1.606627964700548e-03 + 1.601638398623349e-03 1.596658825754688e-03 1.591689243408400e-03 1.586729647378206e-03 1.581780030725023e-03 + 1.576840391697073e-03 1.571910732264727e-03 1.566991046477593e-03 1.562081328242421e-03 1.557181574037859e-03 + 1.552291781114454e-03 1.547411944138861e-03 1.542542055154552e-03 1.537682115822498e-03 1.532832126356767e-03 + 1.527992077470792e-03 1.523161963747274e-03 1.518341782422417e-03 1.513531530571088e-03 1.508731200913292e-03 + 1.503940786876937e-03 1.499160290964809e-03 1.494389709200610e-03 1.489629032745148e-03 1.484878257820629e-03 + 1.480137381279299e-03 1.475406398389162e-03 1.470685299850305e-03 1.465974082141071e-03 1.461272748080975e-03 + 1.456581290224651e-03 1.451899700275850e-03 1.447227974089072e-03 1.442566108566721e-03 1.437914097994959e-03 + 1.433271932504185e-03 1.428639611034298e-03 1.424017133356480e-03 1.419404490680891e-03 1.414801676491448e-03 + 1.410208686553135e-03 1.405625516589791e-03 1.401052158609908e-03 1.396488604511052e-03 1.391934855472548e-03 + 1.387390907364871e-03 1.382856750165021e-03 1.378332378783991e-03 1.373817788890047e-03 1.369312974750468e-03 + 1.364817927255285e-03 1.360332641059443e-03 1.355857116711623e-03 1.351391347026849e-03 1.346935323100728e-03 + 1.342489039284644e-03 1.338052491255308e-03 1.333625672740901e-03 1.329208572800934e-03 1.324801188462658e-03 + 1.320403519143769e-03 1.316015555822497e-03 1.311637290544184e-03 1.307268717472159e-03 1.302909831116118e-03 + 1.298560623326278e-03 1.294221085253892e-03 1.289891216124110e-03 1.285571011566486e-03 1.281260461060531e-03 + 1.276959557618139e-03 1.272668295740209e-03 1.268386669608614e-03 1.264114669618853e-03 1.259852288349743e-03 + 1.255599524419093e-03 1.251356371085625e-03 1.247122819189722e-03 1.242898861265979e-03 1.238684491359706e-03 + 1.234479702756933e-03 1.230284484841117e-03 1.226098832748256e-03 1.221922744434409e-03 1.217756210326720e-03 + 1.213599221362577e-03 1.209451770765583e-03 1.205313852635065e-03 1.201185458480448e-03 1.197066577985755e-03 + 1.192957208640432e-03 1.188857345511447e-03 1.184766976969275e-03 1.180686095693037e-03 1.176614695732404e-03 + 1.172552769621902e-03 1.168500307042727e-03 1.164457299537124e-03 1.160423745213695e-03 1.156399636114517e-03 + 1.152384961360659e-03 1.148379714206853e-03 1.144383887440774e-03 1.140397472403066e-03 1.136420458871837e-03 + 1.132452840804467e-03 1.128494614815977e-03 1.124545770440235e-03 1.120606297984056e-03 1.116676190709075e-03 + 1.112755440623707e-03 1.108844038267568e-03 1.104941973598277e-03 1.101049242215234e-03 1.097165838523137e-03 + 1.093291750933755e-03 1.089426970747485e-03 1.085571490835547e-03 1.081725303225761e-03 1.077888396808512e-03 + 1.074060761522748e-03 1.070242395009795e-03 1.066433289590875e-03 1.062633433332422e-03 1.058842817553080e-03 + 1.055061434373011e-03 1.051289275348505e-03 1.047526329409495e-03 1.043772588486000e-03 1.040028047931513e-03 + 1.036292698203525e-03 1.032566529042292e-03 1.028849531681517e-03 1.025141697676040e-03 1.021443017315572e-03 + 1.017753479165712e-03 1.014073077446178e-03 1.010401806565697e-03 1.006739654876394e-03 1.003086612170896e-03 + 9.994426698862881e-04 9.958078198244436e-04 9.921820510029489e-04 9.885653522799815e-04 9.849577193159157e-04 + 9.813591440739670e-04 9.777696142556011e-04 9.741891204675346e-04 9.706176542328248e-04 9.670552065524777e-04 + 9.635017651512704e-04 9.599573207794398e-04 9.564218691437683e-04 9.528953995809905e-04 9.493779002331982e-04 + 9.458693621672339e-04 9.423697766254766e-04 9.388791334439822e-04 9.353974200435674e-04 9.319246293443443e-04 + 9.284607555133966e-04 9.250057861419034e-04 9.215597102726345e-04 9.181225189615299e-04 9.146942031524666e-04 + 9.112747514066988e-04 9.078641516289516e-04 9.044623983719834e-04 9.010694834242857e-04 8.976853937790154e-04 + 8.943101192935385e-04 8.909436508104612e-04 8.875859786393426e-04 8.842370902316334e-04 8.808969751654204e-04 + 8.775656281905130e-04 8.742430385918343e-04 8.709291937982416e-04 8.676240840155020e-04 8.643276998573467e-04 + 8.610400308208924e-04 8.577610636611962e-04 8.544907899714905e-04 8.512292035626933e-04 8.479762917886125e-04 + 8.447320428739457e-04 8.414964471843920e-04 8.382694949325988e-04 8.350511744137459e-04 8.318414728923707e-04 + 8.286403836395943e-04 8.254478982373706e-04 8.222640032931049e-04 8.190886878204532e-04 8.159219419987107e-04 + 8.127637556794064e-04 8.096141160179775e-04 8.064730115089579e-04 8.033404360997527e-04 8.002163789609624e-04 + 7.971008268111541e-04 7.939937692507287e-04 7.908951962853333e-04 7.878050969946667e-04 7.847234577702081e-04 + 7.816502689905088e-04 7.785855239466778e-04 7.755292098590464e-04 7.724813142232633e-04 7.694418267842021e-04 + 7.664107372089749e-04 7.633880335334087e-04 7.603737023812342e-04 7.573677358642847e-04 7.543701253849379e-04 + 7.513808572285544e-04 7.483999196962093e-04 7.454273024026923e-04 7.424629947358947e-04 7.395069836664074e-04 + 7.365592567622367e-04 7.336198070174806e-04 7.306886236388442e-04 7.277656929130117e-04 7.248510036837761e-04 + 7.219445453636994e-04 7.190463067357669e-04 7.161562739946586e-04 7.132744364309508e-04 7.104007867132190e-04 + 7.075353120392018e-04 7.046779992824802e-04 7.018288375861283e-04 6.989878161882759e-04 6.961549229362052e-04 + 6.933301438820412e-04 6.905134700383686e-04 6.877048926511914e-04 6.849043978549774e-04 6.821119732944710e-04 + 6.793276080246700e-04 6.765512910034699e-04 6.737830090783149e-04 6.710227490756584e-04 6.682705030776122e-04 + 6.655262603091742e-04 6.627900067379164e-04 6.600617305924390e-04 6.573414207627890e-04 6.546290656955580e-04 + 6.519246513982958e-04 6.492281662548372e-04 6.465396024423735e-04 6.438589471596415e-04 6.411861867028291e-04 + 6.385213096762252e-04 6.358643049114898e-04 6.332151601148890e-04 6.305738609661260e-04 6.279403974635571e-04 + 6.253147606410383e-04 6.226969365620930e-04 6.200869123319087e-04 6.174846765257772e-04 6.148902176504979e-04 + 6.123035224628875e-04 6.097245772740803e-04 6.071533733723410e-04 6.045898999580564e-04 6.020341426510520e-04 + 5.994860891934145e-04 5.969457280748620e-04 5.944130474177512e-04 5.918880332091087e-04 5.893706730594447e-04 + 5.868609584534629e-04 5.843588766665737e-04 5.818644136544619e-04 5.793775576682911e-04 5.768982970317317e-04 + 5.744266191686133e-04 5.719625097277512e-04 5.695059578510202e-04 5.670569542308351e-04 5.646154849082753e-04 + 5.621815365284883e-04 5.597550972743215e-04 5.573361553519681e-04 5.549246974872960e-04 5.525207095632259e-04 + 5.501241820142805e-04 5.477351040267441e-04 5.453534610951853e-04 5.429792405131840e-04 5.406124304314462e-04 + 5.382530187447214e-04 5.359009913605971e-04 5.335563351904396e-04 5.312190411682156e-04 5.288890968140364e-04 + 5.265664878332606e-04 5.242512018091515e-04 5.219432267978740e-04 5.196425502978362e-04 5.173491576918976e-04 + 5.150630373381158e-04 5.127841797796618e-04 5.105125710953982e-04 5.082481974966798e-04 5.059910467933278e-04 + 5.037411069671739e-04 5.014983647643853e-04 4.992628057533249e-04 4.970344196034297e-04 4.948131954905409e-04 + 4.925991188614672e-04 4.903921766298550e-04 4.881923566574878e-04 4.859996466359864e-04 4.838140324815327e-04 + 4.816355005995136e-04 4.794640414647377e-04 4.772996426854546e-04 4.751422896755638e-04 4.729919697488023e-04 + 4.708486707166207e-04 4.687123799720691e-04 4.665830828962369e-04 4.644607671738101e-04 4.623454230212830e-04 + 4.602370366779194e-04 4.581355941018685e-04 4.560410828358216e-04 4.539534906171381e-04 4.518728041821612e-04 + 4.497990089033435e-04 4.477320938149108e-04 4.456720481170030e-04 4.436188572707195e-04 4.415725078895158e-04 + 4.395329875976124e-04 4.375002838422590e-04 4.354743826722610e-04 4.334552702201095e-04 4.314429363226086e-04 + 4.294373687059989e-04 4.274385527576286e-04 4.254464755700176e-04 4.234611247199864e-04 4.214824874479911e-04 + 4.195105492176435e-04 4.175452972239935e-04 4.155867214135851e-04 4.136348082067204e-04 4.116895433467350e-04 + 4.097509141339746e-04 4.078189081189173e-04 4.058935120995524e-04 4.039747114386321e-04 4.020624945699733e-04 + 4.001568506324645e-04 3.982577652062802e-04 3.963652246433777e-04 3.944792163840573e-04 3.925997278951708e-04 + 3.907267452820787e-04 3.888602542761684e-04 3.870002443827855e-04 3.851467035420477e-04 3.832996170232135e-04 + 3.814589716941001e-04 3.796247550166885e-04 3.777969542187427e-04 3.759755548771444e-04 3.741605437648361e-04 + 3.723519105456335e-04 3.705496418343326e-04 3.687537232626712e-04 3.669641420580878e-04 3.651808856652343e-04 + 3.634039408935104e-04 3.616332930379869e-04 3.598689301103073e-04 3.581108413327368e-04 3.563590123412032e-04 + 3.546134293224166e-04 3.528740796868620e-04 3.511409507353364e-04 3.494140287293094e-04 3.476932993968030e-04 + 3.459787517007610e-04 3.442703736842207e-04 3.425681507579447e-04 3.408720696736798e-04 3.391821178070990e-04 + 3.374982823340253e-04 3.358205489790399e-04 3.341489042294683e-04 3.324833375391577e-04 3.308238358267097e-04 + 3.291703846864138e-04 3.275229711235071e-04 3.258815824857735e-04 3.242462057388915e-04 3.226168264116891e-04 + 3.209934320343741e-04 3.193760116170641e-04 3.177645512713499e-04 3.161590371207419e-04 3.145594562690266e-04 + 3.129657961319975e-04 3.113780432227079e-04 3.097961831114660e-04 3.082202043645004e-04 3.066500952444524e-04 + 3.050858414009347e-04 3.035274294402161e-04 3.019748466354355e-04 3.004280802320956e-04 2.988871162192853e-04 + 2.973519409077311e-04 2.958225434173786e-04 2.942989109163873e-04 2.927810290941792e-04 2.912688849504159e-04 + 2.897624658129895e-04 2.882617587216531e-04 2.867667493909568e-04 2.852774250910157e-04 2.837937747837379e-04 + 2.823157848000407e-04 2.808434412718301e-04 2.793767313619733e-04 2.779156424588856e-04 2.764601612241833e-04 + 2.750102732798498e-04 2.735659669757869e-04 2.721272307826111e-04 2.706940504177620e-04 2.692664125118005e-04 + 2.678443044384447e-04 2.664277133531666e-04 2.650166254907073e-04 2.636110271946842e-04 2.622109073508727e-04 + 2.608162534146021e-04 2.594270512444905e-04 2.580432877716125e-04 2.566649503351083e-04 2.552920261463284e-04 + 2.539245011192165e-04 2.525623623480746e-04 2.512055988243127e-04 2.498541971146173e-04 2.485081433825346e-04 + 2.471674249383843e-04 2.458320291468696e-04 2.445019428356345e-04 2.431771519464020e-04 2.418576445147758e-04 + 2.405434090455539e-04 2.392344316436903e-04 2.379306989304936e-04 2.366321982706708e-04 2.353389171046539e-04 + 2.340508418959193e-04 2.327679588365217e-04 2.314902568213100e-04 2.302177235947735e-04 2.289503450019842e-04 + 2.276881081822984e-04 2.264310006278554e-04 2.251790095285085e-04 2.239321211178975e-04 2.226903224828012e-04 + 2.214536025966827e-04 2.202219483393713e-04 2.189953459440866e-04 2.177737827672056e-04 2.165572463172210e-04 + 2.153457236927424e-04 2.141392010208329e-04 2.129376661694288e-04 2.117411078009580e-04 2.105495123800498e-04 + 2.093628666254358e-04 2.081811579562958e-04 2.070043738711933e-04 2.058325011765904e-04 2.046655262979033e-04 + 2.035034378928387e-04 2.023462239716796e-04 2.011938707312936e-04 2.000463653117907e-04 1.989036953143001e-04 + 1.977658482429478e-04 1.966328105707422e-04 1.955045692837424e-04 1.943811134060168e-04 1.932624302421221e-04 + 1.921485062157297e-04 1.910393287336514e-04 1.899348854684124e-04 1.888351638115297e-04 1.877401500482506e-04 + 1.866498319949601e-04 1.855641985831636e-04 1.844832365124926e-04 1.834069326310023e-04 1.823352746298841e-04 + 1.812682501147551e-04 1.802058461455679e-04 1.791480493724017e-04 1.780948483852737e-04 1.770462314872484e-04 + 1.760021851824818e-04 1.749626967491274e-04 1.739277539439587e-04 1.728973444305181e-04 1.718714550470096e-04 + 1.708500728855944e-04 1.698331869571933e-04 1.688207849549946e-04 1.678128535713188e-04 1.668093803524777e-04 + 1.658103531111011e-04 1.648157594964937e-04 1.638255861976382e-04 1.628398210066413e-04 1.618584529166454e-04 + 1.608814690931768e-04 1.599088565742865e-04 1.589406031206167e-04 1.579766966509897e-04 1.570171246224424e-04 + 1.560618738321770e-04 1.551109328208930e-04 1.541642902068764e-04 1.532219328717612e-04 1.522838482661923e-04 + 1.513500243337891e-04 1.504204489591066e-04 1.494951093483970e-04 1.485739927662749e-04 1.476570882997282e-04 + 1.467443839796364e-04 1.458358667202351e-04 1.449315243896633e-04 1.440313449862068e-04 1.431353162531848e-04 + 1.422434254066872e-04 1.413556604013758e-04 1.404720102486319e-04 1.395924625558734e-04 1.387170046489957e-04 + 1.378456244430427e-04 1.369783100559194e-04 1.361150493062282e-04 1.352558293490397e-04 1.344006387024136e-04 + 1.335494662293593e-04 1.327022993333140e-04 1.318591256583063e-04 1.310199332689028e-04 1.301847103692820e-04 + 1.293534446013900e-04 1.285261234477974e-04 1.277027359881715e-04 1.268832706365997e-04 1.260677147052468e-04 + 1.252560562359565e-04 1.244482834803957e-04 1.236443845356053e-04 1.228443469528238e-04 1.220481588198588e-04 + 1.212558093699401e-04 1.204672865809282e-04 1.196825780471873e-04 1.189016720308052e-04 1.181245568536085e-04 + 1.173512205995857e-04 1.165816508484800e-04 1.158158362776897e-04 1.150537660210759e-04 1.142954277590100e-04 + 1.135408094568152e-04 1.127898995954114e-04 1.120426864956402e-04 1.112991581353023e-04 1.105593024093304e-04 + 1.098231085283700e-04 1.090905652465313e-04 1.083616601800625e-04 1.076363816399760e-04 1.069147182196831e-04 + 1.061966583782502e-04 1.054821899944032e-04 1.047713013150353e-04 1.040639818640637e-04 1.033602200082437e-04 + 1.026600035826387e-04 1.019633211976323e-04 1.012701615275282e-04 1.005805130149820e-04 9.989436355203399e-05 + 9.921170194739147e-05 9.853251765411631e-05 9.785679881782247e-05 9.718453366352614e-05 9.651571091087277e-05 + 9.585031930594751e-05 9.518834724915350e-05 9.452978284703146e-05 9.387461543789448e-05 9.322283420353250e-05 + 9.257442723618249e-05 9.192938310286574e-05 9.128769066247626e-05 9.064933872161225e-05 9.001431561187756e-05 + 8.938260983500139e-05 8.875421104519957e-05 8.812910809646098e-05 8.750728925694059e-05 8.688874335824857e-05 + 8.627345936363417e-05 8.566142611724158e-05 8.505263195150667e-05 8.444706587898619e-05 8.384471762172232e-05 + 8.324557578035348e-05 8.264962891132210e-05 8.205686604727953e-05 8.146727626544971e-05 8.088084838175318e-05 + 8.029757088191735e-05 7.971743327705584e-05 7.914042512047892e-05 7.856653495630607e-05 7.799575166346450e-05 + 7.742806441871695e-05 7.686346239245813e-05 7.630193435494130e-05 7.574346911053080e-05 7.518805653837606e-05 + 7.463568593117825e-05 7.408634594826592e-05 7.354002575090044e-05 7.299671464423979e-05 7.245640185167563e-05 + 7.191907614532941e-05 7.138472679150608e-05 7.085334380230530e-05 7.032491623916224e-05 6.979943301854977e-05 + 6.927688351841825e-05 6.875725716877753e-05 6.824054320182008e-05 6.772673050550591e-05 6.721580881996242e-05 + 6.670776807704407e-05 6.620259726868480e-05 6.570028562031883e-05 6.520082266140781e-05 6.470419793220322e-05 + 6.421040064958054e-05 6.371941996817583e-05 6.323124601185380e-05 6.274586851226631e-05 6.226327655003573e-05 + 6.178345963615301e-05 6.130640743984757e-05 6.083210957777482e-05 6.036055527561582e-05 5.989173409263222e-05 + 5.942563633391719e-05 5.896225154191688e-05 5.850156903007261e-05 5.804357852627766e-05 5.758826983099529e-05 + 5.713563260712647e-05 5.668565617514362e-05 5.623833053838233e-05 5.579364600051564e-05 5.535159201768813e-05 + 5.491215819134343e-05 5.447533442712218e-05 5.404111064124177e-05 5.360947650466450e-05 5.318042157160001e-05 + 5.275393622516995e-05 5.233001062811153e-05 5.190863431238880e-05 5.148979716458554e-05 5.107348923404401e-05 + 5.065970053025621e-05 5.024842074849432e-05 4.983963979263951e-05 4.943334827635427e-05 4.902953621108006e-05 + 4.862819332553702e-05 4.822930973793706e-05 4.783287562882953e-05 4.743888107972067e-05 4.704731588033618e-05 + 4.665817033540254e-05 4.627143510842172e-05 4.588710014690383e-05 4.550515545082771e-05 4.512559130332447e-05 + 4.474839802715817e-05 4.437356575264515e-05 4.400108444300858e-05 4.363094478314062e-05 4.326313737450849e-05 + 4.289765220307346e-05 4.253447954450777e-05 4.217360984935306e-05 4.181503354031293e-05 4.145874078526325e-05 + 4.110472186234567e-05 4.075296770939578e-05 4.040346881442376e-05 4.005621534517384e-05 3.971119780891244e-05 + 3.936840678851008e-05 3.902783280379881e-05 3.868946611492773e-05 3.835329736378580e-05 3.801931758461789e-05 + 3.768751721520911e-05 3.735788667634669e-05 3.703041665089796e-05 3.670509786268472e-05 3.638192090588934e-05 + 3.606087620758478e-05 3.574195476070656e-05 3.542514758568229e-05 3.511044516462031e-05 3.479783817623805e-05 + 3.448731747191980e-05 3.417887390941621e-05 3.387249813623169e-05 3.356818082938366e-05 3.326591326488256e-05 + 3.296568640239042e-05 3.266749086476883e-05 3.237131756688427e-05 3.207715751232477e-05 3.178500166911470e-05 + 3.149484077201404e-05 3.120666582870710e-05 3.092046825328168e-05 3.063623897047349e-05 3.035396883732847e-05 + 3.007364895961203e-05 2.979527048619034e-05 2.951882447255356e-05 2.924430180184470e-05 2.897169381596313e-05 + 2.870099196601076e-05 2.843218722351712e-05 2.816527069305565e-05 2.790023364581556e-05 2.763706736588794e-05 + 2.737576298520704e-05 2.711631161938774e-05 2.685870489191871e-05 2.660293422952212e-05 2.634899073350601e-05 + 2.609686574272242e-05 2.584655068622352e-05 2.559803697386157e-05 2.535131582907573e-05 2.510637865851451e-05 + 2.486321726016628e-05 2.462182305120829e-05 2.438218734168926e-05 2.414430166313400e-05 2.390815760058303e-05 + 2.367374667612129e-05 2.344106023464476e-05 2.321008999935892e-05 2.298082786356460e-05 2.275326527748312e-05 + 2.252739378233606e-05 2.230320509258137e-05 2.208069093512809e-05 2.185984291941186e-05 2.164065260635458e-05 + 2.142311199522572e-05 2.120721298028661e-05 2.099294714303281e-05 2.078030625998752e-05 2.056928220029127e-05 + 2.035986682231265e-05 2.015205183896797e-05 1.994582907956633e-05 1.974119073954575e-05 1.953812872162773e-05 + 1.933663479825456e-05 1.913670094979531e-05 1.893831919578259e-05 1.874148151575467e-05 1.854617976080873e-05 + 1.835240605058427e-05 1.816015268982217e-05 1.796941162992672e-05 1.778017486956627e-05 1.759243456762222e-05 + 1.740618289118282e-05 1.722141193137039e-05 1.703811372777776e-05 1.685628066375182e-05 1.667590509374455e-05 + 1.649697910104339e-05 1.631949489857415e-05 1.614344479286407e-05 1.596882111103627e-05 1.579561606259506e-05 + 1.562382191518076e-05 1.545343126338709e-05 1.528443649706141e-05 1.511682986511545e-05 1.495060379262073e-05 + 1.478575075387210e-05 1.462226320346460e-05 1.446013347627832e-05 1.429935410828208e-05 1.413991783947596e-05 + 1.398181711799591e-05 1.382504440087988e-05 1.366959229690567e-05 1.351545344207288e-05 1.336262041089977e-05 + 1.321108569966174e-05 1.306084210743495e-05 1.291188246012095e-05 1.276419932540445e-05 1.261778537439798e-05 + 1.247263337350260e-05 1.232873611168182e-05 1.218608628547451e-05 1.204467661277090e-05 1.190450010670460e-05 + 1.176554964839514e-05 1.162781797531038e-05 1.149129796332477e-05 1.135598253898601e-05 1.122186462622714e-05 + 1.108893706038782e-05 1.095719281332111e-05 1.082662505098182e-05 1.069722672643097e-05 1.056899077370047e-05 + 1.044191025341683e-05 1.031597825830204e-05 1.019118784797653e-05 1.006753201372614e-05 9.945003972957807e-06 + 9.823597003224701e-06 9.703304169766936e-06 9.584118614966616e-06 9.466033570975281e-06 9.349042284940899e-06 + 9.233137946012443e-06 9.118313747892748e-06 9.004563126071509e-06 8.891879438415634e-06 8.780255908737012e-06 + 8.669685879934477e-06 8.560162746518096e-06 8.451679906731882e-06 8.344230688978416e-06 8.237808513777729e-06 + 8.132406985376577e-06 8.028019552616531e-06 7.924639629701503e-06 7.822260741691212e-06 7.720876445763237e-06 + 7.620480284148957e-06 7.521065743540658e-06 7.422626477381218e-06 7.325156218634066e-06 7.228648532638821e-06 + 7.133097034958690e-06 7.038495423985100e-06 6.944837416133499e-06 6.852116691729515e-06 6.760326924607246e-06 + 6.669461983453847e-06 6.579515704432944e-06 6.490481806747385e-06 6.402354101863004e-06 6.315126452251840e-06 + 6.228792731669073e-06 6.143346764859859e-06 6.058782435540508e-06 5.975093791198315e-06 5.892274772590937e-06 + 5.810319279027480e-06 5.729221306547671e-06 5.648974882411472e-06 5.569574030477156e-06 5.491012732167998e-06 + 5.413285091010444e-06 5.336385298912571e-06 5.260307420244722e-06 5.185045547999291e-06 5.110593849728286e-06 + 5.036946516955677e-06 4.964097720721464e-06 4.892041619202182e-06 4.820772525961763e-06 4.750284753859853e-06 + 4.680572517390150e-06 4.611630102585562e-06 4.543451844884654e-06 4.476032095169469e-06 4.409365173309600e-06 + 4.343445435493855e-06 4.278267378107974e-06 4.213825432046252e-06 4.150113986510229e-06 4.087127510654963e-06 + 4.024860505544460e-06 3.963307478207591e-06 3.902462905546128e-06 3.842321351732513e-06 3.782877469285005e-06 + 3.724125818875267e-06 3.666060976275786e-06 3.608677584308628e-06 3.551970310325800e-06 3.495933813913828e-06 + 3.440562742860537e-06 3.385851865026623e-06 3.331795968547279e-06 3.278389763636986e-06 3.225628015585682e-06 + 3.173505536483180e-06 3.122017155106099e-06 3.071157684657154e-06 3.020921961442045e-06 2.971304937503200e-06 + 2.922301530764381e-06 2.873906622400171e-06 2.826115159163556e-06 2.778922119160790e-06 2.732322492500433e-06 + 2.686311250918327e-06 2.640883427466542e-06 2.596034137909800e-06 2.551758437600915e-06 2.508051388712647e-06 + 2.464908112415978e-06 2.422323753722291e-06 2.380293459852445e-06 2.338812372063220e-06 2.297875719562253e-06 + 2.257478763762930e-06 2.217616712073996e-06 2.178284811840686e-06 2.139478353112250e-06 2.101192645402220e-06 + 2.063422994293474e-06 2.026164721213360e-06 1.989413239181793e-06 1.953163950788084e-06 1.917412231009713e-06 + 1.882153506609316e-06 1.847383234461138e-06 1.813096887995954e-06 1.779289933937322e-06 1.745957881749227e-06 + 1.713096313387221e-06 1.680700776153704e-06 1.648766820412035e-06 1.617290047665242e-06 1.586266083282953e-06 + 1.555690561349229e-06 1.525559115412809e-06 1.495867444877275e-06 1.466611286844381e-06 1.437786342321971e-06 + 1.409388342689011e-06 1.381413059137875e-06 1.353856283643994e-06 1.326713811980504e-06 1.299981452903499e-06 + 1.273655087535907e-06 1.247730601634883e-06 1.222203862466376e-06 1.197070780161529e-06 1.172327293218336e-06 + 1.147969358200551e-06 1.123992934949297e-06 1.100394014305713e-06 1.077168647815731e-06 1.054312872343777e-06 + 1.031822727943270e-06 1.009694299029158e-06 9.879236928228051e-07 9.665070295488333e-07 9.454404356909418e-07 + 9.247200854784831e-07 9.043421911847067e-07 8.843029477247774e-07 8.645985728173436e-07 8.452253193362285e-07 + 8.261794626052351e-07 8.074572875932502e-07 7.890550921071068e-07 7.709692301619030e-07 7.531960701353248e-07 + 7.357319715620587e-07 7.185733287203112e-07 7.017165630618881e-07 6.851581162834306e-07 6.688944388625421e-07 + 6.529220052598067e-07 6.372373411274385e-07 6.218369717692920e-07 6.067174274527125e-07 5.918752755194360e-07 + 5.773071063798692e-07 5.630095271034721e-07 5.489791556312369e-07 5.352126455394792e-07 5.217066864180125e-07 + 5.084579644193884e-07 4.954631845887763e-07 4.827190834887087e-07 4.702224204045173e-07 4.579699684713550e-07 + 4.459585154334098e-07 4.341848919935187e-07 4.226459485782965e-07 4.113385363883691e-07 4.002595352312233e-07 + 3.894058504065020e-07 3.787744086301839e-07 3.683621500987016e-07 3.581660355932383e-07 3.481830676805770e-07 + 3.384102581524441e-07 3.288446273745833e-07 3.194832275224818e-07 3.103231330843525e-07 3.013614373207315e-07 + 2.925952486098954e-07 2.840217031010630e-07 2.756379695267500e-07 2.674412234106971e-07 2.594286576386206e-07 + 2.515974937029081e-07 2.439449754383926e-07 2.364683632309526e-07 2.291649345383248e-07 2.220320002407473e-07 + 2.150668931442167e-07 2.082669548865648e-07 2.016295514473211e-07 1.951520727682157e-07 1.888319311586693e-07 + 1.826665552837694e-07 1.766533931743509e-07 1.707899271779558e-07 1.650736547045015e-07 1.595020857916059e-07 + 1.540727581256184e-07 1.487832309302349e-07 1.436310837043274e-07 1.386139140291348e-07 1.337293426531939e-07 + 1.289750194034745e-07 1.243486077550924e-07 1.198477884856861e-07 1.154702687444825e-07 1.112137774078364e-07 + 1.070760615754017e-07 1.030548878714015e-07 9.914804983102429e-08 9.535336319532080e-08 9.166865877274502e-08 + 8.809178921148019e-08 8.462062987184363e-08 8.125307865123530e-08 7.798705169188094e-08 7.482048486743137e-08 + 7.175134265372113e-08 6.877760756933380e-08 6.589727849023001e-08 6.310837918621049e-08 6.040895419177239e-08 + 5.779706919084610e-08 5.527080986023133e-08 5.282828275733461e-08 5.046762055622123e-08 4.818697371034567e-08 + 4.598451068334482e-08 4.385842456607357e-08 4.180692971968811e-08 3.982825980405518e-08 3.792066966127786e-08 + 3.608243718277188e-08 3.431186206040581e-08 3.260726312426322e-08 3.096697968233847e-08 2.938937298745983e-08 + 2.787282684203093e-08 2.641574418968914e-08 2.501654849393015e-08 2.367368813134603e-08 2.238563078881267e-08 + 2.115086344400587e-08 1.996789606940446e-08 1.883525886916157e-08 1.775150390948272e-08 1.671520402936120e-08 + 1.572495208680648e-08 1.477936511938296e-08 1.387707990026544e-08 1.301675220490221e-08 1.219706138041649e-08 + 1.141670750179082e-08 1.067441065312196e-08 9.968913113355902e-09 9.298978133402818e-09 8.663390331238368e-09 + 8.060955677291694e-09 7.490500025975069e-09 6.950870854385858e-09 6.440937996309972e-09 5.959590797852082e-09 + 5.505739944416565e-09 5.078318901633865e-09 4.676280806472903e-09 4.298600029449081e-09 3.944272776496124e-09 + 3.612315204086912e-09 3.301765808464261e-09 3.011683971683484e-09 2.741149022073358e-09 2.489263438950313e-09 + 2.255150010734707e-09 2.037951439802415e-09 1.836833426869985e-09 1.650981924522248e-09 1.479603458288696e-09 + 1.321927088896133e-09 1.177201927023745e-09 1.044698361371603e-09 9.237089042804517e-10 8.135457713165132e-10 + 7.135428727606122e-10 6.230561233086797e-10 5.414610837010692e-10 4.681552957722881e-10 4.025579739718386e-10 + 3.441080911031397e-10 2.922668865200973e-10 2.465167169238545e-10 2.063598966733955e-10 1.713213823559041e-10 + 1.409467301732644e-10 1.148017117805301e-10 9.247489436372923e-11 7.357503403670199e-11 5.773147403071901e-11 + 4.459623415664643e-11 3.384125546419585e-11 2.515956035071991e-11 1.826656159304613e-11 1.289741553721677e-11 + 8.808852910154413e-12 5.779611749592996e-12 3.608107240050744e-12 2.114775563702074e-12 1.141629414770904e-12 + 5.504076981088132e-13 2.252028793998774e-13 7.135404618680312e-14 1.400208835054596e-14 2.858282411901289e-16 + 0.000000000000000e+00 3.280907692410757e+00 6.559093802140417e+00 9.834554467967374e+00 1.310728583537977e+01 + 1.637728405657552e+01 1.964454529046227e+01 2.290906570265743e+01 2.617084146548816e+01 2.942986875799139e+01 + 3.268614376591378e+01 3.593966268171175e+01 3.919042170455148e+01 4.243841704030890e+01 4.568364490156970e+01 + 4.892610150762930e+01 5.216578308449292e+01 5.540268586487547e+01 5.863680608820168e+01 6.186814000060598e+01 + 6.509668385493259e+01 6.832243391073550e+01 7.154538643427834e+01 7.476553769853463e+01 7.798288398318758e+01 + 8.119742157463018e+01 8.440914676596513e+01 8.761805585700493e+01 9.082414515427180e+01 9.402741097099775e+01 + 9.722784962712448e+01 1.004254574493035e+02 1.036202307708961e+02 1.068121659319733e+02 1.100012592793157e+02 + 1.131875071664140e+02 1.163709059534683e+02 1.195514520073887e+02 1.227291417017950e+02 1.259039714170167e+02 + 1.290759375400930e+02 1.322450364647731e+02 1.354112645915156e+02 1.385746183274891e+02 1.417350940865720e+02 + 1.448926882893522e+02 1.480473973631275e+02 1.511992177419055e+02 1.543481458664036e+02 1.574941781840487e+02 + 1.606373111489777e+02 1.637775412220371e+02 1.669148648707833e+02 1.700492785694823e+02 1.731807787991100e+02 + 1.763093620473519e+02 1.794350248086033e+02 1.825577635839695e+02 1.856775748812652e+02 1.887944552150149e+02 + 1.919084011064531e+02 1.950194090835239e+02 1.981274756808810e+02 2.012325974398883e+02 2.043347709086188e+02 + 2.074339926418558e+02 2.105302592010923e+02 2.136235671545306e+02 2.167139130770834e+02 2.198012935503726e+02 + 2.228857051627302e+02 2.259671445091978e+02 2.290456081915269e+02 2.321210928181784e+02 2.351935950043234e+02 + 2.382631113718425e+02 2.413296385493261e+02 2.443931731720744e+02 2.474537118820972e+02 2.505112513281143e+02 + 2.535657881655549e+02 2.566173190565586e+02 2.596658406699738e+02 2.627113496813596e+02 2.657538427729843e+02 + 2.687933166338259e+02 2.718297679595726e+02 2.748631934526219e+02 2.778935898220815e+02 2.809209537837683e+02 + 2.839452820602094e+02 2.869665713806416e+02 2.899848184810112e+02 2.930000201039745e+02 2.960121729988974e+02 + 2.990212739218558e+02 3.020273196356349e+02 3.050303069097302e+02 3.080302325203465e+02 3.110270932503987e+02 + 3.140208858895110e+02 3.170116072340180e+02 3.199992540869634e+02 3.229838232581013e+02 3.259653115638948e+02 + 3.289437158275174e+02 3.319190328788521e+02 3.348912595544916e+02 3.378603926977383e+02 3.408264291586049e+02 + 3.437893657938130e+02 3.467491994667945e+02 3.497059270476910e+02 3.526595454133537e+02 3.556100514473437e+02 + 3.585574420399318e+02 3.615017140880985e+02 3.644428644955341e+02 3.673808901726388e+02 3.703157880365222e+02 + 3.732475550110041e+02 3.761761880266134e+02 3.791016840205897e+02 3.820240399368814e+02 3.849432527261474e+02 + 3.878593193457557e+02 3.907722367597846e+02 3.936820019390219e+02 3.965886118609651e+02 3.994920635098217e+02 + 4.023923538765087e+02 4.052894799586530e+02 4.081834387605912e+02 4.110742272933696e+02 4.139618425747443e+02 + 4.168462816291812e+02 4.197275414878559e+02 4.226056191886540e+02 4.254805117761704e+02 4.283522163017099e+02 + 4.312207298232872e+02 4.340860494056267e+02 4.369481721201628e+02 4.398070950450389e+02 4.426628152651090e+02 + 4.455153298719365e+02 4.483646359637945e+02 4.512107306456656e+02 4.540536110292430e+02 4.568932742329288e+02 + 4.597297173818351e+02 4.625629376077841e+02 4.653929320493071e+02 4.682196978516460e+02 4.710432321667516e+02 + 4.738635321532851e+02 4.766805949766169e+02 4.794944178088276e+02 4.823049978287075e+02 4.851123322217564e+02 + 4.879164181801841e+02 4.907172529029099e+02 4.935148335955632e+02 4.963091574704831e+02 4.991002217467178e+02 + 5.018880236500261e+02 5.046725604128764e+02 5.074538292744463e+02 5.102318274806237e+02 5.130065522840063e+02 + 5.157780009439010e+02 5.185461707263250e+02 5.213110589040049e+02 5.240726627563774e+02 5.268309795695885e+02 + 5.295860066364945e+02 5.323377412566609e+02 5.350861807363634e+02 5.378313223885873e+02 5.405731635330272e+02 + 5.433117014960885e+02 5.460469336108854e+02 5.487788572172420e+02 5.515074696616928e+02 5.542327682974811e+02 + 5.569547504845609e+02 5.596734135895950e+02 5.623887549859570e+02 5.651007720537292e+02 5.678094621797045e+02 + 5.705148227573850e+02 5.732168511869830e+02 5.759155448754203e+02 5.786109012363282e+02 5.813029176900482e+02 + 5.839915916636313e+02 5.866769205908384e+02 5.893589019121401e+02 5.920375330747167e+02 5.947128115324583e+02 + 5.973847347459648e+02 6.000533001825459e+02 6.027185053162206e+02 6.053803476277183e+02 6.080388246044777e+02 + 6.106939337406476e+02 6.133456725370861e+02 6.159940385013617e+02 6.186390291477520e+02 6.212806419972447e+02 + 6.239188745775372e+02 6.265537244230364e+02 6.291851890748597e+02 6.318132660808333e+02 6.344379529954938e+02 + 6.370592473800871e+02 6.396771468025696e+02 6.422916488376064e+02 6.449027510665734e+02 6.475104510775553e+02 + 6.501147464653474e+02 6.527156348314542e+02 6.553131137840901e+02 6.579071809381794e+02 6.604978339153558e+02 + 6.630850703439634e+02 6.656688878590552e+02 6.682492841023947e+02 6.708262567224546e+02 6.733998033744177e+02 + 6.759699217201766e+02 6.785366094283333e+02 6.810998641742000e+02 6.836596836397980e+02 6.862160655138592e+02 + 6.887690074918247e+02 6.913185072758453e+02 6.938645625747821e+02 6.964071711042051e+02 6.989463305863949e+02 + 7.014820387503412e+02 7.040142933317441e+02 7.065430920730126e+02 7.090684327232666e+02 7.115903130383348e+02 + 7.141087307807558e+02 7.166236837197782e+02 7.191351696313601e+02 7.216431862981700e+02 7.241477315095852e+02 + 7.266488030616937e+02 7.291463987572921e+02 7.316405164058881e+02 7.341311538236981e+02 7.366183088336488e+02 + 7.391019792653765e+02 7.415821629552270e+02 7.440588577462564e+02 7.465320614882301e+02 7.490017720376235e+02 + 7.514679872576214e+02 7.539307050181191e+02 7.563899231957208e+02 7.588456396737411e+02 7.612978523422037e+02 + 7.637465590978424e+02 7.661917578441014e+02 7.686334464911333e+02 7.710716229558018e+02 7.735062851616793e+02 + 7.759374310390485e+02 7.783650585249019e+02 7.807891655629417e+02 7.832097501035795e+02 7.856268101039369e+02 + 7.880403435278453e+02 7.904503483458460e+02 7.928568225351897e+02 7.952597640798369e+02 7.976591709704585e+02 + 8.000550412044341e+02 8.024473727858536e+02 8.048361637255169e+02 8.072214120409334e+02 8.096031157563222e+02 + 8.119812729026120e+02 8.143558815174417e+02 8.167269396451593e+02 8.190944453368236e+02 8.214583966502021e+02 + 8.238187916497725e+02 8.261756284067224e+02 8.285289049989487e+02 8.308786195110586e+02 8.332247700343684e+02 + 8.355673546669050e+02 8.379063715134042e+02 8.402418186853124e+02 8.425736943007848e+02 8.449019964846872e+02 + 8.472267233685945e+02 8.495478730907921e+02 8.518654437962743e+02 8.541794336367457e+02 8.564898407706205e+02 + 8.587966633630226e+02 8.610998995857861e+02 8.633995476174539e+02 8.656956056432798e+02 8.679880718552264e+02 + 8.702769444519665e+02 8.725622216388828e+02 8.748439016280670e+02 8.771219826383219e+02 8.793964628951586e+02 + 8.816673406307990e+02 8.839346140841741e+02 8.861982815009252e+02 8.884583411334027e+02 8.907147912406675e+02 + 8.929676300884897e+02 8.952168559493493e+02 8.974624671024361e+02 8.997044618336495e+02 9.019428384355992e+02 + 9.041775952076036e+02 9.064087304556922e+02 9.086362424926032e+02 9.108601296377846e+02 9.130803902173951e+02 + 9.152970225643020e+02 9.175100250180832e+02 9.197193959250255e+02 9.219251336381268e+02 9.241272365170935e+02 + 9.263257029283417e+02 9.285205312449986e+02 9.307117198468995e+02 9.328992671205907e+02 9.350831714593277e+02 + 9.372634312630761e+02 9.394400449385104e+02 9.416130108990160e+02 9.437823275646871e+02 9.459479933623287e+02 + 9.481100067254541e+02 9.502683660942876e+02 9.524230699157629e+02 9.545741166435229e+02 9.567215047379214e+02 + 9.588652326660207e+02 9.610052989015940e+02 9.631417019251231e+02 9.652744402238004e+02 9.674035122915279e+02 + 9.695289166289172e+02 9.716506517432896e+02 9.737687161486764e+02 9.758831083658184e+02 9.779938269221661e+02 + 9.801008703518804e+02 9.822042371958310e+02 9.843039260015983e+02 9.863999353234714e+02 9.884922637224498e+02 + 9.905809097662435e+02 9.926658720292703e+02 9.947471490926598e+02 9.968247395442500e+02 9.988986419785891e+02 + 1.000968854996935e+03 1.003035377207256e+03 1.005098207224229e+03 1.007157343669241e+03 1.009212785170389e+03 + 1.011264530362480e+03 1.013312577887031e+03 1.015356926392268e+03 1.017397574533126e+03 1.019434520971252e+03 + 1.021467764375000e+03 1.023497303419437e+03 1.025523136786337e+03 1.027545263164185e+03 1.029563681248175e+03 + 1.031578389740212e+03 1.033589387348909e+03 1.035596672789591e+03 1.037600244784291e+03 1.039600102061752e+03 + 1.041596243357428e+03 1.043588667413480e+03 1.045577372978782e+03 1.047562358808916e+03 1.049543623666173e+03 + 1.051521166319557e+03 1.053494985544777e+03 1.055465080124256e+03 1.057431448847125e+03 1.059394090509224e+03 + 1.061353003913104e+03 1.063308187868025e+03 1.065259641189957e+03 1.067207362701581e+03 1.069151351232285e+03 + 1.071091605618170e+03 1.073028124702043e+03 1.074960907333424e+03 1.076889952368542e+03 1.078815258670335e+03 + 1.080736825108451e+03 1.082654650559248e+03 1.084568733905793e+03 1.086479074037864e+03 1.088385669851947e+03 + 1.090288520251241e+03 1.092187624145651e+03 1.094082980451794e+03 1.095974588092995e+03 1.097862445999292e+03 + 1.099746553107428e+03 1.101626908360861e+03 1.103503510709754e+03 1.105376359110983e+03 1.107245452528133e+03 + 1.109110789931497e+03 1.110972370298081e+03 1.112830192611597e+03 1.114684255862470e+03 1.116534559047833e+03 + 1.118381101171529e+03 1.120223881244111e+03 1.122062898282842e+03 1.123898151311694e+03 1.125729639361349e+03 + 1.127557361469200e+03 1.129381316679347e+03 1.131201504042604e+03 1.133017922616489e+03 1.134830571465235e+03 + 1.136639449659783e+03 1.138444556277782e+03 1.140245890403593e+03 1.142043451128286e+03 1.143837237549640e+03 + 1.145627248772146e+03 1.147413483907002e+03 1.149195942072117e+03 1.150974622392110e+03 1.152749523998310e+03 + 1.154520646028755e+03 1.156287987628192e+03 1.158051547948079e+03 1.159811326146585e+03 1.161567321388586e+03 + 1.163319532845669e+03 1.165067959696131e+03 1.166812601124979e+03 1.168553456323928e+03 1.170290524491405e+03 + 1.172023804832545e+03 1.173753296559195e+03 1.175478998889909e+03 1.177200911049953e+03 1.178919032271301e+03 + 1.180633361792637e+03 1.182343898859357e+03 1.184050642723563e+03 1.185753592644071e+03 1.187452747886402e+03 + 1.189148107722792e+03 1.190839671432183e+03 1.192527438300227e+03 1.194211407619287e+03 1.195891578688435e+03 + 1.197567950813455e+03 1.199240523306837e+03 1.200909295487783e+03 1.202574266682204e+03 1.204235436222721e+03 + 1.205892803448666e+03 1.207546367706079e+03 1.209196128347710e+03 1.210842084733019e+03 1.212484236228177e+03 + 1.214122582206062e+03 1.215757122046265e+03 1.217387855135084e+03 1.219014780865528e+03 1.220637898637316e+03 + 1.222257207856876e+03 1.223872707937346e+03 1.225484398298575e+03 1.227092278367119e+03 1.228696347576247e+03 + 1.230296605365935e+03 1.231893051182870e+03 1.233485684480449e+03 1.235074504718779e+03 1.236659511364675e+03 + 1.238240703891664e+03 1.239818081779981e+03 1.241391644516571e+03 1.242961391595090e+03 1.244527322515903e+03 + 1.246089436786084e+03 1.247647733919417e+03 1.249202213436398e+03 1.250752874864230e+03 1.252299717736826e+03 + 1.253842741594810e+03 1.255381945985516e+03 1.256917330462986e+03 1.258448894587972e+03 1.259976637927938e+03 + 1.261500560057056e+03 1.263020660556207e+03 1.264536939012984e+03 1.266049395021687e+03 1.267558028183329e+03 + 1.269062838105629e+03 1.270563824403019e+03 1.272060986696640e+03 1.273554324614341e+03 1.275043837790682e+03 + 1.276529525866934e+03 1.278011388491075e+03 1.279489425317796e+03 1.280963636008494e+03 1.282434020231280e+03 + 1.283900577660971e+03 1.285363307979095e+03 1.286822210873891e+03 1.288277286040307e+03 1.289728533179999e+03 + 1.291175952001336e+03 1.292619542219393e+03 1.294059303555960e+03 1.295495235739530e+03 1.296927338505312e+03 + 1.298355611595221e+03 1.299780054757883e+03 1.301200667748633e+03 1.302617450329516e+03 1.304030402269289e+03 + 1.305439523343415e+03 1.306844813334069e+03 1.308246272030136e+03 1.309643899227210e+03 1.311037694727594e+03 + 1.312427658340302e+03 1.313813789881058e+03 1.315196089172293e+03 1.316574556043153e+03 1.317949190329488e+03 + 1.319319991873862e+03 1.320686960525546e+03 1.322050096140523e+03 1.323409398581483e+03 1.324764867717829e+03 + 1.326116503425671e+03 1.327464305587830e+03 1.328808274093838e+03 1.330148408839934e+03 1.331484709729068e+03 + 1.332817176670901e+03 1.334145809581802e+03 1.335470608384850e+03 1.336791573009835e+03 1.338108703393256e+03 + 1.339421999478320e+03 1.340731461214948e+03 1.342037088559766e+03 1.343338881476113e+03 1.344636839934036e+03 + 1.345930963910293e+03 1.347221253388351e+03 1.348507708358388e+03 1.349790328817288e+03 1.351069114768650e+03 + 1.352344066222779e+03 1.353615183196692e+03 1.354882465714113e+03 1.356145913805479e+03 1.357405527507935e+03 + 1.358661306865335e+03 1.359913251928245e+03 1.361161362753938e+03 1.362405639406399e+03 1.363646081956323e+03 + 1.364882690481112e+03 1.366115465064880e+03 1.367344405798451e+03 1.368569512779358e+03 1.369790786111843e+03 + 1.371008225906858e+03 1.372221832282067e+03 1.373431605361840e+03 1.374637545277261e+03 1.375839652166119e+03 + 1.377037926172918e+03 1.378232367448867e+03 1.379422976151887e+03 1.380609752446609e+03 1.381792696504374e+03 + 1.382971808503231e+03 1.384147088627939e+03 1.385318537069970e+03 1.386486154027501e+03 1.387649939705423e+03 + 1.388809894315333e+03 1.389966018075540e+03 1.391118311211063e+03 1.392266773953630e+03 1.393411406541678e+03 + 1.394552209220356e+03 1.395689182241520e+03 1.396822325863737e+03 1.397951640352285e+03 1.399077125979150e+03 + 1.400198783023028e+03 1.401316611769325e+03 1.402430612510158e+03 1.403540785544351e+03 1.404647131177441e+03 + 1.405749649721672e+03 1.406848341496000e+03 1.407943206826088e+03 1.409034246044311e+03 1.410121459489754e+03 + 1.411204847508209e+03 1.412284410452182e+03 1.413360148680885e+03 1.414432062560241e+03 1.415500152462884e+03 + 1.416564418768155e+03 1.417624861862108e+03 1.418681482137504e+03 1.419734279993815e+03 1.420783255837224e+03 + 1.421828410080621e+03 1.422869743143608e+03 1.423907255452495e+03 1.424940947440303e+03 1.425970819546763e+03 + 1.426996872218314e+03 1.428019105908108e+03 1.429037521076003e+03 1.430052118188569e+03 1.431062897719085e+03 + 1.432069860147540e+03 1.433073005960632e+03 1.434072335651771e+03 1.435067849721075e+03 1.436059548675370e+03 + 1.437047433028196e+03 1.438031503299800e+03 1.439011760017138e+03 1.439988203713878e+03 1.440960834930396e+03 + 1.441929654213780e+03 1.442894662117825e+03 1.443855859203037e+03 1.444813246036631e+03 1.445766823192535e+03 + 1.446716591251382e+03 1.447662550800518e+03 1.448604702433997e+03 1.449543046752585e+03 1.450477584363755e+03 + 1.451408315881691e+03 1.452335241927287e+03 1.453258363128147e+03 1.454177680118583e+03 1.455093193539620e+03 + 1.456004904038989e+03 1.456912812271134e+03 1.457816918897206e+03 1.458717224585068e+03 1.459613730009291e+03 + 1.460506435851157e+03 1.461395342798658e+03 1.462280451546494e+03 1.463161762796076e+03 1.464039277255525e+03 + 1.464912995639670e+03 1.465782918670054e+03 1.466649047074924e+03 1.467511381589240e+03 1.468369922954673e+03 + 1.469224671919600e+03 1.470075629239112e+03 1.470922795675006e+03 1.471766171995790e+03 1.472605758976684e+03 + 1.473441557399614e+03 1.474273568053219e+03 1.475101791732846e+03 1.475926229240551e+03 1.476746881385102e+03 + 1.477563748981976e+03 1.478376832853358e+03 1.479186133828146e+03 1.479991652741944e+03 1.480793390437068e+03 + 1.481591347762545e+03 1.482385525574108e+03 1.483175924734204e+03 1.483962546111986e+03 1.484745390583318e+03 + 1.485524459030776e+03 1.486299752343644e+03 1.487071271417914e+03 1.487839017156289e+03 1.488602990468185e+03 + 1.489363192269722e+03 1.490119623483735e+03 1.490872285039765e+03 1.491621177874064e+03 1.492366302929595e+03 + 1.493107661156030e+03 1.493845253509749e+03 1.494579080953843e+03 1.495309144458115e+03 1.496035444999074e+03 + 1.496757983559942e+03 1.497476761130647e+03 1.498191778707831e+03 1.498903037294843e+03 1.499610537901742e+03 + 1.500314281545298e+03 1.501014269248990e+03 1.501710502043006e+03 1.502402980964245e+03 1.503091707056315e+03 + 1.503776681369534e+03 1.504457904960931e+03 1.505135378894241e+03 1.505809104239914e+03 1.506479082075105e+03 + 1.507145313483682e+03 1.507807799556220e+03 1.508466541390007e+03 1.509121540089038e+03 1.509772796764020e+03 + 1.510420312532367e+03 1.511064088518205e+03 1.511704125852369e+03 1.512340425672404e+03 1.512972989122564e+03 + 1.513601817353814e+03 1.514226911523828e+03 1.514848272796989e+03 1.515465902344391e+03 1.516079801343838e+03 + 1.516689970979842e+03 1.517296412443626e+03 1.517899126933124e+03 1.518498115652977e+03 1.519093379814537e+03 + 1.519684920635866e+03 1.520272739341736e+03 1.520856837163628e+03 1.521437215339733e+03 1.522013875114953e+03 + 1.522586817740897e+03 1.523156044475887e+03 1.523721556584951e+03 1.524283355339831e+03 1.524841442018975e+03 + 1.525395817907543e+03 1.525946484297405e+03 1.526493442487138e+03 1.527036693782033e+03 1.527576239494086e+03 + 1.528112080942007e+03 1.528644219451213e+03 1.529172656353831e+03 1.529697392988700e+03 1.530218430701367e+03 + 1.530735770844087e+03 1.531249414775829e+03 1.531759363862268e+03 1.532265619475790e+03 1.532768182995492e+03 + 1.533267055807180e+03 1.533762239303368e+03 1.534253734883281e+03 1.534741543952856e+03 1.535225667924735e+03 + 1.535706108218275e+03 1.536182866259539e+03 1.536655943481301e+03 1.537125341323045e+03 1.537591061230964e+03 + 1.538053104657961e+03 1.538511473063650e+03 1.538966167914353e+03 1.539417190683102e+03 1.539864542849641e+03 + 1.540308225900420e+03 1.540748241328602e+03 1.541184590634058e+03 1.541617275323370e+03 1.542046296909827e+03 + 1.542471656913432e+03 1.542893356860894e+03 1.543311398285634e+03 1.543725782727782e+03 1.544136511734178e+03 + 1.544543586858370e+03 1.544947009660620e+03 1.545346781707894e+03 1.545742904573873e+03 1.546135379838945e+03 + 1.546524209090207e+03 1.546909393921469e+03 1.547290935933248e+03 1.547668836732771e+03 1.548043097933976e+03 + 1.548413721157510e+03 1.548780708030729e+03 1.549144060187701e+03 1.549503779269201e+03 1.549859866922715e+03 + 1.550212324802440e+03 1.550561154569281e+03 1.550906357890854e+03 1.551247936441483e+03 1.551585891902203e+03 + 1.551920225960758e+03 1.552250940311604e+03 1.552578036655905e+03 1.552901516701533e+03 1.553221382163073e+03 + 1.553537634761818e+03 1.553850276225772e+03 1.554159308289647e+03 1.554464732694865e+03 1.554766551189559e+03 + 1.555064765528572e+03 1.555359377473454e+03 1.555650388792468e+03 1.555937801260586e+03 1.556221616659488e+03 + 1.556501836777564e+03 1.556778463409917e+03 1.557051498358356e+03 1.557320943431401e+03 1.557586800444283e+03 + 1.557849071218940e+03 1.558107757584023e+03 1.558362861374890e+03 1.558614384433611e+03 1.558862328608964e+03 + 1.559106695756438e+03 1.559347487738230e+03 1.559584706423249e+03 1.559818353687112e+03 1.560048431412147e+03 + 1.560274941487391e+03 1.560497885808591e+03 1.560717266278204e+03 1.560933084805396e+03 1.561145343306044e+03 + 1.561354043702732e+03 1.561559187924758e+03 1.561760777908126e+03 1.561958815595552e+03 1.562153302936461e+03 + 1.562344241886987e+03 1.562531634409975e+03 1.562715482474979e+03 1.562895788058264e+03 1.563072553142803e+03 + 1.563245779718279e+03 1.563415469781085e+03 1.563581625334326e+03 1.563744248387813e+03 1.563903340958068e+03 + 1.564058905068325e+03 1.564210942748526e+03 1.564359456035321e+03 1.564504446972073e+03 1.564645917608853e+03 + 1.564783870002442e+03 1.564918306216331e+03 1.565049228320720e+03 1.565176638392519e+03 1.565300538515349e+03 + 1.565420930779540e+03 1.565537817282130e+03 1.565651200126870e+03 1.565761081424219e+03 1.565867463291344e+03 + 1.565970347852125e+03 1.566069737237150e+03 1.566165633583717e+03 1.566258039035835e+03 1.566346955744220e+03 + 1.566432385866300e+03 1.566514331566212e+03 1.566592795014803e+03 1.566667778389629e+03 1.566739283874957e+03 + 1.566807313661764e+03 1.566871869947734e+03 1.566932954937263e+03 1.566990570841457e+03 1.567044719878131e+03 + 1.567095404271811e+03 1.567142626253729e+03 1.567186388061831e+03 1.567226691940771e+03 1.567263540141913e+03 + 1.567296934923331e+03 1.567326878549808e+03 1.567353373292836e+03 1.567376421430620e+03 1.567396025248071e+03 + 1.567412187036812e+03 1.567424909095176e+03 1.567434193728203e+03 1.567440043247646e+03 1.567442459971967e+03 + 1.567441446226336e+03 1.567437004342634e+03 1.567429136659453e+03 1.567417845522091e+03 1.567403133282561e+03 + 1.567385002299581e+03 1.567363454938582e+03 1.567338493571702e+03 1.567310120577791e+03 1.567278338342408e+03 + 1.567243149257822e+03 1.567204555723011e+03 1.567162560143663e+03 1.567117164932177e+03 1.567068372507660e+03 + 1.567016185295929e+03 1.566960605729512e+03 1.566901636247646e+03 1.566839279296277e+03 1.566773537328063e+03 + 1.566704412802369e+03 1.566631908185271e+03 1.566556025949555e+03 1.566476768574717e+03 1.566394138546961e+03 + 1.566308138359204e+03 1.566218770511069e+03 1.566126037508891e+03 1.566029941865714e+03 1.565930486101294e+03 + 1.565827672742092e+03 1.565721504321283e+03 1.565611983378751e+03 1.565499112461087e+03 1.565382894121595e+03 + 1.565263330920288e+03 1.565140425423888e+03 1.565014180205826e+03 1.564884597846246e+03 1.564751680931997e+03 + 1.564615432056643e+03 1.564475853820452e+03 1.564332948830408e+03 1.564186719700199e+03 1.564037169050227e+03 + 1.563884299507601e+03 1.563728113706142e+03 1.563568614286379e+03 1.563405803895550e+03 1.563239685187607e+03 + 1.563070260823207e+03 1.562897533469719e+03 1.562721505801220e+03 1.562542180498501e+03 1.562359560249057e+03 + 1.562173647747097e+03 1.561984445693539e+03 1.561791956796009e+03 1.561596183768845e+03 1.561397129333092e+03 + 1.561194796216507e+03 1.560989187153558e+03 1.560780304885418e+03 1.560568152159974e+03 1.560352731731822e+03 + 1.560134046362267e+03 1.559912098819323e+03 1.559686891877715e+03 1.559458428318879e+03 1.559226710930956e+03 + 1.558991742508803e+03 1.558753525853981e+03 1.558512063774766e+03 1.558267359086140e+03 1.558019414609795e+03 + 1.557768233174136e+03 1.557513817614273e+03 1.557256170772030e+03 1.556995295495938e+03 1.556731194641239e+03 + 1.556463871069885e+03 1.556193327650536e+03 1.555919567258564e+03 1.555642592776049e+03 1.555362407091783e+03 + 1.555079013101264e+03 1.554792413706704e+03 1.554502611817021e+03 1.554209610347846e+03 1.553913412221517e+03 + 1.553614020367084e+03 1.553311437720305e+03 1.553005667223649e+03 1.552696711826295e+03 1.552384574484129e+03 + 1.552069258159750e+03 1.551750765822466e+03 1.551429100448294e+03 1.551104265019960e+03 1.550776262526902e+03 + 1.550445095965265e+03 1.550110768337907e+03 1.549773282654394e+03 1.549432641931000e+03 1.549088849190713e+03 + 1.548741907463227e+03 1.548391819784946e+03 1.548038589198987e+03 1.547682218755173e+03 1.547322711510039e+03 + 1.546960070526829e+03 1.546594298875496e+03 1.546225399632705e+03 1.545853375881829e+03 1.545478230712950e+03 + 1.545099967222861e+03 1.544718588515066e+03 1.544334097699777e+03 1.543946497893915e+03 1.543555792221112e+03 + 1.543161983811711e+03 1.542765075802762e+03 1.542365071338026e+03 1.541961973567975e+03 1.541555785649789e+03 + 1.541146510747358e+03 1.540734152031283e+03 1.540318712678874e+03 1.539900195874149e+03 1.539478604807839e+03 + 1.539053942677383e+03 1.538626212686929e+03 1.538195418047336e+03 1.537761561976173e+03 1.537324647697717e+03 + 1.536884678442957e+03 1.536441657449592e+03 1.535995587962026e+03 1.535546473231378e+03 1.535094316515475e+03 + 1.534639121078853e+03 1.534180890192759e+03 1.533719627135150e+03 1.533255335190690e+03 1.532788017650757e+03 + 1.532317677813435e+03 1.531844318983518e+03 1.531367944472514e+03 1.530888557598635e+03 1.530406161686807e+03 + 1.529920760068664e+03 1.529432356082550e+03 1.528940953073517e+03 1.528446554393331e+03 1.527949163400464e+03 + 1.527448783460099e+03 1.526945417944129e+03 1.526439070231157e+03 1.525929743706494e+03 1.525417441762163e+03 + 1.524902167796895e+03 1.524383925216131e+03 1.523862717432025e+03 1.523338547863434e+03 1.522811419935932e+03 + 1.522281337081799e+03 1.521748302740024e+03 1.521212320356308e+03 1.520673393383061e+03 1.520131525279401e+03 + 1.519586719511159e+03 1.519038979550873e+03 1.518488308877793e+03 1.517934710977876e+03 1.517378189343791e+03 + 1.516818747474916e+03 1.516256388877339e+03 1.515691117063858e+03 1.515122935553979e+03 1.514551847873920e+03 + 1.513977857556607e+03 1.513400968141679e+03 1.512821183175479e+03 1.512238506211065e+03 1.511652940808203e+03 + 1.511064490533368e+03 1.510473158959745e+03 1.509878949667230e+03 1.509281866242427e+03 1.508681912278651e+03 + 1.508079091375926e+03 1.507473407140987e+03 1.506864863187277e+03 1.506253463134950e+03 1.505639210610869e+03 + 1.505022109248608e+03 1.504402162688449e+03 1.503779374577385e+03 1.503153748569118e+03 1.502525288324061e+03 + 1.501893997509335e+03 1.501259879798773e+03 1.500622938872914e+03 1.499983178419011e+03 1.499340602131025e+03 + 1.498695213709626e+03 1.498047016862194e+03 1.497396015302820e+03 1.496742212752304e+03 1.496085612938155e+03 + 1.495426219594593e+03 1.494764036462547e+03 1.494099067289655e+03 1.493431315830267e+03 1.492760785845442e+03 + 1.492087481102946e+03 1.491411405377259e+03 1.490732562449567e+03 1.490050956107769e+03 1.489366590146471e+03 + 1.488679468366991e+03 1.487989594577355e+03 1.487296972592300e+03 1.486601606233272e+03 1.485903499328426e+03 + 1.485202655712629e+03 1.484499079227457e+03 1.483792773721193e+03 1.483083743048834e+03 1.482371991072084e+03 + 1.481657521659358e+03 1.480940338685780e+03 1.480220446033183e+03 1.479497847590113e+03 1.478772547251821e+03 + 1.478044548920272e+03 1.477313856504138e+03 1.476580473918802e+03 1.475844405086357e+03 1.475105653935605e+03 + 1.474364224402058e+03 1.473620120427938e+03 1.472873345962177e+03 1.472123904960415e+03 1.471371801385004e+03 + 1.470617039205005e+03 1.469859622396187e+03 1.469099554941032e+03 1.468336840828730e+03 1.467571484055180e+03 + 1.466803488622991e+03 1.466032858541484e+03 1.465259597826687e+03 1.464483710501340e+03 1.463705200594890e+03 + 1.462924072143496e+03 1.462140329190026e+03 1.461353975784058e+03 1.460565015981880e+03 1.459773453846489e+03 + 1.458979293447591e+03 1.458182538861605e+03 1.457383194171656e+03 1.456581263467582e+03 1.455776750845927e+03 + 1.454969660409948e+03 1.454159996269611e+03 1.453347762541590e+03 1.452532963349272e+03 1.451715602822750e+03 + 1.450895685098830e+03 1.450073214321026e+03 1.449248194639563e+03 1.448420630211373e+03 1.447590525200101e+03 + 1.446757883776100e+03 1.445922710116434e+03 1.445085008404874e+03 1.444244782831905e+03 1.443402037594718e+03 + 1.442556776897215e+03 1.441709004950008e+03 1.440858725970420e+03 1.440005944182481e+03 1.439150663816933e+03 + 1.438292889111226e+03 1.437432624309523e+03 1.436569873662692e+03 1.435704641428314e+03 1.434836931870678e+03 + 1.433966749260786e+03 1.433094097876346e+03 1.432218982001777e+03 1.431341405928208e+03 1.430461373953479e+03 + 1.429578890382137e+03 1.428693959525441e+03 1.427806585701360e+03 1.426916773234569e+03 1.426024526456458e+03 + 1.425129849705122e+03 1.424232747325370e+03 1.423333223668719e+03 1.422431283093393e+03 1.421526929964331e+03 + 1.420620168653178e+03 1.419711003538289e+03 1.418799439004731e+03 1.417885479444278e+03 1.416969129255415e+03 + 1.416050392843337e+03 1.415129274619950e+03 1.414205779003866e+03 1.413279910420411e+03 1.412351673301618e+03 + 1.411421072086230e+03 1.410488111219700e+03 1.409552795154193e+03 1.408615128348581e+03 1.407675115268446e+03 + 1.406732760386080e+03 1.405788068180486e+03 1.404841043137375e+03 1.403891689749170e+03 1.402940012515001e+03 + 1.401986015940709e+03 1.401029704538846e+03 1.400071082828672e+03 1.399110155336157e+03 1.398146926593981e+03 + 1.397181401141535e+03 1.396213583524918e+03 1.395243478296938e+03 1.394271090017116e+03 1.393296423251680e+03 + 1.392319482573570e+03 1.391340272562432e+03 1.390358797804626e+03 1.389375062893219e+03 1.388389072427989e+03 + 1.387400831015423e+03 1.386410343268718e+03 1.385417613807782e+03 1.384422647259231e+03 1.383425448256391e+03 + 1.382426021439299e+03 1.381424371454700e+03 1.380420502956051e+03 1.379414420603515e+03 1.378406129063970e+03 + 1.377395633010999e+03 1.376382937124898e+03 1.375368046092671e+03 1.374350964608031e+03 1.373331697371403e+03 + 1.372310249089921e+03 1.371286624477428e+03 1.370260828254477e+03 1.369232865148331e+03 1.368202739892964e+03 + 1.367170457229056e+03 1.366136021904002e+03 1.365099438671902e+03 1.364060712293568e+03 1.363019847536522e+03 + 1.361976849174995e+03 1.360931721989928e+03 1.359884470768972e+03 1.358835100306487e+03 1.357783615403544e+03 + 1.356730020867921e+03 1.355674321514110e+03 1.354616522163310e+03 1.353556627643430e+03 1.352494642789090e+03 + 1.351430572441617e+03 1.350364421449050e+03 1.349296194666138e+03 1.348225896954338e+03 1.347153533181818e+03 + 1.346079108223457e+03 1.345002626960841e+03 1.343924094282267e+03 1.342843515082743e+03 1.341760894263984e+03 + 1.340676236734416e+03 1.339589547409177e+03 1.338500831210112e+03 1.337410093065776e+03 1.336317337911434e+03 + 1.335222570689062e+03 1.334125796347346e+03 1.333027019841677e+03 1.331926246134163e+03 1.330823480193616e+03 + 1.329718726995561e+03 1.328611991522230e+03 1.327503278762568e+03 1.326392593712228e+03 1.325279941373571e+03 + 1.324165326755672e+03 1.323048754874311e+03 1.321930230751983e+03 1.320809759417887e+03 1.319687345907936e+03 + 1.318562995264752e+03 1.317436712537665e+03 1.316308502782716e+03 1.315178371062656e+03 1.314046322446946e+03 + 1.312912362011755e+03 1.311776494839963e+03 1.310638726021160e+03 1.309499060651645e+03 1.308357503834428e+03 + 1.307214060679228e+03 1.306068736302473e+03 1.304921535827301e+03 1.303772464383560e+03 1.302621527107810e+03 + 1.301468729143317e+03 1.300314075640058e+03 1.299157571754721e+03 1.297999222650704e+03 1.296839033498112e+03 + 1.295677009473761e+03 1.294513155761180e+03 1.293347477550602e+03 1.292179980038974e+03 1.291010668429951e+03 + 1.289839547933899e+03 1.288666623767893e+03 1.287491901155716e+03 1.286315385327865e+03 1.285137081521542e+03 + 1.283956994980662e+03 1.282775130955849e+03 1.281591494704436e+03 1.280406091490466e+03 1.279218926584693e+03 + 1.278030005264579e+03 1.276839332814297e+03 1.275646914524728e+03 1.274452755693465e+03 1.273256861624810e+03 + 1.272059237629775e+03 1.270859889026079e+03 1.269658821138155e+03 1.268456039297144e+03 1.267251548840895e+03 + 1.266045355113969e+03 1.264837463467636e+03 1.263627879259876e+03 1.262416607855379e+03 1.261203654625543e+03 + 1.259989024948479e+03 1.258772724209004e+03 1.257554757798647e+03 1.256335131115646e+03 1.255113849564950e+03 + 1.253890918558217e+03 1.252666343513813e+03 1.251440129856817e+03 1.250212283019015e+03 1.248982808438904e+03 + 1.247751711561691e+03 1.246518997839292e+03 1.245284672730334e+03 1.244048741700151e+03 1.242811210220790e+03 + 1.241572083771006e+03 1.240331367836264e+03 1.239089067908740e+03 1.237845189487317e+03 1.236599738077590e+03 + 1.235352719191863e+03 1.234104138349150e+03 1.232854001075175e+03 1.231602312902370e+03 1.230349079369880e+03 + 1.229094306023557e+03 1.227837998415964e+03 1.226580162106373e+03 1.225320802660766e+03 1.224059925651835e+03 + 1.222797536658982e+03 1.221533641268318e+03 1.220268245072664e+03 1.219001353671552e+03 1.217732972671222e+03 + 1.216463107684624e+03 1.215191764331420e+03 1.213918948237977e+03 1.212644665037377e+03 1.211368920369408e+03 + 1.210091719880570e+03 1.208813069224072e+03 1.207532974059833e+03 1.206251440054480e+03 1.204968472881353e+03 + 1.203684078220499e+03 1.202398261758676e+03 1.201111029189351e+03 1.199822386212701e+03 1.198532338535615e+03 + 1.197240891871687e+03 1.195948051941225e+03 1.194653824471246e+03 1.193358215195474e+03 1.192061229854346e+03 + 1.190762874195007e+03 1.189463153971313e+03 1.188162074943828e+03 1.186859642879827e+03 1.185555863553295e+03 + 1.184250742744927e+03 1.182944286242125e+03 1.181636499839004e+03 1.180327389336388e+03 1.179016960541809e+03 + 1.177705219269511e+03 1.176392171340446e+03 1.175077822582277e+03 1.173762178829377e+03 1.172445245922827e+03 + 1.171127029710419e+03 1.169807536046655e+03 1.168486770792745e+03 1.167164739816612e+03 1.165841448992886e+03 + 1.164516904202907e+03 1.163191111334726e+03 1.161864076283103e+03 1.160535804949508e+03 1.159206303242120e+03 + 1.157875577075829e+03 1.156543632372233e+03 1.155210475059642e+03 1.153876111073074e+03 1.152540546354257e+03 + 1.151203786851631e+03 1.149865838520342e+03 1.148526707322247e+03 1.147186399225916e+03 1.145844920206624e+03 + 1.144502276246358e+03 1.143158473333815e+03 1.141813517464402e+03 1.140467414640234e+03 1.139120170870139e+03 + 1.137771792169650e+03 1.136422284561014e+03 1.135071654073185e+03 1.133719906741829e+03 1.132367048609320e+03 + 1.131013085724743e+03 1.129658024143891e+03 1.128301869929270e+03 1.126944629150092e+03 1.125586307882280e+03 + 1.124226912208469e+03 1.122866448218001e+03 1.121504922006928e+03 1.120142339678013e+03 1.118778707340729e+03 + 1.117414031111256e+03 1.116048317112488e+03 1.114681571474025e+03 1.113313800332179e+03 1.111945009829970e+03 + 1.110575206117129e+03 1.109204395350097e+03 1.107832583692024e+03 1.106459777312770e+03 1.105085982388904e+03 + 1.103711205103706e+03 1.102335451647166e+03 1.100958728215983e+03 1.099581041013564e+03 1.098202396250028e+03 + 1.096822800142205e+03 1.095442258913632e+03 1.094060778794555e+03 1.092678366021934e+03 1.091295026839436e+03 + 1.089910767497437e+03 1.088525594253023e+03 1.087139513369993e+03 1.085752531118851e+03 1.084364653776815e+03 + 1.082975887627809e+03 1.081586238962469e+03 1.080195714078142e+03 1.078804319278880e+03 1.077412060875450e+03 + 1.076018945185327e+03 1.074624978532693e+03 1.073230167248444e+03 1.071834517670182e+03 1.070438036142223e+03 + 1.069040729015589e+03 1.067642602648012e+03 1.066243663403937e+03 1.064843917654515e+03 1.063443371777609e+03 + 1.062042032157791e+03 1.060639905186343e+03 1.059236997261256e+03 1.057833314787232e+03 1.056428864175682e+03 + 1.055023651844726e+03 1.053617684219196e+03 1.052210967730631e+03 1.050803508817282e+03 1.049395313897890e+03 + 1.047986388534756e+03 1.046576737255851e+03 1.045166364529164e+03 1.043755274824231e+03 1.042343472612131e+03 + 1.040930962365484e+03 1.039517748558457e+03 1.038103835666756e+03 1.036689228167636e+03 1.035273930539893e+03 + 1.033857947263865e+03 1.032441282821436e+03 1.031023941696033e+03 1.029605928372625e+03 1.028187247337727e+03 + 1.026767903079397e+03 1.025347900087235e+03 1.023927242852386e+03 1.022505935867538e+03 1.021083983626923e+03 + 1.019661390626317e+03 1.018238161363038e+03 1.016814300335948e+03 1.015389812045455e+03 1.013964700993507e+03 + 1.012538971683598e+03 1.011112628620765e+03 1.009685676311588e+03 1.008258119264191e+03 1.006829961988242e+03 + 1.005401208994952e+03 1.003971864797076e+03 1.002541933908912e+03 1.001111420846301e+03 9.996803301266303e+02 + 9.982486662688275e+02 9.968164337933661e+02 9.953836372222621e+02 9.939502810790750e+02 9.925163698889086e+02 + 9.910819081784098e+02 9.896469004757686e+02 9.882113513107199e+02 9.867752652145410e+02 9.853386467200531e+02 + 9.839015003616214e+02 9.824638306751541e+02 9.810256421981031e+02 9.795869394694643e+02 9.781477270297768e+02 + 9.767080094211232e+02 9.752677911871300e+02 9.738270768729670e+02 9.723858710253478e+02 9.709441781925295e+02 + 9.695020029243127e+02 9.680593497720415e+02 9.666162232886040e+02 9.651726280284314e+02 9.637285685474986e+02 + 9.622840494033246e+02 9.608390751549712e+02 9.593936503630440e+02 9.579477795896925e+02 9.565014673986094e+02 + 9.550547183550314e+02 9.536075370257383e+02 9.521599279790540e+02 9.507118957848456e+02 9.492634450145238e+02 + 9.478145802410424e+02 9.463653060389005e+02 9.449156269841388e+02 9.434655476543426e+02 9.420150726286407e+02 + 9.405642064877048e+02 9.391129538137513e+02 9.376613191905399e+02 9.362093072033728e+02 9.347569224390970e+02 + 9.333041694861028e+02 9.318510529343232e+02 9.303975773752362e+02 9.289437474018629e+02 9.274895676087672e+02 + 9.260350425920570e+02 9.245801769493847e+02 9.231249752799448e+02 9.216694421844763e+02 9.202135822652619e+02 + 9.187574001261273e+02 9.173009003724419e+02 9.158440876111187e+02 9.143869664506148e+02 9.129295415009306e+02 + 9.114718173736089e+02 9.100137986817383e+02 9.085554900399494e+02 9.070968960644165e+02 9.056380213728581e+02 + 9.041788705845360e+02 9.027194483202552e+02 9.012597592023648e+02 8.997998078547574e+02 8.983395989028686e+02 + 8.968791369736786e+02 8.954184266957105e+02 8.939574726990309e+02 8.924962796152502e+02 8.910348520775226e+02 + 8.895731947205452e+02 8.881113121805595e+02 8.866492090953504e+02 8.851868901042455e+02 8.837243598481174e+02 + 8.822616229693809e+02 8.807986841119955e+02 8.793355479214636e+02 8.778722190448314e+02 8.764087021306887e+02 + 8.749450018291686e+02 8.734811227919481e+02 8.720170696722481e+02 8.705528471248323e+02 8.690884598060085e+02 + 8.676239123736278e+02 8.661592094870851e+02 8.646943558073189e+02 8.632293559968109e+02 8.617642147195870e+02 + 8.602989366412162e+02 8.588335264288111e+02 8.573679887510280e+02 8.559023282780669e+02 8.544365496816713e+02 + 8.529706576351281e+02 8.515046568132680e+02 8.500385518924651e+02 8.485723475506371e+02 8.471060484672456e+02 + 8.456396593232956e+02 8.441731848013352e+02 8.427066295854568e+02 8.412399983612960e+02 8.397732958160319e+02 + 8.383065266383875e+02 8.368396955186294e+02 8.353728071485672e+02 8.339058662215547e+02 8.324388774324890e+02 + 8.309718454778108e+02 8.295047750555044e+02 8.280376708650979e+02 8.265705376076626e+02 8.251033799858133e+02 + 8.236362027037090e+02 8.221690104670519e+02 8.207018079830875e+02 8.192345999606056e+02 8.177673911099388e+02 + 8.163001861429635e+02 8.148329897731001e+02 8.133658067153123e+02 8.118986416861073e+02 8.104314994035359e+02 + 8.089643845871925e+02 8.074973019582153e+02 8.060302562392853e+02 8.045632521546285e+02 8.030962944300132e+02 + 8.016293877927517e+02 8.001625369717000e+02 7.986957466972576e+02 7.972290217013673e+02 7.957623667175162e+02 + 7.942957864807344e+02 7.928292857275953e+02 7.913628691962167e+02 7.898965416262595e+02 7.884303077589279e+02 + 7.869641723369706e+02 7.854981401046790e+02 7.840322158078881e+02 7.825664041939773e+02 7.811007100118686e+02 + 7.796351380120283e+02 7.781696929464658e+02 7.767043795687346e+02 7.752392026339312e+02 7.737741668986956e+02 + 7.723092771212124e+02 7.708445380612087e+02 7.693799544799557e+02 7.679155311402681e+02 7.664512728065041e+02 + 7.649871842445651e+02 7.635232702218972e+02 7.620595355074889e+02 7.605959848718730e+02 7.591326230871256e+02 + 7.576694549268664e+02 7.562064851662584e+02 7.547437185820088e+02 7.532811599523681e+02 7.518188140571300e+02 + 7.503566856776325e+02 7.488947795967565e+02 7.474331005989271e+02 7.459716534701122e+02 7.445104429978242e+02 + 7.430494739711182e+02 7.415887511805935e+02 7.401282794183929e+02 7.386680634782024e+02 7.372081081552518e+02 + 7.357484182463149e+02 7.342889985497084e+02 7.328298538652926e+02 7.313709889944722e+02 7.299124087401947e+02 + 7.284541179069513e+02 7.269961213007771e+02 7.255384237292504e+02 7.240810300014931e+02 7.226239449281712e+02 + 7.211671733214938e+02 7.197107199952134e+02 7.182545897646269e+02 7.167987874465738e+02 7.153433178594373e+02 + 7.138881858231457e+02 7.124333961591685e+02 7.109789536905207e+02 7.095248632417597e+02 7.080711296389870e+02 + 7.066177577098478e+02 7.051647522835304e+02 7.037121181907675e+02 7.022598602638342e+02 7.008079833365500e+02 + 6.993564922442782e+02 6.979053918239249e+02 6.964546869139400e+02 6.950043823543177e+02 6.935544829865950e+02 + 6.921049936538523e+02 6.906559192007142e+02 6.892072644733491e+02 6.877590343194680e+02 6.863112335883264e+02 + 6.848638671307228e+02 6.834169397989994e+02 6.819704564470420e+02 6.805244219302806e+02 6.790788411056876e+02 + 6.776337188317796e+02 6.761890599686175e+02 6.747448693778041e+02 6.733011519224871e+02 6.718579124673579e+02 + 6.704151558786504e+02 6.689728870241429e+02 6.675311107731571e+02 6.660898319965579e+02 6.646490555667547e+02 + 6.632087863576994e+02 6.617690292448882e+02 6.603297891053608e+02 6.588910708177000e+02 6.574528792620325e+02 + 6.560152193200289e+02 6.545780958749028e+02 6.531415138114120e+02 6.517054780158572e+02 6.502699933760831e+02 + 6.488350647814780e+02 6.474006971229736e+02 6.459668952930450e+02 6.445336641857116e+02 6.431010086965356e+02 + 6.416689337226230e+02 6.402374441626239e+02 6.388065449167315e+02 6.373762408866819e+02 6.359465369757564e+02 + 6.345174380887786e+02 6.330889491321157e+02 6.316610750136796e+02 6.302338206429247e+02 6.288071909308491e+02 + 6.273811907899951e+02 6.259558251344477e+02 6.245310988798360e+02 6.231070169433332e+02 6.216835842436550e+02 + 6.202608057010611e+02 6.188386862373554e+02 6.174172307758844e+02 6.159964442415383e+02 6.145763315607522e+02 + 6.131568976615030e+02 6.117381474733122e+02 6.103200859272448e+02 6.089027179559087e+02 6.074860484934565e+02 + 6.060700824755835e+02 6.046548248395288e+02 6.032402805240755e+02 6.018264544695495e+02 6.004133516178208e+02 + 5.990009769123031e+02 5.975893352979532e+02 5.961784317212720e+02 5.947682711303036e+02 5.933588584746357e+02 + 5.919501987053994e+02 5.905422967752705e+02 5.891351576384668e+02 5.877287862507508e+02 5.863231875694282e+02 + 5.849183665533477e+02 5.835143281629030e+02 5.821110773600302e+02 5.807086191082091e+02 5.793069583724634e+02 + 5.779061001193606e+02 5.765060493170109e+02 5.751068109350690e+02 5.737083899447330e+02 5.723107913187440e+02 + 5.709140200313871e+02 5.695180810584912e+02 5.681229793774282e+02 5.667287199671144e+02 5.653353078080089e+02 + 5.639427478821145e+02 5.625510451729782e+02 5.611602046656897e+02 5.597702313468828e+02 5.583811302047351e+02 + 5.569929062289672e+02 5.556055644108436e+02 5.542191097431725e+02 5.528335472203050e+02 5.514488818381369e+02 + 5.500651185941068e+02 5.486822624871968e+02 5.473003185179330e+02 5.459192916883851e+02 5.445391870021655e+02 + 5.431600094644319e+02 5.417817640818839e+02 5.404044558627653e+02 5.390280898168637e+02 5.376526709555103e+02 + 5.362782042915790e+02 5.349046948394886e+02 5.335321476152006e+02 5.321605676362202e+02 5.307899599215965e+02 + 5.294203294919217e+02 5.280516813693320e+02 5.266840205775071e+02 5.253173521416702e+02 5.239516810885877e+02 + 5.225870124465707e+02 5.212233512454725e+02 5.198607025166908e+02 5.184990712931668e+02 5.171384626093851e+02 + 5.157788815013741e+02 5.144203330067055e+02 5.130628221644946e+02 5.117063540154008e+02 5.103509336016263e+02 + 5.089965659669175e+02 5.076432561565640e+02 5.062910092173990e+02 5.049398301977998e+02 5.035897241476866e+02 + 5.022406961185235e+02 5.008927511633182e+02 4.995458943366220e+02 4.982001306945292e+02 4.968554652946787e+02 + 4.955119031962524e+02 4.941694494599757e+02 4.928281091481178e+02 4.914878873244913e+02 4.901487890544524e+02 + 4.888108194049014e+02 4.874739834442815e+02 4.861382862425793e+02 4.848037328713260e+02 4.834703284035954e+02 + 4.821380779140055e+02 4.808069864787175e+02 4.794770591754360e+02 4.781483010834104e+02 4.768207172834317e+02 + 4.754943128578365e+02 4.741690928905032e+02 4.728450624668552e+02 4.715222266738587e+02 4.702005906000235e+02 + 4.688801593354034e+02 4.675609379715956e+02 4.662429316017405e+02 4.649261453205227e+02 4.636105842241698e+02 + 4.622962534104534e+02 4.609831579786886e+02 4.596713030297340e+02 4.583606936659914e+02 4.570513349914071e+02 + 4.557432321114703e+02 4.544363901332138e+02 4.531308141652141e+02 4.518265093175915e+02 4.505234807020092e+02 + 4.492217334316751e+02 4.479212726213398e+02 4.466221033872973e+02 4.453242308473862e+02 4.440276601209875e+02 + 4.427323963290266e+02 4.414384445939725e+02 4.401458100398370e+02 4.388544977921764e+02 4.375645129780900e+02 + 4.362758607262207e+02 4.349885461667554e+02 4.337025744314242e+02 4.324179506535007e+02 4.311346799678025e+02 + 4.298527675106906e+02 4.285722184200691e+02 4.272930378353866e+02 4.260152308976346e+02 4.247388027493482e+02 + 4.234637585346064e+02 4.221901033990317e+02 4.209178424897899e+02 4.196469809555908e+02 4.183775239466873e+02 + 4.171094766148764e+02 4.158428441134982e+02 4.145776315974367e+02 4.133138442231195e+02 4.120514871485177e+02 + 4.107905655331455e+02 4.095310845380616e+02 4.082730493258674e+02 4.070164650607085e+02 4.057613369082738e+02 + 4.045076700357962e+02 4.032554696120511e+02 4.020047408073589e+02 4.007554887935824e+02 3.995077187441286e+02 + 3.982614358339480e+02 3.970166452395346e+02 3.957733521389259e+02 3.945315617117033e+02 3.932912791389912e+02 + 3.920525096034583e+02 3.908152582893162e+02 3.895795303823206e+02 3.883453310697706e+02 3.871126655405087e+02 + 3.858815389849212e+02 3.846519565949380e+02 3.834239235640323e+02 3.821974450872211e+02 3.809725263610652e+02 + 3.797491725836686e+02 3.785273889546788e+02 3.773071806752873e+02 3.760885529482291e+02 3.748715109777822e+02 + 3.736560599697692e+02 3.724422051315553e+02 3.712299516720498e+02 3.700193048017055e+02 3.688102697325187e+02 + 3.676028516780295e+02 3.663970558533210e+02 3.651928874750207e+02 3.639903517612993e+02 3.627894539318706e+02 + 3.615901992079928e+02 3.603925928124674e+02 3.591966399696389e+02 3.580023459053963e+02 3.568097158471716e+02 + 3.556187550239405e+02 3.544294686662223e+02 3.532418620060801e+02 3.520559402771199e+02 3.508717087144923e+02 + 3.496891725548904e+02 3.485083370365518e+02 3.473292073992571e+02 3.461517888843309e+02 3.449760867346407e+02 + 3.438021061945983e+02 3.426298525101589e+02 3.414593309288210e+02 3.402905466996269e+02 3.391235050731623e+02 + 3.379582113015570e+02 3.367946706384836e+02 3.356328883391590e+02 3.344728696603431e+02 3.333146198603399e+02 + 3.321581441989965e+02 3.310034479377038e+02 3.298505363393963e+02 3.286994146685523e+02 3.275500881911931e+02 + 3.264025621748842e+02 3.252568418887342e+02 3.241129326033955e+02 3.229708395910641e+02 3.218305681254797e+02 + 3.206921234819250e+02 3.195555109372272e+02 3.184207357697562e+02 3.172878032594259e+02 3.161567186876940e+02 + 3.150274873375612e+02 3.139001144935722e+02 3.127746054418153e+02 3.116509654699221e+02 3.105291998670680e+02 + 3.094093139239718e+02 3.082913129328962e+02 3.071752021876472e+02 3.060609869835743e+02 3.049486726175709e+02 + 3.038382643880739e+02 3.027297675950632e+02 3.016231875400634e+02 3.005185295261418e+02 2.994157988579094e+02 + 2.983150008415209e+02 2.972161407846750e+02 2.961192239966130e+02 2.950242557881208e+02 2.939312414715272e+02 + 2.928401863607048e+02 2.917510957710699e+02 2.906639750195822e+02 2.895788294247451e+02 2.884956643066055e+02 + 2.874144849867538e+02 2.863352967883243e+02 2.852581050359946e+02 2.841829150559857e+02 2.831097321760628e+02 + 2.820385617255341e+02 2.809694090352515e+02 2.799022794376108e+02 2.788371782665511e+02 2.777741108575549e+02 + 2.767130825476488e+02 2.756540986754025e+02 2.745971645809293e+02 2.735422856058867e+02 2.724894670934750e+02 + 2.714387143884384e+02 2.703900328370648e+02 2.693434277871856e+02 2.682989045881756e+02 2.672564685909533e+02 + 2.662161251479810e+02 2.651778796132642e+02 2.641417373423522e+02 2.631077036923379e+02 2.620757840218578e+02 + 2.610459836910915e+02 2.600183080617631e+02 2.589927624971394e+02 2.579693523620314e+02 2.569480830227931e+02 + 2.559289598473227e+02 2.549119882050614e+02 2.538971734669946e+02 2.528845210056507e+02 2.518740361951020e+02 + 2.508657244109642e+02 2.498595910303967e+02 2.488556414321026e+02 2.478538809963281e+02 2.468543151048638e+02 + 2.458569491410431e+02 2.448617884897432e+02 2.438688385373852e+02 2.428781046719333e+02 2.418895922828956e+02 + 2.409033067613238e+02 2.399192534998131e+02 2.389374378925019e+02 2.379578653350729e+02 2.369805412247519e+02 + 2.360054709603084e+02 2.350326599420553e+02 2.340621135718494e+02 2.330938372530911e+02 2.321278363907239e+02 + 2.311641163912353e+02 2.302026826626565e+02 2.292435406145617e+02 2.282866956580692e+02 2.273321532058407e+02 + 2.263799186720815e+02 2.254299974725404e+02 2.244823950245099e+02 2.235371167468261e+02 2.225941680598685e+02 + 2.216535543855603e+02 2.207152811473682e+02 2.197793537703028e+02 2.188457776809178e+02 2.179145583073106e+02 + 2.169857010791227e+02 2.160592114275385e+02 2.151350947852860e+02 2.142133565866376e+02 2.132940022674083e+02 + 2.123770372649571e+02 2.114624670181867e+02 2.105502969675431e+02 2.096405325550162e+02 2.087331792241393e+02 + 2.078282424199890e+02 2.069257275891860e+02 2.060256401798943e+02 2.051279856418216e+02 2.042327694262190e+02 + 2.033399969858813e+02 2.024496737751469e+02 2.015618052498977e+02 2.006763968675590e+02 1.997934540871004e+02 + 1.989129823690343e+02 1.980349871754169e+02 1.971594739698481e+02 1.962864482174713e+02 1.954159153849736e+02 + 1.945478809405854e+02 1.936823503540812e+02 1.928193290967781e+02 1.919588226415381e+02 1.911008364627658e+02 + 1.902453760364096e+02 1.893924468399617e+02 1.885420543524577e+02 1.876942040544768e+02 1.868489014281417e+02 + 1.860061519571189e+02 1.851659611266184e+02 1.843283344233937e+02 1.834932773357418e+02 1.826607953535034e+02 + 1.818308939680629e+02 1.810035786723481e+02 1.801788549608304e+02 1.793567283295249e+02 1.785372042759901e+02 + 1.777202882993282e+02 1.769059859001850e+02 1.760943025807497e+02 1.752852438447554e+02 1.744788151974785e+02 + 1.736750221457390e+02 1.728738701979007e+02 1.720753648638706e+02 1.712795116550998e+02 1.704863160845825e+02 + 1.696957836668566e+02 1.689079199180039e+02 1.681227303556493e+02 1.673402204989617e+02 1.665603958686532e+02 + 1.657832619869799e+02 1.650088243777409e+02 1.642370885662795e+02 1.634680600794823e+02 1.627017444457793e+02 + 1.619381471951445e+02 1.611772738590951e+02 1.604191299706921e+02 1.596637210645399e+02 1.589110526767867e+02 + 1.581611303451241e+02 1.574139596087874e+02 1.566695460085554e+02 1.559278950867503e+02 1.551890123872385e+02 + 1.544529034554292e+02 1.537195738382757e+02 1.529890290842748e+02 1.522612747434666e+02 1.515363163674351e+02 + 1.508141595093076e+02 1.500948097237555e+02 1.493782725669932e+02 1.486645535967789e+02 1.479536583724143e+02 + 1.472455924547449e+02 1.465403614061596e+02 1.458379707905909e+02 1.451384261735148e+02 1.444417331219514e+02 + 1.437478972044633e+02 1.430569239911578e+02 1.423688190536853e+02 1.416835879652396e+02 1.410012363005585e+02 + 1.403217696359229e+02 1.396451935491577e+02 1.389715136196312e+02 1.383007354282553e+02 1.376328645574854e+02 + 1.369679065913208e+02 1.363058671153038e+02 1.356467517165207e+02 1.349905659836014e+02 1.343373155067194e+02 + 1.336870058775913e+02 1.330396426894780e+02 1.323952315371832e+02 1.317537780170550e+02 1.311152877269845e+02 + 1.304797662664065e+02 1.298472192362996e+02 1.292176522391855e+02 1.285910708791301e+02 1.279674807617425e+02 + 1.273468874941753e+02 1.267292966851250e+02 1.261147139448316e+02 1.255031448850783e+02 1.248945951191923e+02 + 1.242890702620443e+02 1.236865759300485e+02 1.230871177411627e+02 1.224907013148884e+02 1.218973322722703e+02 + 1.213070162358971e+02 1.207197588299010e+02 1.201355656799576e+02 1.195544424132864e+02 1.189763946586499e+02 + 1.184014280463548e+02 1.178295482082510e+02 1.172607607777323e+02 1.166950713897357e+02 1.161324856807421e+02 + 1.155730092887757e+02 1.150166478534045e+02 1.144634070157400e+02 1.139132924184372e+02 1.133663097056950e+02 + 1.128224645232555e+02 1.122817625184044e+02 1.117442093399712e+02 1.112098106383290e+02 1.106785720653942e+02 + 1.101504843345202e+02 1.096253193854976e+02 1.091027814759659e+02 1.085828903190926e+02 1.080656662057070e+02 + 1.075510744401853e+02 1.070391017583160e+02 1.065297369211215e+02 1.060229642403793e+02 1.055187689946627e+02 + 1.050171373101604e+02 1.045180558156006e+02 1.040215103049707e+02 1.035274865113781e+02 1.030359706887152e+02 + 1.025469492169604e+02 1.020604083357866e+02 1.015763340040288e+02 1.010947131078929e+02 1.006155327791835e+02 + 1.001387792631148e+02 9.966443911893010e+01 9.919249927205091e+01 9.872294669690289e+01 9.825576811144268e+01 + 9.779095024426459e+01 9.732848086108395e+01 9.686834738339628e+01 9.641053663288847e+01 9.595503591883143e+01 + 9.550183276437639e+01 9.505091470489599e+01 9.460226894357737e+01 9.415588307372171e+01 9.371174549820027e+01 + 9.326984390100915e+01 9.283016578095182e+01 9.239269910989660e+01 9.195743199867270e+01 9.152435246657959e+01 + 9.109344822825337e+01 9.066470776170968e+01 9.023811990175319e+01 8.981367265385576e+01 8.939135422700863e+01 + 8.897115319588202e+01 8.855305819940260e+01 8.813705766268812e+01 8.772313993524557e+01 8.731129428898021e+01 + 8.690150981214184e+01 8.649377498492467e+01 8.608807868460502e+01 8.568441000539183e+01 8.528275807208179e+01 + 8.488311171021131e+01 8.448546000255536e+01 8.408979283578468e+01 8.369609949978657e+01 8.330436902264381e+01 + 8.291459088961614e+01 8.252675470341519e+01 8.214085000107356e+01 8.175686603719873e+01 8.137479266933553e+01 + 8.099462018292702e+01 8.061633811896954e+01 8.023993612969721e+01 7.986540422509246e+01 7.949273245617202e+01 + 7.912191071864751e+01 7.875292880591886e+01 7.838577728963824e+01 7.802044667908689e+01 7.765692688210476e+01 + 7.729520814701189e+01 7.693528093921003e+01 7.657713574044320e+01 7.622076279877933e+01 7.586615250876412e+01 + 7.551329599462582e+01 7.516218394284439e+01 7.481280673973237e+01 7.446515517211270e+01 7.411922012543234e+01 + 7.377499243991551e+01 7.343246273248482e+01 7.309162206375170e+01 7.275246194060588e+01 7.241497325488510e+01 + 7.207914691168762e+01 7.174497413637995e+01 7.141244624067238e+01 7.108155440657860e+01 7.075228964021176e+01 + 7.042464364044737e+01 7.009860816502822e+01 6.977417437950896e+01 6.945133371117183e+01 6.913007780419414e+01 + 6.881039831641085e+01 6.849228672098478e+01 6.817573455985929e+01 6.786073404036127e+01 6.754727706019318e+01 + 6.723535518365489e+01 6.692496029976250e+01 6.661608442214438e+01 6.630871955818391e+01 6.600285747074972e+01 + 6.569849025826812e+01 6.539561050984807e+01 6.509421028016476e+01 6.479428156422156e+01 6.449581665898590e+01 + 6.419880794007263e+01 6.390324769379086e+01 6.360912802573969e+01 6.331644161216560e+01 6.302518126952705e+01 + 6.273533924838438e+01 6.244690800283556e+01 6.215988021335375e+01 6.187424856554645e+01 6.159000558852496e+01 + 6.130714382209544e+01 6.102565642873360e+01 6.074553634647369e+01 6.046677613965124e+01 6.018936867893675e+01 + 5.991330696615304e+01 5.963858400265185e+01 5.936519255461710e+01 5.909312563142009e+01 5.882237675846172e+01 + 5.855293899151076e+01 5.828480526925385e+01 5.801796883717194e+01 5.775242299813667e+01 5.748816098906929e+01 + 5.722517588172157e+01 5.696346118973321e+01 5.670301063052477e+01 5.644381744585571e+01 5.618587497447161e+01 + 5.592917675378749e+01 5.567371639288440e+01 5.541948735564524e+01 5.516648303666721e+01 5.491469740133566e+01 + 5.466412430128952e+01 5.441475721341882e+01 5.416658984866251e+01 5.391961604526729e+01 5.367382965707854e+01 + 5.342922435049869e+01 5.318579394824101e+01 5.294353276046760e+01 5.270243471566913e+01 5.246249358126801e+01 + 5.222370341980431e+01 5.198605834991378e+01 5.174955243603662e+01 5.151417956992881e+01 5.127993401538280e+01 + 5.104681029539683e+01 5.081480246751264e+01 5.058390465007635e+01 5.035411117607305e+01 5.012541641928832e+01 + 4.989781463692880e+01 4.967129999443014e+01 4.944586717469857e+01 4.922151081792142e+01 4.899822516393252e+01 + 4.877600466591702e+01 4.855484391176263e+01 4.833473749525371e+01 4.811567985888949e+01 4.789766553100244e+01 + 4.768068948486052e+01 4.746474643299185e+01 4.724983089968822e+01 4.703593761581940e+01 4.682306140175855e+01 + 4.661119706938157e+01 4.640033923440899e+01 4.619048280117971e+01 4.598162297433280e+01 4.577375454810339e+01 + 4.556687232031752e+01 4.536097129194708e+01 4.515604651624491e+01 4.495209295916556e+01 4.474910546848848e+01 + 4.454707932343867e+01 4.434600983627007e+01 4.414589194663536e+01 4.394672075425581e+01 4.374849149110094e+01 + 4.355119939554362e+01 4.335483958155968e+01 4.315940720272008e+01 4.296489783321342e+01 4.277130684141869e+01 + 4.257862938067940e+01 4.238686082011235e+01 4.219599659307687e+01 4.200603211268383e+01 4.181696265307154e+01 + 4.162878369849639e+01 4.144149102922540e+01 4.125508008000694e+01 4.106954625154178e+01 4.088488514080404e+01 + 4.070109237453877e+01 4.051816351991027e+01 4.033609404369983e+01 4.015487975529847e+01 3.997451654390139e+01 + 3.979499995457292e+01 3.961632565249730e+01 3.943848943565658e+01 3.926148710146721e+01 3.908531435163689e+01 + 3.890996689581685e+01 3.873544082272831e+01 3.856173207783515e+01 3.838883637414560e+01 3.821674961156019e+01 + 3.804546776546066e+01 3.787498680517137e+01 3.770530255859592e+01 3.753641100849845e+01 3.736830845518836e+01 + 3.720099088344971e+01 3.703445420945200e+01 3.686869456603723e+01 3.670370808841574e+01 3.653949085950763e+01 + 3.637603888796111e+01 3.621334844811717e+01 3.605141592615973e+01 3.589023740445852e+01 3.572980904042850e+01 + 3.557012712196481e+01 3.541118795282225e+01 3.525298774403768e+01 3.509552267323749e+01 3.493878928773343e+01 + 3.478278404343990e+01 3.462750313614663e+01 3.447294293878365e+01 3.431909990161546e+01 3.416597046087814e+01 + 3.401355094900445e+01 3.386183779648810e+01 3.371082772101448e+01 3.356051721064496e+01 3.341090265530899e+01 + 3.326198061398263e+01 3.311374767636361e+01 3.296620040125966e+01 3.281933525310492e+01 3.267314891432770e+01 + 3.252763821351709e+01 3.238279969616838e+01 3.223862995512887e+01 3.209512571750849e+01 3.195228370249094e+01 + 3.181010057023420e+01 3.166857295105629e+01 3.152769775432829e+01 3.138747186368265e+01 3.124789194582367e+01 + 3.110895478177638e+01 3.097065722333928e+01 3.083299612203396e+01 3.069596823521478e+01 3.055957038379009e+01 + 3.042379968490992e+01 3.028865305190764e+01 3.015412726448298e+01 3.002021927954454e+01 2.988692608783410e+01 + 2.975424465393443e+01 2.962217185358958e+01 2.949070472525562e+01 2.935984046863818e+01 2.922957605244617e+01 + 2.909990844798608e+01 2.897083474125067e+01 2.884235205411202e+01 2.871445744621140e+01 2.858714789194334e+01 + 2.846042066311678e+01 2.833427304434733e+01 2.820870204788112e+01 2.808370481822039e+01 2.795927858955916e+01 + 2.783542056310479e+01 2.771212788710439e+01 2.758939774558937e+01 2.746722754519704e+01 2.734561457842300e+01 + 2.722455602005491e+01 2.710404915757552e+01 2.698409131619408e+01 2.686467981339180e+01 2.674581188504884e+01 + 2.662748489299116e+01 2.650969637323688e+01 2.639244364869198e+01 2.627572402574995e+01 2.615953493480668e+01 + 2.604387380499337e+01 2.592873803144385e+01 2.581412497154068e+01 2.570003216993883e+01 2.558645721031992e+01 + 2.547339748309297e+01 2.536085044648649e+01 2.524881363723968e+01 2.513728460374055e+01 2.502626081142699e+01 + 2.491573971820056e+01 2.480571905896494e+01 2.469619646153339e+01 2.458716938319504e+01 2.447863542000312e+01 + 2.437059221927192e+01 2.426303741725681e+01 2.415596854366440e+01 2.404938323139217e+01 2.394327933047775e+01 + 2.383765447837906e+01 2.373250626120992e+01 2.362783239922733e+01 2.352363062421024e+01 2.341989863680159e+01 + 2.331663407933185e+01 2.321383475989216e+01 2.311149855755017e+01 2.300962316438995e+01 2.290820631357202e+01 + 2.280724581327735e+01 2.270673948178020e+01 2.260668508940155e+01 2.250708039173678e+01 2.240792334786956e+01 + 2.230921186720802e+01 2.221094371595302e+01 2.211311674173436e+01 2.201572884123411e+01 2.191877792312015e+01 + 2.182226182065280e+01 2.172617842216956e+01 2.163052579410284e+01 2.153530186271772e+01 2.144050449256298e+01 + 2.134613164544727e+01 2.125218130870039e+01 2.115865145244560e+01 2.106553997668644e+01 2.097284492087666e+01 + 2.088056441996010e+01 2.078869643251129e+01 2.069723893213309e+01 2.060618996606658e+01 2.051554761096601e+01 + 2.042530989859754e+01 2.033547481777502e+01 2.024604054022628e+01 2.015700522393599e+01 2.006836688994228e+01 + 1.998012363072147e+01 1.989227358045817e+01 1.980481486918973e+01 1.971774557717947e+01 1.963106382303616e+01 + 1.954476789103884e+01 1.945885594703988e+01 1.937332608222908e+01 1.928817649453870e+01 1.920340539662878e+01 + 1.911901098077130e+01 1.903499138773951e+01 1.895134486255558e+01 1.886806974988112e+01 1.878516424109755e+01 + 1.870262653275597e+01 1.862045489823334e+01 1.853864761644500e+01 1.845720293609644e+01 1.837611907561623e+01 + 1.829539441141390e+01 1.821502731690405e+01 1.813501600648008e+01 1.805535878852776e+01 1.797605402680784e+01 + 1.789710004813803e+01 1.781849513976010e+01 1.774023761822760e+01 1.766232596769640e+01 1.758475857461898e+01 + 1.750753373031707e+01 1.743064982368309e+01 1.735410526816905e+01 1.727789846424588e+01 1.720202775432962e+01 + 1.712649156263800e+01 1.705128842771503e+01 1.697641675133914e+01 1.690187492053174e+01 1.682766139576636e+01 + 1.675377465125957e+01 1.668021313537254e+01 1.660697525047803e+01 1.653405953620346e+01 1.646146456303875e+01 + 1.638918876353225e+01 1.631723061252691e+01 1.624558863577738e+01 1.617426136715184e+01 1.610324729276991e+01 + 1.603254489420701e+01 1.596215281065743e+01 1.589206962268447e+01 1.582229381597797e+01 1.575282394813798e+01 + 1.568365860435203e+01 1.561479636559848e+01 1.554623575841051e+01 1.547797536749664e+01 1.541001389568697e+01 + 1.534234992945672e+01 1.527498202635700e+01 1.520790881496337e+01 1.514112893627654e+01 1.507464101206718e+01 + 1.500844361854594e+01 1.494253544400039e+01 1.487691522461213e+01 1.481158156982783e+01 1.474653311471545e+01 + 1.468176854391490e+01 1.461728655322583e+01 1.455308580005108e+01 1.448916492494823e+01 1.442552270891503e+01 + 1.436215789907635e+01 1.429906914560298e+01 1.423625515786986e+01 1.417371467503432e+01 1.411144643634281e+01 + 1.404944913182382e+01 1.398772148936426e+01 1.392626235467004e+01 1.386507047757601e+01 1.380414456703780e+01 + 1.374348339923097e+01 1.368308576360786e+01 1.362295043539383e+01 1.356307614411792e+01 1.350346171009224e+01 + 1.344410601461897e+01 1.338500782259274e+01 1.332616591200318e+01 1.326757911048049e+01 1.320924625504148e+01 + 1.315116615215319e+01 1.309333758418828e+01 1.303575945915385e+01 1.297843067064863e+01 1.292135001185642e+01 + 1.286451632934388e+01 1.280792850075226e+01 1.275158540067995e+01 1.269548586414703e+01 1.263962874841400e+01 + 1.258401302186647e+01 1.252863758019894e+01 1.247350127006052e+01 1.241860299544399e+01 1.236394167532885e+01 + 1.230951622025856e+01 1.225532549825102e+01 1.220136844757296e+01 1.214764407513537e+01 1.209415128431592e+01 + 1.204088897936275e+01 1.198785611322907e+01 1.193505164847797e+01 1.188247452422181e+01 1.183012365035161e+01 + 1.177799804372636e+01 1.172609672645034e+01 1.167441862559045e+01 1.162296270435431e+01 1.157172795813644e+01 + 1.152071338824009e+01 1.146991795771504e+01 1.141934063624516e+01 1.136898050295155e+01 1.131883658051165e+01 + 1.126890783457083e+01 1.121919328583311e+01 1.116969196974251e+01 1.112040291453270e+01 1.107132511138846e+01 + 1.102245760367597e+01 1.097379950683186e+01 1.092534984778681e+01 1.087710764406476e+01 1.082907196010627e+01 + 1.078124186863284e+01 1.073361642501848e+01 1.068619465441603e+01 1.063897567074718e+01 1.059195860734133e+01 + 1.054514250814830e+01 1.049852644360809e+01 1.045210951602862e+01 1.040589083229813e+01 1.035986946911022e+01 + 1.031404450080543e+01 1.026841510170119e+01 1.022298040707346e+01 1.017773949095798e+01 1.013269147478631e+01 + 1.008783549702620e+01 1.004317069189082e+01 9.998696157456914e+00 9.954411030186206e+00 9.910314523784715e+00 + 9.866405774945729e+00 9.822683900561229e+00 9.779148062474189e+00 9.735797433007823e+00 9.692631171490490e+00 + 9.649648402951970e+00 9.606848328743531e+00 9.564230182014787e+00 9.521793107635142e+00 9.479536270440141e+00 + 9.437458869806633e+00 9.395560106559989e+00 9.353839157926716e+00 9.312295192835592e+00 9.270927467731591e+00 + 9.229735216231479e+00 9.188717610212938e+00 9.147873860369382e+00 9.107203196336844e+00 9.066704846764596e+00 + 9.026378005702853e+00 8.986221892357717e+00 8.946235805206038e+00 8.906418978693665e+00 8.866770619316361e+00 + 8.827289975974383e+00 8.787976307390357e+00 8.748828863538764e+00 8.709846863139358e+00 8.671029583554503e+00 + 8.632376341244221e+00 8.593886376949055e+00 8.555558939921891e+00 8.517393311170933e+00 8.479388776756116e+00 + 8.441544603229096e+00 8.403860042243403e+00 8.366334424744339e+00 8.328967072292842e+00 8.291757243124138e+00 + 8.254704227472720e+00 8.217807335382002e+00 8.181065876905594e+00 8.144479133106664e+00 8.108046399433587e+00 + 8.071767047639053e+00 8.035640397926882e+00 7.999665736506032e+00 7.963842390434660e+00 7.928169696145141e+00 + 7.892646983285742e+00 7.857273552651162e+00 7.822048750599857e+00 7.786971968025827e+00 7.752042529333232e+00 + 7.717259758863888e+00 7.682623011133142e+00 7.648131647347260e+00 7.613785013617140e+00 7.579582436948184e+00 + 7.545523312250220e+00 7.511607037617057e+00 7.477832951167176e+00 7.444200413093294e+00 7.410708803334905e+00 + 7.377357505498556e+00 7.344145878673218e+00 7.311073286547245e+00 7.278139163173499e+00 7.245342906306997e+00 + 7.212683876663248e+00 7.180161467446147e+00 7.147775082852699e+00 7.115524124234772e+00 7.083407965702390e+00 + 7.051426016132217e+00 7.019577732801474e+00 6.987862512275252e+00 6.956279745475502e+00 6.924828855941318e+00 + 6.893509269882150e+00 6.862320401692200e+00 6.831261647888545e+00 6.800332460884749e+00 6.769532305211046e+00 + 6.738860589806862e+00 6.708316738463165e+00 6.677900193977888e+00 6.647610403615440e+00 6.617446795946176e+00 + 6.587408797932629e+00 6.557495898186097e+00 6.527707560796614e+00 6.498043211862364e+00 6.468502306113241e+00 + 6.439084309299234e+00 6.409788685242900e+00 6.380614873655190e+00 6.351562339061567e+00 6.322630595895343e+00 + 6.293819108127046e+00 6.265127326375664e+00 6.236554729526047e+00 6.208100805116588e+00 6.179765032202197e+00 + 6.151546864740690e+00 6.123445807150094e+00 6.095461385258917e+00 6.067593067877628e+00 6.039840335121551e+00 + 6.012202688508743e+00 5.984679633169969e+00 5.957270656961056e+00 5.929975240292937e+00 5.902792923627279e+00 + 5.875723232013562e+00 5.848765648702115e+00 5.821919682493143e+00 5.795184854142510e+00 5.768560683026402e+00 + 5.742046666390822e+00 5.715642318587924e+00 5.689347205919744e+00 5.663160851223163e+00 5.637082758311135e+00 + 5.611112458697719e+00 5.585249491519008e+00 5.559493390584049e+00 5.533843667789125e+00 5.508299872311603e+00 + 5.482861578646651e+00 5.457528314665947e+00 5.432299611523626e+00 5.407175018586152e+00 5.382154093094761e+00 + 5.357236378022760e+00 5.332421403106363e+00 5.307708752059064e+00 5.283098003376689e+00 5.258588694187007e+00 + 5.234180379291222e+00 5.209872626694981e+00 5.185665008050016e+00 5.161557074183171e+00 5.137548383980142e+00 + 5.113638545797982e+00 5.089827134282968e+00 5.066113702430728e+00 5.042497830741953e+00 5.018979105007048e+00 + 4.995557105455633e+00 4.972231392615168e+00 4.949001558388967e+00 4.925867224885915e+00 4.902827967986653e+00 + 4.879883363679411e+00 4.857033008673309e+00 4.834276503129009e+00 4.811613436797770e+00 4.789043387081744e+00 + 4.766565977795326e+00 4.744180833573695e+00 4.721887536130310e+00 4.699685684376157e+00 4.677574891583497e+00 + 4.655554772271826e+00 4.633624922898647e+00 4.611784942911348e+00 4.590034481232405e+00 4.568373160121153e+00 + 4.546800575450856e+00 4.525316347519302e+00 4.503920103923871e+00 4.482611469298424e+00 4.461390048788094e+00 + 4.440255471271009e+00 4.419207398665950e+00 4.398245451269402e+00 4.377369245425554e+00 4.356578419383048e+00 + 4.335872613273037e+00 4.315251459075552e+00 4.294714576337845e+00 4.274261622204341e+00 4.253892261314030e+00 + 4.233606119889290e+00 4.213402835603544e+00 4.193282059746365e+00 4.173243445650493e+00 4.153286631923412e+00 + 4.133411255497697e+00 4.113616998652003e+00 4.093903524786619e+00 4.074270469191258e+00 4.054717490515994e+00 + 4.035244253601178e+00 4.015850419023907e+00 3.996535633568783e+00 3.977299560905666e+00 3.958141896495164e+00 + 3.939062301025637e+00 3.920060427447142e+00 3.901135950094528e+00 3.882288544897898e+00 3.863517881118590e+00 + 3.844823615448907e+00 3.826205437051391e+00 3.807663047653544e+00 3.789196110563124e+00 3.770804297342049e+00 + 3.752487294212357e+00 3.734244789018890e+00 3.716076457976182e+00 3.697981972490954e+00 3.679961043694115e+00 + 3.662013372248035e+00 3.644138631063968e+00 3.626336509775109e+00 3.608606705542072e+00 3.590948914412318e+00 + 3.573362819793663e+00 3.555848115085657e+00 3.538404523614169e+00 3.521031745026515e+00 3.503729467883798e+00 + 3.486497394134707e+00 3.469335231734055e+00 3.452242686325544e+00 3.435219448952052e+00 3.418265234650198e+00 + 3.401379774604279e+00 3.384562769850576e+00 3.367813923930398e+00 3.351132951883403e+00 3.334519571031865e+00 + 3.317973491801103e+00 3.301494419647167e+00 3.285082090084510e+00 3.268736234671993e+00 3.252456560777042e+00 + 3.236242786971220e+00 3.220094639575606e+00 3.204011846234647e+00 3.187994121490988e+00 3.172041185626448e+00 + 3.156152791161071e+00 3.140328668842820e+00 3.124568535295174e+00 3.108872124034968e+00 3.093239171871656e+00 + 3.077669412161458e+00 3.062162565910707e+00 3.046718374098970e+00 3.031336596904380e+00 3.016016966139392e+00 + 3.000759212810465e+00 2.985563079528153e+00 2.970428312130104e+00 2.955354650145179e+00 2.940341825152254e+00 + 2.925389598488303e+00 2.910497731503551e+00 2.895665957526404e+00 2.880894022713473e+00 2.866181682137055e+00 + 2.851528688498591e+00 2.836934785005289e+00 2.822399718118186e+00 2.807923264019232e+00 2.793505182293368e+00 + 2.779145216423770e+00 2.764843124903896e+00 2.750598669795774e+00 2.736411610868753e+00 2.722281698431688e+00 + 2.708208697067331e+00 2.694192390113966e+00 2.680232535961204e+00 2.666328890540199e+00 2.652481222662398e+00 + 2.638689303226956e+00 2.624952898002155e+00 2.611271764144950e+00 2.597645683492627e+00 2.584074442444535e+00 + 2.570557801667266e+00 2.557095530257868e+00 2.543687406599445e+00 2.530333209423413e+00 2.517032707379746e+00 + 2.503785668122807e+00 2.490591889861845e+00 2.477451158950901e+00 2.464363243138197e+00 2.451327922049569e+00 + 2.438344980862380e+00 2.425414204994132e+00 2.412535368413293e+00 2.399708255484590e+00 2.386932671907132e+00 + 2.374208401602455e+00 2.361535223009603e+00 2.348912926727443e+00 2.336341305706971e+00 2.323820149408004e+00 + 2.311349238873846e+00 2.298928374328811e+00 2.286557363678248e+00 2.274235992966902e+00 2.261964052364815e+00 + 2.249741340335214e+00 2.237567658215990e+00 2.225442798573621e+00 2.213366549457367e+00 2.201338726388740e+00 + 2.189359138707274e+00 2.177427577694549e+00 2.165543843493499e+00 2.153707741170415e+00 2.141919076444355e+00 + 2.130177647034976e+00 2.118483256831743e+00 2.106835728234196e+00 2.095234867960482e+00 2.083680476325080e+00 + 2.072172364176171e+00 2.060710343839133e+00 2.049294224696878e+00 2.037923808395575e+00 2.026598913260298e+00 + 2.015319367985618e+00 2.004084979196668e+00 1.992895556108562e+00 1.981750916950703e+00 1.970650881000152e+00 + 1.959595261684839e+00 1.948583868145923e+00 1.937616532016987e+00 1.926693081878526e+00 1.915813328267264e+00 + 1.904977090405082e+00 1.894184192977273e+00 1.883434460875044e+00 1.872727710477953e+00 1.862063762090873e+00 + 1.851442457083682e+00 1.840863622251705e+00 1.830327074965862e+00 1.819832643502570e+00 1.809380158797907e+00 + 1.798969449793061e+00 1.788600336572885e+00 1.778272652771865e+00 1.767986244795942e+00 1.757740938619203e+00 + 1.747536560606076e+00 1.737372946411540e+00 1.727249932639099e+00 1.717167351154095e+00 1.707125028541288e+00 + 1.697122811212298e+00 1.687160545804055e+00 1.677238060829077e+00 1.667355192130723e+00 1.657511781312863e+00 + 1.647707669880958e+00 1.637942692337234e+00 1.628216684763444e+00 1.618529503053863e+00 1.608880992276723e+00 + 1.599270986915247e+00 1.589699330823691e+00 1.580165870897195e+00 1.570670452975510e+00 1.561212914561866e+00 + 1.551793103249197e+00 1.542410880472349e+00 1.533066090216831e+00 1.523758574579748e+00 1.514488184288800e+00 + 1.505254771462676e+00 1.496058184704016e+00 1.486898266759950e+00 1.477774877044576e+00 1.468687878023066e+00 + 1.459637114930725e+00 1.450622438289068e+00 1.441643704572125e+00 1.432700770639202e+00 1.423793487269355e+00 + 1.414921704769478e+00 1.406085292220042e+00 1.397284110913275e+00 1.388518010515092e+00 1.379786849127615e+00 + 1.371090488107240e+00 1.362428788219066e+00 1.353801602746353e+00 1.345208792137069e+00 1.336650231141558e+00 + 1.328125779708811e+00 1.319635294146069e+00 1.311178639017341e+00 1.302755680403749e+00 1.294366281732825e+00 + 1.286010300246468e+00 1.277687607130681e+00 1.269398079017509e+00 1.261141576506052e+00 1.252917963373013e+00 + 1.244727109229262e+00 1.236568884548108e+00 1.228443154841189e+00 1.220349783647821e+00 1.212288651549746e+00 + 1.204259634287000e+00 1.196262595500517e+00 1.188297406122070e+00 1.180363940507803e+00 1.172462072687314e+00 + 1.164591670206239e+00 1.156752605274376e+00 1.148944764287503e+00 1.141168021685895e+00 1.133422246839356e+00 + 1.125707316556084e+00 1.118023109341937e+00 1.110369501923575e+00 1.102746365022667e+00 1.095153580538906e+00 + 1.087591037394418e+00 1.080058609806265e+00 1.072556173728377e+00 1.065083611042832e+00 1.057640804167975e+00 + 1.050227631677888e+00 1.042843969448370e+00 1.035489708218281e+00 1.028164736497249e+00 1.020868930712798e+00 + 1.013602173363602e+00 1.006364350528145e+00 9.991553480860069e-01 9.919750464549014e-01 9.848233287198007e-01 + 9.777000916381701e-01 9.706052224312447e-01 9.635386022157533e-01 9.565001191688937e-01 9.494896630661879e-01 + 9.425071223228538e-01 9.355523797940184e-01 9.286253271866921e-01 9.217258644183214e-01 9.148538781303724e-01 + 9.080092551050607e-01 9.011918879859632e-01 8.944016703005543e-01 8.876384924746002e-01 8.809022413584221e-01 + 8.741928168976413e-01 8.675101190938330e-01 8.608540359442419e-01 8.542244603473701e-01 8.476212889430066e-01 + 8.410444181391276e-01 8.344937399710189e-01 8.279691476350027e-01 8.214705470141707e-01 8.149978368018493e-01 + 8.085509088588196e-01 8.021296614287111e-01 7.957339944800463e-01 7.893638070383275e-01 7.830189931350516e-01 + 7.766994532966268e-01 7.704050967403675e-01 7.641358215802615e-01 7.578915247022724e-01 7.516721083807270e-01 + 7.454774759379389e-01 7.393075284143857e-01 7.331621629407183e-01 7.270412875750237e-01 7.209448123528730e-01 + 7.148726361079928e-01 7.088246610576617e-01 7.028007931997213e-01 6.968009387204053e-01 6.908250000358214e-01 + 6.848728793751606e-01 6.789444908271167e-01 6.730397435251165e-01 6.671585392499849e-01 6.613007849024644e-01 + 6.554663896318030e-01 6.496552624588109e-01 6.438673070778183e-01 6.381024319556428e-01 6.323605552121262e-01 + 6.266415850605696e-01 6.209454272475601e-01 6.152719929073242e-01 6.096211942955035e-01 6.039929419697414e-01 + 5.983871423673978e-01 5.928037109278776e-01 5.872425665727200e-01 5.817036179262789e-01 5.761867757580472e-01 + 5.706919545755328e-01 5.652190691753797e-01 5.597680312855905e-01 5.543387515608681e-01 5.489311514266204e-01 + 5.435451491959484e-01 5.381806555529779e-01 5.328375858091706e-01 5.275158573424954e-01 5.222153871968650e-01 + 5.169360885007255e-01 5.116778775087658e-01 5.064406794925096e-01 5.012244118255510e-01 4.960289886382637e-01 + 4.908543290552675e-01 4.857003532629381e-01 4.805669801867241e-01 4.754541247133137e-01 4.703617092625736e-01 + 4.652896609026711e-01 4.602378967146020e-01 4.552063350475851e-01 4.501948983226124e-01 4.452035092771810e-01 + 4.402320879227842e-01 4.352805523654864e-01 4.303488309750054e-01 4.254368504386150e-01 4.205445290166767e-01 + 4.156717895856258e-01 4.108185573527897e-01 4.059847567861119e-01 4.011703090912549e-01 3.963751374739253e-01 + 3.915991740467544e-01 3.868423443729578e-01 3.821045699452743e-01 3.773857771630841e-01 3.726858934536713e-01 + 3.680048452743795e-01 3.633425553945757e-01 3.586989523890614e-01 3.540739701811214e-01 3.494675340422360e-01 + 3.448795694018267e-01 3.403100055229290e-01 3.357587720701978e-01 3.312257966625470e-01 3.267110046986084e-01 + 3.222143302305144e-01 3.177357072575733e-01 3.132750617821559e-01 3.088323230437107e-01 3.044074228278458e-01 + 3.000002929514869e-01 2.956108619814004e-01 2.912390591663653e-01 2.868848226223222e-01 2.825480855369588e-01 + 2.782287763584979e-01 2.739268276304007e-01 2.696421732978619e-01 2.653747469077652e-01 2.611244782932083e-01 + 2.568913016367161e-01 2.526751570146955e-01 2.484759769388697e-01 2.442936932048949e-01 2.401282413902519e-01 + 2.359795575701045e-01 2.318475761710866e-01 2.277322290127450e-01 2.236334554284879e-01 2.195511960314929e-01 + 2.154853836729677e-01 2.114359536211432e-01 2.074028437636633e-01 2.033859920182897e-01 1.993853337119912e-01 + 1.954008040589642e-01 1.914323463143237e-01 1.874799002688242e-01 1.835434007181165e-01 1.796227861758036e-01 + 1.757179964922509e-01 1.718289711649378e-01 1.679556465242757e-01 1.640979620393169e-01 1.602558632656972e-01 + 1.564292893436780e-01 1.526181778855338e-01 1.488224700413446e-01 1.450421075715582e-01 1.412770310767497e-01 + 1.375271785489454e-01 1.337924939887067e-01 1.300729236356154e-01 1.263684067750867e-01 1.226788841702678e-01 + 1.190042991249222e-01 1.153445951805052e-01 1.116997137432381e-01 1.080695954417651e-01 1.044541881911586e-01 + 1.008534377603918e-01 9.726728475975084e-02 9.369567294988820e-02 9.013854752144720e-02 8.659585347215112e-02 + 8.306753302147955e-02 7.955353046975124e-02 7.605379621791922e-02 7.256827534889604e-02 6.909691079142652e-02 + 6.563964883225221e-02 6.219643640409570e-02 5.876721959493493e-02 5.535194193553600e-02 5.195055179453398e-02 + 4.856300050562060e-02 4.518923308325209e-02 4.182919528191363e-02 3.848283536820589e-02 3.515010193539807e-02 + 3.183094185890936e-02 2.852530077920949e-02 2.523313079087341e-02 2.195438300307553e-02 1.868900335629075e-02 + 1.543694036357313e-02 1.219814405293583e-02 8.972564385828061e-03 5.760148923624660e-03 2.560846417529306e-03 + -6.253884489496408e-04 -3.798605206001689e-03 -6.958856024607482e-03 -1.010619000899848e-02 -1.324065554473652e-02 + -1.636230159824732e-02 -1.947117958312726e-02 -2.256733711284757e-02 -2.565081832749929e-02 -2.872167302619957e-02 + -3.177995089902724e-02 -3.482569914268617e-02 -3.785896464500105e-02 -4.087979562235380e-02 -4.388824175488684e-02 + -4.688434717766576e-02 -4.986815604286890e-02 -5.283971753775529e-02 -5.579907881824794e-02 -5.874628546589089e-02 + -6.168138307363240e-02 -6.460441923558070e-02 -6.751544105442296e-02 -7.041449003639784e-02 -7.330161087707579e-02 + -7.617685125406765e-02 -7.904025608548425e-02 -8.189186951723537e-02 -8.473173608907363e-02 -8.755990257827875e-02 + -9.037641289395969e-02 -9.318130717201861e-02 -9.597463047763352e-02 -9.875642835115833e-02 -1.015267439140877e-01 + -1.042856199263307e-01 -1.070331001684683e-01 -1.097692300567918e-01 -1.124940502948268e-01 -1.152076007898061e-01 + -1.179099262631479e-01 -1.206010699593113e-01 -1.232810735016665e-01 -1.259499784255051e-01 -1.286078279418341e-01 + -1.312546653333709e-01 -1.338905286984875e-01 -1.365154583874092e-01 -1.391294979538990e-01 -1.417326885345280e-01 + -1.443250704192513e-01 -1.469066841433861e-01 -1.494775722507627e-01 -1.520377752494497e-01 -1.545873297590701e-01 + -1.571262765202916e-01 -1.596546572452540e-01 -1.621725113907878e-01 -1.646798779801165e-01 -1.671767967821347e-01 + -1.696633092874520e-01 -1.721394530811854e-01 -1.746052643091513e-01 -1.770607836101869e-01 -1.795060506428017e-01 + -1.819411034225526e-01 -1.843659798390828e-01 -1.867807191554161e-01 -1.891853611111403e-01 -1.915799407499077e-01 + -1.939644945120454e-01 -1.963390621459183e-01 -1.987036813730624e-01 -2.010583889984393e-01 -2.034032219467188e-01 + -2.057382189127211e-01 -2.080634172465200e-01 -2.103788504106409e-01 -2.126845552585028e-01 -2.149805700057577e-01 + -2.172669307458855e-01 -2.195436731393316e-01 -2.218108333786645e-01 -2.240684493062661e-01 -2.263165556286022e-01 + -2.285551851690127e-01 -2.307843748874083e-01 -2.330041611277884e-01 -2.352145785311434e-01 -2.374156618282909e-01 + -2.396074467707450e-01 -2.417899696732801e-01 -2.439632627554057e-01 -2.461273590292558e-01 -2.482822949571798e-01 + -2.504281050002428e-01 -2.525648226666662e-01 -2.546924818382261e-01 -2.568111176810049e-01 -2.589207645010757e-01 + -2.610214530059819e-01 -2.631132165202481e-01 -2.651960899948890e-01 -2.672701065219724e-01 -2.693352987894519e-01 + -2.713916998229662e-01 -2.734393439668777e-01 -2.754782632038173e-01 -2.775084874639143e-01 -2.795300503441993e-01 + -2.815429852855671e-01 -2.835473240274155e-01 -2.855430981234691e-01 -2.875303400246380e-01 -2.895090831627840e-01 + -2.914793573631382e-01 -2.934411924374482e-01 -2.953946213942734e-01 -2.973396760049649e-01 -2.992763870705049e-01 + -3.012047853752455e-01 -3.031249029054077e-01 -3.050367713048046e-01 -3.069404187491607e-01 -3.088358754333808e-01 + -3.107231733999588e-01 -3.126023429151826e-01 -3.144734138246973e-01 -3.163364162512183e-01 -3.181913814969073e-01 + -3.200383391593082e-01 -3.218773166629695e-01 -3.237083442965246e-01 -3.255314526206347e-01 -3.273466708133588e-01 + -3.291540279174764e-01 -3.309535535062730e-01 -3.327452779044484e-01 -3.345292286746930e-01 -3.363054329977739e-01 + -3.380739209920870e-01 -3.398347217688169e-01 -3.415878634526212e-01 -3.433333743100879e-01 -3.450712833788954e-01 + -3.468016195958206e-01 -3.485244091566739e-01 -3.502396793974815e-01 -3.519474593420066e-01 -3.536477770380763e-01 + -3.553406598299846e-01 -3.570261348354672e-01 -3.587042307855341e-01 -3.603749751839582e-01 -3.620383929731605e-01 + -3.636945116923384e-01 -3.653433594409278e-01 -3.669849628231984e-01 -3.686193482790397e-01 -3.702465427747400e-01 + -3.718665743211436e-01 -3.734794684043725e-01 -3.750852495624684e-01 -3.766839451194457e-01 -3.782755819189342e-01 + -3.798601858648072e-01 -3.814377826321034e-01 -3.830083986549013e-01 -3.845720606417443e-01 -3.861287926090124e-01 + -3.876786193539286e-01 -3.892215675502101e-01 -3.907576628594260e-01 -3.922869303026715e-01 -3.938093947284727e-01 + -3.953250822556230e-01 -3.968340182497304e-01 -3.983362256494206e-01 -3.998317293097848e-01 -4.013205549386248e-01 + -4.028027272117153e-01 -4.042782703087232e-01 -4.057472086115670e-01 -4.072095677082399e-01 -4.086653712889545e-01 + -4.101146418277140e-01 -4.115574040934622e-01 -4.129936826934361e-01 -4.144235014035024e-01 -4.158468836578273e-01 + -4.172638535617268e-01 -4.186744357650895e-01 -4.200786523524958e-01 -4.214765258006608e-01 -4.228680805923657e-01 + -4.242533401481378e-01 -4.256323273241845e-01 -4.270050650780072e-01 -4.283715771591216e-01 -4.297318868367957e-01 + -4.310860152683936e-01 -4.324339850671611e-01 -4.337758197699306e-01 -4.351115419219263e-01 -4.364411736856622e-01 + -4.377647373653272e-01 -4.390822563519974e-01 -4.403937525793140e-01 -4.416992465950099e-01 -4.429987609092939e-01 + -4.442923180804305e-01 -4.455799398898891e-01 -4.468616477876415e-01 -4.481374637930542e-01 -4.494074106490894e-01 + -4.506715085877422e-01 -4.519297779021105e-01 -4.531822412097039e-01 -4.544289201442401e-01 -4.556698355752103e-01 + -4.569050083194456e-01 -4.581344599890250e-01 -4.593582121055255e-01 -4.605762842891920e-01 -4.617886970897419e-01 + -4.629954719556403e-01 -4.641966295426422e-01 -4.653921902577345e-01 -4.665821746143150e-01 -4.677666038635413e-01 + -4.689454981292748e-01 -4.701188761476531e-01 -4.712867586709557e-01 -4.724491664926360e-01 -4.736061192593240e-01 + -4.747576368456714e-01 -4.759037394682022e-01 -4.770444475543998e-01 -4.781797800875144e-01 -4.793097558338887e-01 + -4.804343950164401e-01 -4.815537175042383e-01 -4.826677426390972e-01 -4.837764894228364e-01 -4.848799775883490e-01 + -4.859782270303963e-01 -4.870712557287352e-01 -4.881590823344398e-01 -4.892417265305033e-01 -4.903192072931410e-01 + -4.913915433426016e-01 -4.924587534540600e-01 -4.935208569593936e-01 -4.945778724869024e-01 -4.956298174121960e-01 + -4.966767104426105e-01 -4.977185705977166e-01 -4.987554161795947e-01 -4.997872652579317e-01 -5.008141361357437e-01 + -5.018360477540788e-01 -5.028530175622089e-01 -5.038650625463708e-01 -5.048722015765362e-01 -5.058744527800632e-01 + -5.068718334710337e-01 -5.078643614554021e-01 -5.088520548881869e-01 -5.098349318298798e-01 -5.108130088001350e-01 + -5.117863028619736e-01 -5.127548322161382e-01 -5.137186142245088e-01 -5.146776659499980e-01 -5.156320045833772e-01 + -5.165816478015819e-01 -5.175266128170244e-01 -5.184669156304091e-01 -5.194025733016244e-01 -5.203336032597101e-01 + -5.212600221732120e-01 -5.221818466804444e-01 -5.230990936596679e-01 -5.240117804553392e-01 -5.249199232262068e-01 + -5.258235374392936e-01 -5.267226400387954e-01 -5.276172478389746e-01 -5.285073771019844e-01 -5.293930438910602e-01 + -5.302742646986305e-01 -5.311510563423283e-01 -5.320234339437281e-01 -5.328914129379527e-01 -5.337550101355577e-01 + -5.346142414983102e-01 -5.354691226448078e-01 -5.363196694209366e-01 -5.371658979374595e-01 -5.380078240078261e-01 + -5.388454624615836e-01 -5.396788287704753e-01 -5.405079388378121e-01 -5.413328081929075e-01 -5.421534521210617e-01 + -5.429698859177164e-01 -5.437821254261226e-01 -5.445901856060492e-01 -5.453940806517681e-01 -5.461938261275164e-01 + -5.469894375147514e-01 -5.477809296410460e-01 -5.485683172596564e-01 -5.493516154047422e-01 -5.501308394233321e-01 + -5.509060035978606e-01 -5.516771220917993e-01 -5.524442098036262e-01 -5.532072816062331e-01 -5.539663521228516e-01 + -5.547214355736525e-01 -5.554725467511782e-01 -5.562197004144761e-01 -5.569629099559865e-01 -5.577021895124128e-01 + -5.584375539231472e-01 -5.591690174427206e-01 -5.598965939391384e-01 -5.606202972403660e-01 -5.613401421520022e-01 + -5.620561426054913e-01 -5.627683113219669e-01 -5.634766626491997e-01 -5.641812109417922e-01 -5.648819696019924e-01 + -5.655789522526887e-01 -5.662721727674018e-01 -5.669616451334641e-01 -5.676473824290281e-01 -5.683293976251365e-01 + -5.690077046537543e-01 -5.696823171027902e-01 -5.703532481968968e-01 -5.710205111045815e-01 -5.716841193018837e-01 + -5.723440862989044e-01 -5.730004247377283e-01 -5.736531475408438e-01 -5.743022680808630e-01 -5.749477994635019e-01 + -5.755897545119250e-01 -5.762281459317424e-01 -5.768629872133108e-01 -5.774942912813225e-01 -5.781220698864685e-01 + -5.787463360372200e-01 -5.793671029370097e-01 -5.799843829591812e-01 -5.805981885004621e-01 -5.812085322229668e-01 + -5.818154271777390e-01 -5.824188854500640e-01 -5.830189187855023e-01 -5.836155400127914e-01 -5.842087616519486e-01 + -5.847985957903102e-01 -5.853850545399070e-01 -5.859681502822114e-01 -5.865478954643482e-01 -5.871243015837295e-01 + -5.876973804424807e-01 -5.882671445115567e-01 -5.888336058093040e-01 -5.893967761301214e-01 -5.899566672475657e-01 + -5.905132912554449e-01 -5.910666600004119e-01 -5.916167846344484e-01 -5.921636769312483e-01 -5.927073488739303e-01 + -5.932478119884005e-01 -5.937850777230974e-01 -5.943191576345895e-01 -5.948500635775013e-01 -5.953778067525587e-01 + -5.959023980172641e-01 -5.964238491804477e-01 -5.969421717317064e-01 -5.974573766302176e-01 -5.979694750153504e-01 + -5.984784782975928e-01 -5.989843980133127e-01 -5.994872448737363e-01 -5.999870296226286e-01 -6.004837635008013e-01 + -6.009774575116591e-01 -6.014681225640990e-01 -6.019557696406324e-01 -6.024404098188824e-01 -6.029220539582525e-01 + -6.034007123251734e-01 -6.038763957092128e-01 -6.043491151546724e-01 -6.048188811990667e-01 -6.052857043294740e-01 + -6.057495951725935e-01 -6.062105647034982e-01 -6.066686232996821e-01 -6.071237808282512e-01 -6.075760480581535e-01 + -6.080254356249652e-01 -6.084719536597242e-01 -6.089156123708600e-01 -6.093564221655233e-01 -6.097943936088406e-01 + -6.102295366277345e-01 -6.106618611466814e-01 -6.110913776082281e-01 -6.115180960018122e-01 -6.119420262061138e-01 + -6.123631785057825e-01 -6.127815629923925e-01 -6.131971895415724e-01 -6.136100679122567e-01 -6.140202079254689e-01 + -6.144276194632986e-01 -6.148323123693087e-01 -6.152342964516117e-01 -6.156335814880438e-01 -6.160301772367670e-01 + -6.164240932773791e-01 -6.168153390131846e-01 -6.172039241057757e-01 -6.175898582479540e-01 -6.179731510100582e-01 + -6.183538118537011e-01 -6.187318502245757e-01 -6.191072755983122e-01 -6.194800972241303e-01 -6.198503243163954e-01 + -6.202179663089392e-01 -6.205830326036273e-01 -6.209455324825972e-01 -6.213054750121583e-01 -6.216628693834372e-01 + -6.220177248671027e-01 -6.223700505100402e-01 -6.227198553511943e-01 -6.230671484590707e-01 -6.234119388224310e-01 + -6.237542354039819e-01 -6.240940471906395e-01 -6.244313833278470e-01 -6.247662526956897e-01 -6.250986637315333e-01 + -6.254286253149073e-01 -6.257561464374979e-01 -6.260812358699522e-01 -6.264039022632663e-01 -6.267241542804416e-01 + -6.270420007239386e-01 -6.273574502418447e-01 -6.276705113436000e-01 -6.279811924920996e-01 -6.282895022600340e-01 + -6.285954492669960e-01 -6.288990419377586e-01 -6.292002887596219e-01 -6.294991982474318e-01 -6.297957785295903e-01 + -6.300900379535952e-01 -6.303819851813233e-01 -6.306716282540937e-01 -6.309589752809680e-01 -6.312440348023121e-01 + -6.315268150763020e-01 -6.318073241903770e-01 -6.320855701836068e-01 -6.323615610879741e-01 -6.326353050044859e-01 + -6.329068101802829e-01 -6.331760846635813e-01 -6.334431363818833e-01 -6.337079733473078e-01 -6.339706034520735e-01 + -6.342310345121693e-01 -6.344892744839461e-01 -6.347453312805855e-01 -6.349992127114430e-01 -6.352509264768633e-01 + -6.355004804526597e-01 -6.357478826585540e-01 -6.359931404400122e-01 -6.362362612918424e-01 -6.364772532644518e-01 + -6.367161239398067e-01 -6.369528807876881e-01 -6.371875315012039e-01 -6.374200836672138e-01 -6.376505447719858e-01 + -6.378789222449943e-01 -6.381052236017390e-01 -6.383294563385360e-01 -6.385516277126226e-01 -6.387717451483415e-01 + -6.389898161925324e-01 -6.392058481779943e-01 -6.394198483013303e-01 -6.396318237129481e-01 -6.398417817583982e-01 + -6.400497298004382e-01 -6.402556751053731e-01 -6.404596246811356e-01 -6.406615856182318e-01 -6.408615652398488e-01 + -6.410595705960431e-01 -6.412556087124355e-01 -6.414496867908267e-01 -6.416418117430738e-01 -6.418319904244396e-01 + -6.420202299552208e-01 -6.422065373268501e-01 -6.423909194238488e-01 -6.425733831564441e-01 -6.427539354568388e-01 + -6.429325832107947e-01 -6.431093330874931e-01 -6.432841919278923e-01 -6.434571667152847e-01 -6.436282640341581e-01 + -6.437974905134223e-01 -6.439648529819666e-01 -6.441303582355420e-01 -6.442940129046214e-01 -6.444558234243410e-01 + -6.446157964842297e-01 -6.447739387669796e-01 -6.449302567289288e-01 -6.450847570451982e-01 -6.452374463418470e-01 + -6.453883308317777e-01 -6.455374170518916e-01 -6.456847116523639e-01 -6.458302208459006e-01 -6.459739509825424e-01 + -6.461159085765001e-01 -6.462561000624228e-01 -6.463945317857885e-01 -6.465312099893501e-01 -6.466661407794220e-01 + -6.467993305071421e-01 -6.469307857586633e-01 -6.470605124176557e-01 -6.471885165505020e-01 -6.473148048129491e-01 + -6.474393831451855e-01 -6.475622574433044e-01 -6.476834341411803e-01 -6.478029193005811e-01 -6.479207188186653e-01 + -6.480368387749067e-01 -6.481512852365653e-01 -6.482640642356557e-01 -6.483751817763184e-01 -6.484846438333333e-01 + -6.485924563559199e-01 -6.486986252696630e-01 -6.488031563964390e-01 -6.489060555062011e-01 -6.490073285956434e-01 + -6.491069816182633e-01 -6.492050203757027e-01 -6.493014505946639e-01 -6.493962779796888e-01 -6.494895082497514e-01 + -6.495811472172135e-01 -6.496712006463234e-01 -6.497596741452655e-01 -6.498465734697708e-01 -6.499319043537729e-01 + -6.500156722751166e-01 -6.500978828758883e-01 -6.501785418212779e-01 -6.502576544563589e-01 -6.503352264336196e-01 + -6.504112635780723e-01 -6.504857712206107e-01 -6.505587548117625e-01 -6.506302199692129e-01 -6.507001719669850e-01 + -6.507686161481057e-01 -6.508355580770583e-01 -6.509010033515999e-01 -6.509649573333303e-01 -6.510274250599254e-01 + -6.510884119408136e-01 -6.511479234691252e-01 -6.512059649357221e-01 -6.512625414820176e-01 -6.513176583196066e-01 + -6.513713209657690e-01 -6.514235346566493e-01 -6.514743044494572e-01 -6.515236355351222e-01 -6.515715331668240e-01 + -6.516180025498758e-01 -6.516630486086969e-01 -6.517066764698182e-01 -6.517488914696901e-01 -6.517896986474616e-01 + -6.518291029696229e-01 -6.518671094474887e-01 -6.519037232298822e-01 -6.519389493677847e-01 -6.519727927034696e-01 + -6.520052582102593e-01 -6.520363509344871e-01 -6.520660759114448e-01 -6.520944379877177e-01 -6.521214419863292e-01 + -6.521470929034477e-01 -6.521713955379932e-01 -6.521943546611896e-01 -6.522159753870301e-01 -6.522362625000242e-01 + -6.522552205660485e-01 -6.522728545508729e-01 -6.522891692872490e-01 -6.523041693781095e-01 -6.523178594474156e-01 + -6.523302443147758e-01 -6.523413289626511e-01 -6.523511179648659e-01 -6.523596158248584e-01 -6.523668271884714e-01 + -6.523727568212391e-01 -6.523774093997819e-01 -6.523807893579161e-01 -6.523829012952149e-01 -6.523837498990516e-01 + -6.523833397960367e-01 -6.523816754611410e-01 -6.523787613199525e-01 -6.523746019358498e-01 -6.523692018302728e-01 + -6.523625654555820e-01 -6.523546972248629e-01 -6.523456017173497e-01 -6.523352835702680e-01 -6.523237468711672e-01 + -6.523109959032295e-01 -6.522970353197415e-01 -6.522818693382445e-01 -6.522655022842732e-01 -6.522479388337681e-01 + -6.522291831409690e-01 -6.522092393163972e-01 -6.521881118419591e-01 -6.521658050464721e-01 -6.521423231008568e-01 + -6.521176700882644e-01 -6.520918504277817e-01 -6.520648685798258e-01 -6.520367284462982e-01 -6.520074341903623e-01 + -6.519769901852531e-01 -6.519454004576026e-01 -6.519126690272374e-01 -6.518788000417296e-01 -6.518437978790763e-01 + -6.518076667685843e-01 -6.517704106505043e-01 -6.517320333460206e-01 -6.516925389358605e-01 -6.516519318553129e-01 + -6.516102158220000e-01 -6.515673946405215e-01 -6.515234728464969e-01 -6.514784543315630e-01 -6.514323427842886e-01 + -6.513851423523833e-01 -6.513368570527661e-01 -6.512874907235414e-01 -6.512370470939771e-01 -6.511855301990920e-01 + -6.511329442190841e-01 -6.510792928715797e-01 -6.510245798816351e-01 -6.509688091361985e-01 -6.509119847142907e-01 + -6.508541103488035e-01 -6.507951894034477e-01 -6.507352259931611e-01 -6.506742241942834e-01 -6.506121876059120e-01 + -6.505491199228429e-01 -6.504850249436106e-01 -6.504199065016956e-01 -6.503537680222150e-01 -6.502866130342899e-01 + -6.502184457971011e-01 -6.501492700279957e-01 -6.500790890906794e-01 -6.500079066129352e-01 -6.499357263329657e-01 + -6.498625519683058e-01 -6.497883869826074e-01 -6.497132350047277e-01 -6.496370998048885e-01 -6.495599847614121e-01 + -6.494818934475555e-01 -6.494028297363450e-01 -6.493227969968260e-01 -6.492417985197620e-01 -6.491598378013752e-01 + -6.490769185970405e-01 -6.489930446200032e-01 -6.489082192796405e-01 -6.488224457999440e-01 -6.487357275334984e-01 + -6.486480682838258e-01 -6.485594713376021e-01 -6.484699398068251e-01 -6.483794774339799e-01 -6.482880877536140e-01 + -6.481957740532812e-01 -6.481025397024727e-01 -6.480083880017639e-01 -6.479133221889776e-01 -6.478173456351086e-01 + -6.477204618036257e-01 -6.476226741599570e-01 -6.475239858039916e-01 -6.474243999826228e-01 -6.473239202990485e-01 + -6.472225498463482e-01 -6.471202916312221e-01 -6.470171489638400e-01 -6.469131252405815e-01 -6.468082238277443e-01 + -6.467024479420175e-01 -6.465958006550642e-01 -6.464882850509053e-01 -6.463799044773618e-01 -6.462706620382276e-01 + -6.461605607272912e-01 -6.460496040101232e-01 -6.459377950690467e-01 -6.458251367734501e-01 -6.457116323868038e-01 + -6.455972850655802e-01 -6.454820977029684e-01 -6.453660732942879e-01 -6.452492150754419e-01 -6.451315264887545e-01 + -6.450130102914885e-01 -6.448936692680686e-01 -6.447735068128447e-01 -6.446525260129213e-01 -6.445307296530088e-01 + -6.444081203587793e-01 -6.442847014715996e-01 -6.441604765089356e-01 -6.440354480546840e-01 -6.439096188724848e-01 + -6.437829920095609e-01 -6.436555704731397e-01 -6.435273570693492e-01 -6.433983545533010e-01 -6.432685663163126e-01 + -6.431379953365300e-01 -6.430066439769492e-01 -6.428745153347271e-01 -6.427416124750638e-01 -6.426079380140648e-01 + -6.424734947555180e-01 -6.423382856273998e-01 -6.422023135830728e-01 -6.420655814260000e-01 -6.419280919255173e-01 + -6.417898479598759e-01 -6.416508523135933e-01 -6.415111076305331e-01 -6.413706163966455e-01 -6.412293816393564e-01 + -6.410874066048897e-01 -6.409446936267265e-01 -6.408012453136449e-01 -6.406570646910840e-01 -6.405121544270317e-01 + -6.403665170374713e-01 -6.402201550644944e-01 -6.400730715072882e-01 -6.399252691822962e-01 -6.397767504407681e-01 + -6.396275180930010e-01 -6.394775749890055e-01 -6.393269236107165e-01 -6.391755662191552e-01 -6.390235053902433e-01 + -6.388707445708105e-01 -6.387172861694177e-01 -6.385631322023312e-01 -6.384082857966726e-01 -6.382527494896121e-01 + -6.380965253642142e-01 -6.379396162401521e-01 -6.377820248167250e-01 -6.376237535602883e-01 -6.374648052204416e-01 + -6.373051823107587e-01 -6.371448870124290e-01 -6.369839218821269e-01 -6.368222895078627e-01 -6.366599923302766e-01 + -6.364970329561520e-01 -6.363334139746031e-01 -6.361691377885151e-01 -6.360042067688202e-01 -6.358386233547334e-01 + -6.356723901317635e-01 -6.355055093799952e-01 -6.353379833438523e-01 -6.351698147827204e-01 -6.350010061497325e-01 + -6.348315596278746e-01 -6.346614776297652e-01 -6.344907627044540e-01 -6.343194173354602e-01 -6.341474433478579e-01 + -6.339748431233465e-01 -6.338016197812808e-01 -6.336277753787244e-01 -6.334533118997744e-01 -6.332782318265875e-01 + -6.331025376588558e-01 -6.329262316544187e-01 -6.327493157114107e-01 -6.325717923863455e-01 -6.323936643403999e-01 + -6.322149336030685e-01 -6.320356024195775e-01 -6.318556731749607e-01 -6.316751480498738e-01 -6.314940290711796e-01 + -6.313123183267710e-01 -6.311300184615836e-01 -6.309471319109403e-01 -6.307636607640942e-01 -6.305796070902886e-01 + -6.303949730482692e-01 -6.302097608691579e-01 -6.300239725606558e-01 -6.298376103756032e-01 -6.296506769748604e-01 + -6.294631743864889e-01 -6.292751044804592e-01 -6.290864694027335e-01 -6.288972714311484e-01 -6.287075127245377e-01 + -6.285171950849623e-01 -6.283263208775478e-01 -6.281348926187029e-01 -6.279429120773061e-01 -6.277503812180564e-01 + -6.275573022752827e-01 -6.273636774541002e-01 -6.271695087389834e-01 -6.269747979757735e-01 -6.267795473573458e-01 + -6.265837591630624e-01 -6.263874355834504e-01 -6.261905784094625e-01 -6.259931895045528e-01 -6.257952710369122e-01 + -6.255968250363517e-01 -6.253978534898084e-01 -6.251983584520242e-01 -6.249983420853732e-01 -6.247978064572296e-01 + -6.245967533125147e-01 -6.243951846742302e-01 -6.241931026018996e-01 -6.239905086686763e-01 -6.237874050561640e-01 + -6.235837942608177e-01 -6.233796778475696e-01 -6.231750576026635e-01 -6.229699356978790e-01 -6.227643140512986e-01 + -6.225581944126894e-01 -6.223515785171654e-01 -6.221444686516174e-01 -6.219368669106876e-01 -6.217287748516653e-01 + -6.215201944179222e-01 -6.213111276341791e-01 -6.211015763012264e-01 -6.208915420627059e-01 -6.206810267189914e-01 + -6.204700325606027e-01 -6.202585614407183e-01 -6.200466150025669e-01 -6.198341952555039e-01 -6.196213039807257e-01 + -6.194079427661365e-01 -6.191941133919308e-01 -6.189798178811384e-01 -6.187650583625046e-01 -6.185498365366234e-01 + -6.183341539791172e-01 -6.181180123373080e-01 -6.179014136693182e-01 -6.176843597571294e-01 -6.174668518753883e-01 + -6.172488922358068e-01 -6.170304830078728e-01 -6.168116255085183e-01 -6.165923213940302e-01 -6.163725725542526e-01 + -6.161523808379610e-01 -6.159317477445455e-01 -6.157106747923912e-01 -6.154891641891720e-01 -6.152672177134336e-01 + -6.150448367622374e-01 -6.148220230127394e-01 -6.145987783325538e-01 -6.143751045698781e-01 -6.141510029326600e-01 + -6.139264750393221e-01 -6.137015231470567e-01 -6.134761489851926e-01 -6.132503540152313e-01 -6.130241396532106e-01 + -6.127975076851865e-01 -6.125704598048077e-01 -6.123429972989166e-01 -6.121151221351967e-01 -6.118868363314907e-01 + -6.116581411278224e-01 -6.114290380220153e-01 -6.111995287783158e-01 -6.109696151823703e-01 -6.107392985450728e-01 + -6.105085801024925e-01 -6.102774622058419e-01 -6.100459465922933e-01 -6.098140342484372e-01 -6.095817267256873e-01 + -6.093490257933440e-01 -6.091159331809802e-01 -6.088824500709522e-01 -6.086485779905337e-01 -6.084143191489354e-01 + -6.081796748129595e-01 -6.079446461968719e-01 -6.077092351925356e-01 -6.074734432434898e-01 -6.072372716150822e-01 + -6.070007218360295e-01 -6.067637956065657e-01 -6.065264946232775e-01 -6.062888203126375e-01 -6.060507740692458e-01 + -6.058123573561740e-01 -6.055735718185850e-01 -6.053344188005130e-01 -6.050948994718379e-01 -6.048550157592759e-01 + -6.046147693250087e-01 -6.043741612917217e-01 -6.041331930896253e-01 -6.038918662688606e-01 -6.036501823335466e-01 + -6.034081424814672e-01 -6.031657481058161e-01 -6.029230011393863e-01 -6.026799028730719e-01 -6.024364544399844e-01 + -6.021926574869638e-01 -6.019485136055120e-01 -6.017040241022006e-01 -6.014591897708976e-01 -6.012140122415236e-01 + -6.009684936432825e-01 -6.007226351565053e-01 -6.004764378633045e-01 -6.002299030368295e-01 -5.999830322604393e-01 + -5.997358269112610e-01 -5.994882881008079e-01 -5.992404174674395e-01 -5.989922165630734e-01 -5.987436865327392e-01 + -5.984948286273432e-01 -5.982456442781595e-01 -5.979961350600861e-01 -5.977463018616249e-01 -5.974961457245347e-01 + -5.972456688462123e-01 -5.969948725706038e-01 -5.967437577688297e-01 -5.964923259025159e-01 -5.962405782771161e-01 + -5.959885160038786e-01 -5.957361402849749e-01 -5.954834525607696e-01 -5.952304544228757e-01 -5.949771471628894e-01 + -5.947235319540697e-01 -5.944696099654433e-01 -5.942153825546195e-01 -5.939608509107162e-01 -5.937060159741117e-01 + -5.934508794411635e-01 -5.931954428951332e-01 -5.929397071302310e-01 -5.926836734445704e-01 -5.924273432987167e-01 + -5.921707177793331e-01 -5.919137978828047e-01 -5.916565847753502e-01 -5.913990801532651e-01 -5.911412853604616e-01 + -5.908832013941032e-01 -5.906248293335863e-01 -5.903661704565201e-01 -5.901072261246485e-01 -5.898479972855557e-01 + -5.895884850905705e-01 -5.893286910470348e-01 -5.890686164387193e-01 -5.888082623596927e-01 -5.885476297953414e-01 + -5.882867200485414e-01 -5.880255342895034e-01 -5.877640732646211e-01 -5.875023385228563e-01 -5.872403317009627e-01 + -5.869780535979796e-01 -5.867155052441069e-01 -5.864526878805291e-01 -5.861896026754034e-01 -5.859262506932092e-01 + -5.856626329801135e-01 -5.853987507817091e-01 -5.851346053972879e-01 -5.848701980701103e-01 -5.846055297559873e-01 + -5.843406014627009e-01 -5.840754143260567e-01 -5.838099692919883e-01 -5.835442675863415e-01 -5.832783108438364e-01 + -5.830120998737411e-01 -5.827456354637697e-01 -5.824789190313094e-01 -5.822119517157962e-01 -5.819447343999242e-01 + -5.816772678604962e-01 -5.814095534384316e-01 -5.811415926659900e-01 -5.808733865100626e-01 -5.806049358083534e-01 + -5.803362414940428e-01 -5.800673049021045e-01 -5.797981269727348e-01 -5.795287083747186e-01 -5.792590507223763e-01 + -5.789891553127540e-01 -5.787190227795775e-01 -5.784486540773595e-01 -5.781780503537821e-01 -5.779072127885909e-01 + -5.776361421027820e-01 -5.773648392415993e-01 -5.770933058481036e-01 -5.768215427543451e-01 -5.765495506173008e-01 + -5.762773307782053e-01 -5.760048843724456e-01 -5.757322122309633e-01 -5.754593149355522e-01 -5.751861936930261e-01 + -5.749128500443350e-01 -5.746392847733658e-01 -5.743654986749642e-01 -5.740914927526973e-01 -5.738172681170074e-01 + -5.735428256834612e-01 -5.732681661997935e-01 -5.729932909950833e-01 -5.727182011898047e-01 -5.724428973589288e-01 + -5.721673806475209e-01 -5.718916522032619e-01 -5.716157126986885e-01 -5.713395629769044e-01 -5.710632040862346e-01 + -5.707866372440725e-01 -5.705098634203313e-01 -5.702328834166335e-01 -5.699556980810941e-01 -5.696783084118523e-01 + -5.694007154024264e-01 -5.691229196446771e-01 -5.688449222662509e-01 -5.685667247951188e-01 -5.682883277592247e-01 + -5.680097317796297e-01 -5.677309379467054e-01 -5.674519473718960e-01 -5.671727608332666e-01 -5.668933787438524e-01 + -5.666138024324125e-01 -5.663340332775648e-01 -5.660540719736767e-01 -5.657739191147048e-01 -5.654935755198692e-01 + -5.652130424887296e-01 -5.649323205844615e-01 -5.646514102596061e-01 -5.643703131320561e-01 -5.640890302500955e-01 + -5.638075621229782e-01 -5.635259096013298e-01 -5.632440735413435e-01 -5.629620547371306e-01 -5.626798540413637e-01 + -5.623974724401825e-01 -5.621149109968532e-01 -5.618321704141040e-01 -5.615492514232792e-01 -5.612661549867731e-01 + -5.609828820346520e-01 -5.606994332802816e-01 -5.604158091721365e-01 -5.601320109850756e-01 -5.598480400285579e-01 + -5.595638966628304e-01 -5.592795815381203e-01 -5.589950956088516e-01 -5.587104398719418e-01 -5.584256150214867e-01 + -5.581406216413944e-01 -5.578554608147975e-01 -5.575701335442586e-01 -5.572846406020895e-01 -5.569989825973618e-01 + -5.567131602740183e-01 -5.564271745453506e-01 -5.561410260628522e-01 -5.558547156725416e-01 -5.555682445647333e-01 + -5.552816133007876e-01 -5.549948224318785e-01 -5.547078730025937e-01 -5.544207659049382e-01 -5.541335017868810e-01 + -5.538460810525171e-01 -5.535585047530838e-01 -5.532707741030544e-01 -5.529828895161875e-01 -5.526948516856666e-01 + -5.524066615722431e-01 -5.521183198617187e-01 -5.518298271294942e-01 -5.515411840216864e-01 -5.512523916981388e-01 + -5.509634510475757e-01 -5.506743625070015e-01 -5.503851268106821e-01 -5.500957448096843e-01 -5.498062173123895e-01 + -5.495165448046009e-01 -5.492267279674086e-01 -5.489367680360671e-01 -5.486466657159732e-01 -5.483564214808752e-01 + -5.480660360175322e-01 -5.477755101695411e-01 -5.474848446983241e-01 -5.471940399297857e-01 -5.469030967097296e-01 + -5.466120162347039e-01 -5.463207992130580e-01 -5.460294461220425e-01 -5.457379574365921e-01 -5.454463341419615e-01 + -5.451545769787555e-01 -5.448626863052353e-01 -5.445706629798505e-01 -5.442785079610155e-01 -5.439862220351145e-01 + -5.436938056623958e-01 -5.434012594168094e-01 -5.431085842649811e-01 -5.428157805859503e-01 -5.425228488112607e-01 + -5.422297902211034e-01 -5.419366056396356e-01 -5.416432955189590e-01 -5.413498603513526e-01 -5.410563008101139e-01 + -5.407626176406882e-01 -5.404688113584152e-01 -5.401748827259091e-01 -5.398808327262222e-01 -5.395866619984641e-01 + -5.392923710452394e-01 -5.389979603718316e-01 -5.387034307479797e-01 -5.384087828255361e-01 -5.381140170098579e-01 + -5.378191341794292e-01 -5.375241352697128e-01 -5.372290208939874e-01 -5.369337913756430e-01 -5.366384472427702e-01 + -5.363429897090184e-01 -5.360474189692397e-01 -5.357517350808286e-01 -5.354559397287709e-01 -5.351600336380363e-01 + -5.348640167550405e-01 -5.345678898586708e-01 -5.342716537895550e-01 -5.339753091509816e-01 -5.336788560795809e-01 + -5.333822952812678e-01 -5.330856281219807e-01 -5.327888549366336e-01 -5.324919760228772e-01 -5.321949921530423e-01 + -5.318979038948367e-01 -5.316007117591099e-01 -5.313034163655616e-01 -5.310060185016283e-01 -5.307085188690476e-01 + -5.304109178113635e-01 -5.301132159560333e-01 -5.298154141057816e-01 -5.295175129068631e-01 -5.292195125739295e-01 + -5.289214133220888e-01 -5.286232164928936e-01 -5.283249229043371e-01 -5.280265326905970e-01 -5.277280463629660e-01 + -5.274294646406563e-01 -5.271307882435877e-01 -5.268320172699235e-01 -5.265331522204252e-01 -5.262341943956992e-01 + -5.259351442515741e-01 -5.256360020246456e-01 -5.253367683007200e-01 -5.250374438802079e-01 -5.247380293156688e-01 + -5.244385244793137e-01 -5.241389303158239e-01 -5.238392481089597e-01 -5.235394779437145e-01 -5.232396201567239e-01 + -5.229396754457293e-01 -5.226396444439171e-01 -5.223395275325885e-01 -5.220393250130385e-01 -5.217390378529512e-01 + -5.214386667612969e-01 -5.211382119631184e-01 -5.208376739941909e-01 -5.205370535049869e-01 -5.202363510969753e-01 + -5.199355670763710e-01 -5.196347019022574e-01 -5.193337564915598e-01 -5.190327313042545e-01 -5.187316266472318e-01 + -5.184304431068453e-01 -5.181291813913007e-01 -5.178278420262173e-01 -5.175264249304404e-01 -5.172249309061349e-01 + -5.169233612064826e-01 -5.166217158673360e-01 -5.163199951550123e-01 -5.160181998004911e-01 -5.157163303784532e-01 + -5.154143871836301e-01 -5.151123703899823e-01 -5.148102810445049e-01 -5.145081200022412e-01 -5.142058873966443e-01 + -5.139035834879907e-01 -5.136012088439446e-01 -5.132987643470369e-01 -5.129962500176725e-01 -5.126936660139045e-01 + -5.123910137907831e-01 -5.120882937169244e-01 -5.117855056864241e-01 -5.114826505830118e-01 -5.111797289351894e-01 + -5.108767409175631e-01 -5.105736869791608e-01 -5.102705678009448e-01 -5.099673841164564e-01 -5.096641361609235e-01 + -5.093608243087677e-01 -5.090574492425100e-01 -5.087540114820200e-01 -5.084505112619658e-01 -5.081469486274651e-01 + -5.078433245912960e-01 -5.075396400795943e-01 -5.072358951124865e-01 -5.069320899536702e-01 -5.066282251477461e-01 + -5.063243014155288e-01 -5.060203189866231e-01 -5.057162780382299e-01 -5.054121795257869e-01 -5.051080240346536e-01 + -5.048038117428125e-01 -5.044995428560932e-01 -5.041952179946867e-01 -5.038908379779851e-01 -5.035864027540428e-01 + -5.032819126747086e-01 -5.029773687584369e-01 -5.026727713803431e-01 -5.023681207203433e-01 -5.020634170773620e-01 + -5.017586611304518e-01 -5.014538534087800e-01 -5.011489939472488e-01 -5.008440834008399e-01 -5.005391225202214e-01 + -5.002341114848970e-01 -4.999290507534227e-01 -4.996239408965545e-01 -4.993187821357916e-01 -4.990135746184980e-01 + -4.987083187010172e-01 -4.984030154770353e-01 -4.980976654859903e-01 -4.977922686591017e-01 -4.974868253646026e-01 + -4.971813362150598e-01 -4.968758018164073e-01 -4.965702219796178e-01 -4.962645970518764e-01 -4.959589283986423e-01 + -4.956532161259331e-01 -4.953474601672504e-01 -4.950416611894621e-01 -4.947358197709370e-01 -4.944299362131679e-01 + -4.941240104625670e-01 -4.938180432013966e-01 -4.935120353360559e-01 -4.932059869696777e-01 -4.928998983832586e-01 + -4.925937700937396e-01 -4.922876025288242e-01 -4.919813957951697e-01 -4.916751499430368e-01 -4.913688660561277e-01 + -4.910625447982750e-01 -4.907561860728009e-01 -4.904497902858990e-01 -4.901433579647613e-01 -4.898368894758774e-01 + -4.895303847877975e-01 -4.892238442443610e-01 -4.889172690570770e-01 -4.886106594399146e-01 -4.883040152916479e-01 + -4.879973371198497e-01 -4.876906255185612e-01 -4.873838808516193e-01 -4.870771028969680e-01 -4.867702923235035e-01 + -4.864634502410182e-01 -4.861565765237592e-01 -4.858496713307078e-01 -4.855427352755911e-01 -4.852357685536697e-01 + -4.849287714451036e-01 -4.846217444589359e-01 -4.843146879997467e-01 -4.840076025123002e-01 -4.837004885060202e-01 + -4.833933461066379e-01 -4.830861755003688e-01 -4.827789772517898e-01 -4.824717516127337e-01 -4.821644988235214e-01 + -4.818572195031119e-01 -4.815499140763169e-01 -4.812425828318353e-01 -4.809352261296052e-01 -4.806278443199989e-01 + -4.803204376463540e-01 -4.800130060714603e-01 -4.797055501717924e-01 -4.793980709573083e-01 -4.790905684347367e-01 + -4.787830426340720e-01 -4.784754939887473e-01 -4.781679231200341e-01 -4.778603302286951e-01 -4.775527150015833e-01 + -4.772450784284375e-01 -4.769374213667171e-01 -4.766297434623847e-01 -4.763220450397429e-01 -4.760143266869929e-01 + -4.757065886153464e-01 -4.753988310011543e-01 -4.750910541528841e-01 -4.747832586964973e-01 -4.744754450010169e-01 + -4.741676132522562e-01 -4.738597638648681e-01 -4.735518971269201e-01 -4.732440131603057e-01 -4.729361121339242e-01 + -4.726281945136708e-01 -4.723202610280838e-01 -4.720123119889466e-01 -4.717043475548789e-01 -4.713963678930571e-01 + -4.710883732580126e-01 -4.707803639362851e-01 -4.704723402372425e-01 -4.701643027667922e-01 -4.698562520096238e-01 + -4.695481878708884e-01 -4.692401107063794e-01 -4.689320210638210e-01 -4.686239190614940e-01 -4.683158048406638e-01 + -4.680076787162389e-01 -4.676995413185929e-01 -4.673913930202820e-01 -4.670832339045677e-01 -4.667750641928977e-01 + -4.664668842720264e-01 -4.661586945788764e-01 -4.658504950199774e-01 -4.655422858974875e-01 -4.652340682220931e-01 + -4.649258420178881e-01 -4.646176071935555e-01 -4.643093642460228e-01 -4.640011135361189e-01 -4.636928552533583e-01 + -4.633845894780055e-01 -4.630763167063440e-01 -4.627680375263447e-01 -4.624597520114774e-01 -4.621514604268375e-01 + -4.618431632080228e-01 -4.615348605890552e-01 -4.612265525685530e-01 -4.609182391698630e-01 -4.606099213200685e-01 + -4.603015994943055e-01 -4.599932734377760e-01 -4.596849434943749e-01 -4.593766101319814e-01 -4.590682736286037e-01 + -4.587599339472412e-01 -4.584515913122191e-01 -4.581432465762054e-01 -4.578348999443045e-01 -4.575265513883392e-01 + -4.572182012155285e-01 -4.569098498253546e-01 -4.566014974456956e-01 -4.562931438038699e-01 -4.559847894939479e-01 + -4.556764355440957e-01 -4.553680818446301e-01 -4.550597283221777e-01 -4.547513752454754e-01 -4.544430231318768e-01 + -4.541346721146189e-01 -4.538263219879204e-01 -4.535179736207505e-01 -4.532096276207381e-01 -4.529012837320638e-01 + -4.525929421989657e-01 -4.522846033793929e-01 -4.519762674029318e-01 -4.516679344715044e-01 -4.513596049388520e-01 + -4.510512793496801e-01 -4.507429578901284e-01 -4.504346405869434e-01 -4.501263277269192e-01 -4.498180196893253e-01 + -4.495097167463535e-01 -4.492014186979058e-01 -4.488931259139300e-01 -4.485848392328776e-01 -4.482765586745183e-01 + -4.479682843350483e-01 -4.476600166157323e-01 -4.473517555800268e-01 -4.470435013321629e-01 -4.467352542154915e-01 + -4.464270145748750e-01 -4.461187827567155e-01 -4.458105590951706e-01 -4.455023436689998e-01 -4.451941365719282e-01 + -4.448859382022067e-01 -4.445777486373541e-01 -4.442695679571050e-01 -4.439613968717006e-01 -4.436532356916815e-01 + -4.433450843880059e-01 -4.430369431657580e-01 -4.427288122616561e-01 -4.424206918620519e-01 -4.421125820372482e-01 + -4.418044832064567e-01 -4.414963960811867e-01 -4.411883204960218e-01 -4.408802564087612e-01 -4.405722043668788e-01 + -4.402641646390490e-01 -4.399561373068210e-01 -4.396481224088197e-01 -4.393401203468038e-01 -4.390321316119934e-01 + -4.387241564347777e-01 -4.384161947343386e-01 -4.381082465266398e-01 -4.378003125430411e-01 -4.374923928277115e-01 + -4.371844871230922e-01 -4.368765963346815e-01 -4.365687207997857e-01 -4.362608601883623e-01 -4.359530147661063e-01 + -4.356451849773876e-01 -4.353373711547212e-01 -4.350295729831375e-01 -4.347217906709347e-01 -4.344140253247259e-01 + -4.341062767701542e-01 -4.337985447574569e-01 -4.334908298973194e-01 -4.331831324142745e-01 -4.328754522838512e-01 + -4.325677895304312e-01 -4.322601446380396e-01 -4.319525182069930e-01 -4.316449103351276e-01 -4.313373209430619e-01 + -4.310297500384340e-01 -4.307221981580691e-01 -4.304146654764764e-01 -4.301071518609876e-01 -4.297996578556980e-01 + -4.294921838432407e-01 -4.291847298181669e-01 -4.288772959356691e-01 -4.285698824691314e-01 -4.282624896947286e-01 + -4.279551173581843e-01 -4.276477655542056e-01 -4.273404353166645e-01 -4.270331268873108e-01 -4.267258400671970e-01 + -4.264185747737768e-01 -4.261113314513503e-01 -4.258041105111009e-01 -4.254969114260224e-01 -4.251897346526543e-01 + -4.248825811839114e-01 -4.245754507348872e-01 -4.242683433304872e-01 -4.239612594489042e-01 -4.236541990429175e-01 + -4.233471621233121e-01 -4.230401489624036e-01 -4.227331599159186e-01 -4.224261953202194e-01 -4.221192554076946e-01 + -4.218123401221037e-01 -4.215054495276057e-01 -4.211985840665567e-01 -4.208917437341202e-01 -4.205849285470991e-01 + -4.202781391077526e-01 -4.199713756820169e-01 -4.196646382796324e-01 -4.193579269625680e-01 -4.190512419898234e-01 + -4.187445835885104e-01 -4.184379514023820e-01 -4.181313458657921e-01 -4.178247679943504e-01 -4.175182174706034e-01 + -4.172116941638125e-01 -4.169051985589959e-01 -4.165987308801878e-01 -4.162922910262470e-01 -4.159858787333477e-01 + -4.156794948456864e-01 -4.153731400237493e-01 -4.150668138055245e-01 -4.147605162480433e-01 -4.144542477033889e-01 + -4.141480084083939e-01 -4.138417983331389e-01 -4.135356175072968e-01 -4.132294665425894e-01 -4.129233456523720e-01 + -4.126172547353913e-01 -4.123111939769975e-01 -4.120051637027982e-01 -4.116991641480549e-01 -4.113931948631621e-01 + -4.110872561089984e-01 -4.107813489720965e-01 -4.104754732505308e-01 -4.101696286974395e-01 -4.098638156566466e-01 + -4.095580344057681e-01 -4.092522850492459e-01 -4.089465675148873e-01 -4.086408821301867e-01 -4.083352292811099e-01 + -4.080296090087697e-01 -4.077240214925531e-01 -4.074184669621912e-01 -4.071129454474836e-01 -4.068074568206541e-01 + -4.065020011172992e-01 -4.061965792344674e-01 -4.058911914234347e-01 -4.055858372701102e-01 -4.052805169731385e-01 + -4.049752308691225e-01 -4.046699791746853e-01 -4.043647616984872e-01 -4.040595785275335e-01 -4.037544302850327e-01 + -4.034493171430220e-01 -4.031442391412985e-01 -4.028391964411297e-01 -4.025341890399178e-01 -4.022292169515432e-01 + -4.019242804318620e-01 -4.016193797575413e-01 -4.013145151618574e-01 -4.010096867767989e-01 -4.007048946739946e-01 + -4.004001389575452e-01 -4.000954199442892e-01 -3.997907376333255e-01 -3.994860918450180e-01 -3.991814831388100e-01 + -3.988769118682245e-01 -3.985723779299208e-01 -3.982678813725196e-01 -3.979634224118638e-01 -3.976590013430957e-01 + -3.973546179557737e-01 -3.970502723184750e-01 -3.967459652757308e-01 -3.964416967373386e-01 -3.961374664325438e-01 + -3.958332748416728e-01 -3.955291221412219e-01 -3.952250082276700e-01 -3.949209329883424e-01 -3.946168969005399e-01 + -3.943129006192436e-01 -3.940089438207542e-01 -3.937050264421336e-01 -3.934011488327164e-01 -3.930973111392007e-01 + -3.927935133510078e-01 -3.924897554398895e-01 -3.921860379028622e-01 -3.918823611410527e-01 -3.915787251272155e-01 + -3.912751296302741e-01 -3.909715747221262e-01 -3.906680610479274e-01 -3.903645884467465e-01 -3.900611567141484e-01 + -3.897577665105899e-01 -3.894544180732338e-01 -3.891511112918067e-01 -3.888478460867855e-01 -3.885446227676595e-01 + -3.882414417069796e-01 -3.879383024897914e-01 -3.876352053351357e-01 -3.873321510269954e-01 -3.870291394376005e-01 + -3.867261704550462e-01 -3.864232442776043e-01 -3.861203610538394e-01 -3.858175208256477e-01 -3.855147235659399e-01 + -3.852119696012977e-01 -3.849092593053318e-01 -3.846065928280623e-01 -3.843039700003283e-01 -3.840013907871894e-01 + -3.836988557264463e-01 -3.833963646642737e-01 -3.830939173673272e-01 -3.827915146861536e-01 -3.824891567344230e-01 + -3.821868431312930e-01 -3.818845742897094e-01 -3.815823505036508e-01 -3.812801717050347e-01 -3.809780375081945e-01 + -3.806759481537249e-01 -3.803739045452896e-01 -3.800719066553854e-01 -3.797699542729503e-01 -3.794680474344709e-01 + -3.791661864151066e-01 -3.788643713579414e-01 -3.785626020610045e-01 -3.782608787892401e-01 -3.779592019649877e-01 + -3.776575717504184e-01 -3.773559879986245e-01 -3.770544506277551e-01 -3.767529601718599e-01 -3.764515165488658e-01 + -3.761501194541416e-01 -3.758487697291592e-01 -3.755474675286999e-01 -3.752462123142175e-01 -3.749450044400430e-01 + -3.746438442933219e-01 -3.743427319385532e-01 -3.740416670860849e-01 -3.737406497610264e-01 -3.734396805632812e-01 + -3.731387597991040e-01 -3.728378873981389e-01 -3.725370629746288e-01 -3.722362869751284e-01 -3.719355598195744e-01 + -3.716348809475082e-01 -3.713342505611615e-01 -3.710336692885385e-01 -3.707331373206220e-01 -3.704326544188714e-01 + -3.701322203470578e-01 -3.698318357923215e-01 -3.695315007664240e-01 -3.692312147431765e-01 -3.689309784821330e-01 + -3.686307923312130e-01 -3.683306558583173e-01 -3.680305692832940e-01 -3.677305328772401e-01 -3.674305466155561e-01 + -3.671306102835627e-01 -3.668307239979260e-01 -3.665308885123383e-01 -3.662311039528895e-01 -3.659313700864294e-01 + -3.656316867340536e-01 -3.653320542170925e-01 -3.650324728818179e-01 -3.647329423252613e-01 -3.644334627823841e-01 + -3.641340348652060e-01 -3.638346584224414e-01 -3.635353333854674e-01 -3.632360599381753e-01 -3.629368383087880e-01 + -3.626376683911322e-01 -3.623385498640058e-01 -3.620394834143431e-01 -3.617404694429358e-01 -3.614415075289109e-01 + -3.611425978472304e-01 -3.608437406892576e-01 -3.605449360396625e-01 -3.602461837170217e-01 -3.599474837636126e-01 + -3.596488368123176e-01 -3.593502429497555e-01 -3.590517019950174e-01 -3.587532141258951e-01 -3.584547794364419e-01 + -3.581563978967544e-01 -3.578580694598877e-01 -3.575597943932133e-01 -3.572615731273898e-01 -3.569634054963255e-01 + -3.566652915450074e-01 -3.563672316398869e-01 -3.560692255181004e-01 -3.557712730433470e-01 -3.554733745722332e-01 + -3.551755304325120e-01 -3.548777407381354e-01 -3.545800053200450e-01 -3.542823243820459e-01 -3.539846981602633e-01 + -3.536871265064687e-01 -3.533896092936707e-01 -3.530921466577667e-01 -3.527947392696623e-01 -3.524973870763591e-01 + -3.522000896417020e-01 -3.519028473926252e-01 -3.516056606257513e-01 -3.513085292624320e-01 -3.510114529438408e-01 + -3.507144318797571e-01 -3.504174668509267e-01 -3.501205576763053e-01 -3.498237041407538e-01 -3.495269064579332e-01 + -3.492301648012658e-01 -3.489334792023763e-01 -3.486368495320163e-01 -3.483402759532310e-01 -3.480437587608516e-01 + -3.477472981563033e-01 -3.474508940116457e-01 -3.471545462266357e-01 -3.468582552838557e-01 -3.465620210594309e-01 + -3.462658431862374e-01 -3.459697223261950e-01 -3.456736587298253e-01 -3.453776521244075e-01 -3.450817025977070e-01 + -3.447858103250944e-01 -3.444899754033867e-01 -3.441941976114102e-01 -3.438984770490408e-01 -3.436028143288083e-01 + -3.433072093931014e-01 -3.430116620696204e-01 -3.427161725111446e-01 -3.424207408695913e-01 -3.421253671506906e-01 + -3.418300511322294e-01 -3.415347931565998e-01 -3.412395936962896e-01 -3.409444525560181e-01 -3.406493696743920e-01 + -3.403543451949735e-01 -3.400593792856730e-01 -3.397644718554241e-01 -3.394696227303268e-01 -3.391748324448361e-01 + -3.388801012525273e-01 -3.385854289098167e-01 -3.382908154719833e-01 -3.379962610967925e-01 -3.377017658856785e-01 + -3.374073296405456e-01 -3.371129523992028e-01 -3.368186347618567e-01 -3.365243767275647e-01 -3.362301780997549e-01 + -3.359360390044588e-01 -3.356419595939377e-01 -3.353479398983790e-01 -3.350539796822969e-01 -3.347600792157354e-01 + -3.344662390001809e-01 -3.341724588683134e-01 -3.338787387386647e-01 -3.335850787505256e-01 -3.332914790393797e-01 + -3.329979395469141e-01 -3.327044601082655e-01 -3.324110411740308e-01 -3.321176830325031e-01 -3.318243854727410e-01 + -3.315311485033696e-01 -3.312379722613320e-01 -3.309448568815591e-01 -3.306518021855764e-01 -3.303588081394571e-01 + -3.300658753265905e-01 -3.297730038003383e-01 -3.294801933460689e-01 -3.291874440822869e-01 -3.288947561448500e-01 + -3.286021295596533e-01 -3.283095641084477e-01 -3.280170600152969e-01 -3.277246178092963e-01 -3.274322373144385e-01 + -3.271399184133136e-01 -3.268476612759387e-01 -3.265554660369243e-01 -3.262633326374516e-01 -3.259712608638953e-01 + -3.256792511518811e-01 -3.253873038511834e-01 -3.250954187049387e-01 -3.248035957166725e-01 -3.245118350464998e-01 + -3.242201368055027e-01 -3.239285008232202e-01 -3.236369270127419e-01 -3.233454159517716e-01 -3.230539677655248e-01 + -3.227625822208953e-01 -3.224712593689608e-01 -3.221799993547627e-01 -3.218888022707884e-01 -3.215976678728723e-01 + -3.213065962862219e-01 -3.210155880538063e-01 -3.207246430922022e-01 -3.204337612603162e-01 -3.201429426545060e-01 + -3.198521874188910e-01 -3.195614955407240e-01 -3.192708667833873e-01 -3.189803015317205e-01 -3.186898001852494e-01 + -3.183993624745159e-01 -3.181089883645859e-01 -3.178186780215274e-01 -3.175284315788672e-01 -3.172382488912609e-01 + -3.169481298117736e-01 -3.166580748847834e-01 -3.163680842820584e-01 -3.160781577505636e-01 -3.157882953403168e-01 + -3.154984971942622e-01 -3.152087634033934e-01 -3.149190937439705e-01 -3.146294882798918e-01 -3.143399475483734e-01 + -3.140504715109739e-01 -3.137610600081304e-01 -3.134717131245625e-01 -3.131824310053718e-01 -3.128932136614712e-01 + -3.126040608259110e-01 -3.123149728003283e-01 -3.120259500284038e-01 -3.117369923103007e-01 -3.114480995811182e-01 + -3.111592719695180e-01 -3.108705096041851e-01 -3.105818123704323e-01 -3.102931800853200e-01 -3.100046132424714e-01 + -3.097161120700553e-01 -3.094276763275429e-01 -3.091393060498078e-01 -3.088510013669117e-01 -3.085627623567511e-01 + -3.082745888090075e-01 -3.079864807413559e-01 -3.076984387104112e-01 -3.074104627037881e-01 -3.071225525229602e-01 + -3.068347082674415e-01 -3.065469300647063e-01 -3.062592179233167e-01 -3.059715715883658e-01 -3.056839913222955e-01 + -3.053964776128304e-01 -3.051090302429263e-01 -3.048216491115613e-01 -3.045343343664140e-01 -3.042470861256498e-01 + -3.039599042912569e-01 -3.036727886539801e-01 -3.033857396783212e-01 -3.030987576532087e-01 -3.028118423290159e-01 + -3.025249936916685e-01 -3.022382118572411e-01 -3.019514969324824e-01 -3.016648487319269e-01 -3.013782672163520e-01 + -3.010917529380510e-01 -3.008053059332530e-01 -3.005189259718208e-01 -3.002326131255288e-01 -2.999463675243501e-01 + -2.996601892115071e-01 -2.993740779431134e-01 -2.990880338991673e-01 -2.988020575697556e-01 -2.985161488129333e-01 + -2.982303074956766e-01 -2.979445337070337e-01 -2.976588275957710e-01 -2.973731891105994e-01 -2.970876179949718e-01 + -2.968021146693378e-01 -2.965166794729635e-01 -2.962313121299224e-01 -2.959460126205053e-01 -2.956607810824475e-01 + -2.953756176130727e-01 -2.950905220348498e-01 -2.948054942542040e-01 -2.945205348259674e-01 -2.942356438398593e-01 + -2.939508210351428e-01 -2.936660664737455e-01 -2.933813802767271e-01 -2.930967624892026e-01 -2.928122128931882e-01 + -2.925277316158055e-01 -2.922433191494531e-01 -2.919589753765323e-01 -2.916747001400424e-01 -2.913904935350139e-01 + -2.911063557118664e-01 -2.908222866434848e-01 -2.905382860439090e-01 -2.902543542778646e-01 -2.899704917370004e-01 + -2.896866981425306e-01 -2.894029734511842e-01 -2.891193178139609e-01 -2.888357313345801e-01 -2.885522138545054e-01 + -2.882687652243500e-01 -2.879853859636904e-01 -2.877020762131379e-01 -2.874188357014512e-01 -2.871356645025479e-01 + -2.868525627422169e-01 -2.865695304469716e-01 -2.862865673963798e-01 -2.860036736642309e-01 -2.857208497673618e-01 + -2.854380956360413e-01 -2.851554110854154e-01 -2.848727961880673e-01 -2.845902510831507e-01 -2.843077757793696e-01 + -2.840253700094237e-01 -2.837430340397069e-01 -2.834607682748240e-01 -2.831785725328111e-01 -2.828964467316310e-01 + -2.826143909542473e-01 -2.823324053101364e-01 -2.820504896922502e-01 -2.817686439371250e-01 -2.814868685136343e-01 + -2.812051636152371e-01 -2.809235289745332e-01 -2.806419646055033e-01 -2.803604706362606e-01 -2.800790471610514e-01 + -2.797976939416736e-01 -2.795164109639519e-01 -2.792351987736799e-01 -2.789540573481899e-01 -2.786729864814172e-01 + -2.783919862645312e-01 -2.781110567914744e-01 -2.778301980476193e-01 -2.775494098202491e-01 -2.772686923282846e-01 + -2.769880459823117e-01 -2.767074706347814e-01 -2.764269661749121e-01 -2.761465326612197e-01 -2.758661702373058e-01 + -2.755858788282252e-01 -2.753056582075042e-01 -2.750255088041456e-01 -2.747454308713073e-01 -2.744654241403574e-01 + -2.741854886058927e-01 -2.739056243892176e-01 -2.736258315782464e-01 -2.733461099674180e-01 -2.730664595012521e-01 + -2.727868807168794e-01 -2.725073736368404e-01 -2.722279380246611e-01 -2.719485739535283e-01 -2.716692815376729e-01 + -2.713900607905190e-01 -2.711109114418696e-01 -2.708318336740216e-01 -2.705528279896257e-01 -2.702738942089605e-01 + -2.699950321750810e-01 -2.697162419812612e-01 -2.694375237750356e-01 -2.691588774953904e-01 -2.688803028674867e-01 + -2.686018002777490e-01 -2.683233700490228e-01 -2.680450119322323e-01 -2.677667258920440e-01 -2.674885120321642e-01 + -2.672103704327183e-01 -2.669323009240009e-01 -2.666543034142266e-01 -2.663763784024609e-01 -2.660985259744725e-01 + -2.658207458961011e-01 -2.655430381891060e-01 -2.652654029648259e-01 -2.649878402880381e-01 -2.647103499069445e-01 + -2.644329319184849e-01 -2.641555868035665e-01 -2.638783144422805e-01 -2.636011146840161e-01 -2.633239876271375e-01 + -2.630469333706403e-01 -2.627699518665801e-01 -2.624930428881614e-01 -2.622162067361601e-01 -2.619394437425979e-01 + -2.616627537197243e-01 -2.613861365959049e-01 -2.611095924398818e-01 -2.608331213683194e-01 -2.605567232565551e-01 + -2.602803979638560e-01 -2.600041459185203e-01 -2.597279672559259e-01 -2.594518617711524e-01 -2.591758294668244e-01 + -2.588998704444723e-01 -2.586239847880919e-01 -2.583481722507706e-01 -2.580724328621725e-01 -2.577967671126083e-01 + -2.575211749406902e-01 -2.572456561780725e-01 -2.569702108956164e-01 -2.566948391959332e-01 -2.564195410517088e-01 + -2.561443162003717e-01 -2.558691649278121e-01 -2.555940876367002e-01 -2.553190840839927e-01 -2.550441541814838e-01 + -2.547692980445108e-01 -2.544945157803290e-01 -2.542198072584164e-01 -2.539451722830000e-01 -2.536706112997469e-01 + -2.533961245035316e-01 -2.531217116489478e-01 -2.528473727232912e-01 -2.525731078267265e-01 -2.522989170513077e-01 + -2.520248001810547e-01 -2.517507572028029e-01 -2.514767886096237e-01 -2.512028943623831e-01 -2.509290742545349e-01 + -2.506553283625735e-01 -2.503816568034038e-01 -2.501080595782905e-01 -2.498345364108095e-01 -2.495610875124447e-01 + -2.492877133133172e-01 -2.490144136112123e-01 -2.487411882994743e-01 -2.484680374856057e-01 -2.481949612635986e-01 + -2.479219595287280e-01 -2.476490320734136e-01 -2.473761793087864e-01 -2.471034014703498e-01 -2.468306982957061e-01 + -2.465580697844871e-01 -2.462855160432138e-01 -2.460130371204629e-01 -2.457406328233614e-01 -2.454683031113906e-01 + -2.451960484794311e-01 -2.449238689415910e-01 -2.446517642712055e-01 -2.443797345227543e-01 -2.441077797933181e-01 + -2.438359000947776e-01 -2.435640951889690e-01 -2.432923652315951e-01 -2.430207106571287e-01 -2.427491313175689e-01 + -2.424776270783986e-01 -2.422061980074125e-01 -2.419348442072336e-01 -2.416635656192684e-01 -2.413923620306189e-01 + -2.411212337762792e-01 -2.408501811283544e-01 -2.405792038734625e-01 -2.403083019688687e-01 -2.400374754936993e-01 + -2.397667245256450e-01 -2.394960488977194e-01 -2.392254485194238e-01 -2.389549238762380e-01 -2.386844750244205e-01 + -2.384141017100180e-01 -2.381438039886236e-01 -2.378735819631148e-01 -2.376034356560101e-01 -2.373333648418426e-01 + -2.370633696160408e-01 -2.367934504134751e-01 -2.365236071336530e-01 -2.362538396334552e-01 -2.359841479713349e-01 + -2.357145322333765e-01 -2.354449923780104e-01 -2.351755281955192e-01 -2.349061399838227e-01 -2.346368280467886e-01 + -2.343675921502802e-01 -2.340984322401892e-01 -2.338293484224673e-01 -2.335603407944267e-01 -2.332914091991481e-01 + -2.330225534791031e-01 -2.327537740958542e-01 -2.324850711724544e-01 -2.322164444575208e-01 -2.319478939696494e-01 + -2.316794198107119e-01 -2.314110220364787e-01 -2.311427004172850e-01 -2.308744549913938e-01 -2.306062862221652e-01 + -2.303381940399467e-01 -2.300701782673901e-01 -2.298022389505013e-01 -2.295343762055658e-01 -2.292665900251787e-01 + -2.289988801367178e-01 -2.287312467963517e-01 -2.284636903804389e-01 -2.281962106639611e-01 -2.279288075702767e-01 + -2.276614812041137e-01 -2.273942316314865e-01 -2.271270587234099e-01 -2.268599623216859e-01 -2.265929428586625e-01 + -2.263260004971463e-01 -2.260591349680134e-01 -2.257923462859340e-01 -2.255256345570404e-01 -2.252589998316905e-01 + -2.249924418873443e-01 -2.247259607239798e-01 -2.244595568451081e-01 -2.241932301870257e-01 -2.239269805236896e-01 + -2.236608079513920e-01 -2.233947125724077e-01 -2.231286943677930e-01 -2.228627530899186e-01 -2.225968889349937e-01 + -2.223311022938890e-01 -2.220653929888047e-01 -2.217997609137618e-01 -2.215342061492806e-01 -2.212687287997047e-01 + -2.210033287645195e-01 -2.207380058226258e-01 -2.204727603658667e-01 -2.202075926188733e-01 -2.199425023254976e-01 + -2.196774894791217e-01 -2.194125541827232e-01 -2.191476964953657e-01 -2.188829162198361e-01 -2.186182133017065e-01 + -2.183535882155842e-01 -2.180890409721393e-01 -2.178245713492862e-01 -2.175601793915103e-01 -2.172958651996608e-01 + -2.170316287941991e-01 -2.167674699222372e-01 -2.165033887351043e-01 -2.162393856655618e-01 -2.159754605317784e-01 + -2.157116131976179e-01 -2.154478437626437e-01 -2.151841523053365e-01 -2.149205387568082e-01 -2.146570029331132e-01 + -2.143935451423346e-01 -2.141301656253313e-01 -2.138668641770334e-01 -2.136036407648879e-01 -2.133404954698548e-01 + -2.130774283590253e-01 -2.128144392711416e-01 -2.125515281171839e-01 -2.122886953403734e-01 -2.120259409959825e-01 + -2.117632648531722e-01 -2.115006669388265e-01 -2.112381473557379e-01 -2.109757061544524e-01 -2.107133431005909e-01 + -2.104510582708100e-01 -2.101888520817322e-01 -2.099267244352251e-01 -2.096646751892664e-01 -2.094027043922436e-01 + -2.091408121382980e-01 -2.088789983898283e-01 -2.086172629233026e-01 -2.083556060294393e-01 -2.080940280081475e-01 + -2.078325286261216e-01 -2.075711078316715e-01 -2.073097657230958e-01 -2.070485023681648e-01 -2.067873176254528e-01 + -2.065262113703670e-01 -2.062651840261599e-01 -2.060042356935543e-01 -2.057433661320316e-01 -2.054825753736384e-01 + -2.052218635119340e-01 -2.049612305777034e-01 -2.047006763593381e-01 -2.044402009029163e-01 -2.041798046444743e-01 + -2.039194875091236e-01 -2.036592493288050e-01 -2.033990901597007e-01 -2.031390101041152e-01 -2.028790091364410e-01 + -2.026190869860804e-01 -2.023592439213894e-01 -2.020994803209571e-01 -2.018397959336108e-01 -2.015801906636277e-01 + -2.013206646163115e-01 -2.010612178968381e-01 -2.008018503846473e-01 -2.005425618909167e-01 -2.002833527994660e-01 + -2.000242232866459e-01 -1.997651731545872e-01 -1.995062023757428e-01 -1.992473110134654e-01 -1.989884991329442e-01 + -1.987297665552775e-01 -1.984711132804359e-01 -1.982125397288479e-01 -1.979540458641874e-01 -1.976956315048893e-01 + -1.974372966986851e-01 -1.971790415364275e-01 -1.969208660181268e-01 -1.966627699138122e-01 -1.964047534115951e-01 + -1.961468168792641e-01 -1.958889601415059e-01 -1.956311830976701e-01 -1.953734858227050e-01 -1.951158683885618e-01 + -1.948583307060198e-01 -1.946008726082255e-01 -1.943434944554087e-01 -1.940861964418109e-01 -1.938289783248288e-01 + -1.935718400929853e-01 -1.933147818435645e-01 -1.930578036445209e-01 -1.928009053047615e-01 -1.925440867668252e-01 + -1.922873484836986e-01 -1.920306904586313e-01 -1.917741124759950e-01 -1.915176145882685e-01 -1.912611968971867e-01 + -1.910048594156118e-01 -1.907486018758652e-01 -1.904924244300230e-01 -1.902363275204000e-01 -1.899803109613821e-01 + -1.897243746214878e-01 -1.894685186111405e-01 -1.892127429944364e-01 -1.889570476814606e-01 -1.887014324762902e-01 + -1.884458977092228e-01 -1.881904436322386e-01 -1.879350700181010e-01 -1.876797768445363e-01 -1.874245641980662e-01 + -1.871694321106837e-01 -1.869143804464632e-01 -1.866594091449939e-01 -1.864045185802509e-01 -1.861497088150435e-01 + -1.858949796742653e-01 -1.856403311585743e-01 -1.853857633524328e-01 -1.851312763093270e-01 -1.848768697910832e-01 + -1.846225438828809e-01 -1.843682990131126e-01 -1.841141350478542e-01 -1.838600518410295e-01 -1.836060494900988e-01 + -1.833521280737523e-01 -1.830982875326949e-01 -1.828445276569093e-01 -1.825908487213151e-01 -1.823372510073639e-01 + -1.820837342990139e-01 -1.818302985608840e-01 -1.815769438919524e-01 -1.813236703339543e-01 -1.810704777470943e-01 + -1.808173660274447e-01 -1.805643355946649e-01 -1.803113865319381e-01 -1.800585185867421e-01 -1.798057318207557e-01 + -1.795530263298101e-01 -1.793004021140676e-01 -1.790478589821669e-01 -1.787953969871552e-01 -1.785430165333783e-01 + -1.782907175616041e-01 -1.780384999147782e-01 -1.777863636186671e-01 -1.775343087850783e-01 -1.772823354138563e-01 + -1.770304432439544e-01 -1.767786324996124e-01 -1.765269035206169e-01 -1.762752561209628e-01 -1.760236902365481e-01 + -1.757722059508868e-01 -1.755208033072168e-01 -1.752694821962465e-01 -1.750182424985018e-01 -1.747670845873172e-01 + -1.745160085943736e-01 -1.742650142826787e-01 -1.740141016708582e-01 -1.737632708599284e-01 -1.735125219002990e-01 + -1.732618545819516e-01 -1.730112688968157e-01 -1.727607652962038e-01 -1.725103437360838e-01 -1.722600040199003e-01 + -1.720097462053399e-01 -1.717595703957765e-01 -1.715094765937824e-01 -1.712594645505801e-01 -1.710095344617568e-01 + -1.707596867053610e-01 -1.705099210652020e-01 -1.702602374503936e-01 -1.700106359820640e-01 -1.697611167032507e-01 + -1.695116795170456e-01 -1.692623242857098e-01 -1.690130513415946e-01 -1.687638608735592e-01 -1.685147526839133e-01 + -1.682657267304136e-01 -1.680167830834059e-01 -1.677679218434041e-01 -1.675191428301483e-01 -1.672704459776749e-01 + -1.670218317162355e-01 -1.667733000505553e-01 -1.665248507843929e-01 -1.662764839848620e-01 -1.660281997331086e-01 + -1.657799980211539e-01 -1.655318786421316e-01 -1.652838417439954e-01 -1.650358877061586e-01 -1.647880163635810e-01 + -1.645402275978841e-01 -1.642925215033296e-01 -1.640448981629310e-01 -1.637973575048030e-01 -1.635498993322754e-01 + -1.633025239587731e-01 -1.630552316214122e-01 -1.628080220971913e-01 -1.625608953706327e-01 -1.623138515347123e-01 + -1.620668906280902e-01 -1.618200125176413e-01 -1.615732171440627e-01 -1.613265048790783e-01 -1.610798757703294e-01 + -1.608333296326273e-01 -1.605868664946396e-01 -1.603404864451659e-01 -1.600941895233320e-01 -1.598479755194739e-01 + -1.596018445089071e-01 -1.593557968710357e-01 -1.591098325274174e-01 -1.588639513462271e-01 -1.586181533501567e-01 + -1.583724386633118e-01 -1.581268072684121e-01 -1.578812589110151e-01 -1.576357938605635e-01 -1.573904124176000e-01 + -1.571451143885420e-01 -1.568998997115455e-01 -1.566547684551118e-01 -1.564097207009810e-01 -1.561647563377750e-01 + -1.559198752534892e-01 -1.556750777971572e-01 -1.554303640753041e-01 -1.551857339241298e-01 -1.549411873472499e-01 + -1.546967244117141e-01 -1.544523451583313e-01 -1.542080493972972e-01 -1.539638371771692e-01 -1.537197089019022e-01 + -1.534756644902717e-01 -1.532317037874507e-01 -1.529878268669247e-01 -1.527440338285302e-01 -1.525003246495042e-01 + -1.522566990917994e-01 -1.520131573865194e-01 -1.517696998607227e-01 -1.515263263105132e-01 -1.512830366842278e-01 + -1.510398310896279e-01 -1.507967095609423e-01 -1.505536719818633e-01 -1.503107182379510e-01 -1.500678487166025e-01 + -1.498250635429138e-01 -1.495823624607518e-01 -1.493397455183047e-01 -1.490972128240516e-01 -1.488547643939502e-01 + -1.486124000468938e-01 -1.483701197975273e-01 -1.481279240643807e-01 -1.478858128086334e-01 -1.476437858541442e-01 + -1.474018432575297e-01 -1.471599850901578e-01 -1.469182113447434e-01 -1.466765218581870e-01 -1.464349167991909e-01 + -1.461933964691583e-01 -1.459519607332137e-01 -1.457106095126376e-01 -1.454693428712828e-01 -1.452281609001614e-01 + -1.449870635167667e-01 -1.447460505411944e-01 -1.445051223204885e-01 -1.442642790465533e-01 -1.440235204958664e-01 + -1.437828466645076e-01 -1.435422576460715e-01 -1.433017535021517e-01 -1.430613340788666e-01 -1.428209993367665e-01 + -1.425807496580667e-01 -1.423405850452980e-01 -1.421005053276286e-01 -1.418605105748216e-01 -1.416206008760722e-01 + -1.413807762310167e-01 -1.411410364179444e-01 -1.409013815814383e-01 -1.406618121114770e-01 -1.404223278620860e-01 + -1.401829287142080e-01 -1.399436147388266e-01 -1.397043860171121e-01 -1.394652424999606e-01 -1.392261840277533e-01 + -1.389872108800275e-01 -1.387483232704581e-01 -1.385095210193419e-01 -1.382708041155041e-01 -1.380321726381191e-01 + -1.377936266235328e-01 -1.375551659356028e-01 -1.373167905196480e-01 -1.370785007699294e-01 -1.368402967462084e-01 + -1.366021782602805e-01 -1.363641453151502e-01 -1.361261980034910e-01 -1.358883363925467e-01 -1.356505602730137e-01 + -1.354128697173978e-01 -1.351752651019714e-01 -1.349377463365720e-01 -1.347003133096952e-01 -1.344629660943524e-01 + -1.342257047644556e-01 -1.339885292721434e-01 -1.337514394288152e-01 -1.335144355004790e-01 -1.332775177574095e-01 + -1.330406860095451e-01 -1.328039402156265e-01 -1.325672804621033e-01 -1.323307068237664e-01 -1.320942191803451e-01 + -1.318578174250235e-01 -1.316215019436967e-01 -1.313852728254415e-01 -1.311491298574344e-01 -1.309130730812647e-01 + -1.306771025967214e-01 -1.304412184433993e-01 -1.302054204167683e-01 -1.299697085633917e-01 -1.297340833011096e-01 + -1.294985445422908e-01 -1.292630921400970e-01 -1.290277262032818e-01 -1.287924468024440e-01 -1.285572538860320e-01 + -1.283221472565841e-01 -1.280871271607027e-01 -1.278521939245786e-01 -1.276173473594251e-01 -1.273825873815436e-01 + -1.271479140654554e-01 -1.269133275291332e-01 -1.266788276689478e-01 -1.264444143112885e-01 -1.262100878411512e-01 + -1.259758484249543e-01 -1.257416958580221e-01 -1.255076301118343e-01 -1.252736512740011e-01 -1.250397594556589e-01 + -1.248059544551782e-01 -1.245722362561283e-01 -1.243386053032582e-01 -1.241050615437150e-01 -1.238716047916152e-01 + -1.236382351439431e-01 -1.234049527007845e-01 -1.231717574487822e-01 -1.229386491649988e-01 -1.227056280466961e-01 + -1.224726944551588e-01 -1.222398481939305e-01 -1.220070891810755e-01 -1.217744175349468e-01 -1.215418333321439e-01 + -1.213093364896874e-01 -1.210769268543440e-01 -1.208446047468073e-01 -1.206123703546746e-01 -1.203802234985189e-01 + -1.201481641556592e-01 -1.199161924040098e-01 -1.196843083373426e-01 -1.194525118101599e-01 -1.192208027778711e-01 + -1.189891816158967e-01 -1.187576483334740e-01 -1.185262027772708e-01 -1.182948450325541e-01 -1.180635751718018e-01 + -1.178323931740712e-01 -1.176012988598141e-01 -1.173702923768903e-01 -1.171393740841554e-01 -1.169085438684581e-01 + -1.166778016318426e-01 -1.164471474323627e-01 -1.162165813372163e-01 -1.159861033094216e-01 -1.157557132288848e-01 + -1.155254113554128e-01 -1.152951978878259e-01 -1.150650726784410e-01 -1.148350356935617e-01 -1.146050869998271e-01 + -1.143752266983624e-01 -1.141454546633286e-01 -1.139157708150553e-01 -1.136861755297615e-01 -1.134566688685596e-01 + -1.132272506625232e-01 -1.129979209389772e-01 -1.127686797968139e-01 -1.125395272939830e-01 -1.123104632216639e-01 + -1.120814876598629e-01 -1.118526009932446e-01 -1.116238031362107e-01 -1.113950939743172e-01 -1.111664735714766e-01 + -1.109379420230661e-01 -1.107094992989161e-01 -1.104811452047023e-01 -1.102528800189790e-01 -1.100247040176238e-01 + -1.097966169898620e-01 -1.095686189066022e-01 -1.093407098806465e-01 -1.091128899944971e-01 -1.088851591239916e-01 + -1.086575171512236e-01 -1.084299644451029e-01 -1.082025011238454e-01 -1.079751270251657e-01 -1.077478421434466e-01 + -1.075206465724022e-01 -1.072935404061887e-01 -1.070665234272605e-01 -1.068395956686409e-01 -1.066127575621145e-01 + -1.063860090403522e-01 -1.061593499609373e-01 -1.059327804074918e-01 -1.057063004552603e-01 -1.054799100848440e-01 + -1.052536091459819e-01 -1.050273978363624e-01 -1.048012764247322e-01 -1.045752447992682e-01 -1.043493029044653e-01 + -1.041234507912105e-01 -1.038976885616201e-01 -1.036720161437409e-01 -1.034464334142674e-01 -1.032209407082870e-01 + -1.029955381585720e-01 -1.027702255852857e-01 -1.025450030256683e-01 -1.023198705766582e-01 -1.020948282803886e-01 + -1.018698759615270e-01 -1.016450136357437e-01 -1.014202417243671e-01 -1.011955602054591e-01 -1.009709689162001e-01 + -1.007464679013254e-01 -1.005220572777319e-01 -1.002977370772110e-01 -1.000735070732387e-01 -9.984936745539402e-02 + -9.962531858349888e-02 -9.940136027998529e-02 -9.917749246814733e-02 -9.895371525770333e-02 -9.873002873335845e-02 + -9.850643282337790e-02 -9.828292738770521e-02 -9.805951276903688e-02 -9.783618914357473e-02 -9.761295629040607e-02 + -9.738981424317925e-02 -9.716676311420755e-02 -9.694380293900719e-02 -9.672093359332221e-02 -9.649815506782670e-02 + -9.627546771326484e-02 -9.605287156919239e-02 -9.583036651098850e-02 -9.560795255252680e-02 -9.538562978098189e-02 + -9.516339824129488e-02 -9.494125774199282e-02 -9.471920843970391e-02 -9.449725071216948e-02 -9.427538438593883e-02 + -9.405360936874554e-02 -9.383192580278800e-02 -9.361033376064058e-02 -9.338883317577901e-02 -9.316742389906425e-02 + -9.294610622995669e-02 -9.272488039403920e-02 -9.250374621386263e-02 -9.228270367992475e-02 -9.206175287916113e-02 + -9.184089387273792e-02 -9.162012656935895e-02 -9.139945093572596e-02 -9.117886729658348e-02 -9.095837571294788e-02 + -9.073797605928635e-02 -9.051766837713708e-02 -9.029745274779008e-02 -9.007732920697027e-02 -8.985729759887780e-02 + -8.963735802530043e-02 -8.941751083887589e-02 -8.919775594907166e-02 -8.897809325953572e-02 -8.875852286193828e-02 + -8.853904483959285e-02 -8.831965916578795e-02 -8.810036569419880e-02 -8.788116467295366e-02 -8.766205635082600e-02 + -8.744304058057480e-02 -8.722411733824492e-02 -8.700528670561582e-02 -8.678654875532379e-02 -8.656790339361393e-02 + -8.634935054757228e-02 -8.613089058374623e-02 -8.591252359970507e-02 -8.569424942256174e-02 -8.547606809595372e-02 + -8.525797972327777e-02 -8.503998436304407e-02 -8.482208183975883e-02 -8.460427219735964e-02 -8.438655581333676e-02 + -8.416893266387415e-02 -8.395140264416648e-02 -8.373396580036768e-02 -8.351662221748458e-02 -8.329937190808817e-02 + -8.308221474187347e-02 -8.286515089972675e-02 -8.264818063381729e-02 -8.243130387381740e-02 -8.221452057360500e-02 + -8.199783077068876e-02 -8.178123458056528e-02 -8.156473193866548e-02 -8.134832272179610e-02 -8.113200727104515e-02 + -8.091578573554094e-02 -8.069965795549490e-02 -8.048362394306618e-02 -8.026768379237301e-02 -8.005183759034226e-02 + -7.983608519016389e-02 -7.962042660317335e-02 -7.940486220827629e-02 -7.918939199917317e-02 -7.897401585103307e-02 + -7.875873382193239e-02 -7.854354599947752e-02 -7.832845240531904e-02 -7.811345290511561e-02 -7.789854765910142e-02 + -7.768373695009409e-02 -7.746902070156129e-02 -7.725439886068521e-02 -7.703987147751143e-02 -7.682543865920169e-02 + -7.661110037032860e-02 -7.639685648697914e-02 -7.618270730319152e-02 -7.596865299784139e-02 -7.575469343456721e-02 + -7.554082861289950e-02 -7.532705861915691e-02 -7.511338355056779e-02 -7.489980327273796e-02 -7.468631776375068e-02 + -7.447292742489155e-02 -7.425963225373161e-02 -7.404643208981297e-02 -7.383332706618533e-02 -7.362031725942129e-02 + -7.340740264369265e-02 -7.319458312424655e-02 -7.298185885257603e-02 -7.276923011698885e-02 -7.255669681825400e-02 + -7.234425890125808e-02 -7.213191646645117e-02 -7.191966959969415e-02 -7.170751827394115e-02 -7.149546237742448e-02 + -7.128350216363183e-02 -7.107163782537941e-02 -7.085986923051370e-02 -7.064819639413342e-02 -7.043661941815849e-02 + -7.022513838389523e-02 -7.001375316964638e-02 -6.980246372359999e-02 -6.959127044971054e-02 -6.938017339783993e-02 + -6.916917238807876e-02 -6.895826751099868e-02 -6.874745887832359e-02 -6.853674652264935e-02 -6.832613029387129e-02 + -6.811561029537151e-02 -6.790518687416305e-02 -6.769485994872884e-02 -6.748462944761908e-02 -6.727449549181348e-02 + -6.706445814195625e-02 -6.685451736224034e-02 -6.664467305023641e-02 -6.643492546019260e-02 -6.622527482862205e-02 + -6.601572100856345e-02 -6.580626400049541e-02 -6.559690390732385e-02 -6.538764078471235e-02 -6.517847455920224e-02 + -6.496940519404462e-02 -6.476043303620643e-02 -6.455155816426872e-02 -6.434278041275177e-02 -6.413409988235154e-02 + -6.392551667227454e-02 -6.371703078482928e-02 -6.350864213121965e-02 -6.330035079826633e-02 -6.309215709125325e-02 + -6.288406097171770e-02 -6.267606236590158e-02 -6.246816137578116e-02 -6.226035810132791e-02 -6.205265253482506e-02 + -6.184504450634240e-02 -6.163753424009603e-02 -6.143012204113525e-02 -6.122280779495761e-02 -6.101559145710207e-02 + -6.080847310111580e-02 -6.060145284620669e-02 -6.039453063876327e-02 -6.018770637541451e-02 -5.998098039534337e-02 + -5.977435284136760e-02 -5.956782355675167e-02 -5.936139258218223e-02 -5.915506002510895e-02 -5.894882595975996e-02 + -5.874269025717062e-02 -5.853665294379332e-02 -5.833071438748900e-02 -5.812487459491447e-02 -5.791913345983549e-02 + -5.771349104248068e-02 -5.750794745476003e-02 -5.730250273990040e-02 -5.709715674449271e-02 -5.689190963313420e-02 + -5.668676170442684e-02 -5.648171287301057e-02 -5.627676311138611e-02 -5.607191251359627e-02 -5.586716116856662e-02 + -5.566250902085241e-02 -5.545795595276776e-02 -5.525350230977423e-02 -5.504914828197500e-02 -5.484489368806074e-02 + -5.464073856561743e-02 -5.443668303623681e-02 -5.423272717677420e-02 -5.402887087270093e-02 -5.382511411736842e-02 + -5.362145727556954e-02 -5.341790037997223e-02 -5.321444331788154e-02 -5.301108618236487e-02 -5.280782907094528e-02 + -5.260467200594416e-02 -5.240161485390568e-02 -5.219865776343095e-02 -5.199580105954085e-02 -5.179304465507040e-02 + -5.159038850941820e-02 -5.138783273765680e-02 -5.118537740030552e-02 -5.098302246878324e-02 -5.078076787428482e-02 + -5.057861387937131e-02 -5.037656068404879e-02 -5.017460818262723e-02 -4.997275637519877e-02 -4.977100534878579e-02 + -4.956935521374012e-02 -4.936780587637167e-02 -4.916635729330274e-02 -4.896500983679772e-02 -4.876376358063662e-02 + -4.856261839799727e-02 -4.836157437280066e-02 -4.816063160553166e-02 -4.795979012910388e-02 -4.775904981223175e-02 + -4.755841077230219e-02 -4.735787336181510e-02 -4.715743752596301e-02 -4.695710319390285e-02 -4.675687045398216e-02 + -4.655673941737810e-02 -4.635671009364274e-02 -4.615678236145827e-02 -4.595695644691457e-02 -4.575723258610617e-02 + -4.555761069075770e-02 -4.535809077212207e-02 -4.515867291944397e-02 -4.495935719937229e-02 -4.476014355843901e-02 + -4.456103197632578e-02 -4.436202279051898e-02 -4.416311608901573e-02 -4.396431172960501e-02 -4.376560979706327e-02 + -4.356701040970479e-02 -4.336851362154585e-02 -4.317011930970618e-02 -4.297182755295056e-02 -4.277363871130811e-02 + -4.257555275870079e-02 -4.237756961321195e-02 -4.217968936488893e-02 -4.198191211978222e-02 -4.178423789759614e-02 + -4.158666657665847e-02 -4.138919837391426e-02 -4.119183356383482e-02 -4.099457203865310e-02 -4.079741379048268e-02 + -4.060035892668235e-02 -4.040340754077800e-02 -4.020655958670875e-02 -4.000981499812348e-02 -3.981317410229721e-02 + -3.961663704352115e-02 -3.942020369405195e-02 -3.922387410519079e-02 -3.902764838570288e-02 -3.883152661169272e-02 + -3.863550868276464e-02 -3.843959464464100e-02 -3.824378485096525e-02 -3.804807931112070e-02 -3.785247793879744e-02 + -3.765698082240899e-02 -3.746158806803077e-02 -3.726629970906549e-02 -3.707111562537097e-02 -3.687603600301111e-02 + -3.668106114329449e-02 -3.648619095542227e-02 -3.629142541706046e-02 -3.609676463615045e-02 -3.590220871216067e-02 + -3.570775761915167e-02 -3.551341127587861e-02 -3.531916998478909e-02 -3.512503392646860e-02 -3.493100298239093e-02 + -3.473707719308593e-02 -3.454325666569649e-02 -3.434954148093054e-02 -3.415593156072503e-02 -3.396242692622412e-02 + -3.376902792182854e-02 -3.357573459185429e-02 -3.338254684613227e-02 -3.318946476737597e-02 -3.299648846264201e-02 + -3.280361798076661e-02 -3.261085320981364e-02 -3.241819429994710e-02 -3.222564156785773e-02 -3.203319495411584e-02 + -3.184085442350271e-02 -3.164862007407277e-02 -3.145649201602077e-02 -3.126447024597763e-02 -3.107255466700169e-02 + -3.088074555671056e-02 -3.068904313085425e-02 -3.049744727803826e-02 -3.030595802638682e-02 -3.011457548570120e-02 + -2.992329974875160e-02 -2.973213075050443e-02 -2.954106848293515e-02 -2.935011329195715e-02 -2.915926525661732e-02 + -2.896852427673346e-02 -2.877789042941862e-02 -2.858736382466336e-02 -2.839694452567641e-02 -2.820663243092813e-02 + -2.801642765839682e-02 -2.782633053619610e-02 -2.763634102981755e-02 -2.744645909471058e-02 -2.725668483048721e-02 + -2.706701834793413e-02 -2.687745966148872e-02 -2.668800867127078e-02 -2.649866562411629e-02 -2.630943076513501e-02 + -2.612030399888650e-02 -2.593128533989631e-02 -2.574237489560391e-02 -2.555357276907920e-02 -2.536487891525730e-02 + -2.517629330290238e-02 -2.498781626631630e-02 -2.479944791947400e-02 -2.461118815951395e-02 -2.442303705775731e-02 + -2.423499472682666e-02 -2.404706124098910e-02 -2.385923651050157e-02 -2.367152062237768e-02 -2.348391391197065e-02 + -2.329641637680258e-02 -2.310902796361102e-02 -2.292174876507744e-02 -2.273457889435020e-02 -2.254751838574287e-02 + -2.236056713942959e-02 -2.217372537079298e-02 -2.198699334983061e-02 -2.180037099746794e-02 -2.161385831877313e-02 + -2.142745542221016e-02 -2.124116241611923e-02 -2.105497927356034e-02 -2.086890594375282e-02 -2.068294274565517e-02 + -2.049708982965088e-02 -2.031134709508492e-02 -2.012571460207244e-02 -1.994019246558534e-02 -1.975478077426674e-02 + -1.956947944878238e-02 -1.938428854559868e-02 -1.919920840769478e-02 -1.901423906121075e-02 -1.882938044349050e-02 + -1.864463264867233e-02 -1.845999578941159e-02 -1.827546991282947e-02 -1.809105492490821e-02 -1.790675101318496e-02 + -1.772255847013706e-02 -1.753847723077995e-02 -1.735450728912205e-02 -1.717064875577919e-02 -1.698690174123156e-02 + -1.680326624034783e-02 -1.661974219495428e-02 -1.643632989539235e-02 -1.625302952284425e-02 -1.606984099009794e-02 + -1.588676434582367e-02 -1.570379970237604e-02 -1.552094715767664e-02 -1.533820665109939e-02 -1.515557821470722e-02 + -1.497306218983010e-02 -1.479065863118324e-02 -1.460836746737021e-02 -1.442618879376636e-02 -1.424412272699600e-02 + -1.406216932715821e-02 -1.388032850365394e-02 -1.369860041414062e-02 -1.351698537084881e-02 -1.333548332713773e-02 + -1.315409426742165e-02 -1.297281830737383e-02 -1.279165555870565e-02 -1.261060603011550e-02 -1.242966965324022e-02 + -1.224884670128487e-02 -1.206813738892206e-02 -1.188754163203305e-02 -1.170705946859269e-02 -1.152669101347058e-02 + -1.134643637569507e-02 -1.116629550991553e-02 -1.098626842139487e-02 -1.080635544822676e-02 -1.062655668128806e-02 + -1.044687204494093e-02 -1.026730162280993e-02 -1.008784553433474e-02 -9.908503858526582e-03 -9.729276511698201e-03 + -9.550163618928804e-03 -9.371165505355611e-03 -9.192282154920128e-03 -9.013513542246960e-03 -8.834859775588668e-03 + -8.656320970291077e-03 -8.477897155130903e-03 -8.299588259899083e-03 -8.121394531144674e-03 -7.943316209259341e-03 + -7.765353219198069e-03 -7.587505591333328e-03 -7.409773443860054e-03 -7.232156891183837e-03 -7.054655906230881e-03 + -6.877270474033493e-03 -6.700000921715352e-03 -6.522847372218281e-03 -6.345809748257097e-03 -6.168888131399519e-03 + -5.992082642122597e-03 -5.815393366379400e-03 -5.638820235869921e-03 -5.462363348533388e-03 -5.286023033805962e-03 + -5.109799304673499e-03 -4.933692127821829e-03 -4.757701606393674e-03 -4.581827861470766e-03 -4.406070940931505e-03 + -4.230430770274698e-03 -4.054907567997104e-03 -3.879501600335772e-03 -3.704212807069328e-03 -3.529041210474627e-03 + -3.353986930090703e-03 -3.179050081041732e-03 -3.004230655593028e-03 -2.829528626659512e-03 -2.654944304289923e-03 + -2.480477843039907e-03 -2.306129168890747e-03 -2.131898354626704e-03 -1.957785522367332e-03 -1.783790769612464e-03 + -1.609914041309663e-03 -1.436155409326836e-03 -1.262515208025358e-03 -1.088993476198761e-03 -9.155901719868249e-04 + -7.423054008843995e-04 -5.691392854771952e-04 -3.960918865957833e-04 -2.231631331613931e-04 -5.035321608514060e-05 + 1.223375771945329e-04 2.949092895407656e-04 4.673619084872533e-04 6.396953140537370e-04 8.119093865188150e-04 + 9.840041155727759e-04 1.155979539871523e-03 1.327835367602612e-03 1.499571413663267e-03 1.671187748049661e-03 + 1.842684305331169e-03 2.014060960896812e-03 2.185317608856639e-03 2.356454289147141e-03 2.527470954200780e-03 + 2.698367270832486e-03 2.869143169831049e-03 3.039798698561594e-03 3.210333755176400e-03 3.380748214685887e-03 + 3.551042001872539e-03 3.721215182132198e-03 3.891267592694254e-03 4.061198929412137e-03 4.231009214636464e-03 + 4.400698444839332e-03 4.570266499650065e-03 4.739713256426893e-03 4.909038688279234e-03 5.078242841339914e-03 + 5.247325443294046e-03 5.416286280121805e-03 5.585125417934797e-03 5.753842797319914e-03 5.922438289361948e-03 + 6.090911784292105e-03 6.259263304936011e-03 6.427492823105761e-03 6.595600012759487e-03 6.763584774419725e-03 + 6.931447157908777e-03 7.099187064683324e-03 7.266804368739545e-03 7.434298984071849e-03 7.601670964899477e-03 + 7.768920175905106e-03 7.936046303989365e-03 8.103049345026314e-03 8.269929303195386e-03 8.436686062480435e-03 + 8.603319496825714e-03 8.769829559891583e-03 8.936216298209541e-03 9.102479469308070e-03 9.268618835503980e-03 + 9.434634442417017e-03 9.600526244002849e-03 9.766294116521254e-03 9.931937936947469e-03 1.009745771049027e-02 + 1.026285342997890e-02 1.042812477681206e-02 1.059327162144324e-02 1.075829401681754e-02 1.092319186819127e-02 + 1.108796504594824e-02 1.125261345370748e-02 1.141713713772357e-02 1.158153598704318e-02 1.174580967555363e-02 + 1.190995817803677e-02 1.207398151021485e-02 1.223787955540131e-02 1.240165218070774e-02 1.256529932365555e-02 + 1.272882103806231e-02 1.289221710280211e-02 1.305548725320952e-02 1.321863152957668e-02 1.338164989105289e-02 + 1.354454220587777e-02 1.370730835288826e-02 1.386994832163190e-02 1.403246211588375e-02 1.419484943187744e-02 + 1.435711010999991e-02 1.451924419921884e-02 1.468125161270911e-02 1.484313222013652e-02 1.500488591571896e-02 + 1.516651273046586e-02 1.532801257754355e-02 1.548938513124086e-02 1.565063033579857e-02 1.581174821092933e-02 + 1.597273864701365e-02 1.613360150922888e-02 1.629433671764488e-02 1.645494432276120e-02 1.661542413184349e-02 + 1.677577586209575e-02 1.693599953321696e-02 1.709609511287956e-02 1.725606247097126e-02 1.741590148147653e-02 + 1.757561211738663e-02 1.773519439308624e-02 1.789464801957598e-02 1.805397280960725e-02 1.821316881163111e-02 + 1.837223594327105e-02 1.853117406905512e-02 1.868998307594014e-02 1.884866298214414e-02 1.900721372338833e-02 + 1.916563497459167e-02 1.932392665507269e-02 1.948208878919649e-02 1.964012126059438e-02 1.979802393750615e-02 + 1.995579673545799e-02 2.011343968946751e-02 2.027095263124555e-02 2.042833526879373e-02 2.058558759933038e-02 + 2.074270959919291e-02 2.089970114286997e-02 2.105656209513535e-02 2.121329241031374e-02 2.136989211400533e-02 + 2.152636093833320e-02 2.168269866776463e-02 2.183890534086288e-02 2.199498088647827e-02 2.215092516911965e-02 + 2.230673806408907e-02 2.246241957468516e-02 2.261796965793072e-02 2.277338799181243e-02 2.292867446749406e-02 + 2.308382911412376e-02 2.323885181888266e-02 2.339374244699652e-02 2.354850090287507e-02 2.370312721409915e-02 + 2.385762123470989e-02 2.401198266010886e-02 2.416621147301771e-02 2.432030765671687e-02 2.447427107682733e-02 + 2.462810160176357e-02 2.478179917471193e-02 2.493536381795363e-02 2.508879528739230e-02 2.524209334527653e-02 + 2.539525801488748e-02 2.554828923354157e-02 2.570118686847216e-02 2.585395079171064e-02 2.600658098606827e-02 + 2.615907742012537e-02 2.631143978762620e-02 2.646366795301069e-02 2.661576194257877e-02 2.676772164859378e-02 + 2.691954693391293e-02 2.707123769272043e-02 2.722279394328245e-02 2.737421556407061e-02 2.752550224474631e-02 + 2.767665393933695e-02 2.782767063812680e-02 2.797855221700411e-02 2.812929853552858e-02 2.827990951702357e-02 + 2.843038519104858e-02 2.858072533585580e-02 2.873092969062032e-02 2.888099827101270e-02 2.903093101911967e-02 + 2.918072779556083e-02 2.933038847140823e-02 2.947991301658642e-02 2.962930141213865e-02 2.977855336278226e-02 + 2.992766870509821e-02 3.007664746318324e-02 3.022548953626840e-02 3.037419478553557e-02 3.052276309616091e-02 + 3.067119447416764e-02 3.081948881896879e-02 3.096764581778017e-02 3.111566540198458e-02 3.126354756710210e-02 + 3.141129218718559e-02 3.155889912410548e-02 3.170636829125183e-02 3.185369970791438e-02 3.200089317518744e-02 + 3.214794841776677e-02 3.229486543634106e-02 3.244164418203412e-02 3.258828451581320e-02 3.273478630264194e-02 + 3.288114949586567e-02 3.302737408530167e-02 3.317345979235018e-02 3.331940642975919e-02 3.346521401820098e-02 + 3.361088246101045e-02 3.375641161607764e-02 3.390180136352038e-02 3.404705169548587e-02 3.419216253016829e-02 + 3.433713355905806e-02 3.448196468652563e-02 3.462665590981111e-02 3.477120710939272e-02 3.491561814527116e-02 + 3.505988891618091e-02 3.520401943397326e-02 3.534800952666442e-02 3.549185891051008e-02 3.563556756111654e-02 + 3.577913543618631e-02 3.592256240340591e-02 3.606584831947614e-02 3.620899312153205e-02 3.635199681091714e-02 + 3.649485912620978e-02 3.663757985375464e-02 3.678015900636063e-02 3.692259649832257e-02 3.706489218607827e-02 + 3.720704593508108e-02 3.734905772908955e-02 3.749092751022131e-02 3.763265496742431e-02 3.777423997951684e-02 + 3.791568254953915e-02 3.805698256030369e-02 3.819813986869797e-02 3.833915436267914e-02 3.848002605018682e-02 + 3.862075477984065e-02 3.876134025391093e-02 3.890178243600422e-02 3.904208129158644e-02 3.918223668100989e-02 + 3.932224846044379e-02 3.946211655605483e-02 3.960184097189857e-02 3.974142146457355e-02 3.988085779819951e-02 + 4.002014997942075e-02 4.015929792921669e-02 4.029830150192959e-02 4.043716055991190e-02 4.057587507004282e-02 + 4.071444498657769e-02 4.085287001066611e-02 4.099114999824743e-02 4.112928495212512e-02 4.126727475679569e-02 + 4.140511926665246e-02 4.154281836167219e-02 4.168037204269245e-02 4.181778018003033e-02 4.195504246778908e-02 + 4.209215884913708e-02 4.222912929605258e-02 4.236595366776428e-02 4.250263182248033e-02 4.263916367566677e-02 + 4.277554922465009e-02 4.291178824859961e-02 4.304788049654025e-02 4.318382596138427e-02 4.331962457087349e-02 + 4.345527617981602e-02 4.359078064797250e-02 4.372613792550029e-02 4.386134797486977e-02 4.399641051415262e-02 + 4.413132537776133e-02 4.426609256403441e-02 4.440071196061698e-02 4.453518342174363e-02 4.466950682320869e-02 + 4.480368214879805e-02 4.493770928728694e-02 4.507158793990715e-02 4.520531802497359e-02 4.533889951667943e-02 + 4.547233228082954e-02 4.560561616979211e-02 4.573875108353129e-02 4.587173702317195e-02 4.600457379177124e-02 + 4.613726112101928e-02 4.626979898466685e-02 4.640218731770854e-02 4.653442597807410e-02 4.666651481740990e-02 + 4.679845378497393e-02 4.693024287357150e-02 4.706188178521280e-02 4.719337030512012e-02 4.732470843170088e-02 + 4.745589609974604e-02 4.758693317708736e-02 4.771781949014568e-02 4.784855500276729e-02 4.797913963655120e-02 + 4.810957311625792e-02 4.823985532440599e-02 4.836998622519359e-02 4.849996572088229e-02 4.862979364778694e-02 + 4.875946986129576e-02 4.888899438454671e-02 4.901836703838853e-02 4.914758752328308e-02 4.927665585368439e-02 + 4.940557196434897e-02 4.953433564666962e-02 4.966294680168561e-02 4.979140536998770e-02 4.991971127467005e-02 + 5.004786430086550e-02 5.017586426593462e-02 5.030371111424699e-02 5.043140473941395e-02 5.055894500969876e-02 + 5.068633180855401e-02 5.081356509387767e-02 5.094064477169723e-02 5.106757053524139e-02 5.119434226596677e-02 + 5.132095996453229e-02 5.144742351517578e-02 5.157373274644007e-02 5.169988750799723e-02 5.182588783131492e-02 + 5.195173357105356e-02 5.207742440366903e-02 5.220296027189056e-02 5.232834113948501e-02 5.245356688434039e-02 + 5.257863735375337e-02 5.270355244318054e-02 5.282831211610928e-02 5.295291615700908e-02 5.307736435753736e-02 + 5.320165668494783e-02 5.332579302368824e-02 5.344977322479061e-02 5.357359720391287e-02 5.369726488407797e-02 + 5.382077614890905e-02 5.394413077320572e-02 5.406732861255047e-02 5.419036960275756e-02 5.431325364836510e-02 + 5.443598061485443e-02 5.455855035736775e-02 5.468096283548277e-02 5.480321791614200e-02 5.492531533836561e-02 + 5.504725504027442e-02 5.516903696522249e-02 5.529066094250196e-02 5.541212681912044e-02 5.553343451105355e-02 + 5.565458402054679e-02 5.577557512714444e-02 5.589640757833542e-02 5.601708136214176e-02 5.613759637012277e-02 + 5.625795242697428e-02 5.637814944133901e-02 5.649818735356010e-02 5.661806606948155e-02 5.673778531909066e-02 + 5.685734496106067e-02 5.697674499811992e-02 5.709598525886500e-02 5.721506557962035e-02 5.733398588420521e-02 + 5.745274613557275e-02 5.757134619305772e-02 5.768978576165893e-02 5.780806477237931e-02 5.792618319490116e-02 + 5.804414085654030e-02 5.816193759992416e-02 5.827957333255503e-02 5.839704805764100e-02 5.851436157058919e-02 + 5.863151359019340e-02 5.874850407742044e-02 5.886533297606138e-02 5.898200016057164e-02 5.909850545490182e-02 + 5.921484876799358e-02 5.933103006596772e-02 5.944704910278828e-02 5.956290569090495e-02 5.967859979076014e-02 + 5.979413129454921e-02 5.990950006107775e-02 6.002470595625681e-02 6.013974894676900e-02 6.025462892974234e-02 + 6.036934559538653e-02 6.048389882575328e-02 6.059828859366181e-02 6.071251478747773e-02 6.082657726499330e-02 + 6.094047589468096e-02 6.105421060960093e-02 6.116778124880510e-02 6.128118760026364e-02 6.139442960439424e-02 + 6.150750715787331e-02 6.162042008748835e-02 6.173316829355946e-02 6.184575170612789e-02 6.195817023946892e-02 + 6.207042366308074e-02 6.218251178412997e-02 6.229443455021107e-02 6.240619187345142e-02 6.251778362644587e-02 + 6.262920965673664e-02 6.274046989094115e-02 6.285156423838029e-02 6.296249246083868e-02 6.307325441937692e-02 + 6.318385004239983e-02 6.329427920287174e-02 6.340454177652059e-02 6.351463766120390e-02 6.362456678994362e-02 + 6.373432899407734e-02 6.384392402667542e-02 6.395335181995393e-02 6.406261231361865e-02 6.417170537725830e-02 + 6.428063082883417e-02 6.438938856382127e-02 6.449797859582693e-02 6.460640069400744e-02 6.471465460887021e-02 + 6.482274028565467e-02 6.493065766530991e-02 6.503840663024645e-02 6.514598697176463e-02 6.525339863731919e-02 + 6.536064160053869e-02 6.546771556229376e-02 6.557462036169828e-02 6.568135597564134e-02 6.578792228094754e-02 + 6.589431913461476e-02 6.600054641494822e-02 6.610660407274732e-02 6.621249195669229e-02 6.631820979208959e-02 + 6.642375751800587e-02 6.652913508526218e-02 6.663434233390064e-02 6.673937912206085e-02 6.684424535139094e-02 + 6.694894096694531e-02 6.705346576057515e-02 6.715781952052316e-02 6.726200223606826e-02 6.736601378290344e-02 + 6.746985396850236e-02 6.757352270136854e-02 6.767701992273348e-02 6.778034554033589e-02 6.788349929667206e-02 + 6.798648102682574e-02 6.808929069330329e-02 6.819192820375723e-02 6.829439341428477e-02 6.839668615716293e-02 + 6.849880637697058e-02 6.860075397106770e-02 6.870252870886938e-02 6.880413046413429e-02 6.890555915577500e-02 + 6.900681468090485e-02 6.910789689150486e-02 6.920880565820778e-02 6.930954094436353e-02 6.941010257623929e-02 + 6.951049032497619e-02 6.961070411466443e-02 6.971074386483528e-02 6.981060945693285e-02 6.991030074013053e-02 + 7.000981760721879e-02 7.010915998226322e-02 7.020832768385020e-02 7.030732053981503e-02 7.040613843777971e-02 + 7.050478130476578e-02 7.060324902125202e-02 7.070154139632766e-02 7.079965841104072e-02 7.089759998592053e-02 + 7.099536579014293e-02 7.109295574922263e-02 7.119036986301433e-02 7.128760792254588e-02 7.138466979343019e-02 + 7.148155540894172e-02 7.157826467726322e-02 7.167479742578257e-02 7.177115345207208e-02 7.186733268619028e-02 + 7.196333504975572e-02 7.205916041090092e-02 7.215480858692887e-02 7.225027948023270e-02 7.234557308374470e-02 + 7.244068916926014e-02 7.253562753252076e-02 7.263038813284139e-02 7.272497087062332e-02 7.281937559790036e-02 + 7.291360215228662e-02 7.300765049821943e-02 7.310152057265214e-02 7.319521208383468e-02 7.328872490709243e-02 + 7.338205901635925e-02 7.347521425841259e-02 7.356819049091311e-02 7.366098761637971e-02 7.375360558736099e-02 + 7.384604424623381e-02 7.393830334347133e-02 7.403038279875497e-02 7.412228254437477e-02 7.421400245985316e-02 + 7.430554241104276e-02 7.439690229021774e-02 7.448808202204141e-02 7.457908141717452e-02 7.466990029970315e-02 + 7.476053861745356e-02 7.485099625058683e-02 7.494127304678436e-02 7.503136889191833e-02 7.512128371784581e-02 + 7.521101743547498e-02 7.530056981436373e-02 7.538994071268737e-02 7.547913007544443e-02 7.556813780083994e-02 + 7.565696374971752e-02 7.574560777501017e-02 7.583406981695588e-02 7.592234975180168e-02 7.601044736291800e-02 + 7.609836256769248e-02 7.618609528331391e-02 7.627364535037680e-02 7.636101265407126e-02 7.644819711937149e-02 + 7.653519868718589e-02 7.662201715447789e-02 7.670865230880411e-02 7.679510411035856e-02 7.688137246970578e-02 + 7.696745724207896e-02 7.705335828035317e-02 7.713907552614908e-02 7.722460893765626e-02 7.730995825366380e-02 + 7.739512330293280e-02 7.748010405365591e-02 7.756490042829636e-02 7.764951228919105e-02 7.773393946198498e-02 + 7.781818189157449e-02 7.790223948237281e-02 7.798611201876808e-02 7.806979939436651e-02 7.815330154059554e-02 + 7.823661834982702e-02 7.831974966729814e-02 7.840269536418043e-02 7.848545542109749e-02 7.856802968700778e-02 + 7.865041794492959e-02 7.873262009221961e-02 7.881463606524114e-02 7.889646578364969e-02 7.897810905385311e-02 + 7.905956578813299e-02 7.914083598393755e-02 7.922191938944982e-02 7.930281582198326e-02 7.938352526916173e-02 + 7.946404763288464e-02 7.954438277705837e-02 7.962453057021987e-02 7.970449093695484e-02 7.978426377009373e-02 + 7.986384886265184e-02 7.994324611178145e-02 8.002245546069972e-02 8.010147680163558e-02 8.018030998339011e-02 + 8.025895486859348e-02 8.033741142939121e-02 8.041567953647351e-02 8.049375898816008e-02 8.057164970191152e-02 + 8.064935159117341e-02 8.072686453538828e-02 8.080418841559016e-02 8.088132313650849e-02 8.095826861741187e-02 + 8.103502469212946e-02 8.111159121525567e-02 8.118796811657426e-02 8.126415526945288e-02 8.134015254787534e-02 + 8.141595988122388e-02 8.149157718184835e-02 8.156700432424771e-02 8.164224113093393e-02 8.171728750211138e-02 + 8.179214337283539e-02 8.186680860558979e-02 8.194128308109257e-02 8.201556671181809e-02 8.208965942384167e-02 + 8.216356107347705e-02 8.223727146913333e-02 8.231079055026533e-02 8.238411825286719e-02 8.245725445426123e-02 + 8.253019901019013e-02 8.260295182089074e-02 8.267551284923887e-02 8.274788192985057e-02 8.282005889192648e-02 + 8.289204367192234e-02 8.296383619751495e-02 8.303543635380874e-02 8.310684396376640e-02 8.317805898151856e-02 + 8.324908138250064e-02 8.331991092178788e-02 8.339054746670159e-02 8.346099098907200e-02 8.353124136246602e-02 + 8.360129848004999e-02 8.367116227251760e-02 8.374083263302687e-02 8.381030943134427e-02 8.387959252741883e-02 + 8.394868181167527e-02 8.401757720093640e-02 8.408627862550171e-02 8.415478594369409e-02 8.422309904154775e-02 + 8.429121790707177e-02 8.435914237533512e-02 8.442687225429805e-02 8.449440750560887e-02 8.456174803803686e-02 + 8.462889372267089e-02 8.469584447602406e-02 8.476260023136410e-02 8.482916090148240e-02 8.489552630009754e-02 + 8.496169630228255e-02 8.502767086164854e-02 8.509344988672647e-02 8.515903326018803e-02 8.522442086136313e-02 + 8.528961263471936e-02 8.535460848680074e-02 8.541940824041729e-02 8.548401181612168e-02 8.554841915131453e-02 + 8.561263012321893e-02 8.567664461211427e-02 8.574046253447680e-02 8.580408386832587e-02 8.586750845589863e-02 + 8.593073610333024e-02 8.599376680387132e-02 8.605660047760594e-02 8.611923696874126e-02 8.618167618396408e-02 + 8.624391807608472e-02 8.630596259724549e-02 8.636780954833972e-02 8.642945878839840e-02 8.649091029427977e-02 + 8.655216396695875e-02 8.661321970043215e-02 8.667407742210617e-02 8.673473702989365e-02 8.679519841504303e-02 + 8.685546148336530e-02 8.691552612855238e-02 8.697539224666265e-02 8.703505975750943e-02 8.709452857692032e-02 + 8.715379861893667e-02 8.721286980508075e-02 8.727174201224434e-02 8.733041510377958e-02 8.738888903629666e-02 + 8.744716372671989e-02 8.750523904187274e-02 8.756311491392924e-02 8.762079127795709e-02 8.767826803995526e-02 + 8.773554506310657e-02 8.779262223690780e-02 8.784949951260017e-02 8.790617682173207e-02 8.796265406226209e-02 + 8.801893109931651e-02 8.807500788687952e-02 8.813088437660771e-02 8.818656039674132e-02 8.824203585227545e-02 + 8.829731070095961e-02 8.835238486000704e-02 8.840725822106667e-02 8.846193068214857e-02 8.851640221803356e-02 + 8.857067273700293e-02 8.862474207580676e-02 8.867861014722141e-02 8.873227689758616e-02 8.878574227696898e-02 + 8.883900618220902e-02 8.889206851560667e-02 8.894492921167085e-02 8.899758815302622e-02 8.905004524008538e-02 + 8.910230044719054e-02 8.915435367300073e-02 8.920620479173334e-02 8.925785373448247e-02 8.930930045917142e-02 + 8.936054490961548e-02 8.941158695191696e-02 8.946242647641844e-02 8.951306341364354e-02 8.956349771969928e-02 + 8.961372931388180e-02 8.966375808278661e-02 8.971358396554302e-02 8.976320688963368e-02 8.981262675341668e-02 + 8.986184348935064e-02 8.991085703129179e-02 8.995966729258320e-02 9.000827417122792e-02 9.005667759770250e-02 + 9.010487756379584e-02 9.015287394264000e-02 9.020066659275561e-02 9.024825550203337e-02 9.029564061179933e-02 + 9.034282181894199e-02 9.038979902630290e-02 9.043657218570805e-02 9.048314126656666e-02 9.052950615463343e-02 + 9.057566675480395e-02 9.062162300961238e-02 9.066737484935303e-02 9.071292219781772e-02 9.075826498061153e-02 + 9.080340315127385e-02 9.084833664156222e-02 9.089306533771581e-02 9.093758915627431e-02 9.098190804149961e-02 + 9.102602195783284e-02 9.106993084471440e-02 9.111363462196023e-02 9.115713320054021e-02 9.120042650346059e-02 + 9.124351446434358e-02 9.128639702175202e-02 9.132907412994692e-02 9.137154573427010e-02 9.141381170435277e-02 + 9.145587198962597e-02 9.149772660800266e-02 9.153937542844172e-02 9.158081834977004e-02 9.162205535599281e-02 + 9.166308637778346e-02 9.170391133536025e-02 9.174453017072061e-02 9.178494285856946e-02 9.182514933661440e-02 + 9.186514945794547e-02 9.190494319482566e-02 9.194453054665523e-02 9.198391140758180e-02 9.202308569543158e-02 + 9.206205336702038e-02 9.210081441034919e-02 9.213936875086109e-02 9.217771627651770e-02 9.221585694962209e-02 + 9.225379072840771e-02 9.229151754885842e-02 9.232903734819613e-02 9.236635007909103e-02 9.240345570404732e-02 + 9.244035413434255e-02 9.247704529963750e-02 9.251352918345666e-02 9.254980573968512e-02 9.258587489795035e-02 + 9.262173657649034e-02 9.265739073985793e-02 9.269283735974691e-02 9.272807636276849e-02 9.276310769047050e-02 + 9.279793130272118e-02 9.283254716719631e-02 9.286695521394739e-02 9.290115536246511e-02 9.293514761281572e-02 + 9.296893192325742e-02 9.300250819824006e-02 9.303587638369953e-02 9.306903645092859e-02 9.310198837852499e-02 + 9.313473209662422e-02 9.316726755984403e-02 9.319959477466139e-02 9.323171364631608e-02 9.326362408592948e-02 + 9.329532610133226e-02 9.332681964339190e-02 9.335810464438972e-02 9.338918108249107e-02 9.342004893308628e-02 + 9.345070815580041e-02 9.348115868437977e-02 9.351140046962789e-02 9.354143348306601e-02 9.357125770365762e-02 + 9.360087308621738e-02 9.363027956518245e-02 9.365947710363894e-02 9.368846567300493e-02 9.371724524372237e-02 + 9.374581578300241e-02 9.377417725111503e-02 9.380232960142115e-02 9.383027280206080e-02 9.385800682788301e-02 + 9.388553164914089e-02 9.391284719773688e-02 9.393995342276806e-02 9.396685035781838e-02 9.399353796706621e-02 + 9.402001617537038e-02 9.404628495786660e-02 9.407234429781461e-02 9.409819417117830e-02 9.412383453169183e-02 + 9.414926534580341e-02 9.417448659641373e-02 9.419949825736050e-02 9.422430029380560e-02 9.424889267135104e-02 + 9.427327539998738e-02 9.429744844865905e-02 9.432141171534560e-02 9.434516522540957e-02 9.436870900006604e-02 + 9.439204294634228e-02 9.441516705436934e-02 9.443808133745002e-02 9.446078573953387e-02 9.448328023801857e-02 + 9.450556483411636e-02 9.452763950923013e-02 9.454950421611270e-02 9.457115890701832e-02 9.459260360830167e-02 + 9.461383832574666e-02 9.463486302352626e-02 9.465567765409444e-02 9.467628220109425e-02 9.469667668274938e-02 + 9.471686106967921e-02 9.473683533004949e-02 9.475659945563136e-02 9.477615343325803e-02 9.479549725292793e-02 + 9.481463091432241e-02 9.483355439545672e-02 9.485226766778346e-02 9.487077071788189e-02 9.488906353992572e-02 + 9.490714613644993e-02 9.492501852119042e-02 9.494268066964073e-02 9.496013253895599e-02 9.497737414244060e-02 + 9.499440547543551e-02 9.501122651272445e-02 9.502783728094538e-02 9.504423778187990e-02 9.506042797340242e-02 + 9.507640785191551e-02 9.509217742006319e-02 9.510773667189122e-02 9.512308563868060e-02 9.513822432123879e-02 + 9.515315264231193e-02 9.516787063845662e-02 9.518237836728226e-02 9.519667577724227e-02 9.521076284349063e-02 + 9.522463958294539e-02 9.523830604498588e-02 9.525176221483619e-02 9.526500804718509e-02 9.527804359769618e-02 + 9.529086886623650e-02 9.530348379689602e-02 9.531588845120076e-02 9.532808286166987e-02 9.534006699012688e-02 + 9.535184085361241e-02 9.536340447105748e-02 9.537475783364874e-02 9.538590095359538e-02 9.539683385237334e-02 + 9.540755654711666e-02 9.541806903829181e-02 9.542837132640679e-02 9.543846343230179e-02 9.544834536597921e-02 + 9.545801714100983e-02 9.546747880593646e-02 9.547673036184304e-02 9.548577178084619e-02 9.549460309483834e-02 + 9.550322434581640e-02 9.551163556335956e-02 9.551983673903520e-02 9.552782788036314e-02 9.553560902903191e-02 + 9.554318022933674e-02 9.555054148771730e-02 9.555769276632298e-02 9.556463412975340e-02 9.557136563747151e-02 + 9.557788725689133e-02 9.558419903459103e-02 9.559030102901959e-02 9.559619321427665e-02 9.560187562136102e-02 + 9.560734830883322e-02 9.561261127917654e-02 9.561766456108449e-02 9.562250820572099e-02 9.562714223416331e-02 + 9.563156666435306e-02 9.563578152405575e-02 9.563978686682097e-02 9.564358272631937e-02 9.564716910782914e-02 + 9.565054604965099e-02 9.565371359980702e-02 9.565667179877529e-02 9.565942066526258e-02 9.566196023293236e-02 + 9.566429057683135e-02 9.566641172752892e-02 9.566832368940979e-02 9.567002647518966e-02 9.567152016429874e-02 + 9.567280484915060e-02 9.567388053004788e-02 9.567474721294261e-02 9.567540493730267e-02 9.567585379392737e-02 + 9.567609383300600e-02 9.567612506298810e-02 9.567594754568214e-02 9.567556133790830e-02 9.567496647244744e-02 + 9.567416299512438e-02 9.567315095370396e-02 9.567193039196389e-02 9.567050136232016e-02 9.566886392120964e-02 + 9.566701812558283e-02 9.566496403827787e-02 9.566270170884209e-02 9.566023115264767e-02 9.565755243736668e-02 + 9.565466564791879e-02 9.565157080775241e-02 9.564826797386157e-02 9.564475723264595e-02 9.564103864027859e-02 + 9.563711223757489e-02 9.563297806735498e-02 9.562863621895812e-02 9.562408675116861e-02 9.561932968250994e-02 + 9.561436511583814e-02 9.560919313325968e-02 9.560381374743886e-02 9.559822704785555e-02 9.559243313048145e-02 + 9.558643203289170e-02 9.558022378864620e-02 9.557380846466877e-02 9.556718619530349e-02 9.556035703327785e-02 + 9.555332100122134e-02 9.554607821247386e-02 9.553862873475936e-02 9.553097259908433e-02 9.552310989218279e-02 + 9.551504070130773e-02 9.550676510186747e-02 9.549828317393894e-02 9.548959500356741e-02 9.548070067318166e-02 + 9.547160021295119e-02 9.546229369018946e-02 9.545278124506257e-02 9.544306292579091e-02 9.543313878273989e-02 + 9.542300894892854e-02 9.541267351639289e-02 9.540213254817664e-02 9.539138610562420e-02 9.538043425774057e-02 + 9.536927709152246e-02 9.535791472882026e-02 9.534634726779553e-02 9.533457478138217e-02 9.532259734256758e-02 + 9.531041503990305e-02 9.529802797105680e-02 9.528543620462085e-02 9.527263983869082e-02 9.525963900525855e-02 + 9.524643375927100e-02 9.523302417643500e-02 9.521941040061487e-02 9.520559252291068e-02 9.519157060486365e-02 + 9.517734471153570e-02 9.516291499670615e-02 9.514828160467456e-02 9.513344455080376e-02 9.511840393248631e-02 + 9.510315989360162e-02 9.508771251519674e-02 9.507206189457258e-02 9.505620814925633e-02 9.504015138530268e-02 + 9.502389169582724e-02 9.500742917228551e-02 9.499076394524120e-02 9.497389612890822e-02 9.495682580659018e-02 + 9.493955308203066e-02 9.492207807526097e-02 9.490440091330225e-02 9.488652168366014e-02 9.486844048723730e-02 + 9.485015747906970e-02 9.483167277063544e-02 9.481298644119306e-02 9.479409856622809e-02 9.477500930738031e-02 + 9.475571884085587e-02 9.473622721810367e-02 9.471653454723004e-02 9.469664098786204e-02 9.467654664635866e-02 + 9.465625162221861e-02 9.463575602621152e-02 9.461505999415500e-02 9.459416367044585e-02 9.457306719633034e-02 + 9.455177068421998e-02 9.453027423759350e-02 9.450857796468222e-02 9.448668199276268e-02 9.446458647203468e-02 + 9.444229157255099e-02 9.441979739649474e-02 9.439710403006842e-02 9.437421161454676e-02 9.435112031829759e-02 + 9.432783029179438e-02 9.430434160094567e-02 9.428065438538669e-02 9.425676883924589e-02 9.423268508508292e-02 + 9.420840322981890e-02 9.418392339716981e-02 9.415924578030670e-02 9.413437051700123e-02 9.410929767030043e-02 + 9.408402741009517e-02 9.405855992335012e-02 9.403289535840260e-02 9.400703383941893e-02 9.398097549341558e-02 + 9.395472046838550e-02 9.392826889502673e-02 9.390162091553057e-02 9.387477672023849e-02 9.384773645864139e-02 + 9.382050025947151e-02 9.379306828457251e-02 9.376544068778003e-02 9.373761760606118e-02 9.370959916011609e-02 + 9.368138552427184e-02 9.365297690930323e-02 9.362437342817573e-02 9.359557520850639e-02 9.356658243379877e-02 + 9.353739529945312e-02 9.350801394425273e-02 9.347843843855524e-02 9.344866901272440e-02 9.341870589097585e-02 + 9.338854915644307e-02 9.335819897637819e-02 9.332765555734250e-02 9.329691906420928e-02 9.326598960092489e-02 + 9.323486729288316e-02 9.320355242698486e-02 9.317204517635257e-02 9.314034562740874e-02 9.310845398153604e-02 + 9.307637042858882e-02 9.304409511565054e-02 9.301162817412864e-02 9.297896979469056e-02 9.294612022999450e-02 + 9.291307963943660e-02 9.287984815938743e-02 9.284642594887814e-02 9.281281319942865e-02 9.277901009754375e-02 + 9.274501679883909e-02 9.271083349621308e-02 9.267646039527271e-02 9.264189767811302e-02 9.260714551564306e-02 + 9.257220408228978e-02 9.253707357624473e-02 9.250175417101536e-02 9.246624602802385e-02 9.243054935165987e-02 + 9.239466434718238e-02 9.235859120974489e-02 9.232233012999355e-02 9.228588129454922e-02 9.224924488066757e-02 + 9.221242103323031e-02 9.217540995047416e-02 9.213821191347883e-02 9.210082709355732e-02 9.206325564930115e-02 + 9.202549780755387e-02 9.198755374602623e-02 9.194942363528436e-02 9.191110769995278e-02 9.187260614753277e-02 + 9.183391917841241e-02 9.179504701848260e-02 9.175598985687712e-02 9.171674785963810e-02 9.167732123351167e-02 + 9.163771019528422e-02 9.159791495855178e-02 9.155793572040530e-02 9.151777270193290e-02 9.147742614628342e-02 + 9.143689622063791e-02 9.139618310892414e-02 9.135528705455570e-02 9.131420824439858e-02 9.127294688450004e-02 + 9.123150325806001e-02 9.118987755991119e-02 9.114806996063474e-02 9.110608069642255e-02 9.106390998608170e-02 + 9.102155802996120e-02 9.097902503011562e-02 9.093631123402490e-02 9.089341690732793e-02 9.085034224655422e-02 + 9.080708743846595e-02 9.076365269164367e-02 9.072003828369785e-02 9.067624443485320e-02 9.063227129485288e-02 + 9.058811915193726e-02 9.054378827004000e-02 9.049927881221763e-02 9.045459103770109e-02 9.040972520178260e-02 + 9.036468147234690e-02 9.031946007844127e-02 9.027406127956829e-02 9.022848531585773e-02 9.018273243214560e-02 + 9.013680287341128e-02 9.009069686920407e-02 9.004441462623869e-02 8.999795635152021e-02 8.995132231203949e-02 + 8.990451276610797e-02 8.985752795281814e-02 8.981036812557305e-02 8.976303351703613e-02 8.971552434037033e-02 + 8.966784087291869e-02 8.961998334831080e-02 8.957195192338249e-02 8.952374693198487e-02 8.947536869631613e-02 + 8.942681737354224e-02 8.937809319632291e-02 8.932919644498671e-02 8.928012738635183e-02 8.923088623240803e-02 + 8.918147319450437e-02 8.913188858291199e-02 8.908213269254797e-02 8.903220577223506e-02 8.898210800726358e-02 + 8.893183965769864e-02 8.888140104180198e-02 8.883079233855783e-02 8.878001380541380e-02 8.872906581842580e-02 + 8.867794859494142e-02 8.862666233412557e-02 8.857520730323154e-02 8.852358381153494e-02 8.847179212845252e-02 + 8.841983243253916e-02 8.836770502123131e-02 8.831541022882371e-02 8.826294830990469e-02 8.821031949641793e-02 + 8.815752403748606e-02 8.810456224863354e-02 8.805143437639511e-02 8.799814063336710e-02 8.794468134879541e-02 + 8.789105684257616e-02 8.783726738270531e-02 8.778331316928159e-02 8.772919447874153e-02 8.767491167446911e-02 + 8.762046495069514e-02 8.756585454037039e-02 8.751108081839833e-02 8.745614408581825e-02 8.740104459021790e-02 + 8.734578256007368e-02 8.729035830815834e-02 8.723477214343743e-02 8.717902426868683e-02 8.712311501918556e-02 + 8.706704476846663e-02 8.701081371877695e-02 8.695442211628683e-02 8.689787027644420e-02 8.684115853767592e-02 + 8.678428714435096e-02 8.672725629439892e-02 8.667006642064547e-02 8.661271785522098e-02 8.655521075244504e-02 + 8.649754543067346e-02 8.643972223965939e-02 8.638174147222141e-02 8.632360334916610e-02 8.626530814542391e-02 + 8.620685627786050e-02 8.614824804295058e-02 8.608948367410735e-02 8.603056343813603e-02 8.597148768708160e-02 + 8.591225676580187e-02 8.585287085352321e-02 8.579333027004854e-02 8.573363543090719e-02 8.567378659419787e-02 + 8.561378404241062e-02 8.555362810687137e-02 8.549331906471129e-02 8.543285719635127e-02 8.537224281446841e-02 + 8.531147627953188e-02 8.525055791649624e-02 8.518948798167383e-02 8.512826679756995e-02 8.506689470133286e-02 + 8.500537199311337e-02 8.494369892596923e-02 8.488187579804041e-02 8.481990305210670e-02 8.475778099074194e-02 + 8.469550984763315e-02 8.463308996695838e-02 8.457052168539449e-02 8.450780530789033e-02 8.444494110975011e-02 + 8.438192942971584e-02 8.431877065438623e-02 8.425546507059704e-02 8.419201297696736e-02 8.412841471805475e-02 + 8.406467061549007e-02 8.400078097306259e-02 8.393674609180030e-02 8.387256634619757e-02 8.380824209666674e-02 + 8.374377362095807e-02 8.367916122870038e-02 8.361440526888680e-02 8.354950611900661e-02 8.348446403538942e-02 + 8.341927927704872e-02 8.335395233905314e-02 8.328848356223681e-02 8.322287316371958e-02 8.315712149574238e-02 + 8.309122893699929e-02 8.302519583647612e-02 8.295902243510637e-02 8.289270907781640e-02 8.282625623697057e-02 + 8.275966417678003e-02 8.269293318851907e-02 8.262606370095599e-02 8.255905601211083e-02 8.249191039312886e-02 + 8.242462718945633e-02 8.235720681988298e-02 8.228964967784431e-02 8.222195602541869e-02 8.215412621284769e-02 + 8.208616062445039e-02 8.201805954142698e-02 8.194982329150195e-02 8.188145225476894e-02 8.181294680713293e-02 + 8.174430731452863e-02 8.167553412282050e-02 8.160662752890076e-02 8.153758789030935e-02 8.146841562526554e-02 + 8.139911098330359e-02 8.132967428676124e-02 8.126010603531450e-02 8.119040656216225e-02 8.112057615694021e-02 + 8.105061517994502e-02 8.098052402265073e-02 8.091030303880128e-02 8.083995248093376e-02 8.076947276447492e-02 + 8.069886435754116e-02 8.062812754457355e-02 8.055726265736828e-02 8.048627008799529e-02 8.041515020636995e-02 + 8.034390332540668e-02 8.027252974489747e-02 8.020102993492553e-02 8.012940431195667e-02 8.005765317555476e-02 + 7.998577686939379e-02 7.991377577220368e-02 7.984165027334414e-02 7.976940065907111e-02 7.969702727793032e-02 + 7.962453065567111e-02 7.955191112254574e-02 7.947916895239987e-02 7.940630455590227e-02 7.933331833212637e-02 + 7.926021063894960e-02 7.918698178217287e-02 7.911363216326053e-02 7.904016223823181e-02 7.896657235187955e-02 + 7.889286283938438e-02 7.881903406306398e-02 7.874508643443230e-02 7.867102031060058e-02 7.859683599526633e-02 + 7.852253395767629e-02 7.844811463098400e-02 7.837357831424305e-02 7.829892537205134e-02 7.822415619643758e-02 + 7.814927116484589e-02 7.807427062910767e-02 7.799915496813195e-02 7.792392464520610e-02 7.784858004657273e-02 + 7.777312150359181e-02 7.769754936428309e-02 7.762186403791040e-02 7.754606594385612e-02 7.747015537442642e-02 + 7.739413273994507e-02 7.731799855521804e-02 7.724175314852555e-02 7.716539684747571e-02 7.708893004657069e-02 + 7.701235315053030e-02 7.693566653742440e-02 7.685887055661017e-02 7.678196565918903e-02 7.670495227727288e-02 + 7.662783073280909e-02 7.655060142689749e-02 7.647326478202995e-02 7.639582115595660e-02 7.631827089499127e-02 + 7.624061438211467e-02 7.616285210329320e-02 7.608498447266238e-02 7.600701183814436e-02 7.592893457493513e-02 + 7.585075308733022e-02 7.577246778116596e-02 7.569407897223836e-02 7.561558707997214e-02 7.553699264667676e-02 + 7.545829602219666e-02 7.537949752159374e-02 7.530059752746436e-02 7.522159652110559e-02 7.514249491290788e-02 + 7.506329293711217e-02 7.498399108869409e-02 7.490458989985715e-02 7.482508965268882e-02 7.474549074308040e-02 + 7.466579363230305e-02 7.458599868473173e-02 7.450610623924510e-02 7.442611667561436e-02 7.434603053570255e-02 + 7.426584824442337e-02 7.418557009969678e-02 7.410519651333995e-02 7.402472793153594e-02 7.394416477978479e-02 + 7.386350736456949e-02 7.378275607823381e-02 7.370191147772952e-02 7.362097394239986e-02 7.353994380500382e-02 + 7.345882147239775e-02 7.337760740248925e-02 7.329630201371148e-02 7.321490559729334e-02 7.313341861868546e-02 + 7.305184160923943e-02 7.297017492620234e-02 7.288841893034562e-02 7.280657402242413e-02 7.272464064227188e-02 + 7.264261917439505e-02 7.256050997585588e-02 7.247831356170273e-02 7.239603038649280e-02 7.231366079163171e-02 + 7.223120520116612e-02 7.214866404160214e-02 7.206603769517569e-02 7.198332653777370e-02 7.190053098792457e-02 + 7.181765153838118e-02 7.173468863077177e-02 7.165164265282598e-02 7.156851395212357e-02 7.148530298289761e-02 + 7.140201021117390e-02 7.131863593482980e-02 7.123518058493326e-02 7.115164469180060e-02 7.106802866653637e-02 + 7.098433289103630e-02 7.090055775733806e-02 7.081670370962735e-02 7.073277114629017e-02 7.064876042084919e-02 + 7.056467204467058e-02 7.048050649359339e-02 7.039626411522021e-02 7.031194531783586e-02 7.022755055007633e-02 + 7.014308026270048e-02 7.005853477507426e-02 6.997391445865883e-02 6.988921994223606e-02 6.980445161374127e-02 + 6.971960976161336e-02 6.963469490630880e-02 6.954970749457975e-02 6.946464787470261e-02 6.937951638488904e-02 + 6.929431352344900e-02 6.920903988440608e-02 6.912369577614699e-02 6.903828154824053e-02 6.895279768813133e-02 + 6.886724462309453e-02 6.878162274040467e-02 6.869593242264821e-02 6.861017418575431e-02 6.852434851303352e-02 + 6.843845573229547e-02 6.835249626715924e-02 6.826647058722328e-02 6.818037912112360e-02 6.809422221022603e-02 + 6.800800023353686e-02 6.792171381432285e-02 6.783536337902803e-02 6.774894920974223e-02 6.766247176656806e-02 + 6.757593152448671e-02 6.748932891036163e-02 6.740266425451470e-02 6.731593799992638e-02 6.722915072040272e-02 + 6.714230278026269e-02 6.705539454984789e-02 6.696842651283096e-02 6.688139909018249e-02 6.679431266253504e-02 + 6.670716761081900e-02 6.661996446504156e-02 6.653270374249923e-02 6.644538575792285e-02 6.635801090742725e-02 + 6.627057965598744e-02 6.618309245387675e-02 6.609554968705872e-02 6.600795173819872e-02 6.592029914958422e-02 + 6.583259238307172e-02 6.574483179767340e-02 6.565701780669353e-02 6.556915085921187e-02 6.548123140723705e-02 + 6.539325979064996e-02 6.530523643565112e-02 6.521716192687264e-02 6.512903665438342e-02 6.504086097557776e-02 + 6.495263535156262e-02 6.486436022769713e-02 6.477603601048113e-02 6.468766306269763e-02 6.459924187637454e-02 + 6.451077298036002e-02 6.442225675573160e-02 6.433369358016772e-02 6.424508387319842e-02 6.415642813133042e-02 + 6.406772674084167e-02 6.397898002556264e-02 6.389018858464109e-02 6.380135290132970e-02 6.371247325592760e-02 + 6.362355010153516e-02 6.353458392277617e-02 6.344557514446422e-02 6.335652411846264e-02 6.326743126079815e-02 + 6.317829713990436e-02 6.308912216326193e-02 6.299990668862973e-02 6.291065117630994e-02 6.282135608306753e-02 + 6.273202182393535e-02 6.264264873955985e-02 6.255323731562341e-02 6.246378810230178e-02 6.237430143094801e-02 + 6.228477769978175e-02 6.219521740601344e-02 6.210562097707054e-02 6.201598879095212e-02 6.192632121693314e-02 + 6.183661876812600e-02 6.174688193928092e-02 6.165711112558074e-02 6.156730673780070e-02 6.147746920022401e-02 + 6.138759893800432e-02 6.129769633241683e-02 6.120776180293847e-02 6.111779589683188e-02 6.102779903735479e-02 + 6.093777158500626e-02 6.084771398591046e-02 6.075762667844817e-02 6.066751007308262e-02 6.057736455111417e-02 + 6.048719057054321e-02 6.039698864588414e-02 6.030675917961215e-02 6.021650256672047e-02 6.012621923377075e-02 + 6.003590961818356e-02 5.994557411659043e-02 5.985521308639186e-02 5.976482706463886e-02 5.967441656528669e-02 + 5.958398192281734e-02 5.949352353003544e-02 5.940304183449088e-02 5.931253730252380e-02 5.922201027916447e-02 + 5.913146112197507e-02 5.904089044032181e-02 5.895029868043596e-02 5.885968615096351e-02 5.876905326755812e-02 + 5.867840050492581e-02 5.858772833116550e-02 5.849703703991720e-02 5.840632705235495e-02 5.831559896255584e-02 + 5.822485314806121e-02 5.813408997000494e-02 5.804330987759122e-02 5.795251328764216e-02 5.786170059865808e-02 + 5.777087221384987e-02 5.768002859772193e-02 5.758917021647553e-02 5.749829746896256e-02 5.740741077575853e-02 + 5.731651056875526e-02 5.722559725171274e-02 5.713467118430270e-02 5.704373274635539e-02 5.695278249332581e-02 + 5.686182088614487e-02 5.677084826809927e-02 5.667986504336005e-02 5.658887165217444e-02 5.649786853613976e-02 + 5.640685602792318e-02 5.631583453941855e-02 5.622480462822738e-02 5.613376666437993e-02 5.604272100502515e-02 + 5.595166813210956e-02 5.586060845174765e-02 5.576954232437998e-02 5.567847012652845e-02 5.558739236715193e-02 + 5.549630955542323e-02 5.540522197136583e-02 5.531413002536285e-02 5.522303422299683e-02 5.513193492275553e-02 + 5.504083247717721e-02 5.494972729209355e-02 5.485861988753332e-02 5.476751071228679e-02 5.467640010379995e-02 + 5.458528846418693e-02 5.449417622493567e-02 5.440306381105370e-02 5.431195155656662e-02 5.422083985771245e-02 + 5.412972927459819e-02 5.403862019627870e-02 5.394751295390937e-02 5.385640797531270e-02 5.376530569364821e-02 + 5.367420650537214e-02 5.358311072889269e-02 5.349201882499156e-02 5.340093132499041e-02 5.330984856991542e-02 + 5.321877091980749e-02 5.312769879767464e-02 5.303663263591166e-02 5.294557280318667e-02 5.285451962473617e-02 + 5.276347361952855e-02 5.267243525955664e-02 5.258140485845194e-02 5.249038280640431e-02 5.239936952998326e-02 + 5.230836544276557e-02 5.221737088032564e-02 5.212638621732711e-02 5.203541199430900e-02 5.194444860919033e-02 + 5.185349638284296e-02 5.176255572471577e-02 5.167162705674897e-02 5.158071077330502e-02 5.148980718747074e-02 + 5.139891673261619e-02 5.130803993485430e-02 5.121717713356427e-02 5.112632867301793e-02 5.103549496777923e-02 + 5.094467643725986e-02 5.085387344650644e-02 5.076308630673339e-02 5.067231551219451e-02 5.058156153920812e-02 + 5.049082469322039e-02 5.040010534612100e-02 5.030940391348503e-02 5.021872080090227e-02 5.012805633824483e-02 + 5.003741087422633e-02 4.994678493647212e-02 4.985617892926745e-02 4.976559315779018e-02 4.967502801470126e-02 + 4.958448390876292e-02 4.949396122643934e-02 4.940346027599988e-02 4.931298146262254e-02 4.922252530167843e-02 + 4.913209213539834e-02 4.904168229174269e-02 4.895129616994274e-02 4.886093417404704e-02 4.877059666413559e-02 + 4.868028394034647e-02 4.858999646754281e-02 4.849973472130898e-02 4.840949900241633e-02 4.831928966152828e-02 + 4.822910709871525e-02 4.813895171199074e-02 4.804882382564480e-02 4.795872376124456e-02 4.786865202942978e-02 + 4.777860903855367e-02 4.768859507592742e-02 4.759861051627762e-02 4.750865575639699e-02 4.741873117406014e-02 + 4.732883706721817e-02 4.723897381137243e-02 4.714914191200375e-02 4.705934171189571e-02 4.696957351961628e-02 + 4.687983771740974e-02 4.679013469431771e-02 4.670046480338604e-02 4.661082833156779e-02 4.652122571187634e-02 + 4.643165741520618e-02 4.634212373882778e-02 4.625262501422293e-02 4.616316162482947e-02 4.607373395212459e-02 + 4.598434231610999e-02 4.589498701904484e-02 4.580566854223844e-02 4.571638729424802e-02 4.562714355109129e-02 + 4.553793766452621e-02 4.544877001582995e-02 4.535964097502848e-02 4.527055082898004e-02 4.518149992236756e-02 + 4.509248874970542e-02 4.500351765014129e-02 4.491458690878355e-02 4.482569689376779e-02 4.473684797939540e-02 + 4.464804050747698e-02 4.455927474828068e-02 4.447055110499822e-02 4.438187004531898e-02 4.429323185876936e-02 + 4.420463685202721e-02 4.411608538888854e-02 4.402757783926076e-02 4.393911451733543e-02 4.385069570127949e-02 + 4.376232184208732e-02 4.367399334643604e-02 4.358571047769912e-02 4.349747356709084e-02 4.340928298020802e-02 + 4.332113907381294e-02 4.323304212320113e-02 4.314499244129432e-02 4.305699050668390e-02 4.296903665620930e-02 + 4.288113115167341e-02 4.279327434447749e-02 4.270546659199307e-02 4.261770822231841e-02 4.252999949469098e-02 + 4.244234077853745e-02 4.235473252680039e-02 4.226717502474875e-02 4.217966855846760e-02 4.209221347273914e-02 + 4.200481011967518e-02 4.191745880279663e-02 4.183015977695443e-02 4.174291346429643e-02 4.165572027077732e-02 + 4.156858044734360e-02 4.148149429654668e-02 4.139446216241891e-02 4.130748439363172e-02 4.122056125606220e-02 + 4.113369302794675e-02 4.104688016346336e-02 4.096012300095512e-02 4.087342178434451e-02 4.078677683583759e-02 + 4.070018849668031e-02 4.061365708919899e-02 4.052718285106741e-02 4.044076611819490e-02 4.035440733833207e-02 + 4.026810678092279e-02 4.018186470341873e-02 4.009568143909095e-02 4.000955732298062e-02 3.992349264534106e-02 + 3.983748763759326e-02 3.975154269055037e-02 3.966565820546299e-02 3.957983441649049e-02 3.949407160357907e-02 + 3.940837009289332e-02 3.932273021031552e-02 3.923715221270428e-02 3.915163635394041e-02 3.906618306202975e-02 + 3.898079266950179e-02 3.889546539672872e-02 3.881020154253283e-02 3.872500143016262e-02 3.863986536923758e-02 + 3.855479358615301e-02 3.846978637959592e-02 3.838484417257106e-02 3.829996723484980e-02 3.821515580420295e-02 + 3.813041018714970e-02 3.804573069687705e-02 3.796111761198420e-02 3.787657114752344e-02 3.779209165765486e-02 + 3.770767953120019e-02 3.762333499040284e-02 3.753905829251161e-02 3.745484974542636e-02 3.737070965331050e-02 + 3.728663825939783e-02 3.720263578933122e-02 3.711870264209954e-02 3.703483914671073e-02 3.695104550519348e-02 + 3.686732199057993e-02 3.678366890490292e-02 3.670008654113079e-02 3.661657511036890e-02 3.653313487804630e-02 + 3.644976625150438e-02 3.636646948823320e-02 3.628324479604935e-02 3.620009246605282e-02 3.611701279349350e-02 + 3.603400604041686e-02 3.595107239910939e-02 3.586821219020735e-02 3.578542579441001e-02 3.570271341631447e-02 + 3.562007528519529e-02 3.553751169069794e-02 3.545502291550906e-02 3.537260919186706e-02 3.529027072401183e-02 + 3.520800787214007e-02 3.512582095428173e-02 3.504371015751370e-02 3.496167573051010e-02 3.487971795476078e-02 + 3.479783710598274e-02 3.471603337811516e-02 3.463430699965583e-02 3.455265835796009e-02 3.447108770848941e-02 + 3.438959523450754e-02 3.430818119554624e-02 3.422684586511945e-02 3.414558949343227e-02 3.406441225419257e-02 + 3.398331443038755e-02 3.390229638782512e-02 3.382135832287533e-02 3.374050043789544e-02 3.365972299780525e-02 + 3.357902626321113e-02 3.349841045119794e-02 3.341787574130316e-02 3.333742246166845e-02 3.325705092272905e-02 + 3.317676129391954e-02 3.309655379649919e-02 3.301642868788483e-02 3.293638622159571e-02 3.285642658240021e-02 + 3.277654996949401e-02 3.269675673538998e-02 3.261704712715797e-02 3.253742130855802e-02 3.245787951722746e-02 + 3.237842200259459e-02 3.229904899349424e-02 3.221976065258773e-02 3.214055722659278e-02 3.206143905506719e-02 + 3.198240632628265e-02 3.190345921865954e-02 3.182459797365254e-02 3.174582282841434e-02 3.166713398447476e-02 + 3.158853160183031e-02 3.151001597036992e-02 3.143158738592136e-02 3.135324600516137e-02 3.127499202279022e-02 + 3.119682567104914e-02 3.111874718036912e-02 3.104075672462514e-02 3.096285447683152e-02 3.088504075536903e-02 + 3.080731579690068e-02 3.072967974437236e-02 3.065213281019982e-02 3.057467522135681e-02 3.049730718652442e-02 + 3.042002885157935e-02 3.034284042889533e-02 3.026574223701538e-02 3.018873445294931e-02 3.011181722724549e-02 + 3.003499077734359e-02 2.995825532248887e-02 2.988161104857855e-02 2.980505808548691e-02 2.972859668986686e-02 + 2.965222714891759e-02 2.957594959806504e-02 2.949976420500935e-02 2.942367118266701e-02 2.934767073798247e-02 + 2.927176302885600e-02 2.919594820074298e-02 2.912022654108078e-02 2.904459827654108e-02 2.896906352751058e-02 + 2.889362247668933e-02 2.881827533028623e-02 2.874302228403363e-02 2.866786346167200e-02 2.859279903706265e-02 + 2.851782931145582e-02 2.844295445253672e-02 2.836817458182308e-02 2.829348988995876e-02 2.821890057629359e-02 + 2.814440681221589e-02 2.807000870175516e-02 2.799570646465742e-02 2.792150037589211e-02 2.784739055623231e-02 + 2.777337714638600e-02 2.769946033688953e-02 2.762564030841585e-02 2.755191720229608e-02 2.747829114116882e-02 + 2.740476237631904e-02 2.733133112357609e-02 2.725799748998750e-02 2.718476162641247e-02 2.711162371095654e-02 + 2.703858392279279e-02 2.696564237390275e-02 2.689279920452167e-02 2.682005468428394e-02 2.674740897239565e-02 + 2.667486216835663e-02 2.660241443488607e-02 2.653006594727732e-02 2.645781686062815e-02 2.638566726160998e-02 + 2.631361733435826e-02 2.624166733570949e-02 2.616981737012440e-02 2.609806754771221e-02 2.602641803533937e-02 + 2.595486900051258e-02 2.588342056814261e-02 2.581207282360541e-02 2.574082599292273e-02 2.566968028470076e-02 + 2.559863577456860e-02 2.552769259041796e-02 2.545685089381796e-02 2.538611083889939e-02 2.531547252137675e-02 + 2.524493605061727e-02 2.517450166747065e-02 2.510416952086314e-02 2.503393968681819e-02 2.496381230163825e-02 + 2.489378751859868e-02 2.482386547683629e-02 2.475404624292582e-02 2.468432996264991e-02 2.461471687229032e-02 + 2.454520706873932e-02 2.447580063686782e-02 2.440649771598710e-02 2.433729844997764e-02 2.426820294893469e-02 + 2.419921127712116e-02 2.413032362216684e-02 2.406154017790910e-02 2.399286100816565e-02 2.392428621229386e-02 + 2.385581592554643e-02 2.378745028409909e-02 2.371918936700126e-02 2.365103325041379e-02 2.358298215018098e-02 + 2.351503620457756e-02 2.344719546326070e-02 2.337946004127276e-02 2.331183006962702e-02 2.324430566419196e-02 + 2.317688687789637e-02 2.310957382435168e-02 2.304236671579298e-02 2.297526563441205e-02 2.290827063843882e-02 + 2.284138184722980e-02 2.277459938171355e-02 2.270792333404544e-02 2.264135374860772e-02 2.257489077729924e-02 + 2.250853459738779e-02 2.244228525780410e-02 2.237614283279474e-02 2.231010743473913e-02 2.224417917668724e-02 + 2.217835812285958e-02 2.211264432248330e-02 2.204703795931322e-02 2.198153916317220e-02 2.191614796666107e-02 + 2.185086445220271e-02 2.178568872592581e-02 2.172062089111306e-02 2.165566098457172e-02 2.159080908357505e-02 + 2.152606537366001e-02 2.146142993110024e-02 2.139690279242156e-02 2.133248404619538e-02 2.126817379406035e-02 + 2.120397211607284e-02 2.113987903003668e-02 2.107589465469217e-02 2.101201915594272e-02 2.094825256288664e-02 + 2.088459492231405e-02 2.082104632696408e-02 2.075760686991806e-02 2.069427660166107e-02 2.063105554609518e-02 + 2.056794384972622e-02 2.050494162894281e-02 2.044204890243054e-02 2.037926573000831e-02 2.031659219454509e-02 + 2.025402837653619e-02 2.019157429898307e-02 2.012923000978476e-02 2.006699566765361e-02 2.000487133731908e-02 + 1.994285703240835e-02 1.988095281849638e-02 1.981915877663429e-02 1.975747497137283e-02 1.969590139839621e-02 + 1.963443814246610e-02 1.957308535571834e-02 1.951184305296579e-02 1.945071125524195e-02 1.938969003470093e-02 + 1.932877945979973e-02 1.926797956444602e-02 1.920729035294688e-02 1.914671194302782e-02 1.908624443873623e-02 + 1.902588783798898e-02 1.896564217312377e-02 1.890550750534374e-02 1.884548390173623e-02 1.878557136933607e-02 + 1.872576992282937e-02 1.866607969751645e-02 1.860650074902563e-02 1.854703306920867e-02 1.848767670108510e-02 + 1.842843170242723e-02 1.836929811895166e-02 1.831027593341436e-02 1.825136519709141e-02 1.819256603897189e-02 + 1.813387846842225e-02 1.807530248298604e-02 1.801683812530333e-02 1.795848544988909e-02 1.790024447932676e-02 + 1.784211518704799e-02 1.778409766075985e-02 1.772619199567190e-02 1.766839817113224e-02 1.761071619932593e-02 + 1.755314612276550e-02 1.749568797940397e-02 1.743834176385679e-02 1.738110747126647e-02 1.732398520795971e-02 + 1.726697501687009e-02 1.721007686976607e-02 1.715329079150987e-02 1.709661681774517e-02 1.704005496995066e-02 + 1.698360522175755e-02 1.692726759648597e-02 1.687104219632033e-02 1.681492902190890e-02 1.675892805218375e-02 + 1.670303930866012e-02 1.664726282100333e-02 1.659159859573434e-02 1.653604659349284e-02 1.648060687061485e-02 + 1.642527950537791e-02 1.637006446137386e-02 1.631496172845883e-02 1.625997133117372e-02 1.620509328829045e-02 + 1.615032758053278e-02 1.609567417924041e-02 1.604113316306734e-02 1.598670456411958e-02 1.593238833576510e-02 + 1.587818448257840e-02 1.582409302120838e-02 1.577011395254391e-02 1.571624723647299e-02 1.566249287063067e-02 + 1.560885093721684e-02 1.555532142372995e-02 1.550190428691725e-02 1.544859953345741e-02 1.539540716895692e-02 + 1.534232718045593e-02 1.528935952298772e-02 1.523650422043375e-02 1.518376132655854e-02 1.513113080051426e-02 + 1.507861261080395e-02 1.502620675643192e-02 1.497391324399307e-02 1.492173204313831e-02 1.486966309840608e-02 + 1.481770646058926e-02 1.476586215324725e-02 1.471413011485714e-02 1.466251032223325e-02 1.461100277337298e-02 + 1.455960746411957e-02 1.450832433725036e-02 1.445715335761371e-02 1.440609458945226e-02 1.435514801148310e-02 + 1.430431355790390e-02 1.425359121341204e-02 1.420298097105418e-02 1.415248280845771e-02 1.410209665546564e-02 + 1.405182250942155e-02 1.400166041623447e-02 1.395161031395394e-02 1.390167215017196e-02 1.385184591619880e-02 + 1.380213159317199e-02 1.375252913341631e-02 1.370303846818604e-02 1.365365962256361e-02 1.360439260851619e-02 + 1.355523734898775e-02 1.350619380184460e-02 1.345726194685572e-02 1.340844175819677e-02 1.335973317080697e-02 + 1.331113613029375e-02 1.326265067233158e-02 1.321427676765317e-02 1.316601433678336e-02 1.311786334248669e-02 + 1.306982375879771e-02 1.302189555021592e-02 1.297407863461756e-02 1.292637298076667e-02 1.287877861455418e-02 + 1.283129547339001e-02 1.278392348592105e-02 1.273666261347862e-02 1.268951282495219e-02 1.264247406704279e-02 + 1.259554625321822e-02 1.254872937642621e-02 1.250202343522368e-02 1.245542834900525e-02 1.240894405313941e-02 + 1.236257050462080e-02 1.231630767029411e-02 1.227015547343941e-02 1.222411383176151e-02 1.217818275998809e-02 + 1.213236222220244e-02 1.208665212384520e-02 1.204105241018576e-02 1.199556303854240e-02 1.195018395838791e-02 + 1.190491507365890e-02 1.185975632952753e-02 1.181470773836339e-02 1.176976922480089e-02 1.172494069835479e-02 + 1.168022211004454e-02 1.163561340968965e-02 1.159111452823667e-02 1.154672536811994e-02 1.150244589927961e-02 + 1.145827610670764e-02 1.141421589534856e-02 1.137026518661645e-02 1.132642392502224e-02 1.128269205281729e-02 + 1.123906948383837e-02 1.119555612518262e-02 1.115215196588227e-02 1.110885695891592e-02 1.106567099667937e-02 + 1.102259400831050e-02 1.097962593601935e-02 1.093676671505125e-02 1.089401623812122e-02 1.085137442757511e-02 + 1.080884127911701e-02 1.076641671182367e-02 1.072410061923310e-02 1.068189293399554e-02 1.063979359231152e-02 + 1.059780251428707e-02 1.055591958418482e-02 1.051414475108346e-02 1.047247799305691e-02 1.043091920126454e-02 + 1.038946827795377e-02 1.034812515386981e-02 1.030688975996647e-02 1.026576200007446e-02 1.022474176231751e-02 + 1.018382901647819e-02 1.014302370834395e-02 1.010232571551464e-02 1.006173495028295e-02 1.002125134058496e-02 + 9.980874808217161e-03 9.940605238090998e-03 9.900442533803457e-03 9.860386673211879e-03 9.820437566105797e-03 + 9.780595089730604e-03 9.740859166502601e-03 9.701229717604148e-03 9.661706648486619e-03 9.622289837555094e-03 + 9.582979211676392e-03 9.543774731762645e-03 9.504676285752028e-03 9.465683761437204e-03 9.426797070527869e-03 + 9.388016130061547e-03 9.349340837763126e-03 9.310771071700266e-03 9.272306774287777e-03 9.233947879847340e-03 + 9.195694263233465e-03 9.157545820041815e-03 9.119502462398593e-03 9.081564104605406e-03 9.043730620594144e-03 + 9.006001891771507e-03 8.968377884117109e-03 8.930858503326412e-03 8.893443610144467e-03 8.856133108771761e-03 + 8.818926910576046e-03 8.781824915337199e-03 8.744826984807866e-03 8.707933026764444e-03 8.671142997995955e-03 + 8.634456771198624e-03 8.597874217863410e-03 8.561395247729468e-03 8.525019762147885e-03 8.488747643810387e-03 + 8.452578758551675e-03 8.416513035074836e-03 8.380550402064440e-03 8.344690718755845e-03 8.308933866062409e-03 + 8.273279745485652e-03 8.237728259206089e-03 8.202279277607399e-03 8.166932668725525e-03 8.131688373197346e-03 + 8.096546291813443e-03 8.061506280849479e-03 8.026568229604077e-03 7.991732033790425e-03 7.956997581179438e-03 + 7.922364735477982e-03 7.887833385768220e-03 7.853403460644042e-03 7.819074838170454e-03 7.784847385209607e-03 + 7.750720988388416e-03 7.716695538073770e-03 7.682770912288046e-03 7.648946965667346e-03 7.615223607644973e-03 + 7.581600758648286e-03 7.548078272068747e-03 7.514656018308716e-03 7.481333888256649e-03 7.448111767084748e-03 + 7.414989518558892e-03 7.381967002509678e-03 7.349044141005179e-03 7.316220829119200e-03 7.283496916229069e-03 + 7.250872276568530e-03 7.218346796125786e-03 7.185920358959778e-03 7.153592811909379e-03 7.121364026156801e-03 + 7.089233934032213e-03 7.057202401526107e-03 7.025269274784423e-03 6.993434437254338e-03 6.961697770726437e-03 + 6.930059144137623e-03 6.898518406074085e-03 6.867075445461445e-03 6.835730169890301e-03 6.804482436531050e-03 + 6.773332103630715e-03 6.742279042830752e-03 6.711323134446215e-03 6.680464239400761e-03 6.649702204950062e-03 + 6.619036937093537e-03 6.588468325547939e-03 6.557996212108587e-03 6.527620458965777e-03 6.497340941897300e-03 + 6.467157538628341e-03 6.437070090473932e-03 6.407078453159759e-03 6.377182548096138e-03 6.347382238649846e-03 + 6.317677359750170e-03 6.288067782822399e-03 6.258553381641384e-03 6.229134019133821e-03 6.199809533909972e-03 + 6.170579803332374e-03 6.141444731866248e-03 6.112404164377095e-03 6.083457948651627e-03 6.054605954063168e-03 + 6.025848047899531e-03 5.997184082520315e-03 5.968613898555075e-03 5.940137388272029e-03 5.911754435973001e-03 + 5.883464876798197e-03 5.855268565478542e-03 5.827165369238958e-03 5.799155152943781e-03 5.771237757858197e-03 + 5.743413031370796e-03 5.715680873423079e-03 5.688041146137241e-03 5.660493683352233e-03 5.633038344713090e-03 + 5.605674994693767e-03 5.578403490874967e-03 5.551223666073857e-03 5.524135383482108e-03 5.497138538622371e-03 + 5.470232973711985e-03 5.443418527865922e-03 5.416695061766649e-03 5.390062436684385e-03 5.363520500801443e-03 + 5.337069085950208e-03 5.310708070645691e-03 5.284437334686721e-03 5.258256709167105e-03 5.232166039984466e-03 + 5.206165186351173e-03 5.180254006079314e-03 5.154432337116667e-03 5.128700017566677e-03 5.103056934758595e-03 + 5.077502948400768e-03 5.052037887552509e-03 5.026661602896529e-03 5.001373950974750e-03 4.976174783805283e-03 + 4.951063931174483e-03 4.926041244835856e-03 4.901106610871052e-03 4.876259869861805e-03 4.851500854152867e-03 + 4.826829416485723e-03 4.802245411238555e-03 4.777748682676776e-03 4.753339057595283e-03 4.729016402174706e-03 + 4.704780591018902e-03 4.680631452386119e-03 4.656568824906738e-03 4.632592561043116e-03 4.608702512089780e-03 + 4.584898512841469e-03 4.561180394112987e-03 4.537548032865621e-03 4.514001286180084e-03 4.490539978046344e-03 + 4.467163952568486e-03 4.443873060291688e-03 4.420667147623122e-03 4.397546041481102e-03 4.374509584352294e-03 + 4.351557654555007e-03 4.328690090868674e-03 4.305906719484884e-03 4.283207387010587e-03 4.260591942258349e-03 + 4.238060226010617e-03 4.215612060889534e-03 4.193247302342208e-03 4.170965820265097e-03 4.148767441443334e-03 + 4.126651998168965e-03 4.104619336614093e-03 4.082669303050944e-03 4.060801730082235e-03 4.039016442831475e-03 + 4.017313308452854e-03 3.995692181792875e-03 3.974152883344686e-03 3.952695251163741e-03 3.931319130911208e-03 + 3.910024364917125e-03 3.888810777810686e-03 3.867678204037116e-03 3.846626514691173e-03 3.825655547709963e-03 + 3.804765124734014e-03 3.783955087456414e-03 3.763225279741349e-03 3.742575538839424e-03 3.722005684569956e-03 + 3.701515563829318e-03 3.681105042529648e-03 3.660773945892437e-03 3.640522100973796e-03 3.620349349516141e-03 + 3.600255533338096e-03 3.580240483202974e-03 3.560304020332013e-03 3.540446002992503e-03 3.520666284206718e-03 + 3.500964682823155e-03 3.481341031384374e-03 3.461795171007476e-03 3.442326941040924e-03 3.422936165061433e-03 + 3.403622671201535e-03 3.384386323473485e-03 3.365226959961049e-03 3.346144399498565e-03 3.327138478378434e-03 + 3.308209036536853e-03 3.289355909461925e-03 3.270578915351533e-03 3.251877893639187e-03 3.233252706195778e-03 + 3.214703178029928e-03 3.196229132118811e-03 3.177830406368320e-03 3.159506839403438e-03 3.141258260810600e-03 + 3.123084488811596e-03 3.104985374197366e-03 3.086960768611876e-03 3.069010490077185e-03 3.051134366997480e-03 + 3.033332237019262e-03 3.015603936903380e-03 2.997949290147841e-03 2.980368120588831e-03 2.962860285290425e-03 + 2.945425622240710e-03 2.928063948810786e-03 2.910775098113858e-03 2.893558906982335e-03 2.876415208617919e-03 + 2.859343821344898e-03 2.842344578930633e-03 2.825417338731532e-03 2.808561926446875e-03 2.791778162629514e-03 + 2.775065882662152e-03 2.758424922052246e-03 2.741855109318431e-03 2.725356262118107e-03 2.708928224810950e-03 + 2.692570847204586e-03 2.676283947708203e-03 2.660067352018658e-03 2.643920895408666e-03 2.627844412630983e-03 + 2.611837727127577e-03 2.595900659591014e-03 2.580033062057212e-03 2.564234773200918e-03 2.548505609580814e-03 + 2.532845401329118e-03 2.517253983314282e-03 2.501731188088862e-03 2.486276834298587e-03 2.470890751027053e-03 + 2.455572791828030e-03 2.440322784214469e-03 2.425140547489158e-03 2.410025914370114e-03 2.394978718743150e-03 + 2.379998789312335e-03 2.365085943631231e-03 2.350240020749269e-03 2.335460868942443e-03 2.320748308349550e-03 + 2.306102163022297e-03 2.291522266200105e-03 2.277008450857895e-03 2.262560541519312e-03 2.248178358404482e-03 + 2.233861748393963e-03 2.219610550590767e-03 2.205424582540762e-03 2.191303672653564e-03 2.177247654150935e-03 + 2.163256358437406e-03 2.149329606085116e-03 2.135467224025938e-03 2.121669062135428e-03 2.107934949596006e-03 + 2.094264705479671e-03 2.080658161247730e-03 2.067115150052171e-03 2.053635501035216e-03 2.040219032033609e-03 + 2.026865578574763e-03 2.013574988607888e-03 2.000347084189316e-03 1.987181688126059e-03 1.974078632294973e-03 + 1.961037750159034e-03 1.948058867783843e-03 1.935141804192390e-03 1.922286403096425e-03 1.909492504980594e-03 + 1.896759928265229e-03 1.884088500763132e-03 1.871478055631251e-03 1.858928424089599e-03 1.846439428400912e-03 + 1.834010894228015e-03 1.821642669213327e-03 1.809334584628213e-03 1.797086460037203e-03 1.784898126770644e-03 + 1.772769417737367e-03 1.760700162615002e-03 1.748690181778845e-03 1.736739308394668e-03 1.724847388831493e-03 + 1.713014248130287e-03 1.701239709792772e-03 1.689523605558227e-03 1.677865768960374e-03 1.666266027776910e-03 + 1.654724201747776e-03 1.643240132443950e-03 1.631813662093462e-03 1.620444610863358e-03 1.609132806416696e-03 + 1.597878082462674e-03 1.586680271167799e-03 1.575539197124769e-03 1.564454685806544e-03 1.553426583192850e-03 + 1.542454723186195e-03 1.531538926942232e-03 1.520679025889417e-03 1.509874853790604e-03 1.499126242122267e-03 + 1.488433013507451e-03 1.477795000037597e-03 1.467212048115432e-03 1.456683985464255e-03 1.446210636719452e-03 + 1.435791835117153e-03 1.425427414393694e-03 1.415117204211151e-03 1.404861027594662e-03 1.394658724273689e-03 + 1.384510137356095e-03 1.374415090575271e-03 1.364373412382042e-03 1.354384937246215e-03 1.344449499301808e-03 + 1.334566925970926e-03 1.324737043332181e-03 1.314959696939330e-03 1.305234723823342e-03 1.295561947265019e-03 + 1.285941199528206e-03 1.276372315963847e-03 1.266855130463658e-03 1.257389468322312e-03 1.247975161599065e-03 + 1.238612057815808e-03 1.229299987951490e-03 1.220038778115428e-03 1.210828263449681e-03 1.201668279419893e-03 + 1.192558658328712e-03 1.183499226491516e-03 1.174489822883548e-03 1.165530291825810e-03 1.156620461345326e-03 + 1.147760161971411e-03 1.138949229776032e-03 1.130187500878873e-03 1.121474806129454e-03 1.112810973708310e-03 + 1.104195848566657e-03 1.095629271185936e-03 1.087111069073448e-03 1.078641075658101e-03 1.070219127753748e-03 + 1.061845062287274e-03 1.053518708913237e-03 1.045239900848634e-03 1.037008485418972e-03 1.028824298155823e-03 + 1.020687168641753e-03 1.012596933141099e-03 1.004553429894111e-03 9.965564952721074e-04 9.886059579764911e-04 + 9.807016577383673e-04 9.728434421263681e-04 9.650311428619217e-04 9.572645925441391e-04 9.495436296868831e-04 + 9.418680934992058e-04 9.342378189983833e-04 9.266526374013966e-04 9.191123940951565e-04 9.116169327210938e-04 + 9.041660846048507e-04 8.967596865276394e-04 8.893975784458786e-04 8.820795994475233e-04 8.748055834052338e-04 + 8.675753662309574e-04 8.603887967412885e-04 8.532457145816050e-04 8.461459528881801e-04 8.390893515597134e-04 + 8.320757512954288e-04 8.251049910410551e-04 8.181769052102455e-04 8.112913354889369e-04 8.044481307476467e-04 + 7.976471276304203e-04 7.908881626723219e-04 7.841710779271092e-04 7.774957151422038e-04 7.708619131557394e-04 + 7.642695077220146e-04 7.577183458379644e-04 7.512082748417916e-04 7.447391309361296e-04 7.383107537219758e-04 + 7.319229861740803e-04 7.255756719189899e-04 7.192686493738265e-04 7.130017570250109e-04 7.067748463319056e-04 + 7.005877618919097e-04 6.944403408515077e-04 6.883324261093659e-04 6.822638623160529e-04 6.762344932684062e-04 + 6.702441573916524e-04 6.642926986443232e-04 6.583799694858947e-04 6.525058122102392e-04 6.466700672293728e-04 + 6.408725793807691e-04 6.351131947715911e-04 6.293917574305099e-04 6.237081070877600e-04 6.180620932909059e-04 + 6.124535677685099e-04 6.068823714677426e-04 6.013483481700967e-04 5.958513451670206e-04 5.903912096703989e-04 + 5.849677853780454e-04 5.795809154020751e-04 5.742304534677881e-04 5.689162489783443e-04 5.636381442526738e-04 + 5.583959863498279e-04 5.531896240506697e-04 5.480189055622431e-04 5.428836748799696e-04 5.377837797240800e-04 + 5.327190759830209e-04 5.276894110958636e-04 5.226946300477827e-04 5.177345825024617e-04 5.128091188465486e-04 + 5.079180879528710e-04 5.030613351067660e-04 4.982387130290541e-04 4.934500776624026e-04 4.886952758062522e-04 + 4.839741558713263e-04 4.792865695826084e-04 4.746323688630657e-04 4.700114029595036e-04 4.654235198613055e-04 + 4.608685766627245e-04 4.563464280591107e-04 4.518569219186994e-04 4.473999099762359e-04 4.429752457691277e-04 + 4.385827824909558e-04 4.342223700107388e-04 4.298938604566902e-04 4.255971135329090e-04 4.213319826090788e-04 + 4.170983180859963e-04 4.128959744299958e-04 4.087248069577171e-04 4.045846700338900e-04 4.004754147907325e-04 + 3.963968979642262e-04 3.923489801919561e-04 3.883315144592717e-04 3.843443544269981e-04 3.803873568608614e-04 + 3.764603788261386e-04 3.725632754784107e-04 3.686959004384349e-04 3.648581147870281e-04 3.610497787686854e-04 + 3.572707463878945e-04 3.535208745539621e-04 3.498000220657478e-04 3.461080477383748e-04 3.424448076363575e-04 + 3.388101589386426e-04 3.352039657815740e-04 3.316260877532703e-04 3.280763812137888e-04 3.245547060139738e-04 + 3.210609229167205e-04 3.175948921405597e-04 3.141564711604799e-04 3.107455215081982e-04 3.073619088757455e-04 + 3.040054927848886e-04 3.006761327105527e-04 2.973736909925681e-04 2.940980303881470e-04 2.908490123115160e-04 + 2.876264965105581e-04 2.844303488008553e-04 2.812604353029198e-04 2.781166164989417e-04 2.749987551423296e-04 + 2.719067158817455e-04 2.688403633742989e-04 2.657995602462465e-04 2.627841695326067e-04 2.597940603791381e-04 + 2.568290988582687e-04 2.538891477672460e-04 2.509740728301346e-04 2.480837407612393e-04 2.452180180501483e-04 + 2.423767689150773e-04 2.395598604007145e-04 2.367671637065971e-04 2.339985452156380e-04 2.312538707417314e-04 + 2.285330086975239e-04 2.258358279521211e-04 2.231621965330517e-04 2.205119809474630e-04 2.178850522930381e-04 + 2.152812827957872e-04 2.127005401044592e-04 2.101426932429596e-04 2.076076129630843e-04 2.050951703707553e-04 + 2.026052350574154e-04 2.001376764695323e-04 1.976923692963255e-04 1.952691863631026e-04 1.928679973631469e-04 + 1.904886744667185e-04 1.881310908124045e-04 1.857951194428946e-04 1.834806317739651e-04 1.811875010647571e-04 + 1.789156043640377e-04 1.766648152326652e-04 1.744350063601967e-04 1.722260526922104e-04 1.700378296945535e-04 + 1.678702123432160e-04 1.657230742438847e-04 1.635962925697728e-04 1.614897461072756e-04 1.594033097074569e-04 + 1.573368592094730e-04 1.552902721810668e-04 1.532634264532060e-04 1.512561988693490e-04 1.492684659352835e-04 + 1.473001083560244e-04 1.453510059716440e-04 1.434210358729406e-04 1.415100771164913e-04 1.396180097223186e-04 + 1.377447137267307e-04 1.358900680130841e-04 1.340539526362652e-04 1.322362510498252e-04 1.304368442346035e-04 + 1.286556121626104e-04 1.268924368411170e-04 1.251472007379926e-04 1.234197860690376e-04 1.217100740639766e-04 + 1.200179485071157e-04 1.183432949752447e-04 1.166859960758634e-04 1.150459349477667e-04 1.134229962637926e-04 + 1.118170649981152e-04 1.102280255615328e-04 1.086557620076939e-04 1.071001616642248e-04 1.055611117192228e-04 + 1.040384970703678e-04 1.025322040262462e-04 1.010421198490596e-04 9.956813202096472e-05 9.811012722455996e-05 + 9.666799283658755e-05 9.524161921027426e-05 9.383089505710078e-05 9.243570803818307e-05 9.105594759252440e-05 + 8.969150364397068e-05 8.834226604286881e-05 8.700812397260034e-05 8.568896841419017e-05 8.438469212608002e-05 + 8.309518568825200e-05 8.182033994906239e-05 8.056004718218619e-05 7.931419998170841e-05 7.808269064296404e-05 + 7.686541112857092e-05 7.566225594198306e-05 7.447311991364301e-05 7.329789600792314e-05 7.213647827366786e-05 + 7.098876170896106e-05 6.985464163907488e-05 6.873401282606521e-05 6.762677039259616e-05 6.653281205307769e-05 + 6.545203459530543e-05 6.438433381335806e-05 6.332960688869456e-05 6.228775159650499e-05 6.125866586213212e-05 + 6.024224709312662e-05 5.923839394811549e-05 5.824700680510711e-05 5.726798458845817e-05 5.630122626966778e-05 + 5.534663202079377e-05 5.440410243697520e-05 5.347353805513213e-05 5.255483915897720e-05 5.164790790372327e-05 + 5.075264706713765e-05 4.986895809670387e-05 4.899674321102013e-05 4.813590548272275e-05 4.728634834520723e-05 + 4.644797500988253e-05 4.562068892036128e-05 4.480439551815946e-05 4.399899988301035e-05 4.320440633696577e-05 + 4.242052030402665e-05 4.164724778526068e-05 4.088449502887978e-05 4.013216802138054e-05 3.939017361734100e-05 + 3.865842020891389e-05 3.793681530287127e-05 3.722526637683801e-05 3.652368195642655e-05 3.583197100166348e-05 + 3.515004257550265e-05 3.447780563338777e-05 3.381517049939420e-05 3.316204825033269e-05 3.251834908257212e-05 + 3.188398376275541e-05 3.125886384349450e-05 3.064290126992314e-05 3.003600797392098e-05 2.943809607683111e-05 + 2.884907925556903e-05 2.826887119646782e-05 2.769738505988399e-05 2.713453488302094e-05 2.658023526748751e-05 + 2.603440114263312e-05 2.549694738792051e-05 2.496778949423694e-05 2.444684425976710e-05 2.393402805764408e-05 + 2.342925723948219e-05 2.293244905822871e-05 2.244352120797989e-05 2.196239159983278e-05 2.148897818423003e-05 + 2.102319990982268e-05 2.056497650699234e-05 2.011422722229805e-05 1.967087173846936e-05 1.923483045310688e-05 + 1.880602417859793e-05 1.838437386840237e-05 1.796980069033951e-05 1.756222699777835e-05 1.716157539169325e-05 + 1.676776819323897e-05 1.638072842752046e-05 1.600037965967140e-05 1.562664583506045e-05 1.525945101785764e-05 + 1.489871974108943e-05 1.454437762041471e-05 1.419635018600421e-05 1.385456300630342e-05 1.351894241351905e-05 + 1.318941519258516e-05 1.286590843459537e-05 1.254834939298960e-05 1.223666606495489e-05 1.193078719950152e-05 + 1.163064137727749e-05 1.133615754527981e-05 1.104726530816775e-05 1.076389469662666e-05 1.048597599093073e-05 + 1.021343974753131e-05 9.946217419267380e-06 9.684240838620889e-06 9.427441790773100e-06 9.175752643853506e-06 + 8.929106280098344e-06 8.687435997194528e-06 8.450675338936148e-06 8.218758257424963e-06 7.991619584870982e-06 + 7.769194298227330e-06 7.551417507621627e-06 7.338224987041431e-06 7.129552955942858e-06 6.925337997222138e-06 + 6.725516977155444e-06 6.530027335862672e-06 6.338807194551445e-06 6.151794769434223e-06 5.968928615355085e-06 + 5.790147878391894e-06 5.615392155261267e-06 5.444601365246586e-06 5.277715758699128e-06 5.114676291438329e-06 + 4.955424365336747e-06 4.799901525655197e-06 4.648049820836300e-06 4.499811793985402e-06 4.355130438087899e-06 + 4.213949069835453e-06 4.076211399540344e-06 3.941861865039729e-06 3.810845196499976e-06 3.683106361660463e-06 + 3.558590910585118e-06 3.437244835818923e-06 3.319014541070219e-06 3.203846795533912e-06 3.091688852089737e-06 + 2.982488579295818e-06 2.876194109656037e-06 2.772753925582794e-06 2.672117063800105e-06 2.574233014808049e-06 + 2.479051643033932e-06 2.386523210361943e-06 2.296598552297165e-06 2.209228971591383e-06 2.124366069775506e-06 + 2.041961906232304e-06 1.961969019732135e-06 1.884340423438541e-06 1.809029507182080e-06 1.735990071613592e-06 + 1.665176534356502e-06 1.596543687803830e-06 1.530046658503296e-06 1.465641105678908e-06 1.403283128309336e-06 + 1.342929271825179e-06 1.284536503035511e-06 1.228062233226246e-06 1.173464436795038e-06 1.120701460082181e-06 + 1.069732028902882e-06 1.020515399241352e-06 9.730112822753146e-07 9.271798002921477e-07 8.829815278752155e-07 + 8.403775374680640e-07 7.993293716485992e-07 7.597989809176624e-07 7.217487560416926e-07 6.851415619710593e-07 + 6.499407524191172e-07 6.161100929136179e-07 5.836137918783888e-07 5.524166028233452e-07 5.224836968385216e-07 + 4.937806609639881e-07 4.662735849361845e-07 4.399289991547822e-07 4.147139110260500e-07 3.905957813609555e-07 + 3.675425084859321e-07 3.455225231396512e-07 3.245046871736890e-07 3.044582778536548e-07 2.853530928283095e-07 + 2.671593859185241e-07 2.498478511400059e-07 2.333896726605378e-07 2.177564985206194e-07 2.029204500538344e-07 + 1.888541210793108e-07 1.755305458522738e-07 1.629232393506973e-07 1.510062144201093e-07 1.397539174372155e-07 + 1.291412703741045e-07 1.191437050672961e-07 1.097370923617762e-07 1.008977778162274e-07 9.260259669902208e-08 + 8.482883141984319e-08 7.755426670738778e-08 7.075715683240311e-08 6.441620467100832e-08 5.851063608240125e-08 + 5.302013495440350e-08 4.792483459927075e-08 4.320538955913144e-08 3.884291294265582e-08 3.481898425658018e-08 + 3.111569527451850e-08 2.771559342817648e-08 2.460171067137196e-08 2.175758348333717e-08 1.916719757773861e-08 + 1.681503457183268e-08 1.468607978947252e-08 1.276576812429566e-08 1.104003874048358e-08 9.495328649625366e-09 + 8.118528715645258e-09 6.897042498203040e-09 5.818760232281117e-09 4.872032311209139e-09 4.045732447740840e-09 + 3.329210679517489e-09 2.712284881132093e-09 2.185301687016959e-09 1.739076161987666e-09 1.364901589086205e-09 + 1.054599065845252e-09 8.004535320102697e-10 5.952414597054672e-10 4.322622496028902e-10 3.052766304104823e-10 + 2.085502003918036e-10 1.368642901349301e-10 8.546164059834664e-11 5.010215808832263e-11 2.705311520847365e-11 + 1.304599438344934e-11 5.339090781311160e-12 1.692041320615927e-12 3.321208355096226e-13 6.781366937015517e-15 diff --git a/examples/SPIN/read_restart/in.spin.read_data b/examples/SPIN/read_restart/in.spin.read_data index 1f56df2564..7a3b1d0913 100644 --- a/examples/SPIN/read_restart/in.spin.read_data +++ b/examples/SPIN/read_restart/in.spin.read_data @@ -1,4 +1,5 @@ <<<<<<< HEAD +<<<<<<< HEAD # start a spin-lattice simulation from a data file clear units metal @@ -12,24 +13,30 @@ atom_modify map array read_data ../examples/SPIN/read_restart/Norm_randXY_8x8x32.data ======= +======= +# start a spin-lattice simulation from a data file +>>>>>>> Commit modifs before release 1 (03/26/18) clear -units metal -dimension 3 -boundary p p p +units metal +dimension 3 +boundary p p p -atom_style spin +atom_style spin # necessary for the serial algorithm (sametag) -atom_modify map array - -read_data ../examples/SPIN/Norm_randXY_8x8x32_test.data +atom_modify map array +<<<<<<< HEAD >>>>>>> Commit before meeting 032218 +======= +read_data ../examples/SPIN/read_restart/Norm_randXY_8x8x32.data +>>>>>>> Commit modifs before release 1 (03/26/18) mass 1 58.93 # define magneto-mechanical potentials and forces <<<<<<< HEAD +<<<<<<< HEAD pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 @@ -49,18 +56,27 @@ pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4. pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 +======= +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +>>>>>>> Commit modifs before release 1 (03/26/18) -neighbor 1.0 bin -neigh_modify every 1 check no delay 0 +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 -fix 3 all integration/spin serial +fix 3 all nve/spin lattice yes timestep 0.0001 +<<<<<<< HEAD # define outputs >>>>>>> Commit before meeting 032218 +======= +# define outputs and computes +>>>>>>> Commit modifs before release 1 (03/26/18) compute out_mag all compute/spin compute out_pe all pe @@ -76,6 +92,7 @@ thermo 10 thermo_style custom step time v_magnorm v_emag v_tmag temp etotal thermo_modify format float %20.15g +<<<<<<< HEAD <<<<<<< HEAD compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] @@ -86,4 +103,10 @@ dump 1 all custom 1 dump.lammpstrj type x y z spx spy spz run 10000 >>>>>>> Commit before meeting 032218 +======= +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 100 +>>>>>>> Commit modifs before release 1 (03/26/18) diff --git a/examples/SPIN/read_restart/in.spin.restart b/examples/SPIN/read_restart/in.spin.restart index 2afcfb6291..5970953b30 100644 --- a/examples/SPIN/read_restart/in.spin.restart +++ b/examples/SPIN/read_restart/in.spin.restart @@ -1,62 +1,63 @@ +# start a spin-lattice simulation from a data file clear -units metal -atom_style spin +units metal +atom_style spin -dimension 3 -boundary p p p +dimension 3 +boundary p p p # necessary for the serial algorithm (sametag) -atom_modify map array +atom_modify map array -lattice fcc 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box +lattice fcc 3.54 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box -read_dump ../examples/SPIN/Norm_randXY_8x8x32.dump 0 x y z box yes +read_dump ../examples/SPIN/Norm_randXY_8x8x32.dump 0 x y z box yes -create_atoms 1 box +create_atoms 1 box # setting mass, mag. moments, and interactions mass 1 58.93 -set group all spin 1.72 0.0 0.0 1.0 -set group single_spin spin/random 11 1.72 -velocity all create 200 4928459 rot yes dist gaussian +set group all spin 1.72 0.0 0.0 1.0 +set group single_spin spin/random 11 1.72 +velocity all create 200 4928459 rot yes dist gaussian # define magneto-mechanical potentials and forces -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 -neighbor 1.0 bin -neigh_modify every 1 check no delay 0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 0.0 21 +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 -fix 3 all integration/spin serial +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 0.0 21 + +fix 3 all nve/spin lattice yes timestep 0.0001 # define outputs -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] -variable mag_force equal f_1 +variable magz equal c_out_mag[4] +variable magnorm equal c_out_mag[5] +variable emag equal c_out_mag[6] +variable tmag equal c_out_mag[7] thermo 10 thermo_style custom step time v_magnorm v_emag v_tmag temp etotal thermo_modify format float %20.15g -dump 1 all custom 20 dump.lammpstrj type x y z spx spy spz +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] -run 1000 +run 1000 diff --git a/examples/SPIN/read_restart/in.spin.write_restart b/examples/SPIN/read_restart/in.spin.write_restart new file mode 100644 index 0000000000..2b2e9e0622 --- /dev/null +++ b/examples/SPIN/read_restart/in.spin.write_restart @@ -0,0 +1,58 @@ +# fcc cobalt in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.54 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +create_atoms 1 box + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.93 + +set group all spin/random 31 1.72 +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_coeff * * eam/alloy ../examples/SPIN/cobalt_fcc/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# compute and output options + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_emag temp etotal +thermo 10 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 10000 +write_restart restart_fcc_cobalt.equil + diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 1af3440958..cda16833a3 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -1,4 +1,5 @@ /* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator http://lammps.sandia.gov, Sandia National Laboratories Steve Plimpton, sjplimp@sandia.gov @@ -43,14 +44,13 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) size_forward = 7; size_reverse = 6; - size_border = 11; + size_border = 10; size_velocity = 3; size_data_atom = 9; size_data_vel = 4; xcol_data = 4; forceclearflag = 1; - atom->mumag_flag = 1; atom->sp_flag = 1; } @@ -83,7 +83,6 @@ void AtomVecSpin::grow(int n) // allocating mag. quantities - mumag = memory->grow(atom->mumag,nmax,"atom:mumag"); sp = memory->grow(atom->sp,nmax,4,"atom:sp"); fm = memory->grow(atom->fm,nmax*comm->nthreads,3,"atom:fm"); @@ -101,7 +100,7 @@ void AtomVecSpin::grow_reset() tag = atom->tag; type = atom->type; mask = atom->mask; image = atom->image; x = atom->x; v = atom->v; f = atom->f; - mumag = atom->mumag; sp = atom->sp; fm = atom->fm; + sp = atom->sp; fm = atom->fm; } @@ -122,7 +121,6 @@ void AtomVecSpin::copy(int i, int j, int delflag) v[j][1] = v[i][1]; v[j][2] = v[i][2]; - mumag[j] = mumag[i]; sp[j][0] = sp[i][0]; sp[j][1] = sp[i][1]; sp[j][2] = sp[i][2]; @@ -381,7 +379,6 @@ int AtomVecSpin::pack_border(int n, int *list, double *buf, buf[m++] = ubuf(tag[j]).d; buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; - buf[m++] = mumag[j]; buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; @@ -405,7 +402,6 @@ int AtomVecSpin::pack_border(int n, int *list, double *buf, buf[m++] = ubuf(tag[j]).d; buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; - buf[m++] = mumag[j]; buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; @@ -438,7 +434,6 @@ int AtomVecSpin::pack_border_vel(int n, int *list, double *buf, buf[m++] = ubuf(tag[j]).d; buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; - buf[m++] = mumag[j]; buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; @@ -466,7 +461,6 @@ int AtomVecSpin::pack_border_vel(int n, int *list, double *buf, buf[m++] = ubuf(tag[j]).d; buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; - buf[m++] = mumag[j]; buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; @@ -487,7 +481,6 @@ int AtomVecSpin::pack_border_vel(int n, int *list, double *buf, buf[m++] = ubuf(tag[j]).d; buf[m++] = ubuf(type[j]).d; buf[m++] = ubuf(mask[j]).d; - buf[m++] = mumag[j]; buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; @@ -521,7 +514,6 @@ int AtomVecSpin::pack_border_hybrid(int n, int *list, double *buf) m = 0; for (i = 0; i < n; i++) { j = list[i]; - buf[m++] = mumag[j]; buf[m++] = sp[j][0]; buf[m++] = sp[j][1]; buf[m++] = sp[j][2]; @@ -547,7 +539,6 @@ void AtomVecSpin::unpack_border(int n, int first, double *buf) tag[i] = (tagint) ubuf(buf[m++]).i; type[i] = (int) ubuf(buf[m++]).i; mask[i] = (int) ubuf(buf[m++]).i; - mumag[i] = buf[m++]; sp[i][0] = buf[m++]; sp[i][1] = buf[m++]; sp[i][2] = buf[m++]; @@ -577,7 +568,6 @@ void AtomVecSpin::unpack_border_vel(int n, int first, double *buf) tag[i] = (tagint) ubuf(buf[m++]).i; type[i] = (int) ubuf(buf[m++]).i; mask[i] = (int) ubuf(buf[m++]).i; - mumag[i] = buf[m++]; sp[i][0] = buf[m++]; sp[i][1] = buf[m++]; sp[i][2] = buf[m++]; @@ -603,7 +593,6 @@ int AtomVecSpin::unpack_border_hybrid(int n, int first, double *buf) m = 0; last = first + n; for (i = first; i < last; i++) { - mumag[i] = buf[m++]; sp[i][0] = buf[m++]; sp[i][1] = buf[m++]; sp[i][2] = buf[m++]; @@ -632,7 +621,6 @@ int AtomVecSpin::pack_exchange(int i, double *buf) buf[m++] = ubuf(mask[i]).d; buf[m++] = ubuf(image[i]).d; - buf[m++] = mumag[i]; buf[m++] = sp[i][0]; buf[m++] = sp[i][1]; buf[m++] = sp[i][2]; @@ -665,7 +653,6 @@ int AtomVecSpin::unpack_exchange(double *buf) mask[nlocal] = (int) ubuf(buf[m++]).i; image[nlocal] = (imageint) ubuf(buf[m++]).i; - mumag[nlocal] = buf[m++]; sp[nlocal][0] = buf[m++]; sp[nlocal][1] = buf[m++]; sp[nlocal][2] = buf[m++]; @@ -722,7 +709,6 @@ int AtomVecSpin::pack_restart(int i, double *buf) buf[m++] = v[i][1]; buf[m++] = v[i][2]; - buf[m++] = mumag[i]; buf[m++] = sp[i][0]; buf[m++] = sp[i][1]; buf[m++] = sp[i][2]; @@ -761,7 +747,6 @@ int AtomVecSpin::unpack_restart(double *buf) v[nlocal][1] = buf[m++]; v[nlocal][2] = buf[m++]; - mumag[nlocal] = buf[m++]; sp[nlocal][0] = buf[m++]; sp[nlocal][1] = buf[m++]; sp[nlocal][2] = buf[m++]; @@ -800,7 +785,6 @@ void AtomVecSpin::create_atom(int itype, double *coord) v[nlocal][1] = 0.0; v[nlocal][2] = 0.0; - mumag[nlocal] = 0.0; sp[nlocal][0] = 0.0; sp[nlocal][1] = 0.0; sp[nlocal][2] = 0.0; @@ -824,18 +808,20 @@ void AtomVecSpin::data_atom(double *coord, imageint imagetmp, char **values) if (type[nlocal] <= 0 || type[nlocal] > atom->ntypes) error->one(FLERR,"Invalid atom type in Atoms section of data file"); - mumag[nlocal] = atof(values[2]); - x[nlocal][0] = coord[0]; x[nlocal][1] = coord[1]; x[nlocal][2] = coord[2]; - sp[nlocal][0] = atof(values[6]); - sp[nlocal][1] = atof(values[7]); - sp[nlocal][2] = atof(values[8]); - sp[nlocal][3] = sqrt(sp[nlocal][0]*sp[nlocal][0] + - sp[nlocal][1]*sp[nlocal][1] + - sp[nlocal][2]*sp[nlocal][2]); + sp[nlocal][3] = atof(values[2]); + sp[nlocal][0] = atof(values[5]); + sp[nlocal][1] = atof(values[6]); + sp[nlocal][2] = atof(values[7]); + double inorm = 1.0/sqrt(sp[nlocal][0]*sp[nlocal][0] + + sp[nlocal][1]*sp[nlocal][1] + + sp[nlocal][2]*sp[nlocal][2]); + sp[nlocal][0] *= inorm; + sp[nlocal][1] *= inorm; + sp[nlocal][2] *= inorm; image[nlocal] = imagetmp; @@ -854,13 +840,17 @@ void AtomVecSpin::data_atom(double *coord, imageint imagetmp, char **values) int AtomVecSpin::data_atom_hybrid(int nlocal, char **values) { - mumag[nlocal] = atof(values[0]); - sp[nlocal][0] = atof(values[1]); - sp[nlocal][1] = atof(values[2]); - sp[nlocal][2] = atof(values[3]); - sp[nlocal][3] = sqrt(sp[nlocal][0]*sp[nlocal][0] + - sp[nlocal][1]*sp[nlocal][1] + - sp[nlocal][2]*sp[nlocal][2]); + + sp[nlocal][0] = atof(values[0]); + sp[nlocal][1] = atof(values[1]); + sp[nlocal][2] = atof(values[2]); + double inorm = 1.0/sqrt(sp[nlocal][0]*sp[nlocal][0] + + sp[nlocal][1]*sp[nlocal][1] + + sp[nlocal][2]*sp[nlocal][2]); + sp[nlocal][0] *= inorm; + sp[nlocal][1] *= inorm; + sp[nlocal][2] *= inorm; + sp[nlocal][3] = atof(values[3]); return 4; } @@ -875,17 +865,16 @@ void AtomVecSpin::pack_data(double **buf) for (int i = 0; i < nlocal; i++) { buf[i][0] = ubuf(tag[i]).d; buf[i][1] = ubuf(type[i]).d; - buf[i][2] = mumag[i]; + buf[i][2] = sp[i][3]; buf[i][3] = x[i][0]; buf[i][4] = x[i][1]; buf[i][5] = x[i][2]; buf[i][6] = sp[i][0]; buf[i][7] = sp[i][1]; buf[i][8] = sp[i][2]; - buf[i][9] = sp[i][3]; - buf[i][10] = ubuf((image[i] & IMGMASK) - IMGMAX).d; - buf[i][11] = ubuf((image[i] >> IMGBITS & IMGMASK) - IMGMAX).d; - buf[i][12] = ubuf((image[i] >> IMG2BITS) - IMGMAX).d; + buf[i][9] = ubuf((image[i] & IMGMASK) - IMGMAX).d; + buf[i][10] = ubuf((image[i] >> IMGBITS & IMGMASK) - IMGMAX).d; + buf[i][11] = ubuf((image[i] >> IMG2BITS) - IMGMAX).d; } } @@ -895,13 +884,13 @@ void AtomVecSpin::pack_data(double **buf) int AtomVecSpin::pack_data_hybrid(int i, double *buf) { - buf[0] = mumag[i]; - buf[1] = sp[i][0]; - buf[2] = sp[i][1]; - buf[3] = sp[i][2]; - buf[4] = sp[i][3]; - return 5; + buf[0] = sp[i][0]; + buf[1] = sp[i][1]; + buf[2] = sp[i][2]; + buf[3] = sp[i][3]; + + return 4; } /* ---------------------------------------------------------------------- @@ -947,7 +936,6 @@ bigint AtomVecSpin::memory_usage() if (atom->memcheck("v")) bytes += memory->usage(v,nmax,3); if (atom->memcheck("f")) bytes += memory->usage(f,nmax*comm->nthreads,3); - if (atom->memcheck("mumag")) bytes += memory->usage(mumag,nmax); if (atom->memcheck("sp")) bytes += memory->usage(sp,nmax,4); if (atom->memcheck("fm")) bytes += memory->usage(fm,nmax*comm->nthreads,3); diff --git a/src/SPIN/atom_vec_spin.h b/src/SPIN/atom_vec_spin.h index c0f245ba27..99d4a86189 100644 --- a/src/SPIN/atom_vec_spin.h +++ b/src/SPIN/atom_vec_spin.h @@ -68,7 +68,9 @@ class AtomVecSpin : public AtomVec { int *type,*mask; imageint *image; double **x,**v,**f; // lattice quantities - double *mumag,**sp,**fm; // spin quantities + double **sp,**fm; // spin quantities + // sp[i][0-2] direction of the spin i + // sp[i][3] atomic magnetic moment of the spin i }; diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 7dbf7b05ab..32e3a4b9ba 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -91,7 +91,6 @@ void ComputeSpin::compute_vector() int *mask = atom->mask; int *type = atom->type; imageint *image = atom->image; - double *mumag = atom->mumag; double **sp = atom->sp; double **fm = atom->fm; double tx,ty,tz; @@ -103,7 +102,7 @@ void ComputeSpin::compute_vector() for (i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { - if (atom->mumag_flag && atom->sp_flag) { + if (atom->sp_flag) { mag[0] += sp[i][0]; mag[1] += sp[i][1]; mag[2] += sp[i][2]; @@ -116,7 +115,7 @@ void ComputeSpin::compute_vector() countsp++; } } - else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); + else error->all(FLERR,"Compute compute/spin requires atom/spin style"); } MPI_Allreduce(mag,magtot,4,MPI_DOUBLE,MPI_SUM,world); diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 2a7f49b0e6..b7a2f0c0bd 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -116,10 +116,10 @@ void FixLangevinSpin::init() int flag_force = 0; int flag_lang = 0; for (int i = 0; i < modify->nfix; i++) { - if (strcmp("force/spin",modify->fix[i]->style)==0) flag_force = MAX(flag_force,i); + if (strcmp("precession/spin",modify->fix[i]->style)==0) flag_force = MAX(flag_force,i); if (strcmp("langevin/spin",modify->fix[i]->style)==0) flag_lang = i; } - if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin should come after all other spin fixes"); + if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin has to come after all other spin fixes"); memory->create(spi,3,"langevin:spi"); memory->create(fmi,3,"langevin:fmi"); diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index 276f03499a..0f90a77c14 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -31,7 +31,6 @@ class FixLangevinSpin : public Fix { int setmask(); void init(); void setup(int); -// virtual void post_force(int); void post_force_respa(int, int, int); void add_tdamping(double spi[3], double fmi[3]); // add transverse damping void add_temperature(double fmi[3]); // add temperature diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_nve_spin.cpp similarity index 73% rename from src/SPIN/fix_integration_spin.cpp rename to src/SPIN/fix_nve_spin.cpp index 7581546f3e..0660032e02 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -23,8 +23,8 @@ #include "atom.h" #include "atom_vec.h" #include "error.h" -#include "fix_force_spin.h" -#include "fix_integration_spin.h" +#include "fix_precession_spin.h" +#include "fix_nve_spin.h" #include "fix_langevin_spin.h" #include "force.h" #include "math_vector.h" @@ -48,63 +48,69 @@ using namespace FixConst; using namespace MathConst; using namespace MathExtra; -enum{NONE,SPIN}; +enum{NONE}; /* ---------------------------------------------------------------------- */ -FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : +FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), rsec(NULL), stack_head(NULL), stack_foot(NULL), backward_stacks(NULL), forward_stacks(NULL), - lockpairspinexchange(NULL), lockpairspinsocneel(NULL), lockforcespin(NULL), + lockpairspinexchange(NULL), lockpairspinsocneel(NULL), lockprecessionspin(NULL), locklangevinspin(NULL) { - if (narg < 4) error->all(FLERR,"Illegal fix/integration/spin command"); + if (narg < 4) error->all(FLERR,"Illegal fix/NVE/spin command"); time_integrate = 1; - extra = NONE; - mpi_flag = NONE; + sector_flag = NONE; mech_flag = 1; - - if (strcmp(arg[2],"integration/spin") == 0) { - extra = SPIN; - } else error->all(FLERR,"Illegal fix integration/spin command"); - - // defining mpi_flag + + // checking if map array or hash is defined + + if (atom->map_style == 0) + error->all(FLERR,"Fix NVE/spin requires an atom map, see atom_modify"); + + // defining sector_flag int nprocs_tmp = comm->nprocs; if (nprocs_tmp == 1) { - mpi_flag = 0; + sector_flag = 0; } else if (nprocs_tmp >= 1) { - mpi_flag = 1; - } else error->all(FLERR,"Illegal fix/integration/spin command"); + sector_flag = 1; + } else error->all(FLERR,"Illegal fix/NVE/spin command"); // defining mech_flag int iarg = 3; while (iarg < narg) { if (strcmp(arg[iarg],"lattice") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix/integration/spin command"); + if (iarg+2 > narg) error->all(FLERR,"Illegal fix/NVE/spin command"); if (strcmp(arg[iarg+1],"no") == 0) mech_flag = 0; else if (strcmp(arg[iarg+1],"yes") == 0) mech_flag = 1; - else error->all(FLERR,"Illegal fix/integration/spin command"); + else error->all(FLERR,"Illegal fix/NVE/spin command"); iarg += 2; - } else error->all(FLERR,"Illegal fix/integration/spin command"); + } else error->all(FLERR,"Illegal fix/NVE/spin command"); } - if (extra == SPIN && !atom->mumag_flag) - error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); + // check if the atom/spin style is defined - if (mpi_flag == 0 && nprocs_tmp > 1) - error->all(FLERR,"Illegal fix/integration/spin command"); + if (!atom->sp_flag) + error->all(FLERR,"Fix NVE/spin requires atom/spin style"); + + // check if sector_flag is correctly defined + + if (sector_flag == 0 && nprocs_tmp > 1) + error->all(FLERR,"Illegal fix/NVE/spin command"); + + // initialize the magnetic interaction flags magpair_flag = 0; exch_flag = 0; soc_neel_flag = soc_dmi_flag = 0; me_flag = 0; - magforce_flag = 0; + magprecession_flag = 0; zeeman_flag = aniso_flag = 0; maglangevin_flag = 0; tdamp_flag = temp_flag = 0; @@ -113,7 +119,7 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : /* ---------------------------------------------------------------------- */ -FixIntegrationSpin::~FixIntegrationSpin() +FixNVESpin::~FixNVESpin() { memory->destroy(rsec); memory->destroy(stack_head); @@ -124,7 +130,7 @@ FixIntegrationSpin::~FixIntegrationSpin() /* ---------------------------------------------------------------------- */ -int FixIntegrationSpin::setmask() +int FixNVESpin::setmask() { int mask = 0; mask |= INITIAL_INTEGRATE; @@ -135,7 +141,7 @@ int FixIntegrationSpin::setmask() /* ---------------------------------------------------------------------- */ -void FixIntegrationSpin::init() +void FixNVESpin::init() { // set timesteps @@ -177,15 +183,15 @@ void FixIntegrationSpin::init() lockpairspinme = (PairSpinMe *) lockhybrid->styles[ipair]; } } - } else error->all(FLERR,"Illegal fix integration/spin command"); + } else error->all(FLERR,"Illegal fix NVE/spin command"); // check errors, and handle simple hybrid (not overlay), and no pair/spin interaction int iforce; for (iforce = 0; iforce < modify->nfix; iforce++) { - if (strstr(modify->fix[iforce]->style,"force/spin")) { - magforce_flag = 1; - lockforcespin = (FixForceSpin *) modify->fix[iforce]; + if (strstr(modify->fix[iforce]->style,"precession/spin")) { + magprecession_flag = 1; + lockprecessionspin = (FixPrecessionSpin *) modify->fix[iforce]; } } @@ -196,9 +202,9 @@ void FixIntegrationSpin::init() } } - if (magforce_flag) { - if (lockforcespin->zeeman_flag == 1) zeeman_flag = 1; - if (lockforcespin->aniso_flag == 1) aniso_flag = 1; + if (magprecession_flag) { + if (lockprecessionspin->zeeman_flag == 1) zeeman_flag = 1; + if (lockprecessionspin->aniso_flag == 1) aniso_flag = 1; } if (maglangevin_flag) { @@ -207,24 +213,24 @@ void FixIntegrationSpin::init() } nsectors = 0; - memory->create(rsec,3,"integration/spin:rsec"); + memory->create(rsec,3,"NVE/spin:rsec"); - // perform the sectoring if mpi integration + // perform the sectoring operation - if (mpi_flag) sectoring(); + if (sector_flag) sectoring(); - // grow tables of stacking variables (mpi) + // init. size tables of stacking variables (sectoring) - stack_head = memory->grow(stack_head,nsectors,"integration/spin:stack_head"); - stack_foot = memory->grow(stack_foot,nsectors,"integration/spin:stack_foot"); - forward_stacks = memory->grow(forward_stacks,atom->nmax,"integration/spin:forward_stacks"); - backward_stacks = memory->grow(backward_stacks,atom->nmax,"integration/spin:backward_stacks"); + stack_head = memory->grow(stack_head,nsectors,"NVE/spin:stack_head"); + stack_foot = memory->grow(stack_foot,nsectors,"NVE/spin:stack_foot"); + forward_stacks = memory->grow(forward_stacks,atom->nmax,"NVE/spin:forward_stacks"); + backward_stacks = memory->grow(backward_stacks,atom->nmax,"NVE/spin:backward_stacks"); } /* ---------------------------------------------------------------------- */ -void FixIntegrationSpin::initial_integrate(int vflag) +void FixNVESpin::initial_integrate(int vflag) { double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; double spi[3], fmi[3]; @@ -257,40 +263,36 @@ void FixIntegrationSpin::initial_integrate(int vflag) // update half s for all atoms - if (extra == SPIN) { - if (mpi_flag) { // mpi seq. update - for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal - comm->forward_comm(); - int i = stack_foot[j]; - while (i >= 0) { - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts); - i = forward_stacks[i]; - } - } - for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal - comm->forward_comm(); - int i = stack_head[j]; - while (i >= 0) { - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts); - i = backward_stacks[i]; - } - } - } else if (mpi_flag == 0) { // serial seq. update - comm->forward_comm(); // comm. positions of ghost atoms - for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal-1 + if (sector_flag) { // sectoring seq. update + for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal + comm->forward_comm(); + int i = stack_foot[j]; + while (i >= 0) { ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts); + AdvanceSingleSpin(i); + i = forward_stacks[i]; } - ComputeInteractionsSpin(nlocal-1); - AdvanceSingleSpin(nlocal-1,2.0*dts); // advance half s for 1 - for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal-1 + } + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal + comm->forward_comm(); + int i = stack_head[j]; + while (i >= 0) { ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts); + AdvanceSingleSpin(i); + i = backward_stacks[i]; } - } else error->all(FLERR,"Illegal fix integration/spin command"); - } + } + } else if (sector_flag == 0) { // serial seq. update + comm->forward_comm(); // comm. positions of ghost atoms + for (int i = 0; i < nlocal; i++){ // advance quarter s for nlocal + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i); + } + for (int i = nlocal-1; i >= 0; i--){ // advance quarter s for nlocal + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i); + } + } else error->all(FLERR,"Illegal fix NVE/spin command"); // update x for all particles @@ -306,40 +308,36 @@ void FixIntegrationSpin::initial_integrate(int vflag) // update half s for all particles - if (extra == SPIN) { - if (mpi_flag) { // mpi seq. update - for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal - comm->forward_comm(); - int i = stack_foot[j]; - while (i >= 0) { - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts); - i = forward_stacks[i]; - } - } - for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal - comm->forward_comm(); - int i = stack_head[j]; - while (i >= 0) { - ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts); - i = backward_stacks[i]; - } - } - } else if (mpi_flag == 0) { // serial seq. update - comm->forward_comm(); // comm. positions of ghost atoms - for (int i = 0; i < nlocal-1; i++){ // advance quarter s for nlocal-1 + if (sector_flag) { // sectoring seq. update + for (int j = 0; j < nsectors; j++) { // advance quarter s for nlocal + comm->forward_comm(); + int i = stack_foot[j]; + while (i >= 0) { ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts); + AdvanceSingleSpin(i); + i = forward_stacks[i]; } - ComputeInteractionsSpin(nlocal-1); - AdvanceSingleSpin(nlocal-1,2.0*dts); // advance half s for 1 - for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal-1 + } + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal + comm->forward_comm(); + int i = stack_head[j]; + while (i >= 0) { ComputeInteractionsSpin(i); - AdvanceSingleSpin(i,dts); + AdvanceSingleSpin(i); + i = backward_stacks[i]; } - } else error->all(FLERR,"Illegal fix integration/spin command"); - } + } + } else if (sector_flag == 0) { // serial seq. update + comm->forward_comm(); // comm. positions of ghost atoms + for (int i = 0; i < nlocal; i++){ // advance quarter s for nlocal-1 + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i); + } + for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal-1 + ComputeInteractionsSpin(i); + AdvanceSingleSpin(i); + } + } else error->all(FLERR,"Illegal fix NVE/spin command"); } @@ -347,16 +345,16 @@ void FixIntegrationSpin::initial_integrate(int vflag) setup pre_neighbor() ---------------------------------------------------------------------- */ -void FixIntegrationSpin::setup_pre_neighbor() +void FixNVESpin::setup_pre_neighbor() { pre_neighbor(); } /* ---------------------------------------------------------------------- - store in two linked lists the advance order of the spins (mpi) + store in two linked lists the advance order of the spins (sectoring) ---------------------------------------------------------------------- */ -void FixIntegrationSpin::pre_neighbor() +void FixNVESpin::pre_neighbor() { double **x = atom->x; int nlocal = atom->nlocal; @@ -387,10 +385,10 @@ void FixIntegrationSpin::pre_neighbor() } /* ---------------------------------------------------------------------- - compute the magnetic force for the spin ii + compute the magnetic torque for the spin ii ---------------------------------------------------------------------- */ -void FixIntegrationSpin::ComputeInteractionsSpin(int ii) +void FixNVESpin::ComputeInteractionsSpin(int ii) { const int nlocal = atom->nlocal; double xi[3], rij[3], eij[3]; @@ -480,9 +478,6 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) temp_cut = lockpairspinsocdmi->cut_soc_dmi[itype][jtype]; cut_2 = temp_cut*temp_cut; if (rsq <= cut_2) { - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; lockpairspinsocdmi->compute_soc_dmi(i,j,fmi,spi,spj); } } @@ -500,12 +495,12 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) } - if (magforce_flag) { // mag. forces + if (magprecession_flag) { // magnetic precession if (zeeman_flag) { // zeeman - lockforcespin->compute_zeeman(i,fmi); + lockprecessionspin->compute_zeeman(i,fmi); } if (aniso_flag) { // aniso - lockforcespin->compute_anisotropy(i,spi,fmi); + lockprecessionspin->compute_anisotropy(i,spi,fmi); } } @@ -530,7 +525,7 @@ void FixIntegrationSpin::ComputeInteractionsSpin(int ii) divide each domain into sectors ---------------------------------------------------------------------- */ -void FixIntegrationSpin::sectoring() +void FixNVESpin::sectoring() { int sec[3]; double sublo[3],subhi[3]; @@ -560,7 +555,7 @@ void FixIntegrationSpin::sectoring() nsectors = sec[0]*sec[1]*sec[2]; - if (mpi_flag == 1 && nsectors != 8) + if (sector_flag == 1 && nsectors != 8) error->all(FLERR,"Illegal sectoring operation"); rsec[0] = rsx; @@ -576,7 +571,7 @@ void FixIntegrationSpin::sectoring() define sector for an atom at a position x[i] ---------------------------------------------------------------------- */ -int FixIntegrationSpin::coords2sector(double *x) +int FixNVESpin::coords2sector(double *x) { int nseci; int seci[3]; @@ -596,10 +591,10 @@ int FixIntegrationSpin::coords2sector(double *x) } /* ---------------------------------------------------------------------- - advance the spin i of a timestep dtl + advance the spin i of a timestep dts ---------------------------------------------------------------------- */ -void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl) +void FixNVESpin::AdvanceSingleSpin(int i) { int j=0; int *sametag = atom->sametag; @@ -613,15 +608,15 @@ void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl) fm2 = (fm[i][0]*fm[i][0])+(fm[i][1]*fm[i][1])+(fm[i][2]*fm[i][2]); fmsq = sqrt(fm2); energy = (sp[i][0]*fm[i][0])+(sp[i][1]*fm[i][1])+(sp[i][2]*fm[i][2]); - dts2 = dtl*dtl; + dts2 = dts*dts; cp[0] = fm[i][1]*sp[i][2]-fm[i][2]*sp[i][1]; cp[1] = fm[i][2]*sp[i][0]-fm[i][0]*sp[i][2]; cp[2] = fm[i][0]*sp[i][1]-fm[i][1]*sp[i][0]; - g[0] = sp[i][0]+cp[0]*dtl; - g[1] = sp[i][1]+cp[1]*dtl; - g[2] = sp[i][2]+cp[2]*dtl; + g[0] = sp[i][0]+cp[0]*dts; + g[1] = sp[i][1]+cp[1]*dts; + g[2] = sp[i][2]+cp[2]*dts; g[0] += (fm[i][0]*energy-0.5*sp[i][0]*fm2)*0.5*dts2; g[1] += (fm[i][1]*energy-0.5*sp[i][1]*fm2)*0.5*dts2; @@ -645,7 +640,7 @@ void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl) // comm. sp[i] to atoms with same tag (for serial algo) - if (mpi_flag == 0) { + if (sector_flag == 0) { if (sametag[i] >= 0) { j = sametag[i]; while (j >= 0) { @@ -661,7 +656,7 @@ void FixIntegrationSpin::AdvanceSingleSpin(int i, double dtl) /* ---------------------------------------------------------------------- */ -void FixIntegrationSpin::final_integrate() +void FixNVESpin::final_integrate() { double dtfm,msq,scale,fm2,fmsq,energy; double cp[3],g[3]; @@ -669,8 +664,6 @@ void FixIntegrationSpin::final_integrate() double **x = atom->x; double **v = atom->v; double **f = atom->f; - double **sp = atom->sp; - double **fm = atom->fm; double *rmass = atom->rmass; double *mass = atom->mass; int nlocal = atom->nlocal; diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_nve_spin.h similarity index 76% rename from src/SPIN/fix_integration_spin.h rename to src/SPIN/fix_nve_spin.h index cb41f2337a..3fd96a67d4 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -13,29 +13,29 @@ #ifdef FIX_CLASS -FixStyle(integration/spin,FixIntegrationSpin) +FixStyle(nve/spin,FixNVESpin) #else -#ifndef LMP_FIX_INTEGRATION_SPIN_H -#define LMP_FIX_INTEGRATION_SPIN_H +#ifndef LMP_FIX_NVE_SPIN_H +#define LMP_FIX_NVE_SPIN_H #include "fix.h" namespace LAMMPS_NS { -class FixIntegrationSpin : public Fix { +class FixNVESpin : public Fix { public: - FixIntegrationSpin(class LAMMPS *, int, char **); - virtual ~FixIntegrationSpin(); + FixNVESpin(class LAMMPS *, int, char **); + virtual ~FixNVESpin(); int setmask(); void init(); virtual void initial_integrate(int); virtual void final_integrate(); void ComputeInteractionsSpin(int); // compute and advance single spin functions - void AdvanceSingleSpin(int, double); + void AdvanceSingleSpin(int); void sectoring(); // sectoring operation functions int coords2sector(double *); @@ -44,21 +44,20 @@ class FixIntegrationSpin : public Fix { void pre_neighbor(); protected: - int extra; - int mpi_flag; // mpi_flag = 0 if serial algorithm - // mpi_flag = 1 if parallel algorithm + int sector_flag; // sector_flag = 0 if serial algorithm + // sector_flag = 1 if parallel algorithm int mech_flag; // mech_flag = 0 if spins only // mech_flag = 1 if spin-lattice calc. - double dtv,dtf,dts; // velocity, force, and spin timesteps + double dtv, dtf, dts; // velocity, force, and spin timesteps - int magpair_flag; // magnetic pair flags + int magpair_flag; // magnetic pair flags int exch_flag; int soc_neel_flag, soc_dmi_flag; int me_flag; - int magforce_flag; // magnetic force flags + int magprecession_flag; // magnetic precession flags int zeeman_flag, aniso_flag; - int maglangevin_flag; // magnetic langevin flags + int maglangevin_flag; // magnetic langevin flags int tdamp_flag, temp_flag; // pointers to magnetic interaction classes @@ -68,7 +67,7 @@ class FixIntegrationSpin : public Fix { class PairSpinSocNeel *lockpairspinsocneel; class PairSpinSocDmi *lockpairspinsocdmi; class PairSpinMe *lockpairspinme; - class FixForceSpin *lockforcespin; + class FixPrecessionSpin *lockprecessionspin; class FixLangevinSpin *locklangevinspin; int nsectors; // sectoring variables @@ -90,13 +89,13 @@ class FixIntegrationSpin : public Fix { /* ERROR/WARNING messages: -E: Illegal fix integration/spin command +E: Illegal fix NVE/spin 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: Fix integration/spin requires spin attribute mumag +E: Pair spin requires atom attribute spin An atom/spin style with this attribute is needed. diff --git a/src/SPIN/fix_force_spin.cpp b/src/SPIN/fix_precession_spin.cpp similarity index 81% rename from src/SPIN/fix_force_spin.cpp rename to src/SPIN/fix_precession_spin.cpp index d9ee1e8457..fb0ab4562d 100644 --- a/src/SPIN/fix_force_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -24,7 +24,7 @@ #include "atom.h" #include "domain.h" #include "error.h" -#include "fix_force_spin.h" +#include "fix_precession_spin.h" #include "force.h" #include "input.h" #include "math_const.h" @@ -43,12 +43,10 @@ enum{CONSTANT,EQUAL}; /* ---------------------------------------------------------------------- */ -FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) +FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { - if (narg < 7) error->all(FLERR,"Illegal force/spin command"); - // 7 arguments for a force/spin fix command: - // fix ID group force/spin magnitude (T or eV) style (zeeman or anisotropy) direction (3 cartesian coordinates) + if (narg < 7) error->all(FLERR,"Illegal precession/spin command"); // magnetic interactions coded for cartesian coordinates @@ -74,7 +72,7 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a zeeman_flag = aniso_flag = 0; if (strcmp(arg[3],"zeeman") == 0) { - if (narg != 8) error->all(FLERR,"Illegal force/spin command"); + if (narg != 8) error->all(FLERR,"Illegal precession/spin command"); style = ZEEMAN; zeeman_flag = 1; H_field = force->numeric(FLERR,arg[4]); @@ -83,14 +81,14 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a nhz = force->numeric(FLERR,arg[7]); magfieldstyle = CONSTANT; } else if (strcmp(arg[3],"anisotropy") == 0) { - if (narg != 8) error->all(FLERR,"Illegal force/spin command"); + if (narg != 8) error->all(FLERR,"Illegal precession/spin command"); style = ANISOTROPY; aniso_flag = 1; Ka = force->numeric(FLERR,arg[4]); nax = force->numeric(FLERR,arg[5]); nay = force->numeric(FLERR,arg[6]); naz = force->numeric(FLERR,arg[7]); - } else error->all(FLERR,"Illegal force/spin command"); + } else error->all(FLERR,"Illegal precession/spin command"); degree2rad = MY_PI/180.0; time_origin = update->ntimestep; @@ -101,14 +99,14 @@ FixForceSpin::FixForceSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, a /* ---------------------------------------------------------------------- */ -FixForceSpin::~FixForceSpin() +FixPrecessionSpin::~FixPrecessionSpin() { delete [] magstr; } /* ---------------------------------------------------------------------- */ -int FixForceSpin::setmask() +int FixPrecessionSpin::setmask() { int mask = 0; mask |= POST_FORCE; @@ -120,7 +118,7 @@ int FixForceSpin::setmask() /* ---------------------------------------------------------------------- */ -void FixForceSpin::init() +void FixPrecessionSpin::init() { const double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) const double mub = 5.78901e-5; // in eV/T @@ -137,9 +135,9 @@ void FixForceSpin::init() if (magstr) { magvar = input->variable->find(magstr); if (magvar < 0) - error->all(FLERR,"Illegal force/spin command"); + error->all(FLERR,"Illegal precession/spin command"); if (!input->variable->equalstyle(magvar)) - error->all(FLERR,"Illegal force/spin command"); + error->all(FLERR,"Illegal precession/spin command"); } varflag = CONSTANT; @@ -147,13 +145,13 @@ void FixForceSpin::init() // set magnetic field components - if (varflag == CONSTANT) set_magneticforce(); + if (varflag == CONSTANT) set_magneticprecession(); } /* ---------------------------------------------------------------------- */ -void FixForceSpin::setup(int vflag) +void FixPrecessionSpin::setup(int vflag) { if (strstr(update->integrate_style,"verlet")) post_force(vflag); @@ -166,18 +164,17 @@ void FixForceSpin::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixForceSpin::post_force(int vflag) +void FixPrecessionSpin::post_force(int vflag) { // update gravity due to variables if (varflag != CONSTANT) { modify->clearstep_compute(); modify->addstep_compute(update->ntimestep + 1); - set_magneticforce(); // update mag. field if time-dep. + set_magneticprecession(); // update mag. field if time-dep. } double **sp = atom->sp; - double *mumag = atom->mumag; double **fm = atom->fm; double spi[3], fmi[3]; const int nlocal = atom->nlocal; @@ -213,17 +210,17 @@ void FixForceSpin::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixForceSpin::compute_zeeman(int i, double fmi[3]) +void FixPrecessionSpin::compute_zeeman(int i, double fmi[3]) { -double *mumag = atom->mumag; - fmi[0] -= mumag[i]*hx; - fmi[1] -= mumag[i]*hy; - fmi[2] -= mumag[i]*hz; + double **sp = atom->sp; + fmi[0] -= sp[i][3]*hx; + fmi[1] -= sp[i][3]*hy; + fmi[2] -= sp[i][3]*hz; } /* ---------------------------------------------------------------------- */ -void FixForceSpin::compute_anisotropy(int i, double spi[3], double fmi[3]) +void FixPrecessionSpin::compute_anisotropy(int i, double spi[3], double fmi[3]) { double scalar = nax*spi[0] + nay*spi[1] + naz*spi[2]; fmi[0] += scalar*Kax; @@ -233,14 +230,14 @@ void FixForceSpin::compute_anisotropy(int i, double spi[3], double fmi[3]) /* ---------------------------------------------------------------------- */ -void FixForceSpin::post_force_respa(int vflag, int ilevel, int iloop) +void FixPrecessionSpin::post_force_respa(int vflag, int ilevel, int iloop) { if (ilevel == ilevel_respa) post_force(vflag); } /* ---------------------------------------------------------------------- */ -void FixForceSpin::set_magneticforce() +void FixPrecessionSpin::set_magneticprecession() { if (style == ZEEMAN) { hx = H_field*nhx; @@ -258,10 +255,9 @@ void FixForceSpin::set_magneticforce() potential energy in magnetic field ------------------------------------------------------------------------- */ -double FixForceSpin::compute_scalar() +double FixPrecessionSpin::compute_scalar() { // only sum across procs one time - //printf("test inside compute_scalar \n"); if (eflag == 0) { MPI_Allreduce(&emag,&emag_all,1,MPI_DOUBLE,MPI_SUM,world); diff --git a/src/SPIN/fix_force_spin.h b/src/SPIN/fix_precession_spin.h similarity index 77% rename from src/SPIN/fix_force_spin.h rename to src/SPIN/fix_precession_spin.h index dfc526088e..483d0c554d 100644 --- a/src/SPIN/fix_force_spin.h +++ b/src/SPIN/fix_precession_spin.h @@ -13,23 +13,23 @@ #ifdef FIX_CLASS -FixStyle(force/spin,FixForceSpin) +FixStyle(precession/spin,FixPrecessionSpin) #else -#ifndef LMP_FIX_FORCE_SPIN_H -#define LMP_FIX_FORCE_SPIN_H +#ifndef LMP_FIX_PRECESSION_SPIN_H +#define LMP_FIX_PRECESSION_SPIN_H #include "fix.h" namespace LAMMPS_NS { -class FixForceSpin : public Fix { +class FixPrecessionSpin : public Fix { friend class FixPour; public: - FixForceSpin(class LAMMPS *, int, char **); - ~FixForceSpin(); + FixPrecessionSpin(class LAMMPS *, int, char **); + ~FixPrecessionSpin(); int setmask(); void init(); void setup(int); @@ -42,7 +42,7 @@ class FixForceSpin : public Fix { void compute_anisotropy(int, double [3], double [3]); protected: - int style; // style of the magnetic force + int style; // style of the magnetic precession double degree2rad; double hbar; @@ -68,7 +68,7 @@ class FixForceSpin : public Fix { double nax, nay, naz; double Kax, Kay, Kaz; // temp. force variables - void set_magneticforce(); + void set_magneticprecession(); }; @@ -79,10 +79,13 @@ class FixForceSpin : public Fix { /* ERROR/WARNING messages: -E: Illegal force/spin command +E: Illegal precession/spin 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. +precession/spin fix command has 7 arguments: +fix ID group precession/spin magnitude (T or eV) style (zeeman or anisotropy) +direction (3 cartesian coordinates) */ diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index e16f3e6d31..ca67956967 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -87,7 +87,6 @@ void PairSpinExchange::compute(int eflag, int vflag) double **x = atom->x; double **f = atom->f; double **fm = atom->fm; - double *mumag = atom->mumag; double **sp = atom->sp; int *type = atom->type; int nlocal = atom->nlocal; @@ -336,8 +335,8 @@ void PairSpinExchange::coeff(int narg, char **arg) void PairSpinExchange::init_style() { - if (!atom->sp_flag || !atom->mumag_flag) - error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + if (!atom->sp_flag) + error->all(FLERR,"Pair spin requires atom/spin style"); neighbor->request(this,instance_me); diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h index 0337d79faf..c5e47922eb 100755 --- a/src/SPIN/pair_spin_exchange.h +++ b/src/SPIN/pair_spin_exchange.h @@ -74,7 +74,7 @@ E: Incorrect args for pair coefficients Self-explanatory. Check the input script or data file. -E: Pair spin requires atom attributes sp, mumag +E: Pair spin requires atom attribute spin The atom style defined does not have these attributes. diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_me.cpp index 575b5f53d4..61f0c98f29 100755 --- a/src/SPIN/pair_spin_me.cpp +++ b/src/SPIN/pair_spin_me.cpp @@ -92,7 +92,6 @@ void PairSpinMe::compute(int eflag, int vflag) double **x = atom->x; double **f = atom->f; double **fm = atom->fm; - double *mumag = atom->mumag; double **sp = atom->sp; int *type = atom->type; int nlocal = atom->nlocal; @@ -356,8 +355,8 @@ void PairSpinMe::coeff(int narg, char **arg) void PairSpinMe::init_style() { - if (!atom->sp_flag || !atom->mumag_flag) - error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + if (!atom->sp_flag) + error->all(FLERR,"Pair spin requires atom/spin style"); neighbor->request(this,instance_me); diff --git a/src/SPIN/pair_spin_me.h b/src/SPIN/pair_spin_me.h index 18b7ffbb00..9f176242c9 100755 --- a/src/SPIN/pair_spin_me.h +++ b/src/SPIN/pair_spin_me.h @@ -77,7 +77,7 @@ E: Incorrect args for pair coefficients Self-explanatory. Check the input script or data file. -E: Pair spin requires atom attributes sp, mumag +E: Pair spin requires atom attribute spin The atom style defined does not have these attributes. diff --git a/src/SPIN/pair_spin_soc_dmi.cpp b/src/SPIN/pair_spin_soc_dmi.cpp index 60ef5d7941..d59d00bdd2 100755 --- a/src/SPIN/pair_spin_soc_dmi.cpp +++ b/src/SPIN/pair_spin_soc_dmi.cpp @@ -86,7 +86,6 @@ void PairSpinSocDmi::compute(int eflag, int vflag) double **x = atom->x; double **f = atom->f; double **fm = atom->fm; - double *mumag = atom->mumag; double **sp = atom->sp; int *type = atom->type; int nlocal = atom->nlocal; @@ -314,8 +313,8 @@ void PairSpinSocDmi::coeff(int narg, char **arg) void PairSpinSocDmi::init_style() { - if (!atom->sp_flag || !atom->mumag_flag) - error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + if (!atom->sp_flag) + error->all(FLERR,"Pair spin requires atom/spin style"); neighbor->request(this,instance_me); diff --git a/src/SPIN/pair_spin_soc_dmi.h b/src/SPIN/pair_spin_soc_dmi.h index 8097b5ae14..4feef78739 100755 --- a/src/SPIN/pair_spin_soc_dmi.h +++ b/src/SPIN/pair_spin_soc_dmi.h @@ -76,7 +76,7 @@ E: Incorrect args for pair coefficients Self-explanatory. Check the input script or data file. -E: Pair spin requires atom attributes sp, mumag +E: Pair spin requires atom attribute spin The atom style defined does not have these attributes. diff --git a/src/SPIN/pair_spin_soc_neel.cpp b/src/SPIN/pair_spin_soc_neel.cpp index 346edc15b8..f40b0127fd 100755 --- a/src/SPIN/pair_spin_soc_neel.cpp +++ b/src/SPIN/pair_spin_soc_neel.cpp @@ -93,7 +93,6 @@ void PairSpinSocNeel::compute(int eflag, int vflag) double **x = atom->x; double **f = atom->f; double **fm = atom->fm; - double *mumag = atom->mumag; double **sp = atom->sp; int *type = atom->type; int nlocal = atom->nlocal; @@ -502,8 +501,8 @@ void PairSpinSocNeel::coeff(int narg, char **arg) void PairSpinSocNeel::init_style() { - if (!atom->sp_flag || !atom->mumag_flag) - error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); + if (!atom->sp_flag) + error->all(FLERR,"Pair spin requires atom/spin style"); neighbor->request(this,instance_me); diff --git a/src/SPIN/pair_spin_soc_neel.h b/src/SPIN/pair_spin_soc_neel.h index 8eb21fb26b..8e4d40c765 100755 --- a/src/SPIN/pair_spin_soc_neel.h +++ b/src/SPIN/pair_spin_soc_neel.h @@ -81,7 +81,7 @@ E: Incorrect args for pair coefficients Self-explanatory. Check the input script or data file. -E: Pair spin requires atom attributes sp, mumag +E: Pair spin requires atom attribute spin The atom style defined does not have these attributes. diff --git a/src/atom.cpp b/src/atom.cpp index 04104272cb..69475f75a7 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -100,7 +100,6 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) // SPIN package - mumag = NULL; sp = fm = NULL; // USER-DPD @@ -175,7 +174,7 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) // magnetic flags - sp_flag = mumag_flag = 0; + sp_flag = 0; vfrac_flag = 0; spin_flag = eradius_flag = ervel_flag = erforce_flag = ervelforce_flag = 0; @@ -278,7 +277,6 @@ Atom::~Atom() memory->destroy(tri); memory->destroy(body); - memory->destroy(mumag); memory->destroy(sp); memory->destroy(fm); @@ -436,7 +434,7 @@ void Atom::create_avec(const char *style, int narg, char **arg, int trysuffix) // magnetic flags - sp_flag = mumag_flag = 0; + sp_flag = 0; vfrac_flag = 0; spin_flag = eradius_flag = ervel_flag = erforce_flag = ervelforce_flag = 0; diff --git a/src/atom.h b/src/atom.h index b0641f6381..7e003dff5e 100644 --- a/src/atom.h +++ b/src/atom.h @@ -63,7 +63,7 @@ class Atom : protected Pointers { // SPIN package - double *mumag, **sp; + double **sp; double **fm; // PERI package @@ -153,7 +153,7 @@ class Atom : protected Pointers { //USER-SPIN package - int mumag_flag,sp_flag; + int sp_flag; // USER-SMD package diff --git a/src/compute_property_atom.cpp b/src/compute_property_atom.cpp index d158d00816..8175e09b1c 100644 --- a/src/compute_property_atom.cpp +++ b/src/compute_property_atom.cpp @@ -141,7 +141,41 @@ ComputePropertyAtom::ComputePropertyAtom(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Compute property/atom for " "atom property that isn't allocated"); pack_choice[i] = &ComputePropertyAtom::pack_mu; - + } else if (strcmp(arg[iarg],"spx") == 0) { // pack magnetic variables + if (!atom->sp_flag) + error->all(FLERR,"Compute property/atom for " + "atom property that isn't allocated"); + pack_choice[i] = &ComputePropertyAtom::pack_spx; + } else if (strcmp(arg[iarg],"spy") == 0) { + if (!atom->sp_flag) + error->all(FLERR,"Compute property/atom for " + "atom property that isn't allocated"); + pack_choice[i] = &ComputePropertyAtom::pack_spy; + } else if (strcmp(arg[iarg],"spz") == 0) { + if (!atom->sp_flag) + error->all(FLERR,"Compute property/atom for " + "atom property that isn't allocated"); + pack_choice[i] = &ComputePropertyAtom::pack_spz; + } else if (strcmp(arg[iarg],"sp") == 0) { + if (!atom->sp_flag) + error->all(FLERR,"Compute property/atom for " + "atom property that isn't allocated"); + pack_choice[i] = &ComputePropertyAtom::pack_sp; + } else if (strcmp(arg[iarg],"fmx") == 0) { + if (!atom->sp_flag) + error->all(FLERR,"Compute property/atom for " + "atom property that isn't allocated"); + pack_choice[i] = &ComputePropertyAtom::pack_fmx; + } else if (strcmp(arg[iarg],"fmy") == 0) { + if (!atom->sp_flag) + error->all(FLERR,"Compute property/atom for " + "atom property that isn't allocated"); + pack_choice[i] = &ComputePropertyAtom::pack_fmy; + } else if (strcmp(arg[iarg],"fmz") == 0) { + if (!atom->sp_flag) + error->all(FLERR,"Compute property/atom for " + "atom property that isn't allocated"); + pack_choice[i] = &ComputePropertyAtom::pack_fmz; } else if (strcmp(arg[iarg],"radius") == 0) { if (!atom->radius_flag) error->all(FLERR,"Compute property/atom for " @@ -1000,6 +1034,111 @@ void ComputePropertyAtom::pack_mu(int n) /* ---------------------------------------------------------------------- */ +void ComputePropertyAtom::pack_spx(int n) +{ + double **sp = atom->sp; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) buf[n] = sp[i][0]; + else buf[n] = 0.0; + n += nvalues; + } +} + +/* ---------------------------------------------------------------------- */ + +void ComputePropertyAtom::pack_spy(int n) +{ + double **sp = atom->sp; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) buf[n] = sp[i][1]; + else buf[n] = 0.0; + n += nvalues; + } +} + +/* ---------------------------------------------------------------------- */ + +void ComputePropertyAtom::pack_spz(int n) +{ + double **sp = atom->sp; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) buf[n] = sp[i][2]; + else buf[n] = 0.0; + n += nvalues; + } +} + +/* ---------------------------------------------------------------------- */ + +void ComputePropertyAtom::pack_sp(int n) +{ + double **sp = atom->sp; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) buf[n] = sp[i][3]; + else buf[n] = 0.0; + n += nvalues; + } +} + +/* ---------------------------------------------------------------------- */ + +void ComputePropertyAtom::pack_fmx(int n) +{ + double **fm = atom->fm; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) buf[n] = fm[i][0]; + else buf[n] = 0.0; + n += nvalues; + } +} + +/* ---------------------------------------------------------------------- */ + +void ComputePropertyAtom::pack_fmy(int n) +{ + double **fm = atom->fm; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) buf[n] = fm[i][1]; + else buf[n] = 0.0; + n += nvalues; + } +} + +/* ---------------------------------------------------------------------- */ + +void ComputePropertyAtom::pack_fmz(int n) +{ + double **fm = atom->fm; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) buf[n] = fm[i][2]; + else buf[n] = 0.0; + n += nvalues; + } +} + +/* ---------------------------------------------------------------------- */ + void ComputePropertyAtom::pack_radius(int n) { double *radius = atom->radius; diff --git a/src/compute_property_atom.h b/src/compute_property_atom.h index a81f39f6a9..0c1ed7e305 100644 --- a/src/compute_property_atom.h +++ b/src/compute_property_atom.h @@ -84,6 +84,14 @@ class ComputePropertyAtom : public Compute { void pack_radius(int); void pack_diameter(int); + void pack_spx(int); // pack magnetic variables + void pack_spy(int); + void pack_spz(int); + void pack_sp(int); + void pack_fmx(int); + void pack_fmy(int); + void pack_fmz(int); + void pack_omegax(int); void pack_omegay(int); void pack_omegaz(int); diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 04ffc3b29b..9f389d8a56 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -854,36 +854,6 @@ int DumpCustom::count() for (i = 0; i < nlocal; i++) dchoose[i] = 2.0*radius[i]; ptr = dchoose; nstride = 1; - } else if (thresh_array[ithresh] == MUMAG) {//Magnetic properties - if (!atom->mumag_flag) - error->all(FLERR, - "Threshold for an atom property that isn't allocated"); - ptr = atom->mumag; - nstride = 1; - } else if (thresh_array[ithresh] == SPX) { - if (!atom->sp_flag) - error->all(FLERR, - "Threshold for an atom property that isn't allocated"); - ptr = &atom->sp[0][0]; - nstride = 4; - } else if (thresh_array[ithresh] == SPY) { - if (!atom->sp_flag) - error->all(FLERR, - "Threshold for an atom property that isn't allocated"); - ptr = &atom->sp[0][1]; - nstride = 4; - } else if (thresh_array[ithresh] == SPZ) { - if (!atom->sp_flag) - error->all(FLERR, - "Threshold for an atom property that isn't allocated"); - ptr = &atom->sp[0][2]; - nstride = 4; - } else if (thresh_array[ithresh] == SP) { - if (!atom->sp_flag) - error->all(FLERR, - "Threshold for an atom property that isn't allocated"); - ptr = &atom->sp[0][3]; - nstride = 4; } else if (thresh_array[ithresh] == OMEGAX) { if (!atom->omega_flag) error->all(FLERR, @@ -1311,36 +1281,6 @@ int DumpCustom::parse_fields(int narg, char **arg) error->all(FLERR,"Dumping an atom property that isn't allocated"); pack_choice[i] = &DumpCustom::pack_mu; vtype[i] = DOUBLE; - - } else if (strcmp(arg[iarg],"mumag") == 0) {//Magnetic properties - if (!atom->mumag_flag) - error->all(FLERR,"Dumping an atom property that isn't allocated"); - pack_choice[i] = &DumpCustom::pack_mumag; - vtype[i] = DOUBLE; - } else if (strcmp(arg[iarg],"spx") == 0) { - strcpy(arg[iarg],"vx"); - if (!atom->sp_flag) - error->all(FLERR,"Dumping an atom property that isn't allocated"); - pack_choice[i] = &DumpCustom::pack_spx; - vtype[i] = DOUBLE; - } else if (strcmp(arg[iarg],"spy") == 0) { - strcpy(arg[iarg],"vy"); - if (!atom->sp_flag) - error->all(FLERR,"Dumping an atom property that isn't allocated"); - pack_choice[i] = &DumpCustom::pack_spy; - vtype[i] = DOUBLE; - } else if (strcmp(arg[iarg],"spz") == 0) { - strcpy(arg[iarg],"vz"); - if (!atom->sp_flag) - error->all(FLERR,"Dumping an atom property that isn't allocated"); - pack_choice[i] = &DumpCustom::pack_spz; - vtype[i] = DOUBLE; - } else if (strcmp(arg[iarg],"sp") == 0) { - if (!atom->sp_flag) - error->all(FLERR,"Dumping an atom property that isn't allocated"); - pack_choice[i] = &DumpCustom::pack_sp; - vtype[i] = DOUBLE; - } else if (strcmp(arg[iarg],"radius") == 0) { if (!atom->radius_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); @@ -1843,13 +1783,6 @@ int DumpCustom::modify_param(int narg, char **arg) else if (strcmp(arg[1],"muy") == 0) thresh_array[nthresh] = MUY; else if (strcmp(arg[1],"muz") == 0) thresh_array[nthresh] = MUZ; else if (strcmp(arg[1],"mu") == 0) thresh_array[nthresh] = MU; - - //Magnetic quantities - else if (strcmp(arg[1],"mumag") == 0) thresh_array[nthresh] = MUMAG; - else if (strcmp(arg[1],"spx") == 0) thresh_array[nthresh] = SPX; - else if (strcmp(arg[1],"spy") == 0) thresh_array[nthresh] = SPY; - else if (strcmp(arg[1],"spz") == 0) thresh_array[nthresh] = SPZ; - else if (strcmp(arg[1],"sp") == 0) thresh_array[nthresh] = SP; else if (strcmp(arg[1],"radius") == 0) thresh_array[nthresh] = RADIUS; else if (strcmp(arg[1],"diameter") == 0) thresh_array[nthresh] = DIAMETER; @@ -2764,66 +2697,6 @@ void DumpCustom::pack_mu(int n) } } -/* ---------------------------------------------------------------------- */ -//Magnetic quantities -void DumpCustom::pack_mumag(int n) -{ - double *mumag = atom->mumag; - - for (int i = 0; i < nchoose; i++) { - buf[n] = mumag[clist[i]]; - n += size_one; - } -} - -/* ---------------------------------------------------------------------- */ - -void DumpCustom::pack_spx(int n) -{ - double **sp = atom->sp; - - for (int i = 0; i < nchoose; i++) { - buf[n] = sp[clist[i]][0]; - n += size_one; - } -} - -/* ---------------------------------------------------------------------- */ - -void DumpCustom::pack_spy(int n) -{ - double **sp = atom->sp; - - for (int i = 0; i < nchoose; i++) { - buf[n] = sp[clist[i]][1]; - n += size_one; - } -} - -/* ---------------------------------------------------------------------- */ - -void DumpCustom::pack_spz(int n) -{ - double **sp = atom->sp; - - for (int i = 0; i < nchoose; i++) { - buf[n] = sp[clist[i]][2]; - n += size_one; - } -} - -/* ---------------------------------------------------------------------- */ - -void DumpCustom::pack_sp(int n) -{ - double **sp = atom->sp; - - for (int i = 0; i < nchoose; i++) { - buf[n] = sp[clist[i]][3]; - n += size_one; - } -} - /* ---------------------------------------------------------------------- */ void DumpCustom::pack_radius(int n) diff --git a/src/dump_custom.h b/src/dump_custom.h index c96148f275..1420d69b9b 100644 --- a/src/dump_custom.h +++ b/src/dump_custom.h @@ -178,11 +178,6 @@ class DumpCustom : public Dump { void pack_muy(int); void pack_muz(int); void pack_mu(int); - void pack_mumag(int); //Magnetic quantities - void pack_spx(int); - void pack_spy(int); - void pack_spz(int); - void pack_sp(int); void pack_radius(int); void pack_diameter(int); diff --git a/src/pair_hybrid.h b/src/pair_hybrid.h index 8e3925d82d..17b6879957 100644 --- a/src/pair_hybrid.h +++ b/src/pair_hybrid.h @@ -31,7 +31,7 @@ class PairHybrid : public Pair { friend class FixOMP; friend class Force; friend class Respa; - friend class FixIntegrationSpin; + friend class FixNVESpin; friend class Info; public: PairHybrid(class LAMMPS *); diff --git a/src/set.cpp b/src/set.cpp index d4f0caf68e..704ab69216 100644 --- a/src/set.cpp +++ b/src/set.cpp @@ -853,14 +853,11 @@ void Set::set(int keyword) else if (keyword == SPIN) { double **sp = atom->sp; - double *mumag = atom->mumag; - double sp_norm = sqrt(xvalue*xvalue+yvalue*yvalue+zvalue*zvalue); - sp[i][0] = xvalue/sp_norm; - sp[i][1] = yvalue/sp_norm; - sp[i][2] = zvalue/sp_norm; - sp[i][3] = sqrt(sp[i][0]*sp[i][0] + sp[i][1]*sp[i][1] + - sp[i][2]*sp[i][2]); //Should be 1 for atomic spins - mumag[i] = dvalue; + double inorm = 1.0/sqrt(xvalue*xvalue+yvalue*yvalue+zvalue*zvalue); + sp[i][0] = inorm*xvalue; + sp[i][1] = inorm*yvalue; + sp[i][2] = inorm*zvalue; + sp[i][3] = dvalue; } // set quaternion orientation of ellipsoid or tri or body particle @@ -1030,7 +1027,6 @@ void Set::setrandom(int keyword) } else if (keyword == SPIN_RANDOM) { double **sp = atom->sp; - double *mumag = atom->mumag; int nlocal = atom->nlocal; double sp_sq,scale; @@ -1047,8 +1043,7 @@ void Set::setrandom(int keyword) sp[i][0] *= scale; sp[i][1] *= scale; sp[i][2] *= scale; - sp[i][3] = sqrt(sp_sq); - mumag[i] = dvalue; + sp[i][3] = dvalue; count++; } @@ -1063,8 +1058,7 @@ void Set::setrandom(int keyword) scale = 1.0/sqrt(sp_sq); sp[i][0] *= scale; sp[i][1] *= scale; - sp[i][3] = sqrt(sp_sq); - mumag[i] = dvalue; + sp[i][3] = dvalue; count++; } } diff --git a/src/verlet.cpp b/src/verlet.cpp index b1bdf0e62d..f0314bd7d0 100644 --- a/src/verlet.cpp +++ b/src/verlet.cpp @@ -75,7 +75,7 @@ void Verlet::init() torqueflag = extraflag = 0; if (atom->torque_flag) torqueflag = 1; if (atom->avec->forceclearflag) extraflag = 1; - if (atom->mumag_flag) extraflag = 1; + if (atom->sp_flag) extraflag = 1; // orthogonal vs triclinic simulation box From 8709f6044b7e241cc4b6bf030932431fa3c9d8d7 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 2 Apr 2018 10:03:45 -0600 Subject: [PATCH 087/675] Commit modifs before release 2 (04/02/18) --- doc/src/Section_howto.txt | 56 ++++++++++++++++++- doc/src/compute_property_atom.txt | 11 +++- ..._integration_spin.txt => fix_nve_spin.txt} | 17 +++--- ...force_spin.txt => fix_precession_spin.txt} | 12 ++-- examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 2 +- src/SPIN/fix_nve_spin.cpp | 35 ++++++++---- src/SPIN/fix_nve_spin.h | 17 ++++-- 7 files changed, 115 insertions(+), 35 deletions(-) rename doc/src/{fix_integration_spin.txt => fix_nve_spin.txt} (78%) rename doc/src/{fix_force_spin.txt => fix_precession_spin.txt} (85%) diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt index e852e0abd4..6ee2eecda9 100644 --- a/doc/src/Section_howto.txt +++ b/doc/src/Section_howto.txt @@ -36,7 +36,8 @@ This section describes how to perform common tasks using LAMMPS. 6.24 "Setting parameters for the kspace_style pppm/disp command"_#howto_24 6.25 "Polarizable models"_#howto_25 6.26 "Adiabatic core/shell model"_#howto_26 -6.27 "Drude induced dipoles"_#howto_27 :all(b) +6.27 "Drude induced dipoles"_#howto_27 +6.28 "Magnetic spins"_#howto_28 :all(b) The example input scripts included in the LAMMPS distribution and highlighted in "Section 7"_Section_example.html also show how to @@ -2837,6 +2838,7 @@ CS-Info # header of additional section :pre 4 2 5 3 6 3 +The interactions between the 7 4 8 4 (...) :pre @@ -2906,6 +2908,54 @@ with a Coulomb pair style. It may be useful to use {coul/long/cs} or similar from the CORESHELL package if the core and Drude particle come too close, which can cause numerical issues. +:line + +6.28 Magnetic spins :link(howto_28),h4 + +The magnetic spin simualtions are enabled by the SPIN package, whose +implementation is detailed in "Tranchida"_#Tranchida7. + +The model representents the simulation of atomic magnetic spins coupled +to lattice vibrations. The dynamics of those magnetic spins can be used +to simulate a broad range a phenomena related to magneto-elasticity, or +or to study the influence of defects on the magnetic properties of +materials. + +The magnetic spins are interacting with each others and with the +lattice via pair interactions. Typically, the magnetic exchange +interaction can be defined using the +"pair/spin/exchange"_pair_spin_exchange.html command. This exchange +applies a magnetic torque to a given spin, considering the orientation +of its neighboring spins and their relative distances. +It also applies a force on the atoms as a function of the spin +orientations and their associated inter-atomic distances. + +The command "fix precession/spin"_fix_precession_spin.html allows to +apply a constant magnetic torque on all the spins in the system. This +torque can be an external magnetic field (Zeeman interaction), or an +uniaxial magnetic anisotropy. + +A Langevin thermostat can be applied to those magnetic spins using +"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat +can be coupled to another Langevin thermostat applied to the atoms +using "fix langevin"_fix_langevin.html in order to simulate +thermostated spin-lattice system. + +The magnetic Gilbert damping can also be applied using "fix +langevin/spin"_fix_langevin_spin.html. It allows to either dissipate +the thermal energy of the Langevin thermostat, or to perform a +relaxation of the magnetic configuration toward an equilibrium state. + +All the computed magnetic properties can be outputed by two main +commands. The first one is "compute spin"_compute_spin.html, that +enables to evaluate magnetic averaged quantities, such as the total +magnetization of the system along x, y, or z, the spin temperature, or +the magnetic energy. The second command is "compute +property/atom"_compute_property_atom.html. It enables to output all the +per atom magnetic quantities. Typically, the orientation of a given +magnetic spin, or the magnetic force acting on this spin. + + :line :line @@ -2957,3 +3007,7 @@ Phys, 79, 926 (1983). :link(howto-Lamoureux) [(Lamoureux and Roux)] G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003) + +:link(Tranchida7) +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, +arXiv preprint arXiv:1801.10233, (2018). diff --git a/doc/src/compute_property_atom.txt b/doc/src/compute_property_atom.txt index bac19918ba..c0970d5121 100644 --- a/doc/src/compute_property_atom.txt +++ b/doc/src/compute_property_atom.txt @@ -19,6 +19,7 @@ input = one or more atom attributes :l x, y, z, xs, ys, zs, xu, yu, zu, ix, iy, iz, vx, vy, vz, fx, fy, fz, q, mux, muy, muz, mu, + sp, spx, spy, spz, fmx, fmy, fmz, radius, diameter, omegax, omegay, omegaz, angmomx, angmomy, angmomz, shapex,shapey, shapez, @@ -46,6 +47,9 @@ input = one or more atom attributes :l q = atom charge mux,muy,muz = orientation of dipole moment of atom mu = magnitude of dipole moment of atom + sp = atomic magnetic spin moment + spx, spy, spz = direction of the atomic magnetic spin + fmx, fmy, fmz = magnetic force radius,diameter = radius,diameter of spherical particle omegax,omegay,omegaz = angular velocity of spherical particle angmomx,angmomy,angmomz = angular momentum of aspherical particle @@ -82,7 +86,8 @@ input = one or more atom attributes :l compute 1 all property/atom xs vx fx mux compute 2 all property/atom type -compute 1 all property/atom ix iy iz :pre +compute 1 all property/atom ix iy iz +compute 3 all property/atom sp spx spy spz :pre [Description:] @@ -152,6 +157,10 @@ The vector or array values will be in whatever "units"_units.html the corresponding attribute is in, e.g. velocity units for vx, charge units for q, etc. +For the spin quantities, sp is in the units of the Bohr magneton, spx, +spy, and spz are adimentional quantities, and fmx, fmy and fmz are +given in rad.THz. + [Restrictions:] none [Related commands:] diff --git a/doc/src/fix_integration_spin.txt b/doc/src/fix_nve_spin.txt similarity index 78% rename from doc/src/fix_integration_spin.txt rename to doc/src/fix_nve_spin.txt index 4538e22284..4f25003c5f 100644 --- a/doc/src/fix_integration_spin.txt +++ b/doc/src/fix_nve_spin.txt @@ -6,22 +6,22 @@ :line -fix integration/spin command :h3 +fix nve/spin command :h3 [Syntax:] -fix ID group-ID integration/spin keyword values :pre +fix ID group-ID nve/spin keyword values :pre ID, group-ID are documented in "fix"_fix.html command :ulb,l -integration/spin = style name of this fix command :l +nve/spin = style name of this fix command :l keyword = {lattice} :l {lattice} value = {no} or {yes} :pre :ule [Examples:] -fix 3 all integration/spin lattice yes -fix 1 all integration/spin lattice no :pre +fix 3 all nve/spin lattice yes +fix 1 all nve/spin lattice no :pre [Description:] @@ -32,7 +32,7 @@ of fixed atoms (lattice = no), or if atoms are moving (lattice = yes). By default (lattice = yes), a spin-lattice integration is performed. -The {integration/spin} fix applies a Suzuki-Trotter decomposition to +The {nve/spin} fix applies a Suzuki-Trotter decomposition to the equations of motion of the spin lattice system, following the scheme: :c,image(Eqs/fix_integration_spin_stdecomposition.jpg) @@ -51,9 +51,8 @@ This fix style can only be used if LAMMPS was built with the SPIN package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info on packages. -When the spin algorithm is used for serial calculations, it is -necessary to define a map via the atom_modify command. -Typically, by adding the command: +To use the spin algorithm, it is necessary to define a map with +the atom_modify command. Typically, by adding the command: atom_modify map array :pre diff --git a/doc/src/fix_force_spin.txt b/doc/src/fix_precession_spin.txt similarity index 85% rename from doc/src/fix_force_spin.txt rename to doc/src/fix_precession_spin.txt index 6ab207fda3..9ef7a7230c 100644 --- a/doc/src/fix_force_spin.txt +++ b/doc/src/fix_precession_spin.txt @@ -6,14 +6,14 @@ :line -fix force/spin command :h3 +fix precession/spin command :h3 [Syntax:] -fix ID group force/spin style args :pre +fix ID group precession/spin style args :pre ID, group are documented in "fix"_fix.html command :ulb,l -force/spin = style name of this fix command :l +precession/spin = style name of this fix command :l style = {zeeman} or {aniso} :l {zeeman} args = H x y z H = intensity of the magnetic field (in Tesla) @@ -25,8 +25,8 @@ style = {zeeman} or {aniso} :l [Examples:] -fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 -fix 1 all force/spin aniso 0.001 0.0 0.0 1.0 :pre +fix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0 +fix 1 all precession/spin aniso 0.001 0.0 0.0 1.0 :pre [Description:] @@ -61,7 +61,7 @@ files"_restart.html. [Restrictions:] -The {force/spin} style is part of the SPIN package. +The {precession/spin} style is part of the SPIN package. This style is only enabled if LAMMPS was built with this package, and if the atom_style "spin" was declared. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index 9076cd6d6c..bd807e4efe 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -54,4 +54,4 @@ thermo 10 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] -run 20000 +run 2000 diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 0660032e02..a842335cd3 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -67,6 +67,8 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : sector_flag = NONE; mech_flag = 1; + nlocal_max = 0; + // checking if map array or hash is defined if (atom->map_style == 0) @@ -220,11 +222,14 @@ void FixNVESpin::init() if (sector_flag) sectoring(); // init. size tables of stacking variables (sectoring) - + + nlocal_max = atom->nlocal; stack_head = memory->grow(stack_head,nsectors,"NVE/spin:stack_head"); stack_foot = memory->grow(stack_foot,nsectors,"NVE/spin:stack_foot"); - forward_stacks = memory->grow(forward_stacks,atom->nmax,"NVE/spin:forward_stacks"); - backward_stacks = memory->grow(backward_stacks,atom->nmax,"NVE/spin:backward_stacks"); + forward_stacks = memory->grow(forward_stacks,nlocal_max,"NVE/spin:forward_stacks"); + backward_stacks = memory->grow(backward_stacks,nlocal_max,"NVE/spin:backward_stacks"); + if (nlocal_max == 0) + error->all(FLERR,"Incorrect value of nlocal_max"); } @@ -359,6 +364,12 @@ void FixNVESpin::pre_neighbor() double **x = atom->x; int nlocal = atom->nlocal; + if (nlocal_max < nlocal) { // grow linked lists if necessary + nlocal_max = nlocal; + forward_stacks = memory->grow(forward_stacks,nlocal_max,"NVE/spin:forward_stacks"); + backward_stacks = memory->grow(backward_stacks,nlocal_max,"NVE/spin:backward_stacks"); + } + for (int j = 0; j < nsectors; j++) { stack_head[j] = -1; stack_foot[j] = -1; @@ -455,7 +466,7 @@ void FixNVESpin::ComputeInteractionsSpin(int ii) temp_cut = 0.0; - if (exch_flag) { // exchange + if (exch_flag) { // exchange temp_cut = lockpairspinexchange->cut_spin_exchange[itype][jtype]; cut_2 = temp_cut*temp_cut; if (rsq <= cut_2) { @@ -474,7 +485,7 @@ void FixNVESpin::ComputeInteractionsSpin(int ii) } } - if (soc_dmi_flag) { // soc_dmi + if (soc_dmi_flag) { // soc_dmi temp_cut = lockpairspinsocdmi->cut_soc_dmi[itype][jtype]; cut_2 = temp_cut*temp_cut; if (rsq <= cut_2) { @@ -482,7 +493,7 @@ void FixNVESpin::ComputeInteractionsSpin(int ii) } } - if (me_flag) { // me + if (me_flag) { // me temp_cut = lockpairspinme->cut_spin_me[itype][jtype]; cut_2 = temp_cut*temp_cut; if (rsq <= cut_2) { @@ -496,19 +507,19 @@ void FixNVESpin::ComputeInteractionsSpin(int ii) } if (magprecession_flag) { // magnetic precession - if (zeeman_flag) { // zeeman + if (zeeman_flag) { // zeeman lockprecessionspin->compute_zeeman(i,fmi); } - if (aniso_flag) { // aniso + if (aniso_flag) { // aniso lockprecessionspin->compute_anisotropy(i,spi,fmi); } } - if (maglangevin_flag) { // mag. langevin - if (tdamp_flag) { // transverse damping + if (maglangevin_flag) { // mag. langevin + if (tdamp_flag) { // transverse damping locklangevinspin->add_tdamping(spi,fmi); } - if (temp_flag) { // spin temperature + if (temp_flag) { // spin temperature locklangevinspin->add_temperature(fmi); } } @@ -522,7 +533,7 @@ void FixNVESpin::ComputeInteractionsSpin(int ii) } /* ---------------------------------------------------------------------- - divide each domain into sectors + divide each domain into 8 sectors ---------------------------------------------------------------------- */ void FixNVESpin::sectoring() diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index 3fd96a67d4..c3cda17848 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -11,6 +11,11 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) +------------------------------------------------------------------------- */ + #ifdef FIX_CLASS FixStyle(nve/spin,FixNVESpin) @@ -44,13 +49,15 @@ class FixNVESpin : public Fix { void pre_neighbor(); protected: - int sector_flag; // sector_flag = 0 if serial algorithm - // sector_flag = 1 if parallel algorithm - int mech_flag; // mech_flag = 0 if spins only - // mech_flag = 1 if spin-lattice calc. + int sector_flag; // sector_flag = 0 if serial algorithm + // sector_flag = 1 if parallel algorithm + int mech_flag; // mech_flag = 0 if spins only + // mech_flag = 1 if spin-lattice calc. - double dtv, dtf, dts; // velocity, force, and spin timesteps + double dtv, dtf, dts; // velocity, force, and spin timesteps + int nlocal_max; // max value of nlocal (for lists size) + int magpair_flag; // magnetic pair flags int exch_flag; int soc_neel_flag, soc_dmi_flag; From ce80d1a3eac37b1eb7ae1c777fab0503a9ed054d Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 16 Apr 2018 09:02:16 -0600 Subject: [PATCH 088/675] Commit JT 041618 Enabling multiple exchange interactions --- ...air_spin_soc_dmi.txt => pair_spin_dmi.txt} | 13 +- ...r_spin_soc_neel.txt => pair_spin_neel.txt} | 13 +- examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc | 2 +- examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 4 +- src/SPIN/atom_vec_spin.cpp | 5 + src/SPIN/atom_vec_spin.h | 10 + src/SPIN/compute_spin.cpp | 5 + src/SPIN/compute_spin.h | 10 + src/SPIN/fix_langevin_spin.cpp | 9 +- src/SPIN/fix_langevin_spin.h | 10 + src/SPIN/fix_nve_spin.cpp | 197 ++---- src/SPIN/fix_nve_spin.h | 30 +- src/SPIN/fix_precession_spin.cpp | 5 + src/SPIN/fix_precession_spin.h | 10 + src/SPIN/pair_spin.cpp | 622 +++++++++++++++++ src/SPIN/pair_spin.h | 108 +++ ...air_spin_soc_dmi.cpp => pair_spin_dmi.cpp} | 335 ++++----- .../{pair_spin_soc_dmi.h => pair_spin_dmi.h} | 41 +- src/SPIN/pair_spin_exchange.cpp | 336 ++++----- src/SPIN/pair_spin_exchange.h | 35 +- src/SPIN/pair_spin_me.cpp | 324 ++++----- src/SPIN/pair_spin_me.h | 30 +- src/SPIN/pair_spin_neel.cpp | 643 ++++++++++++++++++ ...{pair_spin_soc_neel.h => pair_spin_neel.h} | 42 +- src/SPIN/pair_spin_soc_neel.cpp | 623 ----------------- src/pair_hybrid.h | 2 +- 26 files changed, 2124 insertions(+), 1340 deletions(-) rename doc/src/{pair_spin_soc_dmi.txt => pair_spin_dmi.txt} (85%) rename doc/src/{pair_spin_soc_neel.txt => pair_spin_neel.txt} (86%) create mode 100755 src/SPIN/pair_spin.cpp create mode 100755 src/SPIN/pair_spin.h rename src/SPIN/{pair_spin_soc_dmi.cpp => pair_spin_dmi.cpp} (65%) rename src/SPIN/{pair_spin_soc_dmi.h => pair_spin_dmi.h} (59%) create mode 100755 src/SPIN/pair_spin_neel.cpp rename src/SPIN/{pair_spin_soc_neel.h => pair_spin_neel.h} (61%) delete mode 100755 src/SPIN/pair_spin_soc_neel.cpp diff --git a/doc/src/pair_spin_soc_dmi.txt b/doc/src/pair_spin_dmi.txt similarity index 85% rename from doc/src/pair_spin_soc_dmi.txt rename to doc/src/pair_spin_dmi.txt index a3a9bb3172..e2987ce1df 100644 --- a/doc/src/pair_spin_soc_dmi.txt +++ b/doc/src/pair_spin_dmi.txt @@ -6,11 +6,11 @@ :line -pair_style pair/spin/soc/dmi command :h3 +pair_style pair/spin/dmi command :h3 [Syntax:] -pair_style pair/spin/soc/dmi cutoff :pre +pair_style pair/spin/dmi cutoff :pre cutoff = global cutoff pair (distance in metal units) :ulb,l @@ -18,19 +18,16 @@ cutoff = global cutoff pair (distance in metal units) :ulb,l [Examples:] -pair_style pair/spin/soc/dmi 4.0 +pair_style pair/spin/dmi 4.0 pair_coeff * * dmi 2.6 0.001 1.0 0.0 0.0 pair_coeff 1 2 dmi 4.0 0.00109 0.0 0.0 1.0 :pre [Description:] -Styles {pair/spin/soc} compute pair interactions arising from the spin-orbit -coupling (soc). - -Style {pair/spin/soc/dmi} computes the Dzyaloshinskii-Moriya (DM) interaction +Style {pair/spin/dmi} computes the Dzyaloshinskii-Moriya (DM) interaction between pairs of magnetic spins: -:c,image(Eqs/pair_spin_soc_dmi_interaction.jpg) +:c,image(Eqs/pair_spin_dmi_interaction.jpg) where si and sj are two neighboring magnetic spins of two particles, rij = ri - rj is the inter-atomic distance between the two particles, diff --git a/doc/src/pair_spin_soc_neel.txt b/doc/src/pair_spin_neel.txt similarity index 86% rename from doc/src/pair_spin_soc_neel.txt rename to doc/src/pair_spin_neel.txt index 44ca5b3b22..84893fecb1 100644 --- a/doc/src/pair_spin_soc_neel.txt +++ b/doc/src/pair_spin_neel.txt @@ -6,11 +6,11 @@ :line -pair_style pair/spin/soc/neel command :h3 +pair_style pair/spin/neel command :h3 [Syntax:] -pair_style pair/spin/soc/neel cutoff :pre +pair_style pair/spin/neel cutoff :pre cutoff = global cutoff pair (distance in metal units) :ulb,l @@ -18,19 +18,16 @@ cutoff = global cutoff pair (distance in metal units) :ulb,l [Examples:] -pair_style pair/spin/soc/neel 4.0 +pair_style pair/spin/neel 4.0 pair_coeff * * neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 pair_coeff 1 2 neel 4.0 0.0048 0.234 1.168 0.0 0.0 1.0 :pre [Description:] -Styles {pair/spin/soc} compute pair interactions arising from the spin-orbit -coupling (soc). - -Style {pair/spin/soc/neel} computes the Neel pair anisotropy model +Style {pair/spin/neel} computes the Neel pair anisotropy model between pairs of magnetic spins: -:c,image(Eqs/pair_spin_soc_dmi_interaction.jpg) +:c,image(Eqs/pair_spin_dmi_interaction.jpg) where si and sj are two neighboring magnetic spins of two particles, rij = ri - rj is the inter-atomic distance between the two particles, diff --git a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc index e70765e08d..45d9d983bd 100644 --- a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc +++ b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc @@ -53,5 +53,5 @@ thermo 10 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] -run 1000 +run 100 diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index bd807e4efe..24d19a2252 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -22,11 +22,11 @@ mass 1 58.93 set group all spin/random 31 1.72 velocity all create 100 4928459 rot yes dist gaussian -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/neel 4.0 pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy Co pair_coeff * * pair/spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 +#pair_coeff * * pair/spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index cda16833a3..369ce8671e 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -16,6 +16,11 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/atom_vec_spin.h b/src/SPIN/atom_vec_spin.h index 99d4a86189..4177a4c860 100644 --- a/src/SPIN/atom_vec_spin.h +++ b/src/SPIN/atom_vec_spin.h @@ -11,6 +11,16 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + #ifdef ATOM_CLASS AtomStyle(spin,AtomVecSpin) diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 32e3a4b9ba..3d5de8fb03 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -14,6 +14,11 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/compute_spin.h b/src/SPIN/compute_spin.h index 59f0ce2876..872694cd89 100644 --- a/src/SPIN/compute_spin.h +++ b/src/SPIN/compute_spin.h @@ -11,6 +11,16 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + #ifdef COMPUTE_CLASS ComputeStyle(compute/spin,ComputeSpin) diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index b7a2f0c0bd..aa017a12b8 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -11,9 +11,14 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ---------------------------------------------------------------------- +/* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index 0f90a77c14..ac7506c4c5 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -11,6 +11,16 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + #ifdef FIX_CLASS FixStyle(langevin/spin,FixLangevinSpin) diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index a842335cd3..c4dca269ad 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -14,6 +14,11 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ #include @@ -36,10 +41,7 @@ #include "neigh_list.h" #include "pair.h" #include "pair_hybrid.h" -#include "pair_spin_exchange.h" -#include "pair_spin_me.h" -#include "pair_spin_soc_dmi.h" -#include "pair_spin_soc_neel.h" +#include "pair_spin.h" #include "respa.h" #include "update.h" @@ -56,8 +58,7 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), rsec(NULL), stack_head(NULL), stack_foot(NULL), backward_stacks(NULL), forward_stacks(NULL), - lockpairspinexchange(NULL), lockpairspinsocneel(NULL), lockprecessionspin(NULL), - locklangevinspin(NULL) + lockpairspin(NULL) { if (narg < 4) error->all(FLERR,"Illegal fix/NVE/spin command"); @@ -65,7 +66,7 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : time_integrate = 1; sector_flag = NONE; - mech_flag = 1; + lattice_flag = 1; nlocal_max = 0; @@ -83,14 +84,14 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : sector_flag = 1; } else error->all(FLERR,"Illegal fix/NVE/spin command"); - // defining mech_flag + // defining lattice_flag int iarg = 3; while (iarg < narg) { if (strcmp(arg[iarg],"lattice") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix/NVE/spin command"); - if (strcmp(arg[iarg+1],"no") == 0) mech_flag = 0; - else if (strcmp(arg[iarg+1],"yes") == 0) mech_flag = 1; + if (strcmp(arg[iarg+1],"no") == 0) lattice_flag = 0; + else if (strcmp(arg[iarg+1],"yes") == 0) lattice_flag = 1; else error->all(FLERR,"Illegal fix/NVE/spin command"); iarg += 2; } else error->all(FLERR,"Illegal fix/NVE/spin command"); @@ -109,9 +110,6 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : // initialize the magnetic interaction flags magpair_flag = 0; - exch_flag = 0; - soc_neel_flag = soc_dmi_flag = 0; - me_flag = 0; magprecession_flag = 0; zeeman_flag = aniso_flag = 0; maglangevin_flag = 0; @@ -128,6 +126,7 @@ FixNVESpin::~FixNVESpin() memory->destroy(stack_foot); memory->destroy(forward_stacks); memory->destroy(backward_stacks); + delete lockpairspin; } /* ---------------------------------------------------------------------- */ @@ -152,42 +151,14 @@ void FixNVESpin::init() dtf = 0.5 * update->dt * force->ftm2v; dts = 0.25 * update->dt; - // set necessary pointers to interaction classes + // ptrs on PairSpin classes - if (strstr(force->pair_style,"pair/spin/exchange")) { - exch_flag = 1; - lockpairspinexchange = (PairSpinExchange *) force->pair; - } else if (strstr(force->pair_style,"pair/spin/soc/neel")) { - soc_neel_flag = 1; - lockpairspinsocneel = (PairSpinSocNeel *) force->pair; - } else if (strstr(force->pair_style,"pair/spin/soc/dmi")) { - soc_dmi_flag = 1; - lockpairspinsocdmi = (PairSpinSocDmi *) force->pair; - } else if (strstr(force->pair_style,"pair/spin/me")) { - me_flag = 1; - lockpairspinme = (PairSpinMe *) force->pair; - } else if (strstr(force->pair_style,"hybrid/overlay")) { - PairHybrid *lockhybrid = (PairHybrid *) force->pair; - int nhybrid_styles = lockhybrid->nstyles; - int ipair; - for (ipair = 0; ipair < nhybrid_styles; ipair++) { - if (strstr(lockhybrid->keywords[ipair],"pair/spin/exchange")) { - exch_flag = 1; - lockpairspinexchange = (PairSpinExchange *) lockhybrid->styles[ipair]; - } else if (strstr(lockhybrid->keywords[ipair],"pair/spin/soc/neel")) { - soc_neel_flag = 1; - lockpairspinsocneel = (PairSpinSocNeel *) lockhybrid->styles[ipair]; - } else if (strstr(lockhybrid->keywords[ipair],"pair/spin/soc/dmi")) { - soc_dmi_flag = 1; - lockpairspinsocdmi = (PairSpinSocDmi *) lockhybrid->styles[ipair]; - } else if (strstr(lockhybrid->keywords[ipair],"pair/spin/me")) { - me_flag = 1; - lockpairspinme = (PairSpinMe *) lockhybrid->styles[ipair]; - } - } - } else error->all(FLERR,"Illegal fix NVE/spin command"); + lockpairspin = new PairSpin(lmp); + magpair_flag = lockpairspin->init_pair(); + if (magpair_flag != 0 && magpair_flag != 1) + error->all(FLERR,"Incorrect value of magpair_flag"); - // check errors, and handle simple hybrid (not overlay), and no pair/spin interaction + // ptrs FixPrecessionSpin classes int iforce; for (iforce = 0; iforce < modify->nfix; iforce++) { @@ -197,6 +168,13 @@ void FixNVESpin::init() } } + if (magprecession_flag) { + if (lockprecessionspin->zeeman_flag == 1) zeeman_flag = 1; + if (lockprecessionspin->aniso_flag == 1) aniso_flag = 1; + } + + // ptrs on the FixLangevinSpin class + for (iforce = 0; iforce < modify->nfix; iforce++) { if (strstr(modify->fix[iforce]->style,"langevin/spin")) { maglangevin_flag = 1; @@ -204,16 +182,13 @@ void FixNVESpin::init() } } - if (magprecession_flag) { - if (lockprecessionspin->zeeman_flag == 1) zeeman_flag = 1; - if (lockprecessionspin->aniso_flag == 1) aniso_flag = 1; - } - if (maglangevin_flag) { if (locklangevinspin->tdamp_flag == 1) tdamp_flag = 1; if (locklangevinspin->temp_flag == 1) temp_flag = 1; } - + + // setting the sector variables/lists + nsectors = 0; memory->create(rsec,3,"NVE/spin:rsec"); @@ -221,7 +196,7 @@ void FixNVESpin::init() if (sector_flag) sectoring(); - // init. size tables of stacking variables (sectoring) + // init. size of stacking lists (sectoring) nlocal_max = atom->nlocal; stack_head = memory->grow(stack_head,nsectors,"NVE/spin:stack_head"); @@ -254,7 +229,7 @@ void FixNVESpin::initial_integrate(int vflag) // update half v for all atoms - if (mech_flag) { + if (lattice_flag) { for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (rmass) dtfm = dtf / rmass[i]; @@ -301,7 +276,7 @@ void FixNVESpin::initial_integrate(int vflag) // update x for all particles - if (mech_flag) { + if (lattice_flag) { for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { x[i][0] += dtv * v[i][0]; @@ -399,113 +374,32 @@ void FixNVESpin::pre_neighbor() compute the magnetic torque for the spin ii ---------------------------------------------------------------------- */ -void FixNVESpin::ComputeInteractionsSpin(int ii) +void FixNVESpin::ComputeInteractionsSpin(int i) { const int nlocal = atom->nlocal; - double xi[3], rij[3], eij[3]; - double spi[3], spj[3]; - double fmi[3]; + double spi[3], fmi[3]; - int i,j,jj,inum,jnum,itype,jtype; - int *ilist,*jlist,*numneigh,**firstneigh; - double **x = atom->x; double **sp = atom->sp; double **fm = atom->fm; - int *type = atom->type; - const int newton_pair = force->newton_pair; - - // add test here (only exchange quantities here) - if (exch_flag) { - inum = lockpairspinexchange->list->inum; - ilist = lockpairspinexchange->list->ilist; - numneigh = lockpairspinexchange->list->numneigh; - firstneigh = lockpairspinexchange->list->firstneigh; - } - double rsq, rd; - double temp_cut, cut_2, inorm; - temp_cut = cut_2 = inorm = 0.0; - int eflag = 1; int vflag = 0; int pair_compute_flag = 1; // force computation for spin i - i = ilist[ii]; - spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; - - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - fmi[0] = fmi[1] = fmi[2] = 0.0; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - // loop on neighbors for pair interactions - - for (int jj = 0; jj < jnum; jj++) { - - j = jlist[jj]; - j &= NEIGHMASK; - itype = type[ii]; - jtype = type[j]; - - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - inorm = 1.0/sqrt(rsq); - - temp_cut = 0.0; - - if (exch_flag) { // exchange - temp_cut = lockpairspinexchange->cut_spin_exchange[itype][jtype]; - cut_2 = temp_cut*temp_cut; - if (rsq <= cut_2) { - lockpairspinexchange->compute_exchange(i,j,rsq,fmi,spi,spj); - } - } - - if (soc_neel_flag) { // soc_neel - temp_cut = lockpairspinsocneel->cut_soc_neel[itype][jtype]; - cut_2 = temp_cut*temp_cut; - if (rsq <= cut_2) { - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; - lockpairspinsocneel->compute_soc_neel(i,j,rsq,eij,fmi,spi,spj); - } - } - - if (soc_dmi_flag) { // soc_dmi - temp_cut = lockpairspinsocdmi->cut_soc_dmi[itype][jtype]; - cut_2 = temp_cut*temp_cut; - if (rsq <= cut_2) { - lockpairspinsocdmi->compute_soc_dmi(i,j,fmi,spi,spj); - } - } - - if (me_flag) { // me - temp_cut = lockpairspinme->cut_spin_me[itype][jtype]; - cut_2 = temp_cut*temp_cut; - if (rsq <= cut_2) { - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; - lockpairspinme->compute_me(i,j,eij,fmi,spi,spj); - } - } - - } + fmi[0] = fmi[1] = fmi[2] = 0.0; + + // evaluate magnetic pair interactions + + if (magpair_flag) lockpairspin->compute_pair_single_spin(i,fmi); + + // evaluate magnetic precession interactions + if (magprecession_flag) { // magnetic precession if (zeeman_flag) { // zeeman lockprecessionspin->compute_zeeman(i,fmi); @@ -542,7 +436,7 @@ void FixNVESpin::sectoring() double sublo[3],subhi[3]; double* sublotmp = domain->sublo; double* subhitmp = domain->subhi; - for (int dim = 0 ; dim<3 ; dim++) { + for (int dim = 0 ; dim < 3 ; dim++) { sublo[dim]=sublotmp[dim]; subhi[dim]=subhitmp[dim]; } @@ -551,7 +445,10 @@ void FixNVESpin::sectoring() const double rsy = subhi[1] - sublo[1]; const double rsz = subhi[2] - sublo[2]; - const double rv = lockpairspinexchange->cut_spin_exchange_global; + // temp + //const double rv = 2.0; + //const double rv = lockpairspinexchange->cut_spin_exchange_global; + const double rv = lockpairspin->larger_cutoff; double rax = rsx/rv; double ray = rsy/rv; @@ -684,7 +581,7 @@ void FixNVESpin::final_integrate() // update half v for all particles - if (mech_flag) { + if (lattice_flag) { for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (rmass) dtfm = dtf / rmass[i]; diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index c3cda17848..89824a9bd1 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -14,6 +14,11 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ #ifdef FIX_CLASS @@ -26,11 +31,13 @@ FixStyle(nve/spin,FixNVESpin) #define LMP_FIX_NVE_SPIN_H #include "fix.h" +#include "pair.h" +#include "pair_spin.h" namespace LAMMPS_NS { class FixNVESpin : public Fix { - +friend class PairSpin; public: FixNVESpin(class LAMMPS *, int, char **); virtual ~FixNVESpin(); @@ -48,36 +55,33 @@ class FixNVESpin : public Fix { void setup_pre_neighbor(); void pre_neighbor(); + int lattice_flag; // lattice_flag = 0 if spins only + // lattice_flag = 1 if spin-lattice calc. + + protected: int sector_flag; // sector_flag = 0 if serial algorithm // sector_flag = 1 if parallel algorithm - int mech_flag; // mech_flag = 0 if spins only - // mech_flag = 1 if spin-lattice calc. double dtv, dtf, dts; // velocity, force, and spin timesteps int nlocal_max; // max value of nlocal (for lists size) int magpair_flag; // magnetic pair flags - int exch_flag; - int soc_neel_flag, soc_dmi_flag; - int me_flag; int magprecession_flag; // magnetic precession flags int zeeman_flag, aniso_flag; int maglangevin_flag; // magnetic langevin flags int tdamp_flag, temp_flag; // pointers to magnetic interaction classes - - class PairHybrid *lockhybrid; - class PairSpinExchange *lockpairspinexchange; - class PairSpinSocNeel *lockpairspinsocneel; - class PairSpinSocDmi *lockpairspinsocdmi; - class PairSpinMe *lockpairspinme; + + class PairSpin *lockpairspin; class FixPrecessionSpin *lockprecessionspin; class FixLangevinSpin *locklangevinspin; - int nsectors; // sectoring variables + // sectoring variables + + int nsectors; double *rsec; // stacking variables for sectoring algorithm diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index fb0ab4562d..c5fde83fe6 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -14,6 +14,11 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/fix_precession_spin.h b/src/SPIN/fix_precession_spin.h index 483d0c554d..71155ddd2b 100644 --- a/src/SPIN/fix_precession_spin.h +++ b/src/SPIN/fix_precession_spin.h @@ -11,6 +11,16 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + #ifdef FIX_CLASS FixStyle(precession/spin,FixPrecessionSpin) diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp new file mode 100755 index 0000000000..a40f2a86b7 --- /dev/null +++ b/src/SPIN/pair_spin.cpp @@ -0,0 +1,622 @@ +/* ---------------------------------------------------------------------- + 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 authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + +#include +#include +#include + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "fix.h" +#include "fix_nve_spin.h" +#include "force.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "math_const.h" +#include "memory.h" +#include "modify.h" +#include "pair.h" +#include "pair_hybrid.h" +#include "pair_hybrid_overlay.h" +#include "pair_spin.h" +#include "pair_spin_dmi.h" +#include "pair_spin_exchange.h" +#include "pair_spin_neel.h" +#include "pair_spin_me.h" +#include "update.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp), +lockfixnvespin(NULL), pair_keyword(NULL), pair_spin_keywords(NULL), +exchange_spin_styles(NULL), dmi_spin_styles(NULL), +neel_spin_styles(NULL), me_spin_styles(NULL) +{ + hbar = force->hplanck/MY_2PI; + single_enable = 0; + no_virial_fdotr_compute = 1; + lattice_flag = 0; + + // init # of Pair/Spin styles + + nspinstyle = 0; // # of PairSpin styles + nexchangespinstyle = 0; // # of PairSpinExchange styles + ndmispinstyle = 0; // # of PairSpinDmi styles + nneelspinstyle = 0; // # of PairSpinNeel styles + nmespinstyle = 0; // # of PairSpinMe styles + + // init larger Pair/Spin style cutoff + + larger_cutoff = 0.0; +} + +/* ---------------------------------------------------------------------- */ + +PairSpin::~PairSpin() +{ + + if (nspinstyle) { + for (int m = 0; m < nspinstyle; m++) { + delete [] pair_spin_keywords[m]; + } + } + delete [] pair_keyword; + delete [] exchange_spin_styles; + delete [] dmi_spin_styles; + delete [] neel_spin_styles; + delete [] me_spin_styles; + delete [] pair_spin_keywords; + +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpin::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); + + // pair/spin need the metal unit style + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"pair/spin style requires metal units"); + +} + +/* ---------------------------------------------------------------------- + global compute, defined in Pair/Spin subclasses +------------------------------------------------------------------------- */ + +void PairSpin::compute(int eflag, int vflag) {} + +/* ---------------------------------------------------------------------- + compute all Pair/Spin interactions for atom ii +------------------------------------------------------------------------- */ + +void PairSpin::compute_pair_single_spin(int ii, double fmi[3]) +{ + const int nlocal = atom->nlocal; + int *type = atom->type; + double **x = atom->x; + double **sp = atom->sp; + + double xi[3], rij[3], eij[3]; + double spi[3], spj[3]; + + int iexchange, idmi, ineel, ime; + int i,j,jj,inum,jnum,itype,jtype; + int *ilist,*jlist,*numneigh,**firstneigh; + + double rsq, rd, inorm; + + iexchange = idmi = ineel = ime = 0; + + for (int ipair=0; ipair < nspinstyle; ipair++) { + + if (strstr(pair_spin_keywords[ipair],"pair/spin/exchange")) { + inum = exchange_spin_styles[iexchange]->list->inum; + ilist = exchange_spin_styles[iexchange]->list->ilist; + numneigh = exchange_spin_styles[iexchange]->list->numneigh; + firstneigh = exchange_spin_styles[iexchange]->list->firstneigh; + + i = ilist[ii]; + + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (int jj = 0; jj < jnum; jj++) { + + j = jlist[jj]; + j &= NEIGHMASK; + itype = type[ii]; + jtype = type[j]; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + inorm = 1.0/sqrt(rsq); + + exchange_spin_styles[iexchange]->compute_exchange(i,j,rsq,fmi,spi,spj); + } + iexchange++; + } + + if (strstr(pair_spin_keywords[ipair],"pair/spin/dmi")) { + inum = dmi_spin_styles[idmi]->list->inum; + ilist = dmi_spin_styles[idmi]->list->ilist; + numneigh = dmi_spin_styles[idmi]->list->numneigh; + firstneigh = dmi_spin_styles[idmi]->list->firstneigh; + + i = ilist[ii]; + + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (int jj = 0; jj < jnum; jj++) { + + j = jlist[jj]; + j &= NEIGHMASK; + itype = type[ii]; + jtype = type[j]; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + inorm = 1.0/sqrt(rsq); + + dmi_spin_styles[idmi]->compute_dmi(i,j,rsq,fmi,spi,spj); + } + idmi++; + } + + if (strstr(pair_spin_keywords[ipair],"pair/spin/neel")) { + inum = neel_spin_styles[ineel]->list->inum; + ilist = neel_spin_styles[ineel]->list->ilist; + numneigh = neel_spin_styles[ineel]->list->numneigh; + firstneigh = neel_spin_styles[ineel]->list->firstneigh; + + i = ilist[ii]; + + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (int jj = 0; jj < jnum; jj++) { + + j = jlist[jj]; + j &= NEIGHMASK; + itype = type[ii]; + jtype = type[j]; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + inorm = 1.0/sqrt(rsq); + eij[0] = rij[0]*inorm; + eij[1] = rij[1]*inorm; + eij[2] = rij[2]*inorm; + + neel_spin_styles[ineel]->compute_neel(i,j,rsq,eij,fmi,spi,spj); + } + ineel++; + } + + if (strstr(pair_spin_keywords[ipair],"pair/spin/me")) { + inum = me_spin_styles[ime]->list->inum; + ilist = me_spin_styles[ime]->list->ilist; + numneigh = me_spin_styles[ime]->list->numneigh; + firstneigh = me_spin_styles[ime]->list->firstneigh; + + i = ilist[ii]; + + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (int jj = 0; jj < jnum; jj++) { + + j = jlist[jj]; + j &= NEIGHMASK; + itype = type[ii]; + jtype = type[j]; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + inorm = 1.0/sqrt(rsq); + eij[0] = rij[0]*inorm; + eij[1] = rij[1]*inorm; + eij[2] = rij[2]*inorm; + + me_spin_styles[ime]->compute_me(i,j,rsq,eij,fmi,spi,spj); + } + ime++; + } + + } + +} + +/* ---------------------------------------------------------------------- + called from Fix/NVE/Spin + initialize the # and the lists of Pair/Spin styles +------------------------------------------------------------------------- */ + +int PairSpin::init_pair() +{ + int nsub = 0; + + // getting the pair style + + pair_keyword = new char[strlen(force->pair_style) + 1]; + strcpy(pair_keyword,force->pair_style); + + + // searching for number of PairSpin styles + + int temp_npair = 0; + nspinstyle = 0; + pair = pair_spin_match("spin",0,nsub); + + // init lists of PairSpin styles + + exchange_spin_styles = new PairSpinExchange*[nspinstyle]; + dmi_spin_styles = new PairSpinDmi*[nspinstyle]; + neel_spin_styles = new PairSpinNeel*[nspinstyle]; + me_spin_styles = new PairSpinMe*[nspinstyle]; + + // init lists of PairSpin names + + pair_spin_keywords = new char*[nspinstyle]; + + nexchangespinstyle = 0; + ndmispinstyle = 0; + nneelspinstyle = 0; + nmespinstyle = 0; + + // loop to define lists of Pair/Spin styles + + int ispin = 0; + if (strstr(pair_keyword,"spin")) { + + // Pair/Spin/Exchange style + + if (strstr(pair_keyword,"pair/spin/exchange")) { + int n = strlen(pair_keyword) + 1; + pair_spin_keywords[ispin] = new char[n]; + strcpy(pair_spin_keywords[ispin],pair_keyword); + exchange_spin_styles[nexchangespinstyle] = (PairSpinExchange *) force->pair; + nexchangespinstyle++; + ispin++; + } + + // Pair/Spin/Dmi style + + if (strstr(pair_keyword,"pair/spin/dmi")) { + int n = strlen(pair_keyword) + 1; + pair_spin_keywords[ispin] = new char[n]; + strcpy(pair_spin_keywords[ispin],pair_keyword); + dmi_spin_styles[ndmispinstyle] = (PairSpinDmi *) force->pair; + ndmispinstyle++; + ispin++; + } + + // Pair/Spin/Neel style + + if (strstr(pair_keyword,"pair/spin/neel")) { + int n = strlen(pair_keyword) + 1; + pair_spin_keywords[ispin] = new char[n]; + strcpy(pair_spin_keywords[ispin],pair_keyword); + neel_spin_styles[nneelspinstyle] = (PairSpinNeel *) force->pair; + nneelspinstyle++; + ispin++; + } + + // list Pair/Spin/Me styles + + if (strstr(pair_keyword,"pair/spin/me")) { + int n = strlen(pair_keyword) + 1; + pair_spin_keywords[ispin] = new char[n]; + strcpy(pair_spin_keywords[ispin],pair_keyword); + me_spin_styles[nmespinstyle] = (PairSpinMe *) force->pair; + nmespinstyle++; + ispin++; + } + + } else if (strstr(pair_keyword,"hybrid/overlay")) { // if hybrid/overlay + PairHybrid *lockhybrid = (PairHybrid *) force->pair; + for (int i =0; i < lockhybrid->nstyles; i++) { + + // error checks + + if (strcmp(lockhybrid->keywords[i],"hybrid") == 0) + error->all(FLERR,"Pair style hybrid cannot have hybrid as an argument"); + if (strcmp(lockhybrid->keywords[i],"none") == 0) + error->all(FLERR,"Pair style hybrid cannot have none as an argument"); + + // list Pair/Spin/Exchange styles + + if (strstr(lockhybrid->keywords[i],"pair/spin/exchange")) { + int n = strlen(lockhybrid->keywords[i]) + 1; + pair_spin_keywords[ispin] = new char[n]; + strcpy(pair_spin_keywords[ispin],lockhybrid->keywords[i]); + exchange_spin_styles[nexchangespinstyle] = (PairSpinExchange *) lockhybrid->styles[i]; + nexchangespinstyle++; + ispin++; + } + + // list Pair/Spin/Dmi styles + + if (strstr(lockhybrid->keywords[i],"pair/spin/dmi")) { + int n = strlen(lockhybrid->keywords[i]) + 1; + pair_spin_keywords[ispin] = new char[n]; + strcpy(pair_spin_keywords[ispin],lockhybrid->keywords[i]); + dmi_spin_styles[ndmispinstyle] = (PairSpinDmi *) lockhybrid->styles[i]; + ndmispinstyle++; + ispin++; + } + + // list Pair/Spin/Neel styles + + if (strstr(lockhybrid->keywords[i],"pair/spin/neel")) { + int n = strlen(lockhybrid->keywords[i]) + 1; + pair_spin_keywords[ispin] = new char[n]; + strcpy(pair_spin_keywords[ispin],lockhybrid->keywords[i]); + neel_spin_styles[nneelspinstyle] = (PairSpinNeel *) lockhybrid->styles[i]; + nneelspinstyle++; + ispin++; + } + + // list Pair/Spin/Me styles + + if (strstr(lockhybrid->keywords[i],"pair/spin/me")) { + int n = strlen(lockhybrid->keywords[i]) + 1; + pair_spin_keywords[ispin] = new char[n]; + strcpy(pair_spin_keywords[ispin],lockhybrid->keywords[i]); + me_spin_styles[nmespinstyle] = (PairSpinMe *) lockhybrid->styles[i]; + nmespinstyle++; + ispin++; + } + + } + } else if (strstr(pair_keyword,"hybrid")) { // no hybrid style with PairSpin + error->all(FLERR,"Pair/Spin styles need hybrid/overlay Pair style"); + } else error->all(FLERR,"Wrong arguments in PairSpin style"); + + if (ispin != nspinstyle) + error->all(FLERR,"Wrong number of PairSpin styles"); + + if ((nexchangespinstyle + ndmispinstyle + nneelspinstyle + nmespinstyle) != nspinstyle) + error->all(FLERR,"Wrong number of PairSpin styles"); + + if (strstr(pair_keyword,"spin") && nspinstyle != 1) + error->all(FLERR,"Wrong number of PairSpin styles"); + + int mag_pair_flag = 0; + if (nspinstyle >= 1) mag_pair_flag = 1; + + + // get larger_cutoff + + larger_cutoff = larger_spin_cutoff(); + + if (mag_pair_flag == 1 && larger_cutoff == 0.0) + error->all(FLERR,"Wrong arguments for PairSpin styles"); + + return mag_pair_flag; +} + +/* ---------------------------------------------------------------------- + get the larger Pair/Spin style cutoff for the sectoring operation +------------------------------------------------------------------------- */ + +double PairSpin::larger_spin_cutoff() +{ + int iexchange, idmi, ineel, ime; + double local_cutoff = 0.0; + + iexchange = idmi = ineel = ime = 0; + + for (int ipair=0; ipair < nspinstyle; ipair++) { + + if (strstr(pair_spin_keywords[ipair],"pair/spin/exchange")) { + if (local_cutoff < exchange_spin_styles[iexchange]->cut_spin_exchange_global) + local_cutoff = exchange_spin_styles[iexchange]->cut_spin_exchange_global; + iexchange++; + } + + if (strstr(pair_spin_keywords[ipair],"pair/spin/dmi")) { + if (local_cutoff < dmi_spin_styles[idmi]->cut_spin_dmi_global) + local_cutoff = dmi_spin_styles[idmi]->cut_spin_dmi_global; + idmi++; + } + + if (strstr(pair_spin_keywords[ipair],"pair/spin/neel")) { + if (local_cutoff < neel_spin_styles[ineel]->cut_spin_neel_global) + local_cutoff = neel_spin_styles[ineel]->cut_spin_neel_global; + ineel++; + } + + if (strstr(pair_spin_keywords[ipair],"pair/spin/me")) { + if (local_cutoff < me_spin_styles[ime]->cut_spin_me_global) + local_cutoff = me_spin_styles[ime]->cut_spin_me_global; + ime++; + } + + } + + if ((iexchange + idmi + ineel + ime) != nspinstyle) + error->all(FLERR,"Wrong number of PairSpin styles"); + + return local_cutoff; +} + + +/* ---------------------------------------------------------------------- */ + +Pair *PairSpin::pair_spin_match(const char *word, int exact, int nsub) +{ + int iwhich,count; + + + if (exact && strcmp(pair_keyword,word) == 0) return pair; + else if (!exact && strstr(pair_keyword,word)) return pair; + + else if (strstr(pair_keyword,"hybrid/overlay")) { + PairHybrid *lockhybrid = (PairHybrid *) force->pair; + count = 0; + for (int i = 0; i < lockhybrid->nstyles; i++) + if ((exact && strcmp(lockhybrid->keywords[i],word) == 0) || + (!exact && strstr(lockhybrid->keywords[i],word))) { + iwhich = i; + count++; + nspinstyle = count; + if (nsub == count) return lockhybrid->styles[iwhich]; + } + if (count == 1) return lockhybrid->styles[iwhich]; + + } else if (strstr(pair_keyword,"hybrid")) { + PairHybrid *lockhybrid = (PairHybrid *) force->pair; + count = 0; + for (int i = 0; i < lockhybrid->nstyles; i++) + if ((exact && strcmp(lockhybrid->keywords[i],word) == 0) || + (!exact && strstr(lockhybrid->keywords[i],word))) { + iwhich = i; + count++; + nspinstyle = count; + if (nsub == count) return lockhybrid->styles[iwhich]; + } + if (count == 1) return lockhybrid->styles[iwhich]; + } + + return NULL; +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairSpin::allocate() +{ + allocated = 1; + char *pair_keyword = new char[strlen(force->pair_style) + 1]; + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpin::coeff(int narg, char **arg) +{ + const double hbar = force->hplanck/MY_2PI; + + if (!allocated) allocate(); + +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpin::init_style() +{ + if (!atom->sp_flag) + error->all(FLERR,"Pair spin requires atom/spin style"); + + // checking if nve/spin is a listed fix + + int ifix = 0; + while (ifix < modify->nfix) { + if (strcmp(modify->fix[ifix]->style,"nve/spin") == 0) break; + ifix++; + } + if (ifix == modify->nfix) + error->all(FLERR,"pair/spin style requires nve/spin"); + + // get the lattice_flag from nve/spin + + for (int i = 0; i < modify->nfix; i++) { + if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { + lockfixnvespin = (FixNVESpin *) modify->fix[i]; + lattice_flag = lockfixnvespin->lattice_flag; + } + } +} diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h new file mode 100755 index 0000000000..8fe189801d --- /dev/null +++ b/src/SPIN/pair_spin.h @@ -0,0 +1,108 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS + +PairStyle(pair/spin,PairSpin) + +#else + +#ifndef LMP_PAIR_SPIN_H +#define LMP_PAIR_SPIN_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairSpin : public Pair { +friend class FixNVESpin; + public: + PairSpin(class LAMMPS *); + virtual ~PairSpin(); + virtual void settings(int, char **); + virtual void coeff(int, char **); + virtual void init_style(); + virtual double init_one(int, int) {return 0.0;} + virtual void compute(int, int); + + + // functions called from fix/nve/spin + // used to evaluate force on spin i inside integration loops + + int init_pair(); // init call of PairSpin styles + double larger_cutoff; // larger Pair/Spin style cutoff + double larger_spin_cutoff(); // compute larger_cutoff + void compute_pair_single_spin(int, double *); // compute pairs for one atom + + class Pair *pair; // unused try class + int nspinstyle; // # of magnetic pairs + class Pair *pair_spin_match(const char *, int, int); // initializing nspinstyle + char *pair_keyword; // main pair style + char **pair_spin_keywords; // list of Pair/Spin style names + + // # and lists of Pair/Spin style classes + + int nexchangespinstyle; // # of exchange pairs + class PairSpinExchange **exchange_spin_styles; // list of Pair/Spin/Exchange2 classes + + int ndmispinstyle; // # of dmi pairs + class PairSpinDmi **dmi_spin_styles; // list of Pair/Spin/Dmi2 classes + + int nneelspinstyle; // # of dmi pairs + class PairSpinNeel **neel_spin_styles; // list of Pair/Spin/Dmi2 classes + + int nmespinstyle; // # of me pairs + class PairSpinMe **me_spin_styles; // list of Pair/Spin/Me2 classes + + protected: + int lattice_flag; // if 0 spins only, 1 if spin-lattice + double hbar; // Planck constant (eV.ps.rad-1) + class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin2 for setups + + virtual void allocate(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Incorrect args in pair_spin command + +Self-explanatory. + +E: Spin simulations require metal unit style + +Self-explanatory. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: Pair spin requires atom attribute spin + +The atom style defined does not have these attributes. + +*/ diff --git a/src/SPIN/pair_spin_soc_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp similarity index 65% rename from src/SPIN/pair_spin_soc_dmi.cpp rename to src/SPIN/pair_spin_dmi.cpp index d59d00bdd2..5c1ab13065 100755 --- a/src/SPIN/pair_spin_soc_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -14,6 +14,11 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ #include @@ -24,13 +29,15 @@ #include "comm.h" #include "error.h" #include "force.h" +#include "fix.h" +#include "fix_nve_spin.h" #include "pair_hybrid.h" #include "neighbor.h" #include "neigh_list.h" #include "neigh_request.h" #include "math_const.h" #include "memory.h" -#include "pair_spin_soc_dmi.h" +#include "pair_spin_dmi.h" #include "update.h" using namespace LAMMPS_NS; @@ -38,50 +45,167 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -PairSpinSocDmi::PairSpinSocDmi(LAMMPS *lmp) : Pair(lmp) +PairSpinDmi::PairSpinDmi(LAMMPS *lmp) : PairSpin(lmp) { - hbar = force->hplanck/MY_2PI; - single_enable = 0; - soc_dmi_flag = 0; - no_virial_fdotr_compute = 1; } /* ---------------------------------------------------------------------- */ -PairSpinSocDmi::~PairSpinSocDmi() +PairSpinDmi::~PairSpinDmi() { if (allocated) { memory->destroy(setflag); - - memory->destroy(cut_soc_dmi); + memory->destroy(cut_spin_dmi); memory->destroy(DM); memory->destroy(v_dmx); memory->destroy(v_dmy); memory->destroy(v_dmz); - memory->destroy(cutsq); } } +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpinDmi::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair/spin/dmi command"); + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); + + cut_spin_dmi_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) { + for (j = i+1; j <= atom->ntypes; j++) { + if (setflag[i][j]) { + cut_spin_dmi[i][j] = cut_spin_dmi_global; + } + } + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpinDmi::coeff(int narg, char **arg) +{ + const double hbar = force->hplanck/MY_2PI; + + if (!allocated) allocate(); + + if (strcmp(arg[2],"dmi") != 0) + error->all(FLERR,"Incorrect args in pair_style command"); + if (narg != 8) + error->all(FLERR,"Incorrect args in pair_style command"); + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + const double rij = force->numeric(FLERR,arg[3]); + const double dm = (force->numeric(FLERR,arg[4]))/hbar; + double dmx = force->numeric(FLERR,arg[5]); + double dmy = force->numeric(FLERR,arg[6]); + double dmz = force->numeric(FLERR,arg[7]); + + double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); + dmx *= inorm; + dmy *= inorm; + dmz *= inorm; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_dmi[i][j] = rij; + DM[i][j] = dm; + v_dmx[i][j] = dmx; + v_dmy[i][j] = dmy; + v_dmz[i][j] = dmz; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) + error->all(FLERR,"Incorrect args in pair_style command"); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpinDmi::init_style() +{ + if (!atom->sp_flag) + error->all(FLERR,"Pair spin requires atom/spin style"); + + // need a full neighbor list + + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; + + // checking if nve/spin is a listed fix + + int ifix = 0; + while (ifix < modify->nfix) { + if (strcmp(modify->fix[ifix]->style,"nve/spin") == 0) break; + ifix++; + } + if (ifix == modify->nfix) + error->all(FLERR,"pair/spin style requires nve/spin"); + + // get the lattice_flag from nve/spin + + for (int i = 0; i < modify->nfix; i++) { + if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { + lockfixnvespin = (FixNVESpin *) modify->fix[i]; + lattice_flag = lockfixnvespin->lattice_flag; + } + } + +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpinDmi::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_spin_dmi_global; +} + /* ---------------------------------------------------------------------- */ -void PairSpinSocDmi::compute(int eflag, int vflag) +void PairSpinDmi::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; double xi[3], rij[3]; double spi[3], spj[3]; double fi[3], fmi[3]; - double cut_soc_dmi_2; + double cut_spin_dmi_2; double rsq, rd, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = vflag_fdotr = 0; - cut_soc_dmi_2 = cut_soc_global*cut_soc_global; + cut_spin_dmi_2 = cut_spin_dmi_global*cut_spin_dmi_global; double **x = atom->x; double **f = atom->f; @@ -139,13 +263,13 @@ void PairSpinSocDmi::compute(int eflag, int vflag) // compute magnetic and mechanical components of soc_dmi - if (soc_dmi_flag){ - cut_soc_dmi_2 = cut_soc_dmi[itype][jtype]*cut_soc_dmi[itype][jtype]; - if (rsq <= cut_soc_dmi_2){ - compute_soc_dmi(i,j,fmi,spi,spj); - compute_soc_dmi_mech(i,j,fi,spi,spj); - } - } + cut_spin_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; + if (rsq <= cut_spin_dmi_2){ + compute_dmi(i,j,rsq,fmi,spi,spj); + if (lattice_flag) { + compute_dmi_mech(i,j,fi,spi,spj); + } + } f[i][0] += fi[0]; f[i][1] += fi[1]; @@ -162,7 +286,7 @@ void PairSpinSocDmi::compute(int eflag, int vflag) } if (eflag) { - if (rsq <= cut_soc_dmi_2) { + if (rsq <= cut_spin_dmi_2) { evdwl -= spi[0]*fmi[0]; evdwl -= spi[1]*fmi[1]; evdwl -= spi[2]*fmi[2]; @@ -179,29 +303,37 @@ void PairSpinSocDmi::compute(int eflag, int vflag) } -/* ---------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + compute the dmi interaction between spin i and spin j +------------------------------------------------------------------------- */ -void PairSpinSocDmi::compute_soc_dmi(int i, int j, double fmi[3], double spi[3], double spj[3]) +void PairSpinDmi::compute_dmi(int i, int j, double rsq, double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; - double dmix,dmiy,dmiz; itype = type[i]; jtype = type[j]; - - dmix = DM[itype][jtype]*v_dmx[itype][jtype]; - dmiy = DM[itype][jtype]*v_dmy[itype][jtype]; - dmiz = DM[itype][jtype]*v_dmz[itype][jtype]; - fmi[0] += spj[1]*dmiz-spj[2]*dmiy; - fmi[1] += spj[2]*dmix-spj[0]*dmiz; - fmi[2] += spj[0]*dmiy-spj[1]*dmix; + double local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; + if (rsq <= local_cut2) { + double dmix,dmiy,dmiz; + + dmix = DM[itype][jtype]*v_dmx[itype][jtype]; + dmiy = DM[itype][jtype]*v_dmy[itype][jtype]; + dmiz = DM[itype][jtype]*v_dmz[itype][jtype]; + + fmi[0] += spj[1]*dmiz-spj[2]*dmiy; + fmi[1] += spj[2]*dmix-spj[0]*dmiz; + fmi[2] += spj[0]*dmiy-spj[1]*dmix; + } } -/* ---------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + compute the mechanical force due to the dmi interaction between atom i and atom j +------------------------------------------------------------------------- */ -void PairSpinSocDmi::compute_soc_dmi_mech(int i, int j, double fi[3], double spi[3], double spj[3]) +void PairSpinDmi::compute_dmi_mech(int i, int j, double fi[3], double spi[3], double spj[3]) { fi[0] += 0.0; fi[1] += 0.0; @@ -213,7 +345,7 @@ void PairSpinSocDmi::compute_soc_dmi_mech(int i, int j, double fi[3], double spi allocate all arrays ------------------------------------------------------------------------- */ -void PairSpinSocDmi::allocate() +void PairSpinDmi::allocate() { allocated = 1; int n = atom->ntypes; @@ -223,7 +355,7 @@ void PairSpinSocDmi::allocate() for (int j = i; j <= n; j++) setflag[i][j] = 0; - memory->create(cut_soc_dmi,n+1,n+1,"pair:cut_soc_dmi"); + memory->create(cut_spin_dmi,n+1,n+1,"pair:cut_spin_dmi"); memory->create(DM,n+1,n+1,"pair:DM"); memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); @@ -233,115 +365,12 @@ void PairSpinSocDmi::allocate() } -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairSpinSocDmi::settings(int narg, char **arg) -{ - if (narg < 1 || narg > 2) - error->all(FLERR,"Incorrect number of args in pair/spin/dmi command"); - - if (strcmp(update->unit_style,"metal") != 0) - error->all(FLERR,"Spin simulations require metal unit style"); - - cut_soc_global = force->numeric(FLERR,arg[0]); - - // reset cutoffs that have been explicitly set - - if (allocated) { - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i+1; j <= atom->ntypes; j++) - if (setflag[i][j]) { - cut_soc_dmi[i][j] = cut_soc_global; - } - } - -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type spin pairs (only one for now) -------------------------------------------------------------------------- */ - -void PairSpinSocDmi::coeff(int narg, char **arg) -{ - const double hbar = force->hplanck/MY_2PI; - - if (!allocated) allocate(); - - if (strcmp(arg[2],"dmi")==0) { - if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - soc_dmi_flag = 1; - - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double dm = (force->numeric(FLERR,arg[4]))/hbar; - double dmx = force->numeric(FLERR,arg[5]); - double dmy = force->numeric(FLERR,arg[6]); - double dmz = force->numeric(FLERR,arg[7]); - - double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); - dmx *= inorm; - dmy *= inorm; - dmz *= inorm; - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_soc_dmi[i][j] = rij; - DM[i][j] = dm; - v_dmx[i][j] = dmx; - v_dmy[i][j] = dmy; - v_dmz[i][j] = dmz; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else error->all(FLERR,"Incorrect args in pair_style command"); - -} - - -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -void PairSpinSocDmi::init_style() -{ - if (!atom->sp_flag) - error->all(FLERR,"Pair spin requires atom/spin style"); - - neighbor->request(this,instance_me); - - // check this half/full request => to be verified - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->full = 1; - -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairSpinSocDmi::init_one(int i, int j) -{ - - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - - return cut_soc_global; -} /* ---------------------------------------------------------------------- proc 0 writes to restart file ------------------------------------------------------------------------- */ -void PairSpinSocDmi::write_restart(FILE *fp) +void PairSpinDmi::write_restart(FILE *fp) { write_restart_settings(fp); @@ -350,13 +379,11 @@ void PairSpinSocDmi::write_restart(FILE *fp) for (j = i; j <= atom->ntypes; j++) { fwrite(&setflag[i][j],sizeof(int),1,fp); if (setflag[i][j]) { - if (soc_dmi_flag) { - fwrite(&DM[i][j],sizeof(double),1,fp); - fwrite(&v_dmx[i][j],sizeof(double),1,fp); - fwrite(&v_dmy[i][j],sizeof(double),1,fp); - fwrite(&v_dmz[i][j],sizeof(double),1,fp); - fwrite(&cut_soc_dmi[i][j],sizeof(double),1,fp); - } + fwrite(&DM[i][j],sizeof(double),1,fp); + fwrite(&v_dmx[i][j],sizeof(double),1,fp); + fwrite(&v_dmy[i][j],sizeof(double),1,fp); + fwrite(&v_dmz[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_dmi[i][j],sizeof(double),1,fp); } } } @@ -365,7 +392,7 @@ void PairSpinSocDmi::write_restart(FILE *fp) proc 0 reads from restart file, bcasts ------------------------------------------------------------------------- */ -void PairSpinSocDmi::read_restart(FILE *fp) +void PairSpinDmi::read_restart(FILE *fp) { read_restart_settings(fp); @@ -383,13 +410,13 @@ void PairSpinSocDmi::read_restart(FILE *fp) fread(&v_dmx[i][j],sizeof(double),1,fp); fread(&v_dmy[i][j],sizeof(double),1,fp); fread(&v_dmz[i][j],sizeof(double),1,fp); - fread(&cut_soc_dmi[i][j],sizeof(double),1,fp); + fread(&cut_spin_dmi[i][j],sizeof(double),1,fp); } MPI_Bcast(&DM[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmx[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmy[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmz[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_soc_dmi[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_dmi[i][j],1,MPI_DOUBLE,0,world); } } } @@ -400,9 +427,9 @@ void PairSpinSocDmi::read_restart(FILE *fp) proc 0 writes to restart file ------------------------------------------------------------------------- */ -void PairSpinSocDmi::write_restart_settings(FILE *fp) +void PairSpinDmi::write_restart_settings(FILE *fp) { - fwrite(&cut_soc_global,sizeof(double),1,fp); + fwrite(&cut_spin_dmi_global,sizeof(double),1,fp); fwrite(&offset_flag,sizeof(int),1,fp); fwrite(&mix_flag,sizeof(int),1,fp); } @@ -411,14 +438,14 @@ void PairSpinSocDmi::write_restart_settings(FILE *fp) proc 0 reads from restart file, bcasts ------------------------------------------------------------------------- */ -void PairSpinSocDmi::read_restart_settings(FILE *fp) +void PairSpinDmi::read_restart_settings(FILE *fp) { if (comm->me == 0) { - fread(&cut_soc_global,sizeof(double),1,fp); + fread(&cut_spin_dmi_global,sizeof(double),1,fp); fread(&offset_flag,sizeof(int),1,fp); fread(&mix_flag,sizeof(int),1,fp); } - MPI_Bcast(&cut_soc_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_dmi_global,1,MPI_DOUBLE,0,world); MPI_Bcast(&offset_flag,1,MPI_INT,0,world); MPI_Bcast(&mix_flag,1,MPI_INT,0,world); } diff --git a/src/SPIN/pair_spin_soc_dmi.h b/src/SPIN/pair_spin_dmi.h similarity index 59% rename from src/SPIN/pair_spin_soc_dmi.h rename to src/SPIN/pair_spin_dmi.h index 4feef78739..ff6faa2a46 100755 --- a/src/SPIN/pair_spin_soc_dmi.h +++ b/src/SPIN/pair_spin_dmi.h @@ -11,48 +11,53 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + #ifdef PAIR_CLASS -PairStyle(pair/spin/soc/dmi,PairSpinSocDmi) +PairStyle(pair/spin/dmi,PairSpinDmi) #else -#ifndef LMP_PAIR_SPIN_SOC_DMI_H -#define LMP_PAIR_SPIN_SOC_DMI_H +#ifndef LMP_PAIR_SPIN_DMI_H +#define LMP_PAIR_SPIN_DMI_H -#include "pair.h" +#include "pair_spin.h" namespace LAMMPS_NS { -class PairSpinSocDmi : public Pair { +class PairSpinDmi : public PairSpin { public: - PairSpinSocDmi(class LAMMPS *); - virtual ~PairSpinSocDmi(); - virtual void compute(int, int); + PairSpinDmi(class LAMMPS *); + virtual ~PairSpinDmi(); void settings(int, char **); void coeff(int, char **); void init_style(); double init_one(int, int); + void compute(int, int); + void compute_dmi(int, int, double, double *, double *, double *); + void compute_dmi_mech(int, int, double *, double *, double *); + void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_soc_dmi(int, int, double fmi[3], double spi[3], double spj[3]); - void compute_soc_dmi_mech(int, int, double fi[3], double spi[3], double spj[3]); - - int soc_dmi_flag; // dmi flag - - double cut_soc_global; // short range pair cutoff - double **cut_soc_dmi; // cutoff distance dmi + double cut_spin_dmi_global; // short range pair cutoff protected: - int newton_pair_spin; - double hbar; - double **DM; // dmi coeff in eV double **v_dmx, **v_dmy, **v_dmz; // dmi direction + double **cut_spin_dmi; // cutoff distance dmi void allocate(); }; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index ca67956967..c899fba40a 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -14,6 +14,11 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ #include @@ -23,6 +28,8 @@ #include "atom.h" #include "comm.h" #include "error.h" +#include "fix.h" +#include "fix_nve_spin.h" #include "force.h" #include "pair_hybrid.h" #include "neighbor.h" @@ -38,14 +45,9 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -PairSpinExchange::PairSpinExchange(LAMMPS *lmp) : Pair(lmp) +PairSpinExchange::PairSpinExchange(LAMMPS *lmp) : PairSpin(lmp) { - hbar = force->hplanck/MY_2PI; - single_enable = 0; - exch_flag = 0; - exch_mech_flag = 0; - no_virial_fdotr_compute = 1; } @@ -55,17 +57,134 @@ PairSpinExchange::~PairSpinExchange() { if (allocated) { memory->destroy(setflag); - memory->destroy(cut_spin_exchange); memory->destroy(J1_mag); memory->destroy(J1_mech); memory->destroy(J2); memory->destroy(J3); - - memory->destroy(cutsq); + memory->destroy(cutsq); // to be deleted } } +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpinExchange::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); + + cut_spin_exchange_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i+1; j <= atom->ntypes; j++) + if (setflag[i][j]) { + cut_spin_exchange[i][j] = cut_spin_exchange_global; + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpinExchange::coeff(int narg, char **arg) +{ + const double hbar = force->hplanck/MY_2PI; + + if (!allocated) allocate(); + + // check if args correct + + if (strcmp(arg[2],"exchange") != 0) + error->all(FLERR,"Incorrect args in pair_style command"); + if (narg != 7) + error->all(FLERR,"Incorrect args in pair_style command"); + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + // get exchange arguments from input command + + const double rc = force->numeric(FLERR,arg[3]); + const double j1 = force->numeric(FLERR,arg[4]); + const double j2 = force->numeric(FLERR,arg[5]); + const double j3 = force->numeric(FLERR,arg[6]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_exchange[i][j] = rc; + J1_mag[i][j] = j1/hbar; + J1_mech[i][j] = j1; + J2[i][j] = j2; + J3[i][j] = j3; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) + error->all(FLERR,"Incorrect args in pair_style command"); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpinExchange::init_style() +{ + if (!atom->sp_flag) + error->all(FLERR,"Pair spin requires atom/spin style"); + + // need a full neighbor list + + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; + + // checking if nve/spin is a listed fix + + int ifix = 0; + while (ifix < modify->nfix) { + if (strcmp(modify->fix[ifix]->style,"nve/spin") == 0) break; + ifix++; + } + if (ifix == modify->nfix) + error->all(FLERR,"pair/spin style requires nve/spin"); + + // get the lattice_flag from nve/spin + + for (int i = 0; i < modify->nfix; i++) { + if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { + lockfixnvespin = (FixNVESpin *) modify->fix[i]; + lattice_flag = lockfixnvespin->lattice_flag; + } + } + +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpinExchange::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_spin_exchange_global; +} + /* ---------------------------------------------------------------------- */ void PairSpinExchange::compute(int eflag, int vflag) @@ -140,12 +259,12 @@ void PairSpinExchange::compute(int eflag, int vflag) // compute exchange interaction - if (exch_flag) { - cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; - if (rsq <= cut_ex_2) { - compute_exchange(i,j,rsq,fmi,spi,spj); + cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; + if (rsq <= cut_ex_2) { + compute_exchange(i,j,rsq,fmi,spi,spj); + if (lattice_flag) { compute_exchange_mech(i,j,rsq,rij,fi,spi,spj); - } + } } f[i][0] += fi[0]; @@ -178,49 +297,63 @@ void PairSpinExchange::compute(int eflag, int vflag) } -/* ---------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + compute the magnetic exchange interaction between spin i and spin j +------------------------------------------------------------------------- */ void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; - double Jex, ra; itype = type[i]; jtype = type[j]; - - ra = rsq/J3[itype][jtype]/J3[itype][jtype]; - Jex = 4.0*J1_mag[itype][jtype]*ra; - Jex *= (1.0-J2[itype][jtype]*ra); - Jex *= exp(-ra); - fmi[0] += Jex*spj[0]; - fmi[1] += Jex*spj[1]; - fmi[2] += Jex*spj[2]; - + double local_cut2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; + + if (rsq <= local_cut2) { + double Jex, ra; + + ra = rsq/J3[itype][jtype]/J3[itype][jtype]; + Jex = 4.0*J1_mag[itype][jtype]*ra; + Jex *= (1.0-J2[itype][jtype]*ra); + Jex *= exp(-ra); + + fmi[0] += Jex*spj[0]; + fmi[1] += Jex*spj[1]; + fmi[2] += Jex*spj[2]; + } } -/* ---------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + compute the mechanical force due to the exchange interaction between atom i and atom j +------------------------------------------------------------------------- */ void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double rij[3], double fi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; - double Jex, Jex_mech, ra, rr, iJ3; itype = type[i]; jtype = type[j]; - Jex = J1_mech[itype][jtype]; - iJ3 = 1.0/(J3[itype][jtype]*J3[itype][jtype]); + + double local_cut2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; - ra = rsq*iJ3; - rr = sqrt(rsq)*iJ3; + if (rsq <= local_cut2) { + double Jex, Jex_mech, ra, rr, iJ3; + Jex = J1_mech[itype][jtype]; + iJ3 = 1.0/(J3[itype][jtype]*J3[itype][jtype]); - Jex_mech = 1.0-ra-J2[itype][jtype]*ra*(2.0-ra); - Jex_mech *= 8.0*Jex*rr*exp(-ra); - Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); - - fi[0] -= Jex_mech*rij[0]; - fi[1] -= Jex_mech*rij[1]; - fi[2] -= Jex_mech*rij[2]; + ra = rsq*iJ3; + rr = sqrt(rsq)*iJ3; + + Jex_mech = 1.0-ra-J2[itype][jtype]*ra*(2.0-ra); + Jex_mech *= 8.0*Jex*rr*exp(-ra); + Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); + + fi[0] -= Jex_mech*rij[0]; + fi[1] -= Jex_mech*rij[1]; + fi[2] -= Jex_mech*rij[2]; + + } } @@ -243,121 +376,10 @@ void PairSpinExchange::allocate() memory->create(J1_mech,n+1,n+1,"pair/spin/exchange:J1_mech"); memory->create(J2,n+1,n+1,"pair/spin/exchange:J2"); memory->create(J3,n+1,n+1,"pair/spin/exchange:J3"); - - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - -} - -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairSpinExchange::settings(int narg, char **arg) -{ - if (narg < 1 || narg > 2) - error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); - - if (strcmp(update->unit_style,"metal") != 0) - error->all(FLERR,"Spin simulations require metal unit style"); - - cut_spin_exchange_global = force->numeric(FLERR,arg[0]); - - // reset cutoffs that have been explicitly set - - if (allocated) { - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i+1; j <= atom->ntypes; j++) - if (setflag[i][j]) { - cut_spin_exchange[i][j] = cut_spin_exchange_global; - } - } - -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type spin pairs (only one for now) -------------------------------------------------------------------------- */ - -void PairSpinExchange::coeff(int narg, char **arg) -{ - const double hbar = force->hplanck/MY_2PI; - - if (!allocated) allocate(); - - // set exch_mech_flag to 1 if magneto-mech simulation - - if (strstr(force->pair_style,"pair/spin")) { - exch_mech_flag = 0; - } else if (strstr(force->pair_style,"hybrid/overlay")) { - exch_mech_flag = 1; - } else error->all(FLERR,"Incorrect args in pair_style command"); - - - if (strcmp(arg[2],"exchange")==0){ - if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); - exch_flag = 1; - - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rc = force->numeric(FLERR,arg[3]); - const double j1 = force->numeric(FLERR,arg[4]); - const double j2 = force->numeric(FLERR,arg[5]); - const double j3 = force->numeric(FLERR,arg[6]); - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_exchange[i][j] = rc; - J1_mag[i][j] = j1/hbar; - if (exch_mech_flag) { - J1_mech[i][j] = j1; - } else { - J1_mech[i][j] = 0.0; - } - J2[i][j] = j2; - J3[i][j] = j3; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else error->all(FLERR,"Incorrect args in pair_style command"); - + memory->create(cutsq,n+1,n+1,"pair:cutsq"); } -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -void PairSpinExchange::init_style() -{ - if (!atom->sp_flag) - error->all(FLERR,"Pair spin requires atom/spin style"); - - neighbor->request(this,instance_me); - - // check this half/full request => to be verified - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->full = 1; - -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairSpinExchange::init_one(int i, int j) -{ - - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - - return cut_spin_exchange_global; -} /* ---------------------------------------------------------------------- proc 0 writes to restart file @@ -372,17 +394,14 @@ void PairSpinExchange::write_restart(FILE *fp) for (j = i; j <= atom->ntypes; j++) { fwrite(&setflag[i][j],sizeof(int),1,fp); if (setflag[i][j]) { - if (exch_flag){ - fwrite(&J1_mag[i][j],sizeof(double),1,fp); - fwrite(&J1_mech[i][j],sizeof(double),1,fp); - fwrite(&J2[i][j],sizeof(double),1,fp); - fwrite(&J3[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_exchange[i][j],sizeof(double),1,fp); - } + fwrite(&J1_mag[i][j],sizeof(double),1,fp); + fwrite(&J1_mech[i][j],sizeof(double),1,fp); + fwrite(&J2[i][j],sizeof(double),1,fp); + fwrite(&J3[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_exchange[i][j],sizeof(double),1,fp); } } } - } /* ---------------------------------------------------------------------- @@ -446,3 +465,4 @@ void PairSpinExchange::read_restart_settings(FILE *fp) MPI_Bcast(&offset_flag,1,MPI_INT,0,world); MPI_Bcast(&mix_flag,1,MPI_INT,0,world); } + diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h index c5e47922eb..ab22ef9255 100755 --- a/src/SPIN/pair_spin_exchange.h +++ b/src/SPIN/pair_spin_exchange.h @@ -11,6 +11,16 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + #ifdef PAIR_CLASS PairStyle(pair/spin/exchange,PairSpinExchange) @@ -20,37 +30,34 @@ PairStyle(pair/spin/exchange,PairSpinExchange) #ifndef LMP_PAIR_SPIN_EXCHANGE_H #define LMP_PAIR_SPIN_EXCHANGE_H -#include "pair.h" +#include "pair_spin.h" namespace LAMMPS_NS { -class PairSpinExchange : public Pair { +class PairSpinExchange : public PairSpin { public: PairSpinExchange(class LAMMPS *); virtual ~PairSpinExchange(); - virtual void compute(int, int); void settings(int, char **); void coeff(int, char **); void init_style(); double init_one(int, int); + void compute(int, int); + void compute_exchange(int, int, double, double *, double *, double *); + void compute_exchange_mech(int, int, double, double *, double *, double *, double *); + void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - - void compute_exchange(int, int, double, double fmi[3], double spi[3], double spj[3]); - void compute_exchange_mech(int, int, double, double rij[3], double fi[3], double spi[3], double spj[3]); - - int exch_flag; // magnetic exchange flag - int exch_mech_flag; // mechanic exchange flags - double cut_spin_exchange_global; // global exchange cutoff - double **cut_spin_exchange; // cutoff distance per exchange + + double cut_spin_exchange_global; // global neel cutoff distance protected: - double hbar; - double **J1_mag, **J1_mech; // exchange coeffs Jij - double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang + double **J1_mag, **J1_mech; // exchange coeffs Jij + double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang + double **cut_spin_exchange; // cutoff distance exchange void allocate(); }; diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_me.cpp index 61f0c98f29..e617470c8a 100755 --- a/src/SPIN/pair_spin_me.cpp +++ b/src/SPIN/pair_spin_me.cpp @@ -14,6 +14,11 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ #include @@ -23,6 +28,8 @@ #include "atom.h" #include "comm.h" #include "error.h" +#include "fix.h" +#include "fix_nve_spin.h" #include "force.h" #include "pair_hybrid.h" #include "neighbor.h" @@ -38,17 +45,9 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -PairSpinMe::PairSpinMe(LAMMPS *lmp) : Pair(lmp) +PairSpinMe::PairSpinMe(LAMMPS *lmp) : PairSpin(lmp) { - hbar = force->hplanck/MY_2PI; - - //newton_pair_spin = 0; // no newton pair for now - // newton_pair = 0; - single_enable = 0; - me_flag = 0; - me_mech_flag = 0; - no_virial_fdotr_compute = 1; } @@ -58,18 +57,136 @@ PairSpinMe::~PairSpinMe() { if (allocated) { memory->destroy(setflag); - memory->destroy(cut_spin_me); memory->destroy(ME); memory->destroy(ME_mech); memory->destroy(v_mex); memory->destroy(v_mey); memory->destroy(v_mez); - - memory->destroy(cutsq); + memory->destroy(cutsq); // to be deteled } } +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpinMe::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); + + cut_spin_me_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i+1; j <= atom->ntypes; j++) + if (setflag[i][j]) { + cut_spin_me[i][j] = cut_spin_me_global; + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpinMe::coeff(int narg, char **arg) +{ + const double hbar = force->hplanck/MY_2PI; + + if (!allocated) allocate(); + + if (strcmp(arg[2],"me")==0) { + if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + const double rij = force->numeric(FLERR,arg[3]); + const double me = (force->numeric(FLERR,arg[4])); + double mex = force->numeric(FLERR,arg[5]); + double mey = force->numeric(FLERR,arg[6]); + double mez = force->numeric(FLERR,arg[7]); + + double inorm = 1.0/(mex*mex+mey*mey+mez*mez); + mex *= inorm; + mey *= inorm; + mez *= inorm; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_me[i][j] = rij; + ME[i][j] = me/hbar; + ME_mech[i][j] = me; + v_mex[i][j] = mex; + v_mey[i][j] = mey; + v_mez[i][j] = mez; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } else error->all(FLERR,"Incorrect args in pair_style command"); + +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpinMe::init_style() +{ + if (!atom->sp_flag) + error->all(FLERR,"Pair spin requires atom/spin style"); + + // need a full neighbor list + + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; + + // checking if nve/spin is a listed fix + + int ifix = 0; + while (ifix < modify->nfix) { + if (strcmp(modify->fix[ifix]->style,"nve/spin") == 0) break; + ifix++; + } + if (ifix == modify->nfix) + error->all(FLERR,"pair/spin style requires nve/spin"); + + // get the lattice_flag from nve/spin + + for (int i = 0; i < modify->nfix; i++) { + if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { + lockfixnvespin = (FixNVESpin *) modify->fix[i]; + lattice_flag = lockfixnvespin->lattice_flag; + } + } + +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpinMe::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_spin_me_global; +} + /* ---------------------------------------------------------------------- */ void PairSpinMe::compute(int eflag, int vflag) @@ -146,12 +263,12 @@ void PairSpinMe::compute(int eflag, int vflag) itype = type[i]; jtype = type[j]; - // me interaction + // compute me interaction - if (me_flag){ - cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; - if (rsq <= cut_me_2){ - compute_me(i,j,rij,fmi,spi,spj); + cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; + if (rsq <= cut_me_2){ + compute_me(i,j,rsq,rij,fmi,spi,spj); + if (lattice_flag) { compute_me_mech(i,j,fi,spi,spj); } } @@ -188,41 +305,45 @@ void PairSpinMe::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ -void PairSpinMe::compute_me(int i, int j, double eij[3], double fmi[3], double spi[3], double spj[3]) +void PairSpinMe::compute_me(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; itype = type[i]; jtype = type[j]; - double meix,meiy,meiz; - double rx, ry, rz; - double vx, vy, vz; - - rx = eij[0]; - ry = eij[1]; - rz = eij[2]; - - vx = v_mex[itype][jtype]; - vy = v_mey[itype][jtype]; - vz = v_mez[itype][jtype]; - meix = vy*rz - vz*ry; - meiy = vz*rx - vx*rz; - meiz = vx*ry - vy*rx; - - meix *= ME[itype][jtype]; - meiy *= ME[itype][jtype]; - meiz *= ME[itype][jtype]; - - fmi[0] += spj[1]*meiz - spj[2]*meiy; - fmi[1] += spj[2]*meix - spj[0]*meiz; - fmi[2] += spj[0]*meiy - spj[1]*meix; - + double local_cut2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; + + if (rsq <= local_cut2) { + double meix,meiy,meiz; + double rx, ry, rz; + double vx, vy, vz; + + rx = eij[0]; + ry = eij[1]; + rz = eij[2]; + + vx = v_mex[itype][jtype]; + vy = v_mey[itype][jtype]; + vz = v_mez[itype][jtype]; + + meix = vy*rz - vz*ry; + meiy = vz*rx - vx*rz; + meiz = vx*ry - vy*rx; + + meix *= ME[itype][jtype]; + meiy *= ME[itype][jtype]; + meiz *= ME[itype][jtype]; + + fmi[0] += spj[1]*meiz - spj[2]*meiy; + fmi[1] += spj[2]*meix - spj[0]*meiz; + fmi[2] += spj[0]*meiy - spj[1]*meix; + } } /* ---------------------------------------------------------------------- */ -void PairSpinMe::compute_me_mech(int i, int j, double fi[3], double spi[3], double spj[3]) +void PairSpinMe::compute_me_mech(int i, int j, double fi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -270,113 +391,7 @@ void PairSpinMe::allocate() memory->create(v_mex,n+1,n+1,"pair/spin/me:ME_vector_x"); memory->create(v_mey,n+1,n+1,"pair/spin/me:ME_vector_y"); memory->create(v_mez,n+1,n+1,"pair/spin/me:ME_vector_z"); - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - -} - -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairSpinMe::settings(int narg, char **arg) -{ - if (narg < 1 || narg > 2) - error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); - - if (strcmp(update->unit_style,"metal") != 0) - error->all(FLERR,"Spin simulations require metal unit style"); - - cut_spin_me_global = force->numeric(FLERR,arg[0]); - - // reset cutoffs that have been explicitly set - - if (allocated) { - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i+1; j <= atom->ntypes; j++) - if (setflag[i][j]) { - cut_spin_me[i][j] = cut_spin_me_global; - } - } - -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type spin pairs (only one for now) -------------------------------------------------------------------------- */ - -void PairSpinMe::coeff(int narg, char **arg) -{ - const double hbar = force->hplanck/MY_2PI; - - if (!allocated) allocate(); - - if (strcmp(arg[2],"me")==0) { - if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - me_flag = 1; - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double me = (force->numeric(FLERR,arg[4])); - double mex = force->numeric(FLERR,arg[5]); - double mey = force->numeric(FLERR,arg[6]); - double mez = force->numeric(FLERR,arg[7]); - - double inorm = 1.0/(mex*mex+mey*mey+mez*mez); - mex *= inorm; - mey *= inorm; - mez *= inorm; - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_me[i][j] = rij; - ME[i][j] = me/hbar; - ME_mech[i][j] = me; - v_mex[i][j] = mex; - v_mey[i][j] = mey; - v_mez[i][j] = mez; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else error->all(FLERR,"Incorrect args in pair_style command"); - -} - - -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -void PairSpinMe::init_style() -{ - if (!atom->sp_flag) - error->all(FLERR,"Pair spin requires atom/spin style"); - - neighbor->request(this,instance_me); - - // check this half/full request => to be corrected/reviewed - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->full = 1; - -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairSpinMe::init_one(int i, int j) -{ - - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - - return cut_spin_me_global; } /* ---------------------------------------------------------------------- @@ -392,13 +407,11 @@ void PairSpinMe::write_restart(FILE *fp) for (j = i; j <= atom->ntypes; j++) { fwrite(&setflag[i][j],sizeof(int),1,fp); if (setflag[i][j]) { - if (me_flag) { - fwrite(&ME[i][j],sizeof(double),1,fp); - fwrite(&v_mex[i][j],sizeof(double),1,fp); - fwrite(&v_mey[i][j],sizeof(double),1,fp); - fwrite(&v_mez[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_me[i][j],sizeof(double),1,fp); - } + fwrite(&ME[i][j],sizeof(double),1,fp); + fwrite(&v_mex[i][j],sizeof(double),1,fp); + fwrite(&v_mey[i][j],sizeof(double),1,fp); + fwrite(&v_mez[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_me[i][j],sizeof(double),1,fp); } } } @@ -437,7 +450,6 @@ void PairSpinMe::read_restart(FILE *fp) } } - /* ---------------------------------------------------------------------- proc 0 writes to restart file ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_me.h b/src/SPIN/pair_spin_me.h index 9f176242c9..05e6719710 100755 --- a/src/SPIN/pair_spin_me.h +++ b/src/SPIN/pair_spin_me.h @@ -11,6 +11,16 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + #ifdef PAIR_CLASS PairStyle(pair/spin/me,PairSpinMe) @@ -20,40 +30,34 @@ PairStyle(pair/spin/me,PairSpinMe) #ifndef LMP_PAIR_SPIN_ME_H #define LMP_PAIR_SPIN_ME_H -#include "pair.h" +#include "pair_spin.h" namespace LAMMPS_NS { -class PairSpinMe : public Pair { +class PairSpinMe : public PairSpin { public: PairSpinMe(class LAMMPS *); virtual ~PairSpinMe(); - virtual void compute(int, int); void settings(int, char **); void coeff(int, char **); void init_style(); double init_one(int, int); + void compute(int, int); + void compute_me(int, int, double, double *, double *, double *, double *); + void compute_me_mech(int, int, double *, double *, double *); + void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - void compute_me(int, int, double [3], double [3], double [3], double [3]); - void compute_me_mech(int, int, double [3], double [3], double [3]); - - int me_flag; // me flag - int me_mech_flag; // mech calculation flag - double cut_spin_me_global; // global me cutoff - double **cut_spin_me; // me cutoff distance protected: - int newton_pair_spin; - double hbar; - double **ME, **ME_mech; // me coeff in eV double **v_mex, **v_mey, **v_mez; // me direction + double **cut_spin_me; // me cutoff distance void allocate(); }; diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp new file mode 100755 index 0000000000..205ee736ed --- /dev/null +++ b/src/SPIN/pair_spin_neel.cpp @@ -0,0 +1,643 @@ +/* ---------------------------------------------------------------------- + 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 authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + +#include +#include +#include + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "fix.h" +#include "fix_nve_spin.h" +#include "force.h" +#include "pair_hybrid.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "math_const.h" +#include "memory.h" +#include "pair_spin_neel.h" +#include "update.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +PairSpinNeel::PairSpinNeel(LAMMPS *lmp) : PairSpin(lmp) +{ + single_enable = 0; + no_virial_fdotr_compute = 1; +} + +/* ---------------------------------------------------------------------- */ + +PairSpinNeel::~PairSpinNeel() +{ + if (allocated) { + memory->destroy(setflag); + memory->destroy(cut_spin_neel); + memory->destroy(g1); + memory->destroy(g1_mech); + memory->destroy(g2); + memory->destroy(g3); + memory->destroy(q1); + memory->destroy(q1_mech); + memory->destroy(q2); + memory->destroy(q3); + memory->destroy(cutsq); // to be deleted + } +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairSpinNeel::settings(int narg, char **arg) +{ + if (narg < 1 || narg > 2) + error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); + + if (strcmp(update->unit_style,"metal") != 0) + error->all(FLERR,"Spin simulations require metal unit style"); + + cut_spin_neel_global = force->numeric(FLERR,arg[0]); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) { + for (j = i+1; j <= atom->ntypes; j++) { + if (setflag[i][j]) { + cut_spin_neel[i][j] = cut_spin_neel_global; + } + } + } + } + +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type spin pairs (only one for now) +------------------------------------------------------------------------- */ + +void PairSpinNeel::coeff(int narg, char **arg) +{ + const double hbar = force->hplanck/MY_2PI; + + if (!allocated) allocate(); + + // check if args correct + + if (strcmp(arg[2],"neel") != 0) + error->all(FLERR,"Incorrect args in pair_style command"); + if (narg != 10) + error->all(FLERR,"Incorrect args in pair_style command"); + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + const double rij = force->numeric(FLERR,arg[3]); + const double k1 = force->numeric(FLERR,arg[4]); + const double k2 = force->numeric(FLERR,arg[5]); + const double k3 = force->numeric(FLERR,arg[6]); + const double l1 = force->numeric(FLERR,arg[7]); + const double l2 = force->numeric(FLERR,arg[8]); + const double l3 = force->numeric(FLERR,arg[9]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_neel[i][j] = rij; + g1[i][j] = k1/hbar; + q1[i][j] = l1/hbar; + g1_mech[i][j] = k1; + q1_mech[i][j] = l1; + g2[i][j] = k2; + g3[i][j] = k3; + q2[i][j] = l2; + q3[i][j] = l3; + setflag[i][j] = 1; + count++; + } + } + if (count == 0) + error->all(FLERR,"Incorrect args in pair_style command"); + +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairSpinNeel::init_style() +{ + if (!atom->sp_flag) + error->all(FLERR,"Pair spin requires atom/spin style"); + + // need a full neighbor list + + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; + + // checking if nve/spin is a listed fix + + int ifix = 0; + while (ifix < modify->nfix) { + if (strcmp(modify->fix[ifix]->style,"nve/spin") == 0) break; + ifix++; + } + if (ifix == modify->nfix) + error->all(FLERR,"pair/spin style requires nve/spin"); + + // get the lattice_flag from nve/spin + + for (int i = 0; i < modify->nfix; i++) { + if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { + lockfixnvespin = (FixNVESpin *) modify->fix[i]; + lattice_flag = lockfixnvespin->lattice_flag; + } + } + +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairSpinNeel::init_one(int i, int j) +{ + + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + return cut_spin_neel_global; +} + +/* ---------------------------------------------------------------------- */ + +void PairSpinNeel::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double evdwl,ecoul; + double xi[3], rij[3], eij[3]; + double spi[3], spj[3]; + double fi[3], fmi[3]; + double cut_spin_neel_2, cut_spin_neel_global2; + double rsq, rd, inorm; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = ecoul = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + cut_spin_neel_global2 = cut_spin_neel_global*cut_spin_neel_global; + + double **x = atom->x; + double **f = atom->f; + double **fm = atom->fm; + double **sp = atom->sp; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // pair spin computations + // loop over atoms and their neighbors + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + // loop on neighbors + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + evdwl = 0.0; + + fi[0] = fi[1] = fi[2] = 0.0; + fmi[0] = fmi[1] = fmi[2] = 0.0; + rij[0] = rij[1] = rij[2] = 0.0; + + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + inorm = 1.0/sqrt(rsq); + eij[0] = rij[0]*inorm; + eij[1] = rij[1]*inorm; + eij[2] = rij[2]*inorm; + + itype = type[i]; + jtype = type[j]; + + // compute magnetic and mechanical components of soc_neel + + cut_spin_neel_2 = cut_spin_neel[itype][jtype]*cut_spin_neel[itype][jtype]; + if (rsq <= cut_spin_neel_2) { + compute_neel(i,j,rsq,eij,fmi,spi,spj); + if (lattice_flag) { + compute_neel_mech(i,j,rsq,eij,fi,spi,spj); + } + } + + f[i][0] += fi[0]; + f[i][1] += fi[1]; + f[i][2] += fi[2]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; + fm[i][2] += fmi[2]; + + // check newton pair => see if needs correction + if (newton_pair || j < nlocal) { + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; + f[j][2] -= fi[2]; + } + + if (eflag) { + if (rsq <= cut_spin_neel_2) { + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl *= hbar; + } else evdwl = 0.0; + } + + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, + evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + } + } + + if (vflag_fdotr) virial_fdotr_compute(); + +} + +/* ---------------------------------------------------------------------- */ + +void PairSpinNeel::compute_neel(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) +{ + int *type = atom->type; + int itype, jtype; + itype = type[i]; + jtype = type[j]; + + double local_cut2 = cut_spin_neel[itype][jtype]*cut_spin_neel[itype][jtype]; + + if (rsq <= local_cut2) { + double gij, q1ij, q2ij, ra; + double pdx, pdy, pdz; + double pq1x, pq1y, pq1z; + double pq2x, pq2y, pq2z; + + // pseudo-dipolar component + ra = rsq/g3[itype][jtype]/g3[itype][jtype]; + gij = 4.0*g1[itype][jtype]*ra; + gij *= (1.0-g2[itype][jtype]*ra); + gij *= exp(-ra); + + double scalar_eij_si = eij[0]*spi[0] + eij[1]*spi[1] + eij[2]*spi[2]; + double scalar_eij_sj = eij[0]*spj[0] + eij[1]*spj[1] + eij[2]*spj[2]; + double scalar_si_sj = spi[0]*spj[0] + spi[1]*spj[1] + spi[2]*spj[2]; + + double gij_eij_sj = gij*scalar_eij_sj; + double gij_3 = gij/3.0; + pdx = gij_eij_sj*eij[0] - gij_3*spj[0]; + pdy = gij_eij_sj*eij[1] - gij_3*spj[1]; + pdz = gij_eij_sj*eij[2] - gij_3*spj[2]; + + // pseudo-quadrupolar component + ra = rsq/q3[itype][jtype]/q3[itype][jtype]; + q1ij = 4.0*q1[itype][jtype]*ra; + q1ij *= (1.0-q2[itype][jtype]*ra); + q1ij *= exp(-ra); + q2ij = (-2.0*q1ij/9.0); + + double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; + pq1x = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[0]/3.0; + pq1y = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[1]/3.0; + pq1z = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[2]/3.0; + + double pqt1 = (scalar_eij_sj*scalar_eij_sj-scalar_si_sj/3.0); + pq1x += pqt1*(2.0*scalar_eij_si*eij[0] - spj[0]/3.0); + pq1y += pqt1*(2.0*scalar_eij_si*eij[1] - spj[1]/3.0); + pq1z += pqt1*(2.0*scalar_eij_si*eij[2] - spj[2]/3.0); + + pq1x *= q1ij; + pq1y *= q1ij; + pq1z *= q1ij; + + double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; + pq2x = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[0] + scalar_eij_sj_3*eij[0]; + pq2y = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[1] + scalar_eij_sj_3*eij[1]; + pq2z = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[2] + scalar_eij_sj_3*eij[2]; + + pq2x *= q2ij; + pq2y *= q2ij; + pq2z *= q2ij; + + // summing three contributions + fmi[0] += (pdx + pq1x + pq2x); + fmi[1] += (pdy + pq1y + pq2y); + fmi[2] += (pdz + pq1z + pq2z); + + } + +} + +/* ---------------------------------------------------------------------- */ + +void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], double fi[3], double spi[3], double spj[3]) +{ + int *type = atom->type; + int itype, jtype; + itype = type[i]; + jtype = type[j]; + + double local_cut2 = cut_spin_neel[itype][jtype]*cut_spin_neel[itype][jtype]; + + if (rsq <= local_cut2) { + double g_mech, gij, dgij; + double q_mech, q1ij, dq1ij; + double q2ij, dq2ij; + double pdx, pdy, pdz; + double pq1x, pq1y, pq1z; + double pq2x, pq2y, pq2z; + double ra, rr, drij, ig3, iq3; + + drij = sqrt(rsq); + + double scalar_si_sj = spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]; + double scalar_eij_si = eij[0]*spi[0]+eij[1]*spi[1]+eij[2]*spi[2]; + double scalar_eij_sj = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; + + // pseudo-dipolar component + g_mech = g1_mech[itype][jtype]; + ig3 = 1.0/(g3[itype][jtype]*g3[itype][jtype]); + + ra = rsq*ig3; + rr = drij*ig3; + + gij = 4.0*g_mech*ra; + gij *= (1.0-g2[itype][jtype]*ra); + gij *= exp(-ra); + + dgij = 1.0-ra-g2[itype][jtype]*ra*(2.0-ra); + dgij *= 8.0*g_mech*rr*exp(-ra); + + double pdt1 = (dgij-2.0*gij/drij)*scalar_eij_si*scalar_eij_sj; + pdt1 -= scalar_si_sj*dgij/3.0; + double pdt2 = scalar_eij_sj*gij/drij; + double pdt3 = scalar_eij_si*gij/drij; + pdx = -(pdt1*eij[0] + pdt2*spi[0] + pdt3*spj[0]); + pdy = -(pdt1*eij[1] + pdt2*spi[1] + pdt3*spj[1]); + pdz = -(pdt1*eij[2] + pdt2*spi[2] + pdt3*spj[2]); + + // pseudo-quadrupolar component + q_mech = q1_mech[itype][jtype]; + iq3 = 1.0/(q3[itype][jtype]*q3[itype][jtype]); + + ra = rsq*iq3; + rr = drij*iq3; + + q1ij = 4.0*q_mech*ra; + q1ij *= (1.0-q2[itype][jtype]*ra); + q1ij *= exp(-ra); + q2ij = -2.0*q1ij/9.0; + + dq1ij = 1.0-ra-q2[itype][jtype]*ra*(2.0-ra); + dq1ij *= 8.0*q_mech*rr*exp(-ra); + dq2ij = -2.0*dq1ij/9.0; + + double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; + double scalar_eij_sj_2 = scalar_eij_sj*scalar_eij_sj; + double pqt1 = scalar_eij_si_2 - scalar_si_sj/3.0; + double pqt2 = scalar_eij_sj_2 - scalar_si_sj/3.0; + pq1x = dq1ij * pqt1 * pqt2 * eij[0]; + pq1y = dq1ij * pqt1 * pqt2 * eij[1]; + pq1z = dq1ij * pqt1 * pqt2 * eij[2]; + + double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; + double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; + double scalar_si_sj_2 = scalar_si_sj*scalar_si_sj; + /* double pqt3 = 2.0*scalar_eij_si*scalar_eij_sj_3/drij; + double pqt4 = 2.0*scalar_eij_sj*scalar_eij_si_3/drij; + double pqt5 = -2.0*scalar_si_sj*scalar_eij_si/(3.0*drij); + double pqt6 = -2.0*scalar_si_sj*scalar_eij_sj/(3.0*drij); + // pq1x += q1ij*(spi[0]*(pqt3+pqt6) + spj[0]*(pqt4+)); + pq1x += q1ij*(pqt3*spi[0]+pqt4*spj[0]+pqt5*spi[0]+pqt6*spi[0]); + pq1y += q1ij*(pqt3*spi[1]+pqt4*spj[1]+pqt5*spi[1]+pqt6*spj[1]); + pq1z += q1ij*(pqt3*spi[2]+pqt4*spj[2]+pqt5*spi[2]+pqt6*spj[2]); + */ + double pqt3 = 2.0*scalar_eij_si*(scalar_eij_sj_2-scalar_si_sj/3.0)/drij; + double pqt4 = 2.0*scalar_eij_sj*(scalar_eij_si_2-scalar_si_sj/3.0)/drij; + pq1x += q1ij*(pqt3*spi[0] + pqt4*spj[0]); + pq1y += q1ij*(pqt3*spi[1] + pqt4*spj[1]); + pq1z += q1ij*(pqt3*spi[2] + pqt4*spj[2]); + double pqt7 = 4.0*scalar_eij_si_2*scalar_eij_sj_2/drij; + double pqt8 = 2.0*scalar_si_sj_2*scalar_eij_sj/(3.0*drij); + double pqt9 = 2.0*scalar_si_sj_2*scalar_eij_si/(3.0*drij); + pq1x -= q1ij*(pqt7 + pqt8 + pqt9)*eij[0]; + pq1y -= q1ij*(pqt7 + pqt8 + pqt9)*eij[1]; + pq1z -= q1ij*(pqt7 + pqt8 + pqt9)*eij[2]; + + /* + double pqt3 = 2.0*scalar_eij_si*(scalar_eij_sj_2-scalar_si_sj/3.0)/drij; + double pqt4 = 2.0*scalar_eij_sj*(scalar_eij_si_2-scalar_si_sj/3.0)/drij; + pq1x += q1ij*(pqt3*spi[0] + pqt4*spj[0]); + pq1y += q1ij*(pqt3*spi[1] + pqt4*spj[1]); + pq1z += q1ij*(pqt3*spi[2] + pqt4*spj[2]); + */ + + //double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; + //double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; + double pqt10 = scalar_eij_sj*scalar_eij_si_3; + double pqt11 = scalar_eij_si*scalar_eij_sj_3; + pq2x = dq2ij*(pqt10 + pqt11)*eij[0]; + pq2y = dq2ij*(pqt10 + pqt11)*eij[1]; + pq2z = dq2ij*(pqt10 + pqt11)*eij[2]; + + double pqt12 = scalar_eij_si_3/drij; + double pqt13 = scalar_eij_sj_3/drij; + double pqt14 = 3.0*scalar_eij_sj*scalar_eij_si_2/drij; + double pqt15 = 3.0*scalar_eij_si*scalar_eij_sj_2/drij; + pq2x += q2ij*((pqt12+pqt15)*spj[0]+(pqt13+pqt14)*spi[0]); + pq2y += q2ij*((pqt12+pqt15)*spj[1]+(pqt13+pqt14)*spi[1]); + pq2z += q2ij*((pqt12+pqt15)*spj[2]+(pqt13+pqt14)*spi[2]); + double pqt16 = 4.0*scalar_eij_sj*scalar_eij_si_3/drij; + double pqt17 = 4.0*scalar_eij_si*scalar_eij_sj_3/drij; + pq2x -= q2ij*(pqt16 + pqt17)*eij[0]; + pq2y -= q2ij*(pqt16 + pqt17)*eij[1]; + pq2z -= q2ij*(pqt16 + pqt17)*eij[2]; + + fi[0] = pdx + pq1x + pq2x; + fi[2] = pdy + pq1y + pq2y; + fi[3] = pdz + pq1z + pq2z; + + } + +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairSpinNeel::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(cut_spin_neel,n+1,n+1,"pair/spin/soc/neel:cut_spin_neel"); + + memory->create(g1,n+1,n+1,"pair/spin/soc/neel:g1"); + memory->create(g1_mech,n+1,n+1,"pair/spin/soc/neel:g1_mech"); + memory->create(g2,n+1,n+1,"pair/spin/soc/neel:g2"); + memory->create(g3,n+1,n+1,"pair/spin/soc/neel:g3"); + + memory->create(q1,n+1,n+1,"pair/spin/soc/neel:q1"); + memory->create(q1_mech,n+1,n+1,"pair/spin/soc/neel:q1_mech"); + memory->create(q2,n+1,n+1,"pair/spin/soc/neel:q2"); + memory->create(q3,n+1,n+1,"pair/spin/soc/neel:q3"); + + memory->create(cutsq,n+1,n+1,"pair/spin/soc/neel:cutsq"); + +} + + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinNeel::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(&g1[i][j],sizeof(double),1,fp); + fwrite(&g1_mech[i][j],sizeof(double),1,fp); + fwrite(&g2[i][j],sizeof(double),1,fp); + fwrite(&g3[i][j],sizeof(double),1,fp); + fwrite(&q1[i][j],sizeof(double),1,fp); + fwrite(&q1_mech[i][j],sizeof(double),1,fp); + fwrite(&q2[i][j],sizeof(double),1,fp); + fwrite(&q3[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_neel[i][j],sizeof(double),1,fp); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinNeel::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(&g1[i][j],sizeof(double),1,fp); + fread(&g1_mech[i][j],sizeof(double),1,fp); + fread(&g2[i][j],sizeof(double),1,fp); + fread(&g2[i][j],sizeof(double),1,fp); + fread(&q1[i][j],sizeof(double),1,fp); + fread(&q1_mech[i][j],sizeof(double),1,fp); + fread(&q2[i][j],sizeof(double),1,fp); + fread(&q2[i][j],sizeof(double),1,fp); + fread(&cut_spin_neel[i][j],sizeof(double),1,fp); + } + MPI_Bcast(&g1[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&g1_mech[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&g2[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&g3[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&q1[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&q1_mech[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&q2[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&q3[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_neel[i][j],1,MPI_DOUBLE,0,world); + } + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairSpinNeel::write_restart_settings(FILE *fp) +{ + fwrite(&cut_spin_neel_global,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairSpinNeel::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + fread(&cut_spin_neel_global,sizeof(double),1,fp); + fread(&offset_flag,sizeof(int),1,fp); + fread(&mix_flag,sizeof(int),1,fp); + } + MPI_Bcast(&cut_spin_neel_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); +} diff --git a/src/SPIN/pair_spin_soc_neel.h b/src/SPIN/pair_spin_neel.h similarity index 61% rename from src/SPIN/pair_spin_soc_neel.h rename to src/SPIN/pair_spin_neel.h index 8e4d40c765..970844a2a7 100755 --- a/src/SPIN/pair_spin_soc_neel.h +++ b/src/SPIN/pair_spin_neel.h @@ -11,53 +11,57 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ + Contributing authors: Julien Tranchida (SNL) + Aidan Thompson (SNL) + + Please cite the related publication: + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. arXiv preprint arXiv:1801.10233. +------------------------------------------------------------------------- */ + #ifdef PAIR_CLASS -PairStyle(pair/spin/soc/neel,PairSpinSocNeel) +PairStyle(pair/spin/neel,PairSpinNeel) #else -#ifndef LMP_PAIR_SPIN_SOC_NEEL_H -#define LMP_PAIR_SPIN_SOC_NEEL_H +#ifndef LMP_PAIR_SPIN_NEEL_H +#define LMP_PAIR_SPIN_NEEL_H -#include "pair.h" +#include "pair_spin.h" namespace LAMMPS_NS { -class PairSpinSocNeel : public Pair { +class PairSpinNeel : public PairSpin { public: - PairSpinSocNeel(class LAMMPS *); - virtual ~PairSpinSocNeel(); - virtual void compute(int, int); + PairSpinNeel(class LAMMPS *); + virtual ~PairSpinNeel(); void settings(int, char **); void coeff(int, char **); void init_style(); double init_one(int, int); + void compute(int, int); + void compute_neel(int, int, double, double *, double *, double *, double *); + void compute_neel_mech(int, int, double, double *, double *, double *, double *); + void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - - void compute_soc_neel(int, int, double, double [3], double [3], double [3], double [3]); - void compute_soc_mech_neel(int, int, double, double [3], double [3], double [3], double [3]); - - int soc_neel_flag; // soc neel flag - int soc_mech_flag; // mech calculation flag - double cut_soc_global; - double **cut_soc_neel; // cutoff distance exchange + double cut_spin_neel_global; // global neel cutoff distance protected: - double hbar; - // pseudo-dipolar coeff. double **g1, **g1_mech; // exchange coeffs gij double **g2, **g3; // g1 in eV, g2 adim, g3 in Ang - // pseudo-quadrupolar coeff. double **q1, **q1_mech; // exchange coeffs qij double **q2, **q3; // q1 in eV, q2 adim, q3 in Ang + double **cut_spin_neel; // cutoff distance exchange void allocate(); }; diff --git a/src/SPIN/pair_spin_soc_neel.cpp b/src/SPIN/pair_spin_soc_neel.cpp deleted file mode 100755 index f40b0127fd..0000000000 --- a/src/SPIN/pair_spin_soc_neel.cpp +++ /dev/null @@ -1,623 +0,0 @@ -/* ---------------------------------------------------------------------- - 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 authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) -------------------------------------------------------------------------- */ - -#include -#include -#include - -#include "atom.h" -#include "comm.h" -#include "error.h" -#include "force.h" -#include "pair_hybrid.h" -#include "neighbor.h" -#include "neigh_list.h" -#include "neigh_request.h" -#include "math_const.h" -#include "memory.h" -#include "pair_spin_soc_neel.h" -#include "update.h" - -using namespace LAMMPS_NS; -using namespace MathConst; - -/* ---------------------------------------------------------------------- */ - -PairSpinSocNeel::PairSpinSocNeel(LAMMPS *lmp) : Pair(lmp) -{ - hbar = force->hplanck/MY_2PI; - - single_enable = 0; - soc_neel_flag = 0; - soc_mech_flag = 0; - - no_virial_fdotr_compute = 1; -} - -/* ---------------------------------------------------------------------- */ - -PairSpinSocNeel::~PairSpinSocNeel() -{ - if (allocated) { - memory->destroy(setflag); - - memory->destroy(cut_soc_neel); - - memory->destroy(g1); - memory->destroy(g1_mech); - memory->destroy(g2); - memory->destroy(g3); - - memory->destroy(q1); - memory->destroy(q1_mech); - memory->destroy(q2); - memory->destroy(q3); - - memory->destroy(cutsq); - } -} - -/* ---------------------------------------------------------------------- */ - -void PairSpinSocNeel::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype; - double evdwl,ecoul; - double xi[3], rij[3], eij[3]; - double spi[3], spj[3]; - double fi[3], fmi[3]; - double cut_soc_neel_2, cut_soc_global2; - double rsq, rd, inorm; - int *ilist,*jlist,*numneigh,**firstneigh; - - evdwl = ecoul = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; - cut_soc_global2 = cut_soc_global*cut_soc_global; - - double **x = atom->x; - double **f = atom->f; - double **fm = atom->fm; - double **sp = atom->sp; - int *type = atom->type; - int nlocal = atom->nlocal; - int newton_pair = force->newton_pair; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // pair spin computations - // loop over atoms and their neighbors - - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - // loop on neighbors - - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - - evdwl = 0.0; - - fi[0] = fi[1] = fi[2] = 0.0; - fmi[0] = fmi[1] = fmi[2] = 0.0; - rij[0] = rij[1] = rij[2] = 0.0; - - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - inorm = 1.0/sqrt(rsq); - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; - - itype = type[i]; - jtype = type[j]; - - // compute magnetic and mechanical components of soc_neel - - cut_soc_neel_2 = cut_soc_neel[itype][jtype]*cut_soc_neel[itype][jtype]; - if (rsq <= cut_soc_neel_2) { - compute_soc_neel(i,j,rsq,eij,fmi,spi,spj); - compute_soc_mech_neel(i,j,rsq,eij,fi,spi,spj); - } - - f[i][0] += fi[0]; - f[i][1] += fi[1]; - f[i][2] += fi[2]; - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; - fm[i][2] += fmi[2]; - - // check newton pair => see if needs correction - if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; - f[j][2] -= fi[2]; - } - - if (eflag) { - if (rsq <= cut_soc_neel_2) { - evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); - evdwl *= hbar; - } else evdwl = 0.0; - } - - if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); - } - } - - if (vflag_fdotr) virial_fdotr_compute(); - -} - -/* ---------------------------------------------------------------------- */ - -void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) -{ - int *type = atom->type; - int itype, jtype; - double gij, q1ij, q2ij, ra; - double pdx, pdy, pdz; - double pq1x, pq1y, pq1z; - double pq2x, pq2y, pq2z; - itype = type[i]; - jtype = type[j]; - - // pseudo-dipolar component - ra = rsq/g3[itype][jtype]/g3[itype][jtype]; - gij = 4.0*g1[itype][jtype]*ra; - gij *= (1.0-g2[itype][jtype]*ra); - gij *= exp(-ra); - - double scalar_eij_si = eij[0]*spi[0] + eij[1]*spi[1] + eij[2]*spi[2]; - double scalar_eij_sj = eij[0]*spj[0] + eij[1]*spj[1] + eij[2]*spj[2]; - double scalar_si_sj = spi[0]*spj[0] + spi[1]*spj[1] + spi[2]*spj[2]; - - double gij_eij_sj = gij*scalar_eij_sj; - double gij_3 = gij/3.0; - pdx = gij_eij_sj*eij[0] - gij_3*spj[0]; - pdy = gij_eij_sj*eij[1] - gij_3*spj[1]; - pdz = gij_eij_sj*eij[2] - gij_3*spj[2]; - - // pseudo-quadrupolar component - ra = rsq/q3[itype][jtype]/q3[itype][jtype]; - q1ij = 4.0*q1[itype][jtype]*ra; - q1ij *= (1.0-q2[itype][jtype]*ra); - q1ij *= exp(-ra); - q2ij = (-2.0*q1ij/9.0); - - double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; - pq1x = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[0]/3.0; - pq1y = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[1]/3.0; - pq1z = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[2]/3.0; - - double pqt1 = (scalar_eij_sj*scalar_eij_sj-scalar_si_sj/3.0); - pq1x += pqt1*(2.0*scalar_eij_si*eij[0] - spj[0]/3.0); - pq1y += pqt1*(2.0*scalar_eij_si*eij[1] - spj[1]/3.0); - pq1z += pqt1*(2.0*scalar_eij_si*eij[2] - spj[2]/3.0); - - pq1x *= q1ij; - pq1y *= q1ij; - pq1z *= q1ij; - - double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; - pq2x = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[0] + scalar_eij_sj_3*eij[0]; - pq2y = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[1] + scalar_eij_sj_3*eij[1]; - pq2z = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[2] + scalar_eij_sj_3*eij[2]; - - pq2x *= q2ij; - pq2y *= q2ij; - pq2z *= q2ij; - - // summing three contributions - fmi[0] += (pdx + pq1x + pq2x); - fmi[1] += (pdy + pq1y + pq2y); - fmi[2] += (pdz + pq1z + pq2z); - -} - -/* ---------------------------------------------------------------------- */ - -void PairSpinSocNeel::compute_soc_mech_neel(int i, int j, double rsq, double eij[3], double fi[3], double spi[3], double spj[3]) -{ - int *type = atom->type; - int itype, jtype; - double g_mech, gij, dgij; - double q_mech, q1ij, dq1ij; - double q2ij, dq2ij; - double pdx, pdy, pdz; - double pq1x, pq1y, pq1z; - double pq2x, pq2y, pq2z; - double ra, rr, drij, ig3, iq3; - itype = type[i]; - jtype = type[j]; - - drij = sqrt(rsq); - - double scalar_si_sj = spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]; - double scalar_eij_si = eij[0]*spi[0]+eij[1]*spi[1]+eij[2]*spi[2]; - double scalar_eij_sj = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; - - // pseudo-dipolar component - g_mech = g1_mech[itype][jtype]; - ig3 = 1.0/(g3[itype][jtype]*g3[itype][jtype]); - - ra = rsq*ig3; - rr = drij*ig3; - - gij = 4.0*g_mech*ra; - gij *= (1.0-g2[itype][jtype]*ra); - gij *= exp(-ra); - - dgij = 1.0-ra-g2[itype][jtype]*ra*(2.0-ra); - dgij *= 8.0*g_mech*rr*exp(-ra); - - double pdt1 = (dgij-2.0*gij/drij)*scalar_eij_si*scalar_eij_sj; - pdt1 -= scalar_si_sj*dgij/3.0; - double pdt2 = scalar_eij_sj*gij/drij; - double pdt3 = scalar_eij_si*gij/drij; - pdx = -(pdt1*eij[0] + pdt2*spi[0] + pdt3*spj[0]); - pdy = -(pdt1*eij[1] + pdt2*spi[1] + pdt3*spj[1]); - pdz = -(pdt1*eij[2] + pdt2*spi[2] + pdt3*spj[2]); - - // pseudo-quadrupolar component - q_mech = q1_mech[itype][jtype]; - iq3 = 1.0/(q3[itype][jtype]*q3[itype][jtype]); - - ra = rsq*iq3; - rr = drij*iq3; - - q1ij = 4.0*q_mech*ra; - q1ij *= (1.0-q2[itype][jtype]*ra); - q1ij *= exp(-ra); - q2ij = -2.0*q1ij/9.0; - - dq1ij = 1.0-ra-q2[itype][jtype]*ra*(2.0-ra); - dq1ij *= 8.0*q_mech*rr*exp(-ra); - dq2ij = -2.0*dq1ij/9.0; - - double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; - double scalar_eij_sj_2 = scalar_eij_sj*scalar_eij_sj; - double pqt1 = scalar_eij_si_2 - scalar_si_sj/3.0; - double pqt2 = scalar_eij_sj_2 - scalar_si_sj/3.0; - pq1x = dq1ij * pqt1 * pqt2 * eij[0]; - pq1y = dq1ij * pqt1 * pqt2 * eij[1]; - pq1z = dq1ij * pqt1 * pqt2 * eij[2]; - - double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; - double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; - double scalar_si_sj_2 = scalar_si_sj*scalar_si_sj; -/* double pqt3 = 2.0*scalar_eij_si*scalar_eij_sj_3/drij; - double pqt4 = 2.0*scalar_eij_sj*scalar_eij_si_3/drij; - double pqt5 = -2.0*scalar_si_sj*scalar_eij_si/(3.0*drij); - double pqt6 = -2.0*scalar_si_sj*scalar_eij_sj/(3.0*drij); -// pq1x += q1ij*(spi[0]*(pqt3+pqt6) + spj[0]*(pqt4+)); - pq1x += q1ij*(pqt3*spi[0]+pqt4*spj[0]+pqt5*spi[0]+pqt6*spi[0]); - pq1y += q1ij*(pqt3*spi[1]+pqt4*spj[1]+pqt5*spi[1]+pqt6*spj[1]); - pq1z += q1ij*(pqt3*spi[2]+pqt4*spj[2]+pqt5*spi[2]+pqt6*spj[2]); -*/ - double pqt3 = 2.0*scalar_eij_si*(scalar_eij_sj_2-scalar_si_sj/3.0)/drij; - double pqt4 = 2.0*scalar_eij_sj*(scalar_eij_si_2-scalar_si_sj/3.0)/drij; - pq1x += q1ij*(pqt3*spi[0] + pqt4*spj[0]); - pq1y += q1ij*(pqt3*spi[1] + pqt4*spj[1]); - pq1z += q1ij*(pqt3*spi[2] + pqt4*spj[2]); - double pqt7 = 4.0*scalar_eij_si_2*scalar_eij_sj_2/drij; - double pqt8 = 2.0*scalar_si_sj_2*scalar_eij_sj/(3.0*drij); - double pqt9 = 2.0*scalar_si_sj_2*scalar_eij_si/(3.0*drij); - pq1x -= q1ij*(pqt7 + pqt8 + pqt9)*eij[0]; - pq1y -= q1ij*(pqt7 + pqt8 + pqt9)*eij[1]; - pq1z -= q1ij*(pqt7 + pqt8 + pqt9)*eij[2]; - -/* - double pqt3 = 2.0*scalar_eij_si*(scalar_eij_sj_2-scalar_si_sj/3.0)/drij; - double pqt4 = 2.0*scalar_eij_sj*(scalar_eij_si_2-scalar_si_sj/3.0)/drij; - pq1x += q1ij*(pqt3*spi[0] + pqt4*spj[0]); - pq1y += q1ij*(pqt3*spi[1] + pqt4*spj[1]); - pq1z += q1ij*(pqt3*spi[2] + pqt4*spj[2]); -*/ - - //double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; - //double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; - double pqt10 = scalar_eij_sj*scalar_eij_si_3; - double pqt11 = scalar_eij_si*scalar_eij_sj_3; - pq2x = dq2ij*(pqt10 + pqt11)*eij[0]; - pq2y = dq2ij*(pqt10 + pqt11)*eij[1]; - pq2z = dq2ij*(pqt10 + pqt11)*eij[2]; - - double pqt12 = scalar_eij_si_3/drij; - double pqt13 = scalar_eij_sj_3/drij; - double pqt14 = 3.0*scalar_eij_sj*scalar_eij_si_2/drij; - double pqt15 = 3.0*scalar_eij_si*scalar_eij_sj_2/drij; - pq2x += q2ij*((pqt12+pqt15)*spj[0]+(pqt13+pqt14)*spi[0]); - pq2y += q2ij*((pqt12+pqt15)*spj[1]+(pqt13+pqt14)*spi[1]); - pq2z += q2ij*((pqt12+pqt15)*spj[2]+(pqt13+pqt14)*spi[2]); - double pqt16 = 4.0*scalar_eij_sj*scalar_eij_si_3/drij; - double pqt17 = 4.0*scalar_eij_si*scalar_eij_sj_3/drij; - pq2x -= q2ij*(pqt16 + pqt17)*eij[0]; - pq2y -= q2ij*(pqt16 + pqt17)*eij[1]; - pq2z -= q2ij*(pqt16 + pqt17)*eij[2]; - - fi[0] = pdx + pq1x + pq2x; - fi[2] = pdy + pq1y + pq2y; - fi[3] = pdz + pq1z + pq2z; - -} - -/* ---------------------------------------------------------------------- - allocate all arrays -------------------------------------------------------------------------- */ - -void PairSpinSocNeel::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(cut_soc_neel,n+1,n+1,"pair/spin/soc/neel:cut_soc_neel"); - - memory->create(g1,n+1,n+1,"pair/spin/soc/neel:g1"); - memory->create(g1_mech,n+1,n+1,"pair/spin/soc/neel:g1_mech"); - memory->create(g2,n+1,n+1,"pair/spin/soc/neel:g2"); - memory->create(g3,n+1,n+1,"pair/spin/soc/neel:g3"); - - memory->create(q1,n+1,n+1,"pair/spin/soc/neel:q1"); - memory->create(q1_mech,n+1,n+1,"pair/spin/soc/neel:q1_mech"); - memory->create(q2,n+1,n+1,"pair/spin/soc/neel:q2"); - memory->create(q3,n+1,n+1,"pair/spin/soc/neel:q3"); - - memory->create(cutsq,n+1,n+1,"pair/spin/soc/neel:cutsq"); - -} - -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairSpinSocNeel::settings(int narg, char **arg) -{ - if (narg < 1 || narg > 2) - error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); - - if (strcmp(update->unit_style,"metal") != 0) - error->all(FLERR,"Spin simulations require metal unit style"); - - cut_soc_global = force->numeric(FLERR,arg[0]); - - // reset cutoffs that have been explicitly set - - if (allocated) { - int i,j; - for (i = 1; i <= atom->ntypes; i++) { - for (j = i+1; j <= atom->ntypes; j++) { - if (setflag[i][j]) { - cut_soc_neel[i][j] = cut_soc_global; - } - } - } - } - -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type spin pairs (only one for now) -------------------------------------------------------------------------- */ - -void PairSpinSocNeel::coeff(int narg, char **arg) -{ - const double hbar = force->hplanck/MY_2PI; - - if (!allocated) allocate(); - - // set soc_mech_flag to 1 if magneto-mech simulation - //no longer correct: can be hybrid without magneto-mech => needs review/correction - if (strstr(force->pair_style,"pair/spin")) { - soc_mech_flag = 0; - } else if (strstr(force->pair_style,"hybrid/overlay")) { - soc_mech_flag = 1; - } else error->all(FLERR,"Incorrect args in pair_style command"); - - - if (strcmp(arg[2],"neel") == 0){ - if (narg != 10) error->all(FLERR,"Incorrect args in pair_style command"); - soc_neel_flag = 1; - - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double k1 = force->numeric(FLERR,arg[4]); - const double k2 = force->numeric(FLERR,arg[5]); - const double k3 = force->numeric(FLERR,arg[6]); - const double l1 = force->numeric(FLERR,arg[7]); - const double l2 = force->numeric(FLERR,arg[8]); - const double l3 = force->numeric(FLERR,arg[9]); - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_soc_neel[i][j] = rij; - g1[i][j] = k1/hbar; - q1[i][j] = l1/hbar; - if (soc_mech_flag) { - g1_mech[i][j] = k1; - q1_mech[i][j] = l1; - } else { - g1_mech[i][j] = 0.0; - } - g2[i][j] = k2; - g3[i][j] = k3; - q2[i][j] = l2; - q3[i][j] = l3; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else error->all(FLERR,"Incorrect args in pair_style command"); - -} - -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -void PairSpinSocNeel::init_style() -{ - if (!atom->sp_flag) - error->all(FLERR,"Pair spin requires atom/spin style"); - - neighbor->request(this,instance_me); - - // check this half/full request => to be verified - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->full = 1; - -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairSpinSocNeel::init_one(int i, int j) -{ - - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - - return cut_soc_global; -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairSpinSocNeel::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]) { - if (soc_neel_flag){ - fwrite(&g1[i][j],sizeof(double),1,fp); - fwrite(&g1_mech[i][j],sizeof(double),1,fp); - fwrite(&g2[i][j],sizeof(double),1,fp); - fwrite(&g3[i][j],sizeof(double),1,fp); - fwrite(&q1[i][j],sizeof(double),1,fp); - fwrite(&q1_mech[i][j],sizeof(double),1,fp); - fwrite(&q2[i][j],sizeof(double),1,fp); - fwrite(&q3[i][j],sizeof(double),1,fp); - fwrite(&cut_soc_neel[i][j],sizeof(double),1,fp); - } - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairSpinSocNeel::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(&g1[i][j],sizeof(double),1,fp); - fread(&g1_mech[i][j],sizeof(double),1,fp); - fread(&g2[i][j],sizeof(double),1,fp); - fread(&g2[i][j],sizeof(double),1,fp); - fread(&q1[i][j],sizeof(double),1,fp); - fread(&q1_mech[i][j],sizeof(double),1,fp); - fread(&q2[i][j],sizeof(double),1,fp); - fread(&q2[i][j],sizeof(double),1,fp); - fread(&cut_soc_neel[i][j],sizeof(double),1,fp); - } - MPI_Bcast(&g1[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&g1_mech[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&g2[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&g3[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&q1[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&q1_mech[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&q2[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&q3[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_soc_neel[i][j],1,MPI_DOUBLE,0,world); - } - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairSpinSocNeel::write_restart_settings(FILE *fp) -{ - fwrite(&cut_soc_global,sizeof(double),1,fp); - fwrite(&offset_flag,sizeof(int),1,fp); - fwrite(&mix_flag,sizeof(int),1,fp); -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairSpinSocNeel::read_restart_settings(FILE *fp) -{ - if (comm->me == 0) { - fread(&cut_soc_global,sizeof(double),1,fp); - fread(&offset_flag,sizeof(int),1,fp); - fread(&mix_flag,sizeof(int),1,fp); - } - MPI_Bcast(&cut_soc_global,1,MPI_DOUBLE,0,world); - MPI_Bcast(&offset_flag,1,MPI_INT,0,world); - MPI_Bcast(&mix_flag,1,MPI_INT,0,world); -} diff --git a/src/pair_hybrid.h b/src/pair_hybrid.h index 17b6879957..c01f57026b 100644 --- a/src/pair_hybrid.h +++ b/src/pair_hybrid.h @@ -31,7 +31,7 @@ class PairHybrid : public Pair { friend class FixOMP; friend class Force; friend class Respa; - friend class FixNVESpin; + friend class PairSpin; friend class Info; public: PairHybrid(class LAMMPS *); From 1b8669c6207a6965e842ded89016a20147a44ea1 Mon Sep 17 00:00:00 2001 From: julient31 Date: Fri, 20 Apr 2018 11:35:32 -0600 Subject: [PATCH 089/675] Commit JT 042018, new spin/precession and pair/spin (peru virtual) --- ...tion.jpg => pair_spin_dmi_interaction.jpg} | Bin ...tion.tex => pair_spin_dmi_interaction.tex} | 0 doc/src/fix_precession_spin.txt | 22 +- doc/src/pair_spin_dmi.txt | 8 +- doc/src/pair_spin_exchange.txt | 8 +- doc/src/pair_spin_me.txt | 10 +- doc/src/pair_spin_neel.txt | 8 +- examples/SPIN/bfo/in.spin.bfo | 8 +- examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc | 21 +- examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 8 +- examples/SPIN/iron/in.spin.iron | 4 +- examples/SPIN/nickel/in.spin.nickel | 4 +- src/SPIN/fix_nve_spin.cpp | 120 ++-- src/SPIN/fix_nve_spin.h | 14 +- src/SPIN/fix_precession_spin.cpp | 64 ++- src/SPIN/fix_precession_spin.h | 7 +- src/SPIN/pair_spin.cpp | 526 +----------------- src/SPIN/pair_spin.h | 54 +- src/SPIN/pair_spin_dmi.cpp | 148 +++-- src/SPIN/pair_spin_dmi.h | 5 +- src/SPIN/pair_spin_exchange.cpp | 118 +++- src/SPIN/pair_spin_exchange.h | 13 +- src/SPIN/pair_spin_me.cpp | 105 +++- src/SPIN/pair_spin_me.h | 5 +- src/SPIN/pair_spin_neel.cpp | 103 +++- src/SPIN/pair_spin_neel.h | 5 +- src/pair_hybrid.h | 1 - 27 files changed, 579 insertions(+), 810 deletions(-) rename doc/src/Eqs/{pair_spin_soc_dmi_interaction.jpg => pair_spin_dmi_interaction.jpg} (100%) rename doc/src/Eqs/{pair_spin_soc_dmi_interaction.tex => pair_spin_dmi_interaction.tex} (100%) diff --git a/doc/src/Eqs/pair_spin_soc_dmi_interaction.jpg b/doc/src/Eqs/pair_spin_dmi_interaction.jpg similarity index 100% rename from doc/src/Eqs/pair_spin_soc_dmi_interaction.jpg rename to doc/src/Eqs/pair_spin_dmi_interaction.jpg diff --git a/doc/src/Eqs/pair_spin_soc_dmi_interaction.tex b/doc/src/Eqs/pair_spin_dmi_interaction.tex similarity index 100% rename from doc/src/Eqs/pair_spin_soc_dmi_interaction.tex rename to doc/src/Eqs/pair_spin_dmi_interaction.tex diff --git a/doc/src/fix_precession_spin.txt b/doc/src/fix_precession_spin.txt index 9ef7a7230c..4133d7dd57 100644 --- a/doc/src/fix_precession_spin.txt +++ b/doc/src/fix_precession_spin.txt @@ -14,11 +14,11 @@ fix ID group precession/spin style args :pre ID, group are documented in "fix"_fix.html command :ulb,l precession/spin = style name of this fix command :l -style = {zeeman} or {aniso} :l +style = {zeeman} or {anisotropy} :l {zeeman} args = H x y z H = intensity of the magnetic field (in Tesla) x y z = vector direction of the field - {aniso} args = K x y z + {anisotropy} args = K x y z K = intensity of the magnetic anisotropy (in eV) x y z = vector direction of the anisotropy :pre :ule @@ -26,7 +26,8 @@ style = {zeeman} or {aniso} :l [Examples:] fix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0 -fix 1 all precession/spin aniso 0.001 0.0 0.0 1.0 :pre +fix 1 all precession/spin anisotropy 0.001 0.0 0.0 1.0 +fix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0 anisotropy 0.001 0.0 0.0 1.0 :pre [Description:] @@ -41,7 +42,7 @@ magnetic field: with mu0 the vacuum permeability, muB the Bohr magneton (muB = 5.788 eV/T in metal units). -Style {aniso} is used to simulate an easy axis or an easy plane +Style {anisotropy} is used to simulate an easy axis or an easy plane for the magnetic spins in the defined group: :c,image(Eqs/force_spin_aniso.jpg) @@ -52,10 +53,23 @@ If K>0, an easy axis is defined, and if K<0, an easy plane is defined. In both cases, the choice of (x y z) imposes the vector direction for the force. Only the direction of the vector is important; it's length is ignored. +Both styles can be combined within one single command line. + :line [Restart, fix_modify, output, run start/stop, minimize info:] +By default, the energy associated to this fix is not added to the potential +energy of the system. +The "fix_modify"_fix_modify.html {energy} option is supported by this fix +to add this magnetic potential energy to the potential energy of the system, + +fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +fix_modify 1 energy yes :pre + +This fix computes a global scalar which can be accessed by various +"output commands"_Section_howto.html#howto_15. + No information about this fix is written to "binary restart files"_restart.html. diff --git a/doc/src/pair_spin_dmi.txt b/doc/src/pair_spin_dmi.txt index e2987ce1df..9ad74d567e 100644 --- a/doc/src/pair_spin_dmi.txt +++ b/doc/src/pair_spin_dmi.txt @@ -6,11 +6,11 @@ :line -pair_style pair/spin/dmi command :h3 +pair_style spin/dmi command :h3 [Syntax:] -pair_style pair/spin/dmi cutoff :pre +pair_style spin/dmi cutoff :pre cutoff = global cutoff pair (distance in metal units) :ulb,l @@ -18,13 +18,13 @@ cutoff = global cutoff pair (distance in metal units) :ulb,l [Examples:] -pair_style pair/spin/dmi 4.0 +pair_style spin/dmi 4.0 pair_coeff * * dmi 2.6 0.001 1.0 0.0 0.0 pair_coeff 1 2 dmi 4.0 0.00109 0.0 0.0 1.0 :pre [Description:] -Style {pair/spin/dmi} computes the Dzyaloshinskii-Moriya (DM) interaction +Style {spin/dmi} computes the Dzyaloshinskii-Moriya (DM) interaction between pairs of magnetic spins: :c,image(Eqs/pair_spin_dmi_interaction.jpg) diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index e6938afd40..90a75705c7 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -6,11 +6,11 @@ :line -pair_style pair/spin/exchange command :h3 +pair_style spin/exchange command :h3 [Syntax:] -pair_style pair/spin/exchange cutoff :pre +pair_style spin/exchange cutoff :pre cutoff = global cutoff pair (distance in metal units) :ulb,l @@ -18,13 +18,13 @@ cutoff = global cutoff pair (distance in metal units) :ulb,l [Examples:] -pair_style pair/spin/exchange 4.0 +pair_style spin/exchange 4.0 pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 pair_coeff 1 2 exchange 6.0 -0.01575 0.0 1.965 :pre [Description:] -Style {pair/spin/exchange} computes the exchange interaction between +Style {spin/exchange} computes the exchange interaction between pairs of magnetic spins: :c,image(Eqs/pair_spin_exchange_interaction.jpg) diff --git a/doc/src/pair_spin_me.txt b/doc/src/pair_spin_me.txt index bc4b6b840b..54c6d43300 100644 --- a/doc/src/pair_spin_me.txt +++ b/doc/src/pair_spin_me.txt @@ -6,11 +6,11 @@ :line -pair_style pair/spin/me command :h3 +pair_style spin/me command :h3 [Syntax:] -pair_style pair/spin/me cutoff :pre +pair_style spin/me cutoff :pre cutoff = global cutoff pair (distance in metal units) :ulb,l @@ -18,12 +18,12 @@ cutoff = global cutoff pair (distance in metal units) :ulb,l [Examples:] -pair_style pair/spin/me 4.5 -pair_coeff * * pair/spin/me me 4.5 0.00109 1.0 1.0 1.0 :pre +pair_style spin/me 4.5 +pair_coeff * * me 4.5 0.00109 1.0 1.0 1.0 :pre [Description:] -Style {pair/spin/me} computes a magneto-electric interaction between +Style {spin/me} computes a magneto-electric interaction between pairs of magnetic spins. According to the derivation reported in "(Katsura)"_#Katsura1, this interaction is defined as: diff --git a/doc/src/pair_spin_neel.txt b/doc/src/pair_spin_neel.txt index 84893fecb1..5c82b6ef6f 100644 --- a/doc/src/pair_spin_neel.txt +++ b/doc/src/pair_spin_neel.txt @@ -6,11 +6,11 @@ :line -pair_style pair/spin/neel command :h3 +pair_style spin/neel command :h3 [Syntax:] -pair_style pair/spin/neel cutoff :pre +pair_style spin/neel cutoff :pre cutoff = global cutoff pair (distance in metal units) :ulb,l @@ -18,13 +18,13 @@ cutoff = global cutoff pair (distance in metal units) :ulb,l [Examples:] -pair_style pair/spin/neel 4.0 +pair_style spin/neel 4.0 pair_coeff * * neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 pair_coeff 1 2 neel 4.0 0.0048 0.234 1.168 0.0 0.0 1.0 :pre [Description:] -Style {pair/spin/neel} computes the Neel pair anisotropy model +Style {spin/neel} computes the Neel pair anisotropy model between pairs of magnetic spins: :c,image(Eqs/pair_spin_dmi_interaction.jpg) diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index dfeb48eb08..55cc53446d 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -21,16 +21,16 @@ mass 1 1.0 set group all spin/random 11 2.50 -pair_style hybrid/overlay pair/spin/exchange 6.0 pair/spin/me 4.5 -pair_coeff * * pair/spin/exchange exchange 6.0 -0.01575 0.0 1.965 -pair_coeff * * pair/spin/me me 4.5 0.000109 1.0 1.0 1.0 +pair_style hybrid/overlay spin/exchange 6.0 spin/me 4.5 +pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965 +pair_coeff * * spin/me me 4.5 0.000109 1.0 1.0 1.0 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 fix 1 all precession/spin anisotropy 0.0000033 0.0 0.0 1.0 fix 2 all langevin/spin 0.0 0.1 21 -fix 3 all nve/spin lattice yes +fix 3 all nve/spin lattice no timestep 0.0002 diff --git a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc index 45d9d983bd..c1d7e4f903 100644 --- a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc +++ b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc @@ -19,17 +19,20 @@ create_atoms 1 box mass 1 58.93 -set group all spin/random 31 1.72 +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 velocity all create 100 4928459 rot yes dist gaussian -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/cobalt_fcc/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 -fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +fix_modify 1 energy yes + fix 2 all langevin/spin 0.0 0.0 21 fix 3 all nve/spin lattice yes @@ -42,16 +45,20 @@ compute out_pe all pe compute out_ke all ke compute out_temp all temp +thermo_style custom f_1 + +variable magx equal c_out_mag[1] +variable magy equal c_out_mag[2] variable magz equal c_out_mag[3] variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo_style custom step time v_magnorm v_emag temp etotal -thermo 10 +thermo_style custom step time f_1 v_magx v_magy v_magnorm v_emag temp etotal +thermo 50 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] -run 100 +run 1000 diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index 24d19a2252..127e24bf2b 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -22,11 +22,11 @@ mass 1 58.93 set group all spin/random 31 1.72 velocity all create 100 4928459 rot yes dist gaussian -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +#pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 -#pair_coeff * * pair/spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 +pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 +#pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 diff --git a/examples/SPIN/iron/in.spin.iron b/examples/SPIN/iron/in.spin.iron index 83301309e0..0f40a5af21 100644 --- a/examples/SPIN/iron/in.spin.iron +++ b/examples/SPIN/iron/in.spin.iron @@ -22,9 +22,9 @@ mass 1 55.845 set group all spin/random 31 2.2 velocity all create 100 4928459 rot yes dist gaussian -pair_style hybrid/overlay eam/alloy pair/spin/exchange 3.5 +pair_style hybrid/overlay eam/alloy spin/exchange 3.5 pair_coeff * * eam/alloy ../examples/SPIN/iron/Fe_Mishin2006.eam.alloy Fe -pair_coeff * * pair/spin/exchange exchange 3.4 0.02726 0.2171 1.841 +pair_coeff * * spin/exchange exchange 3.4 0.02726 0.2171 1.841 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 diff --git a/examples/SPIN/nickel/in.spin.nickel b/examples/SPIN/nickel/in.spin.nickel index 0b1faa5319..2fa16b8a1b 100644 --- a/examples/SPIN/nickel/in.spin.nickel +++ b/examples/SPIN/nickel/in.spin.nickel @@ -23,9 +23,9 @@ set group all spin/random 31 0.63 #set group all spin 0.63 0.0 0.0 1.0 velocity all create 100 4928459 rot yes dist gaussian -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/nickel/Ni99.eam.alloy Ni -pair_coeff * * pair/spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 +pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index c4dca269ad..2d3f73cd77 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -58,17 +58,18 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), rsec(NULL), stack_head(NULL), stack_foot(NULL), backward_stacks(NULL), forward_stacks(NULL), - lockpairspin(NULL) + pair(NULL), spin_pairs(NULL) { if (narg < 4) error->all(FLERR,"Illegal fix/NVE/spin command"); time_integrate = 1; - sector_flag = NONE; lattice_flag = 1; - nlocal_max = 0; + npairs = 0; + npairspin = 0; + // checking if map array or hash is defined @@ -109,9 +110,8 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : // initialize the magnetic interaction flags - magpair_flag = 0; - magprecession_flag = 0; - zeeman_flag = aniso_flag = 0; + pair_spin_flag = 0; + precession_spin_flag = 0; maglangevin_flag = 0; tdamp_flag = temp_flag = 0; @@ -126,7 +126,7 @@ FixNVESpin::~FixNVESpin() memory->destroy(stack_foot); memory->destroy(forward_stacks); memory->destroy(backward_stacks); - delete lockpairspin; + delete [] spin_pairs; } /* ---------------------------------------------------------------------- */ @@ -151,28 +151,60 @@ void FixNVESpin::init() dtf = 0.5 * update->dt * force->ftm2v; dts = 0.25 * update->dt; - // ptrs on PairSpin classes + // set ptrs on Pair/Spin styles - lockpairspin = new PairSpin(lmp); - magpair_flag = lockpairspin->init_pair(); - if (magpair_flag != 0 && magpair_flag != 1) - error->all(FLERR,"Incorrect value of magpair_flag"); + // loop 1: obtain # of Pairs, and # of Pair/Spin styles + + if (force->pair_match("spin",0,0)) { // only one Pair/Spin style + pair = force->pair_match("spin",0,0); + npairs = pair->instance_total; + npairspin = 1; + } else if (force->pair_match("spin",0,1)) { // more than one Pair/Spin style + pair = force->pair_match("spin",0,1); + npairs = pair->instance_total; + for (int i = 0; ipair_match("spin",0,i)) { + npairspin ++; + } + } + } + + // init length of vector of ptrs to Pair/Spin styles + + if (npairspin > 0) { + spin_pairs = new PairSpin*[npairspin]; + } + + // loop 2: fill vector with ptrs to Pair/Spin styles + + int count = 0; + if (npairspin == 1) { + count = 1; + spin_pairs[0] = (PairSpin *) force->pair_match("spin",0,0); + } else if (npairspin > 1) { + for (int i = 0; ipair_match("spin",0,i)) { + spin_pairs[count] = (PairSpin *) force->pair_match("spin",0,i); + count++; + } + } + } + + if (count != npairspin) + error->all(FLERR,"Incorrect number of spin pairs"); + + if (npairspin >= 1) pair_spin_flag = 1; // ptrs FixPrecessionSpin classes int iforce; for (iforce = 0; iforce < modify->nfix; iforce++) { if (strstr(modify->fix[iforce]->style,"precession/spin")) { - magprecession_flag = 1; + precession_spin_flag = 1; lockprecessionspin = (FixPrecessionSpin *) modify->fix[iforce]; } } - if (magprecession_flag) { - if (lockprecessionspin->zeeman_flag == 1) zeeman_flag = 1; - if (lockprecessionspin->aniso_flag == 1) aniso_flag = 1; - } - // ptrs on the FixLangevinSpin class for (iforce = 0; iforce < modify->nfix; iforce++) { @@ -307,13 +339,13 @@ void FixNVESpin::initial_integrate(int vflag) i = backward_stacks[i]; } } - } else if (sector_flag == 0) { // serial seq. update + } else if (sector_flag == 0) { // serial seq. update comm->forward_comm(); // comm. positions of ghost atoms - for (int i = 0; i < nlocal; i++){ // advance quarter s for nlocal-1 + for (int i = 0; i < nlocal; i++){ // advance quarter s for nlocal-1 ComputeInteractionsSpin(i); AdvanceSingleSpin(i); } - for (int i = nlocal-2; i >= 0; i--){ // advance quarter s for nlocal-1 + for (int i = nlocal-1; i >= 0; i--){ // advance quarter s for nlocal-1 ComputeInteractionsSpin(i); AdvanceSingleSpin(i); } @@ -381,9 +413,10 @@ void FixNVESpin::ComputeInteractionsSpin(int i) double **sp = atom->sp; double **fm = atom->fm; - + int eflag = 1; int vflag = 0; + int pair_compute_flag = 1; // force computation for spin i @@ -394,20 +427,21 @@ void FixNVESpin::ComputeInteractionsSpin(int i) fmi[0] = fmi[1] = fmi[2] = 0.0; - // evaluate magnetic pair interactions + // update magnetic pair interactions - if (magpair_flag) lockpairspin->compute_pair_single_spin(i,fmi); - - // evaluate magnetic precession interactions - - if (magprecession_flag) { // magnetic precession - if (zeeman_flag) { // zeeman - lockprecessionspin->compute_zeeman(i,fmi); - } - if (aniso_flag) { // aniso - lockprecessionspin->compute_anisotropy(i,spi,fmi); + if (pair_spin_flag) { + for (int k = 0; k < npairspin; k++) { + spin_pairs[k]->compute_single_pair(i,fmi); } } + + // update magnetic precession interactions + + if (precession_spin_flag) { + lockprecessionspin->compute_single_precession(i,spi,fmi); + } + + // update langevin damping and random force if (maglangevin_flag) { // mag. langevin if (tdamp_flag) { // transverse damping @@ -418,7 +452,7 @@ void FixNVESpin::ComputeInteractionsSpin(int i) } } - // replace the magnetic force fm[i] by its new value + // replace the magnetic force fm[i] by its new value fmi fm[i][0] = fmi[0]; fm[i][1] = fmi[1]; @@ -445,10 +479,18 @@ void FixNVESpin::sectoring() const double rsy = subhi[1] - sublo[1]; const double rsz = subhi[2] - sublo[2]; - // temp - //const double rv = 2.0; - //const double rv = lockpairspinexchange->cut_spin_exchange_global; - const double rv = lockpairspin->larger_cutoff; + // extract larger cutoff from PairSpin styles + + double rv, cutoff; + rv = cutoff = 0.0; + int dim = 0; + for (int i = 0; i < npairspin ; i++) { + cutoff = *((double *) spin_pairs[i]->extract("cut",dim)); + rv = MAX(rv,cutoff); + } + + if (rv == 0.0) + error->all(FLERR,"Illegal sectoring operation"); double rax = rsx/rv; double ray = rsy/rv; @@ -509,7 +551,7 @@ void FixNVESpin::AdvanceSingleSpin(int i) double **sp = atom->sp; double **fm = atom->fm; double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy,dts2; - double cp[3],g[3]; + double cp[3],g[3]; cp[0] = cp[1] = cp[2] = 0.0; g[0] = g[1] = g[2] = 0.0; diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index 89824a9bd1..686c391299 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -67,18 +67,22 @@ friend class PairSpin; int nlocal_max; // max value of nlocal (for lists size) - int magpair_flag; // magnetic pair flags - int magprecession_flag; // magnetic precession flags - int zeeman_flag, aniso_flag; + int pair_spin_flag; // magnetic pair flags + int precession_spin_flag; // magnetic precession flags int maglangevin_flag; // magnetic langevin flags int tdamp_flag, temp_flag; - // pointers to magnetic interaction classes + // pointers to magnetic fixes - class PairSpin *lockpairspin; class FixPrecessionSpin *lockprecessionspin; class FixLangevinSpin *locklangevinspin; + // pointers to magnetic pair styles + + int npairs, npairspin; // # of pairs, and # of spin pairs + class Pair *pair; + class PairSpin **spin_pairs; // vector of spin pairs + // sectoring variables int nsectors; diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index c5fde83fe6..67984a6009 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -43,14 +43,12 @@ using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; -enum{ZEEMAN,ANISOTROPY}; enum{CONSTANT,EQUAL}; /* ---------------------------------------------------------------------- */ FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { - if (narg < 7) error->all(FLERR,"Illegal precession/spin command"); // magnetic interactions coded for cartesian coordinates @@ -75,26 +73,28 @@ FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lm Kax = Kay = Kaz = 0.0; zeeman_flag = aniso_flag = 0; - - if (strcmp(arg[3],"zeeman") == 0) { - if (narg != 8) error->all(FLERR,"Illegal precession/spin command"); - style = ZEEMAN; - zeeman_flag = 1; - H_field = force->numeric(FLERR,arg[4]); - nhx = force->numeric(FLERR,arg[5]); - nhy = force->numeric(FLERR,arg[6]); - nhz = force->numeric(FLERR,arg[7]); - magfieldstyle = CONSTANT; - } else if (strcmp(arg[3],"anisotropy") == 0) { - if (narg != 8) error->all(FLERR,"Illegal precession/spin command"); - style = ANISOTROPY; - aniso_flag = 1; - Ka = force->numeric(FLERR,arg[4]); - nax = force->numeric(FLERR,arg[5]); - nay = force->numeric(FLERR,arg[6]); - naz = force->numeric(FLERR,arg[7]); - } else error->all(FLERR,"Illegal precession/spin command"); - + + int iarg = 3; + while (iarg < narg) { + if (strcmp(arg[iarg],"zeeman") == 0) { + if (iarg+4 > narg) error->all(FLERR,"Illegal fix precession/spin command"); + zeeman_flag = 1; + H_field = force->numeric(FLERR,arg[iarg+1]); + nhx = force->numeric(FLERR,arg[iarg+2]); + nhy = force->numeric(FLERR,arg[iarg+3]); + nhz = force->numeric(FLERR,arg[iarg+4]); + iarg += 5; + } else if (strcmp(arg[iarg],"anisotropy") == 0) { + if (iarg+4 > narg) error->all(FLERR,"Illegal fix precession/spin command"); + aniso_flag = 1; + Ka = force->numeric(FLERR,arg[iarg+1]); + nax = force->numeric(FLERR,arg[iarg+2]); + nay = force->numeric(FLERR,arg[iarg+3]); + naz = force->numeric(FLERR,arg[iarg+4]); + iarg += 5; + } else error->all(FLERR,"Illegal precession/spin command"); + } + degree2rad = MY_PI/180.0; time_origin = update->ntimestep; @@ -171,7 +171,7 @@ void FixPrecessionSpin::setup(int vflag) void FixPrecessionSpin::post_force(int vflag) { - // update gravity due to variables + // update mag field with time (potential improvement) if (varflag != CONSTANT) { modify->clearstep_compute(); @@ -209,7 +209,19 @@ void FixPrecessionSpin::post_force(int vflag) fm[i][0] += fmi[0]; fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - } + } +} + +/* ---------------------------------------------------------------------- */ + +void FixPrecessionSpin::compute_single_precession(int i, double spi[3], double fmi[3]) +{ + if (zeeman_flag) { + compute_zeeman(i,fmi); + } + if (aniso_flag) { + compute_anisotropy(i,spi,fmi); + } } @@ -244,12 +256,12 @@ void FixPrecessionSpin::post_force_respa(int vflag, int ilevel, int iloop) void FixPrecessionSpin::set_magneticprecession() { - if (style == ZEEMAN) { + if (zeeman_flag) { hx = H_field*nhx; hy = H_field*nhy; hz = H_field*nhz; } - if (style == ANISOTROPY) { + if (aniso_flag) { Kax = 2.0*Ka*nax; Kay = 2.0*Ka*nay; Kaz = 2.0*Ka*naz; diff --git a/src/SPIN/fix_precession_spin.h b/src/SPIN/fix_precession_spin.h index 71155ddd2b..5e1047ff67 100644 --- a/src/SPIN/fix_precession_spin.h +++ b/src/SPIN/fix_precession_spin.h @@ -47,9 +47,10 @@ class FixPrecessionSpin : public Fix { virtual void post_force_respa(int, int, int); double compute_scalar(); - int zeeman_flag, aniso_flag; - void compute_zeeman(int, double [3]); - void compute_anisotropy(int, double [3], double [3]); + int zeeman_flag, aniso_flag; + void compute_single_precession(int, double *, double *); + void compute_zeeman(int, double *); + void compute_anisotropy(int, double *, double *); protected: int style; // style of the magnetic precession diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index a40f2a86b7..d0df3868df 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -52,47 +52,16 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp), -lockfixnvespin(NULL), pair_keyword(NULL), pair_spin_keywords(NULL), -exchange_spin_styles(NULL), dmi_spin_styles(NULL), -neel_spin_styles(NULL), me_spin_styles(NULL) +PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp) { hbar = force->hplanck/MY_2PI; single_enable = 0; no_virial_fdotr_compute = 1; - lattice_flag = 0; - - // init # of Pair/Spin styles - - nspinstyle = 0; // # of PairSpin styles - nexchangespinstyle = 0; // # of PairSpinExchange styles - ndmispinstyle = 0; // # of PairSpinDmi styles - nneelspinstyle = 0; // # of PairSpinNeel styles - nmespinstyle = 0; // # of PairSpinMe styles - - // init larger Pair/Spin style cutoff - - larger_cutoff = 0.0; } /* ---------------------------------------------------------------------- */ -PairSpin::~PairSpin() -{ - - if (nspinstyle) { - for (int m = 0; m < nspinstyle; m++) { - delete [] pair_spin_keywords[m]; - } - } - delete [] pair_keyword; - delete [] exchange_spin_styles; - delete [] dmi_spin_styles; - delete [] neel_spin_styles; - delete [] me_spin_styles; - delete [] pair_spin_keywords; - -} +PairSpin::~PairSpin() {} /* ---------------------------------------------------------------------- global settings @@ -110,488 +79,6 @@ void PairSpin::settings(int narg, char **arg) } -/* ---------------------------------------------------------------------- - global compute, defined in Pair/Spin subclasses -------------------------------------------------------------------------- */ - -void PairSpin::compute(int eflag, int vflag) {} - -/* ---------------------------------------------------------------------- - compute all Pair/Spin interactions for atom ii -------------------------------------------------------------------------- */ - -void PairSpin::compute_pair_single_spin(int ii, double fmi[3]) -{ - const int nlocal = atom->nlocal; - int *type = atom->type; - double **x = atom->x; - double **sp = atom->sp; - - double xi[3], rij[3], eij[3]; - double spi[3], spj[3]; - - int iexchange, idmi, ineel, ime; - int i,j,jj,inum,jnum,itype,jtype; - int *ilist,*jlist,*numneigh,**firstneigh; - - double rsq, rd, inorm; - - iexchange = idmi = ineel = ime = 0; - - for (int ipair=0; ipair < nspinstyle; ipair++) { - - if (strstr(pair_spin_keywords[ipair],"pair/spin/exchange")) { - inum = exchange_spin_styles[iexchange]->list->inum; - ilist = exchange_spin_styles[iexchange]->list->ilist; - numneigh = exchange_spin_styles[iexchange]->list->numneigh; - firstneigh = exchange_spin_styles[iexchange]->list->firstneigh; - - i = ilist[ii]; - - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (int jj = 0; jj < jnum; jj++) { - - j = jlist[jj]; - j &= NEIGHMASK; - itype = type[ii]; - jtype = type[j]; - - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - inorm = 1.0/sqrt(rsq); - - exchange_spin_styles[iexchange]->compute_exchange(i,j,rsq,fmi,spi,spj); - } - iexchange++; - } - - if (strstr(pair_spin_keywords[ipair],"pair/spin/dmi")) { - inum = dmi_spin_styles[idmi]->list->inum; - ilist = dmi_spin_styles[idmi]->list->ilist; - numneigh = dmi_spin_styles[idmi]->list->numneigh; - firstneigh = dmi_spin_styles[idmi]->list->firstneigh; - - i = ilist[ii]; - - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (int jj = 0; jj < jnum; jj++) { - - j = jlist[jj]; - j &= NEIGHMASK; - itype = type[ii]; - jtype = type[j]; - - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - inorm = 1.0/sqrt(rsq); - - dmi_spin_styles[idmi]->compute_dmi(i,j,rsq,fmi,spi,spj); - } - idmi++; - } - - if (strstr(pair_spin_keywords[ipair],"pair/spin/neel")) { - inum = neel_spin_styles[ineel]->list->inum; - ilist = neel_spin_styles[ineel]->list->ilist; - numneigh = neel_spin_styles[ineel]->list->numneigh; - firstneigh = neel_spin_styles[ineel]->list->firstneigh; - - i = ilist[ii]; - - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (int jj = 0; jj < jnum; jj++) { - - j = jlist[jj]; - j &= NEIGHMASK; - itype = type[ii]; - jtype = type[j]; - - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - inorm = 1.0/sqrt(rsq); - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; - - neel_spin_styles[ineel]->compute_neel(i,j,rsq,eij,fmi,spi,spj); - } - ineel++; - } - - if (strstr(pair_spin_keywords[ipair],"pair/spin/me")) { - inum = me_spin_styles[ime]->list->inum; - ilist = me_spin_styles[ime]->list->ilist; - numneigh = me_spin_styles[ime]->list->numneigh; - firstneigh = me_spin_styles[ime]->list->firstneigh; - - i = ilist[ii]; - - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (int jj = 0; jj < jnum; jj++) { - - j = jlist[jj]; - j &= NEIGHMASK; - itype = type[ii]; - jtype = type[j]; - - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - inorm = 1.0/sqrt(rsq); - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; - - me_spin_styles[ime]->compute_me(i,j,rsq,eij,fmi,spi,spj); - } - ime++; - } - - } - -} - -/* ---------------------------------------------------------------------- - called from Fix/NVE/Spin - initialize the # and the lists of Pair/Spin styles -------------------------------------------------------------------------- */ - -int PairSpin::init_pair() -{ - int nsub = 0; - - // getting the pair style - - pair_keyword = new char[strlen(force->pair_style) + 1]; - strcpy(pair_keyword,force->pair_style); - - - // searching for number of PairSpin styles - - int temp_npair = 0; - nspinstyle = 0; - pair = pair_spin_match("spin",0,nsub); - - // init lists of PairSpin styles - - exchange_spin_styles = new PairSpinExchange*[nspinstyle]; - dmi_spin_styles = new PairSpinDmi*[nspinstyle]; - neel_spin_styles = new PairSpinNeel*[nspinstyle]; - me_spin_styles = new PairSpinMe*[nspinstyle]; - - // init lists of PairSpin names - - pair_spin_keywords = new char*[nspinstyle]; - - nexchangespinstyle = 0; - ndmispinstyle = 0; - nneelspinstyle = 0; - nmespinstyle = 0; - - // loop to define lists of Pair/Spin styles - - int ispin = 0; - if (strstr(pair_keyword,"spin")) { - - // Pair/Spin/Exchange style - - if (strstr(pair_keyword,"pair/spin/exchange")) { - int n = strlen(pair_keyword) + 1; - pair_spin_keywords[ispin] = new char[n]; - strcpy(pair_spin_keywords[ispin],pair_keyword); - exchange_spin_styles[nexchangespinstyle] = (PairSpinExchange *) force->pair; - nexchangespinstyle++; - ispin++; - } - - // Pair/Spin/Dmi style - - if (strstr(pair_keyword,"pair/spin/dmi")) { - int n = strlen(pair_keyword) + 1; - pair_spin_keywords[ispin] = new char[n]; - strcpy(pair_spin_keywords[ispin],pair_keyword); - dmi_spin_styles[ndmispinstyle] = (PairSpinDmi *) force->pair; - ndmispinstyle++; - ispin++; - } - - // Pair/Spin/Neel style - - if (strstr(pair_keyword,"pair/spin/neel")) { - int n = strlen(pair_keyword) + 1; - pair_spin_keywords[ispin] = new char[n]; - strcpy(pair_spin_keywords[ispin],pair_keyword); - neel_spin_styles[nneelspinstyle] = (PairSpinNeel *) force->pair; - nneelspinstyle++; - ispin++; - } - - // list Pair/Spin/Me styles - - if (strstr(pair_keyword,"pair/spin/me")) { - int n = strlen(pair_keyword) + 1; - pair_spin_keywords[ispin] = new char[n]; - strcpy(pair_spin_keywords[ispin],pair_keyword); - me_spin_styles[nmespinstyle] = (PairSpinMe *) force->pair; - nmespinstyle++; - ispin++; - } - - } else if (strstr(pair_keyword,"hybrid/overlay")) { // if hybrid/overlay - PairHybrid *lockhybrid = (PairHybrid *) force->pair; - for (int i =0; i < lockhybrid->nstyles; i++) { - - // error checks - - if (strcmp(lockhybrid->keywords[i],"hybrid") == 0) - error->all(FLERR,"Pair style hybrid cannot have hybrid as an argument"); - if (strcmp(lockhybrid->keywords[i],"none") == 0) - error->all(FLERR,"Pair style hybrid cannot have none as an argument"); - - // list Pair/Spin/Exchange styles - - if (strstr(lockhybrid->keywords[i],"pair/spin/exchange")) { - int n = strlen(lockhybrid->keywords[i]) + 1; - pair_spin_keywords[ispin] = new char[n]; - strcpy(pair_spin_keywords[ispin],lockhybrid->keywords[i]); - exchange_spin_styles[nexchangespinstyle] = (PairSpinExchange *) lockhybrid->styles[i]; - nexchangespinstyle++; - ispin++; - } - - // list Pair/Spin/Dmi styles - - if (strstr(lockhybrid->keywords[i],"pair/spin/dmi")) { - int n = strlen(lockhybrid->keywords[i]) + 1; - pair_spin_keywords[ispin] = new char[n]; - strcpy(pair_spin_keywords[ispin],lockhybrid->keywords[i]); - dmi_spin_styles[ndmispinstyle] = (PairSpinDmi *) lockhybrid->styles[i]; - ndmispinstyle++; - ispin++; - } - - // list Pair/Spin/Neel styles - - if (strstr(lockhybrid->keywords[i],"pair/spin/neel")) { - int n = strlen(lockhybrid->keywords[i]) + 1; - pair_spin_keywords[ispin] = new char[n]; - strcpy(pair_spin_keywords[ispin],lockhybrid->keywords[i]); - neel_spin_styles[nneelspinstyle] = (PairSpinNeel *) lockhybrid->styles[i]; - nneelspinstyle++; - ispin++; - } - - // list Pair/Spin/Me styles - - if (strstr(lockhybrid->keywords[i],"pair/spin/me")) { - int n = strlen(lockhybrid->keywords[i]) + 1; - pair_spin_keywords[ispin] = new char[n]; - strcpy(pair_spin_keywords[ispin],lockhybrid->keywords[i]); - me_spin_styles[nmespinstyle] = (PairSpinMe *) lockhybrid->styles[i]; - nmespinstyle++; - ispin++; - } - - } - } else if (strstr(pair_keyword,"hybrid")) { // no hybrid style with PairSpin - error->all(FLERR,"Pair/Spin styles need hybrid/overlay Pair style"); - } else error->all(FLERR,"Wrong arguments in PairSpin style"); - - if (ispin != nspinstyle) - error->all(FLERR,"Wrong number of PairSpin styles"); - - if ((nexchangespinstyle + ndmispinstyle + nneelspinstyle + nmespinstyle) != nspinstyle) - error->all(FLERR,"Wrong number of PairSpin styles"); - - if (strstr(pair_keyword,"spin") && nspinstyle != 1) - error->all(FLERR,"Wrong number of PairSpin styles"); - - int mag_pair_flag = 0; - if (nspinstyle >= 1) mag_pair_flag = 1; - - - // get larger_cutoff - - larger_cutoff = larger_spin_cutoff(); - - if (mag_pair_flag == 1 && larger_cutoff == 0.0) - error->all(FLERR,"Wrong arguments for PairSpin styles"); - - return mag_pair_flag; -} - -/* ---------------------------------------------------------------------- - get the larger Pair/Spin style cutoff for the sectoring operation -------------------------------------------------------------------------- */ - -double PairSpin::larger_spin_cutoff() -{ - int iexchange, idmi, ineel, ime; - double local_cutoff = 0.0; - - iexchange = idmi = ineel = ime = 0; - - for (int ipair=0; ipair < nspinstyle; ipair++) { - - if (strstr(pair_spin_keywords[ipair],"pair/spin/exchange")) { - if (local_cutoff < exchange_spin_styles[iexchange]->cut_spin_exchange_global) - local_cutoff = exchange_spin_styles[iexchange]->cut_spin_exchange_global; - iexchange++; - } - - if (strstr(pair_spin_keywords[ipair],"pair/spin/dmi")) { - if (local_cutoff < dmi_spin_styles[idmi]->cut_spin_dmi_global) - local_cutoff = dmi_spin_styles[idmi]->cut_spin_dmi_global; - idmi++; - } - - if (strstr(pair_spin_keywords[ipair],"pair/spin/neel")) { - if (local_cutoff < neel_spin_styles[ineel]->cut_spin_neel_global) - local_cutoff = neel_spin_styles[ineel]->cut_spin_neel_global; - ineel++; - } - - if (strstr(pair_spin_keywords[ipair],"pair/spin/me")) { - if (local_cutoff < me_spin_styles[ime]->cut_spin_me_global) - local_cutoff = me_spin_styles[ime]->cut_spin_me_global; - ime++; - } - - } - - if ((iexchange + idmi + ineel + ime) != nspinstyle) - error->all(FLERR,"Wrong number of PairSpin styles"); - - return local_cutoff; -} - - -/* ---------------------------------------------------------------------- */ - -Pair *PairSpin::pair_spin_match(const char *word, int exact, int nsub) -{ - int iwhich,count; - - - if (exact && strcmp(pair_keyword,word) == 0) return pair; - else if (!exact && strstr(pair_keyword,word)) return pair; - - else if (strstr(pair_keyword,"hybrid/overlay")) { - PairHybrid *lockhybrid = (PairHybrid *) force->pair; - count = 0; - for (int i = 0; i < lockhybrid->nstyles; i++) - if ((exact && strcmp(lockhybrid->keywords[i],word) == 0) || - (!exact && strstr(lockhybrid->keywords[i],word))) { - iwhich = i; - count++; - nspinstyle = count; - if (nsub == count) return lockhybrid->styles[iwhich]; - } - if (count == 1) return lockhybrid->styles[iwhich]; - - } else if (strstr(pair_keyword,"hybrid")) { - PairHybrid *lockhybrid = (PairHybrid *) force->pair; - count = 0; - for (int i = 0; i < lockhybrid->nstyles; i++) - if ((exact && strcmp(lockhybrid->keywords[i],word) == 0) || - (!exact && strstr(lockhybrid->keywords[i],word))) { - iwhich = i; - count++; - nspinstyle = count; - if (nsub == count) return lockhybrid->styles[iwhich]; - } - if (count == 1) return lockhybrid->styles[iwhich]; - } - - return NULL; -} - -/* ---------------------------------------------------------------------- - allocate all arrays -------------------------------------------------------------------------- */ - -void PairSpin::allocate() -{ - allocated = 1; - char *pair_keyword = new char[strlen(force->pair_style) + 1]; - -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type spin pairs (only one for now) -------------------------------------------------------------------------- */ - -void PairSpin::coeff(int narg, char **arg) -{ - const double hbar = force->hplanck/MY_2PI; - - if (!allocated) allocate(); - -} - /* ---------------------------------------------------------------------- init specific to this pair style ------------------------------------------------------------------------- */ @@ -610,13 +97,4 @@ void PairSpin::init_style() } if (ifix == modify->nfix) error->all(FLERR,"pair/spin style requires nve/spin"); - - // get the lattice_flag from nve/spin - - for (int i = 0; i < modify->nfix; i++) { - if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { - lockfixnvespin = (FixNVESpin *) modify->fix[i]; - lattice_flag = lockfixnvespin->lattice_flag; - } - } } diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index 8fe189801d..e71f2eb117 100755 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -11,22 +11,8 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ - Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) - - Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. -------------------------------------------------------------------------- */ - -#ifdef PAIR_CLASS - PairStyle(pair/spin,PairSpin) -#else - #ifndef LMP_PAIR_SPIN_H #define LMP_PAIR_SPIN_H @@ -40,46 +26,18 @@ friend class FixNVESpin; PairSpin(class LAMMPS *); virtual ~PairSpin(); virtual void settings(int, char **); - virtual void coeff(int, char **); + virtual void coeff(int, char **) {} virtual void init_style(); virtual double init_one(int, int) {return 0.0;} - virtual void compute(int, int); + virtual void *extract(const char *, int &) {return NULL;} - - // functions called from fix/nve/spin - // used to evaluate force on spin i inside integration loops - - int init_pair(); // init call of PairSpin styles - double larger_cutoff; // larger Pair/Spin style cutoff - double larger_spin_cutoff(); // compute larger_cutoff - void compute_pair_single_spin(int, double *); // compute pairs for one atom - - class Pair *pair; // unused try class - int nspinstyle; // # of magnetic pairs - class Pair *pair_spin_match(const char *, int, int); // initializing nspinstyle - char *pair_keyword; // main pair style - char **pair_spin_keywords; // list of Pair/Spin style names - - // # and lists of Pair/Spin style classes - - int nexchangespinstyle; // # of exchange pairs - class PairSpinExchange **exchange_spin_styles; // list of Pair/Spin/Exchange2 classes - - int ndmispinstyle; // # of dmi pairs - class PairSpinDmi **dmi_spin_styles; // list of Pair/Spin/Dmi2 classes - - int nneelspinstyle; // # of dmi pairs - class PairSpinNeel **neel_spin_styles; // list of Pair/Spin/Dmi2 classes - - int nmespinstyle; // # of me pairs - class PairSpinMe **me_spin_styles; // list of Pair/Spin/Me2 classes + virtual void compute(int, int) {} + virtual void compute_single_pair(int, double *) {} protected: - int lattice_flag; // if 0 spins only, 1 if spin-lattice - double hbar; // Planck constant (eV.ps.rad-1) - class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin2 for setups + double hbar; // Planck constant (eV.ps.rad-1) - virtual void allocate(); + virtual void allocate() {} }; } diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 5c1ab13065..99b41f77c8 100755 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -101,7 +101,7 @@ void PairSpinDmi::settings(int narg, char **arg) void PairSpinDmi::coeff(int narg, char **arg) { - const double hbar = force->hplanck/MY_2PI; +// const double hbar = force->hplanck/MY_2PI; if (!allocated) allocate(); @@ -165,16 +165,6 @@ void PairSpinDmi::init_style() } if (ifix == modify->nfix) error->all(FLERR,"pair/spin style requires nve/spin"); - - // get the lattice_flag from nve/spin - - for (int i = 0; i < modify->nfix; i++) { - if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { - lockfixnvespin = (FixNVESpin *) modify->fix[i]; - lattice_flag = lockfixnvespin->lattice_flag; - } - } - } /* ---------------------------------------------------------------------- @@ -189,23 +179,32 @@ double PairSpinDmi::init_one(int i, int j) return cut_spin_dmi_global; } +/* ---------------------------------------------------------------------- + extract the larger cutoff +------------------------------------------------------------------------- */ + +void *PairSpinDmi::extract(const char *str, int &dim) +{ + dim = 0; + if (strcmp(str,"cut") == 0) return (void *) &cut_spin_dmi_global; + return NULL; +} + /* ---------------------------------------------------------------------- */ void PairSpinDmi::compute(int eflag, int vflag) { - int i,j,ii,jj,inum,jnum,itype,jtype; + int i,j,ii,jj,inum,jnum; double evdwl, ecoul; double xi[3], rij[3]; double spi[3], spj[3]; double fi[3], fmi[3]; - double cut_spin_dmi_2; - double rsq, rd, inorm; + double rsq; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = vflag_fdotr = 0; - cut_spin_dmi_2 = cut_spin_dmi_global*cut_spin_dmi_global; double **x = atom->x; double **f = atom->f; @@ -221,21 +220,26 @@ void PairSpinDmi::compute(int eflag, int vflag) firstneigh = list->firstneigh; // dmi computation - // loop over neighbors of my atoms + // loop over all atoms for (ii = 0; ii < inum; ii++) { i = ilist[ii]; + xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; + spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; // loop on neighbors + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; j &= NEIGHMASK; @@ -253,23 +257,11 @@ void PairSpinDmi::compute(int eflag, int vflag) rij[1] = x[j][1] - xi[1]; rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - inorm = 1.0/sqrt(rsq); - rij[0] *= inorm; - rij[1] *= inorm; - rij[2] *= inorm; - itype = type[i]; - jtype = type[j]; - // compute magnetic and mechanical components of soc_dmi - cut_spin_dmi_2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; - if (rsq <= cut_spin_dmi_2){ - compute_dmi(i,j,rsq,fmi,spi,spj); - if (lattice_flag) { - compute_dmi_mech(i,j,fi,spi,spj); - } - } + compute_dmi(i,j,rsq,fmi,spi,spj); + compute_dmi_mech(i,j,fi,spi,spj); f[i][0] += fi[0]; f[i][1] += fi[1]; @@ -284,15 +276,11 @@ void PairSpinDmi::compute(int eflag, int vflag) f[j][1] -= fi[1]; f[j][2] -= fi[2]; } - + if (eflag) { - if (rsq <= cut_spin_dmi_2) { - evdwl -= spi[0]*fmi[0]; - evdwl -= spi[1]*fmi[1]; - evdwl -= spi[2]*fmi[2]; - evdwl *= hbar; - } else evdwl = 0.0; - } + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl *= hbar; + } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); @@ -300,14 +288,75 @@ void PairSpinDmi::compute(int eflag, int vflag) } if (vflag_fdotr) virial_fdotr_compute(); - + } +/* ---------------------------------------------------------------------- */ + +void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) +{ + + const int nlocal = atom->nlocal; + int *type = atom->type; + double **x = atom->x; + double **sp = atom->sp; + + double xi[3], rij[3]; + double spi[3], spj[3]; + + int iexchange, idmi, ineel, ime; + int i,j,jj,inum,jnum,itype,jtype; + int *ilist,*jlist,*numneigh,**firstneigh; + + double rsq, rd, inorm; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + i = ilist[ii]; + + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (int jj = 0; jj < jnum; jj++) { + + j = jlist[jj]; + j &= NEIGHMASK; + itype = type[ii]; + jtype = type[j]; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + inorm = 1.0/sqrt(rsq); + + compute_dmi(i,j,rsq,fmi,spi,spj); + + } + +} + + /* ---------------------------------------------------------------------- compute the dmi interaction between spin i and spin j ------------------------------------------------------------------------- */ -void PairSpinDmi::compute_dmi(int i, int j, double rsq, double fmi[3], double spi[3], double spj[3]) +void PairSpinDmi::compute_dmi(int i, int j, double rsq, double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -317,15 +366,16 @@ void PairSpinDmi::compute_dmi(int i, int j, double rsq, double fmi[3], double s double local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; if (rsq <= local_cut2) { - double dmix,dmiy,dmiz; + double dmix, dmiy, dmiz; - dmix = DM[itype][jtype]*v_dmx[itype][jtype]; - dmiy = DM[itype][jtype]*v_dmy[itype][jtype]; - dmiz = DM[itype][jtype]*v_dmz[itype][jtype]; + dmix = DM[itype][jtype] * v_dmx[itype][jtype]; + dmiy = DM[itype][jtype] * v_dmy[itype][jtype]; + dmiz = DM[itype][jtype] * v_dmz[itype][jtype]; + + fmi[0] -= (spj[1]*dmiz - spj[2]*dmiy); + fmi[1] -= (spj[2]*dmix - spj[0]*dmiz); + fmi[2] -= (spj[0]*dmiy - spj[1]*dmix); - fmi[0] += spj[1]*dmiz-spj[2]*dmiy; - fmi[1] += spj[2]*dmix-spj[0]*dmiz; - fmi[2] += spj[0]*dmiy-spj[1]*dmix; } } diff --git a/src/SPIN/pair_spin_dmi.h b/src/SPIN/pair_spin_dmi.h index ff6faa2a46..da9f8d1494 100755 --- a/src/SPIN/pair_spin_dmi.h +++ b/src/SPIN/pair_spin_dmi.h @@ -23,7 +23,7 @@ #ifdef PAIR_CLASS -PairStyle(pair/spin/dmi,PairSpinDmi) +PairStyle(spin/dmi,PairSpinDmi) #else @@ -42,8 +42,11 @@ class PairSpinDmi : public PairSpin { void coeff(int, char **); void init_style(); double init_one(int, int); + void *extract(const char *, int &); void compute(int, int); + void compute_single_pair(int, double *); + void compute_dmi(int, int, double, double *, double *, double *); void compute_dmi_mech(int, int, double *, double *, double *); diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index c899fba40a..145d49fe85 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -45,10 +45,13 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -PairSpinExchange::PairSpinExchange(LAMMPS *lmp) : PairSpin(lmp) +PairSpinExchange::PairSpinExchange(LAMMPS *lmp) : PairSpin(lmp), +lockfixnvespin(NULL) { + hbar = force->hplanck/MY_2PI; single_enable = 0; no_virial_fdotr_compute = 1; + lattice_flag = 0; } /* ---------------------------------------------------------------------- */ @@ -99,8 +102,6 @@ void PairSpinExchange::settings(int narg, char **arg) void PairSpinExchange::coeff(int narg, char **arg) { - const double hbar = force->hplanck/MY_2PI; - if (!allocated) allocate(); // check if args correct @@ -185,16 +186,27 @@ double PairSpinExchange::init_one(int i, int j) return cut_spin_exchange_global; } +/* ---------------------------------------------------------------------- + extract the larger cutoff +------------------------------------------------------------------------- */ + +void *PairSpinExchange::extract(const char *str, int &dim) +{ + dim = 0; + if (strcmp(str,"cut") == 0) return (void *) &cut_spin_exchange_global; + return NULL; +} + /* ---------------------------------------------------------------------- */ void PairSpinExchange::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl,ecoul; - double xi[3], rij[3]; + double xi[3], rij[3], eij[3]; double fi[3], fmi[3]; double cut_ex_2,cut_spin_exchange_global2; - double rsq,rd,inorm; + double rsq, inorm; int *ilist,*jlist,*numneigh,**firstneigh; double spi[3],spj[3]; @@ -202,7 +214,7 @@ void PairSpinExchange::compute(int eflag, int vflag) if (eflag || vflag) ev_setup(eflag,vflag); else evflag = vflag_fdotr = 0; cut_spin_exchange_global2 = cut_spin_exchange_global*cut_spin_exchange_global; - + double **x = atom->x; double **f = atom->f; double **fm = atom->fm; @@ -229,12 +241,14 @@ void PairSpinExchange::compute(int eflag, int vflag) spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; + itype = type[i]; // loop on neighbors for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; + jtype = type[j]; spj[0] = sp[j][0]; spj[1] = sp[j][1]; @@ -248,22 +262,19 @@ void PairSpinExchange::compute(int eflag, int vflag) rij[0] = x[j][0] - xi[0]; rij[1] = x[j][1] - xi[1]; rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); - rij[0] *= inorm; - rij[1] *= inorm; - rij[2] *= inorm; - - itype = type[i]; - jtype = type[j]; - - // compute exchange interaction + eij[0] = inorm*rij[0]; + eij[1] = inorm*rij[1]; + eij[2] = inorm*rij[2]; cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; + + // compute exchange interaction if (rsq <= cut_ex_2) { - compute_exchange(i,j,rsq,fmi,spi,spj); - if (lattice_flag) { - compute_exchange_mech(i,j,rsq,rij,fi,spi,spj); + compute_exchange(i,j,rsq,fmi,spi,spj); + if (lattice_flag) { + compute_exchange_mech(i,j,rsq,eij,fi,spi,spj); } } @@ -285,8 +296,9 @@ void PairSpinExchange::compute(int eflag, int vflag) if (rsq <= cut_ex_2) { evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= hbar; - } else evdwl = 0.0; - } + } + } else evdwl = 0.0; + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); @@ -297,6 +309,71 @@ void PairSpinExchange::compute(int eflag, int vflag) } +/* ---------------------------------------------------------------------- + update the pair interactions fmi acting on the spin ii +------------------------------------------------------------------------- */ + +void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) +{ + + const int nlocal = atom->nlocal; + int *type = atom->type; + double **x = atom->x; + double **sp = atom->sp; + double local_cut2; + + double xi[3], rij[3]; + double spi[3], spj[3]; + + int iexchange, idmi, ineel, ime; + int i,j,jj,inum,jnum,itype,jtype; + int *ilist,*jlist,*numneigh,**firstneigh; + + double rsq; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + i = ilist[ii]; + itype = type[i]; + + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (int jj = 0; jj < jnum; jj++) { + + j = jlist[jj]; + j &= NEIGHMASK; + jtype = type[j]; + local_cut2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + + if (rsq <= local_cut2) { + compute_exchange(i,j,rsq,fmi,spi,spj); + } + + } + +} + /* ---------------------------------------------------------------------- compute the magnetic exchange interaction between spin i and spin j ------------------------------------------------------------------------- */ @@ -321,6 +398,7 @@ void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], fmi[0] += Jex*spj[0]; fmi[1] += Jex*spj[1]; fmi[2] += Jex*spj[2]; + } } diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h index ab22ef9255..66750743bb 100755 --- a/src/SPIN/pair_spin_exchange.h +++ b/src/SPIN/pair_spin_exchange.h @@ -23,7 +23,7 @@ #ifdef PAIR_CLASS -PairStyle(pair/spin/exchange,PairSpinExchange) +PairStyle(spin/exchange,PairSpinExchange) #else @@ -42,8 +42,11 @@ class PairSpinExchange : public PairSpin { void coeff(int, char **); void init_style(); double init_one(int, int); + void *extract(const char *, int &); void compute(int, int); + void compute_single_pair(int, double *); + void compute_exchange(int, int, double, double *, double *, double *); void compute_exchange_mech(int, int, double, double *, double *, double *, double *); @@ -52,13 +55,17 @@ class PairSpinExchange : public PairSpin { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - double cut_spin_exchange_global; // global neel cutoff distance + double cut_spin_exchange_global; // global exchange cutoff distance protected: - double **J1_mag, **J1_mech; // exchange coeffs Jij + double **J1_mag; // exchange coeffs in eV + double **J1_mech; // mech exchange coeffs in double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang double **cut_spin_exchange; // cutoff distance exchange + int lattice_flag; // flag for mech force computation + class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups + void allocate(); }; diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_me.cpp index e617470c8a..ee32127c23 100755 --- a/src/SPIN/pair_spin_me.cpp +++ b/src/SPIN/pair_spin_me.cpp @@ -163,16 +163,6 @@ void PairSpinMe::init_style() } if (ifix == modify->nfix) error->all(FLERR,"pair/spin style requires nve/spin"); - - // get the lattice_flag from nve/spin - - for (int i = 0; i < modify->nfix; i++) { - if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { - lockfixnvespin = (FixNVESpin *) modify->fix[i]; - lattice_flag = lockfixnvespin->lattice_flag; - } - } - } /* ---------------------------------------------------------------------- @@ -187,6 +177,18 @@ double PairSpinMe::init_one(int i, int j) return cut_spin_me_global; } +/* ---------------------------------------------------------------------- + extract the larger cutoff +------------------------------------------------------------------------- */ + +void *PairSpinMe::extract(const char *str, int &dim) +{ + dim = 0; + if (strcmp(str,"cut") == 0) return (void *) &cut_spin_me_global; + return NULL; +} + + /* ---------------------------------------------------------------------- */ void PairSpinMe::compute(int eflag, int vflag) @@ -197,14 +199,12 @@ void PairSpinMe::compute(int eflag, int vflag) double spi[3], spj[3]; double fi[3], fj[3]; double fmi[3], fmj[3]; - double cut_me_2, cut_spin_me_global2; double rsq, rd, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = vflag_fdotr = 0; - cut_spin_me_global2 = cut_spin_me_global*cut_spin_me_global; double **x = atom->x; double **f = atom->f; @@ -265,13 +265,8 @@ void PairSpinMe::compute(int eflag, int vflag) // compute me interaction - cut_me_2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; - if (rsq <= cut_me_2){ - compute_me(i,j,rsq,rij,fmi,spi,spj); - if (lattice_flag) { - compute_me_mech(i,j,fi,spi,spj); - } - } + compute_me(i,j,rsq,rij,fmi,spi,spj); + compute_me_mech(i,j,fi,spi,spj); f[i][0] += fi[0]; f[i][1] += fi[1]; @@ -288,11 +283,9 @@ void PairSpinMe::compute(int eflag, int vflag) } if (eflag) { - if (rsq <= cut_me_2) { - evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); - evdwl *= hbar; - } else evdwl = 0.0; - } + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl *= hbar; + } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); @@ -305,6 +298,70 @@ void PairSpinMe::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ +void PairSpinMe::compute_single_pair(int ii, double fmi[3]) +{ + + const int nlocal = atom->nlocal; + int *type = atom->type; + double **x = atom->x; + double **sp = atom->sp; + + double xi[3], rij[3], eij[3]; + double spi[3], spj[3]; + + int iexchange, idmi, ineel, ime; + int i,j,jj,inum,jnum,itype,jtype; + int *ilist,*jlist,*numneigh,**firstneigh; + + double rsq, rd, inorm; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + i = ilist[ii]; + + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + + eij[0] = eij[1] = eij[2] = 0.0; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (int jj = 0; jj < jnum; jj++) { + + j = jlist[jj]; + j &= NEIGHMASK; + itype = type[ii]; + jtype = type[j]; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + inorm = 1.0/sqrt(rsq); + eij[0] = inorm*rij[0]; + eij[1] = inorm*rij[1]; + eij[2] = inorm*rij[2]; + + compute_me(i,j,rsq,eij,fmi,spi,spj); + } + +} + +/* ---------------------------------------------------------------------- */ + void PairSpinMe::compute_me(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; diff --git a/src/SPIN/pair_spin_me.h b/src/SPIN/pair_spin_me.h index 05e6719710..58ea6b3eda 100755 --- a/src/SPIN/pair_spin_me.h +++ b/src/SPIN/pair_spin_me.h @@ -23,7 +23,7 @@ #ifdef PAIR_CLASS -PairStyle(pair/spin/me,PairSpinMe) +PairStyle(spin/me,PairSpinMe) #else @@ -42,8 +42,11 @@ class PairSpinMe : public PairSpin { void coeff(int, char **); void init_style(); double init_one(int, int); + void *extract(const char *, int &); void compute(int, int); + void compute_single_pair(int, double *); + void compute_me(int, int, double, double *, double *, double *, double *); void compute_me_mech(int, int, double *, double *, double *); diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 205ee736ed..a34931af85 100755 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -174,16 +174,6 @@ void PairSpinNeel::init_style() } if (ifix == modify->nfix) error->all(FLERR,"pair/spin style requires nve/spin"); - - // get the lattice_flag from nve/spin - - for (int i = 0; i < modify->nfix; i++) { - if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { - lockfixnvespin = (FixNVESpin *) modify->fix[i]; - lattice_flag = lockfixnvespin->lattice_flag; - } - } - } /* ---------------------------------------------------------------------- @@ -198,6 +188,17 @@ double PairSpinNeel::init_one(int i, int j) return cut_spin_neel_global; } +/* ---------------------------------------------------------------------- + extract the larger cutoff +------------------------------------------------------------------------- */ + +void *PairSpinNeel::extract(const char *str, int &dim) +{ + dim = 0; + if (strcmp(str,"cut") == 0) return (void *) &cut_spin_neel_global; + return NULL; +} + /* ---------------------------------------------------------------------- */ void PairSpinNeel::compute(int eflag, int vflag) @@ -207,14 +208,12 @@ void PairSpinNeel::compute(int eflag, int vflag) double xi[3], rij[3], eij[3]; double spi[3], spj[3]; double fi[3], fmi[3]; - double cut_spin_neel_2, cut_spin_neel_global2; double rsq, rd, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = vflag_fdotr = 0; - cut_spin_neel_global2 = cut_spin_neel_global*cut_spin_neel_global; double **x = atom->x; double **f = atom->f; @@ -273,14 +272,9 @@ void PairSpinNeel::compute(int eflag, int vflag) // compute magnetic and mechanical components of soc_neel - cut_spin_neel_2 = cut_spin_neel[itype][jtype]*cut_spin_neel[itype][jtype]; - if (rsq <= cut_spin_neel_2) { - compute_neel(i,j,rsq,eij,fmi,spi,spj); - if (lattice_flag) { - compute_neel_mech(i,j,rsq,eij,fi,spi,spj); - } - } - + compute_neel(i,j,rsq,eij,fmi,spi,spj); + compute_neel_mech(i,j,rsq,eij,fi,spi,spj); + f[i][0] += fi[0]; f[i][1] += fi[1]; f[i][2] += fi[2]; @@ -296,11 +290,9 @@ void PairSpinNeel::compute(int eflag, int vflag) } if (eflag) { - if (rsq <= cut_spin_neel_2) { - evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); - evdwl *= hbar; - } else evdwl = 0.0; - } + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl *= hbar; + } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); @@ -313,6 +305,67 @@ void PairSpinNeel::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ +void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) +{ + + const int nlocal = atom->nlocal; + int *type = atom->type; + double **x = atom->x; + double **sp = atom->sp; + + double xi[3], rij[3], eij[3]; + double spi[3], spj[3]; + + int iexchange, idmi, ineel, ime; + int i,j,jj,inum,jnum,itype,jtype; + int *ilist,*jlist,*numneigh,**firstneigh; + + double rsq, rd, inorm; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + i = ilist[ii]; + + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; + spi[2] = sp[i][2]; + + xi[0] = x[i][0]; + xi[1] = x[i][1]; + xi[2] = x[i][2]; + + eij[0] = eij[1] = eij[2] = 0.0; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (int jj = 0; jj < jnum; jj++) { + + j = jlist[jj]; + j &= NEIGHMASK; + itype = type[ii]; + jtype = type[j]; + + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; + + rij[0] = x[j][0] - xi[0]; + rij[1] = x[j][1] - xi[1]; + rij[2] = x[j][2] - xi[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + inorm = 1.0/sqrt(rsq); + + compute_neel(i,j,rsq,eij,fmi,spi,spj); + } + +} + +/* ---------------------------------------------------------------------- */ + void PairSpinNeel::compute_neel(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; diff --git a/src/SPIN/pair_spin_neel.h b/src/SPIN/pair_spin_neel.h index 970844a2a7..114e1843de 100755 --- a/src/SPIN/pair_spin_neel.h +++ b/src/SPIN/pair_spin_neel.h @@ -23,7 +23,7 @@ #ifdef PAIR_CLASS -PairStyle(pair/spin/neel,PairSpinNeel) +PairStyle(spin/neel,PairSpinNeel) #else @@ -42,8 +42,11 @@ class PairSpinNeel : public PairSpin { void coeff(int, char **); void init_style(); double init_one(int, int); + void *extract(const char *, int &); void compute(int, int); + void compute_single_pair(int, double *); + void compute_neel(int, int, double, double *, double *, double *, double *); void compute_neel_mech(int, int, double, double *, double *, double *, double *); diff --git a/src/pair_hybrid.h b/src/pair_hybrid.h index c01f57026b..202847b028 100644 --- a/src/pair_hybrid.h +++ b/src/pair_hybrid.h @@ -31,7 +31,6 @@ class PairHybrid : public Pair { friend class FixOMP; friend class Force; friend class Respa; - friend class PairSpin; friend class Info; public: PairHybrid(class LAMMPS *); From 392816a807dfe1c8494f0517254b94c469a9ed0c Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 24 Apr 2018 16:36:30 -0600 Subject: [PATCH 090/675] Commit JT 042418 - adding the README - some corrects pair_spin*.cpp/h --- .../exchange_fcc_cobalt.dat | 5 +++ .../exchange_fit_fcc_co/exchange_fit.py | 32 +++++++++++++++++++ .../exchange_bcc_iron.dat | 2 ++ .../exchange_fit_fcc_ni/exchange_fcc_ni.dat | 10 +++--- .../exchange_fit_fcc_ni/exchange_fcc_ni2.dat | 5 +++ .../exchange_fit_fcc_ni/exchange_fit.py | 5 +-- src/SPIN/README | 25 +++++++++++++++ src/SPIN/atom_vec_spin.h | 10 ------ src/SPIN/compute_spin.h | 10 ------ src/SPIN/fix_langevin_spin.h | 10 ------ src/SPIN/fix_nve_spin.cpp | 14 +++++++- src/SPIN/fix_nve_spin.h | 10 ------ src/SPIN/fix_precession_spin.h | 10 ------ src/SPIN/pair_spin.h | 4 +++ src/SPIN/pair_spin_dmi.cpp | 25 ++++++++------- src/SPIN/pair_spin_dmi.h | 10 ------ src/SPIN/pair_spin_exchange.h | 10 ------ src/SPIN/pair_spin_me.h | 10 ------ src/SPIN/pair_spin_neel.h | 10 ------ 19 files changed, 107 insertions(+), 110 deletions(-) create mode 100644 examples/SPIN/cobalt_fcc/exchange_fit_fcc_co/exchange_fcc_cobalt.dat create mode 100644 examples/SPIN/cobalt_fcc/exchange_fit_fcc_co/exchange_fit.py create mode 100644 examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni2.dat create mode 100644 src/SPIN/README diff --git a/examples/SPIN/cobalt_fcc/exchange_fit_fcc_co/exchange_fcc_cobalt.dat b/examples/SPIN/cobalt_fcc/exchange_fit_fcc_co/exchange_fcc_cobalt.dat new file mode 100644 index 0000000000..dce45c090d --- /dev/null +++ b/examples/SPIN/cobalt_fcc/exchange_fit_fcc_co/exchange_fcc_cobalt.dat @@ -0,0 +1,5 @@ +2.503 0.01476 +3.54 0.001497 +4.33 0.001578 +5.01 -0.001224 +5.597 0.000354 diff --git a/examples/SPIN/cobalt_fcc/exchange_fit_fcc_co/exchange_fit.py b/examples/SPIN/cobalt_fcc/exchange_fit_fcc_co/exchange_fit.py new file mode 100644 index 0000000000..09be6db3e4 --- /dev/null +++ b/examples/SPIN/cobalt_fcc/exchange_fit_fcc_co/exchange_fit.py @@ -0,0 +1,32 @@ +#Program fitting the exchange interaction +#Model curve: Bethe-Slater function +import numpy as np, pylab, tkinter +import matplotlib.pyplot as plt +from scipy.optimize import curve_fit +from decimal import * + +print("Loop begin") + +#Definition of the Bethe-Slater function +def func(x,a,b,c): + return 4*a*((x/c)**2)*(1-b*(x/c)**2)*np.exp(-(x/c)**2) + +#Exchange coeff table (data to fit) +rdata, Jdata = np.loadtxt('exchange_fcc_cobalt.dat', usecols=(0,1), unpack=True) +plt.plot(rdata, Jdata, 'b-', label='data') + +#Perform the fit +popt, pcov = curve_fit(func, rdata, Jdata, bounds=(0, [500.,5.,5.])) +plt.plot(rdata, func(rdata, *popt), 'r--', label='fit') + +#Print the fitted params +print("Parameters: a={:.10} (in meV), b={:.10} (adim), c={:.10} (in Ang)".format(*popt)) + +#Ploting the result +plt.xlabel('r_ij') +pylab.xlim([0,6.5]) +plt.ylabel('J_ij') +plt.legend() +plt.show() + +print("Loop end") diff --git a/examples/SPIN/iron/exchange_fit_bcc_iron/exchange_bcc_iron.dat b/examples/SPIN/iron/exchange_fit_bcc_iron/exchange_bcc_iron.dat index 7cfe1cb586..58134f2444 100644 --- a/examples/SPIN/iron/exchange_fit_bcc_iron/exchange_bcc_iron.dat +++ b/examples/SPIN/iron/exchange_fit_bcc_iron/exchange_bcc_iron.dat @@ -1,3 +1,5 @@ 2.4824 0.01948336 2.8665 0.01109 4.0538 -0.0002176 +4.753 -0.001714 +4.965 -0.001986 diff --git a/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat index 4e5aa47659..376f6fd162 100644 --- a/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat +++ b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni.dat @@ -1,5 +1,5 @@ -2.495 8.3 -3.524 -3.99 -4.31 0.998 -4.99 -0.955 -5.56 0.213 +2.492 0.0028027 +3.524 0.0000816 +4.316 0.0003537 +4.984 0.0001632 +5.572 0.0000408 diff --git a/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni2.dat b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni2.dat new file mode 100644 index 0000000000..4e5aa47659 --- /dev/null +++ b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fcc_ni2.dat @@ -0,0 +1,5 @@ +2.495 8.3 +3.524 -3.99 +4.31 0.998 +4.99 -0.955 +5.56 0.213 diff --git a/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fit.py b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fit.py index dd07e9f295..4046fa45f7 100644 --- a/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fit.py +++ b/examples/SPIN/nickel/exchange_fit_fcc_ni/exchange_fit.py @@ -16,7 +16,7 @@ rdata, Jdata = np.loadtxt('exchange_fcc_ni.dat', usecols=(0,1), unpack=True) plt.plot(rdata, Jdata, 'b-', label='data') # perform the fit -popt, pcov = curve_fit(func, rdata, Jdata, bounds=(0, [500.,5.,5.])) +popt, pcov = curve_fit(func, rdata, Jdata, bounds=([0.0,-1.0,0.0], [100.,5.,5.])) plt.plot(rdata, func(rdata, *popt), 'r--', label='fit') # print the fitted parameters @@ -24,7 +24,8 @@ print("Parameters: a={:.10} (in meV), b={:.10} (adim), c={:.10} (in Ang)".format # ploting the result plt.xlabel('r_ij') -pylab.xlim([0,6.5]) +pylab.xlim([0.0,6.5]) +#pylab.ylim([-2.0,10.0]) plt.ylabel('J_ij') plt.legend() plt.show() diff --git a/src/SPIN/README b/src/SPIN/README new file mode 100644 index 0000000000..e371e39767 --- /dev/null +++ b/src/SPIN/README @@ -0,0 +1,25 @@ +The SPIN package enables coupled spin dynamics and molecular +dynamics simulations. + +The package provides the following features: + +* defining a classical magnetic atomic spin associated to each magnetic +atom in the system +* integrating the equations of motion for the coupled spin-lattice system +* implementing magnetic pair interactions and magnetic forces +* thermostating and applying a transverse damping to the magnetic spins +* computing and outputing magnetic quantities + +The different options provided by this package are explained in the +LAMMPS documentation. + +Once you have successfully built LAMMPS with this package, you can test +it using one of the input files provided from the examples/SPIN dir: + +./lmp_serial < lammps/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp + + +== Credits and license == + +The person who created this package is Julien Tranchida (jtranch at +sandia.gov). You can contact him if you have questions. diff --git a/src/SPIN/atom_vec_spin.h b/src/SPIN/atom_vec_spin.h index 4177a4c860..99d4a86189 100644 --- a/src/SPIN/atom_vec_spin.h +++ b/src/SPIN/atom_vec_spin.h @@ -11,16 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ - Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) - - Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. -------------------------------------------------------------------------- */ - #ifdef ATOM_CLASS AtomStyle(spin,AtomVecSpin) diff --git a/src/SPIN/compute_spin.h b/src/SPIN/compute_spin.h index 872694cd89..59f0ce2876 100644 --- a/src/SPIN/compute_spin.h +++ b/src/SPIN/compute_spin.h @@ -11,16 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ - Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) - - Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. -------------------------------------------------------------------------- */ - #ifdef COMPUTE_CLASS ComputeStyle(compute/spin,ComputeSpin) diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index ac7506c4c5..0f90a77c14 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -11,16 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ - Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) - - Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. -------------------------------------------------------------------------- */ - #ifdef FIX_CLASS FixStyle(langevin/spin,FixLangevinSpin) diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 2d3f73cd77..2f13bdd650 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -27,6 +27,7 @@ #include "atom.h" #include "atom_vec.h" +#include "citeme.h" #include "error.h" #include "fix_precession_spin.h" #include "fix_nve_spin.h" @@ -50,6 +51,16 @@ using namespace FixConst; using namespace MathConst; using namespace MathExtra; +static const char cite_fix_nve_spin[] = + "fix nve/spin command:\n\n" + "@article{tranchida2018massively,\n" + "title={Massively parallel symplectic algorithm for coupled magnetic spin " + "dynamics and molecular dynamics},\n" + "author={Tranchida, J and Plimpton, SJ and Thibaudeau, P and Thompson, AP},\n" + "journal={arXiv preprint arXiv:1801.10233},\n" + "year={2018}\n" + "}\n\n"; + enum{NONE}; /* ---------------------------------------------------------------------- */ @@ -60,7 +71,8 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : backward_stacks(NULL), forward_stacks(NULL), pair(NULL), spin_pairs(NULL) { - + if (lmp->citeme) lmp->citeme->add(cite_fix_nve_spin); + if (narg < 4) error->all(FLERR,"Illegal fix/NVE/spin command"); time_integrate = 1; diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index 686c391299..c7d88ef605 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -11,16 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ - Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) - - Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. -------------------------------------------------------------------------- */ - #ifdef FIX_CLASS FixStyle(nve/spin,FixNVESpin) diff --git a/src/SPIN/fix_precession_spin.h b/src/SPIN/fix_precession_spin.h index 5e1047ff67..2a616b61f0 100644 --- a/src/SPIN/fix_precession_spin.h +++ b/src/SPIN/fix_precession_spin.h @@ -11,16 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ - Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) - - Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. -------------------------------------------------------------------------- */ - #ifdef FIX_CLASS FixStyle(precession/spin,FixPrecessionSpin) diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index e71f2eb117..94f8433108 100755 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -11,8 +11,12 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#ifdef PAIR_CLASS + PairStyle(pair/spin,PairSpin) +#else + #ifndef LMP_PAIR_SPIN_H #define LMP_PAIR_SPIN_H diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 99b41f77c8..7f07efc9c8 100755 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -101,7 +101,6 @@ void PairSpinDmi::settings(int narg, char **arg) void PairSpinDmi::coeff(int narg, char **arg) { -// const double hbar = force->hplanck/MY_2PI; if (!allocated) allocate(); @@ -130,15 +129,16 @@ void PairSpinDmi::coeff(int narg, char **arg) for (int j = MAX(jlo,i); j <= jhi; j++) { cut_spin_dmi[i][j] = rij; DM[i][j] = dm; - v_dmx[i][j] = dmx; - v_dmy[i][j] = dmy; - v_dmz[i][j] = dmz; + v_dmx[i][j] = dmx * dm; + v_dmy[i][j] = dmy * dm; + v_dmz[i][j] = dmz * dm; setflag[i][j] = 1; count++; } } if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); + } /* ---------------------------------------------------------------------- @@ -351,7 +351,6 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) } - /* ---------------------------------------------------------------------- compute the dmi interaction between spin i and spin j ------------------------------------------------------------------------- */ @@ -368,13 +367,16 @@ void PairSpinDmi::compute_dmi(int i, int j, double rsq, double fmi[3], double sp if (rsq <= local_cut2) { double dmix, dmiy, dmiz; - dmix = DM[itype][jtype] * v_dmx[itype][jtype]; - dmiy = DM[itype][jtype] * v_dmy[itype][jtype]; - dmiz = DM[itype][jtype] * v_dmz[itype][jtype]; + //dmix = DM[itype][jtype] * v_dmx[itype][jtype]; + //dmiy = DM[itype][jtype] * v_dmy[itype][jtype]; + //dmiz = DM[itype][jtype] * v_dmz[itype][jtype]; + dmix = v_dmx[itype][jtype]; + dmiy = v_dmy[itype][jtype]; + dmiz = v_dmz[itype][jtype]; - fmi[0] -= (spj[1]*dmiz - spj[2]*dmiy); - fmi[1] -= (spj[2]*dmix - spj[0]*dmiz); - fmi[2] -= (spj[0]*dmiy - spj[1]*dmix); + fmi[0] += (spj[1]*dmiz - spj[2]*dmiy); + fmi[1] += (spj[2]*dmix - spj[0]*dmiz); + fmi[2] += (spj[0]*dmiy - spj[1]*dmix); } } @@ -390,7 +392,6 @@ void PairSpinDmi::compute_dmi_mech(int i, int j, double fi[3], double spi[3], do fi[2] += 0.0; } - /* ---------------------------------------------------------------------- allocate all arrays ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_dmi.h b/src/SPIN/pair_spin_dmi.h index da9f8d1494..fda38b48fd 100755 --- a/src/SPIN/pair_spin_dmi.h +++ b/src/SPIN/pair_spin_dmi.h @@ -11,16 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ - Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) - - Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. -------------------------------------------------------------------------- */ - #ifdef PAIR_CLASS PairStyle(spin/dmi,PairSpinDmi) diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h index 66750743bb..07536a18bd 100755 --- a/src/SPIN/pair_spin_exchange.h +++ b/src/SPIN/pair_spin_exchange.h @@ -11,16 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ - Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) - - Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. -------------------------------------------------------------------------- */ - #ifdef PAIR_CLASS PairStyle(spin/exchange,PairSpinExchange) diff --git a/src/SPIN/pair_spin_me.h b/src/SPIN/pair_spin_me.h index 58ea6b3eda..cd1a93ad6e 100755 --- a/src/SPIN/pair_spin_me.h +++ b/src/SPIN/pair_spin_me.h @@ -11,16 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ - Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) - - Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. -------------------------------------------------------------------------- */ - #ifdef PAIR_CLASS PairStyle(spin/me,PairSpinMe) diff --git a/src/SPIN/pair_spin_neel.h b/src/SPIN/pair_spin_neel.h index 114e1843de..d59f92df26 100755 --- a/src/SPIN/pair_spin_neel.h +++ b/src/SPIN/pair_spin_neel.h @@ -11,16 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ - Contributing authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) - - Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. -------------------------------------------------------------------------- */ - #ifdef PAIR_CLASS PairStyle(spin/neel,PairSpinNeel) From 75069ec55b7fef73d4444d3e02ddbf9026a161b0 Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 26 Apr 2018 12:41:23 -0600 Subject: [PATCH 091/675] Commit JT-1 042618 - new version DMI --- src/SPIN/pair_spin_dmi.cpp | 78 ++++++---- src/SPIN/pair_spin_dmi.h | 5 +- src/SPIN/pair_spin_exchange.cpp | 67 ++++---- src/SPIN/pair_spin_me.cpp | 45 ++++-- src/SPIN/pair_spin_me.h | 3 + src/SPIN/pair_spin_neel.cpp | 267 +++++++++++++++++--------------- src/SPIN/pair_spin_neel.h | 21 ++- 7 files changed, 274 insertions(+), 212 deletions(-) diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 7f07efc9c8..83794a7a9c 100755 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -49,6 +49,7 @@ PairSpinDmi::PairSpinDmi(LAMMPS *lmp) : PairSpin(lmp) { single_enable = 0; no_virial_fdotr_compute = 1; + lattice_flag = 0; } /* ---------------------------------------------------------------------- */ @@ -165,6 +166,16 @@ void PairSpinDmi::init_style() } if (ifix == modify->nfix) error->all(FLERR,"pair/spin style requires nve/spin"); + + // get the lattice_flag from nve/spin + + for (int i = 0; i < modify->nfix; i++) { + if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { + lockfixnvespin = (FixNVESpin *) modify->fix[i]; + lattice_flag = lockfixnvespin->lattice_flag; + } + } + } /* ---------------------------------------------------------------------- @@ -194,12 +205,13 @@ void *PairSpinDmi::extract(const char *str, int &dim) void PairSpinDmi::compute(int eflag, int vflag) { - int i,j,ii,jj,inum,jnum; + int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3]; + double xi[3], rij[3], eij[3]; double spi[3], spj[3]; double fi[3], fmi[3]; - double rsq; + double local_cut2; + double rsq, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; @@ -224,6 +236,7 @@ void PairSpinDmi::compute(int eflag, int vflag) for (ii = 0; ii < inum; ii++) { i = ilist[ii]; + itype = type[i]; xi[0] = x[i][0]; xi[1] = x[i][1]; @@ -242,6 +255,7 @@ void PairSpinDmi::compute(int eflag, int vflag) j = jlist[jj]; j &= NEIGHMASK; + jtype = type[j]; spj[0] = sp[j][0]; spj[1] = sp[j][1]; @@ -252,16 +266,27 @@ void PairSpinDmi::compute(int eflag, int vflag) fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; rij[0] = rij[1] = rij[2] = 0.0; + eij[0] = eij[1] = eij[2] = 0.0; rij[0] = x[j][0] - xi[0]; rij[1] = x[j][1] - xi[1]; rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - + inorm = 1.0/sqrt(rsq); + eij[0] = rij[0]*inorm; + eij[1] = rij[1]*inorm; + eij[2] = rij[2]*inorm; + + local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; + // compute magnetic and mechanical components of soc_dmi - compute_dmi(i,j,rsq,fmi,spi,spj); - compute_dmi_mech(i,j,fi,spi,spj); + if (rsq <= local_cut2) { + compute_dmi(i,j,rsq,eij,fmi,spi,spj); + if (lattice_flag) { + compute_dmi_mech(i,j,fi,spi,spj); + } + } f[i][0] += fi[0]; f[i][1] += fi[1]; @@ -300,15 +325,16 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) int *type = atom->type; double **x = atom->x; double **sp = atom->sp; + double local_cut2; - double xi[3], rij[3]; + double xi[3], rij[3], eij[3]; double spi[3], spj[3]; int iexchange, idmi, ineel, ime; int i,j,jj,inum,jnum,itype,jtype; int *ilist,*jlist,*numneigh,**firstneigh; - double rsq, rd, inorm; + double rsq, inorm; inum = list->inum; ilist = list->ilist; @@ -316,6 +342,7 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) firstneigh = list->firstneigh; i = ilist[ii]; + itype = type[i]; spi[0] = sp[i][0]; spi[1] = sp[i][1]; @@ -332,7 +359,6 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) j = jlist[jj]; j &= NEIGHMASK; - itype = type[ii]; jtype = type[j]; spj[0] = sp[j][0]; @@ -344,8 +370,15 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); + eij[0] = rij[0]*inorm; + eij[1] = rij[1]*inorm; + eij[2] = rij[2]*inorm; - compute_dmi(i,j,rsq,fmi,spi,spj); + local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; + + if (rsq <= local_cut2) { + compute_dmi(i,j,rsq,eij,fmi,spi,spj); + } } @@ -355,30 +388,21 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) compute the dmi interaction between spin i and spin j ------------------------------------------------------------------------- */ -void PairSpinDmi::compute_dmi(int i, int j, double rsq, double fmi[3], double spi[3], double spj[3]) +void PairSpinDmi::compute_dmi(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; + double dmix, dmiy, dmiz; itype = type[i]; jtype = type[j]; - double local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; + dmix = eij[1]*v_dmz[itype][jtype] - eij[2]*v_dmy[itype][jtype]; + dmiy = eij[2]*v_dmx[itype][jtype] - eij[2]*v_dmz[itype][jtype]; + dmiz = eij[0]*v_dmy[itype][jtype] - eij[1]*v_dmx[itype][jtype]; - if (rsq <= local_cut2) { - double dmix, dmiy, dmiz; - - //dmix = DM[itype][jtype] * v_dmx[itype][jtype]; - //dmiy = DM[itype][jtype] * v_dmy[itype][jtype]; - //dmiz = DM[itype][jtype] * v_dmz[itype][jtype]; - dmix = v_dmx[itype][jtype]; - dmiy = v_dmy[itype][jtype]; - dmiz = v_dmz[itype][jtype]; - - fmi[0] += (spj[1]*dmiz - spj[2]*dmiy); - fmi[1] += (spj[2]*dmix - spj[0]*dmiz); - fmi[2] += (spj[0]*dmiy - spj[1]*dmix); - - } + fmi[0] += (spj[1]*dmiz - spj[2]*dmiy); + fmi[1] += (spj[2]*dmix - spj[0]*dmiz); + fmi[2] += (spj[0]*dmiy - spj[1]*dmix); } /* ---------------------------------------------------------------------- diff --git a/src/SPIN/pair_spin_dmi.h b/src/SPIN/pair_spin_dmi.h index fda38b48fd..108acf21e7 100755 --- a/src/SPIN/pair_spin_dmi.h +++ b/src/SPIN/pair_spin_dmi.h @@ -37,7 +37,7 @@ class PairSpinDmi : public PairSpin { void compute(int, int); void compute_single_pair(int, double *); - void compute_dmi(int, int, double, double *, double *, double *); + void compute_dmi(int, int, double, double *, double *, double *, double *); void compute_dmi_mech(int, int, double *, double *, double *); void write_restart(FILE *); @@ -52,6 +52,9 @@ class PairSpinDmi : public PairSpin { double **v_dmx, **v_dmy, **v_dmz; // dmi direction double **cut_spin_dmi; // cutoff distance dmi + int lattice_flag; // flag for mech force computation + class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups + void allocate(); }; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 145d49fe85..4ff5ccb2d4 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -204,16 +204,15 @@ void PairSpinExchange::compute(int eflag, int vflag) int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl,ecoul; double xi[3], rij[3], eij[3]; + double spi[3], spj[3]; double fi[3], fmi[3]; - double cut_ex_2,cut_spin_exchange_global2; + double local_cut2; double rsq, inorm; int *ilist,*jlist,*numneigh,**firstneigh; - double spi[3],spj[3]; evdwl = ecoul = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = vflag_fdotr = 0; - cut_spin_exchange_global2 = cut_spin_exchange_global*cut_spin_exchange_global; double **x = atom->x; double **f = atom->f; @@ -268,10 +267,11 @@ void PairSpinExchange::compute(int eflag, int vflag) eij[1] = inorm*rij[1]; eij[2] = inorm*rij[2]; - cut_ex_2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; + local_cut2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; // compute exchange interaction - if (rsq <= cut_ex_2) { + + if (rsq <= local_cut2) { compute_exchange(i,j,rsq,fmi,spi,spj); if (lattice_flag) { compute_exchange_mech(i,j,rsq,eij,fi,spi,spj); @@ -285,7 +285,6 @@ void PairSpinExchange::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - // check newton pair => see if needs correction if (newton_pair || j < nlocal) { f[j][0] -= fi[0]; f[j][1] -= fi[1]; @@ -293,7 +292,7 @@ void PairSpinExchange::compute(int eflag, int vflag) } if (eflag) { - if (rsq <= cut_ex_2) { + if (rsq <= local_cut2) { evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= hbar; } @@ -375,31 +374,25 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) } /* ---------------------------------------------------------------------- - compute the magnetic exchange interaction between spin i and spin j + compute exchange interaction between spins i and j ------------------------------------------------------------------------- */ void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; + double Jex, ra; itype = type[i]; jtype = type[j]; - - double local_cut2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; - - if (rsq <= local_cut2) { - double Jex, ra; - ra = rsq/J3[itype][jtype]/J3[itype][jtype]; - Jex = 4.0*J1_mag[itype][jtype]*ra; - Jex *= (1.0-J2[itype][jtype]*ra); - Jex *= exp(-ra); - - fmi[0] += Jex*spj[0]; - fmi[1] += Jex*spj[1]; - fmi[2] += Jex*spj[2]; + ra = rsq/J3[itype][jtype]/J3[itype][jtype]; + Jex = 4.0*J1_mag[itype][jtype]*ra; + Jex *= (1.0-J2[itype][jtype]*ra); + Jex *= exp(-ra); - } + fmi[0] += Jex*spj[0]; + fmi[1] += Jex*spj[1]; + fmi[2] += Jex*spj[2]; } /* ---------------------------------------------------------------------- @@ -410,29 +403,23 @@ void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double ri { int *type = atom->type; int itype, jtype; + double Jex, Jex_mech, ra, rr, iJ3; itype = type[i]; jtype = type[j]; - - double local_cut2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; + + Jex = J1_mech[itype][jtype]; + iJ3 = 1.0/(J3[itype][jtype]*J3[itype][jtype]); - if (rsq <= local_cut2) { - double Jex, Jex_mech, ra, rr, iJ3; - Jex = J1_mech[itype][jtype]; - iJ3 = 1.0/(J3[itype][jtype]*J3[itype][jtype]); + ra = rsq*iJ3; + rr = sqrt(rsq)*iJ3; - ra = rsq*iJ3; - rr = sqrt(rsq)*iJ3; + Jex_mech = 1.0-ra-J2[itype][jtype]*ra*(2.0-ra); + Jex_mech *= 8.0*Jex*rr*exp(-ra); + Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); - Jex_mech = 1.0-ra-J2[itype][jtype]*ra*(2.0-ra); - Jex_mech *= 8.0*Jex*rr*exp(-ra); - Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); - - fi[0] -= Jex_mech*rij[0]; - fi[1] -= Jex_mech*rij[1]; - fi[2] -= Jex_mech*rij[2]; - - } - + fi[0] -= Jex_mech*rij[0]; + fi[1] -= Jex_mech*rij[1]; + fi[2] -= Jex_mech*rij[2]; } /* ---------------------------------------------------------------------- diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_me.cpp index ee32127c23..a7072a9cd2 100755 --- a/src/SPIN/pair_spin_me.cpp +++ b/src/SPIN/pair_spin_me.cpp @@ -49,6 +49,7 @@ PairSpinMe::PairSpinMe(LAMMPS *lmp) : PairSpin(lmp) { single_enable = 0; no_virial_fdotr_compute = 1; + lattice_flag = 0; } /* ---------------------------------------------------------------------- */ @@ -163,6 +164,16 @@ void PairSpinMe::init_style() } if (ifix == modify->nfix) error->all(FLERR,"pair/spin style requires nve/spin"); + + // get the lattice_flag from nve/spin + + for (int i = 0; i < modify->nfix; i++) { + if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { + lockfixnvespin = (FixNVESpin *) modify->fix[i]; + lattice_flag = lockfixnvespin->lattice_flag; + } + } + } /* ---------------------------------------------------------------------- @@ -195,11 +206,12 @@ void PairSpinMe::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3]; + double xi[3], rij[3], eij[3]; double spi[3], spj[3]; double fi[3], fj[3]; double fmi[3], fmj[3]; - double rsq, rd, inorm; + double local_cut2; + double rsq, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; @@ -224,6 +236,8 @@ void PairSpinMe::compute(int eflag, int vflag) for (ii = 0; ii < inum; ii++) { i = ilist[ii]; + itype = type[i]; + xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -256,17 +270,22 @@ void PairSpinMe::compute(int eflag, int vflag) rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); - rij[0] *= inorm; - rij[1] *= inorm; - rij[2] *= inorm; + eij[0] *= inorm; + eij[1] *= inorm; + eij[2] *= inorm; - itype = type[i]; jtype = type[j]; + local_cut2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; + // compute me interaction - compute_me(i,j,rsq,rij,fmi,spi,spj); - compute_me_mech(i,j,fi,spi,spj); + if (rsq <= local_cut2) { + compute_me(i,j,rsq,eij,fmi,spi,spj); + if (lattice_flag) { + compute_me_mech(i,j,fi,spi,spj); + } + } f[i][0] += fi[0]; f[i][1] += fi[1]; @@ -305,6 +324,7 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) int *type = atom->type; double **x = atom->x; double **sp = atom->sp; + double local_cut2; double xi[3], rij[3], eij[3]; double spi[3], spj[3]; @@ -313,7 +333,7 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) int i,j,jj,inum,jnum,itype,jtype; int *ilist,*jlist,*numneigh,**firstneigh; - double rsq, rd, inorm; + double rsq, inorm; inum = list->inum; ilist = list->ilist; @@ -321,6 +341,7 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) firstneigh = list->firstneigh; i = ilist[ii]; + itype = type[i]; spi[0] = sp[i][0]; spi[1] = sp[i][1]; @@ -339,8 +360,8 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) j = jlist[jj]; j &= NEIGHMASK; - itype = type[ii]; jtype = type[j]; + local_cut2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; spj[0] = sp[j][0]; spj[1] = sp[j][1]; @@ -355,7 +376,9 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) eij[1] = inorm*rij[1]; eij[2] = inorm*rij[2]; - compute_me(i,j,rsq,eij,fmi,spi,spj); + if (rsq <= local_cut2) { + compute_me(i,j,rsq,eij,fmi,spi,spj); + } } } diff --git a/src/SPIN/pair_spin_me.h b/src/SPIN/pair_spin_me.h index cd1a93ad6e..7875461166 100755 --- a/src/SPIN/pair_spin_me.h +++ b/src/SPIN/pair_spin_me.h @@ -52,6 +52,9 @@ class PairSpinMe : public PairSpin { double **v_mex, **v_mey, **v_mez; // me direction double **cut_spin_me; // me cutoff distance + int lattice_flag; // flag for mech force computation + class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups + void allocate(); }; diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index a34931af85..d44ce20518 100755 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -50,6 +50,7 @@ PairSpinNeel::PairSpinNeel(LAMMPS *lmp) : PairSpin(lmp) { single_enable = 0; no_virial_fdotr_compute = 1; + lattice_flag = 0; } /* ---------------------------------------------------------------------- */ @@ -174,6 +175,16 @@ void PairSpinNeel::init_style() } if (ifix == modify->nfix) error->all(FLERR,"pair/spin style requires nve/spin"); + + // get the lattice_flag from nve/spin + + for (int i = 0; i < modify->nfix; i++) { + if (strcmp(modify->fix[i]->style,"nve/spin") == 0) { + lockfixnvespin = (FixNVESpin *) modify->fix[i]; + lattice_flag = lockfixnvespin->lattice_flag; + } + } + } /* ---------------------------------------------------------------------- @@ -208,7 +219,8 @@ void PairSpinNeel::compute(int eflag, int vflag) double xi[3], rij[3], eij[3]; double spi[3], spj[3]; double fi[3], fmi[3]; - double rsq, rd, inorm; + double local_cut2; + double rsq, inorm; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; @@ -228,7 +240,7 @@ void PairSpinNeel::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; - // pair spin computations + // computation of the neel interaction // loop over atoms and their neighbors for (ii = 0; ii < inum; ii++) { @@ -270,10 +282,16 @@ void PairSpinNeel::compute(int eflag, int vflag) itype = type[i]; jtype = type[j]; + local_cut2 = cut_spin_neel[itype][jtype]*cut_spin_neel[itype][jtype]; + // compute magnetic and mechanical components of soc_neel - compute_neel(i,j,rsq,eij,fmi,spi,spj); - compute_neel_mech(i,j,rsq,eij,fi,spi,spj); + if (rsq <= local_cut2) { + compute_neel(i,j,rsq,eij,fmi,spi,spj); + if (lattice_flag) { + compute_neel_mech(i,j,rsq,eij,fi,spi,spj); + } + } f[i][0] += fi[0]; f[i][1] += fi[1]; @@ -307,11 +325,11 @@ void PairSpinNeel::compute(int eflag, int vflag) void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) { - const int nlocal = atom->nlocal; int *type = atom->type; double **x = atom->x; double **sp = atom->sp; + double local_cut2; double xi[3], rij[3], eij[3]; double spi[3], spj[3]; @@ -328,6 +346,7 @@ void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) firstneigh = list->firstneigh; i = ilist[ii]; + itype = type[i]; spi[0] = sp[i][0]; spi[1] = sp[i][1]; @@ -346,9 +365,10 @@ void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) j = jlist[jj]; j &= NEIGHMASK; - itype = type[ii]; jtype = type[j]; + local_cut2 = cut_spin_neel[itype][jtype]*cut_spin_neel[itype][jtype]; + spj[0] = sp[j][0]; spj[1] = sp[j][1]; spj[2] = sp[j][2]; @@ -359,7 +379,9 @@ void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); - compute_neel(i,j,rsq,eij,fmi,spi,spj); + if (rsq <= local_cut2) { + compute_neel(i,j,rsq,eij,fmi,spi,spj); + } } } @@ -373,67 +395,64 @@ void PairSpinNeel::compute_neel(int i, int j, double rsq, double eij[3], double itype = type[i]; jtype = type[j]; - double local_cut2 = cut_spin_neel[itype][jtype]*cut_spin_neel[itype][jtype]; + double gij, q1ij, q2ij, ra; + double pdx, pdy, pdz; + double pq1x, pq1y, pq1z; + double pq2x, pq2y, pq2z; - if (rsq <= local_cut2) { - double gij, q1ij, q2ij, ra; - double pdx, pdy, pdz; - double pq1x, pq1y, pq1z; - double pq2x, pq2y, pq2z; + // pseudo-dipolar component + + ra = rsq/g3[itype][jtype]/g3[itype][jtype]; + gij = 4.0*g1[itype][jtype]*ra; + gij *= (1.0-g2[itype][jtype]*ra); + gij *= exp(-ra); - // pseudo-dipolar component - ra = rsq/g3[itype][jtype]/g3[itype][jtype]; - gij = 4.0*g1[itype][jtype]*ra; - gij *= (1.0-g2[itype][jtype]*ra); - gij *= exp(-ra); + double scalar_eij_si = eij[0]*spi[0] + eij[1]*spi[1] + eij[2]*spi[2]; + double scalar_eij_sj = eij[0]*spj[0] + eij[1]*spj[1] + eij[2]*spj[2]; + double scalar_si_sj = spi[0]*spj[0] + spi[1]*spj[1] + spi[2]*spj[2]; - double scalar_eij_si = eij[0]*spi[0] + eij[1]*spi[1] + eij[2]*spi[2]; - double scalar_eij_sj = eij[0]*spj[0] + eij[1]*spj[1] + eij[2]*spj[2]; - double scalar_si_sj = spi[0]*spj[0] + spi[1]*spj[1] + spi[2]*spj[2]; + double gij_eij_sj = gij*scalar_eij_sj; + double gij_3 = gij/3.0; + pdx = gij_eij_sj*eij[0] - gij_3*spj[0]; + pdy = gij_eij_sj*eij[1] - gij_3*spj[1]; + pdz = gij_eij_sj*eij[2] - gij_3*spj[2]; - double gij_eij_sj = gij*scalar_eij_sj; - double gij_3 = gij/3.0; - pdx = gij_eij_sj*eij[0] - gij_3*spj[0]; - pdy = gij_eij_sj*eij[1] - gij_3*spj[1]; - pdz = gij_eij_sj*eij[2] - gij_3*spj[2]; + // pseudo-quadrupolar component - // pseudo-quadrupolar component - ra = rsq/q3[itype][jtype]/q3[itype][jtype]; - q1ij = 4.0*q1[itype][jtype]*ra; - q1ij *= (1.0-q2[itype][jtype]*ra); - q1ij *= exp(-ra); - q2ij = (-2.0*q1ij/9.0); + ra = rsq/q3[itype][jtype]/q3[itype][jtype]; + q1ij = 4.0*q1[itype][jtype]*ra; + q1ij *= (1.0-q2[itype][jtype]*ra); + q1ij *= exp(-ra); + q2ij = (-2.0*q1ij/9.0); - double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; - pq1x = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[0]/3.0; - pq1y = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[1]/3.0; - pq1z = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[2]/3.0; + double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; + pq1x = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[0]/3.0; + pq1y = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[1]/3.0; + pq1z = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[2]/3.0; - double pqt1 = (scalar_eij_sj*scalar_eij_sj-scalar_si_sj/3.0); - pq1x += pqt1*(2.0*scalar_eij_si*eij[0] - spj[0]/3.0); - pq1y += pqt1*(2.0*scalar_eij_si*eij[1] - spj[1]/3.0); - pq1z += pqt1*(2.0*scalar_eij_si*eij[2] - spj[2]/3.0); + double pqt1 = (scalar_eij_sj*scalar_eij_sj-scalar_si_sj/3.0); + pq1x += pqt1*(2.0*scalar_eij_si*eij[0] - spj[0]/3.0); + pq1y += pqt1*(2.0*scalar_eij_si*eij[1] - spj[1]/3.0); + pq1z += pqt1*(2.0*scalar_eij_si*eij[2] - spj[2]/3.0); - pq1x *= q1ij; - pq1y *= q1ij; - pq1z *= q1ij; + pq1x *= q1ij; + pq1y *= q1ij; + pq1z *= q1ij; - double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; - pq2x = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[0] + scalar_eij_sj_3*eij[0]; - pq2y = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[1] + scalar_eij_sj_3*eij[1]; - pq2z = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[2] + scalar_eij_sj_3*eij[2]; + double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; + pq2x = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[0] + scalar_eij_sj_3*eij[0]; + pq2y = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[1] + scalar_eij_sj_3*eij[1]; + pq2z = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[2] + scalar_eij_sj_3*eij[2]; - pq2x *= q2ij; - pq2y *= q2ij; - pq2z *= q2ij; + pq2x *= q2ij; + pq2y *= q2ij; + pq2z *= q2ij; - // summing three contributions - fmi[0] += (pdx + pq1x + pq2x); - fmi[1] += (pdy + pq1y + pq2y); - fmi[2] += (pdz + pq1z + pq2z); - - } + // adding three contributions + fmi[0] += (pdx + pq1x + pq2x); + fmi[1] += (pdy + pq1y + pq2y); + fmi[2] += (pdz + pq1z + pq2z); } /* ---------------------------------------------------------------------- */ @@ -445,9 +464,6 @@ void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], do itype = type[i]; jtype = type[j]; - double local_cut2 = cut_spin_neel[itype][jtype]*cut_spin_neel[itype][jtype]; - - if (rsq <= local_cut2) { double g_mech, gij, dgij; double q_mech, q1ij, dq1ij; double q2ij, dq2ij; @@ -463,6 +479,7 @@ void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], do double scalar_eij_sj = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; // pseudo-dipolar component + g_mech = g1_mech[itype][jtype]; ig3 = 1.0/(g3[itype][jtype]*g3[itype][jtype]); @@ -485,6 +502,7 @@ void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], do pdz = -(pdt1*eij[2] + pdt2*spi[2] + pdt3*spj[2]); // pseudo-quadrupolar component + q_mech = q1_mech[itype][jtype]; iq3 = 1.0/(q3[itype][jtype]*q3[itype][jtype]); @@ -500,73 +518,72 @@ void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], do dq1ij *= 8.0*q_mech*rr*exp(-ra); dq2ij = -2.0*dq1ij/9.0; - double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; - double scalar_eij_sj_2 = scalar_eij_sj*scalar_eij_sj; - double pqt1 = scalar_eij_si_2 - scalar_si_sj/3.0; - double pqt2 = scalar_eij_sj_2 - scalar_si_sj/3.0; - pq1x = dq1ij * pqt1 * pqt2 * eij[0]; - pq1y = dq1ij * pqt1 * pqt2 * eij[1]; - pq1z = dq1ij * pqt1 * pqt2 * eij[2]; - - double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; - double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; - double scalar_si_sj_2 = scalar_si_sj*scalar_si_sj; - /* double pqt3 = 2.0*scalar_eij_si*scalar_eij_sj_3/drij; - double pqt4 = 2.0*scalar_eij_sj*scalar_eij_si_3/drij; - double pqt5 = -2.0*scalar_si_sj*scalar_eij_si/(3.0*drij); - double pqt6 = -2.0*scalar_si_sj*scalar_eij_sj/(3.0*drij); - // pq1x += q1ij*(spi[0]*(pqt3+pqt6) + spj[0]*(pqt4+)); - pq1x += q1ij*(pqt3*spi[0]+pqt4*spj[0]+pqt5*spi[0]+pqt6*spi[0]); - pq1y += q1ij*(pqt3*spi[1]+pqt4*spj[1]+pqt5*spi[1]+pqt6*spj[1]); - pq1z += q1ij*(pqt3*spi[2]+pqt4*spj[2]+pqt5*spi[2]+pqt6*spj[2]); - */ - double pqt3 = 2.0*scalar_eij_si*(scalar_eij_sj_2-scalar_si_sj/3.0)/drij; - double pqt4 = 2.0*scalar_eij_sj*(scalar_eij_si_2-scalar_si_sj/3.0)/drij; - pq1x += q1ij*(pqt3*spi[0] + pqt4*spj[0]); - pq1y += q1ij*(pqt3*spi[1] + pqt4*spj[1]); - pq1z += q1ij*(pqt3*spi[2] + pqt4*spj[2]); - double pqt7 = 4.0*scalar_eij_si_2*scalar_eij_sj_2/drij; - double pqt8 = 2.0*scalar_si_sj_2*scalar_eij_sj/(3.0*drij); - double pqt9 = 2.0*scalar_si_sj_2*scalar_eij_si/(3.0*drij); - pq1x -= q1ij*(pqt7 + pqt8 + pqt9)*eij[0]; - pq1y -= q1ij*(pqt7 + pqt8 + pqt9)*eij[1]; - pq1z -= q1ij*(pqt7 + pqt8 + pqt9)*eij[2]; - - /* - double pqt3 = 2.0*scalar_eij_si*(scalar_eij_sj_2-scalar_si_sj/3.0)/drij; - double pqt4 = 2.0*scalar_eij_sj*(scalar_eij_si_2-scalar_si_sj/3.0)/drij; - pq1x += q1ij*(pqt3*spi[0] + pqt4*spj[0]); - pq1y += q1ij*(pqt3*spi[1] + pqt4*spj[1]); - pq1z += q1ij*(pqt3*spi[2] + pqt4*spj[2]); - */ - - //double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; - //double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; - double pqt10 = scalar_eij_sj*scalar_eij_si_3; - double pqt11 = scalar_eij_si*scalar_eij_sj_3; - pq2x = dq2ij*(pqt10 + pqt11)*eij[0]; - pq2y = dq2ij*(pqt10 + pqt11)*eij[1]; - pq2z = dq2ij*(pqt10 + pqt11)*eij[2]; - - double pqt12 = scalar_eij_si_3/drij; - double pqt13 = scalar_eij_sj_3/drij; - double pqt14 = 3.0*scalar_eij_sj*scalar_eij_si_2/drij; - double pqt15 = 3.0*scalar_eij_si*scalar_eij_sj_2/drij; - pq2x += q2ij*((pqt12+pqt15)*spj[0]+(pqt13+pqt14)*spi[0]); - pq2y += q2ij*((pqt12+pqt15)*spj[1]+(pqt13+pqt14)*spi[1]); - pq2z += q2ij*((pqt12+pqt15)*spj[2]+(pqt13+pqt14)*spi[2]); - double pqt16 = 4.0*scalar_eij_sj*scalar_eij_si_3/drij; - double pqt17 = 4.0*scalar_eij_si*scalar_eij_sj_3/drij; - pq2x -= q2ij*(pqt16 + pqt17)*eij[0]; - pq2y -= q2ij*(pqt16 + pqt17)*eij[1]; - pq2z -= q2ij*(pqt16 + pqt17)*eij[2]; - - fi[0] = pdx + pq1x + pq2x; - fi[2] = pdy + pq1y + pq2y; - fi[3] = pdz + pq1z + pq2z; - - } + double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; + double scalar_eij_sj_2 = scalar_eij_sj*scalar_eij_sj; + double pqt1 = scalar_eij_si_2 - scalar_si_sj/3.0; + double pqt2 = scalar_eij_sj_2 - scalar_si_sj/3.0; + pq1x = dq1ij * pqt1 * pqt2 * eij[0]; + pq1y = dq1ij * pqt1 * pqt2 * eij[1]; + pq1z = dq1ij * pqt1 * pqt2 * eij[2]; + double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; + double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; + double scalar_si_sj_2 = scalar_si_sj*scalar_si_sj; +/* double pqt3 = 2.0*scalar_eij_si*scalar_eij_sj_3/drij; + double pqt4 = 2.0*scalar_eij_sj*scalar_eij_si_3/drij; + double pqt5 = -2.0*scalar_si_sj*scalar_eij_si/(3.0*drij); + double pqt6 = -2.0*scalar_si_sj*scalar_eij_sj/(3.0*drij); +// pq1x += q1ij*(spi[0]*(pqt3+pqt6) + spj[0]*(pqt4+)); + pq1x += q1ij*(pqt3*spi[0]+pqt4*spj[0]+pqt5*spi[0]+pqt6*spi[0]); + pq1y += q1ij*(pqt3*spi[1]+pqt4*spj[1]+pqt5*spi[1]+pqt6*spj[1]); + pq1z += q1ij*(pqt3*spi[2]+pqt4*spj[2]+pqt5*spi[2]+pqt6*spj[2]); +*/ + double pqt3 = 2.0*scalar_eij_si*(scalar_eij_sj_2-scalar_si_sj/3.0)/drij; + double pqt4 = 2.0*scalar_eij_sj*(scalar_eij_si_2-scalar_si_sj/3.0)/drij; + pq1x += q1ij*(pqt3*spi[0] + pqt4*spj[0]); + pq1y += q1ij*(pqt3*spi[1] + pqt4*spj[1]); + pq1z += q1ij*(pqt3*spi[2] + pqt4*spj[2]); + double pqt7 = 4.0*scalar_eij_si_2*scalar_eij_sj_2/drij; + double pqt8 = 2.0*scalar_si_sj_2*scalar_eij_sj/(3.0*drij); + double pqt9 = 2.0*scalar_si_sj_2*scalar_eij_si/(3.0*drij); + pq1x -= q1ij*(pqt7 + pqt8 + pqt9)*eij[0]; + pq1y -= q1ij*(pqt7 + pqt8 + pqt9)*eij[1]; + pq1z -= q1ij*(pqt7 + pqt8 + pqt9)*eij[2]; + +/* + double pqt3 = 2.0*scalar_eij_si*(scalar_eij_sj_2-scalar_si_sj/3.0)/drij; + double pqt4 = 2.0*scalar_eij_sj*(scalar_eij_si_2-scalar_si_sj/3.0)/drij; + pq1x += q1ij*(pqt3*spi[0] + pqt4*spj[0]); + pq1y += q1ij*(pqt3*spi[1] + pqt4*spj[1]); + pq1z += q1ij*(pqt3*spi[2] + pqt4*spj[2]); +*/ + + //double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; + //double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; + double pqt10 = scalar_eij_sj*scalar_eij_si_3; + double pqt11 = scalar_eij_si*scalar_eij_sj_3; + pq2x = dq2ij*(pqt10 + pqt11)*eij[0]; + pq2y = dq2ij*(pqt10 + pqt11)*eij[1]; + pq2z = dq2ij*(pqt10 + pqt11)*eij[2]; + + double pqt12 = scalar_eij_si_3/drij; + double pqt13 = scalar_eij_sj_3/drij; + double pqt14 = 3.0*scalar_eij_sj*scalar_eij_si_2/drij; + double pqt15 = 3.0*scalar_eij_si*scalar_eij_sj_2/drij; + pq2x += q2ij*((pqt12+pqt15)*spj[0]+(pqt13+pqt14)*spi[0]); + pq2y += q2ij*((pqt12+pqt15)*spj[1]+(pqt13+pqt14)*spi[1]); + pq2z += q2ij*((pqt12+pqt15)*spj[2]+(pqt13+pqt14)*spi[2]); + double pqt16 = 4.0*scalar_eij_sj*scalar_eij_si_3/drij; + double pqt17 = 4.0*scalar_eij_si*scalar_eij_sj_3/drij; + pq2x -= q2ij*(pqt16 + pqt17)*eij[0]; + pq2y -= q2ij*(pqt16 + pqt17)*eij[1]; + pq2z -= q2ij*(pqt16 + pqt17)*eij[2]; + + // adding three contributions + + fi[0] = pdx + pq1x + pq2x; + fi[2] = pdy + pq1y + pq2y; + fi[3] = pdz + pq1z + pq2z; } /* ---------------------------------------------------------------------- diff --git a/src/SPIN/pair_spin_neel.h b/src/SPIN/pair_spin_neel.h index d59f92df26..e1973d35b6 100755 --- a/src/SPIN/pair_spin_neel.h +++ b/src/SPIN/pair_spin_neel.h @@ -45,16 +45,21 @@ class PairSpinNeel : public PairSpin { void write_restart_settings(FILE *); void read_restart_settings(FILE *); - double cut_spin_neel_global; // global neel cutoff distance + double cut_spin_neel_global; // global neel cutoff distance protected: - // pseudo-dipolar coeff. - double **g1, **g1_mech; // exchange coeffs gij - double **g2, **g3; // g1 in eV, g2 adim, g3 in Ang - // pseudo-quadrupolar coeff. - double **q1, **q1_mech; // exchange coeffs qij - double **q2, **q3; // q1 in eV, q2 adim, q3 in Ang - double **cut_spin_neel; // cutoff distance exchange + + // pseudo-dipolar and pseudo-quadrupolar coeff. + + double **g1, **g1_mech; // exchange coeffs gij + double **g2, **g3; // g1 in eV, g2 adim, g3 in Ang + double **q1, **q1_mech; // exchange coeffs qij + double **q2, **q3; // q1 in eV, q2 adim, q3 in Ang + double **cut_spin_neel; // cutoff distance exchange + + int lattice_flag; // flag for mech force computation + class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups + void allocate(); }; From eaaad3f6d59dee5db65699b2cc29b22efe5d1be3 Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 26 Apr 2018 15:48:34 -0600 Subject: [PATCH 092/675] Commit JT-2 042618 - commit after after rebase - some #include were needed --- src/SPIN/fix_nve_spin.cpp | 2 ++ src/SPIN/pair_spin_dmi.cpp | 1 + src/SPIN/pair_spin_exchange.cpp | 1 + src/SPIN/pair_spin_me.cpp | 1 + src/SPIN/pair_spin_neel.cpp | 1 + 5 files changed, 6 insertions(+) diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 2f13bdd650..d94103dd7f 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -28,6 +28,8 @@ #include "atom.h" #include "atom_vec.h" #include "citeme.h" +#include "comm.h" +#include "domain.h" #include "error.h" #include "fix_precession_spin.h" #include "fix_nve_spin.h" diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 83794a7a9c..8e1b961794 100755 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -37,6 +37,7 @@ #include "neigh_request.h" #include "math_const.h" #include "memory.h" +#include "modify.h" #include "pair_spin_dmi.h" #include "update.h" diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 4ff5ccb2d4..04504cfe12 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -37,6 +37,7 @@ #include "neigh_request.h" #include "math_const.h" #include "memory.h" +#include "modify.h" #include "pair_spin_exchange.h" #include "update.h" diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_me.cpp index a7072a9cd2..f01fd23dd5 100755 --- a/src/SPIN/pair_spin_me.cpp +++ b/src/SPIN/pair_spin_me.cpp @@ -37,6 +37,7 @@ #include "neigh_request.h" #include "math_const.h" #include "memory.h" +#include "modify.h" #include "pair_spin_me.h" #include "update.h" diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index d44ce20518..fdb95a3fc3 100755 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -38,6 +38,7 @@ #include "neigh_request.h" #include "math_const.h" #include "memory.h" +#include "modify.h" #include "pair_spin_neel.h" #include "update.h" From d504dcc46595c1fda92453063763c4b0b6ff0540 Mon Sep 17 00:00:00 2001 From: PabloPiaggi Date: Fri, 27 Apr 2018 17:50:35 +0200 Subject: [PATCH 093/675] Some changes to compute_pair_entropy_atom --- src/compute_pair_entropy_atom.cpp | 247 ++++++++++++++++++++++++++++++ src/compute_pair_entropy_atom.h | 84 ++++++++++ 2 files changed, 331 insertions(+) create mode 100644 src/compute_pair_entropy_atom.cpp create mode 100644 src/compute_pair_entropy_atom.h diff --git a/src/compute_pair_entropy_atom.cpp b/src/compute_pair_entropy_atom.cpp new file mode 100644 index 0000000000..baeddddd61 --- /dev/null +++ b/src/compute_pair_entropy_atom.cpp @@ -0,0 +1,247 @@ +/* ---------------------------------------------------------------------- + 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: Pablo Piaggi (EPFL Lausanne) +------------------------------------------------------------------------- */ + +#include +#include +#include +#include "compute_pair_entropy_atom.h" +#include "atom.h" +#include "update.h" +#include "modify.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "force.h" +#include "pair.h" +#include "comm.h" +#include "math_extra.h" +#include "math_const.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : + Compute(lmp, narg, arg), + gofr(NULL), pair_entropy(NULL) +{ + if (narg < 5 || narg > 7) + error->all(FLERR,"Illegal compute pentropy/atom command"); + + sigma = force->numeric(FLERR,arg[3]); + cutoff = force->numeric(FLERR,arg[4]); + if (cutoff < 0.0) error->all(FLERR,"Illegal compute pentropy/atom command; negative cutoff"); + + avg_flag = 0; + + // optional keywords + + int iarg = 5; + while (iarg < narg) { + if (strcmp(arg[iarg],"avg") == 0) { + if (iarg+2 > narg) + error->all(FLERR,"Illegal compute pentropy/atom missing arguments after avg"); + if (strcmp(arg[iarg+1],"yes") == 0) avg_flag = 1; + else if (strcmp(arg[iarg+1],"no") == 0) avg_flag = 0; + else error->all(FLERR,"Illegal compute centro/atom argument after avg should be yes or no"); + cutoff2 = force->numeric(FLERR,arg[iarg+2]); + if (cutoff2 < 0.0) error->all(FLERR,"Illegal compute pentropy/atom command; negative cutoff2"); + cutsq2 = cutoff2*cutoff2; + iarg += 2; + } else error->all(FLERR,"Illegal compute centro/atom argument after sigma and cutoff should be avg"); + } + + peratom_flag = 1; + + cutsq = cutoff*cutoff; + nbin = static_cast(cutoff / sigma) + 1; + nmax = 0; + maxneigh = 0; + deltabin = 2; + deltar = sigma; + rbin = new double(nbin); + rbinsq = new double(nbin); + for (int i = 0; i < nbin; i++) { + rbin[i] = i*deltar; + rbinsq[i] = rbin[i]*rbin[i]; + } +} + +/* ---------------------------------------------------------------------- */ + +ComputePairEntropyAtom::~ComputePairEntropyAtom() +{ + memory->destroy(pair_entropy); + memory->destroy(gofr); +} + +/* ---------------------------------------------------------------------- */ + +void ComputePairEntropyAtom::init() +{ + if (force->pair == NULL) + error->all(FLERR,"Compute centro/atom requires a pair style be defined"); + + double largest_cutsq; + largest_cutsq = cutsq; + if (cutsq2 > cutsq) largest_cutsq = cutsq2; + + if (sqrt(largest_cutsq) > force->pair->cutforce) + error->all(FLERR,"Compute pentropy/atom cutoff is longer than pairwise cutoff"); + + if (2.0*sqrt(largest_cutsq) > force->pair->cutforce + neighbor->skin && + comm->me == 0) + error->warning(FLERR,"Compute pentropy/atom cutoff may be too large to find " + "ghost atom neighbors"); + + int count = 0; + for (int i = 0; i < modify->ncompute; i++) + if (strcmp(modify->compute[i]->style,"pentropy/atom") == 0) count++; + if (count > 1 && comm->me == 0) + error->warning(FLERR,"More than one compute pentropy/atom"); + + // need an occasional full neighbor list + + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->pair = 0; + neighbor->requests[irequest]->compute = 1; + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; + neighbor->requests[irequest]->occasional = 1; +} + +/* ---------------------------------------------------------------------- */ + +void ComputePairEntropyAtom::init_list(int id, NeighList *ptr) +{ + list = ptr; +} + +/* ---------------------------------------------------------------------- */ + +void ComputePairEntropyAtom::compute_peratom() +{ + int i,j,k,ii,jj,kk,n,inum,jnum; + double xtmp,ytmp,ztmp,delx,dely,delz,rsq,value; + int *ilist,*jlist,*numneigh,**firstneigh; + + invoked_peratom = update->ntimestep; + + // grow pair_entropy array if necessary + + if (atom->nmax > nmax) { + memory->destroy(pair_entropy); + nmax = atom->nmax; + memory->create(pair_entropy,nmax,"pentropy/atom:pair_entropy"); + vector_atom = pair_entropy; + } + + // invoke full neighbor list (will copy or build if necessary) + + neighbor->build_one(list); + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // compute pair entropy for each atom in group + // use full neighbor list + + double **x = atom->x; + int *mask = atom->mask; + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + if (mask[i] & groupbit) { + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + + // calculate kernel normalization + double nlist_cutoff = force->pair->cutforce; + double density = jnum/((4./3.)*MY_PI*cutoff*nlist_cutoff*nlist_cutoff*nlist_cutoff); + double normConstantBase = 2*MY_PI*density; // Normalization of g(r) + normConstantBase *= sqrt(2.*MY_PI)*sigma; // Normalization of gaussian + double invNormConstantBase = 1./normConstantBase; + double sigmasq2=2*sigma*sigma; + + // loop over list of all neighbors within force cutoff + + // re-initialize gofr + delete [] gofr; + gofr = new double(nbin); + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + if (rsq < cutsq) { + // contribute to gofr + double r=sqrt(rsq); + int bin=floor(r/deltar); + int minbin, maxbin; // These cannot be unsigned + // Only consider contributions to g(r) of atoms less than n*sigma bins apart from the actual distance + minbin=bin - deltabin; + if (minbin < 0) minbin=0; + if (minbin > (nbin-1)) minbin=nbin-1; + maxbin=bin + deltabin; + if (maxbin > (nbin-1)) maxbin=nbin-1; + for(int k=minbin;k Date: Sat, 28 Apr 2018 09:01:09 +0200 Subject: [PATCH 094/675] pair_entropy_atom workin - avg missing --- src/compute_pair_entropy_atom.cpp | 78 +++++++++++++++++++------------ src/compute_pair_entropy_atom.h | 2 - 2 files changed, 49 insertions(+), 31 deletions(-) diff --git a/src/compute_pair_entropy_atom.cpp b/src/compute_pair_entropy_atom.cpp index baeddddd61..3e45ea530d 100644 --- a/src/compute_pair_entropy_atom.cpp +++ b/src/compute_pair_entropy_atom.cpp @@ -40,9 +40,9 @@ using namespace MathConst; ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), - gofr(NULL), pair_entropy(NULL) + list(NULL), pair_entropy(NULL) { - if (narg < 5 || narg > 7) + if (narg < 5 || narg > 5) error->all(FLERR,"Illegal compute pentropy/atom command"); sigma = force->numeric(FLERR,arg[3]); @@ -52,7 +52,6 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg avg_flag = 0; // optional keywords - int iarg = 5; while (iarg < narg) { if (strcmp(arg[iarg],"avg") == 0) { @@ -60,12 +59,12 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg error->all(FLERR,"Illegal compute pentropy/atom missing arguments after avg"); if (strcmp(arg[iarg+1],"yes") == 0) avg_flag = 1; else if (strcmp(arg[iarg+1],"no") == 0) avg_flag = 0; - else error->all(FLERR,"Illegal compute centro/atom argument after avg should be yes or no"); + else error->all(FLERR,"Illegal compute pentropy/atom argument after avg should be yes or no"); cutoff2 = force->numeric(FLERR,arg[iarg+2]); if (cutoff2 < 0.0) error->all(FLERR,"Illegal compute pentropy/atom command; negative cutoff2"); cutsq2 = cutoff2*cutoff2; iarg += 2; - } else error->all(FLERR,"Illegal compute centro/atom argument after sigma and cutoff should be avg"); + } else error->all(FLERR,"Illegal compute pentropy/atom argument after sigma and cutoff should be avg"); } peratom_flag = 1; @@ -74,14 +73,8 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg nbin = static_cast(cutoff / sigma) + 1; nmax = 0; maxneigh = 0; - deltabin = 2; + deltabin = 1; deltar = sigma; - rbin = new double(nbin); - rbinsq = new double(nbin); - for (int i = 0; i < nbin; i++) { - rbin[i] = i*deltar; - rbinsq[i] = rbin[i]*rbin[i]; - } } /* ---------------------------------------------------------------------- */ @@ -89,7 +82,6 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg ComputePairEntropyAtom::~ComputePairEntropyAtom() { memory->destroy(pair_entropy); - memory->destroy(gofr); } /* ---------------------------------------------------------------------- */ @@ -141,9 +133,16 @@ void ComputePairEntropyAtom::compute_peratom() int i,j,k,ii,jj,kk,n,inum,jnum; double xtmp,ytmp,ztmp,delx,dely,delz,rsq,value; int *ilist,*jlist,*numneigh,**firstneigh; + double rbin[nbin], rbinsq[nbin]; invoked_peratom = update->ntimestep; + // Initialize distance vectors + for (int i = 0; i < nbin; i++) { + rbin[i] = i*deltar; + rbinsq[i] = rbin[i]*rbin[i]; + } + // grow pair_entropy array if necessary if (atom->nmax > nmax) { @@ -162,6 +161,11 @@ void ComputePairEntropyAtom::compute_peratom() numneigh = list->numneigh; firstneigh = list->firstneigh; + // Compute some constants + double nlist_cutoff = force->pair->cutforce; + double sigmasq2=2*sigma*sigma; + double volume = (4./3.)*MY_PI*nlist_cutoff*nlist_cutoff*nlist_cutoff; + // compute pair entropy for each atom in group // use full neighbor list @@ -179,18 +183,16 @@ void ComputePairEntropyAtom::compute_peratom() // calculate kernel normalization - double nlist_cutoff = force->pair->cutforce; - double density = jnum/((4./3.)*MY_PI*cutoff*nlist_cutoff*nlist_cutoff*nlist_cutoff); + double density = jnum/volume; double normConstantBase = 2*MY_PI*density; // Normalization of g(r) normConstantBase *= sqrt(2.*MY_PI)*sigma; // Normalization of gaussian double invNormConstantBase = 1./normConstantBase; - double sigmasq2=2*sigma*sigma; // loop over list of all neighbors within force cutoff - // re-initialize gofr - delete [] gofr; - gofr = new double(nbin); + // initialize gofr + double gofr[nbin]; + for(int k=0;k Date: Mon, 30 Apr 2018 19:40:18 +0200 Subject: [PATCH 095/675] First fully working version of compute_pair_entropy_atom --- src/compute_pair_entropy_atom.cpp | 106 +++++++++++++++++++++++------- src/compute_pair_entropy_atom.h | 2 +- 2 files changed, 83 insertions(+), 25 deletions(-) diff --git a/src/compute_pair_entropy_atom.cpp b/src/compute_pair_entropy_atom.cpp index 3e45ea530d..c4e411f761 100644 --- a/src/compute_pair_entropy_atom.cpp +++ b/src/compute_pair_entropy_atom.cpp @@ -32,6 +32,8 @@ #include "math_const.h" #include "memory.h" #include "error.h" +#include "domain.h" + using namespace LAMMPS_NS; using namespace MathConst; @@ -40,9 +42,9 @@ using namespace MathConst; ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), - list(NULL), pair_entropy(NULL) + pair_entropy(NULL), pair_entropy_avg(NULL) { - if (narg < 5 || narg > 5) + if (narg < 5 || narg > 8) error->all(FLERR,"Illegal compute pentropy/atom command"); sigma = force->numeric(FLERR,arg[3]); @@ -63,18 +65,19 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg cutoff2 = force->numeric(FLERR,arg[iarg+2]); if (cutoff2 < 0.0) error->all(FLERR,"Illegal compute pentropy/atom command; negative cutoff2"); cutsq2 = cutoff2*cutoff2; - iarg += 2; + iarg += 3; } else error->all(FLERR,"Illegal compute pentropy/atom argument after sigma and cutoff should be avg"); } - peratom_flag = 1; cutsq = cutoff*cutoff; nbin = static_cast(cutoff / sigma) + 1; nmax = 0; maxneigh = 0; - deltabin = 1; + deltabin = 2; deltar = sigma; + peratom_flag = 1; + size_peratom_cols = 0; } /* ---------------------------------------------------------------------- */ @@ -82,6 +85,7 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg ComputePairEntropyAtom::~ComputePairEntropyAtom() { memory->destroy(pair_entropy); + if (avg_flag) memory->destroy(pair_entropy_avg); } /* ---------------------------------------------------------------------- */ @@ -91,17 +95,22 @@ void ComputePairEntropyAtom::init() if (force->pair == NULL) error->all(FLERR,"Compute centro/atom requires a pair style be defined"); - double largest_cutsq; - largest_cutsq = cutsq; - if (cutsq2 > cutsq) largest_cutsq = cutsq2; + //double largest_cutsq; + //largest_cutsq = cutsq; + //if (cutsq2 > cutsq) largest_cutsq = cutsq2; - if (sqrt(largest_cutsq) > force->pair->cutforce) - error->all(FLERR,"Compute pentropy/atom cutoff is longer than pairwise cutoff"); + if ( (cutoff+cutoff2) > (force->pair->cutforce + neighbor->skin) ) + { + //fprintf(screen, "%f %f %f %f \n", cutoff, cutoff2, (cutoff+cutoff2) , force->pair->cutforce + neighbor->skin ); + error->all(FLERR,"Compute pentropy/atom cutoff is longer than pairwise cutoff. Increase the neighbor list skin distance."); + } + /* if (2.0*sqrt(largest_cutsq) > force->pair->cutforce + neighbor->skin && comm->me == 0) error->warning(FLERR,"Compute pentropy/atom cutoff may be too large to find " "ghost atom neighbors"); + */ int count = 0; for (int i = 0; i < modify->ncompute; i++) @@ -109,14 +118,16 @@ void ComputePairEntropyAtom::init() if (count > 1 && comm->me == 0) error->warning(FLERR,"More than one compute pentropy/atom"); - // need an occasional full neighbor list + // need a full neighbor list with neighbors of the ghost atoms int irequest = neighbor->request(this,instance_me); neighbor->requests[irequest]->pair = 0; neighbor->requests[irequest]->compute = 1; neighbor->requests[irequest]->half = 0; neighbor->requests[irequest]->full = 1; - neighbor->requests[irequest]->occasional = 1; + neighbor->requests[irequest]->occasional = 0; + neighbor->requests[irequest]->ghost = 1; + } /* ---------------------------------------------------------------------- */ @@ -143,20 +154,29 @@ void ComputePairEntropyAtom::compute_peratom() rbinsq[i] = rbin[i]*rbin[i]; } - // grow pair_entropy array if necessary + // grow pair_entropy and pair_entropy_avg array if necessary if (atom->nmax > nmax) { - memory->destroy(pair_entropy); - nmax = atom->nmax; - memory->create(pair_entropy,nmax,"pentropy/atom:pair_entropy"); - vector_atom = pair_entropy; + if (!avg_flag) { + memory->destroy(pair_entropy); + nmax = atom->nmax; + memory->create(pair_entropy,nmax,"pentropy/atom:pair_entropy"); + vector_atom = pair_entropy; + } else { + memory->destroy(pair_entropy); + memory->destroy(pair_entropy_avg); + nmax = atom->nmax; + memory->create(pair_entropy,nmax,"pentropy/atom:pair_entropy"); + memory->create(pair_entropy_avg,nmax,"pentropy/atom:pair_entropy_avg"); + vector_atom = pair_entropy_avg; + } } // invoke full neighbor list (will copy or build if necessary) - neighbor->build_one(list); + //neighbor->build_one(list); - inum = list->inum; + inum = list->inum + list->gnum; ilist = list->ilist; numneigh = list->numneigh; firstneigh = list->firstneigh; @@ -164,7 +184,8 @@ void ComputePairEntropyAtom::compute_peratom() // Compute some constants double nlist_cutoff = force->pair->cutforce; double sigmasq2=2*sigma*sigma; - double volume = (4./3.)*MY_PI*nlist_cutoff*nlist_cutoff*nlist_cutoff; + double volume = domain->xprd * domain->yprd * domain->zprd; + double density = atom->natoms / volume; // compute pair entropy for each atom in group // use full neighbor list @@ -183,8 +204,7 @@ void ComputePairEntropyAtom::compute_peratom() // calculate kernel normalization - double density = jnum/volume; - double normConstantBase = 2*MY_PI*density; // Normalization of g(r) + double normConstantBase = 4*MY_PI*density; // Normalization of g(r) normConstantBase *= sqrt(2.*MY_PI)*sigma; // Normalization of gaussian double invNormConstantBase = 1./normConstantBase; @@ -214,7 +234,7 @@ void ComputePairEntropyAtom::compute_peratom() maxbin=bin + deltabin; if (maxbin > (nbin-1)) maxbin=nbin-1; for(int k=minbin;k Date: Wed, 2 May 2018 16:10:31 +0200 Subject: [PATCH 096/675] Added documentation for compute_pair_entropy_atom --- doc/src/Eqs/pair_entropy.jpg | Bin 0 -> 8870 bytes doc/src/Eqs/pair_entropy.tex | 10 +++ doc/src/Eqs/pair_entropy2.jpg | Bin 0 -> 8474 bytes doc/src/Eqs/pair_entropy2.tex | 10 +++ doc/src/Eqs/pair_entropy3.jpg | Bin 0 -> 5759 bytes doc/src/Eqs/pair_entropy3.tex | 10 +++ doc/src/compute_pair_entropy_atom.txt | 121 ++++++++++++++++++++++++++ src/compute_pair_entropy_atom.cpp | 11 ++- 8 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 doc/src/Eqs/pair_entropy.jpg create mode 100644 doc/src/Eqs/pair_entropy.tex create mode 100644 doc/src/Eqs/pair_entropy2.jpg create mode 100644 doc/src/Eqs/pair_entropy2.tex create mode 100644 doc/src/Eqs/pair_entropy3.jpg create mode 100644 doc/src/Eqs/pair_entropy3.tex create mode 100644 doc/src/compute_pair_entropy_atom.txt diff --git a/doc/src/Eqs/pair_entropy.jpg b/doc/src/Eqs/pair_entropy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44161e6aa0e74a05544f8f29aab3ca942ef305a5 GIT binary patch literal 8870 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 literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_entropy.tex b/doc/src/Eqs/pair_entropy.tex new file mode 100644 index 0000000000..304c9d6138 --- /dev/null +++ b/doc/src/Eqs/pair_entropy.tex @@ -0,0 +1,10 @@ +\documentclass[12pt]{article} + +\begin{document} +\thispagestyle{empty} + +$$ + s_S^i=-2\pi\rho k_B \int\limits_0^{r_m} \left [ g(r) \ln g(r) - g(r) + 1 \right ] r^2 dr , +$$ + +\end{document} diff --git a/doc/src/Eqs/pair_entropy2.jpg b/doc/src/Eqs/pair_entropy2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db3dcb0ca75f444a6640e704c61326d7c8c598a9 GIT binary patch literal 8474 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 literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_entropy3.tex b/doc/src/Eqs/pair_entropy3.tex new file mode 100644 index 0000000000..b0b3c76358 --- /dev/null +++ b/doc/src/Eqs/pair_entropy3.tex @@ -0,0 +1,10 @@ +\documentclass[12pt]{article} + +\begin{document} +\thispagestyle{empty} + +$$ + \bar{s}_S^i = \frac{\sum_j s_S^j + s_S^i}{N + 1} , +$$ + +\end{document} diff --git a/doc/src/compute_pair_entropy_atom.txt b/doc/src/compute_pair_entropy_atom.txt new file mode 100644 index 0000000000..bed36ed4b6 --- /dev/null +++ b/doc/src/compute_pair_entropy_atom.txt @@ -0,0 +1,121 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +compute pentropy/atom command :h3 + +[Syntax:] + +compute ID group-ID pentropy/atom sigma cutoff :l +compute ID group-ID pentropy/atom sigma cutoff avg yes/no cutoff2 ... :pre + +ID, group-ID are documented in "compute"_compute.html command :l +pentropy/atom = style name of this compute command :l +sigma = width of gaussians used in the g(r) smoothening :l +cutoff = cutoff for the g(r) calculation :l +one or more keyword/value pairs may be appended :l +{avg} yes/no cutoff2 + avg = {no} or {yes} + {no} = do not average the pair entropy over neighbors + {yes} = average the pair entropy over neighbors + cutoff2 = cutoff for the averaging over neighbors :pre +:ule + +[Examples:] + +compute 1 all pentropy/atom 0.25 5. :pre +compute 1 all pentropy/atom 0.25 5. avg yes 5. :pre + +[Description:] + +Define a computation that calculates the pair entropy fingerprint for +each atom in the group. The fingerprint is useful to distinguish between +ordered and disordered environments, for instance liquid and solid-like +environments, or glassy and crystalline-like environments. Some + applications could be the identification of grain boundaries, a + melt-solid interface, or a solid cluster emerging from the melt. +The advantage of this parameter over others is that no a priori + information about the solid structure is required. + +This parameter for atom i is computed using the following formula from +"(Piaggi)"_#Piaggi + +:c,image(Eqs/pair_entropy.jpg) + +where r is a distance, g(r) is the radial distribution function of atom + i and rho is the density of the system. The g(r) computed for each + atom i can be noisy and therefore it is smoothened using: + +:c,image(Eqs/pair_entropy2.jpg) + +where the sum in j goes through the neighbors of atom i, and sigma is a +parameter to control the smoothening. + +The input parameters are {sigma} the smoothening parameter, and the + {cutoff} for the calculation of g(r). + +If the keyword {avg} has the setting {yes}, then this compute also + averages the parameter over the neighbors of atom i according to: + +:c,image(Eqs/pair_entropy3.jpg) + +where the sum j goes over the neighbors of atom i and N is the number + of neighbors. This procedure provides a sharper distinction between +order and disorder environments. In this case the input parameter + {cutoff2} is the cutoff for the averaging over the neighbors and + must also be specified. + +If the {avg yes} option is used, the effective cutoff of the neighbor + list should be {cutoff}+{cutoff2} and therefore it might be necessary + to increase the skin of the neighbor list with: + +neighbor skin bin :pre + +See "neighbor"_neighbor.html for details. + +The neighbor list needed to compute this quantity is constructed each +time the calculation is performed (e.g. each time a snapshot of atoms +is dumped). Thus it can be inefficient to compute/dump this quantity +too frequently or to have multiple compute/dump commands, each with a +{centro/atom} style. + +[Output info:] + +By default, this compute calculates the pair entropy value for each +atom as a per-atom vector, which can be accessed by any command that +uses per-atom values from a compute as input. See "Section +6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +options. + +The pair entropy values have units of the Boltzmann constant. They are + always negative, and lower values (lower entropy) correspond to more + ordered environments. + +Here are typical input parameters for fcc aluminum (lattice + constant 4.05 Angstroms), + +compute 1 all pentropy/atom 0.25 5.7 avg yes 3.7 :pre + +and for bcc sodium (lattice constant 4.23 Angstroms), + +compute 1 all pentropy/atom 0.25 7.3 avg yes 5.1 :pre + +[Restrictions:] none + +[Related commands:] + +"compute cna/atom"_compute_cna_atom.html +"compute centro/atom"_compute_centro_atom.html + +[Default:] + +The default value for the optional keyword is avg = no. + +:line + +:link(Piaggi) +[(Piaggi)] Piaggi and Parrinello, J Chem Phys, 147, 114112 (2017). diff --git a/src/compute_pair_entropy_atom.cpp b/src/compute_pair_entropy_atom.cpp index c4e411f761..97461b4eec 100644 --- a/src/compute_pair_entropy_atom.cpp +++ b/src/compute_pair_entropy_atom.cpp @@ -47,6 +47,13 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg if (narg < 5 || narg > 8) error->all(FLERR,"Illegal compute pentropy/atom command"); + // Arguments are: sigma cutoff avg yes/no cutoff2 + // sigma is the gaussian width + // cutoff is the cutoff for the calculation of g(r) + // avg is optional and it means averaginf the pair entropy over the neighbors + // the next argument should be yes or no + // cutoff2 is the cutoff for the averaging + sigma = force->numeric(FLERR,arg[3]); cutoff = force->numeric(FLERR,arg[4]); if (cutoff < 0.0) error->all(FLERR,"Illegal compute pentropy/atom command; negative cutoff"); @@ -74,7 +81,7 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg nbin = static_cast(cutoff / sigma) + 1; nmax = 0; maxneigh = 0; - deltabin = 2; + deltabin = 2; // 2 seems a good compromise between speed and good mollification deltar = sigma; peratom_flag = 1; size_peratom_cols = 0; @@ -234,7 +241,7 @@ void ComputePairEntropyAtom::compute_peratom() maxbin=bin + deltabin; if (maxbin > (nbin-1)) maxbin=nbin-1; for(int k=minbin;k Date: Fri, 11 May 2018 15:24:26 -0600 Subject: [PATCH 097/675] Commit JT 051118 before CEA --- examples/SPIN/read_restart/in.spin.read_data | 70 +------------------ examples/SPIN/read_restart/in.spin.restart | 6 +- .../SPIN/read_restart/in.spin.write_restart | 4 +- src/SPIN/compute_spin.cpp | 5 +- src/SPIN/fix_langevin_spin.cpp | 1 - src/SPIN/fix_nve_spin.cpp | 18 +---- src/SPIN/fix_nve_spin.h | 8 +-- src/SPIN/fix_precession_spin.cpp | 1 - src/SPIN/pair_spin_dmi.cpp | 22 ++---- src/SPIN/pair_spin_dmi.h | 4 +- src/SPIN/pair_spin_exchange.cpp | 19 ++--- src/SPIN/pair_spin_exchange.h | 2 +- src/SPIN/pair_spin_me.cpp | 18 ++--- src/SPIN/pair_spin_me.h | 2 +- src/SPIN/pair_spin_neel.cpp | 10 +-- 15 files changed, 42 insertions(+), 148 deletions(-) diff --git a/examples/SPIN/read_restart/in.spin.read_data b/examples/SPIN/read_restart/in.spin.read_data index 7a3b1d0913..1cb99e2c6e 100644 --- a/examples/SPIN/read_restart/in.spin.read_data +++ b/examples/SPIN/read_restart/in.spin.read_data @@ -1,6 +1,3 @@ -<<<<<<< HEAD -<<<<<<< HEAD -# start a spin-lattice simulation from a data file clear units metal dimension 3 @@ -10,36 +7,13 @@ atom_style spin # necessary for the serial algorithm (sametag) atom_modify map array - read_data ../examples/SPIN/read_restart/Norm_randXY_8x8x32.data -======= -======= -# start a spin-lattice simulation from a data file ->>>>>>> Commit modifs before release 1 (03/26/18) -clear -units metal -dimension 3 -boundary p p p - -atom_style spin - -# necessary for the serial algorithm (sametag) -atom_modify map array - -<<<<<<< HEAD ->>>>>>> Commit before meeting 032218 -======= -read_data ../examples/SPIN/read_restart/Norm_randXY_8x8x32.data ->>>>>>> Commit modifs before release 1 (03/26/18) mass 1 58.93 -# define magneto-mechanical potentials and forces -<<<<<<< HEAD -<<<<<<< HEAD -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 1.0 bin neigh_modify every 1 check no delay 0 @@ -51,32 +25,6 @@ fix 3 all nve/spin lattice yes timestep 0.0001 # define outputs and computes -======= -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 -======= -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 ->>>>>>> Commit modifs before release 1 (03/26/18) - -neighbor 1.0 bin -neigh_modify every 1 check no delay 0 - -fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all nve/spin lattice yes -timestep 0.0001 - -<<<<<<< HEAD -# define outputs ->>>>>>> Commit before meeting 032218 -======= -# define outputs and computes ->>>>>>> Commit modifs before release 1 (03/26/18) compute out_mag all compute/spin compute out_pe all pe @@ -92,21 +40,7 @@ thermo 10 thermo_style custom step time v_magnorm v_emag v_tmag temp etotal thermo_modify format float %20.15g -<<<<<<< HEAD -<<<<<<< HEAD compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] run 100 -======= -dump 1 all custom 1 dump.lammpstrj type x y z spx spy spz - -run 10000 ->>>>>>> Commit before meeting 032218 -======= -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] - -run 100 ->>>>>>> Commit modifs before release 1 (03/26/18) - diff --git a/examples/SPIN/read_restart/in.spin.restart b/examples/SPIN/read_restart/in.spin.restart index 5970953b30..371e48a946 100644 --- a/examples/SPIN/read_restart/in.spin.restart +++ b/examples/SPIN/read_restart/in.spin.restart @@ -13,7 +13,7 @@ lattice fcc 3.54 region box block 0.0 5.0 0.0 5.0 0.0 5.0 create_box 1 box -read_dump ../examples/SPIN/Norm_randXY_8x8x32.dump 0 x y z box yes +read_dump ../examples/SPIN/read_restart/Norm_randXY_8x8x32.dump 0 x y z box yes create_atoms 1 box @@ -27,9 +27,9 @@ velocity all create 200 4928459 rot yes dist gaussian # define magneto-mechanical potentials and forces -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 1.0 bin neigh_modify every 1 check no delay 0 diff --git a/examples/SPIN/read_restart/in.spin.write_restart b/examples/SPIN/read_restart/in.spin.write_restart index 2b2e9e0622..6848da0154 100644 --- a/examples/SPIN/read_restart/in.spin.write_restart +++ b/examples/SPIN/read_restart/in.spin.write_restart @@ -22,9 +22,9 @@ mass 1 58.93 set group all spin/random 31 1.72 velocity all create 100 4928459 rot yes dist gaussian -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/cobalt_fcc/Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 3d5de8fb03..ab3bab2487 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -74,7 +74,7 @@ void ComputeSpin::init() void ComputeSpin::compute_vector() { - int i, index; + int i; int countsp, countsptot; double mag[4], magtot[4]; double magenergy, magenergytot; @@ -92,10 +92,7 @@ void ComputeSpin::compute_vector() tempdenom = tempdenomtot = 0.0; spintemperature = 0.0; - double **x = atom->x; int *mask = atom->mask; - int *type = atom->type; - imageint *image = atom->image; double **sp = atom->sp; double **fm = atom->fm; double tx,ty,tz; diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index aa017a12b8..c7f75b0cd4 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -117,7 +117,6 @@ void FixLangevinSpin::init() { // fix_langevin_spin has to be the last defined fix - int after = 0; int flag_force = 0; int flag_lang = 0; for (int i = 0; i < modify->nfix; i++) { diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index d94103dd7f..7eafc92dfd 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -258,14 +258,11 @@ void FixNVESpin::init() void FixNVESpin::initial_integrate(int vflag) { - double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy; - double spi[3], fmi[3]; + double dtfm; double **x = atom->x; double **v = atom->v; double **f = atom->f; - double **sp = atom->sp; - double **fm = atom->fm; double *rmass = atom->rmass; double *mass = atom->mass; int nlocal = atom->nlocal; @@ -422,17 +419,11 @@ void FixNVESpin::pre_neighbor() void FixNVESpin::ComputeInteractionsSpin(int i) { - const int nlocal = atom->nlocal; double spi[3], fmi[3]; double **sp = atom->sp; double **fm = atom->fm; - int eflag = 1; - int vflag = 0; - - int pair_compute_flag = 1; - // force computation for spin i spi[0] = sp[i][0]; @@ -564,13 +555,12 @@ void FixNVESpin::AdvanceSingleSpin(int i) int *sametag = atom->sametag; double **sp = atom->sp; double **fm = atom->fm; - double dtfm,msq,scale,fm2,fmsq,sp2,spsq,energy,dts2; + double msq,scale,fm2,energy,dts2; double cp[3],g[3]; cp[0] = cp[1] = cp[2] = 0.0; g[0] = g[1] = g[2] = 0.0; fm2 = (fm[i][0]*fm[i][0])+(fm[i][1]*fm[i][1])+(fm[i][2]*fm[i][2]); - fmsq = sqrt(fm2); energy = (sp[i][0]*fm[i][0])+(sp[i][1]*fm[i][1])+(sp[i][2]*fm[i][2]); dts2 = dts*dts; @@ -622,10 +612,8 @@ void FixNVESpin::AdvanceSingleSpin(int i) void FixNVESpin::final_integrate() { - double dtfm,msq,scale,fm2,fmsq,energy; - double cp[3],g[3]; + double dtfm; - double **x = atom->x; double **v = atom->v; double **f = atom->f; double *rmass = atom->rmass; diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index c7d88ef605..70781c6d8c 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -80,10 +80,10 @@ friend class PairSpin; // stacking variables for sectoring algorithm - int *stack_head; // index of first atom in backward_stacks - int *stack_foot; // index of first atom in forward_stacks - int *backward_stacks; // index of next atom in backward stack - int *forward_stacks; // index of next atom in forward stack + int *stack_head; // index of first atom in backward_stacks + int *stack_foot; // index of first atom in forward_stacks + int *backward_stacks; // index of next atom in backward stack + int *forward_stacks; // index of next atom in forward stack }; diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index 67984a6009..4ee5e87540 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -183,7 +183,6 @@ void FixPrecessionSpin::post_force(int vflag) double **fm = atom->fm; double spi[3], fmi[3]; const int nlocal = atom->nlocal; - double scalar; eflag = 0; emag = 0.0; diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 8e1b961794..c89ddd085a 100755 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -283,9 +283,9 @@ void PairSpinDmi::compute(int eflag, int vflag) // compute magnetic and mechanical components of soc_dmi if (rsq <= local_cut2) { - compute_dmi(i,j,rsq,eij,fmi,spi,spj); + compute_dmi(i,j,eij,fmi,spj); if (lattice_flag) { - compute_dmi_mech(i,j,fi,spi,spj); + compute_dmi_mech(fi); } } @@ -321,33 +321,25 @@ void PairSpinDmi::compute(int eflag, int vflag) void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) { - - const int nlocal = atom->nlocal; int *type = atom->type; double **x = atom->x; double **sp = atom->sp; double local_cut2; double xi[3], rij[3], eij[3]; - double spi[3], spj[3]; + double spj[3]; - int iexchange, idmi, ineel, ime; - int i,j,jj,inum,jnum,itype,jtype; + int i,j,jnum,itype,jtype; int *ilist,*jlist,*numneigh,**firstneigh; double rsq, inorm; - inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; firstneigh = list->firstneigh; i = ilist[ii]; itype = type[i]; - - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; xi[0] = x[i][0]; xi[1] = x[i][1]; @@ -378,7 +370,7 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; if (rsq <= local_cut2) { - compute_dmi(i,j,rsq,eij,fmi,spi,spj); + compute_dmi(i,j,eij,fmi,spj); } } @@ -389,7 +381,7 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) compute the dmi interaction between spin i and spin j ------------------------------------------------------------------------- */ -void PairSpinDmi::compute_dmi(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) +void PairSpinDmi::compute_dmi(int i, int j, double eij[3], double fmi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -410,7 +402,7 @@ void PairSpinDmi::compute_dmi(int i, int j, double rsq, double eij[3], double fm compute the mechanical force due to the dmi interaction between atom i and atom j ------------------------------------------------------------------------- */ -void PairSpinDmi::compute_dmi_mech(int i, int j, double fi[3], double spi[3], double spj[3]) +void PairSpinDmi::compute_dmi_mech(double fi[3]) { fi[0] += 0.0; fi[1] += 0.0; diff --git a/src/SPIN/pair_spin_dmi.h b/src/SPIN/pair_spin_dmi.h index 108acf21e7..cbd234c192 100755 --- a/src/SPIN/pair_spin_dmi.h +++ b/src/SPIN/pair_spin_dmi.h @@ -37,8 +37,8 @@ class PairSpinDmi : public PairSpin { void compute(int, int); void compute_single_pair(int, double *); - void compute_dmi(int, int, double, double *, double *, double *, double *); - void compute_dmi_mech(int, int, double *, double *, double *); + void compute_dmi(int, int, double *, double *, double *); + void compute_dmi_mech(double *); void write_restart(FILE *); void read_restart(FILE *); diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 04504cfe12..36708293f7 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -140,7 +140,7 @@ void PairSpinExchange::coeff(int narg, char **arg) } /* ---------------------------------------------------------------------- - init specific to this pair style + init specific to this pair style ------------------------------------------------------------------------- */ void PairSpinExchange::init_style() @@ -273,7 +273,7 @@ void PairSpinExchange::compute(int eflag, int vflag) // compute exchange interaction if (rsq <= local_cut2) { - compute_exchange(i,j,rsq,fmi,spi,spj); + compute_exchange(i,j,rsq,fmi,spj); if (lattice_flag) { compute_exchange_mech(i,j,rsq,eij,fi,spi,spj); } @@ -316,22 +316,19 @@ void PairSpinExchange::compute(int eflag, int vflag) void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) { - const int nlocal = atom->nlocal; int *type = atom->type; double **x = atom->x; double **sp = atom->sp; double local_cut2; double xi[3], rij[3]; - double spi[3], spj[3]; + double spj[3]; - int iexchange, idmi, ineel, ime; - int i,j,jj,inum,jnum,itype,jtype; + int i,j,jnum,itype,jtype; int *ilist,*jlist,*numneigh,**firstneigh; double rsq; - inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; firstneigh = list->firstneigh; @@ -339,10 +336,6 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) i = ilist[ii]; itype = type[i]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -367,7 +360,7 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; if (rsq <= local_cut2) { - compute_exchange(i,j,rsq,fmi,spi,spj); + compute_exchange(i,j,rsq,fmi,spj); } } @@ -378,7 +371,7 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) compute exchange interaction between spins i and j ------------------------------------------------------------------------- */ -void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], double spi[3], double spj[3]) +void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], double spj[3]) { int *type = atom->type; int itype, jtype; diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h index 07536a18bd..89b35c1bd8 100755 --- a/src/SPIN/pair_spin_exchange.h +++ b/src/SPIN/pair_spin_exchange.h @@ -37,7 +37,7 @@ class PairSpinExchange : public PairSpin { void compute(int, int); void compute_single_pair(int, double *); - void compute_exchange(int, int, double, double *, double *, double *); + void compute_exchange(int, int, double, double *, double *); void compute_exchange_mech(int, int, double, double *, double *, double *, double *); void write_restart(FILE *); diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_me.cpp index f01fd23dd5..cbc8ae3cd1 100755 --- a/src/SPIN/pair_spin_me.cpp +++ b/src/SPIN/pair_spin_me.cpp @@ -282,7 +282,7 @@ void PairSpinMe::compute(int eflag, int vflag) // compute me interaction if (rsq <= local_cut2) { - compute_me(i,j,rsq,eij,fmi,spi,spj); + compute_me(i,j,rsq,eij,fmi,spj); if (lattice_flag) { compute_me_mech(i,j,fi,spi,spj); } @@ -320,23 +320,19 @@ void PairSpinMe::compute(int eflag, int vflag) void PairSpinMe::compute_single_pair(int ii, double fmi[3]) { - - const int nlocal = atom->nlocal; int *type = atom->type; double **x = atom->x; double **sp = atom->sp; double local_cut2; double xi[3], rij[3], eij[3]; - double spi[3], spj[3]; + double spj[3]; - int iexchange, idmi, ineel, ime; - int i,j,jj,inum,jnum,itype,jtype; + int i,j,jnum,itype,jtype; int *ilist,*jlist,*numneigh,**firstneigh; double rsq, inorm; - inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; firstneigh = list->firstneigh; @@ -344,10 +340,6 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) i = ilist[ii]; itype = type[i]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; @@ -378,7 +370,7 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) eij[2] = inorm*rij[2]; if (rsq <= local_cut2) { - compute_me(i,j,rsq,eij,fmi,spi,spj); + compute_me(i,j,rsq,eij,fmi,spj); } } @@ -386,7 +378,7 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) /* ---------------------------------------------------------------------- */ -void PairSpinMe::compute_me(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) +void PairSpinMe::compute_me(int i, int j, double rsq, double eij[3], double fmi[3], double spj[3]) { int *type = atom->type; int itype, jtype; diff --git a/src/SPIN/pair_spin_me.h b/src/SPIN/pair_spin_me.h index 7875461166..bfbfe213ad 100755 --- a/src/SPIN/pair_spin_me.h +++ b/src/SPIN/pair_spin_me.h @@ -37,7 +37,7 @@ class PairSpinMe : public PairSpin { void compute(int, int); void compute_single_pair(int, double *); - void compute_me(int, int, double, double *, double *, double *, double *); + void compute_me(int, int, double, double *, double *, double *); void compute_me_mech(int, int, double *, double *, double *); void write_restart(FILE *); diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index fdb95a3fc3..7ada406b82 100755 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -326,7 +326,6 @@ void PairSpinNeel::compute(int eflag, int vflag) void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) { - const int nlocal = atom->nlocal; int *type = atom->type; double **x = atom->x; double **sp = atom->sp; @@ -335,13 +334,11 @@ void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) double xi[3], rij[3], eij[3]; double spi[3], spj[3]; - int iexchange, idmi, ineel, ime; - int i,j,jj,inum,jnum,itype,jtype; + int i,j,jnum,itype,jtype; int *ilist,*jlist,*numneigh,**firstneigh; - double rsq, rd, inorm; + double rsq, inorm; - inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; firstneigh = list->firstneigh; @@ -379,6 +376,9 @@ void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); + eij[0] = inorm*rij[0]; + eij[1] = inorm*rij[1]; + eij[2] = inorm*rij[2]; if (rsq <= local_cut2) { compute_neel(i,j,rsq,eij,fmi,spi,spj); From 124641dc8af97154d5a485453a0e8106a845da9a Mon Sep 17 00:00:00 2001 From: PabloPiaggi Date: Fri, 18 May 2018 15:13:48 +0200 Subject: [PATCH 098/675] Examples - new local option --- doc/src/compute_pair_entropy_atom.txt | 5 +- .../pair_entropy/Na_MendelevM_2014.eam.fs | 6006 ++++++++++++ .../USER/misc/pair_entropy/data.interface | 8211 +++++++++++++++++ examples/USER/misc/pair_entropy/start.lmp | 34 + src/compute_pair_entropy_atom.cpp | 18 +- src/compute_pair_entropy_atom.h | 1 + 6 files changed, 14271 insertions(+), 4 deletions(-) create mode 100644 examples/USER/misc/pair_entropy/Na_MendelevM_2014.eam.fs create mode 100644 examples/USER/misc/pair_entropy/data.interface create mode 100644 examples/USER/misc/pair_entropy/start.lmp diff --git a/doc/src/compute_pair_entropy_atom.txt b/doc/src/compute_pair_entropy_atom.txt index bed36ed4b6..9a2dbb8f14 100644 --- a/doc/src/compute_pair_entropy_atom.txt +++ b/doc/src/compute_pair_entropy_atom.txt @@ -42,7 +42,7 @@ The advantage of this parameter over others is that no a priori information about the solid structure is required. This parameter for atom i is computed using the following formula from -"(Piaggi)"_#Piaggi +"(Piaggi)"_#Piaggi and "(Nettleton)"_#Nettleton :c,image(Eqs/pair_entropy.jpg) @@ -119,3 +119,6 @@ The default value for the optional keyword is avg = no. :link(Piaggi) [(Piaggi)] Piaggi and Parrinello, J Chem Phys, 147, 114112 (2017). + +:link(Nettleton} +[(Nettleton)] Nettleton and Green, J Chem Phys, 29, 6 (1958). diff --git a/examples/USER/misc/pair_entropy/Na_MendelevM_2014.eam.fs b/examples/USER/misc/pair_entropy/Na_MendelevM_2014.eam.fs new file mode 100644 index 0000000000..76ecae7b44 --- /dev/null +++ b/examples/USER/misc/pair_entropy/Na_MendelevM_2014.eam.fs @@ -0,0 +1,6006 @@ +Source: M.I. Mendelev, unpublished +Contact information: mendelev@ameslab.gov +Tuesday, Sep 2, 2014 The potential was taken from v1_4_bcc (in C:\SIMULATION.MD\Na\Results\v1_4) +1 Na +10000 1.00000000000000E-0002 10000 9.20000000000000E-0004 9.20000000000000E+0000 +11 2.29897700000000E+0001 4.22786798098572E+0000 bcc +0 -1.00000000000000E-0001 -1.41421356237310E-0001 -1.73205080756888E-0001 -2.00000000000000E-0001 +-2.23606797749979E-0001 -2.44948974278318E-0001 -2.64575131106459E-0001 -2.82842712474619E-0001 -3.00000000000000E-0001 +-3.16227766016838E-0001 -3.31662479035540E-0001 -3.46410161513775E-0001 -3.60555127546399E-0001 -3.74165738677394E-0001 +-3.87298334620742E-0001 -4.00000000000000E-0001 -4.12310562561766E-0001 -4.24264068711929E-0001 -4.35889894354067E-0001 +-4.47213595499958E-0001 -4.58257569495584E-0001 -4.69041575982343E-0001 -4.79583152331272E-0001 -4.89897948556636E-0001 +-5.00000000000000E-0001 -5.09901951359279E-0001 -5.19615242270663E-0001 -5.29150262212918E-0001 -5.38516480713450E-0001 +-5.47722557505166E-0001 -5.56776436283002E-0001 -5.65685424949238E-0001 -5.74456264653803E-0001 -5.83095189484530E-0001 +-5.91607978309962E-0001 -6.00000000000000E-0001 -6.08276253029822E-0001 -6.16441400296898E-0001 -6.24499799839840E-0001 +-6.32455532033676E-0001 -6.40312423743285E-0001 -6.48074069840786E-0001 -6.55743852430200E-0001 -6.63324958071080E-0001 +-6.70820393249937E-0001 -6.78232998312527E-0001 -6.85565460040104E-0001 -6.92820323027551E-0001 -7.00000000000000E-0001 +-7.07106781186548E-0001 -7.14142842854285E-0001 -7.21110255092798E-0001 -7.28010988928052E-0001 -7.34846922834953E-0001 +-7.41619848709566E-0001 -7.48331477354788E-0001 -7.54983443527075E-0001 -7.61577310586391E-0001 -7.68114574786861E-0001 +-7.74596669241483E-0001 -7.81024967590665E-0001 -7.87400787401181E-0001 -7.93725393319377E-0001 -8.00000000000000E-0001 +-8.06225774829855E-0001 -8.12403840463596E-0001 -8.18535277187245E-0001 -8.24621125123532E-0001 -8.30662386291807E-0001 +-8.36660026534076E-0001 -8.42614977317636E-0001 -8.48528137423857E-0001 -8.54400374531753E-0001 -8.60232526704263E-0001 +-8.66025403784439E-0001 -8.71779788708135E-0001 -8.77496438739212E-0001 -8.83176086632785E-0001 -8.88819441731559E-0001 +-8.94427190999916E-0001 -9.00000000000000E-0001 -9.05538513813742E-0001 -9.11043357914430E-0001 -9.16515138991168E-0001 +-9.21954445729289E-0001 -9.27361849549570E-0001 -9.32737905308881E-0001 -9.38083151964686E-0001 -9.43398113205660E-0001 +-9.48683298050514E-0001 -9.53939201416946E-0001 -9.59166304662544E-0001 -9.64365076099296E-0001 -9.69535971483266E-0001 +-9.74679434480896E-0001 -9.79795897113271E-0001 -9.84885780179610E-0001 -9.89949493661167E-0001 -9.94987437106620E-0001 +-1.00000000000000E+0000 -1.00498756211209E+0000 -1.00995049383621E+0000 -1.01488915650922E+0000 -1.01980390271856E+0000 +-1.02469507659596E+0000 -1.02956301409870E+0000 -1.03440804327886E+0000 -1.03923048454133E+0000 -1.04403065089106E+0000 +-1.04880884817015E+0000 -1.05356537528527E+0000 -1.05830052442584E+0000 -1.06301458127346E+0000 -1.06770782520313E+0000 +-1.07238052947636E+0000 -1.07703296142690E+0000 -1.08166538263920E+0000 -1.08627804912002E+0000 -1.09087121146357E+0000 +-1.09544511501033E+0000 -1.10000000006718E+0000 -1.10453610279366E+0000 -1.10905365608280E+0000 -1.11355288976496E+0000 +-1.11803403073954E+0000 -1.12249730310191E+0000 -1.12694292826589E+0000 -1.13137112508183E+0000 -1.13578210995057E+0000 +-1.14017609693349E+0000 -1.14455329785864E+0000 -1.14891392242332E+0000 -1.15325817829318E+0000 -1.15758627119788E+0000 +-1.16189840502365E+0000 -1.16619478190269E+0000 -1.17047560229968E+0000 -1.17474106509540E+0000 -1.17899136766766E+0000 +-1.18322670596960E+0000 -1.18744727460551E+0000 -1.19165326690416E+0000 -1.19584487498991E+0000 -1.20002228985149E+0000 +-1.20418570140872E+0000 -1.20833529857707E+0000 -1.21247126933035E+0000 -1.21659380076137E+0000 -1.22070307914081E+0000 +-1.22479928997433E+0000 -1.22888261805798E+0000 -1.23295324753184E+0000 -1.23701136193229E+0000 -1.24105714424253E+0000 +-1.24509077694175E+0000 -1.24911244205286E+0000 -1.25312232118880E+0000 -1.25712059559759E+0000 -1.26110744620603E+0000 +-1.26508305366220E+0000 -1.26904759837680E+0000 -1.27300126056326E+0000 -1.27694422027680E+0000 -1.28087665745239E+0000 +-1.28479875194166E+0000 -1.28871068354884E+0000 -1.29261263206567E+0000 -1.29650477730545E+0000 -1.30038729913608E+0000 +-1.30426037751232E+0000 -1.30812419250714E+0000 -1.31197892434224E+0000 -1.31582475341782E+0000 -1.31966186034151E+0000 +-1.32349042595665E+0000 -1.32731063136972E+0000 -1.33112265797719E+0000 -1.33492668749159E+0000 -1.33872290196698E+0000 +-1.34251148382379E+0000 -1.34629261579811E+0000 -1.35006648014203E+0000 -1.35383325782324E+0000 -1.35759312847270E+0000 +-1.36134627040651E+0000 -1.36509286064725E+0000 -1.36883307494489E+0000 -1.37256708779708E+0000 -1.37629507246906E+0000 +-1.38001720101302E+0000 -1.38373364428704E+0000 -1.38744457197359E+0000 -1.39115015259757E+0000 -1.39485055354395E+0000 +-1.39854594107499E+0000 -1.40223648034706E+0000 -1.40592233542711E+0000 -1.40960366930871E+0000 -1.41328064392777E+0000 +-1.41695342017788E+0000 -1.42062215792530E+0000 -1.42428701602365E+0000 -1.42794815232825E+0000 -1.43160572371012E+0000 +-1.43525988606971E+0000 -1.43891079435033E+0000 -1.44255860255123E+0000 -1.44620346374048E+0000 -1.44984553006750E+0000 +-1.45348495277537E+0000 -1.45712188221283E+0000 -1.46075646784607E+0000 -1.46438885827024E+0000 -1.46801920122075E+0000 +-1.47164764358426E+0000 -1.47527433140955E+0000 -1.47889940991805E+0000 -1.48252302351425E+0000 -1.48614531579582E+0000 +-1.48976642956356E+0000 -1.49338650683116E+0000 -1.49700568883471E+0000 -1.50062411604207E+0000 -1.50424192816204E+0000 +-1.50785926415330E+0000 -1.51147626223323E+0000 -1.51509305988655E+0000 -1.51870979387373E+0000 -1.52232660023930E+0000 +-1.52594361431998E+0000 -1.52956097075262E+0000 -1.53317880348202E+0000 -1.53679724576861E+0000 -1.54041643019589E+0000 +-1.54403648867789E+0000 -1.54765755246631E+0000 -1.55127975215767E+0000 -1.55490321770021E+0000 -1.55852807840075E+0000 +-1.56215446293137E+0000 -1.56578249933596E+0000 -1.56941231503670E+0000 -1.57304403684034E+0000 -1.57667779094446E+0000 +-1.58031370294352E+0000 -1.58395189783485E+0000 -1.58759250002456E+0000 -1.59123563333324E+0000 -1.59488142100169E+0000 +-1.59852998569642E+0000 -1.60218144951515E+0000 -1.60583593399216E+0000 -1.60949356010353E+0000 -1.61315444827237E+0000 +-1.61681871837382E+0000 -1.62048648974013E+0000 -1.62415788116547E+0000 -1.62783301091084E+0000 -1.63151199670874E+0000 +-1.63519495576783E+0000 -1.63888200477753E+0000 -1.64257325991248E+0000 -1.64626883683698E+0000 -1.64996885070931E+0000 +-1.65367341618601E+0000 -1.65738264742605E+0000 -1.66109665809499E+0000 -1.66481556136900E+0000 -1.66853946993888E+0000 +-1.67226849601392E+0000 -1.67600275132581E+0000 -1.67974234713242E+0000 -1.68348739422148E+0000 -1.68723800291432E+0000 +-1.69099428306941E+0000 -1.69475634408595E+0000 -1.69852429490731E+0000 -1.70229824402453E+0000 -1.70607829947963E+0000 +-1.70986456886898E+0000 -1.71365715934652E+0000 -1.71745617762704E+0000 -1.72126172998929E+0000 -1.72507392227912E+0000 +-1.72889285991253E+0000 -1.73271864787871E+0000 -1.73655139074300E+0000 -1.74039119264978E+0000 -1.74423815732543E+0000 +-1.74809238808105E+0000 -1.75195398781535E+0000 -1.75582305901734E+0000 -1.75969970376905E+0000 -1.76358402374818E+0000 +-1.76747612023076E+0000 -1.77137609409365E+0000 -1.77528404581719E+0000 -1.77920007548761E+0000 -1.78312428279956E+0000 +-1.78705676705848E+0000 -1.79099762718305E+0000 -1.79494696170751E+0000 -1.79890486878400E+0000 -1.80287144618483E+0000 +-1.80684679130475E+0000 -1.81083100116315E+0000 -1.81482417240629E+0000 -1.81882640130939E+0000 -1.82283778377880E+0000 +-1.82685841535410E+0000 -1.83088839121012E+0000 -1.83492780615901E+0000 -1.83897675465222E+0000 -1.84303533078252E+0000 +-1.84710362828586E+0000 -1.85118174054337E+0000 -1.85526976058324E+0000 -1.85936778108252E+0000 -1.86347589436905E+0000 +-1.86759419242319E+0000 -1.87172276687967E+0000 -1.87586170902932E+0000 -1.88001110982080E+0000 -1.88417105986234E+0000 +-1.88834164942340E+0000 -1.89252296843637E+0000 -1.89671510649818E+0000 -1.90091815287193E+0000 -1.90513219648850E+0000 +-1.90935732594811E+0000 -1.91359362952191E+0000 -1.91784119515344E+0000 -1.92210011046022E+0000 -1.92637046273521E+0000 +-1.93065233894828E+0000 -1.93494582574765E+0000 -1.93925100946136E+0000 -1.94356797609866E+0000 -1.94789681135141E+0000 +-1.95223760059544E+0000 -1.95659042889194E+0000 -1.96095538098877E+0000 -1.96533254132182E+0000 -1.96972199401626E+0000 +-1.97412382288788E+0000 -1.97853811144436E+0000 -1.98296494288647E+0000 -1.98740440010937E+0000 -1.99185656570381E+0000 +-1.99632152195732E+0000 -2.00079935085545E+0000 -2.00529013408289E+0000 -2.00979395302466E+0000 -2.01431088876725E+0000 +-2.01884102209977E+0000 -2.02338443351504E+0000 -2.02794120321070E+0000 -2.03251141109033E+0000 -2.03709513676447E+0000 +-2.04169245955174E+0000 -2.04630345847984E+0000 -2.05092821228664E+0000 -2.05556679942114E+0000 -2.06021929804454E+0000 +-2.06488578603120E+0000 -2.06956634096962E+0000 -2.07426104016346E+0000 -2.07896996063246E+0000 -2.08369317911340E+0000 +-2.08843077206105E+0000 -2.09318281564907E+0000 -2.09794938577095E+0000 -2.10273055804093E+0000 -2.10752640779485E+0000 +-2.11233701009105E+0000 -2.11716243971128E+0000 -2.12200277116148E+0000 -2.12685807867274E+0000 -2.13172843620203E+0000 +-2.13661391743311E+0000 -2.14151459577734E+0000 -2.14643054437445E+0000 -2.15136183609339E+0000 -2.15630854353309E+0000 +-2.16127073902327E+0000 -2.16624849462521E+0000 -2.17124188213248E+0000 -2.17625097307175E+0000 -2.18127583870351E+0000 +-2.18631655002280E+0000 -2.19137317775997E+0000 -2.19644579238137E+0000 -2.20153446409009E+0000 -2.20663926282664E+0000 +-2.21176025826970E+0000 -2.21689751983673E+0000 -2.22205111668472E+0000 -2.22722111771083E+0000 -2.23240759155308E+0000 +-2.23761060659098E+0000 -2.24283023094620E+0000 -2.24806653248323E+0000 -2.25331957880997E+0000 -2.25858943727841E+0000 +-2.26387617498524E+0000 -2.26917985877244E+0000 -2.27450055522791E+0000 -2.27983833068608E+0000 -2.28519325122849E+0000 +-2.29056538268441E+0000 -2.29595479063136E+0000 -2.30136154039576E+0000 -2.30678569705344E+0000 -2.31222732543025E+0000 +-2.31768649010261E+0000 -2.32316325539801E+0000 -2.32865768539563E+0000 -2.33416984392685E+0000 -2.33969979457575E+0000 +-2.34524760067970E+0000 -2.35081332532984E+0000 -2.35639703137162E+0000 -2.36199878140528E+0000 -2.36761863778640E+0000 +-2.37325666262636E+0000 -2.37891291779289E+0000 -2.38458746491048E+0000 -2.39028036536094E+0000 -2.39599168028385E+0000 +-2.40172147057701E+0000 -2.40746979689698E+0000 -2.41323671965946E+0000 -2.41902229903981E+0000 -2.42482659497349E+0000 +-2.43064966715650E+0000 -2.43649157504585E+0000 -2.44235237785996E+0000 -2.44823213457916E+0000 -2.45413090394605E+0000 +-2.46004874446598E+0000 -2.46598571440747E+0000 -2.47194187180259E+0000 -2.47791727444744E+0000 -2.48391197990249E+0000 +-2.48992604549303E+0000 -2.49595952830957E+0000 -2.50201248520824E+0000 -2.50808497281116E+0000 -2.51417704750686E+0000 +-2.52028876545063E+0000 -2.52642018256497E+0000 -2.53257135453989E+0000 -2.53874233683334E+0000 -2.54493318467155E+0000 +-2.55114395304943E+0000 -2.55737469673090E+0000 -2.56362547024927E+0000 -2.56989632790759E+0000 -2.57618732377903E+0000 +-2.58249851170717E+0000 -2.58882994530642E+0000 -2.59518167796230E+0000 -2.60155376283183E+0000 -2.60794625284382E+0000 +-2.61435920069925E+0000 -2.62079265887156E+0000 -2.62724667960701E+0000 -2.63372131492498E+0000 -2.64021661661830E+0000 +-2.64673263625358E+0000 -2.65326942517149E+0000 -2.65982703448711E+0000 -2.66640551509022E+0000 -2.67300491764560E+0000 +-2.67962529259335E+0000 -2.68626669014918E+0000 -2.69292916030470E+0000 -2.69961275282774E+0000 -2.70631751726261E+0000 +-2.71304350293039E+0000 -2.71979075892926E+0000 -2.72655933413474E+0000 -2.73334927719997E+0000 -2.74016063655602E+0000 +-2.74699346041213E+0000 -2.75384779675603E+0000 -2.76072369335414E+0000 -2.76762119775191E+0000 -2.77454035727404E+0000 +-2.78148121902477E+0000 -2.78844382988811E+0000 -2.79542823652813E+0000 -2.80243448538920E+0000 -2.80946262269624E+0000 +-2.81651269445500E+0000 -2.82358474645225E+0000 -2.83067882425609E+0000 -2.83779497321616E+0000 -2.84493323846389E+0000 +-2.85209366491275E+0000 -2.85927629725845E+0000 -2.86648117997924E+0000 -2.87370835733609E+0000 -2.88095787337293E+0000 +-2.88822977191691E+0000 -2.89552409657860E+0000 -2.90284089075221E+0000 -2.91018019761584E+0000 -2.91754206013167E+0000 +-2.92492652104622E+0000 -2.93233362289054E+0000 -2.93976340798041E+0000 -2.94721591841659E+0000 -2.95469119608502E+0000 +-2.96218928265701E+0000 -2.96971021958948E+0000 -2.97725404812514E+0000 -2.98482080929271E+0000 -2.99241054390713E+0000 +-3.00002329256972E+0000 -3.00765909566843E+0000 -3.01531799337802E+0000 -3.02300002566024E+0000 -3.03070523226405E+0000 +-3.03843365272578E+0000 -3.04618532636936E+0000 -3.05396029230647E+0000 -3.06175858943677E+0000 -3.06958025644805E+0000 +-3.07742533181642E+0000 -3.08529385380652E+0000 -3.09318586047166E+0000 -3.10110138965405E+0000 -3.10904047898493E+0000 +-3.11700316588476E+0000 -3.12498948756344E+0000 -3.13299948102039E+0000 -3.14103318304484E+0000 -3.14909063021589E+0000 +-3.15717185890276E+0000 -3.16527690526491E+0000 -3.17340580525225E+0000 -3.18155859460524E+0000 -3.18973530885513E+0000 +-3.19793598332407E+0000 -3.20616065312528E+0000 -3.21440935316324E+0000 -3.22268211813382E+0000 -3.23097898252442E+0000 +-3.23929998061418E+0000 -3.24764514647409E+0000 -3.25601451396716E+0000 -3.26440811674858E+0000 -3.27282598826584E+0000 +-3.28126816175893E+0000 -3.28973467026043E+0000 -3.29822554659570E+0000 -3.30674082338303E+0000 -3.31528053303375E+0000 +-3.32384470775238E+0000 -3.33243337953683E+0000 -3.34104658017844E+0000 -3.34968434126221E+0000 -3.35834669416692E+0000 +-3.36703367006522E+0000 -3.37574529992383E+0000 -3.38448161450362E+0000 -3.39324264435980E+0000 -3.40202841984201E+0000 +-3.41083897109448E+0000 -3.41967432805613E+0000 -3.42853452046076E+0000 -3.43741957783710E+0000 -3.44632952950900E+0000 +-3.45526440459555E+0000 -3.46422423201117E+0000 -3.47320904046577E+0000 -3.48221885846487E+0000 -3.49125371430971E+0000 +-3.50031363609739E+0000 -3.50939865172098E+0000 -3.51850878886964E+0000 -3.52764407502875E+0000 -3.53680453748001E+0000 +-3.54599020330160E+0000 -3.55520109936822E+0000 -3.56443725235131E+0000 -3.57369868871907E+0000 -3.58298543473663E+0000 +-3.59229751646614E+0000 -3.60163495976691E+0000 -3.61099779029548E+0000 -3.62038603350576E+0000 -3.62979971464914E+0000 +-3.63923885877460E+0000 -3.64870349072878E+0000 -3.65819363515616E+0000 -3.66770931649911E+0000 -3.67725055899799E+0000 +-3.68681738669132E+0000 -3.69640982341582E+0000 -3.70602789280652E+0000 -3.71567161829692E+0000 -3.72534102311901E+0000 +-3.73503613030344E+0000 -3.74475696267958E+0000 -3.75450354287565E+0000 -3.76427589331878E+0000 -3.77407403623514E+0000 +-3.78389799365005E+0000 -3.79374778738802E+0000 -3.80362343907291E+0000 -3.81352497012798E+0000 -3.82345240177601E+0000 +-3.83340575503940E+0000 -3.84338505074023E+0000 -3.85339030950038E+0000 -3.86342155174162E+0000 -3.87347879768569E+0000 +-3.88356206735440E+0000 -3.89367138056974E+0000 -3.90380675695390E+0000 -3.91396821592945E+0000 -3.92415577671937E+0000 +-3.93436945834714E+0000 -3.94460927963686E+0000 -3.95487525921329E+0000 -3.96516741550200E+0000 -3.97548576672937E+0000 +-3.98583033092275E+0000 -3.99620112591051E+0000 -4.00659816932213E+0000 -4.01702147858827E+0000 -4.02747107094087E+0000 +-4.03794696341322E+0000 -4.04844917284006E+0000 -4.05897771585762E+0000 -4.06953260890374E+0000 -4.08011386821795E+0000 +-4.09072150984150E+0000 -4.10135554961749E+0000 -4.11201600319093E+0000 -4.12270288600882E+0000 -4.13341621332021E+0000 +-4.14415600017629E+0000 -4.15492226143047E+0000 -4.16571501173845E+0000 -4.17653426555829E+0000 -4.18738003715049E+0000 +-4.19825234057806E+0000 -4.20915118970658E+0000 -4.22007659820429E+0000 -4.23102857954219E+0000 -4.24200714699404E+0000 +-4.25301231363648E+0000 -4.26404409234908E+0000 -4.27510249581447E+0000 -4.28618753651828E+0000 -4.29729922674936E+0000 +-4.30843757859973E+0000 -4.31960260396473E+0000 -4.33079431454301E+0000 -4.34201272183669E+0000 -4.35325783715133E+0000 +-4.36452967159607E+0000 -4.37582823608367E+0000 -4.38715354133054E+0000 -4.39850559785688E+0000 -4.40988441598668E+0000 +-4.42129000584781E+0000 -4.43272237737208E+0000 -4.44418154029531E+0000 -4.45566750415737E+0000 -4.46718027830227E+0000 +-4.47871987187821E+0000 -4.49028629383765E+0000 -4.50187955293733E+0000 -4.51349965773840E+0000 -4.52514661660643E+0000 +-4.53682043771146E+0000 -4.54852112902814E+0000 -4.56024869833566E+0000 -4.57200315321794E+0000 -4.58378450106360E+0000 +-4.59559274906604E+0000 -4.60742790422353E+0000 -4.61928997333922E+0000 -4.63117896302122E+0000 -4.64309487968267E+0000 +-4.65503772954176E+0000 -4.66700751862181E+0000 -4.67900425275134E+0000 -4.69102793756408E+0000 -4.70307857849908E+0000 +-4.71515618080070E+0000 -4.72726074951872E+0000 -4.73939228950837E+0000 -4.75155080543039E+0000 -4.76373630175107E+0000 +-4.77594878274231E+0000 -4.78818825248168E+0000 -4.80045471485247E+0000 -4.81274817354371E+0000 -4.82506863205028E+0000 +-4.83741609367291E+0000 -4.84979056151825E+0000 -4.86219203849893E+0000 -4.87462052733358E+0000 -4.88707603054691E+0000 +-4.89955855046975E+0000 -4.91206808923909E+0000 -4.92460464879814E+0000 -4.93716823089637E+0000 -4.94975883708957E+0000 +-4.96237646873987E+0000 -4.97502112701583E+0000 -4.98769281289245E+0000 -5.00039152715123E+0000 -5.01311727038022E+0000 +-5.02587004297407E+0000 -5.03864984513405E+0000 -5.05145667686814E+0000 -5.06429053799104E+0000 -5.07715142812420E+0000 +-5.09003934669594E+0000 -5.10295429294140E+0000 -5.11589626590265E+0000 -5.12886526442871E+0000 -5.14186128717560E+0000 +-5.15488433260636E+0000 -5.16793439899115E+0000 -5.18101148440722E+0000 -5.19411558673901E+0000 -5.20724670367815E+0000 +-5.22040483272356E+0000 -5.23358997118141E+0000 -5.24680211616525E+0000 -5.26004126459596E+0000 -5.27330741320189E+0000 +-5.28660055851881E+0000 -5.29992069689002E+0000 -5.31326782446633E+0000 -5.32664193720616E+0000 -5.34004303087553E+0000 +-5.35347110104813E+0000 -5.36692614310535E+0000 -5.38040815223632E+0000 -5.39391712343795E+0000 -5.40745305151494E+0000 +-5.42101593107988E+0000 -5.43460575655324E+0000 -5.44822252216342E+0000 -5.46186622194679E+0000 -5.47553684974771E+0000 +-5.48923439921863E+0000 -5.50295886382002E+0000 -5.51671023682052E+0000 -5.53048851129689E+0000 -5.54429368013410E+0000 +-5.55812573602532E+0000 -5.57198467147203E+0000 -5.58587047878397E+0000 -5.59978315007921E+0000 -5.61372267728423E+0000 +-5.62768905213387E+0000 -5.64168226617145E+0000 -5.65570231074872E+0000 -5.66974917702598E+0000 -5.68382285597205E+0000 +-5.69792333836433E+0000 -5.71205061478884E+0000 -5.72620467564024E+0000 -5.74038551112187E+0000 -5.75459311124578E+0000 +-5.76882746583276E+0000 -5.78308856451239E+0000 -5.79737639672306E+0000 -5.81169095171199E+0000 -5.82603221853528E+0000 +-5.84040018605796E+0000 -5.85479484295396E+0000 -5.86921617770623E+0000 -5.88366417860668E+0000 -5.89813883375627E+0000 +-5.91264013106504E+0000 -5.92716805825212E+0000 -5.94172260284575E+0000 -5.95630375218336E+0000 -5.97091149341154E+0000 +-5.98554581348612E+0000 -6.00020669917218E+0000 -6.01489413704406E+0000 -6.02960811348544E+0000 -6.04434861468933E+0000 +-6.05911562665808E+0000 -6.07390913520348E+0000 -6.08872912594673E+0000 -6.10357558431848E+0000 -6.11844849555889E+0000 +-6.13334784471761E+0000 -6.14827361665384E+0000 -6.16322579603636E+0000 -6.17820436734354E+0000 -6.19320931486340E+0000 +-6.20824062269357E+0000 -6.22329827474141E+0000 -6.23838225472397E+0000 -6.25349254616804E+0000 -6.26862913241019E+0000 +-6.28379199659676E+0000 -6.29898112168393E+0000 -6.31419649043771E+0000 -6.32943808543401E+0000 -6.34470588905861E+0000 +-6.35999988350724E+0000 -6.37532005078556E+0000 -6.39066637270924E+0000 -6.40603883090393E+0000 -6.42143740680532E+0000 +-6.43686208165916E+0000 -6.45231283652128E+0000 -6.46778965225761E+0000 -6.48329250954422E+0000 -6.49882138886734E+0000 +-6.51437627052339E+0000 -6.52995713461898E+0000 -6.54556396107096E+0000 -6.56119672960644E+0000 -6.57685541976282E+0000 +-6.59254001088779E+0000 -6.60825048213937E+0000 -6.62398681248595E+0000 -6.63974898070629E+0000 -6.65553696538956E+0000 +-6.67135074493533E+0000 -6.68719029755365E+0000 -6.70305560126502E+0000 -6.71894663390046E+0000 -6.73486337310149E+0000 +-6.75080579632017E+0000 -6.76677388081914E+0000 -6.78276760367163E+0000 -6.79878694176145E+0000 -6.81483187178308E+0000 +-6.83090237024165E+0000 -6.84699841345294E+0000 -6.86311997754345E+0000 -6.87926703845041E+0000 -6.89543957192178E+0000 +-6.91163755351629E+0000 -6.92786095860346E+0000 -6.94410976236363E+0000 -6.96038393978795E+0000 -6.97668346567844E+0000 +-6.99300831464797E+0000 -7.00935846112033E+0000 -7.02573387933022E+0000 -7.04213454332326E+0000 -7.05856042695605E+0000 +-7.07501150389617E+0000 -7.09148774762217E+0000 -7.10798913142364E+0000 -7.12451562840122E+0000 -7.14106721146659E+0000 +-7.15764385334252E+0000 -7.17424552656287E+0000 -7.19087220347263E+0000 -7.20752385622794E+0000 -7.22420045679608E+0000 +-7.24090197695552E+0000 -7.25762838829593E+0000 -7.27437966221821E+0000 -7.29115576993446E+0000 -7.30795668246807E+0000 +-7.32478237065371E+0000 -7.34163280513733E+0000 -7.35850795637619E+0000 -7.37540779463890E+0000 -7.39233229000543E+0000 +-7.40928141236709E+0000 -7.42625513142659E+0000 -7.44325341669806E+0000 -7.46027623750706E+0000 -7.47732356299057E+0000 +-7.49439536209706E+0000 -7.51149160358645E+0000 -7.52861225603021E+0000 -7.54575728781128E+0000 -7.56292666712413E+0000 +-7.58012036197483E+0000 -7.59733834018098E+0000 -7.61458056937177E+0000 -7.63184701698803E+0000 -7.64913765028219E+0000 +-7.66645243631829E+0000 -7.68379134197208E+0000 -7.70115433393095E+0000 -7.71854137869400E+0000 -7.73595244257203E+0000 +-7.75338749168755E+0000 -7.77084649197485E+0000 -7.78832940917995E+0000 -7.80583620886064E+0000 -7.82336685638654E+0000 +-7.84092131693902E+0000 -7.85849955551133E+0000 -7.87610153690853E+0000 -7.89372722574755E+0000 -7.91137658645720E+0000 +-7.92904958327814E+0000 -7.94674618026299E+0000 -7.96446634127627E+0000 -7.98221002999442E+0000 -7.99997720990584E+0000 +-8.01776784431091E+0000 -8.03558189632200E+0000 -8.05341932886346E+0000 -8.07128010467167E+0000 -8.08916418629504E+0000 +-8.10707153609400E+0000 -8.12500211624110E+0000 -8.14295588872088E+0000 -8.16093281533005E+0000 -8.17893285767738E+0000 +-8.19695597718379E+0000 -8.21500213508232E+0000 -8.23307129241817E+0000 -8.25116341004869E+0000 -8.26927844864341E+0000 +-8.28741636868409E+0000 -8.30557713046465E+0000 -8.32376069409128E+0000 -8.34196701948234E+0000 -8.36019606636855E+0000 +-8.37844779429279E+0000 -8.39672216261028E+0000 -8.41501913048851E+0000 -8.43333865690730E+0000 -8.45168070065877E+0000 +-8.47004522034739E+0000 -8.48843217438998E+0000 -8.50684152101571E+0000 -8.52527321826615E+0000 -8.54372722399525E+0000 +-8.56220349586935E+0000 -8.58070199136725E+0000 -8.59922266778014E+0000 -8.61776548221166E+0000 -8.63633039157794E+0000 +-8.65491735260754E+0000 -8.67352632184154E+0000 -8.69215725563349E+0000 -8.71081011014946E+0000 -8.72948484136808E+0000 +-8.74818140508045E+0000 -8.76689975689027E+0000 -8.78563985221379E+0000 -8.80440164627982E+0000 -8.82318509412979E+0000 +-8.84199015061767E+0000 -8.86081677041013E+0000 -8.87966490798637E+0000 -8.89853451763834E+0000 -8.91742555347052E+0000 +-8.93633796940014E+0000 -8.95527171915707E+0000 -8.97422675628385E+0000 -8.99320303413578E+0000 -9.01220050588081E+0000 +-9.03121912449964E+0000 -9.05025884278571E+0000 -9.06931961334517E+0000 -9.08840138859700E+0000 -9.10750412077287E+0000 +-9.12662776191731E+0000 -9.14577226388758E+0000 -9.16493757835377E+0000 -9.18412365679882E+0000 -9.20333045051845E+0000 +-9.22255791062125E+0000 -9.24180598802864E+0000 -9.26107463347493E+0000 -9.28036379750728E+0000 -9.29967343048575E+0000 +-9.31900348258330E+0000 -9.33835390378580E+0000 -9.35772464389203E+0000 -9.37711565251370E+0000 -9.39652687907549E+0000 +-9.41595827281498E+0000 -9.43540978278274E+0000 -9.45488135784235E+0000 -9.47437294667034E+0000 -9.49388449775622E+0000 +-9.51341595940254E+0000 -9.53296727972486E+0000 -9.55253840665176E+0000 -9.57212928792486E+0000 -9.59173987109882E+0000 +-9.61137010354141E+0000 -9.63101993243340E+0000 -9.65068930476869E+0000 -9.67037816735425E+0000 -9.69008646681015E+0000 +-9.70981414956960E+0000 -9.72956116187888E+0000 -9.74932744979747E+0000 -9.76911295919791E+0000 -9.78891763576599E+0000 +-9.80874142500057E+0000 -9.82858427221374E+0000 -9.84844612253075E+0000 -9.86832692089005E+0000 -9.88822661204328E+0000 +-9.90814514055531E+0000 -9.92808245080423E+0000 -9.94803848698135E+0000 -9.96801319309121E+0000 -9.98800651295164E+0000 +-1.00080183901936E+0001 -1.00280487682617E+0001 -1.00480975904132E+0001 -1.00681647997193E+0001 -1.00882503390641E+0001 +-1.01083541511450E+0001 -1.01284761784730E+0001 -1.01486163633721E+0001 -1.01687746479799E+0001 -1.01889509742473E+0001 +-1.02091452839383E+0001 -1.02293575186305E+0001 -1.02495876197149E+0001 -1.02698355283958E+0001 -1.02901011856909E+0001 +-1.03103845324312E+0001 -1.03306855092613E+0001 -1.03510040566391E+0001 -1.03713401148359E+0001 -1.03916936239365E+0001 +-1.04120645238392E+0001 -1.04324527542556E+0001 -1.04528582547108E+0001 -1.04732809645435E+0001 -1.04937208229058E+0001 +-1.05141777687632E+0001 -1.05346517408948E+0001 -1.05551426778931E+0001 -1.05756505181643E+0001 -1.05961751999280E+0001 +-1.06167166612173E+0001 -1.06372748398789E+0001 -1.06578496735729E+0001 -1.06784410997733E+0001 -1.06990490557673E+0001 +-1.07196734786558E+0001 -1.07403143053533E+0001 -1.07609714725879E+0001 -1.07816449169012E+0001 -1.08023345746486E+0001 +-1.08230403819990E+0001 -1.08437622749348E+0001 -1.08645001892521E+0001 -1.08852540605608E+0001 -1.09060238242843E+0001 +-1.09268094156596E+0001 -1.09476107697375E+0001 -1.09684278213823E+0001 -1.09892605052721E+0001 -1.10101087558987E+0001 +-1.10309725075675E+0001 -1.10518516943977E+0001 -1.10727462503221E+0001 -1.10936561090872E+0001 -1.11145812042534E+0001 +-1.11355214691946E+0001 -1.11564768370987E+0001 -1.11774472409670E+0001 -1.11984326136149E+0001 -1.12194328876713E+0001 +-1.12404479955790E+0001 -1.12614778695946E+0001 -1.12825224417883E+0001 -1.13035816440443E+0001 -1.13246554080605E+0001 +-1.13457436653486E+0001 -1.13668463472341E+0001 -1.13879633848563E+0001 -1.14090947091684E+0001 -1.14302402509375E+0001 +-1.14513999407443E+0001 -1.14725737089834E+0001 -1.14937614858635E+0001 -1.15149632014070E+0001 -1.15361787854500E+0001 +-1.15574081676427E+0001 -1.15786512774492E+0001 -1.15999080441472E+0001 -1.16211783968287E+0001 -1.16424622643993E+0001 +-1.16637595755786E+0001 -1.16850702589001E+0001 -1.17063942427113E+0001 -1.17277314551735E+0001 -1.17490818242620E+0001 +-1.17704452777662E+0001 -1.17918217432891E+0001 -1.18132111482479E+0001 -1.18346134198737E+0001 -1.18560284852117E+0001 +-1.18774562711208E+0001 -1.18988967042742E+0001 -1.19203497111587E+0001 -1.19418152180755E+0001 -1.19632931511396E+0001 +-1.19847834362800E+0001 -1.20062859992396E+0001 -1.20278007655757E+0001 -1.20493276606593E+0001 -1.20708666096755E+0001 +-1.20924175376234E+0001 -1.21139803693162E+0001 -1.21355550293813E+0001 -1.21571414422600E+0001 -1.21787395322075E+0001 +-1.22003492232934E+0001 -1.22219704394012E+0001 -1.22436031042284E+0001 -1.22652471412869E+0001 -1.22869024739023E+0001 +-1.23085690252146E+0001 -1.23302467181777E+0001 -1.23519354755598E+0001 -1.23736352199431E+0001 -1.23953458737240E+0001 +-1.24170673591129E+0001 -1.24387995981344E+0001 -1.24605425126274E+0001 -1.24822960242447E+0001 -1.25040600544534E+0001 +-1.25258345245347E+0001 -1.25476193555840E+0001 -1.25694144685109E+0001 -1.25912197840391E+0001 -1.26130352227065E+0001 +-1.26348607048653E+0001 -1.26566961506818E+0001 -1.26785414801363E+0001 -1.27003966130237E+0001 -1.27222614689529E+0001 +-1.27441359673471E+0001 -1.27660200274435E+0001 -1.27879135682937E+0001 -1.28098165087637E+0001 -1.28317287675334E+0001 +-1.28536502630971E+0001 -1.28755809137635E+0001 -1.28975206376552E+0001 -1.29194693527095E+0001 -1.29414269766775E+0001 +-1.29633934271250E+0001 -1.29853686214318E+0001 -1.30073524767921E+0001 -1.30293449102143E+0001 -1.30513458385211E+0001 +-1.30733551783497E+0001 -1.30953728461513E+0001 -1.31173987581917E+0001 -1.31394328305507E+0001 -1.31614749791227E+0001 +-1.31835251196163E+0001 -1.32055831675545E+0001 -1.32276490382744E+0001 -1.32497226469278E+0001 -1.32718039084805E+0001 +-1.32938927377129E+0001 -1.33159890492197E+0001 -1.33380927574098E+0001 -1.33602037765066E+0001 -1.33823220205481E+0001 +-1.34044474033861E+0001 -1.34265798386873E+0001 -1.34487192399326E+0001 -1.34708655204171E+0001 -1.34930185932507E+0001 +-1.35151783713574E+0001 -1.35373447674757E+0001 -1.35595176941585E+0001 -1.35816970637730E+0001 -1.36038827885010E+0001 +-1.36260747803386E+0001 -1.36482729510965E+0001 -1.36704772123996E+0001 -1.36926874756873E+0001 -1.37149036522137E+0001 +-1.37371256530469E+0001 -1.37593533890698E+0001 -1.37815867709796E+0001 -1.38038257092880E+0001 -1.38260701143213E+0001 +-1.38483198962199E+0001 -1.38705749649391E+0001 -1.38928352302485E+0001 -1.39151006017320E+0001 -1.39373709887884E+0001 +-1.39596463006306E+0001 -1.39819264462861E+0001 -1.40042113345972E+0001 -1.40265008742203E+0001 -1.40487949736264E+0001 +-1.40710935411012E+0001 -1.40933964847449E+0001 -1.41157037124720E+0001 -1.41380151320116E+0001 -1.41603306509076E+0001 +-1.41826501765181E+0001 -1.42049736160159E+0001 -1.42273008763883E+0001 -1.42496318644372E+0001 -1.42719664867790E+0001 +-1.42943046498447E+0001 -1.43166462598799E+0001 -1.43389912229447E+0001 -1.43613394449137E+0001 -1.43836908314763E+0001 +-1.44060452881362E+0001 -1.44284027202119E+0001 -1.44507630328364E+0001 -1.44731261309574E+0001 -1.44954919193369E+0001 +-1.45178603025519E+0001 -1.45402311849938E+0001 -1.45626044708684E+0001 -1.45849800641967E+0001 -1.46073578688136E+0001 +-1.46297377883692E+0001 -1.46521197263278E+0001 -1.46745035859688E+0001 -1.46968892703857E+0001 -1.47192766824870E+0001 +-1.47416657249958E+0001 -1.47640563004497E+0001 -1.47864483112010E+0001 -1.48088416594167E+0001 -1.48312362470786E+0001 +-1.48536319759828E+0001 -1.48760287477404E+0001 -1.48984264637770E+0001 -1.49208250253329E+0001 -1.49432243334631E+0001 +-1.49656242890372E+0001 -1.49880247927396E+0001 -1.50104257450694E+0001 -1.50328270463403E+0001 -1.50552285966806E+0001 +-1.50776302960336E+0001 -1.51000320441570E+0001 -1.51224337406235E+0001 -1.51448352848201E+0001 -1.51672365759490E+0001 +-1.51896375130267E+0001 -1.52120379948847E+0001 -1.52344379201690E+0001 -1.52568371873406E+0001 -1.52792356946751E+0001 +-1.53016333402627E+0001 -1.53240300220085E+0001 -1.53464256376323E+0001 -1.53688200846687E+0001 -1.53912132604669E+0001 +-1.54136050621911E+0001 -1.54359953868200E+0001 -1.54583841311473E+0001 -1.54807711917812E+0001 -1.55031564651449E+0001 +-1.55255398474762E+0001 -1.55479212348278E+0001 -1.55703005230672E+0001 -1.55926776078765E+0001 -1.56150523847527E+0001 +-1.56374247490078E+0001 -1.56597945957681E+0001 -1.56821618199751E+0001 -1.57045263163851E+0001 -1.57268879795689E+0001 +-1.57492467039124E+0001 -1.57716023836161E+0001 -1.57939549126955E+0001 -1.58163041849808E+0001 -1.58386500941171E+0001 +-1.58609925335642E+0001 -1.58833313965968E+0001 -1.59056665763044E+0001 -1.59279979655914E+0001 -1.59503254571771E+0001 +-1.59726489435953E+0001 -1.59949683171951E+0001 -1.60172834701401E+0001 -1.60395942944090E+0001 -1.60619006817950E+0001 +-1.60842025239065E+0001 -1.61064997121667E+0001 -1.61287921378135E+0001 -1.61510796918999E+0001 -1.61733622652935E+0001 +-1.61956397486770E+0001 -1.62179120325478E+0001 -1.62401790072183E+0001 -1.62624405628157E+0001 -1.62846965892823E+0001 +-1.63069469763749E+0001 -1.63291916136654E+0001 -1.63514303905408E+0001 -1.63736631962026E+0001 -1.63958899196674E+0001 +-1.64181104497668E+0001 -1.64403246751472E+0001 -1.64625324842698E+0001 -1.64847337654109E+0001 -1.65069284066616E+0001 +-1.65291162959280E+0001 -1.65512973209310E+0001 -1.65734713692065E+0001 -1.65956383281053E+0001 -1.66177980847933E+0001 +-1.66399505262510E+0001 -1.66620955392742E+0001 -1.66842330104733E+0001 -1.67063628262739E+0001 -1.67284848729165E+0001 +-1.67505990364563E+0001 -1.67727052027637E+0001 -1.67948032575241E+0001 -1.68168930862376E+0001 -1.68389745742196E+0001 +-1.68610476066002E+0001 -1.68831120683243E+0001 -1.69051678441523E+0001 -1.69272148186592E+0001 -1.69492528762350E+0001 +-1.69712819010847E+0001 -1.69933017772283E+0001 -1.70153123885009E+0001 -1.70373136185523E+0001 -1.70593053508475E+0001 +-1.70812874686665E+0001 -1.71032598551041E+0001 -1.71252223930704E+0001 -1.71471749652902E+0001 -1.71691174543035E+0001 +-1.71910497424652E+0001 -1.72129717119452E+0001 -1.72348832447284E+0001 -1.72567842226148E+0001 -1.72786745272195E+0001 +-1.73005540399722E+0001 -1.73224226421182E+0001 -1.73442802147173E+0001 -1.73661266386447E+0001 -1.73879617945904E+0001 +-1.74097855630594E+0001 -1.74315978243721E+0001 -1.74533984586635E+0001 -1.74751873458838E+0001 -1.74969643657982E+0001 +-1.75187293979872E+0001 -1.75404823218459E+0001 -1.75622230165849E+0001 -1.75839513612295E+0001 -1.76056672346202E+0001 +-1.76273705154126E+0001 -1.76490610820772E+0001 -1.76707388128998E+0001 -1.76924035859810E+0001 -1.77140552792367E+0001 +-1.77356937703977E+0001 -1.77573189370099E+0001 -1.77789306564344E+0001 -1.78005288058472E+0001 -1.78221132622394E+0001 +-1.78436839024173E+0001 -1.78652406030023E+0001 -1.78867832404308E+0001 -1.79083116909541E+0001 -1.79298258306390E+0001 +-1.79513255353670E+0001 -1.79728106808350E+0001 -1.79942811425548E+0001 -1.80157367958534E+0001 -1.80371775158728E+0001 +-1.80586031775703E+0001 -1.80800136557181E+0001 -1.81014088249036E+0001 -1.81227885595293E+0001 -1.81441527338128E+0001 +-1.81655012217868E+0001 -1.81868338972993E+0001 -1.82081506340131E+0001 -1.82294513054063E+0001 -1.82507357847723E+0001 +-1.82720039452193E+0001 -1.82932556596708E+0001 -1.83144908008654E+0001 -1.83357092413568E+0001 -1.83569108535141E+0001 +-1.83780955095210E+0001 -1.83992630813769E+0001 -1.84204134408961E+0001 -1.84415464597079E+0001 -1.84626620092569E+0001 +-1.84837599608031E+0001 -1.85048401854212E+0001 -1.85259025540012E+0001 -1.85469469372485E+0001 -1.85679732056834E+0001 +-1.85889812296414E+0001 -1.86099708792732E+0001 -1.86309420245447E+0001 -1.86518945352370E+0001 -1.86728282809462E+0001 +-1.86937431310836E+0001 -1.87146389548760E+0001 -1.87355156213649E+0001 -1.87563729994073E+0001 -1.87772109576753E+0001 +-1.87980293646561E+0001 -1.88188280886522E+0001 -1.88396069977813E+0001 -1.88603659599762E+0001 -1.88811048429848E+0001 +-1.89018235143705E+0001 -1.89225218415116E+0001 -1.89431996916018E+0001 -1.89638569316498E+0001 -1.89844934284797E+0001 +-1.90051090487306E+0001 -1.90257036588571E+0001 -1.90462771251287E+0001 -1.90668293136303E+0001 -1.90873600902618E+0001 +-1.91078693207387E+0001 -1.91283568705914E+0001 -1.91488226051655E+0001 -1.91692663896221E+0001 -1.91896880889371E+0001 +-1.92100875679021E+0001 -1.92304646911236E+0001 -1.92508193230235E+0001 -1.92711513278386E+0001 -1.92914605696215E+0001 +-1.93117469122396E+0001 -1.93320102193755E+0001 -1.93522503545273E+0001 -1.93724671810084E+0001 -1.93926605619471E+0001 +-1.94128303602871E+0001 -1.94329764387874E+0001 -1.94530986600222E+0001 -1.94731968863811E+0001 -1.94932709800686E+0001 +-1.95133208031047E+0001 -1.95333462173248E+0001 -1.95533470843792E+0001 -1.95733232657336E+0001 -1.95932746226692E+0001 +-1.96132010162821E+0001 -1.96331023074839E+0001 -1.96529783570014E+0001 -1.96728290253766E+0001 -1.96926541729668E+0001 +-1.97124536599447E+0001 -1.97322273462981E+0001 -1.97519750918303E+0001 -1.97716967561595E+0001 -1.97913921987195E+0001 +-1.98110612787594E+0001 -1.98307038553434E+0001 -1.98503197873510E+0001 -1.98699089334771E+0001 -1.98894711522318E+0001 +-1.99090063019405E+0001 -1.99285142407441E+0001 -1.99479948265983E+0001 -1.99674479172748E+0001 -1.99868733703598E+0001 +-2.00062710432554E+0001 -2.00256407931788E+0001 -2.00449824771625E+0001 -2.00642959520543E+0001 -2.00835810745173E+0001 +-2.01028377010299E+0001 -2.01220656878859E+0001 -2.01412648911943E+0001 -2.01604351668795E+0001 -2.01795763706811E+0001 +-2.01986883581541E+0001 -2.02177709846689E+0001 -2.02368241054111E+0001 -2.02558475753815E+0001 -2.02748412493966E+0001 +-2.02938049820878E+0001 -2.03127386279021E+0001 -2.03316420411017E+0001 -2.03505150757643E+0001 -2.03693575857828E+0001 +-2.03881694248653E+0001 -2.04069504465356E+0001 -2.04257005041324E+0001 -2.04444194508100E+0001 -2.04631071395381E+0001 +-2.04817634231016E+0001 -2.05003881541007E+0001 -2.05189811849512E+0001 -2.05375423678838E+0001 -2.05560715549451E+0001 +-2.05745685979967E+0001 -2.05930333487155E+0001 -2.06114656585939E+0001 -2.06298653789398E+0001 -2.06482323608760E+0001 +-2.06665664553412E+0001 -2.06848675130890E+0001 -2.07031353846887E+0001 -2.07213699205249E+0001 -2.07395709707973E+0001 +-2.07577383855212E+0001 -2.07758720145273E+0001 -2.07939717074615E+0001 -2.08120373137852E+0001 -2.08300686827752E+0001 +-2.08480656635235E+0001 -2.08660281049375E+0001 -2.08839558557403E+0001 -2.09018487644700E+0001 -2.09197066794801E+0001 +-2.09375294489399E+0001 -2.09553169208334E+0001 -2.09730689429607E+0001 -2.09907853629367E+0001 -2.10084660281921E+0001 +-2.10261107859727E+0001 -2.10437194833398E+0001 -2.10612919671703E+0001 -2.10788280841560E+0001 -2.10963276808046E+0001 +-2.11137906034392E+0001 -2.11312166981975E+0001 -2.11486058110336E+0001 -2.11659577877164E+0001 -2.11832724738306E+0001 +-2.12005497147759E+0001 -2.12177893557676E+0001 -2.12349912418366E+0001 -2.12521552178287E+0001 -2.12692811284056E+0001 +-2.12863688180441E+0001 -2.13034181310367E+0001 -2.13204289114911E+0001 -2.13374010033305E+0001 -2.13543342502933E+0001 +-2.13712284959336E+0001 -2.13880835836209E+0001 -2.14048993565399E+0001 -2.14216756576911E+0001 -2.14384123298898E+0001 +-2.14551092157676E+0001 -2.14717661577706E+0001 -2.14883829981608E+0001 -2.15049595790158E+0001 -2.15214957422283E+0001 +-2.15379913295067E+0001 -2.15544461823744E+0001 -2.15708601421706E+0001 -2.15872330500500E+0001 -2.16035647469826E+0001 +-2.16198550737537E+0001 -2.16361038709641E+0001 -2.16523109790303E+0001 -2.16684762381840E+0001 -2.16845994884722E+0001 +-2.17006805697579E+0001 -2.17167193217188E+0001 -2.17327155838487E+0001 -2.17486691954565E+0001 -2.17645799956666E+0001 +-2.17804478234189E+0001 -2.17962725174688E+0001 -2.18120539163870E+0001 -2.18277918585597E+0001 -2.18434861821888E+0001 +-2.18591367252913E+0001 -2.18747433256998E+0001 -2.18903058210624E+0001 -2.19058240488429E+0001 -2.19212978463200E+0001 +-2.19367270505882E+0001 -2.19521114985574E+0001 -2.19674510269533E+0001 -2.19827454723165E+0001 -2.19979946710034E+0001 +-2.20131984591858E+0001 -2.20283566728511E+0001 -2.20434691478019E+0001 -2.20585357196564E+0001 -2.20735562238485E+0001 +-2.20885304956274E+0001 -2.21034583700574E+0001 -2.21183396820190E+0001 -2.21331742662077E+0001 -2.21479619571347E+0001 +-2.21627025891264E+0001 -2.21773959963250E+0001 -2.21920420126881E+0001 -2.22066404719886E+0001 -2.22211912078152E+0001 +-2.22356940535717E+0001 -2.22501488424779E+0001 -2.22645554075686E+0001 -2.22789135816944E+0001 -2.22932231975212E+0001 +-2.23074840875304E+0001 -2.23216960840193E+0001 -2.23358590191002E+0001 -2.23499727247010E+0001 -2.23640370325652E+0001 +-2.23780517742519E+0001 -2.23920167811356E+0001 -2.24059318844061E+0001 -2.24197969150691E+0001 -2.24336117039454E+0001 +-2.24473760816716E+0001 -2.24610898786998E+0001 -2.24747529252975E+0001 -2.24883650515476E+0001 -2.25019260873486E+0001 +-2.25154358624147E+0001 -2.25288942062756E+0001 -2.25423009482762E+0001 -2.25556559175771E+0001 -2.25689589431546E+0001 +-2.25822098538000E+0001 -2.25954084781207E+0001 -2.26085546445393E+0001 -2.26216481812941E+0001 -2.26346889164387E+0001 +-2.26476766778425E+0001 -2.26606112931901E+0001 -2.26734925899819E+0001 -2.26863203955338E+0001 -2.26990945369769E+0001 +-2.27118148412582E+0001 -2.27244811351404E+0001 -2.27370932452010E+0001 -2.27496509978338E+0001 -2.27621542192475E+0001 +-2.27746027354671E+0001 -2.27869963723322E+0001 -2.27993349554989E+0001 -2.28116183104380E+0001 -2.28238462624362E+0001 +-2.28360186365961E+0001 -2.28481352578350E+0001 -2.28601959508865E+0001 -2.28722005402995E+0001 -2.28841488504384E+0001 +-2.28960407054830E+0001 -2.29078759294288E+0001 -2.29196543460872E+0001 -2.29313757790843E+0001 -2.29430400518626E+0001 +-2.29546469876798E+0001 -2.29661964096089E+0001 -2.29776881405389E+0001 -2.29891220031742E+0001 -2.30004978200346E+0001 +-2.30118154134557E+0001 -2.30230746055884E+0001 -2.30342752183993E+0001 -2.30454170736706E+0001 -2.30564999929999E+0001 +-2.30675237978006E+0001 -2.30784883093015E+0001 -2.30893933485469E+0001 -2.31002387363970E+0001 -2.31110242935269E+0001 +-2.31217498404282E+0001 -2.31324151974072E+0001 -2.31430201845861E+0001 -2.31535646219029E+0001 -2.31640483291109E+0001 +-2.31744711257790E+0001 -2.31848328312916E+0001 -2.31951332648491E+0001 -2.32053722454668E+0001 -2.32155495919761E+0001 +-2.32256651230237E+0001 -2.32357186570721E+0001 -2.32457100123993E+0001 -2.32556390070987E+0001 -2.32655054590795E+0001 +-2.32753091860664E+0001 -2.32850500055995E+0001 -2.32947277350349E+0001 -2.33043421915440E+0001 -2.33138931921137E+0001 +-2.33233805535468E+0001 -2.33328040924614E+0001 -2.33421636252913E+0001 -2.33514589682858E+0001 -2.33606899375101E+0001 +-2.33698563488445E+0001 -2.33789580179853E+0001 -2.33879947604441E+0001 -2.33969663915485E+0001 -2.34058727264412E+0001 +-2.34147135800808E+0001 -2.34234887672414E+0001 -2.34321981025127E+0001 -2.34408414003001E+0001 -2.34494184748244E+0001 +-2.34579291401221E+0001 -2.34663732100455E+0001 -2.34747504982622E+0001 -2.34830608182554E+0001 -2.34913039833243E+0001 +-2.34994798065831E+0001 -2.35075881009621E+0001 -2.35156286792071E+0001 -2.35236013538793E+0001 -2.35315059373557E+0001 +-2.35393422418289E+0001 -2.35471100793069E+0001 -2.35548092616137E+0001 -2.35624396003886E+0001 -2.35700009070867E+0001 +-2.35774929929783E+0001 -2.35849156691501E+0001 -2.35922687465034E+0001 -2.35995520357560E+0001 -2.36067653474409E+0001 +-2.36139084919068E+0001 -2.36209812793180E+0001 -2.36279835196544E+0001 -2.36349150227116E+0001 -2.36417755981008E+0001 +-2.36485650552486E+0001 -2.36552832033975E+0001 -2.36619298516057E+0001 -2.36685048087467E+0001 -2.36750078835098E+0001 +-2.36814388843999E+0001 -2.36877976197375E+0001 -2.36940838976589E+0001 -2.37002975261157E+0001 -2.37064383128755E+0001 +-2.37125060655213E+0001 -2.37185005914516E+0001 -2.37244216978811E+0001 -2.37302691918395E+0001 -2.37360428801722E+0001 +-2.37417425695407E+0001 -2.37473680664216E+0001 -2.37529191771077E+0001 -2.37583957077069E+0001 -2.37637974641430E+0001 +-2.37691242521553E+0001 -2.37743758772991E+0001 -2.37795521449448E+0001 -2.37846528602788E+0001 -2.37896778283031E+0001 +-2.37946268538352E+0001 -2.37994997415084E+0001 -2.38042962957717E+0001 -2.38090163208894E+0001 -2.38136596209417E+0001 +-2.38182259998246E+0001 -2.38227152612495E+0001 -2.38271272087434E+0001 -2.38314616456492E+0001 -2.38357183751253E+0001 +-2.38398972001456E+0001 -2.38439979235000E+0001 -2.38480203477938E+0001 -2.38519642754479E+0001 -2.38558295086990E+0001 +-2.38596158495996E+0001 -2.38633231000175E+0001 -2.38669510616365E+0001 -2.38704995359558E+0001 -2.38739683242902E+0001 +-2.38773572277704E+0001 -2.38806660473430E+0001 -2.38838945837693E+0001 -2.38870426376273E+0001 -2.38901100093101E+0001 +-2.38930964990267E+0001 -2.38960019068015E+0001 -2.38988260324749E+0001 -2.39015686757028E+0001 -2.39042296359567E+0001 +-2.39068087125237E+0001 -2.39093057045066E+0001 -2.39117204108244E+0001 -2.39140526302108E+0001 -2.39163021612161E+0001 +-2.39184688022057E+0001 -2.39205523513609E+0001 -2.39225526066783E+0001 -2.39244693659710E+0001 -2.39263024268669E+0001 +-2.39280515868097E+0001 -2.39297166430596E+0001 -2.39312973926911E+0001 -2.39327936325957E+0001 -2.39342051594798E+0001 +-2.39355317698656E+0001 -2.39367732600915E+0001 -2.39379294263107E+0001 -2.39390000644925E+0001 -2.39399849704223E+0001 +-2.39408839397005E+0001 -2.39416967677431E+0001 -2.39424232497829E+0001 -2.39430631808672E+0001 -2.39436163558594E+0001 +-2.39440825694384E+0001 -2.39444616160994E+0001 -2.39447532901526E+0001 -2.39449573857243E+0001 -2.39450736967561E+0001 +-2.39451020170055E+0001 -2.39450421400460E+0001 -2.39448938592662E+0001 -2.39446569678709E+0001 -2.39443312588802E+0001 +-2.39439165251300E+0001 -2.39434125592721E+0001 -2.39428191537739E+0001 -2.39421361009182E+0001 -2.39413631928039E+0001 +-2.39405002213454E+0001 -2.39395469782725E+0001 -2.39385032551314E+0001 -2.39373688432836E+0001 -2.39361435339059E+0001 +-2.39348271179916E+0001 -2.39334193863491E+0001 -2.39319201296028E+0001 -2.39303291381924E+0001 -2.39286462023740E+0001 +-2.39268711122187E+0001 -2.39250036576135E+0001 -2.39230436282616E+0001 -2.39209908136811E+0001 -2.39188450032065E+0001 +-2.39166059859873E+0001 -2.39142735509895E+0001 -2.39118474869941E+0001 -2.39093275825982E+0001 -2.39067136262145E+0001 +-2.39040054060716E+0001 -2.39012027102134E+0001 -2.38983053264999E+0001 -2.38953130426067E+0001 -2.38922256460246E+0001 +-2.38890429240611E+0001 -2.38857646638385E+0001 -2.38823906522955E+0001 -2.38789206761859E+0001 -2.38753545220798E+0001 +-2.38716919763624E+0001 -2.38679328252351E+0001 -2.38640768547150E+0001 -2.38601238506346E+0001 -2.38560735986421E+0001 +-2.38519258842018E+0001 -2.38476804925937E+0001 -2.38433372089129E+0001 -2.38388958180709E+0001 -2.38343561047946E+0001 +-2.38297178536266E+0001 -2.38249808489255E+0001 -2.38201448748654E+0001 -2.38152097154359E+0001 -2.38101751544430E+0001 +-2.38050409755074E+0001 -2.37998069620666E+0001 -2.37944728973728E+0001 -2.37890385644951E+0001 -2.37835037463173E+0001 +-2.37778682255395E+0001 -2.37721317846771E+0001 -2.37662942060615E+0001 -2.37603552718400E+0001 -2.37543147639751E+0001 +-2.37481724642456E+0001 -2.37419281542456E+0001 -2.37355816153852E+0001 -2.37291326288901E+0001 -2.37225809758016E+0001 +-2.37159264369772E+0001 -2.37091687930895E+0001 -2.37023078246273E+0001 -2.36953433118950E+0001 -2.36882750350127E+0001 +-2.36811027739162E+0001 -2.36738263083571E+0001 -2.36664454179027E+0001 -2.36589598819362E+0001 -2.36513694796561E+0001 +-2.36436739900770E+0001 -2.36358731920295E+0001 -2.36279668641595E+0001 -2.36199547849282E+0001 -2.36118367326136E+0001 +-2.36036124853089E+0001 -2.35952818209228E+0001 -2.35868445171802E+0001 -2.35783003516215E+0001 -2.35696491016027E+0001 +-2.35608905442962E+0001 -2.35520244566891E+0001 -2.35430506155851E+0001 -2.35339687976033E+0001 -2.35247787791786E+0001 +-2.35154803365617E+0001 -2.35060732458188E+0001 -2.34965572828322E+0001 -2.34869322232997E+0001 -2.34771978427350E+0001 +-2.34673539164675E+0001 -2.34574002196421E+0001 -2.34473365272200E+0001 -2.34371626139775E+0001 -2.34268782545072E+0001 +-2.34164832232169E+0001 -2.34059772943309E+0001 -2.33953602418886E+0001 -2.33846318397455E+0001 -2.33737918615726E+0001 +-2.33628400808565E+0001 -2.33517762709006E+0001 -2.33406002048225E+0001 -2.33293116555568E+0001 -2.33179103958530E+0001 +-2.33063961982773E+0001 -2.32947688352107E+0001 -2.32830280788504E+0001 -2.32711737012095E+0001 -2.32592054741167E+0001 +-2.32471231692161E+0001 -2.32349265579683E+0001 -2.32226154116489E+0001 -2.32101895013499E+0001 -2.31976485979785E+0001 +-2.31849924722582E+0001 -2.31722208947280E+0001 -2.31593336357424E+0001 -2.31463304654720E+0001 -2.31332111539034E+0001 +-2.31199754708381E+0001 -2.31066231858945E+0001 -2.30931540685057E+0001 -2.30795678879213E+0001 -2.30658644132064E+0001 +-2.30520434132418E+0001 -2.30381046567240E+0001 -2.30240479121657E+0001 -2.30098729478948E+0001 -2.29955795320554E+0001 +-2.29811674326073E+0001 -2.29666364173256E+0001 -2.29519862538020E+0001 -2.29372167094432E+0001 -2.29223275514721E+0001 +-2.29073185469272E+0001 -2.28921894626629E+0001 -2.28769400653495E+0001 -2.28615701214724E+0001 -2.28460793973335E+0001 +-2.28304676590503E+0001 -2.28147346725558E+0001 -2.27988802035991E+0001 -2.27829040177450E+0001 -2.27668058803738E+0001 +-2.27505855566819E+0001 -2.27342428116816E+0001 -2.27177774102001E+0001 -2.27011891168818E+0001 -2.26844776961857E+0001 +-2.26676429123869E+0001 -2.26506845295766E+0001 -2.26336023116612E+0001 -2.26163960223636E+0001 -2.25990654252216E+0001 +-2.25816102835900E+0001 -2.25640303606381E+0001 -2.25463254193514E+0001 -2.25284952225318E+0001 -2.25105395327961E+0001 +-2.24924581125777E+0001 -2.24742507241250E+0001 -2.24559171295026E+0001 -2.24374570905909E+0001 -2.24188703690861E+0001 +-2.24001567265000E+0001 -2.23813159241603E+0001 -2.23623477232104E+0001 -2.23432518846097E+0001 -2.23240281691332E+0001 +-2.23046763373713E+0001 -2.22851961497315E+0001 -2.22655873664355E+0001 -2.22458497475218E+0001 -2.22259830528443E+0001 +-2.22059870420727E+0001 -2.21858614746927E+0001 -2.21656061100056E+0001 -2.21452207071285E+0001 -2.21247050249945E+0001 +-2.21040588223520E+0001 -2.20832818577659E+0001 -2.20623738896162E+0001 -2.20413346760994E+0001 -2.20201639752269E+0001 +-2.19988615448265E+0001 -2.19774271425421E+0001 -2.19558605258323E+0001 -2.19341614519727E+0001 -2.19123296780541E+0001 +-2.18903649609834E+0001 -2.18682670574825E+0001 -2.18460357240898E+0001 -2.18236707171598E+0001 -2.18011717928617E+0001 +-2.17785387071818E+0001 -2.17557712159210E+0001 -2.17328690746970E+0001 -2.17098320389424E+0001 -2.16866598639065E+0001 +-2.16633523046538E+0001 -2.16399091160646E+0001 -2.16163300528352E+0001 -2.15926148694776E+0001 -2.15687633203199E+0001 +-2.15447751595055E+0001 -2.15206501409941E+0001 -2.14963880185608E+0001 -2.14719885457969E+0001 -2.14474514761087E+0001 +-2.14227765627195E+0001 -2.13979635586674E+0001 -2.13730122168068E+0001 -2.13479222898079E+0001 -2.13226935301565E+0001 +-2.12973256901544E+0001 -2.12718185219188E+0001 -2.12461717773833E+0001 -2.12203852082968E+0001 -2.11944585662244E+0001 +-2.11683916025472E+0001 -2.11421840684610E+0001 -2.11158357149787E+0001 -2.10893462929281E+0001 -2.10627155529536E+0001 +-2.10359432455147E+0001 -2.10090291208872E+0001 -2.09819729291623E+0001 -2.09547744202473E+0001 -2.09274333438652E+0001 +-2.08999494495550E+0001 -2.08723224866710E+0001 -2.08445522043841E+0001 -2.08166383516804E+0001 -2.07885806773620E+0001 +-2.07603789300468E+0001 -2.07320328581686E+0001 -2.07035422099769E+0001 -2.06749067335371E+0001 -2.06461261767304E+0001 +-2.06172002872537E+0001 -2.05881288126196E+0001 -2.05589115001574E+0001 -2.05295480970108E+0001 -2.05000383501405E+0001 +-2.04703820063223E+0001 -2.04405788121486E+0001 -2.04106285140264E+0001 -2.03805308581798E+0001 -2.03502855906480E+0001 +-2.03198924572862E+0001 -2.02893512037652E+0001 -2.02586615755720E+0001 -2.02278233180091E+0001 -2.01968361761955E+0001 +-2.01656998950647E+0001 -2.01344142193672E+0001 -2.01029788936688E+0001 -2.00713936623515E+0001 -2.00396582696127E+0001 +-2.00077724594660E+0001 -1.99757359757400E+0001 -1.99435485620808E+0001 -1.99112099619480E+0001 -1.98787199186195E+0001 +-1.98460781751871E+0001 -1.98132844745592E+0001 -1.97803385594605E+0001 -1.97472401724301E+0001 -1.97139890558251E+0001 +-1.96805849518157E+0001 -1.96470276023904E+0001 -1.96133167493522E+0001 -1.95794521343203E+0001 -1.95454334987296E+0001 +-1.95112605838310E+0001 -1.94769331306909E+0001 -1.94424508801922E+0001 -1.94078135730329E+0001 -1.93730209497271E+0001 +-1.93380727506046E+0001 -1.93029687158114E+0001 -1.92677085853095E+0001 -1.92322920988756E+0001 -1.91967189961035E+0001 +-1.91609890164023E+0001 -1.91251018989963E+0001 -1.90890573829272E+0001 -1.90528552070512E+0001 -1.90164951100408E+0001 +-1.89799768303840E+0001 -1.89433001063853E+0001 -1.89064646761644E+0001 -1.88694702776570E+0001 -1.88323166486157E+0001 +-1.87950035266065E+0001 -1.87575306490139E+0001 -1.87198977530361E+0001 -1.86821045756888E+0001 -1.86441508538023E+0001 +-1.86060363240233E+0001 -1.85677607228149E+0001 -1.85293237864551E+0001 -1.84907252510372E+0001 -1.84519648524727E+0001 +-1.84130423264864E+0001 -1.83739574086205E+0001 -1.83347098342322E+0001 -1.82952993384949E+0001 -1.82557256563980E+0001 +-1.82159885227461E+0001 -1.81760876721607E+0001 -1.81360228390788E+0001 -1.80957937577518E+0001 -1.80554001622490E+0001 +-1.80148417864546E+0001 -1.79741183640681E+0001 -1.79332296286061E+0001 -1.78921753134000E+0001 -1.78509551515976E+0001 +-1.78095688761628E+0001 -1.77680162198742E+0001 -1.77262969153278E+0001 -1.76844106949331E+0001 -1.76423572909191E+0001 +-1.76001364353265E+0001 -1.75577478600153E+0001 -1.75151912966592E+0001 -1.74724664767487E+0001 -1.74295731315895E+0001 +-1.73865109923040E+0001 -1.73432797898299E+0001 -1.72998792549208E+0001 -1.72563091181462E+0001 -1.72125691098915E+0001 +-1.71686589603576E+0001 -1.71245783995616E+0001 -1.70803271573370E+0001 -1.70359049633319E+0001 -1.69913115470110E+0001 +-1.69465466376550E+0001 -1.69016099643600E+0001 -1.68565012560382E+0001 -1.68112202414175E+0001 -1.67657666490418E+0001 +-1.67201402072710E+0001 -1.66743406442802E+0001 -1.66283676880612E+0001 -1.65822210664210E+0001 -1.65359005069831E+0001 +-1.64894057371862E+0001 -1.64427364842852E+0001 -1.63958924753506E+0001 -1.63488734372695E+0001 -1.63016790967436E+0001 +-1.62543091802916E+0001 -1.62067634142470E+0001 -1.61590415247604E+0001 -1.61111432377982E+0001 -1.60630682791402E+0001 +-1.60148163743854E+0001 -1.59663872489468E+0001 -1.59177806280536E+0001 -1.58689962367514E+0001 -1.58200337999001E+0001 +-1.57708930421774E+0001 -1.57215736880759E+0001 -1.56720754619036E+0001 -1.56223980877855E+0001 -1.55725412896617E+0001 +-1.55225047912883E+0001 -1.54722883162371E+0001 -1.54218915878959E+0001 -1.53713143294689E+0001 -1.53205562639750E+0001 +-1.52696171142497E+0001 -1.52184966029453E+0001 -1.51671944525276E+0001 -1.51157103852808E+0001 -1.50640441233026E+0001 +-1.50121953885086E+0001 -1.49601639026291E+0001 -1.49079493872104E+0001 -1.48555515636151E+0001 -1.48029701530215E+0001 +-1.47502048764231E+0001 -1.46972554546307E+0001 -1.46441216082687E+0001 -1.45908030577802E+0001 -1.45372995234222E+0001 +-1.44836107252679E+0001 -1.44297363832067E+0001 -1.43756762169437E+0001 -1.43214299459996E+0001 -1.42669972897119E+0001 +-1.42123779672329E+0001 -1.41575716975312E+0001 -1.41025781993910E+0001 -1.40473971914134E+0001 -1.39920283920137E+0001 +-1.39364715194244E+0001 -1.38807262916936E+0001 -1.38247924266847E+0001 -1.37686696420778E+0001 -1.37123576553681E+0001 +-1.36558561838667E+0001 -1.35991649447019E+0001 -1.35422836548157E+0001 -1.34852120309676E+0001 -1.34279497897330E+0001 +-1.33704966475018E+0001 -1.33128523204814E+0001 -1.32550165246934E+0001 -1.31969889759770E+0001 -1.31387693899864E+0001 +-1.30803574821911E+0001 -1.30217529678775E+0001 -1.29629555621479E+0001 -1.29039649799190E+0001 -1.28447809359252E+0001 +-1.27854031447159E+0001 -1.27258313206562E+0001 -1.26660651779277E+0001 -1.26061044305272E+0001 -1.25459487922676E+0001 +-1.24855979767785E+0001 -1.24250516975037E+0001 -1.23643096677046E+0001 -1.23033716004572E+0001 -1.22422372086537E+0001 +-1.21809062050028E+0001 -1.21193783020285E+0001 -1.20576532120708E+0001 -1.19957306472856E+0001 -1.19336103196449E+0001 +-1.18712919409356E+0001 -1.18087752227618E+0001 -1.17460598765428E+0001 -1.16831456135134E+0001 -1.16200321447258E+0001 +-1.15567191810462E+0001 -1.14932064331578E+0001 -1.14294936115588E+0001 -1.13655804265649E+0001 -1.13014665883060E+0001 +-1.12371518067286E+0001 -1.11726357915952E+0001 -1.11079182524838E+0001 -1.10429988987884E+0001 -1.09778774397191E+0001 +-1.09125535843020E+0001 -1.08470270413784E+0001 -1.07812975196059E+0001 -1.07153647274578E+0001 -1.06492283732245E+0001 +-1.05828881650102E+0001 -1.05163438107367E+0001 -1.04495950181403E+0001 -1.03826414947743E+0001 -1.03154829480076E+0001 +-1.02481190850248E+0001 -1.01805496128265E+0001 -1.01127742382293E+0001 -1.00447926678650E+0001 -9.97660460818179E+0000 +-9.90820976544433E+0000 -9.83960784573219E+0000 -9.77079855494162E+0000 -9.70178159878424E+0000 -9.63255668278725E+0000 +-9.56312351229485E+0000 -9.49348179246567E+0000 -9.42363122827555E+0000 -9.35357152451570E+0000 -9.28330238579315E+0000 +-9.21282351653122E+0000 -9.14213462096791E+0000 -9.07123540315797E+0000 -9.00012556697288E+0000 -8.92880481609905E+0000 +-8.85727285403823E+0000 -8.78552938410871E+0000 -8.71357410944552E+0000 -8.64140673299835E+0000 -8.56902695753297E+0000 +-8.49643448563097E+0000 -8.42362901969091E+0000 -8.35061026192557E+0000 -8.27737791436516E+0000 -8.20393167885459E+0000 +-8.13027125705594E+0000 -8.05639635044531E+0000 -7.98230666031691E+0000 -7.90800188777894E+0000 -7.83348173375657E+0000 +-7.75874589899058E+0000 -7.68379408403734E+0000 -7.60862598926997E+0000 -7.53324131487648E+0000 -7.45763976086141E+0000 +-7.38182102704468E+0000 -7.30578481306316E+0000 -7.22953081836840E+0000 -7.15305874222827E+0000 -7.07636828372620E+0000 +-6.99945914176305E+0000 -6.92233101505349E+0000 -6.84498360212933E+0000 -6.76741660133780E+0000 -6.68962971084238E+0000 +-6.61162262862240E+0000 -6.53339505247209E+0000 -6.45494668000401E+0000 -6.37627720864361E+0000 -6.29738633563397E+0000 +-6.21827375803423E+0000 -6.13893917271935E+0000 -6.05938227637807E+0000 -5.97960276551862E+0000 -5.89960033646207E+0000 +-5.81937468534716E+0000 -5.73892550812798E+0000 -5.65825250057401E+0000 -5.57735535827146E+0000 -5.49623377662215E+0000 +-5.41488745084371E+0000 -5.33331607596983E+0000 -5.25151934684936E+0000 -5.16949695814833E+0000 -5.08724860434768E+0000 +-5.00477397974441E+0000 -4.92207277845228E+0000 -4.83914469439924E+0000 -4.75598942133115E+0000 -4.67260665280810E+0000 +-4.58899608220690E+0000 -4.50515740271999E+0000 -4.42109030735651E+0000 -4.33679448893986E+0000 -4.25226964011108E+0000 +-4.16751545332613E+0000 -4.08253162085703E+0000 -3.99731783479160E+0000 -3.91187378703421E+0000 -3.82619916930389E+0000 +-3.74029367313665E+0000 -3.65415698988477E+0000 -3.56778881071477E+0000 -3.48118882661061E+0000 -3.39435672837135E+0000 +-3.30729220661306E+0000 -3.21999495176465E+0000 -3.13246465407542E+0000 -3.04470100360777E+0000 -2.95670369023992E+0000 +-2.86847240366706E+0000 -2.78000683339928E+0000 -2.69130666876390E+0000 -2.60237159890312E+0000 -2.51320131277521E+0000 +-2.42379549915404E+0000 -2.33415384663067E+0000 -2.24427604361063E+0000 -2.15416177831571E+0000 -2.06381073878424E+0000 +-1.97322261286990E+0000 -1.88239708824244E+0000 -1.79133385238742E+0000 -1.70003259260602E+0000 -1.60849299601682E+0000 +-1.51671474955174E+0000 -1.42469753996079E+0000 -1.33244105380891E+0000 -1.23994497747799E+0000 -1.14720899716372E+0000 +-1.05423279887964E+0000 -9.61016068454910E-0001 -8.67558491533373E-0001 -7.73859753576517E-0001 -6.79919539860293E-0001 +-5.85737535477620E-0001 -4.91313425336102E-0001 -3.96646894160767E-0001 -3.01737626491786E-0001 -2.06585306684474E-0001 +-1.11189618911339E-0001 -1.55502471604904E-0002 8.03331247636834E-0002 1.76460813243239E-0001 2.72833134840766E-0001 + 3.69450406305987E-0001 4.66312944570291E-0001 5.63421066751062E-0001 6.60775090149173E-0001 7.58375332248306E-0001 + 8.56222110718818E-0001 9.54315743412280E-0001 1.05265654836649E+0000 1.15124484380271E+0000 1.25008094812529E+0000 + 1.34916517992451E+0000 1.44849785797282E+0000 1.54807930122934E+0000 1.64790982883369E+0000 1.74798976011243E+0000 + 1.84831941457469E+0000 1.94889911191581E+0000 2.04972917201189E+0000 2.15080991492619E+0000 2.25214166090382E+0000 + 2.35372473037523E+0000 2.45555944395460E+0000 2.55764612244093E+0000 2.65998508681582E+0000 2.76257665824596E+0000 + 2.86542115808174E+0000 2.96851890785865E+0000 3.07187022929429E+0000 3.17547544429181E+0000 3.27933487493851E+0000 + 3.38344884350522E+0000 3.48781767244668E+0000 3.59244168440227E+0000 3.69732120219487E+0000 3.80245654883220E+0000 + 3.90784804750569E+0000 4.01349602159053E+0000 4.11940079464603E+0000 4.22556269041615E+0000 4.33198203282882E+0000 + 4.43865914599564E+0000 4.54559435421152E+0000 4.65278798195777E+0000 4.76024035389810E+0000 4.86795179487945E+0000 + 4.97592262993567E+0000 5.08415318428251E+0000 5.19264378331945E+0000 5.30139475263195E+0000 5.41040641798736E+0000 + 5.51967910533995E+0000 5.62921314082496E+0000 5.73900885076318E+0000 5.84906656165958E+0000 5.95938660020374E+0000 + 6.06996929326806E+0000 6.18081496790910E+0000 6.29192395136897E+0000 6.40329657107213E+0000 6.51493315462858E+0000 + 6.62683402983021E+0000 6.73899952465581E+0000 6.85142996726609E+0000 6.96412568600772E+0000 7.07708700940930E+0000 + 7.19031426618403E+0000 7.30380778523158E+0000 7.41756789563215E+0000 7.53159492665236E+0000 7.64588920774258E+0000 + 7.76045106853644E+0000 7.87528083885218E+0000 7.99037884869131E+0000 8.10574542824179E+0000 8.22138090787212E+0000 + 8.33728561813859E+0000 8.45345988977851E+0000 8.56990405371471E+0000 8.68661844105418E+0000 8.80360338308765E+0000 + 8.92085921129001E+0000 9.03838625731942E+0000 9.15618485302002E+0000 9.27425533041833E+0000 9.39259802172501E+0000 + 9.51121325933582E+0000 9.63010137583069E+0000 9.74926270397100E+0000 9.86869757670638E+0000 9.98840632716610E+0000 + 1.01083892886676E+0001 1.02286467947101E+0001 1.03491791789761E+0001 1.04699867753347E+0001 1.05910699178375E+0001 + 1.07124289407202E+0001 1.08340641784025E+0001 1.09559759654885E+0001 1.10781646367672E+0001 1.12006305272102E+0001 + 1.13233739719739E+0001 1.14463953063977E+0001 1.15696948660074E+0001 1.16932729865097E+0001 1.18171300037997E+0001 + 1.19412662539521E+0001 1.20656820732283E+0001 1.21903777980724E+0001 1.23153537651137E+0001 1.24406103111650E+0001 + 1.25661477732237E+0001 1.26919664884699E+0001 1.28180667942697E+0001 1.29444490281716E+0001 1.30711135279084E+0001 + 1.31980606313986E+0001 1.33252906767434E+0001 1.34528040022264E+0001 1.35806009463185E+0001 1.37086818476741E+0001 + 1.38370470451300E+0001 1.39656968777076E+0001 1.40946316846134E+0001 1.42238518052354E+0001 1.43533575791502E+0001 + 1.44831493461129E+0001 1.46132274460678E+0001 1.47435922191407E+0001 1.48742440056407E+0001 1.50051831460627E+0001 + 1.51364099810839E+0001 1.52679248515692E+0001 1.53997280985622E+0001 1.55318200632955E+0001 1.56642010871823E+0001 + 1.57968715118213E+0001 1.59298316789963E+0001 1.60630819306725E+0001 1.61966226090017E+0001 1.63304540563186E+0001 + 1.64645766151425E+0001 1.65989906281752E+0001 1.67336964383048E+0001 1.68686943886019E+0001 1.70039848223228E+0001 + 1.71395680829055E+0001 1.72754445139735E+0001 1.74116144593340E+0001 1.75480782629793E+0001 1.76848362690844E+0001 + 1.78218888220085E+0001 1.79592362662956E+0001 1.80968789466738E+0001 1.82348172080542E+0001 1.83730513955325E+0001 + 1.85115818543886E+0001 1.86504089300879E+0001 1.87895329682760E+0001 1.89289543147861E+0001 1.90686733156358E+0001 + 1.92086903170225E+0001 1.93490056653322E+0001 1.94896197071325E+0001 1.96305327891769E+0001 1.97717452584002E+0001 + 1.99132574619234E+0001 2.00550697470517E+0001 2.01971824612733E+0001 2.03395959522600E+0001 2.04823105678697E+0001 + 2.06253266561430E+0001 2.07686445653048E+0001 2.09122646437627E+0001 2.10561872401117E+0001 2.12004127031273E+0001 + 2.13449413817707E+0001 2.14897736251878E+0001 2.16349097827069E+0001 2.17803502038423E+0001 2.19260952382906E+0001 + 2.20721452359330E+0001 2.22185005468350E+0001 2.23651615212466E+0001 2.25121285096006E+0001 2.26594018625156E+0001 + 2.28069819307921E+0001 2.29548690654165E+0001 2.31030636175583E+0001 2.32515659385717E+0001 2.34003763799933E+0001 + 2.35494952935464E+0001 2.36989230311369E+0001 2.38486599448543E+0001 2.39987063869735E+0001 2.41490627099520E+0001 + 2.42997292664313E+0001 2.44507064092386E+0001 2.46019944913846E+0001 2.47535938660631E+0001 2.49055048866526E+0001 + 2.50577279067152E+0001 2.52102632799988E+0001 2.53631113604315E+0001 2.55162725021310E+0001 2.56697470593931E+0001 + 2.58235353867030E+0001 2.59776378387260E+0001 2.61320547703135E+0001 2.62867865365010E+0001 2.64418334925062E+0001 + 2.65971959937328E+0001 2.67528743957678E+0001 2.69088690543831E+0001 2.70651803255328E+0001 2.72218085653567E+0001 + 2.73787541301781E+0001 2.75360173765034E+0001 2.76935986610256E+0001 2.78514983406194E+0001 2.80097167723438E+0001 + 2.81682543134434E+0001 2.83271113213455E+0001 2.84862881536606E+0001 2.86457851681862E+0001 2.88056027229013E+0001 + 2.89657411759690E+0001 2.91262008857384E+0001 2.92869822107405E+0001 2.94480855096922E+0001 2.96095111414929E+0001 + 2.97712594652266E+0001 2.99333308401619E+0001 3.00957256257502E+0001 3.02584441816289E+0001 3.04214868676167E+0001 + 3.05848540437196E+0001 3.07485460701255E+0001 3.09125633072067E+0001 3.10769061155183E+0001 3.12415748558037E+0001 + 3.14065698889854E+0001 3.15718915761722E+0001 3.17375402786574E+0001 3.19035163579179E+0001 3.20698201756140E+0001 + 3.22364520935907E+0001 3.24034124738764E+0001 3.25707016786851E+0001 3.27383200704126E+0001 3.29062680116403E+0001 + 3.30745458651336E+0001 3.32431539938420E+0001 3.34120927608978E+0001 3.35813625296187E+0001 3.37509636635059E+0001 + 3.39208965262446E+0001 3.40911614817051E+0001 3.42617588939393E+0001 3.44326891271853E+0001 3.46039525458650E+0001 + 3.47755495145839E+0001 3.49474803981307E+0001 3.51197455614806E+0001 3.52923453697895E+0001 3.54652801884008E+0001 + 3.56385503828396E+0001 3.58121563188156E+0001 3.59860983622229E+0001 3.61603768791392E+0001 3.63349922358266E+0001 + 3.65099447987318E+0001 3.66852349344845E+0001 3.68608630098970E+0001 3.70368293919705E+0001 3.72131344478862E+0001 + 3.73897785450094E+0001 3.75667620508907E+0001 3.77440853332646E+0001 3.79217487600504E+0001 3.80997526993492E+0001 + 3.82780975194482E+0001 3.84567835888179E+0001 3.86358112761141E+0001 3.88151809501719E+0001 3.89948929800175E+0001 + 3.91749477348567E+0001 3.93553455840793E+0001 3.95360868972602E+0001 3.97171720441593E+0001 3.98986013947192E+0001 + 4.00803753190658E+0001 4.02624941875115E+0001 4.04449583705505E+0001 4.06277682388618E+0001 4.08109241633092E+0001 + 4.09944265149388E+0001 4.11782756649836E+0001 4.13624719848563E+0001 4.15470158461585E+0001 4.17319076206722E+0001 + 4.19171476803649E+0001 4.21027363973876E+0001 4.22886741440784E+0001 4.24749612929536E+0001 4.26615982167177E+0001 + 4.28485852882591E+0001 4.30359228806487E+0001 4.32236113671420E+0001 4.34116511211796E+0001 4.36000425163838E+0001 + 4.37887859265647E+0001 4.39778817257111E+0001 4.41673302880022E+0001 4.43571319877947E+0001 4.45472871996349E+0001 + 4.47377962982496E+0001 4.49286596585516E+0001 4.51198776556366E+0001 4.53114506647848E+0001 4.55033790614602E+0001 + 4.56956632213105E+0001 4.58883035201688E+0001 4.60813003340513E+0001 4.62746540391577E+0001 4.64683650118736E+0001 + 4.66624336287668E+0001 4.68568602665887E+0001 4.70516453022765E+0001 4.72467891129518E+0001 4.74422920759180E+0001 + 4.76381545686631E+0001 4.78343769688622E+0001 4.80309596543698E+0001 4.82279030032264E+0001 4.84252073936582E+0001 + 4.86228732040736E+0001 4.88209008130643E+0001 4.90192905994086E+0001 4.92180429420673E+0001 4.94171582201843E+0001 + 4.96166368130903E+0001 4.98164791002960E+0001 5.00166854615004E+0001 5.02172562765845E+0001 5.04181919256116E+0001 + 5.06194927888337E+0001 5.08211592466814E+0001 5.10231916797729E+0001 5.12255904689114E+0001 5.14283559950791E+0001 + 5.16314886394471E+0001 5.18349887833683E+0001 5.20388568083808E+0001 5.22430930962055E+0001 5.24476980287486E+0001 + 5.26526719880985E+0001 5.28580153565290E+0001 5.30637285164994E+0001 5.32698118506487E+0001 5.34762657418050E+0001 + 5.36830905729771E+0001 5.38902867273591E+0001 5.40978545883272E+0001 5.43057945394457E+0001 5.45141069644583E+0001 + 5.47227922472966E+0001 5.49318507720741E+0001 5.51412829230885E+0001 5.53510890848220E+0001 5.55612696419407E+0001 + 5.57718249792938E+0001 5.59827554819167E+0001 5.61940615350268E+0001 5.64057435240270E+0001 5.66178018345026E+0001 + 5.68302368522259E+0001 5.70430489631485E+0001 5.72562385534097E+0001 5.74698060093333E+0001 5.76837517174235E+0001 + 5.78980760643726E+0001 5.81127794370541E+0001 5.83278622225262E+0001 5.85433248080317E+0001 5.87591675809990E+0001 + 5.89753909290362E+0001 5.91919952399394E+0001 5.94089809016864E+0001 5.96263483024409E+0001 5.98440978305489E+0001 + 6.00622298745407E+0001 6.02807448231320E+0001 6.04996430652213E+0001 6.07189249898934E+0001 6.09385909864118E+0001 + 6.11586414442295E+0001 6.13790767529817E+0001 6.15998973024853E+0001 6.18211034827459E+0001 6.20426956839497E+0001 + 6.22646742964671E+0001 6.24870397108548E+0001 6.27097923178503E+0001 6.29329325083777E+0001 6.31564606735442E+0001 + 6.33803772046408E+0001 6.36046824931423E+0001 6.38293769307102E+0001 6.40544609091853E+0001 6.42799348205954E+0001 + 6.45057990571545E+0001 6.47320540112546E+0001 6.49587000754768E+0001 6.51857376425855E+0001 6.54131671055266E+0001 + 6.56409888574331E+0001 6.58692032916192E+0001 6.60978108015861E+0001 6.63268117810167E+0001 6.65562066237776E+0001 + 6.67859957239230E+0001 6.70161794756873E+0001 6.72467582734894E+0001 6.74777325119344E+0001 6.77091025858099E+0001 + 6.79408688900880E+0001 6.81730318199238E+0001 6.84055917706587E+0001 6.86385491378146E+0001 6.88719043171009E+0001 + 6.91056577044105E+0001 6.93398096958181E+0001 6.95743606875844E+0001 6.98093110761520E+0001 7.00446612581513E+0001 + 7.02804116303932E+0001 7.05165625898744E+0001 7.07531145337748E+0001 7.09900678594586E+0001 7.12274229644750E+0001 + 7.14651802465564E+0001 7.17033401036169E+0001 7.19419029337587E+0001 7.21808691352676E+0001 7.24202391066092E+0001 + 7.26600132464373E+0001 7.29001919535881E+0001 7.31407756270814E+0001 7.33817646661241E+0001 7.36231594701044E+0001 + 7.38649604385919E+0001 7.41071679713459E+0001 7.43497824683072E+0001 7.45928043295989E+0001 7.48362339555310E+0001 + 7.50800717465954E+0001 7.53243181034700E+0001 7.55689734270131E+0001 7.58140381182729E+0001 7.60595125784776E+0001 + 7.63053972090365E+0001 7.65516924115518E+0001 7.67983985878004E+0001 7.70455161397485E+0001 7.72930454695465E+0001 + 7.75409869795253E+0001 7.77893410722040E+0001 7.80381081502806E+0001 7.82872886166447E+0001 7.85368828743608E+0001 + 7.87868913266848E+0001 7.90373143770535E+0001 7.92881524290879E+0001 7.95394058865932E+0001 7.97910751535583E+0001 + 8.00431606341563E+0001 8.02956627327458E+0001 8.05485818538668E+0001 8.08019184022464E+0001 8.10556727827911E+0001 + 8.13098454005972E+0001 8.15644366609408E+0001 8.18194469692826E+0001 8.20748767312693E+0001 8.23307263527313E+0001 + 8.25869962396800E+0001 8.28436867983137E+0001 8.31007984350135E+0001 8.33583315563474E+0001 8.36162865690630E+0001 + 8.38746638800922E+0001 8.41334638965563E+0001 8.43926870257565E+0001 8.46523336751752E+0001 8.49124042524863E+0001 + 8.51728991655400E+0001 8.54338188223765E+0001 8.56951636312160E+0001 8.59569340004682E+0001 8.62191303387172E+0001 + 8.64817530547407E+0001 8.67448025574949E+0001 8.70082792561243E+0001 8.72721835599523E+0001 8.75365158784889E+0001 + 8.78012766214297E+0001 8.80664661986521E+0001 8.83320850202163E+0001 8.85981334963708E+0001 8.88646120375452E+0001 + 8.91315210543544E+0001 8.93988609575936E+0001 8.96666321582479E+0001 8.99348350674827E+0001 9.02034700966478E+0001 + 9.04725376572769E+0001 9.07420381610891E+0001 9.10119720199873E+0001 9.12823396460572E+0001 9.15531414515681E+0001 + 9.18243778489750E+0001 9.20960492509175E+0001 9.23681560702162E+0001 9.26406987198789E+0001 9.29136776130945E+0001 + 9.31870931632384E+0001 9.34609457838715E+0001 9.37352358887319E+0001 9.40099638917472E+0001 9.42851302070312E+0001 + 9.45607352488732E+0001 9.48367794317573E+0001 9.51132631703422E+0001 9.53901868794756E+0001 9.56675509741890E+0001 + 9.59453558696960E+0001 9.62236019813963E+0001 9.65022897248700E+0001 9.67814195158890E+0001 9.70609917703987E+0001 + 9.73410069045349E+0001 9.76214653346196E+0001 9.79023674771543E+0001 9.81837137488237E+0001 9.84655045665004E+0001 + 9.87477403472385E+0001 9.90304215082779E+0001 9.93135484670393E+0001 9.95971216411326E+0001 9.98811414483471E+0001 + 1.00165608306658E+0002 1.00450522634224E+0002 1.00735884849388E+0002 1.01021695370678E+0002 1.01307954616804E+0002 + 1.01594663006663E+0002 1.01881820959331E+0002 1.02169428894074E+0002 1.02457487230337E+0002 1.02745996387753E+0002 + 1.03034956786134E+0002 1.03324368845484E+0002 1.03614232985982E+0002 1.03904549627996E+0002 1.04195319192079E+0002 + 1.04486542098966E+0002 1.04778218769574E+0002 1.05070349625008E+0002 1.05362935086554E+0002 1.05655975575687E+0002 + 1.05949471514059E+0002 1.06243423323509E+0002 1.06537831426061E+0002 1.06832696243925E+0002 1.07128018199489E+0002 + 1.07423797715329E+0002 1.07720035214207E+0002 1.08016731119062E+0002 1.08313885853026E+0002 1.08611499839408E+0002 + 1.08909573501704E+0002 1.09208107263594E+0002 1.09507101548942E+0002 1.09806556781793E+0002 1.10106473386381E+0002 + 1.10406851787122E+0002 1.10707692408613E+0002 1.11008995675640E+0002 1.11310762013169E+0002 1.11612991846353E+0002 + 1.11915685600527E+0002 1.12218843701211E+0002 1.12522466574109E+0002 1.12826554645109E+0002 1.13131108340280E+0002 + 1.13436128085882E+0002 1.13741614308352E+0002 1.14047567434314E+0002 1.14353987890576E+0002 1.14660876104131E+0002 + 1.14968232502154E+0002 1.15276057512005E+0002 1.15584351561226E+0002 1.15893115077547E+0002 1.16202348488880E+0002 + 1.16512052223321E+0002 1.16822226709148E+0002 1.17132872374828E+0002 1.17443989649008E+0002 1.17755578960517E+0002 + 1.18067640738373E+0002 1.18380175411778E+0002 1.18693183410114E+0002 1.19006665162948E+0002 1.19320621100036E+0002 + 1.19635051651309E+0002 1.19949957246891E+0002 1.20265338317084E+0002 1.20581195292376E+0002 1.20897528603442E+0002 + 1.21214338681135E+0002 1.21531625956496E+0002 1.21849390860748E+0002 1.22167633825304E+0002 1.22486355281752E+0002 + 1.22805555661867E+0002 1.23125235397612E+0002 1.23445394921132E+0002 1.23766034664752E+0002 1.24087155060987E+0002 + 1.24408756542532E+0002 1.24730839542268E+0002 1.25053404493260E+0002 1.25376451828754E+0002 1.25699981982183E+0002 + 1.26023995387165E+0002 1.26348492477499E+0002 1.26673473687169E+0002 1.26998939450346E+0002 1.27324890201381E+0002 + 1.27651326374808E+0002 1.27978248405350E+0002 1.28305656727911E+0002 1.28633551777580E+0002 1.28961933989627E+0002 + 1.29290803799512E+0002 1.29620161642873E+0002 1.29950007955536E+0002 1.30280343173508E+0002 1.30611167732983E+0002 + 1.30942482070336E+0002 1.31274286622130E+0002 1.31606581825108E+0002 1.31939368116198E+0002 1.32272645932511E+0002 + 1.32606415711350E+0002 1.32940677890188E+0002 1.33275432906696E+0002 1.33610681198718E+0002 1.33946423204287E+0002 + 1.34282659361626E+0002 1.34619390109126E+0002 1.34956615885379E+0002 1.35294337129149E+0002 1.35632554279393E+0002 + 1.35971267775243E+0002 1.36310478056024E+0002 1.36650185561241E+0002 1.36990390730578E+0002 1.37331094003913E+0002 + 1.37672295821299E+0002 1.38013996622978E+0002 1.38356196849376E+0002 1.38698896941100E+0002 1.39042097338944E+0002 + 1.39385798483884E+0002 1.39730000817082E+0002 1.40074704779881E+0002 1.40419910813813E+0002 1.40765619360588E+0002 + 1.41111830862104E+0002 1.41458545760442E+0002 1.41805764497867E+0002 1.42153487516826E+0002 1.42501715259955E+0002 + 1.42850448170070E+0002 1.43199686690170E+0002 1.43549431263443E+0002 1.43899682333255E+0002 1.44250440343160E+0002 + 1.44601705736896E+0002 1.44953478958384E+0002 1.45305760451728E+0002 1.45658550661216E+0002 1.46011850031324E+0002 + 1.46365659006707E+0002 1.46719978032207E+0002 1.47074807552849E+0002 1.47430148013841E+0002 1.47785999860575E+0002 + 1.48142363538632E+0002 1.48499239493771E+0002 1.48856628171936E+0002 1.49214530019258E+0002 1.49572945482048E+0002 + 1.49931875006804E+0002 1.50291319040210E+0002 1.50651278029128E+0002 1.51011752420606E+0002 1.51372742661881E+0002 + 1.51734249200366E+0002 1.52096272483666E+0002 1.52458812959565E+0002 1.52821871076030E+0002 1.53185447281218E+0002 + 1.53549542023463E+0002 1.53914155751288E+0002 1.54279288913397E+0002 1.54644941958680E+0002 1.55011115336212E+0002 + 1.55377809495246E+0002 1.55745024885227E+0002 1.56112761955779E+0002 1.56481021156711E+0002 1.56849802938017E+0002 + 1.57219107749873E+0002 1.57588936042641E+0002 1.57959288266867E+0002 1.58330164873280E+0002 1.58701566312793E+0002 + 1.59073493036503E+0002 1.59445945495691E+0002 1.59818924141825E+0002 1.60192429426553E+0002 1.60566461801706E+0002 + 1.60941021719304E+0002 1.61316109631548E+0002 1.61691725990822E+0002 1.62067871249697E+0002 1.62444545860926E+0002 + 1.62821750277446E+0002 1.63199484952379E+0002 1.63577750339029E+0002 1.63956546890889E+0002 1.64335875061627E+0002 + 1.64715735305106E+0002 1.65096128075363E+0002 1.65477053826626E+0002 1.65858513013303E+0002 1.66240506089988E+0002 + 1.66623033511461E+0002 1.67006095732680E+0002 1.67389693208791E+0002 1.67773826395124E+0002 1.68158495747193E+0002 + 1.68543701720696E+0002 1.68929444771512E+0002 1.69315725355709E+0002 1.69702543929537E+0002 1.70089900949426E+0002 + 1.70477796871997E+0002 1.70866232154050E+0002 1.71255207252570E+0002 1.71644722624728E+0002 1.72034778727878E+0002 + 1.72425376019555E+0002 1.72816514957482E+0002 1.73208195999567E+0002 1.73600419603895E+0002 1.73993186228743E+0002 + 1.74386496332566E+0002 1.74780350374008E+0002 1.75174748811893E+0002 1.75569692105232E+0002 1.75965180713218E+0002 + 1.76361215095228E+0002 1.76757795710822E+0002 1.77154923019751E+0002 1.77552597481938E+0002 1.77950819557503E+0002 + 1.78349589706739E+0002 1.78748908390128E+0002 1.79148776068339E+0002 1.79549193202219E+0002 1.79950160252802E+0002 + 1.80351677681306E+0002 1.80753745949131E+0002 1.81156365517866E+0002 1.81559536849277E+0002 1.81963260405320E+0002 + 1.82367536648133E+0002 1.82772366040036E+0002 1.83177749043535E+0002 1.83583686121321E+0002 1.83990177736268E+0002 + 1.84397224351432E+0002 1.84804826430054E+0002 1.85212984435563E+0002 1.85621698831565E+0002 1.86030970081856E+0002 + 1.86440798650412E+0002 1.86851185001398E+0002 1.87262129599157E+0002 1.87673632908218E+0002 1.88085695393297E+0002 + 1.88498317519291E+0002 1.88911499751281E+0002 1.89325242554532E+0002 1.89739546394499E+0002 1.90154411736808E+0002 + 1.90569839047282E+0002 1.90985828791920E+0002 1.91402381436910E+0002 1.91819497448620E+0002 1.92237177293606E+0002 + 1.92655421438603E+0002 1.93074230350536E+0002 1.93493604496506E+0002 1.93913544343806E+0002 1.94334050359912E+0002 + 1.94755123012477E+0002 1.95176762769345E+0002 1.95598970098543E+0002 1.96021745468277E+0002 1.96445089346945E+0002 + 1.96869002203122E+0002 1.97293484505572E+0002 1.97718536723240E+0002 1.98144159325255E+0002 1.98570352780930E+0002 + 1.98997117559766E+0002 1.99424454131441E+0002 1.99852362965823E+0002 2.00280844532961E+0002 2.00709899303091E+0002 + 2.01139527746627E+0002 2.01569730334174E+0002 2.02000507536517E+0002 2.02431859824625E+0002 2.02863787669651E+0002 + 2.03296291542936E+0002 2.03729371916000E+0002 2.04163029260547E+0002 2.04597264048470E+0002 2.05032076751841E+0002 + 2.05467467842917E+0002 2.05903437794143E+0002 2.06339987078141E+0002 2.06777116167725E+0002 2.07214825535883E+0002 + 2.07653115655799E+0002 2.08091987000832E+0002 2.08531440044528E+0002 2.08971475260615E+0002 2.09412093123010E+0002 + 2.09853294105809E+0002 2.10295078683295E+0002 2.10737447329932E+0002 2.11180400520372E+0002 2.11623938729447E+0002 + 2.12068062432177E+0002 2.12512772103762E+0002 2.12958068219586E+0002 2.13403951255224E+0002 2.13850421686425E+0002 + 2.14297479989131E+0002 2.14745126639458E+0002 2.15193362113718E+0002 2.15642186888398E+0002 2.16091601440173E+0002 + 2.16541606245899E+0002 2.16992201782618E+0002 2.17443388527558E+0002 2.17895166958127E+0002 2.18347537551918E+0002 + 2.18800500786711E+0002 2.19254057140468E+0002 2.19708207091334E+0002 2.20162951117638E+0002 2.20618289697893E+0002 + 2.21074223310800E+0002 2.21530752435239E+0002 2.21987877550276E+0002 2.22445599135159E+0002 2.22903917669324E+0002 + 2.23362833632390E+0002 2.23822347504157E+0002 2.24282459764611E+0002 2.24743170893921E+0002 2.25204481372442E+0002 + 2.25666391680717E+0002 2.26128902299457E+0002 2.26592013709574E+0002 2.27055726392156E+0002 2.27520040828478E+0002 + 2.27984957499999E+0002 2.28450476888360E+0002 2.28916599475384E+0002 2.29383325743084E+0002 2.29850656173653E+0002 + 2.30318591249469E+0002 2.30787131453093E+0002 2.31256277267274E+0002 2.31726029174935E+0002 2.32196387659197E+0002 + 2.32667353203354E+0002 2.33138926290888E+0002 2.33611107405465E+0002 2.34083897030937E+0002 2.34557295651336E+0002 + 2.35031303750878E+0002 2.35505921813967E+0002 2.35981150325190E+0002 2.36456989769314E+0002 2.36933440631294E+0002 + 2.37410503396267E+0002 2.37888178549557E+0002 2.38366466576666E+0002 2.38845367963288E+0002 2.39324883195293E+0002 + 2.39805012758744E+0002 2.40285757139877E+0002 2.40767116825121E+0002 2.41249092301086E+0002 2.41731684054561E+0002 + 2.42214892572530E+0002 2.42698718342152E+0002 2.43183161850773E+0002 2.43668223585923E+0002 2.44153904035315E+0002 + 2.44640203686848E+0002 2.45127123028602E+0002 2.45614662548844E+0002 2.46102822736023E+0002 2.46591604078772E+0002 + 2.47081007065914E+0002 2.47571032186443E+0002 2.48061679929549E+0002 2.48552950784602E+0002 2.49044845241154E+0002 + 2.49537363788945E+0002 2.50030506917894E+0002 2.50524275118108E+0002 2.51018668879877E+0002 2.51513688693674E+0002 + 2.52009335050157E+0002 2.52505608440168E+0002 2.53002509354734E+0002 2.53500038285060E+0002 2.53998195722545E+0002 + 2.54496982158764E+0002 2.54996398085482E+0002 2.55496443994639E+0002 2.55997120378369E+0002 2.56498427728983E+0002 + 2.57000366538980E+0002 2.57502937301039E+0002 2.58006140508032E+0002 2.58509976653004E+0002 2.59014446229188E+0002 + 2.59519549730005E+0002 2.60025287649052E+0002 2.60531660480119E+0002 2.61038668717174E+0002 2.61546312854372E+0002 + 2.62054593386047E+0002 2.62563510806722E+0002 2.63073065611108E+0002 2.63583258294086E+0002 2.64094089350736E+0002 + 2.64605559276312E+0002 2.65117668566258E+0002 2.65630417716197E+0002 2.66143807221940E+0002 2.66657837579482E+0002 + 2.67172509284997E+0002 2.67687822834852E+0002 2.68203778725589E+0002 2.68720377453937E+0002 2.69237619516812E+0002 + 2.69755505411305E+0002 2.70274035634708E+0002 2.70793210684479E+0002 2.71313031058270E+0002 2.71833497253914E+0002 + 2.72354609769429E+0002 2.72876369103014E+0002 2.73398775753061E+0002 2.73921830218133E+0002 2.74445532996984E+0002 + 2.74969884588557E+0002 2.75494885491965E+0002 2.76020536206522E+0002 2.76546837231713E+0002 2.77073789067213E+0002 + 2.77601392212878E+0002 2.78129647168750E+0002 2.78658554435056E+0002 2.79188114512202E+0002 2.79718327900781E+0002 + 2.80249195101577E+0002 2.80780716615549E+0002 2.81312892943835E+0002 2.81845724587775E+0002 2.82379212048875E+0002 + 2.82913355828839E+0002 2.83448156429541E+0002 2.83983614353049E+0002 2.84519730101616E+0002 2.85056504177673E+0002 + 2.85593937083833E+0002 2.86132029322906E+0002 2.86670781397870E+0002 2.87210193811901E+0002 2.87750267068344E+0002 + 2.88291001670743E+0002 2.88832398122817E+0002 2.89374456928472E+0002 2.89917178591795E+0002 2.90460563617064E+0002 + 2.91004612508732E+0002 2.91549325771441E+0002 2.92094703910019E+0002 2.92640747429472E+0002 2.93187456834996E+0002 + 2.93734832631966E+0002 2.94282875325945E+0002 2.94831585422677E+0002 2.95380963428091E+0002 2.95931009848304E+0002 + 2.96481725189609E+0002 2.97033109958487E+0002 2.97585164661607E+0002 2.98137889805816E+0002 2.98691285898147E+0002 + 2.99245353445818E+0002 2.99800092956226E+0002 3.00355504936964E+0002 3.00911589895795E+0002 3.01468348340675E+0002 + 3.02025780779741E+0002 3.02583887721314E+0002 3.03142669673900E+0002 3.03702127146184E+0002 3.04262260647043E+0002 + 3.04823070685534E+0002 3.05384557770898E+0002 3.05946722412558E+0002 3.06509565120125E+0002 3.07073086403392E+0002 + 3.07637286772337E+0002 3.08202166737117E+0002 3.08767726808082E+0002 3.09333967495761E+0002 3.09900889310860E+0002 + 3.10468492764287E+0002 3.11036778367115E+0002 3.11605746630610E+0002 3.12175398066225E+0002 3.12745733185588E+0002 + 3.13316752500519E+0002 3.13888456523020E+0002 3.14460845765274E+0002 3.15033920739650E+0002 3.15607681958702E+0002 + 3.16182129935165E+0002 3.16757265181961E+0002 3.17333088212197E+0002 3.17909599539162E+0002 3.18486799676324E+0002 + 3.19064689137345E+0002 3.19643268436066E+0002 3.20222538086504E+0002 3.20802498602881E+0002 3.21383150499581E+0002 + 3.21964494291180E+0002 3.22546530492444E+0002 3.23129259618318E+0002 3.23712682183923E+0002 3.24296798704579E+0002 + 3.24881609695785E+0002 3.25467115673213E+0002 3.26053317152735E+0002 3.26640214650399E+0002 3.27227808682434E+0002 + 3.27816099765261E+0002 3.28405088415479E+0002 3.28994775149871E+0002 3.29585160485411E+0002 3.30176244939246E+0002 + 3.30768029028713E+0002 3.31360513271340E+0002 3.31953698184827E+0002 3.32547584287058E+0002 3.33142172096112E+0002 + 3.33737462130246E+0002 3.34333454907895E+0002 3.34930150947690E+0002 3.35527550768435E+0002 3.36125654889125E+0002 + 3.36724463828938E+0002 3.37323978107233E+0002 3.37924198243552E+0002 3.38525124757629E+0002 3.39126758169372E+0002 + 3.39729098998881E+0002 3.40332147766434E+0002 3.40935904992499E+0002 3.41540371197718E+0002 3.42145546902932E+0002 + 3.42751432629151E+0002 3.43358028897579E+0002 3.43965336229601E+0002 3.44573355146780E+0002 3.45182086170878E+0002 + 3.45791529823822E+0002 3.46401686627740E+0002 3.47012557104932E+0002 3.47624141777886E+0002 3.48236441169276E+0002 + 3.48849455801959E+0002 3.49463186198978E+0002 3.50077632883551E+0002 3.50692796379091E+0002 3.51308677209190E+0002 + 3.51925275897625E+0002 3.52542592968353E+0002 3.53160628945521E+0002 3.53779384353460E+0002 3.54398859716675E+0002 + 3.55019055559867E+0002 3.55639972407922E+0002 3.56261610785892E+0002 3.56883971219033E+0002 3.57507054232779E+0002 + 3.58130860352743E+0002 3.58755390104723E+0002 3.59380644014707E+0002 3.60006622608862E+0002 3.60633326413541E+0002 + 3.61260755955278E+0002 3.61888911760796E+0002 3.62517794357000E+0002 3.63147404270976E+0002 3.63777742029997E+0002 + 3.64408808161519E+0002 3.65040603193180E+0002 3.65673127652812E+0002 3.66306382068409E+0002 3.66940366968178E+0002 + 3.67575082880485E+0002 3.68210530333896E+0002 3.68846709857149E+0002 3.69483621979181E+0002 3.70121267229099E+0002 + 3.70759646136197E+0002 3.71398759229958E+0002 3.72038607040045E+0002 3.72679190096309E+0002 3.73320508928779E+0002 + 3.73962564067670E+0002 3.74605356043381E+0002 3.75248885386502E+0002 3.75893152627797E+0002 3.76538158298219E+0002 + 3.77183902928904E+0002 3.77830387051172E+0002 3.78477611196520E+0002 3.79125575896649E+0002 3.79774281683423E+0002 + 3.80423729088900E+0002 3.81073918645317E+0002 3.81724850885101E+0002 3.82376526340859E+0002 3.83028945545382E+0002 + 3.83682109031648E+0002 3.84336017332813E+0002 3.84990670982228E+0002 3.85646070513410E+0002 3.86302216460081E+0002 + 3.86959109356130E+0002 3.87616749735642E+0002 3.88275138132874E+0002 3.88934275082282E+0002 3.89594161118492E+0002 + 3.90254796776324E+0002 3.90916182590770E+0002 3.91578319097023E+0002 3.92241206830444E+0002 3.92904846326590E+0002 + 3.93569238121192E+0002 3.94234382750174E+0002 3.94900280749633E+0002 3.95566932655864E+0002 3.96234339005332E+0002 + 3.96902500334700E+0002 3.97571417180799E+0002 3.98241090080661E+0002 3.98911519571488E+0002 3.99582706190675E+0002 + 4.00254650475794E+0002 4.00927352964607E+0002 4.01600814195057E+0002 4.02275034705270E+0002 4.02950015033561E+0002 + 4.03625755718422E+0002 4.04302257298534E+0002 4.04979520312760E+0002 4.05657545300148E+0002 4.06336332799930E+0002 + 4.07015883351518E+0002 4.07696197494512E+0002 4.08377275768704E+0002 4.09059118714049E+0002 4.09741726870705E+0002 + 4.10425100779008E+0002 4.11109240979475E+0002 4.11794148012808E+0002 4.12479822419898E+0002 4.13166264741814E+0002 + 4.13853475519809E+0002 4.14541455295330E+0002 4.15230204609994E+0002 4.15919724005607E+0002 4.16610014024167E+0002 + 4.17301075207839E+0002 4.17992908098991E+0002 4.18685513240165E+0002 4.19378891174085E+0002 4.20073042443666E+0002 + 4.20767967591995E+0002 4.21463667162361E+0002 4.22160141698223E+0002 4.22857391743228E+0002 4.23555417841202E+0002 + 4.24254220536171E+0002 4.24953800372328E+0002 4.25654157894058E+0002 4.26355293645920E+0002 4.27057208172673E+0002 + 4.27759902019252E+0002 4.28463375730775E+0002 4.29167629852542E+0002 4.29872664930044E+0002 4.30578481508950E+0002 + 4.31285080135114E+0002 4.31992461354577E+0002 4.32700625713560E+0002 4.33409573758470E+0002 4.34119306035900E+0002 + 4.34829823092623E+0002 4.35541125475598E+0002 4.36253213731969E+0002 4.36966088409061E+0002 4.37679750054387E+0002 + 4.38394199215636E+0002 4.39109436440694E+0002 4.39825462277622E+0002 4.40542277274668E+0002 4.41259881980259E+0002 + 4.41978276943008E+0002 4.42697462711716E+0002 4.43417439835372E+0002 4.44138208863134E+0002 4.44859770344354E+0002 + 4.45582124828572E+0002 4.46305272865502E+0002 4.47029215005046E+0002 4.47753951797293E+0002 4.48479483792515E+0002 + 4.49205811541160E+0002 4.49932935593875E+0002 4.50660856501478E+0002 4.51389574814972E+0002 4.52119091085555E+0002 + 4.52849405864597E+0002 4.53580519703657E+0002 4.54312433154479E+0002 4.55045146768987E+0002 4.55778661099292E+0002 + 4.56512976697690E+0002 4.57248094116658E+0002 4.57984013908863E+0002 4.58720736627141E+0002 4.59458262824530E+0002 + 4.60196593054245E+0002 4.60935727869681E+0002 4.61675667824420E+0002 4.62416413472232E+0002 4.63157965367065E+0002 + 4.63900324063052E+0002 4.64643490114513E+0002 4.65387464075948E+0002 4.66132246502048E+0002 4.66877837947679E+0002 + 4.67624238967894E+0002 4.68371450117937E+0002 4.69119471953223E+0002 4.69868305029362E+0002 4.70617949902145E+0002 + 4.71368407127546E+0002 4.72119677261719E+0002 4.72871760861011E+0002 4.73624658481947E+0002 4.74378370681234E+0002 + 4.75132898015769E+0002 4.75888241042629E+0002 4.76644400319074E+0002 4.77401376402555E+0002 4.78159169850696E+0002 + 4.78917781221318E+0002 4.79677211072411E+0002 4.80437459962162E+0002 4.81198528448938E+0002 4.81960417091283E+0002 + 4.82723126447934E+0002 4.83486657077810E+0002 4.84251009540010E+0002 4.85016184393826E+0002 4.85782182198722E+0002 + 4.86549003514354E+0002 4.87316648900556E+0002 4.88085118917357E+0002 4.88854414124951E+0002 4.89624535083743E+0002 + 4.90395482354294E+0002 4.91167256497371E+0002 4.91939858073905E+0002 4.92713287645032E+0002 4.93487545772057E+0002 + 4.94262633016475E+0002 4.95038549939960E+0002 4.95815297104376E+0002 4.96592875071774E+0002 4.97371284404373E+0002 + 4.98150525664594E+0002 4.98930599415029E+0002 4.99711506218466E+0002 5.00493246637865E+0002 5.01275821236379E+0002 + 5.02059230577341E+0002 5.02843475224263E+0002 5.03628555740857E+0002 5.04414472690998E+0002 5.05201226638763E+0002 + 5.05988818148398E+0002 5.06777247784348E+0002 5.07566516111228E+0002 5.08356623693846E+0002 5.09147571097194E+0002 + 5.09939358886439E+0002 5.10731987626945E+0002 5.11525457884249E+0002 5.12319770224074E+0002 5.13114925212334E+0002 + 5.13910923415124E+0002 5.14707765398714E+0002 5.15505451729568E+0002 5.16303982974334E+0002 5.17103359699837E+0002 + 5.17903582473095E+0002 5.18704651861301E+0002 5.19506568431836E+0002 5.20309332752267E+0002 5.21112945390343E+0002 + 5.21917406913994E+0002 5.22722717891340E+0002 5.23528878890684E+0002 5.24335890480506E+0002 5.25143753229477E+0002 + 5.25952467706451E+0002 5.26762034480462E+0002 5.27572454120735E+0002 5.28383727196671E+0002 5.29195854277861E+0002 + 5.30008835934077E+0002 5.30822672735278E+0002 5.31637365251599E+0002 5.32452914053370E+0002 5.33269319711100E+0002 + 5.34086582795477E+0002 5.34904703877384E+0002 5.35723683527876E+0002 5.36543522318203E+0002 5.37364220819787E+0002 + 5.38185779604248E+0002 5.39008199243379E+0002 5.39831480309162E+0002 5.40655623373754E+0002 5.41480629009513E+0002 + 5.42306497788972E+0002 5.43133230284840E+0002 5.43960827070021E+0002 5.44789288717602E+0002 5.45618615800850E+0002 + 5.46448808893216E+0002 5.47279868568337E+0002 5.48111795400033E+0002 5.48944589962313E+0002 5.49778252829357E+0002 + 5.50612784575540E+0002 5.51448185775425E+0002 5.52284457003747E+0002 5.53121598835429E+0002 5.53959611845581E+0002 + 5.54798496609499E+0002 5.55638253702649E+0002 5.56478883700705E+0002 5.57320387179501E+0002 5.58162764715065E+0002 + 5.59006016883619E+0002 5.59850144261549E+0002 5.60695147425440E+0002 5.61541026952054E+0002 5.62387783418339E+0002 + 5.63235417401429E+0002 5.64083929478642E+0002 5.64933320227472E+0002 5.65783590225607E+0002 5.66634740050915E+0002 + 5.67486770281444E+0002 5.68339681495436E+0002 5.69193474271309E+0002 5.70048149187664E+0002 5.70903706823292E+0002 + 5.71760147757161E+0002 5.72617472568436E+0002 5.73475681836446E+0002 5.74334776140720E+0002 5.75194756060968E+0002 + 5.76055622177075E+0002 5.76917375069124E+0002 5.77780015317368E+0002 5.78643543502258E+0002 5.79507960204419E+0002 + 5.80373266004657E+0002 5.81239461483974E+0002 5.82106547223553E+0002 5.82974523804747E+0002 5.83843391809110E+0002 + 5.84713151818376E+0002 5.85583804414458E+0002 5.86455350179451E+0002 5.87327789695644E+0002 5.88201123545503E+0002 + 5.89075352311682E+0002 5.89950476577013E+0002 5.90826496924516E+0002 5.91703413937394E+0002 5.92581228199038E+0002 + 5.93459940293014E+0002 5.94339550803084E+0002 5.95220060313181E+0002 5.96101469407431E+0002 5.96983778670146E+0002 + 5.97866988685810E+0002 5.98751100039099E+0002 5.99636113314877E+0002 6.00522029098180E+0002 6.01408847974242E+0002 + 6.02296570528471E+0002 6.03185197346465E+0002 6.04074729014003E+0002 6.04965166117045E+0002 6.05856509241738E+0002 + 6.06748758974418E+0002 6.07641915901593E+0002 6.08535980609966E+0002 6.09430953686420E+0002 6.10326835718024E+0002 + 6.11223627292027E+0002 6.12121328995861E+0002 6.13019941417149E+0002 6.13919465143696E+0002 6.14819900763481E+0002 + 6.15721248864682E+0002 6.16623510035652E+0002 6.17526684864930E+0002 6.18430773941234E+0002 6.19335777853479E+0002 + 6.20241697190751E+0002 6.21148532542325E+0002 6.22056284497661E+0002 6.22964953646404E+0002 6.23874540578374E+0002 + 6.24785045883586E+0002 6.25696470152234E+0002 6.26608813974699E+0002 6.27522077941541E+0002 6.28436262643507E+0002 + 6.29351368671527E+0002 6.30267396616715E+0002 6.31184347070375E+0002 6.32102220623983E+0002 6.33021017869209E+0002 + 6.33940739397900E+0002 6.34861385802096E+0002 6.35782957674013E+0002 6.36705455606047E+0002 6.37628880190796E+0002 + 6.38553232021024E+0002 6.39478511689686E+0002 6.40404719789918E+0002 6.41331856915047E+0002 6.42259923658574E+0002 + 6.43188920614197E+0002 6.44118848375780E+0002 6.45049707537391E+0002 6.45981498693269E+0002 6.46914222437836E+0002 + 6.47847879365707E+0002 6.48782470071672E+0002 6.49717995150713E+0002 6.50654455197995E+0002 6.51591850808856E+0002 + 6.52530182578830E+0002 6.53469451103632E+0002 6.54409656979160E+0002 6.55350800801491E+0002 6.56292883166898E+0002 + 6.57235904671828E+0002 6.58179865912916E+0002 6.59124767486979E+0002 6.60070609991019E+0002 6.61017394022223E+0002 + 6.61965120177956E+0002 6.62913789055779E+0002 6.63863401253422E+0002 6.64813957368813E+0002 6.65765458000058E+0002 + 6.66717903745441E+0002 6.67671295203441E+0002 6.68625632972713E+0002 6.69580917652105E+0002 6.70537149840631E+0002 + 6.71494330137510E+0002 6.72452459142130E+0002 6.73411537454076E+0002 6.74371565673102E+0002 6.75332544399158E+0002 + 6.76294474232373E+0002 6.77257355773054E+0002 6.78221189621707E+0002 6.79185976379014E+0002 6.80151716645832E+0002 + 6.81118411023217E+0002 6.82086060112402E+0002 6.83054664514802E+0002 6.84024224832023E+0002 6.84994741665840E+0002 + 6.85966215618235E+0002 6.86938647291354E+0002 6.87912037287530E+0002 6.88886386209299E+0002 6.89861694659354E+0002 + 6.90837963240585E+0002 6.91815192556071E+0002 6.92793383209060E+0002 6.93772535803006E+0002 6.94752650941526E+0002 + 6.95733729228428E+0002 6.96715771267707E+0002 6.97698777663541E+0002 6.98682749020289E+0002 6.99667685942502E+0002 + 7.00653589034899E+0002 7.01640458902400E+0002 7.02628296150106E+0002 7.03617101383283E+0002 7.04606875207410E+0002 + 7.05597618228134E+0002 7.06589331051278E+0002 7.07582014282871E+0002 7.08575668529107E+0002 7.09570294396373E+0002 + 7.10565892491233E+0002 7.11562463420449E+0002 7.12560007790951E+0002 7.13558526209858E+0002 7.14558019284481E+0002 + 7.15558487622307E+0002 7.16559931831005E+0002 7.17562352518433E+0002 7.18565750292633E+0002 7.19570125761831E+0002 + 7.20575479534429E+0002 7.21581812219027E+0002 7.22589124424401E+0002 7.23597416759505E+0002 7.24606689833488E+0002 + 7.25616944255680E+0002 7.26628180635587E+0002 7.27640399582913E+0002 7.28653601707536E+0002 7.29667787619521E+0002 + 7.30682957929108E+0002 7.31699113246741E+0002 7.32716254183029E+0002 7.33734381348775E+0002 7.34753495354960E+0002 + 7.35773596812762E+0002 7.36794686333522E+0002 7.37816764528781E+0002 7.38839832010255E+0002 7.39863889389857E+0002 + 7.40888937279662E+0002 7.41914976291959E+0002 7.42942007039186E+0002 7.43970030133998E+0002 7.44999046189208E+0002 + 7.46029055817831E+0002 7.47060059633055E+0002 7.48092058248259E+0002 7.49125052277001E+0002 7.50159042333027E+0002 + 7.51194029030263E+0002 7.52230012982818E+0002 7.53266994804992E+0002 7.54304975111263E+0002 7.55343954516296E+0002 + 7.56383933634943E+0002 7.57424913082221E+0002 7.58466893473360E+0002 7.59509875423755E+0002 7.60553859548992E+0002 + 7.61598846464836E+0002 7.62644836787234E+0002 7.63691831132332E+0002 7.64739830116439E+0002 7.65788834356070E+0002 + 7.66838844467904E+0002 7.67889861068812E+0002 7.68941884775853E+0002 7.69994916206268E+0002 7.71048955977474E+0002 + 7.72104004707084E+0002 7.73160063012889E+0002 7.74217131512863E+0002 7.75275210825161E+0002 7.76334301568135E+0002 + 7.77394404360310E+0002 7.78455519820391E+0002 7.79517648567278E+0002 7.80580791220051E+0002 7.81644948397970E+0002 + 7.82710120720483E+0002 7.83776308807221E+0002 7.84843513278003E+0002 7.85911734752826E+0002 7.86980973851871E+0002 + 7.88051231195503E+0002 7.89122507404278E+0002 7.90194803098930E+0002 7.91268118900374E+0002 7.92342455429723E+0002 + 7.93417813308257E+0002 7.94494193157439E+0002 7.95571595598940E+0002 7.96650021254583E+0002 7.97729470746399E+0002 + 7.98809944696597E+0002 7.99891443727571E+0002 8.00973968461880E+0002 8.02057519522295E+0002 8.03142097531760E+0002 + 8.04227703113389E+0002 8.05314336890511E+0002 8.06401999486603E+0002 8.07490691525360E+0002 8.08580413630636E+0002 + 8.09671166426469E+0002 8.10762950537108E+0002 8.11855766586952E+0002 8.12949615200603E+0002 8.14044497002847E+0002 + 8.15140412618654E+0002 8.16237362673164E+0002 8.17335347791723E+0002 8.18434368599839E+0002 8.19534425723217E+0002 + 8.20635519787746E+0002 8.21737651419502E+0002 8.22840821244718E+0002 8.23945029889859E+0002 8.25050277981532E+0002 + 8.26156566146547E+0002 8.27263895011885E+0002 8.28372265204736E+0002 8.29481677352454E+0002 8.30592132082569E+0002 + 8.31703630022821E+0002 8.32816171801107E+0002 8.33929758045535E+0002 8.35044389384377E+0002 8.36160066446097E+0002 + 8.37276789859330E+0002 8.38394560252920E+0002 8.39513378255873E+0002 8.40633244497389E+0002 8.41754159606851E+0002 + 8.42876124213821E+0002 8.43999138948064E+0002 8.45123204439489E+0002 8.46248321318228E+0002 8.47374490214581E+0002 + 8.48501711759032E+0002 8.49629986582255E+0002 8.50759315315099E+0002 8.51889698588609E+0002 8.53021137033997E+0002 + 8.54153631282672E+0002 8.55287181966221E+0002 8.56421789716424E+0002 8.57557455165232E+0002 8.58694178944792E+0002 + 8.59831961687429E+0002 8.60970804025648E+0002 8.62110706592146E+0002 8.63251670019799E+0002 8.64393694941671E+0002 + 8.65536781990999E+0002 8.66680931801220E+0002 8.67826145005940E+0002 8.68972422238970E+0002 8.70119764134281E+0002 + 8.71268171326039E+0002 8.72417644448597E+0002 8.73568184136479E+0002 8.74719791024418E+0002 8.75872465747296E+0002 + 8.77026208940213E+0002 8.78181021238426E+0002 8.79336903277399E+0002 8.80493855692766E+0002 8.81651879120345E+0002 + 8.82810974196138E+0002 8.83971141556343E+0002 8.85132381837331E+0002 8.86294695675650E+0002 8.87458083708047E+0002 + 8.88622546571456E+0002 8.89788084902961E+0002 8.90954699339884E+0002 8.92122390519678E+0002 8.93291159080021E+0002 + 8.94461005658748E+0002 8.95631930893891E+0002 8.96803935423657E+0002 8.97977019886453E+0002 8.99151184920847E+0002 + 9.00326431165617E+0002 9.01502759259700E+0002 9.02680169842242E+0002 9.03858663552543E+0002 9.05038241030106E+0002 + 9.06218902914632E+0002 9.07400649845971E+0002 9.08583482464186E+0002 9.09767401409503E+0002 9.10952407322355E+0002 + 9.12138500843343E+0002 9.13325682613249E+0002 9.14513953273050E+0002 9.15703313463902E+0002 9.16893763827142E+0002 + 9.18085305004297E+0002 9.19277937637078E+0002 9.20471662367370E+0002 9.21666479837251E+0002 9.22862390688988E+0002 + 9.24059395565018E+0002 9.25257495107966E+0002 9.26456689960658E+0002 9.27656980766074E+0002 9.28858368167403E+0002 + 9.30060852808005E+0002 9.31264435331432E+0002 9.32469116381413E+0002 9.33674896601864E+0002 9.34881776636881E+0002 + 9.36089757130754E+0002 9.37298838727951E+0002 9.38509022073118E+0002 9.39720307811098E+0002 9.40932696586904E+0002 + 9.42146189045747E+0002 9.43360785833000E+0002 9.44576487594251E+0002 9.45793294975250E+0002 9.47011208621931E+0002 + 9.48230229180426E+0002 9.49450357297039E+0002 9.50671593618255E+0002 9.51893938790763E+0002 9.53117393461413E+0002 + 9.54341958277244E+0002 9.55567633885494E+0002 9.56794420933573E+0002 9.58022320069071E+0002 9.59251331939769E+0002 + 9.60481457193626E+0002 9.61712696478804E+0002 9.62945050443617E+0002 9.64178519736590E+0002 9.65413105006413E+0002 + 9.66648806901983E+0002 9.67885626072359E+0002 9.69123563166791E+0002 9.70362618834715E+0002 9.71602793725750E+0002 + 9.72844088489703E+0002 9.74086503776554E+0002 9.75330040236480E+0002 9.76574698519835E+0002 9.77820479277158E+0002 + 9.79067383159159E+0002 9.80315410816766E+0002 9.81564562901058E+0002 9.82814840063311E+0002 9.84066242954985E+0002 + 9.85318772227725E+0002 9.86572428533349E+0002 9.87827212523873E+0002 9.89083124851488E+0002 9.90340166168589E+0002 + 9.91598337127718E+0002 9.92857638381636E+0002 9.94118070583259E+0002 9.95379634385714E+0002 9.96642330442290E+0002 + 9.97906159406488E+0002 9.99171121931951E+0002 1.00043721867253E+0003 1.00170445028229E+0003 1.00297281741541E+0003 + 1.00424232072633E+0003 1.00551296086960E+0003 1.00678473850002E+0003 1.00805765427252E+0003 1.00933170884225E+0003 + 1.01060690286454E+0003 1.01188323699488E+0003 1.01316071188897E+0003 1.01443932820269E+0003 1.01571908659208E+0003 + 1.01699998771339E+0003 1.01828203222306E+0003 1.01956522077768E+0003 1.02084955403405E+0003 1.02213503264916E+0003 + 1.02342165728016E+0003 1.02470942858439E+0003 1.02599834721939E+0003 1.02728841384287E+0003 1.02857962911274E+0003 + 1.02987199368706E+0003 1.03116550822411E+0003 1.03246017338233E+0003 1.03375598982037E+0003 1.03505295819704E+0003 + 1.03635107917133E+0003 1.03765035340243E+0003 1.03895078154973E+0003 1.04025236427276E+0003 1.04155510223127E+0003 + 1.04285899608517E+0003 1.04416404649458E+0003 1.04547025411978E+0003 1.04677761962124E+0003 1.04808614365963E+0003 + 1.04939582689578E+0003 1.05070666999072E+0003 1.05201867360566E+0003 1.05333183840199E+0003 1.05464616504129E+0003 + 1.05596165418532E+0003 1.05727830649603E+0003 1.05859612263555E+0003 1.05991510326618E+0003 1.06123524905042E+0003 + 1.06255656065097E+0003 1.06387903873067E+0003 1.06520268395259E+0003 1.06652749697994E+0003 1.06785347847616E+0003 + 1.06918062910483E+0003 1.07050894952976E+0003 1.07183844041490E+0003 1.07316910242441E+0003 1.07450093622262E+0003 + 1.07583394247406E+0003 1.07716812184343E+0003 1.07850347499562E+0003 1.07984000259569E+0003 1.08117770530892E+0003 + 1.08251658380074E+0003 1.08385663873677E+0003 1.08519787078283E+0003 1.08654028060489E+0003 1.08788386886915E+0003 + 1.08922863624196E+0003 1.09057458338987E+0003 1.09192171097960E+0003 1.09327001967807E+0003 1.09461951015238E+0003 + 1.09597018306980E+0003 1.09732203909779E+0003 1.09867507890402E+0003 1.10002930315630E+0003 1.10138471252266E+0003 + 1.10274130767129E+0003 1.10409908927058E+0003 1.10545805798911E+0003 1.10681821449561E+0003 1.10817955945903E+0003 + 1.10954209354849E+0003 1.11090581743328E+0003 1.11227073178290E+0003 1.11363683726703E+0003 1.11500413455551E+0003 + 1.11637262431839E+0003 1.11774230722589E+0003 1.11911318394842E+0003 1.12048525515657E+0003 1.12185852152111E+0003 + 1.12323298371301E+0003 1.12460864240341E+0003 1.12598549826364E+0003 1.12736355196520E+0003 1.12874280417980E+0003 + 1.13012325557932E+0003 1.13150490683581E+0003 1.13288775862153E+0003 1.13427181160891E+0003 1.13565706647056E+0003 + 1.13704352387929E+0003 1.13843118450806E+0003 1.13982004903007E+0003 1.14121011811864E+0003 1.14260139244734E+0003 + 1.14399387268985E+0003 1.14538755952010E+0003 1.14678245361217E+0003 1.14817855564034E+0003 1.14957586627905E+0003 + 1.15097438620295E+0003 1.15237411608685E+0003 1.15377505660578E+0003 1.15517720843491E+0003 1.15658057224962E+0003 + 1.15798514872548E+0003 1.15939093853822E+0003 1.16079794236378E+0003 1.16220616087826E+0003 1.16361559475795E+0003 + 1.16502624467934E+0003 1.16643811131910E+0003 1.16785119535406E+0003 1.16926549746126E+0003 1.17068101831791E+0003 + 1.17209775860141E+0003 1.17351571898935E+0003 1.17493490015949E+0003 1.17635530278978E+0003 1.17777692755836E+0003 + 1.17919977514354E+0003 1.18062384622383E+0003 1.18204914147792E+0003 1.18347566158467E+0003 1.18490340722314E+0003 + 1.18633237907257E+0003 1.18776257781238E+0003 1.18919400412218E+0003 1.19062665868175E+0003 1.19206054217108E+0003 + 1.19349565527032E+0003 1.19493199865981E+0003 1.19636957302007E+0003 1.19780837903183E+0003 1.19924841737598E+0003 + 1.20068968873358E+0003 1.20213219378591E+0003 1.20357593321441E+0003 1.20502090770071E+0003 1.20646711792663E+0003 + 1.20791456457415E+0003 1.20936324832548E+0003 1.21081316986296E+0003 1.21226432986915E+0003 1.21371672902680E+0003 + 1.21517036801880E+0003 1.21662524752826E+0003 1.21808136823848E+0003 1.21953873083292E+0003 1.22099733599523E+0003 + 1.22245718440925E+0003 1.22391827675901E+0003 1.22538061372872E+0003 1.22684419600274E+0003 1.22830902426567E+0003 + 1.22977509920226E+0003 1.23124242149746E+0003 1.23271099183638E+0003 1.23418081090434E+0003 1.23565187938683E+0003 + 1.23712419796953E+0003 1.23859776733829E+0003 1.24007258817918E+0003 1.24154866117841E+0003 1.24302598702240E+0003 + 1.24450456639774E+0003 1.24598439999122E+0003 1.24746548848980E+0003 1.24894783258063E+0003 1.25043143295106E+0003 + 1.25191629028858E+0003 1.25340240528090E+0003 1.25488977861591E+0003 1.25637841098168E+0003 1.25786830306646E+0003 + 1.25935945555869E+0003 1.26085186914699E+0003 1.26234554452016E+0003 1.26384048236720E+0003 1.26533668337726E+0003 + 1.26683414823972E+0003 1.26833287764412E+0003 1.26983287228017E+0003 1.27133413283779E+0003 1.27283666000708E+0003 + 1.27434045447830E+0003 1.27584551694192E+0003 1.27735184808857E+0003 1.27885944860910E+0003 1.28036831919451E+0003 + 1.28187846053601E+0003 1.28338987332496E+0003 1.28490255825294E+0003 1.28641651601169E+0003 1.28793174729314E+0003 + 1.28944825278943E+0003 1.29096603319283E+0003 1.29248508919584E+0003 1.29400542149114E+0003 1.29552703077155E+0003 + 1.29704991773013E+0003 1.29857408306010E+0003 1.30009952745486E+0003 1.30162625160799E+0003 1.30315425621327E+0003 + 1.30468354196466E+0003 1.30621410955630E+0003 1.30774595968251E+0003 1.30927909303779E+0003 1.31081351031684E+0003 + 1.31234921221455E+0003 1.31388619942595E+0003 1.31542447264631E+0003 1.31696403257105E+0003 1.31850487989577E+0003 + 1.32004701531629E+0003 1.32159043952857E+0003 1.32313515322877E+0003 1.32468115711326E+0003 1.32622845187855E+0003 + 1.32777703822137E+0003 1.32932691683861E+0003 1.33087808842737E+0003 1.33243055368490E+0003 1.33398431330865E+0003 + 1.33553936799627E+0003 1.33709571844557E+0003 1.33865336535456E+0003 1.34021230942142E+0003 1.34177255134453E+0003 + 1.34333409182244E+0003 1.34489693155389E+0003 1.34646107123780E+0003 1.34802651157328E+0003 1.34959325325962E+0003 + 1.35116129699630E+0003 1.35273064348298E+0003 1.35430129341950E+0003 1.35587324750589E+0003 1.35744650644235E+0003 + 1.35902107092928E+0003 1.36059694166727E+0003 1.36217411935707E+0003 1.36375260469964E+0003 1.36533239839609E+0003 + 1.36691350114777E+0003 1.36849591365614E+0003 1.37007963662291E+0003 1.37166467074992E+0003 1.37325101673925E+0003 + 1.37483867529313E+0003 1.37642764711396E+0003 1.37801793290436E+0003 1.37960953336711E+0003 1.38120244920518E+0003 + 1.38279668112172E+0003 1.38439222982009E+0003 1.38598909600378E+0003 1.38758728037652E+0003 1.38918678364221E+0003 + 1.39078760650489E+0003 1.39238974966885E+0003 1.39399321383851E+0003 1.39559799971852E+0003 1.39720410801366E+0003 + 1.39881153942895E+0003 1.40042029466956E+0003 1.40203037444085E+0003 1.40364177944838E+0003 1.40525451039785E+0003 + 1.40686856799520E+0003 1.40848395294652E+0003 1.41010066595810E+0003 1.41171870773639E+0003 1.41333807898805E+0003 + 1.41495878041992E+0003 1.41658081273900E+0003 1.41820417665252E+0003 1.41982887286784E+0003 1.42145490209253E+0003 + 1.42308226503436E+0003 1.42471096240127E+0003 1.42634099490136E+0003 1.42797236324296E+0003 1.42960506813454E+0003 + 1.43123911028478E+0003 1.43287449040254E+0003 1.43451120919687E+0003 1.43614926737698E+0003 1.43778866565229E+0003 + 1.43942940473239E+0003 1.44107148532705E+0003 1.44271490814625E+0003 1.44435967390012E+0003 1.44600578329900E+0003 + 1.44765323705338E+0003 1.44930203587399E+0003 1.45095218047170E+0003 1.45260367155756E+0003 1.45425650984283E+0003 + 1.45591069603896E+0003 1.45756623085754E+0003 1.45922311501039E+0003 1.46088134920949E+0003 1.46254093416699E+0003 + 1.46420187059528E+0003 1.46586415920686E+0003 1.46752780071448E+0003 1.46919279583103E+0003 1.47085914526961E+0003 + 1.47252684974347E+0003 1.47419590996610E+0003 1.47586632665111E+0003 1.47753810051235E+0003 1.47921123226381E+0003 + 1.48088572261969E+0003 1.48256157229436E+0003 1.48423878200239E+0003 1.48591735245853E+0003 1.48759728437770E+0003 + 1.48927857847501E+0003 1.49096123546576E+0003 1.49264525606543E+0003 1.49433064098968E+0003 1.49601739095438E+0003 + 1.49770550667553E+0003 1.49939498886937E+0003 1.50108583825230E+0003 1.50277805554088E+0003 1.50447164145191E+0003 + 1.50616659670233E+0003 1.50786292200926E+0003 1.50956061809005E+0003 1.51125968566218E+0003 1.51296012544335E+0003 + 1.51466193815143E+0003 1.51636512450447E+0003 1.51806968522073E+0003 1.51977562101861E+0003 1.52148293261673E+0003 + 1.52319162073388E+0003 1.52490168608903E+0003 1.52661312940135E+0003 1.52832595139018E+0003 1.53004015277505E+0003 + 1.53175573427567E+0003 1.53347269661193E+0003 1.53519104050392E+0003 1.53691076667190E+0003 1.53863187583631E+0003 + 1.54035436871779E+0003 1.54207824603716E+0003 1.54380350851542E+0003 1.54553015687373E+0003 1.54725819183349E+0003 + 1.54898761411623E+0003 1.55071842444369E+0003 1.55245062353779E+0003 1.55418421212064E+0003 1.55591919091452E+0003 + 1.55765556064191E+0003 1.55939332202545E+0003 1.56113247578800E+0003 1.56287302265256E+0003 1.56461496334236E+0003 + 1.56635829858077E+0003 1.56810302909138E+0003 1.56984915559795E+0003 1.57159667882441E+0003 1.57334559949490E+0003 + 1.57509591833372E+0003 1.57684763606538E+0003 1.57860075341455E+0003 1.58035527110609E+0003 1.58211118986505E+0003 + 1.58386851041665E+0003 1.58562723348633E+0003 1.58738735979967E+0003 1.58914889008246E+0003 1.59091182506066E+0003 + 1.59267616546043E+0003 1.59444191200810E+0003 1.59620906543018E+0003 1.59797762645339E+0003 1.59974759580461E+0003 + 1.60151897421090E+0003 1.60329176239953E+0003 1.60506596109792E+0003 1.60684157103372E+0003 1.60861859293471E+0003 + 1.61039702752890E+0003 1.61217687554445E+0003 1.61395813770972E+0003 1.61574081475326E+0003 1.61752490740379E+0003 + 1.61931041639022E+0003 1.62109734244166E+0003 1.62288568628737E+0003 1.62467544865681E+0003 1.62646663027964E+0003 + 1.62825923188568E+0003 1.63005325420495E+0003 1.63184869796764E+0003 1.63364556390415E+0003 1.63544385274503E+0003 + 1.63724356522103E+0003 1.63904470206309E+0003 1.64084726400232E+0003 1.64265125177003E+0003 1.64445666609770E+0003 + 1.64626350771701E+0003 1.64807177735980E+0003 1.64988147575813E+0003 1.65169260364419E+0003 1.65350516175041E+0003 + 1.65531915080937E+0003 1.65713457155384E+0003 1.65895142471679E+0003 1.66076971103135E+0003 1.66258943123085E+0003 + 1.66441058604880E+0003 1.66623317621890E+0003 1.66805720247501E+0003 1.66988266555120E+0003 1.67170956618172E+0003 + 1.67353790510100E+0003 1.67536768304365E+0003 1.67719890074446E+0003 1.67903155893842E+0003 1.68086565836070E+0003 + 1.68270119974664E+0003 1.68453818383176E+0003 1.68637661135181E+0003 1.68821648304267E+0003 1.69005779964043E+0003 + 1.69190056188136E+0003 1.69374477050190E+0003 1.69559042623870E+0003 1.69743752982858E+0003 1.69928608200855E+0003 + 1.70113608351579E+0003 1.70298753508766E+0003 1.70484043746174E+0003 1.70669479137577E+0003 1.70855059756767E+0003 + 1.71040785677553E+0003 1.71226656973766E+0003 1.71412673719255E+0003 1.71598835987883E+0003 1.71785143853537E+0003 + 1.71971597390119E+0003 1.72158196671549E+0003 1.72344941771769E+0003 1.72531832764734E+0003 1.72718869724424E+0003 + 1.72906052724832E+0003 1.73093381839970E+0003 1.73280857143872E+0003 1.73468478710586E+0003 1.73656246614182E+0003 + 1.73844160928746E+0003 1.74032221728384E+0003 1.74220429087218E+0003 1.74408783079391E+0003 1.74597283779064E+0003 + 1.74785931260415E+0003 1.74974725597641E+0003 1.75163666864959E+0003 1.75352755136602E+0003 1.75541990486821E+0003 + 1.75731372989890E+0003 1.75920902720096E+0003 1.76110579751745E+0003 1.76300404159166E+0003 1.76490376016704E+0003 + 1.76680495398718E+0003 1.76870762379592E+0003 1.77061177033724E+0003 1.77251739435533E+0003 1.77442449659455E+0003 + 1.77633307779946E+0003 1.77824313871477E+0003 1.78015468008540E+0003 1.78206770265647E+0003 1.78398220717324E+0003 + 1.78589819438118E+0003 1.78781566502596E+0003 1.78973461985339E+0003 1.79165505960950E+0003 1.79357698504051E+0003 + 1.79550039689278E+0003 1.79742529591289E+0003 1.79935168284760E+0003 1.80127955844386E+0003 1.80320892344876E+0003 + 1.80513977860964E+0003 1.80707212467398E+0003 1.80900596238946E+0003 1.81094129250391E+0003 1.81287811576541E+0003 + 1.81481643292217E+0003 1.81675624472260E+0003 1.81869755191530E+0003 1.82064035524904E+0003 1.82258465547279E+0003 + 1.82453045333570E+0003 1.82647774958711E+0003 1.82842654497650E+0003 1.83037684025359E+0003 1.83232863616827E+0003 + 1.83428193347060E+0003 1.83623673291082E+0003 1.83819303523938E+0003 1.84015084120690E+0003 1.84211015156417E+0003 + 1.84407096706217E+0003 1.84603328845209E+0003 1.84799711648527E+0003 1.84996245191327E+0003 1.85192929548778E+0003 + 1.85389764796072E+0003 1.85586751008419E+0003 1.85783888261046E+0003 1.85981176629198E+0003 1.86178616188139E+0003 + 1.86376207013152E+0003 1.86573949179539E+0003 1.86771842762619E+0003 1.86969887837730E+0003 1.87168084480227E+0003 + 1.87366432765485E+0003 1.87564932768896E+0003 1.87763584565875E+0003 1.87962388231849E+0003 1.88161343842265E+0003 + 1.88360451472592E+0003 1.88559711198315E+0003 1.88759123094935E+0003 1.88958687237975E+0003 1.89158403702976E+0003 + 1.89358272565496E+0003 1.89558293901111E+0003 1.89758467785420E+0003 1.89958794294031E+0003 1.90159273502580E+0003 + 1.90359905486717E+0003 1.90560690322110E+0003 1.90761628084447E+0003 1.90962718849434E+0003 1.91163962692794E+0003 + 1.91365359690271E+0003 1.91566909917625E+0003 1.91768613450635E+0003 1.91970470365100E+0003 1.92172480736834E+0003 + 1.92374644641675E+0003 1.92576962155472E+0003 1.92779433354099E+0003 1.92982058313443E+0003 1.93184837109415E+0003 + 1.93387769817941E+0003 1.93590856514964E+0003 1.93794097276448E+0003 1.93997492178376E+0003 1.94201041296747E+0003 + 1.94404744707580E+0003 1.94608602486912E+0003 1.94812614710797E+0003 1.95016781455310E+0003 1.95221102796541E+0003 + 1.95425578810602E+0003 1.95630209573623E+0003 1.95834995161750E+0003 1.96039935651149E+0003 1.96245031118002E+0003 + 1.96450281638515E+0003 1.96655687288906E+0003 1.96861248145415E+0003 1.97066964284301E+0003 1.97272835781838E+0003 + 1.97478862714322E+0003 1.97685045158065E+0003 1.97891383189397E+0003 1.98097876884670E+0003 1.98304526320251E+0003 + 1.98511331572527E+0003 1.98718292717900E+0003 1.98925409832797E+0003 1.99132682993658E+0003 1.99340112276942E+0003 + 1.99547697759129E+0003 1.99755439516715E+0003 1.99963337626215E+0003 2.00171392164163E+0003 2.00379603207111E+0003 + 2.00587970831628E+0003 2.00796495114304E+0003 2.01005176131747E+0003 2.01214013960581E+0003 2.01423008677451E+0003 + 2.01632160359019E+0003 2.01841469081966E+0003 2.02050934922991E+0003 2.02260557958811E+0003 2.02470338266162E+0003 + 2.02680275921800E+0003 2.02890371002496E+0003 2.03100623585040E+0003 2.03311033746244E+0003 2.03521601562935E+0003 + 2.03732327111958E+0003 2.03943210470180E+0003 2.04154251714484E+0003 2.04365450921770E+0003 2.04576808168958E+0003 + 2.04788323532987E+0003 2.04999997090813E+0003 2.05211828919414E+0003 2.05423819095778E+0003 2.05635967696921E+0003 + 2.05848274799874E+0003 2.06060740481682E+0003 2.06273364819413E+0003 2.06486147890156E+0003 2.06699089771011E+0003 + 2.06912190539102E+0003 2.07125450271570E+0003 2.07338869045573E+0003 2.07552446938288E+0003 2.07766184026912E+0003 + 2.07980080388660E+0003 2.08194136100762E+0003 2.08408351240470E+0003 2.08622725885057E+0003 2.08837260111805E+0003 + 2.09051953998024E+0003 2.09266807621039E+0003 2.09481821058190E+0003 2.09696994386840E+0003 2.09912327684370E+0003 + 2.10127821028177E+0003 2.10343474495677E+0003 2.10559288164308E+0003 2.10775262111519E+0003 2.10991396414786E+0003 + 2.11207691151596E+0003 2.11424146399459E+0003 2.11640762235901E+0003 2.11857538738469E+0003 2.12074475984726E+0003 + 2.12291574052255E+0003 2.12508833018653E+0003 2.12726252961544E+0003 2.12943833958563E+0003 2.13161576087365E+0003 + 2.13379479425625E+0003 2.13597544051037E+0003 2.13815770041310E+0003 2.14034157474173E+0003 2.14252706427376E+0003 + 2.14471416978681E+0003 2.14690289205878E+0003 2.14909323186766E+0003 2.15128518999169E+0003 2.15347876720924E+0003 + 2.15567396429891E+0003 2.15787078203946E+0003 2.16006922120983E+0003 2.16226928258918E+0003 2.16447096695679E+0003 + 2.16667427509219E+0003 2.16887920777505E+0003 2.17108576578525E+0003 2.17329394990284E+0003 2.17550376090805E+0003 + 2.17771519958132E+0003 2.17992826670322E+0003 2.18214296305458E+0003 2.18435928941632E+0003 2.18657724656965E+0003 + 2.18879683529589E+0003 2.19101805637656E+0003 2.19324091059338E+0003 2.19546539872822E+0003 2.19769152156318E+0003 + 2.19991927988052E+0003 2.20214867446268E+0003 2.20437970609228E+0003 2.20661237555214E+0003 2.20884668362525E+0003 + 2.21108263109480E+0003 2.21332021874415E+0003 2.21555944735685E+0003 2.21780031771663E+0003 2.22004283060740E+0003 + 2.22228698681328E+0003 2.22453278711854E+0003 2.22678023230762E+0003 2.22902932316525E+0003 2.23128006047618E+0003 + 2.23353244502548E+0003 2.23578647759835E+0003 2.23804215898016E+0003 2.24029948995649E+0003 2.24255847131310E+0003 + 2.24481910383594E+0003 2.24708138831110E+0003 2.24934532552493E+0003 2.25161091626389E+0003 2.25387816131467E+0003 + 2.25614706146412E+0003 2.25841761749930E+0003 2.26068983020743E+0003 2.26296370037592E+0003 2.26523922879235E+0003 + 2.26751641624451E+0003 2.26979526352040E+0003 2.27207577140811E+0003 2.27435794069601E+0003 2.27664177217259E+0003 + 2.27892726662657E+0003 2.28121442484683E+0003 2.28350324762244E+0003 2.28579373574261E+0003 2.28808588999684E+0003 + 2.29037971117472E+0003 2.29267520006603E+0003 2.29497235746080E+0003 2.29727118414917E+0003 2.29957168092151E+0003 + 2.30187384856834E+0003 2.30417768788042E+0003 2.30648319964861E+0003 2.30879038466403E+0003 2.31109924371797E+0003 + 2.31340977760185E+0003 2.31572198710733E+0003 2.31803587302624E+0003 2.32035143615059E+0003 2.32266867727258E+0003 + 2.32498759718458E+0003 2.32730819667916E+0003 2.32963047654905E+0003 2.33195443758719E+0003 2.33428008058671E+0003 + 2.33660740634089E+0003 2.33893641564321E+0003 2.34126710928736E+0003 2.34359948806716E+0003 2.34593355277667E+0003 + 2.34826930421009E+0003 2.35060674316184E+0003 2.35294587042648E+0003 2.35528668679880E+0003 2.35762919307376E+0003 + 2.35997339004648E+0003 2.36231927851228E+0003 2.36466685926670E+0003 2.36701613310539E+0003 2.36936710082424E+0003 + 2.37171976321933E+0003 2.37407412108686E+0003 2.37643017522328E+0003 2.37878792642520E+0003 2.38114737548941E+0003 + 2.38350852321289E+0003 2.38587137039279E+0003 2.38823591782647E+0003 2.39060216631145E+0003 2.39297011664546E+0003 + 2.39533976962639E+0003 2.39771112605230E+0003 2.40008418672150E+0003 2.40245895243239E+0003 2.40483542398363E+0003 + 2.40721360217404E+0003 2.40959348780261E+0003 2.41197508166853E+0003 2.41435838457118E+0003 2.41674339731010E+0003 + 2.41913012068503E+0003 2.42151855549589E+0003 2.42390870254279E+0003 2.42630056262601E+0003 2.42869413654604E+0003 + 2.43108942510351E+0003 2.43348642909930E+0003 2.43588514933440E+0003 2.43828558661003E+0003 2.44068774172759E+0003 + 2.44309161548865E+0003 2.44549720869497E+0003 2.44790452214850E+0003 2.45031355665136E+0003 2.45272431300587E+0003 + 2.45513679201455E+0003 2.45755099448003E+0003 2.45996692120520E+0003 2.46238457299313E+0003 2.46480395064702E+0003 + 2.46722505497029E+0003 2.46964788676655E+0003 2.47207244683961E+0003 2.47449873599339E+0003 2.47692675503207E+0003 + 2.47935650475997E+0003 2.48178798598164E+0003 2.48422119950176E+0003 2.48665614612522E+0003 2.48909282665709E+0003 + 2.49153124190264E+0003 2.49397139266731E+0003 2.49641327975671E+0003 2.49885690397666E+0003 2.50130226613314E+0003 + 2.50374936703234E+0003 2.50619820748060E+0003 2.50864878828449E+0003 2.51110111025073E+0003 2.51355517418621E+0003 + 2.51601098089806E+0003 2.51846853119353E+0003 2.52092782588010E+0003 2.52338886576542E+0003 2.52585165165730E+0003 + 2.52831618436379E+0003 2.53078246469306E+0003 2.53325049345350E+0003 2.53572027145368E+0003 2.53819179950238E+0003 + 2.54066507840848E+0003 2.54314010898116E+0003 2.54561689202966E+0003 2.54809542836351E+0003 2.55057571879239E+0003 + 2.55305776412612E+0003 2.55554156517475E+0003 2.55802712274851E+0003 2.56051443765782E+0003 2.56300351071325E+0003 + 2.56549434272558E+0003 2.56798693450577E+0003 2.57048128686498E+0003 2.57297740061450E+0003 2.57547527656587E+0003 + 2.57797491553079E+0003 2.58047631832111E+0003 2.58297948574892E+0003 2.58548441862645E+0003 2.58799111776614E+0003 + 2.59049958398060E+0003 2.59300981808262E+0003 2.59552182088522E+0003 2.59803559320152E+0003 2.60055113584489E+0003 + 2.60306844962887E+0003 2.60558753536718E+0003 2.60810839387370E+0003 2.61063102596256E+0003 2.61315543244798E+0003 + 2.61568161414444E+0003 2.61820957186658E+0003 2.62073930642923E+0003 2.62327081864737E+0003 2.62580410933620E+0003 + 2.62833917931112E+0003 2.63087602938765E+0003 2.63341466038156E+0003 2.63595507310876E+0003 2.63849726838537E+0003 + 2.64104124702767E+0003 2.64358700985216E+0003 2.64613455767549E+0003 2.64868389131450E+0003 2.65123501158623E+0003 + 2.65378791930789E+0003 2.65634261529687E+0003 2.65889910037077E+0003 2.66145737534735E+0003 2.66401744104454E+0003 + 2.66657929828049E+0003 2.66914294787352E+0003 2.67170839064213E+0003 2.67427562740500E+0003 2.67684465898101E+0003 + 2.67941548618920E+0003 2.68198810984882E+0003 2.68456253077928E+0003 2.68713874980020E+0003 2.68971676773136E+0003 + 2.69229658539271E+0003 2.69487820360446E+0003 2.69746162318691E+0003 2.70004684496060E+0003 2.70263386974623E+0003 + 2.70522269836471E+0003 2.70781333163710E+0003 2.71040577038468E+0003 2.71300001542886E+0003 2.71559606759132E+0003 + 2.71819392769384E+0003 2.72079359655841E+0003 2.72339507500723E+0003 2.72599836386266E+0003 2.72860346394723E+0003 + 2.73121037608371E+0003 2.73381910109500E+0003 2.73642963980418E+0003 2.73904199303456E+0003 2.74165616160959E+0003 + 2.74427214635295E+0003 2.74688994808846E+0003 2.74950956764013E+0003 2.75213100583217E+0003 2.75475426348899E+0003 + 2.75737934143514E+0003 2.76000624049537E+0003 2.76263496149464E+0003 2.76526550525807E+0003 2.76789787261097E+0003 + 2.77053206437882E+0003 2.77316808138732E+0003 2.77580592446228E+0003 2.77844559442980E+0003 2.78108709211609E+0003 + 2.78373041834755E+0003 2.78637557395079E+0003 2.78902255975258E+0003 2.79167137657989E+0003 2.79432202525986E+0003 + 2.79697450661984E+0003 2.79962882148733E+0003 2.80228497069002E+0003 2.80494295505583E+0003 2.80760277541279E+0003 + 2.81026443258917E+0003 2.81292792741340E+0003 2.81559326071411E+0003 2.81826043332010E+0003 2.82092944606035E+0003 + 2.82360029976402E+0003 2.82627299526049E+0003 2.82894753337929E+0003 2.83162391495016E+0003 2.83430214080297E+0003 + 2.83698221176785E+0003 2.83966412867505E+0003 2.84234789235504E+0003 2.84503350363844E+0003 2.84772096335611E+0003 + 2.85041027233905E+0003 2.85310143141844E+0003 2.85579444142570E+0003 2.85848930319236E+0003 2.86118601755016E+0003 + 2.86388458533105E+0003 2.86658500736715E+0003 2.86928728449073E+0003 2.87199141753429E+0003 2.87469740733050E+0003 + 2.87740525471223E+0003 2.88011496051247E+0003 2.88282652556445E+0003 2.88553995070160E+0003 2.88825523675750E+0003 + 2.89097238456590E+0003 2.89369139496077E+0003 2.89641226877624E+0003 2.89913500684665E+0003 2.90185961000650E+0003 + 2.90458607909046E+0003 2.90731441493341E+0003 2.91004461837043E+0003 2.91277669023674E+0003 2.91551063136779E+0003 + 2.91824644259917E+0003 2.92098412476667E+0003 2.92372367870629E+0003 2.92646510525418E+0003 2.92920840524667E+0003 + 2.93195357952033E+0003 2.93470062891184E+0003 2.93744955425811E+0003 2.94020035639622E+0003 2.94295303616344E+0003 + 2.94570759439722E+0003 2.94846403193517E+0003 2.95122234961515E+0003 2.95398254827515E+0003 2.95674462875333E+0003 + 2.95950859188806E+0003 2.96227443851792E+0003 2.96504216948165E+0003 2.96781178561815E+0003 2.97058328776654E+0003 + 2.97335667676610E+0003 2.97613195345629E+0003 2.97890911867681E+0003 2.98168817326746E+0003 2.98446911806829E+0003 + 2.98725195391949E+0003 2.99003668166147E+0003 2.99282330213480E+0003 2.99561181618024E+0003 2.99840222463874E+0003 + 3.00119452835143E+0003 3.00398872815962E+0003 3.00678482490480E+0003 3.00958281942867E+0003 3.01238271257307E+0003 + 3.01518450518008E+0003 3.01798819809190E+0003 3.02079379215097E+0003 3.02360128819987E+0003 3.02641068708140E+0003 + 3.02922198963854E+0003 3.03203519671442E+0003 3.03485030915238E+0003 3.03766732779595E+0003 3.04048625348883E+0003 + 3.04330708707493E+0003 3.04612982939828E+0003 3.04895448130317E+0003 3.05178104363402E+0003 3.05460951723547E+0003 + 3.05743990295232E+0003 3.06027220162956E+0003 3.06310641411238E+0003 3.06594254124613E+0003 3.06878058387635E+0003 + 3.07162054284877E+0003 3.07446241900933E+0003 3.07730621320407E+0003 3.08015192627932E+0003 3.08299955908153E+0003 + 3.08584911245735E+0003 3.08870058725358E+0003 3.09155398431728E+0003 3.09440930449563E+0003 3.09726654863602E+0003 + 3.10012571758602E+0003 3.10298681219336E+0003 3.10584983330600E+0003 3.10871478177205E+0003 3.11158165843981E+0003 + 3.11445046415779E+0003 3.11732119977462E+0003 3.12019386613919E+0003 3.12306846410054E+0003 3.12594499450787E+0003 + 3.12882345821062E+0003 3.13170385605833E+0003 3.13458618890084E+0003 3.13747045758807E+0003 3.14035666297015E+0003 + 3.14324480589746E+0003 3.14613488722045E+0003 3.14902690778986E+0003 3.15192086845655E+0003 3.15481677007159E+0003 + 3.15771461348621E+0003 3.16061439955187E+0003 3.16351612912017E+0003 3.16641980304290E+0003 3.16932542217205E+0003 + 3.17223298735979E+0003 3.17514249945848E+0003 3.17805395932064E+0003 3.18096736779900E+0003 3.18388272574645E+0003 + 3.18680003401608E+0003 3.18971929346117E+0003 3.19264050493516E+0003 3.19556366929170E+0003 3.19848878738461E+0003 + 3.20141586006790E+0003 3.20434488819575E+0003 3.20727587262255E+0003 3.21020881420284E+0003 3.21314371379139E+0003 + 3.21608057224308E+0003 3.21901939041307E+0003 3.22196016915663E+0003 3.22490290932924E+0003 3.22784761178656E+0003 + 3.23079427738446E+0003 3.23374290697893E+0003 3.23669350142621E+0003 3.23964606158269E+0003 3.24260058830495E+0003 + 3.24555708244977E+0003 3.24851554487409E+0003 3.25147597643505E+0003 3.25443837798994E+0003 3.25740275039630E+0003 + 3.26036909451179E+0003 3.26333741119430E+0003 3.26630770130187E+0003 3.26927996569275E+0003 3.27225420522534E+0003 + 3.27523042075826E+0003 3.27820861315031E+0003 3.28118878326044E+0003 3.28417093194783E+0003 3.28715506007180E+0003 + 3.29014116849189E+0003 3.29312925806780E+0003 3.29611932965944E+0003 3.29911138412687E+0003 3.30210542233035E+0003 + 3.30510144513034E+0003 3.30809945338747E+0003 3.31109944796254E+0003 3.31410142971655E+0003 3.31710539951068E+0003 + 3.32011135820630E+0003 3.32311930666496E+0003 3.32612924574839E+0003 3.32914117631850E+0003 3.33215509923743E+0003 + 3.33517101536740E+0003 3.33818892557093E+0003 3.34120883071065E+0003 3.34423073164940E+0003 3.34725462925019E+0003 + 3.35028052437626E+0003 3.35330841789096E+0003 3.35633831065790E+0003 3.35937020354079E+0003 3.36240409740361E+0003 + 3.36543999311047E+0003 3.36847789152568E+0003 3.37151779351372E+0003 3.37455969993929E+0003 3.37760361166724E+0003 + 3.38064952956261E+0003 3.38369745449062E+0003 3.38674738731670E+0003 3.38979932890643E+0003 3.39285328012562E+0003 + 3.39590924184021E+0003 3.39896721491634E+0003 3.40202720022036E+0003 3.40508919861878E+0003 3.40815321097830E+0003 + 3.41121923816580E+0003 3.41428728104835E+0003 3.41735734049321E+0003 3.42042941736781E+0003 3.42350351253976E+0003 + 3.42657962687688E+0003 3.42965776124714E+0003 3.43273791651873E+0003 3.43582009356000E+0003 3.43890429323950E+0003 + 3.44199051642593E+0003 3.44507876398820E+0003 3.44816903679541E+0003 3.45126133571686E+0003 3.45435566162196E+0003 + 3.45745201538039E+0003 3.46055039786197E+0003 3.46365080993670E+0003 3.46675325247478E+0003 3.46985772634659E+0003 + 3.47296423242270E+0003 3.47607277157386E+0003 3.47918334467098E+0003 3.48229595258520E+0003 3.48541059618780E+0003 + 3.48852727635028E+0003 3.49164599394429E+0003 3.49476674984168E+0003 3.49788954491450E+0003 3.50101438003498E+0003 + 3.50414125607548E+0003 3.50727017390863E+0003 3.51040113440716E+0003 3.51353413844406E+0003 3.51666918689247E+0003 + 3.51980628062567E+0003 3.52294542051722E+0003 3.52608660744077E+0003 3.52922984227023E+0003 3.53237512587962E+0003 + 3.53552245914321E+0003 3.53867184293541E+0003 3.54182327813084E+0003 3.54497676560430E+0003 3.54813230623076E+0003 + 3.55128990088537E+0003 3.55444955044350E+0003 3.55761125578067E+0003 3.56077501777258E+0003 3.56394083729516E+0003 + 3.56710871522447E+0003 3.57027865243678E+0003 3.57345064980854E+0003 3.57662470821636E+0003 3.57980082853712E+0003 + 3.58297901164775E+0003 3.58615925842548E+0003 3.58934156974769E+0003 3.59252594649189E+0003 3.59571238953585E+0003 + 3.59890089975748E+0003 3.60209147803488E+0003 3.60528412524635E+0003 3.60847884227038E+0003 3.61167562998558E+0003 + 3.61487448927085E+0003 3.61807542100517E+0003 3.62127842606777E+0003 3.62448350533803E+0003 3.62769065969555E+0003 + 3.63089989002006E+0003 3.63411119719153E+0003 3.63732458209009E+0003 3.64054004559603E+0003 3.64375758858988E+0003 + 3.64697721195228E+0003 3.65019891656414E+0003 3.65342270330649E+0003 3.65664857306055E+0003 3.65987652670775E+0003 + 3.66310656512967E+0003 3.66633868920814E+0003 3.66957289982510E+0003 3.67280919786268E+0003 3.67604758420327E+0003 + 3.67928805972935E+0003 3.68253062532363E+0003 3.68577528186901E+0003 3.68902203024856E+0003 3.69227087134555E+0003 + 3.69552180604338E+0003 3.69877483522572E+0003 3.70202995977636E+0003 3.70528718057929E+0003 3.70854649851868E+0003 + 3.71180791447889E+0003 3.71507142934449E+0003 3.71833704400017E+0003 3.72160475933089E+0003 3.72487457622169E+0003 + 3.72814649555790E+0003 3.73142051822496E+0003 3.73469664510852E+0003 3.73797487709441E+0003 3.74125521506865E+0003 + 3.74453765991743E+0003 3.74782221252716E+0003 3.75110887378439E+0003 3.75439764457587E+0003 3.75768852578854E+0003 + 3.76098151830951E+0003 3.76427662302610E+0003 3.76757384082580E+0003 3.77087317259626E+0003 3.77417461922536E+0003 + 3.77747818160111E+0003 3.78078386061176E+0003 3.78409165714570E+0003 3.78740157209153E+0003 3.79071360633805E+0003 + 3.79402776077418E+0003 3.79734403628908E+0003 3.80066243377206E+0003 3.80398295411265E+0003 3.80730559820055E+0003 + 3.81063036692564E+0003 3.81395726117797E+0003 3.81728628184778E+0003 3.82061742982552E+0003 3.82395070600181E+0003 + 3.82728611126742E+0003 3.83062364651335E+0003 3.83396331263077E+0003 3.83730511051104E+0003 3.84064904104567E+0003 + 3.84399510512639E+0003 3.84734330364512E+0003 3.85069363749391E+0003 3.85404610756507E+0003 3.85740071475103E+0003 + 3.86075745994444E+0003 3.86411634403811E+0003 3.86747736792505E+0003 3.87084053249846E+0003 3.87420583865172E+0003 + 3.87757328727837E+0003 3.88094287927216E+0003 3.88431461552700E+0003 3.88768849693703E+0003 3.89106452439656E+0003 + 3.89444269879999E+0003 3.89782302104206E+0003 3.90120549201759E+0003 3.90459011262160E+0003 3.90797688374932E+0003 + 3.91136580629613E+0003 3.91475688115761E+0003 3.91815010922957E+0003 3.92154549140790E+0003 3.92494302858879E+0003 + 3.92834272166853E+0003 3.93174457154361E+0003 3.93514857911072E+0003 3.93855474526674E+0003 3.94196307090874E+0003 + 3.94537355693392E+0003 3.94878620423973E+0003 3.95220101372376E+0003 3.95561798628381E+0003 3.95903712281783E+0003 + 3.96245842422402E+0003 3.96588189140071E+0003 3.96930752524640E+0003 3.97273532665979E+0003 3.97616529653982E+0003 + 3.97959743578554E+0003 3.98303174529623E+0003 3.98646822597130E+0003 3.98990687871043E+0003 3.99334770441337E+0003 + 3.99679070398017E+0003 4.00023587831098E+0003 4.00368322830617E+0003 4.00713275486631E+0003 4.01058445889211E+0003 + 4.01403834128449E+0003 4.01749440294456E+0003 4.02095264477360E+0003 4.02441306767310E+0003 4.02787567254468E+0003 + 4.03134046029018E+0003 4.03480743181163E+0003 4.03827658801124E+0003 4.04174792979140E+0003 4.04522145805466E+0003 + 4.04869717370381E+0003 4.05217507764175E+0003 4.05565517077164E+0003 4.05913745399679E+0003 4.06262192822067E+0003 + 4.06610859434696E+0003 4.06959745327952E+0003 4.07308850592240E+0003 4.07658175317984E+0003 4.08007719595622E+0003 + 4.08357483515616E+0003 4.08707467168445E+0003 4.09057670644602E+0003 4.09408094034605E+0003 4.09758737428988E+0003 + 4.10109600918297E+0003 4.10460684593108E+0003 4.10811988544005E+0003 4.11163512861598E+0003 4.11515257636511E+0003 + 4.11867222959386E+0003 4.12219408920888E+0003 4.12571815611696E+0003 4.12924443122509E+0003 4.13277291544042E+0003 + 4.13630360967034E+0003 4.13983651482236E+0003 4.14337163180423E+0003 4.14690896152383E+0003 4.15044850488927E+0003 + 4.15399026280884E+0003 4.15753423619095E+0003 4.16108042594430E+0003 4.16462883297766E+0003 4.16817945820010E+0003 + 4.17173230252077E+0003 4.17528736684907E+0003 4.17884465209457E+0003 4.18240415916700E+0003 4.18596588897629E+0003 + 4.18952984243257E+0003 4.19309602044614E+0003 4.19666442392746E+0003 4.20023505378722E+0003 4.20380791093626E+0003 + 4.20738299628562E+0003 4.21096031074651E+0003 4.21453985523033E+0003 4.21812163064870E+0003 4.22170563791334E+0003 + 4.22529187793624E+0003 4.22888035162953E+0003 4.23247105990554E+0003 4.23606400367677E+0003 4.23965918385590E+0003 + 4.24325660135580E+0003 4.24685625708955E+0003 4.25045815197039E+0003 4.25406228691174E+0003 4.25766866282720E+0003 + 4.26127728063059E+0003 4.26488814123587E+0003 4.26850124555719E+0003 4.27211659450893E+0003 4.27573418900558E+0003 + 4.27935402996191E+0003 4.28297611829275E+0003 4.28660045491322E+0003 4.29022704073859E+0003 4.29385587668431E+0003 + 4.29748696366598E+0003 4.30112030259945E+0003 4.30475589440073E+0003 4.30839373998599E+0003 4.31203384027158E+0003 + 4.31567619617407E+0003 4.31932080861021E+0003 4.32296767849691E+0003 4.32661680675130E+0003 4.33026819429063E+0003 + 4.33392184203240E+0003 4.33757775089424E+0003 4.34123592179403E+0003 4.34489635564975E+0003 4.34855905337966E+0003 + 4.35222401590212E+0003 4.35589124413571E+0003 4.35956073899921E+0003 4.36323250141153E+0003 4.36690653229184E+0003 + 4.37058283255943E+0003 4.37426140313379E+0003 4.37794224493461E+0003 4.38162535888176E+0003 4.38531074589529E+0003 + 4.38899840689544E+0003 4.39268834280259E+0003 4.39638055453739E+0003 4.40007504302060E+0003 4.40377180917317E+0003 + 4.40747085391627E+0003 4.41117217817125E+0003 4.41487578285961E+0003 4.41858166890308E+0003 4.42228983722352E+0003 + 4.42600028874300E+0003 4.42971302438385E+0003 4.43342804506837E+0003 4.43714535171933E+0003 4.44086494525945E+0003 + 4.44458682661173E+0003 4.44831099669941E+0003 4.45203745644576E+0003 4.45576620677439E+0003 4.45949724860900E+0003 + 4.46323058287351E+0003 4.46696621049200E+0003 4.47070413238880E+0003 4.47444434948829E+0003 4.47818686271516E+0003 + 4.48193167299429E+0003 4.48567878125064E+0003 4.48942818840942E+0003 4.49317989539598E+0003 4.49693390313597E+0003 + 4.50069021255511E+0003 4.50444882457927E+0003 4.50820974013467E+0003 4.51197296014756E+0003 4.51573848554443E+0003 + 4.51950631725193E+0003 4.52327645619694E+0003 4.52704890330652E+0003 4.53082365950786E+0003 4.53460072572839E+0003 + 4.53838010289570E+0003 4.54216179193753E+0003 4.54594579378188E+0003 4.54973210935686E+0003 4.55352073959085E+0003 + 4.55731168541231E+0003 4.56110494774993E+0003 4.56490052753265E+0003 4.56869842568948E+0003 4.57249864314969E+0003 + 4.57630118084268E+0003 4.58010603969810E+0003 4.58391322064573E+0003 4.58772272461557E+0003 4.59153455253778E+0003 + 4.59534870534269E+0003 4.59916518396085E+0003 4.60298398932299E+0003 4.60680512235999E+0003 4.61062858400297E+0003 + 4.61445437518318E+0003 4.61828249683203E+0003 4.62211294988125E+0003 4.62594573526259E+0003 4.62978085390810E+0003 + 4.63361830674992E+0003 4.63745809472050E+0003 4.64130021875232E+0003 4.64514467977817E+0003 4.64899147873095E+0003 + 4.65284061654381E+0003 4.65669209415000E+0003 4.66054591248301E+0003 4.66440207247651E+0003 4.66826057506433E+0003 + 4.67212142118052E+0003 4.67598461175931E+0003 4.67985014773507E+0003 4.68371803004236E+0003 4.68758825961599E+0003 + 4.69146083739088E+0003 4.69533576430217E+0003 4.69921304128523E+0003 4.70309266927544E+0003 4.70697464920861E+0003 + 4.71085898202055E+0003 4.71474566864733E+0003 4.71863471002517E+0003 4.72252610709053E+0003 4.72641986077995E+0003 + 4.73031597203028E+0003 4.73421444177846E+0003 4.73811527096167E+0003 4.74201846051721E+0003 4.74592401138265E+0003 + 4.74983192449569E+0003 4.75374220079421E+0003 4.75765484121631E+0003 4.76156984670022E+0003 4.76548721818441E+0003 + 4.76940695660748E+0003 4.77332906290828E+0003 4.77725353802578E+0003 4.78118038289917E+0003 4.78510959846782E+0003 + 4.78904118567126E+0003 4.79297514544924E+0003 4.79691147874168E+0003 4.80085018648866E+0003 4.80479126963048E+0003 + 4.80873472910761E+0003 4.81268056586072E+0003 4.81662878083059E+0003 4.82057937495831E+0003 4.82453234918501E+0003 + 4.82848770445216E+0003 4.83244544170127E+0003 4.83640556187413E+0003 4.84036806591264E+0003 4.84433295475897E+0003 + 4.84830022935540E+0003 4.85226989064444E+0003 4.85624193956876E+0003 4.86021637707121E+0003 4.86419320409486E+0003 + 4.86817242158289E+0003 4.87215403047878E+0003 4.87613803172605E+0003 4.88012442626852E+0003 4.88411321505018E+0003 + 4.88810439901512E+0003 4.89209797910771E+0003 4.89609395627248E+0003 4.90009233145406E+0003 4.90409310559745E+0003 + 4.90809627964758E+0003 4.91210185454981E+0003 4.91610983124950E+0003 4.92012021069233E+0003 4.92413299382408E+0003 + 4.92814818159073E+0003 4.93216577493846E+0003 4.93618577481361E+0003 4.94020818216274E+0003 4.94423299793256E+0003 + 4.94826022306998E+0003 4.95228985852211E+0003 4.95632190523618E+0003 4.96035636415970E+0003 4.96439323624028E+0003 + 4.96843252242573E+0003 4.97247422366413E+0003 4.97651834090361E+0003 4.98056487509259E+0003 4.98461382717961E+0003 + 4.98866519811341E+0003 4.99271898884293E+0003 4.99677520031732E+0003 5.00083383348580E+0003 5.00489488929791E+0003 + 5.00895836870332E+0003 5.01302427265186E+0003 5.01709260209357E+0003 5.02116335797864E+0003 5.02523654125753E+0003 + 5.02931215288080E+0003 5.03339019379921E+0003 5.03747066496372E+0003 5.04155356732546E+0003 5.04563890183579E+0003 + 5.04972666944616E+0003 5.05381687110831E+0003 5.05790950777409E+0003 5.06200458039556E+0003 5.06610208992493E+0003 + 5.07020203731471E+0003 5.07430442351743E+0003 5.07840924948591E+0003 5.08251651617316E+0003 5.08662622453229E+0003 + 5.09073837551667E+0003 5.09485297007982E+0003 5.09897000917548E+0003 5.10308949375752E+0003 5.10721142478002E+0003 + 5.11133580319729E+0003 5.11546262996372E+0003 5.11959190603397E+0003 5.12372363236286E+0003 5.12785780990538E+0003 + 5.13199443961676E+0003 5.13613352245231E+0003 5.14027505936760E+0003 5.14441905131839E+0003 5.14856549926057E+0003 + 5.15271440415026E+0003 5.15686576694377E+0003 5.16101958859756E+0003 5.16517587006824E+0003 5.16933461231273E+0003 + 5.17349581628799E+0003 5.17765948295126E+0003 5.18182561325995E+0003 5.18599420817160E+0003 5.19016526864396E+0003 + 5.19433879563503E+0003 5.19851479010291E+0003 5.20269325300591E+0003 5.20687418530251E+0003 5.21105758795145E+0003 + 5.21524346191152E+0003 5.21943180814183E+0003 5.22362262760158E+0003 5.22781592125016E+0003 5.23201169004723E+0003 + 5.23620993495255E+0003 5.24041065692608E+0003 5.24461385692797E+0003 5.24881953591858E+0003 5.25302769485841E+0003 + 5.25723833470815E+0003 5.26145145642871E+0003 5.26566706098117E+0003 5.26988514932679E+0003 5.27410572242699E+0003 + 5.27832878124338E+0003 5.28255432673778E+0003 5.28678235987222E+0003 5.29101288160883E+0003 5.29524589290998E+0003 + 5.29948139473821E+0003 5.30371938805628E+0003 5.30795987382706E+0003 5.31220285301367E+0003 5.31644832657940E+0003 + 5.32069629548768E+0003 5.32494676070217E+0003 5.32919972318670E+0003 5.33345518390530E+0003 5.33771314382220E+0003 + 5.34197360390170E+0003 5.34623656510843E+0003 5.35050202840709E+0003 5.35476999476270E+0003 5.35904046514028E+0003 + 5.36331344050521E+0003 5.36758892182296E+0003 5.37186691005917E+0003 5.37614740617972E+0003 5.38043041115064E+0003 + 5.38471592593817E+0003 5.38900395150870E+0003 5.39329448882880E+0003 5.39758753886528E+0003 5.40188310258513E+0003 + 5.40618118095541E+0003 5.41048177494349E+0003 5.41478488551687E+0003 5.41909051364328E+0003 5.42339866029056E+0003 + 5.42770932642679E+0003 5.43202251302020E+0003 5.43633822103924E+0003 5.44065645145252E+0003 5.44497720522885E+0003 + 5.44930048333717E+0003 5.45362628674670E+0003 5.45795461642675E+0003 5.46228547334687E+0003 5.46661885847677E+0003 + 5.47095477278635E+0003 5.47529321724572E+0003 5.47963419282515E+0003 5.48397770049506E+0003 5.48832374122612E+0003 + 5.49267231598914E+0003 5.49702342575513E+0003 5.50137707149526E+0003 5.50573325418093E+0003 5.51009197478367E+0003 + 5.51445323427526E+0003 5.51881703362761E+0003 5.52318337381280E+0003 5.52755225580317E+0003 5.53192368057116E+0003 + 5.53629764908945E+0003 5.54067416233092E+0003 5.54505322126852E+0003 5.54943482687551E+0003 5.55381898012532E+0003 + 5.55820568199147E+0003 5.56259493344772E+0003 5.56698673546812E+0003 5.57138108902668E+0003 5.57577799509779E+0003 + 5.58017745465595E+0003 5.58457946867580E+0003 5.58898403813224E+0003 5.59339116400034E+0003 5.59780084725528E+0003 + 5.60221308887254E+0003 5.60662788982769E+0003 5.61104525109656E+0003 5.61546517365507E+0003 5.61988765847943E+0003 + 5.62431270654593E+0003 5.62874031883111E+0003 5.63317049631172E+0003 5.63760323996458E+0003 5.64203855076684E+0003 + 5.64647642969570E+0003 5.65091687772864E+0003 5.65535989584327E+0003 5.65980548501742E+0003 5.66425364622909E+0003 + 5.66870438045643E+0003 5.67315768867783E+0003 5.67761357187184E+0003 5.68207203101717E+0003 5.68653306709277E+0003 + 5.69099668107771E+0003 5.69546287395127E+0003 5.69993164669297E+0003 5.70440300028239E+0003 5.70887693569940E+0003 + 5.71335345392405E+0003 5.71783255593647E+0003 5.72231424271713E+0003 5.72679851524657E+0003 5.73128537450552E+0003 + 5.73577482147494E+0003 5.74026685713598E+0003 5.74476148246990E+0003 5.74925869845822E+0003 5.75375850608259E+0003 + 5.75826090632493E+0003 5.76276590016721E+0003 5.76727348859169E+0003 5.77178367258080E+0003 5.77629645311710E+0003 + 5.78081183118341E+0003 5.78532980776265E+0003 5.78985038383800E+0003 5.79437356039279E+0003 5.79889933841050E+0003 + 5.80342771887487E+0003 5.80795870276976E+0003 5.81249229107924E+0003 5.81702848478756E+0003 5.82156728487917E+0003 + 5.82610869233869E+0003 5.83065270815088E+0003 5.83519933330078E+0003 5.83974856877355E+0003 5.84430041555451E+0003 + 5.84885487462925E+0003 5.85341194698345E+0003 5.85797163360304E+0003 5.86253393547409E+0003 5.86709885358291E+0003 + 5.87166638891591E+0003 5.87623654245978E+0003 5.88080931520133E+0003 5.88538470812756E+0003 5.88996272222568E+0003 + 5.89454335848305E+0003 5.89912661788725E+0003 5.90371250142601E+0003 5.90830101008728E+0003 5.91289214485917E+0003 + 5.91748590672994E+0003 5.92208229668811E+0003 5.92668131572235E+0003 5.93128296482151E+0003 5.93588724497461E+0003 + 5.94049415717086E+0003 5.94510370239968E+0003 5.94971588165064E+0003 5.95433069591354E+0003 5.95894814617831E+0003 + 5.96356823343506E+0003 5.96819095867420E+0003 5.97281632288614E+0003 5.97744432706160E+0003 5.98207497219152E+0003 + 5.98670825926684E+0003 5.99134418927888E+0003 5.99598276321906E+0003 6.00062398207896E+0003 6.00526784685040E+0003 + 6.00991435852535E+0003 6.01456351809597E+0003 6.01921532655459E+0003 6.02386978489377E+0003 6.02852689410621E+0003 + 6.03318665518478E+0003 6.03784906912260E+0003 6.04251413691293E+0003 6.04718185954921E+0003 6.05185223802507E+0003 + 6.05652527333431E+0003 6.06120096647098E+0003 6.06587931842920E+0003 6.07056033020341E+0003 6.07524400278809E+0003 + 6.07993033717807E+0003 6.08461933436817E+0003 6.08931099535356E+0003 6.09400532112952E+0003 6.09870231269147E+0003 + 6.10340197103516E+0003 6.10810429715633E+0003 6.11280929205108E+0003 6.11751695671558E+0003 6.12222729214626E+0003 + 6.12694029933964E+0003 6.13165597929251E+0003 6.13637433300185E+0003 6.14109536146470E+0003 6.14581906567847E+0003 + 6.15054544664061E+0003 6.15527450534880E+0003 6.16000624280090E+0003 6.16474065999496E+0003 6.16947775792921E+0003 + 6.17421753760208E+0003 6.17896000001216E+0003 6.18370514615825E+0003 6.18845297703928E+0003 6.19320349365445E+0003 + 6.19795669700307E+0003 6.20271258808463E+0003 6.20747116789893E+0003 6.21223243744575E+0003 6.21699639772519E+0003 + 6.22176304973755E+0003 6.22653239448323E+0003 6.23130443296286E+0003 6.23607916617728E+0003 6.24085659512741E+0003 + 6.24563672081449E+0003 6.25041954423986E+0003 6.25520506640506E+0003 6.25999328831182E+0003 6.26478421096203E+0003 + 6.26957783535782E+0003 6.27437416250147E+0003 6.27917319339539E+0003 6.28397492904229E+0003 6.28877937044499E+0003 + 6.29358651860643E+0003 6.29839637452991E+0003 6.30320893921878E+0003 6.30802421367660E+0003 6.31284219890709E+0003 + 6.31766289591425E+0003 6.32248630570214E+0003 6.32731242927509E+0003 6.33214126763758E+0003 6.33697282179430E+0003 + 6.34180709275007E+0003 6.34664408150996E+0003 6.35148378907915E+0003 6.35632621646310E+0003 6.36117136466739E+0003 + 6.36601923469776E+0003 6.37086982756018E+0003 6.37572314426083E+0003 6.38057918580600E+0003 6.38543795320220E+0003 + 6.39029944745613E+0003 6.39516366957467E+0003 6.40003062056488E+0003 6.40490030143400E+0003 6.40977271318949E+0003 + 6.41464785683894E+0003 6.41952573339014E+0003 6.42440634385108E+0003 6.42928968922995E+0003 6.43417577053505E+0003 + 6.43906458877497E+0003 6.44395614495836E+0003 6.44885044009420E+0003 6.45374747519153E+0003 6.45864725125961E+0003 + 6.46354976930791E+0003 6.46845503034607E+0003 6.47336303538393E+0003 6.47827378543146E+0003 6.48318728149886E+0003 + 6.48810352459652E+0003 6.49302251573496E+0003 6.49794425592494E+0003 6.50286874617744E+0003 6.50779598750349E+0003 + 6.51272598091443E+0003 6.51765872742170E+0003 6.52259422803699E+0003 6.52753248377216E+0003 6.53247349563918E+0003 + 6.53741726465031E+0003 6.54236379181793E+0003 6.54731307815462E+0003 6.55226512467320E+0003 6.55721993238652E+0003 + 6.56217750230779E+0003 6.56713783545030E+0003 6.57210093282754E+0003 6.57706679545321E+0003 6.58203542434117E+0003 + 6.58700682050548E+0003 6.59198098496039E+0003 6.59695791872029E+0003 6.60193762279979E+0003 6.60692009821370E+0003 + 6.61190534597698E+0003 6.61689336710479E+0003 6.62188416261245E+0003 6.62687773351549E+0003 6.63187408082964E+0003 + 6.63687320557078E+0003 6.64187510875500E+0003 6.64687979139852E+0003 6.65188725451783E+0003 6.65689749912954E+0003 + 6.66191052625047E+0003 6.66692633689760E+0003 6.67194493208808E+0003 6.67696631283934E+0003 6.68199048016893E+0003 + 6.68701743509450E+0003 6.69204717863405E+0003 6.69707971180562E+0003 6.70211503562753E+0003 6.70715315111823E+0003 + 6.71219405929639E+0003 6.71723776118083E+0003 6.72228425779057E+0003 6.72733355014483E+0003 6.73238563926297E+0003 + 6.73744052616457E+0003 6.74249821186940E+0003 6.74755869739740E+0003 6.75262198376868E+0003 6.75768807200354E+0003 + 6.76275696312248E+0003 6.76782865814619E+0003 6.77290315809549E+0003 6.77798046399147E+0003 6.78306057685534E+0003 + 6.78814349770849E+0003 6.79322922757253E+0003 6.79831776746927E+0003 6.80340911842062E+0003 6.80850328144876E+0003 + 6.81360025757599E+0003 6.81870004782488E+0003 6.82380265321808E+0003 6.82890807477848E+0003 6.83401631352915E+0003 + 6.83912737049337E+0003 6.84424124669451E+0003 6.84935794315625E+0003 6.85447746090237E+0003 6.85959980095686E+0003 + 6.86472496434387E+0003 6.86985295208778E+0003 6.87498376521312E+0003 6.88011740474463E+0003 6.88525387170716E+0003 + 6.89039316712585E+0003 6.89553529202598E+0003 6.90068024743296E+0003 6.90582803437251E+0003 6.91097865387036E+0003 + 6.91613210695259E+0003 6.92128839464535E+0003 6.92644751797506E+0003 6.93160947796826E+0003 6.93677427565170E+0003 + 6.94194191205229E+0003 6.94711238819716E+0003 6.95228570511364E+0003 6.95746186382916E+0003 6.96264086537139E+0003 + 6.96782271076822E+0003 6.97300740104764E+0003 6.97819493723789E+0003 6.98338532036738E+0003 6.98857855146464E+0003 + 6.99377463155851E+0003 6.99897356167795E+0003 7.00417534285202E+0003 7.00937997611008E+0003 7.01458746248165E+0003 + 7.01979780299641E+0003 7.02501099868424E+0003 7.03022705057518E+0003 7.03544595969947E+0003 7.04066772708757E+0003 + 7.04589235377005E+0003 7.05111984077770E+0003 7.05635018914152E+0003 7.06158339989267E+0003 7.06681947406247E+0003 + 7.07205841268248E+0003 7.07730021678441E+0003 7.08254488740014E+0003 7.08779242556177E+0003 7.09304283230151E+0003 + 7.09829610865189E+0003 7.10355225564548E+0003 7.10881127431511E+0003 7.11407316569382E+0003 7.11933793081474E+0003 + 7.12460557071128E+0003 7.12987608641695E+0003 7.13514947896553E+0003 7.14042574939091E+0003 7.14570489872723E+0003 + 7.15098692800872E+0003 7.15627183826989E+0003 7.16155963054539E+0003 7.16685030587007E+0003 7.17214386527897E+0003 + 7.17744030980724E+0003 7.18273964049030E+0003 7.18804185836374E+0003 7.19334696446332E+0003 7.19865495982495E+0003 + 7.20396584548480E+0003 7.20927962247914E+0003 7.21459629184451E+0003 7.21991585461756E+0003 7.22523831183519E+0003 + 7.23056366453439E+0003 7.23589191375242E+0003 7.24122306052670E+0003 7.24655710589483E+0003 7.25189405089458E+0003 + 7.25723389656392E+0003 7.26257664394102E+0003 7.26792229406421E+0003 7.27327084797200E+0003 7.27862230670310E+0003 + 7.28397667129636E+0003 7.28933394279092E+0003 7.29469412222598E+0003 7.30005721064098E+0003 7.30542320907557E+0003 + 7.31079211856957E+0003 7.31616394016294E+0003 7.32153867489584E+0003 7.32691632380868E+0003 7.33229688794198E+0003 + 7.33768036833643E+0003 7.34306676603296E+0003 7.34845608207269E+0003 7.35384831749690E+0003 7.35924347334703E+0003 + 7.36464155066473E+0003 7.37004255049182E+0003 7.37544647387035E+0003 7.38085332184250E+0003 7.38626309545062E+0003 + 7.39167579573733E+0003 7.39709142374534E+0003 7.40250998051761E+0003 7.40793146709724E+0003 7.41335588452754E+0003 + 7.41878323385199E+0003 7.42421351611428E+0003 7.42964673235826E+0003 7.43508288362791E+0003 7.44052197096754E+0003 + 7.44596399542151E+0003 7.45140895803440E+0003 7.45685685985102E+0003 7.46230770191629E+0003 7.46776148527538E+0003 + 7.47321821097360E+0003 7.47867788005645E+0003 7.48414049356966E+0003 7.48960605255906E+0003 7.49507455807074E+0003 + 7.50054601115096E+0003 7.50602041284613E+0003 7.51149776420287E+0003 7.51697806626793E+0003 7.52246132008836E+0003 + 7.52794752671130E+0003 7.53343668718409E+0003 7.53892880255428E+0003 7.54442387386957E+0003 7.54992190217788E+0003 + 7.55542288852728E+0003 7.56092683396602E+0003 7.56643373954260E+0003 7.57194360630561E+0003 7.57745643530390E+0003 + 7.58297222758649E+0003 7.58849098420251E+0003 7.59401270620141E+0003 7.59953739463269E+0003 7.60506505054611E+0003 + 7.61059567499158E+0003 7.61612926901922E+0003 7.62166583367935E+0003 7.62720537002239E+0003 7.63274787909904E+0003 + 7.63829336196014E+0003 7.64384181965671E+0003 7.64939325323993E+0003 7.65494766376127E+0003 7.66050505227226E+0003 + 7.66606541982468E+0003 7.67162876747048E+0003 7.67719509626177E+0003 7.68276440725087E+0003 7.68833670149032E+0003 + 7.69391198003278E+0003 7.69949024393110E+0003 7.70507149423835E+0003 7.71065573200774E+0003 7.71624295829273E+0003 + 7.72183317414690E+0003 7.72742638062406E+0003 7.73302257877815E+0003 7.73862176966334E+0003 7.74422395433398E+0003 + 7.74982913384457E+0003 7.75543730924984E+0003 7.76104848160465E+0003 7.76666265196413E+0003 7.77227982138350E+0003 + 7.77789999091820E+0003 7.78352316162387E+0003 7.78914933455635E+0003 7.79477851077158E+0003 7.80041069132574E+0003 + 7.80604587727526E+0003 7.81168406967662E+0003 7.81732526958657E+0003 7.82296947806205E+0003 7.82861669616013E+0003 + 7.83426692493810E+0003 7.83992016545344E+0003 7.84557641876377E+0003 7.85123568592696E+0003 7.85689796800102E+0003 + 7.86256326604412E+0003 7.86823158111471E+0003 7.87390291427131E+0003 7.87957726657268E+0003 7.88525463907777E+0003 + 7.89093503284572E+0003 7.89661844893577E+0003 7.90230488840750E+0003 7.90799435232054E+0003 7.91368684173473E+0003 + 7.91938235771013E+0003 7.92508090130698E+0003 7.93078247358570E+0003 7.93648707560684E+0003 7.94219470843118E+0003 + 7.94790537311973E+0003 7.95361907073361E+0003 7.95933580233413E+0003 7.96505556898285E+0003 7.97077837174143E+0003 + 7.97650421167174E+0003 7.98223308983591E+0003 7.98796500729612E+0003 7.99369996511484E+0003 7.99943796435469E+0003 + 8.00517900607844E+0003 8.01092309134913E+0003 8.01667022122987E+0003 8.02242039678407E+0003 8.02817361907521E+0003 + 8.03392988916706E+0003 8.03968920812350E+0003 8.04545157700863E+0003 8.05121699688672E+0003 8.05698546882221E+0003 + 8.06275699387977E+0003 8.06853157312420E+0003 8.07430920762054E+0003 8.08008989843396E+0003 8.08587364662984E+0003 + 8.09166045327374E+0003 8.09745031943142E+0003 8.10324324616879E+0003 8.10903923455196E+0003 8.11483828564726E+0003 + 8.12064040052114E+0003 8.12644558024027E+0003 8.13225382587148E+0003 8.13806513848186E+0003 8.14387951913859E+0003 + 8.14969696890906E+0003 8.15551748886086E+0003 8.16134108006179E+0003 8.16716774357976E+0003 8.17299748048291E+0003 + 8.17883029183961E+0003 8.18466617871828E+0003 8.19050514218771E+0003 8.19634718331671E+0003 8.20219230317432E+0003 + 8.20804050282983E+0003 8.21389178335264E+0003 8.21974614581239E+0003 8.22560359127878E+0003 8.23146412082188E+0003 + 8.23732773551182E+0003 8.24319443641893E+0003 8.24906422461376E+0003 8.25493710116699E+0003 8.26081306714956E+0003 + 8.26669212363254E+0003 8.27257427168716E+0003 8.27845951238491E+0003 8.28434784679738E+0003 8.29023927599640E+0003 + 8.29613380105399E+0003 8.30203142304232E+0003 8.30793214303376E+0003 8.31383596210086E+0003 8.31974288131636E+0003 + 8.32565290175317E+0003 8.33156602448437E+0003 8.33748225058330E+0003 8.34340158112341E+0003 8.34932401717835E+0003 + 8.35524955982198E+0003 8.36117821012827E+0003 8.36710996917148E+0003 8.37304483802596E+0003 8.37898281776634E+0003 + 8.38492390946735E+0003 8.39086811420388E+0003 8.39681543305113E+0003 8.40276586708440E+0003 8.40871941737918E+0003 + 8.41467608501113E+0003 8.42063587105612E+0003 8.42659877659020E+0003 8.43256480268961E+0003 8.43853395043075E+0003 + 8.44450622089021E+0003 8.45048161514482E+0003 8.45646013427150E+0003 8.46244177934740E+0003 8.46842655144990E+0003 + 8.47441445165644E+0003 8.48040548104481E+0003 8.48639964069286E+0003 8.49239693167865E+0003 8.49839735508042E+0003 + 8.50440091197663E+0003 8.51040760344590E+0003 8.51641743056707E+0003 8.52243039441906E+0003 8.52844649608110E+0003 + 8.53446573663253E+0003 8.54048811715288E+0003 8.54651363872188E+0003 8.55254230241946E+0003 8.55857410932571E+0003 + 8.56460906052090E+0003 8.57064715708549E+0003 8.57668840010010E+0003 8.58273279064559E+0003 8.58878032980299E+0003 + 8.59483101865349E+0003 8.60088485827846E+0003 8.60694184975943E+0003 8.61300199417818E+0003 8.61906529261667E+0003 + 8.62513174615699E+0003 8.63120135588147E+0003 8.63727412287252E+0003 8.64335004821290E+0003 8.64942913298540E+0003 + 8.65551137827308E+0003 8.66159678515920E+0003 8.66768535472709E+0003 8.67377708806039E+0003 8.67987198624286E+0003 + 8.68597005035845E+0003 8.69207128149130E+0003 8.69817568072576E+0003 8.70428324914631E+0003 8.71039398783764E+0003 + 8.71650789788466E+0003 8.72262498037242E+0003 8.72874523638612E+0003 8.73486866701127E+0003 8.74099527333341E+0003 + 8.74712505643837E+0003 8.75325801741212E+0003 8.75939415734082E+0003 8.76553347731085E+0003 8.77167597840869E+0003 + 8.77782166172111E+0003 8.78397052833498E+0003 8.79012257933739E+0003 8.79627781581563E+0003 8.80243623885709E+0003 + 8.80859784954946E+0003 8.81476264898054E+0003 8.82093063823837E+0003 8.82710181841110E+0003 8.83327619058707E+0003 + 8.83945375585493E+0003 8.84563451530333E+0003 8.85181847002124E+0003 8.85800562109778E+0003 8.86419596962223E+0003 + 8.87038951668402E+0003 8.87658626337285E+0003 8.88278621077855E+0003 8.88898935999119E+0003 8.89519571210098E+0003 + 8.90140526819820E+0003 8.90761802937355E+0003 8.91383399671776E+0003 8.92005317132179E+0003 8.92627555427674E+0003 + 8.93250114667391E+0003 8.93872994960485E+0003 8.94496196416127E+0003 8.95119719143496E+0003 8.95743563251798E+0003 + 8.96367728850260E+0003 8.96992216048123E+0003 8.97617024954649E+0003 8.98242155679113E+0003 8.98867608330814E+0003 + 8.99493383019064E+0003 9.00119479853203E+0003 9.00745898942578E+0003 9.01372640396564E+0003 9.01999704324550E+0003 + 9.02627090835937E+0003 9.03254800040160E+0003 9.03882832046653E+0003 9.04511186964890E+0003 9.05139864904345E+0003 + 9.05768865974517E+0003 9.06398190284929E+0003 9.07027837945109E+0003 9.07657809064620E+0003 9.08288103753033E+0003 + 9.08918722119935E+0003 9.09549664274938E+0003 9.10180930327676E+0003 9.10812520387788E+0003 9.11444434564939E+0003 + 9.12076672968818E+0003 9.12709235709123E+0003 9.13342122895576E+0003 9.13975334637916E+0003 9.14608871045899E+0003 + 9.15242732229295E+0003 9.15876918297907E+0003 9.16511429361542E+0003 9.17146265530029E+0003 9.17781426913223E+0003 + 9.18416913620988E+0003 9.19052725763209E+0003 9.19688863449790E+0003 9.20325326790653E+0003 9.20962115895742E+0003 + 9.21599230875017E+0003 9.22236671838450E+0003 9.22874438896043E+0003 9.23512532157810E+0003 9.24150951733776E+0003 + 9.24789697734005E+0003 9.25428770268556E+0003 9.26068169447522E+0003 9.26707895381008E+0003 9.27347948179136E+0003 + 9.27988327952060E+0003 9.28629034809931E+0003 9.29270068862935E+0003 9.29911430221266E+0003 9.30553118995143E+0003 + 9.31195135294799E+0003 9.31837479230495E+0003 9.32480150912495E+0003 9.33123150451096E+0003 9.33766477956598E+0003 + 9.34410133539338E+0003 9.35054117309660E+0003 9.35698429377917E+0003 9.36343069854505E+0003 9.36988038849819E+0003 + 9.37633336474279E+0003 9.38278962838325E+0003 9.38924918052406E+0003 9.39571202227005E+0003 9.40217815472609E+0003 + 9.40864757899732E+0003 9.41512029618899E+0003 9.42159630740665E+0003 9.42807561375591E+0003 9.43455821634266E+0003 + 9.44104411627293E+0003 9.44753331465287E+0003 9.45402581258895E+0003 9.46052161118775E+0003 9.46702071155598E+0003 + 9.47352311480067E+0003 9.48002882202889E+0003 9.48653783434798E+0003 9.49305015286546E+0003 9.49956577868902E+0003 + 9.50608471292649E+0003 9.51260695668600E+0003 9.51913251107570E+0003 9.52566137720407E+0003 9.53219355617973E+0003 + 9.53872904911140E+0003 9.54526785710811E+0003 9.55180998127902E+0003 9.55835542273344E+0003 9.56490418258098E+0003 + 9.57145626193126E+0003 9.57801166189420E+0003 9.58457038357989E+0003 9.59113242809859E+0003 9.59769779656074E+0003 + 9.60426649007697E+0003 9.61083850975813E+0003 9.61741385671514E+0003 9.62399253205930E+0003 9.63057453690186E+0003 + 9.63715987235446E+0003 9.64374853952877E+0003 9.65034053953673E+0003 9.65693587349047E+0003 9.66353454250224E+0003 + 9.67013654768451E+0003 9.67674189014995E+0003 9.68335057101141E+0003 9.68996259138190E+0003 9.69657795237462E+0003 + 9.70319665510296E+0003 9.70981870068054E+0003 9.71644409022103E+0003 9.72307282483844E+0003 9.72970490564690E+0003 + 9.73634033376069E+0003 9.74297911029425E+0003 9.74962123636238E+0003 9.75626671307982E+0003 9.76291554156173E+0003 + 9.76956772292327E+0003 9.77622325827988E+0003 9.78288214874716E+0003 9.78954439544084E+0003 9.79620999947694E+0003 + 9.80287896197161E+0003 9.80955128404117E+0003 9.81622696680215E+0003 9.82290601137123E+0003 9.82958841886523E+0003 + 9.83627419040140E+0003 9.84296332709683E+0003 9.84965583006904E+0003 9.85635170043560E+0003 9.86305093931439E+0003 + 9.86975354782323E+0003 9.87645952708056E+0003 9.88316887820448E+0003 9.88988160231369E+0003 9.89659770052691E+0003 + 9.90331717396295E+0003 9.91004002374096E+0003 9.91676625098020E+0003 9.92349585680020E+0003 9.93022884232044E+0003 + 9.93696520866099E+0003 9.94370495694166E+0003 9.95044808828278E+0003 9.95719460380462E+0003 9.96394450462775E+0003 + 9.97069779187307E+0003 9.97745446666135E+0003 9.98421453011376E+0003 9.99097798335165E+0003 9.99774482749641E+0003 + 1.00045150636697E+0004 1.00112886929935E+0004 1.00180657165898E+0004 1.00248461355807E+0004 1.00316299510888E+0004 + 1.00384171642366E+0004 1.00452077761468E+0004 1.00520017879424E+0004 1.00587992007466E+0004 1.00656000156826E+0004 + 1.00724042338741E+0004 1.00792118564446E+0004 1.00860228845182E+0004 1.00928373192187E+0004 1.00996551616704E+0004 + 1.01064764129979E+0004 1.01133010743256E+0004 1.01201291467785E+0004 1.01269606314814E+0004 1.01337955295595E+0004 + 1.01406338421383E+0004 1.01474755703432E+0004 1.01543207152998E+0004 1.01611692781343E+0004 1.01680212599725E+0004 + 1.01748766619408E+0004 1.01817354851657E+0004 1.01885977307737E+0004 1.01954633998917E+0004 1.02023324936468E+0004 + 1.02092050131659E+0004 1.02160809595767E+0004 1.02229603340065E+0004 1.02298431375832E+0004 1.02367293714347E+0004 + 1.02436190366890E+0004 1.02505121344745E+0004 1.02574086659197E+0004 1.02643086321531E+0004 1.02712120343037E+0004 + 1.02781188735004E+0004 1.02850291508726E+0004 1.02919428675494E+0004 1.02988600246607E+0004 1.03057806233361E+0004 + 1.03127046647055E+0004 1.03196321498991E+0004 1.03265630800473E+0004 1.03334974562804E+0004 1.03404352797292E+0004 + 1.03473765515246E+0004 1.03543212727976E+0004 1.03612694446794E+0004 1.03682210683015E+0004 1.03751761447954E+0004 + 1.03821346752930E+0004 1.03890966609262E+0004 1.03960621028271E+0004 1.04030310021282E+0004 1.04100033599619E+0004 + 1.04169791774609E+0004 1.04239584557582E+0004 1.04309411959867E+0004 1.04379273992799E+0004 1.04449170667710E+0004 + 1.04519101995937E+0004 1.04589067988818E+0004 1.04659068657694E+0004 1.04729104013906E+0004 1.04799174068798E+0004 + 1.04869278833715E+0004 1.04939418320004E+0004 1.05009592539015E+0004 1.05079801502098E+0004 1.05150045220606E+0004 + 1.05220323705895E+0004 1.05290636969320E+0004 1.05360985022239E+0004 1.05431367876014E+0004 1.05501785542006E+0004 + 1.05572238031579E+0004 1.05642725356098E+0004 1.05713247526931E+0004 1.05783804555448E+0004 1.05854396453019E+0004 + 1.05925023231018E+0004 1.05995684900819E+0004 1.06066381473800E+0004 1.06137112961339E+0004 1.06207879374816E+0004 + 1.06278680725613E+0004 1.06349517025115E+0004 1.06420388284708E+0004 1.06491294515779E+0004 1.06562235729717E+0004 + 1.06633211937916E+0004 1.06704223151766E+0004 1.06775269382665E+0004 1.06846350642008E+0004 1.06917466941195E+0004 + 1.06988618291626E+0004 1.07059804704703E+0004 1.07131026191832E+0004 1.07202282764418E+0004 1.07273574433868E+0004 + 1.07344901211594E+0004 1.07416263109007E+0004 1.07487660137519E+0004 1.07559092308547E+0004 1.07630559633508E+0004 + 1.07702062123820E+0004 1.07773599790906E+0004 1.07845172646186E+0004 1.07916780701087E+0004 1.07988423967034E+0004 + 1.08060102455455E+0004 1.08131816177781E+0004 1.08203565145444E+0004 1.08275349369876E+0004 1.08347168862515E+0004 + 1.08419023634797E+0004 1.08490913698161E+0004 1.08562839064050E+0004 1.08634799743904E+0004 1.08706795749171E+0004 + 1.08778827091296E+0004 1.08850893781726E+0004 1.08922995831914E+0004 1.08995133253311E+0004 1.09067306057371E+0004 + 1.09139514255549E+0004 1.09211757859305E+0004 1.09284036880096E+0004 1.09356351329385E+0004 1.09428701218634E+0004 + 1.09501086559308E+0004 1.09573507362876E+0004 1.09645963640804E+0004 1.09718455404563E+0004 1.09790982665628E+0004 + 1.09863545435470E+0004 1.09936143725567E+0004 1.10008777547396E+0004 1.10081446912437E+0004 1.10154151832171E+0004 + 1.10226892318083E+0004 1.10299668381657E+0004 1.10372480034380E+0004 1.10445327287742E+0004 1.10518210153233E+0004 + 1.10591128642345E+0004 1.10664082766574E+0004 1.10737072537415E+0004 1.10810097966367E+0004 1.10883159064929E+0004 + 1.10956255844604E+0004 1.11029388316895E+0004 1.11102556493307E+0004 1.11175760385349E+0004 1.11249000004528E+0004 + 1.11322275362357E+0004 1.11395586470348E+0004 1.11468933340015E+0004 1.11542315982876E+0004 1.11615734410448E+0004 + 1.11689188634252E+0004 1.11762678665809E+0004 1.11836204516645E+0004 1.11909766198284E+0004 1.11983363722254E+0004 + 1.12056997100085E+0004 1.12130666343307E+0004 1.12204371463454E+0004 1.12278112472061E+0004 1.12351889380664E+0004 + 1.12425702200802E+0004 1.12499550944017E+0004 1.12573435621848E+0004 1.12647356245842E+0004 1.12721312827544E+0004 + 1.12795305378502E+0004 1.12869333910264E+0004 1.12943398434385E+0004 1.13017498962415E+0004 1.13091635505910E+0004 + 1.13165808076428E+0004 1.13240016685527E+0004 1.13314261344769E+0004 1.13388542065715E+0004 1.13462858859929E+0004 + 1.13537211738978E+0004 1.13611600714431E+0004 1.13686025797856E+0004 1.13760487000827E+0004 1.13834984334915E+0004 + 1.13909517811697E+0004 1.13984087442750E+0004 1.14058693239653E+0004 1.14133335213987E+0004 1.14208013377334E+0004 + 1.14282727741280E+0004 1.14357478317410E+0004 1.14432265117314E+0004 1.14507088152580E+0004 1.14581947434802E+0004 + 1.14656842975572E+0004 1.14731774786487E+0004 1.14806742879144E+0004 1.14881747265142E+0004 1.14956787956082E+0004 + 1.15031864963569E+0004 1.15106978299205E+0004 1.15182127974598E+0004 1.15257314001357E+0004 1.15332536391091E+0004 + 1.15407795155413E+0004 1.15483090305938E+0004 1.15558421854280E+0004 1.15633789812058E+0004 1.15709194190891E+0004 + 1.15784635002401E+0004 1.15860112258210E+0004 1.15935625969945E+0004 1.16011176149231E+0004 1.16086762807697E+0004 + 1.16162385956975E+0004 1.16238045608697E+0004 1.16313741774495E+0004 1.16389474466008E+0004 1.16465243694874E+0004 + 1.16541049472730E+0004 1.16616891811220E+0004 1.16692770721986E+0004 1.16768686216675E+0004 1.16844638306933E+0004 + 1.16920627004409E+0004 1.16996652320754E+0004 1.17072714267621E+0004 1.17148812856664E+0004 1.17224948099539E+0004 + 1.17301120007905E+0004 1.17377328593422E+0004 1.17453573867751E+0004 1.17529855842557E+0004 1.17606174529504E+0004 + 1.17682529940261E+0004 1.17758922086496E+0004 1.17835350979881E+0004 1.17911816632088E+0004 1.17988319054792E+0004 + 1.18064858259670E+0004 1.18141434258400E+0004 1.18218047062663E+0004 1.18294696684140E+0004 1.18371383134515E+0004 + 1.18448106425475E+0004 1.18524866568706E+0004 1.18601663575898E+0004 1.18678497458743E+0004 1.18755368228934E+0004 + 1.18832275898166E+0004 1.18909220478135E+0004 1.18986201980540E+0004 1.19063220417082E+0004 1.19140275799463E+0004 + 1.19217368139387E+0004 1.19294497448559E+0004 1.19371663738690E+0004 1.19448867021487E+0004 1.19526107308662E+0004 + 1.19603384611928E+0004 1.19680698943001E+0004 1.19758050313599E+0004 1.19835438735439E+0004 1.19912864220243E+0004 + 1.19990326779732E+0004 1.20067826425632E+0004 1.20145363169669E+0004 1.20222937023570E+0004 1.20300547999067E+0004 + 1.20378196107889E+0004 1.20455881361772E+0004 1.20533603772450E+0004 1.20611363351661E+0004 1.20689160111144E+0004 + 1.20766994062640E+0004 1.20844865217892E+0004 1.20922773588644E+0004 1.21000719186643E+0004 1.21078702023637E+0004 + 1.21156722111376E+0004 1.21234779461612E+0004 1.21312874086101E+0004 1.21391005996595E+0004 1.21469175204854E+0004 + 1.21547381722637E+0004 1.21625625561704E+0004 1.21703906733820E+0004 1.21782225250748E+0004 1.21860581124257E+0004 + 1.21938974366113E+0004 1.22017404988087E+0004 1.22095873001953E+0004 1.22174378419482E+0004 1.22252921252453E+0004 + 1.22331501512643E+0004 1.22410119211830E+0004 1.22488774361797E+0004 1.22567466974327E+0004 1.22646197061205E+0004 + 1.22724964634217E+0004 1.22803769705153E+0004 1.22882612285804E+0004 1.22961492387961E+0004 1.23040410023419E+0004 + 1.23119365203975E+0004 1.23198357941426E+0004 1.23277388247572E+0004 1.23356456134214E+0004 1.23435561613157E+0004 + 1.23514704696206E+0004 1.23593885395167E+0004 1.23673103721849E+0004 1.23752359688066E+0004 1.23831653305626E+0004 + 1.23910984586347E+0004 1.23990353542044E+0004 1.24069760184536E+0004 1.24149204525643E+0004 1.24228686577185E+0004 + 1.24308206350988E+0004 1.24387763858877E+0004 1.24467359112679E+0004 1.24546992124224E+0004 1.24626662905341E+0004 + 1.24706371467867E+0004 1.24786117823633E+0004 1.24865901984477E+0004 1.24945723962237E+0004 1.25025583768755E+0004 + 1.25105481415870E+0004 1.25185416915430E+0004 1.25265390279277E+0004 1.25345401519261E+0004 1.25425450647232E+0004 + 1.25505537675038E+0004 1.25585662614536E+0004 1.25665825477578E+0004 1.25746026276023E+0004 1.25826265021729E+0004 + 1.25906541726556E+0004 1.25986856402367E+0004 1.26067209061026E+0004 1.26147599714400E+0004 1.26228028374355E+0004 + 1.26308495052762E+0004 1.26388999761492E+0004 1.26469542512419E+0004 1.26550123317418E+0004 1.26630742188366E+0004 + 1.26711399137142E+0004 1.26792094175627E+0004 1.26872827315703E+0004 1.26953598569255E+0004 1.27034407948170E+0004 + 1.27115255464333E+0004 1.27196141129638E+0004 1.27277064955975E+0004 1.27358026955237E+0004 1.27439027139321E+0004 + 1.27520065520122E+0004 1.27601142109542E+0004 1.27682256919480E+0004 1.27763409961840E+0004 1.27844601248526E+0004 + 1.27925830791444E+0004 1.28007098602504E+0004 1.28088404693614E+0004 1.28169749076689E+0004 1.28251131763641E+0004 + 1.28332552766385E+0004 1.28414012096840E+0004 1.28495509766926E+0004 1.28577045788562E+0004 1.28658620173672E+0004 + 1.28740232934182E+0004 1.28821884082017E+0004 1.28903573629107E+0004 1.28985301587382E+0004 1.29067067968774E+0004 + 1.29148872785218E+0004 1.29230716048649E+0004 1.29312597771004E+0004 1.29394517964226E+0004 1.29476476640252E+0004 + 1.29558473811029E+0004 1.29640509488500E+0004 1.29722583684613E+0004 1.29804696411317E+0004 1.29886847680561E+0004 + 1.29969037504299E+0004 1.30051265894486E+0004 1.30133532863076E+0004 1.30215838422029E+0004 1.30298182583305E+0004 + 1.30380565358864E+0004 1.30462986760670E+0004 1.30545446800690E+0004 1.30627945490890E+0004 1.30710482843238E+0004 + 1.30793058869707E+0004 1.30875673582268E+0004 1.30958326992898E+0004 1.31041019113570E+0004 1.31123749956265E+0004 + 1.31206519532962E+0004 1.31289327855643E+0004 1.31372174936293E+0004 1.31455060786895E+0004 1.31537985419439E+0004 + 1.31620948845913E+0004 1.31703951078309E+0004 1.31786992128619E+0004 1.31870072008839E+0004 1.31953190730964E+0004 + 1.32036348306993E+0004 1.32119544748928E+0004 1.32202780068770E+0004 1.32286054278522E+0004 1.32369367390192E+0004 + 1.32452719415786E+0004 1.32536110367314E+0004 1.32619540256788E+0004 1.32703009096220E+0004 1.32786516897626E+0004 + 1.32870063673024E+0004 1.32953649434430E+0004 1.33037274193866E+0004 1.33120937963356E+0004 1.33204640754921E+0004 + 1.33288382580589E+0004 1.33372163452388E+0004 1.33455983382348E+0004 1.33539842382499E+0004 1.33623740464876E+0004 + 1.33707677641515E+0004 1.33791653924451E+0004 1.33875669325724E+0004 1.33959723857375E+0004 1.34043817531446E+0004 + 1.34127950359982E+0004 1.34212122355030E+0004 1.34296333528636E+0004 1.34380583892853E+0004 1.34464873459731E+0004 + 1.34549202241324E+0004 1.34633570249687E+0004 1.34717977496878E+0004 1.34802423994957E+0004 1.34886909755983E+0004 + 1.34971434792020E+0004 1.35055999115134E+0004 1.35140602737390E+0004 1.35225245670856E+0004 1.35309927927604E+0004 + 1.35394649519704E+0004 1.35479410459231E+0004 1.35564210758262E+0004 1.35649050428873E+0004 1.35733929483144E+0004 + 1.35818847933155E+0004 1.35903805790991E+0004 1.35988803068737E+0004 1.36073839778478E+0004 1.36158915932304E+0004 + 1.36244031542305E+0004 1.36329186620573E+0004 1.36414381179203E+0004 1.36499615230292E+0004 1.36584888785935E+0004 + 1.36670201858233E+0004 1.36755554459288E+0004 1.36840946601204E+0004 1.36926378296084E+0004 1.37011849556037E+0004 + 1.37097360393171E+0004 1.37182910819596E+0004 1.37268500847426E+0004 1.37354130488775E+0004 1.37439799755759E+0004 + 1.37525508660497E+0004 1.37611257215107E+0004 1.37697045431712E+0004 1.37782873322435E+0004 1.37868740899403E+0004 + 1.37954648174741E+0004 1.38040595160580E+0004 1.38126581869050E+0004 1.38212608312284E+0004 1.38298674502417E+0004 + 1.38384780451584E+0004 1.38470926171925E+0004 1.38557111675579E+0004 1.38643336974690E+0004 1.38729602081399E+0004 + 1.38815907007854E+0004 1.38902251766200E+0004 1.38988636368589E+0004 1.39075060827172E+0004 1.39161525154100E+0004 + 1.39248029361529E+0004 1.39334573461616E+0004 1.39421157466519E+0004 1.39507781388399E+0004 1.39594445239417E+0004 + 1.39681149031739E+0004 1.39767892777530E+0004 1.39854676488956E+0004 1.39941500178189E+0004 1.40028363857400E+0004 + 1.40115267538762E+0004 1.40202211234449E+0004 1.40289194956639E+0004 1.40376218717512E+0004 1.40463282529246E+0004 + 1.40550386404025E+0004 1.40637530354033E+0004 1.40724714391457E+0004 1.40811938528484E+0004 1.40899202777303E+0004 + 1.40986507150107E+0004 1.41073851659090E+0004 1.41161236316446E+0004 1.41248661134372E+0004 1.41336126125069E+0004 + 1.41423631300735E+0004 1.41511176673576E+0004 1.41598762255793E+0004 1.41686388059596E+0004 1.41774054097190E+0004 + 1.41861760380787E+0004 1.41949506922598E+0004 1.42037293734838E+0004 1.42125120829721E+0004 1.42212988219464E+0004 + 1.42300895916289E+0004 1.42388843932414E+0004 1.42476832280065E+0004 1.42564860971464E+0004 1.42652930018839E+0004 + 1.42741039434417E+0004 1.42829189230431E+0004 1.42917379419111E+0004 1.43005610012692E+0004 1.43093881023409E+0004 + 1.43182192463500E+0004 1.43270544345205E+0004 1.43358936680764E+0004 1.43447369482421E+0004 1.43535842762422E+0004 + 1.43624356533012E+0004 1.43712910806441E+0004 1.43801505594959E+0004 1.43890140910818E+0004 1.43978816766272E+0004 + 1.44067533173579E+0004 1.44156290144996E+0004 1.44245087692781E+0004 1.44333925829198E+0004 1.44422804566508E+0004 + 1.44511723916977E+0004 1.44600683892874E+0004 1.44689684506467E+0004 1.44778725770025E+0004 1.44867807695823E+0004 + 1.44956930296133E+0004 1.45046093583233E+0004 1.45135297569402E+0004 1.45224542266917E+0004 1.45313827688062E+0004 + 1.45403153845120E+0004 1.45492520750377E+0004 1.45581928416120E+0004 1.45671376854637E+0004 1.45760866078221E+0004 + 1.45850396099163E+0004 1.45939966929760E+0004 1.46029578582306E+0004 1.46119231069101E+0004 1.46208924402444E+0004 + 1.46298658594638E+0004 1.46388433657986E+0004 1.46478249604795E+0004 1.46568106447372E+0004 1.46658004198025E+0004 + 1.46747942869068E+0004 1.46837922472811E+0004 1.46927943021571E+0004 1.47018004527665E+0004 1.47108107003409E+0004 + 1.47198250461127E+0004 1.47288434913138E+0004 1.47378660371768E+0004 1.47468926849343E+0004 1.47559234358190E+0004 + 1.47649582910639E+0004 1.47739972519021E+0004 1.47830403195670E+0004 1.47920874952921E+0004 1.48011387803110E+0004 + 1.48101941758577E+0004 1.48192536831663E+0004 1.48283173034710E+0004 1.48373850380061E+0004 1.48464568880064E+0004 + 1.48555328547067E+0004 1.48646129393418E+0004 1.48736971431470E+0004 1.48827854673578E+0004 1.48918779132094E+0004 + 1.49009744819379E+0004 1.49100751747788E+0004 1.49191799929685E+0004 1.49282889377432E+0004 1.49374020103393E+0004 + 1.49465192119935E+0004 1.49556405439426E+0004 1.49647660074236E+0004 1.49738956036738E+0004 1.49830293339304E+0004 + 1.49921671994310E+0004 1.50013092014135E+0004 1.50104553411157E+0004 1.50196056197757E+0004 1.50287600386318E+0004 + 1.50379185989225E+0004 1.50470813018866E+0004 1.50562481487628E+0004 1.50654191407901E+0004 1.50745942792078E+0004 + 1.50837735652553E+0004 1.50929570001722E+0004 1.51021445851981E+0004 1.51113363215732E+0004 1.51205322105375E+0004 + 1.51297322533314E+0004 1.51389364511953E+0004 1.51481448053699E+0004 1.51573573170962E+0004 1.51665739876151E+0004 + 1.51757948181680E+0004 1.51850198099961E+0004 1.51942489643412E+0004 1.52034822824451E+0004 1.52127197655497E+0004 + 1.52219614148971E+0004 1.52312072317298E+0004 1.52404572172902E+0004 1.52497113728211E+0004 1.52589696995653E+0004 + 1.52682321987660E+0004 1.52774988716664E+0004 1.52867697195099E+0004 1.52960447435402E+0004 1.53053239450011E+0004 + 1.53146073251366E+0004 1.53238948851909E+0004 1.53331866264083E+0004 1.53424825500335E+0004 1.53517826573111E+0004 + 1.53610869494860E+0004 1.53703954278034E+0004 1.53797080935085E+0004 1.53890249478470E+0004 1.53983459920642E+0004 + 1.54076712274062E+0004 1.54170006551189E+0004 1.54263342764485E+0004 1.54356720926415E+0004 1.54450141049445E+0004 + 1.54543603146041E+0004 1.54637107228673E+0004 1.54730653309813E+0004 1.54824241401933E+0004 1.54917871517508E+0004 + 1.55011543669017E+0004 1.55105257868936E+0004 1.55199014129746E+0004 1.55292812463931E+0004 1.55386652883973E+0004 + 1.55480535402359E+0004 1.55574460031576E+0004 1.55668426784116E+0004 1.55762435672468E+0004 1.55856486709126E+0004 + 1.55950579906586E+0004 1.56044715277344E+0004 1.56138892833900E+0004 1.56233112588753E+0004 1.56327374554408E+0004 + 1.56421678743367E+0004 1.56516025168137E+0004 1.56610413841227E+0004 1.56704844775146E+0004 1.56799317982406E+0004 + 1.56893833475520E+0004 1.56988391267004E+0004 1.57082991369376E+0004 1.57177633795153E+0004 1.57272318556858E+0004 + 1.57367045667014E+0004 1.57461815138143E+0004 1.57556626982774E+0004 1.57651481213434E+0004 1.57746377842653E+0004 + 1.57841316882965E+0004 1.57936298346901E+0004 1.58031322246999E+0004 1.58126388595795E+0004 1.58221497405829E+0004 + 1.58316648689642E+0004 1.58411842459777E+0004 1.58507078728779E+0004 1.58602357509194E+0004 1.58697678813572E+0004 + 1.58793042654462E+0004 1.58888449044417E+0004 1.58983897995991E+0004 1.59079389521739E+0004 1.59174923634220E+0004 + 1.59270500345992E+0004 1.59366119669619E+0004 1.59461781617662E+0004 1.59557486202686E+0004 1.59653233437259E+0004 + 1.59749023333950E+0004 1.59844855905328E+0004 1.59940731163968E+0004 1.60036649122442E+0004 1.60132609793327E+0004 + 1.60228613189201E+0004 1.60324659322643E+0004 1.60420748206237E+0004 1.60516879852563E+0004 1.60613054274209E+0004 + 1.60709271483762E+0004 1.60805531493809E+0004 1.60901834316943E+0004 1.60998179965756E+0004 1.61094568452842E+0004 + 1.61190999790797E+0004 1.61287473992221E+0004 1.61383991069713E+0004 1.61480551035875E+0004 1.61577153903310E+0004 + 1.61673799684625E+0004 1.61770488392426E+0004 1.61867220039323E+0004 1.61963994637927E+0004 1.62060812200851E+0004 + 1.62157672740709E+0004 1.62254576270119E+0004 1.62351522801698E+0004 1.62448512348067E+0004 1.62545544921848E+0004 + 1.62642620535665E+0004 1.62739739202144E+0004 1.62836900933913E+0004 1.62934105743600E+0004 1.63031353643837E+0004 + 1.63128644647258E+0004 1.63225978766498E+0004 1.63323356014192E+0004 1.63420776402981E+0004 1.63518239945504E+0004 + 1.63615746654403E+0004 1.63713296542324E+0004 1.63810889621911E+0004 1.63908525905813E+0004 1.64006205406680E+0004 + 1.64103928137163E+0004 1.64201694109916E+0004 1.64299503337593E+0004 1.64397355832853E+0004 1.64495251608353E+0004 + 1.64593190676754E+0004 1.64691173050719E+0004 1.64789198742914E+0004 1.64887267766003E+0004 1.64985380132654E+0004 + 1.65083535855539E+0004 1.65181734947327E+0004 1.65279977420695E+0004 1.65378263288316E+0004 1.65476592562868E+0004 + 1.65574965257030E+0004 1.65673381383484E+0004 1.65771840954910E+0004 1.65870343983996E+0004 1.65968890483428E+0004 + 1.66067480465893E+0004 1.66166113944081E+0004 1.66264790930685E+0004 1.66363511438399E+0004 1.66462275479917E+0004 + 1.66561083067938E+0004 1.66659934215162E+0004 1.66758828934290E+0004 1.66857767238023E+0004 1.66956749139068E+0004 + 1.67055774650131E+0004 1.67154843783921E+0004 1.67253956553148E+0004 1.67353112970524E+0004 1.67452313048764E+0004 + 1.67551556800583E+0004 1.67650844238699E+0004 1.67750175375832E+0004 1.67849550224704E+0004 1.67948968798036E+0004 + 1.68048431108556E+0004 1.68147937168989E+0004 1.68247486992064E+0004 1.68347080590512E+0004 1.68446717977067E+0004 + 1.68546399164461E+0004 1.68646124165431E+0004 1.68745892992716E+0004 1.68845705659054E+0004 1.68945562177188E+0004 + 1.69045462559861E+0004 1.69145406819819E+0004 1.69245394969809E+0004 1.69345427022579E+0004 1.69445502990882E+0004 + 1.69545622887468E+0004 1.69645786725093E+0004 1.69745994516515E+0004 1.69846246274490E+0004 1.69946542011778E+0004 + 1.70046881741142E+0004 1.70147265475345E+0004 1.70247693227155E+0004 1.70348165009336E+0004 1.70448680834658E+0004 + 1.70549240715894E+0004 1.70649844665816E+0004 1.70750492697198E+0004 1.70851184822818E+0004 1.70951921055454E+0004 + 1.71052701407885E+0004 1.71153525892895E+0004 1.71254394523267E+0004 1.71355307311787E+0004 1.71456264271244E+0004 + 1.71557265414425E+0004 1.71658310754123E+0004 1.71759400303132E+0004 1.71860534074244E+0004 1.71961712080259E+0004 + 1.72062934333974E+0004 1.72164200848191E+0004 1.72265511635711E+0004 1.72366866709338E+0004 1.72468266081879E+0004 + 1.72569709766142E+0004 1.72671197774937E+0004 1.72772730121074E+0004 1.72874306817368E+0004 1.72975927876634E+0004 + 1.73077593311689E+0004 1.73179303135351E+0004 1.73281057360443E+0004 1.73382855999785E+0004 1.73484699066203E+0004 + 1.73586586572523E+0004 1.73688518531573E+0004 1.73790494956184E+0004 1.73892515859186E+0004 1.73994581253415E+0004 + 1.74096691151704E+0004 1.74198845566892E+0004 1.74301044511817E+0004 1.74403287999322E+0004 1.74505576042248E+0004 + 1.74607908653440E+0004 1.74710285845746E+0004 1.74812707632012E+0004 1.74915174025090E+0004 1.75017685037832E+0004 + 1.75120240683090E+0004 1.75222840973723E+0004 1.75325485922586E+0004 1.75428175542539E+0004 1.75530909846443E+0004 + 1.75633688847163E+0004 1.75736512557561E+0004 1.75839380990506E+0004 1.75942294158866E+0004 1.76045252075512E+0004 + 1.76148254753315E+0004 1.76251302205150E+0004 1.76354394443892E+0004 1.76457531482420E+0004 1.76560713333614E+0004 + 1.76663940010354E+0004 1.76767211525525E+0004 1.76870527892011E+0004 1.76973889122698E+0004 1.77077295230477E+0004 + 1.77180746228239E+0004 1.77284242128874E+0004 1.77387782945278E+0004 1.77491368690347E+0004 1.77594999376980E+0004 + 1.77698675018075E+0004 1.77802395626535E+0004 1.77906161215263E+0004 1.78009971797165E+0004 1.78113827385147E+0004 + 1.78217727992120E+0004 1.78321673630994E+0004 1.78425664314681E+0004 1.78529700056097E+0004 1.78633780868157E+0004 + 1.78737906763781E+0004 1.78842077755888E+0004 1.78946293857399E+0004 1.79050555081240E+0004 1.79154861440336E+0004 + 1.79259212947613E+0004 1.79363609616001E+0004 1.79468051458433E+0004 1.79572538487840E+0004 1.79677070717158E+0004 + 1.79781648159323E+0004 1.79886270827273E+0004 1.79990938733949E+0004 1.80095651892294E+0004 1.80200410315251E+0004 + 1.80305214015766E+0004 1.80410063006787E+0004 1.80514957301263E+0004 1.80619896912146E+0004 1.80724881852389E+0004 + 1.80829912134948E+0004 1.80934987772778E+0004 1.81040108778839E+0004 1.81145275166092E+0004 1.81250486947499E+0004 + 1.81355744136024E+0004 1.81461046744633E+0004 1.81566394786294E+0004 1.81671788273977E+0004 1.81777227220654E+0004 + 1.81882711639299E+0004 1.81988241542885E+0004 1.82093816944392E+0004 1.82199437856796E+0004 1.82305104293081E+0004 + 1.82410816266227E+0004 1.82516573789220E+0004 1.82622376875046E+0004 1.82728225536693E+0004 1.82834119787152E+0004 + 1.82940059639414E+0004 1.83046045106472E+0004 1.83152076201322E+0004 1.83258152936963E+0004 1.83364275326393E+0004 + 1.83470443382612E+0004 1.83576657118625E+0004 1.83682916547435E+0004 1.83789221682049E+0004 1.83895572535477E+0004 + 1.84001969120727E+0004 1.84108411450812E+0004 1.84214899538746E+0004 1.84321433397545E+0004 1.84428013040227E+0004 + 1.84534638479811E+0004 1.84641309729317E+0004 1.84748026801771E+0004 1.84854789710195E+0004 1.84961598467618E+0004 + 1.85068453087068E+0004 1.85175353581575E+0004 1.85282299964172E+0004 1.85389292247891E+0004 1.85496330445772E+0004 + 1.85603414570850E+0004 1.85710544636166E+0004 1.85817720654761E+0004 1.85924942639678E+0004 1.86032210603963E+0004 + 1.86139524560662E+0004 1.86246884522825E+0004 1.86354290503502E+0004 1.86461742515746E+0004 1.86569240572612E+0004 + 1.86676784687154E+0004 1.86784374872433E+0004 1.86892011141507E+0004 1.86999693507439E+0004 1.87107421983292E+0004 + 1.87215196582130E+0004 1.87323017317023E+0004 1.87430884201038E+0004 1.87538797247248E+0004 1.87646756468724E+0004 + 1.87754761878542E+0004 1.87862813489776E+0004 1.87970911315508E+0004 1.88079055368816E+0004 1.88187245662781E+0004 + 1.88295482210490E+0004 1.88403765025025E+0004 1.88512094119477E+0004 1.88620469506933E+0004 1.88728891200485E+0004 + 1.88837359213226E+0004 1.88945873558251E+0004 1.89054434248657E+0004 1.89163041297542E+0004 1.89271694718006E+0004 + 1.89380394523152E+0004 1.89489140726085E+0004 1.89597933339909E+0004 1.89706772377733E+0004 1.89815657852665E+0004 + 1.89924589777819E+0004 1.90033568166307E+0004 1.90142593031243E+0004 1.90251664385746E+0004 1.90360782242933E+0004 + 1.90469946615926E+0004 1.90579157517847E+0004 1.90688414961821E+0004 1.90797718960972E+0004 1.90907069528430E+0004 + 1.91016466677325E+0004 1.91125910420787E+0004 1.91235400771952E+0004 1.91344937743952E+0004 1.91454521349927E+0004 + 1.91564151603015E+0004 1.91673828516357E+0004 1.91783552103095E+0004 1.91893322376376E+0004 1.92003139349344E+0004 + 1.92113003035147E+0004 1.92222913446935E+0004 1.92332870597863E+0004 1.92442874501082E+0004 1.92552925169748E+0004 + 1.92663022617019E+0004 1.92773166856053E+0004 1.92883357900013E+0004 1.92993595762060E+0004 1.93103880455360E+0004 + 1.93214211993080E+0004 1.93324590388388E+0004 1.93435015654453E+0004 1.93545487804450E+0004 1.93656006851550E+0004 + 1.93766572808931E+0004 1.93877185689769E+0004 1.93987845507245E+0004 1.94098552274540E+0004 1.94209306004836E+0004 + 1.94320106711320E+0004 1.94430954407176E+0004 1.94541849105596E+0004 1.94652790819768E+0004 1.94763779562886E+0004 + 1.94874815348144E+0004 1.94985898188737E+0004 1.95097028097863E+0004 1.95208205088724E+0004 1.95319429174519E+0004 + 1.95430700368452E+0004 1.95542018683729E+0004 1.95653384133557E+0004 1.95764796731144E+0004 1.95876256489703E+0004 + 1.95987763422443E+0004 1.96099317542581E+0004 1.96210918863334E+0004 1.96322567397917E+0004 1.96434263159554E+0004 + 1.96546006161464E+0004 1.96657796416870E+0004 1.96769633939000E+0004 1.96881518741081E+0004 1.96993450836341E+0004 + 1.97105430238011E+0004 1.97217456959324E+0004 1.97329531013516E+0004 1.97441652413821E+0004 1.97553821173480E+0004 + 1.97666037305732E+0004 1.97778300823818E+0004 1.97890611740985E+0004 1.98002970070477E+0004 1.98115375825540E+0004 + 1.98227829019424E+0004 1.98340329665383E+0004 1.98452877776667E+0004 1.98565473366532E+0004 1.98678116448235E+0004 + 1.98790807035035E+0004 1.98903545140191E+0004 1.99016330776966E+0004 1.99129163958625E+0004 1.99242044698433E+0004 + 1.99354973009658E+0004 1.99467948905570E+0004 1.99580972399439E+0004 1.99694043504541E+0004 1.99807162234149E+0004 + 1.99920328601541E+0004 2.00033542619995E+0004 2.00146804302793E+0004 2.00260113663216E+0004 2.00373470714550E+0004 + 2.00486875470080E+0004 2.00600327943094E+0004 2.00713828146882E+0004 2.00827376094736E+0004 2.00940971799950E+0004 + 2.01054615275819E+0004 2.01168306535640E+0004 2.01282045592712E+0004 2.01395832460336E+0004 2.01509667151816E+0004 + 2.01623549680455E+0004 2.01737480059559E+0004 2.01851458302438E+0004 2.01965484422402E+0004 2.02079558432761E+0004 + 2.02193680346831E+0004 2.02307850177927E+0004 2.02422067939366E+0004 2.02536333644466E+0004 2.02650647306551E+0004 + 2.02765008938943E+0004 2.02879418554966E+0004 2.02993876167948E+0004 2.03108381791215E+0004 2.03222935438101E+0004 + 2.03337537121935E+0004 2.03452186856052E+0004 2.03566884653789E+0004 2.03681630528482E+0004 2.03796424493473E+0004 + 2.03911266562100E+0004 2.04026156747709E+0004 2.04141095063645E+0004 2.04256081523252E+0004 2.04371116139882E+0004 + 2.04486198926884E+0004 2.04601329897612E+0004 2.04716509065417E+0004 2.04831736443659E+0004 2.04947012045692E+0004 + 2.05062335884879E+0004 2.05177707974581E+0004 2.05293128328160E+0004 2.05408596958984E+0004 2.05524113880417E+0004 + 2.05639679105829E+0004 2.05755292648592E+0004 2.05870954522078E+0004 2.05986664739661E+0004 2.06102423314718E+0004 + 2.06218230260627E+0004 2.06334085590767E+0004 2.06449989318522E+0004 2.06565941457273E+0004 2.06681942020408E+0004 + 2.06797991021315E+0004 2.06914088473379E+0004 2.07030234389995E+0004 2.07146428784555E+0004 2.07262671670452E+0004 + 2.07378963061085E+0004 2.07495302969851E+0004 2.07611691410150E+0004 2.07728128395385E+0004 2.07844613938961E+0004 + 2.07961148054280E+0004 2.08077730754753E+0004 2.08194362053789E+0004 2.08311041964799E+0004 2.08427770501196E+0004 + 2.08544547676393E+0004 2.08661373503811E+0004 2.08778247996864E+0004 2.08895171168976E+0004 2.09012143033568E+0004 + 2.09129163604064E+0004 2.09246232893891E+0004 2.09363350916476E+0004 2.09480517685249E+0004 2.09597733213640E+0004 + 2.09714997515085E+0004 2.09832310603019E+0004 2.09949672490876E+0004 2.10067083192098E+0004 2.10184542720124E+0004 + 2.10302051088398E+0004 2.10419608310362E+0004 2.10537214399466E+0004 2.10654869369155E+0004 2.10772573232879E+0004 + 2.10890326004092E+0004 2.11008127696246E+0004 2.11125978322796E+0004 2.11243877897200E+0004 2.11361826432917E+0004 + 2.11479823943409E+0004 2.11597870442136E+0004 2.11715965942566E+0004 2.11834110458164E+0004 2.11952304002397E+0004 + 2.12070546588738E+0004 2.12188838230657E+0004 2.12307178941627E+0004 2.12425568735126E+0004 2.12544007624631E+0004 + 2.12662495623620E+0004 2.12781032745575E+0004 2.12899619003979E+0004 2.13018254412318E+0004 2.13136938984077E+0004 + 2.13255672732744E+0004 2.13374455671812E+0004 2.13493287814772E+0004 2.13612169175117E+0004 2.13731099766344E+0004 + 2.13850079601951E+0004 2.13969108695436E+0004 2.14088187060304E+0004 2.14207314710054E+0004 2.14326491658193E+0004 + 2.14445717918229E+0004 2.14564993503669E+0004 2.14684318428024E+0004 2.14803692704807E+0004 2.14923116347533E+0004 + 2.15042589369717E+0004 2.15162111784877E+0004 2.15281683606532E+0004 2.15401304848206E+0004 2.15520975523421E+0004 + 2.15640695645703E+0004 2.15760465228578E+0004 2.15880284285577E+0004 2.16000152830228E+0004 2.16120070876067E+0004 + 2.16240038436626E+0004 2.16360055525443E+0004 2.16480122156055E+0004 2.16600238342003E+0004 2.16720404096828E+0004 + 2.16840619434075E+0004 2.16960884367288E+0004 2.17081198910017E+0004 2.17201563075808E+0004 2.17321976878213E+0004 + 2.17442440330787E+0004 2.17562953447083E+0004 2.17683516240657E+0004 2.17804128725069E+0004 2.17924790913880E+0004 + 2.18045502820649E+0004 2.18166264458943E+0004 2.18287075842326E+0004 2.18407936984366E+0004 2.18528847898634E+0004 + 2.18649808598699E+0004 2.18770819098137E+0004 2.18891879410520E+0004 2.19012989549426E+0004 2.19134149528435E+0004 + 2.19255359361125E+0004 2.19376619061080E+0004 2.19497928641885E+0004 2.19619288117125E+0004 2.19740697500387E+0004 + 2.19862156805263E+0004 2.19983666045342E+0004 2.20105225234219E+0004 2.20226834385489E+0004 2.20348493512748E+0004 + 2.20470202629598E+0004 2.20591961749637E+0004 2.20713770886467E+0004 2.20835630053694E+0004 2.20957539264925E+0004 + 2.21079498533766E+0004 2.21201507873829E+0004 2.21323567298725E+0004 2.21445676822068E+0004 2.21567836457473E+0004 + 2.21690046218557E+0004 2.21812306118939E+0004 2.21934616172240E+0004 2.22056976392085E+0004 2.22179386792097E+0004 + 2.22301847385902E+0004 2.22424358187130E+0004 2.22546919209408E+0004 2.22669530466372E+0004 2.22792191971654E+0004 + 2.22914903738889E+0004 2.23037665781716E+0004 2.23160478113773E+0004 2.23283340748704E+0004 2.23406253700147E+0004 + 2.23529216981753E+0004 2.23652230607165E+0004 2.23775294590031E+0004 2.23898408944004E+0004 2.24021573682734E+0004 + 2.24144788819878E+0004 2.24268054369090E+0004 2.24391370344026E+0004 2.24514736758348E+0004 2.24638153625718E+0004 + 2.24761620959798E+0004 2.24885138774254E+0004 2.25008707082752E+0004 2.25132325898961E+0004 2.25255995236553E+0004 + 2.25379715109199E+0004 2.25503485530574E+0004 2.25627306514354E+0004 2.25751178074217E+0004 2.25875100223843E+0004 + 2.25999072976914E+0004 2.26123096347113E+0004 2.26247170348126E+0004 2.26371294993639E+0004 2.26495470297343E+0004 + 2.26619696272927E+0004 2.26743972934085E+0004 2.26868300294511E+0004 2.26992678367902E+0004 2.27117107167955E+0004 + 2.27241586708372E+0004 2.27366117002852E+0004 2.27490698065103E+0004 2.27615329908827E+0004 2.27740012547733E+0004 + 2.27864745995530E+0004 2.27989530265930E+0004 2.28114365372644E+0004 2.28239251329389E+0004 2.28364188149881E+0004 + 2.28489175847836E+0004 2.28614214436978E+0004 2.28739303931029E+0004 2.28864444343710E+0004 2.28989635688749E+0004 + 2.29114877979874E+0004 2.29240171230813E+0004 2.29365515455298E+0004 2.29490910667062E+0004 2.29616356879842E+0004 + 2.29741854107373E+0004 2.29867402363393E+0004 2.29993001661645E+0004 2.30118652015869E+0004 2.30244353439811E+0004 + 2.30370105947217E+0004 2.30495909551833E+0004 2.30621764267411E+0004 2.30747670107702E+0004 2.30873627086459E+0004 + 2.30999635217437E+0004 2.31125694514394E+0004 2.31251804991089E+0004 2.31377966661282E+0004 2.31504179538736E+0004 + 2.31630443637215E+0004 2.31756758970487E+0004 2.31883125552319E+0004 2.32009543396481E+0004 2.32136012516744E+0004 + 2.32262532926884E+0004 2.32389104640674E+0004 2.32515727671893E+0004 2.32642402034319E+0004 2.32769127741735E+0004 + 2.32895904807922E+0004 2.33022733246665E+0004 2.33149613071752E+0004 2.33276544296969E+0004 2.33403526936109E+0004 + 2.33530561002962E+0004 2.33657646511323E+0004 2.33784783474986E+0004 2.33911971907751E+0004 2.34039211823416E+0004 + 2.34166503235783E+0004 2.34293846158654E+0004 2.34421240605837E+0004 2.34548686591134E+0004 2.34676184128358E+0004 + 2.34803733231316E+0004 2.34931333913823E+0004 2.35058986189693E+0004 2.35186690072739E+0004 2.35314445576782E+0004 + 2.35442252715642E+0004 2.35570111503137E+0004 2.35698021953093E+0004 2.35825984079335E+0004 2.35953997895691E+0004 + 2.36082063415988E+0004 2.36210180654055E+0004 2.36338349623731E+0004 2.36466570338844E+0004 2.36594842813233E+0004 + 2.36723167060735E+0004 2.36851543095190E+0004 2.36979970930442E+0004 2.37108450580332E+0004 2.37236982058706E+0004 + 2.37365565379412E+0004 2.37494200556299E+0004 2.37622887603217E+0004 2.37751626534020E+0004 2.37880417362562E+0004 + 2.38009260102698E+0004 2.38138154768289E+0004 2.38267101373193E+0004 2.38396099931275E+0004 2.38525150456395E+0004 + 2.38654252962422E+0004 2.38783407463221E+0004 2.38912613972662E+0004 2.39041872504616E+0004 2.39171183072957E+0004 + 2.39300545691561E+0004 2.39429960374301E+0004 2.39559427135058E+0004 2.39688945987713E+0004 2.39818516946147E+0004 + 2.39948140024243E+0004 2.40077815235889E+0004 2.40207542594972E+0004 2.40337322115381E+0004 2.40467153811009E+0004 + 2.40597037695748E+0004 2.40726973783492E+0004 2.40856962088140E+0004 2.40987002623590E+0004 2.41117095403742E+0004 + 2.41247240442501E+0004 2.41377437753767E+0004 2.41507687351450E+0004 2.41637989249456E+0004 2.41768343461695E+0004 + 2.41898750002080E+0004 2.42029208884522E+0004 2.42159720122938E+0004 2.42290283731246E+0004 2.42420899723363E+0004 + 2.42551568113212E+0004 2.42682288914714E+0004 2.42813062141793E+0004 2.42943887808378E+0004 2.43074765928395E+0004 + 2.43205696515773E+0004 2.43336679584448E+0004 2.43467715148350E+0004 2.43598803221416E+0004 2.43729943817584E+0004 + 2.43861136950791E+0004 2.43992382634982E+0004 2.44123680884095E+0004 2.44255031712079E+0004 2.44386435132878E+0004 + 2.44517891160442E+0004 2.44649399808720E+0004 2.44780961091665E+0004 2.44912575023231E+0004 2.45044241617373E+0004 + 2.45175960888050E+0004 2.45307732849220E+0004 2.45439557514846E+0004 2.45571434898888E+0004 2.45703365015315E+0004 + 2.45835347878091E+0004 2.45967383501187E+0004 2.46099471898571E+0004 2.46231613084217E+0004 2.46363807072099E+0004 + 2.46496053876192E+0004 2.46628353510475E+0004 2.46760705988928E+0004 2.46893111325531E+0004 2.47025569534269E+0004 + 2.47158080629127E+0004 2.47290644624090E+0004 2.47423261533150E+0004 2.47555931370296E+0004 2.47688654149520E+0004 + 2.47821429884820E+0004 2.47954258590188E+0004 2.48087140279623E+0004 2.48220074967127E+0004 2.48353062666700E+0004 + 2.48486103392346E+0004 2.48619197158070E+0004 2.48752343977881E+0004 2.48885543865787E+0004 2.49018796835798E+0004 + 2.49152102901929E+0004 2.49285462078193E+0004 2.49418874378607E+0004 2.49552339817191E+0004 2.49685858407961E+0004 + 2.49819430164943E+0004 2.49953055102159E+0004 2.50086733233636E+0004 2.50220464573402E+0004 2.50354249135483E+0004 + 2.50488086933913E+0004 2.50621977982725E+0004 2.50755922295952E+0004 2.50889919887633E+0004 2.51023970771807E+0004 + 2.51158074962511E+0004 2.51292232473789E+0004 2.51426443319688E+0004 2.51560707514250E+0004 2.51695025071524E+0004 + 2.51829396005560E+0004 2.51963820330409E+0004 2.52098298060126E+0004 2.52232829208763E+0004 2.52367413790380E+0004 + 2.52502051819033E+0004 2.52636743308785E+0004 2.52771488273698E+0004 2.52906286727836E+0004 2.53041138685265E+0004 + 2.53176044160053E+0004 2.53311003166271E+0004 2.53446015717988E+0004 2.53581081829281E+0004 2.53716201514224E+0004 + 2.53851374786892E+0004 2.53986601661367E+0004 2.54121882151730E+0004 2.54257216272061E+0004 2.54392604036446E+0004 + 2.54528045458973E+0004 2.54663540553727E+0004 2.54799089334801E+0004 2.54934691816285E+0004 2.55070348012276E+0004 + 2.55206057936865E+0004 2.55341821604153E+0004 2.55477639028237E+0004 2.55613510223220E+0004 2.55749435203203E+0004 + 2.55885413982292E+0004 2.56021446574593E+0004 2.56157532994216E+0004 2.56293673255271E+0004 2.56429867371869E+0004 + 2.56566115358124E+0004 2.56702417228153E+0004 2.56838772996073E+0004 2.56975182676003E+0004 2.57111646282066E+0004 + 2.57248163828383E+0004 2.57384735329080E+0004 2.57521360798284E+0004 2.57658040250126E+0004 2.57794773698732E+0004 + 2.57931561158239E+0004 2.58068402642776E+0004 2.58205298166485E+0004 2.58342247743500E+0004 2.58479251387960E+0004 + 2.58616309114011E+0004 2.58753420935792E+0004 2.58890586867452E+0004 2.59027806923134E+0004 2.59165081116991E+0004 + 2.59302409463171E+0004 2.59439791975828E+0004 2.59577228669116E+0004 2.59714719557191E+0004 2.59852264654212E+0004 + 2.59989863974339E+0004 2.60127517531732E+0004 2.60265225340557E+0004 2.60402987414979E+0004 2.60540803769164E+0004 + 2.60678674417283E+0004 2.60816599373505E+0004 2.60954578652005E+0004 2.61092612266957E+0004 2.61230700232537E+0004 + 2.61368842562923E+0004 2.61507039272296E+0004 2.61645290374839E+0004 2.61783595884734E+0004 2.61921955816168E+0004 + 2.62060370183328E+0004 2.62198839000403E+0004 2.62337362281586E+0004 2.62475940041069E+0004 2.62614572293047E+0004 + 2.62753259051717E+0004 2.62892000331277E+0004 2.63030796145928E+0004 2.63169646509872E+0004 2.63308551437313E+0004 + 2.63447510942458E+0004 2.63586525039513E+0004 2.63725593742690E+0004 2.63864717066199E+0004 2.64003895024254E+0004 + 2.64143127631069E+0004 2.64282414900862E+0004 2.64421756847853E+0004 2.64561153486259E+0004 2.64700604830307E+0004 + 2.64840110894219E+0004 2.64979671692220E+0004 2.65119287238542E+0004 2.65258957547412E+0004 2.65398682633061E+0004 + 2.65538462509725E+0004 2.65678297191637E+0004 2.65818186693037E+0004 2.65958131028161E+0004 2.66098130211253E+0004 + 2.66238184256553E+0004 2.66378293178308E+0004 2.66518456990763E+0004 2.66658675708167E+0004 2.66798949344769E+0004 + 2.66939277914822E+0004 2.67079661432580E+0004 2.67220099912298E+0004 2.67360593368234E+0004 2.67501141814647E+0004 + 2.67641745265798E+0004 2.67782403735951E+0004 2.67923117239369E+0004 2.68063885790321E+0004 2.68204709403074E+0004 + 2.68345588091898E+0004 2.68486521871067E+0004 2.68627510754854E+0004 2.68768554757534E+0004 2.68909653893386E+0004 + 2.69050808176688E+0004 2.69192017621724E+0004 2.69333282242776E+0004 2.69474602054127E+0004 2.69615977070067E+0004 + 2.69757407304885E+0004 2.69898892772868E+0004 2.70040433488311E+0004 2.70182029465509E+0004 2.70323680718756E+0004 + 2.70465387262351E+0004 2.70607149110595E+0004 2.70748966277787E+0004 2.70890838778233E+0004 2.71032766626236E+0004 + 2.71174749836106E+0004 2.71316788422149E+0004 2.71458882398678E+0004 2.71601031780004E+0004 2.71743236580444E+0004 + 2.71885496814312E+0004 2.72027812495927E+0004 2.72170183639609E+0004 2.72312610259680E+0004 2.72455092370464E+0004 + 2.72597629986285E+0004 2.72740223121473E+0004 2.72882871790355E+0004 2.73025576007263E+0004 2.73168335786531E+0004 + 2.73311151142491E+0004 2.73454022089482E+0004 2.73596948641840E+0004 2.73739930813909E+0004 2.73882968620028E+0004 + 2.74026062074542E+0004 2.74169211191796E+0004 2.74312415986140E+0004 2.74455676471921E+0004 2.74598992663491E+0004 + 2.74742364575203E+0004 2.74885792221413E+0004 2.75029275616477E+0004 2.75172814774753E+0004 2.75316409710603E+0004 + 2.75460060438389E+0004 2.75603766972473E+0004 2.75747529327224E+0004 2.75891347517009E+0004 2.76035221556199E+0004 + 2.76179151459160E+0004 2.76323137240272E+0004 2.76467178913908E+0004 2.76611276494443E+0004 2.76755429996258E+0004 + 2.76899639433735E+0004 2.77043904821253E+0004 2.77188226173199E+0004 2.77332603503958E+0004 2.77477036827918E+0004 + 2.77621526159471E+0004 2.77766071513007E+0004 2.77910672902919E+0004 2.78055330343604E+0004 2.78200043849460E+0004 + 2.78344813434884E+0004 2.78489639114277E+0004 2.78634520902044E+0004 2.78779458812588E+0004 2.78924452860315E+0004 + 2.79069503059636E+0004 2.79214609424958E+0004 2.79359771970695E+0004 2.79504990711259E+0004 2.79650265661069E+0004 + 2.79795596834539E+0004 2.79940984246089E+0004 2.80086427910143E+0004 2.80231927841121E+0004 2.80377484053448E+0004 + 2.80523096561554E+0004 2.80668765379863E+0004 2.80814490522809E+0004 2.80960272004823E+0004 2.81106109840340E+0004 + 2.81252004043793E+0004 2.81397954629623E+0004 2.81543961612267E+0004 2.81690025006169E+0004 2.81836144825771E+0004 + 2.81982321085519E+0004 2.82128553799857E+0004 2.82274842983237E+0004 2.82421188650109E+0004 2.82567590814925E+0004 + 2.82714049492140E+0004 2.82860564696209E+0004 2.83007136441591E+0004 2.83153764742745E+0004 2.83300449614134E+0004 + 2.83447191070219E+0004 2.83593989125469E+0004 2.83740843794348E+0004 2.83887755091327E+0004 2.84034723030875E+0004 + 2.84181747627466E+0004 2.84328828895576E+0004 2.84475966849679E+0004 2.84623161504253E+0004 2.84770412873781E+0004 + 2.84917720972741E+0004 2.85065085815621E+0004 2.85212507416903E+0004 2.85359985791077E+0004 2.85507520952630E+0004 + 2.85655112916055E+0004 2.85802761695845E+0004 2.85950467306493E+0004 2.86098229762496E+0004 2.86246049078355E+0004 + 2.86393925268567E+0004 2.86541858347636E+0004 2.86689848330065E+0004 2.86837895230361E+0004 2.86985999063031E+0004 + 2.87134159842585E+0004 2.87282377583534E+0004 2.87430652300390E+0004 2.87578984007671E+0004 2.87727372719891E+0004 + 2.87875818451570E+0004 2.88024321217228E+0004 2.88172881031387E+0004 2.88321497908573E+0004 2.88470171863312E+0004 + 2.88618902910129E+0004 2.88767691063557E+0004 2.88916536338126E+0004 2.89065438748369E+0004 2.89214398308822E+0004 + 2.89363415034023E+0004 2.89512488938509E+0004 2.89661620036822E+0004 2.89810808343505E+0004 2.89960053873102E+0004 + 2.90109356640158E+0004 2.90258716659223E+0004 2.90408133944846E+0004 2.90557608511581E+0004 2.90707140373976E+0004 + 2.90856729546594E+0004 2.91006376043987E+0004 2.91156079880715E+0004 2.91305841071342E+0004 2.91455659630427E+0004 + 2.91605535572537E+0004 2.91755468912238E+0004 2.91905459664098E+0004 2.92055507842688E+0004 2.92205613462579E+0004 + 2.92355776538346E+0004 2.92505997084564E+0004 2.92656275115810E+0004 2.92806610646665E+0004 2.92957003691710E+0004 + 2.93107454265527E+0004 2.93257962382701E+0004 2.93408528057821E+0004 2.93559151305471E+0004 2.93709832140246E+0004 + 2.93860570576737E+0004 2.94011366629538E+0004 2.94162220313243E+0004 2.94313131642453E+0004 2.94464100631765E+0004 + 2.94615127295784E+0004 2.94766211649108E+0004 2.94917353706347E+0004 2.95068553482107E+0004 2.95219810990994E+0004 + 2.95371126247621E+0004 2.95522499266603E+0004 2.95673930062549E+0004 2.95825418650077E+0004 2.95976965043808E+0004 + 2.96128569258359E+0004 2.96280231308353E+0004 2.96431951208412E+0004 2.96583728973164E+0004 2.96735564617233E+0004 + 2.96887458155251E+0004 2.97039409601847E+0004 2.97191418971654E+0004 2.97343486279309E+0004 2.97495611539445E+0004 + 2.97647794766703E+0004 2.97800035975720E+0004 2.97952335181141E+0004 2.98104692397609E+0004 2.98257107639769E+0004 + 2.98409580922269E+0004 2.98562112259758E+0004 2.98714701666887E+0004 2.98867349158309E+0004 2.99020054748680E+0004 + 2.99172818452655E+0004 2.99325640284895E+0004 2.99478520260057E+0004 2.99631458392805E+0004 2.99784454697803E+0004 + 2.99937509189717E+0004 3.00090621883214E+0004 3.00243792792966E+0004 3.00397021933640E+0004 3.00550309319914E+0004 + 3.00703654966457E+0004 3.00857058887953E+0004 3.01010521099077E+0004 3.01164041614509E+0004 3.01317620448933E+0004 + 3.01471257617033E+0004 3.01624953133494E+0004 3.01778707013005E+0004 3.01932519270256E+0004 3.02086389919937E+0004 + 3.02240318976744E+0004 3.02394306455372E+0004 3.02548352370514E+0004 3.02702456736874E+0004 3.02856619569151E+0004 + 3.03010840882047E+0004 3.03165120690267E+0004 3.03319459008519E+0004 3.03473855851507E+0004 3.03628311233947E+0004 + 3.03782825170545E+0004 3.03937397676017E+0004 3.04092028765080E+0004 3.04246718452450E+0004 3.04401466752845E+0004 + 3.04556273680989E+0004 3.04711139251603E+0004 3.04866063479412E+0004 3.05021046379142E+0004 3.05176087965523E+0004 + 3.05331188253284E+0004 3.05486347257157E+0004 3.05641564991878E+0004 3.05796841472179E+0004 3.05952176712801E+0004 + 3.06107570728482E+0004 3.06263023533963E+0004 3.06418535143988E+0004 3.06574105573302E+0004 3.06729734836651E+0004 + 3.06885422948785E+0004 3.07041169924453E+0004 3.07196975778407E+0004 3.07352840525403E+0004 3.07508764180196E+0004 + 3.07664746757544E+0004 3.07820788272207E+0004 3.07976888738946E+0004 3.08133048172525E+0004 3.08289266587708E+0004 + 3.08445543999263E+0004 3.08601880421959E+0004 3.08758275870566E+0004 3.08914730359857E+0004 3.09071243904607E+0004 + 3.09227816519591E+0004 3.09384448219589E+0004 3.09541139019379E+0004 3.09697888933744E+0004 3.09854697977465E+0004 + 3.10011566165332E+0004 3.10168493512128E+0004 3.10325480032645E+0004 3.10482525741673E+0004 3.10639630654003E+0004 + 3.10796794784434E+0004 3.10954018147758E+0004 3.11111300758775E+0004 3.11268642632286E+0004 3.11426043783093E+0004 + 3.11583504225998E+0004 3.11741023975808E+0004 3.11898603047330E+0004 3.12056241455375E+0004 3.12213939214752E+0004 + 3.12371696340275E+0004 3.12529512846760E+0004 3.12687388749021E+0004 3.12845324061879E+0004 3.13003318800153E+0004 + 3.13161372978667E+0004 3.13319486612242E+0004 3.13477659715707E+0004 3.13635892303889E+0004 3.13794184391616E+0004 + 3.13952535993721E+0004 3.14110947125035E+0004 3.14269417800398E+0004 3.14427948034642E+0004 3.14586537842608E+0004 + 3.14745187239136E+0004 3.14903896239069E+0004 3.15062664857252E+0004 3.15221493108529E+0004 3.15380381007752E+0004 + 3.15539328569764E+0004 3.15698335809422E+0004 3.15857402741580E+0004 3.16016529381090E+0004 3.16175715742811E+0004 + 3.16334961841602E+0004 3.16494267692324E+0004 3.16653633309840E+0004 3.16813058709012E+0004 3.16972543904710E+0004 + 3.17132088911801E+0004 3.17291693745154E+0004 3.17451358419640E+0004 3.17611082950137E+0004 3.17770867351515E+0004 + 3.17930711638656E+0004 3.18090615826437E+0004 3.18250579929739E+0004 3.18410603963447E+0004 3.18570687942444E+0004 + 3.18730831881617E+0004 3.18891035795854E+0004 3.19051299700047E+0004 3.19211623609085E+0004 3.19372007537864E+0004 + 3.19532451501281E+0004 3.19692955514233E+0004 3.19853519591618E+0004 3.20014143748337E+0004 3.20174827999295E+0004 + 3.20335572359397E+0004 3.20496376843549E+0004 3.20657241466661E+0004 3.20818166243641E+0004 3.20979151189403E+0004 + 3.21140196318862E+0004 3.21301301646932E+0004 3.21462467188532E+0004 3.21623692958583E+0004 3.21784978972005E+0004 + 3.21946325243721E+0004 3.22107731788657E+0004 3.22269198621741E+0004 3.22430725757901E+0004 3.22592313212067E+0004 + 3.22753960999174E+0004 3.22915669134153E+0004 3.23077437631942E+0004 3.23239266507480E+0004 3.23401155775707E+0004 + 3.23563105451563E+0004 3.23725115549994E+0004 3.23887186085943E+0004 3.24049317074360E+0004 3.24211508530191E+0004 + 3.24373760468389E+0004 3.24536072903907E+0004 3.24698445851699E+0004 3.24860879326722E+0004 3.25023373343933E+0004 + 3.25185927918295E+0004 3.25348543064769E+0004 3.25511218798316E+0004 3.25673955133905E+0004 3.25836752086503E+0004 + 3.25999609671079E+0004 3.26162527902603E+0004 3.26325506796050E+0004 3.26488546366394E+0004 3.26651646628613E+0004 + 3.26814807597683E+0004 3.26978029288586E+0004 3.27141311716305E+0004 3.27304654895823E+0004 3.27468058842128E+0004 + 3.27631523570205E+0004 3.27795049095044E+0004 3.27958635431638E+0004 3.28122282594978E+0004 3.28285990600064E+0004 + 3.28449759461887E+0004 3.28613589195450E+0004 3.28777479815752E+0004 3.28941431337795E+0004 3.29105443776586E+0004 + 3.29269517147127E+0004 3.29433651464429E+0004 3.29597846743501E+0004 3.29762102999356E+0004 3.29926420247006E+0004 + 3.30090798501467E+0004 3.30255237777756E+0004 3.30419738090891E+0004 3.30584299455896E+0004 3.30748921887790E+0004 + 3.30913605401601E+0004 3.31078350012354E+0004 3.31243155735076E+0004 3.31408022584799E+0004 3.31572950576553E+0004 + 3.31737939725374E+0004 3.31902990046296E+0004 3.32068101554358E+0004 3.32233274264597E+0004 3.32398508192057E+0004 + 3.32563803351778E+0004 3.32729159758806E+0004 3.32894577428190E+0004 3.33060056374976E+0004 3.33225596614213E+0004 + 3.33391198160958E+0004 3.33556861030260E+0004 3.33722585237177E+0004 3.33888370796767E+0004 3.34054217724088E+0004 + 3.34220126034204E+0004 3.34386095742176E+0004 3.34552126863071E+0004 3.34718219411952E+0004 3.34884373403894E+0004 + 3.35050588853961E+0004 3.35216865777230E+0004 3.35383204188774E+0004 3.35549604103667E+0004 3.35716065536989E+0004 + 3.35882588503821E+0004 3.36049173019243E+0004 3.36215819098337E+0004 3.36382526756192E+0004 3.36549296007891E+0004 + 3.36716126868526E+0004 3.36883019353186E+0004 3.37049973476965E+0004 3.37216989254957E+0004 3.37384066702258E+0004 + 3.37551205833967E+0004 3.37718406665183E+0004 3.37885669211008E+0004 3.38052993486546E+0004 3.38220379506903E+0004 + 3.38387827287185E+0004 3.38555336842503E+0004 3.38722908187967E+0004 3.38890541338690E+0004 3.39058236309786E+0004 + 3.39225993116373E+0004 3.39393811773570E+0004 3.39561692296494E+0004 3.39729634700270E+0004 3.39897639000021E+0004 + 3.40065705210872E+0004 3.40233833347952E+0004 3.40402023426390E+0004 3.40570275461316E+0004 3.40738589467866E+0004 + 3.40906965461171E+0004 3.41075403456371E+0004 3.41243903468603E+0004 3.41412465513009E+0004 3.41581089604731E+0004 + 3.41749775758912E+0004 3.41918523990698E+0004 3.42087334315238E+0004 3.42256206747681E+0004 3.42425141303178E+0004 + 3.42594137996884E+0004 3.42763196843952E+0004 3.42932317859541E+0004 3.43101501058809E+0004 3.43270746456917E+0004 + 3.43440054069026E+0004 3.43609423910304E+0004 3.43778855995914E+0004 3.43948350341024E+0004 3.44117906960805E+0004 + 3.44287525870430E+0004 3.44457207085072E+0004 3.44626950619904E+0004 3.44796756490106E+0004 3.44966624710856E+0004 + 3.45136555297335E+0004 3.45306548264725E+0004 3.45476603628212E+0004 3.45646721402982E+0004 3.45816901604225E+0004 + 3.45987144247128E+0004 3.46157449346884E+0004 3.46327816918688E+0004 3.46498246977734E+0004 3.46668739539221E+0004 + 3.46839294618348E+0004 3.47009912230317E+0004 3.47180592390329E+0004 3.47351335113590E+0004 3.47522140415306E+0004 + 3.47693008310685E+0004 3.47863938814941E+0004 3.48034931943283E+0004 3.48205987710925E+0004 3.48377106133084E+0004 + 3.48548287224978E+0004 3.48719531001825E+0004 3.48890837478848E+0004 3.49062206671271E+0004 3.49233638594315E+0004 + 3.49405133263212E+0004 3.49576690693188E+0004 3.49748310899474E+0004 3.49919993897303E+0004 3.50091739701908E+0004 + 3.50263548328526E+0004 3.50435419792396E+0004 3.50607354108756E+0004 3.50779351292850E+0004 3.50951411359918E+0004 + 3.51123534325209E+0004 3.51295720203966E+0004 3.51467969011444E+0004 3.51640280762888E+0004 3.51812655473553E+0004 + 3.51985093158695E+0004 3.52157593833568E+0004 3.52330157513431E+0004 3.52502784213545E+0004 3.52675473949171E+0004 + 3.52848226735572E+0004 3.53021042588016E+0004 3.53193921521767E+0004 3.53366863552098E+0004 3.53539868694276E+0004 + 3.53712936963578E+0004 3.53886068375276E+0004 3.54059262944648E+0004 3.54232520686972E+0004 3.54405841617528E+0004 + 3.54579225751598E+0004 3.54752673104466E+0004 3.54926183691421E+0004 3.55099757527745E+0004 3.55273394628729E+0004 + 3.55447095009668E+0004 3.55620858685852E+0004 3.55794685672577E+0004 3.55968575985139E+0004 3.56142529638839E+0004 + 3.56316546648974E+0004 3.56490627030848E+0004 3.56664770799767E+0004 3.56838977971034E+0004 3.57013248559960E+0004 + 3.57187582581851E+0004 3.57361980052022E+0004 3.57536440985784E+0004 3.57710965398453E+0004 3.57885553305348E+0004 + 3.58060204721785E+0004 3.58234919663086E+0004 3.58409698144574E+0004 3.58584540181573E+0004 3.58759445789409E+0004 + 3.58934414983410E+0004 3.59109447778907E+0004 3.59284544191230E+0004 3.59459704235715E+0004 3.59634927927696E+0004 + 3.59810215282511E+0004 3.59985566315497E+0004 3.60160981042000E+0004 3.60336459477358E+0004 3.60512001636915E+0004 + 3.60687607536022E+0004 3.60863277190026E+0004 3.61039010614274E+0004 3.61214807824121E+0004 3.61390668834920E+0004 + 3.61566593662028E+0004 3.61742582320800E+0004 3.61918634826598E+0004 3.62094751194782E+0004 3.62270931440714E+0004 + 3.62447175579761E+0004 3.62623483627289E+0004 3.62799855598666E+0004 3.62976291509263E+0004 3.63152791374451E+0004 + 3.63329355209607E+0004 3.63505983030103E+0004 3.63682674851321E+0004 3.63859430688638E+0004 3.64036250557435E+0004 + 3.64213134473097E+0004 3.64390082451008E+0004 3.64567094506556E+0004 3.64744170655129E+0004 3.64921310912117E+0004 + 3.65098515292915E+0004 3.65275783812914E+0004 3.65453116487513E+0004 3.65630513332109E+0004 3.65807974362102E+0004 + 3.65985499592893E+0004 3.66163089039886E+0004 3.66340742718487E+0004 3.66518460644102E+0004 3.66696242832140E+0004 + 3.66874089298014E+0004 3.67052000057134E+0004 3.67229975124918E+0004 3.67408014516779E+0004 3.67586118248136E+0004 + 3.67764286334410E+0004 3.67942518791023E+0004 3.68120815633399E+0004 3.68299176876962E+0004 3.68477602537140E+0004 + 3.68656092629363E+0004 3.68834647169062E+0004 3.69013266171670E+0004 3.69191949652622E+0004 3.69370697627353E+0004 + 3.69549510111305E+0004 3.69728387119914E+0004 3.69907328668626E+0004 3.70086334772882E+0004 3.70265405448129E+0004 + 3.70444540709815E+0004 3.70623740573390E+0004 3.70803005054304E+0004 3.70982334168012E+0004 3.71161727929967E+0004 + 3.71341186355627E+0004 3.71520709460450E+0004 3.71700297259899E+0004 3.71879949769432E+0004 3.72059667004518E+0004 + 3.72239448980620E+0004 3.72419295713207E+0004 3.72599207217748E+0004 3.72779183509715E+0004 3.72959224604582E+0004 + 3.73139330517824E+0004 3.73319501264919E+0004 3.73499736861343E+0004 3.73680037322580E+0004 3.73860402664111E+0004 + 3.74040832901421E+0004 3.74221328049997E+0004 3.74401888125325E+0004 3.74582513142897E+0004 3.74763203118205E+0004 + 3.74943958066740E+0004 3.75124778004001E+0004 3.75305662945482E+0004 3.75486612906685E+0004 3.75667627903111E+0004 + 3.75848707950261E+0004 3.76029853063640E+0004 3.76211063258756E+0004 3.76392338551115E+0004 3.76573678956230E+0004 + 3.76755084489612E+0004 3.76936555166775E+0004 3.77118091003233E+0004 3.77299692014506E+0004 3.77481358216112E+0004 + 3.77663089623573E+0004 3.77844886252412E+0004 3.78026748118154E+0004 3.78208675236325E+0004 3.78390667622455E+0004 + 3.78572725292073E+0004 3.78754848260712E+0004 3.78937036543907E+0004 3.79119290157193E+0004 3.79301609116108E+0004 + 3.79483993436191E+0004 3.79666443132984E+0004 3.79848958222030E+0004 3.80031538718877E+0004 3.80214184639069E+0004 + 3.80396895998153E+0004 3.80579672811684E+0004 3.80762515095214E+0004 3.80945422864295E+0004 3.81128396134485E+0004 + 3.81311434921341E+0004 3.81494539240422E+0004 3.81677709107293E+0004 3.81860944537515E+0004 3.82044245546655E+0004 + 3.82227612150278E+0004 3.82411044363956E+0004 3.82594542203257E+0004 3.82778105683756E+0004 3.82961734821026E+0004 + 3.83145429630645E+0004 3.83329190128191E+0004 3.83513016329242E+0004 3.83696908249383E+0004 3.83880865904196E+0004 + 3.84064889309268E+0004 3.84248978480184E+0004 3.84433133432536E+0004 3.84617354181914E+0004 3.84801640743911E+0004 + 3.84985993134122E+0004 3.85170411368143E+0004 3.85354895461574E+0004 3.85539445430015E+0004 3.85724061289067E+0004 + 3.85908743054335E+0004 3.86093490741426E+0004 3.86278304365946E+0004 3.86463183943504E+0004 3.86648129489712E+0004 + 3.86833141020185E+0004 3.87018218550537E+0004 3.87203362096385E+0004 3.87388571673345E+0004 3.87573847297043E+0004 + 3.87759188983096E+0004 3.87944596747133E+0004 3.88130070604777E+0004 3.88315610571657E+0004 3.88501216663403E+0004 + 3.88686888895646E+0004 3.88872627284020E+0004 3.89058431844159E+0004 3.89244302591702E+0004 3.89430239542289E+0004 + 3.89616242711558E+0004 3.89802312115151E+0004 3.89988447768717E+0004 3.90174649687899E+0004 3.90360917888345E+0004 + 3.90547252385707E+0004 3.90733653195635E+0004 3.90920120333784E+0004 3.91106653815809E+0004 3.91293253657367E+0004 + 3.91479919874119E+0004 3.91666652481724E+0004 3.91853451495847E+0004 3.92040316932150E+0004 3.92227248806301E+0004 + 3.92414247133969E+0004 3.92601311930825E+0004 3.92788443212538E+0004 3.92975640994785E+0004 3.93162905293239E+0004 + 3.93350236123581E+0004 3.93537633501489E+0004 3.93725097442644E+0004 3.93912627962727E+0004 3.94100225077427E+0004 + 3.94287888802428E+0004 3.94475619153422E+0004 3.94663416146096E+0004 3.94851279796143E+0004 3.95039210119258E+0004 + 3.95227207131138E+0004 3.95415270847479E+0004 3.95603401283980E+0004 3.95791598456345E+0004 3.95979862380276E+0004 + 3.96168193071479E+0004 3.96356590545661E+0004 3.96545054818529E+0004 3.96733585905796E+0004 3.96922183823175E+0004 + 3.97110848586378E+0004 3.97299580211122E+0004 3.97488378713126E+0004 3.97677244108110E+0004 3.97866176411795E+0004 + 3.98055175639906E+0004 3.98244241808165E+0004 3.98433374932304E+0004 3.98622575028050E+0004 3.98811842111131E+0004 + 3.99001176197286E+0004 3.99190577302244E+0004 3.99380045441744E+0004 3.99569580631527E+0004 3.99759182887326E+0004 + 3.99948852224891E+0004 4.00138588659959E+0004 4.00328392208282E+0004 4.00518262885602E+0004 4.00708200707673E+0004 + 4.00898205690243E+0004 4.01088277849066E+0004 4.01278417199897E+0004 4.01468623758492E+0004 4.01658897540612E+0004 + 4.01849238562014E+0004 4.02039646838462E+0004 4.02230122385721E+0004 4.02420665219556E+0004 4.02611275355733E+0004 + 4.02801952810025E+0004 4.02992697598201E+0004 4.03183509736035E+0004 4.03374389239305E+0004 4.03565336123782E+0004 + 4.03756350405249E+0004 4.03947432099484E+0004 4.04138581222274E+0004 4.04329797789399E+0004 4.04521081816646E+0004 + 4.04712433319805E+0004 4.04903852314664E+0004 4.05095338817014E+0004 4.05286892842652E+0004 4.05478514407368E+0004 + 4.05670203526965E+0004 4.05861960217238E+0004 4.06053784493989E+0004 4.06245676373020E+0004 4.06437635870139E+0004 + 4.06629663001149E+0004 4.06821757781857E+0004 4.07013920228077E+0004 4.07206150355621E+0004 4.07398448180297E+0004 + 4.07590813717927E+0004 4.07783246984325E+0004 4.07975747995311E+0004 4.08168316766707E+0004 4.08360953314335E+0004 + 4.08553657654019E+0004 4.08746429801587E+0004 4.08939269772869E+0004 4.09132177583691E+0004 4.09325153249889E+0004 + 4.09518196787296E+0004 4.09711308211746E+0004 4.09904487539079E+0004 4.10097734785134E+0004 4.10291049965752E+0004 + 4.10484433096775E+0004 4.10677884194050E+0004 4.10871403273424E+0004 4.11064990350743E+0004 4.11258645441860E+0004 + 4.11452368562628E+0004 4.11646159728899E+0004 4.11840018956530E+0004 4.12033946261379E+0004 4.12227941659306E+0004 + 4.12422005166172E+0004 4.12616136797839E+0004 4.12810336570176E+0004 4.13004604499048E+0004 4.13198940600324E+0004 + 4.13393344889874E+0004 4.13587817383573E+0004 4.13782358097293E+0004 4.13976967046910E+0004 4.14171644248305E+0004 + 4.14366389717356E+0004 4.14561203469944E+0004 4.14756085521956E+0004 4.14951035889273E+0004 4.15146054587787E+0004 + 4.15341141633383E+0004 4.15536297041956E+0004 4.15731520829393E+0004 4.15926813011596E+0004 4.16122173604457E+0004 + 4.16317602623876E+0004 4.16513100085750E+0004 4.16708666005986E+0004 4.16904300400484E+0004 4.17100003285152E+0004 + 4.17295774675898E+0004 4.17491614588628E+0004 4.17687523039257E+0004 4.17883500043697E+0004 4.18079545617861E+0004 + 4.18275659777668E+0004 4.18471842539037E+0004 4.18668093917886E+0004 4.18864413930139E+0004 4.19060802591721E+0004 + 4.19257259918555E+0004 4.19453785926571E+0004 4.19650380631699E+0004 4.19847044049869E+0004 4.20043776197016E+0004 + 4.20240577089073E+0004 4.20437446741979E+0004 4.20634385171673E+0004 4.20831392394094E+0004 4.21028468425185E+0004 + 4.21225613280890E+0004 4.21422826977157E+0004 4.21620109529933E+0004 4.21817460955168E+0004 4.22014881268812E+0004 + 4.22212370486822E+0004 4.22409928625150E+0004 4.22607555699756E+0004 4.22805251726598E+0004 4.23003016721635E+0004 + 4.23200850700833E+0004 4.23398753680154E+0004 4.23596725675567E+0004 4.23794766703038E+0004 4.23992876778538E+0004 + 4.24191055918041E+0004 4.24389304137515E+0004 4.24587621452943E+0004 4.24786007880297E+0004 4.24984463435558E+0004 + 4.25182988134708E+0004 4.25381581993728E+0004 4.25580245028607E+0004 4.25778977255327E+0004 4.25977778689878E+0004 + 4.26176649348251E+0004 4.26375589246440E+0004 4.26574598400434E+0004 4.26773676826234E+0004 4.26972824539833E+0004 + 4.27172041557236E+0004 4.27371327894439E+0004 4.27570683567452E+0004 4.27770108592272E+0004 4.27969602984909E+0004 + 4.28169166761375E+0004 4.28368799937677E+0004 4.28568502529829E+0004 4.28768274553844E+0004 4.28968116025740E+0004 + 4.29168026961533E+0004 4.29368007377245E+0004 4.29568057288894E+0004 4.29768176712507E+0004 4.29968365664108E+0004 + 4.30168624159724E+0004 4.30368952215385E+0004 4.30569349847120E+0004 4.30769817070963E+0004 4.30970353902949E+0004 + 4.31170960359111E+0004 4.31371636455493E+0004 4.31572382208130E+0004 4.31773197633066E+0004 4.31974082746343E+0004 + 4.32175037564010E+0004 4.32376062102111E+0004 4.32577156376696E+0004 4.32778320403817E+0004 4.32979554199526E+0004 + 4.33180857779880E+0004 4.33382231160933E+0004 4.33583674358742E+0004 4.33785187389370E+0004 4.33986770268881E+0004 + 4.34188423013334E+0004 4.34390145638798E+0004 4.34591938161342E+0004 4.34793800597031E+0004 4.34995732961938E+0004 + 4.35197735272138E+0004 4.35399807543704E+0004 4.35601949792714E+0004 4.35804162035247E+0004 4.36006444287382E+0004 + 4.36208796565201E+0004 4.36411218884790E+0004 4.36613711262234E+0004 4.36816273713623E+0004 4.37018906255043E+0004 + 4.37221608902587E+0004 4.37424381672349E+0004 4.37627224580424E+0004 4.37830137642909E+0004 4.38033120875904E+0004 + 4.38236174295506E+0004 4.38439297917821E+0004 4.38642491758954E+0004 4.38845755835008E+0004 4.39049090162095E+0004 + 4.39252494756321E+0004 4.39455969633801E+0004 4.39659514810644E+0004 4.39863130302971E+0004 4.40066816126897E+0004 + 4.40270572298541E+0004 4.40474398834024E+0004 4.40678295749468E+0004 4.40882263060999E+0004 4.41086300784744E+0004 + 4.41290408936827E+0004 4.41494587533383E+0004 4.41698836590544E+0004 4.41903156124442E+0004 4.42107546151212E+0004 + 4.42312006686992E+0004 4.42516537747923E+0004 4.42721139350143E+0004 4.42925811509800E+0004 4.43130554243034E+0004 + 4.43335367565995E+0004 4.43540251494827E+0004 4.43745206045688E+0004 4.43950231234723E+0004 4.44155327078091E+0004 + 4.44360493591945E+0004 4.44565730792441E+0004 4.44771038695744E+0004 4.44976417318013E+0004 4.45181866675409E+0004 + 4.45387386784101E+0004 4.45592977660252E+0004 4.45798639320034E+0004 4.46004371779617E+0004 4.46210175055171E+0004 + 4.46416049162874E+0004 4.46621994118900E+0004 4.46828009939427E+0004 4.47034096640635E+0004 4.47240254238706E+0004 + 4.47446482749822E+0004 4.47652782190173E+0004 4.47859152575940E+0004 4.48065593923316E+0004 4.48272106248490E+0004 + 4.48478689567657E+0004 4.48685343897009E+0004 4.48892069252743E+0004 4.49098865651059E+0004 4.49305733108156E+0004 + 4.49512671640234E+0004 4.49719681263499E+0004 4.49926761994158E+0004 4.50133913848412E+0004 4.50341136842478E+0004 + 4.50548430992563E+0004 4.50755796314881E+0004 4.50963232825645E+0004 4.51170740541074E+0004 4.51378319477387E+0004 + 4.51585969650800E+0004 4.51793691077540E+0004 4.52001483773829E+0004 4.52209347755892E+0004 4.52417283039958E+0004 + 4.52625289642256E+0004 4.52833367579017E+0004 4.53041516866476E+0004 4.53249737520863E+0004 4.53458029558420E+0004 + 4.53666392995386E+0004 4.53874827847999E+0004 4.54083334132499E+0004 4.54291911865135E+0004 4.54500561062152E+0004 + 4.54709281739799E+0004 4.54918073914319E+0004 4.55126937601973E+0004 4.55335872819008E+0004 4.55544879581680E+0004 + 4.55753957906248E+0004 4.55963107808970E+0004 4.56172329306107E+0004 4.56381622413923E+0004 4.56590987148678E+0004 + 4.56800423526644E+0004 4.57009931564085E+0004 4.57219511277273E+0004 4.57429162682479E+0004 4.57638885795978E+0004 + 4.57848680634042E+0004 4.58058547212952E+0004 4.58268485548984E+0004 4.58478495658423E+0004 4.58688577557550E+0004 + 4.58898731262647E+0004 4.59108956790003E+0004 4.59319254155909E+0004 4.59529623376649E+0004 4.59740064468522E+0004 + 4.59950577447816E+0004 4.60161162330830E+0004 4.60371819133860E+0004 4.60582547873206E+0004 4.60793348565170E+0004 + 4.61004221226054E+0004 4.61215165872165E+0004 4.61426182519806E+0004 4.61637271185287E+0004 4.61848431884920E+0004 + 4.62059664635017E+0004 4.62270969451893E+0004 4.62482346351859E+0004 4.62693795351237E+0004 4.62905316466348E+0004 + 4.63116909713510E+0004 4.63328575109047E+0004 4.63540312669285E+0004 4.63752122410551E+0004 4.63964004349174E+0004 + 4.64175958501485E+0004 4.64387984883816E+0004 4.64600083512500E+0004 4.64812254403875E+0004 4.65024497574279E+0004 + 4.65236813040050E+0004 4.65449200817531E+0004 4.65661660923066E+0004 4.65874193373000E+0004 4.66086798183682E+0004 + 4.66299475371457E+0004 4.66512224952677E+0004 4.66725046943699E+0004 4.66937941360874E+0004 4.67150908220558E+0004 + 4.67363947539111E+0004 4.67577059332891E+0004 4.67790243618260E+0004 4.68003500411586E+0004 4.68216829729232E+0004 + 4.68430231587564E+0004 4.68643706002950E+0004 4.68857252991769E+0004 4.69070872570385E+0004 4.69284564755176E+0004 + 4.69498329562519E+0004 4.69712167008795E+0004 4.69926077110380E+0004 4.70140059883660E+0004 4.70354115345014E+0004 + 4.70568243510834E+0004 4.70782444397502E+0004 4.70996718021412E+0004 4.71211064398953E+0004 4.71425483546519E+0004 + 4.71639975480505E+0004 4.71854540217308E+0004 4.72069177773325E+0004 4.72283888164960E+0004 4.72498671408612E+0004 + 4.72713527520689E+0004 4.72928456517593E+0004 4.73143458415734E+0004 4.73358533231522E+0004 4.73573680981367E+0004 + 4.73788901681685E+0004 4.74004195348890E+0004 4.74219561999398E+0004 4.74435001649631E+0004 4.74650514316006E+0004 + 4.74866100014948E+0004 4.75081758762880E+0004 4.75297490576231E+0004 4.75513295471427E+0004 4.75729173464898E+0004 + 4.75945124573078E+0004 4.76161148812397E+0004 4.76377246199294E+0004 4.76593416750204E+0004 4.76809660481570E+0004 + 4.77025977409827E+0004 4.77242367551421E+0004 4.77458830922799E+0004 4.77675367540404E+0004 4.77891977420684E+0004 + 4.78108660580094E+0004 4.78325417035082E+0004 4.78542246802103E+0004 4.78759149897614E+0004 4.78976126338070E+0004 + 4.79193176139932E+0004 4.79410299319662E+0004 4.79627495893721E+0004 4.79844765878578E+0004 4.80062109290694E+0004 + 4.80279526146542E+0004 4.80497016462591E+0004 4.80714580255314E+0004 4.80932217541183E+0004 4.81149928336678E+0004 + 4.81367712658274E+0004 4.81585570522450E+0004 4.81803501945687E+0004 4.82021506944473E+0004 4.82239585535290E+0004 + 4.82457737734625E+0004 4.82675963558966E+0004 4.82894263024805E+0004 4.83112636148635E+0004 4.83331082946950E+0004 + 4.83549603436247E+0004 4.83768197633021E+0004 4.83986865553776E+0004 4.84205607215011E+0004 4.84424422633230E+0004 + 4.84643311824938E+0004 4.84862274806645E+0004 4.85081311594857E+0004 4.85300422206089E+0004 4.85519606656847E+0004 + 4.85738864963651E+0004 4.85958197143017E+0004 4.86177603211460E+0004 4.86397083185505E+0004 4.86616637081670E+0004 + 4.86836264916481E+0004 4.87055966706462E+0004 4.87275742468144E+0004 4.87495592218052E+0004 4.87715515972719E+0004 + 4.87935513748678E+0004 4.88155585562466E+0004 4.88375731430614E+0004 4.88595951369666E+0004 4.88816245396161E+0004 + 4.89036613526640E+0004 4.89257055777648E+0004 4.89477572165732E+0004 4.89698162707436E+0004 4.89918827419314E+0004 + 4.90139566317914E+0004 4.90360379419794E+0004 4.90581266741501E+0004 4.90802228299599E+0004 4.91023264110647E+0004 + 4.91244374191201E+0004 4.91465558557825E+0004 4.91686817227086E+0004 4.91908150215546E+0004 4.92129557539776E+0004 + 4.92351039216345E+0004 4.92572595261824E+0004 4.92794225692787E+0004 4.93015930525810E+0004 4.93237709777468E+0004 + 4.93459563464344E+0004 4.93681491603017E+0004 4.93903494210065E+0004 4.94125571302080E+0004 4.94347722895644E+0004 + 4.94569949007347E+0004 4.94792249653776E+0004 4.95014624851525E+0004 4.95237074617192E+0004 4.95459598967365E+0004 + 4.95682197918647E+0004 4.95904871487633E+0004 4.96127619690928E+0004 4.96350442545132E+0004 4.96573340066851E+0004 + 4.96796312272693E+0004 4.97019359179264E+0004 4.97242480803175E+0004 4.97465677161036E+0004 4.97688948269467E+0004 + 4.97912294145080E+0004 4.98135714804492E+0004 4.98359210264322E+0004 4.98582780541194E+0004 4.98806425651730E+0004 + 4.99030145612555E+0004 4.99253940440294E+0004 4.99477810151578E+0004 4.99701754763038E+0004 4.99925774291303E+0004 + 5.00149868753011E+0004 5.00374038164797E+0004 5.00598282543296E+0004 5.00822601905152E+0004 5.01046996267004E+0004 + 5.01271465645497E+0004 5.01496010057274E+0004 5.01720629518982E+0004 5.01945324047273E+0004 5.02170093658796E+0004 + 5.02394938370204E+0004 5.02619858198150E+0004 5.02844853159292E+0004 5.03069923270287E+0004 5.03295068547794E+0004 + 5.03520289008480E+0004 5.03745584669003E+0004 5.03970955546028E+0004 5.04196401656227E+0004 5.04421923016266E+0004 + 5.04647519642817E+0004 5.04873191552551E+0004 5.05098938762145E+0004 5.05324761288275E+0004 5.05550659147620E+0004 + 5.05776632356859E+0004 5.06002680932676E+0004 5.06228804891749E+0004 5.06455004250769E+0004 5.06681279026424E+0004 + 5.06907629235403E+0004 5.07134054894394E+0004 5.07360556020093E+0004 5.07587132629193E+0004 5.07813784738393E+0004 + 5.08040512364387E+0004 5.08267315523883E+0004 5.08494194233578E+0004 5.08721148510176E+0004 5.08948178370385E+0004 + 5.09175283830912E+0004 5.09402464908465E+0004 5.09629721619759E+0004 5.09857053981506E+0004 5.10084462010417E+0004 + 5.10311945723215E+0004 5.10539505136614E+0004 5.10767140267339E+0004 5.10994851132110E+0004 5.11222637747651E+0004 + 5.11450500130689E+0004 5.11678438297953E+0004 5.11906452266171E+0004 5.12134542052075E+0004 5.12362707672401E+0004 + 5.12590949143879E+0004 5.12819266483253E+0004 5.13047659707256E+0004 5.13276128832633E+0004 5.13504673876127E+0004 + 5.13733294854476E+0004 5.13961991784435E+0004 5.14190764682748E+0004 5.14419613566165E+0004 5.14648538451439E+0004 + 5.14877539355325E+0004 5.15106616294573E+0004 5.15335769285946E+0004 5.15564998346204E+0004 5.15794303492103E+0004 + 5.16023684740410E+0004 5.16253142107888E+0004 5.16482675611306E+0004 5.16712285267428E+0004 5.16941971093029E+0004 + 5.17171733104879E+0004 5.17401571319752E+0004 5.17631485754424E+0004 5.17861476425672E+0004 5.18091543350278E+0004 + 5.18321686545020E+0004 5.18551906026684E+0004 5.18782201812054E+0004 5.19012573917916E+0004 5.19243022361060E+0004 + 5.19473547158275E+0004 5.19704148326355E+0004 5.19934825882096E+0004 5.20165579842289E+0004 5.20396410223736E+0004 + 5.20627317043234E+0004 5.20858300317586E+0004 5.21089360063599E+0004 5.21320496298072E+0004 5.21551709037817E+0004 + 5.21782998299639E+0004 5.22014364100351E+0004 5.22245806456766E+0004 5.22477325385698E+0004 5.22708920903961E+0004 + 5.22940593028378E+0004 5.23172341775764E+0004 5.23404167162945E+0004 5.23636069206741E+0004 5.23868047923980E+0004 + 5.24100103331489E+0004 5.24332235446098E+0004 5.24564444284636E+0004 5.24796729863936E+0004 5.25029092200834E+0004 + 5.25261531312164E+0004 5.25494047214771E+0004 5.25726639925487E+0004 5.25959309461159E+0004 5.26192055838630E+0004 + 5.26424879074744E+0004 5.26657779186349E+0004 5.26890756190299E+0004 5.27123810103441E+0004 5.27356940942626E+0004 + 5.27590148724715E+0004 5.27823433466558E+0004 5.28056795185020E+0004 5.28290233896958E+0004 5.28523749619235E+0004 + 5.28757342368712E+0004 5.28991012162262E+0004 5.29224759016747E+0004 5.29458582949040E+0004 5.29692483976012E+0004 + 5.29926462114532E+0004 5.30160517381480E+0004 5.30394649793733E+0004 5.30628859368166E+0004 5.30863146121664E+0004 + 5.31097510071106E+0004 5.31331951233379E+0004 5.31566469625370E+0004 5.31801065263962E+0004 5.32035738166050E+0004 + 5.32270488348523E+0004 5.32505315828277E+0004 5.32740220622207E+0004 5.32975202747207E+0004 5.33210262220178E+0004 + 5.33445399058023E+0004 5.33680613277643E+0004 5.33915904895941E+0004 5.34151273929828E+0004 5.34386720396206E+0004 + 5.34622244311993E+0004 5.34857845694092E+0004 5.35093524559424E+0004 5.35329280924901E+0004 5.35565114807441E+0004 + 5.35801026223965E+0004 5.36037015191392E+0004 5.36273081726646E+0004 5.36509225846652E+0004 5.36745447568338E+0004 + 5.36981746908630E+0004 5.37218123884459E+0004 5.37454578512759E+0004 5.37691110810462E+0004 5.37927720794505E+0004 + 5.38164408481824E+0004 5.38401173889360E+0004 5.38638017034055E+0004 5.38874937932852E+0004 5.39111936602695E+0004 + 5.39349013060533E+0004 5.39586167323311E+0004 5.39823399407984E+0004 5.40060709331499E+0004 5.40298097110818E+0004 + 5.40535562762892E+0004 5.40773106304677E+0004 5.41010727753137E+0004 5.41248427125232E+0004 5.41486204437927E+0004 + 5.41724059708184E+0004 5.41961992952971E+0004 5.42200004189264E+0004 5.42438093434023E+0004 5.42676260704226E+0004 + 5.42914506016849E+0004 5.43152829388867E+0004 5.43391230837256E+0004 5.43629710378997E+0004 5.43868268031074E+0004 + 5.44106903810470E+0004 5.44345617734167E+0004 5.44584409819159E+0004 5.44823280082430E+0004 5.45062228540973E+0004 + 5.45301255211780E+0004 5.45540360111846E+0004 5.45779543258169E+0004 5.46018804667746E+0004 5.46258144357577E+0004 + 5.46497562344666E+0004 5.46737058646014E+0004 5.46976633278630E+0004 5.47216286259519E+0004 5.47456017605690E+0004 + 5.47695827334160E+0004 5.47935715461936E+0004 5.48175682006035E+0004 5.48415726983473E+0004 5.48655850411271E+0004 + 5.48896052306448E+0004 5.49136332686025E+0004 5.49376691567028E+0004 5.49617128966483E+0004 5.49857644901416E+0004 + 5.50098239388861E+0004 5.50338912445845E+0004 5.50579664089403E+0004 5.50820494336571E+0004 5.51061403204384E+0004 + 5.51302390709885E+0004 5.51543456870108E+0004 5.51784601702102E+0004 5.52025825222910E+0004 5.52267127449575E+0004 + 5.52508508399149E+0004 5.52749968088680E+0004 5.52991506535220E+0004 5.53233123755822E+0004 5.53474819767544E+0004 + 5.53716594587440E+0004 5.53958448232572E+0004 5.54200380719997E+0004 5.54442392066784E+0004 5.54684482289990E+0004 + 5.54926651406689E+0004 5.55168899433943E+0004 5.55411226388827E+0004 5.55653632288411E+0004 5.55896117149768E+0004 + 5.56138680989975E+0004 5.56381323826112E+0004 5.56624045675251E+0004 5.56866846554480E+0004 5.57109726480879E+0004 + 5.57352685471536E+0004 5.57595723543533E+0004 5.57838840713961E+0004 5.58082036999912E+0004 5.58325312418477E+0004 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 2.25335734612510E+0000 + 2.25209420332874E+0000 2.25083167236899E+0000 2.24956975299087E+0000 2.24830844493953E+0000 2.24704774796018E+0000 + 2.24578766179813E+0000 2.24452818619880E+0000 2.24326932090767E+0000 2.24201106567033E+0000 2.24075342023248E+0000 + 2.23949638433987E+0000 2.23823995773837E+0000 2.23698414017394E+0000 2.23572893139262E+0000 2.23447433114055E+0000 + 2.23322033916397E+0000 2.23196695520918E+0000 2.23071417902260E+0000 2.22946201035074E+0000 2.22821044894020E+0000 + 2.22695949453765E+0000 2.22570914688988E+0000 2.22445940574375E+0000 2.22321027084622E+0000 2.22196174194435E+0000 + 2.22071381878527E+0000 2.21946650111623E+0000 2.21821978868454E+0000 2.21697368123763E+0000 2.21572817852299E+0000 + 2.21448328028823E+0000 2.21323898628103E+0000 2.21199529624917E+0000 2.21075220994053E+0000 2.20950972710307E+0000 + 2.20826784748483E+0000 2.20702657083397E+0000 2.20578589689872E+0000 2.20454582542739E+0000 2.20330635616841E+0000 + 2.20206748887029E+0000 2.20082922328161E+0000 2.19959155915108E+0000 2.19835449622745E+0000 2.19711803425962E+0000 + 2.19588217299653E+0000 2.19464691218724E+0000 2.19341225158088E+0000 2.19217819092669E+0000 2.19094472997399E+0000 + 2.18971186847219E+0000 2.18847960617080E+0000 2.18724794281940E+0000 2.18601687816769E+0000 2.18478641196542E+0000 + 2.18355654396248E+0000 2.18232727390881E+0000 2.18109860155446E+0000 2.17987052664956E+0000 2.17864304894433E+0000 + 2.17741616818910E+0000 2.17618988413426E+0000 2.17496419653032E+0000 2.17373910512786E+0000 2.17251460967755E+0000 + 2.17129070993016E+0000 2.17006740563654E+0000 2.16884469654765E+0000 2.16762258241450E+0000 2.16640106298824E+0000 + 2.16518013802008E+0000 2.16395980726132E+0000 2.16274007046336E+0000 2.16152092737767E+0000 2.16030237775584E+0000 + 2.15908442134953E+0000 2.15786705791049E+0000 2.15665028719057E+0000 2.15543410894170E+0000 2.15421852291590E+0000 + 2.15300352886529E+0000 2.15178912654206E+0000 2.15057531569852E+0000 2.14936209608703E+0000 2.14814946746007E+0000 + 2.14693742957021E+0000 2.14572598217008E+0000 2.14451512501243E+0000 2.14330485785009E+0000 2.14209518043597E+0000 + 2.14088609252309E+0000 2.13967759386453E+0000 2.13846968421348E+0000 2.13726236332322E+0000 2.13605563094711E+0000 + 2.13484948683860E+0000 2.13364393075124E+0000 2.13243896243865E+0000 2.13123458165456E+0000 2.13003078815278E+0000 + 2.12882758168721E+0000 2.12762496201182E+0000 2.12642292888070E+0000 2.12522148204802E+0000 2.12402062126803E+0000 + 2.12282034629506E+0000 2.12162065688356E+0000 2.12042155278804E+0000 2.11922303376312E+0000 2.11802509956348E+0000 + 2.11682774994393E+0000 2.11563098465933E+0000 2.11443480346464E+0000 2.11323920611493E+0000 2.11204419236533E+0000 + 2.11084976197108E+0000 2.10965591468749E+0000 2.10846265026997E+0000 2.10726996847402E+0000 2.10607786905521E+0000 + 2.10488635176923E+0000 2.10369541637184E+0000 2.10250506261888E+0000 2.10131529026630E+0000 2.10012609907011E+0000 + 2.09893748878644E+0000 2.09774945917149E+0000 2.09656200998155E+0000 2.09537514097299E+0000 2.09418885190230E+0000 + 2.09300314252601E+0000 2.09181801260079E+0000 2.09063346188335E+0000 2.08944949013052E+0000 2.08826609709921E+0000 + 2.08708328254642E+0000 2.08590104622923E+0000 2.08471938790481E+0000 2.08353830733042E+0000 2.08235780426341E+0000 + 2.08117787846122E+0000 2.07999852968138E+0000 2.07881975768149E+0000 2.07764156221925E+0000 2.07646394305245E+0000 + 2.07528689993897E+0000 2.07411043263677E+0000 2.07293454090391E+0000 2.07175922449851E+0000 2.07058448317881E+0000 + 2.06941031670312E+0000 2.06823672482984E+0000 2.06706370731746E+0000 2.06589126392456E+0000 2.06471939440980E+0000 + 2.06354809853193E+0000 2.06237737604980E+0000 2.06120722672232E+0000 2.06003765030852E+0000 2.05886864656749E+0000 + 2.05770021525842E+0000 2.05653235614059E+0000 2.05536506897336E+0000 2.05419835351619E+0000 2.05303220952860E+0000 + 2.05186663677023E+0000 2.05070163500078E+0000 2.04953720398007E+0000 2.04837334346796E+0000 2.04721005322444E+0000 + 2.04604733300956E+0000 2.04488518258348E+0000 2.04372360170643E+0000 2.04256259013873E+0000 2.04140214764079E+0000 + 2.04024227397310E+0000 2.03908296889625E+0000 2.03792423217091E+0000 2.03676606355782E+0000 2.03560846281785E+0000 + 2.03445142971191E+0000 2.03329496400101E+0000 2.03213906544628E+0000 2.03098373380889E+0000 2.02982896885012E+0000 + 2.02867477033133E+0000 2.02752113801398E+0000 2.02636807165960E+0000 2.02521557102981E+0000 2.02406363588633E+0000 + 2.02291226599094E+0000 2.02176146110554E+0000 2.02061122099209E+0000 2.01946154541265E+0000 2.01831243412936E+0000 + 2.01716388690444E+0000 2.01601590350022E+0000 2.01486848367909E+0000 2.01372162720354E+0000 2.01257533383615E+0000 + 2.01142960333957E+0000 2.01028443547655E+0000 2.00913983000992E+0000 2.00799578670260E+0000 2.00685230531760E+0000 + 2.00570938561800E+0000 2.00456702736699E+0000 2.00342523032782E+0000 2.00228399426384E+0000 2.00114331893850E+0000 + 2.00000320411530E+0000 1.99886364955786E+0000 1.99772465502987E+0000 1.99658622029511E+0000 1.99544834511744E+0000 + 1.99431102926081E+0000 1.99317427248925E+0000 1.99203807456690E+0000 1.99090243525796E+0000 1.98976735432672E+0000 + 1.98863283153755E+0000 1.98749886665493E+0000 1.98636545944341E+0000 1.98523260966761E+0000 1.98410031709227E+0000 + 1.98296858148218E+0000 1.98183740260225E+0000 1.98070678021744E+0000 1.97957671409283E+0000 1.97844720399356E+0000 + 1.97731824968487E+0000 1.97618985093208E+0000 1.97506200750058E+0000 1.97393471915588E+0000 1.97280798566354E+0000 + 1.97168180678923E+0000 1.97055618229870E+0000 1.96943111195777E+0000 1.96830659553237E+0000 1.96718263278849E+0000 + 1.96605922349223E+0000 1.96493636740975E+0000 1.96381406430731E+0000 1.96269231395126E+0000 1.96157111610802E+0000 + 1.96045047054411E+0000 1.95933037702612E+0000 1.95821083532073E+0000 1.95709184519471E+0000 1.95597340641492E+0000 + 1.95485551874829E+0000 1.95373818196184E+0000 1.95262139582268E+0000 1.95150516009801E+0000 1.95038947455509E+0000 + 1.94927433896130E+0000 1.94815975308407E+0000 1.94704571669093E+0000 1.94593222954951E+0000 1.94481929142749E+0000 + 1.94370690209268E+0000 1.94259506131293E+0000 1.94148376885619E+0000 1.94037302449051E+0000 1.93926282798402E+0000 + 1.93815317910490E+0000 1.93704407762147E+0000 1.93593552330209E+0000 1.93482751591523E+0000 1.93372005522942E+0000 + 1.93261314101330E+0000 1.93150677303559E+0000 1.93040095106507E+0000 1.92929567487063E+0000 1.92819094422124E+0000 + 1.92708675888595E+0000 1.92598311863390E+0000 1.92488002323429E+0000 1.92377747245644E+0000 1.92267546606973E+0000 + 1.92157400384363E+0000 1.92047308554770E+0000 1.91937271095157E+0000 1.91827287982498E+0000 1.91717359193772E+0000 + 1.91607484705969E+0000 1.91497664496086E+0000 1.91387898541129E+0000 1.91278186818113E+0000 1.91168529304059E+0000 + 1.91058925976000E+0000 1.90949376810974E+0000 1.90839881786030E+0000 1.90730440878223E+0000 1.90621054064618E+0000 + 1.90511721322287E+0000 1.90402442628313E+0000 1.90293217959785E+0000 1.90184047293800E+0000 1.90074930607465E+0000 + 1.89965867877895E+0000 1.89856859082213E+0000 1.89747904197550E+0000 1.89639003201045E+0000 1.89530156069848E+0000 + 1.89421362781114E+0000 1.89312623312008E+0000 1.89203937639703E+0000 1.89095305741381E+0000 1.88986727594232E+0000 + 1.88878203175452E+0000 1.88769732462250E+0000 1.88661315431839E+0000 1.88552952061443E+0000 1.88444642328293E+0000 + 1.88336386209628E+0000 1.88228183682697E+0000 1.88120034724756E+0000 1.88011939313070E+0000 1.87903897424911E+0000 + 1.87795909037560E+0000 1.87687974128308E+0000 1.87580092674452E+0000 1.87472264653298E+0000 1.87364490042160E+0000 + 1.87256768818361E+0000 1.87149100959232E+0000 1.87041486442113E+0000 1.86933925244350E+0000 1.86826417343299E+0000 + 1.86718962716326E+0000 1.86611561340801E+0000 1.86504213194106E+0000 1.86396918253629E+0000 1.86289676496768E+0000 + 1.86182487900928E+0000 1.86075352443523E+0000 1.85968270101974E+0000 1.85861240853711E+0000 1.85754264676174E+0000 + 1.85647341546808E+0000 1.85540471443069E+0000 1.85433654342420E+0000 1.85326890222332E+0000 1.85220179060285E+0000 + 1.85113520833766E+0000 1.85006915520272E+0000 1.84900363097308E+0000 1.84793863542384E+0000 1.84687416833024E+0000 + 1.84581022946754E+0000 1.84474681861113E+0000 1.84368393553647E+0000 1.84262158001907E+0000 1.84155975183457E+0000 + 1.84049845075867E+0000 1.83943767656715E+0000 1.83837742903587E+0000 1.83731770794077E+0000 1.83625851305790E+0000 + 1.83519984416336E+0000 1.83414170103333E+0000 1.83308408344410E+0000 1.83202699117202E+0000 1.83097042399353E+0000 + 1.82991438168516E+0000 1.82885886402349E+0000 1.82780387078522E+0000 1.82674940174711E+0000 1.82569545668601E+0000 + 1.82464203537884E+0000 1.82358913760262E+0000 1.82253676313443E+0000 1.82148491175146E+0000 1.82043358323096E+0000 + 1.81938277735026E+0000 1.81833249388678E+0000 1.81728273261802E+0000 1.81623349332157E+0000 1.81518477577508E+0000 + 1.81413657975630E+0000 1.81308890504305E+0000 1.81204175141325E+0000 1.81099511864488E+0000 1.80994900651601E+0000 + 1.80890341480478E+0000 1.80785834328945E+0000 1.80681379174830E+0000 1.80576975995975E+0000 1.80472624770227E+0000 + 1.80368325475440E+0000 1.80264078089480E+0000 1.80159882590218E+0000 1.80055738955535E+0000 1.79951647163317E+0000 + 1.79847607191462E+0000 1.79743619017874E+0000 1.79639682620465E+0000 1.79535797977155E+0000 1.79431965065875E+0000 + 1.79328183864559E+0000 1.79224454351153E+0000 1.79120776503611E+0000 1.79017150299892E+0000 1.78913575717966E+0000 + 1.78810052735809E+0000 1.78706581331409E+0000 1.78603161482756E+0000 1.78499793167854E+0000 1.78396476364711E+0000 + 1.78293211051344E+0000 1.78189997205780E+0000 1.78086834806052E+0000 1.77983723830202E+0000 1.77880664256279E+0000 + 1.77777656062340E+0000 1.77674699226453E+0000 1.77571793726691E+0000 1.77468939541135E+0000 1.77366136647876E+0000 + 1.77263385025012E+0000 1.77160684650648E+0000 1.77058035502899E+0000 1.76955437559886E+0000 1.76852890799741E+0000 + 1.76750395200601E+0000 1.76647950740612E+0000 1.76545557397929E+0000 1.76443215150713E+0000 1.76340923977135E+0000 + 1.76238683855373E+0000 1.76136494763614E+0000 1.76034356680051E+0000 1.75932269582888E+0000 1.75830233450333E+0000 + 1.75728248260606E+0000 1.75626313991933E+0000 1.75524430622547E+0000 1.75422598130692E+0000 1.75320816494618E+0000 + 1.75219085692582E+0000 1.75117405702851E+0000 1.75015776503700E+0000 1.74914198073409E+0000 1.74812670390270E+0000 + 1.74711193432581E+0000 1.74609767178648E+0000 1.74508391606784E+0000 1.74407066695312E+0000 1.74305792422563E+0000 + 1.74204568766873E+0000 1.74103395706588E+0000 1.74002273220064E+0000 1.73901201285661E+0000 1.73800179881749E+0000 + 1.73699208986706E+0000 1.73598288578919E+0000 1.73497418636779E+0000 1.73396599138689E+0000 1.73295830063059E+0000 + 1.73195111388306E+0000 1.73094443092855E+0000 1.72993825155140E+0000 1.72893257553601E+0000 1.72792740266689E+0000 + 1.72692273272860E+0000 1.72591856550579E+0000 1.72491490078319E+0000 1.72391173834561E+0000 1.72290907797794E+0000 + 1.72190691946514E+0000 1.72090526259226E+0000 1.71990410714442E+0000 1.71890345290684E+0000 1.71790329966478E+0000 + 1.71690364720362E+0000 1.71590449530879E+0000 1.71490584376582E+0000 1.71390769236030E+0000 1.71291004087792E+0000 + 1.71191288910442E+0000 1.71091623682564E+0000 1.70992008382750E+0000 1.70892442989599E+0000 1.70792927481718E+0000 + 1.70693461837722E+0000 1.70594046036234E+0000 1.70494680055886E+0000 1.70395363875314E+0000 1.70296097473167E+0000 + 1.70196880828098E+0000 1.70097713918770E+0000 1.69998596723853E+0000 1.69899529222024E+0000 1.69800511391970E+0000 + 1.69701543212383E+0000 1.69602624661966E+0000 1.69503755719428E+0000 1.69404936363487E+0000 1.69306166572866E+0000 + 1.69207446326299E+0000 1.69108775602526E+0000 1.69010154380297E+0000 1.68911582638367E+0000 1.68813060355500E+0000 + 1.68714587510470E+0000 1.68616164082054E+0000 1.68517790049041E+0000 1.68419465390227E+0000 1.68321190084414E+0000 + 1.68222964110413E+0000 1.68124787447044E+0000 1.68026660073134E+0000 1.67928581967516E+0000 1.67830553109032E+0000 + 1.67732573476534E+0000 1.67634643048879E+0000 1.67536761804931E+0000 1.67438929723566E+0000 1.67341146783664E+0000 + 1.67243412964114E+0000 1.67145728243813E+0000 1.67048092601666E+0000 1.66950506016584E+0000 1.66852968467488E+0000 + 1.66755479933307E+0000 1.66658040392974E+0000 1.66560649825435E+0000 1.66463308209640E+0000 1.66366015524548E+0000 + 1.66268771749126E+0000 1.66171576862349E+0000 1.66074430843198E+0000 1.65977333670663E+0000 1.65880285323743E+0000 + 1.65783285781443E+0000 1.65686335022776E+0000 1.65589433026763E+0000 1.65492579772433E+0000 1.65395775238822E+0000 + 1.65299019404974E+0000 1.65202312249942E+0000 1.65105653752785E+0000 1.65009043892570E+0000 1.64912482648372E+0000 + 1.64815969999275E+0000 1.64719505924369E+0000 1.64623090402752E+0000 1.64526723413530E+0000 1.64430404935817E+0000 + 1.64334134948734E+0000 1.64237913431410E+0000 1.64141740362982E+0000 1.64045615722596E+0000 1.63949539489402E+0000 + 1.63853511642560E+0000 1.63757532161240E+0000 1.63661601024615E+0000 1.63565718211868E+0000 1.63469883702192E+0000 + 1.63374097474782E+0000 1.63278359508847E+0000 1.63182669783600E+0000 1.63087028278261E+0000 1.62991434972060E+0000 + 1.62895889844234E+0000 1.62800392874028E+0000 1.62704944040693E+0000 1.62609543323489E+0000 1.62514190701683E+0000 + 1.62418886154551E+0000 1.62323629661376E+0000 1.62228421201447E+0000 1.62133260754064E+0000 1.62038148298530E+0000 + 1.61943083814161E+0000 1.61848067280277E+0000 1.61753098676206E+0000 1.61658177981285E+0000 1.61563305174858E+0000 + 1.61468480236276E+0000 1.61373703144899E+0000 1.61278973880094E+0000 1.61184292421234E+0000 1.61089658747702E+0000 + 1.60995072838887E+0000 1.60900534674188E+0000 1.60806044233008E+0000 1.60711601494761E+0000 1.60617206438867E+0000 + 1.60522859044752E+0000 1.60428559291854E+0000 1.60334307159615E+0000 1.60240102627485E+0000 1.60145945674923E+0000 + 1.60051836281394E+0000 1.59957774426372E+0000 1.59863760089338E+0000 1.59769793249780E+0000 1.59675873887195E+0000 + 1.59582001981086E+0000 1.59488177510965E+0000 1.59394400456351E+0000 1.59300670796770E+0000 1.59206988511757E+0000 + 1.59113353580852E+0000 1.59019765983605E+0000 1.58926225699574E+0000 1.58832732708322E+0000 1.58739286989421E+0000 + 1.58645888522451E+0000 1.58552537286999E+0000 1.58459233262660E+0000 1.58365976429035E+0000 1.58272766765734E+0000 + 1.58179604252376E+0000 1.58086488868584E+0000 1.57993420593991E+0000 1.57900399408236E+0000 1.57807425290968E+0000 + 1.57714498221842E+0000 1.57621618180519E+0000 1.57528785146670E+0000 1.57435999099972E+0000 1.57343260020112E+0000 + 1.57250567886780E+0000 1.57157922679678E+0000 1.57065324378513E+0000 1.56972772963000E+0000 1.56880268412863E+0000 + 1.56787810707831E+0000 1.56695399827641E+0000 1.56603035752041E+0000 1.56510718460781E+0000 1.56418447933623E+0000 + 1.56326224150334E+0000 1.56234047090689E+0000 1.56141916734472E+0000 1.56049833061472E+0000 1.55957796051488E+0000 + 1.55865805684324E+0000 1.55773861939793E+0000 1.55681964797716E+0000 1.55590114237920E+0000 1.55498310240240E+0000 + 1.55406552784520E+0000 1.55314841850608E+0000 1.55223177418364E+0000 1.55131559467651E+0000 1.55039987978343E+0000 + 1.54948462930319E+0000 1.54856984303467E+0000 1.54765552077682E+0000 1.54674166232866E+0000 1.54582826748930E+0000 + 1.54491533605790E+0000 1.54400286783371E+0000 1.54309086261605E+0000 1.54217932020432E+0000 1.54126824039800E+0000 + 1.54035762299662E+0000 1.53944746779981E+0000 1.53853777460726E+0000 1.53762854321874E+0000 1.53671977343409E+0000 + 1.53581146505324E+0000 1.53490361787616E+0000 1.53399623170292E+0000 1.53308930633368E+0000 1.53218284156863E+0000 + 1.53127683720807E+0000 1.53037129305237E+0000 1.52946620890195E+0000 1.52856158455733E+0000 1.52765741981909E+0000 + 1.52675371448789E+0000 1.52585046836447E+0000 1.52494768124962E+0000 1.52404535294424E+0000 1.52314348324928E+0000 + 1.52224207196575E+0000 1.52134111889478E+0000 1.52044062383753E+0000 1.51954058659526E+0000 1.51864100696928E+0000 + 1.51774188476100E+0000 1.51684321977189E+0000 1.51594501180349E+0000 1.51504726065743E+0000 1.51414996613539E+0000 + 1.51325312803914E+0000 1.51235674617053E+0000 1.51146082033146E+0000 1.51056535032393E+0000 1.50967033594999E+0000 + 1.50877577701179E+0000 1.50788167331152E+0000 1.50698802465148E+0000 1.50609483083401E+0000 1.50520209166154E+0000 + 1.50430980693659E+0000 1.50341797646172E+0000 1.50252660003957E+0000 1.50163567747289E+0000 1.50074520856446E+0000 + 1.49985519311714E+0000 1.49896563093389E+0000 1.49807652181772E+0000 1.49718786557172E+0000 1.49629966199904E+0000 + 1.49541191090294E+0000 1.49452461208670E+0000 1.49363776535373E+0000 1.49275137050746E+0000 1.49186542735144E+0000 + 1.49097993568926E+0000 1.49009489532460E+0000 1.48921030606119E+0000 1.48832616770288E+0000 1.48744248005354E+0000 + 1.48655924291714E+0000 1.48567645609773E+0000 1.48479411939941E+0000 1.48391223262638E+0000 1.48303079558289E+0000 + 1.48214980807326E+0000 1.48126926990191E+0000 1.48038918087332E+0000 1.47950954079202E+0000 1.47863034946265E+0000 + 1.47775160668989E+0000 1.47687331227853E+0000 1.47599546603339E+0000 1.47511806775938E+0000 1.47424111726151E+0000 + 1.47336461434482E+0000 1.47248855881444E+0000 1.47161295047559E+0000 1.47073778913353E+0000 1.46986307459361E+0000 + 1.46898880666126E+0000 1.46811498514196E+0000 1.46724160984130E+0000 1.46636868056489E+0000 1.46549619711847E+0000 + 1.46462415930779E+0000 1.46375256693874E+0000 1.46288141981723E+0000 1.46201071774926E+0000 1.46114046054090E+0000 + 1.46027064799831E+0000 1.45940127992769E+0000 1.45853235613535E+0000 1.45766387642763E+0000 1.45679584061098E+0000 + 1.45592824849189E+0000 1.45506109987696E+0000 1.45419439457282E+0000 1.45332813238620E+0000 1.45246231312390E+0000 + 1.45159693659279E+0000 1.45073200259979E+0000 1.44986751095192E+0000 1.44900346145627E+0000 1.44813985391999E+0000 + 1.44727668815030E+0000 1.44641396395451E+0000 1.44555168113998E+0000 1.44468983951415E+0000 1.44382843888454E+0000 + 1.44296747905875E+0000 1.44210695984441E+0000 1.44124688104926E+0000 1.44038724248111E+0000 1.43952804394783E+0000 + 1.43866928525736E+0000 1.43781096621771E+0000 1.43695308663698E+0000 1.43609564632332E+0000 1.43523864508496E+0000 + 1.43438208273022E+0000 1.43352595906745E+0000 1.43267027390512E+0000 1.43181502705173E+0000 1.43096021831587E+0000 + 1.43010584750620E+0000 1.42925191443146E+0000 1.42839841890045E+0000 1.42754536072204E+0000 1.42669273970518E+0000 + 1.42584055565888E+0000 1.42498880839224E+0000 1.42413749771441E+0000 1.42328662343463E+0000 1.42243618536219E+0000 + 1.42158618330647E+0000 1.42073661707692E+0000 1.41988748648305E+0000 1.41903879133444E+0000 1.41819053144077E+0000 + 1.41734270661174E+0000 1.41649531665718E+0000 1.41564836138693E+0000 1.41480184061097E+0000 1.41395575413928E+0000 + 1.41311010178196E+0000 1.41226488334916E+0000 1.41142009865111E+0000 1.41057574749811E+0000 1.40973182970053E+0000 + 1.40888834506880E+0000 1.40804529341343E+0000 1.40720267454501E+0000 1.40636048827419E+0000 1.40551873441169E+0000 + 1.40467741276830E+0000 1.40383652315488E+0000 1.40299606538238E+0000 1.40215603926179E+0000 1.40131644460420E+0000 + 1.40047728122075E+0000 1.39963854892265E+0000 1.39880024752120E+0000 1.39796237682776E+0000 1.39712493665374E+0000 + 1.39628792681066E+0000 1.39545134711008E+0000 1.39461519736365E+0000 1.39377947738307E+0000 1.39294418698013E+0000 + 1.39210932596667E+0000 1.39127489415463E+0000 1.39044089135599E+0000 1.38960731738281E+0000 1.38877417204724E+0000 + 1.38794145516147E+0000 1.38710916653778E+0000 1.38627730598851E+0000 1.38544587332608E+0000 1.38461486836297E+0000 + 1.38378429091174E+0000 1.38295414078501E+0000 1.38212441779548E+0000 1.38129512175591E+0000 1.38046625247914E+0000 + 1.37963780977808E+0000 1.37880979346569E+0000 1.37798220335503E+0000 1.37715503925922E+0000 1.37632830099143E+0000 + 1.37550198836492E+0000 1.37467610119303E+0000 1.37385063928914E+0000 1.37302560246671E+0000 1.37220099053930E+0000 + 1.37137680332049E+0000 1.37055304062398E+0000 1.36972970226349E+0000 1.36890678805285E+0000 1.36808429780593E+0000 + 1.36726223133671E+0000 1.36644058845919E+0000 1.36561936898747E+0000 1.36479857273571E+0000 1.36397819951816E+0000 + 1.36315824914911E+0000 1.36233872144292E+0000 1.36151961621406E+0000 1.36070093327701E+0000 1.35988267244638E+0000 + 1.35906483353680E+0000 1.35824741636300E+0000 1.35743042073976E+0000 1.35661384648195E+0000 1.35579769340450E+0000 + 1.35498196132239E+0000 1.35416665005070E+0000 1.35335175940457E+0000 1.35253728919919E+0000 1.35172323924985E+0000 + 1.35090960937189E+0000 1.35009639938072E+0000 1.34928360909183E+0000 1.34847123832076E+0000 1.34765928688314E+0000 + 1.34684775459466E+0000 1.34603664127108E+0000 1.34522594672823E+0000 1.34441567078200E+0000 1.34360581324836E+0000 + 1.34279637394335E+0000 1.34198735268307E+0000 1.34117874928370E+0000 1.34037056356148E+0000 1.33956279533272E+0000 + 1.33875544441380E+0000 1.33794851062117E+0000 1.33714199377135E+0000 1.33633589368094E+0000 1.33553021016657E+0000 + 1.33472494304499E+0000 1.33392009213298E+0000 1.33311565724741E+0000 1.33231163820521E+0000 1.33150803482338E+0000 + 1.33070484691899E+0000 1.32990207430917E+0000 1.32909971681114E+0000 1.32829777424216E+0000 1.32749624641959E+0000 + 1.32669513316083E+0000 1.32589443428337E+0000 1.32509414960475E+0000 1.32429427894260E+0000 1.32349482211459E+0000 + 1.32269577893849E+0000 1.32189714923212E+0000 1.32109893281338E+0000 1.32030112950021E+0000 1.31950373911065E+0000 + 1.31870676146281E+0000 1.31791019637483E+0000 1.31711404366497E+0000 1.31631830315152E+0000 1.31552297465284E+0000 + 1.31472805798739E+0000 1.31393355297366E+0000 1.31313945943024E+0000 1.31234577717577E+0000 1.31155250602895E+0000 + 1.31075964580857E+0000 1.30996719633348E+0000 1.30917515742260E+0000 1.30838352889490E+0000 1.30759231056944E+0000 + 1.30680150226534E+0000 1.30601110380180E+0000 1.30522111499805E+0000 1.30443153567344E+0000 1.30364236564736E+0000 + 1.30285360473925E+0000 1.30206525276866E+0000 1.30127730955518E+0000 1.30048977491848E+0000 1.29970264867827E+0000 + 1.29891593065438E+0000 1.29812962066665E+0000 1.29734371853504E+0000 1.29655822407953E+0000 1.29577313712021E+0000 + 1.29498845747722E+0000 1.29420418497074E+0000 1.29342031942108E+0000 1.29263686064855E+0000 1.29185380847358E+0000 + 1.29107116271665E+0000 1.29028892319828E+0000 1.28950708973911E+0000 1.28872566215980E+0000 1.28794464028111E+0000 + 1.28716402392385E+0000 1.28638381290890E+0000 1.28560400705721E+0000 1.28482460618980E+0000 1.28404561012776E+0000 + 1.28326701869223E+0000 1.28248883170444E+0000 1.28171104898567E+0000 1.28093367035727E+0000 1.28015669564068E+0000 + 1.27938012465737E+0000 1.27860395722890E+0000 1.27782819317689E+0000 1.27705283232305E+0000 1.27627787448911E+0000 + 1.27550331949692E+0000 1.27472916716835E+0000 1.27395541732538E+0000 1.27318206979001E+0000 1.27240912438436E+0000 + 1.27163658093058E+0000 1.27086443925089E+0000 1.27009269916759E+0000 1.26932136050305E+0000 1.26855042307968E+0000 + 1.26777988672000E+0000 1.26700975124654E+0000 1.26624001648196E+0000 1.26547068224894E+0000 1.26470174837025E+0000 + 1.26393321466871E+0000 1.26316508096722E+0000 1.26239734708875E+0000 1.26163001285632E+0000 1.26086307809304E+0000 + 1.26009654262207E+0000 1.25933040626663E+0000 1.25856466885002E+0000 1.25779933019562E+0000 1.25703439012684E+0000 + 1.25626984846718E+0000 1.25550570504022E+0000 1.25474195966957E+0000 1.25397861217894E+0000 1.25321566239209E+0000 + 1.25245311013285E+0000 1.25169095522511E+0000 1.25092919749285E+0000 1.25016783676007E+0000 1.24940687285090E+0000 + 1.24864630558947E+0000 1.24788613480003E+0000 1.24712636030687E+0000 1.24636698193435E+0000 1.24560799950690E+0000 + 1.24484941284900E+0000 1.24409122178523E+0000 1.24333342614021E+0000 1.24257602573862E+0000 1.24181902040524E+0000 + 1.24106240996487E+0000 1.24030619424243E+0000 1.23955037306285E+0000 1.23879494625118E+0000 1.23803991363248E+0000 + 1.23728527503193E+0000 1.23653103027474E+0000 1.23577717918621E+0000 1.23502372159167E+0000 1.23427065731656E+0000 + 1.23351798618636E+0000 1.23276570802663E+0000 1.23201382266297E+0000 1.23126232992107E+0000 1.23051122962669E+0000 + 1.22976052160563E+0000 1.22901020568379E+0000 1.22826028168710E+0000 1.22751074944157E+0000 1.22676160877330E+0000 + 1.22601285950842E+0000 1.22526450147313E+0000 1.22451653449373E+0000 1.22376895839655E+0000 1.22302177300799E+0000 + 1.22227497815453E+0000 1.22152857366270E+0000 1.22078255935912E+0000 1.22003693507045E+0000 1.21929170062343E+0000 + 1.21854685584485E+0000 1.21780240056159E+0000 1.21705833460057E+0000 1.21631465778879E+0000 1.21557136995332E+0000 + 1.21482847092128E+0000 1.21408596051987E+0000 1.21334383857635E+0000 1.21260210491804E+0000 1.21186075937232E+0000 + 1.21111980176666E+0000 1.21037923192858E+0000 1.20963904968566E+0000 1.20889925486555E+0000 1.20815984729597E+0000 + 1.20742082680470E+0000 1.20668219321958E+0000 1.20594394636853E+0000 1.20520608607953E+0000 1.20446861218062E+0000 + 1.20373152449990E+0000 1.20299482286554E+0000 1.20225850710579E+0000 1.20152257704895E+0000 1.20078703252337E+0000 + 1.20005187335751E+0000 1.19931709937985E+0000 1.19858271041896E+0000 1.19784870630346E+0000 1.19711508686204E+0000 + 1.19638185192347E+0000 1.19564900131656E+0000 1.19491653487021E+0000 1.19418445241336E+0000 1.19345275377503E+0000 + 1.19272143878430E+0000 1.19199050727032E+0000 1.19125995906230E+0000 1.19052979398951E+0000 1.18980001188130E+0000 + 1.18907061256707E+0000 1.18834159587629E+0000 1.18761296163849E+0000 1.18688470968328E+0000 1.18615683984031E+0000 + 1.18542935193932E+0000 1.18470224581010E+0000 1.18397552128250E+0000 1.18324917818645E+0000 1.18252321635193E+0000 + 1.18179763560900E+0000 1.18107243578777E+0000 1.18034761671842E+0000 1.17962317823119E+0000 1.17889912015639E+0000 + 1.17817544232440E+0000 1.17745214456565E+0000 1.17672922671064E+0000 1.17600668858995E+0000 1.17528453003419E+0000 + 1.17456275087407E+0000 1.17384135094035E+0000 1.17312033006384E+0000 1.17239968807543E+0000 1.17167942480608E+0000 + 1.17095954008680E+0000 1.17024003374866E+0000 1.16952090562283E+0000 1.16880215554049E+0000 1.16808378333293E+0000 + 1.16736578883147E+0000 1.16664817186753E+0000 1.16593093227256E+0000 1.16521406987809E+0000 1.16449758451572E+0000 + 1.16378147601710E+0000 1.16306574421394E+0000 1.16235038893804E+0000 1.16163541002124E+0000 1.16092080729546E+0000 + 1.16020658059266E+0000 1.15949272974489E+0000 1.15877925458425E+0000 1.15806615494291E+0000 1.15735343065309E+0000 + 1.15664108154710E+0000 1.15592910745729E+0000 1.15521750821608E+0000 1.15450628365596E+0000 1.15379543360948E+0000 + 1.15308495790925E+0000 1.15237485638794E+0000 1.15166512887830E+0000 1.15095577521313E+0000 1.15024679522530E+0000 + 1.14953818874773E+0000 1.14882995561343E+0000 1.14812209565544E+0000 1.14741460870690E+0000 1.14670749460098E+0000 + 1.14600075317093E+0000 1.14529438425007E+0000 1.14458838767177E+0000 1.14388276326946E+0000 1.14317751087666E+0000 + 1.14247263032691E+0000 1.14176812145386E+0000 1.14106398409120E+0000 1.14036021807267E+0000 1.13965682323210E+0000 + 1.13895379940336E+0000 1.13825114642041E+0000 1.13754886411724E+0000 1.13684695232794E+0000 1.13614541088663E+0000 + 1.13544423962751E+0000 1.13474343838484E+0000 1.13404300699294E+0000 1.13334294528621E+0000 1.13264325309908E+0000 + 1.13194393026608E+0000 1.13124497662177E+0000 1.13054639200080E+0000 1.12984817623786E+0000 1.12915032916772E+0000 + 1.12845285062521E+0000 1.12775574044522E+0000 1.12705899846270E+0000 1.12636262451266E+0000 1.12566661843019E+0000 + 1.12497098005042E+0000 1.12427570920856E+0000 1.12358080573988E+0000 1.12288626947970E+0000 1.12219210026342E+0000 + 1.12149829792649E+0000 1.12080486230443E+0000 1.12011179323283E+0000 1.11941909054732E+0000 1.11872675408360E+0000 + 1.11803478367745E+0000 1.11734317916471E+0000 1.11665194038125E+0000 1.11596106716304E+0000 1.11527055934609E+0000 + 1.11458041676650E+0000 1.11389063926039E+0000 1.11320122666397E+0000 1.11251217881353E+0000 1.11182349554537E+0000 + 1.11113517669590E+0000 1.11044722210158E+0000 1.10975963159892E+0000 1.10907240502449E+0000 1.10838554221495E+0000 + 1.10769904300700E+0000 1.10701290723741E+0000 1.10632713474299E+0000 1.10564172536066E+0000 1.10495667892735E+0000 + 1.10427199528009E+0000 1.10358767425595E+0000 1.10290371569207E+0000 1.10222011942566E+0000 1.10153688529398E+0000 + 1.10085401313435E+0000 1.10017150278417E+0000 1.09948935408089E+0000 1.09880756686202E+0000 1.09812614096512E+0000 + 1.09744507622785E+0000 1.09676437248790E+0000 1.09608402958302E+0000 1.09540404735105E+0000 1.09472442562986E+0000 + 1.09404516425740E+0000 1.09336626307168E+0000 1.09268772191077E+0000 1.09200954061281E+0000 1.09133171901598E+0000 + 1.09065425695854E+0000 1.08997715427881E+0000 1.08930041081516E+0000 1.08862402640604E+0000 1.08794800088995E+0000 + 1.08727233410545E+0000 1.08659702589118E+0000 1.08592207608581E+0000 1.08524748452809E+0000 1.08457325105684E+0000 + 1.08389937551093E+0000 1.08322585772928E+0000 1.08255269755091E+0000 1.08187989481485E+0000 1.08120744936024E+0000 + 1.08053536102625E+0000 1.07986362965212E+0000 1.07919225507716E+0000 1.07852123714072E+0000 1.07785057568224E+0000 + 1.07718027054119E+0000 1.07651032155714E+0000 1.07584072856968E+0000 1.07517149141849E+0000 1.07450260994330E+0000 + 1.07383408398391E+0000 1.07316591338016E+0000 1.07249809797198E+0000 1.07183063759934E+0000 1.07116353210227E+0000 + 1.07049678132089E+0000 1.06983038509534E+0000 1.06916434326586E+0000 1.06849865567271E+0000 1.06783332215626E+0000 + 1.06716834255689E+0000 1.06650371671509E+0000 1.06583944447137E+0000 1.06517552566632E+0000 1.06451196014059E+0000 + 1.06384874773490E+0000 1.06318588829000E+0000 1.06252338164674E+0000 1.06186122764601E+0000 1.06119942612876E+0000 + 1.06053797693601E+0000 1.05987687990882E+0000 1.05921613488834E+0000 1.05855574171577E+0000 1.05789570023236E+0000 + 1.05723601027942E+0000 1.05657667169835E+0000 1.05591768433058E+0000 1.05525904801760E+0000 1.05460076260099E+0000 + 1.05394282792236E+0000 1.05328524382339E+0000 1.05262801014584E+0000 1.05197112673150E+0000 1.05131459342224E+0000 + 1.05065841005998E+0000 1.05000257648671E+0000 1.04934709254448E+0000 1.04869195807538E+0000 1.04803717292160E+0000 + 1.04738273692535E+0000 1.04672864992893E+0000 1.04607491177468E+0000 1.04542152230502E+0000 1.04476848136240E+0000 + 1.04411578878937E+0000 1.04346344442851E+0000 1.04281144812247E+0000 1.04215979971396E+0000 1.04150849904576E+0000 + 1.04085754596069E+0000 1.04020694030165E+0000 1.03955668191159E+0000 1.03890677063352E+0000 1.03825720631051E+0000 + 1.03760798878569E+0000 1.03695911790226E+0000 1.03631059350347E+0000 1.03566241543263E+0000 1.03501458353312E+0000 + 1.03436709764837E+0000 1.03371995762187E+0000 1.03307316329717E+0000 1.03242671451789E+0000 1.03178061112769E+0000 + 1.03113485297032E+0000 1.03048943988957E+0000 1.02984437172929E+0000 1.02919964833338E+0000 1.02855526954583E+0000 + 1.02791123521067E+0000 1.02726754517198E+0000 1.02662419927392E+0000 1.02598119736071E+0000 1.02533853927661E+0000 + 1.02469622486596E+0000 1.02405425397315E+0000 1.02341262644262E+0000 1.02277134211889E+0000 1.02213040084654E+0000 + 1.02148980247018E+0000 1.02084954683451E+0000 1.02020963378428E+0000 1.01957006316429E+0000 1.01893083481943E+0000 + 1.01829194859461E+0000 1.01765340433482E+0000 1.01701520188511E+0000 1.01637734109058E+0000 1.01573982179641E+0000 + 1.01510264384782E+0000 1.01446580709009E+0000 1.01382931136857E+0000 1.01319315652866E+0000 1.01255734241583E+0000 + 1.01192186887560E+0000 1.01128673575354E+0000 1.01065194289531E+0000 1.01001749014660E+0000 1.00938337735318E+0000 + 1.00874960436086E+0000 1.00811617101552E+0000 1.00748307716310E+0000 1.00685032264960E+0000 1.00621790732107E+0000 + 1.00558583102363E+0000 1.00495409360345E+0000 1.00432269490677E+0000 1.00369163477988E+0000 1.00306091306913E+0000 + 1.00243052962094E+0000 1.00180048428176E+0000 1.00117077689815E+0000 1.00054140731667E+0000 9.99912375383982E-0001 + 9.99283680946789E-0001 9.98655323851857E-0001 9.98027303946008E-0001 9.97399621076128E-0001 9.96772275089156E-0001 + 9.96145265832096E-0001 9.95518593152005E-0001 9.94892256896004E-0001 9.94266256911269E-0001 9.93640593045037E-0001 + 9.93015265144602E-0001 9.92390273057320E-0001 9.91765616630601E-0001 9.91141295711919E-0001 9.90517310148802E-0001 + 9.89893659788839E-0001 9.89270344479679E-0001 9.88647364069025E-0001 9.88024718404645E-0001 9.87402407334361E-0001 + 9.86780430706055E-0001 9.86158788367668E-0001 9.85537480167197E-0001 9.84916505952702E-0001 9.84295865572298E-0001 + 9.83675558874159E-0001 9.83055585706520E-0001 9.82435945917671E-0001 9.81816639355962E-0001 9.81197665869803E-0001 + 9.80579025307659E-0001 9.79960717518055E-0001 9.79342742349576E-0001 9.78725099650864E-0001 9.78107789270618E-0001 + 9.77490811057597E-0001 9.76874164860618E-0001 9.76257850528556E-0001 9.75641867910345E-0001 9.75026216854975E-0001 + 9.74410897211497E-0001 9.73795908829019E-0001 9.73181251556706E-0001 9.72566925243784E-0001 9.71952929739534E-0001 + 9.71339264893297E-0001 9.70725930554471E-0001 9.70112926572514E-0001 9.69500252796941E-0001 9.68887909077323E-0001 + 9.68275895263291E-0001 9.67664211204535E-0001 9.67052856750801E-0001 9.66441831751895E-0001 9.65831136057678E-0001 + 9.65220769518070E-0001 9.64610731983052E-0001 9.64001023302659E-0001 9.63391643326985E-0001 9.62782591906183E-0001 + 9.62173868890461E-0001 9.61565474130089E-0001 9.60957407475391E-0001 9.60349668776751E-0001 9.59742257884610E-0001 + 9.59135174649466E-0001 9.58528418921875E-0001 9.57921990552453E-0001 9.57315889391871E-0001 9.56710115290858E-0001 + 9.56104668100201E-0001 9.55499547670745E-0001 9.54894753853392E-0001 9.54290286499102E-0001 9.53686145458893E-0001 + 9.53082330583840E-0001 9.52478841725074E-0001 9.51875678733786E-0001 9.51272841461223E-0001 9.50670329758691E-0001 + 9.50068143477552E-0001 9.49466282469224E-0001 9.48864746585186E-0001 9.48263535676972E-0001 9.47662649596174E-0001 + 9.47062088194441E-0001 9.46461851323480E-0001 9.45861938835054E-0001 9.45262350580985E-0001 9.44663086413151E-0001 + 9.44064146183489E-0001 9.43465529743990E-0001 9.42867236946705E-0001 9.42269267643741E-0001 9.41671621687263E-0001 + 9.41074298929493E-0001 9.40477299222708E-0001 9.39880622419246E-0001 9.39284268371499E-0001 9.38688236931917E-0001 + 9.38092527953008E-0001 9.37497141287334E-0001 9.36902076787519E-0001 9.36307334306239E-0001 9.35712913696231E-0001 + 9.35118814810286E-0001 9.34525037501252E-0001 9.33931581622038E-0001 9.33338447025605E-0001 9.32745633564973E-0001 + 9.32153141093218E-0001 9.31560969463475E-0001 9.30969118528933E-0001 9.30377588142841E-0001 9.29786378158501E-0001 + 9.29195488429275E-0001 9.28604918808580E-0001 9.28014669149890E-0001 9.27424739306736E-0001 9.26835129132707E-0001 + 9.26245838481446E-0001 9.25656867206653E-0001 9.25068215162089E-0001 9.24479882201565E-0001 9.23891868178953E-0001 + 9.23304172948182E-0001 9.22716796363233E-0001 9.22129738278149E-0001 9.21542998547026E-0001 9.20956577024017E-0001 + 9.20370473563334E-0001 9.19784688019243E-0001 9.19199220246066E-0001 9.18614070098184E-0001 9.18029237430031E-0001 + 9.17444722096101E-0001 9.16860523950942E-0001 9.16276642849159E-0001 9.15693078645413E-0001 9.15109831194422E-0001 + 9.14526900350961E-0001 9.13944285969859E-0001 9.13361987906003E-0001 9.12780006014335E-0001 9.12198340149856E-0001 + 9.11616990167619E-0001 9.11035955922737E-0001 9.10455237270377E-0001 9.09874834065763E-0001 9.09294746164174E-0001 + 9.08714973420947E-0001 9.08135515691475E-0001 9.07556372831204E-0001 9.06977544695640E-0001 9.06399031140341E-0001 + 9.05820832020926E-0001 9.05242947193067E-0001 9.04665376512490E-0001 9.04088119834982E-0001 9.03511177016382E-0001 + 9.02934547912586E-0001 9.02358232379547E-0001 9.01782230273271E-0001 9.01206541449824E-0001 9.00631165765324E-0001 + 9.00056103075948E-0001 8.99481353237927E-0001 8.98906916107547E-0001 8.98332791541152E-0001 8.97758979395140E-0001 + 8.97185479525967E-0001 8.96612291790141E-0001 8.96039416044229E-0001 8.95466852144853E-0001 8.94894599948689E-0001 + 8.94322659312471E-0001 8.93751030092987E-0001 8.93179712147081E-0001 8.92608705331653E-0001 8.92038009503658E-0001 + 8.91467624520108E-0001 8.90897550238067E-0001 8.90327786514659E-0001 8.89758333207061E-0001 8.89189190172505E-0001 + 8.88620357268280E-0001 8.88051834351731E-0001 8.87483621280255E-0001 8.86915717911308E-0001 8.86348124102400E-0001 + 8.85780839711095E-0001 8.85213864595016E-0001 8.84647198611838E-0001 8.84080841619293E-0001 8.83514793475167E-0001 + 8.82949054037302E-0001 8.82383623163595E-0001 8.81818500712000E-0001 8.81253686540523E-0001 8.80689180507228E-0001 + 8.80124982470232E-0001 8.79561092287710E-0001 8.78997509817889E-0001 8.78434234919053E-0001 8.77871267449542E-0001 + 8.77308607267747E-0001 8.76746254232120E-0001 8.76184208201163E-0001 8.75622469033435E-0001 8.75061036587551E-0001 + 8.74499910722179E-0001 8.73939091296043E-0001 8.73378578167923E-0001 8.72818371196652E-0001 8.72258470241119E-0001 + 8.71698875160268E-0001 8.71139585813098E-0001 8.70580602058662E-0001 8.70021923756067E-0001 8.69463550764479E-0001 + 8.68905482943115E-0001 8.68347720151246E-0001 8.67790262248202E-0001 8.67233109093364E-0001 8.66676260546171E-0001 + 8.66119716466112E-0001 8.65563476712736E-0001 8.65007541145643E-0001 8.64451909624489E-0001 8.63896582008985E-0001 + 8.63341558158897E-0001 8.62786837934043E-0001 8.62232421194299E-0001 8.61678307799593E-0001 8.61124497609910E-0001 + 8.60570990485287E-0001 8.60017786285816E-0001 8.59464884871646E-0001 8.58912286102978E-0001 8.58359989840067E-0001 + 8.57807995943226E-0001 8.57256304272818E-0001 8.56704914689263E-0001 8.56153827053035E-0001 8.55603041224662E-0001 + 8.55052557064728E-0001 8.54502374433868E-0001 8.53952493192774E-0001 8.53402913202192E-0001 8.52853634322922E-0001 + 8.52304656415817E-0001 8.51755979341786E-0001 8.51207602961793E-0001 8.50659527136854E-0001 8.50111751728039E-0001 + 8.49564276596474E-0001 8.49017101603339E-0001 8.48470226609867E-0001 8.47923651477346E-0001 8.47377376067117E-0001 + 8.46831400240577E-0001 8.46285723859176E-0001 8.45740346784417E-0001 8.45195268877859E-0001 8.44650490001113E-0001 + 8.44106010015847E-0001 8.43561828783779E-0001 8.43017946166684E-0001 8.42474362026390E-0001 8.41931076224779E-0001 + 8.41388088623787E-0001 8.40845399085403E-0001 8.40303007471671E-0001 8.39760913644689E-0001 8.39219117466607E-0001 + 8.38677618799632E-0001 8.38136417506021E-0001 8.37595513448088E-0001 8.37054906488199E-0001 8.36514596488774E-0001 + 8.35974583312287E-0001 8.35434866821266E-0001 8.34895446878293E-0001 8.34356323346002E-0001 8.33817496087081E-0001 + 8.33278964964274E-0001 8.32740729840377E-0001 8.32202790578238E-0001 8.31665147040761E-0001 8.31127799090903E-0001 + 8.30590746591674E-0001 8.30053989406138E-0001 8.29517527397412E-0001 8.28981360428667E-0001 8.28445488363127E-0001 + 8.27909911064071E-0001 8.27374628394828E-0001 8.26839640218785E-0001 8.26304946399378E-0001 8.25770546800100E-0001 + 8.25236441284495E-0001 8.24702629716162E-0001 8.24169111958751E-0001 8.23635887875968E-0001 8.23102957331571E-0001 + 8.22570320189370E-0001 8.22037976313232E-0001 8.21505925567073E-0001 8.20974167814866E-0001 8.20442702920634E-0001 + 8.19911530748454E-0001 8.19380651162458E-0001 8.18850064026829E-0001 8.18319769205805E-0001 8.17789766563675E-0001 + 8.17260055964783E-0001 8.16730637273525E-0001 8.16201510354351E-0001 8.15672675071762E-0001 8.15144131290316E-0001 + 8.14615878874619E-0001 8.14087917689333E-0001 8.13560247599173E-0001 8.13032868468907E-0001 8.12505780163354E-0001 + 8.11978982547388E-0001 8.11452475485936E-0001 8.10926258843976E-0001 8.10400332486541E-0001 8.09874696278714E-0001 + 8.09349350085634E-0001 8.08824293772492E-0001 8.08299527204531E-0001 8.07775050247046E-0001 8.07250862765387E-0001 + 8.06726964624955E-0001 8.06203355691204E-0001 8.05680035829642E-0001 8.05157004905828E-0001 8.04634262785375E-0001 + 8.04111809333948E-0001 8.03589644417264E-0001 8.03067767901094E-0001 8.02546179651261E-0001 8.02024879533640E-0001 + 8.01503867414159E-0001 8.00983143158800E-0001 8.00462706633595E-0001 7.99942557704630E-0001 7.99422696238043E-0001 + 7.98903122100025E-0001 7.98383835156819E-0001 7.97864835274721E-0001 7.97346122320079E-0001 7.96827696159294E-0001 + 7.96309556658817E-0001 7.95791703685154E-0001 7.95274137104864E-0001 7.94756856784556E-0001 7.94239862590892E-0001 + 7.93723154390586E-0001 7.93206732050407E-0001 7.92690595437172E-0001 7.92174744417753E-0001 7.91659178859075E-0001 + 7.91143898628112E-0001 7.90628903591893E-0001 7.90114193617497E-0001 7.89599768572058E-0001 7.89085628322761E-0001 + 7.88571772736841E-0001 7.88058201681587E-0001 7.87544915024341E-0001 7.87031912632495E-0001 7.86519194373494E-0001 + 7.86006760114836E-0001 7.85494609724070E-0001 7.84982743068797E-0001 7.84471160016669E-0001 7.83959860435392E-0001 + 7.83448844192724E-0001 7.82938111156472E-0001 7.82427661194499E-0001 7.81917494174716E-0001 7.81407609965088E-0001 + 7.80898008433633E-0001 7.80388689448418E-0001 7.79879652877564E-0001 7.79370898589243E-0001 7.78862426451679E-0001 + 7.78354236333147E-0001 7.77846328101974E-0001 7.77338701626541E-0001 7.76831356775278E-0001 7.76324293416667E-0001 + 7.75817511419244E-0001 7.75311010651592E-0001 7.74804790982352E-0001 7.74298852280212E-0001 7.73793194413912E-0001 + 7.73287817252245E-0001 7.72782720664056E-0001 7.72277904518240E-0001 7.71773368683745E-0001 7.71269113029568E-0001 + 7.70765137424761E-0001 7.70261441738426E-0001 7.69758025839715E-0001 7.69254889597834E-0001 7.68752032882038E-0001 + 7.68249455561636E-0001 7.67747157505986E-0001 7.67245138584499E-0001 7.66743398666637E-0001 7.66241937621912E-0001 + 7.65740755319891E-0001 7.65239851630188E-0001 7.64739226422471E-0001 7.64238879566459E-0001 7.63738810931920E-0001 + 7.63239020388677E-0001 7.62739507806601E-0001 7.62240273055616E-0001 7.61741316005698E-0001 7.61242636526871E-0001 + 7.60744234489213E-0001 7.60246109762852E-0001 7.59748262217968E-0001 7.59250691724791E-0001 7.58753398153603E-0001 + 7.58256381374736E-0001 7.57759641258576E-0001 7.57263177675555E-0001 7.56766990496161E-0001 7.56271079590929E-0001 + 7.55775444830449E-0001 7.55280086085359E-0001 7.54785003226349E-0001 7.54290196124160E-0001 7.53795664649583E-0001 + 7.53301408673462E-0001 7.52807428066690E-0001 7.52313722700211E-0001 7.51820292445020E-0001 7.51327137172165E-0001 + 7.50834256752742E-0001 7.50341651057899E-0001 7.49849319958834E-0001 7.49357263326797E-0001 7.48865481033088E-0001 + 7.48373972949058E-0001 7.47882738946109E-0001 7.47391778895693E-0001 7.46901092669314E-0001 7.46410680138524E-0001 + 7.45920541174929E-0001 7.45430675650183E-0001 7.44941083435992E-0001 7.44451764404113E-0001 7.43962718426353E-0001 + 7.43473945374568E-0001 7.42985445120667E-0001 7.42497217536608E-0001 7.42009262494401E-0001 7.41521579866105E-0001 + 7.41034169523830E-0001 7.40547031339737E-0001 7.40060165186037E-0001 7.39573570934991E-0001 7.39087248458911E-0001 + 7.38601197630159E-0001 7.38115418321149E-0001 7.37629910404343E-0001 7.37144673752255E-0001 7.36659708237447E-0001 + 7.36175013732535E-0001 7.35690590110183E-0001 7.35206437243106E-0001 7.34722555004067E-0001 7.34238943265884E-0001 + 7.33755601901419E-0001 7.33272530783591E-0001 7.32789729785364E-0001 7.32307198779754E-0001 7.31824937639828E-0001 + 7.31342946238702E-0001 7.30861224449542E-0001 7.30379772145565E-0001 7.29898589200038E-0001 7.29417675486277E-0001 + 7.28937030877649E-0001 7.28456655247571E-0001 7.27976548469511E-0001 7.27496710416984E-0001 7.27017140963558E-0001 + 7.26537839982850E-0001 7.26058807348527E-0001 7.25580042934305E-0001 7.25101546613951E-0001 7.24623318261282E-0001 + 7.24145357750165E-0001 7.23667664954516E-0001 7.23190239748300E-0001 7.22713082005535E-0001 7.22236191600287E-0001 + 7.21759568406671E-0001 7.21283212298852E-0001 7.20807123151047E-0001 7.20331300837519E-0001 7.19855745232585E-0001 + 7.19380456210609E-0001 7.18905433646005E-0001 7.18430677413237E-0001 7.17956187386818E-0001 7.17481963441313E-0001 + 7.17008005451334E-0001 7.16534313291544E-0001 7.16060886836655E-0001 7.15587725961428E-0001 7.15114830540676E-0001 + 7.14642200449259E-0001 7.14169835562088E-0001 7.13697735754123E-0001 7.13225900900373E-0001 7.12754330875897E-0001 + 7.12283025555805E-0001 7.11811984815253E-0001 7.11341208529450E-0001 7.10870696573652E-0001 7.10400448823165E-0001 + 7.09930465153346E-0001 7.09460745439599E-0001 7.08991289557378E-0001 7.08522097382188E-0001 7.08053168789582E-0001 + 7.07584503655161E-0001 7.07116101854577E-0001 7.06647963263532E-0001 7.06180087757776E-0001 7.05712475213108E-0001 + 7.05245125505377E-0001 7.04778038510480E-0001 7.04311214104365E-0001 7.03844652163028E-0001 7.03378352562515E-0001 + 7.02912315178920E-0001 7.02446539888386E-0001 7.01981026567106E-0001 7.01515775091324E-0001 7.01050785337329E-0001 + 7.00586057181461E-0001 7.00121590500109E-0001 6.99657385169713E-0001 6.99193441066758E-0001 6.98729758067780E-0001 + 6.98266336049366E-0001 6.97803174888149E-0001 6.97340274460811E-0001 6.96877634644086E-0001 6.96415255314753E-0001 + 6.95953136349643E-0001 6.95491277625634E-0001 6.95029679019653E-0001 6.94568340408677E-0001 6.94107261669731E-0001 + 6.93646442679889E-0001 6.93185883316274E-0001 6.92725583456057E-0001 6.92265542976458E-0001 6.91805761754747E-0001 + 6.91346239668241E-0001 6.90886976594307E-0001 6.90427972410360E-0001 6.89969226993863E-0001 6.89510740222330E-0001 + 6.89052511973321E-0001 6.88594542124446E-0001 6.88136830553364E-0001 6.87679377137782E-0001 6.87222181755454E-0001 + 6.86765244284187E-0001 6.86308564601831E-0001 6.85852142586288E-0001 6.85395978115508E-0001 6.84940071067490E-0001 + 6.84484421320280E-0001 6.84029028751972E-0001 6.83573893240712E-0001 6.83119014664690E-0001 6.82664392902148E-0001 + 6.82210027831374E-0001 6.81755919330705E-0001 6.81302067278527E-0001 6.80848471553274E-0001 6.80395132033429E-0001 + 6.79942048597522E-0001 6.79489221124132E-0001 6.79036649491885E-0001 6.78584333579459E-0001 6.78132273265576E-0001 + 6.77680468429009E-0001 6.77228918948577E-0001 6.76777624703149E-0001 6.76326585571641E-0001 6.75875801433019E-0001 + 6.75425272166295E-0001 6.74974997650531E-0001 6.74524977764835E-0001 6.74075212388364E-0001 6.73625701400325E-0001 + 6.73176444679970E-0001 6.72727442106602E-0001 6.72278693559569E-0001 6.71830198918269E-0001 6.71381958062148E-0001 + 6.70933970870699E-0001 6.70486237223463E-0001 6.70038757000032E-0001 6.69591530080041E-0001 6.69144556343176E-0001 + 6.68697835669170E-0001 6.68251367937804E-0001 6.67805153028909E-0001 6.67359190822359E-0001 6.66913481198081E-0001 + 6.66468024036046E-0001 6.66022819216276E-0001 6.65577866618838E-0001 6.65133166123848E-0001 6.64688717611470E-0001 + 6.64244520961916E-0001 6.63800576055444E-0001 6.63356882772362E-0001 6.62913440993024E-0001 6.62470250597832E-0001 + 6.62027311467237E-0001 6.61584623481736E-0001 6.61142186521874E-0001 6.60700000468244E-0001 6.60258065201487E-0001 + 6.59816380602290E-0001 6.59374946551390E-0001 6.58933762929569E-0001 6.58492829617658E-0001 6.58052146496536E-0001 + 6.57611713447127E-0001 6.57171530350406E-0001 6.56731597087393E-0001 6.56291913539156E-0001 6.55852479586811E-0001 + 6.55413295111521E-0001 6.54974359994496E-0001 6.54535674116994E-0001 6.54097237360319E-0001 6.53659049605826E-0001 + 6.53221110734913E-0001 6.52783420629028E-0001 6.52345979169665E-0001 6.51908786238366E-0001 6.51471841716721E-0001 + 6.51035145486365E-0001 6.50598697428983E-0001 6.50162497426304E-0001 6.49726545360108E-0001 6.49290841112219E-0001 + 6.48855384564509E-0001 6.48420175598899E-0001 6.47985214097356E-0001 6.47550499941892E-0001 6.47116033014569E-0001 + 6.46681813197496E-0001 6.46247840372826E-0001 6.45814114422763E-0001 6.45380635229557E-0001 6.44947402675502E-0001 + 6.44514416642943E-0001 6.44081677014270E-0001 6.43649183671920E-0001 6.43216936498379E-0001 6.42784935376176E-0001 + 6.42353180187890E-0001 6.41921670816146E-0001 6.41490407143618E-0001 6.41059389053023E-0001 6.40628616427127E-0001 + 6.40198089148743E-0001 6.39767807100731E-0001 6.39337770165997E-0001 6.38907978227494E-0001 6.38478431168222E-0001 + 6.38049128871228E-0001 6.37620071219606E-0001 6.37191258096496E-0001 6.36762689385084E-0001 6.36334364968606E-0001 + 6.35906284730340E-0001 6.35478448553615E-0001 6.35050856321804E-0001 6.34623507918327E-0001 6.34196403226652E-0001 + 6.33769542130293E-0001 6.33342924512809E-0001 6.32916550257808E-0001 6.32490419248944E-0001 6.32064531369915E-0001 + 6.31638886504470E-0001 6.31213484536400E-0001 6.30788325349547E-0001 6.30363408827795E-0001 6.29938734855078E-0001 + 6.29514303315374E-0001 6.29090114092710E-0001 6.28666167071156E-0001 6.28242462134833E-0001 6.27818999167903E-0001 + 6.27395778054580E-0001 6.26972798679119E-0001 6.26550060925825E-0001 6.26127564679049E-0001 6.25705309823186E-0001 + 6.25283296242680E-0001 6.24861523822021E-0001 6.24439992445742E-0001 6.24018701998427E-0001 6.23597652364702E-0001 + 6.23176843429242E-0001 6.22756275076769E-0001 6.22335947192047E-0001 6.21915859659890E-0001 6.21496012365157E-0001 + 6.21076405192753E-0001 6.20657038027629E-0001 6.20237910754783E-0001 6.19819023259257E-0001 6.19400375426142E-0001 + 6.18981967140573E-0001 6.18563798287731E-0001 6.18145868752845E-0001 6.17728178421188E-0001 6.17310727178080E-0001 + 6.16893514908885E-0001 6.16476541499018E-0001 6.16059806833934E-0001 6.15643310799137E-0001 6.15227053280177E-0001 + 6.14811034162650E-0001 6.14395253332196E-0001 6.13979710674503E-0001 6.13564406075304E-0001 6.13149339420378E-0001 + 6.12734510595549E-0001 6.12319919486689E-0001 6.11905565979713E-0001 6.11491449960584E-0001 6.11077571315310E-0001 + 6.10663929929943E-0001 6.10250525690586E-0001 6.09837358483380E-0001 6.09424428194519E-0001 6.09011734710239E-0001 + 6.08599277916821E-0001 6.08187057700593E-0001 6.07775073947930E-0001 6.07363326545251E-0001 6.06951815379019E-0001 + 6.06540540335746E-0001 6.06129501301988E-0001 6.05718698164347E-0001 6.05308130809468E-0001 6.04897799124046E-0001 + 6.04487702994817E-0001 6.04077842308567E-0001 6.03668216952124E-0001 6.03258826812362E-0001 6.02849671776203E-0001 + 6.02440751730610E-0001 6.02032066562596E-0001 6.01623616159217E-0001 6.01215400407575E-0001 6.00807419194817E-0001 + 6.00399672408135E-0001 5.99992159934767E-0001 5.99584881661997E-0001 5.99177837477153E-0001 5.98771027267610E-0001 + 5.98364450920785E-0001 5.97958108324144E-0001 5.97551999365197E-0001 5.97146123931497E-0001 5.96740481910647E-0001 + 5.96335073190290E-0001 5.95929897658118E-0001 5.95524955201866E-0001 5.95120245709315E-0001 5.94715769068292E-0001 + 5.94311525166667E-0001 5.93907513892357E-0001 5.93503735133324E-0001 5.93100188777572E-0001 5.92696874713156E-0001 + 5.92293792828171E-0001 5.91890943010759E-0001 5.91488325149106E-0001 5.91085939131445E-0001 5.90683784846051E-0001 + 5.90281862181248E-0001 5.89880171025401E-0001 5.89478711266923E-0001 5.89077482794269E-0001 5.88676485495941E-0001 + 5.88275719260487E-0001 5.87875183976496E-0001 5.87474879532605E-0001 5.87074805817496E-0001 5.86674962719894E-0001 + 5.86275350128569E-0001 5.85875967932338E-0001 5.85476816020061E-0001 5.85077894280642E-0001 5.84679202603032E-0001 + 5.84280740876225E-0001 5.83882508989261E-0001 5.83484506831223E-0001 5.83086734291241E-0001 5.82689191258488E-0001 + 5.82291877622182E-0001 5.81894793271585E-0001 5.81497938096006E-0001 5.81101311984797E-0001 5.80704914827353E-0001 + 5.80308746513117E-0001 5.79912806931574E-0001 5.79517095972255E-0001 5.79121613524734E-0001 5.78726359478631E-0001 + 5.78331333723611E-0001 5.77936536149382E-0001 5.77541966645696E-0001 5.77147625102352E-0001 5.76753511409191E-0001 + 5.76359625456100E-0001 5.75965967133009E-0001 5.75572536329894E-0001 5.75179332936775E-0001 5.74786356843716E-0001 + 5.74393607940825E-0001 5.74001086118254E-0001 5.73608791266202E-0001 5.73216723274909E-0001 5.72824882034661E-0001 + 5.72433267435789E-0001 5.72041879368666E-0001 5.71650717723712E-0001 5.71259782391388E-0001 5.70869073262203E-0001 + 5.70478590226707E-0001 5.70088333175496E-0001 5.69698301999209E-0001 5.69308496588531E-0001 5.68918916834189E-0001 + 5.68529562626956E-0001 5.68140433857648E-0001 5.67751530417125E-0001 5.67362852196293E-0001 5.66974399086098E-0001 + 5.66586170977534E-0001 5.66198167761638E-0001 5.65810389329491E-0001 5.65422835572217E-0001 5.65035506380984E-0001 + 5.64648401647006E-0001 5.64261521261540E-0001 5.63874865115886E-0001 5.63488433101389E-0001 5.63102225109436E-0001 + 5.62716241031462E-0001 5.62330480758942E-0001 5.61944944183395E-0001 5.61559631196388E-0001 5.61174541689527E-0001 + 5.60789675554464E-0001 5.60405032682896E-0001 5.60020612966560E-0001 5.59636416297241E-0001 5.59252442566767E-0001 + 5.58868691667006E-0001 5.58485163489875E-0001 5.58101857927331E-0001 5.57718774871377E-0001 5.57335914214057E-0001 + 5.56953275847462E-0001 5.56570859663725E-0001 5.56188665555022E-0001 5.55806693413574E-0001 5.55424943131644E-0001 + 5.55043414601541E-0001 5.54662107715615E-0001 5.54281022366262E-0001 5.53900158445919E-0001 5.53519515847069E-0001 + 5.53139094462237E-0001 5.52758894183993E-0001 5.52378914904948E-0001 5.51999156517759E-0001 5.51619618915125E-0001 + 5.51240301989789E-0001 5.50861205634538E-0001 5.50482329742201E-0001 5.50103674205652E-0001 5.49725238917807E-0001 + 5.49347023771626E-0001 5.48969028660113E-0001 5.48591253476315E-0001 5.48213698113321E-0001 5.47836362464267E-0001 + 5.47459246422326E-0001 5.47082349880721E-0001 5.46705672732715E-0001 5.46329214871613E-0001 5.45952976190767E-0001 + 5.45576956583569E-0001 5.45201155943455E-0001 5.44825574163906E-0001 5.44450211138443E-0001 5.44075066760634E-0001 + 5.43700140924086E-0001 5.43325433522453E-0001 5.42950944449429E-0001 5.42576673598754E-0001 5.42202620864209E-0001 + 5.41828786139618E-0001 5.41455169318850E-0001 5.41081770295816E-0001 5.40708588964468E-0001 5.40335625218806E-0001 + 5.39962878952867E-0001 5.39590350060736E-0001 5.39218038436539E-0001 5.38845943974443E-0001 5.38474066568662E-0001 + 5.38102406113450E-0001 5.37730962503105E-0001 5.37359735631968E-0001 5.36988725394421E-0001 5.36617931684893E-0001 + 5.36247354397852E-0001 5.35876993427809E-0001 5.35506848669322E-0001 5.35136920016987E-0001 5.34767207365445E-0001 + 5.34397710609380E-0001 5.34028429643517E-0001 5.33659364362627E-0001 5.33290514661520E-0001 5.32921880435051E-0001 + 5.32553461578118E-0001 5.32185257985661E-0001 5.31817269552663E-0001 5.31449496174147E-0001 5.31081937745184E-0001 + 5.30714594160883E-0001 5.30347465316398E-0001 5.29980551106924E-0001 5.29613851427701E-0001 5.29247366174009E-0001 + 5.28881095241172E-0001 5.28515038524556E-0001 5.28149195919571E-0001 5.27783567321667E-0001 5.27418152626339E-0001 + 5.27052951729122E-0001 5.26687964525596E-0001 5.26323190911383E-0001 5.25958630782145E-0001 5.25594284033589E-0001 + 5.25230150561465E-0001 5.24866230261562E-0001 5.24502523029714E-0001 5.24139028761798E-0001 5.23775747353732E-0001 + 5.23412678701476E-0001 5.23049822701032E-0001 5.22687179248448E-0001 5.22324748239810E-0001 5.21962529571247E-0001 + 5.21600523138933E-0001 5.21238728839082E-0001 5.20877146567950E-0001 5.20515776221836E-0001 5.20154617697082E-0001 + 5.19793670890071E-0001 5.19432935697228E-0001 5.19072412015022E-0001 5.18712099739962E-0001 5.18351998768601E-0001 + 5.17992108997532E-0001 5.17632430323392E-0001 5.17272962642860E-0001 5.16913705852656E-0001 5.16554659849543E-0001 + 5.16195824530325E-0001 5.15837199791849E-0001 5.15478785531005E-0001 5.15120581644722E-0001 5.14762588029974E-0001 + 5.14404804583776E-0001 5.14047231203185E-0001 5.13689867785298E-0001 5.13332714227258E-0001 5.12975770426245E-0001 + 5.12619036279487E-0001 5.12262511684248E-0001 5.11906196537837E-0001 5.11550090737605E-0001 5.11194194180942E-0001 + 5.10838506765285E-0001 5.10483028388108E-0001 5.10127758946929E-0001 5.09772698339307E-0001 5.09417846462845E-0001 + 5.09063203215184E-0001 5.08708768494009E-0001 5.08354542197047E-0001 5.08000524222067E-0001 5.07646714466878E-0001 + 5.07293112829332E-0001 5.06939719207323E-0001 5.06586533498785E-0001 5.06233555601695E-0001 5.05880785414072E-0001 + 5.05528222833974E-0001 5.05175867759506E-0001 5.04823720088809E-0001 5.04471779720068E-0001 5.04120046551509E-0001 + 5.03768520481401E-0001 5.03417201408054E-0001 5.03066089229817E-0001 5.02715183845084E-0001 5.02364485152289E-0001 + 5.02013993049906E-0001 5.01663707436455E-0001 5.01313628210492E-0001 5.00963755270617E-0001 5.00614088515473E-0001 + 5.00264627843742E-0001 4.99915373154147E-0001 4.99566324345456E-0001 4.99217481316474E-0001 4.98868843966050E-0001 + 4.98520412193073E-0001 4.98172185896475E-0001 4.97824164975228E-0001 4.97476349328345E-0001 4.97128738854882E-0001 + 4.96781333453934E-0001 4.96434133024639E-0001 4.96087137466176E-0001 4.95740346677764E-0001 4.95393760558665E-0001 + 4.95047379008181E-0001 4.94701201925656E-0001 4.94355229210475E-0001 4.94009460762062E-0001 4.93663896479886E-0001 + 4.93318536263453E-0001 4.92973380012315E-0001 4.92628427626060E-0001 4.92283679004321E-0001 4.91939134046770E-0001 + 4.91594792653121E-0001 4.91250654723128E-0001 4.90906720156586E-0001 4.90562988853334E-0001 4.90219460713247E-0001 + 4.89876135636246E-0001 4.89533013522290E-0001 4.89190094271378E-0001 4.88847377783554E-0001 4.88504863958899E-0001 + 4.88162552697536E-0001 4.87820443899631E-0001 4.87478537465389E-0001 4.87136833295055E-0001 4.86795331288916E-0001 + 4.86454031347301E-0001 4.86112933370578E-0001 4.85772037259156E-0001 4.85431342913486E-0001 4.85090850234059E-0001 + 4.84750559121407E-0001 4.84410469476101E-0001 4.84070581198757E-0001 4.83730894190027E-0001 4.83391408350607E-0001 + 4.83052123581232E-0001 4.82713039782678E-0001 4.82374156855763E-0001 4.82035474701344E-0001 4.81696993220318E-0001 + 4.81358712313626E-0001 4.81020631882246E-0001 4.80682751827198E-0001 4.80345072049544E-0001 4.80007592450384E-0001 + 4.79670312930861E-0001 4.79333233392156E-0001 4.78996353735493E-0001 4.78659673862135E-0001 4.78323193673386E-0001 + 4.77986913070591E-0001 4.77650831955134E-0001 4.77314950228441E-0001 4.76979267791978E-0001 4.76643784547251E-0001 + 4.76308500395807E-0001 4.75973415239233E-0001 4.75638528979156E-0001 4.75303841517245E-0001 4.74969352755207E-0001 + 4.74635062594792E-0001 4.74300970937788E-0001 4.73967077686026E-0001 4.73633382741373E-0001 4.73299886005741E-0001 + 4.72966587381080E-0001 4.72633486769379E-0001 4.72300584072670E-0001 4.71967879193025E-0001 4.71635372032553E-0001 + 4.71303062493407E-0001 4.70970950477778E-0001 4.70639035887899E-0001 4.70307318626040E-0001 4.69975798594515E-0001 + 4.69644475695675E-0001 4.69313349831914E-0001 4.68982420905663E-0001 4.68651688819396E-0001 4.68321153475624E-0001 + 4.67990814776902E-0001 4.67660672625822E-0001 4.67330726925016E-0001 4.67000977577159E-0001 4.66671424484962E-0001 + 4.66342067551180E-0001 4.66012906678605E-0001 4.65683941770069E-0001 4.65355172728447E-0001 4.65026599456650E-0001 + 4.64698221857633E-0001 4.64370039834387E-0001 4.64042053289946E-0001 4.63714262127382E-0001 4.63386666249806E-0001 + 4.63059265560373E-0001 4.62732059962274E-0001 4.62405049358741E-0001 4.62078233653046E-0001 4.61751612748501E-0001 + 4.61425186548456E-0001 4.61098954956305E-0001 4.60772917875476E-0001 4.60447075209442E-0001 4.60121426861713E-0001 + 4.59795972735840E-0001 4.59470712735411E-0001 4.59145646764057E-0001 4.58820774725448E-0001 4.58496096523292E-0001 + 4.58171612061338E-0001 4.57847321243375E-0001 4.57523223973230E-0001 4.57199320154771E-0001 4.56875609691907E-0001 + 4.56552092488582E-0001 4.56228768448784E-0001 4.55905637476538E-0001 4.55582699475911E-0001 4.55259954351008E-0001 + 4.54937402005972E-0001 4.54615042344989E-0001 4.54292875272280E-0001 4.53970900692111E-0001 4.53649118508784E-0001 + 4.53327528626639E-0001 4.53006130950060E-0001 4.52684925383466E-0001 4.52363911831318E-0001 4.52043090198116E-0001 + 4.51722460388399E-0001 4.51402022306745E-0001 4.51081775857773E-0001 4.50761720946138E-0001 4.50441857476539E-0001 + 4.50122185353710E-0001 4.49802704482427E-0001 4.49483414767505E-0001 4.49164316113796E-0001 4.48845408426195E-0001 + 4.48526691609632E-0001 4.48208165569080E-0001 4.47889830209550E-0001 4.47571685436090E-0001 4.47253731153791E-0001 + 4.46935967267780E-0001 4.46618393683226E-0001 4.46301010305333E-0001 4.45983817039350E-0001 4.45666813790559E-0001 + 4.45350000464285E-0001 4.45033376965892E-0001 4.44716943200781E-0001 4.44400699074394E-0001 4.44084644492211E-0001 + 4.43768779359750E-0001 4.43453103582572E-0001 4.43137617066272E-0001 4.42822319716488E-0001 4.42507211438895E-0001 + 4.42192292139207E-0001 4.41877561723177E-0001 4.41563020096598E-0001 4.41248667165301E-0001 4.40934502835157E-0001 + 4.40620527012074E-0001 4.40306739601999E-0001 4.39993140510921E-0001 4.39679729644865E-0001 4.39366506909895E-0001 + 4.39053472212114E-0001 4.38740625457666E-0001 4.38427966552731E-0001 4.38115495403528E-0001 4.37803211916317E-0001 + 4.37491115997395E-0001 4.37179207553097E-0001 4.36867486489801E-0001 4.36555952713917E-0001 4.36244606131900E-0001 + 4.35933446650240E-0001 4.35622474175466E-0001 4.35311688614149E-0001 4.35001089872893E-0001 4.34690677858346E-0001 + 4.34380452477192E-0001 4.34070413636154E-0001 4.33760561241993E-0001 4.33450895201510E-0001 4.33141415421543E-0001 + 4.32832121808971E-0001 4.32523014270708E-0001 4.32214092713710E-0001 4.31905357044969E-0001 4.31596807171518E-0001 + 4.31288443000426E-0001 4.30980264438802E-0001 4.30672271393793E-0001 4.30364463772584E-0001 4.30056841482399E-0001 + 4.29749404430502E-0001 4.29442152524192E-0001 4.29135085670809E-0001 4.28828203777731E-0001 4.28521506752373E-0001 + 4.28214994502190E-0001 4.27908666934675E-0001 4.27602523957359E-0001 4.27296565477811E-0001 4.26990791403639E-0001 + 4.26685201642490E-0001 4.26379796102047E-0001 4.26074574690033E-0001 4.25769537314209E-0001 4.25464683882375E-0001 + 4.25160014302367E-0001 4.24855528482061E-0001 4.24551226329371E-0001 4.24247107752249E-0001 4.23943172658686E-0001 + 4.23639420956709E-0001 4.23335852554385E-0001 4.23032467359819E-0001 4.22729265281154E-0001 4.22426246226570E-0001 + 4.22123410104287E-0001 4.21820756822561E-0001 4.21518286289689E-0001 4.21215998414003E-0001 4.20913893103874E-0001 + 4.20611970267712E-0001 4.20310229813964E-0001 4.20008671651116E-0001 4.19707295687691E-0001 4.19406101832250E-0001 + 4.19105089993394E-0001 4.18804260079758E-0001 4.18503612000018E-0001 4.18203145662888E-0001 4.17902860977119E-0001 + 4.17602757851499E-0001 4.17302836194856E-0001 4.17003095916054E-0001 4.16703536923995E-0001 4.16404159127622E-0001 + 4.16104962435911E-0001 4.15805946757879E-0001 4.15507112002579E-0001 4.15208458079105E-0001 4.14909984896585E-0001 + 4.14611692364186E-0001 4.14313580391114E-0001 4.14015648886611E-0001 4.13717897759958E-0001 4.13420326920474E-0001 + 4.13122936277514E-0001 4.12825725740472E-0001 4.12528695218780E-0001 4.12231844621906E-0001 4.11935173859357E-0001 + 4.11638682840677E-0001 4.11342371475450E-0001 4.11046239673293E-0001 4.10750287343864E-0001 4.10454514396858E-0001 + 4.10158920742008E-0001 4.09863506289083E-0001 4.09568270947890E-0001 4.09273214628276E-0001 4.08978337240121E-0001 + 4.08683638693347E-0001 4.08389118897910E-0001 4.08094777763806E-0001 4.07800615201068E-0001 4.07506631119765E-0001 + 4.07212825430004E-0001 4.06919198041930E-0001 4.06625748865727E-0001 4.06332477811612E-0001 4.06039384789844E-0001 + 4.05746469710716E-0001 4.05453732484561E-0001 4.05161173021747E-0001 4.04868791232681E-0001 4.04576587027807E-0001 + 4.04284560317606E-0001 4.03992711012596E-0001 4.03701039023334E-0001 4.03409544260411E-0001 4.03118226634458E-0001 + 4.02827086056143E-0001 4.02536122436170E-0001 4.02245335685282E-0001 4.01954725714257E-0001 4.01664292433912E-0001 + 4.01374035755100E-0001 4.01083955588711E-0001 4.00794051845675E-0001 4.00504324436955E-0001 4.00214773273555E-0001 + 3.99925398266512E-0001 3.99636199326904E-0001 3.99347176365844E-0001 3.99058329294482E-0001 3.98769658024006E-0001 + 3.98481162465641E-0001 3.98192842530648E-0001 3.97904698130326E-0001 3.97616729176010E-0001 3.97328935579074E-0001 + 3.97041317250927E-0001 3.96753874103016E-0001 3.96466606046824E-0001 3.96179512993872E-0001 3.95892594855717E-0001 + 3.95605851543955E-0001 3.95319282970215E-0001 3.95032889046168E-0001 3.94746669683517E-0001 3.94460624794004E-0001 + 3.94174754289409E-0001 3.93889058081547E-0001 3.93603536082271E-0001 3.93318188203470E-0001 3.93033014357070E-0001 + 3.92748014455035E-0001 3.92463188409364E-0001 3.92178536132093E-0001 3.91894057535295E-0001 3.91609752531082E-0001 + 3.91325621031599E-0001 3.91041662949030E-0001 3.90757878195595E-0001 3.90474266683551E-0001 3.90190828325192E-0001 + 3.89907563032847E-0001 3.89624470718884E-0001 3.89341551295705E-0001 3.89058804675752E-0001 3.88776230771500E-0001 + 3.88493829495465E-0001 3.88211600760193E-0001 3.87929544478273E-0001 3.87647660562328E-0001 3.87365948925017E-0001 + 3.87084409479036E-0001 3.86803042137118E-0001 3.86521846812033E-0001 3.86240823416585E-0001 3.85959971863617E-0001 + 3.85679292066008E-0001 3.85398783936671E-0001 3.85118447388561E-0001 3.84838282334663E-0001 3.84558288688003E-0001 + 3.84278466361641E-0001 3.83998815268675E-0001 3.83719335322237E-0001 3.83440026435499E-0001 3.83160888521666E-0001 + 3.82881921493980E-0001 3.82603125265722E-0001 3.82324499750205E-0001 3.82046044860783E-0001 3.81767760510842E-0001 + 3.81489646613807E-0001 3.81211703083138E-0001 3.80933929832332E-0001 3.80656326774922E-0001 3.80378893824477E-0001 + 3.80101630894602E-0001 3.79824537898940E-0001 3.79547614751167E-0001 3.79270861364998E-0001 3.78994277654182E-0001 + 3.78717863532507E-0001 3.78441618913795E-0001 3.78165543711903E-0001 3.77889637840727E-0001 3.77613901214198E-0001 + 3.77338333746282E-0001 3.77062935350982E-0001 3.76787705942338E-0001 3.76512645434424E-0001 3.76237753741351E-0001 + 3.75963030777267E-0001 3.75688476456354E-0001 3.75414090692832E-0001 3.75139873400956E-0001 3.74865824495017E-0001 + 3.74591943889342E-0001 3.74318231498294E-0001 3.74044687236272E-0001 3.73771311017710E-0001 3.73498102757080E-0001 + 3.73225062368889E-0001 3.72952189767678E-0001 3.72679484868026E-0001 3.72406947584548E-0001 3.72134577831894E-0001 + 3.71862375524749E-0001 3.71590340577836E-0001 3.71318472905912E-0001 3.71046772423770E-0001 3.70775239046240E-0001 + 3.70503872688187E-0001 3.70232673264512E-0001 3.69961640690149E-0001 3.69690774880074E-0001 3.69420075749292E-0001 + 3.69149543212848E-0001 3.68879177185821E-0001 3.68608977583327E-0001 3.68338944320515E-0001 3.68069077312573E-0001 + 3.67799376474721E-0001 3.67529841722219E-0001 3.67260472970359E-0001 3.66991270134470E-0001 3.66722233129916E-0001 + 3.66453361872098E-0001 3.66184656276451E-0001 3.65916116258447E-0001 3.65647741733592E-0001 3.65379532617429E-0001 + 3.65111488825535E-0001 3.64843610273524E-0001 3.64575896877044E-0001 3.64308348551780E-0001 3.64040965213451E-0001 + 3.63773746777813E-0001 3.63506693160657E-0001 3.63239804277809E-0001 3.62973080045129E-0001 3.62706520378516E-0001 + 3.62440125193901E-0001 3.62173894407252E-0001 3.61907827934572E-0001 3.61641925691900E-0001 3.61376187595310E-0001 + 3.61110613560911E-0001 3.60845203504846E-0001 3.60579957343297E-0001 3.60314874992477E-0001 3.60049956368638E-0001 + 3.59785201388065E-0001 3.59520609967079E-0001 3.59256182022036E-0001 3.58991917469327E-0001 3.58727816225379E-0001 + 3.58463878206654E-0001 3.58200103329649E-0001 3.57936491510897E-0001 3.57673042666963E-0001 3.57409756714452E-0001 + 3.57146633570000E-0001 3.56883673150280E-0001 3.56620875372002E-0001 3.56358240151906E-0001 3.56095767406772E-0001 + 3.55833457053413E-0001 3.55571309008677E-0001 3.55309323189448E-0001 3.55047499512643E-0001 3.54785837895217E-0001 + 3.54524338254158E-0001 3.54263000506489E-0001 3.54001824569269E-0001 3.53740810359592E-0001 3.53479957794585E-0001 + 3.53219266791413E-0001 3.52958737267273E-0001 3.52698369139399E-0001 3.52438162325059E-0001 3.52178116741557E-0001 + 3.51918232306230E-0001 3.51658508936451E-0001 3.51398946549629E-0001 3.51139545063205E-0001 3.50880304394658E-0001 + 3.50621224461499E-0001 3.50362305181276E-0001 3.50103546471572E-0001 3.49844948250002E-0001 3.49586510434218E-0001 + 3.49328232941908E-0001 3.49070115690790E-0001 3.48812158598623E-0001 3.48554361583197E-0001 3.48296724562336E-0001 + 3.48039247453901E-0001 3.47781930175787E-0001 3.47524772645924E-0001 3.47267774782274E-0001 3.47010936502838E-0001 + 3.46754257725649E-0001 3.46497738368774E-0001 3.46241378350317E-0001 3.45985177588415E-0001 3.45729136001240E-0001 + 3.45473253506999E-0001 3.45217530023933E-0001 3.44961965470317E-0001 3.44706559764462E-0001 3.44451312824712E-0001 + 3.44196224569448E-0001 3.43941294917082E-0001 3.43686523786064E-0001 3.43431911094876E-0001 3.43177456762036E-0001 + 3.42923160706095E-0001 3.42669022845640E-0001 3.42415043099291E-0001 3.42161221385705E-0001 3.41907557623569E-0001 + 3.41654051731609E-0001 3.41400703628583E-0001 3.41147513233284E-0001 3.40894480464539E-0001 3.40641605241208E-0001 + 3.40388887482190E-0001 3.40136327106413E-0001 3.39883924032842E-0001 3.39631678180476E-0001 3.39379589468348E-0001 + 3.39127657815526E-0001 3.38875883141111E-0001 3.38624265364240E-0001 3.38372804404083E-0001 3.38121500179844E-0001 + 3.37870352610762E-0001 3.37619361616110E-0001 3.37368527115195E-0001 3.37117849027358E-0001 3.36867327271976E-0001 + 3.36616961768457E-0001 3.36366752436246E-0001 3.36116699194821E-0001 3.35866801963693E-0001 3.35617060662409E-0001 + 3.35367475210549E-0001 3.35118045527729E-0001 3.34868771533596E-0001 3.34619653147833E-0001 3.34370690290156E-0001 + 3.34121882880317E-0001 3.33873230838100E-0001 3.33624734083324E-0001 3.33376392535841E-0001 3.33128206115539E-0001 + 3.32880174742339E-0001 3.32632298336194E-0001 3.32384576817094E-0001 3.32137010105062E-0001 3.31889598120154E-0001 + 3.31642340782460E-0001 3.31395238012105E-0001 3.31148289729248E-0001 3.30901495854080E-0001 3.30654856306829E-0001 + 3.30408371007752E-0001 3.30162039877146E-0001 3.29915862835336E-0001 3.29669839802686E-0001 3.29423970699589E-0001 + 3.29178255446476E-0001 3.28932693963809E-0001 3.28687286172085E-0001 3.28442031991835E-0001 3.28196931343622E-0001 + 3.27951984148045E-0001 3.27707190325735E-0001 3.27462549797358E-0001 3.27218062483613E-0001 3.26973728305233E-0001 + 3.26729547182985E-0001 3.26485519037668E-0001 3.26241643790117E-0001 3.25997921361198E-0001 3.25754351671815E-0001 + 3.25510934642900E-0001 3.25267670195423E-0001 3.25024558250386E-0001 3.24781598728823E-0001 3.24538791551805E-0001 + 3.24296136640434E-0001 3.24053633915847E-0001 3.23811283299213E-0001 3.23569084711736E-0001 3.23327038074653E-0001 + 3.23085143309234E-0001 3.22843400336782E-0001 3.22601809078637E-0001 3.22360369456167E-0001 3.22119081390778E-0001 + 3.21877944803908E-0001 3.21636959617027E-0001 3.21396125751641E-0001 3.21155443129287E-0001 3.20914911671537E-0001 + 3.20674531299996E-0001 3.20434301936302E-0001 3.20194223502126E-0001 3.19954295919174E-0001 3.19714519109184E-0001 + 3.19474892993927E-0001 3.19235417495209E-0001 3.18996092534867E-0001 3.18756918034774E-0001 3.18517893916833E-0001 + 3.18279020102984E-0001 3.18040296515197E-0001 3.17801723075478E-0001 3.17563299705863E-0001 3.17325026328424E-0001 + 3.17086902865266E-0001 3.16848929238525E-0001 3.16611105370373E-0001 3.16373431183013E-0001 3.16135906598682E-0001 + 3.15898531539651E-0001 3.15661305928223E-0001 3.15424229686734E-0001 3.15187302737553E-0001 3.14950525003084E-0001 + 3.14713896405762E-0001 3.14477416868056E-0001 3.14241086312468E-0001 3.14004904661533E-0001 3.13768871837818E-0001 + 3.13532987763926E-0001 3.13297252362489E-0001 3.13061665556176E-0001 3.12826227267685E-0001 3.12590937419751E-0001 + 3.12355795935139E-0001 3.12120802736648E-0001 3.11885957747110E-0001 3.11651260889390E-0001 3.11416712086387E-0001 + 3.11182311261029E-0001 3.10948058336283E-0001 3.10713953235143E-0001 3.10479995880639E-0001 3.10246186195834E-0001 + 3.10012524103822E-0001 3.09779009527733E-0001 3.09545642390726E-0001 3.09312422615995E-0001 3.09079350126767E-0001 + 3.08846424846301E-0001 3.08613646697889E-0001 3.08381015604856E-0001 3.08148531490560E-0001 3.07916194278390E-0001 + 3.07684003891771E-0001 3.07451960254157E-0001 3.07220063289038E-0001 3.06988312919935E-0001 3.06756709070401E-0001 + 3.06525251664023E-0001 3.06293940624422E-0001 3.06062775875247E-0001 3.05831757340186E-0001 3.05600884942953E-0001 + 3.05370158607300E-0001 3.05139578257009E-0001 3.04909143815895E-0001 3.04678855207806E-0001 3.04448712356622E-0001 + 3.04218715186256E-0001 3.03988863620653E-0001 3.03759157583791E-0001 3.03529596999681E-0001 3.03300181792366E-0001 + 3.03070911885921E-0001 3.02841787204454E-0001 3.02612807672106E-0001 3.02383973213050E-0001 3.02155283751490E-0001 + 3.01926739211666E-0001 3.01698339517848E-0001 3.01470084594337E-0001 3.01241974365470E-0001 3.01014008755614E-0001 + 3.00786187689168E-0001 3.00558511090566E-0001 3.00330978884272E-0001 3.00103590994783E-0001 2.99876347346629E-0001 + 2.99649247864371E-0001 2.99422292472603E-0001 2.99195481095952E-0001 2.98968813659077E-0001 2.98742290086668E-0001 + 2.98515910303448E-0001 2.98289674234175E-0001 2.98063581803634E-0001 2.97837632936647E-0001 2.97611827558065E-0001 + 2.97386165592774E-0001 2.97160646965689E-0001 2.96935271601759E-0001 2.96710039425967E-0001 2.96484950363324E-0001 + 2.96260004338877E-0001 2.96035201277703E-0001 2.95810541104912E-0001 2.95586023745645E-0001 2.95361649125077E-0001 + 2.95137417168414E-0001 2.94913327800894E-0001 2.94689380947787E-0001 2.94465576534395E-0001 2.94241914486054E-0001 + 2.94018394728128E-0001 2.93795017186018E-0001 2.93571781785153E-0001 2.93348688450995E-0001 2.93125737109040E-0001 + 2.92902927684814E-0001 2.92680260103876E-0001 2.92457734291815E-0001 2.92235350174255E-0001 2.92013107676849E-0001 + 2.91791006725285E-0001 2.91569047245279E-0001 2.91347229162583E-0001 2.91125552402979E-0001 2.90904016892279E-0001 + 2.90682622556331E-0001 2.90461369321012E-0001 2.90240257112231E-0001 2.90019285855930E-0001 2.89798455478082E-0001 + 2.89577765904692E-0001 2.89357217061796E-0001 2.89136808875465E-0001 2.88916541271797E-0001 2.88696414176925E-0001 + 2.88476427517013E-0001 2.88256581218257E-0001 2.88036875206884E-0001 2.87817309409154E-0001 2.87597883751357E-0001 + 2.87378598159816E-0001 2.87159452560885E-0001 2.86940446880950E-0001 2.86721581046429E-0001 2.86502854983772E-0001 + 2.86284268619458E-0001 2.86065821880001E-0001 2.85847514691946E-0001 2.85629346981867E-0001 2.85411318676373E-0001 + 2.85193429702103E-0001 2.84975679985726E-0001 2.84758069453945E-0001 2.84540598033495E-0001 2.84323265651141E-0001 + 2.84106072233678E-0001 2.83889017707936E-0001 2.83672102000775E-0001 2.83455325039085E-0001 2.83238686749791E-0001 + 2.83022187059846E-0001 2.82805825896235E-0001 2.82589603185978E-0001 2.82373518856121E-0001 2.82157572833746E-0001 + 2.81941765045964E-0001 2.81726095419917E-0001 2.81510563882782E-0001 2.81295170361762E-0001 2.81079914784096E-0001 + 2.80864797077052E-0001 2.80649817167930E-0001 2.80434974984061E-0001 2.80220270452808E-0001 2.80005703501564E-0001 + 2.79791274057756E-0001 2.79576982048839E-0001 2.79362827402302E-0001 2.79148810045663E-0001 2.78934929906473E-0001 + 2.78721186912313E-0001 2.78507580990797E-0001 2.78294112069569E-0001 2.78080780076303E-0001 2.77867584938707E-0001 + 2.77654526584518E-0001 2.77441604941505E-0001 2.77228819937468E-0001 2.77016171500239E-0001 2.76803659557680E-0001 + 2.76591284037684E-0001 2.76379044868177E-0001 2.76166941977113E-0001 2.75954975292481E-0001 2.75743144742298E-0001 + 2.75531450254613E-0001 2.75319891757507E-0001 2.75108469179090E-0001 2.74897182447505E-0001 2.74686031490926E-0001 + 2.74475016237557E-0001 2.74264136615633E-0001 2.74053392553421E-0001 2.73842783979218E-0001 2.73632310821353E-0001 + 2.73421973008184E-0001 2.73211770468104E-0001 2.73001703129532E-0001 2.72791770920921E-0001 2.72581973770754E-0001 + 2.72372311607546E-0001 2.72162784359841E-0001 2.71953391956216E-0001 2.71744134325277E-0001 2.71535011395662E-0001 + 2.71326023096039E-0001 2.71117169355109E-0001 2.70908450101600E-0001 2.70699865264275E-0001 2.70491414771925E-0001 + 2.70283098553373E-0001 2.70074916537473E-0001 2.69866868653108E-0001 2.69658954829195E-0001 2.69451174994678E-0001 + 2.69243529078535E-0001 2.69036017009773E-0001 2.68828638717430E-0001 2.68621394130574E-0001 2.68414283178306E-0001 + 2.68207305789756E-0001 2.68000461894084E-0001 2.67793751420482E-0001 2.67587174298172E-0001 2.67380730456408E-0001 + 2.67174419824473E-0001 2.66968242331681E-0001 2.66762197907377E-0001 2.66556286480936E-0001 2.66350507981765E-0001 + 2.66144862339300E-0001 2.65939349483008E-0001 2.65733969342388E-0001 2.65528721846967E-0001 2.65323606926304E-0001 + 2.65118624509989E-0001 2.64913774527642E-0001 2.64709056908913E-0001 2.64504471583483E-0001 2.64300018481064E-0001 + 2.64095697531397E-0001 2.63891508664255E-0001 2.63687451809442E-0001 2.63483526896789E-0001 2.63279733856161E-0001 + 2.63076072617453E-0001 2.62872543110588E-0001 2.62669145265522E-0001 2.62465879012240E-0001 2.62262744280757E-0001 + 2.62059741001121E-0001 2.61856869103407E-0001 2.61654128517723E-0001 2.61451519174205E-0001 2.61249041003021E-0001 + 2.61046693934369E-0001 2.60844477898477E-0001 2.60642392825604E-0001 2.60440438646038E-0001 2.60238615290098E-0001 + 2.60036922688133E-0001 2.59835360770523E-0001 2.59633929467678E-0001 2.59432628710038E-0001 2.59231458428073E-0001 + 2.59030418552282E-0001 2.58829509013198E-0001 2.58628729741380E-0001 2.58428080667420E-0001 2.58227561721938E-0001 + 2.58027172835587E-0001 2.57826913939047E-0001 2.57626784963030E-0001 2.57426785838277E-0001 2.57226916495561E-0001 + 2.57027176865683E-0001 2.56827566879475E-0001 2.56628086467800E-0001 2.56428735561549E-0001 2.56229514091644E-0001 + 2.56030421989038E-0001 2.55831459184714E-0001 2.55632625609682E-0001 2.55433921194986E-0001 2.55235345871698E-0001 + 2.55036899570920E-0001 2.54838582223784E-0001 2.54640393761453E-0001 2.54442334115119E-0001 2.54244403216003E-0001 + 2.54046600995359E-0001 2.53848927384467E-0001 2.53651382314640E-0001 2.53453965717220E-0001 2.53256677523578E-0001 + 2.53059517665116E-0001 2.52862486073265E-0001 2.52665582679487E-0001 2.52468807415273E-0001 2.52272160212143E-0001 + 2.52075641001650E-0001 2.51879249715373E-0001 2.51682986284922E-0001 2.51486850641939E-0001 2.51290842718092E-0001 + 2.51094962445083E-0001 2.50899209754640E-0001 2.50703584578523E-0001 2.50508086848521E-0001 2.50312716496452E-0001 + 2.50117473454166E-0001 2.49922357653540E-0001 2.49727369026483E-0001 2.49532507504932E-0001 2.49337773020854E-0001 + 2.49143165506247E-0001 2.48948684893136E-0001 2.48754331113579E-0001 2.48560104099661E-0001 2.48366003783498E-0001 + 2.48172030097235E-0001 2.47978182973046E-0001 2.47784462343136E-0001 2.47590868139740E-0001 2.47397400295120E-0001 + 2.47204058741569E-0001 2.47010843411411E-0001 2.46817754236996E-0001 2.46624791150708E-0001 2.46431954084957E-0001 + 2.46239242972184E-0001 2.46046657744860E-0001 2.45854198335482E-0001 2.45661864676583E-0001 2.45469656700718E-0001 + 2.45277574340477E-0001 2.45085617528478E-0001 2.44893786197367E-0001 2.44702080279820E-0001 2.44510499708544E-0001 + 2.44319044416274E-0001 2.44127714335773E-0001 2.43936509399837E-0001 2.43745429541289E-0001 2.43554474692980E-0001 + 2.43363644787794E-0001 2.43172939758642E-0001 2.42982359538464E-0001 2.42791904060231E-0001 2.42601573256941E-0001 + 2.42411367061624E-0001 2.42221285407337E-0001 2.42031328227168E-0001 2.41841495454232E-0001 2.41651787021677E-0001 + 2.41462202862675E-0001 2.41272742910433E-0001 2.41083407098183E-0001 2.40894195359188E-0001 2.40705107626739E-0001 + 2.40516143834158E-0001 2.40327303914795E-0001 2.40138587802028E-0001 2.39949995429268E-0001 2.39761526729951E-0001 + 2.39573181637544E-0001 2.39384960085542E-0001 2.39196862007473E-0001 2.39008887336888E-0001 2.38821036007371E-0001 + 2.38633307952535E-0001 2.38445703106022E-0001 2.38258221401501E-0001 2.38070862772672E-0001 2.37883627153264E-0001 + 2.37696514477033E-0001 2.37509524677768E-0001 2.37322657689283E-0001 2.37135913445423E-0001 2.36949291880061E-0001 + 2.36762792927101E-0001 2.36576416520473E-0001 2.36390162594139E-0001 2.36204031082087E-0001 2.36018021918336E-0001 + 2.35832135036934E-0001 2.35646370371956E-0001 2.35460727857508E-0001 2.35275207427723E-0001 2.35089809016766E-0001 + 2.34904532558826E-0001 2.34719377988126E-0001 2.34534345238914E-0001 2.34349434245469E-0001 2.34164644942098E-0001 + 2.33979977263138E-0001 2.33795431142952E-0001 2.33611006515935E-0001 2.33426703316508E-0001 2.33242521479124E-0001 + 2.33058460938262E-0001 2.32874521628430E-0001 2.32690703484167E-0001 2.32507006440038E-0001 2.32323430430638E-0001 + 2.32139975390591E-0001 2.31956641254550E-0001 2.31773427957195E-0001 2.31590335433236E-0001 2.31407363617412E-0001 + 2.31224512444489E-0001 2.31041781849263E-0001 2.30859171766559E-0001 2.30676682131230E-0001 2.30494312878157E-0001 + 2.30312063942251E-0001 2.30129935258450E-0001 2.29947926761722E-0001 2.29766038387062E-0001 2.29584270069496E-0001 + 2.29402621744077E-0001 2.29221093345886E-0001 2.29039684810033E-0001 2.28858396071658E-0001 2.28677227065928E-0001 + 2.28496177728038E-0001 2.28315247993212E-0001 2.28134437796705E-0001 2.27953747073796E-0001 2.27773175759795E-0001 + 2.27592723790042E-0001 2.27412391099901E-0001 2.27232177624769E-0001 2.27052083300070E-0001 2.26872108061254E-0001 + 2.26692251843802E-0001 2.26512514583223E-0001 2.26332896215055E-0001 2.26153396674862E-0001 2.25974015898239E-0001 + 2.25794753820807E-0001 2.25615610378218E-0001 2.25436585506149E-0001 2.25257679140309E-0001 2.25078891216433E-0001 + 2.24900221670285E-0001 2.24721670437657E-0001 2.24543237454369E-0001 2.24364922656269E-0001 2.24186725979236E-0001 + 2.24008647359174E-0001 2.23830686732016E-0001 2.23652844033725E-0001 2.23475119200289E-0001 2.23297512167728E-0001 + 2.23120022872088E-0001 2.22942651249442E-0001 2.22765397235894E-0001 2.22588260767575E-0001 2.22411241780643E-0001 + 2.22234340211286E-0001 2.22057555995719E-0001 2.21880889070185E-0001 2.21704339370957E-0001 2.21527906834332E-0001 + 2.21351591396641E-0001 2.21175392994237E-0001 2.20999311563506E-0001 2.20823347040859E-0001 2.20647499362735E-0001 + 2.20471768465605E-0001 2.20296154285962E-0001 2.20120656760332E-0001 2.19945275825267E-0001 2.19770011417346E-0001 + 2.19594863473179E-0001 2.19419831929401E-0001 2.19244916722676E-0001 2.19070117789697E-0001 2.18895435067183E-0001 + 2.18720868491882E-0001 2.18546418000571E-0001 2.18372083530054E-0001 2.18197865017161E-0001 2.18023762398754E-0001 + 2.17849775611718E-0001 2.17675904592971E-0001 2.17502149279454E-0001 2.17328509608140E-0001 2.17154985516027E-0001 + 2.16981576940143E-0001 2.16808283817542E-0001 2.16635106085306E-0001 2.16462043680546E-0001 2.16289096540401E-0001 + 2.16116264602036E-0001 2.15943547802644E-0001 2.15770946079448E-0001 2.15598459369697E-0001 2.15426087610667E-0001 + 2.15253830739664E-0001 2.15081688694020E-0001 2.14909661411095E-0001 2.14737748828277E-0001 2.14565950882982E-0001 + 2.14394267512654E-0001 2.14222698654762E-0001 2.14051244246807E-0001 2.13879904226314E-0001 2.13708678530837E-0001 + 2.13537567097958E-0001 2.13366569865287E-0001 2.13195686770460E-0001 2.13024917751141E-0001 2.12854262745023E-0001 + 2.12683721689826E-0001 2.12513294523297E-0001 2.12342981183210E-0001 2.12172781607368E-0001 2.12002695733602E-0001 + 2.11832723499768E-0001 2.11662864843752E-0001 2.11493119703466E-0001 2.11323488016851E-0001 2.11153969721873E-0001 + 2.10984564756529E-0001 2.10815273058840E-0001 2.10646094566856E-0001 2.10477029218656E-0001 2.10308076952344E-0001 + 2.10139237706052E-0001 2.09970511417940E-0001 2.09801898026196E-0001 2.09633397469034E-0001 2.09465009684696E-0001 + 2.09296734611451E-0001 2.09128572187597E-0001 2.08960522351458E-0001 2.08792585041385E-0001 2.08624760195756E-0001 + 2.08457047752980E-0001 2.08289447651488E-0001 2.08121959829741E-0001 2.07954584226229E-0001 2.07787320779466E-0001 + 2.07620169427995E-0001 2.07453130110387E-0001 2.07286202765238E-0001 2.07119387331174E-0001 2.06952683746846E-0001 + 2.06786091950933E-0001 2.06619611882141E-0001 2.06453243479205E-0001 2.06286986680885E-0001 2.06120841425968E-0001 + 2.05954807653271E-0001 2.05788885301635E-0001 2.05623074309930E-0001 2.05457374617053E-0001 2.05291786161927E-0001 + 2.05126308883503E-0001 2.04960942720760E-0001 2.04795687612702E-0001 2.04630543498363E-0001 2.04465510316801E-0001 + 2.04300588007103E-0001 2.04135776508383E-0001 2.03971075759781E-0001 2.03806485700465E-0001 2.03642006269630E-0001 + 2.03477637406498E-0001 2.03313379050317E-0001 2.03149231140363E-0001 2.02985193615941E-0001 2.02821266416378E-0001 + 2.02657449481033E-0001 2.02493742749289E-0001 2.02330146160557E-0001 2.02166659654274E-0001 2.02003283169907E-0001 + 2.01840016646946E-0001 2.01676860024909E-0001 2.01513813243344E-0001 2.01350876241821E-0001 2.01188048959941E-0001 + 2.01025331337330E-0001 2.00862723313641E-0001 2.00700224828554E-0001 2.00537835821776E-0001 2.00375556233040E-0001 + 2.00213386002109E-0001 2.00051325068768E-0001 1.99889373372832E-0001 1.99727530854143E-0001 1.99565797452568E-0001 + 1.99404173108002E-0001 1.99242657760366E-0001 1.99081251349609E-0001 1.98919953815706E-0001 1.98758765098658E-0001 + 1.98597685138495E-0001 1.98436713875271E-0001 1.98275851249068E-0001 1.98115097199996E-0001 1.97954451668189E-0001 + 1.97793914593810E-0001 1.97633485917048E-0001 1.97473165578117E-0001 1.97312953517261E-0001 1.97152849674748E-0001 + 1.96992853990874E-0001 1.96832966405961E-0001 1.96673186860357E-0001 1.96513515294438E-0001 1.96353951648605E-0001 + 1.96194495863289E-0001 1.96035147878943E-0001 1.95875907636049E-0001 1.95716775075116E-0001 1.95557750136679E-0001 + 1.95398832761299E-0001 1.95240022889564E-0001 1.95081320462089E-0001 1.94922725419514E-0001 1.94764237702508E-0001 + 1.94605857251764E-0001 1.94447584008003E-0001 1.94289417911972E-0001 1.94131358904444E-0001 1.93973406926220E-0001 + 1.93815561918126E-0001 1.93657823821015E-0001 1.93500192575765E-0001 1.93342668123284E-0001 1.93185250404503E-0001 + 1.93027939360380E-0001 1.92870734931901E-0001 1.92713637060076E-0001 1.92556645685945E-0001 1.92399760750570E-0001 + 1.92242982195043E-0001 1.92086309960479E-0001 1.91929743988023E-0001 1.91773284218843E-0001 1.91616930594136E-0001 + 1.91460683055124E-0001 1.91304541543055E-0001 1.91148505999203E-0001 1.90992576364870E-0001 1.90836752581383E-0001 + 1.90681034590095E-0001 1.90525422332387E-0001 1.90369915749664E-0001 1.90214514783358E-0001 1.90059219374929E-0001 + 1.89904029465860E-0001 1.89748944997662E-0001 1.89593965911873E-0001 1.89439092150056E-0001 1.89284323653801E-0001 + 1.89129660364722E-0001 1.88975102224462E-0001 1.88820649174688E-0001 1.88666301157095E-0001 1.88512058113403E-0001 + 1.88357919985358E-0001 1.88203886714732E-0001 1.88049958243324E-0001 1.87896134512959E-0001 1.87742415465488E-0001 + 1.87588801042785E-0001 1.87435291186756E-0001 1.87281885839329E-0001 1.87128584942457E-0001 1.86975388438124E-0001 + 1.86822296268334E-0001 1.86669308375122E-0001 1.86516424700546E-0001 1.86363645186691E-0001 1.86210969775668E-0001 + 1.86058398409614E-0001 1.85905931030692E-0001 1.85753567581091E-0001 1.85601308003025E-0001 1.85449152238735E-0001 + 1.85297100230488E-0001 1.85145151920576E-0001 1.84993307251319E-0001 1.84841566165059E-0001 1.84689928604167E-0001 + 1.84538394511040E-0001 1.84386963828100E-0001 1.84235636497794E-0001 1.84084412462595E-0001 1.83933291665004E-0001 + 1.83782274047547E-0001 1.83631359552773E-0001 1.83480548123260E-0001 1.83329839701611E-0001 1.83179234230455E-0001 + 1.83028731652445E-0001 1.82878331910263E-0001 1.82728034946613E-0001 1.82577840704228E-0001 1.82427749125865E-0001 + 1.82277760154307E-0001 1.82127873732363E-0001 1.81978089802868E-0001 1.81828408308682E-0001 1.81678829192691E-0001 + 1.81529352397806E-0001 1.81379977866965E-0001 1.81230705543132E-0001 1.81081535369294E-0001 1.80932467288466E-0001 + 1.80783501243689E-0001 1.80634637178027E-0001 1.80485875034572E-0001 1.80337214756441E-0001 1.80188656286776E-0001 + 1.80040199568746E-0001 1.79891844545543E-0001 1.79743591160388E-0001 1.79595439356525E-0001 1.79447389077224E-0001 + 1.79299440265782E-0001 1.79151592865519E-0001 1.79003846819783E-0001 1.78856202071946E-0001 1.78708658565406E-0001 + 1.78561216243587E-0001 1.78413875049937E-0001 1.78266634927931E-0001 1.78119495821069E-0001 1.77972457672877E-0001 + 1.77825520426904E-0001 1.77678684026729E-0001 1.77531948415951E-0001 1.77385313538199E-0001 1.77238779337124E-0001 + 1.77092345756406E-0001 1.76946012739746E-0001 1.76799780230875E-0001 1.76653648173546E-0001 1.76507616511538E-0001 + 1.76361685188657E-0001 1.76215854148733E-0001 1.76070123335621E-0001 1.75924492693202E-0001 1.75778962165382E-0001 + 1.75633531696094E-0001 1.75488201229292E-0001 1.75342970708961E-0001 1.75197840079107E-0001 1.75052809283763E-0001 + 1.74907878266986E-0001 1.74763046972861E-0001 1.74618315345495E-0001 1.74473683329022E-0001 1.74329150867601E-0001 + 1.74184717905417E-0001 1.74040384386678E-0001 1.73896150255618E-0001 1.73752015456499E-0001 1.73607979933605E-0001 + 1.73464043631245E-0001 1.73320206493755E-0001 1.73176468465496E-0001 1.73032829490853E-0001 1.72889289514236E-0001 + 1.72745848480082E-0001 1.72602506332852E-0001 1.72459263017031E-0001 1.72316118477130E-0001 1.72173072657686E-0001 + 1.72030125503261E-0001 1.71887276958440E-0001 1.71744526967835E-0001 1.71601875476083E-0001 1.71459322427844E-0001 + 1.71316867767806E-0001 1.71174511440680E-0001 1.71032253391203E-0001 1.70890093564137E-0001 1.70748031904267E-0001 + 1.70606068356406E-0001 1.70464202865390E-0001 1.70322435376081E-0001 1.70180765833365E-0001 1.70039194182154E-0001 + 1.69897720367383E-0001 1.69756344334016E-0001 1.69615066027036E-0001 1.69473885391457E-0001 1.69332802372314E-0001 + 1.69191816914667E-0001 1.69050928963603E-0001 1.68910138464233E-0001 1.68769445361691E-0001 1.68628849601139E-0001 + 1.68488351127762E-0001 1.68347949886770E-0001 1.68207645823398E-0001 1.68067438882905E-0001 1.67927329010577E-0001 + 1.67787316151722E-0001 1.67647400251676E-0001 1.67507581255796E-0001 1.67367859109467E-0001 1.67228233758098E-0001 + 1.67088705147120E-0001 1.66949273221994E-0001 1.66809937928201E-0001 1.66670699211248E-0001 1.66531557016669E-0001 + 1.66392511290020E-0001 1.66253561976882E-0001 1.66114709022862E-0001 1.65975952373592E-0001 1.65837291974726E-0001 + 1.65698727771945E-0001 1.65560259710954E-0001 1.65421887737484E-0001 1.65283611797287E-0001 1.65145431836143E-0001 + 1.65007347799856E-0001 1.64869359634253E-0001 1.64731467285188E-0001 1.64593670698538E-0001 1.64455969820205E-0001 + 1.64318364596115E-0001 1.64180854972220E-0001 1.64043440894494E-0001 1.63906122308939E-0001 1.63768899161579E-0001 + 1.63631771398463E-0001 1.63494738965665E-0001 1.63357801809284E-0001 1.63220959875441E-0001 1.63084213110285E-0001 + 1.62947561459987E-0001 1.62811004870743E-0001 1.62674543288775E-0001 1.62538176660326E-0001 1.62401904931668E-0001 + 1.62265728049094E-0001 1.62129645958922E-0001 1.61993658607495E-0001 1.61857765941181E-0001 1.61721967906371E-0001 + 1.61586264449482E-0001 1.61450655516953E-0001 1.61315141055251E-0001 1.61179721010863E-0001 1.61044395330304E-0001 + 1.60909163960111E-0001 1.60774026846848E-0001 1.60638983937099E-0001 1.60504035177478E-0001 1.60369180514617E-0001 + 1.60234419895178E-0001 1.60099753265844E-0001 1.59965180573322E-0001 1.59830701764347E-0001 1.59696316785673E-0001 + 1.59562025584083E-0001 1.59427828106380E-0001 1.59293724299396E-0001 1.59159714109982E-0001 1.59025797485018E-0001 + 1.58891974371405E-0001 1.58758244716069E-0001 1.58624608465961E-0001 1.58491065568056E-0001 1.58357615969352E-0001 + 1.58224259616873E-0001 1.58090996457665E-0001 1.57957826438800E-0001 1.57824749507374E-0001 1.57691765610505E-0001 + 1.57558874695338E-0001 1.57426076709041E-0001 1.57293371598804E-0001 1.57160759311846E-0001 1.57028239795404E-0001 + 1.56895812996745E-0001 1.56763478863155E-0001 1.56631237341948E-0001 1.56499088380459E-0001 1.56367031926049E-0001 + 1.56235067926103E-0001 1.56103196328028E-0001 1.55971417079258E-0001 1.55839730127249E-0001 1.55708135419481E-0001 + 1.55576632903459E-0001 1.55445222526712E-0001 1.55313904236791E-0001 1.55182677981273E-0001 1.55051543707759E-0001 + 1.54920501363872E-0001 1.54789550897262E-0001 1.54658692255599E-0001 1.54527925386581E-0001 1.54397250237927E-0001 + 1.54266666757380E-0001 1.54136174892710E-0001 1.54005774591707E-0001 1.53875465802187E-0001 1.53745248471989E-0001 + 1.53615122548977E-0001 1.53485087981037E-0001 1.53355144716081E-0001 1.53225292702043E-0001 1.53095531886882E-0001 + 1.52965862218580E-0001 1.52836283645144E-0001 1.52706796114603E-0001 1.52577399575011E-0001 1.52448093974446E-0001 + 1.52318879261009E-0001 1.52189755382825E-0001 1.52060722288043E-0001 1.51931779924835E-0001 1.51802928241398E-0001 + 1.51674167185952E-0001 1.51545496706740E-0001 1.51416916752029E-0001 1.51288427270112E-0001 1.51160028209302E-0001 + 1.51031719517939E-0001 1.50903501144384E-0001 1.50775373037023E-0001 1.50647335144266E-0001 1.50519387414545E-0001 + 1.50391529796318E-0001 1.50263762238065E-0001 1.50136084688289E-0001 1.50008497095519E-0001 1.49880999408305E-0001 + 1.49753591575223E-0001 1.49626273544871E-0001 1.49499045265870E-0001 1.49371906686866E-0001 1.49244857756529E-0001 + 1.49117898423550E-0001 1.48991028636646E-0001 1.48864248344557E-0001 1.48737557496045E-0001 1.48610956039898E-0001 + 1.48484443924925E-0001 1.48358021099961E-0001 1.48231687513863E-0001 1.48105443115510E-0001 1.47979287853808E-0001 + 1.47853221677683E-0001 1.47727244536088E-0001 1.47601356377996E-0001 1.47475557152405E-0001 1.47349846808336E-0001 + 1.47224225294835E-0001 1.47098692560969E-0001 1.46973248555830E-0001 1.46847893228533E-0001 1.46722626528216E-0001 + 1.46597448404041E-0001 1.46472358805193E-0001 1.46347357680881E-0001 1.46222444980335E-0001 1.46097620652811E-0001 + 1.45972884647588E-0001 1.45848236913967E-0001 1.45723677401274E-0001 1.45599206058855E-0001 1.45474822836085E-0001 + 1.45350527682356E-0001 1.45226320547088E-0001 1.45102201379721E-0001 1.44978170129721E-0001 1.44854226746575E-0001 + 1.44730371179795E-0001 1.44606603378915E-0001 1.44482923293493E-0001 1.44359330873109E-0001 1.44235826067368E-0001 + 1.44112408825897E-0001 1.43989079098346E-0001 1.43865836834389E-0001 1.43742681983723E-0001 1.43619614496068E-0001 + 1.43496634321167E-0001 1.43373741408786E-0001 1.43250935708714E-0001 1.43128217170765E-0001 1.43005585744773E-0001 + 1.42883041380598E-0001 1.42760584028122E-0001 1.42638213637249E-0001 1.42515930157907E-0001 1.42393733540048E-0001 + 1.42271623733646E-0001 1.42149600688697E-0001 1.42027664355223E-0001 1.41905814683267E-0001 1.41784051622894E-0001 + 1.41662375124195E-0001 1.41540785137282E-0001 1.41419281612290E-0001 1.41297864499377E-0001 1.41176533748726E-0001 + 1.41055289310540E-0001 1.40934131135047E-0001 1.40813059172497E-0001 1.40692073373163E-0001 1.40571173687342E-0001 + 1.40450360065353E-0001 1.40329632457537E-0001 1.40208990814261E-0001 1.40088435085911E-0001 1.39967965222899E-0001 + 1.39847581175659E-0001 1.39727282894646E-0001 1.39607070330341E-0001 1.39486943433246E-0001 1.39366902153886E-0001 + 1.39246946442809E-0001 1.39127076250586E-0001 1.39007291527811E-0001 1.38887592225101E-0001 1.38767978293094E-0001 + 1.38648449682453E-0001 1.38529006343863E-0001 1.38409648228032E-0001 1.38290375285691E-0001 1.38171187467592E-0001 + 1.38052084724513E-0001 1.37933067007251E-0001 1.37814134266628E-0001 1.37695286453489E-0001 1.37576523518702E-0001 + 1.37457845413155E-0001 1.37339252087761E-0001 1.37220743493456E-0001 1.37102319581198E-0001 1.36983980301967E-0001 + 1.36865725606766E-0001 1.36747555446622E-0001 1.36629469772583E-0001 1.36511468535720E-0001 1.36393551687128E-0001 + 1.36275719177924E-0001 1.36157970959245E-0001 1.36040306982255E-0001 1.35922727198138E-0001 1.35805231558100E-0001 + 1.35687820013372E-0001 1.35570492515206E-0001 1.35453249014876E-0001 1.35336089463680E-0001 1.35219013812938E-0001 + 1.35102022013993E-0001 1.34985114018210E-0001 1.34868289776976E-0001 1.34751549241701E-0001 1.34634892363818E-0001 + 1.34518319094783E-0001 1.34401829386072E-0001 1.34285423189187E-0001 1.34169100455650E-0001 1.34052861137005E-0001 + 1.33936705184821E-0001 1.33820632550688E-0001 1.33704643186218E-0001 1.33588737043047E-0001 1.33472914072831E-0001 + 1.33357174227250E-0001 1.33241517458007E-0001 1.33125943716827E-0001 1.33010452955456E-0001 1.32895045125664E-0001 + 1.32779720179243E-0001 1.32664478068006E-0001 1.32549318743792E-0001 1.32434242158458E-0001 1.32319248263886E-0001 + 1.32204337011980E-0001 1.32089508354665E-0001 1.31974762243890E-0001 1.31860098631626E-0001 1.31745517469865E-0001 + 1.31631018710623E-0001 1.31516602305938E-0001 1.31402268207868E-0001 1.31288016368497E-0001 1.31173846739928E-0001 + 1.31059759274289E-0001 1.30945753923728E-0001 1.30831830640416E-0001 1.30717989376547E-0001 1.30604230084336E-0001 + 1.30490552716021E-0001 1.30376957223862E-0001 1.30263443560141E-0001 1.30150011677163E-0001 1.30036661527255E-0001 + 1.29923393062765E-0001 1.29810206236063E-0001 1.29697100999544E-0001 1.29584077305622E-0001 1.29471135106735E-0001 + 1.29358274355343E-0001 1.29245495003926E-0001 1.29132797004989E-0001 1.29020180311058E-0001 1.28907644874680E-0001 + 1.28795190648426E-0001 1.28682817584888E-0001 1.28570525636680E-0001 1.28458314756439E-0001 1.28346184896822E-0001 + 1.28234136010511E-0001 1.28122168050208E-0001 1.28010280968636E-0001 1.27898474718544E-0001 1.27786749252698E-0001 + 1.27675104523891E-0001 1.27563540484933E-0001 1.27452057088661E-0001 1.27340654287931E-0001 1.27229332035620E-0001 + 1.27118090284630E-0001 1.27006928987882E-0001 1.26895848098322E-0001 1.26784847568916E-0001 1.26673927352652E-0001 + 1.26563087402539E-0001 1.26452327671611E-0001 1.26341648112921E-0001 1.26231048679546E-0001 1.26120529324582E-0001 + 1.26010090001150E-0001 1.25899730662392E-0001 1.25789451261470E-0001 1.25679251751570E-0001 1.25569132085900E-0001 + 1.25459092217688E-0001 1.25349132100185E-0001 1.25239251686664E-0001 1.25129450930419E-0001 1.25019729784767E-0001 + 1.24910088203046E-0001 1.24800526138615E-0001 1.24691043544857E-0001 1.24581640375174E-0001 1.24472316582993E-0001 + 1.24363072121760E-0001 1.24253906944944E-0001 1.24144821006035E-0001 1.24035814258546E-0001 1.23926886656011E-0001 + 1.23818038151984E-0001 1.23709268700045E-0001 1.23600578253792E-0001 1.23491966766845E-0001 1.23383434192847E-0001 + 1.23274980485463E-0001 1.23166605598378E-0001 1.23058309485300E-0001 1.22950092099958E-0001 1.22841953396102E-0001 + 1.22733893327506E-0001 1.22625911847964E-0001 1.22518008911290E-0001 1.22410184471322E-0001 1.22302438481920E-0001 + 1.22194770896964E-0001 1.22087181670356E-0001 1.21979670756020E-0001 1.21872238107901E-0001 1.21764883679965E-0001 + 1.21657607426202E-0001 1.21550409300621E-0001 1.21443289257254E-0001 1.21336247250153E-0001 1.21229283233394E-0001 + 1.21122397161073E-0001 1.21015588987306E-0001 1.20908858666234E-0001 1.20802206152016E-0001 1.20695631398835E-0001 + 1.20589134360895E-0001 1.20482714992419E-0001 1.20376373247656E-0001 1.20270109080872E-0001 1.20163922446358E-0001 + 1.20057813298423E-0001 1.19951781591401E-0001 1.19845827279644E-0001 1.19739950317528E-0001 1.19634150659450E-0001 + 1.19528428259826E-0001 1.19422783073098E-0001 1.19317215053724E-0001 1.19211724156187E-0001 1.19106310334991E-0001 + 1.19000973544661E-0001 1.18895713739741E-0001 1.18790530874800E-0001 1.18685424904426E-0001 1.18580395783231E-0001 + 1.18475443465843E-0001 1.18370567906918E-0001 1.18265769061128E-0001 1.18161046883168E-0001 1.18056401327757E-0001 + 1.17951832349630E-0001 1.17847339903547E-0001 1.17742923944290E-0001 1.17638584426658E-0001 1.17534321305476E-0001 + 1.17430134535587E-0001 1.17326024071856E-0001 1.17221989869170E-0001 1.17118031882438E-0001 1.17014150066586E-0001 + 1.16910344376567E-0001 1.16806614767351E-0001 1.16702961193930E-0001 1.16599383611319E-0001 1.16495881974552E-0001 + 1.16392456238685E-0001 1.16289106358795E-0001 1.16185832289981E-0001 1.16082633987362E-0001 1.15979511406078E-0001 + 1.15876464501292E-0001 1.15773493228185E-0001 1.15670597541962E-0001 1.15567777397847E-0001 1.15465032751087E-0001 + 1.15362363556949E-0001 1.15259769770720E-0001 1.15157251347711E-0001 1.15054808243251E-0001 1.14952440412691E-0001 + 1.14850147811405E-0001 1.14747930394784E-0001 1.14645788118245E-0001 1.14543720937221E-0001 1.14441728807170E-0001 + 1.14339811683569E-0001 1.14237969521916E-0001 1.14136202277730E-0001 1.14034509906552E-0001 1.13932892363944E-0001 + 1.13831349605487E-0001 1.13729881586784E-0001 1.13628488263460E-0001 1.13527169591160E-0001 1.13425925525549E-0001 + 1.13324756022316E-0001 1.13223661037166E-0001 1.13122640525830E-0001 1.13021694444056E-0001 1.12920822747615E-0001 + 1.12820025392299E-0001 1.12719302333920E-0001 1.12618653528310E-0001 1.12518078931324E-0001 1.12417578498837E-0001 + 1.12317152186743E-0001 1.12216799950960E-0001 1.12116521747425E-0001 1.12016317532095E-0001 1.11916187260950E-0001 + 1.11816130889989E-0001 1.11716148375233E-0001 1.11616239672723E-0001 1.11516404738521E-0001 1.11416643528710E-0001 + 1.11316955999393E-0001 1.11217342106694E-0001 1.11117801806759E-0001 1.11018335055753E-0001 1.10918941809863E-0001 + 1.10819622025296E-0001 1.10720375658280E-0001 1.10621202665062E-0001 1.10522103001914E-0001 1.10423076625124E-0001 + 1.10324123491004E-0001 1.10225243555884E-0001 1.10126436776116E-0001 1.10027703108074E-0001 1.09929042508150E-0001 + 1.09830454932759E-0001 1.09731940338335E-0001 1.09633498681332E-0001 1.09535129918228E-0001 1.09436834005518E-0001 + 1.09338610899719E-0001 1.09240460557369E-0001 1.09142382935027E-0001 1.09044377989270E-0001 1.08946445676698E-0001 + 1.08848585953931E-0001 1.08750798777609E-0001 1.08653084104394E-0001 1.08555441890967E-0001 1.08457872094029E-0001 + 1.08360374670304E-0001 1.08262949576535E-0001 1.08165596769485E-0001 1.08068316205937E-0001 1.07971107842698E-0001 + 1.07873971636591E-0001 1.07776907544463E-0001 1.07679915523179E-0001 1.07582995529625E-0001 1.07486147520709E-0001 + 1.07389371453358E-0001 1.07292667284520E-0001 1.07196034971163E-0001 1.07099474470275E-0001 1.07002985738865E-0001 + 1.06906568733964E-0001 1.06810223412620E-0001 1.06713949731904E-0001 1.06617747648907E-0001 1.06521617120740E-0001 + 1.06425558104533E-0001 1.06329570557439E-0001 1.06233654436630E-0001 1.06137809699297E-0001 1.06042036302655E-0001 + 1.05946334203935E-0001 1.05850703360391E-0001 1.05755143729297E-0001 1.05659655267947E-0001 1.05564237933655E-0001 + 1.05468891683756E-0001 1.05373616475603E-0001 1.05278412266574E-0001 1.05183279014063E-0001 1.05088216675485E-0001 + 1.04993225208276E-0001 1.04898304569893E-0001 1.04803454717812E-0001 1.04708675609530E-0001 1.04613967202563E-0001 + 1.04519329454448E-0001 1.04424762322743E-0001 1.04330265765025E-0001 1.04235839738891E-0001 1.04141484201959E-0001 + 1.04047199111868E-0001 1.03952984426275E-0001 1.03858840102859E-0001 1.03764766099318E-0001 1.03670762373371E-0001 + 1.03576828882756E-0001 1.03482965585232E-0001 1.03389172438578E-0001 1.03295449400593E-0001 1.03201796429097E-0001 + 1.03108213481928E-0001 1.03014700516946E-0001 1.02921257492030E-0001 1.02827884365080E-0001 1.02734581094015E-0001 + 1.02641347636775E-0001 1.02548183951320E-0001 1.02455089995629E-0001 1.02362065727701E-0001 1.02269111105558E-0001 + 1.02176226087238E-0001 1.02083410630801E-0001 1.01990664694327E-0001 1.01897988235916E-0001 1.01805381213688E-0001 + 1.01712843585782E-0001 1.01620375310358E-0001 1.01527976345596E-0001 1.01435646649696E-0001 1.01343386180876E-0001 + 1.01251194897377E-0001 1.01159072757458E-0001 1.01067019719398E-0001 1.00975035741497E-0001 1.00883120782074E-0001 + 1.00791274799468E-0001 1.00699497752038E-0001 1.00607789598163E-0001 1.00516150296242E-0001 1.00424579804694E-0001 + 1.00333078081956E-0001 1.00241645086488E-0001 1.00150280776768E-0001 1.00058985111293E-0001 9.99677580485826E-0002 + 9.98765995471732E-0002 9.97855095656227E-0002 9.96944880625086E-0002 9.96035349964281E-0002 9.95126503259982E-0002 + 9.94218340098557E-0002 9.93310860066571E-0002 9.92404062750786E-0002 9.91497947738166E-0002 9.90592514615869E-0002 + 9.89687762971250E-0002 9.88783692391862E-0002 9.87880302465457E-0002 9.86977592779984E-0002 9.86075562923588E-0002 + 9.85174212484611E-0002 9.84273541051592E-0002 9.83373548213270E-0002 9.82474233558577E-0002 9.81575596676644E-0002 + 9.80677637156798E-0002 9.79780354588562E-0002 9.78883748561658E-0002 9.77987818666003E-0002 9.77092564491710E-0002 + 9.76197985629089E-0002 9.75304081668645E-0002 9.74410852201082E-0002 9.73518296817299E-0002 9.72626415108390E-0002 + 9.71735206665645E-0002 9.70844671080552E-0002 9.69954807944794E-0002 9.69065616850247E-0002 9.68177097388987E-0002 + 9.67289249153282E-0002 9.66402071735599E-0002 9.65515564728598E-0002 9.64629727725136E-0002 9.63744560318263E-0002 + 9.62860062101226E-0002 9.61976232667468E-0002 9.61093071610625E-0002 9.60210578524530E-0002 9.59328753003209E-0002 + 9.58447594640885E-0002 9.57567103031974E-0002 9.56687277771088E-0002 9.55808118453033E-0002 9.54929624672809E-0002 + 9.54051796025613E-0002 9.53174632106834E-0002 9.52298132512055E-0002 9.51422296837056E-0002 9.50547124677807E-0002 + 9.49672615630478E-0002 9.48798769291428E-0002 9.47925585257212E-0002 9.47053063124578E-0002 9.46181202490471E-0002 + 9.45310002952025E-0002 9.44439464106571E-0002 9.43569585551632E-0002 9.42700366884925E-0002 9.41831807704363E-0002 + 9.40963907608047E-0002 9.40096666194276E-0002 9.39230083061541E-0002 9.38364157808524E-0002 9.37498890034104E-0002 + 9.36634279337350E-0002 9.35770325317525E-0002 9.34907027574084E-0002 9.34044385706677E-0002 9.33182399315145E-0002 + 9.32321067999521E-0002 9.31460391360033E-0002 9.30600368997098E-0002 9.29741000511329E-0002 9.28882285503530E-0002 + 9.28024223574697E-0002 9.27166814326019E-0002 9.26310057358873E-0002 9.25453952274836E-0002 9.24598498675671E-0002 + 9.23743696163334E-0002 9.22889544339972E-0002 9.22036042807928E-0002 9.21183191169733E-0002 9.20330989028109E-0002 + 9.19479435985973E-0002 9.18628531646428E-0002 9.17778275612776E-0002 9.16928667488503E-0002 9.16079706877292E-0002 + 9.15231393383012E-0002 9.14383726609727E-0002 9.13536706161691E-0002 9.12690331643348E-0002 9.11844602659335E-0002 + 9.10999518814476E-0002 9.10155079713790E-0002 9.09311284962485E-0002 9.08468134165958E-0002 9.07625626929799E-0002 + 9.06783762859786E-0002 9.05942541561891E-0002 9.05101962642272E-0002 9.04262025707280E-0002 9.03422730363456E-0002 + 9.02584076217528E-0002 9.01746062876420E-0002 9.00908689947241E-0002 9.00071957037290E-0002 8.99235863754059E-0002 + 8.98400409705227E-0002 8.97565594498663E-0002 8.96731417742426E-0002 8.95897879044766E-0002 8.95064978014119E-0002 + 8.94232714259113E-0002 8.93401087388565E-0002 8.92570097011480E-0002 8.91739742737054E-0002 8.90910024174669E-0002 + 8.90080940933900E-0002 8.89252492624508E-0002 8.88424678856443E-0002 8.87597499239844E-0002 8.86770953385042E-0002 + 8.85945040902551E-0002 8.85119761403077E-0002 8.84295114497515E-0002 8.83471099796944E-0002 8.82647716912638E-0002 + 8.81824965456054E-0002 8.81002845038839E-0002 8.80181355272829E-0002 8.79360495770045E-0002 8.78540266142701E-0002 + 8.77720666003193E-0002 8.76901694964110E-0002 8.76083352638225E-0002 8.75265638638501E-0002 8.74448552578089E-0002 + 8.73632094070323E-0002 8.72816262728731E-0002 8.72001058167023E-0002 8.71186479999100E-0002 8.70372527839048E-0002 + 8.69559201301141E-0002 8.68746499999840E-0002 8.67934423549792E-0002 8.67122971565834E-0002 8.66312143662987E-0002 + 8.65501939456460E-0002 8.64692358561646E-0002 8.63883400594131E-0002 8.63075065169681E-0002 8.62267351904251E-0002 + 8.61460260413985E-0002 8.60653790315207E-0002 8.59847941224436E-0002 8.59042712758369E-0002 8.58238104533895E-0002 + 8.57434116168086E-0002 8.56630747278199E-0002 8.55827997481681E-0002 8.55025866396162E-0002 8.54224353639459E-0002 + 8.53423458829572E-0002 8.52623181584691E-0002 8.51823521523189E-0002 8.51024478263625E-0002 8.50226051424743E-0002 + 8.49428240625471E-0002 8.48631045484927E-0002 8.47834465622410E-0002 8.47038500657405E-0002 8.46243150209583E-0002 + 8.45448413898799E-0002 8.44654291345094E-0002 8.43860782168693E-0002 8.43067885990006E-0002 8.42275602429627E-0002 + 8.41483931108338E-0002 8.40692871647101E-0002 8.39902423667065E-0002 8.39112586789564E-0002 8.38323360636113E-0002 + 8.37534744828416E-0002 8.36746738988358E-0002 8.35959342738009E-0002 8.35172555699624E-0002 8.34386377495639E-0002 + 8.33600807748678E-0002 8.32815846081548E-0002 8.32031492117236E-0002 8.31247745478916E-0002 8.30464605789948E-0002 + 8.29682072673870E-0002 8.28900145754406E-0002 8.28118824655466E-0002 8.27338109001138E-0002 8.26557998415700E-0002 + 8.25778492523607E-0002 8.24999590949500E-0002 8.24221293318204E-0002 8.23443599254725E-0002 8.22666508384253E-0002 + 8.21890020332160E-0002 8.21114134724003E-0002 8.20338851185518E-0002 8.19564169342629E-0002 8.18790088821437E-0002 + 8.18016609248229E-0002 8.17243730249474E-0002 8.16471451451820E-0002 8.15699772482104E-0002 8.14928692967339E-0002 + 8.14158212534723E-0002 8.13388330811636E-0002 8.12619047425639E-0002 8.11850362004477E-0002 8.11082274176074E-0002 + 8.10314783568538E-0002 8.09547889810157E-0002 8.08781592529404E-0002 8.08015891354930E-0002 8.07250785915569E-0002 + 8.06486275840336E-0002 8.05722360758428E-0002 8.04959040299223E-0002 8.04196314092281E-0002 8.03434181767342E-0002 + 8.02672642954327E-0002 8.01911697283339E-0002 8.01151344384662E-0002 8.00391583888761E-0002 7.99632415426280E-0002 + 7.98873838628046E-0002 7.98115853125065E-0002 7.97358458548526E-0002 7.96601654529795E-0002 7.95845440700422E-0002 + 7.95089816692135E-0002 7.94334782136843E-0002 7.93580336666637E-0002 7.92826479913785E-0002 7.92073211510738E-0002 + 7.91320531090123E-0002 7.90568438284754E-0002 7.89816932727618E-0002 7.89066014051886E-0002 7.88315681890906E-0002 + 7.87565935878208E-0002 7.86816775647501E-0002 7.86068200832673E-0002 7.85320211067791E-0002 7.84572805987103E-0002 + 7.83825985225036E-0002 7.83079748416195E-0002 7.82334095195366E-0002 7.81589025197512E-0002 7.80844538057777E-0002 + 7.80100633411484E-0002 7.79357310894134E-0002 7.78614570141406E-0002 7.77872410789160E-0002 7.77130832473434E-0002 + 7.76389834830444E-0002 7.75649417496585E-0002 7.74909580108430E-0002 7.74170322302731E-0002 7.73431643716419E-0002 + 7.72693543986603E-0002 7.71956022750569E-0002 7.71219079645782E-0002 7.70482714309884E-0002 7.69746926380700E-0002 + 7.69011715496225E-0002 7.68277081294640E-0002 7.67543023414296E-0002 7.66809541493728E-0002 7.66076635171647E-0002 + 7.65344304086939E-0002 7.64612547878671E-0002 7.63881366186085E-0002 7.63150758648603E-0002 7.62420724905822E-0002 + 7.61691264597516E-0002 7.60962377363639E-0002 7.60234062844319E-0002 7.59506320679864E-0002 7.58779150510756E-0002 + 7.58052551977657E-0002 7.57326524721403E-0002 7.56601068383009E-0002 7.55876182603665E-0002 7.55151867024740E-0002 + 7.54428121287776E-0002 7.53704945034495E-0002 7.52982337906794E-0002 7.52260299546746E-0002 7.51538829596601E-0002 + 7.50817927698786E-0002 7.50097593495900E-0002 7.49377826630725E-0002 7.48658626746214E-0002 7.47939993485496E-0002 + 7.47221926491880E-0002 7.46504425408844E-0002 7.45787489880050E-0002 7.45071119549329E-0002 7.44355314060691E-0002 + 7.43640073058320E-0002 7.42925396186578E-0002 7.42211283089998E-0002 7.41497733413293E-0002 7.40784746801348E-0002 + 7.40072322899225E-0002 7.39360461352161E-0002 7.38649161805567E-0002 7.37938423905030E-0002 7.37228247296312E-0002 + 7.36518631625348E-0002 7.35809576538251E-0002 7.35101081681307E-0002 7.34393146700976E-0002 7.33685771243894E-0002 + 7.32978954956870E-0002 7.32272697486890E-0002 7.31566998481111E-0002 7.30861857586867E-0002 7.30157274451664E-0002 + 7.29453248723186E-0002 7.28749780049287E-0002 7.28046868077997E-0002 7.27344512457520E-0002 7.26642712836233E-0002 + 7.25941468862688E-0002 7.25240780185610E-0002 7.24540646453899E-0002 7.23841067316626E-0002 7.23142042423039E-0002 + 7.22443571422556E-0002 7.21745653964772E-0002 7.21048289699451E-0002 7.20351478276535E-0002 7.19655219346138E-0002 + 7.18959512558544E-0002 7.18264357564214E-0002 7.17569754013779E-0002 7.16875701558045E-0002 7.16182199847992E-0002 + 7.15489248534769E-0002 7.14796847269701E-0002 7.14104995704284E-0002 7.13413693490188E-0002 7.12722940279255E-0002 + 7.12032735723499E-0002 7.11343079475106E-0002 7.10653971186436E-0002 7.09965410510021E-0002 7.09277397098564E-0002 + 7.08589930604940E-0002 7.07903010682199E-0002 7.07216636983559E-0002 7.06530809162414E-0002 7.05845526872325E-0002 + 7.05160789767031E-0002 7.04476597500436E-0002 7.03792949726622E-0002 7.03109846099839E-0002 7.02427286274508E-0002 + 7.01745269905224E-0002 7.01063796646751E-0002 7.00382866154028E-0002 6.99702478082160E-0002 6.99022632086429E-0002 + 6.98343327822282E-0002 6.97664564945343E-0002 6.96986343111403E-0002 6.96308661976426E-0002 6.95631521196545E-0002 + 6.94954920428066E-0002 6.94278859327466E-0002 6.93603337551389E-0002 6.92928354756653E-0002 6.92253910600246E-0002 + 6.91580004739326E-0002 6.90906636831222E-0002 6.90233806533431E-0002 6.89561513503625E-0002 6.88889757399641E-0002 + 6.88218537879489E-0002 6.87547854601350E-0002 6.86877707223573E-0002 6.86208095404677E-0002 6.85539018803351E-0002 + 6.84870477078456E-0002 6.84202469889020E-0002 6.83534996894243E-0002 6.82868057753491E-0002 6.82201652126303E-0002 + 6.81535779672388E-0002 6.80870440051620E-0002 6.80205632924048E-0002 6.79541357949886E-0002 6.78877614789518E-0002 + 6.78214403103499E-0002 6.77551722552552E-0002 6.76889572797568E-0002 6.76227953499608E-0002 6.75566864319903E-0002 + 6.74906304919851E-0002 6.74246274961020E-0002 6.73586774105144E-0002 6.72927802014129E-0002 6.72269358350049E-0002 + 6.71611442775146E-0002 6.70954054951828E-0002 6.70297194542675E-0002 6.69640861210433E-0002 6.68985054618018E-0002 + 6.68329774428513E-0002 6.67675020305169E-0002 6.67020791911405E-0002 6.66367088910810E-0002 6.65713910967137E-0002 + 6.65061257744311E-0002 6.64409128906421E-0002 6.63757524117726E-0002 6.63106443042652E-0002 6.62455885345794E-0002 + 6.61805850691913E-0002 6.61156338745936E-0002 6.60507349172959E-0002 6.59858881638248E-0002 6.59210935807231E-0002 + 6.58563511345506E-0002 6.57916607918839E-0002 6.57270225193161E-0002 6.56624362834571E-0002 6.55979020509335E-0002 + 6.55334197883885E-0002 6.54689894624820E-0002 6.54046110398908E-0002 6.53402844873081E-0002 6.52760097714437E-0002 + 6.52117868590243E-0002 6.51476157167930E-0002 6.50834963115099E-0002 6.50194286099514E-0002 6.49554125789105E-0002 + 6.48914481851970E-0002 6.48275353956374E-0002 6.47636741770745E-0002 6.46998644963680E-0002 6.46361063203939E-0002 + 6.45723996160449E-0002 6.45087443502306E-0002 6.44451404898767E-0002 6.43815880019256E-0002 6.43180868533365E-0002 + 6.42546370110848E-0002 6.41912384421627E-0002 6.41278911135790E-0002 6.40645949923586E-0002 6.40013500455434E-0002 + 6.39381562401917E-0002 6.38750135433782E-0002 6.38119219221941E-0002 6.37488813437472E-0002 6.36858917751618E-0002 + 6.36229531835786E-0002 6.35600655361550E-0002 6.34972288000644E-0002 6.34344429424973E-0002 6.33717079306601E-0002 + 6.33090237317761E-0002 6.32463903130847E-0002 6.31838076418419E-0002 6.31212756853202E-0002 6.30587944108084E-0002 + 6.29963637856119E-0002 6.29339837770522E-0002 6.28716543524676E-0002 6.28093754792124E-0002 6.27471471246577E-0002 + 6.26849692561907E-0002 6.26228418412152E-0002 6.25607648471511E-0002 6.24987382414350E-0002 6.24367619915196E-0002 + 6.23748360648741E-0002 6.23129604289840E-0002 6.22511350513511E-0002 6.21893598994938E-0002 6.21276349409464E-0002 + 6.20659601432599E-0002 6.20043354740015E-0002 6.19427609007545E-0002 6.18812363911190E-0002 6.18197619127109E-0002 + 6.17583374331626E-0002 6.16969629201229E-0002 6.16356383412566E-0002 6.15743636642451E-0002 6.15131388567859E-0002 + 6.14519638865927E-0002 6.13908387213955E-0002 6.13297633289407E-0002 6.12687376769907E-0002 6.12077617333244E-0002 + 6.11468354657368E-0002 6.10859588420388E-0002 6.10251318300582E-0002 6.09643543976385E-0002 6.09036265126396E-0002 + 6.08429481429375E-0002 6.07823192564243E-0002 6.07217398210087E-0002 6.06612098046151E-0002 6.06007291751844E-0002 + 6.05402979006734E-0002 6.04799159490554E-0002 6.04195832883194E-0002 6.03592998864711E-0002 6.02990657115318E-0002 + 6.02388807315393E-0002 6.01787449145474E-0002 6.01186582286260E-0002 6.00586206418611E-0002 5.99986321223550E-0002 + 5.99386926382257E-0002 5.98788021576078E-0002 5.98189606486516E-0002 5.97591680795238E-0002 5.96994244184067E-0002 + 5.96397296334993E-0002 5.95800836930161E-0002 5.95204865651880E-0002 5.94609382182618E-0002 5.94014386205004E-0002 + 5.93419877401828E-0002 5.92825855456039E-0002 5.92232320050747E-0002 5.91639270869222E-0002 5.91046707594894E-0002 + 5.90454629911354E-0002 5.89863037502352E-0002 5.89271930051798E-0002 5.88681307243762E-0002 5.88091168762475E-0002 + 5.87501514292326E-0002 5.86912343517864E-0002 5.86323656123799E-0002 5.85735451794998E-0002 5.85147730216491E-0002 + 5.84560491073464E-0002 5.83973734051266E-0002 5.83387458835401E-0002 5.82801665111535E-0002 5.82216352565493E-0002 + 5.81631520883259E-0002 5.81047169750976E-0002 5.80463298854945E-0002 5.79879907881628E-0002 5.79296996517644E-0002 + 5.78714564449771E-0002 5.78132611364947E-0002 5.77551136950267E-0002 5.76970140892987E-0002 5.76389622880518E-0002 + 5.75809582600434E-0002 5.75230019740463E-0002 5.74650933988494E-0002 5.74072325032575E-0002 5.73494192560909E-0002 + 5.72916536261860E-0002 5.72339355823948E-0002 5.71762650935854E-0002 5.71186421286415E-0002 5.70610666564626E-0002 + 5.70035386459639E-0002 5.69460580660766E-0002 5.68886248857476E-0002 5.68312390739394E-0002 5.67739005996305E-0002 + 5.67166094318150E-0002 5.66593655395027E-0002 5.66021688917194E-0002 5.65450194575064E-0002 5.64879172059208E-0002 + 5.64308621060354E-0002 5.63738541269389E-0002 5.63168932377354E-0002 5.62599794075449E-0002 5.62031126055031E-0002 + 5.61462928007613E-0002 5.60895199624866E-0002 5.60327940598617E-0002 5.59761150620849E-0002 5.59194829383705E-0002 + 5.58628976579479E-0002 5.58063591900628E-0002 5.57498675039761E-0002 5.56934225689645E-0002 5.56370243543202E-0002 + 5.55806728293513E-0002 5.55243679633813E-0002 5.54681097257494E-0002 5.54118980858104E-0002 5.53557330129345E-0002 + 5.52996144765081E-0002 5.52435424459325E-0002 5.51875168906250E-0002 5.51315377800183E-0002 5.50756050835608E-0002 + 5.50197187707164E-0002 5.49638788109645E-0002 5.49080851738003E-0002 5.48523378287341E-0002 5.47966367452923E-0002 + 5.47409818930164E-0002 5.46853732414636E-0002 5.46298107602067E-0002 5.45742944188338E-0002 5.45188241869489E-0002 + 5.44634000341709E-0002 5.44080219301349E-0002 5.43526898444909E-0002 5.42974037469047E-0002 5.42421636070576E-0002 + 5.41869693946462E-0002 5.41318210793828E-0002 5.40767186309948E-0002 5.40216620192255E-0002 5.39666512138334E-0002 + 5.39116861845925E-0002 5.38567669012921E-0002 5.38018933337371E-0002 5.37470654517479E-0002 5.36922832251601E-0002 + 5.36375466238248E-0002 5.35828556176086E-0002 5.35282101763933E-0002 5.34736102700764E-0002 5.34190558685705E-0002 + 5.33645469418038E-0002 5.33100834597196E-0002 5.32556653922769E-0002 5.32012927094499E-0002 5.31469653812281E-0002 + 5.30926833776165E-0002 5.30384466686352E-0002 5.29842552243201E-0002 5.29301090147219E-0002 5.28760080099071E-0002 + 5.28219521799571E-0002 5.27679414949688E-0002 5.27139759250546E-0002 5.26600554403420E-0002 5.26061800109737E-0002 + 5.25523496071079E-0002 5.24985641989179E-0002 5.24448237565926E-0002 5.23911282503358E-0002 5.23374776503669E-0002 + 5.22838719269201E-0002 5.22303110502454E-0002 5.21767949906076E-0002 5.21233237182872E-0002 5.20698972035794E-0002 + 5.20165154167950E-0002 5.19631783282600E-0002 5.19098859083155E-0002 5.18566381273178E-0002 5.18034349556386E-0002 + 5.17502763636645E-0002 5.16971623217977E-0002 5.16440928004551E-0002 5.15910677700693E-0002 5.15380872010875E-0002 + 5.14851510639727E-0002 5.14322593292025E-0002 5.13794119672700E-0002 5.13266089486835E-0002 5.12738502439660E-0002 + 5.12211358236562E-0002 5.11684656583075E-0002 5.11158397184888E-0002 5.10632579747838E-0002 5.10107203977914E-0002 + 5.09582269581257E-0002 5.09057776264160E-0002 5.08533723733063E-0002 5.08010111694562E-0002 5.07486939855399E-0002 + 5.06964207922471E-0002 5.06441915602823E-0002 5.05920062603652E-0002 5.05398648632304E-0002 5.04877673396278E-0002 + 5.04357136603223E-0002 5.03837037960935E-0002 5.03317377177365E-0002 5.02798153960611E-0002 5.02279368018924E-0002 + 5.01761019060703E-0002 5.01243106794498E-0002 5.00725630929009E-0002 5.00208591173087E-0002 4.99691987235730E-0002 + 4.99175818826090E-0002 4.98660085653465E-0002 4.98144787427305E-0002 4.97629923857210E-0002 4.97115494652927E-0002 + 4.96601499524357E-0002 4.96087938181546E-0002 4.95574810334691E-0002 4.95062115694141E-0002 4.94549853970391E-0002 + 4.94038024874086E-0002 4.93526628116022E-0002 4.93015663407142E-0002 4.92505130458540E-0002 4.91995028981457E-0002 + 4.91485358687285E-0002 4.90976119287563E-0002 4.90467310493980E-0002 4.89958932018375E-0002 4.89450983572734E-0002 + 4.88943464869192E-0002 4.88436375620032E-0002 4.87929715537688E-0002 4.87423484334739E-0002 4.86917681723917E-0002 + 4.86412307418097E-0002 4.85907361130307E-0002 4.85402842573720E-0002 4.84898751461661E-0002 4.84395087507598E-0002 + 4.83891850425151E-0002 4.83389039928088E-0002 4.82886655730323E-0002 4.82384697545919E-0002 4.81883165089086E-0002 + 4.81382058074183E-0002 4.80881376215717E-0002 4.80381119228342E-0002 4.79881286826858E-0002 4.79381878726215E-0002 + 4.78882894641511E-0002 4.78384334287988E-0002 4.77886197381039E-0002 4.77388483636203E-0002 4.76891192769164E-0002 + 4.76394324495758E-0002 4.75897878531963E-0002 4.75401854593909E-0002 4.74906252397870E-0002 4.74411071660266E-0002 + 4.73916312097667E-0002 4.73421973426788E-0002 4.72928055364492E-0002 4.72434557627786E-0002 4.71941479933828E-0002 + 4.71448821999918E-0002 4.70956583543507E-0002 4.70464764282189E-0002 4.69973363933705E-0002 4.69482382215944E-0002 + 4.68991818846942E-0002 4.68501673544877E-0002 4.68011946028078E-0002 4.67522636015017E-0002 4.67033743224314E-0002 + 4.66545267374734E-0002 4.66057208185188E-0002 4.65569565374732E-0002 4.65082338662572E-0002 4.64595527768054E-0002 + 4.64109132410674E-0002 4.63623152310072E-0002 4.63137587186033E-0002 4.62652436758490E-0002 4.62167700747519E-0002 + 4.61683378873343E-0002 4.61199470856328E-0002 4.60715976416989E-0002 4.60232895275984E-0002 4.59750227154116E-0002 + 4.59267971772334E-0002 4.58786128851732E-0002 4.58304698113549E-0002 4.57823679279169E-0002 4.57343072070120E-0002 + 4.56862876208077E-0002 4.56383091414857E-0002 4.55903717412424E-0002 4.55424753922887E-0002 4.54946200668497E-0002 + 4.54468057371651E-0002 4.53990323754891E-0002 4.53512999540904E-0002 4.53036084452520E-0002 4.52559578212714E-0002 + 4.52083480544603E-0002 4.51607791171454E-0002 4.51132509816672E-0002 4.50657636203809E-0002 4.50183170056562E-0002 + 4.49709111098769E-0002 4.49235459054414E-0002 4.48762213647625E-0002 4.48289374602674E-0002 4.47816941643974E-0002 + 4.47344914496085E-0002 4.46873292883710E-0002 4.46402076531694E-0002 4.45931265165027E-0002 4.45460858508841E-0002 + 4.44990856288414E-0002 4.44521258229166E-0002 4.44052064056658E-0002 4.43583273496598E-0002 4.43114886274834E-0002 + 4.42646902117360E-0002 4.42179320750312E-0002 4.41712141899968E-0002 4.41245365292749E-0002 4.40778990655220E-0002 + 4.40313017714089E-0002 4.39847446196205E-0002 4.39382275828563E-0002 4.38917506338295E-0002 4.38453137452683E-0002 + 4.37989168899145E-0002 4.37525600405246E-0002 4.37062431698690E-0002 4.36599662507326E-0002 4.36137292559144E-0002 + 4.35675321582277E-0002 4.35213749304999E-0002 4.34752575455728E-0002 4.34291799763021E-0002 4.33831421955581E-0002 + 4.33371441762251E-0002 4.32911858912015E-0002 4.32452673133999E-0002 4.31993884157474E-0002 4.31535491711849E-0002 + 4.31077495526676E-0002 4.30619895331648E-0002 4.30162690856602E-0002 4.29705881831513E-0002 4.29249467986500E-0002 + 4.28793449051823E-0002 4.28337824757882E-0002 4.27882594835219E-0002 4.27427759014519E-0002 4.26973317026606E-0002 + 4.26519268602445E-0002 4.26065613473143E-0002 4.25612351369948E-0002 4.25159482024250E-0002 4.24707005167577E-0002 + 4.24254920531600E-0002 4.23803227848129E-0002 4.23351926849119E-0002 4.22901017266660E-0002 4.22450498832986E-0002 + 4.22000371280471E-0002 4.21550634341628E-0002 4.21101287749114E-0002 4.20652331235722E-0002 4.20203764534389E-0002 + 4.19755587378189E-0002 4.19307799500339E-0002 4.18860400634195E-0002 4.18413390513252E-0002 4.17966768871147E-0002 + 4.17520535441656E-0002 4.17074689958695E-0002 4.16629232156320E-0002 4.16184161768727E-0002 4.15739478530250E-0002 + 4.15295182175366E-0002 4.14851272438688E-0002 4.14407749054972E-0002 4.13964611759111E-0002 4.13521860286138E-0002 + 4.13079494371226E-0002 4.12637513749688E-0002 4.12195918156974E-0002 4.11754707328676E-0002 4.11313881000523E-0002 + 4.10873438908385E-0002 4.10433380788268E-0002 4.09993706376321E-0002 4.09554415408829E-0002 4.09115507622217E-0002 + 4.08676982753050E-0002 4.08238840538029E-0002 4.07801080713996E-0002 4.07363703017930E-0002 4.06926707186952E-0002 + 4.06490092958316E-0002 4.06053860069421E-0002 4.05618008257798E-0002 4.05182537261121E-0002 4.04747446817202E-0002 + 4.04312736663988E-0002 4.03878406539567E-0002 4.03444456182166E-0002 4.03010885330147E-0002 4.02577693722012E-0002 + 4.02144881096401E-0002 4.01712447192093E-0002 4.01280391748001E-0002 4.00848714503180E-0002 4.00417415196821E-0002 + 3.99986493568253E-0002 3.99555949356942E-0002 3.99125782302493E-0002 3.98695992144647E-0002 3.98266578623284E-0002 + 3.97837541478421E-0002 3.97408880450211E-0002 3.96980595278945E-0002 3.96552685705054E-0002 3.96125151469102E-0002 + 3.95697992311792E-0002 3.95271207973965E-0002 3.94844798196599E-0002 3.94418762720807E-0002 3.93993101287841E-0002 + 3.93567813639088E-0002 3.93142899516074E-0002 3.92718358660460E-0002 3.92294190814045E-0002 3.91870395718764E-0002 + 3.91446973116689E-0002 3.91023922750027E-0002 3.90601244361124E-0002 3.90178937692461E-0002 3.89757002486655E-0002 + 3.89335438486460E-0002 3.88914245434767E-0002 3.88493423074601E-0002 3.88072971149127E-0002 3.87652889401641E-0002 + 3.87233177575579E-0002 3.86813835414512E-0002 3.86394862662147E-0002 3.85976259062325E-0002 3.85558024359026E-0002 + 3.85140158296363E-0002 3.84722660618587E-0002 3.84305531070083E-0002 3.83888769395372E-0002 3.83472375339111E-0002 + 3.83056348646093E-0002 3.82640689061245E-0002 3.82225396329630E-0002 3.81810470196446E-0002 3.81395910407027E-0002 + 3.80981716706843E-0002 3.80567888841498E-0002 3.80154426556730E-0002 3.79741329598414E-0002 3.79328597712558E-0002 + 3.78916230645309E-0002 3.78504228142944E-0002 3.78092589951878E-0002 3.77681315818658E-0002 3.77270405489970E-0002 + 3.76859858712631E-0002 3.76449675233594E-0002 3.76039854799946E-0002 3.75630397158909E-0002 3.75221302057840E-0002 + 3.74812569244229E-0002 3.74404198465702E-0002 3.73996189470017E-0002 3.73588542005068E-0002 3.73181255818884E-0002 + 3.72774330659626E-0002 3.72367766275590E-0002 3.71961562415205E-0002 3.71555718827038E-0002 3.71150235259784E-0002 + 3.70745111462276E-0002 3.70340347183480E-0002 3.69935942172493E-0002 3.69531896178551E-0002 3.69128208951019E-0002 + 3.68724880239398E-0002 3.68321909793321E-0002 3.67919297362555E-0002 3.67517042697002E-0002 3.67115145546695E-0002 + 3.66713605661801E-0002 3.66312422792621E-0002 3.65911596689589E-0002 3.65511127103271E-0002 3.65111013784369E-0002 + 3.64711256483714E-0002 3.64311854952272E-0002 3.63912808941144E-0002 3.63514118201560E-0002 3.63115782484885E-0002 + 3.62717801542617E-0002 3.62320175126386E-0002 3.61922902987954E-0002 3.61525984879217E-0002 3.61129420552203E-0002 + 3.60733209759072E-0002 3.60337352252117E-0002 3.59941847783764E-0002 3.59546696106569E-0002 3.59151896973224E-0002 + 3.58757450136549E-0002 3.58363355349500E-0002 3.57969612365162E-0002 3.57576220936755E-0002 3.57183180817628E-0002 + 3.56790491761263E-0002 3.56398153521276E-0002 3.56006165851413E-0002 3.55614528505551E-0002 3.55223241237699E-0002 + 3.54832303802000E-0002 3.54441715952726E-0002 3.54051477444283E-0002 3.53661588031205E-0002 3.53272047468161E-0002 + 3.52882855509949E-0002 3.52494011911501E-0002 3.52105516427876E-0002 3.51717368814270E-0002 3.51329568826004E-0002 + 3.50942116218536E-0002 3.50555010747451E-0002 3.50168252168466E-0002 3.49781840237430E-0002 3.49395774710322E-0002 + 3.49010055343253E-0002 3.48624681892463E-0002 3.48239654114324E-0002 3.47854971765339E-0002 3.47470634602140E-0002 + 3.47086642381492E-0002 3.46702994860289E-0002 3.46319691795555E-0002 3.45936732944446E-0002 3.45554118064248E-0002 + 3.45171846912377E-0002 3.44789919246378E-0002 3.44408334823929E-0002 3.44027093402835E-0002 3.43646194741035E-0002 + 3.43265638596594E-0002 3.42885424727711E-0002 3.42505552892710E-0002 3.42126022850051E-0002 3.41746834358318E-0002 + 3.41367987176230E-0002 3.40989481062631E-0002 3.40611315776498E-0002 3.40233491076936E-0002 3.39856006723182E-0002 + 3.39478862474598E-0002 3.39102058090681E-0002 3.38725593331052E-0002 3.38349467955466E-0002 3.37973681723805E-0002 + 3.37598234396080E-0002 3.37223125732431E-0002 3.36848355493131E-0002 3.36473923438577E-0002 3.36099829329298E-0002 + 3.35726072925950E-0002 3.35352653989321E-0002 3.34979572280325E-0002 3.34606827560006E-0002 3.34234419589537E-0002 + 3.33862348130219E-0002 3.33490612943483E-0002 3.33119213790888E-0002 3.32748150434120E-0002 3.32377422634997E-0002 + 3.32007030155461E-0002 3.31636972757587E-0002 3.31267250203575E-0002 3.30897862255756E-0002 3.30528808676586E-0002 + 3.30160089228652E-0002 3.29791703674669E-0002 3.29423651777478E-0002 3.29055933300049E-0002 3.28688548005483E-0002 + 3.28321495657003E-0002 3.27954776017966E-0002 3.27588388851853E-0002 3.27222333922274E-0002 3.26856610992967E-0002 + 3.26491219827797E-0002 3.26126160190757E-0002 3.25761431845967E-0002 3.25397034557677E-0002 3.25032968090260E-0002 + 3.24669232208221E-0002 3.24305826676190E-0002 3.23942751258924E-0002 3.23580005721309E-0002 3.23217589828356E-0002 + 3.22855503345206E-0002 3.22493746037125E-0002 3.22132317669505E-0002 3.21771218007869E-0002 3.21410446817863E-0002 + 3.21050003865261E-0002 3.20689888915966E-0002 3.20330101736005E-0002 3.19970642091533E-0002 3.19611509748831E-0002 + 3.19252704474309E-0002 3.18894226034500E-0002 3.18536074196065E-0002 3.18178248725794E-0002 3.17820749390599E-0002 + 3.17463575957522E-0002 3.17106728193730E-0002 3.16750205866515E-0002 3.16394008743297E-0002 3.16038136591623E-0002 + 3.15682589179163E-0002 3.15327366273716E-0002 3.14972467643205E-0002 3.14617893055680E-0002 3.14263642279317E-0002 + 3.13909715082418E-0002 3.13556111233410E-0002 3.13202830500846E-0002 3.12849872653405E-0002 3.12497237459891E-0002 + 3.12144924689236E-0002 3.11792934110493E-0002 3.11441265492846E-0002 3.11089918605599E-0002 3.10738893218186E-0002 + 3.10388189100164E-0002 3.10037806021215E-0002 3.09687743751148E-0002 3.09338002059895E-0002 3.08988580717514E-0002 + 3.08639479494190E-0002 3.08290698160230E-0002 3.07942236486068E-0002 3.07594094242262E-0002 3.07246271199496E-0002 + 3.06898767128576E-0002 3.06551581800437E-0002 3.06204714986135E-0002 3.05858166456853E-0002 3.05511935983897E-0002 + 3.05166023338699E-0002 3.04820428292815E-0002 3.04475150617925E-0002 3.04130190085834E-0002 3.03785546468472E-0002 + 3.03441219537890E-0002 3.03097209066268E-0002 3.02753514825907E-0002 3.02410136589233E-0002 3.02067074128796E-0002 + 3.01724327217271E-0002 3.01381895627456E-0002 3.01039779132273E-0002 3.00697977504769E-0002 3.00356490518112E-0002 + 3.00015317945598E-0002 2.99674459560643E-0002 2.99333915136788E-0002 2.98993684447699E-0002 2.98653767267164E-0002 + 2.98314163369095E-0002 2.97974872527528E-0002 2.97635894516621E-0002 2.97297229110656E-0002 2.96958876084040E-0002 + 2.96620835211302E-0002 2.96283106267092E-0002 2.95945689026188E-0002 2.95608583263487E-0002 2.95271788754011E-0002 + 2.94935305272905E-0002 2.94599132595436E-0002 2.94263270496994E-0002 2.93927718753094E-0002 2.93592477139371E-0002 + 2.93257545431585E-0002 2.92922923405617E-0002 2.92588610837471E-0002 2.92254607503276E-0002 2.91920913179280E-0002 + 2.91587527641855E-0002 2.91254450667497E-0002 2.90921682032821E-0002 2.90589221514569E-0002 2.90257068889601E-0002 + 2.89925223934901E-0002 2.89593686427576E-0002 2.89262456144854E-0002 2.88931532864086E-0002 2.88600916362744E-0002 + 2.88270606418424E-0002 2.87940602808840E-0002 2.87610905311832E-0002 2.87281513705361E-0002 2.86952427767509E-0002 + 2.86623647276479E-0002 2.86295172010597E-0002 2.85967001748311E-0002 2.85639136268189E-0002 2.85311575348922E-0002 + 2.84984318769322E-0002 2.84657366308322E-0002 2.84330717744978E-0002 2.84004372858465E-0002 2.83678331428082E-0002 + 2.83352593233246E-0002 2.83027158053499E-0002 2.82702025668500E-0002 2.82377195858034E-0002 2.82052668402002E-0002 + 2.81728443080429E-0002 2.81404519673461E-0002 2.81080897961363E-0002 2.80757577724524E-0002 2.80434558743450E-0002 + 2.80111840798771E-0002 2.79789423671235E-0002 2.79467307141713E-0002 2.79145490991196E-0002 2.78823975000794E-0002 + 2.78502758951740E-0002 2.78181842625385E-0002 2.77861225803203E-0002 2.77540908266785E-0002 2.77220889797845E-0002 + 2.76901170178217E-0002 2.76581749189854E-0002 2.76262626614830E-0002 2.75943802235340E-0002 2.75625275833696E-0002 + 2.75307047192334E-0002 2.74989116093806E-0002 2.74671482320788E-0002 2.74354145656071E-0002 2.74037105882572E-0002 + 2.73720362783321E-0002 2.73403916141473E-0002 2.73087765740301E-0002 2.72771911363195E-0002 2.72456352793668E-0002 + 2.72141089815352E-0002 2.71826122211998E-0002 2.71511449767474E-0002 2.71197072265772E-0002 2.70882989490999E-0002 + 2.70569201227385E-0002 2.70255707259275E-0002 2.69942507371137E-0002 2.69629601347557E-0002 2.69316988973239E-0002 + 2.69004670033006E-0002 2.68692644311802E-0002 2.68380911594687E-0002 2.68069471666842E-0002 2.67758324313567E-0002 + 2.67447469320280E-0002 2.67136906472516E-0002 2.66826635555932E-0002 2.66516656356301E-0002 2.66206968659516E-0002 + 2.65897572251588E-0002 2.65588466918646E-0002 2.65279652446939E-0002 2.64971128622833E-0002 2.64662895232811E-0002 + 2.64354952063478E-0002 2.64047298901554E-0002 2.63739935533879E-0002 2.63432861747410E-0002 2.63126077329222E-0002 + 2.62819582066509E-0002 2.62513375746582E-0002 2.62207458156871E-0002 2.61901829084923E-0002 2.61596488318403E-0002 + 2.61291435645094E-0002 2.60986670852896E-0002 2.60682193729828E-0002 2.60378004064026E-0002 2.60074101643743E-0002 + 2.59770486257350E-0002 2.59467157693335E-0002 2.59164115740305E-0002 2.58861360186983E-0002 2.58558890822209E-0002 + 2.58256707434941E-0002 2.57954809814255E-0002 2.57653197749343E-0002 2.57351871029514E-0002 2.57050829444194E-0002 + 2.56750072782928E-0002 2.56449600835376E-0002 2.56149413391316E-0002 2.55849510240642E-0002 2.55549891173364E-0002 + 2.55250555979613E-0002 2.54951504449631E-0002 2.54652736373781E-0002 2.54354251542541E-0002 2.54056049746505E-0002 + 2.53758130776385E-0002 2.53460494423008E-0002 2.53163140477320E-0002 2.52866068730380E-0002 2.52569278973366E-0002 + 2.52272770997571E-0002 2.51976544594405E-0002 2.51680599555393E-0002 2.51384935672177E-0002 2.51089552736516E-0002 + 2.50794450540283E-0002 2.50499628875469E-0002 2.50205087534180E-0002 2.49910826308638E-0002 2.49616844991181E-0002 + 2.49323143374262E-0002 2.49029721250452E-0002 2.48736578412434E-0002 2.48443714653012E-0002 2.48151129765100E-0002 + 2.47858823541731E-0002 2.47566795776052E-0002 2.47275046261327E-0002 2.46983574790935E-0002 2.46692381158368E-0002 + 2.46401465157238E-0002 2.46110826581267E-0002 2.45820465224297E-0002 2.45530380880281E-0002 2.45240573343291E-0002 + 2.44951042407511E-0002 2.44661787867242E-0002 2.44372809516899E-0002 2.44084107151012E-0002 2.43795680564227E-0002 + 2.43507529551303E-0002 2.43219653907115E-0002 2.42932053426653E-0002 2.42644727905021E-0002 2.42357677137439E-0002 + 2.42070900919239E-0002 2.41784399045870E-0002 2.41498171312894E-0002 2.41212217515989E-0002 2.40926537450946E-0002 + 2.40641130913672E-0002 2.40355997700185E-0002 2.40071137606621E-0002 2.39786550429229E-0002 2.39502235964371E-0002 + 2.39218194008525E-0002 2.38934424358281E-0002 2.38650926810346E-0002 2.38367701161537E-0002 2.38084747208789E-0002 + 2.37802064749148E-0002 2.37519653579775E-0002 2.37237513497945E-0002 2.36955644301046E-0002 2.36674045786580E-0002 + 2.36392717752163E-0002 2.36111659995525E-0002 2.35830872314508E-0002 2.35550354507069E-0002 2.35270106371277E-0002 + 2.34990127705317E-0002 2.34710418307484E-0002 2.34430977976189E-0002 2.34151806509956E-0002 2.33872903707419E-0002 + 2.33594269367330E-0002 2.33315903288552E-0002 2.33037805270059E-0002 2.32759975110942E-0002 2.32482412610401E-0002 + 2.32205117567752E-0002 2.31928089782423E-0002 2.31651329053954E-0002 2.31374835181998E-0002 2.31098607966322E-0002 + 2.30822647206805E-0002 2.30546952703439E-0002 2.30271524256326E-0002 2.29996361665685E-0002 2.29721464731844E-0002 + 2.29446833255245E-0002 2.29172467036441E-0002 2.28898365876101E-0002 2.28624529575001E-0002 2.28350957934034E-0002 + 2.28077650754202E-0002 2.27804607836622E-0002 2.27531828982520E-0002 2.27259313993236E-0002 2.26987062670223E-0002 + 2.26715074815044E-0002 2.26443350229374E-0002 2.26171888715001E-0002 2.25900690073825E-0002 2.25629754107857E-0002 + 2.25359080619220E-0002 2.25088669410148E-0002 2.24818520282987E-0002 2.24548633040197E-0002 2.24279007484346E-0002 + 2.24009643418116E-0002 2.23740540644299E-0002 2.23471698965798E-0002 2.23203118185630E-0002 2.22934798106921E-0002 + 2.22666738532910E-0002 2.22398939266944E-0002 2.22131400112485E-0002 2.21864120873104E-0002 2.21597101352484E-0002 + 2.21330341354419E-0002 2.21063840682813E-0002 2.20797599141682E-0002 2.20531616535152E-0002 2.20265892667462E-0002 + 2.20000427342958E-0002 2.19735220366102E-0002 2.19470271541461E-0002 2.19205580673716E-0002 2.18941147567660E-0002 + 2.18676972028192E-0002 2.18413053860326E-0002 2.18149392869184E-0002 2.17885988860000E-0002 2.17622841638116E-0002 + 2.17359951008987E-0002 2.17097316778177E-0002 2.16834938751360E-0002 2.16572816734321E-0002 2.16310950532955E-0002 + 2.16049339953266E-0002 2.15787984801371E-0002 2.15526884883493E-0002 2.15266040005968E-0002 2.15005449975240E-0002 + 2.14745114597865E-0002 2.14485033680508E-0002 2.14225207029942E-0002 2.13965634453052E-0002 2.13706315756831E-0002 + 2.13447250748384E-0002 2.13188439234923E-0002 2.12929881023772E-0002 2.12671575922362E-0002 2.12413523738236E-0002 + 2.12155724279043E-0002 2.11898177352546E-0002 2.11640882766613E-0002 2.11383840329224E-0002 2.11127049848467E-0002 + 2.10870511132539E-0002 2.10614223989748E-0002 2.10358188228510E-0002 2.10102403657347E-0002 2.09846870084896E-0002 + 2.09591587319899E-0002 2.09336555171207E-0002 2.09081773447780E-0002 2.08827241958689E-0002 2.08572960513112E-0002 + 2.08318928920334E-0002 2.08065146989753E-0002 2.07811614530872E-0002 2.07558331353304E-0002 2.07305297266770E-0002 + 2.07052512081101E-0002 2.06799975606234E-0002 2.06547687652216E-0002 2.06295648029202E-0002 2.06043856547456E-0002 + 2.05792313017350E-0002 2.05541017249362E-0002 2.05289969054082E-0002 2.05039168242205E-0002 2.04788614624536E-0002 + 2.04538308011987E-0002 2.04288248215578E-0002 2.04038435046438E-0002 2.03788868315803E-0002 2.03539547835016E-0002 + 2.03290473415530E-0002 2.03041644868904E-0002 2.02793062006806E-0002 2.02544724641010E-0002 2.02296632583398E-0002 + 2.02048785645962E-0002 2.01801183640799E-0002 2.01553826380114E-0002 2.01306713676220E-0002 2.01059845341536E-0002 + 2.00813221188591E-0002 2.00566841030019E-0002 2.00320704678561E-0002 2.00074811947068E-0002 1.99829162648495E-0002 + 1.99583756595905E-0002 1.99338593602471E-0002 1.99093673481468E-0002 1.98848996046282E-0002 1.98604561110404E-0002 + 1.98360368487433E-0002 1.98116417991074E-0002 1.97872709435139E-0002 1.97629242633546E-0002 1.97386017400322E-0002 + 1.97143033549599E-0002 1.96900290895615E-0002 1.96657789252716E-0002 1.96415528435354E-0002 1.96173508258087E-0002 + 1.95931728535580E-0002 1.95690189082605E-0002 1.95448889714040E-0002 1.95207830244867E-0002 1.94967010490178E-0002 + 1.94726430265169E-0002 1.94486089385142E-0002 1.94245987665507E-0002 1.94006124921778E-0002 1.93766500969575E-0002 + 1.93527115624627E-0002 1.93287968702765E-0002 1.93049060019929E-0002 1.92810389392162E-0002 1.92571956635616E-0002 + 1.92333761566546E-0002 1.92095804001315E-0002 1.91858083756389E-0002 1.91620600648343E-0002 1.91383354493854E-0002 + 1.91146345109707E-0002 1.90909572312792E-0002 1.90673035920104E-0002 1.90436735748745E-0002 1.90200671615919E-0002 + 1.89964843338938E-0002 1.89729250735218E-0002 1.89493893622283E-0002 1.89258771817758E-0002 1.89023885139375E-0002 + 1.88789233404973E-0002 1.88554816432493E-0002 1.88320634039983E-0002 1.88086686045594E-0002 1.87852972267585E-0002 + 1.87619492524316E-0002 1.87386246634255E-0002 1.87153234415974E-0002 1.86920455688149E-0002 1.86687910269561E-0002 + 1.86455597979095E-0002 1.86223518635742E-0002 1.85991672058597E-0002 1.85760058066859E-0002 1.85528676479833E-0002 + 1.85297527116925E-0002 1.85066609797650E-0002 1.84835924341623E-0002 1.84605470568567E-0002 1.84375248298306E-0002 + 1.84145257350771E-0002 1.83915497545995E-0002 1.83685968704116E-0002 1.83456670645376E-0002 1.83227603190121E-0002 + 1.82998766158802E-0002 1.82770159371972E-0002 1.82541782650289E-0002 1.82313635814514E-0002 1.82085718685514E-0002 + 1.81858031084258E-0002 1.81630572831817E-0002 1.81403343749371E-0002 1.81176343658197E-0002 1.80949572379680E-0002 + 1.80723029735308E-0002 1.80496715546671E-0002 1.80270629635464E-0002 1.80044771823484E-0002 1.79819141932632E-0002 + 1.79593739784913E-0002 1.79368565202434E-0002 1.79143618007406E-0002 1.78918898022144E-0002 1.78694405069063E-0002 + 1.78470138970686E-0002 1.78246099549634E-0002 1.78022286628634E-0002 1.77798700030515E-0002 1.77575339578211E-0002 + 1.77352205094754E-0002 1.77129296403284E-0002 1.76906613327042E-0002 1.76684155689369E-0002 1.76461923313713E-0002 + 1.76239916023623E-0002 1.76018133642749E-0002 1.75796575994845E-0002 1.75575242903768E-0002 1.75354134193478E-0002 + 1.75133249688034E-0002 1.74912589211601E-0002 1.74692152588445E-0002 1.74471939642934E-0002 1.74251950199539E-0002 + 1.74032184082833E-0002 1.73812641117490E-0002 1.73593321128288E-0002 1.73374223940106E-0002 1.73155349377925E-0002 + 1.72936697266828E-0002 1.72718267432001E-0002 1.72500059698730E-0002 1.72282073892405E-0002 1.72064309838516E-0002 + 1.71846767362656E-0002 1.71629446290519E-0002 1.71412346447901E-0002 1.71195467660699E-0002 1.70978809754913E-0002 + 1.70762372556643E-0002 1.70546155892092E-0002 1.70330159587563E-0002 1.70114383469462E-0002 1.69898827364295E-0002 + 1.69683491098669E-0002 1.69468374499295E-0002 1.69253477392982E-0002 1.69038799606642E-0002 1.68824340967287E-0002 + 1.68610101302033E-0002 1.68396080438093E-0002 1.68182278202783E-0002 1.67968694423521E-0002 1.67755328927825E-0002 + 1.67542181543313E-0002 1.67329252097705E-0002 1.67116540418822E-0002 1.66904046334585E-0002 1.66691769673015E-0002 + 1.66479710262236E-0002 1.66267867930471E-0002 1.66056242506044E-0002 1.65844833817380E-0002 1.65633641693002E-0002 + 1.65422665961538E-0002 1.65211906451712E-0002 1.65001362992352E-0002 1.64791035412383E-0002 1.64580923540832E-0002 + 1.64371027206828E-0002 1.64161346239597E-0002 1.63951880468467E-0002 1.63742629722865E-0002 1.63533593832320E-0002 + 1.63324772626458E-0002 1.63116165935009E-0002 1.62907773587799E-0002 1.62699595414756E-0002 1.62491631245908E-0002 + 1.62283880911383E-0002 1.62076344241407E-0002 1.61869021066307E-0002 1.61661911216510E-0002 1.61455014522542E-0002 + 1.61248330815028E-0002 1.61041859924695E-0002 1.60835601682368E-0002 1.60629555918969E-0002 1.60423722465524E-0002 + 1.60218101153156E-0002 1.60012691813087E-0002 1.59807494276639E-0002 1.59602508375233E-0002 1.59397733940390E-0002 + 1.59193170803729E-0002 1.58988818796969E-0002 1.58784677751928E-0002 1.58580747500522E-0002 1.58377027874768E-0002 + 1.58173518706779E-0002 1.57970219828771E-0002 1.57767131073055E-0002 1.57564252272043E-0002 1.57361583258246E-0002 + 1.57159123864272E-0002 1.56956873922828E-0002 1.56754833266722E-0002 1.56553001728859E-0002 1.56351379142241E-0002 + 1.56149965339972E-0002 1.55948760155251E-0002 1.55747763421378E-0002 1.55546974971750E-0002 1.55346394639864E-0002 + 1.55146022259313E-0002 1.54945857663790E-0002 1.54745900687086E-0002 1.54546151163089E-0002 1.54346608925787E-0002 + 1.54147273809264E-0002 1.53948145647705E-0002 1.53749224275390E-0002 1.53550509526698E-0002 1.53352001236108E-0002 + 1.53153699238194E-0002 1.52955603367628E-0002 1.52757713459183E-0002 1.52560029347726E-0002 1.52362550868224E-0002 + 1.52165277855740E-0002 1.51968210145438E-0002 1.51771347572575E-0002 1.51574689972508E-0002 1.51378237180693E-0002 + 1.51181989032680E-0002 1.50985945364119E-0002 1.50790106010758E-0002 1.50594470808439E-0002 1.50399039593104E-0002 + 1.50203812200792E-0002 1.50008788467639E-0002 1.49813968229877E-0002 1.49619351323837E-0002 1.49424937585946E-0002 + 1.49230726852729E-0002 1.49036718960807E-0002 1.48842913746898E-0002 1.48649311047817E-0002 1.48455910700477E-0002 + 1.48262712541886E-0002 1.48069716409151E-0002 1.47876922139474E-0002 1.47684329570154E-0002 1.47491938538587E-0002 + 1.47299748882267E-0002 1.47107760438781E-0002 1.46915973045817E-0002 1.46724386541155E-0002 1.46533000762676E-0002 + 1.46341815548354E-0002 1.46150830736260E-0002 1.45960046164563E-0002 1.45769461671528E-0002 1.45579077095513E-0002 + 1.45388892274977E-0002 1.45198907048472E-0002 1.45009121254647E-0002 1.44819534732248E-0002 1.44630147320114E-0002 + 1.44440958857185E-0002 1.44251969182492E-0002 1.44063178135166E-0002 1.43874585554430E-0002 1.43686191279606E-0002 + 1.43497995150111E-0002 1.43309997005457E-0002 1.43122196685251E-0002 1.42934594029199E-0002 1.42747188877099E-0002 + 1.42559981068846E-0002 1.42372970444431E-0002 1.42186156843940E-0002 1.41999540107555E-0002 1.41813120075553E-0002 + 1.41626896588306E-0002 1.41440869486282E-0002 1.41255038610043E-0002 1.41069403800250E-0002 1.40883964897654E-0002 + 1.40698721743104E-0002 1.40513674177546E-0002 1.40328822042017E-0002 1.40144165177651E-0002 1.39959703425678E-0002 + 1.39775436627422E-0002 1.39591364624301E-0002 1.39407487257830E-0002 1.39223804369618E-0002 1.39040315801367E-0002 + 1.38857021394876E-0002 1.38673920992038E-0002 1.38491014434841E-0002 1.38308301565368E-0002 1.38125782225794E-0002 + 1.37943456258393E-0002 1.37761323505529E-0002 1.37579383809663E-0002 1.37397637013351E-0002 1.37216082959241E-0002 + 1.37034721490078E-0002 1.36853552448699E-0002 1.36672575678037E-0002 1.36491791021118E-0002 1.36311198321064E-0002 + 1.36130797421088E-0002 1.35950588164501E-0002 1.35770570394705E-0002 1.35590743955196E-0002 1.35411108689568E-0002 + 1.35231664441503E-0002 1.35052411054783E-0002 1.34873348373278E-0002 1.34694476240956E-0002 1.34515794501878E-0002 + 1.34337303000197E-0002 1.34159001580161E-0002 1.33980890086112E-0002 1.33802968362486E-0002 1.33625236253810E-0002 + 1.33447693604708E-0002 1.33270340259894E-0002 1.33093176064179E-0002 1.32916200862464E-0002 1.32739414499746E-0002 + 1.32562816821115E-0002 1.32386407671752E-0002 1.32210186896934E-0002 1.32034154342031E-0002 1.31858309852503E-0002 + 1.31682653273907E-0002 1.31507184451892E-0002 1.31331903232198E-0002 1.31156809460661E-0002 1.30981902983207E-0002 + 1.30807183645858E-0002 1.30632651294727E-0002 1.30458305776020E-0002 1.30284146936036E-0002 1.30110174621167E-0002 + 1.29936388677897E-0002 1.29762788952803E-0002 1.29589375292557E-0002 1.29416147543919E-0002 1.29243105553745E-0002 + 1.29070249168982E-0002 1.28897578236671E-0002 1.28725092603944E-0002 1.28552792118026E-0002 1.28380676626233E-0002 + 1.28208745975976E-0002 1.28037000014757E-0002 1.27865438590169E-0002 1.27694061549899E-0002 1.27522868741726E-0002 + 1.27351860013519E-0002 1.27181035213241E-0002 1.27010394188947E-0002 1.26839936788784E-0002 1.26669662860991E-0002 + 1.26499572253897E-0002 1.26329664815926E-0002 1.26159940395591E-0002 1.25990398841499E-0002 1.25821040002348E-0002 + 1.25651863726926E-0002 1.25482869864116E-0002 1.25314058262890E-0002 1.25145428772312E-0002 1.24976981241538E-0002 + 1.24808715519817E-0002 1.24640631456487E-0002 1.24472728900978E-0002 1.24305007702813E-0002 1.24137467711604E-0002 + 1.23970108777056E-0002 1.23802930748964E-0002 1.23635933477217E-0002 1.23469116811791E-0002 1.23302480602757E-0002 + 1.23136024700274E-0002 1.22969748954595E-0002 1.22803653216062E-0002 1.22637737335108E-0002 1.22472001162258E-0002 + 1.22306444548128E-0002 1.22141067343424E-0002 1.21975869398943E-0002 1.21810850565573E-0002 1.21646010694292E-0002 + 1.21481349636171E-0002 1.21316867242369E-0002 1.21152563364138E-0002 1.20988437852817E-0002 1.20824490559840E-0002 + 1.20660721336729E-0002 1.20497130035097E-0002 1.20333716506647E-0002 1.20170480603172E-0002 1.20007422176558E-0002 + 1.19844541078777E-0002 1.19681837161896E-0002 1.19519310278069E-0002 1.19356960279541E-0002 1.19194787018648E-0002 + 1.19032790347815E-0002 1.18870970119557E-0002 1.18709326186480E-0002 1.18547858401279E-0002 1.18386566616741E-0002 + 1.18225450685741E-0002 1.18064510461243E-0002 1.17903745796303E-0002 1.17743156544067E-0002 1.17582742557768E-0002 + 1.17422503690732E-0002 1.17262439796372E-0002 1.17102550728192E-0002 1.16942836339786E-0002 1.16783296484837E-0002 + 1.16623931017117E-0002 1.16464739790488E-0002 1.16305722658902E-0002 1.16146879476400E-0002 1.15988210097111E-0002 + 1.15829714375255E-0002 1.15671392165142E-0002 1.15513243321169E-0002 1.15355267697824E-0002 1.15197465149683E-0002 + 1.15039835531412E-0002 1.14882378697766E-0002 1.14725094503587E-0002 1.14567982803810E-0002 1.14411043453456E-0002 + 1.14254276307636E-0002 1.14097681221549E-0002 1.13941258050484E-0002 1.13785006649818E-0002 1.13628926875017E-0002 + 1.13473018581637E-0002 1.13317281625320E-0002 1.13161715861799E-0002 1.13006321146895E-0002 1.12851097336516E-0002 + 1.12696044286662E-0002 1.12541161853419E-0002 1.12386449892961E-0002 1.12231908261552E-0002 1.12077536815544E-0002 + 1.11923335411377E-0002 1.11769303905579E-0002 1.11615442154767E-0002 1.11461750015646E-0002 1.11308227345010E-0002 + 1.11154873999739E-0002 1.11001689836803E-0002 1.10848674713259E-0002 1.10695828486253E-0002 1.10543151013019E-0002 + 1.10390642150878E-0002 1.10238301757239E-0002 1.10086129689601E-0002 1.09934125805547E-0002 1.09782289962752E-0002 + 1.09630622018975E-0002 1.09479121832066E-0002 1.09327789259960E-0002 1.09176624160682E-0002 1.09025626392342E-0002 + 1.08874795813140E-0002 1.08724132281363E-0002 1.08573635655384E-0002 1.08423305793665E-0002 1.08273142554756E-0002 + 1.08123145797291E-0002 1.07973315379996E-0002 1.07823651161680E-0002 1.07674153001243E-0002 1.07524820757669E-0002 + 1.07375654290032E-0002 1.07226653457491E-0002 1.07077818119294E-0002 1.06929148134773E-0002 1.06780643363351E-0002 + 1.06632303664534E-0002 1.06484128897919E-0002 1.06336118923188E-0002 1.06188273600108E-0002 1.06040592788536E-0002 + 1.05893076348414E-0002 1.05745724139771E-0002 1.05598536022724E-0002 1.05451511857474E-0002 1.05304651504312E-0002 + 1.05157954823612E-0002 1.05011421675838E-0002 1.04865051921539E-0002 1.04718845421350E-0002 1.04572802035992E-0002 + 1.04426921626275E-0002 1.04281204053094E-0002 1.04135649177428E-0002 1.03990256860347E-0002 1.03845026963002E-0002 + 1.03699959346635E-0002 1.03555053872572E-0002 1.03410310402224E-0002 1.03265728797091E-0002 1.03121308918755E-0002 + 1.02977050628889E-0002 1.02832953789249E-0002 1.02689018261676E-0002 1.02545243908100E-0002 1.02401630590535E-0002 + 1.02258178171080E-0002 1.02114886511922E-0002 1.01971755475332E-0002 1.01828784923668E-0002 1.01685974719373E-0002 + 1.01543324724976E-0002 1.01400834803091E-0002 1.01258504816419E-0002 1.01116334627743E-0002 1.00974324099937E-0002 + 1.00832473095956E-0002 1.00690781478842E-0002 1.00549249111722E-0002 1.00407875857810E-0002 1.00266661580402E-0002 + 1.00125606142884E-0002 9.99847094087222E-0003 9.98439712414710E-0003 9.97033915047693E-0003 9.95629700623412E-0003 + 9.94227067779958E-0003 9.92826015156273E-0003 9.91426541392145E-0003 9.90028645128221E-0003 9.88632325005988E-0003 + 9.87237579667786E-0003 9.85844407756805E-0003 9.84452807917078E-0003 9.83062778793495E-0003 9.81674319031784E-0003 + 9.80287427278525E-0003 9.78902102181144E-0003 9.77518342387912E-0003 9.76136146547950E-0003 9.74755513311220E-0003 + 9.73376441328530E-0003 9.71998929251534E-0003 9.70622975732733E-0003 9.69248579425467E-0003 9.67875738983923E-0003 + 9.66504453063130E-0003 9.65134720318959E-0003 9.63766539408128E-0003 9.62399908988193E-0003 9.61034827717553E-0003 + 9.59671294255449E-0003 9.58309307261960E-0003 9.56948865398013E-0003 9.55589967325369E-0003 9.54232611706629E-0003 + 9.52876797205236E-0003 9.51522522485473E-0003 9.50169786212459E-0003 9.48818587052155E-0003 9.47468923671355E-0003 + 9.46120794737694E-0003 9.44774198919646E-0003 9.43429134886520E-0003 9.42085601308460E-0003 9.40743596856449E-0003 + 9.39403120202304E-0003 9.38064170018679E-0003 9.36726744979062E-0003 9.35390843757777E-0003 9.34056465029978E-0003 + 9.32723607471661E-0003 9.31392269759649E-0003 9.30062450571601E-0003 9.28734148586007E-0003 9.27407362482191E-0003 + 9.26082090940309E-0003 9.24758332641350E-0003 9.23436086267132E-0003 9.22115350500305E-0003 9.20796124024348E-0003 + 9.19478405523576E-0003 9.18162193683126E-0003 9.16847487188972E-0003 9.15534284727909E-0003 9.14222584987570E-0003 + 9.12912386656409E-0003 9.11603688423713E-0003 9.10296488979593E-0003 9.08990787014988E-0003 9.07686581221667E-0003 + 9.06383870292223E-0003 9.05082652920075E-0003 9.03782927799469E-0003 9.02484693625474E-0003 9.01187949093989E-0003 + 8.99892692901734E-0003 8.98598923746253E-0003 8.97306640325914E-0003 8.96015841339913E-0003 8.94726525488265E-0003 + 8.93438691471808E-0003 8.92152337992203E-0003 8.90867463751934E-0003 8.89584067454308E-0003 8.88302147803450E-0003 + 8.87021703504308E-0003 8.85742733262651E-0003 8.84465235785066E-0003 8.83189209778964E-0003 8.81914653952574E-0003 + 8.80641567014941E-0003 8.79369947675932E-0003 8.78099794646233E-0003 8.76831106637346E-0003 8.75563882361593E-0003 + 8.74298120532110E-0003 8.73033819862852E-0003 8.71770979068594E-0003 8.70509596864921E-0003 8.69249671968238E-0003 + 8.67991203095765E-0003 8.66734188965534E-0003 8.65478628296397E-0003 8.64224519808018E-0003 8.62971862220875E-0003 + 8.61720654256256E-0003 8.60470894636272E-0003 8.59222582083837E-0003 8.57975715322683E-0003 8.56730293077353E-0003 + 8.55486314073200E-0003 8.54243777036393E-0003 8.53002680693909E-0003 8.51763023773535E-0003 8.50524805003871E-0003 + 8.49288023114324E-0003 8.48052676835115E-0003 8.46818764897270E-0003 8.45586286032628E-0003 8.44355238973831E-0003 + 8.43125622454336E-0003 8.41897435208404E-0003 8.40670675971103E-0003 8.39445343478311E-0003 8.38221436466708E-0003 + 8.36998953673787E-0003 8.35777893837843E-0003 8.34558255697976E-0003 8.33340037994094E-0003 8.32123239466907E-0003 + 8.30907858857934E-0003 8.29693894909494E-0003 8.28481346364712E-0003 8.27270211967514E-0003 8.26060490462634E-0003 + 8.24852180595606E-0003 8.23645281112765E-0003 8.22439790761251E-0003 8.21235708289002E-0003 8.20033032444763E-0003 + 8.18831761978075E-0003 8.17631895639282E-0003 8.16433432179527E-0003 8.15236370350753E-0003 8.14040708905706E-0003 + 8.12846446597927E-0003 8.11653582181756E-0003 8.10462114412334E-0003 8.09272042045599E-0003 8.08083363838287E-0003 + 8.06896078547931E-0003 8.05710184932861E-0003 8.04525681752202E-0003 8.03342567765881E-0003 8.02160841734615E-0003 + 8.00980502419920E-0003 7.99801548584104E-0003 7.98623978990273E-0003 7.97447792402328E-0003 7.96272987584962E-0003 + 7.95099563303662E-0003 7.93927518324708E-0003 7.92756851415177E-0003 7.91587561342934E-0003 7.90419646876639E-0003 + 7.89253106785743E-0003 7.88087939840488E-0003 7.86924144811912E-0003 7.85761720471837E-0003 7.84600665592880E-0003 + 7.83440978948447E-0003 7.82282659312734E-0003 7.81125705460727E-0003 7.79970116168202E-0003 7.78815890211721E-0003 + 7.77663026368636E-0003 7.76511523417089E-0003 7.75361380136007E-0003 7.74212595305106E-0003 7.73065167704888E-0003 + 7.71919096116641E-0003 7.70774379322443E-0003 7.69631016105154E-0003 7.68489005248422E-0003 7.67348345536679E-0003 + 7.66209035755141E-0003 7.65071074689813E-0003 7.63934461127479E-0003 7.62799193855709E-0003 7.61665271662857E-0003 + 7.60532693338059E-0003 7.59401457671236E-0003 7.58271563453089E-0003 7.57143009475101E-0003 7.56015794529538E-0003 + 7.54889917409448E-0003 7.53765376908660E-0003 7.52642171821780E-0003 7.51520300944199E-0003 7.50399763072085E-0003 + 7.49280557002387E-0003 7.48162681532834E-0003 7.47046135461932E-0003 7.45930917588964E-0003 7.44817026713998E-0003 + 7.43704461637873E-0003 7.42593221162208E-0003 7.41483304089399E-0003 7.40374709222618E-0003 7.39267435365817E-0003 + 7.38161481323720E-0003 7.37056845901827E-0003 7.35953527906415E-0003 7.34851526144535E-0003 7.33750839424016E-0003 + 7.32651466553456E-0003 7.31553406342230E-0003 7.30456657600485E-0003 7.29361219139145E-0003 7.28267089769903E-0003 + 7.27174268305226E-0003 7.26082753558354E-0003 7.24992544343295E-0003 7.23903639474835E-0003 7.22816037768526E-0003 + 7.21729738040694E-0003 7.20644739108432E-0003 7.19561039789606E-0003 7.18478638902852E-0003 7.17397535267573E-0003 + 7.16317727703944E-0003 7.15239215032905E-0003 7.14161996076168E-0003 7.13086069656211E-0003 7.12011434596281E-0003 + 7.10938089720392E-0003 7.09866033853322E-0003 7.08795265820621E-0003 7.07725784448602E-0003 7.06657588564343E-0003 + 7.05590676995691E-0003 7.04525048571254E-0003 7.03460702120409E-0003 7.02397636473296E-0003 7.01335850460818E-0003 + 7.00275342914642E-0003 6.99216112667201E-0003 6.98158158551689E-0003 6.97101479402063E-0003 6.96046074053043E-0003 + 6.94991941340110E-0003 6.93939080099509E-0003 6.92887489168244E-0003 6.91837167384082E-0003 6.90788113585549E-0003 + 6.89740326611932E-0003 6.88693805303280E-0003 6.87648548500399E-0003 6.86604555044855E-0003 6.85561823778973E-0003 + 6.84520353545838E-0003 6.83480143189293E-0003 6.82441191553937E-0003 6.81403497485128E-0003 6.80367059828981E-0003 + 6.79331877432369E-0003 6.78297949142921E-0003 6.77265273809021E-0003 6.76233850279810E-0003 6.75203677405184E-0003 + 6.74174754035795E-0003 6.73147079023051E-0003 6.72120651219111E-0003 6.71095469476890E-0003 6.70071532650059E-0003 + 6.69048839593040E-0003 6.68027389161007E-0003 6.67007180209890E-0003 6.65988211596369E-0003 6.64970482177878E-0003 + 6.63953990812601E-0003 6.62938736359475E-0003 6.61924717678187E-0003 6.60911933629174E-0003 6.59900383073626E-0003 + 6.58890064873481E-0003 6.57880977891428E-0003 6.56873120990903E-0003 6.55866493036094E-0003 6.54861092891937E-0003 + 6.53856919424114E-0003 6.52853971499057E-0003 6.51852247983946E-0003 6.50851747746708E-0003 6.49852469656016E-0003 + 6.48854412581290E-0003 6.47857575392698E-0003 6.46861956961151E-0003 6.45867556158309E-0003 6.44874371856575E-0003 + 6.43882402929096E-0003 6.42891648249766E-0003 6.41902106693223E-0003 6.40913777134848E-0003 6.39926658450765E-0003 + 6.38940749517842E-0003 6.37956049213690E-0003 6.36972556416664E-0003 6.35990270005858E-0003 6.35009188861110E-0003 + 6.34029311863000E-0003 6.33050637892846E-0003 6.32073165832712E-0003 6.31096894565399E-0003 6.30121822974448E-0003 + 6.29147949944140E-0003 6.28175274359498E-0003 6.27203795106283E-0003 6.26233511070992E-0003 6.25264421140864E-0003 + 6.24296524203873E-0003 6.23329819148736E-0003 6.22364304864903E-0003 6.21399980242561E-0003 6.20436844172636E-0003 + 6.19474895546789E-0003 6.18514133257419E-0003 6.17554556197658E-0003 6.16596163261376E-0003 6.15638953343176E-0003 + 6.14682925338398E-0003 6.13728078143115E-0003 6.12774410654134E-0003 6.11821921768996E-0003 6.10870610385975E-0003 + 6.09920475404081E-0003 6.08971515723053E-0003 6.08023730243363E-0003 6.07077117866217E-0003 6.06131677493551E-0003 + 6.05187408028034E-0003 6.04244308373065E-0003 6.03302377432773E-0003 6.02361614112019E-0003 6.01422017316393E-0003 + 6.00483585952216E-0003 5.99546318926537E-0003 5.98610215147135E-0003 5.97675273522516E-0003 5.96741492961917E-0003 + 5.95808872375302E-0003 5.94877410673362E-0003 5.93947106767516E-0003 5.93017959569909E-0003 5.92089967993415E-0003 + 5.91163130951634E-0003 5.90237447358889E-0003 5.89312916130232E-0003 5.88389536181438E-0003 5.87467306429011E-0003 + 5.86546225790175E-0003 5.85626293182881E-0003 5.84707507525803E-0003 5.83789867738340E-0003 5.82873372740614E-0003 + 5.81958021453469E-0003 5.81043812798473E-0003 5.80130745697914E-0003 5.79218819074806E-0003 5.78308031852882E-0003 + 5.77398382956597E-0003 5.76489871311126E-0003 5.75582495842367E-0003 5.74676255476938E-0003 5.73771149142174E-0003 + 5.72867175766134E-0003 5.71964334277593E-0003 5.71062623606048E-0003 5.70162042681713E-0003 5.69262590435519E-0003 + 5.68364265799119E-0003 5.67467067704879E-0003 5.66570995085887E-0003 5.65676046875946E-0003 5.64782222009575E-0003 + 5.63889519422010E-0003 5.62997938049204E-0003 5.62107476827825E-0003 5.61218134695256E-0003 5.60329910589596E-0003 + 5.59442803449658E-0003 5.58556812214970E-0003 5.57671935825775E-0003 5.56788173223028E-0003 5.55905523348399E-0003 + 5.55023985144268E-0003 5.54143557553733E-0003 5.53264239520600E-0003 5.52386029989390E-0003 5.51508927905334E-0003 + 5.50632932214374E-0003 5.49758041863166E-0003 5.48884255799075E-0003 5.48011572970176E-0003 5.47139992325253E-0003 + 5.46269512813806E-0003 5.45400133386037E-0003 5.44531852992861E-0003 5.43664670585901E-0003 5.42798585117489E-0003 + 5.41933595540665E-0003 5.41069700809178E-0003 5.40206899877481E-0003 5.39345191700739E-0003 5.38484575234820E-0003 + 5.37625049436301E-0003 5.36766613262464E-0003 5.35909265671297E-0003 5.35053005621494E-0003 5.34197832072455E-0003 + 5.33343743984284E-0003 5.32490740317789E-0003 5.31638820034483E-0003 5.30787982096583E-0003 5.29938225467010E-0003 + 5.29089549109389E-0003 5.28241951988045E-0003 5.27395433068008E-0003 5.26549991315010E-0003 5.25705625695486E-0003 + 5.24862335176571E-0003 5.24020118726102E-0003 5.23178975312616E-0003 5.22338903905354E-0003 5.21499903474253E-0003 + 5.20661972989954E-0003 5.19825111423794E-0003 5.18989317747813E-0003 5.18154590934748E-0003 5.17320929958035E-0003 + 5.16488333791809E-0003 5.15656801410902E-0003 5.14826331790845E-0003 5.13996923907867E-0003 5.13168576738892E-0003 + 5.12341289261543E-0003 5.11515060454137E-0003 5.10689889295691E-0003 5.09865774765914E-0003 5.09042715845213E-0003 + 5.08220711514688E-0003 5.07399760756136E-0003 5.06579862552049E-0003 5.05761015885611E-0003 5.04943219740701E-0003 + 5.04126473101891E-0003 5.03310774954447E-0003 5.02496124284329E-0003 5.01682520078188E-0003 5.00869961323367E-0003 + 5.00058447007902E-0003 4.99247976120521E-0003 4.98438547650642E-0003 4.97630160588376E-0003 4.96822813924522E-0003 + 4.96016506650571E-0003 4.95211237758706E-0003 4.94407006241796E-0003 4.93603811093402E-0003 4.92801651307772E-0003 + 4.92000525879845E-0003 4.91200433805248E-0003 4.90401374080294E-0003 4.89603345701987E-0003 4.88806347668015E-0003 + 4.88010378976758E-0003 4.87215438627278E-0003 4.86421525619327E-0003 4.85628638953341E-0003 4.84836777630441E-0003 + 4.84045940652438E-0003 4.83256127021824E-0003 4.82467335741779E-0003 4.81679565816165E-0003 4.80892816249528E-0003 + 4.80107086047103E-0003 4.79322374214802E-0003 4.78538679759226E-0003 4.77756001687653E-0003 4.76974339008051E-0003 + 4.76193690729065E-0003 4.75414055860024E-0003 4.74635433410938E-0003 4.73857822392498E-0003 4.73081221816079E-0003 + 4.72305630693735E-0003 4.71531048038199E-0003 4.70757472862886E-0003 4.69984904181890E-0003 4.69213341009987E-0003 + 4.68442782362628E-0003 4.67673227255946E-0003 4.66904674706751E-0003 4.66137123732533E-0003 4.65370573351458E-0003 + 4.64605022582372E-0003 4.63840470444796E-0003 4.63076915958928E-0003 4.62314358145645E-0003 4.61552796026499E-0003 + 4.60792228623717E-0003 4.60032654960205E-0003 4.59274074059539E-0003 4.58516484945976E-0003 4.57759886644445E-0003 + 4.57004278180548E-0003 4.56249658580564E-0003 4.55496026871446E-0003 4.54743382080817E-0003 4.53991723236977E-0003 + 4.53241049368897E-0003 4.52491359506220E-0003 4.51742652679263E-0003 4.50994927919016E-0003 4.50248184257136E-0003 + 4.49502420725957E-0003 4.48757636358479E-0003 4.48013830188376E-0003 4.47271001249992E-0003 4.46529148578340E-0003 + 4.45788271209102E-0003 4.45048368178634E-0003 4.44309438523955E-0003 4.43571481282757E-0003 4.42834495493399E-0003 + 4.42098480194907E-0003 4.41363434426980E-0003 4.40629357229977E-0003 4.39896247644932E-0003 4.39164104713539E-0003 + 4.38432927478163E-0003 4.37702714981834E-0003 4.36973466268249E-0003 4.36245180381770E-0003 4.35517856367423E-0003 + 4.34791493270901E-0003 4.34066090138562E-0003 4.33341646017427E-0003 4.32618159955181E-0003 4.31895631000175E-0003 + 4.31174058201421E-0003 4.30453440608597E-0003 4.29733777272041E-0003 4.29015067242755E-0003 4.28297309572403E-0003 + 4.27580503313313E-0003 4.26864647518471E-0003 4.26149741241527E-0003 4.25435783536789E-0003 4.24722773459232E-0003 + 4.24010710064485E-0003 4.23299592408840E-0003 4.22589419549248E-0003 4.21880190543319E-0003 4.21171904449325E-0003 + 4.20464560326195E-0003 4.19758157233514E-0003 4.19052694231530E-0003 4.18348170381145E-0003 4.17644584743922E-0003 + 4.16941936382079E-0003 4.16240224358491E-0003 4.15539447736691E-0003 4.14839605580868E-0003 4.14140696955867E-0003 + 4.13442720927188E-0003 4.12745676560987E-0003 4.12049562924076E-0003 4.11354379083921E-0003 4.10660124108644E-0003 + 4.09966797067018E-0003 4.09274397028473E-0003 4.08582923063091E-0003 4.07892374241608E-0003 4.07202749635414E-0003 + 4.06514048316550E-0003 4.05826269357710E-0003 4.05139411832240E-0003 4.04453474814138E-0003 4.03768457378054E-0003 + 4.03084358599288E-0003 4.02401177553792E-0003 4.01718913318167E-0003 4.01037564969667E-0003 4.00357131586193E-0003 + 3.99677612246297E-0003 3.98999006029180E-0003 3.98321312014694E-0003 3.97644529283336E-0003 3.96968656916255E-0003 + 3.96293693995245E-0003 3.95619639602750E-0003 3.94946492821862E-0003 3.94274252736318E-0003 3.93602918430504E-0003 + 3.92932488989449E-0003 3.92262963498834E-0003 3.91594341044981E-0003 3.90926620714860E-0003 3.90259801596086E-0003 + 3.89593882776919E-0003 3.88928863346263E-0003 3.88264742393669E-0003 3.87601519009328E-0003 3.86939192284079E-0003 + 3.86277761309402E-0003 3.85617225177421E-0003 3.84957582980904E-0003 3.84298833813259E-0003 3.83640976768538E-0003 + 3.82984010941436E-0003 3.82327935427289E-0003 3.81672749322073E-0003 3.81018451722406E-0003 3.80365041725547E-0003 + 3.79712518429398E-0003 3.79060880932496E-0003 3.78410128334021E-0003 3.77760259733793E-0003 3.77111274232271E-0003 + 3.76463170930552E-0003 3.75815948930373E-0003 3.75169607334107E-0003 3.74524145244768E-0003 3.73879561766007E-0003 + 3.73235856002112E-0003 3.72593027058007E-0003 3.71951074039256E-0003 3.71309996052056E-0003 3.70669792203243E-0003 + 3.70030461600289E-0003 3.69392003351299E-0003 3.68754416565016E-0003 3.68117700350817E-0003 3.67481853818714E-0003 + 3.66846876079354E-0003 3.66212766244017E-0003 3.65579523424617E-0003 3.64947146733704E-0003 3.64315635284458E-0003 + 3.63684988190694E-0003 3.63055204566859E-0003 3.62426283528031E-0003 3.61798224189924E-0003 3.61171025668881E-0003 + 3.60544687081875E-0003 3.59919207546513E-0003 3.59294586181032E-0003 3.58670822104300E-0003 3.58047914435814E-0003 + 3.57425862295702E-0003 3.56804664804721E-0003 3.56184321084258E-0003 3.55564830256330E-0003 3.54946191443582E-0003 + 3.54328403769285E-0003 3.53711466357342E-0003 3.53095378332282E-0003 3.52480138819262E-0003 3.51865746944066E-0003 + 3.51252201833106E-0003 3.50639502613419E-0003 3.50027648412670E-0003 3.49416638359150E-0003 3.48806471581774E-0003 + 3.48197147210084E-0003 3.47588664374249E-0003 3.46981022205058E-0003 3.46374219833930E-0003 3.45768256392905E-0003 + 3.45163131014648E-0003 3.44558842832448E-0003 3.43955390980216E-0003 3.43352774592489E-0003 3.42750992804425E-0003 + 3.42150044751802E-0003 3.41549929571027E-0003 3.40950646399122E-0003 3.40352194373735E-0003 3.39754572633133E-0003 + 3.39157780316206E-0003 3.38561816562463E-0003 3.37966680512035E-0003 3.37372371305672E-0003 3.36778888084744E-0003 + 3.36186229991242E-0003 3.35594396167775E-0003 3.35003385757571E-0003 3.34413197904477E-0003 3.33823831752958E-0003 + 3.33235286448099E-0003 3.32647561135600E-0003 3.32060654961780E-0003 3.31474567073575E-0003 3.30889296618539E-0003 + 3.30304842744842E-0003 3.29721204601268E-0003 3.29138381337222E-0003 3.28556372102719E-0003 3.27975176048395E-0003 + 3.27394792325498E-0003 3.26815220085890E-0003 3.26236458482051E-0003 3.25658506667072E-0003 3.25081363794660E-0003 + 3.24505029019136E-0003 3.23929501495432E-0003 3.23354780379094E-0003 3.22780864826285E-0003 3.22207753993774E-0003 + 3.21635447038947E-0003 3.21063943119799E-0003 3.20493241394938E-0003 3.19923341023585E-0003 3.19354241165569E-0003 + 3.18785940981332E-0003 3.18218439631925E-0003 3.17651736279010E-0003 3.17085830084860E-0003 3.16520720212355E-0003 + 3.15956405824987E-0003 3.15392886086856E-0003 3.14830160162669E-0003 3.14268227217745E-0003 3.13707086418008E-0003 + 3.13146736929992E-0003 3.12587177920837E-0003 3.12028408558292E-0003 3.11470428010712E-0003 3.10913235447058E-0003 + 3.10356830036899E-0003 3.09801210950408E-0003 3.09246377358366E-0003 3.08692328432160E-0003 3.08139063343780E-0003 + 3.07586581265822E-0003 3.07034881371486E-0003 3.06483962834579E-0003 3.05933824829509E-0003 3.05384466531289E-0003 + 3.04835887115536E-0003 3.04288085758469E-0003 3.03741061636913E-0003 3.03194813928291E-0003 3.02649341810632E-0003 + 3.02104644462566E-0003 3.01560721063324E-0003 3.01017570792740E-0003 3.00475192831249E-0003 2.99933586359885E-0003 + 2.99392750560285E-0003 2.98852684614685E-0003 2.98313387705922E-0003 2.97774859017432E-0003 2.97237097733251E-0003 + 2.96700103038013E-0003 2.96163874116954E-0003 2.95628410155904E-0003 2.95093710341296E-0003 2.94559773860157E-0003 + 2.94026599900116E-0003 2.93494187649396E-0003 2.92962536296819E-0003 2.92431645031802E-0003 2.91901513044361E-0003 + 2.91372139525107E-0003 2.90843523665248E-0003 2.90315664656587E-0003 2.89788561691521E-0003 2.89262213963046E-0003 + 2.88736620664750E-0003 2.88211780990815E-0003 2.87687694136021E-0003 2.87164359295737E-0003 2.86641775665931E-0003 + 2.86119942443161E-0003 2.85598858824580E-0003 2.85078524007931E-0003 2.84558937191553E-0003 2.84040097574376E-0003 + 2.83522004355923E-0003 2.83004656736306E-0003 2.82488053916231E-0003 2.81972195096996E-0003 2.81457079480487E-0003 + 2.80942706269182E-0003 2.80429074666151E-0003 2.79916183875050E-0003 2.79404033100130E-0003 2.78892621546227E-0003 + 2.78381948418768E-0003 2.77872012923770E-0003 2.77362814267837E-0003 2.76854351658162E-0003 2.76346624302526E-0003 + 2.75839631409298E-0003 2.75333372187434E-0003 2.74827845846478E-0003 2.74323051596560E-0003 2.73818988648397E-0003 + 2.73315656213294E-0003 2.72813053503138E-0003 2.72311179730407E-0003 2.71810034108160E-0003 2.71309615850045E-0003 + 2.70809924170292E-0003 2.70310958283717E-0003 2.69812717405721E-0003 2.69315200752288E-0003 2.68818407539985E-0003 + 2.68322336985966E-0003 2.67826988307964E-0003 2.67332360724299E-0003 2.66838453453871E-0003 2.66345265716162E-0003 + 2.65852796731239E-0003 2.65361045719748E-0003 2.64870011902919E-0003 2.64379694502561E-0003 2.63890092741066E-0003 + 2.63401205841405E-0003 2.62913033027132E-0003 2.62425573522377E-0003 2.61938826551855E-0003 2.61452791340855E-0003 + 2.60967467115252E-0003 2.60482853101494E-0003 2.59998948526611E-0003 2.59515752618210E-0003 2.59033264604478E-0003 + 2.58551483714179E-0003 2.58070409176653E-0003 2.57590040221821E-0003 2.57110376080178E-0003 2.56631415982796E-0003 + 2.56153159161326E-0003 2.55675604847993E-0003 2.55198752275599E-0003 2.54722600677521E-0003 2.54247149287711E-0003 + 2.53772397340699E-0003 2.53298344071586E-0003 2.52824988716051E-0003 2.52352330510343E-0003 2.51880368691291E-0003 + 2.51409102496293E-0003 2.50938531163323E-0003 2.50468653930925E-0003 2.49999470038220E-0003 2.49530978724900E-0003 + 2.49063179231228E-0003 2.48596070798041E-0003 2.48129652666747E-0003 2.47663924079325E-0003 2.47198884278327E-0003 + 2.46734532506874E-0003 2.46270868008659E-0003 2.45807890027944E-0003 2.45345597809564E-0003 2.44883990598920E-0003 + 2.44423067641986E-0003 2.43962828185303E-0003 2.43503271475983E-0003 2.43044396761706E-0003 2.42586203290719E-0003 + 2.42128690311838E-0003 2.41671857074449E-0003 2.41215702828504E-0003 2.40760226824521E-0003 2.40305428313588E-0003 + 2.39851306547358E-0003 2.39397860778051E-0003 2.38945090258453E-0003 2.38492994241916E-0003 2.38041571982359E-0003 + 2.37590822734265E-0003 2.37140745752683E-0003 2.36691340293225E-0003 2.36242605612072E-0003 2.35794540965964E-0003 + 2.35347145612209E-0003 2.34900418808677E-0003 2.34454359813802E-0003 2.34008967886582E-0003 2.33564242286577E-0003 + 2.33120182273909E-0003 2.32676787109265E-0003 2.32234056053891E-0003 2.31791988369598E-0003 2.31350583318756E-0003 + 2.30909840164298E-0003 2.30469758169718E-0003 2.30030336599070E-0003 2.29591574716968E-0003 2.29153471788588E-0003 + 2.28716027079665E-0003 2.28279239856494E-0003 2.27843109385929E-0003 2.27407634935384E-0003 2.26972815772830E-0003 + 2.26538651166799E-0003 2.26105140386380E-0003 2.25672282701220E-0003 2.25240077381525E-0003 2.24808523698058E-0003 + 2.24377620922137E-0003 2.23947368325641E-0003 2.23517765181002E-0003 2.23088810761211E-0003 2.22660504339814E-0003 + 2.22232845190914E-0003 2.21805832589167E-0003 2.21379465809788E-0003 2.20953744128544E-0003 2.20528666821758E-0003 + 2.20104233166309E-0003 2.19680442439627E-0003 2.19257293919699E-0003 2.18834786885064E-0003 2.18412920614816E-0003 + 2.17991694388600E-0003 2.17571107486616E-0003 2.17151159189615E-0003 2.16731848778902E-0003 2.16313175536333E-0003 + 2.15895138744317E-0003 2.15477737685811E-0003 2.15060971644329E-0003 2.14644839903931E-0003 2.14229341749231E-0003 + 2.13814476465391E-0003 2.13400243338126E-0003 2.12986641653698E-0003 2.12573670698922E-0003 2.12161329761159E-0003 + 2.11749618128320E-0003 2.11338535088867E-0003 2.10928079931809E-0003 2.10518251946703E-0003 2.10109050423655E-0003 + 2.09700474653318E-0003 2.09292523926892E-0003 2.08885197536128E-0003 2.08478494773318E-0003 2.08072414931305E-0003 + 2.07666957303478E-0003 2.07262121183771E-0003 2.06857905866664E-0003 2.06454310647184E-0003 2.06051334820902E-0003 + 2.05648977683934E-0003 2.05247238532943E-0003 2.04846116665133E-0003 2.04445611378257E-0003 2.04045721970607E-0003 + 2.03646447741022E-0003 2.03247787988884E-0003 2.02849742014118E-0003 2.02452309117191E-0003 2.02055488599115E-0003 + 2.01659279761442E-0003 2.01263681906269E-0003 2.00868694336231E-0003 2.00474316354508E-0003 2.00080547264820E-0003 + 1.99687386371429E-0003 1.99294832979137E-0003 1.98902886393286E-0003 1.98511545919761E-0003 1.98120810864982E-0003 + 1.97730680535915E-0003 1.97341154240062E-0003 1.96952231285463E-0003 1.96563910980700E-0003 1.96176192634893E-0003 + 1.95789075557700E-0003 1.95402559059316E-0003 1.95016642450476E-0003 1.94631325042451E-0003 1.94246606147051E-0003 + 1.93862485076622E-0003 1.93478961144047E-0003 1.93096033662746E-0003 1.92713701946674E-0003 1.92331965310326E-0003 + 1.91950823068728E-0003 1.91570274537444E-0003 1.91190319032572E-0003 1.90810955870748E-0003 1.90432184369139E-0003 + 1.90054003845449E-0003 1.89676413617916E-0003 1.89299413005309E-0003 1.88923001326936E-0003 1.88547177902634E-0003 + 1.88171942052775E-0003 1.87797293098264E-0003 1.87423230360538E-0003 1.87049753161567E-0003 1.86676860823852E-0003 + 1.86304552670428E-0003 1.85932828024860E-0003 1.85561686211244E-0003 1.85191126554209E-0003 1.84821148378913E-0003 + 1.84451751011045E-0003 1.84082933776824E-0003 1.83714696003000E-0003 1.83347037016853E-0003 1.82979956146190E-0003 + 1.82613452719351E-0003 1.82247526065202E-0003 1.81882175513139E-0003 1.81517400393086E-0003 1.81153200035496E-0003 + 1.80789573771349E-0003 1.80426520932152E-0003 1.80064040849943E-0003 1.79702132857282E-0003 1.79340796287260E-0003 + 1.78980030473493E-0003 1.78619834750124E-0003 1.78260208451820E-0003 1.77901150913778E-0003 1.77542661471716E-0003 + 1.77184739461880E-0003 1.76827384221041E-0003 1.76470595086495E-0003 1.76114371396061E-0003 1.75758712488084E-0003 + 1.75403617701430E-0003 1.75049086375494E-0003 1.74695117850191E-0003 1.74341711465959E-0003 1.73988866563759E-0003 + 1.73636582485078E-0003 1.73284858571921E-0003 1.72933694166818E-0003 1.72583088612821E-0003 1.72233041253502E-0003 + 1.71883551432956E-0003 1.71534618495798E-0003 1.71186241787165E-0003 1.70838420652715E-0003 1.70491154438624E-0003 + 1.70144442491590E-0003 1.69798284158833E-0003 1.69452678788088E-0003 1.69107625727612E-0003 1.68763124326181E-0003 + 1.68419173933091E-0003 1.68075773898154E-0003 1.67732923571702E-0003 1.67390622304584E-0003 1.67048869448169E-0003 + 1.66707664354342E-0003 1.66367006375504E-0003 1.66026894864577E-0003 1.65687329174995E-0003 1.65348308660713E-0003 + 1.65009832676199E-0003 1.64671900576438E-0003 1.64334511716932E-0003 1.63997665453698E-0003 1.63661361143266E-0003 + 1.63325598142685E-0003 1.62990375809516E-0003 1.62655693501834E-0003 1.62321550578230E-0003 1.61987946397809E-0003 + 1.61654880320189E-0003 1.61322351705502E-0003 1.60990359914391E-0003 1.60658904308015E-0003 1.60327984248045E-0003 + 1.59997599096663E-0003 1.59667748216565E-0003 1.59338430970957E-0003 1.59009646723559E-0003 1.58681394838601E-0003 + 1.58353674680825E-0003 1.58026485615481E-0003 1.57699827008334E-0003 1.57373698225657E-0003 1.57048098634234E-0003 + 1.56723027601358E-0003 1.56398484494832E-0003 1.56074468682969E-0003 1.55750979534591E-0003 1.55428016419028E-0003 + 1.55105578706119E-0003 1.54783665766213E-0003 1.54462276970164E-0003 1.54141411689337E-0003 1.53821069295603E-0003 + 1.53501249161340E-0003 1.53181950659435E-0003 1.52863173163280E-0003 1.52544916046773E-0003 1.52227178684322E-0003 + 1.51909960450836E-0003 1.51593260721735E-0003 1.51277078872942E-0003 1.50961414280884E-0003 1.50646266322495E-0003 + 1.50331634375214E-0003 1.50017517816984E-0003 1.49703916026252E-0003 1.49390828381970E-0003 1.49078254263593E-0003 + 1.48766193051080E-0003 1.48454644124893E-0003 1.48143606865997E-0003 1.47833080655862E-0003 1.47523064876456E-0003 + 1.47213558910254E-0003 1.46904562140230E-0003 1.46596073949862E-0003 1.46288093723127E-0003 1.45980620844507E-0003 + 1.45673654698981E-0003 1.45367194672031E-0003 1.45061240149640E-0003 1.44755790518290E-0003 1.44450845164964E-0003 + 1.44146403477144E-0003 1.43842464842813E-0003 1.43539028650452E-0003 1.43236094289040E-0003 1.42933661148058E-0003 + 1.42631728617483E-0003 1.42330296087792E-0003 1.42029362949957E-0003 1.41728928595453E-0003 1.41428992416247E-0003 + 1.41129553804807E-0003 1.40830612154098E-0003 1.40532166857578E-0003 1.40234217309207E-0003 1.39936762903437E-0003 + 1.39639803035218E-0003 1.39343337099996E-0003 1.39047364493712E-0003 1.38751884612803E-0003 1.38456896854199E-0003 + 1.38162400615327E-0003 1.37868395294108E-0003 1.37574880288958E-0003 1.37281854998785E-0003 1.36989318822993E-0003 + 1.36697271161478E-0003 1.36405711414630E-0003 1.36114638983333E-0003 1.35824053268963E-0003 1.35533953673388E-0003 + 1.35244339598969E-0003 1.34955210448559E-0003 1.34666565625503E-0003 1.34378404533638E-0003 1.34090726577291E-0003 + 1.33803531161280E-0003 1.33516817690917E-0003 1.33230585572001E-0003 1.32944834210823E-0003 1.32659563014165E-0003 + 1.32374771389295E-0003 1.32090458743976E-0003 1.31806624486457E-0003 1.31523268025477E-0003 1.31240388770263E-0003 + 1.30957986130532E-0003 1.30676059516488E-0003 1.30394608338826E-0003 1.30113632008725E-0003 1.29833129937854E-0003 + 1.29553101538369E-0003 1.29273546222913E-0003 1.28994463404616E-0003 1.28715852497095E-0003 1.28437712914452E-0003 + 1.28160044071278E-0003 1.27882845382647E-0003 1.27606116264120E-0003 1.27329856131744E-0003 1.27054064402050E-0003 + 1.26778740492054E-0003 1.26503883819259E-0003 1.26229493801649E-0003 1.25955569857695E-0003 1.25682111406350E-0003 + 1.25409117867052E-0003 1.25136588659722E-0003 1.24864523204765E-0003 1.24592920923067E-0003 1.24321781236000E-0003 + 1.24051103565415E-0003 1.23780887333647E-0003 1.23511131963514E-0003 1.23241836878314E-0003 1.22973001501828E-0003 + 1.22704625258316E-0003 1.22436707572522E-0003 1.22169247869668E-0003 1.21902245575459E-0003 1.21635700116080E-0003 + 1.21369610918194E-0003 1.21103977408945E-0003 1.20838799015958E-0003 1.20574075167335E-0003 1.20309805291660E-0003 + 1.20045988817992E-0003 1.19782625175871E-0003 1.19519713795316E-0003 1.19257254106823E-0003 1.18995245541366E-0003 + 1.18733687530398E-0003 1.18472579505845E-0003 1.18211920900117E-0003 1.17951711146095E-0003 1.17691949677139E-0003 + 1.17432635927087E-0003 1.17173769330250E-0003 1.16915349321418E-0003 1.16657375335854E-0003 1.16399846809298E-0003 + 1.16142763177965E-0003 1.15886123878546E-0003 1.15629928348205E-0003 1.15374176024581E-0003 1.15118866345788E-0003 + 1.14863998750414E-0003 1.14609572677519E-0003 1.14355587566639E-0003 1.14102042857781E-0003 1.13848937991428E-0003 + 1.13596272408533E-0003 1.13344045550524E-0003 1.13092256859298E-0003 1.12840905777228E-0003 1.12589991747155E-0003 + 1.12339514212396E-0003 1.12089472616736E-0003 1.11839866404431E-0003 1.11590695020211E-0003 1.11341957909274E-0003 + 1.11093654517290E-0003 1.10845784290397E-0003 1.10598346675205E-0003 1.10351341118793E-0003 1.10104767068709E-0003 + 1.09858623972972E-0003 1.09612911280068E-0003 1.09367628438953E-0003 1.09122774899050E-0003 1.08878350110253E-0003 + 1.08634353522920E-0003 1.08390784587882E-0003 1.08147642756432E-0003 1.07904927480335E-0003 1.07662638211821E-0003 + 1.07420774403586E-0003 1.07179335508794E-0003 1.06938320981075E-0003 1.06697730274526E-0003 1.06457562843707E-0003 + 1.06217818143648E-0003 1.05978495629841E-0003 1.05739594758244E-0003 1.05501114985280E-0003 1.05263055767839E-0003 + 1.05025416563271E-0003 1.04788196829394E-0003 1.04551396024488E-0003 1.04315013607298E-0003 1.04079049037032E-0003 + 1.03843501773360E-0003 1.03608371276418E-0003 1.03373657006803E-0003 1.03139358425573E-0003 1.02905474994252E-0003 + 1.02672006174823E-0003 1.02438951429733E-0003 1.02206310221888E-0003 1.01974082014659E-0003 1.01742266271875E-0003 + 1.01510862457828E-0003 1.01279870037269E-0003 1.01049288475411E-0003 1.00819117237927E-0003 1.00589355790948E-0003 + 1.00360003601067E-0003 1.00131060135336E-0003 9.99025248612663E-0004 9.96743972468274E-0004 9.94466767604487E-0004 + 9.92193628710175E-0004 9.89924550478794E-0004 9.87659527608389E-0004 9.85398554801577E-0004 9.83141626765551E-0004 + 9.80888738212078E-0004 9.78639883857504E-0004 9.76395058422735E-0004 9.74154256633248E-0004 9.71917473219085E-0004 + 9.69684702914847E-0004 9.67455940459703E-0004 9.65231180597371E-0004 9.63010418076129E-0004 9.60793647648806E-0004 + 9.58580864072780E-0004 9.56372062109984E-0004 9.54167236526890E-0004 9.51966382094517E-0004 9.49769493588423E-0004 + 9.47576565788709E-0004 9.45387593480009E-0004 9.43202571451492E-0004 9.41021494496860E-0004 9.38844357414341E-0004 + 9.36671155006700E-0004 9.34501882081215E-0004 9.32336533449694E-0004 9.30175103928464E-0004 9.28017588338366E-0004 + 9.25863981504765E-0004 9.23714278257533E-0004 9.21568473431054E-0004 9.19426561864219E-0004 9.17288538400433E-0004 + 9.15154397887598E-0004 9.13024135178118E-0004 9.10897745128901E-0004 9.08775222601344E-0004 9.06656562461351E-0004 + 9.04541759579309E-0004 9.02430808830098E-0004 9.00323705093086E-0004 8.98220443252125E-0004 8.96121018195555E-0004 + 8.94025424816191E-0004 8.91933658011332E-0004 8.89845712682747E-0004 8.87761583736688E-0004 8.85681266083871E-0004 + 8.83604754639485E-0004 8.81532044323184E-0004 8.79463130059087E-0004 8.77398006775781E-0004 8.75336669406307E-0004 + 8.73279112888165E-0004 8.71225332163312E-0004 8.69175322178156E-0004 8.67129077883562E-0004 8.65086594234837E-0004 + 8.63047866191739E-0004 8.61012888718464E-0004 8.58981656783661E-0004 8.56954165360407E-0004 8.54930409426222E-0004 + 8.52910383963061E-0004 8.50894083957308E-0004 8.48881504399784E-0004 8.46872640285733E-0004 8.44867486614825E-0004 + 8.42866038391156E-0004 8.40868290623239E-0004 8.38874238324014E-0004 8.36883876510829E-0004 8.34897200205452E-0004 + 8.32914204434060E-0004 8.30934884227239E-0004 8.28959234619989E-0004 8.26987250651709E-0004 8.25018927366203E-0004 + 8.23054259811672E-0004 8.21093243040726E-0004 8.19135872110360E-0004 8.17182142081967E-0004 8.15232048021333E-0004 + 8.13285584998630E-0004 8.11342748088423E-0004 8.09403532369656E-0004 8.07467932925657E-0004 8.05535944844135E-0004 + 8.03607563217176E-0004 8.01682783141246E-0004 7.99761599717178E-0004 7.97844008050181E-0004 7.95930003249827E-0004 + 7.94019580430065E-0004 7.92112734709198E-0004 7.90209461209897E-0004 7.88309755059191E-0004 7.86413611388464E-0004 + 7.84521025333463E-0004 7.82631992034280E-0004 7.80746506635363E-0004 7.78864564285505E-0004 7.76986160137847E-0004 + 7.75111289349876E-0004 7.73239947083417E-0004 7.71372128504637E-0004 7.69507828784038E-0004 7.67647043096463E-0004 + 7.65789766621080E-0004 7.63935994541393E-0004 7.62085722045230E-0004 7.60238944324748E-0004 7.58395656576429E-0004 + 7.56555854001074E-0004 7.54719531803804E-0004 7.52886685194056E-0004 7.51057309385583E-0004 7.49231399596452E-0004 + 7.47408951049038E-0004 7.45589958970025E-0004 7.43774418590400E-0004 7.41962325145461E-0004 7.40153673874800E-0004 + 7.38348460022311E-0004 7.36546678836185E-0004 7.34748325568904E-0004 7.32953395477251E-0004 7.31161883822291E-0004 + 7.29373785869380E-0004 7.27589096888160E-0004 7.25807812152553E-0004 7.24029926940769E-0004 7.22255436535291E-0004 + 7.20484336222883E-0004 7.18716621294577E-0004 7.16952287045687E-0004 7.15191328775789E-0004 7.13433741788730E-0004 + 7.11679521392623E-0004 7.09928662899841E-0004 7.08181161627024E-0004 7.06437012895068E-0004 7.04696212029124E-0004 + 7.02958754358600E-0004 7.01224635217152E-0004 6.99493849942695E-0004 6.97766393877384E-0004 6.96042262367621E-0004 + 6.94321450764051E-0004 6.92603954421566E-0004 6.90889768699289E-0004 6.89178888960584E-0004 6.87471310573050E-0004 + 6.85767028908514E-0004 6.84066039343040E-0004 6.82368337256915E-0004 6.80673918034653E-0004 6.78982777064990E-0004 + 6.77294909740885E-0004 6.75610311459518E-0004 6.73928977622282E-0004 6.72250903634785E-0004 6.70576084906850E-0004 + 6.68904516852510E-0004 6.67236194890005E-0004 6.65571114441779E-0004 6.63909270934482E-0004 6.62250659798964E-0004 + 6.60595276470279E-0004 6.58943116387671E-0004 6.57294174994583E-0004 6.55648447738650E-0004 6.54005930071695E-0004 + 6.52366617449734E-0004 6.50730505332966E-0004 6.49097589185774E-0004 6.47467864476721E-0004 6.45841326678554E-0004 + 6.44217971268194E-0004 6.42597793726738E-0004 6.40980789539456E-0004 6.39366954195785E-0004 6.37756283189339E-0004 + 6.36148772017890E-0004 6.34544416183379E-0004 6.32943211191906E-0004 6.31345152553731E-0004 6.29750235783276E-0004 + 6.28158456399113E-0004 6.26569809923970E-0004 6.24984291884723E-0004 6.23401897812403E-0004 6.21822623242181E-0004 + 6.20246463713378E-0004 6.18673414769452E-0004 6.17103471958003E-0004 6.15536630830773E-0004 6.13972886943635E-0004 + 6.12412235856598E-0004 6.10854673133800E-0004 6.09300194343509E-0004 6.07748795058125E-0004 6.06200470854166E-0004 + 6.04655217312275E-0004 6.03113030017217E-0004 6.01573904557875E-0004 6.00037836527248E-0004 5.98504821522449E-0004 + 5.96974855144701E-0004 5.95447932999338E-0004 5.93924050695806E-0004 5.92403203847650E-0004 5.90885388072521E-0004 + 5.89370598992170E-0004 5.87858832232447E-0004 5.86350083423303E-0004 5.84844348198777E-0004 5.83341622197005E-0004 + 5.81841901060209E-0004 5.80345180434706E-0004 5.78851455970892E-0004 5.77360723323251E-0004 5.75872978150347E-0004 + 5.74388216114822E-0004 5.72906432883400E-0004 5.71427624126876E-0004 5.69951785520120E-0004 5.68478912742071E-0004 + 5.67009001475737E-0004 5.65542047408197E-0004 5.64078046230589E-0004 5.62616993638115E-0004 5.61158885330037E-0004 + 5.59703717009678E-0004 5.58251484384412E-0004 5.56802183165670E-0004 5.55355809068933E-0004 5.53912357813730E-0004 + 5.52471825123644E-0004 5.51034206726295E-0004 5.49599498353350E-0004 5.48167695740516E-0004 5.46738794627538E-0004 + 5.45312790758202E-0004 5.43889679880322E-0004 5.42469457745748E-0004 5.41052120110358E-0004 5.39637662734063E-0004 + 5.38226081380793E-0004 5.36817371818508E-0004 5.35411529819185E-0004 5.34008551158820E-0004 5.32608431617434E-0004 + 5.31211166979055E-0004 5.29816753031726E-0004 5.28425185567505E-0004 5.27036460382451E-0004 5.25650573276640E-0004 + 5.24267520054145E-0004 5.22887296523044E-0004 5.21509898495413E-0004 5.20135321787332E-0004 5.18763562218871E-0004 + 5.17394615614097E-0004 5.16028477801068E-0004 5.14665144611832E-0004 5.13304611882426E-0004 5.11946875452870E-0004 + 5.10591931167169E-0004 5.09239774873309E-0004 5.07890402423253E-0004 5.06543809672947E-0004 5.05199992482305E-0004 + 5.03858946715219E-0004 5.02520668239547E-0004 5.01185152927120E-0004 4.99852396653735E-0004 4.98522395299149E-0004 + 4.97195144747087E-0004 4.95870640885229E-0004 4.94548879605218E-0004 4.93229856802650E-0004 4.91913568377074E-0004 + 4.90600010231993E-0004 4.89289178274858E-0004 4.87981068417070E-0004 4.86675676573973E-0004 4.85372998664854E-0004 + 4.84073030612942E-0004 4.82775768345408E-0004 4.81481207793356E-0004 4.80189344891825E-0004 4.78900175579790E-0004 + 4.77613695800153E-0004 4.76329901499749E-0004 4.75048788629336E-0004 4.73770353143597E-0004 4.72494591001139E-0004 + 4.71221498164486E-0004 4.69951070600085E-0004 4.68683304278295E-0004 4.67418195173391E-0004 4.66155739263557E-0004 + 4.64895932530892E-0004 4.63638770961400E-0004 4.62384250544988E-0004 4.61132367275472E-0004 4.59883117150562E-0004 + 4.58636496171877E-0004 4.57392500344925E-0004 4.56151125679114E-0004 4.54912368187742E-0004 4.53676223888000E-0004 + 4.52442688800968E-0004 4.51211758951613E-0004 4.49983430368785E-0004 4.48757699085218E-0004 4.47534561137527E-0004 + 4.46314012566206E-0004 4.45096049415623E-0004 4.43880667734024E-0004 4.42667863573523E-0004 4.41457632990109E-0004 + 4.40249972043636E-0004 4.39044876797826E-0004 4.37842343320263E-0004 4.36642367682393E-0004 4.35444945959526E-0004 + 4.34250074230826E-0004 4.33057748579313E-0004 4.31867965091861E-0004 4.30680719859197E-0004 4.29496008975897E-0004 + 4.28313828540384E-0004 4.27134174654926E-0004 4.25957043425635E-0004 4.24782430962465E-0004 4.23610333379209E-0004 + 4.22440746793497E-0004 4.21273667326793E-0004 4.20109091104395E-0004 4.18947014255434E-0004 4.17787432912866E-0004 + 4.16630343213478E-0004 4.15475741297879E-0004 4.14323623310502E-0004 4.13173985399601E-0004 4.12026823717248E-0004 + 4.10882134419332E-0004 4.09739913665554E-0004 4.08600157619435E-0004 4.07462862448298E-0004 4.06328024323279E-0004 + 4.05195639419320E-0004 4.04065703915165E-0004 4.02938213993364E-0004 4.01813165840265E-0004 4.00690555646015E-0004 + 3.99570379604554E-0004 3.98452633913623E-0004 3.97337314774749E-0004 3.96224418393250E-0004 3.95113940978235E-0004 + 3.94005878742595E-0004 3.92900227903009E-0004 3.91796984679935E-0004 3.90696145297612E-0004 3.89597705984056E-0004 + 3.88501662971058E-0004 3.87408012494186E-0004 3.86316750792778E-0004 3.85227874109940E-0004 3.84141378692546E-0004 + 3.83057260791240E-0004 3.81975516660424E-0004 3.80896142558264E-0004 3.79819134746685E-0004 3.78744489491369E-0004 + 3.77672203061757E-0004 3.76602271731038E-0004 3.75534691776156E-0004 3.74469459477804E-0004 3.73406571120419E-0004 + 3.72346022992189E-0004 3.71287811385042E-0004 3.70231932594647E-0004 3.69178382920411E-0004 3.68127158665484E-0004 + 3.67078256136745E-0004 3.66031671644809E-0004 3.64987401504021E-0004 3.63945442032456E-0004 3.62905789551918E-0004 + 3.61868440387932E-0004 3.60833390869748E-0004 3.59800637330339E-0004 3.58770176106393E-0004 3.57742003538321E-0004 + 3.56716115970242E-0004 3.55692509749994E-0004 3.54671181229121E-0004 3.53652126762881E-0004 3.52635342710236E-0004 + 3.51620825433854E-0004 3.50608571300104E-0004 3.49598576679057E-0004 3.48590837944487E-0004 3.47585351473859E-0004 + 3.46582113648336E-0004 3.45581120852774E-0004 3.44582369475717E-0004 3.43585855909403E-0004 3.42591576549754E-0004 + 3.41599527796376E-0004 3.40609706052560E-0004 3.39622107725277E-0004 3.38636729225178E-0004 3.37653566966588E-0004 + 3.36672617367511E-0004 3.35693876849621E-0004 3.34717341838265E-0004 3.33743008762456E-0004 3.32770874054878E-0004 + 3.31800934151878E-0004 3.30833185493463E-0004 3.29867624523306E-0004 3.28904247688738E-0004 3.27943051440744E-0004 + 3.26984032233968E-0004 3.26027186526701E-0004 3.25072510780894E-0004 3.24120001462140E-0004 3.23169655039680E-0004 + 3.22221467986402E-0004 3.21275436778839E-0004 3.20331557897159E-0004 3.19389827825175E-0004 3.18450243050334E-0004 + 3.17512800063719E-0004 3.16577495360047E-0004 3.15644325437664E-0004 3.14713286798549E-0004 3.13784375948304E-0004 + 3.12857589396159E-0004 3.11932923654967E-0004 3.11010375241201E-0004 3.10089940674956E-0004 3.09171616479940E-0004 + 3.08255399183482E-0004 3.07341285316520E-0004 3.06429271413606E-0004 3.05519354012899E-0004 3.04611529656167E-0004 + 3.03705794888785E-0004 3.02802146259730E-0004 3.01900580321580E-0004 3.01001093630514E-0004 3.00103682746307E-0004 + 2.99208344232333E-0004 2.98315074655556E-0004 2.97423870586534E-0004 2.96534728599414E-0004 2.95647645271931E-0004 + 2.94762617185406E-0004 2.93879640924744E-0004 2.92998713078432E-0004 2.92119830238536E-0004 2.91242989000702E-0004 + 2.90368185964152E-0004 2.89495417731679E-0004 2.88624680909652E-0004 2.87755972108007E-0004 2.86889287940252E-0004 + 2.86024625023458E-0004 2.85161979978262E-0004 2.84301349428862E-0004 2.83442730003020E-0004 2.82586118332052E-0004 + 2.81731511050832E-0004 2.80878904797791E-0004 2.80028296214909E-0004 2.79179681947720E-0004 2.78333058645305E-0004 + 2.77488422960292E-0004 2.76645771548854E-0004 2.75805101070706E-0004 2.74966408189106E-0004 2.74129689570851E-0004 + 2.73294941886272E-0004 2.72462161809238E-0004 2.71631346017151E-0004 2.70802491190943E-0004 2.69975594015076E-0004 + 2.69150651177540E-0004 2.68327659369849E-0004 2.67506615287043E-0004 2.66687515627681E-0004 2.65870357093843E-0004 + 2.65055136391126E-0004 2.64241850228642E-0004 2.63430495319020E-0004 2.62621068378399E-0004 2.61813566126426E-0004 + 2.61007985286259E-0004 2.60204322584561E-0004 2.59402574751500E-0004 2.58602738520744E-0004 2.57804810629464E-0004 + 2.57008787818327E-0004 2.56214666831499E-0004 2.55422444416638E-0004 2.54632117324898E-0004 2.53843682310919E-0004 + 2.53057136132833E-0004 2.52272475552259E-0004 2.51489697334300E-0004 2.50708798247542E-0004 2.49929775064052E-0004 + 2.49152624559377E-0004 2.48377343512539E-0004 2.47603928706039E-0004 2.46832376925849E-0004 2.46062684961411E-0004 + 2.45294849605641E-0004 2.44528867654918E-0004 2.43764735909091E-0004 2.43002451171468E-0004 2.42242010248824E-0004 + 2.41483409951390E-0004 2.40726647092858E-0004 2.39971718490375E-0004 2.39218620964540E-0004 2.38467351339410E-0004 + 2.37717906442486E-0004 2.36970283104722E-0004 2.36224478160517E-0004 2.35480488447714E-0004 2.34738310807601E-0004 + 2.33997942084906E-0004 2.33259379127795E-0004 2.32522618787871E-0004 2.31787657920174E-0004 2.31054493383177E-0004 + 2.30323122038783E-0004 2.29593540752326E-0004 2.28865746392565E-0004 2.28139735831688E-0004 2.27415505945306E-0004 + 2.26693053612451E-0004 2.25972375715575E-0004 2.25253469140547E-0004 2.24536330776657E-0004 2.23820957516604E-0004 + 2.23107346256502E-0004 2.22395493895875E-0004 2.21685397337655E-0004 2.20977053488183E-0004 2.20270459257202E-0004 + 2.19565611557860E-0004 2.18862507306705E-0004 2.18161143423685E-0004 2.17461516832145E-0004 2.16763624458826E-0004 + 2.16067463233861E-0004 2.15373030090775E-0004 2.14680321966485E-0004 2.13989335801294E-0004 2.13300068538891E-0004 + 2.12612517126348E-0004 2.11926678514123E-0004 2.11242549656050E-0004 2.10560127509345E-0004 2.09879409034599E-0004 + 2.09200391195777E-0004 2.08523070960218E-0004 2.07847445298633E-0004 2.07173511185098E-0004 2.06501265597062E-0004 + 2.05830705515333E-0004 2.05161827924089E-0004 2.04494629810865E-0004 2.03829108166557E-0004 2.03165259985419E-0004 + 2.02503082265061E-0004 2.01842572006447E-0004 2.01183726213894E-0004 2.00526541895068E-0004 1.99871016060984E-0004 + 1.99217145726004E-0004 1.98564927907835E-0004 1.97914359627526E-0004 1.97265437909467E-0004 1.96618159781388E-0004 + 1.95972522274358E-0004 1.95328522422776E-0004 1.94686157264381E-0004 1.94045423840239E-0004 1.93406319194747E-0004 + 1.92768840375633E-0004 1.92132984433947E-0004 1.91498748424066E-0004 1.90866129403686E-0004 1.90235124433830E-0004 + 1.89605730578833E-0004 1.88977944906349E-0004 1.88351764487350E-0004 1.87727186396117E-0004 1.87104207710244E-0004 + 1.86482825510636E-0004 1.85863036881502E-0004 1.85244838910360E-0004 1.84628228688030E-0004 1.84013203308635E-0004 + 1.83399759869599E-0004 1.82787895471641E-0004 1.82177607218780E-0004 1.81568892218328E-0004 1.80961747580891E-0004 + 1.80356170420364E-0004 1.79752157853933E-0004 1.79149707002069E-0004 1.78548814988532E-0004 1.77949478940362E-0004 + 1.77351695987882E-0004 1.76755463264696E-0004 1.76160777907685E-0004 1.75567637057006E-0004 1.74976037856091E-0004 + 1.74385977451644E-0004 1.73797452993639E-0004 1.73210461635322E-0004 1.72625000533202E-0004 1.72041066847057E-0004 + 1.71458657739924E-0004 1.70877770378105E-0004 1.70298401931161E-0004 1.69720549571910E-0004 1.69144210476427E-0004 + 1.68569381824040E-0004 1.67996060797330E-0004 1.67424244582129E-0004 1.66853930367518E-0004 1.66285115345823E-0004 + 1.65717796712616E-0004 1.65151971666713E-0004 1.64587637410172E-0004 1.64024791148288E-0004 1.63463430089595E-0004 + 1.62903551445864E-0004 1.62345152432098E-0004 1.61788230266535E-0004 1.61232782170642E-0004 1.60678805369113E-0004 + 1.60126297089870E-0004 1.59575254564063E-0004 1.59025675026062E-0004 1.58477555713457E-0004 1.57930893867060E-0004 + 1.57385686730902E-0004 1.56841931552227E-0004 1.56299625581494E-0004 1.55758766072376E-0004 1.55219350281752E-0004 + 1.54681375469715E-0004 1.54144838899563E-0004 1.53609737837797E-0004 1.53076069554123E-0004 1.52543831321448E-0004 + 1.52013020415881E-0004 1.51483634116724E-0004 1.50955669706478E-0004 1.50429124470839E-0004 1.49903995698693E-0004 + 1.49380280682119E-0004 1.48857976716382E-0004 1.48337081099937E-0004 1.47817591134421E-0004 1.47299504124657E-0004 + 1.46782817378648E-0004 1.46267528207578E-0004 1.45753633925808E-0004 1.45241131850875E-0004 1.44730019303491E-0004 + 1.44220293607540E-0004 1.43711952090078E-0004 1.43204992081328E-0004 1.42699410914682E-0004 1.42195205926696E-0004 + 1.41692374457090E-0004 1.41190913848747E-0004 1.40690821447708E-0004 1.40192094603173E-0004 1.39694730667499E-0004 + 1.39198726996198E-0004 1.38704080947932E-0004 1.38210789884517E-0004 1.37718851170918E-0004 1.37228262175245E-0004 + 1.36739020268757E-0004 1.36251122825854E-0004 1.35764567224081E-0004 1.35279350844120E-0004 1.34795471069794E-0004 + 1.34312925288062E-0004 1.33831710889017E-0004 1.33351825265887E-0004 1.32873265815030E-0004 1.32396029935935E-0004 + 1.31920115031217E-0004 1.31445518506617E-0004 1.30972237771004E-0004 1.30500270236364E-0004 1.30029613317808E-0004 + 1.29560264433564E-0004 1.29092221004977E-0004 1.28625480456509E-0004 1.28160040215734E-0004 1.27695897713339E-0004 + 1.27233050383119E-0004 1.26771495661980E-0004 1.26311230989933E-0004 1.25852253810095E-0004 1.25394561568683E-0004 + 1.24938151715019E-0004 1.24483021701521E-0004 1.24029168983709E-0004 1.23576591020194E-0004 1.23125285272683E-0004 + 1.22675249205978E-0004 1.22226480287968E-0004 1.21778975989632E-0004 1.21332733785038E-0004 1.20887751151336E-0004 + 1.20444025568761E-0004 1.20001554520632E-0004 1.19560335493344E-0004 1.19120365976373E-0004 1.18681643462270E-0004 + 1.18244165446663E-0004 1.17807929428250E-0004 1.17372932908804E-0004 1.16939173393163E-0004 1.16506648389236E-0004 + 1.16075355407996E-0004 1.15645291963483E-0004 1.15216455572796E-0004 1.14788843756097E-0004 1.14362454036606E-0004 + 1.13937283940600E-0004 1.13513330997414E-0004 1.13090592739432E-0004 1.12669066702093E-0004 1.12248750423887E-0004 + 1.11829641446351E-0004 1.11411737314067E-0004 1.10995035574666E-0004 1.10579533778820E-0004 1.10165229480241E-0004 + 1.09752120235684E-0004 1.09340203604939E-0004 1.08929477150833E-0004 1.08519938439229E-0004 1.08111585039021E-0004 + 1.07704414522136E-0004 1.07298424463527E-0004 1.06893612441177E-0004 1.06489976036096E-0004 1.06087512832313E-0004 + 1.05686220416886E-0004 1.05286096379888E-0004 1.04887138314413E-0004 1.04489343816572E-0004 1.04092710485493E-0004 + 1.03697235923315E-0004 1.03302917735189E-0004 1.02909753529279E-0004 1.02517740916754E-0004 1.02126877511792E-0004 + 1.01737160931575E-0004 1.01348588796288E-0004 1.00961158729118E-0004 1.00574868356252E-0004 1.00189715306874E-0004 + 9.98056972131672E-0005 9.94228117103043E-0005 9.90410564364558E-0005 9.86604290327798E-0005 9.82809271434263E-0005 + 9.79025484155325E-0005 9.75252904992197E-0005 9.71491510475963E-0005 9.67741277167502E-0005 9.64002181657526E-0005 + 9.60274200566534E-0005 9.56557310544778E-0005 9.52851488272288E-0005 9.49156710458836E-0005 9.45472953843890E-0005 + 9.41800195196654E-0005 9.38138411315991E-0005 9.34487579030455E-0005 9.30847675198255E-0005 9.27218676707213E-0005 + 9.23600560474800E-0005 9.19993303448060E-0005 9.16396882603642E-0005 9.12811274947765E-0005 9.09236457516175E-0005 + 9.05672407374182E-0005 9.02119101616583E-0005 8.98576517367696E-0005 8.95044631781319E-0005 8.91523422040698E-0005 + 8.88012865358551E-0005 8.84512938977003E-0005 8.81023620167611E-0005 8.77544886231331E-0005 8.74076714498475E-0005 + 8.70619082328749E-0005 8.67171967111176E-0005 8.63735346264128E-0005 8.60309197235288E-0005 8.56893497501616E-0005 + 8.53488224569367E-0005 8.50093355974058E-0005 8.46708869280431E-0005 8.43334742082481E-0005 8.39970952003384E-0005 + 8.36617476695531E-0005 8.33274293840489E-0005 8.29941381148964E-0005 8.26618716360828E-0005 8.23306277245056E-0005 + 8.20004041599747E-0005 8.16711987252093E-0005 8.13430092058342E-0005 8.10158333903822E-0005 8.06896690702879E-0005 + 8.03645140398900E-0005 8.00403660964279E-0005 7.97172230400381E-0005 7.93950826737570E-0005 7.90739428035139E-0005 + 7.87538012381341E-0005 7.84346557893350E-0005 7.81165042717228E-0005 7.77993445027949E-0005 7.74831743029335E-0005 + 7.71679914954082E-0005 7.68537939063724E-0005 7.65405793648596E-0005 7.62283457027859E-0005 7.59170907549459E-0005 + 7.56068123590097E-0005 7.52975083555251E-0005 7.49891765879112E-0005 7.46818149024611E-0005 7.43754211483383E-0005 + 7.40699931775729E-0005 7.37655288450648E-0005 7.34620260085768E-0005 7.31594825287369E-0005 7.28578962690353E-0005 + 7.25572650958210E-0005 7.22575868783035E-0005 7.19588594885474E-0005 7.16610808014742E-0005 7.13642486948590E-0005 + 7.10683610493274E-0005 7.07734157483571E-0005 7.04794106782728E-0005 7.01863437282474E-0005 6.98942127902994E-0005 + 6.96030157592890E-0005 6.93127505329209E-0005 6.90234150117378E-0005 6.87350070991225E-0005 6.84475247012951E-0005 + 6.81609657273092E-0005 6.78753280890539E-0005 6.75906097012499E-0005 6.73068084814471E-0005 6.70239223500259E-0005 + 6.67419492301917E-0005 6.64608870479770E-0005 6.61807337322377E-0005 6.59014872146504E-0005 6.56231454297141E-0005 + 6.53457063147447E-0005 6.50691678098762E-0005 6.47935278580586E-0005 6.45187844050538E-0005 6.42449353994380E-0005 + 6.39719787925957E-0005 6.36999125387219E-0005 6.34287345948188E-0005 6.31584429206922E-0005 6.28890354789544E-0005 + 6.26205102350174E-0005 6.23528651570955E-0005 6.20860982162019E-0005 6.18202073861455E-0005 6.15551906435329E-0005 + 6.12910459677627E-0005 6.10277713410272E-0005 6.07653647483096E-0005 6.05038241773805E-0005 6.02431476187994E-0005 + 5.99833330659116E-0005 5.97243785148450E-0005 5.94662819645121E-0005 5.92090414166040E-0005 5.89526548755927E-0005 + 5.86971203487277E-0005 5.84424358460329E-0005 5.81885993803084E-0005 5.79356089671252E-0005 5.76834626248267E-0005 + 5.74321583745254E-0005 5.71816942401004E-0005 5.69320682481986E-0005 5.66832784282298E-0005 5.64353228123677E-0005 + 5.61881994355475E-0005 5.59419063354622E-0005 5.56964415525649E-0005 5.54518031300631E-0005 5.52079891139204E-0005 + 5.49649975528532E-0005 5.47228264983284E-0005 5.44814740045640E-0005 5.42409381285248E-0005 5.40012169299232E-0005 + 5.37623084712167E-0005 5.35242108176045E-0005 5.32869220370292E-0005 5.30504402001731E-0005 5.28147633804558E-0005 + 5.25798896540352E-0005 5.23458170998029E-0005 5.21125437993852E-0005 5.18800678371404E-0005 5.16483873001558E-0005 + 5.14175002782490E-0005 5.11874048639632E-0005 5.09580991525682E-0005 5.07295812420576E-0005 5.05018492331459E-0005 + 5.02749012292702E-0005 5.00487353365845E-0005 4.98233496639617E-0005 4.95987423229905E-0005 4.93749114279721E-0005 + 4.91518550959226E-0005 4.89295714465666E-0005 4.87080586023398E-0005 4.84873146883853E-0005 4.82673378325512E-0005 + 4.80481261653918E-0005 4.78296778201624E-0005 4.76119909328209E-0005 4.73950636420250E-0005 4.71788940891291E-0005 + 4.69634804181851E-0005 4.67488207759401E-0005 4.65349133118330E-0005 4.63217561779959E-0005 4.61093475292494E-0005 + 4.58976855231038E-0005 4.56867683197561E-0005 4.54765940820873E-0005 4.52671609756638E-0005 4.50584671687323E-0005 + 4.48505108322211E-0005 4.46432901397372E-0005 4.44368032675640E-0005 4.42310483946618E-0005 4.40260237026634E-0005 + 4.38217273758753E-0005 4.36181576012747E-0005 4.34153125685070E-0005 4.32131904698868E-0005 4.30117895003931E-0005 + 4.28111078576705E-0005 4.26111437420267E-0005 4.24118953564293E-0005 4.22133609065071E-0005 4.20155386005457E-0005 + 4.18184266494880E-0005 4.16220232669322E-0005 4.14263266691284E-0005 4.12313350749797E-0005 4.10370467060393E-0005 + 4.08434597865079E-0005 4.06505725432346E-0005 4.04583832057124E-0005 4.02668900060793E-0005 4.00760911791155E-0005 + 3.98859849622408E-0005 3.96965695955153E-0005 3.95078433216353E-0005 3.93198043859341E-0005 3.91324510363793E-0005 + 3.89457815235700E-0005 3.87597941007381E-0005 3.85744870237435E-0005 3.83898585510753E-0005 3.82059069438488E-0005 + 3.80226304658034E-0005 3.78400273833030E-0005 3.76580959653316E-0005 3.74768344834947E-0005 3.72962412120162E-0005 + 3.71163144277359E-0005 3.69370524101104E-0005 3.67584534412087E-0005 3.65805158057132E-0005 3.64032377909170E-0005 + 3.62266176867210E-0005 3.60506537856351E-0005 3.58753443827747E-0005 3.57006877758590E-0005 3.55266822652111E-0005 + 3.53533261537542E-0005 3.51806177470121E-0005 3.50085553531067E-0005 3.48371372827557E-0005 3.46663618492729E-0005 + 3.44962273685643E-0005 3.43267321591288E-0005 3.41578745420555E-0005 3.39896528410214E-0005 3.38220653822919E-0005 + 3.36551104947169E-0005 3.34887865097311E-0005 3.33230917613518E-0005 3.31580245861764E-0005 3.29935833233830E-0005 + 3.28297663147259E-0005 3.26665719045371E-0005 3.25039984397230E-0005 3.23420442697624E-0005 3.21807077467069E-0005 + 3.20199872251769E-0005 3.18598810623622E-0005 3.17003876180196E-0005 3.15415052544704E-0005 3.13832323366008E-0005 + 3.12255672318589E-0005 3.10685083102530E-0005 3.09120539443516E-0005 3.07562025092797E-0005 3.06009523827195E-0005 + 3.04463019449074E-0005 3.02922495786321E-0005 3.01387936692350E-0005 2.99859326046060E-0005 2.98336647751845E-0005 + 2.96819885739565E-0005 2.95309023964527E-0005 2.93804046407483E-0005 2.92304937074598E-0005 2.90811679997451E-0005 + 2.89324259233014E-0005 2.87842658863622E-0005 2.86366862996987E-0005 2.84896855766149E-0005 2.83432621329490E-0005 + 2.81974143870705E-0005 2.80521407598777E-0005 2.79074396747986E-0005 2.77633095577868E-0005 2.76197488373221E-0005 + 2.74767559444079E-0005 2.73343293125688E-0005 2.71924673778512E-0005 2.70511685788205E-0005 2.69104313565588E-0005 + 2.67702541546654E-0005 2.66306354192530E-0005 2.64915735989481E-0005 2.63530671448887E-0005 2.62151145107220E-0005 + 2.60777141526045E-0005 2.59408645291987E-0005 2.58045641016730E-0005 2.56688113336998E-0005 2.55336046914530E-0005 + 2.53989426436083E-0005 2.52648236613396E-0005 2.51312462183191E-0005 2.49982087907156E-0005 2.48657098571914E-0005 + 2.47337478989031E-0005 2.46023213994982E-0005 2.44714288451145E-0005 2.43410687243788E-0005 2.42112395284042E-0005 + 2.40819397507901E-0005 2.39531678876192E-0005 2.38249224374572E-0005 2.36972019013509E-0005 2.35700047828259E-0005 + 2.34433295878864E-0005 2.33171748250130E-0005 2.31915390051607E-0005 2.30664206417586E-0005 2.29418182507070E-0005 + 2.28177303503770E-0005 2.26941554616088E-0005 2.25710921077093E-0005 2.24485388144518E-0005 2.23264941100735E-0005 + 2.22049565252747E-0005 2.20839245932174E-0005 2.19633968495223E-0005 2.18433718322696E-0005 2.17238480819954E-0005 + 2.16048241416915E-0005 2.14862985568037E-0005 2.13682698752293E-0005 2.12507366473174E-0005 2.11336974258652E-0005 + 2.10171507661186E-0005 2.09010952257695E-0005 2.07855293649541E-0005 2.06704517462527E-0005 2.05558609346863E-0005 + 2.04417554977169E-0005 2.03281340052454E-0005 2.02149950296090E-0005 2.01023371455817E-0005 1.99901589303708E-0005 + 1.98784589636171E-0005 1.97672358273926E-0005 1.96564881061983E-0005 1.95462143869643E-0005 1.94364132590473E-0005 + 1.93270833142287E-0005 1.92182231467146E-0005 1.91098313531323E-0005 1.90019065325307E-0005 1.88944472863781E-0005 + 1.87874522185598E-0005 1.86809199353782E-0005 1.85748490455499E-0005 1.84692381602052E-0005 1.83640858928865E-0005 + 1.82593908595458E-0005 1.81551516785448E-0005 1.80513669706517E-0005 1.79480353590415E-0005 1.78451554692931E-0005 + 1.77427259293882E-0005 1.76407453697104E-0005 1.75392124230428E-0005 1.74381257245672E-0005 1.73374839118625E-0005 + 1.72372856249027E-0005 1.71375295060564E-0005 1.70382142000841E-0005 1.69393383541378E-0005 1.68409006177591E-0005 + 1.67428996428773E-0005 1.66453340838087E-0005 1.65482025972548E-0005 1.64515038423003E-0005 1.63552364804126E-0005 + 1.62593991754394E-0005 1.61639905936079E-0005 1.60690094035233E-0005 1.59744542761663E-0005 1.58803238848933E-0005 + 1.57866169054333E-0005 1.56933320158876E-0005 1.56004678967282E-0005 1.55080232307951E-0005 1.54159967032966E-0005 + 1.53243870018065E-0005 1.52331928162633E-0005 1.51424128389688E-0005 1.50520457645857E-0005 1.49620902901377E-0005 + 1.48725451150061E-0005 1.47834089409303E-0005 1.46946804720052E-0005 1.46063584146794E-0005 1.45184414777550E-0005 + 1.44309283723847E-0005 1.43438178120718E-0005 1.42571085126677E-0005 1.41707991923703E-0005 1.40848885717235E-0005 + 1.39993753736152E-0005 1.39142583232754E-0005 1.38295361482758E-0005 1.37452075785270E-0005 1.36612713462784E-0005 + 1.35777261861160E-0005 1.34945708349605E-0005 1.34118040320672E-0005 1.33294245190231E-0005 1.32474310397465E-0005 + 1.31658223404850E-0005 1.30845971698139E-0005 1.30037542786355E-0005 1.29232924201767E-0005 1.28432103499884E-0005 + 1.27635068259436E-0005 1.26841806082357E-0005 1.26052304593777E-0005 1.25266551442002E-0005 1.24484534298502E-0005 + 1.23706240857899E-0005 1.22931658837945E-0005 1.22160775979515E-0005 1.21393580046589E-0005 1.20630058826238E-0005 + 1.19870200128611E-0005 1.19113991786917E-0005 1.18361421657415E-0005 1.17612477619397E-0005 1.16867147575173E-0005 + 1.16125419450059E-0005 1.15387281192358E-0005 1.14652720773353E-0005 1.13921726187287E-0005 1.13194285451347E-0005 + 1.12470386605657E-0005 1.11750017713254E-0005 1.11033166860084E-0005 1.10319822154980E-0005 1.09609971729648E-0005 + 1.08903603738659E-0005 1.08200706359425E-0005 1.07501267792193E-0005 1.06805276260030E-0005 1.06112720008799E-0005 + 1.05423587307160E-0005 1.04737866446540E-0005 1.04055545741132E-0005 1.03376613527874E-0005 1.02701058166431E-0005 + 1.02028868039191E-0005 1.01360031551240E-0005 1.00694537130356E-0005 1.00032373226993E-0005 9.93735283142584E-0006 + 9.87179908879109E-0006 9.80657494663407E-0006 9.74167925905511E-0006 9.67711088241535E-0006 9.61286867533431E-0006 + 9.54895149868933E-0006 9.48535821561375E-0006 9.42208769149517E-0006 9.35913879397482E-0006 9.29651039294524E-0006 + 9.23420136054963E-0006 9.17221057118012E-0006 9.11053690147595E-0006 9.04917923032292E-0006 8.98813643885101E-0006 + 8.92740741043376E-0006 8.86699103068655E-0006 8.80688618746478E-0006 8.74709177086331E-0006 8.68760667321408E-0006 + 8.62842978908554E-0006 8.56956001528085E-0006 8.51099625083616E-0006 8.45273739701994E-0006 8.39478235733073E-0006 + 8.33713003749646E-0006 8.27977934547273E-0006 8.22272919144104E-0006 8.16597848780808E-0006 8.10952614920395E-0006 + 8.05337109248044E-0006 7.99751223671038E-0006 7.94194850318536E-0006 7.88667881541511E-0006 7.83170209912571E-0006 + 7.77701728225791E-0006 7.72262329496643E-0006 7.66851906961777E-0006 7.61470354078945E-0006 7.56117564526839E-0006 + 7.50793432204911E-0006 7.45497851233310E-0006 7.40230715952658E-0006 7.34991920923981E-0006 7.29781360928540E-0006 + 7.24598930967656E-0006 7.19444526262647E-0006 7.14318042254601E-0006 7.09219374604313E-0006 7.04148419192109E-0006 + 6.99105072117679E-0006 6.94089229700007E-0006 6.89100788477152E-0006 6.84139645206176E-0006 6.79205696862977E-0006 + 6.74298840642119E-0006 6.69418973956749E-0006 6.64565994438434E-0006 6.59739799936986E-0006 6.54940288520393E-0006 + 6.50167358474608E-0006 6.45420908303465E-0006 6.40700836728523E-0006 6.36007042688893E-0006 6.31339425341163E-0006 + 6.26697884059191E-0006 6.22082318434023E-0006 6.17492628273732E-0006 6.12928713603252E-0006 6.08390474664298E-0006 + 6.03877811915160E-0006 5.99390626030624E-0006 5.94928817901810E-0006 5.90492288636003E-0006 5.86080939556580E-0006 + 5.81694672202798E-0006 5.77333388329720E-0006 5.72996989908049E-0006 5.68685379123962E-0006 5.64398458379036E-0006 + 5.60136130290040E-0006 5.55898297688855E-0006 5.51684863622311E-0006 5.47495731352026E-0006 5.43330804354316E-0006 + 5.39189986320034E-0006 5.35073181154406E-0006 5.30980292976952E-0006 5.26911226121281E-0006 5.22865885135014E-0006 + 5.18844174779618E-0006 5.14846000030247E-0006 5.10871266075661E-0006 5.06919878318023E-0006 5.02991742372820E-0006 + 4.99086764068696E-0006 4.95204849447301E-0006 4.91345904763200E-0006 4.87509836483677E-0006 4.83696551288654E-0006 + 4.79905956070528E-0006 4.76137957934011E-0006 4.72392464196049E-0006 4.68669382385625E-0006 4.64968620243670E-0006 + 4.61290085722909E-0006 4.57633686987703E-0006 4.53999332413956E-0006 4.50386930588931E-0006 4.46796390311156E-0006 + 4.43227620590268E-0006 4.39680530646859E-0006 4.36155029912379E-0006 4.32651028028977E-0006 4.29168434849349E-0006 + 4.25707160436645E-0006 4.22267115064283E-0006 4.18848209215858E-0006 4.15450353584983E-0006 4.12073459075142E-0006 + 4.08717436799589E-0006 4.05382198081169E-0006 4.02067654452225E-0006 3.98773717654440E-0006 3.95500299638687E-0006 + 3.92247312564935E-0006 3.89014668802063E-0006 3.85802280927771E-0006 3.82610061728424E-0006 3.79437924198898E-0006 + 3.76285781542487E-0006 3.73153547170723E-0006 3.70041134703280E-0006 3.66948457967821E-0006 3.63875430999844E-0006 + 3.60821968042593E-0006 3.57787983546874E-0006 3.54773392170956E-0006 3.51778108780428E-0006 3.48802048448040E-0006 + 3.45845126453604E-0006 3.42907258283845E-0006 3.39988359632249E-0006 3.37088346398963E-0006 3.34207134690622E-0006 + 3.31344640820252E-0006 3.28500781307116E-0006 3.25675472876566E-0006 3.22868632459949E-0006 3.20080177194423E-0006 + 3.17310024422868E-0006 3.14558091693731E-0006 3.11824296760878E-0006 3.09108557583497E-0006 3.06410792325922E-0006 + 3.03730919357535E-0006 3.01068857252618E-0006 2.98424524790203E-0006 2.95797840953975E-0006 2.93188724932095E-0006 + 2.90597096117108E-0006 2.88022874105787E-0006 2.85465978698989E-0006 2.82926329901556E-0006 2.80403847922144E-0006 + 2.77898453173117E-0006 2.75410066270408E-0006 2.72938608033367E-0006 2.70483999484657E-0006 2.68046161850105E-0006 + 2.65625016558560E-0006 2.63220485241787E-0006 2.60832489734302E-0006 2.58460952073269E-0006 2.56105794498352E-0006 + 2.53766939451572E-0006 2.51444309577205E-0006 2.49137827721611E-0006 2.46847416933138E-0006 2.44573000461969E-0006 + 2.42314501759984E-0006 2.40071844480653E-0006 2.37844952478872E-0006 2.35633749810858E-0006 2.33438160734007E-0006 + 2.31258109706747E-0006 2.29093521388438E-0006 2.26944320639204E-0006 2.24810432519829E-0006 2.22691782291619E-0006 + 2.20588295416249E-0006 2.18499897555669E-0006 2.16426514571931E-0006 2.14368072527093E-0006 2.12324497683071E-0006 + 2.10295716501496E-0006 2.08281655643610E-0006 2.06282241970116E-0006 2.04297402541040E-0006 2.02327064615627E-0006 + 2.00371155652176E-0006 1.98429603307937E-0006 1.96502335438970E-0006 1.94589280099998E-0006 1.92690365544309E-0006 + 1.90805520223589E-0006 1.88934672787820E-0006 1.87077752085138E-0006 1.85234687161689E-0006 1.83405407261529E-0006 + 1.81589841826458E-0006 1.79787920495917E-0006 1.77999573106849E-0006 1.76224729693555E-0006 1.74463320487589E-0006 + 1.72715275917598E-0006 1.70980526609222E-0006 1.69259003384943E-0006 1.67550637263956E-0006 1.65855359462052E-0006 + 1.64173101391470E-0006 1.62503794660783E-0006 1.60847371074763E-0006 1.59203762634237E-0006 1.57572901535986E-0006 + 1.55954720172583E-0006 1.54349151132287E-0006 1.52756127198907E-0006 1.51175581351660E-0006 1.49607446765059E-0006 + 1.48051656808779E-0006 1.46508145047512E-0006 1.44976845240864E-0006 1.43457691343197E-0006 1.41950617503526E-0006 + 1.40455558065374E-0006 1.38972447566641E-0006 1.37501220739490E-0006 1.36041812510196E-0006 1.34594157999039E-0006 + 1.33158192520163E-0006 1.31733851581442E-0006 1.30321070884367E-0006 1.28919786323900E-0006 1.27529933988360E-0006 + 1.26151450159286E-0006 1.24784271311302E-0006 1.23428334112010E-0006 1.22083575421832E-0006 1.20749932293908E-0006 + 1.19427341973956E-0006 1.18115741900135E-0006 1.16815069702937E-0006 1.15525263205035E-0006 1.14246260421178E-0006 + 1.12977999558048E-0006 1.11720419014131E-0006 1.10473457379599E-0006 1.09237053436177E-0006 1.08011146157007E-0006 + 1.06795674706537E-0006 1.05590578440374E-0006 1.04395796905174E-0006 1.03211269838503E-0006 1.02036937168707E-0006 + 1.00872739014800E-0006 9.97186156863137E-0007 9.85745076831911E-0007 9.74403556956491E-0007 9.63161006040456E-0007 + 9.52016834787669E-0007 9.40970455800833E-0007 9.30021283580368E-0007 9.19168734523074E-0007 9.08412226920795E-0007 + 8.97751180959296E-0007 8.87185018716826E-0007 8.76713164162992E-0007 8.66335043157424E-0007 8.56050083448451E-0007 + 8.45857714671970E-0007 8.35757368350018E-0007 8.25748477889646E-0007 8.15830478581588E-0007 8.06002807598940E-0007 + 7.96264903996011E-0007 7.86616208706995E-0007 7.77056164544654E-0007 7.67584216199184E-0007 7.58199810236802E-0007 + 7.48902395098611E-0007 7.39691421099285E-0007 7.30566340425749E-0007 7.21526607136046E-0007 7.12571677157934E-0007 + 7.03701008287745E-0007 6.94914060189079E-0007 6.86210294391485E-0007 6.77589174289327E-0007 6.69050165140391E-0007 + 6.60592734064741E-0007 6.52216350043412E-0007 6.43920483917110E-0007 6.35704608385060E-0007 6.27568198003631E-0007 + 6.19510729185185E-0007 6.11531680196781E-0007 6.03630531158868E-0007 5.95806764044146E-0007 5.88059862676188E-0007 + 5.80389312728291E-0007 5.72794601722183E-0007 5.65275219026725E-0007 5.57830655856749E-0007 5.50460405271765E-0007 + 5.43163962174665E-0007 5.35940823310578E-0007 5.28790487265504E-0007 5.21712454465168E-0007 5.14706227173727E-0007 + 5.07771309492484E-0007 5.00907207358735E-0007 4.94113428544419E-0007 4.87389482654960E-0007 4.80734881127989E-0007 + 4.74149137232054E-0007 4.67631766065471E-0007 4.61182284554979E-0007 4.54800211454581E-0007 4.48485067344269E-0007 + 4.42236374628742E-0007 4.36053657536253E-0007 4.29936442117269E-0007 4.23884256243318E-0007 4.17896629605710E-0007 + 4.11973093714265E-0007 4.06113181896155E-0007 4.00316429294576E-0007 3.94582372867587E-0007 3.88910551386843E-0007 + 3.83300505436319E-0007 3.77751777411150E-0007 3.72263911516352E-0007 3.66836453765564E-0007 3.61468951979882E-0007 + 3.56160955786546E-0007 3.50912016617775E-0007 3.45721687709507E-0007 3.40589524100135E-0007 3.35515082629344E-0007 + 3.30497921936804E-0007 3.25537602461007E-0007 3.20633686438005E-0007 3.15785737900156E-0007 3.10993322674958E-0007 + 3.06256008383748E-0007 3.01573364440537E-0007 2.96944962050757E-0007 2.92370374210006E-0007 2.87849175702883E-0007 + 2.83380943101694E-0007 2.78965254765286E-0007 2.74601690837800E-0007 2.70289833247413E-0007 2.66029265705184E-0007 + 2.61819573703754E-0007 2.57660344516191E-0007 2.53551167194734E-0007 2.49491632569553E-0007 2.45481333247574E-0007 + 2.41519863611238E-0007 2.37606819817250E-0007 2.33741799795422E-0007 2.29924403247388E-0007 2.26154231645439E-0007 + 2.22430888231286E-0007 2.18753978014814E-0007 2.15123107772925E-0007 2.11537886048254E-0007 2.07997923148013E-0007 + 2.04502831142747E-0007 2.01052223865103E-0007 1.97645716908659E-0007 1.94282927626663E-0007 1.90963475130862E-0007 + 1.87686980290268E-0007 1.84453065729932E-0007 1.81261355829771E-0007 1.78111476723313E-0007 1.75003056296523E-0007 + 1.71935724186581E-0007 1.68909111780648E-0007 1.65922852214707E-0007 1.62976580372297E-0007 1.60069932883355E-0007 + 1.57202548122988E-0007 1.54374066210247E-0007 1.51584129006956E-0007 1.48832380116491E-0007 1.46118464882557E-0007 + 1.43442030388018E-0007 1.40802725453657E-0007 1.38200200637002E-0007 1.35634108231111E-0007 1.33104102263354E-0007 + 1.30609838494243E-0007 1.28150974416195E-0007 1.25727169252362E-0007 1.23338083955417E-0007 1.20983381206338E-0007 + 1.18662725413243E-0007 1.16375782710155E-0007 1.14122220955833E-0007 1.11901709732561E-0007 1.09713920344937E-0007 + 1.07558525818707E-0007 1.05435200899534E-0007 1.03343622051835E-0007 1.01283467457564E-0007 9.92544170150155E-0008 + 9.72561523376501E-0008 9.52883567528739E-0008 9.33507153008703E-0008 9.14429147333954E-0008 8.95646435125754E-0008 + 8.77155918097364E-0008 8.58954515042017E-0008 8.41039161820914E-0008 8.23406811351558E-0008 8.06054433595581E-0008 + 7.88979015547097E-0008 7.72177561220701E-0008 7.55647091639498E-0008 7.39384644823452E-0008 7.23387275777254E-0008 + 7.07652056478679E-0008 6.92176075866631E-0008 6.76956439829190E-0008 6.61990271191981E-0008 6.47274709706081E-0008 + 6.32806912036388E-0008 6.18584051749695E-0008 6.04603319302779E-0008 5.90861922030764E-0008 5.77357084135089E-0008 + 5.64086046671873E-0008 5.51046067540031E-0008 5.38234421469388E-0008 5.25648400009059E-0008 5.13285311515454E-0008 + 5.01142481140658E-0008 4.89217250820576E-0008 4.77506979263083E-0008 4.66009041936387E-0008 4.54720831057191E-0008 + 4.43639755578863E-0008 4.32763241179831E-0008 4.22088730251657E-0008 4.11613681887433E-0008 4.01335571869979E-0008 + 3.91251892660039E-0008 3.81360153384692E-0008 3.71657879825462E-0008 3.62142614406734E-0008 3.52811916183975E-0008 + 3.43663360831967E-0008 3.34694540633226E-0008 3.25903064466157E-0008 3.17286557793480E-0008 3.08842662650480E-0008 + 3.00569037633274E-0008 2.92463357887243E-0008 2.84523315095224E-0008 2.76746617465950E-0008 2.69130989722333E-0008 + 2.61674173089761E-0008 2.54373925284537E-0008 2.47228020502122E-0008 2.40234249405577E-0008 2.33390419113884E-0008 + 2.26694353190267E-0008 2.20143891630642E-0008 2.13736890851949E-0008 2.07471223680492E-0008 2.01344779340412E-0008 + 1.95355463441973E-0008 1.89501197970047E-0008 1.83779921272468E-0008 1.78189588048409E-0008 1.72728169336865E-0008 + 1.67393652504978E-0008 1.62184041236538E-0008 1.57097355520364E-0008 1.52131631638711E-0008 1.47284922155771E-0008 + 1.42555295906035E-0008 1.37940837982802E-0008 1.33439649726599E-0008 1.29049848713610E-0008 1.24769568744199E-0008 + 1.20596959831300E-0008 1.16530188188949E-0008 1.12567436220733E-0008 1.08706902508243E-0008 1.04946801799614E-0008 + 1.01285364997957E-0008 9.77208391499000E-0009 9.42514874340661E-0009 9.08755891495612E-0009 8.75914397045206E-0009 + 8.43973506046039E-0009 8.12916494414964E-0009 7.82726798814760E-0009 7.53388016538953E-0009 7.24883905397565E-0009 + 6.97198383602334E-0009 6.70315529652000E-0009 6.44219582218173E-0009 6.18894940030463E-0009 5.94326161762428E-0009 + 5.70497965917066E-0009 5.47395230712376E-0009 5.25002993967418E-0009 5.03306452987760E-0009 4.82290964451620E-0009 + 4.61942044295629E-0009 4.42245367600665E-0009 4.23186768478115E-0009 4.04752239955622E-0009 3.86927933863433E-0009 + 3.69700160720432E-0009 3.53055389620239E-0009 3.36980248117681E-0009 3.21461522114833E-0009 3.06486155747578E-0009 + 2.92041251271902E-0009 2.78114068950263E-0009 2.64692026938244E-0009 2.51762701171012E-0009 2.39313825249841E-0009 + 2.27333290328920E-0009 2.15809145001857E-0009 2.04729595188583E-0009 1.94083004022071E-0009 1.83857891735115E-0009 + 1.74042935547365E-0009 1.64626969552107E-0009 1.55598984603385E-0009 1.46948128202985E-0009 1.38663704387471E-0009 + 1.30735173615440E-0009 1.23152152654579E-0009 1.15904414469014E-0009 1.08981888106545E-0009 1.02374658585944E-0009 + 9.60729667844352E-0010 9.00672093250214E-0010 8.43479384640598E-0010 7.89058619787536E-0010 7.37318430547061E-0010 + 6.88169001736244E-0010 6.41522070009209E-0010 5.97290922735112E-0010 5.55390396875635E-0010 5.15736877863052E-0010 + 4.78248298479568E-0010 4.42844137735982E-0010 4.09445419751971E-0010 3.77974712636112E-0010 3.48356127366473E-0010 + 3.20515316672219E-0010 2.94379473915146E-0010 2.69877331971772E-0010 2.46939162116404E-0010 2.25496772903960E-0010 + 2.05483509053992E-0010 1.86834250334726E-0010 1.69485410447647E-0010 1.53374935912921E-0010 1.38442304954780E-0010 + 1.24628526387900E-0010 1.11876138503939E-0010 1.00129207958605E-0010 8.93333286594398E-0011 7.94356206537470E-0011 + 7.03847290173443E-0011 6.21308227435788E-0011 5.46255936328635E-0011 4.78222551828504E-0011 4.16755414788679E-0011 + 3.61417060850584E-0011 3.11785209358638E-0011 2.67452752280201E-0011 2.28027743131284E-0011 1.93133385905797E-0011 + 1.62408024010923E-0011 1.35505129206535E-0011 1.12093290549642E-0011 9.18562033441218E-0012 7.44926580948414E-0012 + 5.97165294667466E-0012 4.72567652491142E-0012 3.68573753242149E-0012 2.82774206412488E-0012 2.12910021948726E-0012 + 1.56872500086494E-0012 1.12703121234674E-0012 7.85934359063799E-0013 5.28849547000072E-0013 3.40690383278238E-0013 + 2.07867876933512E-0013 1.18289340174957E-0013 6.13572901270581E-0014 2.79683510593944E-0014 1.05121570985169E-0014 + 2.87025542484574E-0015 4.15009953669473E-0016 8.50549965556171E-0018 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 + 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 1.00000000000000E+0012 9.22928988634834E+0002 + 9.18497682817860E+0002 9.14098678325109E+0002 9.09731601923418E+0002 9.05396086317276E+0002 9.01091770040226E+0002 + 8.96818297348349E+0002 8.92575318115777E+0002 8.88362487732226E+0002 8.84179467002478E+0002 8.80025922047792E+0002 + 8.75901524209206E+0002 8.71805949952684E+0002 8.67738880776083E+0002 8.63700003117892E+0002 8.59689008267725E+0002 + 8.55705592278519E+0002 8.51749455880411E+0002 8.47820304396256E+0002 8.43917847658771E+0002 8.40041799929243E+0002 + 8.36191879817802E+0002 8.32367810205210E+0002 8.28569318166136E+0002 8.24796134893907E+0002 8.21047995626676E+0002 + 8.17324639575011E+0002 8.13625809850854E+0002 8.09951253397837E+0002 8.06300720922916E+0002 8.02673966829319E+0002 + 7.99070749150755E+0002 7.95490829486878E+0002 7.91933972939984E+0002 7.88399948052899E+0002 7.84888526748052E+0002 + 7.81399484267701E+0002 7.77932599115299E+0002 7.74487652997962E+0002 7.71064430770034E+0002 7.67662720377722E+0002 + 7.64282312804768E+0002 7.60923002019166E+0002 7.57584584920871E+0002 7.54266861290509E+0002 7.50969633739045E+0002 + 7.47692707658411E+0002 7.44435891173064E+0002 7.41198995092449E+0002 7.37981832864375E+0002 7.34784220529254E+0002 + 7.31605976675212E+0002 7.28446922394041E+0002 7.25306881237983E+0002 7.22185679177323E+0002 7.19083144558783E+0002 + 7.15999108064695E+0002 7.12933402672943E+0002 7.09885863617656E+0002 7.06856328350637E+0002 7.03844636503518E+0002 + 7.00850629850620E+0002 6.97874152272516E+0002 6.94915049720263E+0002 6.91973170180320E+0002 6.89048363640104E+0002 + 6.86140482054205E+0002 6.83249379311222E+0002 6.80374911201221E+0002 6.77516935383797E+0002 6.74675311356738E+0002 + 6.71849900425264E+0002 6.69040565671846E+0002 6.66247171926580E+0002 6.63469585738114E+0002 6.60707675345118E+0002 + 6.57961310648277E+0002 6.55230363182808E+0002 6.52514706091486E+0002 6.49814214098170E+0002 6.47128763481814E+0002 + 6.44458232050963E+0002 6.41802499118722E+0002 6.39161445478180E+0002 6.36534953378294E+0002 6.33922906500217E+0002 + 6.31325189934056E+0002 6.28741690156064E+0002 6.26172295006250E+0002 6.23616893666398E+0002 6.21075376638492E+0002 + 6.18547635723535E+0002 6.16033564000759E+0002 6.13533055807209E+0002 6.11046006717712E+0002 6.08572313525199E+0002 + 6.06111874221394E+0002 6.03664587977857E+0002 6.01230355127365E+0002 5.98809077145640E+0002 5.96400656633403E+0002 + 5.94004997298759E+0002 5.91622003939898E+0002 5.89251582428113E+0002 5.86893639691125E+0002 5.84548083696707E+0002 + 5.82214823436609E+0002 5.79893768910768E+0002 5.77584831111807E+0002 5.75287922009816E+0002 5.73002954537394E+0002 + 5.70729842574980E+0002 5.68468500936429E+0002 5.66218845354860E+0002 5.63980792468751E+0002 5.61754259808282E+0002 + 5.59539165781928E+0002 5.57335429663290E+0002 5.55142971578154E+0002 5.52961712491792E+0002 5.50791574196479E+0002 + 5.48632479299241E+0002 5.46484351209808E+0002 5.44347114128799E+0002 5.42220693036097E+0002 5.40105013679443E+0002 + 5.38000002563227E+0002 5.35905586937474E+0002 5.33821694787030E+0002 5.31748254820936E+0002 5.29685196461985E+0002 + 5.27632449836467E+0002 5.25589945764092E+0002 5.23557615748092E+0002 5.21535391965488E+0002 5.19523207257538E+0002 + 5.17520995120344E+0002 5.15528689695624E+0002 5.13546225761642E+0002 5.11573538724305E+0002 5.09610564608403E+0002 + 5.07657240049002E+0002 5.05713502282997E+0002 5.03779289140792E+0002 5.01854539038143E+0002 4.99939190968126E+0002 + 4.98033184493250E+0002 4.96136459737703E+0002 4.94248957379733E+0002 4.92370618644158E+0002 4.90501385294999E+0002 + 4.88641199628247E+0002 4.86790004464748E+0002 4.84947743143206E+0002 4.83114359513309E+0002 4.81289797928974E+0002 + 4.79474003241694E+0002 4.77666920794012E+0002 4.75868496413092E+0002 4.74078676404408E+0002 4.72297407545530E+0002 + 4.70524637080020E+0002 4.68760312711429E+0002 4.67004382597388E+0002 4.65256795343809E+0002 4.63517499999169E+0002 + 4.61786446048895E+0002 4.60063583409847E+0002 4.58348862424880E+0002 4.56642233857506E+0002 4.54943648886638E+0002 + 4.53253059101421E+0002 4.51570416496148E+0002 4.49895673465264E+0002 4.48228782798438E+0002 4.46569697675730E+0002 + 4.44918371662828E+0002 4.43274758706364E+0002 4.41638813129303E+0002 4.40010489626412E+0002 4.38389743259799E+0002 + 4.36776529454519E+0002 4.35170803994257E+0002 4.33572523017077E+0002 4.31981643011238E+0002 4.30398120811078E+0002 + 4.28821913592961E+0002 4.27252978871293E+0002 4.25691274494591E+0002 4.24136758641626E+0002 4.22589389817617E+0002 + 4.21049126850491E+0002 4.19515928887196E+0002 4.17989755390072E+0002 4.16470566133286E+0002 4.14958321199313E+0002 + 4.13452980975472E+0002 4.11954506150524E+0002 4.10462857711311E+0002 4.08977996939456E+0002 4.07499885408106E+0002 + 4.06028484978731E+0002 4.04563757797964E+0002 4.03105666294499E+0002 4.01654173176027E+0002 4.00209241426221E+0002 + 3.98770834301769E+0002 3.97338915329449E+0002 3.95913448303244E+0002 3.94494397281511E+0002 3.93081726584179E+0002 + 3.91675400789996E+0002 3.90275384733818E+0002 3.88881643503930E+0002 3.87494142439416E+0002 3.86112847127560E+0002 + 3.84737723401291E+0002 3.83368737336656E+0002 3.82005855250343E+0002 3.80649043697227E+0002 3.79298269467957E+0002 + 3.77953499586581E+0002 3.76614701308199E+0002 3.75281842116651E+0002 3.73954889722241E+0002 3.72633812059489E+0002 + 3.71318577284917E+0002 3.70009153774870E+0002 3.68705510123356E+0002 3.67407615139930E+0002 3.66115437847601E+0002 + 3.64828947480765E+0002 3.63548113483172E+0002 3.62272905505920E+0002 3.61003293405473E+0002 3.59739247241713E+0002 + 3.58480737276010E+0002 3.57227733969325E+0002 3.55980207980338E+0002 3.54738130163596E+0002 3.53501471567694E+0002 + 3.52270203433473E+0002 3.51044297192245E+0002 3.49823724464047E+0002 3.48608457055905E+0002 3.47398466960137E+0002 + 3.46193726352665E+0002 3.44994207591357E+0002 3.43799883214388E+0002 3.42610725938622E+0002 3.41426708658016E+0002 + 3.40247804442047E+0002 3.39073986534151E+0002 3.37905228350192E+0002 3.36741503476946E+0002 3.35582785670602E+0002 + 3.34429048855287E+0002 3.33280267121607E+0002 3.32136414725205E+0002 3.30997466085341E+0002 3.29863395783485E+0002 + 3.28734178561933E+0002 3.27609789322434E+0002 3.26490203124839E+0002 3.25375395185765E+0002 3.24265340877273E+0002 + 3.23160015725568E+0002 3.22059395409707E+0002 3.20963455760329E+0002 3.19872172758397E+0002 3.18785522533958E+0002 + 3.17703481364914E+0002 3.16626025675811E+0002 3.15553132036640E+0002 3.14484777161653E+0002 3.13420937908194E+0002 + 3.12361591275543E+0002 3.11306714403773E+0002 3.10256284572619E+0002 3.09210279200367E+0002 3.08168675842742E+0002 + 3.07131452191825E+0002 3.06098586074971E+0002 3.05070055453745E+0002 3.04045838422865E+0002 3.03025913209163E+0002 + 3.02010258170556E+0002 3.00998851795020E+0002 2.99991672699592E+0002 2.98988699629368E+0002 2.97989911456519E+0002 + 2.96995287179318E+0002 2.96004805921176E+0002 2.95018446929687E+0002 2.94036189575688E+0002 2.93058013352325E+0002 + 2.92083897874130E+0002 2.91113822876112E+0002 2.90147768212850E+0002 2.89185713857600E+0002 2.88227639901416E+0002 + 2.87273526552272E+0002 2.86323354134195E+0002 2.85377103086416E+0002 2.84434753962513E+0002 2.83496287429583E+0002 + 2.82561684267404E+0002 2.81630925367619E+0002 2.80703991732921E+0002 2.79780864476250E+0002 2.78861524819995E+0002 + 2.77945954095208E+0002 2.77034133740821E+0002 2.76126045302878E+0002 2.75221670433765E+0002 2.74320990891459E+0002 + 2.73423988538772E+0002 2.72530645342615E+0002 2.71640943373257E+0002 2.70754864803605E+0002 2.69872391908476E+0002 + 2.68993507063888E+0002 2.68118192746353E+0002 2.67246431532174E+0002 2.66378206096758E+0002 2.65513499213923E+0002 + 2.64652293755221E+0002 2.63794572689266E+0002 2.62940319081065E+0002 2.62089516091356E+0002 2.61242146975958E+0002 + 2.60398195085115E+0002 2.59557643862862E+0002 2.58720476846381E+0002 2.57886677665375E+0002 2.57056230041441E+0002 + 2.56229117787451E+0002 2.55405324806939E+0002 2.54584835093492E+0002 2.53767632730150E+0002 2.52953701888803E+0002 + 2.52143026829607E+0002 2.51335591900392E+0002 2.50531381536082E+0002 2.49730380258118E+0002 2.48932572673891E+0002 + 2.48137943476171E+0002 2.47346477442547E+0002 2.46558159434875E+0002 2.45772974398720E+0002 2.44990907362814E+0002 + 2.44211943438512E+0002 2.43436067819257E+0002 2.42663265780044E+0002 2.41893522676895E+0002 2.41126823946335E+0002 + 2.40363155104868E+0002 2.39602501748471E+0002 2.38844849552074E+0002 2.38090184269061E+0002 2.37338491730764E+0002 + 2.36589757845966E+0002 2.35843968600410E+0002 2.35101110056304E+0002 2.34361168351839E+0002 2.33624129700707E+0002 + 2.32889980391623E+0002 2.32158706787850E+0002 2.31430295326730E+0002 2.30704732519217E+0002 2.29982004949417E+0002 + 2.29262099274127E+0002 2.28545002222377E+0002 2.27830700594985E+0002 2.27119181264104E+0002 2.26410431172781E+0002 + 2.25704437334512E+0002 2.25001186832809E+0002 2.24300666820762E+0002 2.23602864520613E+0002 2.22907767223323E+0002 + 2.22215362288153E+0002 2.21525637142241E+0002 2.20838579280185E+0002 2.20154176263629E+0002 2.19472415720849E+0002 + 2.18793285346353E+0002 2.18116772900465E+0002 2.17442866208932E+0002 2.16771553162523E+0002 2.16102821716630E+0002 + 2.15436659890879E+0002 2.14773055768740E+0002 2.14111997497138E+0002 2.13453473286068E+0002 2.12797471408220E+0002 + 2.12143980198593E+0002 2.11492988054124E+0002 2.10844483433314E+0002 2.10198454855857E+0002 2.09554890902274E+0002 + 2.08913780213549E+0002 2.08275111490764E+0002 2.07638873494742E+0002 2.07005055045691E+0002 2.06373645022844E+0002 + 2.05744632364116E+0002 2.05118006065748E+0002 2.04493755181964E+0002 2.03871868824624E+0002 2.03252336162883E+0002 + 2.02635146422856E+0002 2.02020288887274E+0002 2.01407752895153E+0002 2.00797527841462E+0002 2.00189603176795E+0002 + 1.99583968407038E+0002 1.98980613093049E+0002 1.98379526850331E+0002 1.97780699348714E+0002 1.97184120312037E+0002 + 1.96589779517828E+0002 1.95997666796994E+0002 1.95407772033505E+0002 1.94820085164089E+0002 1.94234596177919E+0002 + 1.93651295116312E+0002 1.93070172072421E+0002 1.92491217190940E+0002 1.91914420667795E+0002 1.91339772749858E+0002 + 1.90767263734642E+0002 1.90196883970013E+0002 1.89628623853896E+0002 1.89062473833987E+0002 1.88498424407466E+0002 + 1.87936466120710E+0002 1.87376589569009E+0002 1.86818785396286E+0002 1.86263044294816E+0002 1.85709357004948E+0002 + 1.85157714314828E+0002 1.84608107060129E+0002 1.84060526123770E+0002 1.83514962435653E+0002 1.82971406972391E+0002 + 1.82429850757041E+0002 1.81890284858837E+0002 1.81352700392931E+0002 1.80817088520123E+0002 1.80283440446610E+0002 + 1.79751747423719E+0002 1.79222000747656E+0002 1.78694191759248E+0002 1.78168311843689E+0002 1.77644352430290E+0002 + 1.77122304992226E+0002 1.76602161046291E+0002 1.76083912152646E+0002 1.75567549914576E+0002 1.75053065978249E+0002 + 1.74540452032467E+0002 1.74029699808430E+0002 1.73520801079494E+0002 1.73013747660936E+0002 1.72508531409715E+0002 + 1.72005144224238E+0002 1.71503578044126E+0002 1.71003824849985E+0002 1.70505876663171E+0002 1.70009725545563E+0002 + 1.69515363599340E+0002 1.69022782966746E+0002 1.68531975829871E+0002 1.68042934410430E+0002 1.67555650969533E+0002 + 1.67070117807474E+0002 1.66586327263504E+0002 1.66104271715617E+0002 1.65623943580333E+0002 1.65145335312485E+0002 + 1.64668439405002E+0002 1.64193248388695E+0002 1.63719754832053E+0002 1.63247951341026E+0002 1.62777830558822E+0002 + 1.62309385165694E+0002 1.61842607878740E+0002 1.61377491451693E+0002 1.60914028674723E+0002 1.60452212374230E+0002 + 1.59992035412646E+0002 1.59533490688233E+0002 1.59076571134886E+0002 1.58621269721938E+0002 1.58167579453960E+0002 + 1.57715493370565E+0002 1.57265004546220E+0002 1.56816106090050E+0002 1.56368791145647E+0002 1.55923052890878E+0002 + 1.55478884537699E+0002 1.55036279331967E+0002 1.54595230553250E+0002 1.54155731514645E+0002 1.53717775562591E+0002 + 1.53281356076688E+0002 1.52846466469510E+0002 1.52413100186431E+0002 1.51981250705438E+0002 1.51550911536955E+0002 + 1.51122076223668E+0002 1.50694738340340E+0002 1.50268891493644E+0002 1.49844529321983E+0002 1.49421645495317E+0002 + 1.49000233714992E+0002 1.48580287713566E+0002 1.48161801254639E+0002 1.47744768132686E+0002 1.47329182172885E+0002 + 1.46915037230949E+0002 1.46502327192964E+0002 1.46091045975217E+0002 1.45681187524036E+0002 1.45272745815626E+0002 + 1.44865714855903E+0002 1.44460088680335E+0002 1.44055861353781E+0002 1.43653026970329E+0002 1.43251579653142E+0002 + 1.42851513554292E+0002 1.42452822854611E+0002 1.42055501763531E+0002 1.41659544518928E+0002 1.41264945386970E+0002 + 1.40871698661961E+0002 1.40479798666191E+0002 1.40089239749784E+0002 1.39700016290545E+0002 1.39312122693813E+0002 + 1.38925553392310E+0002 1.38540302845994E+0002 1.38156365541912E+0002 1.37773735994050E+0002 1.37392408743195E+0002 + 1.37012378356783E+0002 1.36633639428758E+0002 1.36256186579429E+0002 1.35880014455330E+0002 1.35505117729072E+0002 + 1.35131491099211E+0002 1.34759129290102E+0002 1.34388027051764E+0002 1.34018179159737E+0002 1.33649580414951E+0002 + 1.33282225643585E+0002 1.32916109696933E+0002 1.32551227451267E+0002 1.32187573807708E+0002 1.31825143692085E+0002 + 1.31463932054811E+0002 1.31103933870741E+0002 1.30745144139053E+0002 1.30387557883106E+0002 1.30031170150319E+0002 + 1.29675976012037E+0002 1.29321970563406E+0002 1.28969148923242E+0002 1.28617506233911E+0002 1.28267037661194E+0002 + 1.27917738394169E+0002 1.27569603645087E+0002 1.27222628649239E+0002 1.26876808664846E+0002 1.26532138972925E+0002 + 1.26188614877175E+0002 1.25846231703853E+0002 1.25504984801654E+0002 1.25164869541592E+0002 1.24825881316881E+0002 + 1.24488015542816E+0002 1.24151267656655E+0002 1.23815633117507E+0002 1.23481107406207E+0002 1.23147686025209E+0002 + 1.22815364498466E+0002 1.22484138371318E+0002 1.22154003210379E+0002 1.21824954603419E+0002 1.21496988159260E+0002 + 1.21170099507658E+0002 1.20844284299193E+0002 1.20519538205162E+0002 1.20195856917464E+0002 1.19873236148496E+0002 + 1.19551671631041E+0002 1.19231159118161E+0002 1.18911694383091E+0002 1.18593273219131E+0002 1.18275891439539E+0002 + 1.17959544877428E+0002 1.17644229385660E+0002 1.17329940836741E+0002 1.17016675122718E+0002 1.16704428155075E+0002 + 1.16393195864633E+0002 1.16082974201444E+0002 1.15773759134695E+0002 1.15465546652601E+0002 1.15158332762309E+0002 + 1.14852113489797E+0002 1.14546884879776E+0002 1.14242642995590E+0002 1.13939383919118E+0002 1.13637103750677E+0002 + 1.13335798608926E+0002 1.13035464630768E+0002 1.12736097971256E+0002 1.12437694803496E+0002 1.12140251318553E+0002 + 1.11843763725357E+0002 1.11548228250608E+0002 1.11253641138686E+0002 1.10959998651555E+0002 1.10667297068673E+0002 + 1.10375532686897E+0002 1.10084701820399E+0002 1.09794800800566E+0002 1.09505825975920E+0002 1.09217773712018E+0002 + 1.08930640391373E+0002 1.08644422413357E+0002 1.08359116194119E+0002 1.08074718166495E+0002 1.07791224779919E+0002 + 1.07508632500339E+0002 1.07226937810132E+0002 1.06946137208016E+0002 1.06666227208963E+0002 1.06387204344120E+0002 + 1.06109065160719E+0002 1.05831806221998E+0002 1.05555424107114E+0002 1.05279915411062E+0002 1.05005276744593E+0002 + 1.04731504734130E+0002 1.04458596021691E+0002 1.04186547264801E+0002 1.03915355136419E+0002 1.03645016324852E+0002 + 1.03375527533681E+0002 1.03106885481674E+0002 1.02839086902716E+0002 1.02572128545723E+0002 1.02306007174572E+0002 + 1.02040719568015E+0002 1.01776262519608E+0002 1.01512632837633E+0002 1.01249827345020E+0002 1.00987842879275E+0002 + 1.00726676292399E+0002 1.00466324450819E+0002 1.00206784235309E+0002 9.99480525409217E+0001 9.96901262769057E+0001 + 9.94330023666407E+0001 9.91766777475607E+0001 9.89211493710824E+0001 9.86664142025328E+0001 9.84124692210780E+0001 + 9.81593114196514E+0001 9.79069378048834E+0001 9.76553453970305E+0001 9.74045312299053E+0001 9.71544923508071E+0001 + 9.69052258204522E+0001 9.66567287129050E+0001 9.64089981155097E+0001 9.61620311288221E+0001 9.59158248665413E+0001 + 9.56703764554431E+0001 9.54256830353121E+0001 9.51817417588757E+0001 9.49385497917375E+0001 9.46961043123110E+0001 + 9.44544025117548E+0001 9.42134415939068E+0001 9.39732187752191E+0001 9.37337312846944E+0001 9.34949763638210E+0001 + 9.32569512665091E+0001 9.30196532590279E+0001 9.27830796199420E+0001 9.25472276400486E+0001 9.23120946223153E+0001 + 9.20776778818181E+0001 9.18439747456796E+0001 9.16109825530072E+0001 9.13786986548326E+0001 9.11471204140510E+0001 + 9.09162452053605E+0001 9.06860704152019E+0001 9.04565934416994E+0001 9.02278116946011E+0001 8.99997225952196E+0001 + 8.97723235763736E+0001 8.95456120823292E+0001 8.93195855687421E+0001 8.90942415025994E+0001 8.88695773621627E+0001 + 8.86455906369104E+0001 8.84222788274808E+0001 8.81996394456162E+0001 8.79776700141061E+0001 8.77563680667315E+0001 + 8.75357311482091E+0001 8.73157568141363E+0001 8.70964426309359E+0001 8.68777861758015E+0001 8.66597850366430E+0001 + 8.64424368120330E+0001 8.62257391111518E+0001 8.60096895537352E+0001 8.57942857700206E+0001 8.55795254006940E+0001 + 8.53654060968374E+0001 8.51519255198767E+0001 8.49390813415295E+0001 8.47268712437527E+0001 8.45152929186923E+0001 + 8.43043440686306E+0001 8.40940224059365E+0001 8.38843256530141E+0001 8.36752515422525E+0001 8.34667978159758E+0001 + 8.32589622263930E+0001 8.30517425355485E+0001 8.28451365152730E+0001 8.26391419471339E+0001 8.24337566223872E+0001 + 8.22289783419284E+0001 8.20248049162446E+0001 8.18212341653664E+0001 8.16182639188199E+0001 8.14158920155798E+0001 + 8.12141163040218E+0001 8.10129346418752E+0001 8.08123448961774E+0001 8.06123449432261E+0001 8.04129326685340E+0001 + 8.02141059667825E+0001 8.00158627417760E+0001 7.98182009063966E+0001 7.96211183825585E+0001 7.94246131011636E+0001 + 7.92286830020562E+0001 7.90333260339791E+0001 7.88385401545286E+0001 7.86443233301114E+0001 7.84506735359001E+0001 + 7.82575887557900E+0001 7.80650669823557E+0001 7.78731062168082E+0001 7.76817044689517E+0001 7.74908597571415E+0001 + 7.73005701082413E+0001 7.71108335575812E+0001 7.69216481489156E+0001 7.67330119343816E+0001 7.65449229744579E+0001 + 7.63573793379228E+0001 7.61703791018139E+0001 7.59839203513869E+0001 7.57980011800754E+0001 7.56126196894497E+0001 + 7.54277739891780E+0001 7.52434621969851E+0001 7.50596824386136E+0001 7.48764328477841E+0001 7.46937115661557E+0001 + 7.45115167432876E+0001 7.43298465365992E+0001 7.41486991113325E+0001 7.39680726405130E+0001 7.37879653049116E+0001 + 7.36083752930066E+0001 7.34293008009459E+0001 7.32507400325095E+0001 7.30726911990715E+0001 7.28951525195637E+0001 + 7.27181222204380E+0001 7.25415985356295E+0001 7.23655797065204E+0001 7.21900639819033E+0001 7.20150496179445E+0001 + 7.18405348781486E+0001 7.16665180333226E+0001 7.14929973615398E+0001 7.13199711481046E+0001 7.11474376855173E+0001 + 7.09753952734387E+0001 7.08038422186557E+0001 7.06327768350459E+0001 7.04621974435436E+0001 7.02921023721055E+0001 + 7.01224899556760E+0001 6.99533585361536E+0001 6.97847064623571E+0001 6.96165320899920E+0001 6.94488337816167E+0001 + 6.92816099066097E+0001 6.91148588411363E+0001 6.89485789681155E+0001 6.87827686771877E+0001 6.86174263646818E+0001 + 6.84525504335829E+0001 6.82881392935001E+0001 6.81241913606343E+0001 6.79607050577468E+0001 6.77976788141269E+0001 + 6.76351110655609E+0001 6.74730002543007E+0001 6.73113448290321E+0001 6.71501432448443E+0001 6.69893939631990E+0001 + 6.68290954518993E+0001 6.66692461850594E+0001 6.65098446430743E+0001 6.63508893125896E+0001 6.61923786864709E+0001 + 6.60343112637749E+0001 6.58766855497184E+0001 6.57195000556500E+0001 6.55627532990196E+0001 6.54064438033499E+0001 + 6.52505700982068E+0001 6.50951307191706E+0001 6.49401242078072E+0001 6.47855491116394E+0001 6.46314039841184E+0001 + 6.44776873845955E+0001 6.43243978782939E+0001 6.41715340362805E+0001 6.40190944354380E+0001 6.38670776584374E+0001 + 6.37154822937100E+0001 6.35643069354204E+0001 6.34135501834385E+0001 6.32632106433131E+0001 6.31132869262443E+0001 + 6.29637776490568E+0001 6.28146814341730E+0001 6.26659969095868E+0001 6.25177227088366E+0001 6.23698574709792E+0001 + 6.22223998405639E+0001 6.20753484676057E+0001 6.19287020075601E+0001 6.17824591212971E+0001 6.16366184750753E+0001 + 6.14911787405168E+0001 6.13461385945814E+0001 6.12014967195416E+0001 6.10572518029575E+0001 6.09134025376517E+0001 + 6.07699476216845E+0001 6.06268857583292E+0001 6.04842156560476E+0001 6.03419360284651E+0001 6.02000455943471E+0001 + 6.00585430775742E+0001 5.99174272071181E+0001 5.97766967170181E+0001 5.96363503463571E+0001 5.94963868392376E+0001 + 5.93568049447583E+0001 5.92176034169908E+0001 5.90787810149563E+0001 5.89403365026019E+0001 5.88022686487780E+0001 + 5.86645762272151E+0001 5.85272580165012E+0001 5.83903128000587E+0001 5.82537393661220E+0001 5.81175365077150E+0001 + 5.79817030226287E+0001 5.78462377133989E+0001 5.77111393872842E+0001 5.75764068562437E+0001 5.74420389369154E+0001 + 5.73080344505941E+0001 5.71743922232099E+0001 5.70411110853066E+0001 5.69081898720204E+0001 5.67756274230580E+0001 + 5.66434225826759E+0001 5.65115741996592E+0001 5.63800811273004E+0001 5.62489422233785E+0001 5.61181563501383E+0001 + 5.59877223742697E+0001 5.58576391668871E+0001 5.57279056035088E+0001 5.55985205640367E+0001 5.54694829327364E+0001 + 5.53407915982162E+0001 5.52124454534079E+0001 5.50844433955463E+0001 5.49567843261496E+0001 5.48294671509995E+0001 + 5.47024907801217E+0001 5.45758541277662E+0001 5.44495561123881E+0001 5.43235956566279E+0001 5.41979716872927E+0001 + 5.40726831353364E+0001 5.39477289358414E+0001 5.38231080279993E+0001 5.36988193550918E+0001 5.35748618644725E+0001 + 5.34512345075477E+0001 5.33279362397583E+0001 5.32049660205610E+0001 5.30823228134100E+0001 5.29600055857390E+0001 + 5.28380133089425E+0001 5.27163449583583E+0001 5.25949995132489E+0001 5.24739759567842E+0001 5.23532732760233E+0001 + 5.22328904618968E+0001 5.21128265091893E+0001 5.19930804165219E+0001 5.18736511863345E+0001 5.17545378248689E+0001 + 5.16357393421508E+0001 5.15172547519735E+0001 5.13990830718801E+0001 5.12812233231468E+0001 5.11636745307661E+0001 + 5.10464357234297E+0001 5.09295059335117E+0001 5.08128841970525E+0001 5.06965695537415E+0001 5.05805610469010E+0001 + 5.04648577234700E+0001 5.03494586339871E+0001 5.02343628325754E+0001 5.01195693769252E+0001 5.00050773282788E+0001 + 4.98908857514140E+0001 4.97769937146283E+0001 4.96634002897233E+0001 4.95501045519885E+0001 4.94371055801863E+0001 + 4.93244024565355E+0001 4.92119942666968E+0001 4.90998800997567E+0001 4.89880590482121E+0001 4.88765302079556E+0001 + 4.87652926782597E+0001 4.86543455617621E+0001 4.85436879644504E+0001 4.84333189956473E+0001 4.83232377679956E+0001 + 4.82134433974434E+0001 4.81039350032294E+0001 4.79947117078683E+0001 4.78857726371361E+0001 4.77771169200554E+0001 + 4.76687436888815E+0001 4.75606520790875E+0001 4.74528412293503E+0001 4.73453102815362E+0001 4.72380583806869E+0001 + 4.71310846750053E+0001 4.70243883158415E+0001 4.69179684498454E+0001 4.68118197728693E+0001 4.67059377784212E+0001 + 4.66003217754165E+0001 4.64949710743691E+0001 4.63898849873898E+0001 4.62850628281852E+0001 4.61805039120549E+0001 + 4.60762075558914E+0001 4.59721730781772E+0001 4.58683997989839E+0001 4.57648870399701E+0001 4.56616341243801E+0001 + 4.55586403770416E+0001 4.54559051243648E+0001 4.53534276943399E+0001 4.52512074165357E+0001 4.51492436220978E+0001 + 4.50475356437466E+0001 4.49460828157759E+0001 4.48448844740506E+0001 4.47439399560051E+0001 4.46432486006415E+0001 + 4.45428097485277E+0001 4.44426227417952E+0001 4.43426869241375E+0001 4.42430016408083E+0001 4.41435662386192E+0001 + 4.40443800659379E+0001 4.39454424726863E+0001 4.38467528103386E+0001 4.37483104319191E+0001 4.36501146920000E+0001 + 4.35521649467000E+0001 4.34544605536818E+0001 4.33570008721502E+0001 4.32597852628498E+0001 4.31628130880634E+0001 + 4.30660837116095E+0001 4.29695964988403E+0001 4.28733508166396E+0001 4.27773460334208E+0001 4.26815815191246E+0001 + 4.25860566452170E+0001 4.24907707846869E+0001 4.23957233120440E+0001 4.23009136033171E+0001 4.22063410360510E+0001 + 4.21120049893051E+0001 4.20179048436508E+0001 4.19240399811694E+0001 4.18304097854495E+0001 4.17370136415855E+0001 + 4.16438509361747E+0001 4.15509210573149E+0001 4.14582233946032E+0001 4.13657573391322E+0001 4.12735222834890E+0001 + 4.11815176217520E+0001 4.10897427494891E+0001 4.09981970637552E+0001 4.09068799630899E+0001 4.08157908475150E+0001 + 4.07249291185325E+0001 4.06342941791218E+0001 4.05438854337377E+0001 4.04537022883076E+0001 4.03637441502299E+0001 + 4.02740104283705E+0001 4.01845005330615E+0001 4.00952138760978E+0001 4.00061498707355E+0001 3.99173079316891E+0001 + 3.98286874751290E+0001 3.97402879186790E+0001 3.96521086814144E+0001 3.95641491838588E+0001 3.94764088479823E+0001 + 3.93888870971986E+0001 3.93015833563625E+0001 3.92144970517680E+0001 3.91276276111448E+0001 3.90409744636570E+0001 + 3.89545370398995E+0001 3.88683147718964E+0001 3.87823070930979E+0001 3.86965134383779E+0001 3.86109332440316E+0001 + 3.85255659477731E+0001 3.84404109887324E+0001 3.83554678074534E+0001 3.82707358458910E+0001 3.81862145474085E+0001 + 3.81019033567756E+0001 3.80178017201649E+0001 3.79339090851506E+0001 3.78502249007045E+0001 3.77667486171946E+0001 + 3.76834796863819E+0001 3.76004175614180E+0001 3.75175616968427E+0001 3.74349115485809E+0001 3.73524665739406E+0001 + 3.72702262316097E+0001 3.71881899816541E+0001 3.71063572855146E+0001 3.70247276060043E+0001 3.69433004073063E+0001 + 3.68620751549706E+0001 3.67810513159121E+0001 3.67002283584075E+0001 3.66196057520927E+0001 3.65391829679606E+0001 + 3.64589594783580E+0001 3.63789347569832E+0001 3.62991082788831E+0001 3.62194795204510E+0001 3.61400479594237E+0001 + 3.60608130748789E+0001 3.59817743472323E+0001 3.59029312582355E+0001 3.58242832909729E+0001 3.57458299298591E+0001 + 3.56675706606365E+0001 3.55895049703724E+0001 3.55116323474564E+0001 3.54339522815978E+0001 3.53564642638228E+0001 + 3.52791677864722E+0001 3.52020623431980E+0001 3.51251474289616E+0001 3.50484225400307E+0001 3.49718871739763E+0001 + 3.48955408296710E+0001 3.48193830072852E+0001 3.47434132082852E+0001 3.46676309354301E+0001 3.45920356927695E+0001 + 3.45166269856405E+0001 3.44414043206651E+0001 3.43663672057477E+0001 3.42915151500723E+0001 3.42168476640997E+0001 + 3.41423642595648E+0001 3.40680644494745E+0001 3.39939477481041E+0001 3.39200136709953E+0001 3.38462617349534E+0001 + 3.37726914580443E+0001 3.36993023595922E+0001 3.36260939601768E+0001 3.35530657816304E+0001 3.34802173470356E+0001 + 3.34075481807222E+0001 3.33350578082649E+0001 3.32627457564805E+0001 3.31906115534251E+0001 3.31186547283913E+0001 + 3.30468748119061E+0001 3.29752713357274E+0001 3.29038438328422E+0001 3.28325918374631E+0001 3.27615148850261E+0001 + 3.26906125121881E+0001 3.26198842568234E+0001 3.25493296580220E+0001 3.24789482560863E+0001 3.24087395925287E+0001 + 3.23387032100687E+0001 3.22688386526305E+0001 3.21991454653402E+0001 3.21296231945230E+0001 3.20602713877007E+0001 + 3.19910895935889E+0001 3.19220773620947E+0001 3.18532342443135E+0001 3.17845597925265E+0001 3.17160535601984E+0001 + 3.16477151019742E+0001 3.15795439736770E+0001 3.15115397323050E+0001 3.14437019360290E+0001 3.13760301441898E+0001 + 3.13085239172953E+0001 3.12411828170182E+0001 3.11740064061930E+0001 3.11069942488136E+0001 3.10401459100307E+0001 + 3.09734609561487E+0001 3.09069389546236E+0001 3.08405794740600E+0001 3.07743820842089E+0001 3.07083463559643E+0001 + 3.06424718613613E+0001 3.05767581735731E+0001 3.05112048669084E+0001 3.04458115168091E+0001 3.03805776998470E+0001 + 3.03155029937218E+0001 3.02505869772581E+0001 3.01858292304031E+0001 3.01212293342237E+0001 3.00567868709040E+0001 + 2.99925014237425E+0001 2.99283725771500E+0001 2.98643999166465E+0001 2.98005830288586E+0001 2.97369215015172E+0001 + 2.96734149234546E+0001 2.96100628846023E+0001 2.95468649759878E+0001 2.94838207897327E+0001 2.94209299190495E+0001 + 2.93581919582393E+0001 2.92956065026892E+0001 2.92331731488698E+0001 2.91708914943325E+0001 2.91087611377068E+0001 + 2.90467816786980E+0001 2.89849527180844E+0001 2.89232738577149E+0001 2.88617447005064E+0001 2.88003648504411E+0001 + 2.87391339125641E+0001 2.86780514929807E+0001 2.86171171988542E+0001 2.85563306384026E+0001 2.84956914208969E+0001 + 2.84351991566583E+0001 2.83748534570550E+0001 2.83146539345008E+0001 2.82546002024516E+0001 2.81946918754034E+0001 + 2.81349285688896E+0001 2.80753098994784E+0001 2.80158354847705E+0001 2.79565049433964E+0001 2.78973178950138E+0001 + 2.78382739603054E+0001 2.77793727609761E+0001 2.77206139197507E+0001 2.76619970603713E+0001 2.76035218075947E+0001 + 2.75451877871902E+0001 2.74869946259366E+0001 2.74289419516205E+0001 2.73710293930329E+0001 2.73132565799674E+0001 + 2.72556231432176E+0001 2.71981287145742E+0001 2.71407729268231E+0001 2.70835554137427E+0001 2.70264758101013E+0001 + 2.69695337516548E+0001 2.69127288751442E+0001 2.68560608182932E+0001 2.67995292198057E+0001 2.67431337193634E+0001 + 2.66868739576231E+0001 2.66307495762149E+0001 2.65747602177390E+0001 2.65189055257638E+0001 2.64631851448232E+0001 + 2.64075987204144E+0001 2.63521458989953E+0001 2.62968263279822E+0001 2.62416396557472E+0001 2.61865855316162E+0001 + 2.61316636058659E+0001 2.60768735297220E+0001 2.60222149553565E+0001 2.59676875358852E+0001 2.59132909253656E+0001 + 2.58590247787945E+0001 2.58048887521052E+0001 2.57508825021656E+0001 2.56970056867757E+0001 2.56432579646651E+0001 + 2.55896389954909E+0001 2.55361484398351E+0001 2.54827859592021E+0001 2.54295512160169E+0001 2.53764438736222E+0001 + 2.53234635962763E+0001 2.52706100491510E+0001 2.52178828983288E+0001 2.51652818108007E+0001 2.51128064544641E+0001 + 2.50604564981204E+0001 2.50082316114723E+0001 2.49561314651223E+0001 2.49041557305695E+0001 2.48523040802077E+0001 + 2.48005761873235E+0001 2.47489717260931E+0001 2.46974903715807E+0001 2.46461317997362E+0001 2.45948956873924E+0001 + 2.45437817122632E+0001 2.44927895529414E+0001 2.44419188888959E+0001 2.43911694004698E+0001 2.43405407688781E+0001 + 2.42900326762055E+0001 2.42396448054041E+0001 2.41893768402908E+0001 2.41392284655458E+0001 2.40891993667097E+0001 + 2.40392892301814E+0001 2.39894977432162E+0001 2.39398245939232E+0001 2.38902694712632E+0001 2.38408320650464E+0001 + 2.37915120659306E+0001 2.37423091654183E+0001 2.36932230558550E+0001 2.36442534304270E+0001 2.35953999831587E+0001 + 2.35466624089112E+0001 2.34980404033792E+0001 2.34495336630897E+0001 2.34011418853992E+0001 2.33528647684918E+0001 + 2.33047020113770E+0001 2.32566533138872E+0001 2.32087183766762E+0001 2.31608969012165E+0001 2.31131885897974E+0001 + 2.30655931455226E+0001 2.30181102723084E+0001 2.29707396748812E+0001 2.29234810587757E+0001 2.28763341303325E+0001 + 2.28292985966963E+0001 2.27823741658132E+0001 2.27355605464292E+0001 2.26888574480876E+0001 2.26422645811276E+0001 + 2.25957816566811E+0001 2.25494083866715E+0001 2.25031444838113E+0001 2.24569896616000E+0001 2.24109436343220E+0001 + 2.23650061170447E+0001 2.23191768256159E+0001 2.22734554766625E+0001 2.22278417875877E+0001 2.21823354765695E+0001 + 2.21369362625581E+0001 2.20916438652745E+0001 2.20464580052077E+0001 2.20013784036132E+0001 2.19564047825110E+0001 + 2.19115368646829E+0001 2.18667743736712E+0001 2.18221170337764E+0001 2.17775645700550E+0001 2.17331167083177E+0001 + 2.16887731751273E+0001 2.16445336977968E+0001 2.16003980043870E+0001 2.15563658237052E+0001 2.15124368853025E+0001 + 2.14686109194721E+0001 2.14248876572474E+0001 2.13812668303998E+0001 2.13377481714369E+0001 2.12943314136006E+0001 + 2.12510162908646E+0001 2.12078025379331E+0001 2.11646898902385E+0001 2.11216780839394E+0001 2.10787668559188E+0001 + 2.10359559437820E+0001 2.09932450858548E+0001 2.09506340211816E+0001 2.09081224895229E+0001 2.08657102313543E+0001 + 2.08233969878640E+0001 2.07811825009506E+0001 2.07390665132220E+0001 2.06970487679926E+0001 2.06551290092822E+0001 + 2.06133069818134E+0001 2.05715824310102E+0001 2.05299551029957E+0001 2.04884247445906E+0001 2.04469911033109E+0001 + 2.04056539273665E+0001 2.03644129656587E+0001 2.03232679677790E+0001 2.02822186840068E+0001 2.02412648653074E+0001 + 2.02004062633306E+0001 2.01596426304087E+0001 2.01189737195542E+0001 2.00783992844585E+0001 2.00379190794899E+0001 + 1.99975328596916E+0001 1.99572403807801E+0001 1.99170413991430E+0001 1.98769356718377E+0001 1.98369229565891E+0001 + 1.97970030117878E+0001 1.97571755964889E+0001 1.97174404704094E+0001 1.96777973939267E+0001 1.96382461280769E+0001 + 1.95987864345531E+0001 1.95594180757031E+0001 1.95201408145281E+0001 1.94809544146808E+0001 1.94418586404636E+0001 + 1.94028532568265E+0001 1.93639380293660E+0001 1.93251127243226E+0001 1.92863771085796E+0001 1.92477309496611E+0001 + 1.92091740157303E+0001 1.91707060755874E+0001 1.91323268986686E+0001 1.90940362550437E+0001 1.90558339154146E+0001 + 1.90177196511135E+0001 1.89796932341012E+0001 1.89417544369657E+0001 1.89039030329196E+0001 1.88661387957995E+0001 + 1.88284615000634E+0001 1.87908709207895E+0001 1.87533668336741E+0001 1.87159490150302E+0001 1.86786172417860E+0001 + 1.86413712914826E+0001 1.86042109422726E+0001 1.85671359729187E+0001 1.85301461627916E+0001 1.84932412918685E+0001 + 1.84564211407315E+0001 1.84196854905658E+0001 1.83830341231581E+0001 1.83464668208950E+0001 1.83099833667610E+0001 + 1.82735835443375E+0001 1.82372671378004E+0001 1.82010339319192E+0001 1.81648837120547E+0001 1.81288162641579E+0001 + 1.80928313747677E+0001 1.80569288310102E+0001 1.80211084205963E+0001 1.79853699318204E+0001 1.79497131535587E+0001 + 1.79141378752677E+0001 1.78786438869825E+0001 1.78432309793152E+0001 1.78078989434532E+0001 1.77726475711581E+0001 + 1.77374766547632E+0001 1.77023859871730E+0001 1.76673753618606E+0001 1.76324445728667E+0001 1.75975934147983E+0001 + 1.75628216828263E+0001 1.75281291726843E+0001 1.74935156806676E+0001 1.74589810036307E+0001 1.74245249389865E+0001 + 1.73901472847042E+0001 1.73558478393081E+0001 1.73216264018761E+0001 1.72874827720379E+0001 1.72534167499734E+0001 + 1.72194281364116E+0001 1.71855167326289E+0001 1.71516823404473E+0001 1.71179247622331E+0001 1.70842438008954E+0001 + 1.70506392598847E+0001 1.70171109431910E+0001 1.69836586553427E+0001 1.69502822014050E+0001 1.69169813869782E+0001 + 1.68837560181965E+0001 1.68506059017263E+0001 1.68175308447647E+0001 1.67845306550382E+0001 1.67516051408013E+0001 + 1.67187541108346E+0001 1.66859773744437E+0001 1.66532747414576E+0001 1.66206460222272E+0001 1.65880910276241E+0001 + 1.65556095690387E+0001 1.65232014583793E+0001 1.64908665080701E+0001 1.64586045310500E+0001 1.64264153407715E+0001 + 1.63942987511985E+0001 1.63622545768058E+0001 1.63302826325767E+0001 1.62983827340023E+0001 1.62665546970800E+0001 + 1.62347983383115E+0001 1.62031134747022E+0001 1.61714999237593E+0001 1.61399575034905E+0001 1.61084860324024E+0001 + 1.60770853294995E+0001 1.60457552142827E+0001 1.60144955067476E+0001 1.59833060273834E+0001 1.59521865971716E+0001 + 1.59211370375843E+0001 1.58901571705829E+0001 1.58592468186171E+0001 1.58284058046231E+0001 1.57976339520224E+0001 + 1.57669310847205E+0001 1.57362970271053E+0001 1.57057316040461E+0001 1.56752346408921E+0001 1.56448059634707E+0001 + 1.56144453980868E+0001 1.55841527715212E+0001 1.55539279110289E+0001 1.55237706443383E+0001 1.54936807996495E+0001 + 1.54636582056333E+0001 1.54337026914296E+0001 1.54038140866461E+0001 1.53739922213572E+0001 1.53442369261025E+0001 + 1.53145480318855E+0001 1.52849253701725E+0001 1.52553687728910E+0001 1.52258780724287E+0001 1.51964531016318E+0001 + 1.51670936938042E+0001 1.51377996827059E+0001 1.51085709025518E+0001 1.50794071880105E+0001 1.50503083742027E+0001 + 1.50212742967004E+0001 1.49923047915254E+0001 1.49633996951480E+0001 1.49345588444855E+0001 1.49057820769018E+0001 + 1.48770692302050E+0001 1.48484201426469E+0001 1.48198346529217E+0001 1.47913126001645E+0001 1.47628538239502E+0001 + 1.47344581642920E+0001 1.47061254616409E+0001 1.46778555568834E+0001 1.46496482913413E+0001 1.46215035067698E+0001 + 1.45934210453564E+0001 1.45654007497201E+0001 1.45374424629094E+0001 1.45095460284020E+0001 1.44817112901029E+0001 + 1.44539380923435E+0001 1.44262262798802E+0001 1.43985756978935E+0001 1.43709861919866E+0001 1.43434576081843E+0001 + 1.43159897929316E+0001 1.42885825930927E+0001 1.42612358559499E+0001 1.42339494292024E+0001 1.42067231609647E+0001 + 1.41795568997661E+0001 1.41524504945490E+0001 1.41254037946680E+0001 1.40984166498886E+0001 1.40714889103863E+0001 + 1.40446204267449E+0001 1.40178110499562E+0001 1.39910606314177E+0001 1.39643690229328E+0001 1.39377360767083E+0001 + 1.39111616453544E+0001 1.38846455818829E+0001 1.38581877397061E+0001 1.38317879726361E+0001 1.38054461348832E+0001 + 1.37791620810550E+0001 1.37529356661553E+0001 1.37267667455826E+0001 1.37006551751299E+0001 1.36746008109824E+0001 + 1.36486035097173E+0001 1.36226631283023E+0001 1.35967795240946E+0001 1.35709525548397E+0001 1.35451820786704E+0001 + 1.35194679541057E+0001 1.34938100400498E+0001 1.34682081957907E+0001 1.34426622809993E+0001 1.34171721557285E+0001 + 1.33917376804120E+0001 1.33663587158628E+0001 1.33410351232730E+0001 1.33157667642120E+0001 1.32905535006254E+0001 + 1.32653951948348E+0001 1.32402917095355E+0001 1.32152429077967E+0001 1.31902486530592E+0001 1.31653088091356E+0001 + 1.31404232402081E+0001 1.31155918108283E+0001 1.30908143859157E+0001 1.30660908307568E+0001 1.30414210110042E+0001 + 1.30168047926752E+0001 1.29922420421512E+0001 1.29677326261762E+0001 1.29432764118564E+0001 1.29188732666585E+0001 + 1.28945230584091E+0001 1.28702256552936E+0001 1.28459809258552E+0001 1.28217887389937E+0001 1.27976489639647E+0001 + 1.27735614703786E+0001 1.27495261281995E+0001 1.27255428077442E+0001 1.27016113796812E+0001 1.26777317150298E+0001 + 1.26539036851591E+0001 1.26301271617867E+0001 1.26064020169783E+0001 1.25827281231461E+0001 1.25591053530483E+0001 + 1.25355335797878E+0001 1.25120126768114E+0001 1.24885425179089E+0001 1.24651229772117E+0001 1.24417539291924E+0001 + 1.24184352486634E+0001 1.23951668107763E+0001 1.23719484910206E+0001 1.23487801652229E+0001 1.23256617095461E+0001 + 1.23025930004881E+0001 1.22795739148811E+0001 1.22566043298907E+0001 1.22336841230147E+0001 1.22108131720823E+0001 + 1.21879913552534E+0001 1.21652185510172E+0001 1.21424946381916E+0001 1.21198194959223E+0001 1.20971930036815E+0001 + 1.20746150412673E+0001 1.20520854888029E+0001 1.20296042267353E+0001 1.20071711358346E+0001 1.19847860971930E+0001 + 1.19624489922241E+0001 1.19401597026616E+0001 1.19179181105589E+0001 1.18957240982878E+0001 1.18735775485376E+0001 + 1.18514783443144E+0001 1.18294263689403E+0001 1.18074215060521E+0001 1.17854636396007E+0001 1.17635526538502E+0001 + 1.17416884333770E+0001 1.17198708630688E+0001 1.16980998281237E+0001 1.16763752140498E+0001 1.16546969066636E+0001 + 1.16330647920895E+0001 1.16114787567591E+0001 1.15899386874099E+0001 1.15684444710848E+0001 1.15469959951312E+0001 + 1.15255931471999E+0001 1.15042358152443E+0001 1.14829238875199E+0001 1.14616572525830E+0001 1.14404357992899E+0001 + 1.14192594167964E+0001 1.13981279945567E+0001 1.13770414223225E+0001 1.13559995901423E+0001 1.13350023883604E+0001 + 1.13140497076163E+0001 1.12931414388437E+0001 1.12722774732696E+0001 1.12514577024137E+0001 1.12306820180873E+0001 + 1.12099503123928E+0001 1.11892624777225E+0001 1.11686184067582E+0001 1.11480179924699E+0001 1.11274611281154E+0001 + 1.11069477072392E+0001 1.10864776236721E+0001 1.10660507715298E+0001 1.10456670452126E+0001 1.10253263394041E+0001 + 1.10050285490711E+0001 1.09847735694622E+0001 1.09645612961071E+0001 1.09443916248160E+0001 1.09242644516788E+0001 + 1.09041796730640E+0001 1.08841371856184E+0001 1.08641368862658E+0001 1.08441786722067E+0001 1.08242624409170E+0001 + 1.08043880901478E+0001 1.07845555179241E+0001 1.07647646225443E+0001 1.07450153025795E+0001 1.07253074568725E+0001 + 1.07056409845371E+0001 1.06860157849574E+0001 1.06664317577871E+0001 1.06468888029487E+0001 1.06273868206324E+0001 + 1.06079257112959E+0001 1.05885053756632E+0001 1.05691257147243E+0001 1.05497866297338E+0001 1.05304880222108E+0001 + 1.05112297939378E+0001 1.04920118469601E+0001 1.04728340835849E+0001 1.04536964063805E+0001 1.04345987181761E+0001 + 1.04155409220605E+0001 1.03965229213813E+0001 1.03775446197449E+0001 1.03586059210149E+0001 1.03397067293119E+0001 + 1.03208469490127E+0001 1.03020264847493E+0001 1.02832452414086E+0001 1.02645031241314E+0001 1.02458000383118E+0001 + 1.02271358895964E+0001 1.02085105838835E+0001 1.01899240273227E+0001 1.01713761263140E+0001 1.01528667875070E+0001 + 1.01343959178003E+0001 1.01159634243411E+0001 1.00975692145236E+0001 1.00792131959894E+0001 1.00608952766262E+0001 + 1.00426153645671E+0001 1.00243733681900E+0001 1.00061691961170E+0001 9.98800275721367E+0000 9.96987396058820E+0000 + 9.95178271559098E+0000 9.93372893181370E+0000 9.91571251908879E+0000 9.89773338748866E+0000 9.87979144732512E+0000 + 9.86188660914860E+0000 9.84401878374756E+0000 9.82618788214779E+0000 9.80839381561174E+0000 9.79063649563783E+0000 + 9.77291583395982E+0000 9.75523174254614E+0000 9.73758413359924E+0000 9.71997291955487E+0000 9.70239801308152E+0000 + 9.68485932707967E+0000 9.66735677468119E+0000 9.64989026924870E+0000 9.63245972437487E+0000 9.61506505388181E+0000 + 9.59770617182041E+0000 9.58038299246972E+0000 9.56309543033625E+0000 9.54584340015341E+0000 9.52862681688078E+0000 + 9.51144559570355E+0000 9.49429965203189E+0000 9.47718890150022E+0000 9.46011325996667E+0000 9.44307264351245E+0000 + 9.42606696844116E+0000 9.40909615127818E+0000 9.39216010877016E+0000 9.37525875788424E+0000 9.35839201580744E+0000 + 9.34155979994621E+0000 9.32476202792562E+0000 9.30799861758884E+0000 9.29126948699654E+0000 9.27457455442624E+0000 + 9.25791373837168E+0000 9.24128695754226E+0000 9.22469413086241E+0000 9.20813517747101E+0000 9.19161001672078E+0000 + 9.17511856817764E+0000 9.15866075162012E+0000 9.14223648703886E+0000 9.12584569463585E+0000 9.10948829482395E+0000 + 9.09316420822633E+0000 9.07687335567574E+0000 9.06061565821404E+0000 9.04439103709156E+0000 9.02819941376656E+0000 + 9.01204070990455E+0000 8.99591484737786E+0000 8.97982174826492E+0000 8.96376133484974E+0000 8.94773352962133E+0000 + 8.93173825527313E+0000 8.91577543470243E+0000 8.89984499100978E+0000 8.88394684749847E+0000 8.86808092767390E+0000 + 8.85224715524305E+0000 8.83644545411391E+0000 8.82067574839490E+0000 8.80493796239434E+0000 8.78923202061985E+0000 + 8.77355784777784E+0000 8.75791536877291E+0000 8.74230450870728E+0000 8.72672519288031E+0000 8.71117734678789E+0000 + 8.69566089612188E+0000 8.68017576676962E+0000 8.66472188481330E+0000 8.64929917652952E+0000 8.63390756838862E+0000 + 8.61854698705425E+0000 8.60321735938273E+0000 8.58791861242266E+0000 8.57265067341417E+0000 8.55741346978856E+0000 + 8.54220692916769E+0000 8.52703097936346E+0000 8.51188554837727E+0000 8.49677056439951E+0000 8.48168595580902E+0000 + 8.46663165117253E+0000 8.45160757924420E+0000 8.43661366896505E+0000 8.42164984946242E+0000 8.40671605004954E+0000 + 8.39181220022490E+0000 8.37693822967179E+0000 8.36209406825776E+0000 8.34727964603416E+0000 8.33249489323552E+0000 + 8.31773974027917E+0000 8.30301411776463E+0000 8.28831795647312E+0000 8.27365118736708E+0000 8.25901374158965E+0000 + 8.24440555046416E+0000 8.22982654549363E+0000 8.21527665836027E+0000 8.20075582092498E+0000 8.18626396522686E+0000 + 8.17180102348267E+0000 8.15736692808640E+0000 8.14296161160873E+0000 8.12858500679654E+0000 8.11423704657245E+0000 + 8.09991766403428E+0000 8.08562679245460E+0000 8.07136436528021E+0000 8.05713031613174E+0000 8.04292457880302E+0000 + 8.02874708726071E+0000 8.01459777564381E+0000 8.00047657826311E+0000 7.98638342960078E+0000 7.97231826430987E+0000 + 7.95828101721382E+0000 7.94427162330600E+0000 7.93029001774926E+0000 7.91633613587539E+0000 7.90240991318470E+0000 + 7.88851128534553E+0000 7.87464018819388E+0000 7.86079655773274E+0000 7.84698033013181E+0000 7.83319144172694E+0000 + 7.81942982901971E+0000 7.80569542867694E+0000 7.79198817753027E+0000 7.77830801257566E+0000 7.76465487097292E+0000 + 7.75102869004534E+0000 7.73742940727912E+0000 7.72385696032301E+0000 7.71031128698783E+0000 7.69679232524597E+0000 + 7.68330001323105E+0000 7.66983428923732E+0000 7.65639509171937E+0000 7.64298235929155E+0000 7.62959603072767E+0000 + 7.61623604496041E+0000 7.60290234108095E+0000 7.58959485833856E+0000 7.57631353614008E+0000 7.56305831404955E+0000 + 7.54982913178778E+0000 7.53662592923182E+0000 7.52344864641465E+0000 7.51029722352467E+0000 7.49717160090527E+0000 + 7.48407171905442E+0000 7.47099751862429E+0000 7.45794894042070E+0000 7.44492592540282E+0000 7.43192841468264E+0000 + 7.41895634952465E+0000 7.40600967134530E+0000 7.39308832171271E+0000 7.38019224234614E+0000 7.36732137511561E+0000 + 7.35447566204149E+0000 7.34165504529410E+0000 7.32885946719324E+0000 7.31608887020782E+0000 7.30334319695546E+0000 + 7.29062239020199E+0000 7.27792639286118E+0000 7.26525514799420E+0000 7.25260859880928E+0000 7.23998668866130E+0000 + 7.22738936105135E+0000 7.21481655962637E+0000 7.20226822817871E+0000 7.18974431064574E+0000 7.17724475110947E+0000 + 7.16476949379610E+0000 7.15231848307567E+0000 7.13989166346166E+0000 7.12748897961054E+0000 7.11511037632144E+0000 + 7.10275579853571E+0000 7.09042519133657E+0000 7.07811849994866E+0000 7.06583566973772E+0000 7.05357664621014E+0000 + 7.04134137501257E+0000 7.02912980193160E+0000 7.01694187289331E+0000 7.00477753396289E+0000 6.99263673134432E+0000 + 6.98051941137989E+0000 6.96842552054987E+0000 6.95635500547215E+0000 6.94430781290181E+0000 6.93228388973078E+0000 + 6.92028318298746E+0000 6.90830563983631E+0000 6.89635120757752E+0000 6.88441983364660E+0000 6.87251146561401E+0000 + 6.86062605118481E+0000 6.84876353819831E+0000 6.83692387462763E+0000 6.82510700857936E+0000 6.81331288829323E+0000 + 6.80154146214170E+0000 6.78979267862960E+0000 6.77806648639382E+0000 6.76636283420284E+0000 6.75468167095647E+0000 + 6.74302294568543E+0000 6.73138660755101E+0000 6.71977260584473E+0000 6.70818088998790E+0000 6.69661140953139E+0000 + 6.68506411415518E+0000 6.67353895366800E+0000 6.66203587800706E+0000 6.65055483723761E+0000 6.63909578155264E+0000 + 6.62765866127248E+0000 6.61624342684452E+0000 6.60485002884280E+0000 6.59347841796768E+0000 6.58212854504550E+0000 + 6.57080036102825E+0000 6.55949381699317E+0000 6.54820886414248E+0000 6.53694545380297E+0000 6.52570353742569E+0000 + 6.51448306658562E+0000 6.50328399298130E+0000 6.49210626843451E+0000 6.48094984488995E+0000 6.46981467441484E+0000 + 6.45870070919866E+0000 6.44760790155276E+0000 6.43653620391004E+0000 6.42548556882467E+0000 6.41445594897166E+0000 + 6.40344729714659E+0000 6.39245956626527E+0000 6.38149270936341E+0000 6.37054667959629E+0000 6.35962143023845E+0000 + 6.34871691468333E+0000 6.33783308644296E+0000 6.32696989914764E+0000 6.31612730654561E+0000 6.30530526250272E+0000 + 6.29450372100215E+0000 6.28372263614403E+0000 6.27296196214516E+0000 6.26222165333867E+0000 6.25150166417370E+0000 + 6.24080194921511E+0000 6.23012246314315E+0000 6.21946316075314E+0000 6.20882399695512E+0000 6.19820492677362E+0000 + 6.18760590534729E+0000 6.17702688792855E+0000 6.16646782988341E+0000 6.15592868669101E+0000 6.14540941394342E+0000 + 6.13490996734525E+0000 6.12443030271342E+0000 6.11397037597680E+0000 6.10353014317592E+0000 6.09310956046266E+0000 + 6.08270858409998E+0000 6.07232717046155E+0000 6.06196527603152E+0000 6.05162285740416E+0000 6.04129987128362E+0000 + 6.03099627448356E+0000 6.02071202392691E+0000 6.01044707664554E+0000 6.00020138977997E+0000 5.98997492057910E+0000 + 5.97976762639987E+0000 5.96957946470699E+0000 5.95941039307265E+0000 5.94926036917622E+0000 5.93912935080397E+0000 + 5.92901729584874E+0000 5.91892416230972E+0000 5.90884990829207E+0000 5.89879449200674E+0000 5.88875787177007E+0000 + 5.87874000600360E+0000 5.86874085323369E+0000 5.85876037209135E+0000 5.84879852131182E+0000 5.83885525973444E+0000 + 5.82893054630222E+0000 5.81902434006164E+0000 5.80913660016236E+0000 5.79926728585693E+0000 5.78941635650050E+0000 + 5.77958377155060E+0000 5.76976949056676E+0000 5.75997347321031E+0000 5.75019567924410E+0000 5.74043606853217E+0000 + 5.73069460103955E+0000 5.72097123683195E+0000 5.71126593607545E+0000 5.70157865903629E+0000 5.69190936608057E+0000 + 5.68225801767397E+0000 5.67262457438151E+0000 5.66300899686725E+0000 5.65341124589404E+0000 5.64383128232324E+0000 + 5.63426906711448E+0000 5.62472456132532E+0000 5.61519772611109E+0000 5.60568852272458E+0000 5.59619691251571E+0000 + 5.58672285693140E+0000 5.57726631751517E+0000 5.56782725590699E+0000 5.55840563384294E+0000 5.54900141315500E+0000 + 5.53961455577077E+0000 5.53024502371323E+0000 5.52089277910042E+0000 5.51155778414525E+0000 5.50224000115526E+0000 + 5.49293939253229E+0000 5.48365592077225E+0000 5.47438954846491E+0000 5.46514023829362E+0000 5.45590795303500E+0000 + 5.44669265555880E+0000 5.43749430882755E+0000 5.42831287589637E+0000 5.41914831991270E+0000 5.41000060411600E+0000 + 5.40086969183764E+0000 5.39175554650048E+0000 5.38265813161875E+0000 5.37357741079774E+0000 5.36451334773360E+0000 + 5.35546590621305E+0000 5.34643505011315E+0000 5.33742074340108E+0000 5.32842295013387E+0000 5.31944163445816E+0000 + 5.31047676060999E+0000 5.30152829291450E+0000 5.29259619578575E+0000 5.28368043372645E+0000 5.27478097132772E+0000 + 5.26589777326889E+0000 5.25703080431718E+0000 5.24818002932756E+0000 5.23934541324244E+0000 5.23052692109149E+0000 + 5.22172451799134E+0000 5.21293816914545E+0000 5.20416783984375E+0000 5.19541349546250E+0000 5.18667510146404E+0000 + 5.17795262339648E+0000 5.16924602689364E+0000 5.16055527767463E+0000 5.15188034154375E+0000 5.14322118439021E+0000 + 5.13457777218789E+0000 5.12595007099517E+0000 5.11733804695463E+0000 5.10874166629289E+0000 5.10016089532035E+0000 + 5.09159570043094E+0000 5.08304604810197E+0000 5.07451190489382E+0000 5.06599323744981E+0000 5.05749001249587E+0000 + 5.04900219684043E+0000 5.04052975737409E+0000 5.03207266106953E+0000 5.02363087498114E+0000 5.01520436624490E+0000 + 5.00679310207818E+0000 4.99839704977941E+0000 4.99001617672799E+0000 4.98165045038399E+0000 4.97329983828797E+0000 + 4.96496430806073E+0000 4.95664382740316E+0000 4.94833836409596E+0000 4.94004788599946E+0000 4.93177236105341E+0000 + 4.92351175727672E+0000 4.91526604276735E+0000 4.90703518570196E+0000 4.89881915433583E+0000 4.89061791700259E+0000 + 4.88243144211398E+0000 4.87425969815972E+0000 4.86610265370722E+0000 4.85796027740142E+0000 4.84983253796460E+0000 + 4.84171940419612E+0000 4.83362084497226E+0000 4.82553682924598E+0000 4.81746732604674E+0000 4.80941230448029E+0000 + 4.80137173372846E+0000 4.79334558304898E+0000 4.78533382177522E+0000 4.77733641931608E+0000 4.76935334515568E+0000 + 4.76138456885327E+0000 4.75343006004294E+0000 4.74548978843346E+0000 4.73756372380811E+0000 4.72965183602441E+0000 + 4.72175409501398E+0000 4.71387047078233E+0000 4.70600093340864E+0000 4.69814545304561E+0000 4.69030399991920E+0000 + 4.68247654432851E+0000 4.67466305664551E+0000 4.66686350731493E+0000 4.65907786685396E+0000 4.65130610585217E+0000 + 4.64354819497126E+0000 4.63580410494482E+0000 4.62807380657827E+0000 4.62035727074852E+0000 4.61265446840392E+0000 + 4.60496537056394E+0000 4.59728994831907E+0000 4.58962817283062E+0000 4.58198001533050E+0000 4.57434544712105E+0000 + 4.56672443957484E+0000 4.55911696413454E+0000 4.55152299231264E+0000 4.54394249569136E+0000 4.53637544592238E+0000 + 4.52882181472671E+0000 4.52128157389451E+0000 4.51375469528488E+0000 4.50624115082567E+0000 4.49874091251334E+0000 + 4.49125395241274E+0000 4.48378024265694E+0000 4.47631975544706E+0000 4.46887246305207E+0000 4.46143833780864E+0000 + 4.45401735212093E+0000 4.44660947846040E+0000 4.43921468936571E+0000 4.43183295744245E+0000 4.42446425536302E+0000 + 4.41710855586641E+0000 4.40976583175806E+0000 4.40243605590969E+0000 4.39511920125909E+0000 4.38781524080998E+0000 + 4.38052414763179E+0000 4.37324589485953E+0000 4.36598045569363E+0000 4.35872780339969E+0000 4.35148791130841E+0000 + 4.34426075281530E+0000 4.33704630138064E+0000 4.32984453052922E+0000 4.32265541385019E+0000 4.31547892499688E+0000 + 4.30831503768667E+0000 4.30116372570079E+0000 4.29402496288414E+0000 4.28689872314517E+0000 4.27978498045566E+0000 + 4.27268370885058E+0000 4.26559488242793E+0000 4.25851847534853E+0000 4.25145446183593E+0000 4.24440281617618E+0000 + 4.23736351271769E+0000 4.23033652587108E+0000 4.22332183010895E+0000 4.21631939996584E+0000 4.20932921003792E+0000 + 4.20235123498297E+0000 4.19538544952011E+0000 4.18843182842967E+0000 4.18149034655308E+0000 4.17456097879261E+0000 + 4.16764370011133E+0000 4.16073848553284E+0000 4.15384531014118E+0000 4.14696414908063E+0000 4.14009497755561E+0000 + 4.13323777083044E+0000 4.12639250422925E+0000 4.11955915313580E+0000 4.11273769299331E+0000 4.10592809930435E+0000 + 4.09913034763058E+0000 4.09234441359276E+0000 4.08557027287042E+0000 4.07880790120184E+0000 4.07205727438380E+0000 + 4.06531836827151E+0000 4.05859115877841E+0000 4.05187562187599E+0000 4.04517173359372E+0000 4.03847947001879E+0000 + 4.03179880729609E+0000 4.02512972162793E+0000 4.01847218927398E+0000 4.01182618655108E+0000 4.00519168983308E+0000 + 3.99856867555073E+0000 3.99195712019151E+0000 3.98535700029945E+0000 3.97876829247507E+0000 3.97219097337512E+0000 + 3.96562501971252E+0000 3.95907040825616E+0000 3.95252711583080E+0000 3.94599511931690E+0000 3.93947439565043E+0000 + 3.93296492182283E+0000 3.92646667488076E+0000 3.91997963192602E+0000 3.91350377011537E+0000 3.90703906666042E+0000 + 3.90058549882747E+0000 3.89414304393734E+0000 3.88771167936529E+0000 3.88129138254082E+0000 3.87488213094755E+0000 + 3.86848390212309E+0000 3.86209667365889E+0000 3.85572042320009E+0000 3.84935512844537E+0000 3.84300076714689E+0000 + 3.83665731711002E+0000 3.83032475619332E+0000 3.82400306230831E+0000 3.81769221341943E+0000 3.81139218754380E+0000 + 3.80510296275114E+0000 3.79882451716362E+0000 3.79255682895576E+0000 3.78629987635421E+0000 3.78005363763771E+0000 + 3.77381809113688E+0000 3.76759321523411E+0000 3.76137898836345E+0000 3.75517538901044E+0000 3.74898239571200E+0000 + 3.74279998705630E+0000 3.73662814168258E+0000 3.73046683828108E+0000 3.72431605559286E+0000 3.71817577240972E+0000 + 3.71204596757399E+0000 3.70592661997847E+0000 3.69981770856630E+0000 3.69371921233073E+0000 3.68763111031514E+0000 + 3.68155338161280E+0000 3.67548600536674E+0000 3.66942896076973E+0000 3.66338222706399E+0000 3.65734578354123E+0000 + 3.65131960954236E+0000 3.64530368445751E+0000 3.63929798772578E+0000 3.63330249883519E+0000 3.62731719732255E+0000 + 3.62134206277327E+0000 3.61537707482131E+0000 3.60942221314901E+0000 3.60347745748697E+0000 3.59754278761396E+0000 + 3.59161818335673E+0000 3.58570362458995E+0000 3.57979909123605E+0000 3.57390456326509E+0000 3.56802002069469E+0000 + 3.56214544358984E+0000 3.55628081206281E+0000 3.55042610627301E+0000 3.54458130642694E+0000 3.53874639277794E+0000 + 3.53292134562619E+0000 3.52710614531850E+0000 3.52130077224828E+0000 3.51550520685531E+0000 3.50971942962572E+0000 + 3.50394342109181E+0000 3.49817716183197E+0000 3.49242063247050E+0000 3.48667381367757E+0000 3.48093668616906E+0000 + 3.47520923070643E+0000 3.46949142809662E+0000 3.46378325919195E+0000 3.45808470488997E+0000 3.45239574613335E+0000 + 3.44671636390978E+0000 3.44104653925187E+0000 3.43538625323696E+0000 3.42973548698708E+0000 3.42409422166883E+0000 + 3.41846243849320E+0000 3.41284011871554E+0000 3.40722724363539E+0000 3.40162379459638E+0000 3.39602975298610E+0000 + 3.39044510023605E+0000 3.38486981782146E+0000 3.37930388726118E+0000 3.37374729011763E+0000 3.36820000799661E+0000 + 3.36266202254724E+0000 3.35713331546183E+0000 3.35161386847576E+0000 3.34610366336742E+0000 3.34060268195803E+0000 + 3.33511090611155E+0000 3.32962831773460E+0000 3.32415489877634E+0000 3.31869063122834E+0000 3.31323549712447E+0000 + 3.30778947854083E+0000 3.30235255759560E+0000 3.29692471644897E+0000 3.29150593730297E+0000 3.28609620240144E+0000 + 3.28069549402988E+0000 3.27530379451533E+0000 3.26992108622632E+0000 3.26454735157268E+0000 3.25918257300550E+0000 + 3.25382673301703E+0000 3.24847981414051E+0000 3.24314179895013E+0000 3.23781267006089E+0000 3.23249241012851E+0000 + 3.22718100184931E+0000 3.22187842796012E+0000 3.21658467123818E+0000 3.21129971450104E+0000 3.20602354060642E+0000 + 3.20075613245215E+0000 3.19549747297604E+0000 3.19024754515581E+0000 3.18500633200895E+0000 3.17977381659263E+0000 + 3.17454998200362E+0000 3.16933481137816E+0000 3.16412828789187E+0000 3.15893039475967E+0000 3.15374111523564E+0000 + 3.14856043261295E+0000 3.14338833022375E+0000 3.13822479143906E+0000 3.13306979966870E+0000 3.12792333836116E+0000 + 3.12278539100352E+0000 3.11765594112134E+0000 3.11253497227857E+0000 3.10742246807746E+0000 3.10231841215843E+0000 + 3.09722278820001E+0000 3.09213557991872E+0000 3.08705677106900E+0000 3.08198634544306E+0000 3.07692428687084E+0000 + 3.07187057921988E+0000 3.06682520639526E+0000 3.06178815233944E+0000 3.05675940103222E+0000 3.05173893649067E+0000 + 3.04672674276892E+0000 3.04172280395821E+0000 3.03672710418668E+0000 3.03173962761933E+0000 3.02676035845794E+0000 + 3.02178928094093E+0000 3.01682637934331E+0000 3.01187163797654E+0000 3.00692504118851E+0000 3.00198657336335E+0000 + 2.99705621892143E+0000 2.99213396231922E+0000 2.98721978804919E+0000 2.98231368063976E+0000 2.97741562465515E+0000 + 2.97252560469537E+0000 2.96764360539603E+0000 2.96276961142835E+0000 2.95790360749898E+0000 2.95304557834998E+0000 + 2.94819550875869E+0000 2.94335338353765E+0000 2.93851918753450E+0000 2.93369290563194E+0000 2.92887452274757E+0000 + 2.92406402383386E+0000 2.91926139387800E+0000 2.91446661790189E+0000 2.90967968096200E+0000 2.90490056814927E+0000 + 2.90012926458909E+0000 2.89536575544112E+0000 2.89061002589929E+0000 2.88586206119166E+0000 2.88112184658033E+0000 + 2.87638936736141E+0000 2.87166460886489E+0000 2.86694755645452E+0000 2.86223819552782E+0000 2.85753651151589E+0000 + 2.85284248988341E+0000 2.84815611612851E+0000 2.84347737578269E+0000 2.83880625441073E+0000 2.83414273761065E+0000 + 2.82948681101356E+0000 2.82483846028361E+0000 2.82019767111792E+0000 2.81556442924650E+0000 2.81093872043209E+0000 + 2.80632053047019E+0000 2.80170984518890E+0000 2.79710665044886E+0000 2.79251093214318E+0000 2.78792267619733E+0000 + 2.78334186856909E+0000 2.77876849524843E+0000 2.77420254225749E+0000 2.76964399565042E+0000 2.76509284151337E+0000 + 2.76054906596436E+0000 2.75601265515323E+0000 2.75148359526154E+0000 2.74696187250250E+0000 2.74244747312090E+0000 + 2.73794038339300E+0000 2.73344058962647E+0000 2.72894807816034E+0000 2.72446283536484E+0000 2.71998484764143E+0000 + 2.71551410142262E+0000 2.71105058317195E+0000 2.70659427938391E+0000 2.70214517658382E+0000 2.69770326132781E+0000 + 2.69326852020270E+0000 2.68884093982594E+0000 2.68442050684552E+0000 2.68000720793993E+0000 2.67560102981803E+0000 + 2.67120195921899E+0000 2.66680998291227E+0000 2.66242508769745E+0000 2.65804726040422E+0000 2.65367648789229E+0000 + 2.64931275705129E+0000 2.64495605480075E+0000 2.64060636808995E+0000 2.63626368389791E+0000 2.63192798923329E+0000 + 2.62759927113430E+0000 2.62327751666865E+0000 2.61896271293347E+0000 2.61465484705524E+0000 2.61035390618967E+0000 + 2.60605987752172E+0000 2.60177274826545E+0000 2.59749250566396E+0000 2.59321913698933E+0000 2.58895262954256E+0000 + 2.58469297065345E+0000 2.58044014768061E+0000 2.57619414801127E+0000 2.57195495906133E+0000 2.56772256827521E+0000 + 2.56349696312580E+0000 2.55927813111441E+0000 2.55506605977063E+0000 2.55086073665237E+0000 2.54666214934569E+0000 + 2.54247028546477E+0000 2.53828513265184E+0000 2.53410667857710E+0000 2.52993491093867E+0000 2.52576981746250E+0000 + 2.52161138590228E+0000 2.51745960403943E+0000 2.51331445968299E+0000 2.50917594066955E+0000 2.50504403486318E+0000 + 2.50091873015538E+0000 2.49680001446501E+0000 2.49268787573821E+0000 2.48858230194832E+0000 2.48448328109582E+0000 + 2.48039080120831E+0000 2.47630485034035E+0000 2.47222541657349E+0000 2.46815248801612E+0000 2.46408605280344E+0000 + 2.46002609909742E+0000 2.45597261508667E+0000 2.45192558898644E+0000 2.44788500903851E+0000 2.44385086351111E+0000 + 2.43982314069892E+0000 2.43580182892293E+0000 2.43178691653042E+0000 2.42777839189489E+0000 2.42377624341597E+0000 + 2.41978045951939E+0000 2.41579102865687E+0000 2.41180793930610E+0000 2.40783117997065E+0000 2.40386073917991E+0000 + 2.39989660548904E+0000 2.39593876747886E+0000 2.39198721375585E+0000 2.38804193295206E+0000 2.38410291372499E+0000 + 2.38017014475763E+0000 2.37624361475833E+0000 2.37232331246074E+0000 2.36840922662376E+0000 2.36450134603147E+0000 + 2.36059965949310E+0000 2.35670415584290E+0000 2.35281482394014E+0000 2.34893165266901E+0000 2.34505463093859E+0000 + 2.34118374768275E+0000 2.33731899186013E+0000 2.33346035245404E+0000 2.32960781847240E+0000 2.32576137894775E+0000 + 2.32192102293707E+0000 2.31808673952182E+0000 2.31425851780782E+0000 2.31043634692523E+0000 2.30662021602844E+0000 + 2.30281011429608E+0000 2.29900603093088E+0000 2.29520795515967E+0000 2.29141587623330E+0000 2.28762978342656E+0000 + 2.28384966603817E+0000 2.28007551339066E+0000 2.27630731483036E+0000 2.27254505972732E+0000 2.26878873747524E+0000 + 2.26503833749144E+0000 2.26129384921678E+0000 2.25755526211561E+0000 2.25382256567569E+0000 2.25009574940817E+0000 + 2.24637480284751E+0000 2.24265971555142E+0000 2.23895047710080E+0000 2.23524707709970E+0000 2.23154950517525E+0000 + 2.22785775097760E+0000 2.22417180417988E+0000 2.22049165447810E+0000 2.21681729159115E+0000 2.21314870526071E+0000 + 2.20948588525119E+0000 2.20582882134970E+0000 2.20217750336597E+0000 2.19853192113230E+0000 2.19489206450348E+0000 + 2.19125792335681E+0000 2.18762948759196E+0000 2.18400674713096E+0000 2.18038969191812E+0000 2.17677831191998E+0000 + 2.17317259712530E+0000 2.16957253754493E+0000 2.16597812321181E+0000 2.16238934418089E+0000 2.15880619052909E+0000 + 2.15522865235523E+0000 2.15165671977999E+0000 2.14809038294584E+0000 2.14452963201701E+0000 2.14097445717942E+0000 + 2.13742484864062E+0000 2.13388079662976E+0000 2.13034229139749E+0000 2.12680932321598E+0000 2.12328188237879E+0000 + 2.11975995920087E+0000 2.11624354401849E+0000 2.11273262718918E+0000 2.10922719909168E+0000 2.10572725012590E+0000 + 2.10223277071284E+0000 2.09874375129460E+0000 2.09526018233422E+0000 2.09178205431576E+0000 2.08830935774413E+0000 + 2.08484208314511E+0000 2.08138022106527E+0000 2.07792376207194E+0000 2.07447269675313E+0000 2.07102701571750E+0000 + 2.06758670959430E+0000 2.06415176903332E+0000 2.06072218470485E+0000 2.05729794729961E+0000 2.05387904752870E+0000 + 2.05046547612360E+0000 2.04705722383602E+0000 2.04365428143796E+0000 2.04025663972158E+0000 2.03686428949920E+0000 + 2.03347722160320E+0000 2.03009542688602E+0000 2.02671889622010E+0000 2.02334762049779E+0000 2.01998159063136E+0000 + 2.01662079755291E+0000 2.01326523221433E+0000 2.00991488558726E+0000 2.00656974866304E+0000 2.00322981245264E+0000 + 1.99989506798667E+0000 1.99656550631522E+0000 1.99324111850795E+0000 1.98992189565395E+0000 1.98660782886169E+0000 + 1.98329890925906E+0000 1.97999512799318E+0000 1.97669647623051E+0000 1.97340294515666E+0000 1.97011452597646E+0000 + 1.96683120991383E+0000 1.96355298821177E+0000 1.96027985213232E+0000 1.95701179295647E+0000 1.95374880198417E+0000 + 1.95049087053426E+0000 1.94723798994438E+0000 1.94399015157102E+0000 1.94074734678935E+0000 1.93750956699331E+0000 + 1.93427680359545E+0000 1.93104904802693E+0000 1.92782629173750E+0000 1.92460852619540E+0000 1.92139574288735E+0000 + 1.91818793331850E+0000 1.91498508901238E+0000 1.91178720151085E+0000 1.90859426237406E+0000 1.90540626318042E+0000 + 1.90222319552651E+0000 1.89904505102710E+0000 1.89587182131505E+0000 1.89270349804128E+0000 1.88954007287476E+0000 + 1.88638153750240E+0000 1.88322788362908E+0000 1.88007910297753E+0000 1.87693518728837E+0000 1.87379612831998E+0000 + 1.87066191784852E+0000 1.86753254766787E+0000 1.86440800958954E+0000 1.86128829544271E+0000 1.85817339707413E+0000 + 1.85506330634808E+0000 1.85195801514634E+0000 1.84885751536816E+0000 1.84576179893018E+0000 1.84267085776641E+0000 + 1.83958468382820E+0000 1.83650326908417E+0000 1.83342660552018E+0000 1.83035468513930E+0000 1.82728749996175E+0000 + 1.82422504202485E+0000 1.82116730338300E+0000 1.81811427610764E+0000 1.81506595228718E+0000 1.81202232402699E+0000 + 1.80898338344934E+0000 1.80594912269336E+0000 1.80291953391499E+0000 1.79989460928697E+0000 1.79687434099878E+0000 + 1.79385872125658E+0000 1.79084774228319E+0000 1.78784139631805E+0000 1.78483967561717E+0000 1.78184257245312E+0000 + 1.77885007911491E+0000 1.77586218790807E+0000 1.77287889115448E+0000 1.76990018119243E+0000 1.76692605037653E+0000 + 1.76395649107768E+0000 1.76099149568304E+0000 1.75803105659598E+0000 1.75507516623603E+0000 1.75212381703887E+0000 + 1.74917700145627E+0000 1.74623471195603E+0000 1.74329694102199E+0000 1.74036368115398E+0000 1.73743492486770E+0000 + 1.73451066469483E+0000 1.73159089318284E+0000 1.72867560289506E+0000 1.72576478641058E+0000 1.72285843632424E+0000 + 1.71995654524657E+0000 1.71705910580378E+0000 1.71416611063769E+0000 1.71127755240572E+0000 1.70839342378084E+0000 + 1.70551371745151E+0000 1.70263842612169E+0000 1.69976754251076E+0000 1.69690105935350E+0000 1.69403896940004E+0000 + 1.69118126541584E+0000 1.68832794018165E+0000 1.68547898649347E+0000 1.68263439716248E+0000 1.67979416501506E+0000 + 1.67695828289271E+0000 1.67412674365204E+0000 1.67129954016472E+0000 1.66847666531743E+0000 1.66565811201183E+0000 + 1.66284387316457E+0000 1.66003394170717E+0000 1.65722831058606E+0000 1.65442697276248E+0000 1.65162992121249E+0000 + 1.64883714892693E+0000 1.64604864891135E+0000 1.64326441418600E+0000 1.64048443778579E+0000 1.63770871276026E+0000 + 1.63493723217355E+0000 1.63216998910432E+0000 1.62940697664577E+0000 1.62664818790556E+0000 1.62389361600583E+0000 + 1.62114325408310E+0000 1.61839709528826E+0000 1.61565513278658E+0000 1.61291735975758E+0000 1.61018376939509E+0000 + 1.60745435490716E+0000 1.60472910951603E+0000 1.60200802645814E+0000 1.59929109898401E+0000 1.59657832035829E+0000 + 1.59386968385967E+0000 1.59116518278090E+0000 1.58846481042868E+0000 1.58576856012369E+0000 1.58307642520054E+0000 + 1.58038839900772E+0000 1.57770447490757E+0000 1.57502464627625E+0000 1.57234890650373E+0000 1.56967724899372E+0000 + 1.56700966716363E+0000 1.56434615444461E+0000 1.56168670428140E+0000 1.55903131013240E+0000 1.55637996546959E+0000 + 1.55373266377849E+0000 1.55108939855816E+0000 1.54845016332114E+0000 1.54581495159342E+0000 1.54318375691439E+0000 + 1.54055657283687E+0000 1.53793339292702E+0000 1.53531421076430E+0000 1.53269901994149E+0000 1.53008781406462E+0000 + 1.52748058675293E+0000 1.52487733163887E+0000 1.52227804236804E+0000 1.51968271259918E+0000 1.51709133600411E+0000 + 1.51450390626774E+0000 1.51192041708797E+0000 1.50934086217575E+0000 1.50676523525496E+0000 1.50419353006244E+0000 + 1.50162574034792E+0000 1.49906185987401E+0000 1.49650188241616E+0000 1.49394580176264E+0000 1.49139361171448E+0000 + 1.48884530608548E+0000 1.48630087870215E+0000 1.48376032340366E+0000 1.48122363404189E+0000 1.47869080448128E+0000 + 1.47616182859891E+0000 1.47363670028440E+0000 1.47111541343990E+0000 1.46859796198009E+0000 1.46608433983208E+0000 + 1.46357454093544E+0000 1.46106855924214E+0000 1.45856638871655E+0000 1.45606802333536E+0000 1.45357345708760E+0000 + 1.45108268397458E+0000 1.44859569800986E+0000 1.44611249321924E+0000 1.44363306364072E+0000 1.44115740332446E+0000 + 1.43868550633277E+0000 1.43621736674003E+0000 1.43375297863277E+0000 1.43129233610950E+0000 1.42883543328079E+0000 + 1.42638226426920E+0000 1.42393282320922E+0000 1.42148710424732E+0000 1.41904510154183E+0000 1.41660680926298E+0000 + 1.41417222159283E+0000 1.41174133272527E+0000 1.40931413686596E+0000 1.40689062823234E+0000 1.40447080105356E+0000 + 1.40205464957049E+0000 1.39964216803564E+0000 1.39723335071320E+0000 1.39482819187896E+0000 1.39242668582029E+0000 + 1.39002882683612E+0000 1.38763460923692E+0000 1.38524402734467E+0000 1.38285707549279E+0000 1.38047374802617E+0000 + 1.37809403930113E+0000 1.37571794368535E+0000 1.37334545555789E+0000 1.37097656930914E+0000 1.36861127934079E+0000 + 1.36624958006583E+0000 1.36389146590848E+0000 1.36153693130419E+0000 1.35918597069961E+0000 1.35683857855254E+0000 + 1.35449474933196E+0000 1.35215447751793E+0000 1.34981775760162E+0000 1.34748458408523E+0000 1.34515495148202E+0000 + 1.34282885431625E+0000 1.34050628712316E+0000 1.33818724444894E+0000 1.33587172085069E+0000 1.33355971089644E+0000 + 1.33125120916507E+0000 1.32894621024631E+0000 1.32664470874070E+0000 1.32434669925960E+0000 1.32205217642511E+0000 + 1.31976113487007E+0000 1.31747356923806E+0000 1.31518947418331E+0000 1.31290884437074E+0000 1.31063167447590E+0000 + 1.30835795918493E+0000 1.30608769319457E+0000 1.30382087121212E+0000 1.30155748795540E+0000 1.29929753815275E+0000 + 1.29704101654297E+0000 1.29478791787533E+0000 1.29253823690953E+0000 1.29029196841565E+0000 1.28804910717418E+0000 + 1.28580964797594E+0000 1.28357358562209E+0000 1.28134091492408E+0000 1.27911163070364E+0000 1.27688572779276E+0000 + 1.27466320103365E+0000 1.27244404527871E+0000 1.27022825539054E+0000 1.26801582624187E+0000 1.26580675271557E+0000 + 1.26360102970461E+0000 1.26139865211203E+0000 1.25919961485093E+0000 1.25700391284443E+0000 1.25481154102565E+0000 + 1.25262249433772E+0000 1.25043676773367E+0000 1.24825435617652E+0000 1.24607525463915E+0000 1.24389945810434E+0000 + 1.24172696156473E+0000 1.23955776002279E+0000 1.23739184849079E+0000 1.23522922199079E+0000 1.23306987555462E+0000 + 1.23091380422385E+0000 1.22876100304973E+0000 1.22661146709325E+0000 1.22446519142502E+0000 1.22232217112533E+0000 + 1.22018240128405E+0000 1.21804587700069E+0000 1.21591259338429E+0000 1.21378254555345E+0000 1.21165572863633E+0000 + 1.20953213777053E+0000 1.20741176810317E+0000 1.20529461479083E+0000 1.20318067299949E+0000 1.20106993790457E+0000 + 1.19896240469084E+0000 1.19685806855247E+0000 1.19475692469295E+0000 1.19265896832510E+0000 1.19056419467101E+0000 + 1.18847259896207E+0000 1.18638417643889E+0000 1.18429892235134E+0000 1.18221683195846E+0000 1.18013790052850E+0000 + 1.17806212333883E+0000 1.17598949567601E+0000 1.17392001283566E+0000 1.17185367012253E+0000 1.16979046285042E+0000 + 1.16773038634217E+0000 1.16567343592966E+0000 1.16361960695378E+0000 1.16156889476438E+0000 1.15952129472027E+0000 + 1.15747680218921E+0000 1.15543541254788E+0000 1.15339712118181E+0000 1.15136192348547E+0000 1.14932981486210E+0000 + 1.14730079072384E+0000 1.14527484649160E+0000 1.14325197759506E+0000 1.14123217947271E+0000 1.13921544757172E+0000 + 1.13720177734805E+0000 1.13519116426628E+0000 1.13318360379974E+0000 1.13117909143039E+0000 1.12917762264879E+0000 + 1.12717919295417E+0000 1.12518379785430E+0000 1.12319143286557E+0000 1.12120209351289E+0000 1.11921577532970E+0000 + 1.11723247385797E+0000 1.11525218464813E+0000 1.11327490325911E+0000 1.11130062525823E+0000 1.10932934622131E+0000 + 1.10736106173252E+0000 1.10539576738442E+0000 1.10343345877797E+0000 1.10147413152242E+0000 1.09951778123539E+0000 + 1.09756440354277E+0000 1.09561399407876E+0000 1.09366654848578E+0000 1.09172206241455E+0000 1.08978053152395E+0000 + 1.08784195148110E+0000 1.08590631796129E+0000 1.08397362664797E+0000 1.08204387323273E+0000 1.08011705341528E+0000 + 1.07819316290344E+0000 1.07627219741310E+0000 1.07435415266822E+0000 1.07243902440078E+0000 1.07052680835082E+0000 + 1.06861750026634E+0000 1.06671109590335E+0000 1.06480759102582E+0000 1.06290698140565E+0000 1.06100926282268E+0000 + 1.05911443106464E+0000 1.05722248192716E+0000 1.05533341121371E+0000 1.05344721473563E+0000 1.05156388831209E+0000 + 1.04968342777004E+0000 1.04780582894425E+0000 1.04593108767723E+0000 1.04405919981927E+0000 1.04219016122837E+0000 + 1.04032396777025E+0000 1.03846061531833E+0000 1.03660009975368E+0000 1.03474241696506E+0000 1.03288756284885E+0000 + 1.03103553330903E+0000 1.02918632425722E+0000 1.02733993161258E+0000 1.02549635130186E+0000 1.02365557925934E+0000 + 1.02181761142683E+0000 1.01998244375365E+0000 1.01815007219660E+0000 1.01632049271996E+0000 1.01449370129544E+0000 + 1.01266969390221E+0000 1.01084846652684E+0000 1.00903001516330E+0000 1.00721433581293E+0000 1.00540142448445E+0000 + 1.00359127719391E+0000 1.00178388996468E+0000 9.99979258827450E-0001 9.98177379820177E-0001 9.96378248988107E-0001 + 9.94581862383730E-0001 9.92788216066775E-0001 9.90997306104184E-0001 9.89209128570101E-0001 9.87423679545855E-0001 + 9.85640955119927E-0001 9.83860951387954E-0001 9.82083664452700E-0001 9.80309090424038E-0001 9.78537225418941E-0001 + 9.76768065561442E-0001 9.75001606982661E-0001 9.73237845820727E-0001 9.71476778220811E-0001 9.69718400335101E-0001 + 9.67962708322743E-0001 9.66209698349893E-0001 9.64459366589632E-0001 9.62711709221999E-0001 9.60966722433938E-0001 + 9.59224402419307E-0001 9.57484745378858E-0001 9.55747747520198E-0001 9.54013405057798E-0001 9.52281714212955E-0001 + 9.50552671213797E-0001 9.48826272295258E-0001 9.47102513699033E-0001 9.45381391673621E-0001 9.43662902474243E-0001 + 9.41947042362883E-0001 9.40233807608219E-0001 9.38523194485655E-0001 9.36815199277268E-0001 9.35109818271807E-0001 + 9.33407047764680E-0001 9.31706884057917E-0001 9.30009323460197E-0001 9.28314362286779E-0001 9.26621996859519E-0001 + 9.24932223506850E-0001 9.23245038563746E-0001 9.21560438371746E-0001 9.19878419278885E-0001 9.18198977639724E-0001 + 9.16522109815315E-0001 9.14847812173179E-0001 9.13176081087303E-0001 9.11506912938101E-0001 9.09840304112445E-0001 + 9.08176251003599E-0001 9.06514750011223E-0001 9.04855797541369E-0001 9.03199390006442E-0001 9.01545523825209E-0001 + 8.99894195422754E-0001 8.98245423520496E-0001 8.96600805057968E-0001 8.94961299580162E-0001 8.93326872313418E-0001 + 8.91697488711662E-0001 8.90073114470498E-0001 8.88453715534491E-0001 8.86839258067538E-0001 8.85229708495680E-0001 + 8.83625033461059E-0001 8.82025199836011E-0001 8.80430174757708E-0001 8.78839925546479E-0001 8.77254419802042E-0001 + 8.75673625320423E-0001 8.74097510138184E-0001 8.72526042526006E-0001 8.70959190961687E-0001 8.69396924167565E-0001 + 8.67839211076657E-0001 8.66286020849514E-0001 8.64737322878761E-0001 8.63193086749682E-0001 8.61653282294164E-0001 + 8.60117879552656E-0001 8.58586848771802E-0001 8.57060160433701E-0001 8.55537785219185E-0001 8.54019694032955E-0001 + 8.52505857987469E-0001 8.50996248396433E-0001 8.49490836810981E-0001 8.47989594964989E-0001 8.46492494805732E-0001 + 8.44999508502540E-0001 8.43510608405829E-0001 8.42025767095710E-0001 8.40544957339626E-0001 8.39068152110638E-0001 + 8.37595324589174E-0001 8.36126448139926E-0001 8.34661496359155E-0001 8.33200443001858E-0001 8.31743262045654E-0001 + 8.30289927660755E-0001 8.28840414199250E-0001 8.27394696231404E-0001 8.25952748490691E-0001 8.24514545925311E-0001 + 8.23080063670876E-0001 8.21649277036893E-0001 8.20222161536178E-0001 8.18798692872746E-0001 8.17378846919961E-0001 + 8.15962599762454E-0001 8.14549927635454E-0001 8.13140806984734E-0001 8.11735214432278E-0001 8.10333126771044E-0001 + 8.08934520994434E-0001 8.07539374252193E-0001 8.06147663886823E-0001 8.04759367418631E-0001 8.03374462532139E-0001 + 8.01992927106980E-0001 8.00614739180673E-0001 7.99239876966999E-0001 7.97868318856312E-0001 7.96500043406105E-0001 + 7.95135029355236E-0001 7.93773255596374E-0001 7.92414701194400E-0001 7.91059345399257E-0001 7.89707167596060E-0001 + 7.88358147366732E-0001 7.87012264435914E-0001 7.85669498699840E-0001 7.84329830228735E-0001 7.82993239225905E-0001 + 7.81659706085272E-0001 7.80329211342781E-0001 7.79001735697624E-0001 7.77677260020219E-0001 7.76355765309137E-0001 + 7.75037232745915E-0001 7.73721643657569E-0001 7.72408979514055E-0001 7.71099221965638E-0001 7.69792352785054E-0001 + 7.68488353918190E-0001 7.67187207452835E-0001 7.65888895620330E-0001 7.64593400821777E-0001 7.63300705578511E-0001 + 7.62010792579341E-0001 7.60723644651350E-0001 7.59439244760842E-0001 7.58157576040275E-0001 7.56878621737254E-0001 + 7.55602365258314E-0001 7.54328790155132E-0001 7.53057880098051E-0001 7.51789618930462E-0001 7.50523990608577E-0001 + 7.49260979230490E-0001 7.48000569049098E-0001 7.46742744426584E-0001 7.45487489883924E-0001 7.44234790065928E-0001 + 7.42984629748497E-0001 7.41736993857190E-0001 7.40491867424450E-0001 7.39249235634947E-0001 7.38009083794081E-0001 + 7.36771397335955E-0001 7.35536161837012E-0001 7.34303362977431E-0001 7.33072986588646E-0001 7.31845018617560E-0001 + 7.30619445126741E-0001 7.29396252329278E-0001 7.28175426536683E-0001 7.26956954198695E-0001 7.25740821880151E-0001 + 7.24527016264729E-0001 7.23315524173563E-0001 7.22106332525094E-0001 7.20899428369256E-0001 7.19694798882738E-0001 + 7.18492431333030E-0001 7.17292313136043E-0001 7.16094431798172E-0001 7.14898774954781E-0001 7.13705330356931E-0001 + 7.12514085856662E-0001 7.11325029429903E-0001 7.10138149160333E-0001 7.08953433244543E-0001 7.07770869996491E-0001 + 7.06590447820677E-0001 7.05412155250004E-0001 7.04235980918948E-0001 7.03061913560887E-0001 7.01889942038177E-0001 + 7.00720055289654E-0001 6.99552242385636E-0001 6.98386492488222E-0001 6.97222794858586E-0001 6.96061138880675E-0001 + 6.94901514016471E-0001 6.93743909850370E-0001 6.92588316052981E-0001 6.91434722398410E-0001 6.90283118774433E-0001 + 6.89133495142677E-0001 6.87985841582341E-0001 6.86840148269661E-0001 6.85696405458766E-0001 6.84554603526158E-0001 + 6.83414732919403E-0001 6.82276784198755E-0001 6.81140748013011E-0001 6.80006615093212E-0001 6.78874376278570E-0001 + 6.77744022496580E-0001 6.76615544756727E-0001 6.75488934174991E-0001 6.74364181938172E-0001 6.73241279334138E-0001 + 6.72120217741944E-0001 6.71000988614761E-0001 6.69883583515181E-0001 6.68767994065841E-0001 6.67654211994787E-0001 + 6.66542229111213E-0001 6.65432037299129E-0001 6.64323628542652E-0001 6.63216994895242E-0001 6.62112128497088E-0001 + 6.61009021578850E-0001 6.59907666434451E-0001 6.58808055460791E-0001 6.57710181118299E-0001 6.56614035949050E-0001 + 6.55519612589156E-0001 6.54426903722782E-0001 6.53335902146404E-0001 6.52246600709126E-0001 6.51158992344514E-0001 + 6.50073070067849E-0001 6.48988826956049E-0001 6.47906256171600E-0001 6.46825350948250E-0001 6.45746104591131E-0001 + 6.44668510486987E-0001 6.43592562074675E-0001 6.42518252885024E-0001 6.41445576514217E-0001 6.40374526618838E-0001 + 6.39305096945647E-0001 6.38237281287560E-0001 6.37171073523561E-0001 6.36106467593488E-0001 6.35043457500305E-0001 + 6.33982037329778E-0001 6.32922201215083E-0001 6.31863943370246E-0001 6.30807258065609E-0001 6.29752139631552E-0001 + 6.28698582486175E-0001 6.27646581085340E-0001 6.26596129958322E-0001 6.25547223702117E-0001 6.24499856960481E-0001 + 6.23454024460349E-0001 6.22409720971251E-0001 6.21366941326478E-0001 6.20325680435556E-0001 6.19285933239239E-0001 + 6.18247694761262E-0001 6.17210960072051E-0001 6.16175724299010E-0001 6.15141982643363E-0001 6.14109730332905E-0001 + 6.13078962680368E-0001 6.12049675039075E-0001 6.11021862816863E-0001 6.09995521493690E-0001 6.08970646575034E-0001 + 6.07947233647424E-0001 6.06925278334025E-0001 6.05904776313688E-0001 6.04885723326157E-0001 6.03868115151701E-0001 + 6.02851947627998E-0001 6.01837216642183E-0001 6.00823918128000E-0001 5.99812048079783E-0001 5.98801602530593E-0001 + 5.97792577561072E-0001 5.96784969317092E-0001 5.95778773963709E-0001 5.94773987746752E-0001 5.93770606932842E-0001 + 5.92768627845360E-0001 5.91768046861599E-0001 5.90768860384243E-0001 5.89771064879566E-0001 5.88774656852580E-0001 + 5.87779632849297E-0001 5.86785989468551E-0001 5.85793723334893E-0001 5.84802831136858E-0001 5.83813309596918E-0001 + 5.82825155467867E-0001 5.81838365571852E-0001 5.80852936739415E-0001 5.79868865866180E-0001 5.78886149881301E-0001 + 5.77904785742360E-0001 5.76924770467825E-0001 5.75946101098833E-0001 5.74968774721338E-0001 5.73992788459547E-0001 + 5.73018139467874E-0001 5.72044824955325E-0001 5.71072842150173E-0001 5.70102188325821E-0001 5.69132860795706E-0001 + 5.68164856894164E-0001 5.67198174009703E-0001 5.66232809556276E-0001 5.65268760974797E-0001 5.64306025764979E-0001 + 5.63344601424783E-0001 5.62384485519956E-0001 5.61425675627899E-0001 5.60468169366555E-0001 5.59511964390032E-0001 + 5.58557058369406E-0001 5.57603449026822E-0001 5.56651134104459E-0001 5.55700111369008E-0001 5.54750378641365E-0001 + 5.53801933739618E-0001 5.52854774540613E-0001 5.51908898937751E-0001 5.50964304846210E-0001 5.50020990229714E-0001 + 5.49078953062727E-0001 5.48138191354251E-0001 5.47198703144901E-0001 5.46260486486896E-0001 5.45323539485707E-0001 + 5.44387860248828E-0001 5.43453446920003E-0001 5.42520297675562E-0001 5.41588410698418E-0001 5.40657784222760E-0001 + 5.39728416482737E-0001 5.38800305750458E-0001 5.37873450327110E-0001 5.36947848517660E-0001 5.36023498674110E-0001 + 5.35100399156784E-0001 5.34178548353001E-0001 5.33257944680095E-0001 5.32338586557107E-0001 5.31420472451073E-0001 + 5.30503600836777E-0001 5.29587970201988E-0001 5.28673579082610E-0001 5.27760426004450E-0001 5.26848509532551E-0001 + 5.25937828251065E-0001 5.25028380752809E-0001 5.24120165666218E-0001 5.23213181626960E-0001 5.22307427292173E-0001 + 5.21402901343497E-0001 5.20499602467636E-0001 5.19597529390836E-0001 5.18696680836975E-0001 5.17797055553799E-0001 + 5.16898652318214E-0001 5.16001469900325E-0001 5.15105507113699E-0001 5.14210762766648E-0001 5.13317235695255E-0001 + 5.12424924752911E-0001 5.11533828796063E-0001 5.10643946712027E-0001 5.09755277394233E-0001 5.08867819753514E-0001 + 5.07981572717381E-0001 5.07096535221025E-0001 5.06212706222381E-0001 5.05330084688614E-0001 5.04448669595382E-0001 + 5.03568459948696E-0001 5.02689454745788E-0001 5.01811653014291E-0001 5.00935053785148E-0001 5.00059656103175E-0001 + 4.99185459030102E-0001 4.98312461632530E-0001 4.97440662995525E-0001 4.96570062212833E-0001 4.95700658382366E-0001 + 4.94832450628869E-0001 4.93965438072233E-0001 4.93099619853182E-0001 4.92234995119702E-0001 4.91371563024028E-0001 + 4.90509322740051E-0001 4.89648273439898E-0001 4.88788414311337E-0001 4.87929744554776E-0001 4.87072263367384E-0001 + 4.86215969970352E-0001 4.85360863580904E-0001 4.84506943431994E-0001 4.83654208763994E-0001 4.82802658820916E-0001 + 4.81952292858766E-0001 4.81103110141766E-0001 4.80255109937061E-0001 4.79408291526110E-0001 4.78562654184969E-0001 + 4.77718197213144E-0001 4.76874919904765E-0001 4.76032821561494E-0001 4.75191901497861E-0001 4.74352159028362E-0001 + 4.73513593475824E-0001 4.72676204167620E-0001 4.71839990434916E-0001 4.71004951621048E-0001 4.70171087069366E-0001 + 4.69338396123239E-0001 4.68506878146613E-0001 4.67676532487487E-0001 4.66847358515983E-0001 4.66019355595427E-0001 + 4.65192523099105E-0001 4.64366860404187E-0001 4.63542366884865E-0001 4.62719041929142E-0001 4.61896884922059E-0001 + 4.61075895249515E-0001 4.60256072311251E-0001 4.59437415495664E-0001 4.58619924207303E-0001 4.57803597843965E-0001 + 4.56988435811977E-0001 4.56174437517801E-0001 4.55361602367271E-0001 4.54549929775543E-0001 4.53739419151800E-0001 + 4.52930069909204E-0001 4.52121881471030E-0001 4.51314853249231E-0001 4.50508984662816E-0001 4.49704275136334E-0001 + 4.48900724086845E-0001 4.48098330943856E-0001 4.47297095122490E-0001 4.46497016051860E-0001 4.45698093158209E-0001 + 4.44900325859530E-0001 4.44103713589364E-0001 4.43308255772249E-0001 4.42513951829850E-0001 4.41720801193261E-0001 + 4.40928803285336E-0001 4.40137957532983E-0001 4.39348263360254E-0001 4.38559720191416E-0001 4.37772327456348E-0001 + 4.36986084568989E-0001 4.36200990958898E-0001 4.35417046045085E-0001 4.34634249249095E-0001 4.33852599992712E-0001 + 4.33072097687157E-0001 4.32292741756221E-0001 4.31514531613138E-0001 4.30737466668291E-0001 4.29961546340787E-0001 + 4.29186770033000E-0001 4.28413137158343E-0001 4.27640647123526E-0001 4.26869299328550E-0001 4.26099093182153E-0001 + 4.25330028078638E-0001 4.24562103418729E-0001 4.23795318597214E-0001 4.23029673006027E-0001 4.22265166035801E-0001 + 4.21501797074317E-0001 4.20739565504957E-0001 4.19978470712892E-0001 4.19218512070375E-0001 4.18459688959194E-0001 + 4.17702000749761E-0001 4.16945446811175E-0001 4.16190026513558E-0001 4.15435739214864E-0001 4.14682584277161E-0001 + 4.13930561055004E-0001 4.13179668900076E-0001 4.12429907167406E-0001 4.11681275194402E-0001 4.10933772325694E-0001 + 4.10187397900708E-0001 4.09442151247448E-0001 4.08698031704253E-0001 4.07955038590257E-0001 4.07213171229486E-0001 + 4.06472428939193E-0001 4.05732811029852E-0001 4.04994316815273E-0001 4.04256945596258E-0001 4.03520696676159E-0001 + 4.02785569349984E-0001 4.02051562904382E-0001 4.01318676633231E-0001 4.00586909817372E-0001 3.99856261730059E-0001 + 3.99126731648649E-0001 3.98398318837447E-0001 3.97671022565643E-0001 3.96944842084675E-0001 3.96219776651643E-0001 + 3.95495825516819E-0001 3.94772987922076E-0001 3.94051263106353E-0001 3.93330650302523E-0001 3.92611148740523E-0001 + 3.91892757644216E-0001 3.91175476229043E-0001 3.90459303712190E-0001 3.89744239299280E-0001 3.89030282189847E-0001 + 3.88317431587509E-0001 3.87605686681177E-0001 3.86895046654438E-0001 3.86185510694177E-0001 3.85477077970983E-0001 + 3.84769747657947E-0001 3.84063518918908E-0001 3.83358390913934E-0001 3.82654362797746E-0001 3.81951433712655E-0001 + 3.81249602808176E-0001 3.80548869216692E-0001 3.79849232072289E-0001 3.79150690499762E-0001 3.78453243618533E-0001 + 3.77756890541860E-0001 3.77061630381556E-0001 3.76367462236181E-0001 3.75674385207564E-0001 3.74982398382692E-0001 + 3.74291500849454E-0001 3.73601691687186E-0001 3.72912969968239E-0001 3.72225334765069E-0001 3.71538785134472E-0001 + 3.70853320135700E-0001 3.70168938821007E-0001 3.69485640230905E-0001 3.68803423409148E-0001 3.68122287383793E-0001 + 3.67442231185343E-0001 3.66763253835697E-0001 3.66085354344980E-0001 3.65408531729708E-0001 3.64732784989874E-0001 + 3.64058113123161E-0001 3.63384515122574E-0001 3.62711989970892E-0001 3.62040536651743E-0001 3.61370154139312E-0001 + 3.60700841399130E-0001 3.60032597397561E-0001 3.59365421085972E-0001 3.58699311420517E-0001 3.58034267341546E-0001 + 3.57370287789439E-0001 3.56707371699059E-0001 3.56045517995783E-0001 3.55384725600252E-0001 3.54724993427574E-0001 + 3.54066320391291E-0001 3.53408705392260E-0001 3.52752147329762E-0001 3.52096645094352E-0001 3.51442197575001E-0001 + 3.50788803649562E-0001 3.50136462197477E-0001 3.49485172081489E-0001 3.48834932173085E-0001 3.48185741323859E-0001 + 3.47537598388576E-0001 3.46890502213231E-0001 3.46244451639825E-0001 3.45599445502377E-0001 3.44955482630103E-0001 + 3.44312561847415E-0001 3.43670681973918E-0001 3.43029841822010E-0001 3.42390040196884E-0001 3.41751275905289E-0001 + 3.41113547737186E-0001 3.40476854489677E-0001 3.39841194944655E-0001 3.39206567881573E-0001 3.38572972080634E-0001 + 3.37940406304420E-0001 3.37308869318653E-0001 3.36678359884203E-0001 3.36048876753093E-0001 3.35420418675686E-0001 + 3.34792984391086E-0001 3.34166572639128E-0001 3.33541182153984E-0001 3.32916811657748E-0001 3.32293459879647E-0001 + 3.31671125532021E-0001 3.31049807330337E-0001 3.30429503979568E-0001 3.29810214180599E-0001 3.29191936636640E-0001 + 3.28574670033980E-0001 3.27958413062029E-0001 3.27343164407703E-0001 3.26728922740175E-0001 3.26115686742173E-0001 + 3.25503455075459E-0001 3.24892226404908E-0001 3.24281999394503E-0001 3.23672772690447E-0001 3.23064544950097E-0001 + 3.22457314814634E-0001 3.21851080925133E-0001 3.21245841919351E-0001 3.20641596429306E-0001 3.20038343081280E-0001 + 3.19436080498225E-0001 3.18834807299762E-0001 3.18234522103797E-0001 3.17635223514425E-0001 3.17036910142077E-0001 + 3.16439580588205E-0001 3.15843233450115E-0001 3.15247867323386E-0001 3.14653480796220E-0001 3.14060072455896E-0001 + 3.13467640883118E-0001 3.12876184656858E-0001 3.12285702352737E-0001 3.11696192538989E-0001 3.11107653785342E-0001 + 3.10520084653323E-0001 3.09933483700294E-0001 3.09347849488347E-0001 3.08763180563276E-0001 3.08179475478033E-0001 + 3.07596732778166E-0001 3.07014951003430E-0001 3.06434128694270E-0001 3.05854264383716E-0001 3.05275356607913E-0001 + 3.04697403893164E-0001 3.04120404765643E-0001 3.03544357748161E-0001 3.02969261359347E-0001 3.02395114116897E-0001 + 3.01821914537573E-0001 3.01249661124219E-0001 3.00678352391726E-0001 3.00107986843501E-0001 2.99538562977953E-0001 + 2.98970079301494E-0001 2.98402534304975E-0001 2.97835926486442E-0001 2.97270254337316E-0001 2.96705516343206E-0001 + 2.96141710996517E-0001 2.95578836778144E-0001 2.95016892171308E-0001 2.94455875656264E-0001 2.93895785708672E-0001 + 2.93336620806113E-0001 2.92778379421984E-0001 2.92221060025495E-0001 2.91664661088595E-0001 2.91109181074973E-0001 + 2.90554618454322E-0001 2.90000971687668E-0001 2.89448239236742E-0001 2.88896419562765E-0001 2.88345511121956E-0001 + 2.87795512372065E-0001 2.87246421769925E-0001 2.86698237766555E-0001 2.86150958814917E-0001 2.85604583365425E-0001 + 2.85059109869222E-0001 2.84514536773677E-0001 2.83970862522389E-0001 2.83428085566232E-0001 2.82886204345358E-0001 + 2.82345217304746E-0001 2.81805122888067E-0001 2.81265919534406E-0001 2.80727605686050E-0001 2.80190179782755E-0001 + 2.79653640261743E-0001 2.79117985563858E-0001 2.78583214123315E-0001 2.78049324380008E-0001 2.77516314767615E-0001 + 2.76984183724267E-0001 2.76452929684758E-0001 2.75922551081773E-0001 2.75393046352463E-0001 2.74864413932290E-0001 + 2.74336652250917E-0001 2.73809759747419E-0001 2.73283734851375E-0001 2.72758575998497E-0001 2.72234281622406E-0001 + 2.71710850157106E-0001 2.71188280037399E-0001 2.70666569694357E-0001 2.70145717566444E-0001 2.69625722085930E-0001 + 2.69106581686721E-0001 2.68588294809304E-0001 2.68070859883036E-0001 2.67554275347985E-0001 2.67038539640927E-0001 + 2.66523651197401E-0001 2.66009608458322E-0001 2.65496409861728E-0001 2.64984053848151E-0001 2.64472538857317E-0001 + 2.63961863328151E-0001 2.63452025709106E-0001 2.62943024439583E-0001 2.62434857966455E-0001 2.61927524733330E-0001 + 2.61421023187995E-0001 2.60915351780772E-0001 2.60410508958313E-0001 2.59906493172291E-0001 2.59403302876516E-0001 + 2.58900936524449E-0001 2.58399392569211E-0001 2.57898669468968E-0001 2.57398765681970E-0001 2.56899679671525E-0001 + 2.56401409896060E-0001 2.55903954819900E-0001 2.55407312910376E-0001 2.54911482630360E-0001 2.54416462456942E-0001 + 2.53922250854881E-0001 2.53428846301505E-0001 2.52936247271783E-0001 2.52444452241640E-0001 2.51953459694619E-0001 + 2.51463268111079E-0001 2.50973875976933E-0001 2.50485281778657E-0001 2.49997484003720E-0001 2.49510481147655E-0001 + 2.49024271703670E-0001 2.48538854168892E-0001 2.48054227044375E-0001 2.47570388830525E-0001 2.47087338035020E-0001 + 2.46605073165735E-0001 2.46123592732417E-0001 2.45642895251270E-0001 2.45162979235797E-0001 2.44683843208476E-0001 + 2.44205485692431E-0001 2.43727905212270E-0001 2.43251100299515E-0001 2.42775069484265E-0001 2.42299811303130E-0001 + 2.41825324296739E-0001 2.41351607005147E-0001 2.40878657977035E-0001 2.40406475758854E-0001 2.39935058904440E-0001 + 2.39464405972521E-0001 2.38994515517937E-0001 2.38525386110470E-0001 2.38057016312679E-0001 2.37589404698320E-0001 + 2.37122549841889E-0001 2.36656450320304E-0001 2.36191104719193E-0001 2.35726511622852E-0001 2.35262669622629E-0001 + 2.34799577313579E-0001 2.34337233291120E-0001 2.33875636164039E-0001 2.33414784535208E-0001 2.32954677015851E-0001 + 2.32495312222617E-0001 2.32036688772974E-0001 2.31578805293610E-0001 2.31121660411622E-0001 2.30665252759569E-0001 + 2.30209580975894E-0001 2.29754643699475E-0001 2.29300439580138E-0001 2.28846967266473E-0001 2.28394225414675E-0001 + 2.27942212686028E-0001 2.27490927742705E-0001 2.27040369257458E-0001 2.26590535902259E-0001 2.26141426357148E-0001 + 2.25693039308565E-0001 2.25245373441769E-0001 2.24798427452224E-0001 2.24352200039709E-0001 2.23906689905797E-0001 + 2.23461895763563E-0001 2.23017816323250E-0001 2.22574450307469E-0001 2.22131796438543E-0001 2.21689853444853E-0001 + 2.21248620063796E-0001 2.20808095035469E-0001 2.20368277103088E-0001 2.19929165021460E-0001 2.19490757542190E-0001 + 2.19053053430604E-0001 2.18616051450958E-0001 2.18179750376597E-0001 2.17744148987006E-0001 2.17309246064853E-0001 + 2.16875040397693E-0001 2.16441530783481E-0001 2.16008716019572E-0001 2.15576594914588E-0001 2.15145166277837E-0001 + 2.14714428929919E-0001 2.14284381691708E-0001 2.13855023391152E-0001 2.13426352867943E-0001 2.12998368956562E-0001 + 2.12571070508347E-0001 2.12144456375809E-0001 2.11718525412203E-0001 2.11293276488110E-0001 2.10868708470632E-0001 + 2.10444820236564E-0001 2.10021610669016E-0001 2.09599078654436E-0001 2.09177223090281E-0001 2.08756042876518E-0001 + 2.08335536916482E-0001 2.07915704128803E-0001 2.07496543426985E-0001 2.07078053740702E-0001 2.06660233998350E-0001 + 2.06243083138553E-0001 2.05826600108049E-0001 2.05410783852744E-0001 2.04995633332218E-0001 2.04581147508223E-0001 + 2.04167325349810E-0001 2.03754165834618E-0001 2.03341667940778E-0001 2.02929830660149E-0001 2.02518652985956E-0001 + 2.02108133918771E-0001 2.01698272469087E-0001 2.01289067647933E-0001 2.00880518477988E-0001 2.00472623986330E-0001 + 2.00065383204015E-0001 1.99658795174213E-0001 1.99252858941953E-0001 1.98847573561832E-0001 1.98442938092466E-0001 + 1.98038951599061E-0001 1.97635613157712E-0001 1.97232921846414E-0001 1.96830876750217E-0001 1.96429476964658E-0001 + 1.96028721585061E-0001 1.95628609721120E-0001 1.95229140484047E-0001 1.94830312993873E-0001 1.94432126376452E-0001 + 1.94034579763044E-0001 1.93637672295047E-0001 1.93241403117566E-0001 1.92845771383718E-0001 1.92450776252921E-0001 + 1.92056416891768E-0001 1.91662692471024E-0001 1.91269602173376E-0001 1.90877145182263E-0001 1.90485320693497E-0001 + 1.90094127904521E-0001 1.89703566023882E-0001 1.89313634263497E-0001 1.88924331842102E-0001 1.88535657989142E-0001 + 1.88147611937458E-0001 1.87760192924155E-0001 1.87373400201390E-0001 1.86987233016549E-0001 1.86601690635110E-0001 + 1.86216772321681E-0001 1.85832477350785E-0001 1.85448805004292E-0001 1.85065754564945E-0001 1.84683325332346E-0001 + 1.84301516603540E-0001 1.83920327685972E-0001 1.83539757897071E-0001 1.83159806551729E-0001 1.82780472983050E-0001 + 1.82401756522051E-0001 1.82023656509770E-0001 1.81646172295985E-0001 1.81269303231430E-0001 1.80893048678627E-0001 + 1.80517408006267E-0001 1.80142380584893E-0001 1.79767965799028E-0001 1.79394163032897E-0001 1.79020971681266E-0001 + 1.78648391146847E-0001 1.78276420832081E-0001 1.77905060153442E-0001 1.77534308531917E-0001 1.77164165392577E-0001 + 1.76794630169359E-0001 1.76425702298997E-0001 1.76057381233189E-0001 1.75689666419937E-0001 1.75322557319185E-0001 + 1.74956053399359E-0001 1.74590154127380E-0001 1.74224858985620E-0001 1.73860167457572E-0001 1.73496079033069E-0001 + 1.73132593212648E-0001 1.72769709496246E-0001 1.72407427396263E-0001 1.72045746428865E-0001 1.71684666115736E-0001 + 1.71324185987135E-0001 1.70964305576238E-0001 1.70605024425252E-0001 1.70246342082806E-0001 1.69888258099603E-0001 + 1.69530772039321E-0001 1.69173883464243E-0001 1.68817591947029E-0001 1.68461897068117E-0001 1.68106798406563E-0001 + 1.67752295557507E-0001 1.67398388114287E-0001 1.67045075679358E-0001 1.66692357860375E-0001 1.66340234269756E-0001 + 1.65988704529946E-0001 1.65637768263797E-0001 1.65287425102453E-0001 1.64937674685356E-0001 1.64588516651943E-0001 + 1.64239950653467E-0001 1.63891976342063E-0001 1.63544593377324E-0001 1.63197801426746E-0001 1.62851600158727E-0001 + 1.62505989250899E-0001 1.62160968384877E-0001 1.61816537247144E-0001 1.61472695533880E-0001 1.61129442939132E-0001 + 1.60786779169729E-0001 1.60444703932573E-0001 1.60103216941224E-0001 1.59762317917662E-0001 1.59422006584839E-0001 + 1.59082282674141E-0001 1.58743145919252E-0001 1.58404596060114E-0001 1.58066632843371E-0001 1.57729256017985E-0001 + 1.57392465340074E-0001 1.57056260568525E-0001 1.56720641468516E-0001 1.56385607811088E-0001 1.56051159370945E-0001 + 1.55717295926029E-0001 1.55384017262798E-0001 1.55051323167435E-0001 1.54719213434661E-0001 1.54387687862449E-0001 + 1.54056746256008E-0001 1.53726388418962E-0001 1.53396614163944E-0001 1.53067423307307E-0001 1.52738815669572E-0001 + 1.52410791074995E-0001 1.52083349355101E-0001 1.51756490339423E-0001 1.51430213867421E-0001 1.51104519780107E-0001 + 1.50779407923136E-0001 1.50454878147700E-0001 1.50130930303898E-0001 1.49807564252682E-0001 1.49484779854809E-0001 + 1.49162576973054E-0001 1.48840955480179E-0001 1.48519915247878E-0001 1.48199456150766E-0001 1.47879578071690E-0001 + 1.47560280890231E-0001 1.47241564498642E-0001 1.46923428784146E-0001 1.46605873640450E-0001 1.46288898969527E-0001 + 1.45972504665222E-0001 1.45656690637192E-0001 1.45341456789631E-0001 1.45026803032356E-0001 1.44712729282596E-0001 + 1.44399235452562E-0001 1.44086321462327E-0001 1.43773987235388E-0001 1.43462232695123E-0001 1.43151057773230E-0001 + 1.42840462395958E-0001 1.42530446497443E-0001 1.42221010015713E-0001 1.41912152886022E-0001 1.41603875053302E-0001 + 1.41296176456605E-0001 1.40989057045115E-0001 1.40682516764811E-0001 1.40376555566916E-0001 1.40071173403458E-0001 + 1.39766370229939E-0001 1.39462146001778E-0001 1.39158500678767E-0001 1.38855434220173E-0001 1.38552946590983E-0001 + 1.38251037752539E-0001 1.37949707672804E-0001 1.37648956320562E-0001 1.37348783662743E-0001 1.37049189671568E-0001 + 1.36750174319641E-0001 1.36451737580395E-0001 1.36153879431225E-0001 1.35856599845001E-0001 1.35559898803471E-0001 + 1.35263776282071E-0001 1.34968232262445E-0001 1.34673266728419E-0001 1.34378879657957E-0001 1.34085071036130E-0001 + 1.33791840847516E-0001 1.33499189073961E-0001 1.33207115704877E-0001 1.32915620722916E-0001 1.32624704116960E-0001 + 1.32334365872711E-0001 1.32044605978521E-0001 1.31755424423151E-0001 1.31466821193084E-0001 1.31178796277004E-0001 + 1.30891349665803E-0001 1.30604481344505E-0001 1.30318191305277E-0001 1.30032479534866E-0001 1.29747346022229E-0001 + 1.29462790757638E-0001 1.29178813725938E-0001 1.28895414918683E-0001 1.28612594319753E-0001 1.28330351918389E-0001 + 1.28048687701551E-0001 1.27767601653020E-0001 1.27487093759691E-0001 1.27207164005277E-0001 1.26927812373458E-0001 + 1.26649038848333E-0001 1.26370843409463E-0001 1.26093226039527E-0001 1.25816186717118E-0001 1.25539725420341E-0001 + 1.25263842129069E-0001 1.24988536816381E-0001 1.24713809457570E-0001 1.24439660026538E-0001 1.24166088493543E-0001 + 1.23893094831510E-0001 1.23620679005202E-0001 1.23348840983400E-0001 1.23077580729880E-0001 1.22806898207469E-0001 + 1.22536793378501E-0001 1.22267266200743E-0001 1.21998316629658E-0001 1.21729944622465E-0001 1.21462150129555E-0001 + 1.21194933101718E-0001 1.20928293487429E-0001 1.20662231230134E-0001 1.20396746274576E-0001 1.20131838558201E-0001 + 1.19867508020658E-0001 1.19603754595191E-0001 1.19340578213173E-0001 1.19077978805906E-0001 1.18815956296019E-0001 + 1.18554510608784E-0001 1.18293641663967E-0001 1.18033349375811E-0001 1.17773633659846E-0001 1.17514494424263E-0001 + 1.17255931578076E-0001 1.16997945022956E-0001 1.16740534656851E-0001 1.16483700378529E-0001 1.16227442078034E-0001 + 1.15971759644861E-0001 1.15716652964315E-0001 1.15462121915695E-0001 1.15208166376827E-0001 1.14954786219975E-0001 + 1.14701981314108E-0001 1.14449751523078E-0001 1.14198096708343E-0001 1.13947016723504E-0001 1.13696511422494E-0001 + 1.13446580650921E-0001 1.13197224251075E-0001 1.12948442062380E-0001 1.12700233916374E-0001 1.12452599642174E-0001 + 1.12205539063740E-0001 1.11959051998952E-0001 1.11713138263260E-0001 1.11467797663744E-0001 1.11223030005498E-0001 + 1.10978835085694E-0001 1.10735212699509E-0001 1.10492162632813E-0001 1.10249684671301E-0001 1.10007778589524E-0001 + 1.09766444160931E-0001 1.09525681151471E-0001 1.09285489322328E-0001 1.09045868426710E-0001 1.08806818215797E-0001 + 1.08568338431868E-0001 1.08330428813786E-0001 1.08093089092419E-0001 1.07856318993376E-0001 1.07620118236545E-0001 + 1.07384486534256E-0001 1.07149423595854E-0001 1.06914929121280E-0001 1.06681002804728E-0001 1.06447644336017E-0001 + 1.06214853394621E-0001 1.05982629658836E-0001 1.05750972795225E-0001 1.05519882466866E-0001 1.05289358330596E-0001 + 1.05059400032409E-0001 1.04830007217096E-0001 1.04601179518133E-0001 1.04372916564562E-0001 1.04145217977310E-0001 + 1.03918083371483E-0001 1.03691512353135E-0001 1.03465504523402E-0001 1.03240059474589E-0001 1.03015176791996E-0001 + 1.02790856054835E-0001 1.02567096833231E-0001 1.02343898691435E-0001 1.02121261185517E-0001 1.01899183864048E-0001 + 1.01677666267400E-0001 1.01456707930043E-0001 1.01236308377775E-0001 1.01016467127941E-0001 1.00797183690577E-0001 + 1.00578457570022E-0001 1.00360288258446E-0001 1.00142675244843E-0001 9.99256180067143E-0002 9.97091160151384E-0002 + 9.94931687329170E-0002 9.92777756147965E-0002 9.90629361072301E-0002 9.88486496485996E-0002 9.86349156694390E-0002 + 9.84217335915015E-0002 9.82091028279823E-0002 9.79970227842037E-0002 9.77854928576069E-0002 9.75745124361248E-0002 + 9.73640809002554E-0002 9.71541976205076E-0002 9.69448619613277E-0002 9.67360732762299E-0002 9.65278309114915E-0002 + 9.63201342035972E-0002 9.61129824824734E-0002 9.59063750656876E-0002 9.57003112663175E-0002 9.54947903862227E-0002 + 9.52898117181206E-0002 9.50853745476652E-0002 9.48814781504236E-0002 9.46781217932584E-0002 9.44753047336229E-0002 + 9.42730262221054E-0002 9.40712854977779E-0002 9.38700817928308E-0002 9.36694143274536E-0002 9.34692823167958E-0002 + 9.32696849644529E-0002 9.30706214645477E-0002 9.28720910045113E-0002 9.26740927604248E-0002 9.24766259002648E-0002 + 9.22796895811034E-0002 9.20832829544505E-0002 9.18874051597302E-0002 9.16920553284596E-0002 9.14972325809811E-0002 + 9.13029360318091E-0002 9.11091647840321E-0002 9.09159179302337E-0002 9.07231945578440E-0002 9.05309937414404E-0002 + 9.03393145462326E-0002 9.01481560313198E-0002 8.99575172447850E-0002 8.97673972253177E-0002 8.95777950005709E-0002 + 8.93887095927536E-0002 8.92001400118535E-0002 8.90120852598293E-0002 8.88245443282669E-0002 8.86375162023420E-0002 + 8.84509998549703E-0002 8.82649942505363E-0002 8.80794983448853E-0002 8.78945110839117E-0002 8.77100314056548E-0002 + 8.75260582370157E-0002 8.73425904970229E-0002 8.71596270961227E-0002 8.69771669331270E-0002 8.67952089005889E-0002 + 8.66137518803458E-0002 8.64327947446807E-0002 8.62523363586570E-0002 8.60723755763607E-0002 8.58929112437039E-0002 + 8.57139421991205E-0002 8.55354672683986E-0002 8.53574852721764E-0002 8.51799950198361E-0002 8.50029953127792E-0002 + 8.48264849425411E-0002 8.46504626940690E-0002 8.44749273412537E-0002 8.42998776499729E-0002 8.41253123778489E-0002 + 8.39512302742410E-0002 8.37776300776519E-0002 8.36045105208907E-0002 8.34318703256580E-0002 8.32597082067706E-0002 + 8.30880228707429E-0002 8.29168130153090E-0002 8.27460773284728E-0002 8.25758144922665E-0002 8.24060231792125E-0002 + 8.22367020530216E-0002 8.20678497714123E-0002 8.18994649823347E-0002 8.17315463249046E-0002 8.15640924336396E-0002 + 8.13971019318519E-0002 8.12305734368274E-0002 8.10645055565175E-0002 8.08988968933065E-0002 8.07337460407021E-0002 + 8.05690515845084E-0002 8.04048121039994E-0002 8.02410261709689E-0002 8.00776923487788E-0002 7.99148091944787E-0002 + 7.97523752578544E-0002 7.95903890816591E-0002 7.94288492016066E-0002 7.92677541466020E-0002 7.91071024394461E-0002 + 7.89468925947000E-0002 7.87871231210455E-0002 7.86277925217529E-0002 7.84688992915995E-0002 7.83104419213613E-0002 + 7.81524188933099E-0002 7.79948286861805E-0002 7.78376697694818E-0002 7.76809406101253E-0002 7.75246396672079E-0002 + 7.73687653946137E-0002 7.72133162410102E-0002 7.70582906488952E-0002 7.69036870574400E-0002 7.67495038970275E-0002 + 7.65957395966050E-0002 7.64423925775095E-0002 7.62894612589251E-0002 7.61369440524174E-0002 7.59848393671552E-0002 + 7.58331456063445E-0002 7.56818611703143E-0002 7.55309844541373E-0002 7.53805138500045E-0002 7.52304477443691E-0002 + 7.50807845219874E-0002 7.49315225623484E-0002 7.47826602439551E-0002 7.46341959381344E-0002 7.44861280164142E-0002 + 7.43384548469521E-0002 7.41911747933422E-0002 7.40442862179487E-0002 7.38977874795225E-0002 7.37516769362987E-0002 + 7.36059529426590E-0002 7.34606138519920E-0002 7.33156580150238E-0002 7.31710837810101E-0002 7.30268894991686E-0002 + 7.28830735153383E-0002 7.27396341750823E-0002 7.25965698241667E-0002 7.24538788047406E-0002 7.23115594627412E-0002 + 7.21696101397741E-0002 7.20280291798035E-0002 7.18868149236575E-0002 7.17459657173968E-0002 7.16054799034718E-0002 + 7.14653558267020E-0002 7.13255918314083E-0002 7.11861862654840E-0002 7.10471374748939E-0002 7.09084438098996E-0002 + 7.07701036212346E-0002 7.06321152615435E-0002 7.04944770863446E-0002 7.03571874525968E-0002 7.02202447206207E-0002 + 7.00836472533849E-0002 6.99473934157912E-0002 6.98114815792364E-0002 6.96759101153824E-0002 6.95406774021585E-0002 + 6.94057818192092E-0002 6.92712217526994E-0002 6.91369955919615E-0002 6.90031017321428E-0002 6.88695385727720E-0002 + 6.87363045189673E-0002 6.86033979819250E-0002 6.84708173786873E-0002 6.83385611309483E-0002 6.82066276693899E-0002 + 6.80750154293632E-0002 6.79437228540233E-0002 6.78127483940986E-0002 6.76820905071790E-0002 6.75517476601324E-0002 + 6.74217183262268E-0002 6.72920009873068E-0002 6.71625941359728E-0002 6.70334962724615E-0002 6.69047059056204E-0002 + 6.67762215558113E-0002 6.66480417525135E-0002 6.65201650345761E-0002 6.63925899533660E-0002 6.62653150706118E-0002 + 6.61383389581746E-0002 6.60116602004752E-0002 6.58852773940258E-0002 6.57591891476867E-0002 6.56333940819558E-0002 + 6.55078908316414E-0002 6.53826780446700E-0002 6.52577543811354E-0002 6.51331185174237E-0002 6.50087691421211E-0002 + 6.48847049608659E-0002 6.47609246924980E-0002 6.46374270717360E-0002 6.45142108501639E-0002 6.43912747950404E-0002 + 6.42686176895593E-0002 6.41462383345633E-0002 6.40241355478377E-0002 6.39023081667954E-0002 6.37807550436522E-0002 + 6.36594750524737E-0002 6.35384670843511E-0002 6.34177300505734E-0002 6.32972628821652E-0002 6.31770645291817E-0002 + 6.30571339641268E-0002 6.29374701795524E-0002 6.28180721897795E-0002 6.26989390309236E-0002 6.25800697609187E-0002 + 6.24614634617283E-0002 6.23431192369427E-0002 6.22250362149627E-0002 6.21072135485409E-0002 6.19896504133503E-0002 + 6.18723460116573E-0002 6.17552995706493E-0002 6.16385103431917E-0002 6.15219776098030E-0002 6.14057006755218E-0002 + 6.12896788748025E-0002 6.11739115693564E-0002 6.10583981491558E-0002 6.09431380331961E-0002 6.08281306690401E-0002 + 6.07133755345558E-0002 6.05988721384365E-0002 6.04846200192597E-0002 6.03706187479583E-0002 6.02568679263922E-0002 + 6.01433671890903E-0002 6.00301162040173E-0002 5.99171146709025E-0002 5.98043623256675E-0002 5.96918589370480E-0002 + 5.95796043100477E-0002 5.94675982842678E-0002 5.93558407351663E-0002 5.92443315770290E-0002 5.91330707583672E-0002 + 5.90220582646439E-0002 5.89112940977724E-0002 5.88007782575458E-0002 5.86905107421236E-0002 5.85804915458282E-0002 + 5.84707206640361E-0002 5.83611980855900E-0002 5.82519238011174E-0002 5.81428977969096E-0002 5.80341200581022E-0002 + 5.79255905669587E-0002 5.78173093038478E-0002 5.77092762472418E-0002 5.76014913732243E-0002 5.74939546554878E-0002 + 5.73866660658222E-0002 5.72796255750938E-0002 5.71728331495640E-0002 5.70662887557937E-0002 5.69599923569607E-0002 + 5.68539439140847E-0002 5.67481433877440E-0002 5.66425907331625E-0002 5.65372859075750E-0002 5.64322288626114E-0002 + 5.63274195506817E-0002 5.62228579195685E-0002 5.61185439178319E-0002 5.60144774891538E-0002 5.59106585772528E-0002 + 5.58070871226859E-0002 5.57037630650606E-0002 5.56006863413104E-0002 5.54978568856925E-0002 5.53952746322481E-0002 + 5.52929395115996E-0002 5.51908514526727E-0002 5.50890103831866E-0002 5.49874162281751E-0002 5.48860689107230E-0002 + 5.47849683524576E-0002 5.46841144723140E-0002 5.45835071887531E-0002 5.44831464163068E-0002 5.43830320695223E-0002 + 5.42831640597542E-0002 5.41835422971359E-0002 5.40841666893441E-0002 5.39850371428314E-0002 5.38861535618369E-0002 + 5.37875158491255E-0002 5.36891239047512E-0002 5.35909776275370E-0002 5.34930769143326E-0002 5.33954216605070E-0002 + 5.32980117594527E-0002 5.32008471020886E-0002 5.31039275776005E-0002 5.30072530749243E-0002 5.29108234790328E-0002 + 5.28146386748932E-0002 5.27186985447435E-0002 5.26230029693283E-0002 5.25275518269063E-0002 5.24323449954785E-0002 + 5.23373823498134E-0002 5.22426637639238E-0002 5.21481891088337E-0002 5.20539582560483E-0002 5.19599710728411E-0002 + 5.18662274267163E-0002 5.17727271821824E-0002 5.16794702034806E-0002 5.15864563498669E-0002 5.14936854838024E-0002 + 5.14011574620150E-0002 5.13088721417047E-0002 5.12168293770651E-0002 5.11250290222638E-0002 5.10334709279617E-0002 + 5.09421549445421E-0002 5.08510809201214E-0002 5.07602487010441E-0002 5.06696581328770E-0002 5.05793090581684E-0002 + 5.04892013194325E-0002 5.03993347564109E-0002 5.03097092080621E-0002 5.02203245103196E-0002 5.01311804993272E-0002 + 5.00422770086992E-0002 4.99536138702650E-0002 4.98651909155637E-0002 4.97770079728521E-0002 4.96890648695952E-0002 + 4.96013614319669E-0002 4.95138974843499E-0002 4.94266728495839E-0002 4.93396873487145E-0002 4.92529408019904E-0002 + 4.91664330276138E-0002 4.90801638422391E-0002 4.89941330614703E-0002 4.89083404983614E-0002 4.88227859659132E-0002 + 4.87374692748240E-0002 4.86523902339870E-0002 4.85675486519899E-0002 4.84829443341129E-0002 4.83985770863286E-0002 + 4.83144467120498E-0002 4.82305530126282E-0002 4.81468957898555E-0002 4.80634748414572E-0002 4.79802899660979E-0002 + 4.78973409598753E-0002 4.78146276178211E-0002 4.77321497333995E-0002 4.76499070987559E-0002 4.75678995049671E-0002 + 4.74861267400340E-0002 4.74045885933938E-0002 4.73232848511550E-0002 4.72422152983526E-0002 4.71613797189477E-0002 + 4.70807778960770E-0002 4.70004096100446E-0002 4.69202746403274E-0002 4.68403727665802E-0002 4.67607037648672E-0002 + 4.66812674116792E-0002 4.66020634819240E-0002 4.65230917476677E-0002 4.64443519816528E-0002 4.63658439540292E-0002 + 4.62875674346164E-0002 4.62095221908901E-0002 4.61317079899939E-0002 4.60541245967252E-0002 4.59767717763027E-0002 + 4.58996492910935E-0002 4.58227569026255E-0002 4.57460943715871E-0002 4.56696614575739E-0002 4.55934579175768E-0002 + 4.55174835092561E-0002 4.54417379874126E-0002 4.53662211072636E-0002 4.52909326209125E-0002 4.52158722806255E-0002 + 4.51410398370655E-0002 4.50664350397962E-0002 4.49920576370281E-0002 4.49179073753658E-0002 4.48439840023313E-0002 + 4.47702872610615E-0002 4.46968168958616E-0002 4.46235726489224E-0002 4.45505542618342E-0002 4.44777614745756E-0002 + 4.44051940262709E-0002 4.43328516544309E-0002 4.42607340967218E-0002 4.41888410876773E-0002 4.41171723624911E-0002 + 4.40457276542338E-0002 4.39745066953704E-0002 4.39035092172532E-0002 4.38327349498679E-0002 4.37621836223392E-0002 + 4.36918549619169E-0002 4.36217486965083E-0002 4.35518645518914E-0002 4.34822022517125E-0002 4.34127615207815E-0002 + 4.33435420807614E-0002 4.32745436539707E-0002 4.32057659608474E-0002 4.31372087209619E-0002 4.30688716527634E-0002 + 4.30007544730709E-0002 4.29328568993574E-0002 4.28651786467032E-0002 4.27977194290638E-0002 4.27304789602858E-0002 + 4.26634569533444E-0002 4.25966531180553E-0002 4.25300671671738E-0002 4.24636988083875E-0002 4.23975477505435E-0002 + 4.23316137017414E-0002 4.22658963684431E-0002 4.22003954561067E-0002 4.21351106696961E-0002 4.20700417124068E-0002 + 4.20051882877026E-0002 4.19405500968958E-0002 4.18761268411840E-0002 4.18119182210131E-0002 4.17479239349298E-0002 + 4.16841436813650E-0002 4.16205771576135E-0002 4.15572240603439E-0002 4.14940840845777E-0002 4.14311569252188E-0002 + 4.13684422756502E-0002 4.13059398295196E-0002 4.12436492783149E-0002 4.11815703134048E-0002 4.11197026246347E-0002 + 4.10580459017302E-0002 4.09965998332756E-0002 4.09353641068408E-0002 4.08743384093641E-0002 4.08135224274074E-0002 + 4.07529158453665E-0002 4.06925183478989E-0002 4.06323296189012E-0002 4.05723493412527E-0002 4.05125771956633E-0002 + 4.04530128650233E-0002 4.03936560289012E-0002 4.03345063669978E-0002 4.02755635576099E-0002 4.02168272791668E-0002 + 4.01582972092052E-0002 4.00999730236004E-0002 4.00418543988716E-0002 3.99839410089783E-0002 3.99262325285236E-0002 + 3.98687286309598E-0002 3.98114289889723E-0002 3.97543332744793E-0002 3.96974411590165E-0002 3.96407523125816E-0002 + 3.95842664054308E-0002 3.95279831064100E-0002 3.94719020837243E-0002 3.94160230054517E-0002 3.93603455378730E-0002 + 3.93048693477835E-0002 3.92495941001804E-0002 3.91945194605752E-0002 3.91396450925520E-0002 3.90849706599516E-0002 + 3.90304958254577E-0002 3.89762202511108E-0002 3.89221435990795E-0002 3.88682655293449E-0002 3.88145857022728E-0002 + 3.87611037775852E-0002 3.87078194141017E-0002 3.86547322706412E-0002 3.86018420035740E-0002 3.85491482714592E-0002 + 3.84966507293756E-0002 3.84443490338180E-0002 3.83922428392172E-0002 3.83403318011627E-0002 3.82886155726631E-0002 + 3.82370938071117E-0002 3.81857661579003E-0002 3.81346322771283E-0002 3.80836918154730E-0002 3.80329444247712E-0002 + 3.79823897550499E-0002 3.79320274565922E-0002 3.78818571782580E-0002 3.78318785689043E-0002 3.77820912764812E-0002 + 3.77324949491949E-0002 3.76830892338269E-0002 3.76338737763799E-0002 3.75848482240183E-0002 3.75360122207988E-0002 + 3.74873654129752E-0002 3.74389074442101E-0002 3.73906379588106E-0002 3.73425565995273E-0002 3.72946630102734E-0002 + 3.72469568323688E-0002 3.71994377082965E-0002 3.71521052792409E-0002 3.71049591865132E-0002 3.70579990701256E-0002 + 3.70112245698277E-0002 3.69646353260152E-0002 3.69182309766162E-0002 3.68720111605939E-0002 3.68259755165196E-0002 + 3.67801236808852E-0002 3.67344552917372E-0002 3.66889699854321E-0002 3.66436673985832E-0002 3.65985471668920E-0002 + 3.65536089256678E-0002 3.65088523095674E-0002 3.64642769537649E-0002 3.64198824918724E-0002 3.63756685578893E-0002 + 3.63316347847725E-0002 3.62877808058668E-0002 3.62441062536043E-0002 3.62006107593738E-0002 3.61572939559936E-0002 + 3.61141554738071E-0002 3.60711949443272E-0002 3.60284119977630E-0002 3.59858062651034E-0002 3.59433773744696E-0002 + 3.59011249568476E-0002 3.58590486403549E-0002 3.58171480542810E-0002 3.57754228266104E-0002 3.57338725854565E-0002 + 3.56924969582800E-0002 3.56512955729318E-0002 3.56102680558269E-0002 3.55694140336405E-0002 3.55287331334391E-0002 + 3.54882249799385E-0002 3.54478892002051E-0002 3.54077254183009E-0002 3.53677332601167E-0002 3.53279123501064E-0002 + 3.52882623125936E-0002 3.52487827716405E-0002 3.52094733513103E-0002 3.51703336752746E-0002 3.51313633664213E-0002 + 3.50925620476389E-0002 3.50539293422101E-0002 3.50154648718487E-0002 3.49771682589240E-0002 3.49390391256768E-0002 + 3.49010770934329E-0002 3.48632817837823E-0002 3.48256528171383E-0002 3.47881898150957E-0002 3.47508923976796E-0002 + 3.47137601858356E-0002 3.46767927994635E-0002 3.46399898585977E-0002 3.46033509824889E-0002 3.45668757903914E-0002 + 3.45305639023508E-0002 3.44944149368424E-0002 3.44584285127391E-0002 3.44226042485247E-0002 3.43869417630821E-0002 + 3.43514406737226E-0002 3.43161005989452E-0002 3.42809211560718E-0002 3.42459019636131E-0002 3.42110426378509E-0002 + 3.41763427965192E-0002 3.41418020568329E-0002 3.41074200350926E-0002 3.40731963487899E-0002 3.40391306133183E-0002 + 3.40052224463161E-0002 3.39714714631916E-0002 3.39378772796241E-0002 3.39044395122230E-0002 3.38711577770797E-0002 + 3.38380316884498E-0002 3.38050608631013E-0002 3.37722449154396E-0002 3.37395834613294E-0002 3.37070761150633E-0002 + 3.36747224923944E-0002 3.36425222068442E-0002 3.36104748747149E-0002 3.35785801098136E-0002 3.35468375264858E-0002 + 3.35152467389568E-0002 3.34838073618599E-0002 3.34525190093124E-0002 3.34213812949159E-0002 3.33903938329451E-0002 + 3.33595562376879E-0002 3.33288681223888E-0002 3.32983291005699E-0002 3.32679387861639E-0002 3.32376967927216E-0002 + 3.32076027338084E-0002 3.31776562230048E-0002 3.31478568731128E-0002 3.31182042973467E-0002 3.30886981095989E-0002 + 3.30593379224545E-0002 3.30301233493095E-0002 3.30010540031796E-0002 3.29721294974957E-0002 3.29433494441161E-0002 + 3.29147134573024E-0002 3.28862211493471E-0002 3.28578721329585E-0002 3.28296660217927E-0002 3.28016024275357E-0002 + 3.27736809637504E-0002 3.27459012434893E-0002 3.27182628788968E-0002 3.26907654830669E-0002 3.26634086691153E-0002 + 3.26361920489843E-0002 3.26091152364974E-0002 3.25821778435083E-0002 3.25553794836204E-0002 3.25287197688659E-0002 + 3.25021983126296E-0002 3.24758147275227E-0002 3.24495686267127E-0002 3.24234596224608E-0002 3.23974873277183E-0002 + 3.23716513563935E-0002 3.23459513206910E-0002 3.23203868337731E-0002 3.22949575088290E-0002 3.22696629585424E-0002 + 3.22445027965566E-0002 3.22194766356106E-0002 3.21945840895377E-0002 3.21698247712671E-0002 3.21451982944239E-0002 + 3.21207042718624E-0002 3.20963423178008E-0002 3.20721120454206E-0002 3.20480130684678E-0002 3.20240450008533E-0002 + 3.20002074558524E-0002 3.19765000479736E-0002 3.19529223909575E-0002 3.19294740983102E-0002 3.19061547850405E-0002 + 3.18829640647218E-0002 3.18599015525651E-0002 3.18369668618119E-0002 3.18141596080108E-0002 3.17914794051419E-0002 + 3.17689258686926E-0002 3.17464986128492E-0002 3.17241972533067E-0002 3.17020214040580E-0002 3.16799706814088E-0002 + 3.16580447003653E-0002 3.16362430762397E-0002 3.16145654250534E-0002 3.15930113617961E-0002 3.15715805033728E-0002 + 3.15502724652561E-0002 3.15290868632271E-0002 3.15080233145834E-0002 3.14870814346536E-0002 3.14662608406861E-0002 + 3.14455611495700E-0002 3.14249819782384E-0002 3.14045229438025E-0002 3.13841836628811E-0002 3.13639637533457E-0002 + 3.13438628328452E-0002 3.13238805189401E-0002 3.13040164297747E-0002 3.12842701832714E-0002 3.12646413979376E-0002 + 3.12451296917913E-0002 3.12257346841083E-0002 3.12064559928693E-0002 3.11872932382553E-0002 3.11682460384809E-0002 + 3.11493140134244E-0002 3.11304967827464E-0002 3.11117939661591E-0002 3.10932051835610E-0002 3.10747300554415E-0002 + 3.10563682020742E-0002 3.10381192441898E-0002 3.10199828027078E-0002 3.10019584984677E-0002 3.09840459530375E-0002 + 3.09662447881760E-0002 3.09485546248892E-0002 3.09309750857224E-0002 3.09135057928740E-0002 3.08961463688697E-0002 + 3.08788964361586E-0002 3.08617556173834E-0002 3.08447235364605E-0002 3.08277998162866E-0002 3.08109840806287E-0002 + 3.07942759534496E-0002 3.07776750589088E-0002 3.07611810212276E-0002 3.07447934653655E-0002 3.07285120163449E-0002 + 3.07123362989818E-0002 3.06962659389673E-0002 3.06803005619218E-0002 3.06644397936664E-0002 3.06486832608995E-0002 + 3.06330305899801E-0002 3.06174814074693E-0002 3.06020353409432E-0002 3.05866920173689E-0002 3.05714510647301E-0002 + 3.05563121105377E-0002 3.05412747833204E-0002 3.05263387115419E-0002 3.05115035242785E-0002 3.04967688501361E-0002 + 3.04821343190121E-0002 3.04675995601989E-0002 3.04531642040108E-0002 3.04388278811076E-0002 3.04245902214092E-0002 + 3.04104508561310E-0002 3.03964094161570E-0002 3.03824655340758E-0002 3.03686188410595E-0002 3.03548689690361E-0002 + 3.03412155510973E-0002 3.03276582202781E-0002 3.03141966087407E-0002 3.03008303510368E-0002 3.02875590805754E-0002 + 3.02743824313893E-0002 3.02613000380007E-0002 3.02483115356933E-0002 3.02354165591536E-0002 3.02226147439666E-0002 + 3.02099057262096E-0002 3.01972891423160E-0002 3.01847646282599E-0002 3.01723318211891E-0002 3.01599903584741E-0002 + 3.01477398772994E-0002 3.01355800164348E-0002 3.01235104136484E-0002 3.01115307076139E-0002 3.00996405377756E-0002 + 3.00878395431218E-0002 3.00761273638222E-0002 3.00645036397276E-0002 3.00529680110532E-0002 3.00415201197433E-0002 + 3.00301596063340E-0002 3.00188861125462E-0002 3.00076992803309E-0002 2.99965987522800E-0002 2.99855841713534E-0002 + 2.99746551806066E-0002 2.99638114233282E-0002 2.99530525439964E-0002 2.99423781863672E-0002 2.99317879957980E-0002 + 2.99212816169248E-0002 2.99108586954401E-0002 2.99005188776834E-0002 2.98902618096847E-0002 2.98800871382591E-0002 + 2.98699945100495E-0002 2.98599835735810E-0002 2.98500539758389E-0002 2.98402053659659E-0002 2.98304373925247E-0002 + 2.98207497044566E-0002 2.98111419519044E-0002 2.98016137842953E-0002 2.97921648523965E-0002 2.97827948070828E-0002 + 2.97735033000228E-0002 2.97642899823081E-0002 2.97551545065112E-0002 2.97460965251776E-0002 2.97371156912376E-0002 + 2.97282116582821E-0002 2.97193840801509E-0002 2.97106326109339E-0002 2.97019569059325E-0002 2.96933566198754E-0002 + 2.96848314085673E-0002 2.96763809283404E-0002 2.96680048353676E-0002 2.96597027864879E-0002 2.96514744400324E-0002 + 2.96433194529375E-0002 2.96352374840453E-0002 2.96272281920423E-0002 2.96192912361471E-0002 2.96114262761115E-0002 + 2.96036329720836E-0002 2.95959109847458E-0002 2.95882599750406E-0002 2.95806796045843E-0002 2.95731695353920E-0002 + 2.95657294300164E-0002 2.95583589515485E-0002 2.95510577633426E-0002 2.95438255290171E-0002 2.95366619134197E-0002 + 2.95295665809745E-0002 2.95225391969231E-0002 2.95155794278772E-0002 2.95086869389228E-0002 2.95018613978973E-0002 + 2.94951024715272E-0002 2.94884098277746E-0002 2.94817831345957E-0002 2.94752220610459E-0002 2.94687262760380E-0002 + 2.94622954493096E-0002 2.94559292511474E-0002 2.94496273522500E-0002 2.94433894235905E-0002 2.94372151371078E-0002 + 2.94311041646712E-0002 2.94250561791868E-0002 2.94190708538379E-0002 2.94131478619471E-0002 2.94072868782225E-0002 + 2.94014875769594E-0002 2.93957496334942E-0002 2.93900727235133E-0002 2.93844565230532E-0002 2.93789007090559E-0002 + 2.93734049588152E-0002 2.93679689497697E-0002 2.93625923603349E-0002 2.93572748694883E-0002 2.93520161560769E-0002 + 2.93468159004124E-0002 2.93416737822611E-0002 2.93365894832029E-0002 2.93315626839265E-0002 2.93265930667973E-0002 + 2.93216803139842E-0002 2.93168241085022E-0002 2.93120241340039E-0002 2.93072800742953E-0002 2.93025916138216E-0002 + 2.92979584380854E-0002 2.92933802323275E-0002 2.92888566828472E-0002 2.92843874763785E-0002 2.92799723000205E-0002 + 2.92756108415864E-0002 2.92713027893952E-0002 2.92670478320638E-0002 2.92628456592734E-0002 2.92586959610046E-0002 + 2.92545984273989E-0002 2.92505527495252E-0002 2.92465586191715E-0002 2.92426157284285E-0002 2.92387237697594E-0002 + 2.92348824364880E-0002 2.92310914225915E-0002 2.92273504218641E-0002 2.92236591295209E-0002 2.92200172408745E-0002 + 2.92164244521026E-0002 2.92128804596213E-0002 2.92093849603644E-0002 2.92059376522029E-0002 2.92025382333180E-0002 + 2.91991864024112E-0002 2.91958818587746E-0002 2.91926243023614E-0002 2.91894134337873E-0002 2.91862489537019E-0002 + 2.91831305642569E-0002 2.91800579672206E-0002 2.91770308653755E-0002 2.91740489622401E-0002 2.91711119614405E-0002 + 2.91682195674801E-0002 2.91653714854604E-0002 2.91625674208725E-0002 2.91598070799471E-0002 2.91570901693758E-0002 + 2.91544163966614E-0002 2.91517854696993E-0002 2.91491970964272E-0002 2.91466509865074E-0002 2.91441468493658E-0002 + 2.91416843951742E-0002 2.91392633348501E-0002 2.91368833797079E-0002 2.91345442417394E-0002 2.91322456336151E-0002 + 2.91299872680534E-0002 2.91277688595049E-0002 2.91255901214874E-0002 2.91234507692527E-0002 2.91213505184544E-0002 + 2.91192890851485E-0002 2.91172661856536E-0002 2.91152815374642E-0002 2.91133348585501E-0002 2.91114258670754E-0002 + 2.91095542822424E-0002 2.91077198240117E-0002 2.91059222121189E-0002 2.91041611675510E-0002 2.91024364119152E-0002 + 2.91007476670170E-0002 2.90990946554244E-0002 2.90974771006084E-0002 2.90958947265228E-0002 2.90943472571114E-0002 + 2.90928344177167E-0002 2.90913559338840E-0002 2.90899115319959E-0002 2.90885009387803E-0002 2.90871238814512E-0002 + 2.90857800887671E-0002 2.90844692885656E-0002 2.90831912105822E-0002 2.90819455845489E-0002 2.90807321408994E-0002 + 2.90795506109111E-0002 2.90784007262125E-0002 2.90772822190653E-0002 2.90761948222955E-0002 2.90751382694343E-0002 + 2.90741122951436E-0002 2.90731166337334E-0002 2.90721510202923E-0002 2.90712151913949E-0002 2.90703088832656E-0002 + 2.90694318332634E-0002 2.90685837794586E-0002 2.90677644598558E-0002 2.90669736138089E-0002 2.90662109810316E-0002 + 2.90654763014572E-0002 2.90647693165117E-0002 2.90640897673471E-0002 2.90634373961855E-0002 2.90628119461083E-0002 + 2.90622131604194E-0002 2.90616407829298E-0002 2.90610945584529E-0002 2.90605742323107E-0002 2.90600795501214E-0002 + 2.90596102587210E-0002 2.90591661048894E-0002 2.90587468368384E-0002 2.90583522028668E-0002 2.90579819517149E-0002 + 2.90576358332743E-0002 2.90573135978798E-0002 2.90570149960974E-0002 2.90567397797176E-0002 2.90564877007638E-0002 + 2.90562585122728E-0002 2.90560519673024E-0002 2.90558678202099E-0002 2.90557058254456E-0002 2.90555657384767E-0002 + 2.90554473152204E-0002 2.90553503119730E-0002 2.90552744863343E-0002 2.90552195957167E-0002 2.90551853989089E-0002 + 2.90551716550108E-0002 2.90551781234339E-0002 2.90552045647557E-0002 2.90552507401513E-0002 2.90553164109675E-0002 + 2.90554013393634E-0002 2.90555052886675E-0002 2.90556280219550E-0002 2.90557693035428E-0002 2.90559288983501E-0002 + 2.90561065718281E-0002 2.90563020897461E-0002 2.90565152191907E-0002 2.90567457274259E-0002 2.90569933821788E-0002 + 2.90572579523537E-0002 2.90575392071055E-0002 2.90578369161972E-0002 2.90581508505000E-0002 2.90584807807098E-0002 + 2.90588264790603E-0002 2.90591877177543E-0002 2.90595642701056E-0002 2.90599559096838E-0002 2.90603624108859E-0002 + 2.90607835486514E-0002 2.90612190988919E-0002 2.90616688375625E-0002 2.90621325418067E-0002 2.90626099888839E-0002 + 2.90631009573867E-0002 2.90636052262399E-0002 2.90641225744868E-0002 2.90646527825772E-0002 2.90651956311527E-0002 + 2.90657509015472E-0002 2.90663183762182E-0002 2.90668978374584E-0002 2.90674890686135E-0002 2.90680918542266E-0002 + 2.90687059780331E-0002 2.90693312260418E-0002 2.90699673838134E-0002 2.90706142381091E-0002 2.90712715757443E-0002 + 2.90719391850954E-0002 2.90726168543793E-0002 2.90733043725146E-0002 2.90740015298401E-0002 2.90747081160346E-0002 + 2.90754239227006E-0002 2.90761487412845E-0002 2.90768823643689E-0002 2.90776245845962E-0002 2.90783751958907E-0002 + 2.90791339925251E-0002 2.90799007691934E-0002 2.90806753215859E-0002 2.90814574459595E-0002 2.90822469389223E-0002 + 2.90830435982969E-0002 2.90838472221149E-0002 2.90846576089771E-0002 2.90854745587013E-0002 2.90862978708124E-0002 + 2.90871273465579E-0002 2.90879627868937E-0002 2.90888039938518E-0002 2.90896507703978E-0002 2.90905029195672E-0002 + 2.90913602453303E-0002 2.90922225520888E-0002 2.90930896455409E-0002 2.90939613308808E-0002 2.90948374153216E-0002 + 2.90957177055015E-0002 2.90966020092863E-0002 2.90974901352657E-0002 2.90983818923213E-0002 2.90992770902761E-0002 + 2.91001755397519E-0002 2.91010770513030E-0002 2.91019814367887E-0002 2.91028885085078E-0002 2.91037980792712E-0002 + 2.91047099627642E-0002 2.91056239731855E-0002 2.91065399254650E-0002 2.91074576349033E-0002 2.91083769178946E-0002 + 2.91092975908437E-0002 2.91102194715397E-0002 2.91111423778561E-0002 2.91120661287630E-0002 2.91129905430266E-0002 + 2.91139154412348E-0002 2.91148406437725E-0002 2.91157659719077E-0002 2.91166912476474E-0002 2.91176162933036E-0002 + 2.91185409320737E-0002 2.91194649881859E-0002 2.91203882855961E-0002 2.91213106497272E-0002 2.91222319062380E-0002 + 2.91231518815316E-0002 2.91240704026103E-0002 2.91249872971495E-0002 2.91259023932082E-0002 2.91268155202446E-0002 + 2.91277265073766E-0002 2.91286351846876E-0002 2.91295413835907E-0002 2.91304449351598E-0002 2.91313456717272E-0002 + 2.91322434254324E-0002 2.91331380306913E-0002 2.91340293207843E-0002 2.91349171304709E-0002 2.91358012952644E-0002 + 2.91366816509969E-0002 2.91375580340374E-0002 2.91384302818741E-0002 2.91392982321706E-0002 2.91401617234199E-0002 + 2.91410205948735E-0002 2.91418746858865E-0002 2.91427238371556E-0002 2.91435678894096E-0002 2.91444066845023E-0002 + 2.91452400646846E-0002 2.91460678727515E-0002 2.91468899521146E-0002 2.91477061468767E-0002 2.91485163021957E-0002 + 2.91493202631934E-0002 2.91501178759755E-0002 2.91509089871222E-0002 2.91516934439081E-0002 2.91524710944482E-0002 + 2.91532417871152E-0002 2.91540053709779E-0002 2.91547616961666E-0002 2.91555106127793E-0002 2.91562519719039E-0002 + 2.91569856253271E-0002 2.91577114256081E-0002 2.91584292252026E-0002 2.91591388776325E-0002 2.91598402374860E-0002 + 2.91605331593961E-0002 2.91612174985521E-0002 2.91618931112854E-0002 2.91625598540464E-0002 2.91632175843560E-0002 + 2.91638661597820E-0002 2.91645054391836E-0002 2.91651352813950E-0002 2.91657555463234E-0002 2.91663660944378E-0002 + 2.91669667867695E-0002 2.91675574846930E-0002 2.91681380505854E-0002 2.91687083471684E-0002 2.91692682381679E-0002 + 2.91698175873624E-0002 2.91703562594626E-0002 2.91708841202589E-0002 2.91714010350828E-0002 2.91719068707868E-0002 + 2.91724014944984E-0002 2.91728847738409E-0002 2.91733565773008E-0002 2.91738167738614E-0002 2.91742652331506E-0002 + 2.91747018252944E-0002 2.91751264211375E-0002 2.91755388920244E-0002 2.91759391101664E-0002 2.91763269482023E-0002 + 2.91767022792717E-0002 2.91770649773101E-0002 2.91774149166085E-0002 2.91777519724749E-0002 2.91780760203539E-0002 + 2.91783869367819E-0002 2.91786845985065E-0002 2.91789688830743E-0002 2.91792396683911E-0002 2.91794968333105E-0002 + 2.91797402571933E-0002 2.91799698196871E-0002 2.91801854013896E-0002 2.91803868837019E-0002 2.91805741477982E-0002 + 2.91807470764674E-0002 2.91809055521990E-0002 2.91810494587304E-0002 2.91811786798685E-0002 2.91812931005960E-0002 + 2.91813926061878E-0002 2.91814770823583E-0002 2.91815464154835E-0002 2.91816004926756E-0002 2.91816392015617E-0002 + 2.91816624305804E-0002 2.91816700686128E-0002 2.91816620046142E-0002 2.91816381290170E-0002 2.91815983322551E-0002 + 2.91815425055027E-0002 2.91814705405271E-0002 2.91813823298372E-0002 2.91812777661668E-0002 2.91811567432881E-0002 + 2.91810191550513E-0002 2.91808648962723E-0002 2.91806938622159E-0002 2.91805059488921E-0002 2.91803010526128E-0002 + 2.91800790705103E-0002 2.91798398999458E-0002 2.91795834392502E-0002 2.91793095873545E-0002 2.91790182432721E-0002 + 2.91787093072842E-0002 2.91783826796073E-0002 2.91780382615048E-0002 2.91776759544725E-0002 2.91772956609063E-0002 + 2.91768972833615E-0002 2.91764807253687E-0002 2.91760458909155E-0002 2.91755926843729E-0002 2.91751210109406E-0002 + 2.91746307761289E-0002 2.91741218864261E-0002 2.91735942483354E-0002 2.91730477694136E-0002 2.91724823574557E-0002 + 2.91718979209405E-0002 2.91712943689946E-0002 2.91706716112808E-0002 2.91700295578878E-0002 2.91693681195162E-0002 + 2.91686872075164E-0002 2.91679867338888E-0002 2.91672666108388E-0002 2.91665267514461E-0002 2.91657670692565E-0002 + 2.91649874783193E-0002 2.91641878934113E-0002 2.91633682297398E-0002 2.91625284027568E-0002 2.91616683292016E-0002 + 2.91607879256871E-0002 2.91598871096682E-0002 2.91589657993676E-0002 2.91580239127715E-0002 2.91570613695658E-0002 + 2.91560780889029E-0002 2.91550739912266E-0002 2.91540489971184E-0002 2.91530030280055E-0002 2.91519360054908E-0002 + 2.91508478520612E-0002 2.91497384906788E-0002 2.91486078445570E-0002 2.91474558377951E-0002 2.91462823949316E-0002 + 2.91450874410188E-0002 2.91438709017733E-0002 2.91426327030905E-0002 2.91413727717175E-0002 2.91400910350668E-0002 + 2.91387874206568E-0002 2.91374618569339E-0002 2.91361142725632E-0002 2.91347445970269E-0002 2.91333527601013E-0002 + 2.91319386921944E-0002 2.91305023242708E-0002 2.91290435878154E-0002 2.91275624148337E-0002 2.91260587378522E-0002 + 2.91245324899566E-0002 2.91229836045674E-0002 2.91214120158148E-0002 2.91198176585394E-0002 2.91182004676559E-0002 + 2.91165603788654E-0002 2.91148973283557E-0002 2.91132112529149E-0002 2.91115020898190E-0002 2.91097697765703E-0002 + 2.91080142515722E-0002 2.91062354534552E-0002 2.91044333217523E-0002 2.91026077961494E-0002 2.91007588168232E-0002 + 2.90988863247419E-0002 2.90969902611779E-0002 2.90950705678960E-0002 2.90931271875290E-0002 2.90911600627151E-0002 + 2.90891691367738E-0002 2.90871543536315E-0002 2.90851156577466E-0002 2.90830529939979E-0002 2.90809663076468E-0002 + 2.90788555445633E-0002 2.90767206511893E-0002 2.90745615743131E-0002 2.90723782615591E-0002 2.90701706605980E-0002 + 2.90679387199000E-0002 2.90656823881328E-0002 2.90634016148775E-0002 2.90610963499136E-0002 2.90587665435962E-0002 + 2.90564121467058E-0002 2.90540331107495E-0002 2.90516293872843E-0002 2.90492009287833E-0002 2.90467476879584E-0002 + 2.90442696180997E-0002 2.90417666730003E-0002 2.90392388069197E-0002 2.90366859746215E-0002 2.90341081312230E-0002 + 2.90315052324597E-0002 2.90288772345349E-0002 2.90262240939692E-0002 2.90235457679405E-0002 2.90208422141712E-0002 + 2.90181133905892E-0002 2.90153592558185E-0002 2.90125797688782E-0002 2.90097748892582E-0002 2.90069445769194E-0002 + 2.90040887923701E-0002 2.90012074964394E-0002 2.89983006504289E-0002 2.89953682164533E-0002 2.89924101563446E-0002 + 2.89894264334293E-0002 2.89864170104871E-0002 2.89833818515287E-0002 2.89803209205102E-0002 2.89772341819766E-0002 + 2.89741216014027E-0002 2.89709831438315E-0002 2.89678187756908E-0002 2.89646284631285E-0002 2.89614121731107E-0002 + 2.89581698731192E-0002 2.89549015307353E-0002 2.89516071143978E-0002 2.89482865928353E-0002 2.89449399349904E-0002 + 2.89415671106269E-0002 2.89381680899130E-0002 2.89347428430427E-0002 2.89312913411081E-0002 2.89278135555690E-0002 + 2.89243094582157E-0002 2.89207790211686E-0002 2.89172222174106E-0002 2.89136390198762E-0002 2.89100294020972E-0002 + 2.89063933382791E-0002 2.89027308026940E-0002 2.88990417703267E-0002 2.88953262166848E-0002 2.88915841171156E-0002 + 2.88878154480601E-0002 2.88840201862936E-0002 2.88801983084318E-0002 2.88763497922614E-0002 2.88724746155626E-0002 + 2.88685727566409E-0002 2.88646441944427E-0002 2.88606889078315E-0002 2.88567068765408E-0002 2.88526980806408E-0002 + 2.88486625005010E-0002 2.88446001169051E-0002 2.88405109112029E-0002 2.88363948649687E-0002 2.88322519605345E-0002 + 2.88280821801141E-0002 2.88238855067945E-0002 2.88196619238878E-0002 2.88154114149323E-0002 2.88111339644163E-0002 + 2.88068295567501E-0002 2.88024981767991E-0002 2.87981398100373E-0002 2.87937544421663E-0002 2.87893420594968E-0002 + 2.87849026483385E-0002 2.87804361959166E-0002 2.87759426894941E-0002 2.87714221167919E-0002 2.87668744661424E-0002 + 2.87622997259543E-0002 2.87576978852105E-0002 2.87530689334296E-0002 2.87484128601313E-0002 2.87437296554867E-0002 + 2.87390193101656E-0002 2.87342818149928E-0002 2.87295171611776E-0002 2.87247253404293E-0002 2.87199063450720E-0002 + 2.87150601671268E-0002 2.87101867997659E-0002 2.87052862361273E-0002 2.87003584696970E-0002 2.86954034945777E-0002 + 2.86904213050682E-0002 2.86854118959311E-0002 2.86803752621258E-0002 2.86753113992296E-0002 2.86702203032083E-0002 + 2.86651019701102E-0002 2.86599563966410E-0002 2.86547835797041E-0002 2.86495835165162E-0002 2.86443562050293E-0002 + 2.86391016430870E-0002 2.86338198291924E-0002 2.86285107620860E-0002 2.86231744410918E-0002 2.86178108654645E-0002 + 2.86124200351967E-0002 2.86070019504040E-0002 2.86015566119023E-0002 2.85960840204777E-0002 2.85905841773478E-0002 + 2.85850570843542E-0002 2.85795027432714E-0002 2.85739211565366E-0002 2.85683123269434E-0002 2.85626762574875E-0002 + 2.85570129514444E-0002 2.85513224126771E-0002 2.85456046451747E-0002 2.85398596534377E-0002 2.85340874421320E-0002 + 2.85282880164737E-0002 2.85224613818061E-0002 2.85166075439467E-0002 2.85107265091485E-0002 2.85048182836002E-0002 + 2.84988828743891E-0002 2.84929202883068E-0002 2.84869305331987E-0002 2.84809136165768E-0002 2.84748695465444E-0002 + 2.84687983316813E-0002 2.84626999806586E-0002 2.84565745026240E-0002 2.84504219070098E-0002 2.84442422033784E-0002 + 2.84380354020404E-0002 2.84318015133598E-0002 2.84255405479089E-0002 2.84192525166612E-0002 2.84129374311852E-0002 + 2.84065953029881E-0002 2.84002261439789E-0002 2.83938299665855E-0002 2.83874067833293E-0002 2.83809566070574E-0002 + 2.83744794511750E-0002 2.83679753289494E-0002 2.83614442544387E-0002 2.83548862416021E-0002 2.83483013048808E-0002 + 2.83416894592751E-0002 2.83350507194940E-0002 2.83283851010772E-0002 2.83216926195826E-0002 2.83149732908577E-0002 + 2.83082271315046E-0002 2.83014541576407E-0002 2.82946543863320E-0002 2.82878278345863E-0002 2.82809745198960E-0002 + 2.82740944599667E-0002 2.82671876726790E-0002 2.82602541764762E-0002 2.82532939897440E-0002 2.82463071314317E-0002 + 2.82392936206642E-0002 2.82322534768584E-0002 2.82251867196852E-0002 2.82180933692245E-0002 2.82109734455774E-0002 + 2.82038269694487E-0002 2.81966539614873E-0002 2.81894544428684E-0002 2.81822284349058E-0002 2.81749759593626E-0002 + 2.81676970379855E-0002 2.81603916930874E-0002 2.81530599469262E-0002 2.81457018224044E-0002 2.81383173424477E-0002 + 2.81309065303155E-0002 2.81234694093687E-0002 2.81160060035359E-0002 2.81085163367692E-0002 2.81010004334727E-0002 + 2.80934583179965E-0002 2.80858900153372E-0002 2.80782955505161E-0002 2.80706749487343E-0002 2.80630282357626E-0002 + 2.80553554371630E-0002 2.80476565792621E-0002 2.80399316883340E-0002 2.80321807907945E-0002 2.80244039136694E-0002 + 2.80166010838930E-0002 2.80087723288150E-0002 2.80009176760059E-0002 2.79930371532570E-0002 2.79851307885806E-0002 + 2.79771986102493E-0002 2.79692406469131E-0002 2.79612569270924E-0002 2.79532474799587E-0002 2.79452123345932E-0002 + 2.79371515206112E-0002 2.79290650676555E-0002 2.79209530055909E-0002 2.79128153646615E-0002 2.79046521752555E-0002 + 2.78964634677891E-0002 2.78882492731749E-0002 2.78800096226662E-0002 2.78717445473095E-0002 2.78634540786879E-0002 + 2.78551382484516E-0002 2.78467970887097E-0002 2.78384306315212E-0002 2.78300389092086E-0002 2.78216219543972E-0002 + 2.78131798000149E-0002 2.78047124789403E-0002 2.77962200243945E-0002 2.77877024699018E-0002 2.77791598491332E-0002 + 2.77705921959462E-0002 2.77619995443451E-0002 2.77533819285208E-0002 2.77447393831641E-0002 2.77360719427607E-0002 + 2.77273796423754E-0002 2.77186625169066E-0002 2.77099206017932E-0002 2.77011539323867E-0002 2.76923625444222E-0002 + 2.76835464738222E-0002 2.76747057565401E-0002 2.76658404289132E-0002 2.76569505273491E-0002 2.76480360886005E-0002 + 2.76390971493728E-0002 2.76301337466774E-0002 2.76211459178321E-0002 2.76121337001076E-0002 2.76030971311205E-0002 + 2.75940362486763E-0002 2.75849510906908E-0002 2.75758416953476E-0002 2.75667081007836E-0002 2.75575503456397E-0002 + 2.75483684684316E-0002 2.75391625080612E-0002 2.75299325036203E-0002 2.75206784941150E-0002 2.75114005189775E-0002 + 2.75020986176726E-0002 2.74927728301705E-0002 2.74834231958437E-0002 2.74740497550827E-0002 2.74646525480349E-0002 + 2.74552316149598E-0002 2.74457869963862E-0002 2.74363187329553E-0002 2.74268268656173E-0002 2.74173114353559E-0002 + 2.74077724831882E-0002 2.73982100506777E-0002 2.73886241790665E-0002 2.73790149100842E-0002 2.73693822854544E-0002 + 2.73597263470929E-0002 2.73500471373046E-0002 2.73403446979149E-0002 2.73306190716918E-0002 2.73208703009044E-0002 + 2.73110984283494E-0002 2.73013034967991E-0002 2.72914855492771E-0002 2.72816446287231E-0002 2.72717807786055E-0002 + 2.72618940421306E-0002 2.72519844628955E-0002 2.72420520845516E-0002 2.72320969508050E-0002 2.72221191057528E-0002 + 2.72121185933291E-0002 2.72020954577800E-0002 2.71920497434462E-0002 2.71819814947233E-0002 2.71718907562399E-0002 + 2.71617775726600E-0002 2.71516419889207E-0002 2.71414840499744E-0002 2.71313038007298E-0002 2.71211012866067E-0002 + 2.71108765528623E-0002 2.71006296449677E-0002 2.70903606084893E-0002 2.70800694890685E-0002 2.70697563325217E-0002 + 2.70594211849390E-0002 2.70490640920495E-0002 2.70386851002534E-0002 2.70282842557087E-0002 2.70178616048678E-0002 + 2.70074171940999E-0002 2.69969510700883E-0002 2.69864632794532E-0002 2.69759538691290E-0002 2.69654228858481E-0002 + 2.69548703767368E-0002 2.69442963888981E-0002 2.69337009695509E-0002 2.69230841659109E-0002 2.69124460255480E-0002 + 2.69017865959300E-0002 2.68911059245607E-0002 2.68804040592992E-0002 2.68696810477824E-0002 2.68589369380817E-0002 + 2.68481717780468E-0002 2.68373856158027E-0002 2.68265784994517E-0002 2.68157504773717E-0002 2.68049015977784E-0002 + 2.67940319091433E-0002 2.67831414599750E-0002 2.67722302989784E-0002 2.67612984745964E-0002 2.67503460357874E-0002 + 2.67393730312475E-0002 2.67283795099893E-0002 2.67173655209825E-0002 2.67063311133339E-0002 2.66952763360476E-0002 + 2.66842012385040E-0002 2.66731058700210E-0002 2.66619902798341E-0002 2.66508545173755E-0002 2.66396986322943E-0002 + 2.66285226739777E-0002 2.66173266922892E-0002 2.66061107367503E-0002 2.65948748571994E-0002 2.65836191034724E-0002 + 2.65723435255424E-0002 2.65610481732602E-0002 2.65497330968135E-0002 2.65383983460079E-0002 2.65270439713061E-0002 + 2.65156700226484E-0002 2.65042765504324E-0002 2.64928636049735E-0002 2.64814312365443E-0002 2.64699794956750E-0002 + 2.64585084327532E-0002 2.64470180983243E-0002 2.64355085428709E-0002 2.64239798172336E-0002 2.64124319719100E-0002 + 2.64008650575955E-0002 2.63892791251032E-0002 2.63776742252235E-0002 2.63660504088047E-0002 2.63544077267124E-0002 + 2.63427462298897E-0002 2.63310659693377E-0002 2.63193669959545E-0002 2.63076493609163E-0002 2.62959131152365E-0002 + 2.62841583099259E-0002 2.62723849963336E-0002 2.62605932254654E-0002 2.62487830485849E-0002 2.62369545169736E-0002 + 2.62251076818903E-0002 2.62132425945506E-0002 2.62013593063287E-0002 2.61894578686559E-0002 2.61775383328809E-0002 + 2.61656007503294E-0002 2.61536451724651E-0002 2.61416716508295E-0002 2.61296802367200E-0002 2.61176709817128E-0002 + 2.61056439373613E-0002 2.60935991551557E-0002 2.60815366866035E-0002 2.60694565833100E-0002 2.60573588968174E-0002 + 2.60452436787857E-0002 2.60331109807109E-0002 2.60209608542472E-0002 2.60087933510058E-0002 2.59966085227356E-0002 + 2.59844064208404E-0002 2.59721870971639E-0002 2.59599506033051E-0002 2.59476969908803E-0002 2.59354263115830E-0002 + 2.59231386171643E-0002 2.59108339591301E-0002 2.58985123892250E-0002 2.58861739591302E-0002 2.58738187205638E-0002 + 2.58614467251196E-0002 2.58490580244487E-0002 2.58366526702592E-0002 2.58242307142157E-0002 2.58117922079189E-0002 + 2.57993372030263E-0002 2.57868657511721E-0002 2.57743779040069E-0002 2.57618737131578E-0002 2.57493532300864E-0002 + 2.57368165066148E-0002 2.57242635942175E-0002 2.57116945443251E-0002 2.56991094087485E-0002 2.56865082387691E-0002 + 2.56738910860487E-0002 2.56612580020634E-0002 2.56486090382850E-0002 2.56359442461211E-0002 2.56232636770965E-0002 + 2.56105673826104E-0002 2.55978554140178E-0002 2.55851278227705E-0002 2.55723846601139E-0002 2.55596259773495E-0002 + 2.55468518258561E-0002 2.55340622568864E-0002 2.55212573216886E-0002 2.55084370714459E-0002 2.54956015572762E-0002 + 2.54827508304347E-0002 2.54698849419289E-0002 2.54570039429035E-0002 2.54441078843364E-0002 2.54311968174036E-0002 + 2.54182707928299E-0002 2.54053298617615E-0002 2.53923740749947E-0002 2.53794034834022E-0002 2.53664181378109E-0002 + 2.53534180889818E-0002 2.53404033876506E-0002 2.53273740845274E-0002 2.53143302302563E-0002 2.53012718753948E-0002 + 2.52881990705560E-0002 2.52751118662663E-0002 2.52620103129249E-0002 2.52488944609455E-0002 2.52357643608179E-0002 + 2.52226200627414E-0002 2.52094616169909E-0002 2.51962890737746E-0002 2.51831024833153E-0002 2.51699018956875E-0002 + 2.51566873608577E-0002 2.51434589289904E-0002 2.51302166498975E-0002 2.51169605734666E-0002 2.51036907495380E-0002 + 2.50904072279460E-0002 2.50771100583148E-0002 2.50637992903232E-0002 2.50504749734603E-0002 2.50371371574122E-0002 + 2.50237858915531E-0002 2.50104212252092E-0002 2.49970432077818E-0002 2.49836518885635E-0002 2.49702473167174E-0002 + 2.49568295412570E-0002 2.49433986113722E-0002 2.49299545760420E-0002 2.49164974841767E-0002 2.49030273845163E-0002 + 2.48895443259975E-0002 2.48760483572229E-0002 2.48625395268284E-0002 2.48490178833812E-0002 2.48354834753591E-0002 + 2.48219363511094E-0002 2.48083765590741E-0002 2.47948041474624E-0002 2.47812191643325E-0002 2.47676216578979E-0002 + 2.47540116760576E-0002 2.47403892668659E-0002 2.47267544781233E-0002 2.47131073575198E-0002 2.46994479528392E-0002 + 2.46857763115499E-0002 2.46720924813164E-0002 2.46583965094259E-0002 2.46446884432800E-0002 2.46309683301483E-0002 + 2.46172362171072E-0002 2.46034921513473E-0002 2.45897361797630E-0002 2.45759683492396E-0002 2.45621887066326E-0002 + 2.45483972986654E-0002 2.45345941718673E-0002 2.45207793727581E-0002 2.45069529478890E-0002 2.44931149434939E-0002 + 2.44792654058176E-0002 2.44654043810332E-0002 2.44515319150987E-0002 2.44376480540855E-0002 2.44237528437673E-0002 + 2.44098463298253E-0002 2.43959285580333E-0002 2.43819995738261E-0002 2.43680594227306E-0002 2.43541081500578E-0002 + 2.43401458009230E-0002 2.43261724206364E-0002 2.43121880541478E-0002 2.42981927463755E-0002 2.42841865420624E-0002 + 2.42701694861047E-0002 2.42561416229761E-0002 2.42421029970978E-0002 2.42280536529618E-0002 2.42139936348018E-0002 + 2.41999229867780E-0002 2.41858417529981E-0002 2.41717499773517E-0002 2.41576477035932E-0002 2.41435349755267E-0002 + 2.41294118367796E-0002 2.41152783307197E-0002 2.41011345007852E-0002 2.40869803902780E-0002 2.40728160421786E-0002 + 2.40586414996815E-0002 2.40444568056182E-0002 2.40302620027249E-0002 2.40160571336835E-0002 2.40018422411014E-0002 + 2.39876173673457E-0002 2.39733825546673E-0002 2.39591378453657E-0002 2.39448832813967E-0002 2.39306189047441E-0002 + 2.39163447571302E-0002 2.39020608803669E-0002 2.38877673159426E-0002 2.38734641052904E-0002 2.38591512897262E-0002 + 2.38448289104276E-0002 2.38304970084757E-0002 2.38161556247510E-0002 2.38018048000576E-0002 2.37874445750818E-0002 + 2.37730749903919E-0002 2.37586960862310E-0002 2.37443079030965E-0002 2.37299104808915E-0002 2.37155038598559E-0002 + 2.37010880798004E-0002 2.36866631802929E-0002 2.36722292011341E-0002 2.36577861818196E-0002 2.36433341615395E-0002 + 2.36288731795301E-0002 2.36144032749707E-0002 2.35999244866102E-0002 2.35854368533887E-0002 2.35709404139194E-0002 + 2.35564352067369E-0002 2.35419212701316E-0002 2.35273986423980E-0002 2.35128673615652E-0002 2.34983274657287E-0002 + 2.34837789925522E-0002 2.34692219797655E-0002 2.34546564649361E-0002 2.34400824853655E-0002 2.34255000783584E-0002 + 2.34109092809117E-0002 2.33963101300879E-0002 2.33817026626619E-0002 2.33670869152039E-0002 2.33524629244117E-0002 + 2.33378307264460E-0002 2.33231903576985E-0002 2.33085418541688E-0002 2.32938852516720E-0002 2.32792205861501E-0002 + 2.32645478931943E-0002 2.32498672081897E-0002 2.32351785665548E-0002 2.32204820034084E-0002 2.32057775538295E-0002 + 2.31910652525659E-0002 2.31763451344607E-0002 2.31616172340775E-0002 2.31468815857315E-0002 2.31321382237285E-0002 + 2.31173871822614E-0002 2.31026284951697E-0002 2.30878621963147E-0002 2.30730883192358E-0002 2.30583068975144E-0002 + 2.30435179644620E-0002 2.30287215532653E-0002 2.30139176968714E-0002 2.29991064282072E-0002 2.29842877799178E-0002 + 2.29694617845547E-0002 2.29546284745442E-0002 2.29397878820409E-0002 2.29249400391261E-0002 2.29100849777242E-0002 + 2.28952227296025E-0002 2.28803533262666E-0002 2.28654767992212E-0002 2.28505931796152E-0002 2.28357024986172E-0002 + 2.28208047871651E-0002 2.28059000760282E-0002 2.27909883957445E-0002 2.27760697767775E-0002 2.27611442495366E-0002 + 2.27462118439175E-0002 2.27312725900544E-0002 2.27163265176508E-0002 2.27013736563452E-0002 2.26864140355126E-0002 + 2.26714476845989E-0002 2.26564746325137E-0002 2.26414949083841E-0002 2.26265085409155E-0002 2.26115155587376E-0002 + 2.25965159903092E-0002 2.25815098639295E-0002 2.25664972076113E-0002 2.25514780494692E-0002 2.25364524170798E-0002 + 2.25214203382155E-0002 2.25063818401943E-0002 2.24913369503515E-0002 2.24762856957458E-0002 2.24612281033166E-0002 + 2.24461641998106E-0002 2.24310940117498E-0002 2.24160175656309E-0002 2.24009348876210E-0002 2.23858460037880E-0002 + 2.23707509400796E-0002 2.23556497222080E-0002 2.23405423756072E-0002 2.23254289257798E-0002 2.23103093978345E-0002 + 2.22951838168432E-0002 2.22800522076308E-0002 2.22649145948485E-0002 2.22497710030577E-0002 2.22346214564777E-0002 + 2.22194659793534E-0002 2.22043045956293E-0002 2.21891373290754E-0002 2.21739642033188E-0002 2.21587852418223E-0002 + 2.21436004678424E-0002 2.21284099044500E-0002 2.21132135745619E-0002 2.20980115009407E-0002 2.20828037061523E-0002 + 2.20675902124925E-0002 2.20523710422392E-0002 2.20371462173996E-0002 2.20219157598469E-0002 2.20066796911730E-0002 + 2.19914380328670E-0002 2.19761908063575E-0002 2.19609380326434E-0002 2.19456797327474E-0002 2.19304159273989E-0002 + 2.19151466371927E-0002 2.18998718825462E-0002 2.18845916837311E-0002 2.18693060607467E-0002 2.18540150334250E-0002 + 2.18387186215575E-0002 2.18234168445465E-0002 2.18081097218275E-0002 2.17927972724675E-0002 2.17774795154396E-0002 + 2.17621564695489E-0002 2.17468281533691E-0002 2.17314945853792E-0002 2.17161557837421E-0002 2.17008117665367E-0002 + 2.16854625516622E-0002 2.16701081567965E-0002 2.16547485994693E-0002 2.16393838969672E-0002 2.16240140664392E-0002 + 2.16086391249071E-0002 2.15932590890750E-0002 2.15778739755300E-0002 2.15624838007846E-0002 2.15470885809591E-0002 + 2.15316883321939E-0002 2.15162830702579E-0002 2.15008728108980E-0002 2.14854575695947E-0002 2.14700373616686E-0002 + 2.14546122022268E-0002 2.14391821062479E-0002 2.14237470884225E-0002 2.14083071634288E-0002 2.13928623455827E-0002 + 2.13774126491343E-0002 2.13619580881092E-0002 2.13464986763181E-0002 2.13310344274743E-0002 2.13155653550019E-0002 + 2.13000914721525E-0002 2.12846127921644E-0002 2.12691293278592E-0002 2.12536410920129E-0002 2.12381480971011E-0002 + 2.12226503556175E-0002 2.12071478796379E-0002 2.11916406812245E-0002 2.11761287721592E-0002 2.11606121641355E-0002 + 2.11450908685561E-0002 2.11295648966388E-0002 2.11140342595232E-0002 2.10984989680999E-0002 2.10829590330641E-0002 + 2.10674144649361E-0002 2.10518652740509E-0002 2.10363114706219E-0002 2.10207530645065E-0002 2.10051900656318E-0002 + 2.09896224834832E-0002 2.09740503275945E-0002 2.09584736071108E-0002 2.09428923310866E-0002 2.09273065084432E-0002 + 2.09117161478406E-0002 2.08961212577520E-0002 2.08805218465700E-0002 2.08649179223085E-0002 2.08493094930284E-0002 + 2.08336965664327E-0002 2.08180791501221E-0002 2.08024572515096E-0002 2.07868308777351E-0002 2.07712000359318E-0002 + 2.07555647329166E-0002 2.07399249753182E-0002 2.07242807696197E-0002 2.07086321221582E-0002 2.06929790390605E-0002 + 2.06773215261796E-0002 2.06616595893714E-0002 2.06459932341318E-0002 2.06303224658208E-0002 2.06146472897372E-0002 + 2.05989677108300E-0002 2.05832837339867E-0002 2.05675953637980E-0002 2.05519026047608E-0002 2.05362054612568E-0002 + 2.05205039373062E-0002 2.05047980367924E-0002 2.04890877635685E-0002 2.04733731211685E-0002 2.04576541130213E-0002 + 2.04419307422471E-0002 2.04262030119461E-0002 2.04104709248880E-0002 2.03947344838226E-0002 2.03789936912009E-0002 + 2.03632485492930E-0002 2.03474990602627E-0002 2.03317452260606E-0002 2.03159870484344E-0002 2.03002245289931E-0002 + 2.02844576691425E-0002 2.02686864700426E-0002 2.02529109328639E-0002 2.02371310584024E-0002 2.02213468473679E-0002 + 2.02055583002774E-0002 2.01897654174975E-0002 2.01739681991371E-0002 2.01581666451973E-0002 2.01423607555503E-0002 + 2.01265505297238E-0002 2.01107359672558E-0002 2.00949170673724E-0002 2.00790938292017E-0002 2.00632662516562E-0002 + 2.00474343334863E-0002 2.00315980732800E-0002 2.00157574694088E-0002 1.99999125201679E-0002 1.99840632235070E-0002 + 1.99682095773416E-0002 1.99523515794247E-0002 1.99364892272166E-0002 1.99206225181008E-0002 1.99047514492541E-0002 + 1.98888760176899E-0002 1.98729962202688E-0002 1.98571120536121E-0002 1.98412235142419E-0002 1.98253305984193E-0002 + 1.98094333023489E-0002 1.97935316220066E-0002 1.97776255531714E-0002 1.97617150915331E-0002 1.97458002324769E-0002 + 1.97298809713310E-0002 1.97139573032585E-0002 1.96980292231823E-0002 1.96820967259138E-0002 1.96661598060021E-0002 + 1.96502184579818E-0002 1.96342726760820E-0002 1.96183224544629E-0002 1.96023677870330E-0002 1.95864086676099E-0002 + 1.95704450897809E-0002 1.95544770469884E-0002 1.95385045325411E-0002 1.95225275395380E-0002 1.95065460609440E-0002 + 1.94905600895359E-0002 1.94745696179343E-0002 1.94585746386038E-0002 1.94425751438853E-0002 1.94265711258552E-0002 + 1.94105625764444E-0002 1.93945494875351E-0002 1.93785318507666E-0002 1.93625096576104E-0002 1.93464828993813E-0002 + 1.93304515672693E-0002 1.93144156521883E-0002 1.92983751450790E-0002 1.92823300365948E-0002 1.92662803172208E-0002 + 1.92502259773926E-0002 1.92341670072908E-0002 1.92181033968949E-0002 1.92020351361670E-0002 1.91859622148139E-0002 + 1.91698846224273E-0002 1.91538023484627E-0002 1.91377153820758E-0002 1.91216237124808E-0002 1.91055273285925E-0002 + 1.90894262192426E-0002 1.90733203729956E-0002 1.90572097784414E-0002 1.90410944238807E-0002 1.90249742974767E-0002 + 1.90088493873091E-0002 1.89927196812551E-0002 1.89765851670321E-0002 1.89604458322523E-0002 1.89443016642595E-0002 + 1.89281526504657E-0002 1.89119987779059E-0002 1.88958400336394E-0002 1.88796764044571E-0002 1.88635078770653E-0002 + 1.88473344379883E-0002 1.88311560736770E-0002 1.88149727703129E-0002 1.87987845140363E-0002 1.87825912908052E-0002 + 1.87663930864708E-0002 1.87501898866473E-0002 1.87339816768530E-0002 1.87177684425646E-0002 1.87015501689345E-0002 + 1.86853268410949E-0002 1.86690984440165E-0002 1.86528649625194E-0002 1.86366263812618E-0002 1.86203826848164E-0002 + 1.86041338575612E-0002 1.85878798837341E-0002 1.85716207475306E-0002 1.85553564328749E-0002 1.85390869236490E-0002 + 1.85228122035341E-0002 1.85065322561307E-0002 1.84902470648930E-0002 1.84739566131344E-0002 1.84576608840052E-0002 + 1.84413598605476E-0002 1.84250535256733E-0002 1.84087418621857E-0002 1.83924248527028E-0002 1.83761024797179E-0002 + 1.83597747256805E-0002 1.83434415727842E-0002 1.83271030032173E-0002 1.83107589989004E-0002 1.82944095417325E-0002 + 1.82780546134760E-0002 1.82616941957295E-0002 1.82453282699764E-0002 1.82289568176073E-0002 1.82125798198210E-0002 + 1.81961972577723E-0002 1.81798091124189E-0002 1.81634153646686E-0002 1.81470159952101E-0002 1.81306109846932E-0002 + 1.81142003136684E-0002 1.80977839624339E-0002 1.80813619113473E-0002 1.80649341404754E-0002 1.80485006298838E-0002 + 1.80320613594623E-0002 1.80156163090225E-0002 1.79991654582386E-0002 1.79827087866682E-0002 1.79662462737583E-0002 + 1.79497778988065E-0002 1.79333036410929E-0002 1.79168234796549E-0002 1.79003373935558E-0002 1.78838453616274E-0002 + 1.78673473626338E-0002 1.78508433752610E-0002 1.78343333780998E-0002 1.78178173494871E-0002 1.78012952678733E-0002 + 1.77847671113611E-0002 1.77682328581941E-0002 1.77516924862954E-0002 1.77351459736577E-0002 1.77185932980246E-0002 + 1.77020344371097E-0002 1.76854693685152E-0002 1.76688980697308E-0002 1.76523205181780E-0002 1.76357366911225E-0002 + 1.76191465657722E-0002 1.76025501192341E-0002 1.75859473284749E-0002 1.75693381704371E-0002 1.75527226218625E-0002 + 1.75361006595234E-0002 1.75194722599859E-0002 1.75028373997857E-0002 1.74861960553185E-0002 1.74695482029606E-0002 + 1.74528938188981E-0002 1.74362328793090E-0002 1.74195653602085E-0002 1.74028912376090E-0002 1.73862104873436E-0002 + 1.73695230852422E-0002 1.73528290069610E-0002 1.73361282281419E-0002 1.73194207242860E-0002 1.73027064708469E-0002 + 1.72859854431649E-0002 1.72692576165382E-0002 1.72525229661238E-0002 1.72357814670315E-0002 1.72190330943232E-0002 + 1.72022778228976E-0002 1.71855156276386E-0002 1.71687464833275E-0002 1.71519703646812E-0002 1.71351872463357E-0002 + 1.71183971028241E-0002 1.71015999085929E-0002 1.70847956381180E-0002 1.70679842657059E-0002 1.70511657655766E-0002 + 1.70343401119514E-0002 1.70175072789046E-0002 1.70006672405339E-0002 1.69838199707675E-0002 1.69669654435128E-0002 + 1.69501036326183E-0002 1.69332345118396E-0002 1.69163580548679E-0002 1.68994742353512E-0002 1.68825830268895E-0002 + 1.68656844029290E-0002 1.68487783369728E-0002 1.68318648023594E-0002 1.68149437724174E-0002 1.67980152204325E-0002 + 1.67810791195753E-0002 1.67641354430180E-0002 1.67471841638062E-0002 1.67302252550037E-0002 1.67132586895424E-0002 + 1.66962844403996E-0002 1.66793024803766E-0002 1.66623127823202E-0002 1.66453153189561E-0002 1.66283100629947E-0002 + 1.66112969871196E-0002 1.65942760639268E-0002 1.65772472659524E-0002 1.65602105657168E-0002 1.65431659356747E-0002 + 1.65261133482599E-0002 1.65090527758237E-0002 1.64919841906739E-0002 1.64749075651360E-0002 1.64578228714200E-0002 + 1.64407300817531E-0002 1.64236291682360E-0002 1.64065201030534E-0002 1.63894028582355E-0002 1.63722774058410E-0002 + 1.63551437178962E-0002 1.63380017663281E-0002 1.63208515230980E-0002 1.63036929600735E-0002 1.62865260491897E-0002 + 1.62693507622324E-0002 1.62521670709771E-0002 1.62349749472557E-0002 1.62177743627895E-0002 1.62005652892563E-0002 + 1.61833476983957E-0002 1.61661215618536E-0002 1.61488868512544E-0002 1.61316435382175E-0002 1.61143915943243E-0002 + 1.60971309911514E-0002 1.60798617002481E-0002 1.60625836930868E-0002 1.60452969412462E-0002 1.60280014161610E-0002 + 1.60106970892891E-0002 1.59933839321167E-0002 1.59760619160476E-0002 1.59587310125139E-0002 1.59413911929428E-0002 + 1.59240424286791E-0002 1.59066846911293E-0002 1.58893179516673E-0002 1.58719421816401E-0002 1.58545573524231E-0002 + 1.58371634353146E-0002 1.58197604016917E-0002 1.58023482228486E-0002 1.57849268701474E-0002 1.57674963148841E-0002 + 1.57500565283832E-0002 1.57326074819702E-0002 1.57151491469437E-0002 1.56976814946140E-0002 1.56802044963317E-0002 + 1.56627181233754E-0002 1.56452223470976E-0002 1.56277171388122E-0002 1.56102024698511E-0002 1.55926783115360E-0002 + 1.55751446352452E-0002 1.55576014122855E-0002 1.55400486140710E-0002 1.55224862119216E-0002 1.55049141772926E-0002 + 1.54873324814948E-0002 1.54697410959969E-0002 1.54521399921789E-0002 1.54345291415119E-0002 1.54169085154620E-0002 + 1.53992780854634E-0002 1.53816378230463E-0002 1.53639876996863E-0002 1.53463276869385E-0002 1.53286577563819E-0002 + 1.53109778795180E-0002 1.52932880280237E-0002 1.52755881734648E-0002 1.52578782875320E-0002 1.52401583419060E-0002 + 1.52224283082692E-0002 1.52046881583387E-0002 1.51869378639175E-0002 1.51691773968155E-0002 1.51514067288051E-0002 + 1.51336258317891E-0002 1.51158346776438E-0002 1.50980332383091E-0002 1.50802214857713E-0002 1.50623993920015E-0002 + 1.50445669290513E-0002 1.50267240690413E-0002 1.50088707840434E-0002 1.49910070462437E-0002 1.49731328278637E-0002 + 1.49552481011608E-0002 1.49373528383885E-0002 1.49194470119541E-0002 1.49015305942107E-0002 1.48836035575921E-0002 + 1.48656658745907E-0002 1.48477175177905E-0002 1.48297584597276E-0002 1.48117886730581E-0002 1.47938081304911E-0002 + 1.47758168047943E-0002 1.47578146687489E-0002 1.47398016951948E-0002 1.47217778571209E-0002 1.47037431274619E-0002 + 1.46856974792681E-0002 1.46676408856595E-0002 1.46495733197647E-0002 1.46314947548781E-0002 1.46134051642068E-0002 + 1.45953045211916E-0002 1.45771927992143E-0002 1.45590699718002E-0002 1.45409360124722E-0002 1.45227908949024E-0002 + 1.45046345927493E-0002 1.44864670798267E-0002 1.44682883299964E-0002 1.44500983171462E-0002 1.44318970152855E-0002 + 1.44136843985343E-0002 1.43954604409877E-0002 1.43772251169020E-0002 1.43589784006051E-0002 1.43407202664790E-0002 + 1.43224506889939E-0002 1.43041696427425E-0002 1.42858771023208E-0002 1.42675730425041E-0002 1.42492574380656E-0002 + 1.42309302639746E-0002 1.42125914951703E-0002 1.41942411067599E-0002 1.41758790739226E-0002 1.41575053719095E-0002 + 1.41391199760774E-0002 1.41207228619236E-0002 1.41023140049437E-0002 1.40838933808187E-0002 1.40654609652965E-0002 + 1.40470167342087E-0002 1.40285606634988E-0002 1.40100927292453E-0002 1.39916129075428E-0002 1.39731211746888E-0002 + 1.39546175070366E-0002 1.39361018810182E-0002 1.39175742732289E-0002 1.38990346603430E-0002 1.38804830191248E-0002 + 1.38619193265027E-0002 1.38433435594895E-0002 1.38247556951488E-0002 1.38061557107820E-0002 1.37875435836907E-0002 + 1.37689192913716E-0002 1.37502828114039E-0002 1.37316341214747E-0002 1.37129731993816E-0002 1.36943000231186E-0002 + 1.36756145706826E-0002 1.36569168203262E-0002 1.36382067503027E-0002 1.36194843390731E-0002 1.36007495651727E-0002 + 1.35820024073223E-0002 1.35632428442945E-0002 1.35444708550644E-0002 1.35256864186934E-0002 1.35068895143830E-0002 + 1.34880801214667E-0002 1.34692582194439E-0002 1.34504237878778E-0002 1.34315768065636E-0002 1.34127172553486E-0002 + 1.33938451142499E-0002 1.33749603634452E-0002 1.33560629832137E-0002 1.33371529540211E-0002 1.33182302564233E-0002 + 1.32992948711577E-0002 1.32803467791257E-0002 1.32613859613334E-0002 1.32424123989033E-0002 1.32234260732076E-0002 + 1.32044269656811E-0002 1.31854150579518E-0002 1.31663903318041E-0002 1.31473527691278E-0002 1.31283023520207E-0002 + 1.31092390627203E-0002 1.30901628835696E-0002 1.30710737971687E-0002 1.30519717861890E-0002 1.30328568335137E-0002 + 1.30137289221575E-0002 1.29945880353212E-0002 1.29754341563177E-0002 1.29562672687118E-0002 1.29370873561434E-0002 + 1.29178944024818E-0002 1.28986883917431E-0002 1.28794693080815E-0002 1.28602371358868E-0002 1.28409918596761E-0002 + 1.28217334641419E-0002 1.28024619341443E-0002 1.27831772547366E-0002 1.27638794111538E-0002 1.27445683887732E-0002 + 1.27252441731740E-0002 1.27059067501092E-0002 1.26865561055171E-0002 1.26671922255272E-0002 1.26478150964143E-0002 + 1.26284247046505E-0002 1.26090210369509E-0002 1.25896040801136E-0002 1.25701738211999E-0002 1.25507302474375E-0002 + 1.25312733462404E-0002 1.25118031052061E-0002 1.24923195121390E-0002 1.24728225550130E-0002 1.24533122220434E-0002 + 1.24337885015752E-0002 1.24142513821694E-0002 1.23947008526486E-0002 1.23751369019316E-0002 1.23555595191989E-0002 + 1.23359686938105E-0002 1.23163644153544E-0002 1.22967466735894E-0002 1.22771154584711E-0002 1.22574707601867E-0002 + 1.22378125691146E-0002 1.22181408758648E-0002 1.21984556712134E-0002 1.21787569461741E-0002 1.21590446919583E-0002 + 1.21393189000069E-0002 1.21195795619244E-0002 1.20998266696023E-0002 1.20800602150732E-0002 1.20602801906599E-0002 + 1.20404865888094E-0002 1.20206794022734E-0002 1.20008586239769E-0002 1.19810242470729E-0002 1.19611762649276E-0002 + 1.19413146711500E-0002 1.19214394595487E-0002 1.19015506241691E-0002 1.18816481592827E-0002 1.18617320593895E-0002 + 1.18418023192043E-0002 1.18218589336680E-0002 1.18019018979738E-0002 1.17819312075242E-0002 1.17619468579687E-0002 + 1.17419488451692E-0002 1.17219371652318E-0002 1.17019118145132E-0002 1.16818727895712E-0002 1.16618200872346E-0002 + 1.16417537045542E-0002 1.16216736388141E-0002 1.16015798875327E-0002 1.15814724485053E-0002 1.15613513197412E-0002 + 1.15412164994929E-0002 1.15210679862414E-0002 1.15009057787718E-0002 1.14807298760374E-0002 1.14605402773018E-0002 + 1.14403369820522E-0002 1.14201199900082E-0002 1.13998893011711E-0002 1.13796449157607E-0002 1.13593868342817E-0002 + 1.13391150574864E-0002 1.13188295863575E-0002 1.12985304221576E-0002 1.12782175663916E-0002 1.12578910208184E-0002 + 1.12375507874773E-0002 1.12171968686446E-0002 1.11968292668716E-0002 1.11764479849673E-0002 1.11560530259927E-0002 + 1.11356443932959E-0002 1.11152220904544E-0002 1.10947861213444E-0002 1.10743364900807E-0002 1.10538732010745E-0002 + 1.10333962589958E-0002 1.10129056687566E-0002 1.09924014355834E-0002 1.09718835649474E-0002 1.09513520625886E-0002 + 1.09308069345414E-0002 1.09102481871004E-0002 1.08896758268265E-0002 1.08690898605697E-0002 1.08484902954671E-0002 + 1.08278771389164E-0002 1.08072503985939E-0002 1.07866100824748E-0002 1.07659561987930E-0002 1.07452887560784E-0002 + 1.07246077631319E-0002 1.07039132290595E-0002 1.06832051632270E-0002 1.06624835753086E-0002 1.06417484752440E-0002 + 1.06209998732738E-0002 1.06002377799360E-0002 1.05794622060146E-0002 1.05586731626613E-0002 1.05378706612392E-0002 + 1.05170547134537E-0002 1.04962253312914E-0002 1.04753825270147E-0002 1.04545263132114E-0002 1.04336567027396E-0002 + 1.04127737087688E-0002 1.03918773447740E-0002 1.03709676244924E-0002 1.03500445619935E-0002 1.03291081716560E-0002 + 1.03081584681387E-0002 1.02871954663956E-0002 1.02662191816961E-0002 1.02452296296170E-0002 1.02242268260304E-0002 + 1.02032107871480E-0002 1.01821815294253E-0002 1.01611390696750E-0002 1.01400834250006E-0002 1.01190146128196E-0002 + 1.00979326508522E-0002 1.00768375571334E-0002 1.00557293500302E-0002 1.00346080481750E-0002 1.00134736705682E-0002 + 9.99232623647283E-0003 9.97116576552005E-0003 9.94999227760448E-0003 9.92880579297171E-0003 9.90760633219234E-0003 + 9.88639391611263E-0003 9.86516856593340E-0003 9.84393030317242E-0003 9.82267914965286E-0003 9.80141512755609E-0003 + 9.78013825931097E-0003 9.75884856777212E-0003 9.73754607601581E-0003 9.71623080751530E-0003 9.69490278604474E-0003 + 9.67356203569694E-0003 9.65220858091271E-0003 9.63084244643734E-0003 9.60946365735583E-0003 9.58807223909605E-0003 + 9.56666821739098E-0003 9.54525161831690E-0003 9.52382246827902E-0003 9.50238079403212E-0003 9.48092662264284E-0003 + 9.45945998150736E-0003 9.43798089838093E-0003 9.41648940132835E-0003 9.39498551877682E-0003 9.37346927948403E-0003 + 9.35194071251202E-0003 9.33039984730347E-0003 9.30884671362636E-0003 9.28728134159175E-0003 9.26570376163348E-0003 + 9.24411400454354E-0003 9.22251210145182E-0003 9.20089808382340E-0003 9.17927198347632E-0003 9.15763383258770E-0003 + 9.13598366362952E-0003 9.11432150947134E-0003 9.09264740330147E-0003 9.07096137865942E-0003 9.04926346943904E-0003 + 9.02755370987116E-0003 9.00583213454144E-0003 8.98409877838178E-0003 8.96235367668519E-0003 8.94059686507675E-0003 + 8.91882837954311E-0003 8.89704825642102E-0003 8.87525653239168E-0003 8.85345324451326E-0003 8.83163843016830E-0003 + 8.80981212710503E-0003 8.78797437343464E-0003 8.76612520761397E-0003 8.74426466845445E-0003 8.72239279512831E-0003 + 8.70050962717166E-0003 8.67861520445540E-0003 8.65670956723539E-0003 8.63479275610857E-0003 8.61286481204265E-0003 + 8.59092577635129E-0003 8.56897569071201E-0003 8.54701459717820E-0003 8.52504253814693E-0003 8.50305955639902E-0003 + 8.48106569504176E-0003 8.45906099756957E-0003 8.43704550785096E-0003 8.41501927008018E-0003 8.39298232885843E-0003 + 8.37093472914112E-0003 8.34887651621744E-0003 8.32680773577984E-0003 8.30472843386386E-0003 8.28263865689703E-0003 + 8.26053845164894E-0003 8.23842786526394E-0003 8.21630694527022E-0003 8.19417573953137E-0003 8.17203429631446E-0003 + 8.14988266422835E-0003 8.12772089227552E-0003 8.10554902982432E-0003 8.08336712658703E-0003 8.06117523269685E-0003 + 8.03897339858863E-0003 8.01676167515105E-0003 7.99454011358082E-0003 7.97230876548027E-0003 7.95006768279858E-0003 + 7.92781691790140E-0003 7.90555652346032E-0003 7.88328655260822E-0003 7.86100705878880E-0003 7.83871809582923E-0003 + 7.81641971793006E-0003 7.79411197972008E-0003 7.77179493612215E-0003 7.74946864248491E-0003 7.72713315453574E-0003 + 7.70478852836923E-0003 7.68243482043844E-0003 7.66007208758331E-0003 7.63770038705306E-0003 7.61531977643693E-0003 + 7.59293031371911E-0003 7.57053205723612E-0003 7.54812506574951E-0003 7.52570939838398E-0003 7.50328511460690E-0003 + 7.48085227430695E-0003 7.45841093773965E-0003 7.43596116554384E-0003 7.41350301872564E-0003 7.39103655867203E-0003 + 7.36856184718218E-0003 7.34607894639659E-0003 7.32358791885067E-0003 7.30108882747200E-0003 7.27858173554796E-0003 + 7.25606670677491E-0003 7.23354380519912E-0003 7.21101309526887E-0003 7.18847464181992E-0003 7.16592851004750E-0003 + 7.14337476554370E-0003 7.12081347428724E-0003 7.09824470264086E-0003 7.07566851731729E-0003 7.05308498544786E-0003 + 7.03049417454411E-0003 7.00789615247871E-0003 6.98529098752582E-0003 6.96267874833308E-0003 6.94005950394268E-0003 + 6.91743332375443E-0003 6.89480027758393E-0003 6.87216043560192E-0003 6.84951386839245E-0003 6.82686064688624E-0003 + 6.80420084242483E-0003 6.78153452671771E-0003 6.75886177187080E-0003 6.73618265036291E-0003 6.71349723505042E-0003 + 6.69080559920171E-0003 6.66810781643496E-0003 6.64540396074960E-0003 6.62269410656671E-0003 6.59997832866084E-0003 + 6.57725670218551E-0003 6.55452930270172E-0003 6.53179620611570E-0003 6.50905748876101E-0003 6.48631322731238E-0003 + 6.46356349886790E-0003 6.44080838086434E-0003 6.41804795114140E-0003 6.39528228793157E-0003 6.37251146984991E-0003 + 6.34973557585999E-0003 6.32695468534418E-0003 6.30416887804131E-0003 6.28137823408112E-0003 6.25858283398457E-0003 + 6.23578275864164E-0003 6.21297808931607E-0003 6.19016890766199E-0003 6.16735529572564E-0003 6.14453733590379E-0003 + 6.12171511100076E-0003 6.09888870418229E-0003 6.07605819899970E-0003 6.05322367938861E-0003 6.03038522965725E-0003 + 6.00754293448663E-0003 5.98469687894428E-0003 5.96184714849040E-0003 5.93899382892283E-0003 5.91613700644449E-0003 + 5.89327676764125E-0003 5.87041319945668E-0003 5.84754638921323E-0003 5.82467642462591E-0003 5.80180339376365E-0003 + 5.77892738509138E-0003 5.75604848742388E-0003 5.73316678997240E-0003 5.71028238231194E-0003 5.68739535439946E-0003 + 5.66450579654713E-0003 5.64161379944953E-0003 5.61871945418682E-0003 5.59582285219506E-0003 5.57292408527089E-0003 + 5.55002324560622E-0003 5.52712042575396E-0003 5.50421571864028E-0003 5.48130921754981E-0003 5.45840101614082E-0003 + 5.43549120844549E-0003 5.41257988884760E-0003 5.38966715211725E-0003 5.36675309339007E-0003 5.34383780816145E-0003 + 5.32092139227325E-0003 5.29800394197399E-0003 5.27508555383811E-0003 5.25216632482765E-0003 5.22924635225795E-0003 + 5.20632573380689E-0003 5.18340456751208E-0003 5.16048295178011E-0003 5.13756098537020E-0003 5.11463876740192E-0003 + 5.09171639736747E-0003 5.06879397509577E-0003 5.04587160079627E-0003 5.02294937500357E-0003 5.00002739864822E-0003 + 4.97710577299084E-0003 4.95418459964933E-0003 4.93126398060363E-0003 4.90834401818390E-0003 4.88542481506014E-0003 + 4.86250647428004E-0003 4.83958909922555E-0003 4.81667279362210E-0003 4.79375766155838E-0003 4.77084380746844E-0003 + 4.74793133613344E-0003 4.72502035268484E-0003 4.70211096256995E-0003 4.67920327163499E-0003 4.65629738603487E-0003 + 4.63339341227413E-0003 4.61049145719347E-0003 4.58759162799416E-0003 4.56469403219445E-0003 4.54179877766901E-0003 + 4.51890597262496E-0003 4.49601572560960E-0003 4.47312814550612E-0003 4.45024334153375E-0003 4.42736142324193E-0003 + 4.40448250051650E-0003 4.38160668357996E-0003 4.35873408297951E-0003 4.33586480960537E-0003 4.31299897465778E-0003 + 4.29013668968341E-0003 4.26727806654831E-0003 4.24442321743668E-0003 4.22157225488265E-0003 4.19872529171620E-0003 + 4.17588244110255E-0003 4.15304381653779E-0003 4.13020953182796E-0003 4.10737970109373E-0003 4.08455443878417E-0003 + 4.06173385965880E-0003 4.03891807879985E-0003 4.01610721160490E-0003 3.99330137376885E-0003 3.97050068131592E-0003 + 3.94770525057705E-0003 3.92491519819319E-0003 3.90213064110178E-0003 3.87935169657022E-0003 3.85657848214611E-0003 + 3.83381111570737E-0003 3.81104971541696E-0003 3.78829439973974E-0003 3.76554528744863E-0003 3.74280249761120E-0003 + 3.72006614960040E-0003 3.69733636307807E-0003 3.67461325799206E-0003 3.65189695460214E-0003 3.62918757345744E-0003 + 3.60648523537841E-0003 3.58379006149789E-0003 3.56110217322340E-0003 3.53842169224330E-0003 3.51574874055125E-0003 + 3.49308344041144E-0003 3.47042591435879E-0003 3.44777628522937E-0003 3.42513467612116E-0003 3.40250121041692E-0003 + 3.37987601177371E-0003 3.35725920412914E-0003 3.33465091167184E-0003 3.31205125888497E-0003 3.28946037050980E-0003 + 3.26687837154975E-0003 3.24430538728261E-0003 3.22174154324626E-0003 3.19918696524111E-0003 3.17664177932714E-0003 + 3.15410611182485E-0003 3.13158008931308E-0003 3.10906383862534E-0003 3.08655748683777E-0003 3.06406116129437E-0003 + 3.04157498958051E-0003 3.01909909953065E-0003 2.99663361922922E-0003 2.97417867700621E-0003 2.95173440141594E-0003 + 2.92930092127983E-0003 2.90687836564310E-0003 2.88446686378864E-0003 2.86206654523173E-0003 2.83967753973620E-0003 + 2.81729997727950E-0003 2.79493398807867E-0003 2.77257970257527E-0003 2.75023725143087E-0003 2.72790676553786E-0003 + 2.70558837601190E-0003 2.68328221417300E-0003 2.66098841157230E-0003 2.63870709997460E-0003 2.61643841135548E-0003 + 2.59418247789750E-0003 2.57193943200485E-0003 2.54970940627217E-0003 2.52749253351282E-0003 2.50528894673079E-0003 + 2.48309877913148E-0003 2.46092216413700E-0003 2.43875923533974E-0003 2.41661012654749E-0003 2.39447497173772E-0003 + 2.37235390509658E-0003 2.35024706099077E-0003 2.32815457396756E-0003 2.30607657876256E-0003 2.28401321029139E-0003 + 2.26196460363443E-0003 2.23993089408048E-0003 2.21791221704281E-0003 2.19590870814778E-0003 2.17392050317387E-0003 + 2.15194773807081E-0003 2.12999054893209E-0003 2.10804907204862E-0003 2.08612344383150E-0003 2.06421380087327E-0003 + 2.04232027991588E-0003 2.02044301784840E-0003 1.99858215171094E-0003 1.97673781868705E-0003 1.95491015610985E-0003 + 1.93309930144529E-0003 1.91130539230290E-0003 1.88952856643123E-0003 1.86776896171562E-0003 1.84602671615295E-0003 + 1.82430196789305E-0003 1.80259485518281E-0003 1.78090551642753E-0003 1.75923409012656E-0003 1.73758071489867E-0003 + 1.71594552948662E-0003 1.69432867274037E-0003 1.67273028361940E-0003 1.65115050119120E-0003 1.62958946462515E-0003 + 1.60804731318718E-0003 1.58652418625514E-0003 1.56502022328736E-0003 1.54353556383879E-0003 1.52207034755254E-0003 + 1.50062471416684E-0003 1.47919880349584E-0003 1.45779275543115E-0003 1.43640670995186E-0003 1.41504080709994E-0003 + 1.39369518700021E-0003 1.37236998984348E-0003 1.35106535587805E-0003 1.32978142542282E-0003 1.30851833885802E-0003 + 1.28727623662061E-0003 1.26605525919198E-0003 1.24485554710562E-0003 1.22367724095557E-0003 1.20252048136639E-0003 + 1.18138540900012E-0003 1.16027216457696E-0003 1.13918088882760E-0003 1.11811172252783E-0003 1.09706480647767E-0003 + 1.07604028151144E-0003 1.05503828846688E-0003 1.03405896821360E-0003 1.01310246162845E-0003 9.92168909606998E-0004 + 9.71258453046569E-0004 9.50371232858519E-0004 9.29507389941238E-0004 9.08667065203210E-0004 8.87850399546018E-0004 + 8.67057533854282E-0004 8.46288609011784E-0004 8.25543765875213E-0004 8.04823145292606E-0004 7.84126888081708E-0004 + 7.63455135035301E-0004 7.42808026924231E-0004 7.22185704474979E-0004 7.01588308381154E-0004 6.81015979284142E-0004 + 6.60468857816236E-0004 6.39947084523410E-0004 6.19450799913846E-0004 5.98980144453999E-0004 5.78535258522205E-0004 + 5.58116282463402E-0004 5.37723356537315E-0004 5.17356620936129E-0004 4.97016215789798E-0004 4.76702281138151E-0004 + 4.56414956938512E-0004 4.36154383074104E-0004 4.15920699327678E-0004 3.95714045389900E-0004 3.75534560860798E-0004 + 3.55382385234962E-0004 3.35257657905300E-0004 3.15160518143591E-0004 2.95091105125885E-0004 2.75049557896810E-0004 + 2.55036015389561E-0004 2.35050616409527E-0004 2.15093499627202E-0004 1.95164803586565E-0004 1.75264666692566E-0004 + 1.55393227202476E-0004 1.35550623241231E-0004 1.15736992773420E-0004 9.59524736062412E-0005 7.61972033970919E-0005 + 5.64713196387132E-0005 3.67749596567111E-0005 1.71082606047544E-0005 -2.52864054565762E-0006 -2.21356069852039E-0005 +-4.17125021079796E-0005 -6.12591894853108E-0005 -8.07755328829737E-0005 -1.00261396270672E-0004 -1.19716643805149E-0004 +-1.39141139866039E-0004 -1.58534749032778E-0004 -1.77897336106506E-0004 -1.97228766100943E-0004 -2.16528904259645E-0004 +-2.35797616056196E-0004 -2.55034767186641E-0004 -2.74240223601505E-0004 -2.93413851481933E-0004 -3.12555517256963E-0004 +-3.31665087615390E-0004 -3.50742429489657E-0004 -3.69787410089470E-0004 -3.88799896877153E-0004 -4.07779757586508E-0004 +-4.26726860244020E-0004 -4.45641073132555E-0004 -4.64522264838215E-0004 -4.83370304222585E-0004 -5.02185060455621E-0004 +-5.20966403004219E-0004 -5.39714201629345E-0004 -5.58428326412716E-0004 -5.77108647748492E-0004 -5.95755036348969E-0004 +-6.14367363247939E-0004 -6.32945499816508E-0004 -6.51489317754018E-0004 -6.69998689102312E-0004 -6.88473486246001E-0004 +-7.06913581925186E-0004 -7.25318849227162E-0004 -7.43689161601487E-0004 -7.62024392870386E-0004 -7.80324417219682E-0004 +-7.98589109209203E-0004 -8.16818343787877E-0004 -8.35011996283107E-0004 -8.53169942422891E-0004 -8.71292058323640E-0004 +-8.89378220507633E-0004 -9.07428305908775E-0004 -9.25442191864323E-0004 -9.43419756144055E-0004 -9.61360876930300E-0004 +-9.79265432836976E-0004 -9.97133302919271E-0004 -1.01496436666850E-0003 -1.03275850401713E-0003 -1.05051559535939E-0003 +-1.06823552154221E-0003 -1.08591816387303E-0003 -1.10356340413298E-0003 -1.12117112457138E-0003 -1.13874120792367E-0003 +-1.15627353740587E-0003 -1.17376799672865E-0003 -1.19122447009881E-0003 -1.20864284222711E-0003 -1.22602299832821E-0003 +-1.24336482413747E-0003 -1.26066820590858E-0003 -1.27793303042645E-0003 -1.29515918499389E-0003 -1.31234655746172E-0003 +-1.32949503623423E-0003 -1.34660451024457E-0003 -1.36367486900204E-0003 -1.38070600256552E-0003 -1.39769780156851E-0003 +-1.41465015721172E-0003 -1.43156296128851E-0003 -1.44843610616612E-0003 -1.46526948481077E-0003 -1.48206299079121E-0003 +-1.49881651827204E-0003 -1.51552996203695E-0003 -1.53220321748632E-0003 -1.54883618063848E-0003 -1.56542874814541E-0003 +-1.58198081730417E-0003 -1.59849228604403E-0003 -1.61496305294882E-0003 -1.63139301725392E-0003 -1.64778207885959E-0003 +-1.66413013833621E-0003 -1.68043709693172E-0003 -1.69670285656630E-0003 -1.71292731985863E-0003 -1.72911039011899E-0003 +-1.74525197135404E-0003 -1.76135196829005E-0003 -1.77741028635690E-0003 -1.79342683171176E-0003 -1.80940151123602E-0003 +-1.82533423255311E-0003 -1.84122490402384E-0003 -1.85707343475287E-0003 -1.87287973461038E-0003 -1.88864371422120E-0003 +-1.90436528498107E-0003 -1.92004435906779E-0003 -1.93568084943028E-0003 -1.95127466981159E-0003 -1.96682573476161E-0003 +-1.98233395962224E-0003 -1.99779926055353E-0003 -2.01322155452323E-0003 -2.02860075934190E-0003 -2.04393679363287E-0003 +-2.05922957687244E-0003 -2.07447902938110E-0003 -2.08968507232521E-0003 -2.10484762774438E-0003 -2.11996661853234E-0003 +-2.13504196847613E-0003 -2.15007360222557E-0003 -2.16506144534034E-0003 -2.18000542426217E-0003 -2.19490546634546E-0003 +-2.20976149985858E-0003 -2.22457345398258E-0003 -2.23934125882873E-0003 -2.25406484545252E-0003 -2.26874414583736E-0003 +-2.28337909292438E-0003 -2.29796962061223E-0003 -2.31251566376449E-0003 -2.32701715821775E-0003 -2.34147404079058E-0003 +-2.35588624928020E-0003 -2.37025372249430E-0003 -2.38457640023754E-0003 -2.39885422332521E-0003 -2.41308713359336E-0003 +-2.42727507390501E-0003 -2.44141798816190E-0003 -2.45551582130592E-0003 -2.46956851932500E-0003 -2.48357602927583E-0003 +-2.49753829927871E-0003 -2.51145527852612E-0003 -2.52532691729488E-0003 -2.53915316695832E-0003 -2.55293397998189E-0003 +-2.56666930994399E-0003 -2.58035911153674E-0003 -2.59400334057655E-0003 -2.60760195401083E-0003 -2.62115490992623E-0003 +-2.63466216756638E-0003 -2.64812368732432E-0003 -2.66153943076309E-0003 -2.67490936061525E-0003 -2.68823344079592E-0003 +-2.70151163641982E-0003 -2.71474391379048E-0003 -2.72793024042250E-0003 -2.74107058505295E-0003 -2.75416491763742E-0003 +-2.76721320936431E-0003 -2.78021543266907E-0003 -2.79317156123777E-0003 -2.80608157001071E-0003 -2.81894543520105E-0003 +-2.83176313430158E-0003 -2.84453464608514E-0003 -2.85725995062605E-0003 -2.86993902929584E-0003 -2.88257186478307E-0003 +-2.89515844109181E-0003 -2.90769874356830E-0003 -2.92019275888708E-0003 -2.93264047507688E-0003 -2.94504188151950E-0003 +-2.95739696897287E-0003 -2.96970572955928E-0003 -2.98196815679202E-0003 -2.99418424557905E-0003 -3.00635399222987E-0003 +-3.01847739446117E-0003 -3.03055445142830E-0003 -3.04258516369720E-0003 -3.05456953328743E-0003 -3.06650756366592E-0003 +-3.07839925975621E-0003 -3.09024462795378E-0003 -3.10204367613165E-0003 -3.11379641364535E-0003 -3.12550285135813E-0003 +-3.13716300162913E-0003 -3.14877687834104E-0003 -3.16034449689986E-0003 -3.17186587425252E-0003 -3.18334102888117E-0003 +-3.19476998083315E-0003 -3.20615275171365E-0003 -3.21748936470576E-0003 -3.22877984457869E-0003 -3.24002421769668E-0003 +-3.25122251202205E-0003 -3.26237475713486E-0003 -3.27348098424356E-0003 -3.28454122618955E-0003 -3.29555551745181E-0003 +-3.30652389417345E-0003 -3.31744639415117E-0003 -3.32832305686660E-0003 -3.33915392348418E-0003 -3.34993903685499E-0003 +-3.36067844154614E-0003 -3.37137218383584E-0003 -3.38202031172687E-0003 -3.39262287496038E-0003 -3.40317992502258E-0003 +-3.41369151516103E-0003 -3.42415770038249E-0003 -3.43457853748121E-0003 -3.44495408502962E-0003 -3.45528440341103E-0003 +-3.46556955480674E-0003 -3.47580960322674E-0003 -3.48600461450723E-0003 -3.49615465632577E-0003 -3.50625979822237E-0003 +-3.51632011158228E-0003 -3.52633566968071E-0003 -3.53630654766958E-0003 -3.54623282259792E-0003 -3.55611457341859E-0003 +-3.56595188100870E-0003 -3.57574482816638E-0003 -3.58549349963635E-0003 -3.59519798210877E-0003 -3.60485836423242E-0003 +-3.61447473663830E-0003 -3.62404719193488E-0003 -3.63357582472451E-0003 -3.64306073161990E-0003 -3.65250201124850E-0003 +-3.66189976426741E-0003 -3.67125409337502E-0003 -3.68056510331987E-0003 -3.68983290091394E-0003 -3.69905759504274E-0003 +-3.70823929667959E-0003 -3.71737811889133E-0003 -3.72647417685781E-0003 -3.73552758788104E-0003 -3.74453847138747E-0003 +-3.75350694895477E-0003 -3.76243314431213E-0003 -3.77131718335824E-0003 -3.78015919416980E-0003 -3.78895930701294E-0003 +-3.79771765436057E-0003 -3.80643437089855E-0003 -3.81510959353526E-0003 -3.82374346142086E-0003 -3.83233611595944E-0003 +-3.84088770081426E-0003 -3.84939836191832E-0003 -3.85786824750028E-0003 -3.86629750808082E-0003 -3.87468629649814E-0003 +-3.88303476790774E-0003 -3.89134307980379E-0003 -3.89961139202628E-0003 -3.90783986677923E-0003 -3.91602866863544E-0003 +-3.92417796455249E-0003 -3.93228792389104E-0003 -3.94035871841625E-0003 -3.94839052231742E-0003 -3.95638351221562E-0003 +-3.96433786719134E-0003 -3.97225376876830E-0003 -3.98013140095653E-0003 -3.98797095024728E-0003 -3.99577260562937E-0003 +-4.00353655860383E-0003 -4.01126300319846E-0003 -4.01895213597443E-0003 -4.02660415604508E-0003 -4.03421926508457E-0003 +-4.04179766734869E-0003 -4.04933956967446E-0003 -4.05684518150503E-0003 -4.06431471490052E-0003 -4.07174838454747E-0003 +-4.07914640777269E-0003 -4.08650900455979E-0003 -4.09383639756165E-0003 -4.10112881211009E-0003 -4.10838647623262E-0003 +-4.11560962066554E-0003 -4.12279847886786E-0003 -4.12995328702983E-0003 -4.13707428409532E-0003 -4.14416171176631E-0003 +-4.15121581452395E-0003 -4.15823683963844E-0003 -4.16522503717984E-0003 -4.17218066003969E-0003 -4.17910396393878E-0003 +-4.18599520743895E-0003 -4.19285465196577E-0003 -4.19968256181391E-0003 -4.20647920416539E-0003 -4.21324484910225E-0003 +-4.21997976961936E-0003 -4.22668424164480E-0003 -4.23335854404054E-0003 -4.24000295863356E-0003 -4.24661777021434E-0003 +-4.25320326656615E-0003 -4.25975973846196E-0003 -4.26628747969860E-0003 -4.27278678709208E-0003 -4.27925796050487E-0003 +-4.28570130285503E-0003 -4.29211712013495E-0003 -4.29850572141489E-0003 -4.30486741887388E-0003 -4.31120252780264E-0003 +-4.31751136661913E-0003 -4.32379425688828E-0003 -4.33005152333276E-0003 -4.33628349385040E-0003 -4.34249049952364E-0003 +-4.34867287464263E-0003 -4.35483095671546E-0003 -4.36096508648062E-0003 -4.36707560792673E-0003 -4.37316286830398E-0003 +-4.37922721814492E-0003 -4.38526901127028E-0003 -4.39128860481459E-0003 -4.39728635923083E-0003 -4.40326263831484E-0003 +-4.40921780921669E-0003 -4.41515224175059E-0003 -4.42106630419365E-0003 -4.42696036066209E-0003 -4.43283477101928E-0003 +-4.43868989090704E-0003 -4.44452607175744E-0003 -4.45034366082146E-0003 -4.45614300119811E-0003 -4.46192443184731E-0003 +-4.46768828762167E-0003 -4.47343489928003E-0003 -4.47916459352818E-0003 -4.48487769301886E-0003 -4.49057451639641E-0003 +-4.49625537830488E-0003 -4.50192058941729E-0003 -4.50757045645944E-0003 -4.51320528222602E-0003 -4.51882536561274E-0003 +-4.52443100163167E-0003 -4.53002248143716E-0003 -4.53560009234851E-0003 -4.54116411786734E-0003 -4.54671483770931E-0003 +-4.55225252781747E-0003 -4.55777746038844E-0003 -4.56328990389766E-0003 -4.56879012311016E-0003 -4.57427837911985E-0003 +-4.57975492935564E-0003 -4.58522002761081E-0003 -4.59067392406752E-0003 -4.59611686530885E-0003 -4.60154909435052E-0003 +-4.60697085065540E-0003 -4.61238237016216E-0003 -4.61778388529847E-0003 -4.62317562500680E-0003 -4.62855781476782E-0003 +-4.63393067661529E-0003 -4.63929442916797E-0003 -4.64464928763626E-0003 -4.64999546385556E-0003 -4.65533316630271E-0003 +-4.66066260011369E-0003 -4.66598396710926E-0003 -4.67129746581603E-0003 -4.67660329148305E-0003 -4.68190163610563E-0003 +-4.68719268844443E-0003 -4.69247663404641E-0003 -4.69775365526806E-0003 -4.70302393128699E-0003 -4.70828763813457E-0003 +-4.71354494870700E-0003 -4.71879603279098E-0003 -4.72404105707867E-0003 -4.72928018519145E-0003 -4.73451357769791E-0003 +-4.73974139213557E-0003 -4.74496378303349E-0003 -4.75018090192127E-0003 -4.75539289736114E-0003 -4.76059991496188E-0003 +-4.76580209739662E-0003 -4.77099958443096E-0003 -4.77619251292681E-0003 -4.78138101687715E-0003 -4.78656522742195E-0003 +-4.79174527285842E-0003 -4.79692127867003E-0003 -4.80209336754481E-0003 -4.80726165938801E-0003 -4.81242627134697E-0003 +-4.81758731782509E-0003 -4.82274491051074E-0003 -4.82789915838272E-0003 -4.83305016773759E-0003 -4.83819804220861E-0003 +-4.84334288277673E-0003 -4.84848478780087E-0003 -4.85362385302278E-0003 -4.85876017159852E-0003 -4.86389383411008E-0003 +-4.86902492858009E-0003 -4.87415354050276E-0003 -4.87927975284414E-0003 -4.88440364607667E-0003 -4.88952529819173E-0003 +-4.89464478470904E-0003 -4.89976217870972E-0003 -4.90487755084193E-0003 -4.90999096934497E-0003 -4.91510250006442E-0003 +-4.92021220647120E-0003 -4.92532014967939E-0003 -4.93042638846292E-0003 -4.93553097926957E-0003 -4.94063397624776E-0003 +-4.94573543125444E-0003 -4.95083539387755E-0003 -4.95593391145066E-0003 -4.96103102907297E-0003 -4.96612678962429E-0003 +-4.97122123378311E-0003 -4.97631440004091E-0003 -4.98140632472629E-0003 -4.98649704200914E-0003 -4.99158658393482E-0003 +-4.99667498042169E-0003 -5.00176225929565E-0003 -5.00684844629395E-0003 -5.01193356508712E-0003 -5.01701763729524E-0003 +-5.02210068250548E-0003 -5.02718271828366E-0003 -5.03226376019705E-0003 -5.03734382182527E-0003 -5.04242291477982E-0003 +-5.04750104871980E-0003 -5.05257823136470E-0003 -5.05765446851594E-0003 -5.06272976407006E-0003 -5.06780412003112E-0003 +-5.07287753653340E-0003 -5.07795001185279E-0003 -5.08302154242575E-0003 -5.08809212285747E-0003 -5.09316174594652E-0003 +-5.09823040269784E-0003 -5.10329808233508E-0003 -5.10836477231748E-0003 -5.11343045835756E-0003 -5.11849512443434E-0003 +-5.12355875280847E-0003 -5.12862132403936E-0003 -5.13368281699533E-0003 -5.13874320887899E-0003 -5.14380247522886E-0003 +-5.14886058994507E-0003 -5.15391752529908E-0003 -5.15897325195080E-0003 -5.16402773896115E-0003 -5.16908095380786E-0003 +-5.17413286240227E-0003 -5.17918342910197E-0003 -5.18423261672068E-0003 -5.18928038655602E-0003 -5.19432669838897E-0003 +-5.19937151050537E-0003 -5.20441477971408E-0003 -5.20945646135207E-0003 -5.21449650930637E-0003 -5.21953487602463E-0003 +-5.22457151252943E-0003 -5.22960636843497E-0003 -5.23463939195666E-0003 -5.23967052992742E-0003 -5.24469972781482E-0003 +-5.24972692972894E-0003 -5.25475207843808E-0003 -5.25977511538729E-0003 -5.26479598070445E-0003 -5.26981461321880E-0003 +-5.27483095047466E-0003 -5.27984492874040E-0003 -5.28485648302856E-0003 -5.28986554710424E-0003 -5.29487205349866E-0003 +-5.29987593352472E-0003 -5.30487711729231E-0003 -5.30987553371273E-0003 -5.31487111052240E-0003 -5.31986377428761E-0003 +-5.32485345042309E-0003 -5.32984006320247E-0003 -5.33482353577236E-0003 -5.33980379016189E-0003 -5.34478074730083E-0003 +-5.34975432702749E-0003 -5.35472444810459E-0003 -5.35969102823176E-0003 -5.36465398405519E-0003 -5.36961323118344E-0003 +-5.37456868419708E-0003 -5.37952025666536E-0003 -5.38446786115427E-0003 -5.38941140923827E-0003 -5.39435081151972E-0003 +-5.39928597763213E-0003 -5.40421681625789E-0003 -5.40914323513755E-0003 -5.41406514108492E-0003 -5.41898243999714E-0003 +-5.42389503686544E-0003 -5.42880283578802E-0003 -5.43370573998435E-0003 -5.43860365180393E-0003 -5.44349647273770E-0003 +-5.44838410343314E-0003 -5.45326644370303E-0003 -5.45814339253594E-0003 -5.46301484811190E-0003 -5.46788070781129E-0003 +-5.47274086822482E-0003 -5.47759522516923E-0003 -5.48244367369446E-0003 -5.48728610809488E-0003 -5.49212242192577E-0003 +-5.49695250800973E-0003 -5.50177625844552E-0003 -5.50659356462753E-0003 -5.51140431724775E-0003 -5.51620840631453E-0003 +-5.52100572115749E-0003 -5.52579615044027E-0003 -5.53057958217344E-0003 -5.53535590372103E-0003 -5.54012500181796E-0003 +-5.54488676257177E-0003 -5.54964107148237E-0003 -5.55438781344514E-0003 -5.55912687276651E-0003 -5.56385813317010E-0003 +-5.56858147781371E-0003 -5.57329678929191E-0003 -5.57800394965103E-0003 -5.58270284039766E-0003 -5.58739334251269E-0003 +-5.59207533645427E-0003 -5.59674870217495E-0003 -5.60141331912806E-0003 -5.60606906627694E-0003 -5.61071582211074E-0003 +-5.61535346464489E-0003 -5.61998187144066E-0003 -5.62460091960753E-0003 -5.62921048581809E-0003 -5.63381044631532E-0003 +-5.63840067692110E-0003 -5.64298105304940E-0003 -5.64755144971324E-0003 -5.65211174153555E-0003 -5.65666180275586E-0003 +-5.66120150724495E-0003 -5.66573072850767E-0003 -5.67024933970082E-0003 -5.67475721363248E-0003 -5.67925422277915E-0003 +-5.68374023929187E-0003 -5.68821513500410E-0003 -5.69267878144474E-0003 -5.69713104984335E-0003 -5.70157181114048E-0003 +-5.70600093599719E-0003 -5.71041829480417E-0003 -5.71482375768972E-0003 -5.71921719452858E-0003 -5.72359847495258E-0003 +-5.72796746835623E-0003 -5.73232404390803E-0003 -5.73666807055788E-0003 -5.74099941704606E-0003 -5.74531795191320E-0003 +-5.74962354350439E-0003 -5.75391605998266E-0003 -5.75819536933720E-0003 -5.76246133938601E-0003 -5.76671383779089E-0003 +-5.77095273206238E-0003 -5.77517788956881E-0003 -5.77938917754339E-0003 -5.78358646309522E-0003 -5.78776961321365E-0003 +-5.79193849477908E-0003 -5.79609297457106E-0003 -5.80023291927427E-0003 -5.80435819548672E-0003 -5.80846866973119E-0003 +-5.81256420845668E-0003 -5.81664467805372E-0003 -5.82070994485605E-0003 -5.82475987515122E-0003 -5.82879433518694E-0003 +-5.83281319118057E-0003 -5.83681630932517E-0003 -5.84080355579768E-0003 -5.84477479676523E-0003 -5.84872989839436E-0003 +-5.85266872685700E-0003 -5.85659114834001E-0003 -5.86049702904911E-0003 -5.86438623521986E-0003 -5.86825863312066E-0003 +-5.87211408906399E-0003 -5.87595246941258E-0003 -5.87977364058519E-0003 -5.88357746906327E-0003 -5.88736382140037E-0003 +-5.89113256422773E-0003 -5.89488356426119E-0003 -5.89861668830855E-0003 -5.90233180327517E-0003 -5.90602877617327E-0003 +-5.90970747412618E-0003 -5.91336776437627E-0003 -5.91700951429161E-0003 -5.92063259137242E-0003 -5.92423686325873E-0003 +-5.92782219773370E-0003 -5.93138846273564E-0003 -5.93493552635777E-0003 -5.93846325686022E-0003 -5.94197152267561E-0003 +-5.94546019241155E-0003 -5.94892913486174E-0003 -5.95237821900827E-0003 -5.95580731403171E-0003 -5.95921628931395E-0003 +-5.96260501444675E-0003 -5.96597335923622E-0003 -5.96932119371050E-0003 -5.97264838812290E-0003 -5.97595481296282E-0003 +-5.97924033895652E-0003 -5.98250483707603E-0003 -5.98574817854448E-0003 -5.98897023484155E-0003 -5.99217087771002E-0003 +-5.99534997915997E-0003 -5.99850741147728E-0003 -6.00164304722568E-0003 -6.00475675925630E-0003 -6.00784842070976E-0003 +-6.01091790502394E-0003 -6.01396508593898E-0003 -6.01698983750304E-0003 -6.01999203407594E-0003 -6.02297155033860E-0003 +-6.02592826129218E-0003 -6.02886204227128E-0003 -6.03177276894241E-0003 -6.03466031731252E-0003 -6.03752456373353E-0003 +-6.04036538490826E-0003 -6.04318265789413E-0003 -6.04597626010932E-0003 -6.04874606933789E-0003 -6.05149196373506E-0003 +-6.05421382183016E-0003 -6.05691152253478E-0003 -6.05958494514469E-0003 -6.06223396934694E-0003 -6.06485847522414E-0003 +-6.06745834325827E-0003 -6.07003345433643E-0003 -6.07258368975605E-0003 -6.07510893122761E-0003 -6.07760906088105E-0003 +-6.08008396127082E-0003 -6.08253351537937E-0003 -6.08495760662127E-0003 -6.08735611884861E-0003 -6.08972893635532E-0003 +-6.09207594388265E-0003 -6.09439702662081E-0003 -6.09669207021662E-0003 -6.09896096077508E-0003 -6.10120358486695E-0003 +-6.10341982952770E-0003 -6.10560958226868E-0003 -6.10777273107454E-0003 -6.10990916441394E-0003 -6.11201877123701E-0003 +-6.11410144098433E-0003 -6.11615706358991E-0003 -6.11818552948394E-0003 -6.12018672959673E-0003 -6.12216055536565E-0003 +-6.12410689873557E-0003 -6.12602565216412E-0003 -6.12791670862607E-0003 -6.12977996161593E-0003 -6.13161530515259E-0003 +-6.13342263378338E-0003 -6.13520184258730E-0003 -6.13695282717822E-0003 -6.13867548370913E-0003 -6.14036970887595E-0003 +-6.14203539992074E-0003 -6.14367245463500E-0003 -6.14528077136398E-0003 -6.14686024901019E-0003 -6.14841078703508E-0003 +-6.14993228546441E-0003 -6.15142464489128E-0003 -6.15288776647943E-0003 -6.15432155196485E-0003 -6.15572590366249E-0003 +-6.15710072446631E-0003 -6.15844591785370E-0003 -6.15976138788946E-0003 -6.16104703922743E-0003 -6.16230277711575E-0003 +-6.16352850739712E-0003 -6.16472413651365E-0003 -6.16588957151029E-0003 -6.16702472003672E-0003 -6.16812949035093E-0003 +-6.16920379132160E-0003 -6.17024753243140E-0003 -6.17126062377971E-0003 -6.17224297608629E-0003 -6.17319450069263E-0003 +-6.17411510956516E-0003 -6.17500471530017E-0003 -6.17586323112158E-0003 -6.17669057089023E-0003 -6.17748664909978E-0003 +-6.17825138088414E-0003 -6.17898468201909E-0003 -6.17968646892183E-0003 -6.18035665865864E-0003 -6.18099516894315E-0003 +-6.18160191814028E-0003 -6.18217682526906E-0003 -6.18271981000470E-0003 -6.18323079268087E-0003 -6.18370969429153E-0003 +-6.18415643649471E-0003 -6.18457094161354E-0003 -6.18495313263814E-0003 -6.18530293323044E-0003 -6.18562026772320E-0003 +-6.18590506112265E-0003 -6.18615723911391E-0003 -6.18637672805847E-0003 -6.18656345499952E-0003 -6.18671734766348E-0003 +-6.18683833445977E-0003 -6.18692634448633E-0003 -6.18698130752891E-0003 -6.18700315406428E-0003 -6.18699181526136E-0003 +-6.18694722298326E-0003 -6.18686930979064E-0003 -6.18675800894075E-0003 -6.18661325439190E-0003 -6.18643498080357E-0003 +-6.18622312353837E-0003 -6.18597761866509E-0003 -6.18569840295771E-0003 -6.18538541389953E-0003 -6.18503858968477E-0003 +-6.18465786921794E-0003 -6.18424319211719E-0003 -6.18379449871638E-0003 -6.18331173006467E-0003 -6.18279482792912E-0003 +-6.18224373479630E-0003 -6.18165839387376E-0003 -6.18103874909070E-0003 -6.18038474510005E-0003 -6.17969632727953E-0003 +-6.17897344173325E-0003 -6.17821603529274E-0003 -6.17742405551806E-0003 -6.17659745069912E-0003 -6.17573616985821E-0003 +-6.17484016274803E-0003 -6.17390937985695E-0003 -6.17294377240734E-0003 -6.17194329235662E-0003 -6.17090789240068E-0003 +-6.16983752597209E-0003 -6.16873214724323E-0003 -6.16759171112599E-0003 -6.16641617327444E-0003 -6.16520549008354E-0003 +-6.16395961869142E-0003 -6.16267851698059E-0003 -6.16136214357824E-0003 -6.16001045785661E-0003 -6.15862341993506E-0003 +-6.15720099068012E-0003 -6.15574313170579E-0003 -6.15424980537606E-0003 -6.15272097480371E-0003 -6.15115660385162E-0003 +-6.14955665713407E-0003 -6.14792110001743E-0003 -6.14624989861924E-0003 -6.14454301981078E-0003 -6.14280043121707E-0003 +-6.14102210121575E-0003 -6.13920799894098E-0003 -6.13735809428070E-0003 -6.13547235787907E-0003 -6.13355076113588E-0003 +-6.13159327620852E-0003 -6.12959987600984E-0003 -6.12757053421143E-0003 -6.12550522524183E-0003 -6.12340392428795E-0003 +-6.12126660729523E-0003 -6.11909325096780E-0003 -6.11688383276882E-0003 -6.11463833092076E-0003 -6.11235672440563E-0003 +-6.11003899296537E-0003 -6.10768511710157E-0003 -6.10529507807600E-0003 -6.10286885791143E-0003 -6.10040643938973E-0003 +-6.09790780605464E-0003 -6.09537294220958E-0003 -6.09280183291887E-0003 -6.09019446400797E-0003 -6.08755082206280E-0003 +-6.08487089442921E-0003 -6.08215466921498E-0003 -6.07940213528783E-0003 -6.07661328227644E-0003 -6.07378810056962E-0003 +-6.07092658131633E-0003 -6.06802871642688E-0003 -6.06509449857019E-0003 -6.06212392117590E-0003 -6.05911697843384E-0003 +-6.05607366529209E-0003 -6.05299397745872E-0003 -6.04987791140130E-0003 -6.04672546434454E-0003 -6.04353663427364E-0003 +-6.04031141992969E-0003 -6.03704982081313E-0003 -6.03375183718097E-0003 -6.03041747004787E-0003 -6.02704672118450E-0003 +-6.02363959311782E-0003 -6.02019608913046E-0003 -6.01671621326069E-0003 -6.01319997030101E-0003 -6.00964736579853E-0003 +-6.00605840605426E-0003 -6.00243309812168E-0003 -5.99877144980774E-0003 -5.99507346967123E-0003 -5.99133916702185E-0003 +-5.98756855192123E-0003 -5.98376163517942E-0003 -5.97991842835789E-0003 -5.97603894376602E-0003 -5.97212319446147E-0003 +-5.96817119424923E-0003 -5.96418295768118E-0003 -5.96015850005505E-0003 -5.95609783741376E-0003 -5.95200098654466E-0003 +-5.94786796497875E-0003 -5.94369879098940E-0003 -5.93949348359254E-0003 -5.93525206254432E-0003 -5.93097454834147E-0003 +-5.92666096222024E-0003 -5.92231132615491E-0003 -5.91792566285667E-0003 -5.91350399577428E-0003 -5.90904634909123E-0003 +-5.90455274772526E-0003 -5.90002321732815E-0003 -5.89545778428370E-0003 -5.89085647570784E-0003 -5.88621931944529E-0003 +-5.88154634407220E-0003 -5.87683757889087E-0003 -5.87209305393176E-0003 -5.86731279995128E-0003 -5.86249684843022E-0003 +-5.85764523157293E-0003 -5.85275798230671E-0003 -5.84783513427950E-0003 -5.84287672185986E-0003 -5.83788278013479E-0003 +-5.83285334490868E-0003 -5.82778845270295E-0003 -5.82268814075340E-0003 -5.81755244700960E-0003 -5.81238141013381E-0003 +-5.80717506949912E-0003 -5.80193346518855E-0003 -5.79665663799372E-0003 -5.79134462941270E-0003 -5.78599748164953E-0003 +-5.78061523761250E-0003 -5.77519794091266E-0003 -5.76974563586264E-0003 -5.76425836747445E-0003 -5.75873618145913E-0003 +-5.75317912422420E-0003 -5.74758724287296E-0003 -5.74196058520288E-0003 -5.73629919970318E-0003 -5.73060313555487E-0003 +-5.72487244262735E-0003 -5.71910717147838E-0003 -5.71330737335211E-0003 -5.70747310017647E-0003 -5.70160440456315E-0003 +-5.69570133980467E-0003 -5.68976395987339E-0003 -5.68379231942007E-0003 -5.67778647377096E-0003 -5.67174647892790E-0003 +-5.66567239156532E-0003 -5.65956426902863E-0003 -5.65342216933346E-0003 -5.64724615116290E-0003 -5.64103627386545E-0003 +-5.63479259745505E-0003 -5.62851518260700E-0003 -5.62220409065837E-0003 -5.61585938360421E-0003 -5.60948112409707E-0003 +-5.60306937544456E-0003 -5.59662420160777E-0003 -5.59014566719953E-0003 -5.58363383748155E-0003 -5.57708877836414E-0003 +-5.57051055640311E-0003 -5.56389923879806E-0003 -5.55725489339066E-0003 -5.55057758866308E-0003 -5.54386739373506E-0003 +-5.53712437836247E-0003 -5.53034861293591E-0003 -5.52354016847751E-0003 -5.51669911664027E-0003 -5.50982552970496E-0003 +-5.50291948057849E-0003 -5.49598104279173E-0003 -5.48901029049817E-0003 -5.48200729847086E-0003 -5.47497214210089E-0003 +-5.46790489739526E-0003 -5.46080564097478E-0003 -5.45367445007164E-0003 -5.44651140252787E-0003 -5.43931657679245E-0003 +-5.43209005192045E-0003 -5.42483190756909E-0003 -5.41754222399707E-0003 -5.41022108206209E-0003 -5.40286856321750E-0003 +-5.39548474951207E-0003 -5.38806972358642E-0003 -5.38062356867054E-0003 -5.37314636858310E-0003 -5.36563820772756E-0003 +-5.35809917109108E-0003 -5.35052934424141E-0003 -5.34292881332537E-0003 -5.33529766506585E-0003 -5.32763598676008E-0003 +-5.31994386627725E-0003 -5.31222139205599E-0003 -5.30446865310186E-0003 -5.29668573898585E-0003 -5.28887273984100E-0003 +-5.28102974636057E-0003 -5.27315684979611E-0003 -5.26525414195408E-0003 -5.25732171519420E-0003 -5.24935966242696E-0003 +-5.24136807711112E-0003 -5.23334705325115E-0003 -5.22529668539511E-0003 -5.21721706863218E-0003 -5.20910829859004E-0003 +-5.20097047143229E-0003 -5.19280368385693E-0003 -5.18460803309216E-0003 -5.17638361689594E-0003 -5.16813053355193E-0003 +-5.15984888186755E-0003 -5.15153876117212E-0003 -5.14320027131283E-0003 -5.13483351265420E-0003 -5.12643858607355E-0003 +-5.11801559296015E-0003 -5.10956463521137E-0003 -5.10108581523091E-0003 -5.09257923592659E-0003 -5.08404500070660E-0003 +-5.07548321347744E-0003 -5.06689397864239E-0003 -5.05827740109677E-0003 -5.04963358622780E-0003 -5.04096263990980E-0003 +-5.03226466850325E-0003 -5.02353977885109E-0003 -5.01478807827659E-0003 -5.00600967458069E-0003 -4.99720467603923E-0003 +-4.98837319140047E-0003 -4.97951532988208E-0003 -4.97063120116871E-0003 -4.96172091540973E-0003 -4.95278458321593E-0003 +-4.94382231565696E-0003 -4.93483422425878E-0003 -4.92582042100088E-0003 -4.91678101831406E-0003 -4.90771612907678E-0003 +-4.89862586661318E-0003 -4.88951034469009E-0003 -4.88036967751425E-0003 -4.87120397972977E-0003 -4.86201336641544E-0003 +-4.85279795308166E-0003 -4.84355785566762E-0003 -4.83429319053919E-0003 -4.82500407448563E-0003 -4.81569062471677E-0003 +-4.80635295886052E-0003 -4.79699119496005E-0003 -4.78760545147069E-0003 -4.77819584725741E-0003 -4.76876250159204E-0003 +-4.75930553415059E-0003 -4.74982506500986E-0003 -4.74032121464507E-0003 -4.73079410392724E-0003 -4.72124385411982E-0003 +-4.71167058687640E-0003 -4.70207442423732E-0003 -4.69245548862722E-0003 -4.68281390285231E-0003 -4.67314979009703E-0003 +-4.66346327392138E-0003 -4.65375447825848E-0003 -4.64402352741122E-0003 -4.63427054604922E-0003 -4.62449565920676E-0003 +-4.61469899227933E-0003 -4.60488067102035E-0003 -4.59504082153929E-0003 -4.58517957029800E-0003 -4.57529704410822E-0003 +-4.56539337012828E-0003 -4.55546867586052E-0003 -4.54552308914834E-0003 -4.53555673817334E-0003 -4.52556975145202E-0003 +-4.51556225783340E-0003 -4.50553438649562E-0003 -4.49548626694354E-0003 -4.48541802900508E-0003 -4.47532980282908E-0003 +-4.46522171888175E-0003 -4.45509390794400E-0003 -4.44494650110861E-0003 -4.43477962977687E-0003 -4.42459342565609E-0003 +-4.41438802075630E-0003 -4.40416354738749E-0003 -4.39392013815659E-0003 -4.38365792596463E-0003 -4.37337704400331E-0003 +-4.36307762575258E-0003 -4.35275980497762E-0003 -4.34242371572542E-0003 -4.33206949232201E-0003 -4.32169726937005E-0003 +-4.31130718174478E-0003 -4.30089936459178E-0003 -4.29047395332406E-0003 -4.28003108361844E-0003 -4.26957089141309E-0003 +-4.25909351290440E-0003 -4.24859908454393E-0003 -4.23808774303521E-0003 -4.22755962533158E-0003 -4.21701486863191E-0003 +-4.20645361037840E-0003 -4.19587598825378E-0003 -4.18528214017752E-0003 -4.17467220430368E-0003 -4.16404631901683E-0003 +-4.15340462293045E-0003 -4.14274725488260E-0003 -4.13207435393342E-0003 -4.12138605936267E-0003 -4.11068251066559E-0003 +-4.09996384755060E-0003 -4.08923020993641E-0003 -4.07848173794845E-0003 -4.06771857191624E-0003 -4.05694085237019E-0003 +-4.04614872003878E-0003 -4.03534231584507E-0003 -4.02452178090429E-0003 -4.01368725652055E-0003 -4.00283888418334E-0003 +-3.99197680556551E-0003 -3.98110116251923E-0003 -3.97021209707349E-0003 -3.95930975143108E-0003 -3.94839426796534E-0003 +-3.93746578921722E-0003 -3.92652445789231E-0003 -3.91557041685789E-0003 -3.90460380913937E-0003 -3.89362477791803E-0003 +-3.88263346652750E-0003 -3.87163001845079E-0003 -3.86061457731721E-0003 -3.84958728689965E-0003 -3.83854829111111E-0003 +-3.82749773400206E-0003 -3.81643575975707E-0003 -3.80536251269201E-0003 -3.79427813725091E-0003 -3.78318277800317E-0003 +-3.77207657963993E-0003 -3.76095968697172E-0003 -3.74983224492511E-0003 -3.73869439853957E-0003 -3.72754629296474E-0003 +-3.71638807345713E-0003 -3.70521988537739E-0003 -3.69404187418691E-0003 -3.68285418544501E-0003 -3.67165696480601E-0003 +-3.66045035801601E-0003 -3.64923451091007E-0003 -3.63800956940879E-0003 -3.62677567951589E-0003 -3.61553298731469E-0003 +-3.60428163896539E-0003 -3.59302178070177E-0003 -3.58175355882867E-0003 -3.57047711971829E-0003 -3.55919260980779E-0003 +-3.54790017559596E-0003 -3.53659996364034E-0003 -3.52529212055406E-0003 -3.51397679300303E-0003 -3.50265412770288E-0003 +-3.49132427141581E-0003 -3.47998737094796E-0003 -3.46864357314590E-0003 -3.45729302489405E-0003 -3.44593587311155E-0003 +-3.43457226474914E-0003 -3.42320234678653E-0003 -3.41182626622901E-0003 -3.40044417010461E-0003 -3.38905620546136E-0003 +-3.37766251936384E-0003 -3.36626325889071E-0003 -3.35485857113152E-0003 -3.34344860318337E-0003 -3.33203350214867E-0003 +-3.32061341513158E-0003 -3.30918848923548E-0003 -3.29775887155953E-0003 -3.28632470919619E-0003 -3.27488614922801E-0003 +-3.26344333872466E-0003 -3.25199642474018E-0003 -3.24054555430978E-0003 -3.22909087444716E-0003 -3.21763253214135E-0003 +-3.20617067435386E-0003 -3.19470544801583E-0003 -3.18323700002503E-0003 -3.17176547724286E-0003 -3.16029102649166E-0003 +-3.14881379455137E-0003 -3.13733392815716E-0003 -3.12585157399625E-0003 -3.11436687870474E-0003 -3.10287998886510E-0003 +-3.09139105100328E-0003 -3.07990021158555E-0003 -3.06840761701572E-0003 -3.05691341363231E-0003 -3.04541774770559E-0003 +-3.03392076543475E-0003 -3.02242261294505E-0003 -3.01092343628491E-0003 -2.99942338142297E-0003 -2.98792259424532E-0003 +-2.97642122055273E-0003 -2.96491940605748E-0003 -2.95341729638101E-0003 -2.94191503705048E-0003 -2.93041277349642E-0003 +-2.91891065104966E-0003 -2.90740881493858E-0003 -2.89590741028621E-0003 -2.88440658210737E-0003 -2.87290647530604E-0003 +-2.86140723467253E-0003 -2.84990900488029E-0003 -2.83841193048365E-0003 -2.82691615591462E-0003 -2.81542182548032E-0003 +-2.80392908336009E-0003 -2.79243807360268E-0003 -2.78094894012362E-0003 -2.76946182670227E-0003 -2.75797687697917E-0003 +-2.74649423445322E-0003 -2.73501404247892E-0003 -2.72353644426370E-0003 -2.71206158286502E-0003 -2.70058960118775E-0003 +-2.68912064198150E-0003 -2.67765484783761E-0003 -2.66619236118684E-0003 -2.65473332429615E-0003 -2.64327787926642E-0003 +-2.63182616802950E-0003 -2.62037833234568E-0003 -2.60893451380085E-0003 -2.59749485380375E-0003 -2.58605949358355E-0003 +-2.57462857418687E-0003 -2.56320223647538E-0003 -2.55178062112285E-0003 -2.54036386861284E-0003 -2.52895211923551E-0003 +-2.51754551308569E-0003 -2.50614419005953E-0003 -2.49474828985241E-0003 -2.48335795195595E-0003 -2.47197331565564E-0003 +-2.46059452002787E-0003 -2.44922170393774E-0003 -2.43785500603627E-0003 -2.42649456475776E-0003 -2.41514051831712E-0003 +-2.40379300470749E-0003 -2.39245216169769E-0003 -2.38111812682928E-0003 -2.36979103741437E-0003 -2.35847103053288E-0003 +-2.34715824303022E-0003 -2.33585281151426E-0003 -2.32455487235328E-0003 -2.31326456167323E-0003 -2.30198201535519E-0003 +-2.29070736903296E-0003 -2.27944075809037E-0003 -2.26818231765891E-0003 -2.25693218261533E-0003 -2.24569048757879E-0003 +-2.23445736690889E-0003 -2.22323295470263E-0003 -2.21201738479248E-0003 -2.20081079074353E-0003 -2.18961330585112E-0003 +-2.17842506313867E-0003 -2.16724619535480E-0003 -2.15607683497123E-0003 -2.14491711418015E-0003 -2.13376716489199E-0003 +-2.12262711873292E-0003 -2.11149710704240E-0003 -2.10037726087076E-0003 -2.08926771097709E-0003 -2.07816858782645E-0003 +-2.06708002158788E-0003 -2.05600214213169E-0003 -2.04493507902742E-0003 -2.03387896154129E-0003 -2.02283391863395E-0003 +-2.01180007895805E-0003 -2.00077757085606E-0003 -1.98976652235792E-0003 -1.97876706117858E-0003 -1.96777931471589E-0003 +-1.95680341004825E-0003 -1.94583947393226E-0003 -1.93488763280052E-0003 -1.92394801275928E-0003 -1.91302073958643E-0003 +-1.90210593872880E-0003 -1.89120373530033E-0003 -1.88031425407970E-0003 -1.86943761950808E-0003 -1.85857395568687E-0003 +-1.84772338637553E-0003 -1.83688603498952E-0003 -1.82606202459782E-0003 -1.81525147792104E-0003 -1.80445451732911E-0003 +-1.79367126483901E-0003 -1.78290184211286E-0003 -1.77214637045559E-0003 -1.76140497081281E-0003 -1.75067776376877E-0003 +-1.73996486954414E-0003 -1.72926640799402E-0003 -1.71858249860568E-0003 -1.70791326049654E-0003 -1.69725881241224E-0003 +-1.68661927272414E-0003 -1.67599475942779E-0003 -1.66538539014050E-0003 -1.65479128209932E-0003 -1.64421255215920E-0003 +-1.63364931679076E-0003 -1.62310169207834E-0003 -1.61256979371803E-0003 -1.60205373701557E-0003 -1.59155363688441E-0003 +-1.58106960784377E-0003 -1.57060176401656E-0003 -1.56015021912754E-0003 -1.54971508650116E-0003 -1.53929647905990E-0003 +-1.52889450932203E-0003 -1.51850928939991E-0003 -1.50814093099799E-0003 -1.49778954541081E-0003 -1.48745524352130E-0003 +-1.47713813579868E-0003 -1.46683833229668E-0003 -1.45655594265170E-0003 -1.44629107608086E-0003 -1.43604384138023E-0003 +-1.42581434692296E-0003 -1.41560270065735E-0003 -1.40540901010526E-0003 -1.39523338235999E-0003 -1.38507592408477E-0003 +-1.37493674151080E-0003 -1.36481594043540E-0003 -1.35471362622050E-0003 -1.34462990379059E-0003 -1.33456487763110E-0003 +-1.32451865178676E-0003 -1.31449132985956E-0003 -1.30448301500744E-0003 -1.29449380994215E-0003 -1.28452381692785E-0003 +-1.27457313777931E-0003 -1.26464187386026E-0003 -1.25473012608162E-0003 -1.24483799489993E-0003 -1.23496558031572E-0003 +-1.22511298187183E-0003 -1.21528029865164E-0003 -1.20546762927776E-0003 -1.19567507191014E-0003 -1.18590272424453E-0003 +-1.17615068351103E-0003 -1.16641904647237E-0003 -1.15670790942227E-0003 -1.14701736818419E-0003 -1.13734751810940E-0003 +-1.12769845407574E-0003 -1.11807027048585E-0003 -1.10846306126592E-0003 -1.09887691986398E-0003 -1.08931193924842E-0003 +-1.07976821190662E-0003 -1.07024582984334E-0003 -1.06074488457939E-0003 -1.05126546715007E-0003 -1.04180766810372E-0003 +-1.03237157750048E-0003 -1.02295728491055E-0003 -1.01356487941306E-0003 -1.00419444959455E-0003 -9.94846083547572E-0004 +-9.85519868869380E-0004 -9.76215892660407E-0004 -9.66934241523195E-0004 -9.57675001560784E-0004 -9.48438258375425E-0004 +-9.39224097067385E-0004 -9.30032602233548E-0004 -9.20863857966046E-0004 -9.11717947851189E-0004 -9.02594954967873E-0004 +-8.93494961886571E-0004 -8.84418050668031E-0004 -8.75364302861845E-0004 -8.66333799505492E-0004 -8.57326621122928E-0004 +-8.48342847723387E-0004 -8.39382558800314E-0004 -8.30445833329953E-0004 -8.21532749770399E-0004 -8.12643386060266E-0004 +-8.03777819617596E-0004 -7.94936127338770E-0004 -7.86118385597253E-0004 -7.77324670242561E-0004 -7.68555056599052E-0004 +-7.59809619465031E-0004 -7.51088433111428E-0004 -7.42391571280838E-0004 -7.33719107186491E-0004 -7.25071113511069E-0004 +-7.16447662405761E-0004 -7.07848825489308E-0004 -6.99274673846735E-0004 -6.90725278028626E-0004 -6.82200708049895E-0004 +-6.73701033389011E-0004 -6.65226322986818E-0004 -6.56776645245718E-0004 -6.48352068028710E-0004 -6.39952658658366E-0004 +-6.31578483915942E-0004 -6.23229610040547E-0004 -6.14906102728086E-0004 -6.06608027130514E-0004 -5.98335447854841E-0004 +-5.90088428962341E-0004 -5.81867033967671E-0004 -5.73671325837996E-0004 -5.65501366992181E-0004 -5.57357219300015E-0004 +-5.49238944081286E-0004 -5.41146602105102E-0004 -5.33080253588987E-0004 -5.25039958198256E-0004 -5.17025775045129E-0004 +-5.09037762687949E-0004 -5.01075979130647E-0004 -4.93140481821726E-0004 -4.85231327653807E-0004 -4.77348572962765E-0004 +-4.69492273527073E-0004 -4.61662484567199E-0004 -4.53859260744768E-0004 -4.46082656162071E-0004 -4.38332724361378E-0004 +-4.30609518324214E-0004 -4.22913090470841E-0004 -4.15243492659682E-0004 -4.07600776186514E-0004 -3.99984991784166E-0004 +-3.92396189621709E-0004 -3.84834419304014E-0004 -3.77299729871241E-0004 -3.69792169798115E-0004 -3.62311786993662E-0004 +-3.54858628800428E-0004 -3.47432741994226E-0004 -3.40034172783446E-0004 -3.32662966808688E-0004 -3.25319169142274E-0004 +-3.18002824287739E-0004 -3.10713976179535E-0004 -3.03452668182421E-0004 -2.96218943091156E-0004 -2.89012843130085E-0004 +-2.81834409952691E-0004 -2.74683684641265E-0004 -2.67560707706581E-0004 -2.60465519087378E-0004 -2.53398158150207E-0004 +-2.46358663688948E-0004 -2.39347073924599E-0004 -2.32363426504907E-0004 -2.25407758504030E-0004 -2.18480106422392E-0004 +-2.11580506186288E-0004 -2.04708993147656E-0004 -1.97865602083824E-0004 -1.91050367197317E-0004 -1.84263322115593E-0004 +-1.77504499890797E-0004 -1.70773932999675E-0004 -1.64071653343301E-0004 -1.57397692246834E-0004 -1.50752080459552E-0004 +-1.44134848154554E-0004 -1.37546024928610E-0004 -1.30985639802135E-0004 -1.24453721218996E-0004 -1.17950297046440E-0004 +-1.11475394575007E-0004 -1.05029040518427E-0004 -9.86112610136051E-0005 -9.22220816204923E-0005 -8.58615273221034E-0005 +-7.95296225245172E-0005 -7.32263910567412E-0005 -6.69518561708302E-0005 -6.07060405418482E-0005 -5.44889662678500E-0005 +-4.83006548699931E-0005 -4.21411272924927E-0005 -3.60104039027634E-0005 -2.99085044914551E-0005 -2.38354482724692E-0005 +-1.77912538831751E-0005 -1.17759393844039E-0005 -5.78952226064093E-0006 1.67980579862291E-0007 6.09655280502058E-0006 + 1.19961786585950E-0005 1.78668429602365E-0005 2.37085311051118E-0005 2.95212290638465E-0005 3.53049233822571E-0005 + 4.10596011811589E-0005 4.67852501561380E-0005 5.24818585773132E-0005 5.81494152890404E-0005 6.37879097097539E-0005 + 6.93973318315582E-0005 7.49776722200544E-0005 8.05289220139506E-0005 8.60510729248129E-0005 9.15441172367139E-0005 + 9.70080478059010E-0005 1.02442858060462E-0004 1.07848541999898E-0004 1.13225094194849E-0004 1.18572509786647E-0004 + 1.23890784486926E-0004 1.29179914577200E-0004 1.34439896908508E-0004 1.39670728900873E-0004 1.44872408542973E-0004 + 1.50044934391587E-0004 1.55188305571148E-0004 1.60302521773317E-0004 1.65387583256431E-0004 1.70443490845008E-0004 + 1.75470245929241E-0004 1.80467850464437E-0004 1.85436306970523E-0004 1.90375618531464E-0004 1.95285788794695E-0004 + 2.00166821970546E-0004 2.05018722831637E-0004 2.09841496712316E-0004 2.14635149507996E-0004 2.19399687674571E-0004 + 2.24135118227754E-0004 2.28841448742399E-0004 2.33518687351923E-0004 2.38166842747518E-0004 2.42785924177587E-0004 + 2.47375941446942E-0004 2.51936904916128E-0004 2.56468825500758E-0004 2.60971714670677E-0004 2.65445584449290E-0004 + 2.69890447412793E-0004 2.74306316689362E-0004 2.78693205958447E-0004 2.83051129449903E-0004 2.87380101943208E-0004 + 2.91680138766690E-0004 2.95951255796623E-0004 3.00193469456465E-0004 3.04406796715935E-0004 3.08591255090183E-0004 + 3.12746862638931E-0004 3.16873637965547E-0004 3.20971600216178E-0004 3.25040769078824E-0004 3.29081164782396E-0004 + 3.33092808095844E-0004 3.37075720327117E-0004 3.41029923322303E-0004 3.44955439464584E-0004 3.48852291673298E-0004 + 3.52720503402935E-0004 3.56560098642118E-0004 3.60371101912627E-0004 3.64153538268310E-0004 3.67907433294091E-0004 + 3.71632813104936E-0004 3.75329704344713E-0004 3.78998134185203E-0004 3.82638130324959E-0004 3.86249720988255E-0004 + 3.89832934923930E-0004 3.93387801404295E-0004 3.96914350224010E-0004 4.00412611698918E-0004 4.03882616664915E-0004 + 4.07324396476781E-0004 4.10737983006961E-0004 4.14123408644446E-0004 4.17480706293543E-0004 4.20809909372645E-0004 + 4.24111051813036E-0004 4.27384168057656E-0004 4.30629293059824E-0004 4.33846462282056E-0004 4.37035711694707E-0004 + 4.40197077774771E-0004 4.43330597504544E-0004 4.46436308370332E-0004 4.49514248361169E-0004 4.52564455967458E-0004 + 4.55586970179671E-0004 4.58581830486968E-0004 4.61549076875874E-0004 4.64488749828891E-0004 4.67400890323143E-0004 + 4.70285539828958E-0004 4.73142740308511E-0004 4.75972534214353E-0004 4.78774964488073E-0004 4.81550074558768E-0004 + 4.84297908341688E-0004 4.87018510236738E-0004 4.89711925127009E-0004 4.92378198377335E-0004 4.95017375832775E-0004 + 4.97629503817125E-0004 5.00214629131432E-0004 5.02772799052446E-0004 5.05304061331118E-0004 5.07808464191035E-0004 + 5.10286056326872E-0004 5.12736886902877E-0004 5.15161005551246E-0004 5.17558462370544E-0004 5.19929307924166E-0004 + 5.22273593238674E-0004 5.24591369802218E-0004 5.26882689562888E-0004 5.29147604927127E-0004 5.31386168758030E-0004 + 5.33598434373714E-0004 5.35784455545678E-0004 5.37944286497089E-0004 5.40077981901107E-0004 5.42185596879208E-0004 + 5.44267186999450E-0004 5.46322808274794E-0004 5.48352517161341E-0004 5.50356370556607E-0004 5.52334425797802E-0004 + 5.54286740660024E-0004 5.56213373354546E-0004 5.58114382527011E-0004 5.59989827255633E-0004 5.61839767049444E-0004 + 5.63664261846430E-0004 5.65463372011785E-0004 5.67237158336011E-0004 5.68985682033138E-0004 5.70709004738856E-0004 + 5.72407188508661E-0004 5.74080295815993E-0004 5.75728389550362E-0004 5.77351533015450E-0004 5.78949789927248E-0004 + 5.80523224412118E-0004 5.82071901004910E-0004 5.83595884647013E-0004 5.85095240684438E-0004 5.86570034865881E-0004 + 5.88020333340757E-0004 5.89446202657253E-0004 5.90847709760348E-0004 5.92224921989843E-0004 5.93577907078373E-0004 + 5.94906733149395E-0004 5.96211468715198E-0004 5.97492182674879E-0004 5.98748944312329E-0004 5.99981823294176E-0004 + 6.01190889667766E-0004 6.02376213859090E-0004 6.03537866670747E-0004 6.04675919279846E-0004 6.05790443235954E-0004 + 6.06881510458986E-0004 6.07949193237122E-0004 6.08993564224693E-0004 6.10014696440063E-0004 6.11012663263537E-0004 + 6.11987538435178E-0004 6.12939396052701E-0004 6.13868310569328E-0004 6.14774356791605E-0004 6.15657609877254E-0004 + 6.16518145332994E-0004 6.17356039012351E-0004 6.18171367113488E-0004 6.18964206176966E-0004 6.19734633083578E-0004 + 6.20482725052104E-0004 6.21208559637097E-0004 6.21912214726645E-0004 6.22593768540138E-0004 6.23253299626009E-0004 + 6.23890886859475E-0004 6.24506609440288E-0004 6.25100546890437E-0004 6.25672779051886E-0004 6.26223386084276E-0004 + 6.26752448462630E-0004 6.27260046975038E-0004 6.27746262720363E-0004 6.28211177105895E-0004 6.28654871845050E-0004 + 6.29077428955012E-0004 6.29478930754397E-0004 6.29859459860901E-0004 6.30219099188945E-0004 6.30557931947299E-0004 + 6.30876041636711E-0004 6.31173512047534E-0004 6.31450427257327E-0004 6.31706871628465E-0004 6.31942929805726E-0004 + 6.32158686713892E-0004 6.32354227555333E-0004 6.32529637807559E-0004 6.32685003220815E-0004 6.32820409815635E-0004 + 6.32935943880376E-0004 6.33031691968798E-0004 6.33107740897572E-0004 6.33164177743837E-0004 6.33201089842713E-0004 + 6.33218564784829E-0004 6.33216690413824E-0004 6.33195554823866E-0004 6.33155246357144E-0004 6.33095853601368E-0004 + 6.33017465387239E-0004 6.32920170785954E-0004 6.32804059106658E-0004 6.32669219893925E-0004 6.32515742925213E-0004 + 6.32343718208310E-0004 6.32153235978805E-0004 6.31944386697511E-0004 6.31717261047907E-0004 6.31471949933569E-0004 + 6.31208544475595E-0004 6.30927136010019E-0004 6.30627816085228E-0004 6.30310676459367E-0004 6.29975809097740E-0004 + 6.29623306170203E-0004 6.29253260048551E-0004 6.28865763303908E-0004 6.28460908704105E-0004 6.28038789211042E-0004 + 6.27599497978070E-0004 6.27143128347337E-0004 6.26669773847161E-0004 6.26179528189362E-0004 6.25672485266622E-0004 + 6.25148739149825E-0004 6.24608384085378E-0004 6.24051514492562E-0004 6.23478224960838E-0004 6.22888610247179E-0004 + 6.22282765273383E-0004 6.21660785123376E-0004 6.21022765040532E-0004 6.20368800424958E-0004 6.19698986830797E-0004 + 6.19013419963528E-0004 6.18312195677233E-0004 6.17595409971898E-0004 6.16863158990683E-0004 6.16115539017192E-0004 + 6.15352646472753E-0004 6.14574577913668E-0004 6.13781430028487E-0004 6.12973299635254E-0004 6.12150283678769E-0004 + 6.11312479227829E-0004 6.10459983472471E-0004 6.09592893721220E-0004 6.08711307398322E-0004 6.07815322040969E-0004 + 6.06905035296546E-0004 6.05980544919827E-0004 6.05041948770232E-0004 6.04089344809018E-0004 6.03122831096500E-0004 + 6.02142505789273E-0004 6.01148467137401E-0004 6.00140813481640E-0004 5.99119643250626E-0004 5.98085054958075E-0004 + 5.97037147199988E-0004 5.95976018651825E-0004 5.94901768065706E-0004 5.93814494267598E-0004 5.92714296154487E-0004 + 5.91601272691574E-0004 5.90475522909429E-0004 5.89337145901193E-0004 5.88186240819731E-0004 5.87022906874802E-0004 + 5.85847243330241E-0004 5.84659349501102E-0004 5.83459324750840E-0004 5.82247268488460E-0004 5.81023280165672E-0004 + 5.79787459274060E-0004 5.78539905342224E-0004 5.77280717932928E-0004 5.76009996640265E-0004 5.74727841086785E-0004 + 5.73434350920661E-0004 5.72129625812822E-0004 5.70813765454086E-0004 5.69486869552324E-0004 5.68149037829576E-0004 + 5.66800370019208E-0004 5.65440965863036E-0004 5.64070925108458E-0004 5.62690347505606E-0004 5.61299332804454E-0004 + 5.59897980751972E-0004 5.58486391089244E-0004 5.57064663548594E-0004 5.55632897850729E-0004 5.54191193701849E-0004 + 5.52739650790790E-0004 5.51278368786144E-0004 5.49807447333372E-0004 5.48326986051958E-0004 5.46837084532499E-0004 + 5.45337842333857E-0004 5.43829358980274E-0004 5.42311733958483E-0004 5.40785066714851E-0004 5.39249456652495E-0004 + 5.37705003128393E-0004 5.36151805450532E-0004 5.34589962875005E-0004 5.33019574603155E-0004 5.31440739778692E-0004 + 5.29853557484808E-0004 5.28258126741320E-0004 5.26654546501774E-0004 5.25042915650593E-0004 5.23423333000188E-0004 + 5.21795897288085E-0004 5.20160707174065E-0004 5.18517861237274E-0004 5.16867457973376E-0004 5.15209595791668E-0004 + 5.13544373012207E-0004 5.11871887862965E-0004 5.10192238476935E-0004 5.08505522889292E-0004 5.06811839034522E-0004 + 5.05111284743544E-0004 5.03403957740883E-0004 5.01689955641774E-0004 4.99969375949339E-0004 4.98242316051718E-0004 + 4.96508873219205E-0004 4.94769144601421E-0004 4.93023227224452E-0004 4.91271217987995E-0004 4.89513213662535E-0004 + 4.87749310886479E-0004 4.85979606163336E-0004 4.84204195858877E-0004 4.82423176198279E-0004 4.80636643263332E-0004 + 4.78844692989564E-0004 4.77047421163459E-0004 4.75244923419606E-0004 4.73437295237881E-0004 4.71624631940643E-0004 + 4.69807028689900E-0004 4.67984580484521E-0004 4.66157382157413E-0004 4.64325528372712E-0004 4.62489113623004E-0004 + 4.60648232226499E-0004 4.58802978324266E-0004 4.56953445877427E-0004 4.55099728664362E-0004 4.53241920277956E-0004 + 4.51380114122787E-0004 4.49514403412380E-0004 4.47644881166426E-0004 4.45771640208003E-0004 4.43894773160841E-0004 + 4.42014372446551E-0004 4.40130530281863E-0004 4.38243338675902E-0004 4.36352889427421E-0004 4.34459274122080E-0004 + 4.32562584129711E-0004 4.30662910601572E-0004 4.28760344467653E-0004 4.26854976433925E-0004 4.24946896979657E-0004 + 4.23036196354696E-0004 4.21122964576751E-0004 4.19207291428728E-0004 4.17289266456003E-0004 4.15368978963769E-0004 + 4.13446518014338E-0004 4.11521972424464E-0004 4.09595430762696E-0004 4.07666981346689E-0004 4.05736712240574E-0004 + 4.03804711252298E-0004 4.01871065930970E-0004 3.99935863564249E-0004 3.97999191175688E-0004 3.96061135522134E-0004 + 3.94121783091101E-0004 3.92181220098149E-0004 3.90239532484304E-0004 3.88296805913453E-0004 3.86353125769738E-0004 + 3.84408577155009E-0004 3.82463244886215E-0004 3.80517213492862E-0004 3.78570567214446E-0004 3.76623389997892E-0004 + 3.74675765495029E-0004 3.72727777060029E-0004 3.70779507746906E-0004 3.68831040306981E-0004 3.66882457186359E-0004 + 3.64933840523454E-0004 3.62985272146460E-0004 3.61036833570890E-0004 3.59088605997089E-0004 3.57140670307748E-0004 + 3.55193107065474E-0004 3.53245996510299E-0004 3.51299418557271E-0004 3.49353452794001E-0004 3.47408178478229E-0004 + 3.45463674535433E-0004 3.43520019556390E-0004 3.41577291794806E-0004 3.39635569164914E-0004 3.37694929239084E-0004 + 3.35755449245480E-0004 3.33817206065682E-0004 3.31880276232330E-0004 3.29944735926808E-0004 3.28010660976887E-0004 + 3.26078126854429E-0004 3.24147208673068E-0004 3.22217981185899E-0004 3.20290518783216E-0004 3.18364895490205E-0004 + 3.16441184964705E-0004 3.14519460494937E-0004 3.12599794997248E-0004 3.10682261013906E-0004 3.08766930710845E-0004 + 3.06853875875480E-0004 3.04943167914494E-0004 3.03034877851640E-0004 3.01129076325589E-0004 2.99225833587733E-0004 + 2.97325219500059E-0004 2.95427303532997E-0004 2.93532154763273E-0004 2.91639841871826E-0004 2.89750433141663E-0004 + 2.87863996455802E-0004 2.85980599295169E-0004 2.84100308736527E-0004 2.82223191450439E-0004 2.80349313699216E-0004 + 2.78478741334872E-0004 2.76611539797137E-0004 2.74747774111421E-0004 2.72887508886850E-0004 2.71030808314278E-0004 + 2.69177736164310E-0004 2.67328355785382E-0004 2.65482730101789E-0004 2.63640921611791E-0004 2.61802992385693E-0004 + 2.59969004063938E-0004 2.58139017855251E-0004 2.56313094534746E-0004 2.54491294442096E-0004 2.52673677479685E-0004 + 2.50860303110776E-0004 2.49051230357723E-0004 2.47246517800153E-0004 2.45446223573209E-0004 2.43650405365779E-0004 + 2.41859120418731E-0004 2.40072425523209E-0004 2.38290377018887E-0004 2.36513030792286E-0004 2.34740442275080E-0004 + 2.32972666442417E-0004 2.31209757811278E-0004 2.29451770438832E-0004 2.27698757920800E-0004 2.25950773389874E-0004 + 2.24207869514096E-0004 2.22470098495310E-0004 2.20737512067594E-0004 2.19010161495705E-0004 2.17288097573582E-0004 + 2.15571370622813E-0004 2.13860030491161E-0004 2.12154126551091E-0004 2.10453707698294E-0004 2.08758822350280E-0004 + 2.07069518444923E-0004 2.05385843439088E-0004 2.03707844307231E-0004 2.02035567540022E-0004 2.00369059143019E-0004 + 1.98708364635312E-0004 1.97053529048229E-0004 1.95404596924033E-0004 1.93761612314638E-0004 1.92124618780371E-0004 + 1.90493659388707E-0004 1.88868776713075E-0004 1.87250012831643E-0004 1.85637409326130E-0004 1.84031007280660E-0004 + 1.82430847280609E-0004 1.80836969411476E-0004 1.79249413257794E-0004 1.77668217902026E-0004 1.76093421923521E-0004 + 1.74525063397459E-0004 1.72963179893818E-0004 1.71407808476391E-0004 1.69858985701780E-0004 1.68316747618450E-0004 + 1.66781129765784E-0004 1.65252167173144E-0004 1.63729894358999E-0004 1.62214345330014E-0004 1.60705553580219E-0004 + 1.59203552090160E-0004 1.57708373326073E-0004 1.56220049239111E-0004 1.54738611264550E-0004 1.53264090321056E-0004 + 1.51796516809951E-0004 1.50335920614492E-0004 1.48882331099212E-0004 1.47435777109232E-0004 1.45996286969645E-0004 + 1.44563888484884E-0004 1.43138608938124E-0004 1.41720475090729E-0004 1.40309513181690E-0004 1.38905748927095E-0004 + 1.37509207519645E-0004 1.36119913628156E-0004 1.34737891397120E-0004 1.33363164446267E-0004 1.31995755870149E-0004 + 1.30635688237777E-0004 1.29282983592237E-0004 1.27937663450377E-0004 1.26599748802488E-0004 1.25269260112005E-0004 + 1.23946217315270E-0004 1.22630639821273E-0004 1.21322546511452E-0004 1.20021955739509E-0004 1.18728885331232E-0004 + 1.17443352584380E-0004 1.16165374268551E-0004 1.14894966625117E-0004 1.13632145367152E-0004 1.12376925679397E-0004 + 1.11129322218263E-0004 1.09889349111837E-0004 1.08657019959939E-0004 1.07432347834188E-0004 1.06215345278092E-0004 + 1.05006024307192E-0004 1.03804396409191E-0004 1.02610472544150E-0004 1.01424263144690E-0004 1.00245778116214E-0004 + 9.90750268371829E-0005 9.79120181593977E-0005 9.67567604083077E-0005 9.56092613833701E-0005 9.44695283584038E-0005 + 9.33375680820051E-0005 9.22133867779695E-0005 9.10969901457412E-0005 8.99883833609144E-0005 8.88875710757296E-0005 + 8.77945574196318E-0005 8.67093459998359E-0005 8.56319399019220E-0005 8.45623416904801E-0005 8.35005534097535E-0005 + 8.24465765843433E-0005 8.14004122199213E-0005 8.03620608039733E-0005 7.93315223065927E-0005 7.83087961812740E-0005 + 7.72938813657667E-0005 7.62867762829401E-0005 7.52874788416782E-0005 7.42959864378257E-0005 7.33122959551355E-0005 + 7.23364037662755E-0005 7.13683057338493E-0005 7.04079972114466E-0005 6.94554730447428E-0005 6.85107275726137E-0005 + 6.75737546282817E-0005 6.66445475405129E-0005 6.57230991348181E-0005 6.48094017347145E-0005 6.39034471630008E-0005 + 6.30052267430657E-0005 6.21147313002465E-0005 6.12319511631945E-0005 6.03568761652993E-0005 5.94894956461298E-0005 + 5.86297984529074E-0005 5.77777729420313E-0005 5.69334069806108E-0005 5.60966879480572E-0005 5.52676027376935E-0005 + 5.44461377583977E-0005 5.36322789362965E-0005 5.28260117164705E-0005 5.20273210647167E-0005 5.12361914693305E-0005 + 5.04526069429232E-0005 4.96765510242890E-0005 4.89080067802854E-0005 4.81469568077710E-0005 4.73933832355644E-0005 + 4.66472677264386E-0005 4.59085914791648E-0005 4.51773352305786E-0005 4.44534792576832E-0005 4.37370033798028E-0005 + 4.30278869607517E-0005 4.23261089110606E-0005 4.16316476902264E-0005 4.09444813089988E-0005 4.02645873317180E-0005 + 3.95919428786692E-0005 3.89265246284947E-0005 3.82683088206308E-0005 3.76172712577823E-0005 3.69733873084481E-0005 + 3.63366319094654E-0005 3.57069795686120E-0005 3.50844043672336E-0005 3.44688799629110E-0005 3.38603795921771E-0005 + 3.32588760732558E-0005 3.26643418088572E-0005 3.20767487890011E-0005 3.14960685938795E-0005 3.09222723967702E-0005 + 3.03553309669738E-0005 2.97952146728069E-0005 2.92418934846247E-0005 2.86953369778838E-0005 2.81555143362557E-0005 + 2.76223943547704E-0005 2.70959454430021E-0005 2.65761356283052E-0005 2.60629325590770E-0005 2.55563035080761E-0005 + 2.50562153757728E-0005 2.45626346937417E-0005 2.40755276281047E-0005 2.35948599830025E-0005 2.31205972041225E-0005 + 2.26527043822593E-0005 2.21911462569181E-0005 2.17358872199698E-0005 2.12868913193357E-0005 2.08441222627281E-0005 + 2.04075434214260E-0005 1.99771178340938E-0005 1.95528082106522E-0005 1.91345769361805E-0005 1.87223860748748E-0005 + 1.83161973740425E-0005 1.79159722681411E-0005 1.75216718828692E-0005 1.71332570392904E-0005 1.67506882580141E-0005 + 1.63739257634125E-0005 1.60029294878844E-0005 1.56376590761695E-0005 1.52780738897025E-0005 1.49241330110129E-0005 + 1.45757952481771E-0005 1.42330191393068E-0005 1.38957629570939E-0005 1.35639847133943E-0005 1.32376421638591E-0005 + 1.29166928126188E-0005 1.26010939170047E-0005 1.22908024923274E-0005 1.19857753166954E-0005 1.16859689358822E-0005 + 1.13913396682469E-0005 1.11018436096928E-0005 1.08174366386846E-0005 1.05380744213058E-0005 1.02637124163666E-0005 + 9.99430588056503E-0006 9.72980987368781E-0006 9.47017926386999E-0006 9.21536873289693E-0006 8.96533278155642E-0006 + 8.72002573504495E-0006 8.47940174841647E-0006 8.24341481208815E-0006 8.01201875739140E-0006 7.78516726217330E-0006 + 7.56281385645245E-0006 7.34491192812125E-0006 7.13141472869931E-0006 6.92227537914181E-0006 6.71744687569289E-0006 + 6.51688209579652E-0006 6.32053380405484E-0006 6.12835465823826E-0006 5.94029721535139E-0006 5.75631393774529E-0006 + 5.57635719928764E-0006 5.40037929158169E-0006 5.22833243023802E-0006 5.06016876120245E-0006 4.89584036713204E-0006 + 4.73529927382928E-0006 4.57849745672636E-0006 4.42538684742322E-0006 4.27591934028238E-0006 4.13004679907336E-0006 + 3.98772106367556E-0006 3.84889395683278E-0006 3.71351729096225E-0006 3.58154287502123E-0006 3.45292252142448E-0006 + 3.32760805302093E-0006 3.20555131012295E-0006 3.08670415759140E-0006 2.97101849197846E-0006 2.85844624872425E-0006 + 2.74893940940973E-0006 2.64245000906797E-0006 2.53893014354883E-0006 2.43833197694346E-0006 2.34060774906365E-0006 + 2.24570978297830E-0006 2.15359049260920E-0006 2.06420239038139E-0006 1.97749809493404E-0006 1.89343033888735E-0006 + 1.81195197666774E-0006 1.73301599239279E-0006 1.65657550781241E-0006 1.58258379031096E-0006 1.51099426096679E-0006 + 1.44176050267088E-0006 1.37483626830616E-0006 1.31017548898428E-0006 1.24773228234413E-0006 1.18746096090882E-0006 + 1.12931604050296E-0006 1.07325224873125E-0006 1.01922453351597E-0006 9.67188071696823E-0007 9.17098277690499E-0007 + 8.68910812211531E-0007 8.22581591055247E-0007 7.78066793941369E-0007 7.35322873419411E-0007 6.94306563836826E-0007 + 6.54974890368040E-0007 6.17285178107042E-0007 5.81195061221700E-0007 5.46662492170888E-0007 5.13645750985240E-0007 + 4.82103454610044E-0007 4.51994566312503E-0007 4.23278405151905E-0007 3.95914655513624E-0007 3.69863376707652E-0007 + 3.45085012630518E-0007 3.21540401492401E-0007 2.99190785608330E-0007 2.77997821254255E-0007 2.57923588588570E-0007 + 2.38930601638247E-0007 2.20981818351032E-0007 2.04040650712903E-0007 1.88070974931435E-0007 1.73037141685566E-0007 + 1.58903986441186E-0007 1.45636839833692E-0007 1.33201538116957E-0007 1.21564433679263E-0007 1.10692405626588E-0007 + 1.00552870433028E-0007 9.11137926588199E-0008 8.23436957363261E-0008 7.42116728237514E-0008 6.66873977273309E-0008 + 5.97411358917731E-0008 5.33437554593655E-0008 4.74667383980654E-0008 4.20821916984745E-0008 3.71628586402839E-0008 + 3.26821301281065E-0008 2.86140560970481E-0008 2.49333569882986E-0008 2.16154352947598E-0008 1.86363871771627E-0008 + 1.59730141507011E-0008 1.36028348424899E-0008 1.15040968200991E-0008 9.65578849126629E-0009 8.03765107514337E-0009 + 6.63019064518825E-0009 5.41469024397186E-0009 4.37322207013818E-0009 3.48865973767612E-0009 2.74469060779544E-0009 + 2.12582819357182E-0009 1.61742463760986E-0009 1.20568326295078E-0009 8.77671197425942E-0010 6.21332071693833E-0010 + 4.25498791185477E-0010 2.79906382168121E-0010 1.75204912166188E-0010 1.02972484952037E-0010 5.57283103367888E-0011 + 2.69458489853916E-0011 1.10660324784449E-0011 3.51055884905364E-0012 6.95263818452957E-0013 4.35679574858516E-0014 diff --git a/examples/USER/misc/pair_entropy/data.interface b/examples/USER/misc/pair_entropy/data.interface new file mode 100644 index 0000000000..a7d35a6e2c --- /dev/null +++ b/examples/USER/misc/pair_entropy/data.interface @@ -0,0 +1,8211 @@ +LAMMPS data file via write_data, version 30 Mar 2018, timestep = 10000 + +4096 atoms +1 atom types + +0.0000000000000000e+00 1.3840000000000001e+02 xlo xhi +0.0000000000000000e+00 3.4570000000000000e+01 ylo yhi +0.0000000000000000e+00 3.4570000000000000e+01 zlo zhi +0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 xy xz yz + +Masses + +1 22.9898 + +Atoms # full + +761 0 1 0.0000000000000000e+00 6.5718387526877970e+00 1.3719687167668809e+01 9.0764489103374970e+00 0 0 0 +972 0 1 0.0000000000000000e+00 1.4040336334056608e+01 3.2667223025732810e+01 1.8263405578025584e+00 0 0 1 +157 0 1 0.0000000000000000e+00 2.0169041879956669e+01 1.1923176551958365e+01 2.3241277343098265e+01 0 0 0 +333 0 1 0.0000000000000000e+00 1.4596985870718415e+01 1.3111147113686026e+00 1.2091348567791039e+01 0 0 1 +704 0 1 0.0000000000000000e+00 1.7400578084605492e+01 1.9073806421872103e+01 1.6458951010748358e+01 -1 1 0 +943 0 1 0.0000000000000000e+00 1.0855900156710607e+01 1.9178285448765071e+00 1.0364062719981291e+01 0 1 0 +562 0 1 0.0000000000000000e+00 9.7599449965098266e+00 1.1723146328035016e+01 8.0162503238031189e+00 1 0 0 +770 0 1 0.0000000000000000e+00 2.3087951846789174e+01 3.4715780948569632e+00 2.8384438687399964e+01 0 0 0 +701 0 1 0.0000000000000000e+00 8.0741075565448028e+00 4.1972700998148440e+00 1.0991536283363629e+01 1 1 0 +973 0 1 0.0000000000000000e+00 1.4513238119939416e+01 2.0077151599737558e+01 6.8621440235341868e+00 0 0 1 +97 0 1 0.0000000000000000e+00 1.7248338899179114e+01 1.3685010659538008e+01 6.3453085642023321e+00 0 0 0 +471 0 1 0.0000000000000000e+00 1.5302598577052368e+01 1.9611332756830230e+01 1.0861949403189952e+01 0 0 1 +326 0 1 0.0000000000000000e+00 2.3043108700853956e+01 2.3309593465704057e+00 1.7947804714422517e+00 0 0 1 +409 0 1 0.0000000000000000e+00 4.8085504808438735e+00 7.0464245407128612e+00 1.8140994863672759e+01 0 0 0 +481 0 1 0.0000000000000000e+00 5.6197712390228105e+00 3.2949187827072066e+01 9.9926418284218048e+00 0 -1 1 +974 0 1 0.0000000000000000e+00 1.5216033397050754e+01 1.5539705377326133e+01 3.2476660781361005e+01 0 1 0 +171 0 1 0.0000000000000000e+00 1.8486309859024331e+01 3.1960001827275097e+01 5.1323952888642617e-02 0 -1 0 +631 0 1 0.0000000000000000e+00 7.8755730458910271e+00 1.2423205774806140e+01 1.4804436620433419e+01 1 0 0 +620 0 1 0.0000000000000000e+00 1.1048848844019032e+00 2.8000395612369168e+01 1.0480207395658669e+01 0 0 0 +719 0 1 0.0000000000000000e+00 1.7358994345351960e+01 8.6623896759854055e+00 1.6481714984661654e+01 0 0 0 +502 0 1 0.0000000000000000e+00 1.6621383415613515e+01 1.0165002507976945e+01 1.9679295760668928e+01 0 0 1 +773 0 1 0.0000000000000000e+00 8.8366160728714220e+00 3.0591541762394893e+01 5.7254755000250768e+00 0 0 0 +50 0 1 0.0000000000000000e+00 8.9311860902618054e+00 1.9543477906419458e+01 8.7330786805673046e+00 0 0 0 +226 0 1 0.0000000000000000e+00 2.6292798027842501e+01 2.1160963460232047e+01 1.0001306207813423e+01 0 0 0 +863 0 1 0.0000000000000000e+00 1.7947700590702048e+01 9.4576099770855855e+00 2.0521984886265985e+00 0 1 1 +3228 0 1 0.0000000000000000e+00 4.5653152333179287e-01 2.4562727253449705e+01 9.6936858265485100e+00 0 0 -1 +347 0 1 0.0000000000000000e+00 2.2768900344654568e+01 9.7190617211070940e+00 8.8129568754109968e+00 -1 0 0 +847 0 1 0.0000000000000000e+00 7.4660003859981714e+00 3.3961017179402418e+01 1.2129412963637314e+00 1 -1 0 +1004 0 1 0.0000000000000000e+00 1.2852637288040327e+01 1.1201663850785248e+01 1.0928298694390248e+01 0 0 0 +829 0 1 0.0000000000000000e+00 8.8055620875741329e+00 2.5166386299067444e+01 1.4857838199926318e+01 0 0 0 +388 0 1 0.0000000000000000e+00 1.0963521585000954e+01 4.7733658263323147e+00 1.3219264306990674e+01 0 0 0 +717 0 1 0.0000000000000000e+00 6.6064571312036735e+00 1.4750508161105300e+01 1.2252989368238277e+01 0 0 0 +670 0 1 0.0000000000000000e+00 4.4313514018795370e+00 1.0087487472490693e+01 9.0776345780894676e+00 0 0 0 +103 0 1 0.0000000000000000e+00 3.0797906114614877e+00 5.2850603282682078e+00 3.3152825100647355e+01 0 0 -1 +114 0 1 0.0000000000000000e+00 2.6478769069650532e+01 3.2734200521383681e+00 7.5944261786273897e+00 -1 0 0 +818 0 1 0.0000000000000000e+00 9.9888017633094286e+00 1.2178207780971793e+01 1.1418457658710548e+01 -1 0 1 +658 0 1 0.0000000000000000e+00 1.1679232214066761e+01 1.5820844068897983e+01 1.5630687682899799e+01 0 0 0 +217 0 1 0.0000000000000000e+00 6.3674209939515736e+00 1.1296361058881828e+01 1.1793248578305748e+01 1 0 -1 +979 0 1 0.0000000000000000e+00 1.2313379964092958e+01 5.1280886940418071e+00 1.6322648498335209e+01 0 0 0 +106 0 1 0.0000000000000000e+00 1.8552210538438821e+01 1.0456297121004681e+01 9.2534298754824125e+00 0 0 0 +976 0 1 0.0000000000000000e+00 6.9625204092844024e+00 1.7455372721352231e+00 4.1401463593297585e+00 0 1 0 +487 0 1 0.0000000000000000e+00 2.0469863904621519e+01 2.1344305412635091e+01 1.7214710893816839e+01 0 0 0 +36 0 1 0.0000000000000000e+00 1.1070916525533457e+01 3.3814535338552638e+01 6.9713051695709334e+00 0 -1 0 +445 0 1 0.0000000000000000e+00 1.9444618364238945e+01 4.4777320237652889e+00 2.7776496666562164e+01 0 0 -1 +703 0 1 0.0000000000000000e+00 2.1160262653830397e+01 1.7162264093902881e+01 7.0301704699379854e+00 0 1 0 +30 0 1 0.0000000000000000e+00 7.4129670214820456e+00 5.4676827510485921e+00 4.6332226895066508e+00 1 0 0 +585 0 1 0.0000000000000000e+00 8.4612359427175377e-01 2.6799055918916488e+00 1.2979784905280601e+01 0 1 0 +205 0 1 0.0000000000000000e+00 6.2605859964206916e+00 1.2939512687461880e+01 7.0475435471634240e-01 0 0 0 +180 0 1 0.0000000000000000e+00 2.0253230330234807e+01 7.5557089764830998e+00 1.1035588923878905e+01 0 0 0 +824 0 1 0.0000000000000000e+00 1.7819436277563145e+01 1.9512449315277692e+01 8.1903482501004454e+00 0 0 1 +65 0 1 0.0000000000000000e+00 1.6389175357749373e+01 2.0569603882548794e+01 3.4201730367220989e+01 0 0 -1 +3367 0 1 0.0000000000000000e+00 1.7360000033238305e+00 1.1705783965476870e+01 3.1912515310299657e+01 1 0 0 +970 0 1 0.0000000000000000e+00 1.1306376021300386e+01 8.8223505504547131e+00 1.5481427296671452e+01 0 1 0 +752 0 1 0.0000000000000000e+00 9.7648479717276384e+00 3.2610672975123755e+01 1.3700303134291930e+01 0 0 0 +248 0 1 0.0000000000000000e+00 8.1500679410195360e+00 9.3258882100115070e-01 1.2705252585620412e+01 1 1 0 +3255 0 1 0.0000000000000000e+00 5.9906413747293741e-01 1.2889327685742108e+01 1.4001430287037646e+01 1 0 0 +852 0 1 0.0000000000000000e+00 1.2455623117519725e+01 1.3801203591265017e+01 3.1851518758227709e+01 1 0 -1 +473 0 1 0.0000000000000000e+00 2.2257310068439303e+01 3.3130172069447269e+01 6.9828521491174755e-01 0 0 1 +173 0 1 0.0000000000000000e+00 2.2064926565114369e+01 5.8399017260108295e+00 7.3989952110535713e+00 0 1 0 +835 0 1 0.0000000000000000e+00 1.3904437557099596e+01 1.3109779638188648e+01 1.7813730114820064e+01 0 0 0 +888 0 1 0.0000000000000000e+00 2.5051879243504458e+00 6.8117381813365689e+00 8.5435365249792135e+00 0 0 0 +3272 0 1 0.0000000000000000e+00 1.4397993169457066e+00 2.0118048649462366e+01 2.1092347912670689e+01 1 0 -1 +662 0 1 0.0000000000000000e+00 1.7635759375590947e+01 2.1914379318844553e+01 1.4151580693379767e+01 0 0 0 +844 0 1 0.0000000000000000e+00 2.5670364987218530e+01 3.4363654202312283e+01 3.2562490462809116e+01 0 -1 0 +3921 0 1 0.0000000000000000e+00 3.4667080835953650e+00 3.0769127953400652e+01 2.6926012683881289e+01 1 0 0 +64 0 1 0.0000000000000000e+00 3.8403658318201912e+00 2.1218742779148016e+01 1.8648954200249335e+01 0 -1 0 +564 0 1 0.0000000000000000e+00 1.1822461342496192e+01 1.6149964680790337e+01 1.1893540376496464e+01 0 0 0 +379 0 1 0.0000000000000000e+00 2.3383485072496430e+00 1.1138962685969731e+00 1.5689940452528885e+01 1 0 0 +426 0 1 0.0000000000000000e+00 3.8359164749496122e+00 1.6350823047648557e+01 1.2780062536409899e+01 1 0 1 +526 0 1 0.0000000000000000e+00 6.0692814565229787e+00 1.0161526916166972e+01 2.6431117720400588e+00 1 0 0 +687 0 1 0.0000000000000000e+00 1.0997040205963252e-01 1.5395188299866923e+01 1.1140973521458648e+01 0 0 0 +659 0 1 0.0000000000000000e+00 4.2893538118134469e+00 1.5695481093966510e+01 7.7468695928725291e+00 0 0 0 +31 0 1 0.0000000000000000e+00 8.7990405423793359e+00 4.8062043089969881e+00 1.9428340532606651e+01 0 0 0 +3128 0 1 0.0000000000000000e+00 6.3324784831724101e-01 3.3910228941750852e+01 1.7818310126154650e+01 1 -1 0 +340 0 1 0.0000000000000000e+00 7.3321854432089451e+00 4.4404813278138313e+00 1.4074384453277320e+01 0 0 1 +266 0 1 0.0000000000000000e+00 1.1824717103976514e+01 1.2363370814145560e+01 1.4383398579819842e+01 1 0 0 +635 0 1 0.0000000000000000e+00 2.2194625357529958e+01 1.1485198762968599e+01 1.1583514966998887e+01 1 0 0 +1011 0 1 0.0000000000000000e+00 1.5304559963252837e+01 9.5926952366395746e+00 1.6998922962292637e-01 0 0 0 +272 0 1 0.0000000000000000e+00 9.0758984780930643e+00 1.2955669609333196e+01 2.6803762773481852e+00 1 0 1 +2 0 1 0.0000000000000000e+00 9.2745765888376948e+00 2.1284160170118982e+00 1.6803423067306156e+01 0 0 0 +785 0 1 0.0000000000000000e+00 9.0985446101799106e+00 1.5467852730097190e+01 1.3718053688743057e+01 -1 0 0 +194 0 1 0.0000000000000000e+00 2.7472818492208958e+01 3.2669410421744509e+01 4.3809707398334945e+00 0 -1 1 +814 0 1 0.0000000000000000e+00 4.8426723771273075e+00 4.5789650507973976e+00 2.0605871947445987e+01 1 1 0 +177 0 1 0.0000000000000000e+00 2.0177366160725015e+01 3.4565482401847962e+00 8.8702198181459853e+00 0 1 0 +144 0 1 0.0000000000000000e+00 1.2847903725632213e+01 5.7495489650145268e+00 2.0237982845086893e+01 0 0 -1 +145 0 1 0.0000000000000000e+00 1.2256145789560971e+01 9.7363881109590817e+00 8.0021801107541517e+00 0 -1 0 +567 0 1 0.0000000000000000e+00 3.4926238119517325e+00 3.4257715880207606e+01 5.5316681719448617e+00 0 -1 0 +823 0 1 0.0000000000000000e+00 2.0200546905788460e+01 2.4913145631861163e+01 1.5047657953979385e+01 -1 0 1 +387 0 1 0.0000000000000000e+00 3.3186357916219369e+00 1.2850106590432334e+01 7.1273548359765080e+00 0 0 0 +3579 0 1 0.0000000000000000e+00 3.3587522755734796e+00 1.4881501066826782e+01 3.2505667085866001e+01 0 0 -1 +767 0 1 0.0000000000000000e+00 1.5585243364171605e+01 1.9398179918078238e+01 1.9393447986143080e+01 0 0 0 +889 0 1 0.0000000000000000e+00 9.0280191279618762e+00 1.5837314162526699e+01 9.6164144657818262e+00 0 0 0 +700 0 1 0.0000000000000000e+00 1.3854614046022542e+01 6.4008895465616495e+00 7.8280054525574609e+00 0 1 0 +45 0 1 0.0000000000000000e+00 2.2253989268193823e+01 1.4408157282374667e+01 1.4021855994831846e+01 0 0 0 +820 0 1 0.0000000000000000e+00 5.6699625413040851e+00 1.7413212270358702e+01 9.9780711847422143e+00 0 0 0 +819 0 1 0.0000000000000000e+00 1.0769564506594842e+01 5.6464267563855310e+00 9.8326985192177787e+00 1 0 0 +408 0 1 0.0000000000000000e+00 2.1080239743165041e+00 8.7940372831036289e+00 2.8319373313407241e+00 0 0 1 +856 0 1 0.0000000000000000e+00 2.8578427452652186e+00 2.9901078327119176e+01 3.2116332651131430e+01 0 0 0 +421 0 1 0.0000000000000000e+00 1.5721152120744575e+01 3.8090800522803256e+00 1.4539035533315499e+01 1 0 1 +251 0 1 0.0000000000000000e+00 6.4445709042323660e+00 1.1367147743372550e+01 2.2974566579135271e+01 1 0 0 +215 0 1 0.0000000000000000e+00 6.2774454104044333e+00 1.5290914868730775e+01 3.0802572683197425e+01 0 0 -1 +77 0 1 0.0000000000000000e+00 2.1436706120520622e+01 7.6328318383808762e+00 1.8015379750315351e+01 1 -1 0 +478 0 1 0.0000000000000000e+00 8.7588598468053309e+00 2.2173044695958509e+01 2.6581826536815476e+00 1 -1 1 +642 0 1 0.0000000000000000e+00 2.5261334335323394e+01 4.4307356449117998e+00 1.3685475229962160e+01 0 1 0 +301 0 1 0.0000000000000000e+00 1.7056327695277897e+01 2.2527629658943422e+01 1.0821650164353118e+01 0 0 1 +953 0 1 0.0000000000000000e+00 9.3702320898675975e+00 3.3112779314350469e+01 9.9980626724739690e+00 0 -1 1 +821 0 1 0.0000000000000000e+00 2.5899867363635629e+01 1.0593655788239458e+01 1.4075515969704295e+01 0 0 0 +442 0 1 0.0000000000000000e+00 1.7240451576855385e+01 2.5272425838676455e+01 7.8611695743930721e+00 0 -1 1 +710 0 1 0.0000000000000000e+00 7.5224636381612395e+00 3.0169233922489070e+01 8.7752348426243909e+00 1 -1 0 +706 0 1 0.0000000000000000e+00 1.8558212261168598e+00 5.8036642540649668e+00 1.5144182497011009e+00 0 0 0 +947 0 1 0.0000000000000000e+00 4.0020883300865320e+00 5.4161126027846362e-01 1.8951573051860819e+01 0 1 0 +731 0 1 0.0000000000000000e+00 2.1178637237848449e+01 1.1486314891879037e+01 1.9202107759472637e+00 0 1 0 +29 0 1 0.0000000000000000e+00 7.1663341217932324e+00 1.6682216214069804e+01 1.6431080400376043e+01 1 0 0 +455 0 1 0.0000000000000000e+00 1.1792422186970267e+01 1.7590032037707545e+01 6.0354398819545594e+00 1 0 1 +839 0 1 0.0000000000000000e+00 1.4605379447678184e+01 1.0611914045254979e+01 1.5498650526217780e+01 0 1 0 +71 0 1 0.0000000000000000e+00 2.5977569550225339e+00 1.9877486151206689e+00 3.1896266113112539e+01 1 0 -1 +811 0 1 0.0000000000000000e+00 1.7013390198933472e+01 3.3496721659120773e+01 3.0470853380158913e+00 0 -1 0 +626 0 1 0.0000000000000000e+00 2.1583903762083697e+01 5.7209879219168052e+00 1.4560197757283701e+01 0 1 0 +865 0 1 0.0000000000000000e+00 1.7944107731900914e+01 1.7317849501156097e+01 4.6229096063009321e+00 0 1 1 +341 0 1 0.0000000000000000e+00 4.4735072071369464e+00 1.3681408542334813e+01 1.4646865329976952e+01 0 0 0 +826 0 1 0.0000000000000000e+00 1.0378600611817816e+00 1.8678134733140197e+01 6.4806660852324871e+00 0 0 0 +793 0 1 0.0000000000000000e+00 5.7642772277317107e+00 1.8621910468783344e+01 1.3811456012578221e+01 1 -1 0 +638 0 1 0.0000000000000000e+00 8.7677536263085702e+00 6.4759534658602025e+00 1.6328513925548322e+01 0 0 0 +3680 0 1 0.0000000000000000e+00 4.7327075813230737e+00 2.4856492276640100e+01 1.8980820971361236e+01 0 0 0 +805 0 1 0.0000000000000000e+00 9.6384969588096447e-01 1.6089195066991323e+01 1.4361402465750190e+01 1 0 0 +981 0 1 0.0000000000000000e+00 1.4581847435479556e+01 6.8074686325544871e+00 1.4316520594799929e+01 0 0 1 +94 0 1 0.0000000000000000e+00 1.9802013084705756e+01 4.1818430513286886e-01 6.4317730338630010e+00 0 0 0 +711 0 1 0.0000000000000000e+00 1.3760444805807827e+01 4.5403088317810916e+00 1.1170246382573589e+01 1 1 0 +989 0 1 0.0000000000000000e+00 1.3339187787949545e+01 2.9215950674457709e+01 1.1583513356757273e+01 0 0 1 +875 0 1 0.0000000000000000e+00 2.1686084285187682e+01 3.3639196772829990e+01 1.5544927889975847e+01 0 0 1 +383 0 1 0.0000000000000000e+00 3.1352193031169755e+01 1.8037470319701026e+01 2.4586515119465422e+00 0 0 1 +736 0 1 0.0000000000000000e+00 1.9995270192713928e+01 3.8590012404033824e-01 2.5514606940581435e+00 0 1 1 +884 0 1 0.0000000000000000e+00 6.7696839298583278e+00 3.4516113082422422e+01 1.6025504696791948e+01 0 -1 0 +169 0 1 0.0000000000000000e+00 1.5229476184809119e+01 1.5448586751447177e+01 3.8373029867095094e+00 1 0 0 +738 0 1 0.0000000000000000e+00 1.2947992983996327e+01 3.0461588537809753e+01 4.9831409888677500e+00 0 0 0 +25 0 1 0.0000000000000000e+00 1.7464602564529754e+00 2.2423510882735609e+01 6.7183349821366747e+00 1 0 0 +583 0 1 0.0000000000000000e+00 4.9505811713186230e+00 2.4517668430466564e+01 5.7706555690114723e+00 1 0 0 +364 0 1 0.0000000000000000e+00 8.5990984770773817e+00 8.9158209387633729e+00 9.7751263051921349e+00 -1 0 0 +3912 0 1 0.0000000000000000e+00 3.5047260329962100e+00 2.5629138976239382e+01 3.2232111780908511e+01 1 0 0 +254 0 1 0.0000000000000000e+00 2.0867490382212054e+01 1.3519502130883302e+01 7.8112631642210122e+00 1 -1 1 +225 0 1 0.0000000000000000e+00 2.9381368298685686e+01 1.3824314268457496e+00 2.2892211478885578e+00 0 1 0 +290 0 1 0.0000000000000000e+00 1.2730219267310357e+01 3.2413701307295163e+01 1.9217155103987533e+01 0 -1 0 +117 0 1 0.0000000000000000e+00 2.7654457562779999e+01 6.2657747747896284e+00 6.0276754591425377e+00 0 0 0 +484 0 1 0.0000000000000000e+00 1.2531600559163897e+01 2.7775894166930093e+00 7.3089137860926652e+00 0 1 1 +304 0 1 0.0000000000000000e+00 2.1890147273544468e+01 3.0106196470508156e+01 1.4722176430570878e+01 0 -1 0 +591 0 1 0.0000000000000000e+00 1.4849928203884478e+01 1.6716313299501557e+01 7.4366460869956166e+00 0 1 0 +939 0 1 0.0000000000000000e+00 6.4640811601907648e+00 1.2251682219968909e+01 6.2853550952494190e+00 0 0 1 +3238 0 1 0.0000000000000000e+00 1.5115231542448648e+00 2.5003049558830499e+00 6.0299393859049566e-01 0 0 0 +898 0 1 0.0000000000000000e+00 7.8544811020054146e+00 3.4130407706210029e+01 3.0786061227316303e+01 0 0 -1 +16 0 1 0.0000000000000000e+00 4.7965771022136687e+00 1.3868949528245309e+01 3.8005757640400484e+00 0 0 0 +3744 0 1 0.0000000000000000e+00 8.8548408649825872e-01 2.6757036242893872e+01 1.5450314551558401e+01 1 0 0 +361 0 1 0.0000000000000000e+00 1.4900858775458387e+01 1.3379880470744553e+01 1.2970904875178011e+01 0 0 0 +3939 0 1 0.0000000000000000e+00 1.4999508728469232e-01 1.1360187782461416e+01 1.7308422967202169e+01 0 0 1 +281 0 1 0.0000000000000000e+00 1.1939443356957000e+01 1.4366781906813321e+01 8.7840481579835430e+00 0 0 1 +479 0 1 0.0000000000000000e+00 9.6870091412921848e+00 2.9189004499112844e+01 1.1062084862446927e+01 1 -1 0 +424 0 1 0.0000000000000000e+00 2.3857784252554570e+01 1.5512088344118061e+01 9.5944290681633504e+00 -1 0 1 +531 0 1 0.0000000000000000e+00 1.9422428796846511e+01 1.3126418848343180e+01 1.1392030662579206e+01 0 0 0 +964 0 1 0.0000000000000000e+00 1.7089892100327457e+01 3.7703235282804677e+00 1.0748195830295062e+01 0 0 0 +438 0 1 0.0000000000000000e+00 1.0873795453236990e+01 2.1361270980259222e+00 4.0709573899120048e+00 1 0 0 +790 0 1 0.0000000000000000e+00 1.7099300819346926e+01 9.9895856614918959e+00 1.3029869137744548e+01 0 1 1 +696 0 1 0.0000000000000000e+00 2.5503156319831913e+01 6.5158245676785933e+00 9.1969653829780320e+00 -1 0 0 +3375 0 1 0.0000000000000000e+00 1.4814299622220142e+00 2.7254508865677650e+01 1.9172831126455350e+01 0 0 0 +513 0 1 0.0000000000000000e+00 3.3003282982120858e+01 2.3073214906502926e+01 2.7966762602713828e+01 0 0 -1 +121 0 1 0.0000000000000000e+00 4.0660447136615856e+00 3.6835442049516809e-01 2.0623315222236283e+00 1 0 0 +190 0 1 0.0000000000000000e+00 5.2622367671215171e+00 3.1955597004788334e+00 1.7163337939619460e+01 1 1 0 +396 0 1 0.0000000000000000e+00 1.1414969733803526e+01 3.3423871547403202e+01 3.0314619782582550e+01 0 -1 0 +43 0 1 0.0000000000000000e+00 2.4468010487163472e+01 1.5143574035061512e+01 5.6130216876186916e+00 0 -1 0 +712 0 1 0.0000000000000000e+00 1.7912859836497187e+01 1.8195211072081918e+01 1.2784381380444284e+01 1 0 0 +261 0 1 0.0000000000000000e+00 2.0954196674581031e+01 8.5365414044088492e+00 6.0945938827261799e+00 1 0 1 +993 0 1 0.0000000000000000e+00 1.5740788826219125e+01 1.2772614212666788e+01 9.4770701158345432e+00 0 0 0 +550 0 1 0.0000000000000000e+00 3.2354484960557748e+01 2.7152583772107244e+00 3.3404454708033256e+01 1 1 -1 +969 0 1 0.0000000000000000e+00 1.9607208448343716e+01 1.2353153797047300e+00 3.3672725071664949e+01 -1 1 0 +457 0 1 0.0000000000000000e+00 1.9863816990919281e+00 2.3615262532529076e+01 2.9196117779382817e+01 1 -1 0 +509 0 1 0.0000000000000000e+00 1.6852825760521142e+01 1.3014005194267568e+01 1.5918293362393596e+01 0 0 -1 +520 0 1 0.0000000000000000e+00 5.5327901135110551e+00 1.7386151708714099e+00 2.9743454811687542e+01 0 1 -1 +529 0 1 0.0000000000000000e+00 2.5736647286668440e+01 2.1682741406976049e+00 4.3743771638224773e+00 0 1 0 +161 0 1 0.0000000000000000e+00 1.7872532215477889e+01 1.5784394449478999e+01 9.0427989660752601e+00 0 0 0 +769 0 1 0.0000000000000000e+00 1.6597745147515653e+01 1.3429748220227243e+01 8.8336747746565428e-02 0 0 1 +827 0 1 0.0000000000000000e+00 3.4932290555536243e+00 1.3758006574170468e+01 1.7719476930083552e+01 0 1 0 +665 0 1 0.0000000000000000e+00 1.6910127304827011e+01 1.7264258416372893e+01 5.8718038364582137e-01 0 0 0 +557 0 1 0.0000000000000000e+00 1.0644079434393678e+01 1.0926690090792484e+01 4.3502342476109863e+00 0 0 0 +732 0 1 0.0000000000000000e+00 3.2776397209539283e+01 6.0204678726043399e+00 3.2603267809128553e+01 0 0 -1 +485 0 1 0.0000000000000000e+00 7.9638424508037851e+00 9.0594325534294455e+00 5.8329339813186589e+00 0 0 0 +482 0 1 0.0000000000000000e+00 2.3886725548898536e+01 4.4077679221076913e+00 1.7161934656833594e+01 0 0 1 +641 0 1 0.0000000000000000e+00 2.7550654625113754e+01 1.4058319168781278e+01 3.4899844488875713e+00 0 0 0 +112 0 1 0.0000000000000000e+00 1.5665212634146982e+01 1.0562658952951685e+01 6.9676218483932049e+00 0 0 0 +402 0 1 0.0000000000000000e+00 2.4416956803334031e+01 5.0444448357578464e+00 4.8666048750919755e+00 0 0 0 +577 0 1 0.0000000000000000e+00 5.2793218040775391e+00 7.2085916546066180e+00 1.1752725922395383e+01 0 0 0 +535 0 1 0.0000000000000000e+00 6.8445146036063962e+00 1.5262285422731534e+00 9.9008586528444127e+00 0 1 0 +116 0 1 0.0000000000000000e+00 1.4226645412997089e+01 8.5786234540870865e+00 1.7830031018162540e+01 0 0 0 +817 0 1 0.0000000000000000e+00 1.9741570267233051e+01 4.4802595337012114e+00 5.2751726175486358e+00 0 1 1 +766 0 1 0.0000000000000000e+00 1.9650672629827156e+01 1.1695720990204045e+01 1.4849894833136723e+01 0 1 0 +21 0 1 0.0000000000000000e+00 9.3274625507818616e+00 8.1950923159071625e+00 1.7875396364864595e+00 0 1 0 +410 0 1 0.0000000000000000e+00 4.2401606227327742e+00 9.5215754435469986e+00 5.5493211819022950e+00 -1 0 1 +19 0 1 0.0000000000000000e+00 9.3774272532703584e+00 1.4882696114937309e+01 5.9110898393261007e+00 0 0 0 +411 0 1 0.0000000000000000e+00 1.9699767643116608e+01 2.2532011922754162e+01 7.9050445282504924e+00 0 0 1 +702 0 1 0.0000000000000000e+00 3.1821824027432676e+01 7.5313073773081773e-01 3.0917412859750780e+01 0 1 0 +944 0 1 0.0000000000000000e+00 3.1213962650570519e+01 3.2682183259341777e+01 3.9738452390361116e+00 0 0 1 +727 0 1 0.0000000000000000e+00 1.7828496068208739e+01 1.4956382510077630e+01 1.3386993573287743e+01 -1 1 0 +3158 0 1 0.0000000000000000e+00 3.8816978801776936e-01 1.3805215385932627e+01 2.4277258864112596e+01 0 0 -1 +1378 0 1 0.0000000000000000e+00 2.9845919580048825e+01 1.7566999454632551e+01 2.0334277216277794e+01 0 0 0 +59 0 1 0.0000000000000000e+00 2.1535186724777944e+01 2.9993489408446656e+01 6.1782678445936474e+00 0 -1 0 +661 0 1 0.0000000000000000e+00 8.7538337591431397e+00 1.8869048198228125e+01 4.1871957848743522e+00 0 0 1 +747 0 1 0.0000000000000000e+00 1.8611824932369370e+01 1.1273097708685638e+01 4.9724902712540366e+00 0 1 0 +925 0 1 0.0000000000000000e+00 1.5532024786823790e+01 8.4118103105208988e+00 1.0014922528488334e+01 0 0 1 +111 0 1 0.0000000000000000e+00 6.2237310231642962e+00 5.6592041509198143e+00 3.2953123303900924e+01 0 0 -1 +234 0 1 0.0000000000000000e+00 7.5046743292188003e+00 3.0927073153128752e+01 1.7188303881399520e+01 0 -1 -1 +978 0 1 0.0000000000000000e+00 6.0665343724958678e+00 1.9258353840910225e+01 1.8432384730179538e+00 0 1 1 +13 0 1 0.0000000000000000e+00 8.7848610660748161e+00 7.8055204161204106e+00 1.2792439429156266e+01 0 0 0 +563 0 1 0.0000000000000000e+00 1.8447697940871631e+01 6.4149938211504498e+00 8.3431400191969445e+00 0 0 0 +948 0 1 0.0000000000000000e+00 2.0795223499421130e+01 2.0040928761159819e+01 1.0385960389498930e+01 0 0 0 +778 0 1 0.0000000000000000e+00 2.5304120176133601e+01 9.0382620919724417e+00 6.6503519266826325e+00 -1 0 0 +500 0 1 0.0000000000000000e+00 2.4189240897167970e+01 7.2542358824616837e+00 1.9272813278006847e+01 0 0 0 +982 0 1 0.0000000000000000e+00 2.3057488996227256e+01 2.2830826706390454e+01 5.8036890290212551e+00 0 0 1 +3365 0 1 0.0000000000000000e+00 1.8402500726099877e+00 4.9575003914017595e+00 1.7726306981260365e+01 0 0 0 +985 0 1 0.0000000000000000e+00 2.6466157282679362e+01 3.3778959360703089e+00 4.2549587731940147e-01 0 1 1 +503 0 1 0.0000000000000000e+00 1.2151821195239805e+01 8.2602003837499165e+00 1.1884608836852806e+01 0 0 0 +461 0 1 0.0000000000000000e+00 3.1572205725077387e+00 1.3297859907923851e+01 1.0682136870397215e+01 1 0 0 +677 0 1 0.0000000000000000e+00 1.1789374031431468e+00 1.0009281977635949e+01 9.1138019275496838e+00 0 0 0 +556 0 1 0.0000000000000000e+00 2.2621257981859241e+01 2.0395936709873816e+00 5.9245794180404134e+00 0 1 0 +3458 0 1 0.0000000000000000e+00 1.9725045465075031e+00 7.8825657595605669e+00 3.0202777329012470e+01 1 0 0 +267 0 1 0.0000000000000000e+00 2.3492864043268259e+01 2.7548817069525118e+00 3.2928154089232613e+01 1 0 0 +533 0 1 0.0000000000000000e+00 1.9112753406363261e+01 2.2315813733880084e+01 2.7615159065335789e+01 0 0 -1 +469 0 1 0.0000000000000000e+00 2.3941167187407171e+00 2.0345775232961497e+01 2.8294953004348038e+01 1 -1 0 +607 0 1 0.0000000000000000e+00 8.7391702072351691e+00 3.3290332856029590e+00 7.0565217887422289e+00 0 1 0 +252 0 1 0.0000000000000000e+00 2.2795720659965411e+01 1.0863398258018449e+01 1.5950482950288649e+01 -1 0 0 +202 0 1 0.0000000000000000e+00 5.7171947868822439e+00 8.9681227470864560e+00 1.5037162115902944e+01 0 0 0 +707 0 1 0.0000000000000000e+00 7.0396926223932477e+00 3.4291934348238179e+01 6.9265153217992959e+00 0 0 0 +48 0 1 0.0000000000000000e+00 7.6523513011822752e-01 2.9365244123894605e+01 6.7948435050645264e+00 0 -1 0 +393 0 1 0.0000000000000000e+00 3.4293107974780019e+00 2.8117830390718787e+01 4.0375409865456167e+00 0 -1 1 +99 0 1 0.0000000000000000e+00 1.6781116102336362e+01 3.2965760523778883e+01 6.5238435604580554e+00 0 -1 0 +175 0 1 0.0000000000000000e+00 2.1671877787791363e+01 2.5363065015224402e+00 1.5290267665475035e+01 0 -1 0 +548 0 1 0.0000000000000000e+00 1.8549452927918736e+01 6.7982517296516631e+00 2.0134539993839390e+01 0 1 0 +32 0 1 0.0000000000000000e+00 3.8935074769739728e+00 4.0999982265547574e+00 1.0562460436810012e+01 1 0 0 +639 0 1 0.0000000000000000e+00 5.9261797076837714e+00 2.7894360767065535e+01 1.0918873019975740e+01 1 0 0 +656 0 1 0.0000000000000000e+00 2.0715288274367321e+01 1.6516408855853243e+01 1.1061384232519728e+01 0 1 0 +33 0 1 0.0000000000000000e+00 2.1316536571254801e+01 1.4374627941290658e+01 4.5886174944408742e+00 0 -1 0 +260 0 1 0.0000000000000000e+00 3.5038879491075545e+00 7.8790357836459368e-01 8.6131470098626863e+00 0 0 0 +142 0 1 0.0000000000000000e+00 2.2436014141511134e+01 1.4969839579410412e+01 3.4455930625235439e+01 -1 0 0 +3337 0 1 0.0000000000000000e+00 2.1316676097070997e+00 8.6971236732986057e+00 1.6133726718610362e+01 0 0 0 +12 0 1 0.0000000000000000e+00 3.2683462475457603e+01 1.1940705965077958e+01 1.5893988505079761e+01 -1 0 0 +4012 0 1 0.0000000000000000e+00 6.3367347115002559e+00 2.7964277915875389e+01 3.0807653043405001e+01 1 0 0 +314 0 1 0.0000000000000000e+00 4.0054020570170890e+00 6.1921913321995623e+00 5.1287891176373135e+00 1 0 1 +233 0 1 0.0000000000000000e+00 1.0129987498210429e+01 1.9030767104766031e+01 1.6029831489119974e+01 1 0 0 +644 0 1 0.0000000000000000e+00 1.9754316463193238e+01 2.4338502202869311e+01 1.1107161815799637e+01 0 0 0 +1026 0 1 0.0000000000000000e+00 3.3073673918752981e+01 3.4182015234387677e+01 1.0482495320063816e+00 0 -1 0 +241 0 1 0.0000000000000000e+00 1.8693218603348196e+01 2.3921164427332268e+01 1.0772437047125061e+00 1 0 0 +627 0 1 0.0000000000000000e+00 1.9097859652665729e+01 1.9848146379924156e+01 2.0569282164547591e+00 0 0 0 +539 0 1 0.0000000000000000e+00 9.9084860938020947e-01 2.3331168637288069e+01 1.4826585473489981e+01 0 0 0 +690 0 1 0.0000000000000000e+00 1.8050413586215274e+01 3.4318383987651067e+00 2.6183104695699564e+00 0 0 0 +289 0 1 0.0000000000000000e+00 1.5951240629320834e+01 1.6156561191632587e+01 1.6699300048749667e+01 0 0 1 +230 0 1 0.0000000000000000e+00 6.8216563262937004e+00 6.1911912542858207e+00 8.1515256745689637e+00 1 0 0 +1 0 1 0.0000000000000000e+00 1.8160371067291596e+01 2.7475802909092710e+01 6.9594951583791431e-01 0 0 0 +849 0 1 0.0000000000000000e+00 3.1646987218486309e+01 3.3625639072675732e+01 6.8890070168739426e+00 0 0 1 +602 0 1 0.0000000000000000e+00 1.7821568671787301e+01 2.8961542589425388e+01 1.0265537814389745e+01 0 0 -1 +528 0 1 0.0000000000000000e+00 1.4013881808356741e+01 5.8171525167848299e-02 8.7625046091978120e+00 0 0 0 +285 0 1 0.0000000000000000e+00 1.3983965114223766e+01 2.4393023087023447e+01 5.5365016348419989e+00 0 -1 1 +634 0 1 0.0000000000000000e+00 7.5069348414796044e-01 1.8239934032253953e+00 2.0338902101492099e+01 0 1 0 +815 0 1 0.0000000000000000e+00 1.7586195329861361e+01 2.2202723059463533e+01 1.7913475621626077e+01 0 0 -1 +132 0 1 0.0000000000000000e+00 4.0304032218261927e+00 3.1265630636711755e+01 1.7656227148457040e+00 0 0 0 +288 0 1 0.0000000000000000e+00 2.2588950927186353e+01 2.2154348724813325e+01 1.3123459487252008e+01 0 -1 1 +237 0 1 0.0000000000000000e+00 1.6784038657819291e+01 3.3125845119478377e+01 1.8808490091905380e+01 0 -1 0 +723 0 1 0.0000000000000000e+00 5.9257157714389699e+00 2.1732724818631976e+01 3.3952070627447490e+01 0 0 -1 +435 0 1 0.0000000000000000e+00 2.9104294846679199e+01 2.7355284539892899e+01 1.9331589514548753e+01 0 -1 0 +3500 0 1 0.0000000000000000e+00 4.4746993817150251e+00 2.6901735362753040e+01 2.6679835109142939e+01 1 0 0 +936 0 1 0.0000000000000000e+00 1.0984072264804070e+01 2.5895749335402851e+01 8.6975909809435397e+00 1 0 1 +325 0 1 0.0000000000000000e+00 2.4734339297533769e+01 2.3696986354607503e+01 2.0039394433736896e-01 0 0 1 +70 0 1 0.0000000000000000e+00 8.3198330104478266e+00 2.7477430105121204e+01 7.5698993474959062e+00 1 -1 0 +930 0 1 0.0000000000000000e+00 1.5058021854150876e+01 1.5432423429623428e+00 2.1669860864563808e+00 0 1 1 +1265 0 1 0.0000000000000000e+00 3.4445968199395047e+01 1.6348438237561609e+01 1.1857663065671813e+01 0 0 0 +868 0 1 0.0000000000000000e+00 1.5741942967571637e+01 2.2236979046729193e+01 2.7150262308036637e+00 0 0 1 +178 0 1 0.0000000000000000e+00 6.4262156357929934e+00 3.1504854163534826e+01 1.2851891365235049e+01 1 -1 0 +1018 0 1 0.0000000000000000e+00 2.3549908747389445e+01 2.6730868341638601e+01 6.2300984594337638e+00 0 0 1 +464 0 1 0.0000000000000000e+00 2.5572107655662936e+01 2.2878574632140779e+01 2.9982142274405145e+01 0 0 0 +992 0 1 0.0000000000000000e+00 2.1070231222374442e+01 2.5598155418836591e+01 8.1277307875421219e+00 0 0 0 +739 0 1 0.0000000000000000e+00 2.3937568912382027e+01 1.8596464806826571e+01 1.2120458916829802e+01 -1 0 0 +681 0 1 0.0000000000000000e+00 3.9312982738759135e+00 2.4442038214808154e+01 9.0239584427628579e+00 0 0 0 +3573 0 1 0.0000000000000000e+00 3.4226248383135252e+00 1.0139448110572278e+01 2.0355101183374622e+01 1 0 1 +496 0 1 0.0000000000000000e+00 3.0709796147266808e+01 1.9483925446703868e+01 3.2030818582907855e+01 0 -1 0 +955 0 1 0.0000000000000000e+00 1.6038679307198997e+01 3.1852842220418154e+01 1.1904965617423979e+01 0 -1 0 +771 0 1 0.0000000000000000e+00 2.1804793822240111e+01 2.8883694003075618e+01 9.9927035339231640e+00 0 0 0 +804 0 1 0.0000000000000000e+00 7.7890950745171290e+00 1.5989134950225433e+01 2.4336089038898514e+00 1 0 0 +57 0 1 0.0000000000000000e+00 2.5653226154950055e+01 2.0754253738083710e+00 1.5614175334618952e+01 0 0 0 +651 0 1 0.0000000000000000e+00 1.2978454637491851e+01 2.2714807898237432e+01 9.3090728096399271e+00 0 0 0 +741 0 1 0.0000000000000000e+00 7.4012143349419777e+00 2.4493185407690525e+01 8.6336153979966301e+00 0 0 0 +604 0 1 0.0000000000000000e+00 2.0681770082595087e+01 2.7572626388266933e+01 3.9250812429283903e+00 0 0 0 +883 0 1 0.0000000000000000e+00 4.4494852579941870e+00 1.7751801725408022e+01 4.9849608504729250e+00 0 0 0 +952 0 1 0.0000000000000000e+00 2.0179190954835784e+00 3.3953511376159064e+01 1.1447631955197087e+01 0 -1 0 +843 0 1 0.0000000000000000e+00 1.2832684610412420e+01 1.7396720271095653e+01 2.1056026178411685e-01 0 0 1 +188 0 1 0.0000000000000000e+00 3.3921985382487300e+01 2.7893408132298624e+01 9.5497539084161094e+00 0 0 0 +760 0 1 0.0000000000000000e+00 2.8987314279228777e+01 2.8676757434785536e+01 3.3416592056149774e+01 -1 1 0 +941 0 1 0.0000000000000000e+00 7.3377958960638567e-01 1.9622691249925484e+01 1.6898937366771996e+01 1 0 0 +618 0 1 0.0000000000000000e+00 1.0893117251383888e+01 3.3210188065242392e+01 2.9795282790984872e+00 1 0 0 +118 0 1 0.0000000000000000e+00 2.5308741769392945e+01 2.4665658330207911e+01 7.6919910489478784e+00 0 -1 0 +664 0 1 0.0000000000000000e+00 1.1130663401994337e+01 2.7454191737444138e+01 5.4311875515435108e+00 0 0 1 +278 0 1 0.0000000000000000e+00 6.5340813517528291e+00 3.2247097927405235e+01 3.9645217685677840e+00 1 -1 0 +218 0 1 0.0000000000000000e+00 1.4171433646758677e+01 2.3402407120169940e+01 1.2375885139473912e+01 0 0 0 +406 0 1 0.0000000000000000e+00 3.8596074964672380e+00 2.9020892865077904e+01 1.4044386616428534e+01 0 0 1 +834 0 1 0.0000000000000000e+00 2.0910613667952759e+01 6.2600272323643780e-01 1.0580986539858415e+01 0 1 0 +222 0 1 0.0000000000000000e+00 2.4663876248083402e-01 5.5108999186343777e+00 5.1111874782744628e+00 1 0 0 +139 0 1 0.0000000000000000e+00 1.4389901250118237e+01 1.7051562855310781e+01 1.3721121047358315e+01 0 0 0 +199 0 1 0.0000000000000000e+00 1.3606043262443492e+01 3.4252968311428504e+01 5.3578217224503684e+00 0 -1 -1 +584 0 1 0.0000000000000000e+00 2.6406243240340174e+01 2.6692310374370795e+01 1.7879716908776668e+01 0 0 0 +280 0 1 0.0000000000000000e+00 9.7027017222662462e+00 2.2664540328146671e+01 8.1890322131757323e+00 0 0 1 +640 0 1 0.0000000000000000e+00 1.9677402681431374e+01 3.1636983368048952e+01 9.0042881255007021e+00 0 0 0 +181 0 1 0.0000000000000000e+00 1.9798190771682922e+01 3.8421242841197323e+00 1.2493602222690615e+01 0 0 0 +552 0 1 0.0000000000000000e+00 8.8465238786114107e+00 2.6013140945555445e+01 1.1372388308146853e+01 0 0 0 +749 0 1 0.0000000000000000e+00 2.8560000243921611e+00 2.2266581959754479e+01 1.1556520250341730e+01 0 0 0 +837 0 1 0.0000000000000000e+00 1.1088531726606560e+01 2.1469267919976502e+01 5.3820019790443530e+00 1 0 0 +676 0 1 0.0000000000000000e+00 4.0057296641593672e+00 2.1492102200311791e+01 3.9659113300503805e+00 1 0 0 +1682 0 1 0.0000000000000000e+00 3.2536105156441316e+01 2.3263362731027033e+01 1.0171392789448907e+01 0 0 0 +851 0 1 0.0000000000000000e+00 2.5954520451673826e+01 2.0776871116920610e+01 6.3095253630251404e+00 0 0 1 +130 0 1 0.0000000000000000e+00 8.5306317891607542e+00 2.4236301717089972e+01 5.4576790975037763e+00 1 -1 0 +729 0 1 0.0000000000000000e+00 1.4264495738079066e+01 2.6268989038391574e+01 9.9358654012789458e+00 1 0 0 +861 0 1 0.0000000000000000e+00 2.0640092100556839e+00 1.7912649533422645e+01 9.9170096850626486e+00 1 0 0 +168 0 1 0.0000000000000000e+00 1.1972835107942037e+01 2.6016694021223273e+01 1.3099569562882776e+01 0 -1 0 +855 0 1 0.0000000000000000e+00 1.3289211582753520e+01 1.9062340931970759e+01 1.7035362022984149e+01 0 0 0 +517 0 1 0.0000000000000000e+00 2.2125346567658447e+01 2.1695690086596382e+01 1.5634025978365924e+00 0 0 0 +450 0 1 0.0000000000000000e+00 1.2063652728843222e+01 1.8697162622064351e+01 9.3005740454241952e+00 0 0 1 +698 0 1 0.0000000000000000e+00 7.1640701528938253e+00 1.7677064330036963e+01 6.8069191188883975e+00 0 0 0 +81 0 1 0.0000000000000000e+00 2.9048583505047120e+01 2.0287009603609295e+01 8.0212235819137465e+00 0 -1 -1 +927 0 1 0.0000000000000000e+00 8.8194762268831994e-01 1.7284637861862901e+01 3.0533260884447905e+01 1 0 -1 +776 0 1 0.0000000000000000e+00 5.0444056335059582e+00 2.7708758257301188e+01 5.3486880998556341e-01 0 0 0 +74 0 1 0.0000000000000000e+00 1.4746234331782466e+01 1.8636091266692137e+01 3.3414121310267677e+00 0 0 0 +994 0 1 0.0000000000000000e+00 4.3706627556149531e+00 1.4912175440707953e+00 1.3003455755139159e+01 0 1 0 +263 0 1 0.0000000000000000e+00 1.7127037933060322e+01 2.6118176078812120e+01 4.0916408981673564e+00 1 0 1 +959 0 1 0.0000000000000000e+00 4.0549302270404679e+00 1.9995962973621872e+01 7.8161856937699561e+00 1 0 1 +1007 0 1 0.0000000000000000e+00 2.2985929894161099e+01 2.2886666100090448e+01 9.1397216918830786e+00 0 0 0 +302 0 1 0.0000000000000000e+00 1.5007455161383124e+01 3.0133524126797113e+01 1.8170349155425921e+01 1 -1 0 +646 0 1 0.0000000000000000e+00 4.8480960076661876e+00 3.0589210984168858e+01 6.4412406666458635e+00 0 0 0 +892 0 1 0.0000000000000000e+00 1.9993200086891378e+01 3.1824727245170969e+01 3.5888436668349821e+00 0 0 1 +553 0 1 0.0000000000000000e+00 2.3220612353968388e+01 2.5915204125825692e+01 1.9826929682329840e+01 0 0 0 +933 0 1 0.0000000000000000e+00 3.8094586545495690e+00 3.3035790137188627e+01 1.4482847094976856e+01 1 0 1 +596 0 1 0.0000000000000000e+00 2.2696892230429984e+01 3.2313197567619717e+01 1.1733173812387450e+01 1 0 1 +159 0 1 0.0000000000000000e+00 2.4015945474469092e+01 1.8012905190801014e+00 9.2056396160945901e+00 0 1 0 +920 0 1 0.0000000000000000e+00 1.3463031594802205e+01 3.1398080471313037e+01 1.4957742679457715e+01 1 0 0 +433 0 1 0.0000000000000000e+00 1.8449731455561725e+01 1.8288311684249990e+01 3.2134563917653111e+01 0 -1 -1 +1490 0 1 0.0000000000000000e+00 2.9113458350465383e+01 1.0410973604128968e+01 3.0252983569695349e+01 0 0 0 +221 0 1 0.0000000000000000e+00 1.4831108044758002e+01 3.0301324235260065e+01 2.8283844433278748e+01 0 -1 -1 +417 0 1 0.0000000000000000e+00 1.7029719155834080e+01 2.6432717939446484e+01 1.2337002688833904e+01 0 0 1 +133 0 1 0.0000000000000000e+00 2.6722060168530639e+01 1.5487861626990448e+01 2.9698352419934128e+01 0 0 -1 +693 0 1 0.0000000000000000e+00 1.5327668285071796e+01 3.0653340500960862e+01 8.2978926751681037e+00 0 0 1 +678 0 1 0.0000000000000000e+00 2.5731347141993613e+01 3.3950795026677469e+01 1.2127274043471143e+00 0 0 0 +394 0 1 0.0000000000000000e+00 2.7394966919741442e+01 1.8546716087357471e+01 1.8269014988260444e+01 -1 0 0 +917 0 1 0.0000000000000000e+00 1.0351262275439608e+00 2.3773125784882435e+01 1.8385551694058215e+01 0 0 0 +846 0 1 0.0000000000000000e+00 2.2887298960281921e+01 2.5989996141036553e+01 1.1498413764353407e+01 -1 0 1 +146 0 1 0.0000000000000000e+00 1.1540734189302182e+01 1.8067195136900442e+00 1.4004061563144653e+01 1 0 -1 +23 0 1 0.0000000000000000e+00 1.8607113589176702e+01 2.8419319758680775e+01 7.1977990889791084e+00 0 -1 0 +41 0 1 0.0000000000000000e+00 7.9510761600759883e-01 1.5443268665826475e+01 8.0381021334789065e+00 0 0 -1 +866 0 1 0.0000000000000000e+00 1.4002906836250535e+01 2.7439289251121124e+01 2.8719047242200642e+00 0 0 0 +498 0 1 0.0000000000000000e+00 6.4743691954429998e+00 2.0996191231463566e+01 1.0740246478737923e+01 0 -1 0 +101 0 1 0.0000000000000000e+00 1.7199593356883494e+01 2.1187871357933826e+01 5.3064462677960567e+00 -1 0 0 +540 0 1 0.0000000000000000e+00 2.3404826187747940e+01 1.9363543449342043e+01 8.1054420459473828e+00 -1 0 -1 +887 0 1 0.0000000000000000e+00 1.1765059216583468e+01 2.9686795936179962e+01 7.9935820953119929e+00 0 0 0 +792 0 1 0.0000000000000000e+00 1.7667539658197808e+00 2.6009268518991178e+01 7.0478801630033452e+00 0 0 0 +753 0 1 0.0000000000000000e+00 2.4970858297815440e+01 3.0619812221307111e+01 6.3514081564025258e+00 -1 0 0 +320 0 1 0.0000000000000000e+00 1.8987700122420001e+01 3.0930753637367559e+01 1.2717878786792035e+01 0 -1 0 +530 0 1 0.0000000000000000e+00 1.9378734046266273e+00 1.8972453123431546e+01 2.2753767609550462e+00 0 1 0 +353 0 1 0.0000000000000000e+00 1.6343839799534468e+01 2.4588035907393181e+01 1.5416122004715048e+01 0 -1 0 +92 0 1 0.0000000000000000e+00 1.4869950326064476e+01 1.6251512653959082e+01 1.0739860658686307e+01 0 0 0 +547 0 1 0.0000000000000000e+00 1.0794165103647575e+01 2.8481245420673666e+01 1.4831038857328327e+01 0 0 0 +335 0 1 0.0000000000000000e+00 2.9098604464857747e+00 2.5663413651089584e+01 1.2456709975872187e+01 1 -1 0 +570 0 1 0.0000000000000000e+00 3.6531599059087330e+00 1.7696973045780020e+01 1.6321251665678904e+01 0 0 -1 +3542 0 1 0.0000000000000000e+00 2.3674273030047912e+00 2.6916419731467570e+01 2.3977268927003006e+01 2 0 1 +419 0 1 0.0000000000000000e+00 5.9458491905971735e+00 2.3727877097629971e+01 1.2377276807802728e+01 0 0 0 +93 0 1 0.0000000000000000e+00 1.0259486784935614e+00 8.8016652633190606e+00 6.1392076257377104e+00 0 0 0 +871 0 1 0.0000000000000000e+00 9.3732444702429696e+00 1.8692264390906669e+01 8.0526740850689815e-01 0 1 1 +581 0 1 0.0000000000000000e+00 2.2894714336336349e+01 3.3930422586608685e+01 4.1501088976189671e+00 0 0 1 +149 0 1 0.0000000000000000e+00 1.0530790033232300e+01 2.9661023357673859e+01 2.7099694830183561e+00 -1 -1 0 +586 0 1 0.0000000000000000e+00 8.9135698527351845e+00 1.8738668373581763e+01 1.2066095031731953e+01 0 0 0 +573 0 1 0.0000000000000000e+00 6.7508510878211583e+00 2.1133644111991579e+01 6.1990685447125120e+00 0 0 0 +971 0 1 0.0000000000000000e+00 1.2349359986598971e+01 3.3510092137326730e+01 1.1296880495861554e+01 0 0 1 +777 0 1 0.0000000000000000e+00 1.4708934674038712e+01 8.4034982877917042e+00 2.9322020674796040e+01 0 1 0 +937 0 1 0.0000000000000000e+00 9.0062754797685223e+00 3.3833333791881572e+01 2.3095852623774892e+01 0 0 0 +983 0 1 0.0000000000000000e+00 1.1794418609528408e+01 2.3981673402518165e+01 2.5851036878225999e+00 0 0 1 +491 0 1 0.0000000000000000e+00 2.3482992304484882e+00 3.3414433324423861e+01 2.9976340984186109e+01 0 0 0 +768 0 1 0.0000000000000000e+00 1.4120801107745043e+01 2.1883486038748683e+00 1.6894097952281296e+01 0 1 0 +141 0 1 0.0000000000000000e+00 1.9223245839289689e+01 1.5088613647021459e+01 3.2891659161713598e+01 0 0 0 +828 0 1 0.0000000000000000e+00 1.5764380803344347e+01 3.0396606677681589e+01 3.2368003842452644e+01 1 0 -1 +401 0 1 0.0000000000000000e+00 1.5912825472459811e+01 5.4512292735273968e+00 1.7941586164135277e+01 0 0 0 +243 0 1 0.0000000000000000e+00 2.4232154933832813e+01 2.7798285352520043e+01 3.1148417662389402e+01 0 0 0 +46 0 1 0.0000000000000000e+00 7.3929055053114210e+00 1.8823268572371273e+01 3.2716757142654188e+01 0 0 0 +691 0 1 0.0000000000000000e+00 1.4499901362117226e+01 1.6451756522729355e+01 2.0143365224006910e+01 0 0 0 +838 0 1 0.0000000000000000e+00 3.8217060178186828e+00 3.0245476463996340e+01 1.0404114618106714e+01 0 0 0 +914 0 1 0.0000000000000000e+00 1.2793010394789684e+01 3.3277832029581869e+00 8.9291429788871057e-01 1 0 1 +3954 0 1 0.0000000000000000e+00 4.7249132909428679e+00 3.0848727169429266e+00 6.8734232285465948e+00 1 1 0 +220 0 1 0.0000000000000000e+00 4.3344976867997946e+00 1.1465161975473762e+01 2.9486819140410965e+01 1 0 0 +779 0 1 0.0000000000000000e+00 2.2386081049376941e+01 1.8724647069111364e-01 2.6555064910226633e+01 -1 1 0 +187 0 1 0.0000000000000000e+00 2.2999111401884694e+01 2.4830677852961333e+01 2.3196215757211558e+01 0 -1 -1 +346 0 1 0.0000000000000000e+00 1.0212723393597450e+01 2.8219657645691345e+01 2.1200060576107905e+01 0 -1 0 +253 0 1 0.0000000000000000e+00 2.7794818594092924e+01 2.1451196997499263e+01 2.5622809829612091e+01 1 -1 0 +616 0 1 0.0000000000000000e+00 9.4917462603827403e+00 3.2261442282809263e+01 3.3893715386594501e+01 0 0 -1 +579 0 1 0.0000000000000000e+00 3.1299535919331398e+00 1.4638287283263390e+01 2.9196189503836063e+01 1 0 0 +134 0 1 0.0000000000000000e+00 7.9866795441952751e+00 6.8865807708667015e-01 1.9601733742001556e+01 0 0 0 +1395 0 1 0.0000000000000000e+00 3.3391700896065764e+01 1.8772624447137286e+01 1.9305474618130727e+01 0 0 0 +382 0 1 0.0000000000000000e+00 1.0774993382523999e+01 1.4953858626837601e+01 2.7825455486344165e+01 1 -1 0 +371 0 1 0.0000000000000000e+00 2.8592710340451241e+01 3.1427791763936213e+01 2.7233273387524214e+01 0 -1 0 +334 0 1 0.0000000000000000e+00 1.9696694325606131e+01 3.7224055242535843e+00 2.1864318869323693e+01 0 0 0 +508 0 1 0.0000000000000000e+00 2.1317410636644091e+01 2.5589778700553364e+01 3.3130011871276629e+01 0 0 -1 +774 0 1 0.0000000000000000e+00 6.3642383249828720e+00 2.4700710680948621e+01 2.8784259906625639e+01 0 0 0 +1009 0 1 0.0000000000000000e+00 1.2417243676423627e+01 2.9433078975379956e+01 1.7974993678508472e-01 0 0 1 +523 0 1 0.0000000000000000e+00 7.2357660892890729e+00 2.7013178492214280e+01 1.7196632958622210e+01 0 0 0 +782 0 1 0.0000000000000000e+00 2.0364121157595115e+01 8.8032118586250494e+00 1.4162514144917012e+01 0 0 0 +153 0 1 0.0000000000000000e+00 4.0274212697517147e+00 4.9126966747333300e+00 2.9558674308182010e+01 0 0 0 +366 0 1 0.0000000000000000e+00 3.2130205109803441e+01 3.2765136482613407e+01 1.4589182422476203e+01 -1 0 0 +799 0 1 0.0000000000000000e+00 5.8344579884377596e+00 2.4630372809943655e+01 1.7838669728726475e+00 0 0 1 +572 0 1 0.0000000000000000e+00 2.0094780144924126e+01 2.4276174675517218e+01 4.4266653726643623e+00 0 -1 1 +375 0 1 0.0000000000000000e+00 1.7879359406134952e+01 2.8088497281302272e-01 2.2187020382358924e+01 -1 0 0 +337 0 1 0.0000000000000000e+00 1.7183894851342387e+01 2.7257258652817399e+01 2.7784757662306589e+01 0 -1 -1 +603 0 1 0.0000000000000000e+00 3.1651241775814057e+01 2.6386194358635553e+01 2.6540122057610745e+01 0 0 0 +274 0 1 0.0000000000000000e+00 2.1559298537075431e+01 9.5210760027712080e+00 2.1434218833445986e+01 0 0 0 +1023 0 1 0.0000000000000000e+00 1.7537132816582627e+01 2.1990088857071527e+01 2.4403112490380796e+01 0 0 0 +39 0 1 0.0000000000000000e+00 2.2201488850240107e+01 1.8532696136546164e+01 1.7419161554948722e+01 -1 -1 0 +781 0 1 0.0000000000000000e+00 1.5418453163969287e+01 2.6255642485342143e+01 2.2577242432512953e+01 0 0 0 +210 0 1 0.0000000000000000e+00 1.8282447152707057e+01 3.0831529156608742e+01 2.8423197330452503e+01 0 -1 0 +869 0 1 0.0000000000000000e+00 9.2647311253930642e+00 2.2541191638322957e+01 3.4174313419260443e+01 0 1 0 +589 0 1 0.0000000000000000e+00 1.9323581815803781e+01 1.1971124879840714e+01 3.3944849374952362e+01 0 0 0 +942 0 1 0.0000000000000000e+00 1.1556288842095684e+01 2.5617486203123921e+01 3.3515000404944374e+01 1 0 0 +580 0 1 0.0000000000000000e+00 1.4026362976580797e+01 5.3523268382951992e+00 2.7198785158829452e+01 0 1 -1 +918 0 1 0.0000000000000000e+00 1.5855871324443449e+01 3.3166261873563187e+01 1.5274648529689687e+01 0 0 0 +510 0 1 0.0000000000000000e+00 1.4341292756716669e+01 2.2616050285181775e+01 1.7812919842109906e+01 0 0 -1 +242 0 1 0.0000000000000000e+00 1.8817212814127842e+01 3.1861296792316075e+01 1.6373594659135826e+01 0 -1 0 +174 0 1 0.0000000000000000e+00 2.4239737281901029e+01 2.9041648151934037e+01 2.0313511081894191e+01 0 0 0 +794 0 1 0.0000000000000000e+00 1.9737783029698459e+01 1.1505895515440338e+01 1.8637529649455736e+01 0 1 1 +297 0 1 0.0000000000000000e+00 3.3353238433856106e+01 2.7725994766794457e+01 1.5800986087077402e+00 0 -1 0 +1013 0 1 0.0000000000000000e+00 1.5214638089823932e+01 1.4450367943426835e+01 2.9227745403141071e+01 1 0 0 +668 0 1 0.0000000000000000e+00 2.7436744293259341e+01 1.7846752123851143e+01 4.4516097477323138e+00 -1 1 0 +615 0 1 0.0000000000000000e+00 5.1098571493785521e+00 3.1739838260896530e+01 2.9740527161770679e+01 0 0 -1 +17 0 1 0.0000000000000000e+00 4.3552305516824621e+00 2.8896867895727308e+01 1.7457747911832300e+01 0 -1 -1 +872 0 1 0.0000000000000000e+00 1.8992092759604610e+01 2.4736863005154099e+01 2.2234295161041029e+01 0 1 0 +1024 0 1 0.0000000000000000e+00 1.2075924350343527e+01 2.5796012008921970e+01 1.6995986759955713e+01 0 0 0 +1218 0 1 0.0000000000000000e+00 3.0538801409414642e+01 2.9992919403855765e+01 1.2416189117638513e+01 0 -1 0 +363 0 1 0.0000000000000000e+00 1.9644145079320123e+00 1.7447253277799697e+00 2.7782228683279182e+01 0 1 0 +896 0 1 0.0000000000000000e+00 2.8147834488949037e+01 1.7613342352736790e+01 1.3670361045737245e+00 0 0 1 +938 0 1 0.0000000000000000e+00 1.3250247165405913e+01 2.2272643024947996e+01 3.3581882379455408e+01 0 0 0 +368 0 1 0.0000000000000000e+00 1.9087918396242735e+01 9.9949410955685281e+00 3.0602472689859127e+01 0 0 0 +565 0 1 0.0000000000000000e+00 6.8700928849759615e+00 2.8479868521352643e+01 2.0607714613949558e+01 1 0 -1 +66 0 1 0.0000000000000000e+00 5.9813536896834920e+00 3.0817079443469861e+01 3.2715211747048855e+01 1 0 -1 +189 0 1 0.0000000000000000e+00 1.5457280095888353e+00 2.7623808295798355e+01 7.9687018949174637e-01 0 0 0 +483 0 1 0.0000000000000000e+00 1.2357512327840801e+01 1.0593033963755175e+01 1.2019973688144818e+00 0 0 0 +296 0 1 0.0000000000000000e+00 2.0410236337947676e+01 1.9819245946572288e+01 1.4208863362127508e+01 0 -1 0 +271 0 1 0.0000000000000000e+00 1.7654144861555077e+00 3.2068138161085123e+01 8.2906087963061559e+00 0 -1 0 +534 0 1 0.0000000000000000e+00 1.8459712637862342e+01 5.7133148289442195e+00 1.5981679887993902e+01 0 0 0 +745 0 1 0.0000000000000000e+00 2.6480221164077321e+01 6.4486246445773281e+00 2.7907631029360761e+01 0 1 0 +430 0 1 0.0000000000000000e+00 1.4741585917670063e+01 2.7491529397668003e+01 1.5400859756368861e+01 0 -1 0 +787 0 1 0.0000000000000000e+00 1.3411754375253508e+01 2.8225105492043738e+01 2.0352325338032063e+01 0 0 1 +645 0 1 0.0000000000000000e+00 1.7661209301584730e+01 1.5961675384833404e+01 2.2541236702866357e+01 1 0 0 +744 0 1 0.0000000000000000e+00 2.0308041733938683e+01 2.9994169013988124e+01 3.1547184454989377e+01 0 0 0 +633 0 1 0.0000000000000000e+00 2.7059346154535277e+01 3.3719827599647942e+01 1.7471266313204715e+01 0 0 0 +352 0 1 0.0000000000000000e+00 6.9890501144314152e+00 2.2624090070364144e+01 2.1517238992701106e+01 1 -1 0 +904 0 1 0.0000000000000000e+00 7.4113454286306224e+00 2.4877574450079727e+01 3.2672625641695575e+01 1 0 0 +649 0 1 0.0000000000000000e+00 4.9019922487844818e+00 2.6042813118880208e+01 2.1890510403081429e+01 1 1 0 +619 0 1 0.0000000000000000e+00 1.9427998962667200e+01 1.8948160155556629e+01 2.4033392882524929e+01 0 0 -1 +997 0 1 0.0000000000000000e+00 1.3514144931905808e+01 2.3162880829094359e+01 2.3459423955636947e+01 0 0 -1 +429 0 1 0.0000000000000000e+00 1.8765694057903325e+01 1.8956512849921374e+01 2.7247256717571425e+01 0 0 0 +965 0 1 0.0000000000000000e+00 1.8350144710793447e+01 3.3417860929603897e+01 3.1301339979325142e+01 0 0 0 +299 0 1 0.0000000000000000e+00 4.0115567289266751e+00 3.2068851845577512e+01 1.7361061287301382e+01 1 0 -1 +960 0 1 0.0000000000000000e+00 1.4740485811661449e+01 2.0925579073442499e+01 1.4671174817416555e+01 0 0 0 +963 0 1 0.0000000000000000e+00 1.9970710675978854e+01 2.5346294266913446e+01 1.8844219510361977e+01 1 0 0 +196 0 1 0.0000000000000000e+00 9.2746205036812484e+00 1.8093043968029068e+01 2.5825311048502790e+01 0 0 0 +270 0 1 0.0000000000000000e+00 1.5629283008561899e+01 2.3630523929036904e+01 2.8833347393726278e+01 0 0 0 +560 0 1 0.0000000000000000e+00 1.8776770293676659e+01 1.7059121539393495e+01 1.9174380556340811e+01 0 1 0 +612 0 1 0.0000000000000000e+00 5.3400787557913141e+00 3.4159274071866953e+01 3.3071144742331015e+01 0 0 -1 +1006 0 1 0.0000000000000000e+00 6.8423736038853349e+00 1.0985741587581073e+01 2.6802581346809951e+01 0 0 0 +1012 0 1 0.0000000000000000e+00 1.9949696839110853e+01 3.1944844119792240e+01 1.9729637896085844e+01 0 0 0 +800 0 1 0.0000000000000000e+00 3.5531278941387172e+00 2.9414984678164760e+01 2.1322707497887684e+01 0 0 0 +257 0 1 0.0000000000000000e+00 2.2057299885234297e+01 8.1054749133412862e+00 2.8402487709988275e+01 -1 0 -1 +182 0 1 0.0000000000000000e+00 4.4265867936800243e+00 2.1938143761420168e+01 1.5420782831062136e+01 0 -1 0 +458 0 1 0.0000000000000000e+00 6.1848914495976608e+00 1.5874668036729529e+00 2.2645753141545161e+01 0 0 0 +390 0 1 0.0000000000000000e+00 2.8724116665399201e+01 2.4349463088740002e+00 2.2682347898919677e+01 -1 0 0 +551 0 1 0.0000000000000000e+00 2.8851736670608258e+01 4.3367644556993490e+00 1.4639732886776072e+01 0 1 0 +537 0 1 0.0000000000000000e+00 7.2755922260871584e+00 3.0430081146202070e+01 2.7020176589210337e+01 0 0 -1 +600 0 1 0.0000000000000000e+00 9.8972703179380499e+00 8.6899761715984116e+00 2.9544979703440550e+01 0 0 0 +191 0 1 0.0000000000000000e+00 1.7729001317770688e+01 2.4293891664229976e+00 3.0590879907308921e+01 0 0 0 +674 0 1 0.0000000000000000e+00 1.6284554415038631e+01 2.4049446136325717e+01 3.1911927564132654e+01 0 0 0 +416 0 1 0.0000000000000000e+00 1.9831939949296125e+01 2.5464713228901697e+01 2.6137273926560542e+01 0 0 -1 +949 0 1 0.0000000000000000e+00 1.2725815232229140e+01 2.3129482689365869e+01 2.6877158756238948e+01 0 0 0 +336 0 1 0.0000000000000000e+00 2.6252105846322005e+00 2.7806701106998450e+01 2.9297248116848763e+01 0 0 0 +881 0 1 0.0000000000000000e+00 1.7018882941457726e+01 3.0451756137106130e+01 2.1368270489682015e+01 0 0 0 +95 0 1 0.0000000000000000e+00 2.4206404998350063e+01 2.7530362501584648e+01 2.4049854813797108e+01 -1 -1 -1 +381 0 1 0.0000000000000000e+00 2.0446186404736583e+01 4.5639050353638275e+00 3.6132875312744478e-01 0 0 1 +239 0 1 0.0000000000000000e+00 1.5684465517262124e+01 1.8845963571439199e+01 2.3128217107843877e+01 1 -1 -1 +84 0 1 0.0000000000000000e+00 9.3666301048662373e+00 2.3925879665104045e+01 2.6890744181985056e+01 0 0 -1 +813 0 1 0.0000000000000000e+00 6.0909061178370161e-01 1.3104652756022816e+01 2.0851235987621383e+01 0 1 0 +305 0 1 0.0000000000000000e+00 7.1930645541914897e+00 3.0470473617287190e+01 1.3888760766566792e+00 0 -1 1 +324 0 1 0.0000000000000000e+00 1.5691352694487929e+01 2.9782876179468108e+01 1.1116311988613323e+00 0 -1 1 +277 0 1 0.0000000000000000e+00 1.8782950756478176e+01 2.7802150457874703e+01 1.6086155269619816e+01 0 -1 0 +1000 0 1 0.0000000000000000e+00 5.6503961268506000e+00 2.8841050604188407e+01 2.4472606913515008e+01 0 0 0 +259 0 1 0.0000000000000000e+00 3.2175609067148741e+01 1.9083413438737832e+01 1.1896178968149997e+01 0 0 0 +38 0 1 0.0000000000000000e+00 9.2616306376349389e+00 1.4938825654155803e+01 3.3178908632039288e+01 0 0 -1 +380 0 1 0.0000000000000000e+00 2.4436056965137137e+01 1.9850710988540563e+01 1.5877506316566082e+01 0 -1 0 +124 0 1 0.0000000000000000e+00 1.9174532359457825e+01 1.8485664039433081e+00 2.5518224450049875e+01 0 1 0 +977 0 1 0.0000000000000000e+00 1.0139072607454786e+01 2.1629214107199878e+01 1.8631440221564056e+01 0 1 1 +919 0 1 0.0000000000000000e+00 2.1196962912961020e+01 2.8881458294113095e+01 2.5282378104327183e+01 0 0 1 +758 0 1 0.0000000000000000e+00 2.2081797117362552e+01 1.3974843092948094e+01 3.0955358620649402e+01 0 0 0 +351 0 1 0.0000000000000000e+00 1.9990401062309587e+01 3.4388626953011538e+01 2.8677728018045940e+01 0 -1 0 +467 0 1 0.0000000000000000e+00 1.9733773120071362e+01 5.8308753443188408e+00 3.0448399589105726e+01 0 0 0 +311 0 1 0.0000000000000000e+00 9.6908127436052069e+00 2.2342191380119544e+01 1.1627142129297599e+01 0 0 0 +201 0 1 0.0000000000000000e+00 1.1695277403329699e+01 2.2380905650249286e+01 1.4903660838706877e+01 1 -1 0 +536 0 1 0.0000000000000000e+00 2.7271685898144270e+01 2.1126278027267716e+01 3.2689232009500095e+01 0 0 -1 +682 0 1 0.0000000000000000e+00 2.3137708067488717e+01 2.6147208353393427e+01 2.6550576387839541e+01 0 0 0 +862 0 1 0.0000000000000000e+00 1.4677900976895948e+01 2.7059547422217513e+01 3.2105989464357457e+01 0 0 0 +150 0 1 0.0000000000000000e+00 1.1760759422085345e+01 2.6421083649769528e+01 2.4329914156499672e+01 0 0 -2 +436 0 1 0.0000000000000000e+00 1.4432122893087960e+00 1.2314676094101511e+01 2.7513395854320457e+01 1 0 0 +192 0 1 0.0000000000000000e+00 5.2009296432385641e+00 1.6538468330693394e+01 1.6033223243946407e-01 1 0 0 +648 0 1 0.0000000000000000e+00 1.0762945921370120e+01 3.3563068659952314e+01 1.7310581666628067e+01 1 0 0 +198 0 1 0.0000000000000000e+00 1.9013987448043248e+00 3.3403500389009686e+01 3.3827902462110231e+01 1 0 -1 +841 0 1 0.0000000000000000e+00 2.3385517705689765e+01 3.1851630029406433e+01 1.8771589046783504e+01 -1 0 0 +470 0 1 0.0000000000000000e+00 2.9300564373429069e+01 2.0836551373684237e+01 2.2730308438775545e+01 1 0 1 +905 0 1 0.0000000000000000e+00 2.0745147371748303e+01 2.7984865129675931e+01 2.8695481786072836e+01 0 0 0 +956 0 1 0.0000000000000000e+00 1.6786516150066092e+01 1.6956395299036476e+01 2.5879411658702168e+01 0 0 0 +15 0 1 0.0000000000000000e+00 8.0971920410364824e+00 2.6964659185281025e+01 2.6457316870832376e+01 0 -1 -1 +924 0 1 0.0000000000000000e+00 1.2940114925142472e+01 1.7130269225517171e+01 3.0162394233982834e+01 0 0 -1 +622 0 1 0.0000000000000000e+00 1.7957584724445812e+01 2.7569144066388382e+01 2.0114893359156188e+01 0 0 0 +413 0 1 0.0000000000000000e+00 2.7392711463946902e+01 2.9072909077181613e+01 3.0487610030071117e+01 -1 -1 0 +504 0 1 0.0000000000000000e+00 1.5769207893781349e+01 1.0816055362702230e+00 2.4301459968310184e+01 0 0 0 +685 0 1 0.0000000000000000e+00 1.4484587815663602e+01 3.3102648838908443e+01 2.2039069106766210e+01 0 0 -1 +643 0 1 0.0000000000000000e+00 2.5161513773810945e+01 1.3846754706561084e+01 2.6830733560311462e+01 0 0 0 +331 0 1 0.0000000000000000e+00 8.6876231819150611e+00 3.0431035334452162e+01 2.3697088015741528e+01 0 0 0 +1002 0 1 0.0000000000000000e+00 3.1330446094768515e+01 2.6353745996725422e+01 1.1870402722781344e+01 0 0 0 +788 0 1 0.0000000000000000e+00 1.9107365014524863e+01 2.4552182142717346e+01 2.9990974827172440e+01 -1 0 0 +499 0 1 0.0000000000000000e+00 1.7434336033641120e+01 1.3889086103503248e+01 2.5810622627206417e+01 0 0 0 +667 0 1 0.0000000000000000e+00 2.1040053701380856e+01 2.8780769362451519e+01 1.8499235039091349e+01 0 0 0 +303 0 1 0.0000000000000000e+00 3.0885474235437623e+01 2.0977181388782594e+01 1.8735060369083243e+01 -1 0 0 +931 0 1 0.0000000000000000e+00 2.6531788447732016e+01 2.5135651315032677e+00 1.9761404878637897e+01 0 1 1 +684 0 1 0.0000000000000000e+00 1.1989511072275411e+01 2.3913585880653144e+01 3.0344194228570458e+01 1 0 -1 +486 0 1 0.0000000000000000e+00 2.0902575324076533e+01 2.7869566073000545e+01 2.1852652990940332e+01 0 0 0 +657 0 1 0.0000000000000000e+00 2.1570000194836322e+01 3.1231788673554952e+01 2.2207032582958970e+01 0 0 0 +1019 0 1 0.0000000000000000e+00 2.1659737019406293e+01 1.1073485580169323e-01 2.2508887753308603e+01 0 1 0 +713 0 1 0.0000000000000000e+00 7.5148542006767780e+00 2.8252813901970370e+01 1.3871212826606719e+01 1 0 0 +980 0 1 0.0000000000000000e+00 5.3925894416031754e+00 3.2366147957368327e+01 2.3838028435044830e+01 0 0 0 +666 0 1 0.0000000000000000e+00 8.9272905098715345e+00 2.5253976643025609e+01 1.9423443303504254e+01 0 0 -1 +975 0 1 0.0000000000000000e+00 2.3616351424571100e+01 2.3471491663330006e+01 1.7266208771012771e+01 0 0 0 +34 0 1 0.0000000000000000e+00 3.2875519717864123e+01 5.3130353116646463e+00 1.7487046948695026e+00 0 0 0 +129 0 1 0.0000000000000000e+00 1.8035389204513105e+01 2.8208350386317676e+01 2.4252989278473276e+01 0 -1 0 +801 0 1 0.0000000000000000e+00 1.1313410246283370e+01 1.3138760635105124e+00 2.4952202219300180e+01 0 2 0 +440 0 1 0.0000000000000000e+00 1.7543173677214085e+01 3.0193892818660924e+01 4.0496138978811675e+00 1 -1 1 +451 0 1 0.0000000000000000e+00 2.0298427640954806e+01 2.7576499285174719e+01 1.2894427633154850e+01 0 -1 0 +1016 0 1 0.0000000000000000e+00 1.0049932642985381e+01 2.6526954319176074e+01 2.9772417307539328e+01 0 0 0 +466 0 1 0.0000000000000000e+00 2.4731447660547524e+01 2.7684358018483714e+01 2.3151214438031384e-01 -1 -1 1 +1267 0 1 0.0000000000000000e+00 3.2617279632687797e+01 9.6823392995877313e+00 1.0971325381236420e+01 0 0 0 +275 0 1 0.0000000000000000e+00 7.0377795729132950e+00 1.2368092094644744e+01 1.9445373717160990e+01 0 0 0 +990 0 1 0.0000000000000000e+00 2.9503047817228552e+01 3.3222017139682293e+01 1.1771558199562902e+01 -1 0 0 +765 0 1 0.0000000000000000e+00 4.3153715463959301e+00 2.1791660702668754e+01 3.1067192623047738e+01 0 0 -1 +367 0 1 0.0000000000000000e+00 2.2687196388183725e+01 3.6303420836213869e+00 2.4676139618079844e+01 0 -1 0 +216 0 1 0.0000000000000000e+00 5.3073370269251132e+00 2.1654624467783407e+01 2.7756151503932120e+01 0 0 0 +184 0 1 0.0000000000000000e+00 2.2181962043149433e+01 2.4004682840185687e+01 2.9475418929911356e+01 0 -1 0 +695 0 1 0.0000000000000000e+00 4.5917849690040820e+00 1.8287283070942291e+01 2.9930515378004834e+01 0 0 -1 +946 0 1 0.0000000000000000e+00 4.4835178798330455e+00 1.8007181564863526e+01 2.6446067512442081e+01 0 0 0 +874 0 1 0.0000000000000000e+00 1.5788949175089453e+01 1.1665499175575597e+01 3.1735584690138911e+01 0 1 0 +527 0 1 0.0000000000000000e+00 9.7720595778316355e+00 3.2708114418439585e+01 2.7243818168766868e+01 1 0 -1 +284 0 1 0.0000000000000000e+00 1.2110171235215399e+01 1.9717548966648085e+01 1.2480245421590029e+01 0 0 0 +512 0 1 0.0000000000000000e+00 9.2810865092959620e+00 3.1566633387536747e+01 2.0126815117126959e+01 0 -1 -1 +541 0 1 0.0000000000000000e+00 8.8886934142779932e+00 4.2214073240774974e+00 1.3646107305165367e+00 0 1 0 +803 0 1 0.0000000000000000e+00 1.2481930051294626e+01 2.0615762438102983e+01 1.7726561499472493e+00 0 0 0 +427 0 1 0.0000000000000000e+00 7.9284796636694050e+00 2.1461895084997643e+01 1.4308548970900908e+01 0 0 0 +1021 0 1 0.0000000000000000e+00 4.9657103892316119e+00 1.0796015388039843e+01 1.7484880601677204e+01 0 0 0 +521 0 1 0.0000000000000000e+00 1.7779097897883002e+01 2.7416062956693217e+01 3.1468365161384906e+01 0 0 0 +389 0 1 0.0000000000000000e+00 6.6343858655919172e+00 2.7431899576933269e+01 4.0752509928723128e+00 0 0 1 +1428 0 1 0.0000000000000000e+00 3.0128368585399990e+01 1.1045764454294998e+01 2.4950822607512858e+01 0 0 0 +663 0 1 0.0000000000000000e+00 2.6877656507580479e+01 2.4859562264076043e+01 2.5339108998126921e+01 0 0 0 +755 0 1 0.0000000000000000e+00 1.6397184178994699e+01 1.7813288215186258e+01 2.9314392484179127e+01 0 0 0 +37 0 1 0.0000000000000000e+00 1.6828182918378015e+01 2.6196084765992951e+00 6.5666302771288612e+00 0 1 0 +899 0 1 0.0000000000000000e+00 3.2776242945375216e+01 2.1072094773972001e+00 4.1895447234217489e+00 -1 0 0 +762 0 1 0.0000000000000000e+00 1.1004913723426766e+01 2.0199878208575331e+01 2.8319339409056468e+01 0 0 0 +138 0 1 0.0000000000000000e+00 3.0979996379742932e+01 2.9900373728212042e+01 8.9730033784319598e+00 0 -1 -1 +102 0 1 0.0000000000000000e+00 1.4401734312000796e+01 2.8675893386529850e+01 2.5125159291240127e+01 0 -1 -1 +576 0 1 0.0000000000000000e+00 1.3022697308114216e+01 3.2466740912360692e+01 2.6511744623271348e+01 0 0 0 +808 0 1 0.0000000000000000e+00 9.8292066914262133e+00 1.6287253406829694e+00 2.8464901134556573e+01 0 1 0 +518 0 1 0.0000000000000000e+00 1.4393756799242881e+01 2.7928350533176406e+01 6.7792737049924785e+00 0 0 0 +24 0 1 0.0000000000000000e+00 1.6001205489111086e+01 2.5030611380859792e+01 2.5325690863900594e+01 0 0 -1 +3130 0 1 0.0000000000000000e+00 2.1276759769472670e-01 2.4698903760176847e+01 2.1474405764054744e+01 0 0 0 +900 0 1 0.0000000000000000e+00 2.1037144890390536e+01 2.9040706675541625e+01 6.9003519914786193e-01 0 1 1 +54 0 1 0.0000000000000000e+00 1.3331271007615516e+01 2.6570291816478914e+01 2.8640022406890434e+01 1 0 -1 +593 0 1 0.0000000000000000e+00 1.2078415797349896e+01 8.8844647929693643e+00 3.2130807156733411e+01 0 1 -1 +505 0 1 0.0000000000000000e+00 1.5927009900414545e+01 2.2323258477043126e+01 2.1377553961918323e+01 0 -1 0 +155 0 1 0.0000000000000000e+00 1.5048311078275644e+01 2.0421743744312664e+01 2.6945404703906338e+01 0 -1 -1 +611 0 1 0.0000000000000000e+00 2.5259729021236677e+01 1.2162158474424679e+01 3.0171844439106454e+01 0 1 -1 +128 0 1 0.0000000000000000e+00 1.6399321489022142e+01 1.2097068031074024e+01 2.2777408915367513e+01 0 0 0 +262 0 1 0.0000000000000000e+00 1.1027211632896151e+01 2.9789832742945652e+01 1.7535222056193739e+01 1 -1 0 +163 0 1 0.0000000000000000e+00 3.1442409050308601e+01 1.8058590427859468e+01 6.2970766028567553e+00 -1 0 0 +26 0 1 0.0000000000000000e+00 6.6359244658301169e+00 3.4380037717257373e+01 2.6901027572884370e+01 0 0 -1 +783 0 1 0.0000000000000000e+00 1.0493141917495860e+01 7.9899139399920864e+00 1.9659765706439099e+01 0 0 0 +923 0 1 0.0000000000000000e+00 2.1673977236089463e+00 1.9661513457331335e+01 1.3493617718379973e+01 0 0 0 +652 0 1 0.0000000000000000e+00 2.4992472396766939e+01 1.5754228933075318e+01 2.0892288274342885e+00 0 0 1 +91 0 1 0.0000000000000000e+00 4.1026179480628162e+00 1.3369935143127091e+01 2.1728181148015221e+01 1 0 0 +569 0 1 0.0000000000000000e+00 8.7830623708056788e+00 1.9411703375123246e+01 2.1637691027703887e+01 1 0 0 +568 0 1 0.0000000000000000e+00 7.5575748661092597e+00 8.6934787253493386e+00 3.3514514994367183e+01 0 1 -1 +448 0 1 0.0000000000000000e+00 8.8019982036548949e+00 2.2137210541143983e+01 3.0127793755412402e+01 0 0 0 +915 0 1 0.0000000000000000e+00 1.0794100895741472e+01 2.1536595660345945e+00 3.2037965431652879e+01 0 0 0 +1014 0 1 0.0000000000000000e+00 2.4905921721965289e+01 3.2378666245179907e+01 1.4536725644364500e+01 -1 0 0 +28 0 1 0.0000000000000000e+00 1.8009416934668987e+01 2.1213632427322441e+01 3.0735322672452327e+01 1 -1 -1 +718 0 1 0.0000000000000000e+00 6.4567999109573049e-01 2.1352286602486028e+01 3.1795286496831242e+01 1 0 -1 +348 0 1 0.0000000000000000e+00 1.2129420633777730e+01 2.5132000753683243e+01 2.0842976502357271e+01 0 0 0 +1001 0 1 0.0000000000000000e+00 1.6562868211393667e+01 3.4214946898392817e+01 2.7573693873458584e+01 0 -1 0 +330 0 1 0.0000000000000000e+00 1.3799212076929290e+01 1.4295339965675728e+01 2.2899341753185716e+01 0 0 0 +812 0 1 0.0000000000000000e+00 9.1811372705292342e+00 2.8317109941529814e+01 3.3490158311221798e+01 0 -1 -1 +594 0 1 0.0000000000000000e+00 7.0885543243883644e+00 2.0548647541145311e+01 2.4482512276090350e+01 0 0 -1 +746 0 1 0.0000000000000000e+00 2.3943118456899960e+01 2.2418206773117365e+01 2.6780597961021574e+01 0 0 -1 +10 0 1 0.0000000000000000e+00 2.4052226982834235e+01 2.0344199170477150e+01 2.3746164169833648e+01 -1 -1 0 +127 0 1 0.0000000000000000e+00 1.0378521612126399e+01 1.1642227153460061e+01 2.6307394789562391e+01 0 0 -1 +1491 0 1 0.0000000000000000e+00 3.2926729988213388e+01 3.2466503702966854e+01 2.8663277030705672e+01 0 -1 0 +545 0 1 0.0000000000000000e+00 2.1673533084591355e+01 2.2936144997246476e+01 2.0477112888873801e+01 0 0 0 +292 0 1 0.0000000000000000e+00 1.4980858610732184e+01 3.3777788286886050e+01 3.0312041258786930e+01 0 0 0 +55 0 1 0.0000000000000000e+00 2.1854648180321274e+01 3.3846620672849568e+01 3.2222718008341523e+01 0 -1 0 +506 0 1 0.0000000000000000e+00 1.6369886386802431e+01 3.1610554830832257e+01 2.4745547372505406e+01 -1 0 0 +185 0 1 0.0000000000000000e+00 1.7490703388123446e+01 2.1939147625111768e+00 1.9022752407815396e+01 0 0 -1 +392 0 1 0.0000000000000000e+00 1.8103694666896811e+01 7.6054114631243213e+00 2.7419843722755409e+01 0 0 0 +908 0 1 0.0000000000000000e+00 1.5661942488598594e+01 2.5492871814774162e+01 6.9256304722067985e-01 0 0 1 +107 0 1 0.0000000000000000e+00 1.1160714428150069e+01 2.8842143111084056e+01 2.6721340864054305e+01 0 -1 0 +756 0 1 0.0000000000000000e+00 3.1027720303971119e+01 3.4057493464905903e+01 1.7846692441192886e+01 0 0 0 +784 0 1 0.0000000000000000e+00 1.9129766318670249e+01 2.0887633725849398e+01 2.0597429558432719e+01 0 0 0 +83 0 1 0.0000000000000000e+00 1.1445786551242302e+01 1.9924682210517553e+01 3.2316257971427653e+01 0 0 -1 +797 0 1 0.0000000000000000e+00 5.5760962506006049e+00 6.7601766974423123e+00 1.5779192214013322e+00 0 1 1 +909 0 1 0.0000000000000000e+00 7.0426338889255531e+00 1.9485008148895588e+01 1.8551163907883620e+01 0 0 0 +3787 0 1 0.0000000000000000e+00 8.2709193571376431e+00 2.5774212008623309e+01 2.3008216977835954e+01 1 0 0 +830 0 1 0.0000000000000000e+00 1.2959064542749193e+01 3.0752854376569662e+01 2.3310061244048303e+01 0 0 0 +176 0 1 0.0000000000000000e+00 1.2716091248276037e+01 8.5683487932111220e+00 2.6414544143968488e+01 0 0 0 +273 0 1 0.0000000000000000e+00 1.6431076740864835e+01 7.3896663104037801e+00 5.3515288089655701e+00 -1 0 1 +795 0 1 0.0000000000000000e+00 1.4737540706289485e+01 6.6685940107305317e+00 3.2243376360289574e+01 0 1 0 +546 0 1 0.0000000000000000e+00 7.0867013919414896e+00 2.2738950326260330e+01 1.7136941150726322e+01 1 0 -1 +404 0 1 0.0000000000000000e+00 1.4125893887048155e+01 2.4684071012877977e+00 3.0905536971656741e+01 0 1 0 +327 0 1 0.0000000000000000e+00 2.3853241753994848e+01 9.5637530225932643e-01 1.8485554368381315e+01 0 1 1 +309 0 1 0.0000000000000000e+00 9.2701253970898190e+00 2.6160972875072101e+01 1.9626809345585132e+00 0 0 1 +587 0 1 0.0000000000000000e+00 2.7885511346307701e+00 2.4930318331300775e+01 2.8060390990825663e+00 1 1 0 +362 0 1 0.0000000000000000e+00 2.0653010725461009e+01 3.6410887654028540e-01 1.8437234730433513e+01 0 1 1 +344 0 1 0.0000000000000000e+00 2.2597664254242826e+01 2.6921444725907371e+01 1.6025761292188339e+01 -1 0 0 +232 0 1 0.0000000000000000e+00 1.5703783581727352e+01 2.6004149444062971e+01 1.8568225401397189e+01 0 -1 0 +160 0 1 0.0000000000000000e+00 2.5979917597824876e+01 2.4433159514057177e+01 1.1056729402845368e+01 -1 0 0 +286 0 1 0.0000000000000000e+00 1.8567137001273164e+01 3.4550045915065745e+01 1.2729571401007549e+01 0 0 1 +3585 0 1 0.0000000000000000e+00 1.1168866970583076e+00 1.6067579768186516e+01 2.6826111111365599e+01 1 0 -1 +385 0 1 0.0000000000000000e+00 1.7255849592488079e+01 6.6531302194482711e+00 1.2795705317114686e+01 0 0 1 +358 0 1 0.0000000000000000e+00 2.1149925469088096e+01 1.8487051385253732e+01 3.3718830072448100e+01 1 0 0 +802 0 1 0.0000000000000000e+00 1.2750432162671661e+01 1.0704521493804984e+01 2.0301350576975800e+01 -1 0 0 +350 0 1 0.0000000000000000e+00 1.1350988368766663e+01 1.6951128900024273e+01 2.9281614191090704e+00 1 1 1 +522 0 1 0.0000000000000000e+00 2.5672320953440526e+01 8.8464883840120532e+00 3.0779339577798453e+01 0 0 0 +454 0 1 0.0000000000000000e+00 9.9368860217906452e+00 1.1660396791510331e+01 3.2731072557369835e+01 0 0 -1 +945 0 1 0.0000000000000000e+00 1.8491110615434248e+01 1.4091911411017836e+01 2.5632895415818333e+00 0 0 1 +282 0 1 0.0000000000000000e+00 2.0771575181346325e+01 4.0349358500063435e+00 1.8337870868665707e+01 0 0 0 +60 0 1 0.0000000000000000e+00 9.5480408978994991e+00 6.1064137679386299e+00 3.1809990971167039e+01 1 0 -1 +231 0 1 0.0000000000000000e+00 3.0112191134561721e+00 3.3870810544581602e+01 2.5806862170164912e+01 1 -1 0 +110 0 1 0.0000000000000000e+00 2.0678984986899579e+01 1.7127420501800998e+01 2.9480318607288080e+01 0 0 -1 +349 0 1 0.0000000000000000e+00 1.2380490458743159e+01 7.0023593898468759e+00 3.5811263194131110e-01 0 0 1 +256 0 1 0.0000000000000000e+00 2.6152047198998996e+00 1.2060818695861611e+01 9.3210882375317539e-01 0 0 0 +82 0 1 0.0000000000000000e+00 1.5053417375364138e+01 1.1861067890517837e+01 3.2734499451873962e+00 0 0 1 +894 0 1 0.0000000000000000e+00 1.1679065082595079e+01 4.5700411291765279e+00 2.9615384362364345e+01 0 0 0 +113 0 1 0.0000000000000000e+00 1.9772419940527900e+01 3.2487518935805362e+01 2.4927089986742168e+01 0 -1 0 +264 0 1 0.0000000000000000e+00 2.8022780899702312e+01 1.0065586600025975e+01 4.5432616074614014e+00 0 0 1 +229 0 1 0.0000000000000000e+00 1.2665193562896221e+01 1.3491232553808963e+01 5.7182869086631332e+00 0 0 0 +179 0 1 0.0000000000000000e+00 2.2050382044008352e+01 1.8764210831320792e+01 2.1665707373946340e+01 0 0 0 +858 0 1 0.0000000000000000e+00 2.6332630124056770e+01 4.6962170493611781e+00 3.1116419322768770e+01 0 0 0 +780 0 1 0.0000000000000000e+00 2.2931010165200362e+01 6.7816314930739692e+00 3.1882918833593564e+01 0 1 0 +1010 0 1 0.0000000000000000e+00 1.5696767112592042e+01 8.3367700697031246e+00 2.4942521130444099e+01 0 1 1 +807 0 1 0.0000000000000000e+00 1.7840251495921247e+01 5.5956036746411453e+00 2.4807068541928228e+01 0 1 0 +786 0 1 0.0000000000000000e+00 1.8394828437339012e+01 8.7673647320293107e+00 2.2611953662347396e+01 0 1 0 +315 0 1 0.0000000000000000e+00 2.0480408828597366e+01 1.4302069010610065e+01 2.0588586596572711e+01 0 0 0 +737 0 1 0.0000000000000000e+00 1.4732969891598467e+01 8.2557787456577998e+00 2.1935096280134960e+01 0 1 0 +137 0 1 0.0000000000000000e+00 1.2491774098774654e+01 2.9640935180526363e+01 3.0416819345824251e+01 1 0 -1 +460 0 1 0.0000000000000000e+00 1.4670680371367361e+01 2.0719192747636754e+01 3.0318602474860860e+01 -1 0 0 +490 0 1 0.0000000000000000e+00 1.0354896083201803e+01 1.7654382144477438e+01 1.9195259741482719e+01 1 0 0 +1970 0 1 0.0000000000000000e+00 3.3163657775061274e+01 3.1843876761616180e+01 1.9299966928059877e+01 0 0 0 +395 0 1 0.0000000000000000e+00 1.6264414665861416e+01 5.1524683484222642e+00 2.9865412407570464e+01 1 0 0 +853 0 1 0.0000000000000000e+00 1.2040437233176577e+01 5.2834146917022384e-01 3.9442141222887422e-01 1 1 1 +238 0 1 0.0000000000000000e+00 1.8677537381625552e+01 1.3800186041277952e+01 2.9043494780509064e+01 0 0 0 +456 0 1 0.0000000000000000e+00 1.3433913279407921e+01 8.2167071033669536e+00 4.3832364379682698e+00 -1 0 1 +857 0 1 0.0000000000000000e+00 1.2718353938778838e+01 1.4358538634856478e+01 1.8064447971400073e+00 0 1 1 +907 0 1 0.0000000000000000e+00 2.3380292574226040e+01 1.5826291105536901e+01 2.8748196531061595e+01 -1 0 0 +477 0 1 0.0000000000000000e+00 1.4420100696099812e+01 4.0655801821001534e+00 4.5502545960801708e+00 0 0 1 +832 0 1 0.0000000000000000e+00 1.0085882626658504e+01 2.2387247800652556e+01 2.3524742767038301e+01 0 0 0 +511 0 1 0.0000000000000000e+00 2.6032453476838896e+01 3.3416522559812172e+01 2.6490652346715695e+01 0 0 -1 +122 0 1 0.0000000000000000e+00 3.4930056768198834e+00 4.7948794358474389e+00 1.4609145736566532e+01 1 1 0 +1017 0 1 0.0000000000000000e+00 7.0577289499357283e+00 1.6391458237546704e+01 2.3552747349398256e+01 0 0 0 +958 0 1 0.0000000000000000e+00 2.6840972715392146e+00 2.9530916051934701e+00 2.3209461134601248e+01 0 1 0 +235 0 1 0.0000000000000000e+00 6.2514402973417287e+00 6.4336760376286666e+00 2.6121445566977300e+01 1 0 0 +721 0 1 0.0000000000000000e+00 2.0337867979910939e+01 8.5131805775071427e+00 3.3978972550004364e+01 0 0 -1 +891 0 1 0.0000000000000000e+00 2.5852199748235815e+01 4.9507046976259099e+00 2.1875468804862770e+01 0 1 0 +825 0 1 0.0000000000000000e+00 4.2028947821113176e+00 7.9113308962883879e+00 2.3056181160050151e+01 1 1 0 +441 0 1 0.0000000000000000e+00 2.0762431101537409e+01 6.7599858447273951e+00 2.5097403765787604e+01 1 0 0 +689 0 1 0.0000000000000000e+00 7.3889977235673054e+00 2.5958402802631322e+00 3.2959871928885534e+01 0 1 -1 +398 0 1 0.0000000000000000e+00 1.6467447817882164e+01 1.1038661551232860e+01 2.7817558281467438e+01 0 0 0 +1185 0 1 0.0000000000000000e+00 3.2957945373617889e+01 5.4389430808222095e+00 1.4913607685527140e+01 0 0 0 +1020 0 1 0.0000000000000000e+00 8.9528919596957444e+00 1.4216988700546350e+01 1.7269237198121360e+01 0 0 0 +544 0 1 0.0000000000000000e+00 3.8613424614992224e+00 8.7056557480334806e+00 3.3216285000314990e+01 1 0 -1 +345 0 1 0.0000000000000000e+00 2.9771378082573182e+01 1.3565422056108201e+01 3.0946384410756256e+01 0 0 0 +52 0 1 0.0000000000000000e+00 9.9348080161278762e+00 1.6947750004698356e+01 3.0544397852764963e+01 0 0 0 +75 0 1 0.0000000000000000e+00 2.2397597343994200e+01 1.0502002559613221e+01 3.1300525118714155e+01 0 0 0 +613 0 1 0.0000000000000000e+00 1.0523643587310680e+01 1.1025052479118614e+01 1.7582898836572856e+01 1 0 0 +420 0 1 0.0000000000000000e+00 2.1032534359395413e+01 2.7022228745330072e+00 3.0674043512593467e+01 1 0 0 +249 0 1 0.0000000000000000e+00 1.2962699734758706e+01 1.1163624371996047e+01 2.3841440227060183e+01 0 0 0 +35 0 1 0.0000000000000000e+00 3.0149189615114288e+01 2.7827215931655513e+01 2.5506822853503928e+00 0 -1 0 +903 0 1 0.0000000000000000e+00 1.1617844632734212e+01 3.0080483944001806e+00 1.8809699104941952e+01 0 1 0 +609 0 1 0.0000000000000000e+00 1.2549429849036155e+01 1.1531176206304458e+01 2.9036054722198394e+01 0 1 -1 +910 0 1 0.0000000000000000e+00 1.0510285638454276e+01 1.4071248915280554e+01 2.0349561584859810e+01 0 1 0 +968 0 1 0.0000000000000000e+00 9.6419893445651557e+00 1.4144432257933422e+01 2.3534358264022842e+01 0 0 0 +452 0 1 0.0000000000000000e+00 9.4368014763254173e+00 8.0809710574088296e+00 2.5734708780860501e+01 0 0 0 +988 0 1 0.0000000000000000e+00 3.1215715682029263e+01 2.9578292102593313e+01 2.8586313299130829e+01 -1 0 0 +632 0 1 0.0000000000000000e+00 1.2239374163532290e+01 2.0354339640207481e+01 2.5073706258414781e+01 -1 1 0 +89 0 1 0.0000000000000000e+00 7.3046246626539384e+00 8.6402003197071444e+00 1.9768150515731339e+01 0 0 0 +186 0 1 0.0000000000000000e+00 1.6155428024524497e+01 4.9269666773801086e+00 2.1561711873031161e+01 1 0 -1 +472 0 1 0.0000000000000000e+00 7.7710950933484568e+00 1.8670999543742425e+01 2.8605219460448726e+01 0 0 0 +224 0 1 0.0000000000000000e+00 1.6290147470549762e+01 6.2030496894778668e+00 1.4727753389562324e+00 -1 0 0 +328 0 1 0.0000000000000000e+00 2.5834660418548818e+01 8.8747727670150667e+00 2.2192696104633775e+01 -1 1 1 +614 0 1 0.0000000000000000e+00 1.8047348180807020e+01 6.5820935454427083e+00 3.3166236431107485e+01 0 1 0 +100 0 1 0.0000000000000000e+00 5.8130135546331365e+00 1.1976130030594145e+01 3.2421213990043526e+01 0 0 0 +245 0 1 0.0000000000000000e+00 1.4169330953546098e+01 1.3208344682957495e+01 2.6187025504850062e+01 0 1 0 +62 0 1 0.0000000000000000e+00 1.2558476963166989e+01 2.0524882896756935e+01 2.1357263964493441e+01 0 0 0 +647 0 1 0.0000000000000000e+00 4.7201847409952604e+00 3.1928730586781460e+00 2.5834689650635546e+01 0 1 -1 +343 0 1 0.0000000000000000e+00 5.5235850452270503e+00 8.4440140808996436e+00 2.9874892217490562e+01 0 0 0 +276 0 1 0.0000000000000000e+00 2.0219046796307506e+01 1.5274544751101272e+01 2.5748241701414621e+01 0 0 0 +893 0 1 0.0000000000000000e+00 1.4511311796329180e+01 1.6762457228743344e+00 2.0445909980410896e+01 0 1 0 +895 0 1 0.0000000000000000e+00 1.3197415747655500e+01 1.3760557916420879e+00 2.7662880310776551e+01 0 1 0 +69 0 1 0.0000000000000000e+00 1.6184033316551055e+01 3.0499800358434270e+00 2.6926583070922575e+01 1 0 0 +809 0 1 0.0000000000000000e+00 5.9977995040800494e+00 3.2224745362008463e+01 2.0426476127749321e+01 0 0 0 +836 0 1 0.0000000000000000e+00 1.1223528773522812e+01 5.7741705769530913e+00 3.4278984226513329e+00 0 1 1 +98 0 1 0.0000000000000000e+00 2.5202386683312135e+01 1.9350213943350958e+01 2.9161277349287815e+01 0 0 0 +588 0 1 0.0000000000000000e+00 2.5006573616935572e+01 1.3908306940534539e+01 3.2747270767943185e+01 1 0 0 +845 0 1 0.0000000000000000e+00 2.1822246257207439e+01 1.4241023696804245e+01 1.7694619572841347e+01 -1 0 0 +623 0 1 0.0000000000000000e+00 1.6048303173750369e+01 3.4254125291857392e+01 3.3890665062807223e+01 -1 0 0 +3511 0 1 0.0000000000000000e+00 2.2867745186483335e+00 2.4585150633814202e+01 2.5926954731563217e+01 1 -1 0 +294 0 1 0.0000000000000000e+00 8.2481468747565554e+00 3.0774690931225472e+00 2.5615977444686333e+01 0 0 0 +880 0 1 0.0000000000000000e+00 1.1592638575706015e+01 6.8681639742038163e+00 2.3288113017322868e+01 0 0 0 +1008 0 1 0.0000000000000000e+00 2.5709657914555944e+01 2.2668607297486211e+01 2.2315460821738064e+01 0 0 0 +750 0 1 0.0000000000000000e+00 1.1969569955759294e+01 1.7795801286936019e+01 2.2973662035569951e+01 0 1 0 +162 0 1 0.0000000000000000e+00 2.3729825800993765e+01 2.1465562070019157e+01 3.2389082145002995e+01 0 0 0 +4007 0 1 0.0000000000000000e+00 2.7206978151255252e+00 3.3818075325555249e+01 2.1982717919443402e+01 0 -1 0 +359 0 1 0.0000000000000000e+00 2.2283780086796583e+01 1.9316679479215413e+01 2.6505824911670540e+01 0 0 0 +246 0 1 0.0000000000000000e+00 1.5702184057945281e+00 5.7482049817561114e+00 2.1065172169019572e+01 0 0 0 +597 0 1 0.0000000000000000e+00 1.6345975583659374e+01 3.4587480287455326e+00 3.3940290159900059e+01 1 1 -1 +444 0 1 0.0000000000000000e+00 8.9765067841018329e+00 3.0483277472782984e+01 3.0453381211522583e+01 0 -1 0 +950 0 1 0.0000000000000000e+00 4.3447724872135547e+00 1.3788364251660598e+01 2.5360002320154983e+01 0 1 0 +165 0 1 0.0000000000000000e+00 1.6952611088018990e+01 1.3683055597150775e+01 1.9385788248753119e+01 0 1 -1 +203 0 1 0.0000000000000000e+00 2.3986019064345221e+01 1.7585823506920725e+01 3.1715375030775594e+01 0 0 -1 +822 0 1 0.0000000000000000e+00 1.0482259788085555e+01 3.8257172481119675e+00 2.2286284446022936e+01 1 1 0 +759 0 1 0.0000000000000000e+00 2.2154784506113696e+01 6.2838457887156203e+00 2.1953131990992773e+01 0 1 0 +108 0 1 0.0000000000000000e+00 9.6666095040997551e+00 9.7847820171921214e+00 2.2615834803117963e+01 -1 0 -1 +726 0 1 0.0000000000000000e+00 2.9676299939332836e+01 4.3875321498952617e+00 2.6099945951270531e+01 0 1 -1 +897 0 1 0.0000000000000000e+00 2.8453250801893208e+01 1.2475901513562045e+01 2.7533314406923523e+01 0 1 0 +79 0 1 0.0000000000000000e+00 1.0433812019602426e+01 6.7554864396430512e+00 6.6914369230862452e+00 0 0 0 +610 0 1 0.0000000000000000e+00 1.1115133095264104e+01 1.9406402262716257e-01 2.1136817755885058e+01 0 2 -1 +494 0 1 0.0000000000000000e+00 1.3961716763460917e+01 4.0620015800640834e+00 2.4239364868246579e+01 0 0 0 +407 0 1 0.0000000000000000e+00 7.5186724721600964e+00 5.2833128883558338e+00 2.8915309581212252e+01 1 0 0 +671 0 1 0.0000000000000000e+00 4.9196686777616696e+00 3.4503718335426967e+00 9.3195255778592834e-01 0 1 0 +307 0 1 0.0000000000000000e+00 2.3860921887545427e+01 9.3300530260933154e+00 3.4362501783253293e+01 0 0 0 +403 0 1 0.0000000000000000e+00 1.9964971057160476e+01 1.0316989693207844e+01 2.5918975512065689e+01 0 0 0 +212 0 1 0.0000000000000000e+00 2.5309748024357241e+01 1.3647088209441643e+01 1.2228178795771923e+01 0 0 -1 +675 0 1 0.0000000000000000e+00 1.3305795007424477e+01 1.7143073385252578e+01 2.7031955389731397e+01 0 0 0 +372 0 1 0.0000000000000000e+00 8.8434332028462013e+00 1.2806353233866632e+01 2.9508230817087814e+01 0 0 0 +354 0 1 0.0000000000000000e+00 7.8015778135672535e+00 6.0371440282251587e+00 2.2658537767191298e+01 1 0 0 +734 0 1 0.0000000000000000e+00 1.0835626167312828e+01 5.2717627207793232e+00 2.6492816280757886e+01 1 1 -1 +519 0 1 0.0000000000000000e+00 6.4155834328456436e+00 1.6251492584153517e+01 2.0009607688753306e+01 1 1 0 +120 0 1 0.0000000000000000e+00 2.8294614415551983e+01 2.3708877813791879e+01 7.6244537596426278e+00 0 1 0 +629 0 1 0.0000000000000000e+00 3.6243118060385910e+00 1.9026339823310209e+01 3.2918418623321244e+01 1 0 -1 +405 0 1 0.0000000000000000e+00 3.8490201862725213e+00 8.9867025031330741e+00 2.6788123495443980e+01 0 0 0 +322 0 1 0.0000000000000000e+00 2.9205656774183315e+00 1.7612383926465213e+01 1.9650076247794853e+01 0 0 0 +733 0 1 0.0000000000000000e+00 1.2718113112633940e+01 3.2256527065895476e+01 3.3036013457705877e+01 1 0 -1 +595 0 1 0.0000000000000000e+00 3.1271435463383430e+01 3.0360955653520083e+01 1.3477880295307447e+00 0 0 0 +501 0 1 0.0000000000000000e+00 3.2026498859018311e+01 9.0172185802649985e+00 1.4259349705532578e+01 0 0 1 +3495 0 1 0.0000000000000000e+00 3.2330036375804911e+00 2.0884025579939365e+01 2.4913097279977354e+01 0 -1 0 +90 0 1 0.0000000000000000e+00 2.7485745834920262e+01 2.9639443989583221e+01 2.2386759575544318e+01 0 -1 0 +791 0 1 0.0000000000000000e+00 3.0443238304386725e+01 4.1680074789555768e+00 3.0428131422423039e+01 -1 0 0 +763 0 1 0.0000000000000000e+00 2.6889268949341680e+01 2.6238349056379278e+01 3.2587011381623313e+01 0 1 -1 +313 0 1 0.0000000000000000e+00 3.1596141401226724e+01 1.6129237978909778e+01 3.3888797741205465e+01 0 0 0 +606 0 1 0.0000000000000000e+00 2.7737438186146171e+01 3.0655702060312873e+01 1.8955611955005089e+01 0 0 0 +916 0 1 0.0000000000000000e+00 2.2148089487867782e+01 3.1137711312176002e+01 2.7638561055287575e+01 -1 -1 0 +109 0 1 0.0000000000000000e+00 3.1093593136760060e+01 2.9825437953030537e+01 2.1321722614195792e+01 0 0 0 +516 0 1 0.0000000000000000e+00 2.5743273820022409e+01 2.3947686794153430e+01 4.2936877087132475e+00 -1 0 0 +268 0 1 0.0000000000000000e+00 2.5540869361212579e+01 9.9022472655981151e+00 2.7651060220406599e+01 -1 1 0 +308 0 1 0.0000000000000000e+00 2.9505701268528732e+01 7.1831302583661731e+00 3.1219176577845001e+01 0 0 0 +655 0 1 0.0000000000000000e+00 3.1274121845166665e+01 2.6299889754991458e+01 8.0373524939500687e+00 0 0 0 +549 0 1 0.0000000000000000e+00 3.2459488832372656e+01 2.3036614375783159e+01 1.3905253546332116e+01 0 1 0 +725 0 1 0.0000000000000000e+00 3.1170987676598692e+01 8.5794990568203318e+00 6.3618236617450741e+00 -1 1 0 +258 0 1 0.0000000000000000e+00 2.3861084041085352e+01 3.1476623459012966e+01 2.4373526751649759e+01 0 -1 -1 +3942 0 1 0.0000000000000000e+00 4.9183756932530382e+00 2.5443474490506105e+01 1.5514576966019746e+01 1 -1 0 +934 0 1 0.0000000000000000e+00 3.0801623068360662e+01 3.0784146810327112e+01 2.4649497105467141e+01 -1 0 0 +757 0 1 0.0000000000000000e+00 3.1646795760119282e+01 2.1257704423346762e+00 1.9827663685962122e+01 0 1 0 +864 0 1 0.0000000000000000e+00 2.2905759533175317e+01 1.1224211340202512e+01 5.2940089851899126e+00 0 1 1 +901 0 1 0.0000000000000000e+00 2.0934825826607778e+01 7.4989194120555602e+00 3.0434013477900557e+00 0 1 1 +715 0 1 0.0000000000000000e+00 2.8399185978947848e+01 2.8494090173968939e+01 1.4935115234203137e+01 0 0 0 +136 0 1 0.0000000000000000e+00 2.4544688496320465e+01 1.2153295889911988e+01 1.9306568285931720e+00 0 0 0 +628 0 1 0.0000000000000000e+00 2.5227041361345332e+01 2.9474375192045724e+01 1.6537962517398718e+01 0 0 0 +374 0 1 0.0000000000000000e+00 2.4781113636676995e+01 2.9437866325147805e+01 2.7607779392316719e+01 0 -1 0 +660 0 1 0.0000000000000000e+00 2.3046748011057181e+00 1.5395786046064348e+01 1.9466752619439724e+00 0 0 0 +582 0 1 0.0000000000000000e+00 2.7910650672166145e+01 1.7489169034348670e+01 3.2609487788877196e+01 0 0 0 +418 0 1 0.0000000000000000e+00 3.0691984117993105e+01 4.9074108848828404e+00 1.7617128120857647e+01 0 0 0 +810 0 1 0.0000000000000000e+00 3.0037005268845679e+01 2.6804222553950691e+01 3.0049815609949015e+01 -1 0 0 +624 0 1 0.0000000000000000e+00 2.8622124547778000e+01 3.1761701317722697e+01 1.5069160334865233e+01 -1 0 -1 +867 0 1 0.0000000000000000e+00 3.1128467431573654e+01 1.7953779458436166e+01 1.6797079286927254e+01 -1 0 1 +85 0 1 0.0000000000000000e+00 2.2990063454947673e+01 3.0699898817379694e+01 3.3140226557929587e+01 -1 0 -1 +439 0 1 0.0000000000000000e+00 3.4188765695030213e+01 3.0570866188891994e+01 2.2436340475968237e+01 0 -1 0 +147 0 1 0.0000000000000000e+00 2.8318925030281097e+01 1.8402951501369915e+00 2.9270289993843530e+01 -1 1 -1 +1022 0 1 0.0000000000000000e+00 3.0071723683272676e+01 2.6230541544340731e+01 2.2423916651425998e+01 0 0 0 +437 0 1 0.0000000000000000e+00 3.4065114025014594e+01 1.8740146550673774e+01 3.4863242928932009e-01 0 0 1 +240 0 1 0.0000000000000000e+00 2.4114228342868255e+01 1.6891789510666168e+01 1.9002508309187931e+01 -1 0 0 +1489 0 1 0.0000000000000000e+00 3.1106396040315637e+01 3.4079244445878878e+01 2.2506441736508890e+01 0 -1 0 +764 0 1 0.0000000000000000e+00 2.6643526292157418e+01 7.5270777073888970e+00 3.3486302273222975e+01 0 1 -1 +3548 0 1 0.0000000000000000e+00 1.4481892065068056e+00 3.1090776630293831e+01 4.3279723890755406e+00 1 -1 1 +806 0 1 0.0000000000000000e+00 2.7853473675612875e+01 3.2499197135097049e+01 2.3623372822434121e+01 -1 -1 0 +796 0 1 0.0000000000000000e+00 3.0932328282906088e+01 2.4759754062093577e+01 1.7062523468283416e+01 -1 0 0 +3985 0 1 0.0000000000000000e+00 2.4479353260339984e-01 1.8055103530774833e+01 3.4148145059225236e+01 0 0 0 +356 0 1 0.0000000000000000e+00 3.2877751730605695e+01 2.4348633576771057e+01 3.1042570191144431e+01 0 -1 0 +1810 0 1 0.0000000000000000e+00 3.4292113108590875e+01 1.8873363550713222e+01 1.4990712993394883e+01 0 0 0 +1015 0 1 0.0000000000000000e+00 3.1693953002238640e+01 6.8282452900904902e+00 2.8370941695684110e+01 -1 1 0 +397 0 1 0.0000000000000000e+00 2.8340108405460697e+01 3.3250313219819866e+01 3.0258131344759153e+01 0 -1 0 +697 0 1 0.0000000000000000e+00 2.5265471024191637e+01 1.0676322877929953e+00 2.3187840602850731e+01 0 1 0 +833 0 1 0.0000000000000000e+00 2.9415925250300816e+01 3.3434492930918502e+01 3.4253308007180060e+01 0 0 0 +599 0 1 0.0000000000000000e+00 2.9138246995557793e+01 2.3629753058767939e+01 3.1585292989260342e+01 0 0 0 +87 0 1 0.0000000000000000e+00 2.8143100747697886e+01 2.8073458854961572e+01 2.5718032052662132e+01 -1 0 0 +207 0 1 0.0000000000000000e+00 2.3149958355312247e+01 9.8196063607319068e+00 2.4498437322344287e+01 0 0 0 +428 0 1 0.0000000000000000e+00 2.5574333013903409e+01 3.2803889098589138e+01 2.1320412288955847e+01 0 0 0 +1778 0 1 0.0000000000000000e+00 2.8052854007867172e+01 9.8826981309442552e-01 9.4418395795457108e+00 0 1 0 +376 0 1 0.0000000000000000e+00 3.2084329105927026e+01 2.2625307267386021e+00 2.3954357453050260e+01 -1 1 0 +126 0 1 0.0000000000000000e+00 2.3296439263005684e+01 1.1172562635799617e+00 1.2698931597965679e+01 0 0 0 +200 0 1 0.0000000000000000e+00 3.3402772655013791e+01 2.3113824866445377e+01 2.4044094793889546e+01 0 0 -1 +532 0 1 0.0000000000000000e+00 2.7509120352247184e+01 2.7704926029587554e+01 6.9743332133550835e+00 -1 0 0 +209 0 1 0.0000000000000000e+00 3.2619811114528234e+00 1.6562117417508698e+01 2.3145796884488480e+01 0 0 0 +842 0 1 0.0000000000000000e+00 2.9373188334493236e+01 2.5046549606943884e+01 1.4229375613951515e+01 0 0 1 +370 0 1 0.0000000000000000e+00 2.6438016086770151e+01 2.1279907797043958e+01 1.3533002651097986e+01 -1 0 0 +951 0 1 0.0000000000000000e+00 2.8681974768155985e+01 1.9649386172559371e+01 2.8883465351122638e+01 0 0 0 +384 0 1 0.0000000000000000e+00 2.9189179932158048e+01 2.3456488190320290e+01 2.8178063861114854e+01 0 0 0 +158 0 1 0.0000000000000000e+00 2.4644385224241034e+01 1.8546779719403006e+01 2.1651614734989974e-01 0 -1 0 +228 0 1 0.0000000000000000e+00 2.0063708827651073e+01 2.2185530598416602e+01 3.3447365853754278e+01 1 0 0 +3150 0 1 0.0000000000000000e+00 2.6579179258933525e+00 1.0862659532520901e+01 2.3880464070110577e+01 1 0 -1 +1329 0 1 0.0000000000000000e+00 2.9000421267282313e+01 1.6646523077140145e+01 2.7271565033178305e+01 0 0 0 +870 0 1 0.0000000000000000e+00 3.0029222999845206e+01 6.4225247748289235e-02 2.6360016080743957e+01 0 0 0 +22 0 1 0.0000000000000000e+00 2.3311997379574201e+01 1.3159556738982163e+01 2.3818225529521229e+01 0 0 -1 +873 0 1 0.0000000000000000e+00 2.6771942947438262e+01 2.6065215944799991e+01 2.8459684449190771e+01 0 0 0 +7 0 1 0.0000000000000000e+00 2.6258857742812530e+01 2.6202926038418688e+01 2.1549635975164154e+01 0 0 0 +318 0 1 0.0000000000000000e+00 2.8425181438355260e+01 2.3659049860483833e+01 2.0547905970186381e+01 0 0 0 +400 0 1 0.0000000000000000e+00 3.0631383159342278e+01 3.0597381250422483e+01 3.1177499907545371e+01 -1 0 0 +3597 0 1 0.0000000000000000e+00 3.3571672492833224e+00 2.2636431181101131e+01 2.2014840342282522e+01 0 0 0 +559 0 1 0.0000000000000000e+00 3.3425400151235756e+01 2.7067790196210119e+01 2.3074630669887529e+01 -1 0 0 +465 0 1 0.0000000000000000e+00 3.3898921865440741e+01 2.7293872413011787e+01 2.9395717745443235e+01 0 -1 0 +378 0 1 0.0000000000000000e+00 1.7964571990812885e+01 1.7828392510485929e+00 1.5440431427464382e+01 -1 0 0 +3 0 1 0.0000000000000000e+00 2.4766820100944102e+01 7.4501488129075399e+00 1.5576312104065474e+01 -1 0 -1 +1170 0 1 0.0000000000000000e+00 3.1680188835649336e+01 1.2030045908918747e+00 9.6754294029705292e+00 0 0 0 +3535 0 1 0.0000000000000000e+00 8.6269995345501527e-01 3.0572522690807759e+01 1.3297455835347428e+01 1 -1 0 +172 0 1 0.0000000000000000e+00 3.2073119240124178e+01 1.6752414455248822e+01 2.5797998591384143e+01 0 0 -1 +524 0 1 0.0000000000000000e+00 3.2493126674310211e+01 2.7288842858576437e+01 1.4882609345327687e+01 -1 0 0 +1251 0 1 0.0000000000000000e+00 3.0006104215504394e+01 1.2723322368361249e+01 1.8772054570678986e+01 0 0 0 +204 0 1 0.0000000000000000e+00 3.1132547434000521e+01 3.0408321653939808e+01 1.6932807107229358e+01 -1 -1 0 +877 0 1 0.0000000000000000e+00 2.6694317773002009e+01 1.1114470685945925e+01 2.4280055167922022e+01 0 1 1 +1313 0 1 0.0000000000000000e+00 3.2400574069925078e+01 1.5355232155505403e+01 1.8656097552314101e+01 0 0 0 +686 0 1 0.0000000000000000e+00 3.1479223487232090e+01 2.0146484785758279e+01 2.6063803284409452e+01 0 0 0 +306 0 1 0.0000000000000000e+00 3.0284770174967331e+01 2.3773123266861344e+01 2.5055824016452377e+01 0 -1 0 +432 0 1 0.0000000000000000e+00 2.8797750687612094e+01 1.4460089439720049e+01 2.4585884203947813e+01 0 0 0 +423 0 1 0.0000000000000000e+00 3.2964057006120264e+01 1.5434304232730085e+01 1.5622207406553066e+01 -1 -1 0 +1003 0 1 0.0000000000000000e+00 3.0805969306770184e+01 7.9263860600522413e+00 2.9461731869914067e+00 0 1 1 +3159 0 1 0.0000000000000000e+00 5.9137257304138915e+00 2.3646326295533481e+01 2.5131465422494138e+01 0 0 0 +966 0 1 0.0000000000000000e+00 3.2525217589111008e+01 1.2668394935117835e+01 2.1973624397255211e+01 0 0 1 +88 0 1 0.0000000000000000e+00 3.2770921211559518e+01 2.8334180918469752e+01 3.2833532634453150e+01 -1 -1 -1 +1154 0 1 0.0000000000000000e+00 3.1742240463915621e+01 8.4544779519515210e+00 1.7926743719215249e+01 0 0 0 +462 0 1 0.0000000000000000e+00 2.4631259753101560e+01 3.1684654612958916e+01 2.9928293527161845e+01 0 -1 0 +630 0 1 0.0000000000000000e+00 2.6533318832095855e+01 4.3252809983031654e-01 1.1998462167110146e+01 0 0 0 +754 0 1 0.0000000000000000e+00 2.6394883571017065e+01 2.7418747290936643e+00 2.5950169201585386e+01 0 1 -1 +51 0 1 0.0000000000000000e+00 3.2314370624877526e+01 2.4640094180278025e+00 2.8155160979672846e+01 -1 1 -1 +878 0 1 0.0000000000000000e+00 2.9495450498693760e+01 5.4096562194147815e+00 3.4378554163549502e+01 0 1 0 +1762 0 1 0.0000000000000000e+00 3.2682623820441741e+01 2.7938593609760304e+01 5.2724657527721437e+00 0 0 0 +566 0 1 0.0000000000000000e+00 2.9163539716107646e+01 2.0802327591089483e+01 4.2184415148062442e+00 -1 0 0 +449 0 1 0.0000000000000000e+00 2.8282903491212124e+01 1.1028478362015740e+01 1.2695225834385526e+00 -1 0 1 +4 0 1 0.0000000000000000e+00 2.5706425158762762e+01 2.4978841904735223e+01 1.4502886877465317e+01 0 -1 0 +850 0 1 0.0000000000000000e+00 2.8925913139257140e+01 8.7159352721705741e+00 2.6949032293969672e+01 -1 0 0 +772 0 1 0.0000000000000000e+00 2.4038962435956453e+01 1.2328501994992184e+01 2.0129627218351406e+01 -1 1 1 +683 0 1 0.0000000000000000e+00 2.0991893985144685e+01 2.2101289696798165e+01 2.4680704629683159e+01 -1 0 0 +954 0 1 0.0000000000000000e+00 3.0178568951245847e+01 9.0494742856174106e+00 3.3953920122583220e+01 -1 0 0 +489 0 1 0.0000000000000000e+00 2.6062554999076568e+01 1.3330303942902882e+01 1.6410144475569357e+01 0 0 0 +269 0 1 0.0000000000000000e+00 3.1053170062798724e+01 1.1219468232263431e+01 4.8102844234829965e+00 -1 0 0 +902 0 1 0.0000000000000000e+00 2.1143739059224803e+01 2.0263276496517424e+01 4.9556448976581438e+00 -1 0 0 +475 0 1 0.0000000000000000e+00 2.8366000175218918e+01 3.1883017755334823e+01 7.6896902163756806e+00 0 -1 0 +300 0 1 0.0000000000000000e+00 3.1027930718155005e+01 9.6042085682069160e+00 2.1267554222718818e+01 -1 0 0 +236 0 1 0.0000000000000000e+00 2.5973948427015809e+01 9.7405132950452042e+00 1.7688610864776368e+01 -1 0 0 +987 0 1 0.0000000000000000e+00 2.2928796925771891e+01 3.1238758066300489e+00 2.0881198917290174e+01 0 1 0 +323 0 1 0.0000000000000000e+00 2.4449838240201085e+01 5.7378686372551568e-01 2.9722151804983742e+01 0 0 0 +293 0 1 0.0000000000000000e+00 2.8998975205376244e+01 7.5151714657248014e+00 1.5198131383533644e+01 -1 0 0 +940 0 1 0.0000000000000000e+00 2.8727264561532959e+01 3.3565724007815476e+01 2.0607337409977671e+01 0 0 0 +291 0 1 0.0000000000000000e+00 4.4160152052708002e-01 8.8323796449466681e+00 2.0359504853826891e+01 1 0 0 +673 0 1 0.0000000000000000e+00 2.8981951558238492e+01 1.3346802680965304e+01 1.2593208502856998e+01 0 0 0 +104 0 1 0.0000000000000000e+00 2.1237460097745718e+01 1.7282614557972870e+01 2.3353867697911834e+00 -1 0 0 +447 0 1 0.0000000000000000e+00 3.2625995011055828e+01 1.6048334407606475e+01 2.2281254794558556e+01 0 -1 0 +219 0 1 0.0000000000000000e+00 2.8895980636163106e+01 7.4595419456144774e-01 1.4907603790877348e+01 0 0 0 +206 0 1 0.0000000000000000e+00 2.6247718344259106e+01 1.5252111330292617e+01 2.2021856492591613e+01 -1 0 0 +708 0 1 0.0000000000000000e+00 2.1713058392095931e+01 2.0651148915000924e+01 2.9741230553022877e+01 0 0 -1 +3615 0 1 0.0000000000000000e+00 4.7552752805274201e-01 3.4283591647744615e+01 2.4092715023587035e+00 1 0 0 +789 0 1 0.0000000000000000e+00 1.9667111027738141e+01 1.5976384467103369e+01 1.6091776110934443e+01 0 0 0 +3220 0 1 0.0000000000000000e+00 1.8072888844843837e+00 2.6126630192580929e+00 4.6085914063595919e+00 1 0 0 +295 0 1 0.0000000000000000e+00 2.3422827522711525e+01 1.6562361842607185e+01 2.3681224909149694e+01 0 0 0 +740 0 1 0.0000000000000000e+00 2.7526168868820335e+01 1.7956651184402244e+01 1.4982372013277701e+01 0 0 -1 +672 0 1 0.0000000000000000e+00 2.4201446305797489e+01 2.0928192667788739e+01 1.9467262761358281e+01 0 0 0 +991 0 1 0.0000000000000000e+00 3.2503162019051402e+01 1.9709321379408863e+01 2.2538596846629989e+01 -1 1 0 +319 0 1 0.0000000000000000e+00 2.4951651605061990e+01 6.2101870868903486e+00 2.4717312591175403e+01 0 0 0 +962 0 1 0.0000000000000000e+00 3.1405164412954210e+01 2.5672760312651331e+01 3.3976848925685395e+01 0 0 0 +932 0 1 0.0000000000000000e+00 2.6625326184216661e+01 1.1208353931703078e+01 3.3011769766790366e+01 0 1 0 +911 0 1 0.0000000000000000e+00 2.8136088156967606e+01 7.8561804280662733e+00 1.9918054968258136e+01 0 0 0 +3829 0 1 0.0000000000000000e+00 4.4735081594898329e-01 3.1283911927219393e+01 2.0077065613878421e+01 1 0 0 +724 0 1 0.0000000000000000e+00 2.1964606833940248e+01 1.1854620698649615e+01 2.8128103416921771e+01 0 0 -1 +558 0 1 0.0000000000000000e+00 2.9200584057013032e+01 1.9467052358941633e+01 1.1169092380405734e+01 0 0 0 +688 0 1 0.0000000000000000e+00 3.3281062838440107e+01 3.2406752919768017e+01 3.2567418049720395e+01 0 0 0 +743 0 1 0.0000000000000000e+00 2.8744947285923811e+01 1.1428134870908430e+01 7.5512219738205228e+00 -1 0 0 +957 0 1 0.0000000000000000e+00 2.2583179270548875e+01 2.5354990300850314e+01 2.1902896949296897e+00 0 0 0 +514 0 1 0.0000000000000000e+00 3.0007168329801949e+01 2.9718953147015220e+01 5.5095960725947721e+00 0 0 0 +11 0 1 0.0000000000000000e+00 3.1844306077777411e+01 2.3928723279542929e+01 2.0780318561124325e+01 0 0 -1 +332 0 1 0.0000000000000000e+00 2.5167749667396361e+01 2.8461952143987215e+01 1.3022916346799741e+01 -1 0 0 +415 0 1 0.0000000000000000e+00 3.1715001990657669e+01 1.6367319742410860e+01 9.5397563473784821e+00 0 0 1 +68 0 1 0.0000000000000000e+00 3.2571903256948225e+01 2.6776036934269406e+01 1.9339958328300256e+01 0 -1 0 +879 0 1 0.0000000000000000e+00 2.8337806403650415e+01 2.7219790562973181e+01 1.0500279609313054e+01 0 0 -1 +699 0 1 0.0000000000000000e+00 3.1571223908552422e+01 1.3623176451009545e+01 2.5312855532122347e+00 -1 1 0 +906 0 1 0.0000000000000000e+00 2.7985062360253586e+01 1.4216888156123499e+01 9.5040803892088306e+00 0 0 0 +1713 0 1 0.0000000000000000e+00 2.4348067443465869e+01 3.0904140865607083e+01 2.6585252608961056e+00 0 0 0 +3198 0 1 0.0000000000000000e+00 1.0286493030725603e-01 3.0221871789407015e+01 1.6796501809591359e+01 1 -1 0 +1283 0 1 0.0000000000000000e+00 3.4223032297884238e+01 2.9934706646297844e+01 1.3109036866728777e+01 0 -1 0 +1746 0 1 0.0000000000000000e+00 2.6330733984054074e+01 1.8827324591406896e+01 2.1870918952974058e+01 0 0 0 +183 0 1 0.0000000000000000e+00 3.0459925683466366e+01 1.6520762407462414e+01 1.2883481223720105e+01 0 0 0 +555 0 1 0.0000000000000000e+00 2.9061391748891356e+01 9.8197941880402861e-01 6.1838610372409288e+00 0 0 0 +140 0 1 0.0000000000000000e+00 2.9307290141205996e+01 2.1021024407576991e+01 1.1729250758922611e+00 0 0 0 +3133 0 1 0.0000000000000000e+00 5.0491156171072396e+00 2.7471548218483580e+01 7.6336854446934792e+00 1 -1 0 +748 0 1 0.0000000000000000e+00 3.1568192898271125e+01 1.1829249403550225e+01 3.4022278779415991e+01 0 1 -1 +459 0 1 0.0000000000000000e+00 2.8956068681454116e+01 2.4866762512118363e+01 4.4916565155520534e+00 0 0 0 +816 0 1 0.0000000000000000e+00 2.7528542939259751e+01 1.5556001814996602e+01 1.8649078579421793e+01 0 0 0 +679 0 1 0.0000000000000000e+00 2.8583221770086045e+01 2.5013409570290781e+00 1.7529467880663002e+01 -1 1 1 +208 0 1 0.0000000000000000e+00 2.9057965413668025e+01 9.8169007874410870e+00 1.1968182172728335e+01 -1 0 0 +1250 0 1 0.0000000000000000e+00 3.3040846381132752e+01 6.2945883502817939e+00 8.5024008276693408e+00 0 0 0 +542 0 1 0.0000000000000000e+00 3.2254663605614574e+01 2.0401593181747934e+01 8.5481646102995743e+00 -1 0 0 +5 0 1 0.0000000000000000e+00 2.4770710495887332e+01 1.2851215134068221e+01 8.7368285334447666e+00 0 0 0 +986 0 1 0.0000000000000000e+00 2.4444393921639961e+01 8.5925410524792181e+00 3.2239439391169644e+00 0 1 0 +1266 0 1 0.0000000000000000e+00 2.9131968038026010e+01 1.4819186604807983e+01 1.5816445390242301e+01 0 0 0 +321 0 1 0.0000000000000000e+00 2.7097008635150466e+01 7.6812552283920725e+00 2.2553856854551055e+00 0 0 1 +984 0 1 0.0000000000000000e+00 2.9074317186328823e+01 1.1149176823917792e+01 1.6305255406464720e+01 -1 1 0 +1361 0 1 0.0000000000000000e+00 2.7756632450973111e+01 1.1989695832001626e+01 2.1063695079342160e+01 0 0 0 +27 0 1 0.0000000000000000e+00 2.8123090478801522e+01 2.4594888169597223e+01 9.7938133521135851e-01 -1 -1 0 +493 0 1 0.0000000000000000e+00 3.1160138948413895e+01 1.7762927862814097e+00 1.2952887799682246e+01 0 0 1 +197 0 1 0.0000000000000000e+00 2.2829962956808295e+01 3.2719829417431399e+01 8.5220352648940327e+00 -1 -1 0 +425 0 1 0.0000000000000000e+00 3.2885111993341880e+01 2.1050559210002106e+01 3.4068637026778297e+00 -1 0 0 +840 0 1 0.0000000000000000e+00 3.0561805078251012e+01 5.5901208827551558e+00 2.1189739270633627e+01 0 1 0 +283 0 1 0.0000000000000000e+00 2.8741212992414845e+01 2.1916054537253862e+00 3.3025176003161697e+01 -1 0 0 +967 0 1 0.0000000000000000e+00 3.3235665091821247e+01 1.9113947678758830e+01 2.8831774900316976e+01 -1 0 -1 +882 0 1 0.0000000000000000e+00 2.2859101790836711e+01 4.5890803290409172e+00 1.1099589226270782e+01 0 1 0 +56 0 1 0.0000000000000000e+00 2.7928060207005529e+01 3.8225341340876069e+00 1.1159114920684253e+01 0 0 0 +360 0 1 0.0000000000000000e+00 2.4040067427560992e+01 1.9124650950355193e+01 3.8879129487105790e+00 -1 0 1 +3219 0 1 0.0000000000000000e+00 1.6488713841680853e+00 3.1033945422418309e+01 2.3750285901295534e+01 0 0 -1 +515 0 1 0.0000000000000000e+00 3.0741813064256224e+01 4.8367086920589424e+00 5.3604926185527360e+00 -1 1 0 +1362 0 1 0.0000000000000000e+00 3.2340422305546454e+01 9.9029496257441600e+00 2.7461957150070752e+01 0 0 0 +317 0 1 0.0000000000000000e+00 2.5600489289249122e+01 3.4233913920315352e+01 6.9612780288813392e+00 0 -1 1 +42 0 1 0.0000000000000000e+00 2.6157597469670030e+01 2.7619060782352559e+01 3.5426713779707946e+00 0 -1 0 +578 0 1 0.0000000000000000e+00 2.3628163889023291e+01 5.8740713289384034e+00 6.3723510714506504e-01 0 1 0 +928 0 1 0.0000000000000000e+00 3.4117334242401974e+01 9.6400614927780524e+00 7.3950221524727811e+00 0 0 1 +131 0 1 0.0000000000000000e+00 2.6353970983997986e+01 3.1500725303710780e+01 1.0189975211896456e+01 0 0 0 +3084 0 1 0.0000000000000000e+00 2.9818800114341295e+00 1.0449445784399465e+01 1.2822095056585084e+01 0 0 0 +798 0 1 0.0000000000000000e+00 2.5199350328122186e+01 2.8219006600592600e+01 9.2116333093831546e+00 -1 -1 0 +152 0 1 0.0000000000000000e+00 3.2123941009159097e+01 1.2948055138116256e+01 1.2872315926241393e+01 -1 0 0 +342 0 1 0.0000000000000000e+00 2.8722699436423561e+01 1.4096627294280440e+01 3.4247884416490088e+01 -1 0 0 +654 0 1 0.0000000000000000e+00 3.0629680978927503e+01 5.0016545145546178e+00 9.2251919715466233e+00 0 1 0 +722 0 1 0.0000000000000000e+00 2.9444057221854987e+01 2.2752705199103659e+01 1.0793731701568161e+01 0 0 0 +1249 0 1 0.0000000000000000e+00 2.8933096614763102e+01 8.0887329837800372e+00 9.1519018452755585e+00 0 0 0 +617 0 1 0.0000000000000000e+00 1.0014342672705698e+00 3.2962062802945309e+00 8.4369869065623533e+00 1 1 1 +76 0 1 0.0000000000000000e+00 2.7689063179113145e+01 3.0498956497055122e+01 2.0380672871872032e+00 0 -1 0 +694 0 1 0.0000000000000000e+00 1.5138944542740063e+00 1.5434281090230879e+01 4.8419390148142067e+00 0 0 0 +96 0 1 0.0000000000000000e+00 3.2809215438784406e+01 3.2645282089162372e+01 1.0482816077936471e+01 0 -1 0 +227 0 1 0.0000000000000000e+00 2.7604561364534781e+01 2.2518419786797438e+01 1.6379288417082591e+01 0 0 -1 +329 0 1 0.0000000000000000e+00 2.6752180499311891e+01 1.6868015494177911e+01 1.1889780932507511e+01 0 -1 0 +1186 0 1 0.0000000000000000e+00 3.0952890825859225e+01 6.4501515736175463e+00 1.2261968193953381e+01 0 0 0 +476 0 1 0.0000000000000000e+00 3.2700555921271899e+01 2.0446819320027361e+00 1.6312151213537955e+01 0 0 1 +279 0 1 0.0000000000000000e+00 2.6112224895996022e+01 1.0468406242251540e+01 1.0012091754004523e+01 0 0 0 +575 0 1 0.0000000000000000e+00 2.7241905940067838e+01 5.5039363705768958e+00 1.7799531866077380e+01 0 1 0 +1005 0 1 0.0000000000000000e+00 2.4518397389694830e+01 1.6529090625580832e+01 1.5222466304568925e+01 0 1 0 +115 0 1 0.0000000000000000e+00 2.9609725924252405e+01 1.4630713437781955e+01 6.1715892295764876e+00 0 0 0 +709 0 1 0.0000000000000000e+00 3.0487638339622734e+01 2.0750045050235322e+01 1.4525933301725651e+01 1 -1 0 +590 0 1 0.0000000000000000e+00 2.6990330450376590e+01 7.0224713666999046e+00 1.2303298997305721e+01 0 1 1 +1426 0 1 0.0000000000000000e+00 3.1212442866284970e+01 1.6710243918511949e+01 2.9983938335954594e+01 0 0 0 +488 0 1 0.0000000000000000e+00 2.7755711246857548e+01 4.6173261482876899e+00 3.0835179665603514e+00 -1 0 1 +625 0 1 0.0000000000000000e+00 2.6567361876708830e+01 3.0990216315184998e+01 3.3198474503103171e+01 0 0 -1 +213 0 1 0.0000000000000000e+00 2.6195858180885121e+01 2.0985164287086288e+01 1.8532918636024449e+00 0 0 0 +735 0 1 0.0000000000000000e+00 3.1839000782528029e+01 2.3805051523567620e+01 2.5064073298044960e+00 0 0 0 +265 0 1 0.0000000000000000e+00 3.4316526265394160e+01 4.3785414233692119e+00 2.1283079691165508e+01 -1 0 0 +391 0 1 0.0000000000000000e+00 2.9528804655642759e+01 1.7845260529696034e+01 2.3606498959629395e+01 -1 0 0 +999 0 1 0.0000000000000000e+00 1.7258495272227787e+01 3.3743124151718074e-01 9.4427965069403648e+00 0 1 1 +598 0 1 0.0000000000000000e+00 2.6146847005008919e+01 1.8553387352635621e+01 2.6093495477694812e+01 0 0 0 +453 0 1 0.0000000000000000e+00 2.6285862252769309e+01 1.7370799641594967e+01 8.0738450229786434e+00 0 -1 1 +287 0 1 0.0000000000000000e+00 2.3955793491619197e+01 8.4153791570402880e+00 1.2062638510609959e+01 0 0 0 +119 0 1 0.0000000000000000e+00 3.1759141429475477e+01 1.3049596826999851e+01 9.5388823817522965e+00 0 -1 1 +538 0 1 0.0000000000000000e+00 3.2123647881338712e+01 2.3702628927586563e+01 5.9946337461132639e+00 0 0 0 +554 0 1 0.0000000000000000e+00 4.8572630371995347e+00 1.9270361024346119e+01 2.2054035755020305e+01 0 0 -1 +1427 0 1 0.0000000000000000e+00 3.1784044242569831e+01 1.3837915966425641e+01 2.7457773006862425e+01 0 0 0 +4060 0 1 0.0000000000000000e+00 6.8636025919143844e+00 1.5585168731725780e+01 2.7620313112166627e+01 0 0 0 +636 0 1 0.0000000000000000e+00 1.1466823521668699e+00 7.1553037389951450e+00 1.1708526454393489e+01 0 0 0 +714 0 1 0.0000000000000000e+00 3.2969846979550347e+01 2.2010681932417466e+01 3.3711858286595636e+01 0 0 -1 +1377 0 1 0.0000000000000000e+00 2.8697657533006375e+01 7.5079096271105961e+00 2.3898715035640361e+01 0 0 0 +125 0 1 0.0000000000000000e+00 2.4408852600803339e+00 5.8222863321173683e+00 2.6546345198393219e+01 1 0 0 +431 0 1 0.0000000000000000e+00 3.3894937558670421e+01 2.2203641687684968e+01 1.7079352751223830e+01 -1 0 0 +40 0 1 0.0000000000000000e+00 3.3063688805541950e+01 1.4820307266637231e+01 6.2755146249803335e+00 -1 0 0 +885 0 1 0.0000000000000000e+00 2.5594102641429211e+00 2.2136561537391440e+01 3.4537386366290629e-01 1 0 1 +669 0 1 0.0000000000000000e+00 7.7148219699651865e-01 1.1899932214044226e+01 3.9791447063605885e+00 0 0 0 +468 0 1 0.0000000000000000e+00 3.3177977175656352e+01 1.1926087531466500e+01 1.8930968502926930e+01 0 0 0 +47 0 1 0.0000000000000000e+00 3.2485333837827326e+01 7.4135261080374262e+00 2.4241166266197151e+01 -1 0 -1 +650 0 1 0.0000000000000000e+00 3.2815525520876797e+01 9.1291216004280837e+00 3.1063546810660473e+01 -1 1 -1 +211 0 1 0.0000000000000000e+00 3.3686741421718168e+01 3.0988411925570819e+01 6.8508831222342321e+00 0 -1 1 +1986 0 1 0.0000000000000000e+00 3.4144313852228869e+01 1.8971297258482625e+01 3.1813230235600589e+01 0 0 0 +386 0 1 0.0000000000000000e+00 3.4158996820100143e+01 1.2060898927636098e+01 3.0645871929001359e+01 0 0 0 +728 0 1 0.0000000000000000e+00 3.4368456521144374e+01 8.7011764865944539e+00 4.0644939673457117e+00 0 1 0 +1458 0 1 0.0000000000000000e+00 3.4119335717433827e+01 1.3466462893836539e+01 2.4945928893084819e+01 0 0 0 +412 0 1 0.0000000000000000e+00 3.3841731533948895e+01 1.5699541376228476e+01 3.1148765393191669e+00 0 -1 1 +751 0 1 0.0000000000000000e+00 2.8886317121076810e-01 7.0874363323366039e+00 2.3648781159162979e+01 0 1 0 +1714 0 1 0.0000000000000000e+00 3.4144766047346337e+01 2.9768895881309548e-01 1.3211376740031838e+01 0 1 0 +166 0 1 0.0000000000000000e+00 3.3958308301228698e+01 8.6489592086370752e+00 4.6217981020974991e-01 -1 0 0 +67 0 1 0.0000000000000000e+00 3.3996559793418925e+01 3.4906309827651527e+00 1.2009325376665609e+01 0 0 0 +692 0 1 0.0000000000000000e+00 3.4388460739720692e+01 5.6502233768521553e+00 5.1900618598281270e+00 1 1 0 +151 0 1 0.0000000000000000e+00 3.4052188565923679e+01 2.9418531327640430e+01 2.6279246250972044e+01 0 0 0 +1124 0 1 0.0000000000000000e+00 3.3860109692947560e+01 2.7898452985447144e+00 7.8187890654368202e+00 0 0 0 +1315 0 1 0.0000000000000000e+00 3.4555185248418056e+01 8.8202119220806914e+00 2.0523439382589761e+01 0 0 0 +935 0 1 0.0000000000000000e+00 3.4322675413118603e+01 3.4521398637190437e+01 2.1307955158533836e+01 -1 -1 0 +1105 0 1 0.0000000000000000e+00 3.3340355066696517e+01 3.3424149445980788e+01 2.4997860448670323e+01 0 -1 -1 +446 0 1 0.0000000000000000e+00 4.4234838485460848e-01 1.5523483802875212e+01 1.8141071441826885e+01 0 0 0 +3868 0 1 0.0000000000000000e+00 6.1295241062261831e-03 1.8318573111060992e+01 2.4541688795840120e+01 0 0 0 +3276 0 1 0.0000000000000000e+00 2.6790846619250774e-01 2.4658015190974805e+01 3.1837296107738993e+01 0 -1 0 +434 0 1 0.0000000000000000e+00 2.9970291866072207e-01 3.1010704112934064e+01 1.0865252552657594e+00 1 -1 0 +1443 0 1 0.0000000000000000e+00 3.4572459814797050e+01 1.0279997902305103e+01 2.3984753387830828e+01 0 0 0 +3922 0 1 0.0000000000000000e+00 5.7854907741811701e-01 8.9160310957376279e+00 3.3496476834349167e+01 0 0 0 +926 0 1 0.0000000000000000e+00 2.4163695622838813e-01 2.6219069374104254e-01 2.4021302091491808e+01 0 1 0 +298 0 1 0.0000000000000000e+00 1.4015248946752212e-01 1.4648094860215540e+01 3.4098887990076499e+01 0 0 -1 +3448 0 1 0.0000000000000000e+00 2.0045687792685563e-02 3.2952075607699364e+01 2.7274767434028927e+01 0 0 0 +1043 0 1 0.0000000000000000e+00 3.9532628266017674e+01 8.5134434629144042e+00 3.3399151184954960e+01 0 0 -1 +1033 0 1 0.0000000000000000e+00 5.1400228709459782e+01 3.4006407391665050e+01 3.3628910306589880e+01 0 -1 -1 +1927 0 1 0.0000000000000000e+00 4.7812150462992108e+01 1.6943499878189865e+01 2.5791267653791483e+01 0 0 0 +1799 0 1 0.0000000000000000e+00 4.7395442243574941e+01 1.8296172070896475e+01 1.6835603085744584e+01 0 0 0 +1029 0 1 0.0000000000000000e+00 4.1226282886756486e+01 3.3421480937639934e+01 4.6065966524528412e-01 0 -1 0 +1511 0 1 0.0000000000000000e+00 5.0318123866056062e+01 1.1173372568912860e+01 2.7515648711118171e+01 0 0 0 +1510 0 1 0.0000000000000000e+00 4.5373541084094839e+01 1.0634746305979061e+01 3.1737820089964369e+01 0 0 0 +1509 0 1 0.0000000000000000e+00 4.2687447687352673e+01 9.2002133159324266e+00 2.9250638798674281e+01 0 0 0 +1508 0 1 0.0000000000000000e+00 4.1059818585039203e+01 1.4465063306093180e+01 2.8191322712542789e+01 0 0 0 +1507 0 1 0.0000000000000000e+00 3.8653107525210061e+01 3.6981652947455799e+00 2.4938039242244308e+01 0 0 0 +1506 0 1 0.0000000000000000e+00 3.8235634456559396e+01 7.9592435133147053e+00 2.5585260111971149e+01 0 0 0 +1496 0 1 0.0000000000000000e+00 4.9831836061640843e+01 6.5757231741318458e+00 3.1544427211512776e+01 0 0 0 +1495 0 1 0.0000000000000000e+00 4.7583154437139505e+01 4.9924560947817049e+00 2.9341757774629006e+01 0 0 0 +1494 0 1 0.0000000000000000e+00 4.4158209833587200e+01 6.8617025435879944e+00 3.1252969899857852e+01 0 0 0 +1493 0 1 0.0000000000000000e+00 4.3937834985382082e+01 4.1926982614160133e+00 2.9080134561337367e+01 0 0 0 +1492 0 1 0.0000000000000000e+00 4.0999233944870738e+01 2.1243140777861771e+00 2.7514274650952810e+01 0 0 0 +1923 0 1 0.0000000000000000e+00 3.7988389910575471e+01 1.4270360610575583e+01 1.9032525522919791e+01 0 0 0 +1425 0 1 0.0000000000000000e+00 3.5357346474856264e+01 8.2575895545298170e+00 2.8305911961985572e+01 0 0 0 +1842 0 1 0.0000000000000000e+00 3.7397969147210510e+01 2.7786964799459248e+01 1.7064766845862714e+01 0 0 0 +1522 0 1 0.0000000000000000e+00 3.7468117649435001e+01 1.8575029293137266e+01 3.2716175164359498e+01 0 0 0 +148 0 1 0.0000000000000000e+00 3.6870465416913127e+01 2.1859159912023105e+00 1.4270680998918035e+01 0 0 0 +1797 0 1 0.0000000000000000e+00 4.2627685717207022e+01 1.7754737655263760e+01 1.5953537430574476e+01 0 0 0 +1480 0 1 0.0000000000000000e+00 4.9037284083723691e+01 3.0164199084175536e+00 3.2156989802090813e+01 0 0 0 +1524 0 1 0.0000000000000000e+00 4.1496075145868076e+01 1.8856568930340678e+01 3.2817475034267147e+01 0 0 0 +1478 0 1 0.0000000000000000e+00 4.7958543012452793e+01 1.5469818896103230e-01 2.9982503188288632e+01 0 0 0 +1525 0 1 0.0000000000000000e+00 4.0802630114892708e+01 1.1347450417160447e+01 2.7755271406879899e+01 0 0 0 +1476 0 1 0.0000000000000000e+00 4.4627308293242180e+01 3.2331437001048322e+01 2.7036332886978343e+01 0 -1 0 +929 0 1 0.0000000000000000e+00 3.4786442654551550e+01 3.0180225415259269e+01 3.0221022014316056e+01 0 0 0 +1465 0 1 0.0000000000000000e+00 5.2914483568319461e+01 1.2860701619298478e+01 2.6178168678426552e+01 0 0 0 +1464 0 1 0.0000000000000000e+00 5.0427870511547439e+01 1.5014156943716701e+01 2.7707667760204483e+01 0 0 0 +1463 0 1 0.0000000000000000e+00 4.5518140518738008e+01 1.5060540655664504e+01 2.4199593398246261e+01 0 0 0 +1462 0 1 0.0000000000000000e+00 4.8394933278039161e+01 1.3486686647969201e+01 2.9792301567987050e+01 0 0 0 +1461 0 1 0.0000000000000000e+00 4.3435790078302453e+01 1.2556373484243796e+01 2.5440291219573567e+01 0 0 0 +1460 0 1 0.0000000000000000e+00 3.9721320965594444e+01 1.7151182223781536e+01 2.9854662871989326e+01 0 0 0 +1459 0 1 0.0000000000000000e+00 3.8473568957019651e+01 9.0760496036403815e+00 2.2308596820426523e+01 0 0 0 +49 0 1 0.0000000000000000e+00 3.6400054749103724e+01 3.1729814677801837e+01 1.0523551155918440e+01 0 -1 0 +1449 0 1 0.0000000000000000e+00 5.2526805154890020e+01 8.8463438522734830e+00 2.5790312620121618e+01 0 0 0 +1448 0 1 0.0000000000000000e+00 4.7420355109101060e+01 1.3060573911491463e+01 2.6155686474793711e+01 0 0 0 +1447 0 1 0.0000000000000000e+00 4.7732576395134174e+01 9.1067559761000574e+00 2.5919719812670703e+01 0 0 0 +1446 0 1 0.0000000000000000e+00 4.5109372501971045e+01 1.0676510606331357e+01 2.7942556428977223e+01 0 0 0 +1445 0 1 0.0000000000000000e+00 4.1274645881126098e+01 6.0805132786319387e+00 2.6682581316808442e+01 0 0 0 +1444 0 1 0.0000000000000000e+00 4.0692051207061546e+01 6.1908975271457392e+00 2.2982378813214225e+01 0 0 0 +244 0 1 0.0000000000000000e+00 3.4628218149578096e+01 2.4941758874170670e+01 3.8571288039314182e+00 0 -1 0 +6 0 1 0.0000000000000000e+00 3.5192410070823740e+01 1.0100522414804288e+01 1.3248650310103180e+01 -1 0 -1 +1433 0 1 0.0000000000000000e+00 5.1970337803935877e+01 4.8988943278060999e+00 2.5139043285859490e+01 0 0 0 +1432 0 1 0.0000000000000000e+00 5.0073102518488511e+01 7.1804989376627493e+00 2.7409798615827164e+01 0 0 0 +1431 0 1 0.0000000000000000e+00 4.4936107923228967e+01 7.3367087882807409e+00 2.3881733932536367e+01 0 0 0 +1430 0 1 0.0000000000000000e+00 4.7721808526677542e+01 8.2595988034387968e+00 2.9623830810887586e+01 0 0 0 +1429 0 1 0.0000000000000000e+00 4.5080633602575105e+01 6.7602692415448855e+00 2.7320723194831601e+01 0 0 0 +338 0 1 0.0000000000000000e+00 3.6602274360544847e+01 1.5066152177919767e+01 5.5341367122520007e+00 0 0 1 +1650 0 1 0.0000000000000000e+00 3.9756286271266063e+01 3.0103951040055833e+01 8.3353042378357927e+00 0 0 0 +1394 0 1 0.0000000000000000e+00 3.5529197726720007e+01 1.7145534475688784e+01 1.7399190804296733e+01 0 0 0 +255 0 1 0.0000000000000000e+00 3.6988439993168797e+01 1.5481997998913124e+01 1.2599672125265016e+00 0 -1 0 +1526 0 1 0.0000000000000000e+00 4.1416211754537997e+01 1.4903295367456378e+01 3.2052776372621679e+01 0 0 0 +1527 0 1 0.0000000000000000e+00 4.3233746262615561e+01 1.3150675343344131e+01 3.0011476095110901e+01 0 0 0 +1528 0 1 0.0000000000000000e+00 5.2545664524320202e+01 1.3273410511778723e+01 3.0164305317652666e+01 0 0 0 +1416 0 1 0.0000000000000000e+00 4.7938691342350893e+01 4.5795817593462722e+00 2.5601990864617875e+01 0 0 0 +1414 0 1 0.0000000000000000e+00 4.3203821156700855e+01 4.1809277018096616e+00 2.5160737832569314e+01 0 0 0 +1412 0 1 0.0000000000000000e+00 4.3585249946042481e+01 4.9258182560018121e-01 2.5359325930357578e+01 0 0 0 +1505 0 1 0.0000000000000000e+00 3.8913554176442503e+01 8.7581828101385497e+00 2.9824032451865143e+01 0 0 0 +80 0 1 0.0000000000000000e+00 3.7653011953292037e+01 9.7179042456112708e+00 1.2490303101942735e+00 -1 0 1 +1401 0 1 0.0000000000000000e+00 5.1996631800235882e+01 1.2949485012028022e+01 2.0974075560264883e+01 0 0 0 +1400 0 1 0.0000000000000000e+00 4.9905994752703393e+01 1.4814304631834824e+01 2.3826636866240786e+01 0 0 0 +1399 0 1 0.0000000000000000e+00 4.6610387851140352e+01 1.3677391485892315e+01 2.0722189023326457e+01 0 0 0 +1398 0 1 0.0000000000000000e+00 4.5236302682856774e+01 1.5235076305450933e+01 2.7643962965399020e+01 0 0 0 +1397 0 1 0.0000000000000000e+00 4.4462888166917516e+01 1.6031394547621897e+01 1.8232457048902450e+01 0 0 0 +1396 0 1 0.0000000000000000e+00 3.9353907498483487e+01 1.2529167446351652e+01 2.1713868499181800e+01 0 0 0 +680 0 1 0.0000000000000000e+00 3.6921912967601990e+01 2.7866051572147050e+01 3.1960999021377241e+01 -1 1 -1 +1667 0 1 0.0000000000000000e+00 3.5028331546624685e+01 2.1996639108619760e+01 1.5443564224966637e+00 0 0 0 +1385 0 1 0.0000000000000000e+00 5.1762828181276099e+01 8.9228654392530409e+00 2.1132442478379389e+01 0 0 0 +1384 0 1 0.0000000000000000e+00 4.9499552163726385e+01 1.1194153005115007e+01 2.3342953101112538e+01 0 0 0 +1383 0 1 0.0000000000000000e+00 4.7265217252328490e+01 8.9512481687179335e+00 2.0846862183774732e+01 0 0 0 +1382 0 1 0.0000000000000000e+00 4.5857437656526052e+01 1.1763049056416950e+01 2.3191918688583844e+01 0 0 0 +1381 0 1 0.0000000000000000e+00 4.3150559971882771e+01 3.9363466464095125e+00 2.0917285267765504e+01 0 0 0 +1380 0 1 0.0000000000000000e+00 4.2286042377789599e+01 8.7435507861167530e+00 2.1011515350080447e+01 0 0 0 +1379 0 1 0.0000000000000000e+00 3.8605442855488306e+01 1.1895550351663074e+01 2.5275872798315827e+01 0 0 0 +1345 0 1 0.0000000000000000e+00 3.8708816632601810e+01 3.4490919448611081e+01 2.0844649129824791e+01 0 -1 0 +2018 0 1 0.0000000000000000e+00 3.9042950020549000e+01 3.0300808993126154e+01 3.4000880966247088e+01 0 0 0 +1369 0 1 0.0000000000000000e+00 5.1139415438783438e+01 4.0908627730054539e+00 2.1669991535401163e+01 0 0 0 +1368 0 1 0.0000000000000000e+00 4.9438193405512742e+01 7.3945971029015762e+00 2.3359382852448284e+01 0 0 0 +1367 0 1 0.0000000000000000e+00 4.6828013561194837e+01 5.2888980497387381e+00 2.2210698092135310e+01 0 0 0 +1366 0 1 0.0000000000000000e+00 4.2399740665231782e+01 8.8065940523688653e+00 2.4881045927510200e+01 0 0 0 +1365 0 1 0.0000000000000000e+00 4.1058928268268993e+01 1.8310126745609259e+00 1.8686005746619632e+01 0 0 0 +1122 0 1 0.0000000000000000e+00 3.8945298917548890e+01 4.0657942592889400e+00 3.0158760479017479e+00 0 0 0 +1363 0 1 0.0000000000000000e+00 3.6564234014694698e+01 3.2946765320954341e+01 2.3027823575626403e+01 0 -1 0 +1346 0 1 0.0000000000000000e+00 3.6674847291337834e+01 1.7785068471142829e+00 2.7157783399009926e+01 0 0 0 +1352 0 1 0.0000000000000000e+00 4.9487497529198926e+01 2.3593260705994785e+00 2.3811452999772627e+01 0 0 0 +1350 0 1 0.0000000000000000e+00 4.5790701894424686e+01 1.9225505566250918e+00 2.7287208936693784e+01 0 0 0 +1512 0 1 0.0000000000000000e+00 4.8966809188974253e+01 1.0713486271878409e+01 3.1638180856693602e+01 0 0 0 +1348 0 1 0.0000000000000000e+00 4.0892338128897393e+01 1.8474240514477993e+00 2.2988163706031365e+01 0 0 0 +1153 0 1 0.0000000000000000e+00 3.7144588022735213e+01 3.2944115953177118e+01 1.4486476547642764e+00 0 -1 0 +1543 0 1 0.0000000000000000e+00 4.8320040351168039e+01 1.7307736700749771e+01 3.3938073151476978e+01 0 0 -1 +1336 0 1 0.0000000000000000e+00 4.9292099508948290e+01 1.5540567636984363e+01 1.8587114916261623e+01 0 0 0 +1513 0 1 0.0000000000000000e+00 5.1482309864919095e+01 9.1883962339811216e+00 3.0024040633663514e+01 0 0 0 +1334 0 1 0.0000000000000000e+00 4.3551217838871359e+01 1.3492779742405602e+01 1.6206933342698637e+01 0 0 0 +1063 0 1 0.0000000000000000e+00 4.7583161980658531e+01 8.0820941783399665e+00 3.3587972807546599e+01 0 0 -1 +1332 0 1 0.0000000000000000e+00 4.1374915312233036e+01 1.3757838189497512e+01 1.8968627053530728e+01 0 0 0 +1330 0 1 0.0000000000000000e+00 3.7998171119507113e+01 1.9053183033181309e+01 1.9210086094985261e+01 0 0 0 +1320 0 1 0.0000000000000000e+00 4.9742726355544079e+01 1.1130772959906549e+01 1.9200796301456581e+01 0 0 0 +1318 0 1 0.0000000000000000e+00 4.4605170888792109e+01 1.1285095468379659e+01 1.9498113787726336e+01 0 0 0 +1349 0 1 0.0000000000000000e+00 4.3538112151058151e+01 2.0336542291204215e-01 2.1684688453217515e+01 0 0 0 +1316 0 1 0.0000000000000000e+00 4.2654442831009135e+01 1.1706008285643128e+01 2.2527852907847844e+01 0 0 0 +1314 0 1 0.0000000000000000e+00 3.7421670145928523e+01 1.1022899645980912e+01 1.8685874749444416e+01 0 0 0 +1047 0 1 0.0000000000000000e+00 4.5556438178729842e+01 2.9464716342360386e+00 3.1606708043713532e+01 0 0 -1 +1987 0 1 0.0000000000000000e+00 3.6777211852032053e+01 2.3468937435826948e+01 2.3614446013546175e+01 0 0 0 +1479 0 1 0.0000000000000000e+00 4.9792834342322443e+01 2.0083737506955703e+00 2.7461331394502082e+01 0 0 0 +1304 0 1 0.0000000000000000e+00 4.9150383675474487e+01 6.3855359919946686e+00 1.8978996037196659e+01 0 0 0 +1989 0 1 0.0000000000000000e+00 3.8192359554753679e+01 1.2451758531446197e+01 3.0431117306004204e+01 0 0 0 +1302 0 1 0.0000000000000000e+00 3.8982232143029378e+01 8.1650190710510095e+00 1.2339517894883937e+01 0 0 0 +1300 0 1 0.0000000000000000e+00 3.7844020832612813e+01 7.6908470847286949e+00 1.8977417981844628e+01 0 0 0 +1049 0 1 0.0000000000000000e+00 5.1985265127307159e+01 4.8696714877609830e+00 3.3929814516150785e+01 0 0 -1 +998 0 1 0.0000000000000000e+00 3.4742495998206721e+01 2.4939415894807063e+01 7.7049327752342869e+00 -1 0 0 +1285 0 1 0.0000000000000000e+00 4.3587398021366013e+01 3.4268527927284225e+01 1.6248954299036090e+01 0 -1 0 +1415 0 1 0.0000000000000000e+00 4.7335123447651803e+01 3.3740068578983610e+01 2.5839138614070826e+01 0 -1 0 +1351 0 1 0.0000000000000000e+00 4.7897395370378909e+01 1.5378859682845952e-01 2.1128338138077449e+01 0 0 0 +1288 0 1 0.0000000000000000e+00 4.8748309063897466e+01 2.8792485684435518e+00 1.9371601050535453e+01 0 0 0 +1286 0 1 0.0000000000000000e+00 4.4892275744443737e+01 1.7310309413479115e+00 1.8939842411228476e+01 0 0 0 +1284 0 1 0.0000000000000000e+00 3.8290844744126034e+01 3.2791668828255767e+00 2.1192471885503405e+01 0 0 0 +1233 0 1 0.0000000000000000e+00 3.5133358673501434e+01 9.3818375918773480e+00 1.6928527435794411e+01 0 0 0 +1413 0 1 0.0000000000000000e+00 4.1179275175432331e+01 3.2601867184507682e+01 2.3166950879068118e+01 0 -1 0 +1925 0 1 0.0000000000000000e+00 4.1282585814790025e+01 1.4619340586920320e+01 2.4061703311707856e+01 0 0 0 +1027 0 1 0.0000000000000000e+00 4.1368057142606496e+01 3.2537801004047644e+01 3.1688396725818212e+01 0 -1 -1 +463 0 1 0.0000000000000000e+00 3.5119708584807299e+01 3.4487438141487537e+01 7.7141649897593680e+00 0 -1 0 +1411 0 1 0.0000000000000000e+00 3.8966167106733401e+01 8.4449451826578717e-02 2.4898918176607090e+01 0 0 0 +1477 0 1 0.0000000000000000e+00 4.0744775836883996e+01 3.2580583658086077e+01 2.6958891182579382e+01 0 -1 0 +1555 0 1 0.0000000000000000e+00 4.0584000075234755e+01 1.6312859399017615e+01 5.1755384750417033e-01 0 0 0 +1794 0 1 0.0000000000000000e+00 4.0279316194457770e+01 2.0354829621500048e+01 1.6910953264381977e+01 0 0 0 +1796 0 1 0.0000000000000000e+00 3.9309615098021951e+01 1.2885438021403282e+01 1.5778936336104490e+01 0 0 0 +1798 0 1 0.0000000000000000e+00 4.7391895703542389e+01 2.2055991533719546e+01 2.0943521178572944e+01 0 0 0 +1800 0 1 0.0000000000000000e+00 4.9890143607562614e+01 1.9156380010971674e+01 1.9494192379310178e+01 0 0 0 +58 0 1 0.0000000000000000e+00 3.5523151416981904e+01 2.1568176208079883e+01 2.0915130487181159e+01 -1 0 0 +1863 0 1 0.0000000000000000e+00 4.7773570810693492e+01 1.6909576473258717e+01 2.1518818196285221e+01 0 0 0 +961 0 1 0.0000000000000000e+00 3.6966914747874938e+01 1.8571125025732869e+01 2.8775452717541306e+01 0 0 0 +1587 0 1 0.0000000000000000e+00 4.1087080450475575e+01 2.7965279749862173e+01 1.0686442500880540e+01 0 0 0 +1814 0 1 0.0000000000000000e+00 4.5578647288740129e+01 2.4336399916017562e+01 1.8828090100866088e+01 0 0 0 +1816 0 1 0.0000000000000000e+00 5.0918637242950538e+01 2.4757704294761865e+01 1.8701555738165439e+01 0 0 0 +1813 0 1 0.0000000000000000e+00 4.4847398674349186e+01 1.9039858359115875e+01 1.9969426575258268e+01 0 0 0 +1777 0 1 0.0000000000000000e+00 3.7397680252840807e+01 2.8245199772446288e+01 1.0551844707512897e+01 0 0 0 +1826 0 1 0.0000000000000000e+00 3.6957215080367291e+01 2.3164236304460015e+01 1.8253338042880877e+01 0 0 0 +1828 0 1 0.0000000000000000e+00 4.0742828790951613e+01 2.8413920807946177e+01 1.8186570335153970e+01 0 0 0 +1993 0 1 0.0000000000000000e+00 5.2128910109286728e+01 1.7644580961173446e+01 2.9626330287254493e+01 0 0 0 +1830 0 1 0.0000000000000000e+00 4.7962773505657410e+01 2.5802986724488271e+01 1.6799542337031120e+01 0 0 0 +1832 0 1 0.0000000000000000e+00 5.0093381427914522e+01 2.7936376636754250e+01 1.9187215357677402e+01 0 0 0 +1845 0 1 0.0000000000000000e+00 4.5343053764671907e+01 2.8297073145904687e+01 1.8845758142571462e+01 0 0 0 +78 0 1 0.0000000000000000e+00 3.4905087395573531e+01 1.2675949935286223e+01 1.0110500056577887e+00 0 0 0 +1844 0 1 0.0000000000000000e+00 4.1206718310847130e+01 3.2634375375287817e+01 1.9011072678323043e+01 0 0 0 +1846 0 1 0.0000000000000000e+00 4.4973161285263899e+01 3.2241256552578932e+01 1.9589247135982781e+01 0 0 0 +1848 0 1 0.0000000000000000e+00 4.9651996458530547e+01 3.2455961195707125e+01 1.9086402589830396e+01 0 0 0 +61 0 1 0.0000000000000000e+00 4.1112586563367458e+01 3.2987435271218011e+01 6.4237183364607366e+00 0 -1 0 +1858 0 1 0.0000000000000000e+00 4.1163111883360266e+01 2.4252226634043431e+01 1.8472943212542297e+01 0 0 0 +1860 0 1 0.0000000000000000e+00 4.1649294405858043e+01 1.9256209070346095e+01 2.3383725825703578e+01 0 0 0 +1862 0 1 0.0000000000000000e+00 4.5054717789200360e+01 1.9145049910400800e+01 2.3501624662114263e+01 0 0 0 +1864 0 1 0.0000000000000000e+00 4.9399782814653356e+01 1.9634060558074253e+01 2.3767244506943545e+01 0 0 0 +2041 0 1 0.0000000000000000e+00 5.2369851745542995e+01 2.9570725936564148e+01 2.9539519215411616e+01 0 0 0 +156 0 1 0.0000000000000000e+00 3.5089467105815032e+01 2.5570132401323683e+01 1.1710541020354706e+01 -1 0 -1 +2040 0 1 0.0000000000000000e+00 4.9131133960965926e+01 3.1491217013329319e+01 3.1308814493059952e+01 0 0 0 +1874 0 1 0.0000000000000000e+00 3.7194536322878719e+01 1.4830159639331788e+01 2.3614476943727922e+01 0 0 0 +1875 0 1 0.0000000000000000e+00 4.1615229103874114e+01 1.8726029157424104e+01 1.9680716377330473e+01 0 0 0 +1876 0 1 0.0000000000000000e+00 4.3401403120414273e+01 2.2396681075235282e+01 2.1089872266899185e+01 0 0 0 +1877 0 1 0.0000000000000000e+00 4.3349363138404478e+01 2.6336058734122695e+01 1.6458150758010223e+01 0 0 0 +1878 0 1 0.0000000000000000e+00 4.3578100366614109e+01 2.1818261768395207e+01 1.7623136056518526e+01 0 0 0 +1879 0 1 0.0000000000000000e+00 4.5851166488693757e+01 2.4054872738607337e+01 2.3322774032128216e+01 0 0 0 +1880 0 1 0.0000000000000000e+00 4.9512063365795065e+01 2.3401143865349166e+01 2.3250931462311243e+01 0 0 0 +1881 0 1 0.0000000000000000e+00 5.0991918575748592e+01 2.1763524338294776e+01 2.1127875886829660e+01 0 0 0 +1890 0 1 0.0000000000000000e+00 3.9623301482130785e+01 2.5294922770037598e+01 3.2982338325943992e+01 0 0 0 +1891 0 1 0.0000000000000000e+00 3.9821960147862953e+01 2.4891186664396990e+01 1.5225589949613964e+01 0 0 0 +1892 0 1 0.0000000000000000e+00 4.0774766228453252e+01 2.7541180380637321e+01 2.2856559656765945e+01 0 0 0 +1893 0 1 0.0000000000000000e+00 4.3064175194254759e+01 2.6209827712474446e+01 2.0533624710407935e+01 0 0 0 +1894 0 1 0.0000000000000000e+00 4.5080607755190158e+01 2.8578447181862170e+01 2.2860573361292744e+01 0 0 0 +1895 0 1 0.0000000000000000e+00 4.7547984935282621e+01 2.6555361205963248e+01 2.1457513644917757e+01 0 0 0 +1896 0 1 0.0000000000000000e+00 5.0285950147689029e+01 2.7854948712714897e+01 2.2943639763637254e+01 0 0 0 +1897 0 1 0.0000000000000000e+00 5.2424287584740014e+01 2.5655653716503014e+01 2.1689142051720886e+01 0 0 0 +1906 0 1 0.0000000000000000e+00 3.6372972681443791e+01 3.2519002622754272e+01 1.4026028673827819e+01 0 0 0 +1907 0 1 0.0000000000000000e+00 4.3248438155422171e+01 3.0309694754893258e+01 1.6958023033547413e+01 0 0 0 +1908 0 1 0.0000000000000000e+00 3.5295922018318166e+01 2.8442657250002554e+01 1.9963244063584053e+01 0 0 0 +1909 0 1 0.0000000000000000e+00 4.2870691570076247e+01 2.9827219884821567e+01 2.0652190697601448e+01 0 0 0 +1910 0 1 0.0000000000000000e+00 4.5352836814325805e+01 3.1901820832205662e+01 2.3475671588490908e+01 0 0 0 +1911 0 1 0.0000000000000000e+00 4.7650818286809056e+01 3.0732873382874246e+01 2.1305936999686075e+01 0 0 0 +1912 0 1 0.0000000000000000e+00 5.0214003547422585e+01 3.2671086166516929e+01 2.2986594868087430e+01 0 0 0 +1913 0 1 0.0000000000000000e+00 5.2006810247311925e+01 3.0352264718839059e+01 2.0935073607890779e+01 0 0 0 +2025 0 1 0.0000000000000000e+00 5.2109910376459950e+01 2.5937097072209863e+01 2.9127210666671704e+01 0 0 0 +1812 0 1 0.0000000000000000e+00 3.7120334549400042e+01 2.7990912384685654e+01 1.3570061337964407e+01 0 0 0 +1924 0 1 0.0000000000000000e+00 4.1775551971474094e+01 1.9539074614687497e+01 2.8221597462138654e+01 0 0 0 +2024 0 1 0.0000000000000000e+00 5.0253390998714501e+01 2.7767180350085177e+01 3.1453830889301191e+01 0 0 0 +1926 0 1 0.0000000000000000e+00 4.5654561184076371e+01 1.9266729259122865e+01 2.7923704558622415e+01 0 0 0 +2039 0 1 0.0000000000000000e+00 4.7747466141503480e+01 3.0274734375700746e+01 2.8609441222987240e+01 0 0 0 +1928 0 1 0.0000000000000000e+00 4.7386808646338210e+01 2.1777306175279868e+01 2.9836614218648542e+01 0 0 0 +1475 0 1 0.0000000000000000e+00 3.9268045421400075e+01 3.4488840626934888e+01 2.9101536902138957e+01 0 -1 0 +2023 0 1 0.0000000000000000e+00 4.7553540361233068e+01 2.6394755142054706e+01 2.8937596186145921e+01 0 0 0 +2038 0 1 0.0000000000000000e+00 4.3531425037641611e+01 3.0246305645008960e+01 3.3786160102701032e+01 0 0 0 +1169 0 1 0.0000000000000000e+00 3.5457549534961089e+01 2.5647653059760294e+00 1.8549836439117708e+01 0 0 0 +1939 0 1 0.0000000000000000e+00 3.7607027358410278e+01 2.3655933577655325e+01 2.7874225398223022e+01 0 0 0 +1940 0 1 0.0000000000000000e+00 4.0192999788696710e+01 2.3250896921247936e+01 2.3746824886555284e+01 0 0 0 +1941 0 1 0.0000000000000000e+00 4.3079491309569640e+01 1.7250168807131672e+01 2.5816756952997988e+01 0 0 0 +1942 0 1 0.0000000000000000e+00 4.5373269748875842e+01 2.3994074774155138e+01 2.7787839067604835e+01 0 0 0 +1943 0 1 0.0000000000000000e+00 4.7282092917154479e+01 2.1724712364868754e+01 2.5754911611357155e+01 0 0 0 +1944 0 1 0.0000000000000000e+00 4.9713078154140455e+01 2.3441532746823608e+01 2.7396019224937813e+01 0 0 0 +1945 0 1 0.0000000000000000e+00 5.1581950784976343e+01 2.1117671194861895e+01 2.5771422435622735e+01 0 0 0 +1954 0 1 0.0000000000000000e+00 4.3426140682151903e+01 3.2467607792215125e-01 2.9139667034415115e+01 0 1 0 +1955 0 1 0.0000000000000000e+00 3.6389926293970937e+01 1.8741854502606849e+01 2.3254196659973598e+01 0 0 0 +1956 0 1 0.0000000000000000e+00 4.2906439665813323e+01 2.5111704875128282e+01 2.5028373320279929e+01 0 0 0 +1957 0 1 0.0000000000000000e+00 3.8700204573389414e+01 2.6296490278578219e+01 1.9986119802110778e+01 0 0 0 +1958 0 1 0.0000000000000000e+00 4.4971549283467297e+01 2.8223434890707452e+01 2.6487984535664395e+01 0 0 0 +1959 0 1 0.0000000000000000e+00 4.7578371133225794e+01 2.6135371803756975e+01 2.5729300041351561e+01 0 0 0 +1960 0 1 0.0000000000000000e+00 5.0079156489455329e+01 2.8245348205372490e+01 2.7582178934284759e+01 0 0 0 +1473 0 1 0.0000000000000000e+00 3.9046576034436328e+01 1.3228865451408289e+00 3.4336538020904094e+01 0 0 0 +1971 0 1 0.0000000000000000e+00 3.7244084693315784e+01 2.7392044951035849e+01 2.3197426044469857e+01 0 0 0 +1972 0 1 0.0000000000000000e+00 3.8742396603412139e+01 3.0088272167247535e+01 2.1112578941925662e+01 0 0 0 +1973 0 1 0.0000000000000000e+00 4.2213108348329278e+01 3.0122202059374814e+01 2.4688264695364847e+01 0 0 0 +1974 0 1 0.0000000000000000e+00 4.2867765456080008e+01 3.0215080991292105e+01 2.9784634653543318e+01 0 0 0 +1975 0 1 0.0000000000000000e+00 4.8939282587166950e+01 3.0045233989595889e+01 2.5079200590147476e+01 0 0 0 +1976 0 1 0.0000000000000000e+00 5.0109540436173198e+01 3.2735128536580305e+01 2.7128677811499198e+01 0 0 0 +1977 0 1 0.0000000000000000e+00 5.2125058959561287e+01 2.9933927951666167e+01 2.4678102174093080e+01 0 0 0 +2037 0 1 0.0000000000000000e+00 4.1439457639319023e+01 2.8220686226597611e+01 2.7378692738407516e+01 0 0 0 +214 0 1 0.0000000000000000e+00 3.5794300933246205e+01 7.1130901722351254e+00 3.2094457715099203e+01 0 0 -1 +2022 0 1 0.0000000000000000e+00 4.6171925749658300e+01 2.8595798847307261e+01 3.1406174058871940e+01 0 0 0 +1988 0 1 0.0000000000000000e+00 3.9139430357938565e+01 1.7216164768264623e+01 2.5733668922609468e+01 0 0 0 +2036 0 1 0.0000000000000000e+00 4.3820717541065576e+01 1.7753008489728581e-01 3.2690689462017623e+01 0 1 0 +1990 0 1 0.0000000000000000e+00 4.3602807018966338e+01 2.1497936490535942e+01 2.5239618694243632e+01 0 0 0 +1992 0 1 0.0000000000000000e+00 4.9641359073381061e+01 1.9501796390270560e+01 3.1937971666360554e+01 0 0 0 +1618 0 1 0.0000000000000000e+00 3.4985894994054171e+01 2.1461524439352516e+01 6.8177567903946441e+00 0 0 0 +1698 0 1 0.0000000000000000e+00 3.4783832854036483e+01 3.3715299184486604e+01 1.6772909529934374e+01 0 0 0 +1859 0 1 0.0000000000000000e+00 3.5537629389051155e+01 1.6179379175740095e+01 2.0961455363803871e+01 0 0 0 +2002 0 1 0.0000000000000000e+00 3.8213183965897599e+01 2.3766258577454291e+01 1.9599347144900960e+00 0 0 1 +2003 0 1 0.0000000000000000e+00 3.9148411653192859e+01 2.1082728947606480e+01 2.6418758704142210e+01 0 0 0 +2004 0 1 0.0000000000000000e+00 4.1861620983639071e+01 2.7897391692514727e+01 3.2023260347372222e+01 0 0 0 +2005 0 1 0.0000000000000000e+00 4.4135609419181264e+01 2.1557590172688833e+01 3.0263530328882027e+01 0 0 0 +2006 0 1 0.0000000000000000e+00 4.1718860055392987e+01 2.4072931103318641e+01 1.9458722741202701e+00 0 0 1 +2007 0 1 0.0000000000000000e+00 4.5697185249739753e+01 2.4740640443701395e+01 3.1820620247910050e+01 0 0 0 +2008 0 1 0.0000000000000000e+00 4.9447198103161483e+01 2.4431039524922067e+01 3.1150512846314026e+01 0 0 0 +123 0 1 0.0000000000000000e+00 4.1468498973763189e+01 3.2595262142710688e+01 1.0103890850994656e+01 0 -1 0 +2019 0 1 0.0000000000000000e+00 4.1601929562207765e+01 2.3551821736640619e+01 2.8091858063080210e+01 0 0 0 +2020 0 1 0.0000000000000000e+00 4.1249621349627105e+01 2.7744419145405281e+01 1.2362389582166244e+00 0 0 1 +2021 0 1 0.0000000000000000e+00 4.3899805125673680e+01 2.6711892264140726e+01 2.9564447107894019e+01 0 0 0 +1353 0 1 0.0000000000000000e+00 5.1520772137535552e+01 5.7880524173455117e-01 2.1229811038494695e+01 0 0 0 +1589 0 1 0.0000000000000000e+00 4.2792846970556411e+01 3.4314915997640931e+01 3.5775772745409213e+00 0 0 0 +1559 0 1 0.0000000000000000e+00 4.7835298596319603e+01 2.2630928197011322e+01 3.4083503613475266e+01 0 0 -1 +1815 0 1 0.0000000000000000e+00 4.5356935884389024e+01 2.0161590957000222e+01 1.4818917041619478e+01 0 0 0 +1575 0 1 0.0000000000000000e+00 4.8161040235203401e+01 2.6432299877365661e+01 3.4358230951551498e+01 0 0 -1 +1829 0 1 0.0000000000000000e+00 4.5710066317965250e+01 2.8269791606128209e+01 1.4806049952424388e+01 0 0 0 +1539 0 1 0.0000000000000000e+00 4.3466731351059934e+01 1.2899327325701183e+01 3.4280527535439056e+01 0 0 -1 +1861 0 1 0.0000000000000000e+00 4.3364566924714175e+01 1.5879146180588601e+01 2.1452910170704389e+01 0 0 0 +1991 0 1 0.0000000000000000e+00 4.7422749679155643e+01 1.6769374655192635e+01 3.0240614863160086e+01 0 0 0 +1795 0 1 0.0000000000000000e+00 4.0222063132284497e+01 1.8348524446332135e+01 1.3441845893878243e+01 0 0 0 +1538 0 1 0.0000000000000000e+00 3.9817680511298882e+01 2.1288334186205141e+01 3.8204769001894259e+00 0 0 0 +1811 0 1 0.0000000000000000e+00 3.6920421808267179e+01 1.6445180912304004e+01 1.4297318231044686e+01 0 0 0 +1540 0 1 0.0000000000000000e+00 4.3495779243173921e+01 1.7170237732308330e+01 3.0320400591525985e+01 0 0 -1 +247 0 1 0.0000000000000000e+00 3.4796408099244907e+01 2.9907694557009368e+01 1.6823123399730388e+01 -1 0 0 +1542 0 1 0.0000000000000000e+00 4.4132057271442434e+01 2.1282068151541402e+01 2.4320579200572956e-02 0 0 0 +1305 0 1 0.0000000000000000e+00 5.1141628703019386e+01 4.7606764221996354e+00 1.6974890585763003e+01 0 0 0 +1544 0 1 0.0000000000000000e+00 5.0351824204260353e+01 2.0206435980788164e+01 1.7252642413080219e+00 0 0 0 +1045 0 1 0.0000000000000000e+00 4.3150418035416358e+01 5.2232900051940918e+00 3.3868409077712982e+01 0 0 -1 +1301 0 1 0.0000000000000000e+00 4.1051492964824057e+01 6.0657779694166116e+00 1.9248367409307146e+01 0 0 0 +1335 0 1 0.0000000000000000e+00 4.6827410604118910e+01 1.3594670260204936e+01 1.6592546604455386e+01 0 0 0 +1303 0 1 0.0000000000000000e+00 4.6269284851520908e+01 4.5306969587555468e+00 1.7772223656405508e+01 0 0 0 +1057 0 1 0.0000000000000000e+00 3.6203966231265873e+01 6.0191834484354416e+00 2.4704152653872873e+00 0 0 0 +1223 0 1 0.0000000000000000e+00 4.7341182378039811e+01 2.1700914889717743e-01 1.2521732052103589e+01 0 0 0 +1321 0 1 0.0000000000000000e+00 5.1800551884239084e+01 8.7720122548604973e+00 1.7050602372000487e+01 0 0 0 +1059 0 1 0.0000000000000000e+00 4.3282047497879482e+01 9.4276462626911854e+00 3.4292285631569385e+01 0 0 -1 +1545 0 1 0.0000000000000000e+00 5.2676248999323029e+01 1.8551011194106337e+01 3.3802671749423212e+01 0 0 -1 +1671 0 1 0.0000000000000000e+00 4.7962398791333072e+01 1.7596416828204948e+01 8.6505893406729992e+00 0 0 0 +1252 0 1 0.0000000000000000e+00 3.6689553607265225e+01 6.2517782662759762e+00 1.5081112743040483e+01 0 0 0 +1985 0 1 0.0000000000000000e+00 3.5759322097531808e+01 1.2603088606864823e+01 2.1131518503324180e+01 0 0 0 +357 0 1 0.0000000000000000e+00 3.7356421224823350e+01 6.8991859109878986e+00 5.9674387292749893e+00 0 0 1 +1938 0 1 0.0000000000000000e+00 4.2303371305416178e+01 2.3913976223676713e+01 3.2141046245139584e+01 0 0 0 +1241 0 1 0.0000000000000000e+00 5.1462651607305006e+01 4.9657445335463599e+00 1.2789706099614071e+01 0 0 0 +1240 0 1 0.0000000000000000e+00 4.9087289539456172e+01 6.7635319827159304e+00 1.5175896592382406e+01 0 0 0 +1239 0 1 0.0000000000000000e+00 4.7820526468506586e+01 4.8318915089427179e+00 1.2602880680512822e+01 0 0 0 +1238 0 1 0.0000000000000000e+00 4.5182522852203540e+01 7.3997182372356365e+00 1.4543819250364558e+01 0 0 0 +2033 0 1 0.0000000000000000e+00 3.9322004505815379e+01 2.6020319409659535e+01 2.9391230525819111e+01 0 0 0 +1817 0 1 0.0000000000000000e+00 5.1490675593507554e+01 2.1224391349263833e+01 1.6982203100927602e+01 0 0 0 +1410 0 1 0.0000000000000000e+00 3.6122036304234115e+01 3.2724962186317157e+01 2.7927382577100499e+01 0 -1 0 +1541 0 1 0.0000000000000000e+00 4.5794980420885452e+01 1.4892855710547169e+01 3.2168127353873871e+01 0 0 -1 +1593 0 1 0.0000000000000000e+00 5.1575628806708778e+01 3.0532427469906544e+01 3.3864575808430772e+01 0 0 -1 +1609 0 1 0.0000000000000000e+00 5.2294601414067316e+01 1.7801532884048076e+01 4.1693475527279862e+00 0 0 0 +1097 0 1 0.0000000000000000e+00 5.1520725889074363e+01 6.2039051268955037e-02 4.1590470086233600e+00 0 0 0 +1161 0 1 0.0000000000000000e+00 5.1970670021735813e+01 5.6698174259530243e-01 8.6601053044145591e+00 0 0 0 +1571 0 1 0.0000000000000000e+00 3.8920703386971596e+01 3.0292338232492419e+01 2.9817004764620506e+01 0 0 -1 +1225 0 1 0.0000000000000000e+00 5.1939540072480654e+01 3.4481068153753242e+01 1.2903369204397732e+01 0 -1 0 +1095 0 1 0.0000000000000000e+00 4.7609123500483697e+01 1.9765927934220348e-01 4.1296775663338172e+00 0 0 0 +1733 0 1 0.0000000000000000e+00 4.1437840143984751e+01 1.9635177725757266e+01 9.3760695493566004e+00 0 0 0 +1557 0 1 0.0000000000000000e+00 4.3928732908314160e+01 2.6413891527673869e+01 3.4427656163446393e+01 0 0 -1 +921 0 1 0.0000000000000000e+00 3.7294346298829687e+01 3.3488627836850263e+01 3.1740052198532737e+01 -1 0 0 +223 0 1 0.0000000000000000e+00 3.9309859785987143e+01 3.0604786157566785e+01 3.5192445500556651e+00 0 -1 0 +1157 0 1 0.0000000000000000e+00 4.5732667242797312e+01 3.2511260492610937e+01 1.0074253719764824e+01 0 -1 0 +1847 0 1 0.0000000000000000e+00 4.8329155539983020e+01 3.0087981847749521e+01 1.7379124555896286e+01 0 0 0 +1737 0 1 0.0000000000000000e+00 5.1903286616304740e+01 1.7889340048096965e+01 1.1837752374754434e+01 0 0 0 +1766 0 1 0.0000000000000000e+00 4.0740836755948088e+01 3.3072691587193951e+01 1.4562151933805685e+01 0 0 0 +1765 0 1 0.0000000000000000e+00 4.5468092341533939e+01 2.4242731014409379e+01 1.0681391064310690e+01 0 0 0 +1764 0 1 0.0000000000000000e+00 3.9385984742399856e+01 3.0701827167025129e+01 1.2665371754408197e+01 0 0 0 +1763 0 1 0.0000000000000000e+00 4.1907320194374066e+01 2.4354719711711457e+01 1.0339243181901283e+01 0 0 0 +525 0 1 0.0000000000000000e+00 3.9611061495379190e+01 1.6482653718542437e+01 2.1285899632456193e+01 -1 0 0 +1753 0 1 0.0000000000000000e+00 5.2003281950672161e+01 2.2280251068369676e+01 1.2135094328033881e+01 0 0 0 +1752 0 1 0.0000000000000000e+00 4.9698439093372919e+01 2.3423469800928089e+01 1.4611114715980513e+01 0 0 0 +1751 0 1 0.0000000000000000e+00 4.7655046052255422e+01 2.1794516113448235e+01 1.2607812668456702e+01 0 0 0 +1750 0 1 0.0000000000000000e+00 4.5264155836852481e+01 2.3678897268323571e+01 1.4742239639020363e+01 0 0 0 +1749 0 1 0.0000000000000000e+00 4.1907473758276460e+01 2.2388544851038088e+01 1.4741729465195261e+01 0 0 0 +1748 0 1 0.0000000000000000e+00 4.3353174922205213e+01 2.2196797109159395e+01 7.7881421581520556e+00 0 0 0 +1747 0 1 0.0000000000000000e+00 3.9607646939811218e+01 2.2406326702087117e+01 8.2109184887642055e+00 0 0 0 +474 0 1 0.0000000000000000e+00 3.6316509453310381e+01 1.0673186364855136e+01 3.2668337632178527e+01 -1 0 0 +1736 0 1 0.0000000000000000e+00 4.9681501944529394e+01 1.9697390048012579e+01 1.4472265960209828e+01 0 0 0 +1734 0 1 0.0000000000000000e+00 4.3844437347666442e+01 1.7909334587455383e+01 1.2297909023981102e+01 0 0 0 +1768 0 1 0.0000000000000000e+00 4.9663400623566268e+01 2.7810833980966535e+01 1.4395937990293664e+01 0 0 0 +1732 0 1 0.0000000000000000e+00 3.9548970970201445e+01 1.6627463126548037e+01 1.7007605539733273e+01 0 0 0 +592 0 1 0.0000000000000000e+00 3.6650447295094807e+01 2.2461312954674256e+01 9.4900619985586356e+00 0 0 0 +1730 0 1 0.0000000000000000e+00 3.9161238436047796e+01 2.2221834909373630e+01 1.2594351634031975e+01 0 0 0 +1769 0 1 0.0000000000000000e+00 5.2467386467516583e+01 2.5626158156332334e+01 1.2468582585994032e+01 0 0 0 +1721 0 1 0.0000000000000000e+00 5.1961289695376635e+01 3.0578459896708527e+01 8.0236681588766050e+00 0 0 0 +1720 0 1 0.0000000000000000e+00 5.0273668391267904e+01 3.2313629172344498e+01 1.0963410447108370e+01 0 0 0 +1719 0 1 0.0000000000000000e+00 4.8237980937618815e+01 2.9809856420862900e+01 8.3640918901863923e+00 0 0 0 +1718 0 1 0.0000000000000000e+00 4.3718090416101901e+01 3.0582642514549978e+01 1.3223005056415577e+01 0 0 0 +1717 0 1 0.0000000000000000e+00 4.3762326643367935e+01 3.0685964095311615e+01 8.1922117200955924e+00 0 0 0 +1716 0 1 0.0000000000000000e+00 4.1147186273406703e+01 2.8354531916890192e+01 1.4994389911566717e+01 0 0 0 +1715 0 1 0.0000000000000000e+00 3.7546222022887683e+01 3.1877624713359701e+01 5.8156565969349545e+00 0 0 0 +1665 0 1 0.0000000000000000e+00 3.5873617977028943e+01 1.3618665018811486e+01 1.3194889365767191e+01 0 0 0 +608 0 1 0.0000000000000000e+00 3.9286274371751901e+01 2.6002205882634662e+01 2.5904784863215081e+01 -1 0 0 +1705 0 1 0.0000000000000000e+00 5.1766225837115989e+01 2.6342794746288710e+01 8.4306968206066504e+00 0 0 0 +1704 0 1 0.0000000000000000e+00 5.0354724548449731e+01 2.8824496150547784e+01 1.0733237445918041e+01 0 0 0 +1703 0 1 0.0000000000000000e+00 4.7701347629382582e+01 2.5963351611721670e+01 8.0400488550157689e+00 0 0 0 +1702 0 1 0.0000000000000000e+00 4.5361674775471606e+01 2.8468143385662735e+01 1.0574153773959203e+01 0 0 0 +1701 0 1 0.0000000000000000e+00 4.3451368377853349e+01 2.6300612266331289e+01 8.3041403564464549e+00 0 0 0 +1700 0 1 0.0000000000000000e+00 3.8536647704637225e+01 2.5249965950913545e+01 1.1769302340272933e+01 0 0 0 +1699 0 1 0.0000000000000000e+00 3.8895749347378597e+01 2.5678360913712222e+01 8.2293236514571912e+00 0 0 0 +1521 0 1 0.0000000000000000e+00 3.5265470735606755e+01 1.7360004394437183e+01 2.5993017031998356e+01 0 0 0 +1689 0 1 0.0000000000000000e+00 5.2354326984854403e+01 2.1586777349555692e+01 7.9440000927929315e+00 0 0 0 +1688 0 1 0.0000000000000000e+00 4.9622364575065099e+01 2.3814814308512403e+01 1.0174709292656777e+01 0 0 0 +1687 0 1 0.0000000000000000e+00 4.7603250510003711e+01 2.2173826818009136e+01 8.2710920930293472e+00 0 0 0 +1686 0 1 0.0000000000000000e+00 4.3146099955289529e+01 2.1681124124719481e+01 1.2092565680843705e+01 0 0 0 +1685 0 1 0.0000000000000000e+00 4.5745578731674563e+01 1.9510584142010789e+01 5.5350083627228273e+00 0 0 0 +1684 0 1 0.0000000000000000e+00 4.6586490756858588e+01 1.5358046251148432e+01 1.0765066326339945e+00 0 0 0 +1683 0 1 0.0000000000000000e+00 4.4543616203771016e+01 1.7139937502981976e+01 3.4598163271806421e+00 0 0 0 +2545 0 1 0.0000000000000000e+00 6.8926646144384108e+01 1.3525566681458672e+01 2.9988929646753004e+01 0 0 0 +1237 0 1 0.0000000000000000e+00 4.2804531834672069e+01 4.8125935872322465e+00 1.2417427204477208e+01 0 0 0 +2385 0 1 0.0000000000000000e+00 6.8888032370296457e+01 4.2495445759349240e+00 2.1041930052155507e+01 0 0 0 +1779 0 1 0.0000000000000000e+00 3.6489897256702768e+01 2.3028253291771751e+01 1.4545182941157989e+01 0 0 0 +1780 0 1 0.0000000000000000e+00 4.6013448549855916e+01 1.6810776260607836e+00 2.3247044128555274e+01 0 1 0 +1781 0 1 0.0000000000000000e+00 4.3247984862810192e+01 2.5838201418862020e+01 1.3020261769927469e+01 0 0 0 +1672 0 1 0.0000000000000000e+00 4.9557933369398960e+01 2.0034564935658551e+01 1.0139423829498886e+01 0 0 0 +1782 0 1 0.0000000000000000e+00 4.5920578767344068e+01 3.2612320740997973e+01 1.5040527933278018e+01 0 0 0 +1670 0 1 0.0000000000000000e+00 4.6100007151279108e+01 2.0124972770257990e+01 1.0218917903830535e+01 0 0 0 +1783 0 1 0.0000000000000000e+00 4.7723588795606936e+01 3.0989485565133464e+01 1.3090526116070290e+01 0 0 0 +1668 0 1 0.0000000000000000e+00 4.1938274147707780e+01 1.6024927698799392e+01 1.0284717938869314e+01 0 0 0 +1784 0 1 0.0000000000000000e+00 5.0139465407564181e+01 3.2666693399743906e+01 1.5322844666712117e+01 0 0 0 +1666 0 1 0.0000000000000000e+00 3.5286562329747888e+01 1.4840079203148399e+01 8.6925295832426617e+00 0 0 0 +1656 0 1 0.0000000000000000e+00 5.0044473534499339e+01 3.2294032670759798e+01 5.9696177255345910e+00 0 0 0 +1655 0 1 0.0000000000000000e+00 4.7598249806750189e+01 3.0682399568762275e+01 4.1989590435577462e+00 0 0 0 +1654 0 1 0.0000000000000000e+00 4.5036059085914708e+01 3.3131774754392524e+01 5.9761287573970741e+00 0 0 0 +1653 0 1 0.0000000000000000e+00 4.2851051337977459e+01 3.0847752601001172e+01 3.9881909288928661e+00 0 0 0 +1652 0 1 0.0000000000000000e+00 3.6318736878311796e+01 1.8727544222001267e+00 1.0281055593032963e+01 0 1 0 +1651 0 1 0.0000000000000000e+00 4.3484582379637224e+01 7.4445436879902815e-01 9.0791256820865822e+00 0 1 0 +876 0 1 0.0000000000000000e+00 3.7897463146282334e+01 1.5336926991910202e+01 3.1870593872333224e+01 0 0 0 +1641 0 1 0.0000000000000000e+00 5.1670303394780802e+01 2.5886759905637728e+01 4.1752800327833572e+00 0 0 0 +1640 0 1 0.0000000000000000e+00 5.0084171382411711e+01 2.8108519007513024e+01 5.9761311698879904e+00 0 0 0 +1639 0 1 0.0000000000000000e+00 4.7851376656921154e+01 2.6474880315319687e+01 4.4966309431452558e+00 0 0 0 +1638 0 1 0.0000000000000000e+00 4.5581659274284718e+01 2.8768443917454629e+01 5.7365784429093800e+00 0 0 0 +1637 0 1 0.0000000000000000e+00 4.6304910698084221e+01 2.4266468439594249e+01 1.8133774002499952e+00 0 0 0 +1636 0 1 0.0000000000000000e+00 3.8646257253348971e+01 6.0752073746771540e-01 7.8057620038740554e+00 0 1 0 +1635 0 1 0.0000000000000000e+00 4.1494339623369932e+01 2.3701211733424849e+01 5.7189387925556971e+00 0 0 0 +831 0 1 0.0000000000000000e+00 3.7164191134664364e+01 2.1942629333463096e+01 3.3423967379650350e+01 -1 0 0 +1625 0 1 0.0000000000000000e+00 5.1841899647827184e+01 2.2099275875429534e+01 4.1609825239624669e+00 0 0 0 +1236 0 1 0.0000000000000000e+00 3.8482298510993196e+01 9.6069044308472549e+00 1.5208826484176381e+01 0 0 0 +1624 0 1 0.0000000000000000e+00 5.0304030891293429e+01 2.4130663087865759e+01 6.5246555501380357e+00 0 0 0 +1623 0 1 0.0000000000000000e+00 4.7852383285746811e+01 2.2292843282799161e+01 4.2034026631360559e+00 0 0 0 +1622 0 1 0.0000000000000000e+00 4.5458993371575517e+01 2.4803885051932134e+01 5.6199575839292262e+00 0 0 0 +1621 0 1 0.0000000000000000e+00 4.2166787156082201e+01 1.9287684622274629e+01 2.2232387809802581e+00 0 0 0 +1620 0 1 0.0000000000000000e+00 4.1914543614959960e+01 1.9517009894681067e+01 5.8718577710138735e+00 0 0 0 +1235 0 1 0.0000000000000000e+00 4.2866093745926754e+01 4.1007348824263898e+00 1.6618008622655083e+01 0 0 0 +1619 0 1 0.0000000000000000e+00 3.7931068175772516e+01 1.9679953882953495e+01 6.9143182819305986e+00 0 0 0 +2017 0 1 0.0000000000000000e+00 6.9050877693910991e+01 2.5710526743534249e+01 3.0034990918481366e+01 -1 0 0 +1608 0 1 0.0000000000000000e+00 4.9647089237868869e+01 1.9392281795460157e+01 6.4810445687934548e+00 0 0 0 +1767 0 1 0.0000000000000000e+00 4.7569428298488532e+01 2.6360213115374268e+01 1.2394071735896018e+01 0 0 0 +1606 0 1 0.0000000000000000e+00 4.5986038809725798e+01 1.9232179718064550e+01 3.2193476339015056e+01 0 0 -1 +1604 0 1 0.0000000000000000e+00 3.9409787910810820e+01 1.6635954292819847e+01 7.8170382842536092e+00 0 0 0 +1602 0 1 0.0000000000000000e+00 4.2255100004006316e+01 1.5171820351837367e+01 5.8819320890432456e+00 0 0 0 +1093 0 1 0.0000000000000000e+00 4.5304202561316103e+01 2.3472770834134997e+00 5.9303977068829621e+00 0 0 0 +310 0 1 0.0000000000000000e+00 3.7057623487169806e+01 2.8406052135025700e+01 2.7815312249275433e+01 0 0 0 +1234 0 1 0.0000000000000000e+00 3.8044304039353918e+01 4.1029979402282217e+00 1.7149797135897753e+01 0 0 0 +1219 0 1 0.0000000000000000e+00 3.7976322339706904e+01 3.4327530407632693e+01 1.1797783017877105e+01 0 -1 0 +1592 0 1 0.0000000000000000e+00 5.0006288527728039e+01 3.2644050873269848e+01 1.7267865524219801e+00 0 0 0 +742 0 1 0.0000000000000000e+00 4.2054733643699691e+01 2.0573462177847559e+00 6.6603262678334152e-01 0 1 0 +1669 0 1 0.0000000000000000e+00 4.4081478310697022e+01 1.7815569143864384e+01 8.1941091978651137e+00 0 0 0 +1590 0 1 0.0000000000000000e+00 4.5227607482604583e+01 3.2814644676048374e+01 1.6354020917211995e+00 0 0 0 +1221 0 1 0.0000000000000000e+00 4.3642454286892203e+01 4.3055994609512906e-02 1.2627997339707614e+01 0 0 0 +1588 0 1 0.0000000000000000e+00 4.1927212229032108e+01 2.2086857754615483e+00 6.1584446421128201e+00 0 1 0 +1831 0 1 0.0000000000000000e+00 4.8161174823781224e+01 2.1941066760188367e+01 1.7306427514664001e+01 0 0 0 +1843 0 1 0.0000000000000000e+00 3.7453373465987028e+01 1.9761486372948408e+01 1.5411303928170934e+01 0 0 0 +1091 0 1 0.0000000000000000e+00 4.1006000380094775e+01 2.4112457351459518e+00 1.0558072185129042e+01 0 0 0 +1603 0 1 0.0000000000000000e+00 3.9599404551645243e+01 1.7270243950158783e+01 4.2618606855545016e+00 0 0 0 +1576 0 1 0.0000000000000000e+00 5.0301958618118718e+01 2.8323055837471362e+01 1.8131106193419371e+00 0 0 0 +1605 0 1 0.0000000000000000e+00 4.3756809474630522e+01 1.7102431843939176e+01 4.8878098660129930e-03 0 0 0 +1574 0 1 0.0000000000000000e+00 4.5973806203354563e+01 2.8480168585643696e+01 2.0116086868997050e+00 0 0 0 +1572 0 1 0.0000000000000000e+00 3.6554095528483181e+01 2.4654376289559565e+01 3.0799511561688135e+01 0 0 -1 +1591 0 1 0.0000000000000000e+00 4.8193283129030334e+01 3.0500208228951617e+01 2.1174910667497659e-01 0 0 0 +1570 0 1 0.0000000000000000e+00 4.1124961827833758e+01 1.9884887650326568e+00 1.4356044235550504e+01 0 1 0 +1254 0 1 0.0000000000000000e+00 4.5334603165859484e+01 1.0852017459966468e+01 1.4288784215437431e+01 0 0 0 +1560 0 1 0.0000000000000000e+00 4.9769234065043882e+01 2.4377736882660709e+01 1.8971940354739019e+00 0 0 0 +1558 0 1 0.0000000000000000e+00 4.4006798673868971e+01 2.1924805258808519e+01 3.6624584917177478e+00 0 0 0 +1607 0 1 0.0000000000000000e+00 4.6922648517899823e+01 1.9490166831051347e+01 1.7757544154780662e+00 0 0 0 +1556 0 1 0.0000000000000000e+00 3.9156415882410734e+01 2.6810898442732910e+01 3.8735456344009567e+00 0 0 0 +1554 0 1 0.0000000000000000e+00 3.6519347733829129e+01 2.7721860141847941e+01 6.3431831760586341e+00 0 0 0 +1731 0 1 0.0000000000000000e+00 3.8821963355356459e+01 1.1681337817692752e+01 1.1883940987821122e+01 0 0 0 +1573 0 1 0.0000000000000000e+00 3.7314210722376529e+01 2.7199298481291578e+01 8.3010340572294827e-01 0 0 0 +1673 0 1 0.0000000000000000e+00 5.2621799297513100e+01 1.7662722463354953e+01 8.1461649045015658e+00 0 0 0 +2529 0 1 0.0000000000000000e+00 6.9130776839501479e+01 8.5729275043840225e+00 2.9774402822137883e+01 0 0 0 +1075 0 1 0.0000000000000000e+00 3.5573363099200506e+01 1.1323653455312355e+01 2.7331447047277265e+01 0 0 -1 +1028 0 1 0.0000000000000000e+00 3.9186706803018176e+01 5.2805068627267122e+00 3.3849325645293462e+01 0 0 -1 +1030 0 1 0.0000000000000000e+00 4.7637089676204489e+01 1.7177523223790694e-01 3.4253938082656610e+01 0 0 -1 +1032 0 1 0.0000000000000000e+00 4.9365114137310620e+01 2.7282820632551483e+00 1.2665563927358878e+00 0 0 0 +1061 0 1 0.0000000000000000e+00 4.5254577579787039e+01 6.8994362708408303e+00 1.7449291945612895e+00 0 0 0 +1801 0 1 0.0000000000000000e+00 5.1618788995094420e+01 1.7401579414805180e+01 1.6820501006486957e+01 0 0 0 +1331 0 1 0.0000000000000000e+00 4.0786390011952555e+01 1.0253499196428553e+01 1.8398748936074750e+01 0 0 0 +1031 0 1 0.0000000000000000e+00 4.5551962981628996e+01 3.2693621246742879e+01 3.0972172873831692e+01 0 -1 -1 +1042 0 1 0.0000000000000000e+00 4.3554951985572281e+01 9.3571090673782784e+00 3.5619138643199153e+00 0 0 0 +1044 0 1 0.0000000000000000e+00 4.0886810601854172e+01 1.0678208990903185e+01 2.0293064751971457e+00 0 0 0 +1077 0 1 0.0000000000000000e+00 4.1081015526893481e+01 1.1215189313742355e+01 3.2053000359068669e+01 0 0 -1 +1046 0 1 0.0000000000000000e+00 4.0885366264902238e+01 7.1845990933914186e+00 2.3644229066254856e+00 0 0 0 +1299 0 1 0.0000000000000000e+00 3.5929160384257557e+01 2.2058348482243630e+00 2.3559011845429090e+01 0 0 0 +1048 0 1 0.0000000000000000e+00 4.6614740308464768e+01 4.7973009674177085e+00 3.4165490557030616e+01 0 0 -1 +1333 0 1 0.0000000000000000e+00 4.3031346679991877e+01 8.4595213353512140e+00 1.6981549287035318e+01 0 0 0 +1337 0 1 0.0000000000000000e+00 5.1982319703238240e+01 1.2726824744146519e+01 1.6643174688938483e+01 0 0 0 +1319 0 1 0.0000000000000000e+00 4.7447074469210264e+01 9.3042305561112002e+00 1.7290297658123027e+01 0 0 0 +1937 0 1 0.0000000000000000e+00 6.8914803175442657e+01 2.1728608860665613e+01 2.5857301547107010e+01 -1 0 0 +1735 0 1 0.0000000000000000e+00 4.7818598117539715e+01 1.7535394185673979e+01 1.2493255503234773e+01 0 0 0 +1060 0 1 0.0000000000000000e+00 4.1661856177489121e+01 1.2033759247233325e+01 9.7306698007807366e+00 0 0 0 +1289 0 1 0.0000000000000000e+00 5.1388538453771318e+01 4.3352535189709918e-01 1.7220538154795644e+01 0 0 0 +1062 0 1 0.0000000000000000e+00 4.7540026165624226e+01 9.2497919895109515e+00 4.2036753109313603e+00 0 0 0 +365 0 1 0.0000000000000000e+00 3.8729879377490846e+01 3.0601067982717716e+01 1.6134352165344158e+01 0 -1 0 +1064 0 1 0.0000000000000000e+00 4.9586954722025190e+01 1.0481970805161444e+01 1.7690005389901371e+00 0 0 0 +1317 0 1 0.0000000000000000e+00 4.4980203981318816e+01 7.0943801884834219e+00 1.9891915210390195e+01 0 0 0 +922 0 1 0.0000000000000000e+00 3.8477456764258292e+01 3.0092677778109049e+01 2.5454627239135498e+01 -1 0 0 +1287 0 1 0.0000000000000000e+00 4.7623243367568847e+01 3.4556938758222337e+01 1.7228095405973274e+01 0 -1 0 +1074 0 1 0.0000000000000000e+00 4.0793384751488752e+01 5.9804863542476863e+00 3.0547648931028384e+01 0 0 -1 +1076 0 1 0.0000000000000000e+00 3.8806675943006816e+01 1.3131626879523781e+01 3.4252648692286265e+01 0 0 -1 +1078 0 1 0.0000000000000000e+00 4.6281822712749047e+01 1.0820700619988633e+01 1.1267508081774424e+00 0 0 0 +1080 0 1 0.0000000000000000e+00 5.0782959294839223e+01 1.5735276323256659e+01 1.5700659952073506e+00 0 0 0 +601 0 1 0.0000000000000000e+00 4.0019818892650527e+01 2.1451583621571885e+01 3.4503525882116541e+01 0 1 -1 +1079 0 1 0.0000000000000000e+00 4.8378601708325625e+01 1.3252648186650612e+01 3.3975002664734802e+01 0 0 -1 +1092 0 1 0.0000000000000000e+00 4.3074446664132971e+01 4.6859018122477920e+00 8.1476514608054824e+00 0 0 0 +1094 0 1 0.0000000000000000e+00 4.5258722052261440e+01 6.8461093416030572e+00 6.0685875142832133e+00 0 0 0 +1096 0 1 0.0000000000000000e+00 4.9853419511672676e+01 2.4641048564476802e+00 6.1080665194284327e+00 0 0 0 +1159 0 1 0.0000000000000000e+00 4.7898060460338449e+01 3.4134963513177929e+01 8.2694815549629457e+00 0 -1 0 +1253 0 1 0.0000000000000000e+00 4.0692416038769643e+01 6.7744110079324624e+00 1.5340661479147785e+01 0 0 0 +1273 0 1 0.0000000000000000e+00 5.2040161509901004e+01 1.2108892841872665e+01 1.2868380049905380e+01 0 0 0 +44 0 1 0.0000000000000000e+00 3.5463736934730029e+01 2.1616330882110670e+01 3.0077895824016029e+01 0 -1 -1 +1106 0 1 0.0000000000000000e+00 3.9495017567133644e+01 4.1360982076869286e+00 6.4938559853787750e+00 0 0 0 +1107 0 1 0.0000000000000000e+00 3.5513821568978017e+01 2.1923913785273879e+00 1.9225295260167290e+00 0 0 0 +1108 0 1 0.0000000000000000e+00 4.1181479120594240e+01 2.1470146590776147e+00 3.1299289083454948e+01 0 0 -1 +1109 0 1 0.0000000000000000e+00 3.5195341804543716e+01 7.8983795776240162e-01 3.3207636210324729e+01 0 0 -1 +1110 0 1 0.0000000000000000e+00 4.2231968375896251e+01 1.1089853667402513e+01 5.7528455186989884e+00 0 0 0 +1111 0 1 0.0000000000000000e+00 4.7483183110812767e+01 4.3063423686971225e+00 3.4310893633182538e+00 0 0 0 +1112 0 1 0.0000000000000000e+00 4.9807957425458213e+01 6.9281458850507605e+00 5.5362060316241060e+00 0 0 0 +1113 0 1 0.0000000000000000e+00 5.1641658178782968e+01 4.5673763075678000e+00 3.6499831651417805e+00 0 0 0 +1922 0 1 0.0000000000000000e+00 3.9200175314282063e+01 2.1981533480473836e+01 2.0450385406426033e+01 0 0 0 +1123 0 1 0.0000000000000000e+00 4.0961208266623551e+01 6.9918316219641143e+00 5.8321614681114688e+00 0 0 0 +1617 0 1 0.0000000000000000e+00 6.8599595666342935e+01 2.1524193523957653e+01 4.3266640530883089e+00 -1 0 0 +1125 0 1 0.0000000000000000e+00 3.9472656951919262e+01 1.3647264677242520e+01 3.7302843514649244e+00 0 0 0 +1126 0 1 0.0000000000000000e+00 4.5544970936526020e+01 1.1606406941250029e+01 5.8136899535493072e+00 0 0 0 +1127 0 1 0.0000000000000000e+00 4.9440427571424060e+01 6.7569895417769761e+00 1.6580597927651834e+00 0 0 0 +1128 0 1 0.0000000000000000e+00 5.0186157676549108e+01 1.0910788036320799e+01 5.9674451185899553e+00 0 0 0 +1129 0 1 0.0000000000000000e+00 5.1889782855821736e+01 8.6047675275839666e+00 3.3110761219075471e+00 0 0 0 +1138 0 1 0.0000000000000000e+00 3.9686802943506699e+01 1.3291372734276861e+01 7.0023524491688960e+00 0 0 0 +443 0 1 0.0000000000000000e+00 3.6122773308905451e+01 2.1647918574237099e+00 5.3040168326848764e+00 0 0 1 +1140 0 1 0.0000000000000000e+00 4.4127379883585995e+01 1.3070758150793626e+01 3.1563953327959733e+00 0 0 0 +1141 0 1 0.0000000000000000e+00 4.5968143422515254e+01 1.5581416939362679e+01 5.9931299427391620e+00 0 0 0 +1142 0 1 0.0000000000000000e+00 4.8647131473110356e+01 1.7406095343116910e+01 3.8956218171208912e+00 0 0 0 +1143 0 1 0.0000000000000000e+00 4.8030395233111214e+01 1.2826675783136322e+01 3.3642702144136103e+00 0 0 0 +1144 0 1 0.0000000000000000e+00 4.9730179665192082e+01 1.5038125809498380e+01 6.1583765147149414e+00 0 0 0 +1145 0 1 0.0000000000000000e+00 5.2312687441066124e+01 1.3122915048241531e+01 3.8997719057197702e+00 0 0 0 +1272 0 1 0.0000000000000000e+00 5.0061017088902176e+01 1.5338295268635770e+01 1.4389237071903356e+01 0 0 0 +1681 0 1 0.0000000000000000e+00 3.8143402108684761e+01 1.9235641924473278e+01 1.0828157505896552e+01 0 0 0 +1257 0 1 0.0000000000000000e+00 5.1851627930437722e+01 8.5350253766756836e+00 1.3240301901620876e+01 0 0 0 +1156 0 1 0.0000000000000000e+00 4.3103233065986778e+01 4.6416123492487573e+00 3.3607494492180958e+00 0 0 0 +1271 0 1 0.0000000000000000e+00 4.8043416888506002e+01 1.2733709640026708e+01 1.2609400613580762e+01 0 0 0 +1158 0 1 0.0000000000000000e+00 4.5624947193907396e+01 2.7348576485617118e+00 1.0844605552938718e+01 0 0 0 +1256 0 1 0.0000000000000000e+00 4.9639625579474092e+01 1.1185089843006677e+01 1.5226206491013277e+01 0 0 0 +1160 0 1 0.0000000000000000e+00 4.9908638654443081e+01 2.3165674666063039e+00 1.0962681890088449e+01 0 0 0 +1270 0 1 0.0000000000000000e+00 4.6081706360471053e+01 1.5918872917306706e+01 1.4579210120937031e+01 0 0 0 +1089 0 1 0.0000000000000000e+00 4.2890683586639085e+01 2.6623227629157213e+01 3.7193429179996604e+00 0 -1 0 +1269 0 1 0.0000000000000000e+00 4.5571858165000549e+01 1.0916995645803194e+01 1.0531934179620947e+01 0 0 0 +1255 0 1 0.0000000000000000e+00 4.8002626698151559e+01 8.8103795162185570e+00 1.3014033951749344e+01 0 0 0 +1537 0 1 0.0000000000000000e+00 3.6792560774742370e+01 1.2120589760695234e+01 7.9368534374413366e+00 0 0 0 +1171 0 1 0.0000000000000000e+00 4.0525327717505817e+01 6.2123786699559647e+00 9.6904923280202944e+00 0 0 0 +1172 0 1 0.0000000000000000e+00 3.6716546253570137e+01 8.8835273626318489e+00 9.4504255026492920e+00 0 0 0 +1173 0 1 0.0000000000000000e+00 3.6837921187751967e+01 4.8032261136259855e+00 9.1523331090704900e+00 0 0 0 +1174 0 1 0.0000000000000000e+00 4.5423736343285377e+01 6.6318751309910908e+00 1.0284949147081290e+01 0 0 0 +1175 0 1 0.0000000000000000e+00 4.7476214964358277e+01 4.4110173322155326e+00 8.0397077252869256e+00 0 0 0 +1176 0 1 0.0000000000000000e+00 4.9400603838451715e+01 6.5517404764832250e+00 1.0383045339719830e+01 0 0 0 +1177 0 1 0.0000000000000000e+00 5.1753446775063672e+01 4.3317806066176132e+00 7.9913144871598432e+00 0 0 0 +2034 0 1 0.0000000000000000e+00 3.5478038697992147e+01 2.9807065542044928e+01 3.3366874654451371e+00 0 0 1 +1523 0 1 0.0000000000000000e+00 3.7593143622441907e+01 1.4751073444423231e+01 2.7106932957237493e+01 0 0 0 +1187 0 1 0.0000000000000000e+00 4.5199662512224265e+01 2.0736761762320146e+00 1.9025337537754754e+00 0 0 0 +1188 0 1 0.0000000000000000e+00 4.3011102844570239e+01 8.4766452467121542e+00 1.1623928488992744e+01 0 0 0 +1189 0 1 0.0000000000000000e+00 3.9674797213035987e+01 9.2881004968017464e+00 8.5143531591012245e+00 0 0 0 +1190 0 1 0.0000000000000000e+00 4.3250364745989366e+01 9.1245792373602495e+00 8.1701603411187431e+00 0 0 0 +1191 0 1 0.0000000000000000e+00 4.7231178839218607e+01 8.7175130135427974e+00 7.9387069087956421e+00 0 0 0 +1192 0 1 0.0000000000000000e+00 4.9890244549575790e+01 1.0682352606808669e+01 1.0140319814723409e+01 0 0 0 +1193 0 1 0.0000000000000000e+00 5.1525083466048187e+01 8.4650638491625347e+00 8.2370500708289214e+00 0 0 0 +1553 0 1 0.0000000000000000e+00 6.8851331126472815e+01 2.1605269929994236e+01 9.7870323857777664e-02 -1 0 0 +1347 0 1 0.0000000000000000e+00 3.6852705405542714e+01 3.1938452287536819e+01 1.8913784697649916e+01 0 -1 0 +1203 0 1 0.0000000000000000e+00 4.1663555020111730e+01 1.0943265979921950e+01 1.3962130315294820e+01 0 0 0 +1204 0 1 0.0000000000000000e+00 4.3949559085612620e+01 1.3576012353346291e+01 1.2410826250081197e+01 0 0 0 +1205 0 1 0.0000000000000000e+00 4.4035142213143480e+01 1.4321032906636590e+01 8.4715060823371680e+00 0 0 0 +1206 0 1 0.0000000000000000e+00 4.6756421786489682e+01 1.4855825300765822e+01 1.0658674424454887e+01 0 0 0 +1207 0 1 0.0000000000000000e+00 4.8321622288544212e+01 1.2795319255932760e+01 8.6138780792811556e+00 0 0 0 +1208 0 1 0.0000000000000000e+00 5.0454111435949407e+01 1.5016232116252912e+01 1.0141026761253965e+01 0 0 0 +1209 0 1 0.0000000000000000e+00 5.1667164778989253e+01 1.2997339631568725e+01 8.4328761815666979e+00 0 0 0 +1268 0 1 0.0000000000000000e+00 4.0997678896823970e+01 1.4872426340634105e+01 1.3859228962633473e+01 0 0 0 +86 0 1 0.0000000000000000e+00 3.5287104493670434e+01 2.4826847480032360e+01 2.1034896012328566e+01 -1 0 -1 +1827 0 1 0.0000000000000000e+00 3.4905324761239257e+01 2.1139780169029944e+01 1.2296530443184158e+01 0 0 0 +1220 0 1 0.0000000000000000e+00 3.8232091342086399e+01 4.8539079550337144e-01 1.6960308837010086e+01 0 0 0 +1364 0 1 0.0000000000000000e+00 3.5958941761931051e+01 6.0764700057681065e+00 2.3509615933263987e+01 0 0 0 +1222 0 1 0.0000000000000000e+00 4.5275824978486362e+01 2.6466052116465457e+00 1.4569248127650029e+01 0 0 0 +1201 0 1 0.0000000000000000e+00 3.5831842932753275e+01 1.3702465320220103e+01 1.6642473200912900e+01 0 0 0 +1224 0 1 0.0000000000000000e+00 4.9167456722964701e+01 2.4123991833610128e+00 1.4732240871953431e+01 0 0 0 +1155 0 1 0.0000000000000000e+00 3.8959519943740894e+01 4.6192686285559654e+00 1.2899505296425334e+01 0 0 0 +1805 0 1 0.0000000000000000e+00 6.0543133330538872e+01 1.7726257082451824e+01 1.6499930746121937e+01 0 0 0 +1081 0 1 0.0000000000000000e+00 5.0323735522976300e+01 1.5255584866157312e+01 3.2124175889107683e+01 0 0 -1 +1933 0 1 0.0000000000000000e+00 6.0946684043767860e+01 1.7331631095799924e+01 2.5216928517782307e+01 0 0 0 +8 0 1 0.0000000000000000e+00 3.7428939600878884e+01 1.9328512405742611e+01 2.1120418185038963e+00 0 0 0 +1867 0 1 0.0000000000000000e+00 5.5499873680590987e+01 1.7099174505042292e+01 2.1314226865095140e+01 0 0 0 +1997 0 1 0.0000000000000000e+00 6.0783329189208516e+01 1.7393636011476453e+01 3.0076487174558114e+01 0 0 0 +1065 0 1 0.0000000000000000e+00 5.1647291838271094e+01 8.9425479198137516e+00 3.3473402422506034e+01 0 0 -1 +1504 0 1 0.0000000000000000e+00 6.6914707427510393e+01 7.1794047947678834e+00 3.1769064304101917e+01 0 0 0 +1503 0 1 0.0000000000000000e+00 6.5221316933422941e+01 3.5107269014364846e+00 2.9956747084574044e+01 0 0 0 +1502 0 1 0.0000000000000000e+00 6.3238601938730220e+01 6.6071457138237291e+00 3.1936067335167131e+01 0 0 0 +1501 0 1 0.0000000000000000e+00 6.0643210833484844e+01 4.4217586132287154e+00 2.9839687873470425e+01 0 0 0 +1500 0 1 0.0000000000000000e+00 5.8182495072312371e+01 6.3454350619452633e+00 3.1872094865580852e+01 0 0 0 +1499 0 1 0.0000000000000000e+00 5.6246797832584740e+01 3.4473166524391816e+00 2.9826699156516408e+01 0 0 0 +1498 0 1 0.0000000000000000e+00 5.4171011035845900e+01 6.1512251210373288e+00 3.1446704334440739e+01 0 0 0 +1497 0 1 0.0000000000000000e+00 5.2256318959056998e+01 4.4035800014511528e+00 2.9122110775829903e+01 0 0 0 +1488 0 1 0.0000000000000000e+00 6.7300464382415868e+01 2.0167120917341594e+00 3.2614753114203445e+01 0 0 0 +1486 0 1 0.0000000000000000e+00 6.2687444547073589e+01 1.9797658812285783e+00 3.2075940363227765e+01 0 0 0 +1484 0 1 0.0000000000000000e+00 5.8619808833434526e+01 2.1585499090097016e+00 3.1751925829263726e+01 0 0 0 +1515 0 1 0.0000000000000000e+00 5.6229814949706011e+01 9.0857132080237566e+00 3.0838110374182538e+01 0 0 0 +1482 0 1 0.0000000000000000e+00 5.3716763265007891e+01 1.9640718191566742e+00 3.1602698770817735e+01 0 0 0 +1871 0 1 0.0000000000000000e+00 6.4747192702332100e+01 1.6636645933219928e+01 2.0540090069459417e+01 0 0 0 +1472 0 1 0.0000000000000000e+00 6.7228452877693385e+01 1.5209064169260746e+01 2.7861710502942316e+01 0 0 0 +1471 0 1 0.0000000000000000e+00 6.5054546200287731e+01 1.3000063172461411e+01 2.5805647011698834e+01 0 0 0 +1470 0 1 0.0000000000000000e+00 6.3027271796135423e+01 1.5753490982922470e+01 2.7442647316261830e+01 0 0 0 +1469 0 1 0.0000000000000000e+00 6.0900275877220544e+01 1.3294498095815205e+01 2.5642988811183230e+01 0 0 0 +1468 0 1 0.0000000000000000e+00 5.8459576170989735e+01 1.5933801485044748e+01 2.7737441703744516e+01 0 0 0 +1467 0 1 0.0000000000000000e+00 5.6286532641409266e+01 1.3269235430018098e+01 2.5653770134446688e+01 0 0 0 +1466 0 1 0.0000000000000000e+00 5.4212903385136634e+01 1.5800157179174155e+01 2.7347234061166699e+01 0 0 0 +53 0 1 0.0000000000000000e+00 3.4810155391859816e+01 1.8479901123778323e+01 4.5059089155802239e+00 0 0 0 +1456 0 1 0.0000000000000000e+00 6.7170617873064515e+01 1.0729688798375665e+01 2.7890412953831547e+01 0 0 0 +1455 0 1 0.0000000000000000e+00 6.4462902880104963e+01 8.9027276013373076e+00 2.5620109847815637e+01 0 0 0 +1454 0 1 0.0000000000000000e+00 6.2437066324168320e+01 1.0479805128809824e+01 2.7852314015528862e+01 0 0 0 +1453 0 1 0.0000000000000000e+00 5.9704476121116585e+01 8.6079591362859915e+00 2.5348035984155231e+01 0 0 0 +1452 0 1 0.0000000000000000e+00 5.8748404751210778e+01 1.0763611606429651e+01 2.8156978189157051e+01 0 0 0 +1451 0 1 0.0000000000000000e+00 5.6268387976069235e+01 8.5180196647179915e+00 2.5165308029629173e+01 0 0 0 +1450 0 1 0.0000000000000000e+00 5.4536804689163617e+01 1.0726077960221167e+01 2.8704219388723764e+01 0 0 0 +1052 0 1 0.0000000000000000e+00 5.8408598896898305e+01 5.7187129125138174e+00 1.6736235888646394e+00 0 0 0 +1440 0 1 0.0000000000000000e+00 6.6624414977520800e+01 6.6874628563012131e+00 2.7866888652371433e+01 0 0 0 +1439 0 1 0.0000000000000000e+00 6.5099740304101189e+01 4.6150499019945519e+00 2.5712894816730049e+01 0 0 0 +1438 0 1 0.0000000000000000e+00 6.2595330146459254e+01 6.8076891885322475e+00 2.7938759325280067e+01 0 0 0 +1437 0 1 0.0000000000000000e+00 6.0082023300250050e+01 4.8561755690686956e+00 2.5736980841635468e+01 0 0 0 +1436 0 1 0.0000000000000000e+00 5.8153000554220277e+01 7.0390199222680074e+00 2.8367047379742161e+01 0 0 0 +1435 0 1 0.0000000000000000e+00 5.6279266721778683e+01 4.3932256238961109e+00 2.5223976440596996e+01 0 0 0 +1434 0 1 0.0000000000000000e+00 5.4546584967098390e+01 6.4419984423269812e+00 2.7764637480151205e+01 0 0 0 +1424 0 1 0.0000000000000000e+00 6.7537349345065692e+01 1.8504107489234780e+00 2.7827364792234427e+01 0 0 0 +1422 0 1 0.0000000000000000e+00 6.2513194034471269e+01 1.2039390952694637e+00 2.8294780096970694e+01 0 0 0 +1420 0 1 0.0000000000000000e+00 5.8733190520437091e+01 2.1186633707931266e+00 2.7958032057188600e+01 0 0 0 +1418 0 1 0.0000000000000000e+00 5.4169544395683410e+01 1.7274029495289718e+00 2.7336667305338821e+01 0 0 0 +1529 0 1 0.0000000000000000e+00 5.1905002891029959e+01 1.2858758238771543e+01 3.4182066006598561e+01 0 0 0 +1530 0 1 0.0000000000000000e+00 5.3891856851809159e+01 1.5615105984834457e+01 3.1775297477614561e+01 0 0 0 +1531 0 1 0.0000000000000000e+00 5.6600735174708255e+01 1.3417109350513105e+01 3.0221937486247889e+01 0 0 0 +1532 0 1 0.0000000000000000e+00 5.8644182109341664e+01 1.5836723839543621e+01 3.1844407502253027e+01 0 0 0 +1408 0 1 0.0000000000000000e+00 6.6677707275747736e+01 1.5680428097983192e+01 2.3187790011826614e+01 0 0 0 +1407 0 1 0.0000000000000000e+00 6.4802604088637125e+01 1.2967332964329556e+01 2.1143167290802058e+01 0 0 0 +1406 0 1 0.0000000000000000e+00 6.2892864103034746e+01 1.4955608220241139e+01 2.3323269220389346e+01 0 0 0 +1405 0 1 0.0000000000000000e+00 6.0753157230837388e+01 1.3845903857265474e+01 2.1060264098061971e+01 0 0 0 +1404 0 1 0.0000000000000000e+00 5.8364095937094348e+01 1.5287602804012247e+01 2.3478767451672248e+01 0 0 0 +1403 0 1 0.0000000000000000e+00 5.6005045410099306e+01 1.3233041740935930e+01 2.1699528589302048e+01 0 0 0 +1402 0 1 0.0000000000000000e+00 5.1761050925700751e+01 1.7336034566960095e+01 2.5228543943744786e+01 0 0 0 +1054 0 1 0.0000000000000000e+00 6.2451512762378911e+01 5.8575279372201248e+00 1.5092971463455480e+00 0 0 0 +1392 0 1 0.0000000000000000e+00 6.6736085051411166e+01 1.0344576488983790e+01 2.3097860527674300e+01 0 0 0 +1391 0 1 0.0000000000000000e+00 6.4769628250329035e+01 8.5765954593195293e+00 2.0789368310101349e+01 0 0 0 +1390 0 1 0.0000000000000000e+00 6.2066797698762791e+01 1.0653590861194552e+01 2.3479999553890959e+01 0 0 0 +1389 0 1 0.0000000000000000e+00 6.0724773319260606e+01 8.4742063079449821e+00 2.1132408710845613e+01 0 0 0 +1388 0 1 0.0000000000000000e+00 5.8690076019342037e+01 1.1837521619959091e+01 2.3448536752866698e+01 0 0 0 +1387 0 1 0.0000000000000000e+00 5.6611627607589810e+01 8.9662449079552040e+00 2.1043497107091966e+01 0 0 0 +1386 0 1 0.0000000000000000e+00 5.3326162798457418e+01 1.1154099656474223e+01 2.3107435142795190e+01 0 0 0 +1376 0 1 0.0000000000000000e+00 6.7315080110734499e+01 6.1170635541690856e+00 2.3278299719125563e+01 0 0 0 +1375 0 1 0.0000000000000000e+00 6.4922980751282154e+01 4.0037838152958880e+00 2.1663990420497864e+01 0 0 0 +1374 0 1 0.0000000000000000e+00 6.2866010340610664e+01 6.2957595465486138e+00 2.3251971398044020e+01 0 0 0 +1373 0 1 0.0000000000000000e+00 6.0944294923734525e+01 3.6098507421338248e+00 2.1744424680740668e+01 0 0 0 +1372 0 1 0.0000000000000000e+00 5.8717839992572365e+01 6.1618150153777931e+00 2.2783860802376562e+01 0 0 0 +1371 0 1 0.0000000000000000e+00 5.6128715265117414e+01 4.7804544634635837e+00 2.1547580918964584e+01 0 0 0 +1370 0 1 0.0000000000000000e+00 5.4209047477858505e+01 6.7233741183979916e+00 2.3098424381117454e+01 0 0 0 +1360 0 1 0.0000000000000000e+00 6.7421960920453301e+01 1.9106326085830290e+00 2.3480223645263340e+01 0 0 0 +1533 0 1 0.0000000000000000e+00 6.0882907199787645e+01 1.3454540200184722e+01 2.9694748380971408e+01 0 0 0 +1358 0 1 0.0000000000000000e+00 6.3139269735622321e+01 2.3257979085639939e+00 2.4244579569303443e+01 0 0 0 +1516 0 1 0.0000000000000000e+00 5.8916618088948042e+01 1.0783630810463769e+01 3.2207902140238559e+01 0 0 0 +1356 0 1 0.0000000000000000e+00 5.8593848906103695e+01 1.8881919267660456e+00 2.3613191968436173e+01 0 0 0 +1534 0 1 0.0000000000000000e+00 6.2932923917542809e+01 1.5173156428655799e+01 3.1958813823894005e+01 0 0 0 +1354 0 1 0.0000000000000000e+00 5.3721617988002606e+01 2.3044211115287347e+00 2.3338547078877419e+01 0 0 0 +1535 0 1 0.0000000000000000e+00 6.4647529182226762e+01 1.2916202916110947e+01 2.9277257023835848e+01 0 0 0 +1536 0 1 0.0000000000000000e+00 6.6853712489406433e+01 1.5238138743992929e+01 3.2005849821049104e+01 0 0 0 +1344 0 1 0.0000000000000000e+00 6.7235038673132195e+01 1.5639690988979197e+01 1.8669849646531588e+01 0 0 0 +1517 0 1 0.0000000000000000e+00 6.0634533149920806e+01 8.7846889746061372e+00 3.0185636084526426e+01 0 0 0 +1342 0 1 0.0000000000000000e+00 6.2596624551551571e+01 1.5339526889946850e+01 1.8520839820688874e+01 0 0 0 +1518 0 1 0.0000000000000000e+00 6.2798595734008089e+01 1.1441171363707523e+01 3.2232244077954597e+01 0 0 0 +1340 0 1 0.0000000000000000e+00 5.7806725544669163e+01 1.5311072135473122e+01 1.8647784957503330e+01 0 0 0 +1311 0 1 0.0000000000000000e+00 6.4537821743864626e+01 3.6311884198676871e+00 1.6916805156513536e+01 0 0 0 +1338 0 1 0.0000000000000000e+00 5.3649314042786791e+01 1.5581740834233949e+01 1.8734234809587626e+01 0 0 0 +1519 0 1 0.0000000000000000e+00 6.4581267263966183e+01 8.8709089155628646e+00 2.9822674780302936e+01 0 0 0 +1520 0 1 0.0000000000000000e+00 6.6586855095800033e+01 1.0990482987998698e+01 3.1901925416607295e+01 0 0 0 +1357 0 1 0.0000000000000000e+00 6.0956614722993208e+01 2.2146370607489413e-01 2.1295279666245992e+01 0 0 0 +1328 0 1 0.0000000000000000e+00 6.6780625609134276e+01 1.0524571627517716e+01 1.8940256204117617e+01 0 0 0 +1326 0 1 0.0000000000000000e+00 6.2453348943634545e+01 1.1089017577679927e+01 1.8743033053665002e+01 0 0 0 +1514 0 1 0.0000000000000000e+00 5.4806894211528174e+01 1.1135997599956259e+01 3.2837051617527621e+01 0 0 0 +1324 0 1 0.0000000000000000e+00 5.8771282368346121e+01 1.1184392000363735e+01 1.9396570347337939e+01 0 0 0 +1865 0 1 0.0000000000000000e+00 5.1552912445574691e+01 1.7039161953237571e+01 2.1269230967855560e+01 0 0 0 +1322 0 1 0.0000000000000000e+00 5.4422083837008465e+01 1.0829099100651701e+01 1.9164782414909777e+01 0 0 0 +1323 0 1 0.0000000000000000e+00 5.6561766253590520e+01 8.4235809884532085e+00 1.7691125194998474e+01 0 0 0 +1055 0 1 0.0000000000000000e+00 6.5231756481542973e+01 4.1763980341441922e+00 5.4545306937083947e-02 0 0 0 +1935 0 1 0.0000000000000000e+00 6.5000913080685947e+01 1.7793215257814698e+01 2.5814846728279196e+01 0 0 0 +1312 0 1 0.0000000000000000e+00 6.6834437306551408e+01 6.1593781077794727e+00 1.9086465569677202e+01 0 0 0 +1310 0 1 0.0000000000000000e+00 6.3001820697421969e+01 5.8011820675480550e+00 1.9457956281701449e+01 0 0 0 +1071 0 1 0.0000000000000000e+00 6.4796521225403723e+01 8.3206368734873841e+00 3.4332476671994215e+01 0 0 -1 +1308 0 1 0.0000000000000000e+00 5.8768651171234715e+01 5.8777247634981444e+00 1.9534267810125218e+01 0 0 0 +1487 0 1 0.0000000000000000e+00 6.5921261905062067e+01 3.4241217380072115e+01 3.0263391404757456e+01 0 -1 0 +1306 0 1 0.0000000000000000e+00 5.3662847518524998e+01 6.6350433289593855e+00 1.9377035506521487e+01 0 0 0 +1485 0 1 0.0000000000000000e+00 6.0445118995560286e+01 3.4370190064543813e+01 3.0297224177241830e+01 0 -1 0 +1296 0 1 0.0000000000000000e+00 6.7147617129732595e+01 2.0171254087247670e+00 1.8985016109353541e+01 0 0 0 +1294 0 1 0.0000000000000000e+00 6.2640969054801637e+01 2.0417671399032216e+00 1.8729808113381392e+01 0 0 0 +1051 0 1 0.0000000000000000e+00 5.5791648143847979e+01 3.8111481289255367e+00 3.4440782078701638e+01 0 0 -1 +1292 0 1 0.0000000000000000e+00 5.8846593312570185e+01 2.1325998832605682e+00 1.9018753404614753e+01 0 0 0 +1290 0 1 0.0000000000000000e+00 5.3503020611045464e+01 2.4390111888905315e+00 1.9102172386628446e+01 0 0 0 +1931 0 1 0.0000000000000000e+00 5.3623075197357338e+01 1.5078082508394832e+01 2.3512173974337230e+01 0 0 0 +1807 0 1 0.0000000000000000e+00 6.4512659136847006e+01 1.7531301535271911e+01 1.6828590734589955e+01 0 0 0 +1483 0 1 0.0000000000000000e+00 5.6090224634153465e+01 3.4419725507235846e+01 2.9703975663104579e+01 0 -1 0 +1547 0 1 0.0000000000000000e+00 5.6382294106156685e+01 1.7452432613228805e+01 3.3850648466522564e+01 0 0 -1 +1037 0 1 0.0000000000000000e+00 6.0286660980518562e+01 3.3847704967972845e+01 3.3858377991042765e+01 0 -1 -1 +2048 0 1 0.0000000000000000e+00 6.7554755533516015e+01 3.2034927526120633e+01 3.2975328418254350e+01 0 0 0 +2047 0 1 0.0000000000000000e+00 6.5667772040578754e+01 3.0619777575856734e+01 2.9600395944379247e+01 0 0 0 +1802 0 1 0.0000000000000000e+00 5.3941264273968187e+01 1.9665213646724936e+01 1.8867403106183311e+01 0 0 0 +2046 0 1 0.0000000000000000e+00 6.2971108887009535e+01 3.2019313246621330e+01 3.2076839404288386e+01 0 0 0 +1804 0 1 0.0000000000000000e+00 5.7903471976108925e+01 1.9104946032093522e+01 1.8822850505214124e+01 0 0 0 +2045 0 1 0.0000000000000000e+00 6.0369798634583908e+01 3.0360641621137411e+01 2.9788375361668621e+01 0 0 0 +1806 0 1 0.0000000000000000e+00 6.2587826032774650e+01 1.8929723331773854e+01 1.9048476169377814e+01 0 0 0 +1359 0 1 0.0000000000000000e+00 6.4896125988575051e+01 3.4425925251954865e+01 2.1080342555763746e+01 0 -1 0 +1808 0 1 0.0000000000000000e+00 6.6528571976683054e+01 1.9562478105251536e+01 1.8865103217168244e+01 0 0 0 +1417 0 1 0.0000000000000000e+00 5.1921227065891678e+01 1.4381452370702177e-01 2.5297116508037750e+01 0 0 0 +1818 0 1 0.0000000000000000e+00 5.3934829270206421e+01 2.3589937699383235e+01 1.9077194671799063e+01 0 0 0 +1820 0 1 0.0000000000000000e+00 5.8261193882039741e+01 2.3667451874244023e+01 1.9231183771527455e+01 0 0 0 +1822 0 1 0.0000000000000000e+00 6.2283669667936827e+01 2.3489333478098985e+01 1.9309578072932108e+01 0 0 0 +1824 0 1 0.0000000000000000e+00 6.7055531387823166e+01 2.3786892171474559e+01 1.8703414995777369e+01 0 0 0 +1995 0 1 0.0000000000000000e+00 5.6461528020374047e+01 1.7478942298024290e+01 3.0175882636470305e+01 0 0 0 +1839 0 1 0.0000000000000000e+00 6.4487925373263181e+01 2.5776329973530213e+01 1.6948262708545958e+01 0 0 0 +1999 0 1 0.0000000000000000e+00 6.4904981422658139e+01 1.7419767820854080e+01 2.9676020002359799e+01 0 0 0 +2031 0 1 0.0000000000000000e+00 6.4961683763090150e+01 2.6079704507425863e+01 2.9694483476322571e+01 0 0 0 +1834 0 1 0.0000000000000000e+00 5.3916208115444029e+01 2.7433186623559319e+01 1.8896892697224601e+01 0 0 0 +1836 0 1 0.0000000000000000e+00 5.8027791021886713e+01 2.8242583543435639e+01 1.9114230019164292e+01 0 0 0 +1563 0 1 0.0000000000000000e+00 5.5846024654531362e+01 2.1792440300668435e+01 3.4476528715549549e+01 0 0 -1 +1838 0 1 0.0000000000000000e+00 6.2372608375954414e+01 2.7808520477477764e+01 1.8837493169066207e+01 0 0 0 +1840 0 1 0.0000000000000000e+00 6.6318111682348274e+01 2.7945517627296219e+01 1.8609578602260559e+01 0 0 0 +1579 0 1 0.0000000000000000e+00 5.5869017496699186e+01 2.5965704313895909e+01 3.4071579097563330e+01 0 0 -1 +2029 0 1 0.0000000000000000e+00 6.0557536238913293e+01 2.6138033347587257e+01 2.9527269002906710e+01 0 0 0 +2028 0 1 0.0000000000000000e+00 5.8278541471759539e+01 2.7933519135102500e+01 3.2015765372096197e+01 0 0 0 +2027 0 1 0.0000000000000000e+00 5.6775287057559417e+01 2.5575899696598864e+01 2.9659846594876477e+01 0 0 0 +2026 0 1 0.0000000000000000e+00 5.4664613312650253e+01 2.7850849078607734e+01 3.1883174577933413e+01 0 0 0 +1850 0 1 0.0000000000000000e+00 5.4089656843490090e+01 3.2797887399505676e+01 1.9333767997779063e+01 0 0 0 +1561 0 1 0.0000000000000000e+00 5.1013237511151281e+01 2.2292399586237355e+01 3.3385022842259609e+01 0 0 -1 +1852 0 1 0.0000000000000000e+00 5.7612227829572156e+01 3.3449990446649842e+01 1.9119728707083933e+01 0 0 0 +1854 0 1 0.0000000000000000e+00 6.2345791278543786e+01 3.2157847919442808e+01 1.8589864597170173e+01 0 0 0 +2032 0 1 0.0000000000000000e+00 6.7191259495159059e+01 2.7588398874389014e+01 3.2047364462109691e+01 0 0 0 +1856 0 1 0.0000000000000000e+00 6.6513261686214477e+01 3.2121534412055397e+01 1.8911241868236822e+01 0 0 0 +2044 0 1 0.0000000000000000e+00 5.7174328508464740e+01 3.2053711499981105e+01 3.2034307998087712e+01 0 0 0 +2043 0 1 0.0000000000000000e+00 5.5848021183990873e+01 3.0351025003642185e+01 2.9348502469726515e+01 0 0 0 +1423 0 1 0.0000000000000000e+00 6.4952352517406709e+01 9.6983051162515405e-02 2.5398134535405546e+01 0 0 0 +2042 0 1 0.0000000000000000e+00 5.3546605591633153e+01 3.2005680789985988e+01 3.1619027788137711e+01 0 0 0 +1823 0 1 0.0000000000000000e+00 6.4652309031906796e+01 2.1629307536751678e+01 1.6943526615592251e+01 0 0 0 +1866 0 1 0.0000000000000000e+00 5.3611710170371765e+01 1.9596656182018098e+01 2.2957114946253466e+01 0 0 0 +1868 0 1 0.0000000000000000e+00 5.8406397007181567e+01 1.9179584008575745e+01 2.3404780799474160e+01 0 0 0 +1870 0 1 0.0000000000000000e+00 6.2878609841992422e+01 1.8736296934140036e+01 2.2697015528192910e+01 0 0 0 +1872 0 1 0.0000000000000000e+00 6.7311354371698073e+01 1.9731206882357103e+01 2.3024445996275070e+01 0 0 0 +1231 0 1 0.0000000000000000e+00 6.4484280260460480e+01 3.4351879270781410e+01 1.2835091805120017e+01 0 -1 0 +1882 0 1 0.0000000000000000e+00 5.3925749291623902e+01 2.3245849458753487e+01 2.3549239909231034e+01 0 0 0 +1883 0 1 0.0000000000000000e+00 5.5969474820233025e+01 2.1216675876926452e+01 2.1078292259298973e+01 0 0 0 +1884 0 1 0.0000000000000000e+00 5.8005512762491122e+01 2.2951164830060808e+01 2.3398298944044615e+01 0 0 0 +1885 0 1 0.0000000000000000e+00 6.0479889720444795e+01 2.1251434863956565e+01 2.0825972260593108e+01 0 0 0 +1886 0 1 0.0000000000000000e+00 6.2118460464416714e+01 2.3352669005783042e+01 2.2742274401022993e+01 0 0 0 +1887 0 1 0.0000000000000000e+00 6.4786197897191954e+01 2.1465079944670723e+01 2.1072752903738788e+01 0 0 0 +1888 0 1 0.0000000000000000e+00 6.6571249092967889e+01 2.3610550052984646e+01 2.2718660309036547e+01 0 0 0 +1034 0 1 0.0000000000000000e+00 5.3278945234263702e+01 2.0326927362158740e+00 2.0971333763055759e+00 0 0 0 +1898 0 1 0.0000000000000000e+00 5.4335927192783757e+01 2.8170135496930278e+01 2.3003282919382841e+01 0 0 0 +1899 0 1 0.0000000000000000e+00 5.6066749790324444e+01 2.5433648809524612e+01 2.1305812967226039e+01 0 0 0 +1900 0 1 0.0000000000000000e+00 5.8358397897360057e+01 2.8574943157094495e+01 2.2938432918390401e+01 0 0 0 +1901 0 1 0.0000000000000000e+00 6.0058096913192571e+01 2.5514775245911476e+01 2.1496843044000656e+01 0 0 0 +1902 0 1 0.0000000000000000e+00 6.2409731034135305e+01 2.7792097383090173e+01 2.3236425319811492e+01 0 0 0 +1903 0 1 0.0000000000000000e+00 6.4574307442853694e+01 2.5555280778155947e+01 2.0746668098491554e+01 0 0 0 +1904 0 1 0.0000000000000000e+00 6.6330605656145522e+01 2.7954712126323830e+01 2.2233047023632775e+01 0 0 0 +339 0 1 0.0000000000000000e+00 3.8951623741033444e+01 5.9649514979481588e-01 3.8410584201320574e+00 0 0 0 +1914 0 1 0.0000000000000000e+00 5.4394240577785631e+01 3.2796208813737010e+01 2.2942756361237507e+01 0 0 0 +1915 0 1 0.0000000000000000e+00 5.5794696183730998e+01 3.0677111729501945e+01 2.1270636772794870e+01 0 0 0 +1916 0 1 0.0000000000000000e+00 5.8383010158809519e+01 3.2504465543747422e+01 2.2766143707824025e+01 0 0 0 +1917 0 1 0.0000000000000000e+00 6.0382977840551114e+01 3.0575955637577980e+01 2.0632605108760210e+01 0 0 0 +1918 0 1 0.0000000000000000e+00 6.2467681987885655e+01 3.2063425081777268e+01 2.3588175834244069e+01 0 0 0 +1919 0 1 0.0000000000000000e+00 6.4382390990908917e+01 3.0070183784195816e+01 2.0897997203554031e+01 0 0 0 +1920 0 1 0.0000000000000000e+00 6.6820818014776890e+01 3.2274240165530074e+01 2.2823021139331843e+01 0 0 0 +1548 0 1 0.0000000000000000e+00 5.8330289468417135e+01 1.9766415299320236e+01 1.7900029826971779e+00 0 0 0 +1930 0 1 0.0000000000000000e+00 5.4484147474471612e+01 1.9413317032893531e+01 2.6916482189214467e+01 0 0 0 +1932 0 1 0.0000000000000000e+00 5.6203392128176645e+01 1.7328089624546955e+01 2.5143078444449234e+01 0 0 0 +1934 0 1 0.0000000000000000e+00 6.2923092168308237e+01 1.9965957556645620e+01 2.7827673606180095e+01 0 0 0 +1036 0 1 0.0000000000000000e+00 5.8774383687949211e+01 1.8224302960662728e+00 1.2641410459778732e+00 0 0 0 +1936 0 1 0.0000000000000000e+00 6.7365514174682730e+01 1.9564635147295370e+01 2.7356637352900911e+01 0 0 0 +1050 0 1 0.0000000000000000e+00 5.3697033456074458e+01 6.9738159062803033e+00 1.1713281463120715e+00 0 0 0 +1946 0 1 0.0000000000000000e+00 5.4114438539870072e+01 2.3587772686374386e+01 2.7184679491829904e+01 0 0 0 +1947 0 1 0.0000000000000000e+00 5.5869891385377478e+01 2.1179264402406766e+01 2.5019002799382491e+01 0 0 0 +1948 0 1 0.0000000000000000e+00 5.8437003520912100e+01 2.3013838100221331e+01 2.6924247773241170e+01 0 0 0 +1949 0 1 0.0000000000000000e+00 6.0823916155225383e+01 2.1194655646919358e+01 2.4989878727265040e+01 0 0 0 +1950 0 1 0.0000000000000000e+00 6.2660851048329235e+01 2.4228205413243156e+01 2.7320763245886262e+01 0 0 0 +1951 0 1 0.0000000000000000e+00 6.4821751184627814e+01 2.1474668973309559e+01 2.5286516821797534e+01 0 0 0 +1952 0 1 0.0000000000000000e+00 6.6475506306808327e+01 2.3690951947566067e+01 2.6972419346839576e+01 0 0 0 +1041 0 1 0.0000000000000000e+00 3.7347066240251664e+01 5.6451578840770686e+00 2.8122192303813353e+01 0 0 -1 +1961 0 1 0.0000000000000000e+00 5.1751289426200181e+01 2.5764785043767890e+01 2.5486264261318968e+01 0 0 0 +1962 0 1 0.0000000000000000e+00 5.4241871743192760e+01 2.7877024017469488e+01 2.6982969245914020e+01 0 0 0 +1963 0 1 0.0000000000000000e+00 5.6193858769640585e+01 2.5728659450010991e+01 2.4901900284006704e+01 0 0 0 +1964 0 1 0.0000000000000000e+00 5.7743591211441547e+01 2.8062455456289012e+01 2.7637159510720377e+01 0 0 0 +1965 0 1 0.0000000000000000e+00 5.9897592440898563e+01 2.6005207998075043e+01 2.5464564670359014e+01 0 0 0 +1966 0 1 0.0000000000000000e+00 6.2492255888035025e+01 2.8086070736020908e+01 2.7344224539690963e+01 0 0 0 +1967 0 1 0.0000000000000000e+00 6.4641964369971703e+01 2.5650761780260947e+01 2.4704279389718337e+01 0 0 0 +1968 0 1 0.0000000000000000e+00 6.7199244085411124e+01 2.7723873968427608e+01 2.7821660180164553e+01 0 0 0 +886 0 1 0.0000000000000000e+00 3.4866840178200320e+01 1.2016525926043185e+01 1.0686260060072945e+01 0 1 1 +1978 0 1 0.0000000000000000e+00 5.3612263287389062e+01 3.2465510416370698e+01 2.7723058155452772e+01 0 0 0 +1979 0 1 0.0000000000000000e+00 5.6215503478642589e+01 3.0392798149868728e+01 2.5118433246964052e+01 0 0 0 +1980 0 1 0.0000000000000000e+00 5.8525554709505194e+01 3.2797232350424103e+01 2.7958207446479417e+01 0 0 0 +1981 0 1 0.0000000000000000e+00 5.9861455179257746e+01 3.0161742451428751e+01 2.5444831702144409e+01 0 0 0 +1982 0 1 0.0000000000000000e+00 6.2760421255797894e+01 3.2047826280754464e+01 2.7482042446225485e+01 0 0 0 +1983 0 1 0.0000000000000000e+00 6.5128170686670742e+01 2.9841022937866782e+01 2.5926867553232157e+01 0 0 0 +1984 0 1 0.0000000000000000e+00 6.7691898631334951e+01 3.2397648208349949e+01 2.7318088034571037e+01 0 0 0 +2030 0 1 0.0000000000000000e+00 6.2738282856471308e+01 2.8012489551090194e+01 3.1861779228360508e+01 0 0 0 +1994 0 1 0.0000000000000000e+00 5.4271963898832908e+01 2.0057572599064727e+01 3.0924172853277760e+01 0 0 0 +1996 0 1 0.0000000000000000e+00 5.8284522365970190e+01 2.0071816998506293e+01 3.1746706472492594e+01 0 0 0 +1929 0 1 0.0000000000000000e+00 4.9533894045679062e+01 1.9188563155799706e+01 2.7799420373072586e+01 0 0 0 +1998 0 1 0.0000000000000000e+00 6.2639988860210060e+01 1.9634845710784077e+01 3.1753775964077317e+01 0 0 0 +2000 0 1 0.0000000000000000e+00 6.6827489511499692e+01 1.9625815678732380e+01 3.2466354783181593e+01 0 0 0 +1634 0 1 0.0000000000000000e+00 3.7658762203096707e+01 2.3399251884880755e+01 5.3991583225009441e+00 0 0 0 +2009 0 1 0.0000000000000000e+00 5.2218350251178144e+01 2.1721163332071136e+01 2.9601310245416006e+01 0 0 0 +2010 0 1 0.0000000000000000e+00 5.3683045886965374e+01 2.4118323844202376e+01 3.1418113551163742e+01 0 0 0 +2011 0 1 0.0000000000000000e+00 5.6237259998003445e+01 2.2125632754060824e+01 2.9570860273052784e+01 0 0 0 +2012 0 1 0.0000000000000000e+00 5.8554542328649447e+01 2.3765485897961664e+01 3.2590471844166196e+01 0 0 0 +2013 0 1 0.0000000000000000e+00 5.8591209194326211e+01 1.9385386883465635e+01 2.7074650553128397e+01 0 0 0 +2014 0 1 0.0000000000000000e+00 6.0607252544471109e+01 2.2133727939499344e+01 2.9671277516974918e+01 0 0 0 +2015 0 1 0.0000000000000000e+00 6.5449009906996992e+01 2.2235928853677937e+01 3.0187911117530000e+01 0 0 0 +2016 0 1 0.0000000000000000e+00 6.7491857531540035e+01 2.3725751089938637e+01 3.2659660336677696e+01 0 0 0 +492 0 1 0.0000000000000000e+00 3.8075410910314147e+01 1.0581188251944855e+01 4.9536571281985458e+00 0 0 1 +1851 0 1 0.0000000000000000e+00 5.5982063202140154e+01 3.0531097247930415e+01 1.7730856104917219e+01 0 0 0 +1421 0 1 0.0000000000000000e+00 6.0806411199166917e+01 7.6052262009386487e-02 2.5547711129899632e+01 0 0 0 +1577 0 1 0.0000000000000000e+00 5.1947896136628778e+01 2.6591031234889918e+01 3.3697543781238203e+01 0 0 -1 +1855 0 1 0.0000000000000000e+00 6.4398218213998845e+01 3.0129945090781597e+01 1.6389559635249480e+01 0 0 0 +18 0 1 0.0000000000000000e+00 3.9672079411961221e+01 2.1738996416707050e+01 3.0546362095422097e+01 0 0 0 +1869 0 1 0.0000000000000000e+00 6.0332102104544930e+01 1.7199988621212686e+01 2.0666380231055633e+01 0 0 0 +1419 0 1 0.0000000000000000e+00 5.6195061523864020e+01 3.4469500735948152e+01 2.5526206211025464e+01 0 -1 0 +1595 0 1 0.0000000000000000e+00 5.5121884496603279e+01 3.0359958630606044e+01 4.3325188341673149e-02 0 0 0 +1295 0 1 0.0000000000000000e+00 6.4542145235758241e+01 3.4064219378304756e+01 1.6786657953343816e+01 0 -1 0 +1481 0 1 0.0000000000000000e+00 5.1703723369789920e+01 3.2500769048765588e-01 3.0034736458740909e+01 0 0 0 +1355 0 1 0.0000000000000000e+00 5.6113607970114373e+01 1.0753382146396828e+00 2.1072717956086340e+01 0 0 0 +1597 0 1 0.0000000000000000e+00 6.0511220899465641e+01 3.0089803663263144e+01 3.3402409252861183e+01 0 0 -1 +1565 0 1 0.0000000000000000e+00 6.0486070722019804e+01 2.1187839208527226e+01 3.3820969897056926e+01 0 0 -1 +1307 0 1 0.0000000000000000e+00 5.6474319197519321e+01 4.0771464726080051e+00 1.7762746071794886e+01 0 0 0 +1278 0 1 0.0000000000000000e+00 6.2213962234465271e+01 1.5468377187989159e+01 1.4411181255077924e+01 0 0 0 +1611 0 1 0.0000000000000000e+00 5.6264322188490567e+01 1.6926921439754196e+01 3.6321506384092221e+00 0 0 0 +1039 0 1 0.0000000000000000e+00 6.5099831726238079e+01 3.4468830979110727e+01 5.4372419669367011e-02 0 -1 0 +1792 0 1 0.0000000000000000e+00 6.6828878908040664e+01 3.2073263843760330e+01 1.4952089147672517e+01 0 0 0 +1038 0 1 0.0000000000000000e+00 6.2358417670160549e+01 2.0707503370408094e+00 1.2220675298253072e+00 0 0 0 +1679 0 1 0.0000000000000000e+00 6.4678592620954248e+01 1.7405997018113364e+01 8.0081749230601460e+00 0 0 0 +1849 0 1 0.0000000000000000e+00 5.1852932841362488e+01 3.0128222438575410e+01 1.7104358996003121e+01 0 0 0 +1853 0 1 0.0000000000000000e+00 5.9904488967502260e+01 3.0435364787608957e+01 1.7177351335038672e+01 0 0 0 +1085 0 1 0.0000000000000000e+00 6.0378632947190511e+01 1.3183019646702400e+01 3.4508100622725323e+01 0 0 -1 +1229 0 1 0.0000000000000000e+00 5.9906056409253509e+01 6.1815979663641041e-01 1.2535579478677827e+01 0 0 0 +1567 0 1 0.0000000000000000e+00 6.4727735280225076e+01 2.1336637838258884e+01 3.4061168088062459e+01 0 0 -1 +1101 0 1 0.0000000000000000e+00 6.0356671662532399e+01 7.6701472892657691e-02 4.0206694267467249e+00 0 0 0 +1677 0 1 0.0000000000000000e+00 6.0523451398700985e+01 1.7334965887022499e+01 8.2864235271279174e+00 0 0 0 +1067 0 1 0.0000000000000000e+00 5.6647566800630358e+01 8.5543768307031662e+00 3.4072068759737199e+01 0 0 -1 +1040 0 1 0.0000000000000000e+00 6.7178711542900601e+01 2.1300192659015784e+00 2.1002311513536345e+00 0 0 0 +1053 0 1 0.0000000000000000e+00 6.0181265962480808e+01 4.4575625569478383e+00 3.3429368145522332e+01 0 0 -1 +1069 0 1 0.0000000000000000e+00 6.0699182254263341e+01 8.1939016396366302e+00 3.4023384869903481e+01 0 0 -1 +1327 0 1 0.0000000000000000e+00 6.4573269246106051e+01 8.7221876103341245e+00 1.6937795305171662e+01 0 0 0 +1293 0 1 0.0000000000000000e+00 6.0529470337976470e+01 3.4522813852104285e+01 1.7160664299768726e+01 0 -1 0 +1309 0 1 0.0000000000000000e+00 6.0184503628858025e+01 3.9332183969324865e+00 1.6396923866157966e+01 0 0 0 +1837 0 1 0.0000000000000000e+00 6.0766245915063841e+01 2.5194523725293532e+01 1.6664361981992766e+01 0 0 0 +1833 0 1 0.0000000000000000e+00 5.2220685025613072e+01 2.5973646846010080e+01 1.5760570482224782e+01 0 0 0 +1905 0 1 0.0000000000000000e+00 6.8838350105454751e+01 2.9961768763452813e+01 2.0767976638349946e+01 -1 0 0 +1087 0 1 0.0000000000000000e+00 6.5315120360867709e+01 1.2870597405538854e+01 3.4128340562933438e+01 0 0 -1 +1058 0 1 0.0000000000000000e+00 3.7865211528102549e+01 3.1086144769263444e+00 3.1619240343289700e+01 0 0 -1 +1339 0 1 0.0000000000000000e+00 5.5827812239410576e+01 1.3191923799348297e+01 1.7340289732148761e+01 0 0 0 +1291 0 1 0.0000000000000000e+00 5.5822354095974084e+01 3.0052851550642967e-01 1.6857080710231710e+01 0 0 0 +1615 0 1 0.0000000000000000e+00 6.4906223474550885e+01 1.7232377041043446e+01 3.9007655321833687e+00 0 0 0 +1341 0 1 0.0000000000000000e+00 6.0170375995025552e+01 1.2988568274746875e+01 1.6267392405844586e+01 0 0 0 +1549 0 1 0.0000000000000000e+00 6.0441328851636349e+01 1.7304573581813724e+01 3.4289497568316413e+01 0 0 -1 +1165 0 1 0.0000000000000000e+00 6.0225060739720654e+01 9.9910522193430870e-02 7.9287053821001248e+00 0 0 0 +1083 0 1 0.0000000000000000e+00 5.6516868577185214e+01 1.3690199940464474e+01 3.3727770009320700e+01 0 0 -1 +1103 0 1 0.0000000000000000e+00 6.4361905220129245e+01 2.1333278843004799e-01 3.6302270264123422e+00 0 0 0 +1741 0 1 0.0000000000000000e+00 6.0253377841661731e+01 1.7585313866029374e+01 1.2416600645540203e+01 0 0 0 +1035 0 1 0.0000000000000000e+00 5.6126732611630935e+01 7.1841252671537653e-02 3.3800417621784440e+01 0 0 -1 +1821 0 1 0.0000000000000000e+00 6.0560098210901558e+01 2.1203668022339574e+01 1.7404157409695987e+01 0 0 0 +1248 0 1 0.0000000000000000e+00 6.6471152084541330e+01 6.0180283563782675e+00 1.5209579670948312e+01 0 0 0 +1247 0 1 0.0000000000000000e+00 6.4943301023073744e+01 4.1132289387422887e+00 1.2800219709824223e+01 0 0 0 +1246 0 1 0.0000000000000000e+00 6.2298631104768639e+01 6.5725388251359051e+00 1.4463333604352048e+01 0 0 0 +1245 0 1 0.0000000000000000e+00 6.0391837021792604e+01 4.4925702816804955e+00 1.2782228727128157e+01 0 0 0 +1244 0 1 0.0000000000000000e+00 5.8104908418724676e+01 6.6943629565141238e+00 1.4796547018176529e+01 0 0 0 +1243 0 1 0.0000000000000000e+00 5.6164329494302116e+01 4.3197014083470808e+00 1.3266602509618812e+01 0 0 0 +1242 0 1 0.0000000000000000e+00 5.4348816181631506e+01 6.5148004915910631e+00 1.5433544640331409e+01 0 0 0 +1583 0 1 0.0000000000000000e+00 6.4914544518194688e+01 2.6095052253900530e+01 3.4163676683970884e+01 0 0 -1 +1819 0 1 0.0000000000000000e+00 5.6406992075836271e+01 2.1821092262001422e+01 1.7002377798637720e+01 0 0 0 +1163 0 1 0.0000000000000000e+00 5.5814911650895723e+01 3.4496621130823598e+01 8.7717415696613337e+00 0 -1 0 +1167 0 1 0.0000000000000000e+00 6.4715672806234124e+01 3.4453878852588510e+01 8.5815750078666042e+00 0 -1 0 +1562 0 1 0.0000000000000000e+00 5.3523491332565499e+01 2.3736028564169015e+01 1.5051222983856540e+00 0 0 0 +1760 0 1 0.0000000000000000e+00 6.6960965589881454e+01 2.3660435004914696e+01 1.4948130255161271e+01 0 0 0 +1759 0 1 0.0000000000000000e+00 6.4848533605556710e+01 2.1263109547388641e+01 1.2458909376214358e+01 0 0 0 +1758 0 1 0.0000000000000000e+00 6.2658771037181886e+01 2.3425106319785417e+01 1.4811079023942716e+01 0 0 0 +1757 0 1 0.0000000000000000e+00 6.0436963621091571e+01 2.1274647122298362e+01 1.2982908663196437e+01 0 0 0 +1232 0 1 0.0000000000000000e+00 6.6838083926142815e+01 1.6267352577814809e+00 1.4781137781209532e+01 0 0 0 +1263 0 1 0.0000000000000000e+00 6.4845446792161169e+01 8.3263641806584410e+00 1.2669102721735937e+01 0 0 0 +1230 0 1 0.0000000000000000e+00 6.2374925988631951e+01 1.9566258494026596e+00 1.4153367860022906e+01 0 0 0 +1756 0 1 0.0000000000000000e+00 5.8319471090734844e+01 2.3745552733328417e+01 1.5139831718596938e+01 0 0 0 +1228 0 1 0.0000000000000000e+00 5.7890929169706432e+01 2.0410814958276191e+00 1.5046357218723816e+01 0 0 0 +1755 0 1 0.0000000000000000e+00 5.6026773945228804e+01 2.1887089252288231e+01 1.2942862588098405e+01 0 0 0 +1226 0 1 0.0000000000000000e+00 5.3100915388677215e+01 2.5987595635767127e+00 1.4640216191644969e+01 0 0 0 +1264 0 1 0.0000000000000000e+00 6.6820709415663629e+01 1.0757808332242698e+01 1.4654027449905138e+01 0 0 0 +1754 0 1 0.0000000000000000e+00 5.3575973820809892e+01 2.3332368408697338e+01 1.4775401699188951e+01 0 0 0 +1099 0 1 0.0000000000000000e+00 5.6123013045682363e+01 5.0778613785114068e-01 3.4790952818518499e+00 0 0 0 +1744 0 1 0.0000000000000000e+00 6.6997009279793573e+01 1.9430968279198712e+01 1.4843876515542751e+01 0 0 0 +1776 0 1 0.0000000000000000e+00 6.7251057195811981e+01 2.7636527452479726e+01 1.4588588335853769e+01 0 0 0 +1742 0 1 0.0000000000000000e+00 6.2572428885994981e+01 1.9365882409678154e+01 1.4562926884744769e+01 0 0 0 +1773 0 1 0.0000000000000000e+00 6.0143136615476173e+01 2.6054167113062100e+01 1.2554373809693644e+01 0 0 0 +1740 0 1 0.0000000000000000e+00 5.8389126518604904e+01 1.9804005080696154e+01 1.4988892992014602e+01 0 0 0 +1739 0 1 0.0000000000000000e+00 5.6157831671760505e+01 1.7872043663384982e+01 1.2520669959067879e+01 0 0 0 +1216 0 1 0.0000000000000000e+00 6.6221865097155700e+01 1.4810919161235869e+01 1.0449943577723676e+01 0 0 0 +1215 0 1 0.0000000000000000e+00 6.3896847561940454e+01 1.2685168765456266e+01 8.2624809111232249e+00 0 0 0 +1214 0 1 0.0000000000000000e+00 6.2207250697016107e+01 1.4955941648504043e+01 1.0716179858814831e+01 0 0 0 +1213 0 1 0.0000000000000000e+00 5.9937142607240489e+01 1.3126931172366316e+01 8.5971308190105269e+00 0 0 0 +1212 0 1 0.0000000000000000e+00 5.7790194584390441e+01 1.4416127431865664e+01 1.1014334231251933e+01 0 0 0 +1211 0 1 0.0000000000000000e+00 5.6053108266637977e+01 1.2622514724018345e+01 8.0434244921941360e+00 0 0 0 +1210 0 1 0.0000000000000000e+00 5.4127266666604726e+01 1.4866002514992035e+01 1.0295225116964829e+01 0 0 0 +1738 0 1 0.0000000000000000e+00 5.3548893605147065e+01 1.9822174526817090e+01 1.4759668093313012e+01 0 0 0 +1774 0 1 0.0000000000000000e+00 6.2166295132756460e+01 2.8269241088575352e+01 1.4874128121291770e+01 0 0 0 +1581 0 1 0.0000000000000000e+00 6.3250109469742682e+01 2.3804599241314762e+01 3.1707309774919405e+01 0 0 -1 +1772 0 1 0.0000000000000000e+00 5.8383178964603786e+01 2.8237685734396390e+01 1.4881094880877660e+01 0 0 0 +1728 0 1 0.0000000000000000e+00 6.6914482301213880e+01 3.2433591617992356e+01 1.0934439629940202e+01 0 0 0 +1727 0 1 0.0000000000000000e+00 6.4289951088390723e+01 3.0786652835769505e+01 8.5540729869287109e+00 0 0 0 +1726 0 1 0.0000000000000000e+00 6.2214644824618965e+01 3.2598387877682462e+01 1.0694230316306154e+01 0 0 0 +1725 0 1 0.0000000000000000e+00 6.0421647588719075e+01 3.0179584060734548e+01 8.4217600908093786e+00 0 0 0 +1724 0 1 0.0000000000000000e+00 5.8207754674975838e+01 3.2861322088638225e+01 1.0739284140548010e+01 0 0 0 +1200 0 1 0.0000000000000000e+00 6.6543290070255509e+01 1.0585451208240901e+01 1.0757854844380162e+01 0 0 0 +1199 0 1 0.0000000000000000e+00 6.4190362866434512e+01 8.0913630423818503e+00 8.5425497985758128e+00 0 0 0 +1198 0 1 0.0000000000000000e+00 6.2294689095099187e+01 1.0383167535079650e+01 1.0391633193088493e+01 0 0 0 +1197 0 1 0.0000000000000000e+00 6.0085611266869115e+01 7.9398720038419910e+00 8.4161273099513760e+00 0 0 0 +1196 0 1 0.0000000000000000e+00 5.8102651576274717e+01 1.0574567382946720e+01 1.0192702275460311e+01 0 0 0 +1195 0 1 0.0000000000000000e+00 5.6469033416669348e+01 8.2522910860034173e+00 8.0645551493867185e+00 0 0 0 +1194 0 1 0.0000000000000000e+00 5.4012277548901224e+01 1.0565257659785063e+01 1.0098554775271705e+01 0 0 0 +1723 0 1 0.0000000000000000e+00 5.6494185079152714e+01 3.0559516128620682e+01 8.3657297879487977e+00 0 0 0 +1722 0 1 0.0000000000000000e+00 5.3810646696904790e+01 3.2387515853748724e+01 1.0637458310057818e+01 0 0 0 +1712 0 1 0.0000000000000000e+00 6.6315899315886028e+01 2.8413701309942571e+01 1.0217678753359378e+01 0 0 0 +1711 0 1 0.0000000000000000e+00 6.4507845679186076e+01 2.5607589552175554e+01 9.0205764620838842e+00 0 0 0 +1710 0 1 0.0000000000000000e+00 6.2452668207245765e+01 2.8429242469051452e+01 1.0380055636694937e+01 0 0 0 +1709 0 1 0.0000000000000000e+00 6.0232477191259861e+01 2.5441472812680598e+01 8.0459303183274802e+00 0 0 0 +1708 0 1 0.0000000000000000e+00 5.8476683574423085e+01 2.7657495821358747e+01 1.0466825708716380e+01 0 0 0 +1707 0 1 0.0000000000000000e+00 5.6565611668353149e+01 2.6076918241690109e+01 7.9239851674001205e+00 0 0 0 +1706 0 1 0.0000000000000000e+00 5.4577725528963171e+01 2.7979513019086550e+01 1.0230869634581104e+01 0 0 0 +1184 0 1 0.0000000000000000e+00 6.7242493059102188e+01 6.2261548015788977e+00 1.0581356528350559e+01 0 0 0 +1183 0 1 0.0000000000000000e+00 6.4392891704027761e+01 4.1473708963862190e+00 8.1909661349987246e+00 0 0 0 +1182 0 1 0.0000000000000000e+00 6.2570440050890568e+01 6.0764404721245580e+00 1.0846944742593793e+01 0 0 0 +1181 0 1 0.0000000000000000e+00 5.9955101588959863e+01 3.8193410095332019e+00 8.6491186153638289e+00 0 0 0 +1180 0 1 0.0000000000000000e+00 5.8157461412369059e+01 6.5333996242011860e+00 1.0697561831546698e+01 0 0 0 +1179 0 1 0.0000000000000000e+00 5.5792231786976366e+01 4.4478815212338150e+00 8.0311394175039261e+00 0 0 0 +1178 0 1 0.0000000000000000e+00 5.4156002352776511e+01 6.6005560668339651e+00 1.0166519560344337e+01 0 0 0 +1325 0 1 0.0000000000000000e+00 6.0908032586781133e+01 7.7080433581994434e+00 1.7043462092418594e+01 0 0 0 +1696 0 1 0.0000000000000000e+00 6.7108780737024816e+01 2.3212064087299151e+01 1.0154198697781457e+01 0 0 0 +1695 0 1 0.0000000000000000e+00 6.4156861557574814e+01 2.1564510727384462e+01 8.4604690125213793e+00 0 0 0 +1694 0 1 0.0000000000000000e+00 6.2405782006301770e+01 2.3786185729741451e+01 1.1102792730583676e+01 0 0 0 +1693 0 1 0.0000000000000000e+00 6.0718923493486720e+01 2.1343923587912286e+01 8.6374917545556418e+00 0 0 0 +1692 0 1 0.0000000000000000e+00 5.8523046123615096e+01 2.3558143107275797e+01 1.0869683090203999e+01 0 0 0 +1691 0 1 0.0000000000000000e+00 5.7182378458986797e+01 2.2203567507295780e+01 7.8938916453185461e+00 0 0 0 +1690 0 1 0.0000000000000000e+00 5.4423274886864938e+01 2.3696561433979692e+01 1.0328597616267359e+01 0 0 0 +1168 0 1 0.0000000000000000e+00 6.6782816149384701e+01 1.8536603660132065e+00 1.0509349318494687e+01 0 0 0 +1790 0 1 0.0000000000000000e+00 6.2299574316279156e+01 3.2620466414818765e+01 1.4501237519997034e+01 0 0 0 +1166 0 1 0.0000000000000000e+00 6.2412147595590241e+01 2.1037412996966811e+00 1.0144172394029592e+01 0 0 0 +1550 0 1 0.0000000000000000e+00 6.1889062594426818e+01 1.9679657025214318e+01 2.3934446266995755e+00 0 0 0 +1164 0 1 0.0000000000000000e+00 5.7581029954839245e+01 2.3238528381959966e+00 1.0359037564042435e+01 0 0 0 +1680 0 1 0.0000000000000000e+00 6.7571619261762095e+01 1.8892718331451793e+01 1.0090473206973396e+01 0 0 0 +1162 0 1 0.0000000000000000e+00 5.3437686833800150e+01 2.9808927081155780e+00 1.0635132296740347e+01 0 0 0 +1678 0 1 0.0000000000000000e+00 6.2684484256157674e+01 1.8286373250821200e+01 1.0448068829279499e+01 0 0 0 +1676 0 1 0.0000000000000000e+00 5.7931361036012682e+01 1.9576949835711751e+01 1.0284929018850747e+01 0 0 0 +1674 0 1 0.0000000000000000e+00 5.3951269691290342e+01 2.0236864279857009e+01 1.0135633045156505e+01 0 0 0 +1785 0 1 0.0000000000000000e+00 5.2200238461251146e+01 2.9873129822220076e+01 1.2806891694889130e+01 0 0 0 +1664 0 1 0.0000000000000000e+00 6.6231849921533751e+01 3.2064475797837517e+01 5.9590131143980631e+00 0 0 0 +1663 0 1 0.0000000000000000e+00 6.4339830573048403e+01 2.9995533327795016e+01 3.7493983977598844e+00 0 0 0 +1662 0 1 0.0000000000000000e+00 6.2374218160092376e+01 3.2305263281039025e+01 5.8512203207740843e+00 0 0 0 +1661 0 1 0.0000000000000000e+00 5.9880869844962639e+01 3.0252269447286842e+01 3.8080622742547940e+00 0 0 0 +1660 0 1 0.0000000000000000e+00 5.8360378303538418e+01 3.2489396660631584e+01 6.0917796892825313e+00 0 0 0 +1152 0 1 0.0000000000000000e+00 6.6612268608314764e+01 1.4716084067999326e+01 6.7844886227578387e+00 0 0 0 +1151 0 1 0.0000000000000000e+00 6.4589747269771948e+01 1.2983110834349652e+01 4.3599649186473810e+00 0 0 0 +1150 0 1 0.0000000000000000e+00 6.2420576859840843e+01 1.4921133549385416e+01 6.5083139108939116e+00 0 0 0 +1149 0 1 0.0000000000000000e+00 6.0990383808993663e+01 1.2174713393941401e+01 4.1192676410955027e+00 0 0 0 +1148 0 1 0.0000000000000000e+00 5.7974429734307840e+01 1.5149210514885022e+01 6.2036615717250854e+00 0 0 0 +1147 0 1 0.0000000000000000e+00 5.6452581988113323e+01 1.2972719820608033e+01 3.6627642250860650e+00 0 0 0 +1146 0 1 0.0000000000000000e+00 5.3631135686255512e+01 1.5086065852286429e+01 6.1276183977676304e+00 0 0 0 +1564 0 1 0.0000000000000000e+00 6.0762237992881374e+01 2.5907554152894125e+01 3.3751475626497339e+01 0 0 -1 +1659 0 1 0.0000000000000000e+00 5.6162359920334509e+01 3.0033907200288148e+01 3.5656564821821983e+00 0 0 0 +1658 0 1 0.0000000000000000e+00 5.4229042196592786e+01 3.2783863106011324e+01 5.9293363007801476e+00 0 0 0 +1657 0 1 0.0000000000000000e+00 5.2440159057526309e+01 3.0272492030592808e+01 3.9454750168611601e+00 0 0 0 +1697 0 1 0.0000000000000000e+00 4.1599469392668176e+01 2.8412972698243660e+01 6.3666312473680868e+00 0 0 0 +1648 0 1 0.0000000000000000e+00 6.6143823087257289e+01 2.8348367149399696e+01 6.2880167207417745e+00 0 0 0 +1647 0 1 0.0000000000000000e+00 6.4069777158417295e+01 2.5456861937228080e+01 3.5638624249157425e+00 0 0 0 +1791 0 1 0.0000000000000000e+00 6.4608549763140687e+01 3.0367684958933015e+01 1.2755419471768072e+01 0 0 0 +1599 0 1 0.0000000000000000e+00 6.5032975534022341e+01 3.0080047781968595e+01 3.4181986348186740e+01 0 0 -1 +1136 0 1 0.0000000000000000e+00 6.6702631853398486e+01 1.0732854837808883e+01 5.8990304113934542e+00 0 0 0 +1135 0 1 0.0000000000000000e+00 6.4512849269553598e+01 8.3413837190490945e+00 4.0696131183954529e+00 0 0 0 +1134 0 1 0.0000000000000000e+00 6.2077627963076132e+01 1.0160747645193636e+01 6.4460982417521606e+00 0 0 0 +1133 0 1 0.0000000000000000e+00 6.0634876674438203e+01 8.0779670307053504e+00 3.5379390798373023e+00 0 0 0 +1132 0 1 0.0000000000000000e+00 5.8126061981087588e+01 1.0658468904661012e+01 5.6717071378262816e+00 0 0 0 +1131 0 1 0.0000000000000000e+00 5.5970486755089617e+01 8.3991511421061134e+00 3.6526445420970601e+00 0 0 0 +1130 0 1 0.0000000000000000e+00 5.3770764369461389e+01 1.0474830484824949e+01 6.0466239511826174e+00 0 0 0 +1646 0 1 0.0000000000000000e+00 6.2451391032232770e+01 2.8196710253049851e+01 6.1113696857643927e+00 0 0 0 +1645 0 1 0.0000000000000000e+00 6.0407515778451938e+01 2.5750428262757140e+01 3.8193631982504415e+00 0 0 0 +1644 0 1 0.0000000000000000e+00 5.8379726997554229e+01 2.8224148717436872e+01 5.9193096707589872e+00 0 0 0 +1643 0 1 0.0000000000000000e+00 5.6376413664037635e+01 2.5804055261713831e+01 3.7865246972541304e+00 0 0 0 +1546 0 1 0.0000000000000000e+00 5.4419927769298482e+01 1.9821631386356124e+01 2.2883813193946585e+00 0 0 0 +1642 0 1 0.0000000000000000e+00 5.4725432483384239e+01 2.8499352561240780e+01 6.1177546070130981e+00 0 0 0 +1613 0 1 0.0000000000000000e+00 6.0597113316395898e+01 1.6313550566611308e+01 4.0064111930282253e+00 0 0 0 +1632 0 1 0.0000000000000000e+00 6.6833274872070930e+01 2.3916177876407712e+01 6.3578810747208241e+00 0 0 0 +1566 0 1 0.0000000000000000e+00 6.2005934093666013e+01 2.3319701842745591e+01 1.3669868421847116e+00 0 0 0 +1120 0 1 0.0000000000000000e+00 6.6727661016320084e+01 6.3239699765293400e+00 6.1812476168064014e+00 0 0 0 +1119 0 1 0.0000000000000000e+00 6.5018643876360159e+01 4.5467081087491135e+00 3.5534988956458862e+00 0 0 0 +1118 0 1 0.0000000000000000e+00 6.2663650390517283e+01 6.3708382901218972e+00 6.3086387773319776e+00 0 0 0 +1117 0 1 0.0000000000000000e+00 6.0417895383407568e+01 4.2070121271460268e+00 4.0504398748576422e+00 0 0 0 +1116 0 1 0.0000000000000000e+00 5.8256427020876941e+01 5.7562225233661994e+00 5.7293184402674138e+00 0 0 0 +1115 0 1 0.0000000000000000e+00 5.5430217089361086e+01 3.9864756341239955e+00 3.9293351412299424e+00 0 0 0 +1114 0 1 0.0000000000000000e+00 5.4107611090486991e+01 6.7709645001393088e+00 6.1067040710247085e+00 0 0 0 +1631 0 1 0.0000000000000000e+00 6.4158413063238228e+01 2.1760363556803952e+01 3.7674111347122849e+00 0 0 0 +1630 0 1 0.0000000000000000e+00 6.2516839640712497e+01 2.3651698192952452e+01 6.5137297737065705e+00 0 0 0 +1629 0 1 0.0000000000000000e+00 5.8305681702200587e+01 2.3737937478788677e+01 1.3493351506495559e+00 0 0 0 +1628 0 1 0.0000000000000000e+00 5.9787853289476580e+01 2.2353974116598259e+01 4.5459578034063579e+00 0 0 0 +1627 0 1 0.0000000000000000e+00 5.6001837780527261e+01 2.1958502682947802e+01 4.0314241896274314e+00 0 0 0 +1626 0 1 0.0000000000000000e+00 5.4532814613446192e+01 2.4163089977256693e+01 6.7643129838278426e+00 0 0 0 +1793 0 1 0.0000000000000000e+00 3.8591566827246986e+01 1.5215000780221967e+01 1.1320983717710199e+01 0 0 0 +1552 0 1 0.0000000000000000e+00 6.6502406194212909e+01 1.9809288812490596e+01 2.3407250606984076e+00 0 0 0 +1835 0 1 0.0000000000000000e+00 5.6146582925709929e+01 2.5993535792528725e+01 1.6899890434319218e+01 0 0 0 +1104 0 1 0.0000000000000000e+00 6.6429475293179152e+01 1.9538883782751770e+00 5.9639779965797937e+00 0 0 0 +1616 0 1 0.0000000000000000e+00 6.6538467088040051e+01 1.9354314607348975e+01 6.2570388608055616e+00 0 0 0 +1102 0 1 0.0000000000000000e+00 6.2549086293023173e+01 2.2966806718601522e+00 5.7651521626657019e+00 0 0 0 +1274 0 1 0.0000000000000000e+00 5.3364412945994779e+01 1.4881481542135235e+01 1.4398481217222928e+01 0 0 0 +1100 0 1 0.0000000000000000e+00 5.7429215693014498e+01 1.7218928929308279e+00 6.4895756614949960e+00 0 0 0 +1775 0 1 0.0000000000000000e+00 6.4867862392739852e+01 2.6007488112653494e+01 1.2504319636949448e+01 0 0 0 +1098 0 1 0.0000000000000000e+00 5.3685668708412152e+01 2.1808131376280948e+00 5.9794550661298169e+00 0 0 0 +1614 0 1 0.0000000000000000e+00 6.2623055515421775e+01 1.9401867838307023e+01 5.7999031043354492e+00 0 0 0 +1786 0 1 0.0000000000000000e+00 5.4320035008876239e+01 3.2402184847404733e+01 1.4962767486111927e+01 0 0 0 +1275 0 1 0.0000000000000000e+00 5.5854994354777325e+01 1.2334476495950545e+01 1.2528622785880732e+01 0 0 0 +1612 0 1 0.0000000000000000e+00 5.8860298368841939e+01 1.9364751614463181e+01 6.2337608074649591e+00 0 0 0 +1276 0 1 0.0000000000000000e+00 5.7825449648743046e+01 1.4729028588285479e+01 1.4356706368805508e+01 0 0 0 +1787 0 1 0.0000000000000000e+00 5.6706127966906109e+01 2.9824237366062174e+01 1.2141861425912618e+01 0 0 0 +1610 0 1 0.0000000000000000e+00 5.5176286634250793e+01 1.9651834798991512e+01 6.2221230981550493e+00 0 0 0 +1788 0 1 0.0000000000000000e+00 5.8070846419730444e+01 3.2910696569086653e+01 1.5063237671705126e+01 0 0 0 +1277 0 1 0.0000000000000000e+00 6.0465892312468348e+01 1.2388747625112856e+01 1.2716955848507315e+01 0 0 0 +1088 0 1 0.0000000000000000e+00 6.7026496932887710e+01 1.5021784237784891e+01 2.0713472099008023e+00 0 0 0 +1259 0 1 0.0000000000000000e+00 5.5693561720998616e+01 8.4967311511960908e+00 1.2696680531115570e+01 0 0 0 +1086 0 1 0.0000000000000000e+00 6.3426138397880685e+01 1.4576403420581446e+01 1.9033244330516563e+00 0 0 0 +1258 0 1 0.0000000000000000e+00 5.4112676248333393e+01 1.0747612926261935e+01 1.5167658170388187e+01 0 0 0 +1084 0 1 0.0000000000000000e+00 5.8425398148953505e+01 1.5071564153507248e+01 1.4701858636415770e+00 0 0 0 +1260 0 1 0.0000000000000000e+00 5.8286767145388012e+01 1.0538298431764439e+01 1.4927007818176920e+01 0 0 0 +1082 0 1 0.0000000000000000e+00 5.4605892945444040e+01 1.5294890866272628e+01 1.3875239357886471e+00 0 0 0 +1261 0 1 0.0000000000000000e+00 6.0322496677548777e+01 8.7059506923831407e+00 1.2422112239922537e+01 0 0 0 +1568 0 1 0.0000000000000000e+00 6.6766100279890324e+01 2.3757664589319671e+01 2.3776189534032399e+00 0 0 0 +1262 0 1 0.0000000000000000e+00 6.2632436396232279e+01 1.0634050576714188e+01 1.4925329123286492e+01 0 0 0 +1789 0 1 0.0000000000000000e+00 5.9980537070527269e+01 3.0728882827186272e+01 1.2788147532272772e+01 0 0 0 +1675 0 1 0.0000000000000000e+00 5.5942114800132721e+01 1.7019050408874936e+01 8.6125710785864715e+00 0 0 0 +1600 0 1 0.0000000000000000e+00 6.7005378848205893e+01 3.2303908939094484e+01 2.2975733142009656e+00 0 0 0 +1279 0 1 0.0000000000000000e+00 6.4628643256548358e+01 1.2807096114759023e+01 1.3016750129850248e+01 0 0 0 +1770 0 1 0.0000000000000000e+00 5.5052888718679817e+01 2.8255628683615463e+01 1.5208632451642652e+01 0 0 0 +1598 0 1 0.0000000000000000e+00 6.2304312787990625e+01 3.2280760550333980e+01 1.7911583733196863e+00 0 0 0 +1072 0 1 0.0000000000000000e+00 6.6816753276256350e+01 1.1078911726087952e+01 2.0452908667932652e+00 0 0 0 +1343 0 1 0.0000000000000000e+00 6.4947179160075393e+01 1.3048115333550269e+01 1.6930188136049875e+01 0 0 0 +1070 0 1 0.0000000000000000e+00 6.2738669015664385e+01 1.0580684890367692e+01 1.4469007945679582e+00 0 0 0 +1743 0 1 0.0000000000000000e+00 6.4841390103357568e+01 1.7465772315696910e+01 1.2628044220126265e+01 0 0 0 +1068 0 1 0.0000000000000000e+00 5.8592051805758807e+01 1.0276469171158451e+01 1.7501561282886113e+00 0 0 0 +1771 0 1 0.0000000000000000e+00 5.5904789403229600e+01 2.5678654567975986e+01 1.2852738316044483e+01 0 0 0 +1066 0 1 0.0000000000000000e+00 5.3896606340767903e+01 1.0853531919148697e+01 1.7006593097088247e+00 0 0 0 +1596 0 1 0.0000000000000000e+00 5.8064495001443035e+01 3.1761937578597031e+01 1.3468863187972806e+00 0 0 0 +1594 0 1 0.0000000000000000e+00 5.3538997252052589e+01 3.2489056989483188e+01 1.9535593329236070e+00 0 0 0 +1584 0 1 0.0000000000000000e+00 6.6681004560358957e+01 2.7983376944979703e+01 2.4852269920721666e+00 0 0 0 +1803 0 1 0.0000000000000000e+00 5.5658393583882152e+01 1.7497234928656535e+01 1.6393592749349263e+01 0 0 0 +1582 0 1 0.0000000000000000e+00 6.2444482844564568e+01 2.7836735280966742e+01 1.7077457587279956e+00 0 0 0 +1580 0 1 0.0000000000000000e+00 5.8119506289575014e+01 2.7980877030077846e+01 1.2605251901823045e+00 0 0 0 +1227 0 1 0.0000000000000000e+00 5.5258867144285489e+01 3.7417909974509334e-01 1.2821990410372850e+01 0 0 0 +1578 0 1 0.0000000000000000e+00 5.3885338313809747e+01 2.7584247248134407e+01 2.1390356058176669e+00 0 0 0 +1280 0 1 0.0000000000000000e+00 6.6974485152515967e+01 1.5203674284779110e+01 1.4667635690915269e+01 0 0 0 +1056 0 1 0.0000000000000000e+00 6.7179159593551532e+01 6.6618252080372642e+00 1.5700661076590612e+00 0 0 0 +1551 0 1 0.0000000000000000e+00 6.4200821896656592e+01 1.7473877112936840e+01 3.4564452963472121e+01 0 0 -1 +1090 0 1 0.0000000000000000e+00 3.4980798051008435e+01 1.2340910255740294e+00 2.9770647775949890e+01 0 0 -1 +1442 0 1 0.0000000000000000e+00 3.4867515244263082e+01 1.5639610689729388e+01 2.8985979537302981e+01 0 0 0 +1761 0 1 0.0000000000000000e+00 6.8907965062199196e+01 2.5578083309589697e+01 1.2164605989205315e+01 -1 0 0 +2035 0 1 0.0000000000000000e+00 3.5276730496938988e+01 2.5410721915843084e+01 2.6019726163547631e+01 0 0 0 +1953 0 1 0.0000000000000000e+00 6.8383234865963800e+01 2.5984930842337384e+01 2.5150382624889954e+01 -1 0 0 +543 0 1 0.0000000000000000e+00 3.5517618160318797e+01 3.0754177147219700e+01 3.4050268269430966e+01 0 0 -1 +2129 0 1 0.0000000000000000e+00 6.8673474836518793e+01 4.3119736547437117e+00 4.5453120100775921e+00 0 0 0 +1585 0 1 0.0000000000000000e+00 3.5462812471008029e+01 4.0043906372371652e+00 3.3720818634660695e+01 0 1 -1 +1601 0 1 0.0000000000000000e+00 6.8921945728206765e+01 1.7566424967324426e+01 3.8801488142156741e+00 -1 0 0 +507 0 1 0.0000000000000000e+00 3.4914351135067193e+01 1.2149184855081188e+01 4.2107067636276190e+00 -1 0 0 +2401 0 1 0.0000000000000000e+00 6.8838471828017461e+01 8.1969909790763680e+00 2.1308401978700733e+01 0 0 0 +2225 0 1 0.0000000000000000e+00 6.8760941469488216e+01 1.2666445838547631e+01 8.6987858224307022e+00 0 0 0 +1137 0 1 0.0000000000000000e+00 6.8574193953824491e+01 1.3274892737369148e+01 4.2364746920973362e+00 -1 0 0 +2353 0 1 0.0000000000000000e+00 6.8857934481020621e+01 1.2996984656488481e+01 1.6760786139796782e+01 0 0 0 +1202 0 1 0.0000000000000000e+00 3.4783504721504940e+01 1.8315253797692431e+01 8.2913227465766024e+00 0 0 0 +1729 0 1 0.0000000000000000e+00 6.8726227427331438e+01 1.7265765835672870e+01 1.2321796125091380e+01 -1 0 0 +720 0 1 0.0000000000000000e+00 3.4750484036911473e+01 1.4757246490213653e+01 3.2743434976661447e+01 0 1 -1 +1569 0 1 0.0000000000000000e+00 6.8831698824502865e+01 2.6300347179735578e+01 2.3045481909889992e-01 -1 0 0 +2721 0 1 0.0000000000000000e+00 6.8070527265605648e+01 2.6268157464069471e+01 8.4169960240277888e+00 0 0 0 +913 0 1 0.0000000000000000e+00 3.5018827033901481e+01 2.0974326333827033e+01 2.6121985281079432e+01 -1 0 0 +1586 0 1 0.0000000000000000e+00 3.5083337103677771e+01 2.4770606827102057e+01 3.4001613283752349e+01 0 0 -1 +1745 0 1 0.0000000000000000e+00 6.8677916816581032e+01 2.1444493633527525e+01 1.2095272579661179e+01 -1 0 0 +2177 0 1 0.0000000000000000e+00 6.9088701696282371e+01 3.4338413712934681e+01 7.8066050945746310e+00 0 -1 0 +1825 0 1 0.0000000000000000e+00 3.4835483358231421e+01 2.5648667704431389e+01 1.6263088456540423e+01 0 0 0 +1281 0 1 0.0000000000000000e+00 6.9066482983981246e+01 3.4544576936390129e+01 1.7282522634147782e+01 -1 -1 0 +2513 0 1 0.0000000000000000e+00 6.8777594145559291e+01 4.3769614562405499e+00 2.9950642753634746e+01 0 0 0 +1121 0 1 0.0000000000000000e+00 6.8776118431124630e+01 8.4543733559841918e+00 3.8111012206211305e+00 -1 0 0 +1441 0 1 0.0000000000000000e+00 6.9060069745019803e+01 8.4141570008285793e+00 2.5884276827956704e+01 -1 0 0 +2337 0 1 0.0000000000000000e+00 6.9179130902630078e+01 8.4444207412345573e+00 1.6994665378202278e+01 0 0 0 +2801 0 1 0.0000000000000000e+00 6.8728901093819957e+01 3.0291049031752415e+01 1.2773501280464391e+01 0 0 0 +2561 0 1 0.0000000000000000e+00 6.7985897320662133e+01 1.7722606980998574e+01 3.4199732316972366e+01 0 0 -1 +2193 0 1 0.0000000000000000e+00 6.8335287732035312e+01 4.0384470249388071e+00 8.3085597274304046e+00 0 0 0 +1073 0 1 0.0000000000000000e+00 6.8921902873730446e+01 1.2797313059507275e+01 3.4107533971561203e+01 -1 0 -1 +1633 0 1 0.0000000000000000e+00 6.8447448073120896e+01 2.6220566125111930e+01 4.2257999294355582e+00 -1 0 0 +1649 0 1 0.0000000000000000e+00 6.9173941038939702e+01 3.0421759742177798e+01 4.6141806515044097e+00 -1 0 0 +1841 0 1 0.0000000000000000e+00 6.9087169796747347e+01 2.9990395595814114e+01 1.6901348518804888e+01 -1 0 0 +1393 0 1 0.0000000000000000e+00 6.8819240734608499e+01 1.2864375550795755e+01 2.0753986118486733e+01 -1 0 0 +2257 0 1 0.0000000000000000e+00 6.9068438968507039e+01 3.9674694033254196e+00 1.2729677800083016e+01 0 0 0 +1297 0 1 0.0000000000000000e+00 6.8862606179014321e+01 4.0148836018445984e+00 1.6898672806010143e+01 -1 0 0 +2289 0 1 0.0000000000000000e+00 6.8944134289499232e+01 1.3299305460988865e+01 1.2499737191210674e+01 0 0 0 +1889 0 1 0.0000000000000000e+00 6.8791107034926540e+01 2.5785430467941044e+01 2.1152331232072584e+01 -1 0 0 +2209 0 1 0.0000000000000000e+00 6.8660093321318556e+01 8.6425987831108824e+00 8.9186164320415795e+00 0 0 0 +2609 0 1 0.0000000000000000e+00 6.8861924183470791e+01 2.9991495541130909e+01 6.6724966273087039e-01 0 0 0 +2113 0 1 0.0000000000000000e+00 6.8796836820639371e+01 3.4002800119193438e+01 4.3720410391258433e+00 0 -1 0 +1969 0 1 0.0000000000000000e+00 6.8840258129273124e+01 2.9507597943807745e+01 2.4737842463100609e+01 -1 0 0 +3057 0 1 0.0000000000000000e+00 6.9017762235842781e+01 3.0507910433884149e+01 3.0188785712469947e+01 0 0 0 +1457 0 1 0.0000000000000000e+00 6.8704390568632988e+01 1.3087399874117862e+01 2.5117158575881007e+01 -1 0 0 +2081 0 1 0.0000000000000000e+00 6.9068005377555551e+01 8.8459208430122498e+00 3.4081603238322479e+01 0 0 -1 +2001 0 1 0.0000000000000000e+00 6.8924084389282413e+01 2.1723133872946715e+01 2.9629994276714125e+01 -1 0 0 +1873 0 1 0.0000000000000000e+00 6.9121252803195560e+01 2.1550245400825048e+01 2.1084853193551904e+01 -1 0 0 +1474 0 1 0.0000000000000000e+00 3.4823872843370395e+01 4.5433815928639110e+00 2.9712083414357888e+01 0 0 0 +1298 0 1 0.0000000000000000e+00 3.4617425465982699e+01 5.8305692526902071e+00 1.7819669025126277e+01 0 0 0 +1139 0 1 0.0000000000000000e+00 3.5129757611210692e+01 7.1859278785822447e+00 1.1592210805387626e+01 0 0 0 +1282 0 1 0.0000000000000000e+00 3.4626833772274203e+01 5.0392687269706871e+00 2.6359452955247129e+01 0 0 0 +399 0 1 0.0000000000000000e+00 3.4941250710654806e+01 3.3219012630309862e+01 4.5459988090628709e+00 -1 -1 0 +2050 0 1 0.0000000000000000e+00 7.0945966046070723e+01 2.5097390299647611e+00 1.5401118181675537e+00 0 0 0 +2307 0 1 0.0000000000000000e+00 7.3194718924037943e+01 3.4824251914014509e-01 1.7365188966800375e+01 0 0 0 +2563 0 1 0.0000000000000000e+00 7.3579052547573397e+01 1.7720609016781825e+01 3.3928605776223051e+01 0 0 -1 +2099 0 1 0.0000000000000000e+00 7.2904142337028674e+01 1.2670993807876235e+01 3.4094487123708340e+01 0 0 -1 +2853 0 1 0.0000000000000000e+00 7.6662055608233430e+01 2.6042846602532983e+01 1.7004250529941533e+01 0 0 0 +2052 0 1 0.0000000000000000e+00 7.5663533971981821e+01 2.1078479115351816e+00 1.9507383928166619e+00 0 0 0 +2085 0 1 0.0000000000000000e+00 7.7367911014384802e+01 8.7424826940906897e+00 3.4191857520624133e+01 0 0 -1 +2355 0 1 0.0000000000000000e+00 7.3194827508913832e+01 1.3077932443624377e+01 1.6526585233113181e+01 0 0 0 +2066 0 1 0.0000000000000000e+00 7.1158868151223402e+01 6.0797350109405341e+00 1.7385781955658395e+00 0 0 0 +2613 0 1 0.0000000000000000e+00 7.8145182713362004e+01 2.9917392419212568e+01 2.5394788781749800e-01 0 0 0 +2068 0 1 0.0000000000000000e+00 7.5309524333183717e+01 6.6494197264656272e+00 2.1654593346549698e+00 0 0 0 +2323 0 1 0.0000000000000000e+00 7.3021592258369068e+01 4.5266790506765062e+00 1.6938738592578062e+01 0 0 0 +2357 0 1 0.0000000000000000e+00 7.7657939623591531e+01 1.2813628518636694e+01 1.7060641612516378e+01 0 0 0 +3044 0 1 0.0000000000000000e+00 7.5552416332421572e+01 2.7622465293954171e+01 3.1830175214872529e+01 0 0 0 +2082 0 1 0.0000000000000000e+00 7.0683189362494005e+01 1.1164496776689042e+01 2.2986176836504351e+00 0 0 0 +2084 0 1 0.0000000000000000e+00 7.4923765001232852e+01 1.0529387121866199e+01 1.7622026063076754e+00 0 0 0 +3043 0 1 0.0000000000000000e+00 7.3100983293821301e+01 2.6414019829026792e+01 2.9954621217165453e+01 0 0 0 +3633 0 1 0.0000000000000000e+00 1.0087912754061816e+02 1.0193793453343261e+01 1.0210909546670557e+01 1 1 -1 +2341 0 1 0.0000000000000000e+00 7.8159164598230547e+01 8.3093305364810188e+00 1.6664168143963753e+01 0 0 0 +2557 0 1 0.0000000000000000e+00 9.7010441592230620e+01 1.4839643364015656e+01 2.8071896407390614e+01 0 0 0 +2098 0 1 0.0000000000000000e+00 7.1277781105129989e+01 1.5353576362110738e+01 2.0376290612457435e+00 0 0 0 +3042 0 1 0.0000000000000000e+00 7.0668384949172804e+01 2.7989493712870740e+01 3.2143844983360772e+01 0 0 0 +3028 0 1 0.0000000000000000e+00 7.5466489290003580e+01 2.3872126119621278e+01 3.2308244230942535e+01 0 0 0 +3027 0 1 0.0000000000000000e+00 7.2967245598980099e+01 2.2015430319175334e+01 3.0145673932509467e+01 0 0 0 +3026 0 1 0.0000000000000000e+00 7.0970613747889303e+01 2.4047978946011526e+01 3.2386746088132540e+01 0 0 0 +2883 0 1 0.0000000000000000e+00 7.3170691153099398e+01 1.6940775495365468e+01 2.0565162285480415e+01 0 0 0 +3058 0 1 0.0000000000000000e+00 7.1295364053976357e+01 3.1825922410427658e+01 3.2335655859349124e+01 0 0 0 +2100 0 1 0.0000000000000000e+00 7.4840165841418809e+01 1.4864804486668264e+01 1.5731910261394804e+00 0 0 0 +3059 0 1 0.0000000000000000e+00 7.2534062292532766e+01 2.9690748450670643e+01 3.0175040130006963e+01 0 0 0 +3060 0 1 0.0000000000000000e+00 7.5371936187345057e+01 3.1481539248131742e+01 3.2469083536510482e+01 0 0 0 +2114 0 1 0.0000000000000000e+00 7.1012290785063158e+01 2.2959207772354926e+00 5.5106462582905253e+00 0 0 0 +2116 0 1 0.0000000000000000e+00 7.5643250004050614e+01 2.0922906981265892e+00 5.7170231600021006e+00 0 0 0 +3012 0 1 0.0000000000000000e+00 7.5158308189412494e+01 1.9550936346578467e+01 3.1618734325087640e+01 0 0 0 +3010 0 1 0.0000000000000000e+00 7.0877392978561247e+01 1.9367003028171975e+01 3.2146670468226773e+01 0 0 0 +2997 0 1 0.0000000000000000e+00 7.6712930234899218e+01 3.0000910038289071e+01 2.5871279835552702e+01 0 0 0 +2996 0 1 0.0000000000000000e+00 7.5247738251111386e+01 3.2310563151012609e+01 2.8230131770191594e+01 0 0 0 +2995 0 1 0.0000000000000000e+00 7.3325146314892564e+01 2.9893029063480327e+01 2.4953065956400138e+01 0 0 0 +2994 0 1 0.0000000000000000e+00 7.1393752490001376e+01 3.1843077060244358e+01 2.7404777497181044e+01 0 0 0 +2981 0 1 0.0000000000000000e+00 7.7788425695144497e+01 2.5722378480852278e+01 2.5044865116451490e+01 0 0 0 +2980 0 1 0.0000000000000000e+00 7.5262198867346896e+01 2.7325883435322421e+01 2.7381379852091378e+01 0 0 0 +2277 0 1 0.0000000000000000e+00 7.7713163723216539e+01 8.5768184778186960e+00 1.2726448959414425e+01 0 0 0 +3692 0 1 0.0000000000000000e+00 1.0129827281480186e+02 3.1883859575085275e+01 1.1633821029723739e+01 0 0 0 +2130 0 1 0.0000000000000000e+00 7.1490181456489879e+01 6.7493836331838466e+00 6.4932207185098241e+00 0 0 0 +2131 0 1 0.0000000000000000e+00 7.3632645420982627e+01 4.0614825871073021e+00 4.0198640316888890e+00 0 0 0 +2132 0 1 0.0000000000000000e+00 7.5345953970874675e+01 6.7087439707625380e+00 5.9574119996782686e+00 0 0 0 +2146 0 1 0.0000000000000000e+00 7.1345545354850231e+01 1.0667196350511226e+01 6.2931725128201910e+00 0 0 0 +2147 0 1 0.0000000000000000e+00 7.2760528970054310e+01 8.4095791505046655e+00 3.6073492600920227e+00 0 0 0 +2148 0 1 0.0000000000000000e+00 7.4615428563330070e+01 1.1051204599468925e+01 6.3627145860440848e+00 0 0 0 +2979 0 1 0.0000000000000000e+00 7.3033473393642950e+01 2.5710178303246735e+01 2.5378220554266704e+01 0 0 0 +2978 0 1 0.0000000000000000e+00 7.1269387839306532e+01 2.7769084279597756e+01 2.7183017801447900e+01 0 0 0 +2965 0 1 0.0000000000000000e+00 7.7205070506479828e+01 2.1758119209281912e+01 2.5420103840600419e+01 0 0 0 +2964 0 1 0.0000000000000000e+00 7.5116536229129224e+01 2.3589645399783201e+01 2.7826484276277753e+01 0 0 0 +2963 0 1 0.0000000000000000e+00 7.3576984600964536e+01 2.1341742280376796e+01 2.5361833825137850e+01 0 0 0 +2962 0 1 0.0000000000000000e+00 7.0798780558654840e+01 2.4100509706432156e+01 2.7328875117761395e+01 0 0 0 +2499 0 1 0.0000000000000000e+00 7.3508068061734278e+01 3.4311036138221560e+01 3.0241124234049085e+01 0 -1 0 +2948 0 1 0.0000000000000000e+00 7.5204036749609543e+01 1.9450981164323728e+01 2.7768671051671756e+01 0 0 0 +2149 0 1 0.0000000000000000e+00 7.7321176198565126e+01 8.6974481551468816e+00 4.0986311438658722e+00 0 0 0 +2162 0 1 0.0000000000000000e+00 7.1208558000747189e+01 1.5011624227052241e+01 6.0522551625250340e+00 0 0 0 +2163 0 1 0.0000000000000000e+00 7.2982763185031246e+01 1.3103124151245270e+01 3.5082844313946406e+00 0 0 0 +2164 0 1 0.0000000000000000e+00 7.5741252575729973e+01 1.4948311436107952e+01 5.3932220802261819e+00 0 0 0 +2178 0 1 0.0000000000000000e+00 7.0999324175194758e+01 2.0836337407591410e+00 1.0166604459270248e+01 0 0 0 +2180 0 1 0.0000000000000000e+00 7.5658151336831878e+01 1.5932545398537534e+00 1.0241800488649963e+01 0 0 0 +2382 0 1 0.0000000000000000e+00 9.7144314525553725e+01 1.6460181877567144e+00 2.3251254894132348e+01 0 0 0 +2293 0 1 0.0000000000000000e+00 7.7627206759531830e+01 1.2685639610633521e+01 1.2545531715829027e+01 0 0 0 +2194 0 1 0.0000000000000000e+00 7.0773682965895404e+01 6.3658390181293250e+00 1.0702024206366525e+01 0 0 0 +2946 0 1 0.0000000000000000e+00 7.1475013609784369e+01 1.9760673027831970e+01 2.7148366709373668e+01 0 0 0 +2195 0 1 0.0000000000000000e+00 7.3554623654098009e+01 4.1874203363503772e+00 8.5130936485404067e+00 0 0 0 +2933 0 1 0.0000000000000000e+00 7.7509247850943183e+01 3.0476113841147960e+01 2.0673946760305480e+01 0 0 0 +2932 0 1 0.0000000000000000e+00 7.5815409357868731e+01 3.2740329011171546e+01 2.3370447839113453e+01 0 0 0 +2931 0 1 0.0000000000000000e+00 7.3084031035810156e+01 3.0618182405519036e+01 2.1029743003992685e+01 0 0 0 +2930 0 1 0.0000000000000000e+00 7.1311240752241588e+01 3.2659850536024720e+01 2.3372706538812913e+01 0 0 0 +2917 0 1 0.0000000000000000e+00 7.7291901417228871e+01 2.5997507402090104e+01 2.1131692920589202e+01 0 0 0 +2916 0 1 0.0000000000000000e+00 7.5394536799113993e+01 2.7616943899390236e+01 2.3282135375209020e+01 0 0 0 +2196 0 1 0.0000000000000000e+00 7.5475636947910886e+01 6.6214808561152489e+00 1.0425175363295834e+01 0 0 0 +2197 0 1 0.0000000000000000e+00 7.7189454378772169e+01 4.3985103306493816e+00 7.8605972575395908e+00 0 0 0 +2540 0 1 0.0000000000000000e+00 9.4964908081802378e+01 1.2679660962498367e+01 3.0618783287652040e+01 0 0 0 +2210 0 1 0.0000000000000000e+00 7.1065347506385933e+01 1.0635956365783811e+01 1.0836999191364011e+01 0 0 0 +2211 0 1 0.0000000000000000e+00 7.3053382475466222e+01 8.4053052384246385e+00 8.9423623999224304e+00 0 0 0 +2212 0 1 0.0000000000000000e+00 7.5296374905949946e+01 1.0738021397602825e+01 1.0792892113343582e+01 0 0 0 +2213 0 1 0.0000000000000000e+00 7.7467245278650978e+01 8.7803964904289185e+00 8.5434201113011845e+00 0 0 0 +2915 0 1 0.0000000000000000e+00 7.3102996678919240e+01 2.5746794909038016e+01 2.1202139678609804e+01 0 0 0 +2914 0 1 0.0000000000000000e+00 7.1094746666029920e+01 2.8195961941276632e+01 2.2779303771881239e+01 0 0 0 +2901 0 1 0.0000000000000000e+00 7.7637030311303121e+01 2.1711472010600623e+01 2.0619717944148547e+01 0 0 0 +2900 0 1 0.0000000000000000e+00 7.5235638117012201e+01 2.3733416376369444e+01 2.3645833050519030e+01 0 0 0 +2899 0 1 0.0000000000000000e+00 7.2864107145943336e+01 2.2378490342278962e+01 2.1317263342007220e+01 0 0 0 +2898 0 1 0.0000000000000000e+00 7.0340897453579046e+01 2.3927533586929080e+01 2.3309809312387600e+01 0 0 0 +2947 0 1 0.0000000000000000e+00 7.3392430318009517e+01 1.7386481350092854e+01 2.4802838924416534e+01 0 0 0 +2884 0 1 0.0000000000000000e+00 7.5248164712434743e+01 1.9474800933589478e+01 2.2317010458344988e+01 0 0 0 +2882 0 1 0.0000000000000000e+00 7.1126618264652322e+01 1.9535647817680090e+01 2.3283997173427608e+01 0 0 0 +2380 0 1 0.0000000000000000e+00 9.2730307638795509e+01 2.4798658913324902e+00 2.3299437747356816e+01 0 0 0 +2226 0 1 0.0000000000000000e+00 7.0313002688542156e+01 1.5533494682164582e+01 1.0392407894202567e+01 0 0 0 +2227 0 1 0.0000000000000000e+00 7.2956755511403500e+01 1.3565207001878424e+01 8.2060474116721664e+00 0 0 0 +2228 0 1 0.0000000000000000e+00 7.5503385724963138e+01 1.5637125112314900e+01 1.0575699095830768e+01 0 0 0 +2229 0 1 0.0000000000000000e+00 7.7045430906379295e+01 1.3159714355063786e+01 8.2445656686373354e+00 0 0 0 +2292 0 1 0.0000000000000000e+00 7.5566637127905480e+01 1.5149367241374783e+01 1.4644614530085290e+01 0 0 0 +2242 0 1 0.0000000000000000e+00 7.1541006867003574e+01 2.2881314915694513e+00 1.4891398182100989e+01 0 0 0 +2558 0 1 0.0000000000000000e+00 9.6736758691617950e+01 1.4924947286339357e+01 1.8950882613035487e+00 0 0 1 +2868 0 1 0.0000000000000000e+00 7.5242059160020418e+01 3.2905507499197505e+01 1.9112175996952715e+01 0 0 0 +2866 0 1 0.0000000000000000e+00 7.1241285560559120e+01 3.2182041945993461e+01 1.9322688261223007e+01 0 0 0 +2291 0 1 0.0000000000000000e+00 7.3306449580958983e+01 1.2919503807835898e+01 1.2634861301423291e+01 0 0 0 +2869 0 1 0.0000000000000000e+00 7.7069920213900559e+01 3.0602786444582378e+01 1.6867619481009424e+01 0 0 0 +2852 0 1 0.0000000000000000e+00 7.4890468540923194e+01 2.8342953107410985e+01 1.9439725061011448e+01 0 0 0 +2850 0 1 0.0000000000000000e+00 7.0677026811887302e+01 2.7688161310927665e+01 1.9406825898618351e+01 0 0 0 +2867 0 1 0.0000000000000000e+00 7.3159432113966815e+01 3.0049540837947273e+01 1.6920406120303891e+01 0 0 0 +2244 0 1 0.0000000000000000e+00 7.5630217414388937e+01 2.2379092450092282e+00 1.4493775694409530e+01 0 0 0 +2290 0 1 0.0000000000000000e+00 7.1049366111311286e+01 1.5167085621238705e+01 1.4466136144100858e+01 0 0 0 +2689 0 1 0.0000000000000000e+00 6.9350728878455911e+01 1.7346850790617346e+01 7.7553999985106046e+00 0 0 0 +2179 0 1 0.0000000000000000e+00 7.2939123697188776e+01 3.2586297667676234e-01 8.1987255022893049e+00 0 0 0 +2378 0 1 0.0000000000000000e+00 8.8728336464365711e+01 2.1368430872295701e+00 2.3493832560775481e+01 0 0 0 +2258 0 1 0.0000000000000000e+00 7.0929402295469728e+01 6.1926979225491898e+00 1.5106716558861383e+01 0 0 0 +2259 0 1 0.0000000000000000e+00 7.3024133491995954e+01 4.1986184418326591e+00 1.2273902518080607e+01 0 0 0 +2851 0 1 0.0000000000000000e+00 7.2905023569537647e+01 2.5739209867455632e+01 1.6449392347790898e+01 0 0 0 +2837 0 1 0.0000000000000000e+00 7.7472820442771749e+01 2.2034956100150779e+01 1.6741115010127807e+01 0 0 0 +2260 0 1 0.0000000000000000e+00 7.5537660862562376e+01 6.2960314519162655e+00 1.4981886168066563e+01 0 0 0 +2611 0 1 0.0000000000000000e+00 7.2854317215324727e+01 2.9303254871680991e+01 3.4389378255256972e+01 0 0 -1 +2836 0 1 0.0000000000000000e+00 7.4945560427187331e+01 2.3813075646670306e+01 1.8674750165273824e+01 0 0 0 +2834 0 1 0.0000000000000000e+00 7.0853908613786373e+01 2.3820045612537886e+01 1.8805401442939335e+01 0 0 0 +2261 0 1 0.0000000000000000e+00 7.7724749123808479e+01 4.1200763394005735e+00 1.2519515973918111e+01 0 0 0 +2820 0 1 0.0000000000000000e+00 7.5060140110668328e+01 1.9613218016713596e+01 1.8593630072281293e+01 0 0 0 +2818 0 1 0.0000000000000000e+00 7.1456601355507402e+01 1.9711097245324208e+01 1.8657543434916455e+01 0 0 0 +2329 0 1 0.0000000000000000e+00 8.6702927948542097e+01 4.3351382360514430e+00 1.7004422363409688e+01 0 0 0 +2579 0 1 0.0000000000000000e+00 7.3220590435721022e+01 2.2372682460442615e+01 3.4168012907888695e+01 0 0 -1 +2274 0 1 0.0000000000000000e+00 7.1072686672177724e+01 1.0864585716982148e+01 1.4480810281907843e+01 0 0 0 +2565 0 1 0.0000000000000000e+00 7.7671994447098797e+01 1.7202942670219031e+01 3.4126665489120434e+01 0 0 -1 +2275 0 1 0.0000000000000000e+00 7.2938150930502729e+01 8.2470458699062856e+00 1.3244913907908455e+01 0 0 0 +2595 0 1 0.0000000000000000e+00 7.3130493954066466e+01 2.5690285486410296e+01 2.4664072493347598e-02 0 0 0 +2276 0 1 0.0000000000000000e+00 7.5598227609831440e+01 1.0534920335597523e+01 1.4710172352252181e+01 0 0 0 +2757 0 1 0.0000000000000000e+00 7.8003898213732384e+01 1.6910549467339123e+01 1.2384100830399566e+01 0 0 0 +2581 0 1 0.0000000000000000e+00 7.7184775348543297e+01 2.1951090776269996e+01 3.4500290493453704e+01 0 0 -1 +2394 0 1 0.0000000000000000e+00 8.8159619880840140e+01 7.1322797065760684e+00 2.3224620691807893e+01 0 0 0 +2393 0 1 0.0000000000000000e+00 8.6939354681441102e+01 4.3552317201061754e+00 2.1342780765780883e+01 0 0 0 +2181 0 1 0.0000000000000000e+00 7.7645194712048621e+01 3.4233628599785369e+01 8.2150697719394614e+00 0 -1 0 +2789 0 1 0.0000000000000000e+00 7.7514741694867425e+01 2.5640795065609495e+01 1.2634108114399107e+01 0 0 0 +2788 0 1 0.0000000000000000e+00 7.5061194870034043e+01 2.8062145686328968e+01 1.4571428155413484e+01 0 0 0 +2787 0 1 0.0000000000000000e+00 7.3605413382385493e+01 2.5896090075799666e+01 1.2031446173431846e+01 0 0 0 +2083 0 1 0.0000000000000000e+00 7.2410314099505840e+01 9.1226038959812499e+00 3.4170830060607472e+01 0 0 -1 +2449 0 1 0.0000000000000000e+00 6.9683934532348886e+01 3.5709235257756342e+00 2.5679141347319813e+01 0 0 0 +2325 0 1 0.0000000000000000e+00 7.8083997113214608e+01 4.4830400681017251e+00 1.6591421625414831e+01 0 0 0 +2306 0 1 0.0000000000000000e+00 7.0916681152228051e+01 2.0118073510839625e+00 1.9166727432543023e+01 0 0 0 +2308 0 1 0.0000000000000000e+00 7.5735534209335754e+01 2.7009576971013827e+00 1.8899131343354764e+01 0 0 0 +2322 0 1 0.0000000000000000e+00 7.0870320643807631e+01 6.1625857348490900e+00 1.9030208592281245e+01 0 0 0 +2324 0 1 0.0000000000000000e+00 7.6384282051831164e+01 6.2999027079893999e+00 1.8847768670017075e+01 0 0 0 +3013 0 1 0.0000000000000000e+00 7.7342239707191837e+01 1.6998575276367557e+01 2.9875473534439738e+01 0 0 0 +3011 0 1 0.0000000000000000e+00 7.3418078316406266e+01 1.7183587293380665e+01 2.9362350995657476e+01 0 0 0 +2786 0 1 0.0000000000000000e+00 7.1282880089268943e+01 2.7801368943608196e+01 1.4031452418084742e+01 0 0 0 +2773 0 1 0.0000000000000000e+00 7.8060427237073000e+01 2.1662604160107655e+01 1.2782948597042594e+01 0 0 0 +2772 0 1 0.0000000000000000e+00 7.5501198068216667e+01 2.3502196510933530e+01 1.4587008339915524e+01 0 0 0 +2771 0 1 0.0000000000000000e+00 7.2934410860764288e+01 2.1843050191164732e+01 1.1717300816795682e+01 0 0 0 +2770 0 1 0.0000000000000000e+00 7.0833233733722764e+01 2.3773193863375177e+01 1.4135687604776999e+01 0 0 0 +2756 0 1 0.0000000000000000e+00 7.5735910455284824e+01 1.9485899178557812e+01 1.4235988183405803e+01 0 0 0 +2392 0 1 0.0000000000000000e+00 8.4466257101616335e+01 7.0353736356070895e+00 2.3996497754736808e+01 0 0 0 +2338 0 1 0.0000000000000000e+00 7.1043395466582055e+01 1.0701883700186887e+01 1.8906848352114434e+01 0 0 0 +2340 0 1 0.0000000000000000e+00 7.5088058204733500e+01 1.0953860895667781e+01 1.8718755807960985e+01 0 0 0 +2354 0 1 0.0000000000000000e+00 7.0930374565029965e+01 1.4997564618264185e+01 1.8606815168535938e+01 0 0 0 +2356 0 1 0.0000000000000000e+00 7.5188919078997444e+01 1.4865595970435388e+01 1.8982944110833255e+01 0 0 0 +2370 0 1 0.0000000000000000e+00 7.1576581805404658e+01 1.9972938288337707e+00 2.3092608653223465e+01 0 0 0 +2372 0 1 0.0000000000000000e+00 7.5553789632947911e+01 2.1958071939890762e+00 2.3446872745890968e+01 0 0 0 +2386 0 1 0.0000000000000000e+00 7.1623396656933480e+01 6.9046569938349984e+00 2.3491994332776844e+01 0 0 0 +2387 0 1 0.0000000000000000e+00 7.3200319073786090e+01 4.4559164187761606e+00 2.0915092106202646e+01 0 0 0 +2754 0 1 0.0000000000000000e+00 7.1365844673489718e+01 1.9138220940201638e+01 1.4380728619815368e+01 0 0 0 +2741 0 1 0.0000000000000000e+00 7.7666140907132174e+01 3.0704734609669249e+01 8.3109096482183382e+00 0 0 0 +2740 0 1 0.0000000000000000e+00 7.5411875620567599e+01 3.2688578803905436e+01 1.0395704794894401e+01 0 0 0 +2739 0 1 0.0000000000000000e+00 7.3221331352897124e+01 3.0415994904073678e+01 8.1600213444908416e+00 0 0 0 +2738 0 1 0.0000000000000000e+00 7.1110477740458080e+01 3.2534805324146618e+01 1.0458126075287376e+01 0 0 0 +2384 0 1 0.0000000000000000e+00 9.8735185585937415e+01 4.5002086022793559e+00 2.0781846309546385e+01 0 0 0 +2724 0 1 0.0000000000000000e+00 7.5506111647966378e+01 2.8506703783793355e+01 1.0666515828263337e+01 0 0 0 +2723 0 1 0.0000000000000000e+00 7.3886376594044094e+01 2.5414714013882779e+01 8.1425503979683462e+00 0 0 0 +2388 0 1 0.0000000000000000e+00 7.5384049299500305e+01 6.7860858532347503e+00 2.3429638568822785e+01 0 0 0 +2389 0 1 0.0000000000000000e+00 7.7784084272988110e+01 4.5301809943889255e+00 2.1108950001907353e+01 0 0 0 +2391 0 1 0.0000000000000000e+00 8.2462539210053620e+01 4.9643892002137093e+00 2.1217776073071686e+01 0 0 0 +2402 0 1 0.0000000000000000e+00 7.1282159973684202e+01 1.0960703300890628e+01 2.2935156639122063e+01 0 0 0 +2403 0 1 0.0000000000000000e+00 7.3563759055843519e+01 8.3872136491752283e+00 2.0591016435909381e+01 0 0 0 +2404 0 1 0.0000000000000000e+00 7.5414483724204302e+01 1.0927505228037599e+01 2.3268033051895042e+01 0 0 0 +2405 0 1 0.0000000000000000e+00 7.7584758832034780e+01 9.2260957389354807e+00 2.0793406199562039e+01 0 0 0 +2418 0 1 0.0000000000000000e+00 7.0401121821792884e+01 1.5236813034479955e+01 2.2672631614321752e+01 0 0 0 +2722 0 1 0.0000000000000000e+00 7.1279659326592281e+01 2.7588379821817149e+01 9.9095286342042925e+00 0 0 0 +2419 0 1 0.0000000000000000e+00 7.3007650055318535e+01 1.2842889878719273e+01 2.1088240872345935e+01 0 0 0 +2709 0 1 0.0000000000000000e+00 7.7943253616228247e+01 2.1558090115825220e+01 8.3629361729682863e+00 0 0 0 +2708 0 1 0.0000000000000000e+00 7.5928468862964877e+01 2.3344421804041875e+01 1.0427822841422389e+01 0 0 0 +2707 0 1 0.0000000000000000e+00 7.3597285793082960e+01 2.1322680587653640e+01 7.6917715265648292e+00 0 0 0 +2706 0 1 0.0000000000000000e+00 7.0732475417704947e+01 2.3511648311333865e+01 9.9298797893117428e+00 0 0 0 +2420 0 1 0.0000000000000000e+00 7.5355841413062308e+01 1.5403996138430783e+01 2.3155571887198583e+01 0 0 0 +2802 0 1 0.0000000000000000e+00 7.1058278289985196e+01 3.2583006940530964e+01 1.4886809458670298e+01 0 0 0 +2803 0 1 0.0000000000000000e+00 7.3026059095058599e+01 3.0626855197841053e+01 1.2146419924080325e+01 0 0 0 +2804 0 1 0.0000000000000000e+00 7.4903316477956011e+01 3.2316867972718143e+01 1.5096977416281817e+01 0 0 0 +2421 0 1 0.0000000000000000e+00 7.7384414569008442e+01 1.3504239159813245e+01 2.1504109958281351e+01 0 0 0 +1025 0 1 0.0000000000000000e+00 6.9287559861036883e+01 8.7127518081236338e-02 3.4443385261998557e+01 -1 0 -1 +2434 0 1 0.0000000000000000e+00 7.1407497755346952e+01 1.8967269616666125e+00 2.8095918337091803e+01 0 0 0 +2436 0 1 0.0000000000000000e+00 7.4884253601510281e+01 1.9629144540323664e+00 2.7431385628865222e+01 0 0 0 +2390 0 1 0.0000000000000000e+00 7.9802053360432552e+01 6.6232656948490414e+00 2.3329149185567434e+01 0 0 0 +2450 0 1 0.0000000000000000e+00 7.1243099542231491e+01 6.5197660540346583e+00 2.7473323314330628e+01 0 0 0 +2451 0 1 0.0000000000000000e+00 7.2727071893423727e+01 4.3593176882057216e+00 2.5407246711145348e+01 0 0 0 +2452 0 1 0.0000000000000000e+00 7.5289686733356149e+01 6.3211281753759794e+00 2.7211395585437778e+01 0 0 0 +2453 0 1 0.0000000000000000e+00 7.7945251037730657e+01 4.1128324015792446e+00 2.5524269614935644e+01 0 0 0 +2805 0 1 0.0000000000000000e+00 7.7515640466643802e+01 3.0526032955044592e+01 1.2323665809081890e+01 0 0 0 +2692 0 1 0.0000000000000000e+00 7.5699123970776569e+01 1.9657259374235323e+01 1.0596410654163451e+01 0 0 0 +2690 0 1 0.0000000000000000e+00 7.1430651082087195e+01 1.9340295768899527e+01 1.0267995157160158e+01 0 0 0 +2466 0 1 0.0000000000000000e+00 7.0838914584364872e+01 1.1483908804272327e+01 2.7317110597836919e+01 0 0 0 +2677 0 1 0.0000000000000000e+00 7.7952176149282749e+01 3.0546770359568690e+01 4.2584787408692630e+00 0 0 0 +2467 0 1 0.0000000000000000e+00 7.2576493022055999e+01 9.1693810244193994e+00 2.5827363933641927e+01 0 0 0 +2676 0 1 0.0000000000000000e+00 7.5683919130704652e+01 3.2327081573926513e+01 5.9732399201074475e+00 0 0 0 +2675 0 1 0.0000000000000000e+00 7.3542310222363881e+01 2.9934925468601072e+01 4.3528751332502305e+00 0 0 0 +2468 0 1 0.0000000000000000e+00 7.4950623669243868e+01 1.1547833981992289e+01 2.7608378553809580e+01 0 0 0 +2469 0 1 0.0000000000000000e+00 7.7406959788154921e+01 8.8038593686587987e+00 2.5696356778165480e+01 0 0 0 +2482 0 1 0.0000000000000000e+00 7.1728022592676751e+01 1.5265213527372799e+01 2.7067826101445885e+01 0 0 0 +2483 0 1 0.0000000000000000e+00 7.2869200333403612e+01 1.3099111201121364e+01 2.5169889283322750e+01 0 0 0 +2484 0 1 0.0000000000000000e+00 7.5751975074717052e+01 1.5029054888896772e+01 2.7037263661952341e+01 0 0 0 +2674 0 1 0.0000000000000000e+00 7.1095234453034166e+01 3.1998085129387828e+01 6.3615759988024632e+00 0 0 0 +2661 0 1 0.0000000000000000e+00 7.7369772025210509e+01 2.5894104794394156e+01 3.5918801204067101e+00 0 0 0 +2485 0 1 0.0000000000000000e+00 7.7924624191220033e+01 1.2789867135099673e+01 2.5623614000698538e+01 0 0 0 +2660 0 1 0.0000000000000000e+00 7.5435507188650377e+01 2.8068529464668099e+01 6.4228053502086446e+00 0 0 0 +2659 0 1 0.0000000000000000e+00 7.3153689908151208e+01 2.6131697925669915e+01 4.8312773769470363e+00 0 0 0 +2658 0 1 0.0000000000000000e+00 7.1270569942102014e+01 2.8179031113643507e+01 6.5308363147788819e+00 0 0 0 +2644 0 1 0.0000000000000000e+00 7.6378376239343453e+01 2.4063800580041647e+01 6.0656682615630091e+00 0 0 0 +2643 0 1 0.0000000000000000e+00 7.3356884670217127e+01 2.2422651103849834e+01 4.4161653164260519e+00 0 0 0 +2642 0 1 0.0000000000000000e+00 7.0650882898425550e+01 2.4226141031465229e+01 6.1675478103289745e+00 0 0 0 +2628 0 1 0.0000000000000000e+00 7.5865173990267380e+01 1.9239514825828838e+01 5.8454011807344743e+00 0 0 0 +2626 0 1 0.0000000000000000e+00 7.1650745337305324e+01 1.9508803537799732e+01 6.1697998252167743e+00 0 0 0 +2691 0 1 0.0000000000000000e+00 7.3346254026639514e+01 1.7572400499112955e+01 7.8694279004501624e+00 0 0 0 +2243 0 1 0.0000000000000000e+00 7.3140166396955436e+01 5.2593167069419300e-01 1.2347087099404622e+01 0 0 0 +2498 0 1 0.0000000000000000e+00 7.1133845887821366e+01 2.5019582804768610e+00 3.1775282374385210e+01 0 0 0 +2339 0 1 0.0000000000000000e+00 7.3125311311495395e+01 8.6218269383627995e+00 1.7095912885032824e+01 0 0 0 +2500 0 1 0.0000000000000000e+00 7.5231579534656930e+01 2.5127115553828174e+00 3.2054862097606183e+01 0 0 0 +2693 0 1 0.0000000000000000e+00 7.7509287470622567e+01 1.6738992276810588e+01 8.4389104278752320e+00 0 0 0 +2549 0 1 0.0000000000000000e+00 7.7381346885853446e+01 1.3173196156340921e+01 2.9668257161130292e+01 0 0 0 +2548 0 1 0.0000000000000000e+00 7.4915774799020397e+01 1.4828749407644654e+01 3.1648761261265928e+01 0 0 0 +2547 0 1 0.0000000000000000e+00 7.2505154156647762e+01 1.3215256871806774e+01 2.9732735845263957e+01 0 0 0 +2546 0 1 0.0000000000000000e+00 7.0837487104363149e+01 1.5419986699223045e+01 3.2474853487827922e+01 0 0 0 +2245 0 1 0.0000000000000000e+00 7.7490509066517220e+01 3.4398526729848243e+01 1.2572858073039530e+01 0 -1 0 +2612 0 1 0.0000000000000000e+00 7.5608276629692611e+01 3.2304790402191209e+01 1.9873015305430066e+00 0 0 0 +2610 0 1 0.0000000000000000e+00 7.1633173680271526e+01 3.2065947481402830e+01 1.9428881265550424e+00 0 0 0 +2376 0 1 0.0000000000000000e+00 8.4703497361272639e+01 1.9123792673025937e+00 2.3218272746273495e+01 0 0 0 +2115 0 1 0.0000000000000000e+00 7.3491153267069862e+01 3.4423131918997704e+01 4.1116750220426157e+00 0 -1 0 +2627 0 1 0.0000000000000000e+00 7.3263888689826445e+01 1.7241920160901021e+01 4.1141616618873877e+00 0 0 0 +2629 0 1 0.0000000000000000e+00 7.7428353614086433e+01 1.6971893601828064e+01 3.8024706896797702e+00 0 0 0 +2514 0 1 0.0000000000000000e+00 7.1113246564030590e+01 6.3721193491055805e+00 3.1768319688188047e+01 0 0 0 +2515 0 1 0.0000000000000000e+00 7.3152758107967614e+01 4.3798006907429743e+00 2.9678048153816317e+01 0 0 0 +2596 0 1 0.0000000000000000e+00 7.5407238034986207e+01 2.8374544386729674e+01 1.9609947035011348e+00 0 0 0 +2516 0 1 0.0000000000000000e+00 7.5175713996689254e+01 6.8972004643920686e+00 3.1325272024773046e+01 0 0 0 +2530 0 1 0.0000000000000000e+00 7.0735164382633442e+01 1.0828622162933428e+01 3.1322556427712044e+01 0 0 0 +2531 0 1 0.0000000000000000e+00 7.3137665583582304e+01 8.5915047457418972e+00 2.9912444130871243e+01 0 0 0 +2532 0 1 0.0000000000000000e+00 7.4706342134189427e+01 1.1022487843969250e+01 3.2148176702607834e+01 0 0 0 +2533 0 1 0.0000000000000000e+00 7.7333729150257852e+01 9.2772582038527407e+00 2.9281535252847160e+01 0 0 0 +2067 0 1 0.0000000000000000e+00 7.3204000837564934e+01 4.8644222108262971e+00 3.3937982778561377e+01 0 0 -1 +2594 0 1 0.0000000000000000e+00 7.1120600804386484e+01 2.7892779072985817e+01 2.7411512425601758e+00 0 0 0 +2949 0 1 0.0000000000000000e+00 7.7251018940218501e+01 1.7551697297109122e+01 2.5084284625309650e+01 0 0 0 +2051 0 1 0.0000000000000000e+00 7.3513992696464584e+01 3.4223022147781286e+01 3.3609612239912707e+01 0 -1 -1 +2580 0 1 0.0000000000000000e+00 7.5125402479060696e+01 2.3661551103048577e+01 2.2080127513067334e+00 0 0 0 +2578 0 1 0.0000000000000000e+00 7.0698033144660030e+01 2.4195224023307457e+01 2.1539370347108098e+00 0 0 0 +2371 0 1 0.0000000000000000e+00 7.3574851579987183e+01 2.7691028477476071e-01 2.1345533424891013e+01 0 0 0 +2755 0 1 0.0000000000000000e+00 7.2958741187402481e+01 1.7049088329131127e+01 1.2274809041905087e+01 0 0 0 +2435 0 1 0.0000000000000000e+00 7.3798029315424074e+01 3.4128028272474644e+01 2.5418819016620173e+01 0 -1 0 +2819 0 1 0.0000000000000000e+00 7.3259420105038046e+01 1.7179533190864149e+01 1.6709859549320065e+01 0 0 0 +2564 0 1 0.0000000000000000e+00 7.5311898648968011e+01 1.9577300553405987e+01 2.0076090591395737e+00 0 0 0 +2562 0 1 0.0000000000000000e+00 7.1391312838751631e+01 2.0081190475649723e+01 2.1089880202132445e+00 0 0 0 +2835 0 1 0.0000000000000000e+00 7.2966457394045236e+01 2.1564320574707310e+01 1.5855439683402977e+01 0 0 0 +2829 0 1 0.0000000000000000e+00 9.5079239227011030e+01 1.7602448582270220e+01 1.7129692104742798e+01 0 0 0 +2589 0 1 0.0000000000000000e+00 9.4180477720348321e+01 2.1296499506885805e+01 3.4341830553236576e+01 0 0 -1 +3015 0 1 0.0000000000000000e+00 8.1731273762026206e+01 1.7204564578158713e+01 3.0105584168967180e+01 0 0 0 +2885 0 1 0.0000000000000000e+00 7.7148347760529717e+01 1.7051333927774820e+01 2.0526470752201682e+01 0 0 0 +2621 0 1 0.0000000000000000e+00 9.5095172548997638e+01 3.0683193299776033e+01 3.4237184331949848e+01 0 0 -1 +2841 0 1 0.0000000000000000e+00 8.6293350576009402e+01 2.1965818390897898e+01 1.7072564234163853e+01 0 0 0 +2379 0 1 0.0000000000000000e+00 9.0489539870407853e+01 3.4473810140790320e+01 2.0722828724464371e+01 0 -1 0 +2505 0 1 0.0000000000000000e+00 8.6174113663414218e+01 3.4507876629042151e+01 2.9709216159758228e+01 0 -1 0 +2873 0 1 0.0000000000000000e+00 8.6200953457601955e+01 3.0579662560522362e+01 1.6589560842717948e+01 0 0 0 +2319 0 1 0.0000000000000000e+00 9.9404088988728830e+01 5.0409150448291651e-01 1.7382721264741420e+01 0 0 0 +2619 0 1 0.0000000000000000e+00 9.0494963644914236e+01 3.0319251019718013e+01 3.4102429832388971e+01 0 0 -1 +2599 0 1 0.0000000000000000e+00 8.1969803135725300e+01 2.5651604031895808e+01 3.4284318941978903e+01 0 0 -1 +2443 0 1 0.0000000000000000e+00 9.0518182568671691e+01 2.5075262238104945e-01 2.5537310259105812e+01 0 0 0 +2893 0 1 0.0000000000000000e+00 9.5372616301421957e+01 1.7178761655389433e+01 2.1564805987535667e+01 0 0 0 +2831 0 1 0.0000000000000000e+00 1.0302540689875551e+02 1.8214978212038929e+01 2.1800747916614291e+01 0 0 0 +2839 0 1 0.0000000000000000e+00 8.1722468510387387e+01 2.1210381268036151e+01 1.7021626768890329e+01 0 0 0 +2879 0 1 0.0000000000000000e+00 1.0143645993652083e+02 2.7555413762690655e+01 1.4586026097200623e+01 0 0 0 +2601 0 1 0.0000000000000000e+00 8.5913459055895999e+01 2.5822410219005732e+01 3.4211155032720043e+01 0 0 -1 +2583 0 1 0.0000000000000000e+00 8.2336496947781498e+01 2.1946170142056850e+01 3.3932327302590032e+01 0 0 -1 +2445 0 1 0.0000000000000000e+00 9.4572887481065905e+01 3.4423794151570966e+01 2.5423053021350210e+01 0 -1 0 +2377 0 1 0.0000000000000000e+00 8.6100127506800376e+01 2.9582286329006197e-01 2.0703511997077786e+01 0 0 0 +2875 0 1 0.0000000000000000e+00 9.0614120495668502e+01 3.0525322062429950e+01 1.6478061925913689e+01 0 0 0 +3045 0 1 0.0000000000000000e+00 7.7584659875741522e+01 2.5124572422770378e+01 2.9891591032621299e+01 0 0 0 +3041 0 1 0.0000000000000000e+00 1.0135533888227211e+02 2.8420192846044490e+01 3.2109904097923057e+01 -1 0 0 +3040 0 1 0.0000000000000000e+00 1.0055910582018689e+02 1.9764284091583058e+01 3.2426533446114526e+01 0 0 0 +3039 0 1 0.0000000000000000e+00 1.0100280826161307e+02 1.9280834139246672e+01 2.7874406351484932e+01 0 0 0 +3038 0 1 0.0000000000000000e+00 9.6786155572354744e+01 2.3771443083383996e+01 3.2023925213208450e+01 0 0 0 +3037 0 1 0.0000000000000000e+00 9.4376076123903744e+01 2.1446652719863454e+01 2.9927780429053261e+01 0 0 0 +3036 0 1 0.0000000000000000e+00 9.3079312330606058e+01 2.3916723436838932e+01 3.1884654572029056e+01 0 0 0 +3035 0 1 0.0000000000000000e+00 9.0041921310663469e+01 2.1892010384479942e+01 2.9038570188670029e+01 0 0 0 +3034 0 1 0.0000000000000000e+00 8.8033975060467569e+01 2.4239485918474148e+01 3.1586889272960693e+01 0 0 0 +3033 0 1 0.0000000000000000e+00 8.5877163385739053e+01 2.2062612851704603e+01 3.0079759184670468e+01 0 0 0 +3032 0 1 0.0000000000000000e+00 8.4218646585672062e+01 2.4559673007927955e+01 3.1662871626589297e+01 0 0 0 +3031 0 1 0.0000000000000000e+00 8.1819480963235648e+01 2.1701807652020090e+01 3.0223245162337005e+01 0 0 0 +3030 0 1 0.0000000000000000e+00 7.9600552012557600e+01 2.3667812694037881e+01 3.2432061324727677e+01 0 0 0 +3029 0 1 0.0000000000000000e+00 7.7229238220327957e+01 2.1493381157401586e+01 2.9646745022751571e+01 0 0 0 +2657 0 1 0.0000000000000000e+00 9.9117030018518818e+01 3.0140788388158519e+01 3.8621969567114163e+00 -1 0 0 +2417 0 1 0.0000000000000000e+00 1.0305026851760240e+02 1.3197884763020566e+01 2.1717253753858426e+01 -1 0 0 +3022 0 1 0.0000000000000000e+00 9.6368659596369611e+01 1.9576199585921898e+01 3.2573622459186360e+01 0 0 0 +2953 0 1 0.0000000000000000e+00 8.5359626315390301e+01 1.7160839166450437e+01 2.5589454042888015e+01 0 0 0 +3020 0 1 0.0000000000000000e+00 9.2157441395092974e+01 1.9543795723763029e+01 3.1485638151468923e+01 0 0 0 +3018 0 1 0.0000000000000000e+00 8.8178879734448756e+01 1.9552741206890790e+01 3.1540608674147915e+01 0 0 0 +3016 0 1 0.0000000000000000e+00 8.3907424606613262e+01 1.9570766482338122e+01 3.1813447912007323e+01 0 0 0 +3054 0 1 0.0000000000000000e+00 9.7517927116132157e+01 2.8590929307391445e+01 3.2351584670631233e+01 0 0 0 +3014 0 1 0.0000000000000000e+00 7.9395203851962677e+01 1.9974954341244445e+01 3.2044319873477008e+01 0 0 0 +3046 0 1 0.0000000000000000e+00 7.9686267468067285e+01 2.7488171787795331e+01 3.2621328626090431e+01 0 0 0 +3061 0 1 0.0000000000000000e+00 7.7532183666613307e+01 2.9915851785776400e+01 3.0198290443224920e+01 0 0 0 +2080 0 1 0.0000000000000000e+00 1.0132441315584066e+02 5.4999666895022408e+00 1.8299887254932874e+00 0 0 0 +3007 0 1 0.0000000000000000e+00 1.0131788356285929e+02 3.2301593659292664e+01 2.3853747404830450e+01 0 0 0 +3006 0 1 0.0000000000000000e+00 9.7161281746559553e+01 2.8234555431221082e+01 2.3775519188548596e+01 0 0 0 +3005 0 1 0.0000000000000000e+00 9.5004141147087637e+01 3.0518159775929497e+01 2.6088459298383679e+01 0 0 0 +3004 0 1 0.0000000000000000e+00 9.2220710746336650e+01 3.1994518750582333e+01 2.7517539674343116e+01 0 0 0 +3003 0 1 0.0000000000000000e+00 9.0305201066792620e+01 2.9906229924695495e+01 2.4961941555247325e+01 0 0 0 +3002 0 1 0.0000000000000000e+00 8.8586956151842358e+01 3.2182555681283453e+01 2.7692153138438155e+01 0 0 0 +3001 0 1 0.0000000000000000e+00 8.6308827863776742e+01 3.0241529303499551e+01 2.5669292815020999e+01 0 0 0 +3000 0 1 0.0000000000000000e+00 8.4146491467797446e+01 3.2139937079726359e+01 2.7981428816066373e+01 0 0 0 +2999 0 1 0.0000000000000000e+00 8.1919908563090672e+01 3.0216343616582044e+01 2.5424740666897289e+01 0 0 0 +2998 0 1 0.0000000000000000e+00 7.9265564053995845e+01 3.2355590648047773e+01 2.7371312490786060e+01 0 0 0 +2993 0 1 0.0000000000000000e+00 9.8907314099949630e+01 3.4409478974660587e+01 2.5547705221680307e+01 -1 0 0 +2272 0 1 0.0000000000000000e+00 9.9012288007538217e+01 8.4298041886116124e+00 1.7247664427731777e+01 0 0 0 +2991 0 1 0.0000000000000000e+00 9.9749014059884061e+01 2.5876526683318978e+01 2.5890510580565216e+01 0 0 0 +2990 0 1 0.0000000000000000e+00 9.7299049124647510e+01 2.8449268859383274e+01 2.8021900912673164e+01 0 0 0 +2989 0 1 0.0000000000000000e+00 9.5484515493122160e+01 2.5916571267099108e+01 2.5599098401582204e+01 0 0 0 +2988 0 1 0.0000000000000000e+00 9.3121665688126868e+01 2.8137945701426524e+01 2.7482363683849005e+01 0 0 0 +2987 0 1 0.0000000000000000e+00 9.0491449344767418e+01 2.5984767494175827e+01 2.5947899700226600e+01 0 0 0 +2986 0 1 0.0000000000000000e+00 8.9005555145461486e+01 2.8501307218550068e+01 2.7544478755701977e+01 0 0 0 +2985 0 1 0.0000000000000000e+00 8.5908824629494262e+01 2.5426168425140929e+01 2.5705988270065454e+01 0 0 0 +2984 0 1 0.0000000000000000e+00 8.3648362320384109e+01 2.7908040417646053e+01 2.7791906745695570e+01 0 0 0 +2983 0 1 0.0000000000000000e+00 8.2146410254559328e+01 2.5892784502682144e+01 2.5162387410421381e+01 0 0 0 +2982 0 1 0.0000000000000000e+00 7.9758003710279695e+01 2.8242402403158053e+01 2.7382822522867567e+01 0 0 0 +2977 0 1 0.0000000000000000e+00 1.0161750581774780e+02 2.3418872169398242e+01 2.3329769006076642e+01 -1 0 0 +2976 0 1 0.0000000000000000e+00 9.8981410629184296e+01 2.1487361605750461e+01 2.9932666279969229e+01 0 0 0 +2975 0 1 0.0000000000000000e+00 9.9662720812832490e+01 2.2296730896937312e+01 2.6556017438696621e+01 0 0 0 +2974 0 1 0.0000000000000000e+00 9.6887780810364305e+01 2.3914639370325279e+01 2.8324532586117577e+01 0 0 0 +2973 0 1 0.0000000000000000e+00 9.5049982354173679e+01 2.1133593129037813e+01 2.5849712655018674e+01 0 0 0 +2972 0 1 0.0000000000000000e+00 9.2813569041245700e+01 2.3825950135065092e+01 2.7527543595235329e+01 0 0 0 +2971 0 1 0.0000000000000000e+00 9.1289103674621757e+01 2.1394883968105386e+01 2.5616922823066087e+01 0 0 0 +2970 0 1 0.0000000000000000e+00 8.8459006941320354e+01 2.4389236746808848e+01 2.8134372887799763e+01 0 0 0 +2969 0 1 0.0000000000000000e+00 8.5677572853866764e+01 2.1787557334818331e+01 2.6594235136140703e+01 0 0 0 +2968 0 1 0.0000000000000000e+00 8.3621433822811738e+01 2.4021028041662220e+01 2.8241139385348145e+01 0 0 0 +2967 0 1 0.0000000000000000e+00 8.0892393481517416e+01 2.0896084738919221e+01 2.4934372851228446e+01 0 0 0 +2966 0 1 0.0000000000000000e+00 7.9678488743879825e+01 2.3978938113224299e+01 2.7703972956245977e+01 0 0 0 +3741 0 1 0.0000000000000000e+00 9.8989410767558169e+01 1.2525727987066547e+01 3.4039385950535170e+01 0 0 -1 +2960 0 1 0.0000000000000000e+00 9.8981945128907938e+01 1.7118779249329457e+01 3.0033718835313987e+01 0 0 0 +1409 0 1 0.0000000000000000e+00 6.9785966311686721e+01 9.1448519278430437e-02 2.5581609752769950e+01 -1 0 0 +2958 0 1 0.0000000000000000e+00 9.7227570696027101e+01 1.9118859576158787e+01 2.8199184527718284e+01 0 0 0 +3062 0 1 0.0000000000000000e+00 7.9555187766543241e+01 3.2524549645208573e+01 3.1604409357118900e+01 0 0 0 +2956 0 1 0.0000000000000000e+00 9.2514541333141139e+01 1.8985940804448262e+01 2.7874843844124861e+01 0 0 0 +3047 0 1 0.0000000000000000e+00 8.1797021491283573e+01 2.6543498314874675e+01 3.0399299069562428e+01 0 0 0 +2954 0 1 0.0000000000000000e+00 8.8147588119454554e+01 1.9635203069581721e+01 2.7364272137502468e+01 0 0 0 +2952 0 1 0.0000000000000000e+00 8.3948743472953140e+01 1.9408465667279017e+01 2.8283691490351348e+01 0 0 0 +3063 0 1 0.0000000000000000e+00 8.1762031252886274e+01 3.0392245233321958e+01 2.9693694075025125e+01 0 0 0 +2950 0 1 0.0000000000000000e+00 7.9379050011456656e+01 1.9248881454721658e+01 2.7837464467814829e+01 0 0 0 +3048 0 1 0.0000000000000000e+00 8.3894579860225463e+01 2.8401944583449410e+01 3.2104318931039337e+01 0 0 0 +2912 0 1 0.0000000000000000e+00 1.0325264665052511e+02 2.5848219082616747e+01 2.1445243851510888e+01 0 0 0 +3049 0 1 0.0000000000000000e+00 8.6238038020129920e+01 2.6126791832170252e+01 2.9800666259839467e+01 0 0 0 +2688 0 1 0.0000000000000000e+00 1.0305573983144328e+02 1.7864120972603123e-01 4.1323687383783305e+00 0 1 0 +2943 0 1 0.0000000000000000e+00 9.9155158317593077e+01 3.0492798721103465e+01 2.1496238520820793e+01 0 0 0 +2942 0 1 0.0000000000000000e+00 9.6962227933824053e+01 3.2215463646105306e+01 2.3531602867882711e+01 0 0 0 +2941 0 1 0.0000000000000000e+00 9.7299684557971716e+01 3.2352480628268395e+01 1.9607483975351141e+01 0 0 0 +2940 0 1 0.0000000000000000e+00 9.2676189789014302e+01 3.2548936246649554e+01 2.3200690819351024e+01 0 0 0 +2939 0 1 0.0000000000000000e+00 9.0310747716324244e+01 3.0240484509362108e+01 2.0967571922364936e+01 0 0 0 +2938 0 1 0.0000000000000000e+00 8.8433549351901519e+01 3.2670953230479896e+01 2.3604078796214726e+01 0 0 0 +2937 0 1 0.0000000000000000e+00 8.6035994810808546e+01 3.0849018171062195e+01 2.1586569875480709e+01 0 0 0 +2936 0 1 0.0000000000000000e+00 8.4272591944672953e+01 3.2733542137196515e+01 2.3231945596749288e+01 0 0 0 +2935 0 1 0.0000000000000000e+00 8.1644719591513507e+01 3.0264766394234076e+01 2.0653981498835627e+01 0 0 0 +2934 0 1 0.0000000000000000e+00 8.0012884667659449e+01 3.2314376874873183e+01 2.3021062094990288e+01 0 0 0 +2097 0 1 0.0000000000000000e+00 1.0095365469432915e+02 1.0465219353565427e+01 3.2244926173352226e+01 -1 0 -1 +2928 0 1 0.0000000000000000e+00 1.0156217489631764e+02 2.8197678338104957e+01 2.3273443554943075e+01 0 0 0 +2927 0 1 0.0000000000000000e+00 9.9400121604232936e+01 2.5874853128640975e+01 2.1598232077060899e+01 0 0 0 +2926 0 1 0.0000000000000000e+00 9.4695302679512949e+01 3.0117860700437074e+01 2.0830504618417304e+01 0 0 0 +2925 0 1 0.0000000000000000e+00 9.5699607033292395e+01 2.6184248065952879e+01 2.1730664472364492e+01 0 0 0 +2924 0 1 0.0000000000000000e+00 9.3035391776786270e+01 2.8180270751211044e+01 2.3652647312689744e+01 0 0 0 +2923 0 1 0.0000000000000000e+00 8.9557684289829481e+01 2.5599055322900877e+01 2.1813935554468713e+01 0 0 0 +2922 0 1 0.0000000000000000e+00 8.7525056139899107e+01 2.8344456254752384e+01 2.2781188757045328e+01 0 0 0 +2921 0 1 0.0000000000000000e+00 8.5943736695628331e+01 2.5375926241311667e+01 2.1401691115638123e+01 0 0 0 +2920 0 1 0.0000000000000000e+00 8.3786972197386945e+01 2.8113171243191868e+01 2.3002615868049052e+01 0 0 0 +2919 0 1 0.0000000000000000e+00 8.1753083179584280e+01 2.6217960679116931e+01 2.1087666852785460e+01 0 0 0 +2918 0 1 0.0000000000000000e+00 7.9288521332685804e+01 2.8654995097705203e+01 2.3403894163218702e+01 0 0 0 +2374 0 1 0.0000000000000000e+00 8.0289374728020832e+01 2.5189699676099409e+00 2.2786881646115891e+01 0 0 0 +3145 0 1 0.0000000000000000e+00 1.0136024701052672e+02 1.4504931511826493e+01 2.8141720071481895e+01 0 0 -1 +2911 0 1 0.0000000000000000e+00 1.0001569824770688e+02 2.1605965336627257e+01 2.0738266863542517e+01 0 0 0 +2910 0 1 0.0000000000000000e+00 9.7420639411379241e+01 2.3480326541833676e+01 2.3865006243299796e+01 0 0 0 +2909 0 1 0.0000000000000000e+00 9.5444707829774543e+01 2.1907734764560846e+01 2.2128878896954440e+01 0 0 0 +2908 0 1 0.0000000000000000e+00 9.2660049025642536e+01 2.4732415793165462e+01 2.3130603339581672e+01 0 0 0 +2907 0 1 0.0000000000000000e+00 9.0950917401214312e+01 2.1261320029103711e+01 2.1704022547028536e+01 0 0 0 +2906 0 1 0.0000000000000000e+00 8.8479069164909092e+01 2.2963955688344338e+01 2.3934827071196018e+01 0 0 0 +2905 0 1 0.0000000000000000e+00 8.5845789215365059e+01 2.1414011008995203e+01 2.0926363207363217e+01 0 0 0 +2904 0 1 0.0000000000000000e+00 8.3515601820103242e+01 2.3127746757502287e+01 2.3113843716109198e+01 0 0 0 +2903 0 1 0.0000000000000000e+00 8.1825172444183409e+01 2.0823382518527133e+01 2.0890630315945909e+01 0 0 0 +2902 0 1 0.0000000000000000e+00 7.9513021861519931e+01 2.3578147899797607e+01 2.3027436185728071e+01 0 0 0 +2321 0 1 0.0000000000000000e+00 1.0359158219470645e+02 4.4597948903389995e+00 2.1671266077958119e+01 -1 0 0 +3478 0 1 0.0000000000000000e+00 1.0273577457847529e+02 3.4232677667486669e+01 9.6392015151782893e+00 0 0 1 +3064 0 1 0.0000000000000000e+00 8.4598480482115036e+01 3.2232227903337154e+01 3.2023036700856203e+01 0 0 0 +2894 0 1 0.0000000000000000e+00 9.8221767115655325e+01 1.9441594317225146e+01 2.3407532357602566e+01 0 0 0 +2892 0 1 0.0000000000000000e+00 9.3636746193909502e+01 1.8965520596743492e+01 2.3652431256358796e+01 0 0 0 +3065 0 1 0.0000000000000000e+00 8.6552595902762135e+01 3.0348729244475440e+01 3.0022484607217677e+01 0 0 0 +2890 0 1 0.0000000000000000e+00 8.8383612581240271e+01 1.9295391200627190e+01 2.3044761717563325e+01 0 0 0 +2847 0 1 0.0000000000000000e+00 1.0155986447086164e+02 1.9466636940645273e+01 1.8346572374614635e+01 0 0 0 +2888 0 1 0.0000000000000000e+00 8.3946334111483338e+01 1.9348302490618515e+01 2.3058820319858164e+01 0 0 0 +3066 0 1 0.0000000000000000e+00 8.8095142010369415e+01 3.2772655506874436e+01 3.2346092683686919e+01 0 0 0 +2886 0 1 0.0000000000000000e+00 7.9167645641877840e+01 1.9219998023568667e+01 2.2383517334888005e+01 0 0 0 +3242 0 1 0.0000000000000000e+00 1.0349415046247950e+02 4.0814043662803154e+00 3.4082760512958863e+01 0 1 -1 +3067 0 1 0.0000000000000000e+00 9.0018627563316230e+01 3.0707280151246064e+01 3.0420796036717913e+01 0 0 0 +3068 0 1 0.0000000000000000e+00 9.2273393779761065e+01 3.2408728038499753e+01 3.1926017807507620e+01 0 0 0 +2880 0 1 0.0000000000000000e+00 1.0152277187951455e+02 3.2650354334117793e+01 1.9295553630739281e+01 0 0 0 +2639 0 1 0.0000000000000000e+00 1.0346460572887000e+02 1.7481237742284733e+01 3.9197405134495940e+00 0 0 0 +2878 0 1 0.0000000000000000e+00 9.6510143084912741e+01 2.1957637782046739e+00 1.8848916052786958e+01 0 1 0 +2876 0 1 0.0000000000000000e+00 9.2565795965757630e+01 3.1746411955983628e+01 1.9336654803294831e+01 0 0 0 +2288 0 1 0.0000000000000000e+00 9.9451786532391012e+01 1.3108381653226099e+01 1.6810544464194379e+01 0 0 0 +2874 0 1 0.0000000000000000e+00 8.8002241487176022e+01 3.1994357647268757e+01 1.8807609890446624e+01 0 0 0 +3050 0 1 0.0000000000000000e+00 8.7809134190617527e+01 2.7979612823750365e+01 3.2481613740678732e+01 0 0 0 +2872 0 1 0.0000000000000000e+00 8.4104534650919973e+01 3.2130452937816059e+01 1.8785835576813131e+01 0 0 0 +3051 0 1 0.0000000000000000e+00 9.0525781453380347e+01 2.6333816983303247e+01 2.9827821326913234e+01 0 0 0 +2870 0 1 0.0000000000000000e+00 7.9522131429488326e+01 3.2311694857010316e+01 1.8872572150209159e+01 0 0 0 +3052 0 1 0.0000000000000000e+00 9.2869571922369175e+01 2.8402294845738496e+01 3.1707910153203990e+01 0 0 0 +3053 0 1 0.0000000000000000e+00 9.4785275150117030e+01 2.6381637064490686e+01 2.9523196541306447e+01 0 0 0 +2603 0 1 0.0000000000000000e+00 9.0830627874760836e+01 2.6307657820875992e+01 3.3919704669655886e+01 0 0 -1 +2864 0 1 0.0000000000000000e+00 1.0141009154792305e+02 2.7340486559200880e+01 1.8445157231866713e+01 0 0 0 +2862 0 1 0.0000000000000000e+00 9.7929514359816920e+01 2.8394355868858067e+01 1.9150802622770669e+01 0 0 0 +2587 0 1 0.0000000000000000e+00 8.9967071393933665e+01 2.1940083259277277e+01 3.3680921407381355e+01 0 0 -1 +2860 0 1 0.0000000000000000e+00 9.1979487941086205e+01 2.7792640519711824e+01 1.8615287722064704e+01 0 0 0 +2858 0 1 0.0000000000000000e+00 8.8670785331388657e+01 2.7805643796423652e+01 1.9198156116040227e+01 0 0 0 +3055 0 1 0.0000000000000000e+00 9.9538572453779750e+01 2.5753713574834421e+01 2.9751311798685272e+01 0 0 0 +2856 0 1 0.0000000000000000e+00 8.4373419813404041e+01 2.8431844864724763e+01 1.9154310739645450e+01 0 0 0 +3023 0 1 0.0000000000000000e+00 9.6092652767973419e+01 1.4747572173517165e+01 3.2531081562500596e+01 0 0 0 +2854 0 1 0.0000000000000000e+00 7.9168147954079103e+01 2.7715463849039185e+01 1.8588596445423970e+01 0 0 0 +3017 0 1 0.0000000000000000e+00 8.6044788686082015e+01 1.7065834429057016e+01 2.9853190479109717e+01 0 0 0 +2863 0 1 0.0000000000000000e+00 9.9336975330111088e+01 2.5281521286607667e+01 1.6949625777761241e+01 0 0 0 +3019 0 1 0.0000000000000000e+00 9.0045141834833714e+01 1.7154273292861330e+01 2.9180948065030783e+01 0 0 0 +2848 0 1 0.0000000000000000e+00 1.0226187400754064e+02 2.4155894481929352e+01 1.8499685886085931e+01 0 0 0 +2846 0 1 0.0000000000000000e+00 9.7061536191067788e+01 2.3751168897176818e+01 1.9551352786037558e+01 0 0 0 +2844 0 1 0.0000000000000000e+00 9.2867296830683159e+01 2.3962258941512779e+01 1.9803989015858413e+01 0 0 0 +2842 0 1 0.0000000000000000e+00 8.8630406314981926e+01 2.3639606290626816e+01 1.9328887993220157e+01 0 0 0 +2840 0 1 0.0000000000000000e+00 8.3737198528193574e+01 2.4278298653901498e+01 1.9165954557696253e+01 0 0 0 +2441 0 1 0.0000000000000000e+00 8.5921262661433929e+01 3.4060313678026795e+01 2.5563829357247361e+01 0 -1 0 +2838 0 1 0.0000000000000000e+00 7.9776702156164447e+01 2.3919452826812670e+01 1.9065563743583677e+01 0 0 0 +2887 0 1 0.0000000000000000e+00 8.1794114900928577e+01 1.7230105703897927e+01 2.0861574902130336e+01 0 0 0 +2929 0 1 0.0000000000000000e+00 1.0309556731554521e+02 3.0464107206882751e+01 2.0722668562785760e+01 -1 0 0 +2383 0 1 0.0000000000000000e+00 9.9368632120008684e+01 3.4457143740417976e+01 2.1344061703871002e+01 0 -1 0 +2830 0 1 0.0000000000000000e+00 9.7153224607911753e+01 1.9462239237111397e+01 1.9227375186021291e+01 0 0 0 +3069 0 1 0.0000000000000000e+00 9.5209920973766089e+01 3.0504918966987944e+01 3.0287136254775067e+01 0 0 0 +2828 0 1 0.0000000000000000e+00 9.3032201845766494e+01 1.9552240534622232e+01 1.9329009601526998e+01 0 0 0 +3070 0 1 0.0000000000000000e+00 9.6779666532279094e+01 3.2725572132757748e+01 3.1941352778099510e+01 0 0 0 +2826 0 1 0.0000000000000000e+00 8.8692051525154014e+01 1.9631367829242034e+01 1.9051566016391156e+01 0 0 0 +3071 0 1 0.0000000000000000e+00 9.9108539010928382e+01 3.0740884624889546e+01 2.9998130815841890e+01 0 0 0 +2824 0 1 0.0000000000000000e+00 8.4017671969723224e+01 1.9038322743237956e+01 1.8665984912730742e+01 0 0 0 +3072 0 1 0.0000000000000000e+00 9.9286380483829987e+01 3.0393345467486188e+01 3.4338679519120177e+01 0 0 0 +2822 0 1 0.0000000000000000e+00 7.9410321629361547e+01 1.9452184979862821e+01 1.8728748359712764e+01 0 0 0 +2061 0 1 0.0000000000000000e+00 9.4570086421557846e+01 3.7312110111668212e-01 3.3699028292106483e+01 0 0 -1 +2877 0 1 0.0000000000000000e+00 9.4822116742848792e+01 2.9800078519996386e+01 1.7087470466267249e+01 0 0 0 +2591 0 1 0.0000000000000000e+00 9.9204949509568877e+01 2.2010523559796042e+01 3.4346423402086778e+01 0 0 -1 +2861 0 1 0.0000000000000000e+00 9.4366324263240969e+01 2.6091173606221155e+01 1.7577406911567305e+01 0 0 0 +2617 0 1 0.0000000000000000e+00 8.6233505592099704e+01 3.0722776727743195e+01 3.8615611218221146e-01 0 0 0 +2857 0 1 0.0000000000000000e+00 8.6378382305023123e+01 2.6134076769924036e+01 1.6724576486351037e+01 0 0 0 +2865 0 1 0.0000000000000000e+00 1.0371856805443419e+02 2.9822713385935238e+01 1.6988349095414602e+01 -1 0 0 +2256 0 1 0.0000000000000000e+00 1.0280829844271109e+02 8.4622795940008064e+00 1.7108547337569451e+01 0 0 0 +2633 0 1 0.0000000000000000e+00 8.6319138409526957e+01 1.6889905455538965e+01 3.2748606489100829e+00 0 0 0 +2573 0 1 0.0000000000000000e+00 9.4089659578060107e+01 1.7377887066396173e+01 3.4449811356232381e+01 0 0 -1 +2127 0 1 0.0000000000000000e+00 9.8837046596466067e+01 2.4040754230994466e-01 4.4100246647838288e+00 0 0 0 +2121 0 1 0.0000000000000000e+00 8.6360874377654994e+01 2.3854605880457391e-01 3.9087105761152321e+00 0 0 0 +2765 0 1 0.0000000000000000e+00 9.4785211887637303e+01 1.7540444381843923e+01 1.2419814454011453e+01 0 0 0 +2059 0 1 0.0000000000000000e+00 9.0620162033507142e+01 4.5246032559733385e-01 3.4507155133003927e+01 0 0 -1 +2845 0 1 0.0000000000000000e+00 9.4917409364358420e+01 2.1566080134144002e+01 1.7524647903644265e+01 0 0 0 +2607 0 1 0.0000000000000000e+00 9.9168576744130448e+01 2.6076941665174129e+01 3.3963915088221938e+01 0 0 -1 +2185 0 1 0.0000000000000000e+00 8.6610893091272729e+01 3.4393384581851151e+01 8.7156361803556930e+00 0 -1 0 +2249 0 1 0.0000000000000000e+00 8.6428069683936016e+01 3.0136678281488659e-02 1.2639216102285621e+01 0 0 0 +2119 0 1 0.0000000000000000e+00 8.1764297171164358e+01 2.8204222559461373e-01 4.1831545254312168e+00 0 0 0 +2843 0 1 0.0000000000000000e+00 9.0850041013290749e+01 2.2225900348960742e+01 1.7307848115516084e+01 0 0 0 +2187 0 1 0.0000000000000000e+00 9.0866399930564910e+01 3.4561038232399639e+01 8.4643616598990583e+00 0 -1 0 +2191 0 1 0.0000000000000000e+00 9.9404184412271775e+01 3.4523324181267633e+01 8.5649039038807278e+00 0 -1 0 +2871 0 1 0.0000000000000000e+00 8.1960297502149174e+01 3.0446579259361240e+01 1.6956888492527678e+01 0 0 0 +2761 0 1 0.0000000000000000e+00 8.5877530312343993e+01 1.6851469155566193e+01 1.2246471552036853e+01 0 0 0 +2790 0 1 0.0000000000000000e+00 7.9848196078663548e+01 2.8573980678807462e+01 1.4673106212338764e+01 0 0 0 +3480 0 1 0.0000000000000000e+00 1.0093881160788933e+02 1.0945746230408313e+01 1.6111635201790717e+00 0 0 1 +3281 0 1 0.0000000000000000e+00 1.0343885049875588e+02 1.7417356584224798e+01 2.5781395533221833e+01 0 0 0 +2783 0 1 0.0000000000000000e+00 9.9311727844423814e+01 2.1413154989921715e+01 1.6822608325879877e+01 0 0 0 +2782 0 1 0.0000000000000000e+00 9.6912822262707323e+01 2.3623082990467974e+01 1.4932531149894118e+01 0 0 0 +2781 0 1 0.0000000000000000e+00 9.4414263223372771e+01 2.1466924063732939e+01 1.2688611811210581e+01 0 0 0 +2780 0 1 0.0000000000000000e+00 9.2498297011854817e+01 2.3682871362211039e+01 1.4674780589022580e+01 0 0 0 +2779 0 1 0.0000000000000000e+00 9.0338300513709726e+01 2.1442955413168630e+01 1.2746322405296558e+01 0 0 0 +2778 0 1 0.0000000000000000e+00 8.8417547343059042e+01 2.3472676848598475e+01 1.4580885762773290e+01 0 0 0 +2777 0 1 0.0000000000000000e+00 8.6037236021588782e+01 2.1545436562720056e+01 1.2710467434806027e+01 0 0 0 +2776 0 1 0.0000000000000000e+00 8.3973026276787095e+01 2.4699213892747409e+01 1.4739075309768470e+01 0 0 0 +2775 0 1 0.0000000000000000e+00 8.1613290421948406e+01 2.1373108579477158e+01 1.2957555436553601e+01 0 0 0 +2774 0 1 0.0000000000000000e+00 7.9511850096803670e+01 2.3975031255481980e+01 1.4971179946836434e+01 0 0 0 +3377 0 1 0.0000000000000000e+00 1.0364601602395213e+02 3.0570935346526703e+01 2.5309674081346088e+01 0 -1 0 +2768 0 1 0.0000000000000000e+00 1.0180692047531682e+02 1.9780174887494560e+01 1.4307172829505905e+01 0 0 0 +3024 0 1 0.0000000000000000e+00 1.0297015953223081e+02 1.7417060448887337e+01 3.4278957727663730e+01 0 0 0 +2766 0 1 0.0000000000000000e+00 9.6522418469291182e+01 1.9810768828644434e+01 1.4736627177311801e+01 0 0 0 +2797 0 1 0.0000000000000000e+00 9.4730929746512913e+01 2.5601102810185424e+01 1.2303527772401440e+01 0 0 0 +2764 0 1 0.0000000000000000e+00 9.2703397689590616e+01 1.9632273666856673e+01 1.5300424622382160e+01 0 0 0 +2763 0 1 0.0000000000000000e+00 9.0096260673403151e+01 1.7358476001440664e+01 1.2792233862457024e+01 0 0 0 +2762 0 1 0.0000000000000000e+00 8.8124426637778171e+01 1.9479371073539497e+01 1.4969299017011659e+01 0 0 0 +2798 0 1 0.0000000000000000e+00 9.6495270399024875e+01 2.7611274753900680e+01 1.4569401062980313e+01 0 0 0 +2760 0 1 0.0000000000000000e+00 8.4315491502520700e+01 1.9333755648830749e+01 1.5045582300099840e+01 0 0 0 +2796 0 1 0.0000000000000000e+00 9.2823395331772559e+01 2.7967728004965249e+01 1.4623431690648820e+01 0 0 0 +2758 0 1 0.0000000000000000e+00 7.9357572535811258e+01 1.9239558056008036e+01 1.4761502717307161e+01 0 0 0 +2792 0 1 0.0000000000000000e+00 8.4576060929274277e+01 2.8120807535033208e+01 1.4574143534463088e+01 0 0 0 +2793 0 1 0.0000000000000000e+00 8.7065254096397240e+01 2.6210925666960328e+01 1.2415537041176629e+01 0 0 0 +2752 0 1 0.0000000000000000e+00 9.7297714098397591e+01 3.2507878795087819e+01 1.4756618419712336e+01 0 0 0 +2751 0 1 0.0000000000000000e+00 9.8980942182711175e+01 2.9773672447173908e+01 1.2858906212839784e+01 0 0 0 +2750 0 1 0.0000000000000000e+00 9.7369202986799948e+01 3.2714773211422781e+01 1.0622465117265616e+01 0 0 0 +2749 0 1 0.0000000000000000e+00 9.5460579010227065e+01 3.0337630808100066e+01 8.1380806155902814e+00 0 0 0 +2748 0 1 0.0000000000000000e+00 9.3092964551452567e+01 3.2167357162667820e+01 1.0212394035419623e+01 0 0 0 +2747 0 1 0.0000000000000000e+00 9.0377240230307962e+01 3.0390570423658755e+01 8.6367816501844281e+00 0 0 0 +2746 0 1 0.0000000000000000e+00 8.8783827801140930e+01 3.2893345569066000e+01 1.0193609284049842e+01 0 0 0 +2745 0 1 0.0000000000000000e+00 8.6225778901597252e+01 3.0657400188017661e+01 8.5583634109599185e+00 0 0 0 +2744 0 1 0.0000000000000000e+00 8.4098472537455933e+01 3.2627276645133655e+01 1.0531544671867207e+01 0 0 0 +2743 0 1 0.0000000000000000e+00 8.2090284285076805e+01 2.9949671872684849e+01 8.4557060286266168e+00 0 0 0 +2742 0 1 0.0000000000000000e+00 8.0359368417067671e+01 3.2239892288543800e+01 1.0983370475874500e+01 0 0 0 +2736 0 1 0.0000000000000000e+00 9.8772810590494956e+01 2.6071227867344295e+01 1.2909102332794161e+01 0 0 0 +2735 0 1 0.0000000000000000e+00 9.9473332472932142e+01 2.6505639521324632e+01 8.4333177036338007e+00 0 0 0 +2734 0 1 0.0000000000000000e+00 9.7022119367409331e+01 2.8018667483853744e+01 1.0592375904904967e+01 0 0 0 +2733 0 1 0.0000000000000000e+00 9.4711892805793568e+01 2.5972784577419873e+01 7.6778228185292487e+00 0 0 0 +2732 0 1 0.0000000000000000e+00 9.3125952171680510e+01 2.8323931780839281e+01 1.0371358372465091e+01 0 0 0 +2731 0 1 0.0000000000000000e+00 9.0527138665019820e+01 2.6132139573581910e+01 7.7418923268030184e+00 0 0 0 +2730 0 1 0.0000000000000000e+00 8.8130726911055191e+01 2.8284047183227838e+01 9.9212704113860983e+00 0 0 0 +2729 0 1 0.0000000000000000e+00 8.6676741480479365e+01 2.5802540311407743e+01 8.1094842386958153e+00 0 0 0 +2728 0 1 0.0000000000000000e+00 8.4459972622125179e+01 2.7714075870338252e+01 1.0196242386818142e+01 0 0 0 +2727 0 1 0.0000000000000000e+00 8.1231547459523227e+01 2.5994518433716916e+01 8.5728776721490902e+00 0 0 0 +2726 0 1 0.0000000000000000e+00 7.9663482834782855e+01 2.8208008917107026e+01 1.0679341385464394e+01 0 0 0 +2725 0 1 0.0000000000000000e+00 7.7529023165726741e+01 2.5995855803259307e+01 8.8905939804395171e+00 0 0 0 +2720 0 1 0.0000000000000000e+00 1.0078885405999107e+02 2.3983969237538588e+01 1.0129714312923591e+01 0 0 0 +2719 0 1 0.0000000000000000e+00 9.9592065741868666e+01 2.1434297003212887e+01 7.7561064796677837e+00 0 0 0 +2718 0 1 0.0000000000000000e+00 9.6991601881612382e+01 2.4176673538030609e+01 1.0285557774796130e+01 0 0 0 +2717 0 1 0.0000000000000000e+00 9.4539313703221353e+01 2.1589432141118870e+01 8.2234973464074290e+00 0 0 0 +2716 0 1 0.0000000000000000e+00 9.2596781037261849e+01 2.4134853554788045e+01 1.0292062517739435e+01 0 0 0 +2715 0 1 0.0000000000000000e+00 9.0378843080781351e+01 2.1468016000551444e+01 8.5830107294355447e+00 0 0 0 +2714 0 1 0.0000000000000000e+00 8.8646983485631907e+01 2.3695340563652820e+01 1.0642575058637915e+01 0 0 0 +2713 0 1 0.0000000000000000e+00 8.6655560629230337e+01 2.1732219509007198e+01 8.6156527243851500e+00 0 0 0 +2712 0 1 0.0000000000000000e+00 8.4215864929349735e+01 2.4154624947605999e+01 1.0684951012417809e+01 0 0 0 +2711 0 1 0.0000000000000000e+00 8.1465113165779911e+01 2.1966564207288990e+01 8.2926187701857934e+00 0 0 0 +2710 0 1 0.0000000000000000e+00 7.9692617458026646e+01 2.3836251270105205e+01 1.0661664538336641e+01 0 0 0 +2560 0 1 0.0000000000000000e+00 1.0279922128494906e+02 1.3314860617492728e+01 3.3844022814668222e+01 0 0 0 +2702 0 1 0.0000000000000000e+00 9.9373973231255150e+01 2.1753243191771549e+01 1.2457246723965511e+01 0 0 0 +2700 0 1 0.0000000000000000e+00 9.2456547274368177e+01 1.9658850369281019e+01 1.0656605199935781e+01 0 0 0 +2698 0 1 0.0000000000000000e+00 8.8317903758757296e+01 1.8920767702585501e+01 1.0333581539263227e+01 0 0 0 +2696 0 1 0.0000000000000000e+00 8.3777226233913225e+01 1.9508346610200025e+01 1.0026212061600681e+01 0 0 0 +2806 0 1 0.0000000000000000e+00 8.0101099239245613e+01 3.2346500291523050e+01 1.4978254210611153e+01 0 0 0 +2694 0 1 0.0000000000000000e+00 7.9951270716824823e+01 1.9500445292595703e+01 1.0345217338340984e+01 0 0 0 +2807 0 1 0.0000000000000000e+00 8.2386324443865206e+01 2.9943075474525561e+01 1.1997019676445156e+01 0 0 0 +2808 0 1 0.0000000000000000e+00 8.3908876733722622e+01 3.2576881011615193e+01 1.4559360832699886e+01 0 0 0 +2809 0 1 0.0000000000000000e+00 8.6529319134910423e+01 3.0235683914648167e+01 1.2287291557519390e+01 0 0 0 +3651 0 1 0.0000000000000000e+00 1.0344659092819300e+02 1.3130976078542496e+01 2.5813172868390811e+01 1 0 0 +2687 0 1 0.0000000000000000e+00 1.0091511421989956e+02 3.2650397113999972e+01 6.0170892856686367e+00 0 0 0 +2686 0 1 0.0000000000000000e+00 9.7121975067510760e+01 3.2565000868945098e+01 6.3273613822245283e+00 0 0 0 +2685 0 1 0.0000000000000000e+00 9.2710749473585395e+01 3.2135243587799884e+01 6.3505744849237500e+00 0 0 0 +2684 0 1 0.0000000000000000e+00 9.4854662323444103e+01 2.7459955190121052e-02 8.4382337764041662e+00 0 1 0 +2683 0 1 0.0000000000000000e+00 9.1114717128822164e+01 3.0550395817474822e+01 3.7282195869797463e+00 0 0 0 +2682 0 1 0.0000000000000000e+00 8.8948819919438918e+01 3.2666129454055103e+01 6.3582282137154618e+00 0 0 0 +2681 0 1 0.0000000000000000e+00 8.6343293218491198e+01 3.0783516107596178e+01 3.9826161480214930e+00 0 0 0 +2680 0 1 0.0000000000000000e+00 8.4708499576202470e+01 3.2639913887369026e+01 6.4347242733155356e+00 0 0 0 +2679 0 1 0.0000000000000000e+00 8.2784188426741196e+01 3.0562484739039530e+01 3.9850163203306730e+00 0 0 0 +2678 0 1 0.0000000000000000e+00 8.0188539050741213e+01 3.2290632463434449e+01 5.7371831596667899e+00 0 0 0 +3790 0 1 0.0000000000000000e+00 1.0344188596754979e+02 2.1768018155767017e+01 2.9374371880259481e+01 1 0 -1 +2672 0 1 0.0000000000000000e+00 9.9058181737731616e+01 3.0297313235444459e+01 8.0149227853440177e+00 0 0 0 +2671 0 1 0.0000000000000000e+00 9.7206940665491146e+01 2.3913980116059747e+01 5.9782573198193045e+00 0 0 0 +2670 0 1 0.0000000000000000e+00 9.5237299528358875e+01 3.0501737877446335e+01 4.2111632468821369e+00 0 0 0 +2669 0 1 0.0000000000000000e+00 9.4943742148806294e+01 2.5785218177361891e+01 4.0903404001061148e+00 0 0 0 +2668 0 1 0.0000000000000000e+00 9.2493664339411225e+01 2.8365702050068336e+01 6.2738552913154253e+00 0 0 0 +2667 0 1 0.0000000000000000e+00 9.0576290390226958e+01 2.6161715718460659e+01 3.9781745702761957e+00 0 0 0 +2666 0 1 0.0000000000000000e+00 8.8359811666941553e+01 2.8460842332830872e+01 6.0414297839785052e+00 0 0 0 +2665 0 1 0.0000000000000000e+00 8.5755483294121007e+01 2.6071112493013654e+01 3.7159480142018899e+00 0 0 0 +2664 0 1 0.0000000000000000e+00 8.4573004700485129e+01 2.8341994434200316e+01 6.2508099328307303e+00 0 0 0 +2663 0 1 0.0000000000000000e+00 8.2427461647008755e+01 2.6415553679597956e+01 4.7791609342868062e+00 0 0 0 +2662 0 1 0.0000000000000000e+00 7.9398766184919680e+01 2.7989035257627297e+01 6.1202214932622381e+00 0 0 0 +3725 0 1 0.0000000000000000e+00 1.0045859325174943e+02 2.6106605542382479e+00 1.0425629052956257e+01 0 1 -1 +2656 0 1 0.0000000000000000e+00 1.0132059797502713e+02 2.3985127423569264e+01 5.3284240286603284e+00 0 0 0 +2655 0 1 0.0000000000000000e+00 9.8946062808391957e+01 2.1871447141661154e+01 3.7096713065978917e+00 0 0 0 +2654 0 1 0.0000000000000000e+00 9.7147521656121683e+01 2.7729931558187854e+01 6.2318612062132441e+00 0 0 0 +2653 0 1 0.0000000000000000e+00 9.4504249839823459e+01 2.1665865352510263e+01 3.9590019923685560e+00 0 0 0 +2652 0 1 0.0000000000000000e+00 9.2438901931803571e+01 2.4044613393412053e+01 5.7568445734075562e+00 0 0 0 +2651 0 1 0.0000000000000000e+00 9.0783285678467237e+01 2.1894096915804447e+01 3.3722639584903380e+00 0 0 0 +2650 0 1 0.0000000000000000e+00 8.8198125591437432e+01 2.4086330795013190e+01 5.5891059988774527e+00 0 0 0 +2649 0 1 0.0000000000000000e+00 8.6868435652860583e+01 2.1073959897249921e+01 3.2440638404059721e+00 0 0 0 +2648 0 1 0.0000000000000000e+00 8.4198475345115440e+01 2.3449355044636146e+01 5.8456620794879335e+00 0 0 0 +2647 0 1 0.0000000000000000e+00 8.1620676684542047e+01 2.1852945214422750e+01 3.4997488891841733e+00 0 0 0 +2646 0 1 0.0000000000000000e+00 8.0015276295082288e+01 2.3654136088093843e+01 5.7720873295076025e+00 0 0 0 +2645 0 1 0.0000000000000000e+00 7.7635118819039334e+01 2.1692625742111257e+01 3.6095265021782903e+00 0 0 0 +3709 0 1 0.0000000000000000e+00 1.0131954320194258e+02 1.0640709358500541e+01 1.9160976592109922e+01 0 0 0 +3766 0 1 0.0000000000000000e+00 1.0147909390659801e+02 2.8413039755920476e+01 1.7120050820561921e+00 0 0 0 +2799 0 1 0.0000000000000000e+00 1.0173250666074706e+02 2.3535259220866440e+01 1.4345176897581480e+01 0 0 0 +2638 0 1 0.0000000000000000e+00 9.6981988436626381e+01 1.9813523295286210e+01 6.0738983433678548e+00 0 0 0 +2810 0 1 0.0000000000000000e+00 8.8156276126461009e+01 3.2690420805914108e+01 1.4421971912633191e+01 0 0 0 +2636 0 1 0.0000000000000000e+00 9.2205697992864756e+01 1.9781920594744374e+01 6.2491697853488155e+00 0 0 0 +2811 0 1 0.0000000000000000e+00 9.0257257865612090e+01 3.0830533970606425e+01 1.2207902732898427e+01 0 0 0 +2634 0 1 0.0000000000000000e+00 8.8195250619388176e+01 1.9265265010480761e+01 6.1222678742084131e+00 0 0 0 +2812 0 1 0.0000000000000000e+00 9.2860326912383982e+01 3.2636041292111386e+01 1.4917544609830825e+01 0 0 0 +2632 0 1 0.0000000000000000e+00 8.3340413394336039e+01 1.9709740842242010e+01 5.9389633051503328e+00 0 0 0 +2791 0 1 0.0000000000000000e+00 8.1821199017888532e+01 2.5929686110212405e+01 1.2584522249685163e+01 0 0 0 +2630 0 1 0.0000000000000000e+00 7.9531582091906685e+01 1.9647486989938109e+01 5.8423642597487495e+00 0 0 0 +2239 0 1 0.0000000000000000e+00 1.0105030949367742e+02 1.9603052527363090e+01 5.8130370200644066e+00 0 0 0 +2813 0 1 0.0000000000000000e+00 9.4985540296661298e+01 3.0454945316077151e+01 1.2487981214634829e+01 0 0 0 +2117 0 1 0.0000000000000000e+00 7.8115510479093288e+01 5.0312107192234556e-02 3.6505488754571371e+00 0 0 0 +3506 0 1 0.0000000000000000e+00 1.0342446001449197e+02 1.3308946019760448e-01 3.4319345950768685e+01 1 0 -1 +2794 0 1 0.0000000000000000e+00 8.8568936137080456e+01 2.8565503553242774e+01 1.4199552077840696e+01 0 0 0 +2622 0 1 0.0000000000000000e+00 9.7469789123256035e+01 3.2525395001122398e+01 1.8644517313553921e+00 0 0 0 +2795 0 1 0.0000000000000000e+00 9.0954490603823658e+01 2.6115457972576134e+01 1.2272430913691293e+01 0 0 0 +2620 0 1 0.0000000000000000e+00 9.2948112470307905e+01 3.2968754078983856e+01 2.0655898243703881e+00 0 0 0 +2618 0 1 0.0000000000000000e+00 8.9113566796776610e+01 3.2196507640704631e+01 2.0127605284858183e+00 0 0 0 +2616 0 1 0.0000000000000000e+00 8.4078848508872071e+01 3.3231182390673496e+01 2.0875687850010047e+00 0 0 0 +2614 0 1 0.0000000000000000e+00 8.0472671893014308e+01 3.2278305028205821e+01 1.7286329464541637e+00 0 0 0 +2855 0 1 0.0000000000000000e+00 8.1919883066057707e+01 2.5792482234482545e+01 1.6945879822388715e+01 0 0 0 +2608 0 1 0.0000000000000000e+00 9.9763733199129248e+01 2.6302575190665074e+01 3.3650199832300141e+00 0 0 0 +2827 0 1 0.0000000000000000e+00 9.0716592666196007e+01 1.7366353066774412e+01 1.6834248005528281e+01 0 0 0 +2606 0 1 0.0000000000000000e+00 9.7202074917111105e+01 2.8377709413244350e+01 1.9646249555921975e+00 0 0 0 +2604 0 1 0.0000000000000000e+00 9.3128638576823548e+01 2.8676252210994729e+01 2.1245979602338605e+00 0 0 0 +2251 0 1 0.0000000000000000e+00 9.0582204860384635e+01 2.6907092228846703e-02 1.2541374538363083e+01 0 0 0 +2602 0 1 0.0000000000000000e+00 8.8305543857428532e+01 2.8389744821999557e+01 2.3685334114008820e+00 0 0 0 +2585 0 1 0.0000000000000000e+00 8.6072283853549195e+01 2.1975235329649028e+01 3.3614161564276273e+01 0 0 -1 +2600 0 1 0.0000000000000000e+00 8.4283481797991442e+01 2.8107135410146341e+01 1.3345205494979955e+00 0 0 0 +2598 0 1 0.0000000000000000e+00 8.0221112865683452e+01 2.7776244097805936e+01 2.4626708414569447e+00 0 0 0 +2605 0 1 0.0000000000000000e+00 9.4702954157606186e+01 2.6237898717766790e+01 3.4309773076917878e+01 0 0 -1 +2615 0 1 0.0000000000000000e+00 8.1670286709276226e+01 3.0221479756422848e+01 3.3799374699061403e+01 0 0 -1 +2255 0 1 0.0000000000000000e+00 1.0169688497827488e+02 6.2018624659085670e+00 1.4903537457824543e+01 0 0 0 +2592 0 1 0.0000000000000000e+00 1.0184488734367800e+02 2.4175802640162384e+01 1.4060877051996921e+00 0 0 0 +2590 0 1 0.0000000000000000e+00 9.7308910966079395e+01 2.4121455306898628e+01 1.8302136078642333e+00 0 0 0 +2368 0 1 0.0000000000000000e+00 1.0187472151188636e+02 1.5218573568398337e+01 1.8999160023205292e+01 0 0 0 +2588 0 1 0.0000000000000000e+00 9.2722530921285255e+01 2.4035071945246980e+01 1.6120256505737591e+00 0 0 0 +2123 0 1 0.0000000000000000e+00 9.0550431756623610e+01 5.4928481794082340e-01 4.1843724189849159e+00 0 0 0 +2586 0 1 0.0000000000000000e+00 8.8002149739677577e+01 2.3929336166503450e+01 1.2792971789036442e+00 0 0 0 +3388 0 1 0.0000000000000000e+00 1.0139015496568440e+02 1.9392011362484716e+01 1.0428434838854040e+01 0 0 1 +2584 0 1 0.0000000000000000e+00 8.4232625770184129e+01 2.3622253444226732e+01 1.7335678083645916e+00 0 0 0 +2623 0 1 0.0000000000000000e+00 1.0205729598516808e+02 2.8208288604189420e+01 6.0273741899921225e+00 0 0 0 +2582 0 1 0.0000000000000000e+00 7.9489089371213566e+01 2.3901655776106725e+01 1.6639001678697556e+00 0 0 0 +2631 0 1 0.0000000000000000e+00 8.0925204851012296e+01 1.7174676693942391e+01 3.3728253366301946e+00 0 0 0 +2637 0 1 0.0000000000000000e+00 9.4560473552777054e+01 1.7938038059948234e+01 3.7741562452083808e+00 0 0 0 +2859 0 1 0.0000000000000000e+00 9.0131084754247397e+01 2.5602169559544198e+01 1.6321815786584043e+01 0 0 0 +2576 0 1 0.0000000000000000e+00 1.0140007211406258e+02 1.9495939597700314e+01 1.9861894328882221e+00 0 0 0 +2574 0 1 0.0000000000000000e+00 9.7354951008425942e+01 1.9202185486753834e+01 1.3357959463091507e+00 0 0 0 +2814 0 1 0.0000000000000000e+00 9.9691120418792224e+01 3.0254419825878045e+01 1.6204587998833425e+01 0 0 0 +2572 0 1 0.0000000000000000e+00 9.2042583380835069e+01 1.9717417241946940e+01 1.4056122539692031e+00 0 0 0 +2815 0 1 0.0000000000000000e+00 1.0172222114308049e+02 3.2754663415545764e+01 1.5284019579740587e+01 0 0 0 +2570 0 1 0.0000000000000000e+00 8.8264548345868135e+01 1.8814675243432625e+01 1.1461062296261439e+00 0 0 0 +2597 0 1 0.0000000000000000e+00 7.6764386910866648e+01 2.5947441098402884e+01 3.4478226603861621e+01 0 0 -1 +2568 0 1 0.0000000000000000e+00 8.3984130825048567e+01 1.9435755336690608e+01 2.0744726994599687e+00 0 0 0 +3708 0 1 0.0000000000000000e+00 1.0360375143132910e+02 1.2574404796067260e+01 1.2632128568770961e+01 0 0 0 +2566 0 1 0.0000000000000000e+00 7.9509503538607220e+01 2.0107836537247305e+01 1.0870139212284839e+00 0 0 0 +2635 0 1 0.0000000000000000e+00 9.0771474880043982e+01 1.7865955247785859e+01 4.1925296963862460e+00 0 0 0 +2305 0 1 0.0000000000000000e+00 9.9845439719285764e+01 4.2412747810766055e-01 1.2892596996398371e+01 -1 0 0 +2571 0 1 0.0000000000000000e+00 9.0419357112541761e+01 1.7058229334061959e+01 3.3643206978226942e+01 0 0 -1 +2501 0 1 0.0000000000000000e+00 7.7641332199353371e+01 5.0558924724800641e-02 2.9849006934012650e+01 0 0 0 +2105 0 1 0.0000000000000000e+00 8.6524444570886246e+01 1.2272700869820227e+01 3.3857690402442337e+01 0 0 -1 +2057 0 1 0.0000000000000000e+00 8.6572200471470168e+01 1.0219067467463359e-01 2.5040335564162297e-01 0 0 0 +2957 0 1 0.0000000000000000e+00 9.5470548255148671e+01 1.7325252587336323e+01 2.5744078617701742e+01 0 0 0 +2951 0 1 0.0000000000000000e+00 8.1574618014593753e+01 1.7699985430109830e+01 2.5918570595332191e+01 0 0 0 +2823 0 1 0.0000000000000000e+00 8.1761363295352623e+01 1.7224995519402370e+01 1.6921126605334884e+01 0 0 0 +3960 0 1 0.0000000000000000e+00 1.0142796725982532e+02 1.0571859093645346e+01 1.4587048755174706e+01 0 0 0 +2053 0 1 0.0000000000000000e+00 7.7210311258865190e+01 1.7315103835299139e-01 3.3974699596158757e+01 0 0 -1 +2891 0 1 0.0000000000000000e+00 9.0360639254696380e+01 1.7159200427600346e+01 2.1298240721788428e+01 0 0 0 +2331 0 1 0.0000000000000000e+00 9.0548428402619876e+01 4.3190145310284569e+00 1.7076359839235280e+01 0 0 0 +3021 0 1 0.0000000000000000e+00 9.5038082443476512e+01 1.6898190220824524e+01 3.0196840704944211e+01 0 0 0 +2089 0 1 0.0000000000000000e+00 8.6343119643288986e+01 8.5394082821860202e+00 3.3895546042011169e+01 0 0 -1 +2535 0 1 0.0000000000000000e+00 8.1772292467094360e+01 8.4774784123179128e+00 3.0108325310549624e+01 0 0 0 +2534 0 1 0.0000000000000000e+00 7.9568308898258195e+01 1.1092147377029470e+01 3.1733869488908734e+01 0 0 0 +2528 0 1 0.0000000000000000e+00 9.8839308226705754e+01 4.0217019426669074e+00 3.4358981997152107e+01 0 0 0 +2527 0 1 0.0000000000000000e+00 9.8867840911357163e+01 4.1807809023423346e+00 2.9240258210162928e+01 0 0 0 +2526 0 1 0.0000000000000000e+00 9.7718637892764320e+01 6.5535986309458734e+00 3.2408388507169278e+01 0 0 0 +2525 0 1 0.0000000000000000e+00 9.4689167424485007e+01 4.0083740911878065e+00 2.9858416461701061e+01 0 0 0 +2524 0 1 0.0000000000000000e+00 9.2344080704128061e+01 6.6443088957137295e+00 3.1958484819049843e+01 0 0 0 +2523 0 1 0.0000000000000000e+00 9.0418851387251948e+01 4.0898572825593122e+00 2.8992644853252457e+01 0 0 0 +2522 0 1 0.0000000000000000e+00 8.8184397911496603e+01 6.1799600566649868e+00 3.1671065528516316e+01 0 0 0 +2521 0 1 0.0000000000000000e+00 8.6288706079050598e+01 4.1858806148165186e+00 2.9553863078819990e+01 0 0 0 +2520 0 1 0.0000000000000000e+00 8.4173594085876402e+01 6.2818162997841638e+00 3.1573860074215496e+01 0 0 0 +2519 0 1 0.0000000000000000e+00 8.1671928218808773e+01 4.0563700277959942e+00 3.0268980205339794e+01 0 0 0 +2518 0 1 0.0000000000000000e+00 7.9291534493506774e+01 6.9876132473105992e+00 3.1736625559017583e+01 0 0 0 +2517 0 1 0.0000000000000000e+00 7.7464095880718673e+01 4.5532542700774492e+00 2.9901847785630189e+01 0 0 0 +3876 0 1 0.0000000000000000e+00 1.0331065700924152e+02 2.2232014120520603e+01 7.7038537643294971e+00 1 0 0 +2510 0 1 0.0000000000000000e+00 9.6942169736638803e+01 2.0934558164800725e+00 3.1646322661356667e+01 0 0 0 +2508 0 1 0.0000000000000000e+00 9.2338916562546061e+01 2.3838611396250382e+00 3.1522872252463625e+01 0 0 0 +2539 0 1 0.0000000000000000e+00 9.1169176895188514e+01 9.1452553165383321e+00 2.9410958749247140e+01 0 0 0 +2506 0 1 0.0000000000000000e+00 8.8306349674737120e+01 2.2766178405183100e+00 3.1783945716057978e+01 0 0 0 +2821 0 1 0.0000000000000000e+00 7.7513116804072880e+01 1.6930746645997186e+01 1.6495832285274272e+01 0 0 0 +2504 0 1 0.0000000000000000e+00 8.4210144400762630e+01 2.0930330634015806e+00 3.2369333357340111e+01 0 0 0 +2502 0 1 0.0000000000000000e+00 7.9571869211030304e+01 1.9726257218556105e+00 3.2138061941751118e+01 0 0 0 +2895 0 1 0.0000000000000000e+00 9.9635405514998723e+01 1.7303500995571184e+01 2.0881966850910977e+01 0 0 0 +2496 0 1 0.0000000000000000e+00 9.8859925157148027e+01 1.3058571587561678e+01 3.0412491981565410e+01 0 0 0 +2495 0 1 0.0000000000000000e+00 9.9489354994736658e+01 1.3472377760815267e+01 2.5413278392511501e+01 0 0 0 +2494 0 1 0.0000000000000000e+00 9.9392183873641883e+01 1.6841312807940323e+01 2.6028612671744547e+01 0 0 0 +2493 0 1 0.0000000000000000e+00 9.5002074033920621e+01 1.3190040474478241e+01 2.5491202236893006e+01 0 0 0 +2492 0 1 0.0000000000000000e+00 9.3183512944467864e+01 1.5473232620697727e+01 2.7730744752951797e+01 0 0 0 +2491 0 1 0.0000000000000000e+00 9.0909320944179242e+01 1.3731321884443627e+01 2.4945281969393903e+01 0 0 0 +2490 0 1 0.0000000000000000e+00 8.7543451121557922e+01 1.4906800989484182e+01 2.7109835802828194e+01 0 0 0 +2489 0 1 0.0000000000000000e+00 8.5407305806091117e+01 1.2508943198779097e+01 2.5229268734177158e+01 0 0 0 +2488 0 1 0.0000000000000000e+00 8.3378734474974621e+01 1.4830328932913739e+01 2.7310934911303164e+01 0 0 0 +2487 0 1 0.0000000000000000e+00 8.1447100106048879e+01 1.2752368942458190e+01 2.5017994511492841e+01 0 0 0 +2486 0 1 0.0000000000000000e+00 7.9801463727857168e+01 1.5351938416103337e+01 2.7115798257938437e+01 0 0 0 +2481 0 1 0.0000000000000000e+00 1.0151350174763563e+02 1.5739269528755374e+01 2.3499927876831723e+01 -1 0 0 +2480 0 1 0.0000000000000000e+00 1.0067862460686531e+02 1.1158791045003500e+01 2.7570280466829207e+01 0 0 0 +2479 0 1 0.0000000000000000e+00 9.8611027047973948e+01 7.9935356954720067e+00 2.5777478506296536e+01 0 0 0 +2478 0 1 0.0000000000000000e+00 9.7176935532529171e+01 1.0784455439286068e+01 2.7609714399202321e+01 0 0 0 +2477 0 1 0.0000000000000000e+00 9.4736666263099337e+01 8.8162708329943342e+00 2.5708907167800351e+01 0 0 0 +2476 0 1 0.0000000000000000e+00 9.3226922100563698e+01 1.1507406965205949e+01 2.7478442420525507e+01 0 0 0 +2475 0 1 0.0000000000000000e+00 9.0479640851649805e+01 9.1160304039153157e+00 2.5782714269457990e+01 0 0 0 +2474 0 1 0.0000000000000000e+00 8.8307769228060764e+01 1.1284847890810154e+01 2.7515555077057194e+01 0 0 0 +2473 0 1 0.0000000000000000e+00 8.6576349922791280e+01 8.9350774640308988e+00 2.5777795675447958e+01 0 0 0 +2472 0 1 0.0000000000000000e+00 8.3794471975999357e+01 1.0487655328118800e+01 2.7199966209663199e+01 0 0 0 +2471 0 1 0.0000000000000000e+00 8.1494431269520987e+01 9.0191058121339704e+00 2.4863345347148957e+01 0 0 0 +2470 0 1 0.0000000000000000e+00 8.0132260631138337e+01 1.0447416918547397e+01 2.7925050218846327e+01 0 0 0 +2465 0 1 0.0000000000000000e+00 1.0112568144667775e+02 6.5284575645305987e+00 2.7584962896340667e+01 -1 0 0 +3788 0 1 0.0000000000000000e+00 1.0352904439680580e+02 2.6015290295970491e+01 8.5221263055599525e+00 0 0 0 +2463 0 1 0.0000000000000000e+00 9.9077399835414937e+01 4.1980427039394161e+00 2.5269401101806544e+01 0 0 0 +2462 0 1 0.0000000000000000e+00 9.6607898160646869e+01 6.4891355653396730e+00 2.8262767464059650e+01 0 0 0 +2461 0 1 0.0000000000000000e+00 9.5143383459968589e+01 4.1031096028242748e+00 2.5849615566505118e+01 0 0 0 +2460 0 1 0.0000000000000000e+00 9.2728292950663757e+01 6.6830343050163536e+00 2.7695452885451498e+01 0 0 0 +2459 0 1 0.0000000000000000e+00 9.0601071949761788e+01 4.8363583107337833e+00 2.5311852556333047e+01 0 0 0 +2458 0 1 0.0000000000000000e+00 8.8549616222225453e+01 6.7920733274087732e+00 2.7685224871734469e+01 0 0 0 +2457 0 1 0.0000000000000000e+00 8.5934210533259289e+01 4.4549200071051214e+00 2.5387545193879049e+01 0 0 0 +2456 0 1 0.0000000000000000e+00 8.4028631463209067e+01 6.6834221845633808e+00 2.7688019749186235e+01 0 0 0 +2455 0 1 0.0000000000000000e+00 8.2142516936811447e+01 3.7053297214668781e+00 2.5659911336149921e+01 0 0 0 +2454 0 1 0.0000000000000000e+00 8.0123209539678925e+01 6.6524556603584122e+00 2.7647904970021848e+01 0 0 0 +2448 0 1 0.0000000000000000e+00 9.9215335416597540e+01 1.8025510918127685e-01 2.9705172064018246e+01 0 0 0 +2550 0 1 0.0000000000000000e+00 8.0230051296672428e+01 1.5414257300927810e+01 3.2564014675141422e+01 0 0 0 +2446 0 1 0.0000000000000000e+00 9.6495493976272272e+01 1.6531678678837258e+00 2.8016988793511800e+01 0 0 0 +2551 0 1 0.0000000000000000e+00 8.1298894545301692e+01 1.3133646127214512e+01 2.9786610497518659e+01 0 0 0 +2444 0 1 0.0000000000000000e+00 9.2609874968058719e+01 2.6432853000147727e+00 2.7424936431760038e+01 0 0 0 +2552 0 1 0.0000000000000000e+00 8.4160547347497754e+01 1.5313929899132743e+01 3.2494517736294178e+01 0 0 0 +2442 0 1 0.0000000000000000e+00 8.8134930579625888e+01 1.8224172254077489e+00 2.7251052604703581e+01 0 0 0 +2553 0 1 0.0000000000000000e+00 8.5367271393206948e+01 1.3142419450236297e+01 2.9823342976214661e+01 0 0 0 +2440 0 1 0.0000000000000000e+00 8.4231370100602433e+01 2.5738249893313734e+00 2.7718159906054741e+01 0 0 0 +2554 0 1 0.0000000000000000e+00 8.7976652632777856e+01 1.5232011857048454e+01 3.2066899243404357e+01 0 0 0 +2438 0 1 0.0000000000000000e+00 7.9512285908724380e+01 2.1518339154633574e+00 2.7951242349702593e+01 0 0 0 +2555 0 1 0.0000000000000000e+00 9.0574160220909505e+01 1.3369813751876297e+01 2.9033622559998111e+01 0 0 0 +2556 0 1 0.0000000000000000e+00 9.2370498639533835e+01 1.4821473215493320e+01 3.1222417326875327e+01 0 0 0 +2544 0 1 0.0000000000000000e+00 1.0303044026612429e+02 1.2499804848417119e+01 3.0290590176193895e+01 0 0 0 +2431 0 1 0.0000000000000000e+00 9.9170048330303885e+01 1.3172096625790163e+01 2.1102262755012351e+01 0 0 0 +2430 0 1 0.0000000000000000e+00 9.7336263593531456e+01 1.4839540438893515e+01 2.3169523168071606e+01 0 0 0 +2429 0 1 0.0000000000000000e+00 9.4846828922396057e+01 1.3163166166444002e+01 2.1195500918374059e+01 0 0 0 +2428 0 1 0.0000000000000000e+00 9.3634512545311736e+01 1.4908340695848704e+01 2.3379830999693755e+01 0 0 0 +2427 0 1 0.0000000000000000e+00 9.0814494070988616e+01 1.2996442278624155e+01 2.1794454007897663e+01 0 0 0 +2426 0 1 0.0000000000000000e+00 8.7991809386857000e+01 1.5359467429459528e+01 2.3178103459512354e+01 0 0 0 +2425 0 1 0.0000000000000000e+00 8.6347767021709316e+01 1.3584026278568038e+01 2.0715705817536350e+01 0 0 0 +2424 0 1 0.0000000000000000e+00 8.3256944300103882e+01 1.5006317378479837e+01 2.3468504566162878e+01 0 0 0 +2423 0 1 0.0000000000000000e+00 8.1280169763470923e+01 1.2200790621820767e+01 2.1594527116503372e+01 0 0 0 +2422 0 1 0.0000000000000000e+00 7.9452118382172941e+01 1.5454629551222123e+01 2.3245004748536132e+01 0 0 0 +2541 0 1 0.0000000000000000e+00 9.4746234493507757e+01 8.9325143534981244e+00 3.0206151074258425e+01 0 0 0 +2416 0 1 0.0000000000000000e+00 1.0092883337548975e+02 1.0282407043500195e+01 2.3665083472577869e+01 0 0 0 +2415 0 1 0.0000000000000000e+00 1.0118310002538307e+02 6.3264748669508126e+00 2.3247709357663318e+01 0 0 0 +2414 0 1 0.0000000000000000e+00 9.6772990440781641e+01 1.0766076378924470e+01 2.3527134096702266e+01 0 0 0 +2413 0 1 0.0000000000000000e+00 9.4507278021330777e+01 8.5712520293685959e+00 2.1689573244832701e+01 0 0 0 +2412 0 1 0.0000000000000000e+00 9.3139254987520317e+01 1.0959322143373381e+01 2.3646049692825414e+01 0 0 0 +2411 0 1 0.0000000000000000e+00 9.0908974329676340e+01 8.2301564787104873e+00 2.1786120239221848e+01 0 0 0 +2410 0 1 0.0000000000000000e+00 8.8481687872846052e+01 1.1111111852142503e+01 2.3329366055692205e+01 0 0 0 +2409 0 1 0.0000000000000000e+00 8.6443243078768347e+01 8.9928160090801992e+00 2.0619995574931341e+01 0 0 0 +2408 0 1 0.0000000000000000e+00 8.4370034688674139e+01 1.0549616809036511e+01 2.3090657334725297e+01 0 0 0 +2407 0 1 0.0000000000000000e+00 8.2071561306110212e+01 8.7741957750310728e+00 2.0685734654685621e+01 0 0 0 +2406 0 1 0.0000000000000000e+00 7.9024623539016105e+01 1.0546663632530652e+01 2.3518157357773731e+01 0 0 0 +2896 0 1 0.0000000000000000e+00 1.0376374408603996e+02 2.1892663728988765e+01 2.0693463734299772e+01 0 0 0 +2399 0 1 0.0000000000000000e+00 1.0153945283493161e+02 6.4585110290771706e+00 1.9186962023038706e+01 0 0 0 +2398 0 1 0.0000000000000000e+00 9.6924576647213257e+01 6.5525271375744518e+00 2.3395073934024698e+01 0 0 0 +2397 0 1 0.0000000000000000e+00 9.5347159997696664e+01 4.0723726949316399e+00 2.1625764749169385e+01 0 0 0 +2396 0 1 0.0000000000000000e+00 9.3487213351622970e+01 6.2519106294802311e+00 2.3716167598777361e+01 0 0 0 +2395 0 1 0.0000000000000000e+00 9.0504960947799674e+01 5.2064631844015112e+00 2.1616266177508660e+01 0 0 0 +2697 0 1 0.0000000000000000e+00 8.6240419253136068e+01 1.7289231101471046e+01 8.2116497100198718e+00 0 0 0 +3332 0 1 0.0000000000000000e+00 1.0086727760641544e+02 6.8515040080820535e+00 1.0853911222986381e+01 0 0 0 +2054 0 1 0.0000000000000000e+00 8.0249460779883606e+01 2.0064675819435207e+00 1.3289862718924446e+00 0 0 0 +2303 0 1 0.0000000000000000e+00 9.9639042752974419e+01 1.2733958047596257e+01 1.2650305633573090e+01 0 0 0 +2056 0 1 0.0000000000000000e+00 8.3837187473930456e+01 2.7245575446186803e+00 1.9758088882608875e+00 0 0 0 +2058 0 1 0.0000000000000000e+00 8.8678490201857642e+01 2.7665933385447650e+00 2.1654778097598766e+00 0 0 0 +2825 0 1 0.0000000000000000e+00 8.6818934595302949e+01 1.6826252120660207e+01 1.8113158463553184e+01 0 0 0 +2060 0 1 0.0000000000000000e+00 9.3084337778701922e+01 2.4318154755219035e+00 2.0241142880742951e+00 0 0 0 +2302 0 1 0.0000000000000000e+00 9.9598676030426063e+01 1.7428495378792316e+01 1.6510102605349218e+01 0 0 0 +3236 0 1 0.0000000000000000e+00 1.0336724569088348e+02 1.9157867324491751e-01 1.7118049057516068e+01 0 0 0 +2064 0 1 0.0000000000000000e+00 1.0112943120411180e+02 2.6119134543113480e+00 3.1501512345852035e+01 0 0 -1 +2055 0 1 0.0000000000000000e+00 8.2248831023356374e+01 3.4434704737427424e+01 3.3887976458700578e+01 0 -1 -1 +2349 0 1 0.0000000000000000e+00 9.4671582545309093e+01 8.8466256842906468e+00 1.6523612689949800e+01 0 0 0 +2101 0 1 0.0000000000000000e+00 7.7185056778817724e+01 1.2676653741583426e+01 3.3924370577083451e+01 0 0 -1 +2070 0 1 0.0000000000000000e+00 7.9574687003908139e+01 7.3621596367997313e+00 2.1269468969966789e+00 0 0 0 +2072 0 1 0.0000000000000000e+00 8.4094899487830361e+01 6.8881214569194045e+00 1.5973123876791262e+00 0 0 0 +2074 0 1 0.0000000000000000e+00 8.8288161102064464e+01 6.8200192824105557e+00 2.0495540373648722e+00 0 0 0 +2361 0 1 0.0000000000000000e+00 8.6205106028025426e+01 1.3538306614383094e+01 1.7233133014881034e+01 0 0 0 +2076 0 1 0.0000000000000000e+00 9.2624460512775443e+01 6.2875595151261576e+00 1.3154023462225275e+00 0 0 0 +2343 0 1 0.0000000000000000e+00 8.2472910749496549e+01 8.4360177608024731e+00 1.6521722506553992e+01 0 0 0 +2078 0 1 0.0000000000000000e+00 9.6936004570690116e+01 6.2647765237853070e+00 1.9872867291870602e+00 0 0 0 +2575 0 1 0.0000000000000000e+00 9.8748382372916097e+01 1.6571670389675209e+01 3.3514948876024178e+01 0 0 -1 +2336 0 1 0.0000000000000000e+00 1.0310751948057060e+02 8.5270782075246405e+00 2.1584239854587370e+01 0 0 0 +3962 0 1 0.0000000000000000e+00 1.0193537755848050e+02 1.9875535538378073e+00 2.8005531083132002e+01 0 1 0 +2759 0 1 0.0000000000000000e+00 8.2354465304333260e+01 1.6682393942208563e+01 1.2778194382604385e+01 0 0 0 +2313 0 1 0.0000000000000000e+00 8.5362805918838774e+01 9.8552473335903293e-02 1.6748147648512401e+01 0 0 0 +2086 0 1 0.0000000000000000e+00 7.9517673244338923e+01 1.0839618166948153e+01 1.9222405215859371e+00 0 0 0 +2088 0 1 0.0000000000000000e+00 8.4323246419962274e+01 1.0857968900180326e+01 1.1851195957916185e+00 0 0 0 +2090 0 1 0.0000000000000000e+00 8.8154704191327781e+01 1.0930150383844859e+01 1.8743892989365658e+00 0 0 0 +2092 0 1 0.0000000000000000e+00 9.2051121497631286e+01 1.0691084593908055e+01 1.5162506176680741e+00 0 0 0 +2767 0 1 0.0000000000000000e+00 9.9834225419593878e+01 1.7542437771390791e+01 1.2690750652278259e+01 0 0 0 +2094 0 1 0.0000000000000000e+00 9.6528918036402359e+01 1.0865607005588391e+01 1.3367358591862870e+00 0 0 0 +2367 0 1 0.0000000000000000e+00 9.7423058322361541e+01 1.5209943898156254e+01 1.4524289295204863e+01 0 0 0 +2096 0 1 0.0000000000000000e+00 9.8702383176085789e+01 1.3140377601267698e+01 4.1501059224353458e+00 0 0 0 +2311 0 1 0.0000000000000000e+00 8.1830042079310473e+01 1.1741229767787840e-01 1.7014537107314947e+01 0 0 0 +3408 0 1 0.0000000000000000e+00 1.0189795662763356e+02 2.3792530353033705e+01 3.1542362084726904e+01 0 0 0 +2699 0 1 0.0000000000000000e+00 9.0905968999049364e+01 1.7559920576079232e+01 8.4480456386013110e+00 0 0 0 +2102 0 1 0.0000000000000000e+00 7.9597040124776967e+01 1.4486569396654115e+01 1.5840926871165650e+00 0 0 0 +2286 0 1 0.0000000000000000e+00 9.4988429184512597e+01 8.8061882227858135e+00 1.2474465475543676e+01 0 0 0 +2104 0 1 0.0000000000000000e+00 8.4253589717012233e+01 1.4865569039274417e+01 1.6308773976148436e+00 0 0 0 +2285 0 1 0.0000000000000000e+00 9.7110949052625728e+01 7.0627663474850761e+00 1.0939058648564954e+01 0 0 0 +2106 0 1 0.0000000000000000e+00 8.8513546952616437e+01 1.4911258901799581e+01 1.7369787281799942e+00 0 0 0 +2284 0 1 0.0000000000000000e+00 9.2227585203065004e+01 1.0242950422431756e+01 1.4545830421101329e+01 0 0 0 +2108 0 1 0.0000000000000000e+00 9.1995974324858253e+01 1.5456920003317807e+01 2.2050984982272679e+00 0 0 0 +2282 0 1 0.0000000000000000e+00 8.8485079513301159e+01 1.1842435980217108e+01 1.4894648814636673e+01 0 0 0 +2110 0 1 0.0000000000000000e+00 9.9396364374823094e+01 1.7055490778635221e+01 4.4522244766172152e+00 0 0 0 +2283 0 1 0.0000000000000000e+00 8.9993981670714035e+01 8.8336642066717470e+00 1.2741004641192104e+01 0 0 0 +2112 0 1 0.0000000000000000e+00 1.0087034047390827e+02 1.5463273588094189e+01 1.8291343997537086e+00 0 0 0 +2301 0 1 0.0000000000000000e+00 9.4801643928283454e+01 1.2875550161457820e+01 1.2904766048017406e+01 0 0 0 +2103 0 1 0.0000000000000000e+00 8.1928812497139873e+01 1.2825568738213429e+01 3.3818603358741505e+01 0 0 -1 +2300 0 1 0.0000000000000000e+00 9.3297059411136260e+01 1.5863882426438227e+01 1.4772470028645071e+01 0 0 0 +2118 0 1 0.0000000000000000e+00 7.9081594756884783e+01 2.1699413507776599e+00 6.1170726016178865e+00 0 0 0 +2299 0 1 0.0000000000000000e+00 9.0807367584450759e+01 1.3480702067468519e+01 1.3070748168104492e+01 0 0 0 +2120 0 1 0.0000000000000000e+00 8.4194765476724527e+01 1.7911406426388534e+00 6.4029599989874058e+00 0 0 0 +2183 0 1 0.0000000000000000e+00 8.1550790591989895e+01 3.4256506324760252e+01 8.5238181915297240e+00 0 -1 0 +2122 0 1 0.0000000000000000e+00 8.8561988554587401e+01 2.0311330310380851e+00 6.6530887902773443e+00 0 0 0 +2124 0 1 0.0000000000000000e+00 9.2637892500306108e+01 2.6655885307644960e+00 6.4222234200790442e+00 0 0 0 +2298 0 1 0.0000000000000000e+00 8.8213122253219055e+01 1.5529438000232163e+01 1.5348663971764356e+01 0 0 0 +2126 0 1 0.0000000000000000e+00 9.9450815388461081e+01 4.4112275567033237e+00 4.4918107158489216e+00 0 0 0 +2297 0 1 0.0000000000000000e+00 8.6439678749040155e+01 1.3461035994062305e+01 1.2907429516554757e+01 0 0 0 +2128 0 1 0.0000000000000000e+00 1.0135356382707745e+02 2.6871174107347007e+00 6.8600097917685288e+00 0 0 0 +2133 0 1 0.0000000000000000e+00 7.7934652821263484e+01 4.4587328795621799e+00 4.1216044326644283e+00 0 0 0 +2134 0 1 0.0000000000000000e+00 7.9430921517018689e+01 6.9542888518372319e+00 6.3584104313750940e+00 0 0 0 +2135 0 1 0.0000000000000000e+00 8.1444438026076085e+01 4.4792685023610437e+00 4.0183110200201062e+00 0 0 0 +2136 0 1 0.0000000000000000e+00 8.3934717393907221e+01 6.5436597693146350e+00 5.6691079004583926e+00 0 0 0 +2137 0 1 0.0000000000000000e+00 8.6432725754573525e+01 4.7139747380889450e+00 4.0331919426830432e+00 0 0 0 +2138 0 1 0.0000000000000000e+00 8.8520021295420065e+01 6.5483888223883069e+00 5.6340657246196422e+00 0 0 0 +2139 0 1 0.0000000000000000e+00 9.0803193134637311e+01 4.8220897602765094e+00 3.7638143802616608e+00 0 0 0 +2140 0 1 0.0000000000000000e+00 9.3208823926722289e+01 6.4495372452284023e+00 6.4989218632824546e+00 0 0 0 +2141 0 1 0.0000000000000000e+00 9.5278586439135196e+01 4.7444745170089364e+00 4.2036996148431207e+00 0 0 0 +2142 0 1 0.0000000000000000e+00 9.6752587158431822e+01 7.2457425386580487e+00 6.1566902410895974e+00 0 0 0 +2143 0 1 0.0000000000000000e+00 1.0115050642594822e+02 2.2768398175479643e+00 2.1469142515453501e+00 0 0 0 +2144 0 1 0.0000000000000000e+00 1.0134073009346081e+02 6.6258590549251144e+00 7.3650723125809474e+00 0 0 0 +3847 0 1 0.0000000000000000e+00 1.0125900897343075e+02 5.8386112644139496e+00 3.2099182398825278e+01 0 1 0 +2150 0 1 0.0000000000000000e+00 7.9538732016397660e+01 1.1275758957940200e+01 5.9616977902262125e+00 0 0 0 +2151 0 1 0.0000000000000000e+00 8.1758850905334853e+01 9.1213248428466578e+00 4.2393586222598696e+00 0 0 0 +2152 0 1 0.0000000000000000e+00 8.4228689787805806e+01 1.0726002278379097e+01 6.2477171953607860e+00 0 0 0 +2153 0 1 0.0000000000000000e+00 8.6106123608594373e+01 8.7614232345722556e+00 4.2368387164823265e+00 0 0 0 +2154 0 1 0.0000000000000000e+00 8.8597575027801184e+01 1.0715545171877524e+01 6.3614499876609019e+00 0 0 0 +2155 0 1 0.0000000000000000e+00 9.0321048812698976e+01 8.7099129870229302e+00 3.9422055588459344e+00 0 0 0 +2156 0 1 0.0000000000000000e+00 9.3168750854333965e+01 1.0247256769367167e+01 5.7388158967562202e+00 0 0 0 +2157 0 1 0.0000000000000000e+00 9.4599446369104754e+01 8.3113193163653332e+00 3.5281775529428807e+00 0 0 0 +2158 0 1 0.0000000000000000e+00 1.0108029070355711e+02 1.5310167918984455e+01 1.0207661253761547e+01 0 0 0 +2159 0 1 0.0000000000000000e+00 9.7299162206258927e+01 1.1005199589575122e+01 6.0194065848122094e+00 0 0 0 +2160 0 1 0.0000000000000000e+00 9.9251415800598622e+01 1.3104407204039148e+01 8.4909883970951494e+00 0 0 0 +2567 0 1 0.0000000000000000e+00 8.1606027392413793e+01 1.7571669938285254e+01 3.4278625867581432e+01 0 0 -1 +2165 0 1 0.0000000000000000e+00 7.7208749566168237e+01 1.2724481247302185e+01 3.4651572766138732e+00 0 0 0 +2166 0 1 0.0000000000000000e+00 7.9455791907622697e+01 1.4904462858519237e+01 5.9583088169555039e+00 0 0 0 +2167 0 1 0.0000000000000000e+00 8.1648204382311960e+01 1.3024686409170311e+01 3.6724559752198371e+00 0 0 0 +2168 0 1 0.0000000000000000e+00 8.4160592275894757e+01 1.4832087386276331e+01 5.9879690335787918e+00 0 0 0 +2169 0 1 0.0000000000000000e+00 8.6309822338249106e+01 1.2824470781865493e+01 3.7702500837246022e+00 0 0 0 +2170 0 1 0.0000000000000000e+00 8.8377082490719317e+01 1.5372243448482747e+01 6.3418801484846137e+00 0 0 0 +2171 0 1 0.0000000000000000e+00 9.0465179029793518e+01 1.2714826236174664e+01 3.9945797711348829e+00 0 0 0 +2172 0 1 0.0000000000000000e+00 9.2343632148924371e+01 1.5494415965977540e+01 6.2535998953481560e+00 0 0 0 +2173 0 1 0.0000000000000000e+00 9.4350735290266911e+01 1.3080499716216318e+01 3.9429800056199364e+00 0 0 0 +2174 0 1 0.0000000000000000e+00 9.6702123896831509e+01 1.5063146300621533e+01 6.3709779542351468e+00 0 0 0 +2175 0 1 0.0000000000000000e+00 1.0104273264243878e+02 1.4524734100653236e+01 5.7785057402631876e+00 0 0 0 +2464 0 1 0.0000000000000000e+00 1.0307191089111508e+02 8.6062741105830565e+00 2.9788469500382131e+01 0 0 0 +2296 0 1 0.0000000000000000e+00 8.4621251884823906e+01 1.5377172766852528e+01 1.4972991203193223e+01 0 0 0 +2281 0 1 0.0000000000000000e+00 8.6853699617029434e+01 8.7171423301218542e+00 1.2281747805830177e+01 0 0 0 +2295 0 1 0.0000000000000000e+00 8.2078610411277964e+01 1.2813521366566222e+01 1.2865644902662188e+01 0 0 0 +2182 0 1 0.0000000000000000e+00 7.9653029419548005e+01 1.6347417893234732e+00 1.0637544503340012e+01 0 0 0 +2280 0 1 0.0000000000000000e+00 8.4404142508173891e+01 1.0860314221733113e+01 1.4852594725961877e+01 0 0 0 +2184 0 1 0.0000000000000000e+00 8.4135597977405823e+01 1.9255690101673266e+00 1.0594465712590633e+01 0 0 0 +2294 0 1 0.0000000000000000e+00 7.9766730889913788e+01 1.5126952031217247e+01 1.4442992503169835e+01 0 0 0 +2186 0 1 0.0000000000000000e+00 8.8378255663334613e+01 2.3612364725905555e+00 1.0194278487605700e+01 0 0 0 +2188 0 1 0.0000000000000000e+00 9.2363690158271652e+01 2.4978281285659585e+00 1.0518812522262852e+01 0 0 0 +2190 0 1 0.0000000000000000e+00 9.7230462226245606e+01 2.1106656321571968e+00 1.0660184158126595e+01 0 0 0 +2279 0 1 0.0000000000000000e+00 8.1620752799856916e+01 9.0993472979342691e+00 1.1996861140315517e+01 0 0 0 +2192 0 1 0.0000000000000000e+00 1.0137779148808178e+02 2.4932545052939390e+00 1.4706882977714761e+01 0 0 0 +2198 0 1 0.0000000000000000e+00 7.9745984237221620e+01 6.5175121961784876e+00 1.0446216564753341e+01 0 0 0 +2199 0 1 0.0000000000000000e+00 8.1817576504885523e+01 4.0721490886605229e+00 8.2909351423724615e+00 0 0 0 +2200 0 1 0.0000000000000000e+00 8.3819962354931789e+01 6.7975903049497539e+00 1.0066760982232186e+01 0 0 0 +2201 0 1 0.0000000000000000e+00 8.6013118997846718e+01 4.3730860852649842e+00 8.1899121888340449e+00 0 0 0 +2202 0 1 0.0000000000000000e+00 8.8681809807484086e+01 5.5934095677723450e+00 1.0283346197330907e+01 0 0 0 +2203 0 1 0.0000000000000000e+00 9.0505875839047206e+01 4.8837645560160770e+00 7.8990153940982344e+00 0 0 0 +2204 0 1 0.0000000000000000e+00 9.2816137816252947e+01 6.7562512647227164e+00 1.0587247322256601e+01 0 0 0 +2205 0 1 0.0000000000000000e+00 9.4937389412449278e+01 4.7625006896953748e+00 8.6518569853879761e+00 0 0 0 +2206 0 1 0.0000000000000000e+00 9.8855979787892039e+01 8.8384199845379889e+00 8.2303669750937978e+00 0 0 0 +2207 0 1 0.0000000000000000e+00 9.8425251886616081e+01 4.7457890118104320e+00 8.1763387255143574e+00 0 0 0 +2704 0 1 0.0000000000000000e+00 9.9529064198542301e+01 1.7517874654318653e+01 8.1162850866424083e+00 0 0 0 +2214 0 1 0.0000000000000000e+00 7.9535995846125886e+01 1.1170426627534136e+01 9.8980441665380337e+00 0 0 0 +2215 0 1 0.0000000000000000e+00 8.1476481416247282e+01 8.6463583784140337e+00 8.0999457786936340e+00 0 0 0 +2216 0 1 0.0000000000000000e+00 8.4613996231566560e+01 1.0810327444381093e+01 1.0781002217885341e+01 0 0 0 +2217 0 1 0.0000000000000000e+00 8.6657108321080557e+01 8.4835188580376339e+00 8.1205718420304098e+00 0 0 0 +2218 0 1 0.0000000000000000e+00 8.8735532385132018e+01 1.1488241733032831e+01 1.0396992870943244e+01 0 0 0 +2219 0 1 0.0000000000000000e+00 9.0041308267308168e+01 8.5074274699569941e+00 8.7616562582362505e+00 0 0 0 +2220 0 1 0.0000000000000000e+00 9.2651743549582093e+01 1.0700099903417822e+01 1.0643261224635321e+01 0 0 0 +2221 0 1 0.0000000000000000e+00 9.4928536341245902e+01 9.0653586452070183e+00 8.8063236219843581e+00 0 0 0 +2222 0 1 0.0000000000000000e+00 9.7406435466267240e+01 1.1402511908458850e+01 1.0604511774959109e+01 0 0 0 +2223 0 1 0.0000000000000000e+00 1.0146610080005820e+02 1.0973897951844474e+01 6.3916553118153852e+00 0 0 0 +2224 0 1 0.0000000000000000e+00 9.9046740308271495e+01 8.7187410485851125e+00 1.3363870221105666e+01 0 0 0 +2230 0 1 0.0000000000000000e+00 7.9407126911756649e+01 1.4649115099942055e+01 1.0355375320898458e+01 0 0 0 +2231 0 1 0.0000000000000000e+00 8.2004926081357823e+01 1.2565528661326102e+01 7.7687614360234303e+00 0 0 0 +2232 0 1 0.0000000000000000e+00 8.3564697385829163e+01 1.4410641298526661e+01 9.8683517004282848e+00 0 0 0 +2233 0 1 0.0000000000000000e+00 8.6577556696518471e+01 1.3211199112494496e+01 8.2579545127539831e+00 0 0 0 +2234 0 1 0.0000000000000000e+00 8.9070631445489354e+01 1.5599203874876302e+01 9.9487565647849916e+00 0 0 0 +2235 0 1 0.0000000000000000e+00 9.1235528863988463e+01 1.2835273358352643e+01 8.0216849758171271e+00 0 0 0 +2236 0 1 0.0000000000000000e+00 9.2718649635426090e+01 1.5013349408538708e+01 1.0889888145695997e+01 0 0 0 +2237 0 1 0.0000000000000000e+00 9.4840033682540408e+01 1.2923078872586444e+01 8.4559779439399119e+00 0 0 0 +2238 0 1 0.0000000000000000e+00 9.7058355472644564e+01 1.5350231702826992e+01 1.0143557294677660e+01 0 0 0 +2176 0 1 0.0000000000000000e+00 1.0299216257967497e+02 1.6973617630445418e+01 7.4809818483697388e+00 0 0 0 +3928 0 1 0.0000000000000000e+00 1.0167469498952275e+02 3.2879566650165806e+01 2.7875861355839348e+01 0 0 0 +2246 0 1 0.0000000000000000e+00 8.0245083347072452e+01 2.3331699398623642e+00 1.4879386552631242e+01 0 0 0 +2248 0 1 0.0000000000000000e+00 8.3896645803364734e+01 2.4189743068915170e+00 1.4910679844911142e+01 0 0 0 +2536 0 1 0.0000000000000000e+00 8.4152898559183100e+01 1.0637548101293691e+01 3.1946956746749585e+01 0 0 0 +2250 0 1 0.0000000000000000e+00 8.8483754036823598e+01 2.2372423603658951e+00 1.4798692589725361e+01 0 0 0 +2252 0 1 0.0000000000000000e+00 9.2690526321425153e+01 1.9422466589599232e+00 1.4666742355806649e+01 0 0 0 +2278 0 1 0.0000000000000000e+00 7.9611231383257376e+01 1.1152734260985433e+01 1.4521616952407150e+01 0 0 0 +2254 0 1 0.0000000000000000e+00 9.6636015040435709e+01 1.8885033543439103e+00 1.4715262468779015e+01 0 0 0 +2287 0 1 0.0000000000000000e+00 1.0198154093530806e+02 1.4969567364400639e+01 1.4543438071801043e+01 0 0 0 +3563 0 1 0.0000000000000000e+00 1.0133115090164216e+02 3.2530654056024794e+01 2.0166562381634381e+00 0 0 1 +2262 0 1 0.0000000000000000e+00 7.9954863979072741e+01 6.4175166723894765e+00 1.4281621724505840e+01 0 0 0 +2263 0 1 0.0000000000000000e+00 8.1824253016978631e+01 4.2708007801930288e+00 1.2089602387860191e+01 0 0 0 +2264 0 1 0.0000000000000000e+00 8.3746247941815781e+01 6.6431006440410769e+00 1.3922388498119600e+01 0 0 0 +2265 0 1 0.0000000000000000e+00 8.6336646172581851e+01 4.2870541802234250e+00 1.2333450011269132e+01 0 0 0 +2266 0 1 0.0000000000000000e+00 8.8446805096150726e+01 6.0902987691139847e+00 1.4656568378804529e+01 0 0 0 +2267 0 1 0.0000000000000000e+00 9.0643182811464740e+01 4.1008767842399880e+00 1.2373321102896421e+01 0 0 0 +2268 0 1 0.0000000000000000e+00 9.2389194077051130e+01 6.1210793056506514e+00 1.4662893906432062e+01 0 0 0 +2269 0 1 0.0000000000000000e+00 9.4938941387540055e+01 4.4921021009475375e+00 1.2570224059851958e+01 0 0 0 +2270 0 1 0.0000000000000000e+00 9.6791665715351186e+01 6.6582435118452539e+00 1.4833339298925820e+01 0 0 0 +2271 0 1 0.0000000000000000e+00 9.8832773546579119e+01 4.6907898327672584e+00 1.2904557239066717e+01 0 0 0 +3486 0 1 0.0000000000000000e+00 9.9601793728440100e+01 8.6300321784244005e+00 4.1307609694301588e+00 0 0 0 +2107 0 1 0.0000000000000000e+00 9.0214055545034313e+01 1.3069233621556664e+01 3.4179235083627226e+01 0 0 -1 +2189 0 1 0.0000000000000000e+00 9.7229199028022975e+01 1.8556430389501584e+00 6.7282980658929903e+00 0 0 0 +2695 0 1 0.0000000000000000e+00 8.1944589319437441e+01 1.7036415325344109e+01 7.8726624899910371e+00 0 0 0 +2365 0 1 0.0000000000000000e+00 9.4856703233131171e+01 1.2995841116453033e+01 1.7272249809035959e+01 0 0 0 +2569 0 1 0.0000000000000000e+00 8.5856483374167695e+01 1.7514036943763713e+01 3.4173833895365540e+01 0 0 -1 +2315 0 1 0.0000000000000000e+00 9.0974886995113138e+01 2.0803307257339640e-01 1.7380837491301843e+01 0 0 0 +2363 0 1 0.0000000000000000e+00 9.1011920380123158e+01 1.3141638702329047e+01 1.6911310169041037e+01 0 0 0 +2111 0 1 0.0000000000000000e+00 1.0132164580700663e+02 1.5400230250526267e+01 3.1953376408994433e+01 0 0 -1 +2559 0 1 0.0000000000000000e+00 9.7326216584193588e+01 1.0336791032999120e+01 3.1693927990819120e+01 0 0 0 +2345 0 1 0.0000000000000000e+00 8.6085715624862701e+01 8.4154979191378700e+00 1.6973300066876323e+01 0 0 0 +2247 0 1 0.0000000000000000e+00 8.1809148356939346e+01 1.3350863991687265e-01 1.2577006704880201e+01 0 0 0 +2333 0 1 0.0000000000000000e+00 9.4624634599695682e+01 4.2085705139757588e+00 1.6815162696026391e+01 0 0 0 +2317 0 1 0.0000000000000000e+00 9.4813489442093683e+01 3.4552334761629346e+01 1.7645889109941088e+01 0 -1 0 +2351 0 1 0.0000000000000000e+00 9.7017742871787732e+01 1.1093116471812751e+01 1.5358508664434515e+01 0 0 0 +2093 0 1 0.0000000000000000e+00 9.2122194243186527e+01 1.0565716246751014e+01 3.2086076270286433e+01 0 0 -1 +2077 0 1 0.0000000000000000e+00 9.4754331076682647e+01 4.5750368711681650e+00 3.3490869666439224e+01 0 0 -1 +2091 0 1 0.0000000000000000e+00 8.9763389138083184e+01 8.4294595059460828e+00 3.4264917908937576e+01 0 0 -1 +2701 0 1 0.0000000000000000e+00 9.5126955820188229e+01 1.7864202411823353e+01 8.4411719015637097e+00 0 0 0 +2125 0 1 0.0000000000000000e+00 9.4370660064462683e+01 3.5429397248491967e-01 4.5559714531889002e+00 0 0 0 +2327 0 1 0.0000000000000000e+00 8.2061472200963507e+01 4.8991827909126551e+00 1.7056728431373699e+01 0 0 0 +2253 0 1 0.0000000000000000e+00 9.4556549469107637e+01 1.0306971362658869e-01 1.2576840220036219e+01 0 0 0 +2109 0 1 0.0000000000000000e+00 9.4307580101958592e+01 1.2635903941482725e+01 3.4269376429045955e+01 0 0 -1 +2359 0 1 0.0000000000000000e+00 8.1508479417963983e+01 1.3469559528962856e+01 1.6655114314861784e+01 0 0 0 +2703 0 1 0.0000000000000000e+00 9.7238884509712648e+01 2.0669534725226377e+01 1.0402605348542069e+01 0 0 0 +2049 0 1 0.0000000000000000e+00 1.0119912261262989e+02 3.2802317994748940e+01 3.1898741301414930e+01 -1 -1 -1 +2069 0 1 0.0000000000000000e+00 7.7977601165198010e+01 4.5825399978561849e+00 3.4561825432152766e+01 0 0 -1 +2063 0 1 0.0000000000000000e+00 9.9229399917655144e+01 3.2497293360472973e-01 3.4172176525399180e+01 0 0 -1 +2437 0 1 0.0000000000000000e+00 7.7767019837875921e+01 2.6328663745116065e-01 2.5258347607494944e+01 0 0 0 +2507 0 1 0.0000000000000000e+00 9.0181677015444137e+01 6.0804728116670079e-02 2.9649098486917648e+01 0 0 0 +3449 0 1 0.0000000000000000e+00 1.0334190335599065e+02 3.0375521113323376e+01 8.7692443244934832e+00 0 -1 0 +2310 0 1 0.0000000000000000e+00 8.0065150530251813e+01 2.5291538022769413e+00 1.8960990321145861e+01 0 0 0 +2955 0 1 0.0000000000000000e+00 8.9975506182207866e+01 1.7144907009988373e+01 2.5614372438367745e+01 0 0 0 +2312 0 1 0.0000000000000000e+00 8.4225279994480687e+01 2.2371000992115508e+00 1.9054933877742112e+01 0 0 0 +2375 0 1 0.0000000000000000e+00 8.2048939207232351e+01 3.4532533068487226e+01 2.0856611750823671e+01 0 -1 0 +2314 0 1 0.0000000000000000e+00 8.8352307861880604e+01 2.1621266752062640e+00 1.8860132512189562e+01 0 0 0 +2316 0 1 0.0000000000000000e+00 9.2805581489805803e+01 2.8170745456146276e+00 1.9399346098060661e+01 0 0 0 +2075 0 1 0.0000000000000000e+00 9.0530948915281982e+01 4.4781000741488945e+00 3.3805547949840665e+01 0 0 -1 +2318 0 1 0.0000000000000000e+00 9.8648918307011897e+01 4.5588281060819567e+00 1.6678008467200367e+01 0 0 0 +2439 0 1 0.0000000000000000e+00 8.1848771382313643e+01 2.4888581222337960e-01 2.5302950084618281e+01 0 0 0 +2366 0 1 0.0000000000000000e+00 9.7295142836426621e+01 1.5431699249537758e+01 1.8672587907518839e+01 0 0 0 +2309 0 1 0.0000000000000000e+00 7.7547390279117295e+01 3.4427298187749571e+01 1.5961474774869474e+01 0 -1 0 +2073 0 1 0.0000000000000000e+00 8.6763096066514663e+01 5.0339511998445454e+00 3.4506450934705768e+01 0 0 -1 +2509 0 1 0.0000000000000000e+00 9.3869399336211657e+01 3.3733209979955554e+01 2.9324975692331154e+01 0 -1 0 +2326 0 1 0.0000000000000000e+00 8.0034004038932011e+01 6.5427215809473731e+00 1.9021519652619549e+01 0 0 0 +2328 0 1 0.0000000000000000e+00 8.4703298513682171e+01 6.1647640345045271e+00 1.9030701543882476e+01 0 0 0 +2503 0 1 0.0000000000000000e+00 8.1605360631213955e+01 4.6696596103608344e-02 2.9758516915449842e+01 0 0 0 +2330 0 1 0.0000000000000000e+00 8.8591965177893542e+01 6.4869330209430229e+00 1.9221190795549781e+01 0 0 0 +2511 0 1 0.0000000000000000e+00 9.7001867881872002e+01 3.2768402263996492e+01 2.7755171699129196e+01 0 -1 0 +2332 0 1 0.0000000000000000e+00 9.2168328094839509e+01 6.2406422723971673e+00 1.9014789943061700e+01 0 0 0 +2095 0 1 0.0000000000000000e+00 9.9843636369732266e+01 8.3032297766831604e+00 2.9709247919477912e-02 0 0 0 +2334 0 1 0.0000000000000000e+00 9.6238859009048738e+01 6.7357673594895555e+00 1.9265954864895598e+01 0 0 0 +2992 0 1 0.0000000000000000e+00 9.9440373735183513e+01 3.0126219385269852e+01 2.5892734974430237e+01 0 0 0 +2071 0 1 0.0000000000000000e+00 8.1566623712663699e+01 4.6667097744362316e+00 3.3885858183628443e+01 0 0 -1 +2959 0 1 0.0000000000000000e+00 1.0140865837804576e+02 1.9769525771071820e+01 2.3799885905009031e+01 0 0 0 +2373 0 1 0.0000000000000000e+00 7.7560511865225507e+01 5.6334572894796986e-01 2.1066257962585777e+01 0 0 0 +2342 0 1 0.0000000000000000e+00 7.9755125351319421e+01 1.1101512206570860e+01 1.8719843799179333e+01 0 0 0 +2079 0 1 0.0000000000000000e+00 9.6715409949645576e+01 2.2935043052874273e+00 2.0214527513181735e+00 0 0 0 +2344 0 1 0.0000000000000000e+00 8.3787967479299155e+01 1.1379361060080210e+01 1.9019597150736033e+01 0 0 0 +2347 0 1 0.0000000000000000e+00 8.9723078664434567e+01 8.7731370827950776e+00 1.6875427221944989e+01 0 0 0 +2346 0 1 0.0000000000000000e+00 8.8623060405391712e+01 1.1199372932007275e+01 1.9592459509968297e+01 0 0 0 +2889 0 1 0.0000000000000000e+00 8.5563363237026692e+01 1.7131285672136144e+01 2.0977030882472697e+01 0 0 0 +2348 0 1 0.0000000000000000e+00 9.2551663043882414e+01 1.0439833234286336e+01 1.8968970695806021e+01 0 0 0 +2538 0 1 0.0000000000000000e+00 8.8638340277386547e+01 1.1322639720615724e+01 3.1658615566976696e+01 0 0 0 +2350 0 1 0.0000000000000000e+00 9.6666755427310150e+01 1.0895030138335436e+01 1.9773918035878033e+01 0 0 0 +2352 0 1 0.0000000000000000e+00 9.9174759691194467e+01 8.5025537793847068e+00 2.0941344823486837e+01 0 0 0 +2381 0 1 0.0000000000000000e+00 9.5255041613511821e+01 3.4472047430011230e+01 2.1186606978451874e+01 0 -1 0 +3778 0 1 0.0000000000000000e+00 1.0370582148010890e+02 8.1139180554442341e+00 2.7889424049011124e-01 0 0 0 +2087 0 1 0.0000000000000000e+00 8.1502590297131405e+01 9.2310906966386437e+00 3.3932426553069632e+01 0 0 -1 +2358 0 1 0.0000000000000000e+00 7.9719541017751979e+01 1.5176447692191786e+01 1.9030223193918577e+01 0 0 0 +2537 0 1 0.0000000000000000e+00 8.6617912279710907e+01 9.0528599260461444e+00 2.9725562636322838e+01 0 0 0 +2360 0 1 0.0000000000000000e+00 8.3406887278618768e+01 1.4287248571668361e+01 1.9735645437839739e+01 0 0 0 +2543 0 1 0.0000000000000000e+00 9.9442197919683863e+01 8.3225816832747057e+00 2.9774761444733159e+01 0 0 0 +2362 0 1 0.0000000000000000e+00 8.9111832212340673e+01 1.4625945172441966e+01 1.9275629229013845e+01 0 0 0 +2335 0 1 0.0000000000000000e+00 1.0116150250636795e+02 2.8735893419023966e+00 1.9178014105941600e+01 0 0 0 +2364 0 1 0.0000000000000000e+00 9.2898703238728601e+01 1.5652761194761625e+01 1.9245581479204098e+01 0 0 0 +2542 0 1 0.0000000000000000e+00 9.5165949151747000e+01 8.6801496179239130e+00 3.4211442740121257e+01 0 0 0 +3056 0 1 0.0000000000000000e+00 1.0345216491667856e+02 3.0600380850764772e+01 3.3966584068458907e+01 0 0 0 +3363 0 1 0.0000000000000000e+00 1.0149923194406655e+02 2.2262987535861645e+00 2.4539041118933348e+01 1 0 0 +2497 0 1 0.0000000000000000e+00 6.9724777848219588e+01 3.3651182717254251e+01 3.0230793620793477e+01 0 -1 0 +2785 0 1 0.0000000000000000e+00 1.0143721838166674e+02 2.7719612375498457e+01 1.0795263527273489e+01 -1 0 0 +3465 0 1 0.0000000000000000e+00 1.0365928895396441e+02 3.0513209421082149e+01 4.0479514523446420e+00 0 -1 1 +3008 0 1 0.0000000000000000e+00 1.0187828378877172e+02 2.8566445338192551e+01 2.7929094166835316e+01 0 0 0 +2961 0 1 0.0000000000000000e+00 1.0210865241837286e+02 2.4113108273545063e+01 2.7677416085809352e+01 -1 0 0 +2577 0 1 0.0000000000000000e+00 1.0301000627631187e+02 2.1417065689441632e+01 3.4178769078090745e+01 -1 0 -1 +2849 0 1 0.0000000000000000e+00 6.9221633682603283e+01 2.6297572403988379e+01 1.6501343442718827e+01 0 0 0 +2641 0 1 0.0000000000000000e+00 1.0313813955976447e+02 2.1877335270850431e+01 3.8150595661992068e+00 -1 0 0 +3384 0 1 0.0000000000000000e+00 1.0314917367905149e+02 8.3042052561334430e+00 2.5501367574071317e+01 0 1 1 +2062 0 1 0.0000000000000000e+00 1.0372226989351300e+02 4.6277307725258252e+00 4.6384714579563902e+00 0 0 0 +3782 0 1 0.0000000000000000e+00 1.0345509791616415e+02 1.2674469909271153e+01 9.3150521537307842e+00 1 0 0 +2208 0 1 0.0000000000000000e+00 1.0308634736799777e+02 1.2794485962048794e+01 3.7242833344509840e+00 0 0 0 +3025 0 1 0.0000000000000000e+00 1.0358694243548639e+02 1.7690456039942170e+01 3.0096582946647164e+01 -1 0 0 +2145 0 1 0.0000000000000000e+00 1.0308181735054838e+02 8.3925892636784614e+00 4.1948724575198213e+00 -1 0 0 +3104 0 1 0.0000000000000000e+00 1.0315131012061934e+02 4.7260977501488828e+00 1.2309509732869182e+01 1 0 0 +1857 0 1 0.0000000000000000e+00 6.9432289953500344e+01 1.7480557949113422e+01 2.0653811480634833e+01 -1 0 0 +2944 0 1 0.0000000000000000e+00 1.0280263469864276e+02 2.3272205981450350e-01 2.1756812194151372e+01 0 1 0 +3926 0 1 0.0000000000000000e+00 1.0374139563722332e+02 4.2868565333473097e+00 1.7581527831508954e+01 0 1 0 +3602 0 1 0.0000000000000000e+00 1.0362649848434489e+02 2.1414868094559470e+01 2.5520448052475388e+01 0 1 -1 +2512 0 1 0.0000000000000000e+00 1.0376268796117770e+02 4.5685763825102121e+00 2.9727809790023851e+01 0 0 0 +3481 0 1 0.0000000000000000e+00 1.0364378205177552e+02 1.2398810573265017e+01 1.6889592840931101e+01 0 0 0 +2304 0 1 0.0000000000000000e+00 1.0377681932826920e+02 1.7939844758694068e+01 1.6320243920628258e+01 0 0 0 +2816 0 1 0.0000000000000000e+00 1.0355196012393908e+02 3.4498088237526332e+01 1.2626936467742041e+01 0 0 0 +2400 0 1 0.0000000000000000e+00 1.0330105182070879e+02 4.3082730426478051e+00 2.5867755204479472e+01 0 0 0 +2273 0 1 0.0000000000000000e+00 6.9298255805178627e+01 8.2916476020845025e+00 1.2847711218061129e+01 0 0 0 +2737 0 1 0.0000000000000000e+00 6.9220490054429774e+01 3.0244839268047976e+01 8.4397075266447441e+00 0 0 0 +2817 0 1 0.0000000000000000e+00 6.9259819370146360e+01 1.7640118305910015e+01 1.6677074104625941e+01 0 0 0 +1809 0 1 0.0000000000000000e+00 6.9305706932660470e+01 2.1469414338814349e+01 1.6257308231450903e+01 -1 0 0 +1217 0 1 0.0000000000000000e+00 6.9314828973038829e+01 4.7655916130200460e-01 1.2651648158269275e+01 -1 0 0 +2705 0 1 0.0000000000000000e+00 6.9311889892973539e+01 2.1219714050820890e+01 7.7743259238508813e+00 0 0 0 +3009 0 1 0.0000000000000000e+00 6.9958139960626539e+01 1.7562995677704421e+01 2.9614299858217830e+01 0 0 0 +1921 0 1 0.0000000000000000e+00 6.9266696818865853e+01 1.7343184400914900e+01 2.5118006518138433e+01 -1 0 0 +2369 0 1 0.0000000000000000e+00 6.9456731228871433e+01 4.3641148319834441e-02 2.1193872857166262e+01 0 0 0 +2065 0 1 0.0000000000000000e+00 6.9351109386099495e+01 4.3674138943778846e+00 3.3881486065256098e+01 0 0 -1 +3667 0 1 0.0000000000000000e+00 1.2990133170673636e+02 2.9108970272145800e+01 6.6789296626232675e+00 0 0 0 +4055 0 1 0.0000000000000000e+00 1.1552175278476150e+02 2.2563553633057072e+01 2.1132311432351036e+00 0 0 1 +3508 0 1 0.0000000000000000e+00 1.1098478518066074e+02 1.2732967446086230e+01 2.5245738489529234e+01 1 0 0 +3840 0 1 0.0000000000000000e+00 1.1461162548682256e+02 3.8713142957376663e+00 1.8379124026415884e+01 0 1 0 +3213 0 1 0.0000000000000000e+00 1.2023862198057016e+02 1.1480595795645517e+01 2.6087855645736294e+01 0 0 0 +3900 0 1 0.0000000000000000e+00 1.1424909840638868e+02 2.8780894098000552e+01 3.3001876886903887e+01 1 0 -1 +3473 0 1 0.0000000000000000e+00 1.1293315553623157e+02 3.0896306527033332e+01 2.5711287396162717e+01 0 -1 0 +3315 0 1 0.0000000000000000e+00 1.1853713508210868e+02 2.4827421936826632e+01 3.9648420163772231e+00 0 0 1 +3118 0 1 0.0000000000000000e+00 1.0749460270802665e+02 1.6771288270232116e+01 2.7951932161242371e-01 0 0 1 +3763 0 1 0.0000000000000000e+00 1.2528036182626678e+02 1.2761341905553618e+01 1.9961813324490450e+01 0 0 0 +3910 0 1 0.0000000000000000e+00 1.1844440097587758e+02 2.6229468670611933e+01 1.9138055784201107e+01 0 0 0 +3162 0 1 0.0000000000000000e+00 1.3428924621395518e+02 2.6941548691282758e+01 2.6945182182733451e+01 0 -1 0 +4068 0 1 0.0000000000000000e+00 1.0821424947132940e+02 3.0665331385210585e+01 2.1303440004000851e+01 1 0 0 +3863 0 1 0.0000000000000000e+00 1.3207256574493599e+02 1.0908469626462276e+00 2.9042761674577246e+01 -1 0 0 +3851 0 1 0.0000000000000000e+00 1.2864345921874636e+02 2.5865644074954606e+01 2.6452079286955733e+01 -1 0 0 +3259 0 1 0.0000000000000000e+00 1.2341685288169525e+02 2.7108063823147873e+01 2.7657800087227741e+01 0 -1 -1 +3418 0 1 0.0000000000000000e+00 1.2308345335467546e+02 2.3732481438284687e+01 2.2368318821124987e+01 0 -1 0 +3325 0 1 0.0000000000000000e+00 1.2633229159025387e+02 1.7199146116117078e+01 2.5433141407701793e+01 1 -1 0 +3688 0 1 0.0000000000000000e+00 1.0960605218778315e+02 2.9691001562012225e+01 2.7639081971695234e+01 0 0 -1 +3689 0 1 0.0000000000000000e+00 1.0492585389146114e+02 1.6123368308166832e+01 1.9170608592179882e+01 1 1 1 +3206 0 1 0.0000000000000000e+00 1.1192813978317504e+02 5.3211221301498028e+00 1.8326041711846560e+01 0 0 0 +3687 0 1 0.0000000000000000e+00 1.0788776810307785e+02 2.5501901626978082e+01 3.4488155655185253e+01 0 0 -1 +3454 0 1 0.0000000000000000e+00 1.1369396367422054e+02 1.5636468117260478e+01 2.5288913113432688e+01 1 -1 0 +3443 0 1 0.0000000000000000e+00 1.2954124443403128e+02 3.0972456027459053e+01 2.5591854925302744e+01 0 -1 0 +3406 0 1 0.0000000000000000e+00 1.2213033993149182e+02 3.1544209318926210e+01 1.8974733198058516e+01 0 -1 0 +3580 0 1 0.0000000000000000e+00 1.2533182413584935e+02 1.7351161280015642e+01 3.2364645398899476e+01 0 0 -1 +3846 0 1 0.0000000000000000e+00 1.2247077738198620e+02 2.0274148990266465e+01 2.0563501044514179e+01 0 0 0 +4081 0 1 0.0000000000000000e+00 1.1772162791492659e+02 2.3951136334096415e+01 3.4443105726933730e+01 0 0 0 +3595 0 1 0.0000000000000000e+00 1.2157836076609844e+02 1.4974749436852637e+01 2.0347760925345192e+01 0 0 0 +3988 0 1 0.0000000000000000e+00 1.2772043129539402e+02 3.1182524257578503e+01 3.0395256348153080e+01 -1 -1 0 +3181 0 1 0.0000000000000000e+00 1.2951893313456071e+02 2.0535643853709296e+01 2.0796111427342733e+01 0 0 0 +3307 0 1 0.0000000000000000e+00 1.0784834032319318e+02 4.8867078714729475e+00 2.6548549245759478e+01 1 0 0 +3871 0 1 0.0000000000000000e+00 1.0575508102148926e+02 1.9280439036660560e+01 2.1542449697186079e+00 0 0 1 +3644 0 1 0.0000000000000000e+00 1.2640968910172082e+02 2.0606601949886421e+01 3.4511325533368186e+01 0 -1 0 +3447 0 1 0.0000000000000000e+00 1.2383100234541871e+02 2.7169135580029298e+01 2.3767628461219257e+01 -1 -1 0 +3409 0 1 0.0000000000000000e+00 1.2060277846993549e+02 2.7541054470453787e+01 3.3009885426324360e+01 0 -1 -1 +3675 0 1 0.0000000000000000e+00 1.2246846737038194e+02 2.0364500782121560e+01 3.7460701937882274e-01 0 0 1 +3621 0 1 0.0000000000000000e+00 1.3515148134835147e+02 2.6070517624489387e+01 1.9869822744979480e+01 0 1 0 +4095 0 1 0.0000000000000000e+00 1.2497366461996256e+02 2.0457122088446813e+01 2.5022868923317464e+01 0 0 0 +3111 0 1 0.0000000000000000e+00 1.2633546990529548e+02 1.0634428944418829e+01 2.4186520463525490e+01 -1 -1 0 +3853 0 1 0.0000000000000000e+00 1.2804430767615082e+02 2.0790856448766810e+01 2.4638214419175025e+01 0 0 0 +3282 0 1 0.0000000000000000e+00 1.1747310584903950e+02 3.0333120406198258e+01 3.0487064972985770e+01 0 -1 0 +3941 0 1 0.0000000000000000e+00 1.0764316339444531e+02 2.1424458209022490e+01 2.9710533589549314e+01 0 1 0 +2161 0 1 0.0000000000000000e+00 1.0576547732675290e+02 1.0821573833504258e+01 2.4779036335011964e+00 -1 0 0 +4014 0 1 0.0000000000000000e+00 1.0621520721371597e+02 2.4470358695176607e+01 2.8039022317529181e+01 1 0 0 +3652 0 1 0.0000000000000000e+00 1.1488893148371284e+02 2.6340280474476575e+01 4.9068131533140824e-01 0 0 0 +3990 0 1 0.0000000000000000e+00 1.0600937197990481e+02 3.3307272539817170e+01 1.9065537326551315e+01 0 0 0 +3582 0 1 0.0000000000000000e+00 1.1987714024476617e+02 2.5320913781218586e+01 2.3098445492968057e+01 0 0 -1 +3330 0 1 0.0000000000000000e+00 1.3114074748984098e+02 2.6723133795037402e+01 2.4652106937596582e+01 0 -1 -1 +3246 0 1 0.0000000000000000e+00 1.2568541404998126e+02 2.4286661792935515e+01 2.5262627678031770e+01 0 0 0 +3123 0 1 0.0000000000000000e+00 1.3431017056833105e+02 3.3503798379724074e+01 3.2254544595393099e+01 -1 0 -1 +3086 0 1 0.0000000000000000e+00 1.1147217950017644e+02 2.5234420808145657e+01 9.7107155875100604e-02 1 -1 0 +4006 0 1 0.0000000000000000e+00 1.3313701369349289e+02 2.1134458487973681e+01 2.8562542897627878e+01 -1 0 0 +3175 0 1 0.0000000000000000e+00 1.0542670318033950e+02 6.5833611156232053e+00 3.1924600864786626e+01 0 0 -1 +3529 0 1 0.0000000000000000e+00 1.0749348336715857e+02 4.1554499240188669e-01 2.5593682285710212e+01 1 0 0 +3089 0 1 0.0000000000000000e+00 1.1223152413232282e+02 4.3391762717669895e+00 1.2602792441252708e+01 0 0 -1 +3944 0 1 0.0000000000000000e+00 1.2135687458819569e+02 1.7789210192571847e+01 1.8016819980783644e+01 0 1 0 +4096 0 1 0.0000000000000000e+00 1.1563630909152920e+02 3.2178678884840558e+01 2.2479290261530355e+01 0 0 0 +3700 0 1 0.0000000000000000e+00 1.3159672615752683e+02 3.1757150064876718e+01 2.9725494523165739e+01 0 0 0 +3446 0 1 0.0000000000000000e+00 1.2711142203167213e+02 3.0074003816042588e+01 4.5805355737463964e+00 0 -1 1 +3410 0 1 0.0000000000000000e+00 1.3429482659115845e+02 2.6579463320841661e+01 2.8652123236871176e+00 0 0 1 +4010 0 1 0.0000000000000000e+00 1.1182354548395371e+02 2.2205568942885325e+01 2.5758018107636314e+01 0 0 0 +3440 0 1 0.0000000000000000e+00 1.2596609113555623e+02 1.7667287989225137e+01 2.9229639158883131e+01 0 0 0 +2897 0 1 0.0000000000000000e+00 1.0621768570032870e+02 2.4481632284845546e+01 1.9867554990748623e+01 -1 0 0 +3138 0 1 0.0000000000000000e+00 1.0873512848442827e+02 2.6142606898409269e+01 3.0840569782459191e+01 1 0 -1 +3261 0 1 0.0000000000000000e+00 1.0606024941958964e+02 2.3774481319773045e+01 3.1868431830304125e+01 0 0 -1 +3654 0 1 0.0000000000000000e+00 1.3080383539402277e+02 2.1908800237794157e+01 3.0821760881731677e+01 0 0 0 +3882 0 1 0.0000000000000000e+00 1.3711447590275822e+02 2.2490930774936150e+01 3.4425006532298411e+01 -1 0 0 +3932 0 1 0.0000000000000000e+00 1.0743690237215158e+02 3.0457636169034814e+01 1.7506362413110935e+01 0 0 0 +3193 0 1 0.0000000000000000e+00 1.0389873255929106e+02 4.5229885088267903e+00 8.5163994085284234e+00 1 0 0 +2241 0 1 0.0000000000000000e+00 1.0638232718919339e+02 3.2578810813844825e+01 1.0246389869866499e+01 -1 -1 0 +3502 0 1 0.0000000000000000e+00 1.1728057062227802e+02 2.4585246581035733e+01 2.5608666220597144e+01 0 -1 0 +3859 0 1 0.0000000000000000e+00 1.1930378992867819e+02 3.0443052732569814e+01 2.7075851962476094e+01 0 0 1 +3717 0 1 0.0000000000000000e+00 1.2800685232331628e+02 2.1772081697025282e+01 2.8082842215962465e+01 1 0 0 +3816 0 1 0.0000000000000000e+00 1.2706333501356089e+02 2.4060760570380388e+01 3.1408358200513913e+01 0 0 0 +3705 0 1 0.0000000000000000e+00 1.2354237745478970e+02 3.3169983799104834e+01 2.1834501454038328e+01 0 0 0 +3424 0 1 0.0000000000000000e+00 1.1039308689297329e+02 1.9073738876791641e+01 1.9452846091571889e+01 1 -1 0 +4013 0 1 0.0000000000000000e+00 1.0751083696555075e+02 2.1017504996055735e+01 8.0957907996284657e+00 1 0 0 +3721 0 1 0.0000000000000000e+00 1.1343284422050490e+02 1.9343499193556063e+01 2.4632626739168302e+01 1 1 0 +3157 0 1 0.0000000000000000e+00 1.3168197642791938e+02 2.8477303343714162e+01 3.1215439640969993e+01 -1 0 -1 +4069 0 1 0.0000000000000000e+00 1.2596465610799919e+02 2.2037623707749493e+01 2.2070660623597302e+01 0 0 -1 +3140 0 1 0.0000000000000000e+00 1.3725916728985683e+02 1.8794062158479861e+01 2.8026897705126963e+01 0 -1 0 +4094 0 1 0.0000000000000000e+00 1.3284247582808570e+02 1.9202031543200413e+01 3.2137929070125303e+01 0 0 0 +3371 0 1 0.0000000000000000e+00 1.0713360883605775e+02 2.9873521720941834e+01 2.5001649827129100e+01 1 0 -1 +4032 0 1 0.0000000000000000e+00 1.2128304330689444e+02 2.8619713443384146e+01 1.8010054316543936e+01 0 0 0 +4035 0 1 0.0000000000000000e+00 1.2553798359682041e+02 2.6905782238596899e+01 1.6694895072929050e+01 1 0 0 +4033 0 1 0.0000000000000000e+00 1.3745540808019362e+02 2.2339906026305261e+01 2.8695304802445921e+01 0 0 0 +3342 0 1 0.0000000000000000e+00 1.2578024869875100e+02 1.4765462022680589e+01 8.4017843251930568e-02 0 0 1 +3632 0 1 0.0000000000000000e+00 1.2632905525893858e+02 2.5392265884025722e+01 2.2112288517884448e+01 0 1 0 +3684 0 1 0.0000000000000000e+00 1.0785919380117289e+02 3.0771205925770904e+01 4.8178439157967040e-01 0 0 0 +3226 0 1 0.0000000000000000e+00 1.0575490958853034e+02 2.3383565481195063e+01 1.5592771465489748e+00 1 0 0 +4084 0 1 0.0000000000000000e+00 1.2158804234124507e+02 2.9254397761212186e+01 3.0071351111836517e+01 0 0 0 +3872 0 1 0.0000000000000000e+00 1.0983090627716697e+02 3.2411565905238092e+01 2.4645251908726816e+01 0 0 0 +3878 0 1 0.0000000000000000e+00 1.3375844571100293e+02 3.2004927670430867e+01 1.0926984945088165e+00 -1 -1 1 +3254 0 1 0.0000000000000000e+00 1.0808588594404756e+02 2.1589641822300091e+01 2.1225766338019287e+01 0 -1 0 +3530 0 1 0.0000000000000000e+00 1.1201152689354501e+02 2.6054014593906891e+00 1.6280833249754043e+01 0 0 0 +3462 0 1 0.0000000000000000e+00 1.2268127975893938e+02 3.4202411111165624e+01 2.8263796746918469e+01 -1 -1 0 +3225 0 1 0.0000000000000000e+00 1.0964234827767702e+02 1.1153345758250747e+01 2.2564775650696539e+01 0 0 0 +3609 0 1 0.0000000000000000e+00 1.1248724701902705e+02 6.6571956157052123e-02 2.1559477580839385e+01 0 1 -1 +3976 0 1 0.0000000000000000e+00 1.0403784188255364e+02 2.6229541982736222e+01 3.0158931641522781e+01 1 0 0 +3263 0 1 0.0000000000000000e+00 1.2410368066499217e+02 3.1070384211208594e+01 2.8466574828724568e+01 0 -1 0 +3746 0 1 0.0000000000000000e+00 1.2121794740189682e+02 2.1466483773173728e+01 2.9659852219781005e+01 0 0 0 +3488 0 1 0.0000000000000000e+00 1.2988675147573787e+02 1.9050194298651483e+01 2.6240340678935411e+01 0 0 -1 +4021 0 1 0.0000000000000000e+00 1.1440331085145931e+02 1.8826808848402734e+01 2.7923374238349925e+01 0 0 0 +2625 0 1 0.0000000000000000e+00 1.0519924386365361e+02 1.4011293415229355e+01 6.0832707247682105e+00 -1 0 0 +3953 0 1 0.0000000000000000e+00 1.2377196308864018e+02 1.3742405239855251e+00 1.8977531876832749e+01 0 1 0 +3167 0 1 0.0000000000000000e+00 1.3625385776764074e+02 2.1929658793384117e+01 2.1876936903891732e+01 -1 -1 -1 +3428 0 1 0.0000000000000000e+00 1.3395320012288113e+02 2.5880628527057169e+01 3.3821120040848093e+01 0 -1 0 +3311 0 1 0.0000000000000000e+00 1.2613871053679659e+02 2.1039285095322374e+01 1.8641843236036209e+01 1 -1 -1 +3156 0 1 0.0000000000000000e+00 1.1569637857406802e+02 2.1924908364463700e+01 2.7095629128165122e+01 0 0 -1 +3239 0 1 0.0000000000000000e+00 1.0448078012965398e+02 1.5002901134386464e+01 1.5616966734424720e+00 1 -1 0 +3135 0 1 0.0000000000000000e+00 1.0631642849733977e+02 1.9402192989057959e+01 3.2434005892965260e+01 1 0 -1 +3396 0 1 0.0000000000000000e+00 1.1653587948715636e+02 2.4908745391449713e+01 3.0714758148389663e+01 0 -1 0 +3349 0 1 0.0000000000000000e+00 1.1914741485106033e+02 2.8778213122066333e+01 1.3454315888425525e+01 0 -1 0 +3995 0 1 0.0000000000000000e+00 1.0828758005384817e+02 2.6265424303649631e+01 1.2683682640798668e+01 0 0 0 +2753 0 1 0.0000000000000000e+00 1.0564290157598772e+02 1.4824168291750244e+01 1.5069585045890291e+01 -1 0 0 +3469 0 1 0.0000000000000000e+00 1.2659978666701043e+02 2.5630431036625765e+01 3.4536921679938672e+01 0 -1 0 +3452 0 1 0.0000000000000000e+00 1.3120650533131209e+02 2.6153234606604720e+01 2.0704772373490492e+01 0 -1 0 +3196 0 1 0.0000000000000000e+00 1.2761438744755888e+02 3.2844302817824165e+01 2.2776469488405095e+01 0 0 0 +4049 0 1 0.0000000000000000e+00 1.1078923712326082e+02 2.8635730238671460e+01 2.3883407257654294e+01 0 1 1 +3991 0 1 0.0000000000000000e+00 1.2205631334694452e+02 2.4150767644187475e+01 2.5752880022065828e+01 0 0 1 +3769 0 1 0.0000000000000000e+00 1.3294343507588920e+02 3.0160847349004683e+01 2.5124364882264892e+01 0 0 0 +3423 0 1 0.0000000000000000e+00 1.2650452372634824e+02 2.9969626702141934e+01 1.1531513611163653e+00 0 -1 1 +3777 0 1 0.0000000000000000e+00 1.0543127245312731e+02 1.9073230436749324e+01 2.7622242219809635e+01 1 0 0 +3383 0 1 0.0000000000000000e+00 1.0786063751457209e+02 2.6555613020215308e+01 2.2173409613415746e+01 0 0 0 +3273 0 1 0.0000000000000000e+00 1.1932616364927122e+02 1.8282345097845525e+01 2.1827672451929757e+01 1 -1 0 +3608 0 1 0.0000000000000000e+00 1.2388753652943626e+02 3.0527098204502355e+01 5.0713601766177590e+00 0 0 0 +3754 0 1 0.0000000000000000e+00 1.2931395489120519e+02 2.2838899721892851e+01 3.4323074051124642e+01 0 0 0 +3934 0 1 0.0000000000000000e+00 1.1171916164426398e+02 1.7096130892796459e+01 3.0283274622454559e+01 0 0 0 +3222 0 1 0.0000000000000000e+00 1.1381925873705983e+02 2.5255023845184965e+01 2.5022393555432235e+01 0 0 -2 +3693 0 1 0.0000000000000000e+00 1.0821339096816908e+02 2.6349798959223644e+01 1.6671346347484921e+01 0 0 0 +3279 0 1 0.0000000000000000e+00 1.3481485329834439e+02 2.9767576455472536e+01 3.3000067912242095e+01 0 -1 0 +3720 0 1 0.0000000000000000e+00 1.1806637875461432e+02 2.9827267497307982e+01 2.0300070976174847e+01 1 0 0 +3270 0 1 0.0000000000000000e+00 1.1060039833842718e+02 2.3194782606384479e+01 3.1912809076663482e+01 1 0 -1 +3913 0 1 0.0000000000000000e+00 1.3175212580063882e+02 2.6198271066310199e+00 3.1792480422120317e+01 -1 1 0 +2432 0 1 0.0000000000000000e+00 1.0514952399776524e+02 1.5227833161087551e+01 2.3484256245248101e+01 0 0 0 +3977 0 1 0.0000000000000000e+00 1.1729634877987525e+02 2.7642307538671012e+01 3.2540539601014807e+01 0 0 0 +4028 0 1 0.0000000000000000e+00 1.2887422653119674e+02 2.7170068958238431e+01 2.0767868541955976e+00 0 0 1 +3710 0 1 0.0000000000000000e+00 1.0518225609231668e+02 1.0883847594147838e+01 1.9570813981879631e+01 0 0 0 +3996 0 1 0.0000000000000000e+00 1.1947221118508639e+02 2.2357499023221841e+01 2.7090301113156116e+01 0 0 -1 +3694 0 1 0.0000000000000000e+00 1.2339106826800702e+02 2.6724320636958911e+01 2.0112169531090576e+01 0 0 0 +3485 0 1 0.0000000000000000e+00 1.3088175582105686e+02 2.5138081017934031e+01 3.2045183380852386e+01 -1 -1 0 +3576 0 1 0.0000000000000000e+00 1.2705246180846775e+02 2.9128561663304016e+01 2.7790265902772123e+01 0 -1 0 +3757 0 1 0.0000000000000000e+00 1.1464719689279809e+02 2.9049552386350992e+01 2.3465134044805644e+01 0 0 -1 +3074 0 1 0.0000000000000000e+00 1.0434858419410916e+02 8.9303507149927572e+00 9.1643865693547291e+00 0 0 0 +3403 0 1 0.0000000000000000e+00 1.1022411429458211e+02 2.4086084754233756e+01 2.3636415445878391e+01 0 0 0 +3999 0 1 0.0000000000000000e+00 1.0672138419831661e+02 1.3046272710864603e+01 3.4307918969702015e+01 1 0 -1 +3860 0 1 0.0000000000000000e+00 1.2539290270794717e+02 2.9517620345410922e+01 3.2061287512613660e+01 -1 0 0 +2833 0 1 0.0000000000000000e+00 1.1122547791538713e+02 1.8142961901640366e+01 1.2130463082595034e+01 -1 0 0 +3739 0 1 0.0000000000000000e+00 1.2751097040344206e+02 2.7787741372353132e+01 1.9459125493647150e+01 0 0 0 +3223 0 1 0.0000000000000000e+00 1.2955852263369323e+02 2.3532714087876112e+01 2.2824884791180889e+01 0 0 0 +3267 0 1 0.0000000000000000e+00 1.0537513523019167e+02 5.8425387551988210e+00 1.4920510713582480e+01 0 0 0 +3756 0 1 0.0000000000000000e+00 1.0789919032979721e+02 2.1647745874021446e+01 2.5637959791044590e+01 1 0 -1 +3558 0 1 0.0000000000000000e+00 1.2375258897529561e+02 2.6203730844013780e+01 3.1698654783031930e+01 0 0 0 +3729 0 1 0.0000000000000000e+00 1.2395796160146550e+02 2.2511968943394024e+01 3.2301485244241839e+01 0 0 0 +4091 0 1 0.0000000000000000e+00 1.2791475417090653e+02 2.7155050310834159e+01 3.0296050931038295e+01 0 0 0 +3785 0 1 0.0000000000000000e+00 1.1768512189022091e+02 2.2389514317508663e+01 2.0988487683898914e+01 1 0 0 +4052 0 1 0.0000000000000000e+00 1.1672100512295147e+02 2.7948845894270647e+01 2.6337956358503710e+01 0 0 0 +3738 0 1 0.0000000000000000e+00 1.1186827075322479e+02 2.6104355900091655e+01 2.1785168737450626e+01 0 0 -1 +4047 0 1 0.0000000000000000e+00 1.2627055329880075e+02 1.4406331488643495e+01 2.3667948752459491e+01 0 0 0 +4074 0 1 0.0000000000000000e+00 1.3415040026848936e+02 2.7447307697938406e+01 2.3027491364119594e+01 0 0 0 +3201 0 1 0.0000000000000000e+00 1.1221660777617392e+02 2.7890652041894835e+01 2.7425712824502199e+01 0 -1 0 +3873 0 1 0.0000000000000000e+00 1.1200488984367198e+02 2.6483087231568994e+01 3.1170847164912647e+01 0 1 0 +3512 0 1 0.0000000000000000e+00 1.2243656341054806e+02 2.8459645152688996e+01 6.6990969595869376e-01 1 -1 1 +3523 0 1 0.0000000000000000e+00 1.2089998699569669e+02 2.1667178227253626e+01 2.3691062646653805e+01 0 -1 0 +4088 0 1 0.0000000000000000e+00 1.1495281649671854e+02 1.5769616015685251e+01 3.3375715374903038e+01 0 0 0 +3538 0 1 0.0000000000000000e+00 1.2618046508208468e+02 3.3161664159856400e+01 3.4039136972149535e+00 -1 -1 1 +3427 0 1 0.0000000000000000e+00 1.0595067382411351e+02 2.8426513005609365e+01 3.3018759176883485e+01 0 0 0 +4001 0 1 0.0000000000000000e+00 1.3433781824966653e+02 2.9727452005538563e+01 2.8870214534396517e+01 0 0 0 +2320 0 1 0.0000000000000000e+00 1.0572739996438018e+02 2.5631641372552671e+00 1.9975186347802726e+01 0 0 0 +3837 0 1 0.0000000000000000e+00 1.0783359554499899e+02 1.7610519625311365e+01 2.9400067834643028e+01 0 0 -1 +3800 0 1 0.0000000000000000e+00 1.3025257867325990e+02 1.3261412106105663e+01 3.1011485822371849e+01 0 1 -1 +3442 0 1 0.0000000000000000e+00 1.3807082435906702e+02 2.6071556891945040e+01 2.8090574538471994e+01 -1 0 0 +3256 0 1 0.0000000000000000e+00 1.1855956267740993e+02 2.6956944453981965e+01 2.8920436873435989e+01 0 -1 0 +3221 0 1 0.0000000000000000e+00 1.0645108977875230e+02 3.2602644246155201e+01 3.2164960162581863e+01 -1 -1 -1 +4023 0 1 0.0000000000000000e+00 1.3411744343055764e+02 1.7517178352822459e+01 2.8601312035730412e+01 0 0 0 +3456 0 1 0.0000000000000000e+00 1.3053641531801424e+02 1.8189142991990678e+01 2.9456273375812327e+01 0 0 0 +2433 0 1 0.0000000000000000e+00 1.0636791780625001e+02 3.2175372893877800e+01 2.7868647977353856e+01 -1 -1 0 +3356 0 1 0.0000000000000000e+00 1.2227483245064879e+02 2.1100431886532455e+01 1.7117030031886028e+01 0 0 0 +3584 0 1 0.0000000000000000e+00 1.1508323164190287e+02 3.1524537641810571e+01 1.8896600720608753e+01 0 -1 -1 +3613 0 1 0.0000000000000000e+00 1.1450936728127967e+02 2.3212939493553357e+01 3.2901376188597041e+01 0 0 -1 +3875 0 1 0.0000000000000000e+00 1.1656935300818390e+02 1.7380052893038826e+01 3.0554833612226115e+01 0 0 -1 +3499 0 1 0.0000000000000000e+00 1.1484255362182809e+02 2.2503727983784106e+01 2.3212993198723897e+01 0 0 0 +3382 0 1 0.0000000000000000e+00 1.3463921559903244e+02 2.3880593906732752e+01 2.7105806961225110e+01 0 0 0 +3593 0 1 0.0000000000000000e+00 1.1088003863815814e+02 1.8574824836422749e+01 2.7362009794438361e+01 0 0 0 +3461 0 1 0.0000000000000000e+00 1.1084483078561448e+02 2.4595608161826167e+01 2.7722980989801151e+01 0 0 0 +3989 0 1 0.0000000000000000e+00 1.1042258431557053e+02 2.4298090815378725e+01 1.9563965099670398e+01 0 0 0 +3735 0 1 0.0000000000000000e+00 1.3253988975077866e+02 2.2887320990517740e+01 2.0085584236999157e+01 0 0 0 +3827 0 1 0.0000000000000000e+00 1.1892817671973488e+02 1.5610052591317649e+01 2.7294928316993044e+01 0 0 0 +3109 0 1 0.0000000000000000e+00 1.1400114748066773e+02 3.3226765391989048e+01 6.5863065718347675e+00 0 0 0 +3144 0 1 0.0000000000000000e+00 1.0383274271305179e+02 2.6199543549326172e+01 3.4781812180231237e+00 0 0 0 +3834 0 1 0.0000000000000000e+00 1.1732364643252353e+02 1.9994337498244132e+01 2.4455269095517718e+01 0 0 0 +3541 0 1 0.0000000000000000e+00 1.1043388127826762e+02 1.9086651867309172e+01 2.3233403137049315e+01 1 -1 0 +3174 0 1 0.0000000000000000e+00 1.2103312419461560e+02 2.4818314621661248e+01 7.9101019880059942e-01 0 -1 0 +3648 0 1 0.0000000000000000e+00 1.1651556846242673e+02 3.3729608961481375e+01 2.8443319153773349e+01 0 0 0 +3880 0 1 0.0000000000000000e+00 1.1697145442070634e+02 2.0842310021290309e+01 3.0844078303909985e+01 0 0 0 +3590 0 1 0.0000000000000000e+00 1.2015695659900813e+02 3.4331852697592367e+01 1.2767205586083794e+00 0 0 0 +3096 0 1 0.0000000000000000e+00 1.1939725435515672e+02 1.4095876139154386e+01 2.3394540946978900e+01 0 0 -1 +3300 0 1 0.0000000000000000e+00 1.2146706693516209e+02 2.0659336322162432e+01 4.4800539999418802e+00 1 0 1 +3972 0 1 0.0000000000000000e+00 1.2296197096296841e+02 3.2219843865033802e+01 3.2034607844933582e+01 0 1 0 +3126 0 1 0.0000000000000000e+00 1.0852416409866670e+02 2.1467040904336269e+01 3.3896427523254729e+01 1 0 -1 +890 0 1 0.0000000000000000e+00 1.3775057778658925e+02 3.1550199033314257e+01 3.1823089772387902e+01 -1 0 0 +3577 0 1 0.0000000000000000e+00 1.1205960008911345e+02 2.1726984358653588e+01 2.1492582192904344e+01 0 -1 0 +3227 0 1 0.0000000000000000e+00 1.2130350649677406e+02 2.4776364021991487e+01 2.9179376982728442e+01 0 -1 -1 +3319 0 1 0.0000000000000000e+00 1.3142913233203507e+02 2.5097817544788253e+01 1.4622421597893862e+00 -1 0 1 +4038 0 1 0.0000000000000000e+00 1.3444424317429213e+02 5.3711828890533369e+00 1.6795760893568190e+01 0 0 1 +3334 0 1 0.0000000000000000e+00 1.1154893475578699e+02 3.0447883511851789e+01 3.0247635778758031e+01 1 -1 0 +3945 0 1 0.0000000000000000e+00 1.3083118506712358e+02 2.8386104112988292e+01 2.7645838763055512e+01 0 0 0 +3079 0 1 0.0000000000000000e+00 1.3221008551932667e+02 1.7391012549461891e+01 2.0431223713622998e+01 0 0 0 +3855 0 1 0.0000000000000000e+00 1.1530592002778019e+02 1.8682622686686550e+01 2.1591339220851616e+01 0 0 0 +3933 0 1 0.0000000000000000e+00 1.0632323813297658e+02 2.8538114579578384e+01 1.4923311774893188e+01 1 0 0 +3724 0 1 0.0000000000000000e+00 1.2794239642525504e+02 1.9770394911428934e+01 3.1902823646435179e+00 0 0 1 +3390 0 1 0.0000000000000000e+00 1.3285923431577140e+02 1.7016192986978716e+01 2.5112993147213420e+01 0 0 0 +3641 0 1 0.0000000000000000e+00 1.1653136585564748e+02 1.5408373675231152e+01 2.0670031392302640e+01 1 0 0 +3472 0 1 0.0000000000000000e+00 1.3164038832896196e+02 2.2655926563990626e+01 2.6194612301293741e+01 -1 0 0 +3631 0 1 0.0000000000000000e+00 1.2542378143920520e+02 2.4964678852870964e+01 2.8859691950718325e+01 -1 0 0 +3987 0 1 0.0000000000000000e+00 1.0780169041370065e+02 3.0043706532772276e+01 3.0881835176691872e+01 0 -1 0 +4086 0 1 0.0000000000000000e+00 1.2889969535196880e+02 3.0675572504757291e+01 1.9046375869104892e+01 -1 0 0 +3100 0 1 0.0000000000000000e+00 1.1839501485671899e+02 1.0312514848334692e+01 4.0346742696924718e+00 1 -1 0 +3292 0 1 0.0000000000000000e+00 1.0642031865853333e+02 6.3815069366333983e+00 2.3411620048297429e+01 1 0 0 +3420 0 1 0.0000000000000000e+00 1.2597171274896822e+02 3.0321861544777121e+01 2.4742641800428810e+01 0 0 0 +4073 0 1 0.0000000000000000e+00 1.2209219822374496e+02 3.0545324451939393e+01 2.4724626157898555e+01 0 -1 0 +3450 0 1 0.0000000000000000e+00 1.3536541871789416e+02 3.0424754094288982e+01 2.2184367478460207e+01 -1 -1 0 +3884 0 1 0.0000000000000000e+00 1.1229502984086359e+02 2.1655654394445808e+01 5.2157669479007873e-01 0 -1 0 +3666 0 1 0.0000000000000000e+00 1.1616740681059758e+02 2.6228840932824738e+01 2.2551020046361465e+01 0 0 -1 +3818 0 1 0.0000000000000000e+00 1.2445142379376377e+02 2.1317506104854971e+01 2.8376261357831659e+01 0 0 -1 +3082 0 1 0.0000000000000000e+00 1.2312054897700337e+02 1.7056340559573300e+01 2.3153846276565123e+01 -1 -1 0 +3537 0 1 0.0000000000000000e+00 1.3041642575338091e+02 3.1775959369037114e+01 3.2805665606110502e+01 0 -1 0 +3116 0 1 0.0000000000000000e+00 1.3524342153977673e+02 1.8135205345574779e+01 2.2922828527666738e+01 0 -1 -1 +3617 0 1 0.0000000000000000e+00 1.1813636264352769e+02 2.9125255558261543e+01 2.3543189842332254e+01 0 0 0 +3567 0 1 0.0000000000000000e+00 1.0634499090308456e+02 2.4024183115668070e+01 9.8400331765199915e+00 0 -1 0 +3127 0 1 0.0000000000000000e+00 1.2955357578674801e+02 3.2555180646312557e+01 5.7813855607228666e+00 0 -1 1 +3578 0 1 0.0000000000000000e+00 1.2033339318423444e+02 3.1542950389651747e+01 1.5638180217613439e+01 -1 0 0 +3257 0 1 0.0000000000000000e+00 1.2089468512256791e+02 2.8579670092235094e+01 2.1509120760842837e+01 0 -1 -1 +2945 0 1 0.0000000000000000e+00 1.0573418762451622e+02 2.0081453523318654e+01 2.3299965190260366e+01 -1 0 0 +3980 0 1 0.0000000000000000e+00 1.2440620787934175e+02 2.2509249574671159e+01 2.4550264094337377e+00 0 0 1 +3179 0 1 0.0000000000000000e+00 1.0549738323025245e+02 2.8454335825569544e+01 2.7906430362213243e+01 0 -1 0 +3828 0 1 0.0000000000000000e+00 1.2837556480582350e+02 2.7867885852958359e+01 2.2920621149902086e+01 0 0 0 +3856 0 1 0.0000000000000000e+00 1.2502498622510380e+02 3.0420641907044494e+01 1.7077973613051757e+01 0 0 0 +3155 0 1 0.0000000000000000e+00 1.1985363335666995e+02 1.0907227454458614e+01 3.1466480782179296e+01 0 0 -1 +2881 0 1 0.0000000000000000e+00 1.0580378111158896e+02 1.9617844139329549e+01 1.9693382703092510e+01 -1 0 0 +3441 0 1 0.0000000000000000e+00 1.0394481910271003e+02 8.6562839486151475e+00 1.2976019357059034e+01 0 0 0 +3706 0 1 0.0000000000000000e+00 1.0984705271719922e+02 2.6146062477199861e+00 1.9301647335818345e+01 0 1 0 +3902 0 1 0.0000000000000000e+00 1.0780182658132711e+02 1.7258214445931578e+01 2.4825580082098828e+01 0 0 0 +3438 0 1 0.0000000000000000e+00 1.3197392572141467e+02 2.5052517063530601e+01 2.8978816061020492e+01 -1 0 0 +3758 0 1 0.0000000000000000e+00 1.3565298860520801e+02 1.5323506889980282e+01 1.9832812391143655e+01 0 0 0 +3378 0 1 0.0000000000000000e+00 1.3532402511682412e+02 2.0690405428008159e+01 2.5634005527369453e+01 0 -1 0 +3618 0 1 0.0000000000000000e+00 1.0556284721409777e+02 2.8570904595388626e+01 2.2660491256267616e+01 1 0 -1 +3476 0 1 0.0000000000000000e+00 1.1500868483190092e+02 2.7685588998034344e+01 2.9095569072373156e+01 0 0 0 +3399 0 1 0.0000000000000000e+00 1.2905534557186846e+02 2.8494155210305841e+01 3.3465466699192504e+01 0 0 1 +3381 0 1 0.0000000000000000e+00 1.0994952896018303e+02 1.9201923813179338e+01 3.1956735637235830e+01 0 0 0 +3659 0 1 0.0000000000000000e+00 1.0787979138471826e+02 1.7531549170996730e+01 4.8890878952347521e+00 1 1 0 +3434 0 1 0.0000000000000000e+00 1.3550981379933276e+02 3.0278017019232884e+01 1.8775512901975819e+01 0 0 1 +3416 0 1 0.0000000000000000e+00 1.2492595382307341e+02 2.9641223701401501e+01 2.1112804994044872e+01 -1 0 0 +3304 0 1 0.0000000000000000e+00 1.1151250736648115e+02 3.1154642020827165e+01 1.7382397218432114e+01 0 -1 0 +4029 0 1 0.0000000000000000e+00 1.2456711469858685e+02 2.4234307919198557e+01 5.5708168391006767e+00 0 0 0 +2640 0 1 0.0000000000000000e+00 1.0396812885175395e+02 1.7448170135567786e+01 1.2692650697536225e+01 0 0 0 +4044 0 1 0.0000000000000000e+00 1.1388161736404079e+02 2.2095137199873824e+00 6.1527179495956883e+00 0 1 1 +3404 0 1 0.0000000000000000e+00 1.3334630747074885e+02 3.0603973416239413e+01 1.1044489249176600e+01 -1 0 0 +3773 0 1 0.0000000000000000e+00 1.1787973474617638e+02 8.6950305502668468e-02 1.1072908826349483e+01 1 1 0 +3543 0 1 0.0000000000000000e+00 1.2150126520139384e+02 1.8566209354740632e+01 1.4391331709565785e+01 0 0 1 +3553 0 1 0.0000000000000000e+00 1.1530058634349579e+02 1.4935068267575620e+00 1.4137731462748311e+01 0 0 1 +3845 0 1 0.0000000000000000e+00 1.0992571669051995e+02 3.3295515444558824e+01 2.0623347165935275e+00 0 0 0 +3919 0 1 0.0000000000000000e+00 1.0743640338763430e+02 4.8124024550742067e-01 3.0010056043558714e-01 1 0 0 +3901 0 1 0.0000000000000000e+00 1.0792709219173805e+02 1.2602815487158083e+00 1.6552988188090058e+01 0 1 0 +3112 0 1 0.0000000000000000e+00 1.2499682908143106e+02 2.0332174687917860e+01 5.0748290615855263e+00 -1 0 0 +3289 0 1 0.0000000000000000e+00 1.1432039427864933e+02 1.7615826946869703e+01 9.5851712001100875e+00 1 0 -1 +3559 0 1 0.0000000000000000e+00 1.2455674984316362e+02 1.8351157637005841e+01 1.6361891339218278e+01 0 0 0 +3517 0 1 0.0000000000000000e+00 1.2122240663351837e+02 3.2638154803437168e+01 5.5761969372721758e+00 0 -1 0 +3277 0 1 0.0000000000000000e+00 1.0832617642850178e+02 1.0827517534100036e+01 5.7039506292932334e+00 0 0 0 +3212 0 1 0.0000000000000000e+00 1.3102605238901089e+02 2.0620918456120908e+01 6.4358123018453162e+00 0 0 0 +3137 0 1 0.0000000000000000e+00 1.1684067109034514e+02 1.6586112396833162e+01 2.5976621604996488e+00 0 0 0 +3369 0 1 0.0000000000000000e+00 1.2977398091317474e+02 2.4889536373508562e+01 6.3432729453559515e+00 0 -1 0 +3087 0 1 0.0000000000000000e+00 1.0884796548837268e+02 2.5155268306225758e-02 2.2153119522296251e+01 0 0 -1 +3824 0 1 0.0000000000000000e+00 1.1383816482544700e+02 2.0195850657541174e+00 9.6183526602212837e+00 0 1 0 +3545 0 1 0.0000000000000000e+00 1.2054239255722425e+02 2.8821435317261898e+01 3.9355463358953764e+00 0 0 1 +3245 0 1 0.0000000000000000e+00 1.2963624050329432e+02 2.6935158459905857e+01 1.6938903284530280e+01 0 0 0 +3531 0 1 0.0000000000000000e+00 1.3408921182301088e+02 2.6978973737873183e+01 1.1632553278421687e+01 0 0 0 +4009 0 1 0.0000000000000000e+00 1.1150710091640724e+02 1.2357931807569817e+00 2.4688126822440260e+01 0 1 0 +3445 0 1 0.0000000000000000e+00 1.0777227114987360e+02 2.6393003468033918e+01 7.6560909384858205e+00 1 0 0 +3734 0 1 0.0000000000000000e+00 1.1900659277727812e+02 2.5861228239993590e+01 1.5442659536511474e+01 0 0 0 +3920 0 1 0.0000000000000000e+00 1.0776204738196988e+02 4.9042014144885542e+00 3.0225302348020506e+01 1 0 0 +3136 0 1 0.0000000000000000e+00 1.0785418422259308e+02 2.2030161640334576e+01 1.7501128315145213e+01 0 -1 0 +3498 0 1 0.0000000000000000e+00 1.0976694301863128e+02 3.3379645765341159e+01 1.9062118381587595e+01 1 0 1 +3857 0 1 0.0000000000000000e+00 1.1676455531427013e+02 2.0001792291576383e+01 1.5621542350332914e+01 -1 0 0 +3266 0 1 0.0000000000000000e+00 1.2967813487340092e+02 3.0181744283195744e+01 1.0386635658824623e+01 0 -1 1 +3895 0 1 0.0000000000000000e+00 1.2627535231723972e+02 2.2674423920607435e+01 1.1680478680134753e+01 -1 0 1 +3269 0 1 0.0000000000000000e+00 1.3552620366265771e+02 2.4401313196971039e+01 1.4810391028578804e+01 -1 -1 0 +3839 0 1 0.0000000000000000e+00 1.1700467992455023e+02 1.5897017345189376e+01 7.2475360171689767e+00 0 0 0 +3892 0 1 0.0000000000000000e+00 1.1201857985859424e+02 2.6687974689293469e+01 1.6947463923082868e+01 0 0 0 +3215 0 1 0.0000000000000000e+00 1.0802066552203637e+02 1.6099233351279707e+00 8.1959627184303567e+00 0 0 0 +4039 0 1 0.0000000000000000e+00 1.3420536438128369e+02 1.9912567371998666e+01 4.9546217692559171e+00 -1 0 0 +3493 0 1 0.0000000000000000e+00 1.1881008559834056e+02 3.4423268597258698e+01 1.4533874809665955e+01 1 -1 1 +3550 0 1 0.0000000000000000e+00 1.0576913598936467e+02 2.8138756450092874e+01 1.6532997261766298e+00 1 -1 1 +3373 0 1 0.0000000000000000e+00 1.1220797960794877e+02 2.9970004521580254e+01 1.2589910469400044e+01 0 0 1 +3646 0 1 0.0000000000000000e+00 1.0642345426050977e+02 6.7994599293234854e+00 1.1119411559925396e+01 1 0 0 +3514 0 1 0.0000000000000000e+00 1.1891434432339734e+02 1.8311017032345642e+01 5.5726469621731312e+00 0 -1 1 +3664 0 1 0.0000000000000000e+00 1.3054806342499316e+02 1.8931744430306011e+01 1.0006102125936042e+01 0 0 0 +3527 0 1 0.0000000000000000e+00 1.2104764288172063e+02 1.6147675017570720e+01 4.5640734432548209e+00 1 0 1 +3114 0 1 0.0000000000000000e+00 1.3214016022352178e+02 2.4489216387770611e+01 1.3434427632837561e+01 0 -1 0 +3898 0 1 0.0000000000000000e+00 1.0987031230557820e+02 1.5100254624186631e+01 3.2666814751145722e+01 0 0 -1 +4016 0 1 0.0000000000000000e+00 1.3193557896389078e+02 2.3407880545423165e+01 1.0037962725716699e+01 0 0 1 +3865 0 1 0.0000000000000000e+00 1.1189973430652233e+02 6.6853364415379468e-01 1.2857171111630981e+01 1 0 0 +3203 0 1 0.0000000000000000e+00 1.3341957571283493e+02 2.7321851256181606e+01 1.4782029242923835e+01 0 0 0 +912 0 1 0.0000000000000000e+00 1.3617119788296219e+02 1.7197066517500378e+01 1.6480305952308225e+01 -1 0 0 +3143 0 1 0.0000000000000000e+00 1.0500941049487658e+02 2.2768183762904619e+00 2.1143339810578832e+00 1 0 0 +3870 0 1 0.0000000000000000e+00 1.3261451619052826e+02 3.0911272497113909e+01 7.9407084439167805e+00 -1 -1 0 +3877 0 1 0.0000000000000000e+00 1.1219664765400734e+02 2.1526411665879511e+01 1.3229827349784538e+01 1 0 0 +4061 0 1 0.0000000000000000e+00 1.2151849514032335e+02 2.2339515106967905e+01 1.1239277365251946e+01 0 0 1 +3808 0 1 0.0000000000000000e+00 1.1672849707878723e+02 2.8930284872551482e+01 3.4349410309133113e+00 0 0 1 +3794 0 1 0.0000000000000000e+00 1.3025554792149862e+02 2.6293000445896617e+01 9.6436447649906167e+00 0 0 0 +3810 0 1 0.0000000000000000e+00 1.0767736632734390e+02 2.9831126107838095e+01 8.6488346439237809e+00 0 0 0 +561 0 1 0.0000000000000000e+00 1.3670028245701340e+02 4.3087049457697182e+00 1.0694333911991507e+01 0 1 -1 +3148 0 1 0.0000000000000000e+00 1.3497780187003454e+02 2.8205833246621168e+01 5.6010020523825013e+00 0 -1 0 +3494 0 1 0.0000000000000000e+00 1.1102784935463356e+02 2.3586238497148457e+01 1.0729617114212413e+01 0 0 0 +3297 0 1 0.0000000000000000e+00 1.2008591615128923e+02 3.3114533118577327e+01 8.6234112566359631e+00 0 0 0 +3299 0 1 0.0000000000000000e+00 1.3705021494561089e+02 2.6481911471183011e+01 1.2495013456995430e+01 0 0 -1 +3362 0 1 0.0000000000000000e+00 1.1287650439169219e+02 3.4369883647748388e+01 1.8297426877612217e+01 0 -1 0 +4011 0 1 0.0000000000000000e+00 1.1336986896482546e+02 2.2341555133772740e+01 4.2841589936075621e+00 0 0 1 +3551 0 1 0.0000000000000000e+00 1.1431240437746744e+02 2.9299711218255922e+01 1.5455607495121704e+01 1 -1 0 +3468 0 1 0.0000000000000000e+00 1.1174449057165982e+02 2.1286438585743589e+01 2.9183809659991525e+01 0 -1 0 +3622 0 1 0.0000000000000000e+00 1.2063038216818917e+02 2.1319046266021509e+01 7.9566986537454873e+00 1 0 0 +4041 0 1 0.0000000000000000e+00 1.2025865050507949e+02 2.3686353240618679e+01 3.2278564222764679e+01 -1 0 0 +995 0 1 0.0000000000000000e+00 1.3673515754260703e+02 2.0926944622146443e+01 1.5568615456867660e+01 -1 0 0 +2447 0 1 0.0000000000000000e+00 1.0415938452446940e+02 3.4425102015554295e+01 2.6022660636653907e+01 0 -1 0 +3931 0 1 0.0000000000000000e+00 1.1011240572906119e+02 2.8175670644403269e+01 1.5018524613233971e+01 0 1 1 +3131 0 1 0.0000000000000000e+00 1.2522008824608689e+02 3.3639119733544554e+01 6.8748281643356730e+00 0 -1 0 +3733 0 1 0.0000000000000000e+00 1.1909065087918704e+02 1.9708124347768162e+01 1.1445496517488515e+01 0 0 1 +4050 0 1 0.0000000000000000e+00 1.0728754172114493e+02 2.1728084546634857e+01 4.6180110913072463e+00 0 1 1 +4020 0 1 0.0000000000000000e+00 1.1443872209476061e+02 2.3169508768869878e+01 1.5520441514985999e+01 0 0 0 +4054 0 1 0.0000000000000000e+00 1.2346634082300059e+02 2.2471090062593216e+01 1.4464525451643221e+01 0 0 1 +859 0 1 0.0000000000000000e+00 1.3718504449230977e+02 2.2281040126581736e+01 1.2488991900603054e+01 -1 1 1 +716 0 1 0.0000000000000000e+00 1.3705729015900502e+02 2.1682816773277771e+01 6.6563248624173355e+00 -1 0 0 +2800 0 1 0.0000000000000000e+00 1.0391938156212903e+02 2.6136114771835764e+01 1.6419442063985585e+01 0 0 0 +495 0 1 0.0000000000000000e+00 1.3462184635350701e+02 2.3066806104542948e+01 2.2963615481538704e+00 -1 -1 0 +3677 0 1 0.0000000000000000e+00 1.0807506101236447e+02 8.3433563382829981e+00 1.3860564020695227e+01 1 0 0 +3525 0 1 0.0000000000000000e+00 1.2861317156720295e+02 2.5099182588728929e+01 1.2274728905066999e+01 0 -1 1 +497 0 1 0.0000000000000000e+00 1.3692723463693548e+02 1.2312285214423492e+01 1.1031087782494366e+01 -1 -1 1 +3171 0 1 0.0000000000000000e+00 1.2352738265359375e+02 3.1774155910584415e+01 9.0604604171515675e+00 0 -1 0 +3711 0 1 0.0000000000000000e+00 1.1325583193151719e+02 3.3074026499853126e+01 1.4984512251209919e+01 1 0 0 +3401 0 1 0.0000000000000000e+00 1.3387220395091737e+02 2.1352619960254842e+01 1.2098311333354673e+01 0 -1 0 +3764 0 1 0.0000000000000000e+00 1.2157090667330004e+02 2.5455833371815331e+01 4.2855575069131149e+00 1 0 0 +3305 0 1 0.0000000000000000e+00 1.0915773536189984e+02 1.6264907658280769e+01 1.5459932649390462e+01 1 0 0 +3716 0 1 0.0000000000000000e+00 1.2672100606578890e+02 2.4014500043252433e+01 1.5359720563210319e+01 0 0 0 +3313 0 1 0.0000000000000000e+00 1.1255848963093881e+02 2.5067038254169482e+01 6.9423424587706233e+00 1 0 0 +3205 0 1 0.0000000000000000e+00 1.3753252955577778e+02 1.0678019497067329e+01 2.3036686911152557e+01 0 0 -1 +3670 0 1 0.0000000000000000e+00 1.2761597772585837e+02 1.4724941959918935e+01 1.2558620694474948e+01 0 0 0 +3604 0 1 0.0000000000000000e+00 1.3390756410767841e+02 3.4294936642710638e+01 6.4599160705914818e+00 -1 0 0 +3699 0 1 0.0000000000000000e+00 1.2526414084763667e+02 1.6102599747081978e+01 9.3635299079363641e+00 0 0 0 +3674 0 1 0.0000000000000000e+00 1.2573107046143835e+02 3.2880557674210522e+01 1.9657613298430743e+01 0 0 -1 +3177 0 1 0.0000000000000000e+00 1.1676681092851481e+02 1.1501641838725853e+01 1.3371341554395256e+01 1 0 0 +3309 0 1 0.0000000000000000e+00 1.2240387879710741e+02 2.5181699678459854e+01 1.6741335440498268e+01 0 -1 0 +3107 0 1 0.0000000000000000e+00 1.3236165201930382e+02 2.8666846774042636e+01 6.0247432430706149e-01 0 -1 0 +3795 0 1 0.0000000000000000e+00 1.1763484213325927e+02 1.9179788399793146e+01 2.7680056015694777e+01 0 0 -1 +377 0 1 0.0000000000000000e+00 1.3801730622288909e+02 3.4533581939626671e+01 6.0801972677117382e+00 -1 -1 0 +4070 0 1 0.0000000000000000e+00 1.3399354415674219e+02 2.0218816928812579e+01 8.8249900876151290e+00 -1 0 0 +4027 0 1 0.0000000000000000e+00 1.2085179522382261e+02 3.1986514485293643e+01 1.2208831731368932e+01 0 -1 0 +3723 0 1 0.0000000000000000e+00 1.1426256663994775e+02 2.3445875314169978e+01 1.0451144000368089e+01 0 0 0 +3676 0 1 0.0000000000000000e+00 1.1155375065785941e+02 2.5839225532204892e+01 3.5823319780449925e+00 0 0 0 +3736 0 1 0.0000000000000000e+00 1.2203439109915803e+02 1.6367605348209281e+01 3.3583047051641991e+01 0 0 0 +860 0 1 0.0000000000000000e+00 1.3675838360710443e+02 2.6968338322688822e+01 1.7079908953499654e+01 -1 0 0 +3350 0 1 0.0000000000000000e+00 1.0737312765175818e+02 3.0814566544957739e+01 4.2816965144637740e+00 1 -1 0 +3290 0 1 0.0000000000000000e+00 1.1111144079419594e+02 2.2125295953869660e+01 1.7552678864742987e+01 0 0 0 +3125 0 1 0.0000000000000000e+00 1.2534518664783835e+02 1.2757103776282522e+01 1.4174423819822485e+01 0 0 0 +3232 0 1 0.0000000000000000e+00 1.2877905154946382e+02 2.3795950663432098e+01 1.9098157905916722e+01 -1 0 0 +3120 0 1 0.0000000000000000e+00 1.0575678346495856e+02 2.6373770254238345e+00 1.0837924154140925e+01 0 0 0 +3211 0 1 0.0000000000000000e+00 1.1791756155776194e+02 2.3050158326647573e+01 1.7620657153194870e+01 0 0 0 +3471 0 1 0.0000000000000000e+00 1.3397128460503993e+02 3.3598934860141618e+01 1.0086432041154790e+01 -1 -1 0 +3624 0 1 0.0000000000000000e+00 1.1794208850287737e+02 2.1703144412417171e+01 5.6087866050117601e+00 0 0 0 +3923 0 1 0.0000000000000000e+00 1.2853429823946772e+02 1.5954353594267722e+01 9.1251334102981509e+00 0 0 1 +3623 0 1 0.0000000000000000e+00 1.3573450049238483e+02 2.9972962777743877e+01 1.3948876820772275e+01 0 0 0 +3202 0 1 0.0000000000000000e+00 1.2094234901726443e+02 2.3683257559240129e+01 1.9506634289443475e+01 1 -1 0 +3522 0 1 0.0000000000000000e+00 1.1187669683227610e+02 2.0049727318941887e+01 9.2503638775936974e+00 0 0 1 +3153 0 1 0.0000000000000000e+00 1.2805993701090011e+02 1.8197694811708811e+01 1.8503599370640909e+01 0 -1 -1 +3848 0 1 0.0000000000000000e+00 1.1001131576138920e+02 2.2905610118544100e+01 2.7899512568321159e+00 0 0 0 +3335 0 1 0.0000000000000000e+00 1.1839427672282061e+02 1.6586822740293382e+01 3.4067613133040041e+01 1 0 0 +3718 0 1 0.0000000000000000e+00 1.0575740599935160e+02 2.8381833615757536e+01 5.9134842360270605e+00 0 0 0 +3625 0 1 0.0000000000000000e+00 1.2144214869959096e+02 1.0875387009509993e+01 2.0794728160564908e+01 0 0 0 +4005 0 1 0.0000000000000000e+00 1.1205908336203743e+02 3.1258297756474992e+01 2.1171354653074772e+01 1 0 1 +3505 0 1 0.0000000000000000e+00 1.2036873007030159e+02 1.2841365921424577e+01 2.5700181698929891e+00 0 -1 0 +3489 0 1 0.0000000000000000e+00 1.2064606313621803e+02 2.5571848235211654e+01 1.2130419424313741e+01 0 0 1 +3974 0 1 0.0000000000000000e+00 1.3048087263917617e+02 1.2633358138956947e+01 1.0206973972408388e+01 -1 0 0 +3765 0 1 0.0000000000000000e+00 1.2227551353219407e+02 2.8279936153088158e+01 1.4718488680231111e+01 0 0 1 +3466 0 1 0.0000000000000000e+00 1.3317887296435603e+02 1.4411020284502595e+01 1.4955378231462308e+01 -1 0 0 +3918 0 1 0.0000000000000000e+00 1.2441062799101300e+02 2.6159459456595645e+01 1.3388030668351290e+01 -1 0 1 +3173 0 1 0.0000000000000000e+00 1.1981842725193222e+02 1.7191845651501591e+01 8.0875669589968986e+00 -1 0 0 +3630 0 1 0.0000000000000000e+00 1.3015150237344531e+02 1.2924030132385894e+01 1.6365401289199770e+01 0 0 0 +3407 0 1 0.0000000000000000e+00 1.2025277684603863e+02 2.6934653734526343e+01 2.5945086991561034e+01 1 -1 0 +3955 0 1 0.0000000000000000e+00 1.0516186894411943e+02 1.9494418115023262e+01 9.7042371399170886e+00 0 0 0 +3653 0 1 0.0000000000000000e+00 1.2752237303133104e+02 1.8173503534971023e+00 1.0759632539463272e+01 0 1 1 +996 0 1 0.0000000000000000e+00 1.3778019222311130e+02 2.8046117473890952e+01 2.1528977914842429e+01 0 0 0 +3658 0 1 0.0000000000000000e+00 1.0802520827592302e+02 2.1502487326045333e+01 1.1970851643598664e+01 0 0 0 +3295 0 1 0.0000000000000000e+00 1.3678081018980689e+02 2.5943020773734681e+01 7.1580675566470013e+00 0 -1 0 +4043 0 1 0.0000000000000000e+00 1.1511146746705718e+02 2.9286854493111804e+01 1.1983196896586328e+01 0 0 1 +3645 0 1 0.0000000000000000e+00 1.0936851786113819e+02 1.7855329611471163e+01 8.6293118206000479e+00 0 0 0 +3316 0 1 0.0000000000000000e+00 1.3317362412862292e+02 3.0510620302105622e+01 4.0470443656296444e+00 0 -1 0 +3849 0 1 0.0000000000000000e+00 1.2082595116945147e+02 9.3759562059378254e+00 2.8471121137415977e+01 0 1 0 +3075 0 1 0.0000000000000000e+00 1.3539701173451786e+02 7.9436156487603942e+00 2.1912506511671197e+01 -1 0 -1 +3943 0 1 0.0000000000000000e+00 1.1999215356673628e+02 1.3693004002361972e+01 3.3960353516418095e+01 0 1 0 +3957 0 1 0.0000000000000000e+00 1.0757888033043835e+02 1.4280554745278254e+01 3.3961178131908518e+00 1 0 1 +3491 0 1 0.0000000000000000e+00 1.1852884039819446e+02 3.2824609254626672e+01 1.8955755983538957e+01 0 0 0 +3586 0 1 0.0000000000000000e+00 1.2678517531460221e+02 2.9987102888887744e+01 7.7728649738153672e+00 0 0 0 +3642 0 1 0.0000000000000000e+00 1.1010378408039924e+02 2.4145687722533832e+01 1.4437661563339896e+01 0 0 -1 +3951 0 1 0.0000000000000000e+00 1.3242139524439079e+02 2.9003412592759471e+01 1.9261237987039387e+01 0 0 -1 +3619 0 1 0.0000000000000000e+00 1.1722111720520499e+02 2.2851189379528602e+01 1.3284224729703551e+01 0 0 0 +3164 0 1 0.0000000000000000e+00 1.2348817553468662e+02 2.7959172156791734e+01 6.8048296310722964e+00 0 0 0 +3425 0 1 0.0000000000000000e+00 1.1694312373533447e+02 2.6335260360815418e+01 1.2183548558659750e+01 0 -1 0 +164 0 1 0.0000000000000000e+00 1.3655216179592136e+02 2.7247859059342430e+00 2.2434251920470686e+01 -1 0 0 +3392 0 1 0.0000000000000000e+00 1.3313131148359079e+02 2.5029722176587221e+01 1.7045578486483919e+01 0 -1 0 +3825 0 1 0.0000000000000000e+00 1.3142574431387769e+02 2.1454403003956397e+00 5.7447005500321904e+00 -1 1 0 +414 0 1 0.0000000000000000e+00 1.3462761860007643e+02 6.0457453318432641e+00 2.2777448127318004e-01 -1 0 0 +3959 0 1 0.0000000000000000e+00 1.1730495786755587e+02 1.9305619377454864e+01 8.3983554241186216e+00 0 0 0 +3612 0 1 0.0000000000000000e+00 1.3711725200086272e+02 1.8840944422234596e+01 1.9553910517928955e+01 -1 0 -1 +3389 0 1 0.0000000000000000e+00 1.3329789130948919e+02 2.7260809573367652e+01 7.9058319120681579e+00 0 -1 1 +3570 0 1 0.0000000000000000e+00 1.0916956399670890e+02 1.9732882980478593e+01 1.5149354159751351e+01 0 -1 0 +3938 0 1 0.0000000000000000e+00 1.1004915423090833e+02 2.8730240312470915e+01 6.0591076951468761e+00 0 0 0 +3113 0 1 0.0000000000000000e+00 1.0639257161007453e+02 1.6729080751038630e+01 8.0813037324663028e+00 0 0 -1 +3095 0 1 0.0000000000000000e+00 1.1828811213705733e+02 3.0874904149919121e+01 1.0383196035111622e+01 0 -1 0 +3218 0 1 0.0000000000000000e+00 1.1714629582837847e+02 3.1495288295906395e+01 1.4559574096073963e+01 1 -1 -1 +3076 0 1 0.0000000000000000e+00 1.3104177123019946e+02 2.3681493428569311e+00 1.2057006003201806e+01 0 0 0 +3429 0 1 0.0000000000000000e+00 1.3709905933128175e+02 7.6477656507923868e+00 2.4511911509659621e+00 0 0 1 +3327 0 1 0.0000000000000000e+00 1.3265786790206803e+02 2.1423100990521593e+01 3.4534199355576163e+01 0 -1 -1 +3750 0 1 0.0000000000000000e+00 1.1740102635068857e+02 2.6977647579717210e+01 6.9317670286470499e+00 0 0 0 +3176 0 1 0.0000000000000000e+00 1.2403857350960466e+02 2.1809966844781322e+01 9.0630765558213362e+00 -1 0 0 +3097 0 1 0.0000000000000000e+00 1.0484557882302551e+02 1.9546731524687232e+01 6.0544932998464889e+00 1 0 0 +3195 0 1 0.0000000000000000e+00 1.2739679255211480e+02 2.7956590773423208e+01 1.4286121357537997e+01 0 -1 0 +3293 0 1 0.0000000000000000e+00 1.1361939133617925e+02 2.8580018866521513e+01 6.5405003856991364e+00 0 -1 0 +3854 0 1 0.0000000000000000e+00 1.2268164910653448e+02 9.9309528209468265e+00 2.4690231349196775e+01 0 0 0 +3760 0 1 0.0000000000000000e+00 1.3709973985599055e+02 7.3205097414906981e-02 3.3886592238700487e+01 0 1 0 +3992 0 1 0.0000000000000000e+00 1.1441375877002001e+02 2.4443974617842414e+01 1.9273730965283910e+01 1 0 0 +3231 0 1 0.0000000000000000e+00 1.2994686261220355e+02 2.3583084073538352e+01 1.5533777675030139e+01 0 0 0 +3668 0 1 0.0000000000000000e+00 1.3169233203660642e+02 2.7004827340242386e+01 4.6236006141508543e+00 1 0 1 +3121 0 1 0.0000000000000000e+00 1.3308210177419778e+02 2.1640758135594094e+01 1.5453348245812943e+01 0 -1 0 +3564 0 1 0.0000000000000000e+00 1.3751144977355423e+02 4.3163793764061271e+00 3.4062596524315772e+01 0 0 0 +3964 0 1 0.0000000000000000e+00 1.1108867815268263e+02 3.2335773289623368e+01 5.0826673558848210e+00 0 0 1 +3971 0 1 0.0000000000000000e+00 1.3428288752965324e+02 2.5851160760303307e+00 3.4442497489885831e+01 -1 0 -1 +3374 0 1 0.0000000000000000e+00 1.1788086878946751e+02 2.9005346882870107e+01 1.6816992323746742e+01 1 -1 0 +4079 0 1 0.0000000000000000e+00 1.2024690859351502e+02 2.1489338700075919e+01 1.4752055471787145e+01 0 0 0 +4031 0 1 0.0000000000000000e+00 1.0488954228729230e+02 3.2597337801372049e+01 6.2023014309337992e+00 1 0 1 +3914 0 1 0.0000000000000000e+00 1.3341042136249550e+02 1.9739385942606109e+01 1.8649691259520282e+01 0 0 1 +4066 0 1 0.0000000000000000e+00 1.1554685601950327e+02 2.0186111148584374e+01 1.1886670710887115e+01 0 0 0 +3146 0 1 0.0000000000000000e+00 1.1454609715675758e+02 1.9311976933828340e+01 6.6450473795194078e+00 0 0 0 +3230 0 1 0.0000000000000000e+00 1.2883830862356618e+02 2.2223695987308265e+01 9.1016680226202080e+00 0 -1 0 +3696 0 1 0.0000000000000000e+00 1.3806902160449783e+02 2.9621610541529893e+01 2.9123026066616418e+01 -1 0 -1 +373 0 1 0.0000000000000000e+00 1.3666465507943755e+02 1.7885646813523827e+01 8.7973509211131766e+00 0 0 0 +3770 0 1 0.0000000000000000e+00 1.2311839529100071e+02 1.9088486088386052e+01 3.1204238122056640e+01 0 0 -1 +3547 0 1 0.0000000000000000e+00 1.3078545910910549e+02 3.3654793578942581e+01 1.1827961329143005e+01 0 -1 0 +3589 0 1 0.0000000000000000e+00 1.1926691761763502e+02 2.1546805796412755e+01 1.8058404769663334e+00 0 0 0 +3927 0 1 0.0000000000000000e+00 1.2473169394873582e+02 1.6471562178225234e+01 1.9512657702246951e+01 0 0 0 +3240 0 1 0.0000000000000000e+00 1.1091770088959466e+02 2.7340969639425527e+01 1.0058763100779579e+01 0 -1 0 +3546 0 1 0.0000000000000000e+00 1.3485944478019127e+02 3.3538402772604250e+01 2.8656378731339760e+01 -1 -1 0 +3801 0 1 0.0000000000000000e+00 1.2357276822230477e+02 1.5363446015313869e+01 1.5988223999028072e+01 1 0 0 +4080 0 1 0.0000000000000000e+00 1.3352755159974734e+02 2.4137834377496493e+01 2.3210562391865722e+01 0 0 0 +3192 0 1 0.0000000000000000e+00 1.2412342305580903e+02 1.8327372702250837e+01 1.9751337539439182e+00 0 1 0 +3732 0 1 0.0000000000000000e+00 1.1026940565386680e+02 1.3048776965632337e+01 1.1973952641985974e+00 0 0 0 +3748 0 1 0.0000000000000000e+00 1.0939960331366429e+02 3.2312552310594427e+01 1.4822979832263387e+01 1 0 0 +3909 0 1 0.0000000000000000e+00 1.0929772948093732e+02 1.9309485824064200e+01 2.2028653058315792e+00 1 0 0 +3821 0 1 0.0000000000000000e+00 1.0966606654685189e+02 2.3577236163418650e+01 7.2159819345181511e+00 0 0 0 +3588 0 1 0.0000000000000000e+00 1.2723009021557775e+02 2.6916084398221304e+01 5.5501488278135449e+00 -1 0 0 +3253 0 1 0.0000000000000000e+00 1.2084011731100037e+02 2.5144677218001544e+01 7.3734155769687426e+00 0 -1 0 +3712 0 1 0.0000000000000000e+00 1.1805896154150713e+02 2.3374145346206181e+01 9.4590181528767179e+00 0 0 0 +3352 0 1 0.0000000000000000e+00 1.1620243139757588e+02 1.9910030696371738e+01 4.1618373363945645e-02 0 0 1 +3656 0 1 0.0000000000000000e+00 1.2733874053301599e+02 1.6494318779648719e+01 1.6011218735859156e+01 0 0 0 +3271 0 1 0.0000000000000000e+00 1.1627597160058700e+02 3.0422446699429646e+01 7.3763057637454219e+00 0 -1 -1 +3727 0 1 0.0000000000000000e+00 1.2979387369567775e+02 2.1109630885205032e+01 1.2840788389189756e+01 0 0 0 +3090 0 1 0.0000000000000000e+00 1.3322582425823242e+02 2.3919953319018362e+01 6.1533128078824637e+00 0 0 1 +3906 0 1 0.0000000000000000e+00 1.2646575418067863e+02 2.8319570828707384e+01 1.0571008821816871e+01 0 0 0 +854 0 1 0.0000000000000000e+00 1.3702700160494703e+02 4.4823083492584201e+00 1.9100260009563279e+01 -1 1 0 +3864 0 1 0.0000000000000000e+00 1.0562499623383204e+02 2.8036361769720290e+01 1.0802911406933699e+01 0 0 0 +3963 0 1 0.0000000000000000e+00 1.3078505692153468e+02 2.8427192908978778e+01 1.3275855215368891e+01 0 0 0 +3678 0 1 0.0000000000000000e+00 1.3544863037659948e+02 2.2971476642228140e+01 1.8364851857860614e+01 0 0 0 +3190 0 1 0.0000000000000000e+00 1.2450594400380733e+02 2.7126547501498461e+01 3.0274554260705426e+00 0 -1 0 +3690 0 1 0.0000000000000000e+00 1.0807582103050642e+02 2.5951636343465612e+01 3.7317629246689656e+00 1 0 0 +3343 0 1 0.0000000000000000e+00 1.1279670681504686e+02 2.6043193215234279e+01 1.3442740981565017e+01 0 -1 0 +3832 0 1 0.0000000000000000e+00 1.2691390081834697e+02 3.3290735215974316e+01 3.3436765936400967e+01 -1 1 0 +3260 0 1 0.0000000000000000e+00 1.2698075476618020e+02 2.0578702925299112e+01 1.5036524037487393e+01 0 0 0 +3915 0 1 0.0000000000000000e+00 1.0965674443776979e+02 1.4632328765186779e+01 6.5882425300025336e+00 0 0 1 +4024 0 1 0.0000000000000000e+00 1.0535738236365947e+02 2.2954162700160845e+00 1.4559134486574534e+01 0 0 0 +3451 0 1 0.0000000000000000e+00 1.0793794735712257e+02 2.7716231903617894e-01 1.2339973760074878e+01 1 0 0 +3812 0 1 0.0000000000000000e+00 1.3323684804774359e+02 1.8511445850841984e+01 1.3822468364657029e+01 0 0 -1 +3813 0 1 0.0000000000000000e+00 1.1462534289594819e+02 2.8454863097280420e+01 1.9496985259884013e+01 0 0 0 +3283 0 1 0.0000000000000000e+00 1.3532544573476727e+02 1.7889440605457235e-01 2.9500095686874288e+00 0 0 1 +3129 0 1 0.0000000000000000e+00 1.2533410251444374e+02 3.3660286905402323e+01 1.1653157935624225e+01 0 -1 0 +3286 0 1 0.0000000000000000e+00 1.3784107751540475e+02 3.6467535155465602e-01 3.0324793799462558e+01 0 0 -1 +3843 0 1 0.0000000000000000e+00 1.2678931595105345e+02 2.5492064238955003e+01 8.6535153831952130e+00 0 0 0 +72 0 1 0.0000000000000000e+00 1.3691802539567379e+02 1.9007372948644029e+01 1.2256318936747833e+01 -1 0 0 +3235 0 1 0.0000000000000000e+00 1.2975255602262780e+02 1.7980566118331037e+01 1.4677575992180067e+01 -1 0 0 +3994 0 1 0.0000000000000000e+00 1.3663699905868413e+02 2.5176152278499803e+01 2.4711726212336185e+01 -1 0 0 +3753 0 1 0.0000000000000000e+00 1.0832197346916855e+02 3.0000776151288417e+01 1.2397838728670200e+01 0 0 0 +3811 0 1 0.0000000000000000e+00 1.2894978783186903e+02 1.4879171409773072e+01 1.9209307997301700e+01 -1 0 0 +4064 0 1 0.0000000000000000e+00 1.3002514721018085e+02 2.0681542921972980e+01 1.7157075980156620e+01 0 0 0 +3536 0 1 0.0000000000000000e+00 1.2309487663269768e+02 1.7662136080023053e+01 6.7060236489773413e+00 0 0 1 +4090 0 1 0.0000000000000000e+00 1.3605354946822615e+02 3.1631916889419863e+01 7.3995868883553113e+00 0 0 1 +3250 0 1 0.0000000000000000e+00 1.1929243800422898e+02 2.7681885311174216e+01 9.8798161781438996e+00 1 -1 0 +3940 0 1 0.0000000000000000e+00 1.2216294720353395e+02 2.8702960156112674e+01 1.0993179396350275e+01 0 0 1 +3802 0 1 0.0000000000000000e+00 1.1015289569518932e+02 2.0377258628958312e+01 5.8270205817886627e+00 0 0 0 +4002 0 1 0.0000000000000000e+00 1.1549334673297798e+02 2.6332606388405242e+01 9.1140450569791600e+00 0 0 1 +3142 0 1 0.0000000000000000e+00 1.1508698545121972e+02 2.3252644848462602e+01 7.0884697494486888e+00 1 -1 0 +3397 0 1 0.0000000000000000e+00 1.2031376047291914e+02 1.8472831943966309e+01 1.8976479285482113e+00 0 0 1 +3358 0 1 0.0000000000000000e+00 1.2896591045123449e+02 3.1285281833698495e+01 1.5276534208063348e+01 0 0 1 +4008 0 1 0.0000000000000000e+00 1.0545519553432618e+02 2.4194353794806471e+01 6.2116550590713144e+00 1 0 1 +20 0 1 0.0000000000000000e+00 1.3177706075786460e+02 1.5970933281614002e+01 3.2246986909325280e+01 -1 0 -1 +3507 0 1 0.0000000000000000e+00 1.2522599862940184e+02 2.4307061703116986e+01 1.8766767314027700e+01 0 -1 0 +574 0 1 0.0000000000000000e+00 1.3599000182514388e+02 1.4682123029407638e+01 8.4686125892973738e+00 0 0 0 +3099 0 1 0.0000000000000000e+00 1.2798666998536831e+02 2.4141436927806943e+01 2.8870599821397942e+00 -1 -1 0 +3360 0 1 0.0000000000000000e+00 1.2376219234095032e+02 2.5546071965713697e+01 1.0012472611052447e+01 0 -1 1 +3204 0 1 0.0000000000000000e+00 1.0958150054935871e+02 2.8859199041454126e+01 2.6278227743494984e+00 0 0 0 +3887 0 1 0.0000000000000000e+00 1.2640153168435560e+02 1.8986383489018763e+01 2.1693881491328888e+01 0 0 -1 +4071 0 1 0.0000000000000000e+00 1.3114655920982133e+02 3.4119428588866896e+01 1.5962782865934599e+01 0 0 1 +3357 0 1 0.0000000000000000e+00 1.1637212422624835e+02 1.9963692293165231e+01 3.6096495163667193e+00 0 -1 1 +3600 0 1 0.0000000000000000e+00 1.1875447028278829e+02 2.7329604350902130e+01 1.4149850398934147e+00 0 -1 0 +63 0 1 0.0000000000000000e+00 1.3483714601933855e+02 2.6522197943158289e+01 3.0174171028208587e+01 0 0 -1 +4067 0 1 0.0000000000000000e+00 1.1013897769770170e+02 2.8379782120400527e+01 1.9605746731752692e+01 0 0 0 +3073 0 1 0.0000000000000000e+00 1.3017572288764003e+02 2.0091199225500467e-01 8.5957440339264490e+00 0 1 0 +3767 0 1 0.0000000000000000e+00 1.0584852886618729e+02 2.3600333179468784e+01 2.3551558238645526e+01 0 0 -1 +3080 0 1 0.0000000000000000e+00 1.3367076149052664e+02 1.7240108964965884e+01 2.7072163469342447e-01 0 0 0 +3354 0 1 0.0000000000000000e+00 1.2499517073020043e+02 1.8989232030433227e+00 1.3740676036990260e+01 0 0 0 +3132 0 1 0.0000000000000000e+00 1.1039702976143194e+02 2.8917721608125692e+01 3.3078761861362686e+01 1 -1 -1 +3303 0 1 0.0000000000000000e+00 1.1156702116371113e+02 3.3170501238630635e+01 2.7751581259465222e+01 1 -1 0 +3182 0 1 0.0000000000000000e+00 1.2329653177349107e+02 1.7967070816271953e+01 2.6905265774100911e+01 0 0 -1 +3421 0 1 0.0000000000000000e+00 1.1870780058229889e+02 1.0287938002983838e+01 3.2476292848037408e-02 0 0 1 +3534 0 1 0.0000000000000000e+00 1.3289941743670653e+02 4.7308701147751053e+00 2.9157099974567217e+01 0 0 0 +3154 0 1 0.0000000000000000e+00 1.1966655803802159e+02 2.0385326507572348e+01 3.2508689685979029e+01 0 0 0 +3966 0 1 0.0000000000000000e+00 1.1570686673124590e+02 5.6644209993825383e+00 2.6996482312221534e+01 0 0 0 +3185 0 1 0.0000000000000000e+00 1.2729543551720444e+02 1.2711426723426364e+00 2.4372393118275021e+01 0 0 0 +3336 0 1 0.0000000000000000e+00 1.2410050277209426e+02 1.4441284987961723e+01 3.4407589541347821e+00 0 0 1 +3301 0 1 0.0000000000000000e+00 1.1914660587880864e+02 3.6447451157544415e+00 3.1304624185580774e+01 0 0 -1 +3251 0 1 0.0000000000000000e+00 1.2181807027423631e+02 1.2522095540496620e+01 2.8855638416512054e+01 0 0 0 +3930 0 1 0.0000000000000000e+00 1.2565545833562831e+02 3.4399863017765462e+01 3.0521199928334834e+01 0 -1 0 +3826 0 1 0.0000000000000000e+00 1.3666006081989960e+02 3.4015313343582427e+01 2.0941015701894120e+01 0 0 -1 +4082 0 1 0.0000000000000000e+00 1.2156292691807639e+02 3.0219815014065490e+00 2.6297159206701139e+01 0 1 1 +3879 0 1 0.0000000000000000e+00 1.1465017476883750e+02 9.4291979056613382e+00 2.2524751877686896e+01 0 1 0 +3858 0 1 0.0000000000000000e+00 1.2115386490952523e+02 4.9252948613221585e+00 1.9054729572159310e+01 0 1 0 +3437 0 1 0.0000000000000000e+00 1.3262359313008722e+02 3.0610996893226023e+01 1.6094464368515720e+01 0 -1 0 +3809 0 1 0.0000000000000000e+00 1.2588340149775428e+02 3.3236709193646341e+01 2.6444387743249610e+01 0 0 0 +3209 0 1 0.0000000000000000e+00 1.1222992407787680e+02 1.9323422993990544e-01 1.1971718850301584e-01 1 1 0 +3532 0 1 0.0000000000000000e+00 1.2268878588639298e+02 1.5376427613019919e+01 3.0178439757346688e+01 -1 0 0 +3562 0 1 0.0000000000000000e+00 1.1793696290797243e+02 1.1618668144861173e+01 1.9255059289045086e+01 1 0 0 +2784 0 1 0.0000000000000000e+00 1.0394020890741334e+02 2.2009670493297161e+01 1.6533339599480460e+01 0 0 0 +3467 0 1 0.0000000000000000e+00 1.1926411091071451e+02 1.3904984021317195e+00 2.8150563174732984e+01 1 0 0 +3925 0 1 0.0000000000000000e+00 1.1680306577415719e+02 7.6591245937941554e+00 1.6685491205622740e+00 1 1 1 +3310 0 1 0.0000000000000000e+00 1.1401748039415988e+02 1.4456604103494106e+00 2.7561521634614671e+01 0 0 0 +3528 0 1 0.0000000000000000e+00 1.2653978363016213e+02 5.3308761169144301e+00 4.0774793445604258e+00 -1 0 1 +3521 0 1 0.0000000000000000e+00 1.3449691184751902e+02 1.3636170215157128e+01 3.0215053394277184e+01 -1 0 0 +3979 0 1 0.0000000000000000e+00 1.3144863075017929e+02 1.4772615473172225e+01 2.8085255323228161e+01 -1 0 0 +3549 0 1 0.0000000000000000e+00 1.1690937514882391e+02 5.9638657425373820e+00 3.3205791708892960e+01 0 0 0 +3904 0 1 0.0000000000000000e+00 1.1644185690467705e+02 1.2845080257631210e+01 2.5597679591523729e+01 0 0 0 +3092 0 1 0.0000000000000000e+00 1.0578579618484966e+02 1.4797342333724652e+01 2.8305227810036332e+01 0 0 -1 +3194 0 1 0.0000000000000000e+00 1.0540299074892724e+02 6.8310832540527588e+00 1.9591743631276991e+01 1 1 0 +3650 0 1 0.0000000000000000e+00 1.2604653970080902e+02 5.1063323035031702e+00 3.4225029318965007e+01 0 1 -1 +4030 0 1 0.0000000000000000e+00 1.0577037474372338e+02 2.0950641659838274e+00 3.2011301430803101e+01 0 1 0 +3844 0 1 0.0000000000000000e+00 1.2616879009426010e+02 1.3028243259593863e+01 3.1169142569694191e+01 -1 1 1 +4026 0 1 0.0000000000000000e+00 1.3176634619267443e+02 3.3782878773818403e+01 3.4189737862896066e+00 -1 -1 1 +369 0 1 0.0000000000000000e+00 1.3481969856729555e+02 6.3262648075436871e+00 4.0905232165121186e+00 -1 0 0 +3897 0 1 0.0000000000000000e+00 1.0604628776984289e+02 2.5521978895402522e+00 2.3623685043073809e+01 1 1 0 +3513 0 1 0.0000000000000000e+00 1.1630791682795486e+02 2.4006350327127572e+00 2.9720976776949467e+01 1 0 0 +3761 0 1 0.0000000000000000e+00 1.1445588430302881e+02 2.5166357550006677e+00 3.2883950465935371e+01 0 1 -1 +3470 0 1 0.0000000000000000e+00 1.2537147462488250e+02 7.0700775906107030e+00 2.5276972617194399e+01 0 0 0 +3265 0 1 0.0000000000000000e+00 1.0717423147521390e+02 1.3657840670851481e+01 2.1686548902294973e+01 1 -1 0 +4092 0 1 0.0000000000000000e+00 1.1388399492766528e+02 6.2485658114466425e+00 2.1968284536030392e+01 0 0 0 +3616 0 1 0.0000000000000000e+00 1.1433740574315479e+02 6.2712444109051662e+00 3.0971218695574848e+01 1 0 -1 +3341 0 1 0.0000000000000000e+00 1.3258641985921290e+02 1.2871833201234301e+01 3.3542620621702383e+01 -1 0 -1 +3191 0 1 0.0000000000000000e+00 1.2663465969665357e+02 1.6896031411117182e+01 5.4914490924245243e+00 0 -1 1 +3147 0 1 0.0000000000000000e+00 1.2300919337150941e+02 2.7513900598056531e+00 2.9257032624519084e+01 0 0 0 +3685 0 1 0.0000000000000000e+00 1.1996821481414571e+02 1.4480587677681216e+01 1.7669444740446380e+01 1 0 0 +3308 0 1 0.0000000000000000e+00 1.2857209232579353e+02 8.3349795308804726e+00 2.1859351666442173e+01 -1 0 0 +3321 0 1 0.0000000000000000e+00 1.2672114530550604e+02 1.8521843488285221e+00 2.8080903530143271e+01 0 0 0 +3361 0 1 0.0000000000000000e+00 1.2048110301892214e+02 1.5339336552684788e+01 1.3755839791650372e+01 0 0 1 +4059 0 1 0.0000000000000000e+00 1.2998427319273608e+02 4.0118159499485637e+00 2.2425857376886654e+01 0 1 0 +3395 0 1 0.0000000000000000e+00 1.3214231585217325e+02 3.3067753725416715e+01 2.6643198079732983e+01 0 -1 0 +3982 0 1 0.0000000000000000e+00 1.1599357814333032e+02 7.7951336383228642e-01 2.0461952376332864e+01 0 1 0 +4040 0 1 0.0000000000000000e+00 1.1011987129558726e+02 1.5429988448312496e+01 2.3141036112619187e+01 0 0 0 +3524 0 1 0.0000000000000000e+00 1.1275581057519103e+02 8.8246268371980694e+00 2.4943807128874411e+01 0 0 0 +3503 0 1 0.0000000000000000e+00 1.3707301007892769e+02 9.7531161602244936e+00 2.9893799414364079e+01 -1 0 0 +3704 0 1 0.0000000000000000e+00 1.2038790703256524e+02 1.8191295699374439e+01 2.5041208659372096e+01 -1 1 0 +3161 0 1 0.0000000000000000e+00 1.2271972103923939e+02 1.1992666401361426e+01 1.7459233289397467e+01 0 0 0 +3258 0 1 0.0000000000000000e+00 1.1234022644825114e+02 3.3481571228141460e+00 2.1504818097108480e+01 1 0 -1 +3544 0 1 0.0000000000000000e+00 1.1250065379346250e+02 1.6787869505711946e+01 2.1630762910547951e+01 0 0 0 +730 0 1 0.0000000000000000e+00 1.3749241914992311e+02 1.1926743450438567e+01 7.3020883504179128e+00 -1 0 0 +3152 0 1 0.0000000000000000e+00 1.3482018813114121e+02 9.6042354876920726e+00 3.4068388099684462e+01 -1 0 0 +3686 0 1 0.0000000000000000e+00 1.1575515960981113e+02 3.3792492931531307e+01 1.1506763361813608e+00 0 0 1 +3627 0 1 0.0000000000000000e+00 1.3129547050942523e+02 4.6281552121464414e-01 3.4277254725716823e+01 0 0 -1 +3317 0 1 0.0000000000000000e+00 1.1995334182883171e+02 3.2465966680530499e+01 3.0098199147616000e+01 0 0 0 +3134 0 1 0.0000000000000000e+00 1.0785051311788312e+02 1.7279186162576622e+01 2.1471916323796382e+01 0 0 0 +3719 0 1 0.0000000000000000e+00 1.1045831354645081e+02 2.1667385194584683e+00 2.7713712811435908e+01 0 1 -1 +3415 0 1 0.0000000000000000e+00 1.1280406184978119e+02 4.7207499275452198e+00 2.5509465362018961e+01 0 0 0 +3348 0 1 0.0000000000000000e+00 1.1747743332146418e+02 2.6043443370645356e+00 2.5977412341782781e+01 0 0 0 +3519 0 1 0.0000000000000000e+00 1.3608987400210981e+02 1.6288803186580711e+01 3.1987905014178086e+01 0 -1 0 +3967 0 1 0.0000000000000000e+00 1.1538474342507533e+02 2.6222147984386548e+00 2.3495402177537095e+01 0 1 0 +3141 0 1 0.0000000000000000e+00 1.2905320473715389e+02 3.3962106398308087e+01 2.7724575703406369e+01 1 -1 0 +3881 0 1 0.0000000000000000e+00 1.1636949783169270e+02 3.4526503831150187e+01 1.6885335819246677e+01 0 0 0 +3291 0 1 0.0000000000000000e+00 1.3106093140969912e+02 3.0386801013125790e+01 2.2364432249219963e+01 0 -1 0 +3170 0 1 0.0000000000000000e+00 1.2910725779818742e+02 1.7102556341596063e+01 2.2442885656087526e+01 0 0 0 +3660 0 1 0.0000000000000000e+00 1.1935441978071734e+02 1.5069542617349319e+01 3.0759810232272553e+01 1 0 0 +3917 0 1 0.0000000000000000e+00 1.2284861280565639e+02 6.1850643912870904e+00 2.2663682831385515e+01 -1 0 0 +3695 0 1 0.0000000000000000e+00 1.2263681104404344e+02 3.5958626636134849e+00 3.2931125911153302e+01 -1 1 0 +3278 0 1 0.0000000000000000e+00 1.3430335401187909e+02 9.5676053157721643e+00 2.5398844548964998e+01 -1 0 0 +3366 0 1 0.0000000000000000e+00 1.1869005185012108e+02 1.0921904828770478e-01 2.3813838514552280e+01 0 0 0 +3780 0 1 0.0000000000000000e+00 1.2389237073152755e+02 9.1201153727066391e+00 3.1293787031969281e+01 0 0 -1 +3119 0 1 0.0000000000000000e+00 1.3516765397052308e+02 2.2851681068802465e+00 3.0867919856924583e+01 -1 0 -1 +3822 0 1 0.0000000000000000e+00 1.1293579117488584e+02 1.8986584762344954e+01 1.5820679135105813e+01 0 1 0 +3234 0 1 0.0000000000000000e+00 1.2036833807871294e+02 7.6245107163523560e+00 3.2487685473686362e+01 0 0 0 +3861 0 1 0.0000000000000000e+00 1.3072137502194948e+02 8.4628684114504527e+00 1.5402929428482704e+01 0 0 0 +3431 0 1 0.0000000000000000e+00 1.2721651897854754e+02 2.0351189687949681e+01 3.1263252377476736e+01 0 0 0 +3318 0 1 0.0000000000000000e+00 1.0885106765347098e+02 5.8837234643771632e+00 2.0882326904232158e+01 0 0 0 +3669 0 1 0.0000000000000000e+00 1.1860504453006865e+02 3.1410864890017500e+01 2.1392522412807664e+00 1 0 0 +3948 0 1 0.0000000000000000e+00 1.3797453844910154e+02 1.4217695607800367e+01 2.9866470387010917e+01 0 0 0 +4022 0 1 0.0000000000000000e+00 1.0957003341078962e+02 1.1358302236939796e+01 1.8916497374741773e+01 0 1 0 +3237 0 1 0.0000000000000000e+00 1.2014355343424256e+02 7.4841101130239185e+00 2.1063045805374571e+01 0 1 -1 +3540 0 1 0.0000000000000000e+00 1.3163337018018601e+02 6.6114275074241853e+00 2.6336156123648475e+01 0 0 0 +3894 0 1 0.0000000000000000e+00 1.1401001792473639e+02 7.5360545978635400e+00 1.8471360101753852e+01 1 1 0 +2832 0 1 0.0000000000000000e+00 1.0746109334233422e+02 1.8074468726202170e+01 1.1965620965023364e+01 0 0 0 +4063 0 1 0.0000000000000000e+00 1.3571344266431956e+02 1.1320016034752495e+01 1.9903426963458976e+01 -1 1 0 +3207 0 1 0.0000000000000000e+00 1.1196662652267898e+02 1.3206053489972362e+01 2.1034547844253428e+01 1 0 -1 +3969 0 1 0.0000000000000000e+00 1.2805220015211478e+02 3.1840441083796406e-01 1.4230493830072554e+01 0 1 0 +3504 0 1 0.0000000000000000e+00 1.3627291461684911e+02 1.2304159721499438e+01 2.7092774128095879e+01 0 0 0 +4004 0 1 0.0000000000000000e+00 1.2980833001080046e+02 7.9628194083395716e+00 2.9834362179290721e+01 0 1 0 +3566 0 1 0.0000000000000000e+00 1.1050839006407108e+02 6.8528197844629668e+00 2.4336126628986701e+01 0 0 0 +3983 0 1 0.0000000000000000e+00 1.2683710118109215e+02 5.7428089853085913e+00 2.2744006567746158e+01 0 0 0 +3743 0 1 0.0000000000000000e+00 1.0846316365015925e+02 2.6581646477780104e+01 2.6192866593582181e+01 0 0 -1 +3379 0 1 0.0000000000000000e+00 1.2834733574742245e+02 9.0780680147512864e+00 2.6533015714756864e+01 0 0 0 +3792 0 1 0.0000000000000000e+00 1.3386791286805038e+02 8.2041561390176607e+00 2.8283489288019382e+01 0 1 -1 +3796 0 1 0.0000000000000000e+00 1.3097932139345997e+02 1.0416744821163210e+01 2.4491254107346737e+01 0 0 -1 +3747 0 1 0.0000000000000000e+00 1.1856155923799680e+02 1.0350594691264275e+01 2.3121796272480953e+01 0 0 0 +3346 0 1 0.0000000000000000e+00 1.2673687579548752e+02 9.8960446527336234e+00 1.8658194845421047e+01 0 0 0 +3426 0 1 0.0000000000000000e+00 1.1739538955615434e+02 4.2478788000216507e+00 2.0869501829875432e+01 1 0 0 +3806 0 1 0.0000000000000000e+00 1.1315027858573238e+02 2.8524073960893400e+01 1.7268983050882885e+00 1 0 0 +3591 0 1 0.0000000000000000e+00 1.0731707423295020e+02 1.2712896023016388e+01 2.5552835201652677e+01 1 1 0 +3385 0 1 0.0000000000000000e+00 1.3332369853678603e+02 1.3033057366969969e+01 2.5725023351141857e+01 0 0 0 +3701 0 1 0.0000000000000000e+00 1.0792343864568981e+02 1.2580249782135677e+01 2.9577568266725457e+01 1 0 -1 +3477 0 1 0.0000000000000000e+00 1.0557869210025947e+02 7.1601675203437400e+00 2.8008077649136489e+01 0 0 0 +3394 0 1 0.0000000000000000e+00 1.1186954161214797e+02 9.7918810584394134e+00 1.6811891638811112e+01 0 0 0 +3805 0 1 0.0000000000000000e+00 1.0928689491172723e+02 2.2999080500722728e+00 3.1514680030878900e+01 1 1 -1 +3444 0 1 0.0000000000000000e+00 1.1638447685888596e+02 9.1568093090737097e+00 2.6375714021479794e+01 0 0 0 +3284 0 1 0.0000000000000000e+00 1.3273048124664726e+02 1.4164125714091170e+01 1.8915946463061026e+01 0 0 -1 +3475 0 1 0.0000000000000000e+00 1.2992419212520818e+02 1.0997818911652960e+01 1.8911087395753515e+01 0 0 0 +3479 0 1 0.0000000000000000e+00 1.0788516245535786e+02 9.0126082403674364e+00 2.5489114303713336e+01 1 0 0 +3682 0 1 0.0000000000000000e+00 1.1440355628705602e+02 3.4090476535224298e+01 2.4907112795038412e+01 0 1 -1 +3151 0 1 0.0000000000000000e+00 1.1144143250145459e+02 1.2337859964940479e+01 4.6292156278126235e+00 0 0 0 +3180 0 1 0.0000000000000000e+00 1.1428967085094925e+02 3.1405589362969973e+01 2.8701658900885672e+01 -1 -1 -1 +3391 0 1 0.0000000000000000e+00 1.2841318351014405e+02 1.2367945884184392e+01 2.7242136104833804e+01 0 0 0 +3831 0 1 0.0000000000000000e+00 1.1991398686109605e+02 1.4056607367397489e+00 2.0624742790403293e+01 0 1 0 +3275 0 1 0.0000000000000000e+00 1.2185680983203781e+02 1.5159410010723084e+01 2.6422046475265450e+01 0 0 -1 +3516 0 1 0.0000000000000000e+00 1.1081258448094424e+02 6.4539003430444684e+00 3.2038532797514591e+01 0 0 0 +3762 0 1 0.0000000000000000e+00 1.2343494644582248e+02 3.9120703906816048e+00 1.5023671813724395e+00 0 0 0 +3214 0 1 0.0000000000000000e+00 1.2310863510834264e+02 5.9691193067056059e-01 3.9814988915420155e+00 -1 0 1 +3751 0 1 0.0000000000000000e+00 1.3355761864595891e+02 5.2357780202785484e+00 2.0855484102739283e+01 -1 1 1 +3952 0 1 0.0000000000000000e+00 1.2964659011873132e+02 3.9633841535172145e+00 2.8831306642948768e+01 0 0 0 +312 0 1 0.0000000000000000e+00 1.3523867110631187e+02 6.3718705169413079e+00 2.5098845350030768e+01 -1 1 1 +3908 0 1 0.0000000000000000e+00 1.1327851969917417e+02 4.8855524569116069e+00 4.1966295959914488e+00 0 1 1 +3965 0 1 0.0000000000000000e+00 1.1655078747460362e+02 3.1504185115241658e+01 2.5616147231154386e+01 0 0 0 +3172 0 1 0.0000000000000000e+00 1.1125254277698258e+02 1.3192182301013329e+01 2.9202879691933688e+01 0 0 0 +3400 0 1 0.0000000000000000e+00 1.2852211739375622e+02 1.1109888748142465e+01 1.4533228786286905e+01 -1 1 1 +3745 0 1 0.0000000000000000e+00 1.3067672173108676e+02 6.6197320341178614e+00 1.2190443352702347e+01 0 0 0 +3296 0 1 0.0000000000000000e+00 1.1699403547251265e+02 6.2539888467482898e+00 2.3669703022652399e+01 -1 0 -1 +2240 0 1 0.0000000000000000e+00 1.0601721390572138e+02 1.9877224125358602e+01 1.4446135186620603e+01 0 0 0 +3681 0 1 0.0000000000000000e+00 1.1244439996409676e+02 2.5306071259173106e-02 3.0615558117041111e+01 0 1 -1 +3975 0 1 0.0000000000000000e+00 1.1577163703638317e+02 7.4990601948059963e+00 1.1866206263046616e+01 0 1 0 +3492 0 1 0.0000000000000000e+00 1.3086788982865914e+02 1.5046866656371227e+01 1.0738377271254325e+00 1 0 1 +3124 0 1 0.0000000000000000e+00 1.1731050970892633e+02 8.4747135751991163e+00 3.0542176496716785e+01 0 0 0 +3210 0 1 0.0000000000000000e+00 1.3628505281419160e+02 2.8223468939258105e+01 9.7231846076411728e+00 0 -1 -1 +3417 0 1 0.0000000000000000e+00 1.2831689880450125e+02 1.2149349639670804e+01 3.3692549945977667e+01 0 0 0 +775 0 1 0.0000000000000000e+00 1.3463181466197423e+02 2.1727613704763504e+00 1.9146250094251201e+01 -1 1 0 +3823 0 1 0.0000000000000000e+00 1.0606541977690539e+02 2.1992948354986619e+00 2.8037954454451413e+01 0 1 0 +3793 0 1 0.0000000000000000e+00 1.2888979800731641e+02 5.8806336373706340e+00 3.2555090056092737e+01 0 0 -1 +3702 0 1 0.0000000000000000e+00 1.3080524462882286e+02 5.0979419850331755e+00 1.5947961223237906e+01 0 0 0 +3755 0 1 0.0000000000000000e+00 1.3349007946902418e+02 1.1011210495689790e+01 1.6861076335988308e+01 -1 0 0 +3583 0 1 0.0000000000000000e+00 1.1826600423687987e+02 2.1945045008937898e+00 3.4321025988048497e+01 0 1 -1 +3386 0 1 0.0000000000000000e+00 1.1317863181547905e+02 9.0741720593170960e-01 3.2692309362131278e+00 1 0 1 +3929 0 1 0.0000000000000000e+00 1.1503099371572240e+02 9.5640108530850529e+00 3.3564999368194748e+01 0 1 0 +3387 0 1 0.0000000000000000e+00 1.1528221506605274e+02 1.2641145683221355e+01 2.2489516545818070e+01 0 0 0 +3561 0 1 0.0000000000000000e+00 1.3827450739612513e+02 4.1482348718714528e+00 2.5285749670054241e+01 0 0 0 +3950 0 1 0.0000000000000000e+00 1.2987468032142539e+02 3.0482785704365618e+01 3.0279718726612201e+00 0 0 1 +3852 0 1 0.0000000000000000e+00 1.2749016724826652e+02 1.0529632916904914e+01 3.0123656895292360e+01 0 1 0 +3328 0 1 0.0000000000000000e+00 1.1176749461415473e+02 3.8038456377772096e+00 3.0080731107599330e+01 0 0 -1 +143 0 1 0.0000000000000000e+00 1.3699797737262207e+02 3.1665752375569298e+01 1.0843320902349992e+01 -1 -1 0 +4017 0 1 0.0000000000000000e+00 1.2891347223795358e+02 1.0809544679329679e+01 2.6148783101103512e+00 0 0 1 +3526 0 1 0.0000000000000000e+00 1.0783162754698994e+02 8.6466940210513723e+00 3.3914597716314383e+01 0 0 -1 +3594 0 1 0.0000000000000000e+00 1.2267969237845651e+02 1.2924718974358356e+01 3.3249365704578871e+01 0 0 0 +3422 0 1 0.0000000000000000e+00 1.1618551887237140e+02 1.2722380763045818e+01 3.1875065381448138e+01 1 1 0 +3874 0 1 0.0000000000000000e+00 1.1954929257916396e+02 3.9288020602622242e+00 2.3448117780954462e+01 -1 0 0 +3430 0 1 0.0000000000000000e+00 1.2240261468424630e+02 5.9290842894489035e+00 3.0503520864684447e+01 1 0 0 +3867 0 1 0.0000000000000000e+00 1.1201130512239871e+02 3.1283815547326967e+01 5.3992467631122776e-01 0 0 1 +3345 0 1 0.0000000000000000e+00 1.2585388177427062e+02 6.3864546743828665e+00 2.9478056639822061e+01 -1 0 0 +3248 0 1 0.0000000000000000e+00 1.2646461978277098e+02 2.4350812135219773e+00 2.1047644447470624e+01 0 0 0 +3981 0 1 0.0000000000000000e+00 1.1476517197566926e+02 1.4959806006209591e+01 2.8759133585331860e+01 0 0 0 +3949 0 1 0.0000000000000000e+00 1.3442767681868585e+02 3.4321836696431447e+01 2.4018437246107762e+01 0 0 1 +3869 0 1 0.0000000000000000e+00 1.1018458161849136e+02 6.6632269787044036e+00 2.7922544674332212e+01 0 1 0 +3464 0 1 0.0000000000000000e+00 1.2068782261682388e+02 8.9933282147489424e-01 3.1779310036832065e+01 0 0 0 +3364 0 1 0.0000000000000000e+00 1.1656773099205050e+02 3.0724046591138006e+01 3.3933233059006348e+01 0 0 0 +3244 0 1 0.0000000000000000e+00 1.3021611116442497e+02 1.4391253170553789e+01 2.4611713229803495e+01 0 0 -1 +3197 0 1 0.0000000000000000e+00 1.0507511870477371e+02 1.0614247879208357e+01 2.3680699858226664e+01 1 0 0 +3199 0 1 0.0000000000000000e+00 1.1874033621952728e+02 5.5784133860944323e+00 2.7900106049411590e+01 0 0 -1 +3402 0 1 0.0000000000000000e+00 1.1355614700537204e+02 1.6703714412739345e+01 1.8810215662704955e+01 0 0 0 +3520 0 1 0.0000000000000000e+00 1.1794496276978678e+02 1.1445373129034616e+01 2.8797812204517690e+01 0 0 0 +195 0 1 0.0000000000000000e+00 1.3715732776678237e+02 2.2697080194129837e+00 1.6129567738680013e+01 -1 0 0 +3640 0 1 0.0000000000000000e+00 1.1378440766469534e+02 3.2414715651504643e+01 3.2445924009128717e+01 0 0 -1 +3798 0 1 0.0000000000000000e+00 1.3095213606225704e+02 2.3413656073643376e+00 2.5862876080334345e+01 0 1 -1 +3163 0 1 0.0000000000000000e+00 1.0985945465000901e+02 1.5465234554273980e+01 1.9318835259082842e+01 1 0 0 +3098 0 1 0.0000000000000000e+00 1.0864997998671511e+02 3.3627042887800251e+01 2.9343612553883148e+01 0 0 -1 +250 0 1 0.0000000000000000e+00 1.3505273279133655e+02 1.0174696338259016e+01 4.0833719228910139e+00 -1 0 0 +3200 0 1 0.0000000000000000e+00 1.1641917403253871e+02 1.7342063937188541e+01 1.7471102547849167e+01 0 0 0 +3094 0 1 0.0000000000000000e+00 1.3283092090833281e+02 1.0544919914421421e+01 2.1784499510158195e+01 0 0 -1 +3683 0 1 0.0000000000000000e+00 1.3100832178765523e+02 3.3741457838087541e+01 2.3735077185135989e+01 0 0 -1 +3665 0 1 0.0000000000000000e+00 1.1975647800913303e+02 7.7434004494379520e+00 2.4996547112176035e+01 0 1 -1 +3885 0 1 0.0000000000000000e+00 1.0744564194276401e+02 9.2280334064849896e+00 2.1445512336358330e+01 0 1 0 +4093 0 1 0.0000000000000000e+00 1.1699866133725490e+02 8.3388762282257787e+00 2.0140343093878549e+01 0 0 0 +3946 0 1 0.0000000000000000e+00 1.1183700073418579e+02 9.5345769361846244e+00 3.4214758848988865e+01 0 1 0 +4018 0 1 0.0000000000000000e+00 1.1179402839332404e+02 1.3933138232547423e+01 1.6777600498722130e+01 0 0 0 +3288 0 1 0.0000000000000000e+00 1.1672247719178166e+02 1.6706695298400422e+01 2.4057056415858291e+01 0 0 0 +3439 0 1 0.0000000000000000e+00 1.1660945655197696e+02 3.4085325077056360e+01 3.2066678700577164e+01 0 -2 0 +3347 0 1 0.0000000000000000e+00 1.1768393365755597e+02 6.5391111383370921e+00 1.7211031579091873e+01 0 0 0 +3998 0 1 0.0000000000000000e+00 1.0850763935083475e+02 4.8418908810858250e+00 1.7010649534568913e+01 0 1 0 +4003 0 1 0.0000000000000000e+00 1.2564707600273550e+02 3.3639810961166077e+01 1.5902907053058833e+01 0 0 1 +154 0 1 0.0000000000000000e+00 1.3620507772677348e+02 2.9047254118296966e+01 1.8108046229583130e+00 0 0 0 +4062 0 1 0.0000000000000000e+00 1.3400163858245949e+02 3.3399424116594815e+01 1.3778395989579233e+01 -1 0 0 +3571 0 1 0.0000000000000000e+00 1.2505661450979360e+02 3.3678647472256960e+00 2.5646754681568616e+01 0 0 0 +3715 0 1 0.0000000000000000e+00 1.2344479099608127e+02 7.2903058898279960e-01 2.4141816298808696e+01 0 0 0 +3264 0 1 0.0000000000000000e+00 1.0947079845766302e+02 1.1373559651627142e+01 3.2051998187033220e+01 1 0 -1 +3539 0 1 0.0000000000000000e+00 1.3193291590466640e+02 8.2394639066536293e+00 1.8504155662802010e+01 0 0 0 +3830 0 1 0.0000000000000000e+00 1.2061659296631733e+02 3.3019521459111147e+01 2.6179262006790019e+01 0 -1 0 +3671 0 1 0.0000000000000000e+00 1.3378451482428974e+02 1.0103472865096821e+01 3.0963038383050154e+01 0 0 0 +3905 0 1 0.0000000000000000e+00 1.2890336893774281e+02 6.8293838024627007e-01 3.1242861910617822e+01 0 1 0 +3110 0 1 0.0000000000000000e+00 1.1381029399562220e+02 2.0092624944457036e+01 3.1525407157532456e+01 0 0 -1 +4034 0 1 0.0000000000000000e+00 1.3490182053437536e+02 2.3049454715238635e+01 3.0958474384995462e+01 0 0 0 +4087 0 1 0.0000000000000000e+00 1.2848089329796420e+02 5.3469368804991371e+00 2.5638391456757958e+01 -1 1 0 +3453 0 1 0.0000000000000000e+00 1.2204482551341768e+02 9.9394628114972612e+00 2.7213572692095178e-01 0 0 1 +3568 0 1 0.0000000000000000e+00 1.3746614126318278e+02 2.4334776233597751e+01 4.0838484060354032e+00 0 -1 1 +3672 0 1 0.0000000000000000e+00 1.0966197424735169e+02 1.0256801922301257e+01 2.7746045405400100e+01 0 0 0 +3329 0 1 0.0000000000000000e+00 1.2016232766116487e+02 3.0970381294187664e+01 3.3500879551472259e+01 -1 -1 -1 +4078 0 1 0.0000000000000000e+00 1.0511536250879719e+02 1.0431436603191500e+01 2.7645746778762934e+01 0 0 0 +3268 0 1 0.0000000000000000e+00 1.1328025954980991e+02 7.4687931421238032e+00 2.7968618405596526e+01 0 0 0 +3836 0 1 0.0000000000000000e+00 1.3729593024438387e+02 6.6459332779696103e+00 2.8209230788662580e+01 0 1 -1 +4037 0 1 0.0000000000000000e+00 1.2623753122590453e+02 3.5117305573082711e+00 3.1384804271186216e+01 0 1 0 +3312 0 1 0.0000000000000000e+00 1.3187624102571240e+02 2.0444776773755237e+01 2.3281063681068794e+01 -1 0 0 +3509 0 1 0.0000000000000000e+00 1.3141228808144848e+02 1.8987516240071802e+01 2.6411665813793208e+00 0 0 1 +3501 0 1 0.0000000000000000e+00 1.2228698684575038e+02 6.5801854915156088e+00 2.7229854102609362e+01 0 0 0 +73 0 1 0.0000000000000000e+00 1.3626351644748942e+02 1.5535738158810496e+01 2.6035843757931765e+01 -1 0 -1 +3691 0 1 0.0000000000000000e+00 1.3161026477416783e+02 1.0993831882272859e+01 2.8268786567069807e+01 0 0 -1 +3817 0 1 0.0000000000000000e+00 1.2492315007388005e+02 1.3595942015190715e+01 2.7222379303248889e+01 0 1 0 +3606 0 1 0.0000000000000000e+00 1.2394978947400671e+02 4.3180618119226279e+00 1.6549068104060527e+01 0 0 0 +3368 0 1 0.0000000000000000e+00 1.2860787113284880e+02 1.2240492049489266e+01 2.1564475858573516e+01 0 -1 0 +3555 0 1 0.0000000000000000e+00 1.0729209101214076e+02 8.6387127264747381e+00 3.0221775873181052e+01 0 0 -1 +3490 0 1 0.0000000000000000e+00 1.3320687217028831e+02 4.0046783311174288e+00 2.4214834607198704e+01 0 0 0 +3968 0 1 0.0000000000000000e+00 1.2850060740126986e+02 1.6423284241330244e+01 3.1932694411864961e+01 0 0 0 +3435 0 1 0.0000000000000000e+00 1.0909086616362457e+02 3.7970360639060949e+00 2.3466381144599950e+01 0 1 0 +3626 0 1 0.0000000000000000e+00 1.1395352457586228e+02 1.1057722529048482e+01 2.7975455698936074e+01 0 0 -1 +3740 0 1 0.0000000000000000e+00 1.2532801749465868e+02 1.1550321364902615e+01 1.0921992350123106e+00 -1 1 0 +3208 0 1 0.0000000000000000e+00 1.3238972946986991e+02 6.3916131118385042e+00 3.2645169798864167e+01 0 0 -1 +4085 0 1 0.0000000000000000e+00 1.0957798620482419e+02 1.5546830243065903e+01 2.7190958422760723e+01 1 0 0 +3973 0 1 0.0000000000000000e+00 1.3628441564799499e+02 6.7688606090151788e+00 3.1525409440806293e+01 0 1 0 +3936 0 1 0.0000000000000000e+00 1.2776014808111648e+02 2.2026271369871968e+00 3.4530290111277459e+01 0 1 0 +571 0 1 0.0000000000000000e+00 1.3714021655480758e+02 1.1444008875545132e+01 1.0903878666269480e+00 0 0 0 +3866 0 1 0.0000000000000000e+00 1.2297990813742737e+02 1.3354955166701284e+01 2.3483096154713440e+01 0 1 1 +3314 0 1 0.0000000000000000e+00 1.2926873459426454e+02 3.9833107340766061e-01 2.0841636079990089e+01 0 0 0 +3833 0 1 0.0000000000000000e+00 1.2101926878891210e+02 1.4697608040269762e+01 9.6886154636915354e+00 0 0 0 +637 0 1 0.0000000000000000e+00 1.3377568274477159e+02 9.6341137620655743e+00 1.0865704868106224e+01 -1 0 0 +3229 0 1 0.0000000000000000e+00 1.2124307941048409e+02 2.5358150921222307e+00 1.4717863695199664e+01 0 0 0 +3405 0 1 0.0000000000000000e+00 1.2365280222229420e+02 3.7088952804439539e+00 1.1395946163141838e+01 0 0 1 +3776 0 1 0.0000000000000000e+00 1.2041826803276039e+02 6.2555813538956215e+00 1.5688580476221365e+01 -1 1 0 +4015 0 1 0.0000000000000000e+00 1.0834125056312747e+02 4.8268359597062034e+00 1.3011984223782751e+01 0 1 0 +3634 0 1 0.0000000000000000e+00 1.1749863696050561e+02 9.4409103531782730e+00 7.5677978978741995e+00 1 0 0 +3842 0 1 0.0000000000000000e+00 1.1668857896512144e+02 4.1804517357078756e+00 2.3818144434625759e+00 0 0 1 +3083 0 1 0.0000000000000000e+00 1.3621626322292110e+02 1.3969480946435183e+01 1.6745919240647936e+01 0 0 -1 +4045 0 1 0.0000000000000000e+00 1.1817136608503131e+02 6.8587654503377449e+00 9.6529817148736239e+00 0 0 1 +3169 0 1 0.0000000000000000e+00 1.1960263582518175e+02 3.8582003010860859e+00 1.1606413656623454e+01 0 0 0 +3487 0 1 0.0000000000000000e+00 1.2630981454767402e+02 1.8935159547652773e+00 2.9403262817504370e+00 0 0 1 +3398 0 1 0.0000000000000000e+00 1.2406787055139814e+02 3.6693945553925816e-01 3.4481454224423551e+01 0 0 0 +170 0 1 0.0000000000000000e+00 1.3599145839220270e+02 3.1640923349217214e+01 2.5591746375068976e+01 -1 0 -1 +3637 0 1 0.0000000000000000e+00 1.0560038579002327e+02 3.2453848079413284e+01 2.2884871616640563e+01 1 0 -1 +4046 0 1 0.0000000000000000e+00 1.1700713852369572e+02 1.3558694932993188e+01 1.2186856048081944e+00 0 1 1 +3243 0 1 0.0000000000000000e+00 1.2294549645990375e+02 6.7541712824789810e+00 3.4254320298041002e+01 0 0 -1 +3703 0 1 0.0000000000000000e+00 1.0749096374653388e+02 1.3151435778312999e+01 1.7755072131989056e+01 1 0 0 +3610 0 1 0.0000000000000000e+00 1.3343311868209096e+02 1.1966713547920609e+01 8.1511298296101256e+00 0 0 0 +3791 0 1 0.0000000000000000e+00 1.2824770030028884e+02 4.1320915379766392e+00 1.4158627092615770e+01 0 0 0 +3574 0 1 0.0000000000000000e+00 1.2169349150501736e+02 9.6322265790327517e+00 1.4399692827725763e+01 0 0 1 +135 0 1 0.0000000000000000e+00 1.3546191717724025e+02 1.3952272952305423e+01 2.2836969532425478e+01 0 0 -1 +3122 0 1 0.0000000000000000e+00 1.1079528086600564e+02 1.5973585670935257e+01 3.5205886770276100e+00 0 0 0 +3298 0 1 0.0000000000000000e+00 1.2693721648841910e+02 1.3242438336109517e+01 1.7214597964237146e+01 0 0 0 +3935 0 1 0.0000000000000000e+00 1.2820885087159758e+02 1.1044341399809712e+00 5.4792112571661473e+00 0 1 1 +3165 0 1 0.0000000000000000e+00 1.0946334644787322e+02 1.0330008407624149e+01 2.3068511231462061e+00 0 0 0 +3419 0 1 0.0000000000000000e+00 1.2666744940850099e+02 1.2230172639443307e+01 1.0669975789274902e+01 -1 0 0 +3771 0 1 0.0000000000000000e+00 1.3059775871088169e+02 9.6549715189653291e+00 3.3224132665986865e+01 -1 1 -1 +4076 0 1 0.0000000000000000e+00 1.1916385244683769e+02 1.0304753340351947e+01 1.0685149836311576e+01 0 0 0 +3978 0 1 0.0000000000000000e+00 1.2441828173436907e+02 8.0835622234030655e+00 5.5282756715437378e+00 0 0 0 +3460 0 1 0.0000000000000000e+00 1.1298233645557642e+02 5.9217119753699823e+00 9.7356231441328447e+00 0 0 0 +3789 0 1 0.0000000000000000e+00 1.1763814704399984e+02 1.6767071136956343e+01 1.0632862069312997e+01 0 0 0 +3742 0 1 0.0000000000000000e+00 1.1468198519879363e+02 1.3746886237162432e+01 1.1657810597341488e+01 0 0 0 +14 0 1 0.0000000000000000e+00 1.3717854918787057e+02 2.5567891210989490e+01 4.9525438499686369e-01 0 -1 0 +3186 0 1 0.0000000000000000e+00 1.2915813608538329e+02 3.3041430993386747e+01 1.3466654084648011e+00 -1 -1 0 +3890 0 1 0.0000000000000000e+00 1.2392114217318715e+02 1.5580034189406296e+01 1.2394982446162951e+01 -1 0 1 +3730 0 1 0.0000000000000000e+00 1.1620604620408987e+02 1.3944078332577909e+01 1.6146887619298969e+01 0 0 0 +3673 0 1 0.0000000000000000e+00 1.3714271399325096e+02 1.6074433813244809e+01 2.7647115119000900e+00 0 1 0 +4051 0 1 0.0000000000000000e+00 1.1523695628284518e+02 5.5108545921427501e+00 1.5192329777700477e+01 0 0 0 +3178 0 1 0.0000000000000000e+00 1.1343169030574806e+02 6.3296437917121402e+00 1.3480999071877678e-01 0 0 0 +4048 0 1 0.0000000000000000e+00 1.1114786017343273e+02 4.1548777858526353e+00 6.9967511861060316e+00 0 1 0 +3078 0 1 0.0000000000000000e+00 1.3754424459886792e+02 9.1569305825544145e+00 1.3964184822452900e+01 -1 0 -1 +3108 0 1 0.0000000000000000e+00 1.1286890493833826e+02 3.0876988670945561e+01 8.9267246820312813e+00 0 -1 0 +3106 0 1 0.0000000000000000e+00 1.3121382622461562e+02 4.4324661048806391e+00 7.5443376297634113e-01 0 0 0 +3775 0 1 0.0000000000000000e+00 1.2648719968005089e+02 1.0062634629534324e+01 7.7570852186625316e+00 0 1 0 +3102 0 1 0.0000000000000000e+00 1.1230068525607007e+02 8.4748130176349559e+00 3.7046647821945058e+00 1 0 0 +3657 0 1 0.0000000000000000e+00 1.1153141903557903e+02 3.4569391850976452e+01 8.6498410981641509e+00 0 0 0 +480 0 1 0.0000000000000000e+00 1.3358144801729688e+02 1.3769557559918251e+01 1.1180142761346445e+01 0 0 1 +3252 0 1 0.0000000000000000e+00 1.2739420949729285e+02 3.2744549843017523e+01 9.4441558180709588e+00 0 -1 0 +3896 0 1 0.0000000000000000e+00 1.1187481678024224e+02 1.7135601972810811e+01 6.8099869773911967e+00 0 0 1 +3457 0 1 0.0000000000000000e+00 1.2318653472602021e+02 3.0420860742256162e+00 2.1957256660376483e+01 0 0 1 +3815 0 1 0.0000000000000000e+00 1.3704492161809335e+02 8.0520953941937048e+00 1.7821547284763664e+01 -1 0 0 +4042 0 1 0.0000000000000000e+00 1.1933132861129185e+02 1.2441924385672761e+01 1.5294565019140087e+01 0 1 0 +3139 0 1 0.0000000000000000e+00 1.2793729444642466e+02 7.4117327920260410e+00 8.2076946438201848e+00 0 0 0 +3320 0 1 0.0000000000000000e+00 1.2095530976083927e+02 2.2044830928609421e-01 1.7206032820794263e+01 1 1 0 +3285 0 1 0.0000000000000000e+00 1.2701038425743245e+02 1.9221655352774111e+01 8.0645584931384047e+00 0 0 0 +3924 0 1 0.0000000000000000e+00 1.1349708686015903e+02 1.4776819367209642e+01 1.5822352055739524e+00 1 0 0 +3888 0 1 0.0000000000000000e+00 1.3566296756696366e+02 1.5512744989800320e+01 1.3238349279478625e+01 0 0 0 +3302 0 1 0.0000000000000000e+00 1.1035992563991849e+02 3.2727003725373095e+01 1.1156771238775645e+01 1 -1 0 +3907 0 1 0.0000000000000000e+00 1.1883064244856733e+02 2.0107927852611425e+01 1.8905921141526065e+01 0 0 0 +3280 0 1 0.0000000000000000e+00 1.3086770498095495e+02 9.5514484737007113e+00 8.5478907914636366e+00 -1 0 0 +3614 0 1 0.0000000000000000e+00 1.2880943833629121e+02 9.3846828159340010e+00 1.1203493383665201e+01 -1 0 0 +3077 0 1 0.0000000000000000e+00 1.3418297412663193e+02 5.7324903790071966e+00 1.2064530640429711e+01 0 0 0 +3916 0 1 0.0000000000000000e+00 1.2035860108470690e+02 2.3003322163028734e+00 3.7246072104164334e+00 0 0 1 +3611 0 1 0.0000000000000000e+00 1.0540238041412717e+02 2.7528811941188721e+01 1.9221326266151127e+01 0 0 0 +3331 0 1 0.0000000000000000e+00 1.2532039151144868e+02 9.4476994982068199e+00 1.1796088745894819e+01 0 0 0 +3636 0 1 0.0000000000000000e+00 1.2185951927537859e+02 1.8283073226862896e+01 1.0356431126770628e+01 0 0 0 +3370 0 1 0.0000000000000000e+00 1.0990755880281016e+02 6.4630336805904163e+00 1.8768052736363581e+00 0 0 0 +3393 0 1 0.0000000000000000e+00 1.2942445439375626e+02 2.9665110689776713e+00 2.5529393546998285e+00 0 0 1 +3598 0 1 0.0000000000000000e+00 1.0841127504214195e+02 9.0786185451806638e+00 8.7294226223286824e+00 1 0 0 +3294 0 1 0.0000000000000000e+00 1.0751325670019155e+02 4.4009973758362264e+00 2.3455582326369620e-01 1 0 0 +3731 0 1 0.0000000000000000e+00 1.1009329027392222e+02 1.5232913134731081e+01 1.0289978675223914e+01 0 0 0 +3103 0 1 0.0000000000000000e+00 1.0804623265969620e+02 5.4890388356920443e+00 8.6528750198766264e+00 0 0 0 +3774 0 1 0.0000000000000000e+00 1.2748566530439858e+02 3.1791153082948888e+01 1.2715415534747697e+01 0 0 1 +3412 0 1 0.0000000000000000e+00 1.0595231646044500e+02 1.1431466474399521e+01 1.4563041178607941e+01 0 0 1 +3338 0 1 0.0000000000000000e+00 1.1834818260864671e+02 1.3846801710083936e+01 1.1478584584366674e+01 1 0 0 +3707 0 1 0.0000000000000000e+00 1.1590882686951939e+02 1.0146129579176550e+01 1.6571715890447770e+01 1 0 0 +4083 0 1 0.0000000000000000e+00 1.1440287191415338e+02 1.1381519886480323e+01 2.0542445677207875e+00 0 0 0 +3344 0 1 0.0000000000000000e+00 1.1209511813830599e+02 9.2161356211617473e+00 3.0447603366521484e+01 1 0 0 +3596 0 1 0.0000000000000000e+00 1.3785060231765013e+02 2.8559888630381970e+01 2.5340071644398336e+01 -1 0 0 +4056 0 1 0.0000000000000000e+00 1.3749170884395849e+02 5.8293492530748878e+00 1.4919736373262381e+01 -1 1 0 +355 0 1 0.0000000000000000e+00 1.3688867377175595e+02 3.1666234165174746e+01 4.2443144488909068e+00 -1 0 1 +3886 0 1 0.0000000000000000e+00 1.0944616153015147e+02 7.9543456314600434e+00 1.7939362294586690e+01 1 1 0 +3249 0 1 0.0000000000000000e+00 1.1610647110187719e+02 3.6161134802469204e+00 1.1498778028211879e+01 0 1 0 +3216 0 1 0.0000000000000000e+00 1.1834968735322367e+02 2.7137820668233914e+00 1.7753594224255842e+01 0 0 -1 +3217 0 1 0.0000000000000000e+00 1.1010882686012933e+02 1.2534350514263355e+00 5.4331422154651943e+00 0 -1 0 +3639 0 1 0.0000000000000000e+00 1.0980902396064867e+02 3.3168779004963852e+01 3.2956759569011432e+01 0 -1 -1 +3814 0 1 0.0000000000000000e+00 1.3301566899108613e+02 3.3807040005632345e+00 3.3176357289616596e+00 0 1 0 +3459 0 1 0.0000000000000000e+00 1.0600940751877565e+02 6.8682907842212426e+00 2.5157075204065671e+00 0 0 0 +3552 0 1 0.0000000000000000e+00 1.0548749358525393e+02 7.2402043925242703e+00 6.6552687684979661e+00 1 0 1 +3565 0 1 0.0000000000000000e+00 1.2098944403910242e+02 8.1144565294702637e+00 6.5062390609628187e+00 0 0 1 +3961 0 1 0.0000000000000000e+00 1.1287897947604704e+02 1.8997686522916183e+01 3.5544893345006852e+00 0 0 0 +3772 0 1 0.0000000000000000e+00 1.0879037121858039e+02 7.3733391240949340e+00 5.4612678363404124e+00 0 1 0 +3117 0 1 0.0000000000000000e+00 1.2257026867110555e+02 1.0451520360459050e+01 8.6081649815841779e+00 0 0 0 +3497 0 1 0.0000000000000000e+00 1.3225262047156909e+02 1.1156287018205528e+01 2.1296754562339357e+00 -1 0 0 +3891 0 1 0.0000000000000000e+00 1.1636728865659816e+02 1.2445761935130857e+01 9.1161171141752195e+00 1 0 0 +2769 0 1 0.0000000000000000e+00 1.0614859716685893e+02 2.3819540013695892e+01 1.4430398165589255e+01 -1 0 0 +3820 0 1 0.0000000000000000e+00 1.2630160498067808e+02 1.1155815593725620e+01 4.3063874327493510e+00 0 1 0 +3355 0 1 0.0000000000000000e+00 1.3020067514003964e+02 5.2169883173001459e+00 9.4176818312249875e+00 -1 0 1 +3323 0 1 0.0000000000000000e+00 1.1111701775461552e+02 6.7298684803845505e+00 1.4996864986175751e+01 1 0 0 +3287 0 1 0.0000000000000000e+00 1.1229009357212158e+02 1.7887496660090651e+01 2.0823885998072408e-01 0 0 0 +3149 0 1 0.0000000000000000e+00 1.3150354744018316e+02 1.6787710209639737e+01 1.6904119957191750e+01 1 -1 0 +705 0 1 0.0000000000000000e+00 1.3584982610817667e+02 1.9643884353775999e+01 1.7022210254008461e+00 0 0 1 +3714 0 1 0.0000000000000000e+00 1.3330001202483390e+02 2.9668480461158326e+00 9.3849161771635945e+00 0 1 0 +3752 0 1 0.0000000000000000e+00 1.3105732806967936e+02 2.2118336753607295e+01 2.8999475668186152e+00 -1 1 0 +4025 0 1 0.0000000000000000e+00 1.1010406983613247e+02 3.0427569254457327e+00 1.0106771208373678e+01 0 0 1 +3893 0 1 0.0000000000000000e+00 1.2874499480011451e+02 3.3590071882028610e+01 1.7921326871960055e+01 0 -1 0 +3432 0 1 0.0000000000000000e+00 1.3099542614937249e+02 1.2843559081988472e+01 5.1100651649758904e+00 -1 0 1 +3797 0 1 0.0000000000000000e+00 1.3480935845228242e+02 8.7359773772920057e+00 6.9293996220563949e+00 -1 1 0 +422 0 1 0.0000000000000000e+00 1.3382156759985631e+02 1.7066927611012790e+01 1.0306656046918000e+01 -1 0 0 +4019 0 1 0.0000000000000000e+00 1.1349826829801668e+02 9.2311726371387088e+00 1.3462307285153289e+01 0 1 0 +3803 0 1 0.0000000000000000e+00 1.2787768747580169e+02 1.7288021246548386e+01 1.3124777128047789e+00 0 1 0 +3101 0 1 0.0000000000000000e+00 1.1357006577047163e+02 1.2239822049850702e+01 1.4943929820530364e+01 1 0 0 +3587 0 1 0.0000000000000000e+00 1.3693435647774916e+02 7.3383908683950683e-01 9.3870704597320582e+00 -1 1 0 +3911 0 1 0.0000000000000000e+00 1.1967245786373516e+02 9.5098720723409329e+00 1.7743989287534401e+01 0 1 0 +4058 0 1 0.0000000000000000e+00 1.2824078307539170e+02 8.5160809054515276e+00 4.7740280774220523e+00 0 1 0 +3883 0 1 0.0000000000000000e+00 1.2042250283783798e+02 1.3921050746494734e+00 7.2173051520197768e+00 0 0 0 +3698 0 1 0.0000000000000000e+00 1.2478404233099801e+02 5.1070720127929121e+00 1.9744377138132691e+01 0 1 0 +3937 0 1 0.0000000000000000e+00 1.2762438889452667e+02 1.3418639013563316e+01 6.9005040428875182e+00 0 1 1 +3413 0 1 0.0000000000000000e+00 1.1444732082190316e+02 2.0803495748503384e+01 1.8434062094574745e+01 0 0 0 +3380 0 1 0.0000000000000000e+00 1.3557931096459708e+02 2.1606908470250032e+00 2.6847620078065784e+01 0 0 0 +3661 0 1 0.0000000000000000e+00 1.2845843597450516e+02 1.5937142402727359e+01 2.7899325324130082e+01 0 0 0 +3638 0 1 0.0000000000000000e+00 1.3542347245180974e+02 2.4007084580794771e+01 9.8621944953796135e+00 -1 0 0 +4000 0 1 0.0000000000000000e+00 1.2995482403505221e+02 1.6602773138039158e+01 5.2458748447176777e+00 0 0 1 +3515 0 1 0.0000000000000000e+00 1.3524158349693894e+02 2.8985761877663716e+00 6.4062044412302699e+00 0 0 1 +4053 0 1 0.0000000000000000e+00 1.1836117921982336e+02 7.7814484396779733e+00 1.3656093677922305e+01 0 0 1 +3166 0 1 0.0000000000000000e+00 1.2014984326639301e+02 5.1049126442132584e+00 4.7010203181149857e-01 0 0 0 +3783 0 1 0.0000000000000000e+00 1.1174691724791003e+02 1.1224886391578700e+01 8.1492383729872078e+00 1 1 0 +3224 0 1 0.0000000000000000e+00 1.3524253336730712e+02 1.1925721963800115e+01 1.4048732501883459e+01 -1 0 0 +3947 0 1 0.0000000000000000e+00 1.2740552595108603e+02 2.9744374613758930e+00 1.7335643770723088e+01 0 1 1 +3455 0 1 0.0000000000000000e+00 1.3220669012421371e+02 1.4978581632579015e+01 7.2736665499799447e+00 0 0 1 +3414 0 1 0.0000000000000000e+00 1.3679023951697511e+02 1.2213335733052485e+01 3.2539459476282211e+01 -1 0 0 +3956 0 1 0.0000000000000000e+00 1.1475951046261054e+02 3.2851912562436240e+01 1.1191649426767031e+01 0 -1 0 +3241 0 1 0.0000000000000000e+00 1.2012432668396627e+02 1.2629999349704558e+01 6.7056187069511477e+00 1 0 0 +3726 0 1 0.0000000000000000e+00 1.2910516339507294e+02 6.1108688970250808e+00 1.9125301800471789e+01 0 1 0 +3484 0 1 0.0000000000000000e+00 1.3493146739160588e+02 1.3259845539371980e+01 5.0114773419611360e+00 0 -1 1 +605 0 1 0.0000000000000000e+00 1.3504418862095301e+02 3.3029278634596537e+01 1.7209084507680299e+01 0 -1 0 +3436 0 1 0.0000000000000000e+00 1.1127526900144234e+02 8.3672119530305782e+00 2.0636666237281840e+01 -1 0 0 +3411 0 1 0.0000000000000000e+00 1.3291119763710361e+02 6.2218690663957723e+00 7.7765731890549192e+00 0 0 0 +3326 0 1 0.0000000000000000e+00 1.2413326427559696e+02 1.3548763912521638e+01 6.8159744314802477e+00 1 -1 1 +4075 0 1 0.0000000000000000e+00 1.3187660952815463e+02 8.9824343576858574e+00 5.2754809231511919e+00 0 1 1 +3168 0 1 0.0000000000000000e+00 1.3748828360268163e+02 6.2871897258978322e+00 8.1178279517288647e+00 0 0 0 +3189 0 1 0.0000000000000000e+00 1.2105426881228590e+02 4.6628625007380746e+00 8.4212740090326310e+00 0 0 0 +3556 0 1 0.0000000000000000e+00 1.1479069553342678e+02 5.6089275452873073e+00 7.4649891268614574e+00 0 1 1 +3376 0 1 0.0000000000000000e+00 1.2456125376437475e+02 3.0465467709312023e+01 1.2717657567845524e+01 0 -1 0 +3663 0 1 0.0000000000000000e+00 1.0755745916352460e+02 1.2714930635945093e+01 9.1029355907688281e+00 0 1 0 +3958 0 1 0.0000000000000000e+00 1.3492938552716214e+02 1.3758236382269358e+01 1.6226999157795994e+00 0 1 1 +3835 0 1 0.0000000000000000e+00 1.2975467788420028e+02 1.8996886595557289e+01 3.3919998275816965e+01 0 1 -1 +3970 0 1 0.0000000000000000e+00 1.1527583714513896e+02 2.6131386572091976e+01 4.1530739575509781e+00 0 0 0 +3088 0 1 0.0000000000000000e+00 1.1437215473282660e+02 1.5094204181812044e+01 4.9600513743689438e+00 0 0 0 +316 0 1 0.0000000000000000e+00 1.3563136139236039e+02 1.7007982088721967e+01 5.9315188311828999e+00 -1 0 1 +3433 0 1 0.0000000000000000e+00 1.2204807350552716e+02 1.2435917739540384e+01 1.2618621000809352e+01 0 0 0 +3340 0 1 0.0000000000000000e+00 1.2486409364937563e+02 9.6744270355018624e+00 2.7707874771773316e+01 -1 1 0 +3353 0 1 0.0000000000000000e+00 1.1322056941759165e+02 1.4121584297775254e+01 8.3544151665286872e+00 0 0 1 +3722 0 1 0.0000000000000000e+00 1.3207902746287050e+02 7.6063616679779624e+00 2.3085157524991597e+00 -1 1 0 +3496 0 1 0.0000000000000000e+00 1.2385012790896425e+02 7.1015861571560404e+00 9.1315750817121817e+00 -1 0 1 +3603 0 1 0.0000000000000000e+00 1.2206076061056220e+02 6.1343586680528894e-01 1.1445669123129457e+01 0 0 0 +4036 0 1 0.0000000000000000e+00 1.1669016020032193e+02 3.4378004995335949e+01 8.2501584359008895e+00 0 -1 0 +3510 0 1 0.0000000000000000e+00 1.1752488015304105e+02 3.1986021283387909e+00 8.5814306871883410e+00 1 0 0 +3862 0 1 0.0000000000000000e+00 1.2030909575104334e+02 8.1613591669830132e+00 2.6435415631219641e+00 0 1 1 +3768 0 1 0.0000000000000000e+00 1.3091482427690099e+02 3.0524205893981242e+00 1.9158518678650150e+01 -1 0 0 +3372 0 1 0.0000000000000000e+00 1.3289338714088498e+02 1.2206163618146002e+00 2.1709966634043479e+01 -1 0 0 +3569 0 1 0.0000000000000000e+00 1.0524423600358486e+02 1.5095978980364345e+01 1.0840054509325920e+01 0 -1 1 +2673 0 1 0.0000000000000000e+00 1.0417102472492576e+02 3.0433481526306757e+01 1.2645446266459590e+01 -1 0 0 +3262 0 1 0.0000000000000000e+00 1.1032945442612485e+02 7.9417015010529521e+00 1.1158294557076767e+01 1 1 0 +653 0 1 0.0000000000000000e+00 1.3536647676240869e+02 1.7853774351335616e+00 1.2655636809811742e+01 -1 1 -1 +3115 0 1 0.0000000000000000e+00 1.2781074938803717e+02 1.8204833646521625e+01 1.1604555668574811e+01 0 -1 0 +3784 0 1 0.0000000000000000e+00 1.1450477962375145e+02 1.6714652932488040e+01 1.3961535968121050e+01 1 0 0 +3333 0 1 0.0000000000000000e+00 1.2765419976485228e+02 1.4393779123959748e+01 2.6692469683680553e+00 1 0 1 +4065 0 1 0.0000000000000000e+00 1.1452975274522711e+02 1.1479052780297797e+01 6.2543665269202560e+00 0 0 0 +3351 0 1 0.0000000000000000e+00 1.3402055184087459e+02 8.3991349086340357e+00 1.4789885955707181e+01 0 0 0 +3647 0 1 0.0000000000000000e+00 1.3264677950789681e+02 2.3585459547687253e+00 1.5094690685535147e+01 0 1 0 +4077 0 1 0.0000000000000000e+00 1.3194558823313574e+02 1.3879234713390407e+01 2.2113389540438103e+01 0 1 0 +3581 0 1 0.0000000000000000e+00 1.1778088957253446e+02 1.7191465548272582e+01 1.3932836588062164e+01 0 0 -1 +3592 0 1 0.0000000000000000e+00 1.0786608810866932e+02 3.3130708384866161e+01 7.2221421299501749e+00 0 0 0 +3601 0 1 0.0000000000000000e+00 1.2751381187558242e+02 3.7414750919542015e+00 7.2860449713601056e+00 0 1 0 +3233 0 1 0.0000000000000000e+00 1.2494464070452099e+02 8.2734581926623783e+00 2.2630145076872550e+00 0 0 0 +3841 0 1 0.0000000000000000e+00 1.1275745256431895e+02 1.3065588092085882e+01 3.3122077887882156e+01 0 0 0 +3899 0 1 0.0000000000000000e+00 1.0732763503981963e+02 1.8003755628266696e+01 1.7544077542857366e+01 0 1 0 +3737 0 1 0.0000000000000000e+00 1.1725485904541382e+02 1.3276376975195971e+01 5.1388352040628149e+00 0 0 0 +3629 0 1 0.0000000000000000e+00 1.1433863707328015e+02 9.4314851643283770e+00 9.9277710904507614e+00 0 0 0 +3804 0 1 0.0000000000000000e+00 1.2837896448434333e+02 7.1226548439658606e+00 1.5420139180324703e+00 0 0 0 +3557 0 1 0.0000000000000000e+00 1.0982802017888164e+02 2.5823591087478546e+00 2.5712173155248124e+00 0 0 0 +3554 0 1 0.0000000000000000e+00 1.2648676130125328e+02 6.5079234015364475e+00 1.6448477914319884e+01 0 0 1 +3713 0 1 0.0000000000000000e+00 1.2112640184390438e+02 7.1834633907795755e+00 1.0993282315189562e+01 0 0 0 +3184 0 1 0.0000000000000000e+00 1.1519561430053599e+02 8.1887549907777100e+00 4.8166213231759754e+00 0 0 0 +3474 0 1 0.0000000000000000e+00 1.3683180514484388e+02 8.7243079326983750e+00 1.0532853740991955e+01 0 0 0 +3649 0 1 0.0000000000000000e+00 1.0676218052113737e+02 8.9420849295068674e+00 1.6775432796071193e+01 0 0 0 +3607 0 1 0.0000000000000000e+00 1.1063029667397387e+02 1.1727195509014013e+01 1.1816924507799609e+01 0 1 0 +3188 0 1 0.0000000000000000e+00 1.2441392928047087e+02 8.7010465630435867e+00 2.0985788505659997e+01 0 0 0 +3889 0 1 0.0000000000000000e+00 1.1455885023371968e+02 3.1726921480059026e+01 3.5057170428673903e+00 0 0 1 +3838 0 1 0.0000000000000000e+00 1.2471244441805320e+02 1.8307959444497219e+00 8.5861173335713943e+00 0 1 0 +3093 0 1 0.0000000000000000e+00 1.1135640838840315e+02 3.3939311758426753e+00 3.3999505873558192e+01 0 1 -1 +3482 0 1 0.0000000000000000e+00 1.1192583289381302e+02 7.9906387876262839e+00 7.0194423337708480e+00 -1 0 1 +3091 0 1 0.0000000000000000e+00 1.0663244118343212e+02 1.0467608279840917e+01 1.1075196744388730e+01 0 0 0 +3483 0 1 0.0000000000000000e+00 1.2409368916800945e+02 1.9551649559755244e+01 1.2472934478308220e+01 0 0 1 +3081 0 1 0.0000000000000000e+00 1.0581896254796813e+02 1.5479825879111372e+01 3.1854418941861628e+01 1 0 -1 +3187 0 1 0.0000000000000000e+00 1.2685389114816135e+02 5.3480843175570723e+00 1.1309261841227599e+01 0 0 0 +3799 0 1 0.0000000000000000e+00 1.2199184761308319e+02 5.3824910066371743e+00 4.3176911390027959e+00 -1 1 0 +3322 0 1 0.0000000000000000e+00 1.0810596820340905e+02 1.4078212362404930e+01 1.2654274934332994e+01 0 0 0 +3655 0 1 0.0000000000000000e+00 1.0586858324758023e+02 3.2933002388506395e+01 1.4942777055942088e+01 1 0 0 +3662 0 1 0.0000000000000000e+00 1.3236277866060666e+02 3.2857082680796616e+01 1.9583462671495173e+01 0 0 1 +3986 0 1 0.0000000000000000e+00 1.1386653236194775e+02 2.4112894047118072e+01 2.8899336355224122e+01 1 -1 0 +3819 0 1 0.0000000000000000e+00 1.2365200273387394e+02 6.5818288895095893e+00 1.3261839666977574e+01 0 1 0 +3997 0 1 0.0000000000000000e+00 1.2690884823974810e+02 9.1831048950405290e+00 3.3186362272142681e+01 0 0 0 +3183 0 1 0.0000000000000000e+00 1.0490184944920604e+02 1.6809201071269142e+00 6.9005392227576694e+00 0 0 0 +3306 0 1 0.0000000000000000e+00 1.1821467702169988e+02 3.8828741974072982e+00 1.4445955519832873e+01 0 0 -1 +3560 0 1 0.0000000000000000e+00 1.3719487519284522e+02 2.8943675560963134e+00 2.9923366623681247e+00 -1 0 1 +3085 0 1 0.0000000000000000e+00 1.0952704561721279e+02 1.1575779269066697e+01 1.4981031097336897e+01 0 0 0 +3635 0 1 0.0000000000000000e+00 1.1703068467187292e+02 1.8584484674792587e+00 4.3388748290794448e+00 0 0 0 +3697 0 1 0.0000000000000000e+00 1.3022909463086927e+02 5.3016663551875940e+00 4.9622132186359682e+00 0 1 0 +3850 0 1 0.0000000000000000e+00 1.3297936057813678e+02 1.5976171321771238e+01 3.9023574736663647e+00 -1 0 0 +3572 0 1 0.0000000000000000e+00 1.2259178581115893e+02 7.8019604307029287e+00 1.8069193144780023e+01 0 0 0 +2624 0 1 0.0000000000000000e+00 1.0547574864378424e+02 3.2770702679939603e+01 2.1164793994988909e+00 0 0 0 +3807 0 1 0.0000000000000000e+00 1.3077524224696177e+02 1.5729547982815921e+01 1.2396444552358743e+01 0 0 0 +4057 0 1 0.0000000000000000e+00 1.2252505277996477e+02 1.1055728288565451e+01 4.2103143175663016e+00 0 1 1 +3575 0 1 0.0000000000000000e+00 1.1859942360664817e+02 5.3555643368466406e+00 5.3496635989214623e+00 0 0 0 +3533 0 1 0.0000000000000000e+00 1.0495968516592862e+02 1.0723921154565584e+01 6.1272794623110363e+00 1 0 0 +3749 0 1 0.0000000000000000e+00 1.0740377220218255e+02 4.1559621542089928e+00 5.4781924360769318e+00 0 0 0 +3628 0 1 0.0000000000000000e+00 1.1997153523336814e+02 2.9807836298310431e+01 7.5340645811604299e+00 0 0 0 +3463 0 1 0.0000000000000000e+00 1.3181509874981396e+02 1.1067958375734934e+01 1.3297997155344438e+01 -1 0 0 +3339 0 1 0.0000000000000000e+00 1.2289255855707040e+02 3.1701349726354426e+01 1.5974411247003684e+00 1 -1 1 +3605 0 1 0.0000000000000000e+00 1.2026472860773131e+02 1.8382076405708450e+01 2.9429151555696095e+01 0 0 -1 +3643 0 1 0.0000000000000000e+00 1.0523155645857591e+02 1.0757400991302738e+01 3.2170296176465044e+01 1 0 -1 +3679 0 1 0.0000000000000000e+00 1.1760707421002897e+02 3.2448668310759388e+01 5.1162523657174797e+00 0 0 0 +3324 0 1 0.0000000000000000e+00 1.2747781131479168e+02 7.4604977598151807e+00 1.3687503646604100e+01 -1 0 0 +3274 0 1 0.0000000000000000e+00 1.1430787108853971e+02 1.1741457126777265e+01 1.8714659641680942e+01 0 0 0 +3779 0 1 0.0000000000000000e+00 1.0701636572234233e+02 9.2588097881006748e-01 4.5953347931480968e+00 0 1 0 +621 0 1 0.0000000000000000e+00 1.3629931973045697e+02 1.9588586386748293e+01 3.1920580774993823e+01 -1 0 0 +3759 0 1 0.0000000000000000e+00 1.1162191115976967e+02 1.4500103189912346e+01 1.3341420030698409e+01 0 0 0 +3903 0 1 0.0000000000000000e+00 1.2765047912846083e+02 2.2116377975649733e+01 5.9874155744615729e+00 -1 0 1 +3247 0 1 0.0000000000000000e+00 1.2272232062132366e+02 3.3794343238029462e+01 1.4515320918115330e+01 0 -2 0 +3620 0 1 0.0000000000000000e+00 1.1989694683413974e+02 3.1883050432583644e+01 2.2300454220996677e+01 0 0 0 +3984 0 1 0.0000000000000000e+00 1.1583866518772393e+02 2.6045615043171914e+01 1.6402871200373049e+01 0 0 0 +3359 0 1 0.0000000000000000e+00 1.3219971517388174e+02 7.3437215501709048e+00 2.3268860971643790e+01 0 0 0 +3728 0 1 0.0000000000000000e+00 1.2516128623028762e+02 9.8658367950944346e+00 1.5705321725197978e+01 0 1 0 +3105 0 1 0.0000000000000000e+00 1.2402311017896716e+02 3.4438395949937184e+00 5.8796662264255106e+00 0 -1 0 +2913 0 1 0.0000000000000000e+00 1.0387366288867213e+02 2.6707377639612783e+01 2.5452656175337715e+01 -1 0 0 +105 0 1 0.0000000000000000e+00 1.3753582255798210e+02 3.3581008607414354e+01 1.4017643839471882e+01 0 -1 0 +3786 0 1 0.0000000000000000e+00 1.3786074994299105e+02 2.0928756569230380e+01 9.5975118065669811e+00 0 0 0 +4072 0 1 0.0000000000000000e+00 1.0409432932531222e+02 3.4289625201256058e+01 3.0018671262621144e+01 0 0 0 +3160 0 1 0.0000000000000000e+00 1.3797129813306921e+02 2.7709819143694094e+01 3.2478592536731753e+01 -1 -1 -1 +167 0 1 0.0000000000000000e+00 1.3804359501399435e+02 2.1395928338509826e+01 3.3439210572648803e+00 0 -1 0 +193 0 1 0.0000000000000000e+00 1.3839314698028275e+02 1.6444829669542624e+01 2.1950302921676986e+01 0 -1 0 +848 0 1 0.0000000000000000e+00 1.3837269942841363e+02 3.7456576536608606e+00 3.0535823421805617e+01 0 0 0 +3993 0 1 0.0000000000000000e+00 1.3831100397901662e+02 2.7812231768366175e+01 3.8672677662418380e+00 -1 0 1 +3781 0 1 0.0000000000000000e+00 1.3822723586972845e+02 2.1833916348157842e+01 2.4944341407415223e+01 1 -1 0 +9 0 1 0.0000000000000000e+00 1.3803379383586926e+02 9.5015907340665517e+00 2.6581676108593935e+01 0 0 -1 +3599 0 1 0.0000000000000000e+00 1.0400497207492002e+02 3.0280598147796155e+01 3.0272698374744198e+01 1 0 -1 +3518 0 1 0.0000000000000000e+00 1.0409064170997802e+02 2.5951379592610103e+01 1.2910922695714591e+01 0 0 0 +4089 0 1 0.0000000000000000e+00 1.0445637283706738e+02 2.2043888231437762e+01 1.2373979882099404e+01 0 0 0 +2593 0 1 0.0000000000000000e+00 1.0392891712146405e+02 2.6159472032884022e+01 3.4089431227073220e+01 -1 0 -1 + +Velocities + +761 -2.8944901599020105e+00 2.0770852142378526e+00 2.5175914782832147e+00 +972 3.5390223726031156e+00 8.8670336358750934e-01 -1.1105601770755977e+00 +157 -4.2907861760605437e+00 4.9622513489581321e-01 4.4402127077014752e-01 +333 -1.2755492513801712e+00 1.4048627118185066e+00 -3.1683081176603332e+00 +704 -4.1281339952590496e-01 1.8020962460817638e+00 5.1384694680476377e+00 +943 4.0660413199779564e+00 -4.0701225391822025e+00 -2.4718316899658838e-01 +562 -1.9144973849811393e+00 -1.8984410722278344e+00 -1.4293038084196776e+00 +770 -1.2456914744933572e+00 -1.4697343097644955e+00 1.3239903568484488e+00 +701 7.8753431497755111e-01 -4.0103006135830750e+00 1.7947896252277622e+00 +973 -2.9651535678427754e+00 -3.2441107420509674e-01 2.6903086676986288e+00 +97 4.5161358851421065e+00 -2.9978850550360154e+00 5.1614292708509542e+00 +471 -4.7193553059262445e+00 2.5066288027446930e+00 1.5654092740026195e+00 +326 1.6092124220849671e+00 3.8394580373861897e+00 -1.4997295856501480e+00 +409 -5.8405520329172012e+00 -2.5942449974331303e-03 -6.0013721890612526e-01 +481 -3.3930101728509228e+00 2.5946559470551653e+00 -4.0776053809029831e+00 +974 -3.3457733402992456e+00 -1.3900859925263318e+00 1.1262069424898660e+00 +171 -2.6830268691651389e+00 7.2327808812498862e-01 -5.2116643022294873e-01 +631 3.9057163613266406e+00 2.9545225822432788e+00 -1.2828637274143071e+00 +620 2.2047429195309065e+00 4.3213246365025682e-01 3.3294966473364691e+00 +719 4.4655579720379707e-01 -1.1632029265251013e-01 -2.3970037575683603e+00 +502 -2.8901192334767769e+00 4.5120673200075236e+00 -2.9949877253703319e+00 +773 -1.3502370407031496e+00 3.1647279672483122e+00 7.9363470395698252e+00 +50 3.8792926416886636e-01 2.0883831870040912e+00 4.5235131479825084e+00 +226 -5.8859395884877301e+00 3.6645460319640319e+00 -4.9361215920943708e+00 +863 -2.9864581001991422e+00 8.4323044667811251e-02 -4.4010050147590416e+00 +3228 -3.4422065910805997e+00 -3.1179999482827667e+00 -6.7070939584793097e+00 +347 -3.2955694172168037e+00 7.5845715820208799e+00 -2.9570357255643054e+00 +847 9.7140495831837423e+00 5.4978514752127712e+00 -7.8094882701521373e-01 +1004 -6.5781835416373957e-01 -4.6813822848545694e+00 -5.0920538593462581e+00 +829 -1.0954124901842783e+00 -5.9013278898129489e+00 -2.8055839281856474e+00 +388 -1.0863653676341008e-02 4.2573051483721147e-01 -2.5879275744672907e+00 +717 -7.1597591584295124e+00 3.1168585290061817e+00 -9.4998764789333823e-01 +670 -9.3934097364909963e-01 6.1164053541415508e-01 -3.3021494527511974e+00 +103 -5.2347843199488127e+00 2.6946268473704116e-01 -3.2530027241168029e+00 +114 2.5762180714815264e+00 -1.5766210426060121e+00 -4.4594749020585303e+00 +818 4.1426258553954645e+00 -8.6639276226995232e+00 -5.3769426085435623e-01 +658 -8.2898060453300761e+00 -5.4082728014537622e+00 2.9201590726791338e+00 +217 3.5495298358415628e+00 -3.5576235220823369e+00 -4.6622683425792024e+00 +979 -2.7872992562167864e+00 4.0192980887252627e+00 -2.5532928287412662e+00 +106 -1.2501460925272696e+00 6.1902176043591195e-01 3.4824564538016225e+00 +976 -4.4078270190557056e+00 2.4503623099747389e+00 2.4798201457980018e-01 +487 9.7985208494659499e+00 4.0152713432433389e+00 -1.0787674093031250e+00 +36 5.4014163657021736e+00 1.0977360940595666e+00 -2.6039230272839262e+00 +445 8.8247661243945563e-02 -1.7843172863415899e+00 3.2048875166248196e+00 +703 -4.7730442647112076e-01 7.6087787869192725e-01 3.0193952775722286e+00 +30 8.8605169995192834e-01 -5.9387501959361408e+00 -2.1065471203464288e+00 +585 3.2516576342866212e+00 1.6246610904124610e+00 1.8173337657630948e+00 +205 -4.2405772996560476e+00 4.1298058334282155e+00 -2.5890023270862876e+00 +180 -5.2980372699853611e+00 1.6675299815614691e-01 4.3961906778351373e-01 +824 5.2970808964969676e+00 -4.0156479014981876e+00 -3.8652227894825906e+00 +65 3.1939251004501814e-03 3.6620745936852281e+00 -1.4055805145200884e+00 +3367 -1.4355703024849223e-01 -4.2074828202083037e+00 5.9727694475614843e+00 +970 -1.5175126430690640e+00 4.6300072554221332e+00 -5.0787511270476031e+00 +752 -5.9352487117921227e+00 -6.2914282561211303e+00 -1.6549813026710318e+00 +248 -3.4645813285825136e+00 -3.4785285116003974e+00 -2.1904300617510211e-01 +3255 -3.1620977172364118e+00 -8.9819439227852904e-01 1.5821442097152507e+00 +852 -1.0645744044916421e+00 -2.3878164244539564e+00 3.4737043287215643e+00 +473 5.3787609912924583e-01 -2.4173915814233102e-01 9.2620526845943001e+00 +173 1.9459965931959713e+00 -3.6504229662086857e-02 4.7218113493258009e+00 +835 -4.7043640171991994e+00 2.1538230953468220e+00 1.3785019493329951e+00 +888 3.1142508047920852e+00 -3.5400139309733984e+00 2.4449162656839669e+00 +3272 3.8755679535324146e+00 -3.6901623723947656e+00 3.8240175043393285e+00 +662 -1.0446894970282214e+01 3.3189335209176845e+00 -5.1216245181706110e-01 +844 -3.3324500987747538e+00 4.4834463542249194e+00 3.0038118364419502e+00 +3921 2.8590323418613345e-01 -4.7010078950805738e+00 -1.2188787958891081e+00 +64 -4.6689306118401959e+00 2.6006493905220407e+00 -2.8426480248542449e+00 +564 -2.2857752986224571e+00 3.2635146518138702e+00 -1.8205679572192126e+00 +379 -5.6384909796926337e+00 3.7036153549640192e+00 5.5963529606728013e+00 +426 1.5826000732000431e+00 4.3709970918174381e+00 5.6342355089059293e+00 +526 2.8978904637361631e+00 4.4246680512201495e+00 -3.7979851057723200e+00 +687 -5.1529165533239469e+00 3.6661912902138853e+00 -3.7580772214645601e+00 +659 -2.8864229365738034e+00 1.7555251961911400e+00 1.6382050057358810e+00 +31 5.7238348996909949e-01 2.8873855692384138e+00 -5.1228096192292787e+00 +3128 6.8047770706917801e+00 -4.7477690361846836e+00 6.2610654664304128e+00 +340 -3.8344191366444497e-01 -2.3922426638055589e+00 -1.7836598604674312e+00 +266 -4.0009790810624875e+00 -1.6670375975642576e-01 -2.0317503773107792e+00 +635 -5.6810541909093326e-01 -4.3394009679348144e+00 -1.8349166097708849e+00 +1011 -7.9620266836989251e-02 7.8556808624020951e+00 2.0526982012304629e+00 +272 -4.6036847638374692e+00 6.1249506614039806e+00 1.5492697537616056e+00 +2 3.3665521517191195e+00 3.5896892760544369e-01 1.2568860111644207e+00 +785 3.2703579122305988e+00 1.1178569654803139e+00 -3.5834147627475352e+00 +194 -2.8575354040700072e+00 -1.1200163872597176e-01 -2.3842330829068454e+00 +814 -4.5548241612528955e+00 3.1124296342913880e+00 1.4266994023687345e+00 +177 1.6266591947368633e-01 -3.0024877863040729e+00 2.2098035197417678e+00 +144 1.3425233965788601e+00 -3.6516097322451229e+00 -8.0367824893336026e-01 +145 1.3217644388549227e-01 2.3977079554311556e+00 4.3261119044333141e+00 +567 9.9120971119358625e-01 4.8910127516388817e+00 5.8081242858817470e+00 +823 -3.4677563959520139e+00 -2.5870953518854587e+00 -1.7592886791047062e+00 +387 2.7713538920933263e+00 -5.2064170105982122e-01 -2.4142468861341784e-01 +3579 -1.8814609691183577e+00 -1.4804829531521957e+00 -3.6143385916504531e+00 +767 -1.4490476085753030e+00 -9.8121902437290176e-01 6.4577247980517543e+00 +889 4.9157224063341127e+00 9.1790661283894792e-01 8.6370111834694594e+00 +700 -1.8181407090127033e+00 1.1463479679814121e+00 -2.2891921347908557e+00 +45 1.4394783754461971e+00 8.7396599462072455e-01 1.7624742287811064e+00 +820 2.0484051665255323e+00 4.1322970428325192e+00 1.4536848411184635e+00 +819 1.4035184842158661e+00 5.1906643024401455e-01 -1.2722718879896950e+00 +408 -9.7314579172167648e-01 1.2921452116182812e+00 -4.1982457798242558e+00 +856 -3.1550778013216413e-01 1.4768770376551501e+00 3.7387635314840728e+00 +421 -6.2742666474582496e+00 1.3401991493480838e+00 2.7279780871703654e+00 +251 2.3623356001299514e+00 9.4195143503018963e-01 3.7244981889111117e+00 +215 -2.3466857579799649e+00 -2.8551719723597917e+00 1.2719069192487964e+00 +77 -2.5708835153913405e+00 -3.9062789784464513e+00 -3.0432490387983879e+00 +478 1.6386132591701652e+00 -8.0999372789107209e+00 1.4276736343226375e+00 +642 2.9657932065515240e+00 -1.1275954381702038e+00 -3.9970708701110669e-01 +301 9.5189798010600279e-01 -1.2265766512865277e+00 2.7128882575486672e+00 +953 3.1260286470792100e+00 1.3989225093010198e+00 2.5584188639911267e+00 +821 2.6739026962738421e+00 -4.5900008063660475e-01 4.4176034781360896e+00 +442 1.2273072358159522e+00 2.4631781207328136e+00 4.5534316372525643e+00 +710 -5.9792883830121435e-01 1.0041646074760591e+00 2.2826199364644282e+00 +706 -5.9669806715010953e-01 4.3297204570382308e-01 -1.4284559587917691e+00 +947 1.9543939607591252e+00 1.4922485363569695e+00 3.0115014283770591e+00 +731 -7.9922126765065187e+00 -2.1085272429776998e+00 3.5759883346050749e+00 +29 -1.2865595864799559e+00 -1.8403110598760668e+00 1.7995770356400600e+00 +455 -6.9436799096644783e+00 4.5521215100474182e+00 -3.1924870550978599e+00 +839 3.6501798726759365e+00 2.5991822973793516e-01 1.9066274829160721e+00 +71 4.7786304493572995e+00 2.6492525258415416e+00 3.4469346137328966e-02 +811 -1.6959877388693103e+00 4.8376977743418657e+00 -5.0764808080009063e+00 +626 -5.4498972724599053e+00 -4.3209269379079283e+00 -3.2691935090449995e+00 +865 8.8333875646818494e-01 2.3679602407105977e+00 1.0402725960014603e+00 +341 6.4504839001930465e+00 8.2480919199456237e-01 -4.3841837074625756e-01 +826 -1.5918124981382862e+00 -1.2278171965264728e-01 -2.6245335356711363e+00 +793 5.3252644915741587e-01 -3.3046736147414819e+00 2.8287506857053728e+00 +638 3.2080269586977557e+00 8.2132514195624395e+00 8.4104123153045141e-01 +3680 -5.2565383617881734e-01 3.9979307643342845e+00 -1.3861797300590792e-01 +805 4.6340658965191066e+00 8.7202871705336760e-01 -6.3206835996291018e+00 +981 2.1244525206044145e+00 8.0019080318495472e-01 -1.8548198277779495e+00 +94 9.5620524383314953e-01 -3.5717278731782987e+00 -2.9147295960908259e+00 +711 2.5380854963169899e+00 -2.6576780790784773e+00 -4.1885830868671897e-01 +989 -5.4765816450110218e+00 -4.2961768429405396e+00 2.3012086918192085e+00 +875 3.3881710907819829e-01 9.7592023637463898e-01 -2.5431688497123166e+00 +383 1.4015893180475558e+00 6.1622534354511496e+00 -2.1625317910626851e+00 +736 1.6241489619897738e+00 -8.9658506057366172e-01 -1.4832487364637683e+00 +884 -2.2441754347394847e+00 2.1667592033183345e+00 3.5435701694392017e+00 +169 3.9625843970119998e+00 -5.4363911396352682e-01 5.4303646198242888e+00 +738 -4.6484224078073488e+00 5.7384113176479012e-01 4.1751712726942802e+00 +25 -1.5705270118703107e+00 -1.0868732553278433e+00 5.1956187065779975e+00 +583 9.9967795500872947e-01 7.6833415760354562e-01 1.2549325424366415e+00 +364 -1.9267403219662196e-01 1.8982940758817193e+00 -4.9687324992621951e-01 +3912 1.5524205453880320e+00 -5.6242654034436390e-01 3.6162509258299314e+00 +254 -2.2147852299144137e+00 6.3772860083986291e+00 -4.7705584353473167e+00 +225 2.6804016957393149e+00 6.8381591947304079e+00 -2.8867834269787016e+00 +290 -2.3680063821592934e+00 1.0287654943653073e+00 1.3390642009970459e+00 +117 1.6224537594985766e+00 3.8069268289381664e+00 3.9078515892192223e-01 +484 5.3139639370765721e+00 -2.8181336156180898e+00 4.1838330756365947e+00 +304 -3.5436263705310047e+00 1.1295169870661776e+00 -2.7392790512370285e-01 +591 -3.5811365956510275e+00 -2.4521326595385426e+00 -2.2815944483801726e-01 +939 5.8127824792329175e-01 1.1280363815328847e+01 1.9992311698107834e+00 +3238 -2.9122158371205273e+00 2.5531223845096562e+00 -1.2348019227195040e+00 +898 3.5836817143097326e+00 -3.0469670340514061e+00 9.3988317041571434e-01 +16 -1.3483103629620632e+00 8.5200495339214513e+00 -5.1186265510074094e+00 +3744 4.1964509689221616e+00 3.3292248522200285e-03 -3.1642139949878580e+00 +361 3.5014879544442219e+00 -2.3324557740964238e+00 5.2623384144960488e+00 +3939 -2.6346393385465299e+00 -1.7626026430650044e+00 -4.9437600923438457e-01 +281 -1.6146121887998206e+00 6.9042716047996491e+00 1.9187047224510667e+00 +479 1.3069989416982384e+00 -2.9002433634647122e+00 -5.8103311180281345e+00 +424 3.1299234888893662e-01 -7.4512042159281822e-01 3.3339118007062662e+00 +531 -3.6703134581556746e-02 3.7840088108018048e+00 -2.3377491106751025e+00 +964 4.3909059935543713e+00 -5.9057608116937421e-01 2.8267991162368045e+00 +438 -2.6597830521503294e+00 -3.1702411338672460e+00 -3.1827950642866036e+00 +790 -1.2718314476083030e+00 -1.4487319282921880e+00 -1.8402109364720716e+00 +696 -3.3102593214513734e+00 7.0567697272641206e-01 1.6526870403255850e-01 +3375 -4.5727207955160445e+00 8.8957415883120283e-01 9.0087934323236540e-01 +513 4.1673812646730610e+00 1.9171957176683292e+00 -3.9487192619287668e+00 +121 -5.1751081504399732e-01 -5.9360673095265568e+00 -1.0928114385518186e+00 +190 2.5757288322017184e+00 5.3844062473504231e+00 1.1034406380918655e+00 +396 -2.8595378417877639e+00 1.1049446937395258e+00 5.0507935782770264e-01 +43 2.2269976881488263e-01 -4.4241977264234826e+00 -3.1169185541476518e+00 +712 3.1970567947541895e-01 -6.3040000153042119e-01 1.1600575891095783e+00 +261 -1.6104285390044510e+00 -4.4292242036097068e-01 -2.2144591235927282e+00 +993 -6.0782942580991790e+00 -1.1475611356659057e+00 2.8253793068040545e+00 +550 3.0284566073713313e+00 -6.3555842853158140e-01 3.8029300497019131e-01 +969 -1.7720402542873234e-01 1.0025037837726687e+01 -1.2436309229514140e+00 +457 -8.1451313544577242e-01 1.3236877987497697e+00 -3.6428683047923189e+00 +509 -6.0907586898033053e+00 -2.9130444844585477e+00 1.2391788632584011e+00 +520 -7.3583792010152260e-01 3.6707142418772354e+00 -8.5735857643821578e-01 +529 -6.4934573018975623e+00 2.0059107620964181e+00 8.9291194690700393e-01 +161 3.5895106240597743e+00 -5.3632954505161825e+00 -2.0410404583313713e+00 +769 -3.2628898616852681e-01 -3.0399873942721451e+00 -7.0395749588343115e+00 +827 1.8508787250137837e+00 -2.8471989673978189e+00 2.6877797943098223e+00 +665 3.7803565444134164e+00 -8.2002418008712652e-01 -6.0753185528201934e+00 +557 1.9818699744736183e+00 -5.6426220453313447e-01 -5.2983450801230800e+00 +732 -4.2078810763884196e+00 3.6302956692208359e+00 -3.1369233565414083e+00 +485 -3.2404242850054796e+00 -3.3414206082169442e+00 -5.3960588513474486e+00 +482 2.7197773608406135e+00 -2.8245233526465561e+00 -4.2863842585806617e+00 +641 6.5327544459929738e+00 -4.7022609208391281e-01 7.2820968313076557e+00 +112 -5.1324281675976580e-01 -9.7042550928311844e-01 7.7458644007825983e+00 +402 -2.8155450649230569e+00 2.0628410839978142e+00 -6.0943970865982611e-01 +577 8.3701828907815401e-01 -6.7856661150686548e-01 -6.2325038630509466e-01 +535 5.0899605630785860e+00 -3.7364802574773459e+00 -2.4128029911161621e+00 +116 -4.9401365746605261e+00 -7.1427742216718548e-02 -7.3099547465778081e-01 +817 1.4086475783188266e+00 -3.4887897082845707e+00 -1.6938171284229171e+00 +766 4.9876325332817659e+00 -2.0987385687573208e+00 -2.5049845432636231e-01 +21 -2.4219570814394795e-01 5.8468985623127328e+00 -3.1550202336054651e+00 +410 4.6866906795073771e+00 -2.9671036209837149e+00 -4.5577503105875152e+00 +19 7.7936951264662979e-01 3.3151221693887694e+00 7.4266568031348412e-01 +411 4.2659913286738167e+00 1.5554666785007456e+00 3.5025104922562234e+00 +702 -4.7031717726281097e-01 -8.7799553638970407e-01 -5.6058052671094911e+00 +944 -2.0778749158992511e+00 -3.0737307682749262e+00 -3.1138128124646434e+00 +727 -3.0433354896664904e+00 -6.0315199617089066e-01 -2.5480389575696121e+00 +3158 -7.8081433267991649e+00 -7.2344255633175223e+00 1.2543960547003326e+00 +1378 -9.0305396635937218e-01 3.4999090840494014e+00 -3.0375421807851430e+00 +59 1.5176255508793848e+00 -6.9153140580836805e+00 -6.9307736246537148e+00 +661 -6.6197718426746137e+00 -3.0797645729641205e+00 -3.5655909916561495e+00 +747 3.1499596851791274e-02 -5.2100117251270479e+00 -4.5774959774210178e+00 +925 3.5456878685767297e+00 -4.1029710171556832e+00 -2.3860325321064613e+00 +111 2.5729634953211078e+00 5.3879228795520380e+00 2.9637352364859542e+00 +234 -4.8778237666987817e-01 -8.3973335260383120e-01 5.2758623542906102e+00 +978 -1.6815426937865361e+00 4.8097389140760587e+00 -1.8403584280042045e+00 +13 2.2718766660852889e+00 -2.4037729652528865e+00 -3.5731318881545695e+00 +563 3.7159765558356423e+00 -1.6135315397467105e+00 -8.9616942024369206e-01 +948 4.9106659216306943e+00 -2.7722291893624709e+00 -1.1760721905533118e+00 +778 -1.9335066157939464e+00 -6.0601898448985079e+00 -5.2632171874809428e+00 +500 3.0409990451252971e+00 -3.9781186233687733e+00 3.1776938637431051e+00 +982 -4.3920290533324398e+00 -7.2751275671254314e+00 -3.9921174066456371e+00 +3365 -1.2879987038220821e+00 1.8513627939347135e+00 2.6185784102661920e+00 +985 1.8159493000399485e+00 -8.8692420607175071e-01 2.2650943185131522e+00 +503 1.7487865526986839e+00 -6.5151504759445233e-01 4.2719038592475629e+00 +461 3.9044313031460884e+00 1.1435865027258778e+00 2.9856407533615226e+00 +677 -2.2775860165281009e-01 6.0578913649945179e+00 5.6665957076707130e-01 +556 -3.1894158785083611e+00 -6.2369764259261273e-01 6.7391359873471908e+00 +3458 -2.2967229698634490e+00 3.5874630235694777e-01 -1.2159711775125092e-03 +267 -4.5196856698721284e+00 -5.7460832130847295e-01 3.8781614548903551e+00 +533 -3.2242595616646224e+00 9.0174337181593858e-02 1.9481118435360036e+00 +469 3.6380465820762624e+00 4.9802522742491506e+00 1.2482105170423619e+00 +607 -3.3867499316156917e+00 4.3827618195850242e+00 1.3951611560458062e+00 +252 -1.5812720622796825e+00 1.0041681535821374e-01 7.1359077137916471e-01 +202 1.2643348739158311e+00 6.1629327912263587e+00 -2.2925541316082092e+00 +707 -2.8036487876349994e+00 1.0097355559203431e+00 -4.7462292138135598e-01 +48 -3.8824066488915454e-01 -1.7213876119503706e+00 2.0331927364082549e+00 +393 1.9144509945985326e+00 -1.0659748096591901e+00 7.5034202077249224e-01 +99 7.6897371426072425e+00 3.8202724653498579e+00 -7.6493363008356505e-02 +175 7.8641167149380997e-01 -3.2241779441195715e+00 -3.0852032157025815e+00 +548 7.1497766731276099e-02 -3.5346628153887889e+00 -2.1527959098720040e-01 +32 7.9008070619586396e-02 -1.0858846376783756e+01 4.6484792654045987e-01 +639 -5.9718281554920036e+00 -6.3064276051843748e-01 -6.8324936781074941e+00 +656 2.5737774039527515e+00 -5.2568816384118691e+00 1.5618517437027335e+00 +33 2.0400759757538043e+00 -2.1534517971597378e+00 -4.6120598929935728e+00 +260 -6.4990690450383797e+00 -7.9377919128038529e-03 6.3507573880271160e+00 +142 -3.0110981927095430e+00 5.5330146281281423e-01 -1.3812794677775508e+00 +3337 8.0121079569130382e-01 -6.3645905013200144e-01 5.3382915978976220e+00 +12 -1.9176750993951788e+00 -3.3843668676436356e+00 2.4154529801092184e+00 +4012 -1.6958583470827928e+00 8.1987058623380815e-01 -2.0878018621980563e+00 +314 2.1673450599603759e+00 2.7292668995699945e+00 -4.6437270856509700e+00 +233 3.1801486908566141e+00 -1.2832510737381209e+00 2.0056575870402210e-01 +644 3.2863140758712368e+00 -2.9947381918287905e+00 -7.7731050370085805e-02 +1026 1.2023428311437914e+00 -9.8738561065104342e+00 -1.0541305217313697e+00 +241 3.6373250684179683e+00 -1.9874685616703045e+00 5.0425443102897622e+00 +627 5.4040066192082916e+00 -2.4509620365432166e-01 1.9098450059962262e+00 +539 2.5521865451521153e+00 -1.9428089950715470e+00 2.6469368822081329e+00 +690 1.2677729719078725e+01 7.0224479111632130e+00 8.6439134005227702e-01 +289 -3.3751645531600283e+00 2.3431320473387740e+00 2.5915713551419955e-01 +230 1.1947027996035435e+00 -4.4855182844906478e+00 2.0716521937783305e+00 +1 -8.5627194055492026e+00 1.2947176194675116e+00 3.6762637943374150e+00 +849 2.6818198140533251e+00 5.2651109356564629e-01 -6.6998826167957626e+00 +602 3.6839616596653019e-01 1.0123335199069457e+01 -3.2962873450392247e+00 +528 -2.8558854397895062e-01 3.2710323117774935e+00 2.1920273981903113e+00 +285 -2.2492279478300863e+00 2.6210850567237252e+00 1.7108918628579133e+00 +634 -4.2298368213460469e+00 -3.2478510609743411e-01 -5.9095078808555730e+00 +815 -8.3998758099637651e+00 5.2751551101231851e+00 -3.1578630078425740e+00 +132 -2.0578794477153686e+00 3.0900990709346847e+00 -6.8745235140361360e-01 +288 3.2612885561177940e+00 1.9049023651665065e+00 -1.0731095483379893e+00 +237 4.6535425492729026e+00 1.8840940697708839e+00 -2.1709901350384295e-01 +723 8.6210687361241656e-01 2.3485966030784051e+00 4.8576095161415358e+00 +435 -1.5355493879324424e+00 1.5844658481807667e+00 4.2946132828484247e+00 +3500 8.5871494341233490e-01 3.2176193029086857e+00 4.0184954812666209e+00 +936 -1.2762206124193989e+00 1.1385925745818295e+00 -5.2911218804119775e-01 +325 3.9841878727740236e+00 3.5867375474374081e+00 2.9302096648744982e+00 +70 -1.7251379428790448e-02 3.8376466191858611e+00 -3.1410285454118712e+00 +930 5.0696693140779407e+00 -8.9213985688812697e-02 -3.6907441824301751e-01 +1265 1.7399183020516749e+00 6.2285919485539276e-01 -3.8258843755597751e+00 +868 1.4387179111269552e+00 2.9928588373728489e+00 2.7731493618100580e+00 +178 -2.9950992146201677e-01 -1.7709959320692278e-01 3.5383440183243935e+00 +1018 -1.7016273491395812e+00 -1.9845297396857975e+00 -1.1932045803067840e+01 +464 1.9572742466321251e+00 1.8354055046554303e+00 3.0775226226777290e+00 +992 -9.8319813371952253e-02 7.1445130933162648e+00 -3.0606469630948121e+00 +739 -2.1505693046076693e+00 8.3972865100608940e-01 1.3789265860838003e+00 +681 -3.6002986970978021e+00 8.1138082140384054e+00 -5.3203566651004781e+00 +3573 -3.3847422380161110e+00 1.0425876808424750e+01 2.5941803705777278e+00 +496 4.4106874496404309e+00 1.7919066299659503e+00 5.8548780782088699e+00 +955 -1.9331720237756951e+00 5.6983634703412356e-01 -2.8225169157246484e+00 +771 -1.2183516078384229e+00 1.2863470576826430e+00 -2.9381473743164677e-01 +804 1.3073590050174211e+00 2.4852044019777773e+00 2.9529392778199579e+00 +57 -4.2584856880303281e+00 1.5547891866744308e+00 5.1581502873305576e+00 +651 1.4880826013284145e+00 2.5975748008163531e+00 -1.6187971076196868e+00 +741 -5.1907937491738476e+00 -1.1871112260200358e+00 3.3840638154159042e-01 +604 -9.4305918365589458e-01 4.8357656517233760e+00 -1.5852117286016545e-01 +883 -7.2729848685928422e-01 1.4674523912719033e+00 -5.0286613066838060e+00 +952 -6.7733210976963116e+00 -8.6776392792614387e-01 -2.6894110738452159e+00 +843 1.4281960508548355e+00 -6.1936275131097887e+00 6.1296059251973123e+00 +188 -4.3306752046667757e-01 -2.7822705839987738e-01 1.6360520389217881e-01 +760 4.5153133071404250e+00 -3.4974871912839139e-01 -1.0675565464554899e+00 +941 -2.2180138035109076e+00 -1.6810051753369535e+00 -1.1331399239878761e+00 +618 -3.7330738571515596e+00 1.1081265339222002e+01 -3.1390846789798905e+00 +118 -9.4209907084738944e+00 4.6344051805001270e+00 1.6588704020059470e+00 +664 -5.6637041810804645e+00 -7.7891380090527831e-02 -9.3912614423494911e-01 +278 3.2516828547546814e+00 -3.1500142689945376e-01 6.2809586790440985e-01 +218 5.0822964669616528e+00 -8.3432555483885520e-02 -4.5091436972270166e-01 +406 1.5609062112201513e+00 3.5667647702493350e+00 -3.6980450114690333e+00 +834 6.0285984611674328e+00 4.5644701623061108e+00 -6.5146864871273935e-01 +222 -1.9421526101297759e+00 -6.7693962380791186e+00 6.4906323534969514e+00 +139 1.9860332446227340e+00 -2.3184766906775880e+00 4.7791165888673843e+00 +199 -2.1626303391886399e+00 4.3552950503886638e+00 7.9489406579997091e-01 +584 -2.9329320614106837e+00 5.4906226154413351e-01 5.8925208145023218e+00 +280 -8.6841311481571228e+00 -1.2833197883390490e+00 3.5334377173030669e+00 +640 2.7936192949143246e+00 4.2623037311645158e+00 6.2699166421128139e+00 +181 -1.7803275419578983e+00 -2.1189523302957327e+00 4.3577478398280025e+00 +552 -9.5235598363602403e-02 -4.5401393449709504e+00 -5.6569104403184651e+00 +749 3.9407015112188351e+00 -5.4832597347003933e+00 -2.3402500348461419e-02 +837 3.6645552223369320e+00 3.0028732987429012e+00 4.4913963006199067e+00 +676 -2.1410803995596647e-01 2.8674388285343730e+00 -1.5545235609951258e+00 +1682 -7.0631113845978177e-01 -1.3545717417243255e+00 -9.6894413859040351e-01 +851 -1.1393720594299308e+00 -2.6983969922494222e-01 7.4925378668957587e-01 +130 4.0617252882945643e+00 7.7184605279547167e-02 -4.5819918170455054e+00 +729 5.0936550625832009e+00 -2.5579249815945131e+00 -4.3227323668482692e-01 +861 -8.7712172393833594e+00 -5.3415107581211607e-01 -5.2849389419363595e+00 +168 -5.9594967311303948e-01 -8.8066228232473733e+00 3.1150190632845129e+00 +855 -3.7229883585321955e+00 -5.3315333185951079e+00 2.4674227845631433e+00 +517 3.0508202845344607e+00 2.7438058512032764e+00 -1.1337317690301565e+00 +450 2.4528277926701225e+00 -4.5164313388041384e+00 -2.0110129900238825e+00 +698 2.3064760924314553e+00 -1.2917081721429697e+00 2.1709487658821227e+00 +81 4.1357309240488256e+00 -2.0328064110590556e+00 3.6228147971423491e-01 +927 -2.4927675988002624e+00 7.3527831532670733e+00 2.0494568006255154e+00 +776 -2.1978881048736825e+00 -2.6173084856527655e+00 4.1606211494776091e-01 +74 -3.4779374087497922e-01 -5.7590232545172793e-01 3.1469908343942787e-01 +994 -2.4980702090545561e+00 9.1728723427791925e-01 2.3634621380624479e+00 +263 6.0060753902348862e+00 -4.2810858869127311e-01 -3.8525473132923577e-01 +959 3.4172067293082180e+00 9.8390463012400686e-01 1.8488305114310395e+00 +1007 -6.4552480349291474e-01 -5.4645120979580297e-01 -3.0427369580605226e+00 +302 2.3267358033431065e+00 1.2615919564542770e+00 -1.3913529594411893e+00 +646 -2.7606207298248364e+00 -1.2347797270755625e+00 3.8377313685543074e-01 +892 -5.0074033085527381e-01 2.6499829376821911e+00 -9.7218790395324639e-01 +553 -5.0066756763842220e+00 6.2442222075755693e-01 -8.9932899817995604e-01 +933 -3.3105402092647420e+00 -7.9116018105023589e-01 -3.5254411526265219e+00 +596 8.1265665675143584e-01 -4.2254745016760014e+00 3.3183193501172242e-01 +159 -2.3116888813082626e+00 -5.7369162613726958e+00 1.4444551770194454e+00 +920 -3.4986550465178357e+00 -6.8378231622618535e-01 -6.1622002455911751e-01 +433 4.4002700331477023e+00 5.4556160496066655e+00 -3.5977046453340318e+00 +1490 -9.7189684818277700e-01 2.5070879879566816e+00 5.1778515586761147e+00 +221 -8.1006243339955641e-01 -1.1836549143353807e+00 4.0521830996001507e-01 +417 -1.9328403628603028e+00 3.8037062381242728e+00 -7.5820368250341486e-01 +133 -4.0136887855280969e+00 -1.0376969436695005e+00 -9.2652326135973162e-01 +693 -4.8466981788753101e+00 3.3513338167975846e+00 1.6530905682328331e-01 +678 3.7060512971000783e+00 5.8320607833132216e+00 -3.2478441769094006e+00 +394 2.7288519099730211e+00 -3.1428499760707290e-01 2.8432352234376554e+00 +917 5.3137461766871859e+00 5.4152473905740734e+00 1.9320563064572354e+00 +846 -4.1364548189491019e+00 2.8284242459775171e+00 2.2253562291679847e+00 +146 -8.4423846340801383e+00 5.6698830177403821e+00 -6.3155266144152273e+00 +23 4.1497019362923711e+00 -1.6434915918538318e+00 2.7945835714906736e-01 +41 2.1216587994932190e-01 1.6117707283568699e+00 7.2636870781902418e+00 +866 5.5011742850291547e+00 -2.0855094250010020e+00 -4.1116090260837197e+00 +498 -1.8499917719965446e+00 2.7856586968218666e+00 1.9548904990822329e+00 +101 3.1152893827452437e+00 -2.6585380952133475e+00 -1.1282644980383483e+00 +540 6.3493810526793286e+00 4.0332547983514768e+00 -6.8290273259148149e-01 +887 -4.8987417211604800e+00 3.3480980747062663e+00 1.9465994585834590e+00 +792 5.9558506656797205e-01 1.0748890206071200e+00 -2.1186019460036478e+00 +753 4.1895577683376013e+00 4.2273430530588918e+00 -4.3971097988099093e+00 +320 -1.8220634173372338e-01 -3.7673279739798384e+00 -1.9364085009782097e+00 +530 6.5256582539077068e-02 -4.3450633380077193e+00 4.9868829945838939e+00 +353 -1.4944559606273764e+00 6.1332359757474286e-01 2.3528048712676775e+00 +92 -1.7424219317393776e+00 3.9936321529334551e+00 1.4940921194524481e+00 +547 3.9751043704911089e+00 -2.5048035409945546e-01 -1.3981087558413556e+00 +335 9.3029004001638849e-01 2.9372888227796903e+00 5.0355534359901111e-01 +570 -5.6670132170623724e+00 3.1857180118164936e+00 -3.8751591877552265e+00 +3542 -2.5287867061057967e+00 -2.9325410782610346e+00 4.5139225230425275e+00 +419 4.4459926531778482e+00 1.7382064833195437e-01 4.2177717663836427e+00 +93 -2.3359495442609339e+00 5.7620598502641212e+00 -2.0417999060845511e+00 +871 -2.0776443389990864e+00 -1.7880192396077359e+00 2.8398742162069492e+00 +581 -3.0098116747201537e-01 4.9087370050044099e-01 3.5671899648872527e+00 +149 -3.2690267951359253e+00 9.8912017232513871e-01 -6.2832683029893799e-01 +586 3.8988618462844093e+00 2.9204183597381301e+00 -1.2657851824543442e+00 +573 -3.7001130995161531e+00 1.4122117599762118e+00 -6.0069393997834704e+00 +971 -3.5918433233504992e+00 1.7534553130630892e+00 -8.4259268677296415e+00 +777 2.2969514139547300e+00 1.5596839689242474e+00 3.3323250149786525e+00 +937 -3.0912539523598155e+00 -1.8544596171128103e+00 -4.2142520545739268e+00 +983 -5.8100302563798136e+00 5.8999348418211772e+00 3.1708474888379206e+00 +491 -1.2804965713620680e+00 -6.1730185947300154e-01 -1.7416238991432145e+00 +768 8.6047877919020521e-01 2.8438215807208800e+00 4.0607374751163894e+00 +141 2.4419846483410579e+00 1.0997972943114325e+00 -3.9223396935577544e+00 +828 8.2796320436604951e+00 -3.0146048479779455e+00 1.4217823061428985e+00 +401 1.2158579553258095e-01 4.4877489050299264e+00 3.2753079030228394e+00 +243 2.3355271728148930e+00 3.8239985311832991e+00 -3.8714443609317539e-01 +46 2.8039037072707966e+00 1.9878651984044478e+00 1.7423353026177275e+00 +691 -1.0323118559810718e+00 2.2529647957097403e+00 -2.0119747877948110e-01 +838 9.1616432927675961e-01 -1.0942639014629947e+00 3.2622536988473070e+00 +914 -1.7839060281925114e+00 -3.0683048773556931e-01 -1.3059042422572198e+00 +3954 -2.7304870826104350e+00 -2.6310404927285194e+00 5.6970806578308011e+00 +220 4.7278732986600378e+00 -1.3031974731611280e+00 3.9027553500195167e-01 +779 -3.8472168378736065e+00 -3.6022034878074551e+00 -1.9009225158161385e+00 +187 -7.8990344937937618e-01 3.9999810321772373e+00 -6.6286295158403794e+00 +346 8.4425664835834513e-01 3.6713140948672489e+00 1.6826764965499270e+00 +253 1.6832108131189922e+00 1.7165618665873934e+00 3.3414711109256912e+00 +616 -3.9627818476414047e+00 1.1069376457017350e+01 2.0752461559594404e+00 +579 7.9031631133964906e+00 -8.5040475440101559e-01 -9.9631913489444635e-01 +134 4.7954785312698816e+00 3.3451963120460544e+00 -2.9024849709159817e-01 +1395 4.2825491273415256e-01 7.5349872525113482e-01 7.8989344340961534e+00 +382 -2.2599064610713623e-01 -7.3968421366695056e-02 5.1755581525123073e+00 +371 -1.8597680077948975e+00 2.1810468278893040e+00 5.6530551823497097e+00 +334 1.8385963662189442e+00 -5.4544456763921279e+00 -1.2347270416292551e+00 +508 4.7301335398949558e+00 -7.0388993555108677e+00 6.6433320634735482e+00 +774 4.3035599082165463e+00 -6.9165706294808518e-02 3.3938464234924998e-01 +1009 3.4722133816493499e+00 4.4271838708872782e+00 3.2403350374656275e+00 +523 3.3919290394890118e+00 -1.9035433949756664e+00 -4.7864805517142468e+00 +782 8.3957549781861029e-01 1.6986415215201449e+00 3.2075012250682988e+00 +153 4.0840851227747993e-01 -3.1445179990150782e+00 4.4144909416464406e+00 +366 2.0177042532137628e-03 -3.2336546963404191e+00 -2.8593922566101421e-01 +799 1.2829208524617093e+00 2.8492920307227143e+00 -2.7735852437440727e+00 +572 7.4666294413345078e+00 3.9146374278327225e+00 -7.6206641790895402e-01 +375 -1.3322565462945759e+00 -5.4679630054548745e-01 4.0819706537064153e+00 +337 8.3200805258492228e-01 4.7035085403941972e+00 -1.5973932332731342e+00 +603 -2.6910375174271159e+00 -1.2423100952396160e+00 -7.3359707376797456e-01 +274 5.1400396446714368e-02 -1.7172850224612830e+00 2.7240446664575069e-01 +1023 -6.8725156785957231e-01 2.8688632159439504e+00 5.2413138124695298e+00 +39 -3.8954164750390983e+00 4.4839675242143668e+00 -8.2974668931377380e+00 +781 -4.5286945195059669e+00 -1.4777154517836993e-01 -8.3959558230172959e+00 +210 -1.2425321017438207e+00 -3.3503053445575565e-01 -4.4698544435710552e+00 +869 -4.4727735603791414e+00 5.1417932648223523e+00 2.5343164642977933e-01 +589 7.8090403012856102e-01 3.8686907848217528e-01 -3.7318920766034430e-01 +942 2.1442655264685087e+00 -5.6117617845036465e+00 -3.2875100457219375e+00 +580 -2.2121940018517781e+00 -4.5015267792247654e-01 2.9623673592225903e+00 +918 -1.5796452550401441e+00 1.2831307843661275e+00 -1.8506586169113196e-01 +510 -4.4609176589328738e+00 -3.6198955017525813e+00 3.2463173626542554e+00 +242 3.8475751751563758e-01 -2.9085168074205736e+00 -2.7169804899618963e+00 +174 2.3403423207868399e+00 -5.9201548713807099e+00 -6.2576537682696260e+00 +794 -5.1277643508637798e+00 4.2978142579120715e-01 3.9094195907378175e+00 +297 -2.0226768539669195e+00 1.4493112755383459e+00 -8.9355852924620454e+00 +1013 -5.5556567279031750e+00 -2.6999337711568892e+00 -3.4805285103005148e+00 +668 -1.4656756141340471e-01 -9.4594571227570334e-01 -6.9869883928893186e+00 +615 -1.9793835136107949e+00 -5.5368646147320479e+00 1.8603067351047242e+00 +17 3.9605887549541992e+00 4.7231822689571210e+00 5.9898376510457965e+00 +872 -1.8450226517380972e+00 -5.4569425174219246e+00 -5.3480845467444715e-01 +1024 5.6695840123897039e+00 2.4323387812761785e+00 -8.5958319567174468e-01 +1218 3.8404555244948591e+00 1.3663131225394263e+00 -1.7401146930832507e+00 +363 -2.8107649628950084e+00 1.0415523153182520e+00 -2.5360844447368422e+00 +896 2.1648050512183779e+00 -3.5618603687209287e+00 -7.5107250360863176e-01 +938 3.2189752853732214e+00 -4.6695082550465461e+00 -1.4864708076046565e-01 +368 7.4227073100093910e-01 -2.7632517800452044e-01 3.7443571214077531e+00 +565 -2.3900307345927074e+00 -1.1694903280485920e+00 5.8972891981519404e-01 +66 4.5223786063917029e+00 4.8384279139932875e+00 -4.4467116232191399e+00 +189 -5.9547230105754978e-01 3.0776217355164559e+00 -4.5119007493820220e+00 +483 1.2176627557164086e+00 -1.2301854478825808e-01 -8.8891927229708845e-01 +296 1.2244757131350665e+00 4.1157796909631256e-01 -8.5589609969153602e-01 +271 -3.1562224640809156e+00 -2.9010532755729206e+00 -2.3197155854787939e+00 +534 2.1478252898794903e+00 1.7207499738984078e+00 -6.4554584356819813e+00 +745 6.8933837718347819e+00 -2.0920585127436295e+00 1.0918582270477446e+00 +430 8.0562993279058237e-01 -7.1806159679490165e+00 -4.1186574961085363e+00 +787 1.9323027738469636e+00 5.4506684364262989e+00 2.3626446400058150e+00 +645 2.8924765563794391e-01 -1.4504582263734780e+00 1.8451921124451494e+00 +744 1.9591294730603559e-01 3.8866505911852047e+00 -7.6766591132496407e+00 +633 3.3243798760363097e-02 -2.7366557956569872e+00 1.3095130638392747e+00 +352 3.5309458858772667e+00 1.4540073107537590e+00 -5.9441179198126699e+00 +904 5.6976436742021450e+00 5.2460203484241035e+00 3.2445636037672645e+00 +649 6.8225093753265120e-01 -6.2884629974851025e+00 6.0221400158065448e+00 +619 5.2959020065504232e+00 -5.8914279372299490e+00 -2.0630179662623456e+00 +997 6.1259135813633270e+00 -4.5766209231429607e-02 2.3286626295060437e+00 +429 -2.3572578147272867e+00 6.3061455841885466e-02 -3.0419313133817090e+00 +965 2.7321255057281406e+00 2.5756979043866477e+00 3.1293044225608537e+00 +299 3.1165733639538327e+00 4.3584510464196109e+00 -3.8566625078004368e+00 +960 2.8842742142108615e+00 1.7880165101876142e+00 5.0734992575811502e+00 +963 8.3169679780016228e+00 4.3941216374118435e+00 2.7682630670698036e+00 +196 1.0936885242400756e+00 -2.4268359239651107e+00 1.7088856778242372e+00 +270 2.3790163299101854e+00 -1.2343851472456198e+00 -3.9259053669077804e-01 +560 -1.2254387615991016e+00 -4.7520836447013792e+00 -2.5323370629507309e+00 +612 -1.9784446816043415e+00 2.8028945256173041e+00 -9.9249089985437300e-01 +1006 1.4557468116910390e+00 5.3899968897662012e+00 2.4032023654712860e+00 +1012 4.4307588744223754e+00 1.3979529496384435e+00 -3.2269412159314220e-01 +800 -3.0941558591698017e+00 2.7967991059234459e-01 -6.4133087308364933e-01 +257 5.5086802135093560e+00 -1.5746558037422884e-01 -6.7948035747241420e-01 +182 -1.0587077068020145e+00 -1.8519487660642681e-01 2.0048556868907204e+00 +458 -1.6931304273649019e+00 -3.5742508173631622e+00 -1.7101703042396652e+00 +390 -3.2191203815370004e+00 8.2655786987720603e+00 2.0226455492798783e+00 +551 -1.8900343714094834e+00 2.1817599741335298e+00 -4.5646742806255052e+00 +537 8.0879615864804215e+00 7.8361544107589032e-01 1.9309451336086358e+00 +600 -1.7200564148854167e+00 -4.2714887805626329e+00 -8.7973515238182802e+00 +191 -4.1011508327847350e+00 6.9980102706076908e+00 -2.8829599897193892e+00 +674 -3.6429102768046109e+00 5.2980168433644108e+00 7.1836288650215447e+00 +416 3.1702658759752329e+00 -4.5322262591396205e+00 -6.0069183411380977e-01 +949 3.7673221421593284e+00 2.6618858959116443e+00 -1.3668424764800020e+00 +336 1.6451325851715588e+00 -3.7164883658471082e-01 8.7545399973928795e-02 +881 3.9926259700706512e+00 -6.8119628165142299e-01 -3.5635549635621406e+00 +95 -2.3056016339901042e+00 5.8186050418011961e+00 -2.1111279116626385e+00 +381 9.1210300481828810e+00 -2.9504330872496061e+00 -2.0224312867802450e+00 +239 -2.6007646953502439e+00 2.1166260139271378e-01 -1.8339625485977444e+00 +84 -6.3725931695379572e+00 -2.1762079630628479e+00 -7.3797933048110371e+00 +813 1.2473618807585083e+00 1.3608277350374653e+00 6.2999871481419101e-01 +305 -3.0510208619796160e+00 -3.1099756074408440e-02 -1.5217684192766521e+00 +324 -6.4587207128665831e+00 6.3753045382699431e+00 -3.7333821611920452e+00 +277 1.4164025415105728e+00 -7.4385760997968911e+00 -3.5346200379758269e-01 +1000 -3.5822856895072896e+00 3.0535921022100303e+00 6.8542523799483668e-01 +259 -3.8062997857572817e-01 -3.7247283652193236e-01 -1.9700413238163148e+00 +38 -2.0921318821346353e+00 1.6192624582719608e+00 -2.4057081925098838e+00 +380 -4.3573177248841510e+00 -3.2841880068854565e+00 -6.9755409682604546e+00 +124 7.7185242987876856e-03 -4.3361896080074027e+00 -7.0616108058013927e+00 +977 -2.4226420193032605e+00 3.2935596333699735e+00 -2.7946503943565091e+00 +919 2.9010755282474932e-01 1.6910327149515647e-01 -9.5085092061006560e-01 +758 1.2063642414608136e+00 -2.6824440492151358e+00 5.5850703187634982e+00 +351 -4.3329351452675873e+00 -4.7789808132400813e+00 3.1056188510439440e+00 +467 -3.2749991188671412e+00 -1.2591675407469296e+00 -2.7134834883909988e+00 +311 2.9101018748000027e+00 -1.2323831970292176e+00 -2.0211960969623584e+00 +201 1.4183781608041128e+00 7.2775065447362675e-02 -1.5191882469940778e+00 +536 -9.7591174635337929e-01 4.7961515266297710e+00 2.2269964615659466e+00 +682 -4.7200177871681886e-01 -2.2107328716570365e+00 3.2781810190047707e+00 +862 -3.7456747920301914e+00 5.4007553862858213e+00 3.2428727742220906e+00 +150 -1.6930507288804852e+00 -2.4341260172674488e+00 -2.7574502521308828e+00 +436 -1.1472559242952092e+00 -4.2285070321149432e+00 -5.8880917554399419e+00 +192 -5.5198808130947762e-02 -3.0002491200288723e+00 4.8431416092913177e-01 +648 1.1097921348521242e+00 -3.0172214908428314e+00 3.9771480557082257e+00 +198 -5.6372196042470568e-02 3.8868813387339909e+00 2.3930876426470471e+00 +841 1.7921804859931092e+00 -1.6669717061633310e-01 -2.7947417399467653e+00 +470 -1.0752636264866474e+01 2.1246989788429964e+00 3.2450109143659769e+00 +905 -1.6854643383787486e+00 3.4144742799534726e+00 -2.6578327691568665e-01 +956 -6.9774729100214983e-01 -8.4415224310806138e+00 2.0587982842960812e+00 +15 3.0232053159631493e+00 -3.0733070115234318e+00 -4.6179516654644992e+00 +924 -3.6400242052808864e+00 2.6555088717314179e+00 -5.0968798061086620e+00 +622 -4.1212822617707205e+00 -1.9331467070803932e-01 1.2124073421941655e+00 +413 -7.1488005935724708e+00 -1.2348479641146983e+00 -1.7783268549553402e+00 +504 1.0603602098763996e+00 -2.4919825202438837e+00 8.1618580167531052e-01 +685 7.7275802630148069e+00 -6.0707897984679260e+00 -3.5074542545331493e+00 +643 -2.1142208920469838e+00 -1.4188569075530311e-01 4.7173001434580975e-01 +331 9.2996875901661511e+00 -1.2844021912357564e-01 2.7065417677165802e+00 +1002 -5.8396947824453314e+00 3.2374790139187990e+00 -4.7847106121783662e+00 +788 -9.8360543797048783e-01 -7.1083192964428532e+00 -4.6809968029413378e+00 +499 -4.5541379315672520e-01 -1.2179984074469625e+00 -3.3585034114839041e+00 +667 1.8203567237075600e+00 4.8733062272499463e+00 -4.8191802408878965e+00 +303 5.7541001723625360e+00 3.1019979971740881e+00 -3.2455852596230192e+00 +931 -1.1886482900234405e+00 4.0126947932591568e+00 4.2729287018067925e+00 +684 9.6666972274298057e+00 -3.4457343658827879e+00 5.3199418108961227e+00 +486 1.0952309256837269e+00 -5.8030375484695074e-01 3.9173947664766695e+00 +657 7.1173408418848705e-01 7.6095307605709239e-01 -4.5471169330371053e+00 +1019 -1.6121541134308974e+00 4.6080769851625520e+00 5.2000105563584631e+00 +713 -2.3217100898584064e+00 3.7975023094314522e+00 -2.1179447328847161e+00 +980 -1.3040264359073093e+00 -8.0546938257733007e+00 -4.0882326350904030e+00 +666 1.8290931203752341e+00 -4.1042877740990122e-02 -6.7056461855680567e+00 +975 1.7094288660587136e+00 -1.7566709249705745e-01 -4.0241237898332667e+00 +34 -1.5466637892065211e+00 -2.7844539792612383e-01 -7.4165027852892340e-01 +129 6.9872867658619009e-01 -2.9055966444666650e+00 -4.3793424027951930e+00 +801 1.8012915638107692e+00 -1.9552662124538061e+00 1.9717443949231162e+00 +440 -6.3414145351266633e+00 2.6910434024661631e+00 -2.4795421734732912e+00 +451 2.0854239578439415e+00 1.7221145729482610e+00 -2.7117339352826098e+00 +1016 -4.2729933316680073e+00 2.2955174077237706e+00 6.5546727625677026e-01 +466 -6.8487820412373812e-01 2.7994145783216178e+00 1.9610264308067060e+00 +1267 3.2797196428209219e-01 -3.2738628978091473e+00 -3.0561228067637272e+00 +275 4.5191421551757198e-02 -2.2697185132741988e+00 4.6879197790720841e+00 +990 3.3477597593476668e-02 -2.8066437018963706e+00 1.7447103869303626e+00 +765 3.9195388520557102e+00 2.8667495327450756e+00 7.1230704443133890e+00 +367 1.1659351366267439e+00 -8.3012283790404956e-02 -1.7914067876502919e+00 +216 7.9416366303509847e+00 -2.3862530658265491e+00 2.1396367164199628e+00 +184 4.1972161204165044e+00 2.0707990767667508e+00 1.5287195997260536e+00 +695 4.6189921634534308e+00 7.8030868332294920e+00 -3.0978942222351544e+00 +946 4.9486571694963395e+00 -7.8410169571504873e-01 -9.8224197314486783e-01 +874 1.7466132669938736e+00 -4.6202569911728020e+00 -7.7539619910043136e+00 +527 -7.9214393107169079e-01 1.7879748049396393e+00 2.1323495231161447e+00 +284 2.1163557794895853e+00 -5.1341896684660415e-01 -2.3369133560727349e+00 +512 -1.0863657850552739e+00 -4.7484438805806706e+00 3.7092687771855135e+00 +541 8.5246339563854896e+00 -6.1709793712474292e+00 -8.1200870765958175e+00 +803 -1.6316981198973073e+00 2.9947644689694757e+00 4.2187889859619379e+00 +427 4.2193346539388559e+00 -3.7815361285885540e-01 -2.2628690905467863e+00 +1021 -1.8568055655805435e+00 -1.7269602740145369e+00 -4.7078048626978211e+00 +521 -1.9962829167306226e+00 -3.0705124458494732e+00 3.7189514697476369e+00 +389 3.6134293248962881e+00 5.3132742027231554e+00 4.8022297802779450e+00 +1428 1.7402605495589751e+00 5.2645531473807967e+00 -1.1645295389591857e+00 +663 1.7785166415833913e+00 -2.3366058002583903e+00 6.1054210764084029e+00 +755 1.2947244472804333e+00 -1.5765093979606688e+00 -6.3970786220160845e+00 +37 -2.1173256005721428e+00 3.7472618052056448e+00 3.0999335627498641e+00 +899 2.2030550330890133e-01 -1.2324597938565721e-02 3.6251564586060985e+00 +762 5.8333607735000559e+00 -4.6160138138361866e+00 -3.8890711063555958e+00 +138 -1.0969651089447874e+00 5.4113367061255779e-01 -2.4404301767141282e-01 +102 8.3393918005643955e-02 -9.8957660018885285e-01 9.6739199156084074e-02 +576 -1.6799062175600030e+00 -4.2706526545450290e+00 -3.3332485208324623e+00 +808 1.4149426545036496e+00 2.8349281931010544e+00 1.9684695332070388e+00 +518 3.8535621705436394e+00 1.6260979207142445e+00 7.1601593370177774e-01 +24 1.9049728561203820e+00 8.6541802324992789e-01 3.6678116529585467e+00 +3130 -1.7432013486043936e+00 -3.0658359106967339e+00 -2.8071596918261993e-01 +900 2.5288220049434544e+00 -1.2744195833995140e+00 2.3688511613428904e+00 +54 4.1726659595916287e+00 -4.6436995253306916e+00 2.8609763600447855e+00 +593 -4.3601974679442351e-01 -7.5891197818225580e+00 -1.6106040946723583e+00 +505 2.2913615028423160e+00 1.3481539197404997e+00 9.5582133625412369e-01 +155 1.5943881856876292e+00 -5.0119561373376449e+00 -1.9275318738198793e-01 +611 3.7597601631293407e+00 -5.3238205023194087e+00 -3.5057600193538119e+00 +128 -7.1996466245808965e-01 -4.6533674063837932e-01 1.0775350344107641e+00 +262 -4.7158873206481040e+00 -3.2774382958456454e+00 -3.4314049252932937e+00 +163 1.2564170848268690e+00 3.1907947878583158e+00 -6.3273045984737031e-01 +26 1.3715850050491867e+00 -7.0202256114470715e-02 -5.8522539753203011e+00 +783 -1.6482269102103975e+00 -6.3570766424137259e+00 -2.9277098788701408e+00 +923 7.8211365856123594e-01 5.1658101255679236e+00 1.1288495715414150e-01 +652 -3.0558854050802836e-01 2.8938601711548428e+00 -5.4694125632014199e+00 +91 -7.7336326292633673e-01 4.1359325043485944e+00 5.1123545614475638e+00 +569 -4.7036395784458618e-01 1.0483352024829564e+00 -3.9263800946113783e+00 +568 2.4974346964453904e+00 5.8341675592668496e+00 3.4418460519139686e+00 +448 -1.0742315446976840e+00 4.2902591568680712e+00 -2.9722492864667629e+00 +915 -5.1096079080757368e+00 -1.8154619112767647e+00 2.6298867975857781e-01 +1014 2.4050674496593087e+00 2.0165086650380375e+00 -6.9235648626574307e+00 +28 -4.3838301719380874e+00 -2.9017381747477722e+00 5.7432558998088812e+00 +718 -2.7686432277396329e+00 7.2002620343380661e+00 -4.5417535961668456e+00 +348 4.7604721853877949e+00 -1.0285741901083176e+01 -7.3394745225599030e+00 +1001 -9.6096255846312051e-01 1.8025960342129566e+00 -2.5883925199380942e-01 +330 -3.1672033923289518e+00 -4.3949994015174694e+00 -1.0105175858846643e+01 +812 -4.5914737050258907e+00 -3.4785989546687963e+00 2.3480000830664247e+00 +594 5.4293986378965844e+00 2.3597223692070646e+00 -3.3030185383907948e+00 +746 -6.7117126080948164e-01 -1.6952696809600041e+00 -2.7347581847427271e-01 +10 7.9611959044710812e-01 2.3586738360186141e-01 2.3554473123479998e+00 +127 -1.9368207712977510e+00 -4.2105063980028721e+00 4.1007506474229150e-01 +1491 -6.0145453947015213e+00 -1.8665301740897307e+00 -5.8373709943491736e+00 +545 5.2247030646693082e-01 4.2665632711917700e+00 1.3998362509948890e+00 +292 -4.0100647013546560e+00 5.5432078282366968e+00 2.7346552406222049e+00 +55 -5.0331755496940866e-01 -5.1474479997796809e+00 2.2840534818463696e+00 +506 -5.0878198172812432e+00 -4.7439472857676357e+00 2.5576916458015071e+00 +185 2.0061587083246031e+00 6.2832161267561277e+00 3.1202676439606316e+00 +392 -3.3730725343634682e+00 9.5308651948620438e-01 -1.6155721123915558e+00 +908 -4.2134722296771123e+00 -4.2309373932872774e+00 -1.5859874475395306e-02 +107 -2.3022095285110082e+00 1.4988145835968358e+00 -4.0114296992373166e-01 +756 -4.8590692491013743e-01 6.6059442704321669e-01 6.5942157943446400e+00 +784 -1.5203877167362685e+00 5.4245727910037178e-01 -4.3511800060796735e-01 +83 7.1765056063207155e-01 6.6391193571455731e-01 -5.0006201687407801e+00 +797 2.3749421201267453e+00 1.2291488011682137e+00 5.1943794891674759e+00 +909 4.5040762483701400e+00 2.1502304004670973e+00 1.0252202104148389e+00 +3787 -1.8008080999472098e+00 -2.3848480128447944e+00 -3.6694257800425689e-01 +830 -2.9761785095129873e+00 -8.1063744746951294e-01 1.1191689758471219e+00 +176 4.3886373357548498e+00 5.8928420058947184e+00 -1.2738667508461754e+00 +273 -1.7720657824357537e+00 2.0140074957663949e+00 4.0687819522994495e+00 +795 -2.3129156074529651e+00 -3.9729141741923848e+00 3.5461271562619773e-01 +546 -9.0810024137811762e+00 2.0539211092743432e+00 -8.4861531921369393e-01 +404 1.1607335740774860e+00 1.5482015707280925e+00 6.7056510393656863e+00 +327 8.9334164177275799e-01 1.6115506370120953e+00 5.4657215557321210e+00 +309 7.5086537666277060e+00 -1.7509341793599900e+00 -2.2570526357365956e+00 +587 5.6373266082939255e-01 -8.1224803452058958e-01 -2.8154679753556999e-01 +362 -4.3553683856468552e+00 1.0601216910593369e+01 2.2611832990075009e-01 +344 1.0690793758016139e+00 5.7623820635021961e+00 3.3162308442090986e+00 +232 -5.9701050105248239e-02 3.0768930609163818e+00 -5.8710762259173954e+00 +160 -2.9597831938389252e-01 -4.4960862843463030e+00 -5.4104090058094974e+00 +286 -2.3848210424854184e+00 -6.9004353039074218e+00 2.3276632591900857e+00 +3585 -5.6992646772088209e+00 -4.8206437416682553e+00 1.5579614151452652e+00 +385 -1.5902542213831139e+00 -2.4152447075527914e+00 -7.2997716835118158e+00 +358 -3.1014764829277336e-01 1.6772603901741298e-01 7.0074365077121543e+00 +802 1.1429989946502050e+00 -7.4388951204879661e-01 -4.5753167416826308e+00 +350 2.7083138134900436e-01 5.0030578783866444e+00 -4.9288572193271172e+00 +522 6.7544534980101956e+00 -4.7315460667039755e-01 -8.9893543168941414e-01 +454 -2.7276795647669734e+00 -2.2423988499800993e+00 1.9348873695343844e+00 +945 -2.2074959996750345e+00 -4.0937740126009503e+00 -4.4741259672394076e+00 +282 6.2018029365540361e-01 2.7764297118516326e+00 -1.3059547186852010e+00 +60 3.6493020545018200e+00 -2.5113205790013757e+00 -6.9650903924761010e-01 +231 -2.6579861034901491e+00 5.5052786208261395e+00 2.7281194073427186e+00 +110 -3.6604690247944141e+00 -2.5922989590009005e+00 -2.5260761844601598e+00 +349 7.3969174943923033e+00 -6.5650625263948881e-01 -5.7695515397934010e+00 +256 -3.3273368284644604e+00 5.4269367728841367e-01 -7.0608022151548777e-01 +82 1.2646216643424610e+00 8.2740352176550902e-01 -2.8537370462128431e-01 +894 4.2541907345612531e+00 6.0658181563422542e-01 6.9440281248954228e-01 +113 -1.8270359308604336e-01 1.3367155879041495e+00 3.2195888814731815e+00 +264 1.2505812882856082e+00 1.2111342213654031e+00 -7.0084215701080854e+00 +229 1.9042003496640952e-01 -1.3849042839983581e+00 7.8733274111346603e+00 +179 1.6838580326998349e+00 1.5504561763356390e+00 5.0052724321257918e+00 +858 6.5884500062987428e-01 1.0947436815620311e+00 -2.3159676054835017e+00 +780 9.0666668879802004e-01 -4.2909470768300233e+00 -5.1689880573262970e-01 +1010 -1.4921680988562822e+00 -1.0610491071231023e+00 -3.5520263512493604e+00 +807 -3.6527731615526111e+00 1.8550884636751364e+00 -3.3476781236025861e+00 +786 7.0698800722737182e-02 1.3530900160805086e+00 4.3894799877757634e-01 +315 -9.2994869658105184e-01 1.5698671243968094e+00 -4.6137401500402930e+00 +737 5.7292717108258684e-01 -8.8780213461618268e-02 -4.2643369384800911e+00 +137 1.5340678778712538e+00 3.9011624763575679e+00 -5.4570544854454095e+00 +460 -4.1818639002036999e+00 5.2864419392382800e+00 9.8840802156479268e-01 +490 -4.8101551585177829e+00 2.6371953064949905e+00 3.3489422009535987e+00 +1970 4.7260910007878720e-01 -4.4057774559176199e-01 1.9957198638522360e+00 +395 -2.0597812630454047e+00 5.8149597593121802e+00 6.8579643215995958e+00 +853 -5.3071459170728108e+00 -5.4201832371331840e+00 3.6290166690633203e+00 +238 -2.1969957065989365e+00 2.7140672490460624e+00 -3.2617083920626913e+00 +456 9.4606152228142026e-01 2.0837895306022008e-01 3.3870971576441011e+00 +857 1.2414338231304962e-01 1.8848978361830691e+00 2.9925365318133994e+00 +907 -2.5682911430118978e+00 5.6204017481952144e+00 1.3509232960471309e+00 +477 -7.8358013304125205e+00 2.3795366143617565e+00 4.3143376197303818e+00 +832 -2.0413728785686902e+00 -4.0441290571358302e+00 -2.8491813432105597e+00 +511 2.4501153530873068e+00 -3.3675643986449622e+00 -4.6628311389152897e+00 +122 2.1964745943735999e+00 7.4702365221781775e-01 -6.3494154664797153e-01 +1017 -1.3301808047886557e-01 3.3800138589400190e+00 -3.3064943086817871e+00 +958 2.8501511591267525e+00 -6.3606114801777265e+00 -6.2280166555726577e+00 +235 -1.0105537486766745e+00 1.6681874653552362e+00 -5.0678472279307014e+00 +721 2.4842909250697187e+00 -7.2695779766555626e+00 2.7020296181630794e+00 +891 -1.6307798584380573e-01 -1.6853395853690731e+00 -3.4469425259314881e+00 +825 -4.6178444777424117e+00 2.0912301562316720e+00 5.4468470375685234e+00 +441 2.3178406232515454e+00 -6.9689419720677730e+00 -1.3122743963350203e+00 +689 3.6974941928024871e+00 2.6017947423279439e+00 -2.2585379884577996e+00 +398 3.3156711155338026e+00 -5.1061515955741230e+00 7.9344475370686307e-01 +1185 -7.9027876127300656e-01 6.8360916956261997e-01 -9.6607593501635003e-01 +1020 3.5587063426158814e+00 3.7220504754527162e+00 -6.6987307559080200e+00 +544 9.4265267837337174e-01 -5.1882407611002996e+00 -3.9344686600952112e+00 +345 5.4563902588946611e-01 1.9811172817491847e+00 1.3332532500875969e+00 +52 -3.4834670284892035e+00 5.9620046380807903e+00 -2.8711025630373848e+00 +75 4.8465487307203610e+00 -1.4254536672512235e+00 1.6375849478661244e+00 +613 3.1341334624231156e+00 3.5196307285661872e+00 1.3464580964407327e+00 +420 5.5761544841345669e+00 -1.0453246209421152e+00 4.8387776591249727e+00 +249 7.2861347687396849e-01 -3.1486451219647273e+00 -3.0201307580530856e+00 +35 -3.1363663845183796e+00 2.5804789034716653e+00 1.8048579994362592e+00 +903 2.1101076478973102e+00 -2.8566054291376788e+00 -6.9841567392414623e+00 +609 -1.0987923417249383e+00 -4.6251295284357976e+00 9.1779680570393452e-01 +910 -1.2000905360006966e+00 1.1279203351592550e+00 6.1233600567012036e+00 +968 2.2698975912904973e+00 -1.0854118533316470e+00 -3.7940122874818089e-01 +452 -4.7325945781504446e+00 3.9948026673325283e+00 -5.9021506615407606e+00 +988 5.7150060513752809e-01 -1.3117878048919689e+00 -1.9645619160144336e+00 +632 -2.6732243671997096e+00 5.2898619066316419e+00 4.1046177380506972e+00 +89 -3.2936333009584602e+00 -4.4392344991068660e+00 2.3895772066960728e+00 +186 -3.7325499806607565e-01 4.3970237298064969e+00 -3.4335626403760133e-01 +472 -2.0741774399369759e+00 1.4874904331849836e+00 9.2153690214853223e-01 +224 3.2666203941898697e+00 7.8984690805444391e+00 1.6461064197559632e+00 +328 -2.4211440351057405e+00 -3.1397949029778176e+00 -4.9408435543917122e+00 +614 2.1656990615784051e+00 -5.5297883049649721e-01 6.7006078588575102e-01 +100 -3.8504070496025773e+00 2.3757509274034545e+00 -3.9000182371566612e+00 +245 2.1161444313165903e-01 -1.2312733985936295e+00 -2.4139861248371846e+00 +62 -5.7094557504236608e-02 1.7009345618482827e+00 -1.3586196523313283e+00 +647 1.7328789233539388e-01 -1.0135793864786147e-01 -3.1665633001948612e-01 +343 1.7148367830476903e+00 -1.9259385126025139e+00 -1.1605668005473229e+00 +276 -3.7376888287139165e+00 5.6221669099145863e+00 -5.5408548537782583e+00 +893 -3.9837016433532919e+00 -6.0591429550609055e+00 -2.2047010058939511e+00 +895 3.6051987205745948e+00 3.8947622870377998e+00 -2.9257678777470431e+00 +69 6.7863888143126339e-01 -7.3244344806287787e+00 -4.0275872195024105e+00 +809 1.5127615527121430e+00 2.3899773065762409e+00 -1.2041013638839329e+00 +836 -1.5521372872103121e+00 -1.9937221200493802e+00 -5.1993206757461810e+00 +98 6.9165258024886498e+00 4.7752055619200577e+00 2.9149722013938879e+00 +588 2.0482697048414926e+00 4.5999329746461788e+00 -5.0644751594723370e-01 +845 -2.7790058062644278e+00 -2.2313208362657631e+00 -6.0027430383223965e+00 +623 4.5062025883659445e+00 -1.8086508012361344e-01 6.1280313425633519e+00 +3511 -2.9072753839577525e+00 3.9366969837703092e+00 4.4206172477232197e+00 +294 -1.7645604913020028e+00 2.3629754736067317e+00 -5.9884846534562231e+00 +880 4.5885897262538577e+00 -4.8466242620523978e+00 2.6348686730047133e+00 +1008 1.5517488582976937e+00 2.8560759734710972e+00 -1.5615586975426439e+00 +750 2.5092570347419230e+00 3.5357137615515506e+00 7.7441643022822326e+00 +162 1.6932638389523913e+00 3.7723493251542126e+00 -3.6693179570315322e+00 +4007 2.7951797024112754e+00 -8.4703835187594689e-01 2.8815153458749804e-01 +359 5.1585144571667714e+00 2.5441119632444809e-01 2.4857756629342909e+00 +246 6.9502963175377075e-01 6.9695246066608441e+00 -2.9567094695410314e+00 +597 6.4785342129955892e-01 -4.6814115824553584e+00 7.2079191097451711e-01 +444 1.9924524775898209e+00 2.1260491479236596e+00 2.1912353968744469e+00 +950 1.8952118822780745e-01 3.2578041375162359e+00 -1.1670953825523873e+00 +165 3.8613026955948730e+00 -1.9103488154262993e+00 5.1537598885027718e+00 +203 -8.0824458571753297e+00 -2.4288375916928606e+00 2.4228826137984555e-01 +822 -3.4169448674352556e+00 -5.6970342521730155e-01 -3.5434259892713653e+00 +759 -3.4423890553587397e+00 2.5145842954839048e-01 1.0930199535909955e+00 +108 1.4804256542499301e+00 -1.6943556974484899e+00 -4.7000942040164118e+00 +726 -6.0087048169843964e+00 1.8607073508511123e+00 -2.1717230036404866e+00 +897 -6.4728079940438972e-03 -4.8734894310600021e+00 2.2610142364121413e+00 +79 -4.3038237553380352e+00 -6.7101024177004776e-01 -2.8105143093058094e+00 +610 8.5639359446978192e-01 -6.8174835155761082e-01 4.8981469842318885e+00 +494 1.4347242355378746e+00 -2.0476189548878185e+00 3.1926103663972740e+00 +407 -2.3601995934036157e+00 -2.0034656073813299e+00 1.2091175312116895e+00 +671 -3.2914918615937522e-01 -6.6647855111478027e-01 -3.0378297282294926e+00 +307 1.4706448056829486e+00 -2.6881659298924316e+00 1.1848283211487964e+00 +403 -3.2395119936282413e+00 -1.1181076855324095e+00 -1.0245144420086230e+00 +212 -3.4245868025556119e+00 -6.9103877639104603e+00 3.7269439719131774e+00 +675 2.4317722721002908e+00 1.6514811550351098e+00 -1.4620731048377851e+00 +372 4.4120418077732104e+00 -2.1764601806798054e+00 -2.5496324567997766e+00 +354 -3.9973019675699177e+00 6.3894211020494067e+00 2.7370361940318784e+00 +734 -3.3347148326639808e+00 1.9594009812865696e+00 3.9376184379918383e-01 +519 6.0036217288132789e+00 1.2953036997775957e+00 -3.4844542816279325e+00 +120 5.6051554476854548e+00 -1.3867309833682697e+00 6.1553981073058162e-01 +629 -3.3771308365592958e+00 3.8896935585933075e+00 1.0162012941087255e-01 +405 -1.2816027435766937e+00 6.5608772333124266e-01 2.3018952343324957e+00 +322 2.1113864361558718e+00 -1.3670904924792597e+00 -1.1131899464733299e+00 +733 -7.1333353332236982e-01 -8.2188624631139440e-01 -2.1209678451355476e+00 +595 1.0662735248740198e+00 4.9308363067763022e-01 -1.1877863826413655e+00 +501 1.1503607535033242e+00 -4.8463491863897379e-01 -3.3859714008536979e+00 +3495 -3.3814239969156832e+00 4.0655168894615645e+00 -3.6379931570649942e+00 +90 -2.7621148106483888e+00 -4.6227275413366327e+00 8.8799851228506832e-01 +791 -4.1905557430702578e-01 5.9017132855587224e+00 -2.3942587348241582e+00 +763 1.5481858001743995e-01 -2.0296273375270015e+00 -4.1741101730758663e+00 +313 1.2227940903187844e+00 1.6174477234227018e+00 1.9801152998098519e+00 +606 -2.1728711013045601e+00 3.9638173803701515e+00 -7.2731642823770732e+00 +916 -2.4472753568950272e+00 1.0187268205674658e+00 -6.8949775339512023e+00 +109 -3.0717933369503956e+00 3.2915487620436495e-01 5.1776290214529350e+00 +516 -3.2006768073205563e+00 -4.4529145710895701e+00 4.6625117512469538e+00 +268 1.0084684783498343e+00 -3.9001073028977604e+00 3.0695671035119743e+00 +308 2.6795550620753201e+00 2.7760137587044658e+00 3.1825905912839634e+00 +655 2.4039555939642856e+00 2.1190251182262605e+00 -4.3351179856337927e+00 +549 -4.7757755358838244e-01 5.0577929107835304e+00 -3.8015020599878011e+00 +725 3.5530109977385229e+00 -1.4878390930319614e+00 -2.4036913796226544e+00 +258 -3.2303389092990700e+00 1.8204267496007733e+00 -3.1800313257763063e-01 +3942 4.9161417156378091e+00 -1.7060576414420250e+00 1.5341707725377496e+00 +934 2.2493606746901156e+00 7.1141003704101902e-01 -1.4736740120288458e+00 +757 -5.4348143381812521e+00 2.8091895894903169e+00 -8.0573752698226482e+00 +864 -5.5090763750192684e-01 -1.8427622016922522e+00 -1.2011755616040531e+00 +901 -1.2306493318402880e+00 -3.0218685126143665e+00 7.9457902298005834e-01 +715 5.1773608147814487e+00 -1.8259372004935415e+00 3.7710163585181431e+00 +136 -8.5874864322826605e-01 -1.3227381007363641e+00 -3.9524379011970817e-01 +628 -1.8803791993704588e-02 -2.9683444954191001e+00 -1.2287145746174593e+00 +374 -1.9296294085865948e+00 -1.1213178922620215e+00 -1.1925118842259281e+00 +660 -5.0714354598828688e+00 -1.2842335566361456e+00 1.9347499162636512e+00 +582 -2.3639124087524750e+00 -3.1960481900060724e+00 4.4764903052226118e-01 +418 1.9121899135008218e-02 -1.6380804930703889e+00 8.6395567568342848e+00 +810 4.1847784716763927e+00 6.5398994795486356e+00 -4.8472079254885720e+00 +624 1.8861858481055760e+00 4.4132416641389138e+00 -3.0701035225658212e-02 +867 5.8349864256380437e+00 -2.0001139876459346e+00 3.0234414142444415e+00 +85 7.6522629492857777e-02 -5.1260759200830410e+00 3.6443043045495958e+00 +439 -2.0736170935683407e+00 -1.9314419292395804e+00 -2.3688010568377416e+00 +147 6.2201836941375586e+00 -6.7676772645132557e+00 1.9853541273530200e+00 +1022 -2.2989881934328080e+00 -1.1886238759917600e+00 3.1126428471516476e+00 +437 -5.1883009628696319e+00 -3.6740491921251919e+00 5.3491879960655160e+00 +240 5.2706900949534905e+00 5.0875239390549503e+00 -2.3060154420384280e+00 +1489 -1.1334188030703929e+00 2.6748060054115008e+00 -9.9865061273765021e-01 +764 -1.2992498933866747e+00 -2.3386497806045838e+00 -2.4550478755584568e+00 +3548 1.6594915208091920e+00 -2.5347848032561893e+00 5.2918689352909780e+00 +806 4.5319020609270888e+00 -4.3851771628553715e+00 3.4394301348373251e+00 +796 -2.3120550823532864e+00 1.1151330580071532e+00 -5.0084703376938462e+00 +3985 -6.3045656546249464e+00 -4.8605353094418258e-01 5.4050021879201404e+00 +356 3.2787847876764036e+00 2.9698635321165625e+00 -8.8525025169203508e-01 +1810 -2.3442834154278547e+00 3.3571617782471308e+00 -7.5715186510315062e+00 +1015 9.2987056281593428e-01 -5.7059886498332499e+00 -4.5220228448846944e-01 +397 1.3559876028336140e+00 5.5134188002912303e+00 -2.3368710821473777e+00 +697 1.1438391641670755e+00 7.0365594215588603e+00 -8.9382979943726115e-01 +833 2.3118563845618532e+00 -2.8825011721151523e+00 2.9825384912008648e+00 +599 -2.2567017281040407e+00 -6.6721127048866231e+00 -2.7308990682196352e+00 +87 -1.9656948972690547e-01 4.4665156780122306e+00 -7.0145164650778924e-01 +207 -6.5201231927401118e+00 3.8423120409600577e+00 -1.4028614675644429e+00 +428 8.1091811650604873e-01 -3.1754509317847166e+00 -2.0582101211197728e+00 +1778 -4.5742529517727402e+00 4.6472487050607603e+00 -2.7275614940100543e+00 +376 1.6969895021788777e+00 -5.0094473624761697e+00 4.4850890482567891e+00 +126 -5.7957040121536263e+00 3.4282379777028473e+00 -1.9787125466672377e+00 +200 -1.4229179925227382e+00 1.5717914160432092e+00 4.0857387802339478e+00 +532 3.6492687438557465e+00 -4.2147789599443639e+00 2.1641814705580709e+00 +209 1.1250304069078982e+00 3.8341015621643217e+00 3.3451791382180018e+00 +842 -2.7702765296992093e+00 1.3557519319508238e+00 1.3227958968784033e+00 +370 -6.1249473290277621e+00 1.6333377867863368e+00 4.3337558749048091e+00 +951 -2.6822412392584485e+00 1.2651114935401040e+00 -2.5429125950076377e+00 +384 4.8419105343232891e+00 3.6224889079731010e-01 2.7746414240263557e+00 +158 8.6756181004381694e-01 -4.2311550251362817e-01 -7.9826212573205180e-01 +228 1.0549336432837984e-01 8.3797759851616949e+00 1.2485576457978953e+00 +3150 -5.2867457773323761e+00 -1.1425109837004053e+00 -3.5174950086572139e+00 +1329 -1.1897986854990628e+00 1.5242295525013508e-01 6.3965785068400356e+00 +870 4.4781538797156815e+00 -7.9039212944480912e+00 7.1642253678998069e-01 +22 1.3220024316501144e+00 6.6014126743434014e+00 -4.4119297983825954e+00 +873 3.4016285095151431e+00 -6.4823089309379318e+00 2.0757404650729860e-01 +7 1.8522674862631321e+00 -1.5818985006802988e+00 -1.9242206545111322e+00 +318 -3.6742363694447877e+00 2.7120211532544367e+00 1.2621304808064249e+00 +400 2.5185590087388671e-01 8.0602376831860134e+00 8.2078668713554350e+00 +3597 1.3614281089445472e+00 3.2137927822949015e+00 -1.6457239564188735e+00 +559 -1.4043781607598569e+00 1.7579390549837162e+00 1.4604597329515956e-01 +465 3.9150137476116660e+00 -3.6458844538822435e+00 2.0333860431272797e+00 +378 2.1460303477424278e+00 3.8367304244401810e+00 2.8680931057108308e+00 +3 4.0438959979516795e+00 -3.6482732378488154e+00 7.7805931887421869e+00 +1170 2.7452082308254848e+00 7.3368479848731094e-01 8.8737024184931190e+00 +3535 -2.1955544998732393e-01 -9.5988992783566596e-01 6.2483942798870251e-01 +172 1.1342262585668055e+00 8.5982867095212268e-01 9.0257513477062901e-01 +524 -2.8008259928166129e-01 -7.6394953560400456e+00 3.7781636527560503e+00 +1251 -3.1207515863505830e+00 5.7172545542570863e-01 2.6903065834316791e+00 +204 5.4057944574707406e+00 1.6617686571546542e+00 9.8791873519604417e-02 +877 2.5727450372190939e+00 -4.3687244410295901e-02 4.1266936940870896e-01 +1313 -6.2954413266107236e+00 -6.4304870827405018e+00 -1.2842877713338043e+00 +686 5.0131721224574486e+00 -8.8079108178676613e-01 -1.9785149434978573e+00 +306 1.2570450576253431e+00 -3.2995354246759074e+00 -4.5060408423812017e+00 +432 -3.4899727932070372e+00 -4.0992214629881412e+00 -2.2530254856922496e+00 +423 1.7948677232320267e+00 -1.5660516485856149e+00 -2.3446441200376129e+00 +1003 2.1175667077662494e-01 -1.6751712674507830e+00 6.0165088033065341e+00 +3159 4.4759610726830656e+00 9.3241491740416116e-01 -4.0534181968222764e+00 +966 -1.2901804323591544e+00 4.0742218333966544e+00 -4.8960182227932787e+00 +88 -3.2566183951775147e+00 4.4309315124066808e+00 1.6043274584386136e+00 +1154 -1.9403198236640227e+00 2.4079814731074740e+00 -4.0875086567840970e+00 +462 -3.1984021083447396e+00 4.2802717101282877e+00 -3.2012194890312680e+00 +630 1.3000603212168387e+00 5.6019465597520188e+00 5.9545881902330464e+00 +754 1.4038805713718716e+00 2.6484241643040352e+00 4.5210496005104650e+00 +51 1.8965260887351687e+00 -7.9730947421093235e-01 2.4455565591332940e-02 +878 2.7832704584024531e-01 8.0020875274781904e+00 2.9223933345751814e+00 +1762 1.5438726548566741e+00 -2.1881699441038585e+00 -2.6707325263843779e-01 +566 1.7151467188760505e-01 -2.5304666840773598e+00 4.6619213891945552e+00 +449 2.5995404881946271e+00 1.6435312989230824e+00 1.7176721752572817e+00 +4 -3.9319945662894420e+00 1.7330108106030545e-01 5.4509825287255449e+00 +850 -7.1334468942519473e+00 -5.4656608781658793e+00 2.3996586415835428e+00 +772 -9.3316232298782831e-02 1.3722813407899805e+00 6.0507397561210741e-01 +683 -4.6846800886921119e-01 -2.0700672613075413e+00 -1.6724025218848264e+00 +954 -2.3452315993379433e-01 4.4544173206631410e-01 4.0709029238159521e-02 +489 -8.0815340259422612e+00 3.5560689113580528e+00 1.0366252274030775e-01 +269 -1.6129582207448121e+00 2.9233612161800417e+00 -1.1081406830712239e+00 +902 1.3510041960963721e+00 1.9374751072220344e+00 1.5390135009894930e+00 +475 -2.5013710072780229e+00 3.5383317974642288e+00 4.6040457347385990e+00 +300 -3.8441322728496639e+00 2.8656770883469990e-01 2.5920777025174035e+00 +236 -5.0324596190835322e+00 -1.0217228135095064e+00 -1.6059124871154040e+00 +987 -4.5900281829860052e+00 -4.0334852349698949e+00 3.6768182285865629e+00 +323 -3.7693138226856546e+00 2.3464005370915073e+00 -9.4155543577855560e-01 +293 -3.7722911832528743e+00 1.6287087476940647e+00 3.3600769850124355e+00 +940 1.9802353665930994e+00 4.2311763412648185e-01 -1.8920368509162224e+00 +291 -1.6804587193668816e+00 6.9149704005099133e-01 1.8332106577856069e+00 +673 4.5139516516570516e-01 -3.4071356819199865e+00 3.2214877170238965e+00 +104 3.6264151477846189e+00 4.3578351804604996e+00 1.0160527750225299e+01 +447 -5.6781795819975773e+00 5.1446641238539961e+00 5.7141202811071530e+00 +219 1.2877245581791652e+01 -4.5910077201682506e+00 -8.7614742755139396e-01 +206 4.6604296912760725e+00 -1.7313236413025215e+00 -1.2216481364786742e+00 +708 -5.2664132176855460e+00 -2.6000831837127421e+00 -8.1054559914584745e-01 +3615 1.7203039612928264e+00 -7.7233469901602958e-01 -3.6532362593565511e+00 +789 2.3670828388889666e+00 -3.7515090425620290e-01 -5.7114561142342657e+00 +3220 -3.4255580392590672e+00 4.3113564861888243e+00 1.8008712136196003e+00 +295 2.1162845115813478e+00 -3.8541145006660562e+00 -1.4854066768253595e+00 +740 -5.2183930971577464e-01 3.5728085218196148e-01 -2.9252217430231813e+00 +672 2.6699423586793651e+00 1.5196910431788218e+00 7.4403028313504649e+00 +991 1.4537714561718384e+00 1.4404618170603731e+00 2.3410276969281814e+00 +319 -5.1353666981351234e+00 -8.5146024063944878e+00 -6.0587179853108852e-01 +962 2.1070280824331835e+00 6.3562964334557055e+00 -7.5070548359011937e+00 +932 1.9892537600813944e+00 9.6289918271615349e-01 -1.0419124883372743e+00 +911 -5.2726067155914551e+00 6.7310092434271684e-01 1.9866732253916022e+00 +3829 -3.1845809347309162e-01 1.3772881404815460e+00 -2.4531440717453439e+00 +724 8.5127491671315503e-01 3.3329581807633781e+00 2.5971801013498168e+00 +558 -3.3205191515468269e-01 -1.4094148037790826e+00 4.9323603505296107e+00 +688 -9.7498380935881335e-01 -4.2120139911219212e+00 -2.1546692166327022e-01 +743 -3.7186051061487158e-01 3.4317510044041661e+00 1.2088406023432055e-01 +957 -2.0307954925065781e+00 -1.0433201418771768e+01 4.1179371571831300e+00 +514 1.2036565522033331e+00 6.0282167449962420e-01 1.0484940307487214e+00 +11 1.2096871447266972e+00 6.6794523079723769e+00 3.2340680200454480e-01 +332 5.6779886194836999e+00 -2.6935994327519226e+00 1.7566754988035091e-01 +415 2.9737369581203783e+00 -5.6135305935172619e+00 2.5737247475181757e+00 +68 -3.7769055191163963e+00 -7.6765572729688855e-02 -4.6017289973642681e+00 +879 -5.1931425777587208e+00 4.8754385376028795e+00 -4.0541659065289597e+00 +699 -2.7401147389332570e+00 2.5083672506841146e+00 -4.1508751225647655e+00 +906 -1.2751166584691631e+00 -2.5453321764910060e+00 -1.7796491418818183e+00 +1713 -4.5010798601122932e+00 4.5151319708492663e-02 -2.8507393668679692e-01 +3198 4.0438850123090795e+00 -4.1309851832060041e+00 -3.6653738908089091e+00 +1283 3.0763463315509734e+00 -1.5702024690371443e+00 -4.7348689131766825e-01 +1746 -2.4840282577528350e+00 5.0429896505137730e+00 -3.8794412527414632e+00 +183 3.4301042645816433e+00 -8.1033927375547501e-02 -5.7590241964888849e+00 +555 5.8405845433344012e+00 -5.6832203714287592e+00 -2.5844712903713054e+00 +140 -3.1951379222698244e+00 -4.2372545853078805e+00 5.5998678503402184e+00 +3133 -7.1076952458331788e-01 -3.0738092116266373e+00 -1.5353216650795924e+00 +748 -8.0234900691055611e-01 6.3464520989385313e+00 5.4440961680681710e-01 +459 -1.3184395145072036e+00 -1.2564634028148698e+00 -1.2634226200351941e+00 +816 5.1764699245403660e+00 1.1379660417569097e+00 -4.2884276823444623e-01 +679 -1.1241201720082505e+00 3.7237970888370890e+00 -6.5566599412092041e-01 +208 -2.2871972681871950e+00 -7.6320484507949193e-01 -5.4381283062778287e+00 +1250 -1.8590627216614515e+00 1.7634174219139243e+00 1.1860179764780605e+00 +542 2.5009638385132869e+00 2.9518363144499178e+00 -1.9572635839740939e+00 +5 7.5507036136705163e-01 1.3775507611600144e+00 1.0438857253279761e+00 +986 -2.9641915544623822e+00 -7.6424535863150733e-01 9.2092887172835458e-01 +1266 -6.6159154843733674e+00 5.0268749515205382e+00 -3.4924683068208000e-02 +321 -2.1661821738609133e+00 7.0396939265494325e+00 -1.1645060274197514e+00 +984 -6.5450908820906122e+00 1.5511061732721965e+00 2.7553037075054188e+00 +1361 -4.9345480421177275e+00 1.3597405546110528e+00 7.0059649929954713e+00 +27 -2.7896735422775953e+00 -1.0944599085551743e-01 2.0073048135317699e+00 +493 1.9105623277058710e+00 5.1610677072991376e+00 4.7945347448731006e+00 +197 2.0859362797860601e-01 -6.8309055526413165e-01 -2.7230470354184080e+00 +425 -2.4520393838129246e+00 -2.1684719020157486e+00 -2.7887978949346945e+00 +840 3.4630094851170141e+00 -4.9928074947419659e-01 4.7893041318889127e+00 +283 -6.1687531076586644e-01 2.4968488923788166e+00 -6.2109417753330365e-01 +967 -5.6859531054049395e+00 -5.7929631511040993e+00 -3.7813332960621460e-01 +882 3.9595598472557079e+00 5.8301121966143743e-01 -1.8520568565813227e+00 +56 6.7584910519248238e+00 2.7932293476169159e+00 -2.9278861129638725e+00 +360 8.5386386805715375e+00 1.7308317788748646e+00 2.5051074262506234e+00 +3219 6.0232719198149076e-01 -1.2591628064120834e+00 -1.2738670647347838e-01 +515 8.0321669728702645e+00 8.7381966866961545e+00 5.3957246615896859e-01 +1362 -2.4898502951807777e+00 -3.0833980382693840e+00 -2.7374397464388434e+00 +317 -1.0014588038102983e+00 -4.4128365629885531e+00 -7.9277226252094311e+00 +42 2.0504871464449868e+00 2.8644409089273433e+00 9.1077504081417204e-01 +578 -1.8449477899867242e+00 -4.5426762405222404e-01 4.3249196542908033e+00 +928 8.7124711620015685e+00 3.0508076928573171e+00 2.6268508485021207e+00 +131 -3.1916791399842048e+00 9.2719511913024499e-01 -5.5057020441086291e+00 +3084 -4.1569515350661606e+00 -4.2969744207279907e+00 6.3890623506665939e-02 +798 -5.5519062558869887e+00 -2.1929719946075479e+00 1.2151038875495648e-01 +152 -1.9208045394818746e-01 6.0910874394324277e-01 -2.6577780055226463e+00 +342 2.4876834246409780e+00 -3.3932176733307537e+00 -4.9232183850686848e+00 +654 6.6304620580261462e+00 1.7958758888452020e+00 4.8606800422558329e+00 +722 -1.1504893902826203e+00 -1.5717004219351567e+00 -2.4346588035372316e+00 +1249 -8.7385668515257180e+00 1.2935054697077863e+00 -2.0165968407403170e-02 +617 -5.0507799914925078e-01 -1.1171557086793840e+00 2.5901801526584700e-01 +76 6.2580882589649152e+00 -8.5071033305233978e-01 -3.0096781387158267e-01 +694 4.7530652424511177e-01 -1.2084614724991150e+00 4.8083866128166157e+00 +96 -2.9846985569193167e+00 8.2312828049823006e-01 -2.0170918653626329e+00 +227 -1.4666989309565803e-01 5.4713383067717354e+00 -6.7925820127779808e+00 +329 9.2824377744808562e+00 -3.1795335047758684e+00 4.6486926813113694e-01 +1186 1.8040114476084681e+00 3.5459232652207642e+00 6.6231208890203623e+00 +476 3.2199615269467605e+00 6.8925852432826993e+00 -9.6037665710581610e+00 +279 -1.9384504426860114e+00 1.6663207021554174e+00 8.4825541591879432e+00 +575 -1.8012552513922975e+00 2.4639126113444787e+00 1.7478058590460779e-01 +1005 -6.5029016347271975e+00 4.4850875608029490e+00 -1.7741372934713475e+00 +115 2.1523150200313576e-01 2.8508224990672537e+00 -6.6067168088036379e+00 +709 2.6414934340129337e+00 -3.1519817893155794e-01 4.1940700831510709e+00 +590 -1.9414561613652792e+00 -4.6432604256571590e+00 -5.4413113775012047e-02 +1426 1.9044689310802287e+00 -2.9383770944160483e+00 -4.2619399795534800e+00 +488 -8.3907744783235438e-01 -3.7558130619546071e+00 -3.2475935359373431e+00 +625 2.1416413028022787e+00 -5.1042787845954578e+00 -4.4494576677452944e+00 +213 2.4410576817472465e+00 1.8030567403648781e+00 -1.8674464096933563e+00 +735 3.7915988578658899e+00 1.0414192294469016e-01 -4.3817940555896326e+00 +265 -4.7810338173990452e+00 -1.8524772879002624e+00 1.7050129191374910e+00 +391 4.5286249954339235e+00 6.9839964040196734e-01 -3.3062009685133003e+00 +999 -2.8933454887842975e+00 -3.7465398982906661e+00 -1.2560405359327904e+00 +598 1.7987748173502857e-01 7.9414412253967914e-01 -2.8781418046458445e+00 +453 -4.7255104422703056e+00 5.0942212906118611e-02 4.3691350551940076e+00 +287 4.0845007648110245e+00 1.9869797768422564e+00 -2.5806001298015722e+00 +119 -6.6179710732126446e-02 -2.6704083054674355e+00 2.6670475123254413e+00 +538 -1.8322398241217808e+00 5.1923317316741646e-01 3.0874241070009352e+00 +554 1.4080700563744639e+00 -4.3425013081696626e+00 2.7590695730258710e+00 +1427 -5.9812220040257857e+00 5.3416410520574749e+00 3.0629940213417508e+00 +4060 -1.2972150927009380e+00 -5.7906253982650124e+00 -1.6614252903096776e+00 +636 -2.5029315150360548e-01 4.3587413541036568e+00 6.6395760808086779e+00 +714 1.9089589732111947e+00 -5.4720196647148480e+00 -4.6602825440690254e-01 +1377 -7.5605857103717722e-01 -4.5710314817861049e+00 9.9500526864184611e+00 +125 2.5195760824914442e+00 1.1594897188524573e+00 -3.4834225515388639e+00 +431 3.3506520459991993e+00 -4.9436424848690080e-01 2.6342786463722687e+00 +40 4.4637966448059130e+00 -7.1423679562285924e-01 -2.0449009107051972e+00 +885 8.3156212789790163e-01 -2.9517939418919679e+00 -2.8730195320911839e-01 +669 4.2906997698899090e-03 6.2636425957151554e+00 -4.0248796294958069e+00 +468 -4.5946442152573752e+00 6.9896477074419405e-01 3.4069904032378777e+00 +47 -1.1161799297024508e+00 -3.5273348070625441e+00 -3.8733246289597472e+00 +650 -3.3632774509713532e-02 2.4358282402688900e+00 3.2469960623335301e+00 +211 -6.3959876769277735e-01 -1.9200866876587792e+00 -7.5613769460813076e+00 +1986 1.1049021045823360e+00 5.8659411134218837e+00 8.2732736652995076e+00 +386 -1.0495276103052642e+00 -1.5298425975871568e+00 -2.5615745429088865e+00 +728 4.7949875242669080e+00 -7.8109089338469040e-01 3.2699614993790277e-01 +1458 1.1278693166283584e+00 -6.7055625210967540e-01 1.8125601231434307e+00 +412 1.9521777582595274e+00 2.2339924273704361e+00 2.7034280263653159e+00 +751 1.2742113483298279e+00 5.5906691084606850e+00 -5.0240564230732341e+00 +1714 2.1303713706489078e+00 3.3515147249919290e+00 1.9687067126884168e+00 +166 -1.7249752875852509e+00 -2.6589898257890647e+00 8.6292330694235186e-01 +67 2.1026624049325313e-01 3.5410353197315110e+00 2.2054818711863762e+00 +692 1.4494635619839018e+00 5.8351202217390190e+00 3.1484038546568827e+00 +151 -3.6895693842451233e-01 -2.0989344815481030e+00 3.5342142807885297e+00 +1124 -1.1633954830501425e+00 -3.0985463893854388e+00 -8.2886270313667831e-01 +1315 6.3551689905960274e+00 -2.1767829743379825e+00 2.4786405604840138e+00 +935 3.8904389929005072e+00 -4.7812753318448458e+00 -1.1141838167910330e+00 +1105 -1.2628198967007052e+00 -5.8367742106123917e+00 1.8900032684855002e+00 +446 1.1089185918889397e+00 -4.5786885772310804e-01 -2.9459553127085279e-02 +3868 -8.4291172738223674e-01 -7.5536336272299627e+00 6.9556130667878435e-01 +3276 -9.5434677980870031e-01 8.2304054243246949e-01 -4.1300828207439094e-01 +434 -2.2095318537796658e+00 6.2793442477860788e+00 7.6182146509894566e-01 +1443 3.8600343507395509e+00 4.3170223792917097e+00 -1.4724913673194044e+00 +3922 3.9000373414071987e+00 9.3774954962893222e+00 3.3376066558564763e+00 +926 2.5427947681750784e+00 7.4445567881964603e-02 -2.5270461676502451e+00 +298 5.3766873180158803e-01 -1.3666948393317446e+00 3.6627328248101931e+00 +3448 3.5777150504598985e+00 1.8825265272073545e-02 5.8839922595174698e+00 +1043 -3.5471702087757118e+00 1.1827554327499450e+00 5.1639220076204717e+00 +1033 6.1738281918879965e+00 1.5290765801194513e-03 -1.7139848215081290e+00 +1927 9.4939901520939063e-01 -1.7781810346658364e+00 -2.5093193865509678e-01 +1799 -7.3760254538031234e+00 -1.1371348175107938e+00 5.8177478577152753e-01 +1029 6.4235009901801448e+00 5.9667514182468917e-01 2.0819522895177522e+00 +1511 4.2033802184721152e+00 -3.3199938987801674e+00 -5.0869587496631548e+00 +1510 -3.6568050541481578e+00 2.8451027015855213e-01 -4.7188634613626048e+00 +1509 -6.4650838290409665e+00 2.6465553497631840e+00 -1.4335786488183114e-01 +1508 -6.8203835278708151e+00 6.7299129632996824e-01 3.4632224709750110e+00 +1507 1.3117934523283798e+00 -2.7043507210068696e+00 8.7086203692911301e-01 +1506 -2.3066256311616793e+00 2.8576557463252130e+00 3.8958651957052419e+00 +1496 -1.9186377288171244e-01 -2.2074328724192336e+00 -3.8447985855073905e+00 +1495 1.4694215665407029e+00 3.5499688928606608e+00 -2.9395430905750879e+00 +1494 2.0810694880294047e+00 -6.6336806338030359e+00 -4.8974717488137476e-01 +1493 6.4416887352930630e+00 2.4849766849427368e+00 -1.3297782026479077e-01 +1492 -2.6065041754409540e-01 3.8467001679989119e+00 1.6944188390736565e+00 +1923 -3.7367535618033259e+00 2.1725435634949477e+00 -2.3205256761702833e+00 +1425 -6.5750377219201841e+00 -5.8723742365496907e+00 -7.4429754343098842e-01 +1842 1.6371629998001467e+00 1.5315280635951050e+00 4.2261245866259953e+00 +1522 3.7481868988614160e+00 8.2818888488624798e-01 5.8765588096014475e-02 +148 1.1782107749796269e+00 -4.9961605968870559e+00 -1.2760861815887630e+00 +1797 -2.6231625503686056e+00 1.9124852177269704e+00 -1.7303402310422603e-01 +1480 1.4019317263149222e+00 2.8731617134683951e+00 -4.3766404781617387e+00 +1524 -3.3469610406942043e+00 1.8974901823900092e-01 2.3458388972635227e+00 +1478 -3.3555550476419156e+00 -7.5469456433788407e-01 2.3140473174375336e+00 +1525 1.3133093392432766e+00 -1.8968345916530691e+00 7.9406512343631945e+00 +1476 -1.2324793859262000e+00 -1.4610433267996223e+00 -2.7739824560768223e+00 +929 2.2918549328753990e+00 -6.3074789006036958e-01 3.9199515167391823e+00 +1465 -2.2510577066302706e+00 -5.0712499773953768e-01 2.3493189675201509e+00 +1464 -2.1737719837577578e+00 2.8339366492770939e+00 8.9252072584060393e-01 +1463 -3.3382787358021639e+00 -4.0846612705246016e-01 -4.5886722392847581e+00 +1462 -1.8507312211316991e+00 -4.2128007765027116e+00 -7.0861615298025660e-01 +1461 1.5680227461714529e+00 6.3289412434090597e-01 -2.7409552139307949e+00 +1460 -2.1176227258402855e+00 -2.9325434597389419e+00 4.0368198566888683e-02 +1459 1.7059762883393044e+00 5.7527767210175940e+00 3.0074532808605137e-01 +49 2.7352148851277289e+00 2.1362095981142573e+00 8.5198243960862485e-01 +1449 -5.9360694557047502e+00 4.1662337730391448e+00 2.9613599420603718e+00 +1448 2.9090216353920590e+00 3.6646184193845626e+00 -1.2180660167921809e+01 +1447 -4.7331267546674463e+00 -1.1529616773505535e+00 8.8375315608263261e+00 +1446 -3.8383305932045908e+00 -4.6089006033939475e+00 -2.7713246949689001e+00 +1445 -7.7946676717483387e-01 6.4114270231189279e+00 -1.3118790794358239e+00 +1444 3.8361888775669488e+00 2.1440991507919116e+00 2.2677113076756532e+00 +244 1.1702153534974953e+00 5.6833221224114283e-01 -1.6272549448543852e+00 +6 -2.1844364934353395e+00 4.6636944889553584e+00 9.8978947997502136e+00 +1433 2.2500877217631552e+00 1.4074510019747961e+00 1.6224655414100853e+00 +1432 4.9305873922608807e+00 -7.0025196614259921e-01 -1.7292539127189317e+00 +1431 -2.5367992542966249e+00 2.0230879637088584e+00 8.8633479974867102e-01 +1430 -4.3375789630230921e+00 2.5346339510070131e+00 -3.1295280130467273e+00 +1429 -1.4648760337115296e+00 1.3557047973795515e+00 4.3622758807819499e+00 +338 -9.4675301550835371e+00 2.7010483728330686e-01 -4.2909012567678977e-02 +1650 9.7505142280303192e-01 -1.1469355810583723e+00 -2.6178387101009939e+00 +1394 2.6032529882634856e+00 1.3548464291853457e+00 -5.8832080198826231e-01 +255 -4.0669685982845092e+00 2.5016885459382179e+00 8.1676649834385699e+00 +1526 3.2361787741779029e+00 -2.9785775625643081e+00 3.4599232013437903e-01 +1527 -7.3766849870514595e-01 2.3805491328881492e+00 -3.6415754675589884e+00 +1528 -1.5470125271170845e+00 3.5583939023349104e-01 -9.1855032601350972e-01 +1416 2.0766078731932880e+00 3.0330566068105389e+00 -2.8048758933479703e+00 +1414 1.3994649976795719e+00 -3.2145860960852430e+00 -2.8829498157287099e+00 +1412 -6.2411674450042243e-01 -3.8990337164918882e+00 1.6195642154111980e+00 +1505 1.7425954057717112e+00 2.5412862149292912e+00 -1.7103739391785335e+00 +80 3.1605865453343482e+00 -1.6277138108549329e+00 -1.3059148142387709e+00 +1401 4.1284670577305871e+00 -3.0540045404338687e+00 7.3299350023322962e-01 +1400 1.4706672801012313e+00 3.9816840017153421e+00 -1.6971881977841012e+00 +1399 4.5837608129745009e+00 -6.6382753333032216e+00 3.8119182427485274e+00 +1398 6.2138646838331280e+00 3.7513528015682436e+00 -1.3729716564826184e+00 +1397 1.2589300631919928e-03 2.4368851929612634e-01 -6.1761150036136856e+00 +1396 -4.5554452283841605e-03 -9.1006334603296435e-01 -2.4349149513344477e+00 +680 2.0239287114799254e+00 -5.8047222097885931e-01 7.1147212937147657e+00 +1667 4.2984966425627782e+00 1.7120415747683573e+00 3.2827784421684530e-01 +1385 5.6828782230065400e+00 -1.5183471986410182e+00 1.1291520959067849e+00 +1384 -2.8593667100592723e+00 2.0551501612812126e+00 1.1633647464406578e+00 +1383 -5.7352430437792341e+00 3.4744107830616229e+00 2.8217077421772587e+00 +1382 -7.3195052408797645e+00 3.5597653875279742e+00 -8.7449447786801715e-01 +1381 -3.0344548421751165e+00 1.5905390638854688e+00 -3.1477968471869628e+00 +1380 -6.9619965401111716e-01 -1.4559037450324688e+00 1.2498318641909432e+00 +1379 -4.4540862754439834e+00 -1.4816970232277158e+00 -2.4738851999426215e-01 +1345 5.6770706612720048e+00 1.6656412455991139e+00 -2.8646559698738141e+00 +2018 7.1728477061839486e+00 -6.6979190882841575e+00 -1.6384718770564588e+00 +1369 3.4701493697397465e+00 -5.6735382735711559e-01 -5.5738199393245607e+00 +1368 4.6852265161200570e+00 1.6560011338438929e+00 -1.5171707135331012e+00 +1367 -1.3625195600251612e+00 -5.6237536679347073e+00 -6.3884436188705509e+00 +1366 7.1366548261156719e+00 -2.5820301065024349e+00 -4.1372563484575089e+00 +1365 5.7470957644724618e-01 -1.0515922943043921e+00 6.3704154460267945e+00 +1122 -7.5446319165086413e+00 -7.5635189566406646e-01 -4.0666038392129145e-01 +1363 -1.1455378295380299e+00 2.1872930530049142e+00 -2.5639948509578594e+00 +1346 -1.2202208309266703e-01 -1.4543533719285560e+00 4.6148868070518549e+00 +1352 -3.3263133033516112e+00 -9.8612970292899571e-01 -1.8589092211914804e+00 +1350 -4.3275041554992768e+00 -4.4410718386859049e-01 -1.2798239688420106e+00 +1512 -9.9279753146710958e-01 1.0076799145673179e+00 -9.0013169799301962e-01 +1348 -4.3624967811485176e+00 -5.5864231873158925e+00 1.0104266697179591e+00 +1153 -3.6949189428628952e+00 6.3848374020191756e-01 3.2371764671595713e+00 +1543 -7.8686258110349891e+00 -1.6927658778535914e-01 -7.1040953245940630e-01 +1336 -4.2460104626682860e+00 -1.5522571407987646e+00 7.8823913269129839e+00 +1513 -6.6667367593736362e+00 -1.6519036920521033e+00 -5.4942357068611738e+00 +1334 -1.0416296428027505e+00 -2.0964577178706456e+00 1.0169249907546201e+00 +1063 3.4538256836363512e-01 2.2317782195473321e+00 -5.2217187227629323e+00 +1332 -1.1282826030452836e-01 -1.1344762143126315e+00 -6.0575633873069301e-01 +1330 4.1164888801072657e+00 -1.6533291371369160e-01 -1.2051287867004223e+00 +1320 -3.9169216012529060e+00 7.7281773126442754e+00 4.9488731746434294e+00 +1318 -1.9144034776001209e+00 -6.9117202119568546e+00 -2.3598853884862558e+00 +1349 -4.3166472205630821e+00 4.3378415970057986e+00 4.4961414536938040e+00 +1316 -4.6084037970710119e+00 7.3580949447287782e+00 1.0297279792803475e-01 +1314 -5.0393821738539808e+00 1.1044649295699098e+00 -2.3755307361278302e+00 +1047 3.8904379436047241e+00 1.3733383867770712e+00 1.8409119372711487e+00 +1987 9.7415633247075528e-01 3.8718625321341369e+00 6.1073727376515494e+00 +1479 7.6784740624678841e-02 -2.1016761930451140e+00 -5.2354213188064476e+00 +1304 2.0816126078749266e+00 -2.8233903931624780e+00 -2.1208518294368544e+00 +1989 -1.6386247764842413e-01 -4.4521883301257903e+00 4.5044728548974913e+00 +1302 -3.8225864834496419e+00 -1.4482745736407905e+00 2.5036568488722408e+00 +1300 1.0726238109659012e+00 -1.0398545801119272e+00 8.0949093278694473e-01 +1049 -1.3274427130265511e+00 3.7527862506670786e+00 2.1333569922676352e+00 +998 1.0736225751539523e+00 7.1941855027427950e+00 5.7421685548399175e+00 +1285 4.8327200602795528e-01 -8.1399321201753203e+00 -3.7564867852016661e+00 +1415 -1.2494906283889826e+00 2.3198923931733741e+00 3.2303099783817442e+00 +1351 6.1843616345322838e-01 -2.4563783840173912e+00 -3.2648882521145756e-01 +1288 1.5898305495150156e+00 -7.1790794907747013e-01 1.1944328886515676e+00 +1286 -5.5872731952606025e-01 2.0170765863028706e+00 3.0919203371120396e+00 +1284 -2.2377700175832600e+00 -2.0507999398229253e+00 3.2558223163278095e+00 +1233 1.5884555246779846e+00 -9.2164860809861959e-01 9.5110724362035992e-01 +1413 -1.6248607727746314e+00 -7.9695322604512009e-01 -5.3459551600803117e+00 +1925 2.7770470876070092e+00 -3.6164030441135711e+00 7.0274981728570718e-01 +1027 -2.3051123192485372e+00 -4.1543202024438353e+00 -6.1951553201982579e-01 +463 -3.9187735694153840e+00 -2.7815337049209345e+00 1.5136371266884012e+00 +1411 5.1878503301379739e+00 8.2434663140401390e-02 2.2231020190018196e+00 +1477 3.7161478803780024e+00 -1.1797248582294977e+00 -7.9228695216744898e+00 +1555 -2.2570176032073173e+00 9.0098490340682777e-02 -9.5301289572864256e+00 +1794 2.5199909816931281e+00 -2.2541498997354781e+00 -3.3150805312850244e+00 +1796 9.7798385689279832e-01 -1.7878961715893364e+00 2.8716466469658664e+00 +1798 5.1109484369454998e+00 1.5858908384218160e+00 2.7035109885331718e+00 +1800 9.0186463494494240e-01 -4.9577121699467313e+00 2.4059699313083689e+00 +58 -1.5942149367645599e+00 1.3114343781316826e+00 2.7868371477650431e+00 +1863 4.8012580699534935e+00 -4.7583809788188587e+00 -8.9849139561826306e+00 +961 -2.5778553369247423e+00 -6.8960061676632414e+00 2.2247455341491693e+00 +1587 1.0565051851684619e-01 9.1190747605447586e-01 3.3895716970016481e+00 +1814 -8.7201756260989960e+00 1.1042248856960131e+00 -1.0998305115689095e-02 +1816 3.8117533917456679e+00 3.6710082467258611e+00 -1.5835833265425263e+00 +1813 6.1037527336737493e-02 4.6758073564766702e+00 6.8504343737626936e+00 +1777 -2.2968405795056777e+00 -4.9341680772982288e+00 5.0128896720590124e+00 +1826 -6.7166350087467186e-01 7.7344071632935822e+00 -5.9089059202096095e-01 +1828 1.5986340468711540e+00 5.2417652157105123e-02 7.4825192267169036e-02 +1993 -2.4512962595628678e+00 4.6541262990262056e-01 3.5963505176711591e-01 +1830 -3.2374447985962989e+00 -1.3724279066845244e+00 6.9750314474900255e-01 +1832 -1.4516986273155157e+00 -8.0384904411734937e-01 -3.9071267059108798e+00 +1845 -6.7708325136244936e+00 5.0287844239530086e+00 -7.6607480420269647e-01 +78 -1.8665744722627273e+00 3.5364254104546511e+00 3.8863693446622087e+00 +1844 6.4974272456098470e-01 -4.8557230705474366e+00 3.3511566483706994e+00 +1846 -1.1125929542825812e+00 9.4392479262450468e-01 -1.0670938991104677e+00 +1848 4.5049137084655699e+00 -3.6657200110364361e+00 3.5423022679462774e+00 +61 -5.6195690344615501e-01 1.3992812596721622e+00 1.0614542636257878e+00 +1858 9.5036934450289845e-01 -5.9779457779706247e-01 -2.7232356696789113e+00 +1860 5.3052049837201167e+00 2.5524306756741457e+00 -4.6496535852022784e+00 +1862 -5.2255689406253660e+00 -1.0634524475454037e+00 5.7688971938137499e+00 +1864 2.1203930356940863e+00 -8.5226610693563021e-01 6.1956984648078643e+00 +2041 -1.4585225843445855e+00 2.7308241733472123e+00 -4.2247153436140232e+00 +156 1.9102442359917986e+00 -3.8032248406767226e+00 4.2922874691119270e+00 +2040 -5.3068882049073709e+00 -4.3342572818377828e-01 -7.5630805661614486e-01 +1874 -3.6002586513245394e-01 2.8024757806897713e+00 -4.5323624264486355e+00 +1875 4.8401067871149177e+00 4.1876839676013358e+00 -2.1877973548657459e+00 +1876 1.8836706214000662e-01 1.6038227812606909e+00 1.8080649162290543e+00 +1877 -2.1183654157116985e-01 4.1347786074271307e+00 -3.3352965880133763e+00 +1878 -5.4555278345205926e-01 -3.7475970216232235e+00 7.1005324857791425e+00 +1879 4.9528450217290260e-01 -2.0722796657723870e+00 6.7691388720255983e+00 +1880 -4.5702788095228293e+00 1.0205177202721540e+00 7.0063923566350637e+00 +1881 1.5819804409467724e+00 -7.2524420907615184e-01 5.8109555739690288e-01 +1890 -3.0048017516757271e+00 1.9021274969882094e+00 -7.3746480462927244e-01 +1891 7.4385732746140645e-02 3.4148063489134878e-01 4.0950236400425108e+00 +1892 3.0162684072002994e+00 7.5868626252461322e+00 2.3490231856408417e+00 +1893 3.0090367961783500e+00 2.8910421434522995e+00 -4.2619100640375933e+00 +1894 -2.7098314978950384e+00 -6.1293901481454443e+00 -6.6109588990335393e+00 +1895 7.7467885750132304e+00 2.7386477575333759e+00 3.2258057865538681e+00 +1896 1.5099644006882116e+00 3.0424677338597141e+00 2.2001333871571442e+00 +1897 1.5220885997184490e+00 3.3163034067083901e+00 -6.8917771111338881e+00 +1906 1.2835722234562692e+00 1.8622100050362873e+00 -4.2438665317506669e-01 +1907 -4.0962130984633847e+00 3.6685541510396026e-02 -1.0142741006946250e+00 +1908 -5.4293737335836489e+00 -6.3584486102179669e+00 -4.1388568725126884e+00 +1909 -4.4159031922026752e+00 1.4727124177585591e+00 3.7479183371334983e+00 +1910 5.3666487569531398e+00 -1.5910026699369273e+00 8.1339680857962537e-01 +1911 2.0541463701924195e-01 -4.3656851715651168e+00 -5.9289660424877777e-01 +1912 -9.5142622659489327e+00 2.7416504411100706e+00 2.8969930534520509e+00 +1913 -8.1370454142763082e-01 -7.6875690604111204e+00 -2.4580672899327243e+00 +2025 -2.4326759045409454e+00 -2.4416771020776542e+00 2.4214250235097183e+00 +1812 -8.7391778029126244e-01 -2.8817616745543617e+00 7.4206755271447982e+00 +1924 -4.0737492062676750e-01 -6.1999400230383328e+00 1.1173313283157511e+00 +2024 9.4397293448502573e-01 2.6694497753166759e+00 3.9783195736432204e+00 +1926 -7.5052673820611995e-02 5.8547303915712501e+00 1.6001768317213164e-01 +2039 -8.1047149413917430e-01 -8.7327629272002465e+00 2.6096293247060722e+00 +1928 -5.2181191404923473e+00 -1.4958266352772143e+00 3.7463893589179533e+00 +1475 5.2740391887370315e+00 -6.9696049616585869e+00 -5.3613727917956995e+00 +2023 -1.0221510183513254e+00 -1.6178328204005838e+00 1.8129540808208029e+00 +2038 -1.4199058302125614e-01 2.6000427827693371e+00 1.8705643367994012e+00 +1169 1.1498505729487469e+00 9.9751985353824668e-01 1.8592201599624409e+00 +1939 -4.1758590538702309e+00 7.2067351142216218e-01 4.5996257855342746e+00 +1940 -2.8421105307512418e-01 -4.2304742039451559e+00 3.2871428543864174e+00 +1941 5.3875192148902764e+00 -6.2557680335861066e-01 6.8435780350055833e+00 +1942 -2.0407113714546066e-01 -4.0257893256274446e+00 -1.8212883398053248e+00 +1943 -1.2436873165658875e+00 3.7371293775108367e+00 -3.2755280945236169e+00 +1944 4.9869003184489022e+00 -2.0130151997182337e+00 -2.3992031044023876e+00 +1945 4.5571173879955520e+00 -7.1513428899260250e+00 -2.3583421131493236e+00 +1954 5.2127342246498403e+00 2.0934944997730414e+00 -3.4951814525116656e+00 +1955 3.9084672810641865e+00 -3.4628673163062587e+00 -1.1625911176880290e+00 +1956 -1.4043083550311746e+00 9.1082432487188513e-03 -2.6958707998968108e+00 +1957 9.4687939223752871e+00 -9.6211218110976171e-01 7.6542662475084651e+00 +1958 -2.2047069095538063e+00 -1.1176304653654471e+01 -3.0250637443144651e-01 +1959 5.4588100413439156e+00 -2.9734280890089249e+00 -2.4915614902759127e+00 +1960 8.6105484233100049e-01 -2.1291668598985578e+00 1.5207417735564932e+00 +1473 -2.4981751325425847e+00 -2.8498716372084849e+00 -6.0206068313127172e+00 +1971 -1.8343372198785854e+00 -6.2647601866841063e+00 3.8545227418840624e+00 +1972 -6.6067990655008346e-01 -1.2965071990721722e+00 4.5432825183914138e-01 +1973 3.0557015190214742e+00 -5.4460946998739397e+00 1.6394342102678119e+00 +1974 3.2787076457675415e+00 -1.8484123157485560e-01 1.0074967684803624e+00 +1975 -2.4979392435620928e+00 -5.9706460816390932e+00 3.6816200929719889e+00 +1976 -1.9212989459339291e-01 -7.9791587617204185e-01 -1.2254135380234847e+00 +1977 -5.9403317646001721e+00 3.9474319584274711e+00 -4.0571778831698362e+00 +2037 3.8945946816347625e+00 6.8368909970257814e+00 5.2109284846573134e+00 +214 1.1237458991567693e+00 -6.7800205192475538e+00 9.0455167767983424e-01 +2022 1.4999899542890689e+00 -3.5611524168791240e+00 1.5683511949659574e+00 +1988 2.1689848724954501e+00 -2.7572670971592235e+00 -3.6670581073390682e+00 +2036 -9.6350950316243933e-01 4.2761201947166221e+00 -5.6417221235965007e+00 +1990 -3.8655132141273469e+00 4.0023471915386288e+00 -5.7047212827114482e+00 +1992 -3.0762193690923652e+00 1.7895213912773358e-01 -6.6595051318482035e-01 +1618 3.5372149262516950e+00 -3.9176129239054349e+00 -3.0975422214715667e+00 +1698 -5.8637730647050006e+00 1.3438415298495934e+00 2.5057745421369333e+00 +1859 -3.7626368150457572e+00 3.0308140029353852e+00 4.1636764028485533e+00 +2002 2.5858568620910067e+00 -6.3271976167358912e-01 -6.9026509377809075e-01 +2003 5.2761765716218143e+00 -6.0588792008803072e-01 7.2793692562225665e-01 +2004 -2.0193741320286978e+00 3.9933125801130469e+00 2.1502847743241569e+00 +2005 3.5990447138057506e+00 2.2002016659495123e+00 6.9541303992012100e+00 +2006 -5.0521266720725801e+00 -6.8007771953165985e+00 4.2727220692232173e+00 +2007 -2.4640577036615219e+00 -3.2065678766474903e-01 -1.8087884805985954e+00 +2008 -1.6445748678961307e+00 1.2276883253985134e+00 -4.1698324396633826e+00 +123 7.0640127204183649e+00 -9.1654227350631101e-01 -4.0851167294691511e+00 +2019 -1.0183854050786543e+00 1.7384474314205873e+00 -2.2564438001439804e+00 +2020 -3.0717372579688433e+00 -4.5488805717834406e+00 -6.2534214135747233e+00 +2021 4.2142836765554206e+00 3.8700034085473978e+00 8.5152658044263285e-01 +1353 1.9527185622585943e+00 1.9494930814818008e+00 1.7451703582650273e+00 +1589 -1.5481606978439393e+00 1.1743701568955294e+00 -1.3441650301836023e+00 +1559 -1.4226750946660025e+00 -9.2813098559713758e-01 -3.3235220480130601e-01 +1815 1.6481134822304309e+00 -5.7114295607830899e-02 5.4447597325718278e-01 +1575 1.1747015660416993e+00 -2.7151172361541547e+00 -2.8691325530659468e+00 +1829 -1.2086298099363189e+00 1.2865119744723619e+00 5.5920834846341680e+00 +1539 6.1208329463979156e+00 1.5712696591525727e-01 -1.0464981565037050e+01 +1861 -3.7297137748959965e+00 -2.1001605058902291e+00 1.3274530024355682e-01 +1991 -2.2939345111532927e+00 6.0191043418721533e+00 -2.0729957847907654e+00 +1795 -2.5889647444740587e+00 2.0217991072638601e+00 4.9109072119303283e+00 +1538 1.3654350855762245e+00 -8.6192226255283277e-01 -4.7332919447469965e+00 +1811 4.5664826583075513e+00 -2.9022654405411865e+00 -3.1090090359812610e+00 +1540 2.4768415523158152e+00 5.2336945085916642e-01 5.7680747460915160e-01 +247 -4.9983001653988905e+00 2.8151805065895288e+00 2.2793934132536588e-02 +1542 6.6076220973585320e-01 9.0623624053396112e-01 -7.6293976741225737e+00 +1305 2.4414340247734878e+00 -9.6603129993746806e-01 -2.3675837992818622e+00 +1544 6.0069472045050698e-01 -1.6216365777481440e-01 -2.1175166118319391e+00 +1045 -2.4979656892974549e+00 -1.1578887370023963e+00 2.2829391688360525e+00 +1301 2.9486707714778110e-01 -2.9363837770636145e+00 -1.0340606532824994e+01 +1335 1.3992718471039525e-01 1.2281585875341852e+00 9.1579082648791921e-01 +1303 -4.8643179708271073e-01 -1.9139322894516642e+00 6.4736520352430393e-01 +1057 -2.9140471094767824e+00 -7.7887491444725176e-01 9.2978626004037324e-01 +1223 1.1037495178101093e+00 5.2761235758567038e-01 5.9378040067672211e-01 +1321 2.9647363264085782e+00 -6.3033221949875342e+00 -5.5207560635257469e+00 +1059 -2.5711297299847273e+00 1.5689792769148672e+00 1.5441559536779720e-01 +1545 7.3520964152499024e-01 -2.2871500590765494e+00 5.4852449348896366e+00 +1671 1.0287336583486766e+00 9.8688600026548101e-01 -2.0386438932818951e+00 +1252 1.8190575413618002e+00 3.3679504128300923e+00 -3.5252810999867885e-02 +1985 2.6018523382560215e+00 -4.6460302728300804e-02 8.6420636440612375e-01 +357 5.1355905124375634e-01 6.8954600270407189e+00 -1.6547320653900208e+00 +1938 -6.0467614551920290e-01 -4.1007672845114884e+00 8.1281441118080693e+00 +1241 -2.9964945533680947e+00 3.6862364396015090e-01 2.8892323788078347e+00 +1240 1.7592267323156203e+00 -5.9926048522566866e+00 -3.0163811393207483e+00 +1239 -6.5351823828990305e+00 -8.3370931473724197e-01 -5.8226253765951128e+00 +1238 1.3662953065238477e+00 -2.8043260580826361e+00 1.3450909087705605e+00 +2033 4.5947034651600056e+00 -5.0212466168648664e+00 7.0595168284191550e+00 +1817 5.5507948975034438e+00 3.7094457093871580e+00 -2.7228224059641111e+00 +1410 -4.7116156233956374e+00 -2.7392678496372431e+00 -5.5122319864109837e-01 +1541 -5.1998532250540599e+00 -9.6343911239224074e+00 -3.0635751387795565e+00 +1593 -1.4547274898908531e+00 1.9670480115350302e+00 -1.6464742735155089e+00 +1609 -5.3512361396632464e+00 1.7433147079552103e+00 4.0012035835067811e-01 +1097 3.4100890920660918e+00 -1.2684715190942912e+00 1.9773000335988238e+00 +1161 6.1147964998759263e-01 1.5194347475625756e+00 2.4940226640584640e+00 +1571 2.6571790814602640e+00 -4.1404494791819761e+00 1.9209512188938147e+00 +1225 -4.2774878064480104e+00 4.8258151896402159e+00 -1.1132389271862444e+00 +1095 6.9679421628402887e+00 -8.8631155147910035e-01 6.0059111658737996e-01 +1733 6.8629861984652971e-02 2.6858696276117380e+00 -1.4464923874040090e+00 +1557 3.3447190892836148e-01 1.2066301942576943e-01 8.6759153313076398e-01 +921 -2.7774964114166152e+00 -2.8871904361750405e+00 -9.2023051089819807e-01 +223 -2.2460784808267700e-01 2.5017779513524901e-01 5.3546895371853251e+00 +1157 2.7582080479018583e+00 -8.0881080701849744e+00 1.2736149348733172e+00 +1847 2.1820218125391557e+00 -2.2066042015770790e+00 3.0983714811256693e+00 +1737 1.7134739449297276e+00 -4.7423360807632413e+00 -2.3892737747078403e+00 +1766 -3.1145079941319493e+00 -1.0374974078567232e+00 -2.0106436433594284e+00 +1765 -6.8178851440035029e+00 5.5883145887248773e+00 5.0159808672730355e+00 +1764 -2.1554582316703352e-01 -1.5061915894614302e+00 4.2154530092984226e+00 +1763 -3.6265863259591309e+00 1.7272332756747408e+00 -3.5919932271915238e+00 +525 -3.3457030052313641e+00 2.7209891173254923e+00 1.5474107904029395e+00 +1753 -1.1837293684149164e+00 1.4699386886996368e-01 5.8426177225137961e+00 +1752 -5.9996560139584618e+00 2.4145381340759342e+00 3.1914897921236951e-01 +1751 3.2029578964247265e+00 3.0711244888346410e+00 1.1546999875704620e+00 +1750 4.3929203676832218e+00 2.8028378789035999e+00 -3.7049713227993757e+00 +1749 1.1459302515306027e+00 -2.4385433808618213e+00 1.3184595172274829e+00 +1748 -1.3789912429291887e-01 -1.3339964596793332e+00 3.8010163841187850e-01 +1747 -2.0249477654130996e+00 -1.6804001094388091e-01 3.7422285493546958e-01 +474 -4.7907553370384628e+00 -7.9960813850329053e+00 -1.0689426166965637e+00 +1736 2.7134634280925547e+00 -4.9289170853630973e+00 -4.4403152580023414e-01 +1734 1.5280793227997875e+00 3.9946021504036022e-01 2.5265076918407772e+00 +1768 7.8109329613371488e+00 -1.5325567424221473e+00 -4.8652559265480386e+00 +1732 2.9126864648029511e+00 1.2959307163454012e+00 7.7028434609433436e+00 +592 -3.7807856516197647e+00 4.8315345564449927e+00 3.6051161912973537e+00 +1730 -5.8738542489986756e+00 -1.1097107356456102e+00 -2.9390673838599883e+00 +1769 -7.3832689685593345e-01 -2.4513812264287820e+00 2.5283098991286240e-01 +1721 -3.3542155871569768e+00 -1.7324588185271006e+00 -2.5282898347716459e-01 +1720 -9.4682454435211227e-01 3.6893685532712767e-01 1.1038144896754584e-01 +1719 -3.8572028544385737e+00 -4.2670731969504549e+00 2.4866025769215856e+00 +1718 2.0953197536496715e+00 -3.0402436516416653e+00 -2.8744547332357895e+00 +1717 3.4146817324936611e+00 -1.3064225584060540e+00 -1.7171702791437145e+00 +1716 5.8608369147672166e+00 1.3070461700098599e+00 3.7091441931979414e+00 +1715 -1.4729501829075278e+00 -9.5763976031274889e-01 -1.6585528630998405e+00 +1665 1.8809029364673384e+00 1.1976744684928513e+00 2.3590855669654189e+00 +608 -5.9627569198458286e+00 -4.4879635321478304e+00 3.5180821085949057e+00 +1705 -3.2929611904657818e+00 -1.2321308023906563e+00 -1.1196011736417590e+00 +1704 -5.9429061834742436e-01 -6.3899640542316618e+00 -1.2646639789722824e+00 +1703 3.9588132451575060e+00 2.5309177724994630e-01 -2.7303405018789593e+00 +1702 -1.2528571483511228e+00 -1.7842492911997740e+00 5.5938179982182556e-01 +1701 2.5510806472411400e+00 -3.2559819918133437e+00 3.3470806651477218e+00 +1700 3.9969909348944195e+00 -2.2240030830462056e+00 3.0006328833994194e+00 +1699 7.1422721151458797e+00 5.4284742314078454e+00 8.9091228246363352e-01 +1521 -5.8375334255045130e+00 -3.1451824309268046e+00 -4.2839341418911339e+00 +1689 2.9678941741723031e+00 -1.7768308958527146e+00 1.2356715529031785e+00 +1688 1.6081569020415898e+00 -8.1014708256883561e-01 -2.7049097413136765e+00 +1687 -6.5990857752518597e+00 -5.4244359189921152e+00 8.9942259888801566e+00 +1686 -4.1910976618108844e+00 -4.2437518080799732e+00 -2.0494583193852572e-01 +1685 2.9186553659912744e+00 -1.1076457119907765e-01 4.2492628113868680e-01 +1684 2.1469241600653666e+00 -3.6304401001164704e-01 6.0935048380191521e+00 +1683 -7.2023285261361689e+00 -3.7466686231832687e+00 -1.1401361270583998e+00 +2545 -3.3309373072334840e+00 6.4771301331235176e-01 -4.1666437214132648e+00 +1237 -1.3830901579445334e+00 -4.4924799533214266e+00 2.6362716653647804e+00 +2385 9.9447828657745352e-01 2.5018248100754357e+00 -5.6324188470922625e+00 +1779 -1.1856267949686397e+00 -2.4549535670833413e+00 4.7448296609503435e+00 +1780 -5.4454798209088597e+00 -1.1383427251860354e+00 5.7842765604596638e+00 +1781 -9.4373084569156163e-02 2.3642834871129925e+00 1.5772139633672984e+00 +1672 -1.1116700795396988e+00 2.0726003630657139e+00 2.0154358553256948e+00 +1782 -4.7869847406168171e+00 -3.6469671647905506e+00 1.0098694948148335e+00 +1670 5.1502160327442814e-01 2.1886548833634292e+00 -1.3722070277412752e+00 +1783 -1.8420814820928177e+00 7.9740338708887060e-01 -1.2260834523511586e+00 +1668 -2.8356113187381768e+00 1.2773680022274987e+00 2.1646420480326864e+00 +1784 9.7581882571313217e-01 -8.9462821011426275e-01 -1.2311879061785933e+00 +1666 4.9154700509374925e+00 -6.7819135156517063e-01 1.3129895690642779e+00 +1656 -6.0436950735461137e-01 -1.7750740037449459e+00 8.3141768951132877e-01 +1655 -4.1959155231151062e+00 1.5757989791869400e+00 1.1875195759705426e+00 +1654 5.1745780856806816e+00 -8.3452096004386855e-01 -9.4330930915887101e-01 +1653 -3.2384496059880612e+00 -1.3712296934088020e+00 -2.5865261161861683e+00 +1652 -1.1587336500745158e+00 2.6665298806274791e+00 -9.6716423371143456e+00 +1651 1.3829677653893799e+00 -1.4122778915857432e+00 -3.8881700974644301e-01 +876 -1.8175624604014904e+00 3.8629231323839733e-02 -1.7424208934656258e+00 +1641 -1.8318588207829531e+00 -2.8290799062191491e-01 2.1798439551814197e+00 +1640 2.7779708550412687e+00 3.8974163223348319e+00 6.9761941855568601e+00 +1639 6.4788349871707389e+00 3.0096694805711999e+00 -5.8532106530273742e+00 +1638 3.6843956707892032e+00 -2.0364679069685035e-01 -9.9676054456318877e+00 +1637 2.2204345677587085e+00 -1.7329989001735566e+00 4.8970741347273597e-02 +1636 4.4239244527197230e-01 -6.4339250953920208e+00 4.1895215162972876e+00 +1635 -8.8489090816285609e-01 1.6481980824144389e+00 5.7895509719431608e+00 +831 4.8831510141726833e+00 -1.5651449447691135e+00 -1.4398846252788253e+00 +1625 3.4347580617251156e-01 5.3788704154772174e-02 -8.7021245591142105e-02 +1236 -8.7727762268107252e+00 -1.5375350996162157e-01 1.2955025405441256e+00 +1624 -1.0215763312340620e+00 7.2345926631226543e-01 -3.3798103271910023e+00 +1623 5.8491589358713156e+00 2.7229014831828859e+00 1.4717117639610171e+00 +1622 1.5039753313363060e+00 3.9478146601511437e+00 3.9499003522354896e+00 +1621 -2.2647872606539017e+00 -3.3953967024990157e+00 3.5489075719381709e+00 +1620 -9.9989773283617944e-01 7.4925695920931430e+00 -3.3610282350982672e+00 +1235 1.2198667792932778e+00 2.1485065436802304e+00 -1.6590050981732132e+00 +1619 3.4804057548708709e+00 6.0701584285198225e+00 -9.6875614626393169e-01 +2017 -2.7608932584643942e+00 5.0944876163417261e+00 -7.1684745621133461e-01 +1608 2.3210421174171647e+00 4.6382614130349120e+00 2.6482014999873282e+00 +1767 -2.3259451405670903e+00 -3.9206220816221689e+00 -2.3363706339381589e+00 +1606 2.5256587105518769e+00 -1.4291149634085654e+00 2.9703122354577141e+00 +1604 -2.5176188872106833e+00 -1.8511961732818840e+00 5.1805064938085579e+00 +1602 3.3207553016625062e+00 3.9097333363320392e+00 9.5008542678525668e-02 +1093 1.0429456795003592e+01 -2.7152771228262256e+00 5.8053968393675008e+00 +310 -1.8153755571838187e-01 -3.2521625598507122e+00 -5.5750985193605640e+00 +1234 3.2059805515704585e+00 3.6451596222005440e+00 -7.9854244198096114e-02 +1219 1.0771063399573844e+00 3.1497795133150597e-01 -2.2766854806542094e+00 +1592 -2.7441945275271560e+00 -2.8096185169724797e-01 2.2282042320643991e-01 +742 6.8032554290538094e-01 1.9884385859398404e+00 -1.9909809773063836e-01 +1669 -2.4745208786549471e+00 -1.7575156217084698e+00 2.8075431012303693e+00 +1590 1.2885874914899778e+00 -7.9740476428396745e-01 4.7660807925926925e+00 +1221 7.8172445681146152e-01 9.0062164743761153e-01 1.8805401429711566e+00 +1588 -2.4357366925781754e-01 4.3157937608697923e+00 5.5417141891609720e+00 +1831 1.4382442288324111e+00 2.8646207856157231e+00 -9.0089942719304072e-01 +1843 7.6159365555054865e+00 -5.2102854535649168e-01 2.1746559196381976e+00 +1091 -3.6905960516146661e+00 1.9728142102436685e+00 -3.1195255915418685e-01 +1603 -5.6635191015353736e-01 -2.9583538057943439e+00 7.7497697517969766e-01 +1576 1.1954009567185664e+00 2.9014893673990962e+00 -5.8542172971164392e+00 +1605 -9.6361130212537416e-01 -1.2486041284732776e+00 -1.5781324802333332e-01 +1574 -2.6103660491523581e+00 4.2363982278448731e+00 -5.0968623428581505e-01 +1572 1.6591196267151520e+00 3.8827348889126232e+00 -4.0555532670361165e+00 +1591 -7.7134539302788774e-01 5.6804268730364251e+00 -5.0364060649869069e+00 +1570 6.6998052632606200e+00 4.4928516565696675e-01 5.7111381554490892e-01 +1254 -5.1847223332638528e+00 -4.5911390389929757e-01 3.7700553651243864e+00 +1560 -1.5394448353623775e+00 -1.0984228649002259e+00 1.3026748752550212e+00 +1558 -5.5973854943729000e+00 3.1342389690153887e+00 -7.5591873571528556e-01 +1607 -3.6874700016012469e+00 4.3449156652109616e-01 5.4199254490221016e-01 +1556 -1.9991290720156003e+00 1.5870318069925191e+00 -2.9632646601564363e+00 +1554 -2.9199059925403774e+00 3.3477530299049070e+00 -4.3983984301760888e+00 +1731 -6.3847358759936919e+00 -6.5387007052055168e-01 -6.9132212264465198e-01 +1573 3.1764290464497602e+00 1.7367928530111634e+00 -2.7481175358930412e+00 +1673 5.5650558068542875e+00 -4.7280006904422986e+00 -4.1024413065519916e+00 +2529 5.1768090848636605e-01 1.9774109359239802e+00 1.2522608329420775e+00 +1075 -2.0204286858940939e+00 2.8549545340493858e+00 -4.7064605411021576e+00 +1028 -7.1083111452450376e-01 2.6699979890443890e+00 -9.6895797308810039e-01 +1030 -4.8938849854296809e+00 -4.7376446716554614e+00 -9.7762215499907708e+00 +1032 -4.5837336178149197e+00 -4.2765906833260310e+00 -3.3517377535361659e-01 +1061 1.1452238847621872e+00 9.4366750619172246e-01 6.2800433575775072e+00 +1801 -2.3035437022617562e+00 5.1659516993252268e+00 5.3425077932857068e+00 +1331 -4.8074185054761589e+00 -1.0881227711201822e+01 -1.8080228559419029e-01 +1031 1.5677682695084728e-02 -3.8879879491008094e+00 -5.5894150451507043e+00 +1042 3.9473527803797750e+00 -1.7410364581851017e+00 2.5824860198358540e-01 +1044 3.4647177479822022e+00 3.2732964269993490e+00 -4.0283698467557230e+00 +1077 -1.4657985614745723e+00 9.1579529612059907e-01 4.3831332317488565e+00 +1046 -4.6648902970849946e+00 -1.7857343928462412e+00 6.5356566940429737e+00 +1299 -1.3935158415366540e+00 2.3785105219939520e+00 1.4877528312005308e+00 +1048 -1.3673607152812020e+00 2.8161015818425530e+00 -2.9991296556141506e-01 +1333 -2.7015308496513417e+00 5.7024126981018837e+00 -1.7189311979417277e-01 +1337 -3.7085369631576994e+00 -2.9672254486414427e+00 3.6950261043703194e+00 +1319 -1.0536328381882398e+00 -6.1255863664693848e+00 3.3868424931326420e+00 +1937 3.7347152273643838e+00 3.7424719562312618e+00 1.2106504877112896e+00 +1735 -8.0424425522889251e+00 -3.5909335835882072e+00 -9.4050028364527849e-01 +1060 6.9028600880263360e+00 -7.4344578256564808e-01 2.4567247933383176e+00 +1289 -8.0565117036714928e-01 4.5689628428103912e+00 3.5843839922942000e-01 +1062 3.6571226461085915e-01 -1.3275726904601517e+00 1.8789899794859168e+00 +365 3.5981349374008329e+00 2.2333731845007962e+00 1.1454131379244588e+00 +1064 -3.7476363698838107e+00 7.1704965971590751e+00 -2.3789189198647160e+00 +1317 5.0924281678425407e+00 5.8860100681976302e-01 2.7264466506435445e+00 +922 3.0329703268235814e-01 4.3876776838322789e+00 4.9069952181359682e+00 +1287 5.1496148287112762e+00 -3.8516142598135694e+00 -6.4312542612641650e+00 +1074 1.7242545837365839e+00 1.8469362380957788e+00 -3.9965806837147539e+00 +1076 8.3075555774755772e-01 -4.7845228108673137e+00 9.1429806860214455e+00 +1078 -3.0387412775015714e+00 -1.1539410240600354e+00 -6.9539358228984116e-01 +1080 -3.3117555830773160e-01 -6.1428824395459936e+00 2.2925644163129562e+00 +601 4.0819749746651208e+00 -1.3660083657874347e+00 4.3237205737359075e+00 +1079 4.1248057494840449e+00 -4.1266264686565218e-01 -6.7840168983249107e+00 +1092 1.8318169642716302e+00 1.2887435677998613e+00 3.4035460704853504e-01 +1094 1.5880859092539437e+00 1.3836050017131964e+00 4.0096896368231585e+00 +1096 2.7137581910834165e+00 2.4955147538451392e+00 -4.6410448989891631e+00 +1159 5.8217872688183618e+00 -4.5519539513086968e+00 2.3639221227732787e+00 +1253 5.0522227679253744e+00 -1.0425136773190868e+01 -6.4899212342990573e+00 +1273 7.7536847520362153e+00 -8.1480519089013481e-01 -4.2327785390090655e-01 +44 -6.9945652583056261e-01 -8.2460466083956108e-01 3.3722750085613269e+00 +1106 2.6377206636799535e+00 7.0018423492812509e-01 2.4408397574191509e+00 +1107 -2.0043083998092756e-01 -5.8531616537149145e-01 -3.0528868901224100e+00 +1108 2.0023107945909259e-02 -2.3464308638982323e+00 -8.3937243573099951e-01 +1109 -5.7003454418128832e-02 2.7231824739501054e+00 4.0615319170758939e+00 +1110 2.4479107119361654e+00 5.6821450986320903e+00 1.5942734162509906e-01 +1111 2.7396287413766243e+00 -7.5982332128394658e-01 -8.2478925668557643e+00 +1112 9.4344198932532419e-01 1.9252641753217652e+00 -2.4380104183815181e+00 +1113 3.8957962754816644e+00 -2.9292295979029217e+00 -1.0017639260471829e+00 +1922 -1.1598832792787286e+01 -9.1173817152720182e-01 1.1136683661988842e+00 +1123 1.6331566089703775e+00 -3.7721831194777131e+00 2.0671193482032235e+00 +1617 2.0230604163276773e+00 5.3551601779055709e+00 -2.1602038705262601e+00 +1125 -8.3265914950779074e-01 -1.0913310989465377e+00 1.0561665518819983e-01 +1126 -9.2972034135641679e-01 4.9700225817525281e+00 4.3675158362610098e+00 +1127 2.2428992861804393e+00 7.0595304518528392e+00 -2.3874096937794698e+00 +1128 -1.1377612607650209e+00 1.6818111533368985e+00 2.8406866488813698e+00 +1129 -1.4437299049702073e+00 -4.8283692338953905e+00 8.5566768987423902e+00 +1138 -5.9606795352821091e+00 3.4392462080869119e+00 -3.3408162937181407e-01 +443 2.1932639789217663e+00 3.0343951363410854e-01 4.4406793298031486e+00 +1140 7.7936553083757749e+00 -1.4198148463699489e+00 -1.0342773008281860e+00 +1141 -7.7613927739558686e-01 4.8035688233360503e+00 -1.6754989271180931e+00 +1142 -2.8175187961963100e+00 3.2428351943280456e+00 2.3023214737660904e+00 +1143 -6.0869227518888436e-01 1.3749790438731087e+00 -6.9909335640904380e-01 +1144 4.1195333537662060e-01 6.2648011314330487e-01 3.6093327484062572e+00 +1145 -2.8475272022552982e+00 -1.9599352718070495e+00 3.1512433594879790e+00 +1272 -4.4673795758558494e+00 -7.1274991116871322e-01 -5.2199884949297093e-01 +1681 -4.1108946955039434e+00 1.8131611552437474e+00 -2.4843701795798099e+00 +1257 -2.9092553037444285e-01 1.7369534554891564e+00 5.8723254413015082e+00 +1156 6.1252482623419757e-01 2.5167288497450717e+00 1.8596575873806958e+00 +1271 3.5544388525370652e+00 2.0275209578643234e+00 -6.0161179933768008e+00 +1158 3.2804919864994342e+00 -1.4145291548350094e+00 4.0113393383383373e+00 +1256 -2.4997195186853145e+00 -1.6665890222597162e+00 -7.0117627995087650e+00 +1160 -1.2341335513749283e+00 -4.6097254985153979e+00 -2.7066593731296922e+00 +1270 -3.5924480553805096e+00 -3.9471738103889260e+00 4.9399656175828826e+00 +1089 1.8206597874404105e+00 -1.0172952108811353e-01 2.3305675203914373e+00 +1269 4.4655525845014132e+00 1.6190886025716695e+00 4.6919802967253146e+00 +1255 6.2304231949476714e+00 -2.1538203099645279e+00 -2.9829356171719286e+00 +1537 7.5525735609154254e-01 3.1530697254134963e+00 4.1644806993816736e+00 +1171 1.9650443389012187e+00 4.6989462463282194e+00 -5.1527578739499891e+00 +1172 2.7149485096316011e+00 1.0807705850235043e-01 -4.3007187832572935e+00 +1173 -1.5770100871965991e+00 -1.1305882031396421e+00 -1.8649579392584690e-02 +1174 -6.3325292972593961e-01 4.0679891738284377e+00 7.6237916863157951e-01 +1175 -4.8051292278490125e+00 2.4679879139907763e+00 1.7718456064623627e+00 +1176 4.4164064706087769e-01 2.0708862748430774e+00 -3.7954425876892878e-01 +1177 5.9456328785262818e+00 2.0988494586989153e+00 -5.0657725146732488e+00 +2034 -2.3516478053804830e+00 6.8476214517529832e-02 1.8386467011842986e+00 +1523 1.9670043678279772e+00 -3.4938498212120388e+00 4.1862921197592149e+00 +1187 -5.7908568246017573e+00 -7.0359279345789494e-01 1.3877803641662907e+00 +1188 -1.0054246647125973e+00 7.6858898045035628e-01 -2.8064896139218405e+00 +1189 1.0477770988664168e+00 -7.8267970653435039e+00 -7.4201741236157952e+00 +1190 2.4642045091596443e+00 1.6078538403049203e-01 1.6575954779227389e+00 +1191 -6.5834419296923370e+00 4.2874615070930409e+00 2.6417927503553695e+00 +1192 -4.9488916975262525e+00 1.5604532058702514e+00 -1.8428624809316341e+00 +1193 -1.1490883823193470e+00 3.2532509731708292e+00 -2.5870918736692677e-01 +1553 2.2961395687085355e+00 5.3312012942393816e-01 -1.4739086018427219e+00 +1347 -3.1888823881264163e+00 -7.4387512181177284e-01 4.0513378580386394e+00 +1203 -4.2096020643694931e+00 -8.2595745892603674e+00 7.5188120247375179e-01 +1204 -2.0680411111861128e+00 4.0743350647678831e+00 4.1167211973869788e+00 +1205 1.1945624542443378e+00 -6.1936869679879263e-02 -5.5528373050047817e+00 +1206 4.8169508245698794e-01 5.0213137215420311e-01 2.3776721489221275e-01 +1207 -7.0715318137017462e+00 -1.3789740413443538e-01 -5.4334600391625598e-01 +1208 2.1003896810220350e+00 -1.6981145520231060e+00 -9.2302076411428635e-01 +1209 3.3175539113092114e+00 5.5047357363591125e+00 -7.3391987958793976e+00 +1268 2.3173531320949139e+00 3.1166353335778330e+00 -3.3559929666614279e+00 +86 2.6047310153967191e+00 -1.2064201247359152e+00 -3.6783959948246783e+00 +1827 -2.6804373944848829e+00 -2.0803363885901507e+00 1.3571760491452234e+00 +1220 -5.3577980197259594e+00 1.0408000088640235e+00 2.8880319656590325e+00 +1364 3.1216671616006195e+00 -5.2857180450047876e+00 -1.0800347050497527e+00 +1222 -4.4980804997936036e-01 -3.6176221090558487e+00 4.2879914890294701e+00 +1201 -1.2663460373903164e+00 -7.4081200904245259e-01 1.5495628927165850e+00 +1224 5.7181218513559475e+00 -5.7893260682419838e-02 4.8418466326434277e+00 +1155 1.3601890853301621e+00 1.8622083284387017e+00 1.2636119238061347e-01 +1805 -2.9200030484042960e-01 -2.8887157859851742e+00 5.0366659061249939e+00 +1081 5.3117381119712825e-01 2.6515627356311948e+00 1.9211703912559350e+00 +1933 -6.6044186908978664e-01 -4.8720456294865047e+00 -3.0264320107982310e+00 +8 4.1527371683428314e+00 1.4519629272897838e+00 3.1291045871283805e+00 +1867 2.4389419967923813e+00 8.8763175892160966e+00 2.8168761093574965e+00 +1997 1.2023880252582391e+00 -1.8628165046373448e+00 6.3497792060965921e+00 +1065 -2.2315059333363401e+00 4.8752970872120871e-01 2.6106537934755203e-02 +1504 3.7393276879922568e+00 -1.3855876847545376e+00 -6.3422074140992573e+00 +1503 2.2211224824138771e+00 -1.9116850982222788e+00 -1.2988701487800205e+00 +1502 4.6261843000862344e+00 1.9457612722723574e+00 -1.2822828731927542e+00 +1501 2.4063255245023156e+00 2.0729797921181328e-01 7.0848859318742443e+00 +1500 6.8564674198417199e+00 8.0542781033465660e-01 -1.0241552801856967e+01 +1499 4.9641802995143989e+00 -4.2964099439439556e+00 4.2615278647412378e+00 +1498 -3.2649302043852320e+00 -1.2141039728005321e+00 4.6110969793121299e+00 +1497 3.3753666266260203e-02 -7.6541185029603631e-01 -4.2579485668457666e+00 +1488 -1.9421581622850810e+00 9.3217097479401601e-01 -1.2387386783524315e+00 +1486 5.0279765408179937e+00 1.6144206801351828e+00 -5.3611141674372731e-01 +1484 2.7969178734662772e+00 3.0323275857574616e+00 -3.6615430341895960e+00 +1515 2.9708186007573141e+00 3.3281332331437072e+00 7.5942475619690064e-01 +1482 -4.9924962720287308e-01 -3.3556385337561760e+00 -1.4038400594550731e+00 +1871 5.6385700848809950e-01 1.3442840378107062e+00 -4.4703536013163792e+00 +1472 -2.8060536328719321e+00 6.9594005174239379e+00 6.0938859080751211e+00 +1471 -6.0599041671771960e+00 -1.2793395585848426e+00 1.8912306811396697e+00 +1470 -5.2387564337802637e+00 4.2669946120915125e-01 3.4450989781837205e+00 +1469 -7.0314549891305156e-01 -4.1410602366530185e+00 -4.0621948797146770e+00 +1468 -5.7002974094513128e+00 -1.9239788616999010e-01 -1.6626805969014918e-01 +1467 -8.8625411282435218e-01 -5.5168182439911631e+00 -2.0758200307717583e+00 +1466 -9.8116543003089718e-01 2.1377979981810076e+00 -2.2896270485434664e+00 +53 -5.6877537358873820e+00 6.7275796476395202e+00 3.1263524664646893e+00 +1456 -1.8185321514849142e+00 6.5376700415768596e+00 4.2284319687481258e+00 +1455 -9.4105265813206582e+00 2.3676471443408937e+00 -8.6465419129259580e+00 +1454 -5.9233594587220502e+00 3.7365689821708079e+00 3.8182634638811432e+00 +1453 -1.7961743375116968e+00 5.4384061734814280e+00 -3.6344285502847073e-01 +1452 7.3649151005769200e+00 3.5541479944557710e+00 -1.3177115655086038e+00 +1451 7.3934525477827284e-01 -5.1996047463139812e+00 2.3025512185366837e+00 +1450 3.8354327419387810e+00 -8.2342058383504835e-01 -2.8183686488380402e+00 +1052 2.0349691072700882e+00 -1.2031296483249629e+00 4.4654378956974089e-01 +1440 -1.7618946258574093e+00 2.6765605107755439e+00 -5.7520738060556171e+00 +1439 -5.1131628632506789e+00 2.6657262587534993e+00 2.3213244195508520e+00 +1438 4.8652249278271604e+00 -2.4355030639788597e+00 -5.0460541985377025e+00 +1437 -3.6098015691840235e-01 -4.8790073387114106e+00 -3.3502557920941411e+00 +1436 8.6162322733827046e-01 -2.9038680997985411e+00 -3.4569179756425932e+00 +1435 1.7447023525783105e+00 -2.7712097646447367e+00 -2.1392153416787387e+00 +1434 3.0048409837008072e+00 -2.7372780227154729e+00 5.6938393004882704e-01 +1424 5.5340954206343995e-01 -1.0238153028393353e+00 -3.4124302952342027e-02 +1422 -1.6147314888629507e+00 2.3235064973230712e+00 3.4560838174589046e+00 +1420 -4.9678865823281876e-01 -4.0297243893722046e+00 -3.8302171713959154e+00 +1418 -7.0627100526211972e-01 3.2080877197046220e+00 9.8358579909967481e-01 +1529 -8.0798039843796798e-01 -2.0092569463084802e+00 -4.0351001071475103e+00 +1530 1.8010965318858108e+00 1.0090158967702998e+00 1.7522942347182129e+00 +1531 8.4722411032710330e+00 -9.9931773216076247e-01 -1.0751808811396224e+00 +1532 5.5605638549864835e+00 -3.2718816708083570e-01 1.8261451609687760e+00 +1408 6.0282845068195083e+00 -1.2257663885006018e+00 5.2690664714355009e+00 +1407 1.1083995898509442e+00 5.0506577260231884e+00 1.5117878444475819e+00 +1406 4.0290413877748046e+00 2.2038014519491163e+00 3.5724017636571492e+00 +1405 8.8541807735999700e-01 -1.2958350256109428e+00 2.1493868101842657e+00 +1404 -6.9868752587101501e-01 2.3086626274387552e+00 3.8007224708151983e+00 +1403 -6.8389674425410627e+00 -2.8912515218479995e+00 -1.5145166857602932e+00 +1402 8.5504129316935877e+00 -5.4619928031128828e-01 -3.1456040175826918e+00 +1054 -1.3685959553758138e+00 -2.4520450128282212e+00 4.2758925837670825e+00 +1392 -1.7326000905299432e+00 1.5472086671784837e+00 -1.0010376038751436e+00 +1391 -2.9137977847821561e-01 3.6685207736387748e+00 -1.8346973881168932e-01 +1390 1.3568332703457204e+00 8.7646071255652613e-01 2.6852762867958457e+00 +1389 -3.4962696510099978e+00 9.1624086136764171e-01 3.2169179515521837e+00 +1388 2.5484523416611626e+00 3.6630088012101680e+00 -4.9331005949788720e+00 +1387 -1.7287362505988102e+00 3.3364452764690449e+00 -2.1551965785330349e-01 +1386 -6.7924297941531355e+00 -8.2127604406007415e-01 2.6496359288377880e+00 +1376 1.3064120153631114e+00 5.1160900233439852e+00 1.7507223827278962e+00 +1375 7.4472954463371916e+00 3.3568529988655305e-01 7.0995365801206634e-01 +1374 1.6212283861501491e+00 -1.7372855279550203e+00 4.1438798016568521e+00 +1373 -8.5792753828156931e-01 4.4631738354036871e-01 8.9075939626761458e-01 +1372 3.2790983574974764e+00 3.9844998660919195e+00 2.9663155788282602e+00 +1371 2.1780193073561582e+00 -5.6497836947149138e-01 -6.5766486461467655e-01 +1370 4.4700102948014511e+00 7.1223901889191643e-01 1.4337138227780719e+00 +1360 1.7123118807760440e+00 2.8258981969965267e+00 -5.7236425990686124e-01 +1533 7.5920780723934089e-01 6.1735226657476561e-01 4.1027235691626327e+00 +1358 8.4862708567919179e-02 -1.0148955692822330e+01 3.6330607880441508e+00 +1516 4.8523831377104871e+00 -2.8878120061039962e+00 2.3781160915082271e+00 +1356 -3.4237918370512405e-01 1.5122190289145170e+00 6.0225179861591700e+00 +1534 -4.4836284413904686e+00 9.9201670986209534e-01 7.0835910662682497e+00 +1354 -5.6076115432479421e+00 1.9167163485267911e+00 3.2163505038827962e+00 +1535 1.0139577929201295e+01 -2.2797253965469340e+00 -6.5900588428904783e+00 +1536 -9.3269363585379468e-03 5.7122571980568582e+00 -2.9163437377394485e+00 +1344 -3.3691185326446353e+00 -1.8718620010219096e+00 -2.0758563046830116e+00 +1517 -3.2194335059054358e+00 1.2850653395124727e+00 -6.2463297981157027e+00 +1342 5.2680880839863864e-01 3.8441416031188114e+00 -2.8070029651704416e+00 +1518 -4.9005132391558268e+00 2.8806779275772838e+00 -2.5509779152006087e+00 +1340 -2.1158018689505518e+00 3.6474231536185306e+00 -3.4321460004060000e+00 +1311 9.2782882243894726e-01 -5.2992229794873627e+00 1.8178903401812592e+00 +1338 -8.5316595767510162e-01 -2.1330325958875157e-01 2.2530421393525821e+00 +1519 3.0314376512977721e+00 -4.5286112262647787e-01 5.5944652362313638e+00 +1520 1.4617488253356565e+00 -2.1879387207648233e+00 1.0533040565704062e+00 +1357 -1.0985732646080675e+00 5.4738565174294394e+00 6.8590111503320355e+00 +1328 -3.1613070511367720e+00 4.6680203768383892e+00 1.4707875963314798e+00 +1326 -2.1324498843984094e+00 -1.0392160639670944e+00 -1.0521785544726145e+00 +1514 -2.6867089721127027e+00 -2.3646576991961796e-01 9.8354748841139283e-01 +1324 -5.7939302613706314e+00 -3.4036419195398593e+00 1.7652179916374591e+00 +1865 4.3117721759337585e-01 -2.9858432640559922e+00 -3.2797181432060309e+00 +1322 -2.1151772783256623e-01 -7.2465837780805247e+00 -1.7436413763062577e+00 +1323 -2.2664891331673674e-02 1.1019055985170657e-01 -3.7795302724329840e+00 +1055 -3.0582436892114075e+00 -3.1418153108213880e+00 -5.2625890591453162e-01 +1935 -1.1038757142583264e+00 -4.9639308321190256e+00 -8.1511628365823097e-01 +1312 1.2037988841576743e+00 -2.9529487872298277e+00 2.7776431234949452e+00 +1310 6.5523154883120780e+00 4.7976010651692063e+00 -9.8350894767697348e-03 +1071 -5.2189659311445338e+00 -1.7986123152891937e+00 -2.1589428650237190e+00 +1308 -2.9114150955720901e+00 5.4628648704378835e-01 -2.7390932978996028e+00 +1487 1.5806247358363201e+00 -2.9619767158149402e+00 4.5654354692788832e+00 +1306 -6.4942526306619603e+00 1.8236702129520308e+00 6.8090777095424260e+00 +1485 3.3269363424651051e+00 -8.6111648961288478e-01 2.7557285319695413e+00 +1296 4.8985221314171074e-01 6.1721385882894009e-01 -2.4670952399438666e+00 +1294 -7.4749915928075303e+00 1.2209319800555531e+00 -2.3736872185571269e+00 +1051 3.3530908529053511e+00 -1.5748296541596838e+00 2.5901653971129432e+00 +1292 4.3297426466084360e-01 6.1129085745442184e+00 -1.3757092310971155e+00 +1290 -2.1199901394325322e+00 -3.9636166379548330e+00 3.6770216936132383e+00 +1931 2.4256678501286850e+00 -1.7496213005279226e+00 -4.1866719133355685e+00 +1807 1.9084088225133142e+00 -4.2343045626389392e-01 -4.7954216931703781e+00 +1483 4.5906253322883259e+00 5.8831688166670686e+00 -4.0822932050422853e+00 +1547 -3.4305605105034243e+00 1.3155888498810459e-01 2.3898132192575292e+00 +1037 2.4030594464164192e+00 1.7015961464794067e+00 5.6371054512065237e+00 +2048 2.9517519786836338e-01 2.7954685730876450e+00 2.1923852546861027e+00 +2047 5.2178909707074679e+00 -1.1071194385729172e-01 1.5340592215269619e+00 +1802 3.7011904105298896e+00 -5.7629720705315535e+00 1.7992611868068682e+00 +2046 -2.6003164082695993e+00 -2.4987969977353446e+00 -5.0215378737227550e+00 +1804 2.1857266882790807e+00 5.5653745304188575e+00 2.1005152943117578e+00 +2045 3.1724148048210510e+00 -5.2762395986602251e-01 -6.3802163312248243e+00 +1806 4.8791340959800733e+00 4.3106014619518420e-04 -8.8961019737822522e-01 +1359 -3.3821506361612310e+00 1.0746812695162757e+00 4.1211241223555897e+00 +1808 1.7798002387120488e+00 1.8163805873699519e+00 -2.0174317758271694e+00 +1417 -4.7258773318583658e-01 -3.0953549351761351e+00 1.2902943608879447e+00 +1818 1.4725609920633884e+00 -4.2442907119182482e+00 1.9096584534497145e+00 +1820 -2.2455017890024406e-01 -2.1376619812049409e+00 -2.8286078569363244e+00 +1822 2.3983520120854021e+00 -2.9152284754813973e+00 -1.5167783289769556e+00 +1824 2.3284900148431285e+00 -1.4911825822088554e-01 1.0810459207123757e+00 +1995 -6.5832395948275213e+00 -2.9899268595063186e+00 7.3443268896482805e-01 +1839 -3.2815990469785730e+00 -1.4811154658367165e+00 -4.4979831904657747e-01 +1999 2.5165072388827325e-01 6.1197347601218706e+00 -4.4265781656401879e+00 +2031 -3.4483355840241421e+00 2.3984905701768948e+00 8.4757691696296461e-02 +1834 -3.7247436132946934e+00 2.0568360253527724e+00 3.8025197358939777e-02 +1836 -1.2705994038410744e+00 1.3791266448830091e+00 -1.7179396080154155e+00 +1563 1.3155404416959811e+00 1.4431608410221894e+00 -1.2640725350550019e+00 +1838 9.5378597809661236e-01 4.0897224026330354e+00 2.9880810484499039e+00 +1840 -4.1961158589408791e+00 -2.3899126306148482e+00 -1.7454682713453380e+00 +1579 7.2539811793231401e-01 -2.8534106464930469e+00 -2.1749761386379363e+00 +2029 1.4592845987586307e+00 -4.3828342768037604e-01 -1.8185313084765216e+00 +2028 2.4776797488155164e+00 -1.8352598516882523e+00 9.9521953442225619e-01 +2027 -2.8051198570089046e+00 -4.3808176576665954e+00 2.2178993109904224e+00 +2026 -2.4699547417775629e+00 1.4213590909514184e+00 3.1906773077502608e+00 +1850 -4.0506591592217195e-01 -4.1477910893851649e-01 -2.7097021456677797e+00 +1561 4.2036740988253168e-01 4.7121910205517308e+00 -3.3524933176843663e-01 +1852 -2.6782958084338784e+00 4.2160881177900302e+00 -9.0294665007221664e-01 +1854 3.0252693992835136e+00 -4.0881346944652641e+00 2.3099805333639991e+00 +2032 1.8663779821452833e+00 -3.0039448330613516e-01 2.7141223380255339e+00 +1856 9.5055306922711349e+00 -3.2677717614020940e+00 -1.0905795152179000e-01 +2044 -3.5078355827588839e+00 3.1735794611949713e+00 -1.3347399365328561e+00 +2043 2.0873608637291836e+00 -7.1569491116601588e-02 -2.5526236375767575e-01 +1423 -2.2813011962589131e+00 -2.5139022729400753e+00 -1.4231634407121230e+00 +2042 7.3766641005437217e+00 -4.8540216839290427e+00 -1.2365832105068197e+00 +1823 -3.9271990258521066e+00 -3.3747039270952145e-01 6.4458474037631124e+00 +1866 7.6921714973137645e-01 -8.2920155449780442e+00 5.2116019431840295e+00 +1868 2.3720398730821026e+00 -1.6886898426878291e-02 9.0312374276779583e-01 +1870 5.7094808788442171e+00 2.7286845337111161e+00 2.2404808494019801e+00 +1872 -4.5607514987659620e-01 -3.8438499431109832e+00 1.7557307002302065e+00 +1231 -2.9160781976501355e+00 -1.6566443476979159e-01 -2.0925809711303467e+00 +1882 7.6007155004843563e+00 1.8271485499199036e+00 1.7491197615940031e+00 +1883 -9.3393543437655602e+00 -6.0551358020846102e-01 4.6244883002788423e-01 +1884 3.0330329836748282e-01 6.0048408427723992e+00 -1.0946646485251397e+00 +1885 3.8342627133272802e+00 5.5002091482534041e+00 -2.0527431666579479e-01 +1886 4.0239657726639040e+00 1.5395084854523611e+00 -1.0283532683572967e+00 +1887 -3.8709353203611494e+00 -1.1896362022343290e+00 -8.6526370077307924e-01 +1888 4.3391698643338028e+00 -2.5914532843073022e+00 1.3275010242203551e+00 +1034 3.2902311073178905e+00 -7.0537492212851161e-01 -5.5655713152507880e-01 +1898 7.1789024794432530e+00 -1.5950740566345445e-01 -1.0090396339009240e+00 +1899 4.4873818038633635e+00 7.1730154379364008e-01 1.3141841035395851e+00 +1900 -1.8453475113617783e+00 1.7484365274473763e+00 -1.3131383912691632e+00 +1901 -4.7917840886383125e+00 1.1051934146199789e+00 5.5122252740618762e+00 +1902 -5.1066659055501544e+00 -1.0944309515455990e+00 1.9542239581151106e+00 +1903 -2.3887896120737073e+00 -4.9622303060915591e+00 -8.2609414008581474e+00 +1904 -6.5166063155962295e+00 -3.2695541864509794e+00 -8.0466167284049095e-01 +339 -6.4659937842719115e+00 -6.0675729484388059e+00 -4.1440285141664797e+00 +1914 5.7922019773578208e+00 5.1608300925506621e+00 4.2261785698127383e+00 +1915 1.2787380268153184e-01 -4.1177413003679577e+00 -8.2659230846237064e-01 +1916 -2.6500658400270916e-01 -3.1687389348185895e+00 3.7024678268936415e+00 +1917 3.3113191691240251e-01 -5.3719590393734062e+00 7.8178199958477268e-01 +1918 -1.2817639534222567e+00 5.9435301428498990e+00 -2.6337384255664196e+00 +1919 -5.9891026793893767e+00 -9.1268460481256730e-01 2.8267684770098302e+00 +1920 -1.7543681225780621e+00 -4.4364359962446226e-01 -2.3200388621143957e+00 +1548 -4.0470820575892237e+00 -1.5258123996917001e+00 -3.9564540176527454e+00 +1930 4.2912698848594744e+00 -4.6663270553959357e-03 -1.7458075276237799e+00 +1932 -3.1181557026168338e+00 -4.7171165279663327e+00 2.8102017207945879e-01 +1934 9.8213441557123538e-01 -2.0749442264246323e+00 1.3184648101038747e+00 +1036 -3.6623885072252071e-01 1.1630489241124005e-01 -2.2411062235444961e+00 +1936 -1.8807386133953656e+00 6.2089360563987983e-01 5.8816109965868675e+00 +1050 2.5454109038301659e-01 1.6351572938311292e+00 6.7873085476187434e-01 +1946 5.0722236448017233e+00 1.5770513175036138e+00 8.1707787906245812e+00 +1947 -3.0152584755391127e+00 9.2016075026203359e-01 1.1486890326619951e+01 +1948 2.8189157883908980e+00 -2.6954397648997972e+00 -3.4249182591351586e+00 +1949 -1.8608301118303758e+00 -4.3162011488231009e+00 5.5435645918220267e-01 +1950 5.0760602853640613e+00 4.9536817419035584e-01 -8.5271849095581209e-01 +1951 -1.4068868864286184e+00 3.4104319212781373e+00 1.2368694370578686e+00 +1952 4.4850993452906396e+00 6.5170734126894514e-01 4.0080889849707528e+00 +1041 -5.3261636005352582e+00 -2.5189280571852302e+00 -2.1167597478427322e-02 +1961 1.3399334262801486e+00 -3.1539023445210796e+00 4.5569180479537730e+00 +1962 -3.6571997206261528e+00 1.8889482961819892e+00 4.0983305214904560e+00 +1963 -1.2701458874039582e+00 -5.3120810774821630e+00 6.7741701895497397e-01 +1964 -4.0931077907026436e+00 -5.6750577716361956e+00 4.0167923217014501e+00 +1965 2.7887713943259875e+00 4.4313415988865295e+00 4.2293838665024630e+00 +1966 3.1844294417334140e+00 -1.1052721185543223e+01 4.1653587394902321e+00 +1967 -2.6091042733595904e+00 1.1169339022365306e-01 -3.6460425825631262e+00 +1968 -6.6907787643064509e+00 -4.2556701326133224e+00 2.2722732430484283e+00 +886 2.0019903229740413e-01 -5.3040247956471354e-01 6.3405363889766531e-01 +1978 6.2202384747762984e+00 -7.0520260254718292e-01 3.8498201806746115e+00 +1979 -2.4899092371687979e+00 6.8427682090107673e+00 3.1100370471227321e+00 +1980 2.9786102306443021e+00 3.5498754593579545e+00 -8.6914846171964140e+00 +1981 1.8556011541876791e+00 1.2389758928749304e+00 -2.5402103906822306e+00 +1982 8.6549975572770543e-01 -5.0602773803531909e-01 -8.0344699661484924e+00 +1983 -3.9521815612288229e+00 3.8738460306125666e+00 2.0099948623871375e+00 +1984 7.2541439401623533e+00 2.2497615296598892e+00 -4.4861311141392166e+00 +2030 -4.6005710062321743e+00 -9.5823261253501180e-01 -2.4926719473397460e-01 +1994 2.0578994676556148e-01 -1.6051638934513934e+00 -3.5550446682339998e+00 +1996 9.3076920930414673e+00 2.0737385890070708e+00 -2.2774238050051556e+00 +1929 7.3015168733751183e+00 -1.0466692859507001e+00 -4.5116619416175032e+00 +1998 4.2896442939976085e+00 2.9901207920386158e-01 4.8910896235238832e+00 +2000 3.3457529804559392e+00 3.1963306426596967e+00 -1.5917103609698724e+00 +1634 -1.8950842174916769e+00 -1.6758228537937259e+00 4.8579925130775345e+00 +2009 1.0580416006265728e-01 -1.4156175691716355e+00 5.5701979489849753e+00 +2010 -6.4867774262334859e+00 6.9907858592016510e+00 2.0877005335287171e+00 +2011 -1.6819326635519636e+00 -3.6853367392352534e+00 -2.2761301966388667e+00 +2012 -2.7891380993612840e+00 1.3129021403655472e+00 1.8022604621208831e+00 +2013 -4.6591574829324376e+00 -3.9877463746969184e+00 -3.2458281363851621e-01 +2014 4.0941038038831499e+00 2.8532967124262393e-01 -7.6186718094458650e-01 +2015 -2.8367922786282054e+00 2.4404374277601285e-01 -3.6946976106760867e+00 +2016 6.4840449383673349e+00 -4.0349420915466023e+00 -3.7987914858781030e-01 +492 -8.2645420557332336e+00 -4.3877524598270723e+00 -4.2665000998670131e+00 +1851 8.3973345323948123e-01 -2.2941653568085836e+00 -6.1553250052965536e-01 +1421 4.4384267576874787e+00 8.4505182012835913e+00 4.1386931987677498e+00 +1577 1.0234847469535409e+00 2.3193042332678688e+00 4.6744009345950968e+00 +1855 1.4484993410932625e+00 3.1369941782236679e+00 1.7018898576498600e+00 +18 3.5672920019619875e-01 1.3379215086035456e+00 3.4176776089493317e+00 +1869 -3.4465305772504160e+00 3.2538096573729147e+00 3.3327260858214451e+00 +1419 5.8954080941214260e+00 -1.5671515048887215e+00 -6.7374529123254367e+00 +1595 1.7688371214488803e+00 -4.3696353133237391e+00 -8.7029072788076878e+00 +1295 -7.6384767089769001e-01 2.2001900794561799e+00 5.2275473152942817e+00 +1481 -8.5879577841602810e+00 -1.1775230683084353e-01 -2.9649219620872063e+00 +1355 -3.8115439710486307e+00 -2.1605215610825934e+00 6.8793077402959932e+00 +1597 8.0571713057791272e-01 -1.4479464575973444e+00 1.3226177684089573e+00 +1565 2.8676609874827969e-01 -8.4177781170594859e+00 7.5456573222866408e-01 +1307 -2.2836282667243126e+00 -5.1801492757193521e-02 -8.6467142965293622e+00 +1278 -2.8703885962853817e+00 2.7656674126376370e+00 6.3186917031579748e+00 +1611 -2.7120106336447893e+00 -1.6604851207575047e+00 8.8874797934078198e-01 +1039 -6.6252357236299819e-01 -1.7775670247531812e+00 3.8735769267473854e+00 +1792 2.1578071861259738e+00 6.5098221245689434e+00 3.5554956053105911e+00 +1038 1.5240953264080497e+00 2.6123467992922773e+00 -7.2942337450520456e-01 +1679 4.7163234700368575e+00 -5.4388420816786431e-01 -5.0247684214858201e-02 +1849 -2.0466696755448588e+00 -1.1265547495700514e+00 -5.4011017782211095e+00 +1853 3.2101067585234908e+00 1.0447505967277138e+00 6.7698863548554531e+00 +1085 -1.5765116576126468e+00 -3.2577667617475696e+00 -1.2592818565203181e+00 +1229 -5.3761054935942854e-01 2.3643690927653847e+00 -1.4907843877769016e+00 +1567 4.2446727031700382e+00 5.6110794035492200e+00 -1.2551094628550410e-01 +1101 6.2565166935862004e+00 4.4285053738697551e+00 1.1591576666327990e+00 +1677 -8.6130405633083829e-01 -6.9092141845132913e+00 3.0576054669337633e+00 +1067 5.5445277939024979e+00 1.6403728026589053e+00 -5.8430684106694537e+00 +1040 6.7235632760765607e-01 -4.3581373918820798e+00 1.5344671200742410e+00 +1053 -2.3673862696329553e+00 1.6390329727325228e+00 5.4749006953440320e+00 +1069 3.0582745855137583e+00 -2.1109550346275161e+00 -4.4441719830076405e+00 +1327 -1.3572505295149020e-02 5.0438553312222805e+00 -4.8345163962202864e-01 +1293 3.1984963360624303e+00 2.7734771487307597e-01 6.6274412109785474e-01 +1309 3.5880993389658409e+00 -4.6668974515897927e+00 -8.3202150003795232e+00 +1837 -1.4404904982204343e+00 -3.4239925110964911e+00 -2.3886966563128800e+00 +1833 -5.4653998398784165e-01 6.0926393654621469e+00 -3.2779023971333161e+00 +1905 -5.0151470218632808e+00 -3.0504155043675345e+00 -3.8966470573322103e+00 +1087 -9.2625365469167231e-01 -3.9525592696529741e+00 5.7203569215584480e+00 +1058 2.0569771451562371e+00 4.2154181640480362e+00 -1.0237380488312938e+01 +1339 4.4050720724971351e+00 -1.4256169932176210e+00 2.3649281313239037e+00 +1291 -4.9424439258958994e+00 -1.2736122596733914e+00 -1.8342387176263425e-01 +1615 -1.6472177131469073e-02 1.2993987909528397e+00 -1.4190575665899792e+00 +1341 2.1428861993464419e+00 3.0661350558859124e+00 -2.6807453137873325e+00 +1549 5.2100262627106826e+00 -9.2833310623143728e-01 -2.8792374251167514e+00 +1165 -1.2432257272879179e+00 -1.1530555314026645e+00 2.7792182389540803e+00 +1083 -3.7899803803436820e-02 -2.8068272542677675e+00 -3.3986233550003377e+00 +1103 -3.7241778350316923e+00 5.8645035982935878e-01 2.3888432522827188e+00 +1741 7.0152398361373249e+00 5.5718432769635866e+00 2.3163938039860330e+00 +1035 2.1018906722566104e+00 6.0194554512624510e-02 -2.3342232050120475e+00 +1821 4.4518281325712845e+00 -2.5252957975586541e+00 2.5747318845917461e-01 +1248 5.4866418973910340e+00 -1.5700937210132815e+00 -5.4379766893513515e-01 +1247 3.7487519516107568e+00 8.8288801781756507e-02 -7.2806691693583314e+00 +1246 6.5334067642623879e+00 -4.0485661705501998e+00 -8.8340355181006025e+00 +1245 -2.3475084143462099e-01 3.5647571920748709e+00 6.8781679573213177e+00 +1244 -2.9513790008056366e+00 -7.1700353391744953e-01 -3.9272818242951000e+00 +1243 6.2570325608533155e+00 5.6152016202016286e+00 2.3490505324018511e+00 +1242 6.7943302367007075e-01 7.3157644431990789e+00 1.3504853586211790e-01 +1583 5.1617161182392381e+00 -2.6422737643374736e+00 -6.0572138813851018e+00 +1819 3.2621202135437288e-01 -1.0564294648439534e+00 -4.2800918906237282e+00 +1163 1.9811742980286360e+00 -3.1138944471556678e+00 4.5672147558553045e+00 +1167 2.4740786011834395e+00 -9.3030270601116249e-01 -4.1805848098228271e+00 +1562 -3.9863941103903899e+00 -2.2855808180520265e+00 4.2436830352575061e+00 +1760 9.8999305178334218e-01 -3.7850118593522022e+00 -9.2585134815803838e-01 +1759 -8.9293547543528906e-01 1.2202277319060952e+00 5.0297124707671479e+00 +1758 -1.4923319277030169e+00 -2.1981908172149818e+00 9.6120205263627745e-01 +1757 -4.5242021710213509e-01 1.2424813204613001e+00 3.4375545276950832e+00 +1232 1.6086449341153115e+00 3.0523127439633591e+00 -7.6970617109843786e+00 +1263 4.2525215843171589e+00 1.6415303208797862e+00 -3.3471418350072288e+00 +1230 -5.7625101623888741e-01 -9.4934049681721622e-01 -2.4344026652645159e+00 +1756 -2.8969311410836824e+00 1.0994885676929469e+00 2.2182775450814671e+00 +1228 4.2944409291637733e+00 -4.8375642905754619e+00 -3.3405243584034454e+00 +1755 3.8919368142585977e+00 -4.0175487399028365e+00 -1.9132705082248178e+00 +1226 -2.9461543271394190e+00 -3.5679881663950410e+00 -6.1070975988656642e+00 +1264 -1.3752867465991265e+00 -2.6793557824351617e+00 3.5025056974116358e+00 +1754 1.3390773805275107e+00 -1.3135677627359374e+00 -7.2527424889045795e+00 +1099 -4.7438632722991674e+00 6.9885317898121029e+00 -9.8473059838505184e-01 +1744 1.0928895005658344e+01 -1.5824871513959109e+00 -4.2597564097101803e-01 +1776 1.8583438766796525e+00 2.3676993802810187e+00 -2.1237131485248456e-01 +1742 -6.3231969418623155e+00 6.8007642606857266e-02 2.7452870760229380e+00 +1773 -3.7600360804220743e+00 -7.6968021563178191e-01 3.4640607096513545e+00 +1740 -2.3840847954598456e+00 2.2054663995388983e+00 5.1811270674131640e+00 +1739 1.9253914741553639e+00 -3.3500378361842031e+00 5.3107574776408377e+00 +1216 4.9763678616253121e-01 -4.3714657796850824e+00 4.5726963480810984e-01 +1215 -6.1799967920044285e-01 8.1592481053011134e+00 3.8006728369427827e+00 +1214 -2.2686771909463368e+00 -9.3946547775085965e-01 8.0673219066708962e-02 +1213 -4.6219982627187388e+00 5.7736078005928981e-01 -1.9150180702192128e+00 +1212 8.9182925499160548e-01 -2.6241348592377911e-01 -5.4354315551715464e+00 +1211 5.7602548991309162e+00 -1.8788160360849249e+00 -5.1247755957573311e+00 +1210 -1.6553007201540482e-01 7.8517791549765847e-01 6.9289268136968540e-01 +1738 -2.0240705405598458e+00 -2.0991545521900363e+00 2.3896595862135874e+00 +1774 -2.0555692639916741e+00 -5.3790399662652364e+00 -1.8654879473748451e+00 +1581 1.1752910725051859e+00 -4.3018010921979627e-01 -1.3531480836294201e+00 +1772 -7.9742567215354132e-01 -4.0858820748699971e+00 -1.2312763025737482e+01 +1728 2.3804250406229057e+00 -1.6472166399394645e+00 3.3049683000697891e+00 +1727 1.0069187946925429e+00 2.7935375159270004e+00 -1.8546135676101678e+00 +1726 1.7584931222512097e+00 -4.1931736392333152e-01 -3.8812556542891388e+00 +1725 -2.3922118551046028e+00 -2.8638186418308718e+00 -4.2222106919937845e+00 +1724 -7.8555525496278307e+00 4.4404159925669395e+00 -4.7509519053867395e+00 +1200 -4.7459406453339872e+00 -5.0433729755587242e-01 5.2537907968921918e+00 +1199 -9.8104799137983378e-01 9.1492065658886068e-02 -2.4929165366597030e+00 +1198 9.0350880694603342e-01 -2.4895345654184795e+00 -2.7501071738417195e+00 +1197 -8.8027093708710265e+00 1.8238795624382429e+00 6.5429019496390772e+00 +1196 9.4627007194387247e-01 4.8465455313987018e+00 1.0446029761718267e+00 +1195 1.5441727358530037e+00 2.6887868053392077e+00 -4.1746883938529891e+00 +1194 -4.2322067938365521e-01 -2.9544969135323802e+00 2.2265219928930464e+00 +1723 1.7330174888608113e-01 5.5091676620574022e-02 1.7713031600178557e+00 +1722 1.1738315219239348e+00 -1.3218090559136428e+00 -5.0655225628928449e+00 +1712 1.4368250645295888e+00 -1.4057412328784880e-01 -4.1660415633475960e+00 +1711 -4.0171704165040873e+00 -1.7300312316250908e+00 -3.8259700667203194e+00 +1710 6.9769086161606805e-02 2.2579833980366240e+00 4.3985236492126512e-01 +1709 6.5432232106015649e+00 2.4995130619169119e+00 8.2724612212298221e-01 +1708 -4.6270144124483679e+00 3.8637074789681223e+00 -8.3943653849310337e-02 +1707 -5.1455384000776725e+00 5.4808171846936133e+00 -8.4012989587511111e+00 +1706 2.5018805817150502e+00 -7.8125733561452702e+00 -1.4292158772582358e-01 +1184 -4.6919942683562708e+00 6.2743240867694672e+00 3.5030067865077852e+00 +1183 1.7983258562151923e+00 2.5417109765306098e+00 3.1718757806586839e+00 +1182 -2.9177751560397782e+00 5.0560842984592302e-01 -6.7645638849909790e+00 +1181 5.1623042825774623e-01 -4.0208865811704540e-02 -7.2006396706481901e+00 +1180 7.4893500985546535e-01 -2.2538247831585112e+00 5.5608594380666343e-01 +1179 3.8420796508953070e-01 2.5857943030727712e+00 3.7561758479215723e+00 +1178 1.2710890014291221e+00 -1.2864436031271878e+00 4.8604492234925084e-01 +1325 2.6641913116083864e+00 2.4881049725928861e+00 -1.0494710652720838e+00 +1696 2.2017281847730632e+00 -3.7748427976430858e+00 1.2119806704254945e-02 +1695 -2.6393016261546789e+00 -1.3540935435549302e+00 1.5920002285836521e+00 +1694 -2.3619825587040282e+00 1.9232144713594246e+00 5.8493238022958129e+00 +1693 -2.0341760844859884e+00 8.1845560465448948e+00 2.1052614565675447e+00 +1692 -1.3223954369278497e+00 1.6938311027214719e+00 -1.4533272490735680e+00 +1691 9.5504148513901810e-01 -3.7545789265529739e-01 -3.7704341423899841e+00 +1690 -9.6320182525949649e-01 5.3859143865691028e-01 -8.7805643781005127e-01 +1168 -7.6149504736781737e-01 6.1259097997273138e-01 1.1587203990804449e+00 +1790 1.9864297869304142e+00 -5.6162016153997989e+00 -2.6046407257180509e-01 +1166 -9.1634926280530298e+00 -3.7185310556679352e+00 -8.1756374436261350e+00 +1550 -1.8798825823951466e+00 -5.0951378740192781e-02 1.9522663600185783e+00 +1164 1.5895116291239170e-01 2.2171484894012865e+00 5.8963538208268140e-01 +1680 -3.6334794871288878e+00 8.2030880021623247e+00 -1.6887845112237674e+00 +1162 3.3718077600898919e+00 -4.2476955355443788e+00 2.2803073232887341e+00 +1678 2.2548504339583526e+00 3.9346599130450766e-01 -5.8245968931736387e+00 +1676 2.8308139895451041e+00 3.0235519341069348e+00 6.5624420638133807e-01 +1674 -1.3359047789135685e+00 4.0887860952745267e+00 -5.0740879249672588e-01 +1785 -2.0979664514167591e+00 -4.2275599379926012e+00 3.4152302655158917e+00 +1664 -2.4375817916604969e+00 4.8904285527371147e+00 -6.7005958067630100e-01 +1663 -2.0351823368949460e+00 -7.5020747528726295e+00 8.9065240486915176e+00 +1662 -2.6939096232314359e+00 4.1696219595446593e-01 -7.4152381078019758e-01 +1661 1.7841165299213120e+00 3.9158053716669223e+00 -1.9706553843951837e+00 +1660 -4.3866733504139903e+00 1.3822540329320570e+00 -2.1545671372028665e+00 +1152 -1.1304578267170928e+00 -6.4799950317925319e+00 3.7348075039644507e-01 +1151 2.1159978866288789e+00 -4.0358578046765403e-01 1.8186776670885390e+00 +1150 3.8060715135993135e-02 -3.9007239600007027e+00 -2.4868901784316839e+00 +1149 -4.3024106516512917e-01 -6.7255414305276702e+00 1.6558277022211589e+00 +1148 5.0165527106297922e+00 4.2657776876315125e+00 -3.6423852230602232e+00 +1147 1.0407482638332878e+01 -1.3515356288231646e+00 -5.7459254057019047e+00 +1146 -4.6972433599307619e+00 1.5489580621784377e-01 -1.5630913629575640e+00 +1564 4.2458522693899816e+00 -9.5160505098657089e-01 -3.5211096645433928e+00 +1659 -5.6839895872252963e+00 -1.9965176454890371e-01 5.4193959634242406e+00 +1658 2.3169900935872403e+00 -2.4632355169259110e+00 -1.4746380393385790e+00 +1657 4.0547980763443698e+00 3.7543905443333951e+00 -2.5367143915465067e+00 +1697 3.6943945605623050e+00 -1.5971900888005739e+00 -1.8981568003192615e+00 +1648 -1.2063172023400766e+00 -5.5417152262063930e-02 -1.8732666501251292e+00 +1647 2.0819708618701362e+00 1.7779745224383625e+00 1.4495292510742757e+00 +1791 -1.2711709623989342e-01 4.6236955907607751e+00 -6.3275139027835980e-01 +1599 -1.3395420112828407e+00 4.0877806490139585e+00 3.0361562565803113e+00 +1136 5.0353654844197706e+00 -7.1182217350924648e-01 8.4845547568013857e-01 +1135 5.4282907941208070e-01 3.2765745286073500e+00 8.9802741275011022e-01 +1134 1.2949312751219353e+00 -4.9332219215965845e+00 3.9373953078668071e+00 +1133 -4.3918983998084862e+00 2.9104412839894303e+00 1.5624355484064676e+00 +1132 3.5410831038313115e+00 -3.8045602771456881e+00 3.5510587169653607e+00 +1131 -5.6041039393332852e+00 1.7128464672636259e+00 6.3386955471602155e-02 +1130 -1.2569159187934014e+00 5.3348386659528648e+00 2.9086214048107646e+00 +1646 1.8818823228980412e+00 1.0652779651723256e+00 2.8668001970391623e+00 +1645 1.3201162932662052e+00 -6.8574963190364562e+00 5.4595597363065029e-01 +1644 -2.1994213725542440e+00 2.9385995338670217e+00 -2.4662694579830071e+00 +1643 -5.3230609085419489e-01 7.3407961057442306e-01 -3.0740786726634850e+00 +1546 1.4638616539794663e-01 -3.4398775908511454e+00 1.7727044456241530e+00 +1642 -9.2688000645891766e-01 -1.8302745711074975e+00 -4.8941371766765895e+00 +1613 -4.8331034222273086e+00 -3.3029004530063468e+00 2.7562973111607350e+00 +1632 -6.3414868617046083e-01 -5.1405660152302044e+00 2.6342538786784182e+00 +1566 -9.9717356042835173e-02 -2.5517126172819773e+00 1.0334979086220695e+00 +1120 -9.2251362984829999e-01 1.0559634793090011e+00 -2.4188100154748873e+00 +1119 -3.7457510048584535e+00 -2.5669255587518611e+00 -4.9327962435193523e-01 +1118 -4.2956489755377003e+00 1.2877972894451650e+00 -9.7097170745424821e-01 +1117 -1.7791614889209746e+00 3.1246248751073562e+00 3.0701731195907995e+00 +1116 -9.9818396679835941e-01 -2.0546724594031405e+00 6.0848091591196263e-01 +1115 -6.5997878243627870e+00 -2.0945016191788381e+00 -5.6571384792046659e+00 +1114 3.5765984995120506e+00 -8.9760828569340534e-01 3.8373335487882521e-02 +1631 -1.0338988275821553e+01 -6.4187973120799882e+00 -1.7982092964976175e+00 +1630 3.3413184849245288e+00 3.9901482517415836e+00 -2.7812617269193729e+00 +1629 3.6391490641565456e+00 -2.0613889480883185e+00 -1.5621089391153260e+00 +1628 -1.1116533602244727e+00 -2.5004930250037578e+00 -6.2884778436136413e-01 +1627 3.3395234425566627e+00 -2.3699855486878878e+00 -3.1510392974993691e+00 +1626 2.2679730214023142e+00 4.7563294630045343e+00 2.1115566424554570e+00 +1793 -2.0733252067079535e+00 -2.6320935656419970e+00 -7.5664672376958979e+00 +1552 2.9924087313916994e+00 -1.5761243863148777e+00 3.1887854904364510e-01 +1835 -1.8631997676489078e+00 -6.6262114396413798e+00 1.8870846006045883e+00 +1104 1.6463172078653632e-01 3.5829558767324290e+00 -1.2752189592025358e+00 +1616 -8.0656156437730653e-01 7.8998062520268952e-01 -3.4124551142823951e+00 +1102 2.7307793701464034e+00 1.7227163566724046e-02 -2.6706448996568808e+00 +1274 -2.4447654225888016e-02 8.9605833713243239e+00 -2.5718968572978418e+00 +1100 4.1914045877411388e+00 -1.8319208218113032e+00 4.6199840704513822e+00 +1775 1.7436173747904702e+00 -6.1139991236952564e+00 3.8781373791190021e+00 +1098 7.9571460637557099e+00 4.7884222562934848e+00 -1.4265701123578167e+00 +1614 1.9566853480505320e+00 -1.2184353261179233e-01 -3.0869339611311877e+00 +1786 2.7622249584881939e+00 1.1510108441888502e+00 -4.2179051312424685e+00 +1275 -1.8339740427891535e+00 -7.0754158699581158e+00 5.1159420143980308e+00 +1612 -3.1083302265860469e-01 -8.1212521164080655e+00 -2.9867888021860796e+00 +1276 2.5487628257541117e+00 5.7603985035552030e-01 2.3624836335813004e-01 +1787 5.2589968869800598e+00 -9.2297302697116612e-02 -2.5703654184777904e+00 +1610 7.0154201144951589e+00 -1.8963142617278810e+00 -7.4693438224629460e-01 +1788 9.3762428031619671e-01 -2.7387051153089450e+00 5.7262318397059548e+00 +1277 -3.9257952120618561e-01 -5.6555974294181210e-01 3.5128233613411153e+00 +1088 2.9131167702256872e-01 -1.0793362390861592e+01 1.3215208391511677e+00 +1259 -9.1634681306567831e+00 -2.2539243414166830e+00 1.2698534052765693e+00 +1086 -9.5795290003304501e-01 -7.0876274997673585e+00 1.9841400951181833e+00 +1258 9.3326162589192418e-01 2.0966446197566078e+00 3.9022914325765838e+00 +1084 3.8197953292635517e-01 4.0191357837945176e+00 -1.0736014525732221e+01 +1260 -6.1129085681959561e-01 4.2723871503738966e+00 4.1239202216866131e+00 +1082 4.8542360589129139e+00 5.2984876770867331e+00 -2.1045039444775000e+00 +1261 -3.2969815385644924e-01 3.1850383598205383e+00 -4.0488248012389523e+00 +1568 3.6448980714320949e+00 9.6130784415979829e+00 -2.0265375505676912e+00 +1262 -4.9488312235953709e+00 -2.6524541417282288e+00 -3.0076430585148239e+00 +1789 -3.8074561615920910e+00 1.0451683384413636e+01 -2.1800422404941080e+00 +1675 -9.6675574295079580e-01 -3.0691633768506615e-01 4.8681581967426251e+00 +1600 -3.1897800950599171e+00 9.3159077802727863e-01 -4.5212678239609622e-01 +1279 1.9799145396787530e+00 -1.0167929447558579e+00 8.5103670671855736e-01 +1770 -2.5646253516335271e+00 -3.1840502451514785e-01 -1.7701064704099041e+00 +1598 -5.1390536424968192e-01 -2.2819234389305452e+00 4.0286699139799769e+00 +1072 1.1575552924505188e+00 -3.5215361428122320e+00 2.0732859977418134e+00 +1343 6.4986400036871528e+00 3.7825028312267248e+00 1.1038558485613872e+00 +1070 -5.4746534073328901e+00 -1.5265178090696425e+00 1.7318071972611806e+00 +1743 2.8112647970668898e+00 2.8358802310641744e+00 -2.5867452226725214e+00 +1068 4.5018557700205325e-01 -3.5332720452411244e+00 -5.7710759240020506e+00 +1771 -1.5066028564621445e+00 1.6848546912719682e+00 -1.3328058366382745e+00 +1066 -4.5900999590071816e+00 2.5056222197089149e+00 1.2110495249778817e+00 +1596 -4.4857578440444534e+00 -1.2690405472870401e+00 1.2838874601123387e+00 +1594 -4.5512983312895887e+00 1.0790223806289350e+00 -1.3418657091430633e-01 +1584 -5.5580401516321247e+00 -1.3678283245984053e+00 2.3006959883565488e+00 +1803 2.2770170377418677e+00 2.6362467557515030e+00 2.8341647807538322e+00 +1582 -4.6882715329947828e+00 -3.2272859329357656e-01 2.6312427925169426e+00 +1580 4.8327936707337900e+00 2.8344084406592512e-01 -5.2574667166955331e+00 +1227 -2.9249454539282507e+00 2.1371933994425860e+00 3.4368894988200358e+00 +1578 -4.2881311998958846e+00 9.5375198439329079e-01 1.1382587678265517e+00 +1280 -1.8232914096909285e+00 -2.3219613971880251e+00 4.6513328845603121e+00 +1056 -6.7409216067124822e+00 -3.7918650396766478e+00 -7.1477057026405577e-01 +1551 -3.5487271254399921e+00 -4.2368087740475358e-01 4.7653426471208399e-01 +1090 -2.8046564915868410e+00 5.7109204478509259e+00 3.1889787282380788e-01 +1442 -6.3428541162948457e+00 -2.1751507305601043e+00 1.1162478316147006e+00 +1761 -6.4707095630241183e+00 3.0781324748613503e+00 -2.1619804321054472e+00 +2035 1.2710512103504321e+00 1.8226340096406493e+00 -4.7001586892203233e-02 +1953 1.1389982033654551e+00 -2.7800967834023544e+00 -5.9843514403264675e-01 +543 -1.5188678123011383e+00 6.3819693928367305e-01 -5.6975588135682695e+00 +2129 -1.0699005193050122e-01 2.4800097349936387e+00 -1.4526413447259059e+00 +1585 -4.6564104110297002e+00 -4.6720745877594605e-01 -4.1419257694166891e+00 +1601 2.0147047271101628e+00 3.7475129687263702e+00 -5.1734788185238285e+00 +507 -5.0036931125087347e-01 9.3852613668466223e+00 -4.1365052010625334e+00 +2401 7.4395640884336558e+00 4.7207667004324438e+00 -7.8611183971896137e-01 +2225 -5.0517897916398868e-01 2.3776766751419616e+00 9.1086031287115499e-01 +1137 -6.4336155918048394e+00 -3.4203448215759202e+00 -4.4047853017073022e+00 +2353 1.4815204498127399e+00 -9.9598943362813213e+00 -3.1689768155399056e-01 +1202 1.5959499756455426e+00 4.0300262347127118e+00 1.5800314925501557e+00 +1729 2.9559463433650470e+00 -8.6987028714725045e-01 -3.8091692624450544e+00 +720 -2.6810849185024703e+00 -1.1902782924069524e+00 3.5798219801515683e+00 +1569 2.1213292971832951e+00 -5.9015753735028498e-01 -2.0013098163463683e+00 +2721 4.5907701223227768e+00 -7.6507255931604679e+00 2.7311554547967226e-01 +913 7.7349469685400631e+00 2.0549924934859911e+00 1.5279924786892443e+00 +1586 -9.2745614663805953e-01 -6.5868652793345497e+00 5.3189885101909002e+00 +1745 2.5141004309705499e+00 5.2921356665013759e+00 -1.8624080594975276e+00 +2177 1.8440036244899980e+00 -3.3513412318539088e-01 -2.8213786347189398e+00 +1825 -4.1601106488389696e+00 -5.8420126250252249e+00 1.3090914526604995e+00 +1281 1.1148322708664171e+00 3.7197106435939173e+00 -1.6839168968729614e+00 +2513 1.3592914978452373e+00 6.5022626641102466e-01 -2.5143448392729139e-04 +1121 2.6204381582473886e+00 -4.4409675749348603e+00 -2.1277516635800673e+00 +1441 -3.1296479831101873e+00 -3.9703795160998125e+00 -1.4393166698239821e+00 +2337 -6.0953465552842054e+00 2.4241170541681285e+00 9.2614801250335166e+00 +2801 4.0471734507138200e+00 4.9860927361982715e-01 -6.4238245968404306e-01 +2561 -3.5873403409131077e+00 2.8342438283166169e+00 1.1786321277429583e+00 +2193 -8.2787938896478386e-01 -2.8730409384118716e-01 -4.1405218036400830e+00 +1073 1.0250184194369527e+00 1.5461452285408639e+00 4.0085025329055259e+00 +1633 3.3678401081501317e+00 -4.4418237378584884e+00 1.7796150726218869e+00 +1649 -3.7865237941769339e+00 -7.4726539424260863e-01 -5.0984746362633180e+00 +1841 4.6031138136565195e+00 -4.9749754628231084e+00 6.3426746419831597e+00 +1393 -4.0828428157287261e-01 6.2151411174257101e+00 -1.0018378083523134e+00 +2257 -1.5845182204880837e+00 3.4060884482247973e+00 2.6453392749796727e+00 +1297 6.5640148463258603e+00 3.0449231906379151e+00 2.7116142560175466e-01 +2289 -3.5377779010980142e+00 8.1179621799484281e-01 9.8197970649651745e-02 +1889 -5.1588021660433094e+00 -4.5472211030818759e+00 -1.8621178101817846e+00 +2209 -2.4950017300483767e+00 1.5578729765435364e+00 2.3668886095854100e-01 +2609 7.4837497164731936e-01 -6.9235476635793505e-02 2.7859777817040996e+00 +2113 3.3320905275122543e+00 -4.5514368967235290e+00 2.4910519873095209e+00 +1969 5.2496883092552578e+00 4.8507953387757023e+00 4.9555364690483659e+00 +3057 2.1195579495368688e-01 -1.8854469618397665e-01 7.4525830236706341e+00 +1457 -6.1441321744061312e+00 2.6584304564586940e+00 2.4183710047926845e+00 +2081 -6.1137166455563658e+00 1.7636274372373169e+00 -4.4333349755611540e+00 +2001 -4.1292677739288992e+00 6.6541129517399278e-01 -6.1062763848092827e-01 +1873 -3.6523091590214012e+00 2.4931054183275885e+00 -1.6453418037503495e-01 +1474 1.5960128283082016e+00 2.9180843027073915e+00 -8.5102825585797859e-01 +1298 -6.7321407992749382e-01 1.3949727848165541e+00 3.6041675902818715e-01 +1139 6.6242258491829871e+00 2.7530513792796167e+00 3.5264710178463661e+00 +1282 3.7615209558537819e+00 4.8885295177503076e+00 7.4445222608622319e-01 +399 8.9784691433968700e+00 -7.4541054219332574e+00 -9.0472047187603666e-01 +2050 -8.3372286716912458e-01 1.5140536456657159e+00 6.6632030514028084e+00 +2307 -7.5025880605292645e+00 -1.8992530877504779e+00 6.8007770632398024e-01 +2563 5.7478705941144959e-01 -3.7694950115683051e-02 3.7431891018243419e+00 +2099 3.3326469782846990e+00 7.2072307189255485e+00 -3.8738492583191553e-01 +2853 -3.7625931002113049e+00 -4.7683481806731898e+00 -4.5752277005036062e+00 +2052 7.5592703353482604e-01 1.4128431654667908e+00 7.5689838950119510e+00 +2085 -3.7089208190170471e+00 3.1954100647370098e+00 -1.1506523068400500e+00 +2355 -3.3088955924651473e+00 -3.8374320322619684e-02 1.3125081932291938e+00 +2066 2.0342037406101805e+00 7.7216487578190049e+00 -2.4660669001546296e+00 +2613 3.4235538745791936e+00 1.5710029136397752e-01 -2.6072403834081331e-01 +2068 -3.1504476283566376e+00 -3.7342732374417436e+00 -5.3590805026771760e+00 +2323 -1.1904809551890296e+00 1.8517808857759772e+00 9.6024188719311154e-01 +2357 2.8140110013522110e+00 7.7839453943005568e+00 -3.2078759595529514e+00 +3044 -5.4811855903254649e+00 -1.0587367964728274e+00 2.7867878286139325e+00 +2082 5.2994004912191361e-01 1.0529044659262130e+00 -3.6435897952588050e+00 +2084 4.9065332381619386e+00 2.5638845810494066e+00 -7.6445853689360419e+00 +3043 -2.3867113417525192e+00 -9.4763852307245455e-01 -3.6268937750606391e+00 +3633 1.6648477545249563e-01 5.6852080832290977e+00 1.7473553491080014e+00 +2341 3.0604129798623272e+00 -4.6183771701141435e-02 6.4588310404149440e-01 +2557 6.3897637981582118e+00 -1.3394682011517864e+00 1.5254226625198191e+00 +2098 3.8829799319000093e+00 5.8246710854023143e-01 -2.2856932351661867e+00 +3042 3.4669662712631061e-01 -4.9955308098614983e+00 2.0534738114639834e+00 +3028 1.3112310101432414e+00 3.1716460467249319e+00 4.2856934837628451e+00 +3027 -5.8128246511016919e-03 -5.0940985930420646e-01 4.2225468098651655e+00 +3026 3.8714301804628506e+00 6.3968433738399766e-01 6.0913891541481400e+00 +2883 -1.5757521140914015e+00 -2.3705367629141949e+00 4.0062700011683043e+00 +3058 -7.4000317582726738e-01 8.0596914175526528e+00 -9.9179612507234693e-01 +2100 -5.0963703753169287e-01 -5.3953962190928673e-01 5.2712657371317011e+00 +3059 -1.4974959026887409e+00 2.9134763467594502e+00 -2.6558621443525197e+00 +3060 -7.3385713850799428e-01 2.3933955841471937e+00 -6.2036385842973840e-01 +2114 3.7995808530906019e+00 -1.7741308940053964e+00 -5.1689727338755551e+00 +2116 -1.1731195814065853e+00 1.3657581791309026e+00 2.4464847553118889e+00 +3012 5.1611374793369027e+00 -1.0905268955501417e+00 -7.6052946371053820e-01 +3010 -1.2884477298129202e+00 -5.1776522328963823e+00 -5.8306983228464153e+00 +2997 -9.7149563751339763e-01 -4.1975796381267569e+00 1.3453966750626061e+00 +2996 -7.6991558695194207e-01 -6.5891256790888910e+00 1.9623929016799615e+00 +2995 3.4348653315866535e+00 3.4122855955786702e+00 -4.7726494237727088e+00 +2994 -3.6906563697746968e+00 -4.6816562695977275e+00 -8.3843560794178151e-01 +2981 -1.3178912470642967e+00 9.1094675517473824e+00 -2.1728372768788433e+00 +2980 1.4100083233748453e+00 1.8613788164367913e+00 1.3231402172351621e+00 +2277 -4.5219483273649308e+00 -8.1481122738162115e-01 -5.1698147404981731e-01 +3692 3.7366727607988053e+00 -1.9396725441256757e+00 2.9462185173669360e+00 +2130 2.2553207761955932e-01 1.8669274875326158e+00 7.6148318501374765e+00 +2131 -2.6666729358048071e+00 5.4374636642253602e+00 -2.7571199778364868e+00 +2132 2.2275895992305017e+00 2.4981437666016695e+00 -6.8971122653487393e+00 +2146 4.2880126790047806e+00 -2.9242270395650345e+00 8.8631499330693897e-01 +2147 1.9292416358794877e+00 6.0605310822222036e-01 3.6265510473286793e+00 +2148 -1.7581583500441778e+00 5.8254879772844061e+00 -5.8647854309036607e+00 +2979 -5.8041874078685263e+00 3.1877190350458986e+00 -2.4986268732260071e-02 +2978 3.9371220058521188e+00 -1.5502597463580183e-02 -2.8500161415054898e-01 +2965 4.3659367314975084e+00 1.5406030950634930e+00 1.0499266266784104e+00 +2964 -1.8282948310152562e+00 -3.9745806308970399e+00 3.9301238831091858e+00 +2963 3.0385675778058796e+00 8.3571377470928698e-01 5.3902760293226999e+00 +2962 2.6798031121822050e+00 -2.7366695236635965e+00 4.6305327223894377e+00 +2499 -2.5636026923423065e+00 7.4183299668952349e+00 1.7771638712840478e+00 +2948 -4.6230049985243538e+00 -2.8141763712271062e+00 -8.2189408292911589e-02 +2149 5.2548812838853465e+00 2.9570701105813493e+00 4.1678699319757815e+00 +2162 -1.0382588159931472e+00 4.1904578499786549e+00 2.2440064614862170e+00 +2163 2.2575500689916383e+00 -6.6570229362682261e+00 2.5714940421781263e+00 +2164 -2.5495443797185056e+00 -2.3329109872582441e+00 -4.2670870236321310e+00 +2178 -2.2551261847708961e+00 -1.1566366159441925e+00 -1.9710377631770963e+00 +2180 -5.9285646015815471e-02 3.1769451482937132e+00 4.2247839246024155e+00 +2382 6.4758580227654017e+00 -7.8879258054721890e-01 -5.5772945512011540e-01 +2293 -2.8374868869134612e-01 -3.8079670473615286e+00 1.9899472151284887e+00 +2194 -2.4071983707058893e+00 2.2362638956712551e+00 -1.2154228114501011e+00 +2946 -2.8968621109235424e+00 -1.7771544173011073e+00 -3.1848916159805447e+00 +2195 -4.6887069731988040e+00 1.9532343648620774e+00 -3.5740571641520691e+00 +2933 4.7492948063615508e+00 2.6621183660990324e+00 8.7655847661180997e-01 +2932 -2.6322241097689836e+00 -2.3755544394288722e-01 2.1564843318121558e+00 +2931 -1.3710805956727588e+00 -4.2062003017503899e+00 -9.0234527244029139e-01 +2930 1.7042585439534199e+00 1.5185821678893550e+00 -5.0595240496922544e-01 +2917 4.2620276109580244e+00 1.3561650421703588e+00 -4.4526153288948320e+00 +2916 -1.5610093675384482e+00 2.5112684276325035e+00 -5.1288876666204288e+00 +2196 -6.2797974751355587e+00 3.7127428039380178e-01 3.0363970920259580e+00 +2197 6.4224956271227862e-01 -4.9999108789829263e+00 -1.1555011446507832e+00 +2540 -3.9644612174691205e+00 1.4545036120855942e-01 8.9561308024631769e-01 +2210 -7.6221057933003378e+00 1.5333895555152668e+00 -2.2438992494933587e+00 +2211 -6.6365940846231353e-01 7.1725312449351331e-01 -3.3789835836448491e-02 +2212 4.0212532914324708e+00 -4.0856303274224315e+00 2.1387871305718645e-01 +2213 6.0174495664426049e+00 -5.9123930041659847e+00 1.1415365454982844e+00 +2915 -3.8996869195771984e+00 9.5888210234982407e-01 4.3431956939614311e+00 +2914 3.9795152149922766e+00 2.3674211841342143e+00 -1.2240645174833324e+00 +2901 7.1320280872267305e-01 -5.1321130515135704e-01 -9.1151382377422296e-01 +2900 1.6983359276466916e+00 -3.3517850049574271e-01 -5.4097314854381651e+00 +2899 -2.8799673230289198e+00 2.8212645557973746e+00 -1.1798814090262559e+00 +2898 -4.7179792579498194e+00 -2.8656128133679344e+00 7.8175258987723018e-01 +2947 2.2893441718076333e+00 4.9921796795194604e+00 6.3995628889615279e+00 +2884 6.3215320390485701e+00 7.2911207526877997e-01 3.1688293477991860e+00 +2882 -3.2364449800732684e+00 2.3777935631826814e+00 -2.8501395221290697e+00 +2380 3.0591403462203064e+00 2.8969133110159468e+00 3.9694616227595039e+00 +2226 1.5822532323946854e+00 1.1156283558235911e+00 -1.6238934441695694e+00 +2227 -1.3139630161071005e+00 8.0785064758346148e-01 3.5348066322147815e+00 +2228 -4.3467149584486062e+00 -7.9416675391810021e-01 8.9764522126548696e-01 +2229 -3.0630412139075234e+00 -1.0297010144958859e+01 -3.3817348647705390e+00 +2292 1.1837713783274892e+00 6.0254188865187590e+00 3.3969551209274040e-01 +2242 -2.9776209006243053e+00 1.0833590775401638e+00 7.2012899352832864e+00 +2558 1.7959683831346751e+00 1.2676018628011948e-01 -4.9548357855581990e+00 +2868 -1.5449615110755384e+00 -1.1417521285089776e+00 -3.9811375065309766e+00 +2866 -9.8348441475163306e-01 -8.4432407239259516e-02 -3.9925203285622537e+00 +2291 4.7603058319673872e+00 3.7291428522837786e+00 -5.7541873245833957e+00 +2869 5.5988156885214071e+00 4.9372770621596338e+00 3.0008710765178939e+00 +2852 6.9017854678075503e+00 -1.8944271446615006e+00 4.5200434897285485e-01 +2850 7.5289330339480198e+00 -4.0015876157061214e+00 3.8131350039789520e-02 +2867 -2.1958759100571248e-01 -3.2665336696154803e+00 -1.8807824679476230e+00 +2244 -3.9894648172266969e+00 9.2776044495802679e-01 1.5855178768833953e+00 +2290 7.0127853761004664e+00 1.1723959706886187e+00 -8.9592119428697747e-01 +2689 -2.8495135664741529e+00 6.2740876065455864e-02 5.9534679652301934e+00 +2179 -4.1470072480791442e+00 1.7683587300758772e+00 9.6360953679080485e-01 +2378 -2.7010928195969153e+00 -7.1179181287241429e+00 -5.2865480875792175e+00 +2258 8.0850179799498778e-01 -1.4619278629325856e+00 -7.4398258636866661e+00 +2259 5.7279369260125428e+00 -1.0175493419319931e+01 3.1302769984097600e+00 +2851 3.2140568654726742e+00 6.7500019892514311e+00 -1.4610250958149307e+00 +2837 1.9191325474158518e+00 -5.7438998923005906e+00 -9.5192267963951874e-02 +2260 1.2946932033484946e+00 2.3736577561476522e+00 -5.4862157896967298e+00 +2611 2.1354018257878029e+00 -1.7463736097115359e+00 3.6871186704919814e+00 +2836 3.0261525066134620e+00 -1.1840537213822848e+00 -5.2518016264055687e+00 +2834 -6.1830954911035567e+00 4.0562253138937496e+00 -1.8425663930668725e+00 +2261 -4.7730088709651399e+00 -1.0975289601484552e+00 7.7332600608319266e+00 +2820 -5.0080225656755166e+00 -3.4413043139394222e+00 -7.2842723714085333e-01 +2818 3.0417917157139516e+00 1.9839065943010419e+00 1.8677745141858233e+00 +2329 3.5762650394378181e-01 -1.3254287086158090e+00 -3.5611435188142293e+00 +2579 -1.5880559211212510e+00 -1.2440234775764827e+00 2.9134292671788851e+00 +2274 3.6472833482296368e-01 1.9475662274614149e+00 -2.8839674282419190e+00 +2565 -3.8342060653250307e+00 -1.0565975532405131e-01 -2.2794558313691642e+00 +2275 2.6375643352524079e+00 -1.1722872853293585e-01 -1.3545723046521601e+00 +2595 9.8660931669551455e-01 5.6163701704065938e-01 2.7745855867935315e-01 +2276 -3.1672835910653077e+00 -1.9280892622586028e+00 -2.6996500792182826e-01 +2757 2.3085197825570719e-01 7.7549618323544278e-01 -1.3336068046115217e+01 +2581 -4.1079008015340310e+00 2.5198459567365052e+00 5.5609539438991384e-01 +2394 5.2964798413418164e+00 1.6979182198697548e-01 1.2647782218498513e+00 +2393 -1.5782591883615116e-01 -1.6615066057121981e+00 -1.5928337063576439e+00 +2181 -1.5670496751649670e+00 2.1107010263734658e+00 1.8761783818454802e+00 +2789 -4.3953287801090868e-01 1.4889925148467309e-01 -2.6106114238139573e+00 +2788 8.2161992580632930e+00 3.0203228047699486e+00 -1.6518272941265575e+00 +2787 -1.1274536723553844e+01 -2.0527528318938587e-01 5.9408300745133804e+00 +2083 1.2532244484707713e+00 -8.5741084539099983e+00 1.7163766691175035e+00 +2449 -6.3110718952367617e-01 2.4005202872728524e+00 9.3502885621412157e-01 +2325 3.0674046761292217e+00 5.7345029271804693e-01 4.7797046705111157e+00 +2306 3.6254885222973060e-01 6.3227924078253306e+00 -8.3900209645293042e+00 +2308 -9.4381098742842315e+00 -5.2231948247728637e+00 7.2481042303951515e+00 +2322 -3.2264854807792736e+00 -9.6454412543174539e-01 2.9630825771813525e+00 +2324 -8.4377135999575632e+00 1.1738018200788551e+00 -2.2921088628961637e+00 +3013 -2.4344764066488898e+00 -6.8500797863323282e+00 -1.8873807141682668e+00 +3011 3.8922240656649243e+00 1.3519933025947133e+00 -2.5072012876926830e-01 +2786 3.3699069405366178e+00 2.4450955796453981e+00 1.2303598423435318e+00 +2773 -5.1524563937794776e-01 -1.2144700877995462e+00 1.1536875225538157e+00 +2772 -1.2620631361930414e+00 2.6135689684245662e+00 5.3477037594585823e+00 +2771 -6.7838978183732461e+00 -1.3872886917692582e+00 -1.1379490878356506e+00 +2770 4.7831628356888070e+00 4.1647511917689020e+00 7.5402727054302554e+00 +2756 -1.4055054340748201e+00 2.3826180242672979e+00 1.1414410643673849e+00 +2392 1.0312085505955746e+00 6.6795445052284341e-01 5.4032493249062759e+00 +2338 6.3198983924076817e+00 -3.8149917555206079e+00 -9.4615820152588936e-01 +2340 3.1065302594334354e+00 8.9914998663233303e-01 4.6197914806126414e+00 +2354 1.2782912501244827e+00 -2.3792110395186090e+00 -1.1998306621577879e+00 +2356 -5.5820821674453942e+00 -5.9278292583482850e-01 1.2849025663124194e+00 +2370 -3.2933105003599246e+00 -1.1650566788893011e+00 8.2901930934889290e+00 +2372 -1.1842546129050433e+00 5.0074861312660768e-01 2.9759729946567561e+00 +2386 2.7466330807228134e+00 -3.1914189090552632e+00 9.6983414255078282e-01 +2387 -5.9385032063720216e+00 -1.9419052533315413e+00 9.1544833603829501e-01 +2754 3.1071560616823746e-01 3.9028852940654808e+00 -2.7654243562714238e+00 +2741 2.8193455147842184e-01 1.1759297911407058e+00 -4.3417817755784158e+00 +2740 5.2291571873258320e+00 -1.0295118375756089e+00 -4.2222342229735883e+00 +2739 2.0549569143817057e+00 -5.7841727451058156e-01 -7.0461890840926397e-02 +2738 -4.6274903529849531e-02 -3.6292628435362646e+00 1.9281589055284372e+00 +2384 -6.3122482754584686e-01 -5.9102028185109790e+00 1.7498784948087617e-01 +2724 -1.4267898259902445e+00 1.9475488930716882e+00 1.3530078354365332e-01 +2723 3.9627727625538651e+00 4.8574627845919851e+00 2.8351292164290698e-01 +2388 -6.1975669436431042e+00 -5.2105774323022294e+00 2.3317037959193900e+00 +2389 -3.4109361087506533e+00 2.2925852520047800e+00 -2.3203127617355728e+00 +2391 3.8931360969786879e+00 -1.3238565054494367e+00 -2.7664588740618221e+00 +2402 -5.1967591544638259e+00 1.9638545673366905e+00 3.7132905670378742e+00 +2403 2.2955243374418602e-01 5.3613990031134162e-01 -1.3939084942979412e+00 +2404 2.4361265002679011e+00 -1.8266050658468567e+00 -2.1073159519476081e+00 +2405 1.6100884268222124e+00 4.5646749256782826e+00 -1.3241603515731850e+00 +2418 -5.9418762428265302e+00 -4.7067423286388532e+00 1.7226915540801970e+00 +2722 1.2458670479201697e+00 -5.2919553389622409e-01 1.0687187056703791e+00 +2419 -3.8638975243827103e+00 4.0318654725471177e+00 1.7182679597640134e+00 +2709 9.3792096531261993e-01 -2.9095202092338575e+00 -1.7414081016269318e+00 +2708 1.7067221089488209e+00 3.9196499187265132e+00 6.4702526662132931e-01 +2707 -4.4654445742880604e+00 3.9677488360701165e+00 -2.7509932850073446e+00 +2706 -8.2725440524795757e-01 -1.6018550920307961e-01 -4.0424925648711536e+00 +2420 3.2324730697168431e+00 1.1927581685657751e+00 -1.6946445074589886e+00 +2802 -5.1240229352880986e+00 -2.0236047677529614e+00 -4.9184376919315751e+00 +2803 -6.1976738000351235e+00 -5.7243156459662903e-01 -4.7914880341167070e+00 +2804 -6.2670829172429565e-01 -1.4757467373327809e-02 -1.2816067728663580e-01 +2421 3.2136785232821543e+00 5.9772832896014547e+00 -2.2793316848393044e+00 +1025 2.3644065863319108e+00 -5.0749089669534015e+00 -2.9525972187289478e+00 +2434 9.7190151758035626e-01 -7.0366602469659751e+00 -2.2176930608288767e+00 +2436 -2.1396316390090795e+00 4.0190628434589586e+00 6.3406028074664613e+00 +2390 4.7360411245364364e+00 3.7196236760911799e-01 1.7759659307935727e+00 +2450 2.7844438769928903e+00 -2.3404360186149988e+00 3.3351329924236066e+00 +2451 3.4764792229361724e-01 -1.1868508773180595e+00 4.8073675898512724e-01 +2452 -2.9492262934507609e+00 -1.4485376146644118e+00 -4.6972884073965968e+00 +2453 -2.6238674160789639e+00 -1.4954841722181131e+00 5.4608271698929221e+00 +2805 1.6065940897552384e+00 1.8425909989151519e+00 -2.1456859528144663e+00 +2692 -3.6371625071024640e+00 1.8354168479816295e+00 -4.5097630029486535e-01 +2690 -2.8183678826894969e+00 3.2153736319789084e-01 -3.9748423986327663e-01 +2466 -6.1203840998100540e+00 -1.1944677823949330e+00 -3.0280856806702277e+00 +2677 -2.2138743347102463e+00 1.6417898136356825e+00 3.2226578465896694e+00 +2467 -2.9111603875924241e-01 3.6448785419518175e+00 6.7474083545272636e+00 +2676 1.7811786664479834e+00 3.0433032996940019e+00 1.9864308934570470e-03 +2675 3.8268917174370527e+00 -1.6240776926642040e+00 -4.5460492401740122e+00 +2468 -3.9057974787876217e+00 -1.3185311526101962e+00 5.1848741425992850e-01 +2469 -2.3301349287048723e+00 3.7384369981455752e+00 6.3648702598973583e-01 +2482 -1.2976240275246753e+00 1.7453900486424312e+00 2.0460849779120478e+00 +2483 4.1265353450135862e+00 1.9799098795959960e+00 -8.8955834165900438e-01 +2484 3.3277412008253342e+00 -2.7091637650379652e+00 4.2573539041035966e+00 +2674 -2.7911408869990653e+00 -1.4485399976674185e+00 -1.0110724430478020e-01 +2661 1.3690554914698325e+00 1.9460930546658470e+00 -1.9840343491964574e+00 +2485 -2.6480590761180971e+00 7.5595811244001876e-01 6.2015838824690324e+00 +2660 1.7079559333861716e+00 3.0034934431537880e-01 -7.9501296906732986e+00 +2659 -5.9085971649040991e-01 1.2784819033078958e+00 1.2201917609736459e+00 +2658 2.1275054027628624e+00 6.2853905694682473e+00 1.6983389111800498e+00 +2644 -1.9608987424870987e+00 -2.3010782796927884e+00 -5.1692009774343655e+00 +2643 8.6955575806118657e-01 1.4604207228807280e+00 -1.1855085983128457e+00 +2642 -3.3127094097150329e+00 2.8124977699500011e+00 -3.5310307118755513e+00 +2628 2.8344524146927510e+00 -6.3854316677021350e+00 1.9411278417181106e+00 +2626 -5.5441501102498647e-01 7.3885944655714493e+00 -7.7694937482295821e+00 +2691 5.1920158436740793e-01 1.9942943161974680e+00 -1.5917347784475637e+00 +2243 3.6980680827166048e+00 5.9198455639769687e+00 -4.2791324234060761e+00 +2498 -2.1907528166647459e+00 9.6331958777902016e-01 7.0530786822578362e+00 +2339 -1.0151591615680640e+00 1.1799901787000531e+00 -3.7354390182874742e+00 +2500 -4.4613129194704149e-01 3.6158627392368031e-01 -1.5787076320881080e-01 +2693 3.5449685427794448e+00 1.9442773045019273e+00 1.7800781455325942e+00 +2549 -6.5161188163190635e+00 3.4133322823911714e+00 2.4881587335032740e-01 +2548 1.0043452989995434e+00 -2.6959056174017024e+00 1.0694393265549660e+00 +2547 3.8953948453818996e+00 -1.6516746334172516e+00 1.5120311594063301e-01 +2546 -9.8844484821357759e-01 -2.0835892161939524e+00 1.0861652612658401e-01 +2245 -3.8025597968704208e+00 -9.7038187547602006e-01 -4.3052733409431870e-01 +2612 -5.2579437498493045e-02 6.7720370188013099e+00 1.8665153951445288e+00 +2610 -8.2475320589608458e-01 2.1387150828178483e-01 -1.6385731452153758e+00 +2376 1.9980623866315763e+00 5.9259582999007432e-01 -7.7193992911906872e-01 +2115 -6.8255954641230646e-02 -2.3279903141439560e+00 5.7909690440157542e+00 +2627 2.1053884750495730e+00 2.3337723953366210e+00 6.5527312061490619e+00 +2629 -1.7063654494872469e+00 6.6279571567276845e+00 8.1166374863014412e-01 +2514 2.4575602731485580e+00 -2.0604439517078985e+00 -6.3551364707170571e-02 +2515 -3.3359724983734025e+00 -2.6179916179543112e+00 -5.2194299955700245e+00 +2596 3.8405345670057511e-01 2.8778746462040150e+00 -3.2952788015755954e+00 +2516 5.5680457806998609e+00 -1.1634891899867071e+01 -3.7803105902706752e-01 +2530 -1.4471834478997105e+00 6.8903103663993681e+00 4.9211993117535293e+00 +2531 3.7725195212601599e+00 2.2983290933682201e+00 2.0766589015871700e-01 +2532 -1.8392752979520710e+00 -3.9746436896629431e+00 3.6696860848529065e+00 +2533 2.5778919814117591e+00 -2.4730791782699781e+00 3.8767726406088849e+00 +2067 -3.1723134696991786e+00 1.0975793191272087e+00 4.0642065239210046e-01 +2594 -8.2067992211845642e-01 1.7607541019904389e+00 4.5775897055901664e+00 +2949 2.9336261209061592e+00 -7.1806200284538699e-02 -4.2666006911648848e+00 +2051 4.9374275380520694e-01 1.2307500617428645e-01 -6.3822015142856525e+00 +2580 3.0131656188343334e-02 -2.0746468386913657e+00 1.1882096542163343e+00 +2578 -1.0495344182996913e+00 -3.2213036954719942e-02 -5.6234398179503808e-01 +2371 -1.6934535410800991e-01 2.0686997834838756e+00 -3.2731902733685514e+00 +2755 -3.6719241736105364e+00 1.0215490964172742e+00 -1.8709771177990284e-01 +2435 4.7581633992531156e+00 3.9875491288834461e+00 1.9770140096058779e+00 +2819 7.8601672193886163e-01 1.1866421194349737e+00 -4.2792339040447711e+00 +2564 -5.9949885061585935e+00 5.5072862981326995e+00 4.5473039190834692e+00 +2562 -1.0652363246884267e+00 -9.0562525182069942e-01 9.1015892610670723e-01 +2835 2.5000009856401744e+00 -3.9293367381511923e+00 -5.0716049274576882e+00 +2829 6.2974298626041030e+00 -3.0346041533763488e+00 1.8445337930261951e+00 +2589 -4.3403449186481369e-01 3.2337707680130556e+00 3.5602152810727521e+00 +3015 3.1400159700001371e+00 3.4081414435205302e+00 3.5318617075860086e+00 +2885 -5.0358000164443881e+00 -5.1613686778326091e+00 3.4962302497795075e+00 +2621 -1.1188379992145314e+00 4.0030636812195102e+00 5.4930154142386529e+00 +2841 1.3037965769223763e+00 -1.7114491377295739e-02 -1.3160537076580243e+00 +2379 1.7062030422774492e+00 -3.6808525593780441e+00 1.6942481422972860e-01 +2505 -2.9527083837281638e+00 4.9378787135113207e+00 3.3625676595720160e+00 +2873 -1.3895874516067352e+00 2.2906547085557474e+00 3.4584886959015599e+00 +2319 -3.0326557006081911e+00 -1.7833766233312007e+00 1.3521766464387261e+00 +2619 -4.2113823878587660e+00 2.5442656819849452e-01 -7.0535794524645716e+00 +2599 -5.7872136288698597e+00 4.4677671447443155e+00 6.7689609942109596e+00 +2443 2.8427317527693408e+00 -4.9425860045540615e+00 -2.3972703717627244e+00 +2893 2.3112988965983539e-01 -5.6048151860599944e+00 -1.2589335255331568e+00 +2831 9.2186810765029525e-01 -1.2292550610543358e+00 -1.0937775245379449e+00 +2839 2.4883594133377636e+00 9.7077128989514372e-02 -3.3801746227750251e+00 +2879 -9.0411979851764031e+00 -2.8328730923625876e+00 -5.1816264935638428e+00 +2601 -4.5452089755796593e-01 -2.2575491547595470e+00 5.6080401819835561e+00 +2583 -3.0457785288361068e+00 -8.2340601406694880e+00 -2.9463745303052722e+00 +2445 -3.7153322387084047e+00 2.8422289969470316e+00 -3.1441845763115983e-01 +2377 4.1448592060469123e+00 2.3758630661368758e+00 -1.3832013257623017e+00 +2875 5.6509797588954997e+00 -8.3509492885896019e-01 1.7235622836092918e-01 +3045 -1.2037012188561185e+00 -2.9602617527375714e+00 -6.4809099895240783e+00 +3041 8.1401993673180240e-01 5.2888289914105346e+00 -5.1368690069334528e+00 +3040 7.3337625642376314e-01 1.0292556731894724e-01 -6.0275535511098814e+00 +3039 6.0603603309738014e+00 -5.0006567301275329e+00 -1.5284541638275548e+00 +3038 -6.1979641482097253e-02 1.0606936158350400e+00 2.3432053961912542e+00 +3037 2.6518309384424201e+00 -3.6860765647912199e+00 2.4399936389178594e+00 +3036 -2.1419263508926010e+00 5.8266977447432327e+00 3.8098102398125042e+00 +3035 3.2945874323477238e+00 1.5810361329652525e+00 7.5177322270754132e-01 +3034 -3.7100008397741489e+00 -5.9083004880880150e+00 -2.7313732837831348e+00 +3033 -9.5796799980106928e-01 -1.9743032874944735e+00 -6.0708857155174956e+00 +3032 -4.6824888228471888e+00 -1.6953882448285449e+00 -2.2613938632793924e+00 +3031 -6.7497870632237089e-01 -1.1024980523174150e+00 3.4680356496312681e-02 +3030 -2.0027959249446492e-01 -1.7284466211538494e+00 2.7010728416235903e+00 +3029 4.5776931282954916e+00 -3.6137436718961853e+00 1.7093878411375414e+00 +2657 2.8143380258690689e+00 -2.2092613823290255e+00 1.2936417438645043e+01 +2417 1.0922863444177537e+00 -1.9766033039965063e+00 6.4815892085848004e-01 +3022 5.2698852219119052e+00 -4.9522162751877721e+00 -5.2340636616045009e+00 +2953 5.5500335569965109e-01 -5.7579550388728251e-01 1.5952650211021163e-01 +3020 -3.0269472245046432e+00 3.7548225925270038e+00 -4.2805722850982182e+00 +3018 1.8707646910790887e+00 6.0659667330708378e-01 2.5081567765411657e-02 +3016 1.4744358969085363e+00 -6.3157058589445869e+00 -5.5471738615390667e+00 +3054 -7.3396215652137791e+00 3.1088962268456459e+00 -3.5184094047339536e+00 +3014 3.6632158976031087e-01 2.7984563103761944e+00 1.0196417173824168e+00 +3046 4.3596296602208815e+00 2.4351031956457803e+00 -1.7279224683388374e+00 +3061 -4.5948197392640191e+00 -7.0882665460064018e+00 6.7444654110038260e-01 +2080 5.1032372812886466e+00 1.2249718705763135e+00 3.1009646166850269e-01 +3007 -2.8157840924824512e-01 3.2630204346756719e+00 2.1104224962657195e-01 +3006 2.9397429085383378e+00 -1.8388798809912457e+00 -1.7583258361609295e+00 +3005 -2.8779185457250840e+00 2.5721264396402481e+00 1.2342498754523901e+00 +3004 -1.7235672440306768e+00 -5.6858109969246851e+00 -2.8579003386867146e+00 +3003 -2.3722300510934997e+00 2.1323192927560246e+00 2.4234692072438833e+00 +3002 1.0526791689280852e+00 1.4049511390562647e-01 1.8663553440585401e+00 +3001 4.1931533139541521e+00 -3.6012685007950651e+00 5.2710562189473087e-01 +3000 2.7896156114471360e+00 4.4466178487633989e+00 2.0377793111779026e+00 +2999 5.1547386361351073e+00 -6.6888640779436956e+00 3.8485596970194007e+00 +2998 -1.9324196964001741e+00 -5.8994282555957289e+00 -2.5259580417368852e+00 +2993 4.9264268391103183e+00 -4.6845329765735855e+00 3.7913660153368576e+00 +2272 2.1335513520193143e+00 1.2138521128778299e+00 -1.9061129383326896e+00 +2991 -1.6166173012612965e+00 -1.3892590314000717e+00 -6.9756745463404868e-01 +2990 6.1066260048816021e+00 -1.2176675508567341e+00 5.8881700355025390e-01 +2989 1.2018008898690449e+00 2.2611491880769594e+00 -8.6573183663142519e+00 +2988 -4.3935428476094307e+00 9.3020496003539743e-01 3.7930347550988563e+00 +2987 -2.0368634074818925e+00 -2.5265085628076709e+00 -4.0181997417327482e+00 +2986 8.0143415340382274e-02 3.8594275946549961e+00 1.3193611981003028e+00 +2985 1.1232596933542063e-01 1.2025237862974663e+01 2.0587506096441808e+00 +2984 5.9173354932564299e+00 3.1126177367618766e+00 4.4971547428485783e+00 +2983 4.7275953598562515e+00 3.2400994175715176e+00 -2.5092767040169434e-01 +2982 -3.0941145048756691e+00 -2.2603075116816087e+00 5.6783180882271402e+00 +2977 -5.9622756273954725e-01 6.0221726476407191e+00 -6.7197451663119985e+00 +2976 1.6322737406702008e+00 9.4149512041295367e+00 3.2045379100084932e+00 +2975 3.4421986425450823e-01 2.2443849964513967e+00 -3.0071092766789027e+00 +2974 -9.4559333175237437e-01 1.6489259236136855e+00 -7.8395241796651971e-01 +2973 4.2603014470906384e+00 -5.5042713638939045e-01 4.0055905265898613e+00 +2972 -2.4626066351682718e+00 2.7193249170028744e+00 3.4902863276118392e+00 +2971 6.7371195791660465e+00 2.2721761195242243e+00 2.7546102339803280e+00 +2970 6.7146637952971100e-01 5.7579265073637815e+00 -1.2426296366492495e+00 +2969 -3.8394946434814670e+00 -3.0130998936553794e+00 -1.8983819679417684e+00 +2968 -1.4249323714517854e+00 -1.4386787110292170e+00 6.4295153191163692e+00 +2967 -4.3145095384996548e+00 3.6882113730489102e-01 -7.4742901588043476e-01 +2966 5.0315082020901851e+00 -3.8456977324382913e+00 -1.2161460118947094e+00 +3741 -2.1310623497838708e+00 5.0142796880372700e+00 8.1259727428995443e-01 +2960 2.5020043165557313e+00 8.1190203234671854e-02 -6.9259170091575104e-02 +1409 -1.0592960565852430e+00 -7.1047704783954408e+00 -5.8180042946507955e+00 +2958 -5.6569348114732252e+00 -6.2677347713100460e+00 2.4162025069428710e+00 +3062 -1.9260874795283969e+00 2.0048305218348905e+00 2.4024513048044316e+00 +2956 4.4048890258063054e+00 3.2637771121594814e+00 -7.2718461650096442e+00 +3047 -6.0403516438020621e-01 2.0004287064043522e+00 -3.0219969668532305e+00 +2954 3.9393837923990742e+00 -8.7780379064992187e-01 -8.6738636960466167e+00 +2952 4.2096905956837336e+00 -2.4296277628805156e+00 1.5342044230890974e+00 +3063 -1.8033445488017257e+00 3.4547976308287169e+00 3.4675186662958963e+00 +2950 2.3767744324267568e+00 2.7957521872502888e+00 4.5771566937782096e+00 +3048 8.6904721232033282e+00 -3.5727504424280627e+00 1.6698592354866121e-02 +2912 -1.1353049549227953e-01 -3.7357948906904554e+00 -6.2017641069984890e+00 +3049 3.5241058924005015e+00 1.5111188486208178e+00 -3.1902401567953986e-01 +2688 1.4883199618838590e+00 3.4518706341193717e-01 -4.2388867159375705e+00 +2943 -5.4931146671090858e-01 -1.6248879311089528e+00 -2.3923845927092815e+00 +2942 -4.3336888801910964e+00 -4.3955403472659560e-01 4.2770776201104184e+00 +2941 4.3136884760723335e+00 8.5850169461158488e-01 -1.7554224972586047e-01 +2940 -2.9249313189657844e+00 1.6687289311059647e-01 -9.8240524631297510e-01 +2939 6.7255377034165420e-01 5.6091358806942209e+00 -1.5632666873839187e+00 +2938 -3.0592352606964393e+00 2.0114534840926117e+00 6.2716693656617917e+00 +2937 -6.8254601970979341e+00 -4.2273556995548676e+00 2.3003126990986793e+00 +2936 7.7670229540220035e+00 -4.9128241990401929e+00 -4.3744423889688084e+00 +2935 1.6405585701850238e-02 -1.3871282899043740e+00 -5.2219252228796504e+00 +2934 1.3911156994433869e+00 2.0341763510018200e+00 -3.8291405663235495e-01 +2097 2.7817518579482310e+00 2.8251342590654218e+00 -2.4148879925863045e+00 +2928 3.7900832243056000e+00 3.6052636515360881e+00 -9.7050437306701589e+00 +2927 1.2102118846365655e+00 -3.9964036052395158e+00 1.3031733929936420e+00 +2926 6.1938556572379344e+00 1.5550981346929318e+00 -2.4897741772537727e+00 +2925 -1.2763487517336716e+00 -1.6248755262786709e+00 4.2316591244414665e+00 +2924 -1.4241140851738461e+00 2.4890835146055275e+00 3.4272713955436300e+00 +2923 5.1960904885974890e-01 3.0357139849885217e+00 2.6004586616788754e+00 +2922 1.4259565121320705e+00 1.3420976491738892e+00 3.1773628063509953e+00 +2921 -7.7666846564068259e-01 9.5630494632102891e-01 4.6404548527827902e+00 +2920 4.2775141891202315e+00 -4.8666387370413915e+00 5.0383110501211812e+00 +2919 3.3254423114878824e+00 5.0181501114899518e+00 -4.9727772248917574e+00 +2918 -1.8316978744587462e+00 2.9617136006890359e+00 2.0141164762244439e+00 +2374 -1.9410356448760302e-01 5.8788381633004527e-01 1.8282541199520055e+00 +3145 -5.6571566420082036e+00 2.6276073894673040e+00 -1.7777583732939741e+00 +2911 2.2435527362699239e+00 -3.0175439494094820e+00 -3.2303260120779660e+00 +2910 -7.4841714492671461e+00 4.1217189997544814e+00 -2.5804367495058722e+00 +2909 -4.4628191721338322e+00 9.5570682436757470e-01 -6.7561312277803376e+00 +2908 1.0254810554261775e+00 -5.2865957410200337e-01 -7.8234161684471959e-01 +2907 4.4383243002018062e+00 3.5770354807098319e+00 -2.1899161791223891e+00 +2906 -4.3562426204653546e+00 -8.3145108574219702e+00 -4.3658996642359051e+00 +2905 8.6875950099349541e-01 3.2938191459212351e+00 2.4143389869183780e+00 +2904 3.2151877034687198e-01 3.5748006434714625e+00 1.7013578191136298e+00 +2903 -4.8094543537667578e+00 -1.6997416534672845e+00 3.8676663397452122e+00 +2902 3.2344574572877489e+00 5.1966792356979363e-01 3.6315675578836109e+00 +2321 -5.4246174951686470e+00 5.7851364676216466e-01 -1.0832882499592917e+00 +3478 -1.4772840232059381e+00 -2.3680582109191000e+00 7.5746643458991225e-01 +3064 4.0464787594738310e+00 3.8241915031452728e-01 -3.1354870615375687e+00 +2894 -2.6307799254895099e+00 -2.8994434766460433e+00 4.0554273032311949e-01 +2892 -2.7080685743128536e+00 1.7324812754015366e+00 4.1360968572298906e-01 +3065 -2.0092192923528795e+00 -7.8904024951728924e-01 5.6227854423931500e+00 +2890 4.9687893864977131e+00 2.9516625249383375e+00 1.1131520703918385e+00 +2847 -2.6140049963169326e-01 -2.6300476497423558e-01 2.5804664751571456e+00 +2888 -4.9832573433897700e+00 -2.1043732242864035e+00 -1.5314503000147626e+00 +3066 7.5523358892355441e+00 5.1064790655040042e+00 -3.8128572716087743e+00 +2886 1.4241711167892495e+00 -6.4375118162635650e-02 1.6058878437294783e+00 +3242 2.2253153688122480e+00 6.1020746260010768e+00 -6.7440743952807769e-01 +3067 2.2312161703556797e+00 -3.0901688830209477e+00 -2.4071585097155985e+00 +3068 -2.5555502995222295e+00 2.5798173513866951e-01 6.0138638021708299e+00 +2880 5.4182549046599071e+00 -2.8918403543412463e-01 -4.3377097068483161e+00 +2639 -2.1975611227503746e+00 -5.1157134114441971e-01 -6.1369954394685955e+00 +2878 8.9268750741376679e-01 -5.5263186116512264e+00 -2.6803809951285102e+00 +2876 3.0250478279163862e-01 -6.1682471896915125e-01 -5.6494440343751853e+00 +2288 -3.0777557192805571e+00 1.8004015529803998e+00 9.7112823515583901e+00 +2874 1.3817795557593893e+00 3.1218495307507932e-01 -1.7771767612283068e-01 +3050 -2.8796274212448847e-01 2.2388594055104831e+00 -1.2799710045318262e+00 +2872 1.2833896135324132e+00 -1.9895117269663325e+00 -2.4678884888633483e+00 +3051 -1.6141950136377194e+00 -2.2106018416130238e+00 4.5947756874606664e+00 +2870 2.3681786914909568e+00 1.7102645761576046e-01 -1.2544258303850846e+00 +3052 -7.2299161704949393e+00 -1.8388465127470035e+00 7.6496773074114255e-01 +3053 -1.9650935787556347e+00 7.3025938374917360e-02 3.7279283849779152e+00 +2603 -5.5622517361023371e+00 -4.8997290316970297e+00 -6.7419731390812609e-01 +2864 2.9167733710580075e+00 4.6644815968565174e+00 -4.5536890444253837e+00 +2862 -3.2055351780883878e+00 3.5199332019366514e+00 -2.7514060176534016e+00 +2587 -4.0316244994934465e+00 -6.0060555575593657e+00 -4.7208605161552883e+00 +2860 -3.7532300543347770e+00 -3.0154105797147301e+00 1.8528252881279685e+00 +2858 5.5113501890560377e+00 -1.7721518672888690e+00 -2.0281485768409180e+00 +3055 -6.8689942176718723e+00 -3.2099380898750223e+00 -1.1148690854690015e+00 +2856 -3.4276323153243893e-01 -5.4742559511349125e+00 3.1823095284622110e-01 +3023 2.6666126407815609e+00 -7.5031737554963798e-02 -1.2933853713716850e+00 +2854 8.0015176336091476e-01 6.7040209042912560e+00 4.0803413443002512e+00 +3017 -2.0881869769364081e+00 4.8635217152296990e+00 2.5425241639874563e+00 +2863 -3.8517822563643325e+00 -4.6946687826143391e-01 -1.2564653237675809e+00 +3019 -2.1334207065083315e+00 5.2766413335224682e-01 2.6824455612784135e+00 +2848 5.6486288787302597e+00 -1.9482124644911847e+00 2.9296911907655092e+00 +2846 -5.0436592693370912e+00 1.1238736471293717e-01 4.4608066287511985e+00 +2844 -2.6039359189807341e+00 -3.1324757654019635e+00 -1.6666194832251808e+00 +2842 -7.3002235952637946e+00 -2.6806257783647642e+00 -1.0865090226208978e+00 +2840 2.1579345750579466e+00 6.5588321641833158e-01 -5.9406350684637141e+00 +2441 3.0783659992560222e+00 7.2519066291722067e-01 -6.4170928566647358e+00 +2838 -1.9147907642148410e+00 1.0830505318734882e+00 3.4380767829626215e+00 +2887 1.5787843286781431e+00 1.7402429250477975e+00 -1.7517180072033940e+00 +2929 3.9194864650068091e+00 -3.2398049604894021e+00 -1.3108539515510560e+00 +2383 1.5726002972317787e+00 1.5390252221831207e+00 3.7757938584235067e+00 +2830 -1.6719314174901498e+00 5.8146698287109420e+00 -1.6712090937356394e+00 +3069 3.2459081048523490e+00 8.5624452119091252e+00 5.5663301478770855e+00 +2828 1.6945737985332643e+00 -9.1610629014572424e+00 -3.0385985374574704e+00 +3070 4.7090033446567228e+00 -8.4770615439869346e+00 1.2661612802091515e+00 +2826 2.3802007826557738e+00 -3.2388040821018853e+00 2.9970656567370750e+00 +3071 6.4702905371767350e-01 -5.0663371726776312e+00 -2.7835935150170632e-01 +2824 -1.7746053410072775e+00 -7.7265056340991105e+00 -5.5353176990934054e+00 +3072 8.9792889875082471e-01 4.5501796745909644e+00 3.8746352008335028e+00 +2822 -3.1795119831746965e+00 -2.0035777578406062e+00 1.1328155972805709e+00 +2061 -1.7486891768553690e+00 8.1931123021973062e-01 -6.9184533995523605e+00 +2877 6.2687775608230858e+00 2.4415686238775150e-01 -2.4667174963680241e+00 +2591 -1.2358697890324855e+00 -3.6040921572134565e+00 -7.1060718109330239e+00 +2861 -3.3246865306504123e+00 6.9439137925070249e-01 -2.8801628120511658e+00 +2617 4.1844001162572155e+00 4.6855066203986580e+00 2.1409164616608409e+00 +2857 -4.8337156098534634e-01 9.5309847009070015e-01 3.1777037665725172e+00 +2865 4.3808834083264649e+00 1.5788987017100489e+00 -2.2467824942441053e+00 +2256 -9.2372641386734100e-01 -4.9326718908580389e+00 -1.3751010567137203e+00 +2633 3.4265620996859512e+00 -1.8938820570395507e+00 1.7545247214564013e+00 +2573 3.8791507721531826e-01 -6.2902681150538049e+00 -6.6755551329172009e+00 +2127 6.3876381152545632e+00 2.6437000645680144e+00 -3.6120098868032802e+00 +2121 -3.6615569848761251e+00 1.0109450969315299e+00 2.5814639250317408e+00 +2765 -4.0219899889543393e+00 1.8215863168855524e+00 2.5791604050505219e+00 +2059 -3.5995431249455150e+00 2.5831843961748815e+00 3.3917283421497735e-01 +2845 -1.5428033036587632e+00 -4.4854829915781878e+00 1.1062584573381007e+00 +2607 -3.7034350782941372e+00 5.2994729083795340e+00 -6.0090247507806516e-01 +2185 -3.0277605550748317e+00 1.6545890892131282e-01 2.1489921739100821e+00 +2249 9.3991356949147580e+00 3.7238168602868713e+00 -1.8142655793846447e+00 +2119 -8.9348441109724397e-01 -1.1543945226204935e+00 -3.5316000500781093e+00 +2843 9.3627232802049338e+00 6.5380636876346969e+00 -4.9199009385427441e+00 +2187 -3.9263144441246145e-01 4.6491604875608772e+00 1.8770210538969634e+00 +2191 -8.0700404273017483e+00 -2.5110790414464828e+00 4.3339900083723135e+00 +2871 -2.5250601373629333e+00 -8.1666969492581931e-01 3.7857429932970779e+00 +2761 2.1014525072340615e-01 1.8184582936173521e+00 -2.4961535559378802e+00 +2790 6.8378048017702104e-03 3.6991389998883375e+00 -5.7322350954998100e+00 +3480 3.4749335364058740e+00 4.5450816575968860e+00 -1.8623340150569949e+00 +3281 -1.4078278240317288e+00 -1.0249468707439480e+00 -5.0881926988805137e+00 +2783 4.1139638303758659e+00 2.3649494586956208e+00 1.5944139486475033e+00 +2782 -3.4288476879114840e+00 1.5021721125882430e+00 -4.4098317905970391e-01 +2781 6.6783447594023677e+00 -2.0143464566539593e+00 -5.1695225923589510e+00 +2780 3.7183993662258947e+00 3.0355799797759606e+00 5.7526739901207540e+00 +2779 -2.6934364865048721e+00 4.4584091683918707e+00 -9.8810239355222329e-01 +2778 4.1676689830298308e+00 -5.9089195888214405e+00 -4.6346127202120160e+00 +2777 4.9286447068074484e+00 -1.6322439060671061e+00 4.4438631889410800e+00 +2776 3.2210170809812735e+00 -8.6140218906704611e+00 1.5226458440945678e+00 +2775 1.8592337250350899e+00 2.6767835257055523e+00 -4.5988460928958057e+00 +2774 2.9316230840300658e-02 -5.7186834876115855e-01 -5.7416535138495317e-01 +3377 3.3313441355045716e+00 2.9375892564682418e+00 1.2962692353323910e+00 +2768 1.1730453736865022e-01 -8.2800504818913954e+00 3.9206490898428559e+00 +3024 6.5034813016484510e+00 -1.9599679122402420e+00 -3.4031438787386470e-01 +2766 -3.2363336012410695e+00 -3.0759196044892598e+00 -9.5074979010909788e-01 +2797 8.3373416478400628e+00 -2.6168545845010236e+00 -3.4779329241657009e-01 +2764 3.2585716088235799e+00 1.8986442267098824e+00 -3.2923458325001325e+00 +2763 -2.0275359318376343e-01 -7.1805803356589870e-02 -2.4721279514152568e+00 +2762 -9.6134133468369032e-01 1.3199422286174691e+00 7.4538015151933579e-01 +2798 -2.4007860325540911e+00 -3.7795302303195930e+00 2.4267765466695843e-01 +2760 -1.0639350798914442e+00 -4.3121179417931748e+00 8.0769538282015896e-01 +2796 -2.6310263255124124e+00 -4.1550978384857888e+00 -3.5550396662017372e+00 +2758 -9.7497339945927974e-01 3.3427877123161256e+00 1.7022971065488202e-01 +2792 3.0222215224561051e+00 -9.7338059230098917e-01 4.3844463209375579e+00 +2793 -1.9828546598963770e+00 4.4662428703514223e+00 1.2863214707764967e+00 +2752 -2.5578106229259834e-01 3.7711419119651524e-01 5.1147713641428485e+00 +2751 -1.7849501464813953e+00 -5.1879630062569575e+00 -4.3603237672634609e+00 +2750 -2.7413530953352736e+00 5.0883320708580309e+00 3.3452088389200534e+00 +2749 -7.2413638479530871e+00 -6.7152455075088324e-02 8.7883343069973492e+00 +2748 2.1788756572622545e+00 -2.2408575269525075e+00 -2.0466260757754942e+00 +2747 -3.7716328595944648e+00 1.4819236111281302e+00 -4.9912849718861629e-01 +2746 1.9883573827856431e+00 -2.4457512718348191e+00 -8.3503054824651439e+00 +2745 5.6599085441914658e+00 4.9202265831688363e+00 -1.7071919203903547e+00 +2744 -5.9870053474353533e+00 1.0059901692116915e+00 -3.0639989936705869e+00 +2743 -6.5320293355869152e-01 2.1517673573009843e+00 1.8718823889398176e-01 +2742 3.9936622378841422e+00 -4.0573220819138225e+00 -3.6309857808250268e+00 +2736 1.8195254077349174e+00 2.4873955721953131e-01 5.3433064835617463e+00 +2735 3.2358525349874040e-01 -4.5551127101407216e+00 3.6272658836637324e+00 +2734 3.2638356695875337e-01 7.3407754255935309e+00 1.0584299537822012e-01 +2733 5.6413043279510520e+00 5.6904499996979174e-01 1.0689151821914775e+01 +2732 -1.5779364512515037e+00 -2.7291166412771555e-02 2.4977026001174929e+00 +2731 6.1094045876770355e+00 2.0931917518090423e-02 5.4871863021720158e+00 +2730 4.6234203816873016e+00 5.6651271751191787e+00 2.2955464078526813e+00 +2729 -3.2996614562361710e+00 -4.6813297030732253e+00 -4.9995531396439610e+00 +2728 3.6121787848042723e+00 3.6756370795970335e+00 2.4575420156867906e+00 +2727 6.5499197795961912e+00 -5.3749020709804931e+00 -2.2141541103290510e+00 +2726 -1.5309784421761148e+00 -4.4614431514276603e-01 1.0658919404820162e+00 +2725 3.1898400370488895e+00 -2.9007840137416347e+00 -1.4388286164045903e+00 +2720 3.0358739434293733e+00 3.1626273894554879e+00 1.9269652442160663e+00 +2719 -3.4020488859268067e-01 1.4222574593864759e-01 -3.9308427659285061e+00 +2718 9.8083478105669641e-01 -4.7843105559162149e+00 -7.8225943255846824e+00 +2717 -2.6577700360558123e+00 -2.9436610956152526e-01 -1.7709828414083340e+00 +2716 5.9525338776273229e-01 1.6092818655935187e-01 6.1625114353749018e+00 +2715 1.4680902877810309e+00 -4.1712293758184753e+00 -6.9160821539192670e+00 +2714 -3.5115354303310085e+00 5.7853757377920676e+00 4.5284123144749282e+00 +2713 -1.4080522756149982e+00 -1.7682305331363686e+00 3.1193242233217573e+00 +2712 -9.1390598250343547e-01 4.3825212512510694e+00 4.2441995884635952e+00 +2711 -5.3903785450522823e-01 1.3628243715414445e+00 -1.2742399061224583e+00 +2710 -6.2374420402047663e+00 2.8445862121353436e+00 1.2190021723517692e+00 +2560 -2.1653274683665433e-01 -5.5148072519002485e+00 -2.1435378137126824e+00 +2702 -5.3910819164007044e+00 1.0230332946702885e+00 -7.9378590935070714e-01 +2700 3.0365460567464004e+00 2.7127513708666089e+00 -6.3503568155242052e+00 +2698 4.3845616366456390e+00 -2.2006177110557177e+00 -1.5382989291710114e-01 +2696 -9.2478123251883861e+00 2.9608695745210398e+00 -2.9480536112698625e+00 +2806 4.0878862316042603e+00 3.1701553843891657e+00 -2.3859036960039894e+00 +2694 1.9730445297904833e+00 -4.0507527348335177e+00 6.8000772732526327e-01 +2807 2.8892656752480654e+00 -2.2259779564449294e+00 5.8393450624892287e+00 +2808 1.3743301641859522e+00 -3.9322340890738974e+00 1.3573553213981169e+00 +2809 3.1430657792405974e+00 -1.4711357525140876e+00 -2.4375062667469480e+00 +3651 -3.8060179967648096e+00 -1.1320673737511517e+00 5.9058903773156812e+00 +2687 2.3357147847793853e+00 -1.5905167054299210e+00 1.6776075488604139e+00 +2686 -7.0375520472622188e+00 -4.0231767777762206e+00 -6.0553336624346885e+00 +2685 4.5253976880032054e+00 -2.2880418371400806e+00 5.4991640219029636e-01 +2684 -6.6542627182159275e-01 -8.6559548512340783e+00 -6.3628062702706076e+00 +2683 -1.6375760089692590e+00 -9.5908136886867112e-01 -7.5292698056399576e-01 +2682 -1.0449245312510245e+00 2.3690139534961037e+00 -3.1680659555059636e+00 +2681 -2.9032361355702634e-02 -9.5202243122204433e-01 2.1500946441501667e+00 +2680 1.2074942605578118e+00 -4.4188571817093081e+00 1.2151282448459038e+00 +2679 -1.8233884080972302e+00 -8.0904860597002537e-01 2.4034648853834502e+00 +2678 5.1293227631908076e+00 -1.4495265988866586e+00 2.2330441361189970e+00 +3790 4.7177081867816524e+00 -1.0072181579953001e+00 -3.6941907695680447e+00 +2672 -4.9884335781821418e+00 5.5354004139110424e+00 3.3517387951343176e+00 +2671 -1.2963608314005455e+00 4.8203645713060611e-01 -3.6192148966645732e+00 +2670 -8.7116663104560654e-01 5.4622992745312327e-01 -6.4723700390602135e+00 +2669 -7.3678583095129868e-01 1.6977879508537781e+00 -2.7015360719018444e+00 +2668 4.2990378614811364e+00 2.0334938751354468e+00 2.0373894232965113e+00 +2667 2.8203058825729133e+00 3.5104251168264278e+00 2.0133024325863267e+00 +2666 3.5619861539195230e+00 6.7913208932968239e-01 1.0436753400151538e+01 +2665 3.0269190053400958e+00 -2.4865372871869558e+00 -4.4481156610515766e+00 +2664 -2.0315572899229792e+00 -3.1992131228382163e+00 1.1776454808015189e+00 +2663 -4.0278487639720009e+00 1.6481747208553206e+00 1.7605822173029999e+00 +2662 -1.2204752725951328e-02 4.5712467258678524e+00 2.4028873463326259e+00 +3725 -5.6572655879793805e+00 1.1807177966448297e+00 -3.1102055318187305e+00 +2656 3.2311327581599719e-01 -1.5889052559076600e+00 -2.0683154898305793e+00 +2655 -2.1968730143506945e+00 6.5934697275766485e+00 -4.3633692413336176e+00 +2654 1.6530204241164517e+00 2.9239397728174525e+00 -7.3272808782756798e+00 +2653 -7.1375442041421948e+00 1.4024849916723561e+00 4.6599449907200405e+00 +2652 1.7512864009612059e+00 -5.4102562727436405e+00 -3.6512276875359484e-01 +2651 9.1137429581435681e-01 1.1335528065147094e+00 -5.5703492832167534e+00 +2650 -5.4300906692069670e+00 7.2595007450427662e-01 3.5631861288136779e+00 +2649 -5.5868190972257601e+00 2.0252294360041754e+00 1.2738272118729745e+00 +2648 -4.2976207940310323e+00 9.5066101942568448e-01 1.0672218616338554e+00 +2647 -6.4483007613458705e+00 1.6249945072517955e+00 -1.7796722440279028e-01 +2646 -8.1926401393904086e-02 -2.4309636289906360e-03 -3.9261687601419664e+00 +2645 1.0585852577588832e+00 1.6414219772483327e+00 -3.7936734946473591e+00 +3709 -4.1940689622838381e+00 -7.8473509377993078e-02 3.1788845261470526e+00 +3766 -1.2809542856292411e+00 4.3211943136849804e+00 1.9738281936273923e+00 +2799 5.2685324734628178e+00 -2.1356566651686721e+00 -3.4768153575584408e+00 +2638 2.9562297083077822e+00 -2.1143733154215543e+00 2.1056058408733422e+00 +2810 6.8144837453504916e+00 -4.6398634168941992e+00 -1.4025937582658152e+00 +2636 -4.4973653077934870e+00 -8.4662493737240585e-01 2.4266304502776126e-01 +2811 -2.3866001981179359e+00 -5.0239483946567294e+00 3.5085137416410919e+00 +2634 -2.5293012886956951e+00 3.1952984642369060e+00 2.2071312742700921e-01 +2812 -3.3061461790394486e+00 -7.0053402939963485e+00 1.4748120846990069e+00 +2632 -2.2859407996790879e+00 -4.6923919847670419e+00 -4.5724648836210751e+00 +2791 -3.4393006532414421e+00 -3.7960189051948068e-01 6.1758372856750716e+00 +2630 1.6486027810837227e+00 -1.8280232606259068e+00 -3.3564849550157301e+00 +2239 5.8992989343256497e-01 3.9851221037144415e+00 1.7156379594606628e+00 +2813 5.5694472312485273e+00 6.1675094854284636e+00 2.9926182685404940e-01 +2117 -8.9253528735078955e+00 4.4738932862623164e+00 4.3750189926622829e+00 +3506 6.3542053844592044e+00 1.3900868327566278e+00 -7.0692213736273626e+00 +2794 -2.4483959371328293e-01 4.1644577852660101e+00 -7.7149226491644762e-01 +2622 1.0060190341842945e+00 -5.1534985025111988e+00 -1.2876986637614642e+00 +2795 -1.0250256001335736e+00 -3.7557867451808136e+00 -1.4299559102611203e+00 +2620 5.7033246971181475e+00 1.0120635056560050e+00 2.9134376717462653e+00 +2618 -2.4749092608372854e+00 -6.1130111663895070e-01 -1.1127077169595583e+00 +2616 2.8444222851450998e+00 8.0926898298723371e-01 -2.5970047709622022e+00 +2614 -1.8441068422855922e+00 2.4491068419335664e+00 -1.7326032633200326e+00 +2855 2.2985589593734286e+00 -1.3171064865810693e+00 -2.9693742458430972e+00 +2608 -2.2329741734612591e+00 2.5150653803106935e+00 -4.9956625543125813e-02 +2827 8.0944898230316287e-01 2.3007165697361276e+00 -2.1150999492750211e+00 +2606 3.5763033954497967e+00 4.3424046204965965e+00 1.6330025829559534e+00 +2604 1.6373893652931859e+00 -9.8481598826146166e-01 -4.7993176241645124e+00 +2251 1.7846335258842914e+00 1.5322282306854457e-01 -1.4496134895998081e+00 +2602 -1.4061311282357540e+00 5.0427673023993425e+00 4.3559600345365306e+00 +2585 -2.6092128010086761e+00 -3.8725816716421688e+00 1.6840088194576321e+00 +2600 -1.6620024148668504e+00 2.1634211229104765e+00 -5.5428974512424434e+00 +2598 1.7348788224656251e+00 -2.5961059804991384e+00 9.1603857592682869e-01 +2605 5.1852879855281344e+00 -1.4421206984766508e+00 -1.1024620023420533e+00 +2615 -3.4677138003051158e+00 7.0409093774942710e-01 1.4901526350317000e+00 +2255 1.7492117885130825e+00 7.9188685745275422e-01 3.1588012961134462e+00 +2592 -2.2312801941299805e+00 -3.0277353510016907e+00 -2.5499118725362973e+00 +2590 3.0819476863743840e+00 -1.9670101038681402e+00 4.5251602283170609e+00 +2368 -5.3738363761449204e+00 2.6932238506470974e-01 4.9888450671574169e+00 +2588 -6.6520072185461157e+00 4.3854034257772003e+00 -5.6551259636045892e-01 +2123 -1.9164717299177625e-01 -2.7352084151974703e+00 -2.7929643580983896e+00 +2586 4.8171012532527051e+00 4.0911482723397447e-01 2.8870984822860297e+00 +3388 6.8480050532812511e+00 -4.5498571502870799e+00 -3.4488328591602118e+00 +2584 -2.8787565789274612e+00 2.1700707747505552e+00 4.1421596829056728e-01 +2623 3.2936463917195125e-01 2.5575247340365190e+00 7.0053113209813456e-01 +2582 1.0751937370284723e+00 -3.4722639369579927e-01 1.1204385296143788e+00 +2631 1.1050338214322528e+00 -4.7879496157627521e+00 2.1908984894254400e+00 +2637 5.5074060601543886e+00 -3.0966153598827306e+00 -4.2744253673357990e+00 +2859 2.0693635545655290e-01 -3.7876511197073226e+00 -4.3103432736614273e+00 +2576 1.2514585477686682e+00 5.7894990680487108e+00 -1.4669111691582462e+00 +2574 7.1432781804273038e-01 -2.6758398292232140e+00 -4.1714514445433446e+00 +2814 -4.4649285114369421e+00 1.2786733849201433e+00 7.4586696452797807e-01 +2572 -1.5454385663353016e+00 2.8051431346671073e-03 -7.0991316973877678e+00 +2815 2.7370377474716956e+00 -4.1312883014873716e+00 -4.8545965518058587e+00 +2570 3.1522145199261224e+00 5.8263659038423055e-01 -2.2639063024305646e+00 +2597 8.0951589293163440e-01 4.2691253029765397e+00 1.0987630943451272e+00 +2568 2.1197820735909336e-02 3.2501748467312823e+00 1.6258375646675445e+00 +3708 -2.8060881144788170e+00 -7.9885227223349764e+00 4.4421273258796017e+00 +2566 5.9439729270038455e-01 6.9727231163270120e-01 5.5522021598702818e+00 +2635 7.6022923586799818e-01 -3.7580076494789507e+00 1.4182556606035628e+00 +2305 -4.2736508505096511e+00 5.9523107028838993e+00 -1.5924998719601535e+00 +2571 -1.6679091226564882e+00 1.0711752342026575e+00 -2.0993688778342398e-01 +2501 1.0568578004338316e+00 2.0084415134479094e+00 -3.1702854263744258e+00 +2105 5.6203859587158256e+00 -1.6405765829543069e+00 -8.3957284572330171e-01 +2057 -2.8085049759713629e+00 3.4975721940971858e+00 -1.2539320269361416e+00 +2957 6.5855730568125148e-01 7.9111033553704004e+00 1.5470494404719726e+00 +2951 8.8388198486136715e-01 -1.2953829004310693e+00 6.6110946574329512e+00 +2823 1.2124841585605111e+00 4.0025909332385572e+00 -3.2966230197420865e-01 +3960 -1.7322987461282449e+00 9.4409232944020582e-01 3.1448465601669993e-02 +2053 -1.7517339064973043e+00 -1.2986997281095298e+00 1.2408744772847933e+00 +2891 -1.6764930965315945e+00 -4.3388450680602437e+00 1.8976929786358179e+00 +2331 -1.0233774520892351e+00 3.7708701697674896e-01 -2.3538688463941448e+00 +3021 -3.4140029111262642e+00 -1.1235921393540262e+00 8.4746558477880853e+00 +2089 -3.1325647888932044e+00 -1.5985070696415429e+00 4.9423951249243627e+00 +2535 3.2843890152861022e+00 5.7798516954557155e-01 -2.7317958240273406e+00 +2534 3.8777997667408894e+00 4.2392263232943908e+00 -2.1814440537837037e+00 +2528 3.0422331553829007e+00 -7.5223706666659740e-01 -3.7263260919648857e+00 +2527 6.3684312956494193e-01 -3.7657398635040260e+00 -7.4217739371161251e+00 +2526 8.7969692176395087e-01 -3.9940006057172601e+00 1.1601919597549497e+00 +2525 3.2292068030829307e-01 3.0996930641720995e-02 -6.9413041281755534e+00 +2524 3.8901472156148702e+00 -1.9262897724397423e+00 5.5705775489260485e-02 +2523 3.3268141166346155e+00 -6.7080789842174060e-01 1.8291691313124241e+00 +2522 -3.1459094544722350e+00 3.2398029653908114e+00 2.6347278270985028e+00 +2521 1.1400160177460255e+00 2.0424796568413113e+00 8.2670703414504381e+00 +2520 1.0805574801141835e+00 -8.9308178452023834e-01 8.3666251995080154e-01 +2519 -6.1318599760273484e-01 2.9664628179824954e+00 -1.6022644275147506e+00 +2518 2.5997390970727570e+00 3.5592032654738537e+00 -5.8865273388456281e+00 +2517 -3.5876930111322336e+00 -1.7136814211428191e+00 -3.2715988595403371e+00 +3876 6.9328603348344875e-01 2.1981509258280973e+00 -6.1104668971591558e-01 +2510 -1.9457904722601931e+00 -2.3583071833388631e+00 1.9857704845416244e+00 +2508 9.9303883907057440e+00 2.9439284398383792e+00 -6.0972359631764554e+00 +2539 -7.3373925054966968e-02 1.5088887543474503e+00 -9.7266428969951113e-01 +2506 -1.7043314544209612e-01 2.4231527326389872e+00 9.1879781672986893e-01 +2821 2.3325440166580540e+00 -1.1742148162415569e+00 -2.6662897542559882e+00 +2504 -9.3547854586738821e-01 4.6149728694805461e+00 1.3540452753258334e+00 +2502 -1.9082046386285076e+00 -2.7567863274388995e+00 -1.6674671904253009e+00 +2895 3.3724835771421753e+00 -2.8116695380165777e+00 -4.9213269199949199e+00 +2496 -4.3848486826968275e-01 -1.6861624813421363e+00 -6.4491066856162194e+00 +2495 -3.8078718438209904e+00 -5.4045296120000410e+00 1.4670905141795065e+00 +2494 -1.2086060075168263e+00 -6.3213192981995077e+00 7.8879918171296595e+00 +2493 -3.5225083856828245e+00 2.5164988168632801e-01 -2.6337758821355167e-01 +2492 -3.4461485596236936e+00 -1.8093773060111655e+00 -1.4163152163591972e+00 +2491 -4.1742772682952145e+00 -8.1211608291406934e-01 1.9288706997236018e+00 +2490 6.4464192810230370e-01 5.4074457059957037e+00 -3.7123042683550773e+00 +2489 5.5016739264002448e+00 -4.2647800701303664e+00 -1.3459086312666124e+00 +2488 4.7495341751653297e-01 2.1061468114481174e-01 2.0663441456196887e+00 +2487 -3.8105686992359336e+00 1.6316308827571984e+00 -1.2768249070775327e-02 +2486 5.6274525067657315e+00 -3.6511027633919149e+00 -1.2732526957619472e+00 +2481 -1.1124642003473006e+00 2.5871259549120720e+00 -1.1444607798081203e+00 +2480 -8.6896044518691873e-01 5.1052961754797881e+00 -5.1651107479481917e+00 +2479 1.3340412560609345e+00 -7.8487779380166804e+00 5.9287020324014783e+00 +2478 -1.6641381371972481e+00 4.7752054545194058e+00 1.8731635988814574e+00 +2477 6.4054863217571967e+00 -8.6049577547810230e-01 4.6221203593972531e+00 +2476 4.5375737829380958e+00 -3.7534512789568743e-02 3.3229463990121961e+00 +2475 1.2172401126398473e+00 4.6606555265629055e+00 -1.1846312844262876e+00 +2474 9.1067965019629071e-01 -1.1106250011824681e+00 -9.4309179115055786e-01 +2473 -4.0093862806031231e+00 -6.9235525290669537e+00 4.0370786349725813e+00 +2472 -1.7113695127114839e+00 -1.6242897882746234e+00 -1.4042047282314518e+00 +2471 -1.9232944771850495e+00 -4.4432831098867953e-01 -4.1079858892321628e+00 +2470 -5.9345010080890881e-01 -1.3470628345226050e+00 -2.8456484472677706e+00 +2465 -1.1588612091513795e+00 1.6645998388018846e+00 -6.0123319542129741e+00 +3788 1.8982791507603920e+00 -3.4430166083589908e+00 -3.5955644552756878e+00 +2463 3.1188583927587818e-02 -2.0139759257556133e+00 -9.7185193309051920e-01 +2462 -2.3719561035636789e+00 3.9362265666466878e+00 5.0789516881513652e-01 +2461 -1.8631779280051624e+00 -1.8469967677056796e+00 -4.8971880722015487e-01 +2460 -4.6011134259820902e-01 -1.1412980412096987e+00 3.6030417950533935e+00 +2459 -3.5804227286640500e-01 -2.3126105514914266e+00 -4.3310512729295105e+00 +2458 1.6703389682504730e+00 -1.7065636183967083e+00 5.9925292710412998e+00 +2457 -3.3833058415369632e+00 4.6411085107942593e+00 -6.3136796232784977e+00 +2456 -7.8807578736985686e+00 -2.0648393236068312e+00 -5.1957555003216367e+00 +2455 -2.0170153913874822e+00 2.6565658815765554e+00 6.7804861374448189e+00 +2454 -6.1124165489733908e+00 -9.3050081499315762e-01 3.8684354475939120e+00 +2448 8.8085221813079295e-01 -7.4798435340531233e+00 1.1899563337564023e+00 +2550 1.7759079358422907e+00 -3.0992421422065064e+00 4.0606066260673490e+00 +2446 -1.0120163059757719e+00 -6.1009985907848288e+00 -5.0649655078128009e-01 +2551 1.6014198573821956e+00 -3.9493346644415532e+00 -1.3228000568190064e+00 +2444 -1.7029836471225288e+00 -3.8577012381196232e+00 4.2707937260718243e+00 +2552 4.8636422057158493e+00 -2.6467016356983764e+00 2.8027973658555951e+00 +2442 -2.7962028744090079e+00 -3.0707053005914529e+00 -4.5122951644050779e+00 +2553 6.7094653172417180e+00 1.7713727980730010e+00 2.2908561902070770e+00 +2440 4.1488574164001157e-01 -1.8450669463103200e+00 5.7397538870377456e-02 +2554 -1.4865852718703385e+00 2.7057561958485099e+00 -2.7076541005314589e+00 +2438 -4.1524774206431719e-01 3.4018843778719181e+00 1.2799950749632307e+00 +2555 -2.9419538196625966e-01 3.6308415650661834e+00 1.1094820975853545e+00 +2556 -3.1840144036572529e+00 2.3346966340367450e-01 -6.8560744444158699e+00 +2544 9.6512268717712335e-01 -3.6782183229380278e-01 -4.0226941403842051e+00 +2431 -2.4200710653146302e+00 -3.2831314586403635e+00 3.1869147021346822e+00 +2430 -1.2831275818953718e+00 -4.8010715305149345e+00 -4.7444395310228380e+00 +2429 -2.9253640927060367e+00 1.0408545723686506e+00 6.8852807901254023e+00 +2428 -2.7064345306689490e+00 -4.3674917081386662e+00 1.7540411195242858e+00 +2427 6.0107303988408782e+00 5.3356169417766841e-01 -3.3551241472290658e+00 +2426 3.8845852255054765e+00 -5.9047304044972453e+00 -1.6790944653487383e+00 +2425 7.2513451435932842e-03 -3.4110225122524901e-01 4.4438388614370167e-01 +2424 5.8558021239148514e+00 1.1731808300363877e+00 -5.9818916949217438e-01 +2423 2.1571116638071266e+00 -2.6250119701868608e+00 2.8085236464006496e+00 +2422 -7.0880523388035233e+00 -5.3183695469128853e+00 5.4385145330337332e+00 +2541 3.0557044064889780e+00 -1.9664746210056332e+00 1.7575436192392313e-01 +2416 -2.3081003384655588e-02 2.0064571900654209e+00 3.3071910029607126e+00 +2415 1.3990882213534344e+00 -6.2110966010521218e-01 -2.0355818926551499e+00 +2414 6.9223358147956082e+00 3.1451561525685334e+00 8.1111849817922987e+00 +2413 -3.7016047704128892e+00 -3.4572433142081371e-01 8.1151051495759374e-01 +2412 1.3618171605420210e-01 -1.5499430616987839e+00 2.7341023421779322e+00 +2411 1.1235662605447709e+00 -3.4776891965518071e+00 3.6569913186186134e+00 +2410 4.6607338427055306e-02 -6.3052137675594340e+00 6.4829050374954011e-01 +2409 3.8032400732345213e+00 -2.2309951789584073e+00 -3.7975613514246356e+00 +2408 -1.3877392558940136e+00 5.0364542420354210e+00 5.1578890855065609e+00 +2407 4.2187860476677628e+00 4.5861695181497550e+00 8.7000479365664045e+00 +2406 1.7916796203081750e-01 -2.1880173655491229e+00 -1.0671494045395231e+00 +2896 -1.9215215976278317e+00 -5.2276268293017858e-01 2.1046175384363250e+00 +2399 -3.2198973632820707e+00 2.6139851715695954e+00 1.9974736170889789e+00 +2398 2.7077462408739819e+00 -3.3081400086748110e+00 5.9831567454620291e+00 +2397 1.0557476508112659e-01 -1.5228605959675072e+00 2.0928298644344738e+00 +2396 3.2701685968105592e+00 -1.6215582528755703e+00 -4.3746793949582843e+00 +2395 -8.4258208330198148e+00 -5.2888593982562533e+00 -3.2601641891899114e+00 +2697 1.2736467137359944e+00 -3.8187239314624817e+00 -2.3944862387726853e+00 +3332 1.1820197489332859e-01 4.0387620930049568e+00 -6.3234030976386100e+00 +2054 1.8354662210540487e+00 3.5441618594963226e-01 -2.2130491244792494e+00 +2303 4.4102490776894907e+00 4.7580263598338863e+00 1.0339728212438870e+00 +2056 1.9272744327550457e+00 3.6893105509583375e+00 1.6598816388408306e+00 +2058 -3.3963097431210252e+00 4.4430967009011297e+00 9.6208324230767559e+00 +2825 1.3517993200220058e+00 1.4407624502107770e+00 2.6764497084425076e+00 +2060 -1.3141041921573324e+00 -2.8190979164681038e-02 -8.4588929965436543e-01 +2302 4.1993474598760070e+00 -5.9660551285121493e+00 -6.7428484469458905e+00 +3236 -5.2547856361015777e-01 -2.4216737529819108e+00 2.7341385883426952e+00 +2064 -4.8901691863770136e+00 4.3617989432590942e+00 5.6938696357280449e-01 +2055 -3.2204173526391391e+00 -8.4740327316537090e-01 -3.2027666468048543e-01 +2349 -5.0203081546992792e+00 -4.7576377908223488e+00 -1.8977318755801462e+00 +2101 -5.3322591163506505e-01 -7.6587974390440572e-02 1.2115149396808391e+00 +2070 -3.6161955037842901e+00 -2.8374193883875658e+00 -6.5968472221192376e-01 +2072 2.8452569201189566e+00 3.5101046726873135e+00 3.6393288856720609e+00 +2074 -3.9714738278477024e+00 1.3041871834768937e+00 7.3362038321208312e-01 +2361 -3.1270722350857355e-01 -3.1976886441752619e+00 3.1716334389907268e+00 +2076 -3.3026074886114412e+00 -3.1916033538266309e+00 -1.2940155186439375e+00 +2343 -3.5456154162156532e+00 2.1282858531725521e+00 -2.2755798138613716e+00 +2078 -1.6727976817277326e-01 2.8512614907132798e+00 -3.6821123154379394e+00 +2575 -3.6202104687687884e+00 -1.2781719045236026e+00 -5.7828008604916215e-01 +2336 1.5076084969735151e+00 -3.9680998637217488e+00 1.8890308432187608e+00 +3962 -4.5339314471421011e+00 -3.9298246157155483e+00 -4.7935042016289646e+00 +2759 6.5488168220167427e-03 -3.3773400465897003e+00 4.5048526343020541e+00 +2313 -1.1859666691790021e+00 -3.2894483225078517e+00 -3.5324595682381141e+00 +2086 2.3201018961167219e+00 3.6438743454985869e+00 -9.9299180666368925e-01 +2088 1.8373913189133857e+00 -7.5791332897087532e-02 -2.4367639026198069e+00 +2090 -1.0045615576503066e+00 -4.6555796797536448e+00 -1.4042937166284930e+00 +2092 -4.5093138093990000e+00 -2.4270014035873544e+00 2.1625190058370820e+00 +2767 2.2136151247405023e+00 1.3796713639412290e+00 -3.4753707582038973e-01 +2094 -4.0433620345366350e+00 -2.3010735426685622e+00 -4.3580927064754018e+00 +2367 5.1313958417436716e+00 9.8712750964575458e-01 -2.2058572260539209e+00 +2096 1.2682004977071968e+00 3.1809377907126395e+00 4.9855208938235416e+00 +2311 -8.4194908855361081e+00 -2.6288013205705316e+00 -5.4198353840964952e-01 +3408 3.0008214627376368e+00 -4.6398640624126299e+00 -3.2919785459160216e+00 +2699 1.9750010753937284e+00 -7.8256394854670051e+00 -6.4431692602527351e+00 +2102 -2.5967638824294248e+00 -3.6548189945425245e+00 -1.6237388755353279e+00 +2286 1.2592983279724759e+00 -2.8697846150751833e+00 -4.7598367748942731e+00 +2104 -4.3568763183357859e+00 -9.7539956147287725e+00 7.2222236315049892e-01 +2285 -3.1057327281707875e-01 -5.0135655614029662e-01 1.1157025543699138e+01 +2106 -1.6552988379785012e+00 2.9824574238508539e-01 3.7654423696268174e-01 +2284 8.6822760526386116e+00 -1.9918572812533114e-01 2.8189480939136113e+00 +2108 -3.9012066604536044e+00 -2.3853989046457271e+00 5.9327416095186853e+00 +2282 -3.9192021208626251e+00 3.7678164737180095e+00 1.8849436623821163e+00 +2110 2.4153725528297798e-01 4.6740411207188215e+00 -8.1772100249667146e-01 +2283 -3.7688060208800583e-01 1.7345390869700357e+00 6.7157699236412913e+00 +2112 -5.3832346231756945e-01 -1.5022899463140065e+00 -1.1133097481487937e+00 +2301 4.6502532361047555e+00 2.7298795785973984e+00 -2.6674123186747121e+00 +2103 4.6166565218455080e+00 -2.4549121786085717e+00 -5.2229418765724347e+00 +2300 -6.7430911261174575e+00 1.0552258995748969e+00 1.1971290579987190e+00 +2118 2.9392199952641738e+00 -4.1453283000290231e+00 9.7637245069273892e-01 +2299 3.3078025928034136e+00 1.4394909429246763e+00 -1.5214014706049774e+00 +2120 -3.0129002329421430e+00 -4.9933909215272747e+00 6.3770953088392512e-01 +2183 -1.1679741520855769e+00 -2.0816757037826590e+00 -2.2574324338147727e+00 +2122 3.5062559491597072e+00 -4.0293751635993962e+00 -2.7528580294262222e+00 +2124 7.2757024862995126e+00 -3.1959174704724718e+00 -1.2508054530964402e-01 +2298 -3.2728700368272836e+00 -1.1659558574677428e+01 6.7592924225235675e+00 +2126 3.7156563024719080e+00 1.3067202352308938e+00 3.0699763672909377e+00 +2297 -2.9769813404010592e+00 -2.2374608254882662e+00 2.3241546368231183e+00 +2128 -2.3947122804474794e-01 -1.4106280904129140e-01 1.1486178466471535e+00 +2133 2.7715984136490643e+00 4.4744704137835916e+00 -2.9974174281730197e+00 +2134 -4.0039842233705665e+00 4.3867181574165510e+00 1.2614448943479164e+00 +2135 -9.0839931859496292e-01 -2.4197098108430368e+00 -6.5878129052276491e-01 +2136 2.2873318198649555e+00 2.4363619974603190e+00 1.2952999061266759e-01 +2137 2.8549935662179187e+00 -2.2365336281103536e+00 5.3030507910228653e-01 +2138 -1.2158996874565364e+00 5.3228048748061259e+00 1.5533047636866397e+00 +2139 -1.3346200575632367e-01 2.7750216950530699e+00 -2.8183056874081664e+00 +2140 2.3064990260064997e+00 5.2855679227641650e-01 -2.9516836036872791e-02 +2141 -3.5458988056896006e+00 -3.0521868945539774e+00 -3.9206547279309611e-01 +2142 -5.7658203314544654e+00 -3.6358263775842818e+00 7.9934346557155245e-01 +2143 4.5774293206201666e-01 -1.1252676432669819e+00 -9.3037276039145089e-01 +2144 -2.4223550660064501e+00 1.8620618913629166e+00 -3.1340576761735262e-01 +3847 6.5513017189204614e+00 -9.9571382905222217e-01 -4.8639552014362675e+00 +2150 -5.0519215111645215e+00 -8.1012892018650557e+00 -9.1877053096324979e-01 +2151 4.5902825079298282e+00 1.4614049115693784e+00 1.6448971072475511e+00 +2152 1.6092933189531100e-01 1.2576850582331391e+00 4.5693296418652873e-01 +2153 1.9982289262686406e+00 7.0647951682833743e-01 -1.6929551445662927e+00 +2154 -4.0085268290392966e+00 2.8264360037316720e+00 1.2298473951666522e+00 +2155 2.3001876308855040e+00 -4.2060427478790271e-03 -4.5958678110582030e+00 +2156 -3.7304320799277773e+00 2.5790527089314019e+00 2.5450107644999655e+00 +2157 -1.3825316292609708e+00 -2.7317145957385556e+00 2.3264863328241900e+00 +2158 5.0248197256487321e+00 3.8688973541253908e+00 1.3207765770646294e+00 +2159 -3.4688753088931850e+00 2.4044239558039342e+00 3.4506714358022612e+00 +2160 3.1730845338220792e-01 8.2959877803900939e-01 -1.8745354882415330e+00 +2567 -1.7116624067322050e+00 -4.6272568168231010e-01 -1.0208977454201720e+00 +2165 -9.3186970728520091e+00 4.1690947095111452e+00 -2.0916480409233467e+00 +2166 3.1746766856523636e+00 9.9229340009495761e+00 1.8048248169207513e+00 +2167 -7.7677133436895236e+00 2.1973211412949252e+00 1.1803716873004695e+00 +2168 1.2175685355232002e+00 5.3114145455963051e+00 2.0058765363137430e+00 +2169 1.5987651885816183e+00 4.3689389294149894e-01 2.4451831016611423e+00 +2170 -4.4178559819690308e+00 5.4997969353614842e+00 4.6603972431135121e+00 +2171 -1.9054886166742930e+00 -7.0857246980610107e+00 2.5764080849470523e+00 +2172 5.7407771543320463e+00 7.6799682440792538e-01 2.3284345907060136e+00 +2173 -2.1604618593733855e+00 -4.9862287997932500e+00 3.1705023128380723e+00 +2174 7.7475238831801385e-01 6.3174798070773095e+00 2.0723680412083354e+00 +2175 1.9790452146721216e+00 -1.5995654820017222e+00 -4.5667397863102782e-01 +2464 -2.9924003789623996e+00 -3.2005544259023542e+00 3.6420167218111343e-01 +2296 4.4271970385674558e-01 8.5301059354826858e-01 -3.4329220807007141e+00 +2281 4.6543547186327858e+00 -3.7326465906327844e+00 4.6716408440277259e+00 +2295 -9.3071930354070513e+00 5.1959036574768165e+00 -4.6308572178460325e+00 +2182 -3.6223974239910572e+00 -9.7109835858225868e-01 1.3531279308309878e+00 +2280 8.0995326969643222e-01 6.1918661609836843e+00 2.8798937454390021e+00 +2184 -6.7567980949441022e+00 -4.4614681540074264e+00 -1.6156900328623134e+00 +2294 1.1026598136238299e+00 -3.0188585482576409e+00 -4.2497844224329713e+00 +2186 1.0119888513241944e-01 -1.2693144561280412e+00 -9.8639981833285428e-01 +2188 2.0967501821566472e+00 1.9143912862285146e+00 4.7513383925354724e-01 +2190 2.1784300365038201e+00 -2.1721749943050690e+00 -9.0059797246091755e-01 +2279 3.8530261115530653e+00 5.0988947626246039e+00 1.1115440181223808e+00 +2192 -4.6647394249812875e+00 -4.9967974056442195e+00 2.2460164121811230e+00 +2198 3.9515232630200088e+00 2.1394383220990409e+00 -2.5616069515027324e+00 +2199 -3.7051982348604167e+00 -1.4884099738442171e+00 4.1203514500191476e+00 +2200 -2.6096636197163301e+00 2.1413594099808932e+00 1.9591470340867203e+00 +2201 -2.3253418703971875e+00 -4.0751247381145754e+00 6.7206860153480568e+00 +2202 2.3896439436270778e+00 9.7628939500055445e-01 1.9549141089499831e+00 +2203 -2.5929425710144693e+00 -1.8624238807167617e+00 -8.1302767466174775e+00 +2204 -3.0629306463077013e+00 5.9279921919226917e+00 -5.7023875214204738e+00 +2205 -9.6469724760543301e+00 -1.2325154449353100e+00 -2.6029499808241270e+00 +2206 -3.4981850996399961e+00 1.8465397771386962e+00 5.9269556326654727e-01 +2207 -2.3364849262841245e+00 3.2194965405951295e+00 1.2700237269495875e-02 +2704 3.0026163557580063e+00 9.3364101364955776e-01 -6.5569996261013044e+00 +2214 1.3016664341892239e+00 3.5787512228167104e+00 -4.3299121291531328e+00 +2215 1.9252617172782513e+00 -1.9657263848602835e+00 -4.3934739152683679e+00 +2216 -9.3530698403336530e+00 -3.5495989650509077e+00 1.8394680474897536e+00 +2217 2.4568299182588205e+00 -4.0631199488651433e+00 4.8227043614169496e+00 +2218 2.4468773087577729e+00 9.7834722974498278e-01 -3.5123208295443735e+00 +2219 -4.4758294770892935e+00 1.0624629235633570e+01 -3.9617058834595181e-01 +2220 1.7369447005303615e-01 1.9115903225524189e+00 3.7082038629335340e-01 +2221 -5.7495089289700312e+00 -1.4597494882413158e+00 -2.7811369295492154e+00 +2222 -2.1683003666205769e+00 -1.0056625036637246e+00 -3.8074026327620976e+00 +2223 -3.1628921339325218e+00 -5.2840328419108999e+00 -1.0911411815489178e+00 +2224 5.1332224575375527e+00 -5.7824448067287078e+00 3.9419178756366589e+00 +2230 -4.7234811087970376e+00 4.2802234861719661e+00 -6.2527007877783980e+00 +2231 8.3758346631706587e-02 1.1349176949992898e+00 1.5232833675859372e+00 +2232 -2.4691078373497231e+00 -4.1450367019349148e+00 6.6879634395198124e+00 +2233 -1.2775653251866701e+00 -3.1773628272952337e+00 -8.5199314215398623e+00 +2234 -3.4553626162095625e+00 -1.7251247787393205e+00 2.2635272091523646e+00 +2235 5.3969083813749572e+00 -2.5286917911002633e+00 2.0426055048381859e+00 +2236 3.2789048091202844e-01 3.8460434778054449e+00 -2.3217575777056316e+00 +2237 -5.4611483054400516e+00 4.0887842764293625e+00 -5.1032238378403170e+00 +2238 1.0729498144729126e+00 1.5251361681762848e-01 -1.9938814973265062e+00 +2176 -2.5108766165915486e+00 2.1843173011298864e+00 -3.2307191039945287e+00 +3928 6.5826113972783409e+00 -1.2353290699991477e+00 6.5703214390586000e+00 +2246 4.6077331362164348e-01 -3.7420413226251905e+00 -7.2834804747191728e-01 +2248 -4.0887015049363301e-01 9.3246210412842323e-01 1.1329465560749079e+00 +2536 -4.9067907073270307e+00 -7.3646672803243640e-01 -5.0681918171048865e+00 +2250 -3.2535765877746381e-01 -3.3301869864315021e+00 -9.6093197179347845e-01 +2252 -5.9743316058254348e-01 2.5038299079442532e+00 3.4222076315529386e+00 +2278 -6.9211255109456031e+00 3.6146272257839822e+00 -1.4185237616141566e-01 +2254 1.7314114511773506e+00 -2.2580027827850202e+00 5.0978962034800643e+00 +2287 -3.0295148888659513e+00 5.9557832453447830e+00 1.9598903065659465e-01 +3563 -9.4199222300719088e-01 -6.9486313856785449e+00 6.1851262029030440e-01 +2262 -5.6887385474696472e+00 4.6411822309996928e+00 2.2511692972016846e+00 +2263 -4.1758285140146647e+00 -8.9421611486149566e-01 4.9310364051230753e+00 +2264 -6.0573017532316191e+00 -4.4857159652661975e+00 3.5512175589412638e+00 +2265 4.3547997745778400e+00 4.8920448683997755e+00 2.1863239702823427e+00 +2266 -3.8902694889049614e+00 3.6511113914780648e+00 1.9746708575727980e+00 +2267 4.9841932535593676e+00 7.1661663871122672e-01 -4.2157159287823269e+00 +2268 -3.2732054811656702e-01 1.2222613778941029e+00 2.6244616939524628e+00 +2269 -2.7444712846829944e+00 -4.6250555389768727e-01 4.5353159841231143e+00 +2270 1.1069915491232127e+00 2.7702391161501549e-01 -3.8101206025461050e+00 +2271 2.0757670276448072e+00 6.4827706663870757e+00 -5.7430176344095540e-01 +3486 5.2660483804188081e+00 -5.4165990338812549e+00 -2.4451399472223527e+00 +2107 -2.7517515802423267e+00 2.5538052643807378e+00 -1.7327907509550069e+00 +2189 3.6436094939970276e-01 -2.9427108968580207e+00 -4.8924384310868652e-02 +2695 -2.5957609231060270e+00 -1.6145279668498929e+00 -2.0277057322344847e+00 +2365 -1.7460637677548543e+00 -7.3817786594378410e-01 -6.1538899090462096e-01 +2569 2.2855489741614430e+00 -7.4884163478386126e-02 3.1187547373901219e+00 +2315 1.0722483095201303e+00 -8.6470790611136342e-02 6.1379370335274830e-01 +2363 3.5579125529572608e+00 3.3846993635616163e+00 2.4425633790044969e+00 +2111 2.2131543782138454e+00 -1.7822846706752893e+00 1.7454409034010659e-01 +2559 2.9279278765960384e+00 -7.9726389152595720e+00 -4.0396543255971568e-01 +2345 -1.6493899193054329e+00 6.6982663291967457e+00 4.0266183918855143e+00 +2247 3.7079589675815452e+00 3.7117536297247183e-01 1.9161735987203232e+00 +2333 -2.4734142721892188e-01 2.8455730552763786e-01 -2.6269036030057551e+00 +2317 -1.4523910749737834e+00 -1.4896894035056868e-01 4.8988695374914455e+00 +2351 -5.6018475652409752e+00 -8.4561650988840598e-01 3.9875276456247613e+00 +2093 7.3381779707465378e-01 -1.4724848913994664e+00 4.0760173523880532e+00 +2077 -7.3230270192831948e-01 7.8269668766105518e+00 -7.2502989017994790e-01 +2091 8.1777110436641176e-01 2.4189166311579839e+00 1.4148301634725600e+00 +2701 2.6636324458590244e-01 -1.5926989112103445e+00 9.9937336419725098e-01 +2125 -8.7127819894063607e-01 9.3943535533180911e-01 -4.3962375091429129e+00 +2327 -3.9094106242122539e-01 -5.5199981059303660e+00 -2.1604581401520262e+00 +2253 2.5524860159738654e+00 -1.8763331029305612e+00 -5.9570003752146476e+00 +2109 3.8584561604095717e+00 -1.8485297378667300e+00 6.2523272826947469e+00 +2359 8.2990438116719245e-01 -3.2968910203129291e+00 1.3803288586323996e+00 +2703 3.5054493352251574e+00 6.3237597995989425e+00 -1.0120404276076421e+01 +2049 -5.4405993588326895e+00 1.0689144784768116e+00 3.4084323922516000e+00 +2069 7.9204647140252415e-01 2.9120676697615608e+00 -8.6534497870837912e-01 +2063 -2.9594164467237634e+00 -2.4828073978507659e+00 -2.4251284145081095e-01 +2437 -2.5627487953959402e+00 7.5036148983830175e+00 1.1782987038931765e+00 +2507 3.2301292951852458e+00 -2.7240880667319294e+00 2.3252060042905085e+00 +3449 3.6342711639743142e+00 4.7951866310098969e+00 3.1653116850710754e+00 +2310 -3.4363360193467583e+00 -5.0407508939792822e-01 -6.9545521573233051e+00 +2955 -8.5381261676082598e+00 -4.4598973547820087e-01 -5.5733705673919252e+00 +2312 8.4748565369609419e-01 3.3474986539991645e+00 7.0415107389024048e+00 +2375 -5.8507739802514589e+00 -1.3392196542406973e+00 -2.2900322623465930e+00 +2314 3.3327009666198841e+00 -1.2709999044183731e+00 -1.0280697658235274e+00 +2316 3.8508495116623207e+00 -4.9573541293515957e+00 -2.1353645030880908e+00 +2075 1.9395559640396232e+00 -1.4511551822070529e-01 -1.9118604081545820e+00 +2318 -7.2040494716828158e+00 4.2527340653421435e+00 -1.1980915829623033e+00 +2439 2.8905726137259624e-01 1.6817934748328742e+00 2.1166191020443712e+00 +2366 -1.8786770113215079e+00 7.9788184441059662e-01 -2.1329470763804999e+00 +2309 -4.0081615460312916e+00 1.5172046286284642e+00 6.6348909394491731e+00 +2073 2.5381781001396737e+00 -3.7171617166340953e-01 -3.6099786624612800e+00 +2509 -7.9268624485322876e+00 2.6039289719723451e+00 -1.1995629880059021e-01 +2326 -2.5103770576954982e+00 2.2461040811160982e+00 5.2649940625863296e+00 +2328 1.8988916546454131e+00 3.5206640709526797e+00 2.8858066362201638e+00 +2503 3.6127018338426775e+00 5.6393130670803904e-01 -3.6522211691798314e+00 +2330 4.6369277809613427e+00 -5.6024685268291750e+00 2.1926947259669207e+00 +2511 -2.2585358010840952e+00 7.7717008557837156e-02 -1.9931769616780364e+00 +2332 3.6477625305854473e+00 -1.4390934150506940e+00 -3.9748531666301917e-01 +2095 -9.7892724854379956e-02 3.3540632225603045e-01 -2.5997276289568458e+00 +2334 -8.0041443603008744e-01 5.1886169133550764e-01 -2.7989043401102012e+00 +2992 -1.2592615086044112e+00 1.5963015987408944e+00 -1.9466171128609764e+00 +2071 -2.4928689641967225e+00 5.6338381383132141e-01 3.2780055485995585e+00 +2959 -4.8038703473602604e+00 1.4636146040177516e+00 -1.8910490485095648e+00 +2373 -9.3020797161726387e-01 -4.1668768556188347e+00 1.5748875824020350e+00 +2342 -2.1936175657210870e+00 4.1886377168512201e+00 1.6186194796353410e+00 +2079 -6.7779653605696355e+00 6.4385371710080275e+00 5.7511584395649118e+00 +2344 -2.7166646342682155e+00 9.1253478403721271e+00 -9.3920113526511440e+00 +2347 2.1614677424818982e+00 5.6037701435743745e+00 6.5147104581394553e+00 +2346 -1.7308258519929343e+00 1.9603972241511101e+00 -1.8322263619124104e+00 +2889 7.6069546506284942e+00 3.8587100834816783e+00 -2.9272732854630473e-01 +2348 -3.3520492340854382e+00 4.5870467758934268e+00 -9.3237379553814237e-01 +2538 -1.9757245821526030e+00 -2.3662728158866209e+00 -2.1350062588278447e+00 +2350 3.0075475832905978e+00 3.2172559043575588e-01 -2.3076739097600676e+00 +2352 2.3257699752674990e+00 6.2134913111177612e+00 4.4504246044185711e+00 +2381 -1.1655491773136784e+00 -1.5098597212987763e+00 2.2254516439670677e+00 +3778 -2.4019189187208414e-03 -2.5021346265591948e-01 7.2588475025252897e-01 +2087 2.0958502140471449e+00 -9.3560006102258679e+00 -1.0817602446529694e-02 +2358 9.2481937801447889e-01 -2.0217997040587550e+00 -9.0184991558072125e-01 +2537 1.9398275168126486e+00 -3.6242690057461306e+00 1.9300743258754069e+00 +2360 5.5072926518559628e-01 3.7829277736536642e+00 5.0133303959180688e+00 +2543 2.7270632158319423e+00 -6.3487118028757861e+00 3.9989611693365825e+00 +2362 -3.3898600997200801e-01 -1.5907863647577578e+00 1.2579187192646462e+00 +2335 -1.4747474659115378e+00 4.6350951825519262e+00 1.9017434791858832e+00 +2364 9.8708207545151050e-01 1.7762251982471335e+00 9.3817174343964349e-01 +2542 -3.7866446440951198e+00 6.6119422972451203e-01 1.0437296831988667e-01 +3056 1.2651995845792847e+00 -6.9124638084515215e+00 4.5172756662357250e+00 +3363 -1.9151484189600110e-01 2.3120984196314454e+00 1.0451658462680005e+00 +2497 -6.9682334255343861e+00 -1.4503591252931167e+00 7.3933082435074358e+00 +2785 2.3183622497443488e+00 3.8188792509177234e+00 -1.0272427947439586e+00 +3465 -5.6134912603684040e+00 4.1329561387693498e-01 -3.7509321276991638e+00 +3008 3.8851520040455925e+00 4.2888749850135230e+00 -1.6983246164677315e+00 +2961 -5.9034722947197649e-01 2.1065277060759651e+00 -2.1115692874212342e+00 +2577 1.3149967907748477e+00 -1.2004480768657699e+00 6.2584221257015296e+00 +2849 -4.5758716145313461e-01 -1.7039065808738585e+00 -2.6894238700703164e+00 +2641 4.7068163190097678e+00 -2.4065440163948133e+00 -1.0241876812919864e+01 +3384 2.9761203955481039e+00 1.8608134844444244e+00 6.3459739857313124e-01 +2062 9.2403730433427067e-01 1.3826657358283971e+00 1.1028984936717359e+00 +3782 5.7024915334442194e-01 -1.2282099773762747e+00 -2.3147993361002634e+00 +2208 -1.9803801355997075e+00 3.9128476988807805e+00 -8.7228986943414544e-01 +3025 7.6585995798876830e-02 6.2448486299073902e-01 8.4208294706090463e+00 +2145 8.7469873473517001e-01 3.6332611083290258e+00 4.3286448878365213e+00 +3104 -9.0043243799154893e-01 4.6017032283237951e+00 2.1730141454384522e+00 +1857 -2.6517260177591364e+00 4.9836185588340243e+00 -1.4745337430526828e+00 +2944 -5.1527912205564306e+00 -1.5617523125927770e+00 7.2606719753428139e+00 +3926 3.4783366859289351e-02 4.5779037735835164e+00 -7.0167058181494060e+00 +3602 2.0046838312532631e+00 -5.6916720148841833e+00 -7.7008917146665457e-01 +2512 -1.9289180415978882e+00 1.7233377620581480e-01 1.9593451921054574e+00 +3481 -8.6989765971467286e+00 4.2292288732654661e+00 -2.1903499200733143e+00 +2304 6.9774711378951515e-01 -1.1187257846833139e+00 -3.1699868732075345e+00 +2816 -1.0230904244200943e+01 -2.1951497548664167e+00 -5.5407858183565006e-01 +2400 -2.7497135492041447e+00 -2.7643790183257688e+00 -2.5059409225877760e-01 +2273 -1.2789000283512990e+00 -2.4024538520669347e+00 -4.7491459610908604e-01 +2737 9.1663423953695533e-01 1.5716679567278720e+00 2.6180262847113500e+00 +2817 4.1114022480749037e+00 4.2447944628412051e+00 4.0942914491346405e-01 +1809 4.8464802358637060e+00 4.3894937021569780e-01 -2.8266875961898164e+00 +1217 1.9441098831251162e-02 8.8129042305932137e-01 1.4665450994481741e-01 +2705 8.6413500447854830e-01 1.1530679871898046e+00 -2.4513086856882986e+00 +3009 7.9247426283942088e+00 2.4523608200636131e+00 -4.7492072680953505e+00 +1921 1.6219789877899462e+00 -2.3767538312666092e+00 -3.0728408592154350e+00 +2369 -6.0718163316056439e-01 3.9602111414238705e+00 -2.7908179327924425e+00 +2065 -2.5719400298190846e+00 8.2530516231013866e+00 1.1649723521927313e+00 +3667 -2.6318198990376385e-01 8.1319811994952640e-01 -8.4440601996710341e-01 +4055 1.2833295812773384e+00 1.9595076400371617e-01 5.2180870069767584e+00 +3508 1.2828815314970465e+00 -1.5043276096171412e+00 4.9561538076796818e+00 +3840 -7.7536589851700706e+00 9.2853604603936502e-01 2.6863799807886752e+00 +3213 2.6631048666325374e+00 1.8582013988217905e+00 -1.2771096021691464e-01 +3900 6.5499803157685585e+00 -2.8915403835133602e+00 3.9269904020238573e+00 +3473 5.4185412038446747e+00 1.0643552397026436e-01 8.1099090621417442e+00 +3315 -2.7147687361479269e+00 -5.4976215585034431e+00 5.4800669617541145e+00 +3118 -7.7619773310543239e-01 3.5525156323934683e+00 2.4290294857861676e+00 +3763 1.3281159236000362e+00 4.0199722373055948e+00 -1.1102607779101451e+01 +3910 -6.7047977151848115e-01 -6.3380771278427881e+00 -4.7863082210058844e-01 +3162 2.5566598026180576e+00 -1.0064849526560773e+00 2.0375069506913897e+00 +4068 -7.0727388990363049e-01 -3.5439393539970268e+00 9.7782221693219651e-01 +3863 -1.6991586078133918e+00 -1.6916142751754550e+00 -3.7742072023029971e+00 +3851 3.1495529521106591e+00 -5.3809890980077535e+00 1.1033489790143223e+00 +3259 -6.5299253200753222e+00 1.4759669837060390e+00 -2.7767164253753536e+00 +3418 2.8018906898132743e+00 2.6399074155387137e+00 5.3094806227179445e+00 +3325 7.2079976368319831e-01 -2.5051590430825392e+00 5.1543230702656508e+00 +3688 3.7605039209521989e+00 1.0768296093449778e+00 -8.5307957359854072e+00 +3689 -2.2056062073871936e+00 7.5414450559007271e+00 1.2813609437899143e+00 +3206 4.3414480380663338e+00 2.5261301584390194e+00 -1.5957169604739618e+00 +3687 -8.1472385972074512e-01 -6.5308260380317957e+00 -6.8857692914926050e-01 +3454 3.1963478797864302e+00 3.7185890258630674e+00 1.8318346305614754e+00 +3443 -2.2137350138176242e+00 9.3496895566187632e+00 -3.4547921300017634e+00 +3406 1.5941555049482210e+00 5.4880747465787145e+00 3.6235776091888265e+00 +3580 1.4147616772905678e+00 -9.7240558588081871e-01 7.6437313464927277e+00 +3846 -4.3964641648914711e+00 2.7577407614288463e+00 -2.0821096559688983e+00 +4081 -4.8008394240555735e-01 5.9711075544178165e+00 3.8269987538677062e+00 +3595 -3.7667853354135956e+00 -5.2137916933666046e+00 -1.1167187990836585e+00 +3988 -1.8750573261405903e+00 7.1960928922411882e-01 -3.8322131949395204e+00 +3181 -1.1255943970482332e+00 -8.5086995423458134e-01 -5.6816541904105895e+00 +3307 -2.3037270878078520e+00 2.4595859705976264e+00 -4.7268437330629860e+00 +3871 1.8276475522746052e+00 1.1433748163193518e+00 1.2567747164162355e+01 +3644 6.5439311593314375e+00 -5.9508813373712286e+00 -1.8107802289532224e+00 +3447 4.2919003654754313e+00 2.5062954878440413e+00 -6.8584661470940511e-01 +3409 8.0074232962904529e-02 -3.0307504727513264e+00 1.8121585631322110e+00 +3675 -2.0605014918736462e+00 1.6888531550424466e+00 -5.3777828730045982e+00 +3621 2.3710655829523581e+00 2.8532800577108506e+00 -2.9875343882631173e+00 +4095 -3.0867465367977722e+00 5.1360131045682245e+00 -6.2657570769867696e+00 +3111 -6.0269491165359925e+00 -1.9942835210536336e+00 2.8597309124962940e+00 +3853 -3.3693689015964194e+00 -1.7133099389165047e+00 -3.4854716309932460e-01 +3282 3.7423993120292942e-01 2.6197720149123711e+00 4.4358527310356594e-01 +3941 -7.4991779981188671e+00 -2.7805519351449087e-01 -6.4888555944560988e-01 +2161 1.2624902288522333e+00 8.1504566097588871e-01 -1.5076504198361025e+00 +4014 4.9387315363877669e+00 -5.9404285432461468e-01 -1.2654358811167599e+00 +3652 1.8453093900374002e+00 -4.1284785051579469e+00 3.6957476136758367e+00 +3990 1.3545783030132599e+00 1.0644928749575528e+00 8.4035513279193168e+00 +3582 3.1171193757234663e+00 -4.4786545130475763e-01 -4.5156201680061375e-01 +3330 6.5170833248480053e-01 1.6379313094061538e+00 -6.1343634443650412e+00 +3246 1.9961496708997806e+00 2.4074445942387492e+00 4.9313721666698296e-01 +3123 -9.1175459735220310e-01 5.0628843787924520e+00 4.2645302961553329e+00 +3086 3.1563701256014123e+00 1.4764034509677846e+00 -2.6880861826349617e-01 +4006 -2.4082187204227304e-01 -7.9088669238201381e-01 9.1988292193554706e+00 +3175 -4.4898996952981527e+00 -1.9508916845063042e+00 -2.9389404466366771e+00 +3529 -2.1797997127218456e+00 -2.7575608594528309e+00 -1.1663963584335642e+00 +3089 -3.5133386877937411e+00 3.1953297516906614e+00 4.5884924048448825e+00 +3944 2.5652855668026224e+00 1.2261762709261550e+00 6.1132392151595552e+00 +4096 6.7448974708447951e+00 6.0000484586080360e-01 -4.2502525061972323e+00 +3700 3.9703735216847851e+00 -2.3705745932140059e+00 2.1681978417831784e+00 +3446 -9.1737672586027275e-01 -3.7953935105345771e+00 -3.5809736099894934e-01 +3410 7.0120146578943388e-01 -4.5184053722331061e+00 4.6241930472817550e-01 +4010 1.3302396703097630e+00 -2.9786770555038871e+00 -1.8134688637648980e-01 +3440 2.2637635846496793e+00 -2.1996340792748922e-01 -1.7955511936705724e+00 +2897 -1.8824367551908627e+00 7.9310857793612710e-01 4.3167753084890634e+00 +3138 3.8386616643547447e+00 4.5871939290197981e+00 2.1747870140918355e+00 +3261 -2.9860779157548962e+00 7.4865526602793766e+00 2.1894648770920946e+00 +3654 1.0035162352296345e+00 4.1006560903164573e+00 2.5426876874667759e+00 +3882 -5.4748609574685867e+00 -4.5171587120432122e+00 -1.5047476426247706e+00 +3932 -3.3058952050722934e+00 -2.9961723667023783e+00 -2.6203997895824971e+00 +3193 -1.1165569897452134e+00 -6.9139419191416862e-01 -2.8371377431985669e+00 +2241 -4.4995595161848245e-01 9.9956414282292250e-01 -6.4291666735187114e-01 +3502 9.5659809467193158e-01 -1.9537405065156686e+00 -4.8890207370757359e+00 +3859 4.4142582963953020e-01 2.4745142185382445e+00 -1.2618205675825571e+00 +3717 3.2953543024686218e+00 3.0753129390546503e+00 3.5571910729415751e-01 +3816 -4.9335526187788897e-01 8.4794700774545664e+00 -4.8784193177421704e+00 +3705 -3.3322811965498880e+00 -2.0095388893016612e+00 4.7558207580957701e+00 +3424 -1.1987208062026222e-01 1.9489066838603311e+00 -3.2151245608014500e+00 +4013 -1.4823586990204281e+00 -5.1463839754448806e+00 3.9158309092999590e+00 +3721 3.7191321207305235e+00 5.5768034545371323e+00 -2.6470070231033644e+00 +3157 -6.3269298931073052e+00 -9.5808892759179110e-01 -1.8944244547924898e+00 +4069 5.3816000001419901e+00 -2.7757931897726245e+00 7.3576257899279587e-02 +3140 -1.4029314555073322e+00 5.3779277382239341e+00 -1.5137417649518099e+00 +4094 -7.6639682246694341e-01 6.5570715078742294e+00 1.3407926271840704e+00 +3371 -8.6212498621013245e-01 -2.1552672552505729e+00 -5.9084746058414748e+00 +4032 2.0966777693284882e+00 -2.8743458588771982e+00 6.2717268834581752e+00 +4035 -4.6655670892686079e+00 2.1408279467167513e-01 2.5039063088520801e+00 +4033 -1.6233899941116936e+00 3.9197967108438703e+00 2.0717294006991080e+00 +3342 -4.2713781364438281e+00 -3.1931757501281912e+00 -1.1105732519082072e+00 +3632 1.6313828189474837e+00 4.3452297654048655e+00 6.3695661841889519e+00 +3684 7.4333402420749994e-01 -4.4839543914444180e+00 -2.0517170118592896e+00 +3226 -2.4062197421050147e-01 6.0236374798037655e+00 -2.9368500373844530e+00 +4084 1.4919033894272749e+00 1.8487697788775830e+00 1.8971901853998085e+00 +3872 -4.5132909072576771e-01 -6.4748340908268673e+00 3.6082510591272512e+00 +3878 2.6590697243151040e+00 -4.4530305892928927e+00 -2.3520237109338042e+00 +3254 2.3911233337454636e+00 2.3203479319554741e+00 1.9477675966881343e+00 +3530 1.0807118811573568e+00 -8.7915142477856045e-01 -1.3835589819897420e+00 +3462 -1.9244148632221498e+00 4.9041852357938005e+00 9.3149723954317096e+00 +3225 4.8793768913478619e+00 4.9538014933043577e+00 -4.2122910302108423e+00 +3609 -2.2237519913658961e+00 -6.1313364469848750e+00 5.6206199678002706e+00 +3976 -1.4891598786057405e+00 -3.2305671116465717e+00 3.4271807948741300e+00 +3263 -7.8067480656455512e-01 3.7337462224518809e+00 2.0362967274741681e+00 +3746 -3.6258335852095058e+00 -3.8662147883794584e+00 -1.9202402099965332e-01 +3488 3.0614869260746045e+00 9.1682703492928030e-01 5.7743798750585889e+00 +4021 6.0170859007880684e-01 -6.9191014392343524e+00 -1.5911913104671838e+00 +2625 -2.3941839110131662e+00 5.7822624738856163e+00 -4.4232076296508698e+00 +3953 2.3448058286354878e-01 5.6075638109647556e+00 4.4897258991599829e+00 +3167 4.5218925054197967e-01 1.9765115634999437e+00 -1.2024223213386716e+00 +3428 -1.3848591873602067e+00 4.8314411315391039e+00 -4.3239930828947765e-01 +3311 -3.5574926161042408e+00 -1.1339297137437316e+00 -4.0492337881942655e+00 +3156 -2.9627371435558009e-02 3.5276103574522013e+00 2.2735223226486942e+00 +3239 -1.2727964352072165e+00 -4.1507256144542870e+00 -6.0733006883822760e-01 +3135 2.9305921185121577e+00 1.9670556977818341e+00 -1.1457916825359993e+00 +3396 -4.1317233736288106e+00 1.9416270401731219e+00 -3.6340518088473708e+00 +3349 1.8572505910527597e+00 1.5795411413953905e-01 -4.5962913598095776e+00 +3995 1.3832636802953837e+00 2.5080596851622348e+00 -6.4704584679288164e+00 +2753 9.2234345806156123e-02 1.9061489486293395e-01 -1.0850630582850045e-01 +3469 5.8371741927947971e+00 6.0540625907740075e+00 5.2316509578596113e+00 +3452 7.5089639104026995e-01 4.3416648239584843e-01 1.6293094318233152e+00 +3196 1.1971736410249159e+00 -6.8542049341486235e+00 -3.7807997387385002e+00 +4049 3.4419946671435668e+00 -2.2586550254232032e+00 -2.0650376332004621e+00 +3991 -7.3871063832524309e-01 -3.3467530058219612e+00 -4.9031464148470638e+00 +3769 4.9556138753032819e+00 5.1310187303931132e+00 -1.1469374684563598e+00 +3423 -5.1657112048936646e+00 2.4287322694388354e+00 1.3312934146113073e+00 +3777 -1.0601963375853840e+00 1.6563891792706562e+00 -5.1512204762111011e+00 +3383 -6.4851897958328033e+00 -2.5985936233576470e+00 5.5602379401132405e+00 +3273 5.2550067267973928e+00 -7.7255578605197712e+00 -1.4460058587426203e+00 +3608 7.6530348715023078e-01 3.0786078961848675e+00 2.2779495130517491e+00 +3754 2.0853337720802672e+00 2.4732284527334221e+00 5.8707594996096868e-01 +3934 9.8567627762770738e-01 -2.2655666062554811e+00 6.9135089007896666e-01 +3222 2.5570828715152669e+00 -1.5060006177402983e+00 -2.1725091738689200e+00 +3693 -7.0056491604103099e+00 4.4077599481105775e-02 2.2091441967141390e+00 +3279 5.3331799780650373e+00 -9.7198804600226152e-01 1.9757551568689331e+00 +3720 -7.3865546643003341e+00 4.0201119385103867e+00 4.2395139302664936e-01 +3270 -1.1096371643212251e+00 -2.0857685882470727e+00 3.7237767434091178e+00 +3913 -2.2862241380984183e+00 9.3678542396995323e-01 -3.2217175025733371e+00 +2432 1.9313586244962794e-01 5.1556505073463814e+00 3.0548015486822448e+00 +3977 3.1713531628669425e+00 -5.2282185177991600e+00 3.6410246693668091e-01 +4028 -4.6490652398416739e+00 -6.8963643866919355e-01 1.9192456957035948e+00 +3710 -6.0261282265402185e+00 2.5745089973481488e+00 1.1412608680524499e+00 +3996 -1.9997806811033876e+00 3.7997892272441658e+00 -2.5218151146375138e+00 +3694 -1.3576975898247854e+00 -6.8457058730113907e-01 -1.0716869175341468e+00 +3485 -7.8858006235362970e+00 2.6238008854248474e+00 -2.6928933239785939e+00 +3576 3.0551283568085146e+00 -1.2564681076186988e+00 2.6016098577952143e+00 +3757 -3.3193368331656488e-02 5.3806825535246077e+00 -4.1768789539641968e+00 +3074 6.1396868196865095e-01 2.4588935666185174e-01 2.4292988940084235e+00 +3403 -7.7601779264335535e-01 -4.1351762659408946e+00 3.9984456934668522e+00 +3999 5.2669052813447417e+00 2.2118320934948250e+00 4.3136065389691343e+00 +3860 3.6203040680632994e+00 3.4106917860693509e+00 3.6193453349354185e+00 +2833 1.3559285124791798e+00 -1.5326070872818238e+00 1.5054769294606956e+00 +3739 -5.3718542359289803e+00 -4.2037899957644942e-01 2.0744514139653947e+00 +3223 8.8033428978281467e+00 -3.5553833842289855e+00 8.5619573416422163e+00 +3267 -1.0661166441278300e+00 3.3467208243720572e+00 -1.6902070570861119e+00 +3756 -3.6853560897179021e+00 -1.4934524626749396e-01 2.1263669403374696e+00 +3558 9.1566159303430272e-01 4.3043053122405182e+00 2.7570180818154317e+00 +3729 -1.0097889211912294e+00 -6.9381824010294713e-01 -3.1814479905067392e+00 +4091 -3.1031791283185663e+00 -1.2111107699105337e+00 1.5174625301167564e+00 +3785 2.3991288147133925e+00 5.5502013613885799e+00 4.3674663589579810e+00 +4052 -3.8094327874508820e+00 -6.3601113603806505e+00 4.6173377452455764e+00 +3738 -3.7729577190826489e+00 7.2154645162759024e-01 -1.0582212409370206e+00 +4047 1.7607216668042565e+00 -2.3767551945366963e+00 2.7105870716339249e+00 +4074 3.5272568074839246e+00 9.1625001878506451e-01 3.9787920423358045e+00 +3201 4.3601618195053007e+00 -2.1243136000564333e-01 7.8365028002050376e+00 +3873 -1.2275621427556842e+00 5.5047438777280344e-01 -3.2133346619367127e+00 +3512 1.4889062887984335e+00 -5.0323891797434817e+00 -1.2490240913470116e+00 +3523 1.7883684051058062e+00 -1.9419692823533723e+00 1.1278129042833489e+00 +4088 2.4179321996608523e+00 5.1806412566804578e+00 4.0968661240882422e+00 +3538 -8.2350252605174976e+00 -2.2376789597824236e+00 4.4276478339925127e+00 +3427 2.7960133297093659e+00 -5.6443500630205512e-01 2.6959020093611139e+00 +4001 2.2754763173654959e+00 8.1757854130566532e+00 3.2963081669959053e+00 +2320 -5.8763421499000801e-01 6.7310493178071640e-01 9.5567232121304233e-02 +3837 -1.8298663425538551e+00 -1.7126514497508589e+00 -8.9743163482090846e+00 +3800 -1.5675000028706348e-01 -5.9206019671173254e-02 -1.1534741824630812e+00 +3442 3.5299608180347626e+00 -1.6247335547102997e+00 -2.3360525164059469e+00 +3256 5.7888508828626284e+00 2.5268776257643633e+00 5.3334375888622914e+00 +3221 4.3647671748342693e+00 5.6281049369089882e+00 -4.1197574420051044e+00 +4023 1.9697607371771901e+00 -4.5132603297978608e+00 -5.1820821122405851e+00 +3456 3.2306269258120252e-01 4.3081752408305842e+00 -4.4580171913020035e+00 +2433 3.5678017903218202e+00 4.4958041553346293e+00 -6.0214300741101088e+00 +3356 2.4363634470688083e+00 1.2301390873336333e+00 4.0752710424416518e+00 +3584 -5.0866329591324062e+00 5.3871005202259568e+00 1.8295077142545018e+00 +3613 -1.2260929256227611e+00 3.6221973039528788e+00 4.1568206324662738e+00 +3875 -3.0852180568926144e+00 -7.0382731111249686e-01 -3.3683688236536518e+00 +3499 2.8568861574625930e+00 -1.6343807349565427e+00 -4.8762290322981734e+00 +3382 1.2271727674594194e+01 5.4383996183958319e+00 2.1637823096982875e-01 +3593 9.5330557496856383e-01 4.0071546961310413e-02 3.0946699203507375e+00 +3461 -9.7661826614713532e-01 -2.7124886343004619e+00 -3.8130372722956922e+00 +3989 -3.1808726490986658e+00 4.6593542568581698e+00 -2.4105346327693136e-01 +3735 -4.4714979991938639e+00 3.1387745805963876e+00 -5.3285029924001712e+00 +3827 -1.5826249141874901e-01 -1.7237424791871536e+00 -7.1507160820065190e+00 +3109 1.4822918365982498e+00 1.5504084193821210e+00 3.3347770547879705e+00 +3144 -7.5214742560962078e+00 -1.4337771633655960e-01 -3.6237650852479160e+00 +3834 -7.3814508179226639e+00 -2.4432960314286492e+00 5.5041127389535625e+00 +3541 -9.3983969302672998e-01 2.6829575282594154e+00 -8.0943789292732193e-01 +3174 -1.1953543376906155e+00 3.0459960819271328e+00 2.4474559419350226e+00 +3648 2.8426679511801196e+00 1.6806159426589504e+00 3.0793579398509188e+00 +3880 6.8026081892472823e-01 -1.2131338385213368e+00 5.5674044527425093e-01 +3590 1.5936217459618616e+00 -5.0528313683491586e+00 5.9302572431169622e+00 +3096 -2.6515475901792844e+00 -5.2773845865563285e+00 3.0130821787832969e+00 +3300 1.7523847560508625e+00 -3.7489180852407227e+00 1.2138374233293737e-01 +3972 1.2187745448747547e+00 -6.0915021883059373e-01 -1.7480879408859356e+00 +3126 7.1026755639955104e+00 -1.8088150640778328e-01 7.9662641220055552e-01 +890 1.0570273117260887e+00 -6.8085779493747793e+00 2.0616459239261089e+00 +3577 -9.5324453684815758e-01 -4.5893204522628377e+00 4.4827823335094266e+00 +3227 8.5999410959276068e-01 3.0688581680633975e+00 1.4042832380898416e+00 +3319 -1.2448833546425500e+00 3.7686112772447411e-01 -9.7420241162952348e-01 +4038 1.7901861660164435e+00 4.3631412862710556e-01 9.4387867851547036e-01 +3334 6.9033070105586418e+00 -5.6027432851980563e-01 5.9949605113930753e+00 +3945 -1.0236971540235840e+00 -2.8097603758972256e+00 -2.0596824219093999e+00 +3079 -5.8174003178092928e+00 -6.0293493211942661e-01 2.9787567018382832e+00 +3855 7.8192107900366876e+00 -2.3909678805919596e+00 1.0252893985677585e+00 +3933 -5.9928980654918673e+00 -4.0940254528490199e+00 -1.4067124226345923e-01 +3724 -9.5621026913448974e-03 2.8347347641239633e+00 -5.3144737249724894e-01 +3390 -1.5589454551166733e-02 -3.4012123155763048e+00 -3.2861669733946726e+00 +3641 4.4951533922405601e-01 4.4843993735688610e+00 1.2687501997898953e+00 +3472 2.6203243799747611e+00 4.6196024021498792e+00 5.5347795590535576e-01 +3631 -4.8750285034269698e+00 -2.8462284245116803e-01 -1.2276804270439592e+00 +3987 -3.7989801487869355e+00 4.1717604682209419e+00 -8.9396104125473086e-01 +4086 2.6989424240838283e-01 -1.7024309525906696e+00 1.8698985308858878e+00 +3100 2.6286953121201089e+00 4.2502780196458954e+00 4.5938011400750600e+00 +3292 -1.5924954228540695e+00 -2.7918603468845755e+00 1.6579813989132441e+00 +3420 1.6542688319715544e+00 -2.0772735137442604e+00 -3.9314516289153527e+00 +4073 9.7262147919426678e-01 -9.9819026459618432e-01 -2.0593762641041859e+00 +3450 1.4778084541650007e+00 -6.9216942986379301e-02 3.6354589926886671e-01 +3884 6.5687781078372280e+00 2.7651123155320407e+00 3.3732016665927983e-01 +3666 -2.4150185532926289e+00 5.1755863727845082e-02 -6.7423768271883433e-01 +3818 5.5515902277896583e+00 -3.3918903157545741e+00 5.2950409016029107e+00 +3082 7.1150464919795215e+00 -7.3176391020704887e+00 -1.6407134373759533e+00 +3537 -3.0995351539578420e+00 3.8441100915661178e-02 -1.6059996896077449e+00 +3116 3.7997023589211745e+00 -3.4840073805301128e+00 3.1473440646108140e+00 +3617 1.1734239856733850e+00 -1.5110749627259938e+00 -5.9375971227768494e+00 +3567 2.9287394908252056e+00 1.1006052132442410e+00 -4.0275079194425016e+00 +3127 4.7943372581206078e-01 2.7927834951465966e+00 2.4845894810673938e-01 +3578 1.4011133015463562e-01 -3.3543725369351622e+00 -1.0160876458916761e+01 +3257 -2.0368298850927675e+00 1.8278268459914173e+00 7.1621135938366975e-01 +2945 3.5796307951993374e+00 -1.6034854436593866e+00 -4.1038273141083357e+00 +3980 -6.3308454937050556e+00 -5.6352492044193359e-01 5.5151225357455198e+00 +3179 1.9695750355613553e+00 -4.2311055575114915e+00 2.1163952761085860e+00 +3828 -3.0147034859030208e+00 -6.0451528229342988e-01 7.1759972119457709e+00 +3856 -7.8320508021653590e-01 4.9243793534593951e+00 2.3555831403232870e+00 +3155 2.4139725375102428e+00 -2.4895370874621037e+00 -3.3900918865708096e-01 +2881 -1.1824898247206146e+00 -1.7106341573595414e+00 4.3152360154361824e-01 +3441 -8.0417996023280522e-02 -3.7270199164809235e+00 4.9220283513377678e+00 +3706 -6.7375476822079783e-01 4.4635892770063856e+00 7.4642816257614664e+00 +3902 1.5798017015434702e+00 -6.6304762627458347e+00 -1.2411724541001361e+00 +3438 -3.2453616467809376e+00 -4.4301121723472399e+00 -1.2133245592077357e+00 +3758 -2.0729522504431341e+00 -2.6545132816228985e+00 7.8727487210504057e-03 +3378 -5.6954566349393403e+00 -1.1807470830948199e+00 -2.5077877623420535e+00 +3618 4.6133073072296691e+00 -9.4533369383450616e-01 -6.7300951871495029e-01 +3476 -5.4587215659976218e-01 -9.5256084464794255e-01 3.1383884682107981e+00 +3399 1.0709830162357172e+00 -2.1799180999804291e+00 2.0838870252648531e+00 +3381 1.3201582843183022e+00 -3.8176001999232922e-01 1.8060283610672154e-01 +3659 3.5411994604393038e+00 5.3942745784425492e+00 2.3013865409235064e+00 +3434 3.9722340653628754e+00 3.0140753332506431e+00 2.3211739977524961e+00 +3416 -3.3362321202307830e+00 8.5799115862847206e-02 -6.7694501413354424e-01 +3304 -3.4570797455587656e+00 -1.4830555744770688e+00 1.2098135145673277e+00 +4029 -1.9322512121785060e+00 -3.2215301332603747e+00 9.5987082621859121e-01 +2640 -3.2933675408907379e+00 -6.8752278422315838e+00 -2.2629507728461231e+00 +4044 4.1419282161316323e-01 -1.6414145872584981e-02 -1.4035884120025517e+00 +3404 2.0320536051164684e+00 3.2344137177982830e+00 7.4103367236773030e+00 +3773 1.1435577753862136e+00 -1.0367668220633226e+00 1.6508617820017328e+00 +3543 4.5947325241528203e+00 3.2578364348807787e+00 -2.9030906667348653e+00 +3553 3.5530011285020460e+00 1.2149373667796870e+00 3.5048882349536270e-01 +3845 3.3849125705008274e+00 -2.1158258643894725e+00 -1.6136049863654651e+00 +3919 -3.0345285739335046e+00 2.6319478626983628e+00 -1.4178671038226252e+00 +3901 -1.2807335521378620e+00 2.8781313910523281e+00 2.1431484650907051e+00 +3112 -8.8316322627498922e-01 3.3669040362033180e+00 -2.5583920998027803e+00 +3289 9.6088033031247833e-01 -1.0663298437105941e+00 -2.2403657703684332e+00 +3559 1.1567325830612645e+00 -9.0800588251799308e+00 1.7467097315822531e+00 +3517 -6.8376913277460440e+00 4.8688252793609538e-01 -2.5761692964168361e+00 +3277 -4.7777042600528070e-02 -9.5290722145207916e+00 3.6689298311056068e-01 +3212 -7.0254786006575498e-01 2.7680003256606439e-01 1.6431817385604550e-01 +3137 -2.5161868989745195e+00 -1.3311972669955754e+00 1.7648051399627172e+00 +3369 -2.7741688674474392e+00 -4.6877049206349390e+00 1.2903280986643262e+00 +3087 -8.3978253736929687e-01 -2.8804138959796357e+00 2.7163142951462729e+00 +3824 -7.4425966947648858e-01 1.5616321114911230e-01 2.8589972992528163e+00 +3545 5.4448346173328419e+00 7.4220360501396847e+00 -8.8459204528875968e-01 +3245 1.2792094212295697e+00 4.2888890852996493e+00 5.8458492422229424e+00 +3531 4.2196392264314770e+00 1.6274099853117514e+00 1.7165919499546864e+00 +4009 -6.7902066062305035e+00 4.4512428386821581e+00 9.9854180041841822e-01 +3445 1.0212603620910039e+00 -1.1545061448952241e+00 -2.0485376776902768e+00 +3734 4.6965011681112676e+00 -2.5436318377168297e+00 3.1517559890615097e+00 +3920 -5.3490448906750983e+00 -3.0985404372620234e-01 -3.8839771429787500e+00 +3136 2.7799209861399747e+00 4.3637708545155167e+00 2.7443582787564003e+00 +3498 -3.5556214017049359e+00 3.9077872653676424e+00 -9.0529069453271145e+00 +3857 -1.5666435939858230e+00 4.3619809655326387e+00 4.9826449046957144e+00 +3266 2.0069008895380742e+00 2.2763590015112496e+00 -1.0082998807338184e+00 +3895 5.5026326749782974e+00 -2.1679787947196347e+00 -1.2328497711257944e+00 +3269 -4.1127870710651465e-01 -1.9610775527215618e+00 -5.7184945998630905e+00 +3839 3.7553893543643752e-01 -4.5868587248007398e+00 2.1182737205320912e+00 +3892 1.2756409112720137e+00 -1.0087340112806293e+00 -5.8109160610103521e+00 +3215 -4.9808420423573612e+00 9.3683485984010706e-01 -4.3860548871257956e+00 +4039 -5.9116607666576106e+00 -2.3788371308697589e+00 2.3114018366690305e+00 +3493 2.3624529916654797e+00 3.0880972554770265e+00 -2.6069794423079444e+00 +3550 5.1449652309588034e-01 -1.6134797927030287e+00 -6.2810250889855812e+00 +3373 4.3488346658623245e+00 3.1744671626940733e+00 -5.9121242432402346e+00 +3646 6.1648821846807564e+00 3.5528331283342003e+00 3.6257812027359826e+00 +3514 9.9497848501062303e-01 -1.0997128117132404e+00 6.5846400002153235e-02 +3664 -2.5210326003289119e+00 1.3653598038087689e+00 -4.4307326543875174e+00 +3527 -5.4641327724325635e+00 -4.5509582922382155e+00 6.7450279700207831e+00 +3114 -5.7888708540089464e+00 6.4960057055983205e+00 2.1339465957210418e-01 +3898 4.1346481856931714e+00 2.4259544268186524e+00 -7.4567283035129437e+00 +4016 -8.7267005800262043e-01 5.5774156745943930e+00 7.8390256749965559e+00 +3865 -6.9099421006910444e-01 -1.3243150486504986e+00 1.3215446956734298e+00 +3203 1.7796461843537446e+00 5.3458459414488244e+00 -3.5757694271206413e+00 +912 -9.5478612283900706e+00 -1.5212844311520271e+00 3.1325647579618943e-01 +3143 6.3048584818985942e+00 -2.9115222391647442e+00 -3.9536944320534722e+00 +3870 -5.8808548958779374e+00 2.9933516422544177e+00 -5.5875205683294240e+00 +3877 -3.9335003789020413e+00 9.5362001475838365e-01 -5.9720543907022732e+00 +4061 6.2731433792898965e+00 -7.6847719837083406e-01 8.8600548877937211e+00 +3808 1.8796275301577992e+00 -3.9141982859728905e+00 -4.7231050327157913e+00 +3794 -4.3271591285093978e+00 1.6976165056902539e+00 5.5132712489139646e+00 +3810 -1.2468653987660987e+00 1.9187682392571914e+00 -3.4980034895625161e+00 +561 -1.8798765002118492e+00 -2.6469199019196541e+00 -2.7206994715488757e+00 +3148 3.8468009671984782e+00 -5.3370759699341508e-01 5.8359207331143743e+00 +3494 3.3783638746043581e+00 1.2038155777553585e+00 3.5646670911320277e+00 +3297 -2.7198336601358453e-01 -4.5066991324125644e-01 -4.0041601012884263e+00 +3299 -2.5857286692716692e+00 -2.8500074087635374e+00 3.6954172470742913e-01 +3362 -9.3316960959872275e-01 -3.8143903570130364e+00 -4.0566658483112104e+00 +4011 1.9014753233362898e+00 3.6975691611674577e-02 6.6645263998813387e-01 +3551 -3.3856774777809591e+00 -2.3559004445109628e+00 -1.1571458341645227e+00 +3468 -1.0679396737559792e+00 1.6332536665786947e-03 -3.6385422631527811e+00 +3622 5.1993669663470177e-01 -1.3934294737485924e+00 -1.1017575563627651e+00 +4041 -6.3740581182205682e+00 4.3692304406877760e+00 -1.4379773228427170e-01 +995 -1.3104877043902539e+00 2.3367351629782904e+00 -5.6073760224997242e+00 +2447 -3.7101734065530936e+00 1.1903962276247815e+00 -3.5694942138031367e+00 +3931 1.6990171353089130e+00 -1.6890550574400671e+00 6.7292792377384081e-01 +3131 -1.8403775303960530e+00 -3.4977927814907348e+00 3.8848559619261769e+00 +3733 1.7163672823319585e+00 -6.8200358219125725e+00 -8.7474220378443199e+00 +4050 9.3409934891656343e-01 -2.9382305199007432e+00 -1.6795619346125796e+00 +4020 -6.2235132098176837e-01 -5.0683068220206682e+00 8.5883299876914676e-01 +4054 -5.9590271743965406e+00 3.6364770740721850e+00 -8.2590589917209769e+00 +859 -4.1559992740429857e-01 2.2455897588318257e+00 -2.3463177244074360e-01 +716 3.9662142630330726e+00 1.7996391714130795e+00 7.3261138288118612e+00 +2800 -1.6010143471278915e-01 3.3971241728241307e-02 -3.4893368758952232e+00 +495 -3.0071160990781736e+00 4.7491081361560967e+00 -5.2636979084252298e+00 +3677 3.2899789648995115e-01 7.3590432721962751e+00 2.4969921384741940e+00 +3525 -3.8433717144510027e+00 -2.4673027620007830e+00 4.2031984632274000e+00 +497 2.8423884393189551e+00 -1.0338403566272389e+01 1.4075293234270398e+00 +3171 -1.8120961078318398e+00 -3.8341905791200577e+00 -9.1368545281061059e-02 +3711 3.3573411342694826e+00 1.3850802516715237e+00 2.5159862093658241e+00 +3401 3.3290707776389663e+00 2.1789991772389024e+00 3.5414345878928204e+00 +3764 1.3409208579083534e+00 -2.6334228176806387e+00 1.8009532193840652e+00 +3305 1.6110404939982816e+00 -2.2842943257813500e-01 -2.1192285289161088e+00 +3716 -4.0678214229651726e+00 -1.7977207195309073e+00 -6.7407227310017204e+00 +3313 -3.9816566619272984e+00 -4.4135228554267336e-01 -4.6620819693771338e+00 +3205 1.2214961228885248e+00 -4.7522601018285497e+00 2.2848681644016304e+00 +3670 2.9631536883471141e+00 5.7656313480189771e+00 -7.3660879919192412e-01 +3604 1.2794238270524287e+00 5.2309062312932140e+00 5.6081179499741793e+00 +3699 -4.9205072955154954e+00 -4.8110620738147816e+00 2.7119253129244454e+00 +3674 2.7120862136730657e+00 2.4903463536658707e-01 -2.1037809729943522e+00 +3177 -1.6337758573419023e+00 2.3453284662576740e-01 1.6286346696397449e+00 +3309 -3.2711830544322815e+00 -5.5316268163860671e-01 -4.5736921262847012e+00 +3107 6.4588848337765539e+00 6.4969538633284571e-02 -2.6479995668580196e+00 +3795 -3.6741054751578872e+00 -5.5412320568226658e-01 3.8166952308037788e-01 +377 2.3720424806774889e+00 5.4332012512418517e+00 -4.8444050784447690e+00 +4070 2.5814760575513485e+00 -2.3168228521126539e+00 3.3101488242582806e+00 +4027 -4.1989858179293309e+00 1.2605779853188990e+00 3.8096972203785269e+00 +3723 1.6777186251066687e+00 -2.7671713079832037e+00 2.6315637883122345e-01 +3676 1.5493116037432892e+00 -3.6703567383491289e+00 2.6232114672041460e+00 +3736 1.3720731505486741e+00 1.3253207618503033e+00 3.6732146489803617e+00 +860 -1.8584291815204457e+00 -7.3241629054627531e+00 4.3463878605378470e-01 +3350 7.0227938723218508e-01 4.1936007382427204e-01 -1.2946905815136500e+00 +3290 -1.2766223544017907e+00 -5.5551186690379604e+00 -5.0123107954586710e-01 +3125 -4.0720149546661633e+00 4.5268704430794040e+00 6.8763259045063951e-01 +3232 -2.4733761913757895e+00 -1.8380273616005414e+00 -2.0976834281188936e+00 +3120 -2.3227119618150214e+00 3.0236730653236914e+00 3.9414578083961778e+00 +3211 6.1970716684774887e+00 -4.2955218581099315e+00 5.5585983963057704e+00 +3471 2.2420510758137890e+00 -3.9823911392756943e+00 -2.2581128531634392e-02 +3624 1.7128797436921972e+00 -1.5792343223324914e+00 4.0407564855593687e+00 +3923 -3.8909515867045879e+00 8.2498737571401204e-01 -1.7825928732882419e+00 +3623 3.0533612407633326e+00 6.9613927509651710e+00 -3.3330153862730572e+00 +3202 -5.6560515206098527e+00 -4.2466917673920834e+00 -2.5336454634392536e+00 +3522 -1.9135616015222172e-02 -1.3953793218878419e+00 2.3992904473863397e+00 +3153 -2.3387413084399120e+00 -2.0388048234669598e+00 -4.3150532164627720e+00 +3848 -7.2820217315973268e-01 2.7419957167762854e-01 -2.7595922608180752e+00 +3335 5.1008803060382473e+00 -1.6440769168192035e+00 2.6120870217578074e+00 +3718 -7.4426644231544192e-01 3.2193622648094675e+00 2.7722493158853374e+00 +3625 -2.3945972860263818e+00 -3.8601788115295115e+00 -3.3710692280246706e+00 +4005 -6.0202782475552290e+00 3.4016123443731161e-01 -4.3054015386688121e-01 +3505 -6.7450072871507754e+00 2.9740545644607566e+00 4.1081596439762933e+00 +3489 -2.1229450179584251e+00 -6.2221770785659136e-01 2.5055904514507166e+00 +3974 -6.3244849080480012e+00 -2.4358922561994101e+00 2.9554251304918955e+00 +3765 3.8225509273298570e+00 8.6610954017902202e+00 3.2593633689524197e+00 +3466 -3.1757022424211194e+00 -4.1244663147254901e+00 -6.0148368932153788e+00 +3918 -4.5023639359418594e-01 3.2087037638843867e+00 -1.5301757198624220e+00 +3173 1.0359671857600434e+00 -6.5380199542486750e+00 1.1359615236266533e-01 +3630 -1.1359815300759946e+00 -4.0108763804970717e+00 -6.1996002037702906e+00 +3407 -4.6132210927810702e-01 -4.7526146696231546e+00 9.2397993503755538e-01 +3955 -2.5749990741982711e+00 3.2713026162169290e+00 -1.5536932879198266e+00 +3653 1.1697510955609316e+00 7.5771768830077129e+00 -4.6049988679881126e+00 +996 3.3196774370809274e+00 -9.0065879218562817e-01 4.7452743339025565e+00 +3658 3.7323618554508098e+00 6.3411243503619668e+00 -8.4348475892193675e-01 +3295 1.4766096343535751e+00 -3.7658153365866105e+00 2.8848238979992518e+00 +4043 -1.6107823614990091e+00 -8.3233638694182543e-01 -9.7475427829806538e-01 +3645 -3.4396776639485314e+00 -5.2209450754053819e+00 7.6285737267468012e-01 +3316 -6.1325488072910916e-01 5.1644092270235187e-01 -1.8346473906388705e+00 +3849 1.0432953569240278e+00 -4.6161630707892837e-02 3.7732345426852487e+00 +3075 1.2010237923121745e+00 -5.8581658288783833e+00 2.8038260010261689e+00 +3943 -3.9586540363930678e+00 -6.1443318530484374e+00 1.0352425748522569e+01 +3957 -4.1689061601169386e-01 5.6179877035582253e+00 -1.0437249554298147e+00 +3491 -2.0843294897712550e+00 1.3456849191874296e+00 8.9694075950019503e-01 +3586 4.6975304366649157e-01 1.6478885320769605e+00 -5.7803344117199174e-02 +3642 4.2080243918317937e+00 3.1910947468486222e+00 -3.1803563195387854e+00 +3951 -1.5802365956662405e+00 -1.4809806081368160e+00 6.7124603557201334e-01 +3619 6.7502878690176162e+00 1.2390084284477945e+00 5.2316001163284975e-01 +3164 -3.0384551674209255e+00 1.5274680939579226e+00 3.8423698394578856e+00 +3425 1.1593384552687273e-01 8.2735682969528028e+00 2.8658599621907759e+00 +164 -6.1475109972763189e+00 -1.9717780300530467e+00 -1.0764639923158936e+00 +3392 1.7467224487203097e+00 -6.4638234430970822e+00 2.9286402374927913e+00 +3825 -4.4847775726415238e+00 -2.0551805109425141e+00 3.4231411767429509e-01 +414 -9.3314803399527557e-01 -2.7132811250760440e+00 -6.6081065748012353e+00 +3959 1.8792807733073091e+00 -4.1682952635197710e+00 -6.8711467810774343e+00 +3612 1.0874772064674572e+00 -9.6360052759600667e-01 -1.3665504636520605e+00 +3389 -1.9121036985555186e+00 -2.5805594539497374e+00 9.6119714388810909e-02 +3570 2.3187621350853913e+00 4.2627862414406668e+00 -3.3973818959244495e+00 +3938 -4.7110982035479548e-01 -1.1168900112174991e+00 -5.1136335332236431e+00 +3113 -5.5392341316738991e-01 3.1493353086053673e+00 -2.0020517242218245e+00 +3095 -6.7168739666240747e+00 1.3666377518131029e-01 -2.0503507750638996e+00 +3218 -1.5186480022618118e+00 2.9273172011431314e-01 -5.2853234792636627e-01 +3076 4.5147106545513627e-01 -1.1858909956683332e+00 -7.2295394358021996e+00 +3429 4.0798976889341310e+00 -2.2221768697215141e+00 4.1065167973851553e+00 +3327 5.9769440647297030e+00 -4.9175556140101424e+00 -1.5118258022950581e+00 +3750 -3.3545999562646323e+00 4.6115318681132891e+00 2.9156695735031399e+00 +3176 9.5329553616566027e+00 1.2607798849113041e+00 -5.8593548269125506e+00 +3097 -3.3367393004582886e+00 -2.1865840370686648e-01 -3.1008495187452647e+00 +3195 -4.4561532294005364e+00 -3.6745330257748413e-02 5.9772065524288260e+00 +3293 -1.4598731688675288e+00 -2.6817258061000078e+00 5.1926072229530877e+00 +3854 -5.2688532287271519e+00 2.0985129433816496e+00 -2.3605995463729172e+00 +3760 6.2951560578324832e+00 1.4057237407440475e+00 2.3061656448590613e+00 +3992 2.9370290456628476e+00 -1.3656967943325127e-01 6.3107892618166685e+00 +3231 6.3979466897179025e+00 8.6801897955352547e-01 -1.1057826979639986e+00 +3668 2.7582926829097980e+00 -9.6193148819588217e+00 3.6980892726517132e+00 +3121 -1.6029391062429428e+00 1.6898553986588377e-01 1.7171907315539561e+00 +3564 -3.5552769604728867e+00 2.4353506951588679e+00 2.3342638056159046e+00 +3964 5.5893128728042534e+00 2.5768413188622552e+00 4.1976871446606401e+00 +3971 1.0892427607612509e+00 -9.9127979883782857e-01 1.2170212776050575e+00 +3374 -4.2732060101398694e+00 -7.7159235378015867e-01 2.6621036842996606e+00 +4079 -1.9231342435334953e+00 2.8824741141242209e+00 6.9775177725739090e-01 +4031 3.2293942875275667e+00 -5.9246804913420581e+00 -6.1207416965470096e-01 +3914 -1.1389148374531370e+00 -8.3939679681508057e+00 -9.9657233632702780e-01 +4066 -1.7436591287570031e+00 6.4965010564154548e-03 3.2563350323564739e+00 +3146 2.2686845715316601e+00 -1.5308414401198172e+00 5.8087131360864461e+00 +3230 8.2716544228073268e+00 -6.8778445754264217e+00 -7.6042122818180879e-01 +3696 -2.2152588185805482e+00 5.7373245139411222e-01 -3.0520355527722294e+00 +373 1.8911115859070753e+00 4.3749134840108752e+00 -1.9620889500861431e+00 +3770 -2.8822340669310714e-01 -1.5902234703693563e+00 8.5166128019564802e-02 +3547 1.5087773464412699e+00 -2.2721213818383770e-01 -2.1991695667967268e+00 +3589 -1.6661958112810653e+00 -4.3898699727949566e+00 1.7062936896280863e+00 +3927 4.7283131828917355e+00 -2.6001609602242186e+00 -5.1272509615943935e+00 +3240 1.0402315070782830e+00 -2.9225407884820034e+00 3.4479406738341996e+00 +3546 -1.6072793228229416e+00 5.3453765503404904e+00 -3.1138330024924742e-02 +3801 3.9378494667715341e-01 -2.6580114463304625e+00 2.9257124354495817e-01 +4080 4.9471604810377290e+00 -2.1792808410801361e+00 -8.9330435560950345e+00 +3192 6.3796816943064352e+00 -1.4080799888808624e+00 -6.0324539253702749e+00 +3732 -1.2082244041154564e+00 -2.1688053424859004e+00 -3.4449532264714025e+00 +3748 -1.3885868577564524e+00 -6.9596077650112542e-01 8.9160123236261890e-01 +3909 4.6912794812717324e+00 -7.9515636216227725e-01 4.2949026672710495e+00 +3821 -1.2421306208200689e+00 -4.2393969439399060e+00 -1.8938468229633312e+00 +3588 6.9630513573751518e-01 -5.0295582930812035e+00 1.7259567792669253e+00 +3253 1.3632192537127761e+00 -3.0799245575523682e-01 6.8378687546854238e+00 +3712 -4.1898392164645575e+00 -1.0272466454162683e+00 -1.2334040454582447e+00 +3352 1.9694417969396345e+00 -1.1960379898320021e-01 5.9076778234501015e-01 +3656 1.0158240590265530e+00 1.0977299008147703e+00 4.3778452801703571e-01 +3271 -2.2432805420555861e+00 4.3062213306535702e-01 5.5280545267251178e+00 +3727 -2.9339666747553768e+00 5.1704548851790921e-01 2.2346839941961290e+00 +3090 -5.6041625090412150e+00 -2.0098367467576108e+00 -5.7391692445648657e+00 +3906 3.2295377703664445e+00 -2.2211886208346967e+00 6.0345797550330915e-01 +854 1.0999368780761154e+00 2.8190088937789568e+00 -4.5427932325620253e+00 +3864 -1.9209907590507207e+00 2.4828469405048872e+00 -7.0468772776063365e-02 +3963 3.8090853668710332e+00 -7.1475940154665007e+00 4.4578904729587698e+00 +3678 -1.0075218580411656e+00 -1.1723810414475693e+00 -3.6566037918292715e+00 +3190 5.3535971192027165e-01 -6.4557124978354015e+00 -2.7408804664015607e+00 +3690 -4.4146086051404937e-01 -4.6076138378286453e+00 -5.6825659088186455e+00 +3343 3.8383076371816855e+00 -6.3883955466794429e-01 2.2581329205865392e+00 +3832 -2.7550747744751076e+00 4.7257627293294373e+00 4.8438289904304606e+00 +3260 1.3252162896516819e+00 7.4021489683298358e-01 2.3093243513691930e+00 +3915 3.5322421114796032e-01 -3.0658679259645805e+00 -3.3219524330838768e+00 +4024 8.6799316600531129e-01 6.1990608231731246e+00 -4.0266284890920501e+00 +3451 1.2115658779452734e+00 5.7006424780647906e+00 -3.7887258971959215e-01 +3812 5.2951255345969699e+00 -1.6663113486000503e+00 -3.1884345482579934e-01 +3813 -5.4569350985405132e+00 -3.6309977646303797e+00 -4.2686999664588970e-01 +3283 2.2434290517890185e-01 2.7266111940163751e+00 2.2238743487793151e+00 +3129 5.4130228564002101e+00 -1.5851035925542500e+00 -6.3321486662631354e+00 +3286 2.2745782140066089e+00 2.8698133099580792e-01 -1.6340599905939155e+00 +3843 -2.3475633211991805e-02 -7.7232746164644372e-01 9.0028511161212208e+00 +72 -2.1201512476317799e+00 2.0557528356025392e+00 -9.3382090387468797e-01 +3235 -5.0207659309721997e+00 -1.4581146848459337e+00 -1.1462912775313893e-02 +3994 9.2782100392450828e-01 -3.8475570409374198e+00 -4.2212114149589670e+00 +3753 -1.6432059741028664e+00 -3.0846097387383740e+00 3.6501540410490172e+00 +3811 1.0918191621733833e-01 4.3865195459130177e+00 6.9689846022466746e+00 +4064 1.3690584423669061e+00 -5.9103111572269967e-03 1.2929035950722403e+00 +3536 -6.1973224734979429e+00 4.8007189526796026e+00 -8.8123916761798116e-01 +4090 -2.3351844974610110e+00 3.2101764208638914e+00 -8.9860009755544357e-01 +3250 1.0953443696430292e+00 1.7459964774048737e+00 9.5429733574548814e-01 +3940 -4.5315272209046267e+00 -1.4772016587220755e+00 -3.6489207738192486e+00 +3802 4.3150062515144043e+00 8.9364663295213731e-01 9.6363624938032122e-01 +4002 1.3362141870267268e+00 -9.9766691469427993e-01 -4.2105201264980607e+00 +3142 1.3205735460888506e+00 -3.3764295101013944e+00 -3.1239383577208901e+00 +3397 -1.5473539437561894e+00 -3.8421177168337106e+00 -9.6574384699893712e-01 +3358 -7.8551415746203601e-01 7.0616326378441574e+00 5.9245177151972754e+00 +4008 -9.2328063579180775e-01 6.5449439429809004e+00 -1.4683612831566397e+00 +20 -3.9698497974992666e+00 -1.3107654587709152e+00 1.4748991851623536e+00 +3507 -6.0587276178676053e+00 -2.4654875511503231e+00 -1.0379302268602890e+01 +574 -1.7736515312505932e+00 4.5502703246677214e+00 3.7383975776969551e-02 +3099 -3.5069367598372209e-01 4.7140798704403917e+00 4.1435157386053341e+00 +3360 3.2443596862033015e+00 2.6076046207792478e+00 -2.8705365774226692e+00 +3204 2.4403877703331406e-01 2.4263376231829656e-01 2.3267870422497618e+00 +3887 1.4571262860734531e+00 -4.6974797716295686e+00 -3.5446599844682223e+00 +4071 -3.6536849002150582e+00 7.6219544050129437e+00 -1.3409664568738306e+00 +3357 -1.7453029623068212e+00 1.7632224189620198e+00 -3.5474616382125963e+00 +3600 2.8370607037220175e-01 1.5425173180806497e+00 -8.4582013712562309e-01 +63 -4.7030008312068912e+00 -1.1346827149844294e+00 -6.4675422537742033e+00 +4067 -3.5619669925769326e+00 5.3994524696826192e+00 3.5749980732237394e+00 +3073 2.0573637749934952e+00 4.5248007471433151e+00 3.7523609266738023e-01 +3767 7.3076485678852632e-01 -5.7191104566492355e+00 3.1535683602378177e+00 +3080 1.9664072286901935e+00 4.4996573911775499e+00 2.5762199939340896e-01 +3354 7.5313359123727057e+00 -3.1384353505399747e+00 1.9443788214612885e+00 +3132 6.1983860563008788e+00 -8.1872623845671573e+00 -4.5886790437140297e+00 +3303 1.4134807467488282e+00 -6.5538048629369996e+00 -5.6735053417999259e-01 +3182 3.9093180488134820e+00 2.0342814646913014e+00 -1.1016909803831649e+00 +3421 3.2201172012638046e-01 8.1155303022287650e-01 -2.8986513778744656e+00 +3534 1.1601209361296742e-01 2.0174190794511939e+00 8.0605578038906900e-01 +3154 -3.1273520075068486e+00 -2.1220502802687253e+00 -1.6824182522906999e+00 +3966 1.7344401512048586e+00 -4.2385282650296763e-01 -9.1399469161282756e+00 +3185 -3.2497899345453072e+00 1.3615921820137544e+00 -7.6785084504649359e-01 +3336 -3.1960530616321248e+00 8.1481092268460387e-01 2.0312430148572047e+00 +3301 -1.9392093796352199e+00 -1.1037130485275763e+00 6.7391982226325178e+00 +3251 2.7714045803127192e+00 1.5552165538230018e+00 -2.6925933221469505e+00 +3930 -3.2945690503687510e+00 2.9085796631381755e-01 2.2590304636906784e+00 +3826 -8.9352019380571457e-01 -2.1726760634476645e+00 1.8468605175329549e+00 +4082 -1.0328078542208154e+00 -2.8128170283918612e+00 -3.6519389056103826e+00 +3879 -3.1816066604452460e+00 -4.5701818087161934e+00 -5.2723105555464391e+00 +3858 1.6814423056006729e+00 -3.8111403821032002e+00 -9.0102117570623930e-01 +3437 5.0862068439730939e+00 -8.0866320787141941e+00 -1.6910177843729786e+00 +3809 -3.3942775893159527e+00 2.1389279539951356e+00 1.7791285507199472e+00 +3209 2.8819189781605927e+00 -6.0743413552409162e+00 -7.1852124278932206e-01 +3532 -1.3673398834592658e+00 1.3037924594361514e+00 -2.1061457341583734e+00 +3562 -9.8997677895628591e-02 5.3221472729846910e+00 -2.3176874668514889e+00 +2784 4.5566053047381923e+00 -4.3760554594187706e+00 -5.3753459277836697e+00 +3467 -4.0975061215403630e-01 2.8642827197728762e+00 -3.2307110322389838e+00 +3925 9.0655005423086674e+00 -2.9737113084167333e+00 3.4880291320644852e-01 +3310 2.3433736602909397e-01 4.7711978800604964e+00 -6.1451186348194220e-01 +3528 2.0521368921084369e+00 -3.1992139385958601e-01 -4.7840596536362695e-01 +3521 -1.6049095655718646e+00 -5.1918230124308460e+00 -4.2162764948585414e+00 +3979 -5.9371992669132876e+00 -2.8228877340889023e+00 -4.0076884956815997e+00 +3549 -6.4899272304535893e-01 -1.8323565154780483e+00 -3.1228623588922835e+00 +3904 2.6513913510154463e+00 -6.2634169677327298e+00 6.4350469571908819e-01 +3092 4.4210633672437161e-01 3.8247330726194737e+00 -2.0959656420999164e+00 +3194 -1.4470370772218093e+00 3.4657071134973638e-01 5.0720337430406639e+00 +3650 3.6907348443703190e+00 1.3092709825673063e-01 2.9350329275280242e+00 +4030 5.3901334159642360e+00 -3.3469177080022701e+00 5.3765244841349773e+00 +3844 -1.9522838404489475e+00 -6.7024468585004193e+00 -3.7712246180617739e+00 +4026 -2.5599917813736410e+00 -3.6827545664653677e-01 -3.6724084088347650e+00 +369 1.8431369018662047e+00 -1.8284173474951015e+00 -2.7737590002352484e+00 +3897 1.3338271440260969e+00 2.0990855243130024e+00 -3.6205098584110544e+00 +3513 -2.9962151418492984e+00 -6.3057698977122401e-01 2.9106260252159104e+00 +3761 1.3992899707397546e+00 -1.7674692920434132e+00 1.9464681478667518e+00 +3470 4.3063676084917315e+00 1.1936830806996859e+00 -1.2671831499108357e+00 +3265 1.1249308763000725e+00 -2.2454942017674910e+00 -1.6842024016112405e+00 +4092 -1.4693022545979455e+00 -3.7248666567191586e+00 2.6666325551059571e+00 +3616 -1.8952585034101299e+00 1.6146690625598916e+00 3.0716115368050206e-01 +3341 2.1963440144502930e-01 -5.7127896816856649e-01 -4.3748152039303367e-01 +3191 -1.7536765661350113e+00 -2.0068205267069605e+00 -8.4260994159215985e-01 +3147 9.3691391770132060e-01 7.3325456320847957e-02 3.0403608130330060e+00 +3685 8.8699387525771362e-02 -3.8588393525156306e+00 -3.8485169328335047e+00 +3308 7.9163533316682988e-01 1.6463776956945344e+00 3.1372706854218779e+00 +3321 -2.0262677026975089e+00 -5.9775151996427542e+00 1.6837771809741475e+00 +3361 -4.0751658074744590e+00 -6.4465940667804817e+00 6.8719973544511725e-01 +4059 -2.1300946599608728e+00 8.5217901048056688e-01 1.0359288627892180e+00 +3395 -7.2963105082374247e+00 4.4331097548069387e+00 -2.1173979614060463e+00 +3982 -5.1530055249226880e-01 -4.9631701808732602e+00 -3.3709171621728634e-01 +4040 1.5244314758300046e+00 8.2688096984607018e-01 3.7978034315939532e-02 +3524 -3.2014035821574365e+00 -3.9538427738851958e+00 -3.4415996068655974e+00 +3503 8.5538117890477039e-01 -4.1499911931868716e-01 4.9624374058770151e+00 +3704 3.4025134334162441e+00 1.7116639071312980e+00 1.2130891922693083e+00 +3161 6.2549496214557401e+00 3.6925831505430944e+00 3.2404439250189996e+00 +3258 -1.2809236627313274e+00 -8.2206766792530611e-02 -1.6755046988157758e+00 +3544 2.9411574317224938e+00 6.3784659680932059e+00 -3.2773875615755427e-02 +730 6.3760446883680464e+00 -1.0168677935463477e+00 1.9006495549818334e-01 +3152 4.1736653708893741e+00 -1.3294601467468071e+01 4.5717367849948518e+00 +3686 5.8812604412755995e-03 1.5709584063101747e+00 2.8564636820262574e+00 +3627 -1.6918521594246250e+00 -3.8347575885334648e+00 5.5969472680736034e+00 +3317 6.0822177326655229e+00 7.6143086713403267e+00 4.3950785981116880e-01 +3134 -1.6458803273123286e+00 -3.8916097230458262e+00 -4.9926592273983195e+00 +3719 -4.5149427670033209e+00 -3.3968859502071256e+00 6.6087318246309215e+00 +3415 6.0332187775773187e+00 -5.2632563007983526e+00 -1.1520022746842129e+00 +3348 -5.1120383899241455e+00 2.0421692744309019e+00 2.5595962549002049e-01 +3519 8.9119841442316861e-01 -3.6242355931310786e+00 2.9645258963277863e+00 +3967 -4.5292297771911789e+00 -2.8023386218346578e+00 -3.2213409588719659e+00 +3141 -8.4379217315172439e-01 -4.6474276833862738e-03 -6.0323243682498227e+00 +3881 6.2764846447108100e+00 1.5974108755031011e+00 9.2557255553946813e+00 +3291 -3.2172469129438883e+00 -2.6980302040553874e+00 2.3523417495145797e+00 +3170 1.5442586012919157e+00 -5.0012004461801016e+00 -3.2216803121590201e+00 +3660 2.0643520085360292e+00 -8.3453765759512744e-01 1.1031724058274206e+00 +3917 -6.9583716081753053e+00 -2.1415605847172836e+00 -2.0995878211314976e+00 +3695 -5.9994439790596110e-01 -2.4702879349340883e+00 -4.7175049178414315e-02 +3278 4.4331415371335320e-01 1.3336618404377998e+00 -2.7086095347119454e+00 +3366 8.6024798757104137e-01 -8.1425291864573457e-01 -4.3610558160420476e+00 +3780 3.3994990068611597e+00 -2.5332927368264593e+00 -9.4323980737073113e-02 +3119 3.3404256737326725e+00 -8.2518918077372163e+00 -1.0553593873214238e+00 +3822 4.8856925584865269e+00 5.0168895493288490e+00 -1.6839347614639882e-01 +3234 5.8076192570647898e+00 4.4202300172183602e+00 -5.4821704543093686e-01 +3861 7.0733100684336880e-01 -2.7048544322438617e+00 -4.7677946880069350e-01 +3431 1.8572791830398563e+00 1.1167465593035502e+00 8.7283682719002069e+00 +3318 3.9396415649912724e+00 3.3971666298098091e+00 2.8101093879911474e+00 +3669 -4.1147977029324473e-01 3.9439115374200373e+00 1.9921382762000981e+00 +3948 6.5689169391056379e-01 -7.3693872157788012e-02 -1.4729756652208916e+00 +4022 3.5864909516570740e+00 2.4518692995778166e+00 6.0366645573919611e+00 +3237 -2.4847911447730522e+00 -4.4121525930083125e+00 4.8065264714391986e+00 +3540 -7.3360558435178302e-01 -4.7565059726276573e+00 -1.8617698161612806e+00 +3894 -2.3294311985268740e-01 1.9643194168786369e+00 6.6166978308908062e+00 +2832 -2.0204459136530364e+00 -4.5860339464148376e+00 2.2226490384197692e+00 +4063 6.3787640267867260e+00 1.4732524469846378e+00 1.6654351762364791e-01 +3207 -2.1611029921473670e+00 4.2719101635206851e+00 -1.8558891742969454e+00 +3969 -1.8456656823470623e+00 -4.6797355983108782e+00 2.8878354276022136e+00 +3504 6.6562828810845405e+00 1.8311775863286064e+00 4.2545006861737882e+00 +4004 5.5409641741612150e+00 -8.8094912944055870e-01 -4.3386928188369627e+00 +3566 -3.8187857329691149e-01 7.4337978422015816e-01 -3.4523865836844987e+00 +3983 3.5275189523030983e+00 3.5101588557958756e+00 1.8897194475784320e+00 +3743 2.8856359420638968e+00 -4.4754952360509490e+00 2.2547081076338822e+00 +3379 1.4586431311317466e-01 3.8208457287120643e+00 6.8267330984398917e+00 +3792 -9.9144681360249343e-01 6.8790496884150265e-01 2.4766053584817862e+00 +3796 2.6029739111652406e+00 4.9519330877712303e-01 -1.5279992501510302e+00 +3747 -1.2050306956359638e+00 6.0605618670498884e-01 4.0106823350254102e+00 +3346 -4.6458687770145870e+00 -2.5706863147456693e+00 1.3184288940331896e+00 +3426 2.4374600036584723e-01 -2.1768096364147757e-01 -6.1968533830926809e-01 +3806 3.0656241035387866e-01 3.7006446331386162e+00 -1.1492500890477186e+00 +3591 5.0947718321625805e-02 -1.2522462204349638e+00 -1.5100882802375606e+00 +3385 7.7792307462793167e+00 -6.7761315904372454e-02 3.2305075232862408e+00 +3701 2.3638899655866408e+00 1.9218536611356802e+00 -5.2561762576984385e+00 +3477 3.9720698897905660e+00 -7.0255113209359266e+00 -6.7123239083637343e-01 +3394 -2.0961803815934483e+00 3.8754554120348041e+00 -1.3253156563274726e+00 +3805 -5.9321055329993602e+00 -2.1294876513334158e+00 2.7185462398149891e+00 +3444 -9.9472483956727942e-01 -2.1833946812313179e+00 6.0216254075768996e+00 +3284 3.1186637698414077e+00 -2.1361056714872637e+00 -1.4658206689393862e+00 +3475 5.6116473360400165e-01 3.3061978344029835e-01 3.7327886413488143e+00 +3479 1.4303114068590304e+00 -5.7967474956973373e+00 2.9225609104871979e+00 +3682 3.7776687961881289e-01 -5.7078986625156958e+00 -2.5153678094117810e-01 +3151 2.2496333926930911e+00 5.6028989571200389e+00 3.6861282119493417e+00 +3180 2.5791285412489531e+00 5.6980667074399918e+00 7.0536409649899232e+00 +3391 -3.4518765349073215e+00 -3.4550776966286003e+00 -6.3010127231663382e-01 +3831 -1.7325121786088753e+00 -1.5640344033509994e+00 -1.3097418483273779e+00 +3275 -3.6449198295979235e+00 -1.9421268049778133e+00 6.4207856675583752e+00 +3516 -2.7061458934959166e+00 5.9251540382528267e-01 1.0431430288800760e+00 +3762 4.0841913279954900e+00 -3.6862634470485034e+00 2.8122917240575975e+00 +3214 9.3544441582904234e+00 -1.7357887941031152e+00 -1.1930310626090774e+00 +3751 9.9611127642284885e+00 4.0302641710839602e+00 -5.3577231180508900e+00 +3952 -2.9451035894122266e+00 5.1365955400331007e+00 5.7381020560370262e+00 +312 -1.7477213851733875e-01 2.2455455919134906e+00 -1.0723283397300287e+01 +3908 -8.1954717413326966e-02 3.0738648765555237e+00 5.3915862628551459e+00 +3965 -5.5156446240895942e+00 -5.2326545047680408e+00 1.4312214194031929e+00 +3172 1.7805193616895754e-01 2.3241943721251022e+00 8.4266631138732551e-01 +3400 3.8962128449471258e+00 4.9470612924256080e-01 1.1436814849313166e+00 +3745 -1.2278625043518974e+00 3.6301038988986938e+00 -1.4203506144719218e+00 +3296 3.1383759228606758e+00 -4.4195656572534050e+00 3.0670358976220385e-01 +2240 -9.9050973554099336e-02 1.3188451963823105e+00 3.8212389703736105e+00 +3681 2.0279310553249497e+00 -6.6141357837429138e-02 -1.8535791601562723e+00 +3975 -3.3952092281257515e+00 -3.9427656012960148e+00 -1.5278496033137856e+00 +3492 4.6718039528667115e+00 6.4415463006681897e-02 -2.3193123894081871e+00 +3124 6.0893847411651825e+00 1.9219287652445454e+00 4.1551043797969793e+00 +3210 5.3980763167444117e+00 -1.2380654572513259e+00 6.9650968643400288e+00 +3417 -9.6326452649265273e-02 -6.7056011919303316e-01 -1.8553498710896255e-01 +775 -1.9877576697696808e+00 1.2307276855294651e-01 -2.1749975173464335e+00 +3823 2.3662757758130848e+00 -1.0535628463008553e+00 -6.7169429402198233e-01 +3793 5.5498498288111051e+00 6.7431805597429832e+00 3.9186573543244285e-01 +3702 -1.2886840455001376e+00 2.7221034670460882e+00 -2.0073309751063728e-01 +3755 -8.6668900021241457e-01 -5.6866344659376207e+00 1.7644489659935898e+00 +3583 -4.4803949803043902e-01 3.2487757672539797e-01 -2.3258392977783267e+00 +3386 3.3435747606835409e+00 -1.7645821821782517e+00 -3.0839377405224533e+00 +3929 -8.3168691386960281e-01 -3.5306756404562658e+00 9.0392837489240598e+00 +3387 -1.6168814759887522e+00 3.2544030241992643e+00 -1.1707604211129932e+00 +3561 -2.5626769740209663e+00 -3.4827073216029234e+00 -4.1885586713327910e-01 +3950 8.5678435401950614e-01 -1.9630902052826167e+00 -2.2956887301854394e+00 +3852 6.3319670628748508e+00 -1.3263263409439525e+00 3.5798323528016784e-01 +3328 5.4421693858736857e+00 3.0892092690470077e+00 3.4587158327620959e-01 +143 3.6936463234010266e+00 2.3115665584610747e+00 -6.4919875384694450e+00 +4017 4.6509731273830415e+00 -3.4776589514517044e+00 2.7810872584796060e+00 +3526 -2.6209324397506539e+00 -1.1370206045261147e+01 3.3047083076696269e+00 +3594 1.9531645898011678e+00 -3.2113730464639203e+00 -4.5354401179357797e+00 +3422 -1.3198079515203904e+00 7.2466423390114798e-01 -4.2965872194524719e+00 +3874 -1.1998013486101193e+00 3.3587945067486347e+00 -5.3396406346844110e+00 +3430 -2.7867569105367003e+00 -7.3149394478428418e+00 3.8470621290750839e-01 +3867 5.7870476976600154e+00 2.6875214343250007e+00 -2.1138945257509740e+00 +3345 -6.0775824001970822e+00 -6.9140688065869327e-01 3.4141869111640162e+00 +3248 -6.2419211082937043e-01 -1.3916013738509347e+00 3.9429952465795228e+00 +3981 8.3987924710552153e-01 2.0409035643734694e+00 6.5671276083626280e+00 +3949 6.7663053229895871e+00 2.7399901304733580e+00 2.8517917256596865e+00 +3869 3.4149124905302330e+00 3.0802981524889259e+00 3.0745317913023249e+00 +3464 2.2294043889747797e+00 1.0222013837170798e+00 3.1785238289009450e+00 +3364 -1.2338678837631005e+00 -2.0976687514864403e+00 -3.0817245721316828e+00 +3244 -6.0209370668555340e-01 3.6144169099915664e+00 -4.4813185542373724e+00 +3197 -5.1257872995961478e+00 -9.1057984447990012e+00 1.9038767081438714e+00 +3199 -1.8055924616206958e+00 -5.2958859517349008e+00 -3.1206093875366410e+00 +3402 -5.5900390844494225e+00 -3.1883494550259206e+00 -2.2057034558235626e+00 +3520 5.8250778292341652e+00 1.5382683955324783e+00 2.1495858657473081e+00 +195 -7.1478263371936368e+00 9.6548229347501746e-01 3.0510449416652095e+00 +3640 -5.3808525579752535e+00 -4.2049849963826853e+00 7.6769968799424531e+00 +3798 -3.9861939598852727e+00 -2.9228329362287764e+00 3.1474666695721023e+00 +3163 9.4157627030613045e-01 -2.3297951439992381e+00 1.8347000462549934e+00 +3098 1.7046030951283653e-02 1.9197794910693164e+00 -8.5925032674175661e+00 +250 1.4361058025000064e+00 3.8196229416476029e+00 -4.4168345658678015e-01 +3200 -3.0994283669084202e+00 -9.3886248547429652e-01 -2.7231085245390946e-01 +3094 -6.0360960119672258e-01 -4.6169382805211328e+00 1.6410142791825204e+00 +3683 -8.5405671025496854e-01 -3.2333008487319725e+00 2.6474284667589170e+00 +3665 -2.1628662106811487e+00 2.3113184303554610e+00 3.2920052967632709e+00 +3885 2.7176955383527335e+00 -3.4569994447594907e+00 -2.5165256796812030e+00 +4093 -1.4993340545132705e+00 4.2437086352140980e+00 3.9990327246716375e+00 +3946 -1.8838437286499232e+00 -1.7102060664615530e+00 2.2204399069624534e+00 +4018 -1.2678323857068563e+00 -1.1508619830272375e+00 -1.0559819024406278e+00 +3288 -1.4054394667367047e-02 6.8469342338584283e-01 -3.2072032778078938e+00 +3439 2.8542439499167758e+00 3.8980865147718742e+00 7.6215202733354165e-02 +3347 7.5692970958081210e-02 -3.9767748947504934e-02 -2.7926573489656472e+00 +3998 1.0027894662970440e+00 -6.1730920106493654e+00 1.5001560922443462e+00 +4003 -1.1460637474593133e-01 -3.9396571834069523e+00 2.5443106409430012e+00 +154 1.3254761609532870e+00 3.5284028158009297e+00 -5.7244936587705553e+00 +4062 9.3374266574373987e-01 -8.6326532441389892e-01 -1.7953717377384810e+00 +3571 1.9808367137369998e+00 1.1289511154428304e+00 -3.1989879930226004e+00 +3715 8.8661193115424708e-01 -1.3691947666920518e-01 4.2781229839888901e+00 +3264 2.2367131899824781e+00 8.4868666138145932e-01 -2.2618077932741811e+00 +3539 1.0449186556725523e+00 -5.3290828137949049e+00 -6.8617926789850356e+00 +3830 -7.9485155984820750e+00 2.1590349907242978e+00 7.5508610548858568e-01 +3671 1.5819296607783919e+00 4.2876057986513683e+00 -5.1848303428704003e+00 +3905 -7.3865629207162957e+00 3.2320465926209065e+00 1.4294421890377234e+00 +3110 1.7580905443459505e+00 3.5585183967220972e+00 -2.6245282381707686e+00 +4034 -3.6833364694567488e+00 1.6528645432352718e-01 -7.7101294986155722e+00 +4087 3.5870023249552720e+00 4.0530715372575177e+00 8.0571390362769657e-01 +3453 1.1833041833052718e+00 -5.6564330224189352e-01 3.9979031799511655e+00 +3568 -3.3432283794382971e+00 -2.1638715225981624e+00 4.1532231927730312e-01 +3672 -6.9368066423498407e+00 -4.8962030583777993e+00 6.4869420282103398e+00 +3329 5.5534609195996276e-01 -4.1294705532163052e+00 3.1185932545997006e+00 +4078 -8.5145411083439237e-01 1.9937764712704400e+00 -3.5201253607843968e+00 +3268 3.2935955171064346e-01 -2.5117068579429209e+00 1.5431070974419997e-01 +3836 1.6210579116282327e+00 -6.6343693440830953e-01 2.7183449240412365e+00 +4037 -6.2994182003951227e-01 -8.4995838686866076e-01 3.4077799971579732e+00 +3312 1.9193622401060842e-01 -1.8069938582016791e+00 3.2877665493033481e+00 +3509 -3.7500678048583498e+00 6.5675174574373187e+00 5.0893366529963568e+00 +3501 5.0256983715474079e-01 2.2469281277997335e+00 -3.2846636234090658e+00 +73 -7.4969937634452322e-01 1.8781432805944791e+00 3.6029790345887767e+00 +3691 -3.6418824798916285e+00 -6.8666302460052471e+00 -1.5894453301949241e+00 +3817 6.3791307046397394e+00 -3.3495288287093619e+00 -4.8956000562059980e+00 +3606 -2.8913725270089685e-01 1.2045128808411669e+00 2.3987129032715648e+00 +3368 -2.9342047107263047e+00 2.1471049458332638e+00 -7.2283307633322051e+00 +3555 2.3869378409587458e+00 -7.4752273352153376e+00 2.8854424521810249e+00 +3490 -5.1500797203539532e+00 -2.1993580120147967e-02 5.5138371073860002e+00 +3968 4.9621867854584014e+00 2.5763854846055483e+00 5.2751772066222493e+00 +3435 -2.7080378098697153e+00 -5.2406789240719860e+00 1.7075031741888194e+00 +3626 9.5077185329851066e-01 -2.1478943985991339e-01 -9.1113087467708487e-01 +3740 8.9567785580306425e-01 5.3634965460819251e+00 4.1579275852164246e+00 +3208 -3.5058624347995460e-01 -2.3500933923230116e+00 -4.4445524277993504e+00 +4085 -2.8909321713142426e+00 3.4203881074729714e+00 1.1872744329890696e-01 +3973 1.3736328916691818e+00 3.3177713089125564e+00 1.5489913696293898e+00 +3936 7.7242922462205488e-01 -2.5794615661747771e+00 4.8833581061760842e+00 +571 8.4705521297667985e-01 -2.2690882733742308e+00 3.7662497212276462e+00 +3866 3.0016018885508489e+00 6.0892250273721356e+00 1.8550915803648846e+00 +3314 3.9992735432759932e+00 -3.2736532622329473e-01 -4.5642726358447181e+00 +3833 5.4216598030432657e+00 -1.2433864202051708e+00 1.9419468299201346e+00 +637 -7.3317367445003399e+00 -2.1127472650787849e+00 -2.8336921387366023e+00 +3229 1.6723591331331686e+00 3.9595099096291446e+00 -2.0029494320538905e+00 +3405 4.4584293466599414e+00 2.2621560454877265e+00 -7.7325267542766412e+00 +3776 2.5870848754180151e-02 -2.0490563364447354e+00 3.6151293169849126e+00 +4015 3.3119422296985062e+00 1.1375751475562141e+00 2.0660186081793266e+00 +3634 1.5395250368719013e+00 2.0401279435943951e+00 3.4491362699320103e+00 +3842 4.4284016764114291e+00 -3.2769467040305944e+00 -4.1947754328984361e+00 +3083 -6.8840243176838412e+00 4.5868348012524072e+00 -1.7290956396959885e+00 +4045 -3.9744723119629342e+00 4.3720199838902243e+00 -3.2174955383982389e+00 +3169 2.0690587499851656e+00 2.0862906837187922e+00 3.2487032043258184e+00 +3487 8.9998406551172072e-01 4.0379764166209773e+00 -5.3567646568907890e+00 +3398 -3.1715444321937682e+00 -6.1666161218676772e+00 9.4317268379351715e-01 +170 1.7011407370774894e+00 -3.0311439247860450e-01 1.5440834173686409e+00 +3637 -9.1734553840163411e+00 6.2405725664950958e-02 -1.1688778051505866e+00 +4046 1.9390495013073494e+00 -2.4778204560918065e+00 -1.1398076054619357e+00 +3243 5.0832362716989223e+00 -2.1805418091155677e+00 -1.9402203684999966e+00 +3703 5.6192898250997614e-01 -4.5917013279301404e+00 5.2852414108751855e+00 +3610 2.5203250782807585e+00 1.4302131698697071e+00 -4.4152277304460708e-01 +3791 3.9365426251280100e+00 8.9650094224003976e+00 -6.9617094256293111e-01 +3574 6.5342445022869535e+00 -2.7167018707998221e+00 1.5443611812065681e+00 +135 -5.4754687312369272e+00 -1.6882979954097586e+00 1.4256396424119413e+00 +3122 2.0224255871709667e+00 1.9534479997012493e+00 4.8331563586703513e-01 +3298 4.5804864836513204e+00 -1.3807321026039832e+00 8.3127570211472390e-01 +3935 -1.8991686762281843e+00 1.1977696848031811e+00 -5.0236894361347693e+00 +3165 -4.3335734562046380e+00 4.1803086210535412e+00 1.8276939838765491e+00 +3419 2.5357248822986365e+00 -4.5182798603247774e+00 8.3865530139124012e+00 +3771 2.1989264288246746e+00 9.3728595075805359e+00 -1.4640526092369870e+00 +4076 -6.0521713867796825e+00 5.2163848808214732e+00 2.8393799286348380e+00 +3978 -3.6407106801615785e+00 -1.5048403132543964e+00 -2.7905743949803687e+00 +3460 -9.0816785389076005e-01 2.4290224952871537e+00 -3.9719955605301065e+00 +3789 -7.6931801599271210e-01 5.0711208851206351e+00 3.4357274786717835e+00 +3742 -2.6614787527233257e+00 2.2435171574944579e-01 -1.6476132749380364e-02 +14 -9.3324125526899226e-01 2.4885171328442723e+00 7.9957475936625311e-01 +3186 -2.5407078393147282e+00 -2.5001541259937712e+00 1.0167914524737172e+00 +3890 -2.5917851461044537e+00 -7.3964305188303880e-01 -1.0584526975206123e+00 +3730 2.1482647149612148e+00 -8.6771810193728116e-01 7.5578097301925782e+00 +3673 7.6197709110089429e+00 1.7282191406029894e+00 1.3497557268892493e-01 +4051 1.9020673529980357e-02 3.0027889546741795e+00 -2.8172357521819824e-01 +3178 -4.1490245671513790e+00 -4.8035456012874471e+00 1.9136036843978219e+00 +4048 6.4890370223772731e+00 -4.8983648919801990e+00 6.8192343089026917e+00 +3078 -5.7211730517418466e+00 -2.8834667762235182e+00 -9.0447081170753201e+00 +3108 2.4731032791390399e+00 -1.6528878829554930e-01 3.0602639661100013e+00 +3106 2.1027974351155150e+00 3.4545484296992681e+00 6.1336482785376212e-01 +3775 9.7451755946583327e-02 2.6385918754368825e+00 3.3938257098934788e+00 +3102 -2.7141309666090225e+00 -3.0924255964467107e+00 -5.6110705648202259e+00 +3657 3.7399378518557911e+00 -2.1179296563936081e+00 -6.0404217717451987e+00 +480 -3.4524498107407577e+00 -8.6324073117984845e-01 -1.5407513448206718e+00 +3252 -2.4081140427975617e-01 5.1960567984957917e+00 -5.3533708208922803e+00 +3896 -1.0053427591203865e+00 3.9539265621427320e+00 -1.8727316664528597e+00 +3457 -3.9876209412581112e+00 3.1940368344112229e+00 -5.1040615932828794e+00 +3815 4.8798118490262690e+00 -7.9653034453033875e+00 -1.6307210589509986e+00 +4042 2.4322245736727059e+00 -6.7302578632120609e+00 -9.5207394290036573e-01 +3139 -1.0057714230486430e+00 3.4345338566316705e+00 -4.8386763338529057e+00 +3320 -3.5141911265545582e+00 -2.1395982085384069e+00 1.6761257243602001e+00 +3285 -1.1153046611949937e+00 2.9539058626977810e+00 -2.4783972969415049e+00 +3924 -1.6834418701341074e+00 -4.0520958495129289e+00 -2.4581849724564991e-01 +3888 6.1743927471959710e+00 6.3340249490412537e-01 2.8456431496914520e+00 +3302 -3.5859104080495130e-01 4.4476368146939054e+00 7.5313444253980580e-02 +3907 -4.4203630644291598e+00 -9.9806558031243697e-01 -3.3133825978935827e-01 +3280 -2.9580269583504171e-01 -2.2402466266885721e+00 4.8847802354135457e+00 +3614 -2.6728990269222366e+00 -2.6231378063893613e+00 2.1784388600037610e+00 +3077 -9.3543307658570356e+00 4.0545191958869511e+00 2.5923796545380910e+00 +3916 2.8561231918597532e+00 -1.9262117550170181e+00 1.8563060542880339e+00 +3611 1.6297742024306283e+00 -2.9755787839432664e+00 -4.6698216508089265e+00 +3331 1.0612799827037762e+00 4.5247968976030348e+00 -3.4747117716024190e-01 +3636 4.0896781137203337e+00 1.9976437799904110e+00 -4.0370412107349187e+00 +3370 -1.2746145353434063e-01 -1.0595310155745929e+00 2.3872568767971134e+00 +3393 -9.8727201735286166e-02 -4.5511955339098629e+00 1.5652513641238355e+00 +3598 -3.0069969666269558e+00 1.7355214688604661e+00 5.1857235394503508e-02 +3294 1.0623663466604951e+00 2.0160725736235485e+00 8.1945976622245880e+00 +3731 4.3468880034515793e+00 1.1390723014937398e+00 1.5464168143476567e+00 +3103 -3.7792230838035938e+00 6.3350072539278557e-01 -7.2961332796798581e-03 +3774 6.8531948637318711e+00 2.7545442749572280e-01 -9.0120772980336419e+00 +3412 -4.0491353521561848e+00 8.1584128108723009e-01 -5.0016544987296623e+00 +3338 8.7515487531887848e-01 -1.5797099861077668e+00 -6.5016242584015869e+00 +3707 -6.1387955154428440e+00 1.5911136427445474e+00 4.3313246959472531e+00 +4083 -3.8891467440593268e+00 -2.6837431596257741e+00 -5.2858797141740055e-01 +3344 2.1548899332831351e-01 2.6707172403314478e-01 -8.6486221902148697e-01 +3596 4.5870700377929001e+00 -2.5294625312950205e+00 -9.9114330118628502e-01 +4056 -7.1516054078688622e+00 -2.5419645714157886e+00 -2.9223148205567342e+00 +355 -2.8469691981866783e+00 1.4097577916739414e+00 2.2845916787491838e+00 +3886 6.7106575501045755e+00 -2.8823134252134310e+00 4.2668619674523214e+00 +3249 1.1873668843907907e+00 4.6378512987048595e+00 3.1145511800411652e+00 +3216 -2.2109820479296514e+00 1.3656629630957864e+00 4.1021558813843297e+00 +3217 3.4160452983843523e+00 2.4159917252520464e+00 1.5858111667126915e-01 +3639 7.4915512491840515e+00 2.2792874386126503e+00 1.8939133168311932e+00 +3814 -1.9281542564065774e+00 8.8545857000991601e-01 -4.3674933884359115e+00 +3459 1.3631412326707562e+00 -2.7767349396127603e+00 4.8644968854159947e+00 +3552 2.6906338573301675e-01 -5.3745510489245607e+00 -1.1523085369785302e+00 +3565 6.1668432097293415e+00 6.5574099360886908e+00 -5.8229278304875560e+00 +3961 3.4458347805866509e+00 5.1225250718163329e-01 -9.3398980260306652e-01 +3772 -2.1934226752659187e+00 -5.3726668860309497e+00 -4.7399729753068148e-01 +3117 -5.7864090373432564e-01 -5.8697963493275616e+00 1.5311148631245677e+00 +3497 -4.3230078230233039e-02 5.7485893207953573e+00 -7.4010297520507551e-01 +3891 2.2260340220623021e+00 -2.7298897891026086e-01 3.4326079705610488e+00 +2769 1.7600817453593784e+00 -5.1495628841309751e+00 -2.1808241934874942e-01 +3820 8.4670922937547370e+00 -2.3233420183741030e-01 4.4851357928229936e+00 +3355 -2.5304070055980792e+00 6.2780923696925894e-01 -2.1971306177887286e+00 +3323 8.4824903723548040e-01 3.9875217510571801e+00 -3.7868115888606093e+00 +3287 -1.3916685503909867e+00 -3.8837579392349273e+00 1.6306336196326103e+00 +3149 -3.1048266453813822e+00 3.4050121067627814e-01 -1.5708336318607443e+00 +705 4.2281224759887648e+00 8.7265392282486573e-02 -1.4507449726352297e+00 +3714 1.1419866353799570e+00 -6.5493374801352209e+00 1.0616448686454223e+00 +3752 -9.7394491903306157e-01 -1.8122471806332663e+00 -8.0423128871115512e-01 +4025 -1.3258755228056489e+00 3.9684845641051063e+00 -3.7462833709569128e+00 +3893 -2.2998535831721871e+00 -8.9569339771414480e-01 -2.2072928398246381e+00 +3432 2.3222050173312399e+00 7.6973535261387003e+00 8.1593532821222663e+00 +3797 -1.7423782070559284e+00 8.1878809074064485e+00 1.0555909181409036e+00 +422 -3.0530622738845139e+00 5.8243182979020391e-01 -5.4512698076113530e-01 +4019 -4.2990721202928626e+00 -3.1583942020870501e+00 5.7551670137697784e+00 +3803 -8.6017927238073355e-01 2.5083523091559146e+00 1.6981250491015718e+00 +3101 -9.4983376152174681e-01 2.1550096432294317e+00 3.0232923918297132e+00 +3587 7.0460179491837771e-01 -4.9677079658929273e+00 2.6906879787936786e+00 +3911 3.2120557103396155e+00 -1.3532505040138559e-01 5.8339734752235444e+00 +4058 1.5593750806896436e+00 -3.3572369987019930e+00 -1.0748344782651993e+00 +3883 -2.1905637071675073e+00 -6.0970182744598480e+00 -9.7913750792926990e+00 +3698 -1.0243090442286573e+00 -1.8303958350570534e-01 -2.2158669784859577e+00 +3937 4.3172719699954953e-01 4.1175541786671693e-01 3.3462255733171395e+00 +3413 4.6964540954608731e+00 -2.4969404506602064e+00 -3.4118095669888469e+00 +3380 2.9548903839244205e+00 -5.6180893702945536e+00 3.3971801079149144e+00 +3661 9.0223627832074249e-01 -9.4377080697513505e-01 1.4694059177803236e+00 +3638 8.4512912391567436e+00 -1.2429253804415814e+00 4.9235907960970655e+00 +4000 2.1438034603049512e+00 1.0130570805092907e-01 -9.1774491894928867e-01 +3515 -3.7624511610653864e+00 -4.9427975918789180e+00 -1.0137674042968736e-01 +4053 -5.6742550575478043e+00 -3.0114575182940739e+00 1.5088479745225067e+00 +3166 -5.0535010477325901e+00 -9.9599946558922914e-01 -6.5383387801142110e+00 +3783 -1.7955406905523250e+00 -5.6147516833001463e+00 2.6594421586338739e+00 +3224 -2.4611633609889254e+00 1.0782899051274432e-01 -3.9406918126181329e+00 +3947 8.0223237070898765e+00 1.1386221762159254e+00 -6.3325633134577757e+00 +3455 -3.6326991771122119e-01 3.0040392729008296e+00 1.5832768526528418e+00 +3414 -3.5439506165423946e+00 3.0947626059770634e+00 4.5003830639932980e+00 +3956 3.7395384538877791e-01 2.8839753734604723e+00 2.6373490969983977e+00 +3241 -2.0272151780111600e+00 -2.8444960698329256e+00 -3.3629321105506111e+00 +3726 -2.0007262673256792e+00 -1.0320818046993157e+01 2.0192960177651007e+00 +3484 1.2108192648199392e+00 3.5829015601230157e-01 -2.2393224896851893e+00 +605 -2.3435582722025154e+00 -4.3239296919317480e+00 -4.6172620458973741e+00 +3436 1.8398143976668786e+00 7.0100703412890510e+00 4.6712121378314148e-01 +3411 -6.4454558913852482e+00 5.1168435739189482e+00 4.6225091938229967e+00 +3326 2.4348223215100062e+00 1.4887447620690926e+00 2.7694109916470993e+00 +4075 -5.2629104504993274e+00 2.8341604632917456e+00 -1.0299318128276245e+00 +3168 -6.4523828374157088e-01 -2.0152456062250863e+00 3.7318963361635951e+00 +3189 4.2639924035438428e+00 3.1130822638894107e+00 5.1872408360264677e+00 +3556 -9.4987859025652721e-01 -4.0805284659170624e+00 5.1982493026540917e+00 +3376 -6.2720968562751844e-01 2.5465741161696478e+00 -1.2232161874065053e+00 +3663 3.3754625223410235e+00 1.1411717229171268e+00 -6.2724626638299972e+00 +3958 1.9521299138339316e+00 2.3034561641664575e+00 -3.0990744175346872e+00 +3835 -2.3006139352859996e+00 -3.5734370318746560e+00 -4.6625984111316833e-02 +3970 2.0170546392143702e+00 3.6823773112342608e+00 1.0068067500855460e+00 +3088 1.3359735704753783e+00 5.2639618273799185e+00 -7.7139655892801384e-01 +316 -1.9629073625085676e+00 -5.6185178601843777e+00 -7.1232717120485534e-01 +3433 -4.9859087090104537e-01 -2.4251781981529303e+00 7.1518267817598444e-02 +3340 -1.7351958122396161e+00 -2.3942402360765422e+00 -3.7370964231297132e+00 +3353 -7.9345513654384536e+00 3.3045979430807932e+00 2.2000973063556302e+00 +3722 -4.1740597229954561e+00 3.9672687247409111e+00 1.6016810190708586e+00 +3496 -2.8878073289431248e+00 7.9655578708927699e+00 1.0277502587201739e+00 +3603 1.0355156082751540e+00 3.5905389319220742e+00 -1.5712758173671720e-01 +4036 -3.6450821732379604e+00 6.0533675696503053e-01 -1.2129579684095031e+00 +3510 4.0260311128104913e+00 -3.7835514000744288e+00 -1.4616040194900262e+00 +3862 -1.2630882458166917e+00 -9.5545264601342039e-01 -1.2657618388493523e+00 +3768 4.2800843613798687e+00 -1.8496007744067633e+00 -1.1537982768531934e+00 +3372 -2.7225848965995336e+00 -2.6576063176097238e+00 -2.0637783390386937e+00 +3569 -2.7167190167387529e+00 5.2494085827822090e+00 4.6148999031920879e-02 +2673 1.0710913737433463e-01 -8.9650578725467100e-01 -1.4936361382416357e+00 +3262 4.3263344950374352e+00 -1.1178816640044056e+00 -3.0277528778282266e+00 +653 4.8309267515549390e+00 4.0659229262023420e+00 -2.6073063739588971e+00 +3115 2.2868125309293208e+00 -1.6685372200510009e+00 1.1454884322998671e+01 +3784 -7.0984645297452753e-01 1.5515493655885240e+00 2.6089682642774368e+00 +3333 4.9328845279704172e+00 -3.6247912157402027e+00 -4.4561335705374827e-01 +4065 2.8545709007994984e+00 3.3244652461275308e+00 6.9190782866104494e-01 +3351 -2.3684160286652141e+00 3.4986750849039588e-01 -9.1654897949963114e+00 +3647 1.8354800857462497e+00 1.0680485755075889e+01 -2.7825961151712089e+00 +4077 1.9345940296570694e+00 -1.0411047226224852e+01 4.9127961130159553e-01 +3581 -9.0262807177432750e-02 2.1987688737751991e+00 3.7787881137319630e+00 +3592 1.8205842795408897e+00 5.9569530703255600e+00 -2.3017128190723271e+00 +3601 -2.8551101474380354e+00 -4.8468060986233841e+00 -6.9097799374833579e+00 +3233 1.0700363590911921e+00 -1.3654938680862165e+00 4.8555152444037510e+00 +3841 -1.3944356850670456e+00 2.8035027926629246e+00 2.5109738148018956e+00 +3899 -3.8160443572331739e+00 4.3627652141263544e+00 4.0125028901393378e+00 +3737 3.1899312581896742e+00 2.3459898490042237e+00 1.2674097026651194e+00 +3629 2.6459048297192020e+00 3.3141290949742270e+00 4.4435610197434547e+00 +3804 -2.8566672888947240e+00 -1.5987406913925089e+00 3.0378774178536205e+00 +3557 -5.1664984195297610e+00 -4.1445466243516220e+00 -4.0107401971359540e+00 +3554 5.7869401039070754e+00 -1.9325045377571550e+00 9.7728689612789787e-01 +3713 1.6219386536943836e+00 -1.9771723574510611e+00 -3.8990787277863692e-01 +3184 1.1117002230508337e+00 -2.1270692774643387e+00 2.7816125718857672e+00 +3474 3.5030693691038626e+00 4.7253377107750056e+00 -1.1771335642522145e+00 +3649 4.3465287183389636e+00 -1.6515999264414276e+00 -3.8659127664530688e+00 +3607 -4.7533831232832915e+00 5.0074309241449146e+00 -6.2614843403543918e-01 +3188 9.8823153941486352e-01 2.0714939763876119e+00 2.4607661174375690e+00 +3889 2.2802436466148324e+00 -2.1294339291417441e+00 2.3746487157817486e+00 +3838 4.2318427896147579e+00 8.3125785978149906e+00 -3.2223889334475584e+00 +3093 -4.6810936124217948e+00 -1.4413696280873887e+00 -5.0196483976695561e+00 +3482 -4.4292438742873036e-01 -1.2922118195339320e+00 -1.5232279489341152e+00 +3091 -6.7646772834922944e+00 1.9814011167364554e+00 -1.7720940702742258e+00 +3483 -3.3996264275249342e+00 3.1570571487123420e+00 2.1477892579448614e+00 +3081 -6.6181305662608239e+00 1.7776125060201635e+00 7.5299563535862313e-02 +3187 1.4313534999711621e+00 -1.3550079019014896e+00 6.9344037122960955e+00 +3799 -1.0112500783956135e+00 7.1430096594364247e+00 -1.0273130504046941e+00 +3322 4.3983406168240373e+00 2.6117278229177674e+00 -4.8837238181571557e-01 +3655 -1.4705364002030252e+00 -1.4743956299855889e+00 1.2843343560802332e+00 +3662 -4.3579884516807077e+00 7.5876827817077537e+00 1.4417640263076295e+00 +3986 4.5344232896777168e+00 3.9505706330790678e+00 2.6063800645554109e+00 +3819 -1.1692175330411716e+00 -1.3016275480940902e+00 -9.2434678348972998e-01 +3997 -2.6286326961059321e+00 2.3850960139747208e+00 -1.5142389118871300e+00 +3183 2.9296851106627814e-01 -3.2442803991395510e+00 9.7366510653245675e-01 +3306 3.5818270919389352e+00 -3.5750612112734284e+00 1.4443826121511154e+00 +3560 4.3738909954356853e+00 -4.8125052127138943e+00 -2.5211912623104720e+00 +3085 5.3475882301508628e+00 -4.2408022628023092e+00 2.8635136565717958e+00 +3635 4.4614680716667365e+00 6.2902271235152298e+00 -5.0718257577217107e-01 +3697 -2.3133908750710659e+00 4.8943513150812494e+00 1.9433222354694877e+00 +3850 -2.3520082780840483e+00 -4.1382139646522829e+00 -4.2313549631213059e+00 +3572 5.2887124760018267e+00 -4.3056356137804634e+00 6.9026361811244985e-01 +2624 1.7265686526178390e+00 -1.5412180689889587e+00 -3.0934661542201152e+00 +3807 -5.4848006405032041e+00 2.8242358170289159e+00 4.0218318776038071e+00 +4057 -1.9436173231502683e+00 -6.4379617617013585e-01 2.9422585763085856e+00 +3575 4.8405797034935167e+00 1.8151525525656706e-01 -1.7336806690066728e+00 +3533 6.2985102473952148e+00 -3.8737828734077979e+00 5.9554831944004860e-01 +3749 -2.3060762715548426e+00 -1.5566670264415590e+00 7.6409930776677175e+00 +3628 1.1047697174211357e+00 4.5872009773756268e+00 -4.3312248695892714e+00 +3463 -4.0202543908176064e-01 1.0543123597897606e+00 -4.5095953260218593e+00 +3339 4.4461045576277334e+00 2.7023074862421219e+00 6.5761907532557173e-01 +3605 -1.9130986635970524e+00 3.9668547188660113e+00 -6.3242395502805584e+00 +3643 4.2561654139359133e+00 2.7079886942829829e+00 2.7399717274611493e+00 +3679 -2.1411701998224424e+00 -1.6132315381071032e+00 7.2516729511827427e-01 +3324 -8.2027537927136707e-01 -2.7694148205687066e+00 2.4736641085737388e+00 +3274 -4.4417852313637960e+00 -3.1061873476270003e+00 -4.2202494315305700e-01 +3779 -6.8867094633379926e+00 8.9727449535086627e+00 2.8636972542619379e+00 +621 3.0864972952518466e+00 -7.7377722234997837e-01 1.2106492653280587e-01 +3759 4.2946340382075698e+00 -2.7309518923249305e+00 -7.9384037173415658e+00 +3903 5.6188342028914784e+00 -2.7814248255132510e+00 -7.5133775402016285e+00 +3247 -1.6193326128196186e+00 -1.7233073750291210e+00 1.2558642428529292e+00 +3620 3.1413258846560623e+00 4.1189507481056093e+00 -6.3921202343711521e+00 +3984 1.3917530918758356e+00 -2.3497816055013883e+00 -1.4662677833340403e+00 +3359 -9.7958489915505709e-01 -7.9530975508665236e-01 3.6113761736403754e-01 +3728 4.3499495062909288e+00 -3.0962919910136191e+00 2.5291553497464387e+00 +3105 -2.1324777268885367e+00 4.6999502576160301e+00 -1.1831903765756278e+00 +2913 9.6792227860968549e-01 -8.2454190909792562e+00 -3.4600835572456634e+00 +105 1.1598974321010078e+00 6.6642846330522749e+00 -3.1397454859758240e+00 +3786 2.4337460674831185e-01 1.7007163465914101e+00 2.5520406588866820e+00 +4072 -4.0958048708482792e-01 1.1106824876365642e+00 3.0788300199054586e+00 +3160 -5.4524347356962517e+00 4.3156482789948143e+00 -1.3707562648323310e+00 +167 -3.7846180163481380e+00 6.0688805089413700e+00 -9.3209569588631103e-01 +193 -2.2590274085362330e+00 -3.0825410238075674e+00 2.7055352419861740e+00 +848 7.0018093775573365e-01 2.8058409327943159e+00 -2.8664598081555570e+00 +3993 -2.1133573700213573e+00 -3.5509555580404868e+00 1.6428703567042029e+00 +3781 -9.8115460551194134e-01 -3.3293080663104027e+00 -4.8282826681026414e+00 +9 -5.7488885085826680e-01 -3.8370861619809009e+00 -7.2892619744045950e+00 +3599 5.2833107352107955e+00 -8.2925617792090145e-01 -2.5358574431762029e+00 +3518 4.0580253230452010e+00 -3.0945361122357586e+00 -8.8323796705297763e-01 +4089 7.2248060554373073e+00 9.0480655644191388e-01 -9.6284911590930766e-01 +2593 3.2503133857492319e+00 -4.1972151630470256e+00 -1.7952974231313504e-01 diff --git a/examples/USER/misc/pair_entropy/start.lmp b/examples/USER/misc/pair_entropy/start.lmp new file mode 100644 index 0000000000..8740b270cb --- /dev/null +++ b/examples/USER/misc/pair_entropy/start.lmp @@ -0,0 +1,34 @@ +echo both + +units metal +atom_style full + +read_data data.interface +mass 1 22.98977 + +neigh_modify delay 10 every 1 +pair_style eam/fs +pair_coeff * * Na_MendelevM_2014.eam.fs Na +timestep 0.002 +thermo 500 + +neighbor 4. bin + +# Define computes +# Global density, no average +compute 1 all pentropy/atom 0.25 7.75 +# Local density, no average +compute 2 all pentropy/atom 0.25 7.75 local yes +# Global density, average over neighbors +compute 3 all pentropy/atom 0.25 7.75 avg yes 5. +# Local density, average over neighbors +compute 4 all pentropy/atom 0.25 7.75 avg yes 5. local yes + +dump myDump all custom 500 dump.interface id type x y z c_1 c_2 c_3 c_4 + + +fix 1 all nph x 1. 1. 10. +fix 2 all temp/csvr 350. 350. 0.1 64582 + +run 100000 + diff --git a/src/compute_pair_entropy_atom.cpp b/src/compute_pair_entropy_atom.cpp index 97461b4eec..dd3a7acf54 100644 --- a/src/compute_pair_entropy_atom.cpp +++ b/src/compute_pair_entropy_atom.cpp @@ -44,7 +44,7 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg Compute(lmp, narg, arg), pair_entropy(NULL), pair_entropy_avg(NULL) { - if (narg < 5 || narg > 8) + if (narg < 5 || narg > 10) error->all(FLERR,"Illegal compute pentropy/atom command"); // Arguments are: sigma cutoff avg yes/no cutoff2 @@ -59,6 +59,7 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg if (cutoff < 0.0) error->all(FLERR,"Illegal compute pentropy/atom command; negative cutoff"); avg_flag = 0; + local_flag = 0; // optional keywords int iarg = 5; @@ -73,7 +74,12 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg if (cutoff2 < 0.0) error->all(FLERR,"Illegal compute pentropy/atom command; negative cutoff2"); cutsq2 = cutoff2*cutoff2; iarg += 3; - } else error->all(FLERR,"Illegal compute pentropy/atom argument after sigma and cutoff should be avg"); + } else if (strcmp(arg[iarg],"local") == 0) { + if (strcmp(arg[iarg+1],"yes") == 0) local_flag = 1; + else if (strcmp(arg[iarg+1],"no") == 0) local_flag = 0; + else error->all(FLERR,"Illegal compute pentropy/atom argument after local should be yes or no"); + iarg += 2; + } else error->all(FLERR,"Illegal compute pentropy/atom argument after sigma and cutoff should be avg or local"); } @@ -209,7 +215,13 @@ void ComputePairEntropyAtom::compute_peratom() jlist = firstneigh[i]; jnum = numneigh[i]; - + // If local density is used, calculate it + if (local_flag) { + double neigh_cutoff = force->pair->cutforce + neighbor->skin; + double volume = (4./3.)*MY_PI*neigh_cutoff*neigh_cutoff*neigh_cutoff; + density = jnum / volume; + } + // calculate kernel normalization double normConstantBase = 4*MY_PI*density; // Normalization of g(r) normConstantBase *= sqrt(2.*MY_PI)*sigma; // Normalization of gaussian diff --git a/src/compute_pair_entropy_atom.h b/src/compute_pair_entropy_atom.h index 6e1ad7902c..a04df80cb4 100644 --- a/src/compute_pair_entropy_atom.h +++ b/src/compute_pair_entropy_atom.h @@ -43,6 +43,7 @@ class ComputePairEntropyAtom : public Compute { int deltabin; double invNormConstantBase; int avg_flag; + int local_flag; }; } From e550f5120b3aff11ae376c601d921bd908743479 Mon Sep 17 00:00:00 2001 From: PabloPiaggi Date: Tue, 22 May 2018 12:44:40 +0200 Subject: [PATCH 099/675] Updated docs --- doc/src/compute_pair_entropy_atom.txt | 50 ++++++++++--------- .../{start.lmp => in.pairentropy} | 0 2 files changed, 26 insertions(+), 24 deletions(-) rename examples/USER/misc/pair_entropy/{start.lmp => in.pairentropy} (100%) diff --git a/doc/src/compute_pair_entropy_atom.txt b/doc/src/compute_pair_entropy_atom.txt index 9a2dbb8f14..b9d63c8bc9 100644 --- a/doc/src/compute_pair_entropy_atom.txt +++ b/doc/src/compute_pair_entropy_atom.txt @@ -10,25 +10,26 @@ compute pentropy/atom command :h3 [Syntax:] -compute ID group-ID pentropy/atom sigma cutoff :l -compute ID group-ID pentropy/atom sigma cutoff avg yes/no cutoff2 ... :pre +compute ID group-ID pentropy/atom sigma cutoff keyword value ... :pre ID, group-ID are documented in "compute"_compute.html command :l pentropy/atom = style name of this compute command :l sigma = width of gaussians used in the g(r) smoothening :l cutoff = cutoff for the g(r) calculation :l one or more keyword/value pairs may be appended :l -{avg} yes/no cutoff2 - avg = {no} or {yes} - {no} = do not average the pair entropy over neighbors +keyword = {avg} or {local} + {avg} values = {yes} or {no} cutoff2 {yes} = average the pair entropy over neighbors - cutoff2 = cutoff for the averaging over neighbors :pre + {no} = do not average the pair entropy over neighbors + cutoff2 = cutoff for the averaging over neighbors + {local} values = {yes} or {no} = use the local density around each atom to normalize the g(r) :pre :ule [Examples:] -compute 1 all pentropy/atom 0.25 5. :pre -compute 1 all pentropy/atom 0.25 5. avg yes 5. :pre +compute 1 all pentropy/atom 0.25 5. +compute 1 all pentropy/atom 0.25 5. avg yes 5. +compute 1 all pentropy/atom 0.125 7.3 avg yes 5.1 local yes :pre [Description:] @@ -77,11 +78,21 @@ neighbor skin bin :pre See "neighbor"_neighbor.html for details. -The neighbor list needed to compute this quantity is constructed each -time the calculation is performed (e.g. each time a snapshot of atoms -is dumped). Thus it can be inefficient to compute/dump this quantity -too frequently or to have multiple compute/dump commands, each with a -{centro/atom} style. +If the {local yes} option is used, the g(r) is normalized by the +local density around each atom, that is to say the density around each +atom is the number of neighbors within the neighbor list cutoff divided +by the corresponding volume. This option can be useful when dealing with +inhomogeneus systems such as those that have surfaces. + +Here are typical input parameters for fcc aluminum (lattice + constant 4.05 Angstroms), + +compute 1 all pentropy/atom 0.25 5.7 avg yes 3.7 :pre + +and for bcc sodium (lattice constant 4.23 Angstroms), + +compute 1 all pentropy/atom 0.25 7.3 avg yes 5.1 :pre + [Output info:] @@ -95,15 +106,6 @@ The pair entropy values have units of the Boltzmann constant. They are always negative, and lower values (lower entropy) correspond to more ordered environments. -Here are typical input parameters for fcc aluminum (lattice - constant 4.05 Angstroms), - -compute 1 all pentropy/atom 0.25 5.7 avg yes 3.7 :pre - -and for bcc sodium (lattice constant 4.23 Angstroms), - -compute 1 all pentropy/atom 0.25 7.3 avg yes 5.1 :pre - [Restrictions:] none [Related commands:] @@ -113,12 +115,12 @@ compute 1 all pentropy/atom 0.25 7.3 avg yes 5.1 :pre [Default:] -The default value for the optional keyword is avg = no. +The default values for the optional keywords are avg = no and local = no. :line :link(Piaggi) [(Piaggi)] Piaggi and Parrinello, J Chem Phys, 147, 114112 (2017). -:link(Nettleton} +:link(Nettleton) [(Nettleton)] Nettleton and Green, J Chem Phys, 29, 6 (1958). diff --git a/examples/USER/misc/pair_entropy/start.lmp b/examples/USER/misc/pair_entropy/in.pairentropy similarity index 100% rename from examples/USER/misc/pair_entropy/start.lmp rename to examples/USER/misc/pair_entropy/in.pairentropy From 108c31e24a472aaaa84b48ed0913657fa86a3504 Mon Sep 17 00:00:00 2001 From: PabloPiaggi Date: Tue, 22 May 2018 14:56:26 +0200 Subject: [PATCH 100/675] Moved to USER-MISC --- src/{ => USER-MISC}/compute_pair_entropy_atom.cpp | 0 src/{ => USER-MISC}/compute_pair_entropy_atom.h | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/{ => USER-MISC}/compute_pair_entropy_atom.cpp (100%) rename src/{ => USER-MISC}/compute_pair_entropy_atom.h (100%) diff --git a/src/compute_pair_entropy_atom.cpp b/src/USER-MISC/compute_pair_entropy_atom.cpp similarity index 100% rename from src/compute_pair_entropy_atom.cpp rename to src/USER-MISC/compute_pair_entropy_atom.cpp diff --git a/src/compute_pair_entropy_atom.h b/src/USER-MISC/compute_pair_entropy_atom.h similarity index 100% rename from src/compute_pair_entropy_atom.h rename to src/USER-MISC/compute_pair_entropy_atom.h From fbc435a0cb617f6472e7ed094ed333397a76d899 Mon Sep 17 00:00:00 2001 From: PabloPiaggi Date: Tue, 22 May 2018 16:40:25 +0200 Subject: [PATCH 101/675] Formatted according to Lammps guidelines --- src/USER-MISC/compute_pair_entropy_atom.cpp | 87 ++++++++++----------- src/USER-MISC/compute_pair_entropy_atom.h | 14 +--- 2 files changed, 43 insertions(+), 58 deletions(-) diff --git a/src/USER-MISC/compute_pair_entropy_atom.cpp b/src/USER-MISC/compute_pair_entropy_atom.cpp index dd3a7acf54..18c0b39fb0 100644 --- a/src/USER-MISC/compute_pair_entropy_atom.cpp +++ b/src/USER-MISC/compute_pair_entropy_atom.cpp @@ -40,23 +40,30 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : +ComputePairEntropyAtom:: +ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), pair_entropy(NULL), pair_entropy_avg(NULL) { if (narg < 5 || narg > 10) - error->all(FLERR,"Illegal compute pentropy/atom command"); + error->all(FLERR,"Illegal compute pentropy/atom command; wrong number" + " of arguments"); - // Arguments are: sigma cutoff avg yes/no cutoff2 + // Arguments are: sigma cutoff avg yes/no cutoff2 local yes/no // sigma is the gaussian width // cutoff is the cutoff for the calculation of g(r) - // avg is optional and it means averaginf the pair entropy over the neighbors + // avg is optional and allows averaging the pair entropy over neighbors // the next argument should be yes or no // cutoff2 is the cutoff for the averaging + // local is optional and allows using the local density to normalize + // the g(r) sigma = force->numeric(FLERR,arg[3]); + if (sigma < 0.0) error->all(FLERR,"Illegal compute pentropy/atom" + " command; negative sigma"); cutoff = force->numeric(FLERR,arg[4]); - if (cutoff < 0.0) error->all(FLERR,"Illegal compute pentropy/atom command; negative cutoff"); + if (cutoff < 0.0) error->all(FLERR,"Illegal compute pentropy/atom" + " command; negative cutoff"); avg_flag = 0; local_flag = 0; @@ -66,20 +73,25 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg while (iarg < narg) { if (strcmp(arg[iarg],"avg") == 0) { if (iarg+2 > narg) - error->all(FLERR,"Illegal compute pentropy/atom missing arguments after avg"); + error->all(FLERR,"Illegal compute pentropy/atom;" + " missing arguments after avg"); if (strcmp(arg[iarg+1],"yes") == 0) avg_flag = 1; else if (strcmp(arg[iarg+1],"no") == 0) avg_flag = 0; - else error->all(FLERR,"Illegal compute pentropy/atom argument after avg should be yes or no"); + else error->all(FLERR,"Illegal compute pentropy/atom;" + " argument after avg should be yes or no"); cutoff2 = force->numeric(FLERR,arg[iarg+2]); - if (cutoff2 < 0.0) error->all(FLERR,"Illegal compute pentropy/atom command; negative cutoff2"); + if (cutoff2 < 0.0) error->all(FLERR,"Illegal compute pentropy/atom" + " command; negative cutoff2"); cutsq2 = cutoff2*cutoff2; iarg += 3; } else if (strcmp(arg[iarg],"local") == 0) { if (strcmp(arg[iarg+1],"yes") == 0) local_flag = 1; else if (strcmp(arg[iarg+1],"no") == 0) local_flag = 0; - else error->all(FLERR,"Illegal compute pentropy/atom argument after local should be yes or no"); + else error->all(FLERR,"Illegal compute pentropy/atom;" + " argument after local should be yes or no"); iarg += 2; - } else error->all(FLERR,"Illegal compute pentropy/atom argument after sigma and cutoff should be avg or local"); + } else error->all(FLERR,"Illegal compute pentropy/atom; argument after" + " sigma and cutoff should be avg or local"); } @@ -87,7 +99,10 @@ ComputePairEntropyAtom::ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg nbin = static_cast(cutoff / sigma) + 1; nmax = 0; maxneigh = 0; - deltabin = 2; // 2 seems a good compromise between speed and good mollification + // Number of bins above and below the central one that will be + // considered as affected by the gaussian kernel + // 2 seems a good compromise between speed and good mollification + deltabin = 2; deltar = sigma; peratom_flag = 1; size_peratom_cols = 0; @@ -106,25 +121,16 @@ ComputePairEntropyAtom::~ComputePairEntropyAtom() void ComputePairEntropyAtom::init() { if (force->pair == NULL) - error->all(FLERR,"Compute centro/atom requires a pair style be defined"); - - //double largest_cutsq; - //largest_cutsq = cutsq; - //if (cutsq2 > cutsq) largest_cutsq = cutsq2; + error->all(FLERR,"Compute centro/atom requires a pair style be" + " defined"); if ( (cutoff+cutoff2) > (force->pair->cutforce + neighbor->skin) ) { - //fprintf(screen, "%f %f %f %f \n", cutoff, cutoff2, (cutoff+cutoff2) , force->pair->cutforce + neighbor->skin ); - error->all(FLERR,"Compute pentropy/atom cutoff is longer than pairwise cutoff. Increase the neighbor list skin distance."); + error->all(FLERR,"Compute pentropy/atom cutoff is longer than the" + " pairwise cutoff. Increase the neighbor list skin" + " distance."); } - /* - if (2.0*sqrt(largest_cutsq) > force->pair->cutforce + neighbor->skin && - comm->me == 0) - error->warning(FLERR,"Compute pentropy/atom cutoff may be too large to find " - "ghost atom neighbors"); - */ - int count = 0; for (int i = 0; i < modify->ncompute; i++) if (strcmp(modify->compute[i]->style,"pentropy/atom") == 0) count++; @@ -180,15 +186,12 @@ void ComputePairEntropyAtom::compute_peratom() memory->destroy(pair_entropy_avg); nmax = atom->nmax; memory->create(pair_entropy,nmax,"pentropy/atom:pair_entropy"); - memory->create(pair_entropy_avg,nmax,"pentropy/atom:pair_entropy_avg"); + memory->create(pair_entropy_avg,nmax, + "pentropy/atom:pair_entropy_avg"); vector_atom = pair_entropy_avg; } } - // invoke full neighbor list (will copy or build if necessary) - - //neighbor->build_one(list); - inum = list->inum + list->gnum; ilist = list->ilist; numneigh = list->numneigh; @@ -218,13 +221,16 @@ void ComputePairEntropyAtom::compute_peratom() // If local density is used, calculate it if (local_flag) { double neigh_cutoff = force->pair->cutforce + neighbor->skin; - double volume = (4./3.)*MY_PI*neigh_cutoff*neigh_cutoff*neigh_cutoff; + double volume = + (4./3.)*MY_PI*neigh_cutoff*neigh_cutoff*neigh_cutoff; density = jnum / volume; } // calculate kernel normalization - double normConstantBase = 4*MY_PI*density; // Normalization of g(r) - normConstantBase *= sqrt(2.*MY_PI)*sigma; // Normalization of gaussian + // Normalization of g(r) + double normConstantBase = 4*MY_PI*density; + // Normalization of gaussian + normConstantBase *= sqrt(2.*MY_PI)*sigma; double invNormConstantBase = 1./normConstantBase; // loop over list of all neighbors within force cutoff @@ -245,8 +251,7 @@ void ComputePairEntropyAtom::compute_peratom() // contribute to gofr double r=sqrt(rsq); int bin=floor(r/deltar); - int minbin, maxbin; // These cannot be unsigned - // Only consider contributions to g(r) of atoms less than n*sigma bins apart from the actual distance + int minbin, maxbin; minbin=bin - deltabin; if (minbin < 0) minbin=0; if (minbin > (nbin-1)) minbin=nbin-1; @@ -255,19 +260,11 @@ void ComputePairEntropyAtom::compute_peratom() for(int k=minbin;k Date: Tue, 22 May 2018 17:29:51 +0200 Subject: [PATCH 102/675] Removed unused variables - corrected documentation --- doc/src/compute_pair_entropy_atom.txt | 32 ++++++++++----------- src/USER-MISC/compute_pair_entropy_atom.cpp | 5 ++-- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/doc/src/compute_pair_entropy_atom.txt b/doc/src/compute_pair_entropy_atom.txt index b9d63c8bc9..8877321760 100644 --- a/doc/src/compute_pair_entropy_atom.txt +++ b/doc/src/compute_pair_entropy_atom.txt @@ -37,19 +37,19 @@ Define a computation that calculates the pair entropy fingerprint for each atom in the group. The fingerprint is useful to distinguish between ordered and disordered environments, for instance liquid and solid-like environments, or glassy and crystalline-like environments. Some - applications could be the identification of grain boundaries, a - melt-solid interface, or a solid cluster emerging from the melt. +applications could be the identification of grain boundaries, a +melt-solid interface, or a solid cluster emerging from the melt. The advantage of this parameter over others is that no a priori - information about the solid structure is required. +information about the solid structure is required. This parameter for atom i is computed using the following formula from -"(Piaggi)"_#Piaggi and "(Nettleton)"_#Nettleton +"(Piaggi)"_#Piaggi and "(Nettleton)"_#Nettleton , :c,image(Eqs/pair_entropy.jpg) where r is a distance, g(r) is the radial distribution function of atom - i and rho is the density of the system. The g(r) computed for each - atom i can be noisy and therefore it is smoothened using: +i and rho is the density of the system. The g(r) computed for each +atom i can be noisy and therefore it is smoothened using: :c,image(Eqs/pair_entropy2.jpg) @@ -57,22 +57,22 @@ where the sum in j goes through the neighbors of atom i, and sigma is a parameter to control the smoothening. The input parameters are {sigma} the smoothening parameter, and the - {cutoff} for the calculation of g(r). +{cutoff} for the calculation of g(r). If the keyword {avg} has the setting {yes}, then this compute also - averages the parameter over the neighbors of atom i according to: +averages the parameter over the neighbors of atom i according to: :c,image(Eqs/pair_entropy3.jpg) where the sum j goes over the neighbors of atom i and N is the number - of neighbors. This procedure provides a sharper distinction between +of neighbors. This procedure provides a sharper distinction between order and disorder environments. In this case the input parameter - {cutoff2} is the cutoff for the averaging over the neighbors and - must also be specified. +{cutoff2} is the cutoff for the averaging over the neighbors and +must also be specified. If the {avg yes} option is used, the effective cutoff of the neighbor - list should be {cutoff}+{cutoff2} and therefore it might be necessary - to increase the skin of the neighbor list with: +list should be {cutoff}+{cutoff2} and therefore it might be necessary +to increase the skin of the neighbor list with: neighbor skin bin :pre @@ -85,7 +85,7 @@ by the corresponding volume. This option can be useful when dealing with inhomogeneus systems such as those that have surfaces. Here are typical input parameters for fcc aluminum (lattice - constant 4.05 Angstroms), +constant 4.05 Angstroms), compute 1 all pentropy/atom 0.25 5.7 avg yes 3.7 :pre @@ -103,8 +103,8 @@ uses per-atom values from a compute as input. See "Section options. The pair entropy values have units of the Boltzmann constant. They are - always negative, and lower values (lower entropy) correspond to more - ordered environments. +always negative, and lower values (lower entropy) correspond to more +ordered environments. [Restrictions:] none diff --git a/src/USER-MISC/compute_pair_entropy_atom.cpp b/src/USER-MISC/compute_pair_entropy_atom.cpp index 18c0b39fb0..b5da941f7f 100644 --- a/src/USER-MISC/compute_pair_entropy_atom.cpp +++ b/src/USER-MISC/compute_pair_entropy_atom.cpp @@ -160,8 +160,8 @@ void ComputePairEntropyAtom::init_list(int id, NeighList *ptr) void ComputePairEntropyAtom::compute_peratom() { - int i,j,k,ii,jj,kk,n,inum,jnum; - double xtmp,ytmp,ztmp,delx,dely,delz,rsq,value; + int i,j,ii,jj,inum,jnum; + double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *ilist,*jlist,*numneigh,**firstneigh; double rbin[nbin], rbinsq[nbin]; @@ -198,7 +198,6 @@ void ComputePairEntropyAtom::compute_peratom() firstneigh = list->firstneigh; // Compute some constants - double nlist_cutoff = force->pair->cutforce; double sigmasq2=2*sigma*sigma; double volume = domain->xprd * domain->yprd * domain->zprd; double density = atom->natoms / volume; From 102be8dd8b8f53bb0d330fb2e9d9599b3baec71c Mon Sep 17 00:00:00 2001 From: julient31 Date: Wed, 23 May 2018 11:23:39 -0600 Subject: [PATCH 103/675] Commit JT 052318 --- src/SPIN/compute_spin.cpp | 1 + src/SPIN/fix_langevin_spin.cpp | 13 +++-- src/SPIN/fix_nve_spin.cpp | 1 + src/SPIN/pair_spin_exchange.cpp | 2 + src/SPIN/pair_spin_neel.cpp | 94 ++++++++++++++++----------------- 5 files changed, 61 insertions(+), 50 deletions(-) diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index ab3bab2487..47d88b6c64 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -132,6 +132,7 @@ void ComputeSpin::compute_vector() magtot[2] *= scale; magtot[3] = sqrt((magtot[0]*magtot[0])+(magtot[1]*magtot[1])+(magtot[2]*magtot[2])); spintemperature = hbar*tempnumtot; + //spintemperature /= (2.0*kb*tempdenomtot); spintemperature /= (kb*tempdenomtot); vector[0] = magtot[0]; diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index c7f75b0cd4..b4e7f67653 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -134,8 +134,10 @@ void FixLangevinSpin::init() double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) double kb = force->boltz; // eV/K D = (MY_2PI*alpha_t*gil_factor*kb*temp); + //D = (alpha_t*gil_factor*kb*temp); D /= (hbar*dts); sigma = sqrt(2.0*D); + //sigma = sqrt(D); } /* ---------------------------------------------------------------------- */ @@ -171,9 +173,14 @@ void FixLangevinSpin::add_tdamping(double spi[3], double fmi[3]) void FixLangevinSpin::add_temperature(double fmi[3]) { - double rx = sigma*(-1.0+2.0*random->uniform()); - double ry = sigma*(-1.0+2.0*random->uniform()); - double rz = sigma*(-1.0+2.0*random->uniform()); + double rx = sigma*(2.0*random->uniform() - 1.0); + double ry = sigma*(2.0*random->uniform() - 1.0); + double rz = sigma*(2.0*random->uniform() - 1.0); + //printf("test rd : %g \n",2.0*random->uniform() - 1.0); + //printf("test gaussian : %g \n", random->gaussian()); + //double rx = sigma*(random->gaussian()); + //double ry = sigma*(random->gaussian()); + //double rz = sigma*(random->gaussian()); // adding the random field diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 7eafc92dfd..bf45b8cb41 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -164,6 +164,7 @@ void FixNVESpin::init() dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; dts = 0.25 * update->dt; + npairs = npairspin = 0; // set ptrs on Pair/Spin styles diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 36708293f7..08476ccecd 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -173,6 +173,8 @@ void PairSpinExchange::init_style() } } + printf("test lattice flag: %d \n",lattice_flag); + } /* ---------------------------------------------------------------------- diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 7ada406b82..408522045f 100755 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -285,7 +285,7 @@ void PairSpinNeel::compute(int eflag, int vflag) local_cut2 = cut_spin_neel[itype][jtype]*cut_spin_neel[itype][jtype]; - // compute magnetic and mechanical components of soc_neel + // compute magnetic and mechanical components of neel if (rsq <= local_cut2) { compute_neel(i,j,rsq,eij,fmi,spi,spj); @@ -465,55 +465,55 @@ void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], do itype = type[i]; jtype = type[j]; - double g_mech, gij, dgij; - double q_mech, q1ij, dq1ij; - double q2ij, dq2ij; - double pdx, pdy, pdz; - double pq1x, pq1y, pq1z; - double pq2x, pq2y, pq2z; - double ra, rr, drij, ig3, iq3; + double g_mech, gij, dgij; + double q_mech, q1ij, dq1ij; + double q2ij, dq2ij; + double pdx, pdy, pdz; + double pq1x, pq1y, pq1z; + double pq2x, pq2y, pq2z; + double ra, rr, drij, ig3, iq3; - drij = sqrt(rsq); + drij = sqrt(rsq); + + double scalar_si_sj = spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]; + double scalar_eij_si = eij[0]*spi[0]+eij[1]*spi[1]+eij[2]*spi[2]; + double scalar_eij_sj = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; + + // pseudo-dipolar component - double scalar_si_sj = spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]; - double scalar_eij_si = eij[0]*spi[0]+eij[1]*spi[1]+eij[2]*spi[2]; - double scalar_eij_sj = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; + g_mech = g1_mech[itype][jtype]; + ig3 = 1.0/(g3[itype][jtype]*g3[itype][jtype]); + + ra = rsq*ig3; + rr = drij*ig3; + + gij = 4.0*g_mech*ra; + gij *= (1.0-g2[itype][jtype]*ra); + gij *= exp(-ra); + + dgij = 1.0-ra-g2[itype][jtype]*ra*(2.0-ra); + dgij *= 8.0*g_mech*rr*exp(-ra); + + double pdt1 = (dgij-2.0*gij/drij)*scalar_eij_si*scalar_eij_sj; + pdt1 -= scalar_si_sj*dgij/3.0; + double pdt2 = scalar_eij_sj*gij/drij; + double pdt3 = scalar_eij_si*gij/drij; + pdx = -(pdt1*eij[0] + pdt2*spi[0] + pdt3*spj[0]); + pdy = -(pdt1*eij[1] + pdt2*spi[1] + pdt3*spj[1]); + pdz = -(pdt1*eij[2] + pdt2*spi[2] + pdt3*spj[2]); + + // pseudo-quadrupolar component - // pseudo-dipolar component - - g_mech = g1_mech[itype][jtype]; - ig3 = 1.0/(g3[itype][jtype]*g3[itype][jtype]); - - ra = rsq*ig3; - rr = drij*ig3; - - gij = 4.0*g_mech*ra; - gij *= (1.0-g2[itype][jtype]*ra); - gij *= exp(-ra); - - dgij = 1.0-ra-g2[itype][jtype]*ra*(2.0-ra); - dgij *= 8.0*g_mech*rr*exp(-ra); - - double pdt1 = (dgij-2.0*gij/drij)*scalar_eij_si*scalar_eij_sj; - pdt1 -= scalar_si_sj*dgij/3.0; - double pdt2 = scalar_eij_sj*gij/drij; - double pdt3 = scalar_eij_si*gij/drij; - pdx = -(pdt1*eij[0] + pdt2*spi[0] + pdt3*spj[0]); - pdy = -(pdt1*eij[1] + pdt2*spi[1] + pdt3*spj[1]); - pdz = -(pdt1*eij[2] + pdt2*spi[2] + pdt3*spj[2]); - - // pseudo-quadrupolar component - - q_mech = q1_mech[itype][jtype]; - iq3 = 1.0/(q3[itype][jtype]*q3[itype][jtype]); - - ra = rsq*iq3; - rr = drij*iq3; - - q1ij = 4.0*q_mech*ra; - q1ij *= (1.0-q2[itype][jtype]*ra); - q1ij *= exp(-ra); - q2ij = -2.0*q1ij/9.0; + q_mech = q1_mech[itype][jtype]; + iq3 = 1.0/(q3[itype][jtype]*q3[itype][jtype]); + + ra = rsq*iq3; + rr = drij*iq3; + + q1ij = 4.0*q_mech*ra; + q1ij *= (1.0-q2[itype][jtype]*ra); + q1ij *= exp(-ra); + q2ij = -2.0*q1ij/9.0; dq1ij = 1.0-ra-q2[itype][jtype]*ra*(2.0-ra); dq1ij *= 8.0*q_mech*rr*exp(-ra); From c960b9295cab16665c88d12a14ae40c131ca0a8a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 17 May 2018 04:27:08 -0400 Subject: [PATCH 104/675] fix cut-n-paste error in fix property/local docs correct issue reported in comment at https://github.com/lammps/lammps/pull/911 --- doc/src/compute_property_local.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/compute_property_local.txt b/doc/src/compute_property_local.txt index 39106a39c8..e4e6f1ef1e 100644 --- a/doc/src/compute_property_local.txt +++ b/doc/src/compute_property_local.txt @@ -19,8 +19,8 @@ one or more attributes may be appended :l patom1 patom2 ptype1 ptype2 batom1 batom2 btype aatom1 aatom2 aatom3 atype - datom1 datom2 datom3 dtype - iatom1 iatom2 iatom3 itype :pre + datom1 datom2 datom3 datom4 dtype + iatom1 iatom2 iatom3 iatom4 itype :pre natom1, natom2 = IDs of 2 atoms in each pair (within neighbor cutoff) ntype1, ntype2 = type of 2 atoms in each pair (within neighbor cutoff) From d10a470245c3cef9a0083e3d5855f58e7599bdc0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 18 May 2018 06:43:23 -0400 Subject: [PATCH 105/675] second try to implement changes suggested in issue #888 In src/rcb.cpp:460 there is an if (smaller > largest). now if we have one particle you will see that lo[] = hi[] and because of this smaller == largest == 0 for all values of dim. This causes this particular part of the code to never be run. In particular the memcpy inside this if is never executed. This causes an unitialized memory access in line 472. Additionally, dim is initialized with -1 and thus the accesses in 484 and 485 are problematic. Additionally, valuehalf_select is never initialized either. closes #888 --- src/balance.cpp | 14 ++++++++++++++ src/rcb.cpp | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/balance.cpp b/src/balance.cpp index 86deb55b47..ed44e3ee0e 100644 --- a/src/balance.cpp +++ b/src/balance.cpp @@ -28,6 +28,7 @@ #include "rcb.h" #include "irregular.h" #include "domain.h" +#include "neighbor.h" #include "force.h" #include "update.h" #include "group.h" @@ -643,6 +644,19 @@ int *Balance::bisection(int sortflag) double *shrinklo = &shrinkall[0]; double *shrinkhi = &shrinkall[3]; + // ensure that that the box has at least some extent. + const double nproc_rt = domain->dimension == 3 ? + cbrt(static_cast(comm->nprocs)) : + sqrt(static_cast(comm->nprocs)); + const double min_extent = ceil(nproc_rt)*neighbor->skin; + for (int i = 0; i < domain->dimension; i++) { + if (shrinkall[3+i]-shrinkall[i] < min_extent) { + const double mid = 0.5*(shrinkall[3+i]+shrinkall[i]); + shrinkall[3+i] = std::min(mid + min_extent*0.5, boxhi[i]); + shrinkall[i] = std::max(mid - min_extent*0.5, boxlo[i]); + } + } + // invoke RCB // then invert() to create list of proc assignments for my atoms // NOTE: (3/2017) can remove undocumented "old" option at some point diff --git a/src/rcb.cpp b/src/rcb.cpp index 3027920310..4ea70ee914 100644 --- a/src/rcb.cpp +++ b/src/rcb.cpp @@ -243,7 +243,7 @@ void RCB::compute(int dimension, int n, double **x, double *wt, // dotmark_select = dot markings in that dimension int dim_select = -1; - double largest = 0.0; + double largest = -1.0; for (dim = 0; dim < dimension; dim++) { From 99f42744833cbd7f9d97ae5657c3df2553150d5c Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 24 May 2018 06:59:40 -0600 Subject: [PATCH 106/675] Commit JT 052418 rm comments --- src/SPIN/compute_spin.cpp | 1 - src/SPIN/fix_langevin_spin.cpp | 7 ------- 2 files changed, 8 deletions(-) diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 47d88b6c64..ab3bab2487 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -132,7 +132,6 @@ void ComputeSpin::compute_vector() magtot[2] *= scale; magtot[3] = sqrt((magtot[0]*magtot[0])+(magtot[1]*magtot[1])+(magtot[2]*magtot[2])); spintemperature = hbar*tempnumtot; - //spintemperature /= (2.0*kb*tempdenomtot); spintemperature /= (kb*tempdenomtot); vector[0] = magtot[0]; diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index b4e7f67653..d12ec11237 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -134,10 +134,8 @@ void FixLangevinSpin::init() double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) double kb = force->boltz; // eV/K D = (MY_2PI*alpha_t*gil_factor*kb*temp); - //D = (alpha_t*gil_factor*kb*temp); D /= (hbar*dts); sigma = sqrt(2.0*D); - //sigma = sqrt(D); } /* ---------------------------------------------------------------------- */ @@ -176,11 +174,6 @@ void FixLangevinSpin::add_temperature(double fmi[3]) double rx = sigma*(2.0*random->uniform() - 1.0); double ry = sigma*(2.0*random->uniform() - 1.0); double rz = sigma*(2.0*random->uniform() - 1.0); - //printf("test rd : %g \n",2.0*random->uniform() - 1.0); - //printf("test gaussian : %g \n", random->gaussian()); - //double rx = sigma*(random->gaussian()); - //double ry = sigma*(random->gaussian()); - //double rz = sigma*(random->gaussian()); // adding the random field From 5f0e6d0aa7bd5ab474cbf9b4551d6f4504170603 Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 24 May 2018 12:55:39 -0600 Subject: [PATCH 107/675] Commit JT2 052418 --- examples/SPIN/bfo/in.spin.bfo | 5 +- examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 5 +- src/SPIN/pair_spin.cpp | 4 - src/SPIN/pair_spin_exchange.cpp | 2 - ...pair_spin_me.cpp => pair_spin_magelec.cpp} | 81 ++++++++++--------- .../{pair_spin_me.h => pair_spin_magelec.h} | 24 +++--- 6 files changed, 58 insertions(+), 63 deletions(-) rename src/SPIN/{pair_spin_me.cpp => pair_spin_magelec.cpp} (85%) rename src/SPIN/{pair_spin_me.h => pair_spin_magelec.h} (73%) diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index 55cc53446d..2442b12b72 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -21,9 +21,9 @@ mass 1 1.0 set group all spin/random 11 2.50 -pair_style hybrid/overlay spin/exchange 6.0 spin/me 4.5 +pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965 -pair_coeff * * spin/me me 4.5 0.000109 1.0 1.0 1.0 +pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 @@ -51,4 +51,3 @@ compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] run 5000 - diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index 127e24bf2b..e712e511be 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -28,13 +28,14 @@ pair_coeff * * eam/alloy ../examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 #pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 + neighbor 0.1 bin neigh_modify every 10 check yes delay 20 -fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 fix 2 all langevin/spin 0.0 0.0 21 - fix 3 all nve/spin lattice yes + timestep 0.0001 diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index d0df3868df..e8a4c126da 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -41,10 +41,6 @@ #include "pair_hybrid.h" #include "pair_hybrid_overlay.h" #include "pair_spin.h" -#include "pair_spin_dmi.h" -#include "pair_spin_exchange.h" -#include "pair_spin_neel.h" -#include "pair_spin_me.h" #include "update.h" using namespace LAMMPS_NS; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 08476ccecd..36708293f7 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -173,8 +173,6 @@ void PairSpinExchange::init_style() } } - printf("test lattice flag: %d \n",lattice_flag); - } /* ---------------------------------------------------------------------- diff --git a/src/SPIN/pair_spin_me.cpp b/src/SPIN/pair_spin_magelec.cpp similarity index 85% rename from src/SPIN/pair_spin_me.cpp rename to src/SPIN/pair_spin_magelec.cpp index cbc8ae3cd1..a4a17bd1db 100755 --- a/src/SPIN/pair_spin_me.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -38,7 +38,7 @@ #include "math_const.h" #include "memory.h" #include "modify.h" -#include "pair_spin_me.h" +#include "pair_spin_magelec.h" #include "update.h" using namespace LAMMPS_NS; @@ -46,8 +46,9 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -PairSpinMe::PairSpinMe(LAMMPS *lmp) : PairSpin(lmp) +PairSpinMagelec::PairSpinMagelec(LAMMPS *lmp) : PairSpin(lmp) { + hbar = force->hplanck/MY_2PI; single_enable = 0; no_virial_fdotr_compute = 1; lattice_flag = 0; @@ -55,11 +56,11 @@ PairSpinMe::PairSpinMe(LAMMPS *lmp) : PairSpin(lmp) /* ---------------------------------------------------------------------- */ -PairSpinMe::~PairSpinMe() +PairSpinMagelec::~PairSpinMagelec() { if (allocated) { memory->destroy(setflag); - memory->destroy(cut_spin_me); + memory->destroy(cut_spin_magelec); memory->destroy(ME); memory->destroy(ME_mech); memory->destroy(v_mex); @@ -73,7 +74,7 @@ PairSpinMe::~PairSpinMe() global settings ------------------------------------------------------------------------- */ -void PairSpinMe::settings(int narg, char **arg) +void PairSpinMagelec::settings(int narg, char **arg) { if (narg < 1 || narg > 2) error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); @@ -81,7 +82,7 @@ void PairSpinMe::settings(int narg, char **arg) if (strcmp(update->unit_style,"metal") != 0) error->all(FLERR,"Spin simulations require metal unit style"); - cut_spin_me_global = force->numeric(FLERR,arg[0]); + cut_spin_magelec_global = force->numeric(FLERR,arg[0]); // reset cutoffs that have been explicitly set @@ -90,7 +91,7 @@ void PairSpinMe::settings(int narg, char **arg) for (i = 1; i <= atom->ntypes; i++) for (j = i+1; j <= atom->ntypes; j++) if (setflag[i][j]) { - cut_spin_me[i][j] = cut_spin_me_global; + cut_spin_magelec[i][j] = cut_spin_magelec_global; } } @@ -100,20 +101,20 @@ void PairSpinMe::settings(int narg, char **arg) set coeffs for one or more type spin pairs (only one for now) ------------------------------------------------------------------------- */ -void PairSpinMe::coeff(int narg, char **arg) +void PairSpinMagelec::coeff(int narg, char **arg) { const double hbar = force->hplanck/MY_2PI; if (!allocated) allocate(); - if (strcmp(arg[2],"me")==0) { + if (strcmp(arg[2],"magelec")==0) { if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); int ilo,ihi,jlo,jhi; force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); const double rij = force->numeric(FLERR,arg[3]); - const double me = (force->numeric(FLERR,arg[4])); + const double magelec = (force->numeric(FLERR,arg[4])); double mex = force->numeric(FLERR,arg[5]); double mey = force->numeric(FLERR,arg[6]); double mez = force->numeric(FLERR,arg[7]); @@ -126,9 +127,9 @@ void PairSpinMe::coeff(int narg, char **arg) int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_me[i][j] = rij; - ME[i][j] = me/hbar; - ME_mech[i][j] = me; + cut_spin_magelec[i][j] = rij; + ME[i][j] = magelec/hbar; + ME_mech[i][j] = magelec; v_mex[i][j] = mex; v_mey[i][j] = mey; v_mez[i][j] = mez; @@ -145,7 +146,7 @@ void PairSpinMe::coeff(int narg, char **arg) init specific to this pair style ------------------------------------------------------------------------- */ -void PairSpinMe::init_style() +void PairSpinMagelec::init_style() { if (!atom->sp_flag) error->all(FLERR,"Pair spin requires atom/spin style"); @@ -181,29 +182,29 @@ void PairSpinMe::init_style() init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairSpinMe::init_one(int i, int j) +double PairSpinMagelec::init_one(int i, int j) { if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - return cut_spin_me_global; + return cut_spin_magelec_global; } /* ---------------------------------------------------------------------- extract the larger cutoff ------------------------------------------------------------------------- */ -void *PairSpinMe::extract(const char *str, int &dim) +void *PairSpinMagelec::extract(const char *str, int &dim) { dim = 0; - if (strcmp(str,"cut") == 0) return (void *) &cut_spin_me_global; + if (strcmp(str,"cut") == 0) return (void *) &cut_spin_magelec_global; return NULL; } /* ---------------------------------------------------------------------- */ -void PairSpinMe::compute(int eflag, int vflag) +void PairSpinMagelec::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; @@ -277,14 +278,14 @@ void PairSpinMe::compute(int eflag, int vflag) jtype = type[j]; - local_cut2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; + local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; // compute me interaction if (rsq <= local_cut2) { - compute_me(i,j,rsq,eij,fmi,spj); + compute_magelec(i,j,rsq,eij,fmi,spj); if (lattice_flag) { - compute_me_mech(i,j,fi,spi,spj); + compute_magelec_mech(i,j,fi,spi,spj); } } @@ -318,7 +319,7 @@ void PairSpinMe::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ -void PairSpinMe::compute_single_pair(int ii, double fmi[3]) +void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) { int *type = atom->type; double **x = atom->x; @@ -354,7 +355,7 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) j = jlist[jj]; j &= NEIGHMASK; jtype = type[j]; - local_cut2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; + local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; spj[0] = sp[j][0]; spj[1] = sp[j][1]; @@ -370,7 +371,7 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) eij[2] = inorm*rij[2]; if (rsq <= local_cut2) { - compute_me(i,j,rsq,eij,fmi,spj); + compute_magelec(i,j,rsq,eij,fmi,spj); } } @@ -378,14 +379,14 @@ void PairSpinMe::compute_single_pair(int ii, double fmi[3]) /* ---------------------------------------------------------------------- */ -void PairSpinMe::compute_me(int i, int j, double rsq, double eij[3], double fmi[3], double spj[3]) +void PairSpinMagelec::compute_magelec(int i, int j, double rsq, double eij[3], double fmi[3], double spj[3]) { int *type = atom->type; int itype, jtype; itype = type[i]; jtype = type[j]; - double local_cut2 = cut_spin_me[itype][jtype]*cut_spin_me[itype][jtype]; + double local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; if (rsq <= local_cut2) { double meix,meiy,meiz; @@ -416,7 +417,7 @@ void PairSpinMe::compute_me(int i, int j, double rsq, double eij[3], double fmi[ /* ---------------------------------------------------------------------- */ -void PairSpinMe::compute_me_mech(int i, int j, double fi[3], double spi[3], double spj[3]) +void PairSpinMagelec::compute_magelec_mech(int i, int j, double fi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -448,7 +449,7 @@ void PairSpinMe::compute_me_mech(int i, int j, double fi[3], double spi[3], doub allocate all arrays ------------------------------------------------------------------------- */ -void PairSpinMe::allocate() +void PairSpinMagelec::allocate() { allocated = 1; int n = atom->ntypes; @@ -458,7 +459,7 @@ void PairSpinMe::allocate() for (int j = i; j <= n; j++) setflag[i][j] = 0; - memory->create(cut_spin_me,n+1,n+1,"pair/spin/me:cut_spin_me"); + memory->create(cut_spin_magelec,n+1,n+1,"pair/spin/me:cut_spin_magelec"); memory->create(ME,n+1,n+1,"pair/spin/me:ME"); memory->create(ME_mech,n+1,n+1,"pair/spin/me:ME_mech"); memory->create(v_mex,n+1,n+1,"pair/spin/me:ME_vector_x"); @@ -471,7 +472,7 @@ void PairSpinMe::allocate() proc 0 writes to restart file ------------------------------------------------------------------------- */ -void PairSpinMe::write_restart(FILE *fp) +void PairSpinMagelec::write_restart(FILE *fp) { write_restart_settings(fp); @@ -484,7 +485,7 @@ void PairSpinMe::write_restart(FILE *fp) fwrite(&v_mex[i][j],sizeof(double),1,fp); fwrite(&v_mey[i][j],sizeof(double),1,fp); fwrite(&v_mez[i][j],sizeof(double),1,fp); - fwrite(&cut_spin_me[i][j],sizeof(double),1,fp); + fwrite(&cut_spin_magelec[i][j],sizeof(double),1,fp); } } } @@ -493,7 +494,7 @@ void PairSpinMe::write_restart(FILE *fp) proc 0 reads from restart file, bcasts ------------------------------------------------------------------------- */ -void PairSpinMe::read_restart(FILE *fp) +void PairSpinMagelec::read_restart(FILE *fp) { read_restart_settings(fp); @@ -511,13 +512,13 @@ void PairSpinMe::read_restart(FILE *fp) fread(&v_mex[i][j],sizeof(double),1,fp); fread(&v_mey[i][j],sizeof(double),1,fp); fread(&v_mez[i][j],sizeof(double),1,fp); - fread(&cut_spin_me[i][j],sizeof(double),1,fp); + fread(&cut_spin_magelec[i][j],sizeof(double),1,fp); } MPI_Bcast(&ME[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_mex[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_mey[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_mez[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_spin_me[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_magelec[i][j],1,MPI_DOUBLE,0,world); } } } @@ -527,9 +528,9 @@ void PairSpinMe::read_restart(FILE *fp) proc 0 writes to restart file ------------------------------------------------------------------------- */ -void PairSpinMe::write_restart_settings(FILE *fp) +void PairSpinMagelec::write_restart_settings(FILE *fp) { - fwrite(&cut_spin_me_global,sizeof(double),1,fp); + fwrite(&cut_spin_magelec_global,sizeof(double),1,fp); fwrite(&offset_flag,sizeof(int),1,fp); fwrite(&mix_flag,sizeof(int),1,fp); } @@ -538,14 +539,14 @@ void PairSpinMe::write_restart_settings(FILE *fp) proc 0 reads from restart file, bcasts ------------------------------------------------------------------------- */ -void PairSpinMe::read_restart_settings(FILE *fp) +void PairSpinMagelec::read_restart_settings(FILE *fp) { if (comm->me == 0) { - fread(&cut_spin_me_global,sizeof(double),1,fp); + fread(&cut_spin_magelec_global,sizeof(double),1,fp); fread(&offset_flag,sizeof(int),1,fp); fread(&mix_flag,sizeof(int),1,fp); } - MPI_Bcast(&cut_spin_me_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_spin_magelec_global,1,MPI_DOUBLE,0,world); MPI_Bcast(&offset_flag,1,MPI_INT,0,world); MPI_Bcast(&mix_flag,1,MPI_INT,0,world); } diff --git a/src/SPIN/pair_spin_me.h b/src/SPIN/pair_spin_magelec.h similarity index 73% rename from src/SPIN/pair_spin_me.h rename to src/SPIN/pair_spin_magelec.h index bfbfe213ad..bc1e3a6296 100755 --- a/src/SPIN/pair_spin_me.h +++ b/src/SPIN/pair_spin_magelec.h @@ -13,21 +13,21 @@ #ifdef PAIR_CLASS -PairStyle(spin/me,PairSpinMe) +PairStyle(spin/magelec,PairSpinMagelec) #else -#ifndef LMP_PAIR_SPIN_ME_H -#define LMP_PAIR_SPIN_ME_H +#ifndef LMP_PAIR_SPIN_MAGELEC_H +#define LMP_PAIR_SPIN_MAGELEC_H #include "pair_spin.h" namespace LAMMPS_NS { -class PairSpinMe : public PairSpin { +class PairSpinMagelec : public PairSpin { public: - PairSpinMe(class LAMMPS *); - virtual ~PairSpinMe(); + PairSpinMagelec(class LAMMPS *); + virtual ~PairSpinMagelec(); void settings(int, char **); void coeff(int, char **); void init_style(); @@ -37,20 +37,20 @@ class PairSpinMe : public PairSpin { void compute(int, int); void compute_single_pair(int, double *); - void compute_me(int, int, double, double *, double *, double *); - void compute_me_mech(int, int, double *, double *, double *); + void compute_magelec(int, int, double, double *, double *, double *); + void compute_magelec_mech(int, int, double *, double *, double *); void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - double cut_spin_me_global; // global me cutoff + double cut_spin_magelec_global; // global me cutoff protected: - double **ME, **ME_mech; // me coeff in eV - double **v_mex, **v_mey, **v_mez; // me direction - double **cut_spin_me; // me cutoff distance + double **ME, **ME_mech; // magelec coeff in eV + double **v_mex, **v_mey, **v_mez; // magelec direction + double **cut_spin_magelec; // magelec cutoff distance int lattice_flag; // flag for mech force computation class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups From 41687a84a4f8c17e597634978bfcb98a25455043 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Thu, 24 May 2018 22:55:49 -0500 Subject: [PATCH 108/675] Added body and pair styles for rounded/polygon and rounded polyhedra, wall fixesthat are compatible with these body styles --- src/BODY/body_rounded_polygon.cpp | 452 ++++ src/BODY/body_rounded_polygon.h | 86 + src/BODY/body_rounded_polyhedron.cpp | 523 +++++ src/BODY/body_rounded_polyhedron.h | 88 + src/BODY/fix_wall_body_polygon.cpp | 831 ++++++++ src/BODY/fix_wall_body_polygon.h | 129 ++ src/BODY/fix_wall_body_polyhedron.cpp | 944 +++++++++ src/BODY/fix_wall_body_polyhedron.h | 143 ++ src/BODY/pair_body_rounded_polygon.cpp | 1359 ++++++++++++ src/BODY/pair_body_rounded_polygon.h | 128 ++ src/BODY/pair_body_rounded_polyhedron.cpp | 2348 +++++++++++++++++++++ src/BODY/pair_body_rounded_polyhedron.h | 176 ++ 12 files changed, 7207 insertions(+) create mode 100644 src/BODY/body_rounded_polygon.cpp create mode 100644 src/BODY/body_rounded_polygon.h create mode 100644 src/BODY/body_rounded_polyhedron.cpp create mode 100644 src/BODY/body_rounded_polyhedron.h create mode 100644 src/BODY/fix_wall_body_polygon.cpp create mode 100644 src/BODY/fix_wall_body_polygon.h create mode 100644 src/BODY/fix_wall_body_polyhedron.cpp create mode 100644 src/BODY/fix_wall_body_polyhedron.h create mode 100644 src/BODY/pair_body_rounded_polygon.cpp create mode 100644 src/BODY/pair_body_rounded_polygon.h create mode 100644 src/BODY/pair_body_rounded_polyhedron.cpp create mode 100644 src/BODY/pair_body_rounded_polyhedron.h diff --git a/src/BODY/body_rounded_polygon.cpp b/src/BODY/body_rounded_polygon.cpp new file mode 100644 index 0000000000..d848a8fa95 --- /dev/null +++ b/src/BODY/body_rounded_polygon.cpp @@ -0,0 +1,452 @@ +/* ---------------------------------------------------------------------- + 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: Trung Dac Nguyen (ndactrung@gmail.com) +------------------------------------------------------------------------- */ + +#include +#include "body_rounded_polygon.h" +#include "atom_vec_body.h" +#include "atom.h" +#include "force.h" +#include "domain.h" +#include "math_extra.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +#define EPSILON 1.0e-7 +enum{SPHERE,LINE}; // also in DumpImage + +/* ---------------------------------------------------------------------- */ + +BodyRoundedPolygon::BodyRoundedPolygon(LAMMPS *lmp, int narg, char **arg) : + Body(lmp, narg, arg) +{ + if (narg != 3) error->all(FLERR,"Invalid body rounded/polygon command"); + + if (domain->dimension != 2) + error->all(FLERR,"Atom_style body rounded/polygon " + "can only be used in 2d simulations"); + + // nmin and nmax are minimum and maximum number of vertices + + int nmin = force->inumeric(FLERR,arg[1]); + int nmax = force->inumeric(FLERR,arg[2]); + if (nmin <= 0 || nmin > nmax) + error->all(FLERR,"Invalid body rounded/polygon command"); + + size_forward = 0; + + // 1 integer for number of vertices, + // 3*nmax doubles for vertex coordinates + 2*nmax doubles for edge ends + // 1 double for the enclosing radius + // 1 double for the rounded radius + + size_border = 1 + 3*nmax + 2*nmax + 1 + 1; + + // NOTE: need to set appropriate nnbin param for dcp + + icp = new MyPoolChunk(1,1); + dcp = new MyPoolChunk(3*nmin+2*nmin+1+1,3*nmax+2*nmax+1+1); + + memory->create(imflag,nmax,"body/rounded/polygon:imflag"); + memory->create(imdata,nmax,7,"body/nparticle:imdata"); +} + +/* ---------------------------------------------------------------------- */ + +BodyRoundedPolygon::~BodyRoundedPolygon() +{ + delete icp; + delete dcp; + memory->destroy(imflag); + memory->destroy(imdata); +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolygon::nsub(AtomVecBody::Bonus *bonus) +{ + return bonus->ivalue[0]; +} + +/* ---------------------------------------------------------------------- */ + +double *BodyRoundedPolygon::coords(AtomVecBody::Bonus *bonus) +{ + return bonus->dvalue; +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolygon::nedges(AtomVecBody::Bonus *bonus) +{ + int nvertices = bonus->ivalue[0]; + if (nvertices == 1) return 0; + else if (nvertices == 2) return 1; + return nvertices; +} + +/* ---------------------------------------------------------------------- */ + +double *BodyRoundedPolygon::edges(AtomVecBody::Bonus *bonus) +{ + return bonus->dvalue+3*nsub(bonus); +} + +/* ---------------------------------------------------------------------- */ + +double BodyRoundedPolygon::enclosing_radius(struct AtomVecBody::Bonus *bonus) +{ + int nvertices = bonus->ivalue[0]; + if (nvertices == 1 || nvertices == 2) + return *(bonus->dvalue+3*nsub(bonus)+2); + return *(bonus->dvalue+3*nsub(bonus)+2*nsub(bonus)); +} + +/* ---------------------------------------------------------------------- */ + +double BodyRoundedPolygon::rounded_radius(struct AtomVecBody::Bonus *bonus) +{ + int nvertices = bonus->ivalue[0]; + if (nvertices == 1 || nvertices == 2) + return *(bonus->dvalue+3*nsub(bonus)+2+1); + return *(bonus->dvalue+3*nsub(bonus)+2*nsub(bonus)+1); +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolygon::pack_border_body(AtomVecBody::Bonus *bonus, double *buf) +{ + int nsub = bonus->ivalue[0]; + buf[0] = nsub; + memcpy(&buf[1],bonus->dvalue,(3*nsub+2*nsub+1+1)*sizeof(double)); + return 1+(3*nsub+2*nsub+1+1); +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolygon::unpack_border_body(AtomVecBody::Bonus *bonus, + double *buf) +{ + int nsub = static_cast (buf[0]); + bonus->ivalue[0] = nsub; + memcpy(bonus->dvalue,&buf[1],(3*nsub+2*nsub+1+1)*sizeof(double)); + return 1+(3*nsub+2*nsub+1+1); +} + +/* ---------------------------------------------------------------------- + populate bonus data structure with data file values +------------------------------------------------------------------------- */ + +void BodyRoundedPolygon::data_body(int ibonus, int ninteger, int ndouble, + int *ifile, double *dfile) +{ + AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; + + // set ninteger, ndouble in bonus and allocate 2 vectors of ints, doubles + + if (ninteger != 1) + error->one(FLERR,"Incorrect # of integer values in " + "Bodies section of data file"); + int nsub = ifile[0]; + if (nsub < 1) + error->one(FLERR,"Incorrect integer value in " + "Bodies section of data file"); + + // nentries = number of double entries to be read from Body section: + // 6 for inertia + 3*nsub for vertex coords + 1 for rounded radius + + int nentries = 6 + 3*nsub + 1; + if (ndouble != nentries) + error->one(FLERR,"Incorrect # of floating-point values in " + "Bodies section of data file"); + + bonus->ninteger = 1; + bonus->ivalue = icp->get(bonus->iindex); + bonus->ivalue[0] = nsub; + bonus->ndouble = 3*nsub + 2*nsub + 1 + 1; + bonus->dvalue = dcp->get(bonus->ndouble,bonus->dindex); + + // diagonalize inertia tensor + + double tensor[3][3]; + tensor[0][0] = dfile[0]; + tensor[1][1] = dfile[1]; + tensor[2][2] = dfile[2]; + tensor[0][1] = tensor[1][0] = dfile[3]; + tensor[0][2] = tensor[2][0] = dfile[4]; + tensor[1][2] = tensor[2][1] = dfile[5]; + + double *inertia = bonus->inertia; + double evectors[3][3]; + int ierror = MathExtra::jacobi(tensor,inertia,evectors); + if (ierror) error->one(FLERR, + "Insufficient Jacobi rotations for body nparticle"); + + // if any principal moment < scaled EPSILON, set to 0.0 + + double max; + max = MAX(inertia[0],inertia[1]); + max = MAX(max,inertia[2]); + + if (inertia[0] < EPSILON*max) inertia[0] = 0.0; + if (inertia[1] < EPSILON*max) inertia[1] = 0.0; + if (inertia[2] < EPSILON*max) inertia[2] = 0.0; + + // exyz_space = principal axes in space frame + + double ex_space[3],ey_space[3],ez_space[3]; + + ex_space[0] = evectors[0][0]; + ex_space[1] = evectors[1][0]; + ex_space[2] = evectors[2][0]; + ey_space[0] = evectors[0][1]; + ey_space[1] = evectors[1][1]; + ey_space[2] = evectors[2][1]; + ez_space[0] = evectors[0][2]; + ez_space[1] = evectors[1][2]; + ez_space[2] = evectors[2][2]; + + // enforce 3 evectors as a right-handed coordinate system + // flip 3rd vector if needed + + double cross[3]; + MathExtra::cross3(ex_space,ey_space,cross); + if (MathExtra::dot3(cross,ez_space) < 0.0) MathExtra::negate3(ez_space); + + // create initial quaternion + + MathExtra::exyz_to_q(ex_space,ey_space,ez_space,bonus->quat); + + // bonus->dvalue = the first 3*nsub elements are sub-particle displacements + // find the enclosing radius of the body from the maximum displacement + + int i,m; + double delta[3], rsq, erad, rrad; + double erad2 = 0; + int j = 6; + int k = 0; + for (i = 0; i < nsub; i++) { + delta[0] = dfile[j]; + delta[1] = dfile[j+1]; + delta[2] = dfile[j+2]; + MathExtra::transpose_matvec(ex_space,ey_space,ez_space, + delta,&bonus->dvalue[k]); + rsq = delta[0] * delta[0] + delta[1] * delta[1] + + delta[2] * delta[2]; + if (rsq > erad2) erad2 = rsq; + j += 3; + k += 3; + } + + // .. the next 2*nsub elements are edge ends + + int nedges; + if (nsub == 1) { // spheres + nedges = 0; + bonus->dvalue[k] = 0; + *(&bonus->dvalue[k]+1) = 0; + k += 2; + + // the last element of bonus->dvalue is the rounded & enclosing radius + + rrad = 0.5 * dfile[j]; + bonus->dvalue[k] = rrad; + erad = rrad; + + k++; + bonus->dvalue[k] = rrad; + + atom->radius[bonus->ilocal] = erad; + + } else if (nsub == 2) { // rods + nedges = 1; + for (i = 0; i < nedges; i++) { + bonus->dvalue[k] = 0; + *(&bonus->dvalue[k]+1) = 1; + k += 2; + } + + erad = sqrt(erad2); + bonus->dvalue[k] = erad; + + // the last element of bonus->dvalue is the rounded radius + + rrad = 0.5 * dfile[j]; + k++; + bonus->dvalue[k] = rrad; + + atom->radius[bonus->ilocal] = erad + rrad; + + } else { // polygons + nedges = nsub; + for (i = 0; i < nedges; i++) { + bonus->dvalue[k] = i; + m = i+1; + if (m == nedges) m = 0; + *(&bonus->dvalue[k]+1) = m; + k += 2; + } + + // the next to last element is the enclosing radius + + erad = sqrt(erad2); + bonus->dvalue[k] = erad; + + // the last element of bonus->dvalue is the rounded radius + + rrad = 0.5 * dfile[j]; + k++; + bonus->dvalue[k] = rrad; + + atom->radius[bonus->ilocal] = erad + rrad; + } +} + +/* ---------------------------------------------------------------------- + return radius of body particle defined by ifile/dfile params + params are ordered as in data file + called by Molecule class which needs single body size +------------------------------------------------------------------------- */ + +double BodyRoundedPolygon::radius_body(int ninteger, int ndouble, + int *ifile, double *dfile) +{ + int nsub = ifile[0]; + if (nsub < 1) + error->one(FLERR,"Incorrect integer value in " + "Bodies section of data file"); + if (ndouble != 6 + 3*nsub + 1) + error->one(FLERR,"Incorrect # of floating-point values in " + "Bodies section of data file"); + + // sub-particle coords are relative to body center at (0,0,0) + // offset = 6 for sub-particle coords + + double onerad; + double maxrad = 0.0; + double delta[3]; + + int offset = 6; + for (int i = 0; i < nsub; i++) { + delta[0] = dfile[offset]; + delta[1] = dfile[offset+1]; + delta[2] = dfile[offset+2]; + offset += 3; + onerad = MathExtra::len3(delta); + maxrad = MAX(maxrad,onerad); + } + + // add in radius of rounded corners + + return maxrad + 0.5*dfile[offset]; +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolygon::noutcol() +{ + // the number of columns for the vertex coordinates + + return 3; +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolygon::noutrow(int ibonus) +{ + // only return the first nsub rows for the vertex coordinates + + return avec->bonus[ibonus].ivalue[0]; +} + +/* ---------------------------------------------------------------------- */ + +void BodyRoundedPolygon::output(int ibonus, int m, double *values) +{ + AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; + + double p[3][3]; + MathExtra::quat_to_mat(bonus->quat,p); + MathExtra::matvec(p,&bonus->dvalue[3*m],values); + + double *x = atom->x[bonus->ilocal]; + values[0] += x[0]; + values[1] += x[1]; + values[2] += x[2]; +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolygon::image(int ibonus, double flag1, double flag2, + int *&ivec, double **&darray) +{ + int j; + double p[3][3]; + double *x, rrad; + + AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; + int n = bonus->ivalue[0]; + + if (n == 1) { + for (int i = 0; i < n; i++) { + imflag[i] = SPHERE; + MathExtra::quat_to_mat(bonus->quat,p); + MathExtra::matvec(p,&bonus->dvalue[3*i],imdata[i]); + + rrad = enclosing_radius(bonus); + x = atom->x[bonus->ilocal]; + imdata[i][0] += x[0]; + imdata[i][1] += x[1]; + imdata[i][2] += x[2]; + if (flag1 <= 0) imdata[i][3] = 2*rrad; + else imdata[i][3] = flag1; + } + + } else { + + // first end pt of each line + + for (int i = 0; i < n; i++) { + imflag[i] = LINE; + MathExtra::quat_to_mat(bonus->quat,p); + MathExtra::matvec(p,&bonus->dvalue[3*i],imdata[i]); + + rrad = rounded_radius(bonus); + x = atom->x[bonus->ilocal]; + imdata[i][0] += x[0]; + imdata[i][1] += x[1]; + imdata[i][2] += x[2]; + if (flag1 <= 0) imdata[i][6] = 2*rrad; + else imdata[i][6] = flag1; + } + + // second end pt of each line + + for (int i = 0; i < n; i++) { + j = i+1; + if (j == n) j = 0; + imdata[i][3] = imdata[j][0]; + imdata[i][4] = imdata[j][1]; + imdata[i][5] = imdata[j][2]; + } + } + + ivec = imflag; + darray = imdata; + return n; +} diff --git a/src/BODY/body_rounded_polygon.h b/src/BODY/body_rounded_polygon.h new file mode 100644 index 0000000000..b6f45c5cf5 --- /dev/null +++ b/src/BODY/body_rounded_polygon.h @@ -0,0 +1,86 @@ +/* -*- 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 BODY_CLASS + +BodyStyle(rounded/polygon,BodyRoundedPolygon) + +#else + +#ifndef LMP_BODY_ROUNDED_POLYGON_H +#define LMP_BODY_ROUNDED_POLYGON_H + +#include "body.h" +#include "atom_vec_body.h" + +namespace LAMMPS_NS { + +class BodyRoundedPolygon : public Body { + public: + BodyRoundedPolygon(class LAMMPS *, int, char **); + ~BodyRoundedPolygon(); + int nsub(struct AtomVecBody::Bonus *); + double *coords(struct AtomVecBody::Bonus *); + int nedges(struct AtomVecBody::Bonus *); + double *edges(struct AtomVecBody::Bonus *); + double enclosing_radius(struct AtomVecBody::Bonus *); + double rounded_radius(struct AtomVecBody::Bonus *); + + int pack_border_body(struct AtomVecBody::Bonus *, double *); + int unpack_border_body(struct AtomVecBody::Bonus *, double *); + void data_body(int, int, int, int *, double *); + double radius_body(int, int, int *, double *); + + int noutrow(int); + int noutcol(); + void output(int, int, double *); + int image(int, double, double, int *&, double **&); + + private: + int *imflag; + double **imdata; +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Invalid body rounded/polygon command + +Arguments in atom-style command are not correct. + +E: Invalid format in Bodies section of data file + +The specified number of integer or floating point values does not +appear. + +E: Incorrect # of integer values in Bodies section of data file + +See doc page for body style. + +E: Incorrect integer value in Bodies section of data file + +See doc page for body style. + +E: Incorrect # of floating-point values in Bodies section of data file + +See doc page for body style. + +E: Insufficient Jacobi rotations for body nparticle + +Eigensolve for rigid body was not sufficiently accurate. + +*/ diff --git a/src/BODY/body_rounded_polyhedron.cpp b/src/BODY/body_rounded_polyhedron.cpp new file mode 100644 index 0000000000..a26b6d0cbd --- /dev/null +++ b/src/BODY/body_rounded_polyhedron.cpp @@ -0,0 +1,523 @@ +/* ---------------------------------------------------------------------- + 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: Trung Dac Nguyen (ndactrung@gmail.com) +------------------------------------------------------------------------- */ + +#include +#include "body_rounded_polyhedron.h" +#include "atom_vec_body.h" +#include "atom.h" +#include "force.h" +#include "domain.h" +#include "math_extra.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +#define EPSILON 1.0e-7 +#define MAX_FACE_SIZE 4 // maximum number of vertices per face (for now) + +enum{SPHERE,LINE}; // also in DumpImage + +/* ---------------------------------------------------------------------- */ + +BodyRoundedPolyhedron::BodyRoundedPolyhedron(LAMMPS *lmp, int narg, char **arg) : + Body(lmp, narg, arg) +{ + if (narg != 3) error->all(FLERR,"Invalid body rounded/polygon command"); + + // nmin and nmax are minimum and maximum number of vertices + + int nmin = force->inumeric(FLERR,arg[1]); + int nmax = force->inumeric(FLERR,arg[2]); + if (nmin <= 0 || nmin > nmax) + error->all(FLERR,"Invalid body rounded/polyhedron command"); + + size_forward = 0; + + // 1 integer for number of vertices, + // 3*nmax doubles for vertex coordinates + 2*nmax doubles for edge ends + + // (MAX_FACE_SIZE+1)*nmax for faces + // 1 double for the enclosing radius + // 1 double for the rounded radius + + size_border = 1 + 3*nmax + 2*nmax + MAX_FACE_SIZE*nmax + 1 + 1; + + // NOTE: need to set appropriate nnbin param for dcp + + icp = new MyPoolChunk(1,3); + dcp = new MyPoolChunk(3*nmin+2+1+1, + 3*nmax+2*nmax+MAX_FACE_SIZE*nmax+1+1); + + memory->create(imflag,2*nmax,"body/rounded/polyhedron:imflag"); + memory->create(imdata,2*nmax,7,"body/polyhedron:imdata"); +} + +/* ---------------------------------------------------------------------- */ + +BodyRoundedPolyhedron::~BodyRoundedPolyhedron() +{ + delete icp; + delete dcp; + memory->destroy(imflag); + memory->destroy(imdata); +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolyhedron::nsub(AtomVecBody::Bonus *bonus) +{ + return bonus->ivalue[0]; +} + +/* ---------------------------------------------------------------------- */ + +double *BodyRoundedPolyhedron::coords(AtomVecBody::Bonus *bonus) +{ + return bonus->dvalue; +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolyhedron::nedges(AtomVecBody::Bonus *bonus) +{ + int nvertices = bonus->ivalue[0]; + int nedges = bonus->ivalue[1]; + int nfaces = bonus->ivalue[2]; + if (nvertices == 1) return 0; + else if (nvertices == 2) return 1; + return nedges; //(nvertices+nfaces-2); // Euler's polyon formula: V-E+F=2 +} + +/* ---------------------------------------------------------------------- */ + +double *BodyRoundedPolyhedron::edges(AtomVecBody::Bonus *bonus) +{ + return bonus->dvalue+3*nsub(bonus); +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolyhedron::nfaces(AtomVecBody::Bonus *bonus) +{ + return bonus->ivalue[2]; +} + +/* ---------------------------------------------------------------------- */ + +double *BodyRoundedPolyhedron::faces(AtomVecBody::Bonus *bonus) +{ + int nvertices = bonus->ivalue[0]; + if (nvertices == 1 || nvertices == 2) return NULL; + return bonus->dvalue+3*nsub(bonus)+2*nedges(bonus); +} + +/* ---------------------------------------------------------------------- */ + +double BodyRoundedPolyhedron::enclosing_radius(struct AtomVecBody::Bonus *bonus) +{ + int nvertices = bonus->ivalue[0]; + if (nvertices == 1 || nvertices == 2) + return *(bonus->dvalue+3*nsub(bonus)+2); + return *(bonus->dvalue+3*nsub(bonus)+2*nedges(bonus)+MAX_FACE_SIZE*nfaces(bonus)); +} + +/* ---------------------------------------------------------------------- */ + +double BodyRoundedPolyhedron::rounded_radius(struct AtomVecBody::Bonus *bonus) +{ + int nvertices = bonus->ivalue[0]; + if (nvertices == 1 || nvertices == 2) + return *(bonus->dvalue+3*nsub(bonus)+2+1); + return *(bonus->dvalue+3*nsub(bonus)+2*nedges(bonus)+MAX_FACE_SIZE*nfaces(bonus)+1); +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolyhedron::pack_border_body(AtomVecBody::Bonus *bonus, double *buf) +{ + int nsub = bonus->ivalue[0]; + int ned = bonus->ivalue[1]; + int nfac = bonus->ivalue[2]; + buf[0] = nsub; + buf[1] = ned; + buf[2] = nfac; + int ndouble; + if (nsub == 1 || nsub == 2) ndouble = 3*nsub+2+MAX_FACE_SIZE*nfac+1+1; + else ndouble = 3*nsub+2*nedges(bonus)+MAX_FACE_SIZE*nfac+1+1; + memcpy(&buf[3],bonus->dvalue,ndouble*sizeof(double)); + return 3+ndouble; +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolyhedron::unpack_border_body(AtomVecBody::Bonus *bonus, + double *buf) +{ + int nsub = static_cast (buf[0]); + int ned = static_cast (buf[1]); + int nfac = static_cast (buf[2]); + bonus->ivalue[0] = nsub; + bonus->ivalue[1] = ned; + bonus->ivalue[2] = nfac; + int ndouble; + if (nsub == 1 || nsub == 2) ndouble = 3*nsub+2+MAX_FACE_SIZE*nfac+1+1; + else ndouble = 3*nsub+2*nedges(bonus)+MAX_FACE_SIZE*nfac+1+1; + memcpy(bonus->dvalue,&buf[3],ndouble*sizeof(double)); + return 3+ndouble; +} + +/* ---------------------------------------------------------------------- + populate bonus data structure with data file values +------------------------------------------------------------------------- */ + +void BodyRoundedPolyhedron::data_body(int ibonus, int ninteger, int ndouble, + int *ifile, double *dfile) +{ + AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; + + // set ninteger, ndouble in bonus and allocate 2 vectors of ints, doubles + + if (ninteger != 3) + error->one(FLERR,"Incorrect # of integer values in " + "Bodies section of data file"); + int nsub = ifile[0]; + int ned = ifile[1]; + int nfac = ifile[2]; + if (nsub < 1) + error->one(FLERR,"Incorrect integer value in " + "Bodies section of data file"); + + // nentries = number of double entries to be read from Body section: + // nsub == 1 || nsub == 2 || nsub == 3: + // 6 for inertia + 3*nsub for vertex coords + 1 for rounded radius + // nsub > 3: + // 6 for inertia + 3*nsub for vertex coords + 2*nsub for edges + 3*nfaces + 1 for rounded radius + + int nedges,nentries; + if (nsub == 1 || nsub == 2) { + nentries = 6 + 3*nsub + 1; + } else { + nedges = ned; //nsub + nfac - 2; + nentries = 6 + 3*nsub + 2*nedges + MAX_FACE_SIZE*nfac + 1; + } + if (ndouble != nentries) + error->one(FLERR,"Incorrect # of floating-point values in " + "Bodies section of data file"); + + bonus->ninteger = 3; + bonus->ivalue = icp->get(bonus->iindex); + bonus->ivalue[0] = nsub; + bonus->ivalue[1] = ned; + bonus->ivalue[2] = nfac; + if (nsub == 1 || nsub == 2) bonus->ndouble = 3*nsub + 2*nsub + 1 + 1; + else bonus->ndouble = 3*nsub + 2*nedges + MAX_FACE_SIZE*nfac + 1 + 1; + bonus->dvalue = dcp->get(bonus->ndouble,bonus->dindex); + + // diagonalize inertia tensor + + double tensor[3][3]; + tensor[0][0] = dfile[0]; + tensor[1][1] = dfile[1]; + tensor[2][2] = dfile[2]; + tensor[0][1] = tensor[1][0] = dfile[3]; + tensor[0][2] = tensor[2][0] = dfile[4]; + tensor[1][2] = tensor[2][1] = dfile[5]; + + double *inertia = bonus->inertia; + double evectors[3][3]; + int ierror = MathExtra::jacobi(tensor,inertia,evectors); + if (ierror) error->one(FLERR, + "Insufficient Jacobi rotations for body nparticle"); + + // if any principal moment < scaled EPSILON, set to 0.0 + + double max; + max = MAX(inertia[0],inertia[1]); + max = MAX(max,inertia[2]); + + if (inertia[0] < EPSILON*max) inertia[0] = 0.0; + if (inertia[1] < EPSILON*max) inertia[1] = 0.0; + if (inertia[2] < EPSILON*max) inertia[2] = 0.0; + + // exyz_space = principal axes in space frame + + double ex_space[3],ey_space[3],ez_space[3]; + + ex_space[0] = evectors[0][0]; + ex_space[1] = evectors[1][0]; + ex_space[2] = evectors[2][0]; + ey_space[0] = evectors[0][1]; + ey_space[1] = evectors[1][1]; + ey_space[2] = evectors[2][1]; + ez_space[0] = evectors[0][2]; + ez_space[1] = evectors[1][2]; + ez_space[2] = evectors[2][2]; + + // enforce 3 evectors as a right-handed coordinate system + // flip 3rd vector if needed + + double cross[3]; + MathExtra::cross3(ex_space,ey_space,cross); + if (MathExtra::dot3(cross,ez_space) < 0.0) MathExtra::negate3(ez_space); + + // create initial quaternion + + MathExtra::exyz_to_q(ex_space,ey_space,ez_space,bonus->quat); + + // bonus->dvalue = the first 3*nsub elements are sub-particle displacements + // find the enclosing radius of the body from the maximum displacement + + int i,m; + double delta[3], rsq, erad, rrad; + double erad2 = 0; + int j = 6; + int k = 0; + for (i = 0; i < nsub; i++) { + delta[0] = dfile[j]; + delta[1] = dfile[j+1]; + delta[2] = dfile[j+2]; + MathExtra::transpose_matvec(ex_space,ey_space,ez_space, + delta,&bonus->dvalue[k]); + rsq = delta[0] * delta[0] + delta[1] * delta[1] + + delta[2] * delta[2]; + if (rsq > erad2) erad2 = rsq; + j += 3; + k += 3; + } + + // .. the next 2*nsub elements are edge ends + + if (nsub == 1) { // spheres + nedges = 0; + bonus->dvalue[k] = 0; + *(&bonus->dvalue[k]+1) = 0; + k += 2; + + rrad = 0.5 * dfile[j]; + bonus->dvalue[k] = rrad; + erad = rrad; // enclosing radius = rounded_radius + + // the last element of bonus->dvalue is the rounded radius + + k++; + bonus->dvalue[k] = rrad; + + atom->radius[bonus->ilocal] = erad; + + } else if (nsub == 2) { // rods + nedges = 1; + for (i = 0; i < nedges; i++) { + bonus->dvalue[k] = 0; + *(&bonus->dvalue[k]+1) = 1; + k += 2; + } + + erad = sqrt(erad2); + bonus->dvalue[k] = erad; + + // the last element of bonus->dvalue is the rounded radius + + rrad = 0.5 * dfile[j]; + k++; + bonus->dvalue[k] = rrad; + + atom->radius[bonus->ilocal] = erad + rrad; + + } else { // polyhedra + + // edges + + for (i = 0; i < nedges; i++) { + bonus->dvalue[k] = dfile[j]; + *(&bonus->dvalue[k]+1) = dfile[j+1]; + k += 2; + j += 2; + } + + // faces + + for (i = 0; i < nfac; i++) { + for (m = 0; m < MAX_FACE_SIZE; m++) + *(&bonus->dvalue[k]+m) = dfile[j+m]; + k += MAX_FACE_SIZE; + j += MAX_FACE_SIZE; + } + + // the next to last element is the enclosing radius + + erad = sqrt(erad2); + bonus->dvalue[k] = erad; + + // the last element bonus-> dvalue is the rounded radius + + rrad = 0.5 * dfile[j]; + k++; + bonus->dvalue[k] = rrad; + + atom->radius[bonus->ilocal] = erad + rrad; + } +} + +/* ---------------------------------------------------------------------- + return radius of body particle defined by ifile/dfile params + params are ordered as in data file + called by Molecule class which needs single body size +------------------------------------------------------------------------- */ + +double BodyRoundedPolyhedron::radius_body(int ninteger, int ndouble, + int *ifile, double *dfile) +{ + int nsub = ifile[0]; + int ned = ifile[1]; + int nfac = ifile[2]; + int nedges = ned; //nsub + nfac - 2; + + int nentries; + if (nsub == 1 || nsub == 2) nentries = 6 + 3*nsub + 1; + else nentries = 6 + 3*nsub + 2*nedges + MAX_FACE_SIZE*nfac + 1; + + if (nsub < 1) + error->one(FLERR,"Incorrect integer value in " + "Bodies section of data file"); + if (ndouble != nentries) + error->one(FLERR,"Incorrect # of floating-point values in " + "Bodies section of data file"); + + // sub-particle coords are relative to body center at (0,0,0) + // offset = 6 for sub-particle coords + + double onerad; + double maxrad = 0.0; + double delta[3]; + + int offset = 6; + for (int i = 0; i < nsub; i++) { + delta[0] = dfile[offset]; + delta[1] = dfile[offset+1]; + delta[2] = dfile[offset+2]; + offset += 3; + onerad = MathExtra::len3(delta); + maxrad = MAX(maxrad,onerad); + } + + if (nsub > 2) offset += (2*nedges+MAX_FACE_SIZE*nfac); + + // add in radius of rounded corners + + return maxrad + 0.5*dfile[offset]; +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolyhedron::noutcol() +{ + // the number of columns for the vertex coordinates + + return 3; +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolyhedron::noutrow(int ibonus) +{ + // only return the first nsub rows for the vertex coordinates + + return avec->bonus[ibonus].ivalue[0]; +} + +/* ---------------------------------------------------------------------- */ + +void BodyRoundedPolyhedron::output(int ibonus, int m, double *values) +{ + AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; + + double p[3][3]; + MathExtra::quat_to_mat(bonus->quat,p); + MathExtra::matvec(p,&bonus->dvalue[3*m],values); + + double *x = atom->x[bonus->ilocal]; + values[0] += x[0]; + values[1] += x[1]; + values[2] += x[2]; +} + +/* ---------------------------------------------------------------------- */ + +int BodyRoundedPolyhedron::image(int ibonus, double flag1, double flag2, + int *&ivec, double **&darray) +{ + int j, nelements; + double p[3][3]; + double *x, rrad; + + AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; + int nvertices = bonus->ivalue[0]; + + if (nvertices == 1) { // spheres + + for (int i = 0; i < nvertices; i++) { + imflag[i] = SPHERE; + MathExtra::quat_to_mat(bonus->quat,p); + MathExtra::matvec(p,&bonus->dvalue[3*i],imdata[i]); + + rrad = enclosing_radius(bonus); + x = atom->x[bonus->ilocal]; + imdata[i][0] += x[0]; + imdata[i][1] += x[1]; + imdata[i][2] += x[2]; + if (flag1 <= 0) imdata[i][3] = 2*rrad; + else imdata[i][3] = flag1; + } + + nelements = nvertices; + } else { + int nfaces = bonus->ivalue[2]; + int nedges = bonus->ivalue[1]; //nvertices + nfaces - 2; + if (nvertices == 2) nedges = 1; // special case: rods + double* edge_ends = &bonus->dvalue[3*nvertices]; + int pt1, pt2; + + for (int i = 0; i < nedges; i++) { + imflag[i] = LINE; + + pt1 = static_cast(edge_ends[2*i]); + pt2 = static_cast(edge_ends[2*i+1]); + + MathExtra::quat_to_mat(bonus->quat,p); + MathExtra::matvec(p,&bonus->dvalue[3*pt1],imdata[i]); + MathExtra::matvec(p,&bonus->dvalue[3*pt2],&imdata[i][3]); + + rrad = rounded_radius(bonus); + x = atom->x[bonus->ilocal]; + imdata[i][0] += x[0]; + imdata[i][1] += x[1]; + imdata[i][2] += x[2]; + imdata[i][3] += x[0]; + imdata[i][4] += x[1]; + imdata[i][5] += x[2]; + + if (flag1 <= 0) imdata[i][6] = 2*rrad; + else imdata[i][6] = flag1; + } + + nelements = nedges; + } + + ivec = imflag; + darray = imdata; + return nelements; +} diff --git a/src/BODY/body_rounded_polyhedron.h b/src/BODY/body_rounded_polyhedron.h new file mode 100644 index 0000000000..e5b15fd8f9 --- /dev/null +++ b/src/BODY/body_rounded_polyhedron.h @@ -0,0 +1,88 @@ +/* -*- 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 BODY_CLASS + +BodyStyle(rounded/polyhedron,BodyRoundedPolyhedron) + +#else + +#ifndef LMP_BODY_ROUNDED_POLYHEDRON_H +#define LMP_BODY_ROUNDED_POLYHEDRON_H + +#include "body.h" +#include "atom_vec_body.h" + +namespace LAMMPS_NS { + +class BodyRoundedPolyhedron : public Body { + public: + BodyRoundedPolyhedron(class LAMMPS *, int, char **); + ~BodyRoundedPolyhedron(); + int nsub(struct AtomVecBody::Bonus *); + double *coords(struct AtomVecBody::Bonus *); + int nedges(struct AtomVecBody::Bonus *); + double *edges(struct AtomVecBody::Bonus *); + int nfaces(struct AtomVecBody::Bonus *); + double *faces(struct AtomVecBody::Bonus *); + double enclosing_radius(struct AtomVecBody::Bonus *); + double rounded_radius(struct AtomVecBody::Bonus *); + + int pack_border_body(struct AtomVecBody::Bonus *, double *); + int unpack_border_body(struct AtomVecBody::Bonus *, double *); + void data_body(int, int, int, int *, double *); + double radius_body(int, int, int *, double *); + + int noutrow(int); + int noutcol(); + void output(int, int, double *); + int image(int, double, double, int *&, double **&); + + private: + int *imflag; + double **imdata; +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Invalid body rounded/polyhedron command + +Arguments in atom-style command are not correct. + +E: Invalid format in Bodies section of data file + +The specified number of integer or floating point values does not +appear. + +E: Incorrect # of integer values in Bodies section of data file + +See doc page for body style. + +E: Incorrect integer value in Bodies section of data file + +See doc page for body style. + +E: Incorrect # of floating-point values in Bodies section of data file + +See doc page for body style. + +E: Insufficient Jacobi rotations for body rounded/polyhedron + +Eigensolve for rigid body was not sufficiently accurate. + +*/ diff --git a/src/BODY/fix_wall_body_polygon.cpp b/src/BODY/fix_wall_body_polygon.cpp new file mode 100644 index 0000000000..ea81ae26df --- /dev/null +++ b/src/BODY/fix_wall_body_polygon.cpp @@ -0,0 +1,831 @@ +/* ---------------------------------------------------------------------- + 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 authors: Trung Dac Nguyen (ndactrung@gmail.com) +------------------------------------------------------------------------- */ + +#include +#include +#include +#include "fix_wall_body_polygon.h" +#include "atom.h" +#include "atom_vec_body.h" +#include "body_rounded_polygon.h" +#include "domain.h" +#include "update.h" +#include "force.h" +#include "pair.h" +#include "modify.h" +#include "respa.h" +#include "math_const.h" +#include "math_extra.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; + +enum{XPLANE=0,YPLANE=1,ZCYLINDER}; // XYZ PLANE need to be 0,1,2 +enum{HOOKE,HOOKE_HISTORY}; + +enum {INVALID=0,NONE=1,VERTEX=2}; +enum {FAR=0,XLO,XHI,YLO,YHI}; + +//#define _POLYGON_DEBUG +#define DELTA 10000 +#define EPSILON 1e-2 +#define BIG 1.0e20 +#define MAX_CONTACTS 4 // maximum number of contacts for 2D models +#define EFF_CONTACTS 2 // effective contacts for 2D models + +/* ---------------------------------------------------------------------- */ + +FixWallBodyPolygon::FixWallBodyPolygon(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg) +{ + if (narg < 7) error->all(FLERR,"Illegal fix wall/body/polygon command"); + + if (!atom->body_flag) + error->all(FLERR,"Fix wall/body/polygon requires atom style body/rounded/polygon"); + + restart_peratom = 1; + create_attribute = 1; + + // wall/particle coefficients + + kn = force->numeric(FLERR,arg[3]); + + c_n = force->numeric(FLERR,arg[4]); + if (strcmp(arg[5],"NULL") == 0) c_t = 0.5 * c_n; + else c_t = force->numeric(FLERR,arg[5]); + + if (kn < 0.0 || c_n < 0.0 || c_t < 0.0) + error->all(FLERR,"Illegal fix wall/body/polygon command"); + + // wallstyle args + + int iarg = 6; + if (strcmp(arg[iarg],"xplane") == 0) { + if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/body/polygon command"); + wallstyle = XPLANE; + if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; + else lo = force->numeric(FLERR,arg[iarg+1]); + if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; + else hi = force->numeric(FLERR,arg[iarg+2]); + iarg += 3; + } else if (strcmp(arg[iarg],"yplane") == 0) { + if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/body/polygon command"); + wallstyle = YPLANE; + if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; + else lo = force->numeric(FLERR,arg[iarg+1]); + if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; + else hi = force->numeric(FLERR,arg[iarg+2]); + iarg += 3; + } else if (strcmp(arg[iarg],"zcylinder") == 0) { + if (narg < iarg+2) error->all(FLERR,"Illegal fix wall/body/polygon command"); + wallstyle = ZCYLINDER; + lo = hi = 0.0; + cylradius = force->numeric(FLERR,arg[iarg+1]); + iarg += 2; + } + + // check for trailing keyword/values + + wiggle = 0; + + while (iarg < narg) { + if (strcmp(arg[iarg],"wiggle") == 0) { + if (iarg+4 > narg) error->all(FLERR,"Illegal fix wall/body/polygon command"); + if (strcmp(arg[iarg+1],"x") == 0) axis = 0; + else if (strcmp(arg[iarg+1],"y") == 0) axis = 1; + else if (strcmp(arg[iarg+1],"z") == 0) axis = 2; + else error->all(FLERR,"Illegal fix wall/body/polygon command"); + amplitude = force->numeric(FLERR,arg[iarg+2]); + period = force->numeric(FLERR,arg[iarg+3]); + wiggle = 1; + iarg += 4; + } else error->all(FLERR,"Illegal fix wall/body/polygon command"); + } + + if (wallstyle == XPLANE && domain->xperiodic) + error->all(FLERR,"Cannot use wall in periodic dimension"); + if (wallstyle == YPLANE && domain->yperiodic) + error->all(FLERR,"Cannot use wall in periodic dimension"); + if (wallstyle == ZCYLINDER && (domain->xperiodic || domain->yperiodic)) + error->all(FLERR,"Cannot use wall in periodic dimension"); + + if (wiggle && wallstyle == ZCYLINDER && axis != 2) + error->all(FLERR,"Invalid wiggle direction for fix wall/body/polygon"); + + // setup oscillations + + if (wiggle) omega = 2.0*MY_PI / period; + + time_origin = update->ntimestep; + + dmax = nmax = 0; + discrete = NULL; + dnum = dfirst = NULL; + + edmax = ednummax = 0; + edge = NULL; + ednum = edfirst = NULL; + + enclosing_radius = NULL; + rounded_radius = NULL; +} + +/* ---------------------------------------------------------------------- */ + +FixWallBodyPolygon::~FixWallBodyPolygon() +{ + memory->destroy(discrete); + memory->destroy(dnum); + memory->destroy(dfirst); + + memory->destroy(edge); + memory->destroy(ednum); + memory->destroy(edfirst); + + memory->destroy(enclosing_radius); + memory->destroy(rounded_radius); +} + +/* ---------------------------------------------------------------------- */ + +int FixWallBodyPolygon::setmask() +{ + int mask = 0; + mask |= POST_FORCE; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixWallBodyPolygon::init() +{ + dt = update->dt; + + avec = (AtomVecBody *) atom->style_match("body"); + if (!avec) + error->all(FLERR,"Pair body/rounded/polygon requires atom style body"); + if (strcmp(avec->bptr->style,"rounded/polygon") != 0) + error->all(FLERR,"Pair body/rounded/polygon requires body style rounded/polygon"); + bptr = (BodyRoundedPolygon *) avec->bptr; + + // set pairstyle from body/polygonular pair style + + if (force->pair_match("body/rounded/polygon",1)) + pairstyle = HOOKE; + else error->all(FLERR,"Fix wall/body/polygon is incompatible with Pair style"); +} + +/* ---------------------------------------------------------------------- */ + +void FixWallBodyPolygon::setup(int vflag) +{ + if (strstr(update->integrate_style,"verlet")) + post_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixWallBodyPolygon::post_force(int vflag) +{ + double vwall[3],dx,dy,dz,del1,del2,delxy,delr,rsq,eradi,rradi,wall_pos; + int i,ni,npi,ifirst,nei,iefirst,side; + double facc[3]; + + // set position of wall to initial settings and velocity to 0.0 + // if wiggle, set wall position and velocity accordingly + + double wlo = lo; + double whi = hi; + vwall[0] = vwall[1] = vwall[2] = 0.0; + if (wiggle) { + double arg = omega * (update->ntimestep - time_origin) * dt; + if (wallstyle == axis) { + wlo = lo + amplitude - amplitude*cos(arg); + whi = hi + amplitude - amplitude*cos(arg); + } + vwall[axis] = amplitude*omega*sin(arg); + } + + // loop over all my atoms + // rsq = distance from wall + // dx,dy,dz = signed distance from wall + // for rotating cylinder, reset vwall based on particle position + // skip atom if not close enough to wall + // if wall was set to NULL, it's skipped since lo/hi are infinity + // compute force and torque on atom if close enough to wall + // via wall potential matched to pair potential + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + int *body = atom->body; + double *radius = atom->radius; + double **torque = atom->torque; + double **angmom = atom->angmom; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + // grow the per-atom lists if necessary and initialize + + if (atom->nmax > nmax) { + memory->destroy(dnum); + memory->destroy(dfirst); + memory->destroy(ednum); + memory->destroy(edfirst); + memory->destroy(enclosing_radius); + memory->destroy(rounded_radius); + nmax = atom->nmax; + memory->create(dnum,nmax,"fix:dnum"); + memory->create(dfirst,nmax,"fix:dfirst"); + memory->create(ednum,nmax,"fix:ednum"); + memory->create(edfirst,nmax,"fix:edfirst"); + memory->create(enclosing_radius,nmax,"fix:enclosing_radius"); + memory->create(rounded_radius,nmax,"fix:rounded_radius"); + } + + ndiscrete = nedge = 0; + for (i = 0; i < nlocal; i++) + dnum[i] = ednum[i] = 0; + + for (i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + + if (body[i] < 0) continue; + + dx = dy = dz = 0.0; + side = FAR; + if (wallstyle == XPLANE) { + del1 = x[i][0] - wlo; + del2 = whi - x[i][0]; + if (del1 < del2) { + dx = del1; + wall_pos = wlo; + side = XLO; + } else { + dx = -del2; + wall_pos = whi; + side = XHI; + } + } else if (wallstyle == YPLANE) { + del1 = x[i][1] - wlo; + del2 = whi - x[i][1]; + if (del1 < del2) { + dy = del1; + wall_pos = wlo; + side = YLO; + } else { + dy = -del2; + wall_pos = whi; + side = YHI; + } + } else if (wallstyle == ZCYLINDER) { + delxy = sqrt(x[i][0]*x[i][0] + x[i][1]*x[i][1]); + delr = cylradius - delxy; + if (delr > eradi) dz = cylradius; + else { + dx = -delr/delxy * x[i][0]; + dy = -delr/delxy * x[i][1]; + } + } + + rsq = dx*dx + dy*dy + dz*dz; + if (rsq > radius[i]*radius[i]) continue; + + double r = sqrt(rsq); + double rsqinv = 1.0 / rsq; + + if (dnum[i] == 0) body2space(i); + npi = dnum[i]; + ifirst = dfirst[i]; + nei = ednum[i]; + iefirst = edfirst[i]; + eradi = enclosing_radius[i]; + rradi = rounded_radius[i]; + + // reset vertex and edge forces + + for (ni = 0; ni < npi; ni++) { + discrete[ifirst+ni][3] = 0; + discrete[ifirst+ni][4] = 0; + discrete[ifirst+ni][5] = 0; + } + + for (ni = 0; ni < nei; ni++) { + edge[iefirst+ni][2] = 0; + edge[iefirst+ni][3] = 0; + edge[iefirst+ni][4] = 0; + } + + int interact, num_contacts, done; + double delta_a, delta_ua, j_a; + Contact contact_list[MAX_CONTACTS]; + + num_contacts = 0; + facc[0] = facc[1] = facc[2] = 0; + interact = vertex_against_wall(i, wall_pos, x, f, torque, side, + contact_list, num_contacts, facc); + + if (num_contacts >= 2) { + + // find the first two distinct contacts + + done = 0; + for (int m = 0; m < num_contacts-1; m++) { + for (int n = m+1; n < num_contacts; n++) { + delta_a = contact_separation(contact_list[m], contact_list[n]); + if (delta_a > 0) { + delta_ua = 1.0; + j_a = delta_a / (EFF_CONTACTS * delta_ua); + if (j_a < 1.0) j_a = 1.0; + + // scale the force at both contacts + + contact_forces(contact_list[m], j_a, x, v, angmom, f, torque, + vwall, facc); + contact_forces(contact_list[n], j_a, x, v, angmom, f, torque, + vwall, facc); + done = 1; + break; + } + } + if (done == 1) break; + } + + } else if (num_contacts == 1) { + + // if there's only one contact, it should be handled here + // since forces/torques have not been accumulated from vertex2wall() + + contact_forces(contact_list[0], 1.0, x, v, angmom, f, torque, + vwall, facc); + } + } // group bit + } +} + +/* ---------------------------------------------------------------------- */ + +void FixWallBodyPolygon::reset_dt() +{ + dt = update->dt; +} + +/* ---------------------------------------------------------------------- + convert N sub-particles in body I to space frame using current quaternion + store sub-particle space-frame displacements from COM in discrete list +------------------------------------------------------------------------- */ + +void FixWallBodyPolygon::body2space(int i) +{ + int ibonus = atom->body[i]; + AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; + int nsub = bptr->nsub(bonus); + double *coords = bptr->coords(bonus); + int body_num_edges = bptr->nedges(bonus); + double* vertices = bptr->edges(bonus); + double eradius = bptr->enclosing_radius(bonus); + double rradius = bptr->rounded_radius(bonus); + + // get the number of sub-particles (vertices) + // and the index of the first vertex of my body in the list + + dnum[i] = nsub; + dfirst[i] = ndiscrete; + + // grow the vertex list if necessary + // the first 3 columns are for coords, the last 3 for forces + + if (ndiscrete + nsub > dmax) { + dmax += DELTA; + memory->grow(discrete,dmax,6,"fix:discrete"); + } + + double p[3][3]; + MathExtra::quat_to_mat(bonus->quat,p); + + for (int m = 0; m < nsub; m++) { + MathExtra::matvec(p,&coords[3*m],discrete[ndiscrete]); + discrete[ndiscrete][3] = 0; + discrete[ndiscrete][4] = 0; + discrete[ndiscrete][5] = 0; + ndiscrete++; + } + + // get the number of edges (vertices) + // and the index of the first edge of my body in the list + + ednum[i] = body_num_edges; + edfirst[i] = nedge; + + // grow the edge list if necessary + // the first 2 columns are for vertex indices within body, + // the last 3 for forces + + if (nedge + body_num_edges > edmax) { + edmax += DELTA; + memory->grow(edge,edmax,5,"fix:edge"); + } + + for (int m = 0; m < body_num_edges; m++) { + edge[nedge][0] = static_cast(vertices[2*m+0]); + edge[nedge][1] = static_cast(vertices[2*m+1]); + edge[nedge][2] = 0; + edge[nedge][3] = 0; + edge[nedge][4] = 0; + nedge++; + } + + enclosing_radius[i] = eradius; + rounded_radius[i] = rradius; +} + +/* ---------------------------------------------------------------------- + Determine the interaction mode between i's vertices against the wall + + i = atom i (body i) + x = atoms' coordinates + f = atoms' forces + torque = atoms' torques + Return: + contact_list = list of contacts between i and the wall + num_contacts = number of contacts between i's vertices and the wall + interact = 0 no interaction with the wall + 1 there's at least one vertex of i interacts + with the wall +---------------------------------------------------------------------- */ + +int FixWallBodyPolygon::vertex_against_wall(int i, double wall_pos, + double** x, double** f, double** torque, int side, + Contact* contact_list, int &num_contacts, double* facc) +{ + int ni, npi, ifirst, interact; + double xpi[3], xpj[3], dist, eradi, rradi; + double fx, fy, fz, rx, ry, rz; + int nlocal = atom->nlocal; + + npi = dnum[i]; + ifirst = dfirst[i]; + eradi = enclosing_radius[i]; + rradi = rounded_radius[i]; + + interact = 0; + + // loop through body i's vertices + + for (ni = 0; ni < npi; ni++) { + + // convert body-fixed coordinates to space-fixed, xi + + xpi[0] = x[i][0] + discrete[ifirst+ni][0]; + xpi[1] = x[i][1] + discrete[ifirst+ni][1]; + xpi[2] = x[i][2] + discrete[ifirst+ni][2]; + + int mode, contact, p2vertex; + double d, R, hi[3], t, delx, dely, delz, fpair, shift; + double xj[3], rij; + + // compute the distance from the vertex xpi to the wall + + mode = compute_distance_to_wall(xpi, rradi, wall_pos, side, + d, hi, contact); + + if (mode == INVALID || mode == NONE) continue; + + if (mode == VERTEX) { + + interact = 1; + + // vertex i interacts with the wall + + delx = xpi[0] - hi[0]; + dely = xpi[1] - hi[1]; + delz = xpi[2] - hi[2]; + + // R = surface separation = d shifted by the rounded radius + // R = d - p1.rounded_radius; + // note: the force is defined for R, not for d + // R > 0: no interaction + // R <= 0: deformation between vertex i and the wall + + rij = sqrt(delx*delx + dely*dely + delz*delz); + R = rij - rradi; + + // the normal frictional term -c_n * vn will be added later + + if (R <= 0) { // deformation occurs + fpair = -kn * R; + } else fpair = 0.0; + + fx = delx*fpair/rij; + fy = dely*fpair/rij; + fz = delz*fpair/rij; + + #ifdef _POLYGON_DEBUG + printf(" Interaction between vertex %d of %d and wall:", ni); + printf(" mode = %d; contact = %d; d = %f; rij = %f\n", + mode, contact, d, rij); + printf(" R = %f\n", R); + printf(" fpair = %f\n", fpair); + #endif + + if (contact == 1) { + + // vertex ni of body i contacts with edge nj of body j + + contact_list[num_contacts].ibody = i; + contact_list[num_contacts].jbody = -1; + contact_list[num_contacts].vertex = ni; + contact_list[num_contacts].edge = -1; + contact_list[num_contacts].xv[0] = xpi[0]; + contact_list[num_contacts].xv[1] = xpi[1]; + contact_list[num_contacts].xv[2] = xpi[2]; + contact_list[num_contacts].xe[0] = hi[0]; + contact_list[num_contacts].xe[1] = hi[1]; + contact_list[num_contacts].xe[2] = hi[2]; + contact_list[num_contacts].separation = R; + num_contacts++; + + // store forces to vertex ni to be rescaled later, + // if there are 2 contacts + + discrete[ifirst+ni][3] = fx; + discrete[ifirst+ni][4] = fy; + discrete[ifirst+ni][5] = fz; + + #ifdef _POLYGON_DEBUG + printf(" Stored forces at vertex and edge for accumulating later.\n"); + #endif + + } else { // no contact + + // accumulate force and torque to the body directly + + f[i][0] += fx; + f[i][1] += fy; + f[i][2] += fz; + sum_torque(x[i], xpi, fx, fy, fz, torque[i]); + + } // end if contact + + } // end if mode + + } // end for looping through the vertices of body i + + return interact; +} + +/* ------------------------------------------------------------------------- + Compute the distance between a vertex to the wall + another body + Input: + x0 = coordinate of the tested vertex + rradi = rounded radius of the vertex + wall_pos = position of the wall + Output: + d = Distance from a point x0 to an wall + hi = coordinates of the projection of x0 on the wall + contact = 0 no contact between the queried vertex and the wall + 1 contact detected + return NONE if there is no interaction + EDGE if the tested vertex interacts with the wall +------------------------------------------------------------------------- */ + +int FixWallBodyPolygon::compute_distance_to_wall(double* x0, double rradi, + double wall_pos, int side, double &d, double hi[3], int &contact) +{ + int mode; + double delxy; + + // h0 = position of the projection of x0 on the wall + if (wallstyle == XPLANE) { + hi[0] = wall_pos; + hi[1] = x0[1]; + hi[2] = x0[2]; + } else if (wallstyle == YPLANE) { + hi[0] = x0[0]; + hi[1] = wall_pos; + hi[2] = x0[2]; + } else if (wallstyle == ZCYLINDER) { + delxy = sqrt(x0[0]*x0[0] + x0[1]*x0[1]); + hi[0] = x0[0]*cylradius/delxy; + hi[1] = x0[1]*cylradius/delxy; + hi[2] = x0[2]; + } + + // distance from x0 to the wall = distance from x0 to hi + + distance(hi, x0, d); + + // determine the interaction mode + + if (d < rradi) { + mode = VERTEX; + contact = 1; + } else { + if (side == XLO) { + if (x0[0] < wall_pos) mode = VERTEX; + else mode = NONE; + } else if (side == XHI) { + if (x0[0] > wall_pos) mode = VERTEX; + else mode = NONE; + } else if (side == YLO) { + if (x0[1] < wall_pos) mode = VERTEX; + else mode = NONE; + } else if (side == YHI) { + if (x0[1] > wall_pos) mode = VERTEX; + else mode = NONE; + } + } + + if (mode == NONE) contact = 0; + else contact = 1; + + return mode; +} + +/* ---------------------------------------------------------------------- + Compute the contact forces between two bodies + modify the force stored at the vertex and edge in contact by j_a + sum forces and torque to the corresponding bodies + fn = normal friction component + ft = tangential friction component (-c_t * vrt) +------------------------------------------------------------------------- */ + +void FixWallBodyPolygon::contact_forces(Contact& contact, double j_a, + double** x, double** v, double** angmom, double** f, + double** torque, double* vwall, double* facc) +{ + int ibody,ibonus,ifirst, jefirst, ni; + double fx,fy,fz,delx,dely,delz,rsq,rsqinv; + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double fn[3],ft[3],vi[3]; + double *quat, *inertia; + AtomVecBody::Bonus *bonus; + + ibody = contact.ibody; + + // compute the velocity of the vertex in the space-fixed frame + + ibonus = atom->body[ibody]; + bonus = &avec->bonus[ibonus]; + quat = bonus->quat; + inertia = bonus->inertia; + total_velocity(contact.xv, x[ibody], v[ibody], angmom[ibody], + inertia, quat, vi); + + // vector pointing from the vertex to the point on the wall + + delx = contact.xv[0] - contact.xe[0]; + dely = contact.xv[1] - contact.xe[1]; + delz = contact.xv[2] - contact.xe[2]; + rsq = delx*delx + dely*dely + delz*delz; + rsqinv = 1.0/rsq; + + // relative translational velocity + + vr1 = vi[0] - vwall[0]; + vr2 = vi[1] - vwall[1]; + vr3 = vi[2] - vwall[2]; + + // normal component + + vnnr = vr1*delx + vr2*dely + vr3*delz; + vn1 = delx*vnnr * rsqinv; + vn2 = dely*vnnr * rsqinv; + vn3 = delz*vnnr * rsqinv; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // normal friction term at contact + + fn[0] = -c_n * vn1; + fn[1] = -c_n * vn2; + fn[2] = -c_n * vn3; + + // tangential friction term at contact + // excluding the tangential deformation term for now + + ft[0] = -c_t * vt1; + ft[1] = -c_t * vt2; + ft[2] = -c_t * vt3; + + // only the cohesive force is scaled by j_a + + ifirst = dfirst[ibody]; + ni = contact.vertex; + + fx = discrete[ifirst+ni][3] * j_a + fn[0] + ft[0]; + fy = discrete[ifirst+ni][4] * j_a + fn[1] + ft[1]; + fz = discrete[ifirst+ni][5] * j_a + fn[2] + ft[2]; + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + sum_torque(x[ibody], contact.xv, fx, fy, fz, torque[ibody]); + + // accumulate forces to the vertex only + + facc[0] += fx; facc[1] += fy; facc[2] += fz; + + #ifdef _POLYGON_DEBUG + printf("From contact forces: vertex fx %f fy %f fz %f\n" + " torque body %d: %f %f %f\n", + discrete[ifirst+ni][3], discrete[ifirst+ni][4], discrete[ifirst+ni][5], + atom->tag[ibody],torque[ibody][0],torque[ibody][1],torque[ibody][2]); + #endif +} + +/* ---------------------------------------------------------------------- + Determine the length of the contact segment, i.e. the separation between + 2 contacts +------------------------------------------------------------------------- */ + +double FixWallBodyPolygon::contact_separation(const Contact& c1, + const Contact& c2) +{ + double x1 = c1.xv[0]; + double y1 = c1.xv[1]; + double x2 = c1.xe[0]; + double y2 = c1.xe[1]; + double x3 = c2.xv[0]; + double y3 = c2.xv[1]; + + double delta_a = 0.0; + if (fabs(x2 - x1) > EPSILON) { + double A = (y2 - y1) / (x2 - x1); + delta_a = fabs(y1 - A * x1 - y3 + A * x3) / sqrt(1 + A * A); + } else { + delta_a = fabs(x1 - x3); + } + + return delta_a; +} + +/* ---------------------------------------------------------------------- + Accumulate torque to body from the force f=(fx,fy,fz) acting at point x +------------------------------------------------------------------------- */ + +void FixWallBodyPolygon::sum_torque(double* xm, double *x, double fx, + double fy, double fz, double* torque) +{ + double rx = x[0] - xm[0]; + double ry = x[1] - xm[1]; + double rz = x[2] - xm[2]; + double tx = ry * fz - rz * fy; + double ty = rz * fx - rx * fz; + double tz = rx * fy - ry * fx; + torque[0] += tx; + torque[1] += ty; + torque[2] += tz; +} + +/* ---------------------------------------------------------------------- + Calculate the total velocity of a point (vertex, a point on an edge): + vi = vcm + omega ^ (p - xcm) +------------------------------------------------------------------------- */ + +void FixWallBodyPolygon::total_velocity(double* p, double *xcm, + double* vcm, double *angmom, double *inertia, + double *quat, double* vi) +{ + double r[3],omega[3],ex_space[3],ey_space[3],ez_space[3]; + r[0] = p[0] - xcm[0]; + r[1] = p[1] - xcm[1]; + r[2] = p[2] - xcm[2]; + MathExtra::q_to_exyz(quat,ex_space,ey_space,ez_space); + MathExtra::angmom_to_omega(angmom,ex_space,ey_space,ez_space, + inertia,omega); + vi[0] = omega[1]*r[2] - omega[2]*r[1] + vcm[0]; + vi[1] = omega[2]*r[0] - omega[0]*r[2] + vcm[1]; + vi[2] = omega[0]*r[1] - omega[1]*r[0] + vcm[2]; +} + +/* ---------------------------------------------------------------------- */ + +void FixWallBodyPolygon::distance(const double* x2, const double* x1, + double& r) { + r = sqrt((x2[0] - x1[0]) * (x2[0] - x1[0]) + + (x2[1] - x1[1]) * (x2[1] - x1[1]) + + (x2[2] - x1[2]) * (x2[2] - x1[2])); +} + diff --git a/src/BODY/fix_wall_body_polygon.h b/src/BODY/fix_wall_body_polygon.h new file mode 100644 index 0000000000..3521c6c797 --- /dev/null +++ b/src/BODY/fix_wall_body_polygon.h @@ -0,0 +1,129 @@ +/* -*- 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 FIX_CLASS + +FixStyle(wall/body/polygon,FixWallBodyPolygon) + +#else + +#ifndef LMP_FIX_WALL_BODY_POLYGON_H +#define LMP_FIX_WALL_BODY_POLYGON_H + +#include "fix.h" + +namespace LAMMPS_NS { + +class FixWallBodyPolygon : public Fix { + public: + FixWallBodyPolygon(class LAMMPS *, int, char **); + virtual ~FixWallBodyPolygon(); + int setmask(); + void init(); + void setup(int); + virtual void post_force(int); + void reset_dt(); + + struct Contact { + int ibody, jbody; // body (i.e. atom) indices (not tags) + int vertex; // vertex of the first polygon + int edge; // edge of the second polygon + double xv[3]; // coordinates of the vertex + double xe[3]; // coordinates of the projection of the vertex on the edge + double separation;// separation at contact + }; + + protected: + int wallstyle,pairstyle,wiggle,axis; + double kn,c_n,c_t; + double lo,hi,cylradius; + double amplitude,period,omega; + double dt; + int time_origin; + + class AtomVecBody *avec; + class BodyRoundedPolygon *bptr; + + double **discrete; // list of all sub-particles for all bodies + int ndiscrete; // number of discretes in list + int dmax; // allocated size of discrete list + int *dnum; // number of discretes per line, 0 if uninit + int *dfirst; // index of first discrete per each line + int nmax; // allocated size of dnum,dfirst vectors + + double **edge; // list of all edge for all bodies + int nedge; // number of edge in list + int edmax; // allocated size of edge list + int *ednum; // number of edges per line, 0 if uninit + int *edfirst; // index of first edge per each line + int ednummax; // allocated size of ednum,edfirst vectors + + double *enclosing_radius; // enclosing radii for all bodies + double *rounded_radius; // rounded radii for all bodies + + void body2space(int); + + int vertex_against_wall(int ibody, double wall_pos, double** x, + double** f, double** torque, int side, + Contact* contact_list, int &num_contacts, + double* facc); + + int compute_distance_to_wall(double* x0, double rradi, double wall_pos, + int side, double &d, double hi[3], int &contact); + double contact_separation(const Contact& c1, const Contact& c2); + void contact_forces(Contact& contact, double j_a, double** x, + double** v, double** angmom, double** f, double** torque, + double* vwall, double* facc); + void sum_torque(double* xm, double *x, double fx, + double fy, double fz, double* torque); + void total_velocity(double* p, double *xcm, double* vcm, double *angmom, + double *inertia, double *quat, double* vi); + void distance(const double* x2, const double* x1, double& r); + +}; + +} + +#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: Fix wall/body/polygon requires atom style body rounded/polygon + +Self-explanatory. + +E: Cannot use wall in periodic dimension + +Self-explanatory. + +E: Cannot wiggle and shear fix wall/body/polygon + +Cannot specify both options at the same time. + +E: Invalid wiggle direction for fix wall/body/polygon + +Self-explanatory. + +E: Fix wall/body/polygon is incompatible with Pair style + +Must use a body pair style to define the parameters needed for +this fix. + +*/ diff --git a/src/BODY/fix_wall_body_polyhedron.cpp b/src/BODY/fix_wall_body_polyhedron.cpp new file mode 100644 index 0000000000..4806da9673 --- /dev/null +++ b/src/BODY/fix_wall_body_polyhedron.cpp @@ -0,0 +1,944 @@ +/* ---------------------------------------------------------------------- + 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 authors: Trung Dac Nguyen (ndactrung@gmail.com) +------------------------------------------------------------------------- */ + +#include +#include +#include +#include "fix_wall_body_polyhedron.h" +#include "atom.h" +#include "atom_vec_body.h" +#include "body_rounded_polyhedron.h" +#include "domain.h" +#include "update.h" +#include "force.h" +#include "pair.h" +#include "modify.h" +#include "respa.h" +#include "math_const.h" +#include "math_extra.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathConst; + +enum{XPLANE=0,YPLANE=1,ZPLANE}; // XYZ PLANE need to be 0,1,2 +enum{HOOKE,HOOKE_HISTORY}; + +enum {INVALID=0,NONE=1,VERTEX=2}; +enum {FAR=0,XLO,XHI,YLO,YHI,ZLO,ZHI}; + +//#define _POLYHEDRON_DEBUG +#define DELTA 10000 +#define EPSILON 1e-2 +#define BIG 1.0e20 +#define MAX_CONTACTS 4 // maximum number of contacts for 2D models +#define EFF_CONTACTS 2 // effective contacts for 2D models + +/* ---------------------------------------------------------------------- */ + +FixWallBodyPolyhedron::FixWallBodyPolyhedron(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg) +{ + if (narg < 7) error->all(FLERR,"Illegal fix wall/body/polyhedron command"); + + if (!atom->body_flag) + error->all(FLERR,"Fix wall/body/polyhedron requires atom style body/rounded/polyhedron"); + + restart_peratom = 1; + create_attribute = 1; + + // wall/particle coefficients + + kn = force->numeric(FLERR,arg[3]); + + c_n = force->numeric(FLERR,arg[4]); + if (strcmp(arg[5],"NULL") == 0) c_t = 0.5 * c_n; + else c_t = force->numeric(FLERR,arg[5]); + + if (kn < 0.0 || c_n < 0.0 || c_t < 0.0) + error->all(FLERR,"Illegal fix wall/body/polyhedron command"); + + // wallstyle args + + int iarg = 6; + if (strcmp(arg[iarg],"xplane") == 0) { + if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/body/polyhedron command"); + wallstyle = XPLANE; + if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; + else lo = force->numeric(FLERR,arg[iarg+1]); + if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; + else hi = force->numeric(FLERR,arg[iarg+2]); + iarg += 3; + } else if (strcmp(arg[iarg],"yplane") == 0) { + if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/body/polyhedron command"); + wallstyle = YPLANE; + if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; + else lo = force->numeric(FLERR,arg[iarg+1]); + if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; + else hi = force->numeric(FLERR,arg[iarg+2]); + iarg += 3; + } else if (strcmp(arg[iarg],"zplane") == 0) { + if (narg < iarg+3) error->all(FLERR,"Illegal fix wall/body/polyhedron command"); + wallstyle = ZPLANE; + if (strcmp(arg[iarg+1],"NULL") == 0) lo = -BIG; + else lo = force->numeric(FLERR,arg[iarg+1]); + if (strcmp(arg[iarg+2],"NULL") == 0) hi = BIG; + else hi = force->numeric(FLERR,arg[iarg+2]); + iarg += 3; + } + + // check for trailing keyword/values + + wiggle = 0; + + while (iarg < narg) { + if (strcmp(arg[iarg],"wiggle") == 0) { + if (iarg+4 > narg) error->all(FLERR,"Illegal fix wall/body/polyhedron command"); + if (strcmp(arg[iarg+1],"x") == 0) axis = 0; + else if (strcmp(arg[iarg+1],"y") == 0) axis = 1; + else if (strcmp(arg[iarg+1],"z") == 0) axis = 2; + else error->all(FLERR,"Illegal fix wall/body/polyhedron command"); + amplitude = force->numeric(FLERR,arg[iarg+2]); + period = force->numeric(FLERR,arg[iarg+3]); + wiggle = 1; + iarg += 4; + } else error->all(FLERR,"Illegal fix wall/body/polyhedron command"); + } + + if (wallstyle == XPLANE && domain->xperiodic) + error->all(FLERR,"Cannot use wall in periodic dimension"); + if (wallstyle == YPLANE && domain->yperiodic) + error->all(FLERR,"Cannot use wall in periodic dimension"); + if (wallstyle == ZPLANE && domain->zperiodic) + error->all(FLERR,"Cannot use wall in periodic dimension"); + + // setup oscillations + + if (wiggle) omega = 2.0*MY_PI / period; + + time_origin = update->ntimestep; + + dmax = nmax = 0; + discrete = NULL; + dnum = dfirst = NULL; + + edmax = ednummax = 0; + edge = NULL; + ednum = edfirst = NULL; + + facmax = facnummax = 0; + face = NULL; + facnum = facfirst = NULL; + + enclosing_radius = NULL; + rounded_radius = NULL; +} + +/* ---------------------------------------------------------------------- */ + +FixWallBodyPolyhedron::~FixWallBodyPolyhedron() +{ + memory->destroy(discrete); + memory->destroy(dnum); + memory->destroy(dfirst); + + memory->destroy(edge); + memory->destroy(ednum); + memory->destroy(edfirst); + + memory->destroy(face); + memory->destroy(facnum); + memory->destroy(facfirst); + + memory->destroy(enclosing_radius); + memory->destroy(rounded_radius); +} + +/* ---------------------------------------------------------------------- */ + +int FixWallBodyPolyhedron::setmask() +{ + int mask = 0; + mask |= POST_FORCE; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixWallBodyPolyhedron::init() +{ + dt = update->dt; + + avec = (AtomVecBody *) atom->style_match("body"); + if (!avec) + error->all(FLERR,"Pair body/rounded/polyhedron requires atom style body"); + if (strcmp(avec->bptr->style,"rounded/polyhedron") != 0) + error->all(FLERR,"Pair body/rounded/polyhedron requires body style rounded/polyhedron"); + bptr = (BodyRoundedPolyhedron *) avec->bptr; + + // set pairstyle from body/polyhedronular pair style + + if (force->pair_match("body/rounded/polyhedron",1)) + pairstyle = HOOKE; + else error->all(FLERR,"Fix wall/body/polyhedron is incompatible with Pair style"); +} + +/* ---------------------------------------------------------------------- */ + +void FixWallBodyPolyhedron::setup(int vflag) +{ + if (strstr(update->integrate_style,"verlet")) + post_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixWallBodyPolyhedron::post_force(int vflag) +{ + double vwall[3],dx,dy,dz,del1,del2,delxy,delr,rsq,eradi,rradi,wall_pos; + int i,ni,npi,ifirst,nei,iefirst,nfi,iffirst,side; + double facc[3]; + + // set position of wall to initial settings and velocity to 0.0 + // if wiggle, set wall position and velocity accordingly + + double wlo = lo; + double whi = hi; + vwall[0] = vwall[1] = vwall[2] = 0.0; + if (wiggle) { + double arg = omega * (update->ntimestep - time_origin) * dt; + if (wallstyle == axis) { + wlo = lo + amplitude - amplitude*cos(arg); + whi = hi + amplitude - amplitude*cos(arg); + } + vwall[axis] = amplitude*omega*sin(arg); + } + + // loop over all my atoms + // rsq = distance from wall + // dx,dy,dz = signed distance from wall + // for rotating cylinder, reset vwall based on particle position + // skip atom if not close enough to wall + // if wall was set to NULL, it's skipped since lo/hi are infinity + // compute force and torque on atom if close enough to wall + // via wall potential matched to pair potential + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + int *body = atom->body; + double *radius = atom->radius; + double **torque = atom->torque; + double **angmom = atom->angmom; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + // grow the per-atom lists if necessary and initialize + + if (atom->nmax > nmax) { + memory->destroy(dnum); + memory->destroy(dfirst); + memory->destroy(ednum); + memory->destroy(edfirst); + memory->destroy(facnum); + memory->destroy(facfirst); + memory->destroy(enclosing_radius); + memory->destroy(rounded_radius); + nmax = atom->nmax; + memory->create(dnum,nmax,"fix:dnum"); + memory->create(dfirst,nmax,"fix:dfirst"); + memory->create(ednum,nmax,"fix:ednum"); + memory->create(edfirst,nmax,"fix:edfirst"); + memory->create(facnum,nmax,"fix:facnum"); + memory->create(facfirst,nmax,"fix:facfirst"); + memory->create(enclosing_radius,nmax,"fix:enclosing_radius"); + memory->create(rounded_radius,nmax,"fix:rounded_radius"); + } + + ndiscrete = nedge = nface = 0; + for (i = 0; i < nlocal; i++) + dnum[i] = ednum[i] = facnum[i] = 0; + + for (i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + + if (body[i] < 0) continue; + + dx = dy = dz = 0.0; + side = FAR; + if (wallstyle == XPLANE) { + del1 = x[i][0] - wlo; + del2 = whi - x[i][0]; + if (del1 < del2) { + dx = del1; + wall_pos = wlo; + side = XLO; + } else { + dx = -del2; + wall_pos = whi; + side = XHI; + } + } else if (wallstyle == YPLANE) { + del1 = x[i][1] - wlo; + del2 = whi - x[i][1]; + if (del1 < del2) { + dy = del1; + wall_pos = wlo; + side = YLO; + } else { + dy = -del2; + wall_pos = whi; + side = YHI; + } + } else if (wallstyle == ZPLANE) { + del1 = x[i][2] - wlo; + del2 = whi - x[i][2]; + if (del1 < del2) { + dy = del1; + wall_pos = wlo; + side = ZLO; + } else { + dy = -del2; + wall_pos = whi; + side = ZHI; + } + } + + rsq = dx*dx + dy*dy + dz*dz; + if (rsq > radius[i]*radius[i]) continue; + + double r = sqrt(rsq); + double rsqinv = 1.0 / rsq; + + if (dnum[i] == 0) body2space(i); + npi = dnum[i]; + ifirst = dfirst[i]; + nei = ednum[i]; + iefirst = edfirst[i]; + nfi = facnum[i]; + iffirst = facfirst[i]; + eradi = enclosing_radius[i]; + rradi = rounded_radius[i]; + + if (npi == 1) { + sphere_against_wall(i, wall_pos, side, vwall, x, v, f, angmom, torque); + continue; + } + + // reset vertex and edge forces + + for (ni = 0; ni < npi; ni++) { + discrete[ifirst+ni][3] = 0; + discrete[ifirst+ni][4] = 0; + discrete[ifirst+ni][5] = 0; + discrete[ifirst+ni][6] = 0; + } + + for (ni = 0; ni < nei; ni++) { + edge[iefirst+ni][2] = 0; + edge[iefirst+ni][3] = 0; + edge[iefirst+ni][4] = 0; + edge[iefirst+ni][5] = 0; + } + + int interact, num_contacts, done; + double delta_a, delta_ua, j_a; + Contact contact_list[MAX_CONTACTS]; + + num_contacts = 0; + facc[0] = facc[1] = facc[2] = 0; + interact = edge_against_wall(i, wall_pos, side, vwall, x, f, torque, + contact_list, num_contacts, facc); + + } // group bit + } +} + +/* ---------------------------------------------------------------------- */ + +void FixWallBodyPolyhedron::reset_dt() +{ + dt = update->dt; +} + +/* ---------------------------------------------------------------------- + convert N sub-particles in body I to space frame using current quaternion + store sub-particle space-frame displacements from COM in discrete list +------------------------------------------------------------------------- */ + +void FixWallBodyPolyhedron::body2space(int i) +{ + int ibonus = atom->body[i]; + AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; + int nsub = bptr->nsub(bonus); + double *coords = bptr->coords(bonus); + int body_num_edges = bptr->nedges(bonus); + double* edge_ends = bptr->edges(bonus); + int body_num_faces = bptr->nfaces(bonus); + double* face_pts = bptr->faces(bonus); + double eradius = bptr->enclosing_radius(bonus); + double rradius = bptr->rounded_radius(bonus); + + // get the number of sub-particles (vertices) + // and the index of the first vertex of my body in the list + + dnum[i] = nsub; + dfirst[i] = ndiscrete; + + // grow the vertex list if necessary + // the first 3 columns are for coords, the last 3 for forces + + if (ndiscrete + nsub > dmax) { + dmax += DELTA; + memory->grow(discrete,dmax,7,"fix:discrete"); + } + + double p[3][3]; + MathExtra::quat_to_mat(bonus->quat,p); + + for (int m = 0; m < nsub; m++) { + MathExtra::matvec(p,&coords[3*m],discrete[ndiscrete]); + discrete[ndiscrete][3] = 0; + discrete[ndiscrete][4] = 0; + discrete[ndiscrete][5] = 0; + discrete[ndiscrete][6] = 0; + ndiscrete++; + } + + // get the number of edges (vertices) + // and the index of the first edge of my body in the list + + ednum[i] = body_num_edges; + edfirst[i] = nedge; + + // grow the edge list if necessary + // the first 2 columns are for vertex indices within body, + // the last 3 for forces + + if (nedge + body_num_edges > edmax) { + edmax += DELTA; + memory->grow(edge,edmax,6,"fix:edge"); + } + + for (int m = 0; m < body_num_edges; m++) { + edge[nedge][0] = static_cast(edge_ends[2*m+0]); + edge[nedge][1] = static_cast(edge_ends[2*m+1]); + edge[nedge][2] = 0; + edge[nedge][3] = 0; + edge[nedge][4] = 0; + edge[nedge][5] = 0; + nedge++; + } + + // get the number of faces and the index of the first face + + facnum[i] = body_num_faces; + facfirst[i] = nface; + + // grow the face list if necessary + // the first 3 columns are for vertex indices within body, the last 3 for forces + + if (nface + body_num_faces > facmax) { + facmax += DELTA; + memory->grow(face,facmax,6,"pair:face"); + } + + for (int m = 0; m < body_num_faces; m++) { + face[nface][0] = static_cast(face_pts[3*m+0]); + face[nface][1] = static_cast(face_pts[3*m+1]); + face[nface][2] = static_cast(face_pts[3*m+2]); + face[nface][3] = 0; + face[nface][4] = 0; + face[nface][5] = 0; + nface++; + } + + enclosing_radius[i] = eradius; + rounded_radius[i] = rradius; +} + +/* ---------------------------------------------------------------------- + Determine the interaction mode between a sphere against the wall + + i = atom i (body i) + x = atoms' coordinates + f = atoms' forces + torque = atoms' torques +---------------------------------------------------------------------- */ + +int FixWallBodyPolyhedron::sphere_against_wall(int i, double wall_pos, + int side, double* vwall, double** x, double** v, double** f, + double** angmom, double** torque) +{ + int mode; + double rradi,hi[3],d,delx,dely,delz,R,fpair,fx,fy,fz; + + rradi = rounded_radius[i]; + mode = NONE; + + if (wallstyle == XPLANE) { + hi[0] = wall_pos; + hi[1] = x[i][1]; + hi[2] = x[i][2]; + } else if (wallstyle == YPLANE) { + hi[0] = x[i][0]; + hi[1] = wall_pos; + hi[2] = x[i][2]; + } else if (wallstyle == ZPLANE) { + hi[0] = x[i][0]; + hi[1] = x[i][1]; + hi[2] = wall_pos; + } + + distance(hi, x[i], d); + + if (d <= rradi) { + delx = x[i][0] - hi[0]; + dely = x[i][1] - hi[1]; + delz = x[i][2] - hi[2]; + R = d - rradi; + + fpair = -kn * R; + + fx = delx*fpair/d; + fy = dely*fpair/d; + fz = delz*fpair/d; + + contact_forces(i, 1.0, x[i], hi, delx, dely, delz, + fx, fy, fz, x, v, angmom, f, torque, vwall); + mode = VERTEX; + } + + return mode; +} + +/* ---------------------------------------------------------------------- + Determine the interaction mode between i's vertices against the wall + + i = atom i (body i) + x = atoms' coordinates + f = atoms' forces + torque = atoms' torques + Output: + contact_list = list of contacts between i and the wall + num_contacts = number of contacts between i's vertices and the wall + Return: + number of contacts of the edge to the wall (0, 1 or 2) +---------------------------------------------------------------------- */ + +int FixWallBodyPolyhedron::edge_against_wall(int i, double wall_pos, + int side, double* vwall, double** x, double** f, double** torque, + Contact* contact_list, int &num_contacts, double* facc) +{ + int ni, nei, mode, contact; + double rradi; + int nlocal = atom->nlocal; + + nei = ednum[i]; + rradi = rounded_radius[i]; + + contact = 0; + + // loop through body i's edges + + for (ni = 0; ni < nei; ni++) + mode = compute_distance_to_wall(i, ni, x[i], rradi, wall_pos, side, vwall, + contact); + + return contact; +} + +/* ------------------------------------------------------------------------- + Compute the distance between a vertex to the wall + another body + Input: + x0 = coordinate of the tested vertex + rradi = rounded radius of the vertex + wall_pos = position of the wall + Output: + d = Distance from a point x0 to an wall + hi = coordinates of the projection of x0 on the wall + contact = 0 no contact between the queried vertex and the wall + 1 contact detected + return NONE if there is no interaction + VERTEX if the tested vertex interacts with the wall +------------------------------------------------------------------------- */ + +int FixWallBodyPolyhedron::compute_distance_to_wall(int ibody, int edge_index, + double *xmi, double rounded_radius_i, double wall_pos, + int side, double* vwall, int &contact) +{ + int mode,ifirst,iefirst,npi1,npi2; + double d1,d2,xpi1[3],xpi2[3],hi[3]; + double fx,fy,fz,fpair,delx,dely,delz,R; + + double** x = atom->x; + double** v = atom->v; + double** f = atom->f; + double** torque = atom->torque; + double** angmom = atom->angmom; + + // two ends of the edge from body i + + ifirst = dfirst[ibody]; + iefirst = edfirst[ibody]; + npi1 = static_cast(edge[iefirst+edge_index][0]); + npi2 = static_cast(edge[iefirst+edge_index][1]); + + xpi1[0] = xmi[0] + discrete[ifirst+npi1][0]; + xpi1[1] = xmi[1] + discrete[ifirst+npi1][1]; + xpi1[2] = xmi[2] + discrete[ifirst+npi1][2]; + + xpi2[0] = xmi[0] + discrete[ifirst+npi2][0]; + xpi2[1] = xmi[1] + discrete[ifirst+npi2][1]; + xpi2[2] = xmi[2] + discrete[ifirst+npi2][2]; + + // determine the intersection of the edge to the wall + + mode = NONE; + double j_a = 1.0; + + if (wallstyle == XPLANE) { + hi[0] = wall_pos; + hi[1] = xpi1[1]; + hi[2] = xpi1[2]; + } else if (wallstyle == YPLANE) { + hi[0] = xpi1[0]; + hi[1] = wall_pos; + hi[2] = xpi1[2]; + } else if (wallstyle == ZPLANE) { + hi[0] = xpi1[0]; + hi[1] = xpi1[1]; + hi[2] = wall_pos; + } + + distance(hi, xpi1, d1); + + if (d1 <= rounded_radius_i && static_cast(discrete[ifirst+npi1][6]) == 0) { + delx = xpi1[0] - hi[0]; + dely = xpi1[1] - hi[1]; + delz = xpi1[2] - hi[2]; + R = d1 - rounded_radius_i; + + fpair = -kn * R; + + fx = delx*fpair/d1; + fy = dely*fpair/d1; + fz = delz*fpair/d1; + + contact_forces(ibody, j_a, xpi1, hi, delx, dely, delz, + fx, fy, fz, x, v, angmom, f, torque, vwall); + discrete[ifirst+npi1][6] = 1; + contact++; + mode = VERTEX; + } + + if (wallstyle == XPLANE) { + hi[0] = wall_pos; + hi[1] = xpi2[1]; + hi[2] = xpi2[2]; + } else if (wallstyle == YPLANE) { + hi[0] = xpi2[0]; + hi[1] = wall_pos; + hi[2] = xpi2[2]; + } else if (wallstyle == ZPLANE) { + hi[0] = xpi2[0]; + hi[1] = xpi2[1]; + hi[2] = wall_pos; + } + + distance(hi, xpi2, d2); + + if (d2 <= rounded_radius_i && static_cast(discrete[ifirst+npi2][6]) == 0) { + delx = xpi2[0] - hi[0]; + dely = xpi2[1] - hi[1]; + delz = xpi2[2] - hi[2]; + R = d2 - rounded_radius_i; + + fpair = -kn * R; + + fx = delx*fpair/d2; + fy = dely*fpair/d2; + fz = delz*fpair/d2; + + contact_forces(ibody, j_a, xpi2, hi, delx, dely, delz, + fx, fy, fz, x, v, angmom, f, torque, vwall); + discrete[ifirst+npi2][6] = 1; + contact++; + mode = VERTEX; + } + + return mode; +} + +/* ---------------------------------------------------------------------- + Compute contact forces between two bodies + modify the force stored at the vertex and edge in contact by j_a + sum forces and torque to the corresponding bodies + fn = normal friction component + ft = tangential friction component (-c_t * v_t) +------------------------------------------------------------------------- */ + +void FixWallBodyPolyhedron::contact_forces(int ibody, + double j_a, double *xi, double *xj, double delx, double dely, double delz, + double fx, double fy, double fz, double** x, double** v, double** angmom, + double** f, double** torque, double* vwall) +{ + int ibonus,jbonus; + double fxt,fyt,fzt,rsq,rsqinv; + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double fn[3],ft[3],vi[3],vj[3]; + double *quat, *inertia; + AtomVecBody::Bonus *bonus; + + // compute the velocity of the vertex in the space-fixed frame + + ibonus = atom->body[ibody]; + bonus = &avec->bonus[ibonus]; + quat = bonus->quat; + inertia = bonus->inertia; + total_velocity(xi, x[ibody], v[ibody], angmom[ibody], + inertia, quat, vi); + + // vector pointing from the contact point on ibody to the wall + + rsq = delx*delx + dely*dely + delz*delz; + rsqinv = 1.0/rsq; + + // relative translational velocity + + vr1 = vi[0] - vwall[0]; + vr2 = vi[1] - vwall[1]; + vr3 = vi[2] - vwall[2]; + + // normal component + + vnnr = vr1*delx + vr2*dely + vr3*delz; + vn1 = delx*vnnr * rsqinv; + vn2 = dely*vnnr * rsqinv; + vn3 = delz*vnnr * rsqinv; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // normal friction term at contact + + fn[0] = -c_n * vn1; + fn[1] = -c_n * vn2; + fn[2] = -c_n * vn3; + + // tangential friction term at contact + // excluding the tangential deformation term for now + + ft[0] = -c_t * vt1; + ft[1] = -c_t * vt2; + ft[2] = -c_t * vt3; + + fxt = fx; fyt = fy; fzt = fz; + fx = fxt * j_a + fn[0] + ft[0]; + fy = fyt * j_a + fn[1] + ft[1]; + fz = fzt * j_a + fn[2] + ft[2]; + + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + sum_torque(x[ibody], xi, fx, fy, fz, torque[ibody]); + + #ifdef _POLYHEDRON_DEBUG + printf("From contact forces: vertex fx %f fy %f fz %f\n" + " torque body %d: %f %f %f\n" + " torque body %d: %f %f %f\n", + fxt, fyt, fzt, + atom->tag[ibody],torque[ibody][0],torque[ibody][1],torque[ibody][2], + atom->tag[jbody],torque[jbody][0],torque[jbody][1],torque[jbody][2]); + #endif +} + +/* ---------------------------------------------------------------------- + Compute the contact forces between two bodies + modify the force stored at the vertex and edge in contact by j_a + sum forces and torque to the corresponding bodies + fn = normal friction component + ft = tangential friction component (-c_t * vrt) +------------------------------------------------------------------------- */ + +void FixWallBodyPolyhedron::contact_forces(Contact& contact, double j_a, + double** x, double** v, double** angmom, double** f, + double** torque, double* vwall, double* facc) +{ + int ibody,ibonus,ifirst, jefirst, ni; + double fx,fy,fz,delx,dely,delz,rsq,rsqinv; + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double fn[3],ft[3],vi[3]; + double *quat, *inertia; + AtomVecBody::Bonus *bonus; + + ibody = contact.ibody; + + // compute the velocity of the vertex in the space-fixed frame + + ibonus = atom->body[ibody]; + bonus = &avec->bonus[ibonus]; + quat = bonus->quat; + inertia = bonus->inertia; + total_velocity(contact.xv, x[ibody], v[ibody], angmom[ibody], + inertia, quat, vi); + + // vector pointing from the vertex to the point on the wall + + delx = contact.xv[0] - contact.xe[0]; + dely = contact.xv[1] - contact.xe[1]; + delz = contact.xv[2] - contact.xe[2]; + rsq = delx*delx + dely*dely + delz*delz; + rsqinv = 1.0/rsq; + + // relative translational velocity + + vr1 = vi[0] - vwall[0]; + vr2 = vi[1] - vwall[1]; + vr3 = vi[2] - vwall[2]; + + // normal component + + vnnr = vr1*delx + vr2*dely + vr3*delz; + vn1 = delx*vnnr * rsqinv; + vn2 = dely*vnnr * rsqinv; + vn3 = delz*vnnr * rsqinv; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // normal friction term at contact + + fn[0] = -c_n * vn1; + fn[1] = -c_n * vn2; + fn[2] = -c_n * vn3; + + // tangential friction term at contact + // excluding the tangential deformation term for now + + ft[0] = -c_t * vt1; + ft[1] = -c_t * vt2; + ft[2] = -c_t * vt3; + + // only the cohesive force is scaled by j_a + + ifirst = dfirst[ibody]; + ni = contact.vertex; + + fx = discrete[ifirst+ni][3] * j_a + fn[0] + ft[0]; + fy = discrete[ifirst+ni][4] * j_a + fn[1] + ft[1]; + fz = discrete[ifirst+ni][5] * j_a + fn[2] + ft[2]; + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + sum_torque(x[ibody], contact.xv, fx, fy, fz, torque[ibody]); + + // accumulate forces to the vertex only + + facc[0] += fx; facc[1] += fy; facc[2] += fz; + + #ifdef _POLYHEDRON_DEBUG + printf("From contact forces: vertex fx %f fy %f fz %f\n" + " torque body %d: %f %f %f\n", + discrete[ifirst+ni][3], discrete[ifirst+ni][4], discrete[ifirst+ni][5], + atom->tag[ibody],torque[ibody][0],torque[ibody][1],torque[ibody][2]); + #endif +} + +/* ---------------------------------------------------------------------- + Determine the length of the contact segment, i.e. the separation between + 2 contacts +------------------------------------------------------------------------- */ + +double FixWallBodyPolyhedron::contact_separation(const Contact& c1, + const Contact& c2) +{ + double x1 = c1.xv[0]; + double y1 = c1.xv[1]; + double x2 = c1.xe[0]; + double y2 = c1.xe[1]; + double x3 = c2.xv[0]; + double y3 = c2.xv[1]; + + double delta_a = 0.0; + if (fabs(x2 - x1) > EPSILON) { + double A = (y2 - y1) / (x2 - x1); + delta_a = fabs(y1 - A * x1 - y3 + A * x3) / sqrt(1 + A * A); + } else { + delta_a = fabs(x1 - x3); + } + + return delta_a; +} + +/* ---------------------------------------------------------------------- + Accumulate torque to body from the force f=(fx,fy,fz) acting at point x +------------------------------------------------------------------------- */ + +void FixWallBodyPolyhedron::sum_torque(double* xm, double *x, double fx, + double fy, double fz, double* torque) +{ + double rx = x[0] - xm[0]; + double ry = x[1] - xm[1]; + double rz = x[2] - xm[2]; + double tx = ry * fz - rz * fy; + double ty = rz * fx - rx * fz; + double tz = rx * fy - ry * fx; + torque[0] += tx; + torque[1] += ty; + torque[2] += tz; +} + +/* ---------------------------------------------------------------------- + Calculate the total velocity of a point (vertex, a point on an edge): + vi = vcm + omega ^ (p - xcm) +------------------------------------------------------------------------- */ + +void FixWallBodyPolyhedron::total_velocity(double* p, double *xcm, + double* vcm, double *angmom, double *inertia, + double *quat, double* vi) +{ + double r[3],omega[3],ex_space[3],ey_space[3],ez_space[3]; + r[0] = p[0] - xcm[0]; + r[1] = p[1] - xcm[1]; + r[2] = p[2] - xcm[2]; + MathExtra::q_to_exyz(quat,ex_space,ey_space,ez_space); + MathExtra::angmom_to_omega(angmom,ex_space,ey_space,ez_space, + inertia,omega); + vi[0] = omega[1]*r[2] - omega[2]*r[1] + vcm[0]; + vi[1] = omega[2]*r[0] - omega[0]*r[2] + vcm[1]; + vi[2] = omega[0]*r[1] - omega[1]*r[0] + vcm[2]; +} + +/* ---------------------------------------------------------------------- */ + +void FixWallBodyPolyhedron::distance(const double* x2, const double* x1, + double& r) { + r = sqrt((x2[0] - x1[0]) * (x2[0] - x1[0]) + + (x2[1] - x1[1]) * (x2[1] - x1[1]) + + (x2[2] - x1[2]) * (x2[2] - x1[2])); +} + diff --git a/src/BODY/fix_wall_body_polyhedron.h b/src/BODY/fix_wall_body_polyhedron.h new file mode 100644 index 0000000000..ff7b7ca7cf --- /dev/null +++ b/src/BODY/fix_wall_body_polyhedron.h @@ -0,0 +1,143 @@ +/* -*- 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 FIX_CLASS + +FixStyle(wall/body/polyhedron,FixWallBodyPolyhedron) + +#else + +#ifndef LMP_FIX_WALL_BODY_POLYHERON_H +#define LMP_FIX_WALL_BODY_POLYHERON_H + +#include "fix.h" + +namespace LAMMPS_NS { + +class FixWallBodyPolyhedron : public Fix { + public: + FixWallBodyPolyhedron(class LAMMPS *, int, char **); + virtual ~FixWallBodyPolyhedron(); + int setmask(); + void init(); + void setup(int); + virtual void post_force(int); + void reset_dt(); + + struct Contact { + int ibody, jbody; // body (i.e. atom) indices (not tags) + int vertex; // vertex of the first polygon + int edge; // edge of the second polygon + double xv[3]; // coordinates of the vertex + double xe[3]; // coordinates of the projection of the vertex on the edge + double separation;// separation at contact + }; + + protected: + int wallstyle,pairstyle,wiggle,axis; + double kn,c_n,c_t; + double lo,hi,cylradius; + double amplitude,period,omega; + double dt; + int time_origin; + + class AtomVecBody *avec; + class BodyRoundedPolyhedron *bptr; + + double **discrete; // list of all sub-particles for all bodies + int ndiscrete; // number of discretes in list + int dmax; // allocated size of discrete list + int *dnum; // number of discretes per line, 0 if uninit + int *dfirst; // index of first discrete per each line + int nmax; // allocated size of dnum,dfirst vectors + + double **edge; // list of all edge for all bodies + int nedge; // number of edge in list + int edmax; // allocated size of edge list + int *ednum; // number of edges per line, 0 if uninit + int *edfirst; // index of first edge per each line + int ednummax; // allocated size of ednum,edfirst vectors + + double **face; // list of all edge for all bodies + int nface; // number of faces in list + int facmax; // allocated size of face list + int *facnum; // number of faces per line, 0 if uninit + int *facfirst; // index of first face per each line + int facnummax; // allocated size of facnum,facfirst vectors + + double *enclosing_radius; // enclosing radii for all bodies + double *rounded_radius; // rounded radii for all bodies + + void body2space(int); + + int edge_against_wall(int ibody, double wall_pos, int side, double* vwall, + double** x, double** f, double** torque, Contact* contact_list, + int &num_contacts, double* facc); + int sphere_against_wall(int i, double wall_pos, int side, double* vwall, + double** x, double** v, double** f, double** angmom, double** torque); + + int compute_distance_to_wall(int ibody, int edge_index, double *xmi, + double rounded_radius_i, double wall_pos, int side, + double* vwall, int &contact); + double contact_separation(const Contact& c1, const Contact& c2); + void contact_forces(int ibody, double j_a, double *xi, double *xj, + double delx, double dely, double delz, + double fx, double fy, double fz, double** x, double** v, + double** angmom, double** f, double** torque, double* vwall); + + void contact_forces(Contact& contact, double j_a, double** x, + double** v, double** angmom, double** f, double** torque, + double* vwall, double* facc); + void sum_torque(double* xm, double *x, double fx, + double fy, double fz, double* torque); + void total_velocity(double* p, double *xcm, double* vcm, double *angmom, + double *inertia, double *quat, double* vi); + void distance(const double* x2, const double* x1, double& r); + +}; + +} + +#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: Fix wall/body/polyhedron requires atom style body rounded/polyhedron + +Self-explanatory. + +E: Cannot use wall in periodic dimension + +Self-explanatory. + +E: Cannot wiggle and shear fix wall/body/polygon + +Cannot specify both options at the same time. + +E: Invalid wiggle direction for fix wall/body/polygon + +Self-explanatory. + +E: Fix wall/body/polygon is incompatible with Pair style + +Must use a body pair style to define the parameters needed for +this fix. + +*/ diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp new file mode 100644 index 0000000000..72591d2bd0 --- /dev/null +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -0,0 +1,1359 @@ +/* ---------------------------------------------------------------------- + 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: Trung Dac Nguyen (ndactrung@gmail.com) + Ref: Fraige, Langston, Matchett and Dodds, Particuology 2008, 6:455-466 + Note: The current implementation has not taken into account + the contact history for friction forces. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "pair_body_rounded_polygon.h" +#include "math_extra.h" +#include "atom.h" +#include "atom_vec_body.h" +#include "body_rounded_polygon.h" +#include "comm.h" +#include "force.h" +#include "fix.h" +#include "modify.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +//#define _POLYGON_DEBUG +#define DELTA 10000 +#define EPSILON 1e-3 +#define MAX_CONTACTS 4 // maximum number of contacts for 2D models +#define EFF_CONTACTS 2 // effective contacts for 2D models + +enum {INVALID=0,NONE=1,VERTEXI=2,VERTEXJ=3,EDGE=4}; + +/* ---------------------------------------------------------------------- */ + +PairBodyRoundedPolygon::PairBodyRoundedPolygon(LAMMPS *lmp) : Pair(lmp) +{ + dmax = nmax = 0; + discrete = NULL; + dnum = dfirst = NULL; + + edmax = ednummax = 0; + edge = NULL; + ednum = edfirst = NULL; + + enclosing_radius = NULL; + rounded_radius = NULL; + maxerad = NULL; + + single_enable = 0; + restartinfo = 0; + + c_n = 0.1; + c_t = 0.2; + mu = 0.0; + delta_ua = 1.0; +} + +/* ---------------------------------------------------------------------- */ + +PairBodyRoundedPolygon::~PairBodyRoundedPolygon() +{ + memory->destroy(discrete); + memory->destroy(dnum); + memory->destroy(dfirst); + + memory->destroy(edge); + memory->destroy(ednum); + memory->destroy(edfirst); + + memory->destroy(enclosing_radius); + memory->destroy(rounded_radius); + + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + + memory->destroy(k_n); + memory->destroy(k_na); + memory->destroy(maxerad); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + int ni,nj,npi,npj,ifirst,jfirst; + int nei,nej,iefirst,jefirst; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fx,fy,fz; + double rsq,rsqinv,r,radi,radj,eradi,eradj,rradi,rradj,k_nij,k_naij; + double xi[3],xj[3],fi[3],fj[3],ti[3],tj[3],facc[3]; + double *dxi,*dxj; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + double **torque = atom->torque; + double **angmom = atom->angmom; + double *radius = atom->radius; + tagint* tag = atom->tag; + int *body = atom->body; + int *type = atom->type; + int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // grow the per-atom lists if necessary and initialize + + if (atom->nmax > nmax) { + memory->destroy(dnum); + memory->destroy(dfirst); + memory->destroy(ednum); + memory->destroy(edfirst); + memory->destroy(enclosing_radius); + memory->destroy(rounded_radius); + nmax = atom->nmax; + memory->create(dnum,nmax,"pair:dnum"); + memory->create(dfirst,nmax,"pair:dfirst"); + memory->create(ednum,nmax,"pair:ednum"); + memory->create(edfirst,nmax,"pair:edfirst"); + memory->create(enclosing_radius,nmax,"pair:enclosing_radius"); + memory->create(rounded_radius,nmax,"pair:rounded_radius"); + } + + ndiscrete = nedge = 0; + for (i = 0; i < nall; i++) + dnum[i] = ednum[i] = 0; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + radi = radius[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + if (body[i] >= 0) { + if (dnum[i] == 0) body2space(i); + npi = dnum[i]; + ifirst = dfirst[i]; + nei = ednum[i]; + iefirst = edfirst[i]; + eradi = enclosing_radius[i]; + rradi = rounded_radius[i]; + } + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + jtype = type[j]; + radj = radius[j]; + + // body/body interactions + + evdwl = 0.0; + facc[0] = facc[1] = facc[2] = 0; + + if (body[i] < 0 || body[j] < 0) continue; + + if (dnum[j] == 0) body2space(j); + npj = dnum[j]; + jfirst = dfirst[j]; + nej = ednum[j]; + jefirst = edfirst[j]; + eradj = enclosing_radius[j]; + rradj = rounded_radius[j]; + + k_nij = k_n[itype][jtype]; + k_naij = k_na[itype][jtype]; + + // no interaction + + r = sqrt(rsq); + if (r > radi + radj + cut_inner) continue; + rsqinv = 1.0 / rsq; + + if (npi == 1 && npj == 1) { + sphere_against_sphere(i, j, delx, dely, delz, rsq, + k_nij, k_naij, x, v, f, evflag); + continue; + } + + // reset vertex and edge forces + + for (ni = 0; ni < npi; ni++) { + discrete[ifirst+ni][3] = 0; + discrete[ifirst+ni][4] = 0; + discrete[ifirst+ni][5] = 0; + } + + for (nj = 0; nj < npj; nj++) { + discrete[jfirst+nj][3] = 0; + discrete[jfirst+nj][4] = 0; + discrete[jfirst+nj][5] = 0; + } + + for (ni = 0; ni < nei; ni++) { + edge[iefirst+ni][2] = 0; + edge[iefirst+ni][3] = 0; + edge[iefirst+ni][4] = 0; + } + + for (nj = 0; nj < nej; nj++) { + edge[jefirst+nj][2] = 0; + edge[jefirst+nj][3] = 0; + edge[jefirst+nj][4] = 0; + } + + int interact, num_contacts, done; + double delta_a, j_a; + Contact contact_list[MAX_CONTACTS]; + + num_contacts = 0; + + // check interaction between i's vertices and j' edges + + interact = vertex_against_edge(i, j, k_nij, k_naij, + x, f, torque, tag, contact_list, + num_contacts, evdwl, facc); + + // check interaction between j's vertices and i' edges + + interact = vertex_against_edge(j, i, k_nij, k_naij, + x, f, torque, tag, contact_list, + num_contacts, evdwl, facc); + + if (num_contacts >= 2) { + + // find the first two distinct contacts + + done = 0; + for (int m = 0; m < num_contacts-1; m++) { + for (int n = m+1; n < num_contacts; n++) { + delta_a = contact_separation(contact_list[m], contact_list[n]); + if (delta_a > 0) { + j_a = delta_a / (EFF_CONTACTS * delta_ua); + if (j_a < 1.0) j_a = 1.0; + + // scale the force at both contacts + + contact_forces(contact_list[m], j_a, x, v, angmom, f, torque, evdwl, facc); + contact_forces(contact_list[n], j_a, x, v, angmom, f, torque, evdwl, facc); + done = 1; + + #ifdef _POLYGON_DEBUG + printf(" Two separate contacts %d and %d: delta_a = %f; j_a = %f\n", + m, n, delta_a, j_a); + printf(" %d: vertex %d of body %d and edge %d of body %d; " + "xv = %f %f %f; xe = %f %f %f\n", + m, contact_list[m].vertex, contact_list[m].ibody, + contact_list[m].edge, contact_list[m].jbody, + contact_list[m].xv[0], contact_list[m].xv[1], contact_list[m].xv[2], + contact_list[m].xe[0], contact_list[m].xe[1], contact_list[m].xe[2]); + printf(" %d: vertex %d of body %d and edge %d of body %d; " + "xv = %f %f %f; xe = %f %f %f\n", + n, contact_list[n].vertex, contact_list[n].ibody, + contact_list[n].edge, contact_list[n].jbody, + contact_list[n].xv[0], contact_list[n].xv[1], contact_list[n].xv[2], + contact_list[n].xe[0], contact_list[n].xe[1], contact_list[n].xe[2]); + #endif + + break; + } + } + if (done == 1) break; + } + + + } else if (num_contacts == 1) { + + // if there's only one contact, it should be handled here + // since forces/torques have not been accumulated from vertex2edge() + + contact_forces(contact_list[0], 1.0, x, v, angmom, f, torque, evdwl, facc); + + #ifdef _POLYGON_DEBUG + printf("One contact between vertex %d of body %d and edge %d of body %d:\n", + contact_list[0].vertex, tag[contact_list[0].ibody], + contact_list[0].edge, tag[contact_list[0].jbody]); + printf("xv = %f %f %f; xe = %f %f %f\n", + contact_list[0].xv[0], contact_list[0].xv[1], contact_list[0].xv[2], + contact_list[0].xe[0], contact_list[0].xe[1], contact_list[0].xe[2]); + #endif + } + + #ifdef _POLYGON_DEBUG + int num_overlapping_contacts = 0; + for (int m = 0; m < num_contacts-1; m++) { + for (int n = m+1; n < num_contacts; n++) { + double l = contact_separation(contact_list[m], contact_list[n]); + if (l < EPSILON) num_overlapping_contacts++; + } + } + printf("There are %d contacts detected, %d of which overlap.\n", + num_contacts, num_overlapping_contacts); + #endif + + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0.0, + facc[0],facc[1],facc[2],delx,dely,delz); + + } // end for jj + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::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(k_n,n+1,n+1,"pair:k_n"); + memory->create(k_na,n+1,n+1,"pair:k_na"); + memory->create(maxerad,n+1,"pair:maxerad"); +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::settings(int narg, char **arg) +{ + if (narg < 5) error->all(FLERR,"Illegal pair_style command"); + + c_n = force->numeric(FLERR,arg[0]); + c_t = force->numeric(FLERR,arg[1]); + mu = force->numeric(FLERR,arg[2]); + delta_ua = force->numeric(FLERR,arg[3]); + cut_inner = force->numeric(FLERR,arg[4]); +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::coeff(int narg, char **arg) +{ + if (narg < 4 || narg > 5) + 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 k_n_one = force->numeric(FLERR,arg[2]); + double k_na_one = force->numeric(FLERR,arg[3]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + k_n[i][j] = k_n_one; + k_na[i][j] = k_na_one; + setflag[i][j] = 1; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::init_style() +{ + avec = (AtomVecBody *) atom->style_match("body"); + if (!avec) error->all(FLERR,"Pair body/rounded/polygon requires atom style body"); + if (strcmp(avec->bptr->style,"rounded/polygon") != 0) + error->all(FLERR,"Pair body/rounded/polygon requires body style rounded/polygon"); + bptr = (BodyRoundedPolygon *) avec->bptr; + + if (comm->ghost_velocity == 0) + error->all(FLERR,"Pair body/rounded/polygon requires ghost atoms store velocity"); + + neighbor->request(this); + + // find the maximum enclosing radius for each atom type + + int i, itype; + double eradi; + int* body = atom->body; + int* type = atom->type; + int ntypes = atom->ntypes; + int nlocal = atom->nlocal; + + if (atom->nmax > nmax) { + memory->destroy(dnum); + memory->destroy(dfirst); + memory->destroy(ednum); + memory->destroy(edfirst); + memory->destroy(enclosing_radius); + memory->destroy(rounded_radius); + nmax = atom->nmax; + memory->create(dnum,nmax,"pair:dnum"); + memory->create(dfirst,nmax,"pair:dfirst"); + memory->create(ednum,nmax,"pair:ednum"); + memory->create(edfirst,nmax,"pair:edfirst"); + memory->create(enclosing_radius,nmax,"pair:enclosing_radius"); + memory->create(rounded_radius,nmax,"pair:rounded_radius"); + } + + ndiscrete = nedge = 0; + for (i = 0; i < nlocal; i++) + dnum[i] = ednum[i] = 0; + + double *merad = NULL; + memory->create(merad,ntypes+1,"pair:merad"); + for (i = 1; i <= ntypes; i++) + maxerad[i] = merad[i] = 0; + + int ipour; + for (ipour = 0; ipour < modify->nfix; ipour++) + if (strcmp(modify->fix[ipour]->style,"pour") == 0) break; + if (ipour == modify->nfix) ipour = -1; + + int idep; + for (idep = 0; idep < modify->nfix; idep++) + if (strcmp(modify->fix[idep]->style,"deposit") == 0) break; + if (idep == modify->nfix) idep = -1; + + for (i = 1; i <= ntypes; i++) { + merad[i] = 0.0; + if (ipour >= 0) { + itype = i; + merad[i] = + *((double *) modify->fix[ipour]->extract("radius",itype)); + } + if (idep >= 0) { + itype = i; + merad[i] = + *((double *) modify->fix[idep]->extract("radius",itype)); + } + } + + for (i = 0; i < nlocal; i++) { + itype = type[i]; + if (body[i] >= 0) { + if (dnum[i] == 0) body2space(i); + eradi = enclosing_radius[i]; + if (eradi > merad[itype]) merad[itype] = eradi; + } else + merad[itype] = 0; + } + + MPI_Allreduce(&merad[1],&maxerad[1],ntypes,MPI_DOUBLE,MPI_MAX,world); + + memory->destroy(merad); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairBodyRoundedPolygon::init_one(int i, int j) +{ + k_n[j][i] = k_n[i][j]; + k_na[j][i] = k_na[i][j]; + + return (maxerad[i]+maxerad[j]); +} + +/* ---------------------------------------------------------------------- + convert N sub-particles in body I to space frame using current quaternion + store sub-particle space-frame displacements from COM in discrete list +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::body2space(int i) +{ + int ibonus = atom->body[i]; + AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; + int nsub = bptr->nsub(bonus); + double *coords = bptr->coords(bonus); + int body_num_edges = bptr->nedges(bonus); + double* edge_ends = bptr->edges(bonus); + double eradius = bptr->enclosing_radius(bonus); + double rradius = bptr->rounded_radius(bonus); + + // get the number of sub-particles (vertices) + // and the index of the first vertex of my body in the list + + dnum[i] = nsub; + dfirst[i] = ndiscrete; + + // grow the vertex list if necessary + // the first 3 columns are for coords, the last 3 for forces + + if (ndiscrete + nsub > dmax) { + dmax += DELTA; + memory->grow(discrete,dmax,6,"pair:discrete"); + } + + double p[3][3]; + MathExtra::quat_to_mat(bonus->quat,p); + + for (int m = 0; m < nsub; m++) { + MathExtra::matvec(p,&coords[3*m],discrete[ndiscrete]); + discrete[ndiscrete][3] = 0; + discrete[ndiscrete][4] = 0; + discrete[ndiscrete][5] = 0; + ndiscrete++; + } + + // get the number of edges (vertices) + // and the index of the first edge of my body in the list + + ednum[i] = body_num_edges; + edfirst[i] = nedge; + + // grow the edge list if necessary + // the first 2 columns are for vertex indices within body, the last 3 for forces + + if (nedge + body_num_edges > edmax) { + edmax += DELTA; + memory->grow(edge,edmax,5,"pair:edge"); + } + + for (int m = 0; m < body_num_edges; m++) { + edge[nedge][0] = static_cast(edge_ends[2*m+0]); + edge[nedge][1] = static_cast(edge_ends[2*m+1]); + edge[nedge][2] = 0; + edge[nedge][3] = 0; + edge[nedge][4] = 0; + nedge++; + } + + enclosing_radius[i] = eradius; + rounded_radius[i] = rradius; +} + +/* ---------------------------------------------------------------------- + Interaction between two spheres with different radii + according to the 2D model from Fraige et al. +---------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::sphere_against_sphere(int i, int j, + double delx, double dely, double delz, double rsq, + double k_n, double k_na, double** x, double** v, + double** f, int evflag) +{ + double eradi,eradj,rradi,rradj; + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double rij,rsqinv,R,fx,fy,fz,fn[3],ft[3],fpair,shift,energy; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + eradi = enclosing_radius[i]; + rradi = rounded_radius[i]; + + eradj = enclosing_radius[j]; + rradj = rounded_radius[j]; + + rsqinv = 1.0/rsq; + rij = sqrt(rsq); + R = rij - (rradi + rradj); + shift = k_na * cut_inner; + + energy = 0; + + if (R <= 0) { // deformation occurs + fpair = -k_n * R - shift; + energy = (0.5 * k_n * R + shift) * R; + } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap + fpair = k_na * R - shift; + energy = (-0.5 * k_na * R + shift) * R; + } else fpair = 0.0; + + fx = delx*fpair/rij; + fy = dely*fpair/rij; + fz = delz*fpair/rij; + + if (R <= EPSILON) { // in contact + + // relative translational velocity + + vr1 = v[i][0] - v[j][0]; + vr2 = v[i][1] - v[j][1]; + vr3 = v[i][2] - v[j][2]; + + // normal component + + vnnr = vr1*delx + vr2*dely + vr3*delz; + vn1 = delx*vnnr * rsqinv; + vn2 = dely*vnnr * rsqinv; + vn3 = delz*vnnr * rsqinv; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // normal friction term at contact + + fn[0] = -c_n * vn1; + fn[1] = -c_n * vn2; + fn[2] = -c_n * vn3; + + // tangential friction term at contact + // excluding the tangential deformation term + + ft[0] = -c_t * vt1; + ft[1] = -c_t * vt2; + ft[2] = -c_t * vt3; + } + + f[i][0] += fx; + f[i][1] += fy; + f[i][2] += fz; + + if (newton_pair || j < nlocal) { + f[j][0] -= fx; + f[j][1] -= fy; + f[j][2] -= fz; + } + + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, + energy,0.0,fx,fy,fz,delx,dely,delz); +} + +/* ---------------------------------------------------------------------- + Determine the interaction mode between i's vertices against j's edges + + i = atom i (body i) + j = atom j (body j) + x = atoms' coordinates + f = atoms' forces + torque = atoms' torques + tag = atoms' tags + contact_list = list of contacts + num_contacts = number of contacts between i's vertices and j's edges + Return: + interact = 0 no interaction at all + 1 there's at least one case where i's vertices interacts + with j's edges +---------------------------------------------------------------------- */ + +int PairBodyRoundedPolygon::vertex_against_edge(int i, int j, + double k_n, double k_na, + double** x, double** f, + double** torque, tagint* tag, + Contact* contact_list, + int &num_contacts, + double &evdwl, double* facc) +{ + int ni, npi, ifirst, nei, iefirst; + int nj, npj, jfirst, nej, jefirst; + double xpi[3], xpj[3], dist, eradi, eradj, rradi, rradj; + double fx, fy, fz, rx, ry, rz, energy; + int interact; + int nlocal = atom->nlocal; + + npi = dnum[i]; + ifirst = dfirst[i]; + nei = ednum[i]; + iefirst = edfirst[i]; + eradi = enclosing_radius[i]; + rradi = rounded_radius[i]; + + npj = dnum[j]; + jfirst = dfirst[j]; + nej = ednum[j]; + jefirst = edfirst[j]; + eradj = enclosing_radius[j]; + rradj = rounded_radius[j]; + + energy = 0; + interact = 0; + + // loop through body i's vertices + + for (ni = 0; ni < npi; ni++) { + + // convert body-fixed coordinates to space-fixed, xi + + xpi[0] = x[i][0] + discrete[ifirst+ni][0]; + xpi[1] = x[i][1] + discrete[ifirst+ni][1]; + xpi[2] = x[i][2] + discrete[ifirst+ni][2]; + + // compute the distance from the vertex to the COM of body j + + distance(xpi, x[j], dist); + + #ifdef _POLYGON_DEBUG + printf("Distance between vertex %d of body %d (%0.1f %0.1f %0.1f) " + "to body %d's COM: %f (cut = %0.1f)\n", + ni, xpi[0], xpi[1], xpi[2], atom->tag[i], atom->tag[j], dist, + eradj + rradi + rradj + cut_inner); + #endif + + // the vertex is within the enclosing circle (sphere) of body j, + // possibly interacting + + if (dist > eradj + rradj + rradi + cut_inner) continue; + + int mode, contact, p2vertex; + double d, R, hi[3], t, delx, dely, delz, fpair, shift; + double xj[3], rij; + + // loop through body j's edges + + for (nj = 0; nj < nej; nj++) { + + // compute the distance between the edge nj to the vertex xpi + + mode = compute_distance_to_vertex(j, nj, x[j], rradj, + xpi, rradi, cut_inner, + d, hi, t, contact); + + if (mode == INVALID || mode == NONE) continue; + + if (mode == VERTEXI || mode == VERTEXJ) { + + interact = 1; + + // vertex i interacts with a vertex of the edge, but does not contact + + if (mode == VERTEXI) p2vertex = edge[jefirst+nj][0]; + else if (mode == VERTEXJ) p2vertex = edge[jefirst+nj][1]; + + // p2.body2space(p2vertex, xj); + xpj[0] = x[j][0] + discrete[jfirst+p2vertex][0]; + xpj[1] = x[j][1] + discrete[jfirst+p2vertex][1]; + xpj[2] = x[j][2] + discrete[jfirst+p2vertex][2]; + + delx = xpi[0] - xpj[0]; + dely = xpi[1] - xpj[1]; + delz = xpi[2] - xpj[2]; + + // R = surface separation = rij shifted by the rounded radii + // R = rij - (p1.rounded_radius + p2.rounded_radius); + // note: the force is defined for R, not for rij + // R > rc: no interaction between vertex ni and p2vertex + // 0 < R < rc: cohesion between vertex ni and p2vertex + // R < 0: deformation between vertex ni and p2vertex + + rij = sqrt(delx*delx + dely*dely + delz*delz); + R = rij - (rradi + rradj); + shift = k_na * cut_inner; + + // the normal frictional term -c_n * vn will be added later + + if (R <= 0) { // deformation occurs + fpair = -k_n * R - shift; + energy += (0.5 * k_n * R + shift) * R; + } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap + fpair = k_na * R - shift; + energy += (-0.5 * k_na * R + shift) * R; + } else fpair = 0.0; + + fx = delx*fpair/rij; + fy = dely*fpair/rij; + fz = delz*fpair/rij; + + #ifdef _POLYGON_DEBUG + printf(" Interaction between vertex %d of %d and vertex %d of %d:", + ni, tag[i], p2vertex, tag[j]); + printf(" mode = %d; contact = %d; d = %f; rij = %f, t = %f\n", + mode, contact, d, rij, t); + printf(" R = %f; cut_inner = %f\n", R, cut_inner); + printf(" fpair = %f\n", fpair); + #endif + + // add forces to body i and body j directly + // avoid double counts this pair of vertices + // i and j can be either local or ghost atoms (bodies) + // probably need more work here when the vertices' interaction + // are not symmetric, e.g. j interacts with the edge + // consisting of i but in mode = EDGE instead of VERTEX*. + // OR, for the time being assume that the edge length is + // sufficiently greater than the rounded radius to distinguish + // vertex-vertex from vertex-edge contact modes. + // Special case: when i is a sphere, also accumulate + + if (tag[i] < tag[j] || npi == 1) { + + f[i][0] += fx; + f[i][1] += fy; + f[i][2] += fz; + sum_torque(x[i], xpi, fx, fy, fz, torque[i]); + + f[j][0] -= fx; + f[j][1] -= fy; + f[j][2] -= fz; + sum_torque(x[j], xpj, -fx, -fy, -fz, torque[j]); + + facc[0] += fx; facc[1] += fy; facc[2] += fz; + + #ifdef _POLYGON_DEBUG + printf(" from vertex-vertex: " + "force on vertex %d of body %d: fx %f fy %f fz %f\n" + " torque body %d: %f %f %f\n" + " torque body %d: %f %f %f\n", ni, tag[i], fx, fy, fz, + tag[i],torque[i][0],torque[i][1],torque[i][2], + tag[j],torque[j][0],torque[j][1],torque[j][2]); + #endif + } + + // done with the edges from body j, + // given that vertex ni interacts with only one vertex from one edge of body j + +// break; + + } else if (mode == EDGE) { + + interact = 1; + + // vertex i interacts with the edge + + delx = xpi[0] - hi[0]; + dely = xpi[1] - hi[1]; + delz = xpi[2] - hi[2]; + + // R = surface separation = d shifted by the rounded radii + // R = d - (p1.rounded_radius + p2.rounded_radius); + // Note: the force is defined for R, not for d + // R > rc: no interaction between vertex i and edge j + // 0 < R < rc: cohesion between vertex i and edge j + // R < 0: deformation between vertex i and edge j + // rij = sqrt(delx*delx + dely*dely + delz*delz); + + R = d - (rradi + rradj); + shift = k_na * cut_inner; + + // the normal frictional term -c_n * vn will be added later + + if (R <= 0) { // deformation occurs + fpair = -k_n * R - shift; + energy += (0.5 * k_n * R + shift) * R; + } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap + fpair = k_na * R - shift; + energy += (-0.5 * k_na * R + shift) * R; + } else fpair = 0.0; + + fx = delx*fpair/d; + fy = dely*fpair/d; + fz = delz*fpair/d; + + #ifdef _POLYGON_DEBUG + printf(" Interaction between vertex %d of %d and edge %d of %d:", + ni, tag[i], nj, tag[j]); + printf(" mode = %d; contact = %d; d = %f; t = %f\n", + mode, contact, d, t); + printf(" R = %f; cut_inner = %f\n", R, cut_inner); + printf(" fpair = %f\n", fpair); + #endif + + if (contact == 1) { + + // vertex ni of body i contacts with edge nj of body j + + contact_list[num_contacts].ibody = i; + contact_list[num_contacts].jbody = j; + contact_list[num_contacts].vertex = ni; + contact_list[num_contacts].edge = nj; + contact_list[num_contacts].xv[0] = xpi[0]; + contact_list[num_contacts].xv[1] = xpi[1]; + contact_list[num_contacts].xv[2] = xpi[2]; + contact_list[num_contacts].xe[0] = hi[0]; + contact_list[num_contacts].xe[1] = hi[1]; + contact_list[num_contacts].xe[2] = hi[2]; + contact_list[num_contacts].separation = R; + num_contacts++; + + // store forces to vertex ni and the edge nj + // to be rescaled later + + discrete[ifirst+ni][3] = fx; + discrete[ifirst+ni][4] = fy; + discrete[ifirst+ni][5] = fz; + + edge[jefirst+nj][2] = -fx; + edge[jefirst+nj][3] = -fy; + edge[jefirst+nj][4] = -fz; + + #ifdef _POLYGON_DEBUG + printf(" Stored forces at vertex and edge for accumulating later.\n"); + #endif + + } else { // no contact + + // accumulate force and torque to both bodies directly + + f[i][0] += fx; + f[i][1] += fy; + f[i][2] += fz; + sum_torque(x[i], xpi, fx, fy, fz, torque[i]); + + f[j][0] -= fx; + f[j][1] -= fy; + f[j][2] -= fz; + sum_torque(x[j], hi, -fx, -fy, -fz, torque[j]); + + facc[0] += fx; facc[1] += fy; facc[2] += fz; + + #ifdef _POLYGON_DEBUG + printf(" from vertex-edge, no contact: " + "force on vertex %d of body %d: fx %f fy %f fz %f\n" + " torque body %d: %f %f %f\n" + " torque body %d: %f %f %f\n", ni, tag[i], fx, fy, fz, + tag[i],torque[i][0],torque[i][1],torque[i][2], + tag[j],torque[j][0],torque[j][1],torque[j][2]); + #endif + } // end if contact + + // done with the edges from body j, + // given that vertex ni interacts with only one edge from body j + +// break; + + } // end if mode + + } // end for looping through the edges of body j + + } // end for looping through the vertices of body i + + evdwl += energy; + + return interact; +} + +/* ------------------------------------------------------------------------- + Compute the distance between an edge of body i and a vertex from + another body + Input: + ibody = body i (i.e. atom i) + edge_index = edge index of body i + xmi = atom i's coordinates (body i's center of mass) + x0 = coordinate of the tested vertex from another body + x0_rounded_radius = rounded radius of the tested vertex + cut_inner = cutoff for vertex-vertex and vertex-edge interaction + Output: + d = Distance from a point x0 to an edge + hi = coordinates of the projection of x0 on the edge + t = ratio to determine the relative position of hi + wrt xi and xj on the segment + contact = 0 no contact between the queried vertex and the edge + 1 contact detected + return + INVALID if the edge index is invalid + NONE if there is no interaction + VERTEXI if the tested vertex interacts with the first vertex of the edge + VERTEXJ if the tested vertex interacts with the second vertex of the edge + EDGE if the tested vertex interacts with the edge +------------------------------------------------------------------------- */ + +int PairBodyRoundedPolygon::compute_distance_to_vertex(int ibody, + int edge_index, + double *xmi, + double rounded_radius, + double* x0, + double x0_rounded_radius, + double cut_inner, + double &d, + double hi[3], + double &t, + int &contact) +{ + if (edge_index >= ednum[ibody]) return INVALID; + + int mode,ifirst,iefirst,npi1,npi2; + double xi1[3],xi2[3],u[3],v[3],uij[3]; + double udotv, magv, magucostheta; + double delx,dely,delz; + + ifirst = dfirst[ibody]; + iefirst = edfirst[ibody]; + npi1 = static_cast(edge[iefirst+edge_index][0]); + npi2 = static_cast(edge[iefirst+edge_index][1]); + + // compute the space-fixed coordinates for the vertices of the edge + + xi1[0] = xmi[0] + discrete[ifirst+npi1][0]; + xi1[1] = xmi[1] + discrete[ifirst+npi1][1]; + xi1[2] = xmi[2] + discrete[ifirst+npi1][2]; + + xi2[0] = xmi[0] + discrete[ifirst+npi2][0]; + xi2[1] = xmi[1] + discrete[ifirst+npi2][1]; + xi2[2] = xmi[2] + discrete[ifirst+npi2][2]; + + // u = x0 - xi1 + + u[0] = x0[0] - xi1[0]; + u[1] = x0[1] - xi1[1]; + u[2] = x0[2] - xi1[2]; + + // v = xi2 - xi1 + + v[0] = xi2[0] - xi1[0]; + v[1] = xi2[1] - xi1[1]; + v[2] = xi2[2] - xi1[2]; + + // dot product between u and v = magu * magv * costheta + + udotv = u[0] * v[0] + u[1] * v[1] + u[2] * v[2]; + magv = sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); + magucostheta = udotv / magv; + + // uij is the unit vector pointing from xi to xj + + uij[0] = v[0] / magv; + uij[1] = v[1] / magv; + uij[2] = v[2] / magv; + + // position of the projection of x0 on the line (xi, xj) + + hi[0] = xi1[0] + magucostheta * uij[0]; + hi[1] = xi1[1] + magucostheta * uij[1]; + hi[2] = xi1[2] + magucostheta * uij[2]; + + // distance from x0 to the line (xi, xj) = distance from x0 to hi + + distance(hi, x0, d); + + // determine the interaction mode + // for 2D: a vertex can interact with one edge at most + // for 3D: a vertex can interact with one face at most + + mode = NONE; + contact = 0; + + if (d > rounded_radius + x0_rounded_radius + cut_inner) { + + // if the vertex is far away from the edge + + mode = NONE; + + } else { + + // check if x0 (the queried vertex) and xmi (the body's center of mass) + // are on the different sides of the edge + + int m = opposite_sides(xi1, xi2, x0, xmi); + + if (m == 0) { + + // x0 and xmi are on not the opposite sides of the edge + // leave xpi for another edge to detect + + mode = NONE; + + } else { + + // x0 and xmi are on the different sides + // t is the ratio to detect if x0 is closer to the vertices xi or xj + + if (fabs(xi2[0] - xi1[0]) > EPSILON) + t = (hi[0] - xi1[0]) / (xi2[0] - xi1[0]); + else if (fabs(xi2[1] - xi1[1]) > EPSILON) + t = (hi[1] - xi1[1]) / (xi2[1] - xi1[1]); + else if (fabs(xi2[2] - xi1[2]) > EPSILON) + t = (hi[2] - xi1[2]) / (xi2[2] - xi1[2]); + + double contact_dist = rounded_radius + x0_rounded_radius; + if (t >= 0 && t <= 1) { + mode = EDGE; + if (d < contact_dist + EPSILON) + contact = 1; + + } else { // t < 0 || t > 1: closer to either vertices of the edge + + if (t < 0) { + // measure the distance from x0 to xi1 + delx = x0[0] - xi1[0]; + dely = x0[1] - xi1[1]; + delz = x0[2] - xi1[2]; + double dx0xi1 = sqrt(delx*delx + dely*dely + delz*delz); + if (dx0xi1 > contact_dist + cut_inner) + mode = NONE; + else + mode = VERTEXI; + } else { + // measure the distance from x0 to xi2 + delx = x0[0] - xi2[0]; + dely = x0[1] - xi2[1]; + delz = x0[2] - xi2[2]; + double dx0xi2 = sqrt(delx*delx + dely*dely + delz*delz); + if (dx0xi2 > contact_dist + cut_inner) + mode = NONE; + else + mode = VERTEXJ; + } + } // end if t >= 0 && t <= 1 + } // end if x0 and xmi are on the same side of the edge + } + + return mode; +} + +/* ---------------------------------------------------------------------- + Compute contact forces between two bodies + modify the force stored at the vertex and edge in contact by j_a + sum forces and torque to the corresponding bodies + fn = normal friction component + ft = tangential friction component (-c_t * v_t) +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::contact_forces(Contact& contact, double j_a, + double** x, double** v, double** angmom, double** f, + double** torque, double &evdwl, double* facc) +{ + int ibody,jbody,ibonus,jbonus,ifirst,jefirst,ni,nj; + double fx,fy,fz,delx,dely,delz,rsq,rsqinv; + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double fn[3],ft[3],vi[3],vj[3]; + double *quat, *inertia; + AtomVecBody::Bonus *bonus; + + ibody = contact.ibody; + jbody = contact.jbody; + + // compute the velocity of the vertex in the space-fixed frame + + ibonus = atom->body[ibody]; + bonus = &avec->bonus[ibonus]; + quat = bonus->quat; + inertia = bonus->inertia; + total_velocity(contact.xv, x[ibody], v[ibody], angmom[ibody], + inertia, quat, vi); + + // compute the velocity of the point on the edge in the space-fixed frame + + jbonus = atom->body[jbody]; + bonus = &avec->bonus[jbonus]; + quat = bonus->quat; + inertia = bonus->inertia; + total_velocity(contact.xe, x[jbody], v[jbody], angmom[jbody], + inertia, quat, vj); + + // vector pointing from the vertex to the point on the edge + + delx = contact.xv[0] - contact.xe[0]; + dely = contact.xv[1] - contact.xe[1]; + delz = contact.xv[2] - contact.xe[2]; + rsq = delx*delx + dely*dely + delz*delz; + rsqinv = 1.0/rsq; + + // relative translational velocity + + vr1 = vi[0] - vj[0]; + vr2 = vi[1] - vj[1]; + vr3 = vi[2] - vj[2]; + + // normal component + + vnnr = vr1*delx + vr2*dely + vr3*delz; + vn1 = delx*vnnr * rsqinv; + vn2 = dely*vnnr * rsqinv; + vn3 = delz*vnnr * rsqinv; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // normal friction term at contact + + fn[0] = -c_n * vn1; + fn[1] = -c_n * vn2; + fn[2] = -c_n * vn3; + + // tangential friction term at contact + // excluding the tangential deformation term for now + + ft[0] = -c_t * vt1; + ft[1] = -c_t * vt2; + ft[2] = -c_t * vt3; + + // only the cohesive force is scaled by j_a + // mu * fne = tangential friction deformation during gross sliding + // see Eq. 4, Fraige et al. + + ifirst = dfirst[ibody]; + ni = contact.vertex; + + fx = discrete[ifirst+ni][3] * j_a + fn[0] + ft[0] + + mu * discrete[ifirst+ni][3]; + fy = discrete[ifirst+ni][4] * j_a + fn[1] + ft[1] + + mu * discrete[ifirst+ni][4]; + fz = discrete[ifirst+ni][5] * j_a + fn[2] + ft[2] + + mu * discrete[ifirst+ni][5]; + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + sum_torque(x[ibody], contact.xv, fx, fy, fz, torque[ibody]); + + // accumulate forces to the vertex only + + facc[0] += fx; facc[1] += fy; facc[2] += fz; + + // only the cohesive force is scaled by j_a + // mu * fne = tangential friction deformation during gross sliding + // Eq. 4, Fraige et al. + + jefirst = edfirst[jbody]; + nj = contact.edge; + + fx = edge[jefirst+nj][2] * j_a - fn[0] - ft[0] + + mu * edge[jefirst+nj][2]; + fy = edge[jefirst+nj][3] * j_a - fn[1] - ft[1] + + mu * edge[jefirst+nj][3]; + fz = edge[jefirst+nj][4] * j_a - fn[2] - ft[2] + + mu * edge[jefirst+nj][4]; + f[jbody][0] += fx; + f[jbody][1] += fy; + f[jbody][2] += fz; + sum_torque(x[jbody], contact.xe, fx, fy, fz, torque[jbody]); + + #ifdef _POLYGON_DEBUG + printf("From contact forces: vertex fx %f fy %f fz %f\n" + " torque body %d: %f %f %f\n" + " torque body %d: %f %f %f\n", + discrete[ifirst+ni][3], discrete[ifirst+ni][4], discrete[ifirst+ni][5], + atom->tag[ibody],torque[ibody][0],torque[ibody][1],torque[ibody][2], + atom->tag[jbody],torque[jbody][0],torque[jbody][1],torque[jbody][2]); + #endif +} + +/* ---------------------------------------------------------------------- + Determine the length of the contact segment, i.e. the separation between + 2 contacts, should be extended for 3D models. +------------------------------------------------------------------------- */ + +double PairBodyRoundedPolygon::contact_separation(const Contact& c1, + const Contact& c2) +{ + double x1 = c1.xv[0]; + double y1 = c1.xv[1]; + double x2 = c1.xe[0]; + double y2 = c1.xe[1]; + double x3 = c2.xv[0]; + double y3 = c2.xv[1]; + + double delta_a = 0.0; + if (fabs(x2 - x1) > EPSILON) { + double A = (y2 - y1) / (x2 - x1); + delta_a = fabs(y1 - A * x1 - y3 + A * x3) / sqrt(1 + A * A); + } else { + delta_a = fabs(x1 - x3); + } + + return delta_a; +} + +/* ---------------------------------------------------------------------- + Accumulate torque to body from the force f=(fx,fy,fz) acting at point x +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::sum_torque(double* xm, double *x, double fx, + double fy, double fz, double* torque) +{ + double rx = x[0] - xm[0]; + double ry = x[1] - xm[1]; + double rz = x[2] - xm[2]; + double tx = ry * fz - rz * fy; + double ty = rz * fx - rx * fz; + double tz = rx * fy - ry * fx; + torque[0] += tx; + torque[1] += ty; + torque[2] += tz; +} + +/* ---------------------------------------------------------------------- + Test if two points a and b are in opposite sides of the line that + connects two points x1 and x2 +------------------------------------------------------------------------- */ + +int PairBodyRoundedPolygon::opposite_sides(double* x1, double* x2, + double* a, double* b) +{ + double m_a = (x1[1] - x2[1])*(a[0] - x1[0]) + (x2[0] - x1[0])*(a[1] - x1[1]); + double m_b = (x1[1] - x2[1])*(b[0] - x1[0]) + (x2[0] - x1[0])*(b[1] - x1[1]); + // equal to zero when either a or b is inline with the line x1-x2 + if (m_a * m_b <= 0) + return 1; + else + return 0; +} + +/* ---------------------------------------------------------------------- + Calculate the total velocity of a point (vertex, a point on an edge): + vi = vcm + omega ^ (p - xcm) +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::total_velocity(double* p, double *xcm, + double* vcm, double *angmom, double *inertia, + double *quat, double* vi) +{ + double r[3],omega[3],ex_space[3],ey_space[3],ez_space[3]; + r[0] = p[0] - xcm[0]; + r[1] = p[1] - xcm[1]; + r[2] = p[2] - xcm[2]; + MathExtra::q_to_exyz(quat,ex_space,ey_space,ez_space); + MathExtra::angmom_to_omega(angmom,ex_space,ey_space,ez_space, + inertia,omega); + vi[0] = omega[1]*r[2] - omega[2]*r[1] + vcm[0]; + vi[1] = omega[2]*r[0] - omega[0]*r[2] + vcm[1]; + vi[2] = omega[0]*r[1] - omega[1]*r[0] + vcm[2]; +} + +/* ---------------------------------------------------------------------- */ + +void PairBodyRoundedPolygon::distance(const double* x2, const double* x1, + double& r) +{ + r = sqrt((x2[0] - x1[0]) * (x2[0] - x1[0]) + + (x2[1] - x1[1]) * (x2[1] - x1[1]) + + (x2[2] - x1[2]) * (x2[2] - x1[2])); +} + diff --git a/src/BODY/pair_body_rounded_polygon.h b/src/BODY/pair_body_rounded_polygon.h new file mode 100644 index 0000000000..09c93b832e --- /dev/null +++ b/src/BODY/pair_body_rounded_polygon.h @@ -0,0 +1,128 @@ +/* -*- 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(body/rounded/polygon,PairBodyRoundedPolygon) + +#else + +#ifndef LMP_PAIR_BODY_ROUNDED_POLYGON_H +#define LMP_PAIR_BODY_ROUNDED_POLYGON_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairBodyRoundedPolygon : public Pair { + public: + PairBodyRoundedPolygon(class LAMMPS *); + ~PairBodyRoundedPolygon(); + void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + void init_style(); + double init_one(int, int); + + struct Contact { + int ibody, jbody; // body (i.e. atom) indices (not tags) + int vertex; // vertex of the first polygon + int edge; // edge of the second polygon + double xv[3]; // coordinates of the vertex + double xe[3]; // coordinates of the projection of the vertex on the edge + double separation;// separation at contact + }; + + protected: + double **k_n; // normal repulsion strength + double **k_na; // normal attraction strength + double c_n; // normal damping coefficient + double c_t; // tangential damping coefficient + double mu; // normal friction coefficient during gross sliding + double delta_ua; // contact line (area for 3D models) modification factor + double cut_inner; // cutoff for interaction between vertex-edge surfaces + + class AtomVecBody *avec; + class BodyRoundedPolygon *bptr; + + double **discrete; // list of all sub-particles for all bodies + int ndiscrete; // number of discretes in list + int dmax; // allocated size of discrete list + int *dnum; // number of discretes per line, 0 if uninit + int *dfirst; // index of first discrete per each line + int nmax; // allocated size of dnum,dfirst vectors + + double **edge; // list of all edge for all bodies + int nedge; // number of edge in list + int edmax; // allocated size of edge list + int *ednum; // number of edges per line, 0 if uninit + int *edfirst; // index of first edge per each line + int ednummax; // allocated size of ednum,edfirst vectors + + double *enclosing_radius; // enclosing radii for all bodies + double *rounded_radius; // rounded radii for all bodies + double *maxerad; // per-type maximum enclosing radius + + void allocate(); + void body2space(int); + + int vertex_against_edge(int i, int j, double k_n, double k_na, + double** x, double** f, double** torque, + tagint* tag, Contact* contact_list, + int &num_contacts, double &evdwl, double* facc); + void sphere_against_sphere(int i, int j, double delx, double dely, double delz, + double rsq, double k_n, double k_na, + double** x, double** v, double** f, int evflag); + int compute_distance_to_vertex(int ibody, int edge_index, double* xmi, + double rounded_radius, double* x0, + double x0_rounded_radius, double cut_inner, + double &d, double hi[3], double &t, + int &contact); + double contact_separation(const Contact& c1, const Contact& c2); + void contact_forces(Contact& contact, double j_a, double** x, + double** v, double** f, double** angmom, + double** torque, double &evdwl, double* facc); + void sum_torque(double* xm, double *x, double fx, + double fy, double fz, double* torque); + int opposite_sides(double* x1, double* x2, double* a, double* b); + void total_velocity(double* p, double *xcm, double* vcm, double *angmom, + double *inertia, double *quat, double* vi); + inline void distance(const double* x2, const double* x1, double& r); +}; + +} + +#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 body/rounded/polygon requires atom style body rounded/polygon + +Self-explanatory. + +E: Pair body requires body style rounded/polygon + +This pair style is specific to the rounded/polygon body style. + +*/ diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp new file mode 100644 index 0000000000..8d5f9ec72c --- /dev/null +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -0,0 +1,2348 @@ +/* ---------------------------------------------------------------------- + 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: Trung Dac Nguyen (ndactrung@gmail.com) + Ref: Wang, Yu, Langston, Fraige, Particle shape effects in discrete + element modelling of cohesive angular particles, Granular Matter 2011, + 13:1-12. + Note: The current implementation has not taken into account + the contact history for friction forces. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "pair_body_rounded_polyhedron.h" +#include "math_extra.h" +#include "atom.h" +#include "atom_vec_body.h" +#include "body_rounded_polyhedron.h" +#include "comm.h" +#include "force.h" +#include "fix.h" +#include "modify.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "memory.h" +#include "error.h" +#include "math_extra.h" +#include "math_const.h" + +using namespace LAMMPS_NS; +using namespace MathExtra; +using namespace MathConst; + +#define DELTA 10000 +#define EPSILON 1e-3 +#define MAX_FACE_SIZE 4 // maximum number of vertices per face (same as BodyRoundedPolyhedron) +#define MAX_CONTACTS 16 // for 3D models + +//#define _POLYHEDRON_DEBUG + +enum {EE_INVALID=0,EE_NONE,EE_INTERACT}; +enum {EF_INVALID=0,EF_NONE,EF_PARALLEL,EF_SAME_SIDE_OF_FACE, + EF_INTERSECT_INSIDE,EF_INTERSECT_OUTSIDE}; + +/* ---------------------------------------------------------------------- */ + +PairBodyRoundedPolyhedron::PairBodyRoundedPolyhedron(LAMMPS *lmp) : Pair(lmp) +{ + dmax = nmax = 0; + discrete = NULL; + dnum = dfirst = NULL; + + edmax = ednummax = 0; + edge = NULL; + ednum = edfirst = NULL; + + facmax = facnummax = 0; + face = NULL; + facnum = facfirst = NULL; + + enclosing_radius = NULL; + rounded_radius = NULL; + maxerad = NULL; + + single_enable = 0; + restartinfo = 0; + + c_n = 0.1; + c_t = 0.2; + mu = 0.0; + A_ua = 1.0; +} + +/* ---------------------------------------------------------------------- */ + +PairBodyRoundedPolyhedron::~PairBodyRoundedPolyhedron() +{ + memory->destroy(discrete); + memory->destroy(dnum); + memory->destroy(dfirst); + + memory->destroy(edge); + memory->destroy(ednum); + memory->destroy(edfirst); + + memory->destroy(face); + memory->destroy(facnum); + memory->destroy(facfirst); + + memory->destroy(enclosing_radius); + memory->destroy(rounded_radius); + memory->destroy(maxerad); + + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + + memory->destroy(k_n); + memory->destroy(k_na); + } +} + +/* ---------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + int ni,nj,npi,npj,ifirst,jfirst,nei,nej,iefirst,jefirst; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,facc[3]; + double rsq,eradi,eradj,k_nij,k_naij; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + double **torque = atom->torque; + double **angmom = atom->angmom; + int *body = atom->body; + int *type = atom->type; + int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // grow the per-atom lists if necessary and initialize + + if (atom->nmax > nmax) { + memory->destroy(dnum); + memory->destroy(dfirst); + memory->destroy(ednum); + memory->destroy(edfirst); + memory->destroy(facnum); + memory->destroy(facfirst); + memory->destroy(enclosing_radius); + memory->destroy(rounded_radius); + nmax = atom->nmax; + memory->create(dnum,nmax,"pair:dnum"); + memory->create(dfirst,nmax,"pair:dfirst"); + memory->create(ednum,nmax,"pair:ednum"); + memory->create(edfirst,nmax,"pair:edfirst"); + memory->create(facnum,nmax,"pair:facnum"); + memory->create(facfirst,nmax,"pair:facfirst"); + memory->create(enclosing_radius,nmax,"pair:enclosing_radius"); + memory->create(rounded_radius,nmax,"pair:rounded_radius"); + } + + ndiscrete = nedge = nface = 0; + for (i = 0; i < nall; i++) + dnum[i] = ednum[i] = facnum[i] = 0; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + if (body[i] >= 0) { + if (dnum[i] == 0) body2space(i); + npi = dnum[i]; + ifirst = dfirst[i]; + nei = ednum[i]; + iefirst = edfirst[i]; + eradi = enclosing_radius[i]; + } + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + jtype = type[j]; + + // body/body interactions + + evdwl = 0.0; + facc[0] = facc[1] = facc[2] = 0; + + if (body[i] < 0 || body[j] < 0) continue; + + if (dnum[j] == 0) body2space(j); + npj = dnum[j]; + jfirst = dfirst[j]; + nej = ednum[j]; + jefirst = edfirst[j]; + eradj = enclosing_radius[j]; + + k_nij = k_n[itype][jtype]; + k_naij = k_na[itype][jtype]; + + // no interaction + + double r = sqrt(rsq); + if (r > eradi + eradj + cut_inner) continue; + + // sphere-sphere interaction + + if (npi == 1 && npj == 1) { + sphere_against_sphere(i, j, delx, dely, delz, rsq, + k_nij, k_naij, v, f, evflag); + continue; + } + + // reset vertex and edge forces + + for (ni = 0; ni < npi; ni++) { + discrete[ifirst+ni][3] = 0; + discrete[ifirst+ni][4] = 0; + discrete[ifirst+ni][5] = 0; + discrete[ifirst+ni][6] = 0; + } + + for (nj = 0; nj < npj; nj++) { + discrete[jfirst+nj][3] = 0; + discrete[jfirst+nj][4] = 0; + discrete[jfirst+nj][5] = 0; + discrete[jfirst+nj][6] = 0; + } + + for (ni = 0; ni < nei; ni++) { + edge[iefirst+ni][2] = 0; + edge[iefirst+ni][3] = 0; + edge[iefirst+ni][4] = 0; + edge[iefirst+ni][5] = 0; + } + + for (nj = 0; nj < nej; nj++) { + edge[jefirst+nj][2] = 0; + edge[jefirst+nj][3] = 0; + edge[jefirst+nj][4] = 0; + edge[jefirst+nj][5] = 0; + } + + // one of the two bodies is a sphere + + if (npj == 1) { + sphere_against_face(i, j, k_nij, k_naij, x, v, f, torque, + angmom, evflag); + sphere_against_edge(i, j, k_nij, k_naij, x, v, f, torque, + angmom, evflag); + continue; + } else if (npi == 1) { + sphere_against_face(j, i, k_nij, k_naij, x, v, f, torque, + angmom, evflag); + sphere_against_edge(j, i, k_nij, k_naij, x, v, f, torque, + angmom, evflag); + continue; + } + + int interact, num_contacts; + Contact contact_list[MAX_CONTACTS]; + + num_contacts = 0; + + // check interaction between i's edges and j' faces + #ifdef _POLYHEDRON_DEBUG + printf("INTERACTION between edges of %d vs. faces of %d:\n", i, j); + #endif + interact = edge_against_face(i, j, k_nij, k_naij, x, contact_list, + num_contacts, evdwl, facc); + + // check interaction between j's edges and i' faces + #ifdef _POLYHEDRON_DEBUG + printf("\nINTERACTION between edges of %d vs. faces of %d:\n", j, i); + #endif + interact = edge_against_face(j, i, k_nij, k_naij, x, contact_list, + num_contacts, evdwl, facc); + + // check interaction between i's edges and j' edges + #ifdef _POLYHEDRON_DEBUG + printf("INTERACTION between edges of %d vs. edges of %d:\n", i, j); + #endif + interact = edge_against_edge(i, j, k_nij, k_naij, x, contact_list, + num_contacts, evdwl, facc); + + // estimate the contact area + // also consider point contacts and line contacts + + if (num_contacts > 0) { + double contact_area; + if (num_contacts == 1) { + contact_area = 0; + } else if (num_contacts == 2) { + contact_area = num_contacts * A_ua; + } else { + int m; + double xc[3],dx,dy,dz; + xc[0] = xc[1] = xc[2] = 0; + for (m = 0; m < num_contacts; m++) { + xc[0] += contact_list[m].xi[0]; + xc[1] += contact_list[m].xi[1]; + xc[2] += contact_list[m].xi[2]; + } + + xc[0] /= (double)num_contacts; + xc[1] /= (double)num_contacts; + xc[2] /= (double)num_contacts; + + contact_area = 0.0; + for (m = 0; m < num_contacts; m++) { + dx = contact_list[m].xi[0] - xc[0]; + dy = contact_list[m].xi[1] - xc[1]; + dz = contact_list[m].xi[2] - xc[2]; + contact_area += (dx*dx + dy*dy + dz*dz); + } + contact_area *= (MY_PI/(double)num_contacts); + } + rescale_cohesive_forces(x, f, torque, contact_list, num_contacts, + contact_area, k_nij, k_naij, facc); + } + + if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0.0, + facc[0],facc[1],facc[2],delx,dely,delz); + + } // end for jj + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::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(k_n,n+1,n+1,"pair:k_n"); + memory->create(k_na,n+1,n+1,"pair:k_na"); + memory->create(maxerad,n+1,"pair:maxerad"); +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::settings(int narg, char **arg) +{ + if (narg < 5) error->all(FLERR,"Illegal pair_style command"); + + c_n = force->numeric(FLERR,arg[0]); + c_t = force->numeric(FLERR,arg[1]); + mu = force->numeric(FLERR,arg[2]); + A_ua = force->numeric(FLERR,arg[3]); + cut_inner = force->numeric(FLERR,arg[4]); +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::coeff(int narg, char **arg) +{ + if (narg < 4 || narg > 5) + 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 k_n_one = force->numeric(FLERR,arg[2]); + double k_na_one = force->numeric(FLERR,arg[3]); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + k_n[i][j] = k_n_one; + k_na[i][j] = k_na_one; + setflag[i][j] = 1; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::init_style() +{ + avec = (AtomVecBody *) atom->style_match("body"); + if (!avec) error->all(FLERR,"Pair body/rounded/polyhedron requires atom style body"); + if (strcmp(avec->bptr->style,"rounded/polyhedron") != 0) + error->all(FLERR,"Pair body/rounded/polyhedron requires body style rounded/polyhedron"); + bptr = (BodyRoundedPolyhedron *) avec->bptr; + + if (comm->ghost_velocity == 0) + error->all(FLERR,"Pair body/rounded/polyhedron requires ghost atoms store velocity"); + + neighbor->request(this); + + // find the maximum enclosing radius for each atom type + + int i, itype; + double eradi; + int* body = atom->body; + int* type = atom->type; + int ntypes = atom->ntypes; + int nlocal = atom->nlocal; + + if (atom->nmax > nmax) { + memory->destroy(dnum); + memory->destroy(dfirst); + memory->destroy(ednum); + memory->destroy(edfirst); + memory->destroy(facnum); + memory->destroy(facfirst); + memory->destroy(enclosing_radius); + memory->destroy(rounded_radius); + nmax = atom->nmax; + memory->create(dnum,nmax,"pair:dnum"); + memory->create(dfirst,nmax,"pair:dfirst"); + memory->create(ednum,nmax,"pair:ednum"); + memory->create(edfirst,nmax,"pair:edfirst"); + memory->create(facnum,nmax,"pair:facnum"); + memory->create(facfirst,nmax,"pair:facfirst"); + memory->create(enclosing_radius,nmax,"pair:enclosing_radius"); + memory->create(rounded_radius,nmax,"pair:rounded_radius"); + } + + ndiscrete = nedge = nface = 0; + for (i = 0; i < nlocal; i++) + dnum[i] = ednum[i] = facnum[i] = 0; + + double *merad = NULL; + memory->create(merad,ntypes+1,"pair:merad"); + for (i = 1; i <= ntypes; i++) + maxerad[i] = merad[i] = 0; + + int ipour; + for (ipour = 0; ipour < modify->nfix; ipour++) + if (strcmp(modify->fix[ipour]->style,"pour") == 0) break; + if (ipour == modify->nfix) ipour = -1; + + int idep; + for (idep = 0; idep < modify->nfix; idep++) + if (strcmp(modify->fix[idep]->style,"deposit") == 0) break; + if (idep == modify->nfix) idep = -1; + + for (i = 1; i <= ntypes; i++) { + merad[i] = 0.0; + if (ipour >= 0) { + itype = i; + merad[i] = + *((double *) modify->fix[ipour]->extract("radius",itype)); + } + if (idep >= 0) { + itype = i; + merad[i] = + *((double *) modify->fix[idep]->extract("radius",itype)); + } + } + + for (i = 0; i < nlocal; i++) { + itype = type[i]; + if (body[i] >= 0) { + if (dnum[i] == 0) body2space(i); + eradi = enclosing_radius[i]; + if (eradi > merad[itype]) merad[itype] = eradi; + } else + merad[itype] = 0; + } + + MPI_Allreduce(&merad[1],&maxerad[1],ntypes,MPI_DOUBLE,MPI_MAX,world); + + memory->destroy(merad); + + sanity_check(); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairBodyRoundedPolyhedron::init_one(int i, int j) +{ + k_n[j][i] = k_n[i][j]; + k_na[j][i] = k_na[i][j]; + + return (maxerad[i]+maxerad[j]); +} + +/* ---------------------------------------------------------------------- + convert N sub-particles in body I to space frame using current quaternion + store sub-particle space-frame displacements from COM in discrete list +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::body2space(int i) +{ + int ibonus = atom->body[i]; + AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; + int nsub = bptr->nsub(bonus); + double *coords = bptr->coords(bonus); + int body_num_edges = bptr->nedges(bonus); + double* edge_ends = bptr->edges(bonus); + int body_num_faces = bptr->nfaces(bonus); + double* face_pts = bptr->faces(bonus); + double eradius = bptr->enclosing_radius(bonus); + double rradius = bptr->rounded_radius(bonus); + + // get the number of sub-particles (vertices) + // and the index of the first vertex of my body in the list + + dnum[i] = nsub; + dfirst[i] = ndiscrete; + + // grow the vertex list if necessary + // the first 3 columns are for coords, the last 3 for forces + + if (ndiscrete + nsub > dmax) { + dmax += DELTA; + memory->grow(discrete,dmax,7,"pair:discrete"); + } + + double p[3][3]; + MathExtra::quat_to_mat(bonus->quat,p); + + for (int m = 0; m < nsub; m++) { + MathExtra::matvec(p,&coords[3*m],discrete[ndiscrete]); + discrete[ndiscrete][3] = 0; + discrete[ndiscrete][4] = 0; + discrete[ndiscrete][5] = 0; + discrete[ndiscrete][6] = 0; + ndiscrete++; + } + + // get the number of edges (vertices) + // and the index of the first edge of my body in the list + + ednum[i] = body_num_edges; + edfirst[i] = nedge; + + // grow the edge list if necessary + // the first 2 columns are for vertex indices within body, the last 3 for forces + + if (nedge + body_num_edges > edmax) { + edmax += DELTA; + memory->grow(edge,edmax,6,"pair:edge"); + } + + for (int m = 0; m < body_num_edges; m++) { + edge[nedge][0] = static_cast(edge_ends[2*m+0]); + edge[nedge][1] = static_cast(edge_ends[2*m+1]); + edge[nedge][2] = 0; + edge[nedge][3] = 0; + edge[nedge][4] = 0; + edge[nedge][5] = 0; + nedge++; + } + + // get the number of faces and the index of the first face + + facnum[i] = body_num_faces; + facfirst[i] = nface; + + // grow the face list if necessary + // the first 3 columns are for vertex indices within body, the last 3 for forces + + if (nface + body_num_faces > facmax) { + facmax += DELTA; + memory->grow(face,facmax,MAX_FACE_SIZE,"pair:face"); + } + + for (int m = 0; m < body_num_faces; m++) { + for (int k = 0; k < MAX_FACE_SIZE; k++) + face[nface][k] = static_cast(face_pts[MAX_FACE_SIZE*m+k]); + nface++; + } + + enclosing_radius[i] = eradius; + rounded_radius[i] = rradius; +} + +/* ---------------------------------------------------------------------- + Interaction between two spheres with different radii + according to the 2D model from Fraige et al. +---------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::sphere_against_sphere(int ibody, int jbody, + double delx, double dely, double delz, double rsq, + double k_n, double k_na, double** v, double** f, + int evflag) +{ + double rradi,rradj,contact_dist; + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double rij,rsqinv,R,fx,fy,fz,fn[3],ft[3],fpair,shift,energy; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + rradi = rounded_radius[ibody]; + rradj = rounded_radius[jbody]; + contact_dist = rradi + rradj; + + rij = sqrt(rsq); + R = rij - contact_dist; + shift = k_na * cut_inner; + + energy = 0; + + if (R <= 0) { // deformation occurs + fpair = -k_n * R - shift; + energy = (0.5 * k_n * R + shift) * R; + } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap + fpair = k_na * R - shift; + energy = (-0.5 * k_na * R + shift) * R; + } else fpair = 0.0; + + fx = delx*fpair/rij; + fy = dely*fpair/rij; + fz = delz*fpair/rij; + + if (R <= 0) { // in contact + + // relative translational velocity + + vr1 = v[ibody][0] - v[jbody][0]; + vr2 = v[ibody][1] - v[jbody][1]; + vr3 = v[ibody][2] - v[jbody][2]; + + // normal component + + rsqinv = 1.0/rsq; + vnnr = vr1*delx + vr2*dely + vr3*delz; + vn1 = delx*vnnr * rsqinv; + vn2 = dely*vnnr * rsqinv; + vn3 = delz*vnnr * rsqinv; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // normal friction term at contact + + fn[0] = -c_n * vn1; + fn[1] = -c_n * vn2; + fn[2] = -c_n * vn3; + + // tangential friction term at contact, + // excluding the tangential deformation term for now + + ft[0] = -c_t * vt1; + ft[1] = -c_t * vt2; + ft[2] = -c_t * vt3; + + fx += fn[0] + ft[0]; + fy += fn[1] + ft[1]; + fz += fn[2] + ft[2]; + } + + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + + if (newton_pair || jbody < nlocal) { + f[jbody][0] -= fx; + f[jbody][1] -= fy; + f[jbody][2] -= fz; + } + + if (evflag) ev_tally_xyz(ibody,jbody,nlocal,newton_pair, + energy,0.0,fx,fy,fz,delx,dely,delz); +} + +/* ---------------------------------------------------------------------- + Interaction bt the faces of a polyhedron (ibody) and a sphere (jbody) +---------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::sphere_against_face(int ibody, int jbody, + double k_n, double k_na, double** x, double** v, + double** f, double** torque, double** angmom, + int evflag) +{ + int ni,nfi,inside,ifirst,iffirst,npi1,npi2,npi3,ibonus,tmp; + double xi1[3],xi2[3],xi3[3],ui[3],vi[3],vti[3],n[3],h[3],fn[3],ft[3],d; + double delx,dely,delz,rsq,rij,rsqinv,R,fx,fy,fz,fpair,shift,energy; + double rradi,rradj,contact_dist; + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double *quat, *inertia; + AtomVecBody::Bonus *bonus; + + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + ifirst = dfirst[ibody]; + iffirst = facfirst[ibody]; + nfi = facnum[ibody]; + + rradi = rounded_radius[ibody]; + rradj = rounded_radius[jbody]; + contact_dist = rradi + rradj; + + for (ni = 0; ni < nfi; ni++) { + + npi1 = static_cast(face[iffirst+ni][0]); + npi2 = static_cast(face[iffirst+ni][1]); + npi3 = static_cast(face[iffirst+ni][2]); + + // compute the space-fixed coordinates for the vertices of the face + + xi1[0] = x[ibody][0] + discrete[ifirst+npi1][0]; + xi1[1] = x[ibody][1] + discrete[ifirst+npi1][1]; + xi1[2] = x[ibody][2] + discrete[ifirst+npi1][2]; + + xi2[0] = x[ibody][0] + discrete[ifirst+npi2][0]; + xi2[1] = x[ibody][1] + discrete[ifirst+npi2][1]; + xi2[2] = x[ibody][2] + discrete[ifirst+npi2][2]; + + xi3[0] = x[ibody][0] + discrete[ifirst+npi3][0]; + xi3[1] = x[ibody][1] + discrete[ifirst+npi3][1]; + xi3[2] = x[ibody][2] + discrete[ifirst+npi3][2]; + + // find the normal unit vector of the face + + MathExtra::sub3(xi2, xi1, ui); + MathExtra::sub3(xi3, xi1, vi); + MathExtra::cross3(ui, vi, n); + MathExtra::norm3(n); + + // skip if the COM of the two bodies are in the same side of the face + + if (opposite_sides(n, xi1, x[ibody], x[jbody]) == 0) continue; + + // find the projection of the sphere on the face + + project_pt_plane(x[jbody], xi1, xi2, xi3, h, d, inside); + + inside_polygon(ibody, ni, x[ibody], h, NULL, inside, tmp); + if (inside == 0) continue; + + delx = h[0] - x[jbody][0]; + dely = h[1] - x[jbody][1]; + delz = h[2] - x[jbody][2]; + rsq = delx*delx + dely*dely + delz*delz; + rij = sqrt(rsq); + R = rij - contact_dist; + shift = k_na * cut_inner; + + energy = 0; + + if (R <= 0) { // deformation occurs + fpair = -k_n * R - shift; + energy = (0.5 * k_n * R + shift) * R; + } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap + fpair = k_na * R - shift; + energy = (-0.5 * k_na * R + shift) * R; + } else fpair = 0.0; + + fx = delx*fpair/rij; + fy = dely*fpair/rij; + fz = delz*fpair/rij; + + if (R <= 0) { // in contact + + // compute the velocity of the vertex in the space-fixed frame + + ibonus = atom->body[ibody]; + bonus = &avec->bonus[ibonus]; + quat = bonus->quat; + inertia = bonus->inertia; + total_velocity(h, x[ibody], v[ibody], angmom[ibody], + inertia, quat, vti); + + // relative translational velocity + + vr1 = vti[0] - v[jbody][0]; + vr2 = vti[1] - v[jbody][1]; + vr3 = vti[2] - v[jbody][2]; + + // normal component + + rsqinv = 1.0/rsq; + vnnr = vr1*delx + vr2*dely + vr3*delz; + vn1 = delx*vnnr * rsqinv; + vn2 = dely*vnnr * rsqinv; + vn3 = delz*vnnr * rsqinv; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // normal friction term at contact + + fn[0] = -c_n * vn1; + fn[1] = -c_n * vn2; + fn[2] = -c_n * vn3; + + // tangential friction term at contact, + // excluding the tangential deformation term for now + + ft[0] = -c_t * vt1; + ft[1] = -c_t * vt2; + ft[2] = -c_t * vt3; + + fx += fn[0] + ft[0]; + fy += fn[1] + ft[1]; + fz += fn[2] + ft[2]; + } + + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + sum_torque(x[ibody], h, fx, fy, fz, torque[ibody]); + + if (newton_pair || jbody < nlocal) { + f[jbody][0] -= fx; + f[jbody][1] -= fy; + f[jbody][2] -= fz; + } + + if (evflag) ev_tally_xyz(ibody,jbody,nlocal,newton_pair, + energy,0.0,fx,fy,fz,delx,dely,delz); + } +} + +/* ---------------------------------------------------------------------- + Interaction bt the edges of a polyhedron (ibody) and a sphere (jbody) +---------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, + double k_n, double k_na, double** x, double** v, + double** f, double** torque, double** angmom, + int evflag) +{ + int ni,nei,ifirst,iefirst,npi1,npi2,ibonus; + double xi1[3],xi2[3],vti[3],h[3],fn[3],ft[3],d,t; + double delx,dely,delz,rij,rsqinv,R,fx,fy,fz,fpair,shift,energy; + double rradi,rradj,contact_dist; + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double *quat, *inertia; + AtomVecBody::Bonus *bonus; + + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + ifirst = dfirst[ibody]; + iefirst = edfirst[ibody]; + nei = ednum[ibody]; + + rradi = rounded_radius[ibody]; + rradj = rounded_radius[jbody]; + contact_dist = rradi + rradj; + + for (ni = 0; ni < nei; ni++) { + + npi1 = static_cast(edge[iefirst+ni][0]); + npi2 = static_cast(edge[iefirst+ni][1]); + + // compute the space-fixed coordinates for the vertices of the face + + xi1[0] = x[ibody][0] + discrete[ifirst+npi1][0]; + xi1[1] = x[ibody][1] + discrete[ifirst+npi1][1]; + xi1[2] = x[ibody][2] + discrete[ifirst+npi1][2]; + + xi2[0] = x[ibody][0] + discrete[ifirst+npi2][0]; + xi2[1] = x[ibody][1] + discrete[ifirst+npi2][1]; + xi2[2] = x[ibody][2] + discrete[ifirst+npi2][2]; + + // find the projection of the jbody's COM on the edge + + project_pt_line(x[jbody], xi1, xi2, h, d, t); + + if (d > contact_dist + cut_inner) continue; + if (t < 0 || t > 1) continue; + + if (fabs(t) < EPSILON) { + if (static_cast(discrete[ifirst+npi1][6]) == 1) + continue; + else { + h[0] = xi1[0]; + h[1] = xi1[1]; + h[2] = xi1[2]; + discrete[ifirst+npi1][6] = 1; + } + } + + if (fabs(t-1) < EPSILON) { + if (static_cast(discrete[ifirst+npi2][6]) == 1) + continue; + else { + h[0] = xi2[0]; + h[1] = xi2[1]; + h[2] = xi2[2]; + discrete[ifirst+npi2][6] = 1; + } + } + + delx = h[0] - x[jbody][0]; + dely = h[1] - x[jbody][1]; + delz = h[2] - x[jbody][2]; + rij = sqrt(delx*delx + dely*dely + delz*delz); + R = rij - contact_dist; + shift = k_na * cut_inner; + + energy = 0; + + if (R <= 0) { // deformation occurs + fpair = -k_n * R - shift; + energy = (0.5 * k_n * R + shift) * R; + } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap + fpair = k_na * R - shift; + energy = (-0.5 * k_na * R + shift) * R; + } else fpair = 0.0; + + fx = delx*fpair/rij; + fy = dely*fpair/rij; + fz = delz*fpair/rij; + + if (R <= 0) { // in contact + + // compute the velocity of the vertex in the space-fixed frame + + ibonus = atom->body[ibody]; + bonus = &avec->bonus[ibonus]; + quat = bonus->quat; + inertia = bonus->inertia; + total_velocity(h, x[ibody], v[ibody], angmom[ibody], + inertia, quat, vti); + + // relative translational velocity + + vr1 = vti[0] - v[jbody][0]; + vr2 = vti[1] - v[jbody][1]; + vr3 = vti[2] - v[jbody][2]; + + // normal component + + vnnr = vr1*delx + vr2*dely + vr3*delz; + vn1 = delx*vnnr * rsqinv; + vn2 = dely*vnnr * rsqinv; + vn3 = delz*vnnr * rsqinv; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // normal friction term at contact + + fn[0] = -c_n * vn1; + fn[1] = -c_n * vn2; + fn[2] = -c_n * vn3; + + // tangential friction term at contact, excluding the tangential deformation term + + ft[0] = -c_t * vt1; + ft[1] = -c_t * vt2; + ft[2] = -c_t * vt3; + + fx += fn[0] + ft[0]; + fy += fn[1] + ft[1]; + fz += fn[2] + ft[2]; + } + + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + sum_torque(x[ibody], h, fx, fy, fz, torque[ibody]); + + if (newton_pair || jbody < nlocal) { + f[jbody][0] -= fx; + f[jbody][1] -= fy; + f[jbody][2] -= fz; + } + + if (evflag) ev_tally_xyz(ibody,jbody,nlocal,newton_pair, + energy,0.0,fx,fy,fz,delx,dely,delz); + } + +} + +/* ---------------------------------------------------------------------- + Determine the interaction mode between i's edges against j's faces + + i = atom i (body i) + j = atom j (body j) + x = atoms' coordinates + f = atoms' forces + torque = atoms' torques + tag = atoms' tags + contact_list = list of contacts + num_contacts = number of contacts between i's edges and j's faces + Return: + +---------------------------------------------------------------------- */ + +int PairBodyRoundedPolyhedron::edge_against_face(int ibody, int jbody, + double k_n, double k_na, double** x, Contact* contact_list, + int &num_contacts, double &evdwl, double* facc) +{ + int ni,nei,nj,nfj,contact,interact; + double rradi,rradj,energy; + + nei = ednum[ibody]; + rradi = rounded_radius[ibody]; + nfj = facnum[jbody]; + rradj = rounded_radius[jbody]; + + energy = 0; + interact = EF_NONE; + + // loop through body i's edges + + for (ni = 0; ni < nei; ni++) { + + // loop through body j's faces + + for (nj = 0; nj < nfj; nj++) { + + // compute the distance between the face nj to the edge ni + #ifdef _POLYHEDRON_DEBUG + printf("Compute interaction between face %d of body %d with edge %d of body %d:\n", + nj, jbody, ni, ibody); + #endif + + interact = interaction_face_to_edge(jbody, nj, x[jbody], rradj, + ibody, ni, x[ibody], rradi, + k_n, k_na, cut_inner, + contact_list, num_contacts, + energy, facc); + } + + } // end for looping through the edges of body i + + evdwl += energy; + + return interact; +} + +/* ---------------------------------------------------------------------- + Determine the interaction mode between i's edges against j's edges + + i = atom i (body i) + j = atom j (body j) + x = atoms' coordinates + f = atoms' forces + torque = atoms' torques + tag = atoms' tags + contact_list = list of contacts + num_contacts = number of contacts between i's edges and j's edges + Return: + +---------------------------------------------------------------------- */ + +int PairBodyRoundedPolyhedron::edge_against_edge(int ibody, int jbody, + double k_n, double k_na, double** x, Contact* contact_list, + int &num_contacts, double &evdwl, double* facc) +{ + int ni,nei,nj,nej,contact,interact; + double rradi,rradj,energy; + + nei = ednum[ibody]; + rradi = rounded_radius[ibody]; + nej = ednum[jbody]; + rradj = rounded_radius[jbody]; + + energy = 0; + interact = EE_NONE; + + // loop through body i's edges + + for (ni = 0; ni < nei; ni++) { + + for (nj = 0; nj < nej; nj++) { + + // compute the distance between the edge nj to the edge ni + #ifdef _POLYHEDRON_DEBUG + printf("Compute interaction between edge %d of body %d with edge %d of body %d:\n", + nj, jbody, ni, ibody); + #endif + + interact = interaction_edge_to_edge(ibody, ni, x[ibody], rradi, + jbody, nj, x[jbody], rradj, + k_n, k_na, cut_inner, + contact_list, num_contacts, + energy, facc); + } + + } // end for looping through the edges of body i + + evdwl += energy; + + return interact; +} + +/* ------------------------------------------------------------------------- + Compute the interaction between a face of body i and an edge from + another body + Input: + ibody = body i (i.e. atom i) + face_index = face index of body i + xmi = atom i's coordinates (body i's center of mass) + rounded_radius_i = rounded radius of the body i + jbody = body i (i.e. atom j) + edge_index = coordinate of the tested edge from another body + xmj = atom j's coordinates (body j's center of mass) + rounded_radius_j = rounded radius of the body j + cut_inner = cutoff for vertex-vertex and vertex-edge interaction + Output: + d = Distance from a point x0 to an edge + hi = coordinates of the projection of x0 on the edge + + contact = 0 no contact between the queried edge and the face + 1 contact detected + return + INVALID if the face index is invalid + NONE if there is no interaction +------------------------------------------------------------------------- */ + +int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, + int face_index, + double *xmi, + double rounded_radius_i, + int jbody, + int edge_index, + double *xmj, + double rounded_radius_j, + double k_n, + double k_na, + double cut_inner, + Contact* contact_list, + int &num_contacts, + double &energy, + double* facc) +{ + if (face_index >= facnum[ibody]) return EF_INVALID; + + int ifirst,iffirst,jfirst,npi1,npi2,npi3; + int jefirst,npj1,npj2; + double xi1[3],xi2[3],xi3[3],xpj1[3],xpj2[3],ui[3],vi[3],n[3]; + + double** x = atom->x; + double** v = atom->v; + double** f = atom->f; + double** torque = atom->torque; + double** angmom = atom->angmom; + + ifirst = dfirst[ibody]; + iffirst = facfirst[ibody]; + npi1 = static_cast(face[iffirst+face_index][0]); + npi2 = static_cast(face[iffirst+face_index][1]); + npi3 = static_cast(face[iffirst+face_index][2]); + + // compute the space-fixed coordinates for the vertices of the face + + xi1[0] = xmi[0] + discrete[ifirst+npi1][0]; + xi1[1] = xmi[1] + discrete[ifirst+npi1][1]; + xi1[2] = xmi[2] + discrete[ifirst+npi1][2]; + + xi2[0] = xmi[0] + discrete[ifirst+npi2][0]; + xi2[1] = xmi[1] + discrete[ifirst+npi2][1]; + xi2[2] = xmi[2] + discrete[ifirst+npi2][2]; + + xi3[0] = xmi[0] + discrete[ifirst+npi3][0]; + xi3[1] = xmi[1] + discrete[ifirst+npi3][1]; + xi3[2] = xmi[2] + discrete[ifirst+npi3][2]; + + // find the normal unit vector of the face, ensure it point outward of the body + + MathExtra::sub3(xi2, xi1, ui); + MathExtra::sub3(xi3, xi1, vi); + MathExtra::cross3(ui, vi, n); + MathExtra::norm3(n); + + double xc[3], dot, ans[3]; + xc[0] = (xi1[0] + xi2[0] + xi3[0])/3.0; + xc[1] = (xi1[1] + xi2[1] + xi3[1])/3.0; + xc[2] = (xi1[2] + xi2[2] + xi3[2])/3.0; + MathExtra::sub3(xc, xmi, ans); + dot = MathExtra::dot3(ans, n); + if (dot < 0) MathExtra::negate3(n); + + // two ends of the edge from body j + + jfirst = dfirst[jbody]; + jefirst = edfirst[jbody]; + npj1 = static_cast(edge[jefirst+edge_index][0]); + npj2 = static_cast(edge[jefirst+edge_index][1]); + + xpj1[0] = xmj[0] + discrete[jfirst+npj1][0]; + xpj1[1] = xmj[1] + discrete[jfirst+npj1][1]; + xpj1[2] = xmj[2] + discrete[jfirst+npj1][2]; + + xpj2[0] = xmj[0] + discrete[jfirst+npj2][0]; + xpj2[1] = xmj[1] + discrete[jfirst+npj2][1]; + xpj2[2] = xmj[2] + discrete[jfirst+npj2][2]; + + // no interaction if two ends of the edge are on the same side with the COM wrt the face + + if (opposite_sides(n, xi1, xmi, xpj1) == 0 && + opposite_sides(n, xi1, xmi, xpj2) == 0) + return EF_NONE; + + // determine the intersection of the edge to the face + + double hi1[3], hi2[3], d1, d2, contact_dist, shift; + int inside1 = 0; + int inside2 = 0; + + // enum {EF_PARALLEL=0,EF_SAME_SIDE_OF_FACE,EF_INTERSECT_INSIDE,EF_INTERSECT_OUTSIDE}; + int interact = edge_face_intersect(xi1, xi2, xi3, xpj1, xpj2, + hi1, hi2, d1, d2, inside1, inside2); + + inside_polygon(ibody, face_index, xmi, hi1, hi2, inside1, inside2); + + contact_dist = rounded_radius_i + rounded_radius_j; + shift = k_na * cut_inner; + + // both endpoints are on the same side of, or parallel to, the face + // and both are out of the interaction zone + + if (interact == EF_SAME_SIDE_OF_FACE || interact == EF_PARALLEL) { + + if (d1 > contact_dist + cut_inner && d2 > contact_dist + cut_inner) + return EF_NONE; + + int num_outside = 0; + int jflag = 1; + + #ifdef _POLYHEDRON_DEBUG + if (interact == EF_SAME_SIDE_OF_FACE) + printf(" - same side of face\n"); + else if (interact == EF_PARALLEL) + printf(" - parallel\n"); + printf(" face: xi1 (%f %f %f) xi2 (%f %f %f) xi3 (%f %f %f)\n", + xi1[0], xi1[1], xi1[2], xi2[0], xi2[1], xi2[2], xi3[0], xi3[1], xi3[2]); + printf(" edge: xpj1 (%f %f %f) xpj2 (%f %f %f)\n", + xpj1[0], xpj1[1], xpj1[2], xpj2[0], xpj2[1], xpj2[2]); + #endif + + // xpj1 is in the interaction zone + // and its projection on the face is inside the triangle + // compute vertex-face interaction and accumulate force/torque to both bodies + + if (d1 <= contact_dist + cut_inner) { + if (inside1) { + if (static_cast(discrete[jfirst+npj1][6]) == 0) { + pair_force_and_torque(jbody, ibody, xpj1, hi1, d1, contact_dist, + k_n, k_na, shift, x, v, f, torque, angmom, + jflag, energy, facc); + #ifdef _POLYHEDRON_DEBUG + printf(" - compute pair force between vertex %d from edge %d of body %d " + "with face %d of body %d: d1 = %f\n", + npj1, edge_index, jbody, face_index, ibody, d1); + #endif + + if (d1 <= contact_dist) { + // store the contact info + contact_list[num_contacts].ibody = ibody; + contact_list[num_contacts].jbody = jbody; + contact_list[num_contacts].xi[0] = hi1[0]; + contact_list[num_contacts].xi[1] = hi1[1]; + contact_list[num_contacts].xi[2] = hi1[2]; + contact_list[num_contacts].xj[0] = xpj1[0]; + contact_list[num_contacts].xj[1] = xpj1[1]; + contact_list[num_contacts].xj[2] = xpj1[2]; + contact_list[num_contacts].type = 0; + contact_list[num_contacts].separation = d1 - contact_dist; + num_contacts++; + } + + discrete[jfirst+npj1][6] = 1; + } + } else { + num_outside++; + } + } + + // xpj2 is in the interaction zone + // and its projection on the face is inside the triangle + // compute vertex-face interaction and accumulate force/torque to both bodies + + if (d2 <= contact_dist + cut_inner) { + if (inside2) { + if (static_cast(discrete[jfirst+npj2][6]) == 0) { + pair_force_and_torque(jbody, ibody, xpj2, hi2, d2, contact_dist, + k_n, k_na, shift, x, v, f, torque, angmom, + jflag, energy, facc); + #ifdef _POLYHEDRON_DEBUG + printf(" - compute pair force between vertex %d from edge %d of body %d " + "with face %d of body %d: d2 = %f\n", + npj2, edge_index, jbody, face_index, ibody, d2); + #endif + + if (d2 <= contact_dist) { + // store the contact info + contact_list[num_contacts].ibody = ibody; + contact_list[num_contacts].jbody = jbody; + contact_list[num_contacts].xi[0] = hi2[0]; + contact_list[num_contacts].xi[1] = hi2[1]; + contact_list[num_contacts].xi[2] = hi2[2]; + contact_list[num_contacts].xj[0] = xpj2[0]; + contact_list[num_contacts].xj[1] = xpj2[1]; + contact_list[num_contacts].xj[2] = xpj2[2]; + contact_list[num_contacts].type = 0; + contact_list[num_contacts].separation = d2 - contact_dist; + num_contacts++; + } + discrete[jfirst+npj2][6] = 1; + } + } else { + num_outside++; + } + } + + // both ends have projection outside of the face + // compute interaction between the edge with the three edges of the face + + if (num_outside == 2) { + + #ifdef _POLYHEDRON_DEBUG + printf(" - outside = 2\n"); + printf(" - compute pair force between edge %d of body %d " + "with 3 edges of face %d of body %d\n", + edge_index, jbody, face_index, ibody); + #endif + + interact = EF_INTERSECT_OUTSIDE; + + } + + } else if (interact == EF_INTERSECT_OUTSIDE) { + + // compute interaction between the edge with the three edges of the face + + #ifdef _POLYHEDRON_DEBUG + printf(" - intersect outside triangle\n"); + printf(" - compute pair force between edge %d of body %d " + "with face %d of body %d\n", edge_index, jbody, face_index, ibody); + printf(" face: xi1 (%f %f %f) xi2 (%f %f %f) xi3 (%f %f %f)\n", + xi1[0], xi1[1], xi1[2], xi2[0], xi2[1], xi2[2], xi3[0], xi3[1], xi3[2]); + printf(" edge: xpj1 (%f %f %f) xpj2 (%f %f %f)\n", + xpj1[0], xpj1[1], xpj1[2], xpj2[0], xpj2[1], xpj2[2]); + + #endif + } else if (interact == EF_INTERSECT_INSIDE) { + + } + + return interact; +} + +/* ------------------------------------------------------------------------- + Compute the distance between an edge of body i and an edge from + another body + Input: + ibody = body i (i.e. atom i) + face_index = face index of body i + xmi = atom i's coordinates (body i's center of mass) + rounded_radius_i = rounded radius of the body i + jbody = body i (i.e. atom j) + edge_index = coordinate of the tested edge from another body + xmj = atom j's coordinates (body j's center of mass) + rounded_radius_j = rounded radius of the body j + cut_inner = cutoff for vertex-vertex and vertex-edge interaction + Output: + d = Distance from a point x0 to an edge + hi = coordinates of the projection of x0 on the edge + + contact = 0 no contact between the queried edge and the face + 1 contact detected + return + INVALID if the face index is invalid + NONE if there is no interaction +------------------------------------------------------------------------- */ + +int PairBodyRoundedPolyhedron::interaction_edge_to_edge(int ibody, + int edge_index_i, + double *xmi, + double rounded_radius_i, + int jbody, + int edge_index_j, + double *xmj, + double rounded_radius_j, + double k_n, + double k_na, + double cut_inner, + Contact* contact_list, + int &num_contacts, + double &energy, + double* facc) +{ + int ifirst,iefirst,jfirst,jefirst,npi1,npi2,npj1,npj2,interact; + double xi1[3],xi2[3],xpj1[3],xpj2[3]; + double r,t1,t2,h1[3],h2[3]; + double contact_dist, shift; + + double** x = atom->x; + double** v = atom->v; + double** f = atom->f; + double** torque = atom->torque; + double** angmom = atom->angmom; + + ifirst = dfirst[ibody]; + iefirst = edfirst[ibody]; + npi1 = static_cast(edge[iefirst+edge_index_i][0]); + npi2 = static_cast(edge[iefirst+edge_index_i][1]); + + // compute the space-fixed coordinates for the edge ends + + xi1[0] = xmi[0] + discrete[ifirst+npi1][0]; + xi1[1] = xmi[1] + discrete[ifirst+npi1][1]; + xi1[2] = xmi[2] + discrete[ifirst+npi1][2]; + + xi2[0] = xmi[0] + discrete[ifirst+npi2][0]; + xi2[1] = xmi[1] + discrete[ifirst+npi2][1]; + xi2[2] = xmi[2] + discrete[ifirst+npi2][2]; + + // two ends of the edge from body j + + jfirst = dfirst[jbody]; + jefirst = edfirst[jbody]; + npj1 = static_cast(edge[jefirst+edge_index_j][0]); + npj2 = static_cast(edge[jefirst+edge_index_j][1]); + + xpj1[0] = xmj[0] + discrete[jfirst+npj1][0]; + xpj1[1] = xmj[1] + discrete[jfirst+npj1][1]; + xpj1[2] = xmj[2] + discrete[jfirst+npj1][2]; + + xpj2[0] = xmj[0] + discrete[jfirst+npj2][0]; + xpj2[1] = xmj[1] + discrete[jfirst+npj2][1]; + xpj2[2] = xmj[2] + discrete[jfirst+npj2][2]; + + contact_dist = rounded_radius_i + rounded_radius_j; + shift = k_na * cut_inner; + + int jflag = 1; + distance_bt_edges(xpj1, xpj2, xi1, xi2, h1, h2, t1, t2, r); + + #ifdef _POLYHEDRON_DEBUG + double ui[3],uj[3]; + MathExtra::sub3(xi1,xi2,ui); + MathExtra::norm3(ui); + MathExtra::sub3(xpj1,xpj2,uj); + MathExtra::norm3(uj); + double dot = MathExtra::dot3(ui, uj); + printf(" edge npi1 = %d (%f %f %f); npi2 = %d (%f %f %f) vs." + " edge npj1 = %d (%f %f %f); npj2 = %d (%f %f %f): " + "t1 = %f; t2 = %f; r = %f; dot = %f\n", + npi1, xi1[0], xi1[1], xi1[2], npi2, xi2[0], xi2[1], xi2[2], + npj1, xpj1[0], xpj1[1], xpj1[2], npj2, xpj2[0], xpj2[1], xpj2[2], + t1, t2, r, dot); + #endif + + interact = EE_NONE; + + // singularity case, ignore interactions + + if (r < EPSILON) return interact; + + // include the vertices for interactions + + if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1 && + r < contact_dist + cut_inner) { + pair_force_and_torque(jbody, ibody, h1, h2, r, contact_dist, + k_n, k_na, shift, x, v, f, torque, angmom, + jflag, energy, facc); + + interact = EE_INTERACT; + if (r <= contact_dist) { + // store the contact info + contact_list[num_contacts].ibody = ibody; + contact_list[num_contacts].jbody = jbody; + contact_list[num_contacts].xi[0] = h2[0]; + contact_list[num_contacts].xi[1] = h2[1]; + contact_list[num_contacts].xi[2] = h2[2]; + contact_list[num_contacts].xj[0] = h1[0]; + contact_list[num_contacts].xj[1] = h1[1]; + contact_list[num_contacts].xj[2] = h1[2]; + contact_list[num_contacts].type = 1; + contact_list[num_contacts].separation = r - contact_dist; + num_contacts++; + } + } else { + + } + + return interact; +} + +/* ---------------------------------------------------------------------- + Compute forces and torques between two bodies caused by the interaction + between a pair of points on either bodies (similar to sphere-sphere) +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::pair_force_and_torque(int ibody, int jbody, + double* pi, double* pj, double r, double contact_dist, + double k_n, double k_na, double shift, double** x, + double** v, double** f, double** torque, double** angmom, + int jflag, double& energy, double* facc) +{ + double delx,dely,delz,R,fx,fy,fz,fpair; + + delx = pi[0] - pj[0]; + dely = pi[1] - pj[1]; + delz = pi[2] - pj[2]; + R = r - contact_dist; + if (R <= 0) { // deformation occurs + fpair = -k_n * R - shift; + energy += (0.5 * k_n * R + shift) * R; + } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap + fpair = k_na * R - shift; + energy += (-0.5 * k_na * R + shift) * R; + } else fpair = 0.0; + + fx = delx*fpair/r; + fy = dely*fpair/r; + fz = delz*fpair/r; + + #ifdef _POLYHEDRON_DEBUG + printf(" - R = %f; r = %f; k_na = %f; shift = %f; fpair = %f;" + " energy = %f; jflag = %d\n", R, r, k_na, shift, fpair, + energy, jflag); + #endif + + if (R <= 0) { + + // contact: accumulate normal and tangential contact force components + + contact_forces(ibody, jbody, pi, pj, delx, dely, delz, fx, fy, fz, + x, v, angmom, f, torque, facc); + } else { + + // accumulate force and torque to both bodies directly + + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + sum_torque(x[ibody], pi, fx, fy, fz, torque[ibody]); + + facc[0] += fx; facc[1] += fy; facc[2] += fz; + + if (jflag) { + f[jbody][0] -= fx; + f[jbody][1] -= fy; + f[jbody][2] -= fz; + sum_torque(x[jbody], pj, -fx, -fy, -fz, torque[jbody]); + } + } +} + +/* ---------------------------------------------------------------------- + Compute contact forces between two bodies + modify the force stored at the vertex and edge in contact by j_a + sum forces and torque to the corresponding bodies + fx,fy,fz = unscaled cohesive forces + fn = normal friction component + ft = tangential friction component (-c_t * v_t) +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::contact_forces(int ibody, int jbody, + double *xi, double *xj, double delx, double dely, double delz, + double fx, double fy, double fz, double** x, double** v, double** angmom, + double** f, double** torque, double* facc) +{ + int ibonus,jbonus; + double rsq,rsqinv,vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double fn[3],ft[3],vi[3],vj[3]; + double *quat, *inertia; + AtomVecBody::Bonus *bonus; + + // compute the velocity of the vertex in the space-fixed frame + + ibonus = atom->body[ibody]; + bonus = &avec->bonus[ibonus]; + quat = bonus->quat; + inertia = bonus->inertia; + total_velocity(xi, x[ibody], v[ibody], angmom[ibody], + inertia, quat, vi); + + // compute the velocity of the point on the edge in the space-fixed frame + + jbonus = atom->body[jbody]; + bonus = &avec->bonus[jbonus]; + quat = bonus->quat; + inertia = bonus->inertia; + total_velocity(xj, x[jbody], v[jbody], angmom[jbody], + inertia, quat, vj); + + // vector pointing from the contact point on ibody to that on jbody + + rsq = delx*delx + dely*dely + delz*delz; + rsqinv = 1.0/rsq; + + // relative translational velocity + + vr1 = vi[0] - vj[0]; + vr2 = vi[1] - vj[1]; + vr3 = vi[2] - vj[2]; + + // normal component + + vnnr = vr1*delx + vr2*dely + vr3*delz; + vn1 = delx*vnnr * rsqinv; + vn2 = dely*vnnr * rsqinv; + vn3 = delz*vnnr * rsqinv; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // normal friction term at contact + + fn[0] = -c_n * vn1; + fn[1] = -c_n * vn2; + fn[2] = -c_n * vn3; + + // tangential friction term at contact + // excluding the tangential deformation term for now + + ft[0] = -c_t * vt1; + ft[1] = -c_t * vt2; + ft[2] = -c_t * vt3; + + // cohesive forces will be scaled by j_a after contact area is computed + // mu * fne = tangential friction deformation during gross sliding + // see Eq. 4, Fraige et al. + + fx = fn[0] + ft[0] + mu * fx; + fy = fn[1] + ft[1] + mu * fy; + fz = fn[2] + ft[2] + mu * fz; + + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + sum_torque(x[ibody], xi, fx, fy, fz, torque[ibody]); + + f[jbody][0] -= fx; + f[jbody][1] -= fy; + f[jbody][2] -= fz; + sum_torque(x[jbody], xj, -fx, -fy, -fz, torque[jbody]); + + facc[0] += fx; facc[1] += fy; facc[2] += fz; + + #ifdef _POLYHEDRON_DEBUG + printf("contact ibody = %d: f = %f %f %f; torque = %f %f %f\n", ibody, + f[ibody][0], f[ibody][1], f[ibody][2], + torque[ibody][0], torque[ibody][1], torque[ibody][2]); + printf("contact jbody = %d: f = %f %f %f; torque = %f %f %f\n", jbody, + f[jbody][0], f[jbody][1], f[jbody][2], + torque[jbody][0], torque[jbody][1], torque[jbody][2]); + #endif +} + +/* ---------------------------------------------------------------------- + Rescale the forces and torques for all the contacts +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::rescale_cohesive_forces(double** x, + double** f, double** torque, Contact* contact_list, int &num_contacts, + double contact_area, double k_n, double k_na, double* facc) +{ + int m,ibody,jbody; + double delx,dely,delz,fx,fy,fz,R,fpair,r,shift; + double j_a = contact_area / (num_contacts * A_ua); + if (j_a < 1.0) j_a = 1.0; + + shift = k_na * cut_inner; + + for (m = 0; m < num_contacts; m++) { + ibody = contact_list[m].ibody; + jbody = contact_list[m].jbody; + + delx = contact_list[m].xi[0] - contact_list[m].xj[0]; + dely = contact_list[m].xi[1] - contact_list[m].xj[1]; + delz = contact_list[m].xi[2] - contact_list[m].xj[2]; + r = sqrt(delx*delx + dely*dely + delz*delz); + R = contact_list[m].separation; + if (R <= 0) { // deformation occurs + fpair = -k_n * R - shift; + } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap + fpair = k_na * R - shift; + } else fpair = 0.0; + + fpair *= j_a; + fx = delx*fpair/r; + fy = dely*fpair/r; + fz = delz*fpair/r; + + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + sum_torque(x[ibody], contact_list[m].xi, fx, fy, fz, torque[ibody]); + + f[jbody][0] -= fx; + f[jbody][1] -= fy; + f[jbody][2] -= fz; + sum_torque(x[jbody], contact_list[m].xj, -fx, -fy, -fz, torque[jbody]); + + facc[0] += fx; facc[1] += fy; facc[2] += fz; + } +} + +/* ---------------------------------------------------------------------- + Accumulate torque to body from the force f=(fx,fy,fz) acting at point x +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::sum_torque(double* xm, double *x, double fx, + double fy, double fz, double* torque) +{ + double rx = x[0] - xm[0]; + double ry = x[1] - xm[1]; + double rz = x[2] - xm[2]; + double tx = ry * fz - rz * fy; + double ty = rz * fx - rx * fz; + double tz = rx * fy - ry * fx; + torque[0] += tx; + torque[1] += ty; + torque[2] += tz; +} + +/* ---------------------------------------------------------------------- + Test if two points a and b are in opposite sides of a plane defined by + a normal vector n and a point x0 +------------------------------------------------------------------------- */ + +int PairBodyRoundedPolyhedron::opposite_sides(double* n, double* x0, + double* a, double* b) +{ + double m_a = n[0]*(a[0] - x0[0])+n[1]*(a[1] - x0[1])+n[2]*(a[2] - x0[2]); + double m_b = n[0]*(b[0] - x0[0])+n[1]*(b[1] - x0[1])+n[2]*(b[2] - x0[2]); + // equal to zero when either a or b is on the plane + if (m_a * m_b <= 0) + return 1; + else + return 0; +} + +/* ---------------------------------------------------------------------- + Test if a line segment defined by two points a and b intersects with + a triangle defined by three points x1, x2 and x3 +------------------------------------------------------------------------- */ + +int PairBodyRoundedPolyhedron::edge_face_intersect(double* x1, double* x2, + double* x3, double* a, double* b, double* h_a, double* h_b, + double& d_a, double& d_b, int& inside_a, int& inside_b) +{ + double s[3], u[3], v[3], n[3]; + + // line director + + MathExtra::sub3(b, a, s); + + // plane normal vector + + MathExtra::sub3(x2, x1, u); + MathExtra::sub3(x3, x1, v); + MathExtra::cross3(u, v, n); + MathExtra::norm3(n); + + // find the projection of a and b to the plane and the corresponding distances + + project_pt_plane(a, x1, x2, x3, h_a, d_a, inside_a); + + project_pt_plane(b, x1, x2, x3, h_b, d_b, inside_b); + + // check if the line segment is parallel to the plane + + double dot = MathExtra::dot3(s, n); + if (fabs(dot) < EPSILON) return EF_PARALLEL; + + // solve for the intersection between the line and the plane + + double m[3][3], invm[3][3], p[3], ans[3]; + m[0][0] = -s[0]; + m[0][1] = u[0]; + m[0][2] = v[0]; + + m[1][0] = -s[1]; + m[1][1] = u[1]; + m[1][2] = v[1]; + + m[2][0] = -s[2]; + m[2][1] = u[2]; + m[2][2] = v[2]; + + MathExtra::sub3(a, x1, p); + MathExtra::invert3(m, invm); + MathExtra::matvec(invm, p, ans); + + // p is reused for the intersection point + // s = b - a + + double t = ans[0]; + p[0] = a[0] + s[0] * t; + p[1] = a[1] + s[1] * t; + p[2] = a[2] + s[2] * t; + + // check if p is inside the triangle, excluding the edges and vertices + // the edge-edge and edge-vertices are handled separately + + int inside = 0; + if (ans[1] > 0 && ans[2] > 0 && ans[1] + ans[2] < 1) + inside = 1; + + int interact; + if (t < 0 || t > 1) { + interact = EF_SAME_SIDE_OF_FACE; + } else { + if (inside == 1) + interact = EF_INTERSECT_INSIDE; + else + interact = EF_INTERSECT_OUTSIDE; + } + + return interact; +} + +/* ---------------------------------------------------------------------- + Find the projection of q on the plane defined by point p and the normal + unit vector n: q_proj = q - dot(q - p, n) * n + and the distance d from q to the plane +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::project_pt_plane(const double* q, + const double* p, const double* n, + double* q_proj, double &d) +{ + double dot, ans[3], n_p[3]; + n_p[0] = n[0]; n_p[1] = n[1]; n_p[2] = n[2]; + MathExtra::sub3(q, p, ans); + dot = MathExtra::dot3(ans, n_p); + MathExtra::scale3(dot, n_p); + MathExtra::sub3(q, n_p, q_proj); + MathExtra::sub3(q, q_proj, ans); + d = MathExtra::len3(ans); +} + +/* ---------------------------------------------------------------------- + Check if points q1 and q2 are inside a convex polygon, i.e. a face of + a polyhedron + ibody = atom i's index + face_index = face index of the body + xmi = atom i's coordinates + q1 = tested point on the face (e.g. the projection of a point) + q2 = another point (can be NULL) for face-edge intersection + Output: + inside1 = 1 if q1 is inside the polygon, 0 otherwise + inside2 = 1 if q2 is inside the polygon, 0 otherwise +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::inside_polygon(int ibody, int face_index, + double* xmi, const double* q1, const double* q2, + int& inside1, int& inside2) + +{ + int i,n,ifirst,iffirst,npi1,npi2; + double xi1[3],xi2[3],u[3],v[3],costheta,anglesum1,anglesum2,magu,magv; + + ifirst = dfirst[ibody]; + iffirst = facfirst[ibody]; + anglesum1 = anglesum2 = 0;; + for (i = 0; i < MAX_FACE_SIZE; i++) { + npi1 = static_cast(face[iffirst+face_index][i]); + if (npi1 < 0) break; + n = i + 1; + if (n <= MAX_FACE_SIZE - 1) { + npi2 = static_cast(face[iffirst+face_index][n]); + if (npi2 < 0) npi2 = static_cast(face[iffirst+face_index][0]); + } else { + npi2 = static_cast(face[iffirst+face_index][0]); + } + + xi1[0] = xmi[0] + discrete[ifirst+npi1][0]; + xi1[1] = xmi[1] + discrete[ifirst+npi1][1]; + xi1[2] = xmi[2] + discrete[ifirst+npi1][2]; + + xi2[0] = xmi[0] + discrete[ifirst+npi2][0]; + xi2[1] = xmi[1] + discrete[ifirst+npi2][1]; + xi2[2] = xmi[2] + discrete[ifirst+npi2][2]; + + MathExtra::sub3(xi1,q1,u); + MathExtra::sub3(xi2,q1,v); + magu = MathExtra::len3(u); + magv = MathExtra::len3(v); + + // the point is at either vertices + + if (magu * magv < EPSILON) inside1 = 1; + else { + costheta = MathExtra::dot3(u,v)/(magu*magv); + anglesum1 += acos(costheta); + } + + if (q2 != NULL) { + MathExtra::sub3(xi1,q2,u); + MathExtra::sub3(xi2,q2,v); + magu = MathExtra::len3(u); + magv = MathExtra::len3(v); + if (magu * magv < EPSILON) inside2 = 1; + else { + costheta = MathExtra::dot3(u,v)/(magu*magv); + anglesum2 += acos(costheta); + } + } + } + + if (fabs(anglesum1 - MY_2PI) < EPSILON) inside1 = 1; + else inside1 = 0; + + if (q2 != NULL) { + if (fabs(anglesum2 - MY_2PI) < EPSILON) inside2 = 1; + else inside2 = 0; + } +} + +/* ---------------------------------------------------------------------- + Find the projection of q on the plane defined by 3 points x1, x2 and x3 + returns the distance d from q to the plane and whether the projected + point is inside the triangle defined by (x1, x2, x3) +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::project_pt_plane(const double* q, + const double* x1, const double* x2, const double* x3, double* q_proj, + double &d, int& inside) +{ + double u[3],v[3],n[3]; + + // plane normal vector + + MathExtra::sub3(x2, x1, u); + MathExtra::sub3(x3, x1, v); + MathExtra::cross3(u, v, n); + MathExtra::norm3(n); + + // solve for the intersection between the line and the plane + + double m[3][3], invm[3][3], p[3], ans[3]; + m[0][0] = -n[0]; + m[0][1] = u[0]; + m[0][2] = v[0]; + + m[1][0] = -n[1]; + m[1][1] = u[1]; + m[1][2] = v[1]; + + m[2][0] = -n[2]; + m[2][1] = u[2]; + m[2][2] = v[2]; + + MathExtra::sub3(q, x1, p); + MathExtra::invert3(m, invm); + MathExtra::matvec(invm, p, ans); + + double t = ans[0]; + q_proj[0] = q[0] + n[0] * t; + q_proj[1] = q[1] + n[1] * t; + q_proj[2] = q[2] + n[2] * t; + + // check if the projection point is inside the triangle + // exclude the edges and vertices + // edge-sphere and sphere-sphere interactions are handled separately + + inside = 0; + if (ans[1] > 0 && ans[2] > 0 && ans[1] + ans[2] < 1) { + inside = 1; + } + + // distance from q to q_proj + + MathExtra::sub3(q, q_proj, ans); + d = MathExtra::len3(ans); +} + +/* ---------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::project_pt_line(const double* q, + const double* xi1, const double* xi2, double* h, double& d, double& t) +{ + double u[3],v[3],r[3],s; + + MathExtra::sub3(xi2, xi1, u); + MathExtra::norm3(u); + MathExtra::sub3(q, xi1, v); + + s = MathExtra::dot3(u, v); + h[0] = xi1[0] + s * u[0]; + h[1] = xi1[1] + s * u[1]; + h[2] = xi1[2] + s * u[2]; + + MathExtra::sub3(q, h, r); + d = MathExtra::len3(r); + + if (fabs(xi2[0] - xi1[0]) > 0) + t = (h[0] - xi1[0])/(xi2[0] - xi1[0]); + else if (fabs(xi2[1] - xi1[1]) > 0) + t = (h[1] - xi1[1])/(xi2[1] - xi1[1]); + else if (fabs(xi2[2] - xi1[2]) > 0) + t = (h[2] - xi1[2])/(xi2[2] - xi1[2]); +} + +/* ---------------------------------------------------------------------- + compute the shortest distance between two edges (line segments) + x1, x2: two endpoints of the first edge + x3, x4: two endpoints of the second edge + h1: the end point of the shortest segment perpendicular to both edges + on the line (x1;x2) + h2: the end point of the shortest segment perpendicular to both edges + on the line (x3;x4) + t1: fraction of h1 in the segment (x1,x2) + t2: fraction of h2 in the segment (x3,x4) +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::distance_bt_edges(const double* x1, + const double* x2, const double* x3, const double* x4, + double* h1, double* h2, double& t1, double& t2, double& r) +{ + double u[3],v[3],n[3],dot; + + // set the default returned values + + t1 = -2; + t2 = 2; + r = 0; + + // find the edge unit directors and their dot product + + MathExtra::sub3(x2, x1, u); + MathExtra::norm3(u); + MathExtra::sub3(x4, x3, v); + MathExtra::norm3(v); + dot = MathExtra::dot3(u,v); + dot = fabs(dot); + + // check if two edges are parallel + // find the two ends of the overlapping segment, if any + + if (fabs(dot - 1.0) < EPSILON) { + + double s1,s2,x13[3],x23[3],x13h[3]; + double t13,t23,t31,t41,x31[3],x41[3]; + + MathExtra::sub3(x1,x3,x13); // x13 = x1 - x3 + MathExtra::sub3(x2,x3,x23); // x23 = x2 - x3 + + s1 = MathExtra::dot3(x13,v); + x13h[0] = x13[0] - s1*v[0]; + x13h[1] = x13[1] - s1*v[1]; + x13h[2] = x13[2] - s1*v[2]; + r = MathExtra::len3(x13h); + + // x13 is the projection of x1 on x3-x4 + + x13[0] = x3[0] + s1*v[0]; + x13[1] = x3[1] + s1*v[1]; + x13[2] = x3[2] + s1*v[2]; + + // x23 is the projection of x2 on x3-x4 + + s2 = MathExtra::dot3(x23,v); + x23[0] = x3[0] + s2*v[0]; + x23[1] = x3[1] + s2*v[1]; + x23[2] = x3[2] + s2*v[2]; + + // find the fraction of the projection points on the edges + + if (fabs(x4[0] - x3[0]) > 0) + t13 = (x13[0] - x3[0])/(x4[0] - x3[0]); + else if (fabs(x4[1] - x3[1]) > 0) + t13 = (x13[1] - x3[1])/(x4[1] - x3[1]); + else if (fabs(x4[2] - x3[2]) > 0) + t13 = (x13[2] - x3[2])/(x4[2] - x3[2]); + + if (fabs(x4[0] - x3[0]) > 0) + t23 = (x23[0] - x3[0])/(x4[0] - x3[0]); + else if (fabs(x4[1] - x3[1]) > 0) + t23 = (x23[1] - x3[1])/(x4[1] - x3[1]); + else if (fabs(x4[2] - x3[2]) > 0) + t23 = (x23[2] - x3[2])/(x4[2] - x3[2]); + + if (fabs(x23[0] - x13[0]) > 0) + t31 = (x3[0] - x13[0])/(x23[0] - x13[0]); + else if (fabs(x23[1] - x13[1]) > 0) + t31 = (x3[1] - x13[1])/(x23[1] - x13[1]); + else if (fabs(x23[2] - x13[2]) > 0) + t31 = (x3[2] - x13[2])/(x23[2] - x13[2]); + + // x31 is the projection of x3 on x1-x2 + + x31[0] = x1[0] + t31*(x2[0] - x1[0]); + x31[1] = x1[1] + t31*(x2[1] - x1[1]); + x31[2] = x1[2] + t31*(x2[2] - x1[2]); + + if (fabs(x23[0] - x13[0]) > 0) + t41 = (x4[0] - x13[0])/(x23[0] - x13[0]); + else if (fabs(x23[1] - x13[1]) > 0) + t41 = (x4[1] - x13[1])/(x23[1] - x13[1]); + else if (fabs(x23[2] - x13[2]) > 0) + t41 = (x4[2] - x13[2])/(x23[2] - x13[2]); + + // x41 is the projection of x4 on x1-x2 + + x41[0] = x1[0] + t41*(x2[0] - x1[0]); + x41[1] = x1[1] + t41*(x2[1] - x1[1]); + x41[2] = x1[2] + t41*(x2[2] - x1[2]); + + // determine two ends from the overlapping segments + + int n1 = 0; + int n2 = 0; + if (t13 >= 0 && t13 <= 1) { + h1[0] = x1[0]; + h1[1] = x1[1]; + h1[2] = x1[2]; + h2[0] = x13[0]; + h2[1] = x13[1]; + h2[2] = x13[2]; + t1 = 0; + t2 = t13; + n1++; + n2++; + } + if (t23 >= 0 && t23 <= 1) { + if (n1 == 0) { + h1[0] = x2[0]; + h1[1] = x2[1]; + h1[2] = x2[2]; + h2[0] = x23[0]; + h2[1] = x23[1]; + h2[2] = x23[2]; + t1 = 1; + t2 = t23; + n1++; + n2++; + } else { + h1[0] = (x1[0]+x2[0])/2; + h1[1] = (x1[1]+x2[1])/2; + h1[2] = (x1[2]+x2[2])/2; + h2[0] = (x13[0]+x23[0])/2; + h2[1] = (x13[1]+x23[1])/2; + h2[2] = (x13[2]+x23[2])/2; + t1 = 0.5; + t2 = (t13+t23)/2; + n1++; + n2++; + } + } + + if (n1 == 0 && n2 == 0) { + if (t31 >= 0 && t31 <= 1) { + h1[0] = x31[0]; + h1[1] = x31[1]; + h1[2] = x31[2]; + h2[0] = x3[0]; + h2[1] = x3[1]; + h2[2] = x3[2]; + t1 = t31; + t2 = 0; + n1++; + n2++; + } + if (t41 >= 0 && t41 <= 1) { + if (n1 == 0) { + h1[0] = x41[0]; + h1[1] = x41[1]; + h1[2] = x41[2]; + h2[0] = x4[0]; + h2[1] = x4[1]; + h2[2] = x4[2]; + t1 = t41; + t2 = 1; + n1++; + n2++; + } else { + h1[0] = (x31[0]+x41[0])/2; + h1[1] = (x31[1]+x41[1])/2; + h1[2] = (x31[2]+x41[2])/2; + h2[0] = (x3[0]+x4[0])/2; + h2[1] = (x3[1]+x4[1])/2; + h2[2] = (x3[2]+x4[2])/2; + t1 = (t31+t41)/2; + t2 = 0.5; + n1++; + n2++; + } + } + } + + // if n1 == 0 and n2 == 0 at this point, + // which means no overlapping segments bt two parallel edges, + // return the default values of t1 and t2 + + return; + + } + + // find the vector n perpendicular to both edges + + MathExtra::cross3(u, v, n); + MathExtra::norm3(n); + + // find the intersection of the line (x3,x4) and the plane (x1,x2,n) + // s = director of the line (x3,x4) + // n_p = plane normal vector of the plane (x1,x2,n) + + double s[3], n_p[3]; + MathExtra::sub3(x4, x3, s); + MathExtra::sub3(x2, x1, u); + MathExtra::cross3(u, n, n_p); + MathExtra::norm3(n_p); + + // solve for the intersection between the line and the plane + + double m[3][3], invm[3][3], p[3], ans[3]; + m[0][0] = -s[0]; + m[0][1] = u[0]; + m[0][2] = n[0]; + + m[1][0] = -s[1]; + m[1][1] = u[1]; + m[1][2] = n[1]; + + m[2][0] = -s[2]; + m[2][1] = u[2]; + m[2][2] = n[2]; + + MathExtra::sub3(x3, x1, p); + MathExtra::invert3(m, invm); + MathExtra::matvec(invm, p, ans); + + t2 = ans[0]; + h2[0] = x3[0] + s[0] * t2; + h2[1] = x3[1] + s[1] * t2; + h2[2] = x3[2] + s[2] * t2; + + project_pt_plane(h2, x1, n, h1, r); + + if (fabs(x2[0] - x1[0]) > 0) + t1 = (h1[0] - x1[0])/(x2[0] - x1[0]); + else if (fabs(x2[1] - x1[1]) > 0) + t1 = (h1[1] - x1[1])/(x2[1] - x1[1]); + else if (fabs(x2[2] - x1[2]) > 0) + t1 = (h1[2] - x1[2])/(x2[2] - x1[2]); +} + +/* ---------------------------------------------------------------------- + Calculate the total velocity of a point (vertex, a point on an edge): + vi = vcm + omega ^ (p - xcm) +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::total_velocity(double* p, double *xcm, + double* vcm, double *angmom, double *inertia, double *quat, double* vi) +{ + double r[3],omega[3],ex_space[3],ey_space[3],ez_space[3]; + r[0] = p[0] - xcm[0]; + r[1] = p[1] - xcm[1]; + r[2] = p[2] - xcm[2]; + MathExtra::q_to_exyz(quat,ex_space,ey_space,ez_space); + MathExtra::angmom_to_omega(angmom,ex_space,ey_space,ez_space, + inertia,omega); + vi[0] = omega[1]*r[2] - omega[2]*r[1] + vcm[0]; + vi[1] = omega[2]*r[0] - omega[0]*r[2] + vcm[1]; + vi[2] = omega[0]*r[1] - omega[1]*r[0] + vcm[2]; +} + +/* ---------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::sanity_check() +{ + + double x1[3],x2[3],x3[3],x4[3],h_a[3],h_b[3],d_a,d_b,u[3],v[3],n[3]; + double a[3],b[3],t_a,t_b; + int inside_a, inside_b; + + x1[0] = 0; x1[1] = 3; x1[2] = 0; + x2[0] = 3; x2[1] = 0; x2[2] = 0; + x3[0] = 4; x3[1] = 3; x3[2] = 0; + x4[0] = 5; x4[1] = 3; x4[2] = 0; + + a[0] = 0; a[1] = 0; a[2] = 0; + b[0] = 4; b[1] = 0; b[2] = 0; + + project_pt_line(a, x1, x2, h_a, d_a, t_a); + project_pt_line(b, x1, x2, h_b, d_b, t_b); +/* + printf("h_a: %f %f %f; h_b: %f %f %f; t_a = %f; t_b = %f; d = %f; d_b = %f\n", + h_a[0], h_a[1], h_a[2], h_b[0], h_b[1], h_b[2], t_a, t_b, d_a, d_b); +*/ +/* + int mode = edge_face_intersect(x1, x2, x3, a, b, h_a, h_b, d_a, d_b, + inside_a, inside_b); + + MathExtra::sub3(x2, x1, u); + MathExtra::sub3(x3, x1, v); + MathExtra::cross3(u, v, n); + MathExtra::norm3(n); +*/ +/* + project_pt_plane(a, x1, x2, x3, h_a, d_a, inside_a); + printf("h_a: %f %f %f; d = %f: inside %d\n", + h_a[0], h_a[1], h_a[2], d_a, inside_a); + project_pt_plane(b, x1, x2, x3, h_b, d_b, inside_b); + printf("h_b: %f %f %f; d = %f: inside %d\n", + h_b[0], h_b[1], h_b[2], d_b, inside_b); +*/ +/* + distance_bt_edges(x1, x2, x3, x4, h_a, h_b, t_a, t_b, d_a); + printf("h_a: %f %f %f; h_b: %f %f %f; t_a = %f; t_b = %f; d = %f\n", + h_a[0], h_a[1], h_a[2], h_b[0], h_b[1], h_b[2], t_a, t_b, d_a); +*/ +} + diff --git a/src/BODY/pair_body_rounded_polyhedron.h b/src/BODY/pair_body_rounded_polyhedron.h new file mode 100644 index 0000000000..d7ee1f013e --- /dev/null +++ b/src/BODY/pair_body_rounded_polyhedron.h @@ -0,0 +1,176 @@ +/* -*- 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(body/rounded/polyhedron,PairBodyRoundedPolyhedron) + +#else + +#ifndef LMP_PAIR_BODY_ROUNDED_POLYHEDRON_H +#define LMP_PAIR_BODY_ROUNDED_POLYHEDRON_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairBodyRoundedPolyhedron : public Pair { + public: + PairBodyRoundedPolyhedron(class LAMMPS *); + ~PairBodyRoundedPolyhedron(); + void compute(int, int); + void settings(int, char **); + void coeff(int, char **); + void init_style(); + double init_one(int, int); + + struct Contact { + int ibody, jbody; // body (i.e. atom) indices (not tags) + int type; // 0 = VERTEX-FACE; 1 = EDGE-EDGE + double fx,fy,fz; // unscaled cohesive forces at contact + double xi[3]; // coordinates of the contact point on ibody + double xj[3]; // coordinates of the contact point on jbody + double separation; // contact surface separation + }; + + protected: + double **k_n; // normal repulsion strength + double **k_na; // normal attraction strength + double c_n; // normal damping coefficient + double c_t; // tangential damping coefficient + double mu; // normal friction coefficient during gross sliding + double A_ua; // characteristic contact area + double cut_inner; // cutoff for interaction between vertex-edge surfaces + + class AtomVecBody *avec; + class BodyRoundedPolyhedron *bptr; + + double **discrete; // list of all sub-particles for all bodies + int ndiscrete; // number of discretes in list + int dmax; // allocated size of discrete list + int *dnum; // number of discretes per line, 0 if uninit + int *dfirst; // index of first discrete per each line + int nmax; // allocated size of dnum,dfirst vectors + + double **edge; // list of all edge for all bodies + int nedge; // number of edge in list + int edmax; // allocated size of edge list + int *ednum; // number of edges per line, 0 if uninit + int *edfirst; // index of first edge per each line + int ednummax; // allocated size of ednum,edfirst vectors + + double **face; // list of all edge for all bodies + int nface; // number of faces in list + int facmax; // allocated size of face list + int *facnum; // number of faces per line, 0 if uninit + int *facfirst; // index of first face per each line + int facnummax; // allocated size of facnum,facfirst vectors + + double *enclosing_radius; // enclosing radii for all bodies + double *rounded_radius; // rounded radii for all bodies + double *maxerad; // per-type maximum enclosing radius + + void allocate(); + void body2space(int); + + int edge_against_face(int ibody, int jbody, double k_n, double k_na, + double** x, Contact* contact_list, int &num_contacts, + double &evdwl, double* facc); + int edge_against_edge(int ibody, int jbody, double k_n, double k_na, + double** x,Contact* contact_list, int &num_contacts, + double &evdwl, double* facc); + void sphere_against_sphere(int ibody, int jbody, double delx, double dely, double delz, + double rsq, double k_n, double k_na, + double** v, double** f, int evflag); + void sphere_against_face(int ibody, int jbody, + double k_n, double k_na, double** x, double** v, + double** f, double** torque, double** angmom, int evflag); + void sphere_against_edge(int ibody, int jbody, + double k_n, double k_na, double** x, double** v, + double** f, double** torque, double** angmom, int evflag); + + int interaction_face_to_edge(int ibody, int face_index, double* xmi, + double rounded_radius_i, int jbody, int edge_index, + double* xmj, double rounded_radius_j, + double k_n, double k_na, double cut_inner, + Contact* contact_list, int &num_contacts, + double& energy, double* facc); + int interaction_edge_to_edge(int ibody, int edge_index_i, double* xmi, + double rounded_radius_i, int jbody, int edge_index_j, + double* xmj, double rounded_radius_j, + double k_n, double k_na, double cut_inner, + Contact* contact_list, int &num_contacts, + double& energy, double* facc); + + void contact_forces(int ibody, int jbody, double *xi, double *xj, + double delx, double dely, double delz, double fx, double fy, double fz, + double** x, double** v, double** angmom, double** f, double** torque, + double* facc); + + void pair_force_and_torque(int ibody, int jbody, double* pi, double* pj, + double r, double contact_dist, double k_n, + double k_na, double shift, double** x, double** v, + double** f, double** torque, double** angmom, + int jflag, double& energy, double* facc); + void rescale_cohesive_forces(double** x, double** f, double** torque, + Contact* contact_list, int &num_contacts, + double contact_area, double k_n, double k_na, double* facc); + + void sum_torque(double* xm, double *x, double fx, double fy, double fz, double* torque); + int opposite_sides(double* n, double* x0, double* a, double* b); + int edge_face_intersect(double* x1, double* x2, double* x3, double* a, double* b, + double* hi1, double* hi2, double& d1, double& d2, + int& inside_a, int& inside_b); + void project_pt_plane(const double* q, const double* p, + const double* n, double* q_proj, double &d); + void project_pt_plane(const double* q, const double* x1, const double* x2, + const double* x3, double* q_proj, double &d, int& inside); + void project_pt_line(const double* q, const double* xi1, const double* xi2, + double* h, double& d, double& t); + void inside_polygon(int ibody, int face_index, double* xmi, + const double* q1, const double* q2, int& inside1, int& inside2); + + void distance_bt_edges(const double* x1, const double* x2, + const double* x3, const double* x4, + double* h1, double* h2, double& t1, double& t2, double& r); + void total_velocity(double* p, double *xcm, double* vcm, double *angmom, + double *inertia, double *quat, double* vi); + void sanity_check(); +}; + +} + +#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 body/rounded/polyhedron requires atom style body rounded/polyhedron + +Self-explanatory. + +E: Pair body requires body style rounded/polyhedron + +This pair style is specific to the rounded/polyhedron body style. + +*/ From 4308f005ab4b0ab2b943eb7c083f3a2f548efcb1 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Thu, 24 May 2018 23:12:01 -0500 Subject: [PATCH 109/675] Updated pair body rounded/polygon --- src/BODY/pair_body_rounded_polygon.cpp | 6 ++++-- src/BODY/pair_body_rounded_polyhedron.cpp | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp index 72591d2bd0..9f9cdea31b 100644 --- a/src/BODY/pair_body_rounded_polygon.cpp +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -374,6 +374,8 @@ void PairBodyRoundedPolygon::settings(int narg, char **arg) mu = force->numeric(FLERR,arg[2]); delta_ua = force->numeric(FLERR,arg[3]); cut_inner = force->numeric(FLERR,arg[4]); + + if (delta_ua < 0) delta_ua = 1; } /* ---------------------------------------------------------------------- @@ -1078,12 +1080,12 @@ int PairBodyRoundedPolygon::compute_distance_to_vertex(int ibody, // check if x0 (the queried vertex) and xmi (the body's center of mass) // are on the different sides of the edge - int m = opposite_sides(xi1, xi2, x0, xmi); + int m = 1;//opposite_sides(xi1, xi2, x0, xmi); if (m == 0) { // x0 and xmi are on not the opposite sides of the edge - // leave xpi for another edge to detect + // leave xpi for another edge to detect -- for convex shapes only mode = NONE; diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index 8d5f9ec72c..bc94b9cc80 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -82,6 +82,9 @@ PairBodyRoundedPolyhedron::PairBodyRoundedPolyhedron(LAMMPS *lmp) : Pair(lmp) c_t = 0.2; mu = 0.0; A_ua = 1.0; + + k_n = NULL; + k_na = NULL; } /* ---------------------------------------------------------------------- */ From 4bd4b2a1c75cfc6ea1f9ec90275cd4d947d76571 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Thu, 24 May 2018 23:35:49 -0500 Subject: [PATCH 110/675] Updated pair body rounded/polygon and rounded/polyhedron --- src/BODY/pair_body_rounded_polygon.cpp | 6 +- src/BODY/pair_body_rounded_polyhedron.cpp | 124 ++++++++++++++++------ src/BODY/pair_body_rounded_polyhedron.h | 17 +-- 3 files changed, 105 insertions(+), 42 deletions(-) diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp index 9f9cdea31b..62a6d77a01 100644 --- a/src/BODY/pair_body_rounded_polygon.cpp +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -848,6 +848,7 @@ int PairBodyRoundedPolygon::vertex_against_edge(int i, int j, // done with the edges from body j, // given that vertex ni interacts with only one vertex from one edge of body j + // comment out this break to take into account concave shapes // break; @@ -955,6 +956,7 @@ int PairBodyRoundedPolygon::vertex_against_edge(int i, int j, // done with the edges from body j, // given that vertex ni interacts with only one edge from body j + // comment out this break to take into account concave shapes // break; @@ -1080,12 +1082,12 @@ int PairBodyRoundedPolygon::compute_distance_to_vertex(int ibody, // check if x0 (the queried vertex) and xmi (the body's center of mass) // are on the different sides of the edge - int m = 1;//opposite_sides(xi1, xi2, x0, xmi); + int m = opposite_sides(xi1, xi2, x0, xmi); if (m == 0) { // x0 and xmi are on not the opposite sides of the edge - // leave xpi for another edge to detect -- for convex shapes only + // leave xpi for another edge to detect mode = NONE; diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index bc94b9cc80..02c2abe1e3 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -47,7 +47,7 @@ using namespace MathConst; #define DELTA 10000 #define EPSILON 1e-3 #define MAX_FACE_SIZE 4 // maximum number of vertices per face (same as BodyRoundedPolyhedron) -#define MAX_CONTACTS 16 // for 3D models +#define MAX_CONTACTS 32 // for 3D models //#define _POLYHEDRON_DEBUG @@ -308,36 +308,8 @@ void PairBodyRoundedPolyhedron::compute(int eflag, int vflag) // also consider point contacts and line contacts if (num_contacts > 0) { - double contact_area; - if (num_contacts == 1) { - contact_area = 0; - } else if (num_contacts == 2) { - contact_area = num_contacts * A_ua; - } else { - int m; - double xc[3],dx,dy,dz; - xc[0] = xc[1] = xc[2] = 0; - for (m = 0; m < num_contacts; m++) { - xc[0] += contact_list[m].xi[0]; - xc[1] += contact_list[m].xi[1]; - xc[2] += contact_list[m].xi[2]; - } - - xc[0] /= (double)num_contacts; - xc[1] /= (double)num_contacts; - xc[2] /= (double)num_contacts; - - contact_area = 0.0; - for (m = 0; m < num_contacts; m++) { - dx = contact_list[m].xi[0] - xc[0]; - dy = contact_list[m].xi[1] - xc[1]; - dz = contact_list[m].xi[2] - xc[2]; - contact_area += (dx*dx + dy*dy + dz*dz); - } - contact_area *= (MY_PI/(double)num_contacts); - } rescale_cohesive_forces(x, f, torque, contact_list, num_contacts, - contact_area, k_nij, k_naij, facc); + k_nij, k_naij, facc); } if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0.0, @@ -383,6 +355,8 @@ void PairBodyRoundedPolyhedron::settings(int narg, char **arg) mu = force->numeric(FLERR,arg[2]); A_ua = force->numeric(FLERR,arg[3]); cut_inner = force->numeric(FLERR,arg[4]); + + if (A_ua < 0) A_ua = 1; } /* ---------------------------------------------------------------------- @@ -1381,7 +1355,17 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, #endif } else if (interact == EF_INTERSECT_INSIDE) { - + // need to do something here to resolve overlap!! + // p is the intersection between the edge and the face + int jflag = 1; + if (d1 < d2) + pair_force_and_torque(jbody, ibody, xpj1, hi1, d1, contact_dist, + k_n, k_na, shift, x, v, f, torque, angmom, + jflag, energy, facc); + else + pair_force_and_torque(jbody, ibody, xpj2, hi2, d2, contact_dist, + k_n, k_na, shift, x, v, f, torque, angmom, + jflag, energy, facc); } return interact; @@ -1661,6 +1645,7 @@ void PairBodyRoundedPolyhedron::contact_forces(int ibody, int jbody, ft[1] = -c_t * vt2; ft[2] = -c_t * vt3; + // these are contact forces (F_n, F_t and F_ne) only // cohesive forces will be scaled by j_a after contact area is computed // mu * fne = tangential friction deformation during gross sliding // see Eq. 4, Fraige et al. @@ -1697,13 +1682,49 @@ void PairBodyRoundedPolyhedron::contact_forces(int ibody, int jbody, void PairBodyRoundedPolyhedron::rescale_cohesive_forces(double** x, double** f, double** torque, Contact* contact_list, int &num_contacts, - double contact_area, double k_n, double k_na, double* facc) + double k_n, double k_na, double* facc) { int m,ibody,jbody; - double delx,dely,delz,fx,fy,fz,R,fpair,r,shift; + double delx,dely,delz,fx,fy,fz,R,fpair,r,shift,contact_area; + + int num_unique_contacts = 0; + if (num_contacts == 1) { + num_unique_contacts = 1; + contact_area = 0; + } else if (num_contacts == 2) { + num_unique_contacts = 2; + contact_area = num_contacts * A_ua; + } else { + find_unique_contacts(contact_list, num_contacts); + + double xc[3],dx,dy,dz; + xc[0] = xc[1] = xc[2] = 0; + num_unique_contacts = 0; + for (int m = 0; m < num_contacts; m++) { + if (contact_list[m].unique == 0) continue; + xc[0] += contact_list[m].xi[0]; + xc[1] += contact_list[m].xi[1]; + xc[2] += contact_list[m].xi[2]; + num_unique_contacts++; + } + + xc[0] /= (double)num_unique_contacts; + xc[1] /= (double)num_unique_contacts; + xc[2] /= (double)num_unique_contacts; + + contact_area = 0.0; + for (int m = 0; m < num_contacts; m++) { + if (contact_list[m].unique == 0) continue; + dx = contact_list[m].xi[0] - xc[0]; + dy = contact_list[m].xi[1] - xc[1]; + dz = contact_list[m].xi[2] - xc[2]; + contact_area += (dx*dx + dy*dy + dz*dz); + } + contact_area *= (MY_PI/(double)num_unique_contacts); + } + double j_a = contact_area / (num_contacts * A_ua); if (j_a < 1.0) j_a = 1.0; - shift = k_na * cut_inner; for (m = 0; m < num_contacts; m++) { @@ -2302,6 +2323,41 @@ void PairBodyRoundedPolyhedron::total_velocity(double* p, double *xcm, vi[2] = omega[0]*r[1] - omega[1]*r[0] + vcm[2]; } +/* ---------------------------------------------------------------------- + Determine the length of the contact segment, i.e. the separation between + 2 contacts, should be extended for 3D models. +------------------------------------------------------------------------- */ + +double PairBodyRoundedPolyhedron::contact_separation(const Contact& c1, + const Contact& c2) +{ + double x1 = 0.5*(c1.xi[0] + c1.xj[0]); + double y1 = 0.5*(c1.xi[1] + c1.xj[1]); + double z1 = 0.5*(c1.xi[2] + c1.xj[2]); + double x2 = 0.5*(c2.xi[0] + c2.xj[0]); + double y2 = 0.5*(c2.xi[1] + c2.xj[1]); + double z2 = 0.5*(c2.xi[2] + c2.xj[2]); + double rsq = (x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1) + (z2 - z1)*(z2 - z1); + return rsq; +} + +/* ---------------------------------------------------------------------- + find the number of unique contacts +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::find_unique_contacts(Contact* contact_list, int& num_contacts) +{ + int n = num_contacts; + for (int i = 0; i < n - 1; i++) { + + for (int j = i + 1; j < n; j++) { + if (contact_list[i].unique == 0) continue; + double d = contact_separation(contact_list[i], contact_list[j]); + if (d < EPSILON) contact_list[j].unique = 0; + } + } +} + /* ---------------------------------------------------------------------- */ void PairBodyRoundedPolyhedron::sanity_check() diff --git a/src/BODY/pair_body_rounded_polyhedron.h b/src/BODY/pair_body_rounded_polyhedron.h index d7ee1f013e..05985ef813 100644 --- a/src/BODY/pair_body_rounded_polyhedron.h +++ b/src/BODY/pair_body_rounded_polyhedron.h @@ -35,12 +35,13 @@ class PairBodyRoundedPolyhedron : public Pair { double init_one(int, int); struct Contact { - int ibody, jbody; // body (i.e. atom) indices (not tags) - int type; // 0 = VERTEX-FACE; 1 = EDGE-EDGE - double fx,fy,fz; // unscaled cohesive forces at contact - double xi[3]; // coordinates of the contact point on ibody - double xj[3]; // coordinates of the contact point on jbody + int ibody, jbody; // body (i.e. atom) indices (not tags) + int type; // 0 = VERTEX-FACE; 1 = EDGE-EDGE + double fx,fy,fz; // unscaled cohesive forces at contact + double xi[3]; // coordinates of the contact point on ibody + double xj[3]; // coordinates of the contact point on jbody double separation; // contact surface separation + int unique; }; protected: @@ -124,7 +125,11 @@ class PairBodyRoundedPolyhedron : public Pair { int jflag, double& energy, double* facc); void rescale_cohesive_forces(double** x, double** f, double** torque, Contact* contact_list, int &num_contacts, - double contact_area, double k_n, double k_na, double* facc); + double k_n, double k_na, double* facc); + + double contact_separation(const Contact& c1, const Contact& c2); + + void find_unique_contacts(Contact* contact_list, int& num_contacts); void sum_torque(double* xm, double *x, double fx, double fy, double fz, double* torque); int opposite_sides(double* n, double* x0, double* a, double* b); From dd3278ea07597016886198f9bbeaf3b12ba1017b Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Thu, 24 May 2018 23:54:50 -0500 Subject: [PATCH 111/675] Added examples for body rounded/polygon and rounded/polyhedron --- examples/body/data.cubes | 76 ++++++++++++++++++++++++++++++++++ examples/body/in.cubes | 53 ++++++++++++++++++++++++ examples/body/in.pour3d | 57 +++++++++++++++++++++++++ examples/body/molecule.cube | 52 +++++++++++++++++++++++ examples/body/molecule.point3d | 26 ++++++++++++ examples/body/molecule.rod3d | 27 ++++++++++++ examples/body/molecule.tetra | 39 +++++++++++++++++ 7 files changed, 330 insertions(+) create mode 100644 examples/body/data.cubes create mode 100644 examples/body/in.cubes create mode 100644 examples/body/in.pour3d create mode 100644 examples/body/molecule.cube create mode 100644 examples/body/molecule.point3d create mode 100644 examples/body/molecule.rod3d create mode 100644 examples/body/molecule.tetra diff --git a/examples/body/data.cubes b/examples/body/data.cubes new file mode 100644 index 0000000000..c1323ca350 --- /dev/null +++ b/examples/body/data.cubes @@ -0,0 +1,76 @@ +LAMMPS data file for polygons: cubes, moment of inertia I = m edge^2/ 6 +2 atoms +2 bodies +1 atom types +0 6 xlo xhi +0 6 ylo yhi +0 6 zlo zhi + +Atoms + +1 1 1 1 1.5 1.5 1.5 +2 1 1 1 4.0 4.0 4.0 + +Bodies + +1 3 79 +8 12 6 +0.667 0.667 0.667 0 0 0 +1 1 1 +1 -1 1 +-1 -1 1 +-1 1 1 +1 1 -1 +1 -1 -1 +-1 -1 -1 +-1 1 -1 +0 1 +1 2 +2 3 +3 0 +4 5 +5 6 +6 7 +7 4 +0 4 +1 5 +2 6 +3 7 +0 1 2 3 +4 5 6 7 +0 1 5 4 +1 2 6 5 +2 3 7 6 +3 0 4 7 +0.5 +2 3 79 +8 12 6 +0.667 0.667 0.667 0 0 0 +1 1 1 +1 -1 1 +-1 -1 1 +-1 1 1 +1 1 -1 +1 -1 -1 +-1 -1 -1 +-1 1 -1 +0 1 +1 2 +2 3 +3 0 +4 5 +5 6 +6 7 +7 4 +0 4 +1 5 +2 6 +3 7 +0 1 2 3 +4 5 6 7 +0 1 5 4 +1 2 6 5 +2 3 7 6 +3 0 4 7 +0.5 + diff --git a/examples/body/in.cubes b/examples/body/in.cubes new file mode 100644 index 0000000000..3aeaa70af9 --- /dev/null +++ b/examples/body/in.cubes @@ -0,0 +1,53 @@ +# 3d rounded cubes + +variable r index 3 +variable steps index 10000 + +units lj +dimension 3 + +atom_style body rounded/polyhedron 1 10 + +read_data data.cubes + +replicate $r $r $r + +velocity all create 1.2 187287 dist gaussian mom yes rot yes + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 1 +variable c_n equal 20 +variable c_t equal 5 +variable mu equal 0 +variable A_ua equal 1 + +pair_style body/rounded/polyhedron ${c_n} ${c_t} ${mu} ${A_ua} ${cut_inner} +pair_coeff * * ${k_n} ${k_na} + +comm_modify vel yes + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +#fix 1 all nve/body +fix 1 all nvt/body temp 1.2 1.2 0.1 +#fix 1 all npt/body temp 1.2 1.2 0.1 iso 0.002 0.02 1.0 + +compute p2 all pressure 1_temp + +compute 1 all body/local id 1 2 3 +dump 1 all local 1000 dump.* index c_1[1] c_1[2] c_1[3] c_1[4] + +#dump 2 all image 1000 image.*.jpg type type & +# zoom 1.5 adiam 1.5 body yes 0 0 view 60 15 +#dump_modify 2 pad 6 + +thermo_style custom step ke pe etotal c_p2 c_1_temp + +thermo 1000 + +run ${steps} + diff --git a/examples/body/in.pour3d b/examples/body/in.pour3d new file mode 100644 index 0000000000..290f2052c8 --- /dev/null +++ b/examples/body/in.pour3d @@ -0,0 +1,57 @@ +# pouring 3d rounded polyhedron bodies + +variable steps index 6000 + +units lj +boundary p p fm +comm_modify vel yes + +atom_style body rounded/polyhedron 1 8 +atom_modify map array + +region reg block 0 50 0 50 0 50 units box +create_box 4 reg + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 5 +variable c_n equal 20 +variable c_t equal 5 +variable mu equal 0 +variable A_ua equal 1 + +pair_style body/rounded/polyhedron ${c_n} ${c_t} ${mu} ${A_ua} ${cut_inner} +pair_coeff * * ${k_n} ${k_na} + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +fix 1 all nve/body +fix 2 all gravity 1.0 spherical 0.0 -180.0 + +molecule object molecule.cube molecule.tetra toff 1 & + molecule.rod3d toff 2 molecule.point3d toff 3 + +region slab block 5 45 5 45 25 35 units box +fix ins all pour 500 0 4767548 vol 0.4 10 region slab mol object & + molfrac 0.25 0.25 0.25 0.25 + +fix 4 all wall/body/polyhedron 2000 50 50 zplane 0.0 NULL + +#compute 1 all body/local type 1 2 3 +#dump 1 all local 1000 dump.polyhedron index c_1[1] c_1[2] c_1[3] c_1[4] +#dump 10 all custom 1000 tmp.dump id type x y z radius + +thermo_style custom step atoms ke pe etotal press + +thermo 1000 + +#dump 2 all image 500 image.*.jpg type type & +# zoom 1.5 adiam 1.5 body yes 0 0 view 75 15 +#dump_modify 2 pad 6 + +run ${steps} + + diff --git a/examples/body/molecule.cube b/examples/body/molecule.cube new file mode 100644 index 0000000000..2a8a7bca50 --- /dev/null +++ b/examples/body/molecule.cube @@ -0,0 +1,52 @@ +# 3d polygon body: cubes, moment of inertia I = m edge^2/ 6 + +1 atoms +3 79 body + +Coords + +1 0 0 0 + +Types + +1 1 + +Masses + +1 1.0 + +Body Integers + +8 12 6 + +Body Doubles + +0.667 0.667 0.667 0 0 0 +1 1 1 +1 -1 1 +-1 -1 1 +-1 1 1 +1 1 -1 +1 -1 -1 +-1 -1 -1 +-1 1 -1 +0 1 +1 2 +2 3 +3 0 +4 5 +5 6 +6 7 +7 4 +0 4 +1 5 +2 6 +3 7 +0 1 2 3 +4 5 6 7 +0 1 5 4 +1 2 6 5 +2 3 7 6 +3 0 4 7 +0.5 + diff --git a/examples/body/molecule.point3d b/examples/body/molecule.point3d new file mode 100644 index 0000000000..d22bfbe6fa --- /dev/null +++ b/examples/body/molecule.point3d @@ -0,0 +1,26 @@ +# 2d polygon body: disks Izz = 1/2 m radius^2 + +1 atoms +3 10 body + +Coords + +1 0 0 0 + +Types + +1 1 + +Masses + +1 1.0 + +Body Integers + +1 0 0 + +Body Doubles + +1 1 1.125 0 0 0 +0 0 0 +3.0 diff --git a/examples/body/molecule.rod3d b/examples/body/molecule.rod3d new file mode 100644 index 0000000000..1c8a0a8cd3 --- /dev/null +++ b/examples/body/molecule.rod3d @@ -0,0 +1,27 @@ +# 2d polygon body: rods Izz = 1/12 m length^2 + +1 atoms +3 13 body + +Coords + +1 0 0 0 + +Types + +1 1 + +Masses + +1 1.0 + +Body Integers + +2 1 0 + +Body Doubles + +1 1 1.333 0 0 0 +-2 0 0 +2 0 0 +0.5 diff --git a/examples/body/molecule.tetra b/examples/body/molecule.tetra new file mode 100644 index 0000000000..d67ec906c6 --- /dev/null +++ b/examples/body/molecule.tetra @@ -0,0 +1,39 @@ +# 3d polygon body: regular tetrahedra, moment of inertia I = m edge^2/ 20 + +1 atoms +3 47 body + +Coords + +1 0 0 0 + +Types + +1 1 + +Masses + +1 1.0 + +Body Integers + +4 6 4 + +Body Doubles + +0.4 0.4 0.4 0 0 0 +1 1 1 +1 -1 -1 +-1 1 -1 +-1 -1 1 +0 1 +0 2 +0 3 +1 2 +2 3 +3 1 +0 1 2 -1 +0 1 3 -1 +0 2 3 -1 +1 2 3 -1 +0.5 From 5a23342934b350bd88de7d335b40c1bb3c7427d2 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 26 May 2018 00:39:55 -0500 Subject: [PATCH 112/675] Refactored pair body rounded/polyhedron so that other kernel force models can be implemented in the future --- src/BODY/pair_body_rounded_polyhedron.cpp | 725 +++++++++++----------- src/BODY/pair_body_rounded_polyhedron.h | 41 +- 2 files changed, 409 insertions(+), 357 deletions(-) diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index 02c2abe1e3..42c107d68e 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -610,10 +610,10 @@ void PairBodyRoundedPolyhedron::sphere_against_sphere(int ibody, int jbody, rij = sqrt(rsq); R = rij - contact_dist; - shift = k_na * cut_inner; energy = 0; - + kernel_force(R, k_n, k_na, energy, fpair); +/* if (R <= 0) { // deformation occurs fpair = -k_n * R - shift; energy = (0.5 * k_n * R + shift) * R; @@ -621,6 +621,7 @@ void PairBodyRoundedPolyhedron::sphere_against_sphere(int ibody, int jbody, fpair = k_na * R - shift; energy = (-0.5 * k_na * R + shift) * R; } else fpair = 0.0; +*/ fx = delx*fpair/rij; fy = dely*fpair/rij; @@ -680,159 +681,6 @@ void PairBodyRoundedPolyhedron::sphere_against_sphere(int ibody, int jbody, energy,0.0,fx,fy,fz,delx,dely,delz); } -/* ---------------------------------------------------------------------- - Interaction bt the faces of a polyhedron (ibody) and a sphere (jbody) ----------------------------------------------------------------------- */ - -void PairBodyRoundedPolyhedron::sphere_against_face(int ibody, int jbody, - double k_n, double k_na, double** x, double** v, - double** f, double** torque, double** angmom, - int evflag) -{ - int ni,nfi,inside,ifirst,iffirst,npi1,npi2,npi3,ibonus,tmp; - double xi1[3],xi2[3],xi3[3],ui[3],vi[3],vti[3],n[3],h[3],fn[3],ft[3],d; - double delx,dely,delz,rsq,rij,rsqinv,R,fx,fy,fz,fpair,shift,energy; - double rradi,rradj,contact_dist; - double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; - double *quat, *inertia; - AtomVecBody::Bonus *bonus; - - int nlocal = atom->nlocal; - int newton_pair = force->newton_pair; - - ifirst = dfirst[ibody]; - iffirst = facfirst[ibody]; - nfi = facnum[ibody]; - - rradi = rounded_radius[ibody]; - rradj = rounded_radius[jbody]; - contact_dist = rradi + rradj; - - for (ni = 0; ni < nfi; ni++) { - - npi1 = static_cast(face[iffirst+ni][0]); - npi2 = static_cast(face[iffirst+ni][1]); - npi3 = static_cast(face[iffirst+ni][2]); - - // compute the space-fixed coordinates for the vertices of the face - - xi1[0] = x[ibody][0] + discrete[ifirst+npi1][0]; - xi1[1] = x[ibody][1] + discrete[ifirst+npi1][1]; - xi1[2] = x[ibody][2] + discrete[ifirst+npi1][2]; - - xi2[0] = x[ibody][0] + discrete[ifirst+npi2][0]; - xi2[1] = x[ibody][1] + discrete[ifirst+npi2][1]; - xi2[2] = x[ibody][2] + discrete[ifirst+npi2][2]; - - xi3[0] = x[ibody][0] + discrete[ifirst+npi3][0]; - xi3[1] = x[ibody][1] + discrete[ifirst+npi3][1]; - xi3[2] = x[ibody][2] + discrete[ifirst+npi3][2]; - - // find the normal unit vector of the face - - MathExtra::sub3(xi2, xi1, ui); - MathExtra::sub3(xi3, xi1, vi); - MathExtra::cross3(ui, vi, n); - MathExtra::norm3(n); - - // skip if the COM of the two bodies are in the same side of the face - - if (opposite_sides(n, xi1, x[ibody], x[jbody]) == 0) continue; - - // find the projection of the sphere on the face - - project_pt_plane(x[jbody], xi1, xi2, xi3, h, d, inside); - - inside_polygon(ibody, ni, x[ibody], h, NULL, inside, tmp); - if (inside == 0) continue; - - delx = h[0] - x[jbody][0]; - dely = h[1] - x[jbody][1]; - delz = h[2] - x[jbody][2]; - rsq = delx*delx + dely*dely + delz*delz; - rij = sqrt(rsq); - R = rij - contact_dist; - shift = k_na * cut_inner; - - energy = 0; - - if (R <= 0) { // deformation occurs - fpair = -k_n * R - shift; - energy = (0.5 * k_n * R + shift) * R; - } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap - fpair = k_na * R - shift; - energy = (-0.5 * k_na * R + shift) * R; - } else fpair = 0.0; - - fx = delx*fpair/rij; - fy = dely*fpair/rij; - fz = delz*fpair/rij; - - if (R <= 0) { // in contact - - // compute the velocity of the vertex in the space-fixed frame - - ibonus = atom->body[ibody]; - bonus = &avec->bonus[ibonus]; - quat = bonus->quat; - inertia = bonus->inertia; - total_velocity(h, x[ibody], v[ibody], angmom[ibody], - inertia, quat, vti); - - // relative translational velocity - - vr1 = vti[0] - v[jbody][0]; - vr2 = vti[1] - v[jbody][1]; - vr3 = vti[2] - v[jbody][2]; - - // normal component - - rsqinv = 1.0/rsq; - vnnr = vr1*delx + vr2*dely + vr3*delz; - vn1 = delx*vnnr * rsqinv; - vn2 = dely*vnnr * rsqinv; - vn3 = delz*vnnr * rsqinv; - - // tangential component - - vt1 = vr1 - vn1; - vt2 = vr2 - vn2; - vt3 = vr3 - vn3; - - // normal friction term at contact - - fn[0] = -c_n * vn1; - fn[1] = -c_n * vn2; - fn[2] = -c_n * vn3; - - // tangential friction term at contact, - // excluding the tangential deformation term for now - - ft[0] = -c_t * vt1; - ft[1] = -c_t * vt2; - ft[2] = -c_t * vt3; - - fx += fn[0] + ft[0]; - fy += fn[1] + ft[1]; - fz += fn[2] + ft[2]; - } - - f[ibody][0] += fx; - f[ibody][1] += fy; - f[ibody][2] += fz; - sum_torque(x[ibody], h, fx, fy, fz, torque[ibody]); - - if (newton_pair || jbody < nlocal) { - f[jbody][0] -= fx; - f[jbody][1] -= fy; - f[jbody][2] -= fz; - } - - if (evflag) ev_tally_xyz(ibody,jbody,nlocal,newton_pair, - energy,0.0,fx,fy,fz,delx,dely,delz); - } -} - /* ---------------------------------------------------------------------- Interaction bt the edges of a polyhedron (ibody) and a sphere (jbody) ---------------------------------------------------------------------- */ @@ -910,10 +758,10 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, delz = h[2] - x[jbody][2]; rij = sqrt(delx*delx + dely*dely + delz*delz); R = rij - contact_dist; - shift = k_na * cut_inner; energy = 0; - + kernel_force(R, k_n, k_na, energy, fpair); +/* if (R <= 0) { // deformation occurs fpair = -k_n * R - shift; energy = (0.5 * k_n * R + shift) * R; @@ -921,6 +769,8 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, fpair = k_na * R - shift; energy = (-0.5 * k_na * R + shift) * R; } else fpair = 0.0; +*/ + fx = delx*fpair/rij; fy = dely*fpair/rij; @@ -987,7 +837,216 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, if (evflag) ev_tally_xyz(ibody,jbody,nlocal,newton_pair, energy,0.0,fx,fy,fz,delx,dely,delz); } +} +/* ---------------------------------------------------------------------- + Interaction bt the faces of a polyhedron (ibody) and a sphere (jbody) +---------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::sphere_against_face(int ibody, int jbody, + double k_n, double k_na, double** x, double** v, + double** f, double** torque, double** angmom, + int evflag) +{ + int ni,nfi,inside,ifirst,iffirst,npi1,npi2,npi3,ibonus,tmp; + double xi1[3],xi2[3],xi3[3],ui[3],vi[3],vti[3],n[3],h[3],fn[3],ft[3],d; + double delx,dely,delz,rsq,rij,rsqinv,R,fx,fy,fz,fpair,shift,energy; + double rradi,rradj,contact_dist; + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double *quat, *inertia; + AtomVecBody::Bonus *bonus; + + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + ifirst = dfirst[ibody]; + iffirst = facfirst[ibody]; + nfi = facnum[ibody]; + + rradi = rounded_radius[ibody]; + rradj = rounded_radius[jbody]; + contact_dist = rradi + rradj; + + for (ni = 0; ni < nfi; ni++) { + + npi1 = static_cast(face[iffirst+ni][0]); + npi2 = static_cast(face[iffirst+ni][1]); + npi3 = static_cast(face[iffirst+ni][2]); + + // compute the space-fixed coordinates for the vertices of the face + + xi1[0] = x[ibody][0] + discrete[ifirst+npi1][0]; + xi1[1] = x[ibody][1] + discrete[ifirst+npi1][1]; + xi1[2] = x[ibody][2] + discrete[ifirst+npi1][2]; + + xi2[0] = x[ibody][0] + discrete[ifirst+npi2][0]; + xi2[1] = x[ibody][1] + discrete[ifirst+npi2][1]; + xi2[2] = x[ibody][2] + discrete[ifirst+npi2][2]; + + xi3[0] = x[ibody][0] + discrete[ifirst+npi3][0]; + xi3[1] = x[ibody][1] + discrete[ifirst+npi3][1]; + xi3[2] = x[ibody][2] + discrete[ifirst+npi3][2]; + + // find the normal unit vector of the face + + MathExtra::sub3(xi2, xi1, ui); + MathExtra::sub3(xi3, xi1, vi); + MathExtra::cross3(ui, vi, n); + MathExtra::norm3(n); + + // skip if the COM of the two bodies are in the same side of the face + + if (opposite_sides(n, xi1, x[ibody], x[jbody]) == 0) continue; + + // find the projection of the sphere on the face + + project_pt_plane(x[jbody], xi1, xi2, xi3, h, d, inside); + + inside_polygon(ibody, ni, x[ibody], h, NULL, inside, tmp); + if (inside == 0) continue; + + delx = h[0] - x[jbody][0]; + dely = h[1] - x[jbody][1]; + delz = h[2] - x[jbody][2]; + rsq = delx*delx + dely*dely + delz*delz; + rij = sqrt(rsq); + R = rij - contact_dist; + + energy = 0; + kernel_force(R, k_n, k_na, energy, fpair); +/* + if (R <= 0) { // deformation occurs + fpair = -k_n * R - shift; + energy = (0.5 * k_n * R + shift) * R; + } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap + fpair = k_na * R - shift; + energy = (-0.5 * k_na * R + shift) * R; + } else fpair = 0.0; +*/ + + fx = delx*fpair/rij; + fy = dely*fpair/rij; + fz = delz*fpair/rij; + + if (R <= 0) { // in contact + + // compute the velocity of the vertex in the space-fixed frame + + ibonus = atom->body[ibody]; + bonus = &avec->bonus[ibonus]; + quat = bonus->quat; + inertia = bonus->inertia; + total_velocity(h, x[ibody], v[ibody], angmom[ibody], + inertia, quat, vti); + + // relative translational velocity + + vr1 = vti[0] - v[jbody][0]; + vr2 = vti[1] - v[jbody][1]; + vr3 = vti[2] - v[jbody][2]; + + // normal component + + rsqinv = 1.0/rsq; + vnnr = vr1*delx + vr2*dely + vr3*delz; + vn1 = delx*vnnr * rsqinv; + vn2 = dely*vnnr * rsqinv; + vn3 = delz*vnnr * rsqinv; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // normal friction term at contact + + fn[0] = -c_n * vn1; + fn[1] = -c_n * vn2; + fn[2] = -c_n * vn3; + + // tangential friction term at contact, + // excluding the tangential deformation term for now + + ft[0] = -c_t * vt1; + ft[1] = -c_t * vt2; + ft[2] = -c_t * vt3; + + fx += fn[0] + ft[0]; + fy += fn[1] + ft[1]; + fz += fn[2] + ft[2]; + } + + f[ibody][0] += fx; + f[ibody][1] += fy; + f[ibody][2] += fz; + sum_torque(x[ibody], h, fx, fy, fz, torque[ibody]); + + if (newton_pair || jbody < nlocal) { + f[jbody][0] -= fx; + f[jbody][1] -= fy; + f[jbody][2] -= fz; + } + + if (evflag) ev_tally_xyz(ibody,jbody,nlocal,newton_pair, + energy,0.0,fx,fy,fz,delx,dely,delz); + } +} + +/* ---------------------------------------------------------------------- + Determine the interaction mode between i's edges against j's edges + + i = atom i (body i) + j = atom j (body j) + x = atoms' coordinates + f = atoms' forces + torque = atoms' torques + tag = atoms' tags + contact_list = list of contacts + num_contacts = number of contacts between i's edges and j's edges + Return: + +---------------------------------------------------------------------- */ + +int PairBodyRoundedPolyhedron::edge_against_edge(int ibody, int jbody, + double k_n, double k_na, double** x, Contact* contact_list, + int &num_contacts, double &evdwl, double* facc) +{ + int ni,nei,nj,nej,contact,interact; + double rradi,rradj,energy; + + nei = ednum[ibody]; + rradi = rounded_radius[ibody]; + nej = ednum[jbody]; + rradj = rounded_radius[jbody]; + + energy = 0; + interact = EE_NONE; + + // loop through body i's edges + + for (ni = 0; ni < nei; ni++) { + + for (nj = 0; nj < nej; nj++) { + + // compute the distance between the edge nj to the edge ni + #ifdef _POLYHEDRON_DEBUG + printf("Compute interaction between edge %d of body %d with edge %d of body %d:\n", + nj, jbody, ni, ibody); + #endif + + interact = interaction_edge_to_edge(ibody, ni, x[ibody], rradi, + jbody, nj, x[jbody], rradj, + k_n, k_na, cut_inner, + contact_list, num_contacts, + energy, facc); + } + + } // end for looping through the edges of body i + + evdwl += energy; + + return interact; } /* ---------------------------------------------------------------------- @@ -1048,58 +1107,140 @@ int PairBodyRoundedPolyhedron::edge_against_face(int ibody, int jbody, return interact; } -/* ---------------------------------------------------------------------- - Determine the interaction mode between i's edges against j's edges +/* ------------------------------------------------------------------------- + Compute the distance between an edge of body i and an edge from + another body + Input: + ibody = body i (i.e. atom i) + face_index = face index of body i + xmi = atom i's coordinates (body i's center of mass) + rounded_radius_i = rounded radius of the body i + jbody = body i (i.e. atom j) + edge_index = coordinate of the tested edge from another body + xmj = atom j's coordinates (body j's center of mass) + rounded_radius_j = rounded radius of the body j + cut_inner = cutoff for vertex-vertex and vertex-edge interaction + Output: + d = Distance from a point x0 to an edge + hi = coordinates of the projection of x0 on the edge - i = atom i (body i) - j = atom j (body j) - x = atoms' coordinates - f = atoms' forces - torque = atoms' torques - tag = atoms' tags - contact_list = list of contacts - num_contacts = number of contacts between i's edges and j's edges - Return: + contact = 0 no contact between the queried edge and the face + 1 contact detected + return + INVALID if the face index is invalid + NONE if there is no interaction +------------------------------------------------------------------------- */ ----------------------------------------------------------------------- */ - -int PairBodyRoundedPolyhedron::edge_against_edge(int ibody, int jbody, - double k_n, double k_na, double** x, Contact* contact_list, - int &num_contacts, double &evdwl, double* facc) +int PairBodyRoundedPolyhedron::interaction_edge_to_edge(int ibody, + int edge_index_i, + double *xmi, + double rounded_radius_i, + int jbody, + int edge_index_j, + double *xmj, + double rounded_radius_j, + double k_n, + double k_na, + double cut_inner, + Contact* contact_list, + int &num_contacts, + double &energy, + double* facc) { - int ni,nei,nj,nej,contact,interact; - double rradi,rradj,energy; + int ifirst,iefirst,jfirst,jefirst,npi1,npi2,npj1,npj2,interact; + double xi1[3],xi2[3],xpj1[3],xpj2[3]; + double r,t1,t2,h1[3],h2[3]; + double contact_dist, shift; - nei = ednum[ibody]; - rradi = rounded_radius[ibody]; - nej = ednum[jbody]; - rradj = rounded_radius[jbody]; + double** x = atom->x; + double** v = atom->v; + double** f = atom->f; + double** torque = atom->torque; + double** angmom = atom->angmom; + + ifirst = dfirst[ibody]; + iefirst = edfirst[ibody]; + npi1 = static_cast(edge[iefirst+edge_index_i][0]); + npi2 = static_cast(edge[iefirst+edge_index_i][1]); + + // compute the space-fixed coordinates for the edge ends + + xi1[0] = xmi[0] + discrete[ifirst+npi1][0]; + xi1[1] = xmi[1] + discrete[ifirst+npi1][1]; + xi1[2] = xmi[2] + discrete[ifirst+npi1][2]; + + xi2[0] = xmi[0] + discrete[ifirst+npi2][0]; + xi2[1] = xmi[1] + discrete[ifirst+npi2][1]; + xi2[2] = xmi[2] + discrete[ifirst+npi2][2]; + + // two ends of the edge from body j + + jfirst = dfirst[jbody]; + jefirst = edfirst[jbody]; + npj1 = static_cast(edge[jefirst+edge_index_j][0]); + npj2 = static_cast(edge[jefirst+edge_index_j][1]); + + xpj1[0] = xmj[0] + discrete[jfirst+npj1][0]; + xpj1[1] = xmj[1] + discrete[jfirst+npj1][1]; + xpj1[2] = xmj[2] + discrete[jfirst+npj1][2]; + + xpj2[0] = xmj[0] + discrete[jfirst+npj2][0]; + xpj2[1] = xmj[1] + discrete[jfirst+npj2][1]; + xpj2[2] = xmj[2] + discrete[jfirst+npj2][2]; + + contact_dist = rounded_radius_i + rounded_radius_j; + + int jflag = 1; + distance_bt_edges(xpj1, xpj2, xi1, xi2, h1, h2, t1, t2, r); + + #ifdef _POLYHEDRON_DEBUG + double ui[3],uj[3]; + MathExtra::sub3(xi1,xi2,ui); + MathExtra::norm3(ui); + MathExtra::sub3(xpj1,xpj2,uj); + MathExtra::norm3(uj); + double dot = MathExtra::dot3(ui, uj); + printf(" edge npi1 = %d (%f %f %f); npi2 = %d (%f %f %f) vs." + " edge npj1 = %d (%f %f %f); npj2 = %d (%f %f %f): " + "t1 = %f; t2 = %f; r = %f; dot = %f\n", + npi1, xi1[0], xi1[1], xi1[2], npi2, xi2[0], xi2[1], xi2[2], + npj1, xpj1[0], xpj1[1], xpj1[2], npj2, xpj2[0], xpj2[1], xpj2[2], + t1, t2, r, dot); + #endif - energy = 0; interact = EE_NONE; - // loop through body i's edges + // singularity case, ignore interactions - for (ni = 0; ni < nei; ni++) { + if (r < EPSILON) return interact; - for (nj = 0; nj < nej; nj++) { + // include the vertices for interactions - // compute the distance between the edge nj to the edge ni - #ifdef _POLYHEDRON_DEBUG - printf("Compute interaction between edge %d of body %d with edge %d of body %d:\n", - nj, jbody, ni, ibody); - #endif + if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1 && + r < contact_dist + cut_inner) { + pair_force_and_torque(jbody, ibody, h1, h2, r, contact_dist, + k_n, k_na, x, v, f, torque, angmom, + jflag, energy, facc); - interact = interaction_edge_to_edge(ibody, ni, x[ibody], rradi, - jbody, nj, x[jbody], rradj, - k_n, k_na, cut_inner, - contact_list, num_contacts, - energy, facc); + interact = EE_INTERACT; + if (r <= contact_dist) { + // store the contact info + contact_list[num_contacts].ibody = ibody; + contact_list[num_contacts].jbody = jbody; + contact_list[num_contacts].xi[0] = h2[0]; + contact_list[num_contacts].xi[1] = h2[1]; + contact_list[num_contacts].xi[2] = h2[2]; + contact_list[num_contacts].xj[0] = h1[0]; + contact_list[num_contacts].xj[1] = h1[1]; + contact_list[num_contacts].xj[2] = h1[2]; + contact_list[num_contacts].type = 1; + contact_list[num_contacts].separation = r - contact_dist; + contact_list[num_contacts].unique = 1; + num_contacts++; } + } else { - } // end for looping through the edges of body i - - evdwl += energy; + } return interact; } @@ -1225,7 +1366,6 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, inside_polygon(ibody, face_index, xmi, hi1, hi2, inside1, inside2); contact_dist = rounded_radius_i + rounded_radius_j; - shift = k_na * cut_inner; // both endpoints are on the same side of, or parallel to, the face // and both are out of the interaction zone @@ -1257,7 +1397,7 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, if (inside1) { if (static_cast(discrete[jfirst+npj1][6]) == 0) { pair_force_and_torque(jbody, ibody, xpj1, hi1, d1, contact_dist, - k_n, k_na, shift, x, v, f, torque, angmom, + k_n, k_na, x, v, f, torque, angmom, jflag, energy, facc); #ifdef _POLYHEDRON_DEBUG printf(" - compute pair force between vertex %d from edge %d of body %d " @@ -1277,6 +1417,7 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, contact_list[num_contacts].xj[2] = xpj1[2]; contact_list[num_contacts].type = 0; contact_list[num_contacts].separation = d1 - contact_dist; + contact_list[num_contacts].unique = 1; num_contacts++; } @@ -1295,7 +1436,7 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, if (inside2) { if (static_cast(discrete[jfirst+npj2][6]) == 0) { pair_force_and_torque(jbody, ibody, xpj2, hi2, d2, contact_dist, - k_n, k_na, shift, x, v, f, torque, angmom, + k_n, k_na, x, v, f, torque, angmom, jflag, energy, facc); #ifdef _POLYHEDRON_DEBUG printf(" - compute pair force between vertex %d from edge %d of body %d " @@ -1315,6 +1456,7 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, contact_list[num_contacts].xj[2] = xpj2[2]; contact_list[num_contacts].type = 0; contact_list[num_contacts].separation = d2 - contact_dist; + contact_list[num_contacts].unique = 1; num_contacts++; } discrete[jfirst+npj2][6] = 1; @@ -1360,155 +1502,17 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, int jflag = 1; if (d1 < d2) pair_force_and_torque(jbody, ibody, xpj1, hi1, d1, contact_dist, - k_n, k_na, shift, x, v, f, torque, angmom, + k_n, k_na, x, v, f, torque, angmom, jflag, energy, facc); else pair_force_and_torque(jbody, ibody, xpj2, hi2, d2, contact_dist, - k_n, k_na, shift, x, v, f, torque, angmom, + k_n, k_na, x, v, f, torque, angmom, jflag, energy, facc); } return interact; } -/* ------------------------------------------------------------------------- - Compute the distance between an edge of body i and an edge from - another body - Input: - ibody = body i (i.e. atom i) - face_index = face index of body i - xmi = atom i's coordinates (body i's center of mass) - rounded_radius_i = rounded radius of the body i - jbody = body i (i.e. atom j) - edge_index = coordinate of the tested edge from another body - xmj = atom j's coordinates (body j's center of mass) - rounded_radius_j = rounded radius of the body j - cut_inner = cutoff for vertex-vertex and vertex-edge interaction - Output: - d = Distance from a point x0 to an edge - hi = coordinates of the projection of x0 on the edge - - contact = 0 no contact between the queried edge and the face - 1 contact detected - return - INVALID if the face index is invalid - NONE if there is no interaction -------------------------------------------------------------------------- */ - -int PairBodyRoundedPolyhedron::interaction_edge_to_edge(int ibody, - int edge_index_i, - double *xmi, - double rounded_radius_i, - int jbody, - int edge_index_j, - double *xmj, - double rounded_radius_j, - double k_n, - double k_na, - double cut_inner, - Contact* contact_list, - int &num_contacts, - double &energy, - double* facc) -{ - int ifirst,iefirst,jfirst,jefirst,npi1,npi2,npj1,npj2,interact; - double xi1[3],xi2[3],xpj1[3],xpj2[3]; - double r,t1,t2,h1[3],h2[3]; - double contact_dist, shift; - - double** x = atom->x; - double** v = atom->v; - double** f = atom->f; - double** torque = atom->torque; - double** angmom = atom->angmom; - - ifirst = dfirst[ibody]; - iefirst = edfirst[ibody]; - npi1 = static_cast(edge[iefirst+edge_index_i][0]); - npi2 = static_cast(edge[iefirst+edge_index_i][1]); - - // compute the space-fixed coordinates for the edge ends - - xi1[0] = xmi[0] + discrete[ifirst+npi1][0]; - xi1[1] = xmi[1] + discrete[ifirst+npi1][1]; - xi1[2] = xmi[2] + discrete[ifirst+npi1][2]; - - xi2[0] = xmi[0] + discrete[ifirst+npi2][0]; - xi2[1] = xmi[1] + discrete[ifirst+npi2][1]; - xi2[2] = xmi[2] + discrete[ifirst+npi2][2]; - - // two ends of the edge from body j - - jfirst = dfirst[jbody]; - jefirst = edfirst[jbody]; - npj1 = static_cast(edge[jefirst+edge_index_j][0]); - npj2 = static_cast(edge[jefirst+edge_index_j][1]); - - xpj1[0] = xmj[0] + discrete[jfirst+npj1][0]; - xpj1[1] = xmj[1] + discrete[jfirst+npj1][1]; - xpj1[2] = xmj[2] + discrete[jfirst+npj1][2]; - - xpj2[0] = xmj[0] + discrete[jfirst+npj2][0]; - xpj2[1] = xmj[1] + discrete[jfirst+npj2][1]; - xpj2[2] = xmj[2] + discrete[jfirst+npj2][2]; - - contact_dist = rounded_radius_i + rounded_radius_j; - shift = k_na * cut_inner; - - int jflag = 1; - distance_bt_edges(xpj1, xpj2, xi1, xi2, h1, h2, t1, t2, r); - - #ifdef _POLYHEDRON_DEBUG - double ui[3],uj[3]; - MathExtra::sub3(xi1,xi2,ui); - MathExtra::norm3(ui); - MathExtra::sub3(xpj1,xpj2,uj); - MathExtra::norm3(uj); - double dot = MathExtra::dot3(ui, uj); - printf(" edge npi1 = %d (%f %f %f); npi2 = %d (%f %f %f) vs." - " edge npj1 = %d (%f %f %f); npj2 = %d (%f %f %f): " - "t1 = %f; t2 = %f; r = %f; dot = %f\n", - npi1, xi1[0], xi1[1], xi1[2], npi2, xi2[0], xi2[1], xi2[2], - npj1, xpj1[0], xpj1[1], xpj1[2], npj2, xpj2[0], xpj2[1], xpj2[2], - t1, t2, r, dot); - #endif - - interact = EE_NONE; - - // singularity case, ignore interactions - - if (r < EPSILON) return interact; - - // include the vertices for interactions - - if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1 && - r < contact_dist + cut_inner) { - pair_force_and_torque(jbody, ibody, h1, h2, r, contact_dist, - k_n, k_na, shift, x, v, f, torque, angmom, - jflag, energy, facc); - - interact = EE_INTERACT; - if (r <= contact_dist) { - // store the contact info - contact_list[num_contacts].ibody = ibody; - contact_list[num_contacts].jbody = jbody; - contact_list[num_contacts].xi[0] = h2[0]; - contact_list[num_contacts].xi[1] = h2[1]; - contact_list[num_contacts].xi[2] = h2[2]; - contact_list[num_contacts].xj[0] = h1[0]; - contact_list[num_contacts].xj[1] = h1[1]; - contact_list[num_contacts].xj[2] = h1[2]; - contact_list[num_contacts].type = 1; - contact_list[num_contacts].separation = r - contact_dist; - num_contacts++; - } - } else { - - } - - return interact; -} - /* ---------------------------------------------------------------------- Compute forces and torques between two bodies caused by the interaction between a pair of points on either bodies (similar to sphere-sphere) @@ -1516,7 +1520,7 @@ int PairBodyRoundedPolyhedron::interaction_edge_to_edge(int ibody, void PairBodyRoundedPolyhedron::pair_force_and_torque(int ibody, int jbody, double* pi, double* pj, double r, double contact_dist, - double k_n, double k_na, double shift, double** x, + double k_n, double k_na, double** x, double** v, double** f, double** torque, double** angmom, int jflag, double& energy, double* facc) { @@ -1525,7 +1529,10 @@ void PairBodyRoundedPolyhedron::pair_force_and_torque(int ibody, int jbody, delx = pi[0] - pj[0]; dely = pi[1] - pj[1]; delz = pi[2] - pj[2]; - R = r - contact_dist; + R = r - contact_dist; + + kernel_force(R, k_n, k_na, energy, fpair); +/* if (R <= 0) { // deformation occurs fpair = -k_n * R - shift; energy += (0.5 * k_n * R + shift) * R; @@ -1533,6 +1540,7 @@ void PairBodyRoundedPolyhedron::pair_force_and_torque(int ibody, int jbody, fpair = k_na * R - shift; energy += (-0.5 * k_na * R + shift) * R; } else fpair = 0.0; +*/ fx = delx*fpair/r; fy = dely*fpair/r; @@ -1570,6 +1578,26 @@ void PairBodyRoundedPolyhedron::pair_force_and_torque(int ibody, int jbody, } } +/* ---------------------------------------------------------------------- + Kernel force is model-dependent and can be derived for other styles + here is the harmonic potential (linear piece-wise forces) in Wang et al. +------------------------------------------------------------------------- */ + +void PairBodyRoundedPolyhedron::kernel_force(double R, double k_n, double k_na, + double& energy, double& fpair) +{ + double shift = k_na * cut_inner; + double e = 0; + if (R <= 0) { // deformation occurs + fpair = -k_n * R - shift; + e = (0.5 * k_n * R + shift) * R; + } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap + fpair = k_na * R - shift; + e = (-0.5 * k_na * R + shift) * R; + } else fpair = 0.0; + energy += e; +} + /* ---------------------------------------------------------------------- Compute contact forces between two bodies modify the force stored at the vertex and edge in contact by j_a @@ -1685,7 +1713,7 @@ void PairBodyRoundedPolyhedron::rescale_cohesive_forces(double** x, double k_n, double k_na, double* facc) { int m,ibody,jbody; - double delx,dely,delz,fx,fy,fz,R,fpair,r,shift,contact_area; + double delx,dely,delz,fx,fy,fz,R,fpair,r,contact_area; int num_unique_contacts = 0; if (num_contacts == 1) { @@ -1723,11 +1751,11 @@ void PairBodyRoundedPolyhedron::rescale_cohesive_forces(double** x, contact_area *= (MY_PI/(double)num_unique_contacts); } - double j_a = contact_area / (num_contacts * A_ua); + double j_a = contact_area / (num_unique_contacts * A_ua); if (j_a < 1.0) j_a = 1.0; - shift = k_na * cut_inner; - for (m = 0; m < num_contacts; m++) { + if (contact_list[m].unique == 0) continue; + ibody = contact_list[m].ibody; jbody = contact_list[m].jbody; @@ -1735,12 +1763,17 @@ void PairBodyRoundedPolyhedron::rescale_cohesive_forces(double** x, dely = contact_list[m].xi[1] - contact_list[m].xj[1]; delz = contact_list[m].xi[2] - contact_list[m].xj[2]; r = sqrt(delx*delx + dely*dely + delz*delz); - R = contact_list[m].separation; + R = contact_list[m].separation; + + double energy = 0; + kernel_force(R, k_n, k_na, energy, fpair); +/* if (R <= 0) { // deformation occurs fpair = -k_n * R - shift; } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap fpair = k_na * R - shift; } else fpair = 0.0; +*/ fpair *= j_a; fx = delx*fpair/r; diff --git a/src/BODY/pair_body_rounded_polyhedron.h b/src/BODY/pair_body_rounded_polyhedron.h index 05985ef813..f59faf9ba6 100644 --- a/src/BODY/pair_body_rounded_polyhedron.h +++ b/src/BODY/pair_body_rounded_polyhedron.h @@ -34,6 +34,9 @@ class PairBodyRoundedPolyhedron : public Pair { void init_style(); double init_one(int, int); + virtual void kernel_force(double R, double k_n, double k_na, + double& energy, double& fpair); + struct Contact { int ibody, jbody; // body (i.e. atom) indices (not tags) int type; // 0 = VERTEX-FACE; 1 = EDGE-EDGE @@ -84,28 +87,35 @@ class PairBodyRoundedPolyhedron : public Pair { void allocate(); void body2space(int); - int edge_against_face(int ibody, int jbody, double k_n, double k_na, - double** x, Contact* contact_list, int &num_contacts, - double &evdwl, double* facc); - int edge_against_edge(int ibody, int jbody, double k_n, double k_na, - double** x,Contact* contact_list, int &num_contacts, - double &evdwl, double* facc); + // sphere-sphere interaction void sphere_against_sphere(int ibody, int jbody, double delx, double dely, double delz, double rsq, double k_n, double k_na, double** v, double** f, int evflag); - void sphere_against_face(int ibody, int jbody, - double k_n, double k_na, double** x, double** v, - double** f, double** torque, double** angmom, int evflag); + // sphere-edge interaction void sphere_against_edge(int ibody, int jbody, double k_n, double k_na, double** x, double** v, double** f, double** torque, double** angmom, int evflag); + // sphere-face interaction + void sphere_against_face(int ibody, int jbody, + double k_n, double k_na, double** x, double** v, + double** f, double** torque, double** angmom, int evflag); + // edge-edge interactions + int edge_against_edge(int ibody, int jbody, double k_n, double k_na, + double** x,Contact* contact_list, int &num_contacts, + double &evdwl, double* facc); + // edge-face interactions + int edge_against_face(int ibody, int jbody, double k_n, double k_na, + double** x, Contact* contact_list, int &num_contacts, + double &evdwl, double* facc); + // a face vs. a single edge int interaction_face_to_edge(int ibody, int face_index, double* xmi, double rounded_radius_i, int jbody, int edge_index, double* xmj, double rounded_radius_j, double k_n, double k_na, double cut_inner, Contact* contact_list, int &num_contacts, double& energy, double* facc); + // an edge vs. an edge from another body int interaction_edge_to_edge(int ibody, int edge_index_i, double* xmi, double rounded_radius_i, int jbody, int edge_index_j, double* xmj, double rounded_radius_j, @@ -113,29 +123,38 @@ class PairBodyRoundedPolyhedron : public Pair { Contact* contact_list, int &num_contacts, double& energy, double* facc); + // compute contact forces if contact points are detected void contact_forces(int ibody, int jbody, double *xi, double *xj, double delx, double dely, double delz, double fx, double fy, double fz, double** x, double** v, double** angmom, double** f, double** torque, double* facc); + // compute force and torque between two bodies given a pair of interacting points void pair_force_and_torque(int ibody, int jbody, double* pi, double* pj, double r, double contact_dist, double k_n, - double k_na, double shift, double** x, double** v, + double k_na, double** x, double** v, double** f, double** torque, double** angmom, int jflag, double& energy, double* facc); + // rescale the cohesive forces if a contact area is detected void rescale_cohesive_forces(double** x, double** f, double** torque, Contact* contact_list, int &num_contacts, double k_n, double k_na, double* facc); + // compute the separation between two contacts double contact_separation(const Contact& c1, const Contact& c2); + // detect the unique contact points (as there may be double counts) void find_unique_contacts(Contact* contact_list, int& num_contacts); + // accumulate torque to a body given a force at a given point void sum_torque(double* xm, double *x, double fx, double fy, double fz, double* torque); - int opposite_sides(double* n, double* x0, double* a, double* b); + + // find the intersection point (if any) between an edge and a face int edge_face_intersect(double* x1, double* x2, double* x3, double* a, double* b, double* hi1, double* hi2, double& d1, double& d2, int& inside_a, int& inside_b); + // helper functions + int opposite_sides(double* n, double* x0, double* a, double* b); void project_pt_plane(const double* q, const double* p, const double* n, double* q_proj, double &d); void project_pt_plane(const double* q, const double* x1, const double* x2, From 179dcd68953adb0b45b6b91a990c0c222689a8f0 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 26 May 2018 10:02:53 -0500 Subject: [PATCH 113/675] Updated pair body rounded/polygon and rounded/polyhedron --- src/BODY/pair_body_rounded_polygon.cpp | 21 +++++++++++++-------- src/BODY/pair_body_rounded_polyhedron.cpp | 4 ++-- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp index 62a6d77a01..22300091ae 100644 --- a/src/BODY/pair_body_rounded_polygon.cpp +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -38,12 +38,14 @@ using namespace LAMMPS_NS; -//#define _POLYGON_DEBUG #define DELTA 10000 #define EPSILON 1e-3 #define MAX_CONTACTS 4 // maximum number of contacts for 2D models #define EFF_CONTACTS 2 // effective contacts for 2D models +//#define _CONVEX_POLYGON +//#define _POLYGON_DEBUG + enum {INVALID=0,NONE=1,VERTEXI=2,VERTEXJ=3,EDGE=4}; /* ---------------------------------------------------------------------- */ @@ -846,11 +848,11 @@ int PairBodyRoundedPolygon::vertex_against_edge(int i, int j, #endif } + #ifdef _CONVEX_POLYGON // done with the edges from body j, // given that vertex ni interacts with only one vertex from one edge of body j - // comment out this break to take into account concave shapes - -// break; + break; + #endif } else if (mode == EDGE) { @@ -954,12 +956,11 @@ int PairBodyRoundedPolygon::vertex_against_edge(int i, int j, #endif } // end if contact + #ifdef _CONVEX_POLYGON // done with the edges from body j, // given that vertex ni interacts with only one edge from body j - // comment out this break to take into account concave shapes - -// break; - + break; + #endif } // end if mode } // end for looping through the edges of body j @@ -1082,7 +1083,11 @@ int PairBodyRoundedPolygon::compute_distance_to_vertex(int ibody, // check if x0 (the queried vertex) and xmi (the body's center of mass) // are on the different sides of the edge + #ifdef _CONVEX_POLYGON int m = opposite_sides(xi1, xi2, x0, xmi); + #else + int m = 1; + #endif if (m == 0) { diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index 42c107d68e..d0690335df 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -46,8 +46,8 @@ using namespace MathConst; #define DELTA 10000 #define EPSILON 1e-3 -#define MAX_FACE_SIZE 4 // maximum number of vertices per face (same as BodyRoundedPolyhedron) -#define MAX_CONTACTS 32 // for 3D models +#define MAX_FACE_SIZE 4 // maximum number of vertices per face (same as BodyRoundedPolyhedron) +#define MAX_CONTACTS 32 // for 3D models (including duplicated counts) //#define _POLYHEDRON_DEBUG From 4ca870b2a9f3107e7bf26e75f542c3ce893313de Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 26 May 2018 11:41:15 -0500 Subject: [PATCH 114/675] Updated doc page for pair body rounded/polygon --- doc/src/body.txt | 78 +++++++++++++++++++++------ doc/src/pair_body_rounded_polygon.txt | 48 ++++++++++++++++- src/BODY/pair_body_rounded_polygon.h | 17 ++++-- 3 files changed, 120 insertions(+), 23 deletions(-) diff --git a/doc/src/body.txt b/doc/src/body.txt index 8d49efdae4..b76ca1090c 100644 --- a/doc/src/body.txt +++ b/doc/src/body.txt @@ -28,16 +28,14 @@ column is used as the {bstyle} argument for the "atom_style body"_atom_style.html command. {nparticle} | rigid body with N sub-particles | -{rounded/polygon} | 2d convex polygon with N vertices :tb(c=2,s=|) +{rounded/polygon} | 2d polygons with N vertices :tb(c=2,s=|) +{rounded/polyhedron} | 3d polyhedra with N vertices, E edges and F faces :tb(c=2,s=|) The body style determines what attributes are stored for each body and thus how they can be used to compute pairwise body/body or bond/non-body (point particle) interactions. More details of each style are described below. -NOTE: The rounded/polygon style listed in the table above and -described below has not yet been relesed in LAMMPS. It will be soon. - We hope to add more styles in the future. See "Section 10.12"_Section_modify.html#mod_12 for details on how to add a new body style to the code. @@ -175,13 +173,11 @@ The {bflag2} argument is ignored. [Specifics of body style rounded/polygon:] -NOTE: Aug 2016 - This body style has not yet been added to LAMMPS. -The info below is a placeholder. - -The {rounded/polygon} body style represents body particles as a convex -polygon with a variable number N > 2 of vertices, which can only be -used for 2d models. One example use of this body style is for 2d -discrete element models, as described in "Fraige"_#Fraige. Similar to +The {rounded/polygon} body style represents body particles as +a polygon with a variable number N of vertices, which can only be +used for 2d models. Special cases for N = 1 (spheres) and N = 2 +(rods) are also included. One example use of this body style is for 2d +discrete element models, as described in "Fraige"_#Fraige. Similar to body style {nparticle}, the atom_style body command for this body style takes two additional arguments: @@ -203,15 +199,14 @@ x1 y1 z1 ... xN yN zN i j j k k ... -radius :pre +diameter :pre N is the number of vertices in the body particle. M = 6 + 3*N + 2*N + 1. The integer line has a single value N. The floating point line(s) list 6 moments of inertia followed by the coordinates of the N vertices (x1 to zN) as 3N values, followed by 2N vertex indices corresponding to the end points of the N edges, followed by a single -radius value = the smallest circle encompassing the polygon. That -last value is used to facilitate the body/body contact detection. +diameter value = the rounded diameter of the vertices. These floating-point values can be listed on as many lines as you wish; see the "read_data"_read_data.html command for more details. @@ -235,7 +230,10 @@ particles whose edge length is sqrt(2): -0.7071 0.7071 0 0.7071 0.7071 0 0.7071 -0.7071 0 -0 1 1 2 2 3 3 0 +0 1 +1 2 +2 3 +3 0 1.0 :pre The "pair_style body/rounded/polygon"_pair_body_rounded_polygon.html @@ -257,8 +255,8 @@ the body particle itself. These values are calculated using the current COM and orientation of the body particle. For images created by the "dump image"_dump_image.html command, if the -{body} keyword is set, then each body particle is drawn as a convex -polygon consisting of N line segments. Note that the line segments +{body} keyword is set, then each body particle is drawn as a polygon +consisting of N line segments. Note that the line segments are drawn between the N vertices, which does not correspond exactly to the physical extent of the body (because the "pair_style rounded/polygon"_pair_body_rounded_polygon.html defines finite-size @@ -267,6 +265,52 @@ tangent to the spheres). The drawn diameter of each line segment is determined by the {bflag1} parameter for the {body} keyword. The {bflag2} argument is ignored. +The {rounded/polyhedon} body style represents body particles as +a polyhedron with N vertices, E edges and F faces. +Special cases for N = 1 (spheres) and N = 2 (rods) are also valid. +Similar to body style {rounded/polygon}, the atom_style body command for this body +style takes two additional arguments: + +atom_style body rounded/polyhedron Nmin Nmax +Nmin = minimum # of vertices in any body in the system +Nmax = maximum # of vertices in any body in the system :pre + +The Nmin and Nmax arguments are used to bound the size of data +structures used internally by each particle. + +When the "read_data"_read_data.html command reads a data file for this +body style, the following information must be provided for each entry +in the {Bodies} section of the data file: + +atom-ID 3 M +N E F +ixx iyy izz ixy ixz iyz +x1 y1 z1 +... +xN yN zN +0 1 +1 2 +2 3 +... +0 1 2 -1 +0 2 3 -1 +... +1 2 3 4 +diameter :pre + +N is the number of vertices in the body particle. M = 6 + 3*N + 2*E ++ 4*F + 1. The integer line has three values: number of vertices (N), +number of edges (E) and number of faces (F). The floating point line(s) +list 6 moments of inertia followed by the coordinates of the N +vertices (x1 to zN) as 3N values, followed by 2N vertex indices +corresponding to the end points of the E edges, 4*F vertex indices defining F faces. +The last value is the radius value = the rounded diameter of the vertices. +These floating-point values can be listed on as many lines as you +wish; see the "read_data"_read_data.html command for more details. +Because the maxmimum vertices per face is hard-coded to be 4 (i.e. quadrilaterals), +faces with more than 4 vertices need to be split into triangles or quadrilaterals. +For triangular faces, the last index should be set to -1. + :line :link(Fraige) diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index b6dc2e37b5..32f698d9f7 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -8,12 +8,58 @@ pair_style body/rounded/polygon command :h3 +[Syntax:] + +pair_style body/rounded/polygon c_n c_t mu delta_ua cutoff :pre +c_n = normal damping coefficient +c_t = tangential damping coefficient +mu = normal friction coefficient during gross sliding +delta_ua = multiple contact scaling factor +cutoff = global sepration cutoff for interactions (distance units), see below for definition + +[Examples:] + +pair_style body/rounded/polygon ${c_n} ${c_t} ${mu} ${delta_ua} ${cutoff} +pair_coeff * * 100.0 1.0 +pair_coeff 1 1 100.0 1.0 :pre + [Description:] -Note: This feature is not yet implemented. +Style {body/rounded/polygon} is for use with body particles and calculates pairwise +body/body interactions as well as interactions between body and +point-particles. See "Section 6.14"_Section_howto.html#howto_14 +of the manual and the "body"_body.html doc page for more details on +using body particles. + +This pair style is designed for use with the "body/rounded/polygon" body style, +which is specified as an argument to the "atom-style body" command. +See the "body/rounded/polygon"_body.html doc page for more details about the body +styles LAMMPS supports. The pairwise interaction between the rounded polygons is described +in "Fraige"_#Fraige, where the polygons are rounded at the vertices and edges +by circles of diameter a. + +Because the polygons can have different rounded diameters, the cutoff specified in +the pair style command is for the surface separation between two interacting entities +(e.g. vertex-vertex, vertex-edge or edge-edge) excluding their rounded diameters, +i.e. separation = center-center distance - (rounded diameter of i + rounded diameter of j)/2. +The interaction forces and energies are also defined with respect to the rounded surface separation, +instead of center-center distance. + +For style {body/rounded/polygon}, 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: + +k_n (energy/distance^2) +k_na (energy/distance^2) :ul [Related commands:] "pair_style body"_pair_body.html [Default:] none + +:link(Fraige) +[(Fraige)] F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds, +Particuology, 6, 455 (2008). diff --git a/src/BODY/pair_body_rounded_polygon.h b/src/BODY/pair_body_rounded_polygon.h index 09c93b832e..919552305a 100644 --- a/src/BODY/pair_body_rounded_polygon.h +++ b/src/BODY/pair_body_rounded_polygon.h @@ -76,24 +76,31 @@ class PairBodyRoundedPolygon : public Pair { void allocate(); void body2space(int); + // sphere-sphere interaction + void sphere_against_sphere(int i, int j, double delx, double dely, double delz, + double rsq, double k_n, double k_na, + double** x, double** v, double** f, int evflag); + // vertex-edge interaction int vertex_against_edge(int i, int j, double k_n, double k_na, double** x, double** f, double** torque, tagint* tag, Contact* contact_list, int &num_contacts, double &evdwl, double* facc); - void sphere_against_sphere(int i, int j, double delx, double dely, double delz, - double rsq, double k_n, double k_na, - double** x, double** v, double** f, int evflag); + // compute distance between a point and an edge from another body int compute_distance_to_vertex(int ibody, int edge_index, double* xmi, double rounded_radius, double* x0, double x0_rounded_radius, double cut_inner, double &d, double hi[3], double &t, int &contact); - double contact_separation(const Contact& c1, const Contact& c2); + // compute contact forces if contact points are detected void contact_forces(Contact& contact, double j_a, double** x, - double** v, double** f, double** angmom, + double** v, double** f, double** angmom, + // compute the separation between two contacts + double contact_separation(const Contact& c1, const Contact& c2); double** torque, double &evdwl, double* facc); + // accumulate torque to a body given a force at a given point void sum_torque(double* xm, double *x, double fx, double fy, double fz, double* torque); + // helper functions int opposite_sides(double* x1, double* x2, double* a, double* b); void total_velocity(double* p, double *xcm, double* vcm, double *angmom, double *inertia, double *quat, double* vi); From 6b9637eaa3277e134f3d717990966fe03395dfb4 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 26 May 2018 12:34:07 -0500 Subject: [PATCH 115/675] Added doc page for pair body rounded/polyhedron and updated related pages --- doc/src/body.txt | 58 +++++++++++--------- doc/src/pair_body_rounded_polygon.txt | 14 +++-- doc/src/pair_body_rounded_polyhedron.txt | 67 ++++++++++++++++++++++++ 3 files changed, 110 insertions(+), 29 deletions(-) create mode 100644 doc/src/pair_body_rounded_polyhedron.txt diff --git a/doc/src/body.txt b/doc/src/body.txt index b76ca1090c..e936f5409c 100644 --- a/doc/src/body.txt +++ b/doc/src/body.txt @@ -240,34 +240,14 @@ The "pair_style body/rounded/polygon"_pair_body_rounded_polygon.html command can be used with this body style to compute body/body interactions. -For output purposes via the "compute -body/local"_compute_body_local.html and "dump local"_dump.html -commands, this body style produces one datum for each of the N -sub-particles in a body particle. The datum has 3 values: +:line -1 = x position of vertex -2 = y position of vertex -3 = z position of vertex :pre +[Specifics of body style rounded/polyhedron:] -These values are the current position of the vertex within the -simulation domain, not a displacement from the center-of-mass (COM) of -the body particle itself. These values are calculated using the -current COM and orientation of the body particle. - -For images created by the "dump image"_dump_image.html command, if the -{body} keyword is set, then each body particle is drawn as a polygon -consisting of N line segments. Note that the line segments -are drawn between the N vertices, which does not correspond exactly to -the physical extent of the body (because the "pair_style -rounded/polygon"_pair_body_rounded_polygon.html defines finite-size -spheres at those point and the line segments between the spheres are -tangent to the spheres). The drawn diameter of each line segment is -determined by the {bflag1} parameter for the {body} keyword. The -{bflag2} argument is ignored. - -The {rounded/polyhedon} body style represents body particles as +The {rounded/polyhedron} body style represents body particles as a polyhedron with N vertices, E edges and F faces. Special cases for N = 1 (spheres) and N = 2 (rods) are also valid. +This body style is for 3d discrete element models, as described in "Wang"_#Wang. Similar to body style {rounded/polygon}, the atom_style body command for this body style takes two additional arguments: @@ -313,6 +293,36 @@ For triangular faces, the last index should be set to -1. :line +For output purposes via the "compute +body/local"_compute_body_local.html and "dump local"_dump.html +commands, this body style produces one datum for each of the N +sub-particles in a body particle. The datum has 3 values: + +1 = x position of vertex +2 = y position of vertex +3 = z position of vertex :pre + +These values are the current position of the vertex within the +simulation domain, not a displacement from the center-of-mass (COM) of +the body particle itself. These values are calculated using the +current COM and orientation of the body particle. + +For images created by the "dump image"_dump_image.html command, if the +{body} keyword is set, then each body particle is drawn as a polygon +consisting of N line segments. Note that the line segments +are drawn between the N vertices, which does not correspond exactly to +the physical extent of the body (because the "pair_style +rounded/polygon"_pair_body_rounded_polygon.html defines finite-size +spheres at those point and the line segments between the spheres are +tangent to the spheres). The drawn diameter of each line segment is +determined by the {bflag1} parameter for the {body} keyword. The +{bflag2} argument is ignored. + +:line + :link(Fraige) [(Fraige)] F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds, Particuology, 6, 455 (2008). + +:link(Wang) +[(Wang)] J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular Matter, 13, 1 (2011). diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index 32f698d9f7..5352f695b0 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -11,15 +11,16 @@ pair_style body/rounded/polygon command :h3 [Syntax:] pair_style body/rounded/polygon c_n c_t mu delta_ua cutoff :pre + c_n = normal damping coefficient c_t = tangential damping coefficient mu = normal friction coefficient during gross sliding delta_ua = multiple contact scaling factor -cutoff = global sepration cutoff for interactions (distance units), see below for definition +cutoff = global sepration cutoff for interactions (distance units), see below for definition :pre [Examples:] -pair_style body/rounded/polygon ${c_n} ${c_t} ${mu} ${delta_ua} ${cutoff} +pair_style body/rounded/polygon 20.0 5.0 0.0 1.0 0.5 pair_coeff * * 100.0 1.0 pair_coeff 1 1 100.0 1.0 :pre @@ -36,12 +37,13 @@ which is specified as an argument to the "atom-style body" command. See the "body/rounded/polygon"_body.html doc page for more details about the body styles LAMMPS supports. The pairwise interaction between the rounded polygons is described in "Fraige"_#Fraige, where the polygons are rounded at the vertices and edges -by circles of diameter a. +by circles of diameter a. This is a version of discrete element models (DEM) +with multiple contact points. Because the polygons can have different rounded diameters, the cutoff specified in the pair style command is for the surface separation between two interacting entities (e.g. vertex-vertex, vertex-edge or edge-edge) excluding their rounded diameters, -i.e. separation = center-center distance - (rounded diameter of i + rounded diameter of j)/2. +i.e. separation = center-center distance - (rounded diameter of entity i + rounded diameter of entity j)/2. The interaction forces and energies are also defined with respect to the rounded surface separation, instead of center-center distance. @@ -56,10 +58,12 @@ k_na (energy/distance^2) :ul [Related commands:] -"pair_style body"_pair_body.html +"pair_coeff"_pair_coeff.html [Default:] none :link(Fraige) [(Fraige)] F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds, Particuology, 6, 455 (2008). + + diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt new file mode 100644 index 0000000000..cfab0e6d15 --- /dev/null +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -0,0 +1,67 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +pair_style body/rounded/polyhedron command :h3 + +[Syntax:] + +pair_style body/rounded/polyhedron c_n c_t mu delta_ua cutoff :pre + +c_n = normal damping coefficient +c_t = tangential damping coefficient +mu = normal friction coefficient during gross sliding +delta_ua = multiple contact scaling factor +cutoff = global sepration cutoff for interactions (distance units), see below for definition :pre + +[Examples:] + +pair_style body/rounded/polyhedron 20.0 5.0 0.0 1.0 0.5 +pair_coeff * * 100.0 1.0 +pair_coeff 1 1 100.0 1.0 :pre + +[Description:] + +Style {body/rounded/polyhedron} is for use with body particles and calculates pairwise +body/body interactions as well as interactions between body and +point-particles. See "Section 6.14"_Section_howto.html#howto_14 +of the manual and the "body"_body.html doc page for more details on +using body particles. + +This pair style is designed for use with the "body/rounded/polyhedron" body style, +which is specified as an argument to the "atom-style body" command. +See the "body/rounded/polyhedron"_body.html doc page for more details about the body +styles LAMMPS supports. The pairwise interaction between the rounded polygons is described +in "Wang"_#Wang, where the polygons are rounded at the vertices and edges +by circles of diameter a. This is a version of discrete element models (DEM) +with multiple contact points. + +Because the polygons can have different rounded diameters, the cutoff specified in +the pair style command is for the surface separation between two interacting entities +(e.g. vertex-vertex, vertex-edge, vertex-face and edge-edge) excluding their rounded diameters, +i.e. separation = center-center distance - (rounded diameter of entity i + rounded diameter of entity j)/2. +The interaction forces and energies are also defined with respect to the rounded surface separation, +instead of center-center distance. + +For style {body/rounded/polyhedron}, 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: + +k_n (energy/distance^2) +k_na (energy/distance^2) :ul + +[Related commands:] + +"pair_coeff"_pair_coeff.html + +[Default:] none + +:link(Wang) +[(Wang)] J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular Matter, 13, 1 (2011). + From 6438cffa5748b27347ca3e748235885e18cf91ec Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 26 May 2018 13:39:43 -0500 Subject: [PATCH 116/675] Added examples for body rounded/polygon --- examples/body/data.squares | 32 ++++++++++++++++++++++ examples/body/in.squares | 56 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100755 examples/body/data.squares create mode 100755 examples/body/in.squares diff --git a/examples/body/data.squares b/examples/body/data.squares new file mode 100755 index 0000000000..55a3dd09a0 --- /dev/null +++ b/examples/body/data.squares @@ -0,0 +1,32 @@ +LAMMPS data file for polygons: squares of edge length L: Izz = 1/6mL^2 +2 atoms +2 bodies +1 atom types +-6 6 xlo xhi +-6 6 ylo yhi +-0.5 0.5 zlo zhi + +Atoms + +1 1 1 1 0 0 0 +2 1 1 1 5 1 0 + +Bodies + +1 1 19 +4 +1 1 2.67 0 0 0 +-2 -2 0 +-2 2 0 +2 2 0 +2 -2 0 +0.5 +2 1 19 +4 +1 1 2.67 0 0 0 +-2 -2 0 +-2 2 0 +2 2 0 +2 -2 0 +0.5 + diff --git a/examples/body/in.squares b/examples/body/in.squares new file mode 100755 index 0000000000..146ba497e6 --- /dev/null +++ b/examples/body/in.squares @@ -0,0 +1,56 @@ +# 2d rounded polygon bodies + +variable r index 3 +variable steps index 100000 +variable T index 0.5 +variable P index 0.2 +variable seed index 980411 + +units lj +dimension 2 + +atom_style body rounded/polygon 1 6 +atom_modify map array +read_data data.squares + +replicate $r $r 1 + +velocity all create $T ${seed} dist gaussian mom yes rot yes + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 2 +variable c_n equal 0.1 +variable c_t equal 0.1 +variable mu equal 0.1 +variable delta_ua equal 0.5 + +pair_style body/rounded/polygon ${c_n} ${c_t} ${mu} ${delta_ua} ${cut_inner} +pair_coeff * * ${k_n} ${k_na} + +comm_modify vel yes + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +#fix 1 all nve/body +#fix 1 all nvt/body temp $T $T 1.0 +fix 1 all npt/body temp $T $T 1.0 x 0.001 $P 1.0 & + y 0.001 $P 1.0 couple xy + +fix 2 all enforce2d + +compute 1 all body/local id 1 2 3 +dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] + +thermo_style custom step ke pe etotal press +thermo 1000 + +restart 100000 restart1.bin restart2.bin + +#dump 2 all image 10000 image.*.jpg type type zoom 2.0 adiam 1.5 body yes 0 0 +#dump_modify 2 pad 6 + +run ${steps} From f2c302c2c4b7516660eab58d2f022fca9220b8b5 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 26 May 2018 14:59:40 -0500 Subject: [PATCH 117/675] Added fix wall/body/polygon and related doc pages --- doc/src/fix_wall_body_polygon.txt | 100 +++++++++++++++++++++++ doc/src/fix_wall_body_polyhedron.txt | 100 +++++++++++++++++++++++ doc/src/pair_body_rounded_polygon.txt | 4 +- doc/src/pair_body_rounded_polyhedron.txt | 4 +- src/BODY/fix_wall_body_polygon.h | 4 +- 5 files changed, 207 insertions(+), 5 deletions(-) create mode 100644 doc/src/fix_wall_body_polygon.txt create mode 100644 doc/src/fix_wall_body_polyhedron.txt diff --git a/doc/src/fix_wall_body_polygon.txt b/doc/src/fix_wall_body_polygon.txt new file mode 100644 index 0000000000..00d23c207c --- /dev/null +++ b/doc/src/fix_wall_body_polygon.txt @@ -0,0 +1,100 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +fix wall/body/polygon command :h3 + +[Syntax:] + +fix ID group-ID wall/body/polygon k_n c_n c_t wallstyle args keyword values ... :pre + +ID, group-ID are documented in "fix"_fix.html command :ulb,l +wall/body/polygon = style name of this fix command :l +k_n = normal repulsion strength (force/distance units or pressure units - see discussion below) :l +c_n = normal damping coefficient (force/distance units or pressure units - see discussion below) :l +c_t = tangential damping coefficient (force/distance units or pressure units - see discussion below) :l +wallstyle = {xplane} or {yplane} or {zplane} or {zcylinder} :l +args = list of arguments for a particular style :l + {xplane} or {yplane} args = lo hi + lo,hi = position of lower and upper plane (distance units), either can be NULL) + {zcylinder} args = radius + radius = cylinder radius (distance units) :pre +zero or more keyword/value pairs may be appended to args :l +keyword = {wiggle} :l + {wiggle} values = dim amplitude period + dim = {x} or {y} or {z} + amplitude = size of oscillation (distance units) + period = time of oscillation (time units) :pre +:ule + +[Examples:] + +fix 1 all wall/body/polygon 1000.0 20.0 5.0 xplane -10.0 10.0 + +[Description:] + +Bound the simulation domain of systems of body particles of style +body/rounded/polygon with wall(s). All particles in the group interact +with the wall when they are close enough to touch it. +The nature of the interaction between the wall and the polygons is +the same as that between the polygons themselves, which is similar to the Hookean potential. + +This fix is designed for use with the "body/rounded/polygon" body style, +which is specified as an argument to the "atom-style body" command. +The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as those specified with the +"pair_style body/rounded/polygon"_pair_body_rounded_polygon.html commands. + +The {wallstyle} can be planar or cylindrical. The 3 planar options +specify a pair of walls in a dimension. Wall positions are given by +{lo} and {hi}. Either of the values can be specified as NULL if a +single wall is desired. For a {zcylinder} wallstyle, the cylinder's +axis is at x = y = 0.0, and the radius of the cylinder is specified. + +Optionally, the wall can be moving, if the {wiggle} keyword is appended. + +For the {wiggle} keyword, the wall oscillates sinusoidally, similar to +the oscillations of particles which can be specified by the +"fix move"_fix_move.html command. This is useful in packing +simulations of particles. The arguments to the {wiggle} +keyword specify a dimension for the motion, as well as it's +{amplitude} and {period}. Note that if the dimension is in the plane +of the wall, this is effectively a shearing motion. If the dimension +is perpendicular to the wall, it is more of a shaking motion. A +{zcylinder} wall can only be wiggled in the z dimension. + +Each timestep, the position of a wiggled wall in the appropriate {dim} +is set according to this equation: + +position = coord + A - A cos (omega * delta) :pre + +where {coord} is the specified initial position of the wall, {A} is +the {amplitude}, {omega} is 2 PI / {period}, and {delta} is the time +elapsed since the fix was specified. The velocity of the wall is set +to the derivative of this expression. + +[Restart, fix_modify, output, run start/stop, minimize info:] + +None of the "fix_modify"_fix_modify.html options are relevant to this +fix. No global or per-atom quantities are stored by this fix for +access by various "output commands"_Section_howto.html#howto_15. No +parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. + +[Restrictions:] + +This fix is part of the BODY package. It is only enabled if +LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +Any dimension (xyz) that has a wall must be non-periodic. + +[Related commands:] + +"pair_style body/rounded/polygon"_pair_body_rounded_polygon.html + +[Default:] none diff --git a/doc/src/fix_wall_body_polyhedron.txt b/doc/src/fix_wall_body_polyhedron.txt new file mode 100644 index 0000000000..a1eef4df07 --- /dev/null +++ b/doc/src/fix_wall_body_polyhedron.txt @@ -0,0 +1,100 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +fix wall/body/polyhedron command :h3 + +[Syntax:] + +fix ID group-ID wall/body/polyhedron k_n c_n c_t wallstyle args keyword values ... :pre + +ID, group-ID are documented in "fix"_fix.html command :ulb,l +wall/body/polyhedron = style name of this fix command :l +k_n = normal repulsion strength (force/distance units or pressure units - see discussion below) :l +c_n = normal damping coefficient (force/distance units or pressure units - see discussion below) :l +c_t = tangential damping coefficient (force/distance units or pressure units - see discussion below) :l +wallstyle = {xplane} or {yplane} or {zplane} or {zcylinder} :l +args = list of arguments for a particular style :l + {xplane} or {yplane} args = lo hi + lo,hi = position of lower and upper plane (distance units), either can be NULL) + {zcylinder} args = radius + radius = cylinder radius (distance units) :pre +zero or more keyword/value pairs may be appended to args :l +keyword = {wiggle} :l + {wiggle} values = dim amplitude period + dim = {x} or {y} or {z} + amplitude = size of oscillation (distance units) + period = time of oscillation (time units) :pre +:ule + +[Examples:] + +fix 1 all wall/body/polyhedron 1000.0 20.0 5.0 xplane -10.0 10.0 + +[Description:] + +Bound the simulation domain of systems of body particles of style +body/rounded/polyhedron with wall(s). All particles in the group interact +with the wall when they are close enough to touch it. +The nature of the interaction between the wall and the polygons is +the same as that between the polygons themselves, which is similar to the Hookean potential. + +This fix is designed for use with the "body/rounded/polyhedron" body style, +which is specified as an argument to the "atom-style body" command. +The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as those specified with the +"pair_style body/rounded/polyhedron"_pair_body_rounded_polygon.html commands. + +The {wallstyle} can be planar or cylindrical. The 3 planar options +specify a pair of walls in a dimension. Wall positions are given by +{lo} and {hi}. Either of the values can be specified as NULL if a +single wall is desired. For a {zcylinder} wallstyle, the cylinder's +axis is at x = y = 0.0, and the radius of the cylinder is specified. + +Optionally, the wall can be moving, if the {wiggle} keyword is appended. + +For the {wiggle} keyword, the wall oscillates sinusoidally, similar to +the oscillations of particles which can be specified by the +"fix move"_fix_move.html command. This is useful in packing +simulations of particles. The arguments to the {wiggle} +keyword specify a dimension for the motion, as well as it's +{amplitude} and {period}. Note that if the dimension is in the plane +of the wall, this is effectively a shearing motion. If the dimension +is perpendicular to the wall, it is more of a shaking motion. A +{zcylinder} wall can only be wiggled in the z dimension. + +Each timestep, the position of a wiggled wall in the appropriate {dim} +is set according to this equation: + +position = coord + A - A cos (omega * delta) :pre + +where {coord} is the specified initial position of the wall, {A} is +the {amplitude}, {omega} is 2 PI / {period}, and {delta} is the time +elapsed since the fix was specified. The velocity of the wall is set +to the derivative of this expression. + +[Restart, fix_modify, output, run start/stop, minimize info:] + +None of the "fix_modify"_fix_modify.html options are relevant to this +fix. No global or per-atom quantities are stored by this fix for +access by various "output commands"_Section_howto.html#howto_15. No +parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. + +[Restrictions:] + +This fix is part of the BODY package. It is only enabled if +LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +Any dimension (xyz) that has a wall must be non-periodic. + +[Related commands:] + +"pair_style body/rounded/polyhedron"_pair_body_rounded_polygon.html + +[Default:] none diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index 5352f695b0..00896b4c7b 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -53,8 +53,8 @@ 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: -k_n (energy/distance^2) -k_na (energy/distance^2) :ul +k_n (energy/distance^2 units) +k_na (energy/distance^2 units) :ul [Related commands:] diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index cfab0e6d15..9a5c20ddb6 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -53,8 +53,8 @@ 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: -k_n (energy/distance^2) -k_na (energy/distance^2) :ul +k_n (energy/distance^2 units) +k_na (energy/distance^2 units) :ul [Related commands:] diff --git a/src/BODY/fix_wall_body_polygon.h b/src/BODY/fix_wall_body_polygon.h index 3521c6c797..b71dcb0683 100644 --- a/src/BODY/fix_wall_body_polygon.h +++ b/src/BODY/fix_wall_body_polygon.h @@ -45,7 +45,9 @@ class FixWallBodyPolygon : public Fix { protected: int wallstyle,pairstyle,wiggle,axis; - double kn,c_n,c_t; + double kn; // normal repulsion strength + double c_n; // normal damping coefficient + double c_t; // tangential damping coefficient double lo,hi,cylradius; double amplitude,period,omega; double dt; From 7aab9327318b3fb61b058b8c1a840791c5a3628f Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Tue, 29 May 2018 15:49:15 -0500 Subject: [PATCH 118/675] Fixed typos in pair body rounded/polygon header file --- src/BODY/pair_body_rounded_polygon.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/BODY/pair_body_rounded_polygon.h b/src/BODY/pair_body_rounded_polygon.h index 919552305a..aabe86270c 100644 --- a/src/BODY/pair_body_rounded_polygon.h +++ b/src/BODY/pair_body_rounded_polygon.h @@ -92,11 +92,13 @@ class PairBodyRoundedPolygon : public Pair { double &d, double hi[3], double &t, int &contact); // compute contact forces if contact points are detected - void contact_forces(Contact& contact, double j_a, double** x, - double** v, double** f, double** angmom, + void contact_forces(Contact& contact, double j_a, + double** x, double** v, double** angmom, double** f, + double** torque, double &evdwl, double* facc); + // compute the separation between two contacts double contact_separation(const Contact& c1, const Contact& c2); - double** torque, double &evdwl, double* facc); + // accumulate torque to a body given a force at a given point void sum_torque(double* xm, double *x, double fx, double fy, double fz, double* torque); From 6457e5eedbc7a6639cd1df0559da674202b2cbd7 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 29 May 2018 14:51:21 -0600 Subject: [PATCH 119/675] Commit1 JT 052918 modifs files --- examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc | 1 - examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 3 +- examples/SPIN/iron/in.spin.iron | 2 +- src/SPIN/atom_vec_spin.cpp | 4 +- src/SPIN/fix_nve_spin.cpp | 8 +- src/SPIN/fix_precession_spin.cpp | 6 +- src/SPIN/fix_precession_spin.h | 2 +- src/SPIN/pair_spin_dmi.cpp | 14 +-- src/SPIN/pair_spin_exchange.cpp | 17 ++-- src/SPIN/pair_spin_magelec.cpp | 97 ++++++++++----------- src/SPIN/pair_spin_neel.cpp | 14 +-- 11 files changed, 80 insertions(+), 88 deletions(-) diff --git a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc index c1d7e4f903..fd5eeb38b8 100644 --- a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc +++ b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc @@ -61,4 +61,3 @@ compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] run 1000 - diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index e712e511be..76d41f724d 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -19,7 +19,8 @@ create_atoms 1 box mass 1 58.93 -set group all spin/random 31 1.72 +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 velocity all create 100 4928459 rot yes dist gaussian #pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 diff --git a/examples/SPIN/iron/in.spin.iron b/examples/SPIN/iron/in.spin.iron index 0f40a5af21..758cc6c589 100644 --- a/examples/SPIN/iron/in.spin.iron +++ b/examples/SPIN/iron/in.spin.iron @@ -53,4 +53,4 @@ thermo 50 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump_iron.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] -run 100000 +run 50000 diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 369ce8671e..22cd78036b 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -889,12 +889,10 @@ void AtomVecSpin::pack_data(double **buf) int AtomVecSpin::pack_data_hybrid(int i, double *buf) { - buf[0] = sp[i][0]; buf[1] = sp[i][1]; buf[2] = sp[i][2]; buf[3] = sp[i][3]; - return 4; } @@ -910,7 +908,7 @@ void AtomVecSpin::write_data(FILE *fp, int n, double **buf) "%-1.16e %d %d %d\n", (tagint) ubuf(buf[i][0]).i,(int) ubuf(buf[i][1]).i, buf[i][2],buf[i][3],buf[i][4], - buf[i][5],buf[i][6],buf[i][7],buf[i][8],buf[i][9], + buf[i][5],buf[i][6],buf[i][7],buf[i][8], (int) ubuf(buf[i][10]).i,(int) ubuf(buf[i][11]).i, (int) ubuf(buf[i][12]).i); } diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index bf45b8cb41..699426de9c 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -69,9 +69,9 @@ enum{NONE}; FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), + pair(NULL), spin_pairs(NULL), rsec(NULL), stack_head(NULL), stack_foot(NULL), - backward_stacks(NULL), forward_stacks(NULL), - pair(NULL), spin_pairs(NULL) + backward_stacks(NULL), forward_stacks(NULL) { if (lmp->citeme) lmp->citeme->add(cite_fix_nve_spin); @@ -248,8 +248,8 @@ void FixNVESpin::init() nlocal_max = atom->nlocal; stack_head = memory->grow(stack_head,nsectors,"NVE/spin:stack_head"); stack_foot = memory->grow(stack_foot,nsectors,"NVE/spin:stack_foot"); - forward_stacks = memory->grow(forward_stacks,nlocal_max,"NVE/spin:forward_stacks"); backward_stacks = memory->grow(backward_stacks,nlocal_max,"NVE/spin:backward_stacks"); + forward_stacks = memory->grow(forward_stacks,nlocal_max,"NVE/spin:forward_stacks"); if (nlocal_max == 0) error->all(FLERR,"Incorrect value of nlocal_max"); @@ -385,8 +385,8 @@ void FixNVESpin::pre_neighbor() if (nlocal_max < nlocal) { // grow linked lists if necessary nlocal_max = nlocal; - forward_stacks = memory->grow(forward_stacks,nlocal_max,"NVE/spin:forward_stacks"); backward_stacks = memory->grow(backward_stacks,nlocal_max,"NVE/spin:backward_stacks"); + forward_stacks = memory->grow(forward_stacks,nlocal_max,"NVE/spin:forward_stacks"); } for (int j = 0; j < nsectors; j++) { diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index 4ee5e87540..412b9d903b 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -200,7 +200,7 @@ void FixPrecessionSpin::post_force(int vflag) } if (aniso_flag) { // compute magnetic anisotropy - compute_anisotropy(i,spi,fmi); + compute_anisotropy(spi,fmi); emag -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); emag *= hbar; } @@ -219,7 +219,7 @@ void FixPrecessionSpin::compute_single_precession(int i, double spi[3], double f compute_zeeman(i,fmi); } if (aniso_flag) { - compute_anisotropy(i,spi,fmi); + compute_anisotropy(spi,fmi); } } @@ -236,7 +236,7 @@ void FixPrecessionSpin::compute_zeeman(int i, double fmi[3]) /* ---------------------------------------------------------------------- */ -void FixPrecessionSpin::compute_anisotropy(int i, double spi[3], double fmi[3]) +void FixPrecessionSpin::compute_anisotropy(double spi[3], double fmi[3]) { double scalar = nax*spi[0] + nay*spi[1] + naz*spi[2]; fmi[0] += scalar*Kax; diff --git a/src/SPIN/fix_precession_spin.h b/src/SPIN/fix_precession_spin.h index 2a616b61f0..9e7bd1a830 100644 --- a/src/SPIN/fix_precession_spin.h +++ b/src/SPIN/fix_precession_spin.h @@ -40,7 +40,7 @@ class FixPrecessionSpin : public Fix { int zeeman_flag, aniso_flag; void compute_single_precession(int, double *, double *); void compute_zeeman(int, double *); - void compute_anisotropy(int, double *, double *); + void compute_anisotropy(double *, double *); protected: int style; // style of the magnetic precession diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index c89ddd085a..5f735cd1a8 100755 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -46,7 +46,8 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -PairSpinDmi::PairSpinDmi(LAMMPS *lmp) : PairSpin(lmp) +PairSpinDmi::PairSpinDmi(LAMMPS *lmp) : PairSpin(lmp), +lockfixnvespin(NULL) { single_enable = 0; no_virial_fdotr_compute = 1; @@ -103,9 +104,10 @@ void PairSpinDmi::settings(int narg, char **arg) void PairSpinDmi::coeff(int narg, char **arg) { - if (!allocated) allocate(); + // check if args correct + if (strcmp(arg[2],"dmi") != 0) error->all(FLERR,"Incorrect args in pair_style command"); if (narg != 8) @@ -239,16 +241,15 @@ void PairSpinDmi::compute(int eflag, int vflag) i = ilist[ii]; itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; // loop on neighbors @@ -280,7 +281,7 @@ void PairSpinDmi::compute(int eflag, int vflag) local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; - // compute magnetic and mechanical components of soc_dmi + // compute dmi interaction if (rsq <= local_cut2) { compute_dmi(i,j,eij,fmi,spj); @@ -296,7 +297,6 @@ void PairSpinDmi::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - // check newton pair => see if needs correction if (newton_pair || j < nlocal) { f[j][0] -= fi[0]; f[j][1] -= fi[1]; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 36708293f7..39c5823d03 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -49,7 +49,6 @@ using namespace MathConst; PairSpinExchange::PairSpinExchange(LAMMPS *lmp) : PairSpin(lmp), lockfixnvespin(NULL) { - hbar = force->hplanck/MY_2PI; single_enable = 0; no_virial_fdotr_compute = 1; lattice_flag = 0; @@ -203,7 +202,7 @@ void *PairSpinExchange::extract(const char *str, int &dim) void PairSpinExchange::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; - double evdwl,ecoul; + double evdwl, ecoul; double xi[3], rij[3], eij[3]; double spi[3], spj[3]; double fi[3], fmi[3]; @@ -233,15 +232,16 @@ void PairSpinExchange::compute(int eflag, int vflag) for (ii = 0; ii < inum; ii++) { i = ilist[ii]; + itype = type[i]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; - itype = type[i]; // loop on neighbors @@ -293,13 +293,10 @@ void PairSpinExchange::compute(int eflag, int vflag) } if (eflag) { - if (rsq <= local_cut2) { - evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); - evdwl *= hbar; - } + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl *= hbar; } else evdwl = 0.0; - if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); } diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index a4a17bd1db..7b6fd32333 100755 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -46,9 +46,9 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -PairSpinMagelec::PairSpinMagelec(LAMMPS *lmp) : PairSpin(lmp) +PairSpinMagelec::PairSpinMagelec(LAMMPS *lmp) : PairSpin(lmp), +lockfixnvespin(NULL) { - hbar = force->hplanck/MY_2PI; single_enable = 0; no_virial_fdotr_compute = 1; lattice_flag = 0; @@ -103,42 +103,45 @@ void PairSpinMagelec::settings(int narg, char **arg) void PairSpinMagelec::coeff(int narg, char **arg) { - const double hbar = force->hplanck/MY_2PI; - if (!allocated) allocate(); - if (strcmp(arg[2],"magelec")==0) { - if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double magelec = (force->numeric(FLERR,arg[4])); - double mex = force->numeric(FLERR,arg[5]); - double mey = force->numeric(FLERR,arg[6]); - double mez = force->numeric(FLERR,arg[7]); + // check if args correct + + if (strcmp(arg[2],"magelec") != 0) + error->all(FLERR,"Incorrect args in pair_style command"); + if (narg != 8) + error->all(FLERR,"Incorrect args in pair_style command"); + + int ilo,ihi,jlo,jhi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + + const double rij = force->numeric(FLERR,arg[3]); + const double magelec = (force->numeric(FLERR,arg[4])); + double mex = force->numeric(FLERR,arg[5]); + double mey = force->numeric(FLERR,arg[6]); + double mez = force->numeric(FLERR,arg[7]); - double inorm = 1.0/(mex*mex+mey*mey+mez*mez); - mex *= inorm; - mey *= inorm; - mez *= inorm; - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_magelec[i][j] = rij; - ME[i][j] = magelec/hbar; - ME_mech[i][j] = magelec; - v_mex[i][j] = mex; - v_mey[i][j] = mey; - v_mez[i][j] = mez; - setflag[i][j] = 1; - count++; - } + double inorm = 1.0/(mex*mex+mey*mey+mez*mez); + mex *= inorm; + mey *= inorm; + mez *= inorm; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + cut_spin_magelec[i][j] = rij; + ME[i][j] = magelec/hbar; + ME_mech[i][j] = magelec; + v_mex[i][j] = mex; + v_mey[i][j] = mey; + v_mez[i][j] = mez; + setflag[i][j] = 1; + count++; } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else error->all(FLERR,"Incorrect args in pair_style command"); + } + if (count == 0) + error->all(FLERR,"Incorrect args in pair_style command"); } @@ -210,8 +213,7 @@ void PairSpinMagelec::compute(int eflag, int vflag) double evdwl, ecoul; double xi[3], rij[3], eij[3]; double spi[3], spj[3]; - double fi[3], fj[3]; - double fmi[3], fmj[3]; + double fi[3], fmi[3]; double local_cut2; double rsq, inorm; int *ilist,*jlist,*numneigh,**firstneigh; @@ -240,11 +242,11 @@ void PairSpinMagelec::compute(int eflag, int vflag) i = ilist[ii]; itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; @@ -254,6 +256,7 @@ void PairSpinMagelec::compute(int eflag, int vflag) for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; + jtype = type[j]; spj[0] = sp[j][0]; spj[1] = sp[j][1]; @@ -262,21 +265,16 @@ void PairSpinMagelec::compute(int eflag, int vflag) evdwl = 0.0; fi[0] = fi[1] = fi[2] = 0.0; - fj[0] = fj[1] = fj[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - fmj[0] = fmj[1] = fmj[2] = 0.0; - rij[0] = rij[1] = rij[2] = 0.0; rij[0] = x[j][0] - xi[0]; rij[1] = x[j][1] - xi[1]; rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); - eij[0] *= inorm; - eij[1] *= inorm; - eij[2] *= inorm; - - jtype = type[j]; + eij[0] = inorm*rij[0]; + eij[1] = inorm*rij[1]; + eij[2] = inorm*rij[2]; local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; @@ -296,11 +294,10 @@ void PairSpinMagelec::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - // check newton pair => see if needs correction if (newton_pair || j < nlocal) { - f[j][0] -= fj[0]; - f[j][1] -= fj[1]; - f[j][2] -= fj[2]; + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; + f[j][2] -= fi[2]; } if (eflag) { diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 408522045f..23328736b1 100755 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -47,7 +47,8 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -PairSpinNeel::PairSpinNeel(LAMMPS *lmp) : PairSpin(lmp) +PairSpinNeel::PairSpinNeel(LAMMPS *lmp) : PairSpin(lmp), +lockfixnvespin(NULL) { single_enable = 0; no_virial_fdotr_compute = 1; @@ -108,8 +109,6 @@ void PairSpinNeel::settings(int narg, char **arg) void PairSpinNeel::coeff(int narg, char **arg) { - const double hbar = force->hplanck/MY_2PI; - if (!allocated) allocate(); // check if args correct @@ -246,11 +245,13 @@ void PairSpinNeel::compute(int eflag, int vflag) for (ii = 0; ii < inum; ii++) { i = ilist[ii]; + itype = type[i]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; @@ -285,7 +286,7 @@ void PairSpinNeel::compute(int eflag, int vflag) local_cut2 = cut_spin_neel[itype][jtype]*cut_spin_neel[itype][jtype]; - // compute magnetic and mechanical components of neel + // compute neel interaction if (rsq <= local_cut2) { compute_neel(i,j,rsq,eij,fmi,spi,spj); @@ -301,7 +302,6 @@ void PairSpinNeel::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - // check newton pair => see if needs correction if (newton_pair || j < nlocal) { f[j][0] -= fi[0]; f[j][1] -= fi[1]; From f2a6aa249f1cbd28a77ce2744b337d3c7ea20cb2 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 29 May 2018 17:18:45 -0600 Subject: [PATCH 120/675] Commit2 JT 052918: doc --- doc/src/Eqs/pair_spin_dmi_interaction.jpg | Bin 7161 -> 6316 bytes doc/src/Eqs/pair_spin_dmi_interaction.tex | 7 +++++- doc/src/Eqs/pair_spin_me_interaction.jpg | Bin 23005 -> 10561 bytes doc/src/Eqs/pair_spin_neel_functions.jpg | Bin 0 -> 5936 bytes doc/src/Eqs/pair_spin_neel_functions.tex | 13 ++++++++++ doc/src/Eqs/pair_spin_neel_interaction.jpg | Bin 0 -> 11029 bytes doc/src/Eqs/pair_spin_neel_interaction.tex | 16 ++++++++++++ doc/src/compute_spin.txt | 8 +++--- doc/src/fix_langevin_spin.txt | 9 ++++--- doc/src/fix_nve_spin.txt | 2 +- doc/src/pair_spin_dmi.txt | 28 +++++---------------- doc/src/pair_spin_me.txt | 2 +- doc/src/pair_spin_neel.txt | 25 +++++++++--------- 13 files changed, 64 insertions(+), 46 deletions(-) create mode 100644 doc/src/Eqs/pair_spin_neel_functions.jpg create mode 100644 doc/src/Eqs/pair_spin_neel_functions.tex create mode 100644 doc/src/Eqs/pair_spin_neel_interaction.jpg create mode 100644 doc/src/Eqs/pair_spin_neel_interaction.tex diff --git a/doc/src/Eqs/pair_spin_dmi_interaction.jpg b/doc/src/Eqs/pair_spin_dmi_interaction.jpg index 74807b105d711c2724629968b417c043a852f18b..1d15b2199add75eefecb424f75ea2dbd363a1afe 100644 GIT binary patch literal 6316 zcmb7IcQl+`w|{1g-o_ZB*CA@6jNbbU5nT|XGkPb8sEOW2i4vkFL~jwD=!78AMTi;+ z5zz%#^1k2u-S3Zk@49>Kb)J2GXP>>!diGxXd4A_|=5h&us;i<^0nnA~gZ2U7avo3u zaKPZ-dL@u6#U;SSg+OqL@bU2oNQg*Ch>3`aNy%VPQZfoMVqz#Yl!6jYMMXtIevO72 zP6LBe!G8w<;au&3;1c5E62eJ|N#Xx*xqJgq5CEE>cpMM~0Hy%pP=GFb00saA;QT%< z2>6#kaPjcLI3R+nRrr5{|6abF14wW{02qn`1pv@R>0hu=alZ4v_W$#wAj5d;_WU#b z+W?u`zf;yT(gb$xM#KStVEw^|KP!0mOSuwCew!@MMkDtJ2?|A67>+mboDVS}z=jRm z>J+vM^^j`48n6ekwBW;Tl7!C2<`JOkgotBk=!nbw|UNyfunB5(0a_s zFmkQ9E0TwF(AjDbuX?p#lY6kYWuc^+&_m{ zp#Z=>HVnObm307sSZ_UK)_wY#9cO$MYmgoS0J!LXzabF(4W))vb%gURw2^C+UG<;1 z{|pe_jPdZUJ=ryXNUO}%&c7x2Dj_^j01O6$z_<`F&R;MD_bOL-0F;sfPQ@aC52Kc6 z(`H8?uhK+tl{^qG_?+sD^m@ZRU#-N0H7ad=W`m^L&6(Qd2mRHwM&k>xQMo7A*Zm?W z2JFUqTc6z{Fzn0us^!tmmn?w+= zugVE@zXEpjzQ@K{i8rkC)DXwX;LrItR0qjB0kdL~Ua4S89NaJA#eu?fCsGD-2Zl_; zIab*^60u|NBsI3b9QZ^;OoH=A+he~F?6p#VYvYn_)Xe4I5nGpjK;VRWb-KCu@x4Kr zv)2BKHFw^_>5gF^3l}E^)2>*kt)Fu&!5P7ds@LRtz0=o35v`-e?abtPN;-GNbDqV+ zqTXUBNk`#9kmMX&X|JD|JcFxBRJjJPvG=cBLt(b>+^WOofo8h;2?isHTGll}4@y%W znbZpTc)#X>^qDWYke&Y8TXl+R{4r_TC&&<(^Qzjk#K0s};>ddEYjwZK_AP~q44f!e ze1d0;^{97ym1MOd=}msm-CHTLbn@+@bw3=0dQCjQYHA1bmhUT>C-HLKz)l<5h%xLh zuCS*23&$2BVmCe8pN!=ieVZ878&}55HzW>yCZ%N43VD}^|12x>&5@s3o6vJgvuTW( z6BVykX`VD+u&4m9BlzKVS#PRGB8hi(z_-RlA(N7u?9DsrHJ-!=O`d4T`%KwVWe2n@z0z{A7GCHx%)1jd0-05DuiRzU?Q zoJ~l_(jyd)g ziVVuhB-2vfC6xpY7j(3)Y8=cho4e*Daf%!{f)!cxC`69%P?r`S?x|6~XOo+H@$-kN zJl04ZYTww_zj507!QgHEZv3N#Z@tr~H{JCN51&!*Nd= z=y+<8hAfnk<7wdI-8v+N!5G{C&uRX zx?hi4cYzr^Mu~VQThX`G&f*&yBuV+c`lFIxgW{y34mxHjG0g#kFec9mVKc?W#hvaL zvxm_!k1LWYkTtlIf-6p-iAKzB&w*g#Hr%i*>JUDEZ0i4+F6tDU=d&wap-HeQ56T(% z?8owbWp{hFY`sCxxgBHmR`AZP`jnpf<)ET6*W|Ny(VCwJW)f*mYoc$HOc_KJ6%gFz zwq_PzLz^OfS+N>kYL=8@a4Y8*Z_cDo{F{AVt{b&%PhBWcsNPjWz};OCvTO7n#mM>& z^SiokOQIKi9#tRe&yk62+4Oa`%tA7%AG%T2OZV*Xk3CLhu3a2m#1Vhr>588ys=nAs zS7V00>YtnnF33I&GJGMbp87?B`>f)GK_9ctN?(~Y-hYQ(U{T!k@Y_Kf?L9!hafd|T zVB|ns)yBye6l3xXlSW07IC3BwBR)7sOi{n~{Zmvvw26dpv@kDyyGO^d$i?=&AR%VH zF}XOY!GK{c=DF)rH>>{Og$rh~vJnH(R|PJ``e#T6s$f|;)$?gE%=I2c_ zF0Jwk>g@k?CVk&!vH7-f0Oj?XFtO$Wrg>-nV^;=r&j(VyxBE{dxJmgHZQ@r*s~-<} znYt`W31(XPJ1ee6xqNbVKuS9lT~NkIrhnBWLOtj`;o7p9fDbalpQEhSN3838ngjj( zEXFx(k#w7JKIA3V!MppfJU%_};!Njxy$tDn8COW@skzh7l!$zfJkUjtzAXRrfTPE7 zLDI1H;#~rA%}lutt)v3*)4IlXs4LYq8LM?O#g|XKJx~?qS9;Qd#=O}&JH6dOe3+|> zHDlI5#MigHDS8^*&2KcD#?0 zRmSQg-_()5t#%-~XR}TUfy^8Bn(_;J20UvU6wx0Uy^h_YecY3{!2GUp*?~PqX~eIW zklA1kbQJjdzU#%%cu`wzspTF!p$e5Pdy;Y7gnUm8=W1>`M~RIWJdEv9}x{k&b z|9luyRhc)(ui`ika~cr#oQM;RH}Upco1RxoV**lFMXKn%!HxBgbl{O64Xr<9kb(AP z409|}cWr+?dKc2;-p7|*V!+rVbW%l&Y z$|R;r&AV7NsYEQxlBUt~#>W`JOMuV8{1^Vl=Z`BbB!~Q|_l9n`C#Izcv>Q^hW9dXkInz&qGKZXR zcK9KZZ9I~2o>nO@o+YLua_t7;j>Z|gH1V?}w}uE+7u#m6li%}FeW|E&m1RhS^}H>U z7#$By}iZlj|i@PDN=J)<2g7wIZfp9U>y^38bk zpq;k`E~MXr=8LXq$xfojFv*9W7U#>rT_SJVQ9EpLWFb>;CyCVZhFYE+?`>y8JNQ>|_KbLR)2_$ZMNbm2oF(}51Fs{ zRrod733@IBAer59*n+bUkMwM4c=6%|mI*FIm@hs}Jq6o%^X}E7A2WN%kf|hgl2ktT zWVDCbd(RHaDXV;v{mIzd-$7P3DUGTpjg|0oI@mn>ZpDMWI~{PZx#TmHn?0Z!A~W-t zpSJSZ%j(Gv@-xZVMRoPq`g#{<;pLaE562`2WjDa~B{yZ5A}U5L?DtM@@?Oh zo+hlPPh;|qFyyW49Q%W9;c}y?zOtv{3KMU+@#pZ2lj3>iOMkI8o76;ShiPpLmL~}* z$xf2aIOK-%G^@?#dc(S1xYS=03#&0@&!fr4b})V3ON{p35A8Xg7Z8$`_$n@waY_r; zBAiWRH8zyi>yXWsBR4|j9=pr+ks?j1Q3TiXe{Kq;eblS=INB}1gYmep32vHC_U~&Mn*AuFod%BlN^mXB?O`j`(z=7rVq~4R z^A|EMj9^_>X8H1N#i>;-nL70ylM0XtceuW0t-&}G?o*>qKI)op>BqYIUKwJ$=J6QppJ1XaOeIUxdjV{6odZ z`!4Z-JX3X`!zF+(my9Es16%^WO7S5?(&j}RQVBssdw2uMvel8)V4mcg>>R>gQe@7!D%;!R((2Bw0;1?&?d z(AnioL$#~D?d$>ufl)TKrzK#+kOAL`y_3;pX#NX%A=TYCGTo9AWnV7L@OraeXBLML zP)TpO>FMp)!1{hs$~13zL_sm%J#cKU(-Wtk6Z~LSzg4pw;_evG*J@ddE|WjP9g3$EWi!Cy(V^V={2n`;DX7Si00xqEMmYW56ABh7u+A(eF_*oaJD zYk41hdxWCrD?e%L2m{7Kd*5LXo(>g9Ds`|El`uX}ZP{s;bQCvD{dZ%%G*zdUQo@YR zxQ}Sj%C@Pm?CkOa;Kc$L?_A`3Np9`FKKwAbg*C|Gj)cz<@2KaXhY}wc^^)X|7Yyi& zr?=T}H>z!=3K}lU^!9(!9d9CfQc)3}IA^;n5Ozef_%4UfagI>&IYFod|A+eq+WsOD ztO+^~Mjo1}cfyA0zjDfa=P>Vd26Rg4s1%hKP@MyF1a1oAc^2eT!BPXRh+-w zwEh>8_M65*|4$nCmj@^Gs_9?dPC%~iy8a@CS2s;p1WpIaV(B3eDzBZK-&ONZ>xW*D zbuDq{@zN1Q(+>`!Uj=c=V`?l^F4}DphjxLN0>I1Aw4o69qP(y8oBWgvk@glcAHMru z0_OD7g?Z*_BoxyDHWNxwR07+cx@bI#6H3x+ghZ&_$cWo*kKkcMCEfr}yO78nTcA=M zLJYTm=|=0DRFJ9SY6%O<)wKe|hhqUE?&$P?E|KQWYC+07%t!Z)Fc6}-L=zpGX+$aL z5(;{FbGR>F25CL;G~9}i@>-QnU8lSU0So?p?GvbZv5;VzG5)+`5q;r|LFYFG>%Egp zAT}Z{QXT@l`N3g_cQL3|=kJS~Y@`n7gUZVvLD&cOyd}h8Of>gp9Q}4bBVNq7XI`i8 zrn_a6qvA2h*r7C8HJaxbMvu*}k0UPn=5}8@x^8ty_YH;tE5x-iJX7r3Xf1l^ee?vw zs3Ohk7D9o;MUckDVO=swN&aEIjO=|iy(7N0)Em-|g*+6GIn$fiUJCe^wuRYW7*WT1 ze9@=MyabruU^hlt!j7+fdfqo-X~AxhudyIotr~Mz8$FaABWYz3clboUday6=MxMeJ z+$!Pl^C*$-N(sMOLkm0WEE{;1e<2f?nTFMjCy*{3>O zp(as!sB7a@W+F==obEAAlHP8G5N&ZXeHqRP>^#JLKvp^dF3w z+;m%yT-&Z7`qm?5r}aS86ryuKihY8N{`2b)W68Pw zyu+ACvHRStv?T1dMRYuxq86(Lk*Fl*Ys6b zGBjrmbu)hsogxe#RJ~wl#Q~te5?R|B1ZJ-oH1VKvjSN30Yb1yWpi2gAifiY=K2W^X zx!L`##eNDudrjjjAz~*qTiIg9E~#_K_Gy?dMSdwc5I3plCXvTNG&$9OK6gi&T1g{I zd~AnC%V|SXP*B`5km+@Z3q zF>)B@R`U?%Nhc)naHxMEXa)ttGg-~c{ZXJ-!B{TmC%B`Px$>fXAyjuj zZj6SHyfGs&OiU~&L{g&FFZz~Z43YEkFSG~oxJ@`w8lkF?4Xe-HbQlM1X_H58a_8V@ zOe|VHfO~ZVC!biephkt)fOqCYq)~Ju6fCqQRc;U-PanQNBkGW!|&T7_Lm@)VfpL z+$ojU5M&Esp@Q_r3=+T%Dkly0E*w*lOE;Nce!(~DE0kWgo>1=Psrx7 zJ9J`|a@hLV1?a|j^6Kt}1V4H5nVQs^h-oxQuQOO zwP%XM`-cn?-2yU{rQYYQ#o0Z&-0bz#>DZqh;yCYZkSzSf?T@H+;z>!z*FL)|*2jN$ zgs@gK>T<1gsAq5)anXM+;Npr>#QUfUuM+V)*T|p}SEU>5!0?mXMHUK#(4gR-{Wp8YCnHBoqM= zkWxxP1TOyL_x*qCTld~|-?P`d_Ph79_c~{tx1N1DcexB8)s@wh0T2iT3|&3ILgk_m1w?H(JZRgtx%n(70g007Yq z1__gdjSXe?E&wd`L4fLjzK+~+;$8u99sN@P@IE+lxu)`t`Rc0xKsnumXi)JV>VI@d z#jjx1r>b5ab1Y+m{(U1}*tq`)ea($)P+0=pz3o!%3xE8%Y3o3=yUw+5^!E1nV3Q}o`WnNAJe^NKX0DrpAO3k$JiBshi{ZT z&%VDO&l=nSsBcHOoQjH{taAOJ=U-7gs`-4|!%;VhcL81$H&7ZX7S|C&6p(vjr7uxf zdvb=^TWZYA@g*3v0blponBL=k`bkaWdEd|5ekcQf0oyzQio~bVPA|59DT#8-QV~BW zNh6znl<2!byCtC5lV>eh6>L)2QESd6O})`r)_Ty17K+aoW3F8^vAY+YqgYhdW}U3Q zanIy5tXk_BFEq*zf)^|5N@k z&962>SrEPK|A4q!Gyg(pUM(RI7z~Bs6C&`Tf0BT}cn~sx97=JWUk=G4pl9t#$;_%B zo>~Z_5)_u#jlkA+PonvRFbW1Xb?+2y)6$E2zI#R1PwoF}iNR#S=gQgGk_ApKGj7Gg z;law281uS37ds0>&9e{`{_g3Bx9T}aP$W|oTYsb3(3Q#%QudbL}ka_u-crB1`E$VYe=Z=z;Rz4@C zM61mb`F_N?o)qKMr4G85QtyWYtACBQa%IPc=a|R6 zFeKS`y*+MFVwaSSuUp6*UocB5+V(y!u#$o0dwcbBy)1V5i=8$Zbw zNu*SsU34LR+rO8im{3b|u%FnS{Na=P^_QhmZ(uX4WwBC4D5WCEle;48KN#|F#ZNW_ zsypddSem>yqMgBA6Zq)A`zcsWPo)H1p20R=UKuA)?M^?V&#zI;LVL%))1YgQ^?jW5 zHSK=(=ji&EC##mJ-#$o-8Oqt|SxG4@f2*w24%X=v)!Pw^sDf$P>?#~+uS(-*aD3fe z@zsZ4e+_=nj01dyA`+XfY8LYZe1-mV6Dd~LYImTAO>E5eubIRu;#*G1TqW6!g*+`P71?g}* zXo!hd;_C<1eR?W-RFa=uG)U?lXHh3p$-g5X8o?c=gs@7XURAXEDxviQ8Tmfs3S3|8 zrIcau)@;fN)mE%EuRXtAOTGkT`O9uLm(Z&z(f(*|raE?a!?I>JHj}ywg-G>sw`$bo z(>@mYv08Kq)J+c2d{upa2IH#KOk|LvJdouduEl;BTPko65>{N$cG`Mp#G~>v;v=DD zZ^Me!%#io>5C==Eo!6FvTWguQG~62A4U1`-{RcKv-cd*MuRlKCO3>G-G+$_mns2Lx zDp#$};)1d90-wSM!WCLs%G2K2GX-=H-}(S!F3Ju}WY|kAhW1-|l(|nt{P@^nZDxdS z&1EYxTiAH`faP$Mij00@`i8p5C6Ft&(qL9M6&wCN%liHlAabBGwk;*kQ* zUerZIU$on0L%>;9KDo5HfHA*=PvEx;=XG0*M)Y~#TZQqVx8%a;|0SBMraL&)%0wd93=({!q<+Y{T2r*Q(cdfQk#JHmTL+nH-P%)uLvDi$W{-TD2u7 z@>m#btt6P|1|1i_W78lsFksr5yaaaqf3*iq^;1rr)~nhw)|64Hf7dk}H_$yMS6k6; zzHza1y+Gs5wSGLuxHzUr;thUj)~&T?6|zth&FSU~Ve$9#1v61akDu6LosQ>U`_Zj0 zz0_jHPH!_mLSK6z^n?2}C>;Fp>7?GEuJ04!J2OeKQMwsNd%cpm`ab;l~%GrSmJeD;d zy>|`9!K|JetD(bj$_ak?;p2|-(p%MKlVi%!;7;uvQXxi~RZk+lP&GE$&8Z%4Yw5ha zr^!76w7cW{NB8F=q0*Y^<9TL6Iw>h6lR42G*_Eim=nQLJ?)ki@?khDmO;rv~SQM%} zxp*qLz@7Ph&UlIo{IIH-PQ4+RN{Umltg1TiVy0hyVkl)MU7{?-Lcu0)D~qvc_Ca#d zr#{J_C#gb}-hK0_GjVk}X8yh7L?(9LSxH{*vrX=2p8e(;4A`oy^$kW(w;0OlF&bCao(*U$pDsFUiF|6k+-SDt~Lx^CgiUt}-bAPGk3?{=@atY9S z`c3)VlXSd0NW6S__SxXTHqz;+X-96wExTeMAPBX~>_@zmJc=rAS)eruRPFU-Xwlux z+ik3JIWU}_GKj7WK7ihGeH%J5XT!i|0xzXJTIX09MQyk^y5)+1!tok$H-?$dafdPppb0xvZ_?9y~3TYh5T*eEp(RC-P>mEE;4l=4yO z)f+sL+Rmz>xgQ-hHA=zH9xn|(mM$Z`W;x33>grJ*#>G*C7qdmGVZ_*k|CMd%^>Zew z!Q;jK!G6zkzu%tw<_|4i)1xb%v695_iRV15UY~QGt#vL7pb1)`P7co0v2(}h@B>W{X87a_*uto9aj zYG107ibUJE&!|*yIH0o} znQji-l$3Foa3+mXyHj6uq0G^^wNEI0I#mJ#@hrJ3#K*+3BhsDc{El?uC_!1a+QKZIq{VX%MwnKJ!-||qihPURfmpq*+OIpWQGkfYC z5mCj^LU zIGK`F&G^jfvz$*f9n*;Br973bQmKDN@_joMHK_Xz8w>B}i( zqeBMqxu(WV5Au|F9xI9!)mM&{312)T8IvBUcZV;bSJvtDiX6=6L%OAWyTC`-bdg}U zSIF)FQZ6@>;K>Xl9`v>ms85T84(6W6KqC*$*mOJyJ{o+4RVn4jUBQ*@C~ z7A<;K1X|rh2^#uKn_^ia9vYGv$1c=}u#DQUgYrfI9S z5D`Za>ej}1bdNr3#3x}1pQ4Om(=J3qql_=EW!>!4tqKYYh7Ep}k%%vwZ63_b^7Hy* z&w!7wyzSnwA`Wg(58%Xxzod0tyVI?I(6Qqd`k=~(wJ0EUpHh9HDQQwl z2`>TL-#^!A<#7~rKO*+oUb$E>KAyY={9C}37a4j|NTo^>t+BphwcV6Y>WMT;EGaik} zs{|m({tOQdJy@6(%f~0HrT>3m>FP^)o`(>g){a;?MZH**EN5vazH#bzr9COV8No+v zyeA>qO`OA&26HhZ6P*M;=t9_PqM*qHcbM@^Q-JgPYY1ZQ(G2ihyrBRpVoffG8pq)$ zMvB`%NGI58_)PaCUMJMm(f91dE9~b<-Wq3Ze|zsq81?B@dL zrC{{?{6j*9oz2A7)91Nzlpo|=+e^Vc#(}>x%B)qs02{6#wEb?R4(8%s#QErMf}<)? z5G`F|j?AFjU+#YZvP|dA?JI`x{qGNV@DYiFxEAY)TGTh$9^UxH*AD58QaxYN(DuiS zREU<4PKi%eI*9m8L4Ix%h_XvCOt$E9>T=l8_Jm7cd*qyX#v>J9&M<*nB6-#>BYt!o zKk+2fDdlY+3HkcA(K18siCpi3u>~>Jg$elB1$$p0fKpkC=~vpO3Z3PUP;w85Jef6a zo+UdRq#y>+krqd#FiaD?#}u>Iyw|^}!~h|H8E{oE&`r=M5^~?tj9POF)q9`Bmixqz zkKh}|`-nwyA&ecrwN){UT_((o+gayFr|W@t!45mVXT)8;_^oCa)`j|-vufW5Z_Rg~ z5LY-DA6h9edZeUrh%4Am2b@SL>ENdd{q|$>-FtaDl2=#Q$UVa73OCp^kQYKMv+$D% zh$}8}rL3k<0?ffK#TXk%$kRw3J~M~j5_ywOkCsi8OVfPCl-~-S>saqcpOnnLb2`)! zb%3;O{bSKkp&8ZD^-<#$jo!g&f&E{uq)9$Gs2o1D1Y*OHgRGNuImmm?ROON5`?fd; zC%EQ3@@#0i38U&07C@h9L0GnHS1<@J;;wUy5*&Hzz~WVtOBuy=QwVkq*6{P&@M>UZVkd$>w`(HsTBdKcmZk@UASkD}i_j zXM%=cxQ0hL2w1E=fhNx_&ad^B;UU39aS*zCzr;m|n7UeF4{jpXZL=I)6Q)Rk0YDM^ zl#mAA+uxY!BBsb)(RA0-xj|U04?gdU42Xq#+h|*r%}I&%eQVSS6BDOJ)C0R|Dsbs> zdiOReR`H(cqN`ZC0b(+mVw{+!hNOypy`ec{cw0?rFD=Fg}-r%2pfYR7q}Km`FMO=fUPq zWwG>t9ysFob&`VRVncL*OPwnX;(i^ybn?xm8-_H6%oeuUA3nvuY?Cy|MZ{!C+2p=n z(u-RrqMPnw2Ix^11`QOws5i#tD2vTB2>vFf^$;z2c5pll^J<*zv@b2Iu5A>6PKGwtjFN{TBc z$oQ0>gsfdROe9vD%y}olV2A=wW4l#O)mj^5lh0&1WC9Vp@~VrN!fHjrL#)V*p7ZS zlaD!OZY2=LDBIS(=r9VmDCZXF3ByPQe+)Z^lIJiX$YLMIX4c7>El&Y(6Wuo@ed*B{ z7MQGYg@L;qRGvDHNQkXajj)h@(9**$;}T%{=B4O?@fLzlqkYK4>6tzwb%6;0wEYYA z-YgDCNwH7(B^`M5J7$oR6BV7xc(E{8ORoxsA(mGR2c@K!T#MG|%)yhm()&b2C!VUI zO%T|OE3t4@(u5GSPsq*3+8&U93g<$CZUY`bv5q|T$2+@zrCOs=Kpx9YL+0H0@!}95 z>-ua`-8YKGap5U8=4hEIahTN*#%`4iq6w~>^e{1n!t*`Gg1=`6H$+VUj~Ltq$-Tk{ z?=A-$BG|)gHh=gF*Ya=Hq->S0CL%5WJI04$`f&L*8i zZAiiAm!ooTp>lU@QlB|iHPurdJCZxNhrMnve*>rcObfZWJ3P?&SQc5Y3N=hgq82ot7 zch0%@`|khW=bz7f<{a}K?-+BgwVoMktaZI~y$-h3o>r^(vqUK)~SN z`6fYcG6psV1{8_`!@|PE#)IME;lgln@d=3F_yh<7TwFLA96?M%N=k}HNKQdULP11A zO7hzY2y$Zs#lXS9z#+lM#V7gyPS-;K0viYfn?OJa0E_@Z5TNT3fCc~okUui;SHi%= zf`TB};2SLo2=o{FSAD$#;N2L2;Se|gfUc_l!U0ImM{%{!TP=oaOt8Aem#ngM^AOJpb%pnJyX- zwWAQt3jP;Bn66Wyv5Vo}2H0Uv2MY?W+)b_r;J2iAg>~`lm(du(8C)#CQG%zK6} ztJ5UZ)(K-?)f1NLbfN*km;h;>?tSA)TqlXJb9x=XM0%`W<}7OARp?)qK-x5SuefZmfXsSAN?WHPrRCkB3Np$N(UM*7`IVocV%PX*Fqh3ySl zs%9M1#tQ-EhYDF-en1{aF%<3UMmoIIzv-3RM*K5HdFMCxD4UE)@-tlwVFuq&Ge_Sgqa44Hy z!{2MF=_e#|4S2|&dEm+_JJ;<0Sl%ICQ+Ba*ekd9e-o;|X@}RxetnxA2euXHG-$BUx zr_y^oeI>@4bs>4LYh&oUa(k@iAu%1` zUgvwZN59~;KN69}Hu?R@6s#rwsgHaK^=P3^tYH%^E@9noCG2Jdr)zxVs2CPU69Vv- z5aiX)-mT;j)X&8Lt=NPzug@WVH6b%nXJB(0GBPlvHGB60%H+850w+dqtBX+U5K^BV zsB|O^SLT)pfrO8SZ?nnKkDKMbXs7F*eShu}84{DZhQFCQa#ZX;IEyt||A-s%#heY@ z_oYMd@ca|Pw9Z{h{T`9!4@E6o$)%5By&ko`@UzeW;sLg)hU0SVhe;TV&%ygRfkgx@ zAmNvRDrSdiotTs=gxMKcF>75TlS>aChU8rXT^+l>7OE2Szj4NQOH$mnSGIBa%y64e z7wel5( z5DRIxXZrJ^Hr<2LK zaaFES)-{mFc-sSYn3d`aS`M3IV#P=V`|T*}b52SdA6WC}(rLJZbAj{pX#RPf>*w^8&P!UGRh|@dVm-Xk z4mhcX2atkWMbZi}df-Da(#@PaBGbK;M=u~PO?-YH8A@k9u?jW`mqW+|*v5ZUx zAzKK#Z-Rj6>kEc$GLfj~VoR-M8pGl?1Hn&a9ydO?r7awfI^Pz*fQ0$3%JfO(CCOva zd=NZP^LfZLLvb;!dPYUUtpvtVCNFQoz~YngO(z$IB@7k|u!zgwN?7;}p>yuxG$FC(G>+SJ=!=MQ69GQv-10LE(tt-=HXT31W9MyibGms0Re&JKzRQz2KaA=2^;`HKu`=U2p%2`_xExH0z;q(0E38uSU_IS22R2#=o6WV zWKzH+h|tID5h@ic-|IwzZ4O8Jair^~=t!teV@{Bx6ys_m9o0ZW})R*Q$jn z2maooBfC%GAmc=1Op^AUoKeluzSfNfTK_>NA;M^-1AvZebDVwR>Mwkb?aOS z(xbekJhq8MV>w49#DA)k*}lape^PDPp1qvTj;g^(hRx^<{rs}_9J z8qgw|GByD1BIKZk-PbOhhicwJ(V51*JIZd zSHbXz0N#$$o-7vgmk1ip6mY=#Ohk$@s&_1VMJ?&riQo-CR0&X`TdCs`3z7>`%H(i? zV!x_CkieUNFnzVTV0>=jaRj=2(;6=Cm_{?;FTk2ND>iS%Z}D|VZ9 zWtD2TX5sIwa`Dpp>dza7_3DVX@0LChsko%s*gjSes+-!Fd^vGoahpYaEuV;$3yc}= zB{sZ8hJ1J7gZ1+~;z`FSeb0Olh4$w#Y(J{ISDH|sul@J# z)%_C9+pLnDqz;kqB1_@$Ar(HRO3%pPr0lD7`cWx2DJ#d!!#=MXV3SALBAiC6`0)^P zkWboP+Rr?mvkYRr;UI8uYmX0K`q25?Oz44=rRT@qt)4s#jb!BmOO+bOJG0`WnG9xZ zv1Db?5YP4lmXog-Bzu&}hFq<0W)*LXe3(y@%~{VRE0XVEt9jEZ%-DnfY&2An0gKr6 zi`x@L=c|L(FeasaL-UZV#=H`>%B-;1wV>!dP2q9<;ljB@60h5~9-k`Zito(YFwlx` z{6y-$j(jvL^My`!sQ%20;)QHkyPG$d=TooT$JoBb_#Y>2v@SNIZ@^g{MNwkksUKA% z#fKY)I!Y^-Z3C&UfyZv&hYvE__3gxIZ5B2aMrU`ffg#KH9M^yxUnAF?d*0Uicgn_+ z989BM<)D)Zy&FnT*;brFC%?TU3(U_DEXz11O8?PmvNi zmaq`|#Gp~le5QHLu98{NEWcq3*4h&854mv*Uns>%xT@7@A!a&z-m8-z`F$SO*y~zp z>G~}M(^`J@CVNd~hXqYY3n;ohO)&g;g}R4OAnmDIPK9nw7?rGFd+urAh~i=EhKr7B za7Qk?+wiQBOFx%NZ?OkVU!Ve4*qG*|3Foc%*;=csI;)DOufcA4y68i?be;_%xO%aJ z3C_hz_UYVW?s|3T8~DRi#cKdpt1#EZK^tgMip=QT31+8@f^bOfyWW%Ea`&~wXA3zM zWts4Zfsyids=GBI7Pv;2Xfkp#%A*2VRCL*NWqK3wClrQqBe`gAad{gzo}7_Qu1|-k zeOZp{BHqO4o9ev=s!FbSK3RVJN%L{m@hy%%c#bsIWk|(&d0XryAB*Le2i)8>!Mz?| z$B*|@!^yte1)VEDOJ?BmQ*X^6Y2!#ZKC|bvOGvS+?tUA4h4mvq|G5E~B4LvnZ7kl5 zXxY#AI{BfuzkywT-e;c3!9q=zfXr2?n&)e~Ys9h{mR=+Ka@*D{PPrk$BGY!>jFmgd%7C0z}rN=9s6k~jfO29 z55Fy< z?K8$1t8`L$Q9ya?uuG+$#aV~RM6ZR-hxc>P)?P{dw08R|#k(PL+wZ?Wu@^l0w&hKW z{H#YSVQ|)Y&}Q!V&Aioz^Z`d&W{4X@(1O=0)eH;EXiFBqI^(>ah& zj5YNvNW=PlGR->Oh}os&&-f32whZpwpP=r)JVY4nzC`O;G1h%mVVafk*EG?dYpE4w zakw<;T9H=v3iQ`RiWUt|qa)~MOM4%7Y9viXt~n=cbg-uyy^_8-YdrJOxT{Qqk8y6Q z{gx?h-a&YiXv>YlFc%gjW^&7A(ZYdwcersx_x@dijj_z{lgC*JuhbL_7zjG66$|dx znII1r-#Kn;XHKtq3A1nv%n_WFd_H1}svRzUc&Z4R%`z5&z_DWA+1q-4hU1qU1FoQO}lUCF#T?|j^evn~{A?+F&Vugw7bTOs0>ZJ4|>&q5L4fSatgu zpWmE|I(&;r1{yFfm2|K%e)zRUdh?@jjrd$AGoG9T$?=&ky$eAMw|I$dhwg&=Y)G}F zsa0mLZMV_0@wvyj>mpi#?p-1V_>H18R78Rmc8S5ZSbY`Qd!h7-;j=uicG3%M#MFBhO|dhvtl!_JP9?DubE ze%+eASKGh8$E2YXWvqVL>kiYBUr=ddxuEdyVnuV;NvEnrPS2aB2eFK{GT#bSmHg1j z^-6cjI6_#ek8`X-*>$a|@Y}?8v0!d`Kr3U#of3)r1Q}rKcG_@Gc-~5q{RQDO@qi%H z?gOhl^@%{mXFrGE$VG2=(XQ`r@hR=nC3X2qacUH?Qfad^ACf7yl&G4()HWQtH>0Rg zBQ>-r(+0i#YMa?aSPiGtB`JtO-3Q;rxLlIGp&Tpm)o_-DvgPOx3x@5PFRq*tc9OkX z<7vGf(zBKGy@9k!p%T5uhKDIsqNioaik^rummhR!0#Gv>v12=^%MbSr=*~&*P^SDlM^lGB zu1{~!MJyat3p$H}QcC-sl@_L+xAd0U?rWT4dZW4c+sYT!3+Ka&6ISnvYYNA$jHGay zwU0h^Z&3;NV7sqy{!D|AY|0GP7pW*PXnZaaNbpcxh-RIdGR$!?*p*y7>2pQh+8n52 zq&#P*OT_Gx9gZQLe?Ci0ib+OMMv0WXaNE5JG5@T##tIx$byw$Xv!uD)EhkE`tq00I zdD%4|jzYsl@cQ6kI=G^Be2Zls%%q}r!UFg!Eu6O5DJm}78`RERZk?RQBHe4H>MQD3 zcjPu{3OK{R_(dmrRTz2~9e=8GH1_pNdtkVTsG57STeVj0PG;lES)~G39ttF0K3^Vp zb`DzZ9%l*mGe|z*Q4y>fDY;~+xb(G5b68}o~SOOzZ%dT#R8eaw&jd*h5BmR5j4>EWZ8M|+GD2kKT3sKpP1o`F>B!&v+DUdW|SF=|tv*>3&h zo}kc9U{To?!s*EZGE7og!BVW3h>x?h z8fO{$u%mB#Y`X92p9BTX&T5zoL9<*lUmf)y%XM4>z1h!K7*S_z^Fi#d>n?(s@g?^x zgTHZKKt73Z{0J4jdye~pF5+~bM^fx3|94SM@~86b({G|o@)oS^2Qr znZ?1J-`Vn;>wHexs_j=@p$6NF(;{p$3Eg2x@6yd)f9svdPtUyPo75LSbv{Yly{xOu zzXouKMT((SA#vt}o)c9`ckwDNwSi>0pDFk4eK(j)JXp%J3V7?>X)TjJ5mO|tV0$#~ zj%?x03#h`g$i6&CqrT$%8c%WhX+KQFSrpjS@qwh@>1-UPfWu_QtiE5Nyu6zYyorXWHBWl}0?|wg zK*S2GwAXx~$>u82eFQQ|C%5E~t$EhVOJ&JTuEoBnRVW)(U!nv8%^1ItCP)@FRBCfY zQm|u<-xQ~slOf1(?BZ3XV){j$SGu<`{Mm&TB$r4LcBqBr6<#9t1=`yrYVky<0RM*1s61%%j4y;2RfxdQuJ6BOp}UsH%;;?;S<79K~`D}d&2pzDGKr*<*7Q( zyLnCaU{O{~de%M73TCp23r;+gl{XLdR}=dF^x*Ky3XB~2M2EdP{4Chq0jDiQEVKVZ ziPFGXCK`&F$1)qz&b#a*ZlI{lG)Q#zX%~Y6PN~O4q$b5$F|c`R&HuR+tW_lT-iKK` z8rcDjB5L3y&h)iNt_AgC2(Y`XO6zj@lPpk8(@o{dV)H3)Px15(mQrg&PCb5*1AOVI zCA}T_!_t%26>$`ihgoX`R+(Kel|+)zB$r8zL}tlarcuFtdX6V-1Gje@6EjuriG_S? z1~nvukr1?`wkA7@YaD#sgXKS<{?a>x?!)bZ6S_zqot>OtptFH`7p25=;3@Ena)<8l*Y zsYQd7Fj0qUk@^qbmv>>fWtr-lrrqQ9c9XA|Vqo4;P@DVEbot=SH^;khOGH9n6}@Mi znCVSio{ORG5n)(sPe-4_VIcB+O+$QH-yxEq7CTsA@SY##dqQ&GtjMo2^2e{B6qczQyU^py4Oak^(5hXNTP#|9@j6w5Y>xMKLoJ5w4@N{%?@*81|>5s{U_~qFfjUhx& z3m%@HE{P&+p!|p(h^NB7eh%9uW(6-B4Q}mTmg=qn@ev-TQ2I<|BO(HzuqVT}ZJRsf z;Xh{DHL$J+8tVbFQzj29Nhmu!%FfiAtxF-+paH;})9<*-6k}#eCkxnL zcWo?U?=EAL-Qhg)kuSP!94{r`(49$Oi80PN4E_Uh2ELqsmv2juQt=QNE zgr|3IcJ)6#ngWoUKrK8=jrm_$^)KOXkL5MyVk))NVZg(IW~8Rzv>L zHSp(n;Q!nWBpmy<+Z+7G|8EZHkMd6$1tt2E`49guttu1@{3ZWM{x9XtfdA<3ef!%up#Dz=JN)Lr_xtPzz4-&+=IP%A>Jb3L&Cw63XTy*3iPW{uya~ZA+)03zLX80Bx(d{C0xYe=qdfmgjH!ij`xh8$_uZt zK+Y9Xn?v!`uoL{ngtS`b?(BYwzYSg|T-gXV%7i#*aSFyJZs3EgSw_NRvt|Y*6KY8? zepObP%!~ki)b56Si&mX|9kJjnLsZsK@{hC_Gk3Swzv3{EFuF0%VkF9O1T zOxcsx@0->$8Wa})4J%^z&1S$DUaQU7$>ZvQTrHsaYzV$!INpAm}EIX`EHi|^b~W% zhLxJu!rxtZKuSr+$R~%CoD$z`TWWYObK3}xFN9Z)5sn}S3*$sv61;ophkwP=-pcuW zcQYK68Lsph6E-x{j3GTPu5@zxOv7xB6-x|?!o(5oNKjzXKf;Xq#i*VA#+G-pq1sq4 zmRPh>c)z!z7iEGfS3t*^Jd)I=L4hgpP}5JhV7?!%$LNKVp1P0$XD=-`e_XV(BYRcn z4hHd;L)O8?7y|f{LgR;1hc0PES?i-x6R;Vv%Q}RM&pYm{{(^r!X~)pY95{NtQP{5*R}e9gVAO~R zS+Bb)r<%I?yf}Gk$hS|Eh&YKs(|@G2^@JUxIY8b?RiveDyCujB`3)JoN_<^Q)2Mwr zMkgWm5#p+S*Ks{ee6LmK1CQxi|lIhz7rf|V%(S#PU5LY zrN4?*OnZby>(*8=wqy17oAeJCN_*Ka^F77RV(CF_mv??X4`0x``3(Z%3JK2klG~vV zzyIiLtnrWzlOf=x9$=9exbnpXF^)Qhj0Q6x)?ml_MUS6)$k7q4RCekR{# zn9JHm@d&Y0#!QJ69H>GeMUjk*1~bz>Sb^IIci4CdaWy6HR+mR=D)EDC9;&M{0;(M5 zmAHsN`o|+nD+cSK&z@k5+^LLsA8Uk3SNJVeOlcyvBd_plT;HJ!ef0bGnTWO?FEPU$WUnVny74N1d70a@BgB zkI%A`FmX^^Jv%QLusGBzvfzgLmuC!b=>)sD+883t@uFB(HL}XN{5?)KNJBS-Au3N( zBeyOyM096cVm-=-?oEJEu8nA*F|rs~(B)-LZCRzsP!&Zm>jC}(%><%-@~!HS0hTnV z4oTtLcGy8#&brEKc-#vS<_|BVTEHnZJa-8*_(Ehpuvt$e?)jQ6@sMma`V6_Jitn~O zaO|FoOyq)XfP#N&deq?%x5pB^W}iQhrD7&2K?A=IQ9%LSP`~#OpjcL|+84Zy+@lU|LaPi|Sg#7$DdqEkvh@KOyWV zx)t%!uJ6Rqa5!5^4-%5E^51R7%B6btk@fC|8N}Tb zR9nznL+%(vvBaj7Jx$mUrp`X`(eQ+?eJk%C3%>R-v=^2S(dUiaV@t>>^y*OBMCO3i zvR=rhy>@N9N!{~5N{DiDp{kRO+k6Xj51Kqqa?Cg(*%deoJEs1`lNPt{CmSg0j`bz} zGpWQG1&n| zN0VdW2wLW)4htZE6XU&iu(-@PF^tRd;Xtk7HMS2XlO<_BM6H!Pft~+HIBzrW7tGgp zurK8S{o%lxO2ePiUtT(Re<02wO~A1t4uLZmnRs|baUsfR7pMB=2yU zx`e3g`szc>1%FWiQHt-cUg`@y0dv>L8DTwyDPYv<`ycw^Z^*}~f7elmnhcnC-FuFe zwT`uR5Yzfm4M5`~lM>>{w7{P!IA&n=;3qxcN=_(I!Uzpt{t=}U3jFXa$Q1erG+6 zB8PDlEDprGAxvUG)ni66H>BNbi{bxVT-6{~W$k5!p)e?-oNazWlJT{1Mv_9M&uaA6 zR|);0))(@_zCLQYUpGK$M&x(F5gUu1{ARaTvB*kKD8}XOrtNrWEEj{T2texSobKAj zZL1dK^z*K%xhRHaXJb-vm?6uY_+-OC0O^MR&rQB(L->8=R7byJ?Rr50Ng&0Q7Q|pV zfYeA!D>Y){3sFtLp2TU6wPdxychvP=tp=IaN;*BJ5MRPLiZ9z&2L~yK literal 23005 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 Y!I7Y)M6E}T!>}O5I?IZdWBgP9*_K%BU;qFB diff --git a/doc/src/Eqs/pair_spin_neel_functions.jpg b/doc/src/Eqs/pair_spin_neel_functions.jpg new file mode 100644 index 0000000000000000000000000000000000000000..57023634bf9de762613994e44174702f83c630d0 GIT binary patch literal 5936 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 P=ABuHl14|u+01_c;3^^w literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_spin_neel_functions.tex b/doc/src/Eqs/pair_spin_neel_functions.tex new file mode 100644 index 0000000000..ead5a2b87a --- /dev/null +++ b/doc/src/Eqs/pair_spin_neel_functions.tex @@ -0,0 +1,13 @@ +\documentclass[preview]{standalone} +\usepackage{varwidth} +\usepackage[utf8x]{inputenc} +\usepackage{amsmath,amssymb,amsthm,bm} +\begin{document} +\begin{varwidth}{50in} + \begin{eqnarray} + g_1(r_{ij}) &=& g(r_{ij}) + \frac{12}{35} q(r_{ij}) \nonumber \\ + q_1(r_{ij}) &=& \frac{9}{5} q(r_{ij}) \nonumber \\ + q_2(r_{ij}) &=& - \frac{2}{5} q(r_{ij}) \nonumber + \end{eqnarray} +\end{varwidth} +\end{document} diff --git a/doc/src/Eqs/pair_spin_neel_interaction.jpg b/doc/src/Eqs/pair_spin_neel_interaction.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c30600d840e56bd04d994a0d16d73c80ddf760dd GIT binary patch literal 11029 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 R35E~k-0yk>Yy%!w{ttRtWuO26 literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_spin_neel_interaction.tex b/doc/src/Eqs/pair_spin_neel_interaction.tex new file mode 100644 index 0000000000..8b4ac33e73 --- /dev/null +++ b/doc/src/Eqs/pair_spin_neel_interaction.tex @@ -0,0 +1,16 @@ +\documentclass[preview]{standalone} +\usepackage{varwidth} +\usepackage[utf8x]{inputenc} +\usepackage{amsmath,amssymb,amsthm,bm} +\begin{document} +\begin{varwidth}{50in} + \begin{equation} + \mathcal{H}_{N\acute{e}el}=-\sum_{{ i,j=1,i\neq j}}^N g_1(r_{ij})\left(({\bm e}_{ij}\cdot {\bm s}_{i})({\bm e}_{ij} + \cdot {\bm s}_{j})-\frac{{\bm s}_{i}\cdot{\bm s}_{j}}{3} \right) + +q_1(r_{ij})\left( ({\bm e}_{ij}\cdot {\bm s}_{i})^2 -\frac{{\bm s}_{i}\cdot{\bm s}_{j}}{3}\right) + \left( ({\bm e}_{ij}\cdot {\bm s}_{i})^2 -\frac{{\bm s}_{i}\cdot{\bm s}_{j}}{3} \right) + + q_2(r_{ij}) \Big( ({\bm e}_{ij}\cdot {\bm s}_{i}) ({\bm e}_{ij}\cdot {\bm s}_{j})^3 + ({\bm e}_{ij}\cdot + {\bm s}_{j}) ({\bm e}_{ij}\cdot {\bm s}_{i})^3\Big) \nonumber + \end{equation} +\end{varwidth} +\end{document} diff --git a/doc/src/compute_spin.txt b/doc/src/compute_spin.txt index df75480430..fcc764c14c 100644 --- a/doc/src/compute_spin.txt +++ b/doc/src/compute_spin.txt @@ -21,7 +21,7 @@ compute out_mag all compute/spin :pre [Description:] -Define a computation that calculates the magnetic quantities for a system +Define a computation that calculates magnetic quantities for a system of atoms having spins. This compute calculates 6 magnetic quantities. @@ -30,11 +30,11 @@ The three first quantities are the x,y and z coordinates of the total magnetizat The fourth quantity is the norm of the total magnetization. -The fifth one is referred to as the spin temperature, according +The fifth quantity is the magnetic energy. + +The sixth one is referred to as the spin temperature, according to the work of "(Nurdin)"_#Nurdin1. -The sixth quantity is the magnetic energy. - The simplest way to output the results of the compute spin calculation is to define some of the quantities as variables, and to use the thermo and thermo_style commands, for example: diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt index 20e98eba87..246ee02331 100644 --- a/doc/src/fix_langevin_spin.txt +++ b/doc/src/fix_langevin_spin.txt @@ -44,15 +44,16 @@ in metal units). More details about this implementation are reported in "(Tranchida)"_#Tranchida2. -Note: due to the form of the sLLG equation, this fix has to be the last defined -magnetic fix before the integration/spin fix. As an example: +Note: due to the form of the sLLG equation, this fix has to be defined just +before the nve/spin fix (and after all other magnetic fixes). +As an example: fix 1 all force/spin zeeman 0.01 0.0 0.0 1.0 fix 2 all langevin/spin 300.0 0.01 21 fix 3 all integration/spin lattice yes :pre is correct, but defining a force/spin command after the langevin/spin command -would send an error message. +would give an error message. Note: The random # {seed} must be a positive integer. A Marsaglia random number generator is used. Each processor uses the input seed to @@ -79,7 +80,7 @@ The {langevin/spin} fix is part of the SPIN package. This style is only enabled if LAMMPS was built with this package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. -The numerical integration has to be performed with {fix/integration/spin} +The numerical integration has to be performed with {fix/nve/spin} when {langevin/spin} is enabled. This fix has to be the last defined magnetic fix before the integration fix diff --git a/doc/src/fix_nve_spin.txt b/doc/src/fix_nve_spin.txt index 4f25003c5f..6ccebcebf6 100644 --- a/doc/src/fix_nve_spin.txt +++ b/doc/src/fix_nve_spin.txt @@ -39,7 +39,7 @@ the equations of motion of the spin lattice system, following the scheme: according to the implementation reported in "(Omelyan)"_#Omelyan1. -A sectoring enables this scheme for parallel calculations. +A sectoring method enables this scheme for parallel calculations. The implementation of this sectoring algorithm is reported in "(Tranchida)"_#Tranchida1. diff --git a/doc/src/pair_spin_dmi.txt b/doc/src/pair_spin_dmi.txt index 9ad74d567e..9fe53df18a 100644 --- a/doc/src/pair_spin_dmi.txt +++ b/doc/src/pair_spin_dmi.txt @@ -30,31 +30,15 @@ between pairs of magnetic spins: :c,image(Eqs/pair_spin_dmi_interaction.jpg) where si and sj are two neighboring magnetic spins of two particles, -rij = ri - rj is the inter-atomic distance between the two particles, -and D(rij) is the DM vector defining the intensity and the -sign of the exchange interaction. +eij = (ri - rj)/|ri-rj| is the normalized separation vector between the +two particles, and D is the DM vector defining the intensity and the +sign of the interaction. -This function is defined as: - -:c,image(Eqs/pair_spin_exchange_function.jpg) - -where a, b and d are the three constant coefficients defined in the associated -"pair_coeff" command. - -The coefficients a, b, and d need to be fitted so that the function above matches with -the value of the DM interaction for the N neighbor shells taken -into account. - -Examples and more explanations about this function and its parametrization are reported -in "(Tranchida)"_#Tranchida5. +Examples and more explanations about this interaction and its parametrization are +reported in "(Tranchida)"_#Tranchida5. From this DM interaction, each spin i will be submitted to a magnetic torque -omega and its associated atom to a force F (for spin-lattice calculations only), -such as: - -:c,image(Eqs/pair_spin_soc_dmi_forces.jpg) - -with h the Planck constant (in metal units). +omega and its associated atom to a force F (for spin-lattice calculations only). More details about the derivation of these torques/forces are reported in "(Tranchida)"_#Tranchida5. diff --git a/doc/src/pair_spin_me.txt b/doc/src/pair_spin_me.txt index 54c6d43300..8186775b77 100644 --- a/doc/src/pair_spin_me.txt +++ b/doc/src/pair_spin_me.txt @@ -30,7 +30,7 @@ pairs of magnetic spins. According to the derivation reported in :c,image(Eqs/pair_spin_me_interaction.jpg) where si and sj are neighboring magnetic spins of two particles, -rij = ri - rj is the normalized separation vector between the +eij = (ri - rj)/|ri-rj| is the normalized separation vector between the two particles, and E is an electric polarization vector. The norm and direction of E are giving the intensity and the direction of a screened dielectric atomic polarization (in eV). diff --git a/doc/src/pair_spin_neel.txt b/doc/src/pair_spin_neel.txt index 5c82b6ef6f..f7c9608a93 100644 --- a/doc/src/pair_spin_neel.txt +++ b/doc/src/pair_spin_neel.txt @@ -27,14 +27,18 @@ pair_coeff 1 2 neel 4.0 0.0048 0.234 1.168 0.0 0.0 1.0 :pre Style {spin/neel} computes the Neel pair anisotropy model between pairs of magnetic spins: -:c,image(Eqs/pair_spin_dmi_interaction.jpg) +:c,image(Eqs/pair_spin_neel_interaction.jpg) where si and sj are two neighboring magnetic spins of two particles, rij = ri - rj is the inter-atomic distance between the two particles, -and D(rij) is the DM vector defining the intensity and the -sign of the exchange interaction. +eij = (ri - rj)/|ri-rj| is their normalized separation vector +and g1, q1 and q2 are three functions defining the intensity of the +dipolar and quadrupolar contributions, with: -This function is defined as: +:c,image(Eqs/pair_spin_neel_functions.jpg) + +With the functions g(rij) and q(rij) defined and fitted according to the same +Bethe-Slater function used to fit the exchange interaction: :c,image(Eqs/pair_spin_exchange_function.jpg) @@ -42,19 +46,14 @@ where a, b and d are the three constant coefficients defined in the associated "pair_coeff" command. The coefficients a, b, and d need to be fitted so that the function above matches with -the value of the DM interaction for the N neighbor shells taken -into account. +the values of the magneto-elastic constant of the materials at stake. Examples and more explanations about this function and its parametrization are reported -in "(Tranchida)"_#Tranchida6. +in "(Tranchida)"_#Tranchida6. More examples of parametrization will be provided in +future work. From this DM interaction, each spin i will be submitted to a magnetic torque -omega and its associated atom to a force F (for spin-lattice calculations only), -such as: - -:c,image(Eqs/pair_spin_soc_dmi_forces.jpg) - -with h the Planck constant (in metal units). +omega and its associated atom to a force F (for spin-lattice calculations only). More details about the derivation of these torques/forces are reported in "(Tranchida)"_#Tranchida6. From d4cca615fb558d84411232f45d6de4758bc3f73e Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Tue, 29 May 2018 23:42:03 -0500 Subject: [PATCH 121/675] Refactored pair body rounded/polyhedron so that kernel_force() can be derived for other styles --- examples/body/in.squares | 8 +- src/BODY/pair_body_rounded_polyhedron.cpp | 126 +++++++++------------- src/BODY/pair_body_rounded_polyhedron.h | 36 +++---- 3 files changed, 72 insertions(+), 98 deletions(-) diff --git a/examples/body/in.squares b/examples/body/in.squares index 146ba497e6..c812b4e0be 100755 --- a/examples/body/in.squares +++ b/examples/body/in.squares @@ -1,9 +1,9 @@ # 2d rounded polygon bodies -variable r index 3 +variable r index 4 variable steps index 100000 variable T index 0.5 -variable P index 0.2 +variable P index 0.1 variable seed index 980411 units lj @@ -48,9 +48,7 @@ dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] thermo_style custom step ke pe etotal press thermo 1000 -restart 100000 restart1.bin restart2.bin - #dump 2 all image 10000 image.*.jpg type type zoom 2.0 adiam 1.5 body yes 0 0 #dump_modify 2 pad 6 -run ${steps} +run ${steps} diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index d0690335df..4c65f69530 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -123,7 +123,7 @@ void PairBodyRoundedPolyhedron::compute(int eflag, int vflag) int i,j,ii,jj,inum,jnum,itype,jtype; int ni,nj,npi,npj,ifirst,jfirst,nei,nej,iefirst,jefirst; double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,facc[3]; - double rsq,eradi,eradj,k_nij,k_naij; + double rsq,eradi,eradj; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = 0.0; @@ -215,9 +215,6 @@ void PairBodyRoundedPolyhedron::compute(int eflag, int vflag) nej = ednum[j]; jefirst = edfirst[j]; eradj = enclosing_radius[j]; - - k_nij = k_n[itype][jtype]; - k_naij = k_na[itype][jtype]; // no interaction @@ -227,8 +224,8 @@ void PairBodyRoundedPolyhedron::compute(int eflag, int vflag) // sphere-sphere interaction if (npi == 1 && npj == 1) { - sphere_against_sphere(i, j, delx, dely, delz, rsq, - k_nij, k_naij, v, f, evflag); + sphere_against_sphere(i, j, itype, jtype, delx, dely, delz, + rsq, v, f, evflag); continue; } @@ -265,15 +262,15 @@ void PairBodyRoundedPolyhedron::compute(int eflag, int vflag) // one of the two bodies is a sphere if (npj == 1) { - sphere_against_face(i, j, k_nij, k_naij, x, v, f, torque, + sphere_against_face(i, j, itype, jtype, x, v, f, torque, angmom, evflag); - sphere_against_edge(i, j, k_nij, k_naij, x, v, f, torque, + sphere_against_edge(i, j, itype, jtype, x, v, f, torque, angmom, evflag); continue; } else if (npi == 1) { - sphere_against_face(j, i, k_nij, k_naij, x, v, f, torque, + sphere_against_face(j, i, jtype, itype, x, v, f, torque, angmom, evflag); - sphere_against_edge(j, i, k_nij, k_naij, x, v, f, torque, + sphere_against_edge(j, i, jtype, itype, x, v, f, torque, angmom, evflag); continue; } @@ -287,21 +284,21 @@ void PairBodyRoundedPolyhedron::compute(int eflag, int vflag) #ifdef _POLYHEDRON_DEBUG printf("INTERACTION between edges of %d vs. faces of %d:\n", i, j); #endif - interact = edge_against_face(i, j, k_nij, k_naij, x, contact_list, + interact = edge_against_face(i, j, itype, jtype, x, contact_list, num_contacts, evdwl, facc); // check interaction between j's edges and i' faces #ifdef _POLYHEDRON_DEBUG printf("\nINTERACTION between edges of %d vs. faces of %d:\n", j, i); #endif - interact = edge_against_face(j, i, k_nij, k_naij, x, contact_list, + interact = edge_against_face(j, i, jtype, itype, x, contact_list, num_contacts, evdwl, facc); // check interaction between i's edges and j' edges #ifdef _POLYHEDRON_DEBUG printf("INTERACTION between edges of %d vs. edges of %d:\n", i, j); #endif - interact = edge_against_edge(i, j, k_nij, k_naij, x, contact_list, + interact = edge_against_edge(i, j, itype, jtype, x, contact_list, num_contacts, evdwl, facc); // estimate the contact area @@ -309,7 +306,7 @@ void PairBodyRoundedPolyhedron::compute(int eflag, int vflag) if (num_contacts > 0) { rescale_cohesive_forces(x, f, torque, contact_list, num_contacts, - k_nij, k_naij, facc); + itype, jtype, facc); } if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair,evdwl,0.0, @@ -594,9 +591,8 @@ void PairBodyRoundedPolyhedron::body2space(int i) ---------------------------------------------------------------------- */ void PairBodyRoundedPolyhedron::sphere_against_sphere(int ibody, int jbody, - double delx, double dely, double delz, double rsq, - double k_n, double k_na, double** v, double** f, - int evflag) + int itype, int jtype, double delx, double dely, double delz, double rsq, + double** v, double** f, int evflag) { double rradi,rradj,contact_dist; double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; @@ -612,7 +608,7 @@ void PairBodyRoundedPolyhedron::sphere_against_sphere(int ibody, int jbody, R = rij - contact_dist; energy = 0; - kernel_force(R, k_n, k_na, energy, fpair); + kernel_force(R, itype, jtype, energy, fpair); /* if (R <= 0) { // deformation occurs fpair = -k_n * R - shift; @@ -686,9 +682,8 @@ void PairBodyRoundedPolyhedron::sphere_against_sphere(int ibody, int jbody, ---------------------------------------------------------------------- */ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, - double k_n, double k_na, double** x, double** v, - double** f, double** torque, double** angmom, - int evflag) + int itype, int jtype, double** x, double** v, double** f, double** torque, + double** angmom, int evflag) { int ni,nei,ifirst,iefirst,npi1,npi2,ibonus; double xi1[3],xi2[3],vti[3],h[3],fn[3],ft[3],d,t; @@ -760,7 +755,7 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, R = rij - contact_dist; energy = 0; - kernel_force(R, k_n, k_na, energy, fpair); + kernel_force(R, itype, jtype, energy, fpair); /* if (R <= 0) { // deformation occurs fpair = -k_n * R - shift; @@ -844,9 +839,8 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, ---------------------------------------------------------------------- */ void PairBodyRoundedPolyhedron::sphere_against_face(int ibody, int jbody, - double k_n, double k_na, double** x, double** v, - double** f, double** torque, double** angmom, - int evflag) + int itype, int jtype, double** x, double** v, double** f, double** torque, + double** angmom, int evflag) { int ni,nfi,inside,ifirst,iffirst,npi1,npi2,npi3,ibonus,tmp; double xi1[3],xi2[3],xi3[3],ui[3],vi[3],vti[3],n[3],h[3],fn[3],ft[3],d; @@ -913,7 +907,7 @@ void PairBodyRoundedPolyhedron::sphere_against_face(int ibody, int jbody, R = rij - contact_dist; energy = 0; - kernel_force(R, k_n, k_na, energy, fpair); + kernel_force(R, itype, jtype, energy, fpair); /* if (R <= 0) { // deformation occurs fpair = -k_n * R - shift; @@ -1009,8 +1003,8 @@ void PairBodyRoundedPolyhedron::sphere_against_face(int ibody, int jbody, ---------------------------------------------------------------------- */ int PairBodyRoundedPolyhedron::edge_against_edge(int ibody, int jbody, - double k_n, double k_na, double** x, Contact* contact_list, - int &num_contacts, double &evdwl, double* facc) + int itype, int jtype, double** x, Contact* contact_list, int &num_contacts, + double &evdwl, double* facc) { int ni,nei,nj,nej,contact,interact; double rradi,rradj,energy; @@ -1037,7 +1031,7 @@ int PairBodyRoundedPolyhedron::edge_against_edge(int ibody, int jbody, interact = interaction_edge_to_edge(ibody, ni, x[ibody], rradi, jbody, nj, x[jbody], rradj, - k_n, k_na, cut_inner, + itype, jtype, cut_inner, contact_list, num_contacts, energy, facc); } @@ -1065,8 +1059,8 @@ int PairBodyRoundedPolyhedron::edge_against_edge(int ibody, int jbody, ---------------------------------------------------------------------- */ int PairBodyRoundedPolyhedron::edge_against_face(int ibody, int jbody, - double k_n, double k_na, double** x, Contact* contact_list, - int &num_contacts, double &evdwl, double* facc) + int itype, int jtype, double** x, Contact* contact_list, int &num_contacts, + double &evdwl, double* facc) { int ni,nei,nj,nfj,contact,interact; double rradi,rradj,energy; @@ -1095,7 +1089,7 @@ int PairBodyRoundedPolyhedron::edge_against_face(int ibody, int jbody, interact = interaction_face_to_edge(jbody, nj, x[jbody], rradj, ibody, ni, x[ibody], rradi, - k_n, k_na, cut_inner, + itype, jtype, cut_inner, contact_list, num_contacts, energy, facc); } @@ -1132,20 +1126,10 @@ int PairBodyRoundedPolyhedron::edge_against_face(int ibody, int jbody, ------------------------------------------------------------------------- */ int PairBodyRoundedPolyhedron::interaction_edge_to_edge(int ibody, - int edge_index_i, - double *xmi, - double rounded_radius_i, - int jbody, - int edge_index_j, - double *xmj, - double rounded_radius_j, - double k_n, - double k_na, - double cut_inner, - Contact* contact_list, - int &num_contacts, - double &energy, - double* facc) + int edge_index_i, double *xmi, double rounded_radius_i, + int jbody, int edge_index_j, double *xmj, double rounded_radius_j, + int itype, int jtype, double cut_inner, + Contact* contact_list, int &num_contacts, double &energy, double* facc) { int ifirst,iefirst,jfirst,jefirst,npi1,npi2,npj1,npj2,interact; double xi1[3],xi2[3],xpj1[3],xpj2[3]; @@ -1219,7 +1203,7 @@ int PairBodyRoundedPolyhedron::interaction_edge_to_edge(int ibody, if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1 && r < contact_dist + cut_inner) { pair_force_and_torque(jbody, ibody, h1, h2, r, contact_dist, - k_n, k_na, x, v, f, torque, angmom, + jtype, itype, x, v, f, torque, angmom, jflag, energy, facc); interact = EE_INTERACT; @@ -1270,20 +1254,10 @@ int PairBodyRoundedPolyhedron::interaction_edge_to_edge(int ibody, ------------------------------------------------------------------------- */ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, - int face_index, - double *xmi, - double rounded_radius_i, - int jbody, - int edge_index, - double *xmj, - double rounded_radius_j, - double k_n, - double k_na, - double cut_inner, - Contact* contact_list, - int &num_contacts, - double &energy, - double* facc) + int face_index, double *xmi, double rounded_radius_i, + int jbody, int edge_index, double *xmj, double rounded_radius_j, + int itype, int jtype, double cut_inner, + Contact* contact_list, int &num_contacts, double &energy, double* facc) { if (face_index >= facnum[ibody]) return EF_INVALID; @@ -1397,7 +1371,7 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, if (inside1) { if (static_cast(discrete[jfirst+npj1][6]) == 0) { pair_force_and_torque(jbody, ibody, xpj1, hi1, d1, contact_dist, - k_n, k_na, x, v, f, torque, angmom, + jtype, itype, x, v, f, torque, angmom, jflag, energy, facc); #ifdef _POLYHEDRON_DEBUG printf(" - compute pair force between vertex %d from edge %d of body %d " @@ -1436,7 +1410,7 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, if (inside2) { if (static_cast(discrete[jfirst+npj2][6]) == 0) { pair_force_and_torque(jbody, ibody, xpj2, hi2, d2, contact_dist, - k_n, k_na, x, v, f, torque, angmom, + jtype, itype, x, v, f, torque, angmom, jflag, energy, facc); #ifdef _POLYHEDRON_DEBUG printf(" - compute pair force between vertex %d from edge %d of body %d " @@ -1502,11 +1476,11 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, int jflag = 1; if (d1 < d2) pair_force_and_torque(jbody, ibody, xpj1, hi1, d1, contact_dist, - k_n, k_na, x, v, f, torque, angmom, + jtype, itype, x, v, f, torque, angmom, jflag, energy, facc); else pair_force_and_torque(jbody, ibody, xpj2, hi2, d2, contact_dist, - k_n, k_na, x, v, f, torque, angmom, + jtype, itype, x, v, f, torque, angmom, jflag, energy, facc); } @@ -1520,7 +1494,7 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, void PairBodyRoundedPolyhedron::pair_force_and_torque(int ibody, int jbody, double* pi, double* pj, double r, double contact_dist, - double k_n, double k_na, double** x, + int itype, int jtype, double** x, double** v, double** f, double** torque, double** angmom, int jflag, double& energy, double* facc) { @@ -1531,7 +1505,7 @@ void PairBodyRoundedPolyhedron::pair_force_and_torque(int ibody, int jbody, delz = pi[2] - pj[2]; R = r - contact_dist; - kernel_force(R, k_n, k_na, energy, fpair); + kernel_force(R, itype, jtype, energy, fpair); /* if (R <= 0) { // deformation occurs fpair = -k_n * R - shift; @@ -1583,17 +1557,19 @@ void PairBodyRoundedPolyhedron::pair_force_and_torque(int ibody, int jbody, here is the harmonic potential (linear piece-wise forces) in Wang et al. ------------------------------------------------------------------------- */ -void PairBodyRoundedPolyhedron::kernel_force(double R, double k_n, double k_na, +void PairBodyRoundedPolyhedron::kernel_force(double R, int itype, int jtype, double& energy, double& fpair) { - double shift = k_na * cut_inner; + double kn = k_n[itype][jtype]; + double kna = k_na[itype][jtype]; + double shift = kna * cut_inner; double e = 0; if (R <= 0) { // deformation occurs - fpair = -k_n * R - shift; - e = (0.5 * k_n * R + shift) * R; + fpair = -kn * R - shift; + e = (0.5 * kn * R + shift) * R; } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap - fpair = k_na * R - shift; - e = (-0.5 * k_na * R + shift) * R; + fpair = kna * R - shift; + e = (-0.5 * kna * R + shift) * R; } else fpair = 0.0; energy += e; } @@ -1710,7 +1686,7 @@ void PairBodyRoundedPolyhedron::contact_forces(int ibody, int jbody, void PairBodyRoundedPolyhedron::rescale_cohesive_forces(double** x, double** f, double** torque, Contact* contact_list, int &num_contacts, - double k_n, double k_na, double* facc) + int itype, int jtype, double* facc) { int m,ibody,jbody; double delx,dely,delz,fx,fy,fz,R,fpair,r,contact_area; @@ -1766,7 +1742,7 @@ void PairBodyRoundedPolyhedron::rescale_cohesive_forces(double** x, R = contact_list[m].separation; double energy = 0; - kernel_force(R, k_n, k_na, energy, fpair); + kernel_force(R, itype, jtype, energy, fpair); /* if (R <= 0) { // deformation occurs fpair = -k_n * R - shift; diff --git a/src/BODY/pair_body_rounded_polyhedron.h b/src/BODY/pair_body_rounded_polyhedron.h index f59faf9ba6..71c04ff966 100644 --- a/src/BODY/pair_body_rounded_polyhedron.h +++ b/src/BODY/pair_body_rounded_polyhedron.h @@ -34,7 +34,7 @@ class PairBodyRoundedPolyhedron : public Pair { void init_style(); double init_one(int, int); - virtual void kernel_force(double R, double k_n, double k_na, + virtual void kernel_force(double R, int itype, int jtype, double& energy, double& fpair); struct Contact { @@ -88,23 +88,23 @@ class PairBodyRoundedPolyhedron : public Pair { void body2space(int); // sphere-sphere interaction - void sphere_against_sphere(int ibody, int jbody, double delx, double dely, double delz, - double rsq, double k_n, double k_na, + void sphere_against_sphere(int ibody, int jbody, int itype, int jtype, + double delx, double dely, double delz, double rsq, double** v, double** f, int evflag); // sphere-edge interaction - void sphere_against_edge(int ibody, int jbody, - double k_n, double k_na, double** x, double** v, - double** f, double** torque, double** angmom, int evflag); + void sphere_against_edge(int ibody, int jbody, int itype, int jtype, + double** x, double** v, double** f, double** torque, + double** angmom, int evflag); // sphere-face interaction - void sphere_against_face(int ibody, int jbody, - double k_n, double k_na, double** x, double** v, - double** f, double** torque, double** angmom, int evflag); + void sphere_against_face(int ibody, int jbody, int itype, int jtype, + double** x, double** v, double** f, double** torque, + double** angmom, int evflag); // edge-edge interactions - int edge_against_edge(int ibody, int jbody, double k_n, double k_na, + int edge_against_edge(int ibody, int jbody, int itype, int jtype, double** x,Contact* contact_list, int &num_contacts, double &evdwl, double* facc); // edge-face interactions - int edge_against_face(int ibody, int jbody, double k_n, double k_na, + int edge_against_face(int ibody, int jbody, int itype, int jtype, double** x, Contact* contact_list, int &num_contacts, double &evdwl, double* facc); @@ -112,14 +112,14 @@ class PairBodyRoundedPolyhedron : public Pair { int interaction_face_to_edge(int ibody, int face_index, double* xmi, double rounded_radius_i, int jbody, int edge_index, double* xmj, double rounded_radius_j, - double k_n, double k_na, double cut_inner, + int itype, int jtype, double cut_inner, Contact* contact_list, int &num_contacts, double& energy, double* facc); // an edge vs. an edge from another body int interaction_edge_to_edge(int ibody, int edge_index_i, double* xmi, double rounded_radius_i, int jbody, int edge_index_j, double* xmj, double rounded_radius_j, - double k_n, double k_na, double cut_inner, + int itype, int jtype, double cut_inner, Contact* contact_list, int &num_contacts, double& energy, double* facc); @@ -131,14 +131,14 @@ class PairBodyRoundedPolyhedron : public Pair { // compute force and torque between two bodies given a pair of interacting points void pair_force_and_torque(int ibody, int jbody, double* pi, double* pj, - double r, double contact_dist, double k_n, - double k_na, double** x, double** v, - double** f, double** torque, double** angmom, - int jflag, double& energy, double* facc); + double r, double contact_dist, int itype, int jtype, + double** x, double** v, double** f, double** torque, + double** angmom, int jflag, double& energy, double* facc); + // rescale the cohesive forces if a contact area is detected void rescale_cohesive_forces(double** x, double** f, double** torque, Contact* contact_list, int &num_contacts, - double k_n, double k_na, double* facc); + int itype, int jtype, double* facc); // compute the separation between two contacts double contact_separation(const Contact& c1, const Contact& c2); From 1fbd4fffd41e5e997fff63deb969eb89e1ed4fe1 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Tue, 29 May 2018 23:50:43 -0500 Subject: [PATCH 122/675] Updated rounded/polygon example --- examples/body/data.squares | 8 ++++---- examples/body/in.squares | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/body/data.squares b/examples/body/data.squares index 55a3dd09a0..6b198fd422 100755 --- a/examples/body/data.squares +++ b/examples/body/data.squares @@ -2,14 +2,14 @@ LAMMPS data file for polygons: squares of edge length L: Izz = 1/6mL^2 2 atoms 2 bodies 1 atom types --6 6 xlo xhi --6 6 ylo yhi +0 12 xlo xhi +0 12 ylo yhi -0.5 0.5 zlo zhi Atoms -1 1 1 1 0 0 0 -2 1 1 1 5 1 0 +1 1 1 1 4 5 0 +2 1 1 1 9 6 0 Bodies diff --git a/examples/body/in.squares b/examples/body/in.squares index c812b4e0be..8f949f2cdf 100755 --- a/examples/body/in.squares +++ b/examples/body/in.squares @@ -38,7 +38,7 @@ timestep 0.001 #fix 1 all nve/body #fix 1 all nvt/body temp $T $T 1.0 fix 1 all npt/body temp $T $T 1.0 x 0.001 $P 1.0 & - y 0.001 $P 1.0 couple xy + y 0.001 $P 1.0 couple xy fixedpoint 0 0 0 fix 2 all enforce2d From f5e9b1e021e57b0bc7c81a68964915aee623c9ca Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Tue, 29 May 2018 23:59:58 -0500 Subject: [PATCH 123/675] Added example input for fix wall rounded/polygon --- examples/body/in.squares | 4 +-- examples/body/in.wall2d | 56 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100755 examples/body/in.wall2d diff --git a/examples/body/in.squares b/examples/body/in.squares index 8f949f2cdf..f771c15381 100755 --- a/examples/body/in.squares +++ b/examples/body/in.squares @@ -20,8 +20,8 @@ velocity all create $T ${seed} dist gaussian mom yes rot yes variable cut_inner equal 0.5 variable k_n equal 100 variable k_na equal 2 -variable c_n equal 0.1 -variable c_t equal 0.1 +variable c_n equal 1 +variable c_t equal 1 variable mu equal 0.1 variable delta_ua equal 0.5 diff --git a/examples/body/in.wall2d b/examples/body/in.wall2d new file mode 100755 index 0000000000..19788a9dcd --- /dev/null +++ b/examples/body/in.wall2d @@ -0,0 +1,56 @@ +# 2d rounded polygon bodies + +variable r index 4 +variable steps index 100000 +variable T index 0.5 +variable P index 0.1 +variable seed index 980411 + +units lj +dimension 2 + +atom_style body rounded/polygon 1 6 +atom_modify map array +read_data data.squares + +replicate $r $r 1 + +velocity all create $T ${seed} dist gaussian mom yes rot yes + +change_box all boundary p f p + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 2 +variable c_n equal 0.1 +variable c_t equal 0.1 +variable mu equal 0.1 +variable delta_ua equal 0.5 + +pair_style body/rounded/polygon ${c_n} ${c_t} ${mu} ${delta_ua} ${cut_inner} +pair_coeff * * ${k_n} ${k_na} + +comm_modify vel yes + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +#fix 1 all nve/body +#fix 1 all nvt/body temp $T $T 1.0 +fix 1 all npt/body temp $T $T 1.0 x 0.001 $P 1.0 fixedpoint 0 0 0 + +fix 2 all enforce2d +fix 3 all wall/body/polygon 2000 50 50 yplane 0.0 48.0 + +compute 1 all body/local id 1 2 3 +dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] + +thermo_style custom step ke pe etotal press +thermo 1000 + +#dump 2 all image 10000 image.*.jpg type type zoom 2.0 adiam 1.5 body yes 0 0 +#dump_modify 2 pad 6 + +run ${steps} From 82b1ab2ac4b522d4b04db558b8959428873d01f0 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Wed, 30 May 2018 00:04:48 -0500 Subject: [PATCH 124/675] Cleaned up pair body rounded/polyhedron --- src/BODY/fix_wall_body_polygon.cpp | 2 +- src/BODY/fix_wall_body_polyhedron.cpp | 2 +- src/BODY/pair_body_rounded_polyhedron.cpp | 44 ----------------------- 3 files changed, 2 insertions(+), 46 deletions(-) diff --git a/src/BODY/fix_wall_body_polygon.cpp b/src/BODY/fix_wall_body_polygon.cpp index ea81ae26df..72a60b22d0 100644 --- a/src/BODY/fix_wall_body_polygon.cpp +++ b/src/BODY/fix_wall_body_polygon.cpp @@ -12,7 +12,7 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing authors: Trung Dac Nguyen (ndactrung@gmail.com) + Contributing author: Trung Dac Nguyen (ndactrung@gmail.com) ------------------------------------------------------------------------- */ #include diff --git a/src/BODY/fix_wall_body_polyhedron.cpp b/src/BODY/fix_wall_body_polyhedron.cpp index 4806da9673..879289ea42 100644 --- a/src/BODY/fix_wall_body_polyhedron.cpp +++ b/src/BODY/fix_wall_body_polyhedron.cpp @@ -12,7 +12,7 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing authors: Trung Dac Nguyen (ndactrung@gmail.com) + Contributing author: Trung Dac Nguyen (ndactrung@gmail.com) ------------------------------------------------------------------------- */ #include diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index 4c65f69530..96307a0ab1 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -609,15 +609,6 @@ void PairBodyRoundedPolyhedron::sphere_against_sphere(int ibody, int jbody, energy = 0; kernel_force(R, itype, jtype, energy, fpair); -/* - if (R <= 0) { // deformation occurs - fpair = -k_n * R - shift; - energy = (0.5 * k_n * R + shift) * R; - } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap - fpair = k_na * R - shift; - energy = (-0.5 * k_na * R + shift) * R; - } else fpair = 0.0; -*/ fx = delx*fpair/rij; fy = dely*fpair/rij; @@ -756,16 +747,6 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, energy = 0; kernel_force(R, itype, jtype, energy, fpair); -/* - if (R <= 0) { // deformation occurs - fpair = -k_n * R - shift; - energy = (0.5 * k_n * R + shift) * R; - } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap - fpair = k_na * R - shift; - energy = (-0.5 * k_na * R + shift) * R; - } else fpair = 0.0; -*/ - fx = delx*fpair/rij; fy = dely*fpair/rij; @@ -908,15 +889,6 @@ void PairBodyRoundedPolyhedron::sphere_against_face(int ibody, int jbody, energy = 0; kernel_force(R, itype, jtype, energy, fpair); -/* - if (R <= 0) { // deformation occurs - fpair = -k_n * R - shift; - energy = (0.5 * k_n * R + shift) * R; - } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap - fpair = k_na * R - shift; - energy = (-0.5 * k_na * R + shift) * R; - } else fpair = 0.0; -*/ fx = delx*fpair/rij; fy = dely*fpair/rij; @@ -1506,15 +1478,6 @@ void PairBodyRoundedPolyhedron::pair_force_and_torque(int ibody, int jbody, R = r - contact_dist; kernel_force(R, itype, jtype, energy, fpair); -/* - if (R <= 0) { // deformation occurs - fpair = -k_n * R - shift; - energy += (0.5 * k_n * R + shift) * R; - } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap - fpair = k_na * R - shift; - energy += (-0.5 * k_na * R + shift) * R; - } else fpair = 0.0; -*/ fx = delx*fpair/r; fy = dely*fpair/r; @@ -1743,13 +1706,6 @@ void PairBodyRoundedPolyhedron::rescale_cohesive_forces(double** x, double energy = 0; kernel_force(R, itype, jtype, energy, fpair); -/* - if (R <= 0) { // deformation occurs - fpair = -k_n * R - shift; - } else if (R <= cut_inner) { // not deforming but cohesive ranges overlap - fpair = k_na * R - shift; - } else fpair = 0.0; -*/ fpair *= j_a; fx = delx*fpair/r; From 1ee85e59c3f25bb9fb70c8c703417cbac6b818bc Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Fri, 1 Jun 2018 14:50:41 -0400 Subject: [PATCH 125/675] Removed obsolete changes to fix_nve-manifold_rattle --- src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp b/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp index 543d49278d..4dcc3f9704 100644 --- a/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp +++ b/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp @@ -513,6 +513,7 @@ void FixNVEManifoldRattle::rattle_manifold_x(double *x, double *v, const double c_inv = 1.0 / c; + while ( 1 ) { v[0] = vt[0] - l*no_dt[0]; v[1] = vt[1] - l*no_dt[1]; @@ -650,10 +651,10 @@ void FixNVEManifoldRattle::rattle_manifold_v(double *v, double *f, }while( (res > tolerance) && (iters < max_iter) ); if( iters >= max_iter && res >= tolerance ){ - char msg[2048]; - sprintf(msg,"Failed to constrain atom %d (x = (%f, %f, %f)! res = %e, iters = %d\n", - tagi, x[0], x[1], x[2], res, iters); - error->all(FLERR,msg); + char msg[2048]; + sprintf(msg,"Failed to constrain atom %d (x = (%f, %f, %f)! res = %e, iters = %d\n", + tagi, x[0], x[1], x[2], res, iters); + error->all(FLERR,msg); } stats.v_iters += iters; From 962946ee45df30722b1288afde0f7be334049842 Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Fri, 1 Jun 2018 14:52:34 -0400 Subject: [PATCH 126/675] Ported fix enforce2d to Kokkos. --- doc/src/fix_enforce2d.txt | 1 + src/KOKKOS/fix_enforce2d_kokkos.cpp | 102 ++++++++++++++++++++++++++++ src/KOKKOS/fix_enforce2d_kokkos.h | 92 +++++++++++++++++++++++++ 3 files changed, 195 insertions(+) create mode 100644 src/KOKKOS/fix_enforce2d_kokkos.cpp create mode 100644 src/KOKKOS/fix_enforce2d_kokkos.h diff --git a/doc/src/fix_enforce2d.txt b/doc/src/fix_enforce2d.txt index 5d04e96677..01840254b6 100644 --- a/doc/src/fix_enforce2d.txt +++ b/doc/src/fix_enforce2d.txt @@ -7,6 +7,7 @@ :line fix enforce2d command :h3 +fix enforce2d/kk command :h3 [Syntax:] diff --git a/src/KOKKOS/fix_enforce2d_kokkos.cpp b/src/KOKKOS/fix_enforce2d_kokkos.cpp new file mode 100644 index 0000000000..b5fb964ea8 --- /dev/null +++ b/src/KOKKOS/fix_enforce2d_kokkos.cpp @@ -0,0 +1,102 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing authors: Stefan Paquay (Brandeis University) +------------------------------------------------------------------------- */ + +#include "atom_masks.h" +#include "atom_kokkos.h" +#include "fix_enforce2d_kokkos.h" + +using namespace LAMMPS_NS; + + +template +FixEnforce2DKokkos::FixEnforce2DKokkos(LAMMPS *lmp, int narg, char **arg) : + FixEnforce2D(lmp, narg, arg) +{ + kokkosable = 1; + atomKK = (AtomKokkos *) atom; + execution_space = ExecutionSpaceFromDevice::space; + + datamask_read = X_MASK | V_MASK | F_MASK | MASK_MASK; + datamask_modify = X_MASK | V_MASK | F_MASK; +} + + +template +void FixEnforce2DKokkos::setup(int vflag) +{ + post_force(vflag); +} + + +template +void FixEnforce2DKokkos::post_force(int vflag) +{ + atomKK->sync(execution_space,datamask_read); + atomKK->modified(execution_space,datamask_modify); + + x = atomKK->k_x.view(); + v = atomKK->k_v.view(); + f = atomKK->k_f.view(); + + mask = atomKK->k_mask.view(); + + int nlocal = atomKK->nlocal; + if (igroup == atomKK->firstgroup) nlocal = atomKK->nfirst; + + FixEnforce2DKokkosPostForceFunctor functor(this); + Kokkos::parallel_for(nlocal,functor); + + // Probably sync here again? + atomKK->sync(execution_space,datamask_read); + atomKK->modified(execution_space,datamask_modify); + + for (int m = 0; m < nfixlist; m++) + flist[m]->enforce2d(); + + +} + + +template +void FixEnforce2DKokkos::post_force_item( int i ) const +{ + + if (mask[i] & groupbit){ + v(i,2) = 0; + x(i,2) = 0; + f(i,2) = 0; + + // Add for omega, angmom, torque... + } + +} + + +template +void FixEnforce2DKokkos::cleanup_copy() +{ + id = style = NULL; + vatom = NULL; +} + + +namespace LAMMPS_NS { +template class FixEnforce2DKokkos; +#ifdef KOKKOS_HAVE_CUDA +template class FixEnforce2DKokkos; +#endif +} diff --git a/src/KOKKOS/fix_enforce2d_kokkos.h b/src/KOKKOS/fix_enforce2d_kokkos.h new file mode 100644 index 0000000000..11cb213210 --- /dev/null +++ b/src/KOKKOS/fix_enforce2d_kokkos.h @@ -0,0 +1,92 @@ +/* -*- 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 FIX_CLASS + +FixStyle(enforce2d/kk,FixEnforce2DKokkos) +FixStyle(enforce2d/kk/device,FixEnforce2DKokkos) +FixStyle(enforce2d/kk/host,FixEnforce2DKokkos) + +#else + +#ifndef LMP_FIX_ENFORCE2D_KOKKOS_H +#define LMP_FIX_ENFORCE2D_KOKKOS_H + +#include "fix_enforce2d.h" +#include "kokkos_type.h" + +namespace LAMMPS_NS { + +template +class FixEnforce2DKokkos : public FixEnforce2D { + public: + FixEnforce2DKokkos(class LAMMPS *, int, char **); + // ~FixEnforce2DKokkos() {} + // void init(); + void cleanup_copy(); + void setup(int); + void post_force(int); + + KOKKOS_INLINE_FUNCTION + void post_force_item(int) const; + + // void min_setup(int); Kokkos does not support minimization (yet) + // void min_post_force(int); Kokkos does not support minimization (yet) + // void post_force_respa(int, int, int); No RRESPA support yet. + + private: + + typename ArrayTypes::t_x_array x; + typename ArrayTypes::t_v_array v; + typename ArrayTypes::t_f_array f; + + typename ArrayTypes::t_int_1d mask; +}; + + +template +struct FixEnforce2DKokkosPostForceFunctor { + typedef DeviceType device_type; + FixEnforce2DKokkos c; + + FixEnforce2DKokkosPostForceFunctor(FixEnforce2DKokkos* c_ptr): + c(*c_ptr) {c.cleanup_copy();}; + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { + c.post_force_item(i); + } +}; + + +} + +#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: Cannot use fix enforce2d with 3d simulation + +Self-explanatory. + +E: Fix enforce2d must be defined after fix %s + +UNDOCUMENTED + +*/ From 9dda907f7d94fd439da5f1006ed9dad14760b876 Mon Sep 17 00:00:00 2001 From: julient31 Date: Fri, 1 Jun 2018 15:19:27 -0600 Subject: [PATCH 127/675] Commit JT 060118 Changes Stan --- src/atom.cpp | 1 - src/dump_custom.cpp | 14 ++++++++------ src/verlet.cpp | 2 -- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/atom.cpp b/src/atom.cpp index 51b48f3e1b..3a4d2c3b38 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -507,7 +507,6 @@ AtomVec *Atom::new_avec(const char *style, int trysuffix, int &sflag) AtomVecCreator avec_creator = (*avec_map)[style]; return avec_creator(lmp); } - //printf("test entries function: %s, %d, %d \n ",style, trysuffix, &sflag); error->all(FLERR,"Unknown atom style"); return NULL; } diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 25925d6184..8e798ebd48 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -83,8 +83,8 @@ DumpCustom::DumpCustom(LAMMPS *lmp, int narg, char **arg) : pack_choice = new FnPtrPack[nfield]; vtype = new int[nfield]; - field2index = new int[nfield]; - argindex = new int[nfield]; + memory->create(field2index,nfield,"dump:field2index"); + memory->create(argindex,nfield,"dump:argindex"); buffer_allow = 1; buffer_flag = 1; @@ -201,8 +201,8 @@ DumpCustom::~DumpCustom() delete [] pack_choice; delete [] vtype; - delete [] field2index; - delete [] argindex; + memory->destroy(field2index); + memory->destroy(argindex); delete [] idregion; memory->destroy(thresh_array); @@ -245,8 +245,10 @@ DumpCustom::~DumpCustom() for (int i = 1; i <= ntypes; i++) delete [] typenames[i]; delete [] typenames; - for (int i = 0; i < size_one; i++) delete [] vformat[i]; - delete [] vformat; + if(vformat) { + for (int i = 0; i < size_one; i++) delete [] vformat[i]; + delete [] vformat; + } for (int i = 0; i < size_one; i++) delete [] format_column_user[i]; delete [] format_column_user; diff --git a/src/verlet.cpp b/src/verlet.cpp index a00b470e60..fe768f94c9 100644 --- a/src/verlet.cpp +++ b/src/verlet.cpp @@ -387,8 +387,6 @@ void Verlet::force_clear() if (nbytes) { memset(&atom->f[0][0],0,3*nbytes); - //test memset for fm - //memset(&atom->fm[0][0],0,3*nbytes); if (torqueflag) memset(&atom->torque[0][0],0,3*nbytes); if (extraflag) atom->avec->force_clear(0,nbytes); } From 031077b4fa2c62d59da6720b68c7dd633eb87377 Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Fri, 1 Jun 2018 17:19:53 -0400 Subject: [PATCH 128/675] Made enforce2d also set rotations to in-plane. --- src/KOKKOS/fix_enforce2d_kokkos.cpp | 104 ++++++++++++++++++++++++---- src/KOKKOS/fix_enforce2d_kokkos.h | 15 ++-- 2 files changed, 102 insertions(+), 17 deletions(-) diff --git a/src/KOKKOS/fix_enforce2d_kokkos.cpp b/src/KOKKOS/fix_enforce2d_kokkos.cpp index b5fb964ea8..88291ead6e 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.cpp +++ b/src/KOKKOS/fix_enforce2d_kokkos.cpp @@ -12,13 +12,16 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing authors: Stefan Paquay (Brandeis University) + Contributing authors: Stefan Paquay & Matthew Peterson (Brandeis University) ------------------------------------------------------------------------- */ #include "atom_masks.h" #include "atom_kokkos.h" +#include "comm.h" +#include "error.h" #include "fix_enforce2d_kokkos.h" + using namespace LAMMPS_NS; @@ -30,14 +33,21 @@ FixEnforce2DKokkos::FixEnforce2DKokkos(LAMMPS *lmp, int narg, char * atomKK = (AtomKokkos *) atom; execution_space = ExecutionSpaceFromDevice::space; - datamask_read = X_MASK | V_MASK | F_MASK | MASK_MASK; - datamask_modify = X_MASK | V_MASK | F_MASK; + datamask_read = X_MASK | V_MASK | F_MASK | OMEGA_MASK | MASK_MASK; + /* TORQUE_MASK | ANGMOM_MASK | */ // MASK_MASK; + + datamask_modify = X_MASK | V_MASK | F_MASK | OMEGA_MASK; // | + /* TORQUE_MASK | ANGMOM_MASK */ ; } template void FixEnforce2DKokkos::setup(int vflag) { + if( comm->me == 0 ){ + fprintf(screen, "omega, angmom and torque flags are %d, %d, %d\n", + atomKK->omega_flag, atomKK->angmom_flag, atomKK->torque_flag ); + } post_force(vflag); } @@ -52,13 +62,71 @@ void FixEnforce2DKokkos::post_force(int vflag) v = atomKK->k_v.view(); f = atomKK->k_f.view(); + if( atomKK->omega_flag ) + omega = atomKK->k_omega.view(); + + if( atomKK->angmom_flag ) + angmom = atomKK->k_angmom.view(); + + if( atomKK->torque_flag ) + torque = atomKK->k_torque.view(); + + mask = atomKK->k_mask.view(); int nlocal = atomKK->nlocal; if (igroup == atomKK->firstgroup) nlocal = atomKK->nfirst; - FixEnforce2DKokkosPostForceFunctor functor(this); - Kokkos::parallel_for(nlocal,functor); + int flag_mask = 0; + if( atomKK->omega_flag ) flag_mask |= 1; + if( atomKK->angmom_flag ) flag_mask |= 2; + if( atomKK->torque_flag ) flag_mask |= 4; + + switch( flag_mask ){ + case 0:{ + FixEnforce2DKokkosPostForceFunctor functor(this); + Kokkos::parallel_for(nlocal,functor); + break; + } + case 1:{ + FixEnforce2DKokkosPostForceFunctor functor(this); + Kokkos::parallel_for(nlocal,functor); + break; + } + case 2:{ + FixEnforce2DKokkosPostForceFunctor functor(this); + Kokkos::parallel_for(nlocal,functor); + break; + } + case 3:{ + FixEnforce2DKokkosPostForceFunctor functor(this); + Kokkos::parallel_for(nlocal,functor); + break; + } + case 4:{ + FixEnforce2DKokkosPostForceFunctor functor(this); + Kokkos::parallel_for(nlocal,functor); + break; + } + case 5:{ + FixEnforce2DKokkosPostForceFunctor functor(this); + Kokkos::parallel_for(nlocal,functor); + break; + } + case 6:{ + FixEnforce2DKokkosPostForceFunctor functor(this); + Kokkos::parallel_for(nlocal,functor); + break; + } + case 7:{ + FixEnforce2DKokkosPostForceFunctor functor(this); + Kokkos::parallel_for(nlocal,functor); + break; + } + default: + error->all(FLERR, "flag_mask outside of what it should be"); + } + // Probably sync here again? atomKK->sync(execution_space,datamask_read); @@ -66,23 +134,33 @@ void FixEnforce2DKokkos::post_force(int vflag) for (int m = 0; m < nfixlist; m++) flist[m]->enforce2d(); - - } template +template void FixEnforce2DKokkos::post_force_item( int i ) const { - if (mask[i] & groupbit){ - v(i,2) = 0; - x(i,2) = 0; - f(i,2) = 0; + // x(i,2) = 0; // Enforce2d does not set x[2] to zero either... :/ + v(i,2) = 0.0; + f(i,2) = 0.0; - // Add for omega, angmom, torque... + if(omega_flag){ + omega(i,0) = 0.0; + omega(i,1) = 0.0; + } + + if(angmom_flag){ + angmom(i,0) = 0.0; + angmom(i,1) = 0.0; + } + + if(torque_flag){ + torque(i,0) = 0.0; + torque(i,1) = 0.0; + } } - } diff --git a/src/KOKKOS/fix_enforce2d_kokkos.h b/src/KOKKOS/fix_enforce2d_kokkos.h index 11cb213210..4130797f2c 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.h +++ b/src/KOKKOS/fix_enforce2d_kokkos.h @@ -37,8 +37,9 @@ class FixEnforce2DKokkos : public FixEnforce2D { void setup(int); void post_force(int); + template KOKKOS_INLINE_FUNCTION - void post_force_item(int) const; + void post_force_item(const int i) const; // void min_setup(int); Kokkos does not support minimization (yet) // void min_post_force(int); Kokkos does not support minimization (yet) @@ -50,20 +51,26 @@ class FixEnforce2DKokkos : public FixEnforce2D { typename ArrayTypes::t_v_array v; typename ArrayTypes::t_f_array f; + typename ArrayTypes::t_v_array omega; + typename ArrayTypes::t_v_array angmom; + typename ArrayTypes::t_f_array torque; + typename ArrayTypes::t_int_1d mask; }; -template -struct FixEnforce2DKokkosPostForceFunctor { +template +struct FixEnforce2DKokkosPostForceFunctor { typedef DeviceType device_type; FixEnforce2DKokkos c; FixEnforce2DKokkosPostForceFunctor(FixEnforce2DKokkos* c_ptr): c(*c_ptr) {c.cleanup_copy();}; + KOKKOS_INLINE_FUNCTION void operator()(const int i) const { - c.post_force_item(i); + // c.template? Really C++? + c.template post_force_item (i); } }; From 0e9691831321c8d2c4f03614b3076eaa34f48f2f Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Fri, 1 Jun 2018 17:22:25 -0400 Subject: [PATCH 129/675] Made enforce2d_kokkos actually set data masks. --- src/KOKKOS/fix_enforce2d_kokkos.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/KOKKOS/fix_enforce2d_kokkos.cpp b/src/KOKKOS/fix_enforce2d_kokkos.cpp index 88291ead6e..e9a42e5c31 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.cpp +++ b/src/KOKKOS/fix_enforce2d_kokkos.cpp @@ -33,11 +33,11 @@ FixEnforce2DKokkos::FixEnforce2DKokkos(LAMMPS *lmp, int narg, char * atomKK = (AtomKokkos *) atom; execution_space = ExecutionSpaceFromDevice::space; - datamask_read = X_MASK | V_MASK | F_MASK | OMEGA_MASK | MASK_MASK; - /* TORQUE_MASK | ANGMOM_MASK | */ // MASK_MASK; + datamask_read = X_MASK | V_MASK | F_MASK | OMEGA_MASK | MASK_MASK + | TORQUE_MASK | ANGMOM_MASK; // | */ // MASK_MASK; - datamask_modify = X_MASK | V_MASK | F_MASK | OMEGA_MASK; // | - /* TORQUE_MASK | ANGMOM_MASK */ ; + datamask_modify = X_MASK | V_MASK | F_MASK | OMEGA_MASK + | TORQUE_MASK | ANGMOM_MASK; } From 824a21a661fe679fadaf3ef7f43e954a9e35e7a6 Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Mon, 4 Jun 2018 12:28:06 -0400 Subject: [PATCH 130/675] Removed debug printing from setup. --- src/KOKKOS/fix_enforce2d_kokkos.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/KOKKOS/fix_enforce2d_kokkos.cpp b/src/KOKKOS/fix_enforce2d_kokkos.cpp index e9a42e5c31..8ba68a0c0c 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.cpp +++ b/src/KOKKOS/fix_enforce2d_kokkos.cpp @@ -44,10 +44,6 @@ FixEnforce2DKokkos::FixEnforce2DKokkos(LAMMPS *lmp, int narg, char * template void FixEnforce2DKokkos::setup(int vflag) { - if( comm->me == 0 ){ - fprintf(screen, "omega, angmom and torque flags are %d, %d, %d\n", - atomKK->omega_flag, atomKK->angmom_flag, atomKK->torque_flag ); - } post_force(vflag); } From 4c28827aa101ceff3ab4df438c101893be1638e1 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 5 Jun 2018 12:32:18 -0600 Subject: [PATCH 131/675] JT commit 060518 --- src/SPIN/pair_spin_neel.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 23328736b1..36deab81f1 100755 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -583,8 +583,8 @@ void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], do // adding three contributions fi[0] = pdx + pq1x + pq2x; - fi[2] = pdy + pq1y + pq2y; - fi[3] = pdz + pq1z + pq2z; + fi[1] = pdy + pq1y + pq2y; + fi[2] = pdz + pq1z + pq2z; } /* ---------------------------------------------------------------------- From 4bf9a93c11c9f2baf4290dea63b6db6e7ad199cb Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Wed, 6 Jun 2018 10:47:07 -0400 Subject: [PATCH 132/675] Removed x dependency from enforce2d_kokkos. --- src/KOKKOS/fix_enforce2d_kokkos.cpp | 9 ++++++--- src/KOKKOS/fix_enforce2d_kokkos.h | 2 -- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/KOKKOS/fix_enforce2d_kokkos.cpp b/src/KOKKOS/fix_enforce2d_kokkos.cpp index 8ba68a0c0c..da33455978 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.cpp +++ b/src/KOKKOS/fix_enforce2d_kokkos.cpp @@ -33,10 +33,10 @@ FixEnforce2DKokkos::FixEnforce2DKokkos(LAMMPS *lmp, int narg, char * atomKK = (AtomKokkos *) atom; execution_space = ExecutionSpaceFromDevice::space; - datamask_read = X_MASK | V_MASK | F_MASK | OMEGA_MASK | MASK_MASK + datamask_read = V_MASK | F_MASK | OMEGA_MASK | MASK_MASK | TORQUE_MASK | ANGMOM_MASK; // | */ // MASK_MASK; - datamask_modify = X_MASK | V_MASK | F_MASK | OMEGA_MASK + datamask_modify = V_MASK | F_MASK | OMEGA_MASK | TORQUE_MASK | ANGMOM_MASK; } @@ -44,6 +44,10 @@ FixEnforce2DKokkos::FixEnforce2DKokkos(LAMMPS *lmp, int narg, char * template void FixEnforce2DKokkos::setup(int vflag) { + if( comm->me == 0 ){ + fprintf(screen, "omega, angmom and torque flags are %d, %d, %d\n", + atomKK->omega_flag, atomKK->angmom_flag, atomKK->torque_flag ); + } post_force(vflag); } @@ -54,7 +58,6 @@ void FixEnforce2DKokkos::post_force(int vflag) atomKK->sync(execution_space,datamask_read); atomKK->modified(execution_space,datamask_modify); - x = atomKK->k_x.view(); v = atomKK->k_v.view(); f = atomKK->k_f.view(); diff --git a/src/KOKKOS/fix_enforce2d_kokkos.h b/src/KOKKOS/fix_enforce2d_kokkos.h index 4130797f2c..d8a13d281f 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.h +++ b/src/KOKKOS/fix_enforce2d_kokkos.h @@ -46,8 +46,6 @@ class FixEnforce2DKokkos : public FixEnforce2D { // void post_force_respa(int, int, int); No RRESPA support yet. private: - - typename ArrayTypes::t_x_array x; typename ArrayTypes::t_v_array v; typename ArrayTypes::t_f_array f; From d0ba8e1dcbe7527914a6f5bb1dc74bf4fda8c5f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Trnka?= Date: Wed, 6 Jun 2018 17:24:26 +0200 Subject: [PATCH 133/675] Make omega_mass proportional to (N+1)kT According to papers like Martyna, Tobias, Klein (JCP 1994, doi:10.1063/1.467468 section II.F) and Martyna, Tuckerman, Tobias, Klein (Mol. Phys. 1996, doi:10.1080/00268979600100761 section 2.5), the mass of the cell parameters should be proportional to (Ndof + dim) / dim, or in other words, Natoms + 1. --- src/fix_nh.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fix_nh.cpp b/src/fix_nh.cpp index 186376d952..170fd9db16 100644 --- a/src/fix_nh.cpp +++ b/src/fix_nh.cpp @@ -798,7 +798,7 @@ void FixNH::setup(int vflag) if (pstat_flag) { double kt = boltz * t_target; - double nkt = atom->natoms * kt; + double nkt = (atom->natoms + 1) * kt; for (int i = 0; i < 3; i++) if (p_flag[i]) @@ -1826,7 +1826,7 @@ void FixNH::nhc_press_integrate() // Update masses, to preserve initial freq, if flag set if (omega_mass_flag) { - double nkt = atom->natoms * kt; + double nkt = (atom->natoms + 1) * kt; for (int i = 0; i < 3; i++) if (p_flag[i]) omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); From 3495141dbe6b4728ab2ad9bcd2f2ecd43994c2da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Trnka?= Date: Wed, 6 Jun 2018 17:35:19 +0200 Subject: [PATCH 134/675] Fix the target kinetic energy of the NH barostat The cell momenta should be thermostatted to kT per barostat degree of freedom (d^2 in general, d*(d-1) without rotations), according to Shinoda et al. 2004 (doi:10.1103/PhysRevB.69.134103) Eqn. 1 and Martyna, Tobias, Klein (JCP 1994, doi:10.1063/1.467468 section II.D). --- src/fix_nh.cpp | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/fix_nh.cpp b/src/fix_nh.cpp index 170fd9db16..73c70420c5 100644 --- a/src/fix_nh.cpp +++ b/src/fix_nh.cpp @@ -1446,7 +1446,7 @@ double FixNH::compute_scalar() double volume; double energy; double kt = boltz * t_target; - double lkt_press = kt; + double lkt_press = 0.0; int ich; if (dimension == 3) volume = domain->xprd * domain->yprd * domain->zprd; else volume = domain->xprd * domain->yprd; @@ -1477,15 +1477,21 @@ double FixNH::compute_scalar() // sum is over barostatted dimensions if (pstat_flag) { - for (i = 0; i < 3; i++) - if (p_flag[i]) + for (i = 0; i < 3; i++) { + if (p_flag[i]) { energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i] + p_hydro*(volume-vol0) / (pdim*nktv2p); + lkt_press += kt; + } + } if (pstyle == TRICLINIC) { - for (i = 3; i < 6; i++) - if (p_flag[i]) + for (i = 3; i < 6; i++) { + if (p_flag[i]) { energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i]; + lkt_press += kt; + } + } } // extra contributions from thermostat chain for barostat @@ -1818,10 +1824,10 @@ void FixNH::nhc_temp_integrate() void FixNH::nhc_press_integrate() { - int ich,i; + int ich,i,pdof; double expfac,factor_etap,kecurrent; double kt = boltz * t_target; - double lkt_press = kt; + double lkt_press; // Update masses, to preserve initial freq, if flag set @@ -1850,14 +1856,22 @@ void FixNH::nhc_press_integrate() } kecurrent = 0.0; + pdof = 0; for (i = 0; i < 3; i++) - if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + if (p_flag[i]) { + kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + pdof++; + } if (pstyle == TRICLINIC) { for (i = 3; i < 6; i++) - if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + if (p_flag[i]) { + kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + pdof++; + } } + lkt_press = pdof * kt; etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0]; double ncfac = 1.0/nc_pchain; From 8a2faff5417641a577d2249256e9aae86ba5e431 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 15 Jun 2018 16:40:25 -0400 Subject: [PATCH 135/675] integrate compute pentropy/atom into the documentation tree --- doc/src/Section_commands.txt | 1 + .../{compute_pair_entropy_atom.txt => compute_pentropy_atom.txt} | 0 doc/src/computes.txt | 1 + doc/src/lammps.book | 1 + 4 files changed, 3 insertions(+) rename doc/src/{compute_pair_entropy_atom.txt => compute_pentropy_atom.txt} (100%) diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index 76051490e4..25e3b5ffbe 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -861,6 +861,7 @@ package"_Section_start.html#start_3. "meso/t/atom"_compute_meso_t_atom.html, "pe/tally"_compute_tally.html, "pe/mol/tally"_compute_tally.html, +"pentropy/atom"_compute_pentropy_atom.html, "pressure/uef"_compute_pressure_uef.html, "saed"_compute_saed.html, "smd/contact/radius"_compute_smd_contact_radius.html, diff --git a/doc/src/compute_pair_entropy_atom.txt b/doc/src/compute_pentropy_atom.txt similarity index 100% rename from doc/src/compute_pair_entropy_atom.txt rename to doc/src/compute_pentropy_atom.txt diff --git a/doc/src/computes.txt b/doc/src/computes.txt index 1b64e2e5b4..ec197cb433 100644 --- a/doc/src/computes.txt +++ b/doc/src/computes.txt @@ -63,6 +63,7 @@ Computes :h1 compute_pair_local compute_pe compute_pe_atom + compute_pentropy_atom compute_plasticity_atom compute_pressure compute_pressure_uef diff --git a/doc/src/lammps.book b/doc/src/lammps.book index ec34f41872..bea6767993 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -347,6 +347,7 @@ compute_pair.html compute_pair_local.html compute_pe.html compute_pe_atom.html +compute_pentropy_atom.html compute_plasticity_atom.html compute_pressure.html compute_pressure_uef.html From 76b85e4d25e03b557e236491b3a97beeac66cbd7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 15 Jun 2018 16:43:19 -0400 Subject: [PATCH 136/675] rename source files for compute pentropy/atom to match the command name --- ...te_pair_entropy_atom.cpp => compute_pentropy_atom.cpp} | 8 ++++---- ...ompute_pair_entropy_atom.h => compute_pentropy_atom.h} | 0 2 files changed, 4 insertions(+), 4 deletions(-) rename src/USER-MISC/{compute_pair_entropy_atom.cpp => compute_pentropy_atom.cpp} (99%) rename src/USER-MISC/{compute_pair_entropy_atom.h => compute_pentropy_atom.h} (100%) diff --git a/src/USER-MISC/compute_pair_entropy_atom.cpp b/src/USER-MISC/compute_pentropy_atom.cpp similarity index 99% rename from src/USER-MISC/compute_pair_entropy_atom.cpp rename to src/USER-MISC/compute_pentropy_atom.cpp index b5da941f7f..ccdeb6d31e 100644 --- a/src/USER-MISC/compute_pair_entropy_atom.cpp +++ b/src/USER-MISC/compute_pentropy_atom.cpp @@ -15,10 +15,10 @@ Contributing author: Pablo Piaggi (EPFL Lausanne) ------------------------------------------------------------------------- */ -#include -#include -#include -#include "compute_pair_entropy_atom.h" +#include +#include +#include +#include "compute_pentropy_atom.h" #include "atom.h" #include "update.h" #include "modify.h" diff --git a/src/USER-MISC/compute_pair_entropy_atom.h b/src/USER-MISC/compute_pentropy_atom.h similarity index 100% rename from src/USER-MISC/compute_pair_entropy_atom.h rename to src/USER-MISC/compute_pentropy_atom.h From 9ef1bfe81443d2034c22fc0a566021254ce1d8b3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 15 Jun 2018 16:44:07 -0400 Subject: [PATCH 137/675] whitespace cleanup --- src/USER-MISC/compute_pentropy_atom.cpp | 26 ++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/USER-MISC/compute_pentropy_atom.cpp b/src/USER-MISC/compute_pentropy_atom.cpp index ccdeb6d31e..271648e3c5 100644 --- a/src/USER-MISC/compute_pentropy_atom.cpp +++ b/src/USER-MISC/compute_pentropy_atom.cpp @@ -50,10 +50,10 @@ ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : " of arguments"); // Arguments are: sigma cutoff avg yes/no cutoff2 local yes/no - // sigma is the gaussian width - // cutoff is the cutoff for the calculation of g(r) + // sigma is the gaussian width + // cutoff is the cutoff for the calculation of g(r) // avg is optional and allows averaging the pair entropy over neighbors - // the next argument should be yes or no + // the next argument should be yes or no // cutoff2 is the cutoff for the averaging // local is optional and allows using the local density to normalize // the g(r) @@ -102,8 +102,8 @@ ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : // Number of bins above and below the central one that will be // considered as affected by the gaussian kernel // 2 seems a good compromise between speed and good mollification - deltabin = 2; - deltar = sigma; + deltabin = 2; + deltar = sigma; peratom_flag = 1; size_peratom_cols = 0; } @@ -124,9 +124,9 @@ void ComputePairEntropyAtom::init() error->all(FLERR,"Compute centro/atom requires a pair style be" " defined"); - if ( (cutoff+cutoff2) > (force->pair->cutforce + neighbor->skin) ) + if ( (cutoff+cutoff2) > (force->pair->cutforce + neighbor->skin) ) { - error->all(FLERR,"Compute pentropy/atom cutoff is longer than the" + error->all(FLERR,"Compute pentropy/atom cutoff is longer than the" " pairwise cutoff. Increase the neighbor list skin" " distance."); } @@ -220,16 +220,16 @@ void ComputePairEntropyAtom::compute_peratom() // If local density is used, calculate it if (local_flag) { double neigh_cutoff = force->pair->cutforce + neighbor->skin; - double volume = + double volume = (4./3.)*MY_PI*neigh_cutoff*neigh_cutoff*neigh_cutoff; density = jnum / volume; } // calculate kernel normalization // Normalization of g(r) - double normConstantBase = 4*MY_PI*density; + double normConstantBase = 4*MY_PI*density; // Normalization of gaussian - normConstantBase *= sqrt(2.*MY_PI)*sigma; + normConstantBase *= sqrt(2.*MY_PI)*sigma; double invNormConstantBase = 1./normConstantBase; // loop over list of all neighbors within force cutoff @@ -259,7 +259,7 @@ void ComputePairEntropyAtom::compute_peratom() for(int k=minbin;k Date: Fri, 15 Jun 2018 16:55:05 -0400 Subject: [PATCH 138/675] include compute pentropy/atom in src/USER-MISC/README --- src/USER-MISC/README | 1 + 1 file changed, 1 insertion(+) diff --git a/src/USER-MISC/README b/src/USER-MISC/README index a8c33fa380..6fb2dd6010 100644 --- a/src/USER-MISC/README +++ b/src/USER-MISC/README @@ -29,6 +29,7 @@ bond_style harmonic/shift/cut, Carsten Svaneborg, science at zqex.dk, 8 Aug 11 compute ackland/atom, Gerolf Ziegenhain, gerolf at ziegenhain.com, 4 Oct 2007 compute basal/atom, Christopher Barrett, cdb333 at cavs.msstate.edu, 3 Mar 2013 compute cnp/atom, Paulo Branicio (USC), branicio at usc.edu, 31 May 2017 +compute pentropy/atom, Pablo M. Piaggi (EPFL), , 15 June 2018 compute temp/rotate, Laurent Joly (U Lyon), ljoly.ulyon at gmail.com, 8 Aug 11 compute PRESSURE/GREM, David Stelter, dstelter@bu.edu, 22 Nov 16 dihedral_style cosine/shift/exp, Carsten Svaneborg, science at zqex.dk, 8 Aug 11 From b2e6863d937b7e902746b554e5227f3a046cee04 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 15 Jun 2018 17:01:26 -0400 Subject: [PATCH 139/675] add reference log file. --- .../USER/misc/pair_entropy/log.pairentropy | 316 ++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 examples/USER/misc/pair_entropy/log.pairentropy diff --git a/examples/USER/misc/pair_entropy/log.pairentropy b/examples/USER/misc/pair_entropy/log.pairentropy new file mode 100644 index 0000000000..21474639af --- /dev/null +++ b/examples/USER/misc/pair_entropy/log.pairentropy @@ -0,0 +1,316 @@ +LAMMPS (30 Mar 2018) + using 1 OpenMP thread(s) per MPI task +echo both + +units metal +atom_style full + +read_data data.interface + triclinic box = (0 0 0) to (138.4 34.57 34.57) with tilt (0 0 0) + 4 by 1 by 1 MPI processor grid + reading atoms ... + 4096 atoms + reading velocities ... + 4096 velocities + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors +mass 1 22.98977 + +neigh_modify delay 10 every 1 +pair_style eam/fs +pair_coeff * * Na_MendelevM_2014.eam.fs Na +timestep 0.002 +thermo 500 + +neighbor 4. bin + +# Define computes +# Global density, no average +compute 1 all pentropy/atom 0.25 7.75 +# Local density, no average +compute 2 all pentropy/atom 0.25 7.75 local yes +# Global density, average over neighbors +compute 3 all pentropy/atom 0.25 7.75 avg yes 5. +# Local density, average over neighbors +compute 4 all pentropy/atom 0.25 7.75 avg yes 5. local yes + +dump myDump all custom 500 dump.interface id type x y z c_1 c_2 c_3 c_4 + + +fix 1 all nph x 1. 1. 10. +fix 2 all temp/csvr 350. 350. 0.1 64582 + +run 100000 +WARNING: More than one compute pentropy/atom (../compute_pentropy_atom.cpp:138) +WARNING: More than one compute pentropy/atom (../compute_pentropy_atom.cpp:138) +WARNING: More than one compute pentropy/atom (../compute_pentropy_atom.cpp:138) +WARNING: More than one compute pentropy/atom (../compute_pentropy_atom.cpp:138) +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 13.2 + ghost atom cutoff = 13.2 + binsize = 6.6, bins = 21 6 6 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair eam/fs, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/3d/newton/tri + bin: standard + (2) compute pentropy/atom, perpetual + attributes: full, newton on, ghost + pair build: full/bin/ghost + stencil: full/ghost/bin/3d + bin: standard + (3) compute pentropy/atom, perpetual, copy from (2) + attributes: full, newton on, ghost + pair build: copy + stencil: none + bin: none + (4) compute pentropy/atom, perpetual, copy from (2) + attributes: full, newton on, ghost + pair build: copy + stencil: none + bin: none + (5) compute pentropy/atom, perpetual, copy from (2) + attributes: full, newton on, ghost + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 25.68 | 25.69 | 25.69 Mbytes +Step Temp E_pair E_mol TotEng Press Volume + 0 346.29871 -4285.222 0 -4101.9191 594.65353 165399.75 + 500 359.33758 -4285.247 0 -4095.0423 471.98587 165847.18 + 1000 348.99659 -4276.2274 0 -4091.4964 149.27188 166966.18 + 1500 341.56622 -4278.7772 0 -4097.9793 -296.95842 168025.4 + 2000 342.09406 -4277.6906 0 -4096.6132 -438.11647 168413.94 + 2500 352.25274 -4275.2717 0 -4088.8172 -330.50608 168120.05 + 3000 350.51318 -4282.4462 0 -4096.9125 -120.66318 167436.33 + 3500 353.70665 -4282.2946 0 -4095.0705 203.76807 166696.51 + 4000 349.96779 -4287.1098 0 -4101.8647 256.9956 166337.2 + 4500 343.72356 -4285.8089 0 -4103.869 206.49403 166407.34 + 5000 352.6139 -4287.1902 0 -4100.5445 81.796762 166694.74 + 5500 347.36366 -4287.0285 0 -4103.1618 -42.768886 167038.64 + 6000 350.3976 -4290.0332 0 -4104.5607 -133.74621 167194.61 + 6500 357.56345 -4286.2623 0 -4096.9967 -11.542553 167113.93 + 7000 355.32488 -4287.3852 0 -4099.3045 45.672669 166919.78 + 7500 347.11842 -4290.6564 0 -4106.9196 28.644843 166818.56 + 8000 352.57322 -4289.7964 0 -4103.1722 18.522414 166836.67 + 8500 354.8297 -4293.8761 0 -4106.0575 -42.234561 166867.25 + 9000 349.62065 -4298.6714 0 -4113.61 -92.546785 166824.11 + 9500 349.33305 -4300.1874 0 -4115.2784 -4.988033 166653.27 + 10000 351.2575 -4295.7452 0 -4109.8175 141.2923 166425.91 + 10500 352.35614 -4302.4997 0 -4115.9904 96.025177 166301.54 + 11000 345.79485 -4304.9271 0 -4121.8908 6.6400444 166310.83 + 11500 349.20236 -4307.0045 0 -4122.1646 25.603816 166291.49 + 12000 354.36642 -4304.3937 0 -4116.8204 43.401924 166335.86 + 12500 343.7124 -4302.9267 0 -4120.9928 -5.23105 166523.78 + 13000 363.53804 -4303.9652 0 -4111.5371 -17.241844 166690.48 + 13500 356.23025 -4304.3329 0 -4115.773 -121.76358 166814.59 + 14000 347.55 -4306.8848 0 -4122.9195 -174.52441 166791.16 + 14500 345.85547 -4309.3314 0 -4126.2631 -43.958619 166461.73 + 15000 350.84805 -4310.3616 0 -4124.6506 118.60917 165964.43 + 15500 349.59675 -4320.2537 0 -4135.2051 143.5776 165581.16 + 16000 349.05247 -4310.2702 0 -4125.5096 299.15489 165512.52 + 16500 357.63567 -4318.1626 0 -4128.8588 70.60951 165914.49 + 17000 352.29836 -4313.8988 0 -4127.4202 -116.44882 166435.75 + 17500 350.49924 -4315.0109 0 -4129.4846 -248.88877 166746.88 + 18000 352.05592 -4314.5162 0 -4128.1659 -164.78373 166635.14 + 18500 348.83853 -4316.1558 0 -4131.5085 -84.641318 166256.38 + 19000 352.52592 -4309.9888 0 -4123.3897 190.51243 165908.63 + 19500 346.13457 -4317.9779 0 -4134.7618 44.213931 165816.35 + 20000 340.17775 -4314.0744 0 -4134.0114 64.495233 165894.74 + 20500 354.06551 -4316.181 0 -4128.7669 -1.4490795 166094.86 + 21000 344.8874 -4316.8088 0 -4134.2529 -118.9424 166286.09 + 21500 354.15586 -4317.3745 0 -4129.9126 -104.15677 166331.42 + 22000 345.8013 -4317.8175 0 -4134.7778 -80.729172 166262.57 + 22500 349.11462 -4323.1371 0 -4138.3436 -107.29158 166095.83 + 23000 343.99139 -4319.5125 0 -4137.4309 71.487855 165825.41 + 23500 349.80225 -4324.909 0 -4139.7516 34.440631 165638.23 + 24000 348.65063 -4325.2073 0 -4140.6594 53.656181 165646.33 + 24500 356.4067 -4331.0609 0 -4142.4076 -53.238796 165745.71 + 25000 349.90889 -4325.3671 0 -4140.1532 7.5156313 165867.84 + 25500 348.55479 -4335.2096 0 -4150.7124 -154.7789 165856.27 + 26000 346.09492 -4332.421 0 -4149.2259 -50.232622 165660.79 + 26500 344.75355 -4334.4345 0 -4151.9494 54.441512 165388.22 + 27000 346.01888 -4340.9678 0 -4157.813 77.590267 165122.38 + 27500 350.13903 -4338.2832 0 -4152.9475 134.25294 165063.15 + 28000 349.4507 -4336.2772 0 -4151.3059 120.90268 165197.05 + 28500 349.89188 -4337.2205 0 -4152.0156 -7.4448137 165466.05 + 29000 352.06855 -4336.4999 0 -4150.1429 -72.487845 165711.12 + 29500 348.70134 -4335.081 0 -4150.5063 -122.13386 165799.73 + 30000 349.80677 -4341.2595 0 -4156.0997 -177.94864 165698.03 + 30500 347.84982 -4339.92 0 -4155.796 -11.150253 165358.49 + 31000 350.8215 -4337.9393 0 -4152.2423 169.74393 164968.86 + 31500 350.71421 -4340.8771 0 -4155.2369 221.49124 164741.67 + 32000 349.9693 -4342.8528 0 -4157.6069 171.42476 164849.23 + 32500 352.56459 -4340.4746 0 -4153.855 50.564424 165207.87 + 33000 348.20348 -4340.6347 0 -4156.3235 -142.44617 165619.29 + 33500 345.52103 -4341.0103 0 -4158.119 -239.73388 165867.73 + 34000 340.18612 -4339.2415 0 -4159.1741 -229.24652 165814.16 + 34500 346.29644 -4342.3771 0 -4159.0754 -66.184467 165447.7 + 35000 348.41012 -4339.9899 0 -4155.5693 116.11721 165057.16 + 35500 349.8102 -4342.6138 0 -4157.4521 162.46419 164869.8 + 36000 345.12148 -4342.1816 0 -4159.5018 93.299897 164971.27 + 36500 350.1662 -4340.7476 0 -4155.3975 17.1695 165283.86 + 37000 345.02071 -4333.5625 0 -4150.9361 -19.777882 165591.43 + 37500 351.61529 -4339.4316 0 -4153.3145 -163.6161 165720.09 + 38000 351.12679 -4334.814 0 -4148.9555 -41.24883 165586.63 + 38500 357.46153 -4338.5489 0 -4149.3373 48.449588 165358.68 + 39000 354.37011 -4343.9595 0 -4156.3842 24.197319 165158.97 + 39500 344.87813 -4340.2123 0 -4157.6613 45.305702 165085.33 + 40000 357.02868 -4344.263 0 -4155.2805 38.581773 165138.93 + 40500 356.49851 -4340.4739 0 -4151.772 43.25324 165302.5 + 41000 355.84229 -4342.0156 0 -4153.661 -84.423576 165491.7 + 41500 345.13117 -4338.685 0 -4156.0001 -103.00745 165528 + 42000 346.53963 -4336.6348 0 -4153.2044 -13.071264 165436.39 + 42500 351.00431 -4335.7733 0 -4149.9796 68.464006 165317.65 + 43000 355.65919 -4342.096 0 -4153.8384 -5.7513562 165240.95 + 43500 346.67881 -4340.4327 0 -4156.9286 27.104052 165178.78 + 44000 344.93607 -4341.5588 0 -4158.9771 29.983072 165226.93 + 44500 344.96898 -4344.4191 0 -4161.82 -63.544956 165331.7 + 45000 355.79519 -4340.2996 0 -4151.97 -5.5354943 165421.38 + 45500 354.21428 -4340.4899 0 -4152.9971 -45.808519 165514.22 + 46000 347.90456 -4337.7045 0 -4153.5516 -70.472446 165549.25 + 46500 342.30611 -4339.8561 0 -4158.6665 -89.138875 165515.54 + 47000 349.18619 -4339.6708 0 -4154.8395 -22.391799 165392.52 + 47500 355.54068 -4340.9861 0 -4152.7912 48.059812 165261.21 + 48000 349.85193 -4341.0492 0 -4155.8655 10.4874 165233.41 + 48500 350.48062 -4340.3555 0 -4154.839 34.514274 165241.37 + 49000 350.22062 -4337.3446 0 -4151.9657 66.516852 165234.86 + 49500 353.48854 -4342.606 0 -4155.4973 18.178574 165232.42 + 50000 355.4353 -4340.503 0 -4152.3639 82.642485 165242.94 + 50500 356.03755 -4337.8136 0 -4149.3557 79.237302 165308.35 + 51000 348.26583 -4338.9903 0 -4154.6461 23.965877 165360.09 + 51500 353.84885 -4342.682 0 -4155.3826 -65.297839 165421.25 + 52000 348.38906 -4335.7957 0 -4151.3863 -16.337804 165488.67 + 52500 348.33732 -4340.4442 0 -4156.0621 -71.786085 165459.21 + 53000 351.36882 -4340.8694 0 -4154.8828 -11.818052 165334.01 + 53500 349.66487 -4340.899 0 -4155.8143 64.774989 165157.06 + 54000 354.52673 -4341.5591 0 -4153.9009 103.84648 165043.7 + 54500 347.97543 -4341.7648 0 -4157.5743 60.697135 165103.56 + 55000 349.7801 -4341.6796 0 -4156.5339 3.186648 165284.19 + 55500 349.90814 -4337.5213 0 -4152.3079 -15.40375 165470.58 + 56000 350.89011 -4341.7859 0 -4156.0527 -101.06113 165536.95 + 56500 338.10783 -4336.0802 0 -4157.1129 0.46390075 165365.62 + 57000 355.8832 -4336.8791 0 -4148.5029 163.76227 165095.76 + 57500 343.20161 -4337.579 0 -4155.9154 173.89034 164877.3 + 58000 347.30883 -4338.8572 0 -4155.0196 196.75267 164858.65 + 58500 347.11195 -4338.1293 0 -4154.3959 107.96277 165100.21 + 59000 356.20588 -4336.869 0 -4148.322 32.98048 165438.3 + 59500 352.20196 -4340.4404 0 -4154.0127 -147.74801 165733.29 + 60000 348.50087 -4338.2613 0 -4153.7927 -201.37766 165872.68 + 60500 350.83512 -4338.2378 0 -4152.5337 -157.3473 165788.59 + 61000 358.06869 -4336.2653 0 -4146.7323 49.66101 165406.04 + 61500 351.59222 -4342.9905 0 -4156.8856 123.56829 164946.67 + 62000 357.85029 -4342.5571 0 -4153.1396 272.18018 164672.22 + 62500 353.07998 -4345.1721 0 -4158.2797 182.18366 164762.57 + 63000 350.29241 -4336.295 0 -4150.8781 96.838396 165199.84 + 63500 351.93686 -4344.5516 0 -4158.2643 -231.395 165711.73 + 64000 351.23761 -4338.6588 0 -4152.7416 -237.8481 165989.41 + 64500 347.96971 -4335.4865 0 -4151.299 -189.76455 165932.6 + 65000 354.37539 -4337.2906 0 -4149.7125 -43.526372 165522.64 + 65500 357.5777 -4346.4633 0 -4157.1902 81.72156 165007.06 + 66000 354.14242 -4345.6382 0 -4158.1834 195.69703 164658.89 + 66500 349.96045 -4338.6632 0 -4153.422 257.21076 164693.92 + 67000 347.83399 -4342.9995 0 -4158.8839 39.429532 165109.39 + 67500 349.19688 -4339.7486 0 -4154.9116 -70.657587 165534.67 + 68000 345.04999 -4335.0979 0 -4152.456 -178.5504 165788.23 + 68500 352.27772 -4337.4216 0 -4150.9539 -159.95859 165787.12 + 69000 352.83425 -4340.4687 0 -4153.7064 -93.500881 165526.1 + 69500 347.74369 -4339.3835 0 -4155.3157 84.591777 165119.47 + 70000 352.65319 -4339.132 0 -4152.4655 214.03749 164904.63 + 70500 349.83427 -4340.3861 0 -4155.2117 123.57829 165013.52 + 71000 348.51668 -4344.6661 0 -4160.1891 -33.962211 165235.42 + 71500 345.71481 -4339.4514 0 -4156.4576 -73.059935 165447.89 + 72000 354.93417 -4341.68 0 -4153.8061 -94.767012 165533.4 + 72500 342.42761 -4341.9235 0 -4160.6696 -129.2131 165509.21 + 73000 349.91799 -4336.9832 0 -4151.7645 14.219496 165403.37 + 73500 344.75733 -4339.5268 0 -4157.0398 18.088244 165274.21 + 74000 353.01313 -4335.8263 0 -4148.9693 165.34097 165149.7 + 74500 353.70264 -4340.5322 0 -4153.3102 55.785855 165128.92 + 75000 355.60934 -4337.9827 0 -4149.7514 103.87392 165190.99 + 75500 349.91446 -4339.5314 0 -4154.3146 -9.8601217 165344.74 + 76000 343.95016 -4344.3242 0 -4162.2644 -180.90986 165482.68 + 76500 348.77873 -4339.8225 0 -4155.2069 -82.808012 165511.02 + 77000 346.21282 -4336.4572 0 -4153.1998 7.4507551 165423.52 + 77500 355.35737 -4339.7581 0 -4151.6602 16.915858 165319.8 + 78000 351.13843 -4339.5992 0 -4153.7345 25.286516 165279.14 + 78500 349.57827 -4338.7768 0 -4153.738 13.676393 165287.51 + 79000 350.44899 -4341.8942 0 -4156.3945 -35.020193 165301.74 + 79500 345.50828 -4338.3401 0 -4155.4555 12.691593 165316.89 + 80000 349.19427 -4341.8139 0 -4156.9783 -60.176128 165350.63 + 80500 347.23088 -4340.8887 0 -4157.0923 -8.1510933 165352.41 + 81000 350.69564 -4338.1451 0 -4152.5148 63.352509 165336.37 + 81500 353.51603 -4341.4634 0 -4154.3402 18.963339 165273.49 + 82000 357.99109 -4339.5813 0 -4150.0894 111.83287 165142.45 + 82500 348.95721 -4339.3975 0 -4154.6873 133.99884 165049.94 + 83000 348.40851 -4341.4694 0 -4157.0497 99.552375 165079.83 + 83500 351.56311 -4340.478 0 -4154.3885 43.625398 165236.42 + 84000 350.94582 -4342.5887 0 -4156.826 -61.009621 165425.36 + 84500 348.85285 -4340.2908 0 -4155.6359 -121.20155 165518.82 + 85000 350.93338 -4338.5274 0 -4152.7712 -24.578168 165453.02 + 85500 350.05705 -4341.015 0 -4155.7227 44.257207 165274.03 + 86000 354.23801 -4340.9418 0 -4153.4364 95.178264 165077.53 + 86500 361.17307 -4345.1753 0 -4153.9991 161.19621 164939.38 + 87000 350.69942 -4342.2517 0 -4156.6193 132.57345 164951.93 + 87500 351.46682 -4338.9653 0 -4152.9268 83.174091 165203.95 + 88000 345.03368 -4341.8378 0 -4159.2045 -169.97976 165616.84 + 88500 351.70033 -4339.5377 0 -4153.3755 -203.97263 165858.93 + 89000 355.54446 -4339.2207 0 -4151.0238 -123.1241 165752.79 + 89500 350.31818 -4334.7628 0 -4149.3323 77.462164 165324.49 + 90000 351.20604 -4343.5238 0 -4157.6233 133.64807 164890.85 + 90500 348.0003 -4348.9685 0 -4164.7649 118.91427 164657.96 + 91000 347.21483 -4342.3391 0 -4158.5512 226.41338 164732.47 + 91500 347.27277 -4342.6341 0 -4158.8156 10.500178 165159.97 + 92000 344.50771 -4340.5474 0 -4158.1925 -199.65031 165723.91 + 92500 349.4828 -4342.4558 0 -4157.4674 -334.92794 166050.96 + 93000 349.90926 -4338.4776 0 -4153.2635 -265.95682 165968.52 + 93500 343.01305 -4340.5317 0 -4158.968 -100.92764 165495.12 + 94000 347.78156 -4341.2655 0 -4157.1777 146.28391 164933.04 + 94500 353.69177 -4341.067 0 -4153.8507 304.79658 164618.69 + 95000 346.04459 -4345.6353 0 -4162.4669 171.92493 164732.34 + 95500 347.79068 -4338.9943 0 -4154.9017 76.774034 165167.7 + 96000 344.56458 -4340.0235 0 -4157.6384 -160.40807 165608.59 + 96500 340.37553 -4342.8492 0 -4162.6815 -276.60876 165807.48 + 97000 347.18941 -4341.2676 0 -4157.4932 -178.69421 165633 + 97500 349.64071 -4340.366 0 -4155.2941 41.608903 165242.92 + 98000 349.52995 -4342.5772 0 -4157.5639 173.81028 164884.94 + 98500 350.04404 -4338.4153 0 -4153.1299 265.77826 164754.57 + 99000 345.61445 -4341.8018 0 -4158.861 130.70276 164941.11 + 99500 353.39327 -4337.2886 0 -4150.2304 79.630342 165241.58 + 100000 349.21591 -4340.4937 0 -4155.6466 -98.981878 165526.52 +Loop time of 333.54 on 4 procs for 100000 steps with 4096 atoms + +Performance: 51.808 ns/day, 0.463 hours/ns, 299.814 timesteps/s +97.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 262.06 | 266.81 | 271.72 | 26.0 | 79.99 +Bond | 0.0072134 | 0.010317 | 0.013051 | 2.4 | 0.00 +Neigh | 33.331 | 33.927 | 34.4 | 7.3 | 10.17 +Comm | 7.4881 | 11.613 | 16.368 | 106.5 | 3.48 +Output | 12.849 | 12.854 | 12.867 | 0.2 | 3.85 +Modify | 6.3196 | 7.428 | 9.0238 | 42.1 | 2.23 +Other | | 0.8935 | | | 0.27 + +Nlocal: 1024 ave 1029 max 1016 min +Histogram: 1 0 0 0 0 1 0 0 0 2 +Nghost: 4741.75 ave 4759 max 4706 min +Histogram: 1 0 0 0 0 0 0 0 2 1 +Neighs: 124070 ave 125011 max 122645 min +Histogram: 1 0 0 0 1 0 0 0 0 2 +FullNghs: 248139 ave 250140 max 245351 min +Histogram: 1 0 0 0 1 0 0 0 0 2 + +Total # of neighbors = 992556 +Ave neighs/atom = 242.323 +Ave special neighs/atom = 0 +Neighbor list builds = 1222 +Dangerous builds = 0 + +Total wall time: 0:05:33 From 1d0773d10d715641ceab8f06185c7c946eea11a9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 16:50:24 -0400 Subject: [PATCH 140/675] remove redundant statement --- src/verlet.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/verlet.cpp b/src/verlet.cpp index fe768f94c9..fcba248d5f 100644 --- a/src/verlet.cpp +++ b/src/verlet.cpp @@ -75,7 +75,6 @@ void Verlet::init() torqueflag = extraflag = 0; if (atom->torque_flag) torqueflag = 1; if (atom->avec->forceclearflag) extraflag = 1; - if (atom->sp_flag) extraflag = 1; // orthogonal vs triclinic simulation box @@ -312,7 +311,6 @@ void Verlet::run(int n) timer->stamp(Timer::PAIR); } - if (atom->molecular) { if (force->bond) force->bond->compute(eflag,vflag); if (force->angle) force->angle->compute(eflag,vflag); From 469b67a39b175f1a125b4972699dc3c1631d4d56 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 17:00:01 -0400 Subject: [PATCH 141/675] remove bogus file --- src/eflag | 19343 ---------------------------------------------------- 1 file changed, 19343 deletions(-) delete mode 100644 src/eflag diff --git a/src/eflag b/src/eflag deleted file mode 100644 index b4b06a2fef..0000000000 --- a/src/eflag +++ /dev/null @@ -1,19343 +0,0 @@ -angle.cpp:/* ---------------------------------------------------------------------- -angle.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -angle.cpp: http://lammps.sandia.gov, Sandia National Laboratories -angle.cpp:------------------------------------------------------------------------- */ -angle.cpp:/* ---------------------------------------------------------------------- */ -angle.cpp:/* ---------------------------------------------------------------------- */ -angle.cpp:/* ---------------------------------------------------------------------- -angle.cpp:------------------------------------------------------------------------- */ -angle.cpp:/* ---------------------------------------------------------------------- -angle.cpp:------------------------------------------------------------------------- */ -angle.cpp: eflag_atom = eflag / 2; -angle.cpp: vflag_atom = vflag / 4; -angle.cpp: // reallocate per-atom arrays if necessary -angle.cpp: // zero accumulators -angle.cpp:/* ---------------------------------------------------------------------- -angle.cpp:------------------------------------------------------------------------- */ -angle.cpp:/* ---------------------------------------------------------------------- */ -angle_hybrid.cpp:/* ---------------------------------------------------------------------- -angle_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -angle_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories -angle_hybrid.cpp:------------------------------------------------------------------------- */ -angle_hybrid.cpp:/* ---------------------------------------------------------------------- */ -angle_hybrid.cpp:/* ---------------------------------------------------------------------- */ -angle_hybrid.cpp:/* ---------------------------------------------------------------------- */ -angle_hybrid.cpp: // save ptrs to original anglelist -angle_hybrid.cpp: // if this is re-neighbor step, create sub-style anglelists -angle_hybrid.cpp: // nanglelist[] = length of each sub-style list -angle_hybrid.cpp: // realloc sub-style anglelist if necessary -angle_hybrid.cpp: // load sub-style anglelist with 4 values from original anglelist -angle_hybrid.cpp: // call each sub-style's compute function -angle_hybrid.cpp: // set neighbor->anglelist to sub-style anglelist before call -angle_hybrid.cpp: // accumulate sub-style global/peratom energy/virial in hybrid -angle_hybrid.cpp: // restore ptrs to original anglelist -angle_hybrid.cpp:/* ---------------------------------------------------------------------- */ -angle_hybrid.cpp:/* ---------------------------------------------------------------------- -angle_hybrid.cpp:------------------------------------------------------------------------- */ -angle_hybrid.cpp: // delete old lists, since cannot just change settings -angle_hybrid.cpp: // count sub-styles by skipping numeric args -angle_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric word -angle_hybrid.cpp: // need a better way to skip these exceptions -angle_hybrid.cpp: // allocate list of sub-styles -angle_hybrid.cpp: // allocate each sub-style and call its settings() with subset of args -angle_hybrid.cpp: // allocate uses suffix, but don't store suffix version in keywords, -angle_hybrid.cpp: // else syntax in coeff() will not match -angle_hybrid.cpp: // define subset of args for a sub-style by skipping numeric args -angle_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric -angle_hybrid.cpp: // need a better way to skip these exceptions -angle_hybrid.cpp:/* ---------------------------------------------------------------------- -angle_hybrid.cpp:---------------------------------------------------------------------- */ -angle_hybrid.cpp: // 2nd arg = angle sub-style name -angle_hybrid.cpp: // allow for "none" or "skip" as valid sub-style name -angle_hybrid.cpp: // move 1st arg to 2nd arg -angle_hybrid.cpp: // just copy ptrs, since arg[] points into original input line -angle_hybrid.cpp: // invoke sub-style coeff() starting with 1st arg -angle_hybrid.cpp: // set setflag and which type maps to which sub-style -angle_hybrid.cpp: // if sub-style is skip: auxiliary class2 setting in data file so ignore -angle_hybrid.cpp: // if sub-style is none: set hybrid setflag, wipe out map -angle_hybrid.cpp:/* ---------------------------------------------------------------------- -angle_hybrid.cpp:------------------------------------------------------------------------- */ -angle_hybrid.cpp:/* ---------------------------------------------------------------------- -angle_hybrid.cpp:------------------------------------------------------------------------- */ -angle_hybrid.cpp:/* ---------------------------------------------------------------------- -angle_hybrid.cpp:------------------------------------------------------------------------- */ -angle_hybrid.cpp:/* ---------------------------------------------------------------------- -angle_hybrid.cpp:------------------------------------------------------------------------- */ -angle_hybrid.cpp:/* ---------------------------------------------------------------------- */ -angle_hybrid.cpp:/* ---------------------------------------------------------------------- -angle_hybrid.cpp:------------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- -angle_zero.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -angle_zero.cpp: http://lammps.sandia.gov, Sandia National Laboratories -angle_zero.cpp:------------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- -angle_zero.cpp:------------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- -angle_zero.cpp:------------------------------------------------------------------------- */ -angle_zero.cpp: // convert theta0 from degrees to radians -angle_zero.cpp: theta0[i] = theta0_one/180.0 * MY_PI; -angle_zero.cpp:/* ---------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- -angle_zero.cpp:------------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- -angle_zero.cpp:------------------------------------------------------------------------- */ -angle_zero.cpp:/* ---------------------------------------------------------------------- -angle_zero.cpp:------------------------------------------------------------------------- */ -angle_zero.cpp: fprintf(fp,"%d %g\n",i,theta0[i]/MY_PI*180.0); -angle_zero.cpp:/* ---------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files -atom.cpp:/* ---------------------------------------------------------------------- */ -atom.cpp: // initialize atom arrays -atom.cpp: // customize by adding new array -atom.cpp: // USER-SPIN -atom.cpp: // USER-DPD -atom.cpp: // USER-SMD -atom.cpp: // molecular info -atom.cpp: // user-defined molecules -atom.cpp: // custom atom arrays -atom.cpp: // initialize atom style and array existence flags -atom.cpp: // customize by adding new flag -atom.cpp: //Magnetic flags -atom.cpp: // USER-SMD -atom.cpp: // Peridynamic scale factor -atom.cpp: // ntype-length arrays -atom.cpp: // callback lists & extra restart info -atom.cpp: // default atom ID and mapping values -atom.cpp:/* ---------------------------------------------------------------------- */ -atom.cpp: // delete atom arrays -atom.cpp: // customize by adding new array -atom.cpp: // delete custom atom arrays -atom.cpp: // delete user-defined molecules -atom.cpp: // delete per-type arrays -atom.cpp: // delete extra arrays -atom.cpp: // delete mapping data structures -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // unset atom style and array existence flags -atom.cpp: // may have been set by old avec -atom.cpp: // customize by adding new flag -atom.cpp: //Magnetic flags -atom.cpp: // create instance of AtomVec -atom.cpp: // use grow() to initialize atom-based arrays to length 1 -atom.cpp: // so that x[0][0] can always be referenced even if proc has no atoms -atom.cpp: if (sflag == 1) sprintf(estyle,"%s/%s",style,lmp->suffix); -atom.cpp: else sprintf(estyle,"%s/%s",style,lmp->suffix2); -atom.cpp: // if molecular system: -atom.cpp: // atom IDs must be defined -atom.cpp: // force atom map to be created -atom.cpp: // map style may be reset by map_init() and its call to map_style_set() -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); -atom.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); -atom.cpp: //printf("test entries function: %s, %d, %d \n ",style, trysuffix, &sflag); -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- */ -atom.cpp: // delete extra array since it doesn't persist past first run -atom.cpp: // check arrays that are atom type in length -atom.cpp: // setup of firstgroup -atom.cpp: // init AtomVec -atom.cpp:/* ---------------------------------------------------------------------- */ -atom.cpp: // setup bins for sorting -atom.cpp: // cannot do this in init() because uses neighbor cutoff -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // maxtag_all = max tag for all atoms -atom.cpp: // DEBUG: useful for generating 64-bit IDs even for small systems -atom.cpp: // use only when LAMMPS is compiled with BIGBIG -atom.cpp: //maxtag_all += 1000000000000; -atom.cpp: // notag = # of atoms I own with no tag (tag = 0) -atom.cpp: // notag_sum = # of total atoms on procs <= me with no tag -atom.cpp: // itag = 1st new tag that my untagged atoms should use -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // set bounds for my proc -atom.cpp: // if periodic and I am lo/hi proc, adjust bounds by EPSILON -atom.cpp: // insures all data atoms will be owned even with round-off -atom.cpp: // xptr = which word in line starts xyz coords -atom.cpp: // iptr = which word in line starts ix,iy,iz image flags -atom.cpp: // loop over lines of atom data -atom.cpp: // tokenize the line into values -atom.cpp: // extract xyz coords and image flags -atom.cpp: // remap atom into simulation box -atom.cpp: // if atom is in my sub-domain, unpack its values -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // loop over lines of atom velocities -atom.cpp: // tokenize the line into values -atom.cpp: // if I own atom tag, unpack its values -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // loop over lines of bonus atom data -atom.cpp: // tokenize the line into values -atom.cpp: // if I own atom tag, unpack its values -atom.cpp: // ok to call child's data_atom_bonus() method thru parent avec_bonus, -atom.cpp: // since data_bonus() was called with child ptr, and method is virtual -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // loop over lines of body data -atom.cpp: // if I own atom tag, tokenize lines into ivalues/dvalues, call data_body() -atom.cpp: // else skip values -atom.cpp: nvalues = ninteger + ndouble; // number of values to skip -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp: init per-atom fix/compute/variable values for newly created atoms -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // 1st molecule in set stores nset = # of mols, others store nset = 0 -atom.cpp: // ifile = count of molecules in set -atom.cpp: // index = argument index where next molecule starts, updated by constructor -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: rmass[ilocal] = 4.0*MY_PI/3.0 * -atom.cpp: body[ilocal] = 0; // as if a body read from data file -atom.cpp: // add bond topology info -atom.cpp: // for molecular atom styles, but not atom style template -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // insure there is one extra atom location at end of arrays for swaps -atom.cpp: // loop over owned atoms -atom.cpp: // nfirst = index of first atom not in firstgroup -atom.cpp: // when find firstgroup atom out of place, swap it with atom nfirst -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp: don't have to worry about clearing/setting atom->map since done in comm -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // set next timestep for sorting to take place -atom.cpp: nextsort = (update->ntimestep/sortfreq)*sortfreq + sortfreq; -atom.cpp: // re-setup sort bins if needed -atom.cpp: // reallocate per-atom vectors if needed -atom.cpp: // insure there is one extra atom location at end of arrays for swaps -atom.cpp: // bin atoms in reverse order so linked list will be in forward order -atom.cpp: // permute = desired permutation of atoms -atom.cpp: // permute[I] = J means Ith new atom will be Jth old atom -atom.cpp: // current = current permutation, just reuse next vector -atom.cpp: // current[I] = J means Ith current atom is Jth old atom -atom.cpp: // reorder local atom list, when done, current = permute -atom.cpp: // perform "in place" using copy() to extra atom location at end of list -atom.cpp: // inner while loop processes one cycle of the permutation -atom.cpp: // copy before inner-loop moves an atom to end of atom list -atom.cpp: // copy after inner-loop moves atom at end of list back into list -atom.cpp: // empty = location in atom list that is currently empty -atom.cpp: // sanity check that current = permute -atom.cpp: //int flag = 0; -atom.cpp: //for (i = 0; i < nlocal; i++) -atom.cpp: // if (current[i] != permute[i]) flag = 1; -atom.cpp: //int flagall; -atom.cpp: //MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_SUM,world); -atom.cpp: //if (flagall) error->all(FLERR,"Atom sort did not operate correctly"); -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // binsize: -atom.cpp: // user setting if explicitly set -atom.cpp: // default = 1/2 of neighbor cutoff -atom.cpp: // check if neighbor cutoff = 0.0 -atom.cpp: double bininv = 1.0/binsize; -atom.cpp: // nbin xyz = local bins -atom.cpp: // bbox lo/hi = bounding box of my sub-domain -atom.cpp: bininvx = nbinx / (bboxhi[0]-bboxlo[0]); -atom.cpp: bininvy = nbiny / (bboxhi[1]-bboxlo[1]); -atom.cpp: bininvz = nbinz / (bboxhi[2]-bboxlo[2]); -atom.cpp: // reallocate per-bin memory if needed -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // find the fix -atom.cpp: // if find NULL ptr: -atom.cpp: // it's this one, since it is being replaced and has just been deleted -atom.cpp: // at this point in re-creation -atom.cpp: // if don't find NULL ptr: -atom.cpp: // i is set to nfix = new one currently being added at end of list -atom.cpp: // add callback to lists, reallocating if necessary -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp: // compact the list of callbacks -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp: return index if found, and flag = 0/1 for int/double -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp: add a custom variable with name of type flag = 0/1 for int/double -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp: remove a custom variable of type flag = 0/1 for int/double at index -atom.cpp: ivector/dvector and iname/dname lists never shrink -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom.cpp:/* ---------------------------------------------------------------------- -atom.cpp:------------------------------------------------------------------------- */ -atom_map.cpp:/* ---------------------------------------------------------------------- -atom_map.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_map.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_map.cpp:------------------------------------------------------------------------- */ -atom_map.cpp:/* ---------------------------------------------------------------------- -atom_map.cpp:------------------------------------------------------------------------- */ -atom_map.cpp: // check for new map style if max atomID changed (check = 1 = default) -atom_map.cpp: // recreate = 1 if must delete old map and create new map -atom_map.cpp: // recreate = 0 if can re-use old map w/out realloc and just adjust settings -atom_map.cpp: // map_maxarray/map_nhash initially -1, to force recreate even when no atoms -atom_map.cpp: // if not recreating: -atom_map.cpp: // for array, initialize current map_tag_max values -atom_map.cpp: // for hash, set all buckets to empty, put all entries in free list -atom_map.cpp: // recreating: delete old map and create new one for array or hash -atom_map.cpp: // map_nhash = max # of atoms that can be hashed on this proc -atom_map.cpp: // set to max of ave atoms/proc or atoms I can store -atom_map.cpp: // multiply by 2, require at least 1000 -atom_map.cpp: // doubling means hash table will need to be re-init only rarely -atom_map.cpp: int nper = static_cast (natoms/comm->nprocs); -atom_map.cpp: // map_nbucket = prime just larger than map_nhash -atom_map.cpp: // next_prime() should be fast enough, -atom_map.cpp: // about 10% of odd integers are prime above 1M -atom_map.cpp: // set all buckets to empty -atom_map.cpp: // set hash to map_nhash in length -atom_map.cpp: // put all hash entries in free list and point them to each other -atom_map.cpp:/* ---------------------------------------------------------------------- -atom_map.cpp:------------------------------------------------------------------------- */ -atom_map.cpp: // search for key -atom_map.cpp: // if don't find it, done -atom_map.cpp: // delete the hash entry and add it to free list -atom_map.cpp: // special logic if entry is 1st in the bucket -atom_map.cpp:/* ---------------------------------------------------------------------- -atom_map.cpp:------------------------------------------------------------------------- */ -atom_map.cpp: // possible reallocation of sametag must come before loop over atoms -atom_map.cpp: // since loop sets sametag -atom_map.cpp: // if this proc has more atoms than hash table size, call map_init() -atom_map.cpp: // call with 0 since max atomID in system has not changed -atom_map.cpp: // possible reallocation of sametag must come after map_init(), -atom_map.cpp: // b/c map_init() may invoke map_delete(), whacking sametag -atom_map.cpp: // search for key -atom_map.cpp: // if found it, just overwrite local value with index -atom_map.cpp: // take one entry from free list -atom_map.cpp: // add the new global/local pair as entry at end of bucket list -atom_map.cpp: // special logic if this entry is 1st in bucket -atom_map.cpp:/* ---------------------------------------------------------------------- -atom_map.cpp:------------------------------------------------------------------------- */ -atom_map.cpp: // search for key -atom_map.cpp: // if found it, just overwrite local value with index -atom_map.cpp: // take one entry from free list -atom_map.cpp: // add the new global/local pair as entry at end of bucket list -atom_map.cpp: // special logic if this entry is 1st in bucket -atom_map.cpp:/* ---------------------------------------------------------------------- -atom_map.cpp:------------------------------------------------------------------------- */ -atom_map.cpp: // map_tag_max = max ID of any atom that will be in new map -atom_map.cpp: // map_tag_max = -1 if no atoms -atom_map.cpp: // set map_style for new map -atom_map.cpp: // if user-selected, use that setting -atom_map.cpp: // else if map_tag_max > 1M, use hash -atom_map.cpp: // else use array -atom_map.cpp: // recreate = 1 if must create new map b/c map_style changed -atom_map.cpp:/* ---------------------------------------------------------------------- -atom_map.cpp:------------------------------------------------------------------------- */ -atom_map.cpp:/* ---------------------------------------------------------------------- -atom_map.cpp:------------------------------------------------------------------------- */ -atom_map.cpp:/* ---------------------------------------------------------------------- -atom_map.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_vec_atomic.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_atomic.cpp:/* ---------------------------------------------------------------------- -atom_vec_atomic.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_vec_body.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp: // size_forward and size_border set in settings(), via Body class -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp: // max size of forward/border comm -atom_vec_body.cpp: // 7,16 are packed in pack_comm/pack_border -atom_vec_body.cpp: // bptr values = max number of additional ivalues/dvalues from Body class -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp: // if deleting atom J via delflag and J has bonus data, then delete it -atom_vec_body.cpp: // if atom I has bonus data, reset I's bonus.ilocal to loc J -atom_vec_body.cpp: // do NOT do this if self-copy (I=J) since I's bonus data is already deleted -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp: // corresponding put() calls are in clear_bonus() -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp: // corresponding put() calls are in clear_bonus() -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp: // corresponding put() calls are in clear_bonus() -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp: else m += (bonus[j].ninteger+1)/2; -atom_vec_body.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_body.cpp: // corresponding put() calls are in copy() -atom_vec_body.cpp: else m += (bonus[nlocal_bonus].ninteger+1)/2; -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp: else n += (bonus[body[i]].ninteger+1)/2; -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp: else m += (bonus[j].ninteger+1)/2; -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp: else m += (bonus[nlocal_bonus].ninteger+1)/2; -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp: body computes its size based on ivalues/dvalues and returns it -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* ---------------------------------------------------------------------- -atom_vec_body.cpp: debug method for sanity checking of own/bonus data pointers -atom_vec_body.cpp:------------------------------------------------------------------------- */ -atom_vec_body.cpp:/* -atom_vec_body.cpp:*/ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_vec_charge.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec_charge.cpp:/* ---------------------------------------------------------------------- -atom_vec_charge.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_vec.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp: nmax = nmax/DELTA * DELTA; -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp: nmax_bonus = nmax_bonus/DELTA_BONUS * DELTA_BONUS; -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp: do not count/pack bonds with bondtype = 0 -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp: do not count/pack angles with angletype = 0 -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec.cpp:/* ---------------------------------------------------------------------- -atom_vec.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_vec_ellipsoid.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp: // if deleting atom J via delflag and J has bonus data, then delete it -atom_vec_ellipsoid.cpp: // if atom I has bonus data, reset I's bonus.ilocal to loc J -atom_vec_ellipsoid.cpp: // do NOT do this if self-copy (I=J) since I's bonus data is already deleted -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp: // reset ellipsoid mass -atom_vec_ellipsoid.cpp: // previously stored density in rmass -atom_vec_ellipsoid.cpp: rmass[m] *= 4.0*MY_PI/3.0 * shape[0]*shape[1]*shape[2]; -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp: buf[i][3] = rmass[i] / (4.0*MY_PI/3.0 * shape[0]*shape[1]*shape[2]); -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp: buf[1] = rmass[i] / (4.0*MY_PI/3.0 * shape[0]*shape[1]*shape[2]); -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_ellipsoid.cpp:/* ---------------------------------------------------------------------- -atom_vec_ellipsoid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_vec_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // build list of all known atom styles -atom_vec_hybrid.cpp: // allocate list of sub-styles as big as possibly needed if no extra args -atom_vec_hybrid.cpp: // allocate each sub-style -atom_vec_hybrid.cpp: // call process_args() with set of args that are not atom style names -atom_vec_hybrid.cpp: // use known_style() to determine which args these are -atom_vec_hybrid.cpp: // free allstyles created by build_styles() -atom_vec_hybrid.cpp: // hybrid settings are MAX or MIN of sub-style settings -atom_vec_hybrid.cpp: // hybrid sizes are minimal values plus extra values for each sub-style -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // sub-styles perform all reallocation -atom_vec_hybrid.cpp: // turn off nextra_grow so hybrid can do that once below -atom_vec_hybrid.cpp: // insure hybrid local ptrs and sub-style ptrs are up to date -atom_vec_hybrid.cpp: // for sub-styles, do this in case -atom_vec_hybrid.cpp: // multiple sub-style reallocs of same array occurred -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // pack sub-style contributions as contiguous chunks -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // pack sub-style contributions as contiguous chunks -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // unpack sub-style contributions as contiguous chunks -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // unpack sub-style contributions as contiguous chunks -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // pack sub-style contributions as contiguous chunks -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // unpack sub-style contributions as contiguous chunks -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // pack sub-style contributions as contiguous chunks -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // pack sub-style contributions as contiguous chunks -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // unpack sub-style contributions as contiguous chunks -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // unpack sub-style contributions as contiguous chunks -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // each sub-style parses sub-style specific values -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: // each sub-style parses sub-style specific values -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp: int index = multiindex/nstyles; -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_hybrid.cpp:/* ---------------------------------------------------------------------- -atom_vec_hybrid.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_vec_line.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp: // if deleting atom J via delflag and J has bonus data, then delete it -atom_vec_line.cpp: // if atom I has bonus data, reset I's bonus.ilocal to loc J -atom_vec_line.cpp: // do NOT do this if self-copy (I=J) since I's bonus data is already deleted -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp: // also set radius = half of length -atom_vec_line.cpp: // unless value = 0.0, then set diameter = 1.0 -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp: rmass[nlocal] = 4.0*MY_PI/3.0 * radius[nlocal]*radius[nlocal]*radius[nlocal]; -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp: rmass[nlocal] *= 4.0*MY_PI/3.0 * -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp: rmass[nlocal] *= 4.0*MY_PI/3.0 * -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp: if (dy >= 0.0) bonus[nlocal_bonus].theta = acos(dx/length); -atom_vec_line.cpp: else bonus[nlocal_bonus].theta = -acos(dx/length); -atom_vec_line.cpp: if (delta/length > EPSILON) -atom_vec_line.cpp: // reset line radius and mass -atom_vec_line.cpp: // rmass currently holds density -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp: buf[i][4] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); -atom_vec_line.cpp: else buf[i][4] = rmass[i]/bonus[line[i]].length; -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp: buf[2] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); -atom_vec_line.cpp: else buf[2] = rmass[i]/bonus[line[i]].length; -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* ---------------------------------------------------------------------- -atom_vec_line.cpp:------------------------------------------------------------------------- */ -atom_vec_line.cpp:/* -atom_vec_line.cpp: //if (comm->me == 1 && update->ntimestep == 873) -atom_vec_line.cpp: // printf("CCHK %s: %d %d: %d %d: %d %d\n", -atom_vec_line.cpp: // str,i,n,line[i],nlocal_bonus,bonus[line[i]].ilocal,iflag); -atom_vec_line.cpp:*/ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_vec_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp: // set radvary if particle diameters are time-varying due to fix adapt -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp: rmass[nlocal] = 4.0*MY_PI/3.0 * radius[nlocal]*radius[nlocal]*radius[nlocal]; -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp: rmass[nlocal] = 4.0*MY_PI/3.0 * -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp: rmass[nlocal] = 4.0*MY_PI/3.0 * -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp: buf[i][3] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp: else buf[1] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_sphere.cpp:/* ---------------------------------------------------------------------- -atom_vec_sphere.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_vec_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp: mass_type = 1; //check why -atom_vec_spin.cpp: //comm_x_only = 0; -atom_vec_spin.cpp: //comm_f_only = 1; -atom_vec_spin.cpp: size_data_atom = 9; //to check later -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp: //Allocating mag. quantities -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_spin.cpp:/* ---------------------------------------------------------------------- -atom_vec_spin.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -atom_vec_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp: // if deleting atom J via delflag and J has bonus data, then delete it -atom_vec_tri.cpp: // if atom I has bonus data, reset I's bonus.ilocal to loc J -atom_vec_tri.cpp: // do NOT do this if self-copy (I=J) since I's bonus data is already deleted -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp: // also set radius = distance from center to corner-pt = len(c1) -atom_vec_tri.cpp: // unless size = 0.0, then set diameter = 1.0 -atom_vec_tri.cpp: c1[0] = -size/2.0; -atom_vec_tri.cpp: c1[1] = -sqrt(3.0)/2.0 * size / 3.0; -atom_vec_tri.cpp: c2[0] = size/2.0; -atom_vec_tri.cpp: c2[1] = -sqrt(3.0)/2.0 * size / 3.0; -atom_vec_tri.cpp: c3[1] = sqrt(3.0)/2.0 * size * 2.0/3.0; -atom_vec_tri.cpp: inertia[0] = sqrt(3.0)/96.0 * size*size*size*size; -atom_vec_tri.cpp: inertia[1] = sqrt(3.0)/96.0 * size*size*size*size; -atom_vec_tri.cpp: inertia[2] = sqrt(3.0)/48.0 * size*size*size*size; -atom_vec_tri.cpp: c1[0] = -size/2.0; -atom_vec_tri.cpp: c1[1] = -sqrt(3.0)/2.0 * size / 3.0; -atom_vec_tri.cpp: c2[0] = size/2.0; -atom_vec_tri.cpp: c2[1] = -sqrt(3.0)/2.0 * size / 3.0; -atom_vec_tri.cpp: c3[1] = sqrt(3.0)/2.0 * size * 2.0/3.0; -atom_vec_tri.cpp: inertia[0] = sqrt(3.0)/96.0 * size*size*size*size; -atom_vec_tri.cpp: inertia[1] = sqrt(3.0)/96.0 * size*size*size*size; -atom_vec_tri.cpp: inertia[2] = sqrt(3.0)/48.0 * size*size*size*size; -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp: rmass[nlocal] = 4.0*MY_PI/3.0 * radius[nlocal]*radius[nlocal]*radius[nlocal]; -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp: rmass[nlocal] *= 4.0*MY_PI/3.0 * -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp: rmass[nlocal] *= 4.0*MY_PI/3.0 * -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp: // check for duplicate points -atom_vec_tri.cpp: // size = length of one edge -atom_vec_tri.cpp: // centroid = 1/3 of sum of vertices -atom_vec_tri.cpp: centroid[0] = (c1[0]+c2[0]+c3[0]) / 3.0; -atom_vec_tri.cpp: centroid[1] = (c1[1]+c2[1]+c3[1]) / 3.0; -atom_vec_tri.cpp: centroid[2] = (c1[2]+c2[2]+c3[2]) / 3.0; -atom_vec_tri.cpp: if (delta/size > EPSILON) -atom_vec_tri.cpp: // reset tri radius and mass -atom_vec_tri.cpp: // rmass currently holds density -atom_vec_tri.cpp: // tri area = 0.5 len(U x V), where U,V are edge vectors from one vertex -atom_vec_tri.cpp: // inertia = inertia tensor of triangle as 6-vector in Voigt notation -atom_vec_tri.cpp: // diagonalize inertia tensor via Jacobi rotations -atom_vec_tri.cpp: // bonus[].inertia = 3 eigenvalues = principal moments of inertia -atom_vec_tri.cpp: // evectors and exzy_space = 3 evectors = principal axes of triangle -atom_vec_tri.cpp: // enforce 3 orthogonal vectors as a right-handed coordinate system -atom_vec_tri.cpp: // flip 3rd vector if needed -atom_vec_tri.cpp: // create initial quaternion -atom_vec_tri.cpp: // bonus c1,c2,c3 = displacement of c1,c2,c3 from centroid -atom_vec_tri.cpp: // in basis of principal axes -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp: buf[i][4] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); -atom_vec_tri.cpp: buf[i][4] = rmass[i]/area; -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp: buf[2] = rmass[i] / (4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i]); -atom_vec_tri.cpp: buf[2] = rmass[i]/area; -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -atom_vec_tri.cpp:/* ---------------------------------------------------------------------- -atom_vec_tri.cpp:------------------------------------------------------------------------- */ -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -balance.cpp: http://lammps.sandia.gov, Sandia National Laboratories -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp://#define BALANCE_DEBUG 1 -balance.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files -balance.cpp:/* ---------------------------------------------------------------------- */ -balance.cpp:/* ---------------------------------------------------------------------- */ -balance.cpp: // check nfix in case all fixes have already been deleted -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: // parse required arguments -balance.cpp: // error checks -balance.cpp: // process remaining optional args -balance.cpp: // insure particles are in current box & update box via shrink-wrap -balance.cpp: // init entire system since comm->setup is done -balance.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc -balance.cpp: // must reset atom map after exchange() since it clears it -balance.cpp: // imbinit = initial imbalance -balance.cpp: // no load-balance if imbalance doesn't exceed threshold -balance.cpp: // unless switching from tiled to non tiled layout, then force rebalance -balance.cpp: // debug output of initial state -balance.cpp: // perform load-balance -balance.cpp: // style XYZ = explicit setting of cutting planes of logical 3d grid -balance.cpp: comm->xsplit[i] = i * 1.0/procgrid[0]; -balance.cpp: comm->ysplit[i] = i * 1.0/procgrid[1]; -balance.cpp: comm->zsplit[i] = i * 1.0/procgrid[2]; -balance.cpp: // style SHIFT = adjust cutting planes of logical 3d grid -balance.cpp: // style BISECTION = recursive coordinate bisectioning -balance.cpp: // reset proc sub-domains -balance.cpp: // for either brick or tiled comm style -balance.cpp: // move particles to new processors via irregular() -balance.cpp: // output of final result -balance.cpp: // check if any particles were lost -balance.cpp: // imbfinal = final imbalance -balance.cpp: // stats output -balance.cpp: fprintf(screen," initial/final max load/proc = %g %g\n", -balance.cpp: fprintf(screen," initial/final imbalance factor = %g %g\n", -balance.cpp: fprintf(logfile," initial/final max load/proc = %g %g\n", -balance.cpp: fprintf(logfile," initial/final imbalance factor = %g %g\n", -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: // count max number of weight settings -balance.cpp: // output file -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp: return imbalance = max load per proc / ave load per proc -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: if (maxcost > 0.0) imbalance = maxcost / (totalcost/nprocs); -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: // NOTE: this logic is specific to orthogonal boxes, not triclinic -balance.cpp: // shrink-wrap simulation box around atoms for input to RCB -balance.cpp: // leads to better-shaped sub-boxes when atoms are far from box boundaries -balance.cpp: // invoke RCB -balance.cpp: // then invert() to create list of proc assignments for my atoms -balance.cpp: // NOTE: (3/2017) can remove undocumented "old" option at some point -balance.cpp: // ditto in rcb.cpp -balance.cpp: // reset RCB lo/hi bounding box to full simulation box as needed -balance.cpp: // store RCB cut, dim, lo/hi box in CommTiled -balance.cpp: // cut and lo/hi need to be in fractional form so can -balance.cpp: // OK if changes by epsilon from what RCB used since atoms -balance.cpp: // will subsequently migrate to new owning procs by exchange() anyway -balance.cpp: // ditto for atoms exactly on lo/hi RCB box boundaries due to ties -balance.cpp: if (idim >= 0) comm->rcbcutfrac = (rcb->cut - boxlo[idim]) / prd[idim]; -balance.cpp: mysplit[0][0] = (lo[0] - boxlo[0]) / prd[0]; -balance.cpp: else mysplit[0][1] = (hi[0] - boxlo[0]) / prd[0]; -balance.cpp: mysplit[1][0] = (lo[1] - boxlo[1]) / prd[1]; -balance.cpp: else mysplit[1][1] = (hi[1] - boxlo[1]) / prd[1]; -balance.cpp: mysplit[2][0] = (lo[2] - boxlo[2]) / prd[2]; -balance.cpp: else mysplit[2][1] = (hi[2] - boxlo[2]) / prd[2]; -balance.cpp: // return list of procs to send my atoms to -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: // if current layout is TILED, set initial uniform splits in Comm -balance.cpp: // this gives starting point to subsequent shift balancing -balance.cpp: for (int i = 0; i < procgrid[0]; i++) xsplit[i] = i * 1.0/procgrid[0]; -balance.cpp: for (int i = 0; i < procgrid[1]; i++) ysplit[i] = i * 1.0/procgrid[1]; -balance.cpp: for (int i = 0; i < procgrid[2]; i++) zsplit[i] = i * 1.0/procgrid[2]; -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: // no balancing if no atoms -balance.cpp: // set delta for 1d balancing = root of threshold -balance.cpp: // root = # of dimensions being balanced on -balance.cpp: double delta = pow(stopthresh,1.0/ndim) - 1.0; -balance.cpp: // all balancing done in lamda coords -balance.cpp: // loop over dimensions in balance string -balance.cpp: // split = ptr to xyz split in Comm -balance.cpp: // initial count and sum -balance.cpp: // target[i] = desired sum at split I -balance.cpp: for (i = 0; i < np; i++) target[i] = totalcost/np * i; -balance.cpp: // lo[i] = closest split <= split[i] with a sum <= target -balance.cpp: // hi[i] = closest split >= split[i] with a sum >= target -balance.cpp: // iterate until balanced -balance.cpp: // stop if no change in splits, b/c all targets are met exactly -balance.cpp: // stop if all split sums are within delta of targets -balance.cpp: // this is a 1d test of particle count per slice -balance.cpp: // assumption is that this is sufficient accuracy -balance.cpp: // for 3d imbalance factor to reach threshold -balance.cpp: if (fabs(1.0*(sum[i]-target[i]))/target[i] > delta) doneflag = 0; -balance.cpp: // eliminate final adjacent splits that are duplicates -balance.cpp: // can happen if particle distribution is narrow and Nitermax is small -balance.cpp: // set lo = midpt between splits -balance.cpp: // spread duplicates out evenly between bounding midpts with non-duplicates -balance.cpp: // i,j = lo/hi indices of set of duplicate splits -balance.cpp: // delta = new spacing between duplicates -balance.cpp: // bounding midpts = lo[i-1] and lo[j] -balance.cpp: delta = (lo[j] - lo[i-1]) / (j-i+2); -balance.cpp: // sanity check on bad duplicate or inverted splits -balance.cpp: // zero or negative width sub-domains will break Comm class -balance.cpp: // should never happen if recursive multisection algorithm is correct -balance.cpp: /* -balance.cpp: */ -balance.cpp: // stop at this point in bstr if imbalance factor < threshold -balance.cpp: // this is a true 3d test of particle count per processor -balance.cpp: // restore real coords -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp: lo/hi = split values that bound current split -balance.cpp: update lo/hi to reflect sums at current split values -balance.cpp: recursive bisectioning zooms in on each cut by halving lo/hi -balance.cpp: return 0 if no changes in any splits, b/c they are all perfect -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: // reset lo/hi based on current sum and splits -balance.cpp: // insure lo is monotonically increasing, ties are OK -balance.cpp: // insure hi is monotonically decreasing, ties are OK -balance.cpp: // this effectively uses info from nearby splits -balance.cpp: // to possibly tighten bounds on lo/hi -balance.cpp: fraction = 1.0*(target[i]-losum[i]) / (hisum[i]-losum[i]); -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp: return imbalance factor = max load per proc / ave load per proc -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: // one proc's particles may map to many partitions, so must Allreduce -balance.cpp: if (maxcost > 0.0) imbalance = maxcost / (totalcost/nprocs); -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: // insure vec[lo] <= value < vec[hi] at every iteration -balance.cpp: // done when lo,hi are adjacent -balance.cpp: int index = (lo+hi)/2; -balance.cpp: index = (lo+hi)/2; -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: // Allgather each proc's sub-box -balance.cpp: // could use Gather, but that requires MPI to alloc memory -balance.cpp: // proc 0 writes out nodal coords -balance.cpp: // some will be duplicates -balance.cpp: // write out one square/cube per processor for 2d/3d -balance.cpp:/* ---------------------------------------------------------------------- -balance.cpp:------------------------------------------------------------------------- */ -balance.cpp: fprintf(stderr," Imbalance factor: %g\n",1.0*max*np/target[np]); -body.cpp:/* ---------------------------------------------------------------------- -body.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -body.cpp: http://lammps.sandia.gov, Sandia National Laboratories -body.cpp:------------------------------------------------------------------------- */ -body.cpp:/* ---------------------------------------------------------------------- */ -body.cpp:/* ---------------------------------------------------------------------- */ -bond.cpp:/* ---------------------------------------------------------------------- -bond.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -bond.cpp: http://lammps.sandia.gov, Sandia National Laboratories -bond.cpp:------------------------------------------------------------------------- */ -bond.cpp:/* ----------------------------------------------------------------------- -bond.cpp:------------------------------------------------------------------------- */ -bond.cpp:/* ---------------------------------------------------------------------- */ -bond.cpp:/* ---------------------------------------------------------------------- -bond.cpp:------------------------------------------------------------------------- */ -bond.cpp:/* ---------------------------------------------------------------------- -bond.cpp:------------------------------------------------------------------------- */ -bond.cpp: eflag_atom = eflag / 2; -bond.cpp: vflag_atom = vflag / 4; -bond.cpp: // reallocate per-atom arrays if necessary -bond.cpp: // zero accumulators -bond.cpp:/* ---------------------------------------------------------------------- -bond.cpp:------------------------------------------------------------------------- */ -bond.cpp:/* ---------------------------------------------------------------------- -bond.cpp: write a table of bond potential energy/force vs distance to a file -bond.cpp:------------------------------------------------------------------------- */ -bond.cpp: // parse optional arguments -bond.cpp: error->all(FLERR,"Invalid rlo/rhi values in bond_write command"); -bond.cpp: // open file in append mode -bond.cpp: // print header in format used by bond_style table -bond.cpp: // initialize potentials before evaluating bond potential -bond.cpp: // insures all bond coeffs are set and force constants -bond.cpp: // also initialize neighbor so that neighbor requests are processed -bond.cpp: // NOTE: might be safest to just do lmp->init() -bond.cpp: // evaluate energy and force at each of N distances -bond.cpp: // note that Bond::single() takes r**2 and returns f/r. -bond.cpp: const double dr = (outer-inner) / static_cast(n-1); -bond.cpp:/* ---------------------------------------------------------------------- */ -bond.cpp:/* ----------------------------------------------------------------------- -bond.cpp:-------------------------------------------------------------------------- */ -bond_hybrid.cpp:/* ---------------------------------------------------------------------- -bond_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -bond_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories -bond_hybrid.cpp:------------------------------------------------------------------------- */ -bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ -bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ -bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ -bond_hybrid.cpp: // save ptrs to original bondlist -bond_hybrid.cpp: // if this is re-neighbor step, create sub-style bondlists -bond_hybrid.cpp: // nbondlist[] = length of each sub-style list -bond_hybrid.cpp: // realloc sub-style bondlist if necessary -bond_hybrid.cpp: // load sub-style bondlist with 3 values from original bondlist -bond_hybrid.cpp: // call each sub-style's compute function -bond_hybrid.cpp: // set neighbor->bondlist to sub-style bondlist before call -bond_hybrid.cpp: // accumulate sub-style global/peratom energy/virial in hybrid -bond_hybrid.cpp: // restore ptrs to original bondlist -bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ -bond_hybrid.cpp:/* ---------------------------------------------------------------------- -bond_hybrid.cpp:------------------------------------------------------------------------- */ -bond_hybrid.cpp: // delete old lists, since cannot just change settings -bond_hybrid.cpp: // count sub-styles by skipping numeric args -bond_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric word -bond_hybrid.cpp: // need a better way to skip these exceptions -bond_hybrid.cpp: // allocate list of sub-styles -bond_hybrid.cpp: // allocate each sub-style and call its settings() with subset of args -bond_hybrid.cpp: // allocate uses suffix, but don't store suffix version in keywords, -bond_hybrid.cpp: // else syntax in coeff() will not match -bond_hybrid.cpp: // define subset of args for a sub-style by skipping numeric args -bond_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric -bond_hybrid.cpp: // need a better way to skip these exceptions -bond_hybrid.cpp:/* ---------------------------------------------------------------------- -bond_hybrid.cpp:---------------------------------------------------------------------- */ -bond_hybrid.cpp: // 2nd arg = bond sub-style name -bond_hybrid.cpp: // allow for "none" as valid sub-style name -bond_hybrid.cpp: // move 1st arg to 2nd arg -bond_hybrid.cpp: // just copy ptrs, since arg[] points into original input line -bond_hybrid.cpp: // invoke sub-style coeff() starting with 1st arg -bond_hybrid.cpp: // set setflag and which type maps to which sub-style -bond_hybrid.cpp: // if sub-style is none: set hybrid setflag, wipe out map -bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ -bond_hybrid.cpp:/* ---------------------------------------------------------------------- -bond_hybrid.cpp:------------------------------------------------------------------------- */ -bond_hybrid.cpp:/* ---------------------------------------------------------------------- -bond_hybrid.cpp:------------------------------------------------------------------------- */ -bond_hybrid.cpp:/* ---------------------------------------------------------------------- -bond_hybrid.cpp:------------------------------------------------------------------------- */ -bond_hybrid.cpp:/* ---------------------------------------------------------------------- */ -bond_hybrid.cpp:/* ---------------------------------------------------------------------- -bond_hybrid.cpp:------------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- -bond_zero.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -bond_zero.cpp: http://lammps.sandia.gov, Sandia National Laboratories -bond_zero.cpp:------------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- -bond_zero.cpp:------------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- -bond_zero.cpp:------------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- -bond_zero.cpp:------------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- -bond_zero.cpp:------------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- -bond_zero.cpp:------------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- -bond_zero.cpp:------------------------------------------------------------------------- */ -bond_zero.cpp:/* ---------------------------------------------------------------------- */ -change_box.cpp:/* ---------------------------------------------------------------------- -change_box.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -change_box.cpp: http://lammps.sandia.gov, Sandia National Laboratories -change_box.cpp:------------------------------------------------------------------------- */ -change_box.cpp:/* ---------------------------------------------------------------------- */ -change_box.cpp:/* ---------------------------------------------------------------------- */ -change_box.cpp: // group -change_box.cpp: // parse operation arguments -change_box.cpp: // allocate ops to max possible length -change_box.cpp: // volume option does not increment nops -change_box.cpp: // read options from end of input line -change_box.cpp: // compute scale factors if FINAL,DELTA used since they have distance units -change_box.cpp: // perform sequence of operations -change_box.cpp: // first insure atoms are in current box & update box via shrink-wrap -change_box.cpp: // no exchange() since doesn't matter if atoms are assigned to correct procs -change_box.cpp: // save current box state so can remap atoms from it, if requested -change_box.cpp: "Cannot change box ortho/triclinic with dumps defined"); -change_box.cpp: "Cannot change box ortho/triclinic with " -change_box.cpp: "Cannot change box ortho/triclinic with dumps defined"); -change_box.cpp: "Cannot change box ortho/triclinic with " -change_box.cpp: // convert atoms to lamda coords, using last box state -change_box.cpp: // convert atoms back to box coords, using current box state -change_box.cpp: // save current box state -change_box.cpp: // clean up -change_box.cpp: // apply shrink-wrap boundary conditions -change_box.cpp: // move atoms back inside simulation box and to new processors -change_box.cpp: // use remap() instead of pbc() -change_box.cpp: // in case box moved a long distance relative to atoms -change_box.cpp: // use irregular() in case box moved a long distance relative to atoms -change_box.cpp: // check if any atoms were lost -change_box.cpp:/* ---------------------------------------------------------------------- -change_box.cpp:------------------------------------------------------------------------- */ -change_box.cpp:/* ---------------------------------------------------------------------- -change_box.cpp:------------------------------------------------------------------------- */ -change_box.cpp:/* ---------------------------------------------------------------------- -change_box.cpp: reset box lengths of dim1/2 to preserve old volume -change_box.cpp:------------------------------------------------------------------------- */ -change_box.cpp: // invoke set_initial_box() -change_box.cpp: // in case change by caller to dim3 was invalid or on shrink-wrapped dim -change_box.cpp: // calculate newvol using boxlo/hi since xyz prd are not yet reset -change_box.cpp: double scale = oldvol/newvol; -change_box.cpp: // change dim1 only -change_box.cpp: // change dim1 and dim2, keeping their relative aspect ratio constant -change_box.cpp: // both are scaled by sqrt(scale) -citeme.cpp:/* ---------------------------------------------------------------------- -citeme.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -citeme.cpp: http://lammps.sandia.gov, Sandia National Laboratories -citeme.cpp:------------------------------------------------------------------------- */ -citeme.cpp: "following references. See http://lammps.sandia.gov/cite.html\n" -citeme.cpp:/* ---------------------------------------------------------------------- */ -citeme.cpp:/* ---------------------------------------------------------------------- -citeme.cpp:------------------------------------------------------------------------- */ -citeme.cpp:/* ---------------------------------------------------------------------- -citeme.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -comm_brick.cpp: http://lammps.sandia.gov, Sandia National Laboratories -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:enum{SINGLE,MULTI}; // same as in Comm -comm_brick.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files -comm_brick.cpp:/* ---------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- */ -comm_brick.cpp://IMPORTANT: we *MUST* pass "*oldcomm" to the Comm initializer here, as -comm_brick.cpp:// the code below *requires* that the (implicit) copy constructor -comm_brick.cpp:// for Comm is run and thus creating a shallow copy of "oldcomm". -comm_brick.cpp:// The call to Comm::copy_arrays() then converts the shallow copy -comm_brick.cpp:// into a deep copy of the class with the new layout. -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // bufextra = max size of one exchanged atom -comm_brick.cpp: // = allowed overflow of sendbuf in exchange() -comm_brick.cpp: // atomvec, fix reset these 2 maxexchange values if needed -comm_brick.cpp: // only necessary if their size > BUFEXTRA -comm_brick.cpp:/* ---------------------------------------------------------------------- */ -comm_brick.cpp: // memory for multi-style communication -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // cutghost[] = max distance at which ghost atoms need to be acquired -comm_brick.cpp: // for orthogonal: -comm_brick.cpp: // cutghost is in box coords = neigh->cutghost in all 3 dims -comm_brick.cpp: // for triclinic: -comm_brick.cpp: // neigh->cutghost = distance between tilted planes in box coords -comm_brick.cpp: // cutghost is in lamda coords = distance between those planes -comm_brick.cpp: // for multi: -comm_brick.cpp: // cutghostmulti = same as cutghost, only for each atom type -comm_brick.cpp: // recvneed[idim][0/1] = # of procs away I recv atoms from, within cutghost -comm_brick.cpp: // 0 = from left, 1 = from right -comm_brick.cpp: // do not cross non-periodic boundaries, need[2] = 0 for 2d -comm_brick.cpp: // sendneed[idim][0/1] = # of procs away I send atoms to -comm_brick.cpp: // 0 = to left, 1 = to right -comm_brick.cpp: // set equal to recvneed[idim][1/0] of neighbor proc -comm_brick.cpp: // maxneed[idim] = max procs away any proc recvs atoms in either direction -comm_brick.cpp: // layout = UNIFORM = uniform sized sub-domains: -comm_brick.cpp: // maxneed is directly computable from sub-domain size -comm_brick.cpp: // limit to procgrid-1 for non-PBC -comm_brick.cpp: // recvneed = maxneed except for procs near non-PBC -comm_brick.cpp: // sendneed = recvneed of neighbor on each side -comm_brick.cpp: // layout = NONUNIFORM = non-uniform sized sub-domains: -comm_brick.cpp: // compute recvneed via updown() which accounts for non-PBC -comm_brick.cpp: // sendneed = recvneed of neighbor on each side -comm_brick.cpp: // maxneed via Allreduce() of recvneed -comm_brick.cpp: maxneed[0] = static_cast (cutghost[0] * procgrid[0] / prd[0]) + 1; -comm_brick.cpp: maxneed[1] = static_cast (cutghost[1] * procgrid[1] / prd[1]) + 1; -comm_brick.cpp: maxneed[2] = static_cast (cutghost[2] * procgrid[2] / prd[2]) + 1; -comm_brick.cpp: // allocate comm memory -comm_brick.cpp: // setup parameters for each exchange: -comm_brick.cpp: // sendproc = proc to send to at each swap -comm_brick.cpp: // recvproc = proc to recv from at each swap -comm_brick.cpp: // for mode SINGLE: -comm_brick.cpp: // slablo/slabhi = boundaries for slab of atoms to send at each swap -comm_brick.cpp: // use -BIG/midpt/BIG to insure all atoms included even if round-off occurs -comm_brick.cpp: // if round-off, atoms recvd across PBC can be < or > than subbox boundary -comm_brick.cpp: // note that borders() only loops over subset of atoms during each swap -comm_brick.cpp: // treat all as PBC here, non-PBC is handled in borders() via r/s need[][] -comm_brick.cpp: // for mode MULTI: -comm_brick.cpp: // multilo/multihi is same, with slablo/slabhi for each atom type -comm_brick.cpp: // pbc_flag: 0 = nothing across a boundary, 1 = something across a boundary -comm_brick.cpp: // pbc = -1/0/1 for PBC factor in each of 3/6 orthogonal/triclinic dirs -comm_brick.cpp: // for triclinic, slablo/hi and pbc_border will be used in lamda (0-1) coords -comm_brick.cpp: // 1st part of if statement is sending to the west/south/down -comm_brick.cpp: // 2nd part of if statement is sending to the east/north/up -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp: walk up/down the extent of nearby processors in dim and dir -comm_brick.cpp: dir = 0/1 = walk to left/right -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: frac = cutghost[dim]/prd; -comm_brick.cpp: frac = cutghost[dim]/prd; -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp: other per-atom attributes may also be sent via pack/unpack routines -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // exchange data with another proc -comm_brick.cpp: // if other proc is self, just copy -comm_brick.cpp: // if comm_x_only set, exchange or copy directly to x, don't unpack -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp: other per-atom attributes may also be sent via pack/unpack routines -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // exchange data with another proc -comm_brick.cpp: // if other proc is self, just copy -comm_brick.cpp: // if comm_f_only set, exchange or copy directly from f, don't pack -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // clear global->local map for owned and ghost atoms -comm_brick.cpp: // b/c atoms migrate to new procs in exchange() and -comm_brick.cpp: // new ghosts are created in borders() -comm_brick.cpp: // map_set() is done at end of borders() -comm_brick.cpp: // clear ghost count and any ghost bonus data internal to AtomVec -comm_brick.cpp: // insure send buf is large enough for single atom -comm_brick.cpp: // bufextra = max size of one atom = allowed overflow of sendbuf -comm_brick.cpp: // fixes can change per-atom size requirement on-the-fly -comm_brick.cpp: // subbox bounds for orthogonal or triclinic -comm_brick.cpp: // loop over dimensions -comm_brick.cpp: // fill buffer with atoms leaving my box, using < and >= -comm_brick.cpp: // when atom is deleted, fill it in with last atom -comm_brick.cpp: // send/recv atoms in both directions -comm_brick.cpp: // send size of message first so receiver can realloc buf_recv if needed -comm_brick.cpp: // if 1 proc in dimension, no send/recv -comm_brick.cpp: // set nrecv = 0 so buf_send atoms will be lost -comm_brick.cpp: // if 2 procs in dimension, single send/recv -comm_brick.cpp: // if more than 2 procs in dimension, send/recv to both neighbors -comm_brick.cpp: // check incoming atoms to see if they are in my box -comm_brick.cpp: // if so, add to my list -comm_brick.cpp: // box check is only for this dimension, -comm_brick.cpp: // atom may be passed to another proc in later dims -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // do swaps over all 3 dimensions -comm_brick.cpp: // find atoms within slab boundaries lo/hi using <= and >= -comm_brick.cpp: // check atoms between nfirst and nlast -comm_brick.cpp: // for first swaps in a dim, check owned and ghost -comm_brick.cpp: // for later swaps in a dim, only check newly arrived ghosts -comm_brick.cpp: // store sent atom indices in sendlist for use in future timesteps -comm_brick.cpp: // sendflag = 0 if I do not send on this swap -comm_brick.cpp: // sendneed test indicates receiver no longer requires data -comm_brick.cpp: // e.g. due to non-PBC or non-uniform sub-domains -comm_brick.cpp: if (ineed/2 >= sendneed[dim][ineed % 2]) sendflag = 0; -comm_brick.cpp: // find send atoms according to SINGLE vs MULTI -comm_brick.cpp: // all atoms eligible versus only atoms in bordergroup -comm_brick.cpp: // can only limit loop to bordergroup for first sends (ineed < 2) -comm_brick.cpp: // on these sends, break loop in two: owned (in group) and ghost -comm_brick.cpp: // pack up list of border atoms -comm_brick.cpp: // swap atoms with other proc -comm_brick.cpp: // no MPI calls except SendRecv if nsend/nrecv = 0 -comm_brick.cpp: // put incoming ghosts at end of my atom arrays -comm_brick.cpp: // if swapping with self, simply copy, no messages -comm_brick.cpp: // unpack buffer -comm_brick.cpp: // set all pointers & counters -comm_brick.cpp: // insure send/recv buffers are long enough for all forward & reverse comm -comm_brick.cpp: // reset global->local map -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // pack buffer -comm_brick.cpp: // exchange with another proc -comm_brick.cpp: // if self, set recv buffer to send buffer -comm_brick.cpp: // unpack buffer -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // pack buffer -comm_brick.cpp: // exchange with another proc -comm_brick.cpp: // if self, set recv buffer to send buffer -comm_brick.cpp: // unpack buffer -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp: size/nsize used only to set recv buffer limit -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // pack buffer -comm_brick.cpp: // exchange with another proc -comm_brick.cpp: // if self, set recv buffer to send buffer -comm_brick.cpp: // unpack buffer -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp: size/nsize used only to set recv buffer limit -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // pack buffer -comm_brick.cpp: // exchange with another proc -comm_brick.cpp: // if self, set recv buffer to send buffer -comm_brick.cpp: // unpack buffer -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp: handshake sizes before each Irecv/Send to insure buf_recv is big enough -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // pack buffer -comm_brick.cpp: // exchange with another proc -comm_brick.cpp: // if self, set recv buffer to send buffer -comm_brick.cpp: // unpack buffer -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // pack buffer -comm_brick.cpp: // exchange with another proc -comm_brick.cpp: // if self, set recv buffer to send buffer -comm_brick.cpp: // unpack buffer -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // pack buffer -comm_brick.cpp: // exchange with another proc -comm_brick.cpp: // if self, set recv buffer to send buffer -comm_brick.cpp: // unpack buffer -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // pack buffer -comm_brick.cpp: // exchange with another proc -comm_brick.cpp: // if self, set recv buffer to send buffer -comm_brick.cpp: // unpack buffer -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // pack buffer -comm_brick.cpp: // exchange with another proc -comm_brick.cpp: // if self, set recv buffer to send buffer -comm_brick.cpp: // unpack buffer -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // insure send/recv bufs are big enough for nsize -comm_brick.cpp: // based on smax/rmax from most recent borders() invocation -comm_brick.cpp: // pack buffer -comm_brick.cpp: // exchange with another proc -comm_brick.cpp: // if self, set recv buffer to send buffer -comm_brick.cpp: // unpack buffer -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: // loop over dimensions -comm_brick.cpp: // no exchange if only one proc in a dimension -comm_brick.cpp: // send/recv info in both directions using same buf_recv -comm_brick.cpp: // if 2 procs in dimension, single send/recv -comm_brick.cpp: // if more than 2 procs in dimension, send/recv to both neighbors -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp: if flag = 0, don't need to realloc with copy, just free/malloc -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp: free/malloc the size of the recv buffer as needed with BUFFACTOR -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp:/* ---------------------------------------------------------------------- -comm_brick.cpp:------------------------------------------------------------------------- */ -comm_brick.cpp: bytes += nprocs * sizeof(int); // grid2proc -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -comm.cpp: http://lammps.sandia.gov, Sandia National Laboratories -comm.cpp:------------------------------------------------------------------------- */ -comm.cpp:#define BUFMIN 1000 // also in comm styles -comm.cpp:enum{SINGLE,MULTI}; // same as in Comm sub-styles -comm.cpp:enum{MULTIPLE}; // same as in ProcMap -comm.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files -comm.cpp:/* ---------------------------------------------------------------------- */ -comm.cpp: // use of OpenMP threads -comm.cpp: // query OpenMP for number of threads/process set by user at run-time -comm.cpp: // if the OMP_NUM_THREADS environment variable is not set, we default -comm.cpp: // to using 1 thread. This follows the principle of the least surprise, -comm.cpp: // while practically all OpenMP implementations violate it by using -comm.cpp: // as many threads as there are (virtual) CPU cores by default. -comm.cpp: // enforce consistent number of threads across all MPI tasks -comm.cpp:/* ---------------------------------------------------------------------- */ -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp: all public/protected vectors/arrays in parent Comm class must be copied -comm.cpp:------------------------------------------------------------------------- */ -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp:------------------------------------------------------------------------- */ -comm.cpp: // check warn if any proc's subbox is smaller than neigh skin -comm.cpp: // since may lead to lost atoms in exchange() -comm.cpp: // really should check every exchange() in case box size is shrinking -comm.cpp: // but seems overkill to do that (fix balance does perform this check) -comm.cpp: // comm_only = 1 if only x,f are exchanged in forward/reverse comm -comm.cpp: // comm_x_only = 0 if ghost_velocity since velocities are added -comm.cpp: // set per-atom sizes for forward/reverse/border comm -comm.cpp: // augment by velocity and fix quantities if needed -comm.cpp: // per-atom limits for communication -comm.cpp: // maxexchange = max # of datums in exchange comm, set in exchange() -comm.cpp: // maxforward = # of datums in largest forward comm -comm.cpp: // maxreverse = # of datums in largest reverse comm -comm.cpp: // query pair,fix,compute,dump for their requirements -comm.cpp: // pair style can force reverse comm even if newton off -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp:------------------------------------------------------------------------- */ -comm.cpp: // need to reset cutghostuser when switching comm mode -comm.cpp: // need to reset cutghostuser when switching comm mode -comm.cpp: "Use cutoff/multi keyword to set cutoff in multi mode"); -comm.cpp: } else if (strcmp(arg[iarg],"cutoff/multi") == 0) { -comm.cpp: "Cannot set cutoff/multi before simulation box is defined"); -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp:------------------------------------------------------------------------- */ -comm.cpp: else if (strcmp(arg[iarg+1],"cart/reorder") == 0) mapflag = CARTREORDER; -comm.cpp: // only receiver has otherflag dependency -comm.cpp: // error checks -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp:------------------------------------------------------------------------- */ -comm.cpp: // recv 3d proc grid of another partition if my 3d grid depends on it -comm.cpp: // create ProcMap class to create 3d grid and map procs to it -comm.cpp: // create 3d grid of processors -comm.cpp: // produces procgrid and coregrid (if relevant) -comm.cpp: // error check on procgrid -comm.cpp: // should not be necessary due to ProcMap -comm.cpp: // grid2proc[i][j][k] = proc that owns i,j,k location in 3d grid -comm.cpp: // map processor IDs to 3d processor grid -comm.cpp: // produces myloc, procneigh, grid2proc -comm.cpp: // print 3d grid info to screen and logfile -comm.cpp: // print 3d grid details to outfile -comm.cpp: // free ProcMap class -comm.cpp: // set xsplit,ysplit,zsplit for uniform spacings -comm.cpp: for (int i = 0; i < procgrid[0]; i++) xsplit[i] = i * 1.0/procgrid[0]; -comm.cpp: for (int i = 0; i < procgrid[1]; i++) ysplit[i] = i * 1.0/procgrid[1]; -comm.cpp: for (int i = 0; i < procgrid[2]; i++) zsplit[i] = i * 1.0/procgrid[2]; -comm.cpp: // set lamda box params after procs are assigned -comm.cpp: // only set once unless load-balancing occurs -comm.cpp: // send my 3d proc grid to another partition if requested -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp:------------------------------------------------------------------------- */ -comm.cpp: // initialize triclinic b/c coord2proc can be called before Comm::init() -comm.cpp: // via Irregular::migrate_atoms() -comm.cpp: igx = static_cast (procgrid[0] * (x[0]-boxlo[0]) / prd[0]); -comm.cpp: igy = static_cast (procgrid[1] * (x[1]-boxlo[1]) / prd[1]); -comm.cpp: igz = static_cast (procgrid[2] * (x[2]-boxlo[2]) / prd[2]); -comm.cpp: igx = binary((x[0]-boxlo[0])/prd[0],procgrid[0],xsplit); -comm.cpp: igy = binary((x[1]-boxlo[1])/prd[1],procgrid[1],ysplit); -comm.cpp: igz = binary((x[2]-boxlo[2])/prd[2],procgrid[2],zsplit); -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp:------------------------------------------------------------------------- */ -comm.cpp: // insure vec[lo] <= value < vec[hi] at every iteration -comm.cpp: // done when lo,hi are adjacent -comm.cpp: int index = (lo+hi)/2; -comm.cpp: index = (lo+hi)/2; -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp: callback() is invoked to allow caller to process/update each proc's inbuf -comm.cpp:------------------------------------------------------------------------- */ -comm.cpp: // no need to communicate without data -comm.cpp: if (self || loop < nprocs-1) callback(nbytes/nper,buf); -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp:------------------------------------------------------------------------- */ -comm.cpp:/* ---------------------------------------------------------------------- -comm.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -comm_tiled.cpp: http://lammps.sandia.gov, Sandia National Laboratories -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:enum{SINGLE,MULTI}; // same as in Comm -comm_tiled.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files -comm_tiled.cpp:/* ---------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- */ -comm_tiled.cpp://IMPORTANT: we *MUST* pass "*oldcomm" to the Comm initializer here, as -comm_tiled.cpp:// the code below *requires* that the (implicit) copy constructor -comm_tiled.cpp:// for Comm is run and thus creating a shallow copy of "oldcomm". -comm_tiled.cpp:// The call to Comm::copy_arrays() then converts the shallow copy -comm_tiled.cpp:// into a deep copy of the class with the new layout. -comm_tiled.cpp:/* ---------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // bufextra = max size of one exchanged atom -comm_tiled.cpp: // = allowed overflow of sendbuf in exchange() -comm_tiled.cpp: // atomvec, fix reset these 2 maxexchange values if needed -comm_tiled.cpp: // only necessary if their size > BUFEXTRA -comm_tiled.cpp:/* ---------------------------------------------------------------------- */ -comm_tiled.cpp: // temporary restrictions -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // domain properties used in setup method and methods it calls -comm_tiled.cpp: // set function pointers -comm_tiled.cpp: // if RCB decomp exists and just changed, gather needed global RCB info -comm_tiled.cpp: // set cutoff for comm forward and comm reverse -comm_tiled.cpp: // check that cutoff < any periodic box length -comm_tiled.cpp: // if cut = 0.0, set to epsilon to induce nearest neighbor comm -comm_tiled.cpp: // this is b/c sendproc is used below to infer touching exchange procs -comm_tiled.cpp: // exchange procs will be empty (leading to lost atoms) if sendproc = 0 -comm_tiled.cpp: // will reset sendproc/etc to 0 after exchange is setup, down below -comm_tiled.cpp: // setup forward/reverse communication -comm_tiled.cpp: // loop over 6 swap directions -comm_tiled.cpp: // determine which procs I will send to and receive from in each swap -comm_tiled.cpp: // done by intersecting ghost box with all proc sub-boxes it overlaps -comm_tiled.cpp: // sets nsendproc, nrecvproc, sendproc, recvproc -comm_tiled.cpp: // sets sendother, recvother, sendself, pbc_flag, pbc, sendbox -comm_tiled.cpp: // resets nprocmax -comm_tiled.cpp: // one = first ghost box in same periodic image -comm_tiled.cpp: // two = second ghost box wrapped across periodic boundary -comm_tiled.cpp: // either may not exist -comm_tiled.cpp: // noverlap = # of overlaps of box1/2 with procs via box_drop() -comm_tiled.cpp: // overlap = list of overlapping procs -comm_tiled.cpp: // if overlap with self, indexme = index of me in list -comm_tiled.cpp: // if self is in overlap list, move it to end of list -comm_tiled.cpp: // reallocate 2nd dimensions of all send/recv arrays, based on noverlap -comm_tiled.cpp: // # of sends of this swap = # of recvs of iswap +/- 1 -comm_tiled.cpp: // overlap how has list of noverlap procs -comm_tiled.cpp: // includes PBC effects -comm_tiled.cpp: // compute sendbox for each of my sends -comm_tiled.cpp: // obox = intersection of ghostbox with other proc's sub-domain -comm_tiled.cpp: // sbox = what I need to send to other proc -comm_tiled.cpp: // = sublo to MIN(sublo+cut,subhi) in idim, for idir = 0 -comm_tiled.cpp: // = MIN(subhi-cut,sublo) to subhi in idim, for idir = 1 -comm_tiled.cpp: // = obox in other 2 dims -comm_tiled.cpp: // if sbox touches other proc's sub-box boundaries in lower dims, -comm_tiled.cpp: // extend sbox in those lower dims to include ghost atoms -comm_tiled.cpp: // setup exchange communication = subset of forward/reverse comm procs -comm_tiled.cpp: // loop over dimensions -comm_tiled.cpp: // determine which procs I will exchange with in each dimension -comm_tiled.cpp: // subset of procs that touch my proc in forward/reverse comm -comm_tiled.cpp: // sets nexchproc & exchproc, resets nexchprocmax -comm_tiled.cpp: // overlap = list of procs that touch my sub-box in idim -comm_tiled.cpp: // proc can appear twice in list if touches in both directions -comm_tiled.cpp: // 2nd add-to-list checks to insure each proc appears exactly once -comm_tiled.cpp: // reallocate exchproc and exchnum if needed based on noverlap -comm_tiled.cpp: // reset sendproc/etc to 0 if cut is really 0.0 -comm_tiled.cpp: // reallocate MPI Requests and Statuses as needed -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: other per-atom attributes may also be sent via pack/unpack routines -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // exchange data with another set of procs in each swap -comm_tiled.cpp: // post recvs from all procs except self -comm_tiled.cpp: // send data to all procs except self -comm_tiled.cpp: // copy data to self if sendself is set -comm_tiled.cpp: // wait on all procs except self and unpack received data -comm_tiled.cpp: // if comm_x_only set, exchange or copy directly to x, don't unpack -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: other per-atom attributes may also be sent via pack/unpack routines -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // exchange data with another set of procs in each swap -comm_tiled.cpp: // post recvs from all procs except self -comm_tiled.cpp: // send data to all procs except self -comm_tiled.cpp: // copy data to self if sendself is set -comm_tiled.cpp: // wait on all procs except self and unpack received data -comm_tiled.cpp: // if comm_f_only set, exchange or copy directly from f, don't pack -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // clear global->local map for owned and ghost atoms -comm_tiled.cpp: // b/c atoms migrate to new procs in exchange() and -comm_tiled.cpp: // new ghosts are created in borders() -comm_tiled.cpp: // map_set() is done at end of borders() -comm_tiled.cpp: // clear ghost count and any ghost bonus data internal to AtomVec -comm_tiled.cpp: // insure send buf is large enough for single atom -comm_tiled.cpp: // bufextra = max size of one atom = allowed overflow of sendbuf -comm_tiled.cpp: // fixes can change per-atom size requirement on-the-fly -comm_tiled.cpp: // domain properties used in exchange method and methods it calls -comm_tiled.cpp: // subbox bounds for orthogonal or triclinic -comm_tiled.cpp: // loop over dimensions -comm_tiled.cpp: // fill buffer with atoms leaving my box, using < and >= -comm_tiled.cpp: // when atom is deleted, fill it in with last atom -comm_tiled.cpp: // send and recv atoms from neighbor procs that touch my sub-box in dim -comm_tiled.cpp: // no send/recv with self -comm_tiled.cpp: // send size of message first -comm_tiled.cpp: // receiver may receive multiple messages, realloc buf_recv if needed -comm_tiled.cpp: // check incoming atoms to see if I own it and they are in my box -comm_tiled.cpp: // if so, add to my list -comm_tiled.cpp: // box check is only for this dimension, -comm_tiled.cpp: // atom may be passed to another proc in later dims -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: one list is created per swap/proc that will be made -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // send/recv max one = max # of atoms in single send/recv for any swap -comm_tiled.cpp: // send/recv max all = max # of atoms in all sends/recvs within any swap -comm_tiled.cpp: // loop over swaps in all dimensions -comm_tiled.cpp: // find atoms within sendboxes using >= and < -comm_tiled.cpp: // hi test with ">" is important b/c don't want to send an atom -comm_tiled.cpp: // in lower dim (on boundary) that a proc will recv again in higher dim -comm_tiled.cpp: // for x-dim swaps, check owned atoms -comm_tiled.cpp: // for yz-dim swaps, check owned and ghost atoms -comm_tiled.cpp: // store sent atom indices in sendlist for use in future timesteps -comm_tiled.cpp: // NOTE: assume SINGLE mode, add logic for MULTI mode later -comm_tiled.cpp: // send sendnum counts to procs who recv from me except self -comm_tiled.cpp: // copy data to self if sendself is set -comm_tiled.cpp: // setup other per swap/proc values from sendnum and recvnum -comm_tiled.cpp: // insure send/recv buffers are large enough for this border comm swap -comm_tiled.cpp: // swap atoms with other procs using pack_border(), unpack_border() -comm_tiled.cpp: // use Waitall() instead of Waitany() because calls to unpack_border() -comm_tiled.cpp: // must increment per-atom arrays in ascending order -comm_tiled.cpp: // increment ghost atoms -comm_tiled.cpp: // insure send/recv buffers are long enough for all forward & reverse comm -comm_tiled.cpp: // send buf is for one forward or reverse sends to one proc -comm_tiled.cpp: // recv buf is for all forward or reverse recvs in one swap -comm_tiled.cpp: // reset global->local map -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: size/nsize used only to set recv buffer limit -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: size/nsize used only to set recv buffer limit -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // insure send/recv bufs are big enough for nsize -comm_tiled.cpp: // based on smaxone/rmaxall from most recent borders() invocation -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: determine overlap list of Noverlap procs the lo/hi box overlaps -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // NOTE: this is not triclinic compatible -comm_tiled.cpp: // NOTE: these error messages are internal sanity checks -comm_tiled.cpp: // should not occur, can be removed at some point -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: determine overlap list of Noverlap procs the lo/hi box overlaps -comm_tiled.cpp: no need to split lo/hi box as recurse b/c OK if box extends outside RCB box -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // end recursion when partition is a single proc -comm_tiled.cpp: // add proc to overlap list -comm_tiled.cpp: // drop box on each side of cut it extends beyond -comm_tiled.cpp: // use > and < criteria so does not include a box it only touches -comm_tiled.cpp: // procmid = 1st processor in upper half of partition -comm_tiled.cpp: // = location in tree that stores this cut -comm_tiled.cpp: // dim = 0,1,2 dimension of cut -comm_tiled.cpp: // cut = position of cut -comm_tiled.cpp: int procmid = proclower + (procupper - proclower) / 2 + 1; -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: return other box owned by proc as lo/hi corner pts -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: return other box owned by proc as lo/hi corner pts -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // sending to left -comm_tiled.cpp: // only touches if proc hi = my lo, or if proc hi = boxhi and my lo = boxlo -comm_tiled.cpp: // sending to right -comm_tiled.cpp: // only touches if proc lo = my hi, or if proc lo = boxlo and my hi = boxhi -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: // end recursion when partition is a single proc -comm_tiled.cpp: // return proc -comm_tiled.cpp: // drop point on side of cut it is on -comm_tiled.cpp: // use < criterion so point is not on high edge of proc sub-domain -comm_tiled.cpp: // procmid = 1st processor in upper half of partition -comm_tiled.cpp: // = location in tree that stores this cut -comm_tiled.cpp: // dim = 0,1,2 dimension of cut -comm_tiled.cpp: // cut = position of cut -comm_tiled.cpp: int procmid = proclower + (procupper - proclower) / 2 + 1; -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: if flag = 0, don't need to realloc with copy, just free/malloc -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp: free/malloc the size of the recv buffer as needed with BUFFACTOR -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: nexchproc = new int[n/2]; -comm_tiled.cpp: nexchprocmax = new int[n/2]; -comm_tiled.cpp: exchproc = new int*[n/2]; -comm_tiled.cpp: exchnum = new int*[n/2]; -comm_tiled.cpp: for (int i = 0; i < n/2; i++) { -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -comm_tiled.cpp: for (int i = 0; i < n/2; i++) { -comm_tiled.cpp:/* ---------------------------------------------------------------------- -comm_tiled.cpp:------------------------------------------------------------------------- */ -compute_angle.cpp:/* ---------------------------------------------------------------------- -compute_angle.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_angle.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_angle.cpp:------------------------------------------------------------------------- */ -compute_angle.cpp:/* ---------------------------------------------------------------------- */ -compute_angle.cpp: // check if bond style hybrid exists -compute_angle.cpp:/* ---------------------------------------------------------------------- */ -compute_angle.cpp:/* ---------------------------------------------------------------------- */ -compute_angle.cpp: // recheck angle style in case it has been changed -compute_angle.cpp:/* ---------------------------------------------------------------------- */ -compute_angle_local.cpp:/* ---------------------------------------------------------------------- -compute_angle_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_angle_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_angle_local.cpp:------------------------------------------------------------------------- */ -compute_angle_local.cpp:/* ---------------------------------------------------------------------- */ -compute_angle_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute angle/local command"); -compute_angle_local.cpp: error->all(FLERR,"Compute angle/local used when angles are not allowed"); -compute_angle_local.cpp: else error->all(FLERR,"Invalid keyword in compute angle/local command"); -compute_angle_local.cpp:/* ---------------------------------------------------------------------- */ -compute_angle_local.cpp:/* ---------------------------------------------------------------------- */ -compute_angle_local.cpp: error->all(FLERR,"No angle style is defined for compute angle/local"); -compute_angle_local.cpp: // do initial memory allocation so that memory_usage() is correct -compute_angle_local.cpp:/* ---------------------------------------------------------------------- */ -compute_angle_local.cpp: // count local entries and compute angle info -compute_angle_local.cpp:/* ---------------------------------------------------------------------- -compute_angle_local.cpp:------------------------------------------------------------------------- */ -compute_angle_local.cpp: // c = cosine of angle -compute_angle_local.cpp: c /= r1*r2; -compute_angle_local.cpp: tbuf[n] = 180.0*acos(c)/MY_PI; -compute_angle_local.cpp:/* ---------------------------------------------------------------------- */ -compute_angle_local.cpp: // grow vector_local or array_local -compute_angle_local.cpp: memory->create(vlocal,nmax,"angle/local:vector_local"); -compute_angle_local.cpp: memory->create(alocal,nmax,nvalues,"angle/local:array_local"); -compute_angle_local.cpp:/* ---------------------------------------------------------------------- -compute_angle_local.cpp:------------------------------------------------------------------------- */ -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- -compute_angmom_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_angmom_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_angmom_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute angmom/chunk command"); -compute_angmom_chunk.cpp: // ID of compute chunk/atom -compute_angmom_chunk.cpp: // chunk-based data -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_angmom_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " -compute_angmom_chunk.cpp: "compute angmom/chunk"); -compute_angmom_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_angmom_chunk.cpp: error->all(FLERR,"Compute angmom/chunk does not use chunk/atom compute"); -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_angmom_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_angmom_chunk.cpp: // extract ichunk index vector from compute -compute_angmom_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_angmom_chunk.cpp: // zero local per-chunk values -compute_angmom_chunk.cpp: // compute COM for each chunk -compute_angmom_chunk.cpp: comall[i][0] /= masstotal[i]; -compute_angmom_chunk.cpp: comall[i][1] /= masstotal[i]; -compute_angmom_chunk.cpp: comall[i][2] /= masstotal[i]; -compute_angmom_chunk.cpp: // compute angmom for each chunk -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- -compute_angmom_chunk.cpp: lock methods: called by fix ave/time -compute_angmom_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_angmom_chunk.cpp: by passing lock info along to compute chunk/atom -compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- -compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- -compute_angmom_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- -compute_angmom_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- -compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- -compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- -compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ -compute_angmom_chunk.cpp: memory->create(massproc,maxchunk,"angmom/chunk:massproc"); -compute_angmom_chunk.cpp: memory->create(masstotal,maxchunk,"angmom/chunk:masstotal"); -compute_angmom_chunk.cpp: memory->create(com,maxchunk,3,"angmom/chunk:com"); -compute_angmom_chunk.cpp: memory->create(comall,maxchunk,3,"angmom/chunk:comall"); -compute_angmom_chunk.cpp: memory->create(angmom,maxchunk,3,"angmom/chunk:angmom"); -compute_angmom_chunk.cpp: memory->create(angmomall,maxchunk,3,"angmom/chunk:angmomall"); -compute_angmom_chunk.cpp:/* ---------------------------------------------------------------------- -compute_angmom_chunk.cpp:------------------------------------------------------------------------- */ -compute_bond.cpp:/* ---------------------------------------------------------------------- -compute_bond.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_bond.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_bond.cpp:------------------------------------------------------------------------- */ -compute_bond.cpp:/* ---------------------------------------------------------------------- */ -compute_bond.cpp: // check if bond style hybrid exists -compute_bond.cpp:/* ---------------------------------------------------------------------- */ -compute_bond.cpp:/* ---------------------------------------------------------------------- */ -compute_bond.cpp: // recheck bond style in case it has been changed -compute_bond.cpp:/* ---------------------------------------------------------------------- */ -compute_bond_local.cpp:/* ---------------------------------------------------------------------- -compute_bond_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_bond_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_bond_local.cpp:------------------------------------------------------------------------- */ -compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ -compute_bond_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute bond/local command"); -compute_bond_local.cpp: error->all(FLERR,"Compute bond/local used when bonds are not allowed"); -compute_bond_local.cpp: else error->all(FLERR,"Invalid keyword in compute bond/local command"); -compute_bond_local.cpp: // set singleflag if need to call bond->single() -compute_bond_local.cpp: // set velflag if compute any quantities based on velocities -compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ -compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ -compute_bond_local.cpp: error->all(FLERR,"No bond style is defined for compute bond/local"); -compute_bond_local.cpp: // set ghostvelflag if need to acquire ghost atom velocities -compute_bond_local.cpp: // do initial memory allocation so that memory_usage() is correct -compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ -compute_bond_local.cpp: // count local entries and compute bond info -compute_bond_local.cpp:/* ---------------------------------------------------------------------- -compute_bond_local.cpp:------------------------------------------------------------------------- */ -compute_bond_local.cpp: // communicate ghost velocities if needed -compute_bond_local.cpp: // loop over all atoms and their bonds -compute_bond_local.cpp: invmasstotal = 1.0 / (masstotal); -compute_bond_local.cpp: // r12 = unit bond vector from atom1 to atom2 -compute_bond_local.cpp: // delr = vector from COM to each atom -compute_bond_local.cpp: // delv = velocity of each atom relative to COM -compute_bond_local.cpp: // vpar = component of delv parallel to bond vector -compute_bond_local.cpp: // vvib = relative velocity of 2 atoms along bond direction -compute_bond_local.cpp: // vvib < 0 for 2 atoms moving towards each other -compute_bond_local.cpp: // vvib > 0 for 2 atoms moving apart -compute_bond_local.cpp: // vrotsq = tangential speed squared of atom1 only -compute_bond_local.cpp: // omegasq = omega squared, and is the same for atom1 and atom2 -compute_bond_local.cpp: omegasq = vrotsq / MathExtra::lensq3(delr1); -compute_bond_local.cpp: // sanity check: engtotal = engtrans + engvib + engrot -compute_bond_local.cpp: //engtot = 0.5 * (mass1*MathExtra::lensq3(v[atom1]) + -compute_bond_local.cpp: // mass2*MathExtra::lensq3(v[atom2])); -compute_bond_local.cpp: //if (fabs(engtot-engtrans-engvib-engrot) > EPSILON) -compute_bond_local.cpp: // error->one(FLERR,"Sanity check on 3 energy components failed"); -compute_bond_local.cpp: // scale energies by units -compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ -compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ -compute_bond_local.cpp:/* ---------------------------------------------------------------------- */ -compute_bond_local.cpp: // grow vector_local or array_local -compute_bond_local.cpp: memory->create(vlocal,nmax,"bond/local:vector_local"); -compute_bond_local.cpp: memory->create(alocal,nmax,nvalues,"bond/local:array_local"); -compute_bond_local.cpp:/* ---------------------------------------------------------------------- -compute_bond_local.cpp:------------------------------------------------------------------------- */ -compute_centro_atom.cpp:/* ---------------------------------------------------------------------- -compute_centro_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_centro_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_centro_atom.cpp:------------------------------------------------------------------------- */ -compute_centro_atom.cpp:/* ---------------------------------------------------------------------- -compute_centro_atom.cpp:------------------------------------------------------------------------- */ -compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_centro_atom.cpp: if (narg < 4 || narg > 6) error->all(FLERR,"Illegal compute centro/atom command"); -compute_centro_atom.cpp: // default values -compute_centro_atom.cpp: // optional keywords -compute_centro_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute centro/atom command3"); -compute_centro_atom.cpp: else error->all(FLERR,"Illegal compute centro/atom command2"); -compute_centro_atom.cpp: } else error->all(FLERR,"Illegal compute centro/atom command1"); -compute_centro_atom.cpp: error->all(FLERR,"Illegal neighbor value for compute centro/atom command"); -compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_centro_atom.cpp: error->all(FLERR,"Compute centro/atom requires a pair style be defined"); -compute_centro_atom.cpp: if (strcmp(modify->compute[i]->style,"centro/atom") == 0) count++; -compute_centro_atom.cpp: error->warning(FLERR,"More than one compute centro/atom"); -compute_centro_atom.cpp: // need an occasional full neighbor list -compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_centro_atom.cpp: // grow centro array if necessary -compute_centro_atom.cpp: // grow array_atom array if axes_flag set -compute_centro_atom.cpp: memory->create(centro,nmax,"centro/atom:centro"); -compute_centro_atom.cpp: memory->create(centro,nmax,"centro/atom:centro"); -compute_centro_atom.cpp: memory->create(array_atom,nmax,size_peratom_cols,"centro/atom:array_atom"); -compute_centro_atom.cpp: // invoke full neighbor list (will copy or build if necessary) -compute_centro_atom.cpp: // npairs = number of unique pairs -compute_centro_atom.cpp: int nhalf = nnn/2; -compute_centro_atom.cpp: int npairs = nnn * (nnn-1) / 2; -compute_centro_atom.cpp: // compute centro-symmetry parameter for each atom in group -compute_centro_atom.cpp: // use full neighbor list -compute_centro_atom.cpp: // insure distsq and nearest arrays are long enough -compute_centro_atom.cpp: memory->create(distsq,maxneigh,"centro/atom:distsq"); -compute_centro_atom.cpp: memory->create(nearest,maxneigh,"centro/atom:nearest"); -compute_centro_atom.cpp: // loop over list of all neighbors within force cutoff -compute_centro_atom.cpp: // distsq[] = distance sq to each -compute_centro_atom.cpp: // nearest[] = atom indices of neighbors -compute_centro_atom.cpp: // check whether to include local crystal symmetry axes -compute_centro_atom.cpp: // if not nnn neighbors, centro = 0.0 -compute_centro_atom.cpp: // store nnn nearest neighs in 1st nnn locations of distsq and nearest -compute_centro_atom.cpp: // R = Ri + Rj for each of npairs i,j pairs among nnn neighbors -compute_centro_atom.cpp: // pairs = squared length of each R -compute_centro_atom.cpp: // calculate local crystal symmetry axes -compute_centro_atom.cpp: // rsq1, rsq2 are two smallest values of R^2 -compute_centro_atom.cpp: // R1, R2 are corresponding vectors Ri - Rj -compute_centro_atom.cpp: // R3 is normal to R1, R2 -compute_centro_atom.cpp: // store nnn nearest neighs in 1st nnn locations of distsq and nearest -compute_centro_atom.cpp: // store nhalf smallest pair distances in 1st nhalf locations of pairs -compute_centro_atom.cpp: // centrosymmetry = sum of nhalf smallest squared values -compute_centro_atom.cpp:/* ---------------------------------------------------------------------- -compute_centro_atom.cpp:------------------------------------------------------------------------- */ -compute_centro_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_centro_atom.cpp:/* ---------------------------------------------------------------------- -compute_centro_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_chunk_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp:// NOTE: allow for bin center to be variables for sphere/cylinder -compute_chunk_atom.cpp:enum{ONCE,NFREQ,EVERY}; // used in several files -compute_chunk_atom.cpp:// allocate space for static class variable -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_chunk_atom.cpp: if (narg < 4) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: // chunk style and its args -compute_chunk_atom.cpp: if (strcmp(arg[3],"bin/1d") == 0) { -compute_chunk_atom.cpp: } else if (strcmp(arg[3],"bin/2d") == 0) { -compute_chunk_atom.cpp: } else if (strcmp(arg[3],"bin/3d") == 0) { -compute_chunk_atom.cpp: } else if (strcmp(arg[3],"bin/sphere") == 0) { -compute_chunk_atom.cpp: if (iarg+6 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: } else if (strcmp(arg[3],"bin/cylinder") == 0) { -compute_chunk_atom.cpp: if (iarg+5 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: } else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: // optional args -compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Region ID for compute chunk/atom does not exist"); -compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: if (limit < 0) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: } else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: // set nchunkflag and discard to default values if not explicitly set -compute_chunk_atom.cpp: // for binning style, also check in init() if simulation box is static, -compute_chunk_atom.cpp: // which sets nchunkflag = ONCE -compute_chunk_atom.cpp: // error checks -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom molecule for non-molecular system"); -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom without bins " -compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom sphere z origin must be 0.0 for 2d"); -compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom cylinder axis must be z for 2d"); -compute_chunk_atom.cpp: error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Compute ID for compute chunk /atom does not exist"); -compute_chunk_atom.cpp: "Compute chunk/atom compute does not calculate " -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom compute does not " -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom compute does not " -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom compute array is " -compute_chunk_atom.cpp: error->all(FLERR,"Fix ID for compute chunk/atom does not exist"); -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom fix does not calculate " -compute_chunk_atom.cpp: "Compute chunk/atom fix does not calculate a per-atom vector"); -compute_chunk_atom.cpp: "Compute chunk/atom fix does not calculate a per-atom array"); -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom fix array is accessed out-of-range"); -compute_chunk_atom.cpp: error->all(FLERR,"Variable name for compute chunk/atom does not exist"); -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom variable is not " -compute_chunk_atom.cpp: // setup scaling -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom for triclinic boxes " -compute_chunk_atom.cpp: // apply scaling factors and cylinder dims orthogonal to axis -compute_chunk_atom.cpp: invdelta[idim] = 1.0/delta[idim]; -compute_chunk_atom.cpp: sradmin_user *= xscale; // radii are scaled by xscale -compute_chunk_atom.cpp: cradmin_user *= yscale; // radii are scaled by first non-axis dim -compute_chunk_atom.cpp: // initialize chunk vector and per-chunk info -compute_chunk_atom.cpp: // computeflag = 1 if this compute might invoke another compute -compute_chunk_atom.cpp: // during assign_chunk_ids() -compute_chunk_atom.cpp: // other initializations -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // check nfix in case all fixes have already been deleted -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // set and check validity of region -compute_chunk_atom.cpp: error->all(FLERR,"Region ID for compute chunk/atom does not exist"); -compute_chunk_atom.cpp: // set compute,fix,variable -compute_chunk_atom.cpp: error->all(FLERR,"Compute ID for compute chunk/atom does not exist"); -compute_chunk_atom.cpp: error->all(FLERR,"Fix ID for compute chunk/atom does not exist"); -compute_chunk_atom.cpp: error->all(FLERR,"Variable name for compute chunk/atom does not exist"); -compute_chunk_atom.cpp: // for style MOLECULE, check that no mol IDs exceed MAXSMALLINT -compute_chunk_atom.cpp: // don't worry about group or optional region -compute_chunk_atom.cpp: error->all(FLERR,"Molecule IDs too large for compute chunk/atom"); -compute_chunk_atom.cpp: // for binning, if nchunkflag not already set, set it to ONCE or EVERY -compute_chunk_atom.cpp: // depends on whether simulation box size is static or dynamic -compute_chunk_atom.cpp: // reset invoked_setup if this is not first run and box just became static -compute_chunk_atom.cpp: // require nchunkflag = ONCE if idsflag = ONCE -compute_chunk_atom.cpp: // b/c nchunk cannot change if chunk IDs are frozen -compute_chunk_atom.cpp: // can't check until now since nchunkflag may have been adjusted in init() -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom ids once but nchunk is not once"); -compute_chunk_atom.cpp: // create/destroy fix STORE for persistent chunk IDs as needed -compute_chunk_atom.cpp: // need to do this if idsflag = ONCE or locks will be used by other commands -compute_chunk_atom.cpp: // need to wait until init() so that fix command(s) are in place -compute_chunk_atom.cpp: // they increment lockcount if they lock this compute -compute_chunk_atom.cpp: // fixstore ID = compute-ID + COMPUTE_STORE, fix group = compute group -compute_chunk_atom.cpp: // fixstore initializes all values to 0.0 -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp: invoke setup_chunks and/or compute_ichunk if only done ONCE -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // grow floating point chunk vector if necessary -compute_chunk_atom.cpp: memory->create(chunk,nmax,"chunk/atom:chunk"); -compute_chunk_atom.cpp: // copy integer indices into floating-point chunk vector -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: "same compute chunk/atom command in incompatible ways"); -compute_chunk_atom.cpp: // set lock to last calling Fix, since it will be last to unlock() -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // skip if already done on this step -compute_chunk_atom.cpp: // if old IDs persist via storage in fixstore, then just retrieve them -compute_chunk_atom.cpp: // yes if idsflag = ONCE, and already done once -compute_chunk_atom.cpp: // or if idsflag = NFREQ and lock is in place and are on later timestep -compute_chunk_atom.cpp: // else proceed to recalculate per-atom chunk assignments -compute_chunk_atom.cpp: // assign chunk IDs to atoms -compute_chunk_atom.cpp: // will exclude atoms not in group or in optional region -compute_chunk_atom.cpp: // already invoked if this is same timestep as last setup_chunks() -compute_chunk_atom.cpp: // compress chunk IDs via hash of the original uncompressed IDs -compute_chunk_atom.cpp: // also apply discard rule except for binning styles which already did -compute_chunk_atom.cpp: // else if no compression apply discard rule by itself -compute_chunk_atom.cpp: // set ichunk = 0 for excluded atoms -compute_chunk_atom.cpp: // this should set any ichunk values which have not yet been set -compute_chunk_atom.cpp: // if newly calculated IDs need to persist, store them in fixstore -compute_chunk_atom.cpp: // yes if idsflag = ONCE or idsflag = NFREQ and lock is in place -compute_chunk_atom.cpp: // one-time check if which = MOLECULE and -compute_chunk_atom.cpp: // any chunks do not contain all atoms in the molecule -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // check if setup needs to be done -compute_chunk_atom.cpp: // no if lock is in place -compute_chunk_atom.cpp: // no if nchunkflag = ONCE, and already done once -compute_chunk_atom.cpp: // otherwise yes -compute_chunk_atom.cpp: // even if no, check if need to re-compute bin volumes -compute_chunk_atom.cpp: // so that fix ave/chunk can do proper density normalization -compute_chunk_atom.cpp: // assign chunk IDs to atoms -compute_chunk_atom.cpp: // will exclude atoms not in group or in optional region -compute_chunk_atom.cpp: // for binning styles, need to setup bins and their volume first -compute_chunk_atom.cpp: // else chunk_volume_scalar = entire box volume -compute_chunk_atom.cpp: // IDs are needed to scan for max ID and for compress() -compute_chunk_atom.cpp: // set nchunk for chunk styles other than binning -compute_chunk_atom.cpp: // for styles other than TYPE, scan for max ID -compute_chunk_atom.cpp: // apply limit setting as well as compression of chunks with no atoms -compute_chunk_atom.cpp: // if limit is set, there are 3 cases: -compute_chunk_atom.cpp: // no compression, limit specified before compression, or vice versa -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp: also set exclude vector to 0/1 for all atoms -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // grow integer chunk index vector if necessary -compute_chunk_atom.cpp: memory->create(ichunk,nmaxint,"chunk/atom:ichunk"); -compute_chunk_atom.cpp: memory->create(exclude,nmaxint,"chunk/atom:exclude"); -compute_chunk_atom.cpp: // update region if necessary -compute_chunk_atom.cpp: // exclude = 1 if atom is not assigned to a chunk -compute_chunk_atom.cpp: // exclude atoms not in group or not in optional region -compute_chunk_atom.cpp: // set ichunk to style value for included atoms -compute_chunk_atom.cpp: // binning styles apply discard rule, others do not yet -compute_chunk_atom.cpp: error->all(FLERR,"Fix used in compute chunk/atom not " -compute_chunk_atom.cpp: memory->create(varatom,maxvar,"chunk/atom:varatom"); -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // put my IDs into hash -compute_chunk_atom.cpp: // n = # of my populated IDs -compute_chunk_atom.cpp: // nall = n summed across all procs -compute_chunk_atom.cpp: // create my list of populated IDs -compute_chunk_atom.cpp: memory->create(list,n,"chunk/atom:list"); -compute_chunk_atom.cpp: // if nall < 1M, just allgather all ID lists on every proc -compute_chunk_atom.cpp: // else perform ring comm -compute_chunk_atom.cpp: // add IDs from all procs to my hash -compute_chunk_atom.cpp: // setup for allgatherv -compute_chunk_atom.cpp: memory->create(recvcounts,nprocs,"chunk/atom:recvcounts"); -compute_chunk_atom.cpp: memory->create(displs,nprocs,"chunk/atom:displs"); -compute_chunk_atom.cpp: memory->create(listall,nall,"chunk/atom:listall"); -compute_chunk_atom.cpp: // allgatherv acquires list of populated IDs from all procs -compute_chunk_atom.cpp: // add all unique IDs in listall to my hash -compute_chunk_atom.cpp: // clean up -compute_chunk_atom.cpp: // nchunk = length of hash containing populated IDs from all procs -compute_chunk_atom.cpp: // reset hash value of each original chunk ID to ordered index -compute_chunk_atom.cpp: // ordered index = new compressed chunk ID (1 to Nchunk) -compute_chunk_atom.cpp: // leverages fact that map stores keys in ascending order -compute_chunk_atom.cpp: // also allocate and set chunkID = list of original chunk IDs -compute_chunk_atom.cpp: // used by fix ave/chunk and compute property/chunk -compute_chunk_atom.cpp: memory->create(chunkID,nchunk,"chunk/atom:chunkID"); -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // lo = bin boundary immediately below boxlo or minvalue -compute_chunk_atom.cpp: // hi = bin boundary immediately above boxhi or maxvalue -compute_chunk_atom.cpp: // allocate and initialize arrays based on new bin count -compute_chunk_atom.cpp: if (lo > hi) error->all(FLERR,"Invalid bin bounds in compute chunk/atom"); -compute_chunk_atom.cpp: // allocate and set bin coordinates -compute_chunk_atom.cpp: memory->create(coord,nbins,ndim,"chunk/atom:coord"); -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // convert sorigin_user to sorigin -compute_chunk_atom.cpp: // sorigin,srad are always in box units, for orthogonal or triclinic domains -compute_chunk_atom.cpp: // lamda2x works for either orthogonal or triclinic -compute_chunk_atom.cpp: // if pbcflag set, sradmax must be < 1/2 box in any periodic dim -compute_chunk_atom.cpp: // treat orthogonal and triclinic the same -compute_chunk_atom.cpp: // check every time bins are created -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom bin/sphere radius " -compute_chunk_atom.cpp: sinvrad = nsbin / (sradmax-sradmin); -compute_chunk_atom.cpp: // allocate and set bin coordinates -compute_chunk_atom.cpp: // coord = midpt of radii for a spherical shell -compute_chunk_atom.cpp: memory->create(coord,nsbin,1,"chunk/atom:coord"); -compute_chunk_atom.cpp: rlo = sradmin + i * (sradmax-sradmin) / nsbin; -compute_chunk_atom.cpp: rhi = sradmin + (i+1) * (sradmax-sradmin) / nsbin; -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // setup bins along cylinder axis -compute_chunk_atom.cpp: // ncplane = # of axis bins -compute_chunk_atom.cpp: // convert corigin_user to corigin -compute_chunk_atom.cpp: // corigin is always in box units, for orthogonal or triclinic domains -compute_chunk_atom.cpp: // lamda2x works for either orthogonal or triclinic -compute_chunk_atom.cpp: // if pbcflag set, sradmax must be < 1/2 box in any periodic non-axis dim -compute_chunk_atom.cpp: // treat orthogonal and triclinic the same -compute_chunk_atom.cpp: // check every time bins are created -compute_chunk_atom.cpp: error->all(FLERR,"Compute chunk/atom bin/cylinder radius " -compute_chunk_atom.cpp: cinvrad = ncbin / (cradmax-cradmin); -compute_chunk_atom.cpp: // allocate and set radial bin coordinates -compute_chunk_atom.cpp: // radial coord = midpt of radii for a cylindrical shell -compute_chunk_atom.cpp: // axiscoord = saved bin coords along cylndrical axis -compute_chunk_atom.cpp: // radcoord = saved bin coords in radial direction -compute_chunk_atom.cpp: memory->create(coord,ncbin,1,"chunk/atom:coord"); -compute_chunk_atom.cpp: rlo = cradmin + i * (cradmax-cradmin) / ncbin; -compute_chunk_atom.cpp: rhi = cradmin + (i+1) * (cradmax-cradmin) / ncbin; -compute_chunk_atom.cpp: // create array of combined coords for all bins -compute_chunk_atom.cpp: memory->create(coord,ncbin*ncplane,2,"chunk/atom:coord"); -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: chunk_volume_scalar *= delta[m]/prd[dim[m]]; -compute_chunk_atom.cpp: memory->create(chunk_volume_vec,nchunk,"chunk/atom:chunk_volume_vec"); -compute_chunk_atom.cpp: rlo = sradmin + i * (sradmax-sradmin) / nsbin; -compute_chunk_atom.cpp: rhi = sradmin + (i+1) * (sradmax-sradmin) / nsbin; -compute_chunk_atom.cpp: vollo = 4.0/3.0 * MY_PI * rlo*rlo*rlo; -compute_chunk_atom.cpp: volhi = 4.0/3.0 * MY_PI * rhi*rhi*rhi; -compute_chunk_atom.cpp: memory->create(chunk_volume_vec,nchunk,"chunk/atom:chunk_volume_vec"); -compute_chunk_atom.cpp: // slabthick = delta of bins along cylinder axis -compute_chunk_atom.cpp: double slabthick = domain->prd[dim[0]] * delta[0]/prd[dim[0]]; -compute_chunk_atom.cpp: // area lo/hi of concentric circles in radial direction -compute_chunk_atom.cpp: iradbin = i / ncplane; -compute_chunk_atom.cpp: rlo = cradmin + iradbin * (cradmax-cradmin) / ncbin; -compute_chunk_atom.cpp: rhi = cradmin + (iradbin+1) * (cradmax-cradmin) / ncbin; -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // remap each atom's relevant coord back into box via PBC if necessary -compute_chunk_atom.cpp: // if scaleflag = REDUCED, box coords -> lamda coords -compute_chunk_atom.cpp: // apply discard rule -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // remap each atom's relevant coord back into box via PBC if necessary -compute_chunk_atom.cpp: // if scaleflag = REDUCED, box coords -> lamda coords -compute_chunk_atom.cpp: // apply discard rule -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // remap each atom's relevant coord back into box via PBC if necessary -compute_chunk_atom.cpp: // if scaleflag = REDUCED, box coords -> lamda coords -compute_chunk_atom.cpp: // apply discard rule -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // remap each atom's relevant coords back into box via PBC if necessary -compute_chunk_atom.cpp: // apply discard rule based on rmin and rmax -compute_chunk_atom.cpp: // if requested, apply PBC to distance from sphere center -compute_chunk_atom.cpp: // treat orthogonal and triclinic the same -compute_chunk_atom.cpp: // with dx,dy,dz = lengths independent of each other -compute_chunk_atom.cpp: // so do not use domain->minimum_image() which couples for triclinic -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: // first use atom2bin1d() to bin all atoms along cylinder axis -compute_chunk_atom.cpp: // now bin in radial direction -compute_chunk_atom.cpp: // kbin = bin along cylinder axis -compute_chunk_atom.cpp: // rbin = bin in radial direction -compute_chunk_atom.cpp: // remap each atom's relevant coords back into box via PBC if necessary -compute_chunk_atom.cpp: // apply discard rule based on rmin and rmax -compute_chunk_atom.cpp: // if requested, apply PBC to distance from cylinder axis -compute_chunk_atom.cpp: // treat orthogonal and triclinic the same -compute_chunk_atom.cpp: // with d1,d2 = lengths independent of each other -compute_chunk_atom.cpp: // combine axis and radial bin indices to set ichunk -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: if (narg < iarg+3) error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: else error->all(FLERR,"Illegal compute chunk/atom command"); -compute_chunk_atom.cpp: error->all(FLERR,"Cannot use compute chunk/atom bin z for 2d model"); -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp:/* ---------------------------------------------------------------------- -compute_chunk_atom.cpp:------------------------------------------------------------------------- */ -compute_chunk_atom.cpp: double bytes = 2*MAX(nmaxint,0) * sizeof(int); // ichunk,exclude -compute_chunk_atom.cpp: bytes += nmax * sizeof(double); // chunk -compute_chunk_atom.cpp: bytes += ncoord*nchunk * sizeof(double); // coord -compute_chunk_atom.cpp: if (compress) bytes += nchunk * sizeof(int); // chunkID -compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- -compute_cluster_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_cluster_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_cluster_atom.cpp:------------------------------------------------------------------------- */ -compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cluster_atom.cpp: if (narg != 4) error->all(FLERR,"Illegal compute cluster/atom command"); -compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cluster_atom.cpp: error->all(FLERR,"Cannot use compute cluster/atom unless atoms have IDs"); -compute_cluster_atom.cpp: error->all(FLERR,"Compute cluster/atom requires a pair style be defined"); -compute_cluster_atom.cpp: "Compute cluster/atom cutoff is longer than pairwise cutoff"); -compute_cluster_atom.cpp: // need an occasional full neighbor list -compute_cluster_atom.cpp: // full required so that pair of atoms on 2 procs both set their clusterID -compute_cluster_atom.cpp: if (strcmp(modify->compute[i]->style,"cluster/atom") == 0) count++; -compute_cluster_atom.cpp: error->warning(FLERR,"More than one compute cluster/atom"); -compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cluster_atom.cpp: // grow clusterID array if necessary -compute_cluster_atom.cpp: memory->create(clusterID,nmax,"cluster/atom:clusterID"); -compute_cluster_atom.cpp: // invoke full neighbor list (will copy or build if necessary) -compute_cluster_atom.cpp: // if group is dynamic, insure ghost atom masks are current -compute_cluster_atom.cpp: // every atom starts in its own cluster, with clusterID = atomID -compute_cluster_atom.cpp: // loop until no more changes on any proc: -compute_cluster_atom.cpp: // acquire clusterIDs of ghost atoms -compute_cluster_atom.cpp: // loop over my atoms, checking distance to neighbors -compute_cluster_atom.cpp: // if both atoms are in cluster, assign lowest clusterID to both -compute_cluster_atom.cpp: // iterate until no changes in my atoms -compute_cluster_atom.cpp: // then check if any proc made changes -compute_cluster_atom.cpp: // stop if all procs are done -compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cluster_atom.cpp:/* ---------------------------------------------------------------------- -compute_cluster_atom.cpp:------------------------------------------------------------------------- */ -compute_cna_atom.cpp:/* ---------------------------------------------------------------------- -compute_cna_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_cna_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_cna_atom.cpp:------------------------------------------------------------------------- */ -compute_cna_atom.cpp:/* ---------------------------------------------------------------------- -compute_cna_atom.cpp:------------------------------------------------------------------------- */ -compute_cna_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cna_atom.cpp: if (narg != 4) error->all(FLERR,"Illegal compute cna/atom command"); -compute_cna_atom.cpp: if (cutoff < 0.0) error->all(FLERR,"Illegal compute cna/atom command"); -compute_cna_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cna_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cna_atom.cpp: error->all(FLERR,"Compute cna/atom requires a pair style be defined"); -compute_cna_atom.cpp: error->all(FLERR,"Compute cna/atom cutoff is longer than pairwise cutoff"); -compute_cna_atom.cpp: // cannot use neighbor->cutneighmax b/c neighbor has not yet been init -compute_cna_atom.cpp: error->warning(FLERR,"Compute cna/atom cutoff may be too large to find " -compute_cna_atom.cpp: if (strcmp(modify->compute[i]->style,"cna/atom") == 0) count++; -compute_cna_atom.cpp: error->warning(FLERR,"More than one compute cna/atom defined"); -compute_cna_atom.cpp: // need an occasional full neighbor list -compute_cna_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cna_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_cna_atom.cpp: // grow arrays if necessary -compute_cna_atom.cpp: // invoke full neighbor list (will copy or build if necessary) -compute_cna_atom.cpp: // find the neigbours of each atom within cutoff using full neighbor list -compute_cna_atom.cpp: // nearest[] = atom indices of nearest neighbors, up to MAXNEAR -compute_cna_atom.cpp: // do this for all atoms, not just compute group -compute_cna_atom.cpp: // since CNA calculation requires neighbors of neighbors -compute_cna_atom.cpp: // warning message -compute_cna_atom.cpp: // compute CNA for each atom in group -compute_cna_atom.cpp: // only performed if # of nearest neighbors = 12 or 14 (fcc,hcp) -compute_cna_atom.cpp: // loop over near neighbors of I to build cna data structure -compute_cna_atom.cpp: // cna[k][NCOMMON] = # of common neighbors of I with each of its neighs -compute_cna_atom.cpp: // cna[k][NBONDS] = # of bonds between those common neighbors -compute_cna_atom.cpp: // cna[k][MAXBOND] = max # of bonds of any common neighbor -compute_cna_atom.cpp: // cna[k][MINBOND] = min # of bonds of any common neighbor -compute_cna_atom.cpp: // common = list of neighbors common to atom I and atom J -compute_cna_atom.cpp: // if J is an owned atom, use its near neighbor list to find them -compute_cna_atom.cpp: // if J is a ghost atom, use full neighbor list of I to find them -compute_cna_atom.cpp: // in latter case, must exclude J from I's neighbor list -compute_cna_atom.cpp: // calculate total # of bonds between common neighbor atoms -compute_cna_atom.cpp: // also max and min # of common atoms any common atom is bonded to -compute_cna_atom.cpp: // bond = pair of atoms within cutoff -compute_cna_atom.cpp: // detect CNA pattern of the atom -compute_cna_atom.cpp: // warning message -compute_cna_atom.cpp:/* ---------------------------------------------------------------------- -compute_cna_atom.cpp:------------------------------------------------------------------------- */ -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- -compute_com_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_com_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_com_chunk.cpp:------------------------------------------------------------------------- */ -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_com_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute com/chunk command"); -compute_com_chunk.cpp: // ID of compute chunk/atom -compute_com_chunk.cpp: // chunk-based data -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_com_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for compute com/chunk"); -compute_com_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_com_chunk.cpp: error->all(FLERR,"Compute com/chunk does not use chunk/atom compute"); -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_com_chunk.cpp: // one-time calculation of per-chunk mass -compute_com_chunk.cpp: // done in setup, so that ComputeChunkAtom::setup() is already called -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_com_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_com_chunk.cpp: // extract ichunk index vector from compute -compute_com_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_com_chunk.cpp: // zero local per-chunk values -compute_com_chunk.cpp: // compute COM for each chunk -compute_com_chunk.cpp: comall[i][0] /= masstotal[i]; -compute_com_chunk.cpp: comall[i][1] /= masstotal[i]; -compute_com_chunk.cpp: comall[i][2] /= masstotal[i]; -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- -compute_com_chunk.cpp: lock methods: called by fix ave/time -compute_com_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_com_chunk.cpp: by passing lock info along to compute chunk/atom -compute_com_chunk.cpp:------------------------------------------------------------------------- */ -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- -compute_com_chunk.cpp:------------------------------------------------------------------------- */ -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- -compute_com_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_com_chunk.cpp:------------------------------------------------------------------------- */ -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- -compute_com_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_com_chunk.cpp:------------------------------------------------------------------------- */ -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- -compute_com_chunk.cpp:------------------------------------------------------------------------- */ -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- -compute_com_chunk.cpp:------------------------------------------------------------------------- */ -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- -compute_com_chunk.cpp:------------------------------------------------------------------------- */ -compute_com_chunk.cpp: memory->create(massproc,maxchunk,"com/chunk:massproc"); -compute_com_chunk.cpp: memory->create(masstotal,maxchunk,"com/chunk:masstotal"); -compute_com_chunk.cpp: memory->create(com,maxchunk,3,"com/chunk:com"); -compute_com_chunk.cpp: memory->create(comall,maxchunk,3,"com/chunk:comall"); -compute_com_chunk.cpp:/* ---------------------------------------------------------------------- -compute_com_chunk.cpp:------------------------------------------------------------------------- */ -compute_com.cpp:/* ---------------------------------------------------------------------- -compute_com.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_com.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_com.cpp:------------------------------------------------------------------------- */ -compute_com.cpp:/* ---------------------------------------------------------------------- */ -compute_com.cpp:/* ---------------------------------------------------------------------- */ -compute_com.cpp:/* ---------------------------------------------------------------------- */ -compute_com.cpp:/* ---------------------------------------------------------------------- */ -compute_contact_atom.cpp:/* ---------------------------------------------------------------------- -compute_contact_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_contact_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_contact_atom.cpp:------------------------------------------------------------------------- */ -compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_contact_atom.cpp: if (narg != 3) error->all(FLERR,"Illegal compute contact/atom command"); -compute_contact_atom.cpp: // error checks -compute_contact_atom.cpp: error->all(FLERR,"Compute contact/atom requires atom style sphere"); -compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_contact_atom.cpp: error->all(FLERR,"Compute contact/atom requires a pair style be defined"); -compute_contact_atom.cpp: if (strcmp(modify->compute[i]->style,"contact/atom") == 0) count++; -compute_contact_atom.cpp: error->warning(FLERR,"More than one compute contact/atom"); -compute_contact_atom.cpp: // need an occasional neighbor list -compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_contact_atom.cpp: // grow contact array if necessary -compute_contact_atom.cpp: memory->create(contact,nmax,"contact/atom:contact"); -compute_contact_atom.cpp: // invoke neighbor list (will copy or build if necessary) -compute_contact_atom.cpp: // compute number of contacts for each atom in group -compute_contact_atom.cpp: // contact if distance <= sum of radii -compute_contact_atom.cpp: // tally for both I and J -compute_contact_atom.cpp: // communicate ghost atom counts between neighbor procs if necessary -compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_contact_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_contact_atom.cpp:/* ---------------------------------------------------------------------- -compute_contact_atom.cpp:------------------------------------------------------------------------- */ -compute_coord_atom.cpp:/* ---------------------------------------------------------------------- -compute_coord_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_coord_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_coord_atom.cpp:------------------------------------------------------------------------- */ -compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_coord_atom.cpp: if (narg < 5) error->all(FLERR,"Illegal compute coord/atom command"); -compute_coord_atom.cpp: error->all(FLERR,"Illegal compute coord/atom command"); -compute_coord_atom.cpp: if (narg != 6) error->all(FLERR,"Illegal compute coord/atom command"); -compute_coord_atom.cpp: error->all(FLERR,"Could not find compute coord/atom compute ID"); -compute_coord_atom.cpp: if (strcmp(modify->compute[iorientorder]->style,"orientorder/atom") != 0) -compute_coord_atom.cpp: error->all(FLERR,"Compute coord/atom compute ID is not orientorder/atom"); -compute_coord_atom.cpp: error->all(FLERR,"Compute coord/atom threshold not between -1 and 1"); -compute_coord_atom.cpp: } else error->all(FLERR,"Invalid cstyle in compute coord/atom"); -compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_coord_atom.cpp: // communicate real and imaginary 2*l+1 components of the normalized vector -compute_coord_atom.cpp: error->all(FLERR,"Compute coord/atom requires components " -compute_coord_atom.cpp: "option in compute orientorder/atom"); -compute_coord_atom.cpp: error->all(FLERR,"Compute coord/atom requires a pair style be defined"); -compute_coord_atom.cpp: "Compute coord/atom cutoff is longer than pairwise cutoff"); -compute_coord_atom.cpp: // need an occasional full neighbor list -compute_coord_atom.cpp: if (strcmp(modify->compute[i]->style,"coord/atom") == 0) count++; -compute_coord_atom.cpp: error->warning(FLERR,"More than one compute coord/atom"); -compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_coord_atom.cpp: // grow coordination array if necessary -compute_coord_atom.cpp: memory->create(cvec,nmax,"coord/atom:cvec"); -compute_coord_atom.cpp: memory->create(carray,nmax,ncol,"coord/atom:carray"); -compute_coord_atom.cpp: // invoke full neighbor list (will copy or build if necessary) -compute_coord_atom.cpp: // compute coordination number(s) for each atom in group -compute_coord_atom.cpp: // use full neighbor list to count atoms less than cutoff -compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_coord_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_coord_atom.cpp:/* ---------------------------------------------------------------------- -compute_coord_atom.cpp:------------------------------------------------------------------------- */ -compute.cpp:/* ---------------------------------------------------------------------- -compute.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute.cpp:------------------------------------------------------------------------- */ -compute.cpp:// allocate space for static class instance variable and initialize it -compute.cpp:/* ---------------------------------------------------------------------- */ -compute.cpp: // compute ID, group, and style -compute.cpp: // ID must be all alphanumeric chars or underscores -compute.cpp: // set child class defaults -compute.cpp: // set modify defaults -compute.cpp: // setup list of timesteps -compute.cpp: // data masks -compute.cpp:/* ---------------------------------------------------------------------- */ -compute.cpp:/* ---------------------------------------------------------------------- */ -compute.cpp: // added more specific keywords in Mar17 -compute.cpp: // at some point, remove generic extra and dynamic -compute.cpp: strcmp(arg[iarg],"extra/dof") == 0) { -compute.cpp: strcmp(arg[iarg],"dynamic/dof") == 0) { -compute.cpp:/* ---------------------------------------------------------------------- -compute.cpp:------------------------------------------------------------------------- */ -compute.cpp:/* ---------------------------------------------------------------------- -compute.cpp:------------------------------------------------------------------------- */ -compute.cpp:/* ---------------------------------------------------------------------- */ -compute.cpp:/* ---------------------------------------------------------------------- -compute.cpp:------------------------------------------------------------------------- */ -compute.cpp: // i = location in list to insert ntimestep -compute.cpp: // extend list as needed -compute.cpp: // move remainder of list upward and insert ntimestep -compute.cpp:/* ---------------------------------------------------------------------- -compute.cpp: return 1/0 if ntimestep is or is not in list of calling timesteps -compute.cpp:------------------------------------------------------------------------- */ -compute.cpp:/* ---------------------------------------------------------------------- -compute.cpp:------------------------------------------------------------------------- */ -compute_dihedral.cpp:/* ---------------------------------------------------------------------- -compute_dihedral.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_dihedral.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_dihedral.cpp:------------------------------------------------------------------------- */ -compute_dihedral.cpp:/* ---------------------------------------------------------------------- */ -compute_dihedral.cpp: // check if dihedral style hybrid exists -compute_dihedral.cpp:/* ---------------------------------------------------------------------- */ -compute_dihedral.cpp:/* ---------------------------------------------------------------------- */ -compute_dihedral.cpp: // recheck dihedral style in case it has been changed -compute_dihedral.cpp:/* ---------------------------------------------------------------------- */ -compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- -compute_dihedral_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_dihedral_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_dihedral_local.cpp:------------------------------------------------------------------------- */ -compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- */ -compute_dihedral_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute dihedral/local command"); -compute_dihedral_local.cpp: "Compute dihedral/local used when dihedrals are not allowed"); -compute_dihedral_local.cpp: else error->all(FLERR,"Invalid keyword in compute dihedral/local command"); -compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- */ -compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- */ -compute_dihedral_local.cpp: error->all(FLERR,"No dihedral style is defined for compute dihedral/local"); -compute_dihedral_local.cpp: // do initial memory allocation so that memory_usage() is correct -compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- */ -compute_dihedral_local.cpp: // count local entries and compute dihedral info -compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- -compute_dihedral_local.cpp:------------------------------------------------------------------------- */ -compute_dihedral_local.cpp: // phi calculation from dihedral style harmonic -compute_dihedral_local.cpp: if (rasq > 0) ra2inv = 1.0/rasq; -compute_dihedral_local.cpp: if (rbsq > 0) rb2inv = 1.0/rbsq; -compute_dihedral_local.cpp: pbuf[n] = 180.0*atan2(s,c)/MY_PI; -compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- */ -compute_dihedral_local.cpp: // grow vector_local or array_local -compute_dihedral_local.cpp: memory->create(vlocal,nmax,"dihedral/local:vector_local"); -compute_dihedral_local.cpp: memory->create(alocal,nmax,nvalues,"dihedral/local:array_local"); -compute_dihedral_local.cpp:/* ---------------------------------------------------------------------- -compute_dihedral_local.cpp:------------------------------------------------------------------------- */ -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- -compute_dipole_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_dipole_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_dipole_chunk.cpp: error->all(FLERR,"Illegal compute dipole/chunk command"); -compute_dipole_chunk.cpp: // ID of compute chunk/atom -compute_dipole_chunk.cpp: else error->all(FLERR,"Illegal compute dipole/chunk command"); -compute_dipole_chunk.cpp: // chunk-based data -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_dipole_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " -compute_dipole_chunk.cpp: "compute dipole/chunk"); -compute_dipole_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_dipole_chunk.cpp: error->all(FLERR,"Compute dipole/chunk does not use chunk/atom compute"); -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_dipole_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_dipole_chunk.cpp: // extract ichunk index vector from compute -compute_dipole_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_dipole_chunk.cpp: // zero local per-chunk values -compute_dipole_chunk.cpp: // compute COM for each chunk -compute_dipole_chunk.cpp: } else massone = 1.0; // usecenter == GEOMCENTER -compute_dipole_chunk.cpp: comall[i][0] /= masstotal[i]; -compute_dipole_chunk.cpp: comall[i][1] /= masstotal[i]; -compute_dipole_chunk.cpp: comall[i][2] /= masstotal[i]; -compute_dipole_chunk.cpp: // compute dipole for each chunk -compute_dipole_chunk.cpp: // correct for position dependence with charged chunks -compute_dipole_chunk.cpp: // compute total dipole moment -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- -compute_dipole_chunk.cpp: lock methods: called by fix ave/time -compute_dipole_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_dipole_chunk.cpp: by passing lock info along to compute chunk/atom -compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- -compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- -compute_dipole_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- -compute_dipole_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- -compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- -compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- -compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ -compute_dipole_chunk.cpp: memory->create(massproc,maxchunk,"dipole/chunk:massproc"); -compute_dipole_chunk.cpp: memory->create(masstotal,maxchunk,"dipole/chunk:masstotal"); -compute_dipole_chunk.cpp: memory->create(chrgproc,maxchunk,"dipole/chunk:chrgproc"); -compute_dipole_chunk.cpp: memory->create(chrgtotal,maxchunk,"dipole/chunk:chrgtotal"); -compute_dipole_chunk.cpp: memory->create(com,maxchunk,3,"dipole/chunk:com"); -compute_dipole_chunk.cpp: memory->create(comall,maxchunk,3,"dipole/chunk:comall"); -compute_dipole_chunk.cpp: memory->create(dipole,maxchunk,4,"dipole/chunk:dipole"); -compute_dipole_chunk.cpp: memory->create(dipoleall,maxchunk,4,"dipole/chunk:dipoleall"); -compute_dipole_chunk.cpp:/* ---------------------------------------------------------------------- -compute_dipole_chunk.cpp:------------------------------------------------------------------------- */ -compute_displace_atom.cpp:/* ---------------------------------------------------------------------- -compute_displace_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_displace_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_displace_atom.cpp:------------------------------------------------------------------------- */ -compute_displace_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_displace_atom.cpp: if (narg != 3) error->all(FLERR,"Illegal compute displace/atom command"); -compute_displace_atom.cpp: // create a new fix STORE style -compute_displace_atom.cpp: // id = compute-ID + COMPUTE_STORE, fix group = compute group -compute_displace_atom.cpp: // calculate xu,yu,zu for fix store array -compute_displace_atom.cpp: // skip if reset from restart file -compute_displace_atom.cpp: // per-atom displacement array -compute_displace_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_displace_atom.cpp: // check nfix in case all fixes have already been deleted -compute_displace_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_displace_atom.cpp: // set fix which stores original atom coords -compute_displace_atom.cpp: if (ifix < 0) error->all(FLERR,"Could not find compute displace/atom fix ID"); -compute_displace_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_displace_atom.cpp: // grow local displacement array if necessary -compute_displace_atom.cpp: memory->create(displace,nmax,4,"displace/atom:displace"); -compute_displace_atom.cpp: // dx,dy,dz = displacement of atom from original position -compute_displace_atom.cpp: // original unwrapped position is stored by fix -compute_displace_atom.cpp: // for triclinic, need to unwrap current atom coord via h matrix -compute_displace_atom.cpp:/* ---------------------------------------------------------------------- -compute_displace_atom.cpp:------------------------------------------------------------------------- */ -compute_displace_atom.cpp:/* ---------------------------------------------------------------------- -compute_displace_atom.cpp:------------------------------------------------------------------------- */ -compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- -compute_erotate_sphere_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_erotate_sphere_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_erotate_sphere_atom.cpp:------------------------------------------------------------------------- */ -compute_erotate_sphere_atom.cpp:#define INERTIA 0.4 // moment of inertia prefactor for sphere -compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_erotate_sphere_atom.cpp: error->all(FLERR,"Illegal compute erotate/sphere//atom command"); -compute_erotate_sphere_atom.cpp: // error check -compute_erotate_sphere_atom.cpp: error->all(FLERR,"Compute erotate/sphere/atom requires atom style sphere"); -compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_erotate_sphere_atom.cpp: if (strcmp(modify->compute[i]->style,"erotate/sphere/atom") == 0) count++; -compute_erotate_sphere_atom.cpp: error->warning(FLERR,"More than one compute erotate/sphere/atom"); -compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_erotate_sphere_atom.cpp: // grow erot array if necessary -compute_erotate_sphere_atom.cpp: memory->create(erot,nmax,"erotate/sphere/atom:erot"); -compute_erotate_sphere_atom.cpp: // compute rotational kinetic energy for each atom in group -compute_erotate_sphere_atom.cpp: // point particles will have erot = 0.0, due to radius = 0.0 -compute_erotate_sphere_atom.cpp:/* ---------------------------------------------------------------------- -compute_erotate_sphere_atom.cpp:------------------------------------------------------------------------- */ -compute_erotate_sphere.cpp:/* ---------------------------------------------------------------------- -compute_erotate_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_erotate_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_erotate_sphere.cpp:------------------------------------------------------------------------- */ -compute_erotate_sphere.cpp:#define INERTIA 0.4 // moment of inertia prefactor for sphere -compute_erotate_sphere.cpp:/* ---------------------------------------------------------------------- */ -compute_erotate_sphere.cpp: if (narg != 3) error->all(FLERR,"Illegal compute erotate/sphere command"); -compute_erotate_sphere.cpp: // error check -compute_erotate_sphere.cpp: error->all(FLERR,"Compute erotate/sphere requires atom style sphere"); -compute_erotate_sphere.cpp:/* ---------------------------------------------------------------------- */ -compute_erotate_sphere.cpp:/* ---------------------------------------------------------------------- */ -compute_erotate_sphere.cpp: // sum rotational energy for each particle -compute_erotate_sphere.cpp: // point particles will not contribute, due to radius = 0.0 -compute_global_atom.cpp:/* ---------------------------------------------------------------------- -compute_global_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_global_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_global_atom.cpp:------------------------------------------------------------------------- */ -compute_global_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_global_atom.cpp: if (narg < 5) error->all(FLERR,"Illegal compute global/atom command"); -compute_global_atom.cpp: // process index arg -compute_global_atom.cpp: error->all(FLERR,"Illegal compute global/atom command"); -compute_global_atom.cpp: } else error->all(FLERR,"Illegal compute global/atom command"); -compute_global_atom.cpp: // expand args if any have wildcard character "*" -compute_global_atom.cpp: // parse values until one isn't recognized -compute_global_atom.cpp: error->all(FLERR,"Illegal compute global/atom command"); -compute_global_atom.cpp: } else error->all(FLERR,"Illegal compute global/atom command"); -compute_global_atom.cpp: // if wildcard expansion occurred, free earg memory from expand_args() -compute_global_atom.cpp: // setup and error check both index arg and values -compute_global_atom.cpp: error->all(FLERR,"Compute ID for compute global/atom does not exist"); -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute does not " -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute does not " -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute does not " -compute_global_atom.cpp: "Compute global/atom compute array is accessed out-of-range"); -compute_global_atom.cpp: error->all(FLERR,"Fix ID for compute global/atom does not exist"); -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix does not " -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix does not " -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix does not " -compute_global_atom.cpp: "Compute global/atom fix array is accessed out-of-range"); -compute_global_atom.cpp: error->all(FLERR,"Variable name for compute global/atom does not exist"); -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom variable is not " -compute_global_atom.cpp: error->all(FLERR,"Compute ID for compute global/atom does not exist"); -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute does not " -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute does not " -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom compute array is " -compute_global_atom.cpp: error->all(FLERR,"Fix ID for compute global/atom does not exist"); -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix does not " -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix does not " -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom fix array is " -compute_global_atom.cpp: error->all(FLERR,"Variable name for compute global/atom " -compute_global_atom.cpp: error->all(FLERR,"Compute global/atom variable is not " -compute_global_atom.cpp: // this compute produces either a peratom vector or array -compute_global_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_global_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_global_atom.cpp: // set indices of all computes,fixes,variables -compute_global_atom.cpp: error->all(FLERR,"Compute ID for compute global/atom does not exist"); -compute_global_atom.cpp: error->all(FLERR,"Fix ID for compute global/atom does not exist"); -compute_global_atom.cpp: error->all(FLERR,"Variable name for compute global/atom does not exist"); -compute_global_atom.cpp: error->all(FLERR,"Compute ID for compute global/atom does not exist"); -compute_global_atom.cpp: error->all(FLERR,"Fix ID for compute global/atom does not exist"); -compute_global_atom.cpp: error->all(FLERR,"Variable name for compute global/atom " -compute_global_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_global_atom.cpp: // grow indices and output vector or array if necessary -compute_global_atom.cpp: memory->create(indices,nmax,"global/atom:indices"); -compute_global_atom.cpp: memory->create(vector_atom,nmax,"global/atom:vector_atom"); -compute_global_atom.cpp: memory->create(array_atom,nmax,nvalues,"global/atom:array_atom"); -compute_global_atom.cpp: // setup current peratom indices -compute_global_atom.cpp: // integer indices are rounded down from double values -compute_global_atom.cpp: // indices are decremented from 1 to N -> 0 to N-1 -compute_global_atom.cpp: error->all(FLERR,"Fix used in compute global/atom not " -compute_global_atom.cpp: memory->create(varatom,nmax,"global/atom:varatom"); -compute_global_atom.cpp: // loop over values to fill output vector or array -compute_global_atom.cpp: // output = vector -compute_global_atom.cpp: error->all(FLERR,"Fix used in compute global/atom not " -compute_global_atom.cpp: memory->create(vecglobal,maxvector,"global/atom:vecglobal"); -compute_global_atom.cpp: // output = array -compute_global_atom.cpp: memory->create(vecglobal,maxvector,"global/atom:vecglobal"); -compute_global_atom.cpp: error->all(FLERR,"Fix used in compute global/atom not " -compute_global_atom.cpp: memory->create(vecglobal,maxvector,"global/atom:vecglobal"); -compute_global_atom.cpp:/* ---------------------------------------------------------------------- -compute_global_atom.cpp:------------------------------------------------------------------------- */ -compute_global_atom.cpp: bytes += nmax * sizeof(int); // indices -compute_global_atom.cpp: if (varatom) bytes += nmax * sizeof(double); // varatom -compute_global_atom.cpp: bytes += maxvector * sizeof(double); // vecglobal -compute_group_group.cpp:/* ---------------------------------------------------------------------- -compute_group_group.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_group_group.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_group_group.cpp:------------------------------------------------------------------------- */ -compute_group_group.cpp:/* ---------------------------------------------------------------------- -compute_group_group.cpp:------------------------------------------------------------------------- */ -compute_group_group.cpp:/* ---------------------------------------------------------------------- */ -compute_group_group.cpp: if (narg < 4) error->all(FLERR,"Illegal compute group/group command"); -compute_group_group.cpp: error->all(FLERR,"Compute group/group group ID does not exist"); -compute_group_group.cpp: error->all(FLERR,"Illegal compute group/group command"); -compute_group_group.cpp: else error->all(FLERR,"Illegal compute group/group command"); -compute_group_group.cpp: error->all(FLERR,"Illegal compute group/group command"); -compute_group_group.cpp: else error->all(FLERR,"Illegal compute group/group command"); -compute_group_group.cpp: error->all(FLERR,"Illegal compute group/group command"); -compute_group_group.cpp: else error->all(FLERR,"Illegal compute group/group command"); -compute_group_group.cpp: error->all(FLERR,"Illegal compute group/group command"); -compute_group_group.cpp: else error->all(FLERR,"Illegal compute group/group command"); -compute_group_group.cpp: error->all(FLERR,"Compute group/group molecule requires molecule IDs"); -compute_group_group.cpp: } else error->all(FLERR,"Illegal compute group/group command"); -compute_group_group.cpp:/* ---------------------------------------------------------------------- */ -compute_group_group.cpp:/* ---------------------------------------------------------------------- */ -compute_group_group.cpp: // if non-hybrid, then error if single_enable = 0 -compute_group_group.cpp: // if hybrid, let hybrid determine if sub-style sets single_enable = 0 -compute_group_group.cpp: error->all(FLERR,"No pair style defined for compute group/group"); -compute_group_group.cpp: error->all(FLERR,"Pair style does not support compute group/group"); -compute_group_group.cpp: // error if Kspace style does not compute group/group interactions -compute_group_group.cpp: error->all(FLERR,"No Kspace style defined for compute group/group"); -compute_group_group.cpp: error->all(FLERR,"Kspace style does not support compute group/group"); -compute_group_group.cpp: // compute Kspace correction terms -compute_group_group.cpp: sprintf(str,"Both groups in compute group/group have a net charge; " -compute_group_group.cpp: // recheck that group 2 has not been deleted -compute_group_group.cpp: error->all(FLERR,"Compute group/group group ID does not exist"); -compute_group_group.cpp: // need an occasional half neighbor list -compute_group_group.cpp:/* ---------------------------------------------------------------------- */ -compute_group_group.cpp:/* ---------------------------------------------------------------------- */ -compute_group_group.cpp:/* ---------------------------------------------------------------------- */ -compute_group_group.cpp:/* ---------------------------------------------------------------------- */ -compute_group_group.cpp: // invoke half neighbor list (will copy or build if necessary) -compute_group_group.cpp: // loop over neighbors of my atoms -compute_group_group.cpp: // skip if I,J are not in 2 groups -compute_group_group.cpp: // skip if atom I is not in either group -compute_group_group.cpp: // skip if atom J is not in either group -compute_group_group.cpp: // skip if atoms I,J are only in the same group -compute_group_group.cpp: // skip if molecule IDs of atoms I,J do not satisfy molflag setting -compute_group_group.cpp: // energy only computed once so tally full amount -compute_group_group.cpp: // force tally is jgroup acting on igroup -compute_group_group.cpp: // energy computed twice so tally half amount -compute_group_group.cpp: // only tally force if I own igroup atom -compute_group_group.cpp:/* ---------------------------------------------------------------------- */ -compute_group_group.cpp: // subtract extra A <--> A Kspace interaction so energy matches -compute_group_group.cpp: // real-space style of compute group-group -compute_group_group.cpp: // add extra Kspace term to energy -compute_group_group.cpp: // self energy correction term -compute_group_group.cpp: // k=0 boundary correction term -compute_group_group.cpp: // adjustment of z dimension for 2d slab Ewald -compute_group_group.cpp: // 3d Ewald just uses zprd since slab_volfactor = 1.0 -compute_group_group.cpp: scalar -= e_correction/volume; -compute_group_group.cpp:/* ---------------------------------------------------------------------- */ -compute_group_group.cpp: // total charge of groups A & B, needed for correction term -compute_group_group.cpp: // self-energy correction -compute_group_group.cpp: e_self = qscale * g_ewald*qsqsum_group/MY_PIS; -compute_group_group.cpp: // subtract extra AA terms -compute_group_group.cpp: // k=0 energy correction term (still need to divide by volume above) -compute_group_group.cpp: e_correction *= qscale * MY_PI2 / (g_ewald*g_ewald); -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- -compute_gyration_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_gyration_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_gyration_chunk.cpp: if (narg < 4) error->all(FLERR,"Illegal compute gyration/chunk command"); -compute_gyration_chunk.cpp: // ID of compute chunk/atom -compute_gyration_chunk.cpp: // optional args -compute_gyration_chunk.cpp: } else error->all(FLERR,"Illegal compute gyration/chunk command"); -compute_gyration_chunk.cpp: // chunk-based data -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_gyration_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " -compute_gyration_chunk.cpp: "compute gyration/chunk"); -compute_gyration_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_gyration_chunk.cpp: error->all(FLERR,"Compute gyration/chunk does not use chunk/atom compute"); -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_gyration_chunk.cpp: // compute Rg for each chunk -compute_gyration_chunk.cpp: rgall[i] = sqrt(rgall[i]/masstotal[i]); -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_gyration_chunk.cpp: rgtall[i][j] = rgtall[i][j]/masstotal[i]; -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- -compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ -compute_gyration_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_gyration_chunk.cpp: // extract ichunk index vector from compute -compute_gyration_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_gyration_chunk.cpp: // zero local per-chunk values -compute_gyration_chunk.cpp: // compute COM for each chunk -compute_gyration_chunk.cpp: comall[i][0] /= masstotal[i]; -compute_gyration_chunk.cpp: comall[i][1] /= masstotal[i]; -compute_gyration_chunk.cpp: comall[i][2] /= masstotal[i]; -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- -compute_gyration_chunk.cpp: lock methods: called by fix ave/time -compute_gyration_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_gyration_chunk.cpp: by passing lock info along to compute chunk/atom -compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- -compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- -compute_gyration_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- -compute_gyration_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- -compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- -compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- -compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ -compute_gyration_chunk.cpp: memory->create(massproc,maxchunk,"gyration/chunk:massproc"); -compute_gyration_chunk.cpp: memory->create(masstotal,maxchunk,"gyration/chunk:masstotal"); -compute_gyration_chunk.cpp: memory->create(com,maxchunk,3,"gyration/chunk:com"); -compute_gyration_chunk.cpp: memory->create(comall,maxchunk,3,"gyration/chunk:comall"); -compute_gyration_chunk.cpp: memory->create(rgt,maxchunk,6,"gyration/chunk:rgt"); -compute_gyration_chunk.cpp: memory->create(rgtall,maxchunk,6,"gyration/chunk:rgtall"); -compute_gyration_chunk.cpp: memory->create(rg,maxchunk,"gyration/chunk:rg"); -compute_gyration_chunk.cpp: memory->create(rgall,maxchunk,"gyration/chunk:rgall"); -compute_gyration_chunk.cpp:/* ---------------------------------------------------------------------- -compute_gyration_chunk.cpp:------------------------------------------------------------------------- */ -compute_gyration.cpp:/* ---------------------------------------------------------------------- -compute_gyration.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_gyration.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_gyration.cpp:------------------------------------------------------------------------- */ -compute_gyration.cpp:/* ---------------------------------------------------------------------- */ -compute_gyration.cpp:/* ---------------------------------------------------------------------- */ -compute_gyration.cpp:/* ---------------------------------------------------------------------- */ -compute_gyration.cpp:/* ---------------------------------------------------------------------- */ -compute_gyration.cpp:/* ---------------------------------------------------------------------- -compute_gyration.cpp:------------------------------------------------------------------------- */ -compute_gyration.cpp: vector[i] /= masstotal; -compute_heat_flux.cpp:/* ---------------------------------------------------------------------- -compute_heat_flux.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_heat_flux.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_heat_flux.cpp:------------------------------------------------------------------------- */ -compute_heat_flux.cpp:/* ---------------------------------------------------------------------- -compute_heat_flux.cpp:------------------------------------------------------------------------- */ -compute_heat_flux.cpp:/* ---------------------------------------------------------------------- */ -compute_heat_flux.cpp: if (narg != 6) error->all(FLERR,"Illegal compute heat/flux command"); -compute_heat_flux.cpp: // store ke/atom, pe/atom, stress/atom IDs used by heat flux computation -compute_heat_flux.cpp: // insure they are valid for these computations -compute_heat_flux.cpp: error->all(FLERR,"Could not find compute heat/flux compute ID"); -compute_heat_flux.cpp: if (strcmp(modify->compute[ike]->style,"ke/atom") != 0) -compute_heat_flux.cpp: error->all(FLERR,"Compute heat/flux compute ID does not compute ke/atom"); -compute_heat_flux.cpp: error->all(FLERR,"Compute heat/flux compute ID does not compute pe/atom"); -compute_heat_flux.cpp: "Compute heat/flux compute ID does not compute stress/atom"); -compute_heat_flux.cpp:/* ---------------------------------------------------------------------- */ -compute_heat_flux.cpp:/* ---------------------------------------------------------------------- */ -compute_heat_flux.cpp: // error checks -compute_heat_flux.cpp: error->all(FLERR,"Could not find compute heat/flux compute ID"); -compute_heat_flux.cpp:/* ---------------------------------------------------------------------- */ -compute_heat_flux.cpp: // invoke 3 computes if they haven't been already -compute_heat_flux.cpp: // heat flux vector = jc[3] + jv[3] -compute_heat_flux.cpp: // jc[3] = convective portion of heat flux = sum_i (ke_i + pe_i) v_i[3] -compute_heat_flux.cpp: // jv[3] = virial portion of heat flux = sum_i (stress_tensor_i . v_i[3]) -compute_heat_flux.cpp: // normalization by volume is not included -compute_heat_flux.cpp: // convert jv from stress*volume to energy units via nktv2p factor -compute_heat_flux.cpp: jv[0] /= nktv2p; -compute_heat_flux.cpp: jv[1] /= nktv2p; -compute_heat_flux.cpp: jv[2] /= nktv2p; -compute_heat_flux.cpp: // sum across all procs -compute_heat_flux.cpp: // 1st 3 terms are total heat flux -compute_heat_flux.cpp: // 2nd 3 terms are just conductive portion -compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_hexorder_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_hexorder_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_hexorder_atom.cpp:------------------------------------------------------------------------- */ -compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_hexorder_atom.cpp:------------------------------------------------------------------------- */ -compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_hexorder_atom.cpp: if (narg < 3 ) error->all(FLERR,"Illegal compute hexorder/atom command"); -compute_hexorder_atom.cpp: // process optional args -compute_hexorder_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute hexorder/atom command"); -compute_hexorder_atom.cpp: error->all(FLERR,"Illegal compute hexorder/atom command"); -compute_hexorder_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute hexorder/atom command"); -compute_hexorder_atom.cpp: error->all(FLERR,"Illegal compute hexorder/atom command"); -compute_hexorder_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute hexorder/atom command"); -compute_hexorder_atom.cpp: error->all(FLERR,"Illegal compute hexorder/atom command"); -compute_hexorder_atom.cpp: } else error->all(FLERR,"Illegal compute hexorder/atom command"); -compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_hexorder_atom.cpp: error->all(FLERR,"Compute hexorder/atom requires a pair style be defined"); -compute_hexorder_atom.cpp: "Compute hexorder/atom cutoff is longer than pairwise cutoff"); -compute_hexorder_atom.cpp: // need an occasional full neighbor list -compute_hexorder_atom.cpp: if (strcmp(modify->compute[i]->style,"hexorder/atom") == 0) count++; -compute_hexorder_atom.cpp: error->warning(FLERR,"More than one compute hexorder/atom"); -compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_hexorder_atom.cpp: // grow order parameter array if necessary -compute_hexorder_atom.cpp: memory->create(qnarray,nmax,ncol,"hexorder/atom:qnarray"); -compute_hexorder_atom.cpp: // invoke full neighbor list (will copy or build if necessary) -compute_hexorder_atom.cpp: // compute order parameter for each atom in group -compute_hexorder_atom.cpp: // use full neighbor list to count atoms less than cutoff -compute_hexorder_atom.cpp: // insure distsq and nearest arrays are long enough -compute_hexorder_atom.cpp: memory->create(distsq,maxneigh,"hexorder/atom:distsq"); -compute_hexorder_atom.cpp: memory->create(nearest,maxneigh,"hexorder/atom:nearest"); -compute_hexorder_atom.cpp: // loop over list of all neighbors within force cutoff -compute_hexorder_atom.cpp: // distsq[] = distance sq to each -compute_hexorder_atom.cpp: // nearest[] = atom indices of neighbors -compute_hexorder_atom.cpp: // if not nnn neighbors, order parameter = 0; -compute_hexorder_atom.cpp: // if nnn > 0, use only nearest nnn neighbors -compute_hexorder_atom.cpp: qn[0] = usum/nnn; -compute_hexorder_atom.cpp: qn[1] = vsum/nnn; -compute_hexorder_atom.cpp:// calculate order parameter using std::complex::pow function -compute_hexorder_atom.cpp: double rinv = 1.0/sqrt(delx*delx+dely*dely); -compute_hexorder_atom.cpp:// calculate order parameter using trig functions -compute_hexorder_atom.cpp:// this is usually slower, but can be used if not available -compute_hexorder_atom.cpp: if(dely > 0.0) ntheta = nnn * MY_PI / 2.0; -compute_hexorder_atom.cpp: else ntheta = nnn * 3.0 * MY_PI / 2.0; -compute_hexorder_atom.cpp: } else ntheta = nnn * atan(dely / delx); -compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_hexorder_atom.cpp:------------------------------------------------------------------------- */ -compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_hexorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_hexorder_atom.cpp:------------------------------------------------------------------------- */ -compute_improper.cpp:/* ---------------------------------------------------------------------- -compute_improper.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_improper.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_improper.cpp:------------------------------------------------------------------------- */ -compute_improper.cpp:/* ---------------------------------------------------------------------- */ -compute_improper.cpp: // check if improper style hybrid exists -compute_improper.cpp:/* ---------------------------------------------------------------------- */ -compute_improper.cpp:/* ---------------------------------------------------------------------- */ -compute_improper.cpp: // recheck improper style in case it has been changed -compute_improper.cpp:/* ---------------------------------------------------------------------- */ -compute_improper_local.cpp:/* ---------------------------------------------------------------------- -compute_improper_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_improper_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_improper_local.cpp:------------------------------------------------------------------------- */ -compute_improper_local.cpp:/* ---------------------------------------------------------------------- */ -compute_improper_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute improper/local command"); -compute_improper_local.cpp: "Compute improper/local used when impropers are not allowed"); -compute_improper_local.cpp: else error->all(FLERR,"Invalid keyword in compute improper/local command"); -compute_improper_local.cpp:/* ---------------------------------------------------------------------- */ -compute_improper_local.cpp:/* ---------------------------------------------------------------------- */ -compute_improper_local.cpp: error->all(FLERR,"No improper style is defined for compute improper/local"); -compute_improper_local.cpp: // do initial memory allocation so that memory_usage() is correct -compute_improper_local.cpp:/* ---------------------------------------------------------------------- */ -compute_improper_local.cpp: // count local entries and compute improper info -compute_improper_local.cpp:/* ---------------------------------------------------------------------- -compute_improper_local.cpp:------------------------------------------------------------------------- */ -compute_improper_local.cpp: // chi calculation from improper style harmonic -compute_improper_local.cpp: ss1 = 1.0 / (vb1x*vb1x + vb1y*vb1y + vb1z*vb1z); -compute_improper_local.cpp: ss2 = 1.0 / (vb2x*vb2x + vb2y*vb2y + vb2z*vb2z); -compute_improper_local.cpp: ss3 = 1.0 / (vb3x*vb3x + vb3y*vb3y + vb3z*vb3z); -compute_improper_local.cpp: s1 = 1.0 / s1; -compute_improper_local.cpp: s2 = 1.0 / s2; -compute_improper_local.cpp: cbuf[n] = 180.0*acos(c)/MY_PI; -compute_improper_local.cpp:/* ---------------------------------------------------------------------- */ -compute_improper_local.cpp: // grow vector_local or array_local -compute_improper_local.cpp: memory->create(vlocal,nmax,"improper/local:vector_local"); -compute_improper_local.cpp: memory->create(alocal,nmax,nvalues,"improper/local:array_local"); -compute_improper_local.cpp:/* ---------------------------------------------------------------------- -compute_improper_local.cpp:------------------------------------------------------------------------- */ -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- -compute_inertia_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_inertia_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_inertia_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute inertia/chunk command"); -compute_inertia_chunk.cpp: // ID of compute chunk/atom -compute_inertia_chunk.cpp: // chunk-based data -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_inertia_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " -compute_inertia_chunk.cpp: "compute inertia/chunk"); -compute_inertia_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_inertia_chunk.cpp: error->all(FLERR,"Compute inertia/chunk does not use chunk/atom compute"); -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_inertia_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_inertia_chunk.cpp: // extract ichunk index vector from compute -compute_inertia_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_inertia_chunk.cpp: // zero local per-chunk values -compute_inertia_chunk.cpp: // compute COM for each chunk -compute_inertia_chunk.cpp: comall[i][0] /= masstotal[i]; -compute_inertia_chunk.cpp: comall[i][1] /= masstotal[i]; -compute_inertia_chunk.cpp: comall[i][2] /= masstotal[i]; -compute_inertia_chunk.cpp: // compute inertia tensor for each chunk -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- -compute_inertia_chunk.cpp: lock methods: called by fix ave/time -compute_inertia_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_inertia_chunk.cpp: by passing lock info along to compute chunk/atom -compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- -compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- -compute_inertia_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- -compute_inertia_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- -compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- -compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- -compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ -compute_inertia_chunk.cpp: memory->create(massproc,maxchunk,"inertia/chunk:massproc"); -compute_inertia_chunk.cpp: memory->create(masstotal,maxchunk,"inertia/chunk:masstotal"); -compute_inertia_chunk.cpp: memory->create(com,maxchunk,3,"inertia/chunk:com"); -compute_inertia_chunk.cpp: memory->create(comall,maxchunk,3,"inertia/chunk:comall"); -compute_inertia_chunk.cpp: memory->create(inertia,maxchunk,6,"inertia/chunk:inertia"); -compute_inertia_chunk.cpp: memory->create(inertiaall,maxchunk,6,"inertia/chunk:inertiaall"); -compute_inertia_chunk.cpp:/* ---------------------------------------------------------------------- -compute_inertia_chunk.cpp:------------------------------------------------------------------------- */ -compute_ke_atom.cpp:/* ---------------------------------------------------------------------- -compute_ke_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_ke_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_ke_atom.cpp:------------------------------------------------------------------------- */ -compute_ke_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_ke_atom.cpp: if (narg != 3) error->all(FLERR,"Illegal compute ke/atom command"); -compute_ke_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_ke_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_ke_atom.cpp: if (strcmp(modify->compute[i]->style,"ke/atom") == 0) count++; -compute_ke_atom.cpp: error->warning(FLERR,"More than one compute ke/atom"); -compute_ke_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_ke_atom.cpp: // grow ke array if necessary -compute_ke_atom.cpp: memory->create(ke,nmax,"ke/atom:ke"); -compute_ke_atom.cpp: // compute kinetic energy for each atom in group -compute_ke_atom.cpp:/* ---------------------------------------------------------------------- -compute_ke_atom.cpp:------------------------------------------------------------------------- */ -compute_ke.cpp:/* ---------------------------------------------------------------------- -compute_ke.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_ke.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_ke.cpp:------------------------------------------------------------------------- */ -compute_ke.cpp:/* ---------------------------------------------------------------------- */ -compute_ke.cpp:/* ---------------------------------------------------------------------- */ -compute_ke.cpp:/* ---------------------------------------------------------------------- */ -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- -compute_msd_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_msd_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_msd_chunk.cpp:------------------------------------------------------------------------- */ -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_msd_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute msd/chunk command"); -compute_msd_chunk.cpp: // ID of compute chunk/atom -compute_msd_chunk.cpp: // create a new fix STORE style for reference positions -compute_msd_chunk.cpp: // id = compute-ID + COMPUTE_STORE, fix group = compute group -compute_msd_chunk.cpp: // do not know size of array at this point, just allocate 1x3 array -compute_msd_chunk.cpp: // fix creation must be done now so that a restart run can -compute_msd_chunk.cpp: // potentially re-populate the fix array (and change it to correct size) -compute_msd_chunk.cpp: // otherwise size reset and init will be done in setup() -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_msd_chunk.cpp: // check nfix in case all fixes have already been deleted -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_msd_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for compute msd/chunk"); -compute_msd_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_msd_chunk.cpp: error->all(FLERR,"Compute msd/chunk does not use chunk/atom compute"); -compute_msd_chunk.cpp: // set fix which stores reference atom coords -compute_msd_chunk.cpp: // if firstflag, will be created in setup() -compute_msd_chunk.cpp: if (ifix < 0) error->all(FLERR,"Could not find compute msd/chunk fix ID"); -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- -compute_msd_chunk.cpp:------------------------------------------------------------------------- */ -compute_msd_chunk.cpp: // if fix->astore is already correct size, restart file set it up -compute_msd_chunk.cpp: // otherwise reset its size now and initialize to current COM -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_msd_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_msd_chunk.cpp: // extract ichunk index vector from compute -compute_msd_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_msd_chunk.cpp: // first time call, allocate per-chunk arrays -compute_msd_chunk.cpp: // thereafter, require nchunk remain the same -compute_msd_chunk.cpp: error->all(FLERR,"Compute msd/chunk nchunk is not static"); -compute_msd_chunk.cpp: // zero local per-chunk values -compute_msd_chunk.cpp: // compute current COM for each chunk -compute_msd_chunk.cpp: comall[i][0] /= masstotal[i]; -compute_msd_chunk.cpp: comall[i][1] /= masstotal[i]; -compute_msd_chunk.cpp: comall[i][2] /= masstotal[i]; -compute_msd_chunk.cpp: // MSD is difference between current and initial COM -compute_msd_chunk.cpp: // cominit is initilialized by setup() when firstflag is set -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- -compute_msd_chunk.cpp: lock methods: called by fix ave/time -compute_msd_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_msd_chunk.cpp: by passing lock info along to compute chunk/atom -compute_msd_chunk.cpp:------------------------------------------------------------------------- */ -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- -compute_msd_chunk.cpp:------------------------------------------------------------------------- */ -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- -compute_msd_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_msd_chunk.cpp:------------------------------------------------------------------------- */ -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- -compute_msd_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_msd_chunk.cpp:------------------------------------------------------------------------- */ -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- -compute_msd_chunk.cpp:------------------------------------------------------------------------- */ -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- -compute_msd_chunk.cpp:------------------------------------------------------------------------- */ -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- -compute_msd_chunk.cpp:------------------------------------------------------------------------- */ -compute_msd_chunk.cpp: memory->create(massproc,nchunk,"msd/chunk:massproc"); -compute_msd_chunk.cpp: memory->create(masstotal,nchunk,"msd/chunk:masstotal"); -compute_msd_chunk.cpp: memory->create(com,nchunk,3,"msd/chunk:com"); -compute_msd_chunk.cpp: memory->create(comall,nchunk,3,"msd/chunk:comall"); -compute_msd_chunk.cpp: memory->create(msd,nchunk,4,"msd/chunk:msd"); -compute_msd_chunk.cpp:/* ---------------------------------------------------------------------- -compute_msd_chunk.cpp:------------------------------------------------------------------------- */ -compute_msd.cpp:/* ---------------------------------------------------------------------- -compute_msd.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_msd.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_msd.cpp:------------------------------------------------------------------------- */ -compute_msd.cpp:/* ---------------------------------------------------------------------- */ -compute_msd.cpp: // optional args -compute_msd.cpp: // create a new fix STORE style for reference positions -compute_msd.cpp: // id = compute-ID + COMPUTE_STORE, fix group = compute group -compute_msd.cpp: // calculate xu,yu,zu for fix store array -compute_msd.cpp: // skip if reset from restart file -compute_msd.cpp: // adjust for COM if requested -compute_msd.cpp: // initialize counter for average positions if requested -compute_msd.cpp: // displacement vector -compute_msd.cpp:/* ---------------------------------------------------------------------- */ -compute_msd.cpp: // check nfix in case all fixes have already been deleted -compute_msd.cpp:/* ---------------------------------------------------------------------- */ -compute_msd.cpp: // set fix which stores reference atom coords -compute_msd.cpp: // nmsd = # of atoms in group -compute_msd.cpp:/* ---------------------------------------------------------------------- */ -compute_msd.cpp: // cm = current center of mass -compute_msd.cpp: // dx,dy,dz = displacement of atom from reference position -compute_msd.cpp: // reference unwrapped position is stored by fix -compute_msd.cpp: // relative to center of mass if comflag is set -compute_msd.cpp: // for triclinic, need to unwrap current atom coord via h matrix -compute_msd.cpp: // update number of averages if requested -compute_msd.cpp: navfac = 1.0/(naverage+1); -compute_msd.cpp: // use running average position for reference if requested -compute_msd.cpp: // use running average position for reference if requested -compute_msd.cpp: vector[0] /= nmsd; -compute_msd.cpp: vector[1] /= nmsd; -compute_msd.cpp: vector[2] /= nmsd; -compute_msd.cpp: vector[3] /= nmsd; -compute_msd.cpp:/* ---------------------------------------------------------------------- -compute_msd.cpp:------------------------------------------------------------------------- */ -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- -compute_omega_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_omega_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_omega_chunk.cpp:------------------------------------------------------------------------- */ -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_omega_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute omega/chunk command"); -compute_omega_chunk.cpp: // ID of compute chunk/atom -compute_omega_chunk.cpp: // chunk-based data -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_omega_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " -compute_omega_chunk.cpp: "compute omega/chunk"); -compute_omega_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_omega_chunk.cpp: error->all(FLERR,"Compute omega/chunk does not use chunk/atom compute"); -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_omega_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_omega_chunk.cpp: // extract ichunk index vector from compute -compute_omega_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_omega_chunk.cpp: // zero local per-chunk values -compute_omega_chunk.cpp: // compute COM for each chunk -compute_omega_chunk.cpp: comall[i][0] /= masstotal[i]; -compute_omega_chunk.cpp: comall[i][1] /= masstotal[i]; -compute_omega_chunk.cpp: comall[i][2] /= masstotal[i]; -compute_omega_chunk.cpp: // compute inertia tensor for each chunk -compute_omega_chunk.cpp: // compute angmom for each chunk -compute_omega_chunk.cpp: // compute omega for each chunk -compute_omega_chunk.cpp: // determinant = triple product of rows of inertia matrix -compute_omega_chunk.cpp: // non-singular I matrix -compute_omega_chunk.cpp: // use L = Iw, inverting I to solve for w -compute_omega_chunk.cpp: invdeterminant = 1.0/determinant; -compute_omega_chunk.cpp: // handle each (nearly) singular I matrix -compute_omega_chunk.cpp: // due to 2-atom chunk or linear molecule -compute_omega_chunk.cpp: // use jacobi() and angmom_to_omega() to calculate valid omega -compute_omega_chunk.cpp: "Insufficient Jacobi rotations for omega/chunk"); -compute_omega_chunk.cpp: // enforce 3 evectors as a right-handed coordinate system -compute_omega_chunk.cpp: // flip 3rd vector if needed -compute_omega_chunk.cpp: // if any principal moment < scaled EPSILON, set to 0.0 -compute_omega_chunk.cpp: // calculate omega using diagonalized inertia matrix -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- -compute_omega_chunk.cpp: lock methods: called by fix ave/time -compute_omega_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_omega_chunk.cpp: by passing lock info along to compute chunk/atom -compute_omega_chunk.cpp:------------------------------------------------------------------------- */ -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- -compute_omega_chunk.cpp:------------------------------------------------------------------------- */ -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- -compute_omega_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_omega_chunk.cpp:------------------------------------------------------------------------- */ -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- -compute_omega_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_omega_chunk.cpp:------------------------------------------------------------------------- */ -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- -compute_omega_chunk.cpp:------------------------------------------------------------------------- */ -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- -compute_omega_chunk.cpp:------------------------------------------------------------------------- */ -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- -compute_omega_chunk.cpp:------------------------------------------------------------------------- */ -compute_omega_chunk.cpp: memory->create(massproc,maxchunk,"omega/chunk:massproc"); -compute_omega_chunk.cpp: memory->create(masstotal,maxchunk,"omega/chunk:masstotal"); -compute_omega_chunk.cpp: memory->create(com,maxchunk,3,"omega/chunk:com"); -compute_omega_chunk.cpp: memory->create(comall,maxchunk,3,"omega/chunk:comall"); -compute_omega_chunk.cpp: memory->create(inertia,maxchunk,6,"omega/chunk:inertia"); -compute_omega_chunk.cpp: memory->create(inertiaall,maxchunk,6,"omega/chunk:inertiaall"); -compute_omega_chunk.cpp: memory->create(angmom,maxchunk,3,"omega/chunk:angmom"); -compute_omega_chunk.cpp: memory->create(angmomall,maxchunk,3,"omega/chunk:angmomall"); -compute_omega_chunk.cpp: memory->create(omega,maxchunk,3,"omega/chunk:omega"); -compute_omega_chunk.cpp:/* ---------------------------------------------------------------------- -compute_omega_chunk.cpp:------------------------------------------------------------------------- */ -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_orientorder_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_orientorder_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_orientorder_atom.cpp: if (narg < 3 ) error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: // set default values for optional args -compute_orientorder_atom.cpp: // specify which orders to request -compute_orientorder_atom.cpp: memory->create(qlist,nqlist,"orientorder/atom:qlist"); -compute_orientorder_atom.cpp: // process optional args -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: memory->create(qlist,nqlist,"orientorder/atom:qlist"); -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp: } else error->all(FLERR,"Illegal compute orientorder/atom command"); -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_orientorder_atom.cpp: error->all(FLERR,"Compute orientorder/atom requires a " -compute_orientorder_atom.cpp: error->all(FLERR,"Compute orientorder/atom cutoff is " -compute_orientorder_atom.cpp: memory->create(qnm_r,qmax,2*qmax+1,"orientorder/atom:qnm_r"); -compute_orientorder_atom.cpp: memory->create(qnm_i,qmax,2*qmax+1,"orientorder/atom:qnm_i"); -compute_orientorder_atom.cpp: // need an occasional full neighbor list -compute_orientorder_atom.cpp: if (strcmp(modify->compute[i]->style,"orientorder/atom") == 0) count++; -compute_orientorder_atom.cpp: error->warning(FLERR,"More than one compute orientorder/atom"); -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_orientorder_atom.cpp: // grow order parameter array if necessary -compute_orientorder_atom.cpp: memory->create(qnarray,nmax,ncol,"orientorder/atom:qnarray"); -compute_orientorder_atom.cpp: // invoke full neighbor list (will copy or build if necessary) -compute_orientorder_atom.cpp: // compute order parameter for each atom in group -compute_orientorder_atom.cpp: // use full neighbor list to count atoms less than cutoff -compute_orientorder_atom.cpp: // insure distsq and nearest arrays are long enough -compute_orientorder_atom.cpp: memory->create(distsq,maxneigh,"orientorder/atom:distsq"); -compute_orientorder_atom.cpp: memory->create(rlist,maxneigh,3,"orientorder/atom:rlist"); -compute_orientorder_atom.cpp: memory->create(nearest,maxneigh,"orientorder/atom:nearest"); -compute_orientorder_atom.cpp: // loop over list of all neighbors within force cutoff -compute_orientorder_atom.cpp: // distsq[] = distance sq to each -compute_orientorder_atom.cpp: // rlist[] = distance vector to each -compute_orientorder_atom.cpp: // nearest[] = atom indices of neighbors -compute_orientorder_atom.cpp: // if not nnn neighbors, order parameter = 0; -compute_orientorder_atom.cpp: // if nnn > 0, use only nearest nnn neighbors -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ -compute_orientorder_atom.cpp:// Use no-op do while to create single statement -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ -compute_orientorder_atom.cpp: double costheta = r[2] / rmag; -compute_orientorder_atom.cpp: double rxymaginv = 1.0/rxymag; -compute_orientorder_atom.cpp: double fac = sqrt(MY_4PI) / ncount; -compute_orientorder_atom.cpp: // printf("Ylm^2 = %d %d %g\n",n,m, -compute_orientorder_atom.cpp: // qnm_r[iw][m]*qnm_r[iw][m] + qnm_i[iw][m]*qnm_i[iw][m]); -compute_orientorder_atom.cpp: qn[iw] = fac * sqrt(qm_sum / (2*n+1)); -compute_orientorder_atom.cpp: if (qlcompflag && iqlcomp == iw) normfac = 1.0/sqrt(qm_sum); -compute_orientorder_atom.cpp: // output of the complex vector -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ -compute_orientorder_atom.cpp: prefactor = sqrt(static_cast(2*l+1)/(MY_4PI*prefactor)) -compute_orientorder_atom.cpp:/* ---------------------------------------------------------------------- -compute_orientorder_atom.cpp:------------------------------------------------------------------------- */ -compute_orientorder_atom.cpp: - static_cast(i+m-1)*pm2) / static_cast(i-m); -compute_pair.cpp:/* ---------------------------------------------------------------------- -compute_pair.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_pair.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_pair.cpp:------------------------------------------------------------------------- */ -compute_pair.cpp:/* ---------------------------------------------------------------------- */ -compute_pair.cpp: // check if pair style with and without suffix exists -compute_pair.cpp: strcat(pstyle,"/"); -compute_pair.cpp:/* ---------------------------------------------------------------------- */ -compute_pair.cpp:/* ---------------------------------------------------------------------- */ -compute_pair.cpp: // recheck for pair style in case it has been deleted -compute_pair.cpp:/* ---------------------------------------------------------------------- */ -compute_pair.cpp:/* ---------------------------------------------------------------------- */ -compute_pair_local.cpp:/* ---------------------------------------------------------------------- -compute_pair_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_pair_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_pair_local.cpp:------------------------------------------------------------------------- */ -compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ -compute_pair_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute pair/local command"); -compute_pair_local.cpp: "Invalid keyword in compute pair/local command"); -compute_pair_local.cpp: // optional args -compute_pair_local.cpp: error->all(FLERR,"Illegal compute pair/local command"); -compute_pair_local.cpp: else error->all(FLERR,"Illegal compute pair/local command"); -compute_pair_local.cpp: } else error->all(FLERR,"Illegal compute pair/local command"); -compute_pair_local.cpp: // error check -compute_pair_local.cpp: error->all(FLERR,"Compute pair/local requires atom attribute radius"); -compute_pair_local.cpp: // set singleflag if need to call pair->single() -compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ -compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ -compute_pair_local.cpp: error->all(FLERR,"No pair style is defined for compute pair/local"); -compute_pair_local.cpp: error->all(FLERR,"Pair style does not support compute pair/local"); -compute_pair_local.cpp: " requested by compute pair/local"); -compute_pair_local.cpp: // need an occasional half neighbor list -compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ -compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ -compute_pair_local.cpp: // count local entries and compute pair info -compute_pair_local.cpp:/* ---------------------------------------------------------------------- -compute_pair_local.cpp:------------------------------------------------------------------------- */ -compute_pair_local.cpp: // invoke half neighbor list (will copy or build if necessary) -compute_pair_local.cpp: // loop over neighbors of my atoms -compute_pair_local.cpp: // skip if I or J are not in group -compute_pair_local.cpp: // for newton = 0 and J = ghost atom, -compute_pair_local.cpp: // need to insure I,J pair is only output by one proc -compute_pair_local.cpp: // use same itag,jtag logic as in Neighbor::neigh_half_nsq() -compute_pair_local.cpp: // for flag = 0, just count pair interactions within force cutoff -compute_pair_local.cpp: // for flag = 1, calculate requested output fields -compute_pair_local.cpp: // itag = jtag is possible for long cutoffs that include images of self -compute_pair_local.cpp:/* ---------------------------------------------------------------------- */ -compute_pair_local.cpp: // grow vector_local or array_local -compute_pair_local.cpp: memory->create(vlocal,nmax,"pair/local:vector_local"); -compute_pair_local.cpp: memory->create(alocal,nmax,nvalues,"pair/local:array_local"); -compute_pair_local.cpp:/* ---------------------------------------------------------------------- -compute_pair_local.cpp:------------------------------------------------------------------------- */ -compute_pe_atom.cpp:/* ---------------------------------------------------------------------- -compute_pe_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_pe_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_pe_atom.cpp:------------------------------------------------------------------------- */ -compute_pe_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_pe_atom.cpp: if (narg < 3) error->all(FLERR,"Illegal compute pe/atom command"); -compute_pe_atom.cpp: else error->all(FLERR,"Illegal compute pe/atom command"); -compute_pe_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_pe_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_pe_atom.cpp: // grow local energy array if necessary -compute_pe_atom.cpp: // needs to be atom->nmax in length -compute_pe_atom.cpp: memory->create(energy,nmax,"pe/atom:energy"); -compute_pe_atom.cpp: // npair includes ghosts if either newton flag is set -compute_pe_atom.cpp: // b/c some bonds/dihedrals call pair::ev_tally with pairwise info -compute_pe_atom.cpp: // nbond includes ghosts if newton_bond is set -compute_pe_atom.cpp: // ntotal includes ghosts if either newton flag is set -compute_pe_atom.cpp: // KSpace includes ghosts if tip4pflag is set -compute_pe_atom.cpp: // clear local energy array -compute_pe_atom.cpp: // add in per-atom contributions from each force -compute_pe_atom.cpp: // add in per-atom contributions from relevant fixes -compute_pe_atom.cpp: // always only for owned atoms, not ghost -compute_pe_atom.cpp: // communicate ghost energy between neighbor procs -compute_pe_atom.cpp: // zero energy of atoms not in group -compute_pe_atom.cpp: // only do this after comm since ghost contributions must be included -compute_pe_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_pe_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_pe_atom.cpp:/* ---------------------------------------------------------------------- -compute_pe_atom.cpp:------------------------------------------------------------------------- */ -compute_pe.cpp:/* ---------------------------------------------------------------------- -compute_pe.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_pe.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_pe.cpp:------------------------------------------------------------------------- */ -compute_pe.cpp:/* ---------------------------------------------------------------------- */ -compute_pe.cpp:/* ---------------------------------------------------------------------- */ -compute_pe.cpp: scalar += force->pair->etail / volume; -compute_pressure.cpp:/* ---------------------------------------------------------------------- -compute_pressure.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_pressure.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_pressure.cpp:------------------------------------------------------------------------- */ -compute_pressure.cpp:/* ---------------------------------------------------------------------- */ -compute_pressure.cpp: // store temperature ID used by pressure computation -compute_pressure.cpp: // insure it is valid for temperature computation -compute_pressure.cpp: // process optional args -compute_pressure.cpp: // error check -compute_pressure.cpp:/* ---------------------------------------------------------------------- */ -compute_pressure.cpp:/* ---------------------------------------------------------------------- */ -compute_pressure.cpp: // set temperature compute, must be done in init() -compute_pressure.cpp: // fixes could have changed or compute_modify could have changed it -compute_pressure.cpp: // detect contributions to virial -compute_pressure.cpp: // vptr points to all virial[6] contributions -compute_pressure.cpp: // flag Kspace contribution separately, since not summed across procs -compute_pressure.cpp:/* ---------------------------------------------------------------------- -compute_pressure.cpp:------------------------------------------------------------------------- */ -compute_pressure.cpp: // invoke temperature if it hasn't been already -compute_pressure.cpp: inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd); -compute_pressure.cpp: virial[0] + virial[1] + virial[2]) / 3.0 * inv_volume * nktv2p; -compute_pressure.cpp: scalar = (virial[0] + virial[1] + virial[2]) / 3.0 * inv_volume * nktv2p; -compute_pressure.cpp: inv_volume = 1.0 / (domain->xprd * domain->yprd); -compute_pressure.cpp: virial[0] + virial[1]) / 2.0 * inv_volume * nktv2p; -compute_pressure.cpp: scalar = (virial[0] + virial[1]) / 2.0 * inv_volume * nktv2p; -compute_pressure.cpp:/* ---------------------------------------------------------------------- -compute_pressure.cpp:------------------------------------------------------------------------- */ -compute_pressure.cpp: error->all(FLERR,"Must use 'kspace_modify pressure/scalar no' for " -compute_pressure.cpp: // invoke temperature if it hasn't been already -compute_pressure.cpp: inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd); -compute_pressure.cpp: inv_volume = 1.0 / (domain->xprd * domain->yprd); -compute_pressure.cpp:/* ---------------------------------------------------------------------- */ -compute_pressure.cpp: // sum contributions to virial from forces and fixes -compute_pressure.cpp: // sum virial across procs -compute_pressure.cpp: // KSpace virial contribution is already summed across procs -compute_pressure.cpp: // LJ long-range tail correction, only if pair contributions are included -compute_pressure.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- -compute_property_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_property_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_property_atom.cpp:------------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp: if (narg < 4) error->all(FLERR,"Illegal compute property/atom command"); -compute_property_atom.cpp: // parse input values -compute_property_atom.cpp: // customize a new keyword by adding to if statement -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_ellipsoid) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_ellipsoid) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_ellipsoid) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_line) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: if (!avec_tri) error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom for " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom integer " -compute_property_atom.cpp: error->all(FLERR,"Compute property/atom floating point " -compute_property_atom.cpp: // check if atom style recognizes keyword -compute_property_atom.cpp: error->all(FLERR,"Invalid keyword in compute property/atom command"); -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp: // grow vector or array if necessary -compute_property_atom.cpp: memory->create(vector_atom,nmax,"property/atom:vector"); -compute_property_atom.cpp: memory->create(array_atom,nmax,nvalues,"property/atom:array"); -compute_property_atom.cpp: // fill vector or array with per-atom values -compute_property_atom.cpp:/* ---------------------------------------------------------------------- -compute_property_atom.cpp:------------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- -compute_property_atom.cpp: one method for every keyword compute property/atom can output -compute_property_atom.cpp:------------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp: double invxprd = 1.0/domain->xprd; -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp: double invyprd = 1.0/domain->yprd; -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp: double invzprd = 1.0/domain->zprd; -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- -compute_property_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_property_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_property_chunk.cpp:------------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_property_chunk.cpp: if (narg < 5) error->all(FLERR,"Illegal compute property/chunk command"); -compute_property_chunk.cpp: // ID of compute chunk/atom -compute_property_chunk.cpp: // parse values -compute_property_chunk.cpp: error->all(FLERR,"Compute chunk/atom stores no IDs for " -compute_property_chunk.cpp: "compute property/chunk"); -compute_property_chunk.cpp: error->all(FLERR,"Compute chunk/atom stores no coord1 for " -compute_property_chunk.cpp: "compute property/chunk"); -compute_property_chunk.cpp: error->all(FLERR,"Compute chunk/atom stores no coord2 for " -compute_property_chunk.cpp: "compute property/chunk"); -compute_property_chunk.cpp: error->all(FLERR,"Compute chunk/atom stores no coord3 for " -compute_property_chunk.cpp: "compute property/chunk"); -compute_property_chunk.cpp: "Invalid keyword in compute property/chunk command"); -compute_property_chunk.cpp: // initialization -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_property_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " -compute_property_chunk.cpp: "compute property/chunk"); -compute_property_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_property_chunk.cpp: error->all(FLERR,"Compute property/chunk does not use chunk/atom compute"); -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_property_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_property_chunk.cpp: // if need count, extract ichunk index vector from compute -compute_property_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_property_chunk.cpp: // fill vector -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_property_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_property_chunk.cpp: // if need count, extract ichunk index vector from compute -compute_property_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_property_chunk.cpp: // fill array -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- -compute_property_chunk.cpp: lock methods: called by fix ave/time -compute_property_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_property_chunk.cpp: by passing lock info along to compute chunk/atom -compute_property_chunk.cpp:------------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- -compute_property_chunk.cpp:------------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- -compute_property_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_property_chunk.cpp:------------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- -compute_property_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_property_chunk.cpp:------------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- -compute_property_chunk.cpp:------------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- -compute_property_chunk.cpp:------------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- -compute_property_chunk.cpp:------------------------------------------------------------------------- */ -compute_property_chunk.cpp: if (nvalues == 1) memory->create(vector,maxchunk,"property/chunk:vector"); -compute_property_chunk.cpp: else memory->create(array,maxchunk,nvalues,"property/chunk:array"); -compute_property_chunk.cpp: memory->create(count_one,maxchunk,"property/chunk:count_one"); -compute_property_chunk.cpp: memory->create(count_all,maxchunk,"property/chunk:count_all"); -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- -compute_property_chunk.cpp:------------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- -compute_property_chunk.cpp: one method for every keyword compute property/chunk can output -compute_property_chunk.cpp:------------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_property_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- -compute_property_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_property_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_property_local.cpp:------------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp: if (narg < 4) error->all(FLERR,"Illegal compute property/local command"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: "Compute property/local cannot use these inputs together"); -compute_property_local.cpp: // optional args -compute_property_local.cpp: error->all(FLERR,"Illegal compute property/local command"); -compute_property_local.cpp: else error->all(FLERR,"Illegal compute property/local command"); -compute_property_local.cpp: } else error->all(FLERR,"Illegal compute property/local command"); -compute_property_local.cpp: // error check -compute_property_local.cpp: error->all(FLERR,"Compute property/local does not (yet) work " -compute_property_local.cpp: "Compute property/local for property that isn't allocated"); -compute_property_local.cpp: "Compute property/local for property that isn't allocated"); -compute_property_local.cpp: "Compute property/local for property that isn't allocated"); -compute_property_local.cpp: "Compute property/local for property that isn't allocated"); -compute_property_local.cpp: error->all(FLERR,"Compute property/local requires atom attribute radius"); -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp: error->all(FLERR,"No pair style is defined for compute property/local"); -compute_property_local.cpp: error->all(FLERR,"Pair style does not support compute property/local"); -compute_property_local.cpp: // for NEIGH/PAIR need an occasional half neighbor list -compute_property_local.cpp: // do initial memory allocation so that memory_usage() is correct -compute_property_local.cpp: // cannot be done yet for NEIGH/PAIR, since neigh list does not exist -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp: // count local entries and generate list of indices -compute_property_local.cpp: // fill vector or array with local values -compute_property_local.cpp:/* ---------------------------------------------------------------------- -compute_property_local.cpp:------------------------------------------------------------------------- */ -compute_property_local.cpp: // invoke half neighbor list (will copy or build if necessary) -compute_property_local.cpp: // loop over neighbors of my atoms -compute_property_local.cpp: // skip if I or J are not in group -compute_property_local.cpp: // for newton = 0 and J = ghost atom, -compute_property_local.cpp: // need to insure I,J pair is only output by one proc -compute_property_local.cpp: // use same itag,jtag logic as in Neighbor::neigh_half_nsq() -compute_property_local.cpp: // itag = jtag is possible for long cutoffs that include images of self -compute_property_local.cpp:/* ---------------------------------------------------------------------- -compute_property_local.cpp:------------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- -compute_property_local.cpp:------------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- -compute_property_local.cpp:------------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- -compute_property_local.cpp:------------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp: // grow vector_local or array_local, also indices -compute_property_local.cpp: memory->create(vlocal,nmax,"property/local:vector_local"); -compute_property_local.cpp: memory->create(alocal,nmax,nvalues,"property/local:array_local"); -compute_property_local.cpp: memory->create(indices,nmax,2,"property/local:indices"); -compute_property_local.cpp:/* ---------------------------------------------------------------------- -compute_property_local.cpp:------------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- -compute_property_local.cpp: one method for every keyword compute property/local can output -compute_property_local.cpp:------------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_property_local.cpp:/* ---------------------------------------------------------------------- */ -compute_rdf.cpp:/* ---------------------------------------------------------------------- -compute_rdf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_rdf.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_rdf.cpp:------------------------------------------------------------------------- */ -compute_rdf.cpp:/* ---------------------------------------------------------------------- -compute_rdf.cpp:------------------------------------------------------------------------- */ -compute_rdf.cpp:/* ---------------------------------------------------------------------- */ -compute_rdf.cpp: // optional args -compute_rdf.cpp: // nargpair = # of pairwise args, starting at iarg = 4 -compute_rdf.cpp: // pairwise args -compute_rdf.cpp: else npairs = nargpair/2; -compute_rdf.cpp:/* ---------------------------------------------------------------------- */ -compute_rdf.cpp:/* ---------------------------------------------------------------------- */ -compute_rdf.cpp: double cutghost; // as computed by Neighbor and Comm -compute_rdf.cpp: delr = cutoff_user / nbin; -compute_rdf.cpp: } else delr = force->pair->cutforce / nbin; -compute_rdf.cpp: delrinv = 1.0/delr; -compute_rdf.cpp: // set 1st column of output array to bin coords -compute_rdf.cpp: // count atoms of each type that are also in group -compute_rdf.cpp: // icount = # of I atoms participating in I,J pairs for each histogram -compute_rdf.cpp: // jcount = # of J atoms participating in I,J pairs for each histogram -compute_rdf.cpp: // duplicates = # of atoms in both groups I and J for each histogram -compute_rdf.cpp: // need an occasional half neighbor list -compute_rdf.cpp: // if user specified, request a cutoff = cutoff_user + skin -compute_rdf.cpp: // skin is included b/c Neighbor uses this value similar -compute_rdf.cpp: // to its cutneighmax = force cutoff + skin -compute_rdf.cpp: // also, this NeighList may be used by this compute for multiple steps -compute_rdf.cpp: // (until next reneighbor), so it needs to contain atoms further -compute_rdf.cpp: // than cutoff_user apart, just like a normal neighbor list does -compute_rdf.cpp:/* ---------------------------------------------------------------------- */ -compute_rdf.cpp:/* ---------------------------------------------------------------------- */ -compute_rdf.cpp: // invoke half neighbor list (will copy or build if necessary) -compute_rdf.cpp: // zero the histogram counts -compute_rdf.cpp: // tally the RDF -compute_rdf.cpp: // both atom i and j must be in fix group -compute_rdf.cpp: // itype,jtype must have been specified by user -compute_rdf.cpp: // consider I,J as one interaction even if neighbor pair is stored on 2 procs -compute_rdf.cpp: // tally I,J pair each time I is central atom, and each time J is central -compute_rdf.cpp: // if both weighting factors are 0, skip this pair -compute_rdf.cpp: // could be 0 and still be in neigh list for long-range Coulombics -compute_rdf.cpp: // want consistency with non-charged pairs which wouldn't be in list -compute_rdf.cpp: // sum histograms across procs -compute_rdf.cpp: // convert counts to g(r) and coord(r) and copy into output array -compute_rdf.cpp: // vfrac = fraction of volume in shell m -compute_rdf.cpp: // npairs = number of pairs, corrected for duplicates -compute_rdf.cpp: // duplicates = pairs in which both atoms are the same -compute_rdf.cpp: constant = 4.0*MY_PI / (3.0*domain->xprd*domain->yprd*domain->zprd); -compute_rdf.cpp: - static_cast(duplicates[m])/icount[m] : 0.0; -compute_rdf.cpp: gr = histall[m][ibin] / (vfrac * normfac * icount[m]); -compute_rdf.cpp: constant = MY_PI / (domain->xprd*domain->yprd); -compute_rdf.cpp: - static_cast(duplicates[m])/icount[m] : 0.0; -compute_rdf.cpp: gr = histall[m][ibin] / (vfrac * normfac * icount[m]); -compute_reduce.cpp:/* ---------------------------------------------------------------------- -compute_reduce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_reduce.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_reduce.cpp:------------------------------------------------------------------------- */ -compute_reduce.cpp:enum{SUM,SUMSQ,MINN,MAXX,AVE,AVESQ}; // also in ReduceRegion -compute_reduce.cpp:/* ---------------------------------------------------------------------- */ -compute_reduce.cpp: } else if (strcmp(style,"reduce/region") == 0) { -compute_reduce.cpp: if (narg < 6) error->all(FLERR,"Illegal compute reduce/region command"); -compute_reduce.cpp: error->all(FLERR,"Region ID for compute reduce/region does not exist"); -compute_reduce.cpp: // expand args if any have wildcard character "*" -compute_reduce.cpp: // parse values until one isn't recognized -compute_reduce.cpp: // optional args -compute_reduce.cpp: // delete replace if not set -compute_reduce.cpp: // if wildcard expansion occurred, free earg memory from expand_args() -compute_reduce.cpp: // setup and error check -compute_reduce.cpp: // this compute produces either a scalar or vector -compute_reduce.cpp:/* ---------------------------------------------------------------------- */ -compute_reduce.cpp:/* ---------------------------------------------------------------------- */ -compute_reduce.cpp: // set indices of all computes,fixes,variables -compute_reduce.cpp: // set index and check validity of region -compute_reduce.cpp: error->all(FLERR,"Region ID for compute reduce/region does not exist"); -compute_reduce.cpp:/* ---------------------------------------------------------------------- */ -compute_reduce.cpp: if (n) scalar /= n; -compute_reduce.cpp:/* ---------------------------------------------------------------------- */ -compute_reduce.cpp: if (n) vector[m] /= n; -compute_reduce.cpp:/* ---------------------------------------------------------------------- -compute_reduce.cpp: sum/min/max/ave all values in vector -compute_reduce.cpp:------------------------------------------------------------------------- */ -compute_reduce.cpp: // invoke the appropriate attribute,compute,fix,variable -compute_reduce.cpp: // for flag = -1, compute scalar quantity by scanning over atom properties -compute_reduce.cpp: // only include atoms in group for atom properties and per-atom quantities -compute_reduce.cpp: // invoke compute if not previously invoked -compute_reduce.cpp: // access fix fields, check if fix frequency is a match -compute_reduce.cpp: // evaluate atom-style variable -compute_reduce.cpp:/* ---------------------------------------------------------------------- */ -compute_reduce.cpp:/* ---------------------------------------------------------------------- -compute_reduce.cpp: for MIN/MAX, also update index with winner -compute_reduce.cpp:------------------------------------------------------------------------- */ -compute_reduce.cpp:/* ---------------------------------------------------------------------- -compute_reduce.cpp:------------------------------------------------------------------------- */ -compute_reduce_region.cpp:/* ---------------------------------------------------------------------- -compute_reduce_region.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_reduce_region.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_reduce_region.cpp:------------------------------------------------------------------------- */ -compute_reduce_region.cpp:enum{SUM,SUMSQ,MINN,MAXX,AVE,AVESQ}; // also in ComputeReduce -compute_reduce_region.cpp:/* ---------------------------------------------------------------------- */ -compute_reduce_region.cpp:/* ---------------------------------------------------------------------- -compute_reduce_region.cpp: sum/min/max/ave all values in vector -compute_reduce_region.cpp:------------------------------------------------------------------------- */ -compute_reduce_region.cpp: // invoke the appropriate attribute,compute,fix,variable -compute_reduce_region.cpp: // compute scalar quantity by summing over atom scalars -compute_reduce_region.cpp: // only include atoms in group -compute_reduce_region.cpp: // invoke compute if not previously invoked -compute_reduce_region.cpp: // check if fix frequency is a match -compute_reduce_region.cpp: // evaluate atom-style variable -compute_reduce_region.cpp: memory->create(varatom,maxatom,"reduce/region:varatom"); -compute_reduce_region.cpp:/* ---------------------------------------------------------------------- */ -compute_slice.cpp:/* ---------------------------------------------------------------------- -compute_slice.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_slice.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_slice.cpp:------------------------------------------------------------------------- */ -compute_slice.cpp:/* ---------------------------------------------------------------------- */ -compute_slice.cpp: // parse remaining values until one isn't recognized -compute_slice.cpp: // setup and error check -compute_slice.cpp: // this compute produces either a vector or array -compute_slice.cpp: // for vector, set intensive/extensive to mirror input values -compute_slice.cpp: // for array, set intensive if all input values are intensive, else extensive -compute_slice.cpp: size_vector = (nstop-nstart) / nskip; -compute_slice.cpp: size_array_rows = (nstop-nstart) / nskip; -compute_slice.cpp: // variable is always intensive, does not change extarray -compute_slice.cpp:/* ---------------------------------------------------------------------- */ -compute_slice.cpp:/* ---------------------------------------------------------------------- */ -compute_slice.cpp: // set indices and check validity of all computes,fixes -compute_slice.cpp:/* ---------------------------------------------------------------------- */ -compute_slice.cpp:/* ---------------------------------------------------------------------- */ -compute_slice.cpp:/* ---------------------------------------------------------------------- -compute_slice.cpp:------------------------------------------------------------------------- */ -compute_slice.cpp: // invoke the appropriate compute if needed -compute_slice.cpp: // access fix fields, check if fix frequency is a match -compute_slice.cpp: // invoke vector-style variable -compute_spin.cpp:/* ---------------------------------------------------------------------- -compute_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_spin.cpp:------------------------------------------------------------------------- */ -compute_spin.cpp:/* ---------------------------------------------------------------------- */ -compute_spin.cpp: if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); -compute_spin.cpp:/* ---------------------------------------------------------------------- */ -compute_spin.cpp:/* ---------------------------------------------------------------------- */ -compute_spin.cpp: hbar = force->hplanck/MY_2PI; -compute_spin.cpp:/* ---------------------------------------------------------------------- */ -compute_spin.cpp: // compute total magnetization and magnetic energy -compute_spin.cpp: // compute spin temperature; See Nurdin et al., Phys. Rev. E 61, 2000 -compute_spin.cpp: else error->all(FLERR,"Compute spin/compute declared magnetic quantities (sp and mumag flags)"); -compute_spin.cpp: double scale = 1.0/countsptot; -compute_spin.cpp: spintemperature = hbar*tempnumtot/2.0/kb/tempdenomtot; -compute_spin.cpp:/* ---------------------------------------------------------------------- -compute_spin.cpp:------------------------------------------------------------------------- */ -compute_spin.cpp: memory->create(mag,4,"compute/spin:mag"); -compute_spin.cpp: memory->create(magtot,5,"compute/spin:mag"); -compute_spin.cpp: memory->create(vector,7,"compute/spin:vector"); -compute_stress_atom.cpp:/* ---------------------------------------------------------------------- -compute_stress_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_stress_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_stress_atom.cpp:------------------------------------------------------------------------- */ -compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_stress_atom.cpp: if (narg < 4) error->all(FLERR,"Illegal compute stress/atom command"); -compute_stress_atom.cpp: // store temperature ID used by stress computation -compute_stress_atom.cpp: // insure it is valid for temperature computation -compute_stress_atom.cpp: error->all(FLERR,"Could not find compute stress/atom temperature ID"); -compute_stress_atom.cpp: "Compute stress/atom temperature ID does not " -compute_stress_atom.cpp: // process optional args -compute_stress_atom.cpp: } else error->all(FLERR,"Illegal compute stress/atom command"); -compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_stress_atom.cpp: // set temperature compute, must be done in init() -compute_stress_atom.cpp: // fixes could have changed or compute_modify could have changed it -compute_stress_atom.cpp: error->all(FLERR,"Could not find compute stress/atom temperature ID"); -compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_stress_atom.cpp: // grow local stress array if necessary -compute_stress_atom.cpp: // needs to be atom->nmax in length -compute_stress_atom.cpp: memory->create(stress,nmax,6,"stress/atom:stress"); -compute_stress_atom.cpp: // npair includes ghosts if either newton flag is set -compute_stress_atom.cpp: // b/c some bonds/dihedrals call pair::ev_tally with pairwise info -compute_stress_atom.cpp: // nbond includes ghosts if newton_bond is set -compute_stress_atom.cpp: // ntotal includes ghosts if either newton flag is set -compute_stress_atom.cpp: // KSpace includes ghosts if tip4pflag is set -compute_stress_atom.cpp: // clear local stress array -compute_stress_atom.cpp: // add in per-atom contributions from each force -compute_stress_atom.cpp: // add in per-atom contributions from relevant fixes -compute_stress_atom.cpp: // skip if vatom = NULL -compute_stress_atom.cpp: // possible during setup phase if fix has not initialized its vatom yet -compute_stress_atom.cpp: // e.g. fix ave/spatial defined before fix shake, -compute_stress_atom.cpp: // and fix ave/spatial uses a per-atom stress from this compute as input -compute_stress_atom.cpp: // communicate ghost virials between neighbor procs -compute_stress_atom.cpp: // zero virial of atoms not in group -compute_stress_atom.cpp: // only do this after comm since ghost contributions must be included -compute_stress_atom.cpp: // include kinetic energy term for each atom in group -compute_stress_atom.cpp: // apply temperature bias is applicable -compute_stress_atom.cpp: // mvv2e converts mv^2 to energy -compute_stress_atom.cpp: // invoke temperature if it hasn't been already -compute_stress_atom.cpp: // this insures bias factor is pre-computed -compute_stress_atom.cpp: // convert to stress*volume units = -pressure*volume -compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_stress_atom.cpp:/* ---------------------------------------------------------------------- */ -compute_stress_atom.cpp:/* ---------------------------------------------------------------------- -compute_stress_atom.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_temp_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_chunk.cpp: if (narg < 4) error->all(FLERR,"Illegal compute temp/chunk command"); -compute_temp_chunk.cpp: // ID of compute chunk/atom -compute_temp_chunk.cpp: // optional per-chunk values -compute_temp_chunk.cpp: // optional args -compute_temp_chunk.cpp: error->all(FLERR,"Illegal compute temp/chunk command"); -compute_temp_chunk.cpp: else error->all(FLERR,"Illegal compute temp/chunk command"); -compute_temp_chunk.cpp: error->all(FLERR,"Illegal compute temp/chunk command"); -compute_temp_chunk.cpp: error->all(FLERR,"Illegal compute temp/chunk command"); -compute_temp_chunk.cpp: error->all(FLERR,"Illegal compute temp/chunk command"); -compute_temp_chunk.cpp: } else error->all(FLERR,"Illegal compute temp/chunk command"); -compute_temp_chunk.cpp: // error check on bias compute -compute_temp_chunk.cpp: // this compute only calculates a bias, if comflag is set -compute_temp_chunk.cpp: // won't be two biases since comflag and biasflag cannot both be set -compute_temp_chunk.cpp: error->all(FLERR,"Cannot use both com and bias with compute temp/chunk"); -compute_temp_chunk.cpp: // vector data -compute_temp_chunk.cpp: // chunk-based data -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " -compute_temp_chunk.cpp: "compute temp/chunk"); -compute_temp_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_temp_chunk.cpp: error->all(FLERR,"Compute temp/chunk does not use chunk/atom compute"); -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_chunk.cpp: // calculate chunk assignments, -compute_temp_chunk.cpp: // since only atoms in chunks contribute to global temperature -compute_temp_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_temp_chunk.cpp: // extract ichunk index vector from compute -compute_temp_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_temp_chunk.cpp: // remove velocity bias -compute_temp_chunk.cpp: // calculate COM velocity for each chunk -compute_temp_chunk.cpp: // won't be invoked with bias also removed = 2 biases -compute_temp_chunk.cpp: // calculate global temperature, optionally removing COM velocity -compute_temp_chunk.cpp: // restore velocity bias -compute_temp_chunk.cpp: // final temperature -compute_temp_chunk.cpp: if (dof > 0.0) tfactor = force->mvv2e / (dof * force->boltz); -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_chunk.cpp: // calculate chunk assignments, -compute_temp_chunk.cpp: // since only atoms in chunks contribute to global temperature -compute_temp_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_temp_chunk.cpp: // extract ichunk index vector from compute -compute_temp_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_temp_chunk.cpp: // remove velocity bias -compute_temp_chunk.cpp: // calculate COM velocity for each chunk -compute_temp_chunk.cpp: // won't be invoked with bias also removed = 2 biases -compute_temp_chunk.cpp: // calculate KE tensor, optionally removing COM velocity -compute_temp_chunk.cpp: // restore velocity bias -compute_temp_chunk.cpp: // final KE -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_temp_chunk.cpp: // extract ichunk index vector from compute -compute_temp_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_temp_chunk.cpp: // remove velocity bias -compute_temp_chunk.cpp: // calculate COM velocity for each chunk whether comflag set or not -compute_temp_chunk.cpp: // needed by some values even if comflag not set -compute_temp_chunk.cpp: // important to do this after velocity bias is removed -compute_temp_chunk.cpp: // otherwise per-chunk values that use both v and vcm will be inconsistent -compute_temp_chunk.cpp: // compute each value -compute_temp_chunk.cpp: // restore velocity bias -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp: // avoid re-computing VCM more than once per step -compute_temp_chunk.cpp: vcmall[i][0] /= masstotal[i]; -compute_temp_chunk.cpp: vcmall[i][1] /= masstotal[i]; -compute_temp_chunk.cpp: vcmall[i][2] /= masstotal[i]; -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp: // zero local per-chunk values -compute_temp_chunk.cpp: // per-chunk temperature, option for removing COM velocity -compute_temp_chunk.cpp: // sum across procs -compute_temp_chunk.cpp: // normalize temperatures by per-chunk DOF -compute_temp_chunk.cpp: if (dof > 0.0) tfactor = mvv2e / (dof * boltz); -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp: // zero local per-chunk values -compute_temp_chunk.cpp: // per-chunk COM KE -compute_temp_chunk.cpp: // sum across procs -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp: // zero local per-chunk values -compute_temp_chunk.cpp: // per-chunk internal KE -compute_temp_chunk.cpp: // sum across procs -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp: lock methods: called by fix ave/time -compute_temp_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_temp_chunk.cpp: by passing lock info along to compute chunk/atom -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_chunk.cpp: memory->create(sum,maxchunk,"temp/chunk:sum"); -compute_temp_chunk.cpp: memory->create(sumall,maxchunk,"temp/chunk:sumall"); -compute_temp_chunk.cpp: memory->create(count,maxchunk,"temp/chunk:count"); -compute_temp_chunk.cpp: memory->create(countall,maxchunk,"temp/chunk:countall"); -compute_temp_chunk.cpp: memory->create(array,maxchunk,nvalues,"temp/chunk:array"); -compute_temp_chunk.cpp: memory->create(massproc,maxchunk,"vcm/chunk:massproc"); -compute_temp_chunk.cpp: memory->create(masstotal,maxchunk,"vcm/chunk:masstotal"); -compute_temp_chunk.cpp: memory->create(vcm,maxchunk,3,"vcm/chunk:vcm"); -compute_temp_chunk.cpp: memory->create(vcmall,maxchunk,3,"vcm/chunk:vcmall"); -compute_temp_chunk.cpp:/* ---------------------------------------------------------------------- -compute_temp_chunk.cpp:------------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- -compute_temp_com.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_temp_com.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_temp_com.cpp:------------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_com.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); -compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- -compute_temp_com.cpp:------------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- -compute_temp_com.cpp:------------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- -compute_temp_com.cpp:------------------------------------------------------------------------- */ -compute_temp_com.cpp:/* ---------------------------------------------------------------------- -compute_temp_com.cpp:------------------------------------------------------------------------- */ -compute_temp.cpp:/* ---------------------------------------------------------------------- -compute_temp.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_temp.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_temp.cpp:------------------------------------------------------------------------- */ -compute_temp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp.cpp: if (dof > 0.0) tfactor = force->mvv2e / (dof * force->boltz); -compute_temp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- -compute_temp_deform.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_temp_deform.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_temp_deform.cpp:------------------------------------------------------------------------- */ -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- -compute_temp_deform.cpp:------------------------------------------------------------------------- */ -compute_temp_deform.cpp:enum{NO_REMAP,X_REMAP,V_REMAP}; // same as fix_deform.cpp -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_deform.cpp: if (narg != 3) error->all(FLERR,"Illegal compute temp/deform command"); -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_deform.cpp: // check fix deform remap settings -compute_temp_deform.cpp: error->warning(FLERR,"Using compute temp/deform with inconsistent " -compute_temp_deform.cpp: "Using compute temp/deform with no fix deform defined"); -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_deform.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_deform.cpp: // lamda = 0-1 triclinic lamda coords -compute_temp_deform.cpp: // vstream = streaming velocity = Hrate*lamda + Hratelo -compute_temp_deform.cpp: // vthermal = thermal velocity = v - vstream -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- -compute_temp_deform.cpp:------------------------------------------------------------------------- */ -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- -compute_temp_deform.cpp:------------------------------------------------------------------------- */ -compute_temp_deform.cpp: memory->create(vbiasall,maxbias,3,"temp/deform:vbiasall"); -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- -compute_temp_deform.cpp:------------------------------------------------------------------------- */ -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- -compute_temp_deform.cpp:------------------------------------------------------------------------- */ -compute_temp_deform.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- -compute_temp_partial.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_temp_partial.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_temp_partial.cpp:------------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_partial.cpp: if (narg != 6) error->all(FLERR,"Illegal compute temp/partial command"); -compute_temp_partial.cpp: error->all(FLERR,"Illegal compute temp/partial command"); -compute_temp_partial.cpp: error->all(FLERR,"Compute temp/partial cannot use vz for 2d systemx"); -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- -compute_temp_partial.cpp: DOF = nper/dim (dim*N - S), where dim = dimensionality = 2 or 3 -compute_temp_partial.cpp:------------------------------------------------------------------------- */ -compute_temp_partial.cpp: // distribute extra dofs evenly across active dimensions -compute_temp_partial.cpp: dof -= (1.0*nper/domain->dimension)*(fix_dof + extra_dof); -compute_temp_partial.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- -compute_temp_partial.cpp:------------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- -compute_temp_partial.cpp:------------------------------------------------------------------------- */ -compute_temp_partial.cpp: memory->create(vbiasall,maxbias,3,"temp/partial:vbiasall"); -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- -compute_temp_partial.cpp:------------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- -compute_temp_partial.cpp:------------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- -compute_temp_partial.cpp:------------------------------------------------------------------------- */ -compute_temp_partial.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- -compute_temp_profile.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_temp_profile.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_temp_profile.cpp:------------------------------------------------------------------------- */ -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_profile.cpp: if (narg < 7) error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: error->all(FLERR,"Compute temp/profile cannot use vz for 2d systemx"); -compute_temp_profile.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); -compute_temp_profile.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); -compute_temp_profile.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); -compute_temp_profile.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: error->all(FLERR,"Compute temp/profile cannot bin z for 2d systems"); -compute_temp_profile.cpp: } else error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: // optional keywords -compute_temp_profile.cpp: error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: else error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: } else error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: // setup -compute_temp_profile.cpp: if (nbins <= 0) error->all(FLERR,"Illegal compute temp/profile command"); -compute_temp_profile.cpp: memory->create(vbin,nbins,ncount,"temp/profile:vbin"); -compute_temp_profile.cpp: memory->create(binave,nbins,ncount,"temp/profile:binave"); -compute_temp_profile.cpp: memory->create(tbin,nbins,"temp/profile:tbin"); -compute_temp_profile.cpp: memory->create(tbinall,nbins,"temp/profile:tbinall"); -compute_temp_profile.cpp: memory->create(array,nbins,2,"temp/profile:array"); -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_profile.cpp: // ptrs to domain data -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_profile.cpp: // subtract additional d*Nbins DOF, as in Evans and Morriss paper -compute_temp_profile.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_profile.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- -compute_temp_profile.cpp:------------------------------------------------------------------------- */ -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- -compute_temp_profile.cpp:------------------------------------------------------------------------- */ -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- -compute_temp_profile.cpp:------------------------------------------------------------------------- */ -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- -compute_temp_profile.cpp:------------------------------------------------------------------------- */ -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- -compute_temp_profile.cpp:------------------------------------------------------------------------- */ -compute_temp_profile.cpp: // clear bins, including particle mass and count -compute_temp_profile.cpp: // sum each particle's mass-weighted velocity, mass, count to appropriate bin -compute_temp_profile.cpp: // sum bins across processors -compute_temp_profile.cpp: // compute ave COM velocity in each bin, checking for no particles -compute_temp_profile.cpp: binave[i][j] /= binave[i][nc2]; -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- -compute_temp_profile.cpp:------------------------------------------------------------------------- */ -compute_temp_profile.cpp: invdelta[0] = nbinx / prd[0]; -compute_temp_profile.cpp: invdelta[1] = nbiny / prd[1]; -compute_temp_profile.cpp: invdelta[2] = nbinz / prd[2]; -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- -compute_temp_profile.cpp:------------------------------------------------------------------------- */ -compute_temp_profile.cpp: // reallocate bin array if necessary -compute_temp_profile.cpp: memory->create(bin,maxatom,"temp/profile:bin"); -compute_temp_profile.cpp: // assign each atom to a bin, accounting for PBC -compute_temp_profile.cpp: // if triclinic, do this in lamda space -compute_temp_profile.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- -compute_temp_ramp.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_temp_ramp.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_temp_ramp.cpp:------------------------------------------------------------------------- */ -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_ramp.cpp: // parse optional args -compute_temp_ramp.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal compute temp/ramp command"); -compute_temp_ramp.cpp: else error->all(FLERR,"Illegal compute temp/ramp command"); -compute_temp_ramp.cpp: } else error->all(FLERR,"Illegal compute temp/ramp command"); -compute_temp_ramp.cpp: // setup scaling -compute_temp_ramp.cpp: // read standard args and apply scaling -compute_temp_ramp.cpp: else error->all(FLERR,"Illegal compute temp/ramp command"); -compute_temp_ramp.cpp: else error->all(FLERR,"Illegal compute temp/ramp command"); -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_ramp.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_ramp.cpp: fraction = (x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_ramp.cpp: fraction = (x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- -compute_temp_ramp.cpp:------------------------------------------------------------------------- */ -compute_temp_ramp.cpp: double fraction = (atom->x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- -compute_temp_ramp.cpp:------------------------------------------------------------------------- */ -compute_temp_ramp.cpp: memory->create(vbiasall,maxbias,3,"temp/ramp:vbiasall"); -compute_temp_ramp.cpp: fraction = (atom->x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- -compute_temp_ramp.cpp:------------------------------------------------------------------------- */ -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- -compute_temp_ramp.cpp:------------------------------------------------------------------------- */ -compute_temp_ramp.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_region.cpp:/* ---------------------------------------------------------------------- -compute_temp_region.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_temp_region.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_temp_region.cpp:------------------------------------------------------------------------- */ -compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_region.cpp: if (narg != 4) error->all(FLERR,"Illegal compute temp/region command"); -compute_temp_region.cpp: error->all(FLERR,"Region ID for compute temp/region does not exist"); -compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_region.cpp: // set index and check validity of region -compute_temp_region.cpp: error->all(FLERR,"Region ID for compute temp/region does not exist"); -compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_region.cpp: if (dof > 0) scalar = force->mvv2e * tarray_all[1] / (dof * force->boltz); -compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_region.cpp:/* ---------------------------------------------------------------------- -compute_temp_region.cpp:------------------------------------------------------------------------- */ -compute_temp_region.cpp:/* ---------------------------------------------------------------------- -compute_temp_region.cpp:------------------------------------------------------------------------- */ -compute_temp_region.cpp: memory->create(vbiasall,maxbias,3,"temp/region:vbiasall"); -compute_temp_region.cpp:/* ---------------------------------------------------------------------- -compute_temp_region.cpp:------------------------------------------------------------------------- */ -compute_temp_region.cpp:/* ---------------------------------------------------------------------- -compute_temp_region.cpp:------------------------------------------------------------------------- */ -compute_temp_region.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- -compute_temp_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_temp_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_temp_sphere.cpp:------------------------------------------------------------------------- */ -compute_temp_sphere.cpp:#define INERTIA 0.4 // moment of inertia prefactor for sphere -compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_sphere.cpp: if (narg < 3) error->all(FLERR,"Illegal compute temp/sphere command"); -compute_temp_sphere.cpp: error->all(FLERR,"Illegal compute temp/sphere command"); -compute_temp_sphere.cpp: error->all(FLERR,"Illegal compute temp/sphere command"); -compute_temp_sphere.cpp: else error->all(FLERR,"Illegal compute temp/sphere command"); -compute_temp_sphere.cpp: } else error->all(FLERR,"Illegal compute temp/sphere command"); -compute_temp_sphere.cpp: // when computing only the rotational temperature, -compute_temp_sphere.cpp: // do not remove DOFs for translation as set by default -compute_temp_sphere.cpp: // error checks -compute_temp_sphere.cpp: error->all(FLERR,"Compute temp/sphere requires atom style sphere"); -compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_sphere.cpp: if (strcmp(tbias->style,"temp/region") == 0) tempbias = 2; -compute_temp_sphere.cpp: // init and setup bias compute because -compute_temp_sphere.cpp: // this compute's setup()->dof_compute() may be called first -compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_sphere.cpp: // 6 or 3 dof for extended/point particles for 3d -compute_temp_sphere.cpp: // 3 or 2 dof for extended/point particles for 2d -compute_temp_sphere.cpp: // which dof are included also depends on mode -compute_temp_sphere.cpp: // assume full rotation of extended particles -compute_temp_sphere.cpp: // user should correct this via compute_modify if needed -compute_temp_sphere.cpp: // additional adjustments to dof -compute_temp_sphere.cpp: if (dof > 0) tfactor = force->mvv2e / (dof * force->boltz); -compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_sphere.cpp: // point particles will not contribute rotation due to radius = 0 -compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- */ -compute_temp_sphere.cpp: // point particles will not contribute rotation due to radius = 0 -compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- -compute_temp_sphere.cpp:------------------------------------------------------------------------- */ -compute_temp_sphere.cpp:/* ---------------------------------------------------------------------- -compute_temp_sphere.cpp:------------------------------------------------------------------------- */ -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- -compute_torque_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_torque_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_torque_chunk.cpp:------------------------------------------------------------------------- */ -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_torque_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute torque/chunk command"); -compute_torque_chunk.cpp: // ID of compute chunk/atom -compute_torque_chunk.cpp: // chunk-based data -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_torque_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for " -compute_torque_chunk.cpp: "compute torque/chunk"); -compute_torque_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_torque_chunk.cpp: error->all(FLERR,"Compute torque/chunk does not use chunk/atom compute"); -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_torque_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_torque_chunk.cpp: // extract ichunk index vector from compute -compute_torque_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_torque_chunk.cpp: // zero local per-chunk values -compute_torque_chunk.cpp: // compute COM for each chunk -compute_torque_chunk.cpp: comall[i][0] /= masstotal[i]; -compute_torque_chunk.cpp: comall[i][1] /= masstotal[i]; -compute_torque_chunk.cpp: comall[i][2] /= masstotal[i]; -compute_torque_chunk.cpp: // compute torque on each chunk -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- -compute_torque_chunk.cpp: lock methods: called by fix ave/time -compute_torque_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_torque_chunk.cpp: by passing lock info along to compute chunk/atom -compute_torque_chunk.cpp:------------------------------------------------------------------------- */ -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- -compute_torque_chunk.cpp:------------------------------------------------------------------------- */ -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- -compute_torque_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_torque_chunk.cpp:------------------------------------------------------------------------- */ -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- -compute_torque_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_torque_chunk.cpp:------------------------------------------------------------------------- */ -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- -compute_torque_chunk.cpp:------------------------------------------------------------------------- */ -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- -compute_torque_chunk.cpp:------------------------------------------------------------------------- */ -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- -compute_torque_chunk.cpp:------------------------------------------------------------------------- */ -compute_torque_chunk.cpp: memory->create(massproc,maxchunk,"torque/chunk:massproc"); -compute_torque_chunk.cpp: memory->create(masstotal,maxchunk,"torque/chunk:masstotal"); -compute_torque_chunk.cpp: memory->create(com,maxchunk,3,"torque/chunk:com"); -compute_torque_chunk.cpp: memory->create(comall,maxchunk,3,"torque/chunk:comall"); -compute_torque_chunk.cpp: memory->create(torque,maxchunk,3,"torque/chunk:torque"); -compute_torque_chunk.cpp: memory->create(torqueall,maxchunk,3,"torque/chunk:torqueall"); -compute_torque_chunk.cpp:/* ---------------------------------------------------------------------- -compute_torque_chunk.cpp:------------------------------------------------------------------------- */ -compute_vacf.cpp:/* ---------------------------------------------------------------------- -compute_vacf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_vacf.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_vacf.cpp:------------------------------------------------------------------------- */ -compute_vacf.cpp:/* ---------------------------------------------------------------------- */ -compute_vacf.cpp: // create a new fix STORE style -compute_vacf.cpp: // id = compute-ID + COMPUTE_STORE, fix group = compute group -compute_vacf.cpp: // store current velocities in fix store array -compute_vacf.cpp: // skip if reset from restart file -compute_vacf.cpp: // displacement vector -compute_vacf.cpp:/* ---------------------------------------------------------------------- */ -compute_vacf.cpp: // check nfix in case all fixes have already been deleted -compute_vacf.cpp:/* ---------------------------------------------------------------------- */ -compute_vacf.cpp: // set fix which stores original atom velocities -compute_vacf.cpp: // nvacf = # of atoms in group -compute_vacf.cpp:/* ---------------------------------------------------------------------- */ -compute_vacf.cpp: vector[0] /= nvacf; -compute_vacf.cpp: vector[1] /= nvacf; -compute_vacf.cpp: vector[2] /= nvacf; -compute_vacf.cpp: vector[3] /= nvacf; -compute_vacf.cpp:/* ---------------------------------------------------------------------- -compute_vacf.cpp:------------------------------------------------------------------------- */ -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- -compute_vcm_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -compute_vcm_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_vcm_chunk.cpp: if (narg != 4) error->all(FLERR,"Illegal compute vcm/chunk command"); -compute_vcm_chunk.cpp: // ID of compute chunk/atom -compute_vcm_chunk.cpp: // chunk-based data -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_vcm_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for compute vcm/chunk"); -compute_vcm_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -compute_vcm_chunk.cpp: error->all(FLERR,"Compute vcm/chunk does not use chunk/atom compute"); -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_vcm_chunk.cpp: // one-time calculation of per-chunk mass -compute_vcm_chunk.cpp: // done in setup, so that ComputeChunkAtom::setup() is already called -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- */ -compute_vcm_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -compute_vcm_chunk.cpp: // extract ichunk index vector from compute -compute_vcm_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -compute_vcm_chunk.cpp: // zero local per-chunk values -compute_vcm_chunk.cpp: // compute VCM for each chunk -compute_vcm_chunk.cpp: vcmall[i][0] /= masstotal[i]; -compute_vcm_chunk.cpp: vcmall[i][1] /= masstotal[i]; -compute_vcm_chunk.cpp: vcmall[i][2] /= masstotal[i]; -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- -compute_vcm_chunk.cpp: lock methods: called by fix ave/time -compute_vcm_chunk.cpp: these methods insure vector/array size is locked for Nfreq epoch -compute_vcm_chunk.cpp: by passing lock info along to compute chunk/atom -compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- -compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- -compute_vcm_chunk.cpp: decrement lock counter in compute chunk/atom, it if still exists -compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- -compute_vcm_chunk.cpp: calculate and return # of chunks = length of vector/array -compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- -compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- -compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- -compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ -compute_vcm_chunk.cpp: memory->create(massproc,maxchunk,"vcm/chunk:massproc"); -compute_vcm_chunk.cpp: memory->create(masstotal,maxchunk,"vcm/chunk:masstotal"); -compute_vcm_chunk.cpp: memory->create(vcm,maxchunk,3,"vcm/chunk:vcm"); -compute_vcm_chunk.cpp: memory->create(vcmall,maxchunk,3,"vcm/chunk:vcmall"); -compute_vcm_chunk.cpp:/* ---------------------------------------------------------------------- -compute_vcm_chunk.cpp:------------------------------------------------------------------------- */ -create_atoms.cpp:/* ---------------------------------------------------------------------- -create_atoms.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -create_atoms.cpp: http://lammps.sandia.gov, Sandia National Laboratories -create_atoms.cpp:------------------------------------------------------------------------- */ -create_atoms.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files -create_atoms.cpp:/* ---------------------------------------------------------------------- */ -create_atoms.cpp:/* ---------------------------------------------------------------------- */ -create_atoms.cpp: // parse arguments -create_atoms.cpp: // process optional keywords -create_atoms.cpp: // error checks -create_atoms.cpp: // error check and further setup for mode = MOLECULE -create_atoms.cpp: // create_atoms uses geoemetric center of molecule for insertion -create_atoms.cpp: // molecule random number generator, different for each proc -create_atoms.cpp: // error check and further setup for variable test -create_atoms.cpp: // demand non-none lattice be defined for BOX and REGION -create_atoms.cpp: // else setup scaling for SINGLE and RANDOM -create_atoms.cpp: // could use domain->lattice->lattice2box() to do conversion of -create_atoms.cpp: // lattice to box, but not consistent with other uses of units=lattice -create_atoms.cpp: // triclinic remapping occurs in add_single() -create_atoms.cpp: // set bounds for my proc in sublo[3] & subhi[3] -create_atoms.cpp: // if periodic and style = BOX or REGION, i.e. using lattice: -create_atoms.cpp: // should create exactly 1 atom when 2 images are both "on" the boundary -create_atoms.cpp: // either image may be slightly inside/outside true box due to round-off -create_atoms.cpp: // if I am lo proc, decrement lower bound by EPSILON -create_atoms.cpp: // this will insure lo image is created -create_atoms.cpp: // if I am hi proc, decrement upper bound by 2.0*EPSILON -create_atoms.cpp: // this will insure hi image is not created -create_atoms.cpp: // thus insertion box is EPSILON smaller than true box -create_atoms.cpp: // and is shifted away from true boundary -create_atoms.cpp: // which is where atoms are likely to be generated -create_atoms.cpp: // clear ghost count and any ghost bonus data internal to AtomVec -create_atoms.cpp: // same logic as beginning of Comm::exchange() -create_atoms.cpp: // do it now b/c creating atoms will overwrite ghost atoms -create_atoms.cpp: // add atoms/molecules in one of 3 ways -create_atoms.cpp: // init per-atom fix/compute/variable values for created atoms -create_atoms.cpp: // set new total # of atoms and error check -create_atoms.cpp: // add IDs for newly created atoms -create_atoms.cpp: // check that atom IDs are valid -create_atoms.cpp: // if global map exists, reset it -create_atoms.cpp: // invoke map_init() b/c atom count has grown -create_atoms.cpp: // for MOLECULE mode: -create_atoms.cpp: // molecule can mean just a mol ID or bonds/angles/etc or mol templates -create_atoms.cpp: // set molecule IDs for created atoms if atom->molecule_flag is set -create_atoms.cpp: // reset new molecule bond,angle,etc and special values if defined -create_atoms.cpp: // send atoms to new owning procs via irregular comm -create_atoms.cpp: // since not all atoms I created will be within my sub-domain -create_atoms.cpp: // perform special list build if needed -create_atoms.cpp: // molcreate = # of molecules I created -create_atoms.cpp: int molcreate = (atom->nlocal - nlocal_previous) / onemol->natoms; -create_atoms.cpp: // increment total bonds,angles,etc -create_atoms.cpp: // if atom style template -create_atoms.cpp: // maxmol = max molecule ID across all procs, for previous atoms -create_atoms.cpp: // moloffset = max molecule ID for all molecules owned by previous procs -create_atoms.cpp: // including molecules existing before this creation -create_atoms.cpp: // loop over molecules I created -create_atoms.cpp: // set their molecule ID -create_atoms.cpp: // reset their bond,angle,etc and special values -create_atoms.cpp: // perform irregular comm to migrate atoms to new owning procs -create_atoms.cpp: // clean up -create_atoms.cpp: // print status -create_atoms.cpp: // for MOLECULE mode: -create_atoms.cpp: // create special bond lists for molecular systems, -create_atoms.cpp: // but not for atom style template -create_atoms.cpp: // only if onemol added bonds but not special info -create_atoms.cpp:/* ---------------------------------------------------------------------- -create_atoms.cpp:------------------------------------------------------------------------- */ -create_atoms.cpp: // remap atom if requested -create_atoms.cpp: // if triclinic, convert to lamda coords (0-1) -create_atoms.cpp: // if atom/molecule is in my subbox, create it -create_atoms.cpp:/* ---------------------------------------------------------------------- -create_atoms.cpp:------------------------------------------------------------------------- */ -create_atoms.cpp: // random number generator, same for all procs -create_atoms.cpp: // bounding box for atom creation -create_atoms.cpp: // in real units, even if triclinic -create_atoms.cpp: // only limit bbox by region if its bboxflag is set (interior region) -create_atoms.cpp: // generate random positions for each new atom/molecule within bounding box -create_atoms.cpp: // iterate until atom is within region, variable, and triclinic simulation box -create_atoms.cpp: // if final atom position is in my subbox, create it -create_atoms.cpp: // if triclinic, coord is now in lamda units -create_atoms.cpp: // clean-up -create_atoms.cpp:/* ---------------------------------------------------------------------- -create_atoms.cpp:------------------------------------------------------------------------- */ -create_atoms.cpp: // convert 8 corners of my subdomain from box coords to lattice coords -create_atoms.cpp: // for orthogonal, use corner pts of my subbox -create_atoms.cpp: // for triclinic, use bounding box of my subbox -create_atoms.cpp: // xyz min to max = bounding box around the domain corners in lattice space -create_atoms.cpp: // ilo:ihi,jlo:jhi,klo:khi = loop bounds for lattice overlap of my subbox -create_atoms.cpp: // overlap = any part of a unit cell (face,edge,pt) in common with my subbox -create_atoms.cpp: // in lattice space, subbox is a tilted box -create_atoms.cpp: // but bbox of subbox is aligned with lattice axes -create_atoms.cpp: // so ilo:khi unit cells should completely tile bounding box -create_atoms.cpp: // decrement lo, increment hi to avoid round-off issues in lattice->bbox(), -create_atoms.cpp: // which can lead to missing atoms in rare cases -create_atoms.cpp: // extra decrement of lo if min < 0, since static_cast(-1.5) = -1 -create_atoms.cpp: // iterate on 3d periodic lattice of unit cells using loop bounds -create_atoms.cpp: // iterate on nbasis atoms in each unit cell -create_atoms.cpp: // convert lattice coords to box coords -create_atoms.cpp: // add atom or molecule (on each basis point) if it meets all criteria -create_atoms.cpp: // convert from lattice coords to box coords -create_atoms.cpp: // if a region was specified, test if atom is in it -create_atoms.cpp: // if variable test specified, eval variable -create_atoms.cpp: // test if atom/molecule position is in my subbox -create_atoms.cpp: // add the atom or entire molecule to my list of atoms -create_atoms.cpp:/* ---------------------------------------------------------------------- -create_atoms.cpp:------------------------------------------------------------------------- */ -create_atoms.cpp: // create atoms in molecule with atom ID = 0 and mol ID = 0 -create_atoms.cpp: // reset in caller after all molecules created by all procs -create_atoms.cpp: // pass add_molecule_atom an offset of 0 since don't know -create_atoms.cpp: // max tag of atoms in previous molecules at this point -create_atoms.cpp:/* ---------------------------------------------------------------------- -create_atoms.cpp:------------------------------------------------------------------------- */ -create_bonds.cpp:/* ---------------------------------------------------------------------- -create_bonds.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -create_bonds.cpp: http://lammps.sandia.gov, Sandia National Laboratories -create_bonds.cpp:------------------------------------------------------------------------- */ -create_bonds.cpp:/* ---------------------------------------------------------------------- */ -create_bonds.cpp:/* ---------------------------------------------------------------------- */ -create_bonds.cpp: // parse args -create_bonds.cpp: // store state before bond creation -create_bonds.cpp: // request a full neighbor list for use by this command -create_bonds.cpp: // init entire system since comm->borders and neighbor->build is done -create_bonds.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc -create_bonds.cpp: // error check on cutoff -create_bonds.cpp: // if no pair style, neighbor list will be empty -create_bonds.cpp: // require special_bonds 1-2 weights = 0.0 and KSpace = NULL -create_bonds.cpp: // so that already bonded atom pairs do not appear in neighbor list -create_bonds.cpp: // otherwise with newton_bond = 1, -create_bonds.cpp: // would be hard to check if I-J bond already existed -create_bonds.cpp: // note that with KSpace, pair with weight = 0 could still be in neigh list -create_bonds.cpp: // setup domain, communication and neighboring -create_bonds.cpp: // acquire ghosts and build standard neighbor lists -create_bonds.cpp: // build neighbor list this command needs based on earlier request -create_bonds.cpp: // loop over all neighs of each atom -create_bonds.cpp: // compute distance between two atoms consistently on both procs -create_bonds.cpp: // add bond if group and distance criteria are met -create_bonds.cpp: // check that bond list does not overflow -create_bonds.cpp: // only consider bond creation if I,J distance between 2 cutoffs -create_bonds.cpp: // compute rsq identically on both I,J loop iterations -create_bonds.cpp: // if I,J tags equal, do not bond atom to itself -create_bonds.cpp: // only consider bond creation if igroup and jgroup match I,J atoms -create_bonds.cpp: // create bond, check for overflow -create_bonds.cpp: // on I,J loop iterations, store with 1 or 2 atoms based on newton_bond -create_bonds.cpp: // recount bonds -create_bonds.cpp: if (!force->newton_bond) atom->nbonds /= 2; -create_bonds.cpp: // print new bond count -create_bonds.cpp: // re-trigger special list build -create_box.cpp:/* ---------------------------------------------------------------------- -create_box.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -create_box.cpp: http://lammps.sandia.gov, Sandia National Laboratories -create_box.cpp:------------------------------------------------------------------------- */ -create_box.cpp:/* ---------------------------------------------------------------------- */ -create_box.cpp:/* ---------------------------------------------------------------------- */ -create_box.cpp: // region check -create_box.cpp: // if region not prism: -create_box.cpp: // setup orthogonal domain -create_box.cpp: // set simulation domain from region extent -create_box.cpp: // if region is prism: -create_box.cpp: // seutp triclinic domain -create_box.cpp: // set simulation domain params from prism params -create_box.cpp: // if molecular, zero out topology info -create_box.cpp: // set atom and topology type quantities -create_box.cpp: // process optional args that can overwrite default settings -create_box.cpp: if (strcmp(arg[iarg],"bond/types") == 0) { -create_box.cpp: } else if (strcmp(arg[iarg],"angle/types") == 0) { -create_box.cpp: } else if (strcmp(arg[iarg],"dihedral/types") == 0) { -create_box.cpp: } else if (strcmp(arg[iarg],"improper/types") == 0) { -create_box.cpp: } else if (strcmp(arg[iarg],"extra/bond/per/atom") == 0) { -create_box.cpp: } else if (strcmp(arg[iarg],"extra/angle/per/atom") == 0) { -create_box.cpp: } else if (strcmp(arg[iarg],"extra/dihedral/per/atom") == 0) { -create_box.cpp: } else if (strcmp(arg[iarg],"extra/improper/per/atom") == 0) { -create_box.cpp: } else if (strcmp(arg[iarg],"extra/special/per/atom") == 0) { -create_box.cpp: // problem setup using info from header -create_box.cpp: // deallocate/grow insures any extra settings are used for topology arrays -create_box.cpp: // necessary in case no create_atoms is performed -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -delete_atoms.cpp: http://lammps.sandia.gov, Sandia National Laboratories -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_atoms.cpp:// allocate space for static class variable -delete_atoms.cpp:/* ---------------------------------------------------------------------- */ -delete_atoms.cpp:/* ---------------------------------------------------------------------- */ -delete_atoms.cpp: // store state before delete -delete_atoms.cpp: // flag atoms for deletion -delete_atoms.cpp: // if allflag = 1, just reset atom->nlocal -delete_atoms.cpp: // else delete atoms one by one -delete_atoms.cpp: // optionally delete additional bonds or atoms in molecules -delete_atoms.cpp: // delete local atoms flagged in dlist -delete_atoms.cpp: // reset nlocal -delete_atoms.cpp: // if non-molecular system and compress flag set, -delete_atoms.cpp: // reset atom tags to be contiguous -delete_atoms.cpp: // set all atom IDs to 0, call tag_extend() -delete_atoms.cpp: // reset atom->natoms and also topology counts -delete_atoms.cpp: // reset atom->map if it exists -delete_atoms.cpp: // set nghost to 0 so old ghosts of deleted atoms won't be mapped -delete_atoms.cpp: // print before and after atom and topology counts -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_atoms.cpp: // check for special case of group = all -delete_atoms.cpp: // allocate and initialize deletion list -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_atoms.cpp: // allocate and initialize deletion list -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_atoms.cpp: // read args -delete_atoms.cpp: // request a full neighbor list for use by this command -delete_atoms.cpp: // init entire system since comm->borders and neighbor->build is done -delete_atoms.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc -delete_atoms.cpp: // error check on cutoff -delete_atoms.cpp: // if no pair style, neighbor list will be empty -delete_atoms.cpp: // setup domain, communication and neighboring -delete_atoms.cpp: // acquire ghosts and build standard neighbor lists -delete_atoms.cpp: // build neighbor list this command needs based on earlier request -delete_atoms.cpp: // allocate and initialize deletion list -delete_atoms.cpp: // must be after exchange potentially changes nlocal -delete_atoms.cpp: // double loop over owned atoms and their full neighbor list -delete_atoms.cpp: // at end of loop, there are no more overlaps -delete_atoms.cpp: // only ever delete owned atom I in I loop iteration, never J even if owned -delete_atoms.cpp: // if both weighting factors are 0, skip this pair -delete_atoms.cpp: // could be 0 and still be in neigh list for long-range Coulombics -delete_atoms.cpp: // want consistency with non-charged pairs which wouldn't be in list -delete_atoms.cpp: // only consider deletion if I,J distance < cutoff -delete_atoms.cpp: // compute rsq identically on both I,J loop iterations -delete_atoms.cpp: // ignoring possibility that I,J tags are equal -delete_atoms.cpp: // only consider deletion if I,J are in groups 1,2 respectively -delete_atoms.cpp: // true whether J is owned or ghost atom -delete_atoms.cpp: // J is owned atom: -delete_atoms.cpp: // delete atom I if atom J has not already been deleted -delete_atoms.cpp: // J is ghost atom: -delete_atoms.cpp: // delete atom I if J,I is not a candidate deletion pair -delete_atoms.cpp: // due to being in groups 1,2 respectively -delete_atoms.cpp: // if they are candidate pair, then either: -delete_atoms.cpp: // another proc owns J and could delete J -delete_atoms.cpp: // J is a ghost of another of my owned atoms, and I could delete J -delete_atoms.cpp: // test on tags of I,J insures that only I or J is deleted -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_atoms.cpp: // allocate and initialize deletion list -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_atoms.cpp: // hash = for atom IDs being deleted by one processor -delete_atoms.cpp: // list of these IDs is sent around ring -delete_atoms.cpp: // at each stage of ring pass, hash is re-populated with received IDs -delete_atoms.cpp: // list = set of unique molecule IDs from which I deleted atoms -delete_atoms.cpp: // pass list to all other procs via comm->ring() -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_atoms.cpp: // hash = unique molecule IDs from which I deleted atoms -delete_atoms.cpp: // list = set of unique molecule IDs from which I deleted atoms -delete_atoms.cpp: // pass list to all other procs via comm->ring() -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_atoms.cpp: if (!force->newton_bond) atom->nbonds /= 2; -delete_atoms.cpp: if (!force->newton_bond) atom->nangles /= 3; -delete_atoms.cpp: if (!force->newton_bond) atom->ndihedrals /= 4; -delete_atoms.cpp: if (!force->newton_bond) atom->nimpropers /= 4; -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_atoms.cpp: // cbuf = list of N deleted atom IDs from other proc, put them in hash -delete_atoms.cpp: // loop over my atoms and their bond topology lists -delete_atoms.cpp: // if any atom in an interaction matches atom ID in hash, delete interaction -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_atoms.cpp: // cbuf = list of N molecule IDs from other proc, put them in hash -delete_atoms.cpp: // loop over my atoms, if matches molecule ID in hash, delete that atom -delete_atoms.cpp:/* ---------------------------------------------------------------------- -delete_atoms.cpp:------------------------------------------------------------------------- */ -delete_bonds.cpp:/* ---------------------------------------------------------------------- -delete_bonds.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -delete_bonds.cpp: http://lammps.sandia.gov, Sandia National Laboratories -delete_bonds.cpp:------------------------------------------------------------------------- */ -delete_bonds.cpp:/* ---------------------------------------------------------------------- */ -delete_bonds.cpp:/* ---------------------------------------------------------------------- */ -delete_bonds.cpp: // init entire system since comm->borders is done -delete_bonds.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc -delete_bonds.cpp: // identify group -delete_bonds.cpp: // set style and which = type value -delete_bonds.cpp: // setup list of types (atom,bond,etc) to consider -delete_bonds.cpp: // use force->bounds(FLERR,) to allow setting of range of types -delete_bonds.cpp: // range can be 0 to ntypes inclusive -delete_bonds.cpp: // grab optional keywords -delete_bonds.cpp: // border swap to insure type and mask is current for off-proc atoms -delete_bonds.cpp: // enforce PBC before in case atoms are outside box -delete_bonds.cpp: // set topology interactions either off or on -delete_bonds.cpp: // criteria for an interaction to potentially be changed (set flag = 1) -delete_bonds.cpp: // all atoms or any atom in interaction must be in group, based on any_flag -delete_bonds.cpp: // for style = MULTI, all bond/angle/dihedral/improper, no other criteria -delete_bonds.cpp: // for style = ATOM, same as MULTI, plus at least one atom is specified type -delete_bonds.cpp: // for style = BOND/ANGLE/DIHEDRAL/IMPROPER, interaction is specified type -delete_bonds.cpp: // for style = STATS only compute stats, flag is always 0 -delete_bonds.cpp: // if flag = 1 -delete_bonds.cpp: // set interaction type negative if undo_flag = 0 -delete_bonds.cpp: // set interaction type positive if undo_flag = 1 -delete_bonds.cpp: // induce turn off of angles, dihedral, impropers due to turned off bonds -delete_bonds.cpp: // induce turn off of dihedrals due to turned off angles -delete_bonds.cpp: // all atoms or any atom in interaction must be in group, based on any_flag -delete_bonds.cpp: // circulate list of turned off bonds around ring of procs -delete_bonds.cpp: // circulate list of turned off angles around ring of procs -delete_bonds.cpp: // remove interactions if requested -delete_bonds.cpp: // all atoms or any atom in interaction must be in group, based on any_flag -delete_bonds.cpp: // if interactions were removed, recompute global counts -delete_bonds.cpp: if (force->newton_bond == 0) atom->nbonds /= 2; -delete_bonds.cpp: if (force->newton_bond == 0) atom->nangles /= 3; -delete_bonds.cpp: if (force->newton_bond == 0) atom->ndihedrals /= 4; -delete_bonds.cpp: if (force->newton_bond == 0) atom->nimpropers /= 4; -delete_bonds.cpp: // compute and print stats -delete_bonds.cpp: bond_on /= 2; -delete_bonds.cpp: bond_off /= 2; -delete_bonds.cpp: angle_on /= 3; -delete_bonds.cpp: angle_off /= 3; -delete_bonds.cpp: dihedral_on /= 4; -delete_bonds.cpp: dihedral_off /= 4; -delete_bonds.cpp: improper_on /= 4; -delete_bonds.cpp: improper_off /= 4; -delete_bonds.cpp: // re-compute special list if requested -dihedral.cpp:/* ---------------------------------------------------------------------- -dihedral.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dihedral.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dihedral.cpp:------------------------------------------------------------------------- */ -dihedral.cpp:/* ---------------------------------------------------------------------- -dihedral.cpp:------------------------------------------------------------------------- */ -dihedral.cpp:/* ---------------------------------------------------------------------- */ -dihedral.cpp:/* ---------------------------------------------------------------------- -dihedral.cpp:------------------------------------------------------------------------- */ -dihedral.cpp:/* ---------------------------------------------------------------------- -dihedral.cpp:------------------------------------------------------------------------- */ -dihedral.cpp: eflag_atom = eflag / 2; -dihedral.cpp: vflag_atom = vflag / 4; -dihedral.cpp: // reallocate per-atom arrays if necessary -dihedral.cpp: // zero accumulators -dihedral.cpp:/* ---------------------------------------------------------------------- -dihedral.cpp:------------------------------------------------------------------------- */ -dihedral.cpp:/* ---------------------------------------------------------------------- */ -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- -dihedral_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dihedral_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dihedral_hybrid.cpp:------------------------------------------------------------------------- */ -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- */ -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- */ -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- */ -dihedral_hybrid.cpp: // save ptrs to original dihedrallist -dihedral_hybrid.cpp: // if this is re-neighbor step, create sub-style dihedrallists -dihedral_hybrid.cpp: // ndihedrallist[] = length of each sub-style list -dihedral_hybrid.cpp: // realloc sub-style dihedrallist if necessary -dihedral_hybrid.cpp: // load sub-style dihedrallist with 5 values from original dihedrallist -dihedral_hybrid.cpp: // call each sub-style's compute function -dihedral_hybrid.cpp: // set neighbor->dihedrallist to sub-style dihedrallist before call -dihedral_hybrid.cpp: // accumulate sub-style global/peratom energy/virial in hybrid -dihedral_hybrid.cpp: // restore ptrs to original dihedrallist -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- */ -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- -dihedral_hybrid.cpp:------------------------------------------------------------------------- */ -dihedral_hybrid.cpp: // delete old lists, since cannot just change settings -dihedral_hybrid.cpp: // count sub-styles by skipping numeric args -dihedral_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric word -dihedral_hybrid.cpp: // need a better way to skip these exceptions -dihedral_hybrid.cpp: // allocate list of sub-styles -dihedral_hybrid.cpp: // allocate each sub-style and call its settings() with subset of args -dihedral_hybrid.cpp: // allocate uses suffix, but don't store suffix version in keywords, -dihedral_hybrid.cpp: // else syntax in coeff() will not match -dihedral_hybrid.cpp: // define subset of args for a sub-style by skipping numeric args -dihedral_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric -dihedral_hybrid.cpp: // need a better way to skip these exceptions -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- -dihedral_hybrid.cpp:---------------------------------------------------------------------- */ -dihedral_hybrid.cpp: // 2nd arg = dihedral sub-style name -dihedral_hybrid.cpp: // allow for "none" or "skip" as valid sub-style name -dihedral_hybrid.cpp: // move 1st arg to 2nd arg -dihedral_hybrid.cpp: // just copy ptrs, since arg[] points into original input line -dihedral_hybrid.cpp: // invoke sub-style coeff() starting with 1st arg -dihedral_hybrid.cpp: // set setflag and which type maps to which sub-style -dihedral_hybrid.cpp: // if sub-style is skip: auxiliary class2 setting in data file so ignore -dihedral_hybrid.cpp: // if sub-style is none and not skip: set hybrid setflag, wipe out map -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- */ -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- -dihedral_hybrid.cpp:------------------------------------------------------------------------- */ -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- -dihedral_hybrid.cpp:------------------------------------------------------------------------- */ -dihedral_hybrid.cpp:/* ---------------------------------------------------------------------- -dihedral_hybrid.cpp:------------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- -dihedral_zero.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dihedral_zero.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dihedral_zero.cpp:------------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- -dihedral_zero.cpp:------------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- -dihedral_zero.cpp:------------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- -dihedral_zero.cpp:------------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- -dihedral_zero.cpp:------------------------------------------------------------------------- */ -dihedral_zero.cpp:/* ---------------------------------------------------------------------- -dihedral_zero.cpp:------------------------------------------------------------------------- */ -displace_atoms.cpp:/* ---------------------------------------------------------------------- -displace_atoms.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -displace_atoms.cpp: http://lammps.sandia.gov, Sandia National Laboratories -displace_atoms.cpp:------------------------------------------------------------------------- */ -displace_atoms.cpp:/* ---------------------------------------------------------------------- */ -displace_atoms.cpp:/* ---------------------------------------------------------------------- */ -displace_atoms.cpp:/* ---------------------------------------------------------------------- */ -displace_atoms.cpp: // group and style -displace_atoms.cpp: // set option defaults -displace_atoms.cpp: // read options from end of input line -displace_atoms.cpp: // setup scaling -displace_atoms.cpp: // move atoms by 3-vector or specified variable(s) -displace_atoms.cpp: // move atoms in ramped fashion -displace_atoms.cpp: fraction = (x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); -displace_atoms.cpp: // move atoms randomly -displace_atoms.cpp: // makes atom result independent of what proc owns it via random->reset() -displace_atoms.cpp: // rotate atoms by right-hand rule by theta around R -displace_atoms.cpp: // P = point = vector = point of rotation -displace_atoms.cpp: // R = vector = axis of rotation -displace_atoms.cpp: // R0 = runit = unit vector for R -displace_atoms.cpp: // D = X - P = vector from P to X -displace_atoms.cpp: // C = (D dot R0) R0 = projection of atom coord onto R line -displace_atoms.cpp: // A = D - C = vector from R line to X -displace_atoms.cpp: // B = R0 cross A = vector perp to A in plane of rotation -displace_atoms.cpp: // A,B define plane of circular rotation around R line -displace_atoms.cpp: // X = P + C + A cos(theta) + B sin(theta) -displace_atoms.cpp: runit[0] = axis[0]/len; -displace_atoms.cpp: runit[1] = axis[1]/len; -displace_atoms.cpp: runit[2] = axis[2]/len; -displace_atoms.cpp: double angle = MY_PI*theta/180.0; -displace_atoms.cpp: // flags for additional orientation info stored by some atom styles -displace_atoms.cpp: // AtomVec pointers to retrieve per-atom storage of extra quantities -displace_atoms.cpp: // theta for lines -displace_atoms.cpp: // quats for ellipsoids, tris, and bodies -displace_atoms.cpp: // move atoms back inside simulation box and to new processors -displace_atoms.cpp: // use remap() instead of pbc() in case atoms moved a long distance -displace_atoms.cpp: // use irregular() in case atoms moved a long distance -displace_atoms.cpp: // check if any atoms were lost -displace_atoms.cpp:/* ---------------------------------------------------------------------- -displace_atoms.cpp:------------------------------------------------------------------------- */ -displace_atoms.cpp:/* ---------------------------------------------------------------------- -displace_atoms.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -domain.cpp: http://lammps.sandia.gov, Sandia National Laboratories -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:enum{NO_REMAP,X_REMAP,V_REMAP}; // same as fix_deform.cpp -domain.cpp:enum{IGNORE,WARN,ERROR}; // same as thermo.cpp -domain.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- */ -domain.cpp: // set box_change flags if box size/shape/sub-domains ever change -domain.cpp: // due to shrink-wrapping or fixes that change box size/shape/sub-domains -domain.cpp: // check for fix deform -domain.cpp: // region inits -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: assumes boxlo/hi and triclinic tilts are already set -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp: // error checks for orthogonal and triclinic domains -domain.cpp: // error check or warning on triclinic tilt factors -domain.cpp: if ((fabs(xy/(boxhi[0]-boxlo[0])) > 0.5 && xperiodic) || -domain.cpp: (fabs(xz/(boxhi[0]-boxlo[0])) > 0.5 && xperiodic) || -domain.cpp: (fabs(yz/(boxhi[1]-boxlo[1])) > 0.5 && yperiodic)) { -domain.cpp: // set small based on box size and SMALL -domain.cpp: // this works for any unit system -domain.cpp: // if expandflag, adjust box lo/hi for shrink-wrapped dims -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: assumes boxlo/hi and triclinic tilts are already set -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp: h_inv[0] = 1.0/h[0]; -domain.cpp: h_inv[1] = 1.0/h[1]; -domain.cpp: h_inv[2] = 1.0/h[2]; -domain.cpp: h_inv[3] = -h[3] / (h[1]*h[2]); -domain.cpp: h_inv[4] = (h[3]*h[5] - h[1]*h[4]) / (h[0]*h[1]*h[2]); -domain.cpp: h_inv[5] = -h[5] / (h[0]*h[1]); -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: if shrink-wrapped, determine atom extent and reset boxlo/hi -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp: // perform shrink-wrapping -domain.cpp: // compute extent of atoms on this proc -domain.cpp: // for triclinic, this is done in lamda space -domain.cpp: // compute extent across all procs -domain.cpp: // flip sign of MIN to do it in one Allreduce MAX -domain.cpp: // for triclinic, convert back to box coords before changing box -domain.cpp: // in shrink-wrapped dims, set box by atom extent -domain.cpp: // if minimum set, enforce min box size settings -domain.cpp: // for triclinic, convert lamda extent to box coords, then set box lo/hi -domain.cpp: // decided NOT to do the next comment - don't want to sneakily change tilt -domain.cpp: // for triclinic, adjust tilt factors if 2nd dim is shrink-wrapped, -domain.cpp: // so that displacement in 1st dim stays the same -domain.cpp: //xy *= (boxhi[1]-boxlo[1]) / yprd; -domain.cpp: //xz *= (boxhi[2]-boxlo[2]) / xprd; -domain.cpp: //yz *= (boxhi[2]-boxlo[2]) / yprd; -domain.cpp: // reset box whether shrink-wrapping or not -domain.cpp: // if shrink-wrapped & kspace is defined (i.e. using MSM), call setup() -domain.cpp: // also call init() (to test for compatibility) ? -domain.cpp: //force->kspace->init(); -domain.cpp: // if shrink-wrapped & triclinic, re-convert to lamda coords for new box -domain.cpp: // re-invoke pbc() b/c x2lamda result can be outside [0,1] due to roundoff -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: increment/decrement in wrap-around fashion -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp: // verify owned atoms have valid numerical coords -domain.cpp: // may not if computed pairwise force between 2 atoms at same location -domain.cpp: coord = &x[0][0]; // note: x is always initialized to at least one element. -domain.cpp: // setup for PBC checks -domain.cpp: // apply PBC to each owned atom -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp: // only need to check if system is molecular and some dimension is periodic -domain.cpp: // if running verlet/split, don't check on KSpace partition since -domain.cpp: // it has no ghost atoms and thus bond partners won't exist -domain.cpp: if (strncmp(update->integrate_style,"verlet/split",12) == 0 && -domain.cpp: // communicate unwrapped position of owned atoms to ghost atoms -domain.cpp: // compute unwrapped extent of each bond -domain.cpp: // flag if any bond component is longer than 1/2 of periodic box length -domain.cpp: // flag if any bond component is longer than non-periodic box length -domain.cpp: // which means image flags in that dimension were different -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp: // only need to check if system is molecular and some dimension is periodic -domain.cpp: // if running verlet/split, don't check on KSpace partition since -domain.cpp: // it has no ghost atoms and thus bond partners won't exist -domain.cpp: if (strncmp(update->integrate_style,"verlet/split",12) == 0 && -domain.cpp: // maxbondall = longest current bond length -domain.cpp: // if periodic box dim is tiny (less than 2 * bond-length), -domain.cpp: // minimum_image() itself may compute bad bond lengths -domain.cpp: // in this case, image_check() should warn, -domain.cpp: // assuming 2 atoms have consistent image flags -domain.cpp: // maxdelta = furthest apart 2 atoms in a bonded interaction can be -domain.cpp: // include BONDSTRETCH factor to account for dynamics -domain.cpp: // warn if maxdelta > than half any periodic box length -domain.cpp: // since atoms in the interaction could rotate into that dimension -domain.cpp: "Bond/angle/dihedral extent > half of periodic box length"); -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: use 1/2 of box size as test -domain.cpp: for triclinic, also add/subtract tilt factors in other dims as needed -domain.cpp: b/c while could iterate forever -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: use 1/2 of box size as test -domain.cpp: for triclinic, also add/subtract tilt factors in other dims as needed -domain.cpp: b/c while could iterate forever -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: use 1/2 of box size as test -domain.cpp: for triclinic, also add/subtract tilt factors in other dims as needed -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: for triclinic, add/subtract tilt factors in other dims as needed -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: increment/decrement in wrap-around fashion -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp: // iterative form -domain.cpp: // if (xperiodic) { -domain.cpp: // while (coordnew[0]-coordold[0] > half[0]) coordnew[0] -= period[0]; -domain.cpp: // while (coordold[0]-coordnew[0] > half[0]) coordnew[0] += period[0]; -domain.cpp: // } -domain.cpp: n = static_cast ((coordnew[0]-coordold[0])/period[0]); -domain.cpp: n = static_cast ((coordold[0]-coordnew[0])/period[0]); -domain.cpp: n = static_cast ((coordnew[1]-coordold[1])/period[1]); -domain.cpp: n = static_cast ((coordold[1]-coordnew[1])/period[1]); -domain.cpp: n = static_cast ((coordnew[2]-coordold[2])/period[2]); -domain.cpp: n = static_cast ((coordold[2]-coordnew[2])/period[2]); -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: C' = C + pB + nA (C shifted by B and/or A) -domain.cpp: so that x_unwrap for each atom is same before/after -domain.cpp: this is b/c the xy flip dramatically changes which tiled image of -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp: // box and subbox bounds for orthogonal vs triclinic -domain.cpp: // check if atom did not return 1 only b/c it was -domain.cpp: // outside a shrink-wrapped boundary -domain.cpp: // newcoord = coords pushed back to be on shrink-wrapped boundary -domain.cpp: // newcoord is a copy, so caller's x[] is not affected -domain.cpp: // re-test for newcoord inside my sub-domain -domain.cpp: // use <= test for upper-boundary since may have just put atom at boxhi -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp: // extend Region list if necessary -domain.cpp: // create the Region -domain.cpp: sprintf(estyle,"%s/%s",arg[1],lmp->suffix); -domain.cpp: sprintf(estyle,"%s/%s",arg[1],lmp->suffix2); -domain.cpp: // initialize any region variables via init() -domain.cpp: // in case region is used between runs, e.g. to print a variable -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: convert 8 lamda corner pts of lo/hi box to box coords -domain.cpp: return bboxlo/hi = bounding box around 8 corner pts in box coords -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp:------------------------------------------------------------------------- */ -domain.cpp:/* ---------------------------------------------------------------------- -domain.cpp: compute 8 corner pts of any triclinic box with lo/hi in lamda coords -domain.cpp:------------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- -dump_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dump_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dump_atom.cpp:------------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp: // format = copy of default or user-specified line format -dump_atom.cpp: // default depends on image flags -dump_atom.cpp: // setup boundary string -dump_atom.cpp: // setup column string -dump_atom.cpp: // setup function ptrs -dump_atom.cpp: // open single file, one time only -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp: double invxprd = 1.0/domain->xprd; -dump_atom.cpp: double invyprd = 1.0/domain->yprd; -dump_atom.cpp: double invzprd = 1.0/domain->zprd; -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp: double invxprd = 1.0/domain->xprd; -dump_atom.cpp: double invyprd = 1.0/domain->yprd; -dump_atom.cpp: double invzprd = 1.0/domain->zprd; -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- -dump_atom.cpp:------------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_atom.cpp:/* ---------------------------------------------------------------------- */ -dump_cfg.cpp:/* ---------------------------------------------------------------------- -dump_cfg.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dump_cfg.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dump_cfg.cpp:------------------------------------------------------------------------- */ -dump_cfg.cpp:/* ---------------------------------------------------------------------- -dump_cfg.cpp:------------------------------------------------------------------------- */ -dump_cfg.cpp:enum{INT,DOUBLE,STRING,BIGINT}; // same as in DumpCustom -dump_cfg.cpp:/* ---------------------------------------------------------------------- */ -dump_cfg.cpp: // use earg instead of original arg since it includes expanded wildcards -dump_cfg.cpp: // earg was created by parent DumpCustom -dump_cfg.cpp: // setup auxiliary property name strings -dump_cfg.cpp: // convert 'X_ID[m]' (X=c,f,v) to 'X_ID_m' -dump_cfg.cpp:/* ---------------------------------------------------------------------- */ -dump_cfg.cpp:/* ---------------------------------------------------------------------- */ -dump_cfg.cpp: // setup function ptrs -dump_cfg.cpp:/* ---------------------------------------------------------------------- */ -dump_cfg.cpp: // set scale factor used by AtomEye for CFG viz -dump_cfg.cpp: // default = 1.0 -dump_cfg.cpp: // for peridynamics, set to pre-computed PD scale factor -dump_cfg.cpp: // so PD particles mimic C atoms -dump_cfg.cpp: // for unwrapped coords, set to UNWRAPEXPAND (10.0) -dump_cfg.cpp: // so molecules are not split across periodic box boundaries -dump_cfg.cpp:/* ---------------------------------------------------------------------- -dump_cfg.cpp:------------------------------------------------------------------------- */ -dump_cfg.cpp: unwrap_coord = (mybuf[m] - 0.5)/UNWRAPEXPAND + 0.5; -dump_cfg.cpp:/* ---------------------------------------------------------------------- */ -dump_cfg.cpp:/* ---------------------------------------------------------------------- */ -dump_cfg.cpp:/* ---------------------------------------------------------------------- */ -dump_cfg.cpp: unwrap_coord = (mybuf[m] - 0.5)/UNWRAPEXPAND + 0.5; -dump.cpp:/* ---------------------------------------------------------------------- -dump.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dump.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dump.cpp:------------------------------------------------------------------------- */ -dump.cpp:// allocate space for static class variable -dump.cpp:/* ---------------------------------------------------------------------- */ -dump.cpp: // parse filename for special syntax -dump.cpp: // if contains '%', write one file per proc and replace % with proc-ID -dump.cpp: // if contains '*', write one file per timestep and replace * with timestep -dump.cpp: // check file suffixes -dump.cpp: // if ends in .bin = binary file -dump.cpp: // else if ends in .gz = gzipped text file -dump.cpp: // else ASCII text file -dump.cpp:/* ---------------------------------------------------------------------- */ -dump.cpp: // format_column_user is deallocated by child classes that use it -dump.cpp: // XTC style sets fp to NULL since it closes file in its destructor -dump.cpp:/* ---------------------------------------------------------------------- */ -dump.cpp: // set reorderflag = 1 if can simply reorder local atoms rather than sort -dump.cpp: // criteria: sorting by ID, atom IDs are consecutive from 1 to Natoms -dump.cpp: // min/max IDs of group match size of group -dump.cpp: // compute ntotal_reorder, nme_reorder, idlo/idhi to test against later -dump.cpp: idlo = static_cast (range*me/nprocs + minall); -dump.cpp: tagint idhi = static_cast (range*(me+1)/nprocs + minall); -dump.cpp: tagint lom1 = static_cast ((idlo-1-minall)/range * nprocs); -dump.cpp: tagint lo = static_cast ((idlo-minall)/range * nprocs); -dump.cpp: tagint him1 = static_cast ((idhi-1-minall)/range * nprocs); -dump.cpp: tagint hi = static_cast ((idhi-minall)/range * nprocs); -dump.cpp: // preallocation for PBC copies if requested -dump.cpp:/* ---------------------------------------------------------------------- */ -dump.cpp:/* ---------------------------------------------------------------------- */ -dump.cpp: // if file per timestep, open new file -dump.cpp: // simulation box bounds -dump.cpp: // nme = # of dump lines this proc contributes to dump -dump.cpp: // ntotal = total # of dump lines in snapshot -dump.cpp: // nmax = max # of dump lines on any proc -dump.cpp: // write timestep header -dump.cpp: // for multiproc, -dump.cpp: // nheader = # of lines in this file via Allreduce on clustercomm -dump.cpp: // insure buf is sized for packing and communicating -dump.cpp: // use nmax to insure filewriter proc can receive info from others -dump.cpp: // limit nmax*size_one to int since used as arg in MPI calls -dump.cpp: // insure ids buffer is sized for sorting -dump.cpp: // apply PBC on copy of x,v,image if requested -dump.cpp: // pack my data into buf -dump.cpp: // if sorting on IDs also request ID list from pack() -dump.cpp: // sort buf as needed -dump.cpp: // if buffering, convert doubles into strings -dump.cpp: // insure sbuf is sized for communicating -dump.cpp: // cannot buffer if output is to binary file -dump.cpp: // filewriter = 1 = this proc writes to file -dump.cpp: // ping each proc in my cluster, receive its data, write data to file -dump.cpp: // else wait for ping from fileproc, send my data to fileproc -dump.cpp: // comm and output buf of doubles -dump.cpp: nlines /= size_one; -dump.cpp: // comm and output sbuf = one big string of formatted values per proc -dump.cpp: // restore original x,v,image unaltered by PBC -dump.cpp: // if file per timestep, close file if I am filewriter -dump.cpp:/* ---------------------------------------------------------------------- -dump.cpp:------------------------------------------------------------------------- */ -dump.cpp: // single file, already opened, so just return -dump.cpp: // if one file per timestep, replace '*' with current timestep -dump.cpp: // each proc with filewriter = 1 opens a file -dump.cpp: // delete string with timestep replaced -dump.cpp:/* ---------------------------------------------------------------------- -dump.cpp:------------------------------------------------------------------------- */ -dump.cpp: // if single proc, swap ptrs to buf,ids <-> bufsort,idsort -dump.cpp: // if multiple procs, exchange datums between procs via irregular -dump.cpp: // grow proclist if necessary -dump.cpp: // proclist[i] = which proc Ith datum will be sent to -dump.cpp: // use 0.5 instead of EPSILON since atom IDs are integers -dump.cpp: // if use EPSILON, it can be lost if 64-bit maxall-minall is too big -dump.cpp: // then iproc == nprocs for largest ID, causing irregular to crash -dump.cpp: iproc = static_cast ((ids[i]-minall)/range * nprocs); -dump.cpp: // proc assignment is inverted if sortorder = DESCEND -dump.cpp: iproc = static_cast ((value-minall)/range * nprocs); -dump.cpp: // create comm plan, grow recv bufs if necessary, -dump.cpp: // exchange datums, destroy plan -dump.cpp: // if sorting on atom IDs, exchange IDs also -dump.cpp: // if reorder flag is set & total/per-proc counts match pre-computed values, -dump.cpp: // then create index directly from idsort -dump.cpp: // else quicksort of index using IDs or buf column as comparator -dump.cpp: // reset buf size and maxbuf to largest of any post-sort nme values -dump.cpp: // this insures proc 0 can receive everyone's info -dump.cpp: // copy data from bufsort to buf using index -dump.cpp:/* ---------------------------------------------------------------------- -dump.cpp:------------------------------------------------------------------------- */ -dump.cpp:/* ---------------------------------------------------------------------- -dump.cpp:------------------------------------------------------------------------- */ -dump.cpp:/* ---------------------------------------------------------------------- -dump.cpp:------------------------------------------------------------------------- */ -dump.cpp:/* ---------------------------------------------------------------------- -dump.cpp:------------------------------------------------------------------------- */ -dump.cpp: multiproc = nprocs/nper; -dump.cpp: fileproc = me/nper * nper; -dump.cpp: int icluster = fileproc/nper; -dump.cpp: // pass format none to child classes which may use it -dump.cpp: // not an error if they don't -dump.cpp: } else { // pass other format options to child classes -dump.cpp: int icluster = static_cast ((bigint) me * nfile/nprocs); -dump.cpp: fileproc = static_cast ((bigint) icluster * nprocs/nfile); -dump.cpp: int fcluster = static_cast ((bigint) fileproc * nfile/nprocs); -dump.cpp: static_cast ((bigint) (icluster+1) * nprocs/nfile); -dump.cpp: fcluster = static_cast ((bigint) fileprocnext * nfile/nprocs); -dump.cpp:/* ---------------------------------------------------------------------- -dump.cpp:------------------------------------------------------------------------- */ -dump.cpp:/* ---------------------------------------------------------------------- -dump.cpp:------------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- -dump_custom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dump_custom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dump_custom.cpp:------------------------------------------------------------------------- */ -dump_custom.cpp:// customize by adding keyword -dump_custom.cpp:// also customize compute_atom_property.cpp -dump_custom.cpp:enum{INT,DOUBLE,STRING,BIGINT}; // same as in DumpCFG -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: // expand args if any have wildcard character "*" -dump_custom.cpp: // ok to include trailing optional args, -dump_custom.cpp: // so long as they do not have "*" between square brackets -dump_custom.cpp: // nfield may be shrunk below if extra optional args exist -dump_custom.cpp: // allocate field vectors -dump_custom.cpp: // computes, fixes, variables which the dump accesses -dump_custom.cpp: // process attributes -dump_custom.cpp: // ioptional = start of additional optional args in expanded args -dump_custom.cpp: // noptional = # of optional args -dump_custom.cpp: // reset nfield to subtract off optional args -dump_custom.cpp: // reset ioptional to what it would be in original arg list -dump_custom.cpp: // only dump image and dump movie styles process optional args, -dump_custom.cpp: // they do not use expanded earg list -dump_custom.cpp: // atom selection arrays -dump_custom.cpp: // default element name for all types = C -dump_custom.cpp: // setup format strings -dump_custom.cpp: // setup column string -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: // if wildcard expansion occurred, free earg memory from expand_args() -dump_custom.cpp: // could not do in constructor, b/c some derived classes process earg -dump_custom.cpp: // check nfix in case all fixes have already been deleted -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: // format = copy of default or user-specified line format -dump_custom.cpp: // tokenize the format string and add space at end of each format element -dump_custom.cpp: // if user-specified int/float format exists, use it instead -dump_custom.cpp: // if user-specified column format exists, use it instead -dump_custom.cpp: // lo priority = line, medium priority = int/float, hi priority = column -dump_custom.cpp: // setup boundary string -dump_custom.cpp: // setup function ptrs -dump_custom.cpp: // find current ptr for each compute,fix,variable -dump_custom.cpp: // check that fix frequency is acceptable -dump_custom.cpp: // set index and check validity of region -dump_custom.cpp: // open single file, one time only -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: // grow choose and variable vbuf arrays if needed -dump_custom.cpp: // invoke Computes for per-atom quantities -dump_custom.cpp: // only if within a run or minimize -dump_custom.cpp: // else require that computes are current -dump_custom.cpp: // this prevents a compute from being invoked by the WriteDump class -dump_custom.cpp: // evaluate atom-style Variables for per-atom quantities -dump_custom.cpp: // choose all local atoms for output -dump_custom.cpp: // un-choose if not in group -dump_custom.cpp: // un-choose if not in region -dump_custom.cpp: // un-choose if any threshold criterion isn't met -dump_custom.cpp: // customize by adding to if statement -dump_custom.cpp: double invxprd = 1.0/domain->xprd; -dump_custom.cpp: double invyprd = 1.0/domain->yprd; -dump_custom.cpp: double invzprd = 1.0/domain->zprd; -dump_custom.cpp: double invxprd = 1.0/domain->xprd; -dump_custom.cpp: double invyprd = 1.0/domain->yprd; -dump_custom.cpp: double invzprd = 1.0/domain->zprd; -dump_custom.cpp: } else if (thresh_array[ithresh] == MUMAG) {//Magnetic properties -dump_custom.cpp: // unselect atoms that don't meet threshold criterion -dump_custom.cpp: // compare to single value or values stored in threshfix -dump_custom.cpp: // copy ptr attribute into thresh_fix if this is first comparison -dump_custom.cpp: // update values stored in threshfix -dump_custom.cpp: // compress choose flags into clist -dump_custom.cpp: // nchoose = # of selected atoms -dump_custom.cpp: // clist[i] = local index of each selected atom -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- -dump_custom.cpp:------------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: // customize by adding to if statement -dump_custom.cpp: } else if (strcmp(arg[iarg],"mumag") == 0) {//Magnetic properties -dump_custom.cpp: // compute value = c_ID -dump_custom.cpp: // if no trailing [], then arg is set to 0, else arg is int between [] -dump_custom.cpp: // fix value = f_ID -dump_custom.cpp: // if no trailing [], then arg is set to 0, else arg is between [] -dump_custom.cpp: // variable value = v_name -dump_custom.cpp: // custom per-atom floating point value = d_ID -dump_custom.cpp: // custom per-atom integer value = i_ID -dump_custom.cpp:/* ---------------------------------------------------------------------- -dump_custom.cpp:------------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- -dump_custom.cpp:------------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- -dump_custom.cpp:------------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- -dump_custom.cpp:------------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: // just clear format_column_user allocated by this dump child class -dump_custom.cpp: // replace "d" in format_int_user with bigint format specifier -dump_custom.cpp: // use of &str[1] removes leading '%' from BIGINT_FORMAT string -dump_custom.cpp: // grow threshold arrays -dump_custom.cpp: // set attribute type of threshold -dump_custom.cpp: // customize by adding to if statement -dump_custom.cpp: //Magnetic quantities -dump_custom.cpp: // compute value = c_ID -dump_custom.cpp: // if no trailing [], then arg is set to 0, else arg is between [] -dump_custom.cpp: // must grow field2index and argindex arrays, since access is beyond nfield -dump_custom.cpp: // fix value = f_ID -dump_custom.cpp: // if no trailing [], then arg is set to 0, else arg is between [] -dump_custom.cpp: // must grow field2index and argindex arrays, since access is beyond nfield -dump_custom.cpp: // variable value = v_ID -dump_custom.cpp: // must grow field2index and argindex arrays, since access is beyond nfield -dump_custom.cpp: // custom per atom floating point value = d_ID -dump_custom.cpp: // must grow field2index and argindex arrays, since access is beyond nfield -dump_custom.cpp: // custom per atom integer value = i_ID -dump_custom.cpp: // must grow field2index and argindex arrays, since access is beyond nfield -dump_custom.cpp: // set operation type of threshold -dump_custom.cpp: // set threshold value as number or special LAST keyword -dump_custom.cpp: // create FixStore to hold LAST values, should work with restart -dump_custom.cpp: // id = dump-ID + nthreshlast + DUMP_STORE, fix group = dump group -dump_custom.cpp:/* ---------------------------------------------------------------------- -dump_custom.cpp:------------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- -dump_custom.cpp:------------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: if (flag_custom[index] == 0) { // integer -dump_custom.cpp: } else if (flag_custom[index] == 1) { // double -dump_custom.cpp:/* ---------------------------------------------------------------------- -dump_custom.cpp:------------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: double invxprd = 1.0/domain->xprd; -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: double invyprd = 1.0/domain->yprd; -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: double invzprd = 1.0/domain->zprd; -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: double invxprd = 1.0/domain->xprd; -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: double invyprd = 1.0/domain->yprd; -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp: double invzprd = 1.0/domain->zprd; -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp://Magnetic quantities -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_custom.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp:/* ---------------------------------------------------------------------- -dump_dcd.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dump_dcd.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dump_dcd.cpp:------------------------------------------------------------------------- */ -dump_dcd.cpp:/* ---------------------------------------------------------------------- -dump_dcd.cpp:------------------------------------------------------------------------- */ -dump_dcd.cpp:// necessary to set SEEK params b/c MPI-2 messes with these settings -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp: // allocate global array for atom coords -dump_dcd.cpp: if (n > static_cast(MAXSMALLINT/3/sizeof(float))) -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp: // check that dump frequency has not changed and is not a variable -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp: // first time, write header for entire file -dump_dcd.cpp: // dim[] = size and angle cosines of orthogonal or triclinic box -dump_dcd.cpp: // dim[0] = a = length of unit cell vector along x-axis -dump_dcd.cpp: // dim[1] = gamma = cosine of angle between a and b -dump_dcd.cpp: // dim[2] = b = length of unit cell vector in xy-plane -dump_dcd.cpp: // dim[3] = beta = cosine of angle between a and c -dump_dcd.cpp: // dim[4] = alpha = cosine of angle between b and c -dump_dcd.cpp: // dim[5] = c = length of final unit cell vector -dump_dcd.cpp: // 48 = 6 doubles -dump_dcd.cpp: dim[4] = (h[5]*h[4] + h[1]*h[3]) / blen/clen; // alpha -dump_dcd.cpp: dim[3] = (h[0]*h[4]) / alen/clen; // beta -dump_dcd.cpp: dim[1] = (h[0]*h[5]) / alen/blen; // gamma -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp: // copy buf atom coords into 3 global arrays -dump_dcd.cpp: // if last chunk of atoms in this snapshot, write global arrays to file -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp:/* ---------------------------------------------------------------------- -dump_dcd.cpp:------------------------------------------------------------------------- */ -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp: // write coords -dump_dcd.cpp: // update NFILE and NSTEP fields in DCD header -dump_dcd.cpp:/* ---------------------------------------------------------------------- */ -dump_dcd.cpp: fwrite_int32(fp,0); // NFILE = # of snapshots in file -dump_dcd.cpp: fwrite_int32(fp,ntimestep); // START = timestep of first snapshot -dump_dcd.cpp: fwrite_int32(fp,nevery_save); // SKIP = interval between snapshots -dump_dcd.cpp: fwrite_int32(fp,ntimestep); // NSTEP = timestep of last snapshot -dump_dcd.cpp: fwrite_int32(fp,0); // NAMD writes NSTEP or ISTART -dump_dcd.cpp: fwrite_int32(fp,24); // pretend to be Charmm version 24 -dump_dcd.cpp: fwrite_int32(fp,natoms); // number of atoms in each snapshot -dump_image.cpp:/* ---------------------------------------------------------------------- -dump_image.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dump_image.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dump_image.cpp:------------------------------------------------------------------------- */ -dump_image.cpp:enum{SPHERE,LINE,TRI}; // also in some Body and Fix child classes -dump_image.cpp:/* ---------------------------------------------------------------------- */ -dump_image.cpp: // force binary flag on to avoid corrupted output on Windows -dump_image.cpp: // set filetype based on filename suffix -dump_image.cpp: // atom color,diameter settings -dump_image.cpp: // create Image class with single colormap for atoms -dump_image.cpp: // change defaults for 2d -dump_image.cpp: // set defaults for optional args -dump_image.cpp: // parse optional args -dump_image.cpp: theta *= MY_PI/180.0; -dump_image.cpp: phi *= MY_PI/180.0; -dump_image.cpp: // error checks and setup for lineflag, triflag, bodyflag, fixflag -dump_image.cpp: // allocate image buffer now that image size is known -dump_image.cpp: // communication neede for bonds colored by atoms -dump_image.cpp: // additional defaults for dump_modify options -dump_image.cpp: // viewflag = DYNAMIC if any view parameter is dynamic -dump_image.cpp: // local data -dump_image.cpp:/* ---------------------------------------------------------------------- */ -dump_image.cpp:/* ---------------------------------------------------------------------- */ -dump_image.cpp: // check variables -dump_image.cpp: // set up type -> element mapping -dump_image.cpp:/* ---------------------------------------------------------------------- */ -dump_image.cpp: // open new file -dump_image.cpp: // reset box center and view parameters if dynamic -dump_image.cpp: // nme = # of atoms this proc will contribute to dump -dump_image.cpp: // pack buf with color & diameter -dump_image.cpp: // set minmax color range if using dynamic atom color map -dump_image.cpp: if (flag) error->all(FLERR,"Invalid color map min/max values"); -dump_image.cpp: // create image on each proc, then merge them -dump_image.cpp: // write image file -dump_image.cpp:/* ---------------------------------------------------------------------- -dump_image.cpp:------------------------------------------------------------------------- */ -dump_image.cpp:/* ---------------------------------------------------------------------- -dump_image.cpp:------------------------------------------------------------------------- */ -dump_image.cpp:/* ---------------------------------------------------------------------- -dump_image.cpp:------------------------------------------------------------------------- */ -dump_image.cpp: // view direction theta and phi -dump_image.cpp: theta *= MY_PI/180.0; -dump_image.cpp: phi *= MY_PI/180.0; -dump_image.cpp: // up vector -dump_image.cpp: // zoom and perspective -dump_image.cpp: // remainder of view setup is internal to Image class -dump_image.cpp:/* ---------------------------------------------------------------------- -dump_image.cpp:------------------------------------------------------------------------- */ -dump_image.cpp: // render my atoms -dump_image.cpp: // do not draw if line,tri,body keywords enabled and atom is one of those -dump_image.cpp: // render atoms that are lines -dump_image.cpp: // render atoms that are triangles -dump_image.cpp: // tstyle = 1 for tri only, 2 for edges only, 3 for both -dump_image.cpp: // render atoms that are bodies -dump_image.cpp: // render bonds for my atoms -dump_image.cpp: // both atoms in bond must be selected for bond to be rendered -dump_image.cpp: // if newton_bond is off, only render bond once -dump_image.cpp: // render bond in 2 pieces if crosses periodic boundary -dump_image.cpp: // if bond is deleted (type = 0), do not render -dump_image.cpp: // if bond is turned off (type < 0), still render -dump_image.cpp: // communicate choose flag for ghost atoms to know if they are selected -dump_image.cpp: // if bcolor/bdiam = ATOM, setup bufcopy to comm atom color/diam attributes -dump_image.cpp: // draw cylinder in 2 pieces if bcolor = ATOM -dump_image.cpp: // or bond crosses periodic boundary -dump_image.cpp: // render objects provided by a fix -dump_image.cpp: // no fix draws spheres yet -dump_image.cpp: // render outline of my sub-box, orthogonal or triclinic -dump_image.cpp: // render outline of simulation box, orthogonal or triclinic -dump_image.cpp: // render XYZ axes in red/green/blue -dump_image.cpp: // offset by 10% of box size and scale by axeslen -dump_image.cpp:/* ---------------------------------------------------------------------- */ -dump_image.cpp:/* ---------------------------------------------------------------------- */ -dump_image.cpp:/* ---------------------------------------------------------------------- */ -dump_image.cpp: // ptrs = list of ncount colornames separated by '/' -dump_image.cpp: while ((nextptr = strchr(ptr,'/'))) { -dump_image.cpp: ptrs[ncount++] = strtok(arg[2],"/"); -dump_image.cpp: while ((ptrs[ncount++] = strtok(NULL,"/"))); -dump_image.cpp: // assign each of ncount colors in round-robin fashion to types -dump_image.cpp: // ptrs = list of ncount colornames separated by '/' -dump_image.cpp: while ((nextptr = strchr(ptr,'/'))) { -dump_image.cpp: ptrs[ncount++] = strtok(arg[2],"/"); -dump_image.cpp: while ((ptrs[ncount++] = strtok(NULL,"/"))); -dump_image.cpp: // assign each of ncount colors in round-robin fashion to types -dump_local.cpp:/* ---------------------------------------------------------------------- -dump_local.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dump_local.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dump_local.cpp:------------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp: // expand args if any have wildcard character "*" -dump_local.cpp: // allocate field vectors -dump_local.cpp: // computes & fixes which the dump accesses -dump_local.cpp: // process attributes -dump_local.cpp: // setup format strings -dump_local.cpp: // setup column string -dump_local.cpp: // setup default label string -dump_local.cpp: // if wildcard expansion occurred, free earg memory from exapnd_args() -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp: // format = copy of default or user-specified line format -dump_local.cpp: // tokenize the format string and add space at end of each format element -dump_local.cpp: // if user-specified int/float format exists, use it instead -dump_local.cpp: // if user-specified column format exists, use it instead -dump_local.cpp: // lo priority = line, medium priority = int/float, hi priority = column -dump_local.cpp: // setup boundary string -dump_local.cpp: // setup function ptrs -dump_local.cpp: // find current ptr for each compute,fix,variable -dump_local.cpp: // check that fix frequency is acceptable -dump_local.cpp: // open single file, one time only -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp: // invoke Computes for local quantities -dump_local.cpp: // only if within a run or minimize -dump_local.cpp: // else require that computes are current -dump_local.cpp: // this prevents a compute from being invoked by the WriteDump class -dump_local.cpp: // nmine = # of local values I contribute -dump_local.cpp: // must be consistent for all input fields -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- -dump_local.cpp:------------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp: // customize by adding to if statement -dump_local.cpp: // compute value = c_ID -dump_local.cpp: // if no trailing [], then arg is set to 0, else arg is int between [] -dump_local.cpp: // fix value = f_ID -dump_local.cpp: // if no trailing [], then arg is set to 0, else arg is between [] -dump_local.cpp:/* ---------------------------------------------------------------------- -dump_local.cpp:------------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- -dump_local.cpp:------------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- -dump_local.cpp:------------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- -dump_local.cpp:------------------------------------------------------------------------- */ -dump_local.cpp:/* ---------------------------------------------------------------------- */ -dump_movie.cpp:/* ---------------------------------------------------------------------- -dump_movie.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dump_movie.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dump_movie.cpp:------------------------------------------------------------------------- */ -dump_movie.cpp:/* ---------------------------------------------------------------------- -dump_movie.cpp:------------------------------------------------------------------------- */ -dump_movie.cpp:/* ---------------------------------------------------------------------- */ -dump_movie.cpp:/* ---------------------------------------------------------------------- */ -dump_movie.cpp:/* ---------------------------------------------------------------------- */ -dump_movie.cpp: // initialize image style circumventing multifile check -dump_movie.cpp:/* ---------------------------------------------------------------------- */ -dump_xyz.cpp:/* ---------------------------------------------------------------------- -dump_xyz.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -dump_xyz.cpp: http://lammps.sandia.gov, Sandia National Laboratories -dump_xyz.cpp:------------------------------------------------------------------------- */ -dump_xyz.cpp:/* ---------------------------------------------------------------------- */ -dump_xyz.cpp:/* ---------------------------------------------------------------------- */ -dump_xyz.cpp:/* ---------------------------------------------------------------------- */ -dump_xyz.cpp: // format = copy of default or user-specified line format -dump_xyz.cpp: // initialize typenames array to be backward compatible by default -dump_xyz.cpp: // a 32-bit int can be maximally 10 digits plus sign -dump_xyz.cpp: // setup function ptr -dump_xyz.cpp: // open single file, one time only -dump_xyz.cpp:/* ---------------------------------------------------------------------- */ -dump_xyz.cpp:/* ---------------------------------------------------------------------- */ -dump_xyz.cpp:/* ---------------------------------------------------------------------- */ -dump_xyz.cpp:/* ---------------------------------------------------------------------- -dump_xyz.cpp:------------------------------------------------------------------------- */ -dump_xyz.cpp:/* ---------------------------------------------------------------------- */ -dump_xyz.cpp:/* ---------------------------------------------------------------------- */ -dump_xyz.cpp:/* ---------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -error.cpp: http://lammps.sandia.gov, Sandia National Laboratories -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -error.cpp:/* ---------------------------------------------------------------------- -error.cpp:------------------------------------------------------------------------- */ -finish.cpp:/* ---------------------------------------------------------------------- -finish.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -finish.cpp: http://lammps.sandia.gov, Sandia National Laboratories -finish.cpp:------------------------------------------------------------------------- */ -finish.cpp:// local function prototypes, code at end of file -finish.cpp:/* ---------------------------------------------------------------------- */ -finish.cpp:/* ---------------------------------------------------------------------- */ -finish.cpp: // recompute natoms in case atoms have been lost -finish.cpp: // choose flavors of statistical output -finish.cpp: // flag determines caller -finish.cpp: // flag = 0 = just loop summary -finish.cpp: // flag = 1 = dynamics or minimization -finish.cpp: // flag = 2 = PRD -finish.cpp: // flag = 3 = TAD -finish.cpp: // flag = 4 = HYPER -finish.cpp: // turn off neighflag for Kspace partition of verlet/split integrator -finish.cpp: strncmp(update->integrate_style,"verlet/split",12) == 0 && -finish.cpp: // loop stats -finish.cpp: // overall loop time -finish.cpp: time_loop = tmp/nprocs; -finish.cpp: cpu_loop = tmp/nprocs; -finish.cpp: if (time_loop > 0.0) cpu_loop = cpu_loop/time_loop*100.0; -finish.cpp: // Gromacs/NAMD-style performance metric for suitable unit settings -finish.cpp: double t_step = ((double) time_loop) / ((double) update->nsteps); -finish.cpp: double step_t = 1.0/t_step; -finish.cpp: double tau_day = 24.0*3600.0 / t_step * update->dt / one_fs; -finish.cpp: const char perf[] = "Performance: %.3f tau/day, %.3f timesteps/s\n"; -finish.cpp: double hrs_ns = t_step / update->dt * 1000000.0 * one_fs / 3600.0; -finish.cpp: double ns_day = 24.0*3600.0 / t_step * update->dt / one_fs/1000000.0; -finish.cpp: "Performance: %.3f ns/day, %.3f hours/ns, %.3f timesteps/s\n"; -finish.cpp: // CPU use on MPI tasks and OpenMP threads -finish.cpp: // avoid division by zero for very short runs -finish.cpp: // get "Other" wall time for later use -finish.cpp: // minimization stats -finish.cpp: // PRD stats -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: if (me == 0) { // XXXX: replica comm, replica output -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: // TAD stats -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: // HYPER stats -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time = tmp/nprocs; -finish.cpp: time,time/time_loop*100.0); -finish.cpp: time,time/time_loop*100.0); -finish.cpp: // further timing breakdowns -finish.cpp: time = tmp/nprocs; -finish.cpp: if (screen) fprintf(screen,fmt,time,time/time_loop*100.0); -finish.cpp: if (logfile) fprintf(logfile,fmt,time,time/time_loop*100.0); -finish.cpp: "\nThread timing breakdown (MPI rank %d):\nTotal threaded time %.4g / %.1f%%\n"; -finish.cpp: // print thread breakdown only with full timer detail -finish.cpp: thr_total /= (double) nthreads; -finish.cpp: fprintf(screen,thr_hdr_fmt,me,thr_total,thr_total/time_loop*100.0); -finish.cpp: fprintf(logfile,thr_hdr_fmt,me,thr_total,thr_total/time_loop*100.0); -finish.cpp: "since GPU/CPU overlap is enabled\n" -finish.cpp: // FFT timing statistics -finish.cpp: // time3d,time1d = total time during run for 3d and 1d FFTs -finish.cpp: // loop on timing() until nsample FFTs require at least 1.0 CPU sec -finish.cpp: // time_kspace may be 0.0 if another partition is doing Kspace -finish.cpp: time3d = nsteps * time3d / nsample; -finish.cpp: time3d = tmp/nprocs; -finish.cpp: time1d = nsteps * time1d / nsample; -finish.cpp: time1d = tmp/nprocs; -finish.cpp: time_kspace = tmp/nprocs; -finish.cpp: if (time_kspace) fraction = time3d/time_kspace*100.0; -finish.cpp: flop3 = nfft*nflops/1.0e9/(time3d/nsteps); -finish.cpp: flop1 = nfft*nflops/1.0e9/(time1d/nsteps); -finish.cpp: // find a non-skip neighbor list containing half pairwise interactions -finish.cpp: // count neighbors in that list for stats purposes -finish.cpp: // allow it to be Kokkos neigh list as well -finish.cpp: // find a non-skip neighbor list containing full pairwise interactions -finish.cpp: // count neighbors in that list for stats purposes -finish.cpp: // allow it to be Kokkos neigh list as well -finish.cpp: fprintf(screen,"Ave neighs/atom = %g\n",nall/atom->natoms); -finish.cpp: fprintf(screen,"Ave special neighs/atom = %g\n", -finish.cpp: nspec_all/atom->natoms); -finish.cpp: fprintf(logfile,"Ave neighs/atom = %g\n",nall/atom->natoms); -finish.cpp: fprintf(logfile,"Ave special neighs/atom = %g\n", -finish.cpp: nspec_all/atom->natoms); -finish.cpp:/* ---------------------------------------------------------------------- */ -finish.cpp: ave = tmp/ntotal; -finish.cpp: else m = static_cast ((data[i]-min)/del * nhisto); -finish.cpp:/* ---------------------------------------------------------------------- */ -finish.cpp: if (time/time_loop < 0.001) // insufficient timer resolution! -finish.cpp: time_cpu = time_cpu / time; -finish.cpp: time = tmp/nprocs; -finish.cpp: time_sq = tmp/nprocs; -finish.cpp: time_cpu = tmp/nprocs*100.0; -finish.cpp: // % variance from the average as measure of load imbalance -finish.cpp: if ((time > 0.001) && ((time_sq/time - time) > 1.0e-10)) -finish.cpp: time_sq = sqrt(time_sq/time - time)*100.0; -finish.cpp: tmp = time/time_loop*100.0; -finish.cpp: time_loop = 100.0/time_loop; -finish.cpp:/* ---------------------------------------------------------------------- */ -finish.cpp: time_avg /= nthreads; -finish.cpp: time_std /= nthreads; -finish.cpp: time_total /= nthreads; -finish.cpp: if ((time_avg > 0.001) && ((time_std/time_avg -time_avg) > 1.0e-10)) -finish.cpp: time_std = sqrt(time_std/time_avg - time_avg)*100.0; -finish.cpp: time_avg/time_total*100.0); -finish.cpp: time_avg/time_total*100.0); -fix_adapt.cpp:/* ---------------------------------------------------------------------- -fix_adapt.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_adapt.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_adapt.cpp:------------------------------------------------------------------------- */ -fix_adapt.cpp:/* ---------------------------------------------------------------------- */ -fix_adapt.cpp: // count # of adaptations -fix_adapt.cpp: // parse keywords -fix_adapt.cpp: // optional keywords -fix_adapt.cpp: // allocate pair style arrays -fix_adapt.cpp: // allocate bond style arrays: -fix_adapt.cpp:/* ---------------------------------------------------------------------- */ -fix_adapt.cpp: // check nfix in case all fixes have already been deleted -fix_adapt.cpp:/* ---------------------------------------------------------------------- */ -fix_adapt.cpp:/* ---------------------------------------------------------------------- -fix_adapt.cpp:------------------------------------------------------------------------- */ -fix_adapt.cpp: // new id = fix-ID + FIX_STORE_ATTRIBUTE -fix_adapt.cpp: // new fix group = group for this fix -fix_adapt.cpp:/* ---------------------------------------------------------------------- */ -fix_adapt.cpp: // allow a dynamic group only if ATOM attribute not used -fix_adapt.cpp: // setup and error checks -fix_adapt.cpp: // if ad->pstyle has trailing sub-style annotation ":N", -fix_adapt.cpp: // strip it for pstyle arg to pair_match() and set nsub = N -fix_adapt.cpp: // this should work for appended suffixes as well -fix_adapt.cpp: strcat(psuffix,"/"); -fix_adapt.cpp: // for pair styles only parameters that are 2-d arrays in atom types or -fix_adapt.cpp: // scalars are supported -fix_adapt.cpp: // if pair hybrid, test that ilo,ihi,jlo,jhi are valid for sub-style -fix_adapt.cpp: strcmp(force->pair_style,"hybrid/overlay") == 0) { -fix_adapt.cpp: strcat(bsuffix,"/"); -fix_adapt.cpp: // for bond styles, use a vector -fix_adapt.cpp: // make copy of original pair/bond array values -fix_adapt.cpp: // fixes that store initial per-atom values -fix_adapt.cpp:/* ---------------------------------------------------------------------- */ -fix_adapt.cpp:/* ---------------------------------------------------------------------- */ -fix_adapt.cpp:/* ---------------------------------------------------------------------- */ -fix_adapt.cpp:/* ---------------------------------------------------------------------- */ -fix_adapt.cpp:/* ---------------------------------------------------------------------- */ -fix_adapt.cpp:/* ---------------------------------------------------------------------- -fix_adapt.cpp:------------------------------------------------------------------------- */ -fix_adapt.cpp: // variable evaluation may invoke computes so wrap with clear/add -fix_adapt.cpp: // set global scalar or type pair array values -fix_adapt.cpp: // set bond type array values: -fix_adapt.cpp: // set kspace scale factor -fix_adapt.cpp: // set per atom values, also make changes for ghost atoms -fix_adapt.cpp: // reset radius from diameter -fix_adapt.cpp: // also scale rmass to new value -fix_adapt.cpp: density = rmass[i] / (4.0*MY_PI/3.0 * -fix_adapt.cpp: rmass[i] = 4.0*MY_PI/3.0 * -fix_adapt.cpp: // re-initialize pair styles if any PAIR settings were changed -fix_adapt.cpp: // ditto for bond styles if any BOND setitings were changes -fix_adapt.cpp: // this resets other coeffs that may depend on changed values, -fix_adapt.cpp: // and also offset and tail corrections -fix_adapt.cpp: // reset KSpace charges if charges have changed -fix_adapt.cpp:/* ---------------------------------------------------------------------- -fix_adapt.cpp:------------------------------------------------------------------------- */ -fix_adapt.cpp: density = rmass[i] / (4.0*MY_PI/3.0 * -fix_adapt.cpp: rmass[i] = 4.0*MY_PI/3.0 * radius[i]*radius[i]*radius[i] * density; -fix_adapt.cpp:/* ---------------------------------------------------------------------- -fix_adapt.cpp:------------------------------------------------------------------------- */ -fix_addforce.cpp:/* ---------------------------------------------------------------------- -fix_addforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_addforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_addforce.cpp:------------------------------------------------------------------------- */ -fix_addforce.cpp:/* ---------------------------------------------------------------------- */ -fix_addforce.cpp: // optional args -fix_addforce.cpp:/* ---------------------------------------------------------------------- */ -fix_addforce.cpp:/* ---------------------------------------------------------------------- */ -fix_addforce.cpp:/* ---------------------------------------------------------------------- */ -fix_addforce.cpp: // check variables -fix_addforce.cpp: // set index and check validity of region -fix_addforce.cpp:/* ---------------------------------------------------------------------- */ -fix_addforce.cpp:/* ---------------------------------------------------------------------- */ -fix_addforce.cpp:/* ---------------------------------------------------------------------- */ -fix_addforce.cpp: // update region if necessary -fix_addforce.cpp: // reallocate sforce array if necessary -fix_addforce.cpp: // foriginal[0] = "potential energy" for added force -fix_addforce.cpp: // foriginal[123] = force on atoms before extra force added -fix_addforce.cpp: // constant force -fix_addforce.cpp: // potential energy = - x dot f in unwrapped coords -fix_addforce.cpp: // variable force, wrap with clear/add -fix_addforce.cpp: // potential energy = evar if defined, else 0.0 -fix_addforce.cpp: // wrap with clear/add -fix_addforce.cpp:/* ---------------------------------------------------------------------- */ -fix_addforce.cpp:/* ---------------------------------------------------------------------- */ -fix_addforce.cpp:/* ---------------------------------------------------------------------- -fix_addforce.cpp:------------------------------------------------------------------------- */ -fix_addforce.cpp: // only sum across procs one time -fix_addforce.cpp:/* ---------------------------------------------------------------------- -fix_addforce.cpp:------------------------------------------------------------------------- */ -fix_addforce.cpp: // only sum across procs one time -fix_addforce.cpp:/* ---------------------------------------------------------------------- -fix_addforce.cpp:------------------------------------------------------------------------- */ -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- -fix_ave_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_ave_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_ave_atom.cpp:------------------------------------------------------------------------- */ -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_atom.cpp: if (narg < 7) error->all(FLERR,"Illegal fix ave/atom command"); -fix_ave_atom.cpp: // expand args if any have wildcard character "*" -fix_ave_atom.cpp: // this can reset nvalues -fix_ave_atom.cpp: // parse values -fix_ave_atom.cpp: error->all(FLERR,"Illegal fix ave/atom command"); -fix_ave_atom.cpp: } else error->all(FLERR,"Illegal fix ave/atom command"); -fix_ave_atom.cpp: // if wildcard expansion occurred, free earg memory from exapnd_args() -fix_ave_atom.cpp: // setup and error check -fix_ave_atom.cpp: // for fix inputs, check that fix frequency is acceptable -fix_ave_atom.cpp: error->all(FLERR,"Illegal fix ave/atom command"); -fix_ave_atom.cpp: error->all(FLERR,"Illegal fix ave/atom command"); -fix_ave_atom.cpp: error->all(FLERR,"Compute ID for fix ave/atom does not exist"); -fix_ave_atom.cpp: "Fix ave/atom compute does not calculate per-atom values"); -fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom compute does not " -fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom compute does not " -fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom compute array is accessed out-of-range"); -fix_ave_atom.cpp: error->all(FLERR,"Fix ID for fix ave/atom does not exist"); -fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom fix does not calculate per-atom values"); -fix_ave_atom.cpp: "Fix ave/atom fix does not calculate a per-atom vector"); -fix_ave_atom.cpp: "Fix ave/atom fix does not calculate a per-atom array"); -fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom fix array is accessed out-of-range"); -fix_ave_atom.cpp: "Fix for fix ave/atom not computed at compatible time"); -fix_ave_atom.cpp: error->all(FLERR,"Variable name for fix ave/atom does not exist"); -fix_ave_atom.cpp: error->all(FLERR,"Fix ave/atom variable is not atom-style variable"); -fix_ave_atom.cpp: // this fix produces either a per-atom vector or array -fix_ave_atom.cpp: // perform initial allocation of atom-based array -fix_ave_atom.cpp: // register with Atom class -fix_ave_atom.cpp: // zero the array since dump may access it on timestep 0 -fix_ave_atom.cpp: // zero the array since a variable may access it before first run -fix_ave_atom.cpp: // nvalid = next step on which end_of_step does something -fix_ave_atom.cpp: // add nvalid to all computes that store invocation times -fix_ave_atom.cpp: // since don't know a priori which are invoked by this fix -fix_ave_atom.cpp: // once in end_of_step() can set timestep for ones actually invoked -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_atom.cpp: // unregister callback to this fix from Atom class -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_atom.cpp: // set indices and check validity of all computes,fixes,variables -fix_ave_atom.cpp: error->all(FLERR,"Compute ID for fix ave/atom does not exist"); -fix_ave_atom.cpp: error->all(FLERR,"Fix ID for fix ave/atom does not exist"); -fix_ave_atom.cpp: error->all(FLERR,"Variable name for fix ave/atom does not exist"); -fix_ave_atom.cpp: // need to reset nvalid if nvalid < ntimestep b/c minimize was performed -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- -fix_ave_atom.cpp:------------------------------------------------------------------------- */ -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_atom.cpp: // skip if not step which requires doing something -fix_ave_atom.cpp: // error check if timestep was reset in an invalid manner -fix_ave_atom.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/atom"); -fix_ave_atom.cpp: // zero if first step -fix_ave_atom.cpp: // accumulate results of attributes,computes,fixes,variables to local copy -fix_ave_atom.cpp: // compute/fix/variable may invoke computes so wrap with clear/add -fix_ave_atom.cpp: // invoke compute if not previously invoked -fix_ave_atom.cpp: // access fix fields, guaranteed to be ready -fix_ave_atom.cpp: // evaluate atom-style variable -fix_ave_atom.cpp: // final argument = 1 sums result to array -fix_ave_atom.cpp: // done if irepeat < nrepeat -fix_ave_atom.cpp: // else reset irepeat and nvalid -fix_ave_atom.cpp: // average the final result for the Nfreq timestep -fix_ave_atom.cpp: array[i][m] /= repeat; -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- -fix_ave_atom.cpp:------------------------------------------------------------------------- */ -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- -fix_ave_atom.cpp:------------------------------------------------------------------------- */ -fix_ave_atom.cpp: memory->grow(array,nmax,nvalues,"fix_ave/atom:array"); -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- -fix_ave_atom.cpp:------------------------------------------------------------------------- */ -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- -fix_ave_atom.cpp:------------------------------------------------------------------------- */ -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- -fix_ave_atom.cpp:------------------------------------------------------------------------- */ -fix_ave_atom.cpp:/* ---------------------------------------------------------------------- -fix_ave_atom.cpp:------------------------------------------------------------------------- */ -fix_ave_atom.cpp: bigint nvalid = (update->ntimestep/peratom_freq)*peratom_freq + peratom_freq; -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- -fix_ave_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_ave_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_ave_chunk.cpp:------------------------------------------------------------------------- */ -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_chunk.cpp: if (narg < 7) error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: // expand args if any have wildcard character "*" -fix_ave_chunk.cpp: // parse values until one isn't recognized -fix_ave_chunk.cpp: } else if (strcmp(arg[iarg],"density/number") == 0) { -fix_ave_chunk.cpp: } else if (strcmp(arg[iarg],"density/mass") == 0) { -fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: if (nvalues == 0) error->all(FLERR,"No values in fix ave/chunk command"); -fix_ave_chunk.cpp: // optional args -fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: } else error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: else error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: if (nwindow <= 0) error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: sprintf(str,"Cannot open fix ave/chunk file %s",arg[iarg+1]); -fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: } else error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: // setup and error check -fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: error->all(FLERR,"Illegal fix ave/chunk command"); -fix_ave_chunk.cpp: error->all(FLERR,"Compute ID for fix ave/chunk does not exist"); -fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk compute does not " -fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk compute does not " -fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk compute does not " -fix_ave_chunk.cpp: "Fix ave/chunk compute vector is accessed out-of-range"); -fix_ave_chunk.cpp: error->all(FLERR,"Fix ID for fix ave/chunk does not exist"); -fix_ave_chunk.cpp: "Fix ave/chunk fix does not calculate per-atom values"); -fix_ave_chunk.cpp: "Fix ave/chunk fix does not calculate a per-atom vector"); -fix_ave_chunk.cpp: "Fix ave/chunk fix does not calculate a per-atom array"); -fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk fix vector is accessed out-of-range"); -fix_ave_chunk.cpp: error->all(FLERR,"Variable name for fix ave/chunk does not exist"); -fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk variable is not atom-style variable"); -fix_ave_chunk.cpp: // increment lock counter in compute chunk/atom -fix_ave_chunk.cpp: // only if nrepeat > 1 or ave = RUNNING/WINDOW, -fix_ave_chunk.cpp: // so that locking spans multiple timesteps -fix_ave_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for fix ave/chunk"); -fix_ave_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -fix_ave_chunk.cpp: error->all(FLERR,"Fix ave/chunk does not use chunk/atom compute"); -fix_ave_chunk.cpp: // print file comment lines -fix_ave_chunk.cpp: // if wildcard expansion occurred, free earg memory from expand_args() -fix_ave_chunk.cpp: // wait to do this until after file comment lines are printed -fix_ave_chunk.cpp: // this fix produces a global array -fix_ave_chunk.cpp: // size_array_rows is variable and set by allocate() -fix_ave_chunk.cpp: // initializations -fix_ave_chunk.cpp: // nvalid = next step on which end_of_step does something -fix_ave_chunk.cpp: // add nvalid to all computes that store invocation times -fix_ave_chunk.cpp: // since don't know a priori which are invoked by this fix -fix_ave_chunk.cpp: // once in end_of_step() can set timestep for ones actually invoked -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_chunk.cpp: // decrement lock counter in compute chunk/atom, it if still exists -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_chunk.cpp: // set indices and check validity of all computes,fixes,variables -fix_ave_chunk.cpp: // check that fix frequency is acceptable -fix_ave_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for fix ave/chunk"); -fix_ave_chunk.cpp: error->all(FLERR,"Compute ID for fix ave/chunk does not exist"); -fix_ave_chunk.cpp: error->all(FLERR,"Fix ID for fix ave/chunk does not exist"); -fix_ave_chunk.cpp: "Fix for fix ave/chunk not computed at compatible time"); -fix_ave_chunk.cpp: error->all(FLERR,"Variable name for fix ave/chunk does not exist"); -fix_ave_chunk.cpp: // need to reset nvalid if nvalid < ntimestep b/c minimize was performed -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- -fix_ave_chunk.cpp: do not call setup_chunks(), even though fix ave/spatial called setup_bins() -fix_ave_chunk.cpp: b/c could cause nchunk to change if Nfreq epoch crosses 2 runs -fix_ave_chunk.cpp:------------------------------------------------------------------------- */ -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_chunk.cpp: // skip if not step which requires doing something -fix_ave_chunk.cpp: // error check if timestep was reset in an invalid manner -fix_ave_chunk.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/chunk"); -fix_ave_chunk.cpp: // first sample within single Nfreq epoch -fix_ave_chunk.cpp: // zero out arrays that accumulate over many samples, but not across epochs -fix_ave_chunk.cpp: // invoke setup_chunks() to determine current nchunk -fix_ave_chunk.cpp: // re-allocate per-chunk arrays if needed -fix_ave_chunk.cpp: // invoke lock() in two cases: -fix_ave_chunk.cpp: // if nrepeat > 1: so nchunk cannot change until Nfreq epoch is over, -fix_ave_chunk.cpp: // will be unlocked on last repeat of this Nfreq -fix_ave_chunk.cpp: // if ave = RUNNING/WINDOW and not yet locked: -fix_ave_chunk.cpp: // set forever, will be unlocked in fix destructor -fix_ave_chunk.cpp: // wrap setup_chunks in clearstep/addstep b/c it may invoke computes -fix_ave_chunk.cpp: // both nevery and nfreq are future steps, -fix_ave_chunk.cpp: // since call below to cchunk->ichunk() -fix_ave_chunk.cpp: // does not re-invoke internal cchunk compute on this same step -fix_ave_chunk.cpp: // if any DENSITY requested, invoke setup_chunks() on each sampling step -fix_ave_chunk.cpp: // nchunk will not change but bin volumes might, e.g. for NPT simulation -fix_ave_chunk.cpp: // zero out arrays for one sample -fix_ave_chunk.cpp: // compute chunk/atom assigns atoms to chunk IDs -fix_ave_chunk.cpp: // extract ichunk index vector from compute -fix_ave_chunk.cpp: // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms -fix_ave_chunk.cpp: // wrap compute_ichunk in clearstep/addstep b/c it may invoke computes -fix_ave_chunk.cpp: // perform the computation for one sample -fix_ave_chunk.cpp: // count # of atoms in each bin -fix_ave_chunk.cpp: // accumulate results of attributes,computes,fixes,variables to local copy -fix_ave_chunk.cpp: // sum within each chunk, only include atoms in fix group -fix_ave_chunk.cpp: // compute/fix/variable may invoke computes so wrap with clear/add -fix_ave_chunk.cpp: // V,F adds velocities,forces to values -fix_ave_chunk.cpp: // DENSITY_NUMBER adds 1 to values -fix_ave_chunk.cpp: // DENSITY_MASS or MASS adds mass to values -fix_ave_chunk.cpp: // TEMPERATURE adds KE to values -fix_ave_chunk.cpp: // subtract and restore velocity bias if requested -fix_ave_chunk.cpp: // COMPUTE adds its scalar or vector component to values -fix_ave_chunk.cpp: // invoke compute if not previously invoked -fix_ave_chunk.cpp: // FIX adds its scalar or vector component to values -fix_ave_chunk.cpp: // access fix fields, guaranteed to be ready -fix_ave_chunk.cpp: // VARIABLE adds its per-atom quantities to values -fix_ave_chunk.cpp: // evaluate atom-style variable -fix_ave_chunk.cpp: memory->create(varatom,maxvar,"ave/chunk:varatom"); -fix_ave_chunk.cpp: // process the current sample -fix_ave_chunk.cpp: // if normflag = ALL, accumulate values,count separately to many -fix_ave_chunk.cpp: // if normflag = SAMPLE, one = value/count, accumulate one to many -fix_ave_chunk.cpp: // count is MPI summed here, value is MPI summed below across samples -fix_ave_chunk.cpp: // exception is TEMPERATURE: normalize by DOF -fix_ave_chunk.cpp: // exception is DENSITY_NUMBER: -fix_ave_chunk.cpp: // normalize by bin volume, not by atom count -fix_ave_chunk.cpp: // exception is DENSITY_MASS: -fix_ave_chunk.cpp: // scale by mv2d, normalize by bin volume, not by atom count -fix_ave_chunk.cpp: // exception is scaleflag = NOSCALE (norm = NONE): -fix_ave_chunk.cpp: // no normalize by atom count -fix_ave_chunk.cpp: // check last so other options can take precedence -fix_ave_chunk.cpp: values_many[m][j] += mvv2e*values_one[m][j] / -fix_ave_chunk.cpp: if (volflag == SCALAR) values_one[m][j] /= chunk_volume_scalar; -fix_ave_chunk.cpp: else values_one[m][j] /= chunk_volume_vec[m]; -fix_ave_chunk.cpp: if (volflag == SCALAR) values_one[m][j] /= chunk_volume_scalar; -fix_ave_chunk.cpp: else values_one[m][j] /= chunk_volume_vec[m]; -fix_ave_chunk.cpp: values_many[m][j] += values_one[m][j]/count_many[m]; -fix_ave_chunk.cpp: // done if irepeat < nrepeat -fix_ave_chunk.cpp: // else reset irepeat and nvalid -fix_ave_chunk.cpp: // unlock compute chunk/atom at end of Nfreq epoch -fix_ave_chunk.cpp: // do not unlock if ave = RUNNING or WINDOW -fix_ave_chunk.cpp: // time average across samples -fix_ave_chunk.cpp: // if normflag = ALL, final is total value / total count -fix_ave_chunk.cpp: // exception is TEMPERATURE: normalize by DOF for total count -fix_ave_chunk.cpp: // exception is DENSITY_NUMBER: -fix_ave_chunk.cpp: // normalize by final bin_volume and repeat, not by total count -fix_ave_chunk.cpp: // exception is DENSITY_MASS: -fix_ave_chunk.cpp: // scale by mv2d, normalize by bin volume and repeat, not by total count -fix_ave_chunk.cpp: // exception is scaleflag == NOSCALE: -fix_ave_chunk.cpp: // normalize by repeat, not by total count -fix_ave_chunk.cpp: // check last so other options can take precedence -fix_ave_chunk.cpp: // if normflag = SAMPLE, final is sum of ave / repeat -fix_ave_chunk.cpp: values_sum[m][j] *= mvv2e / ((cdof + adof*count_sum[m]) * boltz); -fix_ave_chunk.cpp: if (volflag == SCALAR) values_sum[m][j] /= chunk_volume_scalar; -fix_ave_chunk.cpp: else values_sum[m][j] /= chunk_volume_vec[m]; -fix_ave_chunk.cpp: values_sum[m][j] /= repeat; -fix_ave_chunk.cpp: if (volflag == SCALAR) values_sum[m][j] /= chunk_volume_scalar; -fix_ave_chunk.cpp: else values_sum[m][j] /= chunk_volume_vec[m]; -fix_ave_chunk.cpp: values_sum[m][j] *= mv2d/repeat; -fix_ave_chunk.cpp: values_sum[m][j] /= repeat; -fix_ave_chunk.cpp: values_sum[m][j] /= count_sum[m]; -fix_ave_chunk.cpp: count_sum[m] /= repeat; -fix_ave_chunk.cpp: for (j = 0; j < nvalues; j++) values_sum[m][j] /= repeat; -fix_ave_chunk.cpp: count_sum[m] /= repeat; -fix_ave_chunk.cpp: // if ave = ONE, only single Nfreq timestep value is needed -fix_ave_chunk.cpp: // if ave = RUNNING, combine with all previous Nfreq timestep values -fix_ave_chunk.cpp: // if ave = WINDOW, comine with nwindow most recent Nfreq timestep values -fix_ave_chunk.cpp: // output result to file -fix_ave_chunk.cpp: fprintf(fp," %d %g",m+1,count_total[m]/normcount); -fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); -fix_ave_chunk.cpp: count_total[m]/normcount); -fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); -fix_ave_chunk.cpp: count_total[m]/normcount); -fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); -fix_ave_chunk.cpp: coord[m][0],coord[m][1],coord[m][2],count_total[m]/normcount); -fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); -fix_ave_chunk.cpp: fprintf(fp," %d %d %g",m+1,chunkID[m],count_total[m]/normcount); -fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); -fix_ave_chunk.cpp: count_total[m]/normcount); -fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); -fix_ave_chunk.cpp: count_total[m]/normcount); -fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); -fix_ave_chunk.cpp: coord[j-1][1],coord[j-1][2],count_total[m]/normcount); -fix_ave_chunk.cpp: fprintf(fp,format,values_total[m][i]/normcount); -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- -fix_ave_chunk.cpp:------------------------------------------------------------------------- */ -fix_ave_chunk.cpp: // reallocate chunk arrays if needed -fix_ave_chunk.cpp: memory->grow(count_one,nchunk,"ave/chunk:count_one"); -fix_ave_chunk.cpp: memory->grow(count_many,nchunk,"ave/chunk:count_many"); -fix_ave_chunk.cpp: memory->grow(count_sum,nchunk,"ave/chunk:count_sum"); -fix_ave_chunk.cpp: memory->grow(count_total,nchunk,"ave/chunk:count_total"); -fix_ave_chunk.cpp: memory->grow(values_one,nchunk,nvalues,"ave/chunk:values_one"); -fix_ave_chunk.cpp: memory->grow(values_many,nchunk,nvalues,"ave/chunk:values_many"); -fix_ave_chunk.cpp: memory->grow(values_sum,nchunk,nvalues,"ave/chunk:values_sum"); -fix_ave_chunk.cpp: memory->grow(values_total,nchunk,nvalues,"ave/chunk:values_total"); -fix_ave_chunk.cpp: // only allocate count and values list for ave = WINDOW -fix_ave_chunk.cpp: memory->create(count_list,nwindow,nchunk,"ave/chunk:count_list"); -fix_ave_chunk.cpp: "ave/chunk:values_list"); -fix_ave_chunk.cpp: // reinitialize regrown count/values total since they accumulate -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- -fix_ave_chunk.cpp:------------------------------------------------------------------------- */ -fix_ave_chunk.cpp: if (j < 0) return count_total[i]/normcount; -fix_ave_chunk.cpp: return values_total[i][j]/normcount; -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- -fix_ave_chunk.cpp:------------------------------------------------------------------------- */ -fix_ave_chunk.cpp: bigint nvalid = (update->ntimestep/nfreq)*nfreq + nfreq; -fix_ave_chunk.cpp:/* ---------------------------------------------------------------------- -fix_ave_chunk.cpp:------------------------------------------------------------------------- */ -fix_ave_chunk.cpp: double bytes = maxvar * sizeof(double); // varatom -fix_ave_chunk.cpp: bytes += 4*maxchunk * sizeof(double); // count one,many,sum,total -fix_ave_chunk.cpp: bytes += nvalues*maxchunk * sizeof(double); // values one,many,sum,total -fix_ave_chunk.cpp: bytes += nwindow*maxchunk * sizeof(double); // count_list -fix_ave_chunk.cpp: bytes += nwindow*maxchunk*nvalues * sizeof(double); // values_list -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- -fix_ave_correlate.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_ave_correlate.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_ave_correlate.cpp:------------------------------------------------------------------------- */ -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- -fix_ave_correlate.cpp:------------------------------------------------------------------------- */ -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_correlate.cpp: if (narg < 7) error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: // expand args if any have wildcard character "*" -fix_ave_correlate.cpp: // parse values until one isn't recognized -fix_ave_correlate.cpp: error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: // optional args -fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: else if (strcmp(arg[iarg+1],"auto/upper") == 0) type = AUTOUPPER; -fix_ave_correlate.cpp: else if (strcmp(arg[iarg+1],"auto/lower") == 0) type = AUTOLOWER; -fix_ave_correlate.cpp: else error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: else error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: sprintf(str,"Cannot open fix ave/correlate file %s",arg[iarg+1]); -fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: } else error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: // setup and error check -fix_ave_correlate.cpp: // for fix inputs, check that fix frequency is acceptable -fix_ave_correlate.cpp: error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: error->all(FLERR,"Illegal fix ave/correlate command"); -fix_ave_correlate.cpp: error->all(FLERR,"Compute ID for fix ave/correlate does not exist"); -fix_ave_correlate.cpp: "Fix ave/correlate compute does not calculate a scalar"); -fix_ave_correlate.cpp: "Fix ave/correlate compute does not calculate a vector"); -fix_ave_correlate.cpp: error->all(FLERR,"Fix ave/correlate compute vector " -fix_ave_correlate.cpp: error->all(FLERR,"Fix ID for fix ave/correlate does not exist"); -fix_ave_correlate.cpp: error->all(FLERR,"Fix ave/correlate fix does not calculate a scalar"); -fix_ave_correlate.cpp: error->all(FLERR,"Fix ave/correlate fix does not calculate a vector"); -fix_ave_correlate.cpp: "Fix ave/correlate fix vector is accessed out-of-range"); -fix_ave_correlate.cpp: error->all(FLERR,"Fix for fix ave/correlate " -fix_ave_correlate.cpp: error->all(FLERR,"Variable name for fix ave/correlate does not exist"); -fix_ave_correlate.cpp: "Fix ave/correlate variable is not equal-style variable"); -fix_ave_correlate.cpp: "Fix ave/correlate variable is not vector-style variable"); -fix_ave_correlate.cpp: // npair = # of correlation pairs to calculate -fix_ave_correlate.cpp: if (type == UPPER || type == LOWER) npair = nvalues*(nvalues-1)/2; -fix_ave_correlate.cpp: if (type == AUTOUPPER || type == AUTOLOWER) npair = nvalues*(nvalues+1)/2; -fix_ave_correlate.cpp: // print file comment lines -fix_ave_correlate.cpp: // if wildcard expansion occurred, free earg memory from expand_args() -fix_ave_correlate.cpp: // wait to do this until after file comment lines are printed -fix_ave_correlate.cpp: // allocate and initialize memory for averaging -fix_ave_correlate.cpp: // set count and corr to zero since they accumulate -fix_ave_correlate.cpp: // also set save versions to zero in case accessed via compute_array() -fix_ave_correlate.cpp: memory->create(values,nrepeat,nvalues,"ave/correlate:values"); -fix_ave_correlate.cpp: memory->create(count,nrepeat,"ave/correlate:count"); -fix_ave_correlate.cpp: memory->create(save_count,nrepeat,"ave/correlate:save_count"); -fix_ave_correlate.cpp: memory->create(corr,nrepeat,npair,"ave/correlate:corr"); -fix_ave_correlate.cpp: memory->create(save_corr,nrepeat,npair,"ave/correlate:save_corr"); -fix_ave_correlate.cpp: // this fix produces a global array -fix_ave_correlate.cpp: // nvalid = next step on which end_of_step does something -fix_ave_correlate.cpp: // add nvalid to all computes that store invocation times -fix_ave_correlate.cpp: // since don't know a priori which are invoked by this fix -fix_ave_correlate.cpp: // once in end_of_step() can set timestep for ones actually invoked -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_correlate.cpp: // set current indices for all computes,fixes,variables -fix_ave_correlate.cpp: error->all(FLERR,"Compute ID for fix ave/correlate does not exist"); -fix_ave_correlate.cpp: error->all(FLERR,"Fix ID for fix ave/correlate does not exist"); -fix_ave_correlate.cpp: error->all(FLERR,"Variable name for fix ave/correlate does not exist"); -fix_ave_correlate.cpp: // need to reset nvalid if nvalid < ntimestep b/c minimize was performed -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- -fix_ave_correlate.cpp:------------------------------------------------------------------------- */ -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_correlate.cpp: // skip if not step which requires doing something -fix_ave_correlate.cpp: // error check if timestep was reset in an invalid manner -fix_ave_correlate.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/correlate"); -fix_ave_correlate.cpp: // accumulate results of computes,fixes,variables to origin -fix_ave_correlate.cpp: // compute/fix/variable may invoke computes so wrap with clear/add -fix_ave_correlate.cpp: // lastindex = index in values ring of latest time sample -fix_ave_correlate.cpp: // invoke compute if not previously invoked -fix_ave_correlate.cpp: // access fix fields, guaranteed to be ready -fix_ave_correlate.cpp: // evaluate equal-style or vector-style variable -fix_ave_correlate.cpp: // fistindex = index in values ring of earliest time sample -fix_ave_correlate.cpp: // nsample = number of time samples in values ring -fix_ave_correlate.cpp: // calculate all Cij() enabled by latest values -fix_ave_correlate.cpp: // save results in save_count and save_corr -fix_ave_correlate.cpp: save_corr[i][j] = prefactor*corr[i][j]/count[i]; -fix_ave_correlate.cpp: // output result to file -fix_ave_correlate.cpp: fprintf(fp," %g",prefactor*corr[i][j]/count[i]); -fix_ave_correlate.cpp: // zero accumulation if requested -fix_ave_correlate.cpp: // recalculate Cij(0) -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- -fix_ave_correlate.cpp:------------------------------------------------------------------------- */ -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- -fix_ave_correlate.cpp:------------------------------------------------------------------------- */ -fix_ave_correlate.cpp:/* ---------------------------------------------------------------------- -fix_ave_correlate.cpp:------------------------------------------------------------------------- */ -fix_ave_correlate.cpp: if (nvalid % nevery) nvalid = (nvalid/nevery)*nevery + nevery; -fix_aveforce.cpp:/* ---------------------------------------------------------------------- -fix_aveforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_aveforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_aveforce.cpp:------------------------------------------------------------------------- */ -fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ -fix_aveforce.cpp: // optional args -fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ -fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ -fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ -fix_aveforce.cpp: // check variables -fix_aveforce.cpp: // set index and check validity of region -fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ -fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ -fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ -fix_aveforce.cpp: // update region if necessary -fix_aveforce.cpp: // sum forces on participating atoms -fix_aveforce.cpp: // average the force on participating atoms -fix_aveforce.cpp: // add in requested amount, computed via variable evaluation if necessary -fix_aveforce.cpp: // wrap variable evaluation with clear/add -fix_aveforce.cpp: fave[0] = foriginal_all[0]/ncount + xvalue; -fix_aveforce.cpp: fave[1] = foriginal_all[1]/ncount + yvalue; -fix_aveforce.cpp: fave[2] = foriginal_all[2]/ncount + zvalue; -fix_aveforce.cpp: // set force of all participating atoms to same value -fix_aveforce.cpp: // only for active dimensions -fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ -fix_aveforce.cpp: // ave + extra force on selected RESPA level -fix_aveforce.cpp: // just ave on all other levels -fix_aveforce.cpp: fave[0] = foriginal_all[0]/ncount; -fix_aveforce.cpp: fave[1] = foriginal_all[1]/ncount; -fix_aveforce.cpp: fave[2] = foriginal_all[2]/ncount; -fix_aveforce.cpp:/* ---------------------------------------------------------------------- */ -fix_aveforce.cpp:/* ---------------------------------------------------------------------- -fix_aveforce.cpp:------------------------------------------------------------------------- */ -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_ave_histo.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_ave_histo.cpp:------------------------------------------------------------------------- */ -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_histo.cpp: if (narg < 10) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: // scan values to count them -fix_ave_histo.cpp: // then read options so know mode = SCALAR/VECTOR before re-reading values -fix_ave_histo.cpp: if (nvalues == 0) error->all(FLERR,"No values in fix ave/histo command"); -fix_ave_histo.cpp: // expand args if any have wildcard character "*" -fix_ave_histo.cpp: // this can reset nvalues -fix_ave_histo.cpp: // parse values -fix_ave_histo.cpp: error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: // if wildcard expansion occurred, free earg memory from expand_args() -fix_ave_histo.cpp: // setup and error check -fix_ave_histo.cpp: // kind = inputs are all global, or all per-atom, or all local -fix_ave_histo.cpp: // for fix inputs, check that fix frequency is acceptable -fix_ave_histo.cpp: error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (lo >= hi) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (nbins <= 0) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (c_id < 0) error->all(FLERR,"Fix ave/histo input is invalid compute"); -fix_ave_histo.cpp: else error->all(FLERR,"Fix ave/histo input is invalid compute"); -fix_ave_histo.cpp: if (f_id < 0) error->all(FLERR,"Fix ave/histo input is invalid fix"); -fix_ave_histo.cpp: else error->all(FLERR,"Fix ave/histo input is invalid fix"); -fix_ave_histo.cpp: if (ivariable < 0) error->all(FLERR,"Fix ave/histo input is invalid variable"); -fix_ave_histo.cpp: else error->all(FLERR,"Fix ave/histo input is invalid variable"); -fix_ave_histo.cpp: "Fix ave/histo inputs are not all global, peratom, or local"); -fix_ave_histo.cpp: "Fix ave/histo cannot input per-atom values in scalar mode"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo cannot input local values in scalar mode"); -fix_ave_histo.cpp: error->all(FLERR,"Compute ID for fix ave/histo does not exist"); -fix_ave_histo.cpp: "Fix ave/histo compute does not calculate a global scalar"); -fix_ave_histo.cpp: "Fix ave/histo compute does not calculate a global vector"); -fix_ave_histo.cpp: "Fix ave/histo compute vector is accessed out-of-range"); -fix_ave_histo.cpp: error->all(FLERR,"Compute ID for fix ave/histo does not exist"); -fix_ave_histo.cpp: "Fix ave/histo compute does not calculate a global vector"); -fix_ave_histo.cpp: "Fix ave/histo compute does not calculate a global array"); -fix_ave_histo.cpp: "Fix ave/histo compute array is accessed out-of-range"); -fix_ave_histo.cpp: error->all(FLERR,"Compute ID for fix ave/histo does not exist"); -fix_ave_histo.cpp: "Fix ave/histo compute does not calculate per-atom values"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo compute does not " -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo compute does not " -fix_ave_histo.cpp: "Fix ave/histo compute array is accessed out-of-range"); -fix_ave_histo.cpp: error->all(FLERR,"Compute ID for fix ave/histo does not exist"); -fix_ave_histo.cpp: "Fix ave/histo compute does not calculate local values"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo compute does not " -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo compute does not " -fix_ave_histo.cpp: "Fix ave/histo compute array is accessed out-of-range"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ID for fix ave/histo does not exist"); -fix_ave_histo.cpp: "Fix ave/histo fix does not calculate a global scalar"); -fix_ave_histo.cpp: "Fix ave/histo fix does not calculate a global vector"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix vector is accessed out-of-range"); -fix_ave_histo.cpp: "Fix for fix ave/histo not computed at compatible time"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ID for fix ave/histo does not exist"); -fix_ave_histo.cpp: "Fix ave/histo fix does not calculate a global vector"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not calculate a global array"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix array is accessed out-of-range"); -fix_ave_histo.cpp: "Fix for fix ave/histo not computed at compatible time"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ID for fix ave/histo does not exist"); -fix_ave_histo.cpp: "Fix ave/histo fix does not calculate per-atom values"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not " -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not " -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix array is accessed out-of-range"); -fix_ave_histo.cpp: "Fix for fix ave/histo not computed at compatible time"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ID for fix ave/histo does not exist"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not calculate local values"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not " -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix does not " -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo fix array is accessed out-of-range"); -fix_ave_histo.cpp: "Fix for fix ave/histo not computed at compatible time"); -fix_ave_histo.cpp: error->all(FLERR,"Variable name for fix ave/histo does not exist"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable is not equal-style variable"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable is not vector-style variable"); -fix_ave_histo.cpp: error->all(FLERR,"Variable name for fix ave/histo does not exist"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable is not vector-style variable"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable cannot be indexed"); -fix_ave_histo.cpp: error->all(FLERR,"Variable name for fix ave/histo does not exist"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable is not atom-style variable"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ave/histo variable cannot be indexed"); -fix_ave_histo.cpp: // print file comment lines -fix_ave_histo.cpp: else fprintf(fp,"# Bin Coord Count Count/Total\n"); -fix_ave_histo.cpp: // allocate and initialize memory for averaging -fix_ave_histo.cpp: memory->create(stats_list,nwindow,4,"ave/histo:stats_list"); -fix_ave_histo.cpp: memory->create(bin_list,nwindow,nbins,"ave/histo:bin_list"); -fix_ave_histo.cpp: // initializations -fix_ave_histo.cpp: // set coord to bin centers -fix_ave_histo.cpp: binsize = (hi-lo)/(nbins-2); -fix_ave_histo.cpp: bininv = 1.0/binsize; -fix_ave_histo.cpp: binsize = (hi-lo)/nbins; -fix_ave_histo.cpp: bininv = 1.0/binsize; -fix_ave_histo.cpp: // nvalid = next step on which end_of_step does something -fix_ave_histo.cpp: // add nvalid to all computes that store invocation times -fix_ave_histo.cpp: // since don't know a priori which are invoked by this fix -fix_ave_histo.cpp: // once in end_of_step() can set timestep for ones actually invoked -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_histo.cpp: // set current indices for all computes,fixes,variables -fix_ave_histo.cpp: error->all(FLERR,"Compute ID for fix ave/histo does not exist"); -fix_ave_histo.cpp: error->all(FLERR,"Fix ID for fix ave/histo does not exist"); -fix_ave_histo.cpp: error->all(FLERR,"Variable name for fix ave/histo does not exist"); -fix_ave_histo.cpp: // need to reset nvalid if nvalid < ntimestep b/c minimize was performed -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo.cpp:------------------------------------------------------------------------- */ -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_histo.cpp: // skip if not step which requires doing something -fix_ave_histo.cpp: // error check if timestep was reset in an invalid manner -fix_ave_histo.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/histo"); -fix_ave_histo.cpp: // zero if first step -fix_ave_histo.cpp: // accumulate results of computes,fixes,variables to local copy -fix_ave_histo.cpp: // compute/fix/variable may invoke computes so wrap with clear/add -fix_ave_histo.cpp: // atom attributes -fix_ave_histo.cpp: // invoke compute if not previously invoked -fix_ave_histo.cpp: // access fix fields, guaranteed to be ready -fix_ave_histo.cpp: // evaluate equal-style or vector-style or atom-style variable -fix_ave_histo.cpp: memory->create(vector,maxatom,"ave/histo:vector"); -fix_ave_histo.cpp: // done if irepeat < nrepeat -fix_ave_histo.cpp: // else reset irepeat and nvalid -fix_ave_histo.cpp: // merge histogram stats across procs if necessary -fix_ave_histo.cpp: // if ave = ONE, only single Nfreq timestep value is needed -fix_ave_histo.cpp: // if ave = RUNNING, combine with all previous Nfreq timestep values -fix_ave_histo.cpp: // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values -fix_ave_histo.cpp: // output result to file -fix_ave_histo.cpp: i+1,coord[i],bin_total[i],bin_total[i]/stats_total[0]); -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo.cpp:------------------------------------------------------------------------- */ -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo.cpp:------------------------------------------------------------------------- */ -fix_ave_histo.cpp: else if (stats_total[0] != 0.0) return bin_total[i]/stats_total[0]; -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo.cpp:------------------------------------------------------------------------- */ -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo.cpp:------------------------------------------------------------------------- */ -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo.cpp:------------------------------------------------------------------------- */ -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo.cpp:------------------------------------------------------------------------- */ -fix_ave_histo.cpp: // option defaults -fix_ave_histo.cpp: // optional args -fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: sprintf(str,"Cannot open fix ave/histo file %s",arg[iarg+1]); -fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: else error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (nwindow <= 0) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: else error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: else error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp: } else error->all(FLERR,"Illegal fix ave/histo command"); -fix_ave_histo.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo.cpp:------------------------------------------------------------------------- */ -fix_ave_histo.cpp: bigint nvalid = (update->ntimestep/nfreq)*nfreq + nfreq; -fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo_weight.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_ave_histo_weight.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_ave_histo_weight.cpp:------------------------------------------------------------------------- */ -fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo_weight.cpp:------------------------------------------------------------------------- */ -fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_histo_weight.cpp: // nvalues = 2 required for histo/weight -fix_ave_histo_weight.cpp: if (nvalues != 2) error->all(FLERR,"Illegal fix ave/histo/weight command"); -fix_ave_histo_weight.cpp: // check that length of 2 values is the same -fix_ave_histo_weight.cpp: error->all(FLERR,"Fix ave/histo/weight value and weight vector " -fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_histo_weight.cpp: // skip if not step which requires doing something -fix_ave_histo_weight.cpp: // error check if timestep was reset in an invalid manner -fix_ave_histo_weight.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/histo"); -fix_ave_histo_weight.cpp: // zero if first step -fix_ave_histo_weight.cpp: // first calculate weight factors, then bin single value -fix_ave_histo_weight.cpp: // accumulate results of computes,fixes,variables to local copy -fix_ave_histo_weight.cpp: // compute/fix/variable may invoke computes so wrap with clear/add -fix_ave_histo_weight.cpp: // calculate weight factors which are 2nd value (i = 1) -fix_ave_histo_weight.cpp: // atom attributes -fix_ave_histo_weight.cpp: // invoke compute if not previously invoked -fix_ave_histo_weight.cpp: // access fix fields, guaranteed to be ready -fix_ave_histo_weight.cpp: error->all(FLERR,"Fix ave/histo/weight option not yet supported"); -fix_ave_histo_weight.cpp: // NOTE: need to allocate local storage -fix_ave_histo_weight.cpp: // evaluate equal-style variable -fix_ave_histo_weight.cpp: memory->create(vector,maxatom,"ave/histo/weight:vector"); -fix_ave_histo_weight.cpp: // bin values using weights, values are 1st value (i = 0) -fix_ave_histo_weight.cpp: // atom attributes -fix_ave_histo_weight.cpp: // invoke compute if not previously invoked -fix_ave_histo_weight.cpp: // access fix fields, guaranteed to be ready -fix_ave_histo_weight.cpp: // evaluate equal-style variable -fix_ave_histo_weight.cpp: memory->create(vector,maxatom,"ave/histo/weight:vector"); -fix_ave_histo_weight.cpp: // code beyond this point is identical to FixAveHisto -fix_ave_histo_weight.cpp: // done if irepeat < nrepeat -fix_ave_histo_weight.cpp: // else reset irepeat and nvalid -fix_ave_histo_weight.cpp: // merge histogram stats across procs if necessary -fix_ave_histo_weight.cpp: // if ave = ONE, only single Nfreq timestep value is needed -fix_ave_histo_weight.cpp: // if ave = RUNNING, combine with all previous Nfreq timestep values -fix_ave_histo_weight.cpp: // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values -fix_ave_histo_weight.cpp: // output result to file -fix_ave_histo_weight.cpp: i+1,coord[i],bin_total[i],bin_total[i]/stats_total[0]); -fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo_weight.cpp:------------------------------------------------------------------------- */ -fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo_weight.cpp:------------------------------------------------------------------------- */ -fix_ave_histo_weight.cpp:/* ---------------------------------------------------------------------- -fix_ave_histo_weight.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp:/* ---------------------------------------------------------------------- -fix_ave_time.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_ave_time.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_ave_time.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp:/* ---------------------------------------------------------------------- -fix_ave_time.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_time.cpp: if (narg < 7) error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: // scan values to count them -fix_ave_time.cpp: // then read options so know mode = SCALAR/VECTOR before re-reading values -fix_ave_time.cpp: if (nvalues == 0) error->all(FLERR,"No values in fix ave/time command"); -fix_ave_time.cpp: // expand args if any have wildcard character "*" -fix_ave_time.cpp: // this can reset nvalues -fix_ave_time.cpp: // parse values -fix_ave_time.cpp: error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: // set off columns now that nvalues is finalized -fix_ave_time.cpp: error->all(FLERR,"Invalid fix ave/time off column"); -fix_ave_time.cpp: // setup and error check -fix_ave_time.cpp: // for fix inputs, check that fix frequency is acceptable -fix_ave_time.cpp: // set variable_length if any compute is variable length -fix_ave_time.cpp: error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: error->all(FLERR,"Compute ID for fix ave/time does not exist"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time compute does not calculate a scalar"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time compute does not calculate a vector"); -fix_ave_time.cpp: "Fix ave/time compute vector is accessed out-of-range"); -fix_ave_time.cpp: error->all(FLERR,"Compute ID for fix ave/time does not exist"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time compute does not calculate a vector"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time compute does not calculate an array"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time compute array is accessed out-of-range"); -fix_ave_time.cpp: error->all(FLERR,"Fix ID for fix ave/time does not exist"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix does not calculate a scalar"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix does not calculate a vector"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix vector cannot be variable length"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix vector is accessed out-of-range"); -fix_ave_time.cpp: "Fix for fix ave/time not computed at compatible time"); -fix_ave_time.cpp: error->all(FLERR,"Fix ID for fix ave/time does not exist"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix does not calculate a vector"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix does not calculate an array"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix array cannot be variable length"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time fix array is accessed out-of-range"); -fix_ave_time.cpp: "Fix for fix ave/time not computed at compatible time"); -fix_ave_time.cpp: error->all(FLERR,"Variable name for fix ave/time does not exist"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time variable is not equal-style variable"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time variable is not vector-style variable"); -fix_ave_time.cpp: error->all(FLERR,"Variable name for fix ave/time does not exist"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time variable is not vector-style variable"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time mode vector variable cannot be indexed"); -fix_ave_time.cpp: // all_variable_length = 1 if all values are variable length -fix_ave_time.cpp: // any_variable_length = 1 if any values are variable length -fix_ave_time.cpp: // if VECTOR mode, check that all columns are same length -fix_ave_time.cpp: // nrows = # of rows in output array -fix_ave_time.cpp: // if all columns are variable length, just set nrows = 1 for now -fix_ave_time.cpp: memory->create(column,nrows,"ave/time:column"); -fix_ave_time.cpp: // enable locking of row count by this fix for computes of variable length -fix_ave_time.cpp: // only if nrepeat > 1 or ave = RUNNING/WINDOW, -fix_ave_time.cpp: // so that locking spans multiple timesteps -fix_ave_time.cpp: // print file comment lines -fix_ave_time.cpp: // for mode = VECTOR, cannot use arg to print -fix_ave_time.cpp: // since array args may have been expanded to multiple vectors -fix_ave_time.cpp: // if wildcard expansion occurred, free earg memory from expand_args() -fix_ave_time.cpp: // wait to do this until after file comment lines are printed -fix_ave_time.cpp: // allocate memory for averaging -fix_ave_time.cpp: memory->create(vector_list,nwindow,nvalues,"ave/time:vector_list"); -fix_ave_time.cpp: // this fix produces either a global scalar or vector or array -fix_ave_time.cpp: // SCALAR mode produces either a scalar or vector -fix_ave_time.cpp: // VECTOR mode produces either a vector or array -fix_ave_time.cpp: // intensive/extensive flags set by compute,fix,variable that produces value -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time cannot set output array " -fix_ave_time.cpp: "intensive/extensive from these inputs"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time cannot set output array " -fix_ave_time.cpp: "intensive/extensive from these inputs"); -fix_ave_time.cpp: // initializations -fix_ave_time.cpp: // set vector_total to zero since it accumulates -fix_ave_time.cpp: // array_total already zeroed in allocate_arrays -fix_ave_time.cpp: // nvalid = next step on which end_of_step does something -fix_ave_time.cpp: // add nvalid to all computes that store invocation times -fix_ave_time.cpp: // since don't know a priori which are invoked by this fix -fix_ave_time.cpp: // once in end_of_step() can set timestep for ones actually invoked -fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_time.cpp: // decrement lock counter in compute chunk/atom, it if still exists -fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_time.cpp: // set current indices for all computes,fixes,variables -fix_ave_time.cpp: error->all(FLERR,"Compute ID for fix ave/time does not exist"); -fix_ave_time.cpp: error->all(FLERR,"Fix ID for fix ave/time does not exist"); -fix_ave_time.cpp: error->all(FLERR,"Variable name for fix ave/time does not exist"); -fix_ave_time.cpp: // need to reset nvalid if nvalid < ntimestep b/c minimize was performed -fix_ave_time.cpp:/* ---------------------------------------------------------------------- -fix_ave_time.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_time.cpp: // skip if not step which requires doing something -fix_ave_time.cpp: // error check if timestep was reset in an invalid manner -fix_ave_time.cpp: error->all(FLERR,"Invalid timestep reset for fix ave/time"); -fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_time.cpp: // zero if first sample within single Nfreq epoch -fix_ave_time.cpp: // if any input is variable length, initialize current length -fix_ave_time.cpp: // check for exceeding length is done below -fix_ave_time.cpp: // accumulate results of computes,fixes,variables to local copy -fix_ave_time.cpp: // compute/fix/variable may invoke computes so wrap with clear/add -fix_ave_time.cpp: // invoke compute if not previously invoked -fix_ave_time.cpp: // insure no out-of-range access to variable-length compute vector -fix_ave_time.cpp: // access fix fields, guaranteed to be ready -fix_ave_time.cpp: // evaluate equal-style or vector-style variable -fix_ave_time.cpp: // insure no out-of-range access to vector-style variable -fix_ave_time.cpp: // add value to vector or just set directly if offcol is set -fix_ave_time.cpp: // done if irepeat < nrepeat -fix_ave_time.cpp: // else reset irepeat and nvalid -fix_ave_time.cpp: // average the final result for the Nfreq timestep -fix_ave_time.cpp: if (offcol[i] == 0) vector[i] /= repeat; -fix_ave_time.cpp: // if ave = ONE, only single Nfreq timestep value is needed -fix_ave_time.cpp: // if ave = RUNNING, combine with all previous Nfreq timestep values -fix_ave_time.cpp: // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values -fix_ave_time.cpp: // insure any columns with offcol set are effectively set to last value -fix_ave_time.cpp: // output result to file -fix_ave_time.cpp: for (i = 0; i < nvalues; i++) fprintf(fp,format,vector_total[i]/norm); -fix_ave_time.cpp:/* ---------------------------------------------------------------------- */ -fix_ave_time.cpp: // first sample within single Nfreq epoch -fix_ave_time.cpp: // zero out arrays that accumulate over many samples, but not across epochs -fix_ave_time.cpp: // invoke setup_chunks() to determine current nchunk -fix_ave_time.cpp: // re-allocate per-chunk arrays if needed -fix_ave_time.cpp: // invoke lock() in two cases: -fix_ave_time.cpp: // if nrepeat > 1: so nchunk cannot change until Nfreq epoch is over, -fix_ave_time.cpp: // will be unlocked on last repeat of this Nfreq -fix_ave_time.cpp: // if ave = RUNNING/WINDOW and not yet locked: -fix_ave_time.cpp: // set forever, will be unlocked in fix destructor -fix_ave_time.cpp: // wrap setup_chunks in clearstep/addstep b/c it may invoke computes -fix_ave_time.cpp: // both nevery and nfreq are future steps, -fix_ave_time.cpp: // since call below to cchunk->ichunk() -fix_ave_time.cpp: // does not re-invoke internal cchunk compute on this same step -fix_ave_time.cpp: memory->create(column,nrows,"ave/time:column"); -fix_ave_time.cpp: // accumulate results of computes,fixes,variables to local copy -fix_ave_time.cpp: // compute/fix/variable may invoke computes so wrap with clear/add -fix_ave_time.cpp: // invoke compute if not previously invoked -fix_ave_time.cpp: // access fix fields, guaranteed to be ready -fix_ave_time.cpp: // evaluate vector-style variable -fix_ave_time.cpp: // insure nvec = nrows, else error -fix_ave_time.cpp: // could be different on this timestep than when column_length(1) set nrows -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time vector-style variable changed length"); -fix_ave_time.cpp: // add columns of values to array or just set directly if offcol is set -fix_ave_time.cpp: // done if irepeat < nrepeat -fix_ave_time.cpp: // else reset irepeat and nvalid -fix_ave_time.cpp: // unlock any variable length computes at end of Nfreq epoch -fix_ave_time.cpp: // do not unlock if ave = RUNNING or WINDOW -fix_ave_time.cpp: // average the final result for the Nfreq timestep -fix_ave_time.cpp: if (offcol[j] == 0) array[i][j] /= repeat; -fix_ave_time.cpp: // if ave = ONE, only single Nfreq timestep value is needed -fix_ave_time.cpp: // if ave = RUNNING, combine with all previous Nfreq timestep values -fix_ave_time.cpp: // if ave = WINDOW, combine with nwindow most recent Nfreq timestep values -fix_ave_time.cpp: // insure any columns with offcol set are effectively set to last value -fix_ave_time.cpp: // output result to file -fix_ave_time.cpp: for (j = 0; j < nvalues; j++) fprintf(fp,format,array_total[i][j]/norm); -fix_ave_time.cpp:/* ---------------------------------------------------------------------- -fix_ave_time.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp: // determine nrows for static values -fix_ave_time.cpp: // variables are always varlen = 1, so dynamic -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time columns are inconsistent lengths"); -fix_ave_time.cpp: // determine new nrows for dynamic values -fix_ave_time.cpp: // either all must be the same -fix_ave_time.cpp: // or must match other static values -fix_ave_time.cpp: // don't need to check if not MODE = VECTOR, just invoke lock_length() -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time columns are inconsistent lengths"); -fix_ave_time.cpp: error->all(FLERR,"Fix ave/time columns are inconsistent lengths"); -fix_ave_time.cpp:/* ---------------------------------------------------------------------- -fix_ave_time.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp: if (norm) return vector_total[0]/norm; -fix_ave_time.cpp:/* ---------------------------------------------------------------------- -fix_ave_time.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp: if (mode == SCALAR) return vector_total[i]/norm; -fix_ave_time.cpp: if (mode == VECTOR) return array_total[i][0]/norm; -fix_ave_time.cpp:/* ---------------------------------------------------------------------- -fix_ave_time.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp: if (norm) return array_total[i][j]/norm; -fix_ave_time.cpp:/* ---------------------------------------------------------------------- -fix_ave_time.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp: // option defaults -fix_ave_time.cpp: // optional args -fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: sprintf(str,"Cannot open fix ave/time file %s",arg[iarg+1]); -fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: else error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: if (iarg+3 > narg) error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: if (nwindow <= 0) error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: else error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: memory->grow(offlist,noff+1,"ave/time:offlist"); -fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/spatial command"); -fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/spatial command"); -fix_ave_time.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix ave/spatial command"); -fix_ave_time.cpp: } else error->all(FLERR,"Illegal fix ave/time command"); -fix_ave_time.cpp:/* ---------------------------------------------------------------------- -fix_ave_time.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp: memory->create(array,nrows,nvalues,"ave/time:array"); -fix_ave_time.cpp: memory->create(array_total,nrows,nvalues,"ave/time:array_total"); -fix_ave_time.cpp: memory->create(array_list,nwindow,nrows,nvalues,"ave/time:array_list"); -fix_ave_time.cpp: // reinitialize regrown array_total since it accumulates -fix_ave_time.cpp:/* ---------------------------------------------------------------------- -fix_ave_time.cpp:------------------------------------------------------------------------- */ -fix_ave_time.cpp: bigint nvalid = (update->ntimestep/nfreq)*nfreq + nfreq; -fix_balance.cpp:/* ---------------------------------------------------------------------- -fix_balance.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_balance.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_balance.cpp:------------------------------------------------------------------------- */ -fix_balance.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files -fix_balance.cpp:/* ---------------------------------------------------------------------- */ -fix_balance.cpp: // parse required arguments -fix_balance.cpp: // error checks -fix_balance.cpp: // create instance of Balance class -fix_balance.cpp: // if SHIFT, initialize it with params -fix_balance.cpp: // process remaining optional args via Balance -fix_balance.cpp: // create instance of Irregular class -fix_balance.cpp: // only force reneighboring if nevery > 0 -fix_balance.cpp: // compute initial outputs -fix_balance.cpp:/* ---------------------------------------------------------------------- */ -fix_balance.cpp:/* ---------------------------------------------------------------------- */ -fix_balance.cpp:/* ---------------------------------------------------------------------- */ -fix_balance.cpp:/* ---------------------------------------------------------------------- */ -fix_balance.cpp:/* ---------------------------------------------------------------------- */ -fix_balance.cpp: // compute final imbalance factor if setup_pre_exchange() invoked balancer -fix_balance.cpp: // this is called at end of run setup, before output -fix_balance.cpp:/* ---------------------------------------------------------------------- */ -fix_balance.cpp: // do not allow rebalancing twice on same timestep -fix_balance.cpp: // even if wanted to, can mess up elapsed time in ImbalanceTime -fix_balance.cpp: // insure atoms are in current box & update box via shrink-wrap -fix_balance.cpp: // has to be be done before rebalance() invokes Irregular::migrate_atoms() -fix_balance.cpp: // since it requires atoms be inside simulation box -fix_balance.cpp: // even though pbc() will be done again in Verlet::run() -fix_balance.cpp: // no exchange() since doesn't matter if atoms are assigned to correct procs -fix_balance.cpp: // perform a rebalance if threshold exceeded -fix_balance.cpp: // next timestep to rebalance -fix_balance.cpp: if (nevery) next_reneighbor = (update->ntimestep/nevery)*nevery + nevery; -fix_balance.cpp:/* ---------------------------------------------------------------------- -fix_balance.cpp:------------------------------------------------------------------------- */ -fix_balance.cpp: // return if not a rebalance timestep -fix_balance.cpp: // do not allow rebalancing twice on same timestep -fix_balance.cpp: // even if wanted to, can mess up elapsed time in ImbalanceTime -fix_balance.cpp: // insure atoms are in current box & update box via shrink-wrap -fix_balance.cpp: // no exchange() since doesn't matter if atoms are assigned to correct procs -fix_balance.cpp: // perform a rebalance if threshold exceeded -fix_balance.cpp: // if weight variable is used, wrap weight setting in clear/add compute -fix_balance.cpp: // next timestep to rebalance -fix_balance.cpp: if (nevery) next_reneighbor = (update->ntimestep/nevery)*nevery + nevery; -fix_balance.cpp:/* ---------------------------------------------------------------------- -fix_balance.cpp:------------------------------------------------------------------------- */ -fix_balance.cpp:/* ---------------------------------------------------------------------- -fix_balance.cpp:------------------------------------------------------------------------- */ -fix_balance.cpp: // invoke balancer and reset comm->uniform flag -fix_balance.cpp: // output of new decomposition -fix_balance.cpp: // reset proc sub-domains -fix_balance.cpp: // check and warn if any proc's subbox is smaller than neigh skin -fix_balance.cpp: // since may lead to lost atoms in exchange() -fix_balance.cpp: // move atoms to new processors via irregular() -fix_balance.cpp: // only needed if migrate_check() says an atom moves to far -fix_balance.cpp: // else allow caller's comm->exchange() to do it -fix_balance.cpp: // invoke KSpace setup_grid() to adjust to new proc sub-domains -fix_balance.cpp: // pending triggers pre_neighbor() to compute final imbalance factor -fix_balance.cpp: // can only be done after atoms migrate in comm->exchange() -fix_balance.cpp:/* ---------------------------------------------------------------------- -fix_balance.cpp:------------------------------------------------------------------------- */ -fix_balance.cpp:/* ---------------------------------------------------------------------- -fix_balance.cpp:------------------------------------------------------------------------- */ -fix_balance.cpp:/* ---------------------------------------------------------------------- -fix_balance.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_box_relax.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp:#define MAX_LIFO_DEPTH 2 // 3 box0 arrays in *.h dimensioned to this -fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ -fix_box_relax.cpp: if (narg < 5) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: // default values -fix_box_relax.cpp: // turn on tilt factor scaling, whenever applicable -fix_box_relax.cpp: // set fixed-point to default = center of cell -fix_box_relax.cpp: // process keywords -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: else error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: else error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (nreset_h0 < 0) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: else error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: else error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: else error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: } else error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: // error checks -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command for a 2d simulation"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command pressure settings"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command pressure settings"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command pressure settings"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command pressure settings"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax command pressure settings"); -fix_box_relax.cpp: // require periodicity in tensile dimension -fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax on a non-periodic dimension"); -fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax on a non-periodic dimension"); -fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax on a non-periodic dimension"); -fix_box_relax.cpp: // require periodicity in 2nd dim of off-diagonal tilt component -fix_box_relax.cpp: "Cannot use fix box/relax on a 2nd non-periodic dimension"); -fix_box_relax.cpp: "Cannot use fix box/relax on a 2nd non-periodic dimension"); -fix_box_relax.cpp: "Cannot use fix box/relax on a 2nd non-periodic dimension"); -fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax " -fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax " -fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax " -fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax with " -fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax with " -fix_box_relax.cpp: error->all(FLERR,"Cannot use fix box/relax with " -fix_box_relax.cpp: error->all(FLERR,"Can not specify Pxy/Pxz/Pyz in " -fix_box_relax.cpp: "fix box/relax with non-triclinic box"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax pressure settings"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax pressure settings"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax pressure settings"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax pressure settings"); -fix_box_relax.cpp: error->all(FLERR,"Invalid fix box/relax pressure settings"); -fix_box_relax.cpp: if (vmax <= 0.0) error->all(FLERR,"Illegal fix box/relax command"); -fix_box_relax.cpp: // pstyle = TRICLINIC if any off-diagonal term is controlled -> 6 dof -fix_box_relax.cpp: // else pstyle = ISO if XYZ coupling or XY coupling in 2d -> 1 dof -fix_box_relax.cpp: // else pstyle = ANISO -> 3 dof -fix_box_relax.cpp: // create a new compute temp style -fix_box_relax.cpp: // id = fix-ID + temp -fix_box_relax.cpp: // compute group = all since pressure is always global (group all) -fix_box_relax.cpp: // and thus its KE/temperature contribution should use group all -fix_box_relax.cpp: // create a new compute pressure style (virial only) -fix_box_relax.cpp: // id = fix-ID + press, compute group = all -fix_box_relax.cpp: // pass id_temp as 4th arg to pressure constructor -fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ -fix_box_relax.cpp: // delete temperature and pressure if fix created them -fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ -fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ -fix_box_relax.cpp: // set temperature and pressure ptrs -fix_box_relax.cpp: error->all(FLERR,"Temperature ID for fix box/relax does not exist"); -fix_box_relax.cpp: error->all(FLERR,"Pressure ID for fix box/relax does not exist"); -fix_box_relax.cpp: pv2e = 1.0 / force->nktv2p; -fix_box_relax.cpp: // detect if any rigid fixes exist so rigid bodies move when box is remapped -fix_box_relax.cpp: // rfix[] = indices to each fix rigid -fix_box_relax.cpp: // initial box dimensions -fix_box_relax.cpp: // hydrostatic target pressure and deviatoric target stress -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp: // trigger virial computation on every iteration of minimizer -fix_box_relax.cpp: // compute energy, forces for each extra degree of freedom -fix_box_relax.cpp: // returned eng = PV must be in units of energy -fix_box_relax.cpp: // returned fextra must likewise be in units of energy -fix_box_relax.cpp: scale = domain->xprd/xprdinit; -fix_box_relax.cpp: if (p_flag[0]) scalex = domain->xprd/xprdinit; -fix_box_relax.cpp: if (p_flag[1]) scaley = domain->yprd/yprdinit; -fix_box_relax.cpp: if (p_flag[2]) scalez = domain->zprd/zprdinit; -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp: error->all(FLERR,"Attempt to push beyond stack limit in fix box/relax"); -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp: error->all(FLERR,"Attempt to pop empty stack in fix box/relax"); -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp: // if nreset_h0 > 0, reset reference box -fix_box_relax.cpp: // every nreset_h0 timesteps -fix_box_relax.cpp: // only needed for deviatoric external stress -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp: if (pstyle == ISO) alpha = vmax/fabs(hextra[0]); -fix_box_relax.cpp: if (p_flag[0]) alpha = MIN(alpha,vmax/fabs(hextra[0])); -fix_box_relax.cpp: if (p_flag[1]) alpha = MIN(alpha,vmax/fabs(hextra[1])); -fix_box_relax.cpp: if (p_flag[2]) alpha = MIN(alpha,vmax/fabs(hextra[2])); -fix_box_relax.cpp: if (p_flag[3]) alpha = MIN(alpha,vmax/fabs(hextra[3])); -fix_box_relax.cpp: if (p_flag[4]) alpha = MIN(alpha,vmax/fabs(hextra[4])); -fix_box_relax.cpp: if (p_flag[5]) alpha = MIN(alpha,vmax/fabs(hextra[5])); -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp: dilate the box and owned/ghost atoms around center of box -fix_box_relax.cpp:------------------------------------------------------------------------- */ -fix_box_relax.cpp: // rescale simulation box from linesearch starting point -fix_box_relax.cpp: // scale atom coords for all atoms or only for fix group atoms -fix_box_relax.cpp: // convert pertinent atoms and rigid bodies to lamda coords -fix_box_relax.cpp: // reset global and local box to new size/shape -fix_box_relax.cpp: domain->boxlo[i] = currentBoxLo0 + (currentBoxLo0 - fixedpoint[i])/domain->h[i]*ds[i]*h0[i]; -fix_box_relax.cpp: domain->boxhi[i] = currentBoxHi0 + (currentBoxHi0 - fixedpoint[i])/domain->h[i]*ds[i]*h0[i]; -fix_box_relax.cpp: error->all(FLERR,"Fix box/relax generated negative box length"); -fix_box_relax.cpp: // scale tilt factors with cell, if set -fix_box_relax.cpp: if (scaleyz) domain->yz = (domain->boxhi[2] - domain->boxlo[2])*h0[3]/h0[2]; -fix_box_relax.cpp: if (scalexz) domain->xz = (domain->boxhi[2] - domain->boxlo[2])*h0[4]/h0[2]; -fix_box_relax.cpp: if (scalexy) domain->xy = (domain->boxhi[1] - domain->boxlo[1])*h0[5]/h0[1]; -fix_box_relax.cpp: // convert pertinent atoms and rigid bodies back to box coords -fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ -fix_box_relax.cpp: double ave = 1.0/3.0 * (tensor[0] + tensor[1] + tensor[2]); -fix_box_relax.cpp: // switch order from xy-xz-yz to Voigt -fix_box_relax.cpp:/* ---------------------------------------------------------------------- */ -fix_box_relax.cpp: // reset id_temp of pressure to new temperature ID -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:-----------------------------------------------------------------------*/ -fix_box_relax.cpp: // reset reference box dimensions -fix_box_relax.cpp: // compute target deviatoric stress tensor pdevmod -fix_box_relax.cpp: // Modify to account for off-diagonal terms -fix_box_relax.cpp: // These equations come from the stationarity relation: -fix_box_relax.cpp: // Pdev,sys = Pdev,targ*hinv^t*hdiag -fix_box_relax.cpp: // where: -fix_box_relax.cpp: // Pdev,sys is the system deviatoric stress tensor, -fix_box_relax.cpp: // Pdev,targ = pdeviatoric, effective target deviatoric stress -fix_box_relax.cpp: // hinv^t is the transpose of the inverse h tensor -fix_box_relax.cpp: // hdiag is the diagonal part of the h tensor -fix_box_relax.cpp: // compute symmetric sigma tensor -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:-----------------------------------------------------------------------*/ -fix_box_relax.cpp: // compute strain energy = 0.5*Tr(sigma*h*h^t) in energy units -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:-----------------------------------------------------------------------*/ -fix_box_relax.cpp: // [ 0 5 4 ] [ 0 5 4 ] [ 0 5 4 ] -fix_box_relax.cpp: // [ 5 1 3 ] = [ - 1 3 ] [ 5 1 3 ] -fix_box_relax.cpp: // [ 4 3 2 ] [ - - 2 ] [ 4 3 2 ] -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp:-----------------------------------------------------------------------*/ -fix_box_relax.cpp: if (pflagsum) p_hydro /= pflagsum; -fix_box_relax.cpp:/* ---------------------------------------------------------------------- -fix_box_relax.cpp: ---------------------------------------------------------------------- */ -fix_controller.cpp:/* ---------------------------------------------------------------------- -fix_controller.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_controller.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_controller.cpp:------------------------------------------------------------------------- */ -fix_controller.cpp:/* ---------------------------------------------------------------------- */ -fix_controller.cpp: // process variable arg -fix_controller.cpp: // setpoint arg -fix_controller.cpp: // control variable arg -fix_controller.cpp: // error check -fix_controller.cpp:/* ---------------------------------------------------------------------- */ -fix_controller.cpp:/* ---------------------------------------------------------------------- */ -fix_controller.cpp:/* ---------------------------------------------------------------------- */ -fix_controller.cpp: // set sampling time -fix_controller.cpp:/* ---------------------------------------------------------------------- */ -fix_controller.cpp: // current value of pv = invocation of compute,fix,variable -fix_controller.cpp: // compute/fix/variable may invoke computes so wrap with clear/add -fix_controller.cpp: // invoke compute if not previously invoked -fix_controller.cpp: // access fix field, guaranteed to be ready -fix_controller.cpp: // evaluate equal-style variable -fix_controller.cpp: // new control var = f(old value, current process var, setpoint) -fix_controller.cpp: // cv = cvold -kp*err -ki*sumerr -kd*deltaerr -fix_controller.cpp: // note: this deviates from standard notation, which is -fix_controller.cpp: // cv = kp*err +ki*sumerr +kd*deltaerr -fix_controller.cpp: // the difference is in the sign and the time integral -fix_controller.cpp: // 3 terms of PID equation -fix_controller.cpp: // reset control variable -fix_controller.cpp:/* ---------------------------------------------------------------------- */ -fix_controller.cpp:/* ---------------------------------------------------------------------- -fix_controller.cpp:------------------------------------------------------------------------- */ -fix.cpp:/* ---------------------------------------------------------------------- -fix.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix.cpp:------------------------------------------------------------------------- */ -fix.cpp:// allocate space for static class instance variable and initialize it -fix.cpp:/* ---------------------------------------------------------------------- */ -fix.cpp: // fix ID, group, and style -fix.cpp: // ID must be all alphanumeric chars or underscores -fix.cpp: // reasonable defaults -fix.cpp: // however, each fix that uses these values should explicitly set them -fix.cpp: // per-atom virial -fix.cpp: // set vflag_atom = 0 b/c some fixes grow vatom in grow_arrays() -fix.cpp: // which may occur outside of timestepping -fix.cpp: // KOKKOS per-fix data masks -fix.cpp:/* ---------------------------------------------------------------------- */ -fix.cpp:/* ---------------------------------------------------------------------- -fix.cpp:------------------------------------------------------------------------- */ -fix.cpp: if (strcmp(arg[iarg],"dynamic/dof") == 0) { -fix.cpp:/* ---------------------------------------------------------------------- -fix.cpp:------------------------------------------------------------------------- */ -fix.cpp: eflag_atom = eflag / 2; -fix.cpp: vflag_atom = vflag / 4; -fix.cpp: // reallocate per-atom arrays if necessary -fix.cpp: // zero accumulators -fix.cpp: // no global energy variable to zero (unlike pair,bond,angle,etc) -fix.cpp: // fixes tally it individually via fix_modify energy yes and compute_scalar() -fix.cpp:/* ---------------------------------------------------------------------- -fix.cpp:------------------------------------------------------------------------- */ -fix.cpp: vflag_atom = vflag / 4; -fix.cpp: // reallocate per-atom array if necessary -fix.cpp: // zero accumulators -fix.cpp:/* ---------------------------------------------------------------------- -fix.cpp: tally per-atom energy and global/per-atom virial into accumulators -fix.cpp: increment per-atom energy of each atom in list by 1/total fraction -fix.cpp: this method can be used when fix computes energy/forces in post_force() -fix.cpp:------------------------------------------------------------------------- */ -fix.cpp: double fraction = eng/total; -fix.cpp:/* ---------------------------------------------------------------------- -fix.cpp: increment global virial by n/total fraction -fix.cpp: increment per-atom virial of each atom in list by 1/total fraction -fix.cpp:------------------------------------------------------------------------- */ -fix.cpp: double fraction = n/total; -fix.cpp: double fraction = 1.0/total; -fix_deform.cpp:/* ---------------------------------------------------------------------- -fix_deform.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_deform.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_deform.cpp:------------------------------------------------------------------------- */ -fix_deform.cpp:/* ---------------------------------------------------------------------- -fix_deform.cpp:------------------------------------------------------------------------- */ -fix_deform.cpp:// same as domain.cpp, fix_nvt_sllod.cpp, compute_temp_deform.cpp -fix_deform.cpp:/* ---------------------------------------------------------------------- */ -fix_deform.cpp: // set defaults -fix_deform.cpp: // parse arguments -fix_deform.cpp: // read options from end of input line -fix_deform.cpp: // no x remap effectively moves atoms within box, so set restart_pbc -fix_deform.cpp: // setup dimflags used by other classes to check for volume-change conflicts -fix_deform.cpp: // no tensile deformation on shrink-wrapped dims -fix_deform.cpp: // b/c shrink wrap will change box-length -fix_deform.cpp: // no tilt deformation on shrink-wrapped 2nd dim -fix_deform.cpp: // b/c shrink wrap will change tilt factor in domain::reset_box() -fix_deform.cpp: // apply scaling to FINAL,DELTA,VEL,WIGGLE since they have dist/vel units -fix_deform.cpp: // for 3,4,5: scaling is in 1st dimension, e.g. x for xz -fix_deform.cpp: // for VOLUME, setup links to other dims -fix_deform.cpp: // fixed, dynamic1, dynamic2 -fix_deform.cpp: // set varflag -fix_deform.cpp: // set initial values at time fix deform is issued -fix_deform.cpp: // reneighboring only forced if flips can occur due to shape changes -fix_deform.cpp:/* ---------------------------------------------------------------------- */ -fix_deform.cpp: // reset domain's h_rate = 0.0, since this fix may have made it non-zero -fix_deform.cpp:/* ---------------------------------------------------------------------- */ -fix_deform.cpp:/* ---------------------------------------------------------------------- */ -fix_deform.cpp: // error if more than one fix deform -fix_deform.cpp: // domain, fix nvt/sllod, compute temp/deform only work on single h_rate -fix_deform.cpp: // Kspace setting -fix_deform.cpp: // elapsed time for entire simulation, including multiple runs if defined -fix_deform.cpp: // check variables for VARIABLE style -fix_deform.cpp: // set start/stop values for box size and shape -fix_deform.cpp: // if single run, start is current values -fix_deform.cpp: // if multiple runs enabled via run start/stop settings, -fix_deform.cpp: // start is value when fix deform was issued -fix_deform.cpp: // if VARIABLE or NONE, no need to set -fix_deform.cpp: 0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: 0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: // compute min/max for WIGGLE = extrema tilt factor will ever reach -fix_deform.cpp: set[i].amplitude*sin(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: set[i].amplitude*sin(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: set[i].amplitude*sin(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: set[i].amplitude*sin(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: // if using tilt TRATE, then initial tilt must be non-zero -fix_deform.cpp: // if yz changes and will cause box flip, then xy cannot be changing -fix_deform.cpp: // yz = [3], xy = [5] -fix_deform.cpp: // this is b/c the flips would induce continuous changes in xz -fix_deform.cpp: // in order to keep the edge vectors of the flipped shape matrix -fix_deform.cpp: // an integer combination of the edge vectors of the unflipped shape matrix -fix_deform.cpp: // VARIABLE for yz is error, since no way to calculate if box flip occurs -fix_deform.cpp: // WIGGLE lo/hi flip test is on min/max oscillation limit, not tilt_stop -fix_deform.cpp: // only trigger actual errors if flipflag is set -fix_deform.cpp: if (lo/(set[1].hi_start-set[1].lo_start) < -0.5 || -fix_deform.cpp: hi/(set[1].hi_start-set[1].lo_start) > 0.5) flag = 1; -fix_deform.cpp: if (lo/(set[1].hi_stop-set[1].lo_stop) < -0.5 || -fix_deform.cpp: hi/(set[1].hi_stop-set[1].lo_stop) > 0.5) flag = 1; -fix_deform.cpp: // set domain->h_rate values for use by domain and other fixes/computes -fix_deform.cpp: // initialize all rates to 0.0 -fix_deform.cpp: // cannot set here for TRATE,VOLUME,WIGGLE,VARIABLE since not constant -fix_deform.cpp: dlo_dt = (set[i].lo_stop - set[i].lo_start) / delt; -fix_deform.cpp: dhi_dt = (set[i].hi_stop - set[i].hi_start) / delt; -fix_deform.cpp: h_rate[i] = (set[i].tilt_stop - set[i].tilt_start) / delt; -fix_deform.cpp: // detect if any rigid fixes exist so rigid bodies can be rescaled -fix_deform.cpp: // rfix[] = indices to each fix rigid -fix_deform.cpp:/* ---------------------------------------------------------------------- -fix_deform.cpp:------------------------------------------------------------------------- */ -fix_deform.cpp:/* ---------------------------------------------------------------------- */ -fix_deform.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_deform.cpp: // wrap variable evaluations with clear/add -fix_deform.cpp: // set new box size -fix_deform.cpp: // for NONE, target is current box size -fix_deform.cpp: // for TRATE, set target directly based on current time, also set h_rate -fix_deform.cpp: // for WIGGLE, set target directly based on current time, also set h_rate -fix_deform.cpp: // for VARIABLE, set target directly via variable eval, also set h_rate -fix_deform.cpp: // for others except VOLUME, target is linear value between start and stop -fix_deform.cpp: 0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: 0.5*set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: h_rate[i] = TWOPI/set[i].tperiod * set[i].amplitude * -fix_deform.cpp: cos(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: // set new box size for VOLUME dims that are linked to other dims -fix_deform.cpp: // NOTE: still need to set h_rate for these dims -fix_deform.cpp: 0.5*(set[i].vol_start / -fix_deform.cpp: set[set[i].dynamic1].lo_target) / -fix_deform.cpp: 0.5*(set[i].vol_start / -fix_deform.cpp: set[set[i].dynamic1].lo_target) / -fix_deform.cpp: 0.5*(set[i].vol_start / -fix_deform.cpp: set[set[i].dynamic1].lo_target) / -fix_deform.cpp: 0.5*(set[i].vol_start / -fix_deform.cpp: set[set[i].dynamic1].lo_target) / -fix_deform.cpp: 0.5*sqrt(set[i].vol_start / -fix_deform.cpp: set[set[i].dynamic1].lo_target) / -fix_deform.cpp: 0.5*sqrt(set[i].vol_start / -fix_deform.cpp: set[set[i].dynamic1].lo_target) / -fix_deform.cpp: // for triclinic, set new box shape -fix_deform.cpp: // for NONE, target is current tilt -fix_deform.cpp: // for TRATE, set target directly based on current time. also set h_rate -fix_deform.cpp: // for WIGGLE, set target directly based on current time. also set h_rate -fix_deform.cpp: // for VARIABLE, set target directly via variable eval. also set h_rate -fix_deform.cpp: // for other styles, target is linear value between start and stop values -fix_deform.cpp: set[i].amplitude * sin(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: h_rate[i] = TWOPI/set[i].tperiod * set[i].amplitude * -fix_deform.cpp: cos(TWOPI*delt/set[i].tperiod); -fix_deform.cpp: // tilt_target can be large positive or large negative value -fix_deform.cpp: // add/subtract box lengths until tilt_target is closest to current value -fix_deform.cpp: double current = h[i]/h[idenom]; -fix_deform.cpp: while (set[i].tilt_target/denom - current > 0.0) -fix_deform.cpp: while (set[i].tilt_target/denom - current < 0.0) -fix_deform.cpp: if (fabs(set[i].tilt_target/denom - 1.0 - current) < -fix_deform.cpp: fabs(set[i].tilt_target/denom - current)) -fix_deform.cpp: // if any tilt ratios exceed 0.5, set flip = 1 and compute new tilt values -fix_deform.cpp: // do not flip in x or y if non-periodic (can tilt but not flip) -fix_deform.cpp: // this is b/c the box length would be changed (dramatically) by flip -fix_deform.cpp: // if yz tilt exceeded, adjust C vector by one B vector -fix_deform.cpp: // if xz tilt exceeded, adjust C vector by one A vector -fix_deform.cpp: // if xy tilt exceeded, adjust B vector by one A vector -fix_deform.cpp: // check yz first since it may change xz, then xz check comes after -fix_deform.cpp: // flip is performed on next timestep, before reneighboring in pre-exchange() -fix_deform.cpp: double xprdinv = 1.0 / xprd; -fix_deform.cpp: double yprdinv = 1.0 / yprd; -fix_deform.cpp: // convert atoms and rigid bodies to lamda coords -fix_deform.cpp: // reset global and local box to new size/shape -fix_deform.cpp: // only if deform fix is controlling the dimension -fix_deform.cpp: // convert atoms and rigid bodies back to box coords -fix_deform.cpp: // redo KSpace coeffs since box has changed -fix_deform.cpp:/* ---------------------------------------------------------------------- */ -fix_deform.cpp:/* ---------------------------------------------------------------------- -fix_deform.cpp:------------------------------------------------------------------------- */ -fix_deprecated.cpp:/* ---------------------------------------------------------------------- -fix_deprecated.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_deprecated.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_deprecated.cpp:------------------------------------------------------------------------- */ -fix_deprecated.cpp:/* ---------------------------------------------------------------------- */ -fix_deprecated.cpp: if (strncmp(style,"ave/spatial",11) == 0) { -fix_deprecated.cpp: "NOTE: The fix styles 'ave/spatial' and 'ave/spatial/sphere' have been replaced\n" -fix_deprecated.cpp: "by the more general fix ave/chunk and compute chunk/atom commands.\n" -fix_deprecated.cpp: "All ave/spatial and ave/spatial/sphere functionality is available in these\n" -fix_deprecated.cpp: "new commands. These ave/spatial keywords & options are part of fix ave/chunk:\n" -fix_deprecated.cpp: "These ave/spatial keywords & options for binning are part of compute chunk/atom:\n" -fix_drag.cpp:/* ---------------------------------------------------------------------- -fix_drag.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_drag.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_drag.cpp:------------------------------------------------------------------------- */ -fix_drag.cpp:/* ---------------------------------------------------------------------- */ -fix_drag.cpp:/* ---------------------------------------------------------------------- */ -fix_drag.cpp:/* ---------------------------------------------------------------------- */ -fix_drag.cpp:/* ---------------------------------------------------------------------- */ -fix_drag.cpp:/* ---------------------------------------------------------------------- */ -fix_drag.cpp: // apply drag force to atoms in group of magnitude f_mag -fix_drag.cpp: // apply in direction (r-r0) if atom is further than delta away -fix_drag.cpp: prefactor = f_mag/r; -fix_drag.cpp:/* ---------------------------------------------------------------------- */ -fix_drag.cpp:/* ---------------------------------------------------------------------- -fix_drag.cpp:------------------------------------------------------------------------- */ -fix_drag.cpp: // only sum across procs one time -fix_dt_reset.cpp:/* ---------------------------------------------------------------------- -fix_dt_reset.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_dt_reset.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_dt_reset.cpp:------------------------------------------------------------------------- */ -fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ -fix_dt_reset.cpp: if (narg < 7) error->all(FLERR,"Illegal fix dt/reset command"); -fix_dt_reset.cpp: // set time_depend, else elapsed time accumulation can be messed up -fix_dt_reset.cpp: if (nevery <= 0) error->all(FLERR,"Illegal fix dt/reset command"); -fix_dt_reset.cpp: if (minbound && tmin < 0.0) error->all(FLERR,"Illegal fix dt/reset command"); -fix_dt_reset.cpp: if (maxbound && tmax < 0.0) error->all(FLERR,"Illegal fix dt/reset command"); -fix_dt_reset.cpp: error->all(FLERR,"Illegal fix dt/reset command"); -fix_dt_reset.cpp: if (xmax <= 0.0) error->all(FLERR,"Illegal fix dt/reset command"); -fix_dt_reset.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix dt/reset command"); -fix_dt_reset.cpp: else error->all(FLERR,"Illegal fix dt/reset command"); -fix_dt_reset.cpp: } else error->all(FLERR,"Illegal fix dt/reset command"); -fix_dt_reset.cpp: // setup scaling, based on xlattice parameter -fix_dt_reset.cpp: // initializations -fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ -fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ -fix_dt_reset.cpp: // set rRESPA flag -fix_dt_reset.cpp: // check for DCD or XTC dumps -fix_dt_reset.cpp: "Dump dcd/xtc timestamp may be wrong with fix dt/reset"); -fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ -fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ -fix_dt_reset.cpp: // compute vmax and amax of any atom in group -fix_dt_reset.cpp: if (rmass) massinv = 1.0/rmass[i]; -fix_dt_reset.cpp: else massinv = 1.0/mass[type[i]]; -fix_dt_reset.cpp: if (vsq > 0.0) dtv = xmax/sqrt(vsq); -fix_dt_reset.cpp: if (fsq > 0.0) dtf = sqrt(2.0*xmax/(ftm2v*sqrt(fsq)*massinv)); -fix_dt_reset.cpp: if (delr > xmax) dt *= xmax/delr; -fix_dt_reset.cpp: // if timestep didn't change, just return -fix_dt_reset.cpp: // else reset update->dt and other classes that depend on it -fix_dt_reset.cpp: // rRESPA, pair style, fixes -fix_dt_reset.cpp:/* ---------------------------------------------------------------------- */ -fix_enforce2d.cpp:/* ---------------------------------------------------------------------- -fix_enforce2d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_enforce2d.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_enforce2d.cpp:------------------------------------------------------------------------- */ -fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ -fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ -fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ -fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ -fix_enforce2d.cpp: // list of fixes with enforce2d methods -fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ -fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ -fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ -fix_enforce2d.cpp: // for systems with omega/angmom/torque, zero x and y components -fix_enforce2d.cpp: // invoke other fixes that enforce 2d -fix_enforce2d.cpp: // fix rigid variants -fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ -fix_enforce2d.cpp:/* ---------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_external.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- */ -fix_external.cpp: if (strcmp(arg[3],"pf/callback") == 0) { -fix_external.cpp: } else if (strcmp(arg[3],"pf/array") == 0) { -fix_external.cpp: // perform initial allocation of atom-based array -fix_external.cpp: // register with Atom class -fix_external.cpp:/* ---------------------------------------------------------------------- */ -fix_external.cpp: // unregister callbacks to this fix from Atom class -fix_external.cpp:/* ---------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- */ -fix_external.cpp:/* --------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- */ -fix_external.cpp: // invoke the callback in driver program -fix_external.cpp: // it will fill fexternal with forces -fix_external.cpp: // add forces from fexternal to atoms in group -fix_external.cpp:/* ---------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_external.cpp:/* ---------------------------------------------------------------------- -fix_external.cpp:------------------------------------------------------------------------- */ -fix_force_spin.cpp:/* ---------------------------------------------------------------------- -fix_force_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_force_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_force_spin.cpp:------------------------------------------------------------------------- */ -fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_force_spin.cpp: // 7 arguments for a force/spin fix command: -fix_force_spin.cpp: //(fix ID group force/spin magnitude (T or eV) style (zeeman or anisotropy) direction (3 cartesian coordinates) -fix_force_spin.cpp: //Magnetic interactions only coded for cartesian coordinates -fix_force_spin.cpp: } else error->all(FLERR,"Illegal fix force/spin command"); -fix_force_spin.cpp: degree2rad = MY_PI/180.0; -fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_force_spin.cpp: double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) -fix_force_spin.cpp: double mub = 5.78901e-5; //in eV/T -fix_force_spin.cpp: double gyro = mub/hbar; //in rad.THz/T -fix_force_spin.cpp: H_field *= gyro; //in rad.THz -fix_force_spin.cpp: Ka /= hbar; //in rad.THz -fix_force_spin.cpp: // check variables -fix_force_spin.cpp: // set magnetic field components once and for all -fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_force_spin.cpp: // update gravity due to variables -fix_force_spin.cpp: set_magneticforce(); //Update value of the mag. field if time-dependent -fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_force_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_force_spin.cpp://No acceleration for magnetic EOM, only a "magnetic force" -fix_force_spin.cpp:/* ---------------------------------------------------------------------- -fix_force_spin.cpp:------------------------------------------------------------------------- */ -fix_force_spin.cpp: // only sum across procs one time -fix_gravity.cpp:/* ---------------------------------------------------------------------- -fix_gravity.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_gravity.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_gravity.cpp:------------------------------------------------------------------------- */ -fix_gravity.cpp:/* ---------------------------------------------------------------------- */ -fix_gravity.cpp: degree2rad = MY_PI/180.0; -fix_gravity.cpp:/* ---------------------------------------------------------------------- */ -fix_gravity.cpp:/* ---------------------------------------------------------------------- */ -fix_gravity.cpp:/* ---------------------------------------------------------------------- */ -fix_gravity.cpp: // check variables -fix_gravity.cpp: // set gravity components once and for all -fix_gravity.cpp:/* ---------------------------------------------------------------------- */ -fix_gravity.cpp:/* ---------------------------------------------------------------------- */ -fix_gravity.cpp: // update gravity due to variables -fix_gravity.cpp:/* ---------------------------------------------------------------------- */ -fix_gravity.cpp:/* ---------------------------------------------------------------------- */ -fix_gravity.cpp: xgrav = xdir/length; -fix_gravity.cpp: ygrav = ydir/length; -fix_gravity.cpp: zgrav = zdir/length; -fix_gravity.cpp: xgrav = xdir/length; -fix_gravity.cpp: ygrav = ydir/length; -fix_gravity.cpp:/* ---------------------------------------------------------------------- -fix_gravity.cpp:------------------------------------------------------------------------- */ -fix_gravity.cpp: // only sum across procs one time -fix_group.cpp:/* ---------------------------------------------------------------------- -fix_group.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_group.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_group.cpp:------------------------------------------------------------------------- */ -fix_group.cpp:/* ---------------------------------------------------------------------- */ -fix_group.cpp: // dgroupbit = bitmask of dynamic group -fix_group.cpp: // group ID is last part of fix ID -fix_group.cpp: // process optional args -fix_group.cpp:/* ---------------------------------------------------------------------- */ -fix_group.cpp:/* ---------------------------------------------------------------------- */ -fix_group.cpp:/* ---------------------------------------------------------------------- */ -fix_group.cpp: // parent group cannot be dynamic -fix_group.cpp: // else order of FixGroup fixes would matter -fix_group.cpp: // set current indices for region and variable -fix_group.cpp: // warn if any FixGroup is not at tail end of all post_integrate fixes -fix_group.cpp:/* ---------------------------------------------------------------------- -fix_group.cpp:------------------------------------------------------------------------- */ -fix_group.cpp:/* ---------------------------------------------------------------------- */ -fix_group.cpp: // only assign atoms to group on steps that are multiples of nevery -fix_group.cpp:/* ---------------------------------------------------------------------- */ -fix_group.cpp:/* ---------------------------------------------------------------------- */ -fix_group.cpp: // invoke atom-style variable if defined -fix_group.cpp: memory->create(var,nlocal,"fix/group:varvalue"); -fix_group.cpp: // update region in case it has a variable dependence or is dynamic -fix_group.cpp: // set mask for each atom -fix_group.cpp: // only in group if in parent group, in region, variable is non-zero -fix_group.cpp: // if compute, fix, etc needs updated masks of ghost atoms, -fix_group.cpp: // it must do forward_comm() to update them -fix_halt.cpp:/* ---------------------------------------------------------------------- -fix_halt.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_halt.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_halt.cpp:------------------------------------------------------------------------- */ -fix_halt.cpp:/* ---------------------------------------------------------------------- */ -fix_halt.cpp: // comparison args -fix_halt.cpp: // parse optional args -fix_halt.cpp: // add nfirst to all computes that store invocation times -fix_halt.cpp: // since don't know a priori which are invoked via variables by this fix -fix_halt.cpp: // once in end_of_step() can set timestep for ones actually invoked -fix_halt.cpp: const bigint nfirst = (update->ntimestep/nevery)*nevery + nevery; -fix_halt.cpp:/* ---------------------------------------------------------------------- */ -fix_halt.cpp:/* ---------------------------------------------------------------------- */ -fix_halt.cpp:/* ---------------------------------------------------------------------- */ -fix_halt.cpp: // set ivar from current variable list -fix_halt.cpp: // settings used by TLIMIT -fix_halt.cpp: nextstep = (update->ntimestep/nevery)*nevery + nevery; -fix_halt.cpp:/* ---------------------------------------------------------------------- */ -fix_halt.cpp: // variable evaluation may invoke computes so wrap with clear/add -fix_halt.cpp: // check if halt is triggered, else just return -fix_halt.cpp: // hard halt -> exit LAMMPS -fix_halt.cpp: // soft/continue halt -> trigger timer to break from run loop -fix_halt.cpp: // print message with ID of fix halt in case multiple instances -fix_halt.cpp:/* ---------------------------------------------------------------------- -fix_halt.cpp:------------------------------------------------------------------------- */ -fix_halt.cpp: // continue halt -> subsequent runs are allowed -fix_halt.cpp:/* ---------------------------------------------------------------------- -fix_halt.cpp:------------------------------------------------------------------------- */ -fix_halt.cpp:/* ---------------------------------------------------------------------- -fix_halt.cpp: first project to 1/2 the run time, thereafter to end of run -fix_halt.cpp:------------------------------------------------------------------------- */ -fix_halt.cpp: static_cast (tratio*value/cpu * elapsed); -fix_halt.cpp: nextstep = (final/nevery)*nevery + nevery; -fix_heat.cpp:/* ---------------------------------------------------------------------- -fix_heat.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_heat.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_heat.cpp:------------------------------------------------------------------------- */ -fix_heat.cpp:/* ---------------------------------------------------------------------- -fix_heat.cpp:------------------------------------------------------------------------- */ -fix_heat.cpp:/* ---------------------------------------------------------------------- */ -fix_heat.cpp: // optional args -fix_heat.cpp:/* ---------------------------------------------------------------------- */ -fix_heat.cpp:/* ---------------------------------------------------------------------- */ -fix_heat.cpp:/* ---------------------------------------------------------------------- */ -fix_heat.cpp: // set index and check validity of region -fix_heat.cpp: // check variable -fix_heat.cpp: // cannot have 0 atoms in group -fix_heat.cpp:/* ---------------------------------------------------------------------- */ -fix_heat.cpp: // reallocate per-atom arrays if necessary -fix_heat.cpp: // evaluate variable -fix_heat.cpp: // vcm = center-of-mass velocity of scaled atoms -fix_heat.cpp: // add heat via scale factor on velocities for CONSTANT and EQUAL cases -fix_heat.cpp: // scale = velocity scale factor to accomplish eflux change in energy -fix_heat.cpp: // vsub = velocity subtracted from each atom to preserve momentum -fix_heat.cpp: // overall KE cannot go negative -fix_heat.cpp: (ke + heat - 0.5*vcmsq*masstotal)/(ke - 0.5*vcmsq*masstotal); -fix_heat.cpp: // add heat via per-atom scale factor on velocities for ATOM case -fix_heat.cpp: // vscale = velocity scale factor to accomplish eflux change in energy -fix_heat.cpp: // vsub = velocity subtracted from each atom to preserve momentum -fix_heat.cpp: // KE of an atom cannot go negative -fix_heat.cpp: (ke + heat - 0.5*vcmsq*masstotal)/(ke - 0.5*vcmsq*masstotal); -fix_heat.cpp: vsub[0] /= masstotal; -fix_heat.cpp: vsub[1] /= masstotal; -fix_heat.cpp: vsub[2] /= masstotal; -fix_heat.cpp: (ke + heat - 0.5*vcmsq*masstotal)/(ke - 0.5*vcmsq*masstotal); -fix_heat.cpp: vsub[0] /= masstotal; -fix_heat.cpp: vsub[1] /= masstotal; -fix_heat.cpp: vsub[2] /= masstotal; -fix_heat.cpp:/* ---------------------------------------------------------------------- */ -fix_heat.cpp: else average_scale = scale_sum_all/static_cast(ncount_all); -fix_heat.cpp:/* ---------------------------------------------------------------------- -fix_heat.cpp:------------------------------------------------------------------------- */ -fix_indent.cpp:/* ---------------------------------------------------------------------- -fix_indent.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_indent.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_indent.cpp:------------------------------------------------------------------------- */ -fix_indent.cpp:/* ---------------------------------------------------------------------- -fix_indent.cpp:------------------------------------------------------------------------- */ -fix_indent.cpp:/* ---------------------------------------------------------------------- */ -fix_indent.cpp: k3 = k/3.0; -fix_indent.cpp: // read options from end of input line -fix_indent.cpp: // setup scaling -fix_indent.cpp: // apply scaling factors to geometry -fix_indent.cpp:/* ---------------------------------------------------------------------- */ -fix_indent.cpp:/* ---------------------------------------------------------------------- */ -fix_indent.cpp:/* ---------------------------------------------------------------------- */ -fix_indent.cpp:/* ---------------------------------------------------------------------- */ -fix_indent.cpp:/* ---------------------------------------------------------------------- */ -fix_indent.cpp:/* ---------------------------------------------------------------------- */ -fix_indent.cpp: // indenter values, 0 = energy, 1-3 = force components -fix_indent.cpp: // wrap variable evaluations with clear/add -fix_indent.cpp: // spherical indenter -fix_indent.cpp: // ctr = current indenter center -fix_indent.cpp: // remap into periodic box -fix_indent.cpp: fx = delx*fmag/r; -fix_indent.cpp: fy = dely*fmag/r; -fix_indent.cpp: fz = delz*fmag/r; -fix_indent.cpp: // cylindrical indenter -fix_indent.cpp: // ctr = current indenter axis -fix_indent.cpp: // remap into periodic box -fix_indent.cpp: // 3rd coord is just near box for remap(), since isn't used -fix_indent.cpp: fx = delx*fmag/r; -fix_indent.cpp: fy = dely*fmag/r; -fix_indent.cpp: fz = delz*fmag/r; -fix_indent.cpp: // planar indenter -fix_indent.cpp: // plane = current plane position -fix_indent.cpp:/* ---------------------------------------------------------------------- */ -fix_indent.cpp:/* ---------------------------------------------------------------------- */ -fix_indent.cpp:/* ---------------------------------------------------------------------- -fix_indent.cpp:------------------------------------------------------------------------- */ -fix_indent.cpp: // only sum across procs one time -fix_indent.cpp:/* ---------------------------------------------------------------------- -fix_indent.cpp:------------------------------------------------------------------------- */ -fix_indent.cpp: // only sum across procs one time -fix_indent.cpp:/* ---------------------------------------------------------------------- -fix_indent.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_langevin.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp:#define SINERTIA 0.4 // moment of inertia prefactor for sphere -fix_langevin.cpp:#define EINERTIA 0.2 // moment of inertia prefactor for ellipsoid -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp: // initialize Marsaglia RNG with processor-unique seed -fix_langevin.cpp: // allocate per-type arrays for force prefactors -fix_langevin.cpp: // optional args -fix_langevin.cpp: // set temperature = NULL, user can override via fix_modify if wants bias -fix_langevin.cpp: // flangevin is unallocated until first call to setup() -fix_langevin.cpp: // compute_scalar checks for this and returns 0.0 -fix_langevin.cpp: // if flangevin_allocated is not set -fix_langevin.cpp: // setup atom-based array for franprev -fix_langevin.cpp: // register with Atom class -fix_langevin.cpp: // no need to set peratom_flag, b/c data is for internal use only -fix_langevin.cpp: // initialize franprev to zero -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp: // check variable -fix_langevin.cpp: // if oflag or ascale set, check that all group particles are finite-size -fix_langevin.cpp: // set force prefactors -fix_langevin.cpp: gfactor1[i] = -atom->mass[i] / t_period / force->ftm2v; -fix_langevin.cpp: sqrt(24.0*force->boltz/t_period/update->dt/force->mvv2e) / -fix_langevin.cpp: gfactor1[i] *= 1.0/ratio[i]; -fix_langevin.cpp: gfactor2[i] *= 1.0/sqrt(ratio[i]); -fix_langevin.cpp: if (gjfflag) gjffac = 1.0/(1.0+update->dt/2.0/t_period); -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp: // enumerate all 2^6 possibilities for template parameters -fix_langevin.cpp: // this avoids testing them inside inner loop: -fix_langevin.cpp: // TSTYLEATOM, GJF, TALLY, BIAS, RMASS, ZERO -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp: // apply damping and thermostat to atoms in group -fix_langevin.cpp: // for Tp_TSTYLEATOM: -fix_langevin.cpp: // use per-atom per-coord target temperature -fix_langevin.cpp: // for Tp_GJF: -fix_langevin.cpp: // use Gronbech-Jensen/Farago algorithm -fix_langevin.cpp: // else use regular algorithm -fix_langevin.cpp: // for Tp_TALLY: -fix_langevin.cpp: // store drag plus random forces in flangevin[nlocal][3] -fix_langevin.cpp: // for Tp_BIAS: -fix_langevin.cpp: // calculate temperature since some computes require temp -fix_langevin.cpp: // computed on current nlocal atoms to remove bias -fix_langevin.cpp: // test v = 0 since some computes mask non-participating atoms via v = 0 -fix_langevin.cpp: // and added force has extra term not multiplied by v = 0 -fix_langevin.cpp: // for Tp_RMASS: -fix_langevin.cpp: // use per-atom masses -fix_langevin.cpp: // else use per-type masses -fix_langevin.cpp: // for Tp_ZERO: -fix_langevin.cpp: // sum random force over all atoms in group -fix_langevin.cpp: // subtract sum/count from each atom in group -fix_langevin.cpp: // reallocate flangevin if necessary -fix_langevin.cpp: gamma1 = -rmass[i] / t_period / ftm2v; -fix_langevin.cpp: gamma2 = sqrt(rmass[i]) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v; -fix_langevin.cpp: gamma1 *= 1.0/ratio[type[i]]; -fix_langevin.cpp: gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt; -fix_langevin.cpp: // set total force to zero -fix_langevin.cpp: fsumall[0] /= count; -fix_langevin.cpp: fsumall[1] /= count; -fix_langevin.cpp: fsumall[2] /= count; -fix_langevin.cpp: // thermostat omega and angmom -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_langevin.cpp: // if variable temp, evaluate variable, wrap with clear/add -fix_langevin.cpp: // reallocate tforce array if necessary -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp: // rescale gamma1/gamma2 by 10/3 & sqrt(10/3) for spherical particles -fix_langevin.cpp: // does not affect rotational thermosatting -fix_langevin.cpp: // gives correct rotational diffusivity behavior -fix_langevin.cpp: double tendivthree = 10.0/3.0; -fix_langevin.cpp: gamma1 = -tendivthree*inertiaone / t_period / ftm2v; -fix_langevin.cpp: gamma2 = sqrt(inertiaone) * sqrt(80.0*boltz/t_period/dt/mvv2e) / ftm2v; -fix_langevin.cpp: gamma1 *= 1.0/ratio[type[i]]; -fix_langevin.cpp: gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt; -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp: // rescale gamma1/gamma2 by ascale for aspherical particles -fix_langevin.cpp: // does not affect rotational thermosatting -fix_langevin.cpp: // gives correct rotational diffusivity behavior if (nearly) spherical -fix_langevin.cpp: // any value will be incorrect for rotational diffusivity if aspherical -fix_langevin.cpp: gamma1 = -ascale / t_period / ftm2v; -fix_langevin.cpp: gamma2 = sqrt(ascale*24.0*boltz/t_period/dt/mvv2e) / ftm2v; -fix_langevin.cpp: gamma1 *= 1.0/ratio[type[i]]; -fix_langevin.cpp: gamma2 *= 1.0/sqrt(ratio[type[i]]) * tsqrt; -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp: sqrt(24.0*force->boltz/t_period/update->dt/force->mvv2e) / -fix_langevin.cpp: gfactor2[i] *= 1.0/sqrt(ratio[i]); -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin.cpp: // capture the very first energy transfer to thermal reservoir -fix_langevin.cpp: // convert midstep energy back to previous fullstep energy -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin.cpp:/* ---------------------------------------------------------------------- -fix_langevin.cpp:------------------------------------------------------------------------- */ -fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- -fix_langevin_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_langevin_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_langevin_spin.cpp:------------------------------------------------------------------------- */ -fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- -fix_langevin_spin.cpp:------------------------------------------------------------------------- */ -fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin_spin.cpp: if (narg != 7) error->all(FLERR,"Illegal fix langevin/spin command"); -fix_langevin_spin.cpp: if (alpha_t < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); -fix_langevin_spin.cpp: if (alpha_l < 0.0) error->all(FLERR,"Fix langevin/spin transverse damping must be >= 0.0"); -fix_langevin_spin.cpp: if (seed <= 0) error->all(FLERR,"Illegal fix langevin/spin seed must be > 0"); -fix_langevin_spin.cpp: // initialize Marsaglia RNG with processor-unique seed -fix_langevin_spin.cpp: //random = new RanMars(lmp,seed + comm->me); -fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin_spin.cpp: // warn if any fix comes after this one -fix_langevin_spin.cpp: if (strcmp("force/spin",modify->fix[i]->style)==0) flag_force = MAX(flag_force,i); -fix_langevin_spin.cpp: if (strcmp("langevin/spin",modify->fix[i]->style)==0) flag_lang = i; -fix_langevin_spin.cpp: if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin should come after all other spin fixes"); -fix_langevin_spin.cpp: Gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); -fix_langevin_spin.cpp: double hbar = force->hplanck/MY_2PI; //eV/(rad.THz) -fix_langevin_spin.cpp: D = (MY_2PI*Gil_factor*kb*temp)/hbar/dts; -fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_langevin_spin.cpp: // add the damping to the effective field of each spin -fix_langevin_spin.cpp: cpx = fmy*sz - fmz*sy;//Computing cross product -fix_langevin_spin.cpp: fmx -= alpha_t*cpx;//Taking the damping value away -fix_langevin_spin.cpp: //apply thermal effects adding random fields to fm -fix_langevin_spin.cpp: rx = sigma*random->gaussian();//Drawing random distributions -fix_langevin_spin.cpp: fm[i][0] += rx;//Adding random field -fix_langevin_spin.cpp: fm[i][0] *= Gil_factor;//Multiplying by Gilbert's prefactor -fix_langevin_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_lineforce.cpp:/* ---------------------------------------------------------------------- -fix_lineforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_lineforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_lineforce.cpp:------------------------------------------------------------------------- */ -fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ -fix_lineforce.cpp: xdir /= len; -fix_lineforce.cpp: ydir /= len; -fix_lineforce.cpp: zdir /= len; -fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ -fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ -fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ -fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ -fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ -fix_lineforce.cpp:/* ---------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_minimize.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- */ -fix_minimize.cpp: // register callback to this fix from Atom class -fix_minimize.cpp: // don't perform initial allocation here, must wait until add_vector() -fix_minimize.cpp:/* ---------------------------------------------------------------------- */ -fix_minimize.cpp: // unregister callbacks to this fix from Atom class -fix_minimize.cpp: // delete locally stored data -fix_minimize.cpp:/* ---------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp: allocate/initialize memory for a new vector with N elements per atom -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_minimize.cpp:/* ---------------------------------------------------------------------- -fix_minimize.cpp:------------------------------------------------------------------------- */ -fix_momentum.cpp:/* ---------------------------------------------------------------------- -fix_momentum.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_momentum.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_momentum.cpp:------------------------------------------------------------------------- */ -fix_momentum.cpp:/* ---------------------------------------------------------------------- -fix_momentum.cpp:------------------------------------------------------------------------- */ -fix_momentum.cpp:/* ---------------------------------------------------------------------- */ -fix_momentum.cpp:/* ---------------------------------------------------------------------- */ -fix_momentum.cpp:/* ---------------------------------------------------------------------- */ -fix_momentum.cpp:/* ---------------------------------------------------------------------- */ -fix_momentum.cpp: // do nothing is group is empty, i.e. mass is zero; -fix_momentum.cpp: // compute kinetic energy before momentum removal, if needed -fix_momentum.cpp: // adjust velocities by vcm to zero linear momentum -fix_momentum.cpp: // only adjust a component if flag is set -fix_momentum.cpp: // adjust velocities to zero omega -fix_momentum.cpp: // vnew_i = v_i - w x r_i -fix_momentum.cpp: // must use unwrapped coords to compute r_i correctly -fix_momentum.cpp: // compute kinetic energy after momentum removal, if needed -fix_momentum.cpp: if (ekin_new != 0.0) factor = sqrt(ekin_old/ekin_new); -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_move.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:#define INERTIA 0.2 // moment of inertia prefactor for ellipsoid -fix_move.cpp:/* ---------------------------------------------------------------------- */ -fix_move.cpp: // parse args -fix_move.cpp: // optional args -fix_move.cpp: // error checks and warnings -fix_move.cpp: // setup scaling and apply scaling factors to velocity & amplitude -fix_move.cpp: // set omega_rotate from period -fix_move.cpp: if (mstyle == WIGGLE || mstyle == ROTATE) omega_rotate = MY_2PI / period; -fix_move.cpp: // runit = unit vector along rotation axis -fix_move.cpp: runit[0] = axis[0]/len; -fix_move.cpp: runit[1] = axis[1]/len; -fix_move.cpp: runit[2] = axis[2]/len; -fix_move.cpp: // set flags for extra attributes particles may store -fix_move.cpp: // relevant extra attributes = omega, angmom, theta, quat -fix_move.cpp: // perform initial allocation of atom-based array -fix_move.cpp: // register with Atom class -fix_move.cpp: // AtomVec pointers to retrieve per-atom storage of extra quantities -fix_move.cpp: // xoriginal = initial unwrapped positions of atoms -fix_move.cpp: // toriginal = initial theta of lines -fix_move.cpp: // qoriginal = initial quat of extended particles -fix_move.cpp: // nrestart = size of per-atom restart data -fix_move.cpp: // nrestart = 1 + xorig + torig + qorig -fix_move.cpp: // time origin for movement = current timestep -fix_move.cpp:/* ---------------------------------------------------------------------- */ -fix_move.cpp: // unregister callbacks to this fix from Atom class -fix_move.cpp: // delete locally stored arrays -fix_move.cpp:/* ---------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- */ -fix_move.cpp: // set indices and style of all variables -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp: // for linear: X = X0 + V*dt -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: // for wiggle: X = X0 + A sin(w*dt) -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: // for rotate by right-hand rule around omega: -fix_move.cpp: // P = point = vector = point of rotation -fix_move.cpp: // R = vector = axis of rotation -fix_move.cpp: // w = omega of rotation (from period) -fix_move.cpp: // X0 = xoriginal = initial coord of atom -fix_move.cpp: // R0 = runit = unit vector for R -fix_move.cpp: // D = X0 - P = vector from P to X0 -fix_move.cpp: // C = (D dot R0) R0 = projection of atom coord onto R line -fix_move.cpp: // A = D - C = vector from R line to X0 -fix_move.cpp: // B = R0 cross A = vector perp to A in plane of rotation -fix_move.cpp: // A,B define plane of circular rotation around R line -fix_move.cpp: // X = P + C + A cos(w*dt) + B sin(w*dt) -fix_move.cpp: // V = w R0 cross (A cos(w*dt) + B sin(w*dt)) -fix_move.cpp: // set any extra attributes affected by rotation -fix_move.cpp: // omega for spheres, lines, tris -fix_move.cpp: // angmom for ellipsoids, tris, and bodies -fix_move.cpp: // theta for lines -fix_move.cpp: // quats for ellipsoids, tris, and bodies -fix_move.cpp: // for variable: compute x,v from variables -fix_move.cpp: // NOTE: also allow for changes to extra attributes? -fix_move.cpp: // omega, angmom, theta, quat -fix_move.cpp: // only necessary if prescribed motion involves rotation -fix_move.cpp: // reallocate displace and velocity arrays as necessary -fix_move.cpp: // pre-compute variable values, wrap with clear/add -fix_move.cpp: // update x,v -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp: dtfm = dtf / rmass[i]; -fix_move.cpp: dtfm = dtf / mass[type[i]]; -fix_move.cpp:/* ---------------------------------------------------------------------- */ -fix_move.cpp: // outermost level - update v and x -fix_move.cpp: // all other levels - nothing -fix_move.cpp:/* ---------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp: // particle not in group -fix_move.cpp: // current time still equal fix creation time -fix_move.cpp: // backup particle to time_origin -fix_move.cpp: // set theta and quat extra attributes affected by rotation -fix_move.cpp: // theta for lines -fix_move.cpp: toriginal[i] = theta - 0.0; // NOTE: edit this line -fix_move.cpp: // quats for ellipsoids, tris, and bodies -fix_move.cpp: // qoriginal = f(quat,-delta); // NOTE: edit this line -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp: // skip to Nth set of extra values -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- -fix_move.cpp:------------------------------------------------------------------------- */ -fix_move.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nh.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp: ---------------------------------------------------------------------- */ -fix_nh.cpp: if (narg < 4) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: // default values -fix_nh.cpp: // turn on tilt factor scaling, whenever applicable -fix_nh.cpp: // set fixed-point to default = center of cell -fix_nh.cpp: // used by FixNVTSllod to preserve non-default value -fix_nh.cpp: // process keywords -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: "Target temperature for fix nvt/npt/nph cannot be 0.0"); -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (drag < 0.0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: error->all(FLERR,"Fix nvt/npt/nph dilate group ID does not exist"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: // used by FixNVTSllod to preserve non-default value -fix_nh.cpp: if (mtchain < 1) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (mpchain < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (nc_tchain < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (nc_pchain < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (nreset_h0 < 0) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: else error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: else if (strcmp(arg[iarg+1],"dipole/dlm") == 0) { -fix_nh.cpp: } else error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: if (iarg+4 > narg) error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: // disc keyword is also parsed in fix/nh/sphere -fix_nh.cpp: } else error->all(FLERR,"Illegal fix nvt/npt/nph command"); -fix_nh.cpp: // error checks -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command for a 2d simulation"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command pressure settings"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command pressure settings"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command pressure settings"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command pressure settings"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph command pressure settings"); -fix_nh.cpp: // require periodicity in tensile dimension -fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph on a non-periodic dimension"); -fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph on a non-periodic dimension"); -fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph on a non-periodic dimension"); -fix_nh.cpp: // require periodicity in 2nd dim of off-diagonal tilt component -fix_nh.cpp: "Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension"); -fix_nh.cpp: "Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension"); -fix_nh.cpp: "Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension"); -fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph " -fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph " -fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph " -fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph with " -fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph with " -fix_nh.cpp: error->all(FLERR,"Cannot use fix nvt/npt/nph with " -fix_nh.cpp: error->all(FLERR,"Can not specify Pxy/Pxz/Pyz in " -fix_nh.cpp: "fix nvt/npt/nph with non-triclinic box"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph pressure settings"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph pressure settings"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph pressure settings"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph pressure settings"); -fix_nh.cpp: error->all(FLERR,"Invalid fix nvt/npt/nph pressure settings"); -fix_nh.cpp: error->all(FLERR,"Fix nvt/npt/nph damping parameters must be > 0.0"); -fix_nh.cpp: // set pstat_flag and box change and restart_pbc variables -fix_nh.cpp: // pstyle = TRICLINIC if any off-diagonal term is controlled -> 6 dof -fix_nh.cpp: // else pstyle = ISO if XYZ coupling or XY coupling in 2d -> 1 dof -fix_nh.cpp: // else pstyle = ANISO -> 3 dof -fix_nh.cpp: // pre_exchange only required if flips can occur due to shape changes -fix_nh.cpp: // convert input periods to frequencies -fix_nh.cpp: if (tstat_flag) t_freq = 1.0 / t_period; -fix_nh.cpp: if (p_flag[0]) p_freq[0] = 1.0 / p_period[0]; -fix_nh.cpp: if (p_flag[1]) p_freq[1] = 1.0 / p_period[1]; -fix_nh.cpp: if (p_flag[2]) p_freq[2] = 1.0 / p_period[2]; -fix_nh.cpp: if (p_flag[3]) p_freq[3] = 1.0 / p_period[3]; -fix_nh.cpp: if (p_flag[4]) p_freq[4] = 1.0 / p_period[4]; -fix_nh.cpp: if (p_flag[5]) p_freq[5] = 1.0 / p_period[5]; -fix_nh.cpp: // Nose/Hoover temp and pressure init -fix_nh.cpp: // add one extra dummy thermostat, set to zero -fix_nh.cpp: // add one extra dummy thermostat, set to zero -fix_nh.cpp: // initialize vol0,t0 to zero to signal uninitialized -fix_nh.cpp: // values then assigned in init(), if necessary -fix_nh.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp: // delete temperature and pressure if fix created them -fix_nh.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp: // recheck that dilate group has not been deleted -fix_nh.cpp: error->all(FLERR,"Fix nvt/npt/nph dilate group ID does not exist"); -fix_nh.cpp: // ensure no conflict with fix deform -fix_nh.cpp: // set temperature and pressure ptrs -fix_nh.cpp: error->all(FLERR,"Temperature ID for fix nvt/npt does not exist"); -fix_nh.cpp: error->all(FLERR,"Pressure ID for fix npt/nph does not exist"); -fix_nh.cpp: // set timesteps and frequencies -fix_nh.cpp: pdrag_factor = 1.0 - (update->dt * p_freq_max * drag / nc_pchain); -fix_nh.cpp: tdrag_factor = 1.0 - (update->dt * t_freq * drag / nc_tchain); -fix_nh.cpp: // tally the number of dimensions that are barostatted -fix_nh.cpp: // set initial volume and reference cell, if not already done -fix_nh.cpp: // detect if any rigid fixes exist so rigid bodies move when box is remapped -fix_nh.cpp: // rfix[] = indices to each fix rigid -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp: // tdof needed by compute_temp_target() -fix_nh.cpp: // t_target is needed by NVT and NPT in compute_scalar() -fix_nh.cpp: // If no thermostat or using fix nphug, -fix_nh.cpp: // t_target must be defined by other means. -fix_nh.cpp: // t0 = reference temperature for masses -fix_nh.cpp: // cannot be done in init() b/c temperature cannot be called there -fix_nh.cpp: // is b/c Modify::init() inits computes after fixes due to dof dependence -fix_nh.cpp: // guesstimate a unit-dependent t0 if actual T = 0.0 -fix_nh.cpp: // if it was read in from a restart file, leave it be -fix_nh.cpp: // masses and initial forces on thermostat variables -fix_nh.cpp: eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq); -fix_nh.cpp: eta_mass[ich] = boltz * t_target / (t_freq*t_freq); -fix_nh.cpp: boltz * t_target) / eta_mass[ich]; -fix_nh.cpp: // masses and initial forces on barostat variables -fix_nh.cpp: omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); -fix_nh.cpp: if (p_flag[i]) omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); -fix_nh.cpp: // masses and initial forces on barostat thermostat variables -fix_nh.cpp: etap_mass[0] = boltz * t_target / (p_freq_max*p_freq_max); -fix_nh.cpp: etap_mass[ich] = boltz * t_target / (p_freq_max*p_freq_max); -fix_nh.cpp: boltz * t_target) / etap_mass[ich]; -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp: // update eta_press_dot -fix_nh.cpp: // update eta_dot -fix_nh.cpp: // need to recompute pressure to account for change in KE -fix_nh.cpp: // t_current is up-to-date, but compute_temperature is not -fix_nh.cpp: // compute appropriately coupled elements of mvv_current -fix_nh.cpp: // remap simulation box by 1/2 step -fix_nh.cpp: // remap simulation box by 1/2 step -fix_nh.cpp: // redo KSpace coeffs since volume has changed -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp: // re-compute temp before nh_v_press() -fix_nh.cpp: // only needed for temperature computes with BIAS on reneighboring steps: -fix_nh.cpp: // b/c some biases store per-atom values (e.g. temp/profile) -fix_nh.cpp: // per-atom values are invalid if reneigh/comm occurred -fix_nh.cpp: // since temp->compute() in initial_integrate() -fix_nh.cpp: // compute new T,P after velocities rescaled by nh_v_press() -fix_nh.cpp: // compute appropriately coupled elements of mvv_current -fix_nh.cpp: // update eta_dot -fix_nh.cpp: // update eta_press_dot -fix_nh.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp: // set timesteps by level -fix_nh.cpp: // outermost level - update eta_dot and omega_dot, apply to v -fix_nh.cpp: // all other levels - NVE update of v -fix_nh.cpp: // x,v updates only performed for atoms in group -fix_nh.cpp: // update eta_press_dot -fix_nh.cpp: // update eta_dot -fix_nh.cpp: // recompute pressure to account for change in KE -fix_nh.cpp: // t_current is up-to-date, but compute_temperature is not -fix_nh.cpp: // compute appropriately coupled elements of mvv_current -fix_nh.cpp: // innermost level - also update x only for atoms in group -fix_nh.cpp: // if barostat, perform 1/2 step remap before and after -fix_nh.cpp: // if barostat, redo KSpace coeffs at outermost level, -fix_nh.cpp: // since volume has changed -fix_nh.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp: // set timesteps by level -fix_nh.cpp: // outermost level - update eta_dot and omega_dot, apply via final_integrate -fix_nh.cpp: // all other levels - NVE update of v -fix_nh.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp: double ave = 1.0/3.0 * (tensor[0] + tensor[1] + tensor[2]); -fix_nh.cpp: // switch order from xy-xz-yz to Voigt -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp: // omega is not used, except for book-keeping -fix_nh.cpp: // convert pertinent atoms and rigid bodies to lamda coords -fix_nh.cpp: // reset global and local box to new size/shape -fix_nh.cpp: // this operation corresponds to applying the -fix_nh.cpp: // translate and scale operations -fix_nh.cpp: // corresponding to the solution of the following ODE: -fix_nh.cpp: // -fix_nh.cpp: // h_dot = omega_dot * h -fix_nh.cpp: // -fix_nh.cpp: // where h_dot, omega_dot and h are all upper-triangular -fix_nh.cpp: // 3x3 tensors. In Voigt notation, the elements of the -fix_nh.cpp: // RHS product tensor are: -fix_nh.cpp: // h_dot = [0*0, 1*1, 2*2, 1*3+3*2, 0*4+5*3+4*2, 0*5+5*1] -fix_nh.cpp: // -fix_nh.cpp: // Ordering of operations preserves time symmetry. -fix_nh.cpp: double dto2 = dto/2.0; -fix_nh.cpp: double dto4 = dto/4.0; -fix_nh.cpp: double dto8 = dto/8.0; -fix_nh.cpp: // off-diagonal components, first half -fix_nh.cpp: // scale diagonal components -fix_nh.cpp: // scale tilt factors with cell, if set -fix_nh.cpp: // off-diagonal components, second half -fix_nh.cpp: // tilt factor to cell length ratio can not exceed TILTMAX in one step -fix_nh.cpp: error->all(FLERR,"Fix npt/nph has tilted box too far in one step - " -fix_nh.cpp: // convert pertinent atoms and rigid bodies back to box coords -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp: // reset id_temp of pressure to new temperature ID -fix_nh.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp: // thermostat chain energy is equivalent to Eq. (2) in -fix_nh.cpp: // Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117 -fix_nh.cpp: // Sum(0.5*p_eta_k^2/Q_k,k=1,M) + L*k*T*eta_1 + Sum(k*T*eta_k,k=2,M), -fix_nh.cpp: // where L = tdof -fix_nh.cpp: // M = mtchain -fix_nh.cpp: // p_eta_k = Q_k*eta_dot[k-1] -fix_nh.cpp: // Q_1 = L*k*T/t_freq^2 -fix_nh.cpp: // Q_k = k*T/t_freq^2, k > 1 -fix_nh.cpp: // barostat energy is equivalent to Eq. (8) in -fix_nh.cpp: // Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117 -fix_nh.cpp: // Sum(0.5*p_omega^2/W + P*V), -fix_nh.cpp: // where N = natoms -fix_nh.cpp: // p_omega = W*omega_dot -fix_nh.cpp: // W = N*k*T/p_freq^2 -fix_nh.cpp: // sum is over barostatted dimensions -fix_nh.cpp: p_hydro*(volume-vol0) / (pdim*nktv2p); -fix_nh.cpp: // extra contributions from thermostat chain for barostat -fix_nh.cpp: // extra contribution from strain energy -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp: return p_hydro*(volume-vol0) / nktv2p; -fix_nh.cpp: return p_hydro*(volume-vol0) / (pdim*nktv2p); -fix_nh.cpp: return p_hydro*(volume-vol0) / (pdim*nktv2p); -fix_nh.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp:/* ---------------------------------------------------------------------- */ -fix_nh.cpp: // If using respa, then remap is performed in innermost level -fix_nh.cpp: pdrag_factor = 1.0 - (update->dt * p_freq_max * drag / nc_pchain); -fix_nh.cpp: tdrag_factor = 1.0 - (update->dt * t_freq * drag / nc_tchain); -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp: // Update masses, to preserve initial freq, if flag set -fix_nh.cpp: eta_mass[0] = tdof * boltz * t_target / (t_freq*t_freq); -fix_nh.cpp: eta_mass[ich] = boltz * t_target / (t_freq*t_freq); -fix_nh.cpp: eta_dotdot[0] = (kecurrent - ke_target)/eta_mass[0]; -fix_nh.cpp: double ncfac = 1.0/nc_tchain; -fix_nh.cpp: // rescale temperature due to velocity scaling -fix_nh.cpp: // should not be necessary to explicitly recompute the temperature -fix_nh.cpp: eta_dotdot[0] = (kecurrent - ke_target)/eta_mass[0]; -fix_nh.cpp: - boltz * t_target)/eta_mass[ich]; -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp: // Update masses, to preserve initial freq, if flag set -fix_nh.cpp: omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); -fix_nh.cpp: if (p_flag[i]) omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); -fix_nh.cpp: etap_mass[0] = boltz * t_target / (p_freq_max*p_freq_max); -fix_nh.cpp: etap_mass[ich] = boltz * t_target / (p_freq_max*p_freq_max); -fix_nh.cpp: boltz * t_target) / etap_mass[ich]; -fix_nh.cpp: etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0]; -fix_nh.cpp: double ncfac = 1.0/nc_pchain; -fix_nh.cpp: etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0]; -fix_nh.cpp: (etap_mass[ich-1]*etap_dot[ich-1]*etap_dot[ich-1] - boltz*t_target) / -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:-----------------------------------------------------------------------*/ -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:-----------------------------------------------------------------------*/ -fix_nh.cpp: dtfm = dtf / rmass[i]; -fix_nh.cpp: dtfm = dtf / mass[type[i]]; -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:-----------------------------------------------------------------------*/ -fix_nh.cpp: // x update by full step only for atoms in group -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:-----------------------------------------------------------------------*/ -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:-----------------------------------------------------------------------*/ -fix_nh.cpp: // if nreset_h0 > 0, reset vol0 and h0_inv -fix_nh.cpp: // every nreset_h0 timesteps -fix_nh.cpp: // generate upper-triangular half of -fix_nh.cpp: // sigma = vol0*h0inv*(p_target-p_hydro)*h0inv^t -fix_nh.cpp: // units of sigma are are PV/L^2 e.g. atm.A -fix_nh.cpp: // -fix_nh.cpp: // [ 0 5 4 ] [ 0 5 4 ] [ 0 5 4 ] [ 0 - - ] -fix_nh.cpp: // [ 5 1 3 ] = [ - 1 3 ] [ 5 1 3 ] [ 5 1 - ] -fix_nh.cpp: // [ 4 3 2 ] [ - - 2 ] [ 4 3 2 ] [ 4 3 2 ] -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:-----------------------------------------------------------------------*/ -fix_nh.cpp: // compute strain energy = 0.5*Tr(sigma*h*h^t) in energy units -fix_nh.cpp: double energy = 0.5*(d0+d1+d2)/nktv2p; -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:-----------------------------------------------------------------------*/ -fix_nh.cpp: // generate upper-triangular part of h*sigma*h^t -fix_nh.cpp: // units of fdev are are PV, e.g. atm*A^3 -fix_nh.cpp: // [ 0 5 4 ] [ 0 5 4 ] [ 0 5 4 ] [ 0 - - ] -fix_nh.cpp: // [ 5 1 3 ] = [ - 1 3 ] [ 5 1 3 ] [ 5 1 - ] -fix_nh.cpp: // [ 4 3 2 ] [ - - 2 ] [ 4 3 2 ] [ 4 3 2 ] -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:-----------------------------------------------------------------------*/ -fix_nh.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:-----------------------------------------------------------------------*/ -fix_nh.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_nh.cpp: if (pdim > 0) p_hydro /= pdim; -fix_nh.cpp: // if deviatoric, recompute sigma each time p_target changes -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:-----------------------------------------------------------------------*/ -fix_nh.cpp: mtk_term1 /= pdim * atom->natoms; -fix_nh.cpp: mtk_term1 /= pdim * atom->natoms; -fix_nh.cpp: f_omega = (p_current[i]-p_hydro)*volume / -fix_nh.cpp: (omega_mass[i] * nktv2p) + mtk_term1 / omega_mass[i]; -fix_nh.cpp: if (deviatoric_flag) f_omega -= fdev[i]/(omega_mass[i] * nktv2p); -fix_nh.cpp: if (pdim > 0) mtk_term2 /= pdim * atom->natoms; -fix_nh.cpp: f_omega = p_current[i]*volume/(omega_mass[i] * nktv2p); -fix_nh.cpp: f_omega -= fdev[i]/(omega_mass[i] * nktv2p); -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp: this is b/c the box length would be changed (dramatically) by flip -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh.cpp: // flip is only triggered when tilt exceeds 0.5 by DELTAFLIP -fix_nh.cpp: // this avoids immediate re-flipping due to tilt oscillations -fix_nh.cpp:/* ---------------------------------------------------------------------- -fix_nh.cpp:------------------------------------------------------------------------- */ -fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- -fix_nh_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nh_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nh_sphere.cpp:------------------------------------------------------------------------- */ -fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- -fix_nh_sphere.cpp:------------------------------------------------------------------------- */ -fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- */ -fix_nh_sphere.cpp: error->all(FLERR,"Fix nvt/nph/npt sphere requires atom style sphere"); -fix_nh_sphere.cpp: // inertia = moment of inertia prefactor for sphere or disc -fix_nh_sphere.cpp: "Fix nvt/nph/npt sphere disc option requires 2d simulation"); -fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- */ -fix_nh_sphere.cpp: // check that all particles are finite-size -fix_nh_sphere.cpp: // no point particles allowed -fix_nh_sphere.cpp: error->one(FLERR,"Fix nvt/npt/nph/sphere require extended particles"); -fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- -fix_nh_sphere.cpp:-----------------------------------------------------------------------*/ -fix_nh_sphere.cpp: // standard nve_v velocity update -fix_nh_sphere.cpp: // set timestep here since dt may have changed or come via rRESPA -fix_nh_sphere.cpp: double dtfrotate = dtf / inertia; -fix_nh_sphere.cpp: // update omega for all particles -fix_nh_sphere.cpp: // d_omega/dt = torque / inertia -fix_nh_sphere.cpp: // 4 cases depending on radius vs shape and rmass vs mass -fix_nh_sphere.cpp: dtirotate = dtfrotate / (radius[i]*radius[i]*rmass[i]); -fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- -fix_nh_sphere.cpp:-----------------------------------------------------------------------*/ -fix_nh_sphere.cpp: // standard nve_x position update -fix_nh_sphere.cpp: // update mu for dipoles -fix_nh_sphere.cpp: // d_mu/dt = omega cross mu -fix_nh_sphere.cpp: // renormalize mu to dipole length -fix_nh_sphere.cpp: scale = mu[i][3]/sqrt(msq); -fix_nh_sphere.cpp: // Integrate orientation following Dullweber-Leimkuhler-Maclachlan scheme -fix_nh_sphere.cpp: // Construct Q from dipole: -fix_nh_sphere.cpp: // Q is the rotation matrix from space frame to body frame -fix_nh_sphere.cpp: // i.e. v_b = Q.v_s -fix_nh_sphere.cpp: // Define mu to lie along the z axis in the body frame -fix_nh_sphere.cpp: // We take the unit dipole to avoid getting a scaling matrix -fix_nh_sphere.cpp: inv_len_mu = 1.0/mu[i][3]; -fix_nh_sphere.cpp: // v = a x [0 0 1] - cross product of mu in space and body frames -fix_nh_sphere.cpp: // s = |v| -fix_nh_sphere.cpp: // c = a.[0 0 1] = a[2] -fix_nh_sphere.cpp: // vx = [ 0 -v[2] v[1] -fix_nh_sphere.cpp: // v[2] 0 -v[0] -fix_nh_sphere.cpp: // -v[1] v[0] 0 ] -fix_nh_sphere.cpp: // then -fix_nh_sphere.cpp: // Q = I + vx + vx^2 * (1-c)/s^2 -fix_nh_sphere.cpp: if (s2 != 0.0){ // i.e. the vectors are not parallel -fix_nh_sphere.cpp: scale = (1.0 - a[2])/s2; -fix_nh_sphere.cpp: } else { // if parallel then we just have I or -I -fix_nh_sphere.cpp: Q[0][0] = 1.0/a[2]; Q[0][1] = 0.0; Q[0][2] = 0.0; -fix_nh_sphere.cpp: Q[1][0] = 0.0; Q[1][1] = 1.0/a[2]; Q[1][2] = 0.0; -fix_nh_sphere.cpp: Q[2][0] = 0.0; Q[2][1] = 0.0; Q[2][2] = 1.0/a[2]; -fix_nh_sphere.cpp: // Local copy of this particle's angular velocity (in space frame) -fix_nh_sphere.cpp: // Transform omega into body frame: w_temp= Q.w -fix_nh_sphere.cpp: // Construct rotation R1 -fix_nh_sphere.cpp: BuildRxMatrix(R, dtf/force->ftm2v*w_temp[0]); -fix_nh_sphere.cpp: // Apply R1 to w: w = R.w_temp -fix_nh_sphere.cpp: // Apply R1 to Q: Q_temp = R^T.Q -fix_nh_sphere.cpp: // Construct rotation R2 -fix_nh_sphere.cpp: BuildRyMatrix(R, dtf/force->ftm2v*w[1]); -fix_nh_sphere.cpp: // Apply R2 to w: w_temp = R.w -fix_nh_sphere.cpp: // Apply R2 to Q: Q = R^T.Q_temp -fix_nh_sphere.cpp: // Construct rotation R3 -fix_nh_sphere.cpp: BuildRzMatrix(R, 2.0*dtf/force->ftm2v*w_temp[2]); -fix_nh_sphere.cpp: // Apply R3 to w: w = R.w_temp -fix_nh_sphere.cpp: // Apply R3 to Q: Q_temp = R^T.Q -fix_nh_sphere.cpp: // Construct rotation R4 -fix_nh_sphere.cpp: BuildRyMatrix(R, dtf/force->ftm2v*w[1]); -fix_nh_sphere.cpp: // Apply R4 to w: w_temp = R.w -fix_nh_sphere.cpp: // Apply R4 to Q: Q = R^T.Q_temp -fix_nh_sphere.cpp: // Construct rotation R5 -fix_nh_sphere.cpp: BuildRxMatrix(R, dtf/force->ftm2v*w_temp[0]); -fix_nh_sphere.cpp: // Apply R5 to w: w = R.w_temp -fix_nh_sphere.cpp: // Apply R5 to Q: Q_temp = R^T.Q -fix_nh_sphere.cpp: // Transform w back into space frame w_temp = Q^T.w -fix_nh_sphere.cpp: // Set dipole according to updated Q: mu = Q^T.[0 0 1] * |mu| -fix_nh_sphere.cpp:/* ---------------------------------------------------------------------- -fix_nh_sphere.cpp:-----------------------------------------------------------------------*/ -fix_nh_sphere.cpp: // standard nh_v_temp scaling -fix_nph.cpp:/* ---------------------------------------------------------------------- -fix_nph.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nph.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nph.cpp:------------------------------------------------------------------------- */ -fix_nph.cpp:/* ---------------------------------------------------------------------- */ -fix_nph.cpp: // create a new compute temp style -fix_nph.cpp: // id = fix-ID + temp -fix_nph.cpp: // compute group = all since pressure is always global (group all) -fix_nph.cpp: // and thus its KE/temperature contribution should use group all -fix_nph.cpp: // create a new compute pressure style -fix_nph.cpp: // id = fix-ID + press, compute group = all -fix_nph.cpp: // pass id_temp as 4th arg to pressure constructor -fix_nph_sphere.cpp:/* ---------------------------------------------------------------------- -fix_nph_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nph_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nph_sphere.cpp:------------------------------------------------------------------------- */ -fix_nph_sphere.cpp:/* ---------------------------------------------------------------------- */ -fix_nph_sphere.cpp: error->all(FLERR,"Temperature control can not be used with fix nph/sphere"); -fix_nph_sphere.cpp: error->all(FLERR,"Pressure control must be used with fix nph/sphere"); -fix_nph_sphere.cpp: // create a new compute temp style -fix_nph_sphere.cpp: // id = fix-ID + temp -fix_nph_sphere.cpp: // compute group = all since pressure is always global (group all) -fix_nph_sphere.cpp: // and thus its KE/temperature contribution should use group all -fix_nph_sphere.cpp: newarg[2] = (char *) "temp/sphere"; -fix_nph_sphere.cpp: // create a new compute pressure style -fix_nph_sphere.cpp: // id = fix-ID + press, compute group = all -fix_nph_sphere.cpp: // pass id_temp as 4th arg to pressure constructor -fix_npt.cpp:/* ---------------------------------------------------------------------- -fix_npt.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_npt.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_npt.cpp:------------------------------------------------------------------------- */ -fix_npt.cpp:/* ---------------------------------------------------------------------- */ -fix_npt.cpp: // create a new compute temp style -fix_npt.cpp: // id = fix-ID + temp -fix_npt.cpp: // compute group = all since pressure is always global (group all) -fix_npt.cpp: // and thus its KE/temperature contribution should use group all -fix_npt.cpp: // create a new compute pressure style -fix_npt.cpp: // id = fix-ID + press, compute group = all -fix_npt.cpp: // pass id_temp as 4th arg to pressure constructor -fix_npt_sphere.cpp:/* ---------------------------------------------------------------------- -fix_npt_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_npt_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_npt_sphere.cpp:------------------------------------------------------------------------- */ -fix_npt_sphere.cpp:/* ---------------------------------------------------------------------- */ -fix_npt_sphere.cpp: error->all(FLERR,"Temperature control must be used with fix npt/sphere"); -fix_npt_sphere.cpp: error->all(FLERR,"Pressure control must be used with fix npt/sphere"); -fix_npt_sphere.cpp: // create a new compute temp style -fix_npt_sphere.cpp: // id = fix-ID + temp -fix_npt_sphere.cpp: // compute group = all since pressure is always global (group all) -fix_npt_sphere.cpp: // and thus its KE/temperature contribution should use group all -fix_npt_sphere.cpp: newarg[2] = (char *) "temp/sphere"; -fix_npt_sphere.cpp: // create a new compute pressure style -fix_npt_sphere.cpp: // id = fix-ID + press, compute group = all -fix_npt_sphere.cpp: // pass id_temp as 4th arg to pressure constructor -fix_nve.cpp:/* ---------------------------------------------------------------------- -fix_nve.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nve.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nve.cpp:------------------------------------------------------------------------- */ -fix_nve.cpp:/* ---------------------------------------------------------------------- */ -fix_nve.cpp: if (strcmp(style,"nve/sphere") != 0 && narg < 3) -fix_nve.cpp:/* ---------------------------------------------------------------------- */ -fix_nve.cpp:/* ---------------------------------------------------------------------- */ -fix_nve.cpp:/* ---------------------------------------------------------------------- -fix_nve.cpp:------------------------------------------------------------------------- */ -fix_nve.cpp: // update v and x of atoms in group -fix_nve.cpp: dtfm = dtf / rmass[i]; -fix_nve.cpp: dtfm = dtf / mass[type[i]]; -fix_nve.cpp:/* ---------------------------------------------------------------------- */ -fix_nve.cpp: // update v of atoms in group -fix_nve.cpp: dtfm = dtf / rmass[i]; -fix_nve.cpp: dtfm = dtf / mass[type[i]]; -fix_nve.cpp:/* ---------------------------------------------------------------------- */ -fix_nve.cpp: // innermost level - NVE update of v and x -fix_nve.cpp: // all other levels - NVE update of v -fix_nve.cpp:/* ---------------------------------------------------------------------- */ -fix_nve.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_limit.cpp:/* ---------------------------------------------------------------------- -fix_nve_limit.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nve_limit.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nve_limit.cpp:------------------------------------------------------------------------- */ -fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_limit.cpp: if (narg != 4) error->all(FLERR,"Illegal fix nve/limit command"); -fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_limit.cpp: vlimitsq = (xlimit/dtv) * (xlimit/dtv); -fix_nve_limit.cpp: // warn if using fix shake, which will lead to invalid constraint forces -fix_nve_limit.cpp: error->warning(FLERR,"Should not use fix nve/limit with fix shake or fix rattle"); -fix_nve_limit.cpp:/* ---------------------------------------------------------------------- -fix_nve_limit.cpp:------------------------------------------------------------------------- */ -fix_nve_limit.cpp: dtfm = dtf / rmass[i]; -fix_nve_limit.cpp: scale = sqrt(vlimitsq/vsq); -fix_nve_limit.cpp: dtfm = dtf / mass[type[i]]; -fix_nve_limit.cpp: scale = sqrt(vlimitsq/vsq); -fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_limit.cpp: dtfm = dtf / rmass[i]; -fix_nve_limit.cpp: scale = sqrt(vlimitsq/vsq); -fix_nve_limit.cpp: dtfm = dtf / mass[type[i]]; -fix_nve_limit.cpp: scale = sqrt(vlimitsq/vsq); -fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_limit.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_limit.cpp: vlimitsq = (xlimit/dtv) * (xlimit/dtv); -fix_nve_limit.cpp:/* ---------------------------------------------------------------------- -fix_nve_limit.cpp:------------------------------------------------------------------------- */ -fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- -fix_nve_noforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nve_noforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nve_noforce.cpp:------------------------------------------------------------------------- */ -fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_noforce.cpp: if (narg != 3) error->all(FLERR,"Illegal fix nve/noforce command"); -fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_noforce.cpp: if (flag) return; // only used by NPT,NPH -fix_nve_noforce.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_sphere.cpp:/* ---------------------------------------------------------------------- -fix_nve_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nve_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nve_sphere.cpp:------------------------------------------------------------------------- */ -fix_nve_sphere.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_sphere.cpp: if (narg < 3) error->all(FLERR,"Illegal fix nve/sphere command"); -fix_nve_sphere.cpp: // process extra keywords -fix_nve_sphere.cpp: // inertia = moment of inertia prefactor for sphere or disc -fix_nve_sphere.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix nve/sphere command"); -fix_nve_sphere.cpp: else if (strcmp(arg[iarg+1],"dipole/dlm") == 0) { -fix_nve_sphere.cpp: } else error->all(FLERR,"Illegal fix nve/sphere command"); -fix_nve_sphere.cpp: error->all(FLERR,"Fix nve/sphere disc requires 2d simulation"); -fix_nve_sphere.cpp: else error->all(FLERR,"Illegal fix nve/sphere command"); -fix_nve_sphere.cpp: // error checks -fix_nve_sphere.cpp: error->all(FLERR,"Fix nve/sphere requires atom style sphere"); -fix_nve_sphere.cpp: error->all(FLERR,"Fix nve/sphere update dipole requires atom attribute mu"); -fix_nve_sphere.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_sphere.cpp: // check that all particles are finite-size spheres -fix_nve_sphere.cpp: // no point particles allowed -fix_nve_sphere.cpp: error->one(FLERR,"Fix nve/sphere requires extended particles"); -fix_nve_sphere.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_sphere.cpp: // set timestep here since dt may have changed or come via rRESPA -fix_nve_sphere.cpp: double dtfrotate = dtf / inertia; -fix_nve_sphere.cpp: // update v,x,omega for all particles -fix_nve_sphere.cpp: // d_omega/dt = torque / inertia -fix_nve_sphere.cpp: dtfm = dtf / rmass[i]; -fix_nve_sphere.cpp: dtirotate = dtfrotate / (radius[i]*radius[i]*rmass[i]); -fix_nve_sphere.cpp: // update mu for dipoles -fix_nve_sphere.cpp: // d_mu/dt = omega cross mu -fix_nve_sphere.cpp: // renormalize mu to dipole length -fix_nve_sphere.cpp: scale = mu[i][3]/sqrt(msq); -fix_nve_sphere.cpp: // integrate orientation following Dullweber-Leimkuhler-Maclachlan scheme -fix_nve_sphere.cpp: // Construct Q from dipole: -fix_nve_sphere.cpp: // Q is the rotation matrix from space frame to body frame -fix_nve_sphere.cpp: // i.e. v_b = Q.v_s -fix_nve_sphere.cpp: // define mu to lie along the z axis in the body frame -fix_nve_sphere.cpp: // take the unit dipole to avoid getting a scaling matrix -fix_nve_sphere.cpp: inv_len_mu = 1.0/mu[i][3]; -fix_nve_sphere.cpp: // v = a x [0 0 1] - cross product of mu in space and body frames -fix_nve_sphere.cpp: // s = |v| -fix_nve_sphere.cpp: // c = a.[0 0 1] = a[2] -fix_nve_sphere.cpp: // vx = [ 0 -v[2] v[1] -fix_nve_sphere.cpp: // v[2] 0 -v[0] -fix_nve_sphere.cpp: // -v[1] v[0] 0 ] -fix_nve_sphere.cpp: // then -fix_nve_sphere.cpp: // Q = I + vx + vx^2 * (1-c)/s^2 -fix_nve_sphere.cpp: if (s2 != 0.0){ // i.e. the vectors are not parallel -fix_nve_sphere.cpp: scale = (1.0 - a[2])/s2; -fix_nve_sphere.cpp: } else { // if parallel then we just have I or -I -fix_nve_sphere.cpp: Q[0][0] = 1.0/a[2]; Q[0][1] = 0.0; Q[0][2] = 0.0; -fix_nve_sphere.cpp: Q[1][0] = 0.0; Q[1][1] = 1.0/a[2]; Q[1][2] = 0.0; -fix_nve_sphere.cpp: Q[2][0] = 0.0; Q[2][1] = 0.0; Q[2][2] = 1.0/a[2]; -fix_nve_sphere.cpp: // Local copy of this particle's angular velocity (in space frame) -fix_nve_sphere.cpp: // Transform omega into body frame: w_temp= Q.w -fix_nve_sphere.cpp: // Construct rotation R1 -fix_nve_sphere.cpp: BuildRxMatrix(R, dtf/force->ftm2v*w_temp[0]); -fix_nve_sphere.cpp: // Apply R1 to w: w = R.w_temp -fix_nve_sphere.cpp: // Apply R1 to Q: Q_temp = R^T.Q -fix_nve_sphere.cpp: // Construct rotation R2 -fix_nve_sphere.cpp: BuildRyMatrix(R, dtf/force->ftm2v*w[1]); -fix_nve_sphere.cpp: // Apply R2 to w: w_temp = R.w -fix_nve_sphere.cpp: // Apply R2 to Q: Q = R^T.Q_temp -fix_nve_sphere.cpp: // Construct rotation R3 -fix_nve_sphere.cpp: BuildRzMatrix(R, 2.0*dtf/force->ftm2v*w_temp[2]); -fix_nve_sphere.cpp: // Apply R3 to w: w = R.w_temp -fix_nve_sphere.cpp: // Apply R3 to Q: Q_temp = R^T.Q -fix_nve_sphere.cpp: // Construct rotation R4 -fix_nve_sphere.cpp: BuildRyMatrix(R, dtf/force->ftm2v*w[1]); -fix_nve_sphere.cpp: // Apply R4 to w: w_temp = R.w -fix_nve_sphere.cpp: // Apply R4 to Q: Q = R^T.Q_temp -fix_nve_sphere.cpp: // Construct rotation R5 -fix_nve_sphere.cpp: BuildRxMatrix(R, dtf/force->ftm2v*w_temp[0]); -fix_nve_sphere.cpp: // Apply R5 to w: w = R.w_temp -fix_nve_sphere.cpp: // Apply R5 to Q: Q_temp = R^T.Q -fix_nve_sphere.cpp: // Transform w back into space frame w_temp = Q^T.w -fix_nve_sphere.cpp: // Set dipole according to updated Q: mu = Q^T.[0 0 1] * |mu| -fix_nve_sphere.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_sphere.cpp: // set timestep here since dt may have changed or come via rRESPA -fix_nve_sphere.cpp: double dtfrotate = dtf / inertia; -fix_nve_sphere.cpp: // update v,omega for all particles -fix_nve_sphere.cpp: // d_omega/dt = torque / inertia -fix_nve_sphere.cpp: dtfm = dtf / rmass[i]; -fix_nve_sphere.cpp: dtirotate = dtfrotate / (radius[i]*radius[i]*rmass[i]); -fix_nve_spin.cpp:/* ---------------------------------------------------------------------- -fix_nve_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nve_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nve_spin.cpp:------------------------------------------------------------------------- */ -fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_spin.cpp: if (narg < 3) error->all(FLERR,"Illegal fix nve/spin command"); -fix_nve_spin.cpp: if (strcmp(arg[iarg],"nve/spin") == 0) { -fix_nve_spin.cpp: if (iarg+1 > narg) error->all(FLERR,"Illegal fix nve/spin command"); -fix_nve_spin.cpp: // error checks -fix_nve_spin.cpp: error->all(FLERR,"Fix nve/spin requires spin attribute mumag"); -fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_spin.cpp: /*int idamp; -fix_nve_spin.cpp: if (strstr(modify->fix[idamp]->style,"damping/spin")) break; -fix_nve_spin.cpp: */ -fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_spin.cpp: // Advance half spins all particles -fix_nve_spin.cpp: //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 -fix_nve_spin.cpp: // update half v all particles -fix_nve_spin.cpp: if (rmass) dtfm = dtf / rmass[i]; -fix_nve_spin.cpp: else dtfm = dtf / mass[type[i]]; -fix_nve_spin.cpp: // update x for all particles -fix_nve_spin.cpp://#define FORCE_PRINT -fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_spin.cpp: // regular communication vs neighbor list rebuild -fix_nve_spin.cpp: // force computations -fix_nve_spin.cpp: // important for pair to come before bonded contributions -fix_nve_spin.cpp: // since some bonded potentials tally pairwise energy/virial -fix_nve_spin.cpp: // and Pair:ev_tally() needs to be called before any tallying -fix_nve_spin.cpp: // reverse communication of forces -fix_nve_spin.cpp: // force modifications -fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_spin.cpp: g[0] /= (1+0.25*fm2*dts*dts); -fix_nve_spin.cpp: g[1] /= (1+0.25*fm2*dts*dts); -fix_nve_spin.cpp: g[2] /= (1+0.25*fm2*dts*dts); -fix_nve_spin.cpp: //Renormalization (may not be necessary) -fix_nve_spin.cpp: scale = 1.0/sqrt(msq); -fix_nve_spin.cpp:/* ---------------------------------------------------------------------- */ -fix_nve_spin.cpp: // update half v for all particles -fix_nve_spin.cpp: if (rmass) dtfm = dtf / rmass[i]; -fix_nve_spin.cpp: else dtfm = dtf / mass[type[i]]; -fix_nve_spin.cpp: // Advance half spins all particles -fix_nve_spin.cpp: //See Omelyan et al., PRL 86, 2001 and P.W. Ma et al, PRB 83, 2011 -fix_nvt.cpp:/* ---------------------------------------------------------------------- -fix_nvt.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nvt.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nvt.cpp:------------------------------------------------------------------------- */ -fix_nvt.cpp:/* ---------------------------------------------------------------------- */ -fix_nvt.cpp: // create a new compute temp style -fix_nvt.cpp: // id = fix-ID + temp -fix_nvt_sllod.cpp:/* ---------------------------------------------------------------------- -fix_nvt_sllod.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nvt_sllod.cpp: www.cs.sandia.gov/~sjplimp/lammps.html -fix_nvt_sllod.cpp:------------------------------------------------------------------------- */ -fix_nvt_sllod.cpp:/* ---------------------------------------------------------------------- -fix_nvt_sllod.cpp:------------------------------------------------------------------------- */ -fix_nvt_sllod.cpp:enum{NO_REMAP,X_REMAP,V_REMAP}; // same as fix_deform.cpp -fix_nvt_sllod.cpp:/* ---------------------------------------------------------------------- */ -fix_nvt_sllod.cpp: error->all(FLERR,"Temperature control must be used with fix nvt/sllod"); -fix_nvt_sllod.cpp: error->all(FLERR,"Pressure control can not be used with fix nvt/sllod"); -fix_nvt_sllod.cpp: // default values -fix_nvt_sllod.cpp: // create a new compute temp style -fix_nvt_sllod.cpp: // id = fix-ID + temp -fix_nvt_sllod.cpp: newarg[2] = (char *) "temp/deform"; -fix_nvt_sllod.cpp:/* ---------------------------------------------------------------------- */ -fix_nvt_sllod.cpp: error->all(FLERR,"Temperature for fix nvt/sllod does not have a bias"); -fix_nvt_sllod.cpp: if (strcmp(temperature->style,"temp/deform") != 0) nondeformbias = 1; -fix_nvt_sllod.cpp: // check fix deform remap settings -fix_nvt_sllod.cpp: error->all(FLERR,"Using fix nvt/sllod with inconsistent fix deform " -fix_nvt_sllod.cpp: error->all(FLERR,"Using fix nvt/sllod with no fix deform defined"); -fix_nvt_sllod.cpp:/* ---------------------------------------------------------------------- -fix_nvt_sllod.cpp:-----------------------------------------------------------------------*/ -fix_nvt_sllod.cpp: // remove and restore bias = streaming velocity = Hrate*lamda + Hratelo -fix_nvt_sllod.cpp: // thermostat thermal velocity only -fix_nvt_sllod.cpp: // vdelu = SLLOD correction = Hrate*Hinv*vthermal -fix_nvt_sllod.cpp: // for non temp/deform BIAS: -fix_nvt_sllod.cpp: // calculate temperature since some computes require temp -fix_nvt_sllod.cpp: // computed on current nlocal atoms to remove bias -fix_nvt_sphere.cpp:/* ---------------------------------------------------------------------- -fix_nvt_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_nvt_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_nvt_sphere.cpp:------------------------------------------------------------------------- */ -fix_nvt_sphere.cpp:/* ---------------------------------------------------------------------- */ -fix_nvt_sphere.cpp: error->all(FLERR,"Temperature control must be used with fix nvt/sphere"); -fix_nvt_sphere.cpp: error->all(FLERR,"Pressure control can not be used with fix nvt/sphere"); -fix_nvt_sphere.cpp: // create a new compute temp style -fix_nvt_sphere.cpp: // id = fix-ID + temp -fix_nvt_sphere.cpp: newarg[2] = (char *) "temp/sphere"; -fix_planeforce.cpp:/* ---------------------------------------------------------------------- -fix_planeforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_planeforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_planeforce.cpp:------------------------------------------------------------------------- */ -fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ -fix_planeforce.cpp: xdir /= len; -fix_planeforce.cpp: ydir /= len; -fix_planeforce.cpp: zdir /= len; -fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ -fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ -fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ -fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ -fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ -fix_planeforce.cpp:/* ---------------------------------------------------------------------- */ -fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- -fix_press_berendsen.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_press_berendsen.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_press_berendsen.cpp:------------------------------------------------------------------------- */ -fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_press_berendsen.cpp: if (narg < 5) error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: // Berendsen barostat applied every step -fix_press_berendsen.cpp: // default values -fix_press_berendsen.cpp: // process keywords -fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen for a 2d simulation"); -fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: else error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: else error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: } else error->all(FLERR,"Illegal fix press/berendsen command"); -fix_press_berendsen.cpp: // error checks -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen for a 2d simulation"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen for a 2d simulation"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); -fix_press_berendsen.cpp: "Cannot use fix press/berendsen on a non-periodic dimension"); -fix_press_berendsen.cpp: "Cannot use fix press/berendsen on a non-periodic dimension"); -fix_press_berendsen.cpp: "Cannot use fix press/berendsen on a non-periodic dimension"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); -fix_press_berendsen.cpp: error->all(FLERR,"Invalid fix press/berendsen pressure settings"); -fix_press_berendsen.cpp: error->all(FLERR,"Fix press/berendsen damping parameters must be > 0.0"); -fix_press_berendsen.cpp: // pstyle = ISO if XYZ coupling or XY coupling in 2d -> 1 dof -fix_press_berendsen.cpp: // else pstyle = ANISO -> 3 dof -fix_press_berendsen.cpp: // create a new compute temp style -fix_press_berendsen.cpp: // id = fix-ID + temp -fix_press_berendsen.cpp: // compute group = all since pressure is always global (group all) -fix_press_berendsen.cpp: // and thus its KE/temperature contribution should use group all -fix_press_berendsen.cpp: // create a new compute pressure style -fix_press_berendsen.cpp: // id = fix-ID + press, compute group = all -fix_press_berendsen.cpp: // pass id_temp as 4th arg to pressure constructor -fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_press_berendsen.cpp: // delete temperature and pressure if fix created them -fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_press_berendsen.cpp: error->all(FLERR,"Cannot use fix press/berendsen with triclinic box"); -fix_press_berendsen.cpp: // insure no conflict with fix deform -fix_press_berendsen.cpp: error->all(FLERR,"Cannot use fix press/berendsen and " -fix_press_berendsen.cpp: // set temperature and pressure ptrs -fix_press_berendsen.cpp: error->all(FLERR,"Temperature ID for fix press/berendsen does not exist"); -fix_press_berendsen.cpp: error->all(FLERR,"Pressure ID for fix press/berendsen does not exist"); -fix_press_berendsen.cpp: // Kspace setting -fix_press_berendsen.cpp: // detect if any rigid fixes exist so rigid bodies move when box is remapped -fix_press_berendsen.cpp: // rfix[] = indices to each fix rigid -fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- -fix_press_berendsen.cpp:------------------------------------------------------------------------- */ -fix_press_berendsen.cpp: // trigger virial computation on next timestep -fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_press_berendsen.cpp: // compute new T,P -fix_press_berendsen.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_press_berendsen.cpp: pow(1.0 - update->dt/p_period[i] * -fix_press_berendsen.cpp: (p_target[i]-p_current[i])/bulkmodulus,1.0/3.0); -fix_press_berendsen.cpp: // remap simulation box and atoms -fix_press_berendsen.cpp: // redo KSpace coeffs since volume has changed -fix_press_berendsen.cpp: // trigger virial computation on next timestep -fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_press_berendsen.cpp: double ave = 1.0/3.0 * (tensor[0] + tensor[1] + tensor[2]); -fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- -fix_press_berendsen.cpp:------------------------------------------------------------------------- */ -fix_press_berendsen.cpp: // convert pertinent atoms and rigid bodies to lamda coords -fix_press_berendsen.cpp: // reset global and local box to new size/shape -fix_press_berendsen.cpp: // convert pertinent atoms and rigid bodies back to box coords -fix_press_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_press_berendsen.cpp: // reset id_temp of pressure to new temperature ID -fix_press_berendsen.cpp: error->all(FLERR,"Pressure ID for fix press/berendsen does not exist"); -fix_print.cpp:/* ---------------------------------------------------------------------- -fix_print.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_print.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_print.cpp:------------------------------------------------------------------------- */ -fix_print.cpp:/* ---------------------------------------------------------------------- */ -fix_print.cpp: copy = (char *) memory->smalloc(n*sizeof(char),"fix/print:copy"); -fix_print.cpp: work = (char *) memory->smalloc(n*sizeof(char),"fix/print:work"); -fix_print.cpp: // parse optional args -fix_print.cpp: // print file comment line -fix_print.cpp: // add nfirst to all computes that store invocation times -fix_print.cpp: // since don't know a priori which are invoked via variables by this fix -fix_print.cpp: // once in end_of_step() can set timestep for ones actually invoked -fix_print.cpp: const bigint nfirst = (update->ntimestep/nevery)*nevery + nevery; -fix_print.cpp:/* ---------------------------------------------------------------------- */ -fix_print.cpp:/* ---------------------------------------------------------------------- */ -fix_print.cpp:/* ---------------------------------------------------------------------- */ -fix_print.cpp: // make a copy of string to work on -fix_print.cpp: // substitute for $ variables (no printing) -fix_print.cpp: // append a newline and print final copy -fix_print.cpp: // variable evaluation may invoke computes so wrap with clear/add -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_property_atom.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- */ -fix_property_atom.cpp: if (narg < 4) error->all(FLERR,"Illegal fix property/atom command"); -fix_property_atom.cpp: error->all(FLERR,"Fix property/atom mol when atom_style " -fix_property_atom.cpp: error->all(FLERR,"Fix property/atom cannot specify mol twice"); -fix_property_atom.cpp: error->all(FLERR,"Fix property/atom q when atom_style " -fix_property_atom.cpp: error->all(FLERR,"Fix property/atom cannot specify q twice"); -fix_property_atom.cpp: error->all(FLERR,"Fix property/atom rmass when atom_style " -fix_property_atom.cpp: error->all(FLERR,"Fix property/atom cannot specify rmass twice"); -fix_property_atom.cpp: error->all(FLERR,"Fix property/atom vector name already exists"); -fix_property_atom.cpp: error->all(FLERR,"Fix property/atom vector name already exists"); -fix_property_atom.cpp: // optional args -fix_property_atom.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix property/atom command"); -fix_property_atom.cpp: else error->all(FLERR,"Illegal fix property/atom command"); -fix_property_atom.cpp: } else error->all(FLERR,"Illegal fix property/atom command"); -fix_property_atom.cpp: // warn if mol or charge keyword used without ghost yes -fix_property_atom.cpp: error->warning(FLERR,"Fix property/atom mol or charge or rmass " -fix_property_atom.cpp: "w/out ghost communication"); -fix_property_atom.cpp: // store current atom style -fix_property_atom.cpp: // perform initial allocation of atom-based array -fix_property_atom.cpp: // register with Atom class -fix_property_atom.cpp:/* ---------------------------------------------------------------------- */ -fix_property_atom.cpp: // unregister callbacks to this fix from Atom class -fix_property_atom.cpp: // deallocate per-atom vectors in Atom class -fix_property_atom.cpp: // set ptrs to NULL, so they no longer exist for Atom class -fix_property_atom.cpp:/* ---------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- */ -fix_property_atom.cpp: // error if atom style has changed since fix was defined -fix_property_atom.cpp: // don't allow this b/c user could change to style that defines molecule,q -fix_property_atom.cpp: error->all(FLERR,"Atom style was redefined after using fix property/atom"); -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp: // loop over lines of atom info -fix_property_atom.cpp: // tokenize the line into values -fix_property_atom.cpp: // if I own atom tag, unpack its values -fix_property_atom.cpp: // assign words in line to per-atom vectors -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp: // 1st column = atom tag -fix_property_atom.cpp: // rest of columns = per-atom values -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp: // skip to Nth set of extra values -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_property_atom.cpp:/* ---------------------------------------------------------------------- -fix_property_atom.cpp:------------------------------------------------------------------------- */ -fix_read_restart.cpp:/* ---------------------------------------------------------------------- -fix_read_restart.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_read_restart.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_read_restart.cpp:------------------------------------------------------------------------- */ -fix_read_restart.cpp:/* ---------------------------------------------------------------------- */ -fix_read_restart.cpp: // perform initial allocation of atom-based array -fix_read_restart.cpp: // register with Atom class -fix_read_restart.cpp: // extra = copy of atom->extra -fix_read_restart.cpp:/* ---------------------------------------------------------------------- */ -fix_read_restart.cpp: // unregister callback to this fix from Atom class -fix_read_restart.cpp: // delete locally stored arrays -fix_read_restart.cpp:/* ---------------------------------------------------------------------- */ -fix_read_restart.cpp:/* ---------------------------------------------------------------------- -fix_read_restart.cpp:------------------------------------------------------------------------- */ -fix_read_restart.cpp:/* ---------------------------------------------------------------------- -fix_read_restart.cpp:------------------------------------------------------------------------- */ -fix_read_restart.cpp:/* ---------------------------------------------------------------------- -fix_read_restart.cpp:------------------------------------------------------------------------- */ -fix_read_restart.cpp:/* ---------------------------------------------------------------------- -fix_read_restart.cpp:------------------------------------------------------------------------- */ -fix_read_restart.cpp:/* ---------------------------------------------------------------------- -fix_read_restart.cpp:------------------------------------------------------------------------- */ -fix_recenter.cpp:/* ---------------------------------------------------------------------- -fix_recenter.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_recenter.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_recenter.cpp:------------------------------------------------------------------------- */ -fix_recenter.cpp:/* ---------------------------------------------------------------------- -fix_recenter.cpp:------------------------------------------------------------------------- */ -fix_recenter.cpp:/* ---------------------------------------------------------------------- */ -fix_recenter.cpp: // optional args -fix_recenter.cpp: // scale xcom,ycom,zcom -fix_recenter.cpp: // cannot have 0 atoms in group -fix_recenter.cpp:/* ---------------------------------------------------------------------- */ -fix_recenter.cpp:/* ---------------------------------------------------------------------- */ -fix_recenter.cpp: // warn if any integrate fix comes after this one -fix_recenter.cpp: // if any components of requested COM were INIT, store initial COM -fix_recenter.cpp:/* ---------------------------------------------------------------------- */ -fix_recenter.cpp: // target COM -fix_recenter.cpp: // bounding box around domain works for both orthogonal and triclinic -fix_recenter.cpp: // current COM -fix_recenter.cpp: // shift coords by difference between actual COM and requested COM -fix_recenter.cpp:/* ---------------------------------------------------------------------- */ -fix_recenter.cpp: // outermost level - operate recenter -fix_recenter.cpp: // all other levels - nothing -fix_recenter.cpp:/* ---------------------------------------------------------------------- */ -fix_recenter.cpp:/* ---------------------------------------------------------------------- */ -fix_respa.cpp:/* ---------------------------------------------------------------------- -fix_respa.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_respa.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_respa.cpp:------------------------------------------------------------------------- */ -fix_respa.cpp:/* ---------------------------------------------------------------------- */ -fix_respa.cpp: // nlevels = # of rRESPA levels -fix_respa.cpp: // optional arguments -fix_respa.cpp: // perform initial allocation of atom-based arrays -fix_respa.cpp: // register with Atom class -fix_respa.cpp:/* ---------------------------------------------------------------------- */ -fix_respa.cpp: // unregister callbacks to this fix from Atom class -fix_respa.cpp: // delete locally stored arrays -fix_respa.cpp:/* ---------------------------------------------------------------------- */ -fix_respa.cpp:/* ---------------------------------------------------------------------- -fix_respa.cpp:------------------------------------------------------------------------- */ -fix_respa.cpp:/* ---------------------------------------------------------------------- -fix_respa.cpp:------------------------------------------------------------------------- */ -fix_respa.cpp:/* ---------------------------------------------------------------------- -fix_respa.cpp:------------------------------------------------------------------------- */ -fix_respa.cpp:/* ---------------------------------------------------------------------- -fix_respa.cpp:------------------------------------------------------------------------- */ -fix_respa.cpp:/* ---------------------------------------------------------------------- -fix_respa.cpp:------------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- -fix_restrain.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_restrain.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_restrain.cpp:------------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- -fix_restrain.cpp:------------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- */ -fix_restrain.cpp: // parse args -fix_restrain.cpp: target[nrestrain] *= MY_PI / 180.0; -fix_restrain.cpp: target[nrestrain] *= MY_PI / 180.0; -fix_restrain.cpp: // require atom map to lookup atom IDs -fix_restrain.cpp:/* ---------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- */ -fix_restrain.cpp:/* ---------------------------------------------------------------------- -fix_restrain.cpp:---------------------------------------------------------------------- */ -fix_restrain.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_restrain.cpp: // newton_bond on: only processor owning i2 computes restraint -fix_restrain.cpp: // newton_bond off: only processors owning either of i1,i2 computes restraint -fix_restrain.cpp: // force & energy -fix_restrain.cpp: if (r > 0.0) fbond = -2.0*rk/r; -fix_restrain.cpp: // apply force to each of 2 atoms -fix_restrain.cpp:/* ---------------------------------------------------------------------- -fix_restrain.cpp:---------------------------------------------------------------------- */ -fix_restrain.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_restrain.cpp: // newton_bond on: only processor owning i2 computes restraint -fix_restrain.cpp: // newton_bond off: only processors owning any of i1-i3 computes restraint -fix_restrain.cpp: // 1st bond -fix_restrain.cpp: // 2nd bond -fix_restrain.cpp: // angle (cos and sin) -fix_restrain.cpp: c /= r1*r2; -fix_restrain.cpp: s = 1.0/s; -fix_restrain.cpp: // force & energy -fix_restrain.cpp: a11 = a*c / rsq1; -fix_restrain.cpp: a12 = -a / (r1*r2); -fix_restrain.cpp: a22 = a*c / rsq2; -fix_restrain.cpp: // apply force to each of 3 atoms -fix_restrain.cpp:/* ---------------------------------------------------------------------- -fix_restrain.cpp:---------------------------------------------------------------------- */ -fix_restrain.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_restrain.cpp: // newton_bond on: only processor owning i2 computes restraint -fix_restrain.cpp: // newton_bond off: only processors owning any of i1-i4 computes restraint -fix_restrain.cpp: // 1st bond -fix_restrain.cpp: // 2nd bond -fix_restrain.cpp: // 3rd bond -fix_restrain.cpp: if (rg > 0) rginv = 1.0/rg; -fix_restrain.cpp: if (rasq > 0) ra2inv = 1.0/rasq; -fix_restrain.cpp: if (rbsq > 0) rb2inv = 1.0/rbsq; -fix_restrain.cpp: // error check -fix_restrain.cpp: mult = 1; // multiplicity -fix_restrain.cpp: // apply force to each of 4 atoms -fix_restrain.cpp:/* ---------------------------------------------------------------------- -fix_restrain.cpp:------------------------------------------------------------------------- */ -fix_setforce.cpp:/* ---------------------------------------------------------------------- -fix_setforce.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_setforce.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_setforce.cpp:------------------------------------------------------------------------- */ -fix_setforce.cpp:/* ---------------------------------------------------------------------- */ -fix_setforce.cpp: // optional args -fix_setforce.cpp:/* ---------------------------------------------------------------------- */ -fix_setforce.cpp:/* ---------------------------------------------------------------------- */ -fix_setforce.cpp:/* ---------------------------------------------------------------------- */ -fix_setforce.cpp: // check variables -fix_setforce.cpp: // set index and check validity of region -fix_setforce.cpp: // cannot use non-zero forces for a minimization since no energy is integrated -fix_setforce.cpp: // use fix addforce instead -fix_setforce.cpp:/* ---------------------------------------------------------------------- */ -fix_setforce.cpp:/* ---------------------------------------------------------------------- */ -fix_setforce.cpp:/* ---------------------------------------------------------------------- */ -fix_setforce.cpp: // update region if necessary -fix_setforce.cpp: // reallocate sforce array if necessary -fix_setforce.cpp: // variable force, wrap with clear/add -fix_setforce.cpp:/* ---------------------------------------------------------------------- */ -fix_setforce.cpp: // set force to desired value on requested level, 0.0 on other levels -fix_setforce.cpp:/* ---------------------------------------------------------------------- */ -fix_setforce.cpp:/* ---------------------------------------------------------------------- -fix_setforce.cpp:------------------------------------------------------------------------- */ -fix_setforce.cpp: // only sum across procs one time -fix_setforce.cpp:/* ---------------------------------------------------------------------- -fix_setforce.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_shear_history.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ -fix_shear_history.cpp: if (newton_pair) comm_reverse = 1; // just for single npartner value -fix_shear_history.cpp: // variable-size history communicated via -fix_shear_history.cpp: // reverse_comm_fix_variable() -fix_shear_history.cpp: // perform initial allocation of atom-based arrays -fix_shear_history.cpp: // register with atom class -fix_shear_history.cpp: // initialize npartner to 0 so neighbor list creation is OK the 1st time -fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ -fix_shear_history.cpp: // unregister this fix so atom class doesn't invoke it any more -fix_shear_history.cpp: // delete locally stored arrays -fix_shear_history.cpp: // to better detect use-after-delete errors -fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp: create pages if first time or if neighbor pgsize/oneatom has changed -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp: b/c there is no guarantee of a current neigh list (even on continued run) -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp: onesided version for sphere contact with line/tri particles -fix_shear_history.cpp: neighbor list has I = sphere, J = line/tri -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp: // NOTE: all operations until very end are with nlocal_neigh <= current nlocal -fix_shear_history.cpp: // b/c previous neigh list was built with nlocal_neigh -fix_shear_history.cpp: // nlocal can be larger if other fixes added atoms at this pre_exchange() -fix_shear_history.cpp: // zero npartner for owned atoms -fix_shear_history.cpp: // clear 2 page data structures -fix_shear_history.cpp: // 1st loop over neighbor list, I = sphere, J = tri -fix_shear_history.cpp: // only calculate npartner for owned spheres -fix_shear_history.cpp: // get page chunks to store atom IDs and shear history for owned atoms -fix_shear_history.cpp: // 2nd loop over neighbor list, I = sphere, J = tri -fix_shear_history.cpp: // store atom IDs and shear history for owned spheres -fix_shear_history.cpp: // re-zero npartner to use as counter -fix_shear_history.cpp: // set maxtouch = max # of partners of any owned atom -fix_shear_history.cpp: // bump up comm->maxexchange_fix if necessary -fix_shear_history.cpp: // zero npartner values from previous nlocal_neigh to current nlocal -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp: newton on version, for sphere/sphere contacts -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp: // NOTE: all operations until very end are with -fix_shear_history.cpp: // nlocal_neigh <= current nlocal and nall_neigh -fix_shear_history.cpp: // b/c previous neigh list was built with nlocal_neigh,nghost_neigh -fix_shear_history.cpp: // nlocal can be larger if other fixes added atoms at this pre_exchange() -fix_shear_history.cpp: // zero npartner for owned+ghost atoms -fix_shear_history.cpp: // clear 2 page data structures -fix_shear_history.cpp: // 1st loop over neighbor list -fix_shear_history.cpp: // calculate npartner for owned+ghost atoms -fix_shear_history.cpp: // perform reverse comm to augment owned npartner counts with ghost counts -fix_shear_history.cpp: // get page chunks to store atom IDs and shear history for owned+ghost atoms -fix_shear_history.cpp: // 2nd loop over neighbor list -fix_shear_history.cpp: // store atom IDs and shear history for owned+ghost atoms -fix_shear_history.cpp: // re-zero npartner to use as counter -fix_shear_history.cpp: // perform reverse comm to augment -fix_shear_history.cpp: // owned atom partner/shearpartner with ghost info -fix_shear_history.cpp: // use variable variant b/c size of packed data can be arbitrarily large -fix_shear_history.cpp: // if many touching neighbors for large particle -fix_shear_history.cpp: // set maxtouch = max # of partners of any owned atom -fix_shear_history.cpp: // bump up comm->maxexchange_fix if necessary -fix_shear_history.cpp: // zero npartner values from previous nlocal_neigh to current nlocal -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp: newton off version, for sphere/sphere contacts -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp: // NOTE: all operations until very end are with nlocal_neigh <= current nlocal -fix_shear_history.cpp: // b/c previous neigh list was built with nlocal_neigh -fix_shear_history.cpp: // nlocal can be larger if other fixes added atoms at this pre_exchange() -fix_shear_history.cpp: // zero npartner for owned atoms -fix_shear_history.cpp: // clear 2 page data structures -fix_shear_history.cpp: // 1st loop over neighbor list -fix_shear_history.cpp: // calculate npartner for owned atoms -fix_shear_history.cpp: // get page chunks to store atom IDs and shear history for owned atoms -fix_shear_history.cpp: // 2nd loop over neighbor list -fix_shear_history.cpp: // store atom IDs and shear history for owned atoms -fix_shear_history.cpp: // re-zero npartner to use as counter -fix_shear_history.cpp: // set maxtouch = max # of partners of any owned atom -fix_shear_history.cpp: // bump up comm->maxexchange_fix if necessary -fix_shear_history.cpp: // zero npartner values from previous nlocal_neigh to current nlocal -fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp: // just copy pointers for partner and shearpartner -fix_shear_history.cpp: // b/c can't overwrite chunk allocation inside ipage,dpage -fix_shear_history.cpp: // incoming atoms in unpack_exchange just grab new chunks -fix_shear_history.cpp: // so are orphaning chunks for migrating atoms -fix_shear_history.cpp: // OK, b/c will reset ipage,dpage on next reneighboring -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp: // NOTE: how do I know comm buf is big enough if extreme # of touching neighs -fix_shear_history.cpp: // Comm::BUFEXTRA may need to be increased -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp: // allocate new chunks from ipage,dpage for incoming values -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp: // ipage = NULL if being called from granular pair style init() -fix_shear_history.cpp: // skip to Nth set of extra values -fix_shear_history.cpp: // allocate new chunks from ipage,dpage for incoming values -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_shear_history.cpp: // maxtouch_all = max # of touching partners across all procs -fix_shear_history.cpp:/* ---------------------------------------------------------------------- -fix_shear_history.cpp:------------------------------------------------------------------------- */ -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- -fix_spring_chunk.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_spring_chunk.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_spring_chunk.cpp:------------------------------------------------------------------------- */ -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_chunk.cpp: if (narg != 6) error->all(FLERR,"Illegal fix spring/chunk command"); -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_chunk.cpp: // decrement lock counter in compute chunk/atom, it if still exists -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_chunk.cpp: // current indices for idchunk and idcom -fix_spring_chunk.cpp: error->all(FLERR,"Chunk/atom compute does not exist for fix spring/chunk"); -fix_spring_chunk.cpp: if (strcmp(cchunk->style,"chunk/atom") != 0) -fix_spring_chunk.cpp: error->all(FLERR,"Fix spring/chunk does not use chunk/atom compute"); -fix_spring_chunk.cpp: error->all(FLERR,"Com/chunk compute does not exist for fix spring/chunk"); -fix_spring_chunk.cpp: if (strcmp(ccom->style,"com/chunk") != 0) -fix_spring_chunk.cpp: error->all(FLERR,"Fix spring/chunk does not use com/chunk compute"); -fix_spring_chunk.cpp: // check that idchunk is consistent with ccom->idchunk -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_chunk.cpp: // check if first time cchunk will be queried via ccom -fix_spring_chunk.cpp: // if so, lock idchunk for as long as this fix is in place -fix_spring_chunk.cpp: // will be unlocked in destructor -fix_spring_chunk.cpp: // necessary b/c this fix stores original COM -fix_spring_chunk.cpp: // calculate current centers of mass for each chunk -fix_spring_chunk.cpp: // extract pointers from idchunk and idcom -fix_spring_chunk.cpp: // check if first time cchunk was queried via ccom -fix_spring_chunk.cpp: // if so, allocate com0,fcom and store initial COM -fix_spring_chunk.cpp: memory->create(com0,nchunk,3,"spring/chunk:com0"); -fix_spring_chunk.cpp: memory->create(fcom,nchunk,3,"spring/chunk:fcom"); -fix_spring_chunk.cpp: // calculate fcom = force on each COM, divided by masstotal -fix_spring_chunk.cpp: fcom[m][0] = k_spring*dx/r / masstotal[m]; -fix_spring_chunk.cpp: fcom[m][1] = k_spring*dy/r / masstotal[m]; -fix_spring_chunk.cpp: fcom[m][2] = k_spring*dz/r / masstotal[m]; -fix_spring_chunk.cpp: // apply restoring force to atoms in each chunk -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_chunk.cpp:/* ---------------------------------------------------------------------- -fix_spring_chunk.cpp:------------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- -fix_spring.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_spring.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_spring.cpp:------------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- -fix_spring.cpp:------------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp: // recheck that group 2 has not been deleted -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp: // fx,fy,fz = components of k * (r-r0) / masstotal -fix_spring.cpp: fx = k_spring*dx*dr/r; -fix_spring.cpp: fy = k_spring*dy*dr/r; -fix_spring.cpp: fz = k_spring*dz*dr/r; -fix_spring.cpp: fx /= masstotal; -fix_spring.cpp: fy /= masstotal; -fix_spring.cpp: fz /= masstotal; -fix_spring.cpp: // apply restoring force to atoms in group -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp: // fx,fy,fz = components of k * (r-r0) / masstotal -fix_spring.cpp: // fx2,fy2,fz2 = components of k * (r-r0) / masstotal2 -fix_spring.cpp: fx = k_spring*dx*dr/r; -fix_spring.cpp: fy = k_spring*dy*dr/r; -fix_spring.cpp: fz = k_spring*dz*dr/r; -fix_spring.cpp: fx2 = fx/masstotal2; -fix_spring.cpp: fy2 = fy/masstotal2; -fix_spring.cpp: fz2 = fz/masstotal2; -fix_spring.cpp: fx /= masstotal; -fix_spring.cpp: fy /= masstotal; -fix_spring.cpp: fz /= masstotal; -fix_spring.cpp: // apply restoring force to atoms in group -fix_spring.cpp: // f = -k*(r-r0)*mass/masstotal -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- -fix_spring.cpp:------------------------------------------------------------------------- */ -fix_spring.cpp:/* ---------------------------------------------------------------------- -fix_spring.cpp:------------------------------------------------------------------------- */ -fix_spring_rg.cpp:/* ---------------------------------------------------------------------- -fix_spring_rg.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_spring_rg.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_spring_rg.cpp:------------------------------------------------------------------------- */ -fix_spring_rg.cpp:/* ---------------------------------------------------------------------- -fix_spring_rg.cpp:------------------------------------------------------------------------- */ -fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_rg.cpp: if (narg != 5) error->all(FLERR,"Illegal fix spring/rg command"); -fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_rg.cpp: // if rg0 was specified as NULL, compute current Rg -fix_spring_rg.cpp: // only occurs on 1st run -fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_rg.cpp: // compute current Rg and center-of-mass -fix_spring_rg.cpp: // apply restoring force to atoms in group -fix_spring_rg.cpp: // f = -k*(r-r0)*mass/masstotal -fix_spring_rg.cpp: term1 = 2.0 * k * (1.0 - rg0/rg); -fix_spring_rg.cpp: if (rmass) massfrac = rmass[i]/masstotal; -fix_spring_rg.cpp: else massfrac = mass[type[i]]/masstotal; -fix_spring_rg.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_spring_self.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_self.cpp: error->all(FLERR,"Illegal fix spring/self command"); -fix_spring_self.cpp: if (k <= 0.0) error->all(FLERR,"Illegal fix spring/self command"); -fix_spring_self.cpp: } else error->all(FLERR,"Illegal fix spring/self command"); -fix_spring_self.cpp: // perform initial allocation of atom-based array -fix_spring_self.cpp: // register with Atom class -fix_spring_self.cpp: // xoriginal = initial unwrapped positions of atoms -fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_self.cpp: // unregister callbacks to this fix from Atom class -fix_spring_self.cpp: // delete locally stored array -fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp: memory->grow(xoriginal,nmax,3,"fix_spring/self:xoriginal"); -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp: // skip to Nth set of extra values -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_spring_self.cpp:/* ---------------------------------------------------------------------- -fix_spring_self.cpp:------------------------------------------------------------------------- */ -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_store.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp:/* ---------------------------------------------------------------------- */ -fix_store.cpp: // 4th arg determines GLOBAL vs PERATOM values -fix_store.cpp: // syntax: id group style global nrow ncol -fix_store.cpp: // Nrow by Ncol array of global values -fix_store.cpp: // Ncol = 1 is vector, Ncol > 1 is array -fix_store.cpp: // syntax: id group style peratom 0/1 nvalues -fix_store.cpp: // 0/1 flag = not-store or store peratom values in restart file -fix_store.cpp: // nvalues = # of peratom values, N = 1 is vector, N > 1 is array -fix_store.cpp: // GLOBAL values are always written to restart file -fix_store.cpp: // PERATOM restart_peratom is set by caller -fix_store.cpp: // allocate vector or array and restart buffer rbuf -fix_store.cpp: // for PERATOM, register with Atom class -fix_store.cpp: if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); -fix_store.cpp: else memory->create(astore,nrow,ncol,"fix/store:astore"); -fix_store.cpp: memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); -fix_store.cpp: // zero the storage -fix_store.cpp: // PERATOM may be comm->exchanged before filled by caller -fix_store.cpp:/* ---------------------------------------------------------------------- */ -fix_store.cpp: // unregister callbacks to this fix from Atom class -fix_store.cpp:/* ---------------------------------------------------------------------- */ -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp: reset size of global vector/array -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp: if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); -fix_store.cpp: else memory->create(astore,nrow,ncol,"fix/store:astore"); -fix_store.cpp: memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp: // fill rbuf with size and vec/array values -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp: // first 2 values in buf are vec/array sizes -fix_store.cpp: // if size of vec/array has changed, -fix_store.cpp: // means the restart file is setting size of vec or array and doing init -fix_store.cpp: // because caller did not know size at time this fix was instantiated -fix_store.cpp: // reallocate vstore or astore accordingly -fix_store.cpp: if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); -fix_store.cpp: else memory->create(astore,nrow,ncol,"fix/store:astore"); -fix_store.cpp: memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp: // skip to Nth set of extra values -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store.cpp:/* ---------------------------------------------------------------------- -fix_store.cpp:------------------------------------------------------------------------- */ -fix_store_force.cpp:/* ---------------------------------------------------------------------- -fix_store_force.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_store_force.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_store_force.cpp:------------------------------------------------------------------------- */ -fix_store_force.cpp:/* ---------------------------------------------------------------------- */ -fix_store_force.cpp: if (narg < 3) error->all(FLERR,"Illegal fix store/coord command"); -fix_store_force.cpp: memory->create(foriginal,nmax,3,"store/force:foriginal"); -fix_store_force.cpp: // zero the array since dump may access it on timestep 0 -fix_store_force.cpp: // zero the array since a variable may access it before first run -fix_store_force.cpp:/* ---------------------------------------------------------------------- */ -fix_store_force.cpp:/* ---------------------------------------------------------------------- */ -fix_store_force.cpp:/* ---------------------------------------------------------------------- */ -fix_store_force.cpp:/* ---------------------------------------------------------------------- */ -fix_store_force.cpp:/* ---------------------------------------------------------------------- */ -fix_store_force.cpp:/* ---------------------------------------------------------------------- */ -fix_store_force.cpp: memory->create(foriginal,nmax,3,"store/force:foriginal"); -fix_store_force.cpp:/* ---------------------------------------------------------------------- */ -fix_store_force.cpp:/* ---------------------------------------------------------------------- */ -fix_store_force.cpp:/* ---------------------------------------------------------------------- -fix_store_force.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_store_state.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: if (narg < 5) error->all(FLERR,"Illegal fix store/state command"); -fix_store_state.cpp: if (nevery < 0) error->all(FLERR,"Illegal fix store/state command"); -fix_store_state.cpp: // parse values until one isn't recognized -fix_store_state.cpp: // customize a new keyword by adding to if statement -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: "Fix store/state for atom property that isn't allocated"); -fix_store_state.cpp: error->all(FLERR,"Illegal fix store/state command"); -fix_store_state.cpp: // optional args -fix_store_state.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix store/state command"); -fix_store_state.cpp: else error->all(FLERR,"Illegal fix store/state command"); -fix_store_state.cpp: } else error->all(FLERR,"Illegal fix store/state command"); -fix_store_state.cpp: // error check -fix_store_state.cpp: error->all(FLERR,"Compute ID for fix store/state does not exist"); -fix_store_state.cpp: error->all(FLERR,"Fix store/state compute " -fix_store_state.cpp: error->all(FLERR,"Fix store/state compute does not " -fix_store_state.cpp: "Fix store/state compute does not " -fix_store_state.cpp: "Fix store/state compute array is accessed out-of-range"); -fix_store_state.cpp: "Custom integer vector for fix store/state does not exist"); -fix_store_state.cpp: "Custom floating point vector for fix store/state does not exist"); -fix_store_state.cpp: "Fix ID for fix store/state does not exist"); -fix_store_state.cpp: "Fix store/state fix does not calculate per-atom values"); -fix_store_state.cpp: "Fix store/state fix does not calculate a per-atom vector"); -fix_store_state.cpp: "Fix store/state fix does not calculate a per-atom array"); -fix_store_state.cpp: "Fix store/state fix array is accessed out-of-range"); -fix_store_state.cpp: "Fix for fix store/state not computed at compatible time"); -fix_store_state.cpp: error->all(FLERR,"Variable name for fix store/state does not exist"); -fix_store_state.cpp: error->all(FLERR,"Fix store/state variable is not atom-style variable"); -fix_store_state.cpp: // this fix produces either a per-atom vector or array -fix_store_state.cpp: // perform initial allocation of atom-based array -fix_store_state.cpp: // register with Atom class -fix_store_state.cpp: // zero the array since dump may access it on timestep 0 -fix_store_state.cpp: // zero the array since a variable may access it before first run -fix_store_state.cpp: // store current values for keywords but not for compute, fix, variable -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: // unregister callbacks to this fix from Atom class -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: // set indices and check validity of all computes,fixes,variables -fix_store_state.cpp: // no error check if end_of_step() will not be called -fix_store_state.cpp: error->all(FLERR,"Compute ID for fix store/state does not exist"); -fix_store_state.cpp: "Custom integer vector for fix store/state does not exist"); -fix_store_state.cpp: "Custom floating point vector for fix store/state does not exist"); -fix_store_state.cpp: error->all(FLERR,"Fix ID for fix store/state does not exist"); -fix_store_state.cpp: error->all(FLERR,"Variable name for fix store/state does not exist"); -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: // if first invocation, store current values for compute, fix, variable -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: // compute com if comflag set -fix_store_state.cpp: // if any compute/fix/variable and nevery, wrap with clear/add -fix_store_state.cpp: // fill vector or array with per-atom values -fix_store_state.cpp: // invoke compute if not previously invoked -fix_store_state.cpp: // access fix fields, guaranteed to be ready -fix_store_state.cpp: // access custom atom property fields -fix_store_state.cpp: // evaluate atom-style variable -fix_store_state.cpp: // if any compute/fix/variable and nevery, wrap with clear/add -fix_store_state.cpp: const bigint nextstep = (update->ntimestep/nevery)*nevery + nevery; -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp: memory->grow(values,nmax,nvalues,"store/state:values"); -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp: // skip to Nth set of extra values -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- -fix_store_state.cpp: one method for every keyword fix store/state can archive -fix_store_state.cpp:------------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: double invxprd = 1.0/domain->xprd; -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: double invyprd = 1.0/domain->yprd; -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: double invzprd = 1.0/domain->zprd; -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: double invxprd = 1.0/domain->xprd; -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: double invyprd = 1.0/domain->yprd; -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp: double invzprd = 1.0/domain->zprd; -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_store_state.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- -fix_temp_berendsen.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_temp_berendsen.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_temp_berendsen.cpp:------------------------------------------------------------------------- */ -fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_berendsen.cpp: if (narg != 6) error->all(FLERR,"Illegal fix temp/berendsen command"); -fix_temp_berendsen.cpp: // Berendsen thermostat should be applied every step -fix_temp_berendsen.cpp: // error checks -fix_temp_berendsen.cpp: error->all(FLERR,"Fix temp/berendsen period must be > 0.0"); -fix_temp_berendsen.cpp: // create a new compute temp style -fix_temp_berendsen.cpp: // id = fix-ID + temp, compute group = fix group -fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_berendsen.cpp: // delete temperature if fix created it -fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_berendsen.cpp: // check variable -fix_temp_berendsen.cpp: error->all(FLERR,"Variable name for fix temp/berendsen does not exist"); -fix_temp_berendsen.cpp: else error->all(FLERR,"Variable for fix temp/berendsen is invalid style"); -fix_temp_berendsen.cpp: error->all(FLERR,"Temperature ID for fix temp/berendsen does not exist"); -fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_berendsen.cpp: // there is nothing to do, if there are no degrees of freedom -fix_temp_berendsen.cpp: "Computed temperature for fix temp/berendsen cannot be 0.0"); -fix_temp_berendsen.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_temp_berendsen.cpp: // set current t_target -fix_temp_berendsen.cpp: // if variable temp, evaluate variable, wrap with clear/add -fix_temp_berendsen.cpp: "Fix temp/berendsen variable returned negative temperature"); -fix_temp_berendsen.cpp: // rescale velocities by lamda -fix_temp_berendsen.cpp: // for BIAS: -fix_temp_berendsen.cpp: // temperature is current, so do not need to re-compute -fix_temp_berendsen.cpp: // OK to not test returned v = 0, since lamda is multiplied by v -fix_temp_berendsen.cpp: double lamda = sqrt(1.0 + update->dt/t_period*(t_target/t_current - 1.0)); -fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_berendsen.cpp:/* ---------------------------------------------------------------------- -fix_temp_berendsen.cpp:------------------------------------------------------------------------- */ -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- -fix_temp_csld.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_temp_csld.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_temp_csld.cpp:------------------------------------------------------------------------- */ -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- -fix_temp_csld.cpp:------------------------------------------------------------------------- */ -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csld.cpp: if (narg != 7) error->all(FLERR,"Illegal fix temp/csld command"); -fix_temp_csld.cpp: // CSLD thermostat should be applied every step -fix_temp_csld.cpp: // error checks -fix_temp_csld.cpp: if (t_period <= 0.0) error->all(FLERR,"Illegal fix temp/csld command"); -fix_temp_csld.cpp: if (seed <= 0) error->all(FLERR,"Illegal fix temp/csld command"); -fix_temp_csld.cpp: // create a new compute temp style -fix_temp_csld.cpp: // id = fix-ID + temp, compute group = fix group -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csld.cpp: // delete temperature if fix created it -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csld.cpp: // we cannot handle constraints via rattle or shake correctly. -fix_temp_csld.cpp: error->all(FLERR,"Fix temp/csld is not compatible with fix rattle or fix shake"); -fix_temp_csld.cpp: // check variable -fix_temp_csld.cpp: error->all(FLERR,"Variable name for fix temp/csld does not exist"); -fix_temp_csld.cpp: else error->all(FLERR,"Variable for fix temp/csld is invalid style"); -fix_temp_csld.cpp: error->all(FLERR,"Temperature ID for fix temp/csld does not exist"); -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csld.cpp: // set current t_target -fix_temp_csld.cpp: // if variable temp, evaluate variable, wrap with clear/add -fix_temp_csld.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_temp_csld.cpp: "Fix temp/csld variable returned negative temperature"); -fix_temp_csld.cpp: // there is nothing to do, if there are no degrees of freedom -fix_temp_csld.cpp: // adjust holding space, if needed and copy existing velocities -fix_temp_csld.cpp: // The CSLD thermostat is a linear combination of old and new velocities, -fix_temp_csld.cpp: // where the new ones are randomly chosen from a gaussian distribution. -fix_temp_csld.cpp: // see Bussi and Parrinello, Phys. Rev. E (2007). -fix_temp_csld.cpp: const double factor = 1.0/sqrt(m); -fix_temp_csld.cpp: // mixing factors -fix_temp_csld.cpp: const double c1 = exp(-update->dt/t_period); -fix_temp_csld.cpp: const double c2 = sqrt((1.0-c1*c1)*t_target/temperature->compute_scalar()); -fix_temp_csld.cpp: // tally the kinetic energy transferred between heat bath and system -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csld.cpp:/* ---------------------------------------------------------------------- -fix_temp_csld.cpp:------------------------------------------------------------------------- */ -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- -fix_temp_csvr.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_temp_csvr.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_temp_csvr.cpp:------------------------------------------------------------------------- */ -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- -fix_temp_csvr.cpp:------------------------------------------------------------------------- */ -fix_temp_csvr.cpp: // make certain, that -log() doesn't overflow. -fix_temp_csvr.cpp: y=v2/v1; -fix_temp_csvr.cpp: if (am*log(x/am)-s*y < -700 || v1<0.00001) { -fix_temp_csvr.cpp: e=(1.0+y*y)*exp(am*log(x/am)-s*y); -fix_temp_csvr.cpp:/* ------------------------------------------------------------------- -fix_temp_csvr.cpp:---------------------------------------------------------------------- */ -fix_temp_csvr.cpp: return 2.0 * gamdev(nn / 2); -fix_temp_csvr.cpp: return 2.0 * gamdev((nn-1) / 2) + rr*rr; -fix_temp_csvr.cpp:/* ------------------------------------------------------------------- -fix_temp_csvr.cpp:---------------------------------------------------------------------- */ -fix_temp_csvr.cpp: const double c1 = exp(-update->dt/t_period); -fix_temp_csvr.cpp: const double c2 = (1.0-c1)*ekin_new/ekin_old/tdof; -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csvr.cpp: if (narg != 7) error->all(FLERR,"Illegal fix temp/csvr command"); -fix_temp_csvr.cpp: // CSVR thermostat should be applied every step -fix_temp_csvr.cpp: // error checks -fix_temp_csvr.cpp: if (t_period <= 0.0) error->all(FLERR,"Illegal fix temp/csvr command"); -fix_temp_csvr.cpp: if (seed <= 0) error->all(FLERR,"Illegal fix temp/csvr command"); -fix_temp_csvr.cpp: // create a new compute temp style -fix_temp_csvr.cpp: // id = fix-ID + temp, compute group = fix group -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csvr.cpp: // delete temperature if fix created it -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csvr.cpp: // check variable -fix_temp_csvr.cpp: error->all(FLERR,"Variable name for fix temp/csvr does not exist"); -fix_temp_csvr.cpp: else error->all(FLERR,"Variable for fix temp/csvr is invalid style"); -fix_temp_csvr.cpp: error->all(FLERR,"Temperature ID for fix temp/csvr does not exist"); -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csvr.cpp: // set current t_target -fix_temp_csvr.cpp: // if variable temp, evaluate variable, wrap with clear/add -fix_temp_csvr.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_temp_csvr.cpp: "Fix temp/csvr variable returned negative temperature"); -fix_temp_csvr.cpp: // there is nothing to do, if there are no degrees of freedom -fix_temp_csvr.cpp: // compute velocity scaling factor on root node and broadcast -fix_temp_csvr.cpp: // tally the kinetic energy transferred between heat bath and system -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_csvr.cpp:/* ---------------------------------------------------------------------- -fix_temp_csvr.cpp:------------------------------------------------------------------------- */ -fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- -fix_temp_rescale.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_temp_rescale.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_temp_rescale.cpp:------------------------------------------------------------------------- */ -fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_rescale.cpp: if (narg < 8) error->all(FLERR,"Illegal fix temp/rescale command"); -fix_temp_rescale.cpp: if (nevery <= 0) error->all(FLERR,"Illegal fix temp/rescale command"); -fix_temp_rescale.cpp: // create a new compute temp -fix_temp_rescale.cpp: // id = fix-ID + temp, compute group = fix group -fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_rescale.cpp: // delete temperature if fix created it -fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_rescale.cpp: // check variable -fix_temp_rescale.cpp: error->all(FLERR,"Variable name for fix temp/rescale does not exist"); -fix_temp_rescale.cpp: else error->all(FLERR,"Variable for fix temp/rescale is invalid style"); -fix_temp_rescale.cpp: error->all(FLERR,"Temperature ID for fix temp/rescale does not exist"); -fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_rescale.cpp: // there is nothing to do, if there are no degrees of freedom -fix_temp_rescale.cpp: // protect against division by zero -fix_temp_rescale.cpp: error->all(FLERR,"Computed temperature for fix temp/rescale cannot be 0.0"); -fix_temp_rescale.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_temp_rescale.cpp: // set current t_target -fix_temp_rescale.cpp: // if variable temp, evaluate variable, wrap with clear/add -fix_temp_rescale.cpp: "Fix temp/rescale variable returned negative temperature"); -fix_temp_rescale.cpp: // rescale velocity of appropriate atoms if outside window -fix_temp_rescale.cpp: // for BIAS: -fix_temp_rescale.cpp: // temperature is current, so do not need to re-compute -fix_temp_rescale.cpp: // OK to not test returned v = 0, since factor is multiplied by v -fix_temp_rescale.cpp: double factor = sqrt(t_target/t_current); -fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- */ -fix_temp_rescale.cpp:/* ---------------------------------------------------------------------- -fix_temp_rescale.cpp:------------------------------------------------------------------------- */ -fix_tmd.cpp:/* ---------------------------------------------------------------------- -fix_tmd.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_tmd.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_tmd.cpp:------------------------------------------------------------------------- */ -fix_tmd.cpp:/* ---------------------------------------------------------------------- -fix_tmd.cpp:------------------------------------------------------------------------- */ -fix_tmd.cpp:/* ---------------------------------------------------------------------- */ -fix_tmd.cpp: // perform initial allocation of atom-based arrays -fix_tmd.cpp: // register with Atom class -fix_tmd.cpp: // make sure an atom map exists before reading in target coordinates -fix_tmd.cpp: // read from arg[4] and store coordinates of final target in xf -fix_tmd.cpp: // open arg[6] statistics file and write header -fix_tmd.cpp: // rho_start = initial rho -fix_tmd.cpp: // xold = initial x or 0.0 if not in group -fix_tmd.cpp: rho_start = sqrt(rho_start_total/masstotal); -fix_tmd.cpp:/* ---------------------------------------------------------------------- */ -fix_tmd.cpp: // unregister callbacks to this fix from Atom class -fix_tmd.cpp: // delete locally stored arrays -fix_tmd.cpp:/* ---------------------------------------------------------------------- */ -fix_tmd.cpp:/* ---------------------------------------------------------------------- */ -fix_tmd.cpp: // check that no integrator fix comes after a TMD fix -fix_tmd.cpp: // timesteps -fix_tmd.cpp:/* ---------------------------------------------------------------------- */ -fix_tmd.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -fix_tmd.cpp: // compute the Lagrange multiplier -fix_tmd.cpp: a = abetotal[0]/masstotal; -fix_tmd.cpp: b = 2.0*abetotal[1]/masstotal; -fix_tmd.cpp: e = abetotal[2]/masstotal; -fix_tmd.cpp: if (b >= 0) gamma_max = (-b - sqrt(d))/(2*a); -fix_tmd.cpp: else gamma_max = (-b + sqrt(d))/(2*a); -fix_tmd.cpp: gamma_back = c/(a*gamma_max); -fix_tmd.cpp: if (b >= 0) gamma_max = (-b - sqrt(d))/(2*a); -fix_tmd.cpp: else gamma_max = (-b + sqrt(d))/(2*a); -fix_tmd.cpp: gamma_forward = c/(a*gamma_max); -fix_tmd.cpp: // stat write of mean constraint force based on previous time step constraint -fix_tmd.cpp: (-frtotal - kttotal/dtv/dtf)*(rho_target - rho_old)/rho_old; -fix_tmd.cpp: lambda = gamma_back*rho_old*masstotal/dtv/dtf; -fix_tmd.cpp: // apply the constraint and save constrained positions for next step -fix_tmd.cpp: dtfm = dtf / mass[type[i]]; -fix_tmd.cpp: v[i][0] += gamma_forward*dxold/dtv; -fix_tmd.cpp: f[i][0] += gamma_forward*dxold/dtv/dtfm; -fix_tmd.cpp: v[i][1] += gamma_forward*dyold/dtv; -fix_tmd.cpp: f[i][1] += gamma_forward*dyold/dtv/dtfm; -fix_tmd.cpp: v[i][2] += gamma_forward*dzold/dtv; -fix_tmd.cpp: f[i][2] += gamma_forward*dzold/dtv/dtfm; -fix_tmd.cpp:/* ---------------------------------------------------------------------- */ -fix_tmd.cpp: if (flag) return; // only used by NPT,NPH -fix_tmd.cpp:/* ---------------------------------------------------------------------- -fix_tmd.cpp:------------------------------------------------------------------------- */ -fix_tmd.cpp:/* ---------------------------------------------------------------------- -fix_tmd.cpp:------------------------------------------------------------------------- */ -fix_tmd.cpp:/* ---------------------------------------------------------------------- -fix_tmd.cpp:------------------------------------------------------------------------- */ -fix_tmd.cpp:/* ---------------------------------------------------------------------- -fix_tmd.cpp:------------------------------------------------------------------------- */ -fix_tmd.cpp:/* ---------------------------------------------------------------------- -fix_tmd.cpp:------------------------------------------------------------------------- */ -fix_tmd.cpp:/* ---------------------------------------------------------------------- -fix_tmd.cpp:------------------------------------------------------------------------- */ -fix_tmd.cpp: MPI_Bcast(&eof,sizeof(char *)/sizeof(char),MPI_CHAR,0,world); -fix_tmd.cpp: // clean up -fix_tmd.cpp: // check that all atoms in group were listed in target file -fix_tmd.cpp: // set xf = 0.0 for atoms not in group -fix_tmd.cpp:/* ---------------------------------------------------------------------- -fix_tmd.cpp:------------------------------------------------------------------------- */ -fix_tmd.cpp:/* ---------------------------------------------------------------------- */ -fix_vector.cpp:/* ---------------------------------------------------------------------- -fix_vector.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_vector.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_vector.cpp:------------------------------------------------------------------------- */ -fix_vector.cpp:/* ---------------------------------------------------------------------- */ -fix_vector.cpp: // setup and error check -fix_vector.cpp: // for fix inputs, check that fix frequency is acceptable -fix_vector.cpp: // this fix produces either a global vector or array -fix_vector.cpp: // intensive/extensive flags set by compute,fix,variable that produces value -fix_vector.cpp: "intensive/extensive from these inputs"); -fix_vector.cpp: // ncount = current size of vector or array -fix_vector.cpp: // nextstep = next step on which end_of_step does something -fix_vector.cpp: // add nextstep to all computes that store invocation times -fix_vector.cpp: // since don't know a priori which are invoked by this fix -fix_vector.cpp: // once in end_of_step() can set timestep for ones actually invoked -fix_vector.cpp: nextstep = (update->ntimestep/nevery)*nevery; -fix_vector.cpp: // initialstep = first step the vector/array will store values for -fix_vector.cpp:/* ---------------------------------------------------------------------- */ -fix_vector.cpp:/* ---------------------------------------------------------------------- */ -fix_vector.cpp:/* ---------------------------------------------------------------------- */ -fix_vector.cpp: // set current indices for all computes,fixes,variables -fix_vector.cpp: // reallocate vector or array for accumulated size at end of run -fix_vector.cpp: // use endstep to allow for subsequent runs with "pre no" -fix_vector.cpp: // nsize = # of entries from initialstep to finalstep -fix_vector.cpp: bigint finalstep = update->endstep/nevery * nevery; -fix_vector.cpp: ncountmax = (finalstep-initialstep)/nevery + 1; -fix_vector.cpp:/* ---------------------------------------------------------------------- -fix_vector.cpp:------------------------------------------------------------------------- */ -fix_vector.cpp:/* ---------------------------------------------------------------------- */ -fix_vector.cpp: // skip if not step which requires doing something -fix_vector.cpp: // accumulate results of computes,fixes,variables to local copy -fix_vector.cpp: // compute/fix/variable may invoke computes so wrap with clear/add -fix_vector.cpp: // invoke compute if not previously invoked -fix_vector.cpp: // access fix fields, guaranteed to be ready -fix_vector.cpp: // evaluate equal-style or vector-style variable -fix_vector.cpp: // trigger computes on next needed step -fix_vector.cpp: // update size of vector or array -fix_vector.cpp:/* ---------------------------------------------------------------------- -fix_vector.cpp:------------------------------------------------------------------------- */ -fix_vector.cpp:/* ---------------------------------------------------------------------- -fix_vector.cpp:------------------------------------------------------------------------- */ -fix_viscous.cpp:/* ---------------------------------------------------------------------- -fix_viscous.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_viscous.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_viscous.cpp:------------------------------------------------------------------------- */ -fix_viscous.cpp:/* ---------------------------------------------------------------------- */ -fix_viscous.cpp: // optional args -fix_viscous.cpp:/* ---------------------------------------------------------------------- */ -fix_viscous.cpp:/* ---------------------------------------------------------------------- */ -fix_viscous.cpp:/* ---------------------------------------------------------------------- */ -fix_viscous.cpp:/* ---------------------------------------------------------------------- */ -fix_viscous.cpp:/* ---------------------------------------------------------------------- */ -fix_viscous.cpp:/* ---------------------------------------------------------------------- */ -fix_viscous.cpp: // apply drag force to atoms in group -fix_viscous.cpp: // direction is opposed to velocity vector -fix_viscous.cpp: // magnitude depends on atom type -fix_viscous.cpp:/* ---------------------------------------------------------------------- */ -fix_viscous.cpp:/* ---------------------------------------------------------------------- */ -fix_wall.cpp:/* ---------------------------------------------------------------------- -fix_wall.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_wall.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_wall.cpp:------------------------------------------------------------------------- */ -fix_wall.cpp:/* ---------------------------------------------------------------------- */ -fix_wall.cpp: // parse args -fix_wall.cpp: int dim = wallwhich[nwall] / 2; -fix_wall.cpp: // error checks -fix_wall.cpp: error->all(FLERR,"Cannot use fix wall zlo/zhi for a 2d simulation"); -fix_wall.cpp: // scale factors for wall position for CONSTANT and VARIABLE walls -fix_wall.cpp: // set xflag if any wall positions are variable -fix_wall.cpp: // set varflag if any wall positions or parameters are variable -fix_wall.cpp: // set wstyle to VARIABLE if either epsilon or sigma is a variable -fix_wall.cpp:/* ---------------------------------------------------------------------- */ -fix_wall.cpp:/* ---------------------------------------------------------------------- */ -fix_wall.cpp: // FLD implicit needs to invoke wall forces before pair style -fix_wall.cpp:/* ---------------------------------------------------------------------- */ -fix_wall.cpp: // setup coefficients -fix_wall.cpp:/* ---------------------------------------------------------------------- */ -fix_wall.cpp:/* ---------------------------------------------------------------------- */ -fix_wall.cpp:/* ---------------------------------------------------------------------- -fix_wall.cpp:------------------------------------------------------------------------- */ -fix_wall.cpp:/* ---------------------------------------------------------------------- */ -fix_wall.cpp: // coord = current position of wall -fix_wall.cpp: // evaluate variables if necessary, wrap with clear/add -fix_wall.cpp: // for epsilon/sigma variables need to re-invoke precompute() -fix_wall.cpp:/* ---------------------------------------------------------------------- */ -fix_wall.cpp:/* ---------------------------------------------------------------------- */ -fix_wall.cpp:/* ---------------------------------------------------------------------- -fix_wall.cpp:------------------------------------------------------------------------- */ -fix_wall.cpp: // only sum across procs one time -fix_wall.cpp:/* ---------------------------------------------------------------------- -fix_wall.cpp:------------------------------------------------------------------------- */ -fix_wall.cpp: // only sum across procs one time -fix_wall_harmonic.cpp:/* ---------------------------------------------------------------------- -fix_wall_harmonic.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_wall_harmonic.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_wall_harmonic.cpp:------------------------------------------------------------------------- */ -fix_wall_harmonic.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_harmonic.cpp:/* ---------------------------------------------------------------------- -fix_wall_harmonic.cpp:------------------------------------------------------------------------- */ -fix_wall_harmonic.cpp: int dim = which / 2; -fix_wall_lj1043.cpp:/* ---------------------------------------------------------------------- -fix_wall_lj1043.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_wall_lj1043.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_wall_lj1043.cpp:------------------------------------------------------------------------- */ -fix_wall_lj1043.cpp:/* ---------------------------------------------------------------------- -fix_wall_lj1043.cpp:------------------------------------------------------------------------- */ -fix_wall_lj1043.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_lj1043.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_lj1043.cpp: coeff1[m] = MY_2PI * 2.0/5.0 * epsilon[m] * pow(sigma[m],10.0); -fix_wall_lj1043.cpp: coeff3[m] = MY_2PI * pow(2.0,1/2.0) / 3 * epsilon[m] * pow(sigma[m],3.0); -fix_wall_lj1043.cpp: coeff4[m] = 0.61 / pow(2.0,1/2.0) * sigma[m]; -fix_wall_lj1043.cpp: double rinv = 1.0/cutoff[m]; -fix_wall_lj1043.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_lj1043.cpp: int dim = which / 2; -fix_wall_lj1043.cpp: rinv = 1.0/delta; -fix_wall_lj126.cpp:/* ---------------------------------------------------------------------- -fix_wall_lj126.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_wall_lj126.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_wall_lj126.cpp:------------------------------------------------------------------------- */ -fix_wall_lj126.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_lj126.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_lj126.cpp: double r2inv = 1.0/(cutoff[m]*cutoff[m]); -fix_wall_lj126.cpp:/* ---------------------------------------------------------------------- -fix_wall_lj126.cpp:------------------------------------------------------------------------- */ -fix_wall_lj126.cpp: int dim = which / 2; -fix_wall_lj126.cpp: rinv = 1.0/delta; -fix_wall_lj93.cpp:/* ---------------------------------------------------------------------- -fix_wall_lj93.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_wall_lj93.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_wall_lj93.cpp:------------------------------------------------------------------------- */ -fix_wall_lj93.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_lj93.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_lj93.cpp: coeff1[m] = 6.0/5.0 * epsilon[m] * pow(sigma[m],9.0); -fix_wall_lj93.cpp: coeff3[m] = 2.0/15.0 * epsilon[m] * pow(sigma[m],9.0); -fix_wall_lj93.cpp: double rinv = 1.0/cutoff[m]; -fix_wall_lj93.cpp:/* ---------------------------------------------------------------------- -fix_wall_lj93.cpp:------------------------------------------------------------------------- */ -fix_wall_lj93.cpp: int dim = which / 2; -fix_wall_lj93.cpp: rinv = 1.0/delta; -fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- -fix_wall_reflect.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_wall_reflect.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_wall_reflect.cpp:------------------------------------------------------------------------- */ -fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_reflect.cpp: if (narg < 4) error->all(FLERR,"Illegal fix wall/reflect command"); -fix_wall_reflect.cpp: // parse args -fix_wall_reflect.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal fix wall/reflect command"); -fix_wall_reflect.cpp: error->all(FLERR,"Wall defined twice in fix wall/reflect command"); -fix_wall_reflect.cpp: int dim = wallwhich[nwall] / 2; -fix_wall_reflect.cpp: if (iarg+2 > narg) error->all(FLERR,"Illegal wall/reflect command"); -fix_wall_reflect.cpp: else error->all(FLERR,"Illegal fix wall/reflect command"); -fix_wall_reflect.cpp: } else error->all(FLERR,"Illegal fix wall/reflect command"); -fix_wall_reflect.cpp: // error check -fix_wall_reflect.cpp: error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); -fix_wall_reflect.cpp: error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); -fix_wall_reflect.cpp: error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); -fix_wall_reflect.cpp: "Cannot use fix wall/reflect zlo/zhi for a 2d simulation"); -fix_wall_reflect.cpp: // scale factors for CONSTANT and VARIABLE walls -fix_wall_reflect.cpp: // set varflag if any wall positions are variable -fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_reflect.cpp: error->all(FLERR,"Variable name for fix wall/reflect does not exist"); -fix_wall_reflect.cpp: error->all(FLERR,"Variable for fix wall/reflect is invalid style"); -fix_wall_reflect.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_reflect.cpp: // coord = current position of wall -fix_wall_reflect.cpp: // evaluate variable if necessary, wrap with clear/add -fix_wall_reflect.cpp: dim = wallwhich[m] / 2; -fix_wall_region.cpp:/* ---------------------------------------------------------------------- -fix_wall_region.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -fix_wall_region.cpp: http://lammps.sandia.gov, Sandia National Laboratories -fix_wall_region.cpp:------------------------------------------------------------------------- */ -fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_region.cpp: if (narg != 8) error->all(FLERR,"Illegal fix wall/region command"); -fix_wall_region.cpp: // parse args -fix_wall_region.cpp: error->all(FLERR,"Region ID for fix wall/region does not exist"); -fix_wall_region.cpp: else error->all(FLERR,"Illegal fix wall/region command"); -fix_wall_region.cpp: if (cutoff <= 0.0) error->all(FLERR,"Fix wall/region cutoff <= 0.0"); -fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_region.cpp: // set index and check validity of region -fix_wall_region.cpp: error->all(FLERR,"Region ID for fix wall/region does not exist"); -fix_wall_region.cpp: // error checks for style COLLOID -fix_wall_region.cpp: // insure all particles in group are extended particles -fix_wall_region.cpp: error->all(FLERR,"Fix wall/region colloid requires atom style sphere"); -fix_wall_region.cpp: error->all(FLERR,"Fix wall/region colloid requires extended particles"); -fix_wall_region.cpp: // setup coefficients for each style -fix_wall_region.cpp: coeff1 = 6.0/5.0 * epsilon * pow(sigma,9.0); -fix_wall_region.cpp: coeff3 = 2.0/15.0 * epsilon * pow(sigma,9.0); -fix_wall_region.cpp: double rinv = 1.0/cutoff; -fix_wall_region.cpp: double r2inv = 1.0/(cutoff*cutoff); -fix_wall_region.cpp: coeff1 = -4.0/315.0 * epsilon * pow(sigma,6.0); -fix_wall_region.cpp: coeff2 = -2.0/3.0 * epsilon; -fix_wall_region.cpp: coeff3 = epsilon * pow(sigma,6.0)/7560.0; -fix_wall_region.cpp: coeff4 = epsilon/6.0; -fix_wall_region.cpp: double rinv = 1.0/cutoff; -fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_region.cpp: // region->match() insures particle is in region or on surface, else error -fix_wall_region.cpp: // if returned contact dist r = 0, is on surface, also an error -fix_wall_region.cpp: // in COLLOID case, r <= radius is an error -fix_wall_region.cpp: // initilize ewall after region->prematch(), -fix_wall_region.cpp: // so a dynamic region can access last timestep values -fix_wall_region.cpp: } else rinv = 1.0/region->contact[m].r; -fix_wall_region.cpp: "used in fix wall/region"); -fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_region.cpp:/* ---------------------------------------------------------------------- */ -fix_wall_region.cpp:/* ---------------------------------------------------------------------- -fix_wall_region.cpp:------------------------------------------------------------------------- */ -fix_wall_region.cpp: // only sum across procs one time -fix_wall_region.cpp:/* ---------------------------------------------------------------------- -fix_wall_region.cpp:------------------------------------------------------------------------- */ -fix_wall_region.cpp: // only sum across procs one time -fix_wall_region.cpp:/* ---------------------------------------------------------------------- -fix_wall_region.cpp: LJ 9/3 interaction for particle with wall -fix_wall_region.cpp:------------------------------------------------------------------------- */ -fix_wall_region.cpp: double rinv = 1.0/r; -fix_wall_region.cpp:/* ---------------------------------------------------------------------- -fix_wall_region.cpp: LJ 12/6 interaction for particle with wall -fix_wall_region.cpp:------------------------------------------------------------------------- */ -fix_wall_region.cpp: double rinv = 1.0/r; -fix_wall_region.cpp:/* ---------------------------------------------------------------------- -fix_wall_region.cpp:------------------------------------------------------------------------- */ -fix_wall_region.cpp: double rinv = 1.0/delta2; -fix_wall_region.cpp: double rinv2 = 1.0/r2; -fix_wall_region.cpp: double rinv3 = 1.0/r3; -fix_wall_region.cpp:/* ---------------------------------------------------------------------- -fix_wall_region.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -force.cpp: http://lammps.sandia.gov, Sandia National Laboratories -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- */ -force.cpp: // fill pair map with pair styles listed in style_pair.h -force.cpp:/* ---------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- */ -force.cpp: qqrd2e = qqr2e/dielectric; -force.cpp: if (kspace) kspace->init(); // kspace must come before pair -force.cpp: if (pair) pair->init(); // so g_ewald is defined -force.cpp:/* ---------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp: if trysuffix = 1, try first with suffix1/2 appended -force.cpp: return sflag = 0 for no suffix added, 1 or 2 for suffix1/2 added -force.cpp:------------------------------------------------------------------------- */ -force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); -force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp: else if (strstr(pair_style,"hybrid/overlay")) { -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); -force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); -force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); -force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); -force.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp: sprintf(estyle,"%s/%s",arg[0],lmp->suffix); -force.cpp: sprintf(estyle,"%s/%s",arg[0],lmp->suffix2); -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp: if sflag = 1/2, append suffix or suffix2 to style -force.cpp:------------------------------------------------------------------------- */ -force.cpp: if (sflag == 1) sprintf(estyle,"%s/%s",style,lmp->suffix); -force.cpp: else sprintf(estyle,"%s/%s",style,lmp->suffix2); -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp: // defaults, but do not reset special_extra -force.cpp: special_coul[3] = 5.0/6.0; -force.cpp: } else if (strcmp(arg[iarg],"lj/coul") == 0) { -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp: // attempt to open file directly -force.cpp: // if successful, return ptr -force.cpp: // try the environment variable directory -force.cpp: newpath[len1] = '/'; -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp: // skip over the disk drive part of windows pathnames -force.cpp: if ((*path == '\\') || (*path == '/')) pot = path + 1; -force.cpp: if (*path == '/') pot = path + 1; -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -force.cpp:/* ---------------------------------------------------------------------- -force.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -group.cpp: http://lammps.sandia.gov, Sandia National Laboratories -group.cpp:------------------------------------------------------------------------- */ -group.cpp:// allocate space for static class variable -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: // create "all" group -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: // delete the group if not being used elsewhere -group.cpp: // clear mask of each atom assigned to this group -group.cpp: // clear the group -group.cpp: // find group in existing list -group.cpp: // add a new group if igroup = -1 -group.cpp: // style = region -group.cpp: // add to group if atom is in region -group.cpp: // style = type, molecule, id -group.cpp: // add to group if atom matches type/molecule/id or condition -group.cpp: // args = logical condition -group.cpp: // add to group if meets condition -group.cpp: // args = list of values -group.cpp: // add to group if attribute matches value or sequence -group.cpp: // style = variable -group.cpp: // add to group if atom-atyle variable is non-zero -group.cpp: // aflag = evaluation of per-atom variable -group.cpp: // add to group if per-atom variable evaluated to non-zero -group.cpp: // style = include -group.cpp: // style = subtract -group.cpp: // add to group if in 1st group in list -group.cpp: // remove atoms if they are in any of the other groups -group.cpp: // AND with inverse mask removes the atom from group -group.cpp: // style = union -group.cpp: // add to group if in any other group in list -group.cpp: // style = intersect -group.cpp: // add to group if in all groups in list -group.cpp: // style = dynamic -group.cpp: // create a new FixGroup to dynamically determine atoms in group -group.cpp: // if group is already dynamic, delete existing FixGroup -group.cpp: // style = static -group.cpp: // remove dynamic FixGroup if necessary -group.cpp: // not a valid group style -group.cpp: // print stats for changed group -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: // find group in existing list -group.cpp: // add a new group if igroup = -1 -group.cpp: // add atoms to group whose flags are set -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: // hash = unique molecule IDs of atoms already in group -group.cpp: // list = set of unique molecule IDs for atoms to add -group.cpp: // pass list to all other procs via comm->ring() -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: // use count to not change restart format with deleted groups -group.cpp: // remove this on next major release -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: // delete existing group names -group.cpp: // atom masks will be overwritten by reading of restart file -group.cpp: // use count to not change restart format with deleted groups -group.cpp: // remove this on next major release -group.cpp:// ---------------------------------------------------------------------- -group.cpp:// computations on a group of atoms -group.cpp:// ---------------------------------------------------------------------- -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: // compute extent across all procs -group.cpp: // flip sign of MIN to do it in one Allreduce MAX -group.cpp: // set box by extent in shrink-wrapped dims -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: // compute extent across all procs -group.cpp: // flip sign of MIN to do it in one Allreduce MAX -group.cpp: // set box by extent in shrink-wrapped dims -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: cm[0] /= masstotal; -group.cpp: cm[1] /= masstotal; -group.cpp: cm[2] /= masstotal; -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: cm[0] /= masstotal; -group.cpp: cm[1] /= masstotal; -group.cpp: cm[2] /= masstotal; -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: cm[0] /= masstotal; -group.cpp: cm[1] /= masstotal; -group.cpp: cm[2] /= masstotal; -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: cm[0] /= masstotal; -group.cpp: cm[1] /= masstotal; -group.cpp: cm[2] /= masstotal; -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: if (masstotal > 0.0) return sqrt(rg_all/masstotal); -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: if (masstotal > 0.0) return sqrt(rg_all/masstotal); -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp:/* ---------------------------------------------------------------------- -group.cpp:------------------------------------------------------------------------- */ -group.cpp: // determinant = triple product of rows of inertia matrix -group.cpp: // non-singular I matrix -group.cpp: // use L = Iw, inverting I to solve for w -group.cpp: // this should give exact zeroing of angular momentum by velocity command -group.cpp: inverse[i][j] /= determinant; -group.cpp: // handle (nearly) singular I matrix -group.cpp: // typically due to 2-atom group or linear molecule -group.cpp: // use jacobi() and angmom_to_omega() to calculate valid omega -group.cpp: // less exact answer than matrix inversion, due to iterative Jacobi method -group.cpp: // enforce 3 evectors as a right-handed coordinate system -group.cpp: // flip 3rd vector if needed -group.cpp: // if any principal moment < scaled EPSILON, set to 0.0 -group.cpp: // calculate omega using diagonalized inertia matrix -image.cpp:/* ---------------------------------------------------------------------- -image.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -image.cpp: http://lammps.sandia.gov, Sandia National Laboratories -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- */ -image.cpp: // defaults for 3d viz -image.cpp: theta = 60.0 * MY_PI/180.0; -image.cpp: phi = 30.0 * MY_PI/180.0; -image.cpp: // colors -image.cpp: // define nmap colormaps, all with default settings -image.cpp: // static parameters -image.cpp: FOV = MY_PI/6.0; // 30 degrees -image.cpp: keyLightPhi = -MY_PI4; // -45 degrees -image.cpp: keyLightTheta = MY_PI/6.0; // 30 degrees -image.cpp: fillLightPhi = MY_PI/6.0; // 30 degrees -image.cpp: backLightPhi = MY_PI; // 180 degrees -image.cpp: backLightTheta = MY_PI/12.0; // 15 degrees -image.cpp:/* ---------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp: // camDir points at the camera, view direction = -camDir -image.cpp: // normalize up vector -image.cpp: // adjust camDir by epsilon if camDir and up are parallel -image.cpp: // do this by tweaking view direction, not up direction -image.cpp: // try to insure continuous images as changing view passes thru up -image.cpp: // sufficient to handle common cases where theta = 0 or 180 is degenerate? -image.cpp: // camUp = camDir x (Up x camDir) -image.cpp: // zdist = camera distance = function of zoom & bounding box -image.cpp: // camPos = camera position = function of camDir and zdist -image.cpp: zdist /= tan(FOV); -image.cpp: zdist /= zoom; -image.cpp: // light directions in terms of -camDir = z -image.cpp: // adjust shinyness of the reflection -image.cpp: // adjust strength of the SSAO -image.cpp: SSAOJitter = MY_PI / 12; -image.cpp: // param for rasterizing spheres -image.cpp: tanPerPixel = -(maxdel / (double) height); -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp: nhalf /= 2; -image.cpp: nhalf /= 2; -image.cpp: // extra SSAO enhancement -image.cpp: // bcast full image to all procs -image.cpp: // each works on subset of pixels -image.cpp: // gather result back to proc 0 -image.cpp: int pixelPart = height/nprocs * width*3; -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp: draw XYZ axes in red/green/blue -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp: -tanPerPixel / zoom; -image.cpp: double pixelRadiusFull = radius / pixelWidth; -image.cpp: double xf = xmap / pixelWidth; -image.cpp: double yf = ymap / pixelWidth; -image.cpp: // shift 0,0 to screen center (vs lower left) -image.cpp: xc += width / 2; -image.cpp: yc += height / 2; -image.cpp: // outside the sphere in the projected image -image.cpp: surface[0] /= radius; -image.cpp: surface[1] /= radius; -image.cpp: surface[2] /= radius; -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp: -tanPerPixel / zoom; -image.cpp: double pixelHalfWidthFull = halfWidth / pixelWidth; -image.cpp: double xf = xmap / pixelWidth; -image.cpp: double yf = ymap / pixelWidth; -image.cpp: // shift 0,0 to screen center (vs lower left) -image.cpp: xc += width / 2; -image.cpp: yc += height / 2; -image.cpp: // iterate through each of the 6 axis-oriented planes of the box -image.cpp: // only render up to 3 which are facing the camera -image.cpp: // these checks short circuit a dot product, testing for > 0 -image.cpp: if (camDir[dim] > 0) { // positive faces camera -image.cpp: t = (radius - surface[dim]) / camDir[dim]; -image.cpp: } else if (camDir[dim] < 0) { // negative faces camera -image.cpp: t = -(radius + surface[dim]) / camDir[dim]; -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp: if (sflag/2) draw_sphere(y,surfaceColor,diameter); -image.cpp: MathExtra::scale3(1.0/len,zaxis); -image.cpp: -tanPerPixel / zoom; -image.cpp: double xf = xmap / pixelWidth; -image.cpp: double yf = ymap / pixelWidth; -image.cpp: // shift 0,0 to screen center (vs lower left) -image.cpp: xc += width / 2; -image.cpp: yc += height / 2; -image.cpp: double pixelHalfWidthFull = (rasterWidth * 0.5) / pixelWidth; -image.cpp: double pixelHalfHeightFull = (rasterHeight * 0.5) / pixelWidth; -image.cpp: double t = (-b + partial) / (2*a); -image.cpp: double t2 = (-b - partial) / (2*a); -image.cpp: // convert surface into the surface normal -image.cpp: normal[0] = surface[0] / radius; -image.cpp: normal[1] = surface[1] / radius; -image.cpp: // in camera space -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp: MathExtra::scale3 (1.0 / d1len, d1); -image.cpp: MathExtra::scale3 (1.0 / d2len, d2); -image.cpp: invndotd = 1.0 / MathExtra::dot3(normal, camDir); -image.cpp: // invalid triangle (parallel) -image.cpp: -tanPerPixel / zoom; -image.cpp: double xf = xmap / pixelWidth; -image.cpp: double yf = ymap / pixelWidth; -image.cpp: // shift 0,0 to screen center (vs lower left) -image.cpp: xc += width / 2; -image.cpp: yc += height / 2; -image.cpp: double pixelLeftFull = rasterLeft / pixelWidth; -image.cpp: double pixelRightFull = rasterRight / pixelWidth; -image.cpp: double pixelDownFull = rasterDown / pixelWidth; -image.cpp: double pixelUpFull = rasterUp / pixelWidth; -image.cpp: // test inside the triangle -image.cpp:/* ---------------------------------------------------------------------- */ -image.cpp: // store only the tangent relative to the camera normal (0,0,-1) -image.cpp:/* ---------------------------------------------------------------------- */ -image.cpp: // used for rasterizing the spheres -image.cpp: double delTheta = 2.0*MY_PI / SSAOSamples; -image.cpp: // typical neighborhood value for shading -image.cpp: -tanPerPixel / zoom; -image.cpp: int pixelRadius = (int) trunc (SSAORadius / pixelWidth + 0.5); -image.cpp: int hPart = height / nprocs; -image.cpp: // multiply by z cross surface tangent -image.cpp: // so that dot (aka cos) works here -image.cpp: // Bresenham's line algorithm to march over depthBuffer -image.cpp: delta = fabs(hy / hx); -image.cpp: delta = fabs(hx / hy); -image.cpp: // initialize with one step -image.cpp: // because the center point doesn't need testing -image.cpp: // cdepth - depthBuffer B/C we want it in the negative z direction -image.cpp: double h = atan ((cdepth - minPeak) / peakLen); -image.cpp: ao /= (double)SSAOSamples; -image.cpp:/* ---------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp: return static/dynamic status of color map index -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp: set min/max bounds of dynamic color map index -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp: {240/255.0, 248/255.0, 255/255.0}, -image.cpp: {250/255.0, 235/255.0, 215/255.0}, -image.cpp: {0/255.0, 255/255.0, 255/255.0}, -image.cpp: {127/255.0, 255/255.0, 212/255.0}, -image.cpp: {240/255.0, 255/255.0, 255/255.0}, -image.cpp: {245/255.0, 245/255.0, 220/255.0}, -image.cpp: {255/255.0, 228/255.0, 196/255.0}, -image.cpp: {0/255.0, 0/255.0, 0/255.0}, -image.cpp: {255/255.0, 255/255.0, 205/255.0}, -image.cpp: {0/255.0, 0/255.0, 255/255.0}, -image.cpp: {138/255.0, 43/255.0, 226/255.0}, -image.cpp: {165/255.0, 42/255.0, 42/255.0}, -image.cpp: {222/255.0, 184/255.0, 135/255.0}, -image.cpp: {95/255.0, 158/255.0, 160/255.0}, -image.cpp: {127/255.0, 255/255.0, 0/255.0}, -image.cpp: {210/255.0, 105/255.0, 30/255.0}, -image.cpp: {255/255.0, 127/255.0, 80/255.0}, -image.cpp: {100/255.0, 149/255.0, 237/255.0}, -image.cpp: {255/255.0, 248/255.0, 220/255.0}, -image.cpp: {220/255.0, 20/255.0, 60/255.0}, -image.cpp: {0/255.0, 255/255.0, 255/255.0}, -image.cpp: {0/255.0, 0/255.0, 139/255.0}, -image.cpp: {0/255.0, 139/255.0, 139/255.0}, -image.cpp: {184/255.0, 134/255.0, 11/255.0}, -image.cpp: {169/255.0, 169/255.0, 169/255.0}, -image.cpp: {0/255.0, 100/255.0, 0/255.0}, -image.cpp: {189/255.0, 183/255.0, 107/255.0}, -image.cpp: {139/255.0, 0/255.0, 139/255.0}, -image.cpp: {85/255.0, 107/255.0, 47/255.0}, -image.cpp: {255/255.0, 140/255.0, 0/255.0}, -image.cpp: {153/255.0, 50/255.0, 204/255.0}, -image.cpp: {139/255.0, 0/255.0, 0/255.0}, -image.cpp: {233/255.0, 150/255.0, 122/255.0}, -image.cpp: {143/255.0, 188/255.0, 143/255.0}, -image.cpp: {72/255.0, 61/255.0, 139/255.0}, -image.cpp: {47/255.0, 79/255.0, 79/255.0}, -image.cpp: {0/255.0, 206/255.0, 209/255.0}, -image.cpp: {148/255.0, 0/255.0, 211/255.0}, -image.cpp: {255/255.0, 20/255.0, 147/255.0}, -image.cpp: {0/255.0, 191/255.0, 255/255.0}, -image.cpp: {105/255.0, 105/255.0, 105/255.0}, -image.cpp: {30/255.0, 144/255.0, 255/255.0}, -image.cpp: {178/255.0, 34/255.0, 34/255.0}, -image.cpp: {255/255.0, 250/255.0, 240/255.0}, -image.cpp: {34/255.0, 139/255.0, 34/255.0}, -image.cpp: {255/255.0, 0/255.0, 255/255.0}, -image.cpp: {220/255.0, 220/255.0, 220/255.0}, -image.cpp: {248/255.0, 248/255.0, 255/255.0}, -image.cpp: {255/255.0, 215/255.0, 0/255.0}, -image.cpp: {218/255.0, 165/255.0, 32/255.0}, -image.cpp: {128/255.0, 128/255.0, 128/255.0}, -image.cpp: {0/255.0, 128/255.0, 0/255.0}, -image.cpp: {173/255.0, 255/255.0, 47/255.0}, -image.cpp: {240/255.0, 255/255.0, 240/255.0}, -image.cpp: {255/255.0, 105/255.0, 180/255.0}, -image.cpp: {205/255.0, 92/255.0, 92/255.0}, -image.cpp: {75/255.0, 0/255.0, 130/255.0}, -image.cpp: {255/255.0, 240/255.0, 240/255.0}, -image.cpp: {240/255.0, 230/255.0, 140/255.0}, -image.cpp: {230/255.0, 230/255.0, 250/255.0}, -image.cpp: {255/255.0, 240/255.0, 245/255.0}, -image.cpp: {124/255.0, 252/255.0, 0/255.0}, -image.cpp: {255/255.0, 250/255.0, 205/255.0}, -image.cpp: {173/255.0, 216/255.0, 230/255.0}, -image.cpp: {240/255.0, 128/255.0, 128/255.0}, -image.cpp: {224/255.0, 255/255.0, 255/255.0}, -image.cpp: {250/255.0, 250/255.0, 210/255.0}, -image.cpp: {144/255.0, 238/255.0, 144/255.0}, -image.cpp: {211/255.0, 211/255.0, 211/255.0}, -image.cpp: {255/255.0, 182/255.0, 193/255.0}, -image.cpp: {255/255.0, 160/255.0, 122/255.0}, -image.cpp: {32/255.0, 178/255.0, 170/255.0}, -image.cpp: {135/255.0, 206/255.0, 250/255.0}, -image.cpp: {119/255.0, 136/255.0, 153/255.0}, -image.cpp: {176/255.0, 196/255.0, 222/255.0}, -image.cpp: {255/255.0, 255/255.0, 224/255.0}, -image.cpp: {0/255.0, 255/255.0, 0/255.0}, -image.cpp: {50/255.0, 205/255.0, 50/255.0}, -image.cpp: {250/255.0, 240/255.0, 230/255.0}, -image.cpp: {255/255.0, 0/255.0, 255/255.0}, -image.cpp: {128/255.0, 0/255.0, 0/255.0}, -image.cpp: {102/255.0, 205/255.0, 170/255.0}, -image.cpp: {0/255.0, 0/255.0, 205/255.0}, -image.cpp: {186/255.0, 85/255.0, 211/255.0}, -image.cpp: {147/255.0, 112/255.0, 219/255.0}, -image.cpp: {60/255.0, 179/255.0, 113/255.0}, -image.cpp: {123/255.0, 104/255.0, 238/255.0}, -image.cpp: {0/255.0, 250/255.0, 154/255.0}, -image.cpp: {72/255.0, 209/255.0, 204/255.0}, -image.cpp: {199/255.0, 21/255.0, 133/255.0}, -image.cpp: {25/255.0, 25/255.0, 112/255.0}, -image.cpp: {245/255.0, 255/255.0, 250/255.0}, -image.cpp: {255/255.0, 228/255.0, 225/255.0}, -image.cpp: {255/255.0, 228/255.0, 181/255.0}, -image.cpp: {255/255.0, 222/255.0, 173/255.0}, -image.cpp: {0/255.0, 0/255.0, 128/255.0}, -image.cpp: {253/255.0, 245/255.0, 230/255.0}, -image.cpp: {128/255.0, 128/255.0, 0/255.0}, -image.cpp: {107/255.0, 142/255.0, 35/255.0}, -image.cpp: {255/255.0, 165/255.0, 0/255.0}, -image.cpp: {255/255.0, 69/255.0, 0/255.0}, -image.cpp: {218/255.0, 112/255.0, 214/255.0}, -image.cpp: {238/255.0, 232/255.0, 170/255.0}, -image.cpp: {152/255.0, 251/255.0, 152/255.0}, -image.cpp: {175/255.0, 238/255.0, 238/255.0}, -image.cpp: {219/255.0, 112/255.0, 147/255.0}, -image.cpp: {255/255.0, 239/255.0, 213/255.0}, -image.cpp: {255/255.0, 239/255.0, 213/255.0}, -image.cpp: {205/255.0, 133/255.0, 63/255.0}, -image.cpp: {255/255.0, 192/255.0, 203/255.0}, -image.cpp: {221/255.0, 160/255.0, 221/255.0}, -image.cpp: {176/255.0, 224/255.0, 230/255.0}, -image.cpp: {128/255.0, 0/255.0, 128/255.0}, -image.cpp: {255/255.0, 0/255.0, 0/255.0}, -image.cpp: {188/255.0, 143/255.0, 143/255.0}, -image.cpp: {65/255.0, 105/255.0, 225/255.0}, -image.cpp: {139/255.0, 69/255.0, 19/255.0}, -image.cpp: {250/255.0, 128/255.0, 114/255.0}, -image.cpp: {244/255.0, 164/255.0, 96/255.0}, -image.cpp: {46/255.0, 139/255.0, 87/255.0}, -image.cpp: {255/255.0, 245/255.0, 238/255.0}, -image.cpp: {160/255.0, 82/255.0, 45/255.0}, -image.cpp: {192/255.0, 192/255.0, 192/255.0}, -image.cpp: {135/255.0, 206/255.0, 235/255.0}, -image.cpp: {106/255.0, 90/255.0, 205/255.0}, -image.cpp: {112/255.0, 128/255.0, 144/255.0}, -image.cpp: {255/255.0, 250/255.0, 250/255.0}, -image.cpp: {0/255.0, 255/255.0, 127/255.0}, -image.cpp: {70/255.0, 130/255.0, 180/255.0}, -image.cpp: {210/255.0, 180/255.0, 140/255.0}, -image.cpp: {0/255.0, 128/255.0, 128/255.0}, -image.cpp: {216/255.0, 191/255.0, 216/255.0}, -image.cpp: {253/255.0, 99/255.0, 71/255.0}, -image.cpp: {64/255.0, 224/255.0, 208/255.0}, -image.cpp: {238/255.0, 130/255.0, 238/255.0}, -image.cpp: {245/255.0, 222/255.0, 179/255.0}, -image.cpp: {255/255.0, 255/255.0, 255/255.0}, -image.cpp: {245/255.0, 245/255.0, 245/255.0}, -image.cpp: {255/255.0, 255/255.0, 0/255.0}, -image.cpp: {154/255.0, 205/255.0, 50/255.0} -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp:// ---------------------------------------------------------------------- -image.cpp:// ---------------------------------------------------------------------- -image.cpp:// ColorMap class -image.cpp:// ---------------------------------------------------------------------- -image.cpp:// ---------------------------------------------------------------------- -image.cpp: // default color map -image.cpp:/* ---------------------------------------------------------------------- */ -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp: mbinsizeinv = 1.0/mbinsize; -image.cpp: // NOTE: this is unfinished code, not sure how useful it is -image.cpp: // idea is to allow a list of colors to be specified with a single arg -image.cpp: // problem is that sequential colors in ALL are not very different -image.cpp: // e.g. ALL or USER or ALL5:10 or USER1:10:2 -image.cpp: // current code is just 1st nentry values of ALL or USER -image.cpp: // need to comment out error check in DumpImage::modify_param() -image.cpp: // for amap check on (narg < n) to get it to work -image.cpp: // need to add extra logic here to check not accessing undefined colors -image.cpp: // one-time call to minmax if color map is static -image.cpp:/* ---------------------------------------------------------------------- -image.cpp: set explicit values for all min/max settings in color map -image.cpp: from min/max dynamic values -image.cpp: set lo/hi current and lvalue/hvalue entries that are MIN/MAX VALUE -image.cpp: called only once if mlo/mhi != MIN/MAX VALUE, else called repeatedly -image.cpp:------------------------------------------------------------------------- */ -image.cpp: // error in ABSOLUTE mode if new lo/hi current cause -image.cpp: // first/last entry to become lo > hi with adjacent entry -image.cpp: // OK if new lo/hi current cause an entry to have lo > hi, -image.cpp: // since last entry will always be a match -image.cpp:/* ---------------------------------------------------------------------- -image.cpp:------------------------------------------------------------------------- */ -image.cpp: double lo;//,hi; -image.cpp: else value = (value-locurrent) / (hicurrent-locurrent); -image.cpp: //hi = 1.0; -image.cpp: //hi = hicurrent; -image.cpp: double fraction = (value-mentry[i].svalue) / -imbalance.cpp:/* -*- c++ -*- ---------------------------------------------------------- -imbalance.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -imbalance.cpp: http://lammps.sandia.gov, Sandia National Laboratories -imbalance.cpp:------------------------------------------------------------------------- */ -imbalance.cpp:/* ---------------------------------------------------------------------- */ -imbalance_group.cpp:/* ---------------------------------------------------------------------- -imbalance_group.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -imbalance_group.cpp: http://lammps.sandia.gov, Sandia National Laboratories -imbalance_group.cpp:------------------------------------------------------------------------- */ -imbalance_group.cpp:/* -------------------------------------------------------------------- */ -imbalance_group.cpp:/* -------------------------------------------------------------------- */ -imbalance_group.cpp:/* -------------------------------------------------------------------- */ -imbalance_group.cpp:/* -------------------------------------------------------------------- */ -imbalance_group.cpp:/* -------------------------------------------------------------------- */ -imbalance_neigh.cpp:/* ---------------------------------------------------------------------- -imbalance_neigh.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -imbalance_neigh.cpp: http://lammps.sandia.gov, Sandia National Laboratories -imbalance_neigh.cpp:------------------------------------------------------------------------- */ -imbalance_neigh.cpp:/* -------------------------------------------------------------------- */ -imbalance_neigh.cpp:/* -------------------------------------------------------------------- */ -imbalance_neigh.cpp:/* -------------------------------------------------------------------- */ -imbalance_neigh.cpp: // find suitable neighbor list -imbalance_neigh.cpp: // can only use certain conventional neighbor lists -imbalance_neigh.cpp: // NOTE: why not full list, if half does not exist? -imbalance_neigh.cpp: error->warning(FLERR,"Balance weight neigh skipped b/c no list found"); -imbalance_neigh.cpp: // neighsum = total neigh count for atoms on this proc -imbalance_neigh.cpp: // localwt = weight assigned to each owned atom -imbalance_neigh.cpp: if (nlocal) localwt = 1.0*neighsum/nlocal; -imbalance_neigh.cpp: // apply factor if specified != 1.0 -imbalance_neigh.cpp: // wtlo,wthi = lo/hi values excluding 0.0 due to no atoms on this proc -imbalance_neigh.cpp: // lo value does not change -imbalance_neigh.cpp: // newhi = new hi value to give hi/lo ratio factor times larger/smaller -imbalance_neigh.cpp: // expand/contract all localwt values from lo->hi to lo->newhi -imbalance_neigh.cpp: localwt = wtlo + ((localwt-wtlo)/(wthi-wtlo)) * (newhi-wtlo); -imbalance_neigh.cpp:/* -------------------------------------------------------------------- */ -imbalance_store.cpp:/* ---------------------------------------------------------------------- -imbalance_store.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -imbalance_store.cpp: http://lammps.sandia.gov, Sandia National Laboratories -imbalance_store.cpp:------------------------------------------------------------------------- */ -imbalance_store.cpp:/* -------------------------------------------------------------------- */ -imbalance_store.cpp:/* -------------------------------------------------------------------- */ -imbalance_store.cpp:/* -------------------------------------------------------------------- */ -imbalance_store.cpp:/* -------------------------------------------------------------------- */ -imbalance_store.cpp: // property does not exist -imbalance_store.cpp:/* -------------------------------------------------------------------- */ -imbalance_time.cpp:/* ---------------------------------------------------------------------- -imbalance_time.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -imbalance_time.cpp: http://lammps.sandia.gov, Sandia National Laboratories -imbalance_time.cpp:------------------------------------------------------------------------- */ -imbalance_time.cpp:/* -------------------------------------------------------------------- */ -imbalance_time.cpp:/* -------------------------------------------------------------------- */ -imbalance_time.cpp:/* ---------------------------------------------------------------------- -imbalance_time.cpp:------------------------------------------------------------------------- */ -imbalance_time.cpp: // flag = 1 if called from FixBalance at start of run -imbalance_time.cpp: // init Timer, so accumulated time not carried over from previous run -imbalance_time.cpp: // should NOT init Timer if called from Balance, it uses time from last run -imbalance_time.cpp:/* -------------------------------------------------------------------- */ -imbalance_time.cpp: // cost = CPU time for relevant timers since last invocation -imbalance_time.cpp: // localwt = weight assigned to each owned atom -imbalance_time.cpp: // just return if no time yet tallied -imbalance_time.cpp: if (nlocal) localwt = cost/nlocal; -imbalance_time.cpp: // apply factor if specified != 1.0 -imbalance_time.cpp: // wtlo,wthi = lo/hi values excluding 0.0 due to no atoms on this proc -imbalance_time.cpp: // lo value does not change -imbalance_time.cpp: // newhi = new hi value to give hi/lo ratio factor times larger/smaller -imbalance_time.cpp: // expand/contract all localwt values from lo->hi to lo->newhi -imbalance_time.cpp: localwt = wtlo + ((localwt-wtlo)/(wthi-wtlo)) * (newhi-wtlo); -imbalance_time.cpp: // record time up to this point -imbalance_time.cpp:/* -------------------------------------------------------------------- */ -imbalance_var.cpp:/* ---------------------------------------------------------------------- -imbalance_var.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -imbalance_var.cpp: http://lammps.sandia.gov, Sandia National Laboratories -imbalance_var.cpp:------------------------------------------------------------------------- */ -imbalance_var.cpp:// DEBUG -imbalance_var.cpp:/* -------------------------------------------------------------------- */ -imbalance_var.cpp:/* -------------------------------------------------------------------- */ -imbalance_var.cpp:/* -------------------------------------------------------------------- */ -imbalance_var.cpp:/* -------------------------------------------------------------------- */ -imbalance_var.cpp:/* -------------------------------------------------------------------- */ -imbalance_var.cpp:/* -------------------------------------------------------------------- */ -improper.cpp:/* ---------------------------------------------------------------------- -improper.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -improper.cpp: http://lammps.sandia.gov, Sandia National Laboratories -improper.cpp:------------------------------------------------------------------------- */ -improper.cpp:/* ---------------------------------------------------------------------- */ -improper.cpp:/* ---------------------------------------------------------------------- */ -improper.cpp:/* ---------------------------------------------------------------------- -improper.cpp:------------------------------------------------------------------------- */ -improper.cpp:/* ---------------------------------------------------------------------- -improper.cpp:------------------------------------------------------------------------- */ -improper.cpp: eflag_atom = eflag / 2; -improper.cpp: vflag_atom = vflag / 4; -improper.cpp: // reallocate per-atom arrays if necessary -improper.cpp: // zero accumulators -improper.cpp:/* ---------------------------------------------------------------------- -improper.cpp:------------------------------------------------------------------------- */ -improper.cpp:/* ---------------------------------------------------------------------- */ -improper_hybrid.cpp:/* ---------------------------------------------------------------------- -improper_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -improper_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories -improper_hybrid.cpp:------------------------------------------------------------------------- */ -improper_hybrid.cpp:/* ---------------------------------------------------------------------- */ -improper_hybrid.cpp:/* ---------------------------------------------------------------------- */ -improper_hybrid.cpp:/* ---------------------------------------------------------------------- */ -improper_hybrid.cpp: // save ptrs to original improperlist -improper_hybrid.cpp: // if this is re-neighbor step, create sub-style improperlists -improper_hybrid.cpp: // nimproperlist[] = length of each sub-style list -improper_hybrid.cpp: // realloc sub-style improperlist if necessary -improper_hybrid.cpp: // load sub-style improperlist with 5 values from original improperlist -improper_hybrid.cpp: // call each sub-style's compute function -improper_hybrid.cpp: // set neighbor->improperlist to sub-style improperlist before call -improper_hybrid.cpp: // accumulate sub-style global/peratom energy/virial in hybrid -improper_hybrid.cpp: // restore ptrs to original improperlist -improper_hybrid.cpp:/* ---------------------------------------------------------------------- */ -improper_hybrid.cpp:/* ---------------------------------------------------------------------- */ -improper_hybrid.cpp:/* ---------------------------------------------------------------------- -improper_hybrid.cpp:------------------------------------------------------------------------- */ -improper_hybrid.cpp: // delete old lists, since cannot just change settings -improper_hybrid.cpp: // count sub-styles by skipping numeric args -improper_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric word -improper_hybrid.cpp: // need a better way to skip these exceptions -improper_hybrid.cpp: // allocate list of sub-styles -improper_hybrid.cpp: // allocate each sub-style and call its settings() with subset of args -improper_hybrid.cpp: // allocate uses suffix, but don't store suffix version in keywords, -improper_hybrid.cpp: // else syntax in coeff() will not match -improper_hybrid.cpp: // define subset of args for a sub-style by skipping numeric args -improper_hybrid.cpp: // one exception is 1st arg of style "table", which is non-numeric -improper_hybrid.cpp: // need a better way to skip these exceptions -improper_hybrid.cpp:/* ---------------------------------------------------------------------- -improper_hybrid.cpp:---------------------------------------------------------------------- */ -improper_hybrid.cpp: // 2nd arg = improper sub-style name -improper_hybrid.cpp: // allow for "none" as valid sub-style name -improper_hybrid.cpp: // move 1st arg to 2nd arg -improper_hybrid.cpp: // just copy ptrs, since arg[] points into original input line -improper_hybrid.cpp: // invoke sub-style coeff() starting with 1st arg -improper_hybrid.cpp: // set setflag and which type maps to which sub-style -improper_hybrid.cpp: // if sub-style is none: set hybrid setflag, wipe out map -improper_hybrid.cpp:/* ---------------------------------------------------------------------- -improper_hybrid.cpp:------------------------------------------------------------------------- */ -improper_hybrid.cpp:/* ---------------------------------------------------------------------- -improper_hybrid.cpp:------------------------------------------------------------------------- */ -improper_hybrid.cpp:/* ---------------------------------------------------------------------- -improper_hybrid.cpp:------------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- -improper_zero.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -improper_zero.cpp: http://lammps.sandia.gov, Sandia National Laboratories -improper_zero.cpp:------------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- -improper_zero.cpp:------------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- -improper_zero.cpp:------------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- -improper_zero.cpp:------------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- -improper_zero.cpp:------------------------------------------------------------------------- */ -improper_zero.cpp:/* ---------------------------------------------------------------------- -improper_zero.cpp:------------------------------------------------------------------------- */ -info.cpp:/* ---------------------------------------------------------------------- -info.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -info.cpp: http://lammps.sandia.gov, Sandia National Laboratories -info.cpp:------------------------------------------------------------------------- */ -info.cpp:/* ---------------------------------------------------------------------- -info.cpp:------------------------------------------------------------------------- */ -info.cpp:#include -info.cpp:#include -info.cpp:#include -info.cpp:// same as in variable.cpp -info.cpp:/* ---------------------------------------------------------------------- */ -info.cpp: // parse arguments -info.cpp: fprintf(out,"\nLAMMPS version: %s / %s\n", -info.cpp: double mbytes = bytes/1024.0/1024.0; -info.cpp: (double)pmc.PrivateUsage/1048576.0); -info.cpp: (double)pmc.PeakWorkingSetSize/1048576.0); -info.cpp: (double)mi.uordblks/1048576.0+(double)mi.hblkhd/1048576.0); -info.cpp: (double)ru.ru_maxrss/1024.0); -info.cpp: // from MSD docs. -info.cpp:#else /* POSIX */ -info.cpp:#endif /* ! _WIN32 */ -info.cpp: cpuclock = (cpuclock - cpus) / 60.0; -info.cpp: cpuh = (cpuclock - cpum) / 60.0; -info.cpp: wallclock = (wallclock - walls) / 60.0; -info.cpp: wallh = (wallclock - wallm) / 60.0; -info.cpp: // close output file pointer if opened locally thus forcing a hard sync. -info.cpp:/* ---------------------------------------------------------------------- */ -info.cpp:// the is_active() function returns true if the selected style or name -info.cpp:// in the selected category is currently in use. -info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix); -info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix2); -info.cpp:/* ---------------------------------------------------------------------- */ -info.cpp:// the is_available() function returns true if the selected style -info.cpp:// or name in the selected category is available for use (but need -info.cpp:// not be currently active). -info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix); -info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix2); -info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix); -info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix2); -info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix); -info.cpp: sprintf(name_w_suffix,"%s/%s",name,lmp->suffix2); -info.cpp:/* ---------------------------------------------------------------------- */ -info.cpp:// the is_defined() function returns true if a particular ID of the -info.cpp:// selected category (e.g. fix ID, group ID, region ID etc.) has been -info.cpp:// defined and thus can be accessed. It does *NOT* check whether a -info.cpp:// particular ID has a particular style. -info.cpp: // skip "secret" styles -info.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- -input.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -input.cpp: http://lammps.sandia.gov, Sandia National Laboratories -input.cpp:------------------------------------------------------------------------- */ -input.cpp:#include "sys/stat.h" -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: // fill map with commands listed in style_command.h -input.cpp: // process command-line args -input.cpp: // check for args "-var" and "-echo" -input.cpp: // caller has already checked that sufficient arguments exist -input.cpp: char **tmp = arg; // trick echo() into using argv instead of arg -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: // don't free command and arg strings -input.cpp: // they just point to other allocated memory -input.cpp:/* ---------------------------------------------------------------------- -input.cpp:------------------------------------------------------------------------- */ -input.cpp: // read a line from input script -input.cpp: // n = length of line including str terminator, 0 if end of file -input.cpp: // if line ends in continuation char '&', concatenate next line -input.cpp: // end of file reached, so break -input.cpp: // n == 0 if nothing read, else n = line with str terminator -input.cpp: // continue if last char read was not a newline -input.cpp: // could happen if line is very long -input.cpp: // continue reading if final printable char is & char -input.cpp: // or if odd number of triple quotes -input.cpp: // else break with n = line with str terminator -input.cpp: // bcast the line -input.cpp: // if n = 0, end-of-file -input.cpp: // error if label_active is set, since label wasn't encountered -input.cpp: // if original input file, code is done -input.cpp: // else go back to previous input file -input.cpp: // echo the command unless scanning for label -input.cpp: // parse the line -input.cpp: // if no command, skip to next line in input script -input.cpp: // if scanning for label, skip command unless it's a label command -input.cpp: // execute the command -input.cpp:/* ---------------------------------------------------------------------- -input.cpp:------------------------------------------------------------------------- */ -input.cpp: // error if another nested file still open, should not be possible -input.cpp: // open new filename and set infile, infiles[0], nfile -input.cpp: // call to file() will close filename and decrement nfile -input.cpp:/* ---------------------------------------------------------------------- -input.cpp:------------------------------------------------------------------------- */ -input.cpp: // echo the command unless scanning for label -input.cpp: // parse the line -input.cpp: // if no command, just return NULL -input.cpp: // if scanning for label, skip command unless it's a label command -input.cpp: // execute the command and return its name -input.cpp:/* ---------------------------------------------------------------------- -input.cpp: treat text between single/double/triple quotes as one arg via nextword() -input.cpp:------------------------------------------------------------------------- */ -input.cpp: // duplicate line into copy string to break into words -input.cpp: // strip any # comment by replacing it with 0 -input.cpp: // do not strip from a # inside single/double/triple quotes -input.cpp: // quoteflag = 1,2,3 when encounter first single/double,triple quote -input.cpp: // quoteflag = 0 when encounter matching single/double,triple quote -input.cpp: // perform $ variable substitution (print changes) -input.cpp: // except if searching for a label since earlier variable may not be defined -input.cpp: // command = 1st arg in copy string -input.cpp: // point arg[] at each subsequent arg in copy string -input.cpp: // nextword() inserts string terminators into copy string to delimit args -input.cpp: // nextword() treats text between single/double/triple quotes as one arg -input.cpp:/* ---------------------------------------------------------------------- -input.cpp: treat text between single/double/triple quotes as one arg -input.cpp:------------------------------------------------------------------------- */ -input.cpp: // start = first non-whitespace char -input.cpp: // if start is single/double/triple quote: -input.cpp: // start = first char beyond quote -input.cpp: // stop = first char of matching quote -input.cpp: // next = first char beyond matching quote -input.cpp: // next must be NULL or whitespace -input.cpp: // if start is not single/double/triple quote: -input.cpp: // stop = first whitespace char after start -input.cpp: // next = char after stop, or stop itself if stop is NULL -input.cpp: // set stop to NULL to terminate word -input.cpp:/* ---------------------------------------------------------------------- -input.cpp: reallocate str/str2 to hold expanded version if necessary & reset max/max2 -input.cpp:------------------------------------------------------------------------- */ -input.cpp: // use str2 as scratch space to expand str, then copy back to str -input.cpp: // reallocate str and str2 as necessary -input.cpp: // do not replace $ inside single/double/triple quotes -input.cpp: // var = pts at variable name, ended by NULL -input.cpp: // if $ is followed by '{', trailing '}' becomes NULL -input.cpp: // else $x becomes x followed by NULL -input.cpp: // beyond = points to text following variable -input.cpp: // variable substitution -input.cpp: // value = ptr to expanded variable -input.cpp: // variable name between curly braces, e.g. ${a} -input.cpp: // immediate variable between parenthesis, e.g. $(1/2) -input.cpp: // single character variable name, e.g. $a -input.cpp: // check if storage in str2 needs to be expanded -input.cpp: // re-initialize ptr and ptr2 to the point beyond the variable. -input.cpp: // output substitution progress if requested -input.cpp: // quoteflag = 1,2,3 when encounter first single/double,triple quote -input.cpp: // quoteflag = 0 when encounter matching single/double,triple quote -input.cpp: // copy 2 extra triple quote chars into str2 -input.cpp: // copy current character into str2 -input.cpp: // set length of input str to length of work str2 -input.cpp: // copy work string back to input str -input.cpp:/* ---------------------------------------------------------------------- -input.cpp: return new expanded # of values, and copy them w/out "*" into earg -input.cpp:------------------------------------------------------------------------- */ -input.cpp: // maxarg should always end up equal to newarg, so caller can free earg -input.cpp: // check for global vector/array, peratom array, local array -input.cpp: // check for global vector/array, peratom array, local array -input.cpp: n = strlen(arg[iarg]) + 16; // 16 = space for large inserted integer -input.cpp: //printf("NEWARG %d\n",newarg); -input.cpp: //for (int i = 0; i < newarg; i++) -input.cpp: // printf(" arg %d: %s\n",i,earg[i]); -input.cpp:/* ---------------------------------------------------------------------- -input.cpp:------------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- -input.cpp:------------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- -input.cpp:------------------------------------------------------------------------- */ -input.cpp: // return if command was listed above -input.cpp: // invoke commands added via style_command.h -input.cpp: // unrecognized command -input.cpp:/* ---------------------------------------------------------------------- -input.cpp:------------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: // substitute for variables in Boolean expression for "if" -input.cpp: // in case expression was enclosed in quotes -input.cpp: // must substitute on copy of arg else will step on subsequent args -input.cpp: // evaluate Boolean expression for "if" -input.cpp: // bound "then" commands -input.cpp: // execute "then" commands -input.cpp: // make copies of all arg string commands -input.cpp: // required because re-parsing a command via one() will wipe out args -input.cpp: // done if no "elif" or "else" -input.cpp: // check "elif" or "else" until find commands to execute -input.cpp: // substitute for variables and evaluate Boolean expression for "elif" -input.cpp: // must substitute on copy of arg else will step on subsequent args -input.cpp: // bound and execute "elif" or "else" commands -input.cpp: // execute the list of commands -input.cpp: // clean up -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: // do not allow include inside an if command -input.cpp: // NOTE: this check will fail if a 2nd if command was inside the if command -input.cpp: // and came before the include -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: // copy original line to copy, since will use strtok() on it -input.cpp: // ptr = start of 4th word -input.cpp: // execute the remaining command line on requested partitions -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: // copy 1st arg back into line (copy is being used) -input.cpp: // check maxline since arg[0] could have been exanded by variables -input.cpp: // substitute for $ variables (no printing) and print arg -input.cpp: // parse optional args -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: if (narg == 0) error->done(0); // 1 would be fully backwards compatible -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: // use work string to concat args back into one string separated by spaces -input.cpp: // invoke string in shell via system() -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- -input.cpp:------------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: // must reset default extra_dof of all computes -input.cpp: // since some were created before dimension command is encountered -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: // same checks for packages existing as in LAMMPS::post_create() -input.cpp: // since can be invoked here by package command in input script -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- -input.cpp:------------------------------------------------------------------------- */ -input.cpp: sprintf(estyle,"%s/%s",arg[0],lmp->suffix); -input.cpp: sprintf(estyle,"%s/%s",arg[0],lmp->suffix2); -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp: // store 1-3,1-4 and dihedral/extra flag values before change -input.cpp: // change in 1-2 coeffs will not change the special list -input.cpp: // if simulation box defined and saved values changed, redo special list -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -input.cpp:/* ---------------------------------------------------------------------- */ -integrate.cpp:/* ---------------------------------------------------------------------- -integrate.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -integrate.cpp: http://lammps.sandia.gov, Sandia National Laboratories -integrate.cpp:------------------------------------------------------------------------- */ -integrate.cpp:/* ---------------------------------------------------------------------- */ -integrate.cpp:/* ---------------------------------------------------------------------- */ -integrate.cpp:/* ---------------------------------------------------------------------- */ -integrate.cpp: // allow pair and Kspace compute() to be turned off via modify flags -integrate.cpp: // should add checks: -integrate.cpp: // for any acceleration package that has its own integrate/minimize -integrate.cpp: // in case input script has reset the run or minimize style explicitly -integrate.cpp: // e.g. invalid to have kokkos pair style with non-kokkos verlet -integrate.cpp: // but OK to have kokkos verlet with non kokkos pair style (just warn) -integrate.cpp: // making these checks would require all the pair, fix, etc styles have -integrate.cpp: // kokkos, intel flags -integrate.cpp:/* ---------------------------------------------------------------------- -integrate.cpp:------------------------------------------------------------------------- */ -integrate.cpp:/* ---------------------------------------------------------------------- -integrate.cpp: eflag/vflag based on computes that need info on this ntimestep -integrate.cpp:------------------------------------------------------------------------- */ -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -irregular.cpp: http://lammps.sandia.gov, Sandia National Laboratories -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp:// allocate space for static class variable -irregular.cpp:// prototype for non-class function -irregular.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files -irregular.cpp:/* ---------------------------------------------------------------------- */ -irregular.cpp: // migrate work vectors -irregular.cpp: // send buffers -irregular.cpp: // universal work vectors -irregular.cpp: // initialize buffers for migrate atoms, not used for datum comm -irregular.cpp: // these can persist for multiple irregular operations -irregular.cpp:/* ---------------------------------------------------------------------- */ -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp: // clear global->local map since atoms move to new procs -irregular.cpp: // clear old ghosts so map_set() at end will operate only on local atoms -irregular.cpp: // exchange() doesn't need to clear ghosts b/c borders() -irregular.cpp: // is called right after and it clears ghosts and calls map_set() -irregular.cpp: // subbox bounds for orthogonal or triclinic box -irregular.cpp: // if Comm will be called to assign new atom coords to procs, -irregular.cpp: // may need to setup RCB info -irregular.cpp: // loop over atoms, flag any that are not in my sub-box -irregular.cpp: // fill buffer with atoms leaving my box, using < and >= -irregular.cpp: // assign which proc it belongs to via Comm::coord2proc() -irregular.cpp: // if coord2proc() returns me, due to round-off -irregular.cpp: // in triclinic x2lamda(), then keep atom and don't send -irregular.cpp: // when atom is deleted, fill it in with last atom -irregular.cpp: // create irregular communication plan, perform comm, destroy plan -irregular.cpp: // returned nrecv = size of buffer needed for incoming atoms -irregular.cpp: // add received atoms to my list -irregular.cpp: // reset global->local map -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp: // migrate required if comm layout is tiled -irregular.cpp: // cannot use myloc[] logic below -irregular.cpp: // subbox bounds for orthogonal or triclinic box -irregular.cpp: // loop over atoms, check for any that are not in my sub-box -irregular.cpp: // assign which proc it belongs to via Comm::coord2proc() -irregular.cpp: // if logical igx,igy,igz of newproc > one away from myloc, set flag = 1 -irregular.cpp: // this check needs to observe PBC -irregular.cpp: // cannot check via comm->procneigh since it ignores PBC -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp: // setup for collective comm -irregular.cpp: // work1 = 1 for procs I send a message to, not including self -irregular.cpp: // work2 = 1 for all procs, used for ReduceScatter -irregular.cpp: // nrecv_proc = # of procs I receive messages from, not including self -irregular.cpp: // options for performing ReduceScatter operation -irregular.cpp: // some are more efficient on some machines at big sizes -irregular.cpp: // allocate receive arrays -irregular.cpp: // nsend_proc = # of messages I send -irregular.cpp: // allocate send arrays -irregular.cpp: // list still stores size of message for procs I send to -irregular.cpp: // proc_send = procs I send to -irregular.cpp: // length_send = # of doubles I send to each proc -irregular.cpp: // to balance pattern of send messages: -irregular.cpp: // each proc begins with iproc > me, continues until iproc = me -irregular.cpp: // reset list to store which send message each proc corresponds to -irregular.cpp: // num_send = # of atoms I send to each proc -irregular.cpp: // work2 = offsets into index_send for each proc I send to -irregular.cpp: // index_send = list of which atoms to send to each proc -irregular.cpp: // 1st N1 values are atom indices for 1st proc, -irregular.cpp: // next N2 values are atom indices for 2nd proc, etc -irregular.cpp: // offset_send = where each atom starts in send buffer -irregular.cpp: // tell receivers how much data I send -irregular.cpp: // sendmax_proc = # of doubles I send in largest single message -irregular.cpp: MPI_Request tmpReq; // Use non-blocking send to avoid possible deadlock -irregular.cpp: MPI_Request_free(&tmpReq); // the MPI_Barrier below marks completion -irregular.cpp: // receive incoming messages -irregular.cpp: // proc_recv = procs I recv from -irregular.cpp: // length_recv = # of doubles each proc sends me -irregular.cpp: // nrecvsize = total size of atom data I recv -irregular.cpp: // sort proc_recv and length_recv by proc ID if requested -irregular.cpp: // useful for debugging to insure reproducible ordering of received atoms -irregular.cpp: // invoke by adding final arg = 1 to create_atom() call in migrate_atoms() -irregular.cpp: // barrier to insure all MPI_ANY_SOURCE messages are received -irregular.cpp: // else another proc could proceed to exchange_atom() and send to me -irregular.cpp: // return size of atom data I will receive -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp: // post all receives -irregular.cpp: // reallocate buf for largest send if necessary -irregular.cpp: // send each message -irregular.cpp: // pack buf with list of atoms -irregular.cpp: // m = index of atom in sendbuf -irregular.cpp: // wait on all incoming messages -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp: // setup for collective comm -irregular.cpp: // work1 = 1 for procs I send a message to, not including self -irregular.cpp: // work2 = 1 for all procs, used for ReduceScatter -irregular.cpp: // nrecv_proc = # of procs I receive messages from, not including self -irregular.cpp: // options for performing ReduceScatter operation -irregular.cpp: // some are more efficient on some machines at big sizes -irregular.cpp: // allocate receive arrays -irregular.cpp: // work1 = # of datums I send to each proc, including self -irregular.cpp: // nsend_proc = # of procs I send messages to, not including self -irregular.cpp: // allocate send and self arrays -irregular.cpp: // proc_send = procs I send to -irregular.cpp: // num_send = # of datums I send to each proc -irregular.cpp: // num_self = # of datums I copy to self -irregular.cpp: // to balance pattern of send messages: -irregular.cpp: // each proc begins with iproc > me, continues until iproc = me -irregular.cpp: // reset work1 to store which send message each proc corresponds to -irregular.cpp: // work2 = offsets into index_send for each proc I send to -irregular.cpp: // m = ptr into index_self -irregular.cpp: // index_send = list of which datums to send to each proc -irregular.cpp: // 1st N1 values are datum indices for 1st proc, -irregular.cpp: // next N2 values are datum indices for 2nd proc, etc -irregular.cpp: // index_self = list of which datums to copy to self -irregular.cpp: // tell receivers how much data I send -irregular.cpp: // sendmax_proc = largest # of datums I send in a single message -irregular.cpp: MPI_Request tmpReq; // Use non-blocking send to avoid possible deadlock -irregular.cpp: MPI_Request_free(&tmpReq); // the MPI_Barrier below marks completion -irregular.cpp: // receive incoming messages -irregular.cpp: // proc_recv = procs I recv from -irregular.cpp: // num_recv = total size of message each proc sends me -irregular.cpp: // nrecvdatum = total size of data I recv -irregular.cpp: // sort proc_recv and num_recv by proc ID if requested -irregular.cpp: // useful for debugging to insure reproducible ordering of received datums -irregular.cpp: // barrier to insure all MPI_ANY_SOURCE messages are received -irregular.cpp: // else another proc could proceed to exchange_data() and send to me -irregular.cpp: // return # of datums I will receive -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp: // post all receives, starting after self copies -irregular.cpp: // reallocate buf for largest send if necessary -irregular.cpp: // send each message -irregular.cpp: // pack buf with list of datums -irregular.cpp: // m = index of datum in sendbuf -irregular.cpp: // copy datums to self, put at beginning of recvbuf -irregular.cpp: // wait on all incoming messages -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp: if flag = 0, don't need to realloc with copy, just free/malloc -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp: free/malloc the size of the recv buffer as needed with BUFFACTOR -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp:/* ---------------------------------------------------------------------- -irregular.cpp:------------------------------------------------------------------------- */ -irregular.cpp: bytes += maxsend*sizeof(double); // buf_send -irregular.cpp: bytes += maxrecv*sizeof(double); // buf_recv -irregular.cpp: bytes += maxdbuf*sizeof(double); // dbuf -irregular.cpp: bytes += maxbuf; // buf -irregular.cpp: bytes += 2*maxlocal*sizeof(int); // mproclist,msizes -irregular.cpp: bytes += 2*nprocs*sizeof(int); // work1,work2 -kspace.cpp:/* ---------------------------------------------------------------------- -kspace.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -kspace.cpp: http://lammps.sandia.gov, Sandia National Laboratories -kspace.cpp:------------------------------------------------------------------------- */ -kspace.cpp:/* ---------------------------------------------------------------------- */ -kspace.cpp: // default to using MPI collectives for FFT/remap only on IBM BlueGene -kspace.cpp: (force->qelectron * force->qelectron) / -kspace.cpp: gcons[2][0] = 15.0 / 8.0; -kspace.cpp: gcons[2][1] = -5.0 / 4.0; -kspace.cpp: gcons[2][2] = 3.0 / 8.0; -kspace.cpp: gcons[3][0] = 35.0 / 16.0; -kspace.cpp: gcons[3][1] = -35.0 / 16.0; -kspace.cpp: gcons[3][2] = 21.0 / 16.0; -kspace.cpp: gcons[3][3] = -5.0 / 16.0; -kspace.cpp: gcons[4][0] = 315.0 / 128.0; -kspace.cpp: gcons[4][1] = -105.0 / 32.0; -kspace.cpp: gcons[4][2] = 189.0 / 64.0; -kspace.cpp: gcons[4][3] = -45.0 / 32.0; -kspace.cpp: gcons[4][4] = 35.0 / 128.0; -kspace.cpp: gcons[5][0] = 693.0 / 256.0; -kspace.cpp: gcons[5][1] = -1155.0 / 256.0; -kspace.cpp: gcons[5][2] = 693.0 / 128.0; -kspace.cpp: gcons[5][3] = -495.0 / 128.0; -kspace.cpp: gcons[5][4] = 385.0 / 256.0; -kspace.cpp: gcons[5][5] = -63.0 / 256.0; -kspace.cpp: gcons[6][0] = 3003.0 / 1024.0; -kspace.cpp: gcons[6][1] = -3003.0 / 512.0; -kspace.cpp: gcons[6][2] = 9009.0 / 1024.0; -kspace.cpp: gcons[6][3] = -2145.0 / 256.0; -kspace.cpp: gcons[6][4] = 5005.0 / 1024.0; -kspace.cpp: gcons[6][5] = -819.0 / 512.0; -kspace.cpp: gcons[6][6] = 231.0 / 1024.0; -kspace.cpp: dgcons[2][0] = -5.0 / 2.0; -kspace.cpp: dgcons[2][1] = 3.0 / 2.0; -kspace.cpp: dgcons[3][0] = -35.0 / 8.0; -kspace.cpp: dgcons[3][1] = 21.0 / 4.0; -kspace.cpp: dgcons[3][2] = -15.0 / 8.0; -kspace.cpp: dgcons[4][0] = -105.0 / 16.0; -kspace.cpp: dgcons[4][1] = 189.0 / 16.0; -kspace.cpp: dgcons[4][2] = -135.0 / 16.0; -kspace.cpp: dgcons[4][3] = 35.0 / 16.0; -kspace.cpp: dgcons[5][0] = -1155.0 / 128.0; -kspace.cpp: dgcons[5][1] = 693.0 / 32.0; -kspace.cpp: dgcons[5][2] = -1485.0 / 64.0; -kspace.cpp: dgcons[5][3] = 385.0 / 32.0; -kspace.cpp: dgcons[5][4] = -315.0 / 128.0; -kspace.cpp: dgcons[6][0] = -3003.0 / 256.0; -kspace.cpp: dgcons[6][1] = 9009.0 / 256.0; -kspace.cpp: dgcons[6][2] = -6435.0 / 128.0; -kspace.cpp: dgcons[6][3] = 5005.0 / 128.0; -kspace.cpp: dgcons[6][4] = -4095.0 / 256.0; -kspace.cpp: dgcons[6][5] = 693.0 / 256.0; -kspace.cpp:/* ---------------------------------------------------------------------- */ -kspace.cpp:/* ---------------------------------------------------------------------- */ -kspace.cpp:/* ---------------------------------------------------------------------- */ -kspace.cpp:/* ---------------------------------------------------------------------- -kspace.cpp:------------------------------------------------------------------------- */ -kspace.cpp:/* ---------------------------------------------------------------------- -kspace.cpp:------------------------------------------------------------------------- */ -kspace.cpp: eflag_atom = eflag / 2; -kspace.cpp: vflag_atom = vflag / 4; -kspace.cpp: // reallocate per-atom arrays if necessary -kspace.cpp: // zero accumulators -kspace.cpp:/* ---------------------------------------------------------------------- -kspace.cpp: compute qsum,qsqsum,q2 and give error/warning if not charge neutral -kspace.cpp:------------------------------------------------------------------------- */ -kspace.cpp: // not yet sure of the correction needed for non-neutral systems -kspace.cpp: // so issue warning or error -kspace.cpp:/* ---------------------------------------------------------------------- -kspace.cpp:------------------------------------------------------------------------- */ -kspace.cpp:/* ---------------------------------------------------------------------- -kspace.cpp:------------------------------------------------------------------------- */ -kspace.cpp:/* ---------------------------------------------------------------------- -kspace.cpp:------------------------------------------------------------------------- */ -kspace.cpp:/* ---------------------------------------------------------------------- -kspace.cpp:------------------------------------------------------------------------- */ -kspace.cpp:/* ---------------------------------------------------------------------- -kspace.cpp: see http://www.loria.fr/~shornus/ellipsoid-bbox.html and -kspace.cpp: http://yiningkarlli.blogspot.com/2013/02/ -kspace.cpp:------------------------------------------------------------------------- */ -kspace.cpp: xy*xy*yz*yz)/(lx*ly*lz); -kspace.cpp: b[1] = r*sqrt(lz*lz + yz*yz)/(ly*lz); -kspace.cpp: b[2] = r/lz; -kspace.cpp:/* ---------------------------------------------------------------------- -kspace.cpp:------------------------------------------------------------------------- */ -kspace.cpp: } else if (strcmp(arg[iarg],"mesh/disp") == 0) { -kspace.cpp: } else if (strcmp(arg[iarg],"order/disp") == 0) { -kspace.cpp: } else if (strcmp(arg[iarg],"gewald/disp") == 0) { -kspace.cpp: } else if (strcmp(arg[iarg],"cutoff/adjust") == 0) { -kspace.cpp: } else if (strcmp(arg[iarg],"kmax/ewald") == 0) { -kspace.cpp: error->all(FLERR,"Bad kspace_modify kmax/ewald parameter"); -kspace.cpp: } else if (strcmp(arg[iarg],"mix/disp") == 0) { -kspace.cpp: } else if (strcmp(arg[iarg],"force/disp/real") == 0) { -kspace.cpp: } else if (strcmp(arg[iarg],"force/disp/kspace") == 0) { -kspace.cpp: } else if (strcmp(arg[iarg],"pressure/scalar") == 0) { -kspace.cpp: } else if (strcmp(arg[iarg],"disp/auto") == 0) { -kspace.cpp:/* ---------------------------------------------------------------------- */ -lammps.cpp:/* ---------------------------------------------------------------------- -lammps.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -lammps.cpp: http://lammps.sandia.gov, Sandia National Laboratories -lammps.cpp:------------------------------------------------------------------------- */ -lammps.cpp:/* ---------------------------------------------------------------------- -lammps.cpp:------------------------------------------------------------------------- */ -lammps.cpp: // parse input switches -lammps.cpp: // delimit any extra args for the Kokkos instantiation -lammps.cpp: // delimit args for package command invocation -lammps.cpp: // any package arg with leading "-" will be followed by numeric digit -lammps.cpp: // hybrid option to set fall-back for suffix2 -lammps.cpp: // check for restart remap flag -lammps.cpp: // delimit any extra args for the write_data command -lammps.cpp: // if no partition command-line switch, universe is one world with all procs -lammps.cpp: // sum of procs in all worlds must equal total # of procs -lammps.cpp: // universe cannot use stdin for input file -lammps.cpp: // if no partition command-line switch, cannot use -pscreen option -lammps.cpp: // if no partition command-line switch, cannot use -plog option -lammps.cpp: // set universe screen and logfile -lammps.cpp: // make universe and single world the same, since no partition switch -lammps.cpp: // world inherits settings from universe -lammps.cpp: // set world screen, logfile, communicator, infile -lammps.cpp: // open input script if from file -lammps.cpp: // universe is one or more worlds, as setup by partition switch -lammps.cpp: // split universe communicator into separate world communicators -lammps.cpp: // set world screen, logfile, communicator, infile -lammps.cpp: // open input script -lammps.cpp: // screen and logfile messages for universe and world -lammps.cpp: // check consistency of datatype settings in lmptype.h -lammps.cpp: // create Kokkos class if KOKKOS installed, unless explicitly switched off -lammps.cpp: // instantiation creates dummy Kokkos class if KOKKOS is not installed -lammps.cpp: // add args between kkfirst and kklast to Kokkos instantiation -lammps.cpp: // allocate CiteMe class if enabled -lammps.cpp: // allocate input class now that MPI is fully setup -lammps.cpp: // copy package cmdline arguments -lammps.cpp: // allocate top-level classes -lammps.cpp: // if helpflag set, print help and quit with "success" status -lammps.cpp: // if restartflag set, invoke 2 commands and quit -lammps.cpp: // add args between wdfirst and wdlast to write_data command -lammps.cpp: // also add "noinit" to prevent write_data from doing system init -lammps.cpp:/* ---------------------------------------------------------------------- -lammps.cpp:------------------------------------------------------------------------- */ -lammps.cpp: totalclock = (totalclock - seconds) / 60.0; -lammps.cpp: int hours = (totalclock - minutes) / 60.0; -lammps.cpp:/* ---------------------------------------------------------------------- -lammps.cpp:------------------------------------------------------------------------- */ -lammps.cpp: force = NULL; // Domain->Lattice checks if Force exists -lammps.cpp: // Comm class must be created before Atom class -lammps.cpp: // so that nthreads is defined when create_avec invokes grow() -lammps.cpp: atom->create_avec("atomic/kk",0,NULL,1); -lammps.cpp: force = new Force(this); // must be after group, to create temperature -lammps.cpp: output = new Output(this); // must be after group, so "all" exists -lammps.cpp: // must be after modify so can create Computes -lammps.cpp: update = new Update(this); // must be after output, force, neighbor -lammps.cpp:/* ---------------------------------------------------------------------- -lammps.cpp:------------------------------------------------------------------------- */ -lammps.cpp: // default package command triggered by "-k on" -lammps.cpp: // suffix will always be set if suffix_enable = 1 -lammps.cpp: // check that KOKKOS package classes were instantiated -lammps.cpp: // check that GPU, INTEL, USER-OMP fixes were compiled with LAMMPS -lammps.cpp: // invoke any command-line package commands -lammps.cpp:/* ---------------------------------------------------------------------- -lammps.cpp:------------------------------------------------------------------------- */ -lammps.cpp: force->init(); // pair must come after update due to minimizer -lammps.cpp: atom->init(); // atom must come after force and domain -lammps.cpp: // atom deletes extra array -lammps.cpp: // used by fix shear_history::unpack_restart() -lammps.cpp: // when force->pair->gran_history creates fix -lammps.cpp: // atom_vec init uses deform_vremap -lammps.cpp: modify->init(); // modify must come after update, force, atom, domain -lammps.cpp: neighbor->init(); // neighbor must come after force, modify -lammps.cpp: comm->init(); // comm must come after force, modify, neighbor, atom -lammps.cpp: output->init(); // output must come after domain, force, modify -lammps.cpp:/* ---------------------------------------------------------------------- -lammps.cpp:------------------------------------------------------------------------- */ -lammps.cpp: delete modify; // modify must come after output, force, update -lammps.cpp: // since they delete fixes -lammps.cpp: delete domain; // domain must come after modify -lammps.cpp: // since fix destructors access domain -lammps.cpp: delete atom; // atom must come after modify, neighbor -lammps.cpp: // since fixes delete callbacks in atom -lammps.cpp:/* ---------------------------------------------------------------------- -lammps.cpp:------------------------------------------------------------------------- */ -lammps.cpp: // if output is "stdout", use a pipe to a pager for paged output. -lammps.cpp: // this will avoid the most important help text to rush past the -lammps.cpp: // user. scrollback buffers are often not large enough. this is most -lammps.cpp: // beneficial to windows users, who are not used to command line. -lammps.cpp: // reset to original state, if pipe command failed -lammps.cpp: // general help message about command line and flags -lammps.cpp: "\nLarge-scale Atomic/Molecular Massively Parallel Simulator - " -lammps.cpp: "-echo none/screen/log/both : echoing of input script (-e)\n" -lammps.cpp: "-kokkos on/off ... : turn KOKKOS mode on or off (-k)\n" -lammps.cpp: "-log none/filename : where to send log output (-l)\n" -lammps.cpp: "-screen none/filename : where to send screen output (-sc)\n" -lammps.cpp: "-suffix gpu/intel/opt/omp : style suffix to apply (-sf)\n" -lammps.cpp: // close pipe to pager, if active -lammps.cpp:/* ---------------------------------------------------------------------- -lammps.cpp:------------------------------------------------------------------------- */ -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -lattice.cpp: http://lammps.sandia.gov, Sandia National Laboratories -lattice.cpp:------------------------------------------------------------------------- */ -lattice.cpp:/* ---------------------------------------------------------------------- */ -lattice.cpp: // parse style arg -lattice.cpp: // Domain creates a default lattice of style "none" -lattice.cpp: // before Force class is instantiated, just use atof() in that case -lattice.cpp: // check that lattice matches dimension -lattice.cpp: // style CUSTOM can be either 2d or 3d -lattice.cpp: // scale = conversion factor between lattice and box units -lattice.cpp: // set basis atoms for each style -lattice.cpp: // x,y,z = fractional coords within unit cell -lattice.cpp: // style CUSTOM will be defined by optional args -lattice.cpp: add_basis(0.5,5.0/6.0,0.5); -lattice.cpp: add_basis(0.0,1.0/3.0,0.5); -lattice.cpp: // set defaults for optional args -lattice.cpp: a3[2] = sqrt(8.0/3.0); -lattice.cpp: // process optional args -lattice.cpp: // check settings for errors -lattice.cpp: // reset scale for LJ units (input scale is rho*) -lattice.cpp: // scale = (Nbasis/(Vprimitive * rho*)) ^ (1/dim) -lattice.cpp: scale = pow(nbasis/volume/scale,1.0/dimension); -lattice.cpp: // initialize lattice <-> box transformation matrices -lattice.cpp: // convert 8 corners of primitive unit cell from lattice coords to box coords -lattice.cpp: // min to max = bounding box around the pts in box space -lattice.cpp: // xlattice,ylattice,zlattice = extent of bbox in box space -lattice.cpp: // set xlattice,ylattice,zlattice to 0.0 initially -lattice.cpp: // since bbox uses them to shift origin (irrelevant for this computation) -lattice.cpp: // print lattice spacings -lattice.cpp:/* ---------------------------------------------------------------------- */ -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp:------------------------------------------------------------------------- */ -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp:------------------------------------------------------------------------- */ -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp:------------------------------------------------------------------------- */ -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp:------------------------------------------------------------------------- */ -lattice.cpp: // primitive = 3x3 matrix with primitive vectors as columns -lattice.cpp: // priminv = inverse of primitive -lattice.cpp: primitive[1][2]*primitive[2][1]) / determinant; -lattice.cpp: primitive[1][0]*primitive[2][2]) / determinant; -lattice.cpp: primitive[1][1]*primitive[2][0]) / determinant; -lattice.cpp: primitive[0][1]*primitive[2][2]) / determinant; -lattice.cpp: primitive[0][2]*primitive[2][0]) / determinant; -lattice.cpp: primitive[0][0]*primitive[2][1]) / determinant; -lattice.cpp: primitive[0][2]*primitive[1][1]) / determinant; -lattice.cpp: primitive[0][0]*primitive[1][2]) / determinant; -lattice.cpp: primitive[0][1]*primitive[1][0]) / determinant; -lattice.cpp: // rotaterow = 3x3 matrix with normalized orient vectors as rows -lattice.cpp: rotaterow[0][0] = orientx[0] / length; -lattice.cpp: rotaterow[0][1] = orientx[1] / length; -lattice.cpp: rotaterow[0][2] = orientx[2] / length; -lattice.cpp: rotaterow[1][0] = orienty[0] / length; -lattice.cpp: rotaterow[1][1] = orienty[1] / length; -lattice.cpp: rotaterow[1][2] = orienty[2] / length; -lattice.cpp: rotaterow[2][0] = orientz[0] / length; -lattice.cpp: rotaterow[2][1] = orientz[1] / length; -lattice.cpp: rotaterow[2][2] = orientz[2] / length; -lattice.cpp: // rotatecol = 3x3 matrix with normalized orient vectors as columns -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp:------------------------------------------------------------------------- */ -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp: transformation: xyz_latt = P_inv * 1/scale * Rotate_col * (xyz_box - offset) -lattice.cpp:------------------------------------------------------------------------- */ -lattice.cpp: x1 /= scale; -lattice.cpp: y1 /= scale; -lattice.cpp: z1 /= scale; -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp:------------------------------------------------------------------------- */ -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp:------------------------------------------------------------------------- */ -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp:------------------------------------------------------------------------- */ -lattice.cpp:/* ---------------------------------------------------------------------- -lattice.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -library.cpp: http://lammps.sandia.gov, Sandia National Laboratories -library.cpp:------------------------------------------------------------------------- */ -library.cpp:// C or Fortran style library interface to LAMMPS -library.cpp:// customize by adding new LAMMPS-specific functions -library.cpp:// ---------------------------------------------------------------------- -library.cpp:// utility macros -library.cpp:// ---------------------------------------------------------------------- -library.cpp:/* ---------------------------------------------------------------------- -library.cpp: // code paths which might throw exception -library.cpp:------------------------------------------------------------------------- */ -library.cpp:// ---------------------------------------------------------------------- -library.cpp:// helper functions, not in library API -library.cpp:// ---------------------------------------------------------------------- -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:// ---------------------------------------------------------------------- -library.cpp:// library API functions to create/destroy an instance of LAMMPS -library.cpp:// and communicate commands to it -library.cpp:// ---------------------------------------------------------------------- -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp: char *str = (char *) lmp->memory->smalloc(n,"lib/commands/list:str"); -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp: // make copy of str so can strtok() it -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:// ---------------------------------------------------------------------- -library.cpp:// library API functions to extract info from LAMMPS or set info in LAMMPS -library.cpp:// ---------------------------------------------------------------------- -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp: // update->atime can be referenced as a pointer -library.cpp: // thermo "timer" data cannot be, since it is computed on request -library.cpp: // lammps_get_thermo() can access all thermo keywords by value -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp: returns a NULL if id is not recognized or style/type not supported -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp: returns a NULL if id is not recognized or style/type not supported -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp: // error if tags are not defined or not consecutive -library.cpp: // copy = Natom length vector of per-atom values -library.cpp: // use atom ID to insert each atom's values into copy -library.cpp: // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID -library.cpp: lmp->memory->create(copy,count*natoms,"lib/gather:copy"); -library.cpp: lmp->memory->create(copy,count*natoms,"lib/gather:copy"); -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp: // error if tags are not defined or not consecutive or no atom map -library.cpp: // copy = Natom length vector of per-atom values -library.cpp: // use atom ID to insert each atom's values into copy -library.cpp: // MPI_Allreduce with MPI_SUM to merge into data, ordered by atom ID -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp: // error if box does not exist or tags not defined -library.cpp: // loop over N atoms of entire system -library.cpp: // if this proc owns it based on coords, invoke create_atom() -library.cpp: // optionally set atom tags and velocities -library.cpp: // need to reset atom->natoms inside LAMMPS -library.cpp: // init per-atom fix/compute/variable values for created atoms -library.cpp: // if global map exists, reset it -library.cpp: // invoke map_init() b/c atom count has grown -library.cpp: // warn if new natoms is not correct -library.cpp:// ---------------------------------------------------------------------- -library.cpp:// library API functions for error handling -library.cpp:// ---------------------------------------------------------------------- -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -library.cpp:/* ---------------------------------------------------------------------- -library.cpp:------------------------------------------------------------------------- */ -main.cpp:/* ---------------------------------------------------------------------- -main.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -main.cpp: http://lammps.sandia.gov, Sandia National Laboratories -main.cpp:------------------------------------------------------------------------- */ -main.cpp:/* ---------------------------------------------------------------------- -main.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -math_extra.cpp: http://lammps.sandia.gov, Sandia National Laboratories -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp: // create augmented matrix for pivoting -math_extra.cpp: double m = aug[j][i]/aug[i][i]; -math_extra.cpp: // back substitution -math_extra.cpp: ans[2] = aug[2][3]/aug[2][2]; -math_extra.cpp: ans[i] = (aug[i][3]-sumax) / aug[i][i]; -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp: if (iter < 4) tresh = 0.2*sm/(3*3); -math_extra.cpp: if (fabs(h)+g == fabs(h)) t = (matrix[i][j])/h; -math_extra.cpp: theta = 0.5*h/(matrix[i][j]); -math_extra.cpp: t = 1.0/(fabs(theta)+sqrt(1.0+theta*theta)); -math_extra.cpp: c = 1.0/sqrt(1.0+t*t); -math_extra.cpp: tau = s/(1.0+c); -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp: also returns updated omega at 1/2 step -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp: // full update from dq/dt = 1/2 w q -math_extra.cpp: // 1st half update from dq/dt = 1/2 w q -math_extra.cpp: // re-compute omega at 1/2 step from m at 1/2 step and q at 1/2 step -math_extra.cpp: // recompute wq -math_extra.cpp: // 2nd half update from dq/dt = 1/2 w q -math_extra.cpp: // corrected Richardson update -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp: // apply permuation operator on p and q, get kp and kq -math_extra.cpp: // obtain phi, cosines and sines -math_extra.cpp: else phi /= 4.0 * inertia[k-1]; -math_extra.cpp: // advance p and q -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp: wbody = Mbody / Idiag -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp: else wbody[0] = (m[0]*ex[0] + m[1]*ex[1] + m[2]*ex[2]) / idiag[0]; -math_extra.cpp: else wbody[1] = (m[0]*ey[0] + m[1]*ey[1] + m[2]*ey[2]) / idiag[1]; -math_extra.cpp: else wbody[2] = (m[0]*ez[0] + m[1]*ez[1] + m[2]*ez[2]) / idiag[2]; -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp: else wbody[0] /= moments[0]; -math_extra.cpp: else wbody[1] /= moments[1]; -math_extra.cpp: else wbody[2] /= moments[2]; -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp: // squares of quaternion components -math_extra.cpp: // some component must be greater than 1/4 since they sum to 1 -math_extra.cpp: // compute other components from it -math_extra.cpp: q[1] = (ey[2] - ez[1]) / (4.0*q[0]); -math_extra.cpp: q[2] = (ez[0] - ex[2]) / (4.0*q[0]); -math_extra.cpp: q[3] = (ex[1] - ey[0]) / (4.0*q[0]); -math_extra.cpp: q[0] = (ey[2] - ez[1]) / (4.0*q[1]); -math_extra.cpp: q[2] = (ey[0] + ex[1]) / (4.0*q[1]); -math_extra.cpp: q[3] = (ex[2] + ez[0]) / (4.0*q[1]); -math_extra.cpp: q[0] = (ez[0] - ex[2]) / (4.0*q[2]); -math_extra.cpp: q[1] = (ey[0] + ex[1]) / (4.0*q[2]); -math_extra.cpp: q[3] = (ez[1] + ey[2]) / (4.0*q[2]); -math_extra.cpp: q[0] = (ex[1] - ey[0]) / (4.0*q[3]); -math_extra.cpp: q[1] = (ez[0] + ex[2]) / (4.0*q[3]); -math_extra.cpp: q[2] = (ez[1] + ey[2]) / (4.0*q[3]); -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp: idiag[1] = 1.0/12.0 * mass * length*length; -math_extra.cpp: idiag[2] = 1.0/12.0 * mass * length*length; -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp: from http://en.wikipedia.org/wiki/Inertia_tensor_of_triangle -math_extra.cpp: inertia tensor = a/24 (v0^2 + v1^2 + v2^2 + (v0+v1+v2)^2) I - a Vt S V -math_extra.cpp: S = 1/24 [2 1 1] -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp: double inv24 = mass/24.0; -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp:------------------------------------------------------------------------- */ -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp: ------------------------------------------------------------------------- */ -math_extra.cpp: const double cosAngle = (1.0 - angleSq * 0.25) / (1.0 + angleSq * 0.25); -math_extra.cpp: const double sinAngle = angle / (1.0 + angleSq * 0.25); -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp: ------------------------------------------------------------------------- */ -math_extra.cpp: const double cosAngle = (1.0 - angleSq * 0.25) / (1.0 + angleSq * 0.25); -math_extra.cpp: const double sinAngle = angle / (1.0 + angleSq * 0.25); -math_extra.cpp:/* ---------------------------------------------------------------------- -math_extra.cpp: ------------------------------------------------------------------------- */ -math_extra.cpp: const double cosAngle = (1.0 - angleSq * 0.25) / (1.0 + angleSq * 0.25); -math_extra.cpp: const double sinAngle = angle / (1.0 + angleSq * 0.25); -math_extra.cpp:/* ---------------------------------------------------------------------- */ -math_special.cpp:/* Library libcerf: -math_special.cpp: * distribute, sublicense, and/or sell copies of the Software, and to -math_special.cpp: * http://apps.jcns.fz-juelich.de/libcerf -math_special.cpp: * ../CHANGELOG -math_special.cpp: */ -math_special.cpp:/******************************************************************************/ -math_special.cpp:/* Lookup-table for Chebyshev polynomials for smaller |x| */ -math_special.cpp:/******************************************************************************/ -math_special.cpp: // Steven G. Johnson, October 2012. -math_special.cpp: // Given y100=100*y, where y = 4/(4+x) for x >= 0, compute erfc(x). -math_special.cpp: // Uses a look-up table of 100 different Chebyshev polynomials -math_special.cpp: // for y intervals [0,0.01], [0.01,0.02], ...., [0.99,1], generated -math_special.cpp: // with the help of Maple and a little shell script. This allows -math_special.cpp: // the Chebyshev polynomials to be of significantly lower degree (about 1/4) -math_special.cpp: // compared to fitting the whole [0,1] interval with a single polynomial. -math_special.cpp: /* we only get here if y = 1, i.e. |x| < 4*eps, in which case -math_special.cpp: * erfcx is within 1e-15 of 1.. */ -math_special.cpp:} /* erfcx_y100 */ -math_special.cpp:/* optimizer friendly implementation of exp2(x). -math_special.cpp: */ -math_special.cpp:/* IEEE 754 double precision floating point data manipulation */ -math_special.cpp:/* 1.00000000000000000000e0, */ -math_special.cpp: x = 1.0 + 2.0*(px/(qx-px)); -memory.cpp:/* ---------------------------------------------------------------------- -memory.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -memory.cpp: http://lammps.sandia.gov, Sandia National Laboratories -memory.cpp:------------------------------------------------------------------------- */ -memory.cpp:#include "tbb/scalable_allocator.h" -memory.cpp:/* ---------------------------------------------------------------------- */ -memory.cpp:/* ---------------------------------------------------------------------- -memory.cpp:------------------------------------------------------------------------- */ -memory.cpp:/* ---------------------------------------------------------------------- -memory.cpp:------------------------------------------------------------------------- */ -memory.cpp:/* ---------------------------------------------------------------------- -memory.cpp:------------------------------------------------------------------------- */ -memory.cpp:/* ---------------------------------------------------------------------- -memory.cpp: erroneous usage of templated create/grow functions -memory.cpp:------------------------------------------------------------------------- */ -memory.cpp: sprintf(str,"Cannot create/grow a vector/array of pointers for %s",name); -min_cg.cpp:/* ---------------------------------------------------------------------- -min_cg.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -min_cg.cpp: http://lammps.sandia.gov, Sandia National Laboratories -min_cg.cpp:------------------------------------------------------------------------- */ -min_cg.cpp:// EPS_ENERGY = minimum normalization for energy tolerance -min_cg.cpp:/* ---------------------------------------------------------------------- */ -min_cg.cpp:/* ---------------------------------------------------------------------- -min_cg.cpp:------------------------------------------------------------------------- */ -min_cg.cpp: // nlimit = max # of CG iterations before restarting -min_cg.cpp: // set to ndoftotal unless too big -min_cg.cpp: // initialize working vectors -min_cg.cpp: // line minimization along direction h from current atom->x -min_cg.cpp: // function evaluation criterion -min_cg.cpp: // energy tolerance criterion -min_cg.cpp: // force tolerance criterion -min_cg.cpp: // update new search direction h from new f = -Grad(x) and old g -min_cg.cpp: // this is Polak-Ribieri formulation -min_cg.cpp: // beta = dotall[0]/gg would be Fletcher-Reeves -min_cg.cpp: // reinitialize CG every ndof iterations by setting beta = 0.0 -min_cg.cpp: beta = MAX(0.0,(dotall[0] - dotall[1])/gg); -min_cg.cpp: // reinitialize CG if new search direction h is not downhill -min_cg.cpp: // output for thermo, dump, restart files -min.cpp:/* ---------------------------------------------------------------------- -min.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -min.cpp: http://lammps.sandia.gov, Sandia National Laboratories -min.cpp:------------------------------------------------------------------------- */ -min.cpp:/* ---------------------------------------------------------------------- -min.cpp: JR Shewchuk, http://www-2.cs.cmu.edu/~jrs/jrspapers.html#cg -min.cpp:------------------------------------------------------------------------- */ -min.cpp:/* ---------------------------------------------------------------------- */ -min.cpp:/* ---------------------------------------------------------------------- */ -min.cpp:/* ---------------------------------------------------------------------- */ -min.cpp: // create fix needed for storing atom-based quantities -min.cpp: // will delete it at end of run -min.cpp: // clear out extra global and per-atom dof -min.cpp: // will receive requests for new per-atom dof during pair init() -min.cpp: // can then add vectors to fix_minimize in setup() -min.cpp: // virial_style: -min.cpp: // 1 if computed explicitly by pair->compute via sum over pair interactions -min.cpp: // 2 if computed implicitly by pair->virial_compute via sum over ghost atoms -min.cpp: // setup lists of computes for global and per-atom PE and pressure -min.cpp: // detect if fix omp is present for clearing force arrays -min.cpp: // set flags for arrays to clear in force_clear() -min.cpp: // allow pair and Kspace compute() to be turned off via modify flags -min.cpp: // orthogonal vs triclinic simulation box -min.cpp: // reset reneighboring criteria if necessary -min.cpp:/* ---------------------------------------------------------------------- -min.cpp:------------------------------------------------------------------------- */ -min.cpp: // setup extra global dof due to fixes -min.cpp: // cannot be done in init() b/c update init() is before modify init() -min.cpp: // compute for potential energy -min.cpp: // style-specific setup does two tasks -min.cpp: // setup extra global dof vectors -min.cpp: // setup extra per-atom dof vectors due to requests from Pair classes -min.cpp: // cannot be done in init() b/c update init() is before modify/pair init() -min.cpp: // ndoftotal = total dof for entire minimization problem -min.cpp: // dof for atoms, extra per-atom, extra global -min.cpp: // setup domain, communication and neighboring -min.cpp: // acquire ghosts -min.cpp: // build neighbor lists -min.cpp: // remove these restriction eventually -min.cpp: "Cannot use a damped dynamics min style with fix box/relax"); -min.cpp: error->all(FLERR, "Cannot use hftn min style with fix box/relax"); -min.cpp: // atoms may have migrated in comm->exchange() -min.cpp: // compute all forces -min.cpp: // update per-atom minimization variables stored by pair styles -min.cpp: // stats for initial thermo output -min.cpp: if (output->thermo->normflag) ecurrent /= atom->natoms; -min.cpp:/* ---------------------------------------------------------------------- -min.cpp:------------------------------------------------------------------------- */ -min.cpp: // setup domain, communication and neighboring -min.cpp: // acquire ghosts -min.cpp: // build neighbor lists -min.cpp: // atoms may have migrated in comm->exchange() -min.cpp: // compute all forces -min.cpp: // update per-atom minimization variables stored by pair styles -min.cpp: // stats for Finish to print -min.cpp: if (output->thermo->normflag) ecurrent /= atom->natoms; -min.cpp:/* ---------------------------------------------------------------------- -min.cpp:------------------------------------------------------------------------- */ -min.cpp: // minimizer iterations -min.cpp: // if early exit from iterate loop: -min.cpp: // set update->nsteps to niter for Finish stats to print -min.cpp: // set output->next values to this timestep -min.cpp: // call energy_force() to insure vflag is set when forces computed -min.cpp: // output->write does final output for thermo, dump, restart files -min.cpp: // add ntimestep to all computes that store invocation times -min.cpp: // since are hardwiring call to thermo/dumps and computes may not be ready -min.cpp:/* ---------------------------------------------------------------------- */ -min.cpp: // stats for Finish to print -min.cpp: // reset reneighboring criteria -min.cpp: // delete fix at end of run, so its atom arrays won't persist -min.cpp:/* ---------------------------------------------------------------------- -min.cpp:------------------------------------------------------------------------- */ -min.cpp: // check for reneighboring -min.cpp: // always communicate since minimizer moved atoms -min.cpp: // update per-atom minimization variables stored by pair styles -min.cpp: // fixes that affect minimization -min.cpp: // compute potential energy of system -min.cpp: // normalize if thermo PE does -min.cpp: if (output->thermo->normflag) energy /= atom->natoms; -min.cpp: // if reneighbored, atoms migrated -min.cpp: // if resetflag = 1, update x0 of atoms crossing PBC -min.cpp: // reset vectors used by lo-level minimizer -min.cpp:/* ---------------------------------------------------------------------- -min.cpp:------------------------------------------------------------------------- */ -min.cpp: // clear global force array -min.cpp: // if either newton flag is set, also include ghosts -min.cpp:/* ---------------------------------------------------------------------- -min.cpp:------------------------------------------------------------------------- */ -min.cpp:/* ---------------------------------------------------------------------- */ -min.cpp:/* ---------------------------------------------------------------------- -min.cpp:------------------------------------------------------------------------- */ -min.cpp:/* ---------------------------------------------------------------------- -min.cpp: eflag/vflag based on computes that need info on this ntimestep -min.cpp:------------------------------------------------------------------------- */ -min.cpp:/* ---------------------------------------------------------------------- -min.cpp:------------------------------------------------------------------------- */ -min.cpp:/* ---------------------------------------------------------------------- -min.cpp:------------------------------------------------------------------------- */ -min.cpp:/* ---------------------------------------------------------------------- -min.cpp:------------------------------------------------------------------------- */ -min_fire.cpp:/* ---------------------------------------------------------------------- -min_fire.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -min_fire.cpp: http://lammps.sandia.gov, Sandia National Laboratories -min_fire.cpp:------------------------------------------------------------------------- */ -min_fire.cpp:// EPS_ENERGY = minimum normalization for energy tolerance -min_fire.cpp:/* ---------------------------------------------------------------------- */ -min_fire.cpp:/* ---------------------------------------------------------------------- */ -min_fire.cpp:/* ---------------------------------------------------------------------- */ -min_fire.cpp:/* ---------------------------------------------------------------------- -min_fire.cpp:------------------------------------------------------------------------- */ -min_fire.cpp: // atomic dof -min_fire.cpp:/* ---------------------------------------------------------------------- */ -min_fire.cpp: // vdotfall = v dot f -min_fire.cpp: // sum vdotf over replicas, if necessary -min_fire.cpp: // this communicator would be invalid for multiprocess replicas -min_fire.cpp: // if (v dot f) > 0: -min_fire.cpp: // v = (1-alpha) v + alpha |v| Fhat -min_fire.cpp: // |v| = length of v, Fhat = unit f -min_fire.cpp: // if more than DELAYSTEP since v dot f was negative: -min_fire.cpp: // increase timestep and decrease alpha -min_fire.cpp: // sum vdotv over replicas, if necessary -min_fire.cpp: // this communicator would be invalid for multiprocess replicas -min_fire.cpp: // sum fdotf over replicas, if necessary -min_fire.cpp: // this communicator would be invalid for multiprocess replicas -min_fire.cpp: else scale2 = alpha * sqrt(vdotvall/fdotfall); -min_fire.cpp: // else (v dot f) <= 0: -min_fire.cpp: // decrease timestep, reset alpha, set v = 0 -min_fire.cpp: // limit timestep so no particle moves further than dmax -min_fire.cpp: if (dtvone*vmax > dmax) dtvone = dmax/vmax; -min_fire.cpp: // min dtv over replicas, if necessary -min_fire.cpp: // this communicator would be invalid for multiprocess replicas -min_fire.cpp: // Euler integration step -min_fire.cpp: dtfm = dtf / rmass[i]; -min_fire.cpp: dtfm = dtf / mass[type[i]]; -min_fire.cpp: // energy tolerance criterion -min_fire.cpp: // only check after DELAYSTEP elapsed since velocties reset to 0 -min_fire.cpp: // sync across replicas if running multi-replica minimization -min_fire.cpp: // force tolerance criterion -min_fire.cpp: // sync across replicas if running multi-replica minimization -min_fire.cpp: // output for thermo, dump, restart files -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -min_hftn.cpp: http://lammps.sandia.gov, Sandia National Laboratories -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp://---- CONSTANTS MAP TO stopstrings DECLARED IN Min.run (min.cpp). -min_hftn.cpp:static const int STOP_MAX_ITER = Min::MAXITER; //-- MAX ITERATIONS EXCEEDED -min_hftn.cpp:static const int STOP_MAX_FORCE_EVALS = Min::MAXEVAL; //-- MAX FORCE EVALUATIONS EXCEEDED -min_hftn.cpp:static const int STOP_ENERGY_TOL = Min::ETOL; //-- STEP DID NOT CHANGE ENERGY -min_hftn.cpp:static const int STOP_FORCE_TOL = Min::FTOL; //-- CONVERGED TO DESIRED FORCE TOL -min_hftn.cpp:static const int STOP_TR_TOO_SMALL = Min::TRSMALL; //-- TRUST REGION TOO SMALL -min_hftn.cpp:static const int STOP_ERROR = Min::INTERROR; //-- INTERNAL ERROR -min_hftn.cpp://---- WHEN TESTING ENERGY_TOL, THE ENERGY MAGNITUDE MUST BE AT LEAST THIS BIG. -min_hftn.cpp://---- MACHINE PRECISION IS SOMETIMES DEFINED BY THE C RUNTIME. -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp: //---- ALLOCATE MEMORY FOR ATOMIC DEGREES OF FREEDOM. -min_hftn.cpp: //---- ALLOCATE MEMORY FOR EXTRA GLOBAL DEGREES OF FREEDOM. -min_hftn.cpp: //---- THE FIX MODULE TAKES CARE OF THE FIRST VECTOR, X0 (XK). -min_hftn.cpp: //---- ALLOCATE MEMORY FOR EXTRA PER-ATOM DEGREES OF FREEDOM. -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp: After an energy/force calculation, atoms may migrate from one processor -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp: //---- ATOMIC DEGREES OF FREEDOM. -min_hftn.cpp: //---- EXTRA PER-ATOM DEGREES OF FREEDOM. -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp: //---- TURN THIS ON TO GENERATE AN OPTIMIZATION PROGRESS FILE. -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp: //---- DEFINE OUTPUTS PRINTED BY "Finish". -min_hftn.cpp: //---- SAVE ATOM POSITIONS BEFORE AN ITERATION. -min_hftn.cpp: //---- FIND THE NUMBER OF UNKNOWNS. -min_hftn.cpp: //---- INITIALIZE THE TRUST RADIUS BASED ON THE GRADIENT. -min_hftn.cpp: //---- TRUST RADIUS MUST KEEP STEPS FROM LETTING ATOMS MOVE SO FAR THEY -min_hftn.cpp: //---- VIOLATE PHYSICS OR JUMP BEYOND A PARALLEL PROCESSING DOMAIN. -min_hftn.cpp: //---- LINE SEARCH METHODS DO THIS BY RESTRICTING THE LARGEST CHANGE -min_hftn.cpp: //---- OF ANY ATOM'S COMPONENT TO dmax. AN EXACT CHECK IS MADE LATER, -min_hftn.cpp: //---- BUT THIS GUIDES DETERMINATION OF A MAX TRUST RADIUS. -min_hftn.cpp: //---- CALL THE INNER LOOP TO GET THE NEXT TRUST REGION STEP. -min_hftn.cpp: double dCgForce2StopTol = MIN ((dCurrentForce2 / 2.0), 0.1 / (niter+1)); -min_hftn.cpp: //---- THERE WAS AN ERROR. RESTORE TO LAST ACCEPTED STEP. -min_hftn.cpp: //---- STOP IF THE CURRENT POSITION WAS FOUND TO BE ALREADY GOOD ENOUGH. -min_hftn.cpp: //---- IN THIS CASE THE ENERGY AND FORCES ARE ALREADY COMPUTED. -min_hftn.cpp: //---- COMPUTE THE DIRECTIONAL DERIVATIVE H(x_k) p. -min_hftn.cpp: //---- COMPUTE p^T grad(x_k) AND SAVE IT FOR PRED. -min_hftn.cpp: //---- MOVE TO THE NEW POINT AND EVALUATE ENERGY AND FORCES. -min_hftn.cpp: //---- THIS IS THE PLACE WHERE energy_force IS ALLOWED TO RESET. -min_hftn.cpp: //---- STOP IF THE FORCE TOLERANCE IS MET. -min_hftn.cpp: //---- (IMPLICITLY ACCEPT THE LAST STEP TO THE NEW POINT.) -min_hftn.cpp: //---- STOP IF THE ACTUAL ENERGY REDUCTION IS TINY. -min_hftn.cpp: //---- (IMPLICITLY ACCEPT THE LAST STEP TO THE NEW POINT.) -min_hftn.cpp: //---- COMPUTE THE PREDICTED REDUCTION - p^T grad - 0.5 p^T Hp -min_hftn.cpp: //---- ACCEPT OR REJECT THE STEP PROPOSED BY THE INNER CG LOOP. -min_hftn.cpp: //---- WHEN NEAR A SOLUTION, THE FORCE NORM IS PROBABLY MORE ACCURATE, -min_hftn.cpp: //---- SO DON'T ACCEPT A STEP THAT REDUCES ENERGY SOME TINY AMOUNT -min_hftn.cpp: //---- WHILE INCREASING THE FORCE NORM. -min_hftn.cpp: //---- THE STEP IS ACCEPTED. -min_hftn.cpp: //---- UPDATE THE TRUST REGION BASED ON AGREEMENT BETWEEN -min_hftn.cpp: //---- THE ACTUAL REDUCTION AND THE PREDICTED MODEL REDUCTION. -min_hftn.cpp: //---- DMAX VIOLATIONS TRUNCATE THE CG STEP WITHOUT COMPARISONS; -min_hftn.cpp: //---- BETTER TO ADJUST THE TRUST REGION SO DMAX STOPS HAPPENING. -min_hftn.cpp: //---- THE STEP IS REJECTED. -min_hftn.cpp: //---- RESTORE THE LAST X_K POSITION. -min_hftn.cpp: //---- UPDATE THE TRUST REGION. -min_hftn.cpp: //---- EXPERIMENTS INDICATE NEGATIVE CURVATURE CAN TAKE A BAD -min_hftn.cpp: //---- STEP A LONG WAY, SO BE MORE AGGRESSIVE IN THIS CASE. -min_hftn.cpp: //---- ALSO, IF NEAR A SOLUTION AND DONE WITH NEWTON STEPS, -min_hftn.cpp: //---- THEN REDUCE TO SOMETHING NEAR THE LAST GOOD NEWTON STEP. -min_hftn.cpp: //---- STOP IF THE TRUST RADIUS IS TOO SMALL TO CONTINUE. -min_hftn.cpp: //---- OUTPUT FOR thermo, dump, restart FILES. -min_hftn.cpp: //---- IF THE LAST STEP WAS REJECTED, THEN REEVALUATE ENERGY AND -min_hftn.cpp: //---- FORCES AT THE OLD POINT SO THE OUTPUT DOES NOT DISPLAY -min_hftn.cpp: //---- THE INCREASED ENERGY OF THE REJECTED STEP. -min_hftn.cpp: //---- RETURN IF NUMBER OF EVALUATIONS EXCEEDED. -min_hftn.cpp: } //-- END for LOOP OVER niter -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp: @param[in] nMaxEvals - total energy/force evaluations allowed -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp: //---- SET p_0 = 0. -min_hftn.cpp: //---- OBTAIN THE ENERGY AND FORCES AT THE INPUT POSITION. -min_hftn.cpp: //---- RETURN IMMEDIATELY IF THE FORCE TOLERANCE IS ALREADY MET. -min_hftn.cpp: //---- THE STEP TYPE INFORMS THE CALLER THAT ENERGY AND FORCES HAVE -min_hftn.cpp: //---- BEEN EVALUATED. -min_hftn.cpp: //---- r_0 = -grad (FIRST SEARCH DIRECTION IS STEEPEST DESCENT) -min_hftn.cpp: //---- d_0 = r_0 -min_hftn.cpp: //---- REMEMBER THAT FORCES = -GRADIENT. -min_hftn.cpp: //---- LIMIT THE NUMBER OF INNER CG ITERATIONS. -min_hftn.cpp: //---- BASE IT ON THE NUMBER OF UNKNOWNS, OR MAXIMUM EVALUATIONS ASSUMING -min_hftn.cpp: //---- FORWARD DIFFERENCES ARE USED. -min_hftn.cpp: //---- NOTE THAT SETTING MAX=1 GIVES STEEPEST DESCENT. -min_hftn.cpp: int nLimit1 = _nNumUnknowns / 5; -min_hftn.cpp: int nLimit2 = (nMaxEvals - neval) / 2; -min_hftn.cpp: //---- FURTHER LIMIT ITERATIONS IF NEAR MACHINE ROUNDOFF. -min_hftn.cpp: //---- THE METHOD CAN WASTE A LOT EVALUATIONS WITH LITTLE PAYOFF PROSPECT. -min_hftn.cpp: nMaxInnerIters = MIN (nMaxInnerIters, _nNumUnknowns / 20); -min_hftn.cpp: //---- MAIN CG LOOP. -min_hftn.cpp: //---- COMPUTE HESSIAN-VECTOR PRODUCT: H(x_k) d_i. -min_hftn.cpp: //---- CALCULATE d_i^T H d_i AND d_i^T d_i. -min_hftn.cpp: //---- HANDLE NEGATIVE CURVATURE. -min_hftn.cpp: //---- PROJECT BOTH DIRECTIONS TO THE TRUST RADIUS AND DECIDE -min_hftn.cpp: //---- WHICH MAKES A BETTER PREDICTED REDUCTION. -min_hftn.cpp: //---- p_i^T H(x_k) d_i AND grad_i^T d_i. -min_hftn.cpp: //---- MOVE TO X_K AND COMPUTE ENERGY AND FORCES. -min_hftn.cpp: //---- MOVE THE POINT. -min_hftn.cpp: //---- COMPUTE THE OPTIMAL STEP LENGTH BASED ON THE QUADRATIC CG MODEL. -min_hftn.cpp: double dAlpha = dRR / dDHD; -min_hftn.cpp: //---- MIGHT WANT TO ENABLE THIS TO DEBUG INTERNAL CG STEPS. -min_hftn.cpp: //fprintf (_fpPrint, " alpha = %11.8f neval=%4d\n", dAlpha, neval); -min_hftn.cpp: //---- p_i+1 = p_i + alpha_i d_i -min_hftn.cpp: //---- (SAVE THE CURRENT p_i IN CASE THE STEP HAS TO BE SHORTENED.) -min_hftn.cpp: //---- COMPUTE VECTOR PRODUCTS p_i+1^T p_i+1 AND p_i^T d_i. -min_hftn.cpp: //---- IF STEP LENGTH IS TOO LARGE, THEN REDUCE IT AND RETURN. -min_hftn.cpp: //---- r_i+1 = r_i - alpha * H d_i -min_hftn.cpp: //---- IF RESIDUAL IS SMALL ENOUGH, THEN RETURN THE CURRENT STEP. -min_hftn.cpp: //---- beta = r_i+1^T r_i+1 / r_i^T r_i -min_hftn.cpp: //---- d_i+1 = r_i+1 + beta d_i -min_hftn.cpp: double dBeta = dRnewDotRnew / dRR; -min_hftn.cpp: //---- CONTINUE THE LOOP. -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp: //---- ASSUME THAT FORCES HAVE BEEN EVALUATED AT DESIRED ATOM POSITIONS. -min_hftn.cpp: //---- REMEMBER THAT FORCES = -GRADIENT. -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp: //---- STEP LENGTH IS NOT TOO LONG. -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp: dAlpha = MIN (dAlpha, dmax / dPInf); -min_hftn.cpp: dAlpha = MIN (dAlpha, extra_max[m] / dPInf); -min_hftn.cpp: //---- IF THE MAXIMUM DISTANCE THAT THE GLOBAL BOX CONSTRAINT WILL -min_hftn.cpp: //---- ALLOW IS SMALLER THAN THE PROPOSED DISTANCE, THEN THE STEP -min_hftn.cpp: //---- IS TOO LONG. PROPOSED DISTANCE IS ESTIMATED BY |P|_INF. -min_hftn.cpp: //---- STEP LENGTH IS NOT TOO LONG. -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp: //---- SOLVE A QUADRATIC EQUATION FOR TAU. -min_hftn.cpp: //---- THE COEFFICIENTS ARE SUCH THAT THERE ARE ALWAYS TWO REAL ROOTS, -min_hftn.cpp: //---- ONE POSITIVE AND ONE NEGATIVE. -min_hftn.cpp: //---- CHECK FOR ERRONEOUS DATA. -min_hftn.cpp: dDiscr = MAX (0.0, dDiscr); //-- SHOULD NEVER BE NEGATIVE -min_hftn.cpp: double dRootPos = (-dPD + dDiscr) / dDD; -min_hftn.cpp: double dRootNeg = (-dPD - dDiscr) / dDD; -min_hftn.cpp: //---- EVALUATE THE CG OBJECTIVE FUNCTION FOR EACH ROOT. -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp: //---- COMPUTE THE MAGNITUDE OF THE DIRECTION VECTOR: |p|_2. -min_hftn.cpp: //---- IF THE STEP IS TOO SMALL, RETURN ZERO FOR THE DERIVATIVE. -min_hftn.cpp: //---- FORWARD DIFFERENCES ARE LESS ACCURATE THAN CENTRAL DIFFERENCES, -min_hftn.cpp: //---- BUT REQUIRE ONLY 2 ENERGY+FORCE EVALUATIONS VERSUS 3 EVALUATIONS. -min_hftn.cpp: //---- STORAGE REQUIREMENTS ARE THE SAME. -min_hftn.cpp: //---- EQUATION IS FROM THE OLD LAMMPS VERSION, SAND98-8201. -min_hftn.cpp: double dEps = 2.0 * sqrt (1000.0 * MACHINE_EPS) / dDirNorm2; -min_hftn.cpp: //---- SAVE A COPY OF x. -min_hftn.cpp: //---- EVALUATE FORCES AT x + eps*p. -min_hftn.cpp: //---- STORE THE FORCE IN DIF2. -min_hftn.cpp: //---- MOVE BACK TO x AND EVALUATE FORCES. -min_hftn.cpp: //---- COMPUTE THE DIFFERENCE VECTOR: [grad(x + eps*p) - grad(x)] / eps. -min_hftn.cpp: //---- REMEMBER THAT FORCES = -GRADIENT. -min_hftn.cpp: _daAVectors[nIxResult][i] = (fvec[i] - _daAVectors[VEC_DIF2][i]) / dEps; -min_hftn.cpp: iAtom[i] = (fextra_atom[m][i] - d2Atom[i]) / dEps; -min_hftn.cpp: = (fextra[i] - _daExtraGlobal[VEC_DIF2][i]) / dEps; -min_hftn.cpp: else { //-- bUseForwardDiffs == false -min_hftn.cpp: //---- EQUATION IS FROM THE OLD LAMMPS VERSION, SAND98-8201. -min_hftn.cpp: double dEps = pow (3000.0 * MACHINE_EPS, 0.33333333) / dDirNorm2; -min_hftn.cpp: //---- SAVE A COPY OF x. -min_hftn.cpp: //---- EVALUATE FORCES AT x + eps*p. -min_hftn.cpp: //---- STORE THE FORCE IN DIF2. -min_hftn.cpp: //---- EVALUATE FORCES AT x - eps*p. -min_hftn.cpp: //---- COMPUTE THE DIFFERENCE VECTOR: -min_hftn.cpp: //---- [grad(x + eps*p) - grad(x - eps*p)] / 2*eps. -min_hftn.cpp: //---- REMEMBER THAT FORCES = -GRADIENT. -min_hftn.cpp: iGlobal[i] = (fextra[i] - d2Global[i]) / (2.0 + dEps); -min_hftn.cpp: (fvec[i] - _daAVectors[VEC_DIF2][i]) / (2.0 * dEps); -min_hftn.cpp: iAtom[i] = (fatom[i] - d2Atom[i]) / (2.0 + dEps); -min_hftn.cpp: //---- EVALUATE FORCES AT x. -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -min_hftn.cpp:/* ---------------------------------------------------------------------- -min_hftn.cpp:------------------------------------------------------------------------- */ -minimize.cpp:/* ---------------------------------------------------------------------- -minimize.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -minimize.cpp: http://lammps.sandia.gov, Sandia National Laboratories -minimize.cpp:------------------------------------------------------------------------- */ -minimize.cpp:/* ---------------------------------------------------------------------- */ -minimize.cpp:/* ---------------------------------------------------------------------- */ -minimize.cpp: // ignore minimize command, if walltime limit was already reached -min_linesearch.cpp:/* ---------------------------------------------------------------------- -min_linesearch.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -min_linesearch.cpp: http://lammps.sandia.gov, Sandia National Laboratories -min_linesearch.cpp:------------------------------------------------------------------------- */ -min_linesearch.cpp:/* ---------------------------------------------------------------------- -min_linesearch.cpp: JR Shewchuk, http://www-2.cs.cmu.edu/~jrs/jrspapers.html#cg -min_linesearch.cpp:------------------------------------------------------------------------- */ -min_linesearch.cpp:// ALPHA_MAX = max alpha allowed to avoid long backtracks -min_linesearch.cpp:// ALPHA_REDUCE = reduction ratio, should be in range [0.5,1) -min_linesearch.cpp:// BACKTRACK_SLOPE, should be in range (0,0.5] -min_linesearch.cpp:// QUADRATIC_TOL = tolerance on alpha0, should be in range [0.1,1) -min_linesearch.cpp:// EMACH = machine accuracy limit of energy changes (1.0e-8) -min_linesearch.cpp:// EPS_QUAD = tolerance for quadratic projection -min_linesearch.cpp://#define EMACH 1.0e-8 -min_linesearch.cpp:/* ---------------------------------------------------------------------- */ -min_linesearch.cpp:/* ---------------------------------------------------------------------- */ -min_linesearch.cpp:/* ---------------------------------------------------------------------- */ -min_linesearch.cpp:/* ---------------------------------------------------------------------- */ -min_linesearch.cpp: // memory for x0,g,h for atomic dof -min_linesearch.cpp: // memory for g,h for extra global dof, fix stores x0 -min_linesearch.cpp: // memory for x0,g,h for extra per-atom dof -min_linesearch.cpp:/* ---------------------------------------------------------------------- -min_linesearch.cpp:------------------------------------------------------------------------- */ -min_linesearch.cpp: // atomic dof -min_linesearch.cpp: // extra per-atom dof -min_linesearch.cpp:/* ---------------------------------------------------------------------- -min_linesearch.cpp: update neval counter of eng/force function evaluations -min_linesearch.cpp:------------------------------------------------------------------------- */ -min_linesearch.cpp:/* ---------------------------------------------------------------------- -min_linesearch.cpp:------------------------------------------------------------------------- */ -min_linesearch.cpp: // fdothall = projection of search dir along downhill gradient -min_linesearch.cpp: // if search direction is not downhill, exit with error -min_linesearch.cpp: if (output->thermo->normflag) fdothall /= atom->natoms; -min_linesearch.cpp: // set alpha so no dof is changed by more than max allowed amount -min_linesearch.cpp: // for atom coords, max amount = dmax -min_linesearch.cpp: // for extra per-atom dof, max amount = extra_max[] -min_linesearch.cpp: // for extra global dof, max amount is set by fix -min_linesearch.cpp: // also insure alpha <= ALPHA_MAX -min_linesearch.cpp: // else will have to backtrack from huge value when forces are tiny -min_linesearch.cpp: // if all search dir components are already 0.0, exit with error -min_linesearch.cpp: alpha = MIN(ALPHA_MAX,dmax/hmaxall); -min_linesearch.cpp: alpha = MIN(alpha,extra_max[m]/hmax); -min_linesearch.cpp: // store box and values of all dof at start of linesearch -min_linesearch.cpp: // // important diagnostic: test the gradient against energy -min_linesearch.cpp: // double etmp; -min_linesearch.cpp: // double alphatmp = alpha*1.0e-4; -min_linesearch.cpp: // etmp = alpha_step(alphatmp,1); -min_linesearch.cpp: // printf("alpha = %g dele = %g dele_force = %g err = %g\n", -min_linesearch.cpp: // alphatmp,etmp-eoriginal,-alphatmp*fdothall, -min_linesearch.cpp: // etmp-eoriginal+alphatmp*fdothall); -min_linesearch.cpp: // alpha_step(0.0,1); -min_linesearch.cpp: // backtrack with alpha until energy decrease is sufficient -min_linesearch.cpp: // if energy change is better than ideal, exit with success -min_linesearch.cpp: // reduce alpha -min_linesearch.cpp: // backtracked too much -min_linesearch.cpp: // reset to starting point -min_linesearch.cpp: // if de is positive, exit with error -min_linesearch.cpp: // if de is negative, exit with ETOL -min_linesearch.cpp:/* ---------------------------------------------------------------------- -min_linesearch.cpp: // linemin: quadratic line search (adapted from Dennis and Schnabel) -min_linesearch.cpp: // The objective function is approximated by a quadratic -min_linesearch.cpp: // function in alpha, for sufficiently small alpha. -min_linesearch.cpp: // This idea is the same as that used in the well-known secant -min_linesearch.cpp: // method. However, since the change in the objective function -min_linesearch.cpp: // (difference of two finite numbers) is not known as accurately -min_linesearch.cpp: // as the gradient (which is close to zero), all the expressions -min_linesearch.cpp: // are written in terms of gradients. In this way, we can converge -min_linesearch.cpp: // the LAMMPS forces much closer to zero. -min_linesearch.cpp: // -min_linesearch.cpp: // We know E,Eprev,fh,fhprev. The Taylor series about alpha_prev -min_linesearch.cpp: // truncated at the quadratic term is: -min_linesearch.cpp: // -min_linesearch.cpp: // E = Eprev - del_alpha*fhprev + (1/2)del_alpha^2*Hprev -min_linesearch.cpp: // -min_linesearch.cpp: // and -min_linesearch.cpp: // -min_linesearch.cpp: // fh = fhprev - del_alpha*Hprev -min_linesearch.cpp: // -min_linesearch.cpp: // where del_alpha = alpha-alpha_prev -min_linesearch.cpp: // -min_linesearch.cpp: // We solve these two equations for Hprev and E=Esolve, giving: -min_linesearch.cpp: // -min_linesearch.cpp: // Esolve = Eprev - del_alpha*(f+fprev)/2 -min_linesearch.cpp: // -min_linesearch.cpp: // We define relerr to be: -min_linesearch.cpp: // -min_linesearch.cpp: // relerr = |(Esolve-E)/Eprev| -min_linesearch.cpp: // = |1.0 - (0.5*del_alpha*(f+fprev)+E)/Eprev| -min_linesearch.cpp: // -min_linesearch.cpp: // If this is accurate to within a reasonable tolerance, then -min_linesearch.cpp: // we go ahead and use a secant step to fh = 0: -min_linesearch.cpp: // -min_linesearch.cpp: // alpha0 = alpha - (alpha-alphaprev)*fh/delfh; -min_linesearch.cpp: // -min_linesearch.cpp:------------------------------------------------------------------------- */ -min_linesearch.cpp: // fdothall = projection of search dir along downhill gradient -min_linesearch.cpp: // if search direction is not downhill, exit with error -min_linesearch.cpp: if (output->thermo->normflag) fdothall /= atom->natoms; -min_linesearch.cpp: // set alphamax so no dof is changed by more than max allowed amount -min_linesearch.cpp: // for atom coords, max amount = dmax -min_linesearch.cpp: // for extra per-atom dof, max amount = extra_max[] -min_linesearch.cpp: // for extra global dof, max amount is set by fix -min_linesearch.cpp: // also insure alphamax <= ALPHA_MAX -min_linesearch.cpp: // else will have to backtrack from huge value when forces are tiny -min_linesearch.cpp: // if all search dir components are already 0.0, exit with error -min_linesearch.cpp: alphamax = MIN(ALPHA_MAX,dmax/hmaxall); -min_linesearch.cpp: alphamax = MIN(alphamax,extra_max[m]/hmax); -min_linesearch.cpp: // store box and values of all dof at start of linesearch -min_linesearch.cpp: // backtrack with alpha until energy decrease is sufficient -min_linesearch.cpp: // or until get to small energy change, then perform quadratic projection -min_linesearch.cpp: // // important diagnostic: test the gradient against energy -min_linesearch.cpp: // double etmp; -min_linesearch.cpp: // double alphatmp = alphamax*1.0e-4; -min_linesearch.cpp: // etmp = alpha_step(alphatmp,1); -min_linesearch.cpp: // printf("alpha = %g dele = %g dele_force = %g err = %g\n", -min_linesearch.cpp: // alphatmp,etmp-eoriginal,-alphatmp*fdothall, -min_linesearch.cpp: // etmp-eoriginal+alphatmp*fdothall); -min_linesearch.cpp: // alpha_step(0.0,1); -min_linesearch.cpp: // compute new fh, alpha, delfh -min_linesearch.cpp: ff /= atom->natoms; -min_linesearch.cpp: fh /= atom->natoms; -min_linesearch.cpp: // if fh or delfh is epsilon, reset to starting point, exit with error -min_linesearch.cpp: // Check if ready for quadratic projection, equivalent to secant method -min_linesearch.cpp: // alpha0 = projected alpha -min_linesearch.cpp: relerr = fabs(1.0-(0.5*(alpha-alphaprev)*(fh+fhprev)+ecurrent)/engprev); -min_linesearch.cpp: alpha0 = alpha - (alpha-alphaprev)*fh/delfh; -min_linesearch.cpp: // if backtracking energy change is better than ideal, exit with success -min_linesearch.cpp: // save previous state -min_linesearch.cpp: // reduce alpha -min_linesearch.cpp: // backtracked all the way to 0.0 -min_linesearch.cpp: // reset to starting point, exit with error -min_linesearch.cpp:/* ---------------------------------------------------------------------- -min_linesearch.cpp: // also account for nextra atom & global -min_linesearch.cpp: alpha_max <= dmax/hmaxall -min_linesearch.cpp: // try decreasing the energy to 1/10 of initial -min_linesearch.cpp: alpha_init = 0.1*fabs(eoriginal)/fhCurr; -min_linesearch.cpp: // initial alpha is smaller than alpha_max -min_linesearch.cpp: // we have done enough in the search space -min_linesearch.cpp: // ZERO_ENERGY = 1e-12, is max allowed energy increase -min_linesearch.cpp: // GRAD_TOL = 0.1 -min_linesearch.cpp: if ( (not backtrack) && (fabs(fhCurr/fh0) <= GRAD_TOL) ): -min_linesearch.cpp: // forces sufficiently reduced without energy increase -min_linesearch.cpp: // projected force changed sign but didn't become small enough -min_linesearch.cpp: // forces along search direction changed sign -min_linesearch.cpp: // force didn't change sign but only energy increased, -min_linesearch.cpp: // we overshot a minimum which is very close to a -min_linesearch.cpp: // maximum (or there is an inflection point) -min_linesearch.cpp: // New alpha_del should be much smaller -min_linesearch.cpp: // ALPHA_FACT = 0.1 -min_linesearch.cpp: // Check to see if new 'alpha_del' isn't too small -min_linesearch.cpp: // continue the loop with a new alpha_del -min_linesearch.cpp: ---------------------------------------------------------------------- */ -min_linesearch.cpp: // projection of: force on itself, current force on search direction, -min_linesearch.cpp: // previous force on search direction, initial force on search direction -min_linesearch.cpp: // current energy, previous energy -min_linesearch.cpp: // hardcoded constants -min_linesearch.cpp: // factor by which alpha is reduced when backtracking -min_linesearch.cpp: // maximum amount by which we'll permit energy increase -min_linesearch.cpp: // fraction to which we want to reduce the directional derivative -min_linesearch.cpp: // largest alpha increment which will trigger a failed_linesearch -min_linesearch.cpp: // fdothall = projection of search dir along downhill gradient -min_linesearch.cpp: // if search direction is not downhill, exit with error -min_linesearch.cpp: if (output->thermo->normflag) fdothall /= atom->natoms; -min_linesearch.cpp: // set alpha so no dof is changed by more than max allowed amount -min_linesearch.cpp: // for atom coords, max amount = dmax -min_linesearch.cpp: // for extra per-atom dof, max amount = extra_max[] -min_linesearch.cpp: // for extra global dof, max amount is set by fix -min_linesearch.cpp: // also insure alpha <= ALPHA_MAX else will have -min_linesearch.cpp: // to backtrack from huge value when forces are tiny -min_linesearch.cpp: // if all search dir components are already 0.0, exit with error -min_linesearch.cpp: alpha_max = dmax/hmaxall; -min_linesearch.cpp: alpha_max = MIN(alpha_max,extra_max[m]/hmax); -min_linesearch.cpp: // store box and values of all dof at start of linesearch -min_linesearch.cpp: // initialize important variables before main linesearch loop -min_linesearch.cpp: // stores energy difference due to the current move -min_linesearch.cpp: // choosing the initial alpha that we'll use -min_linesearch.cpp: // rough estimate that'll decrease energy to 1/10 -min_linesearch.cpp: alpha_init = 0.1*fabs(eoriginal)/fdothall; -min_linesearch.cpp: // initialize aplha to 0.0 -min_linesearch.cpp: // compute increment to alpha, ensure that we -min_linesearch.cpp: // don't take the largest allowed alpha -min_linesearch.cpp: // first alpha that will actually apply -min_linesearch.cpp: // main linesearch loop -min_linesearch.cpp: // apply the increment to alpha, but first -min_linesearch.cpp: // check whether we are still in allowed search space -min_linesearch.cpp: // undo the increment -min_linesearch.cpp: // exit linesearch with success: have done -min_linesearch.cpp: // enough in allowed search space -min_linesearch.cpp: // move the system -min_linesearch.cpp: // '1' updates coordinates of atoms which cross PBC -min_linesearch.cpp: // compute the new directional derivative and also f_dot_f -min_linesearch.cpp: // energy change -min_linesearch.cpp: // if the function value increases measurably, -min_linesearch.cpp: // then we have to reduce alpha -min_linesearch.cpp: // check if the directional derivative has sufficiently decreased -min_linesearch.cpp: // NOTE: the fabs is essential here -min_linesearch.cpp: if ((!backtrack) && (fabs(fhCurr/fhoriginal) <= GRAD_TOL)) { -min_linesearch.cpp: // we are done -min_linesearch.cpp: // check if the directional derivative changed sign -min_linesearch.cpp: // but it's not small: we overshot the minima -- BACKTRACK -min_linesearch.cpp: // backtrack by undoing step and choosing a new alpha -min_linesearch.cpp: // move back -min_linesearch.cpp: // choose new alpha -min_linesearch.cpp: // if the force changed sign, linearize force and -min_linesearch.cpp: // solve for new alpha_del -min_linesearch.cpp: alpha_del *= fhPrev/(fhPrev - fhCurr); -min_linesearch.cpp: // force didn't change sign but only energy increased, -min_linesearch.cpp: // we overshot a minimum which is very close to a maxima -min_linesearch.cpp: // (or there is an inflection point) -min_linesearch.cpp: // new alpha_del should be much smaller -min_linesearch.cpp: // since we moved back ... -min_linesearch.cpp: // if new move is too small then we have failed; -min_linesearch.cpp: // exit with 'failed_linesearch' -min_linesearch.cpp: // undo all line minization moves -min_linesearch.cpp: // get a new alpha by linearizing force and start over -min_linesearch.cpp: // avoids problems near an energy inflection point -min_linesearch.cpp: boostFactor = fhCurr/(fhPrev - fhCurr); -min_linesearch.cpp: // don't want to boost too much -min_linesearch.cpp:/* ---------------------------------------------------------------------- */ -min_linesearch.cpp: // reset to starting point -min_linesearch.cpp: // step forward along h -min_linesearch.cpp: // compute and return new energy -min_linesearch.cpp:/* ---------------------------------------------------------------------- */ -min_linesearch.cpp:// compute projection of force on: itself and the search direction -min_linesearch.cpp: // compute new fh, alpha, delfh -min_linesearch.cpp: ff /= atom->natoms; -min_linesearch.cpp: fh /= atom->natoms; -min_quickmin.cpp:/* ---------------------------------------------------------------------- -min_quickmin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -min_quickmin.cpp: http://lammps.sandia.gov, Sandia National Laboratories -min_quickmin.cpp:------------------------------------------------------------------------- */ -min_quickmin.cpp:// EPS_ENERGY = minimum normalization for energy tolerance -min_quickmin.cpp:/* ---------------------------------------------------------------------- */ -min_quickmin.cpp:/* ---------------------------------------------------------------------- */ -min_quickmin.cpp:/* ---------------------------------------------------------------------- */ -min_quickmin.cpp:/* ---------------------------------------------------------------------- -min_quickmin.cpp:------------------------------------------------------------------------- */ -min_quickmin.cpp: // atomic dof -min_quickmin.cpp:/* ---------------------------------------------------------------------- -min_quickmin.cpp:------------------------------------------------------------------------- */ -min_quickmin.cpp: // zero velocity if anti-parallel to force -min_quickmin.cpp: // else project velocity in direction of force -min_quickmin.cpp: // sum vdotf over replicas, if necessary -min_quickmin.cpp: // this communicator would be invalid for multiprocess replicas -min_quickmin.cpp: // sum fdotf over replicas, if necessary -min_quickmin.cpp: // this communicator would be invalid for multiprocess replicas -min_quickmin.cpp: else scale = vdotfall/fdotfall; -min_quickmin.cpp: // limit timestep so no particle moves further than dmax -min_quickmin.cpp: if (dtvone*vmax > dmax) dtvone = dmax/vmax; -min_quickmin.cpp: // min dtv over replicas, if necessary -min_quickmin.cpp: // this communicator would be invalid for multiprocess replicas -min_quickmin.cpp: // Euler integration step -min_quickmin.cpp: dtfm = dtf / rmass[i]; -min_quickmin.cpp: dtfm = dtf / mass[type[i]]; -min_quickmin.cpp: // energy tolerance criterion -min_quickmin.cpp: // only check after DELAYSTEP elapsed since velocties reset to 0 -min_quickmin.cpp: // sync across replicas if running multi-replica minimization -min_quickmin.cpp: // force tolerance criterion -min_quickmin.cpp: // sync across replicas if running multi-replica minimization -min_quickmin.cpp: // output for thermo, dump, restart files -min_sd.cpp:/* ---------------------------------------------------------------------- -min_sd.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -min_sd.cpp: http://lammps.sandia.gov, Sandia National Laboratories -min_sd.cpp:------------------------------------------------------------------------- */ -min_sd.cpp:// EPS_ENERGY = minimum normalization for energy tolerance -min_sd.cpp:/* ---------------------------------------------------------------------- */ -min_sd.cpp:/* ---------------------------------------------------------------------- -min_sd.cpp:------------------------------------------------------------------------- */ -min_sd.cpp: // initialize working vectors -min_sd.cpp: // line minimization along h from current position x -min_sd.cpp: // h = downhill gradient direction -min_sd.cpp: // function evaluation criterion -min_sd.cpp: // energy tolerance criterion -min_sd.cpp: // force tolerance criterion -min_sd.cpp: // set new search direction h to f = -Grad(x) -min_sd.cpp: // output for thermo, dump, restart files -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -modify.cpp: http://lammps.sandia.gov, Sandia National Laboratories -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:#define NEXCEPT 7 // change when add to exceptions in add_fix() -modify.cpp:/* ---------------------------------------------------------------------- */ -modify.cpp: // fill map with fixes listed in style_fix.h -modify.cpp: // fill map with computes listed in style_compute.h -modify.cpp:/* ---------------------------------------------------------------------- */ -modify.cpp: // delete all fixes -modify.cpp: // do it via delete_fix() so callbacks in Atom are also updated correctly -modify.cpp: // delete all computes -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp: // delete storage of restart info since it is not valid after 1st run -modify.cpp: // create lists of fixes to call at each stage of run -modify.cpp: // init each fix -modify.cpp: // not sure if now needs to come before compute init -modify.cpp: // used to b/c temperature computes called fix->dof() in their init, -modify.cpp: // and fix rigid required its own init before its dof() could be called, -modify.cpp: // but computes now do their DOF in setup() -modify.cpp: // set global flag if any fix has its restart_pbc flag set -modify.cpp: // create list of computes that store invocation times -modify.cpp: // init each compute -modify.cpp: // set invoked_scalar,vector,etc to -1 to force new run to re-compute them -modify.cpp: // add initial timestep to all computes that store invocation times -modify.cpp: // since any of them may be invoked by initial thermo -modify.cpp: // do not clear out invocation times stored within a compute, -modify.cpp: // b/c some may be holdovers from previous run, like for ave fixes -modify.cpp: // error if any fix or compute is using a dynamic group when not allowed -modify.cpp: // warn if any particle is time integrated more than once -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp: // compute setup needs to come before fix setup -modify.cpp: // b/c NH fixes need DOF of temperature computes -modify.cpp: // fix group setup() is special case since populates a dynamic group -modify.cpp: // needs to be done before temperature compute setup -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp: called by compute pe/atom -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp: minimizer energy/force evaluation, only for relevant fixes -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp: // cannot define fix before box exists unless style is in exception list -modify.cpp: // don't like this way of checking for exceptions by adding fixes to list, -modify.cpp: // but can't think of better way -modify.cpp: // too late if instantiate fix, then check flag set in fix constructor, -modify.cpp: // since some fixes access domain settings in their constructor -modify.cpp: // MUST change NEXCEPT above when add new fix to this list -modify.cpp: {"GPU","OMP","INTEL","property/atom","cmap","cmap3","rx"}; -modify.cpp: // check group ID -modify.cpp: // if fix ID exists: -modify.cpp: // set newflag = 0 so create new fix in same location in fix list -modify.cpp: // error if new style does not match old style -modify.cpp: // since can't replace it (all when-to-invoke ptrs would be invalid) -modify.cpp: // warn if new group != old group -modify.cpp: // delete old fix, but do not call update_callback(), -modify.cpp: // since will replace this fix and thus other fix locs will not change -modify.cpp: // set ptr to NULL in case new fix scans list of fixes, -modify.cpp: // e.g. scan will occur in add_callback() if called by new fix -modify.cpp: // if fix ID does not exist: -modify.cpp: // set newflag = 1 so create new fix -modify.cpp: // extend fix and fmask lists as necessary -modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix); -modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix2); -modify.cpp: // create the Fix -modify.cpp: // try first with suffix appended -modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix); -modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix2); -modify.cpp: // check if Fix is in restart_global list -modify.cpp: // if yes, pass state info to the Fix so it can reset itself -modify.cpp: // check if Fix is in restart_peratom list -modify.cpp: // if yes, loop over atoms so they can extract info from atom->extra array -modify.cpp: // increment nfix (if new) -modify.cpp: // set fix mask values -modify.cpp: // post_constructor() allows new fix to create other fixes -modify.cpp: // nfix increment comes first so that recursive call to add_fix within -modify.cpp: // post_constructor() will see updated nfix -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp: // lookup Fix ID -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp: // move other Fixes and fmask down in list one slot -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp: // error check -modify.cpp: // extend Compute list if necessary -modify.cpp: // create the Compute -modify.cpp: // try first with suffix appended -modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix); -modify.cpp: sprintf(estyle,"%s/%s",arg[2],lmp->suffix2); -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp: // lookup Compute ID -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp: // move other Computes down in list one slot -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp: // nfix_restart_global = # of restart entries with global state info -modify.cpp: // allocate space for each entry -modify.cpp: // read each entry and Bcast to all procs -modify.cpp: // each entry has id string, style string, chunk of state data -modify.cpp: // nfix_restart_peratom = # of restart entries with peratom info -modify.cpp: // allocate space for each entry -modify.cpp: // read each entry and Bcast to all procs -modify.cpp: // each entry has id string, style string, maxsize of one atom's data -modify.cpp: // set index = which set of extra data this fix represents -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -modify.cpp:/* ---------------------------------------------------------------------- -modify.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -molecule.cpp: http://lammps.sandia.gov, Sandia National Laboratories -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:#define SINERTIA 0.4 // moment of inertia prefactor for sphere -molecule.cpp:/* ---------------------------------------------------------------------- */ -molecule.cpp: // parse args until reach unknown arg (next file) -molecule.cpp: // last molecule if have scanned all args -molecule.cpp: // initialize all fields to empty -molecule.cpp: // scan file for sizes of all fields and allocate them -molecule.cpp: // read file again to populate all fields -molecule.cpp: // stats -molecule.cpp:/* ---------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: center[0] /= natoms; -molecule.cpp: center[1] /= natoms; -molecule.cpp: center[2] /= natoms; -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: com[0] /= masstotal; -molecule.cpp: com[1] /= masstotal; -molecule.cpp: com[2] /= masstotal; -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: // diagonalize inertia tensor for each body via Jacobi rotations -molecule.cpp: // inertia = 3 eigenvalues = principal moments of inertia -molecule.cpp: // evectors and exzy = 3 evectors = principal axes of rigid body -molecule.cpp: // if any principal moment < scaled EPSILON, set to 0.0 -molecule.cpp: // enforce 3 evectors as a right-handed coordinate system -molecule.cpp: // flip 3rd vector if needed -molecule.cpp: // create quaternion -molecule.cpp: // compute displacements in body frame defined by quat -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: // skip 1st line of file -molecule.cpp: // read header lines -molecule.cpp: // skip blank lines or lines that start with "#" -molecule.cpp: // stop when read an unrecognized line -molecule.cpp: // trim anything from '#' onward -molecule.cpp: // if line is blank, continue -molecule.cpp: // search line for header keywords and set corresponding variable -molecule.cpp: // error checks -molecule.cpp: // count = vector for tallying bonds,angles,etc per atom -molecule.cpp: // grab keyword and skip next line -molecule.cpp: // loop over sections of molecule file -molecule.cpp: // clean up -molecule.cpp: // error check -molecule.cpp: // auto-generate special bonds if needed and not in file -molecule.cpp: // set maxspecial on first pass, so allocate() has a size -molecule.cpp: // body particle must have natom = 1 -molecule.cpp: // set radius by having body class compute its own radius -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp: if flag = 0, just count bonds/atom -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: // bond_per_atom = max of count vector -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp: if flag = 0, just count angles/atom -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: // angle_per_atom = max of count vector -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp: if flag = 0, just count dihedrals/atom -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: // dihedral_per_atom = max of count vector -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp: if flag = 0, just count impropers/atom -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: // improper_per_atom = max of count vector -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: // 1-2 neighbors -molecule.cpp: // 1-3 neighbors with no duplicates -molecule.cpp: // 1-4 neighbors with no duplicates -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp: pflag = 0/1 for integer/double params -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: // check per-atom attributes of molecule -molecule.cpp: // warn if not a match -molecule.cpp: // for all atom styles, check nbondtype,etc -molecule.cpp: // for molecular atom styles, check bond_per_atom,etc + maxspecial -molecule.cpp: // do not check for atom style template, since nothing stored per atom -molecule.cpp: error->all(FLERR,"Molecule topology/atom exceeds system topology/atom"); -molecule.cpp: // warn if molecule topology defined but no special settings -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: // always allocate num_bond,num_angle,etc and special+nspecial -molecule.cpp: // even if not in molecule file, initialize to 0 -molecule.cpp: // this is so methods that use these arrays don't have to check they exist -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp: // read upto non-blank line plus 1 following line -molecule.cpp: // eof is set to 1 if any read hits end-of-file -molecule.cpp: // if eof, set keyword empty and return -molecule.cpp: // bcast keyword line to all procs -molecule.cpp: // copy non-whitespace portion of line into keyword -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* ---------------------------------------------------------------------- -molecule.cpp:------------------------------------------------------------------------- */ -molecule.cpp:/* -molecule.cpp:*/ -nbin.cpp:/* ---------------------------------------------------------------------- -nbin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nbin.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nbin.cpp:------------------------------------------------------------------------- */ -nbin.cpp:/* ---------------------------------------------------------------------- */ -nbin.cpp: // geometry settings -nbin.cpp:/* ---------------------------------------------------------------------- */ -nbin.cpp:/* ---------------------------------------------------------------------- */ -nbin.cpp:/* ---------------------------------------------------------------------- -nbin.cpp:------------------------------------------------------------------------- */ -nbin.cpp: // overwrite Neighbor cutoff with custom value set by requestor -nbin.cpp: // only works for style = BIN (checked by Neighbor class) -nbin.cpp:/* ---------------------------------------------------------------------- -nbin.cpp:------------------------------------------------------------------------- */ -nbin.cpp: // binhead = per-bin vector, mbins in length -nbin.cpp: // add 1 bin for USER-INTEL package -nbin.cpp: // bins = per-atom vector -nbin.cpp:/* ---------------------------------------------------------------------- -nbin.cpp: take special care to insure ghosts are in correct bins even w/ roundoff -nbin.cpp:------------------------------------------------------------------------- */ -nbin.cpp:/* ---------------------------------------------------------------------- */ -nbin_standard.cpp:/* ---------------------------------------------------------------------- -nbin_standard.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nbin_standard.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nbin_standard.cpp:------------------------------------------------------------------------- */ -nbin_standard.cpp:enum{NSQ,BIN,MULTI}; // also in Neighbor -nbin_standard.cpp:/* ---------------------------------------------------------------------- */ -nbin_standard.cpp:/* ---------------------------------------------------------------------- -nbin_standard.cpp: binsize = 1/2 of cutoff is roughly optimal -nbin_standard.cpp:------------------------------------------------------------------------- */ -nbin_standard.cpp: // bbox = size of bbox of entire domain -nbin_standard.cpp: // bsubbox lo/hi = bounding box of my subdomain extended by comm->cutghost -nbin_standard.cpp: // for triclinic: -nbin_standard.cpp: // bbox bounds all 8 corners of tilted box -nbin_standard.cpp: // subdomain is in lamda coords -nbin_standard.cpp: // include dimension-dependent extension via comm->cutghost -nbin_standard.cpp: // domain->bbox() converts lamda extent to box coords and computes bbox -nbin_standard.cpp: // optimal bin size is roughly 1/2 the cutoff -nbin_standard.cpp: // for BIN style, binsize = 1/2 of max neighbor cutoff -nbin_standard.cpp: // for MULTI style, binsize = 1/2 of min neighbor cutoff -nbin_standard.cpp: // special case of all cutoffs = 0.0, binsize = box size -nbin_standard.cpp: double binsizeinv = 1.0/binsize_optimal; -nbin_standard.cpp: // test for too many global bins in any dimension due to huge global domain -nbin_standard.cpp: // create actual bins -nbin_standard.cpp: // always have one bin even if cutoff > bbox -nbin_standard.cpp: // for 2d, nbinz = 1 -nbin_standard.cpp: // compute actual bin size for nbins to fit into box exactly -nbin_standard.cpp: // error if actual bin size << cutoff, since will create a zillion bins -nbin_standard.cpp: // this happens when nbin = 1 and box size << cutoff -nbin_standard.cpp: // typically due to non-periodic, flat system in a particular dim -nbin_standard.cpp: // in that extreme case, should use NSQ not BIN neighbor style -nbin_standard.cpp: binsizex = bbox[0]/nbinx; -nbin_standard.cpp: binsizey = bbox[1]/nbiny; -nbin_standard.cpp: binsizez = bbox[2]/nbinz; -nbin_standard.cpp: bininvx = 1.0 / binsizex; -nbin_standard.cpp: bininvy = 1.0 / binsizey; -nbin_standard.cpp: bininvz = 1.0 / binsizez; -nbin_standard.cpp: // mbinlo/hi = lowest and highest global bins my ghost atoms could be in -nbin_standard.cpp: // coord = lowest and highest values of coords for my ghost atoms -nbin_standard.cpp: // static_cast(-1.5) = -1, so subract additional -1 -nbin_standard.cpp: // add in SMALL for round-off safety -nbin_standard.cpp: // extend bins by 1 to insure stencil extent is included -nbin_standard.cpp: // for 2d, only 1 bin in z -nbin_standard.cpp:/* ---------------------------------------------------------------------- -nbin_standard.cpp:------------------------------------------------------------------------- */ -nbin_standard.cpp: // bin in reverse order so linked list will be in forward order -nbin_standard.cpp: // also puts ghost atoms at end of list, which is necessary -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -neighbor.cpp: http://lammps.sandia.gov, Sandia National Laboratories -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:enum{NSQ,BIN,MULTI}; // also in NBin, NeighList, NStencil -neighbor.cpp://#define NEIGH_LIST_DEBUG 1 -neighbor.cpp:/* ---------------------------------------------------------------------- */ -neighbor.cpp: // pairwise neighbor lists and associated data structs -neighbor.cpp: // topology lists -neighbor.cpp: // coords at last neighboring -neighbor.cpp: // pair exclusion list info -neighbor.cpp: // Kokkos setting -neighbor.cpp:/* ---------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- */ -neighbor.cpp: // error check -neighbor.cpp: // ------------------------------------------------------------------ -neighbor.cpp: // settings -neighbor.cpp: // bbox lo/hi ptrs = bounding box of entire domain, stored by Domain -neighbor.cpp: // set neighbor cutoffs (force cutoff + skin) -neighbor.cpp: // trigger determines when atoms migrate and neighbor lists are rebuilt -neighbor.cpp: // needs to be non-zero for migration distance check -neighbor.cpp: // even if pair = NULL and no neighbor lists are used -neighbor.cpp: // cutneigh = force cutoff + skin if cutforce > 0, else cutneigh = 0 -neighbor.cpp: // cutneighghost = pair cutghost if it requests it, else same as cutneigh -neighbor.cpp: // rRESPA cutoffs -neighbor.cpp: // fixchecklist = other classes that can induce reneighboring in decide() -neighbor.cpp: // set special_flag for 1-2, 1-3, 1-4 neighbors -neighbor.cpp: // flag[0] is not used, flag[1] = 1-2, flag[2] = 1-3, flag[3] = 1-4 -neighbor.cpp: // flag = 0 if both LJ/Coulomb special values are 0.0 -neighbor.cpp: // flag = 1 if both LJ/Coulomb special values are 1.0 -neighbor.cpp: // flag = 2 otherwise or if KSpace solver is enabled -neighbor.cpp: // pairwise portion of KSpace solver uses all 1-2,1-3,1-4 neighbors -neighbor.cpp: // or selected Coulomb-approixmation pair styles require it -neighbor.cpp: if (force->kspace || force->pair_match("coul/wolf",0) || -neighbor.cpp: force->pair_match("coul/dsf",0) || force->pair_match("thole",0)) -neighbor.cpp: // maxwt = max multiplicative factor on atom indices stored in neigh list -neighbor.cpp: // ------------------------------------------------------------------ -neighbor.cpp: // xhold array -neighbor.cpp: // free if not needed for this run -neighbor.cpp: // first time allocation -neighbor.cpp: // ------------------------------------------------------------------ -neighbor.cpp: // exclusion lists -neighbor.cpp: // depend on type, group, molecule settings from neigh_modify -neighbor.cpp: // warn if exclusions used with KSpace solver -neighbor.cpp: // ------------------------------------------------------------------ -neighbor.cpp: // create pairwise lists -neighbor.cpp: // one-time call to init_styles() to scan style files and setup -neighbor.cpp: // init_pair() creates auxiliary classes: NBin, NStencil, NPair -neighbor.cpp: // invoke copy_neighbor_info() in Bin,Stencil,Pair classes -neighbor.cpp: // copied once per run in case any cutoff, exclusion, special info changed -neighbor.cpp: // can now delete requests so next run can make new ones -neighbor.cpp: // print_pairwise_info() made use of requests -neighbor.cpp: // set of NeighLists now stores all needed info -neighbor.cpp: // ------------------------------------------------------------------ -neighbor.cpp: // create topology lists -neighbor.cpp: // instantiated topo styles can change from run to run -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp: cannot do this in constructor, b/c too early to instantiate classes -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // extract info from NBin classes listed in style_nbin.h -neighbor.cpp: // extract info from NStencil classes listed in style_nstencil.h -neighbor.cpp: // extract info from NPair classes listed in style_npair.h -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // test if pairwise lists need to be re-created -neighbor.cpp: // no need to re-create if: -neighbor.cpp: // neigh style, triclinic, pgsize, oneatom have not changed -neighbor.cpp: // current requests = old requests -neighbor.cpp: // so just return: -neighbor.cpp: // delete requests so next run can make new ones -neighbor.cpp: // current set of NeighLists already stores all needed info -neighbor.cpp: // requests are compared via identical() before: -neighbor.cpp: // any requests are morphed using logic below -neighbor.cpp: // any requests are added below, e.g. as parents of pair hybrid skip lists -neighbor.cpp: // copy them via requests_new2old() BEFORE any changes made to requests -neighbor.cpp: // necessary b/c morphs can change requestor settings (see comment below) -neighbor.cpp: // delete old lists since creating new ones -neighbor.cpp: // morph requests in various ways -neighbor.cpp: // purpose is to avoid duplicate or inefficient builds -neighbor.cpp: // may add new requests if a needed request to derive from does not exist -neighbor.cpp: // methods: -neighbor.cpp: // (1) other = point history and rRESPA lists at their partner lists -neighbor.cpp: // (2) skip = create any new non-skip lists needed by pair hybrid skip lists -neighbor.cpp: // (3) granular = adjust parent and skip lists for granular onesided usage -neighbor.cpp: // (4) h/f = pair up any matching half/full lists -neighbor.cpp: // (5) copy = convert as many lists as possible to copy lists -neighbor.cpp: // order of morph methods matters: -neighbor.cpp: // (1) before (2), b/c (2) needs to know history partner pairings -neighbor.cpp: // (2) after (1), b/c (2) may also need to create new history lists -neighbor.cpp: // (3) after (2), b/c it adjusts lists created by (2) -neighbor.cpp: // (4) after (2) and (3), -neighbor.cpp: // b/c (2) may create new full lists, (3) may change them -neighbor.cpp: // (5) last, after all lists are finalized, so all possible copies found -neighbor.cpp: morph_granular(); // this method can change flags set by requestor -neighbor.cpp: // create new lists, one per request including added requests -neighbor.cpp: // wait to allocate initial pages until copy lists are detected -neighbor.cpp: // NOTE: can I allocate now, instead of down below? -neighbor.cpp: // allocate new lists -neighbor.cpp: // pass list ptr back to requestor (except for Command class) -neighbor.cpp: // only for original requests, not ones added by Neighbor class -neighbor.cpp: // invoke post_constructor() for all lists -neighbor.cpp: // copies info from requests to lists, sets ptrs to related lists -neighbor.cpp: // assign Bin,Stencil,Pair style to each list -neighbor.cpp: // instantiate unique Bin,Stencil classes in neigh_bin & neigh_stencil vecs -neighbor.cpp: // unique = only one of its style, or request unique flag set (custom cutoff) -neighbor.cpp: // instantiate one Pair class per list in neigh_pair vec -neighbor.cpp: // allocate initial pages for each list, except if copy flag set -neighbor.cpp: // allocate dnum vector of zeroes if set -neighbor.cpp: // first-time allocation of per-atom data for lists that are built and store -neighbor.cpp: // lists that are not built: granhistory, respa inner/middle (no neigh_pair) -neighbor.cpp: // lists that do not store: copy -neighbor.cpp: // use atom->nmax for both grow() args -neighbor.cpp: // i.e. grow first time to expanded size to avoid future reallocs -neighbor.cpp: // also Kokkos list initialization -neighbor.cpp: // plist = indices of perpetual NPair classes -neighbor.cpp: // perpetual = non-occasional, re-built at every reneighboring -neighbor.cpp: // slist = indices of perpetual NStencil classes -neighbor.cpp: // perpetual = used by any perpetual NPair class -neighbor.cpp: // reorder plist vector if necessary -neighbor.cpp: // relevant for lists that are derived from a parent list: -neighbor.cpp: // half-full,copy,skip -neighbor.cpp: // the child index must appear in plist after the parent index -neighbor.cpp: // swap two indices within plist when dependency is mis-ordered -neighbor.cpp: // start double loop check again whenever a swap is made -neighbor.cpp: // done when entire double loop test results in no swaps -neighbor.cpp: int tmp = plist[i]; // swap I,J indices -neighbor.cpp: // debug output -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // if history, point this list and partner list at each other -neighbor.cpp: // if respaouter, point all associated rRESPA lists at each other -neighbor.cpp: // if cut flag set by requestor, set unique flag -neighbor.cpp: // this forces Pair,Stencil,Bin styles to be instantiated separately -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // only processing skip lists -neighbor.cpp: // these lists are created other ways, no need for skipping -neighbor.cpp: // halffull list and its full parent may both skip, -neighbor.cpp: // but are checked to insure matching skip info -neighbor.cpp: // check all other lists -neighbor.cpp: // can only skip from a perpetual non-skip list -neighbor.cpp: // both lists must be half, or both full -neighbor.cpp: // both lists must be newton on, or both newton off -neighbor.cpp: // IJ newton = 1 for newton on, 2 for newton off -neighbor.cpp: // these flags must be same, -neighbor.cpp: // else 2 lists do not store same pairs -neighbor.cpp: // or their data structures are different -neighbor.cpp: // this includes custom cutoff set by requestor -neighbor.cpp: // no need to check respaouter b/c it stores same pairs -neighbor.cpp: // no need to check dnum b/c only set for history -neighbor.cpp: // NOTE: need check for 2 Kokkos flags? -neighbor.cpp: // 2 lists are a match -neighbor.cpp: // if matching list exists, point to it -neighbor.cpp: // else create a new identical list except non-skip -neighbor.cpp: // for new list, set neigh = 1, skip = 0, no skip vec/array, -neighbor.cpp: // copy unique flag (since copy_request() will not do it) -neighbor.cpp: // note: parents of skip lists do not have associated history list -neighbor.cpp: // b/c child skip lists store their own history info -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp: adjust newton/oneside parent settings if children require onesided skipping -neighbor.cpp: this is needed because line/gran and tri/gran pair styles -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // only examine NeighRequests added by morph_skip() -neighbor.cpp: // only those with size attribute for granular systems -neighbor.cpp: // check children of this list -neighbor.cpp: // only consider JRQ pair, size lists that skip from Irq list -neighbor.cpp: // onesided = -1 if no children -neighbor.cpp: // onesided = 0/1 = child granonesided value if same for all children -neighbor.cpp: // onesided = 2 if children have different granonesided values -neighbor.cpp: // if onesided = 2, parent has children with both granonesided = 0/1 -neighbor.cpp: // force parent newton off (newton = 2) to enable onesided skip by child -neighbor.cpp: // set parent granonesided = 0, so it stores all neighs in usual manner -neighbor.cpp: // set off2on = 1 for all children, since they expect newton on lists -neighbor.cpp: // this is b/c granonesided only set by line/gran and tri/gran which -neighbor.cpp: // both require system newton on -neighbor.cpp: // only consider JRQ pair, size lists that skip from Irq list -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // only processing half lists -neighbor.cpp: // Kokkos doesn't yet support half from full -neighbor.cpp: // these lists are created other ways, no need for halffull -neighbor.cpp: // do want to process skip lists -neighbor.cpp: // check all other lists -neighbor.cpp: // can only derive from a perpetual full list -neighbor.cpp: // newton setting of derived list does not matter -neighbor.cpp: // these flags must be same, -neighbor.cpp: // else 2 lists do not store same pairs -neighbor.cpp: // or their data structures are different -neighbor.cpp: // this includes custom cutoff set by requestor -neighbor.cpp: // no need to check respaouter b/c it stores same pairs -neighbor.cpp: // no need to check dnum b/c only set for history -neighbor.cpp: // skip flag must be same -neighbor.cpp: // if both are skip lists, skip info must match -neighbor.cpp: // 2 lists are a match -neighbor.cpp: // if matching list exists, point to it -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // this list is already a copy list due to another morph method -neighbor.cpp: // these lists are created other ways, no need to copy -neighbor.cpp: // skip lists are eligible to become a copy list -neighbor.cpp: // check all other lists -neighbor.cpp: // other list is already copied from this one -neighbor.cpp: // other list (jrq) to copy from must be perpetual -neighbor.cpp: // list that becomes a copy list (irq) can be perpetual or occasional -neighbor.cpp: // if both lists are perpetual, require j < i -neighbor.cpp: // to prevent circular dependence with 3 or more copies of a list -neighbor.cpp: // both lists must be half, or both full -neighbor.cpp: // both lists must be newton on, or both newton off -neighbor.cpp: // IJ newton = 1 for newton on, 2 for newton off -neighbor.cpp: // ok for non-ghost list to copy from ghost list, but not vice versa -neighbor.cpp: // these flags must be same, -neighbor.cpp: // else 2 lists do not store same pairs -neighbor.cpp: // or their data structures are different -neighbor.cpp: // this includes custom cutoff set by requestor -neighbor.cpp: // no need to check respaouter b/c it stores same pairs -neighbor.cpp: // no need to check omp b/c it stores same pairs -neighbor.cpp: // no need to check dnum b/c only set for history -neighbor.cpp: // NOTE: need check for 2 Kokkos flags? -neighbor.cpp: // skip flag must be same -neighbor.cpp: // if both are skip lists, skip info must match -neighbor.cpp: // 2 lists are a match -neighbor.cpp: // turn list I into a copy of list J -neighbor.cpp: // do not copy a list from another copy list, but from its parent list -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // set flags that determine which topology neighbor classes to use -neighbor.cpp: // these settings could change from run to run, depending on fixes defined -neighbor.cpp: // bonds,etc can only be broken for atom->molecular = 1, not 2 -neighbor.cpp: // SHAKE sets bonds and angles negative -neighbor.cpp: // gcmc sets all bonds, angles, etc negative -neighbor.cpp: // bond_quartic sets bonds to 0 -neighbor.cpp: // delete_bonds sets all interactions negative -neighbor.cpp: // sync on/off settings across all procs -neighbor.cpp: // instantiate NTopo classes -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: fprintf(out," max neighbors/atom: %d, page size: %d\n", -neighbor.cpp: ceil(bbox[0]/binsize), ceil(bbox[1]/binsize), -neighbor.cpp: ceil(bbox[2]/binsize)); -neighbor.cpp: "perpetual/occasional/extra = %d %d %d\n", -neighbor.cpp: // order these to get single output of most relevant -neighbor.cpp: fprintf(out,", half/full from (%d)",rq->halffulllist+1); -neighbor.cpp: // list of neigh list attributes -neighbor.cpp: /* -neighbor.cpp: */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // no binning needed -neighbor.cpp: // use request settings to match exactly one NBin class mask -neighbor.cpp: // checks are bitwise using NeighConst bit masks -neighbor.cpp: // require match of these request flags and mask bits -neighbor.cpp: // (!A != !B) is effectively a logical xor -neighbor.cpp: // error return if matched none -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // no stencil creation needed -neighbor.cpp: // convert newton request to newtflag = on or off -neighbor.cpp: //printf("STENCIL RQ FLAGS: hff %d %d n %d g %d s %d newtflag %d\n", -neighbor.cpp: // rq->half,rq->full,rq->newton,rq->ghost,rq->ssa, -neighbor.cpp: // newtflag); -neighbor.cpp: // use request and system settings to match exactly one NStencil class mask -neighbor.cpp: // checks are bitwise using NeighConst bit masks -neighbor.cpp: //printf("III %d: half %d full %d newton %d newtoff %d ghost %d ssa %d\n", -neighbor.cpp: // i,mask & NS_HALF,mask & NS_FULL,mask & NS_NEWTON, -neighbor.cpp: // mask & NS_NEWTOFF,mask & NS_GHOST,mask & NS_SSA); -neighbor.cpp: // exactly one of half or full is set and must match -neighbor.cpp: // newtflag is on or off and must match -neighbor.cpp: // require match of these request flags and mask bits -neighbor.cpp: // (!A != !B) is effectively a logical xor -neighbor.cpp: // neighbor style is BIN or MULTI and must match -neighbor.cpp: // dimension is 2 or 3 and must match -neighbor.cpp: // domain triclinic flag is on or off and must match -neighbor.cpp: // error return if matched none -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // no neighbor list build performed -neighbor.cpp: // error check for includegroup with ghost neighbor request -neighbor.cpp: // convert newton request to newtflag = on or off -neighbor.cpp: //printf("PAIR RQ FLAGS: hf %d %d n %d g %d sz %d gos %d r %d b %d o %d i %d " -neighbor.cpp: // "kk %d %d ss %d dn %d sk %d cp %d hf %d oo %d\n", -neighbor.cpp: // rq->half,rq->full,rq->newton,rq->ghost,rq->size, -neighbor.cpp: // rq->granonesided,rq->respaouter,rq->bond,rq->omp,rq->intel, -neighbor.cpp: // rq->kokkos_host,rq->kokkos_device,rq->ssa,rq->dnum, -neighbor.cpp: // rq->skip,rq->copy,rq->halffull,rq->off2on); -neighbor.cpp: // use request and system settings to match exactly one NPair class mask -neighbor.cpp: // checks are bitwise using NeighConst bit masks -neighbor.cpp: //printf(" PAIR NAMES i %d %d name %s mask %d\n",i,nrequest, -neighbor.cpp: // pairnames[i],pairmasks[i]); -neighbor.cpp: // if copy request, no further checks needed, just return or continue -neighbor.cpp: // Kokkos device/host flags must also match in order to copy -neighbor.cpp: // exactly one of half or full is set and must match -neighbor.cpp: // newtflag is on or off and must match -neighbor.cpp: // if molecular on, do not match ATOMONLY (b/c a MOLONLY Npair exists) -neighbor.cpp: // if molecular off, do not match MOLONLY (b/c an ATOMONLY Npair exists) -neighbor.cpp: // require match of these request flags and mask bits -neighbor.cpp: // (!A != !B) is effectively a logical xor -neighbor.cpp: // neighbor style is one of NSQ,BIN,MULTI and must match -neighbor.cpp: // domain triclinic flag is on or off and must match -neighbor.cpp: // error return if matched none -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp: called before run and every reneighbor if box size/shape changes -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // invoke setup_bins() for all NBin -neighbor.cpp: // actual binning is performed in build() -neighbor.cpp: // invoke create_setup() and create() for all perpetual NStencil -neighbor.cpp: // same ops performed for occasional lists in build_one() -neighbor.cpp:/* ---------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp: new trigger = 1/2 of reduced skin distance -neighbor.cpp: for orthogonal box, only need 2 lo/hi corners -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // check that using special bond flags will not overflow neigh lists -neighbor.cpp: // store current atom positions and box size if needed -neighbor.cpp: // bin atoms for all NBin instances -neighbor.cpp: // not just NBin associated with perpetual lists -neighbor.cpp: // b/c cannot wait to bin occasional lists in build_one() call -neighbor.cpp: // if bin then, atoms may have moved outside of proc domain & bin extent, -neighbor.cpp: // leading to errors or even a crash -neighbor.cpp: // build pairwise lists for all perpetual NPair/NeighList -neighbor.cpp: // grow() with nlocal/nall args so that only realloc if have to -neighbor.cpp: // build topology lists for bonds/angles/etc -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp: copy their list info back to Neighbor for access by bond/angle/etc classes -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: // check if list structure is initialized -neighbor.cpp: // build_one() should never be invoked on a perpetual list -neighbor.cpp: // no need to build if already built since last re-neighbor -neighbor.cpp: // preflag is set by fix bond/create and fix bond/swap -neighbor.cpp: // b/c they invoke build_one() on same step neigh list is re-built, -neighbor.cpp: // but before re-build, so need to use ">" instead of ">=" -neighbor.cpp: // if this is copy list and parent is occasional list, -neighbor.cpp: // or this is halffull and parent is occasional list, -neighbor.cpp: // insure parent is current -neighbor.cpp: // create stencil if hasn't been created since last setup_bins() call -neighbor.cpp: // build the list -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp: } else if (strcmp(arg[iarg+1],"molecule/inter") == 0 || -neighbor.cpp: strcmp(arg[iarg+1],"molecule/intra") == 0) { -neighbor.cpp: if (strcmp(arg[iarg+1],"molecule/intra") == 0) -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neighbor.cpp:/* ---------------------------------------------------------------------- -neighbor.cpp:------------------------------------------------------------------------- */ -neigh_list.cpp:/* ---------------------------------------------------------------------- -neigh_list.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -neigh_list.cpp: http://lammps.sandia.gov, Sandia National Laboratories -neigh_list.cpp:------------------------------------------------------------------------- */ -neigh_list.cpp:enum{NSQ,BIN,MULTI}; // also in Neighbor -neigh_list.cpp:/* ---------------------------------------------------------------------- */ -neigh_list.cpp: // initializations -neigh_list.cpp: // defaults, but may be reset by post_constructor() -neigh_list.cpp: // ptrs -neigh_list.cpp: // Kokkos package -neigh_list.cpp: // USER-DPD package -neigh_list.cpp:/* ---------------------------------------------------------------------- */ -neigh_list.cpp:/* ---------------------------------------------------------------------- -neigh_list.cpp: cannot do this in constructor b/c not all NeighLists are allocated yet -neigh_list.cpp: respaouter -> set listinner/listmiddle for other rRESPA lists -neigh_list.cpp:------------------------------------------------------------------------- */ -neigh_list.cpp: // copy request settings used by list itself -neigh_list.cpp:/* ---------------------------------------------------------------------- */ -neigh_list.cpp:/* ---------------------------------------------------------------------- -neigh_list.cpp: grow per-atom data to allow for nlocal/nall atoms -neigh_list.cpp:------------------------------------------------------------------------- */ -neigh_list.cpp: // trigger grow() in children before possible return -neigh_list.cpp: // skip if data structs are already big enough -neigh_list.cpp:/* ---------------------------------------------------------------------- -neigh_list.cpp:------------------------------------------------------------------------- */ -neigh_list.cpp: printf("Neighbor list/request %d:\n",index); -neigh_list.cpp: printf(" %d = half/full\n",rq->halffull); -neigh_list.cpp: printf(" %d = history/partner\n",rq->history_partner); -neigh_list.cpp:/* ---------------------------------------------------------------------- -neigh_list.cpp:------------------------------------------------------------------------- */ -neigh_request.cpp:/* ---------------------------------------------------------------------- -neigh_request.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -neigh_request.cpp: http://lammps.sandia.gov, Sandia National Laboratories -neigh_request.cpp:------------------------------------------------------------------------- */ -neigh_request.cpp:/* ---------------------------------------------------------------------- */ -neigh_request.cpp: // default ID = 0 -neigh_request.cpp: // class user of list: default is pair request -neigh_request.cpp: // only one is set to 1 -neigh_request.cpp: // kind of list: default is half neighbor list -neigh_request.cpp: // only one is set to 1 -neigh_request.cpp: // attribute flags, mutiple can be set to 1 -neigh_request.cpp: // default is every reneighboring, not occasional -neigh_request.cpp: // default is use newton_pair setting in force -neigh_request.cpp: // default is no neighbors of ghosts -neigh_request.cpp: // default is use cutoffs, not size of particles -neigh_request.cpp: // default is no additional neighbor history info -neigh_request.cpp: // default is no one-sided sphere/surface interactions (when size = 1) -neigh_request.cpp: // default is neighbors of atoms, not bonds -neigh_request.cpp: // default is no multilevel rRESPA neighbors -neigh_request.cpp: // default is no OpenMP multi-threaded neighbor list build -neigh_request.cpp: // default is no Intel-specific neighbor list build -neigh_request.cpp: // default is no Kokkos neighbor list build -neigh_request.cpp: // default is no Shardlow Splitting Algorithm (SSA) neighbor list build -neigh_request.cpp: // default is no storage of auxiliary floating point values -neigh_request.cpp: // skip info, default is no skipping -neigh_request.cpp: // only set when command = 1; -neigh_request.cpp: // info set by Neighbor class when morphing original requests -neigh_request.cpp: // internal settings -neigh_request.cpp:/* ---------------------------------------------------------------------- */ -neigh_request.cpp:/* ---------------------------------------------------------------------- -neigh_request.cpp:------------------------------------------------------------------------- */ -neigh_request.cpp: // check for match of requestor_instance and instance counter -neigh_request.cpp: // prevents an old fix from being unfix/refix in same memory location -neigh_request.cpp: // stored in requestor, and thus appearing old, when really new -neigh_request.cpp: // only needed for classes with persistent neigh lists: Pair, Fix, Compute -neigh_request.cpp: // only compare settings made by requestors -neigh_request.cpp: // not settings made later by Neighbor class -neigh_request.cpp:/* ---------------------------------------------------------------------- -neigh_request.cpp:------------------------------------------------------------------------- */ -neigh_request.cpp:/* ---------------------------------------------------------------------- -neigh_request.cpp: skipflag = 1 to copy skip vector/array -neigh_request.cpp:------------------------------------------------------------------------- */ -npair_copy.cpp:/* ---------------------------------------------------------------------- -npair_copy.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_copy.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_copy.cpp:------------------------------------------------------------------------- */ -npair_copy.cpp:/* ---------------------------------------------------------------------- */ -npair_copy.cpp:/* ---------------------------------------------------------------------- -npair_copy.cpp:------------------------------------------------------------------------- */ -npair.cpp:/* ---------------------------------------------------------------------- -npair.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair.cpp:------------------------------------------------------------------------- */ -npair.cpp:/* ---------------------------------------------------------------------- */ -npair.cpp:/* ---------------------------------------------------------------------- */ -npair.cpp:/* ---------------------------------------------------------------------- */ -npair.cpp:/* ---------------------------------------------------------------------- -npair.cpp:------------------------------------------------------------------------- */ -npair.cpp: // general params -npair.cpp: // exclusion info -npair.cpp: // special info -npair.cpp: // overwrite per-type Neighbor cutoffs with custom value set by requestor -npair.cpp: // only works for style = BIN (checked by Neighbor class) -npair.cpp:/* ---------------------------------------------------------------------- -npair.cpp:------------------------------------------------------------------------- */ -npair.cpp:/* ---------------------------------------------------------------------- -npair.cpp:------------------------------------------------------------------------- */ -npair.cpp:/* ---------------------------------------------------------------------- -npair.cpp:------------------------------------------------------------------------- */ -npair.cpp: // set here, since build_setup() always called before build() -npair.cpp:/* ---------------------------------------------------------------------- -npair.cpp:------------------------------------------------------------------------- */ -npair.cpp: // intra-chain: exclude i-j pair if in same molecule -npair.cpp: // inter-chain: exclude i-j pair if in different molecules -npair.cpp:/* ---------------------------------------------------------------------- -npair.cpp: take special care to insure ghosts are in correct bins even w/ roundoff -npair.cpp:------------------------------------------------------------------------- */ -npair.cpp:/* ---------------------------------------------------------------------- -npair.cpp:------------------------------------------------------------------------- */ -npair_full_bin_atomonly.cpp:/* ---------------------------------------------------------------------- -npair_full_bin_atomonly.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_full_bin_atomonly.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_full_bin_atomonly.cpp:------------------------------------------------------------------------- */ -npair_full_bin_atomonly.cpp:/* ---------------------------------------------------------------------- */ -npair_full_bin_atomonly.cpp:/* ---------------------------------------------------------------------- -npair_full_bin_atomonly.cpp:------------------------------------------------------------------------- */ -npair_full_bin_atomonly.cpp: // loop over all atoms in surrounding bins in stencil including self -npair_full_bin_atomonly.cpp: // skip i = j -npair_full_bin.cpp:/* ---------------------------------------------------------------------- -npair_full_bin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_full_bin.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_full_bin.cpp:------------------------------------------------------------------------- */ -npair_full_bin.cpp:/* ---------------------------------------------------------------------- */ -npair_full_bin.cpp:/* ---------------------------------------------------------------------- -npair_full_bin.cpp:------------------------------------------------------------------------- */ -npair_full_bin.cpp: // loop over all atoms in surrounding bins in stencil including self -npair_full_bin.cpp: // skip i = j -npair_full_bin_ghost.cpp:/* ---------------------------------------------------------------------- -npair_full_bin_ghost.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_full_bin_ghost.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_full_bin_ghost.cpp:------------------------------------------------------------------------- */ -npair_full_bin_ghost.cpp:/* ---------------------------------------------------------------------- */ -npair_full_bin_ghost.cpp:/* ---------------------------------------------------------------------- -npair_full_bin_ghost.cpp:------------------------------------------------------------------------- */ -npair_full_bin_ghost.cpp: // loop over owned & ghost atoms, storing neighbors -npair_full_bin_ghost.cpp: // loop over all atoms in surrounding bins in stencil including self -npair_full_bin_ghost.cpp: // when i is a ghost atom, must check if stencil bin is out of bounds -npair_full_bin_ghost.cpp: // skip i = j -npair_full_bin_ghost.cpp: // no molecular test when i = ghost atom -npair_full_multi.cpp:/* ---------------------------------------------------------------------- -npair_full_multi.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_full_multi.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_full_multi.cpp:------------------------------------------------------------------------- */ -npair_full_multi.cpp:/* ---------------------------------------------------------------------- */ -npair_full_multi.cpp:/* ---------------------------------------------------------------------- -npair_full_multi.cpp:------------------------------------------------------------------------- */ -npair_full_multi.cpp: // loop over all atoms in other bins in stencil, including self -npair_full_multi.cpp: // skip if i,j neighbor cutoff is less than bin distance -npair_full_multi.cpp: // skip i = j -npair_full_nsq.cpp:/* ---------------------------------------------------------------------- -npair_full_nsq.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_full_nsq.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_full_nsq.cpp:------------------------------------------------------------------------- */ -npair_full_nsq.cpp:/* ---------------------------------------------------------------------- */ -npair_full_nsq.cpp:/* ---------------------------------------------------------------------- -npair_full_nsq.cpp:------------------------------------------------------------------------- */ -npair_full_nsq.cpp: // loop over all atoms, owned and ghost -npair_full_nsq.cpp: // skip i = j -npair_full_nsq_ghost.cpp:/* ---------------------------------------------------------------------- -npair_full_nsq_ghost.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_full_nsq_ghost.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_full_nsq_ghost.cpp:------------------------------------------------------------------------- */ -npair_full_nsq_ghost.cpp:/* ---------------------------------------------------------------------- */ -npair_full_nsq_ghost.cpp:/* ---------------------------------------------------------------------- -npair_full_nsq_ghost.cpp:------------------------------------------------------------------------- */ -npair_full_nsq_ghost.cpp: // loop over owned & ghost atoms, storing neighbors -npair_full_nsq_ghost.cpp: // loop over all atoms, owned and ghost -npair_full_nsq_ghost.cpp: // skip i = j -npair_full_nsq_ghost.cpp: // no molecular test when i = ghost atom -npair_half_bin_atomonly_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_bin_atomonly_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_bin_atomonly_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_bin_atomonly_newton.cpp:------------------------------------------------------------------------- */ -npair_half_bin_atomonly_newton.cpp:/* ---------------------------------------------------------------------- */ -npair_half_bin_atomonly_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_bin_atomonly_newton.cpp:------------------------------------------------------------------------- */ -npair_half_bin_atomonly_newton.cpp: // loop over rest of atoms in i's bin, ghosts are at end of linked list -npair_half_bin_atomonly_newton.cpp: // if j is owned atom, store it, since j is beyond i in linked list -npair_half_bin_atomonly_newton.cpp: // if j is ghost, only store if j coords are "above and to the right" of i -npair_half_bin_atomonly_newton.cpp: // loop over all atoms in other bins in stencil, store every pair -npair_half_bin_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_bin_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_bin_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_bin_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_bin_newtoff.cpp:/* ---------------------------------------------------------------------- */ -npair_half_bin_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_bin_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_bin_newtoff.cpp: // loop over all atoms in other bins in stencil including self -npair_half_bin_newtoff.cpp: // only store pair if i < j -npair_half_bin_newtoff.cpp: // stores own/own pairs only once -npair_half_bin_newtoff.cpp: // stores own/ghost pairs on both procs -npair_half_bin_newtoff.cpp: // OLD: if (which >= 0) neighptr[n++] = j ^ (which << SBBITS); -npair_half_bin_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- -npair_half_bin_newtoff_ghost.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_bin_newtoff_ghost.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_bin_newtoff_ghost.cpp:------------------------------------------------------------------------- */ -npair_half_bin_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- */ -npair_half_bin_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- -npair_half_bin_newtoff_ghost.cpp:------------------------------------------------------------------------- */ -npair_half_bin_newtoff_ghost.cpp: // loop over all atoms in other bins in stencil including self -npair_half_bin_newtoff_ghost.cpp: // when i is a ghost atom, must check if stencil bin is out of bounds -npair_half_bin_newtoff_ghost.cpp: // only store pair if i < j -npair_half_bin_newtoff_ghost.cpp: // stores own/own pairs only once -npair_half_bin_newtoff_ghost.cpp: // stores own/ghost pairs with owned atom only, on both procs -npair_half_bin_newtoff_ghost.cpp: // stores ghost/ghost pairs only once -npair_half_bin_newtoff_ghost.cpp: // no molecular test when i = ghost atom -npair_half_bin_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_bin_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_bin_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_bin_newton.cpp:------------------------------------------------------------------------- */ -npair_half_bin_newton.cpp:/* ---------------------------------------------------------------------- */ -npair_half_bin_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_bin_newton.cpp:------------------------------------------------------------------------- */ -npair_half_bin_newton.cpp: // loop over rest of atoms in i's bin, ghosts are at end of linked list -npair_half_bin_newton.cpp: // if j is owned atom, store it, since j is beyond i in linked list -npair_half_bin_newton.cpp: // if j is ghost, only store if j coords are "above and to the right" of i -npair_half_bin_newton.cpp: // OLD: if (which >= 0) neighptr[n++] = j ^ (which << SBBITS); -npair_half_bin_newton.cpp: // loop over all atoms in other bins in stencil, store every pair -npair_half_bin_newton.cpp: // OLD: if (which >= 0) neighptr[n++] = j ^ (which << SBBITS); -npair_half_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- -npair_half_bin_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_bin_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_bin_newton_tri.cpp:------------------------------------------------------------------------- */ -npair_half_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- */ -npair_half_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- -npair_half_bin_newton_tri.cpp:------------------------------------------------------------------------- */ -npair_half_bin_newton_tri.cpp: // loop over all atoms in bins in stencil -npair_half_bin_newton_tri.cpp: // pairs for atoms j "below" i are excluded -npair_half_bin_newton_tri.cpp: // below = lower z or (equal z and lower y) or (equal zy and lower x) -npair_half_bin_newton_tri.cpp: // (equal zyx and j <= i) -npair_half_bin_newton_tri.cpp: // latter excludes self-self interaction but allows superposed atoms -npair_halffull_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_halffull_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_halffull_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_halffull_newtoff.cpp:------------------------------------------------------------------------- */ -npair_halffull_newtoff.cpp:/* ---------------------------------------------------------------------- */ -npair_halffull_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_halffull_newtoff.cpp:------------------------------------------------------------------------- */ -npair_halffull_newtoff.cpp: // loop over atoms in full list -npair_halffull_newtoff.cpp: // loop over parent full list -npair_halffull_newton.cpp:/* ---------------------------------------------------------------------- -npair_halffull_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_halffull_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_halffull_newton.cpp:------------------------------------------------------------------------- */ -npair_halffull_newton.cpp:/* ---------------------------------------------------------------------- */ -npair_halffull_newton.cpp:/* ---------------------------------------------------------------------- -npair_halffull_newton.cpp:------------------------------------------------------------------------- */ -npair_halffull_newton.cpp: // loop over parent full list -npair_halffull_newton.cpp: // loop over full neighbor list -npair_half_multi_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_multi_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_multi_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_multi_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_multi_newtoff.cpp:/* ---------------------------------------------------------------------- */ -npair_half_multi_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_multi_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_multi_newtoff.cpp: // loop over all atoms in other bins in stencil including self -npair_half_multi_newtoff.cpp: // only store pair if i < j -npair_half_multi_newtoff.cpp: // skip if i,j neighbor cutoff is less than bin distance -npair_half_multi_newtoff.cpp: // stores own/own pairs only once -npair_half_multi_newtoff.cpp: // stores own/ghost pairs on both procs -npair_half_multi_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_multi_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_multi_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_multi_newton.cpp:------------------------------------------------------------------------- */ -npair_half_multi_newton.cpp:/* ---------------------------------------------------------------------- */ -npair_half_multi_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_multi_newton.cpp:------------------------------------------------------------------------- */ -npair_half_multi_newton.cpp: // loop over rest of atoms in i's bin, ghosts are at end of linked list -npair_half_multi_newton.cpp: // if j is owned atom, store it, since j is beyond i in linked list -npair_half_multi_newton.cpp: // if j is ghost, only store if j coords are "above and to the right" of i -npair_half_multi_newton.cpp: // loop over all atoms in other bins in stencil, store every pair -npair_half_multi_newton.cpp: // skip if i,j neighbor cutoff is less than bin distance -npair_half_multi_newton_tri.cpp:/* ---------------------------------------------------------------------- -npair_half_multi_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_multi_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_multi_newton_tri.cpp:------------------------------------------------------------------------- */ -npair_half_multi_newton_tri.cpp:/* ---------------------------------------------------------------------- */ -npair_half_multi_newton_tri.cpp:/* ---------------------------------------------------------------------- -npair_half_multi_newton_tri.cpp:------------------------------------------------------------------------- */ -npair_half_multi_newton_tri.cpp: // loop over all atoms in bins, including self, in stencil -npair_half_multi_newton_tri.cpp: // skip if i,j neighbor cutoff is less than bin distance -npair_half_multi_newton_tri.cpp: // bins below self are excluded from stencil -npair_half_multi_newton_tri.cpp: // pairs for atoms j "below" i are excluded -npair_half_multi_newton_tri.cpp: // below = lower z or (equal z and lower y) or (equal zy and lower x) -npair_half_multi_newton_tri.cpp: // (equal zyx and j <= i) -npair_half_multi_newton_tri.cpp: // latter excludes self-self interaction but allows superposed atoms -npair_half_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_nsq_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_nsq_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_nsq_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- */ -npair_half_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_nsq_newtoff.cpp: N^2 / 2 search for neighbor pairs with partial Newton's 3rd law -npair_half_nsq_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_nsq_newtoff.cpp: // loop over remaining atoms, owned and ghost -npair_half_nsq_newtoff.cpp: // only store pair if i < j -npair_half_nsq_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- -npair_half_nsq_newtoff_ghost.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_nsq_newtoff_ghost.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_nsq_newtoff_ghost.cpp:------------------------------------------------------------------------- */ -npair_half_nsq_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- */ -npair_half_nsq_newtoff_ghost.cpp:/* ---------------------------------------------------------------------- -npair_half_nsq_newtoff_ghost.cpp: N^2 / 2 search for neighbor pairs with partial Newton's 3rd law -npair_half_nsq_newtoff_ghost.cpp:------------------------------------------------------------------------- */ -npair_half_nsq_newtoff_ghost.cpp: // loop over owned & ghost atoms, storing neighbors -npair_half_nsq_newtoff_ghost.cpp: // loop over remaining atoms, owned and ghost -npair_half_nsq_newtoff_ghost.cpp: // only store pair if i < j -npair_half_nsq_newtoff_ghost.cpp: // stores own/own pairs only once -npair_half_nsq_newtoff_ghost.cpp: // stores own/ghost pairs with owned atom only, on both procs -npair_half_nsq_newtoff_ghost.cpp: // stores ghost/ghost pairs only once -npair_half_nsq_newtoff_ghost.cpp: // no molecular test when i = ghost atom -npair_half_nsq_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_nsq_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_nsq_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_nsq_newton.cpp:------------------------------------------------------------------------- */ -npair_half_nsq_newton.cpp:/* ---------------------------------------------------------------------- */ -npair_half_nsq_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_nsq_newton.cpp: N^2 / 2 search for neighbor pairs with full Newton's 3rd law -npair_half_nsq_newton.cpp:------------------------------------------------------------------------- */ -npair_half_nsq_newton.cpp: // loop over remaining atoms, owned and ghost -npair_half_nsq_newton.cpp: // itag = jtag is possible for long cutoffs that include images of self -npair_half_respa_bin_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_respa_bin_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_respa_bin_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_respa_bin_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_respa_bin_newtoff.cpp:/* ---------------------------------------------------------------------- */ -npair_half_respa_bin_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_respa_bin_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_respa_bin_newtoff.cpp: // loop over all atoms in surrounding bins in stencil including self -npair_half_respa_bin_newtoff.cpp: // only store pair if i < j -npair_half_respa_bin_newtoff.cpp: // stores own/own pairs only once -npair_half_respa_bin_newtoff.cpp: // stores own/ghost pairs on both procs -npair_half_respa_bin_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_respa_bin_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_respa_bin_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_respa_bin_newton.cpp:------------------------------------------------------------------------- */ -npair_half_respa_bin_newton.cpp:/* ---------------------------------------------------------------------- */ -npair_half_respa_bin_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_respa_bin_newton.cpp:------------------------------------------------------------------------- */ -npair_half_respa_bin_newton.cpp: // loop over rest of atoms in i's bin, ghosts are at end of linked list -npair_half_respa_bin_newton.cpp: // if j is owned atom, store it, since j is beyond i in linked list -npair_half_respa_bin_newton.cpp: // if j is ghost, only store if j coords are "above and to the right" of i -npair_half_respa_bin_newton.cpp: // loop over all atoms in other bins in stencil, store every pair -npair_half_respa_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- -npair_half_respa_bin_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_respa_bin_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_respa_bin_newton_tri.cpp:------------------------------------------------------------------------- */ -npair_half_respa_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- */ -npair_half_respa_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- -npair_half_respa_bin_newton_tri.cpp:------------------------------------------------------------------------- */ -npair_half_respa_bin_newton_tri.cpp: // loop over all atoms in bins in stencil -npair_half_respa_bin_newton_tri.cpp: // pairs for atoms j "below" i are excluded -npair_half_respa_bin_newton_tri.cpp: // below = lower z or (equal z and lower y) or (equal zy and lower x) -npair_half_respa_bin_newton_tri.cpp: // (equal zyx and j <= i) -npair_half_respa_bin_newton_tri.cpp: // latter excludes self-self interaction but allows superposed atoms -npair_half_respa_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_respa_nsq_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_respa_nsq_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_respa_nsq_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_respa_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- */ -npair_half_respa_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_respa_nsq_newtoff.cpp: N^2 / 2 search for neighbor pairs with partial Newton's 3rd law -npair_half_respa_nsq_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_respa_nsq_newtoff.cpp: // loop over remaining atoms, owned and ghost -npair_half_respa_nsq_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_respa_nsq_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_respa_nsq_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_respa_nsq_newton.cpp:------------------------------------------------------------------------- */ -npair_half_respa_nsq_newton.cpp:/* ---------------------------------------------------------------------- */ -npair_half_respa_nsq_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_respa_nsq_newton.cpp: N^2 / 2 search for neighbor pairs with full Newton's 3rd law -npair_half_respa_nsq_newton.cpp:------------------------------------------------------------------------- */ -npair_half_respa_nsq_newton.cpp: // loop over remaining atoms, owned and ghost -npair_half_size_bin_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_size_bin_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_size_bin_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_size_bin_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_size_bin_newtoff.cpp:/* ---------------------------------------------------------------------- */ -npair_half_size_bin_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_size_bin_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_size_bin_newtoff.cpp: // loop over all atoms in surrounding bins in stencil including self -npair_half_size_bin_newtoff.cpp: // only store pair if i < j -npair_half_size_bin_newtoff.cpp: // stores own/own pairs only once -npair_half_size_bin_newtoff.cpp: // stores own/ghost pairs on both procs -npair_half_size_bin_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_size_bin_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_size_bin_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_size_bin_newton.cpp:------------------------------------------------------------------------- */ -npair_half_size_bin_newton.cpp:/* ---------------------------------------------------------------------- */ -npair_half_size_bin_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_size_bin_newton.cpp:------------------------------------------------------------------------- */ -npair_half_size_bin_newton.cpp: // loop over rest of atoms in i's bin, ghosts are at end of linked list -npair_half_size_bin_newton.cpp: // if j is owned atom, store it, since j is beyond i in linked list -npair_half_size_bin_newton.cpp: // if j is ghost, only store if j coords are "above and to the right" of i -npair_half_size_bin_newton.cpp: // loop over all atoms in other bins in stencil, store every pair -npair_half_size_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- -npair_half_size_bin_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_size_bin_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_size_bin_newton_tri.cpp:------------------------------------------------------------------------- */ -npair_half_size_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- */ -npair_half_size_bin_newton_tri.cpp:/* ---------------------------------------------------------------------- -npair_half_size_bin_newton_tri.cpp:------------------------------------------------------------------------- */ -npair_half_size_bin_newton_tri.cpp: // loop over all atoms in bins in stencil -npair_half_size_bin_newton_tri.cpp: // pairs for atoms j "below" i are excluded -npair_half_size_bin_newton_tri.cpp: // below = lower z or (equal z and lower y) or (equal zy and lower x) -npair_half_size_bin_newton_tri.cpp: // (equal zyx and j <= i) -npair_half_size_bin_newton_tri.cpp: // latter excludes self-self interaction but allows superposed atoms -npair_half_size_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_size_nsq_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_size_nsq_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_size_nsq_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_size_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- */ -npair_half_size_nsq_newtoff.cpp:/* ---------------------------------------------------------------------- -npair_half_size_nsq_newtoff.cpp: N^2 / 2 search for neighbor pairs with partial Newton's 3rd law -npair_half_size_nsq_newtoff.cpp:------------------------------------------------------------------------- */ -npair_half_size_nsq_newtoff.cpp: // loop over remaining atoms, owned and ghost -npair_half_size_nsq_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_size_nsq_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_half_size_nsq_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_half_size_nsq_newton.cpp:------------------------------------------------------------------------- */ -npair_half_size_nsq_newton.cpp:/* ---------------------------------------------------------------------- */ -npair_half_size_nsq_newton.cpp:/* ---------------------------------------------------------------------- -npair_half_size_nsq_newton.cpp: N^2 / 2 search for neighbor pairs with full Newton's 3rd law -npair_half_size_nsq_newton.cpp:------------------------------------------------------------------------- */ -npair_half_size_nsq_newton.cpp: // loop over remaining atoms, owned and ghost -npair_skip.cpp:/* ---------------------------------------------------------------------- -npair_skip.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_skip.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_skip.cpp:------------------------------------------------------------------------- */ -npair_skip.cpp:/* ---------------------------------------------------------------------- */ -npair_skip.cpp:/* ---------------------------------------------------------------------- -npair_skip.cpp:------------------------------------------------------------------------- */ -npair_skip.cpp: // loop over atoms in other list -npair_skip.cpp: // skip I atom entirely if iskip is set for type[I] -npair_skip.cpp: // skip I,J pair if ijskip is set for type[I],type[J] -npair_skip.cpp: // loop over parent non-skip list -npair_skip_respa.cpp:/* ---------------------------------------------------------------------- -npair_skip_respa.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_skip_respa.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_skip_respa.cpp:------------------------------------------------------------------------- */ -npair_skip_respa.cpp:/* ---------------------------------------------------------------------- */ -npair_skip_respa.cpp:/* ---------------------------------------------------------------------- -npair_skip_respa.cpp: this is for respa lists, copy the inner/middle values from parent -npair_skip_respa.cpp:------------------------------------------------------------------------- */ -npair_skip_respa.cpp: // loop over atoms in other list -npair_skip_respa.cpp: // skip I atom entirely if iskip is set for type[I] -npair_skip_respa.cpp: // skip I,J pair if ijskip is set for type[I],type[J] -npair_skip_respa.cpp: // loop over parent outer rRESPA list -npair_skip_respa.cpp: // loop over parent inner rRESPA list -npair_skip_respa.cpp: // loop over parent middle rRESPA list -npair_skip_size.cpp:/* ---------------------------------------------------------------------- -npair_skip_size.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_skip_size.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_skip_size.cpp:------------------------------------------------------------------------- */ -npair_skip_size.cpp:/* ---------------------------------------------------------------------- */ -npair_skip_size.cpp:/* ---------------------------------------------------------------------- -npair_skip_size.cpp: if list requests it, preserve shear history via fix shear/history -npair_skip_size.cpp:------------------------------------------------------------------------- */ -npair_skip_size.cpp: // loop over atoms in other list -npair_skip_size.cpp: // skip I atom entirely if iskip is set for type[I] -npair_skip_size.cpp: // skip I,J pair if ijskip is set for type[I],type[J] -npair_skip_size.cpp: // loop over parent non-skip size list and optionally its history info -npair_skip_size.cpp: // no numeric test for current touch -npair_skip_size.cpp: // just use FSH partner list to infer it -npair_skip_size.cpp: // would require distance calculation for spheres -npair_skip_size.cpp: // more complex calculation for surfs -npair_skip_size_off2on.cpp:/* ---------------------------------------------------------------------- -npair_skip_size_off2on.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_skip_size_off2on.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_skip_size_off2on.cpp:------------------------------------------------------------------------- */ -npair_skip_size_off2on.cpp:/* ---------------------------------------------------------------------- */ -npair_skip_size_off2on.cpp:/* ---------------------------------------------------------------------- -npair_skip_size_off2on.cpp: if list requests it, preserve shear history via fix shear/history -npair_skip_size_off2on.cpp:------------------------------------------------------------------------- */ -npair_skip_size_off2on.cpp: // loop over atoms in other list -npair_skip_size_off2on.cpp: // skip I atom entirely if iskip is set for type[I] -npair_skip_size_off2on.cpp: // skip I,J pair if ijskip is set for type[I],type[J] -npair_skip_size_off2on.cpp: // loop over parent non-skip size list and optionally its history info -npair_skip_size_off2on.cpp: // only keep I,J when J = ghost if Itag < Jtag -npair_skip_size_off2on.cpp: // no numeric test for current touch -npair_skip_size_off2on.cpp: // just use FSH partner list to infer it -npair_skip_size_off2on.cpp: // would require distance calculation for spheres -npair_skip_size_off2on.cpp: // more complex calculation for surfs -npair_skip_size_off2on_oneside.cpp:/* ---------------------------------------------------------------------- -npair_skip_size_off2on_oneside.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -npair_skip_size_off2on_oneside.cpp: http://lammps.sandia.gov, Sandia National Laboratories -npair_skip_size_off2on_oneside.cpp:------------------------------------------------------------------------- */ -npair_skip_size_off2on_oneside.cpp:/* ---------------------------------------------------------------------- */ -npair_skip_size_off2on_oneside.cpp:/* ---------------------------------------------------------------------- -npair_skip_size_off2on_oneside.cpp: if list requests it, preserve shear history via fix shear/history -npair_skip_size_off2on_oneside.cpp:------------------------------------------------------------------------- */ -npair_skip_size_off2on_oneside.cpp: // two loops over parent list required, one to count, one to store -npair_skip_size_off2on_oneside.cpp: // because onesided constraint means pair I,J may be stored with I or J -npair_skip_size_off2on_oneside.cpp: // so don't know in advance how much space to alloc for each atom's neighs -npair_skip_size_off2on_oneside.cpp: // first loop over atoms in other list to count neighbors -npair_skip_size_off2on_oneside.cpp: // skip I atom entirely if iskip is set for type[I] -npair_skip_size_off2on_oneside.cpp: // skip I,J pair if ijskip is set for type[I],type[J] -npair_skip_size_off2on_oneside.cpp: // loop over parent non-skip size list -npair_skip_size_off2on_oneside.cpp: // flip I,J if necessary to satisfy onesided constraint -npair_skip_size_off2on_oneside.cpp: // do not keep if I is now ghost -npair_skip_size_off2on_oneside.cpp: // allocate all per-atom neigh list chunks, including history -npair_skip_size_off2on_oneside.cpp: // second loop over atoms in other list to store neighbors -npair_skip_size_off2on_oneside.cpp: // skip I atom entirely if iskip is set for type[I] -npair_skip_size_off2on_oneside.cpp: // skip I,J pair if ijskip is set for type[I],type[J] -npair_skip_size_off2on_oneside.cpp: // loop over parent non-skip size list and optionally its history info -npair_skip_size_off2on_oneside.cpp: // flip I,J if necessary to satisfy onesided constraint -npair_skip_size_off2on_oneside.cpp: // do not keep if I is now ghost -npair_skip_size_off2on_oneside.cpp: // store j in neigh list, not joriginal, like other neigh methods -npair_skip_size_off2on_oneside.cpp: // OK, b/c there is no special list flagging for surfs -npair_skip_size_off2on_oneside.cpp: // no numeric test for current touch -npair_skip_size_off2on_oneside.cpp: // just use FSH partner list to infer it -npair_skip_size_off2on_oneside.cpp: // would require complex calculation for surfs -npair_skip_size_off2on_oneside.cpp: // only add atom I to ilist if it has neighbors -npair_skip_size_off2on_oneside.cpp: // fix shear/history allows for this in pre_exchange_onesided() -nstencil.cpp:/* ---------------------------------------------------------------------- -nstencil.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil.cpp:------------------------------------------------------------------------- */ -nstencil.cpp:enum{NSQ,BIN,MULTI}; // also in Neighbor -nstencil.cpp:/* ---------------------------------------------------------------------- -nstencil.cpp: invoked each time simulation box size/shape changes -nstencil.cpp: regardless of newton on/off or triclinic -nstencil.cpp: stencil follows same rules for half/full, newton on/off, triclinic -nstencil.cpp:------------------------------------------------------------------------- */ -nstencil.cpp:/* ---------------------------------------------------------------------- */ -nstencil.cpp:/* ---------------------------------------------------------------------- */ -nstencil.cpp:/* ---------------------------------------------------------------------- -nstencil.cpp:------------------------------------------------------------------------- */ -nstencil.cpp: // overwrite Neighbor cutoff with custom value set by requestor -nstencil.cpp: // only works for style = BIN (checked by Neighbor class) -nstencil.cpp:/* ---------------------------------------------------------------------- -nstencil.cpp:------------------------------------------------------------------------- */ -nstencil.cpp:/* ---------------------------------------------------------------------- -nstencil.cpp:------------------------------------------------------------------------- */ -nstencil.cpp: // sx,sy,sz = max range of stencil in each dim -nstencil.cpp: // smax = max possible size of entire 3d stencil -nstencil.cpp: // stencil will be empty if cutneighmax = 0.0 -nstencil.cpp: // reallocate stencil structs if necessary -nstencil.cpp: // for BIN and MULTI styles -nstencil.cpp:/* ---------------------------------------------------------------------- -nstencil.cpp:------------------------------------------------------------------------- */ -nstencil.cpp:/* ---------------------------------------------------------------------- */ -nstencil_full_bin_2d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_bin_2d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_full_bin_2d.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_full_bin_2d.cpp:------------------------------------------------------------------------- */ -nstencil_full_bin_2d.cpp:/* ---------------------------------------------------------------------- */ -nstencil_full_bin_2d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_bin_2d.cpp:------------------------------------------------------------------------- */ -nstencil_full_bin_3d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_bin_3d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_full_bin_3d.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_full_bin_3d.cpp:------------------------------------------------------------------------- */ -nstencil_full_bin_3d.cpp:/* ---------------------------------------------------------------------- */ -nstencil_full_bin_3d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_bin_3d.cpp:------------------------------------------------------------------------- */ -nstencil_full_ghost_bin_2d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_ghost_bin_2d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_full_ghost_bin_2d.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_full_ghost_bin_2d.cpp:------------------------------------------------------------------------- */ -nstencil_full_ghost_bin_2d.cpp:/* ---------------------------------------------------------------------- */ -nstencil_full_ghost_bin_2d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_ghost_bin_2d.cpp:------------------------------------------------------------------------- */ -nstencil_full_ghost_bin_3d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_ghost_bin_3d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_full_ghost_bin_3d.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_full_ghost_bin_3d.cpp:------------------------------------------------------------------------- */ -nstencil_full_ghost_bin_3d.cpp:/* ---------------------------------------------------------------------- */ -nstencil_full_ghost_bin_3d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_ghost_bin_3d.cpp:------------------------------------------------------------------------- */ -nstencil_full_multi_2d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_multi_2d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_full_multi_2d.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_full_multi_2d.cpp:------------------------------------------------------------------------- */ -nstencil_full_multi_2d.cpp:/* ---------------------------------------------------------------------- */ -nstencil_full_multi_2d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_multi_2d.cpp:------------------------------------------------------------------------- */ -nstencil_full_multi_3d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_multi_3d.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_full_multi_3d.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_full_multi_3d.cpp:------------------------------------------------------------------------- */ -nstencil_full_multi_3d.cpp:/* ---------------------------------------------------------------------- */ -nstencil_full_multi_3d.cpp:/* ---------------------------------------------------------------------- -nstencil_full_multi_3d.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_2d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_bin_2d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_bin_2d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_2d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_2d_newton.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_2d_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_bin_2d_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_bin_2d_newton.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_2d_newton.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_bin_2d_newton.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_2d_newton.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_2d_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_bin_2d_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_bin_2d_newton_tri.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_bin_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_2d_newton_tri.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_3d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_bin_3d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_bin_3d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_3d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_3d_newton.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_3d_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_bin_3d_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_bin_3d_newton.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_3d_newton.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_bin_3d_newton.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_3d_newton.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_3d_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_bin_3d_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_bin_3d_newton_tri.cpp:------------------------------------------------------------------------- */ -nstencil_half_bin_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_bin_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- -nstencil_half_bin_3d_newton_tri.cpp:------------------------------------------------------------------------- */ -nstencil_half_ghost_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_ghost_bin_2d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_ghost_bin_2d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_ghost_bin_2d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_ghost_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_ghost_bin_2d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_ghost_bin_2d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_ghost_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_ghost_bin_3d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_ghost_bin_3d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_ghost_bin_3d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_ghost_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_ghost_bin_3d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_ghost_bin_3d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_2d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_2d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_multi_2d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_multi_2d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_2d_newtoff.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_multi_2d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_2d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_2d_newton.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_2d_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_multi_2d_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_multi_2d_newton.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_2d_newton.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_multi_2d_newton.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_2d_newton.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_2d_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_multi_2d_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_multi_2d_newton_tri.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_multi_2d_newton_tri.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_2d_newton_tri.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_3d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_3d_newtoff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_multi_3d_newtoff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_multi_3d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_3d_newtoff.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_multi_3d_newtoff.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_3d_newtoff.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_3d_newton.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_3d_newton.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_multi_3d_newton.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_multi_3d_newton.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_3d_newton.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_multi_3d_newton.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_3d_newton.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_3d_newton_tri.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -nstencil_half_multi_3d_newton_tri.cpp: http://lammps.sandia.gov, Sandia National Laboratories -nstencil_half_multi_3d_newton_tri.cpp:------------------------------------------------------------------------- */ -nstencil_half_multi_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- */ -nstencil_half_multi_3d_newton_tri.cpp:/* ---------------------------------------------------------------------- -nstencil_half_multi_3d_newton_tri.cpp:------------------------------------------------------------------------- */ -ntopo_angle_all.cpp:/* ---------------------------------------------------------------------- -ntopo_angle_all.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_angle_all.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_angle_all.cpp:------------------------------------------------------------------------- */ -ntopo_angle_all.cpp:/* ---------------------------------------------------------------------- */ -ntopo_angle_all.cpp:/* ---------------------------------------------------------------------- */ -ntopo_angle_partial.cpp:/* ---------------------------------------------------------------------- -ntopo_angle_partial.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_angle_partial.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_angle_partial.cpp:------------------------------------------------------------------------- */ -ntopo_angle_partial.cpp:/* ---------------------------------------------------------------------- */ -ntopo_angle_partial.cpp:/* ---------------------------------------------------------------------- */ -ntopo_angle_template.cpp:/* ---------------------------------------------------------------------- -ntopo_angle_template.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_angle_template.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_angle_template.cpp:------------------------------------------------------------------------- */ -ntopo_angle_template.cpp:/* ---------------------------------------------------------------------- */ -ntopo_angle_template.cpp:/* ---------------------------------------------------------------------- */ -ntopo_bond_all.cpp:/* ---------------------------------------------------------------------- -ntopo_bond_all.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_bond_all.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_bond_all.cpp:------------------------------------------------------------------------- */ -ntopo_bond_all.cpp:/* ---------------------------------------------------------------------- */ -ntopo_bond_all.cpp:/* ---------------------------------------------------------------------- */ -ntopo_bond_partial.cpp:/* ---------------------------------------------------------------------- -ntopo_bond_partial.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_bond_partial.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_bond_partial.cpp:------------------------------------------------------------------------- */ -ntopo_bond_partial.cpp:/* ---------------------------------------------------------------------- */ -ntopo_bond_partial.cpp:/* ---------------------------------------------------------------------- */ -ntopo_bond_template.cpp:/* ---------------------------------------------------------------------- -ntopo_bond_template.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_bond_template.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_bond_template.cpp:------------------------------------------------------------------------- */ -ntopo_bond_template.cpp:/* ---------------------------------------------------------------------- */ -ntopo_bond_template.cpp:/* ---------------------------------------------------------------------- */ -ntopo.cpp:/* ---------------------------------------------------------------------- -ntopo.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo.cpp:------------------------------------------------------------------------- */ -ntopo.cpp:/* ---------------------------------------------------------------------- */ -ntopo.cpp:/* ---------------------------------------------------------------------- */ -ntopo.cpp:/* ---------------------------------------------------------------------- */ -ntopo.cpp: else maxbond = static_cast (LB_FACTOR * atom->nbonds / nprocs); -ntopo.cpp:/* ---------------------------------------------------------------------- */ -ntopo.cpp: else maxangle = static_cast (LB_FACTOR * atom->nangles / nprocs); -ntopo.cpp:/* ---------------------------------------------------------------------- */ -ntopo.cpp: else maxdihedral = static_cast (LB_FACTOR * atom->ndihedrals / nprocs); -ntopo.cpp:/* ---------------------------------------------------------------------- */ -ntopo.cpp: else maximproper = static_cast (LB_FACTOR * atom->nimpropers / nprocs); -ntopo.cpp:/* ---------------------------------------------------------------------- */ -ntopo.cpp:/* ---------------------------------------------------------------------- */ -ntopo.cpp: // check all 3 distances -ntopo.cpp: // in case angle potential computes any of them -ntopo.cpp:/* ---------------------------------------------------------------------- */ -ntopo.cpp: // check all 6 distances -ntopo.cpp: // in case dihedral/improper potential computes any of them -ntopo.cpp: error->all(FLERR,"Dihedral/improper extent > half of periodic box length"); -ntopo.cpp:/* ---------------------------------------------------------------------- */ -ntopo_dihedral_all.cpp:/* ---------------------------------------------------------------------- -ntopo_dihedral_all.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_dihedral_all.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_dihedral_all.cpp:------------------------------------------------------------------------- */ -ntopo_dihedral_all.cpp:/* ---------------------------------------------------------------------- */ -ntopo_dihedral_all.cpp:/* ---------------------------------------------------------------------- */ -ntopo_dihedral_partial.cpp:/* ---------------------------------------------------------------------- -ntopo_dihedral_partial.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_dihedral_partial.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_dihedral_partial.cpp:------------------------------------------------------------------------- */ -ntopo_dihedral_partial.cpp:/* ---------------------------------------------------------------------- */ -ntopo_dihedral_partial.cpp:/* ---------------------------------------------------------------------- */ -ntopo_dihedral_template.cpp:/* ---------------------------------------------------------------------- -ntopo_dihedral_template.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_dihedral_template.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_dihedral_template.cpp:------------------------------------------------------------------------- */ -ntopo_dihedral_template.cpp:/* ---------------------------------------------------------------------- */ -ntopo_dihedral_template.cpp:/* ---------------------------------------------------------------------- */ -ntopo_improper_all.cpp:/* ---------------------------------------------------------------------- -ntopo_improper_all.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_improper_all.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_improper_all.cpp:------------------------------------------------------------------------- */ -ntopo_improper_all.cpp:/* ---------------------------------------------------------------------- */ -ntopo_improper_all.cpp:/* ---------------------------------------------------------------------- */ -ntopo_improper_partial.cpp:/* ---------------------------------------------------------------------- -ntopo_improper_partial.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -ntopo_improper_partial.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_improper_partial.cpp:------------------------------------------------------------------------- */ -ntopo_improper_partial.cpp:/* ---------------------------------------------------------------------- */ -ntopo_improper_partial.cpp:/* ---------------------------------------------------------------------- */ -ntopo_improper_template.cpp:/* ---------------------------------------------------------------------- -ntopo_improper_template.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Templatel Simulator -ntopo_improper_template.cpp: http://lammps.sandia.gov, Sandia National Laboratories -ntopo_improper_template.cpp:------------------------------------------------------------------------- */ -ntopo_improper_template.cpp:/* ---------------------------------------------------------------------- */ -ntopo_improper_template.cpp:/* ---------------------------------------------------------------------- */ -output.cpp:/* ---------------------------------------------------------------------- -output.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -output.cpp: http://lammps.sandia.gov, Sandia National Laboratories -output.cpp:------------------------------------------------------------------------- */ -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp: // create default computes for temp,pressure,pe -output.cpp: // create default Thermo class -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp:/* ---------------------------------------------------------------------- */ -output.cpp:/* ---------------------------------------------------------------------- -output.cpp: perform output for setup of run/min -output.cpp: memflag = 0/1 for printing out memory usage -output.cpp:------------------------------------------------------------------------- */ -output.cpp: // perform dump at start of run only if: -output.cpp: // current timestep is multiple of every and last dump not >= this step -output.cpp: // this is first run after dump created and firstflag is set -output.cpp: // note that variable freq will not write unless triggered by firstflag -output.cpp: // set next_dump to multiple of every or variable value -output.cpp: // set next_dump_any to smallest next_dump -output.cpp: // wrap dumps that invoke computes and variable eval with clear/add -output.cpp: // if dump not written now, use addstep_compute_all() since don't know -output.cpp: // what computes the dump write would invoke -output.cpp: // if no dumps, set next_dump_any to last+1 so will not influence next -output.cpp: (ntimestep/every_dump[idump])*every_dump[idump] + every_dump[idump]; -output.cpp: // do not write restart files at start of run -output.cpp: // set next_restart values to multiple of every or variable value -output.cpp: // wrap variable eval with clear/add -output.cpp: // if no restarts, set next_restart to last+1 so will not influence next -output.cpp: (ntimestep/restart_every_single)*restart_every_single + -output.cpp: (ntimestep/restart_every_double)*restart_every_double + -output.cpp: // print memory usage unless being called between multiple runs -output.cpp: // set next_thermo to multiple of every or variable eval if var defined -output.cpp: // insure thermo output on last step of run -output.cpp: // thermo may invoke computes so wrap with clear/add -output.cpp: next_thermo = (ntimestep/thermo_every)*thermo_every + thermo_every; -output.cpp: // next = next timestep any output will be done -output.cpp:/* ---------------------------------------------------------------------- -output.cpp: do dump/restart before thermo so thermo CPU time will include them -output.cpp:------------------------------------------------------------------------- */ -output.cpp: // next_dump does not force output on last step of run -output.cpp: // wrap dumps that invoke computes or eval of variable with clear/add -output.cpp: // next_restart does not force output on last step of run -output.cpp: // for toggle = 0, replace "*" with current timestep in restart filename -output.cpp: // eval of variable may invoke computes so wrap with clear/add -output.cpp: // insure next_thermo forces output on last step of run -output.cpp: // thermo may invoke computes so wrap with clear/add -output.cpp: // next = next timestep any output will be done -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp: next_dump[idump] = (ntimestep/every_dump[idump])*every_dump[idump]; -output.cpp: // ivar_dump may not be initialized -output.cpp: (ntimestep/restart_every_single)*restart_every_single; -output.cpp: (ntimestep/restart_every_double)*restart_every_double; -output.cpp: next_thermo = (ntimestep/thermo_every)*thermo_every; -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp: // error checks -output.cpp: // extend Dump list if necessary -output.cpp: // initialize per-dump data to suitable default values -output.cpp: // create the Dump -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp: // find which dump it is -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp: // find which dump it is and delete it -output.cpp: // move other dumps down in list one slot -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp: // don't allow this so that dipole style can safely allocate inertia vector -output.cpp: // warn if previous thermo had been modified via thermo_modify command -output.cpp: // set thermo = NULL in case new Thermo throws an error -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp: // check for multiproc output and an MPI-IO filename -output.cpp: // if 2 filenames, must be consistent -output.cpp: // setup output style and process optional args -output.cpp:/* ---------------------------------------------------------------------- -output.cpp:------------------------------------------------------------------------- */ -output.cpp: double mbytes = bytes/1024.0/1024.0; -output.cpp: mbavg /= comm->nprocs; -output.cpp: fprintf(screen,"Per MPI rank memory allocation (min/avg/max) = " -output.cpp: fprintf(logfile,"Per MPI rank memory allocation (min/avg/max) = " -pair_beck.cpp:/* ---------------------------------------------------------------------- -pair_beck.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_beck.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_beck.cpp:------------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- -pair_beck.cpp:------------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- */ -pair_beck.cpp: // loop over neighbors of my atoms -pair_beck.cpp: rinv = 1.0/r; -pair_beck.cpp: term1inv = 1.0/term1; -pair_beck.cpp:/* ---------------------------------------------------------------------- -pair_beck.cpp:------------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- -pair_beck.cpp:------------------------------------------------------------------------- */ -pair_beck.cpp: // reset cutoffs that have been explicitly set -pair_beck.cpp:/* ---------------------------------------------------------------------- -pair_beck.cpp:------------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- -pair_beck.cpp:------------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- -pair_beck.cpp:------------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- -pair_beck.cpp:------------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- -pair_beck.cpp:------------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- -pair_beck.cpp:------------------------------------------------------------------------- */ -pair_beck.cpp:/* ---------------------------------------------------------------------- */ -pair_beck.cpp: rinv = 1.0/r; -pair_beck.cpp: term1inv = 1.0/term1; -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_born_coul_dsf.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp: // loop over neighbors of my atoms -pair_born_coul_dsf.cpp: // self coulombic energy -pair_born_coul_dsf.cpp: double e_self = -(e_shift/2.0 + alpha/MY_PIS) * qtmp*qtmp*qqrd2e; -pair_born_coul_dsf.cpp: r2inv = 1.0/rsq; -pair_born_coul_dsf.cpp: prefactor = qqrd2e*qtmp*q[j]/r; -pair_born_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS * erfcd + -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp: error->all(FLERR,"Pair style born/coul/dsf requires atom attribute q"); -pair_born_coul_dsf.cpp: f_shift = -(erfcc/cut_coulsq + 2.0/MY_PIS*alpha*erfcd/cut_coul); -pair_born_coul_dsf.cpp: e_shift = erfcc/cut_coul - f_shift*cut_coul; -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp: rhoinv[i][j] = 1.0/rho[i][j]; -pair_born_coul_dsf.cpp: born1[i][j] = a[i][j]/rho[i][j]; -pair_born_coul_dsf.cpp: offset[i][j] = a[i][j]*rexp - c[i][j]/pow(cut_lj[i][j],6.0) -pair_born_coul_dsf.cpp: + d[i][j]/pow(cut_lj[i][j],8.0); -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_dsf.cpp: r2inv = 1.0/rsq; -pair_born_coul_dsf.cpp: prefactor = factor_coul * force->qqrd2e * atom->q[i]*atom->q[j]/r; -pair_born_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS*erfcd + -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_born_coul_wolf.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp: // self and shifted coulombic energy -pair_born_coul_wolf.cpp: e_shift = erfc(alf*cut_coul)/cut_coul; -pair_born_coul_wolf.cpp: f_shift = -(e_shift+ 2.0*alf/MY_PIS * exp(-alf*alf*cut_coul*cut_coul)) / -pair_born_coul_wolf.cpp: // loop over neighbors of my atoms -pair_born_coul_wolf.cpp: e_self = -(e_shift/2.0 + alf/MY_PIS) * qisq*qqrd2e; -pair_born_coul_wolf.cpp: r2inv = 1.0/rsq; -pair_born_coul_wolf.cpp: prefactor = qqrd2e*qtmp*q[j]/r; -pair_born_coul_wolf.cpp: dvdrr = (erfcc/rsq + 2.0*alf/MY_PIS * erfcd/r) + f_shift; -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp: error->all(FLERR,"Pair style born/coul/wolf requires atom attribute q"); -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp: rhoinv[i][j] = 1.0/rho[i][j]; -pair_born_coul_wolf.cpp: born1[i][j] = a[i][j]/rho[i][j]; -pair_born_coul_wolf.cpp: offset[i][j] = a[i][j]*rexp - c[i][j]/pow(cut_lj[i][j],6.0) -pair_born_coul_wolf.cpp: + d[i][j]/pow(cut_lj[i][j],8.0); -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_born_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_born_coul_wolf.cpp: r2inv = 1.0/rsq; -pair_born_coul_wolf.cpp: e_shift = erfc(alf*cut_coul) / cut_coul; -pair_born_coul_wolf.cpp: f_shift = -(e_shift+2*alf/MY_PIS * exp(-alf*alf*cut_coul*cut_coul)) / -pair_born_coul_wolf.cpp: prefactor = force->qqrd2e * atom->q[i]*atom->q[j]/r; -pair_born_coul_wolf.cpp: dvdrr = (erfcc/rsq + 2.0*alf/MY_PIS * erfcd/r) + f_shift; -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_born.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- */ -pair_born.cpp: // loop over neighbors of my atoms -pair_born.cpp: r2inv = 1.0/rsq; -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp: // reset cutoffs that have been explicitly set -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp: rhoinv[i][j] = 1.0/rho[i][j]; -pair_born.cpp: born1[i][j] = a[i][j]/rho[i][j]; -pair_born.cpp: offset[i][j] = a[i][j]*rexp - c[i][j]/pow(cut[i][j],6.0) + -pair_born.cpp: d[i][j]/pow(cut[i][j],8.0); -pair_born.cpp: // compute I,J contribution to long-range tail correction -pair_born.cpp: // count total # of atoms of type I and J via Allreduce -pair_born.cpp: (a[i][j]*exp((sigma[i][j]-rc)/rho1)*rho1* -pair_born.cpp: c[i][j]/(3.0*rc3) + d[i][j]/(5.0*rc5)); -pair_born.cpp: ptail_ij = (-1/3.0)*2.0*MY_PI*all[0]*all[1] * -pair_born.cpp: (-a[i][j]*exp((sigma[i][j]-rc)/rho1) * -pair_born.cpp: 2.0*c[i][j]/rc3 - 8.0*d[i][j]/(5.0*rc5)); -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- -pair_born.cpp:------------------------------------------------------------------------- */ -pair_born.cpp:/* ---------------------------------------------------------------------- */ -pair_born.cpp: r2inv = 1.0/rsq; -pair_born.cpp:/* ---------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_buck_coul_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp: // loop over neighbors of my atoms -pair_buck_coul_cut.cpp: r2inv = 1.0/rsq; -pair_buck_coul_cut.cpp: forcecoul = qqrd2e * qtmp*q[j]/r; -pair_buck_coul_cut.cpp: ecoul = factor_coul * qqrd2e * qtmp*q[j]/r; -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp: // reset cutoffs that have been explicitly set -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp: error->all(FLERR,"Pair style buck/coul/cut requires atom attribute q"); -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp: rhoinv[i][j] = 1.0/rho[i][j]; -pair_buck_coul_cut.cpp: buck1[i][j] = a[i][j]/rho[i][j]; -pair_buck_coul_cut.cpp: double rexp = exp(-cut_lj[i][j]/rho[i][j]); -pair_buck_coul_cut.cpp: offset[i][j] = a[i][j]*rexp - c[i][j]/pow(cut_lj[i][j],6.0); -pair_buck_coul_cut.cpp: // compute I,J contribution to long-range tail correction -pair_buck_coul_cut.cpp: // count total # of atoms of type I and J via Allreduce -pair_buck_coul_cut.cpp: (a[i][j]*exp(-rc/rho1)*rho1*(rc2 + 2.0*rho1*rc + 2.0*rho2) - -pair_buck_coul_cut.cpp: c[i][j]/(3.0*rc3)); -pair_buck_coul_cut.cpp: ptail_ij = (-1/3.0)*2.0*MY_PI*all[0]*all[1]* -pair_buck_coul_cut.cpp: (-a[i][j]*exp(-rc/rho1)* -pair_buck_coul_cut.cpp: (rc3 + 3.0*rho1*rc2 + 6.0*rho2*rc + 6.0*rho3) + 2.0*c[i][j]/rc3); -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_buck_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_buck_coul_cut.cpp: r2inv = 1.0/rsq; -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_buck.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- */ -pair_buck.cpp: // loop over neighbors of my atoms -pair_buck.cpp: r2inv = 1.0/rsq; -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp: // reset cutoffs that have been explicitly set -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp: rhoinv[i][j] = 1.0/rho[i][j]; -pair_buck.cpp: buck1[i][j] = a[i][j]/rho[i][j]; -pair_buck.cpp: double rexp = exp(-cut[i][j]/rho[i][j]); -pair_buck.cpp: offset[i][j] = a[i][j]*rexp - c[i][j]/pow(cut[i][j],6.0); -pair_buck.cpp: // compute I,J contribution to long-range tail correction -pair_buck.cpp: // count total # of atoms of type I and J via Allreduce -pair_buck.cpp: (a[i][j]*exp(-rc/rho1)*rho1*(rc2 + 2.0*rho1*rc + 2.0*rho2) - -pair_buck.cpp: c[i][j]/(3.0*rc3)); -pair_buck.cpp: ptail_ij = (-1/3.0)*2.0*MY_PI*all[0]*all[1]* -pair_buck.cpp: (-a[i][j]*exp(-rc/rho1)* -pair_buck.cpp: (rc3 + 3.0*rho1*rc2 + 6.0*rho2*rc + 6.0*rho3) + 2.0*c[i][j]/rc3); -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- -pair_buck.cpp:------------------------------------------------------------------------- */ -pair_buck.cpp:/* ---------------------------------------------------------------------- */ -pair_buck.cpp: r2inv = 1.0/rsq; -pair_buck.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_coul_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_coul_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_cut.cpp: // loop over neighbors of my atoms -pair_coul_cut.cpp: r2inv = 1.0/rsq; -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_coul_cut.cpp: // reset cutoffs that have been explicitly set -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_coul_cut.cpp: error->all(FLERR,"Pair style coul/cut requires atom attribute q"); -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_cut.cpp: r2inv = 1.0/rsq; -pair_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_debye.cpp:/* ---------------------------------------------------------------------- -pair_coul_debye.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_coul_debye.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_coul_debye.cpp:------------------------------------------------------------------------- */ -pair_coul_debye.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_debye.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_debye.cpp: // loop over neighbors of my atoms -pair_coul_debye.cpp: r2inv = 1.0/rsq; -pair_coul_debye.cpp: rinv = 1.0/r; -pair_coul_debye.cpp:/* ---------------------------------------------------------------------- -pair_coul_debye.cpp:------------------------------------------------------------------------- */ -pair_coul_debye.cpp: // reset cutoffs that have been explicitly set -pair_coul_debye.cpp:/* ---------------------------------------------------------------------- -pair_coul_debye.cpp:------------------------------------------------------------------------- */ -pair_coul_debye.cpp:/* ---------------------------------------------------------------------- -pair_coul_debye.cpp:------------------------------------------------------------------------- */ -pair_coul_debye.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_debye.cpp: r2inv = 1.0/rsq; -pair_coul_debye.cpp: rinv = 1.0/r; -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_coul_dsf.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_dsf.cpp: // loop over neighbors of my atoms -pair_coul_dsf.cpp: double e_self = -(e_shift/2.0 + alpha/MY_PIS) * qtmp*qtmp*qqrd2e; -pair_coul_dsf.cpp: r2inv = 1.0/rsq; -pair_coul_dsf.cpp: prefactor = qqrd2e*qtmp*q[j]/r; -pair_coul_dsf.cpp: t = 1.0 / (1.0 + EWALD_P*alpha*r); -pair_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS * erfcd + -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp: error->all(FLERR,"Pair style coul/dsf requires atom attribute q"); -pair_coul_dsf.cpp: f_shift = -(erfcc/cut_coulsq + 2.0/MY_PIS*alpha*erfcd/cut_coul); -pair_coul_dsf.cpp: e_shift = erfcc/cut_coul - f_shift*cut_coul; -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_dsf.cpp: r2inv = 1.0/rsq; -pair_coul_dsf.cpp: prefactor = factor_coul * force->qqrd2e * atom->q[i]*atom->q[j]/r; -pair_coul_dsf.cpp: t = 1.0 / (1.0 + EWALD_P*alpha*r); -pair_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS*erfcd + -pair_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- -pair_coul_streitz.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_coul_streitz.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_coul_streitz.cpp:------------------------------------------------------------------------- */ -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- -pair_coul_streitz.cpp:------------------------------------------------------------------------- */ -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- -pair_coul_streitz.cpp:------------------------------------------------------------------------- */ -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- -pair_coul_streitz.cpp:------------------------------------------------------------------------- */ -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- -pair_coul_streitz.cpp:------------------------------------------------------------------------- */ -pair_coul_streitz.cpp: // insure I,J args are * * -pair_coul_streitz.cpp: // read args that map atom types to elements in potential file -pair_coul_streitz.cpp: // map[i] = which element the Ith atom type is, -1 if NULL -pair_coul_streitz.cpp: // nelements = # of unique elements -pair_coul_streitz.cpp: // elements = list of element names -pair_coul_streitz.cpp: // read potential file and initialize potential parameters -pair_coul_streitz.cpp: // clear setflag since coeff() called once with I,J = * * -pair_coul_streitz.cpp: // set setflag i,j for type pairs where both are mapped to elements -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- -pair_coul_streitz.cpp:------------------------------------------------------------------------- */ -pair_coul_streitz.cpp: error->all(FLERR,"Pair style coul/streitz requires atom attribute q"); -pair_coul_streitz.cpp: // insure use of KSpace long-range solver when ewald specified, set g_ewald -pair_coul_streitz.cpp: // ptr to QEQ fix -pair_coul_streitz.cpp: //for (i = 0; i < modify->nfix; i++) -pair_coul_streitz.cpp: // if (strcmp(modify->fix[i]->style,"qeq") == 0) break; -pair_coul_streitz.cpp: //if (i < modify->nfix) fixqeq = (FixQEQ *) modify->fix[i]; -pair_coul_streitz.cpp: //else fixqeq = NULL; -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- -pair_coul_streitz.cpp:------------------------------------------------------------------------- */ -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp: // open file on proc 0 -pair_coul_streitz.cpp: sprintf(str,"Cannot open coul/streitz potential file %s",file); -pair_coul_streitz.cpp: // read each line out of file, skipping blank lines or leading '#' -pair_coul_streitz.cpp: // store line of params if all 3 element tags are in element list -pair_coul_streitz.cpp: // strip comment, skip line if blank -pair_coul_streitz.cpp: // concatenate additional lines until have params_per_line words -pair_coul_streitz.cpp: error->all(FLERR,"Incorrect format in coul/streitz potential file"); -pair_coul_streitz.cpp: // words = ptrs to all words in line -pair_coul_streitz.cpp: // ielement = 1st args -pair_coul_streitz.cpp: // load up parameter settings and error check their values -pair_coul_streitz.cpp: // parameter sanity check -pair_coul_streitz.cpp: error->all(FLERR,"Illegal coul/streitz parameter"); -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp: // set elem2param -pair_coul_streitz.cpp: // Wolf sum self energy -pair_coul_streitz.cpp: woself = 0.50*erfc(ar)/r + a/MY_PIS; // kc constant not yet multiplied -pair_coul_streitz.cpp: dwoself = -(erfc(ar)/r/r + 2.0*a/MY_PIS*exp(-ar*ar)/r); -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp: // Wolf sum -pair_coul_streitz.cpp: // self energy: ionization + wolf sum -pair_coul_streitz.cpp: // two-body interaction -pair_coul_streitz.cpp: // Streitz-Mintmire Coulomb integrals -pair_coul_streitz.cpp: // Wolf Sum -pair_coul_streitz.cpp: // Forces -pair_coul_streitz.cpp: fpair = -forcecoul / r; -pair_coul_streitz.cpp: // Ewald Sum -pair_coul_streitz.cpp: // self ionizition energy, only on i atom -pair_coul_streitz.cpp: // two-body interaction -pair_coul_streitz.cpp: // Streitz-Mintmire Coulomb integrals -pair_coul_streitz.cpp: // Ewald: real-space -pair_coul_streitz.cpp: // Forces -pair_coul_streitz.cpp: fpair = -forcecoul / r; -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp: double rinv = 1.0/r; -pair_coul_streitz.cpp: double sm1 = 11.0/8.0; -pair_coul_streitz.cpp: double sm2 = 3.00/4.0; -pair_coul_streitz.cpp: double sm3 = 1.00/6.0; -pair_coul_streitz.cpp: double rcinv = 1.0/rc; -pair_coul_streitz.cpp: (2.0 + 7.0/6.0*zei*rc + 1.0/3.0*zei2*rc*rc)); -pair_coul_streitz.cpp: (2.0 + 7.0/6.0*zei*r + 1.0/3.0*zei2*r*r)) - fshift; -pair_coul_streitz.cpp: e1 = zei*zej4/((zei+zej)*(zei+zej)*(zei-zej)*(zei-zej)); -pair_coul_streitz.cpp: e2 = zej*zei4/((zei+zej)*(zei+zej)*(zej-zei)*(zej-zei)); -pair_coul_streitz.cpp: e3 = (3.0*zei2*zej4-zej6) / -pair_coul_streitz.cpp: e4 = (3.0*zej2*zei4-zei6) / -pair_coul_streitz.cpp: eshift = -exp2zirsh*(e1+e3/rc) - exp2zjrsh*(e2+e4/rc); -pair_coul_streitz.cpp: fshift = (exp2zirsh*(2.0*zei*(e1+e3/rc) + e3*rcinv2) -pair_coul_streitz.cpp: + exp2zjrsh*(2.0*zej*(e2+e4/rc) + e4*rcinv2)); -pair_coul_streitz.cpp: ci_fifj = -exp2zir*(e1+e3/r) - exp2zjr*(e2+e4/r) -pair_coul_streitz.cpp: dci_fifj = (exp2zir*(2.0*zei*(e1+e3/r) + e3*rinv2) + -pair_coul_streitz.cpp: exp2zjr*(2.0*zej*(e2+e4/r) + e4*rinv2)) - fshift; -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp: etmp1 = erfcr/r - erfcrc/rc; -pair_coul_streitz.cpp: ftmp1 = -erfcr/r/r - 2.0*a/MY_PIS*derfcr/r - dwoself; -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp: double rinv = 1.0/r; -pair_coul_streitz.cpp: double sm1 = 11.0/8.0; -pair_coul_streitz.cpp: double sm2 = 3.00/4.0; -pair_coul_streitz.cpp: double sm3 = 1.00/6.0; -pair_coul_streitz.cpp: zei2*(2.0 + 7.0/6.0*zei*r + 1.0/3.0*zei2*r*r)); -pair_coul_streitz.cpp: e1 = zei*zej4/((zei+zej)*(zei+zej)*(zei-zej)*(zei-zej)); -pair_coul_streitz.cpp: e2 = zej*zei4/((zei+zej)*(zei+zej)*(zej-zei)*(zej-zei)); -pair_coul_streitz.cpp: e3 = (3.0*zei2*zej4-zej6) / -pair_coul_streitz.cpp: e4 = (3.0*zej2*zei4-zei6) / -pair_coul_streitz.cpp: ci_fifj = -exp2zir*(e1+e3/r) - exp2zjr*(e2+e4/r); -pair_coul_streitz.cpp: dci_fifj = (exp2zir*(2.0*zei*(e1+e3/r) + e3*rinv2) -pair_coul_streitz.cpp: + exp2zjr*(2.0*zej*(e2+e4/r) + e4*rinv2)); -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_streitz.cpp: etmp4 = qqrd2e * 0.50*qi*qj/r; -pair_coul_streitz.cpp: ftmp4 = etmp4 * (erfcr + 2.0/MY_PIS*a*r*derfcr); -pair_coul_streitz.cpp: ftmp = ftmp3 - ftmp4/r; -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- -pair_coul_streitz.cpp:------------------------------------------------------------------------- */ -pair_coul_streitz.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_coul_wolf.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_wolf.cpp: single_enable = 0; // NOTE: single() method below is not yet correct -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- */ -pair_coul_wolf.cpp: // self and shifted coulombic energy -pair_coul_wolf.cpp: e_shift = erfc(alf*cut_coul)/cut_coul; -pair_coul_wolf.cpp: f_shift = -(e_shift+ 2.0*alf/MY_PIS * exp(-alf*alf*cut_coul*cut_coul)) / -pair_coul_wolf.cpp: // loop over neighbors of my atoms -pair_coul_wolf.cpp: e_self = -(e_shift/2.0 + alf/MY_PIS) * qisq*qqrd2e; -pair_coul_wolf.cpp: prefactor = qqrd2e*qtmp*q[j]/r; -pair_coul_wolf.cpp: dvdrr = (erfcc/rsq + 2.0*alf/MY_PIS * erfcd/r) + f_shift; -pair_coul_wolf.cpp: fpair = forcecoul / rsq; -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp: error->all(FLERR,"Pair coul/wolf requires atom attribute q"); -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp:/* ---------------------------------------------------------------------- -pair_coul_wolf.cpp:------------------------------------------------------------------------- */ -pair_coul_wolf.cpp: e_shift = erfc(alf*cut_coul) / cut_coul; -pair_coul_wolf.cpp: f_shift = -(e_shift+ 2.0*alf/MY_PIS * exp(-alf*alf*cut_coul*cut_coul)) / -pair_coul_wolf.cpp: prefactor = force->qqrd2e * atom->q[i]*atom->q[j]/r; -pair_coul_wolf.cpp: dvdrr = (erfcc/rsq + 2.0*alf/MY_PIS * erfcd/r) + f_shift; -pair_coul_wolf.cpp: fforce = forcecoul / rsq; -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:// allocate space for static class instance variable and initialize it -pair.cpp:/* ---------------------------------------------------------------------- */ -pair.cpp: // pair_modify settingsx -pair.cpp: // KOKKOS per-fix data masks -pair.cpp:/* ---------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp: } else if (strcmp(arg[iarg],"table/disp") == 0) { -pair.cpp: } else if (strcmp(arg[iarg],"tabinner/disp") == 0) { -pair.cpp:/* ---------------------------------------------------------------------- */ -pair.cpp: // for manybody potentials -pair.cpp: // check if bonded exclusions could invalidate the neighbor list -pair.cpp: "bonds/angles/dihedrals and special_bond exclusions"); -pair.cpp: // I,I coeffs must be set -pair.cpp: // init_one() will check if I,J is set explicitly or inferred by mixing -pair.cpp: // style-specific initialization -pair.cpp: // call init_one() for each I,J -pair.cpp: // set cutsq for each I,J, used to neighbor -pair.cpp: // cutforce = max of all I,J cutoffs -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp: // generalize this error message if reinit() is used by more than fix adapt -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp: // linear lookup tables of length N = 2^ncoultablebits -pair.cpp: // stored value = value at lower edge of bin -pair.cpp: // d values = delta from lower edge to upper edge of bin -pair.cpp: egamma = 1.0 - (r/cut_coul)*force->kspace->gamma(r/cut_coul); -pair.cpp: fgamma = 1.0 + (rsq_lookup.f/cut_coulsq)* -pair.cpp: force->kspace->dgamma(r/cut_coul); -pair.cpp: ctable[i] = qqrd2e/r; -pair.cpp: ftable[i] = qqrd2e/r * fgamma; -pair.cpp: etable[i] = qqrd2e/r * egamma; -pair.cpp: ftable[i] = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); -pair.cpp: etable[i] = qqrd2e/r * derfc; -pair.cpp: ptable[i] = qqrd2e/r; -pair.cpp: ftable[i] = qqrd2e/r * (fgamma - 1.0); -pair.cpp: etable[i] = qqrd2e/r * egamma; -pair.cpp: vtable[i] = qqrd2e/r * fgamma; -pair.cpp: ftable[i] = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2 - 1.0); -pair.cpp: etable[i] = qqrd2e/r * derfc; -pair.cpp: vtable[i] = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); -pair.cpp: rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]); -pair.cpp: ftable[i] += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw); -pair.cpp: ctable[i] = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw); -pair.cpp: if (msmflag) ftable[i] = qqrd2e/r * fgamma; -pair.cpp: else ftable[i] = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); -pair.cpp: ctable[i] = qqrd2e/r; -pair.cpp: drtable[i] = 1.0/(rtable[i+1] - rtable[i]); -pair.cpp: // get the delta values for the last table entries -pair.cpp: // tables are connected periodically between 0 and ntablem1 -pair.cpp: drtable[ntablem1] = 1.0/(rtable[0] - rtable[ntablem1]); -pair.cpp: // get the correct delta values at itablemax -pair.cpp: // smallest r is in bin itablemin -pair.cpp: // largest r is in bin itablemax, which is itablemin-1, -pair.cpp: // or ntablem1 if itablemin=0 -pair.cpp: // deltas at itablemax only needed if corresponding rsq < cut*cut -pair.cpp: // if so, compute deltas between rsq and cut*cut -pair.cpp: egamma = 1.0 - (r/cut_coul)*force->kspace->gamma(r/cut_coul); -pair.cpp: fgamma = 1.0 + (rsq_lookup.f/cut_coulsq)* -pair.cpp: force->kspace->dgamma(r/cut_coul); -pair.cpp: c_tmp = qqrd2e/r; -pair.cpp: f_tmp = qqrd2e/r * fgamma; -pair.cpp: e_tmp = qqrd2e/r * egamma; -pair.cpp: f_tmp = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); -pair.cpp: e_tmp = qqrd2e/r * derfc; -pair.cpp: p_tmp = qqrd2e/r; -pair.cpp: f_tmp = qqrd2e/r * (fgamma - 1.0); -pair.cpp: e_tmp = qqrd2e/r * egamma; -pair.cpp: v_tmp = qqrd2e/r * fgamma; -pair.cpp: f_tmp = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2 - 1.0); -pair.cpp: e_tmp = qqrd2e/r * derfc; -pair.cpp: v_tmp = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); -pair.cpp: rsw = (r - cut_respa[2])/(cut_respa[3] - cut_respa[2]); -pair.cpp: f_tmp += qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw); -pair.cpp: c_tmp = qqrd2e/r * rsw*rsw*(3.0 - 2.0*rsw); -pair.cpp: if (msmflag) f_tmp = qqrd2e/r * fgamma; -pair.cpp: else f_tmp = qqrd2e/r * (derfc + MY_ISPI4*grij*expm2); -pair.cpp: c_tmp = qqrd2e/r; -pair.cpp: drtable[itablemax] = 1.0/(rsq_lookup.f - rtable[itablemax]); -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp: ------------------------------------------------------------------------- */ -pair.cpp: // linear lookup tables of length N = 2^ndisptablebits -pair.cpp: // stored value = value at lower edge of bin -pair.cpp: // d values = delta from lower edge to upper edge of bin -pair.cpp: register double x2 = g2*rsq, a2 = 1.0/x2; -pair.cpp: drdisptable[i] = 1.0/(rdisptable[i+1] - rdisptable[i]); -pair.cpp: // get the delta values for the last table entries -pair.cpp: // tables are connected periodically between 0 and ntablem1 -pair.cpp: drdisptable[ntablem1] = 1.0/(rdisptable[0] - rdisptable[ntablem1]); -pair.cpp: // get the correct delta values at itablemax -pair.cpp: // smallest r is in bin itablemin -pair.cpp: // largest r is in bin itablemax, which is itablemin-1, -pair.cpp: // or ntablem1 if itablemin=0 -pair.cpp: // deltas at itablemax only needed if corresponding rsq < cut*cut -pair.cpp: // if so, compute deltas between rsq and cut*cut -pair.cpp: register double x2 = g2*rsq, a2 = 1.0/x2; -pair.cpp: drdisptable[itablemax] = 1.0/(rsq_lookup.f - rdisptable[itablemax]); -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp: ------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp: pow(sig1,3.0) * pow(sig2,3.0) / (pow(sig1,6.0) + pow(sig2,6.0))); -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp: return pow((0.5 * (pow(sig1,6.0) + pow(sig2,6.0))),1.0/6.0); -pair.cpp:/* ---------------------------------------------------------------------- */ -pair.cpp:/* ------------------------------------------------------------------- -pair.cpp:---------------------------------------------------------------------- */ -pair.cpp:/* ------------------------------------------------------------------- -pair.cpp:---------------------------------------------------------------------- */ -pair.cpp: // compact the list of active computes -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp: eflag_atom = eflag / 2; -pair.cpp: vflag_atom = vflag / 4; -pair.cpp: // reallocate per-atom arrays if necessary -pair.cpp: // zero accumulators -pair.cpp: // use force->newton instead of newton_pair -pair.cpp: // b/c some bonds/dihedrals call pair::ev_tally with pairwise info -pair.cpp: // if vflag_global = 2 and pair::compute() calls virial_fdotr_compute() -pair.cpp: // compute global virial via (F dot r) instead of via pairwise summation -pair.cpp: // unset other flags as appropriate -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp: ------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp: ------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp: ------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp: called by REAX/C potential, newton_pair is always on -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp: // sum over force on all particles including ghosts -pair.cpp: // neighbor includegroup flag is set -pair.cpp: // sum over force on initial nfirst particles and ghosts -pair.cpp: // prevent multiple calls to update the virial -pair.cpp: // when a hybrid pair style uses both a gpu and non-gpu pair style -pair.cpp: // or when respa is used with gpu pair styles -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp: write a table of pair potential energy/force vs distance to a file -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp: // parse arguments -pair.cpp: // open file in append mode -pair.cpp: // print header in format used by pair_style table -pair.cpp: // initialize potentials before evaluating pair potential -pair.cpp: // insures all pair coeffs are set and force constants -pair.cpp: // also initialize neighbor so that neighbor requests are processed -pair.cpp: // NOTE: might be safest to just do lmp->init() -pair.cpp: // if pair style = any of EAM, swap in dummy fp vector -pair.cpp: // if atom style defines charge, swap in dummy q vec -pair.cpp: // evaluate energy and force at each of N distances -pair.cpp: r = inner + (outer-inner) * i/(n-1); -pair.cpp: rsq = inner*inner + (outer*outer - inner*inner) * i/(n-1); -pair.cpp: // restore original vecs that were swapped in for -pair.cpp:/* ---------------------------------------------------------------------- -pair.cpp:------------------------------------------------------------------------- */ -pair.cpp: error->all(FLERR,"Bitmapped lookup tables require int/float be same size"); -pair.cpp: double required_range = outer*outer / pow(double(2),(double)nlowermin); -pair.cpp:/* ---------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_dpd.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- */ -pair_dpd.cpp: double dtinvsqrt = 1.0/sqrt(update->dt); -pair_dpd.cpp: // loop over neighbors of my atoms -pair_dpd.cpp: if (r < EPSILON) continue; // r can be 0.0 in DPD systems -pair_dpd.cpp: rinv = 1.0/r; -pair_dpd.cpp: wd = 1.0 - r/cut[itype][jtype]; -pair_dpd.cpp: // conservative force = a0 * wd -pair_dpd.cpp: // drag force = -gamma * wd^2 * (delx dot delv) / r -pair_dpd.cpp: // random force = sigma * wd * rnd * dtinvsqrt; -pair_dpd.cpp: // unshifted eng of conservative term: -pair_dpd.cpp: // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); -pair_dpd.cpp: // eng shifted to 0.0 at cutoff -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp: // initialize Marsaglia RNG with processor-unique seed -pair_dpd.cpp: // reset cutoffs that have been explicitly set -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp: // if newton off, forces between atoms ij will be double computed -pair_dpd.cpp: // using different random numbers -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp: // initialize Marsaglia RNG with processor-unique seed -pair_dpd.cpp: // same seed that pair_style command initially specified -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- -pair_dpd.cpp:------------------------------------------------------------------------- */ -pair_dpd.cpp:/* ---------------------------------------------------------------------- */ -pair_dpd.cpp: rinv = 1.0/r; -pair_dpd.cpp: wd = 1.0 - r/cut[itype][jtype]; -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- -pair_dpd_tstat.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_dpd_tstat.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- */ -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- */ -pair_dpd_tstat.cpp: // adjust sigma if target T is changing -pair_dpd_tstat.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -pair_dpd_tstat.cpp: double dtinvsqrt = 1.0/sqrt(update->dt); -pair_dpd_tstat.cpp: // loop over neighbors of my atoms -pair_dpd_tstat.cpp: if (r < EPSILON) continue; // r can be 0.0 in DPD systems -pair_dpd_tstat.cpp: rinv = 1.0/r; -pair_dpd_tstat.cpp: wd = 1.0 - r/cut[itype][jtype]; -pair_dpd_tstat.cpp: // drag force = -gamma * wd^2 * (delx dot delv) / r -pair_dpd_tstat.cpp: // random force = sigma * wd * rnd * dtinvsqrt; -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- -pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ -pair_dpd_tstat.cpp: // initialize Marsaglia RNG with processor-unique seed -pair_dpd_tstat.cpp: // reset cutoffs that have been explicitly set -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- -pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- -pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- -pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- -pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- -pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ -pair_dpd_tstat.cpp: // initialize Marsaglia RNG with processor-unique seed -pair_dpd_tstat.cpp: // same seed that pair_style command initially specified -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- -pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ -pair_dpd_tstat.cpp:/* ---------------------------------------------------------------------- -pair_dpd_tstat.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_gauss.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- */ -pair_gauss.cpp: // loop over neighbors of my atoms -pair_gauss.cpp: // define a Gaussian well to be occupied if -pair_gauss.cpp: // the site it interacts with is within the force maximum -pair_gauss.cpp: if (eflag_global && rsq < 0.5/b[itype][jtype]) occ++; -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp: // reset cutoffs that have been explicitly set -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp: double si = sqrt(0.5/fabs(b[i][i])); -pair_gauss.cpp: double sj = sqrt(0.5/fabs(b[j][j])); -pair_gauss.cpp: b[i][j] = 0.5 / (sij*sij); -pair_gauss.cpp: // Negative "a" values are useful for simulating repulsive particles. -pair_gauss.cpp: // If either of the particles is repulsive (a<0), then the -pair_gauss.cpp: // interaction between both is repulsive. -pair_gauss.cpp: // cutoff correction to energy -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- -pair_gauss.cpp:------------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- */ -pair_gauss.cpp:/* ---------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_hybrid.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp: accumulate sub-style global/peratom energy/virial in hybrid -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: // if no_virial_fdotr_compute is set and global component of -pair_hybrid.cpp: // incoming vflag = 2, then -pair_hybrid.cpp: // reset vflag as if global component were 1 -pair_hybrid.cpp: // necessary since one or more sub-styles cannot compute virial as F dot r -pair_hybrid.cpp: if (no_virial_fdotr_compute && vflag % 4 == 2) vflag = 1 + vflag/4 * 4; -pair_hybrid.cpp: // check if global component of incoming vflag = 2 -pair_hybrid.cpp: // if so, reset vflag passed to substyle as if it were 0 -pair_hybrid.cpp: // necessary so substyle will not invoke virial_fdotr_compute() -pair_hybrid.cpp: if (vflag % 4 == 2) vflag_substyle = vflag/4 * 4; -pair_hybrid.cpp: // check if we are running with r-RESPA using the hybrid keyword -pair_hybrid.cpp: // invoke compute() unless compute flag is turned off or -pair_hybrid.cpp: // outerflag is set and sub-style has a compute_outer() method -pair_hybrid.cpp: // jump to next sub-style if r-RESPA does not want global accumulated data -pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: // delete old lists, since cannot just change settings -pair_hybrid.cpp: // allocate list of sub-styles as big as possibly needed if no extra args -pair_hybrid.cpp: // allocate each sub-style -pair_hybrid.cpp: // allocate uses suffix, but don't store suffix version in keywords, -pair_hybrid.cpp: // else syntax in coeff() will not match -pair_hybrid.cpp: // call settings() with set of args that are not pair style names -pair_hybrid.cpp: // use force->pair_map to determine which args these are -pair_hybrid.cpp: // multiple[i] = 1 to M if sub-style used multiple times, else 0 -pair_hybrid.cpp: // set pair flags from sub-style flags -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: // set comm_forward, comm_reverse, comm_reverse_off to max of any sub-style -pair_hybrid.cpp: // single_enable = 1 if any sub-style is set -pair_hybrid.cpp: // respa_enable = 1 if any sub-style is set -pair_hybrid.cpp: // manybody_flag = 1 if any sub-style is set -pair_hybrid.cpp: // no_virial_fdotr_compute = 1 if any sub-style is set -pair_hybrid.cpp: // ghostneigh = 1 if any sub-style is set -pair_hybrid.cpp: // ewaldflag, pppmflag, msmflag, dipoleflag, dispersionflag, tip4pflag = 1 -pair_hybrid.cpp: // if any sub-style is set -pair_hybrid.cpp: // compute_flag = 1 if any sub-style is set -pair_hybrid.cpp: // single_extra = min of all sub-style single_extra -pair_hybrid.cpp: // allocate svector -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: // 3rd arg = pair sub-style name -pair_hybrid.cpp: // 4th arg = pair sub-style index if name used multiple times -pair_hybrid.cpp: // allow for "none" as valid sub-style name -pair_hybrid.cpp: // move 1st/2nd args to 2nd/3rd args -pair_hybrid.cpp: // if multflag: move 1st/2nd args to 3rd/4th args -pair_hybrid.cpp: // just copy ptrs, since arg[] points into original input line -pair_hybrid.cpp: // invoke sub-style coeff() starting with 1st remaining arg -pair_hybrid.cpp: // if sub-style only allows one pair coeff call (with * * and type mapping) -pair_hybrid.cpp: // then unset setflag/map assigned to that style before setting it below -pair_hybrid.cpp: // in case pair coeff for this sub-style is being called for 2nd time -pair_hybrid.cpp: // set setflag and which type pairs map to which sub-style -pair_hybrid.cpp: // if sub-style is none: set hybrid setflag, wipe out map -pair_hybrid.cpp: // else: set hybrid setflag & map only if substyle setflag is set -pair_hybrid.cpp: // previous mappings are wiped out -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: // error if a sub-style is not used -pair_hybrid.cpp: // check if special_lj/special_coul overrides are compatible -pair_hybrid.cpp: // each sub-style makes its neighbor list request(s) -pair_hybrid.cpp: // create skip lists inside each pair neigh request -pair_hybrid.cpp: // any kind of list can have its skip flag set in this loop -pair_hybrid.cpp: // istyle = associated sub-style for the request -pair_hybrid.cpp: // allocate iskip and ijskip -pair_hybrid.cpp: // initialize so as to skip all pair types -pair_hybrid.cpp: // set ijskip = 0 if type pair matches any entry in sub-style map -pair_hybrid.cpp: // set ijskip = 0 if mixing will assign type pair to this sub-style -pair_hybrid.cpp: // will occur if type pair is currently unassigned -pair_hybrid.cpp: // and both I,I and J,J are assigned to single sub-style -pair_hybrid.cpp: // and sub-style for both I,I and J,J match istyle -pair_hybrid.cpp: // set iskip = 1 only if all ijskip for itype are 1 -pair_hybrid.cpp: // if any skipping occurs -pair_hybrid.cpp: // set request->skip and copy iskip and ijskip into request -pair_hybrid.cpp: // else delete iskip and ijskip -pair_hybrid.cpp: // no skipping if pair style assigned to all type pairs -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: // if I,J is not set explicitly: -pair_hybrid.cpp: // perform mixing only if I,I sub-style = J,J sub-style -pair_hybrid.cpp: // also require I,I and J,J are both assigned to single sub-style -pair_hybrid.cpp: // call init/mixing for all sub-styles of I,J -pair_hybrid.cpp: // set cutsq in sub-style just as Pair::init() does via call to init_one() -pair_hybrid.cpp: // set cutghost for I,J and J,I just as sub-style does -pair_hybrid.cpp: // sum tail corrections for I,J -pair_hybrid.cpp: // return max cutoff of all sub-styles assigned to I,J -pair_hybrid.cpp: // if no sub-styles assigned to I,J (pair_coeff none), cutmax = 0.0 returned -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: // each sub-style writes its settings, but no coeff info -pair_hybrid.cpp: // write out per style special settings, if present -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: // allocate list of sub-styles -pair_hybrid.cpp: // each sub-style is created via new_pair() -pair_hybrid.cpp: // each reads its settings, but no coeff info -pair_hybrid.cpp: // read back per style special settings, if present -pair_hybrid.cpp: // multiple[i] = 1 to M if sub-style used multiple times, else 0 -pair_hybrid.cpp: // set pair flags from sub-style flags -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: // copy substyle extra values into hybrid's svector -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: // if 1st keyword is pair, apply other keywords to one sub-style -pair_hybrid.cpp: // if 2nd keyword (after pair) is special: -pair_hybrid.cpp: // invoke modify_special() for the sub-style -pair_hybrid.cpp: // if 2nd keyword (after pair) is compute/tally: -pair_hybrid.cpp: // set flag to register USER-TALLY computes accordingly -pair_hybrid.cpp: if (iarg < narg && strcmp(arg[iarg],"compute/tally") == 0) { -pair_hybrid.cpp: error->all(FLERR,"Illegal pair_modify compute/tally command"); -pair_hybrid.cpp: } else error->all(FLERR,"Illegal pair_modify compute/tally command"); -pair_hybrid.cpp: // apply the remaining keywords to the base pair style itself and the -pair_hybrid.cpp: // sub-style except for "pair" and "special". -pair_hybrid.cpp: // the former is important for some keywords like "tail" or "compute" -pair_hybrid.cpp: // apply all keywords to pair hybrid itself and every sub-style -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp: if (strcmp(arg[0],"lj/coul") == 0) { -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid.cpp:/* ---------------------------------------------------------------------- -pair_hybrid.cpp:------------------------------------------------------------------------- */ -pair_hybrid_overlay.cpp:/* ---------------------------------------------------------------------- -pair_hybrid_overlay.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_hybrid_overlay.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_hybrid_overlay.cpp:------------------------------------------------------------------------- */ -pair_hybrid_overlay.cpp:/* ---------------------------------------------------------------------- */ -pair_hybrid_overlay.cpp:/* ---------------------------------------------------------------------- -pair_hybrid_overlay.cpp:------------------------------------------------------------------------- */ -pair_hybrid_overlay.cpp: // 3rd arg = pair sub-style name -pair_hybrid_overlay.cpp: // 4th arg = pair sub-style index if name used multiple times -pair_hybrid_overlay.cpp: // allow for "none" as valid sub-style name -pair_hybrid_overlay.cpp: // move 1st/2nd args to 2nd/3rd args -pair_hybrid_overlay.cpp: // if multflag: move 1st/2nd args to 3rd/4th args -pair_hybrid_overlay.cpp: // just copy ptrs, since arg[] points into original input line -pair_hybrid_overlay.cpp: // invoke sub-style coeff() starting with 1st remaining arg -pair_hybrid_overlay.cpp: // set setflag and which type pairs map to which sub-style -pair_hybrid_overlay.cpp: // if sub-style is none: set hybrid subflag, wipe out map -pair_hybrid_overlay.cpp: // else: set hybrid setflag & map only if substyle setflag is set -pair_hybrid_overlay.cpp: // if sub-style is new for type pair, add as multiple mapping -pair_hybrid_overlay.cpp: // if sub-style exists for type pair, don't add, just update coeffs -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj96_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj96_cut.cpp: // loop over neighbors of my atoms -pair_lj96_cut.cpp: r2inv = 1.0/rsq; -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj96_cut.cpp: // loop over neighbors of my atoms -pair_lj96_cut.cpp: r2inv = 1.0/rsq; -pair_lj96_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj96_cut.cpp: // loop over neighbors of my atoms -pair_lj96_cut.cpp: r2inv = 1.0/rsq; -pair_lj96_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; -pair_lj96_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj96_cut.cpp: // loop over neighbors of my atoms -pair_lj96_cut.cpp: r2inv = 1.0/rsq; -pair_lj96_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; -pair_lj96_cut.cpp: r2inv = 1.0/rsq; -pair_lj96_cut.cpp: r2inv = 1.0/rsq; -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp: // reset cutoffs that have been explicitly set -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp: // request regular or rRESPA neighbor lists -pair_lj96_cut.cpp: // set rRESPA cutoffs -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp: double ratio = sigma[i][j] / cut[i][j]; -pair_lj96_cut.cpp: // check interior rRESPA cutoff -pair_lj96_cut.cpp: // compute I,J contribution to long-range tail correction -pair_lj96_cut.cpp: // count total # of atoms of type I and J via Allreduce -pair_lj96_cut.cpp: sig6 * (sig3 - 2.0*rc3) / (6.0*rc6); -pair_lj96_cut.cpp: sig6 * (3.0*sig3 - 4.0*rc3) / (6.0*rc6); -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj96_cut.cpp:------------------------------------------------------------------------- */ -pair_lj96_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj96_cut.cpp: r2inv = 1.0/rsq; -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- -pair_lj_cubic.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj_cubic.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj_cubic.cpp:------------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- -pair_lj_cubic.cpp:------------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cubic.cpp: // loop over neighbors of my atoms -pair_lj_cubic.cpp: r2inv = 1.0/rsq; -pair_lj_cubic.cpp: t = (r - cut_inner[itype][jtype])/rmin; -pair_lj_cubic.cpp: forcelj = epsilon[itype][jtype]*(-DPHIDS + A3*t*t/2.0)*r/rmin; -pair_lj_cubic.cpp: (PHIS + DPHIDS*t - A3*t*t*t/6.0); -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- -pair_lj_cubic.cpp:------------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- -pair_lj_cubic.cpp:------------------------------------------------------------------------- */ -pair_lj_cubic.cpp: // reset cutoffs that have been explicitly set -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- -pair_lj_cubic.cpp:------------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- -pair_lj_cubic.cpp:------------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- -pair_lj_cubic.cpp:------------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- -pair_lj_cubic.cpp:------------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- -pair_lj_cubic.cpp:------------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- -pair_lj_cubic.cpp:------------------------------------------------------------------------- */ -pair_lj_cubic.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cubic.cpp: r2inv = 1.0/rsq; -pair_lj_cubic.cpp: t = (r - cut_inner[itype][jtype])/rmin; -pair_lj_cubic.cpp: forcelj = epsilon[itype][jtype]*(-DPHIDS + A3*t*t/2.0)*r/rmin; -pair_lj_cubic.cpp: (PHIS + DPHIDS*t - A3*t*t*t/6.0); -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj_cut_coul_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp: // loop over neighbors of my atoms -pair_lj_cut_coul_cut.cpp: r2inv = 1.0/rsq; -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp: // reset cutoffs that have been explicitly set -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp: error->all(FLERR,"Pair style lj/cut/coul/cut requires atom attribute q"); -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp: double ratio = sigma[i][j] / cut_lj[i][j]; -pair_lj_cut_coul_cut.cpp: // compute I,J contribution to long-range tail correction -pair_lj_cut_coul_cut.cpp: // count total # of atoms of type I and J via Allreduce -pair_lj_cut_coul_cut.cpp: sig6 * (sig6 - 3.0*rc6) / (9.0*rc9); -pair_lj_cut_coul_cut.cpp: sig6 * (2.0*sig6 - 3.0*rc6) / (9.0*rc9); -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_cut.cpp: r2inv = 1.0/rsq; -pair_lj_cut_coul_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_debye.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj_cut_coul_debye.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj_cut_coul_debye.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_debye.cpp: // loop over neighbors of my atoms -pair_lj_cut_coul_debye.cpp: r2inv = 1.0/rsq; -pair_lj_cut_coul_debye.cpp: rinv = 1.0/r; -pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_debye.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_debye.cpp: // reset cutoffs that were previously set from data file -pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_debye.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_debye.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_debye.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_debye.cpp: r2inv = 1.0/rsq; -pair_lj_cut_coul_debye.cpp: rinv = 1.0/r; -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj_cut_coul_dsf.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp: // loop over neighbors of my atoms -pair_lj_cut_coul_dsf.cpp: double e_self = -(e_shift/2.0 + alpha/MY_PIS) * qtmp*qtmp*qqrd2e; -pair_lj_cut_coul_dsf.cpp: r2inv = 1.0/rsq; -pair_lj_cut_coul_dsf.cpp: prefactor = qqrd2e*qtmp*q[j]/r; -pair_lj_cut_coul_dsf.cpp: t = 1.0 / (1.0 + EWALD_P*alpha*r); -pair_lj_cut_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS * erfcd + -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp: // reset cutoffs that have been explicitly set -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp: error->all(FLERR,"Pair style lj/cut/coul/dsf requires atom attribute q"); -pair_lj_cut_coul_dsf.cpp: f_shift = -(erfcc/cut_coulsq + 2.0/MY_PIS*alpha*erfcd/cut_coul); -pair_lj_cut_coul_dsf.cpp: e_shift = erfcc/cut_coul - f_shift*cut_coul; -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp: double ratio = sigma[i][j] / cut_lj[i][j]; -pair_lj_cut_coul_dsf.cpp: // compute I,J contribution to long-range tail correction -pair_lj_cut_coul_dsf.cpp: // count total # of atoms of type I and J via Allreduce -pair_lj_cut_coul_dsf.cpp: sig6 * (sig6 - 3.0*rc6) / (9.0*rc9); -pair_lj_cut_coul_dsf.cpp: sig6 * (2.0*sig6 - 3.0*rc6) / (9.0*rc9); -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut_coul_dsf.cpp:------------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut_coul_dsf.cpp: r2inv = 1.0/rsq; -pair_lj_cut_coul_dsf.cpp: prefactor = factor_coul * force->qqrd2e * atom->q[i]*atom->q[j]/r; -pair_lj_cut_coul_dsf.cpp: forcecoul = prefactor * (erfcc/r + 2.0*alpha/MY_PIS * erfcd + -pair_lj_cut_coul_dsf.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut.cpp: // loop over neighbors of my atoms -pair_lj_cut.cpp: r2inv = 1.0/rsq; -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut.cpp: // loop over neighbors of my atoms -pair_lj_cut.cpp: r2inv = 1.0/rsq; -pair_lj_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut.cpp: // loop over neighbors of my atoms -pair_lj_cut.cpp: r2inv = 1.0/rsq; -pair_lj_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; -pair_lj_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut.cpp: // loop over neighbors of my atoms -pair_lj_cut.cpp: r2inv = 1.0/rsq; -pair_lj_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; -pair_lj_cut.cpp: r2inv = 1.0/rsq; -pair_lj_cut.cpp: r2inv = 1.0/rsq; -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp: // reset cutoffs that have been explicitly set -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp: // request regular or rRESPA neighbor lists -pair_lj_cut.cpp: // set rRESPA cutoffs -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp: double ratio = sigma[i][j] / cut[i][j]; -pair_lj_cut.cpp: // check interior rRESPA cutoff -pair_lj_cut.cpp: // compute I,J contribution to long-range tail correction -pair_lj_cut.cpp: // count total # of atoms of type I and J via Allreduce -pair_lj_cut.cpp: sig6 * (sig6 - 3.0*rc6) / (9.0*rc9); -pair_lj_cut.cpp: sig6 * (2.0*sig6 - 3.0*rc6) / (9.0*rc9); -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- -pair_lj_cut.cpp:------------------------------------------------------------------------- */ -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_cut.cpp: r2inv = 1.0/rsq; -pair_lj_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj_expand.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_expand.cpp: // loop over neighbors of my atoms -pair_lj_expand.cpp: r2inv = 1.0/rshiftsq; -pair_lj_expand.cpp: fpair = factor_lj*forcelj/rshift/r; -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp: // reset cutoffs that have been explicitly set -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp: // always mix shift arithmetically -pair_lj_expand.cpp: double ratio = sigma[i][j] / cut[i][j]; -pair_lj_expand.cpp: // compute I,J contribution to long-range tail correction -pair_lj_expand.cpp: // count total # of atoms of type I and J via Allreduce -pair_lj_expand.cpp: ((1.0/9.0 + 2.0*shift1/(10.0*rc1) + shift2/(11.0*rc2))*sig6/rc9 - -pair_lj_expand.cpp: (1.0/3.0 + 2.0*shift1/(4.0*rc1) + shift2/(5.0*rc2))/rc3); -pair_lj_expand.cpp: ((1.0/9.0 + 3.0*shift1/(10.0*rc1) + -pair_lj_expand.cpp: 3.0*shift2/(11.0*rc2) + shift3/(12.0*rc3))*2.0*sig6/rc9 - -pair_lj_expand.cpp: (1.0/3.0 + 3.0*shift1/(4.0*rc1) + -pair_lj_expand.cpp: 3.0*shift2/(5.0*rc2) + shift3/(6.0*rc3))/rc3); -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- -pair_lj_expand.cpp:------------------------------------------------------------------------- */ -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_expand.cpp: r2inv = 1.0/rshiftsq; -pair_lj_expand.cpp: fforce = factor_lj*forcelj/rshift/r; -pair_lj_expand.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj_gromacs_coul_gromacs.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp: // loop over neighbors of my atoms -pair_lj_gromacs_coul_gromacs.cpp: r2inv = 1.0/rsq; -pair_lj_gromacs_coul_gromacs.cpp: // skip if qi or qj = 0.0 since this potential may be used as -pair_lj_gromacs_coul_gromacs.cpp: // coarse-grain model with many uncharged atoms -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp: "Pair style lj/gromacs/coul/gromacs requires atom attribute q"); -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp: double r6inv = 1.0/pow(cut_lj,6.0); -pair_lj_gromacs_coul_gromacs.cpp: double r8inv = 1.0/pow(cut_lj,8.0); -pair_lj_gromacs_coul_gromacs.cpp: double t2inv = 1.0/(t*t); -pair_lj_gromacs_coul_gromacs.cpp: double t3inv = t2inv/t; -pair_lj_gromacs_coul_gromacs.cpp: double t3 = 1.0/t3inv; -pair_lj_gromacs_coul_gromacs.cpp: double c6 = r6inv - t3*(6.0*a6/3.0 + 6.0*b6*t/4.0); -pair_lj_gromacs_coul_gromacs.cpp: double c12 = r6inv*r6inv - t3*(12.0*a12/3.0 + 12.0*b12*t/4.0); -pair_lj_gromacs_coul_gromacs.cpp: ljsw3[i][j] = -lj3[i][j]*12.0*a12/3.0 + lj4[i][j]*6.0*a6/3.0; -pair_lj_gromacs_coul_gromacs.cpp: ljsw4[i][j] = -lj3[i][j]*12.0*b12/4.0 + lj4[i][j]*6.0*b6/4.0; -pair_lj_gromacs_coul_gromacs.cpp: double r3inv = 1.0/pow(cut_coul,3.0); -pair_lj_gromacs_coul_gromacs.cpp: t2inv = 1.0/(t*t); -pair_lj_gromacs_coul_gromacs.cpp: t3inv = t2inv/t; -pair_lj_gromacs_coul_gromacs.cpp: coulsw3 = -a1/3.0; -pair_lj_gromacs_coul_gromacs.cpp: coulsw4 = -b1/4.0; -pair_lj_gromacs_coul_gromacs.cpp: coulsw5 = 1.0/cut_coul - t*t*t*(a1/3.0 + b1*t/4.0); -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs_coul_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_gromacs_coul_gromacs.cpp: r2inv = 1.0/rsq; -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj_gromacs.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_gromacs.cpp: // loop over neighbors of my atoms -pair_lj_gromacs.cpp: r2inv = 1.0/rsq; -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp: // reset cutoffs that have been explicitly set -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp: double r6inv = 1.0/pow(cut[i][j],6.0); -pair_lj_gromacs.cpp: double r8inv = 1.0/pow(cut[i][j],8.0); -pair_lj_gromacs.cpp: double t2inv = 1.0/(t*t); -pair_lj_gromacs.cpp: double t3inv = t2inv/t; -pair_lj_gromacs.cpp: double t3 = 1.0/t3inv; -pair_lj_gromacs.cpp: double c6 = r6inv - t3*(6.0*a6/3.0 + 6.0*b6*t/4.0); -pair_lj_gromacs.cpp: double c12 = r6inv*r6inv - t3*(12.0*a12/3.0 + 12.0*b12*t/4.0); -pair_lj_gromacs.cpp: ljsw3[i][j] = -lj3[i][j]*12.0*a12/3.0 + lj4[i][j]*6.0*a6/3.0; -pair_lj_gromacs.cpp: ljsw4[i][j] = -lj3[i][j]*12.0*b12/4.0 + lj4[i][j]*6.0*b6/4.0; -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- -pair_lj_gromacs.cpp:------------------------------------------------------------------------- */ -pair_lj_gromacs.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_gromacs.cpp: r2inv = 1.0/rsq; -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj_smooth.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_smooth.cpp: // loop over neighbors of my atoms -pair_lj_smooth.cpp: r2inv = 1.0/rsq; -pair_lj_smooth.cpp: ljsw2[itype][jtype]*tsq/2.0 - ljsw3[itype][jtype]*tsq*t/3.0 - -pair_lj_smooth.cpp: ljsw4[itype][jtype]*tsq*tsq/4.0 - offset[itype][jtype]; -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp: // reset cutoffs that have been explicitly set -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp: double r6inv = 1.0/pow(cut_inner[i][j],6.0); -pair_lj_smooth.cpp: double ratio = sigma[i][j] / cut_inner[i][j]; -pair_lj_smooth.cpp: ljsw1[i][j] = r6inv*(lj1[i][j]*r6inv-lj2[i][j]) / cut_inner[i][j]; -pair_lj_smooth.cpp: ljsw2[i][j] = -r6inv * (13.0*lj1[i][j]*r6inv - 7.0*lj2[i][j]) / -pair_lj_smooth.cpp: ljsw3[i][j] = -(3.0/tsq) * (ljsw1[i][j] + 2.0/3.0*ljsw2[i][j]*t); -pair_lj_smooth.cpp: ljsw4[i][j] = -1.0/(3.0*tsq) * (ljsw2[i][j] + 2.0*ljsw3[i][j]*t); -pair_lj_smooth.cpp: offset[i][j] = ljsw0[i][j] - ljsw1[i][j]*t - ljsw2[i][j]*tsq/2.0 - -pair_lj_smooth.cpp: ljsw3[i][j]*tsq*t/3.0 - ljsw4[i][j]*tsq*tsq/4.0; -pair_lj_smooth.cpp: double ratio = sigma[i][j] / cut_inner[i][j]; -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_smooth.cpp: r2inv = 1.0/rsq; -pair_lj_smooth.cpp: ljsw2[itype][jtype]*tsq/2.0 - ljsw3[itype][jtype]*tsq*t/3.0 - -pair_lj_smooth.cpp: ljsw4[itype][jtype]*tsq*tsq/4.0 - offset[itype][jtype]; -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth_linear.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_lj_smooth_linear.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp: // loop over neighbors of my atoms -pair_lj_smooth_linear.cpp: r2inv = 1.0/rsq; -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp: // reset cutoffs that have been explicitly set -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp: double cutinv = 1.0/cut[i][j]; -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- -pair_lj_smooth_linear.cpp:------------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp:/* ---------------------------------------------------------------------- */ -pair_lj_smooth_linear.cpp: r2inv = 1.0/rsq; -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_mie_cut.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_mie_cut.cpp: // loop over neighbors of my atoms -pair_mie_cut.cpp: r2inv = 1.0/rsq; -pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); -pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_mie_cut.cpp: // loop over neighbors of my atoms -pair_mie_cut.cpp: r2inv = 1.0/rsq; -pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); -pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); -pair_mie_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_mie_cut.cpp: // loop over neighbors of my atoms -pair_mie_cut.cpp: r2inv = 1.0/rsq; -pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); -pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); -pair_mie_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; -pair_mie_cut.cpp: rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_mie_cut.cpp: // loop over neighbors of my atoms -pair_mie_cut.cpp: r2inv = 1.0/rsq; -pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); -pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); -pair_mie_cut.cpp: rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; -pair_mie_cut.cpp: r2inv = 1.0/rsq; -pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); -pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); -pair_mie_cut.cpp: r2inv = 1.0/rsq; -pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); -pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp: // reset cutoffs that have been explicitly set -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp: // request regular or rRESPA neighbor lists -pair_mie_cut.cpp: // set rRESPA cutoffs -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp: Cmie[i][j] = (gamR[i][j]/(gamR[i][j]-gamA[i][j]) * -pair_mie_cut.cpp: pow((gamR[i][j]/gamA[i][j]), -pair_mie_cut.cpp: (gamA[i][j]/(gamR[i][j]-gamA[i][j])))); -pair_mie_cut.cpp: double ratio = sigma[i][j] / cut[i][j]; -pair_mie_cut.cpp: // check interior rRESPA cutoff -pair_mie_cut.cpp: // compute I,J contribution to long-range tail correction -pair_mie_cut.cpp: // count total # of atoms of type I and J via Allreduce -pair_mie_cut.cpp: (siggamR/((gamR[i][j]-3.0)*rcgamR)-siggamA/((gamA[i][j]-3.0)*rcgamA)); -pair_mie_cut.cpp: ptail_ij = Cmie[i][j]*2.0*MY_PI*all[0]*all[1]*epsilon[i][j]/3.0* -pair_mie_cut.cpp: ((gamR[i][j]/(gamR[i][j]-3.0))*siggamR/rcgamR- -pair_mie_cut.cpp: (gamA[i][j]/(gamA[i][j]-3.0))*siggamA/rcgamA); -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- -pair_mie_cut.cpp:------------------------------------------------------------------------- */ -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_mie_cut.cpp: r2inv = 1.0/rsq; -pair_mie_cut.cpp: rgamA = pow(r2inv,(gamA[itype][jtype]/2.0)); -pair_mie_cut.cpp: rgamR = pow(r2inv,(gamR[itype][jtype]/2.0)); -pair_mie_cut.cpp:/* ---------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_morse.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- */ -pair_morse.cpp: // loop over neighbors of my atoms -pair_morse.cpp: fpair = factor_lj * morse1[itype][jtype] * (dexp*dexp - dexp) / r; -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp: // reset cutoffs that have been explicitly set -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- -pair_morse.cpp:------------------------------------------------------------------------- */ -pair_morse.cpp:/* ---------------------------------------------------------------------- */ -pair_morse.cpp: fforce = factor_lj * morse1[itype][jtype] * (dexp*dexp - dexp) / r; -pair_morse.cpp:/* ---------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_soft.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- */ -pair_soft.cpp: // loop over neighbors of my atoms -pair_soft.cpp: arg = MY_PI*r/cut[itype][jtype]; -pair_soft.cpp: sin(arg) * MY_PI/cut[itype][jtype]/r; -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp: // reset cutoffs that have been explicitly set -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp: // always mix prefactors geometrically -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- -pair_soft.cpp:------------------------------------------------------------------------- */ -pair_soft.cpp:/* ---------------------------------------------------------------------- */ -pair_soft.cpp: arg = MY_PI*r/cut[itype][jtype]; -pair_soft.cpp: sin(arg) * MY_PI/cut[itype][jtype]/r; -pair_soft.cpp:/* ---------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- -pair_spin.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_spin.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_spin.cpp:------------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- */ -pair_spin.cpp: // Pair spin computations -pair_spin.cpp: // Loop over neighbors of my itoms -pair_spin.cpp: //Loop on Neighbors -pair_spin.cpp: rsq = delx*delx + dely*dely + delz*delz; //square or inter-atomic distance -pair_spin.cpp: rd = sqrt(rsq); //Inter-atomic distance -pair_spin.cpp: //Exchange interaction -pair_spin.cpp: //DM interaction -pair_spin.cpp: //ME interaction -pair_spin.cpp:/* ---------------------------------------------------------------------- */ -pair_spin.cpp: ra = rsq/J_3[itype][jtype]/J_3[itype][jtype]; -pair_spin.cpp:/* ---------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- */ -pair_spin.cpp: inorm = 1.0/sqrt(rx*rx+ry*ry+rz*rz); -pair_spin.cpp: // printf("test val fmi=%g, fmj=%g \n",fmi[2],fmj[2]); -pair_spin.cpp:/* ---------------------------------------------------------------------- -pair_spin.cpp:------------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- -pair_spin.cpp:------------------------------------------------------------------------- */ -pair_spin.cpp: error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); -pair_spin.cpp: // reset cutoffs that have been explicitly set -pair_spin.cpp:/* ---------------------------------------------------------------------- -pair_spin.cpp:------------------------------------------------------------------------- */ -pair_spin.cpp: double hbar = force->hplanck/MY_2PI; -pair_spin.cpp: J1 /= hbar; -pair_spin.cpp: double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); -pair_spin.cpp: double hbar = force->hplanck/MY_2PI; -pair_spin.cpp: dm /= hbar; -pair_spin.cpp: double inorm = 1.0/(mex*mex+mey*mey+mez*mez); -pair_spin.cpp: double hbar = force->hplanck/MY_2PI; -pair_spin.cpp: me /= hbar; -pair_spin.cpp: //Check if Jex [][] still works for Ferrimagnetic exchange -pair_spin.cpp:/* ---------------------------------------------------------------------- -pair_spin.cpp:------------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- -pair_spin.cpp:------------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- -pair_spin.cpp:------------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- -pair_spin.cpp:------------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- -pair_spin.cpp:------------------------------------------------------------------------- */ -pair_spin.cpp:/* ---------------------------------------------------------------------- -pair_spin.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_table.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- */ -pair_table.cpp: // loop over neighbors of my atoms -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp: // new settings -pair_table.cpp: // optional keywords -pair_table.cpp: // assert the tabulation is compatible with a specific long-range solver -pair_table.cpp: // delete old tables, since cannot just change settings -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp: // set table cutoff -pair_table.cpp: // error check on table parameters -pair_table.cpp: // insure cutoff is within table -pair_table.cpp: // for BITMAP tables, file values can be in non-ascending order -pair_table.cpp: // match = 1 if don't need to spline read-in tables -pair_table.cpp: // this is only the case if r values needed by final tables -pair_table.cpp: // exactly match r values read from file -pair_table.cpp: // for tabstyle SPLINE, always need to build spline tables -pair_table.cpp: // spline read-in values and compute r,e,f vectors within table -pair_table.cpp: // store ptr to table in tabindex -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp: // open file -pair_table.cpp: // loop until section found with matching keyword -pair_table.cpp: if (strspn(line," \t\n\r") == strlen(line)) continue; // blank line -pair_table.cpp: if (line[0] == '#') continue; // comment -pair_table.cpp: if (strcmp(word,keyword) == 0) break; // matching keyword -pair_table.cpp: fgets(line,MAXLINE,fp); // no match, skip section -pair_table.cpp: // read args on 2nd line of section -pair_table.cpp: // allocate table arrays for file values -pair_table.cpp: // setup bitmap parameters for table to read in -pair_table.cpp: // read r,e,f table values from file -pair_table.cpp: // if rflag set, compute r -pair_table.cpp: // if rflag not set, use r from file -pair_table.cpp: rnew = tb->rlo + (tb->rhi - tb->rlo)*i/(tb->ninput-1); -pair_table.cpp: (tb->rhi*tb->rhi - tb->rlo*tb->rlo)*i/(tb->ninput-1); -pair_table.cpp: if (tb->rflag && fabs(rnew-rfile)/rfile > EPSILONR) rerror++; -pair_table.cpp: // close file -pair_table.cpp: // warn if force != dE/dr at any point that is not an inflection point -pair_table.cpp: // check via secant approximation to dE/dr -pair_table.cpp: // skip two end points since do not have surrounding secants -pair_table.cpp: // inflection point is where curvature changes sign -pair_table.cpp: fleft = - (e-eprev) / (r-rprev); -pair_table.cpp: fright = - (enext-e) / (rnext-r); -pair_table.cpp: //printf("Values %d: %g %g %g\n",i,r,e,f); -pair_table.cpp: //printf(" secant %d %d %g: %g %g %g\n",i,ferror,r,fleft,fright,f); -pair_table.cpp: sprintf(str,"%d of %d force values in table are inconsistent with -dE/dr.\n" -pair_table.cpp: // warn if re-computed distance values differ from file values -pair_table.cpp: // warn if data was read incompletely, e.g. columns were missing -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp: tb->fplo = (tb->ffile[1] - tb->ffile[0]) / (tb->rfile[1] - tb->rfile[0]); -pair_table.cpp: tb->fphi = (tb->ffile[tb->ninput-1] - tb->ffile[tb->ninput-2]) / -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp: format of line: N value R/RSQ/BITMAP lo hi FPRIME fplo fphi -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp: // inner = inner table bound -pair_table.cpp: // cut = outer table bound -pair_table.cpp: // delta = table spacing in rsq for N-1 bins -pair_table.cpp: tb->delta = (tb->cut*tb->cut - tb->innersq) / tlm1; -pair_table.cpp: tb->invdelta = 1.0/tb->delta; -pair_table.cpp: // direct lookup tables -pair_table.cpp: // N-1 evenly spaced bins in rsq from inner to cut -pair_table.cpp: // e,f = value at midpt of bin -pair_table.cpp: // e,f are N-1 in length since store 1 value at bin midpt -pair_table.cpp: // f is converted to f/r when stored in f[i] -pair_table.cpp: // e,f are never a match to read-in values, always computed via spline interp -pair_table.cpp: tb->f[i] = splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,r)/r; -pair_table.cpp: // linear tables -pair_table.cpp: // N-1 evenly spaced bins in rsq from inner to cut -pair_table.cpp: // rsq,e,f = value at lower edge of bin -pair_table.cpp: // de,df values = delta from lower edge to upper edge of bin -pair_table.cpp: // rsq,e,f are N in length so de,df arrays can compute difference -pair_table.cpp: // f is converted to f/r when stored in f[i] -pair_table.cpp: // e,f can match read-in values, else compute via spline interp -pair_table.cpp: tb->f[i] = tb->ffile[i]/r; -pair_table.cpp: tb->f[i] = splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,r)/r; -pair_table.cpp: // cubic spline tables -pair_table.cpp: // N-1 evenly spaced bins in rsq from inner to cut -pair_table.cpp: // rsq,e,f = value at lower edge of bin -pair_table.cpp: // e2,f2 = spline coefficient for each bin -pair_table.cpp: // rsq,e,f,e2,f2 are N in length so have N-1 spline bins -pair_table.cpp: // f is converted to f/r after e is splined -pair_table.cpp: // e,f can match read-in values, else compute via spline interp -pair_table.cpp: tb->deltasq6 = tb->delta*tb->delta / 6.0; -pair_table.cpp: tb->f[i] = tb->ffile[i]/r; -pair_table.cpp: // ep0,epn = dh/dg at inner and at cut -pair_table.cpp: // h(r) = e(r) and g(r) = r^2 -pair_table.cpp: // dh/dg = (de/dr) / 2r = -f/2r -pair_table.cpp: double ep0 = - tb->f[0] / (2.0 * sqrt(tb->innersq)); -pair_table.cpp: double epn = - tb->f[tlm1] / (2.0 * tb->cut); -pair_table.cpp: // fp0,fpn = dh/dg at inner and at cut -pair_table.cpp: // h(r) = f(r)/r and g(r) = r^2 -pair_table.cpp: // dh/dg = (1/r df/dr - f/r^2) / 2r -pair_table.cpp: // dh/dg in secant approx = (f(r2)/r2 - f(r1)/r1) / (g(r2) - g(r1)) -pair_table.cpp: if (tb->fpflag) fp0 = (tb->fplo/sqrt(tb->innersq) - tb->f[0]/tb->innersq) / -pair_table.cpp: fp0 = (splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,sqrt(rsq2)) / -pair_table.cpp: sqrt(rsq2) - tb->f[0] / sqrt(rsq1)) / (secant_factor*tb->delta); -pair_table.cpp: (tb->fphi/tb->cut - tb->f[tlm1]/(tb->cut*tb->cut)) / (2.0 * tb->cut); -pair_table.cpp: fpn = (tb->f[tlm1] / sqrt(rsq2) - -pair_table.cpp: splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,sqrt(rsq1)) / -pair_table.cpp: sqrt(rsq1)) / (secant_factor*tb->delta); -pair_table.cpp: for (int i = 0; i < tablength; i++) tb->f[i] /= sqrt(tb->rsq[i]); -pair_table.cpp: // bitmapped linear tables -pair_table.cpp: // 2^N bins from inner to cut, spaced in bitmapped manner -pair_table.cpp: // f is converted to f/r when stored in f[i] -pair_table.cpp: // e,f can match read-in values, else compute via spline interp -pair_table.cpp: // linear lookup tables of length ntable = 2^n -pair_table.cpp: // stored value = value at lower edge of bin -pair_table.cpp: tb->f[i] = tb->ffile[i]/r; -pair_table.cpp: tb->f[i] = splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,r)/r; -pair_table.cpp: tb->drsq[i] = 1.0/(tb->rsq[i+1] - tb->rsq[i]); -pair_table.cpp: // get the delta values for the last table entries -pair_table.cpp: // tables are connected periodically between 0 and ntablem1 -pair_table.cpp: tb->drsq[ntablem1] = 1.0/(tb->rsq[0] - tb->rsq[ntablem1]); -pair_table.cpp: // get the correct delta values at itablemax -pair_table.cpp: // smallest r is in bin itablemin -pair_table.cpp: // largest r is in bin itablemax, which is itablemin-1, -pair_table.cpp: // or ntablem1 if itablemin=0 -pair_table.cpp: // deltas at itablemax only needed if corresponding rsq < cut*cut -pair_table.cpp: // if so, compute deltas between rsq and cut*cut -pair_table.cpp: // if tb->match, data at cut*cut is unavailable, so we'll take -pair_table.cpp: // deltas at itablemax-1 as a good approximation -pair_table.cpp: f_tmp = splint(tb->rfile,tb->ffile,tb->f2file,tb->ninput,r)/r; -pair_table.cpp: tb->drsq[itablemax] = 1.0/(rsq_lookup.f - tb->rsq[itablemax]); -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp: u[0] = (3.0/(x[1]-x[0])) * ((y[1]-y[0]) / (x[1]-x[0]) - yp1); -pair_table.cpp: sig = (x[i]-x[i-1]) / (x[i+1]-x[i-1]); -pair_table.cpp: y2[i] = (sig-1.0) / p; -pair_table.cpp: u[i] = (y[i+1]-y[i]) / (x[i+1]-x[i]) - (y[i]-y[i-1]) / (x[i]-x[i-1]); -pair_table.cpp: u[i] = (6.0*u[i] / (x[i+1]-x[i-1]) - sig*u[i-1]) / p; -pair_table.cpp: un = (3.0/(x[n-1]-x[n-2])) * (ypn - (y[n-1]-y[n-2]) / (x[n-1]-x[n-2])); -pair_table.cpp: y2[n-1] = (un-qn*u[n-2]) / (qn*y2[n-2] + 1.0); -pair_table.cpp:/* ---------------------------------------------------------------------- */ -pair_table.cpp: a = (xa[khi]-x) / h; -pair_table.cpp: b = (x-xa[klo]) / h; -pair_table.cpp: ((a*a*a-a)*y2a[klo] + (b*b*b-b)*y2a[khi]) * (h*h)/6.0; -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- */ -pair_table.cpp:/* ---------------------------------------------------------------------- -pair_table.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_yukawa.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- */ -pair_yukawa.cpp: // loop over neighbors of my atoms -pair_yukawa.cpp: r2inv = 1.0/rsq; -pair_yukawa.cpp: rinv = 1.0/r; -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp: // reset cutoffs that have been explicitly set -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp: offset[i][j] = a[i][j] * screening / cut[i][j]; -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- -pair_yukawa.cpp:------------------------------------------------------------------------- */ -pair_yukawa.cpp:/* ---------------------------------------------------------------------- */ -pair_yukawa.cpp: r2inv = 1.0/rsq; -pair_yukawa.cpp: rinv = 1.0/r; -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_zbl.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp:// From J.F. Zeigler, J. P. Biersack and U. Littmark, -pair_zbl.cpp:// "The Stopping and Range of Ions in Matter" volume 1, Pergamon, 1985. -pair_zbl.cpp:/* ---------------------------------------------------------------------- */ -pair_zbl.cpp:/* ---------------------------------------------------------------------- */ -pair_zbl.cpp:/* ---------------------------------------------------------------------- */ -pair_zbl.cpp: // loop over neighbors of my atoms -pair_zbl.cpp: fpair *= -1.0/r; -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp: // set flag for each i-j pair -pair_zbl.cpp: // set z-parameter only for i-i pairs -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp:/* ---------------------------------------------------------------------- */ -pair_zbl.cpp: fforce *= -1.0/r; -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp: double rinv = 1.0/r; -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp: double rinv = 1.0/r; -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp: double rinv = 1.0/r; -pair_zbl.cpp:/* ---------------------------------------------------------------------- -pair_zbl.cpp:------------------------------------------------------------------------- */ -pair_zbl.cpp: double ainv = (pow(zi,pzbl) + pow(zj,pzbl))/(a0*force->angstrom); -pair_zbl.cpp: // e = t^3 (sw3 + sw4*t) + sw5 -pair_zbl.cpp: // = A/3*t^3 + B/4*t^4 + C -pair_zbl.cpp: // sw3 = A/3 -pair_zbl.cpp: // sw4 = B/4 -pair_zbl.cpp: // sw5 = C -pair_zbl.cpp: // dedr = t^2 (sw1 + sw2*t) -pair_zbl.cpp: // = A*t^2 + B*t^3 -pair_zbl.cpp: // sw1 = A -pair_zbl.cpp: // sw2 = B -pair_zbl.cpp: // de2dr2 = 2*A*t + 3*B*t^2 -pair_zbl.cpp: // Require that at t = tc: -pair_zbl.cpp: // e = -Fc -pair_zbl.cpp: // dedr = -Fc' -pair_zbl.cpp: // d2edr2 = -Fc'' -pair_zbl.cpp: // Hence: -pair_zbl.cpp: // A = (-3Fc' + tc*Fc'')/tc^2 -pair_zbl.cpp: // B = ( 2Fc' - tc*Fc'')/tc^3 -pair_zbl.cpp: // C = -Fc + tc/2*Fc' - tc^2/12*Fc'' -pair_zbl.cpp: double swa = (-3.0*fcp + tc*fcpp)/(tc*tc); -pair_zbl.cpp: double swb = ( 2.0*fcp - tc*fcpp)/(tc*tc*tc); -pair_zbl.cpp: double swc = -fc + (tc/2.0)*fcp - (tc*tc/12.0)*fcpp; -pair_zbl.cpp: sw3[i][j] = swa/3.0; -pair_zbl.cpp: sw4[i][j] = swb/4.0; -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -pair_zero.cpp: http://lammps.sandia.gov, Sandia National Laboratories -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp: // reset cutoffs that have been explicitly set -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -pair_zero.cpp:/* ---------------------------------------------------------------------- -pair_zero.cpp:------------------------------------------------------------------------- */ -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -procmap.cpp: http://lammps.sandia.gov, Sandia National Laboratories -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp:enum{MULTIPLE}; // same as in Comm -procmap.cpp:/* ---------------------------------------------------------------------- */ -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: // factors = list of all possible 3 factors of processor count -procmap.cpp: // constrain by 2d, user request, other partition -procmap.cpp: // user/other constraints make failure possible -procmap.cpp: // select best set of 3 factors based on surface area of proc sub-domains -procmap.cpp: // clean-up -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: // nfactors = list of all possible 3 factors of node count -procmap.cpp: // constrain by 2d -procmap.cpp: int nnpossible = factor(nprocs/ncores,NULL); -procmap.cpp: nnpossible = factor(nprocs/ncores,nfactors); -procmap.cpp: // cfactors = list of all possible 3 factors of core count -procmap.cpp: // constrain by 2d -procmap.cpp: // factors = all combinations of nfactors and cfactors -procmap.cpp: // factors stores additional index pointing to corresponding cfactors -procmap.cpp: // constrain by user request, other partition -procmap.cpp: // user/other constraints make failure possible -procmap.cpp: // select best set of 3 factors based on surface area of proc sub-domains -procmap.cpp: // index points to corresponding core factorization -procmap.cpp: // clean-up -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: // hardwire this for now -procmap.cpp: // get names of all nodes -procmap.cpp: // get number of procs per node -procmap.cpp: // NOTE: could do this without STL map -procmap.cpp: procs_per_numa = procs_per_node / numa_nodes; -procmap.cpp: // error if any of these conditions met -procmap.cpp: if (nprocs % procs_per_numa || // total procs not a multiple of node -procmap.cpp: user_procgrid[0] > 1 || // user specified grid > 1 in any dim -procmap.cpp: // user settings for the factorization per numa node -procmap.cpp: // currently not user settable -procmap.cpp: // if user specifies 1 for a proc grid dimension, -procmap.cpp: // also use 1 for the numa grid dimension -procmap.cpp: // initial factorization within NUMA node -procmap.cpp: // user_nodegrid = implied user constraints on nodes -procmap.cpp: user_nodegrid[0] = user_procgrid[0] / numagrid[0]; -procmap.cpp: user_nodegrid[1] = user_procgrid[1] / numagrid[1]; -procmap.cpp: user_nodegrid[2] = user_procgrid[2] / numagrid[2]; -procmap.cpp: // factorization for the grid of NUMA nodes -procmap.cpp: int node_count = nprocs / procs_per_numa; -procmap.cpp: // repeat NUMA node factorization using subdomain sizes -procmap.cpp: // refines the factorization if the user specified the node layout -procmap.cpp: // NOTE: this will not re-enforce user-procgrid constraint will it? -procmap.cpp: // assign a unique id to each node -procmap.cpp: // return the proc-level factorization -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: // skip header = blank and comment lines -procmap.cpp: // cmap = map of procs to grid -procmap.cpp: // store for use in custom_map() -procmap.cpp: // error check on cmap values -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: // setup NUMA params that numa_grid() sets up -procmap.cpp: node_id = me/ncores; -procmap.cpp: nodegrid[0] = procgrid[0] / coregrid[0]; -procmap.cpp: nodegrid[1] = procgrid[1] / coregrid[1]; -procmap.cpp: nodegrid[2] = procgrid[2] / coregrid[2]; -procmap.cpp: // now can use numa_map() to perform mapping -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: // proc IDs of neighbors -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: nodegrid[0] = procgrid[0] / coregrid[0]; -procmap.cpp: nodegrid[1] = procgrid[1] / coregrid[1]; -procmap.cpp: nodegrid[2] = procgrid[2] / coregrid[2]; -procmap.cpp: inode = i/coregrid[0]; -procmap.cpp: jnode = j/coregrid[1]; -procmap.cpp: knode = k/coregrid[2]; -procmap.cpp: // proc IDs of neighbors -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: // setup a per node communicator and find rank within -procmap.cpp: // setup a per numa communicator and find rank within -procmap.cpp: int local_numa = node_rank / procs_per_numa; -procmap.cpp: // setup a communicator with the rank 0 procs from each numa node -procmap.cpp: // use the MPI Cartesian routines to map the nodes to the grid -procmap.cpp: // broadcast numa node location in grid to other procs in numa node -procmap.cpp: // compute my location within the node grid -procmap.cpp: int z_offset = numa_rank / (numagrid[0] * numagrid[1]); -procmap.cpp: int y_offset = (numa_rank % (numagrid[0] * numagrid[1]))/numagrid[0]; -procmap.cpp: // allgather of myloc into gridi to fill grid2proc -procmap.cpp: // proc IDs of neighbors -procmap.cpp: // clean-up -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: // proc IDs of neighbors -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: // find me in the grid -procmap.cpp: // polled comm of grid mapping info from each proc to proc 0 -procmap.cpp: // close output file -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: nyz = n/i; -procmap.cpp: factors[m][2] = nyz/j; -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp: where Nx,Ny,Nz = node grid = procgrid/coregrid -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: if ((other_procgrid[0]/other_coregrid[0]) % factors[i][0]) flag = 1; -procmap.cpp: if ((other_procgrid[1]/other_coregrid[1]) % factors[i][1]) flag = 1; -procmap.cpp: if ((other_procgrid[2]/other_coregrid[2]) % factors[i][2]) flag = 1; -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -procmap.cpp: // determine cross-sectional areas for orthogonal and triclinic boxes -procmap.cpp: // for triclinic, area = cross product of 2 edge vectors stored in h matrix -procmap.cpp: // area[3] = surface area 3 box faces divided by sx,sy,sz -procmap.cpp: // area[0] = xy, area[1] = xz, area[2] = yz -procmap.cpp: area[0] = domain->xprd * domain->yprd / (sx*sy); -procmap.cpp: area[1] = domain->xprd * domain->zprd / (sx*sz); -procmap.cpp: area[2] = domain->yprd * domain->zprd / (sy*sz); -procmap.cpp: area[0] = sqrt(c[0]*c[0] + c[1]*c[1] + c[2]*c[2]) / (sx*sy); -procmap.cpp: area[1] = sqrt(c[0]*c[0] + c[1]*c[1] + c[2]*c[2]) / (sx*sz); -procmap.cpp: area[2] = sqrt(c[0]*c[0] + c[1]*c[1] + c[2]*c[2]) / (sy*sz); -procmap.cpp: surf = area[0]/factors[m][0]/factors[m][1] + -procmap.cpp: area[1]/factors[m][0]/factors[m][2] + -procmap.cpp: area[2]/factors[m][1]/factors[m][2]; -procmap.cpp:/* ---------------------------------------------------------------------- -procmap.cpp:------------------------------------------------------------------------- */ -python.cpp:/* ---------------------------------------------------------------------- -python.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -python.cpp: http://lammps.sandia.gov, Sandia National Laboratories -python.cpp:------------------------------------------------------------------------- */ -python.cpp:/* ---------------------------------------------------------------------- */ -python.cpp: // implementation of Python interface is only loaded on demand -python.cpp: // and only if PYTHON package has been installed and compiled into binary -python.cpp:/* ---------------------------------------------------------------------- */ -python.cpp:/* ---------------------------------------------------------------------- */ -python.cpp:/* ---------------------------------------------------------------------- */ -python.cpp:/* ---------------------------------------------------------------------- */ -python.cpp:/* ---------------------------------------------------------------------- */ -python.cpp:/* ------------------------------------------------------------------ */ -python.cpp:/* ------------------------------------------------------------------ */ -python.cpp:/* ------------------------------------------------------------------ */ -python.cpp:/* ------------------------------------------------------------------ */ -random_mars.cpp:/* ---------------------------------------------------------------------- -random_mars.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -random_mars.cpp: http://lammps.sandia.gov, Sandia National Laboratories -random_mars.cpp:------------------------------------------------------------------------- */ -random_mars.cpp:// Marsaglia random number generator -random_mars.cpp:// see RANMAR in F James, Comp Phys Comm, 60, 329 (1990) -random_mars.cpp:/* ---------------------------------------------------------------------- */ -random_mars.cpp: ij = (seed-1)/30082; -random_mars.cpp: i = (ij/177) % 177 + 2; -random_mars.cpp: k = (kl/169) % 178 + 1; -random_mars.cpp: c = 362436.0 / 16777216.0; -random_mars.cpp: cd = 7654321.0 / 16777216.0; -random_mars.cpp: cm = 16777213.0 / 16777216.0; -random_mars.cpp:/* ---------------------------------------------------------------------- */ -random_mars.cpp:/* ---------------------------------------------------------------------- -random_mars.cpp:------------------------------------------------------------------------- */ -random_mars.cpp:/* ---------------------------------------------------------------------- -random_mars.cpp:------------------------------------------------------------------------- */ -random_mars.cpp: fac = sqrt(-2.0*log(rsq)/rsq); -random_park.cpp:/* ---------------------------------------------------------------------- -random_park.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -random_park.cpp: http://lammps.sandia.gov, Sandia National Laboratories -random_park.cpp:------------------------------------------------------------------------- */ -random_park.cpp:// Park/Miller RNG -random_park.cpp:#define AM (1.0/IM) -random_park.cpp:/* ---------------------------------------------------------------------- */ -random_park.cpp:/* ---------------------------------------------------------------------- -random_park.cpp:------------------------------------------------------------------------- */ -random_park.cpp: int k = seed/IQ; -random_park.cpp:/* ---------------------------------------------------------------------- -random_park.cpp:------------------------------------------------------------------------- */ -random_park.cpp: fac = sqrt(-2.0*log(rsq)/rsq); -random_park.cpp:/* ---------------------------------------------------------------------- */ -random_park.cpp:/* ---------------------------------------------------------------------- -random_park.cpp:------------------------------------------------------------------------- */ -random_park.cpp: // keep 31 bits of unsigned int as new seed -random_park.cpp: // do not allow seed = 0, since will cause hang in gaussian() -random_park.cpp: // warm up the RNG -random_park.cpp:/* ---------------------------------------------------------------------- */ -rcb.cpp:/* ---------------------------------------------------------------------- -rcb.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -rcb.cpp: http://lammps.sandia.gov, Sandia National Laboratories -rcb.cpp:------------------------------------------------------------------------- */ -rcb.cpp:// prototypes for non-class functions -rcb.cpp:// NOTE: if want to have reuse flag, need to sum Tree across procs -rcb.cpp:/* ---------------------------------------------------------------------- */ -rcb.cpp: // create MPI data and function types for box and median AllReduce ops -rcb.cpp:/* ---------------------------------------------------------------------- */ -rcb.cpp:/* ---------------------------------------------------------------------- -rcb.cpp: perform RCB balancing of N particles at coords X in bounding box LO/HI -rcb.cpp: defined by final lo/hi -rcb.cpp: // NOTE: worry about re-use of data structs for fix balance? -rcb.cpp:------------------------------------------------------------------------- */ -rcb.cpp: // create list of my Dots -rcb.cpp: // initial bounding box = simulation box -rcb.cpp: // includes periodic or shrink-wrapped boundaries -rcb.cpp: // initialize counters -rcb.cpp: // create communicator for use in recursion -rcb.cpp: // recurse until partition is a single proc = me -rcb.cpp: // proclower,procupper = lower,upper procs in partition -rcb.cpp: // procmid = 1st proc in upper half of partition -rcb.cpp: // if odd # of procs, lower partition gets extra one -rcb.cpp: procmid = proclower + (procupper - proclower) / 2 + 1; -rcb.cpp: // determine communication partner(s) -rcb.cpp: // readnumber = # of proc partners to read from -rcb.cpp: // wttot = summed weight of entire partition -rcb.cpp: // search tolerance = largest single weight (plus epsilon) -rcb.cpp: // targetlo = desired weight in lower half of partition -rcb.cpp: // targethi = desired weight in upper half of partition -rcb.cpp: targetlo = wttot * (procmid - proclower) / (procupper + 1 - proclower); -rcb.cpp: // attempt a cut in each dimension -rcb.cpp: // each cut produces 2 boxes, each with a reduced box length in that dim -rcb.cpp: // smaller = the smaller of the 2 reduced box lengths in that dimension -rcb.cpp: // choose to cut in dimension which produces largest smaller value -rcb.cpp: // this should induce final proc sub-boxes to be as cube-ish as possible -rcb.cpp: // dim_select = selected cut dimension -rcb.cpp: // valuehalf_select = valuehalf in that dimension -rcb.cpp: // dotmark_select = dot markings in that dimension -rcb.cpp: // create active list and mark array for dots -rcb.cpp: // initialize active list to all dots -rcb.cpp: // median iteration -rcb.cpp: // zoom in on bisector until correct # of dots in each half of partition -rcb.cpp: // as each iteration of median-loop begins, require: -rcb.cpp: // all non-active dots are marked with 0/1 in dotmark -rcb.cpp: // valuemin <= every active dot <= valuemax -rcb.cpp: // wtlo, wthi = total wt of non-active dots -rcb.cpp: // when leave median-loop, require only: -rcb.cpp: // valuehalf = correct cut position -rcb.cpp: // all dots <= valuehalf are marked with 0 in dotmark -rcb.cpp: // all dots >= valuehalf are marked with 1 in dotmark -rcb.cpp: // markactive = which side of cut is active = 0/1 -rcb.cpp: // indexlo,indexhi = indices of dot closest to median -rcb.cpp: // choose bisector value -rcb.cpp: // use old value on 1st iteration if old cut dimension is the same -rcb.cpp: // on 2nd option: could push valuehalf towards geometric center -rcb.cpp: // with "1.0-factor" to force overshoot -rcb.cpp: valuehalf = valuemin + (targetlo - wtlo) / -rcb.cpp: // initialize local median data structure -rcb.cpp: // mark all active dots on one side or other of bisector -rcb.cpp: // also set all fields in median data struct -rcb.cpp: // save indices of closest dots on either side -rcb.cpp: if (dots[i].x[dim] <= valuehalf) { // in lower part -rcb.cpp: if (dots[i].x[dim] > medme.valuelo) { // my closest dot -rcb.cpp: } else if (dots[i].x[dim] == medme.valuelo) { // tied for closest -rcb.cpp: else { // in upper part -rcb.cpp: if (dots[i].x[dim] < medme.valuehi) { // my closest dot -rcb.cpp: } else if (dots[i].x[dim] == medme.valuehi) { // tied for closest -rcb.cpp: // combine median data struct across current subset of procs -rcb.cpp: // test median guess for convergence -rcb.cpp: // move additional dots that are next to cut across it -rcb.cpp: if (wtlo + med.totallo < targetlo) { // lower half TOO SMALL -rcb.cpp: if (med.counthi == 1) { // only one dot to move -rcb.cpp: if (wtlo + med.wthi < targetlo) { // move it, keep iterating -rcb.cpp: else { // only move if beneficial -rcb.cpp: break; // all done -rcb.cpp: else { // multiple dots to move -rcb.cpp: if (wtlo + med.wthi >= targetlo) { // all done -rcb.cpp: } // wtok = most I can move -rcb.cpp: if (dots[i].x[dim] == med.valuehi) { // only move if better -rcb.cpp: if (breakflag) break; // done if moved enough -rcb.cpp: if (targetlo-wtlo <= tolerance) break; // close enough -rcb.cpp: valuemin = med.valuehi; // iterate again -rcb.cpp: else if (wthi + med.totalhi < targethi) { // upper half TOO SMALL -rcb.cpp: if (med.countlo == 1) { // only one dot to move -rcb.cpp: if (wthi + med.wtlo < targethi) { // move it, keep iterating -rcb.cpp: else { // only move if beneficial -rcb.cpp: break; // all done -rcb.cpp: else { // multiple dots to move -rcb.cpp: if (wthi + med.wtlo >= targethi) { // all done -rcb.cpp: } // wtok = most I can move -rcb.cpp: if (dots[i].x[dim] == med.valuelo) { // only move if better -rcb.cpp: if (breakflag) break; // done if moved enough -rcb.cpp: if (targethi-wthi <= tolerance) break; // close enough -rcb.cpp: valuemax = med.valuelo; // iterate again -rcb.cpp: else // Goldilocks result: both partitions just right -rcb.cpp: // shrink the active list -rcb.cpp: // cut produces 2 sub-boxes with reduced size in dim -rcb.cpp: // compare smaller of the 2 sizes to previous dims -rcb.cpp: // keep dim that has the largest smaller -rcb.cpp: // copy results for best dim cut into dim,valuehalf,dotmark -rcb.cpp: // found median -rcb.cpp: // store cut info only if I am procmid -rcb.cpp: // use cut to shrink my RCB bounding box -rcb.cpp: // outgoing = number of dots to ship to partner -rcb.cpp: // nkeep = number of dots that have never migrated -rcb.cpp: // alert partner how many dots I'll send, read how many I'll recv -rcb.cpp: // check if need to alloc more space -rcb.cpp: // malloc comm send buffer -rcb.cpp: // fill buffer with dots that are marked for sending -rcb.cpp: // pack down the unmarked ones -rcb.cpp: // post receives for dots -rcb.cpp: // handshake before sending dots to insure recvs have been posted -rcb.cpp: // send dots to partner -rcb.cpp: // wait until all dots are received -rcb.cpp: // cut partition in half, create new communicators of 1/2 size -rcb.cpp: // clean up -rcb.cpp: // set public variables with results of rebalance -rcb.cpp:/* ---------------------------------------------------------------------- -rcb.cpp: perform RCB balancing of N particles at coords X in bounding box LO/HI -rcb.cpp: defined by final lo/hi -rcb.cpp: // NOTE: worry about re-use of data structs for fix balance? -rcb.cpp:------------------------------------------------------------------------- */ -rcb.cpp: // create list of my Dots -rcb.cpp: // initial bounding box = simulation box -rcb.cpp: // includes periodic or shrink-wrapped boundaries -rcb.cpp: // initialize counters -rcb.cpp: // create communicator for use in recursion -rcb.cpp: // recurse until partition is a single proc = me -rcb.cpp: // proclower,procupper = lower,upper procs in partition -rcb.cpp: // procmid = 1st proc in upper half of partition -rcb.cpp: // if odd # of procs, lower partition gets extra one -rcb.cpp: procmid = proclower + (procupper - proclower) / 2 + 1; -rcb.cpp: // determine communication partner(s) -rcb.cpp: // readnumber = # of proc partners to read from -rcb.cpp: // wttot = summed weight of entire partition -rcb.cpp: // search tolerance = largest single weight (plus epsilon) -rcb.cpp: // targetlo = desired weight in lower half of partition -rcb.cpp: // targethi = desired weight in upper half of partition -rcb.cpp: targetlo = wttot * (procmid - proclower) / (procupper + 1 - proclower); -rcb.cpp: // dim = dimension to bisect on -rcb.cpp: // do not allow choice of z dimension for 2d system -rcb.cpp: // create active list and mark array for dots -rcb.cpp: // initialize active list to all dots -rcb.cpp: // median iteration -rcb.cpp: // zoom in on bisector until correct # of dots in each half of partition -rcb.cpp: // as each iteration of median-loop begins, require: -rcb.cpp: // all non-active dots are marked with 0/1 in dotmark -rcb.cpp: // valuemin <= every active dot <= valuemax -rcb.cpp: // wtlo, wthi = total wt of non-active dots -rcb.cpp: // when leave median-loop, require only: -rcb.cpp: // valuehalf = correct cut position -rcb.cpp: // all dots <= valuehalf are marked with 0 in dotmark -rcb.cpp: // all dots >= valuehalf are marked with 1 in dotmark -rcb.cpp: // markactive = which side of cut is active = 0/1 -rcb.cpp: // indexlo,indexhi = indices of dot closest to median -rcb.cpp: // choose bisector value -rcb.cpp: // use old value on 1st iteration if old cut dimension is the same -rcb.cpp: // on 2nd option: could push valuehalf towards geometric center -rcb.cpp: // with "1.0-factor" to force overshoot -rcb.cpp: valuehalf = valuemin + (targetlo - wtlo) / -rcb.cpp: // initialize local median data structure -rcb.cpp: // mark all active dots on one side or other of bisector -rcb.cpp: // also set all fields in median data struct -rcb.cpp: // save indices of closest dots on either side -rcb.cpp: if (dots[i].x[dim] <= valuehalf) { // in lower part -rcb.cpp: if (dots[i].x[dim] > medme.valuelo) { // my closest dot -rcb.cpp: } else if (dots[i].x[dim] == medme.valuelo) { // tied for closest -rcb.cpp: else { // in upper part -rcb.cpp: if (dots[i].x[dim] < medme.valuehi) { // my closest dot -rcb.cpp: } else if (dots[i].x[dim] == medme.valuehi) { // tied for closest -rcb.cpp: // combine median data struct across current subset of procs -rcb.cpp: // test median guess for convergence -rcb.cpp: // move additional dots that are next to cut across it -rcb.cpp: if (wtlo + med.totallo < targetlo) { // lower half TOO SMALL -rcb.cpp: if (med.counthi == 1) { // only one dot to move -rcb.cpp: if (wtlo + med.wthi < targetlo) { // move it, keep iterating -rcb.cpp: else { // only move if beneficial -rcb.cpp: break; // all done -rcb.cpp: else { // multiple dots to move -rcb.cpp: if (wtlo + med.wthi >= targetlo) { // all done -rcb.cpp: } // wtok = most I can move -rcb.cpp: if (dots[i].x[dim] == med.valuehi) { // only move if better -rcb.cpp: if (breakflag) break; // done if moved enough -rcb.cpp: if (targetlo-wtlo <= tolerance) break; // close enough -rcb.cpp: valuemin = med.valuehi; // iterate again -rcb.cpp: else if (wthi + med.totalhi < targethi) { // upper half TOO SMALL -rcb.cpp: if (med.countlo == 1) { // only one dot to move -rcb.cpp: if (wthi + med.wtlo < targethi) { // move it, keep iterating -rcb.cpp: else { // only move if beneficial -rcb.cpp: break; // all done -rcb.cpp: else { // multiple dots to move -rcb.cpp: if (wthi + med.wtlo >= targethi) { // all done -rcb.cpp: } // wtok = most I can move -rcb.cpp: if (dots[i].x[dim] == med.valuelo) { // only move if better -rcb.cpp: if (breakflag) break; // done if moved enough -rcb.cpp: if (targethi-wthi <= tolerance) break; // close enough -rcb.cpp: valuemax = med.valuelo; // iterate again -rcb.cpp: else // Goldilocks result: both partitions just right -rcb.cpp: // shrink the active list -rcb.cpp: // found median -rcb.cpp: // store cut info only if I am procmid -rcb.cpp: // use cut to shrink my RCB bounding box -rcb.cpp: // outgoing = number of dots to ship to partner -rcb.cpp: // nkeep = number of dots that have never migrated -rcb.cpp: // alert partner how many dots I'll send, read how many I'll recv -rcb.cpp: // check if need to alloc more space -rcb.cpp: // malloc comm send buffer -rcb.cpp: // fill buffer with dots that are marked for sending -rcb.cpp: // pack down the unmarked ones -rcb.cpp: // post receives for dots -rcb.cpp: // handshake before sending dots to insure recvs have been posted -rcb.cpp: // send dots to partner -rcb.cpp: // wait until all dots are received -rcb.cpp: // cut partition in half, create new communicators of 1/2 size -rcb.cpp: // clean up -rcb.cpp: // set public variables with results of rebalance -rcb.cpp:/* ---------------------------------------------------------------------- -rcb.cpp:------------------------------------------------------------------------- */ -rcb.cpp:/* ---------------------------------------------------------------------- -rcb.cpp:------------------------------------------------------------------------- */ -rcb.cpp:/* ---------------------------------------------------------------------- -rcb.cpp:------------------------------------------------------------------------- */ -rcb.cpp: // only create Irregular if not previously created -rcb.cpp: // allows Irregular to persist for multiple RCB calls by fix balance -rcb.cpp: // nsend = # of dots to request from other procs -rcb.cpp: // perform inversion via irregular comm -rcb.cpp: // nrecv = # of my dots to send to other procs -rcb.cpp: // set public variables from requests to send my dots -rcb.cpp: // clean-up -rcb.cpp:/* ---------------------------------------------------------------------- -rcb.cpp:------------------------------------------------------------------------- */ -rcb.cpp:// ----------------------------------------------------------------------- -rcb.cpp:// DEBUG methods -rcb.cpp:// ----------------------------------------------------------------------- -rcb.cpp:/* -rcb.cpp:// consistency checks on RCB results -rcb.cpp: // check that total # of dots remained the same -rcb.cpp: // check that result is load-balanced within log2(P)*max-wt -rcb.cpp: // i = smallest power-of-2 >= nprocs -rcb.cpp: // tolerance = largest-single-weight*log2(nprocs) -rcb.cpp: // check that final set of points is inside RCB box of each proc -rcb.cpp:// stats for RCB decomposition -rcb.cpp: // distribution info -rcb.cpp: wttot/nprocs,wtmax,wtmin); -rcb.cpp: // counter info -rcb.cpp: ave = ((double) sum)/nprocs; -rcb.cpp: ave = ((double) sum)/nprocs; -rcb.cpp: ave = ((double) sum)/nprocs; -rcb.cpp: ave = ((double) sum)/nprocs; -rcb.cpp: ave = ((double) sum)/nprocs; -rcb.cpp: ave = ((double) sum)/nprocs; -rcb.cpp: ave = ((double) sum)/nprocs; -rcb.cpp: // RCB boxes for each proc -rcb.cpp:*/ -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -read_data.cpp: http://lammps.sandia.gov, Sandia National Laboratories -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp:// lmptype.h must be first b/c this file uses MAXBIGINT and includes mpi.h -read_data.cpp:// due to OpenMPI bug which sets INT64_MAX via its mpi.h -read_data.cpp:// before lmptype.h can set flags to insure it is done correctly -read_data.cpp:#define DELTA 4 // must be 2 or larger -read_data.cpp:#define MAXBODY 32 // max # of lines in one body -read_data.cpp: // customize for new sections -read_data.cpp:#define NSECTIONS 25 // change when add to header::section_keywords -read_data.cpp:// pair style suffixes to ignore -read_data.cpp:// when matching Pair Coeffs comment to currently-defined pair style -read_data.cpp:const char *suffixes[] = {"/cuda","/gpu","/opt","/omp","/kk", -read_data.cpp: "/coul/cut","/coul/long","/coul/msm", -read_data.cpp: "/coul/dsf","/coul/debye","/coul/charmm", -read_data.cpp:/* ---------------------------------------------------------------------- */ -read_data.cpp: // customize for new sections -read_data.cpp: // pointers to atom styles that store extra info -read_data.cpp:/* ---------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- */ -read_data.cpp: // optional args -read_data.cpp: } else if (strcmp(arg[iarg],"extra/atom/types") == 0) { -read_data.cpp: } else if (strcmp(arg[iarg],"extra/bond/types") == 0) { -read_data.cpp: } else if (strcmp(arg[iarg],"extra/angle/types") == 0) { -read_data.cpp: } else if (strcmp(arg[iarg],"extra/dihedral/types") == 0) { -read_data.cpp: } else if (strcmp(arg[iarg],"extra/improper/types") == 0) { -read_data.cpp: // error checks -read_data.cpp: // first time system initialization -read_data.cpp: // compute atomID offset for addflag = MERGE -read_data.cpp: // set up pointer to hold original styles while we replace them with "zero" -read_data.cpp: // ----------------------------------------------------------------- -read_data.cpp: // perform 1-pass read if no molecular topology in file -read_data.cpp: // perform 2-pass read if molecular topology, -read_data.cpp: // first pass calculates max topology/atom -read_data.cpp: // flags for this data file -read_data.cpp: // values in this data file -read_data.cpp: // open file on proc 0 -read_data.cpp: // read header info -read_data.cpp: // problem setup using info from header -read_data.cpp: // only done once, if firstpass and first data file -read_data.cpp: // apply extra settings before grow(), even if no topology in file -read_data.cpp: // deallocate() insures new settings are used for topology arrays -read_data.cpp: // if per-atom topology is in file, another grow() is done below -read_data.cpp: else n = static_cast (LB_FACTOR * atom->natoms / comm->nprocs); -read_data.cpp: // change simulation box to be union of existing box and new box + shift -read_data.cpp: // only done if firstpass and not first data file -read_data.cpp: // NOTE: not sure what to do about tilt value in subsequent data files -read_data.cpp: //if (triclinic) { -read_data.cpp: // domain->xy = xy; domain->xz = xz; domain->yz = yz; -read_data.cpp: // } -read_data.cpp: // customize for new sections -read_data.cpp: // read rest of file in free format -read_data.cpp: // if special fix matches, it processes section -read_data.cpp: } else skip_lines(ntypes*(ntypes+1)/2); -read_data.cpp: // error if natoms > 0 yet no atoms were read -read_data.cpp: // close file -read_data.cpp: // done if this was 2nd pass -read_data.cpp: // at end of 1st pass, error check for required sections -read_data.cpp: // customize for new sections -read_data.cpp: // break out of loop if no molecular topology in file -read_data.cpp: // else make 2nd pass -read_data.cpp: // reallocate bond,angle,diehdral,improper arrays via grow() -read_data.cpp: // will use new bond,angle,dihedral,improper per-atom values from 1st pass -read_data.cpp: // will also observe extra settings even if bond/etc topology not in file -read_data.cpp: // leaves other atom arrays unchanged, since already nmax in length -read_data.cpp: // init per-atom fix/compute/variable values for created atoms -read_data.cpp: // assign atoms added by this data file to specified group -read_data.cpp: // create special bond lists for molecular systems -read_data.cpp: // for atom style template systems, count total bonds,angles,etc -read_data.cpp: atom->nbonds /= 2; -read_data.cpp: atom->nangles /= 3; -read_data.cpp: atom->ndihedrals /= 4; -read_data.cpp: atom->nimpropers /= 4; -read_data.cpp: // for atom style template systems -read_data.cpp: // insure nbondtypes,etc are still consistent with template molecules, -read_data.cpp: // in case data file re-defined them -read_data.cpp: // if adding atoms, migrate atoms to new processors -read_data.cpp: // use irregular() b/c box size could have changed dramaticaly -read_data.cpp: // resulting in procs now owning very different subboxes -read_data.cpp: // with their previously owned atoms now far outside the subbox -read_data.cpp: // shrink-wrap the box if necessary and move atoms to new procs -read_data.cpp: // if atoms are lost is b/c data file box was far from shrink-wrapped -read_data.cpp: // do not use irregular() comm, which would not lose atoms, -read_data.cpp: // b/c then user could specify data file box as far too big and empty -read_data.cpp: // do comm->init() but not comm->setup() b/c pair/neigh cutoffs not yet set -read_data.cpp: // need call to map_set() b/c comm->exchange clears atom map -read_data.cpp: // restore old styles, when reading with nocoeff flag given -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp: // customize for new sections -read_data.cpp: // skip 1st line of file -read_data.cpp: // read a line and bcast length -read_data.cpp: // if n = 0 then end-of-file so return with blank line -read_data.cpp: // trim anything from '#' onward -read_data.cpp: // if line is blank, continue -read_data.cpp: // allow special fixes first chance to match and process the line -read_data.cpp: // if fix matches, continue to next header line -read_data.cpp: // search line for header keyword and set corresponding variable -read_data.cpp: // customize for new header lines -read_data.cpp: // check for triangles before angles so "triangles" not matched as "angles" -read_data.cpp: // Atom class type settings are only set by first data file -read_data.cpp: // these settings only used by first data file -read_data.cpp: // local copy of box info -read_data.cpp: // so can treat differently for first vs subsequent data files -read_data.cpp: // error check on total system size -read_data.cpp: // check that exiting string is a valid section keyword -read_data.cpp: // error checks on header values -read_data.cpp: // must be consistent with atom style and other header values -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp: // check that all atoms were assigned correctly -read_data.cpp: // check that atom IDs are valid -read_data.cpp: // create global mapping of atoms -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp: // allocate count if firstpass -read_data.cpp: // read and process bonds -read_data.cpp: // if firstpass: tally max bond/atom and return -read_data.cpp: // if addflag = NONE, store max bond/atom with extra -read_data.cpp: // else just check actual max does not exceed existing max -read_data.cpp: if (screen) fprintf(screen," %d = max bonds/atom\n",maxall); -read_data.cpp: if (logfile) fprintf(logfile," %d = max bonds/atom\n",maxall); -read_data.cpp: // if 2nd pass: check that bonds were assigned correctly -read_data.cpp: if (screen) fprintf(screen," " BIGINT_FORMAT " bonds\n",sum/factor); -read_data.cpp: if (logfile) fprintf(logfile," " BIGINT_FORMAT " bonds\n",sum/factor); -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp: // allocate count if firstpass -read_data.cpp: // read and process angles -read_data.cpp: // if firstpass: tally max angle/atom and return -read_data.cpp: // if addflag = NONE, store max angle/atom with extra -read_data.cpp: // else just check actual max does not exceed existing max -read_data.cpp: if (screen) fprintf(screen," %d = max angles/atom\n",maxall); -read_data.cpp: if (logfile) fprintf(logfile," %d = max angles/atom\n",maxall); -read_data.cpp: // if 2nd pass: check that angles were assigned correctly -read_data.cpp: if (screen) fprintf(screen," " BIGINT_FORMAT " angles\n",sum/factor); -read_data.cpp: if (logfile) fprintf(logfile," " BIGINT_FORMAT " angles\n",sum/factor); -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp: // allocate count if firstpass -read_data.cpp: // read and process dihedrals -read_data.cpp: // if firstpass: tally max dihedral/atom and return -read_data.cpp: // if addflag = NONE, store max dihedral/atom with extra -read_data.cpp: // else just check actual max does not exceed existing max -read_data.cpp: if (screen) fprintf(screen," %d = max dihedrals/atom\n",maxall); -read_data.cpp: if (logfile) fprintf(logfile," %d = max dihedrals/atom\n",maxall); -read_data.cpp: // if 2nd pass: check that dihedrals were assigned correctly -read_data.cpp: if (screen) fprintf(screen," " BIGINT_FORMAT " dihedrals\n",sum/factor); -read_data.cpp: if (logfile) fprintf(logfile," " BIGINT_FORMAT " dihedrals\n",sum/factor); -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp: // allocate count if firstpass -read_data.cpp: // read and process impropers -read_data.cpp: // if firstpass: tally max improper/atom and return -read_data.cpp: // if addflag = NONE, store max improper/atom -read_data.cpp: // else just check it does not exceed existing max -read_data.cpp: if (screen) fprintf(screen," %d = max impropers/atom\n",maxall); -read_data.cpp: if (logfile) fprintf(logfile," %d = max impropers/atom\n",maxall); -read_data.cpp: // if 2nd pass: check that impropers were assigned correctly -read_data.cpp: if (screen) fprintf(screen," " BIGINT_FORMAT " impropers\n",sum/factor); -read_data.cpp: if (logfile) fprintf(logfile," " BIGINT_FORMAT " impropers\n",sum/factor); -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp: // nmax = max # of bodies to read in this chunk -read_data.cpp: // nchunk = actual # read -read_data.cpp: // read lines one at a time into buffer and count words -read_data.cpp: // count to ninteger and ndouble until have enough lines -read_data.cpp:/* ---------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- */ -read_data.cpp: int nsq = ntypes * (ntypes+1) / 2; -read_data.cpp:/* ---------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp: keyword is all text on line w/out leading & trailing white space -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp: // proc 0 reads upto non-blank line plus 1 following line -read_data.cpp: // eof is set to 1 if any read hits end-of-file -read_data.cpp: // if eof, set keyword empty and return -read_data.cpp: // bcast keyword line to all procs -read_data.cpp: // store optional "style" following comment char '#' after keyword -read_data.cpp: // copy non-whitespace portion of line into keyword -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp: if addstr != NULL, add addstr as extra arg for class2 angle/dihedral/improper -read_data.cpp: if noffset, add offset to first noffset args, which are atom/bond/etc types -read_data.cpp:------------------------------------------------------------------------- */ -read_data.cpp:/* ---------------------------------------------------------------------- -read_data.cpp:------------------------------------------------------------------------- */ -read_dump.cpp:/* ---------------------------------------------------------------------- -read_dump.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -read_dump.cpp: http://lammps.sandia.gov, Sandia National Laboratories -read_dump.cpp:------------------------------------------------------------------------- */ -read_dump.cpp:/* ---------------------------------------------------------------------- -read_dump.cpp:------------------------------------------------------------------------- */ -read_dump.cpp:// lmptype.h must be first b/c this file uses MAXBIGINT and includes mpi.h -read_dump.cpp:// due to OpenMPI bug which sets INT64_MAX via its mpi.h -read_dump.cpp:// before lmptype.h can set flags to insure it is done correctly -read_dump.cpp:// also in reader_native.cpp -read_dump.cpp:/* ---------------------------------------------------------------------- */ -read_dump.cpp:/* ---------------------------------------------------------------------- */ -read_dump.cpp:/* ---------------------------------------------------------------------- */ -read_dump.cpp: // find the snapshot and read/bcast/process header info -read_dump.cpp: // reset timestep to nstep -read_dump.cpp: // counters -read_dump.cpp: // read in the snapshot and reset system -read_dump.cpp: // print out stats -read_dump.cpp:/* ---------------------------------------------------------------------- */ -read_dump.cpp:/* ---------------------------------------------------------------------- */ -read_dump.cpp: // allocate snapshot field buffer -read_dump.cpp: // create reader class -read_dump.cpp: // match readerstyle to options in style_reader.h -read_dump.cpp: if (0) return; // dummy line to enable else-if macro expansion -read_dump.cpp: // unrecognized style -read_dump.cpp: // pass any arguments to reader -read_dump.cpp:/* ---------------------------------------------------------------------- -read_dump.cpp:------------------------------------------------------------------------- */ -read_dump.cpp: // exit file loop when dump timestep >= nrequest -read_dump.cpp: // or files exhausted -read_dump.cpp:/* ---------------------------------------------------------------------- -read_dump.cpp:------------------------------------------------------------------------- */ -read_dump.cpp: // exit file loop when dump timestep matches all criteria -read_dump.cpp: // or files exhausted -read_dump.cpp:/* ---------------------------------------------------------------------- -read_dump.cpp:------------------------------------------------------------------------- */ -read_dump.cpp: // local copy of snapshot box parameters -read_dump.cpp: // used in xfield,yfield,zfield when converting dump atom to absolute coords -read_dump.cpp: // done if not checking fields -read_dump.cpp: // error check on current vs new box and fields -read_dump.cpp: // triclinic_snap < 0 means no box info in file -read_dump.cpp: // error check on requested fields exisiting in dump file -read_dump.cpp: // all explicitly requested x,y,z must have consistent scaling & wrapping -read_dump.cpp: "Read_dump xyz fields do not have consistent scaling/wrapping"); -read_dump.cpp: // set scaled/wrapped based on xyz flags -read_dump.cpp: // scaled, triclinic coords require all 3 x,y,z fields, to perform unscaling -read_dump.cpp: // set yindex,zindex = column index of Y and Z fields in fields array -read_dump.cpp: // needed for unscaling to absolute coords in xfield(), yfield(), zfield() -read_dump.cpp:/* ---------------------------------------------------------------------- */ -read_dump.cpp: // initialize counters -read_dump.cpp: // if purgeflag set, delete all current atoms -read_dump.cpp: // to match existing atoms to dump atoms: -read_dump.cpp: // must build map if not a molecular system -read_dump.cpp: // uflag[i] = 1 for each owned atom appearing in dump -read_dump.cpp: // ucflag = similar flag for each chunk atom, used in process_atoms() -read_dump.cpp: // read, broadcast, and process atoms from snapshot in chunks -read_dump.cpp: // if addflag set, add tags to new atoms if possible -read_dump.cpp: // if trimflag set, delete atoms not replaced by snapshot atoms -read_dump.cpp: // can now delete uflag arrays -read_dump.cpp: // delete atom map if created it above -read_dump.cpp: // else reinitialize map for current atoms -read_dump.cpp: // do this before migrating atoms to new procs via Irregular -read_dump.cpp: // overwrite simulation box with dump snapshot box if requested -read_dump.cpp: // reallocate processors to box -read_dump.cpp: // move atoms back inside simulation box and to new processors -read_dump.cpp: // use remap() instead of pbc() in case atoms moved a long distance -read_dump.cpp: // adjust image flags of all atoms (old and new) based on current box -read_dump.cpp: // use irregular() in case atoms moved a long distance -read_dump.cpp: // check that atom IDs are valid -read_dump.cpp:/* ---------------------------------------------------------------------- -read_dump.cpp:------------------------------------------------------------------------- */ -read_dump.cpp: // per-field vectors, leave space for ID and TYPE -read_dump.cpp: // add id and type fields as needed -read_dump.cpp: // scan ahead to see if "add yes" keyword/value is used -read_dump.cpp: // requires extra "type" field from from dump file -read_dump.cpp: // parse fields -read_dump.cpp: // check for no fields -read_dump.cpp: // parse optional args -read_dump.cpp:/* ---------------------------------------------------------------------- -read_dump.cpp:------------------------------------------------------------------------- */ -read_dump.cpp:/* ---------------------------------------------------------------------- -read_dump.cpp: use round-robin method, b/c atom coords may not be inside simulation box -read_dump.cpp:------------------------------------------------------------------------- */ -read_dump.cpp: // check if new atom matches one I own -read_dump.cpp: // setting m = -1 forces new atom not to match -read_dump.cpp: // NOTE: atom ID in fields is stored as double, not as ubuf -read_dump.cpp: // so can only cast it to tagint, thus cannot be full 64-bit ID -read_dump.cpp: // current image flags -read_dump.cpp: // overwrite atom attributes with field info -read_dump.cpp: // start from field 1 since 0 = id, 1 will be skipped if type -read_dump.cpp: // replace image flag in case changed by ix,iy,iz fields or unwrapping -read_dump.cpp: // create any atoms in chunk that no processor owned -read_dump.cpp: // add atoms in round-robin sequence on processors -read_dump.cpp: // cannot do it geometrically b/c dump coords may not be in simulation box -read_dump.cpp: // each processor adds every Pth atom -read_dump.cpp: // create type and coord fields from dump file -read_dump.cpp: // coord = 0.0 unless corresponding dump file field was specified -read_dump.cpp: // create the atom on proc that owns it -read_dump.cpp: // reset v,image ptrs in case they are reallocated -read_dump.cpp: // set atom attributes from other dump file fields -read_dump.cpp: // replace image flag in case changed by ix,iy,iz fields -read_dump.cpp: // init per-atom fix/compute/variable values for created atoms -read_dump.cpp:/* ---------------------------------------------------------------------- -read_dump.cpp:------------------------------------------------------------------------- */ -read_dump.cpp:/* ---------------------------------------------------------------------- -read_dump.cpp:------------------------------------------------------------------------- */ -reader.cpp:/* ---------------------------------------------------------------------- -reader.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -reader.cpp: http://lammps.sandia.gov, Sandia National Laboratories -reader.cpp:------------------------------------------------------------------------- */ -reader.cpp:/* ---------------------------------------------------------------------- */ -reader.cpp:/* ---------------------------------------------------------------------- -reader.cpp:------------------------------------------------------------------------- */ -reader.cpp:/* ---------------------------------------------------------------------- -reader.cpp:------------------------------------------------------------------------- */ -reader_native.cpp:/* ---------------------------------------------------------------------- -reader_native.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -reader_native.cpp: http://lammps.sandia.gov, Sandia National Laboratories -reader_native.cpp:------------------------------------------------------------------------- */ -reader_native.cpp:#define MAXLINE 1024 // max line length in dump file -reader_native.cpp:// also in read_dump.cpp -reader_native.cpp:/* ---------------------------------------------------------------------- */ -reader_native.cpp:/* ---------------------------------------------------------------------- */ -reader_native.cpp:/* ---------------------------------------------------------------------- -reader_native.cpp:------------------------------------------------------------------------- */ -reader_native.cpp:/* ---------------------------------------------------------------------- -reader_native.cpp:------------------------------------------------------------------------- */ -reader_native.cpp: // invoke read_lines() in chunks no larger than MAXSMALLINT -reader_native.cpp:/* ---------------------------------------------------------------------- -reader_native.cpp: xyz flags = UNSET (not a requested field), SCALE/WRAP as in enum -reader_native.cpp:------------------------------------------------------------------------- */ -reader_native.cpp: // if no field info requested, just return -reader_native.cpp: // exatract column labels and match to requested fields -reader_native.cpp: // match each field with a column of per-atom data -reader_native.cpp: // if fieldlabel set, match with explicit column -reader_native.cpp: // else infer one or more column matches from fieldtype -reader_native.cpp: // xyz flag set by scaleflag + wrapflag (if fieldlabel set) or column label -reader_native.cpp: // set fieldflag = -1 if any unfound fields -reader_native.cpp: // create internal vector of word ptrs for future parsing of per-atom lines -reader_native.cpp:/* ---------------------------------------------------------------------- -reader_native.cpp:------------------------------------------------------------------------- */ -reader_native.cpp: // tokenize the line -reader_native.cpp: // convert selected fields to floats -reader_native.cpp:/* ---------------------------------------------------------------------- -reader_native.cpp:------------------------------------------------------------------------- */ -reader_native.cpp:/* ---------------------------------------------------------------------- -reader_native.cpp:------------------------------------------------------------------------- */ -reader_xyz.cpp:/* ---------------------------------------------------------------------- -reader_xyz.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -reader_xyz.cpp: http://lammps.sandia.gov, Sandia National Laboratories -reader_xyz.cpp:------------------------------------------------------------------------- */ -reader_xyz.cpp:/* ---------------------------------------------------------------------- -reader_xyz.cpp:------------------------------------------------------------------------- */ -reader_xyz.cpp:#define MAXLINE 1024 // max line length in dump file -reader_xyz.cpp:/* ---------------------------------------------------------------------- */ -reader_xyz.cpp:/* ---------------------------------------------------------------------- */ -reader_xyz.cpp:/* ---------------------------------------------------------------------- -reader_xyz.cpp:------------------------------------------------------------------------- */ -reader_xyz.cpp: // first line has to have the number of atoms -reader_xyz.cpp: // truncate the string to the first whitespace, -reader_xyz.cpp: // so force->bnumeric() does not hiccup -reader_xyz.cpp: // skip over comment/title line -reader_xyz.cpp: // fake time step numbers -reader_xyz.cpp: // count this frame -reader_xyz.cpp:/* ---------------------------------------------------------------------- -reader_xyz.cpp:------------------------------------------------------------------------- */ -reader_xyz.cpp: // invoke read_lines() in chunks no larger than MAXSMALLINT -reader_xyz.cpp:/* ---------------------------------------------------------------------- -reader_xyz.cpp:------------------------------------------------------------------------- */ -reader_xyz.cpp: // signal that we have no box info at all -reader_xyz.cpp: // if no field info requested, just return -reader_xyz.cpp: // for xyz we know nothing about the style of coordinates, -reader_xyz.cpp: // so caller has to set the proper flags -reader_xyz.cpp: // copy fieldtype list for supported fields -reader_xyz.cpp:/* ---------------------------------------------------------------------- -reader_xyz.cpp:------------------------------------------------------------------------- */ -reader_xyz.cpp: // XXX: we could insert an element2type translation here -reader_xyz.cpp: // XXX: for now we flag unrecognized types as type 0, -reader_xyz.cpp: // XXX: which should trigger an error, if LAMMPS uses it. -reader_xyz.cpp:/* ---------------------------------------------------------------------- -reader_xyz.cpp:------------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -read_restart.cpp: http://lammps.sandia.gov, Sandia National Laboratories -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp:// same as write_restart.cpp -read_restart.cpp:/* ---------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- */ -read_restart.cpp: // check for remap option -read_restart.cpp: // if filename contains "*", search dir for latest restart file -read_restart.cpp: // check for multiproc files and an MPI-IO filename -read_restart.cpp: // open single restart file or base file for multiproc case -read_restart.cpp: // read magic string, endian flag, numeric version -read_restart.cpp: // read header info which creates simulation box -read_restart.cpp: // problem setup using info from header -read_restart.cpp: else n = static_cast (LB_FACTOR * atom->natoms / nprocs); -read_restart.cpp: // read groups, ntype-length arrays, force field, fix info from file -read_restart.cpp: // nextra = max # of extra quantities stored with each atom -read_restart.cpp: // read file layout info -read_restart.cpp: // close header file if in multiproc mode -read_restart.cpp: // read per-proc info -read_restart.cpp: // MPI-IO input from single file -read_restart.cpp: // input of single native file -read_restart.cpp: // nprocs_file = # of chunks in file -read_restart.cpp: // proc 0 reads a chunk and bcasts it to other procs -read_restart.cpp: // each proc unpacks the atoms, saving ones in it's sub-domain -read_restart.cpp: // if remapflag set, remap the atom to box before checking sub-domain -read_restart.cpp: // check for atom in sub-domain differs for orthogonal vs triclinic box -read_restart.cpp: // input of multiple native files with procs <= files -read_restart.cpp: // # of files = multiproc_file -read_restart.cpp: // each proc reads a subset of files, striding by nprocs -read_restart.cpp: // each proc keeps all atoms in all perproc chunks in its files -read_restart.cpp: // input of multiple native files with procs > files -read_restart.cpp: // # of files = multiproc_file -read_restart.cpp: // cluster procs based on # of files -read_restart.cpp: // 1st proc in each cluster reads per-proc chunks from file -read_restart.cpp: // sends chunks round-robin to other procs in its cluster -read_restart.cpp: // each proc keeps all atoms in its perproc chunks in file -read_restart.cpp: // nclusterprocs = # of procs in my cluster that read from one file -read_restart.cpp: // filewriter = 1 if this proc reads file, else 0 -read_restart.cpp: // fileproc = ID of proc in my cluster who reads from file -read_restart.cpp: // clustercomm = MPI communicator within my cluster of procs -read_restart.cpp: int icluster = static_cast ((bigint) me * nfile/nprocs); -read_restart.cpp: int fileproc = static_cast ((bigint) icluster * nprocs/nfile); -read_restart.cpp: int fcluster = static_cast ((bigint) fileproc * nfile/nprocs); -read_restart.cpp: static_cast ((bigint) (icluster+1) * nprocs/nfile); -read_restart.cpp: fcluster = static_cast ((bigint) fileprocnext * nfile/nprocs); -read_restart.cpp: // clean-up memory -read_restart.cpp: // for multiproc or MPI-IO files: -read_restart.cpp: // perform irregular comm to migrate atoms to correct procs -read_restart.cpp: // if remapflag set, remap all atoms I read back to box before migrating -read_restart.cpp: // create a temporary fix to hold and migrate extra atom info -read_restart.cpp: // necessary b/c irregular will migrate atoms -read_restart.cpp: // move atoms to new processors via irregular() -read_restart.cpp: // turn sorting on in migrate_atoms() to avoid non-reproducible restarts -read_restart.cpp: // in case read by different proc than wrote restart file -read_restart.cpp: // first do map_init() since irregular->migrate_atoms() will do map_clear() -read_restart.cpp: // put extra atom info held by fix back into atom->extra -read_restart.cpp: // destroy temporary fix -read_restart.cpp: // check that all atoms were assigned to procs -read_restart.cpp: // check that atom IDs are valid -read_restart.cpp: // create global mapping of atoms -read_restart.cpp: // create special bond lists for molecular systems -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp: // separate infile into dir + filename -read_restart.cpp: if (strchr(infile,'/')) { -read_restart.cpp: ptr = strrchr(infile,'/'); -read_restart.cpp: *ptr = '/'; -read_restart.cpp: strcpy(dirname,"./"); -read_restart.cpp: // if filename contains "%" replace "%" with "base" -read_restart.cpp: // scan all files in directory, searching for files that match pattern -read_restart.cpp: // maxnum = largest int that matches "*" -read_restart.cpp: // create outfile with maxint substituted for "*" -read_restart.cpp: // use original infile, not pattern, since need to retain "%" in filename -read_restart.cpp: // clean up -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp: // read flags and fields until flag = -1 -read_restart.cpp: // check restart file version, warn if different -read_restart.cpp: // check lmptype.h sizes, error if different -read_restart.cpp: // reset unit_style only if different -read_restart.cpp: // so that timestep,neighbor-skin are not changed -read_restart.cpp: // set dimension from restart file -read_restart.cpp: // read nprocs from restart file, warn if different -read_restart.cpp: // don't set procgrid, warn if different -read_restart.cpp: // don't set newton_pair, leave input script value unchanged -read_restart.cpp: // set newton_bond from restart file -read_restart.cpp: // warn if different and input script settings are not default -read_restart.cpp: // set boundary settings from restart file -read_restart.cpp: // warn if different and input script settings are not default -read_restart.cpp: // create new AtomVec class using any stored args -read_restart.cpp:/* ---------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- */ -read_restart.cpp: // on rank 0 read in the chunk sizes that were written out -read_restart.cpp: // then consolidate them and compute offsets relative to the -read_restart.cpp: // end of the header info to fit the current partition size -read_restart.cpp: // if the number of ranks that did the writing is different -read_restart.cpp: int init_chunk_number = nprocs_file/nprocs; -read_restart.cpp: // scatter chunk sizes and offsets to all procs -read_restart.cpp: // if MPI-IO file, broadcast the end of the header offste -read_restart.cpp: // this allows all ranks to compute offset to their data -read_restart.cpp:// ---------------------------------------------------------------------- -read_restart.cpp:// ---------------------------------------------------------------------- -read_restart.cpp:// low-level fread methods -read_restart.cpp:// ---------------------------------------------------------------------- -read_restart.cpp:// ---------------------------------------------------------------------- -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -read_restart.cpp:/* ---------------------------------------------------------------------- -read_restart.cpp:------------------------------------------------------------------------- */ -region_block.cpp:/* ---------------------------------------------------------------------- -region_block.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -region_block.cpp: http://lammps.sandia.gov, Sandia National Laboratories -region_block.cpp:------------------------------------------------------------------------- */ -region_block.cpp:/* ---------------------------------------------------------------------- */ -region_block.cpp: // error check -region_block.cpp: // extent of block -region_block.cpp: // particle could be close to all 6 planes -region_block.cpp: // particle can only touch 3 planes -region_block.cpp: // open face data structs -region_block.cpp: // face[0] -region_block.cpp: // face[1] -region_block.cpp: // face[2] -region_block.cpp: // face[3] -region_block.cpp: // face[4] -region_block.cpp: // face[5] -region_block.cpp:/* ---------------------------------------------------------------------- */ -region_block.cpp:/* ---------------------------------------------------------------------- -region_block.cpp:------------------------------------------------------------------------- */ -region_block.cpp:/* ---------------------------------------------------------------------- -region_block.cpp: no contact if outside (possible if called from union/intersect) -region_block.cpp:------------------------------------------------------------------------- */ -region_block.cpp: // x is exterior to block -region_block.cpp: // x is interior to block or on its surface -region_block.cpp:/* ---------------------------------------------------------------------- -region_block.cpp: no contact if inside (possible if called from union/intersect) -region_block.cpp:------------------------------------------------------------------------- */ -region_block.cpp: // x is far enough from block that there is no contact -region_block.cpp: // x is interior to block -region_block.cpp: // x is exterior to block or on its surface -region_block.cpp: // xp,yp,zp = point on surface of block that x is closest to -region_block.cpp: // could be edge or corner pt of block -region_block.cpp: // do not add contact point if r >= cutoff -region_block.cpp:/*------------------------------------------------------------------------ -region_block.cpp:--------------------------------------------------------------------------*/ -region_block.cpp: // check if point projects inside of face -region_block.cpp: // check each edge -region_block.cpp:/*------------------------------------------------------------------------ -region_block.cpp:--------------------------------------------------------------------------*/ -region_cone.cpp:/* ---------------------------------------------------------------------- -region_cone.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -region_cone.cpp: http://lammps.sandia.gov, Sandia National Laboratories -region_cone.cpp:------------------------------------------------------------------------- */ -region_cone.cpp:/* ---------------------------------------------------------------------- -region_cone.cpp:------------------------------------------------------------------------- */ -region_cone.cpp:/* ---------------------------------------------------------------------- */ -region_cone.cpp: // check open face settings -region_cone.cpp: // error check -region_cone.cpp: // extent of cone -region_cone.cpp: // particle could be close to cone surface and 2 ends -region_cone.cpp: // particle can only touch surface and 1 end -region_cone.cpp:/* ---------------------------------------------------------------------- */ -region_cone.cpp:/* ---------------------------------------------------------------------- -region_cone.cpp:------------------------------------------------------------------------- */ -region_cone.cpp: currentradius = radiuslo + (x-lo)*(radiushi-radiuslo)/(hi-lo); -region_cone.cpp: currentradius = radiuslo + (y-lo)*(radiushi-radiuslo)/(hi-lo); -region_cone.cpp: currentradius = radiuslo + (z-lo)*(radiushi-radiuslo)/(hi-lo); -region_cone.cpp:/* ---------------------------------------------------------------------- -region_cone.cpp: no contact if outside (possible if called from union/intersect) -region_cone.cpp:------------------------------------------------------------------------- */ -region_cone.cpp: currentradius = radiuslo + (x[0]-lo)*(radiushi-radiuslo)/(hi-lo); -region_cone.cpp: // x is exterior to cone -region_cone.cpp: // x is interior to cone or on its surface -region_cone.cpp: // surflo = pt on outer circle of bottom end plane, same dir as x vs axis -region_cone.cpp: // surfhi = pt on outer circle of top end plane, same dir as x vs axis -region_cone.cpp: surflo[1] = c1 + del1*radiuslo/r; -region_cone.cpp: surflo[2] = c2 + del2*radiuslo/r; -region_cone.cpp: surfhi[1] = c1 + del1*radiushi/r; -region_cone.cpp: surfhi[2] = c2 + del2*radiushi/r; -region_cone.cpp: (radiushi-radiuslo)/(hi-lo)); -region_cone.cpp: (radiushi-radiuslo)/(hi-lo); -region_cone.cpp: // y is exterior to cone -region_cone.cpp: // y is interior to cone or on its surface -region_cone.cpp: // surflo = pt on outer circle of bottom end plane, same dir as y vs axis -region_cone.cpp: // surfhi = pt on outer circle of top end plane, same dir as y vs axis -region_cone.cpp: surflo[0] = c1 + del1*radiuslo/r; -region_cone.cpp: surflo[2] = c2 + del2*radiuslo/r; -region_cone.cpp: surfhi[0] = c1 + del1*radiushi/r; -region_cone.cpp: surfhi[2] = c2 + del2*radiushi/r; -region_cone.cpp: (radiushi-radiuslo)/(hi-lo)); -region_cone.cpp: currentradius = radiuslo + (x[2]-lo)*(radiushi-radiuslo)/(hi-lo); -region_cone.cpp: // z is exterior to cone -region_cone.cpp: // z is interior to cone or on its surface -region_cone.cpp: // surflo = pt on outer circle of bottom end plane, same dir as z vs axis -region_cone.cpp: // surfhi = pt on outer circle of top end plane, same dir as z vs axis -region_cone.cpp: surflo[0] = c1 + del1*radiuslo/r; -region_cone.cpp: surflo[1] = c2 + del2*radiuslo/r; -region_cone.cpp: surfhi[0] = c1 + del1*radiushi/r; -region_cone.cpp: surfhi[1] = c2 + del2*radiushi/r; -region_cone.cpp: (radiushi-radiuslo)/(hi-lo)); -region_cone.cpp:/* ---------------------------------------------------------------------- -region_cone.cpp: no contact if inside (possible if called from union/intersect) -region_cone.cpp:------------------------------------------------------------------------- */ -region_cone.cpp: currentradius = radiuslo + (x[0]-lo)*(radiushi-radiuslo)/(hi-lo); -region_cone.cpp: // radius of curvature, only used for granular walls -region_cone.cpp: // x is far enough from cone that there is no contact -region_cone.cpp: // x is interior to cone -region_cone.cpp: // x is exterior to cone or on its surface -region_cone.cpp: // corner1234 = 4 corner pts of half trapezoid = cone surf in plane of x -region_cone.cpp: // project x to 3 line segments in half trapezoid (4th is axis of cone) -region_cone.cpp: // nearest = point on surface of cone that x is closest to -region_cone.cpp: // could be edge of cone -region_cone.cpp: // do not add contact point if r >= cutoff -region_cone.cpp: corner1[1] = c1 + del1*radiuslo/r; -region_cone.cpp: corner1[2] = c2 + del2*radiuslo/r; -region_cone.cpp: corner2[1] = c1 + del1*radiushi/r; -region_cone.cpp: corner2[2] = c2 + del2*radiushi/r; -region_cone.cpp: crad = -2.0*(radiuslo + (nearest[0]-lo)*(radiushi-radiuslo)/(hi-lo)); -region_cone.cpp: currentradius = radiuslo + (x[1]-lo)*(radiushi-radiuslo)/(hi-lo); -region_cone.cpp: // radius of curvature, only used for granular walls -region_cone.cpp: // y is far enough from cone that there is no contact -region_cone.cpp: // y is interior to cone -region_cone.cpp: // y is exterior to cone or on its surface -region_cone.cpp: // corner1234 = 4 corner pts of half trapezoid = cone surf in plane of y -region_cone.cpp: // project x to 3 line segments in half trapezoid (4th is axis of cone) -region_cone.cpp: // nearest = point on surface of cone that y is closest to -region_cone.cpp: // could be edge of cone -region_cone.cpp: // do not add contact point if r >= cutoff -region_cone.cpp: corner1[0] = c1 + del1*radiuslo/r; -region_cone.cpp: corner1[2] = c2 + del2*radiuslo/r; -region_cone.cpp: corner2[0] = c1 + del1*radiushi/r; -region_cone.cpp: corner2[2] = c2 + del2*radiushi/r; -region_cone.cpp: crad = -2.0*(radiuslo + (nearest[1]-lo)*(radiushi-radiuslo)/(hi-lo)); -region_cone.cpp: currentradius = radiuslo + (x[2]-lo)*(radiushi-radiuslo)/(hi-lo); -region_cone.cpp: // radius of curvature, only used for granular walls -region_cone.cpp: // z is far enough from cone that there is no contact -region_cone.cpp: // z is interior to cone -region_cone.cpp: // z is exterior to cone or on its surface -region_cone.cpp: // corner1234 = 4 corner pts of half trapezoid = cone surf in plane of z -region_cone.cpp: // project x to 3 line segments in half trapezoid (4th is axis of cone) -region_cone.cpp: // nearest = point on surface of cone that z is closest to -region_cone.cpp: // could be edge of cone -region_cone.cpp: // do not add contact point if r >= cutoff -region_cone.cpp: corner1[0] = c1 + del1*radiuslo/r; -region_cone.cpp: corner1[1] = c2 + del2*radiuslo/r; -region_cone.cpp: corner2[0] = c1 + del1*radiushi/r; -region_cone.cpp: corner2[1] = c2 + del2*radiushi/r; -region_cone.cpp: crad = -2.0*(radiuslo + (nearest[2]-lo)*(radiushi-radiuslo)/(hi-lo)); -region_cone.cpp:/* ---------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -region.cpp: http://lammps.sandia.gov, Sandia National Laboratories -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp: return 1 if region is dynamic (moves/rotates) or has variable shape -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp: also insures variables are invoked by all procs even those w/out atoms -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp:------------------------------------------------------------------------- */ -region.cpp: // one of surface_int/ext() will return 0 -region.cpp: // so no need to worry about offset of contact indices -region.cpp:/* ---------------------------------------------------------------------- -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp: pre-compute dx,dy,dz and theta for a moving/rotating region -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp: sign of angle determines whether rotating forward/backward in time -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp:------------------------------------------------------------------------- */ -region.cpp: // option defaults -region.cpp: // additional checks on valid face index are done by region classes -region.cpp: // error check -region.cpp: // setup scaling -region.cpp: // runit = unit vector along rotation axis -region.cpp: runit[0] = axis[0]/len; -region.cpp: runit[1] = axis[1]/len; -region.cpp: runit[2] = axis[2]/len; -region.cpp:/* ---------------------------------------------------------------------- -region.cpp:------------------------------------------------------------------------- */ -region.cpp: double t = MathExtra::dot3(ca,ba) / MathExtra::dot3(ba,ba); -region.cpp:/* ---------------------------------------------------------------------- -region.cpp: necessary b/c motion variables are for displacement & theta -region.cpp: called by fix wall/gran/region every timestep -region.cpp:------------------------------------------------------------------------- */ -region.cpp: v[0] = (dx - prev[0])/update->dt; -region.cpp: v[1] = (dy - prev[1])/update->dt; -region.cpp: v[2] = (dz - prev[2])/update->dt; -region.cpp: double angvel = (theta-prev[3]) / update->dt; -region.cpp:/* ---------------------------------------------------------------------- -region.cpp: since contacts only store delx/y/z, need to pass particle coords -region.cpp: called by fix/wall/gran/region every contact every timestep -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp: used by restart of fix/wall/gran/region -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp: region writes its current style, id, number of sub-regions, position/angle -region.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp: if they match current region, also read previous position/angle -region.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme -region.cpp:------------------------------------------------------------------------- */ -region.cpp:/* ---------------------------------------------------------------------- -region.cpp:------------------------------------------------------------------------- */ -region_cylinder.cpp:/* ---------------------------------------------------------------------- -region_cylinder.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -region_cylinder.cpp: http://lammps.sandia.gov, Sandia National Laboratories -region_cylinder.cpp:------------------------------------------------------------------------- */ -region_cylinder.cpp:/* ---------------------------------------------------------------------- */ -region_cylinder.cpp: // check open face settings -region_cylinder.cpp: // error check -region_cylinder.cpp: // extent of cylinder -region_cylinder.cpp: // for variable radius, uses initial radius -region_cylinder.cpp: // particle could be close to cylinder surface and 2 ends -region_cylinder.cpp: // particle can only touch surface and 1 end -region_cylinder.cpp:/* ---------------------------------------------------------------------- */ -region_cylinder.cpp:/* ---------------------------------------------------------------------- */ -region_cylinder.cpp:/* ---------------------------------------------------------------------- -region_cylinder.cpp:------------------------------------------------------------------------- */ -region_cylinder.cpp:/* ---------------------------------------------------------------------- -region_cylinder.cpp: no contact if outside (possible if called from union/intersect) -region_cylinder.cpp:------------------------------------------------------------------------- */ -region_cylinder.cpp: // x is exterior to cylinder -region_cylinder.cpp: // x is interior to cylinder or on its surface -region_cylinder.cpp: contact[n].dely = del1*(1.0-radius/r); -region_cylinder.cpp: contact[n].delz = del2*(1.0-radius/r); -region_cylinder.cpp: // y is exterior to cylinder -region_cylinder.cpp: // y is interior to cylinder or on its surface -region_cylinder.cpp: contact[n].delx = del1*(1.0-radius/r); -region_cylinder.cpp: contact[n].delz = del2*(1.0-radius/r); -region_cylinder.cpp: // z is exterior to cylinder -region_cylinder.cpp: // z is interior to cylinder or on its surface -region_cylinder.cpp: contact[n].delx = del1*(1.0-radius/r); -region_cylinder.cpp: contact[n].dely = del2*(1.0-radius/r); -region_cylinder.cpp:/* ---------------------------------------------------------------------- -region_cylinder.cpp: no contact if inside (possible if called from union/intersect) -region_cylinder.cpp:------------------------------------------------------------------------- */ -region_cylinder.cpp: // radius of curvature for granular -region_cylinder.cpp: // 0 for flat surfaces (infinite case), 2*radius for curved portion -region_cylinder.cpp: // x is far enough from cylinder that there is no contact -region_cylinder.cpp: // x is interior to cylinder -region_cylinder.cpp: // x is exterior to cylinder or on its surface -region_cylinder.cpp: // xp,yp,zp = point on surface of cylinder that x is closest to -region_cylinder.cpp: // could be edge of cylinder -region_cylinder.cpp: // do not add contact point if r >= cutoff -region_cylinder.cpp: yp = c1 + del1*radius/r; -region_cylinder.cpp: zp = c2 + del2*radius/r; -region_cylinder.cpp: // closest point on curved surface -region_cylinder.cpp: yp = c1 + del1*radius/r; -region_cylinder.cpp: zp = c2 + del2*radius/r; -region_cylinder.cpp: // closest point on bottom cap -region_cylinder.cpp: // closest point on top cap -region_cylinder.cpp: // y is far enough from cylinder that there is no contact -region_cylinder.cpp: // y is interior to cylinder -region_cylinder.cpp: // y is exterior to cylinder or on its surface -region_cylinder.cpp: // xp,yp,zp = point on surface of cylinder that x is closest to -region_cylinder.cpp: // could be edge of cylinder -region_cylinder.cpp: // do not add contact point if r >= cutoff -region_cylinder.cpp: xp = c1 + del1*radius/r; -region_cylinder.cpp: zp = c2 + del2*radius/r; -region_cylinder.cpp: // closest point on curved surface -region_cylinder.cpp: xp = c1 + del1*radius/r; -region_cylinder.cpp: zp = c2 + del2*radius/r; -region_cylinder.cpp: // closest point on bottom cap -region_cylinder.cpp: // closest point on top cap -region_cylinder.cpp: // z is far enough from cylinder that there is no contact -region_cylinder.cpp: // z is interior to cylinder -region_cylinder.cpp: // z is exterior to cylinder or on its surface -region_cylinder.cpp: // xp,yp,zp = point on surface of cylinder that x is closest to -region_cylinder.cpp: // could be edge of cylinder -region_cylinder.cpp: // do not add contact point if r >= cutoff -region_cylinder.cpp: xp = c1 + del1*radius/r; -region_cylinder.cpp: yp = c2 + del2*radius/r; -region_cylinder.cpp: // closest point on curved surface -region_cylinder.cpp: xp = c1 + del1*radius/r; -region_cylinder.cpp: yp = c2 + del2*radius/r; -region_cylinder.cpp: // closest point on bottom cap -region_cylinder.cpp: // closest point on top cap -region_cylinder.cpp:/* ---------------------------------------------------------------------- -region_cylinder.cpp:------------------------------------------------------------------------- */ -region_cylinder.cpp:/* ---------------------------------------------------------------------- -region_cylinder.cpp:------------------------------------------------------------------------- */ -region_cylinder.cpp:/* ---------------------------------------------------------------------- -region_cylinder.cpp: called once per timestep by fix/wall/gran/region. -region_cylinder.cpp:------------------------------------------------------------------------- */ -region_cylinder.cpp:/* ---------------------------------------------------------------------- -region_cylinder.cpp:------------------------------------------------------------------------- */ -region_cylinder.cpp: double delx, dely, delz; // Displacement of contact point in x,y,z -region_cylinder.cpp: dely = (xc[1] - xcenter[1])*(1 - rprev/radius); -region_cylinder.cpp: delz = (xc[2] - xcenter[2])*(1 - rprev/radius); -region_cylinder.cpp: delx = (xc[0] - xcenter[0])*(1 - rprev/radius); -region_cylinder.cpp: delz = (xc[2] - xcenter[2])*(1 - rprev/radius); -region_cylinder.cpp: delx = (xc[0] - xcenter[0])*(1 - rprev/radius); -region_cylinder.cpp: dely = (xc[1] - xcenter[1])*(1 - rprev/radius); -region_cylinder.cpp: vwall[0] += delx/update->dt; -region_cylinder.cpp: vwall[1] += dely/update->dt; -region_cylinder.cpp: vwall[2] += delz/update->dt; -region_cylinder.cpp: //printf ("R is %g, prev %g, velocity of wall at %g %g %g is %g %g %g\n",radius,rprev,xc[0],xc[1],xc[2],vwall[0],vwall[1],vwall[2]); -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -region_intersect.cpp: http://lammps.sandia.gov, Sandia National Laboratories -region_intersect.cpp:------------------------------------------------------------------------- */ -region_intersect.cpp:/* ---------------------------------------------------------------------- */ -region_intersect.cpp: // build list of regions to intersect -region_intersect.cpp: // store sub-region IDs in idsub -region_intersect.cpp: // this region is variable shape or dynamic if any of sub-regions are -region_intersect.cpp: // extent of intersection of regions -region_intersect.cpp: // has bounding box if interior and any sub-region has bounding box -region_intersect.cpp: // possible contacts = sum of possible contacts in all sub-regions -region_intersect.cpp: // for near contacts and touching contacts -region_intersect.cpp:/* ---------------------------------------------------------------------- */ -region_intersect.cpp:/* ---------------------------------------------------------------------- */ -region_intersect.cpp: // re-build list of sub-regions in case other regions were deleted -region_intersect.cpp: // error if a sub-region was deleted -region_intersect.cpp: // init the sub-regions -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp:------------------------------------------------------------------------- */ -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp:------------------------------------------------------------------------- */ -region_intersect.cpp: // increment by cmax instead of tmax to insure -region_intersect.cpp: // possible wall IDs for sub-regions are non overlapping -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp: (1) flip interior/exterior flag of each sub-region -region_intersect.cpp: (4) flip interior/exterior flags back to original settings -region_intersect.cpp:------------------------------------------------------------------------- */ -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp:------------------------------------------------------------------------- */ -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp: move/rotate all sub-regions -region_intersect.cpp:------------------------------------------------------------------------- */ -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp: get translational/angular velocities of all subregions -region_intersect.cpp:------------------------------------------------------------------------- */ -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp: used by restart of fix/wall/gran/region -region_intersect.cpp:------------------------------------------------------------------------- */ -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp: region writes its current position/angle -region_intersect.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme -region_intersect.cpp:------------------------------------------------------------------------- */ -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp: region reads its previous position/angle -region_intersect.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme -region_intersect.cpp:------------------------------------------------------------------------- */ -region_intersect.cpp:/* ---------------------------------------------------------------------- -region_intersect.cpp:------------------------------------------------------------------------- */ -region_plane.cpp:/* ---------------------------------------------------------------------- -region_plane.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -region_plane.cpp: http://lammps.sandia.gov, Sandia National Laboratories -region_plane.cpp:------------------------------------------------------------------------- */ -region_plane.cpp:/* ---------------------------------------------------------------------- */ -region_plane.cpp: // enforce unit normal -region_plane.cpp: normal[0] /= sqrt(rsq); -region_plane.cpp: normal[1] /= sqrt(rsq); -region_plane.cpp: normal[2] /= sqrt(rsq); -region_plane.cpp: // plane has no bounding box -region_plane.cpp:/* ---------------------------------------------------------------------- */ -region_plane.cpp:/* ---------------------------------------------------------------------- -region_plane.cpp:------------------------------------------------------------------------- */ -region_plane.cpp:/* ---------------------------------------------------------------------- -region_plane.cpp: no contact if on other side (possible if called from union/intersect) -region_plane.cpp:------------------------------------------------------------------------- */ -region_plane.cpp:/* ---------------------------------------------------------------------- -region_plane.cpp: no contact if on other side (possible if called from union/intersect) -region_plane.cpp:------------------------------------------------------------------------- */ -region_prism.cpp:/* ---------------------------------------------------------------------- -region_prism.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -region_prism.cpp: http://lammps.sandia.gov, Sandia National Laboratories -region_prism.cpp:------------------------------------------------------------------------- */ -region_prism.cpp:/* ---------------------------------------------------------------------- -region_prism.cpp:------------------------------------------------------------------------- */ -region_prism.cpp:/* ---------------------------------------------------------------------- */ -region_prism.cpp: // error check -region_prism.cpp: // prism cannot be 0 thickness in any dim, else inverse blows up -region_prism.cpp: // non-zero tilt values cannot be used if either dim is INF on both ends -region_prism.cpp: // extent of prism -region_prism.cpp: // particle could be close to all 6 planes -region_prism.cpp: // particle can only touch 3 planes -region_prism.cpp: // h = transformation matrix from tilt coords (0-1) to box coords (xyz) -region_prism.cpp: // columns of h are edge vectors of tilted box -region_prism.cpp: // hinv = transformation matrix from box coords to tilt coords -region_prism.cpp: // both h and hinv are upper triangular -region_prism.cpp: // since 1st edge of prism is along x-axis -region_prism.cpp: // and bottom face of prism is in xy plane -region_prism.cpp: hinv[0][0] = 1.0/h[0][0]; -region_prism.cpp: hinv[0][1] = -h[0][1] / (h[0][0]*h[1][1]); -region_prism.cpp: hinv[0][2] = (h[0][1]*h[1][2] - h[0][2]*h[1][1]) / (h[0][0]*h[1][1]*h[2][2]); -region_prism.cpp: hinv[1][1] = 1.0/h[1][1]; -region_prism.cpp: hinv[1][2] = -h[1][2] / (h[1][1]*h[2][2]); -region_prism.cpp: hinv[2][2] = 1.0/h[2][2]; -region_prism.cpp: // corners = 8 corner points of prism -region_prism.cpp: // order = x varies fastest, then y, finally z -region_prism.cpp: // clo/chi = lo and hi corner pts of prism -region_prism.cpp: // face = 6 inward-facing unit normals to prism faces -region_prism.cpp: // order = xy plane, xz plane, yz plane -region_prism.cpp: // remap open face indices to be consistent -region_prism.cpp: // tri = 3 vertices (0-7) in each of 12 triangles on 6 faces -region_prism.cpp: // verts in each tri are ordered so that right-hand rule gives inward norm -region_prism.cpp: // order = xy plane, xz plane, yz plane -region_prism.cpp:/* ---------------------------------------------------------------------- */ -region_prism.cpp:/* ---------------------------------------------------------------------- -region_prism.cpp: abc = Hinv * (xyz - xyz/lo) -region_prism.cpp: xyz/lo = lower-left corner of prism -region_prism.cpp:------------------------------------------------------------------------- */ -region_prism.cpp:/* ---------------------------------------------------------------------- -region_prism.cpp: no contact if outside (possible if called from union/intersect) -region_prism.cpp:------------------------------------------------------------------------- */ -region_prism.cpp: // x is exterior to prism -region_prism.cpp: // x is interior to prism or on its surface -region_prism.cpp:/* ---------------------------------------------------------------------- -region_prism.cpp: no contact if inside (possible if called from union/intersect) -region_prism.cpp:------------------------------------------------------------------------- */ -region_prism.cpp: // x is far enough from prism that there is no contact -region_prism.cpp: // x is interior to prism -region_prism.cpp: // x is exterior to prism or on its surface -region_prism.cpp: // xp,yp,zp = point on surface of prism that x is closest to -region_prism.cpp: // could be edge or corner pt of prism -region_prism.cpp: // do not add contact point if r >= cutoff -region_prism.cpp:/* ---------------------------------------------------------------------- -region_prism.cpp:------------------------------------------------------------------------- */ -region_prism.cpp: // generate successive xnear points, one nearest to x is (xp,yp,zp) -region_prism.cpp: // loop over 6 faces and 2 triangles in each face -region_prism.cpp: // xproj = x projected to plane of triangle -region_prism.cpp: // if xproj is inside or on triangle boundary, that is xnear -region_prism.cpp: // else: loop over 3 edges of triangle -region_prism.cpp: // compute distance to edge line -region_prism.cpp: // xnear = nearest point on line to xproj, bounded by segment end pts -region_prism.cpp: iface = itri/2; -region_prism.cpp:/* ---------------------------------------------------------------------- -region_prism.cpp:------------------------------------------------------------------------- */ -region_prism.cpp:/* ---------------------------------------------------------------------- */ -region_sphere.cpp:/* ---------------------------------------------------------------------- -region_sphere.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -region_sphere.cpp: http://lammps.sandia.gov, Sandia National Laboratories -region_sphere.cpp:------------------------------------------------------------------------- */ -region_sphere.cpp:/* ---------------------------------------------------------------------- */ -region_sphere.cpp: // error check -region_sphere.cpp: // extent of sphere -region_sphere.cpp: // for variable radius, uses initial radius -region_sphere.cpp:/* ---------------------------------------------------------------------- */ -region_sphere.cpp:/* ---------------------------------------------------------------------- */ -region_sphere.cpp:/* ---------------------------------------------------------------------- -region_sphere.cpp:------------------------------------------------------------------------- */ -region_sphere.cpp:/* ---------------------------------------------------------------------- -region_sphere.cpp: no contact if outside (possible if called from union/intersect) -region_sphere.cpp:------------------------------------------------------------------------- */ -region_sphere.cpp: contact[0].delx = delx*(1.0-radius/r); -region_sphere.cpp: contact[0].dely = dely*(1.0-radius/r); -region_sphere.cpp: contact[0].delz = delz*(1.0-radius/r); -region_sphere.cpp:/* ---------------------------------------------------------------------- -region_sphere.cpp: no contact if inside (possible if called from union/intersect) -region_sphere.cpp:------------------------------------------------------------------------- */ -region_sphere.cpp: contact[0].delx = delx*(1.0-radius/r); -region_sphere.cpp: contact[0].dely = dely*(1.0-radius/r); -region_sphere.cpp: contact[0].delz = delz*(1.0-radius/r); -region_sphere.cpp:/* ---------------------------------------------------------------------- -region_sphere.cpp:------------------------------------------------------------------------- */ -region_sphere.cpp:/* ---------------------------------------------------------------------- -region_sphere.cpp:------------------------------------------------------------------------- */ -region_sphere.cpp:/* ---------------------------------------------------------------------- -region_sphere.cpp: called once per timestep by fix/wall/gran/region. -region_sphere.cpp:------------------------------------------------------------------------- */ -region_sphere.cpp:/* ---------------------------------------------------------------------- -region_sphere.cpp:------------------------------------------------------------------------- */ -region_sphere.cpp: double delx, dely, delz; // Displacement of contact point in x,y,z -region_sphere.cpp: delx = (xc[0] - xcenter[0])*(1 - rprev/radius); -region_sphere.cpp: dely = (xc[1] - xcenter[1])*(1 - rprev/radius); -region_sphere.cpp: delz = (xc[2] - xcenter[2])*(1 - rprev/radius); -region_sphere.cpp: vwall[0] += delx/update->dt; -region_sphere.cpp: vwall[1] += dely/update->dt; -region_sphere.cpp: vwall[2] += delz/update->dt; -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -region_union.cpp: http://lammps.sandia.gov, Sandia National Laboratories -region_union.cpp:------------------------------------------------------------------------- */ -region_union.cpp:/* ---------------------------------------------------------------------- */ -region_union.cpp: // build list of region indices to union -region_union.cpp: // store sub-region IDs in idsub -region_union.cpp: // this region is variable shape or dynamic if any of sub-regions are -region_union.cpp: // extent of union of regions -region_union.cpp: // has bounding box if interior and all sub-regions have bounding box -region_union.cpp: // possible contacts = sum of possible contacts in all sub-regions -region_union.cpp: // for near contacts and touching contacts -region_union.cpp:/* ---------------------------------------------------------------------- */ -region_union.cpp:/* ---------------------------------------------------------------------- */ -region_union.cpp: // re-build list of sub-regions in case other regions were deleted -region_union.cpp: // error if a sub-region was deleted -region_union.cpp: // init the sub-regions -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp:------------------------------------------------------------------------- */ -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp:------------------------------------------------------------------------- */ -region_union.cpp: // increment by cmax instead of tmax to insure -region_union.cpp: // possible wall IDs for sub-regions are non overlapping -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp: (1) flip interior/exterior flag of each sub-region -region_union.cpp: (4) flip interior/exterior flags back to original settings -region_union.cpp:------------------------------------------------------------------------- */ -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp:------------------------------------------------------------------------- */ -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp: move/rotate all sub-regions -region_union.cpp:------------------------------------------------------------------------- */ -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp: get translational/angular velocities of all subregions -region_union.cpp:------------------------------------------------------------------------- */ -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp: used by restart of fix/wall/gran/region -region_union.cpp:------------------------------------------------------------------------- */ -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp: region writes its current position/angle -region_union.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme -region_union.cpp:------------------------------------------------------------------------- */ -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp: region reads its previous position/angle -region_union.cpp: needed by fix/wall/gran/region to compute velocity by differencing scheme -region_union.cpp:------------------------------------------------------------------------- */ -region_union.cpp:/* ---------------------------------------------------------------------- -region_union.cpp:------------------------------------------------------------------------- */ -replicate.cpp:/* ---------------------------------------------------------------------- -replicate.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -replicate.cpp: http://lammps.sandia.gov, Sandia National Laboratories -replicate.cpp:------------------------------------------------------------------------- */ -replicate.cpp:enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; // several files -replicate.cpp:/* ---------------------------------------------------------------------- */ -replicate.cpp:/* ---------------------------------------------------------------------- */ -replicate.cpp: // nrep = total # of replications -replicate.cpp: // error and warning checks -replicate.cpp: // maxtag = largest atom tag across all existing atoms -replicate.cpp: // maxmol = largest molecule tag across all existing atoms -replicate.cpp: // unmap existing atoms via image flags -replicate.cpp: // communication buffer for all my atom's info -replicate.cpp: // max_size = largest buffer needed by any proc -replicate.cpp: // must do before new Atom class created, -replicate.cpp: // since size_restart() uses atom->nlocal -replicate.cpp: // old = original atom class -replicate.cpp: // atom = new replicated atom class -replicate.cpp: // also set atomKK for Kokkos version of Atom class -replicate.cpp: // check that new system will not be too large -replicate.cpp: // new tags cannot exceed MAXTAGINT -replicate.cpp: // new system sizes cannot exceed MAXBIGINT -replicate.cpp: // assign atom and topology counts in new class from old one -replicate.cpp: // store old simulation box -replicate.cpp: // setup new simulation box -replicate.cpp: // new problem setup using new box boundaries -replicate.cpp: else n = static_cast (LB_FACTOR * atom->natoms / nprocs); -replicate.cpp: // copy type arrays to new atom class -replicate.cpp: // set bounds for my proc -replicate.cpp: // if periodic and I am lo/hi proc, adjust bounds by EPSILON -replicate.cpp: // insures all replicated atoms will be owned even with round-off -replicate.cpp: // loop over all procs -replicate.cpp: // if this iteration of loop is me: -replicate.cpp: // pack my unmapped atom data into buf -replicate.cpp: // bcast it to all other procs -replicate.cpp: // performs 3d replicate loop with while loop over atoms in buf -replicate.cpp: // x = new replicated position, remapped into simulation box -replicate.cpp: // unpack atom into new atom class from buf if I own it -replicate.cpp: // adjust tag, mol #, coord, topology info as needed -replicate.cpp: // while loop over one proc's atom list -replicate.cpp: // free communication buffer and old atom class -replicate.cpp: // check that all atoms were assigned to procs -replicate.cpp: // check that atom IDs are valid -replicate.cpp: // create global mapping of atoms -replicate.cpp: // create special bond lists for molecular systems -rerun.cpp:/* ---------------------------------------------------------------------- -rerun.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -rerun.cpp: http://lammps.sandia.gov, Sandia National Laboratories -rerun.cpp:------------------------------------------------------------------------- */ -rerun.cpp:/* ---------------------------------------------------------------------- */ -rerun.cpp:/* ---------------------------------------------------------------------- */ -rerun.cpp: // list of dump files = args until a keyword -rerun.cpp: // parse optional args up until "dump" -rerun.cpp: // user MAXBIGINT -1 so Output can add 1 to it and still be a big int -rerun.cpp: // pass list of filenames to ReadDump -rerun.cpp: // along with post-"dump" args and post-"format" args -rerun.cpp: // perform the pseudo run -rerun.cpp: // invoke lmp->init() only once -rerun.cpp: // read all relevant snapshots -rerun.cpp: // use setup_minimal() since atoms are already owned by correct procs -rerun.cpp: // addstep_compute_all() insures energy/virial computed on every snapshot -rerun.cpp: // insure thermo output on last dump timestep -rerun.cpp: // set update->nsteps to ndump for Finish stats to print -rerun.cpp: // clean-up -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -respa.cpp: http://lammps.sandia.gov, Sandia National Laboratories -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp:/* ---------------------------------------------------------------------- */ -respa.cpp: // set level at which each force is computed -respa.cpp: // argument settings override defaults -respa.cpp: // defaults for hybrid pair styles -respa.cpp: // the hybrid keyword requires a hybrid pair style -respa.cpp: // each hybrid sub-style needs to be assigned to a respa level -respa.cpp: // cannot specify both pair and inner/middle/outer -respa.cpp: error->all(FLERR,"Cannot set both respa pair and inner/middle/outer"); -respa.cpp: // if either inner and outer is specified, then both must be -respa.cpp: // middle cannot be set without inner/outer -respa.cpp: error->all(FLERR,"Cannot set respa middle without inner/outer"); -respa.cpp: // cannot combine hybrid with any of pair/inner/middle/outer -respa.cpp: "any of pair/inner/middle/outer"); -respa.cpp: // set defaults if user did not specify level -respa.cpp: // bond to innermost level -respa.cpp: // angle same as bond, dihedral same as angle, improper same as dihedral -respa.cpp: // pair to outermost level if no inner/middle/outer -respa.cpp: // inner/middle/outer have no defaults -respa.cpp: // kspace same as pair or outer -respa.cpp: // print respa levels -respa.cpp: // check that levels are in correct order -respa.cpp: // warn if any levels are devoid of forces -respa.cpp: // check cutoff consistency if inner/middle/outer are enabled -respa.cpp: // set outer pair of cutoffs to inner pair if middle is not enabled -respa.cpp: // ensure that pair->compute() is run properly -respa.cpp: // when the hybrid keyword is not used -respa.cpp: // allocate other needed arrays -respa.cpp:/* ---------------------------------------------------------------------- */ -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp: // warn if no fixes -respa.cpp: // create fix needed for storing atom-based respa level forces -respa.cpp: // will delete it at end of run -respa.cpp: // if supported, we also store torques on a per-level basis -respa.cpp: // insure respa inner/middle/outer is using Pair class that supports it -respa.cpp: error->all(FLERR,"Pair style does not support rRESPA inner/middle/outer"); -respa.cpp: // virial_style = 1 (explicit) since never computed implicitly like Verlet -respa.cpp: // setup lists of computes for global and per-atom PE and pressure -respa.cpp: // detect if fix omp is present and will clear force arrays -respa.cpp: // set flags for arrays to clear in force_clear() -respa.cpp: // step[] = timestep for each level -respa.cpp: step[ilevel] = step[ilevel+1]/loop[ilevel]; -respa.cpp: // set newton flag for each level -respa.cpp: // orthogonal vs triclinic simulation box -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp: // setup domain, communication and neighboring -respa.cpp: // acquire ghosts -respa.cpp: // build neighbor lists -respa.cpp: // compute all forces -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp: // setup domain, communication and neighboring -respa.cpp: // acquire ghosts -respa.cpp: // build neighbor lists -respa.cpp: // compute all forces -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp: // needed in case end_of_step() or output() use total force -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp:/* ---------------------------------------------------------------------- */ -respa.cpp: step[ilevel] = step[ilevel+1]/loop[ilevel]; -respa.cpp:/* ---------------------------------------------------------------------- */ -respa.cpp: // at outermost level, check on rebuilding neighbor list -respa.cpp: // at innermost level, communicate -respa.cpp: // at middle levels, do nothing -respa.cpp: // rRESPA recursion thru all levels -respa.cpp: // this used to be before neigh list build, -respa.cpp: // which prevented per-atom energy/stress being tallied correctly -respa.cpp: // b/c atoms migrated to new procs between short/long force calls -respa.cpp: // now they migrate at very start of rRESPA timestep, before all forces -respa.cpp: // force computations -respa.cpp: // important that ordering is same as Verlet -respa.cpp: // so that any order dependencies are the same -respa.cpp: // when potentials are invoked at same level -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp: // clear global force array -respa.cpp: // if either newton flag is set, also include ghosts -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp:/* ---------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -respa.cpp:/*----------------------------------------------------------------------- -respa.cpp:------------------------------------------------------------------------- */ -run.cpp:/* ---------------------------------------------------------------------- -run.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -run.cpp: http://lammps.sandia.gov, Sandia National Laboratories -run.cpp:------------------------------------------------------------------------- */ -run.cpp:/* ---------------------------------------------------------------------- */ -run.cpp:/* ---------------------------------------------------------------------- */ -run.cpp: // ignore run command, if walltime limit was already reached -run.cpp: // parse optional args -run.cpp: // all remaining args are commands -run.cpp: // first,last = arg index of first/last commands -run.cpp: // set ncommands = 0 if single command and it is NULL -run.cpp: // set nsteps as integer, using upto value if specified -run.cpp: // error check -run.cpp: error->all(FLERR,"Invalid run command start/stop value"); -run.cpp: error->all(FLERR,"Invalid run command start/stop value"); -run.cpp: // if nevery, make copies of arg strings that are commands -run.cpp: // required because re-parsing commands via input->one() will wipe out args -run.cpp: // perform a single run -run.cpp: // use start/stop to set begin/end step -run.cpp: // if pre or 1st run, do System init/setup, -run.cpp: // else just init timer and setup output -run.cpp: // if post, do full Finish, else just print time -run.cpp: // perform multiple runs optionally interleaved with invocation command(s) -run.cpp: // use start/stop to set begin/end step -run.cpp: // if pre or 1st iteration of multiple runs, do System init/setup, -run.cpp: // else just init timer and setup output -run.cpp: // if post or last iteration, do full Finish, else just print time -run.cpp: // wrap command invocation with clearstep/addstep -run.cpp: // since a command may invoke computes via variables -set.cpp:/* ---------------------------------------------------------------------- -set.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -set.cpp: http://lammps.sandia.gov, Sandia National Laboratories -set.cpp:------------------------------------------------------------------------- */ -set.cpp:/* ---------------------------------------------------------------------- */ -set.cpp: // style and ID info -set.cpp: // loop over keyword/value pairs -set.cpp: // call appropriate routine to reset attributes -set.cpp: } else if (strcmp(arg[iarg],"type/fraction") == 0) { -set.cpp: } else if (strcmp(arg[iarg],"dipole/random") == 0) { -set.cpp: } else if (strcmp(arg[iarg],"spin/random") == 0) { -set.cpp: } else if (strcmp(arg[iarg],"quat/random") == 0) { -set.cpp: dvalue *= MY_PI/180.0; -set.cpp: } else if (strcmp(arg[iarg],"theta/random") == 0) { -set.cpp: (strcmp(arg[iarg],"density/disc") == 0)) { -set.cpp: if (strcmp(arg[iarg],"density/disc") == 0) { -set.cpp: error->all(FLERR,"Density/disc option requires 2d simulation"); -set.cpp: } else if (strcmp(arg[iarg],"meso/e") == 0) { -set.cpp: error->all(FLERR,"Cannot set meso/e for this atom style"); -set.cpp: } else if (strcmp(arg[iarg],"meso/cv") == 0) { -set.cpp: error->all(FLERR,"Cannot set meso/cv for this atom style"); -set.cpp: } else if (strcmp(arg[iarg],"meso/rho") == 0) { -set.cpp: error->all(FLERR,"Cannot set meso/rho for this atom style"); -set.cpp: } else if (strcmp(arg[iarg],"smd/mass/density") == 0) { -set.cpp: error->all(FLERR,"Cannot set smd/mass/density for this atom style"); -set.cpp: } else if (strcmp(arg[iarg],"smd/contact/radius") == 0) { -set.cpp: error->all(FLERR,"Cannot set smd/contact/radius " -set.cpp: } else if (strcmp(arg[iarg],"dpd/theta") == 0) { -set.cpp: error->all(FLERR,"Cannot set dpd/theta for this atom style"); -set.cpp: // statistics -set.cpp: // free local memory -set.cpp:/* ---------------------------------------------------------------------- -set.cpp:------------------------------------------------------------------------- */ -set.cpp:/* ---------------------------------------------------------------------- -set.cpp:------------------------------------------------------------------------- */ -set.cpp: // evaluate atom-style variable(s) if necessary -set.cpp: // loop over selected atoms -set.cpp: // overwrite dvalue, ivalue, xyzw value if variables defined -set.cpp: // else the input script scalar value remains in place -set.cpp: // set values in per-atom arrays -set.cpp: // error check here in case atom-style variables generated bogus value -set.cpp: // set mass from volume and supplied mass density -set.cpp: double tfactor = force->mvv2e / (domain->dimension * force->boltz); -set.cpp: // set shape of ellipsoidal particle -set.cpp: // set length of line particle -set.cpp: // set corners of tri particle -set.cpp: // set rmass via density -set.cpp: // if radius > 0.0, treat as sphere or disc -set.cpp: // if shape > 0.0, treat as ellipsoid (or ellipse, when uncomment below) -set.cpp: // if length > 0.0, treat as line -set.cpp: // if area > 0.0, treat as tri -set.cpp: // else set rmass to density directly -set.cpp: atom->rmass[i] = 4.0*MY_PI/3.0 * -set.cpp: // enable 2d ellipse (versus 3d ellipsoid) when time integration -set.cpp: // options (fix nve/asphere, fix nh/asphere) are also implemented -set.cpp: // if (discflag) -set.cpp: // atom->rmass[i] = MY_PI*shape[0]*shape[1] * dvalue; -set.cpp: // else -set.cpp: atom->rmass[i] = 4.0*MY_PI/3.0 * shape[0]*shape[1]*shape[2] * dvalue; -set.cpp: // set dipole moment -set.cpp: // set magnetic moments -set.cpp: sp[i][0] = xvalue/sp_norm; -set.cpp: sp[i][1] = yvalue/sp_norm; -set.cpp: sp[i][2] = zvalue/sp_norm; -set.cpp: sp[i][2]*sp[i][2]); //Should be 1 for atomic spins -set.cpp: // set quaternion orientation of ellipsoid or tri or body particle -set.cpp: // set quaternion orientation of ellipsoid or tri or body particle -set.cpp: // enforce quat rotation vector in z dir for 2d systems -set.cpp: double theta2 = MY_PI2 * wvalue/180.0; -set.cpp: // set theta of line particle -set.cpp: // set angmom or omega of particle -set.cpp: // reset any or all of 3 image flags -set.cpp: // set value for custom integer or double vector -set.cpp: // clear up per-atom memory if allocated -set.cpp:/* ---------------------------------------------------------------------- -set.cpp:------------------------------------------------------------------------- */ -set.cpp: // set fraction of atom types to newtype -set.cpp: // set dipole moments to random orientations in 3d or 2d -set.cpp: // dipole length is determined by dipole type array -set.cpp: scale = dvalue/sqrt(msq); -set.cpp: scale = dvalue/sqrt(msq); -set.cpp: // set spin moments to random orientations in 3d or 2d -set.cpp: // spin length is fixed to unity -set.cpp: scale = 1.0/sqrt(sp_sq); -set.cpp: scale = 1.0/sqrt(sp_sq); -set.cpp: // set quaternions to random orientations in 3d and 2d -set.cpp: // set theta to random orientation in 2d -set.cpp:/* ---------------------------------------------------------------------- */ -set.cpp: // error check -set.cpp: // border swap to acquire ghost atom info -set.cpp: // enforce PBC before in case atoms are outside box -set.cpp: // init entire system since comm->exchange is done -set.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc -set.cpp: // select both owned and ghost atoms -set.cpp: // for BOND, each of 2 atoms must be in group -set.cpp: // for ANGLE, each of 3 atoms must be in group -set.cpp: // for DIHEDRAL, each of 4 atoms must be in group -set.cpp: // for IMPROPER, each of 4 atoms must be in group -set.cpp:/* ---------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- -special.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -special.cpp: http://lammps.sandia.gov, Sandia National Laboratories -special.cpp:------------------------------------------------------------------------- */ -special.cpp:// allocate space for static class variable -special.cpp:/* ---------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp: // initialize nspecial counters to 0 -special.cpp: // ----------------------------------------------------- -special.cpp: // compute nspecial[i][0] = # of 1-2 neighbors of atom i -special.cpp: // ----------------------------------------------------- -special.cpp: // bond partners stored by atom itself -special.cpp: // if newton_bond off, then done -special.cpp: // else only counted 1/2 of all bonds, so count other half -special.cpp: // nbufmax = largest buffer needed to hold info from any proc -special.cpp: // info for each atom = global tag of 2nd atom in each bond -special.cpp: // fill buffer with global tags of bond partners of my atoms -special.cpp: // cycle buffer around ring of procs back to self -special.cpp: // when receive buffer, scan tags for atoms I own -special.cpp: // when find one, increment nspecial count for that atom -special.cpp: // ---------------------------------------------------- -special.cpp: // create onetwo[i] = list of 1-2 neighbors for atom i -special.cpp: // ---------------------------------------------------- -special.cpp: // count = accumulating counter -special.cpp: // add bond partners stored by atom to onetwo list -special.cpp: // if newton_bond off, then done -special.cpp: // else only stored 1/2 of all bonds, so store other half -special.cpp: // nbufmax = largest buffer needed to hold info from any proc -special.cpp: // info for each atom = 2 global tags in each bond -special.cpp: // fill buffer with global tags of both atoms in bond -special.cpp: // cycle buffer around ring of procs back to self -special.cpp: // when receive buffer, scan 2nd-atom tags for atoms I own -special.cpp: // when find one, add 1st-atom tag to onetwo list for 2nd atom -special.cpp: // ----------------------------------------------------- -special.cpp: // done if special_bond weights for 1-3, 1-4 are set to 1.0 -special.cpp: // ----------------------------------------------------- -special.cpp: // ----------------------------------------------------- -special.cpp: // compute nspecial[i][1] = # of 1-3 neighbors of atom i -special.cpp: // ----------------------------------------------------- -special.cpp: // nbufmax = largest buffer needed to hold info from any proc -special.cpp: // info for each atom = 2 scalars + list of 1-2 neighbors -special.cpp: // fill buffer with: -special.cpp: // (1) = counter for 1-3 neighbors, initialized to 0 -special.cpp: // (2) = # of 1-2 neighbors -special.cpp: // (3:N) = list of 1-2 neighbors -special.cpp: // cycle buffer around ring of procs back to self -special.cpp: // when receive buffer, scan list of 1-2 neighbors for atoms I own -special.cpp: // when find one, increment 1-3 count by # of 1-2 neighbors of my atom, -special.cpp: // subtracting one since my list will contain original atom -special.cpp: // extract count from buffer that has cycled back to me -special.cpp: // nspecial[i][1] = # of 1-3 neighbors of atom i -special.cpp: // ---------------------------------------------------- -special.cpp: // create onethree[i] = list of 1-3 neighbors for atom i -special.cpp: // ---------------------------------------------------- -special.cpp: // nbufmax = largest buffer needed to hold info from any proc -special.cpp: // info for each atom = 4 scalars + list of 1-2 neighs + list of 1-3 neighs -special.cpp: // fill buffer with: -special.cpp: // (1) = global tag of original atom -special.cpp: // (2) = # of 1-2 neighbors -special.cpp: // (3) = # of 1-3 neighbors -special.cpp: // (4) = counter for 1-3 neighbors, initialized to 0 -special.cpp: // (5:N) = list of 1-2 neighbors -special.cpp: // (N+1:2N) space for list of 1-3 neighbors -special.cpp: // cycle buffer around ring of procs back to self -special.cpp: // when receive buffer, scan list of 1-2 neighbors for atoms I own -special.cpp: // when find one, add its neighbors to 1-3 list -special.cpp: // increment the count in buf(i+4) -special.cpp: // exclude the atom whose tag = original -special.cpp: // this process may include duplicates but they will be culled later -special.cpp: // fill onethree with buffer values that have been returned to me -special.cpp: // sanity check: accumulated buf[i+3] count should equal -special.cpp: // nspecial[i][1] for each atom -special.cpp: // done if special_bond weights for 1-4 are set to 1.0 -special.cpp: // ----------------------------------------------------- -special.cpp: // compute nspecial[i][2] = # of 1-4 neighbors of atom i -special.cpp: // ----------------------------------------------------- -special.cpp: // nbufmax = largest buffer needed to hold info from any proc -special.cpp: // info for each atom = 2 scalars + list of 1-3 neighbors -special.cpp: // fill buffer with: -special.cpp: // (1) = counter for 1-4 neighbors, initialized to 0 -special.cpp: // (2) = # of 1-3 neighbors -special.cpp: // (3:N) = list of 1-3 neighbors -special.cpp: // cycle buffer around ring of procs back to self -special.cpp: // when receive buffer, scan list of 1-3 neighbors for atoms I own -special.cpp: // when find one, increment 1-4 count by # of 1-2 neighbors of my atom -special.cpp: // may include duplicates and original atom but they will be culled later -special.cpp: // extract count from buffer that has cycled back to me -special.cpp: // nspecial[i][2] = # of 1-4 neighbors of atom i -special.cpp: // ---------------------------------------------------- -special.cpp: // create onefour[i] = list of 1-4 neighbors for atom i -special.cpp: // ---------------------------------------------------- -special.cpp: // nbufmax = largest buffer needed to hold info from any proc -special.cpp: // info for each atom = 3 scalars + list of 1-3 neighs + list of 1-4 neighs -special.cpp: // fill buffer with: -special.cpp: // (1) = # of 1-3 neighbors -special.cpp: // (2) = # of 1-4 neighbors -special.cpp: // (3) = counter for 1-4 neighbors, initialized to 0 -special.cpp: // (4:N) = list of 1-3 neighbors -special.cpp: // (N+1:2N) space for list of 1-4 neighbors -special.cpp: // cycle buffer around ring of procs back to self -special.cpp: // when receive buffer, scan list of 1-3 neighbors for atoms I own -special.cpp: // when find one, add its neighbors to 1-4 list -special.cpp: // incrementing the count in buf(i+4) -special.cpp: // this process may include duplicates but they will be culled later -special.cpp: // fill onefour with buffer values that have been returned to me -special.cpp: // sanity check: accumulated buf[i+2] count should equal -special.cpp: // nspecial[i][2] for each atom -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp: // clear map so it can be used as scratch space -special.cpp: // use map to cull duplicates -special.cpp: // exclude original atom explicitly -special.cpp: // adjust onetwo, onethree, onefour values to reflect removed duplicates -special.cpp: // must unset map for each atom -special.cpp: // re-create map -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp: // ---------------------------------------------------- -special.cpp: // compute culled maxspecial = max # of special neighs of any atom -special.cpp: // ---------------------------------------------------- -special.cpp: // clear map so it can be used as scratch space -special.cpp: // unique = # of unique nspecial neighbors of one atom -special.cpp: // cull duplicates using map to check for them -special.cpp: // exclude original atom explicitly -special.cpp: // must unset map for each atom -special.cpp: // compute global maxspecial, must be at least 1 -special.cpp: // add in extra factor from special_bonds command -special.cpp: // allocate correct special array with same nmax, new maxspecial -special.cpp: // previously allocated one must be destroyed -special.cpp: // must make AtomVec class update its ptr to special -special.cpp: // ---------------------------------------------------- -special.cpp: // fill special array with 1-2, 1-3, 1-4 neighs for each atom -special.cpp: // ---------------------------------------------------- -special.cpp: // again use map to cull duplicates -special.cpp: // exclude original atom explicitly -special.cpp: // adjust nspecial[i] values to reflect removed duplicates -special.cpp: // nspecial[i][1] and nspecial[i][2] now become cumulative counters -special.cpp: // re-create map -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp: // stats on old 1-3 neighbor counts -special.cpp: // if angles or dihedrals are defined, -special.cpp: // flag each 1-3 neigh if it appears in an angle or dihedral -special.cpp: // dflag = flag for 1-3 neighs of all owned atoms -special.cpp: // nbufmax = largest buffer needed to hold info from any proc -special.cpp: // info for each atom = list of 1,3 atoms in each angle stored by atom -special.cpp: // and list of 1,3 and 2,4 atoms in each dihedral stored by atom -special.cpp: // fill buffer with list of 1,3 atoms in each angle -special.cpp: // and with list of 1,3 and 2,4 atoms in each dihedral -special.cpp: // cycle buffer around ring of procs back to self -special.cpp: // when receive buffer, scan list of 1,3 atoms looking for atoms I own -special.cpp: // when find one, scan its 1-3 neigh list and mark I,J as in an angle -special.cpp: // delete 1-3 neighbors if they are not flagged in dflag -special.cpp: // clean up -special.cpp: // if no angles or dihedrals are defined, delete all 1-3 neighs -special.cpp: // stats on new 1-3 neighbor counts -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp: // stats on old 1-4 neighbor counts -special.cpp: // if dihedrals are defined, flag each 1-4 neigh if it appears in a dihedral -special.cpp: // dflag = flag for 1-4 neighs of all owned atoms -special.cpp: // nbufmax = largest buffer needed to hold info from any proc -special.cpp: // info for each atom = list of 1,4 atoms in each dihedral stored by atom -special.cpp: // fill buffer with list of 1,4 atoms in each dihedral -special.cpp: // cycle buffer around ring of procs back to self -special.cpp: // when receive buffer, scan list of 1,4 atoms looking for atoms I own -special.cpp: // when find one, scan its 1-4 neigh list and mark I,J as in a dihedral -special.cpp: // delete 1-4 neighbors if they are not flagged in dflag -special.cpp: // clean up -special.cpp: // if no dihedrals are defined, delete all 1-4 neighs -special.cpp: // stats on new 1-4 neighbor counts -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -special.cpp:/* ---------------------------------------------------------------------- -special.cpp:------------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -thermo.cpp: http://lammps.sandia.gov, Sandia National Laboratories -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp:// lmptype.h must be first b/c this file uses MAXBIGINT and includes mpi.h -thermo.cpp:// due to OpenMPI bug which sets INT64_MAX via its mpi.h -thermo.cpp:// before lmptype.h can set flags to insure it is done correctly -thermo.cpp:// customize a new keyword by adding to this list: -thermo.cpp:// step, elapsed, elaplong, dt, time, cpu, tpcpu, spcpu, cpuremain, -thermo.cpp:// part, timeremain -thermo.cpp:// atoms, temp, press, pe, ke, etotal, enthalpy -thermo.cpp:// evdwl, ecoul, epair, ebond, eangle, edihed, eimp, emol, elong, etail -thermo.cpp:// vol, density, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi, xy, xz, yz, -thermo.cpp:// xlat, ylat, zlat -thermo.cpp:// bonds, angles, dihedrals, impropers, -thermo.cpp:// pxx, pyy, pzz, pxy, pxz, pyz -thermo.cpp:// fmax, fnorm, nbuild, ndanger, -thermo.cpp:// cella, cellb, cellc, cellalpha, cellbeta, cellgamma -thermo.cpp:// customize a new thermo style by adding a DEFINE to this list -thermo.cpp:// also insure allocation of line string is correct in constructor -thermo.cpp:enum{IGNORE,WARN,ERROR}; // same as several files -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: // set thermo_modify defaults -thermo.cpp: // set style and corresponding lineflag -thermo.cpp: // custom style builds its own line of keywords, including wildcard expansion -thermo.cpp: // customize a new thermo style by adding to if statement -thermo.cpp: // allocate line string used for 3 tasks -thermo.cpp: // concat of custom style args -thermo.cpp: // one-time thermo output of header line -thermo.cpp: // each line of numeric thermo output -thermo.cpp: // 256 = extra for ONE or MULTI string or multi formatting -thermo.cpp: // 64 = max per-arg chars in header or numeric output -thermo.cpp: // expand args if any have wildcard character "*" -thermo.cpp: // if wildcard expansion occurred, free earg memory from exapnd_args() -thermo.cpp: // ptrs, flags, IDs for compute objects thermo may use or create -thermo.cpp: // count fields in line -thermo.cpp: // allocate per-field memory -thermo.cpp: // process line of keywords -thermo.cpp: // format strings -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: // format strings -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: // set normvalue to default setting unless user has specified it -thermo.cpp: // add Volume field if volume changes and not style = custom -thermo.cpp: // this check must come after domain init, so box_change is set -thermo.cpp: // set format string for each field -thermo.cpp: // include keyword if lineflag = MULTILINE -thermo.cpp: // add '/n' every 3 values if lineflag = MULTILINE -thermo.cpp: // add trailing '/n' to last value -thermo.cpp: // find current ptr for each Compute ID -thermo.cpp: // find current ptr for each Fix ID -thermo.cpp: // check that fix frequency is acceptable with thermo output frequency -thermo.cpp: // find current ptr for each Variable ID -thermo.cpp: // set ptrs to keyword-specific Compute objects -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: // check for lost atoms -thermo.cpp: // turn off normflag if natoms = 0 to avoid divide by 0 -thermo.cpp: // invoke Compute methods needed for thermo keywords -thermo.cpp: // if lineflag = MULTILINE, prepend step/cpu header line -thermo.cpp: // add each thermo value to line with its specific format -thermo.cpp: // print line to screen and logfile -thermo.cpp: // set to 1, so that subsequent invocations of CPU time will be non-zero -thermo.cpp: // e.g. via variables in print command -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp: // ntotal = current # of atoms -thermo.cpp: // if not checking or already warned, just return -thermo.cpp: // error message -thermo.cpp: // warning message -thermo.cpp: // reset total atom count -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp: // reset id_temp of pressure to new temperature ID -thermo.cpp: // either pressure currently being used by thermo or "thermo_press" -thermo.cpp: } else if (strcmp(arg[iarg],"lost/bond") == 0) { -thermo.cpp: // replace "d" in format_int_user with bigint format specifier -thermo.cpp: // use of &str[1] removes leading '%' from BIGINT_FORMAT string -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp: // n = specified fields + Volume field (added at run time) -thermo.cpp: // factor of 3 is max number of computes a single field can add -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp: // customize a new keyword by adding to if statement -thermo.cpp: addfield("T/CPU",&Thermo::compute_tpcpu,FLOAT); -thermo.cpp: addfield("S/CPU",&Thermo::compute_spcpu,FLOAT); -thermo.cpp: // compute value = c_ID, fix value = f_ID, variable value = v_ID -thermo.cpp: // count trailing [] and store int arguments -thermo.cpp: // parse zero or one or two trailing brackets from ID -thermo.cpp: // argindex1,argindex2 = int inside each bracket pair, 0 if no bracket -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp: // turn off normflag if natoms = 0 to avoid divide by 0 -thermo.cpp: // normflag must be set for lo-level thermo routines that may be invoked -thermo.cpp: // invoke a lo-level thermo routine to compute the variable value -thermo.cpp: // if keyword requires a compute, error if thermo doesn't use the compute -thermo.cpp: // if inbetween runs and needed compute is not current, error -thermo.cpp: // if in middle of run and needed compute is not current, invoke it -thermo.cpp: // for keywords that use energy (evdwl, ebond, etc): -thermo.cpp: // check if energy was tallied on this timestep and set pe->invoked_flag -thermo.cpp: // this will trigger next timestep for energy tallying via addstep() -thermo.cpp: // this means keywords that use pe (pe, etotal, enthalpy) -thermo.cpp: // need to always invoke it even if invoked_flag is set, -thermo.cpp: // because evdwl/etc may have set invoked_flag w/out -thermo.cpp: // actually invoking pe->compute_scalar() -thermo.cpp: "thermo to use/init temp"); -thermo.cpp: "thermo to use/init press"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "thermo to use/init temp"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "thermo to use/init temp"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "thermo to use/init temp"); -thermo.cpp: "thermo to use/init press"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "Thermo keyword in variable requires thermo to use/init pe"); -thermo.cpp: "thermo to use/init press"); -thermo.cpp: "thermo to use/init press"); -thermo.cpp: "thermo to use/init press"); -thermo.cpp: "thermo to use/init press"); -thermo.cpp: "thermo to use/init press"); -thermo.cpp: "thermo to use/init press"); -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp: compute/fix are normalized by atoms if returning extensive value -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: // check for out-of-range access if vector/array is variable length -thermo.cpp: if (normflag && compute->extscalar) dvalue /= natoms; -thermo.cpp: else if (compute->extvector == 1) dvalue /= natoms; -thermo.cpp: else if (compute->extlist[argindex1[ifield]-1]) dvalue /= natoms; -thermo.cpp: if (normflag && compute->extarray) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag && fix->extscalar) dvalue /= natoms; -thermo.cpp: else if (fix->extvector == 1) dvalue /= natoms; -thermo.cpp: else if (fix->extlist[argindex1[ifield]-1]) dvalue /= natoms; -thermo.cpp: if (normflag && fix->extarray) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- -thermo.cpp: set ivalue/dvalue/bivalue if value is int/double/bigint -thermo.cpp:------------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (time_diff > 0.0 && cpu_diff > 0.0) dvalue = time_diff/cpu_diff; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (cpu_diff > 0.0) dvalue = step_diff/cpu_diff; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: (update->laststep - update->ntimestep) / -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) ke /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) vtmp /= natoms; -thermo.cpp: dvalue = etmp + ptmp*vtmp/(force->nktv2p); -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: dvalue += force->pair->etail / volume; -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: dvalue += force->pair->etail / volume; -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: dvalue = force->pair->etail / volume; -thermo.cpp: if (normflag) dvalue /= natoms; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: dvalue = force->mv2d * mass/dvalue; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: // Cos(alpha) = (xy.xz + ly.yz)/(b.c) -thermo.cpp: double cosalpha = (h[5]*h[4]+h[1]*h[3])/ -thermo.cpp: dvalue = acos(cosalpha)*180.0/MY_PI; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: // Cos(beta) = xz/c -thermo.cpp: double cosbeta = h[4]/sqrt(h[2]*h[2]+h[3]*h[3]+h[4]*h[4]); -thermo.cpp: dvalue = acos(cosbeta)*180.0/MY_PI; -thermo.cpp:/* ---------------------------------------------------------------------- */ -thermo.cpp: // Cos(gamma) = xy/b -thermo.cpp: double cosgamma = h[5]/sqrt(h[1]*h[1]+h[5]*h[5]); -thermo.cpp: dvalue = acos(cosgamma)*180.0/MY_PI; -timer.cpp:/* ---------------------------------------------------------------------- -timer.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -timer.cpp: http://lammps.sandia.gov, Sandia National Laboratories -timer.cpp:------------------------------------------------------------------------- */ -timer.cpp:#include -timer.cpp:#include -timer.cpp:// convert a timespec ([[HH:]MM:]SS) to seconds -timer.cpp:// the strings "off" and "unlimited" result in -1; -timer.cpp: // first handle allowed textual inputs -timer.cpp:// Return the CPU time for the current process in seconds very -timer.cpp:// much in the same way as MPI_Wtime() returns the wall time. -timer.cpp: // from MSD docs. -timer.cpp:#else /* ! _WIN32 */ -timer.cpp:#endif /* ! _WIN32 */ -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp: // format timeout setting -timer.cpp: // time since init_timeout() -timer.cpp: // remaining timeout in seconds -timer.cpp: // remaining 1/100ths of seconds -timer.cpp: // breaking s down into second/minutes/hours -timer.cpp: s = (s - seconds) / 60; -timer.cpp: const int hours = (s - minutes) / 60; -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp: // broadcast time to insure all ranks act the same. -timer.cpp:/* ---------------------------------------------------------------------- */ -timer.cpp:/* ---------------------------------------------------------------------- -timer.cpp:------------------------------------------------------------------------- */ -timer.cpp: // format timeout setting -universe.cpp:/* ---------------------------------------------------------------------- -universe.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -universe.cpp: http://lammps.sandia.gov, Sandia National Laboratories -universe.cpp:------------------------------------------------------------------------- */ -universe.cpp:/* ---------------------------------------------------------------------- -universe.cpp:------------------------------------------------------------------------- */ -universe.cpp:/* ---------------------------------------------------------------------- */ -universe.cpp:/* ---------------------------------------------------------------------- -universe.cpp:------------------------------------------------------------------------- */ -universe.cpp: if (i < (n-1)*nprocs/n) uni2orig[i] = i/(n-1) * n + (i % (n-1)); -universe.cpp: else uni2orig[i] = (i - (n-1)*nprocs/n) * n + n-1; -universe.cpp: // skip header = blank and comment lines -universe.cpp: // read nprocs lines -universe.cpp: // uni2orig = inverse mapping -universe.cpp: // bcast uni2org from proc 0 to all other universe procs -universe.cpp: // create new uworld communicator -universe.cpp:/* ---------------------------------------------------------------------- -universe.cpp:------------------------------------------------------------------------- */ -universe.cpp: // check for valid partition argument -universe.cpp: // str may not be empty and may only consist of digits or 'x' -universe.cpp: // 'x' may not be the first or last character -universe.cpp: // require minimum of 1 partition with 1 processor -universe.cpp:/* ---------------------------------------------------------------------- -universe.cpp:------------------------------------------------------------------------- */ -universe.cpp:// helper function to convert the LAMMPS date string to a version id -universe.cpp:// that can be used for both string and numerical comparisons -universe.cpp:// where newer versions are larger than older ones. -update.cpp:/* ---------------------------------------------------------------------- -update.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -update.cpp: http://lammps.sandia.gov, Sandia National Laboratories -update.cpp:------------------------------------------------------------------------- */ -update.cpp:/* ---------------------------------------------------------------------- */ -update.cpp:/* ---------------------------------------------------------------------- */ -update.cpp:/* ---------------------------------------------------------------------- */ -update.cpp: // init the appropriate integrate and/or minimize class -update.cpp: // if neither (e.g. from write_restart) then just return -update.cpp: // only set first_update if a run or minimize is being performed -update.cpp:/* ---------------------------------------------------------------------- */ -update.cpp: // physical constants from: -update.cpp: // http://physics.nist.gov/cuu/Constants/Table/allascii.txt -update.cpp: // using thermochemical calorie = 4.184 J -update.cpp: force->e_mass = 0.0; // not yet set -update.cpp: force->ftm2v = 1.0 / 48.88821291 / 48.88821291; -update.cpp: force->mv2d = 1.0 / 0.602214129; -update.cpp: force->e_mass = 1.0/1836.1527556560675; -update.cpp: force->ftm2v = 1.0 / 1.0364269e-4; -update.cpp: force->mv2d = 1.0 / 0.602214129; -update.cpp: force->e_mass = 0.0; // not yet set -update.cpp: force->e_mass = 0.0; // not yet set -update.cpp: force->e_mass = 0.0; // not yet set -update.cpp: force->e_mass = 0.0; // not yet set -update.cpp: force->e_mass = 0.0; // not yet set -update.cpp: force->e_mass = 0.0; // not yet set -update.cpp:/* ---------------------------------------------------------------------- */ -update.cpp: if (sflag == 1) sprintf(estyle,"%s/%s",arg[0],lmp->suffix); -update.cpp: else sprintf(estyle,"%s/%s",arg[0],lmp->suffix2); -update.cpp:/* ---------------------------------------------------------------------- -update.cpp:------------------------------------------------------------------------- */ -update.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix); -update.cpp: sprintf(estyle,"%s/%s",style,lmp->suffix2); -update.cpp:/* ---------------------------------------------------------------------- -update.cpp:------------------------------------------------------------------------- */ -update.cpp:/* ---------------------------------------------------------------------- */ -update.cpp:/* ---------------------------------------------------------------------- -update.cpp:------------------------------------------------------------------------- */ -update.cpp:/* ---------------------------------------------------------------------- -update.cpp:------------------------------------------------------------------------- */ -update.cpp:/* ---------------------------------------------------------------------- -update.cpp:------------------------------------------------------------------------- */ -update.cpp: // set atimestep to new timestep -update.cpp: // so future update_time() calls will be correct -update.cpp: // trigger reset of timestep for output -update.cpp: // do not allow any timestep-dependent fixes to be already defined -update.cpp: // reset eflag/vflag global so no commands will think eng/virial are current -update.cpp: // reset invoked flags of computes, -update.cpp: // so no commands will think they are current between runs -update.cpp: // clear timestep list of computes that store future invocation times -update.cpp: // Neighbor Bin/Stencil/Pair classes store timestamps that need to be cleared -update.cpp: // NOTE: 7Jun12, adding rerun command, don't think this is required -update.cpp: //for (int i = 0; i < domain->nregion; i++) -update.cpp: // if (domain->regions[i]->dynamic_check()) -update.cpp: // error->all(FLERR,"Cannot reset timestep with a dynamic region defined"); -update.cpp:/* ---------------------------------------------------------------------- -update.cpp:------------------------------------------------------------------------- */ -update.cpp:/* ---------------------------------------------------------------------- -update.cpp: memory usage of update and integrate/minimize -update.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -variable.cpp: http://lammps.sandia.gov, Sandia National Laboratories -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:#define VALUELENGTH 64 // also in python.cpp -variable.cpp:// customize by adding a function -variable.cpp:// if add before XOR: -variable.cpp:// also set precedence level in constructor and precedence length in *.h -variable.cpp:// customize by adding a special function -variable.cpp:/* ---------------------------------------------------------------------- */ -variable.cpp: // customize by assigning a precedence level -variable.cpp:/* ---------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // DELETE -variable.cpp: // doesn't matter if variable no longer exists -variable.cpp: // INDEX -variable.cpp: // num = listed args, which = 1st value, data = copied args -variable.cpp: // LOOP -variable.cpp: // 1 arg + pad: num = N, which = 1st value, data = single string -variable.cpp: // 2 args + pad: num = N2, which = N1, data = single string -variable.cpp: // WORLD -variable.cpp: // num = listed args, which = partition this proc is in, data = copied args -variable.cpp: // error check that num = # of worlds in universe -variable.cpp: // UNIVERSE and ULOOP -variable.cpp: // for UNIVERSE: num = listed args, data = copied args -variable.cpp: // for ULOOP: num = N, data = single string -variable.cpp: // which = partition this proc is in -variable.cpp: // universe proc 0 creates lock file -variable.cpp: // error check that all other universe/uloop variables are same length -variable.cpp: error->all(FLERR,"Universe/uloop variable count < # of partitions"); -variable.cpp: "All universe/uloop variables must have same # of values"); -variable.cpp: // STRING -variable.cpp: // replace pre-existing var if also style STRING (allows it to be reset) -variable.cpp: // num = 1, which = 1st value -variable.cpp: // data = 1 value, string to eval -variable.cpp: // GETENV -variable.cpp: // remove pre-existing var if also style GETENV (allows it to be reset) -variable.cpp: // num = 1, which = 1st value -variable.cpp: // data = 1 value, string to eval -variable.cpp: // SCALARFILE for strings or numbers -variable.cpp: // which = 1st value -variable.cpp: // data = 1 value, string to eval -variable.cpp: // ATOMFILE for numbers -variable.cpp: // which = 1st value -variable.cpp: // data = NULL -variable.cpp: // FORMAT -variable.cpp: // num = 3, which = 1st value -variable.cpp: // data = 3 values -variable.cpp: // 1st is name of variable to eval, 2nd is format string, -variable.cpp: // 3rd is filled on retrieval -variable.cpp: // EQUAL -variable.cpp: // replace pre-existing var if also style EQUAL (allows it to be reset) -variable.cpp: // num = 2, which = 1st value -variable.cpp: // data = 2 values, 1st is string to eval, 2nd is filled on retrieval -variable.cpp: // ATOM -variable.cpp: // replace pre-existing var if also style ATOM (allows it to be reset) -variable.cpp: // num = 1, which = 1st value -variable.cpp: // data = 1 value, string to eval -variable.cpp: // VECTOR -variable.cpp: // replace pre-existing var if also style VECTOR (allows it to be reset) -variable.cpp: // num = 1, which = 1st value -variable.cpp: // data = 1 value, string to eval -variable.cpp: // PYTHON -variable.cpp: // replace pre-existing var if also style PYTHON (allows it to be reset) -variable.cpp: // num = 2, which = 1st value -variable.cpp: // data = 2 values, 1st is Python func to invoke, 2nd is filled by invoke -variable.cpp: // INTERNAL -variable.cpp: // replace pre-existing var if also style INTERNAL (allows it to be reset) -variable.cpp: // num = 1, for string representation of dvalue, set by retrieve() -variable.cpp: // dvalue = numeric initialization from 2nd arg, reset by internal_set() -variable.cpp: // set name of variable, if not replacing one flagged with replaceflag -variable.cpp: // name must be all alphanumeric chars or underscores -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // check that variables exist and are all the same style -variable.cpp: // exception: UNIVERSE and ULOOP variables can be mixed in same next command -variable.cpp: // invalid styles: STRING, EQUAL, WORLD, ATOM, VECTOR, GETENV, -variable.cpp: // FORMAT, PYTHON, INTERNAL -variable.cpp: // if istyle = UNIVERSE or ULOOP, insure all such variables are incremented -variable.cpp: // increment all variables in list -variable.cpp: // if any variable is exhausted, set flag = 1 and remove var to allow re-use -variable.cpp: // wait until lock file can be created and owned by proc 0 of this world -variable.cpp: // rename() is not atomic in practice, but no known simple fix -variable.cpp: // means multiple procs can read/write file at the same time (bad!) -variable.cpp: // random delays help -variable.cpp: // delay for random fraction of 1 second before first rename() call -variable.cpp: // delay for random fraction of 1 second before subsequent tries -variable.cpp: // when successful, read next available index and Bcast it within my world -variable.cpp: //printf("READ %d %d\n",universe->me,nextindex); -variable.cpp: //printf("WRITE %d %d\n",universe->me,nextindex+1); -variable.cpp: // set all variables in list to nextindex -variable.cpp: // must increment all UNIVERSE and ULOOP variables here -variable.cpp: // error check above tested for this -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // if Python func returns a string longer than VALUELENGTH -variable.cpp: // then the Python class stores the result, query it via long_string() -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // (re)allocate space for results if necessary -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp: math operation = (),-x,x+y,x-y,x*y,x/y,x^y, -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // whitespace: just skip -variable.cpp: // ---------------- -variable.cpp: // parentheses: recursively evaluate contents of parens -variable.cpp: // ---------------- -variable.cpp: // evaluate contents and push on stack -variable.cpp: // ---------------- -variable.cpp: // number: push value onto stack -variable.cpp: // ---------------- -variable.cpp: // istop = end of number, including scientific notation -variable.cpp: // ---------------- -variable.cpp: // letter: c_ID, c_ID[], c_ID[][], f_ID, f_ID[], f_ID[][], -variable.cpp: // v_name, v_name[], exp(), xcm(,), x, x[], PI, vol -variable.cpp: // ---------------- -variable.cpp: // istop = end of word -variable.cpp: // word = all alphanumeric or underscore -variable.cpp: // ---------------- -variable.cpp: // compute -variable.cpp: // ---------------- -variable.cpp: // uppercase used to force access of -variable.cpp: // global vector vs global scalar, and global array vs global vector -variable.cpp: // parse zero or one or two trailing brackets -variable.cpp: // point i beyond last bracket -variable.cpp: // nbracket = # of bracket pairs -variable.cpp: // index1,index2 = int inside each bracket pair, possibly an atom ID -variable.cpp: // c_ID = scalar from global scalar, must be lowercase -variable.cpp: // c_ID[i] = scalar from global vector, must be lowercase -variable.cpp: // c_ID[i][j] = scalar from global array, must be lowercase -variable.cpp: // c_ID = vector from global vector, lowercase or uppercase -variable.cpp: // c_ID[i] = vector from global array, lowercase or uppercase -variable.cpp: // c_ID[i] = scalar from per-atom vector -variable.cpp: // c_ID[i][j] = scalar from per-atom array -variable.cpp: // c_ID = vector from per-atom vector -variable.cpp: // c_ID[i] = vector from per-atom array -variable.cpp: // ---------------- -variable.cpp: // fix -variable.cpp: // ---------------- -variable.cpp: // uppercase used to force access of -variable.cpp: // global vector vs global scalar, and global array vs global vector -variable.cpp: // parse zero or one or two trailing brackets -variable.cpp: // point i beyond last bracket -variable.cpp: // nbracket = # of bracket pairs -variable.cpp: // index1,index2 = int inside each bracket pair, possibly an atom ID -variable.cpp: // f_ID = scalar from global scalar, must be lowercase -variable.cpp: // f_ID[i] = scalar from global vector, must be lowercase -variable.cpp: // f_ID[i][j] = scalar from global array, must be lowercase -variable.cpp: // f_ID = vector from global vector, lowercase or uppercase -variable.cpp: // f_ID[i] = vector from global array, lowercase or uppercase -variable.cpp: // f_ID[i] = scalar from per-atom vector -variable.cpp: // f_ID[i][j] = scalar from per-atom array -variable.cpp: // f_ID = vector from per-atom vector -variable.cpp: // f_ID[i] = vector from per-atom array -variable.cpp: // ---------------- -variable.cpp: // variable -variable.cpp: // ---------------- -variable.cpp: // parse zero or one trailing brackets -variable.cpp: // point i beyond last bracket -variable.cpp: // nbracket = # of bracket pairs -variable.cpp: // index = int inside bracket, possibly an atom ID -variable.cpp: // v_name = scalar from internal-style variable -variable.cpp: // access value directly -variable.cpp: // v_name = scalar from non atom/atomfile & non vector-style variable -variable.cpp: // access value via retrieve() -variable.cpp: // v_name = per-atom vector from atom-style variable -variable.cpp: // evaluate the atom-style variable as newtree -variable.cpp: // v_name = per-atom vector from atomfile-style variable -variable.cpp: // v_name = vector from vector-style variable -variable.cpp: // evaluate the vector-style variable, put result in newtree -variable.cpp: // v_name[N] = scalar from atom-style variable -variable.cpp: // compute the per-atom variable in result -variable.cpp: // use peratom2global to extract single value from result -variable.cpp: // v_name[N] = scalar from atomfile-style variable -variable.cpp: // v_name[N] = scalar from vector-style variable -variable.cpp: // compute the vector-style variable, extract single value -variable.cpp: int m = index; // convert from tagint to int -variable.cpp: // ---------------- -variable.cpp: // math/group/special function or atom value/vector or -variable.cpp: // constant or thermo keyword -variable.cpp: // ---------------- -variable.cpp: // ---------------- -variable.cpp: // math or group or special function -variable.cpp: // ---------------- -variable.cpp: else error->all(FLERR,"Invalid math/group/special function " -variable.cpp: // ---------------- -variable.cpp: // atom value -variable.cpp: // ---------------- -variable.cpp: // ---------------- -variable.cpp: // atom vector -variable.cpp: // ---------------- -variable.cpp: // ---------------- -variable.cpp: // constant -variable.cpp: // ---------------- -variable.cpp: // ---------------- -variable.cpp: // thermo keyword -variable.cpp: // ---------------- -variable.cpp: // ---------------- -variable.cpp: // math operator, including end-of-string -variable.cpp: // ---------------- -variable.cpp: } else if (strchr("+-*/^<>=!&|%\0",onechar)) { -variable.cpp: else if (onechar == '/') op = DIVIDE; -variable.cpp: // evaluate stack as deep as possible while respecting precedence -variable.cpp: // before pushing current op onto stack -variable.cpp: argstack[nargstack++] = value1 / value2; -variable.cpp: // if end-of-string, break out of entire formula evaluation loop -variable.cpp: // push current operation onto stack -variable.cpp: // for atom-style variable, return remaining tree -variable.cpp: // for equal-style variable, return remaining arg -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:---------------------------------------------------------------------- */ -variable.cpp: tree->value = arg1 / arg2; -variable.cpp: error->one(FLERR,"Log of zero/negative value in variable formula"); -variable.cpp: error->one(FLERR,"Log of zero/negative value in variable formula"); -variable.cpp: // random() or normal() do not become a single collapsed value -variable.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -variable.cpp: int lower = update->ntimestep/ivalue1 * ivalue1; -variable.cpp: int multiple = update->ntimestep/lower; -variable.cpp: double delta = ivalue1*(ivalue3-1.0)/ivalue2; -variable.cpp: tree->value = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; -variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; -variable.cpp: istep = ivalue4 + (offset/ivalue6)*ivalue6 + ivalue6; -variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; -variable.cpp: double omega = 2.0*MY_PI/arg3; -variable.cpp: double omega = 2.0*MY_PI/arg3; -variable.cpp: // mask functions do not become a single collapsed value -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:---------------------------------------------------------------------- */ -variable.cpp: return eval_tree(tree->first,i) / denom; -variable.cpp: error->one(FLERR,"Log of zero/negative value in variable formula"); -variable.cpp: error->one(FLERR,"Log of zero/negative value in variable formula"); -variable.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -variable.cpp: int lower = update->ntimestep/ivalue1 * ivalue1; -variable.cpp: int multiple = update->ntimestep/lower; -variable.cpp: double delta = ivalue1*(ivalue3-1.0)/ivalue2; -variable.cpp: arg = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; -variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; -variable.cpp: istep = ivalue4 + (offset/ivalue6)*ivalue6 + ivalue6; -variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; -variable.cpp: double omega = 2.0*MY_PI/arg3; -variable.cpp: double omega = 2.0*MY_PI/arg3; -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // istop = matching ')' at same level, allowing for nested parens -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // evaluate index as floating point variable or as tagint via ATOTAGINT() -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // word not a match to any math function -variable.cpp: // parse contents for comma-separated args -variable.cpp: // narg = number of args, args = strings between commas -variable.cpp: // individual math functions -variable.cpp: // customize by adding a function -variable.cpp: error->all(FLERR,"Log of zero/negative value in variable formula"); -variable.cpp: error->all(FLERR,"Log of zero/negative value in variable formula"); -variable.cpp: if (delta != 0.0) delta /= update->endstep - update->beginstep; -variable.cpp: int lower = update->ntimestep/ivalue1 * ivalue1; -variable.cpp: int multiple = update->ntimestep/lower; -variable.cpp: double delta = ivalue1*(ivalue3-1.0)/ivalue2; -variable.cpp: value = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; -variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; -variable.cpp: istep = ivalue4 + (offset/ivalue6)*ivalue6 + ivalue6; -variable.cpp: istep = ivalue1 + (offset/ivalue3)*ivalue3 + ivalue3; -variable.cpp: double omega = 2.0*MY_PI/values[0]; -variable.cpp: double omega = 2.0*MY_PI/values[0]; -variable.cpp: // delete stored args -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // word not a match to any group function -variable.cpp: // parse contents for comma-separated args -variable.cpp: // narg = number of args, args = strings between commas -variable.cpp: // group to operate on -variable.cpp: // match word to group function -variable.cpp: // delete stored args -variable.cpp: // save value in tree or on argstack -variable.cpp:/* ---------------------------------------------------------------------- */ -variable.cpp: // init region in case sub-regions have been deleted -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // word not a match to any special function -variable.cpp: // parse contents for comma-separated args -variable.cpp: // narg = number of args, args = strings between commas -variable.cpp: // special functions that operate on global vectors -variable.cpp: // argument is compute -variable.cpp: // argument is fix -variable.cpp: // argument is vector-style variable -variable.cpp: if (nvec > 1) xvalue = (double) i / (nvec-1); -variable.cpp: if (nvec > 1) xvalue = (double) i / (nvec-1); -variable.cpp: if (nvec > 1) xvalue = (double) i / (nvec-1); -variable.cpp: if (method == AVE) value /= nvec; -variable.cpp: if (denominator != 0.0) value = numerator/denominator / nvec; -variable.cpp: // save value in tree or on argstack -variable.cpp: // mask special functions -variable.cpp: // special function for file-style or atomfile-style variables -variable.cpp: // SCALARFILE has single current value, read next one -variable.cpp: // save value in tree or on argstack -variable.cpp: // ATOMFILE has per-atom values, save values in tree -variable.cpp: // copy current per-atom values into result so can read next ones -variable.cpp: // set selfalloc = 1 so result will be deleted by free_tree() after eval -variable.cpp: // save value in tree or on argstack -variable.cpp: // save value in tree or on argstack -variable.cpp: // save value in tree or on argstack -variable.cpp: // delete stored args -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // error check for ID larger than any atom -variable.cpp: // int_between_brackets() already checked for ID <= 0 -variable.cpp: // if ID does not exist, index will be -1 for all procs, -variable.cpp: // and mine will be set to 0.0 -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: int flag; // 0 for numeric value, 1 for string -variable.cpp: double value; // stored numeric value -variable.cpp: char *str; // stored string -variable.cpp: // whitespace: just skip -variable.cpp: // ---------------- -variable.cpp: // parentheses: recursively evaluate contents of parens -variable.cpp: // ---------------- -variable.cpp: // evaluate contents and push on stack -variable.cpp: // ---------------- -variable.cpp: // number: push value onto stack -variable.cpp: // ---------------- -variable.cpp: // set I to end of number, including scientific notation -variable.cpp: // ---------------- -variable.cpp: // string: push string onto stack -variable.cpp: // ---------------- -variable.cpp: // set I to end of string -variable.cpp: // ---------------- -variable.cpp: // Boolean operator, including end-of-string -variable.cpp: // ---------------- -variable.cpp: // evaluate stack as deep as possible while respecting precedence -variable.cpp: // before pushing current op onto stack -variable.cpp: // if end-of-string, break out of entire formula evaluation loop -variable.cpp: // push current operation onto stack -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // if atomfile-style variable, must store per-atom values read from file -variable.cpp: // allocate a new fix STORE, so they persist -variable.cpp: // id = variable-ID + VARIABLE_STORE, fix group = all -variable.cpp:/* ---------------------------------------------------------------------- */ -variable.cpp: // check modify in case all fixes have already been deleted -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // read one string from file -variable.cpp: if (n == 0) break; // end of file -variable.cpp: str[n-1] = '\0'; // strip newline -variable.cpp: if ((ptr = strchr(str,'#'))) *ptr = '\0'; // strip comment -variable.cpp: if (strtok(str," \t\n\r\f") == NULL) continue; // skip if blank -variable.cpp:/* ---------------------------------------------------------------------- -variable.cpp:------------------------------------------------------------------------- */ -variable.cpp: // set all per-atom values to 0.0 -variable.cpp: // values that appear in file will overwrite this -variable.cpp: // read one string from file, convert to Nlines -variable.cpp: if (n == 0) break; // end of file -variable.cpp: str[n-1] = '\0'; // strip newline -variable.cpp: if ((ptr = strchr(str,'#'))) *ptr = '\0'; // strip comment -variable.cpp: if (strtok(str," \t\n\r\f") == NULL) continue; // skip if blank -velocity.cpp:/* ---------------------------------------------------------------------- -velocity.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -velocity.cpp: http://lammps.sandia.gov, Sandia National Laboratories -velocity.cpp:------------------------------------------------------------------------- */ -velocity.cpp:/* ---------------------------------------------------------------------- */ -velocity.cpp:/* ---------------------------------------------------------------------- */ -velocity.cpp: // atom masses must all be set -velocity.cpp: // identify group -velocity.cpp: // identify style -velocity.cpp: // set defaults -velocity.cpp: // read options from end of input line -velocity.cpp: // change defaults as options specify -velocity.cpp: // special cases where full init and border communication must be done first -velocity.cpp: // for ZERO if fix rigid/small is used -velocity.cpp: // for CREATE/SET if compute temp/cs is used -velocity.cpp: // b/c methods invoked in the compute/fix perform forward/reverse comm -velocity.cpp: strcmp(modify->fix[rfix]->style,"rigid/small") == 0) initcomm = 1; -velocity.cpp: strcmp(temperature->style,"temp/cs") == 0) initcomm = 1; -velocity.cpp: // initialize velocities based on style -velocity.cpp: // create() invoked differently, so can be called externally -velocity.cpp:/* ---------------------------------------------------------------------- -velocity.cpp:------------------------------------------------------------------------- */ -velocity.cpp:/* ---------------------------------------------------------------------- */ -velocity.cpp: // if sum_flag set, store a copy of current velocities -velocity.cpp: // if temperature = NULL or bias_flag set, -velocity.cpp: // create a new ComputeTemp with the velocity group -velocity.cpp: // initialize temperature computation(s) -velocity.cpp: // warn if groups don't match -velocity.cpp: // if bias_flag set, remove bias velocity from all atoms -velocity.cpp: // for some temperature computes, must first calculate temp to do that -velocity.cpp: // create new velocities, in uniform or gaussian distribution -velocity.cpp: // loop option determines looping style, ALL is default -velocity.cpp: // ALL = loop over all natoms, only set those I own via atom->map -velocity.cpp: // cannot do this if atom IDs do not span 1-Natoms (some were deleted) -velocity.cpp: // will produce same V, independent of P, if atoms were read-in -velocity.cpp: // will NOT produce same V, independent of P, if used create_atoms -velocity.cpp: // LOCAL = only loop over my atoms, adjust RNG to be proc-specific -velocity.cpp: // will never produce same V, independent of P -velocity.cpp: // GEOM = only loop over my atoms -velocity.cpp: // choose RNG for each atom based on its xyz coord (geometry) -velocity.cpp: // via random->reset() -velocity.cpp: // will always produce same V, independent of P -velocity.cpp: // adjust by factor for atom mass -velocity.cpp: // set xdim,ydim,zdim = 1/0 for whether to create velocity in those dims -velocity.cpp: // zdim = 0 for 2d -velocity.cpp: // any dims can be 0 if bias temperature compute turns them off -velocity.cpp: // currently only temp/partial does -velocity.cpp: // create an atom map if one doesn't exist already -velocity.cpp: // error check -velocity.cpp: // loop over all atoms in system -velocity.cpp: // generate RNGs for all atoms, only assign to ones I own -velocity.cpp: // use either per-type mass or per-atom rmass -velocity.cpp: if (rmass) factor = 1.0/sqrt(rmass[m]); -velocity.cpp: else factor = 1.0/sqrt(mass[type[m]]); -velocity.cpp: // delete temporary atom map -velocity.cpp: if (rmass) factor = 1.0/sqrt(rmass[i]); -velocity.cpp: else factor = 1.0/sqrt(mass[type[i]]); -velocity.cpp: if (rmass) factor = 1.0/sqrt(rmass[i]); -velocity.cpp: else factor = 1.0/sqrt(mass[type[i]]); -velocity.cpp: // apply momentum and rotation zeroing -velocity.cpp: // scale temp to desired value -velocity.cpp: // if bias flag is set, bias velocities have already been removed: -velocity.cpp: // no-bias compute calculates temp only for new thermal velocities -velocity.cpp: // if bias_flag set, restore bias velocity to all atoms -velocity.cpp: // reapply needed for temperature computes where velocity -velocity.cpp: // creation has messed up the bias that was already removed: -velocity.cpp: // compute temp/partial needs to reset v dims to 0.0 -velocity.cpp: // compute temp/cs needs to reset v to COM velocity of each C/S pair -velocity.cpp: // if sum_flag set, add back in previous velocities -velocity.cpp: // free local memory -velocity.cpp: // if temperature compute was created, delete it -velocity.cpp:/* ---------------------------------------------------------------------- */ -velocity.cpp: // parse 3 args -velocity.cpp: // set and apply scale factors -velocity.cpp: // check variables -velocity.cpp: // error check for 2d models -velocity.cpp: // allocate vfield array if necessary -velocity.cpp: // set velocities via constants -velocity.cpp: // set velocities via variables -velocity.cpp: // clean up -velocity.cpp:/* ---------------------------------------------------------------------- -velocity.cpp:------------------------------------------------------------------------- */ -velocity.cpp: // if temperature = NULL, create a new ComputeTemp with the velocity group -velocity.cpp: // initialize temperature computation -velocity.cpp: // warn if groups don't match -velocity.cpp: // scale temp to desired value -velocity.cpp: // if bias flag is set: -velocity.cpp: // temperature calculation will be done accounting for bias -velocity.cpp: // remove/restore bias velocities before/after rescale -velocity.cpp: // if temperature was created, delete it -velocity.cpp:/* ---------------------------------------------------------------------- -velocity.cpp:------------------------------------------------------------------------- */ -velocity.cpp: // set scale factors -velocity.cpp: // parse args -velocity.cpp: // vramp = ramped velocity component for v_dim -velocity.cpp: // add or set based on sum_flag -velocity.cpp: fraction = (x[i][coord_dim] - coord_lo) / (coord_hi - coord_lo); -velocity.cpp:/* ---------------------------------------------------------------------- -velocity.cpp:------------------------------------------------------------------------- */ -velocity.cpp: else if (strcmp(modify->fix[rfix]->style,"rigid/small") == 0) { -velocity.cpp: else if (strcmp(modify->fix[rfix]->style,"rigid/small") == 0) { -velocity.cpp:/* ---------------------------------------------------------------------- -velocity.cpp:------------------------------------------------------------------------- */ -velocity.cpp: double factor = sqrt(t_new/t_old); -velocity.cpp:/* ---------------------------------------------------------------------- -velocity.cpp:------------------------------------------------------------------------- */ -velocity.cpp: // cannot have no atoms in group -velocity.cpp: // compute velocity of center-of-mass of group -velocity.cpp: // adjust velocities by vcm to zero linear momentum -velocity.cpp:/* ---------------------------------------------------------------------- -velocity.cpp:------------------------------------------------------------------------- */ -velocity.cpp: // cannot have no atoms in group -velocity.cpp: // compute omega (angular velocity) of group around center-of-mass -velocity.cpp: // adjust velocities to zero omega -velocity.cpp: // vnew_i = v_i - w x r_i -velocity.cpp: // must use unwrapped coords to compute r_i correctly -velocity.cpp:/* ---------------------------------------------------------------------- -velocity.cpp:------------------------------------------------------------------------- */ -velocity.cpp: // error check -verlet.cpp:/* ---------------------------------------------------------------------- -verlet.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -verlet.cpp: http://lammps.sandia.gov, Sandia National Laboratories -verlet.cpp:------------------------------------------------------------------------- */ -verlet.cpp:/* ---------------------------------------------------------------------- */ -verlet.cpp:/* ---------------------------------------------------------------------- -verlet.cpp:------------------------------------------------------------------------- */ -verlet.cpp: // warn if no fixes -verlet.cpp: // virial_style: -verlet.cpp: // 1 if computed explicitly by pair->compute via sum over pair interactions -verlet.cpp: // 2 if computed implicitly by pair->virial_fdotr_compute via sum over ghosts -verlet.cpp: // setup lists of computes for global and per-atom PE and pressure -verlet.cpp: // detect if fix omp is present for clearing force arrays -verlet.cpp: // set flags for arrays to clear in force_clear() -verlet.cpp: // orthogonal vs triclinic simulation box -verlet.cpp:/* ---------------------------------------------------------------------- -verlet.cpp:------------------------------------------------------------------------- */ -verlet.cpp: error->all(FLERR,"KOKKOS package requires run_style verlet/kk"); -verlet.cpp: // setup domain, communication and neighboring -verlet.cpp: // acquire ghosts -verlet.cpp: // build neighbor lists -verlet.cpp: // compute all forces -verlet.cpp:/* ---------------------------------------------------------------------- -verlet.cpp:------------------------------------------------------------------------- */ -verlet.cpp: // setup domain, communication and neighboring -verlet.cpp: // acquire ghosts -verlet.cpp: // build neighbor lists -verlet.cpp: // compute all forces -verlet.cpp:/* ---------------------------------------------------------------------- -verlet.cpp:------------------------------------------------------------------------- */ -verlet.cpp: // initial time integration -verlet.cpp: // regular communication vs neighbor list rebuild -verlet.cpp: // force computations -verlet.cpp: // important for pair to come before bonded contributions -verlet.cpp: // since some bonded potentials tally pairwise energy/virial -verlet.cpp: // and Pair:ev_tally() needs to be called before any tallying -verlet.cpp: // reverse communication of forces -verlet.cpp: // force modifications, final time integration, diagnostics -verlet.cpp: // all output -verlet.cpp:/* ---------------------------------------------------------------------- */ -verlet.cpp:/* ---------------------------------------------------------------------- -verlet.cpp:------------------------------------------------------------------------- */ -verlet.cpp: // clear force on all particles -verlet.cpp: // if either newton flag is set, also include ghosts -verlet.cpp: // when using threads always clear all forces. -verlet.cpp: //test memset for fm -verlet.cpp: //memset(&atom->fm[0][0],0,3*nbytes); -verlet.cpp: // neighbor includegroup flag is set -verlet.cpp: // clear force only on initial nfirst particles -verlet.cpp: // if either newton flag is set, also include ghosts -write_coeff.cpp:/* ---------------------------------------------------------------------- -write_coeff.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -write_coeff.cpp: http://lammps.sandia.gov, Sandia National Laboratories -write_coeff.cpp:------------------------------------------------------------------------- */ -write_coeff.cpp:/* ---------------------------------------------------------------------- -write_coeff.cpp:------------------------------------------------------------------------- */ -write_coeff.cpp: // initialize relevant styles -write_coeff.cpp: fputs(str,two); // style -write_coeff.cpp: fgets(str,256,one); // coeff -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -write_data.cpp: http://lammps.sandia.gov, Sandia National Laboratories -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp:enum{IGNORE,WARN,ERROR}; // same as thermo.cpp -write_data.cpp:/* ---------------------------------------------------------------------- */ -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp: // if filename contains a "*", replace with current timestep -write_data.cpp: // read optional args -write_data.cpp: // noinit is a hidden arg, only used by -r command-line switch -write_data.cpp: // init entire system since comm->exchange is done -write_data.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc -write_data.cpp: // exception is when called by -r command-line switch -write_data.cpp: // then write_data immediately follows reading of restart file -write_data.cpp: // assume that read_restart initialized necessary values -write_data.cpp: // if don't make exception: -write_data.cpp: // pair->init() can fail due to various unset values: -write_data.cpp: // e.g. pair hybrid coeffs, dpd ghost-atom velocity setting -write_data.cpp: // move atoms to new processors before writing file -write_data.cpp: // do setup_pre_exchange to force update of per-atom info if needed -write_data.cpp: // enforce PBC in case atoms are outside box -write_data.cpp: // call borders() to rebuild atom map since exchange() destroys map -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp: might later let it be directly called within run/minimize loop -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp: // special case where reneighboring is not done in integrator -write_data.cpp: // on timestep data file is written (due to build_once being set) -write_data.cpp: // if box is changing, must be reset, else data file will have -write_data.cpp: // wrong box size and atoms will be lost when data file is read -write_data.cpp: // other calls to pbc and domain and comm are not made, -write_data.cpp: // b/c they only make sense if reneighboring is actually performed -write_data.cpp: //if (neighbor->build_once) domain->reset_box(); -write_data.cpp: // natoms = sum of nlocal = value to write into data file -write_data.cpp: // if unequal and thermo lostflag is "error", don't write data file -write_data.cpp: // sum up bond,angle counts -write_data.cpp: // may be different than atom->nbonds,nangles if broken/turned-off -write_data.cpp: // open data file -write_data.cpp: // proc 0 writes header, ntype-length arrays, force fields -write_data.cpp: // per atom info -write_data.cpp: // do not write molecular topology for atom_style template -write_data.cpp: // extra sections managed by fixes -write_data.cpp: // close data file -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp: // do not write molecular topology info for atom_style template -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp: // communication buffer for all my Atom info -write_data.cpp: // max_size = largest buffer needed by any proc -write_data.cpp: // pack my atom data into buf -write_data.cpp: // write one chunk of atoms per proc to file -write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file -write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 -write_data.cpp: recvrow /= ncol; -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp: // communication buffer for all my Atom info -write_data.cpp: // max_size = largest buffer needed by any proc -write_data.cpp: // pack my velocity data into buf -write_data.cpp: // write one chunk of velocities per proc to file -write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file -write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 -write_data.cpp: recvrow /= ncol; -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp: // communication buffer for all my Bond info -write_data.cpp: // pack my bond data into buf -write_data.cpp: // write one chunk of info per proc to file -write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file -write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 -write_data.cpp: recvrow /= ncol; -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp: // communication buffer for all my Angle info -write_data.cpp: // pack my angle data into buf -write_data.cpp: // write one chunk of info per proc to file -write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file -write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 -write_data.cpp: recvrow /= ncol; -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp: // communication buffer for all my Dihedral info -write_data.cpp: // max_size = largest buffer needed by any proc -write_data.cpp: // pack my dihedral data into buf -write_data.cpp: // write one chunk of info per proc to file -write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file -write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 -write_data.cpp: recvrow /= ncol; -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp: // communication buffer for all my Improper info -write_data.cpp: // max_size = largest buffer needed by any proc -write_data.cpp: // pack my improper data into buf -write_data.cpp: // write one chunk of info per proc to file -write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file -write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 -write_data.cpp: recvrow /= ncol; -write_data.cpp:/* ---------------------------------------------------------------------- -write_data.cpp:------------------------------------------------------------------------- */ -write_data.cpp: // communication buffer for Fix info -write_data.cpp: // pack my fix data into buf -write_data.cpp: // write one chunk of info per proc to file -write_data.cpp: // proc 0 pings each proc, receives its chunk, writes to file -write_data.cpp: // all other procs wait for ping, send their chunk to proc 0 -write_data.cpp: recvrow /= ncol; -write_dump.cpp:/* ---------------------------------------------------------------------- -write_dump.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -write_dump.cpp: http://lammps.sandia.gov, Sandia National Laboratories -write_dump.cpp:------------------------------------------------------------------------- */ -write_dump.cpp:/* ---------------------------------------------------------------------- -write_dump.cpp:------------------------------------------------------------------------- */ -write_dump.cpp:/* ---------------------------------------------------------------------- */ -write_dump.cpp: // modindex = index in args of "modify" keyword -write_dump.cpp: // will be narg if "modify" is not present -write_dump.cpp: // create the Dump instance -write_dump.cpp: // create dump command line with extra required args -write_dump.cpp: dumpargs[0] = (char *) "WRITE_DUMP"; // dump id -write_dump.cpp: dumpargs[1] = arg[0]; // group -write_dump.cpp: dumpargs[2] = arg[1]; // dump style -write_dump.cpp: dumpargs[3] = (char *) "1"; // dump frequency -write_dump.cpp: if (0) return; // dummy line to enable else-if macro expansion -write_dump.cpp: // write out one frame and then delete the dump again -write_dump.cpp: // set multifile_override for DumpImage so that filename needs no "*" -write_dump.cpp: // delete the Dump instance and local storage -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp: LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator -write_restart.cpp: http://lammps.sandia.gov, Sandia National Laboratories -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp:// same as read_restart.cpp -write_restart.cpp:enum{IGNORE,WARN,ERROR}; // same as thermo.cpp -write_restart.cpp:/* ---------------------------------------------------------------------- */ -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp: // if filename contains a "*", replace with current timestep -write_restart.cpp: // check for multiproc output and an MPI-IO filename -write_restart.cpp: // setup output style and process optional args -write_restart.cpp: // also called by Output class for periodic restart files -write_restart.cpp: // init entire system since comm->exchange is done -write_restart.cpp: // comm::init needs neighbor::init needs pair::init needs kspace::init, etc -write_restart.cpp: // move atoms to new processors before writing file -write_restart.cpp: // enforce PBC in case atoms are outside box -write_restart.cpp: // call borders() to rebuild atom map since exchange() destroys map -write_restart.cpp: // NOTE: removed call to setup_pre_exchange -write_restart.cpp: // used to be needed by fixShearHistory for granular -write_restart.cpp: // to move history info from neigh list to atoms between runs -write_restart.cpp: // but now that is done via FIx::post_run() -write_restart.cpp: // don't think any other fix needs this or should do it -write_restart.cpp: // e.g. fix evaporate should not delete more atoms -write_restart.cpp: // modify->setup_pre_exchange(); -write_restart.cpp: // write single restart file -write_restart.cpp:/* ---------------------------------------------------------------------- */ -write_restart.cpp: // error checks -write_restart.cpp: // defaults for multiproc file writing -write_restart.cpp: // optional args -write_restart.cpp: multiproc = nprocs/nper; -write_restart.cpp: fileproc = me/nper * nper; -write_restart.cpp: icluster = fileproc/nper; -write_restart.cpp: icluster = static_cast ((bigint) me * nfile/nprocs); -write_restart.cpp: fileproc = static_cast ((bigint) icluster * nprocs/nfile); -write_restart.cpp: int fcluster = static_cast ((bigint) fileproc * nfile/nprocs); -write_restart.cpp: static_cast ((bigint) (icluster+1) * nprocs/nfile); -write_restart.cpp: fcluster = static_cast ((bigint) fileprocnext * nfile/nprocs); -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp: called from command() and directly from output within run/minimize loop -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp: // special case where reneighboring is not done in integrator -write_restart.cpp: // on timestep restart file is written (due to build_once being set) -write_restart.cpp: // if box is changing, must be reset, else restart file will have -write_restart.cpp: // wrong box size and atoms will be lost when restart file is read -write_restart.cpp: // other calls to pbc and domain and comm are not made, -write_restart.cpp: // b/c they only make sense if reneighboring is actually performed -write_restart.cpp: // natoms = sum of nlocal = value to write into restart file -write_restart.cpp: // if unequal and thermo lostflag is "error", don't write restart file -write_restart.cpp: // open single restart file or base file for multiproc case -write_restart.cpp: // proc 0 writes magic string, endian flag, numeric version -write_restart.cpp: // proc 0 writes header, groups, pertype info, force field info -write_restart.cpp: // all procs write fix info -write_restart.cpp: // communication buffer for my atom info -write_restart.cpp: // max_size = largest buffer needed by any proc -write_restart.cpp: // NOTE: are assuming size_restart() returns 32-bit int -write_restart.cpp: // for a huge one-proc problem, nlocal could be 32-bit -write_restart.cpp: // but nlocal * doubles-peratom could oveflow -write_restart.cpp: // all procs write file layout info which may include per-proc sizes -write_restart.cpp: // header info is complete -write_restart.cpp: // if multiproc output: -write_restart.cpp: // close header file, open multiname file on each writing proc, -write_restart.cpp: // write PROCSPERFILE into new file -write_restart.cpp: // pack my atom data into buf -write_restart.cpp: // if any fix requires it, remap each atom's coords via PBC -write_restart.cpp: // is because fix changes atom coords (excepting an integrate fix) -write_restart.cpp: // just remap in buffer, not actual atoms -write_restart.cpp: // MPI-IO output to single file -write_restart.cpp: // output of one or more native files -write_restart.cpp: // filewriter = 1 = this proc writes to file -write_restart.cpp: // ping each proc in my cluster, receive its data, write data to file -write_restart.cpp: // else wait for ping from fileproc, send my data to fileproc -write_restart.cpp: // clean up -write_restart.cpp: // invoke any fixes that write their own restart file -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp: // added field for shrink-wrap boundaries with minimum - 2 Jul 2015 -write_restart.cpp: // write atom_style and its args -write_restart.cpp: // -1 flag signals end of header -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp: // -1 flag signals end of type arrays -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp: // -1 flag signals end of force field info -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp: // -1 flag signals end of file layout info -write_restart.cpp: // if MPI-IO file, broadcast the end of the header offste -write_restart.cpp: // this allows all ranks to compute offset to their data -write_restart.cpp:// ---------------------------------------------------------------------- -write_restart.cpp:// ---------------------------------------------------------------------- -write_restart.cpp:// low-level fwrite methods -write_restart.cpp:// ---------------------------------------------------------------------- -write_restart.cpp:// ---------------------------------------------------------------------- -write_restart.cpp:/* ---------------------------------------------------------------------- */ -write_restart.cpp:/* ---------------------------------------------------------------------- */ -write_restart.cpp:/* ---------------------------------------------------------------------- */ -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ -write_restart.cpp:/* ---------------------------------------------------------------------- -write_restart.cpp:------------------------------------------------------------------------- */ From b189a328ed3d6de207b4984e3bac6d48c7112bf4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 17:00:23 -0400 Subject: [PATCH 142/675] source code formatting cleanups --- src/SPIN/atom_vec_spin.cpp | 8 +++----- src/atom.cpp | 2 +- src/modify.cpp | 1 - src/set.cpp | 3 ++- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 22cd78036b..d548300179 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -42,7 +42,9 @@ using namespace LAMMPS_NS; AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) { molecular = 0; - mass_type = 1; // check why + mass_type = 1; + forceclearflag = 1; + atom->sp_flag = 1; comm_x_only = 0; comm_f_only = 0; @@ -54,10 +56,6 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) size_data_atom = 9; size_data_vel = 4; xcol_data = 4; - - forceclearflag = 1; - atom->sp_flag = 1; - } diff --git a/src/atom.cpp b/src/atom.cpp index 3a4d2c3b38..a8e0d1556d 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -169,7 +169,7 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) omega_flag = torque_flag = angmom_flag = 0; radius_flag = rmass_flag = 0; ellipsoid_flag = line_flag = tri_flag = body_flag = 0; - + // magnetic flags sp_flag = 0; diff --git a/src/modify.cpp b/src/modify.cpp index 61b9f1d71d..c5a680a3bd 100644 --- a/src/modify.cpp +++ b/src/modify.cpp @@ -1,5 +1,4 @@ /* ---------------------------------------------------------------------- -eoundary p f f LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator http://lammps.sandia.gov, Sandia National Laboratories Steve Plimpton, sjplimp@sandia.gov diff --git a/src/set.cpp b/src/set.cpp index d5221a57a0..0294f93e5d 100644 --- a/src/set.cpp +++ b/src/set.cpp @@ -44,7 +44,8 @@ using namespace MathConst; enum{ATOM_SELECT,MOL_SELECT,TYPE_SELECT,GROUP_SELECT,REGION_SELECT}; enum{TYPE,TYPE_FRACTION,MOLECULE,X,Y,Z,CHARGE,MASS,SHAPE,LENGTH,TRI, - DIPOLE,DIPOLE_RANDOM,SPIN,SPIN_RANDOM,QUAT,QUAT_RANDOM,THETA,THETA_RANDOM,ANGMOM,OMEGA, + DIPOLE,DIPOLE_RANDOM,SPIN,SPIN_RANDOM,QUAT,QUAT_RANDOM, + THETA,THETA_RANDOM,ANGMOM,OMEGA, DIAMETER,DENSITY,VOLUME,IMAGE,BOND,ANGLE,DIHEDRAL,IMPROPER, MESO_E,MESO_CV,MESO_RHO,EDPD_TEMP,EDPD_CV,CC,SMD_MASS_DENSITY, SMD_CONTACT_RADIUS,DPDTHETA,INAME,DNAME}; From 83ae0ad26fa3c48cee8542b31bec275de7d3dc16 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 17:47:59 -0400 Subject: [PATCH 143/675] remove unused code --- src/dump_custom.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 8e798ebd48..af2e34b022 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -41,7 +41,6 @@ enum{ID,MOL,PROC,PROCP1,TYPE,ELEMENT,MASS, IX,IY,IZ, VX,VY,VZ,FX,FY,FZ, Q,MUX,MUY,MUZ,MU,RADIUS,DIAMETER, - MUMAG,SPX,SPY,SPZ,SP, OMEGAX,OMEGAY,OMEGAZ,ANGMOMX,ANGMOMY,ANGMOMZ, TQX,TQY,TQZ, COMPUTE,FIX,VARIABLE,INAME,DNAME}; From da5931d65da2e41df744196d79fd3986dbad7989 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 17:54:04 -0400 Subject: [PATCH 144/675] whitespace cleanup --- src/SPIN/atom_vec_spin.cpp | 40 ++++---- src/SPIN/atom_vec_spin.h | 4 +- src/SPIN/compute_spin.cpp | 42 ++++----- src/SPIN/fix_langevin_spin.cpp | 34 +++---- src/SPIN/fix_langevin_spin.h | 2 +- src/SPIN/fix_nve_spin.cpp | 116 +++++++++++------------ src/SPIN/fix_nve_spin.h | 26 +++--- src/SPIN/fix_precession_spin.cpp | 46 +++++----- src/SPIN/fix_precession_spin.h | 22 ++--- src/SPIN/pair_spin.cpp | 6 +- src/SPIN/pair_spin.h | 2 +- src/SPIN/pair_spin_dmi.cpp | 112 +++++++++++------------ src/SPIN/pair_spin_dmi.h | 6 +- src/SPIN/pair_spin_exchange.cpp | 118 ++++++++++++------------ src/SPIN/pair_spin_exchange.h | 6 +- src/SPIN/pair_spin_magelec.cpp | 148 +++++++++++++++--------------- src/SPIN/pair_spin_magelec.h | 10 +- src/SPIN/pair_spin_neel.cpp | 152 +++++++++++++++---------------- src/SPIN/pair_spin_neel.h | 6 +- src/atom.cpp | 1 + 20 files changed, 450 insertions(+), 449 deletions(-) diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index d548300179..20888290a0 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -16,10 +16,10 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) - + Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ @@ -102,7 +102,7 @@ void AtomVecSpin::grow_reset() { tag = atom->tag; type = atom->type; mask = atom->mask; image = atom->image; - x = atom->x; v = atom->v; f = atom->f; + x = atom->x; v = atom->v; f = atom->f; sp = atom->sp; fm = atom->fm; } @@ -361,7 +361,7 @@ void AtomVecSpin::unpack_reverse(int n, int *list, double *buf) fm[j][0] += buf[m++]; fm[j][1] += buf[m++]; fm[j][2] += buf[m++]; - } + } } /* ---------------------------------------------------------------------- */ @@ -522,7 +522,7 @@ int AtomVecSpin::pack_border_hybrid(int n, int *list, double *buf) buf[m++] = sp[j][2]; buf[m++] = sp[j][3]; } - + return m; } @@ -552,7 +552,7 @@ void AtomVecSpin::unpack_border(int n, int first, double *buf) for (int iextra = 0; iextra < atom->nextra_border; iextra++) m += modify->fix[atom->extra_border[iextra]]-> unpack_border(n,first,&buf[m]); - + } /* ---------------------------------------------------------------------- */ @@ -584,7 +584,7 @@ void AtomVecSpin::unpack_border_vel(int n, int first, double *buf) for (int iextra = 0; iextra < atom->nextra_border; iextra++) m += modify->fix[atom->extra_border[iextra]]-> unpack_border(n,first,&buf[m]); - + } /* ---------------------------------------------------------------------- */ @@ -601,7 +601,7 @@ int AtomVecSpin::unpack_border_hybrid(int n, int first, double *buf) sp[i][2] = buf[m++]; sp[i][3] = buf[m++]; } - + return m; } @@ -667,7 +667,7 @@ int AtomVecSpin::unpack_exchange(double *buf) unpack_exchange(nlocal,&buf[m]); atom->nlocal++; - + return m; } @@ -784,7 +784,7 @@ void AtomVecSpin::create_atom(int itype, double *coord) mask[nlocal] = 1; image[nlocal] = ((imageint) IMGMAX << IMG2BITS) | ((imageint) IMGMAX << IMGBITS) | IMGMAX; - v[nlocal][0] = 0.0; + v[nlocal][0] = 0.0; v[nlocal][1] = 0.0; v[nlocal][2] = 0.0; @@ -843,7 +843,7 @@ void AtomVecSpin::data_atom(double *coord, imageint imagetmp, char **values) int AtomVecSpin::data_atom_hybrid(int nlocal, char **values) { - + sp[nlocal][0] = atof(values[0]); sp[nlocal][1] = atof(values[1]); sp[nlocal][2] = atof(values[2]); @@ -854,7 +854,7 @@ int AtomVecSpin::data_atom_hybrid(int nlocal, char **values) sp[nlocal][1] *= inorm; sp[nlocal][2] *= inorm; sp[nlocal][3] = atof(values[3]); - + return 4; } @@ -878,7 +878,7 @@ void AtomVecSpin::pack_data(double **buf) buf[i][9] = ubuf((image[i] & IMGMASK) - IMGMAX).d; buf[i][10] = ubuf((image[i] >> IMGBITS & IMGMASK) - IMGMAX).d; buf[i][11] = ubuf((image[i] >> IMG2BITS) - IMGMAX).d; - } + } } /* ---------------------------------------------------------------------- @@ -886,7 +886,7 @@ void AtomVecSpin::pack_data(double **buf) ------------------------------------------------------------------------- */ int AtomVecSpin::pack_data_hybrid(int i, double *buf) -{ +{ buf[0] = sp[i][0]; buf[1] = sp[i][1]; buf[2] = sp[i][2]; @@ -899,7 +899,7 @@ int AtomVecSpin::pack_data_hybrid(int i, double *buf) ------------------------------------------------------------------------- */ void AtomVecSpin::write_data(FILE *fp, int n, double **buf) -{ +{ for (int i = 0; i < n; i++) fprintf(fp,TAGINT_FORMAT \ " %d %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e %-1.16e " @@ -908,7 +908,7 @@ void AtomVecSpin::write_data(FILE *fp, int n, double **buf) buf[i][2],buf[i][3],buf[i][4], buf[i][5],buf[i][6],buf[i][7],buf[i][8], (int) ubuf(buf[i][10]).i,(int) ubuf(buf[i][11]).i, - (int) ubuf(buf[i][12]).i); + (int) ubuf(buf[i][12]).i); } /* ---------------------------------------------------------------------- @@ -936,7 +936,7 @@ bigint AtomVecSpin::memory_usage() if (atom->memcheck("x")) bytes += memory->usage(x,nmax,3); if (atom->memcheck("v")) bytes += memory->usage(v,nmax,3); if (atom->memcheck("f")) bytes += memory->usage(f,nmax*comm->nthreads,3); - + if (atom->memcheck("sp")) bytes += memory->usage(sp,nmax,4); if (atom->memcheck("fm")) bytes += memory->usage(fm,nmax*comm->nthreads,3); @@ -945,8 +945,8 @@ bigint AtomVecSpin::memory_usage() void AtomVecSpin::force_clear(int n, size_t nbytes) { - memset(&atom->f[0][0],0,3*nbytes); - memset(&atom->fm[0][0],0,3*nbytes); + memset(&atom->f[0][0],0,3*nbytes); + memset(&atom->fm[0][0],0,3*nbytes); } diff --git a/src/SPIN/atom_vec_spin.h b/src/SPIN/atom_vec_spin.h index 99d4a86189..34bc55b99f 100644 --- a/src/SPIN/atom_vec_spin.h +++ b/src/SPIN/atom_vec_spin.h @@ -55,12 +55,12 @@ class AtomVecSpin : public AtomVec { void pack_data(double **); int pack_data_hybrid(int, double *); void write_data(FILE *, int, double **); - int write_data_hybrid(FILE *, double *); + int write_data_hybrid(FILE *, double *); bigint memory_usage(); // clear magnetic and mechanic forces - void force_clear(int, size_t); + void force_clear(int, size_t); private: diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index ab3bab2487..54818a9b70 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -14,10 +14,10 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) - + Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ @@ -40,7 +40,7 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : +ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg) { if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); @@ -52,7 +52,7 @@ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : init(); allocate(); - + } /* ---------------------------------------------------------------------- */ @@ -79,27 +79,27 @@ void ComputeSpin::compute_vector() double mag[4], magtot[4]; double magenergy, magenergytot; double tempnum, tempnumtot; - double tempdenom, tempdenomtot; + double tempdenom, tempdenomtot; double spintemperature; - + invoked_vector = update->ntimestep; - + countsp = countsptot = 0.0; - mag[0] = mag[1] = mag[2] = mag[3] = 0.0; - magtot[0] = magtot[1] = magtot[2] = magtot[3] = 0.0; - magenergy = magenergytot = 0.0; + mag[0] = mag[1] = mag[2] = mag[3] = 0.0; + magtot[0] = magtot[1] = magtot[2] = magtot[3] = 0.0; + magenergy = magenergytot = 0.0; tempnum = tempnumtot = 0.0; - tempdenom = tempdenomtot = 0.0; - spintemperature = 0.0; + tempdenom = tempdenomtot = 0.0; + spintemperature = 0.0; int *mask = atom->mask; - double **sp = atom->sp; + double **sp = atom->sp; double **fm = atom->fm; double tx,ty,tz; int nlocal = atom->nlocal; - // compute total magnetization and magnetic energy + // compute total magnetization and magnetic energy // compute spin temperature (Nurdin et al., Phys. Rev. E 61, 2000) for (i = 0; i < nlocal; i++) { @@ -108,7 +108,7 @@ void ComputeSpin::compute_vector() mag[0] += sp[i][0]; mag[1] += sp[i][1]; mag[2] += sp[i][2]; - magenergy -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); + magenergy -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; @@ -125,22 +125,22 @@ void ComputeSpin::compute_vector() MPI_Allreduce(&tempnum,&tempnumtot,1,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&tempdenom,&tempdenomtot,1,MPI_DOUBLE,MPI_SUM,world); MPI_Allreduce(&countsp,&countsptot,1,MPI_INT,MPI_SUM,world); - + double scale = 1.0/countsptot; magtot[0] *= scale; magtot[1] *= scale; magtot[2] *= scale; magtot[3] = sqrt((magtot[0]*magtot[0])+(magtot[1]*magtot[1])+(magtot[2]*magtot[2])); - spintemperature = hbar*tempnumtot; + spintemperature = hbar*tempnumtot; spintemperature /= (kb*tempdenomtot); - + vector[0] = magtot[0]; vector[1] = magtot[1]; vector[2] = magtot[2]; vector[3] = magtot[3]; - vector[4] = magenergytot*hbar; + vector[4] = magenergytot*hbar; vector[5] = spintemperature; - + } /* ---------------------------------------------------------------------- diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index d12ec11237..97b33197ce 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -14,10 +14,10 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) - + Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ @@ -85,7 +85,7 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : } // initialize Marsaglia RNG with processor-unique seed - + random = new RanPark(lmp,seed + comm->me); } @@ -116,21 +116,21 @@ int FixLangevinSpin::setmask() void FixLangevinSpin::init() { // fix_langevin_spin has to be the last defined fix - + int flag_force = 0; int flag_lang = 0; - for (int i = 0; i < modify->nfix; i++) { + for (int i = 0; i < modify->nfix; i++) { if (strcmp("precession/spin",modify->fix[i]->style)==0) flag_force = MAX(flag_force,i); if (strcmp("langevin/spin",modify->fix[i]->style)==0) flag_lang = i; } - if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin has to come after all other spin fixes"); + if (flag_force >= flag_lang) error->all(FLERR,"Fix langevin/spin has to come after all other spin fixes"); memory->create(spi,3,"langevin:spi"); memory->create(fmi,3,"langevin:fmi"); gil_factor = 1.0/(1.0+(alpha_t)*(alpha_t)); - dts = update->dt; - + dts = update->dt; + double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) double kb = force->boltz; // eV/K D = (MY_2PI*alpha_t*gil_factor*kb*temp); @@ -168,24 +168,24 @@ void FixLangevinSpin::add_tdamping(double spi[3], double fmi[3]) /* ---------------------------------------------------------------------- */ -void FixLangevinSpin::add_temperature(double fmi[3]) +void FixLangevinSpin::add_temperature(double fmi[3]) { double rx = sigma*(2.0*random->uniform() - 1.0); double ry = sigma*(2.0*random->uniform() - 1.0); double rz = sigma*(2.0*random->uniform() - 1.0); - // adding the random field + // adding the random field - fmi[0] += rx; + fmi[0] += rx; fmi[1] += ry; fmi[2] += rz; - - // adding gilbert's prefactor - fmi[0] *= gil_factor; - fmi[1] *= gil_factor; - fmi[2] *= gil_factor; + // adding gilbert's prefactor + + fmi[0] *= gil_factor; + fmi[1] *= gil_factor; + fmi[2] *= gil_factor; } diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index 0f90a77c14..5358438396 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -43,7 +43,7 @@ class FixLangevinSpin : public Fix { double temp; // spin bath temperature double D,sigma; // bath intensity var. double gil_factor; // gilbert's prefactor - + char *id_temp; class Compute *temperature; diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 699426de9c..d91636af58 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -14,10 +14,10 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) - + Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ @@ -39,7 +39,7 @@ #include "math_extra.h" #include "math_const.h" #include "memory.h" -#include "modify.h" +#include "modify.h" #include "neighbor.h" #include "neigh_list.h" #include "pair.h" @@ -68,15 +68,15 @@ enum{NONE}; /* ---------------------------------------------------------------------- */ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg), + Fix(lmp, narg, arg), pair(NULL), spin_pairs(NULL), - rsec(NULL), stack_head(NULL), stack_foot(NULL), + rsec(NULL), stack_head(NULL), stack_foot(NULL), backward_stacks(NULL), forward_stacks(NULL) { if (lmp->citeme) lmp->citeme->add(cite_fix_nve_spin); - if (narg < 4) error->all(FLERR,"Illegal fix/NVE/spin command"); - + if (narg < 4) error->all(FLERR,"Illegal fix/NVE/spin command"); + time_integrate = 1; sector_flag = NONE; lattice_flag = 1; @@ -90,7 +90,7 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : if (atom->map_style == 0) error->all(FLERR,"Fix NVE/spin requires an atom map, see atom_modify"); - // defining sector_flag + // defining sector_flag int nprocs_tmp = comm->nprocs; if (nprocs_tmp == 1) { @@ -99,10 +99,10 @@ FixNVESpin::FixNVESpin(LAMMPS *lmp, int narg, char **arg) : sector_flag = 1; } else error->all(FLERR,"Illegal fix/NVE/spin command"); - // defining lattice_flag + // defining lattice_flag int iarg = 3; - while (iarg < narg) { + while (iarg < narg) { if (strcmp(arg[iarg],"lattice") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix/NVE/spin command"); if (strcmp(arg[iarg+1],"no") == 0) lattice_flag = 0; @@ -151,7 +151,7 @@ int FixNVESpin::setmask() mask |= INITIAL_INTEGRATE; mask |= PRE_NEIGHBOR; mask |= FINAL_INTEGRATE; - return mask; + return mask; } /* ---------------------------------------------------------------------- */ @@ -182,7 +182,7 @@ void FixNVESpin::init() npairspin ++; } } - } + } // init length of vector of ptrs to Pair/Spin styles @@ -208,7 +208,7 @@ void FixNVESpin::init() if (count != npairspin) error->all(FLERR,"Incorrect number of spin pairs"); - if (npairspin >= 1) pair_spin_flag = 1; + if (npairspin >= 1) pair_spin_flag = 1; // ptrs FixPrecessionSpin classes @@ -216,29 +216,29 @@ void FixNVESpin::init() for (iforce = 0; iforce < modify->nfix; iforce++) { if (strstr(modify->fix[iforce]->style,"precession/spin")) { precession_spin_flag = 1; - lockprecessionspin = (FixPrecessionSpin *) modify->fix[iforce]; + lockprecessionspin = (FixPrecessionSpin *) modify->fix[iforce]; } } // ptrs on the FixLangevinSpin class - + for (iforce = 0; iforce < modify->nfix; iforce++) { if (strstr(modify->fix[iforce]->style,"langevin/spin")) { maglangevin_flag = 1; - locklangevinspin = (FixLangevinSpin *) modify->fix[iforce]; - } + locklangevinspin = (FixLangevinSpin *) modify->fix[iforce]; + } } if (maglangevin_flag) { if (locklangevinspin->tdamp_flag == 1) tdamp_flag = 1; if (locklangevinspin->temp_flag == 1) temp_flag = 1; } - + // setting the sector variables/lists nsectors = 0; memory->create(rsec,3,"NVE/spin:rsec"); - + // perform the sectoring operation if (sector_flag) sectoring(); @@ -264,20 +264,20 @@ void FixNVESpin::initial_integrate(int vflag) double **x = atom->x; double **v = atom->v; double **f = atom->f; - double *rmass = atom->rmass; - double *mass = atom->mass; + double *rmass = atom->rmass; + double *mass = atom->mass; int nlocal = atom->nlocal; - if (igroup == atom->firstgroup) nlocal = atom->nfirst; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; int *type = atom->type; - int *mask = atom->mask; + int *mask = atom->mask; // update half v for all atoms - + if (lattice_flag) { for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (rmass) dtfm = dtf / rmass[i]; - else dtfm = dtf / mass[type[i]]; + else dtfm = dtf / mass[type[i]]; v[i][0] += dtfm * f[i][0]; v[i][1] += dtfm * f[i][1]; v[i][2] += dtfm * f[i][2]; @@ -297,7 +297,7 @@ void FixNVESpin::initial_integrate(int vflag) i = forward_stacks[i]; } } - for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); int i = stack_head[j]; while (i >= 0) { @@ -342,7 +342,7 @@ void FixNVESpin::initial_integrate(int vflag) i = forward_stacks[i]; } } - for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal + for (int j = nsectors-1; j >= 0; j--) { // advance quarter s for nlocal comm->forward_comm(); int i = stack_head[j]; while (i >= 0) { @@ -365,7 +365,7 @@ void FixNVESpin::initial_integrate(int vflag) } -/* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- setup pre_neighbor() ---------------------------------------------------------------------- */ @@ -374,7 +374,7 @@ void FixNVESpin::setup_pre_neighbor() pre_neighbor(); } -/* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- store in two linked lists the advance order of the spins (sectoring) ---------------------------------------------------------------------- */ @@ -414,7 +414,7 @@ void FixNVESpin::pre_neighbor() } -/* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- compute the magnetic torque for the spin ii ---------------------------------------------------------------------- */ @@ -430,7 +430,7 @@ void FixNVESpin::ComputeInteractionsSpin(int i) spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; - + fmi[0] = fmi[1] = fmi[2] = 0.0; // update magnetic pair interactions @@ -440,10 +440,10 @@ void FixNVESpin::ComputeInteractionsSpin(int i) spin_pairs[k]->compute_single_pair(i,fmi); } } - + // update magnetic precession interactions - if (precession_spin_flag) { + if (precession_spin_flag) { lockprecessionspin->compute_single_precession(i,spi,fmi); } @@ -451,11 +451,11 @@ void FixNVESpin::ComputeInteractionsSpin(int i) if (maglangevin_flag) { // mag. langevin if (tdamp_flag) { // transverse damping - locklangevinspin->add_tdamping(spi,fmi); + locklangevinspin->add_tdamping(spi,fmi); } if (temp_flag) { // spin temperature locklangevinspin->add_temperature(fmi); - } + } } // replace the magnetic force fm[i] by its new value fmi @@ -466,7 +466,7 @@ void FixNVESpin::ComputeInteractionsSpin(int i) } -/* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- divide each domain into 8 sectors ---------------------------------------------------------------------- */ @@ -481,9 +481,9 @@ void FixNVESpin::sectoring() subhi[dim]=subhitmp[dim]; } - const double rsx = subhi[0] - sublo[0]; - const double rsy = subhi[1] - sublo[1]; - const double rsz = subhi[2] - sublo[2]; + const double rsx = subhi[0] - sublo[0]; + const double rsy = subhi[1] - sublo[1]; + const double rsz = subhi[2] - sublo[2]; // extract larger cutoff from PairSpin styles @@ -498,10 +498,10 @@ void FixNVESpin::sectoring() if (rv == 0.0) error->all(FLERR,"Illegal sectoring operation"); - double rax = rsx/rv; - double ray = rsy/rv; - double raz = rsz/rv; - + double rax = rsx/rv; + double ray = rsy/rv; + double raz = rsz/rv; + sec[0] = 1; sec[1] = 1; sec[2] = 1; @@ -511,7 +511,7 @@ void FixNVESpin::sectoring() nsectors = sec[0]*sec[1]*sec[2]; - if (sector_flag == 1 && nsectors != 8) + if (sector_flag == 1 && nsectors != 8) error->all(FLERR,"Illegal sectoring operation"); rsec[0] = rsx; @@ -523,7 +523,7 @@ void FixNVESpin::sectoring() } -/* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- define sector for an atom at a position x[i] ---------------------------------------------------------------------- */ @@ -541,12 +541,12 @@ int FixNVESpin::coords2sector(double *x) seci[1] = x[1] > (sublo[1] + rsec[1]); seci[2] = x[2] > (sublo[2] + rsec[2]); - nseci = (seci[0] + 2*seci[1] + 4*seci[2]); + nseci = (seci[0] + 2*seci[1] + 4*seci[2]); return nseci; } -/* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- advance the spin i of a timestep dts ---------------------------------------------------------------------- */ @@ -557,7 +557,7 @@ void FixNVESpin::AdvanceSingleSpin(int i) double **sp = atom->sp; double **fm = atom->fm; double msq,scale,fm2,energy,dts2; - double cp[3],g[3]; + double cp[3],g[3]; cp[0] = cp[1] = cp[2] = 0.0; g[0] = g[1] = g[2] = 0.0; @@ -572,18 +572,18 @@ void FixNVESpin::AdvanceSingleSpin(int i) g[0] = sp[i][0]+cp[0]*dts; g[1] = sp[i][1]+cp[1]*dts; g[2] = sp[i][2]+cp[2]*dts; - + g[0] += (fm[i][0]*energy-0.5*sp[i][0]*fm2)*0.5*dts2; g[1] += (fm[i][1]*energy-0.5*sp[i][1]*fm2)*0.5*dts2; g[2] += (fm[i][2]*energy-0.5*sp[i][2]*fm2)*0.5*dts2; - + g[0] /= (1+0.25*fm2*dts2); g[1] /= (1+0.25*fm2*dts2); g[2] /= (1+0.25*fm2*dts2); - + sp[i][0] = g[0]; sp[i][1] = g[1]; - sp[i][2] = g[2]; + sp[i][2] = g[2]; // renormalization (check if necessary) @@ -618,11 +618,11 @@ void FixNVESpin::final_integrate() double **v = atom->v; double **f = atom->f; double *rmass = atom->rmass; - double *mass = atom->mass; + double *mass = atom->mass; int nlocal = atom->nlocal; - if (igroup == atom->firstgroup) nlocal = atom->nfirst; + if (igroup == atom->firstgroup) nlocal = atom->nfirst; int *type = atom->type; - int *mask = atom->mask; + int *mask = atom->mask; // update half v for all particles @@ -630,10 +630,10 @@ void FixNVESpin::final_integrate() for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (rmass) dtfm = dtf / rmass[i]; - else dtfm = dtf / mass[type[i]]; + else dtfm = dtf / mass[type[i]]; v[i][0] += dtfm * f[i][0]; v[i][1] += dtfm * f[i][1]; - v[i][2] += dtfm * f[i][2]; + v[i][2] += dtfm * f[i][2]; } } } diff --git a/src/SPIN/fix_nve_spin.h b/src/SPIN/fix_nve_spin.h index 70781c6d8c..afc1db14d6 100644 --- a/src/SPIN/fix_nve_spin.h +++ b/src/SPIN/fix_nve_spin.h @@ -36,17 +36,17 @@ friend class PairSpin; virtual void initial_integrate(int); virtual void final_integrate(); - void ComputeInteractionsSpin(int); // compute and advance single spin functions + void ComputeInteractionsSpin(int); // compute and advance single spin functions void AdvanceSingleSpin(int); - void sectoring(); // sectoring operation functions + void sectoring(); // sectoring operation functions int coords2sector(double *); void setup_pre_neighbor(); void pre_neighbor(); int lattice_flag; // lattice_flag = 0 if spins only - // lattice_flag = 1 if spin-lattice calc. + // lattice_flag = 1 if spin-lattice calc. protected: @@ -54,7 +54,7 @@ friend class PairSpin; // sector_flag = 1 if parallel algorithm double dtv, dtf, dts; // velocity, force, and spin timesteps - + int nlocal_max; // max value of nlocal (for lists size) int pair_spin_flag; // magnetic pair flags @@ -63,24 +63,24 @@ friend class PairSpin; int tdamp_flag, temp_flag; // pointers to magnetic fixes - + class FixPrecessionSpin *lockprecessionspin; - class FixLangevinSpin *locklangevinspin; + class FixLangevinSpin *locklangevinspin; // pointers to magnetic pair styles - + int npairs, npairspin; // # of pairs, and # of spin pairs class Pair *pair; class PairSpin **spin_pairs; // vector of spin pairs - + // sectoring variables - + int nsectors; double *rsec; // stacking variables for sectoring algorithm - - int *stack_head; // index of first atom in backward_stacks + + int *stack_head; // index of first atom in backward_stacks int *stack_foot; // index of first atom in forward_stacks int *backward_stacks; // index of next atom in backward stack int *forward_stacks; // index of next atom in forward stack @@ -96,7 +96,7 @@ friend class PairSpin; E: Illegal fix NVE/spin command -Self-explanatory. Check the input script syntax and compare to the +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. @@ -106,7 +106,7 @@ An atom/spin style with this attribute is needed. E: Illegal sectoring operation -The number of processes does not match the size of the system. +The number of processes does not match the size of the system. See the documentation of the sectoring method. */ diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index 412b9d903b..9b33fac551 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -14,10 +14,10 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) - + Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ @@ -50,7 +50,7 @@ enum{CONSTANT,EQUAL}; FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { if (narg < 7) error->all(FLERR,"Illegal precession/spin command"); - + // magnetic interactions coded for cartesian coordinates hbar = force->hplanck/MY_2PI; @@ -61,10 +61,10 @@ FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lm extscalar = 1; respa_level_support = 1; ilevel_respa = 0; - + magstr = NULL; magfieldstyle = CONSTANT; - + H_field = 0.0; nhx = nhy = nhz = 0.0; hx = hy = hz = 0.0; @@ -99,7 +99,7 @@ FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lm time_origin = update->ntimestep; eflag = 0; - emag = 0.0; + emag = 0.0; } /* ---------------------------------------------------------------------- */ @@ -126,8 +126,8 @@ int FixPrecessionSpin::setmask() void FixPrecessionSpin::init() { const double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) - const double mub = 5.78901e-5; // in eV/T - const double gyro = mub/hbar; // in rad.THz/T + const double mub = 5.78901e-5; // in eV/T + const double gyro = mub/hbar; // in rad.THz/T H_field *= gyro; // in rad.THz Ka /= hbar; // in rad.THz @@ -139,19 +139,19 @@ void FixPrecessionSpin::init() if (magstr) { magvar = input->variable->find(magstr); - if (magvar < 0) + if (magvar < 0) error->all(FLERR,"Illegal precession/spin command"); if (!input->variable->equalstyle(magvar)) error->all(FLERR,"Illegal precession/spin command"); } - + varflag = CONSTANT; if (magfieldstyle != CONSTANT) varflag = EQUAL; - + // set magnetic field components if (varflag == CONSTANT) set_magneticprecession(); - + } /* ---------------------------------------------------------------------- */ @@ -179,10 +179,10 @@ void FixPrecessionSpin::post_force(int vflag) set_magneticprecession(); // update mag. field if time-dep. } - double **sp = atom->sp; + double **sp = atom->sp; double **fm = atom->fm; - double spi[3], fmi[3]; - const int nlocal = atom->nlocal; + double spi[3], fmi[3]; + const int nlocal = atom->nlocal; eflag = 0; emag = 0.0; @@ -192,13 +192,13 @@ void FixPrecessionSpin::post_force(int vflag) spi[1] = sp[i][1]; spi[2] = sp[i][2]; fmi[0] = fmi[1] = fmi[2] = 0.0; - + if (zeeman_flag) { // compute Zeeman interaction compute_zeeman(i,fmi); emag -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); emag *= hbar; - } - + } + if (aniso_flag) { // compute magnetic anisotropy compute_anisotropy(spi,fmi); emag -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); @@ -228,7 +228,7 @@ void FixPrecessionSpin::compute_single_precession(int i, double spi[3], double f void FixPrecessionSpin::compute_zeeman(int i, double fmi[3]) { - double **sp = atom->sp; + double **sp = atom->sp; fmi[0] -= sp[i][3]*hx; fmi[1] -= sp[i][3]*hy; fmi[2] -= sp[i][3]*hz; @@ -258,12 +258,12 @@ void FixPrecessionSpin::set_magneticprecession() if (zeeman_flag) { hx = H_field*nhx; hy = H_field*nhy; - hz = H_field*nhz; + hz = H_field*nhz; } if (aniso_flag) { Kax = 2.0*Ka*nax; Kay = 2.0*Ka*nay; - Kaz = 2.0*Ka*naz; + Kaz = 2.0*Ka*naz; } } @@ -274,7 +274,7 @@ void FixPrecessionSpin::set_magneticprecession() double FixPrecessionSpin::compute_scalar() { // only sum across procs one time - + if (eflag == 0) { MPI_Allreduce(&emag,&emag_all,1,MPI_DOUBLE,MPI_SUM,world); eflag = 1; diff --git a/src/SPIN/fix_precession_spin.h b/src/SPIN/fix_precession_spin.h index 9e7bd1a830..53ae4ba124 100644 --- a/src/SPIN/fix_precession_spin.h +++ b/src/SPIN/fix_precession_spin.h @@ -38,13 +38,13 @@ class FixPrecessionSpin : public Fix { double compute_scalar(); int zeeman_flag, aniso_flag; - void compute_single_precession(int, double *, double *); + void compute_single_precession(int, double *, double *); void compute_zeeman(int, double *); void compute_anisotropy(double *, double *); protected: int style; // style of the magnetic precession - + double degree2rad; double hbar; int ilevel_respa; @@ -56,21 +56,21 @@ class FixPrecessionSpin : public Fix { int magfieldstyle; int magvar; char *magstr; - + // zeeman field intensity and direction - double H_field; + double H_field; double nhx, nhy, nhz; double hx, hy, hz; // temp. force variables - + // magnetic anisotropy intensity and direction - - double Ka; + + double Ka; double nax, nay, naz; double Kax, Kay, Kaz; // temp. force variables void set_magneticprecession(); - + }; } @@ -86,7 +86,7 @@ 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. -precession/spin fix command has 7 arguments: -fix ID group precession/spin magnitude (T or eV) style (zeeman or anisotropy) -direction (3 cartesian coordinates) +precession/spin fix command has 7 arguments: +fix ID group precession/spin magnitude (T or eV) style (zeeman or anisotropy) +direction (3 cartesian coordinates) */ diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index e8a4c126da..acb7ffe548 100755 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -14,10 +14,10 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) - + Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index 94f8433108..100eec1732 100755 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -39,7 +39,7 @@ friend class FixNVESpin; virtual void compute_single_pair(int, double *) {} protected: - double hbar; // Planck constant (eV.ps.rad-1) + double hbar; // Planck constant (eV.ps.rad-1) virtual void allocate() {} }; diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 5f735cd1a8..07ae684939 100755 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -14,10 +14,10 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) - + Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ @@ -80,9 +80,9 @@ void PairSpinDmi::settings(int narg, char **arg) if (strcmp(update->unit_style,"metal") != 0) error->all(FLERR,"Spin simulations require metal unit style"); - + cut_spin_dmi_global = force->numeric(FLERR,arg[0]); - + // reset cutoffs that have been explicitly set if (allocated) { @@ -95,7 +95,7 @@ void PairSpinDmi::settings(int narg, char **arg) } } } - + } /* ---------------------------------------------------------------------- @@ -106,28 +106,28 @@ void PairSpinDmi::coeff(int narg, char **arg) { if (!allocated) allocate(); - // check if args correct - + // check if args correct + if (strcmp(arg[2],"dmi") != 0) error->all(FLERR,"Incorrect args in pair_style command"); if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - + int ilo,ihi,jlo,jhi; force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - + const double rij = force->numeric(FLERR,arg[3]); const double dm = (force->numeric(FLERR,arg[4]))/hbar; - double dmx = force->numeric(FLERR,arg[5]); - double dmy = force->numeric(FLERR,arg[6]); - double dmz = force->numeric(FLERR,arg[7]); + double dmx = force->numeric(FLERR,arg[5]); + double dmy = force->numeric(FLERR,arg[6]); + double dmz = force->numeric(FLERR,arg[7]); double inorm = 1.0/(dmx*dmx+dmy*dmy+dmz*dmz); - dmx *= inorm; - dmy *= inorm; - dmz *= inorm; - + dmx *= inorm; + dmy *= inorm; + dmz *= inorm; + int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { @@ -140,8 +140,8 @@ void PairSpinDmi::coeff(int narg, char **arg) count++; } } - if (count == 0) - error->all(FLERR,"Incorrect args in pair_style command"); + if (count == 0) + error->all(FLERR,"Incorrect args in pair_style command"); } @@ -169,7 +169,7 @@ void PairSpinDmi::init_style() } if (ifix == modify->nfix) error->all(FLERR,"pair/spin style requires nve/spin"); - + // get the lattice_flag from nve/spin for (int i = 0; i < modify->nfix; i++) { @@ -187,7 +187,7 @@ void PairSpinDmi::init_style() double PairSpinDmi::init_one(int i, int j) { - + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); return cut_spin_dmi_global; @@ -215,20 +215,20 @@ void PairSpinDmi::compute(int eflag, int vflag) double fi[3], fmi[3]; double local_cut2; double rsq, inorm; - int *ilist,*jlist,*numneigh,**firstneigh; + int *ilist,*jlist,*numneigh,**firstneigh; 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 **fm = atom->fm; double **sp = atom->sp; - int *type = atom->type; - int nlocal = atom->nlocal; + int *type = atom->type; + int nlocal = atom->nlocal; int newton_pair = force->newton_pair; - + inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -240,28 +240,28 @@ void PairSpinDmi::compute(int eflag, int vflag) for (ii = 0; ii < inum; ii++) { i = ilist[ii]; itype = type[i]; - + jlist = firstneigh[i]; - jnum = numneigh[i]; + jnum = numneigh[i]; xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; spi[2] = sp[i][2]; - - + + // loop on neighbors for (jj = 0; jj < jnum; jj++) { - + j = jlist[jj]; j &= NEIGHMASK; jtype = type[j]; - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; evdwl = 0.0; @@ -269,11 +269,11 @@ void PairSpinDmi::compute(int eflag, int vflag) fmi[0] = fmi[1] = fmi[2] = 0.0; rij[0] = rij[1] = rij[2] = 0.0; eij[0] = eij[1] = eij[2] = 0.0; - + rij[0] = x[j][0] - xi[0]; rij[1] = x[j][1] - xi[1]; rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); eij[0] = rij[0]*inorm; eij[1] = rij[1]*inorm; @@ -282,7 +282,7 @@ void PairSpinDmi::compute(int eflag, int vflag) local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; // compute dmi interaction - + if (rsq <= local_cut2) { compute_dmi(i,j,eij,fmi,spj); if (lattice_flag) { @@ -290,16 +290,16 @@ void PairSpinDmi::compute(int eflag, int vflag) } } - f[i][0] += fi[0]; - f[i][1] += fi[1]; + f[i][0] += fi[0]; + f[i][1] += fi[1]; f[i][2] += fi[2]; - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; f[j][2] -= fi[2]; } @@ -311,7 +311,7 @@ void PairSpinDmi::compute(int eflag, int vflag) if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); } - } + } if (vflag_fdotr) virial_fdotr_compute(); @@ -340,11 +340,11 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) i = ilist[ii]; itype = type[i]; - + xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - + jlist = firstneigh[i]; jnum = numneigh[i]; @@ -383,7 +383,7 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) void PairSpinDmi::compute_dmi(int i, int j, double eij[3], double fmi[3], double spj[3]) { - int *type = atom->type; + int *type = atom->type; int itype, jtype; double dmix, dmiy, dmiz; itype = type[i]; @@ -422,15 +422,15 @@ void PairSpinDmi::allocate() for (int i = 1; i <= n; i++) for (int j = i; j <= n; j++) setflag[i][j] = 0; - + memory->create(cut_spin_dmi,n+1,n+1,"pair:cut_spin_dmi"); memory->create(DM,n+1,n+1,"pair:DM"); memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); memory->create(v_dmz,n+1,n+1,"pair:DM_vector_z"); - - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + } @@ -441,7 +441,7 @@ void PairSpinDmi::allocate() void PairSpinDmi::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++) { @@ -490,7 +490,7 @@ void PairSpinDmi::read_restart(FILE *fp) } } - + /* ---------------------------------------------------------------------- proc 0 writes to restart file ------------------------------------------------------------------------- */ @@ -515,5 +515,5 @@ void PairSpinDmi::read_restart_settings(FILE *fp) } MPI_Bcast(&cut_spin_dmi_global,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(&mix_flag,1,MPI_INT,0,world); } diff --git a/src/SPIN/pair_spin_dmi.h b/src/SPIN/pair_spin_dmi.h index cbd234c192..a309f0c8d5 100755 --- a/src/SPIN/pair_spin_dmi.h +++ b/src/SPIN/pair_spin_dmi.h @@ -39,16 +39,16 @@ class PairSpinDmi : public PairSpin { void compute_dmi(int, int, double *, double *, double *); void compute_dmi_mech(double *); - + void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - + double cut_spin_dmi_global; // short range pair cutoff protected: - double **DM; // dmi coeff in eV + double **DM; // dmi coeff in eV double **v_dmx, **v_dmy, **v_dmz; // dmi direction double **cut_spin_dmi; // cutoff distance dmi diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 39c5823d03..7b05d7337e 100755 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -14,10 +14,10 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) - + Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ @@ -64,7 +64,7 @@ PairSpinExchange::~PairSpinExchange() memory->destroy(J1_mag); memory->destroy(J1_mech); memory->destroy(J2); - memory->destroy(J3); + memory->destroy(J3); memory->destroy(cutsq); // to be deleted } } @@ -72,7 +72,7 @@ PairSpinExchange::~PairSpinExchange() /* ---------------------------------------------------------------------- global settings ------------------------------------------------------------------------- */ - + void PairSpinExchange::settings(int narg, char **arg) { if (narg < 1 || narg > 2) @@ -80,9 +80,9 @@ void PairSpinExchange::settings(int narg, char **arg) if (strcmp(update->unit_style,"metal") != 0) error->all(FLERR,"Spin simulations require metal unit style"); - + cut_spin_exchange_global = force->numeric(FLERR,arg[0]); - + // reset cutoffs that have been explicitly set if (allocated) { @@ -93,7 +93,7 @@ void PairSpinExchange::settings(int narg, char **arg) cut_spin_exchange[i][j] = cut_spin_exchange_global; } } - + } /* ---------------------------------------------------------------------- @@ -103,29 +103,29 @@ void PairSpinExchange::settings(int narg, char **arg) void PairSpinExchange::coeff(int narg, char **arg) { if (!allocated) allocate(); - + // check if args correct if (strcmp(arg[2],"exchange") != 0) error->all(FLERR,"Incorrect args in pair_style command"); - if (narg != 7) + if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); int ilo,ihi,jlo,jhi; force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - + // get exchange arguments from input command const double rc = force->numeric(FLERR,arg[3]); const double j1 = force->numeric(FLERR,arg[4]); - const double j2 = force->numeric(FLERR,arg[5]); - const double j3 = force->numeric(FLERR,arg[6]); - + const double j2 = force->numeric(FLERR,arg[5]); + const double j3 = force->numeric(FLERR,arg[6]); + int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_exchange[i][j] = rc; + cut_spin_exchange[i][j] = rc; J1_mag[i][j] = j1/hbar; J1_mech[i][j] = j1; J2[i][j] = j2; @@ -134,12 +134,12 @@ void PairSpinExchange::coeff(int narg, char **arg) count++; } } - if (count == 0) - error->all(FLERR,"Incorrect args in pair_style command"); + if (count == 0) + error->all(FLERR,"Incorrect args in pair_style command"); } /* ---------------------------------------------------------------------- - init specific to this pair style + init specific to this pair style ------------------------------------------------------------------------- */ void PairSpinExchange::init_style() @@ -180,7 +180,7 @@ void PairSpinExchange::init_style() double PairSpinExchange::init_one(int i, int j) { - + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); return cut_spin_exchange_global; @@ -201,14 +201,14 @@ void *PairSpinExchange::extract(const char *str, int &dim) void PairSpinExchange::compute(int eflag, int vflag) { - int i,j,ii,jj,inum,jnum,itype,jtype; + int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; double xi[3], rij[3], eij[3]; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; double rsq, inorm; - int *ilist,*jlist,*numneigh,**firstneigh; + int *ilist,*jlist,*numneigh,**firstneigh; evdwl = ecoul = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); @@ -218,10 +218,10 @@ void PairSpinExchange::compute(int eflag, int vflag) double **f = atom->f; double **fm = atom->fm; double **sp = atom->sp; - int *type = atom->type; - int nlocal = atom->nlocal; + int *type = atom->type; + int nlocal = atom->nlocal; int newton_pair = force->newton_pair; - + inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -233,16 +233,16 @@ void PairSpinExchange::compute(int eflag, int vflag) for (ii = 0; ii < inum; ii++) { i = ilist[ii]; itype = type[i]; - + jlist = firstneigh[i]; - jnum = numneigh[i]; + jnum = numneigh[i]; xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; spi[2] = sp[i][2]; - + // loop on neighbors for (jj = 0; jj < jnum; jj++) { @@ -250,28 +250,28 @@ void PairSpinExchange::compute(int eflag, int vflag) j &= NEIGHMASK; jtype = type[j]; - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; evdwl = 0.0; fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - + rij[0] = x[j][0] - xi[0]; rij[1] = x[j][1] - xi[1]; rij[2] = x[j][2] - xi[2]; rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); - eij[0] = inorm*rij[0]; - eij[1] = inorm*rij[1]; - eij[2] = inorm*rij[2]; + eij[0] = inorm*rij[0]; + eij[1] = inorm*rij[1]; + eij[2] = inorm*rij[2]; local_cut2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; // compute exchange interaction - + if (rsq <= local_cut2) { compute_exchange(i,j,rsq,fmi,spj); if (lattice_flag) { @@ -279,16 +279,16 @@ void PairSpinExchange::compute(int eflag, int vflag) } } - f[i][0] += fi[0]; - f[i][1] += fi[1]; + f[i][0] += fi[0]; + f[i][1] += fi[1]; f[i][2] += fi[2]; - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; f[j][2] -= fi[2]; } @@ -300,17 +300,17 @@ void PairSpinExchange::compute(int eflag, int vflag) if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); } - } + } if (vflag_fdotr) virial_fdotr_compute(); - + } /* ---------------------------------------------------------------------- update the pair interactions fmi acting on the spin ii ------------------------------------------------------------------------- */ -void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) +void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) { int *type = atom->type; @@ -336,7 +336,7 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - + jlist = firstneigh[i]; jnum = numneigh[i]; @@ -370,13 +370,13 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], double spj[3]) { - int *type = atom->type; + int *type = atom->type; int itype, jtype; double Jex, ra; itype = type[i]; jtype = type[j]; - ra = rsq/J3[itype][jtype]/J3[itype][jtype]; + ra = rsq/J3[itype][jtype]/J3[itype][jtype]; Jex = 4.0*J1_mag[itype][jtype]*ra; Jex *= (1.0-J2[itype][jtype]*ra); Jex *= exp(-ra); @@ -392,21 +392,21 @@ void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double rij[3], double fi[3], double spi[3], double spj[3]) { - int *type = atom->type; + int *type = atom->type; int itype, jtype; double Jex, Jex_mech, ra, rr, iJ3; itype = type[i]; jtype = type[j]; - + Jex = J1_mech[itype][jtype]; iJ3 = 1.0/(J3[itype][jtype]*J3[itype][jtype]); - ra = rsq*iJ3; + ra = rsq*iJ3; rr = sqrt(rsq)*iJ3; Jex_mech = 1.0-ra-J2[itype][jtype]*ra*(2.0-ra); Jex_mech *= 8.0*Jex*rr*exp(-ra); - Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); + Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); fi[0] -= Jex_mech*rij[0]; fi[1] -= Jex_mech*rij[1]; @@ -426,13 +426,13 @@ void PairSpinExchange::allocate() for (int i = 1; i <= n; i++) for (int j = i; j <= n; j++) setflag[i][j] = 0; - + memory->create(cut_spin_exchange,n+1,n+1,"pair/spin/exchange:cut_spin_exchange"); memory->create(J1_mag,n+1,n+1,"pair/spin/exchange:J1_mag"); memory->create(J1_mech,n+1,n+1,"pair/spin/exchange:J1_mech"); - memory->create(J2,n+1,n+1,"pair/spin/exchange:J2"); + memory->create(J2,n+1,n+1,"pair/spin/exchange:J2"); memory->create(J3,n+1,n+1,"pair/spin/exchange:J3"); - memory->create(cutsq,n+1,n+1,"pair:cutsq"); + memory->create(cutsq,n+1,n+1,"pair:cutsq"); } @@ -444,7 +444,7 @@ void PairSpinExchange::allocate() void PairSpinExchange::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++) { @@ -494,7 +494,7 @@ void PairSpinExchange::read_restart(FILE *fp) } } - + /* ---------------------------------------------------------------------- proc 0 writes to restart file ------------------------------------------------------------------------- */ @@ -519,6 +519,6 @@ void PairSpinExchange::read_restart_settings(FILE *fp) } MPI_Bcast(&cut_spin_exchange_global,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(&mix_flag,1,MPI_INT,0,world); } diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h index 89b35c1bd8..b524a513eb 100755 --- a/src/SPIN/pair_spin_exchange.h +++ b/src/SPIN/pair_spin_exchange.h @@ -34,12 +34,12 @@ class PairSpinExchange : public PairSpin { double init_one(int, int); void *extract(const char *, int &); - void compute(int, int); + void compute(int, int); void compute_single_pair(int, double *); void compute_exchange(int, int, double, double *, double *); void compute_exchange_mech(int, int, double, double *, double *, double *, double *); - + void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); @@ -49,7 +49,7 @@ class PairSpinExchange : public PairSpin { protected: double **J1_mag; // exchange coeffs in eV - double **J1_mech; // mech exchange coeffs in + double **J1_mech; // mech exchange coeffs in double **J2, **J3; // J1 in eV, J2 adim, J3 in Ang double **cut_spin_exchange; // cutoff distance exchange diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index 7b6fd32333..b8ef9db609 100755 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -14,10 +14,10 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) - + Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ @@ -47,7 +47,7 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ PairSpinMagelec::PairSpinMagelec(LAMMPS *lmp) : PairSpin(lmp), -lockfixnvespin(NULL) +lockfixnvespin(NULL) { single_enable = 0; no_virial_fdotr_compute = 1; @@ -81,9 +81,9 @@ void PairSpinMagelec::settings(int narg, char **arg) if (strcmp(update->unit_style,"metal") != 0) error->all(FLERR,"Spin simulations require metal unit style"); - + cut_spin_magelec_global = force->numeric(FLERR,arg[0]); - + // reset cutoffs that have been explicitly set if (allocated) { @@ -94,7 +94,7 @@ void PairSpinMagelec::settings(int narg, char **arg) cut_spin_magelec[i][j] = cut_spin_magelec_global; } } - + } /* ---------------------------------------------------------------------- @@ -105,27 +105,27 @@ void PairSpinMagelec::coeff(int narg, char **arg) { if (!allocated) allocate(); - // check if args correct - + // check if args correct + if (strcmp(arg[2],"magelec") != 0) error->all(FLERR,"Incorrect args in pair_style command"); if (narg != 8) error->all(FLERR,"Incorrect args in pair_style command"); - + int ilo,ihi,jlo,jhi; force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - + const double rij = force->numeric(FLERR,arg[3]); const double magelec = (force->numeric(FLERR,arg[4])); - double mex = force->numeric(FLERR,arg[5]); - double mey = force->numeric(FLERR,arg[6]); - double mez = force->numeric(FLERR,arg[7]); + double mex = force->numeric(FLERR,arg[5]); + double mey = force->numeric(FLERR,arg[6]); + double mez = force->numeric(FLERR,arg[7]); double inorm = 1.0/(mex*mex+mey*mey+mez*mez); - mex *= inorm; - mey *= inorm; - mez *= inorm; + mex *= inorm; + mey *= inorm; + mez *= inorm; int count = 0; for (int i = ilo; i <= ihi; i++) { @@ -140,7 +140,7 @@ void PairSpinMagelec::coeff(int narg, char **arg) count++; } } - if (count == 0) + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); } @@ -155,7 +155,7 @@ void PairSpinMagelec::init_style() error->all(FLERR,"Pair spin requires atom/spin style"); // need a full neighbor list - + int irequest = neighbor->request(this,instance_me); neighbor->requests[irequest]->half = 0; neighbor->requests[irequest]->full = 1; @@ -169,7 +169,7 @@ void PairSpinMagelec::init_style() } if (ifix == modify->nfix) error->all(FLERR,"pair/spin style requires nve/spin"); - + // get the lattice_flag from nve/spin for (int i = 0; i < modify->nfix; i++) { @@ -187,7 +187,7 @@ void PairSpinMagelec::init_style() double PairSpinMagelec::init_one(int i, int j) { - + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); return cut_spin_magelec_global; @@ -209,27 +209,27 @@ void *PairSpinMagelec::extract(const char *str, int &dim) void PairSpinMagelec::compute(int eflag, int vflag) { - int i,j,ii,jj,inum,jnum,itype,jtype; + int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; double xi[3], rij[3], eij[3]; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; double rsq, inorm; - int *ilist,*jlist,*numneigh,**firstneigh; + int *ilist,*jlist,*numneigh,**firstneigh; 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 **fm = atom->fm; double **sp = atom->sp; - int *type = atom->type; - int nlocal = atom->nlocal; + int *type = atom->type; + int nlocal = atom->nlocal; int newton_pair = force->newton_pair; - + inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -243,14 +243,14 @@ void PairSpinMagelec::compute(int eflag, int vflag) itype = type[i]; jlist = firstneigh[i]; - jnum = numneigh[i]; + jnum = numneigh[i]; xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; spi[2] = sp[i][2]; - + // loop on neighbors for (jj = 0; jj < jnum; jj++) { @@ -258,19 +258,19 @@ void PairSpinMagelec::compute(int eflag, int vflag) j &= NEIGHMASK; jtype = type[j]; - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; evdwl = 0.0; fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - + rij[0] = x[j][0] - xi[0]; rij[1] = x[j][1] - xi[1]; rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); eij[0] = inorm*rij[0]; eij[1] = inorm*rij[1]; @@ -287,19 +287,19 @@ void PairSpinMagelec::compute(int eflag, int vflag) } } - f[i][0] += fi[0]; - f[i][1] += fi[1]; + f[i][0] += fi[0]; + f[i][1] += fi[1]; f[i][2] += fi[2]; - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; f[j][2] -= fi[2]; } - + if (eflag) { evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= hbar; @@ -308,15 +308,15 @@ void PairSpinMagelec::compute(int eflag, int vflag) if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); } - } + } if (vflag_fdotr) virial_fdotr_compute(); - + } /* ---------------------------------------------------------------------- */ -void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) +void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) { int *type = atom->type; double **x = atom->x; @@ -343,7 +343,7 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) xi[2] = x[i][2]; eij[0] = eij[1] = eij[2] = 0.0; - + jlist = firstneigh[i]; jnum = numneigh[i]; @@ -376,36 +376,36 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) /* ---------------------------------------------------------------------- */ -void PairSpinMagelec::compute_magelec(int i, int j, double rsq, double eij[3], double fmi[3], double spj[3]) +void PairSpinMagelec::compute_magelec(int i, int j, double rsq, double eij[3], double fmi[3], double spj[3]) { - int *type = atom->type; + int *type = atom->type; int itype, jtype; itype = type[i]; jtype = type[j]; - - double local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; - + + double local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; + if (rsq <= local_cut2) { double meix,meiy,meiz; double rx, ry, rz; double vx, vy, vz; - + rx = eij[0]; - ry = eij[1]; - rz = eij[2]; - + ry = eij[1]; + rz = eij[2]; + vx = v_mex[itype][jtype]; vy = v_mey[itype][jtype]; vz = v_mez[itype][jtype]; - - meix = vy*rz - vz*ry; - meiy = vz*rx - vx*rz; - meiz = vx*ry - vy*rx; - - meix *= ME[itype][jtype]; - meiy *= ME[itype][jtype]; - meiz *= ME[itype][jtype]; - + + meix = vy*rz - vz*ry; + meiy = vz*rx - vx*rz; + meiz = vx*ry - vy*rx; + + meix *= ME[itype][jtype]; + meiy *= ME[itype][jtype]; + meiz *= ME[itype][jtype]; + fmi[0] += spj[1]*meiz - spj[2]*meiy; fmi[1] += spj[2]*meix - spj[0]*meiz; fmi[2] += spj[0]*meiy - spj[1]*meix; @@ -416,7 +416,7 @@ void PairSpinMagelec::compute_magelec(int i, int j, double rsq, double eij[3], d void PairSpinMagelec::compute_magelec_mech(int i, int j, double fi[3], double spi[3], double spj[3]) { - int *type = atom->type; + int *type = atom->type; int itype, jtype; itype = type[i]; jtype = type[j]; @@ -432,16 +432,16 @@ void PairSpinMagelec::compute_magelec_mech(int i, int j, double fi[3], double sp meiy = spi[2]*spi[0] - spi[0]*spj[2]; meiz = spi[0]*spi[1] - spi[1]*spj[0]; - meix *= ME_mech[itype][jtype]; - meiy *= ME_mech[itype][jtype]; - meiz *= ME_mech[itype][jtype]; + meix *= ME_mech[itype][jtype]; + meiy *= ME_mech[itype][jtype]; + meiz *= ME_mech[itype][jtype]; fi[0] = meiy*vz - meiz*vy; fi[1] = meiz*vx - meix*vz; fi[2] = meix*vy - meiy*vx; } - + /* ---------------------------------------------------------------------- allocate all arrays ------------------------------------------------------------------------- */ @@ -455,14 +455,14 @@ void PairSpinMagelec::allocate() for (int i = 1; i <= n; i++) for (int j = i; j <= n; j++) setflag[i][j] = 0; - + memory->create(cut_spin_magelec,n+1,n+1,"pair/spin/me:cut_spin_magelec"); memory->create(ME,n+1,n+1,"pair/spin/me:ME"); memory->create(ME_mech,n+1,n+1,"pair/spin/me:ME_mech"); memory->create(v_mex,n+1,n+1,"pair/spin/me:ME_vector_x"); memory->create(v_mey,n+1,n+1,"pair/spin/me:ME_vector_y"); memory->create(v_mez,n+1,n+1,"pair/spin/me:ME_vector_z"); - memory->create(cutsq,n+1,n+1,"pair:cutsq"); + memory->create(cutsq,n+1,n+1,"pair:cutsq"); } /* ---------------------------------------------------------------------- @@ -472,7 +472,7 @@ void PairSpinMagelec::allocate() void PairSpinMagelec::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++) { @@ -545,5 +545,5 @@ void PairSpinMagelec::read_restart_settings(FILE *fp) } MPI_Bcast(&cut_spin_magelec_global,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(&mix_flag,1,MPI_INT,0,world); } diff --git a/src/SPIN/pair_spin_magelec.h b/src/SPIN/pair_spin_magelec.h index bc1e3a6296..ce13476271 100755 --- a/src/SPIN/pair_spin_magelec.h +++ b/src/SPIN/pair_spin_magelec.h @@ -37,20 +37,20 @@ class PairSpinMagelec : public PairSpin { void compute(int, int); void compute_single_pair(int, double *); - void compute_magelec(int, int, double, double *, double *, double *); - void compute_magelec_mech(int, int, double *, double *, double *); - + void compute_magelec(int, int, double, double *, double *, double *); + void compute_magelec_mech(int, int, double *, double *, double *); + void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - + double cut_spin_magelec_global; // global me cutoff protected: double **ME, **ME_mech; // magelec coeff in eV double **v_mex, **v_mey, **v_mez; // magelec direction - double **cut_spin_magelec; // magelec cutoff distance + double **cut_spin_magelec; // magelec cutoff distance int lattice_flag; // flag for mech force computation class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 36deab81f1..0160d8a69b 100755 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -14,10 +14,10 @@ /* ------------------------------------------------------------------------ Contributing authors: Julien Tranchida (SNL) Aidan Thompson (SNL) - + Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. arXiv preprint arXiv:1801.10233. ------------------------------------------------------------------------- */ @@ -65,11 +65,11 @@ PairSpinNeel::~PairSpinNeel() memory->destroy(g1); memory->destroy(g1_mech); memory->destroy(g2); - memory->destroy(g3); + memory->destroy(g3); memory->destroy(q1); memory->destroy(q1_mech); memory->destroy(q2); - memory->destroy(q3); + memory->destroy(q3); memory->destroy(cutsq); // to be deleted } } @@ -85,9 +85,9 @@ void PairSpinNeel::settings(int narg, char **arg) if (strcmp(update->unit_style,"metal") != 0) error->all(FLERR,"Spin simulations require metal unit style"); - + cut_spin_neel_global = force->numeric(FLERR,arg[0]); - + // reset cutoffs that have been explicitly set if (allocated) { @@ -100,7 +100,7 @@ void PairSpinNeel::settings(int narg, char **arg) } } } - + } /* ---------------------------------------------------------------------- @@ -110,30 +110,30 @@ void PairSpinNeel::settings(int narg, char **arg) void PairSpinNeel::coeff(int narg, char **arg) { if (!allocated) allocate(); - - // check if args correct + + // check if args correct if (strcmp(arg[2],"neel") != 0) error->all(FLERR,"Incorrect args in pair_style command"); if (narg != 10) error->all(FLERR,"Incorrect args in pair_style command"); - + int ilo,ihi,jlo,jhi; force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - + const double rij = force->numeric(FLERR,arg[3]); const double k1 = force->numeric(FLERR,arg[4]); - const double k2 = force->numeric(FLERR,arg[5]); - const double k3 = force->numeric(FLERR,arg[6]); + const double k2 = force->numeric(FLERR,arg[5]); + const double k3 = force->numeric(FLERR,arg[6]); const double l1 = force->numeric(FLERR,arg[7]); - const double l2 = force->numeric(FLERR,arg[8]); - const double l3 = force->numeric(FLERR,arg[9]); - + const double l2 = force->numeric(FLERR,arg[8]); + const double l3 = force->numeric(FLERR,arg[9]); + int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_spin_neel[i][j] = rij; + cut_spin_neel[i][j] = rij; g1[i][j] = k1/hbar; q1[i][j] = l1/hbar; g1_mech[i][j] = k1; @@ -146,8 +146,8 @@ void PairSpinNeel::coeff(int narg, char **arg) count++; } } - if (count == 0) - error->all(FLERR,"Incorrect args in pair_style command"); + if (count == 0) + error->all(FLERR,"Incorrect args in pair_style command"); } @@ -160,8 +160,8 @@ void PairSpinNeel::init_style() if (!atom->sp_flag) error->all(FLERR,"Pair spin requires atom/spin style"); - // need a full neighbor list - + // need a full neighbor list + int irequest = neighbor->request(this,instance_me); neighbor->requests[irequest]->half = 0; neighbor->requests[irequest]->full = 1; @@ -175,7 +175,7 @@ void PairSpinNeel::init_style() } if (ifix == modify->nfix) error->all(FLERR,"pair/spin style requires nve/spin"); - + // get the lattice_flag from nve/spin for (int i = 0; i < modify->nfix; i++) { @@ -193,7 +193,7 @@ void PairSpinNeel::init_style() double PairSpinNeel::init_one(int i, int j) { - + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); return cut_spin_neel_global; @@ -214,27 +214,27 @@ void *PairSpinNeel::extract(const char *str, int &dim) void PairSpinNeel::compute(int eflag, int vflag) { - int i,j,ii,jj,inum,jnum,itype,jtype; + int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl,ecoul; double xi[3], rij[3], eij[3]; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; double rsq, inorm; - int *ilist,*jlist,*numneigh,**firstneigh; + int *ilist,*jlist,*numneigh,**firstneigh; 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 **fm = atom->fm; double **sp = atom->sp; - int *type = atom->type; - int nlocal = atom->nlocal; + int *type = atom->type; + int nlocal = atom->nlocal; int newton_pair = force->newton_pair; - + inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -248,34 +248,34 @@ void PairSpinNeel::compute(int eflag, int vflag) itype = type[i]; jlist = firstneigh[i]; - jnum = numneigh[i]; + jnum = numneigh[i]; xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; + spi[0] = sp[i][0]; + spi[1] = sp[i][1]; spi[2] = sp[i][2]; - + // loop on neighbors for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; j &= NEIGHMASK; - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; + spj[0] = sp[j][0]; + spj[1] = sp[j][1]; + spj[2] = sp[j][2]; evdwl = 0.0; fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; rij[0] = rij[1] = rij[2] = 0.0; - + rij[0] = x[j][0] - xi[0]; rij[1] = x[j][1] - xi[1]; rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; inorm = 1.0/sqrt(rsq); eij[0] = rij[0]*inorm; eij[1] = rij[1]*inorm; @@ -294,17 +294,17 @@ void PairSpinNeel::compute(int eflag, int vflag) compute_neel_mech(i,j,rsq,eij,fi,spi,spj); } } - - f[i][0] += fi[0]; - f[i][1] += fi[1]; + + f[i][0] += fi[0]; + f[i][1] += fi[1]; f[i][2] += fi[2]; - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; f[j][2] -= fi[2]; } @@ -316,15 +316,15 @@ void PairSpinNeel::compute(int eflag, int vflag) if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); } - } + } if (vflag_fdotr) virial_fdotr_compute(); - + } /* ---------------------------------------------------------------------- */ -void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) +void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) { int *type = atom->type; double **x = atom->x; @@ -349,13 +349,13 @@ void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; - + xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - + eij[0] = eij[1] = eij[2] = 0.0; - + jlist = firstneigh[i]; jnum = numneigh[i]; @@ -391,7 +391,7 @@ void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) void PairSpinNeel::compute_neel(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) { - int *type = atom->type; + int *type = atom->type; int itype, jtype; itype = type[i]; jtype = type[j]; @@ -402,8 +402,8 @@ void PairSpinNeel::compute_neel(int i, int j, double rsq, double eij[3], double double pq2x, pq2y, pq2z; // pseudo-dipolar component - - ra = rsq/g3[itype][jtype]/g3[itype][jtype]; + + ra = rsq/g3[itype][jtype]/g3[itype][jtype]; gij = 4.0*g1[itype][jtype]*ra; gij *= (1.0-g2[itype][jtype]*ra); gij *= exp(-ra); @@ -412,7 +412,7 @@ void PairSpinNeel::compute_neel(int i, int j, double rsq, double eij[3], double double scalar_eij_sj = eij[0]*spj[0] + eij[1]*spj[1] + eij[2]*spj[2]; double scalar_si_sj = spi[0]*spj[0] + spi[1]*spj[1] + spi[2]*spj[2]; - double gij_eij_sj = gij*scalar_eij_sj; + double gij_eij_sj = gij*scalar_eij_sj; double gij_3 = gij/3.0; pdx = gij_eij_sj*eij[0] - gij_3*spj[0]; pdy = gij_eij_sj*eij[1] - gij_3*spj[1]; @@ -460,11 +460,11 @@ void PairSpinNeel::compute_neel(int i, int j, double rsq, double eij[3], double void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], double fi[3], double spi[3], double spj[3]) { - int *type = atom->type; + int *type = atom->type; int itype, jtype; itype = type[i]; jtype = type[j]; - + double g_mech, gij, dgij; double q_mech, q1ij, dq1ij; double q2ij, dq2ij; @@ -480,11 +480,11 @@ void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], do double scalar_eij_sj = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; // pseudo-dipolar component - - g_mech = g1_mech[itype][jtype]; + + g_mech = g1_mech[itype][jtype]; ig3 = 1.0/(g3[itype][jtype]*g3[itype][jtype]); - ra = rsq*ig3; + ra = rsq*ig3; rr = drij*ig3; gij = 4.0*g_mech*ra; @@ -503,18 +503,18 @@ void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], do pdz = -(pdt1*eij[2] + pdt2*spi[2] + pdt3*spj[2]); // pseudo-quadrupolar component - - q_mech = q1_mech[itype][jtype]; + + q_mech = q1_mech[itype][jtype]; iq3 = 1.0/(q3[itype][jtype]*q3[itype][jtype]); - ra = rsq*iq3; + ra = rsq*iq3; rr = drij*iq3; q1ij = 4.0*q_mech*ra; q1ij *= (1.0-q2[itype][jtype]*ra); q1ij *= exp(-ra); q2ij = -2.0*q1ij/9.0; - + dq1ij = 1.0-ra-q2[itype][jtype]*ra*(2.0-ra); dq1ij *= 8.0*q_mech*rr*exp(-ra); dq2ij = -2.0*dq1ij/9.0; @@ -525,13 +525,13 @@ void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], do double pqt2 = scalar_eij_sj_2 - scalar_si_sj/3.0; pq1x = dq1ij * pqt1 * pqt2 * eij[0]; pq1y = dq1ij * pqt1 * pqt2 * eij[1]; - pq1z = dq1ij * pqt1 * pqt2 * eij[2]; + pq1z = dq1ij * pqt1 * pqt2 * eij[2]; double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; double scalar_si_sj_2 = scalar_si_sj*scalar_si_sj; -/* double pqt3 = 2.0*scalar_eij_si*scalar_eij_sj_3/drij; - double pqt4 = 2.0*scalar_eij_sj*scalar_eij_si_3/drij; +/* double pqt3 = 2.0*scalar_eij_si*scalar_eij_sj_3/drij; + double pqt4 = 2.0*scalar_eij_sj*scalar_eij_si_3/drij; double pqt5 = -2.0*scalar_si_sj*scalar_eij_si/(3.0*drij); double pqt6 = -2.0*scalar_si_sj*scalar_eij_sj/(3.0*drij); // pq1x += q1ij*(spi[0]*(pqt3+pqt6) + spj[0]*(pqt4+)); @@ -600,21 +600,21 @@ void PairSpinNeel::allocate() for (int i = 1; i <= n; i++) for (int j = i; j <= n; j++) setflag[i][j] = 0; - + memory->create(cut_spin_neel,n+1,n+1,"pair/spin/soc/neel:cut_spin_neel"); memory->create(g1,n+1,n+1,"pair/spin/soc/neel:g1"); memory->create(g1_mech,n+1,n+1,"pair/spin/soc/neel:g1_mech"); - memory->create(g2,n+1,n+1,"pair/spin/soc/neel:g2"); + memory->create(g2,n+1,n+1,"pair/spin/soc/neel:g2"); memory->create(g3,n+1,n+1,"pair/spin/soc/neel:g3"); memory->create(q1,n+1,n+1,"pair/spin/soc/neel:q1"); memory->create(q1_mech,n+1,n+1,"pair/spin/soc/neel:q1_mech"); - memory->create(q2,n+1,n+1,"pair/spin/soc/neel:q2"); + memory->create(q2,n+1,n+1,"pair/spin/soc/neel:q2"); memory->create(q3,n+1,n+1,"pair/spin/soc/neel:q3"); - - memory->create(cutsq,n+1,n+1,"pair/spin/soc/neel:cutsq"); - + + memory->create(cutsq,n+1,n+1,"pair/spin/soc/neel:cutsq"); + } @@ -625,7 +625,7 @@ void PairSpinNeel::allocate() void PairSpinNeel::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++) { @@ -710,5 +710,5 @@ void PairSpinNeel::read_restart_settings(FILE *fp) } MPI_Bcast(&cut_spin_neel_global,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(&mix_flag,1,MPI_INT,0,world); } diff --git a/src/SPIN/pair_spin_neel.h b/src/SPIN/pair_spin_neel.h index e1973d35b6..934d4a93ad 100755 --- a/src/SPIN/pair_spin_neel.h +++ b/src/SPIN/pair_spin_neel.h @@ -34,12 +34,12 @@ class PairSpinNeel : public PairSpin { double init_one(int, int); void *extract(const char *, int &); - void compute(int, int); + void compute(int, int); void compute_single_pair(int, double *); void compute_neel(int, int, double, double *, double *, double *, double *); void compute_neel_mech(int, int, double, double *, double *, double *, double *); - + void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); @@ -50,7 +50,7 @@ class PairSpinNeel : public PairSpin { protected: // pseudo-dipolar and pseudo-quadrupolar coeff. - + double **g1, **g1_mech; // exchange coeffs gij double **g2, **g3; // g1 in eV, g2 adim, g3 in Ang double **q1, **q1_mech; // exchange coeffs qij diff --git a/src/atom.cpp b/src/atom.cpp index a8e0d1556d..cf4d20a71e 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -507,6 +507,7 @@ AtomVec *Atom::new_avec(const char *style, int trysuffix, int &sflag) AtomVecCreator avec_creator = (*avec_map)[style]; return avec_creator(lmp); } + error->all(FLERR,"Unknown atom style"); return NULL; } From 7c7a80b31ad692b361fa40ece05442ed13fec06b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 17:59:22 -0400 Subject: [PATCH 145/675] restore deleted file --- doc/utils/txt2html/README.html | 237 +++++++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 doc/utils/txt2html/README.html diff --git a/doc/utils/txt2html/README.html b/doc/utils/txt2html/README.html new file mode 100644 index 0000000000..b92214425e --- /dev/null +++ b/doc/utils/txt2html/README.html @@ -0,0 +1,237 @@ + +

txt2html - a text to HTML conversion tool +

+

txt2html is a simple tool for converting text files into HTML files. +Text files can contain simple formatting and mark-up commands that +txt2html converts into HTML. +

+

txt2html was written by Steve Plimpton. I use it for +documentation and WWW pages. Anna Reese added the table +formatting options. +

+

See the example.txt and example.html +files in the txt2html directory for examples of what all the +formatting commands and mark-up syntax end up looking like in HTML. +

+ + + + + + +
+ +

Syntax: +

+
txt2html file +
read from text file, write HTML to standard output +
txt2html file1 file2 file3 ... +
read each argument as text file, write one HTML file per argument +
+

Input files are first opened with the specified name. If that fails, +a ".txt" suffix is added. Output files are created with an ".html" +suffix, which is either added or replaces the ".txt" suffix. +

+
+ +

Compiling: +

+

The source for txt2html is a single C++ file. Compile it by typing: +

+
g++ -o txt2html txt2html.cpp 
+
+
+ +

How the tool works: +

+

txt2html reads a text file, one paragraph at a time. A paragraph +ends with: +

+
  • a blank line +
  • a line whose final word starts with ":" (a format string) +
  • the end of the file +
+

Any line in the paragraph which ends with "\" is concatenated to the +following line by removing the "\" character and following newline. +This can be useful for some of the formatting commands described below +that operate on individual lines in the paragraph. +

+

If a paragraph starts with a "<" character and ends with a ">" +character, it is treated as raw HTML and is written directly into the +output file. +

+

If a paragraph does not end with a format string, then it is +surrounded with HTML paragraph markers (<P> and </P>), +mark-up is performed, and the paragraph is written to the +output file. +

+

If the paragraph ends with a format string, then formatting +is performed, mark-up is performed, and the paragraph is +written to the output file. +

+
+ +Formatting: + +

A format string is the last word of a paragraph if it starts with a +":" character. A format string contains one or more comma-separated +commands, like ":ulb,l" or ":c,h3". Note that a format string cannot +contain spaces, else it would not be the last word. An individual +command can have 0 or more arguments: +

+
  • b or line() = 0 arguments +
  • image(file) = 1 argument +
  • link(alias,value) = 2 or more comma-separated arguments +
+

Format commands add HTML markers at the beginning or end of the +paragraph and individual lines. Commands are processed in the order +they appear in the format string. Thus if two commands add HTML +markers to the beginning of the paragraph, the 2nd command's marker +will appear 2nd. The reverse is true at the end of the paragraph; the +2nd command's marker will appear 1st. Some comands, like line or +image make most sense if used as stand-alone commands without an +accompanying paragraph. +

+

Commands that format the entire paragraph: +

+
  • p --> surround the paragraph with <P> </P> +
  • b --> put <BR> at the end of the paragraph +
  • pre --> surround the paragraph with <PRE> </PRE> +
  • c --> surround the paragraph with <CENTER> </CENTER> +
  • h1,h2,h3,h4,h5,h6 --> surround the paragraph with <H1> </H1>, etc +
+

Commands that format the lines of the paragraph as a list: +

+
  • ul --> surround the paragraph with <UL> </UL>, put <LI> at start of every line +
  • ol --> surround the paragraph with <OL> </OL>, put <LI> at start of every line +
  • dl --> surround the paragraph with <DL> </DL>, alternate <DT> and <DD> at start of every line +
+

Commands that treat the paragraph as one entry in a list: +

+
  • l --> put <LI> at the beginning of the paragraph +
  • dt --> put <DT> at the beginning of the paragraph +
  • dd --> put <DD> at the beginning of the paragraph +
  • ulb --> put <UL> at the beginning of the paragraph +
  • ule --> put </UL> at the end of the paragraph +
  • olb --> put <OL> at the beginning of the paragraph +
  • ole --> put </OL> at the end of the paragraph +
  • dlb --> put <DL> at the beginning of the paragraph +
  • dle --> put </DL> at the end of the paragraph +
+

Commands applied to each line of the paragraph: +

+
  • all(p) --> surround each line with <P> </P> +
  • all(c) --> surround each line with <CENTER> </CENTER> +
  • all(b) --> append a <BR> to each line +
  • all(l) --> prepend a <LI> to each line +
+

Special commands (all HTML is inserted at beginning of paragraph): +

+
  • line --> insert a horizontal line = <HR> +
  • image(file) --> insert an image = <IMG SRC = "file"> +
  • image(file,link) --> insert an image that when clicked on goes to link +
  • link(name) --> insert a named link that can be referred to elsewhere (see mark-up) = <A NAME = "name"></A> +
  • link(alias,value) --> define a link alias that can be used elsewhere in this file (see mark-up) +
+

Table command: +

+
  • tb(c=3,b=5,w=100%,a=c) --> format the paragraph as a table +
+

Arguments within tb() can appear in any order and are all optional, +since they each have default values. +

+
  • c=N --> Make an N-column table. Treat the paragraph as one + long list of entries (separated by the separator character) and put + them into N columns one after the other. If N = 0, treat each line + of the paragraph as one row of the table with as many columns as + there are maximum entries in any line. Default is c=0. + +
  • s=: --> Use the character string following the equal sign as + the separator between entries. Default separator is a comma "," which + you cannot specify directly since the comma delimits the tb() arguments + +
  • b=N --> Create a border N pixels wide. If N is 0, there is no + border between or outside the cells. If N is 1, there is a minimal + border between and outside all cells. For N > 1, the border between + cells does not change but the outside border gets wider. Default is + b=1. + +
  • w=N or w=N% --> The first form makes each cell of the table at + least N pixels wide. The second form makes the entire table take up + N% of the width of the browser window. Default is w=0 which means + each cell will be just as wide as the text it contains. + +
  • a=X --> Align the entire table at the left, center, or right of the + browser window, for X = "l", "c", or "r". Default is a=c. + +
  • ea=X --> Align the text in each entry at the left, center, or + right of its cell, for X = "l", "c", or "r". Default is browser's + default (typically left). + +
  • eva=X --> Vertically align the text in each entry at the + top, middle, baseline, or bottom of its cell, for X = "t", "m", "ba", + or "bo". Default is browser's default (typically middle). + +
  • cwM=N or cwM=N% --> The first form makes column M be at least + N pixels wide. The second form makes column M take up N% of the + width of the browser window. This setting overrides the "w" + argument for column M. Only one column per table can be tweaked + with this argument. Default is no settings for any column. + +
  • caM=X --> Align the text in each entry of column M at the left, + center, or right of its cell, for X = "l", "c", or "r". This + setting overrides the "ea" argument for column M. Only one column + per table can be tweaked with this argument. Default is no settings + for any column. + +
  • cvaM=X --> Vertically align the text in each entry of column m + at the top, middle, baseline, or bottom of its cell, for X = "t", + "m", "ba", or "bo". This setting overrides the "eva" argument for + column M. Only one column per table can be tweaked with this + argument. Default is no settings for any column. +
+
+ +Mark-up: + +

The text of the paragraph is scanned for special mark-up characters +which are converted into HTML. +

+

Bold and italic characters: +

+
  • "[" (left brace) --> turn-on bold by inserting a <B> +
  • "]" (right brace) --> turn-off bold by inserting a </B> +
  • "{" (left bracket) --> turn-on italics by inserting a <I> +
  • "}" (right bracket) --> turn-off italics by + inserting a </I>
+ +

If a backspace '\' precedes any of the bold/italic mark-up characters, +then mark-up is not performed; the mark-up character is simply left in +the text. +

+

Links are inserted by enclosing a section of text in double quotes, +and appending an underscore to the ending quote, followed by the link. +The link ends when whitespace is found, except that trailing +punctuation characters (comma, period, semi-colon, colon, question +mark, exclamation point, parenthesis) are not considered part of the +link. +

+

A link of the form "text"_link becomes <A HREF = +"link">text</A> in the HTML output. The only exception is if +"link" is defined elsewhere in the file as an alias (see the link +command above). In that case, the value is used instead of the alias +name.

+ +

With these rules, links can take several forms. +

+
  • "This links"_#abc to another part of this file which is +labeled with a :link(abc) command.
    +
  • "This links"_other.html to another file named other.html.
    +
  • "This links"_other.html#abc to another file which has an "abc" +location defined internally.
    +
  • "This links"_http://www.google.com to a WWW site.
    +
  • "This"_M12 could be used in place of any of the above forms. It +requires an alias like :link(M12,http://www.google.com) to be defined +elsewhere in the file.
+ + From 4f8d1893e9e4fddb2bc0de01b76a27acccd8b9b9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 18:01:28 -0400 Subject: [PATCH 146/675] restore fix for formatting cleanup --- doc/src/Section_howto.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt index 6ee2eecda9..9e6e9f8665 100644 --- a/doc/src/Section_howto.txt +++ b/doc/src/Section_howto.txt @@ -2838,7 +2838,6 @@ CS-Info # header of additional section :pre 4 2 5 3 6 3 -The interactions between the 7 4 8 4 (...) :pre From 93d6510d345f3483fab44530f056313593896f40 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 18:02:40 -0400 Subject: [PATCH 147/675] restore deleted file --- doc/src/Eqs/umbrella.jpg | Bin 0 -> 20442 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/src/Eqs/umbrella.jpg diff --git a/doc/src/Eqs/umbrella.jpg b/doc/src/Eqs/umbrella.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5783b54ea34556561221c695f878503a5d755c21 GIT binary patch literal 20442 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 literal 0 HcmV?d00001 From dade67664de3a93a45c71838e96e1576be2130db Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 18:07:26 -0400 Subject: [PATCH 148/675] restore bugfix for refrences --- doc/src/fix_rigid.txt | 6 +++--- doc/src/fix_thermal_conductivity.txt | 4 ++-- doc/src/pair_gran.txt | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/src/fix_rigid.txt b/doc/src/fix_rigid.txt index 63c7f8e9db..ec7ed4f2b1 100644 --- a/doc/src/fix_rigid.txt +++ b/doc/src/fix_rigid.txt @@ -118,8 +118,8 @@ Examples of large rigid bodies are a colloidal particle, or portions of a biomolecule such as a protein. Example of small rigid bodies are patchy nanoparticles, such as those -modeled in "this paper"_#Zhang3 by Sharon Glotzer's group, clumps of -granular particles, lipid molecules consiting of one or more point +modeled in "this paper"_#Zhang1 by Sharon Glotzer's group, clumps of +granular particles, lipid molecules consisting of one or more point dipoles connected to other spheroids or ellipsoids, irregular particles built from line segments (2d) or triangles (3d), and coarse-grain models of nano or colloidal particles consisting of a @@ -856,5 +856,5 @@ Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117. [(Miller)] Miller, Eleftheriou, Pattnaik, Ndirango, and Newns, J Chem Phys, 116, 8649 (2002). -:link(Zhang3) +:link(Zhang1) [(Zhang)] Zhang, Glotzer, Nanoletters, 4, 1407-1413 (2004). diff --git a/doc/src/fix_thermal_conductivity.txt b/doc/src/fix_thermal_conductivity.txt index 17631ac7f5..0353c095b2 100644 --- a/doc/src/fix_thermal_conductivity.txt +++ b/doc/src/fix_thermal_conductivity.txt @@ -136,7 +136,7 @@ kinetic energy of atoms that are in constrained molecules, e.g. via "fix shake"_fix_shake.html or "fix rigid"_fix_rigid.html. This is because application of the constraints will alter the amount of transferred momentum. You should, however, be able to use flexible -molecules. See the "Zhang paper"_#Zhang1 for a discussion and results +molecules. See the "Zhang paper"_#Zhang2 for a discussion and results of this idea. When running a simulation with large, massive particles or molecules @@ -158,6 +158,6 @@ The option defaults are swap = 1. :link(Muller-Plathe1) [(Muller-Plathe)] Muller-Plathe, J Chem Phys, 106, 6082 (1997). -:link(Zhang1) +:link(Zhang2) [(Zhang)] Zhang, Lussetti, de Souza, Muller-Plathe, J Phys Chem B, 109, 15060-15067 (2005). diff --git a/doc/src/pair_gran.txt b/doc/src/pair_gran.txt index 93aab51e5c..d7e87af013 100644 --- a/doc/src/pair_gran.txt +++ b/doc/src/pair_gran.txt @@ -45,7 +45,7 @@ pair_style gran/hooke 200000.0 70000.0 50.0 30.0 0.5 0 :pre The {gran} styles use the following formulas for the frictional force between two granular particles, as described in "(Brilliantov)"_#Brilliantov, "(Silbert)"_#Silbert, and -"(Zhang)"_#Zhang4, when the distance r between two particles of radii +"(Zhang)"_#Zhang3, when the distance r between two particles of radii Ri and Rj is less than their contact distance d = Ri + Rj. There is no force between the particles when r > d. @@ -115,7 +115,7 @@ gamma_t is in units of (1/(time*distance)). Note that in the Hookean case, Kn can be thought of as a linear spring constant with units of force/distance. In the Hertzian case, Kn is like a non-linear spring constant with units of force/area or -pressure, and as shown in the "(Zhang)"_#Zhang4 paper, Kn = 4G / +pressure, and as shown in the "(Zhang)"_#Zhang3 paper, Kn = 4G / (3(1-nu)) where nu = the Poisson ratio, G = shear modulus = E / (2(1+nu)), and E = Young's modulus. Similarly, Kt = 4G / (2-nu). (NOTE: in an earlier version of the manual, we incorrectly stated that @@ -267,5 +267,5 @@ p 5382-5392 (1996). [(Silbert)] Silbert, Ertas, Grest, Halsey, Levine, Plimpton, Phys Rev E, 64, p 051302 (2001). -:link(Zhang4) +:link(Zhang3) [(Zhang)] Zhang and Makse, Phys Rev E, 72, p 011301 (2005). From 605b4dca22bb01b6283db4c0a253c9f69f6ea765 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 18:09:59 -0400 Subject: [PATCH 149/675] fix overlooked merge conflict --- doc/src/pair_meam_spline.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/doc/src/pair_meam_spline.txt b/doc/src/pair_meam_spline.txt index 086854a0eb..6653b397a0 100644 --- a/doc/src/pair_meam_spline.txt +++ b/doc/src/pair_meam_spline.txt @@ -164,9 +164,5 @@ for more info. Kress, Modelling Simulation Materials Science Engineering, 8, 825 (2000). -<<<<<<< HEAD :link(Zhang4) -======= -:link(Zhang2) ->>>>>>> Documentation V1 [(Zhang)] Zhang and Trinkle, Computational Materials Science, 124, 204-210 (2016). From d4861e71d29418e51fb896f9386fe8701f64aa29 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 18:36:30 -0400 Subject: [PATCH 150/675] integrate SPIN package into documentation, fix links and make it consistent --- doc/src/Section_commands.txt | 8 ++++++++ doc/src/computes.txt | 1 + doc/src/fix_langevin_spin.txt | 17 ++++++++-------- doc/src/fixes.txt | 3 +++ doc/src/lammps.book | 8 ++++++++ doc/src/pair_spin_exchange.txt | 20 +++++++++---------- ...pair_spin_me.txt => pair_spin_magelec.txt} | 20 +++++++++---------- doc/src/pairs.txt | 4 ++++ doc/src/tutorials.txt | 1 - src/SPIN/pair_spin.cpp | 0 src/SPIN/pair_spin.h | 0 src/SPIN/pair_spin_dmi.cpp | 0 src/SPIN/pair_spin_dmi.h | 0 src/SPIN/pair_spin_exchange.cpp | 0 src/SPIN/pair_spin_exchange.h | 0 src/SPIN/pair_spin_magelec.cpp | 0 src/SPIN/pair_spin_magelec.h | 0 src/SPIN/pair_spin_neel.cpp | 0 src/SPIN/pair_spin_neel.h | 0 19 files changed, 52 insertions(+), 30 deletions(-) rename doc/src/{pair_spin_me.txt => pair_spin_magelec.txt} (86%) mode change 100755 => 100644 src/SPIN/pair_spin.cpp mode change 100755 => 100644 src/SPIN/pair_spin.h mode change 100755 => 100644 src/SPIN/pair_spin_dmi.cpp mode change 100755 => 100644 src/SPIN/pair_spin_dmi.h mode change 100755 => 100644 src/SPIN/pair_spin_exchange.cpp mode change 100755 => 100644 src/SPIN/pair_spin_exchange.h mode change 100755 => 100644 src/SPIN/pair_spin_magelec.cpp mode change 100755 => 100644 src/SPIN/pair_spin_magelec.h mode change 100755 => 100644 src/SPIN/pair_spin_neel.cpp mode change 100755 => 100644 src/SPIN/pair_spin_neel.h diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index 3dabdbeaa1..ef830951e6 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -583,6 +583,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "indent"_fix_indent.html, "latte"_fix_latte.html, "langevin (k)"_fix_langevin.html, +"langevin/spin"_fix_langevin_spin.hmtl, "lineforce"_fix_lineforce.html, "momentum (k)"_fix_momentum.html, "move"_fix_move.html, @@ -606,6 +607,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "nve/line"_fix_nve_line.html, "nve/noforce"_fix_nve_noforce.html, "nve/sphere (o)"_fix_nve_sphere.html, +"nve/spin"_fix_nve_spin.html, "nve/tri"_fix_nve_tri.html, "nvt (iko)"_fix_nh.html, "nvt/asphere (o)"_fix_nvt_asphere.html, @@ -618,6 +620,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "planeforce"_fix_planeforce.html, "poems"_fix_poems.html, "pour"_fix_pour.html, +"precession/spin"_fix_precession_spin.html, "press/berendsen"_fix_press_berendsen.html, "print"_fix_print.html, "property/atom (k)"_fix_property_atom.html, @@ -824,6 +827,7 @@ KOKKOS, o = USER-OMP, t = OPT. "sna/atom"_compute_sna_atom.html, "snad/atom"_compute_sna_atom.html, "snav/atom"_compute_sna_atom.html, +"spin"_compute_spin.html, "stress/atom"_compute_stress_atom.html, "temp (k)"_compute_temp.html, "temp/asphere"_compute_temp_asphere.html, @@ -1017,6 +1021,10 @@ KOKKOS, o = USER-OMP, t = OPT. "snap (k)"_pair_snap.html, "soft (go)"_pair_soft.html, "sw (giko)"_pair_sw.html, +"spin/dmi"_pair_spin_dmi.html, +"spin/exchange"_pair_spin_exchange.html, +"spin/magelec"_pair_spin_magelec.html, +"spin/neel"_pair_spin_neel.html, "table (gko)"_pair_table.html, "tersoff (giko)"_pair_tersoff.html, "tersoff/mod (gko)"_pair_tersoff_mod.html, diff --git a/doc/src/computes.txt b/doc/src/computes.txt index 1b64e2e5b4..12de3e2788 100644 --- a/doc/src/computes.txt +++ b/doc/src/computes.txt @@ -95,6 +95,7 @@ Computes :h1 compute_smd_ulsph_stress compute_smd_vol compute_sna_atom + compute_spin compute_stress_atom compute_tally compute_tdpd_cc_atom diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt index 246ee02331..51f085ebdc 100644 --- a/doc/src/fix_langevin_spin.txt +++ b/doc/src/fix_langevin_spin.txt @@ -27,7 +27,7 @@ fix 2 all langevin/spin 300.0 0.01 21 :pre Apply a Langevin thermostat as described in "(Mayergoyz)"_#Mayergoyz1 to the magnetic spins associated to the atoms. -Used with "fix integration spin"_fix_integration_spin.html, this command performs +Used with "fix nve/spin"_fix_nve_spin.html, this command performs Brownian dynamics (BD). A random torque and a transverse dissipation are applied to each spin i according to the following stochastic differential equation: @@ -48,9 +48,9 @@ Note: due to the form of the sLLG equation, this fix has to be defined just before the nve/spin fix (and after all other magnetic fixes). As an example: -fix 1 all force/spin zeeman 0.01 0.0 0.0 1.0 +fix 1 all precession/spin zeeman 0.01 0.0 0.0 1.0 fix 2 all langevin/spin 300.0 0.01 21 -fix 3 all integration/spin lattice yes :pre +fix 3 all nve/spin lattice yes :pre is correct, but defining a force/spin command after the langevin/spin command would give an error message. @@ -80,16 +80,15 @@ The {langevin/spin} fix is part of the SPIN package. This style is only enabled if LAMMPS was built with this package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. -The numerical integration has to be performed with {fix/nve/spin} -when {langevin/spin} is enabled. +The numerical integration has to be performed with {fix nve/spin} +when {fix langevin/spin} is enabled. -This fix has to be the last defined magnetic fix before the integration fix -("fix integration spin"_fix_integration_spin.html). +This fix has to be the last defined magnetic fix before the time +integration fix (e.g. {fix nve/spin}). [Related commands:] -"fix integration spin"_fix_integration_spin.html, -"pair spin"_pair_spin.html +"fix nve/spin"_fix_nve_spin.html, "fix precession/spin"_fix_precession_spin.html [Default:] none diff --git a/doc/src/fixes.txt b/doc/src/fixes.txt index 79c2f75b8b..9510217d02 100644 --- a/doc/src/fixes.txt +++ b/doc/src/fixes.txt @@ -61,6 +61,7 @@ Fixes :h1 fix_langevin fix_langevin_drude fix_langevin_eff + fix_langevin_spin fix_latte fix_lb_fluid fix_lb_momentum @@ -99,6 +100,7 @@ Fixes :h1 fix_nve_manifold_rattle fix_nve_noforce fix_nve_sphere + fix_nve_spin fix_nve_tri fix_nvk fix_nvt_asphere @@ -114,6 +116,7 @@ Fixes :h1 fix_planeforce fix_poems fix_pour + fix_precession_spin fix_press_berendsen fix_print fix_property_atom diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 0764c593f7..22be6c7f53 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -176,6 +176,7 @@ fix_ipi.html fix_langevin.html fix_langevin_drude.html fix_langevin_eff.html +fix_langevin_spin.html fix_latte.html fix_lb_fluid.html fix_lb_momentum.html @@ -213,6 +214,7 @@ fix_nve_line.html fix_nve_manifold_rattle.html fix_nve_noforce.html fix_nve_sphere.html +fix_nve_spin.html fix_nve_tri.html fix_nvk.html fix_nvt_asphere.html @@ -229,6 +231,7 @@ fix_pimd.html fix_planeforce.html fix_poems.html fix_pour.html +fix_precession_spin.html fix_press_berendsen.html fix_print.html fix_property_atom.html @@ -381,6 +384,7 @@ compute_smd_ulsph_strain_rate.html compute_smd_ulsph_stress.html compute_smd_vol.html compute_sna_atom.html +compute_spin.html compute_stress_atom.html compute_tally.html compute_tdpd_cc_atom.html @@ -506,6 +510,10 @@ pair_sph_lj.html pair_sph_rhosum.html pair_sph_taitwater.html pair_sph_taitwater_morris.html +pair_spin_dmi.html +pair_spin_exchange.html +pair_spin_magelec.html +pair_spin_neel.html pair_srp.html pair_sw.html pair_table.html diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index 90a75705c7..97b6d0b34f 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -15,42 +15,42 @@ pair_style spin/exchange cutoff :pre cutoff = global cutoff pair (distance in metal units) :ulb,l :ule - + [Examples:] -pair_style spin/exchange 4.0 +pair_style spin/exchange 4.0 pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 pair_coeff 1 2 exchange 6.0 -0.01575 0.0 1.965 :pre [Description:] Style {spin/exchange} computes the exchange interaction between -pairs of magnetic spins: +pairs of magnetic spins: :c,image(Eqs/pair_spin_exchange_interaction.jpg) where si and sj are two neighboring magnetic spins of two particles, rij = ri - rj is the inter-atomic distance between the two particles, and J(rij) is a function defining the intensity and the sign of the exchange -interaction. +interaction. This function is defined as: :c,image(Eqs/pair_spin_exchange_function.jpg) -where a, b and d are the three constant coefficients defined in the associated -"pair_coeff" command. +where a, b and d are the three constant coefficients defined in the associated +"pair_coeff" command. -The coefficients a, b, and d need to be fitted so that the function above matches with +The coefficients a, b, and d need to be fitted so that the function above matches with the value of the exchange interaction for the N neighbor shells taken into account. -Examples and more explanations about this function and its parametrization are reported +Examples and more explanations about this function and its parametrization are reported in "(Tranchida)"_#Tranchida3. From this exchange interaction, each spin i will be submitted to a magnetic torque omega, and its associated atom can be submitted to a -force F for spin-lattice calculations (see -"fix_integration_spin"_fix_integration_spin.html), such as: +force F for spin-lattice calculations (see "fix_nve_spin"_fix_nve_spin.html), +such as: :c,image(Eqs/pair_spin_exchange_forces.jpg) diff --git a/doc/src/pair_spin_me.txt b/doc/src/pair_spin_magelec.txt similarity index 86% rename from doc/src/pair_spin_me.txt rename to doc/src/pair_spin_magelec.txt index 8186775b77..0185a5abb2 100644 --- a/doc/src/pair_spin_me.txt +++ b/doc/src/pair_spin_magelec.txt @@ -15,7 +15,7 @@ pair_style spin/me cutoff :pre cutoff = global cutoff pair (distance in metal units) :ulb,l :ule - + [Examples:] pair_style spin/me 4.5 @@ -29,16 +29,16 @@ pairs of magnetic spins. According to the derivation reported in :c,image(Eqs/pair_spin_me_interaction.jpg) -where si and sj are neighboring magnetic spins of two particles, -eij = (ri - rj)/|ri-rj| is the normalized separation vector between the +where si and sj are neighboring magnetic spins of two particles, +eij = (ri - rj)/|ri-rj| is the normalized separation vector between the two particles, and E is an electric polarization vector. -The norm and direction of E are giving the intensity and the +The norm and direction of E are giving the intensity and the direction of a screened dielectric atomic polarization (in eV). -From this magneto-electric interaction, each spin i will be submitted +From this magneto-electric interaction, each spin i will be submitted to a magnetic torque omega, and its associated atom can be submitted to a -force F for spin-lattice calculations (see -"fix_integration_spin"_fix_integration_spin.html), such as: +force F for spin-lattice calculations (see "fix_nve_spin"_fix_nve_spin.html), +such as: :c,image(Eqs/pair_spin_me_forces.jpg) @@ -51,14 +51,14 @@ More details about the derivation of these torques/forces are reported in [Restrictions:] -All the {pair/spin} styles are part of the SPIN package. +All the {pair/spin} styles are part of the SPIN package. These styles are only enabled if LAMMPS was built with this package, and -if the atom_style "spin" was declared. +if the atom_style "spin" was declared. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. [Related commands:] -"atom_style spin"_atom_style.html, "pair_coeff"_pair_coeff.html, +"atom_style spin"_atom_style.html, "pair_coeff"_pair_coeff.html, "pair_spin_exchange"_pair_spin_exchange.html, "pair_eam"_pair_eam.html, [Default:] none diff --git a/doc/src/pairs.txt b/doc/src/pairs.txt index 202aaa9c0f..1a5e98a109 100644 --- a/doc/src/pairs.txt +++ b/doc/src/pairs.txt @@ -97,6 +97,10 @@ Pair Styles :h1 pair_sph_rhosum pair_sph_taitwater pair_sph_taitwater_morris + pair_spin_dmi + pair_spin_exchange + pair_spin_magelec + pair_spin_neel pair_srp pair_sw pair_table diff --git a/doc/src/tutorials.txt b/doc/src/tutorials.txt index 97e7883841..338439ac8e 100644 --- a/doc/src/tutorials.txt +++ b/doc/src/tutorials.txt @@ -9,7 +9,6 @@ Tutorials :h1 tutorial_github tutorial_pylammps tutorial_bash_on_windows - tutorial_spin body manifolds diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp old mode 100755 new mode 100644 diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h old mode 100755 new mode 100644 diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp old mode 100755 new mode 100644 diff --git a/src/SPIN/pair_spin_dmi.h b/src/SPIN/pair_spin_dmi.h old mode 100755 new mode 100644 diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp old mode 100755 new mode 100644 diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h old mode 100755 new mode 100644 diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp old mode 100755 new mode 100644 diff --git a/src/SPIN/pair_spin_magelec.h b/src/SPIN/pair_spin_magelec.h old mode 100755 new mode 100644 diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp old mode 100755 new mode 100644 diff --git a/src/SPIN/pair_spin_neel.h b/src/SPIN/pair_spin_neel.h old mode 100755 new mode 100644 From 4a88f53d22ba09f5a614d8fd9a076f97941c05cb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 18 Jun 2018 19:17:25 -0400 Subject: [PATCH 151/675] adjust input files for changed paths --- examples/SPIN/read_restart/in.spin.read_data | 9 +++--- examples/SPIN/read_restart/in.spin.restart | 29 ++++++------------- .../SPIN/read_restart/in.spin.write_restart | 7 ++--- 3 files changed, 16 insertions(+), 29 deletions(-) diff --git a/examples/SPIN/read_restart/in.spin.read_data b/examples/SPIN/read_restart/in.spin.read_data index 1cb99e2c6e..ba667e0b43 100644 --- a/examples/SPIN/read_restart/in.spin.read_data +++ b/examples/SPIN/read_restart/in.spin.read_data @@ -1,4 +1,3 @@ -clear units metal dimension 3 boundary p p p @@ -6,17 +5,17 @@ boundary p p p atom_style spin # necessary for the serial algorithm (sametag) -atom_modify map array -read_data ../examples/SPIN/read_restart/Norm_randXY_8x8x32.data +atom_modify map array +read_data Norm_randXY_8x8x32.data mass 1 58.93 pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 1.0 bin -neigh_modify every 1 check no delay 0 +neigh_modify every 1 check no delay 0 fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 fix 2 all langevin/spin 0.0 0.0 21 diff --git a/examples/SPIN/read_restart/in.spin.restart b/examples/SPIN/read_restart/in.spin.restart index 371e48a946..f4b528fe68 100644 --- a/examples/SPIN/read_restart/in.spin.restart +++ b/examples/SPIN/read_restart/in.spin.restart @@ -1,5 +1,4 @@ # start a spin-lattice simulation from a data file -clear units metal atom_style spin @@ -9,33 +8,24 @@ boundary p p p # necessary for the serial algorithm (sametag) atom_modify map array -lattice fcc 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box +read_restart restart_fcc_cobalt.equil -read_dump ../examples/SPIN/read_restart/Norm_randXY_8x8x32.dump 0 x y z box yes - -create_atoms 1 box # setting mass, mag. moments, and interactions mass 1 58.93 -set group all spin 1.72 0.0 0.0 1.0 -set group single_spin spin/random 11 1.72 -velocity all create 200 4928459 rot yes dist gaussian - # define magneto-mechanical potentials and forces pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 1.0 bin -neigh_modify every 1 check no delay 0 +neigh_modify every 1 check no delay 0 fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 0.0 21 +fix 2 all langevin/spin 0.0 0.0 21 fix 3 all nve/spin lattice yes timestep 0.0001 @@ -47,10 +37,10 @@ compute out_pe all pe compute out_ke all ke compute out_temp all temp -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] thermo 10 thermo_style custom step time v_magnorm v_emag v_tmag temp etotal @@ -59,5 +49,4 @@ thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] -run 1000 - +run 100 diff --git a/examples/SPIN/read_restart/in.spin.write_restart b/examples/SPIN/read_restart/in.spin.write_restart index 6848da0154..3acb33fbd8 100644 --- a/examples/SPIN/read_restart/in.spin.write_restart +++ b/examples/SPIN/read_restart/in.spin.write_restart @@ -1,6 +1,5 @@ # fcc cobalt in a 3d periodic box -clear units metal atom_style spin @@ -23,7 +22,7 @@ set group all spin/random 31 1.72 velocity all create 100 4928459 rot yes dist gaussian pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/cobalt_fcc/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 0.1 bin @@ -48,11 +47,11 @@ variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] thermo_style custom step time v_magnorm v_emag temp etotal -thermo 10 +thermo 100 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] -run 10000 +run 5000 write_restart restart_fcc_cobalt.equil From e3a528a49353541ca6e6b281d78353c6e16e52a9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 13:06:34 -0400 Subject: [PATCH 152/675] report compile time options (-DLAMMPS_XXX) in help output and info config --- src/info.cpp | 1 + src/lammps.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/lammps.h | 1 + 3 files changed, 66 insertions(+) diff --git a/src/info.cpp b/src/info.cpp index 65c0cd9b53..1a5bc21209 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -262,6 +262,7 @@ void Info::command(int narg, char **arg) fprintf(out,"\nLAMMPS version: %s / %s\n", universe->version, universe->num_ver); + lmp->print_config(out); fprintf(out,"sizeof(smallint): %3d-bit\n",(int)sizeof(smallint)*8); fprintf(out,"sizeof(imageint): %3d-bit\n",(int)sizeof(imageint)*8); fprintf(out,"sizeof(tagint): %3d-bit\n",(int)sizeof(tagint)*8); diff --git a/src/lammps.cpp b/src/lammps.cpp index 56af95767b..6a326e2abb 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -31,6 +31,7 @@ #include "style_region.h" #include "universe.h" #include "input.h" +#include "info.h" #include "atom.h" #include "update.h" #include "neighbor.h" @@ -823,6 +824,8 @@ void LAMMPS::help() "-var varname value : set index style variable (-v)\n\n", exename); + + print_config(fp); fprintf(fp,"List of style options included in this LAMMPS executable\n\n"); int pos = 80; @@ -974,3 +977,64 @@ void print_style(FILE *fp, const char *str, int &pos) pos += 80; } } + +static const char lammps_config_options[] += "LAMMPS compile time settings:\n" + "Integer sizes setting: " +#if defined(LAMMPS_SMALLSMALL) + " -DLAMMPS_SMALLSMALL" +#elif defined(LAMMPS_SMALLBIG) + " -DLAMMPS_SMALLBIG" +#elif defined(LAMMPS_BIGBIG) + " -DLAMMPS_BIGBIG" +#else + " (unkown)" +#endif + "\nExternal commands support:" +#if defined(LAMMPS_GZIP) + " -DLAMMPS_GZIP" +#endif +#if defined(LAMMPS_FFMPEG) + " -DLAMMPS_FFMPEG" +#endif + "\nImage library support: " +#if defined(LAMMPS_JPEG) + " -DLAMMPS_JPEG" +#endif +#if defined(LAMMPS_PNG) + " -DLAMMPS_PNG" +#endif + "\nFFT library support: " +#if defined(FFT_SINGLE) + " -DFFT_SINGLE" +#endif +#if defined(FFT_FFTW) || defined(FFT_FFTW3) + " -DFFT_FFTW3" +#elif defined(FFT_FFTW2) + " -DFFT_FFTW2" +#elif defined(FFT_MKL) + " -DFFT_MKL" +#else + " -DFFT_KISSFFT" +#endif + "\nMemory alignment: " +#if defined(LAMMPS_MEMALIGN) +#define lmp_str(s) #s +#define lmp_xstr(s) lmp_str(s) + " -DLAMMPS_MEMALIGN=" lmp_xstr(LAMMPS_MEMALIGN) +#else + " (default)" +#endif + + "\nException support: " +#if defined(LAMMPS_EXCEPTIONS) + " -DLAMMPS_EXCEPTIONS\n" +#else + " (not enabled)\n" +#endif + "\n"; + +void LAMMPS::print_config(FILE *fp) +{ + fputs(lammps_config_options,fp); +} diff --git a/src/lammps.h b/src/lammps.h index 1323dcccc8..6473985736 100644 --- a/src/lammps.h +++ b/src/lammps.h @@ -65,6 +65,7 @@ class LAMMPS { void post_create(); void init(); void destroy(); + void print_config(FILE *); // print compile time settings private: void help(); From c371ce1005291ebe85ec498e5d1f0acc7c217f28 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 13:28:40 -0400 Subject: [PATCH 153/675] include date when LAMMPS was compiled --- src/Make.sh | 5 +++++ src/Makefile | 1 + src/lammps.cpp | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Make.sh b/src/Make.sh index 83880780ec..ce64001a1e 100755 --- a/src/Make.sh +++ b/src/Make.sh @@ -1,6 +1,7 @@ # Make.sh = update Makefile.lib, Makefile.shlib, Makefile.list # or style_*.h files # Syntax: sh Make.sh style +# sh Make.sh date # sh Make.sh Makefile.lib # sh Make.sh Makefile.shlib # sh Make.sh Makefile.list @@ -55,6 +56,10 @@ style () { fi } +if (test $1 = "date") then + echo "static const char lammps_compile_date[] = \"`date`\";" > lmpcompiledate.h +fi + # create individual style files # called by "make machine" # col 1 = string to search for diff --git a/src/Makefile b/src/Makefile index d17a2ccbd9..eb7382989d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -163,6 +163,7 @@ help: -f MAKE/MACHINES/Makefile.$@ -o -f MAKE/MINE/Makefile.$@ @if [ ! -d $(objdir) ]; then mkdir $(objdir); fi @$(SHELL) Make.sh style + @$(SHELL) Make.sh date @if [ -f MAKE/MACHINES/Makefile.$@ ]; \ then cp MAKE/MACHINES/Makefile.$@ $(objdir)/Makefile; fi @if [ -f MAKE/OPTIONS/Makefile.$@ ]; \ diff --git a/src/lammps.cpp b/src/lammps.cpp index 6a326e2abb..cd6720c8e6 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -978,8 +978,10 @@ void print_style(FILE *fp, const char *str, int &pos) } } +#include "lmpcompiledate.h" + static const char lammps_config_options[] -= "LAMMPS compile time settings:\n" += "LAMMPS compile time settings:\n\n" "Integer sizes setting: " #if defined(LAMMPS_SMALLSMALL) " -DLAMMPS_SMALLSMALL" @@ -1037,4 +1039,5 @@ static const char lammps_config_options[] void LAMMPS::print_config(FILE *fp) { fputs(lammps_config_options,fp); + fprintf(fp,"LAMMPS compiled on: %s\n",lammps_compile_date); } From 90f0586c9e98f5ad45d7e63d547d10e131b29115 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 13:34:10 -0400 Subject: [PATCH 154/675] include compilation date as an example for embedding info, that is not a define --- src/.gitignore | 1 + src/Purge.list | 2 ++ src/lammps.cpp | 6 +++--- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/.gitignore b/src/.gitignore index 3ae05079d2..89dc852b1a 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -5,6 +5,7 @@ /lmp_* /style_*.h +/lmpcompiledate.h /*_gpu.h /*_gpu.cpp diff --git a/src/Purge.list b/src/Purge.list index 2e854ead3d..7defdfe1c2 100644 --- a/src/Purge.list +++ b/src/Purge.list @@ -16,6 +16,8 @@ style_region.h style_neigh_bin.h style_neigh_pair.h style_neigh_stencil.h +# other auto-generated files +lmpcompiledate.h # deleted on 4 April 2018 pair_kim_version.h # deleted on 15 December 2017 diff --git a/src/lammps.cpp b/src/lammps.cpp index cd6720c8e6..53a17c717d 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -978,8 +978,6 @@ void print_style(FILE *fp, const char *str, int &pos) } } -#include "lmpcompiledate.h" - static const char lammps_config_options[] = "LAMMPS compile time settings:\n\n" "Integer sizes setting: " @@ -1036,8 +1034,10 @@ static const char lammps_config_options[] #endif "\n"; +#include "lmpcompiledate.h" + void LAMMPS::print_config(FILE *fp) { + fprintf(fp,"LAMMPS compiled on: %s\n\n",lammps_compile_date); fputs(lammps_config_options,fp); - fprintf(fp,"LAMMPS compiled on: %s\n",lammps_compile_date); } From 4265e68ff89659ae969aefdb67abdf5d3b694582 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 15:49:47 -0400 Subject: [PATCH 155/675] record installed packages --- src/.gitignore | 1 + src/Makefile | 7 +++++++ src/lammps.cpp | 2 ++ 3 files changed, 10 insertions(+) diff --git a/src/.gitignore b/src/.gitignore index 89dc852b1a..ca9558cabb 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -6,6 +6,7 @@ /style_*.h /lmpcompiledate.h +/lmpinstalledpkgs.h /*_gpu.h /*_gpu.cpp diff --git a/src/Makefile b/src/Makefile index eb7382989d..7e19070c90 100644 --- a/src/Makefile +++ b/src/Makefile @@ -164,6 +164,13 @@ help: @if [ ! -d $(objdir) ]; then mkdir $(objdir); fi @$(SHELL) Make.sh style @$(SHELL) Make.sh date + @echo 'Gathering installed package information' + @echo 'static const char lammps_installed_packages[] = ' > lmpinstalledpkgs.tmp + @for p in $(PACKAGEUC) $(PACKUSERUC); do info=$$($(SHELL) Package.sh $$p installed); \ + [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package/"/' >> lmpinstalledpkgs.tmp || :; done + @echo ';' >> lmpinstalledpkgs.tmp + @test "`diff --brief lmpinstalledpkgs.tmp lmpinstalledpkgs.h`" != "" && \ + mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h || rm lmpinstalledpkgs.tmp @if [ -f MAKE/MACHINES/Makefile.$@ ]; \ then cp MAKE/MACHINES/Makefile.$@ $(objdir)/Makefile; fi @if [ -f MAKE/OPTIONS/Makefile.$@ ]; \ diff --git a/src/lammps.cpp b/src/lammps.cpp index 53a17c717d..eedf7bc6fa 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -1035,9 +1035,11 @@ static const char lammps_config_options[] "\n"; #include "lmpcompiledate.h" +#include "lmpinstalledpkgs.h" void LAMMPS::print_config(FILE *fp) { fprintf(fp,"LAMMPS compiled on: %s\n\n",lammps_compile_date); fputs(lammps_config_options,fp); + fprintf(fp,"Installed packages:%s\n\n",lammps_installed_packages); } From eb485afc454fbb987f2953a43705ae439cf441f5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 16:32:28 -0400 Subject: [PATCH 156/675] fix logic bug that would not create lmpinstalledpkgs.h when there was none --- src/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 7e19070c90..86597ae42e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -169,8 +169,10 @@ help: @for p in $(PACKAGEUC) $(PACKUSERUC); do info=$$($(SHELL) Package.sh $$p installed); \ [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package/"/' >> lmpinstalledpkgs.tmp || :; done @echo ';' >> lmpinstalledpkgs.tmp - @test "`diff --brief lmpinstalledpkgs.tmp lmpinstalledpkgs.h`" != "" && \ - mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h || rm lmpinstalledpkgs.tmp + @if [ -f lmpinstalledpkgs.h ]; \ + then test "`diff --brief lmpinstalledpkgs.tmp lmpinstalledpkgs.h`" != "" && \ + mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h || rm lmpinstalledpkgs.tmp ; \ + else mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h ; fi @if [ -f MAKE/MACHINES/Makefile.$@ ]; \ then cp MAKE/MACHINES/Makefile.$@ $(objdir)/Makefile; fi @if [ -f MAKE/OPTIONS/Makefile.$@ ]; \ From 472a1a501daa55f3b053207a81dffe38619864c5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 16:42:22 -0400 Subject: [PATCH 157/675] add lmpinstalledpks.h to the list of purgable files --- src/Purge.list | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Purge.list b/src/Purge.list index 7defdfe1c2..76c31a86ed 100644 --- a/src/Purge.list +++ b/src/Purge.list @@ -18,6 +18,7 @@ style_neigh_pair.h style_neigh_stencil.h # other auto-generated files lmpcompiledate.h +lmpinstalledpkgs.h # deleted on 4 April 2018 pair_kim_version.h # deleted on 15 December 2017 From 596acaf4d2fc86e682b1dafe0be5c741989d15a3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 17:32:40 -0400 Subject: [PATCH 158/675] give visual feedback on when the compile starts since gathering the package information can take time --- src/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 86597ae42e..8baf07266a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -166,13 +166,15 @@ help: @$(SHELL) Make.sh date @echo 'Gathering installed package information' @echo 'static const char lammps_installed_packages[] = ' > lmpinstalledpkgs.tmp - @for p in $(PACKAGEUC) $(PACKUSERUC); do info=$$($(SHELL) Package.sh $$p installed); \ + @for p in $(PACKAGEUC) $(PACKUSERUC); do echo -n '.'; info=$$($(SHELL) Package.sh $$p installed); \ [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package/"/' >> lmpinstalledpkgs.tmp || :; done @echo ';' >> lmpinstalledpkgs.tmp + @echo @if [ -f lmpinstalledpkgs.h ]; \ then test "`diff --brief lmpinstalledpkgs.tmp lmpinstalledpkgs.h`" != "" && \ mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h || rm lmpinstalledpkgs.tmp ; \ else mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h ; fi + @echo 'Compiling LAMMPS for machine $@' @if [ -f MAKE/MACHINES/Makefile.$@ ]; \ then cp MAKE/MACHINES/Makefile.$@ $(objdir)/Makefile; fi @if [ -f MAKE/OPTIONS/Makefile.$@ ]; \ From 1f770a6a8feb55fbf8b134ba27761ec511dc9496 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 17:37:24 -0400 Subject: [PATCH 159/675] print information about serial/parallel and MPI version for known libraries --- src/lammps.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/lammps.cpp b/src/lammps.cpp index eedf7bc6fa..64c6e4d751 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -978,9 +978,25 @@ void print_style(FILE *fp, const char *str, int &pos) } } +#define lmp_str(s) #s +#define lmp_xstr(s) lmp_str(s) + static const char lammps_config_options[] = "LAMMPS compile time settings:\n\n" - "Integer sizes setting: " + "MPI library setting: " +#if defined(MPI_STUBS) + "Serial version using STUBS" +#elif defined(MPICH_VERSION) + "Parallel version using MPICH " MPICH_VERSION +#elif defined(OPEN_MPI) + "Parallel version using OpenMPI " + lmp_xstr(OMPI_MAJOR_VERSION) "." + lmp_xstr(OMPI_MINOR_VERSION) "." + lmp_xstr(OMPI_RELEASE_VERSION) +#else + "Parallel version using unknown MPI library" +#endif + "\nInteger sizes setting: " #if defined(LAMMPS_SMALLSMALL) " -DLAMMPS_SMALLSMALL" #elif defined(LAMMPS_SMALLBIG) @@ -1019,8 +1035,6 @@ static const char lammps_config_options[] #endif "\nMemory alignment: " #if defined(LAMMPS_MEMALIGN) -#define lmp_str(s) #s -#define lmp_xstr(s) lmp_str(s) " -DLAMMPS_MEMALIGN=" lmp_xstr(LAMMPS_MEMALIGN) #else " (default)" From 7f0c88c74bd43ea062cf83d7587f8cf9a2300ae0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 21:45:58 -0400 Subject: [PATCH 160/675] refactor the gathering of compile time settings after discussion with @sjplimp - remove feature to record the compilation time and date - remove 'echo -n' based "progress bar" - update output format for "lmp_machine -h" to be consistent with help output - move generation of lmpinstalledpkgs.h to be a separate target depending on all sources and headers in src folder. this way it is only regenerated when files are modified or packages installed --- src/.gitignore | 1 - src/Make.sh | 5 ----- src/Makefile | 26 ++++++++++++++------------ src/lammps.cpp | 24 +++++++++++------------- 4 files changed, 25 insertions(+), 31 deletions(-) diff --git a/src/.gitignore b/src/.gitignore index ca9558cabb..c0aa320d97 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -5,7 +5,6 @@ /lmp_* /style_*.h -/lmpcompiledate.h /lmpinstalledpkgs.h /*_gpu.h diff --git a/src/Make.sh b/src/Make.sh index ce64001a1e..83880780ec 100755 --- a/src/Make.sh +++ b/src/Make.sh @@ -1,7 +1,6 @@ # Make.sh = update Makefile.lib, Makefile.shlib, Makefile.list # or style_*.h files # Syntax: sh Make.sh style -# sh Make.sh date # sh Make.sh Makefile.lib # sh Make.sh Makefile.shlib # sh Make.sh Makefile.list @@ -56,10 +55,6 @@ style () { fi } -if (test $1 = "date") then - echo "static const char lammps_compile_date[] = \"`date`\";" > lmpcompiledate.h -fi - # create individual style files # called by "make machine" # col 1 = string to search for diff --git a/src/Makefile b/src/Makefile index 8baf07266a..2504a49ad4 100644 --- a/src/Makefile +++ b/src/Makefile @@ -18,7 +18,7 @@ OBJDIR = Obj_$@ OBJSHDIR = Obj_shared_$@ SRC = $(wildcard *.cpp) -INC = $(wildcard *.h) +INC = $(filter-out lmpinstalledpkgs.h,$(wildcard *.h)) OBJ = $(SRC:.cpp=.o) SRCLIB = $(filter-out main.cpp,$(SRC)) @@ -150,6 +150,18 @@ help: for file in $$files; do head -1 $$file; done @echo '' + +lmpinstalledpkgs.h: $(SRC) $(INC) + @echo 'Gathering installed package information (may take a little while)' + @echo 'static const char lammps_installed_packages[] = ' > lmpinstalledpkgs.tmp + @for p in $(PACKAGEUC) $(PACKUSERUC); do info=$$($(SHELL) Package.sh $$p installed); \ + [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package/"/' >> lmpinstalledpkgs.tmp || :; done + @echo ';' >> lmpinstalledpkgs.tmp + @if [ -f lmpinstalledpkgs.h ]; \ + then test "`diff --brief lmpinstalledpkgs.tmp lmpinstalledpkgs.h`" != "" && \ + mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h || rm lmpinstalledpkgs.tmp ; \ + else mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h ; fi + # Build LAMMPS in one of 4 modes # exe = exe with static compile in Obj_machine (default) # shexe = exe with shared compile in Obj_shared_machine @@ -163,17 +175,7 @@ help: -f MAKE/MACHINES/Makefile.$@ -o -f MAKE/MINE/Makefile.$@ @if [ ! -d $(objdir) ]; then mkdir $(objdir); fi @$(SHELL) Make.sh style - @$(SHELL) Make.sh date - @echo 'Gathering installed package information' - @echo 'static const char lammps_installed_packages[] = ' > lmpinstalledpkgs.tmp - @for p in $(PACKAGEUC) $(PACKUSERUC); do echo -n '.'; info=$$($(SHELL) Package.sh $$p installed); \ - [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package/"/' >> lmpinstalledpkgs.tmp || :; done - @echo ';' >> lmpinstalledpkgs.tmp - @echo - @if [ -f lmpinstalledpkgs.h ]; \ - then test "`diff --brief lmpinstalledpkgs.tmp lmpinstalledpkgs.h`" != "" && \ - mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h || rm lmpinstalledpkgs.tmp ; \ - else mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h ; fi + @$(MAKE) $(MFLAGS) lmpinstalledpkgs.h @echo 'Compiling LAMMPS for machine $@' @if [ -f MAKE/MACHINES/Makefile.$@ ]; \ then cp MAKE/MACHINES/Makefile.$@ $(objdir)/Makefile; fi diff --git a/src/lammps.cpp b/src/lammps.cpp index 64c6e4d751..271ccb4ae9 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -983,7 +983,7 @@ void print_style(FILE *fp, const char *str, int &pos) static const char lammps_config_options[] = "LAMMPS compile time settings:\n\n" - "MPI library setting: " + "MPI library setting : " #if defined(MPI_STUBS) "Serial version using STUBS" #elif defined(MPICH_VERSION) @@ -996,31 +996,31 @@ static const char lammps_config_options[] #else "Parallel version using unknown MPI library" #endif - "\nInteger sizes setting: " + "\nInteger sizes setting : " #if defined(LAMMPS_SMALLSMALL) - " -DLAMMPS_SMALLSMALL" + "-DLAMMPS_SMALLSMALL" #elif defined(LAMMPS_SMALLBIG) - " -DLAMMPS_SMALLBIG" + "-DLAMMPS_SMALLBIG" #elif defined(LAMMPS_BIGBIG) - " -DLAMMPS_BIGBIG" + "-DLAMMPS_BIGBIG" #else - " (unkown)" + "(unkown)" #endif - "\nExternal commands support:" + "\nExternal commands support :" #if defined(LAMMPS_GZIP) " -DLAMMPS_GZIP" #endif #if defined(LAMMPS_FFMPEG) " -DLAMMPS_FFMPEG" #endif - "\nImage library support: " + "\nImage library support :" #if defined(LAMMPS_JPEG) " -DLAMMPS_JPEG" #endif #if defined(LAMMPS_PNG) " -DLAMMPS_PNG" #endif - "\nFFT library support: " + "\nFFT library support :" #if defined(FFT_SINGLE) " -DFFT_SINGLE" #endif @@ -1033,14 +1033,14 @@ static const char lammps_config_options[] #else " -DFFT_KISSFFT" #endif - "\nMemory alignment: " + "\nMemory alignment :" #if defined(LAMMPS_MEMALIGN) " -DLAMMPS_MEMALIGN=" lmp_xstr(LAMMPS_MEMALIGN) #else " (default)" #endif - "\nException support: " + "\nException support :" #if defined(LAMMPS_EXCEPTIONS) " -DLAMMPS_EXCEPTIONS\n" #else @@ -1048,12 +1048,10 @@ static const char lammps_config_options[] #endif "\n"; -#include "lmpcompiledate.h" #include "lmpinstalledpkgs.h" void LAMMPS::print_config(FILE *fp) { - fprintf(fp,"LAMMPS compiled on: %s\n\n",lammps_compile_date); fputs(lammps_config_options,fp); fprintf(fp,"Installed packages:%s\n\n",lammps_installed_packages); } From 0e603493af19ff36282faca12af09d59080a1031 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 23:27:56 -0400 Subject: [PATCH 161/675] fix bug that made compilation fail with no packages installed --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 2504a49ad4..96648d5935 100644 --- a/src/Makefile +++ b/src/Makefile @@ -153,7 +153,7 @@ help: lmpinstalledpkgs.h: $(SRC) $(INC) @echo 'Gathering installed package information (may take a little while)' - @echo 'static const char lammps_installed_packages[] = ' > lmpinstalledpkgs.tmp + @echo 'static const char lammps_installed_packages[] = " "' > lmpinstalledpkgs.tmp @for p in $(PACKAGEUC) $(PACKUSERUC); do info=$$($(SHELL) Package.sh $$p installed); \ [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package/"/' >> lmpinstalledpkgs.tmp || :; done @echo ';' >> lmpinstalledpkgs.tmp From 9f3fae1c47797b039ae64d915fd8a9eac7d6ca50 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 9 May 2018 23:28:29 -0400 Subject: [PATCH 162/675] record 3d-FFT array packaging algorithm --- src/lammps.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/lammps.cpp b/src/lammps.cpp index 271ccb4ae9..075e06bd59 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -1032,6 +1032,14 @@ static const char lammps_config_options[] " -DFFT_MKL" #else " -DFFT_KISSFFT" +#endif + "\n3d-FFT data packing :" +#if defined(PACK_POINTER) + " -DPACK_POINTER" +#elif defined(PACK_MEMCPY) + " -DPACK_MEMCPY" +#else + " -DPACK_ARRAY" #endif "\nMemory alignment :" #if defined(LAMMPS_MEMALIGN) From 9f3cb83fb3349a87209e501b71eb931ea65bf7bc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 20 Jun 2018 17:57:17 -0400 Subject: [PATCH 163/675] use a list instead of a string to store the names of installed packages --- src/Makefile | 6 +++--- src/lammps.cpp | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/Makefile b/src/Makefile index 96648d5935..a74e2c76de 100644 --- a/src/Makefile +++ b/src/Makefile @@ -153,10 +153,10 @@ help: lmpinstalledpkgs.h: $(SRC) $(INC) @echo 'Gathering installed package information (may take a little while)' - @echo 'static const char lammps_installed_packages[] = " "' > lmpinstalledpkgs.tmp + @echo 'static const char * lammps_installed_packages[] = {' > lmpinstalledpkgs.tmp @for p in $(PACKAGEUC) $(PACKUSERUC); do info=$$($(SHELL) Package.sh $$p installed); \ - [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package/"/' >> lmpinstalledpkgs.tmp || :; done - @echo ';' >> lmpinstalledpkgs.tmp + [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package \(.*\)"/"\1",/' >> lmpinstalledpkgs.tmp || :; done + @echo ' NULL };' >> lmpinstalledpkgs.tmp @if [ -f lmpinstalledpkgs.h ]; \ then test "`diff --brief lmpinstalledpkgs.tmp lmpinstalledpkgs.h`" != "" && \ mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h || rm lmpinstalledpkgs.tmp ; \ diff --git a/src/lammps.cpp b/src/lammps.cpp index 075e06bd59..3421b24b90 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -826,7 +826,7 @@ void LAMMPS::help() print_config(fp); - fprintf(fp,"List of style options included in this LAMMPS executable\n\n"); + fprintf(fp,"List of individual style options included in this LAMMPS executable\n\n"); int pos = 80; fprintf(fp,"* Atom styles:\n"); @@ -1060,6 +1060,19 @@ static const char lammps_config_options[] void LAMMPS::print_config(FILE *fp) { + const char *pkg; + int ncword, ncline = 0; + fputs(lammps_config_options,fp); - fprintf(fp,"Installed packages:%s\n\n",lammps_installed_packages); + fputs("Installed packages:\n\n",fp); + for (int i = 0; NULL != (pkg = lammps_installed_packages[i]); ++i) { + ncword = strlen(pkg); + if (ncline + ncword > 78) { + ncline = 0; + fputs("\n",fp); + } + fprintf(fp,"%s ",pkg); + ncline += ncword + 1; + } + fputs("\n\n",fp); } From e8e1349da4d6c083a056d3a16dd480e193593085 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 21 Jun 2018 19:07:16 -0400 Subject: [PATCH 164/675] make the list of installed packages a static const class member of the LAMMPS class through this change, the list of packages becomes accessible for the library interface and the python wrapper, e.g. to check whether a prerequisite packages is installed (simpler/faster for quick highlevel check than having to try instantiating a specific style). --- src/Makefile | 2 +- src/info.cpp | 19 ++++++++++-- src/lammps.cpp | 81 +------------------------------------------------- src/lammps.h | 2 ++ 4 files changed, 20 insertions(+), 84 deletions(-) diff --git a/src/Makefile b/src/Makefile index a74e2c76de..29164e4e32 100644 --- a/src/Makefile +++ b/src/Makefile @@ -153,7 +153,7 @@ help: lmpinstalledpkgs.h: $(SRC) $(INC) @echo 'Gathering installed package information (may take a little while)' - @echo 'static const char * lammps_installed_packages[] = {' > lmpinstalledpkgs.tmp + @echo 'const char * LAMMPS_NS::LAMMPS::installed_packages[] = {' > lmpinstalledpkgs.tmp @for p in $(PACKAGEUC) $(PACKUSERUC); do info=$$($(SHELL) Package.sh $$p installed); \ [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package \(.*\)"/"\1",/' >> lmpinstalledpkgs.tmp || :; done @echo ' NULL };' >> lmpinstalledpkgs.tmp diff --git a/src/info.cpp b/src/info.cpp index 1a5bc21209..0d11836826 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -259,15 +259,28 @@ void Info::command(int narg, char **arg) fprintf(out,"Printed on %s\n",ctime(&now)); if (flags & CONFIG) { - - fprintf(out,"\nLAMMPS version: %s / %s\n", + fprintf(out,"\nLAMMPS version: %s / %s\n\n", universe->version, universe->num_ver); - lmp->print_config(out); fprintf(out,"sizeof(smallint): %3d-bit\n",(int)sizeof(smallint)*8); fprintf(out,"sizeof(imageint): %3d-bit\n",(int)sizeof(imageint)*8); fprintf(out,"sizeof(tagint): %3d-bit\n",(int)sizeof(tagint)*8); fprintf(out,"sizeof(bigint): %3d-bit\n",(int)sizeof(bigint)*8); + const char *pkg; + int ncword, ncline = 0; + + fputs("\nInstalled packages:\n\n",out); + for (int i = 0; NULL != (pkg = lmp->installed_packages[i]); ++i) { + ncword = strlen(pkg); + if (ncline + ncword > 78) { + ncline = 0; + fputs("\n",out); + } + fprintf(out,"%s ",pkg); + ncline += ncword + 1; + } + fputs("\n",out); + #if defined(_WIN32) DWORD fullversion,majorv,minorv,buildv=0; diff --git a/src/lammps.cpp b/src/lammps.cpp index 3421b24b90..44df7b5a13 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -978,84 +978,6 @@ void print_style(FILE *fp, const char *str, int &pos) } } -#define lmp_str(s) #s -#define lmp_xstr(s) lmp_str(s) - -static const char lammps_config_options[] -= "LAMMPS compile time settings:\n\n" - "MPI library setting : " -#if defined(MPI_STUBS) - "Serial version using STUBS" -#elif defined(MPICH_VERSION) - "Parallel version using MPICH " MPICH_VERSION -#elif defined(OPEN_MPI) - "Parallel version using OpenMPI " - lmp_xstr(OMPI_MAJOR_VERSION) "." - lmp_xstr(OMPI_MINOR_VERSION) "." - lmp_xstr(OMPI_RELEASE_VERSION) -#else - "Parallel version using unknown MPI library" -#endif - "\nInteger sizes setting : " -#if defined(LAMMPS_SMALLSMALL) - "-DLAMMPS_SMALLSMALL" -#elif defined(LAMMPS_SMALLBIG) - "-DLAMMPS_SMALLBIG" -#elif defined(LAMMPS_BIGBIG) - "-DLAMMPS_BIGBIG" -#else - "(unkown)" -#endif - "\nExternal commands support :" -#if defined(LAMMPS_GZIP) - " -DLAMMPS_GZIP" -#endif -#if defined(LAMMPS_FFMPEG) - " -DLAMMPS_FFMPEG" -#endif - "\nImage library support :" -#if defined(LAMMPS_JPEG) - " -DLAMMPS_JPEG" -#endif -#if defined(LAMMPS_PNG) - " -DLAMMPS_PNG" -#endif - "\nFFT library support :" -#if defined(FFT_SINGLE) - " -DFFT_SINGLE" -#endif -#if defined(FFT_FFTW) || defined(FFT_FFTW3) - " -DFFT_FFTW3" -#elif defined(FFT_FFTW2) - " -DFFT_FFTW2" -#elif defined(FFT_MKL) - " -DFFT_MKL" -#else - " -DFFT_KISSFFT" -#endif - "\n3d-FFT data packing :" -#if defined(PACK_POINTER) - " -DPACK_POINTER" -#elif defined(PACK_MEMCPY) - " -DPACK_MEMCPY" -#else - " -DPACK_ARRAY" -#endif - "\nMemory alignment :" -#if defined(LAMMPS_MEMALIGN) - " -DLAMMPS_MEMALIGN=" lmp_xstr(LAMMPS_MEMALIGN) -#else - " (default)" -#endif - - "\nException support :" -#if defined(LAMMPS_EXCEPTIONS) - " -DLAMMPS_EXCEPTIONS\n" -#else - " (not enabled)\n" -#endif - "\n"; - #include "lmpinstalledpkgs.h" void LAMMPS::print_config(FILE *fp) @@ -1063,9 +985,8 @@ void LAMMPS::print_config(FILE *fp) const char *pkg; int ncword, ncline = 0; - fputs(lammps_config_options,fp); fputs("Installed packages:\n\n",fp); - for (int i = 0; NULL != (pkg = lammps_installed_packages[i]); ++i) { + for (int i = 0; NULL != (pkg = installed_packages[i]); ++i) { ncword = strlen(pkg); if (ncline + ncword > 78) { ncline = 0; diff --git a/src/lammps.h b/src/lammps.h index 6473985736..b2c8673471 100644 --- a/src/lammps.h +++ b/src/lammps.h @@ -59,6 +59,8 @@ class LAMMPS { class CiteMe *citeme; // citation info + static const char * installed_packages[]; + LAMMPS(int, char **, MPI_Comm); ~LAMMPS(); void create(); From 7da8e69b459d0a0feb9960cf6ffc06e715891bcd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 21 Jun 2018 19:08:09 -0400 Subject: [PATCH 165/675] add code to create lmpinstalledpkgs.h file with cmake --- cmake/CMakeLists.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index f39e75f7a1..f5346dec74 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -798,6 +798,20 @@ GenerateStyleHeaders(${LAMMPS_STYLE_HEADERS_DIR}) include_directories(${LAMMPS_SOURCE_DIR}) include_directories(${LAMMPS_STYLE_HEADERS_DIR}) +###################################### +# Generate lmpinstalledpkgs.h +###################################### +set(temp "const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n") +foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES}) + if(PKG_${PKG}) + set(temp "${temp} \"${PKG}\",\n") + endif() +endforeach() +set(temp "${temp} NULL\n};\n\n") +message(STATUS "Generating lmpinstalledpkgs.h...") +file(WRITE "${LAMMPS_STYLE_HEADERS_DIR}/lmpinstalledpkgs.h.tmp" "${temp}" ) +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LAMMPS_STYLE_HEADERS_DIR}/lmpinstalledpkgs.h.tmp" "${LAMMPS_STYLE_HEADERS_DIR}/lmpinstalledpkgs.h") + ########################################### # Actually add executable and lib to build ############################################ From 2fe0eabc0988feda90ac85ef1331dcd83ad028ac Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 22 Jun 2018 01:52:55 -0700 Subject: [PATCH 166/675] Intel Package: Bug fix when using LRT with minimize. Bug fix for virial calculation when using GNU compilers. Most of framework for adding hybrid support is now in place. --- src/USER-INTEL/fix_intel.h | 3 +- src/USER-INTEL/intel_preprocess.h | 53 +++- src/USER-INTEL/npair_full_bin_ghost_intel.cpp | 195 ++++++------ src/USER-INTEL/npair_intel.cpp | 287 ++++++++++-------- src/USER-INTEL/pair_buck_coul_cut_intel.cpp | 10 +- src/USER-INTEL/pair_buck_coul_long_intel.cpp | 10 +- src/USER-INTEL/pair_buck_intel.cpp | 10 +- src/USER-INTEL/pair_dpd_intel.cpp | 9 +- src/USER-INTEL/pair_eam_intel.cpp | 29 +- src/USER-INTEL/pair_gayberne_intel.cpp | 28 +- .../pair_lj_charmm_coul_charmm_intel.cpp | 11 +- .../pair_lj_charmm_coul_long_intel.cpp | 11 +- .../pair_lj_cut_coul_long_intel.cpp | 10 +- src/USER-INTEL/pair_lj_cut_intel.cpp | 10 +- src/USER-INTEL/pair_sw_intel.cpp | 44 +-- src/USER-INTEL/pair_tersoff_intel.cpp | 15 +- src/USER-INTEL/verlet_lrt_intel.cpp | 2 +- src/USER-INTEL/verlet_lrt_intel.h | 22 +- 18 files changed, 450 insertions(+), 309 deletions(-) diff --git a/src/USER-INTEL/fix_intel.h b/src/USER-INTEL/fix_intel.h index d7093e79bb..79fb23ab3d 100644 --- a/src/USER-INTEL/fix_intel.h +++ b/src/USER-INTEL/fix_intel.h @@ -82,7 +82,8 @@ class FixIntel : public Fix { } inline void set_reduce_flag() { if (_nthreads > 1) _need_reduce = 1; } inline int lrt() { - if (force->kspace_match("pppm/intel", 0)) return _lrt; + if (force->kspace_match("pppm/intel", 0) && update->whichflag == 1) + return _lrt; else return 0; } inline int pppm_table() { diff --git a/src/USER-INTEL/intel_preprocess.h b/src/USER-INTEL/intel_preprocess.h index 29cc45f755..2f1b02a49f 100644 --- a/src/USER-INTEL/intel_preprocess.h +++ b/src/USER-INTEL/intel_preprocess.h @@ -134,7 +134,21 @@ enum {TIME_PACK, TIME_HOST_NEIGHBOR, TIME_HOST_PAIR, TIME_OFFLOAD_NEIGHBOR, #define INTEL_HTHREADS 2 #endif -#define IP_PRE_get_stride(stride, n, datasize, torque) \ +#if INTEL_DATA_ALIGN > 1 + +#define IP_PRE_edge_align(n, esize) \ + { \ + const int pad_mask = ~static_cast(INTEL_DATA_ALIGN/esize-1); \ + n = (n + INTEL_DATA_ALIGN / esize - 1) & pad_mask; \ + } + +#else + +#define IP_PRE_edge_align(n, esize) \ + +#endif + +#define IP_PRE_get_stride(stride, n, datasize, torque) \ { \ int blength = n; \ if (torque) blength *= 2; \ @@ -303,7 +317,7 @@ enum {TIME_PACK, TIME_HOST_NEIGHBOR, TIME_HOST_PAIR, TIME_OFFLOAD_NEIGHBOR, { \ tid = 0; \ ifrom = 0; \ - ip = 1; \ + ip = vecsize; \ ito = inum; \ } @@ -316,7 +330,7 @@ enum {TIME_PACK, TIME_HOST_NEIGHBOR, TIME_HOST_PAIR, TIME_OFFLOAD_NEIGHBOR, acc_t *f_scalar = &f_start[0].x; \ flt_t *x_scalar = &pos[minlocal].x; \ int f_stride4 = f_stride * 4; \ - _alignvar(acc_t ovv[INTEL_COMPILE_WIDTH],64); \ + _alignvar(acc_t ovv[16],64); \ int vwidth; \ if (sizeof(acc_t) == sizeof(double)) \ vwidth = INTEL_COMPILE_WIDTH/2; \ @@ -516,6 +530,22 @@ inline double MIC_Wtime() { return time; } +#define IP_PRE_neighbor_pad(jnum, offload) \ +{ \ + const int opad_mask = ~static_cast(INTEL_MIC_NBOR_PAD * \ + sizeof(float) / \ + sizeof(flt_t) - 1); \ + const int pad_mask = ~static_cast(INTEL_NBOR_PAD * \ + sizeof(float) / \ + sizeof(flt_t) - 1); \ + if (offload && INTEL_MIC_NBOR_PAD > 1) \ + jnum = (jnum + INTEL_MIC_NBOR_PAD * sizeof(float) / \ + sizeof(flt_t) - 1) & opad_mask; \ + else if (INTEL_NBOR_PAD > 1) \ + jnum = (jnum + INTEL_NBOR_PAD * sizeof(float) / \ + sizeof(flt_t) - 1) & pad_mask; \ +} + #define IP_PRE_pack_separate_buffers(fix, buffers, ago, offload, \ nlocal, nall) \ { \ @@ -644,6 +674,23 @@ inline double MIC_Wtime() { #else +#if INTEL_NBOR_PAD > 1 + +#define IP_PRE_neighbor_pad(jnum, offload) \ +{ \ + const int pad_mask = ~static_cast(INTEL_NBOR_PAD * \ + sizeof(float) / \ + sizeof(flt_t) - 1); \ + jnum = (jnum + INTEL_NBOR_PAD * sizeof(float) / \ + sizeof(flt_t) - 1) & pad_mask; \ +} + +#else + +#define IP_PRE_neighbor_pad(jnum, offload) + +#endif + #define MIC_Wtime MPI_Wtime #define IP_PRE_pack_separate_buffers(fix, buffers, ago, offload, \ nlocal, nall) diff --git a/src/USER-INTEL/npair_full_bin_ghost_intel.cpp b/src/USER-INTEL/npair_full_bin_ghost_intel.cpp index 24d5076c34..ae961e84b5 100644 --- a/src/USER-INTEL/npair_full_bin_ghost_intel.cpp +++ b/src/USER-INTEL/npair_full_bin_ghost_intel.cpp @@ -112,7 +112,6 @@ void NPairFullBinGhostIntel::fbi(const int offload, NeighList * list, if (pend-pstart == 0) return; const int nall = atom->nlocal + atom->nghost; - int pad = 1; int nall_t = nall; const int aend = nall; @@ -207,6 +206,17 @@ void NPairFullBinGhostIntel::fbi(const int offload, NeighList * list, const int mbinz = this->mbinz; const int * const stencilxyz = &this->stencilxyz[0][0]; + int sb = 1; + if (special_flag[1] == 0) { + sb = 2; + if (special_flag[2] == 0) { + sb = 3; + if (special_flag[3] == 0) + sb = 4; + } + } + const int special_bound = sb; + #ifdef _LMP_INTEL_OFFLOAD const int * _noalias const binhead = this->binhead; const int * _noalias const bins = this->bins; @@ -230,7 +240,7 @@ void NPairFullBinGhostIntel::fbi(const int offload, NeighList * list, in(ncachex,ncachey,ncachez,ncachej:length(0) alloc_if(0) free_if(0)) \ in(ncachejtype,ncachetag:length(0) alloc_if(0) free_if(0)) \ in(ncache_stride,maxnbors,nthreads,maxspecial,nstencil,e_nall,offload) \ - in(separate_buffers,aend,nlocal,molecular,ntypes,mbinx,mbiny) \ + in(separate_buffers,aend,nlocal,molecular,ntypes,mbinx,mbiny,special_bound)\ in(mbinz,xperiodic,yperiodic,zperiodic,xprd_half,yprd_half,zprd_half) \ in(stencilxyz:length(3*nstencil)) \ out(overflow:length(5) alloc_if(0) free_if(0)) \ @@ -287,8 +297,6 @@ void NPairFullBinGhostIntel::fbi(const int offload, NeighList * list, int e_ito = ito; const int list_size = (e_ito + tid * 2 + 2) * maxnbors; - int which; - int pack_offset = maxnbors; int ct = (ifrom + tid * 2) * maxnbors; int *neighptr = firstneigh + ct; @@ -418,41 +426,109 @@ void NPairFullBinGhostIntel::fbi(const int offload, NeighList * list, } } // for u + if (molecular && i < nlocal) { + int alln = n; + n = 0; + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #ifdef LMP_INTEL_NBOR_COMPAT + #pragma ivdep + #else + #pragma simd + #endif + #endif + for (int u = 0; u < alln; u++) { + int which; + int addme = 1; + int j = neighptr[u]; + if (need_ic && j < 0) { + which = 0; + j = -j - 1; + } else + ofind_special(which, special, nspecial, i, tag[j]); + if (which) { + j = j ^ (which << SBBITS); + if (which < special_bound) addme = 0; + } + #ifdef LMP_INTEL_NBOR_COMPAT + if (addme) neighptr2[n++] = j; + #else + neighptr2[n++] = j; + #endif + } + alln = n2; + n2 = maxnbors * 2; + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #ifdef LMP_INTEL_NBOR_COMPAT + #pragma ivdep + #else + #pragma simd + #endif + #endif + for (int u = n2; u < alln; u++) { + int which; + int addme = 1; + int j = neighptr[u]; + if (need_ic && j < 0) { + which = 0; + j = -j - 1; + } else + ofind_special(which, special, nspecial, i, tag[j]); + if (which) { + j = j ^ (which << SBBITS); + if (which < special_bound) addme = 0; + } + #ifdef LMP_INTEL_NBOR_COMPAT + if (addme) neighptr2[n2++] = j; + #else + neighptr2[n2++] = j; + #endif + } + } + #ifndef _LMP_INTEL_OFFLOAD if (exclude) { int alln = n; n = maxnbors; - for (int u = pack_offset; u < alln; u++) { - const int j = neighptr[u]; - int pj = j; - if (need_ic) - if (pj < 0) pj = -j - 1; - const int jtype = x[pj].w; - if (exclusion(i,pj,itype,jtype,mask,molecule)) continue; - neighptr[n++] = j; + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma ivdep + #endif + for (int u = n; u < alln; u++) { + int addme = 1; + const int js = neighptr[u]; + const int j = js & NEIGHMASK; + const int jtype = x[j].w; + if (exclusion(i,j,itype,jtype,mask,molecule)) addme = 0; + if (addme) neighptr2[n++] = js; } alln = n2; n2 = maxnbors * 2; + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma ivdep + #endif for (int u = n2; u < alln; u++) { - const int j = neighptr[u]; - int pj = j; - if (need_ic) - if (pj < 0) pj = -j - 1; - const int jtype = x[pj].w; - if (exclusion(i,pj,itype,jtype,mask,molecule)) continue; - neighptr[n2++] = j; + int addme = 1; + const int js = neighptr[u]; + const int j = js & NEIGHMASK; + const int jtype = x[j].w; + if (exclusion(i,j,itype,jtype,mask,molecule)) addme = 0; + if (addme) neighptr2[n2++] = js; } } #endif + int ns = n - maxnbors; int alln = n; atombin[i] = ns; n = 0; for (int u = maxnbors; u < alln; u++) - neighptr[n++] = neighptr[u]; + neighptr[n++] = neighptr2[u]; ns += n2 - maxnbors * 2; for (int u = maxnbors * 2; u < n2; u++) - neighptr[n++] = neighptr[u]; + neighptr[n++] = neighptr2[u]; if (ns > maxnbors) *overflow = 1; ilist[i] = i; @@ -460,9 +536,7 @@ void NPairFullBinGhostIntel::fbi(const int offload, NeighList * list, numneigh[i] = ns; ct += ns; - const int alignb = (INTEL_DATA_ALIGN / sizeof(int)); - const int edge = ct & (alignb - 1); - if (edge) ct += alignb - edge; + IP_PRE_edge_align(ct, sizeof(int)); neighptr = firstneigh + ct; if (ct + obound > list_size) { if (i < ito - 1) { @@ -477,84 +551,11 @@ void NPairFullBinGhostIntel::fbi(const int offload, NeighList * list, numneigh[i] = 0; #ifdef _LMP_INTEL_OFFLOAD - int ghost_offset = 0, nall_offset = e_nall; if (separate_buffers) { - for (int i = ifrom; i < ito; ++i) { - int * _noalias jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; - #if __INTEL_COMPILER+0 > 1499 - #pragma vector aligned - #pragma simd - #endif - for (int jj = 0; jj < jnum; jj++) { - int j = jlist[jj]; - if (need_ic && j < 0) j = -j - 1; - } - } - overflow[LMP_LOCAL_MIN] = 0; overflow[LMP_LOCAL_MAX] = nlocal - 1; overflow[LMP_GHOST_MIN] = nlocal; overflow[LMP_GHOST_MAX] = e_nall - 1; - - int nghost = overflow[LMP_GHOST_MAX] + 1 - overflow[LMP_GHOST_MIN]; - if (nghost < 0) nghost = 0; - if (offload) { - ghost_offset = overflow[LMP_GHOST_MIN] - overflow[LMP_LOCAL_MAX] - 1; - nall_offset = overflow[LMP_LOCAL_MAX] + 1 + nghost; - } else { - ghost_offset = overflow[LMP_GHOST_MIN] - nlocal; - nall_offset = nlocal + nghost; - } - } // if separate_buffers - #endif - - if (molecular) { - int ito_m = ito; - if (ito >= nlocal) ito_m = nlocal; - for (int i = ifrom; i < ito_m; ++i) { - int * _noalias jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; - - #if defined(LMP_SIMD_COMPILER) - #pragma vector aligned - #pragma simd - #endif - for (int jj = 0; jj < jnum; jj++) { - const int j = jlist[jj]; - if (need_ic && j < 0) { - which = 0; - jlist[jj] = -j - 1; - } else - ofind_special(which, special, nspecial, i, tag[j]); - #ifdef _LMP_INTEL_OFFLOAD - if (j >= nlocal) { - if (j == e_nall) - jlist[jj] = nall_offset; - else if (which) - jlist[jj] = (j-ghost_offset) ^ (which << SBBITS); - else jlist[jj]-=ghost_offset; - } else - #endif - if (which) jlist[jj] = j ^ (which << SBBITS); - } - } // for i - } // if molecular - #ifdef _LMP_INTEL_OFFLOAD - else if (separate_buffers) { - for (int i = ifrom; i < ito; ++i) { - int * _noalias jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; - int jj = 0; - #pragma vector aligned - #pragma simd - for (jj = 0; jj < jnum; jj++) { - if (jlist[jj] >= nlocal) { - if (jlist[jj] == e_nall) jlist[jj] = nall_offset; - else jlist[jj] -= ghost_offset; - } - } - } } #endif } // end omp diff --git a/src/USER-INTEL/npair_intel.cpp b/src/USER-INTEL/npair_intel.cpp index d3d2745aee..355c8db199 100644 --- a/src/USER-INTEL/npair_intel.cpp +++ b/src/USER-INTEL/npair_intel.cpp @@ -62,19 +62,12 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, if (aend-astart == 0) return; const int nall = atom->nlocal + atom->nghost; - int pad = 1; int nall_t = nall; #ifdef _LMP_INTEL_OFFLOAD if (offload_noghost && offload) nall_t = atom->nlocal; - if (THREE == 0 && offload) { - if (INTEL_MIC_NBOR_PAD > 1) - pad = INTEL_MIC_NBOR_PAD * sizeof(float) / sizeof(flt_t); - } else #endif - if (THREE == 0 && INTEL_NBOR_PAD > 1) - pad = INTEL_NBOR_PAD * sizeof(float) / sizeof(flt_t); - const int pad_width = pad; + const int pack_width = _fix->nbor_pack_width(); const ATOM_T * _noalias const x = buffers->get_x(); @@ -150,6 +143,17 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, int * _noalias const ncachetag = buffers->get_ncachetag(); const int ncache_stride = buffers->ncache_stride(); + int sb = 1; + if (special_flag[1] == 0) { + sb = 2; + if (special_flag[2] == 0) { + sb = 3; + if (special_flag[3] == 0) + sb = 4; + } + } + const int special_bound = sb; + #ifdef _LMP_INTEL_OFFLOAD const int * _noalias const binhead = this->binhead; const int * _noalias const bins = this->bins; @@ -172,9 +176,9 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, in(ncachex,ncachey,ncachez,ncachej:length(0) alloc_if(0) free_if(0)) \ in(ncachejtype,ncachetag:length(0) alloc_if(0) free_if(0)) \ in(ncache_stride,maxnbors,nthreads,maxspecial,nstencil,e_nall,offload) \ - in(pad_width,offload_end,separate_buffers,astart,aend,nlocal,molecular) \ + in(offload_end,separate_buffers,astart,aend,nlocal,molecular) \ in(ntypes,xperiodic,yperiodic,zperiodic,xprd_half,yprd_half,zprd_half) \ - in(pack_width) \ + in(pack_width,special_bound) \ out(overflow:length(5) alloc_if(0) free_if(0)) \ out(timer_compute:length(1) alloc_if(0) free_if(0)) \ signal(tag) @@ -226,19 +230,25 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, ifrom += astart; ito += astart; int e_ito = ito; + #ifdef LMP_INTEL_3BODY_FAST if (THREE && ito == num) { int imod = ito & (pack_width - 1); if (imod) e_ito += pack_width - imod; } + #endif const int list_size = (e_ito + tid * 2 + 2) * maxnbors; - int which; - - int pack_offset = maxnbors; - if (THREE) pack_offset *= pack_width; + #ifdef LMP_INTEL_3BODY_FAST + const int pack_offset = maxnbors * pack_width; + const int obound = pack_offset + maxnbors * 2; + #else + const int pack_offset = 0; + const int obound = maxnbors * 3; + #endif int ct = (ifrom + tid * 2) * maxnbors; int *neighptr = firstneigh + ct; - const int obound = pack_offset + maxnbors * 2; + int *neighptr2; + if (THREE) neighptr2 = neighptr; const int toffs = tid * ncache_stride; flt_t * _noalias const tx = ncachex + toffs; @@ -256,10 +266,12 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, // loop over all atoms in other bins in stencil, store every pair int istart, icount, ncount, oldbin = -9999999, lane, max_chunk; + #ifdef LMP_INTEL_3BODY_FAST if (THREE) { lane = 0; max_chunk = 0; } + #endif for (int i = ifrom; i < ito; i++) { const flt_t xtmp = x[i].x; const flt_t ytmp = x[i].y; @@ -298,9 +310,7 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, if (FULL == 0 || TRI == 1) { icount = 0; istart = ncount; - const int alignb = INTEL_DATA_ALIGN / sizeof(int); - int nedge = istart & (alignb - 1); - if (nedge) istart + (alignb - nedge); + IP_PRE_edge_align(istart, sizeof(int)); itx = tx + istart; ity = ty + istart; itz = tz + istart; @@ -383,11 +393,12 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, // ---------------------- Loop over other bins - int n2, *neighptr2; + int n2; if (THREE) { + #ifdef LMP_INTEL_3BODY_FAST n = pack_offset; + #endif n2 = pack_offset + maxnbors; - neighptr2 = neighptr; } #if defined(LMP_SIMD_COMPILER) #pragma vector aligned @@ -461,49 +472,133 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, } } // for u + if (molecular) { + if (!THREE) neighptr2 = neighptr; + int alln = n; + + n = pack_offset; + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #ifdef LMP_INTEL_NBOR_COMPAT + #pragma ivdep + #else + #pragma simd + #endif + #endif + for (int u = n; u < alln; u++) { + int which; + int addme = 1; + int j = neighptr[u]; + if (need_ic && j < 0) { + which = 0; + j = -j - 1; + } else + ofind_special(which, special, nspecial, i, tag[j]); + + if (which) { + j = j ^ (which << SBBITS); + if (which < special_bound) addme = 0; + } + #ifdef LMP_INTEL_NBOR_COMPAT + if (addme) neighptr2[n++] = j; + #else + neighptr2[n++]=j; + #endif + } + + if (THREE) { + alln = n2; + n2 = pack_offset + maxnbors; + + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #ifdef LMP_INTEL_NBOR_COMPAT + #pragma ivdep + #else + #pragma simd + #endif + #endif + for (int u = n2; u < alln; u++) { + int which; + int addme = 1; + int j = neighptr[u]; + if (need_ic && j < 0) { + which = 0; + j = -j - 1; + } else + ofind_special(which, special, nspecial, i, tag[j]); + if (which) { + j = j ^ (which << SBBITS); + if (which < special_bound) addme = 0; + } + #ifdef LMP_INTEL_NBOR_COMPAT + if (addme) neighptr2[n2++] = j; + #else + neighptr2[n2++]=j; + #endif + } + } + } + #ifndef _LMP_INTEL_OFFLOAD if (exclude) { + neighptr2 = neighptr; int alln = n; - if (THREE) n = pack_offset; - else n = 0; - for (int u = pack_offset; u < alln; u++) { - const int j = neighptr[u]; - int pj = j; - if (need_ic) - if (pj < 0) pj = -j - 1; - const int jtype = x[pj].w; - if (exclusion(i,pj,itype,jtype,mask,molecule)) continue; - neighptr[n++] = j; + n = pack_offset; + + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma ivdep + #endif + for (int u = n; u < alln; u++) { + int addme = 1; + const int js = neighptr[u]; + const int j = js & NEIGHMASK; + const int jtype = x[j].w; + if (exclusion(i,j,itype,jtype,mask,molecule)) addme = 0; + if (addme) neighptr2[n++] = js; } if (THREE) { alln = n2; n2 = pack_offset + maxnbors; - for (int u = pack_offset + maxnbors; u < alln; u++) { - const int j = neighptr[u]; - int pj = j; - if (need_ic) - if (pj < 0) pj = -j - 1; - const int jtype = x[pj].w; - if (exclusion(i,pj,itype,jtype,mask,molecule)) continue; - neighptr[n2++] = j; + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma ivdep + #endif + for (int u = n2; u < alln; u++) { + int addme = 1; + const int js = neighptr[u]; + const int j = js & NEIGHMASK; + const int jtype = x[j].w; + if (exclusion(i,j,itype,jtype,mask,molecule)) addme = 0; + if (addme) neighptr2[n2++] = js; } } } #endif + int ns; if (THREE) { int alln = n; ns = n - pack_offset; atombin[i] = ns; + ns += n2 - pack_offset - maxnbors; + + #ifdef LMP_INTEL_3BODY_FAST n = lane; for (int u = pack_offset; u < alln; u++) { - neighptr[n] = neighptr[u]; + neighptr[n] = neighptr2[u]; n += pack_width; } - ns += n2 - pack_offset - maxnbors; + #endif + for (int u = pack_offset + maxnbors; u < n2; u++) { - neighptr[n] = neighptr[u]; + #ifdef LMP_INTEL_3BODY_FAST + neighptr[n] = neighptr2[u]; n += pack_width; + #else + neighptr[n++] = neighptr2[u]; + #endif } if (ns > maxnbors) *overflow = 1; } else @@ -512,34 +607,33 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, ilist[i] = i; cnumneigh[i] = ct; if (THREE) { + #ifdef LMP_INTEL_3BODY_FAST cnumneigh[i] += lane; + #endif numneigh[i] = ns; } else { - int edge = n & (pad_width - 1); - if (edge) { - const int pad_end = n + (pad_width - edge); - #if defined(LMP_SIMD_COMPILER) - #pragma vector aligned - #pragma loop_count min=1, max=INTEL_COMPILE_WIDTH-1, \ - avg=INTEL_COMPILE_WIDTH/2 - #endif - for ( ; n < pad_end; n++) - neighptr[n] = e_nall; - } numneigh[i] = n; + int pad_end = n; + IP_PRE_neighbor_pad(pad_end, offload); + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma loop_count min=1, max=INTEL_COMPILE_WIDTH-1, \ + avg=INTEL_COMPILE_WIDTH/2 + #endif + for ( ; n < pad_end; n++) + neighptr[n] = e_nall; } + #ifdef LMP_INTEL_3BODY_FAST if (THREE) { if (ns > max_chunk) max_chunk = ns; lane++; if (lane == pack_width) { ct += max_chunk * pack_width; - const int alignb = (INTEL_DATA_ALIGN / sizeof(int)); - const int edge = ct & (alignb - 1); - if (edge) ct += alignb - edge; + IP_PRE_edge_align(ct, sizeof(int)); neighptr = firstneigh + ct; + neighptr2 = neighptr; max_chunk = 0; - pack_offset = maxnbors * pack_width; lane = 0; if (ct + obound > list_size) { if (i < ito - 1) { @@ -548,12 +642,13 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, } } } - } else { + } else + #endif + { ct += n; - const int alignb = (INTEL_DATA_ALIGN / sizeof(int)); - const int edge = ct & (alignb - 1); - if (edge) ct += alignb - edge; + //IP_PRE_edge_align(ct, sizeof(int)); neighptr = firstneigh + ct; + if (THREE) neighptr2 = neighptr; if (ct + obound > list_size) { if (i < ito - 1) { *overflow = 1; @@ -573,14 +668,14 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, if (separate_buffers) { for (int i = ifrom; i < ito; ++i) { int * _noalias jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + int jnum = numneigh[i]; + if (!THREE) IP_PRE_neighbor_pad(jnum, offload); #if __INTEL_COMPILER+0 > 1499 #pragma vector aligned #pragma simd reduction(max:vlmax,vgmax) reduction(min:vlmin, vgmin) #endif for (int jj = 0; jj < jnum; jj++) { - int j = jlist[jj]; - if (need_ic && j < 0) j = -j - 1; + const int j = jlist[jj] & NEIGHMASK; if (j < nlocal) { if (j < vlmin) vlmin = j; if (j > vlmax) vlmax = j; @@ -615,72 +710,20 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, ghost_offset = overflow[LMP_GHOST_MIN] - nlocal; nall_offset = nlocal + nghost; } - } // if separate_buffers - #endif - if (molecular) { for (int i = ifrom; i < ito; ++i) { int * _noalias jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; - - if (THREE) { - const int trip = jnum * pack_width; - for (int jj = 0; jj < trip; jj+=pack_width) { - const int j = jlist[jj]; - if (need_ic && j < 0) { - which = 0; - jlist[jj] = -j - 1; - } else - ofind_special(which, special, nspecial, i, tag[j]); - #ifdef _LMP_INTEL_OFFLOAD - if (j >= nlocal) { - if (j == e_nall) - jlist[jj] = nall_offset; - else if (which) - jlist[jj] = (j-ghost_offset) ^ (which << SBBITS); - else jlist[jj]-=ghost_offset; - } else - #endif - if (which) jlist[jj] = j ^ (which << SBBITS); - } - } else { - #if defined(LMP_SIMD_COMPILER) - #pragma vector aligned - #pragma simd - #endif - for (int jj = 0; jj < jnum; jj++) { - const int j = jlist[jj]; - if (need_ic && j < 0) { - which = 0; - jlist[jj] = -j - 1; - } else - ofind_special(which, special, nspecial, i, tag[j]); - #ifdef _LMP_INTEL_OFFLOAD - if (j >= nlocal) { - if (j == e_nall) - jlist[jj] = nall_offset; - else if (which) - jlist[jj] = (j-ghost_offset) ^ (which << SBBITS); - else jlist[jj]-=ghost_offset; - } else - #endif - if (which) jlist[jj] = j ^ (which << SBBITS); - } - } - } // for i - } // if molecular - #ifdef _LMP_INTEL_OFFLOAD - else if (separate_buffers) { - for (int i = ifrom; i < ito; ++i) { - int * _noalias jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + int jnum = numneigh[i]; + if (!THREE) IP_PRE_neighbor_pad(jnum, offload); int jj = 0; #pragma vector aligned #pragma simd for (jj = 0; jj < jnum; jj++) { - if (jlist[jj] >= nlocal) { - if (jlist[jj] == e_nall) jlist[jj] = nall_offset; - else jlist[jj] -= ghost_offset; + const int which = jlist[jj] >> SBBITS & 3; + const int j = jlist[jj] & NEIGHMASK; + if (j >= nlocal) { + if (j == e_nall) jlist[jj] = nall_offset; + else jlist[jj] = (j - ghost_offset) ^ (which << SBBITS); } } } diff --git a/src/USER-INTEL/pair_buck_coul_cut_intel.cpp b/src/USER-INTEL/pair_buck_coul_cut_intel.cpp index 71aad95bc5..39fa9014db 100644 --- a/src/USER-INTEL/pair_buck_coul_cut_intel.cpp +++ b/src/USER-INTEL/pair_buck_coul_cut_intel.cpp @@ -142,6 +142,7 @@ void PairBuckCoulCutIntel::eval(const int offload, const int vflag, ATOM_T * _noalias const x = buffers->get_x(offload); flt_t * _noalias const q = buffers->get_q(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const firstneigh = buffers->firstneigh(list); @@ -185,6 +186,7 @@ void PairBuckCoulCutIntel::eval(const int offload, const int vflag, in(numneigh:length(0) alloc_if(0) free_if(0)) \ in(x:length(x_size) alloc_if(0) free_if(0)) \ in(q:length(q_size) alloc_if(0) free_if(0)) \ + in(ilist:length(0) alloc_if(0) free_if(0)) \ in(overflow:length(0) alloc_if(0) free_if(0)) \ in(astart,nthreads,qqrd2e,inum,nall,ntypes,vflag,eatom) \ in(f_stride,nlocal,minlocal,separate_flag,offload) \ @@ -221,15 +223,17 @@ void PairBuckCoulCutIntel::eval(const int offload, const int vflag, FORCE_T * _noalias const f = f_start + foff; if (NEWTON_PAIR) memset(f + minlocal, 0, f_stride * sizeof(FORCE_T)); - for (int i = iifrom; i < iito; i += iip) { + for (int ii = iifrom; ii < iito; ii += iip) { + const int i = ilist[ii]; const int itype = x[i].w; const int ptr_off = itype * ntypes; const C_FORCE_T * _noalias const c_forcei = c_force + ptr_off; const C_ENERGY_T * _noalias const c_energyi = c_energy + ptr_off; const C_CUT_T * _noalias const c_cuti = c_cut + ptr_off; - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); acc_t fxtmp,fytmp,fztmp,fwtmp; acc_t sevdwl, secoul, sv0, sv1, sv2, sv3, sv4, sv5; diff --git a/src/USER-INTEL/pair_buck_coul_long_intel.cpp b/src/USER-INTEL/pair_buck_coul_long_intel.cpp index bba8a7b5e7..fe4d408a13 100644 --- a/src/USER-INTEL/pair_buck_coul_long_intel.cpp +++ b/src/USER-INTEL/pair_buck_coul_long_intel.cpp @@ -142,6 +142,7 @@ void PairBuckCoulLongIntel::eval(const int offload, const int vflag, ATOM_T * _noalias const x = buffers->get_x(offload); flt_t * _noalias const q = buffers->get_q(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const firstneigh = buffers->firstneigh(list); @@ -209,6 +210,7 @@ void PairBuckCoulLongIntel::eval(const int offload, const int vflag, in(numneigh:length(0) alloc_if(0) free_if(0)) \ in(x:length(x_size) alloc_if(0) free_if(0)) \ in(q:length(q_size) alloc_if(0) free_if(0)) \ + in(ilist:length(0) alloc_if(0) free_if(0)) \ in(overflow:length(0) alloc_if(0) free_if(0)) \ in(ccachex,ccachey,ccachez,ccachew:length(0) alloc_if(0) free_if(0)) \ in(ccachei,ccachej:length(0) alloc_if(0) free_if(0)) \ @@ -255,15 +257,17 @@ void PairBuckCoulLongIntel::eval(const int offload, const int vflag, int * _noalias const tj = ccachei + toffs; int * _noalias const tjtype = ccachej + toffs; - for (int i = iifrom; i < iito; i += iip) { + for (int ii = iifrom; ii < iito; ii += iip) { + const int i = ilist[ii]; const int itype = x[i].w; const int ptr_off = itype * ntypes; const C_FORCE_T * _noalias const c_forcei = c_force + ptr_off; const C_ENERGY_T * _noalias const c_energyi = c_energy + ptr_off; const flt_t * _noalias const rho_invi = rho_inv + ptr_off; - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); acc_t fxtmp,fytmp,fztmp,fwtmp; acc_t sevdwl, secoul, sv0, sv1, sv2, sv3, sv4, sv5; diff --git a/src/USER-INTEL/pair_buck_intel.cpp b/src/USER-INTEL/pair_buck_intel.cpp index f5dde26393..8ce3d121e0 100644 --- a/src/USER-INTEL/pair_buck_intel.cpp +++ b/src/USER-INTEL/pair_buck_intel.cpp @@ -133,6 +133,7 @@ void PairBuckIntel::eval(const int offload, const int vflag, ATOM_T * _noalias const x = buffers->get_x(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const firstneigh = buffers->firstneigh(list); @@ -169,6 +170,7 @@ void PairBuckIntel::eval(const int offload, const int vflag, in(cnumneigh:length(0) alloc_if(0) free_if(0)) \ in(numneigh:length(0) alloc_if(0) free_if(0)) \ in(x:length(x_size) alloc_if(0) free_if(0)) \ + in(ilist:length(0) alloc_if(0) free_if(0)) \ in(overflow:length(0) alloc_if(0) free_if(0)) \ in(astart,nthreads,inum,nall,ntypes,vflag,eatom) \ in(f_stride,nlocal,minlocal,separate_flag,offload) \ @@ -205,14 +207,16 @@ void PairBuckIntel::eval(const int offload, const int vflag, FORCE_T * _noalias const f = f_start + foff; if (NEWTON_PAIR) memset(f + minlocal, 0, f_stride * sizeof(FORCE_T)); - for (int i = iifrom; i < iito; i += iip) { + for (int ii = iifrom; ii < iito; ii += iip) { + const int i = ilist[ii]; const int itype = x[i].w; const int ptr_off = itype * ntypes; const C_FORCE_T * _noalias const c_forcei = c_force + ptr_off; const C_ENERGY_T * _noalias const c_energyi = c_energy + ptr_off; - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); acc_t fxtmp,fytmp,fztmp,fwtmp; acc_t sevdwl, sv0, sv1, sv2, sv3, sv4, sv5; diff --git a/src/USER-INTEL/pair_dpd_intel.cpp b/src/USER-INTEL/pair_dpd_intel.cpp index cb8c06cacc..7c33ed21d3 100644 --- a/src/USER-INTEL/pair_dpd_intel.cpp +++ b/src/USER-INTEL/pair_dpd_intel.cpp @@ -171,6 +171,7 @@ void PairDPDIntel::eval(const int offload, const int vflag, lmp_vt *v = (lmp_vt *)atom->v[0]; const flt_t dtinvsqrt = 1.0/sqrt(update->dt); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const firstneigh = buffers->firstneigh(list); @@ -237,7 +238,8 @@ void PairDPDIntel::eval(const int offload, const int vflag, gamma = param[3].gamma; sigma = param[3].sigma; } - for (int i = iifrom; i < iito; i += iip) { + for (int ii = iifrom; ii < iito; ii += iip) { + const int i = ilist[ii]; int itype, ptr_off; const FC_PACKED1_T * _noalias parami; if (!ONETYPE) { @@ -246,8 +248,9 @@ void PairDPDIntel::eval(const int offload, const int vflag, parami = param + ptr_off; } - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); acc_t fxtmp, fytmp, fztmp, fwtmp; acc_t sevdwl, sv0, sv1, sv2, sv3, sv4, sv5; diff --git a/src/USER-INTEL/pair_eam_intel.cpp b/src/USER-INTEL/pair_eam_intel.cpp index 94799cdba2..201277e68d 100644 --- a/src/USER-INTEL/pair_eam_intel.cpp +++ b/src/USER-INTEL/pair_eam_intel.cpp @@ -164,8 +164,7 @@ void PairEAMIntel::eval(const int offload, const int vflag, memory->destroy(rho); memory->destroy(fp); nmax = atom->nmax; - int edge = (nmax * sizeof(acc_t)) % INTEL_DATA_ALIGN; - if (edge) nmax += (INTEL_DATA_ALIGN - edge) / sizeof(acc_t); + IP_PRE_edge_align(nmax, sizeof(acc_t)); if (NEWTON_PAIR) memory->create(rho,nmax*comm->nthreads,"pair:rho"); else @@ -192,6 +191,7 @@ void PairEAMIntel::eval(const int offload, const int vflag, ATOM_T * _noalias const x = buffers->get_x(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const firstneigh = buffers->firstneigh(list); @@ -286,14 +286,16 @@ void PairEAMIntel::eval(const int offload, const int vflag, rhor_joff = rhor_ioff + _onetype * jstride; frho_ioff = fstride * _onetype; } - for (int i = iifrom; i < iito; ++i) { + for (int ii = iifrom; ii < iito; ++ii) { + const int i = ilist[ii]; int itype, rhor_ioff; if (!ONETYPE) { itype = x[i].w; rhor_ioff = istride * itype; } - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); const flt_t xtmp = x[i].x; const flt_t ytmp = x[i].y; @@ -411,7 +413,8 @@ void PairEAMIntel::eval(const int offload, const int vflag, #pragma vector aligned #pragma simd reduction(+:tevdwl) #endif - for (int i = iifrom; i < iito; ++i) { + for (int ii = iifrom; ii < iito; ++ii) { + const int i = ilist[ii]; int itype; if (!ONETYPE) itype = x[i].w; flt_t p = rho[i]*frdrho + (flt_t)1.0; @@ -457,7 +460,8 @@ void PairEAMIntel::eval(const int offload, const int vflag, // compute forces on each atom // loop over neighbors of my atoms - for (int i = iifrom; i < iito; ++i) { + for (int ii = iifrom; ii < iito; ++ii) { + const int i = ilist[ii]; int itype, rhor_ioff; const flt_t * _noalias scale_fi; if (!ONETYPE) { @@ -465,8 +469,9 @@ void PairEAMIntel::eval(const int offload, const int vflag, rhor_ioff = istride * itype; scale_fi = scale_f + itype*ntypes; } - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); acc_t fxtmp, fytmp, fztmp, fwtmp; acc_t sevdwl, sv0, sv1, sv2, sv3, sv4, sv5; @@ -761,14 +766,12 @@ void PairEAMIntel::ForceConst::set_ntypes(const int ntypes, if (ntypes > 0) { _cop = cop; _nr = nr + 1; - int edge = (_nr * sizeof(flt_t)) % INTEL_DATA_ALIGN; - if (edge) _nr += (INTEL_DATA_ALIGN - edge) / sizeof(flt_t); + IP_PRE_edge_align(_nr, sizeof(flt_t)); memory->create(rhor_spline_f,ntypes*ntypes*_nr,"fc.rhor_spline_f"); memory->create(rhor_spline_e,ntypes*ntypes*_nr,"fc.rhor_spline_e"); memory->create(z2r_spline_t,ntypes*ntypes*_nr,"fc.z2r_spline_t"); _nrho = nrho + 1; - edge = (_nrho * sizeof(flt_t)) % INTEL_DATA_ALIGN; - if (edge) _nrho += (INTEL_DATA_ALIGN - edge) / sizeof(flt_t); + IP_PRE_edge_align(_nrho, sizeof(flt_t)); memory->create(frho_spline_f,ntypes*_nrho,"fc.frho_spline_f"); memory->create(frho_spline_e,ntypes*_nrho,"fc.frho_spline_e"); memory->create(scale_f,ntypes,ntypes,"fc.scale_f"); diff --git a/src/USER-INTEL/pair_gayberne_intel.cpp b/src/USER-INTEL/pair_gayberne_intel.cpp index 1f05ad0efc..30941a7594 100644 --- a/src/USER-INTEL/pair_gayberne_intel.cpp +++ b/src/USER-INTEL/pair_gayberne_intel.cpp @@ -226,7 +226,7 @@ void PairGayBerneIntel::eval(const int offload, const int vflag, } #endif - // const int * _noalias const ilist = list->ilist; + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const firstneigh = buffers->firstneigh(list); @@ -287,6 +287,7 @@ void PairGayBerneIntel::eval(const int offload, const int vflag, in(numneigh:length(0) alloc_if(0) free_if(0)) \ in(x:length(x_size) alloc_if(0) free_if(0)) \ in(quat:length(nall+1) alloc_if(0) free_if(0)) \ + in(ilist:length(0) alloc_if(0) free_if(0)) \ in(overflow:length(0) alloc_if(0) free_if(0)) \ in(nthreads,inum,nall,ntypes,vflag,eatom,minlocal,separate_flag) \ in(astart,nlocal,f_stride,max_nbors,mu,gamma,upsilon,offload,pad_width) \ @@ -364,15 +365,16 @@ void PairGayBerneIntel::eval(const int offload, const int vflag, int * _noalias const jlist_form = jlist_formi + tid * max_nbors; int ierror = 0; - for (int i = iifrom; i < iito; i += iip) { - // const int i = ilist[ii]; + for (int ii = iifrom; ii < iito; ii += iip) { + const int i = ilist[ii]; const int itype = x[i].w; const int ptr_off = itype * ntypes; const FC_PACKED1_T * _noalias const ijci = ijc + ptr_off; const FC_PACKED2_T * _noalias const lj34i = lj34 + ptr_off; - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); const flt_t xtmp = x[i].x; const flt_t ytmp = x[i].y; @@ -428,15 +430,13 @@ void PairGayBerneIntel::eval(const int offload, const int vflag, } else multiple_forms = true; } - const int edge = packed_j & (pad_width - 1); - if (edge) { - const int packed_end = packed_j + (pad_width - edge); - #if defined(LMP_SIMD_COMPILER) - #pragma loop_count min=1, max=15, avg=8 - #endif - for ( ; packed_j < packed_end; packed_j++) - jlist_form[packed_j] = nall; - } + int packed_end = packed_j; + IP_PRE_neighbor_pad(packed_end, offload); + #if defined(LMP_SIMD_COMPILER) + #pragma loop_count min=1, max=15, avg=8 + #endif + for ( ; packed_j < packed_end; packed_j++) + jlist_form[packed_j] = nall; // ------------------------------------------------------------- diff --git a/src/USER-INTEL/pair_lj_charmm_coul_charmm_intel.cpp b/src/USER-INTEL/pair_lj_charmm_coul_charmm_intel.cpp index 7485395bef..8e6395c388 100644 --- a/src/USER-INTEL/pair_lj_charmm_coul_charmm_intel.cpp +++ b/src/USER-INTEL/pair_lj_charmm_coul_charmm_intel.cpp @@ -136,6 +136,7 @@ void PairLJCharmmCoulCharmmIntel::eval(const int offload, const int vflag, ATOM_T * _noalias const x = buffers->get_x(offload); flt_t * _noalias const q = buffers->get_q(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const firstneigh = buffers->firstneigh(list); @@ -189,6 +190,7 @@ void PairLJCharmmCoulCharmmIntel::eval(const int offload, const int vflag, in(numneigh:length(0) alloc_if(0) free_if(0)) \ in(x:length(x_size) alloc_if(0) free_if(0)) \ in(q:length(q_size) alloc_if(0) free_if(0)) \ + in(ilist:length(0) alloc_if(0) free_if(0)) \ in(overflow:length(0) alloc_if(0) free_if(0)) \ in(ccachex,ccachey,ccachez,ccachew:length(0) alloc_if(0) free_if(0)) \ in(ccachei,ccachej:length(0) alloc_if(0) free_if(0)) \ @@ -238,16 +240,17 @@ void PairLJCharmmCoulCharmmIntel::eval(const int offload, const int vflag, int * _noalias const tj = ccachei + toffs; int * _noalias const tjtype = ccachej + toffs; - for (int i = iifrom; i < iito; i += iip) { - // const int i = ilist[ii]; + for (int ii = iifrom; ii < iito; ii += iip) { + const int i = ilist[ii]; const int itype = x[i].w; const int ptr_off = itype * ntypes; const flt_t * _noalias const cutsqi = cutsq + ptr_off; const LJ_T * _noalias const lji = lj + ptr_off; - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); acc_t fxtmp,fytmp,fztmp,fwtmp; acc_t sevdwl, secoul, sv0, sv1, sv2, sv3, sv4, sv5; diff --git a/src/USER-INTEL/pair_lj_charmm_coul_long_intel.cpp b/src/USER-INTEL/pair_lj_charmm_coul_long_intel.cpp index 25cca59714..a01a4688a5 100644 --- a/src/USER-INTEL/pair_lj_charmm_coul_long_intel.cpp +++ b/src/USER-INTEL/pair_lj_charmm_coul_long_intel.cpp @@ -140,6 +140,7 @@ void PairLJCharmmCoulLongIntel::eval(const int offload, const int vflag, ATOM_T * _noalias const x = buffers->get_x(offload); flt_t * _noalias const q = buffers->get_q(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const firstneigh = buffers->firstneigh(list); @@ -210,6 +211,7 @@ void PairLJCharmmCoulLongIntel::eval(const int offload, const int vflag, in(numneigh:length(0) alloc_if(0) free_if(0)) \ in(x:length(x_size) alloc_if(0) free_if(0)) \ in(q:length(q_size) alloc_if(0) free_if(0)) \ + in(ilist:length(0) alloc_if(0) free_if(0)) \ in(overflow:length(0) alloc_if(0) free_if(0)) \ in(ccachex,ccachey,ccachez,ccachew:length(0) alloc_if(0) free_if(0)) \ in(ccachei,ccachej:length(0) alloc_if(0) free_if(0)) \ @@ -258,16 +260,17 @@ void PairLJCharmmCoulLongIntel::eval(const int offload, const int vflag, int * _noalias const tj = ccachei + toffs; int * _noalias const tjtype = ccachej + toffs; - for (int i = iifrom; i < iito; i += iip) { - // const int i = ilist[ii]; + for (int ii = iifrom; ii < iito; ii += iip) { + const int i = ilist[ii]; const int itype = x[i].w; const int ptr_off = itype * ntypes; const flt_t * _noalias const cutsqi = cutsq + ptr_off; const LJ_T * _noalias const lji = lj + ptr_off; - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); acc_t fxtmp,fytmp,fztmp,fwtmp; acc_t sevdwl, secoul, sv0, sv1, sv2, sv3, sv4, sv5; diff --git a/src/USER-INTEL/pair_lj_cut_coul_long_intel.cpp b/src/USER-INTEL/pair_lj_cut_coul_long_intel.cpp index cb7381270d..ab0b5b3d55 100644 --- a/src/USER-INTEL/pair_lj_cut_coul_long_intel.cpp +++ b/src/USER-INTEL/pair_lj_cut_coul_long_intel.cpp @@ -139,6 +139,7 @@ void PairLJCutCoulLongIntel::eval(const int offload, const int vflag, ATOM_T * _noalias const x = buffers->get_x(offload); flt_t * _noalias const q = buffers->get_q(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const firstneigh = buffers->firstneigh(list); @@ -204,6 +205,7 @@ void PairLJCutCoulLongIntel::eval(const int offload, const int vflag, in(numneigh:length(0) alloc_if(0) free_if(0)) \ in(x:length(x_size) alloc_if(0) free_if(0)) \ in(q:length(q_size) alloc_if(0) free_if(0)) \ + in(ilist:length(0) alloc_if(0) free_if(0)) \ in(overflow:length(0) alloc_if(0) free_if(0)) \ in(ccachex,ccachey,ccachez,ccachew:length(0) alloc_if(0) free_if(0)) \ in(ccachei,ccachej:length(0) alloc_if(0) free_if(0)) \ @@ -250,15 +252,17 @@ void PairLJCutCoulLongIntel::eval(const int offload, const int vflag, int * _noalias const tj = ccachei + toffs; int * _noalias const tjtype = ccachej + toffs; - for (int i = iifrom; i < iito; i += iip) { + for (int ii = iifrom; ii < iito; ii += iip) { + const int i = ilist[ii]; const int itype = x[i].w; const int ptr_off = itype * ntypes; const C_FORCE_T * _noalias const c_forcei = c_force + ptr_off; const C_ENERGY_T * _noalias const c_energyi = c_energy + ptr_off; - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); acc_t fxtmp,fytmp,fztmp,fwtmp; acc_t sevdwl, secoul, sv0, sv1, sv2, sv3, sv4, sv5; diff --git a/src/USER-INTEL/pair_lj_cut_intel.cpp b/src/USER-INTEL/pair_lj_cut_intel.cpp index b16f6230cc..c973639709 100644 --- a/src/USER-INTEL/pair_lj_cut_intel.cpp +++ b/src/USER-INTEL/pair_lj_cut_intel.cpp @@ -148,6 +148,7 @@ void PairLJCutIntel::eval(const int offload, const int vflag, ATOM_T * _noalias const x = buffers->get_x(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const firstneigh = buffers->firstneigh(list); @@ -207,7 +208,8 @@ void PairLJCutIntel::eval(const int offload, const int vflag, lj4 = lj34[3].lj4; offset = ljc12o[3].offset; } - for (int i = iifrom; i < iito; i += iip) { + for (int ii = iifrom; ii < iito; ii += iip) { + const int i = ilist[ii]; int itype, ptr_off; const FC_PACKED1_T * _noalias ljc12oi; const FC_PACKED2_T * _noalias lj34i; @@ -217,9 +219,9 @@ void PairLJCutIntel::eval(const int offload, const int vflag, ljc12oi = ljc12o + ptr_off; lj34i = lj34 + ptr_off; } - - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + int jnum = numneigh[ii]; + IP_PRE_neighbor_pad(jnum, offload); acc_t fxtmp, fytmp, fztmp, fwtmp; acc_t sevdwl, sv0, sv1, sv2, sv3, sv4, sv5; diff --git a/src/USER-INTEL/pair_sw_intel.cpp b/src/USER-INTEL/pair_sw_intel.cpp index 421de91ee9..d1d52270be 100644 --- a/src/USER-INTEL/pair_sw_intel.cpp +++ b/src/USER-INTEL/pair_sw_intel.cpp @@ -42,7 +42,6 @@ #include "suffix.h" #ifdef LMP_USE_AVXCD -#define OUTER_CHUNK 1 #include "intel_simd.h" using namespace ip_simd; #endif @@ -185,6 +184,7 @@ void PairSWIntel::eval(const int offload, const int vflag, IP_PRE_pack_separate_buffers(fix, buffers, ago, offload, nlocal, nall); ATOM_T * _noalias const x = buffers->get_x(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneighhalf = buffers->get_atombin(); const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); @@ -230,6 +230,7 @@ void PairSWIntel::eval(const int offload, const int vflag, in(cnumneigh:length(0) alloc_if(0) free_if(0)) \ in(numneigh:length(0) alloc_if(0) free_if(0)) \ in(x:length(x_size) alloc_if(0) free_if(0)) \ + in(ilist:length(0) alloc_if(0) free_if(0)) \ in(numneighhalf:length(0) alloc_if(0) free_if(0)) \ in(overflow:length(0) alloc_if(0) free_if(0)) \ in(ccachex,ccachey,ccachez,ccachew:length(0) alloc_if(0) free_if(0)) \ @@ -298,7 +299,8 @@ void PairSWIntel::eval(const int offload, const int vflag, } } - for (int i = iifrom; i < iito; i += iip) { + for (int ii = iifrom; ii < iito; ii += iip) { + const int i = ilist[ii]; int itype, itype_offset; const flt_t xtmp = x[i].x; const flt_t ytmp = x[i].y; @@ -309,9 +311,9 @@ void PairSWIntel::eval(const int offload, const int vflag, itype_offset = itype * ntypes; } - const int * _noalias const jlist = firstneigh + cnumneigh[i]; - const int jnum = numneigh[i]; - const int jnumhalf = numneighhalf[i]; + const int * _noalias const jlist = firstneigh + cnumneigh[ii]; + const int jnum = numneigh[ii]; + const int jnumhalf = numneighhalf[ii]; acc_t fxtmp, fytmp, fztmp, fwtmp; acc_t sevdwl; @@ -346,9 +348,13 @@ void PairSWIntel::eval(const int offload, const int vflag, } } - int ejrem = ejnum & (pad_width - 1); - if (ejrem) ejrem = pad_width - ejrem; - const int ejnum_pad = ejnum + ejrem; + int ejnum_pad = ejnum; + IP_PRE_neighbor_pad(ejnum_pad, offload); + #if defined(LMP_SIMD_COMPILER) + #pragma vector aligned + #pragma loop_count min=1, max=INTEL_COMPILE_WIDTH-1, \ + avg=INTEL_COMPILE_WIDTH/2 + #endif for (int jj = ejnum; jj < ejnum_pad; jj++) { tdelx[jj] = (flt_t)0.0; tdely[jj] = (flt_t)0.0; @@ -594,6 +600,7 @@ void PairSWIntel::eval(const int offload, const int vflag, IP_PRE_pack_separate_buffers(fix, buffers, ago, offload, nlocal, nall); ATOM_T * _noalias const x = buffers->get_x(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneighhalf = buffers->get_atombin(); const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); @@ -641,6 +648,7 @@ void PairSWIntel::eval(const int offload, const int vflag, in(cnumneigh:length(0) alloc_if(0) free_if(0)) \ in(numneigh:length(0) alloc_if(0) free_if(0)) \ in(x:length(x_size) alloc_if(0) free_if(0)) \ + in(ilist:length(0) alloc_if(0) free_if(0)) \ in(numneighhalf:length(0) alloc_if(0) free_if(0)) \ in(overflow:length(0) alloc_if(0) free_if(0)) \ in(ccachex,ccachey,ccachez,ccachew:length(0) alloc_if(0) free_if(0)) \ @@ -714,24 +722,24 @@ void PairSWIntel::eval(const int offload, const int vflag, } } - SIMD_int ilist = SIMD_set(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); const SIMD_int goffset = SIMD_set(0,16,32,48,64,80,96,112,128, 144,160,176,192,208,224,240); - ilist = ilist + iifrom; acc_t * const dforce = &(f[0].x); for (int i = iifrom; i < iito; i += iip) { - SIMD_mask imask = ilist < iito; + SIMD_int ilistv = SIMD_load(ilist + i); + SIMD_int goffset = ilistv * 16; + SIMD_mask imask = ilistv < iito; SIMD_flt_t xtmp, ytmp, ztmp; SIMD_int itype, itype_offset; if (ONETYPE) - SIMD_atom_gather(imask, &(x[i].x), goffset, xtmp, ytmp, ztmp); + SIMD_atom_gather(imask, &(x[0].x), goffset, xtmp, ytmp, ztmp); else { - SIMD_atom_gather(imask, &(x[i].x), goffset, xtmp, ytmp, ztmp, itype); + SIMD_atom_gather(imask, &(x[0].x), goffset, xtmp, ytmp, ztmp, itype); itype_offset = itype * ntypes; } - #ifdef OUTER_CHUNK + #ifdef LMP_INTEL_3BODY_FAST const int* ng = firstneigh + cnumneigh[i] - swidth; #else SIMD_int ng = SIMD_load(cnumneigh + i); @@ -765,7 +773,7 @@ void PairSWIntel::eval(const int offload, const int vflag, for (int jj = 0; jj < jnum_max; jj++) { SIMD_mask jmask = jj < jnum; - #ifdef OUTER_CHUNK + #ifdef LMP_INTEL_3BODY_FAST ng += swidth; SIMD_int j = SIMD_load(ng); #else @@ -1025,15 +1033,15 @@ void PairSWIntel::eval(const int offload, const int vflag, } } // for jj second loop - SIMD_iforce_update(imask, &(f[i].x), goffset, fxtmp, fytmp, fztmp, + SIMD_iforce_update(imask, &(f[0].x), goffset, fxtmp, fytmp, fztmp, EFLAG, eatom, fwtmp); if (is_same::value == 0) { imask = imask >> 8; - SIMD_iforce_update(imask, &(f[i+8].x), goffset, fxtmp2, fytmp2, + SIMD_int goffset2 = _mm512_shuffle_i32x4(goffset, goffset, 238); + SIMD_iforce_update(imask, &(f[0].x), goffset2, fxtmp2, fytmp2, fztmp2, EFLAG, eatom, fwtmp2); } if (EFLAG) oevdwl += SIMD_sum(sevdwl); - ilist = ilist + iip; } // for ii IP_PRE_fdotr_reduce_omp(1, nall, minlocal, nthreads, f_start, f_stride, diff --git a/src/USER-INTEL/pair_tersoff_intel.cpp b/src/USER-INTEL/pair_tersoff_intel.cpp index c772546928..584b371784 100644 --- a/src/USER-INTEL/pair_tersoff_intel.cpp +++ b/src/USER-INTEL/pair_tersoff_intel.cpp @@ -208,6 +208,7 @@ struct IntelKernelTersoff : public lmp_intel::vector_routines const int * _noalias const cnumneigh, const int * _noalias const firstneigh, int ntypes, typename IntelBuffers::atom_t * _noalias const x, + const int * _noalias const ilist, const c_inner_t * _noalias const c_inner, const c_outer_t * _noalias const c_outer, typename IntelBuffers::vec3_acc_t * _noalias const f, @@ -271,6 +272,7 @@ void PairTersoffIntel::eval(const int offload, const int vflag, tagint * _noalias tag = this->atom->tag; flt_t * _noalias const q = buffers->get_q(offload); + const int * _noalias const ilist = list->ilist; const int * _noalias const numneigh = list->numneigh; const int * _noalias const cnumneigh = buffers->cnumneigh(list); const int * _noalias const numneighhalf = buffers->get_atombin(); @@ -311,6 +313,7 @@ void PairTersoffIntel::eval(const int offload, const int vflag, in(numneigh:length(0) alloc_if(0) free_if(0)) \ in(numneighhalf:length(0) alloc_if(0) free_if(0)) \ in(x:length(x_size) alloc_if(0) free_if(0)) \ + in(ilist:length(0) alloc_if(0) free_if(0)) \ in(overflow:length(0) alloc_if(0) free_if(0)) \ in(astart,nthreads,inum,nall,ntypes,vflag,eatom) \ in(f_stride,nlocal,minlocal,separate_flag,offload) \ @@ -349,8 +352,9 @@ void PairTersoffIntel::eval(const int offload, const int vflag, { acc_t sevdwl; sevdwl = 0.; - #define ARGS iito, iifrom, eatom, vflag, numneigh, numneighhalf, cnumneigh, \ - firstneigh, ntypes, x, c_inner, c_outer, f, &sevdwl + #define ARGS iito, iifrom, eatom, vflag, numneigh, numneighhalf, \ + cnumneigh, firstneigh, ntypes, x, ilist, c_inner, \ + c_outer, f, &sevdwl // Pick the variable i algorithm under specific conditions // do use scalar algorithm with very short vectors int VL = lmp_intel::vector_routines::VL; @@ -1135,6 +1139,7 @@ void IntelKernelTersoff::kernel( const int * _noalias const cnumneigh, const int * _noalias const firstneigh, int ntypes, typename IntelBuffers::atom_t * _noalias const x, + const int * _noalias const ilist, const c_inner_t * _noalias const c_inner, const c_outer_t * _noalias const c_outer, typename IntelBuffers::vec3_acc_t * _noalias const f, @@ -1155,12 +1160,12 @@ void IntelKernelTersoff::kernel( for (ii = iifrom; ii < iito; ii++) { // Right now this loop is scalar, to allow for the compiler to do // its prefetching magic. - int i = ii; + int i = ilist[ii]; int w_i = x[i].w; flt_t x_i = x[i].x; flt_t y_i = x[i].y; flt_t z_i = x[i].z; - int jlist_off_i = cnumneigh[i]; + int jlist_off_i = cnumneigh[ii]; int jnum = numneigh[ii]; for (jj = 0; jj < jnum; jj++) { int j = firstneigh[jlist_off_i + jj] & NEIGHMASK; @@ -1173,7 +1178,7 @@ void IntelKernelTersoff::kernel( if (rsq < cutsq) { is[compress_idx] = ii; js[compress_idx] = j; - if (jj < numneighhalf[i]) + if (jj < numneighhalf[ii]) repulsive_flag[compress_idx] = 1; compress_idx += 1; } diff --git a/src/USER-INTEL/verlet_lrt_intel.cpp b/src/USER-INTEL/verlet_lrt_intel.cpp index 962202e228..5dd0da1939 100644 --- a/src/USER-INTEL/verlet_lrt_intel.cpp +++ b/src/USER-INTEL/verlet_lrt_intel.cpp @@ -157,7 +157,7 @@ void VerletLRTIntel::setup(int flag) pthread_create(&_kspace_thread, &_kspace_attr, &VerletLRTIntel::k_launch_loop, this); #elif defined(_LMP_INTEL_LRT_11) - std::thread kspace_thread; + std::thread _kspace_thread; if (kspace_compute_flag) _kspace_thread=std::thread([=]{ _intel_kspace->compute_first(eflag, vflag); }); diff --git a/src/USER-INTEL/verlet_lrt_intel.h b/src/USER-INTEL/verlet_lrt_intel.h index 7380cc6376..6c44ba7e57 100644 --- a/src/USER-INTEL/verlet_lrt_intel.h +++ b/src/USER-INTEL/verlet_lrt_intel.h @@ -24,14 +24,20 @@ IntegrateStyle(verlet/lrt/intel,VerletLRTIntel) #include "pppm_intel.h" #ifdef LMP_INTEL_USELRT -#ifdef LMP_INTEL_LRT11 -#define _LMP_INTEL_LRT_11 -#include -#else -#define _LMP_INTEL_LRT_PTHREAD -#include -#endif - + #if defined(LMP_INTEL_LRT11) || defined(__APPLE__) + #if __cplusplus > 199711L + #define _LMP_INTEL_LRT_11 + #include + #else + #undef LMP_INTEL_USELRT + #ifdef LMP_INTEL_LRT11 + #error C++11 support required for LMP_INTEL_LRT11 define + #endif + #endif + #else + #define _LMP_INTEL_LRT_PTHREAD + #include + #endif #endif namespace LAMMPS_NS { From 80cca7c4c186e34febf833d107a951fc90b93be2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 22 Jun 2018 06:57:05 -0400 Subject: [PATCH 167/675] make has_XXX_support functions static, so they can be called without having to create an instance of Info, which requires a fully instantiation of the LAMMPS and Pointers classes --- src/info.cpp | 10 +++++----- src/info.h | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/info.cpp b/src/info.cpp index 0d11836826..a053e2af60 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -1143,7 +1143,7 @@ static void print_columns(FILE* fp, vector & styles) } } -bool Info::has_gzip_support() const { +bool Info::has_gzip_support() { #ifdef LAMMPS_GZIP return true; #else @@ -1151,7 +1151,7 @@ bool Info::has_gzip_support() const { #endif } -bool Info::has_png_support() const { +bool Info::has_png_support() { #ifdef LAMMPS_PNG return true; #else @@ -1159,7 +1159,7 @@ bool Info::has_png_support() const { #endif } -bool Info::has_jpeg_support() const { +bool Info::has_jpeg_support() { #ifdef LAMMPS_JPEG return true; #else @@ -1167,7 +1167,7 @@ bool Info::has_jpeg_support() const { #endif } -bool Info::has_ffmpeg_support() const { +bool Info::has_ffmpeg_support() { #ifdef LAMMPS_FFMPEG return true; #else @@ -1175,7 +1175,7 @@ bool Info::has_ffmpeg_support() const { #endif } -bool Info::has_exceptions() const { +bool Info::has_exceptions() { #ifdef LAMMPS_EXCEPTIONS return true; #else diff --git a/src/info.h b/src/info.h index fb7ca58c47..7d267f6242 100644 --- a/src/info.h +++ b/src/info.h @@ -33,11 +33,11 @@ class Info : protected Pointers { bool is_defined(const char *, const char *); bool is_available(const char *, const char *); - bool has_gzip_support() const; - bool has_png_support() const; - bool has_jpeg_support() const; - bool has_ffmpeg_support() const; - bool has_exceptions() const; + static bool has_gzip_support(); + static bool has_png_support(); + static bool has_jpeg_support(); + static bool has_ffmpeg_support(); + static bool has_exceptions(); char **get_variable_names(int &num); From e25b6c81ee622df48a4ad564898c9e8f66dc14be Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 22 Jun 2018 06:58:31 -0400 Subject: [PATCH 168/675] use a more conventional way to generate and include the lmpinstalledpkgs.h file --- src/Makefile | 5 ++++- src/lammps.cpp | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Makefile b/src/Makefile index 29164e4e32..31d3aebf54 100644 --- a/src/Makefile +++ b/src/Makefile @@ -153,10 +153,13 @@ help: lmpinstalledpkgs.h: $(SRC) $(INC) @echo 'Gathering installed package information (may take a little while)' - @echo 'const char * LAMMPS_NS::LAMMPS::installed_packages[] = {' > lmpinstalledpkgs.tmp + @echo '#ifndef LMP_INSTALLED_PKGS' > lmpinstalledpkgs.tmp + @echo '#define LMP_INSTALLED_PKGS' >> lmpinstalledpkgs.tmp + @echo 'const char * LAMMPS_NS::LAMMPS::installed_packages[] = {' >> lmpinstalledpkgs.tmp @for p in $(PACKAGEUC) $(PACKUSERUC); do info=$$($(SHELL) Package.sh $$p installed); \ [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package \(.*\)"/"\1",/' >> lmpinstalledpkgs.tmp || :; done @echo ' NULL };' >> lmpinstalledpkgs.tmp + @echo '#endif' >> lmpinstalledpkgs.tmp @if [ -f lmpinstalledpkgs.h ]; \ then test "`diff --brief lmpinstalledpkgs.tmp lmpinstalledpkgs.h`" != "" && \ mv lmpinstalledpkgs.tmp lmpinstalledpkgs.h || rm lmpinstalledpkgs.tmp ; \ diff --git a/src/lammps.cpp b/src/lammps.cpp index 44df7b5a13..bcecccb5cc 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -51,6 +51,8 @@ #include "version.h" #include "error.h" +#include "lmpinstalledpkgs.h" + using namespace LAMMPS_NS; static void print_style(FILE *fp, const char *str, int &pos); @@ -978,8 +980,6 @@ void print_style(FILE *fp, const char *str, int &pos) } } -#include "lmpinstalledpkgs.h" - void LAMMPS::print_config(FILE *fp) { const char *pkg; From 2f11f2d7b253ba6fac3dc530073be019f95d0a38 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 22 Jun 2018 06:59:09 -0400 Subject: [PATCH 169/675] query compile time settings in Info class --- src/lammps.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lammps.cpp b/src/lammps.cpp index bcecccb5cc..5a572f6b7c 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -985,7 +985,13 @@ void LAMMPS::print_config(FILE *fp) const char *pkg; int ncword, ncline = 0; - fputs("Installed packages:\n\n",fp); + fputs("Active compile time flags:\n\n",fp); + if (Info::has_gzip_support()) fputs("-DLAMMPS_GZIP\n",fp); + if (Info::has_png_support()) fputs("-DLAMMPS_PNG\n",fp); + if (Info::has_jpeg_support()) fputs("-DLAMMPS_JPEG\n",fp); + if (Info::has_ffmpeg_support()) fputs("-DLAMMPS_FFMPEG\n",fp); + + fputs("\nInstalled packages:\n\n",fp); for (int i = 0; NULL != (pkg = installed_packages[i]); ++i) { ncword = strlen(pkg); if (ncline + ncword > 78) { From dcdc7877a41ca9107be980cc21effc7c2f9bd862 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 22 Jun 2018 07:05:09 -0400 Subject: [PATCH 170/675] make compile time output more consistent and complete --- cmake/CMakeLists.txt | 5 +++-- src/Makefile | 4 ++-- src/lammps.cpp | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index f5346dec74..843619a266 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -801,13 +801,14 @@ include_directories(${LAMMPS_STYLE_HEADERS_DIR}) ###################################### # Generate lmpinstalledpkgs.h ###################################### -set(temp "const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n") +set(temp "#ifndef LMP_INSTALLED_PKGS_H\n#define LMP_INSTALLED_PKGS_H\n") +set(temp "${temp}const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n") foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES}) if(PKG_${PKG}) set(temp "${temp} \"${PKG}\",\n") endif() endforeach() -set(temp "${temp} NULL\n};\n\n") +set(temp "${temp} NULL\n};\n#endif\n\n") message(STATUS "Generating lmpinstalledpkgs.h...") file(WRITE "${LAMMPS_STYLE_HEADERS_DIR}/lmpinstalledpkgs.h.tmp" "${temp}" ) execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LAMMPS_STYLE_HEADERS_DIR}/lmpinstalledpkgs.h.tmp" "${LAMMPS_STYLE_HEADERS_DIR}/lmpinstalledpkgs.h") diff --git a/src/Makefile b/src/Makefile index 31d3aebf54..bd658e562c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -153,8 +153,8 @@ help: lmpinstalledpkgs.h: $(SRC) $(INC) @echo 'Gathering installed package information (may take a little while)' - @echo '#ifndef LMP_INSTALLED_PKGS' > lmpinstalledpkgs.tmp - @echo '#define LMP_INSTALLED_PKGS' >> lmpinstalledpkgs.tmp + @echo '#ifndef LMP_INSTALLED_PKGS_H' > lmpinstalledpkgs.tmp + @echo '#define LMP_INSTALLED_PKGS_H' >> lmpinstalledpkgs.tmp @echo 'const char * LAMMPS_NS::LAMMPS::installed_packages[] = {' >> lmpinstalledpkgs.tmp @for p in $(PACKAGEUC) $(PACKUSERUC); do info=$$($(SHELL) Package.sh $$p installed); \ [ -n "$$info" ] && echo "\"$$info\"" | sed -e 's/".*package \(.*\)"/"\1",/' >> lmpinstalledpkgs.tmp || :; done diff --git a/src/lammps.cpp b/src/lammps.cpp index 5a572f6b7c..df6519f9f4 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -990,6 +990,7 @@ void LAMMPS::print_config(FILE *fp) if (Info::has_png_support()) fputs("-DLAMMPS_PNG\n",fp); if (Info::has_jpeg_support()) fputs("-DLAMMPS_JPEG\n",fp); if (Info::has_ffmpeg_support()) fputs("-DLAMMPS_FFMPEG\n",fp); + if (Info::has_exceptions()) fputs("-DLAMMPS_EXCEPTIONS\n",fp); fputs("\nInstalled packages:\n\n",fp); for (int i = 0; NULL != (pkg = installed_packages[i]); ++i) { From 92f0f19df640277b4b8c6654a331b9f68bc046b1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 22 Jun 2018 07:26:33 -0400 Subject: [PATCH 171/675] make info config output of compile time defines consistent with lmp_ -h --- src/info.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/info.cpp b/src/info.cpp index a053e2af60..7b2165bf70 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -266,6 +266,13 @@ void Info::command(int narg, char **arg) fprintf(out,"sizeof(tagint): %3d-bit\n",(int)sizeof(tagint)*8); fprintf(out,"sizeof(bigint): %3d-bit\n",(int)sizeof(bigint)*8); + fputs("\nActive compile time flags:\n\n",out); + if (has_gzip_support()) fputs("-DLAMMPS_GZIP\n",out); + if (has_png_support()) fputs("-DLAMMPS_PNG\n",out); + if (has_jpeg_support()) fputs("-DLAMMPS_JPEG\n",out); + if (has_ffmpeg_support()) fputs("-DLAMMPS_FFMPEG\n",out); + if (has_exceptions()) fputs("-DLAMMPS_EXCEPTIONS\n",out); + const char *pkg; int ncword, ncline = 0; From 04d040b863d457bf9ac9e592cb7fee1e8d770f45 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 22 Jun 2018 07:57:03 -0400 Subject: [PATCH 172/675] update make purge list and fix checking for styles and installed package files in cmake --- cmake/CMakeLists.txt | 21 +++++++++++++++++---- src/Purge.list | 8 ++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 8bc079fd85..e5eec31ebb 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -25,15 +25,28 @@ endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS) file(GLOB SRC_FILES ${LAMMPS_SOURCE_DIR}/*.cpp) list(SORT SRC_FILES) -# check for files installed by make-based buildsystem + +# check for files auto-generated by make-based buildsystem +# this is fast, so check for it all the time +message(STATUS "Running check for auto-generated files from make-based build system") +file(GLOB SRC_AUTOGEN_FILES ${LAMMPS_SOURCE_DIR}/style_*.h) +list(APPEND SRC_AUTOGEN_FILES ${LAMMPS_SOURCE_DIR}/lmpinstalledpkgs.h) +foreach(_SRC ${SRC_AUTOGEN_FILES}) + get_filename_component(FILENAME "${_SRC}" NAME) + if(EXISTS ${LAMMPS_SOURCE_DIR}/${FILENAME}) + message(FATAL_ERROR "\nFound file(s) generated by the make-based build system.\nPlease run 'make -C ${LAMMPS_SOURCE_DIR} purge'") + endif() +endforeach() + +# check for files installed by make-based buildsystem # only run this time consuming check if there are new files if(NOT SRC_FILES STREQUAL SRC_FILES_CACHED) file(GLOB SRC_PKG_FILES ${LAMMPS_SOURCE_DIR}/*/*.cpp) - message(STATUS "Running check for installed package (this might take a while)") - foreach(_SRC SRC_PKG_FILES) + message(STATUS "Running check for packages installed with 'make yes-' (this may take a while)") + foreach(_SRC ${SRC_PKG_FILES}) get_filename_component(FILENAME "${_SRC}" NAME) if(EXISTS ${LAMMPS_SOURCE_DIR}/${FILENAME}) - message(FATAL_ERROR "Found packages installed by the make-based buildsystem, please run 'make -C ${LAMMPS_SOURCE_DIR} no-all purge'") + message(FATAL_ERROR "\nFound package(s) installed by the make-based build system\nPlease run 'make -C ${LAMMPS_SOURCE_DIR} no-all purge'") endif() endforeach() set(SRC_FILES_CACHED "${SRC_FILES}" CACHE INTERNAL "List of file in LAMMPS_SOURCE_DIR" FORCE) diff --git a/src/Purge.list b/src/Purge.list index 2e854ead3d..402fc409e6 100644 --- a/src/Purge.list +++ b/src/Purge.list @@ -1,6 +1,7 @@ # auto-generated style files style_angle.h style_atom.h +style_body.h style_bond.h style_command.h style_compute.h @@ -12,10 +13,17 @@ style_integrate.h style_kspace.h style_minimize.h style_pair.h +style_reader.h style_region.h style_neigh_bin.h style_neigh_pair.h style_neigh_stencil.h +style_nbin.h +style_npair.h +style_nstencil.h +style_ntopo.h +# other auto-generated files +lmpinstalledpkgs.h # deleted on 4 April 2018 pair_kim_version.h # deleted on 15 December 2017 From 62984c1de0f2cfe7dfdb027d16194b07d3e4f387 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 22 Jun 2018 08:02:17 -0400 Subject: [PATCH 173/675] small tweaks: improve messages and comments --- cmake/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index e5eec31ebb..3dc1dac00c 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -34,19 +34,19 @@ list(APPEND SRC_AUTOGEN_FILES ${LAMMPS_SOURCE_DIR}/lmpinstalledpkgs.h) foreach(_SRC ${SRC_AUTOGEN_FILES}) get_filename_component(FILENAME "${_SRC}" NAME) if(EXISTS ${LAMMPS_SOURCE_DIR}/${FILENAME}) - message(FATAL_ERROR "\nFound file(s) generated by the make-based build system.\nPlease run 'make -C ${LAMMPS_SOURCE_DIR} purge'") + message(FATAL_ERROR "\nFound header file(s) generated by the make-based build system.\nPlease run 'make -C ${LAMMPS_SOURCE_DIR} purge' to remove") endif() endforeach() -# check for files installed by make-based buildsystem -# only run this time consuming check if there are new files +# check for files from packages installed by the make-based buildsystem +# this is slow, so only run this check if there are new files if(NOT SRC_FILES STREQUAL SRC_FILES_CACHED) file(GLOB SRC_PKG_FILES ${LAMMPS_SOURCE_DIR}/*/*.cpp) message(STATUS "Running check for packages installed with 'make yes-' (this may take a while)") foreach(_SRC ${SRC_PKG_FILES}) get_filename_component(FILENAME "${_SRC}" NAME) if(EXISTS ${LAMMPS_SOURCE_DIR}/${FILENAME}) - message(FATAL_ERROR "\nFound package(s) installed by the make-based build system\nPlease run 'make -C ${LAMMPS_SOURCE_DIR} no-all purge'") + message(FATAL_ERROR "\nFound package(s) installed by the make-based build system\nPlease run 'make -C ${LAMMPS_SOURCE_DIR} no-all purge' to uninstall") endif() endforeach() set(SRC_FILES_CACHED "${SRC_FILES}" CACHE INTERNAL "List of file in LAMMPS_SOURCE_DIR" FORCE) From 35f5a685f67a583daeb970d6a41e3ff3b3f29b75 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 22 Jun 2018 08:17:32 -0400 Subject: [PATCH 174/675] small change to preempt a possible merge conflict --- src/Purge.list | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Purge.list b/src/Purge.list index 76c31a86ed..145b4f284c 100644 --- a/src/Purge.list +++ b/src/Purge.list @@ -16,8 +16,11 @@ style_region.h style_neigh_bin.h style_neigh_pair.h style_neigh_stencil.h +style_nbin.h +style_npair.h +style_nstencil.h +style_ntopo.h # other auto-generated files -lmpcompiledate.h lmpinstalledpkgs.h # deleted on 4 April 2018 pair_kim_version.h From ac41cc2c9a07c6016da237f363e3d616591451c6 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 22 Jun 2018 09:02:10 -0600 Subject: [PATCH 175/675] cmake: add GPU_PREC status output --- cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 8bc079fd85..cb69160797 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -914,6 +914,7 @@ if(ENABLED_GPU) elseif(GPU_API STREQUAL "OpenCL") message(STATUS "OCL Tune: ${OCL_TUNE}") endif() + message(STATUS "GPU Precision: ${GPU_PREC}") endif() if(PKG_KSPACE) message(STATUS "Using ${FFT} as FFT") From 3f17d33fbe0107cced8ad27da3cc3a5aca516814 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 22 Jun 2018 11:06:12 -0600 Subject: [PATCH 176/675] cmake: add BUILD_LIB option --- cmake/CMakeLists.txt | 56 ++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index cb69160797..32c6e82920 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -57,9 +57,17 @@ endif() ######################################################################## # User input options # ######################################################################## -option(BUILD_SHARED_LIBS "Build shared libs" OFF) -if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg - set(CMAKE_POSITION_INDEPENDENT_CODE ON) +option(BUILD_LIB "Build LAMMPS library" OFF) +if(BUILD_LIB) + option(BUILD_SHARED_LIBS "Build shared library" OFF) + if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + endif() + set(LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file") + mark_as_advanced(LIB_SUFFIX) + if(LIB_SUFFIX) + set(LIB_SUFFIX "_${LIB_SUFFIX}") + endif() endif() option(DEVELOPER_MODE "Enable developer mode" OFF) mark_as_advanced(DEVELOPER_MODE) @@ -102,7 +110,7 @@ if(LAMMPS_EXCEPTIONS) set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -DLAMMPS_EXCEPTIONS") endif() -set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary and liblammps (WON'T enable any features automatically") +set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically") mark_as_advanced(LAMMPS_MACHINE) if(LAMMPS_MACHINE) set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}") @@ -213,7 +221,7 @@ if(PKG_PYTHON) add_definitions(-DLMP_PYTHON) include_directories(${PYTHON_INCLUDE_DIR}) list(APPEND LAMMPS_LINK_LIBS ${PYTHON_LIBRARY}) - if(BUILD_SHARED_LIBS) + if(BUILDLIB AND BUILD_SHARED_LIBS) if(NOT PYTHON_INSTDIR) execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import distutils.sysconfig as cg; print(cg.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))" @@ -800,28 +808,40 @@ include_directories(${LAMMPS_STYLE_HEADERS_DIR}) ########################################### # Actually add executable and lib to build ############################################ -add_library(lammps ${LIB_SOURCES}) get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) list (FIND LANGUAGES "Fortran" _index) if (${_index} GREATER -1) list(APPEND LAMMPS_LINK_LIBS ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES}) endif() list(REMOVE_DUPLICATES LAMMPS_LINK_LIBS) -target_link_libraries(lammps ${LAMMPS_LINK_LIBS}) -if(LAMMPS_DEPS) - add_dependencies(lammps ${LAMMPS_DEPS}) -endif() -set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_MACHINE}) -if(BUILD_SHARED_LIBS) - set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) - install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) - configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +if(BUILD_LIB) + add_library(lammps ${LIB_SOURCES}) + target_link_libraries(lammps ${LAMMPS_LINK_LIBS}) + if(LAMMPS_DEPS) + add_dependencies(lammps ${LAMMPS_DEPS}) + endif() + set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LIB_SUFFIX}) + if(BUILD_SHARED_LIBS) + set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) + install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) + configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + endif() +else() + list(APPEND LMP_SOURCES ${LIB_SOURCES}) endif() add_executable(lmp ${LMP_SOURCES}) -target_link_libraries(lmp lammps) +if(BUILD_LIB) + target_link_libraries(lmp lammps) +else() + target_link_libraries(lmp ${LAMMPS_LINK_LIBS}) + if(LAMMPS_DEPS) + add_dependencies(lmp ${LAMMPS_DEPS}) + endif() +endif() + set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE}) install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR}) if(ENABLE_TESTING) From cb7b23e2201744b9558d1f3cbbf4225c84d8bc25 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 22 Jun 2018 11:11:09 -0600 Subject: [PATCH 177/675] cmake: add BUILD_EXE option --- cmake/CMakeLists.txt | 46 +++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 32c6e82920..e64e44995d 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -57,6 +57,15 @@ endif() ######################################################################## # User input options # ######################################################################## +option(BUILD_EXE "Build lmp binary" ON) +if(BUILD_EXE) + set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically") + mark_as_advanced(LAMMPS_MACHINE) + if(LAMMPS_MACHINE) + set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}") + endif() +endif() + option(BUILD_LIB "Build LAMMPS library" OFF) if(BUILD_LIB) option(BUILD_SHARED_LIBS "Build shared library" OFF) @@ -69,6 +78,11 @@ if(BUILD_LIB) set(LIB_SUFFIX "_${LIB_SUFFIX}") endif() endif() + +if(NOT BUILD_EXE AND NOT BUILD_LIB) + message(FATAL_ERROR "You need to at least enable one of two following options: BUILD_LIB or BUILD_EXE") +endif() + option(DEVELOPER_MODE "Enable developer mode" OFF) mark_as_advanced(DEVELOPER_MODE) option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF) @@ -110,12 +124,6 @@ if(LAMMPS_EXCEPTIONS) set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -DLAMMPS_EXCEPTIONS") endif() -set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically") -mark_as_advanced(LAMMPS_MACHINE) -if(LAMMPS_MACHINE) - set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}") -endif() - option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF) option(ENABLE_TESTING "Enable testing" OFF) @@ -832,20 +840,22 @@ else() list(APPEND LMP_SOURCES ${LIB_SOURCES}) endif() -add_executable(lmp ${LMP_SOURCES}) -if(BUILD_LIB) - target_link_libraries(lmp lammps) -else() - target_link_libraries(lmp ${LAMMPS_LINK_LIBS}) - if(LAMMPS_DEPS) - add_dependencies(lmp ${LAMMPS_DEPS}) +if(BUILD_EXE) + add_executable(lmp ${LMP_SOURCES}) + if(BUILD_LIB) + target_link_libraries(lmp lammps) + else() + target_link_libraries(lmp ${LAMMPS_LINK_LIBS}) + if(LAMMPS_DEPS) + add_dependencies(lmp ${LAMMPS_DEPS}) + endif() endif() -endif() -set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE}) -install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR}) -if(ENABLE_TESTING) - add_test(ShowHelp lmp${LAMMPS_MACHINE} -help) + set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE}) + install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR}) + if(ENABLE_TESTING) + add_test(ShowHelp lmp${LAMMPS_MACHINE} -help) + endif() endif() ############################################################################### From ce0f3daad64e681b94a208e7fa836222f53619e8 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 22 Jun 2018 11:43:52 -0600 Subject: [PATCH 178/675] cmake: don't include quiet packages in summary --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index e64e44995d..63008b5060 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -899,7 +899,7 @@ endforeach() string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE) get_directory_property(CPPFLAGS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS) include(FeatureSummary) -feature_summary(INCLUDE_QUIET_PACKAGES WHAT ALL) +feature_summary(DEFAULT_DESCRIPTION WHAT PACKAGES_FOUND) message(STATUS "<<< Build configuration >>> Build type ${CMAKE_BUILD_TYPE} Install path ${CMAKE_INSTALL_PREFIX} From 264e4fd3b1b7f23e68f0206543721ecf0b328b3f Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 22 Jun 2018 17:05:55 -0600 Subject: [PATCH 179/675] cmake: fix for Date: Fri, 22 Jun 2018 17:06:39 -0600 Subject: [PATCH 180/675] liblammps.pc: fix lib suffix --- cmake/pkgconfig/liblammps.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/pkgconfig/liblammps.pc.in b/cmake/pkgconfig/liblammps.pc.in index c5e1701782..400b7593cf 100644 --- a/cmake/pkgconfig/liblammps.pc.in +++ b/cmake/pkgconfig/liblammps.pc.in @@ -13,6 +13,6 @@ Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library URL: http://lammps.sandia.gov Version: Requires: -Libs: -L${libdir} -llammps@LAMMPS_MACHINE@ +Libs: -L${libdir} -llammps@LIB_SUFFIX@@ Libs.private: -lm Cflags: -I${includedir} @LAMMPS_API_DEFINES@ From 86519ce213f3341313922efd41407e5751036386 Mon Sep 17 00:00:00 2001 From: PabloPiaggi Date: Sun, 24 Jun 2018 00:25:07 +0200 Subject: [PATCH 181/675] Rename compute to entropy/atom --- doc/src/Section_commands.txt | 2 +- ...ropy_atom.txt => compute_entropy_atom.txt} | 22 ++++++---- doc/src/computes.txt | 2 +- doc/src/lammps.book | 2 +- .../Na_MendelevM_2014.eam.fs | 0 .../{pair_entropy => entropy}/data.interface | 0 .../in.pairentropy => entropy/in.entropy} | 8 ++-- .../log.pairentropy => entropy/log.entropy} | 24 +++++----- src/USER-MISC/README | 2 +- ...ropy_atom.cpp => compute_entropy_atom.cpp} | 44 +++++++++---------- ...pentropy_atom.h => compute_entropy_atom.h} | 18 ++++---- 11 files changed, 64 insertions(+), 60 deletions(-) rename doc/src/{compute_pentropy_atom.txt => compute_entropy_atom.txt} (86%) rename examples/USER/misc/{pair_entropy => entropy}/Na_MendelevM_2014.eam.fs (100%) rename examples/USER/misc/{pair_entropy => entropy}/data.interface (100%) rename examples/USER/misc/{pair_entropy/in.pairentropy => entropy/in.entropy} (72%) rename examples/USER/misc/{pair_entropy/log.pairentropy => entropy/log.entropy} (96%) rename src/USER-MISC/{compute_pentropy_atom.cpp => compute_entropy_atom.cpp} (87%) rename src/USER-MISC/{compute_pentropy_atom.h => compute_entropy_atom.h} (77%) diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index 25e3b5ffbe..043d57670d 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -851,6 +851,7 @@ package"_Section_start.html#start_3. "dpd"_compute_dpd.html, "dpd/atom"_compute_dpd_atom.html, "edpd/temp/atom"_compute_edpd_temp_atom.html, +"entropy/atom"_compute_entropy_atom.html, "fep"_compute_fep.html, "force/tally"_compute_tally.html, "heat/flux/tally"_compute_tally.html, @@ -861,7 +862,6 @@ package"_Section_start.html#start_3. "meso/t/atom"_compute_meso_t_atom.html, "pe/tally"_compute_tally.html, "pe/mol/tally"_compute_tally.html, -"pentropy/atom"_compute_pentropy_atom.html, "pressure/uef"_compute_pressure_uef.html, "saed"_compute_saed.html, "smd/contact/radius"_compute_smd_contact_radius.html, diff --git a/doc/src/compute_pentropy_atom.txt b/doc/src/compute_entropy_atom.txt similarity index 86% rename from doc/src/compute_pentropy_atom.txt rename to doc/src/compute_entropy_atom.txt index 8877321760..f7e7b8a667 100644 --- a/doc/src/compute_pentropy_atom.txt +++ b/doc/src/compute_entropy_atom.txt @@ -6,14 +6,14 @@ :line -compute pentropy/atom command :h3 +compute entropy/atom command :h3 [Syntax:] -compute ID group-ID pentropy/atom sigma cutoff keyword value ... :pre +compute ID group-ID entropy/atom sigma cutoff keyword value ... :pre ID, group-ID are documented in "compute"_compute.html command :l -pentropy/atom = style name of this compute command :l +entropy/atom = style name of this compute command :l sigma = width of gaussians used in the g(r) smoothening :l cutoff = cutoff for the g(r) calculation :l one or more keyword/value pairs may be appended :l @@ -27,9 +27,9 @@ keyword = {avg} or {local} [Examples:] -compute 1 all pentropy/atom 0.25 5. -compute 1 all pentropy/atom 0.25 5. avg yes 5. -compute 1 all pentropy/atom 0.125 7.3 avg yes 5.1 local yes :pre +compute 1 all entropy/atom 0.25 5. +compute 1 all entropy/atom 0.25 5. avg yes 5. +compute 1 all entropy/atom 0.125 7.3 avg yes 5.1 local yes :pre [Description:] @@ -87,11 +87,11 @@ inhomogeneus systems such as those that have surfaces. Here are typical input parameters for fcc aluminum (lattice constant 4.05 Angstroms), -compute 1 all pentropy/atom 0.25 5.7 avg yes 3.7 :pre +compute 1 all entropy/atom 0.25 5.7 avg yes 3.7 :pre and for bcc sodium (lattice constant 4.23 Angstroms), -compute 1 all pentropy/atom 0.25 7.3 avg yes 5.1 :pre +compute 1 all entropy/atom 0.25 7.3 avg yes 5.1 :pre [Output info:] @@ -106,7 +106,11 @@ The pair entropy values have units of the Boltzmann constant. They are always negative, and lower values (lower entropy) correspond to more ordered environments. -[Restrictions:] none +[Restrictions:] + +This compute is part of the USER-MISC package. It is only enabled if +LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. [Related commands:] diff --git a/doc/src/computes.txt b/doc/src/computes.txt index ec197cb433..7848d4db04 100644 --- a/doc/src/computes.txt +++ b/doc/src/computes.txt @@ -31,6 +31,7 @@ Computes :h1 compute_dpd compute_dpd_atom compute_edpd_temp_atom + compute_entropy_atom compute_erotate_asphere compute_erotate_rigid compute_erotate_sphere @@ -63,7 +64,6 @@ Computes :h1 compute_pair_local compute_pe compute_pe_atom - compute_pentropy_atom compute_plasticity_atom compute_pressure compute_pressure_uef diff --git a/doc/src/lammps.book b/doc/src/lammps.book index bea6767993..b9f02e54f0 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -315,6 +315,7 @@ compute_displace_atom.html compute_dpd.html compute_dpd_atom.html compute_edpd_temp_atom.html +compute_entropy_atom.html compute_erotate_asphere.html compute_erotate_rigid.html compute_erotate_sphere.html @@ -347,7 +348,6 @@ compute_pair.html compute_pair_local.html compute_pe.html compute_pe_atom.html -compute_pentropy_atom.html compute_plasticity_atom.html compute_pressure.html compute_pressure_uef.html diff --git a/examples/USER/misc/pair_entropy/Na_MendelevM_2014.eam.fs b/examples/USER/misc/entropy/Na_MendelevM_2014.eam.fs similarity index 100% rename from examples/USER/misc/pair_entropy/Na_MendelevM_2014.eam.fs rename to examples/USER/misc/entropy/Na_MendelevM_2014.eam.fs diff --git a/examples/USER/misc/pair_entropy/data.interface b/examples/USER/misc/entropy/data.interface similarity index 100% rename from examples/USER/misc/pair_entropy/data.interface rename to examples/USER/misc/entropy/data.interface diff --git a/examples/USER/misc/pair_entropy/in.pairentropy b/examples/USER/misc/entropy/in.entropy similarity index 72% rename from examples/USER/misc/pair_entropy/in.pairentropy rename to examples/USER/misc/entropy/in.entropy index 8740b270cb..fcaffb68a1 100644 --- a/examples/USER/misc/pair_entropy/in.pairentropy +++ b/examples/USER/misc/entropy/in.entropy @@ -16,13 +16,13 @@ neighbor 4. bin # Define computes # Global density, no average -compute 1 all pentropy/atom 0.25 7.75 +compute 1 all entropy/atom 0.25 7.75 # Local density, no average -compute 2 all pentropy/atom 0.25 7.75 local yes +compute 2 all entropy/atom 0.25 7.75 local yes # Global density, average over neighbors -compute 3 all pentropy/atom 0.25 7.75 avg yes 5. +compute 3 all entropy/atom 0.25 7.75 avg yes 5. # Local density, average over neighbors -compute 4 all pentropy/atom 0.25 7.75 avg yes 5. local yes +compute 4 all entropy/atom 0.25 7.75 avg yes 5. local yes dump myDump all custom 500 dump.interface id type x y z c_1 c_2 c_3 c_4 diff --git a/examples/USER/misc/pair_entropy/log.pairentropy b/examples/USER/misc/entropy/log.entropy similarity index 96% rename from examples/USER/misc/pair_entropy/log.pairentropy rename to examples/USER/misc/entropy/log.entropy index 21474639af..5f00e42273 100644 --- a/examples/USER/misc/pair_entropy/log.pairentropy +++ b/examples/USER/misc/entropy/log.entropy @@ -28,13 +28,13 @@ neighbor 4. bin # Define computes # Global density, no average -compute 1 all pentropy/atom 0.25 7.75 +compute 1 all entropy/atom 0.25 7.75 # Local density, no average -compute 2 all pentropy/atom 0.25 7.75 local yes +compute 2 all entropy/atom 0.25 7.75 local yes # Global density, average over neighbors -compute 3 all pentropy/atom 0.25 7.75 avg yes 5. +compute 3 all entropy/atom 0.25 7.75 avg yes 5. # Local density, average over neighbors -compute 4 all pentropy/atom 0.25 7.75 avg yes 5. local yes +compute 4 all entropy/atom 0.25 7.75 avg yes 5. local yes dump myDump all custom 500 dump.interface id type x y z c_1 c_2 c_3 c_4 @@ -43,10 +43,10 @@ fix 1 all nph x 1. 1. 10. fix 2 all temp/csvr 350. 350. 0.1 64582 run 100000 -WARNING: More than one compute pentropy/atom (../compute_pentropy_atom.cpp:138) -WARNING: More than one compute pentropy/atom (../compute_pentropy_atom.cpp:138) -WARNING: More than one compute pentropy/atom (../compute_pentropy_atom.cpp:138) -WARNING: More than one compute pentropy/atom (../compute_pentropy_atom.cpp:138) +WARNING: More than one compute entropy/atom (../compute_entropy_atom.cpp:138) +WARNING: More than one compute entropy/atom (../compute_entropy_atom.cpp:138) +WARNING: More than one compute entropy/atom (../compute_entropy_atom.cpp:138) +WARNING: More than one compute entropy/atom (../compute_entropy_atom.cpp:138) Neighbor list info ... update every 1 steps, delay 10 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -59,22 +59,22 @@ Neighbor list info ... pair build: half/bin/newton/tri stencil: half/bin/3d/newton/tri bin: standard - (2) compute pentropy/atom, perpetual + (2) compute entropy/atom, perpetual attributes: full, newton on, ghost pair build: full/bin/ghost stencil: full/ghost/bin/3d bin: standard - (3) compute pentropy/atom, perpetual, copy from (2) + (3) compute entropy/atom, perpetual, copy from (2) attributes: full, newton on, ghost pair build: copy stencil: none bin: none - (4) compute pentropy/atom, perpetual, copy from (2) + (4) compute entropy/atom, perpetual, copy from (2) attributes: full, newton on, ghost pair build: copy stencil: none bin: none - (5) compute pentropy/atom, perpetual, copy from (2) + (5) compute entropy/atom, perpetual, copy from (2) attributes: full, newton on, ghost pair build: copy stencil: none diff --git a/src/USER-MISC/README b/src/USER-MISC/README index 6fb2dd6010..3f3d006b23 100644 --- a/src/USER-MISC/README +++ b/src/USER-MISC/README @@ -29,7 +29,7 @@ bond_style harmonic/shift/cut, Carsten Svaneborg, science at zqex.dk, 8 Aug 11 compute ackland/atom, Gerolf Ziegenhain, gerolf at ziegenhain.com, 4 Oct 2007 compute basal/atom, Christopher Barrett, cdb333 at cavs.msstate.edu, 3 Mar 2013 compute cnp/atom, Paulo Branicio (USC), branicio at usc.edu, 31 May 2017 -compute pentropy/atom, Pablo M. Piaggi (EPFL), , 15 June 2018 +compute entropy/atom, Pablo Piaggi (EPFL), pablo.piaggi at epfl.ch, 15 June 2018 compute temp/rotate, Laurent Joly (U Lyon), ljoly.ulyon at gmail.com, 8 Aug 11 compute PRESSURE/GREM, David Stelter, dstelter@bu.edu, 22 Nov 16 dihedral_style cosine/shift/exp, Carsten Svaneborg, science at zqex.dk, 8 Aug 11 diff --git a/src/USER-MISC/compute_pentropy_atom.cpp b/src/USER-MISC/compute_entropy_atom.cpp similarity index 87% rename from src/USER-MISC/compute_pentropy_atom.cpp rename to src/USER-MISC/compute_entropy_atom.cpp index 271648e3c5..fe2947ed61 100644 --- a/src/USER-MISC/compute_pentropy_atom.cpp +++ b/src/USER-MISC/compute_entropy_atom.cpp @@ -18,7 +18,7 @@ #include #include #include -#include "compute_pentropy_atom.h" +#include "compute_entropy_atom.h" #include "atom.h" #include "update.h" #include "modify.h" @@ -40,13 +40,13 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -ComputePairEntropyAtom:: -ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : +ComputeEntropyAtom:: +ComputeEntropyAtom(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), pair_entropy(NULL), pair_entropy_avg(NULL) { if (narg < 5 || narg > 10) - error->all(FLERR,"Illegal compute pentropy/atom command; wrong number" + error->all(FLERR,"Illegal compute entropy/atom command; wrong number" " of arguments"); // Arguments are: sigma cutoff avg yes/no cutoff2 local yes/no @@ -59,10 +59,10 @@ ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : // the g(r) sigma = force->numeric(FLERR,arg[3]); - if (sigma < 0.0) error->all(FLERR,"Illegal compute pentropy/atom" + if (sigma < 0.0) error->all(FLERR,"Illegal compute entropy/atom" " command; negative sigma"); cutoff = force->numeric(FLERR,arg[4]); - if (cutoff < 0.0) error->all(FLERR,"Illegal compute pentropy/atom" + if (cutoff < 0.0) error->all(FLERR,"Illegal compute entropy/atom" " command; negative cutoff"); avg_flag = 0; @@ -73,24 +73,24 @@ ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"avg") == 0) { if (iarg+2 > narg) - error->all(FLERR,"Illegal compute pentropy/atom;" + error->all(FLERR,"Illegal compute entropy/atom;" " missing arguments after avg"); if (strcmp(arg[iarg+1],"yes") == 0) avg_flag = 1; else if (strcmp(arg[iarg+1],"no") == 0) avg_flag = 0; - else error->all(FLERR,"Illegal compute pentropy/atom;" + else error->all(FLERR,"Illegal compute entropy/atom;" " argument after avg should be yes or no"); cutoff2 = force->numeric(FLERR,arg[iarg+2]); - if (cutoff2 < 0.0) error->all(FLERR,"Illegal compute pentropy/atom" + if (cutoff2 < 0.0) error->all(FLERR,"Illegal compute entropy/atom" " command; negative cutoff2"); cutsq2 = cutoff2*cutoff2; iarg += 3; } else if (strcmp(arg[iarg],"local") == 0) { if (strcmp(arg[iarg+1],"yes") == 0) local_flag = 1; else if (strcmp(arg[iarg+1],"no") == 0) local_flag = 0; - else error->all(FLERR,"Illegal compute pentropy/atom;" + else error->all(FLERR,"Illegal compute entropy/atom;" " argument after local should be yes or no"); iarg += 2; - } else error->all(FLERR,"Illegal compute pentropy/atom; argument after" + } else error->all(FLERR,"Illegal compute entropy/atom; argument after" " sigma and cutoff should be avg or local"); } @@ -110,7 +110,7 @@ ComputePairEntropyAtom(LAMMPS *lmp, int narg, char **arg) : /* ---------------------------------------------------------------------- */ -ComputePairEntropyAtom::~ComputePairEntropyAtom() +ComputeEntropyAtom::~ComputeEntropyAtom() { memory->destroy(pair_entropy); if (avg_flag) memory->destroy(pair_entropy_avg); @@ -118,7 +118,7 @@ ComputePairEntropyAtom::~ComputePairEntropyAtom() /* ---------------------------------------------------------------------- */ -void ComputePairEntropyAtom::init() +void ComputeEntropyAtom::init() { if (force->pair == NULL) error->all(FLERR,"Compute centro/atom requires a pair style be" @@ -126,16 +126,16 @@ void ComputePairEntropyAtom::init() if ( (cutoff+cutoff2) > (force->pair->cutforce + neighbor->skin) ) { - error->all(FLERR,"Compute pentropy/atom cutoff is longer than the" + error->all(FLERR,"Compute entropy/atom cutoff is longer than the" " pairwise cutoff. Increase the neighbor list skin" " distance."); } int count = 0; for (int i = 0; i < modify->ncompute; i++) - if (strcmp(modify->compute[i]->style,"pentropy/atom") == 0) count++; + if (strcmp(modify->compute[i]->style,"entropy/atom") == 0) count++; if (count > 1 && comm->me == 0) - error->warning(FLERR,"More than one compute pentropy/atom"); + error->warning(FLERR,"More than one compute entropy/atom"); // need a full neighbor list with neighbors of the ghost atoms @@ -151,14 +151,14 @@ void ComputePairEntropyAtom::init() /* ---------------------------------------------------------------------- */ -void ComputePairEntropyAtom::init_list(int id, NeighList *ptr) +void ComputeEntropyAtom::init_list(int id, NeighList *ptr) { list = ptr; } /* ---------------------------------------------------------------------- */ -void ComputePairEntropyAtom::compute_peratom() +void ComputeEntropyAtom::compute_peratom() { int i,j,ii,jj,inum,jnum; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; @@ -179,15 +179,15 @@ void ComputePairEntropyAtom::compute_peratom() if (!avg_flag) { memory->destroy(pair_entropy); nmax = atom->nmax; - memory->create(pair_entropy,nmax,"pentropy/atom:pair_entropy"); + memory->create(pair_entropy,nmax,"entropy/atom:pair_entropy"); vector_atom = pair_entropy; } else { memory->destroy(pair_entropy); memory->destroy(pair_entropy_avg); nmax = atom->nmax; - memory->create(pair_entropy,nmax,"pentropy/atom:pair_entropy"); + memory->create(pair_entropy,nmax,"entropy/atom:pair_entropy"); memory->create(pair_entropy_avg,nmax, - "pentropy/atom:pair_entropy_avg"); + "entropy/atom:pair_entropy_avg"); vector_atom = pair_entropy_avg; } } @@ -328,7 +328,7 @@ void ComputePairEntropyAtom::compute_peratom() memory usage of local atom-based array ------------------------------------------------------------------------- */ -double ComputePairEntropyAtom::memory_usage() +double ComputeEntropyAtom::memory_usage() { double bytes; if (!avg_flag) { diff --git a/src/USER-MISC/compute_pentropy_atom.h b/src/USER-MISC/compute_entropy_atom.h similarity index 77% rename from src/USER-MISC/compute_pentropy_atom.h rename to src/USER-MISC/compute_entropy_atom.h index 3333127418..c8ea19ae76 100644 --- a/src/USER-MISC/compute_pentropy_atom.h +++ b/src/USER-MISC/compute_entropy_atom.h @@ -13,21 +13,21 @@ #ifdef COMPUTE_CLASS -ComputeStyle(pentropy/atom,ComputePairEntropyAtom) +ComputeStyle(entropy/atom,ComputeEntropyAtom) #else -#ifndef COMPUTE_PAIR_ENTROPY_ATOM_H -#define COMPUTE_PAIR_ENTROPY_ATOM_H +#ifndef COMPUTE_ENTROPY_ATOM_H +#define COMPUTE_ENTROPY_ATOM_H #include "compute.h" namespace LAMMPS_NS { -class ComputePairEntropyAtom : public Compute { +class ComputeEntropyAtom : public Compute { public: - ComputePairEntropyAtom(class LAMMPS *, int, char **); - ~ComputePairEntropyAtom(); + ComputeEntropyAtom(class LAMMPS *, int, char **); + ~ComputeEntropyAtom(); void init(); void init_list(int, class NeighList *); void compute_peratom(); @@ -59,13 +59,13 @@ 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: Compute pentropy/atom requires a pair style be defined +E: Compute entropy/atom requires a pair style be defined This is because the computation of the pair entropy values uses a pairwise neighbor list. -W: More than one compute pentropy/atom +W: More than one compute entropy/atom -It is not efficient to use compute pentropy/atom more than once. +It is not efficient to use compute entropy/atom more than once. */ From 9108306c119c62fa3c387a8788b7196f2af42b5d Mon Sep 17 00:00:00 2001 From: PabloPiaggi Date: Sun, 24 Jun 2018 00:36:09 +0200 Subject: [PATCH 182/675] Shorter entropy/atom example --- examples/USER/misc/entropy/in.entropy | 2 +- examples/USER/misc/entropy/log.entropy | 254 +++---------------------- 2 files changed, 32 insertions(+), 224 deletions(-) diff --git a/examples/USER/misc/entropy/in.entropy b/examples/USER/misc/entropy/in.entropy index fcaffb68a1..2c25dac320 100644 --- a/examples/USER/misc/entropy/in.entropy +++ b/examples/USER/misc/entropy/in.entropy @@ -30,5 +30,5 @@ dump myDump all custom 500 dump.interface id type x y z c_1 c_2 c_3 c fix 1 all nph x 1. 1. 10. fix 2 all temp/csvr 350. 350. 0.1 64582 -run 100000 +run 1000 diff --git a/examples/USER/misc/entropy/log.entropy b/examples/USER/misc/entropy/log.entropy index 5f00e42273..bbd7061e68 100644 --- a/examples/USER/misc/entropy/log.entropy +++ b/examples/USER/misc/entropy/log.entropy @@ -1,17 +1,19 @@ LAMMPS (30 Mar 2018) - using 1 OpenMP thread(s) per MPI task -echo both units metal atom_style full read_data data.interface +Reading data file ... triclinic box = (0 0 0) to (138.4 34.57 34.57) with tilt (0 0 0) 4 by 1 by 1 MPI processor grid reading atoms ... 4096 atoms reading velocities ... 4096 velocities +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 0 = max # of 1-2 neighbors 0 = max # of 1-3 neighbors 0 = max # of 1-4 neighbors @@ -42,7 +44,7 @@ dump myDump all custom 500 dump.interface id type x y z c_1 c_2 c_3 c fix 1 all nph x 1. 1. 10. fix 2 all temp/csvr 350. 350. 0.1 64582 -run 100000 +run 1000 WARNING: More than one compute entropy/atom (../compute_entropy_atom.cpp:138) WARNING: More than one compute entropy/atom (../compute_entropy_atom.cpp:138) WARNING: More than one compute entropy/atom (../compute_entropy_atom.cpp:138) @@ -79,238 +81,44 @@ Neighbor list info ... pair build: copy stencil: none bin: none +Setting up Verlet run ... + Unit style : metal + Current step : 0 + Time step : 0.002 Per MPI rank memory allocation (min/avg/max) = 25.68 | 25.69 | 25.69 Mbytes Step Temp E_pair E_mol TotEng Press Volume 0 346.29871 -4285.222 0 -4101.9191 594.65353 165399.75 500 359.33758 -4285.247 0 -4095.0423 471.98587 165847.18 1000 348.99659 -4276.2274 0 -4091.4964 149.27188 166966.18 - 1500 341.56622 -4278.7772 0 -4097.9793 -296.95842 168025.4 - 2000 342.09406 -4277.6906 0 -4096.6132 -438.11647 168413.94 - 2500 352.25274 -4275.2717 0 -4088.8172 -330.50608 168120.05 - 3000 350.51318 -4282.4462 0 -4096.9125 -120.66318 167436.33 - 3500 353.70665 -4282.2946 0 -4095.0705 203.76807 166696.51 - 4000 349.96779 -4287.1098 0 -4101.8647 256.9956 166337.2 - 4500 343.72356 -4285.8089 0 -4103.869 206.49403 166407.34 - 5000 352.6139 -4287.1902 0 -4100.5445 81.796762 166694.74 - 5500 347.36366 -4287.0285 0 -4103.1618 -42.768886 167038.64 - 6000 350.3976 -4290.0332 0 -4104.5607 -133.74621 167194.61 - 6500 357.56345 -4286.2623 0 -4096.9967 -11.542553 167113.93 - 7000 355.32488 -4287.3852 0 -4099.3045 45.672669 166919.78 - 7500 347.11842 -4290.6564 0 -4106.9196 28.644843 166818.56 - 8000 352.57322 -4289.7964 0 -4103.1722 18.522414 166836.67 - 8500 354.8297 -4293.8761 0 -4106.0575 -42.234561 166867.25 - 9000 349.62065 -4298.6714 0 -4113.61 -92.546785 166824.11 - 9500 349.33305 -4300.1874 0 -4115.2784 -4.988033 166653.27 - 10000 351.2575 -4295.7452 0 -4109.8175 141.2923 166425.91 - 10500 352.35614 -4302.4997 0 -4115.9904 96.025177 166301.54 - 11000 345.79485 -4304.9271 0 -4121.8908 6.6400444 166310.83 - 11500 349.20236 -4307.0045 0 -4122.1646 25.603816 166291.49 - 12000 354.36642 -4304.3937 0 -4116.8204 43.401924 166335.86 - 12500 343.7124 -4302.9267 0 -4120.9928 -5.23105 166523.78 - 13000 363.53804 -4303.9652 0 -4111.5371 -17.241844 166690.48 - 13500 356.23025 -4304.3329 0 -4115.773 -121.76358 166814.59 - 14000 347.55 -4306.8848 0 -4122.9195 -174.52441 166791.16 - 14500 345.85547 -4309.3314 0 -4126.2631 -43.958619 166461.73 - 15000 350.84805 -4310.3616 0 -4124.6506 118.60917 165964.43 - 15500 349.59675 -4320.2537 0 -4135.2051 143.5776 165581.16 - 16000 349.05247 -4310.2702 0 -4125.5096 299.15489 165512.52 - 16500 357.63567 -4318.1626 0 -4128.8588 70.60951 165914.49 - 17000 352.29836 -4313.8988 0 -4127.4202 -116.44882 166435.75 - 17500 350.49924 -4315.0109 0 -4129.4846 -248.88877 166746.88 - 18000 352.05592 -4314.5162 0 -4128.1659 -164.78373 166635.14 - 18500 348.83853 -4316.1558 0 -4131.5085 -84.641318 166256.38 - 19000 352.52592 -4309.9888 0 -4123.3897 190.51243 165908.63 - 19500 346.13457 -4317.9779 0 -4134.7618 44.213931 165816.35 - 20000 340.17775 -4314.0744 0 -4134.0114 64.495233 165894.74 - 20500 354.06551 -4316.181 0 -4128.7669 -1.4490795 166094.86 - 21000 344.8874 -4316.8088 0 -4134.2529 -118.9424 166286.09 - 21500 354.15586 -4317.3745 0 -4129.9126 -104.15677 166331.42 - 22000 345.8013 -4317.8175 0 -4134.7778 -80.729172 166262.57 - 22500 349.11462 -4323.1371 0 -4138.3436 -107.29158 166095.83 - 23000 343.99139 -4319.5125 0 -4137.4309 71.487855 165825.41 - 23500 349.80225 -4324.909 0 -4139.7516 34.440631 165638.23 - 24000 348.65063 -4325.2073 0 -4140.6594 53.656181 165646.33 - 24500 356.4067 -4331.0609 0 -4142.4076 -53.238796 165745.71 - 25000 349.90889 -4325.3671 0 -4140.1532 7.5156313 165867.84 - 25500 348.55479 -4335.2096 0 -4150.7124 -154.7789 165856.27 - 26000 346.09492 -4332.421 0 -4149.2259 -50.232622 165660.79 - 26500 344.75355 -4334.4345 0 -4151.9494 54.441512 165388.22 - 27000 346.01888 -4340.9678 0 -4157.813 77.590267 165122.38 - 27500 350.13903 -4338.2832 0 -4152.9475 134.25294 165063.15 - 28000 349.4507 -4336.2772 0 -4151.3059 120.90268 165197.05 - 28500 349.89188 -4337.2205 0 -4152.0156 -7.4448137 165466.05 - 29000 352.06855 -4336.4999 0 -4150.1429 -72.487845 165711.12 - 29500 348.70134 -4335.081 0 -4150.5063 -122.13386 165799.73 - 30000 349.80677 -4341.2595 0 -4156.0997 -177.94864 165698.03 - 30500 347.84982 -4339.92 0 -4155.796 -11.150253 165358.49 - 31000 350.8215 -4337.9393 0 -4152.2423 169.74393 164968.86 - 31500 350.71421 -4340.8771 0 -4155.2369 221.49124 164741.67 - 32000 349.9693 -4342.8528 0 -4157.6069 171.42476 164849.23 - 32500 352.56459 -4340.4746 0 -4153.855 50.564424 165207.87 - 33000 348.20348 -4340.6347 0 -4156.3235 -142.44617 165619.29 - 33500 345.52103 -4341.0103 0 -4158.119 -239.73388 165867.73 - 34000 340.18612 -4339.2415 0 -4159.1741 -229.24652 165814.16 - 34500 346.29644 -4342.3771 0 -4159.0754 -66.184467 165447.7 - 35000 348.41012 -4339.9899 0 -4155.5693 116.11721 165057.16 - 35500 349.8102 -4342.6138 0 -4157.4521 162.46419 164869.8 - 36000 345.12148 -4342.1816 0 -4159.5018 93.299897 164971.27 - 36500 350.1662 -4340.7476 0 -4155.3975 17.1695 165283.86 - 37000 345.02071 -4333.5625 0 -4150.9361 -19.777882 165591.43 - 37500 351.61529 -4339.4316 0 -4153.3145 -163.6161 165720.09 - 38000 351.12679 -4334.814 0 -4148.9555 -41.24883 165586.63 - 38500 357.46153 -4338.5489 0 -4149.3373 48.449588 165358.68 - 39000 354.37011 -4343.9595 0 -4156.3842 24.197319 165158.97 - 39500 344.87813 -4340.2123 0 -4157.6613 45.305702 165085.33 - 40000 357.02868 -4344.263 0 -4155.2805 38.581773 165138.93 - 40500 356.49851 -4340.4739 0 -4151.772 43.25324 165302.5 - 41000 355.84229 -4342.0156 0 -4153.661 -84.423576 165491.7 - 41500 345.13117 -4338.685 0 -4156.0001 -103.00745 165528 - 42000 346.53963 -4336.6348 0 -4153.2044 -13.071264 165436.39 - 42500 351.00431 -4335.7733 0 -4149.9796 68.464006 165317.65 - 43000 355.65919 -4342.096 0 -4153.8384 -5.7513562 165240.95 - 43500 346.67881 -4340.4327 0 -4156.9286 27.104052 165178.78 - 44000 344.93607 -4341.5588 0 -4158.9771 29.983072 165226.93 - 44500 344.96898 -4344.4191 0 -4161.82 -63.544956 165331.7 - 45000 355.79519 -4340.2996 0 -4151.97 -5.5354943 165421.38 - 45500 354.21428 -4340.4899 0 -4152.9971 -45.808519 165514.22 - 46000 347.90456 -4337.7045 0 -4153.5516 -70.472446 165549.25 - 46500 342.30611 -4339.8561 0 -4158.6665 -89.138875 165515.54 - 47000 349.18619 -4339.6708 0 -4154.8395 -22.391799 165392.52 - 47500 355.54068 -4340.9861 0 -4152.7912 48.059812 165261.21 - 48000 349.85193 -4341.0492 0 -4155.8655 10.4874 165233.41 - 48500 350.48062 -4340.3555 0 -4154.839 34.514274 165241.37 - 49000 350.22062 -4337.3446 0 -4151.9657 66.516852 165234.86 - 49500 353.48854 -4342.606 0 -4155.4973 18.178574 165232.42 - 50000 355.4353 -4340.503 0 -4152.3639 82.642485 165242.94 - 50500 356.03755 -4337.8136 0 -4149.3557 79.237302 165308.35 - 51000 348.26583 -4338.9903 0 -4154.6461 23.965877 165360.09 - 51500 353.84885 -4342.682 0 -4155.3826 -65.297839 165421.25 - 52000 348.38906 -4335.7957 0 -4151.3863 -16.337804 165488.67 - 52500 348.33732 -4340.4442 0 -4156.0621 -71.786085 165459.21 - 53000 351.36882 -4340.8694 0 -4154.8828 -11.818052 165334.01 - 53500 349.66487 -4340.899 0 -4155.8143 64.774989 165157.06 - 54000 354.52673 -4341.5591 0 -4153.9009 103.84648 165043.7 - 54500 347.97543 -4341.7648 0 -4157.5743 60.697135 165103.56 - 55000 349.7801 -4341.6796 0 -4156.5339 3.186648 165284.19 - 55500 349.90814 -4337.5213 0 -4152.3079 -15.40375 165470.58 - 56000 350.89011 -4341.7859 0 -4156.0527 -101.06113 165536.95 - 56500 338.10783 -4336.0802 0 -4157.1129 0.46390075 165365.62 - 57000 355.8832 -4336.8791 0 -4148.5029 163.76227 165095.76 - 57500 343.20161 -4337.579 0 -4155.9154 173.89034 164877.3 - 58000 347.30883 -4338.8572 0 -4155.0196 196.75267 164858.65 - 58500 347.11195 -4338.1293 0 -4154.3959 107.96277 165100.21 - 59000 356.20588 -4336.869 0 -4148.322 32.98048 165438.3 - 59500 352.20196 -4340.4404 0 -4154.0127 -147.74801 165733.29 - 60000 348.50087 -4338.2613 0 -4153.7927 -201.37766 165872.68 - 60500 350.83512 -4338.2378 0 -4152.5337 -157.3473 165788.59 - 61000 358.06869 -4336.2653 0 -4146.7323 49.66101 165406.04 - 61500 351.59222 -4342.9905 0 -4156.8856 123.56829 164946.67 - 62000 357.85029 -4342.5571 0 -4153.1396 272.18018 164672.22 - 62500 353.07998 -4345.1721 0 -4158.2797 182.18366 164762.57 - 63000 350.29241 -4336.295 0 -4150.8781 96.838396 165199.84 - 63500 351.93686 -4344.5516 0 -4158.2643 -231.395 165711.73 - 64000 351.23761 -4338.6588 0 -4152.7416 -237.8481 165989.41 - 64500 347.96971 -4335.4865 0 -4151.299 -189.76455 165932.6 - 65000 354.37539 -4337.2906 0 -4149.7125 -43.526372 165522.64 - 65500 357.5777 -4346.4633 0 -4157.1902 81.72156 165007.06 - 66000 354.14242 -4345.6382 0 -4158.1834 195.69703 164658.89 - 66500 349.96045 -4338.6632 0 -4153.422 257.21076 164693.92 - 67000 347.83399 -4342.9995 0 -4158.8839 39.429532 165109.39 - 67500 349.19688 -4339.7486 0 -4154.9116 -70.657587 165534.67 - 68000 345.04999 -4335.0979 0 -4152.456 -178.5504 165788.23 - 68500 352.27772 -4337.4216 0 -4150.9539 -159.95859 165787.12 - 69000 352.83425 -4340.4687 0 -4153.7064 -93.500881 165526.1 - 69500 347.74369 -4339.3835 0 -4155.3157 84.591777 165119.47 - 70000 352.65319 -4339.132 0 -4152.4655 214.03749 164904.63 - 70500 349.83427 -4340.3861 0 -4155.2117 123.57829 165013.52 - 71000 348.51668 -4344.6661 0 -4160.1891 -33.962211 165235.42 - 71500 345.71481 -4339.4514 0 -4156.4576 -73.059935 165447.89 - 72000 354.93417 -4341.68 0 -4153.8061 -94.767012 165533.4 - 72500 342.42761 -4341.9235 0 -4160.6696 -129.2131 165509.21 - 73000 349.91799 -4336.9832 0 -4151.7645 14.219496 165403.37 - 73500 344.75733 -4339.5268 0 -4157.0398 18.088244 165274.21 - 74000 353.01313 -4335.8263 0 -4148.9693 165.34097 165149.7 - 74500 353.70264 -4340.5322 0 -4153.3102 55.785855 165128.92 - 75000 355.60934 -4337.9827 0 -4149.7514 103.87392 165190.99 - 75500 349.91446 -4339.5314 0 -4154.3146 -9.8601217 165344.74 - 76000 343.95016 -4344.3242 0 -4162.2644 -180.90986 165482.68 - 76500 348.77873 -4339.8225 0 -4155.2069 -82.808012 165511.02 - 77000 346.21282 -4336.4572 0 -4153.1998 7.4507551 165423.52 - 77500 355.35737 -4339.7581 0 -4151.6602 16.915858 165319.8 - 78000 351.13843 -4339.5992 0 -4153.7345 25.286516 165279.14 - 78500 349.57827 -4338.7768 0 -4153.738 13.676393 165287.51 - 79000 350.44899 -4341.8942 0 -4156.3945 -35.020193 165301.74 - 79500 345.50828 -4338.3401 0 -4155.4555 12.691593 165316.89 - 80000 349.19427 -4341.8139 0 -4156.9783 -60.176128 165350.63 - 80500 347.23088 -4340.8887 0 -4157.0923 -8.1510933 165352.41 - 81000 350.69564 -4338.1451 0 -4152.5148 63.352509 165336.37 - 81500 353.51603 -4341.4634 0 -4154.3402 18.963339 165273.49 - 82000 357.99109 -4339.5813 0 -4150.0894 111.83287 165142.45 - 82500 348.95721 -4339.3975 0 -4154.6873 133.99884 165049.94 - 83000 348.40851 -4341.4694 0 -4157.0497 99.552375 165079.83 - 83500 351.56311 -4340.478 0 -4154.3885 43.625398 165236.42 - 84000 350.94582 -4342.5887 0 -4156.826 -61.009621 165425.36 - 84500 348.85285 -4340.2908 0 -4155.6359 -121.20155 165518.82 - 85000 350.93338 -4338.5274 0 -4152.7712 -24.578168 165453.02 - 85500 350.05705 -4341.015 0 -4155.7227 44.257207 165274.03 - 86000 354.23801 -4340.9418 0 -4153.4364 95.178264 165077.53 - 86500 361.17307 -4345.1753 0 -4153.9991 161.19621 164939.38 - 87000 350.69942 -4342.2517 0 -4156.6193 132.57345 164951.93 - 87500 351.46682 -4338.9653 0 -4152.9268 83.174091 165203.95 - 88000 345.03368 -4341.8378 0 -4159.2045 -169.97976 165616.84 - 88500 351.70033 -4339.5377 0 -4153.3755 -203.97263 165858.93 - 89000 355.54446 -4339.2207 0 -4151.0238 -123.1241 165752.79 - 89500 350.31818 -4334.7628 0 -4149.3323 77.462164 165324.49 - 90000 351.20604 -4343.5238 0 -4157.6233 133.64807 164890.85 - 90500 348.0003 -4348.9685 0 -4164.7649 118.91427 164657.96 - 91000 347.21483 -4342.3391 0 -4158.5512 226.41338 164732.47 - 91500 347.27277 -4342.6341 0 -4158.8156 10.500178 165159.97 - 92000 344.50771 -4340.5474 0 -4158.1925 -199.65031 165723.91 - 92500 349.4828 -4342.4558 0 -4157.4674 -334.92794 166050.96 - 93000 349.90926 -4338.4776 0 -4153.2635 -265.95682 165968.52 - 93500 343.01305 -4340.5317 0 -4158.968 -100.92764 165495.12 - 94000 347.78156 -4341.2655 0 -4157.1777 146.28391 164933.04 - 94500 353.69177 -4341.067 0 -4153.8507 304.79658 164618.69 - 95000 346.04459 -4345.6353 0 -4162.4669 171.92493 164732.34 - 95500 347.79068 -4338.9943 0 -4154.9017 76.774034 165167.7 - 96000 344.56458 -4340.0235 0 -4157.6384 -160.40807 165608.59 - 96500 340.37553 -4342.8492 0 -4162.6815 -276.60876 165807.48 - 97000 347.18941 -4341.2676 0 -4157.4932 -178.69421 165633 - 97500 349.64071 -4340.366 0 -4155.2941 41.608903 165242.92 - 98000 349.52995 -4342.5772 0 -4157.5639 173.81028 164884.94 - 98500 350.04404 -4338.4153 0 -4153.1299 265.77826 164754.57 - 99000 345.61445 -4341.8018 0 -4158.861 130.70276 164941.11 - 99500 353.39327 -4337.2886 0 -4150.2304 79.630342 165241.58 - 100000 349.21591 -4340.4937 0 -4155.6466 -98.981878 165526.52 -Loop time of 333.54 on 4 procs for 100000 steps with 4096 atoms +Loop time of 5.36291 on 4 procs for 1000 steps with 4096 atoms -Performance: 51.808 ns/day, 0.463 hours/ns, 299.814 timesteps/s -97.9% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 32.221 ns/day, 0.745 hours/ns, 186.466 timesteps/s +99.9% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 262.06 | 266.81 | 271.72 | 26.0 | 79.99 -Bond | 0.0072134 | 0.010317 | 0.013051 | 2.4 | 0.00 -Neigh | 33.331 | 33.927 | 34.4 | 7.3 | 10.17 -Comm | 7.4881 | 11.613 | 16.368 | 106.5 | 3.48 -Output | 12.849 | 12.854 | 12.867 | 0.2 | 3.85 -Modify | 6.3196 | 7.428 | 9.0238 | 42.1 | 2.23 -Other | | 0.8935 | | | 0.27 +Pair | 4.1944 | 4.2946 | 4.437 | 4.5 | 80.08 +Bond | 0.0002267 | 0.00025637 | 0.00029458 | 0.0 | 0.00 +Neigh | 0.43028 | 0.43502 | 0.44292 | 0.7 | 8.11 +Comm | 0.053663 | 0.20256 | 0.30119 | 21.2 | 3.78 +Output | 0.34876 | 0.34877 | 0.34878 | 0.0 | 6.50 +Modify | 0.066335 | 0.067822 | 0.069094 | 0.4 | 1.26 +Other | | 0.01392 | | | 0.26 -Nlocal: 1024 ave 1029 max 1016 min -Histogram: 1 0 0 0 0 1 0 0 0 2 -Nghost: 4741.75 ave 4759 max 4706 min -Histogram: 1 0 0 0 0 0 0 0 2 1 -Neighs: 124070 ave 125011 max 122645 min -Histogram: 1 0 0 0 1 0 0 0 0 2 -FullNghs: 248139 ave 250140 max 245351 min -Histogram: 1 0 0 0 1 0 0 0 0 2 +Nlocal: 1024 ave 1040 max 1001 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Nghost: 4614.25 ave 4700 max 4540 min +Histogram: 1 1 0 0 0 0 0 1 0 1 +Neighs: 121747 ave 126398 max 116931 min +Histogram: 1 0 0 1 0 0 1 0 0 1 +FullNghs: 243494 ave 252523 max 233842 min +Histogram: 1 0 0 1 0 0 1 0 0 1 -Total # of neighbors = 992556 -Ave neighs/atom = 242.323 +Total # of neighbors = 973974 +Ave neighs/atom = 237.787 Ave special neighs/atom = 0 -Neighbor list builds = 1222 +Neighbor list builds = 13 Dangerous builds = 0 -Total wall time: 0:05:33 +Total wall time: 0:00:05 From e2c03f0596c93adb97678b8dc311b2be92fd6c57 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 25 Jun 2018 02:55:16 -0400 Subject: [PATCH 183/675] Simplify build system conflict checks - removes redundant code for conflict checks - updates and expands original check to report fatal error instead of ignoring files - removes obsolete DetectAndRemovePackageHeader and RemovePackageHeader utility functions which are no longer needed - adds utility function DetectBuildSystemConflict, which loops over files and reports an error if they exist in the lammps src directory. - updates definition of LAMMPS_SOURCE_DIR, LAMMPS_LIB_SOURCE_DIR and LAMMPS_LIB_BINARY_DIR to be absolute paths. This improves instructions in error messages --- cmake/CMakeLists.txt | 56 ++++++++++++---------------- cmake/Modules/StyleHeaderUtils.cmake | 51 +++++++++++-------------- 2 files changed, 46 insertions(+), 61 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3dc1dac00c..5a7b086a24 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -6,9 +6,10 @@ cmake_minimum_required(VERSION 2.8.12) project(lammps CXX) set(SOVERSION 0) -set(LAMMPS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src) -set(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib) -set(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib) +get_filename_component(LAMMPS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src ABSOLUTE) +get_filename_component(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib ABSOLUTE) +get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE) + #To not conflict with old Makefile build system, we build everything here file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp) @@ -23,9 +24,6 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS) set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE) endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS) -file(GLOB SRC_FILES ${LAMMPS_SOURCE_DIR}/*.cpp) -list(SORT SRC_FILES) - # check for files auto-generated by make-based buildsystem # this is fast, so check for it all the time message(STATUS "Running check for auto-generated files from make-based build system") @@ -34,24 +32,16 @@ list(APPEND SRC_AUTOGEN_FILES ${LAMMPS_SOURCE_DIR}/lmpinstalledpkgs.h) foreach(_SRC ${SRC_AUTOGEN_FILES}) get_filename_component(FILENAME "${_SRC}" NAME) if(EXISTS ${LAMMPS_SOURCE_DIR}/${FILENAME}) - message(FATAL_ERROR "\nFound header file(s) generated by the make-based build system.\nPlease run 'make -C ${LAMMPS_SOURCE_DIR} purge' to remove") + message(FATAL_ERROR "\n########################################################################\n" + "Found header file(s) generated by the make-based build system\n" + "\n" + "Please run\n" + "make -C ${LAMMPS_SOURCE_DIR} purge\n" + "to remove\n" + "########################################################################") endif() endforeach() -# check for files from packages installed by the make-based buildsystem -# this is slow, so only run this check if there are new files -if(NOT SRC_FILES STREQUAL SRC_FILES_CACHED) - file(GLOB SRC_PKG_FILES ${LAMMPS_SOURCE_DIR}/*/*.cpp) - message(STATUS "Running check for packages installed with 'make yes-' (this may take a while)") - foreach(_SRC ${SRC_PKG_FILES}) - get_filename_component(FILENAME "${_SRC}" NAME) - if(EXISTS ${LAMMPS_SOURCE_DIR}/${FILENAME}) - message(FATAL_ERROR "\nFound package(s) installed by the make-based build system\nPlease run 'make -C ${LAMMPS_SOURCE_DIR} no-all purge' to uninstall") - endif() - endforeach() - set(SRC_FILES_CACHED "${SRC_FILES}" CACHE INTERNAL "List of file in LAMMPS_SOURCE_DIR" FORCE) -endif() - ###################################################################### # compiler tests # these need ot be done early (before further tests). @@ -478,20 +468,11 @@ RegisterStyles(${LAMMPS_SOURCE_DIR}) foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES}) set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG}) - # ignore PKG files which were manually installed in src folder - # headers are ignored during RegisterStyles file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp) file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h) - foreach(PKG_FILE in ${${PKG}_SOURCES}) - get_filename_component(FNAME ${PKG_FILE} NAME) - list(REMOVE_ITEM LIB_SOURCES ${LAMMPS_SOURCE_DIR}/${FNAME}) - endforeach() - - foreach(PKG_FILE in ${${PKG}_HEADERS}) - get_filename_component(FNAME ${PKG_FILE} NAME) - DetectAndRemovePackageHeader(${LAMMPS_SOURCE_DIR}/${FNAME}) - endforeach() + # check for package files in src directory due to old make system + DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS}) if(PKG_${PKG}) # detects styles in package and adds them to global list @@ -502,6 +483,17 @@ foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES}) endif() endforeach() +# dedicated check for entire contents of accelerator packages +foreach(PKG ${ACCEL_PACKAGES}) + set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG}) + + file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp) + file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h) + + # check for package files in src directory due to old make system + DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS}) +endforeach() + ############################################## # add lib sources of (simple) enabled packages ############################################ diff --git a/cmake/Modules/StyleHeaderUtils.cmake b/cmake/Modules/StyleHeaderUtils.cmake index c6f580f463..2def9ebc88 100644 --- a/cmake/Modules/StyleHeaderUtils.cmake +++ b/cmake/Modules/StyleHeaderUtils.cmake @@ -107,35 +107,6 @@ function(RegisterStyles search_path) FindStyleHeaders(${search_path} REGION_CLASS region_ REGION ) # region ) # domain endfunction(RegisterStyles) -function(RemovePackageHeader headers pkg_header) - get_property(hlist GLOBAL PROPERTY ${headers}) - list(REMOVE_ITEM hlist ${pkg_header}) - set_property(GLOBAL PROPERTY ${headers} "${hlist}") -endfunction(RemovePackageHeader) - -function(DetectAndRemovePackageHeader fname) - RemovePackageHeader(ANGLE ${fname}) - RemovePackageHeader(ATOM_VEC ${fname}) - RemovePackageHeader(BODY ${fname}) - RemovePackageHeader(BOND ${fname}) - RemovePackageHeader(COMMAND ${fname}) - RemovePackageHeader(COMPUTE ${fname}) - RemovePackageHeader(DIHEDRAL ${fname}) - RemovePackageHeader(DUMP ${fname}) - RemovePackageHeader(FIX ${fname}) - RemovePackageHeader(IMPROPER ${fname}) - RemovePackageHeader(INTEGRATE ${fname}) - RemovePackageHeader(KSPACE ${fname}) - RemovePackageHeader(MINIMIZE ${fname}) - RemovePackageHeader(NBIN ${fname}) - RemovePackageHeader(NPAIR ${fname}) - RemovePackageHeader(NSTENCIL ${fname}) - RemovePackageHeader(NTOPO ${fname}) - RemovePackageHeader(PAIR ${fname}) - RemovePackageHeader(READER ${fname}) - RemovePackageHeader(REGION ${fname}) -endfunction(DetectAndRemovePackageHeader) - function(RegisterStylesExt search_path extension sources) FindStyleHeadersExt(${search_path} ANGLE_CLASS ${extension} ANGLE ${sources}) FindStyleHeadersExt(${search_path} ATOM_CLASS ${extension} ATOM_VEC ${sources}) @@ -181,3 +152,25 @@ function(GenerateStyleHeaders output_path) GenerateStyleHeader(${output_path} READER reader ) # read_dump GenerateStyleHeader(${output_path} REGION region ) # domain endfunction(GenerateStyleHeaders) + +function(DetectBuildSystemConflict lammps_src_dir) + math(EXPR N "${ARGC}-1") + + if(N GREATER 0) + math(EXPR ARG_END "${ARGC}-1") + + foreach(IDX RANGE 1 ${ARG_END}) + list(GET ARGV ${IDX} SRC_FILE) + get_filename_component(FILENAME ${SRC_FILE} NAME) + if(EXISTS ${lammps_src_dir}/${FILENAME}) + message(FATAL_ERROR "\n########################################################################\n" + "Found package(s) installed by the make-based build system\n" + "\n" + "Please run\n" + "make -C ${lammps_src_dir} no-all purge\n" + "to uninstall\n" + "########################################################################") + endif() + endforeach() + endif() +endfunction(DetectBuildSystemConflict) From c4d0994d5e60f813c7eba71a02f0d80ce16cdca4 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Mon, 25 Jun 2018 06:29:24 -0600 Subject: [PATCH 184/675] cmake: fixed a typo --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index a434b982e4..0074ba9cdb 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -229,7 +229,7 @@ if(PKG_PYTHON) add_definitions(-DLMP_PYTHON) include_directories(${PYTHON_INCLUDE_DIR}) list(APPEND LAMMPS_LINK_LIBS ${PYTHON_LIBRARY}) - if(BUILDLIB AND BUILD_SHARED_LIBS) + if(BUILD_LIB AND BUILD_SHARED_LIBS) if(NOT PYTHON_INSTDIR) execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import distutils.sysconfig as cg; print(cg.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))" From cb2cf5b7730761d11aec04265cbc754c5009a62d Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Mon, 25 Jun 2018 06:31:09 -0600 Subject: [PATCH 185/675] cmake: fixed comment --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 0074ba9cdb..2bbc316902 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -462,7 +462,7 @@ set(MATH_LIBRARIES "m" CACHE STRING "math library") mark_as_advanced( MATH_LIBRARIES ) include(CheckLibraryExists) if (CMAKE_VERSION VERSION_LESS "3.4") - enable_language(C) # check_library_exists isn't support with a c compiler before v3.4 + enable_language(C) # check_library_exists isn't supported without a c compiler before v3.4 endif() foreach(FUNC sin cos) check_library_exists(${MATH_LIBRARIES} ${FUNC} "" FOUND_${FUNC}_${MATH_LIBRARIES}) From 06b3209ad8d214f6380a3bd363c18082c578e3c7 Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 25 Jun 2018 09:56:39 -0600 Subject: [PATCH 186/675] Commit JT 062518 --- examples/SPIN/read_restart/in.spin.read_data | 6 +++--- examples/SPIN/read_restart/in.spin.restart | 9 +++------ examples/SPIN/read_restart/in.spin.write_restart | 16 +++++++--------- src/SPIN/atom_vec_spin.cpp | 10 +++++----- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/examples/SPIN/read_restart/in.spin.read_data b/examples/SPIN/read_restart/in.spin.read_data index ba667e0b43..88a2dc7f0a 100644 --- a/examples/SPIN/read_restart/in.spin.read_data +++ b/examples/SPIN/read_restart/in.spin.read_data @@ -6,12 +6,12 @@ atom_style spin # necessary for the serial algorithm (sametag) atom_modify map array -read_data Norm_randXY_8x8x32.data +read_data ../examples/SPIN/read_restart/Norm_randXY_8x8x32.data mass 1 58.93 pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 1.0 bin @@ -40,6 +40,6 @@ thermo_style custom step time v_magnorm v_emag v_tmag temp etotal thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] +dump 10 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] run 100 diff --git a/examples/SPIN/read_restart/in.spin.restart b/examples/SPIN/read_restart/in.spin.restart index f4b528fe68..f44616ca42 100644 --- a/examples/SPIN/read_restart/in.spin.restart +++ b/examples/SPIN/read_restart/in.spin.restart @@ -8,18 +8,15 @@ boundary p p p # necessary for the serial algorithm (sametag) atom_modify map array -read_restart restart_fcc_cobalt.equil - +read_restart restart_hcp_cobalt.equil # setting mass, mag. moments, and interactions mass 1 58.93 -# define magneto-mechanical potentials and forces - pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 neighbor 1.0 bin neigh_modify every 1 check no delay 0 diff --git a/examples/SPIN/read_restart/in.spin.write_restart b/examples/SPIN/read_restart/in.spin.write_restart index 3acb33fbd8..84fea24611 100644 --- a/examples/SPIN/read_restart/in.spin.write_restart +++ b/examples/SPIN/read_restart/in.spin.write_restart @@ -9,7 +9,7 @@ boundary p p p # necessary for the serial algorithm (sametag) atom_modify map array -lattice fcc 3.54 +lattice hcp 2.5071 region box block 0.0 5.0 0.0 5.0 0.0 5.0 create_box 1 box create_atoms 1 box @@ -19,19 +19,17 @@ create_atoms 1 box mass 1 58.93 set group all spin/random 31 1.72 -velocity all create 100 4928459 rot yes dist gaussian -pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +pair_style spin/exchange 4.0 +pair_coeff * * exchange 4.0 0.3593 1.135028015e-05 1.064568567 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 +fix 2 all langevin/spin 100.0 0.01 21 -fix 3 all nve/spin lattice yes +fix 3 all nve/spin lattice no timestep 0.0001 # compute and output options @@ -52,6 +50,6 @@ thermo 100 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] -run 5000 -write_restart restart_fcc_cobalt.equil +run 1000 +write_restart restart_hcp_cobalt.equil diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 20888290a0..4871fe0c40 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -44,11 +44,9 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) molecular = 0; mass_type = 1; forceclearflag = 1; - atom->sp_flag = 1; comm_x_only = 0; comm_f_only = 0; - size_forward = 7; size_reverse = 6; size_border = 10; @@ -56,6 +54,8 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) size_data_atom = 9; size_data_vel = 4; xcol_data = 4; + + atom->sp_flag = 1; } @@ -681,7 +681,7 @@ int AtomVecSpin::size_restart() int i; int nlocal = atom->nlocal; - int n = 16 * nlocal; + int n = 15 * nlocal; if (atom->nextra_restart) for (int iextra = 0; iextra < atom->nextra_restart; iextra++) @@ -907,8 +907,8 @@ void AtomVecSpin::write_data(FILE *fp, int n, double **buf) (tagint) ubuf(buf[i][0]).i,(int) ubuf(buf[i][1]).i, buf[i][2],buf[i][3],buf[i][4], buf[i][5],buf[i][6],buf[i][7],buf[i][8], - (int) ubuf(buf[i][10]).i,(int) ubuf(buf[i][11]).i, - (int) ubuf(buf[i][12]).i); + (int) ubuf(buf[i][9]).i,(int) ubuf(buf[i][10]).i, + (int) ubuf(buf[i][11]).i); } /* ---------------------------------------------------------------------- From bad750eb2b6a0803f86f492f804ed00dd57390ca Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 25 Jun 2018 19:34:10 -0400 Subject: [PATCH 187/675] move LATTE ABI version constant into a define at the top of fix latte, as suggested by @sjplimp --- src/LATTE/fix_latte.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/LATTE/fix_latte.cpp b/src/LATTE/fix_latte.cpp index 4a3fc81f51..ed0eaa7520 100644 --- a/src/LATTE/fix_latte.cpp +++ b/src/LATTE/fix_latte.cpp @@ -34,6 +34,11 @@ using namespace LAMMPS_NS; using namespace FixConst; +// this constant must remain consistent with the +// LATTE library and the ABI prototype below + +#define LATTE_ABIVERSION 20180622 + extern "C" { void latte(int *, int *, double *, int *, int *, double *, double *, double *, double *, @@ -55,7 +60,7 @@ FixLatte::FixLatte(LAMMPS *lmp, int narg, char **arg) : if (comm->nprocs != 1) error->all(FLERR,"Fix latte currently runs only in serial"); - if (20180622 != latte_abiversion()) + if (LATTE_ABIVERSION != latte_abiversion()) error->all(FLERR,"LAMMPS is linked against incompatible LATTE library"); if (narg != 4) error->all(FLERR,"Illegal fix latte command"); From 49a91db0b20fcba1741800afdf5db6ef89baf459 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 25 Jun 2018 17:43:31 -0600 Subject: [PATCH 188/675] small changes to last LATTE PR, including xControl to upper case --- ...r.ch4.consecutive.md => in.latte.multiple} | 0 examples/latte/latte.in | 2 +- .../latte/log.21Jun18.latte.multiple.g++.1 | 171 ++++++++++++++++++ lib/latte/Install.py | 2 +- src/LATTE/fix_latte.cpp | 3 +- 5 files changed, 175 insertions(+), 3 deletions(-) rename examples/latte/{in.latte.water.ch4.consecutive.md => in.latte.multiple} (100%) create mode 100644 examples/latte/log.21Jun18.latte.multiple.g++.1 diff --git a/examples/latte/in.latte.water.ch4.consecutive.md b/examples/latte/in.latte.multiple similarity index 100% rename from examples/latte/in.latte.water.ch4.consecutive.md rename to examples/latte/in.latte.multiple diff --git a/examples/latte/latte.in b/examples/latte/latte.in index de905f411e..f927313457 100644 --- a/examples/latte/latte.in +++ b/examples/latte/latte.in @@ -9,7 +9,7 @@ LATTE INPUT FILE #General controls CONTROL{ - xControl= 1 + XCONTROL= 1 BASISTYPE= NONORTHO PARAMPATH= "./TBparam" KBT= 0.0 diff --git a/examples/latte/log.21Jun18.latte.multiple.g++.1 b/examples/latte/log.21Jun18.latte.multiple.g++.1 new file mode 100644 index 0000000000..2c624e4371 --- /dev/null +++ b/examples/latte/log.21Jun18.latte.multiple.g++.1 @@ -0,0 +1,171 @@ +LAMMPS (22 Jun 2018) +units metal +atom_style full +atom_modify sort 0 0.0 # turn off sorting of the coordinates + +read_data data.water + orthogonal box = (0 0 0) to (6.267 6.267 6.267) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 24 atoms + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + +# initialize system + +velocity all create 0.0 87287 loop geom + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.00025 + +fix 1 all nve +fix 2 all latte NULL +fix_modify 2 energy yes + +thermo_style custom step temp pe etotal press + +# dynamics + +thermo 10 +run 10 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 7 7 7 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.629 | 5.629 | 5.629 Mbytes +Step Temp PotEng TotEng Press + 0 0 -104.95596 -104.95596 48235.442 + 10 336.53107 -105.96027 -104.95977 97996.851 +Loop time of 0.912921 on 1 procs for 10 steps with 24 atoms + +Performance: 0.237 ns/day, 101.436 hours/ns, 10.954 timesteps/s +6614.5% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.3392e-05 | 4.3392e-05 | 4.3392e-05 | 0.0 | 0.00 +Bond | 3.8862e-05 | 3.8862e-05 | 3.8862e-05 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.00036955 | 0.00036955 | 0.00036955 | 0.0 | 0.04 +Output | 9.799e-05 | 9.799e-05 | 9.799e-05 | 0.0 | 0.01 +Modify | 0.91199 | 0.91199 | 0.91199 | 0.0 | 99.90 +Other | | 0.0003812 | | | 0.04 + +Nlocal: 24 ave 24 max 24 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 71 ave 71 max 71 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 37 ave 37 max 37 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 37 +Ave neighs/atom = 1.54167 +Ave special neighs/atom = 0 +Neighbor list builds = 0 +Dangerous builds = 0 + +# Clear up previus calculation + +clear + +# simple CH4 molecule with LATTE + +units metal +atom_style full +atom_modify sort 0 0.0 # turn off sorting of the coordinates + +read_data data.ch4 + triclinic box = (0 0 0) to (19.523 12.758 11.692) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 5 atoms + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + +# initialize system + +velocity all create 0.0 87287 loop geom + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.00025 + +fix 1 all nve + +fix 2 all latte NULL +fix_modify 2 energy yes + +thermo_style custom step temp pe etotal press + +# dynamics + +thermo 10 +run 10 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 20 13 12 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/3d/newton/tri + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.651 | 5.651 | 5.651 Mbytes +Step Temp PotEng TotEng Press + 0 0 -23.980353 -23.980353 348.02716 + 10 19.123149 -23.990297 -23.98041 18.774332 +Loop time of 0.0415399 on 1 procs for 10 steps with 5 atoms + +Performance: 5.200 ns/day, 4.616 hours/ns, 240.732 timesteps/s +6674.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 5.722e-06 | 5.722e-06 | 5.722e-06 | 0.0 | 0.01 +Bond | 7.6294e-06 | 7.6294e-06 | 7.6294e-06 | 0.0 | 0.02 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 1.8358e-05 | 1.8358e-05 | 1.8358e-05 | 0.0 | 0.04 +Output | 2.0981e-05 | 2.0981e-05 | 2.0981e-05 | 0.0 | 0.05 +Modify | 0.041394 | 0.041394 | 0.041394 | 0.0 | 99.65 +Other | | 9.322e-05 | | | 0.22 + +Nlocal: 5 ave 5 max 5 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 7 ave 7 max 7 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 10 ave 10 max 10 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 10 +Ave neighs/atom = 2 +Ave special neighs/atom = 0 +Neighbor list builds = 0 +Dangerous builds = 0 + +Total wall time: 0:00:01 diff --git a/lib/latte/Install.py b/lib/latte/Install.py index 82936ecda4..b9500a8996 100644 --- a/lib/latte/Install.py +++ b/lib/latte/Install.py @@ -144,7 +144,7 @@ if buildflag: print("Downloading LATTE ...") geturl(url,"LATTE.tar.gz") - print("Unpacking LATTE zipfile ...") + print("Unpacking LATTE ...") if os.path.exists(lattedir): cmd = 'rm -rf "%s"' % lattedir subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) diff --git a/src/LATTE/fix_latte.cpp b/src/LATTE/fix_latte.cpp index 4a3fc81f51..37205040e2 100644 --- a/src/LATTE/fix_latte.cpp +++ b/src/LATTE/fix_latte.cpp @@ -42,6 +42,7 @@ extern "C" { int latte_abiversion(); } +#define ABIVERSION 20180622 #define INVOKED_PERATOM 8 /* ---------------------------------------------------------------------- */ @@ -55,7 +56,7 @@ FixLatte::FixLatte(LAMMPS *lmp, int narg, char **arg) : if (comm->nprocs != 1) error->all(FLERR,"Fix latte currently runs only in serial"); - if (20180622 != latte_abiversion()) + if (latte_abiversion() != ABIVERSION) error->all(FLERR,"LAMMPS is linked against incompatible LATTE library"); if (narg != 4) error->all(FLERR,"Illegal fix latte command"); From 19f81e080263213dbc5fb95109f6892c380c4694 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 25 Jun 2018 23:56:18 -0400 Subject: [PATCH 189/675] Add library functions for accessing LAMMPS configuration --- python/lammps.py | 36 ++++++++++++++++++++++++++++------ src/info.cpp | 9 +++++++++ src/info.h | 1 + src/library.cpp | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ src/library.h | 9 +++++++++ 5 files changed, 100 insertions(+), 6 deletions(-) diff --git a/python/lammps.py b/python/lammps.py index 417427eb4b..7576138f1a 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -209,6 +209,7 @@ class lammps(object): self.c_bigint = get_ctypes_int(self.extract_setting("bigint")) self.c_tagint = get_ctypes_int(self.extract_setting("tagint")) self.c_imageint = get_ctypes_int(self.extract_setting("imageint")) + self._installed_packages = None # shut-down LAMMPS instance @@ -562,13 +563,36 @@ class lammps(object): shrinkexceed) @property - def uses_exceptions(self): + def has_exceptions(self): """ Return whether the LAMMPS shared library was compiled with C++ exceptions handling enabled """ - try: - if self.lib.lammps_has_error: - return True - except(AttributeError): - return False + return self.lib.lammps_config_has_exceptions() != 0 + + @property + def has_gzip_support(self): + return self.lib.lammps_config_has_gzip_support() != 0 + + @property + def has_png_support(self): + return self.lib.lammps_config_has_png_support() != 0 + + @property + def has_jpeg_support(self): + return self.lib.lammps_config_has_jpeg_support() != 0 + + @property + def has_ffmpeg_support(self): + return self.lib.lammps_config_has_ffmpeg_support() != 0 + + @property + def installed_packages(self): + if self._installed_packages is None: + self._installed_packages = [] + npackages = self.lib.lammps_config_package_count() + sb = create_string_buffer(100) + for idx in range(npackages): + self.lib.lammps_config_package_name(idx, sb, 100) + self._installed_packages.append(sb.value.decode()) + return self._installed_packages # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- diff --git a/src/info.cpp b/src/info.cpp index 7b2165bf70..748354e878 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -1190,6 +1190,15 @@ bool Info::has_exceptions() { #endif } +bool Info::has_package(const char * package_name) { + for(int i = 0; LAMMPS::installed_packages[i] != NULL; ++i) { + if(strcmp(package_name, LAMMPS::installed_packages[i]) == 0) { + return true; + } + } + return false; +} + /* ---------------------------------------------------------------------- */ char **Info::get_variable_names(int &num) { diff --git a/src/info.h b/src/info.h index 7d267f6242..058400df78 100644 --- a/src/info.h +++ b/src/info.h @@ -38,6 +38,7 @@ class Info : protected Pointers { static bool has_jpeg_support(); static bool has_ffmpeg_support(); static bool has_exceptions(); + static bool has_package(const char * package_name); char **get_variable_names(int &num); diff --git a/src/library.cpp b/src/library.cpp index 0162c560ce..13e0756866 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -38,6 +38,7 @@ #include "memory.h" #include "error.h" #include "force.h" +#include "info.h" using namespace LAMMPS_NS; @@ -1522,6 +1523,56 @@ void lammps_create_atoms(void *ptr, int n, tagint *id, int *type, END_CAPTURE } +// ---------------------------------------------------------------------- +// library API functions for accessing LAMMPS configuration +// ---------------------------------------------------------------------- + +int lammps_config_has_package(char * package_name) { + return Info::has_package(package_name); +} + +int lammps_config_package_count() { + int i = 0; + while(LAMMPS::installed_packages[i] != NULL) { + ++i; + } + return i; +} + +int lammps_config_package_name(int index, char * buffer, int max_size) { + int i = 0; + while(LAMMPS::installed_packages[i] != NULL && i < index) { + ++i; + } + + if(LAMMPS::installed_packages[i] != NULL) { + strncpy(buffer, LAMMPS::installed_packages[i], max_size); + return true; + } + + return false; +} + +int lammps_config_has_gzip_support() { + return Info::has_gzip_support(); +} + +int lammps_config_has_png_support() { + return Info::has_png_support(); +} + +int lammps_config_has_jpeg_support() { + return Info::has_jpeg_support(); +} + +int lammps_config_has_ffmpeg_support() { + return Info::has_ffmpeg_support(); +} + +int lammps_config_has_exceptions() { + return Info::has_exceptions(); +} + // ---------------------------------------------------------------------- // library API functions for error handling // ---------------------------------------------------------------------- diff --git a/src/library.h b/src/library.h index 7c21b98dae..82071f673b 100644 --- a/src/library.h +++ b/src/library.h @@ -55,6 +55,15 @@ void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *); void lammps_scatter_atoms(void *, char *, int, int, void *); void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *); +int lammps_config_has_package(char * package_name); +int lammps_config_package_count(); +int lammps_config_package_name(int index, char * buffer, int max_size); +int lammps_config_has_gzip_support(); +int lammps_config_has_png_support(); +int lammps_config_has_jpeg_support(); +int lammps_config_has_ffmpeg_support(); +int lammps_config_has_exceptions(); + // lammps_create_atoms() takes tagint and imageint as args // ifdef insures they are compatible with rest of LAMMPS // caller must match to how LAMMPS library is built From f36e1a2cdc6e2d297ccbfc65dc2a1c78060fe1bb Mon Sep 17 00:00:00 2001 From: PabloPiaggi Date: Tue, 26 Jun 2018 13:06:04 +0200 Subject: [PATCH 190/675] Changed default deltabin from 2 to 3 --- examples/USER/misc/entropy/log.entropy | 20 ++++++++++---------- src/USER-MISC/compute_entropy_atom.cpp | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/USER/misc/entropy/log.entropy b/examples/USER/misc/entropy/log.entropy index bbd7061e68..c380c62a73 100644 --- a/examples/USER/misc/entropy/log.entropy +++ b/examples/USER/misc/entropy/log.entropy @@ -90,21 +90,21 @@ Step Temp E_pair E_mol TotEng Press Volume 0 346.29871 -4285.222 0 -4101.9191 594.65353 165399.75 500 359.33758 -4285.247 0 -4095.0423 471.98587 165847.18 1000 348.99659 -4276.2274 0 -4091.4964 149.27188 166966.18 -Loop time of 5.36291 on 4 procs for 1000 steps with 4096 atoms +Loop time of 5.3437 on 4 procs for 1000 steps with 4096 atoms -Performance: 32.221 ns/day, 0.745 hours/ns, 186.466 timesteps/s -99.9% CPU use with 4 MPI tasks x no OpenMP threads +Performance: 32.337 ns/day, 0.742 hours/ns, 187.136 timesteps/s +99.8% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 4.1944 | 4.2946 | 4.437 | 4.5 | 80.08 -Bond | 0.0002267 | 0.00025637 | 0.00029458 | 0.0 | 0.00 -Neigh | 0.43028 | 0.43502 | 0.44292 | 0.7 | 8.11 -Comm | 0.053663 | 0.20256 | 0.30119 | 21.2 | 3.78 -Output | 0.34876 | 0.34877 | 0.34878 | 0.0 | 6.50 -Modify | 0.066335 | 0.067822 | 0.069094 | 0.4 | 1.26 -Other | | 0.01392 | | | 0.26 +Pair | 4.2832 | 4.3257 | 4.3839 | 1.8 | 80.95 +Bond | 0.00018309 | 0.00019825 | 0.00021418 | 0.0 | 0.00 +Neigh | 0.42195 | 0.42512 | 0.42739 | 0.3 | 7.96 +Comm | 0.051679 | 0.1101 | 0.14916 | 10.8 | 2.06 +Output | 0.40909 | 0.4091 | 0.40911 | 0.0 | 7.66 +Modify | 0.060869 | 0.061921 | 0.06327 | 0.4 | 1.16 +Other | | 0.01161 | | | 0.22 Nlocal: 1024 ave 1040 max 1001 min Histogram: 1 0 0 0 0 0 2 0 0 1 diff --git a/src/USER-MISC/compute_entropy_atom.cpp b/src/USER-MISC/compute_entropy_atom.cpp index fe2947ed61..a2e6765c83 100644 --- a/src/USER-MISC/compute_entropy_atom.cpp +++ b/src/USER-MISC/compute_entropy_atom.cpp @@ -101,8 +101,8 @@ ComputeEntropyAtom(LAMMPS *lmp, int narg, char **arg) : maxneigh = 0; // Number of bins above and below the central one that will be // considered as affected by the gaussian kernel - // 2 seems a good compromise between speed and good mollification - deltabin = 2; + // 3 seems a good compromise between speed and good mollification + deltabin = 3; deltar = sigma; peratom_flag = 1; size_peratom_cols = 0; From b0126dd9d6a0cbd66f6cc1ae4e499af206497ab2 Mon Sep 17 00:00:00 2001 From: oywg11 Date: Tue, 26 Jun 2018 16:09:42 +0300 Subject: [PATCH 191/675] updata potential file CH.KC --- potentials/CH.KC | 1 + 1 file changed, 1 insertion(+) diff --git a/potentials/CH.KC b/potentials/CH.KC index 2005472395..d2fe543cf8 100644 --- a/potentials/CH.KC +++ b/potentials/CH.KC @@ -6,3 +6,4 @@ C C 3.328819 21.847167 12.060173 4.711099 6.678908e-4 0.7718101 3.143921 12.660270 1.0 2.0 C H 3.156492 37.400478 8.3910462e-3 55.06177 5.176215e-5 0.4437309 2.508847 11.479055 1.0 1.5 H H 2.218816 4.5283006e-5 4.8685736e-5 2.027741 1.193945 0.8968523 0.238105 9.2194017e-5 1.0 1.2 +H C 3.156492 37.400478 8.3910462e-3 55.06177 5.176215e-5 0.4437309 2.508847 11.479055 1.0 2.2 From e4dd6dec404e348cc0369ca3ca90ad20a51d2117 Mon Sep 17 00:00:00 2001 From: oywg11 Date: Tue, 26 Jun 2018 16:36:16 +0300 Subject: [PATCH 192/675] Refine the documentation --- doc/src/pair_ilp_graphene_hbn.txt | 8 ++++---- doc/src/pair_kolmogorov_crespi_full.txt | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/src/pair_ilp_graphene_hbn.txt b/doc/src/pair_ilp_graphene_hbn.txt index 127b8e9103..242ab4255a 100644 --- a/doc/src/pair_ilp_graphene_hbn.txt +++ b/doc/src/pair_ilp_graphene_hbn.txt @@ -61,11 +61,11 @@ NOTE: The parameters presented in the parameter file (e.g. BNCH.ILP), are fitted with taper function by setting the cutoff equal to 16.0 Angstrom. Using different cutoff or taper function should be careful. -NOTE: Two new sets of parameters of ILP for two-dimensional hexagonal Materials are presented in "(Ouyang)"_#Ouyang. +NOTE: Two new sets of parameters of ILP for two-dimensional hexagonal Materials are presented in "(Ouyang)"_#Ouyang1. These parameters provide a good description in both short- and long-range interaction regime. While the old ILP parameters published in "(Leven)"_#Leven and "(Maaravi)"_#Maaravi2 are only suitable for long-range interaction regime. -This feature is essential for simulations in high pressure regime (i.e., interlayer distance smaller than the equilibrium distance). -The benchmark tests and comparison of these parameters can be found in "(Ouyang)"_#Ouyang. +This feature is essential for simulations in high-pressure regime (i.e., interlayer distance smaller than the equilibrium distance). +The benchmark tests and comparison of these parameters can be found in "(Ouyang)"_#Ouyang1. This potential must be used in combination with hybrid/overlay. Other interactions can be set to zero using pair_style {none}. @@ -119,5 +119,5 @@ units, if your simulation does not use {metal} units. :link(Kolmogorov2) [(Kolmogorov)] A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005) -:link(Ouyang) +:link(Ouyang1) [(Ouyang)] W. Ouyang, D. Mandelli, M. Urbakh, O. Hod, arXiv:1806.09555 (2018). diff --git a/doc/src/pair_kolmogorov_crespi_full.txt b/doc/src/pair_kolmogorov_crespi_full.txt index 10bb8a5224..e03e690bca 100644 --- a/doc/src/pair_kolmogorov_crespi_full.txt +++ b/doc/src/pair_kolmogorov_crespi_full.txt @@ -51,11 +51,11 @@ and {rcut} are included in the parameter file. {S} is designed to facilitate scaling of energies. {rcut} is designed to build the neighbor list for calculating the normals for each atom pair. -NOTE: A new set of parameters of KC potential for hydrocarbons (CH.KC) is presented in "(Ouyang)"_#Ouyang. +NOTE: A new set of parameters of KC potential for hydrocarbons (CH.KC) is presented in "(Ouyang)"_#Ouyang2. The parameters in CH.KC provides a good description in both short- and long-range interaction regime. While the original parameters (CC.KC) published in "(Kolmogorov)"_#Kolmogorov1 are only suitable for long-range interaction regime. -This feature is essential for simulations in high pressure regime (i.e., interlayer distance smaller than the equilibrium distance). -The benchmark tests and comparison of these parameters can be found in "(Ouyang)"_#Ouyang. +This feature is essential for simulations in high-pressure regime (i.e., interlayer distance smaller than the equilibrium distance). +The benchmark tests and comparison of these parameters can be found in "(Ouyang)"_#Ouyang2. This potential must be used in combination with hybrid/overlay. Other interactions can be set to zero using pair_style {none}. @@ -102,5 +102,5 @@ units. :link(Kolmogorov1) [(Kolmogorov)] A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005) -:link(Ouyang) +:link(Ouyang2) [(Ouyang)] W. Ouyang, D. Mandelli, M. Urbakh, O. Hod, arXiv:1806.09555 (2018). From e2622f0230a840ec89330c10fbe9c0acc0f86c53 Mon Sep 17 00:00:00 2001 From: oywg11 Date: Tue, 26 Jun 2018 17:27:55 +0300 Subject: [PATCH 193/675] Remap the paragraph --- doc/src/pair_ilp_graphene_hbn.txt | 10 ++++++---- doc/src/pair_kolmogorov_crespi_full.txt | 11 +++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/doc/src/pair_ilp_graphene_hbn.txt b/doc/src/pair_ilp_graphene_hbn.txt index 242ab4255a..dbc9c458e2 100644 --- a/doc/src/pair_ilp_graphene_hbn.txt +++ b/doc/src/pair_ilp_graphene_hbn.txt @@ -61,10 +61,12 @@ NOTE: The parameters presented in the parameter file (e.g. BNCH.ILP), are fitted with taper function by setting the cutoff equal to 16.0 Angstrom. Using different cutoff or taper function should be careful. -NOTE: Two new sets of parameters of ILP for two-dimensional hexagonal Materials are presented in "(Ouyang)"_#Ouyang1. -These parameters provide a good description in both short- and long-range interaction regime. -While the old ILP parameters published in "(Leven)"_#Leven and "(Maaravi)"_#Maaravi2 are only suitable for long-range interaction regime. -This feature is essential for simulations in high-pressure regime (i.e., interlayer distance smaller than the equilibrium distance). +NOTE: Two new sets of parameters of ILP for two-dimensional hexagonal Materials +are presented in "(Ouyang)"_#Ouyang1. These parameters provide a good description +in both short- and long-range interaction regime, while the old ILP parameters +published in "(Leven)"_#Leven and "(Maaravi)"_#Maaravi2 are only suitable for +long-range interaction regime. This feature is essential for simulations in +high-pressure regime (i.e., the interlayer distance smaller than the equilibrium distance). The benchmark tests and comparison of these parameters can be found in "(Ouyang)"_#Ouyang1. This potential must be used in combination with hybrid/overlay. diff --git a/doc/src/pair_kolmogorov_crespi_full.txt b/doc/src/pair_kolmogorov_crespi_full.txt index e03e690bca..a16d123b89 100644 --- a/doc/src/pair_kolmogorov_crespi_full.txt +++ b/doc/src/pair_kolmogorov_crespi_full.txt @@ -51,10 +51,13 @@ and {rcut} are included in the parameter file. {S} is designed to facilitate scaling of energies. {rcut} is designed to build the neighbor list for calculating the normals for each atom pair. -NOTE: A new set of parameters of KC potential for hydrocarbons (CH.KC) is presented in "(Ouyang)"_#Ouyang2. -The parameters in CH.KC provides a good description in both short- and long-range interaction regime. -While the original parameters (CC.KC) published in "(Kolmogorov)"_#Kolmogorov1 are only suitable for long-range interaction regime. -This feature is essential for simulations in high-pressure regime (i.e., interlayer distance smaller than the equilibrium distance). +NOTE: A new set of parameters of KC potential for hydrocarbons (CH.KC) +is presented in "(Ouyang)"_#Ouyang2. The parameters in CH.KC provides +a good description in both short- and long-range interaction regime, +while the original parameters (CC.KC) published in "(Kolmogorov)"_#Kolmogorov1 +are only suitable for long-range interaction regime. +This feature is essential for simulations in high-pressure regime +(i.e., the interlayer distance smaller than the equilibrium distance). The benchmark tests and comparison of these parameters can be found in "(Ouyang)"_#Ouyang2. This potential must be used in combination with hybrid/overlay. From ebe622ff7d7a2ba4ee46c07b96b5ba6d48d52d24 Mon Sep 17 00:00:00 2001 From: jrgissing Date: Tue, 26 Jun 2018 09:35:38 -0600 Subject: [PATCH 194/675] make edge atoms optional --- src/USER-MISC/fix_bond_react.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/USER-MISC/fix_bond_react.cpp b/src/USER-MISC/fix_bond_react.cpp index fb56945fd3..09f97be7c4 100644 --- a/src/USER-MISC/fix_bond_react.cpp +++ b/src/USER-MISC/fix_bond_react.cpp @@ -264,6 +264,9 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : memory->create(edge,max_natoms,nreacts,"bond/react:edge"); memory->create(landlocked_atoms,max_natoms,nreacts,"bond/react:landlocked_atoms"); + for (int j = 0; j < nreacts; j++) + for (int i = 0; i < onemol->natoms; i++) edge[i][j] = 0; + // read all superimpose files afterward for (int i = 0; i < nreacts; i++) { open(files[i]); @@ -2445,7 +2448,6 @@ void FixBondReact::read(int myrxn) sscanf(line,"%d",&jbonding[myrxn]); } else if (strcmp(keyword,"EdgeIDs") == 0) { edgeflag = 1; - for (int i = 0; i < onemol->natoms; i++) edge[i][myrxn] = 0; EdgeIDs(line, myrxn); } else if (strcmp(keyword,"Equivalences") == 0) { equivflag = 1; @@ -2457,8 +2459,8 @@ void FixBondReact::read(int myrxn) } // error check - if (bondflag == 0 || equivflag == 0 || edgeflag == 0) - error->all(FLERR,"Superimpose file missing BondingIDs, EdgeIDs, or Equivalences section\n"); + if (bondflag == 0 || equivflag == 0) + error->all(FLERR,"Superimpose file missing BondingIDs or Equivalences section\n"); } void FixBondReact::EdgeIDs(char *line, int myrxn) From f33a2c982c2005468f44c5f834aa8babf8bb885a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 26 Jun 2018 16:01:54 -0400 Subject: [PATCH 195/675] remove redundant potential files --- .../cobalt_hcp/Co_PurjaPun_2012.eam.alloy | 6006 ----------------- .../read_restart/Co_PurjaPun_2012.eam.alloy | 6006 ----------------- 2 files changed, 12012 deletions(-) delete mode 100644 examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy delete mode 100644 examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy diff --git a/examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy deleted file mode 100644 index 3af058baf7..0000000000 --- a/examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy +++ /dev/null @@ -1,6006 +0,0 @@ -Cobalt EAM potential: G. P. Purja Pun and Y. Mishin, Phys. Rev. B xx, 004100 (2012) (in press) -Data below r = 1.5 A is extrapolated. F(Rho) data not extrapolated. -Created on Wed Sep 26 17:29:54 2012 -1 Co -10000 4.788742913000000e-04 10000 6.499539000000001e-04 6.499539000000000e+00 -27 5.893320000000000e+01 2.507000000000000e+00 hcp - -1.680303080000000e-02 -1.879913964471138e-02 -2.091739081044659e-02 -2.303564197615629e-02 -2.503175082079116e-02 - -2.681996612041136e-02 -2.846010103933253e-02 -3.003179469400266e-02 -3.154842562124295e-02 -3.300931506782415e-02 - -3.442381570000001e-02 -3.580233366714632e-02 -3.714945763166951e-02 -3.846832763111274e-02 -3.976210669053554e-02 - -4.103374908125148e-02 -4.228535107207521e-02 -4.351872320172212e-02 -4.473539109100971e-02 -4.593674531110434e-02 - -4.712392115246503e-02 -4.829795108118731e-02 -4.945971154662068e-02 -5.061001094949964e-02 -5.174954151284258e-02 - -5.287894548568519e-02 -5.399878139884967e-02 -5.510957102742049e-02 -5.621177284174523e-02 -5.730581735016625e-02 - -5.839208651773948e-02 -5.947094067448531e-02 -6.054270215356945e-02 -6.160767623453070e-02 -6.266613797925552e-02 - -6.371834880435967e-02 -6.476454576302854e-02 -6.580495483863194e-02 -6.683978209870683e-02 -6.786922452279202e-02 - -6.889346265426707e-02 -6.991266949659354e-02 -7.092700432972064e-02 -7.193662011890395e-02 -7.294165829413661e-02 - -7.394225494811188e-02 -7.493853635958479e-02 -7.593062425993033e-02 -7.691863200494162e-02 -7.790266905197404e-02 - -7.888283764021425e-02 -7.985923664258643e-02 -8.083195868513401e-02 -8.180109346997461e-02 -8.276672525040257e-02 - -8.372893572415932e-02 -8.468780181559693e-02 -8.564339820511864e-02 -8.659579537072190e-02 -8.754506181558984e-02 - -8.849126234605453e-02 -8.943446001410092e-02 -9.037471455117625e-02 -9.131208412841478e-02 -9.224662399623559e-02 - -9.317838801321032e-02 -9.410742739123597e-02 -9.503379209498646e-02 -9.595752974691800e-02 -9.687868684755546e-02 - -9.779730775191570e-02 -9.871343580120046e-02 -9.962711242685958e-02 -1.005383781439554e-01 -1.014472717117523e-01 - -1.023538310651938e-01 -1.032580925977369e-01 -1.041600919387366e-01 -1.050598632026273e-01 -1.059574398208095e-01 - -1.068528540074704e-01 -1.077461373458066e-01 -1.086373201122683e-01 -1.095264320028559e-01 -1.104135016985198e-01 - -1.112985573626335e-01 -1.121816261033156e-01 -1.130627345294291e-01 -1.139419083080692e-01 -1.148191726662944e-01 - -1.156945520127823e-01 -1.165680703406650e-01 -1.174397507992727e-01 -1.183096161572101e-01 -1.191776885039839e-01 - -1.200439895800373e-01 -1.209085404086571e-01 -1.217713616730546e-01 -1.226324734132936e-01 -1.234918953788508e-01 - -1.243496468000000e-01 -1.252057466264230e-01 -1.260602132046348e-01 -1.269130646065986e-01 -1.277643184092350e-01 - -1.286139919512837e-01 -1.294621021138015e-01 -1.303086655551642e-01 -1.311536985007052e-01 -1.319972169590798e-01 - -1.328392365052704e-01 -1.336797725161469e-01 -1.345188400098036e-01 -1.353564538215464e-01 -1.361926284143060e-01 - -1.370273780803152e-01 -1.378607168013910e-01 -1.386926583917836e-01 -1.395232163058920e-01 -1.403524038515728e-01 - -1.411802341103638e-01 -1.420067200256853e-01 -1.428318742148069e-01 -1.436557091565456e-01 -1.444782371020595e-01 - -1.452994701862315e-01 -1.461194203065015e-01 -1.469380992388567e-01 -1.477555185109162e-01 -1.485716895480879e-01 - -1.493866236153044e-01 -1.502003318703277e-01 -1.510128252027127e-01 -1.518241144121522e-01 -1.526342102070998e-01 - -1.534431232126203e-01 -1.542508638114616e-01 -1.550574422930448e-01 -1.558628688157988e-01 -1.566671534698807e-01 - -1.574703062033520e-01 -1.582723368973844e-01 -1.590732553076882e-01 -1.598730711132973e-01 -1.606717938120008e-01 - -1.614694328459875e-01 -1.622659976162905e-01 -1.630614974730487e-01 -1.638559416039789e-01 -1.646493391351259e-01 - -1.654416991082678e-01 -1.662330305252601e-01 -1.670233423125346e-01 -1.678126433512354e-01 -1.686009424167802e-01 - -1.693882482431861e-01 -1.701745695045948e-01 -1.709599148401449e-01 -1.717442928088396e-01 -1.725277119385885e-01 - -1.733101807130639e-01 -1.740917075837066e-01 -1.748723009172683e-01 -1.756519690655456e-01 -1.764307204052008e-01 - -1.772085632840185e-01 -1.779855059094047e-01 -1.787615564692287e-01 -1.795367232135896e-01 -1.803110143830451e-01 - -1.810844381177561e-01 -1.818570025406103e-01 -1.826287158057983e-01 -1.833995860626770e-01 -1.841696214099643e-01 - -1.849388299454831e-01 -1.857072198141128e-01 -1.864747991526175e-01 -1.872415760182443e-01 -1.880075584641173e-01 - -1.887727546063884e-01 -1.895371725773110e-01 -1.903008205105196e-01 -1.910637065418589e-01 -1.918258388146347e-01 - -1.925872254807121e-01 -1.933478747187342e-01 -1.941077947209150e-01 -1.948669937069724e-01 -1.956254799127480e-01 - -1.963832616110719e-01 -1.971403470967068e-01 -1.978967447151567e-01 -1.986524628291068e-01 -1.994075098192274e-01 - -2.001618941005484e-01 -2.009156242075518e-01 -2.016687086990372e-01 -2.024211561116226e-01 -2.031729750127928e-01 - -2.039241741156804e-01 -2.046747621691974e-01 -2.054247479197256e-01 -2.061741401521784e-01 -2.069229478081280e-01 - -2.076711798806499e-01 -2.084188454121736e-01 -2.091659534755806e-01 -2.099125132162076e-01 -2.106585338443872e-01 - -2.114040247579823e-01 -2.121489953974893e-01 -2.128934551864067e-01 -2.136374136027109e-01 -2.143808803592873e-01 - -2.151238652468154e-01 -2.158663781322411e-01 -2.166084289346303e-01 -2.173500277052638e-01 -2.180911845646947e-01 - -2.188319097783510e-01 -2.195722136949507e-01 -2.203121068514981e-01 -2.210515998518519e-01 -2.217907033790026e-01 - -2.225294282016381e-01 -2.232677853521022e-01 -2.240057859531163e-01 -2.247434412252567e-01 -2.254807624804862e-01 - -2.262177612984613e-01 -2.269544493586047e-01 -2.276908384717110e-01 -2.284269405581227e-01 -2.291627678450005e-01 - -2.298983326532392e-01 -2.306336473718499e-01 -2.313687245044682e-01 -2.321035769451089e-01 -2.328382177230701e-01 - -2.335726600184018e-01 -2.343069171312917e-01 -2.350410026917230e-01 -2.357749304696442e-01 -2.365087144650665e-01 - -2.372423688046511e-01 -2.379759078915950e-01 -2.387093462817347e-01 -2.394426988649284e-01 -2.401759806938325e-01 - -2.409092071382775e-01 -2.416423937275558e-01 -2.423755563116356e-01 -2.431087109081851e-01 -2.438418738849959e-01 - -2.445750618045980e-01 -2.453082916583512e-01 -2.460415806101058e-01 -2.467749460848467e-01 -2.475084057095742e-01 - -2.482419776582159e-01 -2.489756803241430e-01 -2.497095324315720e-01 -2.504435529132133e-01 -2.511777612049070e-01 - -2.519121769824342e-01 -2.526468203782122e-01 -2.533817117688987e-01 -2.541168720514789e-01 -2.548523223627430e-01 - -2.555880842783758e-01 -2.563241796571988e-01 -2.570606310516858e-01 -2.577974612919421e-01 -2.585346936249472e-01 - -2.592723515924181e-01 -2.600104594981498e-01 -2.607490419576605e-01 -2.614881240712832e-01 -2.622277312727207e-01 - -2.629678898443362e-01 -2.637086264051527e-01 -2.644499680721714e-01 -2.651919423187013e-01 -2.659345775453039e-01 - -2.666779025531186e-01 -2.674219468183432e-01 -2.681667401972407e-01 -2.689123133912765e-01 -2.696586975492495e-01 - -2.704059247640904e-01 -2.711540275538941e-01 -2.719030391932789e-01 -2.726529934197978e-01 -2.734039250662187e-01 - -2.741558694758598e-01 -2.749088629390239e-01 -2.756629422674556e-01 -2.764181454116789e-01 -2.771745108563868e-01 - -2.779320780841674e-01 -2.786908871694924e-01 -2.794509795564719e-01 -2.802123972949423e-01 -2.809751834880072e-01 - -2.817393818716988e-01 -2.825050376604960e-01 -2.832721967688652e-01 -2.840409064327807e-01 -2.848112145951165e-01 - -2.855831707048412e-01 -2.863568249759762e-01 -2.871322291766564e-01 -2.879094358829076e-01 -2.886884993482028e-01 - -2.894694746623641e-01 -2.902524185831628e-01 -2.910373887617654e-01 -2.918244447549689e-01 -2.926136470970381e-01 - -2.934050583264800e-01 -2.941987419693519e-01 -2.949947634976693e-01 -2.957931894604184e-01 -2.965940887685082e-01 - -2.973975314584912e-01 -2.982035897075678e-01 -2.990123368838905e-01 -2.998238489787670e-01 -3.006382032814213e-01 - -3.014554796495834e-01 -3.022757592753754e-01 -3.030991261199829e-01 -3.039256655881672e-01 -3.047554660899296e-01 - -3.055886175640754e-01 -3.064252130593845e-01 -3.072653472379187e-01 -3.081091181048918e-01 -3.089566254021406e-01 - -3.098079724748395e-01 -3.106632645082006e-01 -3.115226104442510e-01 -3.123861211846884e-01 -3.132539117130802e-01 - -3.141260990998875e-01 -3.150028046812773e-01 -3.158841520361693e-01 -3.167702694487885e-01 -3.176612875689104e-01 - -3.185573418032087e-01 -3.194585700942650e-01 -3.203651157713922e-01 -3.212771249044592e-01 -3.221947491388281e-01 - -3.231181430183639e-01 -3.240474671054514e-01 -3.249828850672117e-01 -3.259245669711927e-01 -3.268726862299913e-01 - -3.278274232359761e-01 -3.287889619469540e-01 -3.297574936027157e-01 -3.307332132733838e-01 -3.317163240684192e-01 - -3.327070332351553e-01 -3.337055565330767e-01 -3.347121141277095e-01 -3.357269352965953e-01 -3.367502540927247e-01 - -3.377823145588749e-01 -3.388233658450175e-01 -3.398736675401181e-01 -3.409334847493447e-01 -3.420030942036733e-01 - -3.430827786115977e-01 -3.441728329658748e-01 -3.452735586625544e-01 -3.463852704265985e-01 -3.475082899277179e-01 - -3.486429532857090e-01 -3.497896041380748e-01 -3.509486017430585e-01 -3.521203134619261e-01 -3.533051234472958e-01 - -3.545034246605078e-01 -3.557156285064298e-01 -3.569421559513399e-01 -3.581834477636310e-01 -3.594399550688090e-01 - -3.607121506187135e-01 -3.620005184199024e-01 -3.633055658714727e-01 -3.646278119965309e-01 -3.659677989216845e-01 - -3.673260803339768e-01 -3.687032330586966e-01 -3.700998457090232e-01 -3.715165309114429e-01 -3.729539131544640e-01 - -3.744126403613781e-01 -3.758933720658462e-01 -3.773967908082255e-01 -3.789235902651524e-01 -3.804744856516886e-01 - -3.820502023195389e-01 -3.836514846285581e-01 -3.852790856353807e-01 -3.869337741756033e-01 -3.886163256972291e-01 - -3.903275263189269e-01 -3.920681658458204e-01 -3.938390381581898e-01 -3.956409370872805e-01 -3.974746521930466e-01 - -3.993409682701225e-01 -4.012406553231547e-01 -4.031744727439548e-01 -4.051431522629808e-01 -4.071474082130475e-01 - -4.091879129977703e-01 -4.112653138348391e-01 -4.133801991274390e-01 -4.155331235094092e-01 -4.177245653517079e-01 - -4.199549603385881e-01 -4.222246496703586e-01 -4.245339230260172e-01 -4.268829584832519e-01 -4.292718744431503e-01 - -4.317006622016948e-01 -4.341692468068394e-01 -4.366774154195978e-01 -4.392248845800756e-01 -4.418112262316757e-01 - -4.444359401252420e-01 -4.470983818380713e-01 -4.497978365893122e-01 -4.525334523390530e-01 -4.553043120100788e-01 - -4.581093756350076e-01 -4.609475466791835e-01 -4.638176252290113e-01 -4.667183660407072e-01 -4.696484459287199e-01 - -4.726065094563343e-01 -4.755911501239359e-01 -4.786009429283761e-01 -4.816344399152602e-01 -4.846901882843556e-01 - -4.877667388033212e-01 -4.908626497957108e-01 -4.939765062407663e-01 -4.971069114027755e-01 -5.002525150305011e-01 - -5.034119937007041e-01 -5.065840848176727e-01 -5.097675587133593e-01 -5.129612566028576e-01 -5.161640565945169e-01 - -5.193749134865747e-01 -5.225928209640586e-01 -5.258168515692775e-01 -5.290461169135583e-01 -5.322798060270272e-01 - -5.355171460831645e-01 -5.387574394100244e-01 -5.420000245805213e-01 -5.452443099924439e-01 -5.484897376520451e-01 - -5.517358141745681e-01 -5.549820769247875e-01 -5.582281216566209e-01 -5.614735718423751e-01 -5.647181034387753e-01 - -5.679614169890416e-01 -5.712032588979591e-01 -5.744433972991336e-01 -5.776816413798681e-01 -5.809178193507762e-01 - -5.841517944620215e-01 -5.873834463985003e-01 -5.906126855444893e-01 -5.938394364748391e-01 -5.970636498273136e-01 - -6.002852884426439e-01 -6.035043379105128e-01 -6.067207941645156e-01 -6.099346717649501e-01 -6.131459940881434e-01 - -6.163548011478311e-01 -6.195611404873568e-01 -6.227650731310865e-01 -6.259666663617727e-01 -6.291659990146931e-01 - -6.323631552654742e-01 -6.355582290986170e-01 -6.387513188871106e-01 -6.419425307490256e-01 -6.451319745539882e-01 - -6.483197674327603e-01 -6.515060293214946e-01 -6.546908841167685e-01 -6.578744572836812e-01 -6.610568766009968e-01 - -6.642382709221243e-01 -6.674187710853904e-01 -6.705985088370179e-01 -6.737776175698923e-01 -6.769562312911304e-01 - -6.801344848181089e-01 -6.833125134999645e-01 -6.864904540026142e-01 -6.896684434132225e-01 -6.928466191871651e-01 - -6.960251190039876e-01 -6.992040810717012e-01 -7.023836437724149e-01 -7.055639456561626e-01 -7.087451254024176e-01 - -7.119273220404884e-01 -7.151106745784721e-01 -7.182953215897911e-01 -7.214814016245582e-01 -7.246690535743215e-01 - -7.278584163200112e-01 -7.310496283586513e-01 -7.342428280442573e-01 -7.374381535427195e-01 -7.406357429444993e-01 - -7.438357342264661e-01 -7.470382651689156e-01 -7.502434728794412e-01 -7.534514943101106e-01 -7.566624664635970e-01 - -7.598765262236051e-01 -7.630938099473661e-01 -7.663144537782537e-01 -7.695385935306881e-01 -7.727663648349232e-01 - -7.759979029135046e-01 -7.792333428394971e-01 -7.824728194957561e-01 -7.857164675195603e-01 -7.889644207560909e-01 - -7.922168128628783e-01 -7.954737775389469e-01 -7.987354483417761e-01 -8.020019582211745e-01 -8.052734399002169e-01 - -8.085500258027153e-01 -8.118318481538471e-01 -8.151190386835121e-01 -8.184117289678831e-01 -8.217100504635063e-01 - -8.250141343769457e-01 -8.283241110344656e-01 -8.316401105683494e-01 -8.349622632152548e-01 -8.382906990624389e-01 - -8.416255474951805e-01 -8.449669376504778e-01 -8.483149983741850e-01 -8.516698583310095e-01 -8.550316457522134e-01 - -8.584004886419279e-01 -8.617765145292081e-01 -8.651598508088844e-01 -8.685506248139727e-01 -8.719489622521989e-01 - -8.753549823919468e-01 -8.787687997490927e-01 -8.821905162688262e-01 -8.856202278084699e-01 -8.890580184445617e-01 - -8.925039663319011e-01 -8.959581377191167e-01 -8.994205926453692e-01 -9.028913782181163e-01 -9.063705352609543e-01 - -9.098580923937473e-01 -9.133540718558304e-01 -9.168584825681617e-01 -9.203713268261465e-01 -9.238925937413506e-01 - -9.274222656928153e-01 -9.309603113133150e-01 -9.345066924037853e-01 -9.380613571840678e-01 -9.416242468397124e-01 - -9.451952880001965e-01 -9.487744002152808e-01 -9.523614892719469e-01 -9.559564538973973e-01 -9.595591783425093e-01 - -9.631695396882074e-01 -9.667874008119273e-01 -9.704126174878044e-01 -9.740450312802591e-01 -9.776844767743714e-01 - -9.813307748475731e-01 -9.849837394560669e-01 -9.886431705787867e-01 -9.923088615430331e-01 -9.959805930468456e-01 - -9.996581394281877e-01 -1.003341262213973e+00 -1.007029716826452e+00 -1.010723247080268e+00 -1.014421591236032e+00 - -1.018124476945841e+00 -1.021831626529500e+00 -1.025542751586175e+00 -1.029257558992056e+00 -1.032975747452084e+00 - -1.036697011770175e+00 -1.040421039317395e+00 -1.044147513860548e+00 -1.047876112182243e+00 -1.051606508161453e+00 - -1.055338371046766e+00 -1.059071368055605e+00 -1.062805162911107e+00 -1.066539417837194e+00 -1.070273792555226e+00 - -1.074007946119602e+00 -1.077741537419413e+00 -1.081474225260823e+00 -1.085205668283577e+00 -1.088935525821090e+00 - -1.092663460147868e+00 -1.096389134999202e+00 -1.100112217012435e+00 -1.103832374788097e+00 -1.107549281877421e+00 - -1.111262614364874e+00 -1.114972053517157e+00 -1.118677283811066e+00 -1.122377997381517e+00 -1.126073890115035e+00 - -1.129764665246453e+00 -1.133450029987863e+00 -1.137129700112097e+00 -1.140803395884355e+00 -1.144470846978575e+00 - -1.148131787996958e+00 -1.151785963846005e+00 -1.155433124321719e+00 -1.159073028473816e+00 -1.162705440550504e+00 - -1.166330136340245e+00 -1.169946897198408e+00 -1.173555515207745e+00 -1.177155787675114e+00 -1.180747522076412e+00 - -1.184330531453910e+00 -1.187904640946331e+00 -1.191469681045491e+00 -1.195025491559137e+00 -1.198571917630371e+00 - -1.202108816427798e+00 -1.205636050425976e+00 -1.209153491297797e+00 -1.212661015717853e+00 -1.216158511169199e+00 - -1.219645870103956e+00 -1.223122994042052e+00 -1.226589789250444e+00 -1.230046171916402e+00 -1.233492062734542e+00 - -1.236927390508550e+00 -1.240352088211073e+00 -1.243766097381527e+00 -1.247169363751694e+00 -1.250561841256042e+00 - -1.253943487695246e+00 -1.257314268132119e+00 -1.260674151007197e+00 -1.264023111009775e+00 -1.267361126327042e+00 - -1.270688182889021e+00 -1.274004269717549e+00 -1.277309380458899e+00 -1.280603511471348e+00 -1.283886665336751e+00 - -1.287158847447705e+00 -1.290420068216200e+00 -1.293670340397085e+00 -1.296909681097245e+00 -1.300138109654688e+00 - -1.303355649979877e+00 -1.306562327924205e+00 -1.309758172530325e+00 -1.312943214678930e+00 -1.316117489411603e+00 - -1.319281033477409e+00 -1.322433886294459e+00 -1.325576088655014e+00 -1.328707684178879e+00 -1.331828717822939e+00 - -1.334939237064845e+00 -1.338039290534788e+00 -1.341128928952336e+00 -1.344208204044806e+00 -1.347277169481128e+00 - -1.350335879836220e+00 -1.353384391367341e+00 -1.356422761075585e+00 -1.359451047255056e+00 -1.362469308854003e+00 - -1.365477606144248e+00 -1.368475999956682e+00 -1.371464552034891e+00 -1.374443324607048e+00 -1.377412380926959e+00 - -1.380371784452904e+00 -1.383321598435415e+00 -1.386261886043311e+00 -1.389192710326296e+00 -1.392114134331963e+00 - -1.395026221218571e+00 -1.397929034013782e+00 -1.400822635112213e+00 -1.403707086730599e+00 -1.406582451007194e+00 - -1.409448790047375e+00 -1.412306165903488e+00 -1.415154640386279e+00 -1.417994274393129e+00 -1.420825128672226e+00 - -1.423647264288326e+00 -1.426460742270041e+00 -1.429265623184807e+00 -1.432061967292326e+00 -1.434849834082543e+00 - -1.437629282863016e+00 -1.440400372981510e+00 -1.443163163644870e+00 -1.445917713456040e+00 -1.448664080745027e+00 - -1.451402323353998e+00 -1.454132498983212e+00 -1.456854665253158e+00 -1.459568879518891e+00 -1.462275198153495e+00 - -1.464973677286479e+00 -1.467664373054985e+00 -1.470347341460922e+00 -1.473022637957602e+00 -1.475690317602213e+00 - -1.478350434416031e+00 -1.481003042251009e+00 -1.483648195317718e+00 -1.486285947650543e+00 -1.488916352220507e+00 - -1.491539461636770e+00 -1.494155328124374e+00 -1.496764003712290e+00 -1.499365540029296e+00 -1.501959988475343e+00 - -1.504547399935251e+00 -1.507127824972320e+00 -1.509701313378898e+00 -1.512267914702716e+00 -1.514827678283996e+00 - -1.517380653263305e+00 -1.519926888190102e+00 -1.522466431291609e+00 -1.524999330097196e+00 -1.527525631932397e+00 - -1.530045384005255e+00 -1.532558633226744e+00 -1.535065425437065e+00 -1.537565806237489e+00 -1.540059821344337e+00 - -1.542547516227056e+00 -1.545028935252552e+00 -1.547504122520188e+00 -1.549973122161691e+00 -1.552435978060152e+00 - -1.554892733071735e+00 -1.557343429814709e+00 -1.559788110982664e+00 -1.562226819032855e+00 -1.564659595401864e+00 - -1.567086481207361e+00 -1.569507517312065e+00 -1.571922744465970e+00 -1.574332203223133e+00 -1.576735933784567e+00 - -1.579133975135047e+00 -1.581526366095511e+00 -1.583913146047792e+00 -1.586294354132112e+00 -1.588670027961349e+00 - -1.591040204840321e+00 -1.593404922368944e+00 -1.595764217997401e+00 -1.598118128281829e+00 -1.600466689560657e+00 - -1.602809938195509e+00 -1.605147910317183e+00 -1.607480641109968e+00 -1.609808165462235e+00 -1.612130518025190e+00 - -1.614447733364541e+00 -1.616759845941160e+00 -1.619066889913862e+00 -1.621368898338053e+00 -1.623665904067572e+00 - -1.625957940253400e+00 -1.628245039905108e+00 -1.630527235169479e+00 -1.632804557955816e+00 -1.635077040086276e+00 - -1.637344713164072e+00 -1.639607608003776e+00 -1.641865755216986e+00 -1.644119185392045e+00 -1.646367929030376e+00 - -1.648612016308968e+00 -1.650851477080719e+00 -1.653086340226579e+00 -1.655316634503563e+00 -1.657542389144867e+00 - -1.659763633269537e+00 -1.661980395063818e+00 -1.664192702419508e+00 -1.666400582983419e+00 -1.668604064251645e+00 - -1.670803173362428e+00 -1.672997937236383e+00 -1.675188382281491e+00 -1.677374534802169e+00 -1.679556421201192e+00 - -1.681734067628149e+00 -1.683907499121518e+00 -1.686076740528519e+00 -1.688241817042459e+00 -1.690402753749855e+00 - -1.692559574964003e+00 -1.694712304797627e+00 -1.696860967334408e+00 -1.699005586454806e+00 -1.701146185255449e+00 - -1.703282786721620e+00 -1.705415414177082e+00 -1.707544090831449e+00 -1.709668839099297e+00 -1.711789681156861e+00 - -1.713906639022084e+00 -1.716019734585396e+00 -1.718128989385494e+00 -1.720234424849230e+00 -1.722336062307809e+00 - -1.724433922917529e+00 -1.726528027230686e+00 -1.728618395721282e+00 -1.730705049154116e+00 -1.732788008101886e+00 - -1.734867292078088e+00 -1.736942920442919e+00 -1.739014913002594e+00 -1.741083289547465e+00 -1.743148069358425e+00 - -1.745209271450225e+00 -1.747266914282488e+00 -1.749321016270471e+00 -1.751371596207075e+00 -1.753418672811714e+00 - -1.755462264132180e+00 -1.757502388000569e+00 -1.759539062057792e+00 -1.761572303881055e+00 -1.763602130983907e+00 - -1.765628560778196e+00 -1.767651610332621e+00 -1.769671296580689e+00 -1.771687636258316e+00 -1.773700645994041e+00 - -1.775710342184503e+00 -1.777716741146727e+00 -1.779719859111176e+00 -1.781719712181211e+00 -1.783716316038327e+00 - -1.785709686327057e+00 -1.787699838965949e+00 -1.789686789700248e+00 -1.791670553307960e+00 -1.793651144443631e+00 - -1.795628578235185e+00 -1.797602869852874e+00 -1.799574034162875e+00 -1.801542085839167e+00 -1.803507039091021e+00 - -1.805468908052258e+00 -1.807427707019619e+00 -1.809383450209764e+00 -1.811336151356113e+00 -1.813285824110837e+00 - -1.815232482284336e+00 -1.817176139592257e+00 -1.819116809213001e+00 -1.821054504262256e+00 -1.822989238142106e+00 - -1.824921024174149e+00 -1.826849875071642e+00 -1.828775803432498e+00 -1.830698822001605e+00 -1.832618943490715e+00 - -1.834536180332052e+00 -1.836450544855570e+00 -1.838362049261658e+00 -1.840270705693083e+00 -1.842176526191684e+00 - -1.844079522732226e+00 -1.845979707122125e+00 -1.847877091069540e+00 -1.849771686052976e+00 -1.851663503515020e+00 - -1.853552554984233e+00 -1.855438851906239e+00 -1.857322405308933e+00 -1.859203226114476e+00 -1.861081325239847e+00 - -1.862956713608023e+00 -1.864829402171162e+00 -1.866699401811557e+00 -1.868566723102871e+00 -1.870431376467943e+00 - -1.872293372034969e+00 -1.874152719980291e+00 -1.876009430967454e+00 -1.877863515541558e+00 -1.879714983286677e+00 - -1.881563843740828e+00 -1.883410107218835e+00 -1.885253783963326e+00 -1.887094883151373e+00 -1.888933413891583e+00 - -1.890769386084288e+00 -1.892602809677417e+00 -1.894433694017575e+00 -1.896262048252058e+00 -1.898087881332244e+00 - -1.899911202238771e+00 -1.901732020265218e+00 -1.903550344662578e+00 -1.905366184198560e+00 -1.907179547502340e+00 - -1.908990443132265e+00 -1.910798879695625e+00 -1.912604866066330e+00 -1.914408411061036e+00 -1.916209523000752e+00 - -1.918008210058423e+00 -1.919804480310377e+00 -1.921598341888620e+00 -1.923389803244497e+00 -1.925178872754823e+00 - -1.926965558178970e+00 -1.928749867237572e+00 -1.930531808113790e+00 -1.932311388923252e+00 -1.934088617048956e+00 - -1.935863499807747e+00 -1.937636044984464e+00 -1.939406260367225e+00 -1.941174153289245e+00 -1.942939731044444e+00 - -1.944703001224463e+00 -1.946463971324967e+00 -1.948222648160018e+00 -1.949979038559213e+00 -1.951733150095908e+00 - -1.953484990331042e+00 -1.955234566032130e+00 -1.956981883796339e+00 -1.958726950332857e+00 -1.960469772453529e+00 - -1.962210357268799e+00 -1.963948711773954e+00 -1.965684842205069e+00 -1.967418754747339e+00 -1.969150456141664e+00 - -1.970879953151972e+00 -1.972607252078582e+00 -1.974332359180596e+00 -1.976055281015821e+00 -1.977776024078765e+00 - -1.979494594312026e+00 -1.981210997612849e+00 -1.982925240248993e+00 -1.984637328483028e+00 -1.986347268186276e+00 - -1.988055065135925e+00 -1.989760725123873e+00 -1.991464254028801e+00 -1.993165658061782e+00 -1.994864943305917e+00 - -1.996562115000000e+00 -1.998257178352118e+00 -1.999950139291834e+00 -2.001641003786081e+00 -2.003329777229788e+00 - -2.005016464899233e+00 -2.006701072168050e+00 -2.008383604435580e+00 -2.010064067106614e+00 -2.011742465557514e+00 - -2.013418805045480e+00 -2.015093090790721e+00 -2.016765327984645e+00 -2.018435521788566e+00 -2.020103677272243e+00 - -2.021769799450648e+00 -2.023433893211152e+00 -2.025095963440481e+00 -2.026756015150358e+00 -2.028414053372033e+00 - -2.030070083089858e+00 -2.031724109167109e+00 -2.033376136029651e+00 -2.035026168111125e+00 -2.036674210313675e+00 - -2.038320267543339e+00 -2.039964344253219e+00 -2.041606444873179e+00 -2.043246574193053e+00 -2.044884736927830e+00 - -2.046520937133174e+00 -2.048155178894251e+00 -2.049787467073582e+00 -2.051417806490505e+00 -2.053046201014273e+00 - -2.054672654449746e+00 -2.056297171294283e+00 -2.057919756136151e+00 -2.059540413234731e+00 -2.061159146675282e+00 - -2.062775960175462e+00 -2.064390857518372e+00 -2.066003843116474e+00 -2.067614921377108e+00 -2.069224096057763e+00 - -2.070831370870978e+00 -2.072436749999330e+00 -2.074040237602111e+00 -2.075641837275425e+00 -2.077241552544816e+00 - -2.078839387216755e+00 -2.080435345153352e+00 -2.082029430158359e+00 -2.083621645967183e+00 -2.085211996100236e+00 - -2.086800484128769e+00 -2.088387114042385e+00 -2.089971889736969e+00 -2.091554814315162e+00 -2.093135890870968e+00 - -2.094715123257078e+00 -2.096292515329556e+00 -2.097868070199266e+00 -2.099441790929908e+00 -2.101013681141721e+00 - -2.102583744473837e+00 -2.104151984084442e+00 -2.105718403103298e+00 -2.107283005027429e+00 -2.108845793364375e+00 - -2.110406771296459e+00 -2.111965941910842e+00 -2.113523308239219e+00 -2.115078873308544e+00 -2.116632640182243e+00 - -2.118184611994434e+00 -2.119734792125529e+00 -2.121283183887100e+00 -2.122829790069075e+00 -2.124374613416041e+00 - -2.125917657012881e+00 -2.127458923984833e+00 -2.128998417278243e+00 -2.130536139767974e+00 -2.132072094221826e+00 - -2.133606283403289e+00 -2.135138710165668e+00 -2.136669377406417e+00 -2.138198288109766e+00 -2.139725445172409e+00 - -2.141250851054121e+00 -2.142774508270670e+00 -2.144296419998729e+00 -2.145816589318136e+00 -2.147335018260493e+00 - -2.148851708859426e+00 -2.150366664204882e+00 -2.151879887475646e+00 -2.153391381149525e+00 -2.154901147551277e+00 - -2.156409189094421e+00 -2.157915508301146e+00 -2.159420108039566e+00 -2.160922991060322e+00 -2.162424159298261e+00 - -2.163923614721020e+00 -2.165421360243191e+00 -2.166917398765767e+00 -2.168411732188371e+00 -2.169904362385663e+00 - -2.171395292133801e+00 -2.172884524283159e+00 -2.174372061079477e+00 -2.175857904621596e+00 -2.177342057025400e+00 - -2.178824520458782e+00 -2.180305297280612e+00 -2.181784389836284e+00 -2.183261800226323e+00 -2.184737530553230e+00 - -2.186211583172279e+00 -2.187683960396664e+00 -2.189154664118480e+00 -2.190623696232450e+00 -2.192091059064924e+00 - -2.193556754973807e+00 -2.195020786011611e+00 -2.196483154140098e+00 -2.197943861263397e+00 -2.199402909290797e+00 - -2.200860300209873e+00 -2.202316036078389e+00 -2.203770119156592e+00 -2.205222551620105e+00 -2.206673335103553e+00 - -2.208122471221687e+00 -2.209569962050753e+00 -2.211015809743800e+00 -2.212460016299604e+00 -2.213902583604158e+00 - -2.215343513246597e+00 -2.216782806815468e+00 -2.218220466193829e+00 -2.219656493330310e+00 -2.221090890141300e+00 - -2.222523658493742e+00 -2.223954800089009e+00 -2.225384316635711e+00 -2.226812210036953e+00 -2.228238482128524e+00 - -2.229663134282465e+00 -2.231086167933421e+00 -2.232507585230206e+00 -2.233927388263609e+00 -2.235345578178182e+00 - -2.236762156112363e+00 -2.238177124126393e+00 -2.239590484325721e+00 -2.241002238074839e+00 -2.242412386688506e+00 - -2.243820932023517e+00 -2.245227875877045e+00 -2.246633219265731e+00 -2.248036963296034e+00 -2.249439110214208e+00 - -2.250839662216949e+00 -2.252238620162919e+00 -2.253635984842608e+00 -2.255031758111861e+00 -2.256425941987018e+00 - -2.257818538061035e+00 -2.259209547728066e+00 -2.260598972010440e+00 -2.261986811976363e+00 -2.263373069249392e+00 - -2.264757745520950e+00 -2.266140842198597e+00 -2.267522360622610e+00 -2.268902302148032e+00 -2.270280668153553e+00 - -2.271657460097697e+00 -2.273032679375423e+00 -2.274406327047590e+00 -2.275778404191426e+00 -2.277148912283742e+00 - -2.278517852852843e+00 -2.279885227233438e+00 -2.281251036662961e+00 -2.282615282183361e+00 -2.283977964870765e+00 - -2.285339086133513e+00 -2.286698647429660e+00 -2.288056650083893e+00 -2.289413095312870e+00 -2.290767984034498e+00 - -2.292121317209354e+00 -2.293473096267451e+00 -2.294823322630535e+00 -2.296171997217860e+00 -2.297519120939147e+00 - -2.298864695168495e+00 -2.300208721271999e+00 -2.301551200119357e+00 -2.302892132586471e+00 -2.304231520070443e+00 - -2.305569363951571e+00 -2.306905665021753e+00 -2.308240424043668e+00 -2.309573642251534e+00 -2.310905320943594e+00 - -2.312235461202651e+00 -2.313564064009707e+00 -2.314891130153991e+00 -2.316216660462560e+00 -2.317540656105554e+00 - -2.318863118293744e+00 -2.320184048057342e+00 -2.321503446385586e+00 -2.322821314284393e+00 -2.324137652689092e+00 - -2.325452462235987e+00 -2.326765743634779e+00 -2.328077498187803e+00 -2.329387727168217e+00 -2.330696431139842e+00 - -2.332003610675342e+00 -2.333309267092103e+00 -2.334613401701304e+00 -2.335916015044585e+00 -2.337217107588464e+00 - -2.338516680268511e+00 -2.339814734134101e+00 -2.341111270220800e+00 -2.342406289434137e+00 -2.343699792173311e+00 - -2.344991778936741e+00 -2.346282251126043e+00 -2.347571210092017e+00 -2.348858656078995e+00 -2.350144589310363e+00 - -2.351429011032167e+00 -2.352711922533504e+00 -2.353993324252988e+00 -2.355273216536063e+00 -2.356551600205969e+00 - -2.357828476165661e+00 -2.359103845159169e+00 -2.360377707896761e+00 -2.361650065112589e+00 -2.362920917562625e+00 - -2.364190266066228e+00 -2.365458111389245e+00 -2.366724454020086e+00 -2.367989294422349e+00 -2.369252633237819e+00 - -2.370514471195048e+00 -2.371774809191487e+00 -2.373033648052395e+00 -2.374290988145372e+00 -2.375546829856004e+00 - -2.376801174099476e+00 -2.378054021758188e+00 -2.379305373053798e+00 -2.380555228228685e+00 -2.381803588268867e+00 - -2.383050454170042e+00 -2.384295826222999e+00 -2.385539704659158e+00 -2.386782090177350e+00 -2.388022983519428e+00 - -2.389262385131917e+00 -2.390500295440986e+00 -2.391736715086700e+00 -2.392971644747536e+00 -2.394205085041701e+00 - -2.395437036486230e+00 -2.396667499253712e+00 -2.397896473568759e+00 -2.399123960208524e+00 -2.400349959968320e+00 - -2.401574473163553e+00 -2.402797500049246e+00 -2.404019041118798e+00 -2.405239096931802e+00 -2.406457668074259e+00 - -2.407674755052769e+00 -2.408890358029935e+00 -2.410104477201394e+00 -2.411317113238899e+00 -2.412528266823138e+00 - -2.413737938194389e+00 -2.414946127524263e+00 -2.416152835150093e+00 -2.417358061488310e+00 -2.418561807106014e+00 - -2.419764072540869e+00 -2.420964858062149e+00 -2.422164163883997e+00 -2.423361990268478e+00 -2.424558337539998e+00 - -2.425753206224426e+00 -2.426946596778449e+00 -2.428138509180588e+00 -2.429328943436301e+00 -2.430517900136966e+00 - -2.431705379929064e+00 -2.432891383093559e+00 -2.434075909789072e+00 -2.435258960050367e+00 -2.436440534002261e+00 - -2.437620632253666e+00 -2.438799255363957e+00 -2.439976403210287e+00 -2.441152075652963e+00 -2.442326273167121e+00 - -2.443498996281469e+00 -2.444670245124171e+00 -2.445840019720089e+00 -2.447008320081434e+00 -2.448175146330043e+00 - -2.449340499038912e+00 -2.450504378726154e+00 -2.451666785239187e+00 -2.452827718349615e+00 -2.453987178196479e+00 - -2.455145165027037e+00 -2.456301679153984e+00 -2.457456720843679e+00 -2.458610290111703e+00 -2.459762386895362e+00 - -2.460913011069636e+00 -2.462062162618941e+00 -2.463209842027783e+00 -2.464356049701044e+00 -2.465500785225038e+00 - -2.466644048210323e+00 -2.467785839182998e+00 -2.468926158651886e+00 -2.470065006141172e+00 -2.471202381154697e+00 - -2.472338284099561e+00 -2.473472715451581e+00 -2.474605675058163e+00 -2.475737162666682e+00 -2.476867178252799e+00 - -2.477995721814551e+00 -2.479122793211214e+00 -2.480248392312651e+00 -2.481372519169843e+00 -2.482495173828069e+00 - -2.483616356128687e+00 -2.484736065895716e+00 -2.485854303087743e+00 -2.486971067738408e+00 -2.488086360047014e+00 - -2.489200180083995e+00 -2.490312527238630e+00 -2.491423400907520e+00 -2.492532801197714e+00 -2.493640728315912e+00 - -2.494747182157012e+00 -2.495852162518061e+00 -2.496955669116524e+00 -2.498057701682506e+00 -2.499158260076250e+00 - -2.500257344205291e+00 -2.501354954036191e+00 -2.502451089487258e+00 -2.503545750224782e+00 -2.504638935878569e+00 - -2.505730646184535e+00 -2.506820880947837e+00 -2.507909640144502e+00 -2.508996923692245e+00 -2.510082731104683e+00 - -2.511167061905791e+00 -2.512249916065080e+00 -2.513331293568936e+00 -2.514411194025691e+00 -2.515489616993924e+00 - -2.516566562211253e+00 -2.517642029416175e+00 -2.518716018171676e+00 -2.519788528087044e+00 -2.520859559132313e+00 - -2.521929111272669e+00 -2.522997184093166e+00 -2.524063777123772e+00 -2.525128890054233e+00 -2.526192522577199e+00 - -2.527254674237163e+00 -2.528315344566595e+00 -2.529374533198041e+00 -2.530432239809303e+00 -2.531488464159136e+00 - -2.532543206017777e+00 -2.533596465120445e+00 -2.534648241083385e+00 -2.535698533081969e+00 -2.536747340380982e+00 - -2.537794663043710e+00 -2.538840501172024e+00 -2.539884854223596e+00 -2.540927721482817e+00 -2.541969102185147e+00 - -2.543008995720672e+00 -2.544047402146914e+00 -2.545084321505733e+00 -2.546119753108897e+00 -2.547153696148885e+00 - -2.548186150071097e+00 -2.549217114438763e+00 -2.550246589033513e+00 -2.551274573561718e+00 -2.552301067210345e+00 - -2.553326069170913e+00 -2.554349579172571e+00 -2.555371597001575e+00 -2.556392122135012e+00 -2.557411153995589e+00 - -2.558428692097672e+00 -2.559444735964176e+00 -2.560459285060548e+00 -2.561472338773803e+00 -2.562483896234721e+00 - -2.563493956701396e+00 -2.564502520197407e+00 -2.565509586690590e+00 -2.566515155160310e+00 -2.567519224484451e+00 - -2.568521794123430e+00 -2.569522863722881e+00 -2.570522433086768e+00 -2.571520501879673e+00 -2.572517069050324e+00 - -2.573512133570669e+00 -2.574505695221420e+00 -2.575497753777856e+00 -2.576488308184784e+00 -2.577477357385580e+00 - -2.578464901148367e+00 -2.579450939304331e+00 -2.580435471112168e+00 -2.581418495678755e+00 -2.582400012076188e+00 - -2.583380019545771e+00 -2.584358518040427e+00 -2.585335507388502e+00 -2.586310986208430e+00 -2.587284953146766e+00 - -2.588257408172476e+00 -2.589228351266687e+00 -2.590197781136742e+00 -2.591165696464199e+00 -2.592132097101227e+00 - -2.593096982965479e+00 -2.594060353065933e+00 -2.595022206300420e+00 -2.595982542030859e+00 -2.596941359648237e+00 - -2.597898658195753e+00 -2.598854436786441e+00 -2.599808695160485e+00 -2.600761432999720e+00 -2.601712649125437e+00 - -2.602662342322502e+00 -2.603610512090611e+00 -2.604557157983472e+00 -2.605502279056006e+00 -2.606445874333086e+00 - -2.607387943218189e+00 -2.608328485131743e+00 -2.609267499183389e+00 -2.610204984445080e+00 -2.611140940148811e+00 - -2.612075365584592e+00 -2.613008260114454e+00 -2.613939623006402e+00 -2.614869453080320e+00 -2.615797749224179e+00 - -2.616724511046408e+00 -2.617649738126216e+00 -2.618573429205448e+00 -2.619495583026503e+00 -2.620416199171340e+00 - -2.621335277249019e+00 -2.622252816137456e+00 -2.623168814653865e+00 -2.624083272103795e+00 -2.624996187859330e+00 - -2.625907561070358e+00 -2.626817390806325e+00 -2.627725676037143e+00 -2.628632415761536e+00 -2.629537609193020e+00 - -2.630441255587996e+00 -2.631343354159609e+00 -2.632243904045731e+00 -2.633142904126422e+00 -2.634040353337229e+00 - -2.634936251093461e+00 -2.635830596765059e+00 -2.636723389060725e+00 -2.637614626713354e+00 -2.638504309213838e+00 - -2.639392436080191e+00 -2.640279006180904e+00 -2.641164018251881e+00 -2.642047471148195e+00 -2.642929363899640e+00 - -2.643809696115713e+00 -2.644688467316341e+00 -2.645565676083456e+00 -2.646441320932559e+00 -2.647315401051427e+00 - -2.648187915755844e+00 -2.649058864201336e+00 -2.649928245427330e+00 -2.650796058169106e+00 -2.651662301248424e+00 - -2.652526974137104e+00 -2.653390076247662e+00 -2.654251606105329e+00 -2.655111562238285e+00 -2.655969944073783e+00 - -2.656826751086593e+00 -2.657681982042466e+00 -2.658535635661370e+00 -2.659387711189145e+00 -2.660238207837736e+00 - -2.661087124157626e+00 -2.661934458755756e+00 -2.662780211126336e+00 -2.663624380741185e+00 -2.664466966095276e+00 - -2.665307965694397e+00 -2.666147379064445e+00 -2.666985205710447e+00 -2.667821444033845e+00 -2.668656092405469e+00 - -2.669489150177272e+00 -2.670320616801000e+00 -2.671150491146469e+00 -2.671978771965001e+00 -2.672805458115896e+00 - -2.673630548501148e+00 -2.674454042085555e+00 -2.675275937884819e+00 -2.676096235055446e+00 -2.676914932653945e+00 - -2.677732029196031e+00 -2.678547523253807e+00 -2.679361414165717e+00 -2.680173701269736e+00 -2.680984383135636e+00 - -2.681793458321363e+00 -2.682600926105787e+00 -2.683406785794135e+00 -2.684211036076172e+00 -2.685013675548027e+00 - -2.685814703046789e+00 -2.686614117528503e+00 -2.687411918184072e+00 -2.688208104155523e+00 -2.689002674154484e+00 - -2.689795626844247e+00 -2.690586961125131e+00 -2.691376675931391e+00 -2.692164770096012e+00 -2.692951242468673e+00 - -2.693736092067127e+00 -2.694519317933390e+00 -2.695300919038479e+00 -2.696080894259941e+00 -2.696859242172434e+00 - -2.697635961409562e+00 -2.698411051143577e+00 -2.699184510529523e+00 -2.699956338114957e+00 -2.700726532498006e+00 - -2.701495093086574e+00 -2.702262019208106e+00 -2.703027309058428e+00 -2.703790960874505e+00 -2.704552974189474e+00 - -2.705313348537555e+00 -2.706072082161119e+00 -2.706829173257158e+00 -2.707584621133000e+00 -2.708338425191227e+00 - -2.709090584105120e+00 -2.709841096442358e+00 -2.710589961077480e+00 -2.711337176962203e+00 -2.712082743050078e+00 - -2.712826658235913e+00 -2.713568921177743e+00 -2.714309530527581e+00 -2.715048485150131e+00 -2.715785783993005e+00 - -2.716521426122757e+00 -2.717255410569124e+00 -2.717987736095623e+00 -2.718718401385704e+00 -2.719447405068731e+00 - -2.720174745881186e+00 -2.720900423042079e+00 -2.721624435690877e+00 -2.722346782166338e+00 -2.723067460855530e+00 - -2.723786471139474e+00 -2.724503812410580e+00 -2.725219483112852e+00 -2.725933481634188e+00 -2.726645807086471e+00 - -2.727356458650697e+00 -2.728065435060333e+00 -2.728772734953498e+00 -2.729478357034439e+00 -2.730182300087997e+00 - -2.730884563155262e+00 -2.731585145263588e+00 -2.732284045129153e+00 -2.732981261442558e+00 -2.733676793103288e+00 - -2.734370639038562e+00 -2.735062798077667e+00 -2.735753269071118e+00 -2.736442051052291e+00 -2.737129142959769e+00 - -2.737814543170111e+00 -2.738498250131983e+00 -2.739180263144520e+00 -2.739860581563291e+00 -2.740539204119172e+00 - -2.741216129405992e+00 -2.741891356094071e+00 -2.742564882952538e+00 -2.743236709069217e+00 -2.743906833523784e+00 - -2.744575255044610e+00 -2.745241972311204e+00 -2.745906984158941e+00 -2.746570289467025e+00 -2.747231887134115e+00 - -2.747891776057501e+00 -2.748549955109537e+00 -2.749206423158993e+00 -2.749861179085207e+00 -2.750514221765824e+00 - -2.751165550061125e+00 -2.751815162841771e+00 -2.752463059037292e+00 -2.753109237554207e+00 -2.753753697148108e+00 - -2.754396436622574e+00 -2.755037455124055e+00 -2.755676751755156e+00 -2.756314325100252e+00 -2.756950173779785e+00 - -2.757584297076699e+00 -2.758216694281619e+00 -2.758847364053396e+00 -2.759476305000437e+00 -2.760103516161140e+00 - -2.760728996610216e+00 -2.761352745137616e+00 -2.761974760563591e+00 -2.762595042114344e+00 -2.763213589016364e+00 - -2.763830400091322e+00 -2.764445474113015e+00 -2.765058810068553e+00 -2.765670407011266e+00 -2.766280264046035e+00 - -2.766888380201558e+00 -2.767494754150214e+00 -2.768099384646222e+00 -2.768702271127474e+00 -2.769303413030783e+00 - -2.769902809104988e+00 -2.770500458053093e+00 -2.771096359082754e+00 -2.771690511445131e+00 -2.772282914060774e+00 - -2.772873565847032e+00 -2.773462466039048e+00 -2.774049613856528e+00 -2.774635008139637e+00 -2.775218647762881e+00 - -2.775800532117688e+00 -2.776380660598635e+00 -2.776959032095993e+00 -2.777535645483684e+00 -2.778110500074552e+00 - -2.778683595228330e+00 -2.779254930053368e+00 -2.779824503611819e+00 -2.780392315032438e+00 -2.780958363471580e+00 - -2.781522648129417e+00 -2.782085168237396e+00 -2.782645923108263e+00 -2.783204912027138e+00 -2.783762134087364e+00 - -2.784317588365996e+00 -2.784871274066723e+00 -2.785423190471204e+00 -2.785973337046338e+00 -2.786521713227682e+00 - -2.787068318140169e+00 -2.787613150927563e+00 -2.788156211119559e+00 -2.788697498201977e+00 -2.789237011099205e+00 - -2.789774748795882e+00 -2.790310711079109e+00 -2.790844897774500e+00 -2.791377308059270e+00 -2.791907941021321e+00 - -2.792436796039691e+00 -2.792963872575855e+00 -2.793489170129877e+00 -2.794012688183935e+00 -2.794534426110070e+00 - -2.795054383269529e+00 -2.795572559090522e+00 -2.796088953089790e+00 -2.796603565071232e+00 -2.797116394731634e+00 - -2.797627441052200e+00 -2.798136703104035e+00 -2.798644181033428e+00 -2.799149874997305e+00 -2.799653784119957e+00 - -2.800155907491874e+00 -2.800656245100958e+00 -2.801154796934787e+00 -2.801651562082218e+00 -2.802146539693571e+00 - -2.802639730063738e+00 -2.803131133478864e+00 -2.803620749045517e+00 -2.804108575856467e+00 -2.804594614128865e+00 - -2.805078864118387e+00 -2.805561325110418e+00 -2.806041996375143e+00 -2.806520878092229e+00 -2.806997970489045e+00 - -2.807473273074300e+00 -2.807946785293329e+00 -2.808418507056632e+00 -2.808888438355500e+00 -2.809356579039224e+00 - -2.809822928959404e+00 -2.810287488118900e+00 -2.810750256531227e+00 -2.811211234101264e+00 -2.811670420689050e+00 - -2.812127816083888e+00 -2.812583420143096e+00 -2.813037233066774e+00 -2.813489255065615e+00 -2.813939486049919e+00 - -2.814387925944586e+00 -2.814834575033324e+00 -2.815279433542374e+00 -2.815722501109326e+00 -2.816163777438837e+00 - -2.816603263092504e+00 -2.817040958671196e+00 -2.817476864075942e+00 -2.817910979131784e+00 -2.818343304059641e+00 - -2.818773839208482e+00 -2.819202585043600e+00 -2.819629541969078e+00 -2.820054710027820e+00 -2.820478089265513e+00 - -2.820899680100151e+00 -2.821319482977751e+00 -2.821737498084143e+00 -2.822153725615352e+00 -2.822568166068396e+00 - -2.822980820018520e+00 -2.823391688052908e+00 -2.823800770674544e+00 -2.824208068037681e+00 -2.824613580315654e+00 - -2.825017308106835e+00 -2.825419252121360e+00 -2.825819413091381e+00 -2.826217791658008e+00 -2.826614388076187e+00 - -2.827009202624378e+00 -2.827402236061253e+00 -2.827793489256864e+00 -2.828182963046578e+00 -2.828570658171722e+00 - -2.828956575032161e+00 -2.829340714052488e+00 -2.829723076097664e+00 -2.830103662132774e+00 -2.830482473083023e+00 - -2.830859509823491e+00 -2.831234773068641e+00 -2.831608263528317e+00 -2.831979982054516e+00 -2.832349929557777e+00 - -2.832718107040651e+00 -2.833084515526141e+00 -2.833449156027042e+00 -2.833812029550204e+00 -2.834173137088914e+00 - -2.834532479620883e+00 -2.834890058075082e+00 -2.835245873448821e+00 -2.835599927061508e+00 -2.835952220243667e+00 - -2.836302754048190e+00 -2.836651529530672e+00 -2.836998548035129e+00 -2.837343810883671e+00 -2.837687319022324e+00 - -2.838029073490917e+00 -2.838369076080591e+00 -2.838707328586376e+00 -2.839043832067564e+00 -2.839378587474163e+00 - -2.839711596054793e+00 -2.840042859259108e+00 -2.840372379042276e+00 -2.840700157280677e+00 -2.841026195030013e+00 - -2.841350493343512e+00 -2.841673054085180e+00 -2.841993879190829e+00 -2.842312970072699e+00 -2.842630328108386e+00 - -2.842945955060471e+00 -2.843259852775203e+00 -2.843572023048496e+00 -2.843882467617769e+00 -2.844191188036773e+00 - -2.844498185884593e+00 -2.844803463025301e+00 -2.845107021413000e+00 -2.845408863076932e+00 -2.845708990020076e+00 - -2.846007404065244e+00 -2.846304107050338e+00 -2.846599101053807e+00 -2.846892388135785e+00 -2.847183970042619e+00 - -2.847473848570861e+00 -2.847762026031680e+00 -2.848048504803730e+00 -2.848333287020989e+00 -2.848616374754612e+00 - -2.848897770069131e+00 -2.849177475073159e+00 -2.849455492058227e+00 -2.849731823327478e+00 -2.850006471047571e+00 - -2.850279437434387e+00 -2.850550725037162e+00 -2.850820336439234e+00 -2.851088274026996e+00 -2.851354540133094e+00 - -2.851619137072155e+00 -2.851882067200814e+00 -2.852143333061782e+00 -2.852402937208544e+00 -2.852660882051651e+00 - -2.852917170055367e+00 -2.853171804041764e+00 -2.853424786850297e+00 -2.853676121032120e+00 -2.853925809140160e+00 - -2.854173854022716e+00 -2.854420258509995e+00 -2.854665025064492e+00 -2.854908156206457e+00 -2.855149655054884e+00 - -2.855389524765914e+00 -2.855627768045515e+00 -2.855864387531145e+00 -2.856099386036384e+00 -2.856332766480263e+00 - -2.856564532027491e+00 -2.856794685864488e+00 -2.857023231018833e+00 -2.857250170456676e+00 -2.857475507057297e+00 - -2.857699243787178e+00 -2.857921384048440e+00 -2.858141931205942e+00 -2.858360888039817e+00 -2.858578257403886e+00 - -2.858794043031427e+00 -2.859008248642304e+00 -2.859220877023269e+00 -2.859431930941042e+00 -2.859641414015340e+00 - -2.859849329964776e+00 -2.860055682050569e+00 -2.860260473522559e+00 -2.860463708042447e+00 -2.860665389218646e+00 - -2.860865520034553e+00 -2.861064103583913e+00 -2.861261144026887e+00 -2.861456645505078e+00 -2.861650611019446e+00 - -2.861843043539793e+00 -2.862033947051935e+00 -2.862223325674870e+00 -2.862411183044306e+00 -2.862597522669464e+00 - -2.862782348036900e+00 -2.862965662765951e+00 -2.863147471029718e+00 -2.863327776966641e+00 -2.863506584022756e+00 - -2.863683895649960e+00 -2.863859716016013e+00 -2.864034049304372e+00 -2.864206899045429e+00 -2.864378268816853e+00 - -2.864548163038503e+00 -2.864716586175495e+00 -2.864883542031795e+00 -2.865049034317118e+00 -2.865213067025303e+00 - -2.865375644227383e+00 -2.865536770019026e+00 -2.865696448531390e+00 -2.865854684012960e+00 -2.866011480747103e+00 - -2.866166843039399e+00 -2.866320775137251e+00 -2.866473281033156e+00 -2.866624364792500e+00 -2.866774031027124e+00 - -2.866922284373643e+00 -2.867069129021301e+00 -2.867214569108258e+00 -2.867358609015685e+00 -2.867501253183005e+00 - -2.867642506039625e+00 -2.867782372075631e+00 -2.867920856033839e+00 -2.868057962606175e+00 -2.868193696028257e+00 - -2.868328060561013e+00 -2.868461061022879e+00 -2.868592702303233e+00 -2.868722989017701e+00 -2.868851925722842e+00 - -2.868979517012722e+00 -2.869105767524959e+00 -2.869230682033886e+00 -2.869354265317122e+00 -2.869476522028743e+00 - -2.869597456891174e+00 -2.869717075023798e+00 -2.869835381525858e+00 -2.869952381019048e+00 -2.870068078133983e+00 - -2.870182478014490e+00 -2.870295585788873e+00 -2.870407406010122e+00 -2.870517943287246e+00 -2.870627203028626e+00 - -2.870735190678368e+00 -2.870841911024103e+00 -2.870947368779615e+00 -2.871051569019769e+00 -2.871154516959833e+00 - -2.871256218015620e+00 -2.871356677487263e+00 -2.871455900011655e+00 -2.871553890297982e+00 -2.871650654007871e+00 - -2.871746196881877e+00 -2.871840524023838e+00 -2.871933640394619e+00 -2.872025551019907e+00 -2.872116261043417e+00 - -2.872205776016155e+00 -2.872294101539941e+00 -2.872381243012580e+00 -2.872467205758066e+00 -2.872551995009178e+00 - -2.872635615995248e+00 -2.872718074023048e+00 -2.872799374482606e+00 -2.872879523019508e+00 -2.872958525324841e+00 - -2.873036387016140e+00 -2.873113113575017e+00 -2.873188710012942e+00 -2.873263181462381e+00 -2.873336534009911e+00 - -2.873408773769060e+00 -2.873479906007045e+00 -2.873549935889074e+00 -2.873618869018622e+00 -2.873686711126628e+00 - -2.873753468015626e+00 -2.873819145455355e+00 -2.873883749012791e+00 -2.873947284262238e+00 -2.874009757010115e+00 - -2.874071173064448e+00 -2.874131538007598e+00 -2.874190857408149e+00 -2.874249137005235e+00 -2.874306382592947e+00 - -2.874362600014657e+00 -2.874417795154723e+00 -2.874471974012172e+00 -2.874525142492177e+00 -2.874577306009839e+00 - -2.874628470067637e+00 -2.874678641007656e+00 -2.874727825164796e+00 -2.874776028005620e+00 -2.874823254939239e+00 - -2.874869512013286e+00 -2.874914805384953e+00 -2.874959141011137e+00 -2.875002524843012e+00 -2.875044963009132e+00 - -2.875086461553842e+00 -2.875127026007268e+00 -2.875166661990855e+00 -2.875205376005544e+00 -2.875243174521211e+00 - -2.875280063003956e+00 -2.875316046953741e+00 -2.875351133009737e+00 -2.875385327829893e+00 -2.875418637008044e+00 - -2.875451066029114e+00 -2.875482621006486e+00 -2.875513308222273e+00 -2.875543134005058e+00 -2.875572104616458e+00 - -2.875600226003760e+00 -2.875627504088381e+00 -2.875653945002586e+00 -2.875679554924722e+00 -2.875704340006628e+00 - -2.875728306365356e+00 -2.875751460005359e+00 -2.875773807024162e+00 -2.875795354004213e+00 -2.875816107441742e+00 - -2.875836073003188e+00 -2.875855256356105e+00 -2.875873664002281e+00 -2.875891302525273e+00 -2.875908178001488e+00 - -2.875924296429527e+00 -2.875939664003940e+00 -2.875954287022889e+00 -2.875968172003060e+00 -2.875981325374513e+00 - -2.875993753002293e+00 -2.876005460745149e+00 -2.876016455001635e+00 -2.876026742281703e+00 -2.876036329001085e+00 - -2.876045221511428e+00 -2.876053426002279e+00 -2.876060948682664e+00 -2.876067796001651e+00 -2.876073974394489e+00 - -2.876079490001126e+00 -2.876084348997735e+00 -2.876088558000703e+00 -2.876092123620084e+00 -2.876095052000378e+00 - -2.876097349275196e+00 -2.876099022000147e+00 -2.876100076780735e+00 -2.876100520000039e+00 -2.876100357977497e+00 - -2.876099597000405e+00 -2.876098243435337e+00 -2.876096303998139e+00 -2.876093785401991e+00 -2.876090694000126e+00 - -2.876087036076098e+00 -2.876082817994697e+00 -2.876078046153286e+00 -2.876072726998279e+00 -2.876066867041051e+00 - -2.876060473003754e+00 -2.876053551562065e+00 -2.876046108994973e+00 -2.876038151582050e+00 -2.876029686001908e+00 - -2.876020718975022e+00 -2.876011256990315e+00 -2.876001306494705e+00 -2.875990873998654e+00 -2.875979966015766e+00 - -2.875968589008655e+00 -2.875956749461299e+00 -2.875944453994101e+00 -2.875931709272467e+00 -2.875918522005370e+00 - -2.875904898821941e+00 -2.875890845988358e+00 -2.875876369796106e+00 -2.875861477000839e+00 -2.875846174460938e+00 - -2.875830468981534e+00 -2.875814367182402e+00 -2.875797874995170e+00 -2.875780998493851e+00 -2.875763745010153e+00 - -2.875746121853747e+00 -2.875728134988475e+00 -2.875709790337169e+00 -2.875691095004476e+00 -2.875672056151185e+00 - -2.875652679980860e+00 -2.875632972639220e+00 -2.875612940997824e+00 -2.875592591983200e+00 -2.875571932015899e+00 - -2.875550967463832e+00 -2.875529704990307e+00 -2.875508151305197e+00 -2.875486313009207e+00 -2.875464196688727e+00 - -2.875441808982035e+00 -2.875419156538716e+00 -2.875396246001703e+00 -2.875373083982446e+00 -2.875349676973115e+00 - -2.875326031456047e+00 -2.875302153993497e+00 -2.875278051224424e+00 -2.875253730014671e+00 -2.875229197164465e+00 - -2.875204458984698e+00 -2.875179521740897e+00 -2.875154392006447e+00 -2.875129076470253e+00 -2.875103581975416e+00 - -2.875077915323747e+00 -2.875052082997684e+00 -2.875026091410789e+00 -2.874999947020509e+00 -2.874973656330889e+00 - -2.874947225988491e+00 -2.874920662667701e+00 -2.874893973011697e+00 -2.874867163623783e+00 -2.874840240978976e+00 - -2.874813211559227e+00 -2.874786082002508e+00 -2.874758858958694e+00 -2.874731548969249e+00 -2.874704158521300e+00 - -2.874676693993052e+00 -2.874649161850167e+00 -2.874621569017096e+00 -2.874593922351292e+00 -2.874566227983435e+00 - -2.874538491996276e+00 -2.874510721007613e+00 -2.874482921761722e+00 -2.874455100973768e+00 -2.874427265275985e+00 - -2.874399420998023e+00 -2.874371574431975e+00 -2.874343732022288e+00 -2.874315900299783e+00 -2.874288085988434e+00 - -2.874260295776052e+00 -2.874232536012641e+00 -2.874204812974258e+00 -2.874177132978955e+00 -2.874149502426689e+00 - -2.874121928003048e+00 -2.874094416390038e+00 -2.874066973969692e+00 -2.874039607056358e+00 -2.874012321993617e+00 - -2.873985125156578e+00 -2.873958023017241e+00 -2.873931022092817e+00 -2.873904128984454e+00 -2.873877350227203e+00 - -2.873850692007775e+00 -2.873824160475146e+00 -2.873797761975665e+00 -2.873771502947487e+00 -2.873745389998629e+00 - -2.873719429664607e+00 -2.873693628021065e+00 -2.873667991196405e+00 -2.873642525989910e+00 -2.873617239207638e+00 - -2.873592137011854e+00 -2.873567225478465e+00 -2.873542510981722e+00 -2.873517999984164e+00 -2.873493699003122e+00 - -2.873469614539558e+00 -2.873445752974173e+00 -2.873422120664412e+00 -2.873398723994974e+00 -2.873375569341346e+00 - -2.873352663014937e+00 -2.873330011368907e+00 -2.873307620987516e+00 -2.873285498440290e+00 -2.873263650006746e+00 - -2.873242081977908e+00 -2.873220800980854e+00 -2.873199813610778e+00 -2.873179125999297e+00 -2.873158744269642e+00 - -2.873138674975094e+00 -2.873118924733721e+00 -2.873099499992696e+00 -2.873080407078925e+00 -2.873061652009151e+00 - -2.873043240951156e+00 -2.873025180987050e+00 -2.873007479104932e+00 -2.872990141002529e+00 -2.872973172348110e+00 - -2.872956579982463e+00 -2.872940370832477e+00 -2.872924550996914e+00 -2.872909126514257e+00 -2.872894104009989e+00 - -2.872879490127201e+00 -2.872865290992410e+00 -2.872851512733995e+00 -2.872838162004323e+00 -2.872825245427317e+00 - -2.872812768989124e+00 -2.872800738661925e+00 -2.872789160999820e+00 -2.872778042642130e+00 -2.872767389987160e+00 - -2.872757209355336e+00 -2.872747506996586e+00 -2.872738289140315e+00 -2.872729562004331e+00 -2.872721331833777e+00 - -2.872713604994726e+00 -2.872706387896571e+00 -2.872699687001068e+00 -2.872693508692679e+00 -2.872687858994343e+00 - -2.872682743943764e+00 -2.872678169999229e+00 -2.872674143639194e+00 -2.872670671002211e+00 -2.872667758252759e+00 - -2.872665411998920e+00 -2.872663638727966e+00 -2.872662444000314e+00 -2.872661833458480e+00 -2.872661814000242e+00 - -2.872662392564575e+00 -2.872663574999996e+00 -2.872665367034357e+00 -2.872667775003300e+00 -2.872670805307676e+00 - -2.872674464001362e+00 -2.872678757122995e+00 -2.872683690997219e+00 -2.872689271947241e+00 -2.872695506004511e+00 - -2.872702399218003e+00 -2.872709957998547e+00 -2.872718188690384e+00 -2.872727097009549e+00 -2.872736688669513e+00 - -2.872746970001709e+00 -2.872757947412680e+00 -2.872769626991446e+00 -2.872782014787135e+00 -2.872795117006809e+00 - -2.872808939808297e+00 -2.872823488994544e+00 -2.872838770359238e+00 -2.872854790013944e+00 -2.872871554154958e+00 - -2.872889068999627e+00 -2.872907340687168e+00 -2.872926375023218e+00 -2.872946177789640e+00 -2.872966755006795e+00 - -2.872988112738970e+00 -2.873010256987659e+00 -2.873033193743455e+00 -2.873056929016149e+00 -2.873081468798353e+00 - -2.873106818994782e+00 -2.873132985471494e+00 -2.873159974027786e+00 -2.873187790508094e+00 -2.873216441004140e+00 - -2.873245931584463e+00 -2.873276267977569e+00 -2.873307455856915e+00 -2.873339501015828e+00 -2.873372409342765e+00 - -2.873406186986854e+00 -2.873440840030674e+00 -2.873476374029945e+00 -2.873512794459630e+00 -2.873550106998518e+00 - -2.873588317466817e+00 -2.873627432046586e+00 -2.873667456808100e+00 -2.873708397012657e+00 -2.873750257967860e+00 - -2.873793045975522e+00 -2.873836767295967e+00 -2.873881427029366e+00 -2.873927030237608e+00 -2.873973582989610e+00 - -2.874021091436191e+00 -2.874069561048740e+00 -2.874118997257345e+00 -2.874169406006314e+00 -2.874220793186470e+00 - -2.874273163960479e+00 -2.874326523535612e+00 -2.874380878025728e+00 -2.874436233504353e+00 -2.874492594977105e+00 - -2.874549967456173e+00 -2.874608357047944e+00 -2.874667769870749e+00 -2.874728210996486e+00 -2.874789685444839e+00 - -2.874852199073056e+00 -2.874915757808161e+00 -2.874980367018717e+00 -2.875046031956011e+00 -2.875112757960702e+00 - -2.875180550448241e+00 -2.875249415043884e+00 -2.875319357389408e+00 -2.875390382982873e+00 -2.875462497200150e+00 - -2.875535705072081e+00 -2.875610011724477e+00 -2.875685423008027e+00 -2.875761944747628e+00 -2.875839581940104e+00 - -2.875918339524430e+00 -2.875998223036253e+00 -2.876079238083328e+00 -2.876161389965175e+00 -2.876244683897332e+00 - -2.876329125067640e+00 -2.876414718675390e+00 -2.876501469993362e+00 -2.876589384334920e+00 -2.876678467102276e+00 - -2.876768723646439e+00 -2.876860159024752e+00 -2.876952778311590e+00 -2.877046586943105e+00 -2.877141590285005e+00 - -2.877237793059432e+00 -2.877335200055582e+00 -2.877433816974432e+00 -2.877533649470098e+00 -2.877634702097487e+00 - -2.877736979404358e+00 -2.877840487009089e+00 -2.877945230580227e+00 -2.878051214916385e+00 -2.878158444703550e+00 - -2.878266925047163e+00 -2.878376661120778e+00 -2.878487657950954e+00 -2.878599920558564e+00 -2.878713454088738e+00 - -2.878828263638601e+00 -2.878944353988982e+00 -2.879061729871082e+00 -2.879180396133895e+00 -2.879300357745253e+00 - -2.879421620030550e+00 -2.879544188234639e+00 -2.879668066922659e+00 -2.879793260582870e+00 -2.879919774075741e+00 - -2.880047612428619e+00 -2.880176780964157e+00 -2.880307284823274e+00 -2.880439128124635e+00 -2.880572315044195e+00 - -2.880706851009318e+00 -2.880842741491739e+00 -2.880979990889281e+00 -2.881118603470176e+00 -2.881258584058220e+00 - -2.881399937594580e+00 -2.881542668934350e+00 -2.881686782880171e+00 -2.881832284110943e+00 -2.881979177270132e+00 - -2.882127466983199e+00 -2.882277157822698e+00 -2.882428254167564e+00 -2.882580760515876e+00 -2.882734682035907e+00 - -2.882890023809088e+00 -2.883046789899305e+00 -2.883204984344022e+00 -2.883364612092550e+00 -2.883525678164890e+00 - -2.883688186951939e+00 -2.883852142755886e+00 -2.884017550153203e+00 -2.884184413751485e+00 -2.884352738008543e+00 - -2.884522527349429e+00 -2.884693786217942e+00 -2.884866519029743e+00 -2.885040730069195e+00 -2.885216423722596e+00 - -2.885393604915286e+00 -2.885572278454246e+00 -2.885752448133968e+00 -2.885934117732660e+00 -2.886117291975880e+00 - -2.886301975695701e+00 -2.886488173202934e+00 -2.886675888645447e+00 -2.886865126040629e+00 -2.887055889528861e+00 - -2.887248183873006e+00 -2.887442013779875e+00 -2.887637383109605e+00 -2.887834295673936e+00 -2.888032755937675e+00 - -2.888232768417303e+00 -2.888434337182880e+00 -2.888637466267979e+00 -2.888842160006608e+00 -2.889048422705334e+00 - -2.889256258260521e+00 -2.889465670586525e+00 -2.889676664079871e+00 -2.889889243164732e+00 -2.890103411893701e+00 - -2.890319174230825e+00 -2.890536534157536e+00 -2.890755495690120e+00 -2.890976062966901e+00 -2.891198240133124e+00 - -2.891422031239666e+00 -2.891647440271526e+00 -2.891874471044534e+00 -2.892103127449178e+00 -2.892333413843735e+00 - -2.892565334531329e+00 -2.892798893126666e+00 -2.893034093211137e+00 -2.893270938921286e+00 -2.893509434394119e+00 - -2.893749583213363e+00 -2.893991388990754e+00 -2.894234856003367e+00 -2.894479988544211e+00 -2.894726790304690e+00 - -2.894975264880993e+00 -2.895225416090045e+00 -2.895477247800793e+00 -2.895730763869547e+00 -2.895985968110420e+00 - -2.896242864181383e+00 -2.896501455784724e+00 -2.896761746956156e+00 -2.897023741664482e+00 -2.897287443277443e+00 - -2.897552855132549e+00 -2.897819981047455e+00 -2.898088824960355e+00 -2.898359390811481e+00 -2.898631682423090e+00 - -2.898905703143506e+00 -2.899181456336644e+00 -2.899458945902694e+00 -2.899738175745144e+00 -2.900019149244370e+00 - -2.900301869748365e+00 -2.900586340998689e+00 -2.900872566741790e+00 -2.901160550350105e+00 -2.901450295205248e+00 - -2.901741805099525e+00 -2.902035083835090e+00 -2.902330134842785e+00 -2.902626961482952e+00 -2.902925567205262e+00 - -2.903225955501619e+00 -2.903528129943548e+00 -2.903832094083243e+00 -2.904137851315957e+00 -2.904445404943298e+00 - -2.904754758049239e+00 -2.905065913908475e+00 -2.905378876776237e+00 -2.905693650730528e+00 -2.906010238159916e+00 - -2.906328641477237e+00 -2.906648864881840e+00 -2.906970912612057e+00 -2.907294787275635e+00 -2.907620491421319e+00 - -2.907948028992455e+00 -2.908277404008211e+00 -2.908608619396449e+00 -2.908941677961907e+00 -2.909276583108139e+00 - -2.909613338320582e+00 -2.909951946813384e+00 -2.910292411733319e+00 -2.910634736228945e+00 -2.910978923497479e+00 - -2.911324976928991e+00 -2.911672899876866e+00 -2.912022695354926e+00 -2.912374366346152e+00 -2.912727916049746e+00 - -2.913083347735332e+00 -2.913440664738005e+00 -2.913799870293631e+00 -2.914160967175702e+00 -2.914523958205600e+00 - -2.914888846858668e+00 -2.915255636613397e+00 -2.915624330306910e+00 -2.915994930711883e+00 -2.916367440984558e+00 - -2.916741864289805e+00 -2.917118203443422e+00 -2.917496461287171e+00 -2.917876641115726e+00 -2.918258746264796e+00 - -2.918642779781321e+00 -2.919028744569610e+00 -2.919416643252220e+00 -2.919806478556714e+00 -2.920198253912409e+00 - -2.920591972698769e+00 -2.920987637394092e+00 -2.921385250442034e+00 -2.921784815048848e+00 -2.922186334507697e+00 - -2.922589811696789e+00 -2.922995249368979e+00 -2.923402650190686e+00 -2.923812016928122e+00 -2.924223352833133e+00 - -2.924636661116357e+00 -2.925051944337972e+00 -2.925469204994078e+00 -2.925888445974902e+00 -2.926309670222330e+00 - -2.926732880490753e+00 -2.927158079512877e+00 -2.927585270122142e+00 -2.928014455203420e+00 -2.928445637746579e+00 - -2.928878820641719e+00 -2.929314006274898e+00 -2.929751197043434e+00 -2.930190395893735e+00 -2.930631605816839e+00 - -2.931074829433217e+00 -2.931520069294359e+00 -2.931967328046430e+00 -2.932416608452995e+00 -2.932867913652596e+00 - -2.933321246608101e+00 -2.933776609204709e+00 -2.934234003435805e+00 -2.934693432805196e+00 -2.935154900804807e+00 - -2.935618409368617e+00 -2.936083960365691e+00 -2.936551556963400e+00 -2.937021202354904e+00 -2.937492898538196e+00 - -2.937966647468766e+00 -2.938442452127255e+00 -2.938920315642269e+00 -2.939400240709141e+00 -2.939882229846171e+00 - -2.940366285296803e+00 -2.940852409365155e+00 -2.941340604872910e+00 -2.941830874578781e+00 -2.942323220472084e+00 - -2.942817644603974e+00 -2.943314150042391e+00 -2.943812739919231e+00 -2.944313416605433e+00 -2.944816182292809e+00 - -2.945321039217627e+00 -2.945827989752984e+00 -2.946337036774817e+00 -2.946848183049044e+00 -2.947361430398659e+00 - -2.947876780695535e+00 -2.948394236949976e+00 -2.948913802216184e+00 -2.949435478585527e+00 -2.949959268045502e+00 - -2.950485173130951e+00 -2.951013196489051e+00 -2.951543340668991e+00 -2.952075608036040e+00 -2.952610000317780e+00 - -2.953146519451356e+00 -2.953685168849877e+00 -2.954225951787981e+00 -2.954768869510503e+00 -2.955313923227115e+00 - -2.955861116036636e+00 -2.956410451196468e+00 -2.956961930709160e+00 -2.957515556348660e+00 -2.958071330229310e+00 - -2.958629254704319e+00 -2.959189332741965e+00 -2.959751567143614e+00 -2.960315959427935e+00 -2.960882511105170e+00 - -2.961451224934558e+00 -2.962022103774683e+00 -2.962595149632548e+00 -2.963170364371659e+00 -2.963747750133120e+00 - -2.964327309260061e+00 -2.964909044626116e+00 -2.965492958892178e+00 -2.966079053337689e+00 -2.966667329311879e+00 - -2.967257789824588e+00 -2.967850437973655e+00 -2.968445275548303e+00 -2.969042304161408e+00 -2.969641526029084e+00 - -2.970242943489398e+00 -2.970846558764995e+00 -2.971452374012471e+00 -2.972060391239641e+00 -2.972670612566008e+00 - -2.973283040706606e+00 -2.973897678221620e+00 -2.974514526456296e+00 -2.975133586785449e+00 -2.975754861917081e+00 - -2.976378354633252e+00 -2.977004066679083e+00 -2.977631999719257e+00 -2.978262156133669e+00 -2.978894538388579e+00 - -2.979529148580497e+00 -2.980165988659094e+00 -2.980805060356407e+00 -2.981446365534977e+00 -2.982089906796993e+00 - -2.982735686662750e+00 -2.983383706585328e+00 -2.984033968085205e+00 -2.984686474019655e+00 -2.985341227187940e+00 - -2.985998228820469e+00 -2.986657480057624e+00 -2.987318983248517e+00 -2.987982740990944e+00 -2.988648755668708e+00 - -2.989317029403636e+00 -2.989987563483614e+00 -2.990660359350691e+00 -2.991335419897486e+00 -2.992012747963469e+00 - -2.992692344724977e+00 -2.993374211287029e+00 -2.994058350132512e+00 -2.994744763907397e+00 -2.995433454532118e+00 - -2.996124423756546e+00 -2.996817673373822e+00 -2.997513205283444e+00 -2.998211021767050e+00 -2.998911125033880e+00 - -2.999613516621449e+00 -3.000318198120732e+00 -3.001025172008281e+00 -3.001734440748973e+00 -3.002446005875424e+00 - -3.003159868783688e+00 -3.003876031255844e+00 -3.004594495323234e+00 -3.005315263628241e+00 -3.006038338638268e+00 - -3.006763721509772e+00 -3.007491413411925e+00 -3.008221416875716e+00 -3.008953734497098e+00 -3.009688367770095e+00 - -3.010425318036306e+00 -3.011164587129571e+00 -3.011906177113799e+00 -3.012650090480955e+00 -3.013396329533748e+00 - -3.014144895389836e+00 -3.014895789237767e+00 -3.015649013734712e+00 -3.016404571515447e+00 -3.017162463656545e+00 - -3.017922691248400e+00 -3.018685256994897e+00 -3.019450163571901e+00 -3.020217411929727e+00 -3.020987002987051e+00 - -3.021758939261538e+00 -3.022533223477289e+00 -3.023309857585168e+00 -3.024088843221124e+00 -3.024870181534668e+00 - -3.025653873871900e+00 -3.026439922851719e+00 -3.027228331077071e+00 -3.028019099814318e+00 -3.028812230192102e+00 - -3.029607724124773e+00 -3.030405583764245e+00 -3.031205811426982e+00 -3.032008409239547e+00 -3.032813378404362e+00 - -3.033620720145768e+00 -3.034430436699938e+00 -3.035242530366928e+00 -3.036057002690514e+00 -3.036873855182042e+00 - -3.037693089979441e+00 -3.038514709166424e+00 -3.039338713983260e+00 -3.040165105664532e+00 -3.040993886265523e+00 - -3.041825058080565e+00 -3.042658623539453e+00 -3.043494584770202e+00 -3.044332942558215e+00 -3.045173697755793e+00 - -3.046016852825442e+00 -3.046862410359265e+00 -3.047710371857544e+00 -3.048560738605269e+00 -3.049413512118055e+00 - -3.050268694173960e+00 -3.051126287370169e+00 -3.051986294136892e+00 -3.052848715417321e+00 -3.053713552140092e+00 - -3.054580806662679e+00 -3.055450481419417e+00 -3.056322577723267e+00 -3.057197096839233e+00 -3.058074040961857e+00 - -3.058953412280709e+00 -3.059835212035924e+00 -3.060719441405425e+00 -3.061606102267731e+00 -3.062495196777212e+00 - -3.063386727491054e+00 -3.064280696619269e+00 -3.065177104580330e+00 -3.066075951959016e+00 -3.066977241796834e+00 - -3.067880977177860e+00 -3.068787158899685e+00 -3.069695787543252e+00 -3.070606865109353e+00 -3.071520393938529e+00 - -3.072436376310475e+00 -3.073354814200677e+00 -3.074275708428639e+00 -3.075199059975246e+00 -3.076124871622891e+00 - -3.077053146054635e+00 -3.077983883754724e+00 -3.078917085313194e+00 -3.079852753942089e+00 -3.080790892784741e+00 - -3.081731502087634e+00 -3.082674582011150e+00 -3.083620135268097e+00 -3.084568164866139e+00 -3.085518672439932e+00 - -3.086471659270948e+00 -3.087427126600947e+00 -3.088385075921834e+00 -3.089345509765843e+00 -3.090308430518810e+00 - -3.091273838940665e+00 -3.092241735746584e+00 -3.093212123098609e+00 -3.094185003484481e+00 -3.095160379247863e+00 - -3.096138252358965e+00 -3.097118623438258e+00 -3.098101493262150e+00 -3.099086864580523e+00 -3.100074740150514e+00 - -3.101065120784818e+00 -3.102058007230942e+00 -3.103053401920080e+00 -3.104051307417155e+00 -3.105051725138318e+00 - -3.106054656274756e+00 -3.107060102266563e+00 -3.108068064811119e+00 -3.109078546386035e+00 -3.110091549326776e+00 - -3.111107074619999e+00 -3.112125123273996e+00 -3.113145697732417e+00 -3.114168800386244e+00 -3.115194431980418e+00 - -3.116222593318652e+00 -3.117253287085768e+00 -3.118286516039464e+00 -3.119322281347848e+00 -3.120360583948459e+00 - -3.121401425446115e+00 -3.122444807777008e+00 -3.123490733535526e+00 -3.124539205035892e+00 -3.125590222813487e+00 - -3.126643787500575e+00 -3.127699901895779e+00 -3.128758568841378e+00 -3.129819789187914e+00 -3.130883563634097e+00 - -3.131949894263071e+00 -3.133018783446947e+00 -3.134090233329311e+00 -3.135164245759380e+00 -3.136240821637432e+00 - -3.137319962039862e+00 -3.138401669696502e+00 -3.139485947209752e+00 -3.140572795018887e+00 -3.141662213641400e+00 - -3.142754206070774e+00 -3.143848775370422e+00 -3.144945922407469e+00 -3.146045647810740e+00 -3.147147953452156e+00 - -3.148252841552866e+00 -3.149360314487843e+00 -3.150470374336312e+00 -3.151583021840677e+00 -3.152698257836541e+00 - -3.153816084869129e+00 -3.154936505573740e+00 -3.156059521236365e+00 -3.157185132934072e+00 -3.158313342257567e+00 - -3.159444151127381e+00 -3.160577562269707e+00 -3.161713578058511e+00 -3.162852198653188e+00 -3.163993424406347e+00 - -3.165137258658042e+00 -3.166283704751602e+00 -3.167432763056018e+00 -3.168584433853514e+00 -3.169738720053572e+00 - -3.170895624664928e+00 -3.172055148466089e+00 -3.173217292044841e+00 -3.174382057456326e+00 -3.175549447119023e+00 - -3.176719463437418e+00 -3.177892108465135e+00 -3.179067382866334e+00 -3.180245287430775e+00 -3.181425824840074e+00 - -3.182608997807819e+00 -3.183794807283624e+00 -3.184983254083125e+00 -3.186174340249998e+00 -3.187368068149750e+00 - -3.188564440207163e+00 -3.189763458501066e+00 -3.190965123667219e+00 -3.192169436468204e+00 -3.193376399616980e+00 - -3.194586015855556e+00 -3.195798286091764e+00 -3.197013211234878e+00 -3.198230794034108e+00 -3.199451037209393e+00 - -3.200673941523666e+00 -3.201899507599942e+00 -3.203127737458575e+00 -3.204358633517069e+00 -3.205592198384193e+00 - -3.206828434306502e+00 -3.208067341890413e+00 -3.209308921829809e+00 -3.210553176808560e+00 -3.211800109598040e+00 - -3.213049721329648e+00 -3.214302012941719e+00 -3.215556986240311e+00 -3.216814643392485e+00 -3.218074987141617e+00 - -3.219338019837523e+00 -3.220603741679474e+00 -3.221872153094758e+00 -3.223143257573258e+00 -3.224417058543514e+00 - -3.225693556126080e+00 -3.226972750453261e+00 -3.228254645012327e+00 -3.229539243310538e+00 -3.230826545580160e+00 - -3.232116551831102e+00 -3.233409264458852e+00 -3.234704686394765e+00 -3.236002820328103e+00 -3.237303668413965e+00 - -3.238607230912866e+00 -3.239913508296335e+00 -3.241222503774527e+00 -3.242534220589764e+00 -3.243848659374397e+00 - -3.245165820540432e+00 -3.246485706228452e+00 -3.247808319087641e+00 -3.249133662073000e+00 -3.250461737608715e+00 - -3.251792545689908e+00 -3.253126086515263e+00 -3.254462363526813e+00 -3.255801380232294e+00 -3.257143137158927e+00 - -3.258487634736825e+00 -3.259834875988172e+00 -3.261184864013611e+00 -3.262537599635538e+00 -3.263893083453904e+00 - -3.265251317457108e+00 -3.266612304094287e+00 -3.267976046269084e+00 -3.269342546452898e+00 -3.270711804933652e+00 - -3.272083822201368e+00 -3.273458601737915e+00 -3.274836147008249e+00 -3.276216458417835e+00 -3.277599536106921e+00 - -3.278985382214368e+00 -3.280373999474050e+00 -3.281765391001240e+00 -3.283159559381294e+00 -3.284556504698475e+00 - -3.285956227223949e+00 -3.287358730477579e+00 -3.288764018003004e+00 -3.290172090190266e+00 -3.291582947391597e+00 - -3.292996592961586e+00 -3.294413030263101e+00 -3.295832259689772e+00 -3.297254281509102e+00 -3.298679098453292e+00 - -3.300106713632883e+00 -3.301537129207062e+00 -3.302970346938195e+00 -3.304406367952729e+00 -3.305845193592728e+00 - -3.307286826698660e+00 -3.308731270022015e+00 -3.310178524459931e+00 -3.311628590794006e+00 -3.313081471198005e+00 - -3.314537168271639e+00 -3.315995684926260e+00 -3.317457023622331e+00 -3.318921184705128e+00 -3.320388168757214e+00 - -3.321857979425488e+00 -3.323330620242623e+00 -3.324806091220061e+00 -3.326284392457951e+00 -3.327765527932510e+00 - -3.329249501635255e+00 -3.330736313742837e+00 -3.332225964151081e+00 -3.333718455447356e+00 -3.335213790816533e+00 - -3.336711973141963e+00 -3.338213004741188e+00 -3.339716885970061e+00 -3.341223617428788e+00 -3.342733202656698e+00 - -3.344245645175923e+00 -3.345760945500658e+00 -3.347279103963591e+00 -3.348800123179309e+00 -3.350324006237700e+00 - -3.351850755847976e+00 -3.353380374190363e+00 -3.354912861709826e+00 -3.356448219173252e+00 -3.357986450370467e+00 - -3.359527558984502e+00 -3.361071545248283e+00 -3.362618409368982e+00 -3.364168154900880e+00 -3.365720785489059e+00 - -3.367276301794712e+00 -3.368834704260551e+00 -3.370395995439248e+00 -3.371960178388195e+00 -3.373527256073704e+00 - -3.375097230883950e+00 -3.376670102985606e+00 -3.378245872877927e+00 -3.379824544611959e+00 -3.381406122149057e+00 - -3.382990605539988e+00 -3.384577994855671e+00 -3.386168294158221e+00 -3.387761507524905e+00 -3.389357635102426e+00 - -3.390956676825633e+00 -3.392558635712520e+00 -3.394163515324364e+00 -3.395771318312439e+00 -3.397382046745834e+00 - -3.398995701274896e+00 -3.400612282828281e+00 -3.402231794866633e+00 -3.403854240867662e+00 -3.405479621845378e+00 - -3.407107938586081e+00 -3.408739193428916e+00 -3.410373389185216e+00 -3.412010529002203e+00 -3.413650615518111e+00 - -3.415293648999326e+00 -3.416939629995896e+00 -3.418588562564371e+00 -3.420240450691449e+00 -3.421895294577897e+00 - -3.423553094414080e+00 -3.425213854134680e+00 -3.426877577792018e+00 -3.428544266164663e+00 -3.430213919689846e+00 - -3.431886540713168e+00 -3.433562132145608e+00 -3.435240697251321e+00 -3.436922238808692e+00 -3.438606757299870e+00 - -3.440294253397158e+00 -3.441984730829699e+00 -3.443678193368453e+00 -3.445374641894819e+00 -3.447074077051543e+00 - -3.448776501416308e+00 -3.450481918039497e+00 -3.452190329927366e+00 -3.453901739641781e+00 -3.455616148011183e+00 - -3.457333556082980e+00 -3.459053967513855e+00 -3.460777385853499e+00 -3.462503811614361e+00 -3.464233245386620e+00 - -3.465965691108627e+00 -3.467701152771073e+00 -3.469439631225878e+00 -3.471181127031554e+00 -3.472925642711720e+00 - -3.474673181335264e+00 -3.476423746187027e+00 -3.478177340029919e+00 -3.479933963323171e+00 -3.481693616824597e+00 - -3.483456304790008e+00 -3.485222031388338e+00 -3.486990796943019e+00 -3.488762601570069e+00 -3.490537448401365e+00 - -3.492315341151373e+00 -3.494096282849095e+00 -3.495880275915030e+00 -3.497667321021135e+00 -3.499457419173128e+00 - -3.501250574460328e+00 -3.503046790838973e+00 -3.504846068649357e+00 -3.506648408298966e+00 -3.508453814079994e+00 - -3.510262290280344e+00 -3.512073837286068e+00 -3.513888455301771e+00 -3.515706147708129e+00 -3.517526918395819e+00 - -3.519350770119465e+00 -3.521177705073145e+00 -3.523007724344773e+00 -3.524840829328240e+00 -3.526677023747485e+00 - -3.528516311267811e+00 -3.530358692989965e+00 -3.532204169811781e+00 -3.534052744384031e+00 -3.535904419874647e+00 - -3.537759199767289e+00 -3.539617087002065e+00 -3.541478082029144e+00 -3.543342185630307e+00 -3.545209402403708e+00 - -3.547079736777425e+00 -3.548953188682862e+00 -3.550829758143615e+00 -3.552709450048714e+00 -3.554592269345012e+00 - -3.556478216345227e+00 -3.558367291032073e+00 -3.560259496702344e+00 -3.562154837300620e+00 -3.564053316048536e+00 - -3.565954935512961e+00 -3.567859696364639e+00 -3.569767599635964e+00 -3.571678649702049e+00 -3.573592850895430e+00 - -3.575510204035641e+00 -3.577430709619281e+00 -3.579354370364244e+00 -3.581281189700099e+00 -3.583211171681835e+00 - -3.585144319721653e+00 -3.587080634035166e+00 -3.589020115063184e+00 -3.590962767343901e+00 -3.592908595415016e+00 - -3.594857599714854e+00 -3.596809780701911e+00 -3.598765143014713e+00 -3.600723691343250e+00 -3.602685426403352e+00 - -3.604650348553174e+00 -3.606618460694309e+00 -3.608589766473437e+00 -3.610564269974137e+00 -3.612541974573128e+00 - -3.614522880382737e+00 -3.616506987803558e+00 -3.618494301653613e+00 -3.620484826823921e+00 -3.622478564080036e+00 - -3.624475513850586e+00 -3.626475679341938e+00 -3.628479064392689e+00 -3.630485672592619e+00 -3.632495506905407e+00 - -3.634508568039156e+00 -3.636524857004877e+00 -3.638544378280809e+00 -3.640567136287224e+00 -3.642593131745308e+00 - -3.644622365423449e+00 -3.646654841977913e+00 -3.648690566065893e+00 -3.650729538460438e+00 -3.652771759626902e+00 - -3.654817232683972e+00 -3.656865961450936e+00 -3.658917949896158e+00 -3.660973201344661e+00 -3.663031716399031e+00 - -3.665093495929850e+00 -3.667158544602091e+00 -3.669226867066577e+00 -3.671298464123134e+00 -3.673373336353373e+00 - -3.675451487317045e+00 -3.677532921173144e+00 -3.679617641499514e+00 -3.681705651197185e+00 -3.683796951041065e+00 - -3.685891542158701e+00 -3.687989429214330e+00 -3.690090616811484e+00 -3.692195105774196e+00 -3.694302896934788e+00 - -3.696413994938233e+00 -3.698528404463948e+00 -3.700646126516483e+00 -3.702767161822413e+00 -3.704891513671268e+00 - -3.707019186005269e+00 -3.709150182814482e+00 -3.711284507419287e+00 -3.713422160413482e+00 -3.715563142750310e+00 - -3.717707459547388e+00 -3.719855115839397e+00 -3.722006112164920e+00 -3.724160448777861e+00 -3.726318129289493e+00 - -3.728479158099316e+00 -3.730643539402395e+00 -3.732811276589775e+00 -3.734982370040845e+00 -3.737156820495128e+00 - -3.739334633144358e+00 -3.741515813112657e+00 -3.743700360801490e+00 -3.745888276640612e+00 -3.748079565895588e+00 - -3.750274233918474e+00 -3.752472281571475e+00 -3.754673709335501e+00 -3.756878520656135e+00 -3.759086719721971e+00 - -3.761298310728990e+00 -3.763513297133539e+00 -3.765731679426046e+00 -3.767953458457793e+00 -3.770178639489403e+00 - -3.772407227784000e+00 -3.774639224205367e+00 -3.776874629489326e+00 -3.779113448259203e+00 -3.781355685279774e+00 - -3.783601341994148e+00 -3.785850419525435e+00 -3.788102921038436e+00 -3.790358850378410e+00 -3.792618212070778e+00 - -3.794881010002580e+00 -3.797147244827153e+00 -3.799416917428862e+00 -3.801690032849888e+00 -3.803966596190487e+00 - -3.806246608625402e+00 -3.808530070983860e+00 -3.810816986638503e+00 -3.813107359693981e+00 -3.815401194639556e+00 - -3.817698495297397e+00 -3.819999262436677e+00 -3.822303497093916e+00 -3.824611204428034e+00 -3.826922389548483e+00 - -3.829237053244454e+00 -3.831555196353405e+00 -3.833876824226091e+00 -3.836201942201953e+00 -3.838530551061888e+00 - -3.840862651326505e+00 -3.843198247033778e+00 -3.845537342919513e+00 -3.847879942993476e+00 -3.850226050562932e+00 - -3.852575666851148e+00 -3.854928793361406e+00 -3.857285434801036e+00 -3.859645595950435e+00 -3.862009278678248e+00 - -3.864376484523473e+00 -3.866747216618300e+00 -3.869121478726629e+00 -3.871499275546047e+00 -3.873880611182955e+00 - -3.876265486445322e+00 -3.878653902389424e+00 -3.881045864363169e+00 -3.883441377687285e+00 -3.885840443282151e+00 - -3.888243062046155e+00 -3.890649239190073e+00 -3.893058980047241e+00 -3.895472286128841e+00 -3.897889158595383e+00 - -3.900309601026809e+00 -3.902733617656517e+00 -3.905161212912323e+00 -3.907592390603840e+00 -3.910027151873432e+00 - -3.912465498159137e+00 -3.914907434748928e+00 -3.917352966879188e+00 -3.919802095729995e+00 -3.922254822259626e+00 - -3.924711150595445e+00 -3.927171085542605e+00 -3.929634631448325e+00 -3.932101791843537e+00 -3.934572567451927e+00 - -3.937046959532740e+00 -3.939524974294695e+00 -3.942006617767883e+00 -3.944491890318428e+00 -3.946980792233828e+00 - -3.949473329151056e+00 -3.951969506957779e+00 -3.954469327195002e+00 -3.956972790971958e+00 -3.959479902017460e+00 - -3.961990664762499e+00 -3.964505083827194e+00 -3.967023163167552e+00 -3.969544903893966e+00 -3.972070307479498e+00 - -3.974599379693463e+00 -3.977132126179292e+00 -3.979668547780628e+00 -3.982208645099321e+00 -3.984752422569858e+00 - -3.987299885436030e+00 -3.989851038346246e+00 -3.992405885069993e+00 -3.994964426456437e+00 -3.997526663815754e+00 - -4.000092603222488e+00 -4.002662250581340e+00 -4.005235606353252e+00 -4.007812671084819e+00 -4.010393451108941e+00 - -4.012977952843547e+00 -4.015566177260363e+00 -4.018158124897606e+00 -4.020753800005660e+00 -4.023353207686703e+00 - -4.025956352737950e+00 -4.028563239140089e+00 -4.031173867912699e+00 -4.033788240453579e+00 -4.036406362634527e+00 - -4.039028240314873e+00 -4.041653874830120e+00 -4.044283267179555e+00 -4.046916421541453e+00 -4.049553342894448e+00 - -4.052194036239657e+00 -4.054838505774454e+00 -4.057486752458788e+00 -4.060138777601743e+00 -4.062794587146426e+00 - -4.065454187011838e+00 -4.068117578386588e+00 -4.070784762448621e+00 -4.073455745063631e+00 -4.076130532171974e+00 - -4.078809125324914e+00 -4.081491525652789e+00 -4.084177736991329e+00 -4.086867764089578e+00 -4.089561612644448e+00 - -4.092259287473573e+00 -4.094960788929582e+00 -4.097666117736884e+00 -4.100375280572002e+00 -4.103088284211306e+00 - -4.105805129878449e+00 -4.108525818267906e+00 -4.111250353510137e+00 -4.113978740671802e+00 -4.116710985128399e+00 - -4.119447091422845e+00 -4.122187060458915e+00 -4.124930893522407e+00 -4.127678597066370e+00 -4.130430177441071e+00 - -4.133185635418395e+00 -4.135944971791250e+00 -4.138708193015015e+00 -4.141475305696859e+00 -4.144246311388639e+00 - -4.147021211130915e+00 -4.149800008974389e+00 -4.152582709893380e+00 -4.155369319546537e+00 -4.158159842709882e+00 - -4.160954279944561e+00 -4.163752632239020e+00 -4.166554906505763e+00 -4.169361109687737e+00 -4.172171242925584e+00 - -4.174985306927709e+00 -4.177803306475812e+00 -4.180625247195196e+00 -4.183451134012302e+00 -4.186280970992621e+00 - -4.189114759456745e+00 -4.191952501240072e+00 -4.194794202982180e+00 -4.197639871116617e+00 -4.200489506448629e+00 - -4.203343109834506e+00 -4.206200687962978e+00 -4.209062247657938e+00 -4.211927790451525e+00 -4.214797317400862e+00 - -4.217670832954751e+00 -4.220548342457539e+00 -4.223429851444060e+00 -4.226315364591702e+00 -4.229204882957573e+00 - -4.232098408004153e+00 -4.234995946435681e+00 -4.237897504949240e+00 -4.240803084971501e+00 -4.243712687544032e+00 - -4.246626317438374e+00 -4.249543980343883e+00 -4.252465681891192e+00 -4.255391426705907e+00 -4.258321215452209e+00 - -4.261255049361277e+00 -4.264192935893713e+00 -4.267134882389568e+00 -4.270080889477248e+00 -4.273030957691918e+00 - -4.275985093907401e+00 -4.278943305249538e+00 -4.281905593513557e+00 -4.284871959946388e+00 -4.287842408932329e+00 - -4.290816945777364e+00 -4.293795576336856e+00 -4.296778305653331e+00 -4.299765134968560e+00 -4.302756065899131e+00 - -4.305751105361620e+00 -4.308750260118541e+00 -4.311753531016159e+00 -4.314760919008608e+00 -4.317772431397722e+00 - -4.320788075591533e+00 -4.323807853075197e+00 -4.326831764792573e+00 -4.329859815445223e+00 -4.332892010759197e+00 - -4.335928356800809e+00 -4.338968858700405e+00 -4.342013517504197e+00 -4.345062334602749e+00 -4.348115316848165e+00 - -4.351172471198577e+00 -4.354233799574710e+00 -4.357299303495111e+00 -4.360368987907023e+00 -4.363442858590077e+00 - -4.366520921224746e+00 -4.369603180592436e+00 -4.372689637977453e+00 -4.375780295145305e+00 -4.378875159283436e+00 - -4.381974237486932e+00 -4.385077531059527e+00 -4.388185041309383e+00 -4.391296775353732e+00 -4.394412740393244e+00 - -4.397532938153312e+00 -4.400657369887305e+00 -4.403786040435705e+00 -4.406918955633090e+00 -4.410056121703311e+00 - -4.413197543940346e+00 -4.416343223529426e+00 -4.419493162052248e+00 -4.422647366785128e+00 -4.425805845047289e+00 - -4.428968598634965e+00 -4.432135628892382e+00 -4.435306940878729e+00 -4.438482540596634e+00 -4.441662434107552e+00 - -4.444846626509031e+00 -4.448035118984182e+00 -4.451227913265940e+00 -4.454425017200977e+00 -4.457626438485681e+00 - -4.460832178101560e+00 -4.464042236947444e+00 -4.467256622306292e+00 -4.470475341701105e+00 -4.473698397230936e+00 - -4.476925790483307e+00 -4.480157526423565e+00 -4.483393610985775e+00 -4.486634050601043e+00 -4.489878850742320e+00 - -4.493128012552872e+00 -4.496381537630165e+00 -4.499639433718156e+00 -4.502901708553144e+00 -4.506168363694287e+00 - -4.509439400268067e+00 -4.512714823847340e+00 -4.515994641019672e+00 -4.519278857985080e+00 -4.522567479881829e+00 - -4.525860507988668e+00 -4.529157944122721e+00 -4.532459796114085e+00 -4.535766071688615e+00 -4.539076772142213e+00 - -4.542391898765175e+00 -4.545711459255270e+00 -4.549035461446213e+00 -4.552363907308053e+00 -4.555696798263391e+00 - -4.559034139408705e+00 -4.562375936904542e+00 -4.565722197493832e+00 -4.569072926948550e+00 -4.572428126574475e+00 - -4.575787798129616e+00 -4.579151949647104e+00 -4.582520589075836e+00 -4.585893717752653e+00 -4.589271336639746e+00 - -4.592653451812744e+00 -4.596040070428725e+00 -4.599431198857142e+00 -4.602826842289216e+00 -4.606227001990830e+00 - -4.609631679831751e+00 -4.613040884022596e+00 -4.616454622677202e+00 -4.619872897181441e+00 -4.623295708819967e+00 - -4.626723065200532e+00 -4.630154974192006e+00 -4.633591438384649e+00 -4.637032459790966e+00 -4.640478043391029e+00 - -4.643928195196958e+00 -4.647382922381489e+00 -4.650842231139545e+00 -4.654306122594169e+00 -4.657774598295235e+00 - -4.661247666571815e+00 -4.664725335805659e+00 -4.668207607810025e+00 -4.671694483876048e+00 -4.675185969774820e+00 - -4.678682072408495e+00 -4.682182798723523e+00 -4.685688154522786e+00 -4.689198140990583e+00 -4.692712759891060e+00 - -4.696232019926335e+00 -4.699755929666950e+00 -4.703284490219185e+00 -4.706817702626076e+00 -4.710355575141943e+00 - -4.713898116290367e+00 -4.717445328460708e+00 -4.720997213393779e+00 -4.724553776370427e+00 -4.728115023824750e+00 - -4.731680963263822e+00 -4.735251601139764e+00 -4.738826938611875e+00 -4.742406977241646e+00 -4.745991725492132e+00 - -4.749581191958943e+00 -4.753175378866366e+00 -4.756774287871428e+00 -4.760377924733439e+00 -4.763986296289299e+00 - -4.767599409584012e+00 -4.771217270615820e+00 -4.774839880987831e+00 -4.778467242836293e+00 -4.782099364825118e+00 - -4.785736255481164e+00 -4.789377916255392e+00 -4.793024348603915e+00 -4.796675561079348e+00 -4.800331562360717e+00 - -4.803992354536202e+00 -4.807657939173200e+00 -4.811328322346788e+00 -4.815003511262576e+00 -4.818683513140625e+00 - -4.822368334073276e+00 -4.826057975627521e+00 -4.829752439872078e+00 -4.833451735407881e+00 -4.837155870922971e+00 - -4.840864848921632e+00 -4.844578671297884e+00 -4.848297343688468e+00 -4.852020872870312e+00 -4.855749266438375e+00 - -4.859482530948563e+00 -4.863220667982479e+00 -4.866963679596293e+00 -4.870711574718753e+00 -4.874464362148352e+00 - -4.878222043289993e+00 -4.881984619584831e+00 -4.885752100012597e+00 -4.889524493673498e+00 -4.893301802611106e+00 - -4.897084028340568e+00 -4.900871177319985e+00 -4.904663257144151e+00 -4.908460275011687e+00 -4.912262236942902e+00 - -4.916069144641015e+00 -4.919881000415621e+00 -4.923697813318887e+00 -4.927519592402767e+00 -4.931346339975771e+00 - -4.935178057730553e+00 -4.939014751639765e+00 -4.942856428895341e+00 -4.946703097286389e+00 -4.950554763469543e+00 - -4.954411428974413e+00 -4.958273095882141e+00 -4.962139773607051e+00 -4.966011471374763e+00 -4.969888190322918e+00 - -4.973769931656962e+00 -4.977656704941523e+00 -4.981548519919207e+00 -4.985445378685372e+00 -4.989347282670139e+00 - -4.993254238289898e+00 -4.997166253181426e+00 -5.001083334876794e+00 -5.005005489750602e+00 -5.008932719652265e+00 - -5.012865027026571e+00 -5.016802421224969e+00 -5.020744911403345e+00 -5.024692499028711e+00 -5.028645185619313e+00 - -5.032602980587180e+00 -5.036565893470627e+00 -5.040533926419334e+00 -5.044507081015939e+00 -5.048485363963517e+00 - -5.052468783200935e+00 -5.056457346489804e+00 -5.060451060330298e+00 -5.064449926354071e+00 -5.068453946757710e+00 - -5.072463130865962e+00 -5.076477488052552e+00 -5.080497020758939e+00 -5.084521730904982e+00 -5.088551625256381e+00 - -5.092586711696772e+00 -5.096626997735727e+00 -5.100672489712744e+00 -5.104723189661156e+00 -5.108779100266077e+00 - -5.112840231125939e+00 -5.116906591587866e+00 -5.120978183080382e+00 -5.125055007124604e+00 -5.129137073530554e+00 - -5.133224392250169e+00 -5.137316965514153e+00 -5.141414794882011e+00 -5.145517886949661e+00 -5.149626249667421e+00 - -5.153739891366810e+00 -5.157858819095347e+00 -5.161983034383363e+00 -5.166112539324860e+00 -5.170247343785729e+00 - -5.174387457616170e+00 -5.178532882831751e+00 -5.182683620936045e+00 -5.186839679219287e+00 -5.191001066208124e+00 - -5.195167789588259e+00 -5.199339855740569e+00 -5.203517266667578e+00 -5.207700025095241e+00 -5.211888141021600e+00 - -5.216081624199723e+00 -5.220280476130696e+00 -5.224484698310884e+00 -5.228694300469721e+00 -5.232909292611727e+00 - -5.237129677608738e+00 -5.241355457600706e+00 -5.245586638932716e+00 -5.249823229255573e+00 -5.254065237237846e+00 - -5.258312670369801e+00 -5.262565530410686e+00 -5.266823819583928e+00 -5.271087547700648e+00 -5.275356724632263e+00 - -5.279631352903723e+00 -5.283911434448228e+00 -5.288196976178466e+00 -5.292487986327965e+00 -5.296784473434150e+00 - -5.301086444698075e+00 -5.305393901671405e+00 -5.309706846569482e+00 -5.314025289911748e+00 -5.318349242027271e+00 - -5.322678704179561e+00 -5.327013677718438e+00 -5.331354173404511e+00 -5.335700202105029e+00 -5.340051765703035e+00 - -5.344408865432155e+00 -5.348771508912536e+00 -5.353139705124518e+00 -5.357513462102698e+00 -5.361892786505948e+00 - -5.366277680435933e+00 -5.370668146715638e+00 -5.375064195610523e+00 -5.379465837274747e+00 -5.383873073974794e+00 - -5.388285907439377e+00 -5.392704345133761e+00 -5.397128395890300e+00 -5.401558068273167e+00 -5.405993369375257e+00 - -5.410434300672517e+00 -5.414880864443758e+00 -5.419333071796174e+00 -5.423790933634701e+00 -5.428254451226888e+00 - -5.432723625834648e+00 -5.437198468334746e+00 -5.441678989715544e+00 -5.446165191796978e+00 -5.450657075821366e+00 - -5.455154649888983e+00 -5.459657923508107e+00 -5.464166904961132e+00 -5.468681600997277e+00 -5.473202013458992e+00 - -5.477728145011161e+00 -5.482260006515158e+00 -5.486797608759512e+00 -5.491340954044872e+00 -5.495890044003880e+00 - -5.500444886085005e+00 -5.505005489175888e+00 -5.509571862105057e+00 -5.514144012303452e+00 -5.518721941670775e+00 - -5.523305652810777e+00 -5.527895156674663e+00 -5.532490463993778e+00 -5.537091576272570e+00 -5.541698495053784e+00 - -5.546311231260242e+00 -5.550929796018560e+00 -5.555554191890502e+00 -5.560184420697174e+00 -5.564820489861896e+00 - -5.569462408240030e+00 -5.574110184812914e+00 -5.578763827204064e+00 -5.583423337479740e+00 -5.588088718319627e+00 - -5.592759980414353e+00 -5.597437134453794e+00 -5.602120183113874e+00 -5.606809128447821e+00 -5.611503978032022e+00 - -5.616204740842362e+00 -5.620911425929568e+00 -5.625624040919794e+00 -5.630342587666039e+00 -5.635067068763208e+00 - -5.639797495546991e+00 -5.644533879170592e+00 -5.649276221316504e+00 -5.654024523642824e+00 -5.658778797180806e+00 - -5.663539053129186e+00 -5.668305293983524e+00 -5.673077521581335e+00 -5.677855743831122e+00 -5.682639970117403e+00 - -5.687430209657800e+00 -5.692226470164904e+00 -5.697028753498052e+00 -5.701837062188433e+00 -5.706651407307890e+00 - -5.711471800003379e+00 -5.716298243181697e+00 -5.721130739014699e+00 -5.725969294974640e+00 -5.730813920019088e+00 - -5.735664623746429e+00 -5.740521414337008e+00 -5.745384293658165e+00 -5.750253264219532e+00 -5.755128337412918e+00 - -5.760009524502356e+00 -5.764896827358567e+00 -5.769790247833362e+00 -5.774689797096235e+00 -5.779595486532854e+00 - -5.784507319075965e+00 -5.789425296924678e+00 -5.794349427796488e+00 -5.799279720850703e+00 -5.804216185495535e+00 - -5.809158829710795e+00 -5.814107655513784e+00 -5.819062665706917e+00 -5.824023872195552e+00 -5.828991286593848e+00 - -5.833964910248241e+00 -5.838944744496904e+00 -5.843930800912663e+00 -5.848923091405570e+00 -5.853921618999967e+00 - -5.858926385866531e+00 -5.863937399646989e+00 -5.868954669511408e+00 -5.873978205272220e+00 -5.879008015280387e+00 - -5.884044101398642e+00 -5.889086466127434e+00 -5.894135121006329e+00 -5.899190077679159e+00 -5.904251339167730e+00 - -5.909318907675908e+00 -5.914392790757818e+00 -5.919472997569684e+00 -5.924559538325873e+00 -5.929652421747786e+00 - -5.934751649526802e+00 -5.939857223994977e+00 -5.944969157077114e+00 -5.950087460588470e+00 -5.955212136313389e+00 - -5.960343186070434e+00 -5.965480621845905e+00 -5.970624455737114e+00 -5.975774690117698e+00 -5.980931326619691e+00 - -5.986094373632355e+00 -5.991263841186835e+00 -5.996439739124646e+00 -6.001622075628632e+00 -6.006810852436582e+00 - -6.012006072105073e+00 -6.017207746910874e+00 -6.022415889122929e+00 -6.027630501258702e+00 -6.032851585034692e+00 - -6.038079148714933e+00 -6.043313202169935e+00 -6.048553755148549e+00 -6.053800815867540e+00 -6.059054386536941e+00 - -6.064314470164098e+00 -6.069581078952353e+00 -6.074854224823474e+00 -6.080133909377011e+00 -6.085420134277816e+00 - -6.090712911774160e+00 -6.096012254273324e+00 -6.101318164235261e+00 -6.106630643404864e+00 -6.111949700614082e+00 - -6.117275346267099e+00 -6.122607589969956e+00 -6.127946439669295e+00 -6.133291897472249e+00 -6.138643966380033e+00 - -6.144002658809652e+00 -6.149367987035877e+00 -6.154739953348771e+00 -6.160118559324411e+00 -6.165503813667637e+00 - -6.170895726810269e+00 -6.176294308963303e+00 -6.181699568610070e+00 -6.187111507544039e+00 -6.192530128394146e+00 - -6.197955443821025e+00 -6.203387466288188e+00 -6.208826197438971e+00 -6.214271638855750e+00 -6.219723802697215e+00 - -6.225182701452046e+00 -6.230648338352550e+00 -6.236120715733020e+00 -6.241599841591995e+00 -6.247085725644578e+00 - -6.252578378807894e+00 -6.258077810320607e+00 -6.263584021505486e+00 -6.269097014385768e+00 -6.274616801702433e+00 - -6.280143396389799e+00 -6.285676801437800e+00 -6.291217018848358e+00 -6.296764056615736e+00 -6.302317924554712e+00 - -6.307878633769864e+00 -6.313446193664602e+00 -6.319020605547922e+00 -6.324601871487839e+00 -6.330190004682891e+00 - -6.335785018206249e+00 -6.341386913499118e+00 -6.346995691980793e+00 -6.352611366614864e+00 -6.358233950592316e+00 - -6.363863446469443e+00 -6.369499855900457e+00 -6.375143187565898e+00 -6.380793451939097e+00 -6.386450659638202e+00 - -6.392114819555641e+00 -6.397785933536126e+00 -6.403464004233896e+00 -6.409149044588990e+00 -6.414841067513965e+00 - -6.420540075525660e+00 -6.426246070301758e+00 -6.431959060559017e+00 -6.437679056917068e+00 -6.443406070567963e+00 - -6.449140110779302e+00 -6.454881178548420e+00 -6.460629275812415e+00 -6.466384416537711e+00 -6.472146614484319e+00 - -6.477915870557313e+00 -6.483692185657911e+00 -6.489475573526882e+00 -6.495266048141532e+00 -6.501063611585819e+00 - -6.506868264986595e+00 -6.512680017535606e+00 -6.518498880384615e+00 -6.524324864460620e+00 -6.530157978732819e+00 - -6.535998224564008e+00 -6.541845604255500e+00 -6.547700131469085e+00 -6.553561819849423e+00 -6.559430671612207e+00 - -6.565306688088189e+00 -6.571189878497283e+00 -6.577080253965905e+00 -6.582977825357318e+00 -6.588882601649868e+00 - -6.594794584545345e+00 -6.600713776640095e+00 -6.606640191385222e+00 -6.612573842086468e+00 -6.618514730613387e+00 - -6.624462858757332e+00 -6.630418239433046e+00 -6.636380885778538e+00 -6.642350800701542e+00 -6.648327986279747e+00 - -6.654312451500913e+00 -6.660304207148021e+00 -6.666303264274883e+00 -6.672309632144893e+00 -6.678323312588955e+00 - -6.684344308236361e+00 -6.690372632342481e+00 -6.696408298209058e+00 -6.702451308697293e+00 -6.708501665794167e+00 - -6.714559378430309e+00 -6.720624457416141e+00 -6.726696914137652e+00 -6.732776758078630e+00 -6.738863990538500e+00 - -6.744958613795213e+00 -6.751060642225177e+00 -6.757170089911689e+00 -6.763286957667176e+00 -6.769411246357500e+00 - -6.775542970333119e+00 -6.781682144164359e+00 -6.787828769816468e+00 -6.793982848306231e+00 -6.800144389461610e+00 - -6.806313405086916e+00 -6.812489906080716e+00 -6.818673901333698e+00 -6.824865392610781e+00 -6.831064382650163e+00 - -6.837270885208925e+00 -6.843484914029985e+00 -6.849706471780753e+00 -6.855935560196301e+00 -6.862172188357874e+00 - -6.868416367348060e+00 -6.874668108908677e+00 -6.880927422841348e+00 -6.887194310527692e+00 -6.893468774218006e+00 - -6.899750828057308e+00 -6.906040486046904e+00 -6.912337749718504e+00 -6.918642620544160e+00 -6.924955112226868e+00 - -6.931275238742860e+00 -6.937603002930438e+00 -6.943938406703657e+00 -6.950281459417487e+00 -6.956632172330878e+00 - -6.962990556877839e+00 -6.969356622516854e+00 -6.975730370629293e+00 -6.982111803620415e+00 -6.988500936068168e+00 - -6.994897782349220e+00 -7.001302343862422e+00 -7.007714621896787e+00 -7.014134630279748e+00 -7.020562383120512e+00 - -7.026997883116998e+00 -7.033441132058707e+00 -7.039892139512705e+00 -7.046350916975187e+00 -7.052817475881351e+00 - -7.059291825658977e+00 -7.065773967767182e+00 -7.072263904706783e+00 -7.078761651114045e+00 -7.085267221537997e+00 - -7.091780618043302e+00 -7.098301841735545e+00 -7.104830902368316e+00 -7.111367811800725e+00 -7.117912581665987e+00 - -7.124465221496127e+00 -7.131025732644298e+00 -7.137594117517873e+00 -7.144170390919956e+00 -7.150754567380619e+00 - -7.157346647942116e+00 -7.163946633668109e+00 -7.170554539195697e+00 -7.177170379365883e+00 -7.183794156261903e+00 - -7.190425870988396e+00 -7.197065533493338e+00 -7.203713155838439e+00 -7.210368749697043e+00 -7.217032324589560e+00 - -7.223703881813015e+00 -7.230383423705708e+00 -7.237070964994412e+00 -7.243766520390449e+00 -7.250470092154861e+00 - -7.257181681552523e+00 -7.263901298313877e+00 -7.270628954301988e+00 -7.277364661444877e+00 -7.284108429522252e+00 - -7.290860259655573e+00 -7.297620154032538e+00 -7.304388127764033e+00 -7.311164195737019e+00 -7.317948359019635e+00 - -7.324740618617562e+00 -7.331540989105481e+00 -7.338349485298712e+00 -7.345166109406192e+00 -7.351990862719772e+00 - -7.358823755469352e+00 -7.365664799915581e+00 -7.372514007504119e+00 -7.379371387574386e+00 -7.386236941855793e+00 - -7.393110673113762e+00 -7.399992595867711e+00 -7.406882724521767e+00 -7.413781061264927e+00 -7.420687607444220e+00 - -7.427602373253923e+00 -7.434525370953283e+00 -7.441456612214240e+00 -7.448396106579596e+00 -7.455343855662903e+00 - -7.462299862106879e+00 -7.469264140600134e+00 -7.476236705537742e+00 -7.483217558094771e+00 -7.490206699573982e+00 - -7.497204145008848e+00 -7.504209909607961e+00 -7.511223995549668e+00 -7.518246403916826e+00 -7.525277144440522e+00 - -7.532316229110418e+00 -7.539363670302306e+00 -7.546419478207750e+00 -7.553483653895294e+00 -7.560556199398457e+00 - -7.567637129733686e+00 -7.574726459966183e+00 -7.581824192373288e+00 -7.588930328179804e+00 -7.596044877188221e+00 - -7.603167851392376e+00 -7.610299262973792e+00 -7.617439121971403e+00 -7.624587429666054e+00 -7.631744188388593e+00 - -7.638909413427992e+00 -7.646083119762239e+00 -7.653265308167305e+00 -7.660455979470388e+00 -7.667655148905554e+00 - -7.674862831955687e+00 -7.682079030692125e+00 -7.689303746121935e+00 -7.696536988406601e+00 -7.703778769965018e+00 - -7.711029103091334e+00 -7.718287997777487e+00 -7.725555454931286e+00 -7.732831476489904e+00 -7.740116077592081e+00 - -7.747409273463959e+00 -7.754711066479733e+00 -7.762021457991705e+00 -7.769340458116517e+00 -7.776668079072852e+00 - -7.784004332723263e+00 -7.791349228774319e+00 -7.798702768664788e+00 -7.806064954991001e+00 -7.813435803247359e+00 - -7.820815328504128e+00 -7.828203531237023e+00 -7.835600412067597e+00 -7.843005986795347e+00 -7.850420271453628e+00 - -7.857843267833355e+00 -7.865274976500961e+00 -7.872715407367362e+00 -7.880164572827870e+00 -7.887622485870939e+00 - -7.895089157097287e+00 -7.902564586963549e+00 -7.910048776908389e+00 -7.917541742442640e+00 -7.925043499243823e+00 - -7.932554049584044e+00 -7.940073394568305e+00 -7.947601544038569e+00 -7.955138510136092e+00 -7.962684305462377e+00 - -7.970238940357911e+00 -7.977802415658878e+00 -7.985374733292938e+00 -7.992955909057959e+00 -8.000545958501995e+00 - -8.008144882303682e+00 -8.015752681155906e+00 -8.023369370677967e+00 -8.030994966700497e+00 -8.038629470973136e+00 - -8.046272884117311e+00 -8.053925216322545e+00 -8.061586480220186e+00 -8.069256688640843e+00 -8.076935852017314e+00 - -8.084623970991846e+00 -8.092321047230506e+00 -8.100027096285098e+00 -8.107742133772728e+00 -8.115466161685978e+00 - -8.123199180963685e+00 -8.130941201954130e+00 -8.138692237272345e+00 -8.146452299190864e+00 -8.154221397655556e+00 - -8.161999533648068e+00 -8.169786709369063e+00 -8.177582940859525e+00 -8.185388243772254e+00 -8.193202618367051e+00 - -8.201026064968486e+00 -8.208858599553158e+00 -8.216700238370747e+00 -8.224550983111227e+00 -8.232410834288519e+00 - -8.240279802271914e+00 -8.248157899820946e+00 -8.256045139400785e+00 -8.263941531127587e+00 -8.271847076015916e+00 - -8.279761776165609e+00 -8.287685647119202e+00 -8.295618704371698e+00 -8.303560949785306e+00 -8.311512384182917e+00 - -8.319473017862927e+00 -8.327442863513763e+00 -8.335421933908444e+00 -8.343410239406900e+00 -8.351407780632112e+00 - -8.359414559352070e+00 -8.367430591651793e+00 -8.375455893292965e+00 -8.383490464426892e+00 -8.391534305333888e+00 - -8.399587432420665e+00 -8.407649862295598e+00 -8.415721596247392e+00 -8.423802634359653e+00 -8.431892987215194e+00 - -8.439992667917126e+00 -8.448101689150496e+00 -8.456220061058572e+00 -8.464347784035521e+00 -8.472484859778373e+00 - -8.480631304944675e+00 -8.488787135775029e+00 -8.496952351881781e+00 -8.505126952972617e+00 -8.513310955764712e+00 - -8.521504377280520e+00 -8.529707218754108e+00 -8.537919480083488e+00 -8.546141171610756e+00 -8.554372306334406e+00 - -8.562612897434500e+00 -8.570862955488629e+00 -8.579122480482935e+00 -8.587391473585072e+00 -8.595669951280222e+00 - -8.603957930092136e+00 -8.612255411381385e+00 -8.620562395277888e+00 -8.628878892152137e+00 -8.637204914976417e+00 - -8.645540476889700e+00 -8.653885588365707e+00 -8.662240249050400e+00 -8.670604460002718e+00 -8.678978238761259e+00 - -8.687361602440037e+00 -8.695754549975142e+00 -8.704157080317993e+00 -8.712569210659231e+00 -8.720990958572770e+00 - -8.729422324926496e+00 -8.737863309144757e+00 -8.746313921583734e+00 -8.754774175423437e+00 -8.763244084207386e+00 - -8.771723658743657e+00 -8.780212898534927e+00 -8.788711804325507e+00 -8.797220393131562e+00 -8.805738681960509e+00 - -8.814266671512945e+00 -8.822804361262596e+00 -8.831351762082482e+00 -8.839908887544672e+00 -8.848475750618142e+00 - -8.857052361519681e+00 -8.865638720060298e+00 -8.874234827408518e+00 -8.882840700568694e+00 -8.891456356239988e+00 - -8.900081794065120e+00 -8.908717013654563e+00 -8.917362031546196e+00 -8.926016864607513e+00 -8.934681514097109e+00 - -8.943355979966887e+00 -8.952040272550780e+00 -8.960734404827180e+00 -8.969438389970174e+00 -8.978152238557112e+00 - -8.986875950582608e+00 -8.995609527224275e+00 -9.004352984974421e+00 -9.013106340348738e+00 -9.021869594641789e+00 - -9.030642747850949e+00 -9.039425810005964e+00 -9.048218793898496e+00 -9.057021713335553e+00 -9.065834579375275e+00 - -9.074657391064932e+00 -9.083490148798390e+00 -9.092332870366718e+00 -9.101185573233034e+00 -9.110048256151465e+00 - -9.118920917820537e+00 -9.127803575425368e+00 -9.136696246597257e+00 -9.145598932265708e+00 -9.154511631860180e+00 - -9.163434355511646e+00 -9.172367116215408e+00 -9.181309927722621e+00 -9.190262801063124e+00 -9.199225735625708e+00 - -9.208198731948572e+00 -9.217181806808554e+00 -9.226174977077383e+00 -9.235178243767663e+00 -9.244191606592038e+00 - -9.253215075922315e+00 -9.262248664894432e+00 -9.271292387041701e+00 -9.280346253080740e+00 -9.289410262064051e+00 - -9.298484414471314e+00 -9.307568728155069e+00 -9.316663220573421e+00 -9.325767890233902e+00 -9.334882735648362e+00 - -9.344007774296474e+00 -9.353143024056331e+00 -9.362288485431986e+00 -9.371444157433135e+00 -9.380610050466057e+00 - -9.389786177888119e+00 -9.398972553464475e+00 -9.408169188076664e+00 -9.417376080663951e+00 -9.426593231436920e+00 - -9.435820657633688e+00 -9.445058376575700e+00 -9.454306388890288e+00 -9.463564693828612e+00 -9.472833301831271e+00 - -9.482112226230582e+00 -9.491401480736307e+00 -9.500701076124317e+00 -9.510011011057383e+00 -9.519331285649606e+00 - -9.528661917933491e+00 -9.538002925632075e+00 -9.547354307312132e+00 -9.556716061430350e+00 -9.566088205159264e+00 - -9.575470756067922e+00 -9.584863714595665e+00 -9.594267079809105e+00 -9.603680862413734e+00 -9.613105076017005e+00 - -9.622539734195460e+00 -9.631984847535897e+00 -9.641440414697058e+00 -9.650906435763309e+00 -9.660382928449559e+00 - -9.669869910482992e+00 -9.679367382009378e+00 -9.688875341677877e+00 -9.698393799732578e+00 -9.707922769547205e+00 - -9.717462265419133e+00 -9.727012298576232e+00 -9.736572867044643e+00 -9.746143970285512e+00 -9.755725626701739e+00 - -9.765317854403191e+00 -9.774920651385886e+00 -9.784534015610914e+00 -9.794157965013451e+00 -9.803792517858509e+00 - -9.813437673756464e+00 -9.823093430886084e+00 -9.832759800354408e+00 -9.842436796281985e+00 -9.852124431915341e+00 - -9.861822717446652e+00 -9.871531651724764e+00 -9.881251235098006e+00 -9.890981485255914e+00 -9.900722419735771e+00 - -9.910474038124631e+00 -9.920236338721825e+00 -9.930009332625946e+00 -9.939793033953066e+00 -9.949587456089942e+00 - -9.959392609292857e+00 -9.969208492025555e+00 -9.979035104343238e+00 -9.988872464459540e+00 -9.998720590171930e+00 - -1.000857947945488e+01 -1.001844913033355e+01 -1.002832956085879e+01 -1.003822078906736e+01 -1.004812281291406e+01 - -1.005803562971182e+01 -1.006795925428782e+01 -1.007789370360111e+01 -1.008783898562387e+01 -1.009779510571246e+01 - -1.010776206774677e+01 -1.011773987740720e+01 -1.012772854905251e+01 -1.013772809631413e+01 -1.014773852123577e+01 - -1.015775982444731e+01 -1.016779201251112e+01 -1.017783509576905e+01 -1.018788909374848e+01 -1.019795402262726e+01 - -1.020802987599985e+01 -1.021811664796306e+01 -1.022821435720666e+01 -1.023832302389762e+01 -1.024844264951883e+01 - -1.025857323411911e+01 -1.026871479069502e+01 -1.027886733277511e+01 -1.028903086306819e+01 -1.029920538356622e+01 - -1.030939090421369e+01 -1.031958743714735e+01 -1.032979499532081e+01 -1.034001358910991e+01 -1.035024321776280e+01 - -1.036048388191000e+01 -1.037073559883907e+01 -1.038099838556339e+01 -1.039127224134250e+01 -1.040155716512729e+01 - -1.041185317238784e+01 -1.042216027887615e+01 -1.043247848495290e+01 -1.044280779013644e+01 -1.045314820596725e+01 - -1.046349974688984e+01 -1.047386242694284e+01 -1.048423625623699e+01 -1.049462122957744e+01 -1.050501734396915e+01 - -1.051542462052187e+01 -1.052584308069211e+01 -1.053627272321853e+01 -1.054671354447971e+01 -1.055716555413174e+01 - -1.056762876571201e+01 -1.057810319500591e+01 -1.058858885406686e+01 -1.059908573777257e+01 -1.060959384260205e+01 - -1.062011318861535e+01 -1.063064379594653e+01 -1.064118566144451e+01 -1.065173878128750e+01 -1.066230317225584e+01 - -1.067287885251234e+01 -1.068346582514766e+01 -1.069406409086973e+01 -1.070467365592747e+01 -1.071529452946521e+01 - -1.072592672666786e+01 -1.073657026057826e+01 -1.074722512963040e+01 -1.075789133336255e+01 -1.076856889033910e+01 - -1.077925781838790e+01 -1.078995811336476e+01 -1.080066977044343e+01 -1.081139280404170e+01 -1.082212723175914e+01 - -1.083287306467895e+01 -1.084363031023443e+01 -1.085439896777578e+01 -1.086517903841335e+01 -1.087597053838113e+01 - -1.088677348334085e+01 -1.089758787154147e+01 -1.090841370173705e+01 -1.091925099211483e+01 -1.093009976068779e+01 - -1.094096000533889e+01 -1.095183172286895e+01 -1.096271492588021e+01 -1.097360962990334e+01 -1.098451584638146e+01 - -1.099543358339704e+01 -1.100636283967740e+01 -1.101730361593110e+01 -1.102825593014644e+01 -1.103921979985815e+01 - -1.105019522350652e+01 -1.106118219809120e+01 -1.107218073394329e+01 -1.108319084475604e+01 -1.109421254433972e+01 - -1.110524584310812e+01 -1.111629073777213e+01 -1.112734722664297e+01 -1.113841532813614e+01 -1.114949506055284e+01 - -1.116058642163307e+01 -1.117168940919924e+01 -1.118280404196459e+01 -1.119393033845125e+01 -1.120506829552628e+01 - -1.121621790821428e+01 -1.122737918582522e+01 -1.123855214233318e+01 -1.124973679608346e+01 -1.126093316109601e+01 - -1.127214122971816e+01 -1.128336099568353e+01 -1.129459247994368e+01 -1.130583570391351e+01 -1.131709066364352e+01 - -1.132835735316995e+01 -1.133963578383626e+01 -1.135092597165251e+01 -1.136222793398803e+01 -1.137354168289046e+01 - -1.138486720776133e+01 -1.139620450077960e+01 -1.140755358788016e+01 -1.141891449467379e+01 -1.143028721171902e+01 - -1.144167172931863e+01 -1.145306807180483e+01 -1.146447626363145e+01 -1.147589629570943e+01 -1.148732815744427e+01 - -1.149877186576219e+01 -1.151022744176966e+01 -1.152169489577362e+01 -1.153317423307527e+01 -1.154466544975234e+01 - -1.155616854500299e+01 -1.156768353973055e+01 -1.157921045411968e+01 -1.159074928377541e+01 -1.160230002278200e+01 - -1.161386268372032e+01 -1.162543728297182e+01 -1.163702383362365e+01 -1.164862234413445e+01 -1.166023280774309e+01 - -1.167185522083641e+01 -1.168348960761297e+01 -1.169513599109641e+01 -1.170679436179895e+01 -1.171846471050954e+01 - -1.173014706163534e+01 -1.174184143967664e+01 -1.175354783588804e+01 -1.176526623959987e+01 -1.177699666569085e+01 - -1.178873913359907e+01 -1.180049365545172e+01 -1.181226023874721e+01 -1.182403887977966e+01 -1.183582957710202e+01 - -1.184763234950681e+01 -1.185944721571250e+01 -1.187127417390187e+01 -1.188311322026980e+01 -1.189496436359524e+01 - -1.190682761635663e+01 -1.191870299324639e+01 -1.193059050542573e+01 -1.194249014771712e+01 -1.195440191732676e+01 - -1.196632583733436e+01 -1.197826192918009e+01 -1.199021018187259e+01 -1.200217058481946e+01 -1.201414316145583e+01 - -1.202612793653577e+01 -1.203812490606177e+01 -1.205013406283600e+01 -1.206215541561094e+01 -1.207418897775090e+01 - -1.208623476511758e+01 -1.209829279023755e+01 -1.211036304979982e+01 -1.212244554104682e+01 -1.213454027927224e+01 - -1.214664728029985e+01 -1.215876654402256e+01 -1.217089806888390e+01 -1.218304186346073e+01 -1.219519793969503e+01 - -1.220736631285608e+01 -1.221954699446002e+01 -1.223173997768314e+01 -1.224394525782826e+01 -1.225616285704409e+01 - -1.226839279716718e+01 -1.228063507193962e+01 -1.229288967419984e+01 -1.230515662126608e+01 -1.231743593190913e+01 - -1.232972760623024e+01 -1.234203164189830e+01 -1.235434804552219e+01 -1.236667682754052e+01 -1.237901800477097e+01 - -1.239137159078778e+01 -1.240373757981251e+01 -1.241611596680448e+01 -1.242850676902663e+01 -1.244091000477032e+01 - -1.245332567413717e+01 -1.246575377485128e+01 -1.247819431331654e+01 -1.249064729993889e+01 -1.250311275245252e+01 - -1.251559068470151e+01 -1.252808108764087e+01 -1.254058395403090e+01 -1.255309930674196e+01 -1.256562716858205e+01 - -1.257816753199971e+01 -1.259072038911156e+01 -1.260328576106586e+01 -1.261586366917709e+01 -1.262845410639316e+01 - -1.264105706405277e+01 -1.265367255542431e+01 -1.266630059802175e+01 -1.267894120441173e+01 -1.269159438291520e+01 - -1.270426012981745e+01 -1.271693844300063e+01 -1.272962933876972e+01 -1.274233283335257e+01 -1.275504892424538e+01 - -1.276777760888006e+01 -1.278051890316245e+01 -1.279327282335948e+01 -1.280603936870822e+01 -1.281881853703964e+01 - -1.283161033759003e+01 -1.284441478278821e+01 -1.285723188642777e+01 -1.287006165845383e+01 -1.288290409205257e+01 - -1.289575918258311e+01 -1.290862695085492e+01 -1.292150741744502e+01 -1.293440057655018e+01 -1.294730642109768e+01 - -1.296022496531707e+01 -1.297315622664438e+01 -1.298610021403966e+01 -1.299905693252094e+01 -1.301202637981436e+01 - -1.302500855607946e+01 -1.303800347850134e+01 -1.305101116311717e+01 -1.306403160434687e+01 -1.307706479749205e+01 - -1.309011076299821e+01 -1.310316952145874e+01 -1.311624106891474e+01 -1.312932539865738e+01 -1.314242251753035e+01 - -1.315553243732881e+01 -1.316865517610136e+01 -1.318179074759510e+01 -1.319493914209791e+01 -1.320810035188408e+01 - -1.322127440063306e+01 -1.323446131182036e+01 -1.324766107670098e+01 -1.326087368408213e+01 -1.327409914520021e+01 - -1.328733747660298e+01 -1.330058869365459e+01 -1.331385280702646e+01 -1.332712980980294e+01 -1.334041969690924e+01 - -1.335372248822127e+01 -1.336703820316815e+01 -1.338036683444133e+01 -1.339370837465144e+01 -1.340706284282357e+01 - -1.342043025877972e+01 -1.343381061911550e+01 -1.344720391854233e+01 -1.346061016746156e+01 -1.347402937953320e+01 - -1.348746156576247e+01 -1.350090673400032e+01 -1.351436488213541e+01 -1.352783600940468e+01 -1.354132013040003e+01 - -1.355481725974633e+01 -1.356832739684519e+01 -1.358185053959114e+01 -1.359538669507347e+01 -1.360893587411229e+01 - -1.362249809325635e+01 -1.363607336498644e+01 -1.364966167978290e+01 -1.366326303005515e+01 -1.367687743792930e+01 - -1.369050492543861e+01 -1.370414548452841e+01 -1.371779910680898e+01 -1.373146581263829e+01 -1.374514562258463e+01 - -1.375883852931014e+01 -1.377254452369323e+01 -1.378626361738342e+01 -1.379999582664259e+01 -1.381374116541099e+01 - -1.382749964295472e+01 -1.384127125216480e+01 -1.385505598801133e+01 -1.386885387015567e+01 -1.388266491822051e+01 - -1.389648912698253e+01 -1.391032648926665e+01 -1.392417701493663e+01 -1.393804071810552e+01 -1.395191761284479e+01 - -1.396580770902492e+01 -1.397971099975399e+01 -1.399362747983656e+01 -1.400755716762526e+01 -1.402150008127576e+01 - -1.403545621460787e+01 -1.404942556175519e+01 -1.406340814244217e+01 -1.407740397661280e+01 -1.409141305949836e+01 - -1.410543538386059e+01 -1.411947095729565e+01 -1.413351979216372e+01 -1.414758190504674e+01 -1.416165730817942e+01 - -1.417574599218579e+01 -1.418984794931155e+01 -1.420396319989974e+01 -1.421809176459019e+01 -1.423223363711269e+01 - -1.424638880961032e+01 -1.426055729478944e+01 -1.427473910897708e+01 -1.428893426241975e+01 -1.430314276106135e+01 - -1.431736459971596e+01 -1.433159977568000e+01 -1.434584830730895e+01 -1.436011021230267e+01 -1.437438548467938e+01 - -1.438867411856965e+01 -1.440297613223502e+01 -1.441729154417122e+01 -1.443162034967981e+01 -1.444596254173529e+01 - -1.446031812719803e+01 -1.447468711827448e+01 -1.448906953466952e+01 -1.450346539077074e+01 -1.451787467219810e+01 - -1.453229736674074e+01 -1.454673349963205e+01 -1.456118309651608e+01 -1.457564614723534e+01 -1.459012263904241e+01 - -1.460461258463169e+01 -1.461911600163362e+01 -1.463363290198108e+01 -1.464816329304780e+01 -1.466270716966852e+01 - -1.467726452861927e+01 -1.469183538698022e+01 -1.470641976118071e+01 -1.472101764474266e+01 -1.473562903182180e+01 - -1.475025394201659e+01 -1.476489239431922e+01 -1.477954437985420e+01 -1.479420988900897e+01 -1.480888893709030e+01 - -1.482358154289730e+01 -1.483828771427918e+01 -1.485300745484606e+01 -1.486774076220148e+01 -1.488248763590571e+01 - -1.489724808935241e+01 -1.491202213620220e+01 -1.492680977735018e+01 -1.494161101188853e+01 -1.495642584446314e+01 - -1.497125428281713e+01 -1.498609634152866e+01 -1.500095203243959e+01 -1.501582134961145e+01 -1.503070428834008e+01 - -1.504560086663885e+01 -1.506051110171047e+01 -1.507543498479744e+01 -1.509037250787217e+01 -1.510532369178669e+01 - -1.512028855781273e+01 -1.513526710002122e+01 -1.515025931004586e+01 -1.516526519697226e+01 -1.518028477406786e+01 - -1.519531805387558e+01 -1.521036504514735e+01 -1.522542574219565e+01 -1.524050014105165e+01 -1.525558825906066e+01 - -1.527069011317451e+01 -1.528580569745696e+01 -1.530093500454836e+01 -1.531607804428359e+01 -1.533123483115148e+01 - -1.534640538106230e+01 -1.536158970459035e+01 -1.537678778954449e+01 -1.539199962605270e+01 -1.540722523628471e+01 - -1.542246464244602e+01 -1.543771783484346e+01 -1.545298480379291e+01 -1.546826557154514e+01 -1.548356016030771e+01 - -1.549886856018057e+01 -1.551419075889859e+01 -1.552952676684366e+01 -1.554487659991805e+01 -1.556024027345857e+01 - -1.557561779759322e+01 -1.559100916218038e+01 -1.560641435912106e+01 -1.562183340875659e+01 -1.563726633124305e+01 - -1.565271311755539e+01 -1.566817375858786e+01 -1.568364827409284e+01 -1.569913668435983e+01 -1.571463898296877e+01 - -1.573015516140282e+01 -1.574568522946743e+01 -1.576122920078429e+01 -1.577678708591764e+01 -1.579235889192325e+01 - -1.580794461488044e+01 -1.582354425266206e+01 -1.583915782129173e+01 -1.585478533595468e+01 -1.587042679033195e+01 - -1.588608217713541e+01 -1.590175150670428e+01 -1.591743479377280e+01 -1.593313205302798e+01 -1.594884329356461e+01 - -1.596456850215542e+01 -1.598030766876410e+01 -1.599606081844003e+01 -1.601182797567503e+01 -1.602760912764517e+01 - -1.604340426053651e+01 -1.605921339389068e+01 -1.607503654929621e+01 -1.609087372317365e+01 -1.610672490846679e+01 - -1.612259010938000e+01 -1.613846933535691e+01 -1.615436260553746e+01 -1.617026993400350e+01 -1.618619130490810e+01 - -1.620212670496088e+01 -1.621807616102629e+01 -1.623403970021593e+01 -1.625001731047507e+01 -1.626600897617460e+01 - -1.628201470655392e+01 -1.629803451699528e+01 -1.631406842258372e+01 -1.633011643368945e+01 -1.634617854212047e+01 - -1.636225474110459e+01 -1.637834504811086e+01 -1.639444948009596e+01 -1.641056802772599e+01 -1.642670068226715e+01 - -1.644284746367691e+01 -1.645900839255391e+01 -1.647518346337059e+01 -1.649137266740475e+01 -1.650757600928198e+01 - -1.652379349905581e+01 -1.654002515514406e+01 -1.655627099138395e+01 -1.657253099492616e+01 -1.658880515436409e+01 - -1.660509349074862e+01 -1.662139602569388e+01 -1.663771275060954e+01 -1.665404365442992e+01 -1.667038874639235e+01 - -1.668674804082613e+01 -1.670312155212567e+01 -1.671950928959044e+01 -1.673591124207530e+01 -1.675232740091000e+01 - -1.676875778776886e+01 -1.678520242381186e+01 -1.680166129779755e+01 -1.681813439803682e+01 -1.683462174345131e+01 - -1.685112335404732e+01 -1.686763922355921e+01 -1.688416934305047e+01 -1.690071371917313e+01 -1.691727236387981e+01 - -1.693384529473730e+01 -1.695043252373442e+01 -1.696703403493436e+01 -1.698364981519248e+01 -1.700027989045860e+01 - -1.701692428668450e+01 -1.703358299073511e+01 -1.705025598664567e+01 -1.706694328621936e+01 -1.708364490699094e+01 - -1.710036086165371e+01 -1.711709115711999e+01 -1.713383578201967e+01 -1.715059472804424e+01 -1.716736801741393e+01 - -1.718415567151382e+01 -1.720095767785962e+01 -1.721777402421613e+01 -1.723460473321376e+01 -1.725144982735173e+01 - -1.726830929373925e+01 -1.728518311723097e+01 -1.730207130905323e+01 -1.731897388644410e+01 -1.733589086431708e+01 - -1.735282225151622e+01 -1.736976803493245e+01 -1.738672820398455e+01 -1.740370278015603e+01 -1.742069178532102e+01 - -1.743769521085149e+01 -1.745471304524893e+01 -1.747174529603476e+01 -1.748879197614670e+01 -1.750585310116775e+01 - -1.752292868122209e+01 -1.754001870195336e+01 -1.755712315207324e+01 -1.757424205704595e+01 -1.759137544124289e+01 - -1.760852328791187e+01 -1.762568558032359e+01 -1.764286234296404e+01 -1.766005360135051e+01 -1.767725934391039e+01 - -1.769447955614261e+01 -1.771171424892207e+01 -1.772896343807829e+01 -1.774622713388326e+01 -1.776350534196338e+01 - -1.778079805492016e+01 -1.779810526797336e+01 -1.781542699984077e+01 -1.783276326793605e+01 -1.785011406095838e+01 - -1.786747936642481e+01 -1.788485919583838e+01 -1.790225356596892e+01 -1.791966249066770e+01 -1.793708597750879e+01 - -1.795452401187612e+01 -1.797197658287230e+01 -1.798944371666477e+01 -1.800692543788475e+01 -1.802442172795408e+01 - -1.804193256819016e+01 -1.805945798270200e+01 -1.807699799758296e+01 -1.809455260407236e+01 -1.811212178929598e+01 - -1.812970555877947e+01 -1.814730392419934e+01 -1.816491690343573e+01 -1.818254450889657e+01 -1.820018672489731e+01 - -1.821784353770839e+01 -1.823551496951270e+01 -1.825320104351004e+01 -1.827090175105552e+01 -1.828861707995103e+01 - -1.830634703563002e+01 -1.832409162961503e+01 -1.834185088015348e+01 -1.835962479982180e+01 -1.837741337178776e+01 - -1.839521658191638e+01 -1.841303445627024e+01 -1.843086702044687e+01 -1.844871425798603e+01 -1.846657615155986e+01 - -1.848445272242748e+01 -1.850234399331442e+01 -1.852024995422484e+01 -1.853817059263430e+01 -1.855610591862525e+01 - -1.857405594751762e+01 -1.859202069297440e+01 -1.861000016303027e+01 -1.862799434486363e+01 -1.864600322762024e+01 - -1.866402682917165e+01 -1.868206516860479e+01 -1.870011824114266e+01 -1.871818603889838e+01 -1.873626856540951e+01 - -1.875436582948875e+01 -1.877247784962497e+01 -1.879060463922456e+01 -1.880874618168810e+01 -1.882690246254704e+01 - -1.884507350586227e+01 -1.886325933574866e+01 -1.888145993800745e+01 -1.889967529731236e+01 -1.891790543214035e+01 - -1.893615036295555e+01 -1.895441008436764e+01 -1.897268458788422e+01 -1.899097387845919e+01 -1.900927796546465e+01 - -1.902759686249918e+01 -1.904593057916082e+01 -1.906427910481893e+01 -1.908264243109121e+01 -1.910102057881749e+01 - -1.911941356739387e+01 -1.913782138121961e+01 -1.915624400568942e+01 -1.917468146517671e+01 -1.919313378404767e+01 - -1.921160094766128e+01 -1.923008293912871e+01 -1.924857977157690e+01 -1.926709146357444e+01 -1.928561802544077e+01 - -1.930415946120927e+01 -1.932271575801813e+01 -1.934128690695999e+01 -1.935987293184044e+01 -1.937847385553680e+01 - -1.939708966450047e+01 -1.941572034241033e+01 -1.943436589828115e+01 -1.945302634705033e+01 -1.947170170200994e+01 - -1.949039197138318e+01 -1.950909714476303e+01 -1.952781721398065e+01 -1.954655219845012e+01 -1.956530211609402e+01 - -1.958406695128608e+01 -1.960284668959667e+01 -1.962164135493148e+01 -1.964045097168231e+01 -1.965927552785040e+01 - -1.967811500826448e+01 -1.969696942145404e+01 -1.971583878200212e+01 -1.973472310500559e+01 -1.975362239928199e+01 - -1.977253664801789e+01 -1.979146583743514e+01 -1.981040999152762e+01 -1.982936913462439e+01 -1.984834325462312e+01 - -1.986733233626431e+01 -1.988633638809098e+01 -1.990535542475069e+01 -1.992438946150660e+01 -1.994343850724086e+01 - -1.996250254469571e+01 -1.998158155988759e+01 -2.000067557806942e+01 -2.001978462401460e+01 -2.003890868134189e+01 - -2.005804773353269e+01 -2.007720180467363e+01 -2.009637091866160e+01 -2.011555505802958e+01 -2.013475420367532e+01 - -2.015396837131929e+01 -2.017319758216888e+01 -2.019244184455664e+01 -2.021170116029698e+01 -2.023097551800653e+01 - -2.025026491057744e+01 -2.026956936120177e+01 -2.028888889127859e+01 -2.030822348473533e+01 -2.032757312336421e+01 - -2.034693781788847e+01 -2.036631758558183e+01 -2.038571244098909e+01 -2.040512239225047e+01 -2.042454742461679e+01 - -2.044398752597867e+01 -2.046344271767523e+01 -2.048291302072143e+01 -2.050239842138679e+01 -2.052189890581644e+01 - -2.054141449440303e+01 -2.056094520839277e+01 -2.058049103819856e+01 -2.060005197091200e+01 -2.061962801117254e+01 - -2.063921916971323e+01 -2.065882546409381e+01 -2.067844690614864e+01 -2.069808347798381e+01 -2.071773516441981e+01 - -2.073740199086278e+01 -2.075708398272239e+01 -2.077678112483692e+01 -2.079649339928443e+01 -2.081622081767353e+01 - -2.083596339752241e+01 -2.085572115045732e+01 -2.087549408142252e+01 -2.089528217452614e+01 -2.091508541798258e+01 - -2.093490383726751e+01 -2.095473745703866e+01 -2.097458626142068e+01 -2.099445023367205e+01 -2.101432939411960e+01 - -2.103422376365449e+01 -2.105413332835716e+01 -2.107405807288499e+01 -2.109399801101360e+01 -2.111395316146354e+01 - -2.113392353361706e+01 -2.115390913036233e+01 -2.117390993794961e+01 -2.119392594678185e+01 -2.121395718051052e+01 - -2.123400366165125e+01 -2.125406537492771e+01 -2.127414230292253e+01 -2.129423445744600e+01 -2.131434185603574e+01 - -2.133446450991120e+01 -2.135460242400538e+01 -2.137475558442359e+01 -2.139492398094176e+01 -2.141510763684612e+01 - -2.143530657354728e+01 -2.145552077144329e+01 -2.147575021223202e+01 -2.149599492382317e+01 -2.151625493458459e+01 - -2.153653022850520e+01 -2.155682078515937e+01 -2.157712661084235e+01 -2.159744772002078e+01 -2.161778413312624e+01 - -2.163813586321833e+01 -2.165850288790379e+01 -2.167888518769065e+01 -2.169928279014487e+01 -2.171969572392566e+01 - -2.174012397500749e+01 -2.176056752455845e+01 -2.178102637720577e+01 -2.180150054539059e+01 -2.182199004935065e+01 - -2.184249490264348e+01 -2.186301508430896e+01 -2.188355057625899e+01 -2.190410140641098e+01 -2.192466760199104e+01 - -2.194524914145450e+01 -2.196584600311797e+01 -2.198645821351363e+01 -2.200708580045210e+01 -2.202772874864248e+01 - -2.204838703903658e+01 -2.206906068065864e+01 -2.208974968965916e+01 -2.211045408262128e+01 -2.213117386881762e+01 - -2.215190902784613e+01 -2.217265954271720e+01 -2.219342543976576e+01 -2.221420674565993e+01 -2.223500344507609e+01 - -2.225581551916326e+01 -2.227664297695268e+01 -2.229748583458740e+01 -2.231834410877561e+01 -2.233921780886325e+01 - -2.236010691418214e+01 -2.238101140757746e+01 -2.240193131596196e+01 -2.242286666626994e+01 -2.244381744145418e+01 - -2.246478362333585e+01 -2.248576523319086e+01 -2.250676229308250e+01 -2.252777478876882e+01 -2.254880270395783e+01 - -2.256984605046237e+01 -2.259090484578745e+01 -2.261197910210208e+01 -2.263306882483333e+01 -2.265417399777652e+01 - -2.267529460825966e+01 -2.269643067937303e+01 -2.271758223358744e+01 -2.273874925513337e+01 -2.275993172840441e+01 - -2.278112967668665e+01 -2.280234312326570e+01 -2.282357205253301e+01 -2.284481644618636e+01 -2.286607631404299e+01 - -2.288735167241803e+01 -2.290864253549898e+01 -2.292994891082159e+01 -2.295127078144212e+01 -2.297260813386354e+01 - -2.299396099285480e+01 -2.301532938287575e+01 -2.303671328888409e+01 -2.305811269234469e+01 -2.307952760025338e+01 - -2.310095802706863e+01 -2.312240399156859e+01 -2.314386550544134e+01 -2.316534254769484e+01 -2.318683510020089e+01 - -2.320834318896662e+01 -2.322986684000025e+01 -2.325140603517923e+01 -2.327296075598023e+01 -2.329453102640753e+01 - -2.331611687084991e+01 -2.333771827270656e+01 -2.335933521295700e+01 -2.338096770389138e+01 -2.340261576396985e+01 - -2.342427940502197e+01 -2.344595863230511e+01 -2.346765343141823e+01 -2.348936379112492e+01 -2.351108973250527e+01 - -2.353283127622654e+01 -2.355458840898814e+01 -2.357636111469370e+01 -2.359814940003157e+01 -2.361995327887107e+01 - -2.364177277102066e+01 -2.366360788867084e+01 -2.368545860760097e+01 -2.370732490730504e+01 -2.372920681854641e+01 - -2.375110437181196e+01 -2.377301754521346e+01 -2.379494631547129e+01 -2.381689070611525e+01 -2.383885074279985e+01 - -2.386082641286912e+01 -2.388281770027697e+01 -2.390482461372720e+01 -2.392684716763744e+01 -2.394888537453080e+01 - -2.397093924094647e+01 -2.399300875138237e+01 -2.401509389381072e+01 -2.403719469214220e+01 -2.405931116939521e+01 - -2.408144330908079e+01 -2.410359109227195e+01 -2.412575452979684e+01 -2.414793363861520e+01 -2.417012843045825e+01 - -2.419233891107258e+01 -2.421456506749473e+01 -2.423680688969797e+01 -2.425906439811232e+01 -2.428133761196757e+01 - -2.430362651523593e+01 -2.432593109247103e+01 -2.434825136580965e+01 -2.437058735754595e+01 -2.439293905302052e+01 - -2.441530643508021e+01 -2.443768951355032e+01 -2.446008830475372e+01 -2.448250282402539e+01 -2.450493307947941e+01 - -2.452737905133441e+01 -2.454984072340254e+01 -2.457231812176549e+01 -2.459481127247106e+01 -2.461732015916192e+01 - -2.463984476198997e+01 -2.466238508954903e+01 -2.468494115731883e+01 -2.470751297988127e+01 -2.473010056541401e+01 - -2.475270389737600e+01 -2.477532296279144e+01 -2.479795778766421e+01 -2.482060839605179e+01 -2.484327476524651e+01 - -2.486595687297807e+01 -2.488865474549064e+01 -2.491136841050829e+01 -2.493409785316058e+01 -2.495684305468689e+01 - -2.497960402336061e+01 -2.500238077436705e+01 -2.502517332350563e+01 -2.504798167938967e+01 -2.507080582127416e+01 - -2.509364573240812e+01 -2.511650144137505e+01 -2.513937297643642e+01 -2.516226031923135e+01 -2.518516344740990e+01 - -2.520808236928804e+01 -2.523101710100030e+01 -2.525396765928963e+01 -2.527693405405919e+01 -2.529991626724470e+01 - -2.532291428361040e+01 -2.534592812720204e+01 -2.536895782110043e+01 -2.539200334524508e+01 -2.541506468057373e+01 - -2.543814185515816e+01 -2.546123489657537e+01 -2.548434378328921e+01 -2.550746849096137e+01 -2.553060903315797e+01 - -2.555376543163097e+01 -2.557693770297151e+01 -2.560012585444837e+01 -2.562332986120158e+01 -2.564654970308929e+01 - -2.566978541097076e+01 -2.569303701597250e+01 -2.571630449928904e+01 -2.573958783754457e+01 -2.576288703901380e+01 - -2.578620212017663e+01 -2.580953309868325e+01 -2.583287998467666e+01 -2.585624275710073e+01 -2.587962139846310e+01 - -2.590301593672573e+01 -2.592642639921134e+01 -2.594985276523152e+01 -2.597329501305775e+01 -2.599675316481207e+01 - -2.602022724494944e+01 -2.604371724340627e+01 -2.606722314554395e+01 -2.609074495294231e+01 -2.611428267453130e+01 - -2.613783633242288e+01 -2.616140594232113e+01 -2.618499148111656e+01 -2.620859292804694e+01 -2.623221031055255e+01 - -2.625584365675950e+01 -2.627949294933480e+01 -2.630315816707157e+01 -2.632683931872623e+01 -2.635053642045652e+01 - -2.637424948806206e+01 -2.639797853015353e+01 -2.642172352694394e+01 -2.644548446269175e+01 -2.646926136623515e+01 - -2.649305426487780e+01 -2.651686313520573e+01 -2.654068795336410e+01 -2.656452874445229e+01 -2.658838553565089e+01 - -2.661225831351167e+01 -2.663614706041860e+01 -2.666005178271351e+01 -2.668397249386109e+01 -2.670790921185966e+01 - -2.673186194785124e+01 -2.675583068101895e+01 -2.677981539336416e+01 -2.680381611012034e+01 -2.682783285712106e+01 - -2.685186561936856e+01 -2.687591437786270e+01 -2.689997913842517e+01 -2.692405991477839e+01 -2.694815672742597e+01 - -2.697226958936361e+01 -2.699639847677425e+01 -2.702054336911223e+01 -2.704470429573021e+01 -2.706888128546201e+01 - -2.709307431516761e+01 -2.711728336172764e+01 -2.714150845407871e+01 -2.716574962162754e+01 -2.719000684360529e+01 - -2.721428009605862e+01 -2.723856939247152e+01 -2.726287475352885e+01 -2.728719619128178e+01 -2.731153370993099e+01 - -2.733588729090867e+01 -2.736025692081293e+01 -2.738464262967399e+01 -2.740904444482641e+01 -2.743346233939021e+01 - -2.745789628706843e+01 -2.748234631811058e+01 -2.750681246441337e+01 -2.753129470791622e+01 -2.755579302585287e+01 - -2.758030742659158e+01 -2.760483792680023e+01 -2.762938454521084e+01 -2.765394729250735e+01 -2.767852614511706e+01 - -2.770312108289846e+01 -2.772773213369129e+01 -2.775235932608502e+01 -2.777700264368704e+01 -2.780166206614083e+01 - -2.782633760221619e+01 -2.785102926812099e+01 -2.787573708068912e+01 -2.790046104903706e+01 -2.792520115078565e+01 - -2.794995736764946e+01 -2.797472972921345e+01 -2.799951826412358e+01 -2.802432294939970e+01 -2.804914376169005e+01 - -2.807398072778233e+01 -2.809883387567351e+01 -2.812370318805837e+01 -2.814858864438241e+01 -2.817349025639583e+01 - -2.819840804241009e+01 -2.822334201467696e+01 -2.824829217820057e+01 -2.827325851505399e+01 -2.829824101147483e+01 - -2.832323969328987e+01 -2.834825458594292e+01 -2.837328567375688e+01 -2.839833293713809e+01 -2.842339638194745e+01 - -2.844847602232610e+01 -2.847357188008160e+01 -2.849868396869187e+01 -2.852381226064981e+01 -2.854895673259501e+01 - -2.857411741873861e+01 -2.859929435285462e+01 -2.862448750939692e+01 -2.864969686163745e+01 -2.867492243744038e+01 - -2.870016426611871e+01 -2.872542232818885e+01 -2.875069660076976e+01 -2.877598709618692e+01 -2.880129383482867e+01 - -2.882661683412842e+01 -2.885195610246809e+01 -2.887731161497835e+01 -2.890268335136361e+01 -2.892807134287440e+01 - -2.895347562064698e+01 -2.897889616381469e+01 -2.900433294736006e+01 -2.902978598166526e+01 -2.905525528595928e+01 - -2.908074087945912e+01 -2.910624277257485e+01 -2.913176094050105e+01 -2.915729536236611e+01 -2.918284606824940e+01 - -2.920841308797334e+01 -2.923399639938179e+01 -2.925959597987842e+01 -2.928521185708459e+01 -2.931084405942344e+01 - -2.933649256830759e+01 -2.936215736109871e+01 -2.938783844596477e+01 -2.941353583979598e+01 -2.943924956356517e+01 - -2.946497963001566e+01 -2.949072601489006e+01 -2.951648869675137e+01 -2.954226770244480e+01 -2.956806305999476e+01 - -2.959387475386040e+01 -2.961970276467950e+01 -2.964554710136948e+01 -2.967140778023144e+01 -2.969728481882160e+01 - -2.972317822671904e+01 -2.974908798033929e+01 -2.977501406036931e+01 -2.980095649774566e+01 -2.982691532231985e+01 - -2.985289050935425e+01 -2.987888203414534e+01 -2.990488992671488e+01 -2.993091421806754e+01 -2.995695488841446e+01 - -2.998301191396682e+01 -3.000908530572931e+01 -3.003517508294127e+01 -3.006128126298706e+01 -3.008740385472813e+01 - -3.011354283478899e+01 -3.013969818396866e+01 -3.016586993200092e+01 -3.019205810852835e+01 -3.021826269389396e+01 - -3.024448366459688e+01 -3.027072103106001e+01 -3.029697481234801e+01 -3.032324502816885e+01 -3.034953168930138e+01 - -3.037583477016444e+01 -3.040215424919064e+01 -3.042849015722735e+01 -3.045484252487287e+01 -3.048121132931426e+01 - -3.050759654718701e+01 -3.053399820633122e+01 -3.056041633582694e+01 -3.058685091850949e+01 -3.061330193277164e+01 - -3.063976938548045e+01 -3.066625329189824e+01 -3.069275367239408e+01 -3.071927054017274e+01 -3.074580387467516e+01 - -3.077235365736276e+01 -3.079891991154272e+01 -3.082550266154129e+01 -3.085210189391538e+01 -3.087871759159065e+01 - -3.090534976073683e+01 -3.093199841535169e+01 -3.095866357750086e+01 -3.098534526117247e+01 -3.101204343997652e+01 - -3.103875809113482e+01 -3.106548924669440e+01 -3.109223693806243e+01 -3.111900113926174e+01 -3.114578182447812e+01 - -3.117257902593346e+01 -3.119939277712214e+01 -3.122622305859262e+01 -3.125306984560579e+01 -3.127993314521812e+01 - -3.130681297362548e+01 -3.133370935178603e+01 -3.136062229292185e+01 -3.138755177454848e+01 -3.141449777743489e+01 - -3.144146033107010e+01 -3.146843946420585e+01 -3.149543515392452e+01 -3.152244737446985e+01 -3.154947614039987e+01 - -3.157652147508332e+01 -3.160358339681746e+01 -3.163066191390917e+01 -3.165775699977537e+01 -3.168486863280270e+01 - -3.171199684614663e+01 -3.173914167265754e+01 -3.176630308919665e+01 -3.179348107134120e+01 -3.182067564552154e+01 - -3.184788683989369e+01 -3.187511463866380e+01 -3.190235902163426e+01 -3.192961999494226e+01 -3.195689757352222e+01 - -3.198419178116283e+01 -3.201150263346307e+01 -3.203883010440887e+01 -3.206617417058478e+01 -3.209353486058297e+01 - -3.212091220418486e+01 -3.214830618392138e+01 -3.217571677868305e+01 -3.220314400004898e+01 -3.223058786708538e+01 - -3.225804839611857e+01 -3.228552559489243e+01 -3.231301943956095e+01 -3.234052991162765e+01 -3.236805704558397e+01 - -3.239560087404328e+01 -3.242316136911894e+01 -3.245073850255218e+01 -3.247833230509534e+01 -3.250594280965240e+01 - -3.253356999872297e+01 -3.256121385028732e+01 -3.258887437465276e+01 -3.261655158960600e+01 -3.264424551052439e+01 - -3.267195614529539e+01 -3.269968347425627e+01 -3.272742748229857e+01 -3.275518820008119e+01 -3.278296565603427e+01 - -3.281075982390590e+01 -3.283857067801981e+01 -3.286639824968410e+01 -3.289424257141810e+01 -3.292210362360176e+01 - -3.294998138240963e+01 -3.297787585933321e+01 -3.300578707421773e+01 -3.303371504500630e+01 -3.306165978102434e+01 - -3.308962125902853e+01 -3.311759946003357e+01 -3.314559441465483e+01 -3.317360615365304e+01 -3.320163465877013e+01 - -3.322967990687330e+01 -3.325774190434956e+01 -3.328582066713852e+01 -3.331391621987054e+01 -3.334202857831301e+01 - -3.337015771409062e+01 -3.339830360273710e+01 -3.342646627956469e+01 -3.345464577921614e+01 -3.348284207387808e+01 - -3.351105513572078e+01 -3.353928499930519e+01 -3.356753169996216e+01 -3.359579521371194e+01 -3.362407551222610e+01 - -3.365237260909204e+01 -3.368068652715969e+01 -3.370901728441355e+01 -3.373736488954338e+01 -3.376572931892538e+01 - -3.379411055342771e+01 -3.382250862419983e+01 -3.385092356238306e+01 -3.387935534880526e+01 -3.390780395979943e+01 - -3.393626940403256e+01 -3.396475169950308e+01 -3.399325086920118e+01 -3.402176692682492e+01 -3.405029984391190e+01 - -3.407884959628061e+01 -3.410741621903333e+01 -3.413599974690003e+01 -3.416460015383780e+01 -3.419321741347679e+01 - -3.422185155891206e+01 -3.425050262370409e+01 -3.427917058381036e+01 -3.430785541111823e+01 -3.433655711883738e+01 - -3.436527572977491e+01 -3.439401126380553e+01 -3.442276373145798e+01 -3.445153310880944e+01 -3.448031937598221e+01 - -3.450912256373026e+01 -3.453794270224409e+01 -3.456677976882821e+01 -3.459563373771100e+01 -3.462450462370172e+01 - -3.465339245071625e+01 -3.468229723851619e+01 -3.471121899611902e+01 -3.474015769371995e+01 -3.476911330776019e+01 - -3.479808587848705e+01 -3.482707544447295e+01 -3.485608197378501e+01 -3.488510543365825e+01 -3.491414585850467e+01 - -3.494320328527482e+01 -3.497227769389696e+01 -3.500136905869145e+01 -3.503047738856913e+01 -3.505960270226024e+01 - -3.508874502318216e+01 -3.511790436512474e+01 -3.514708069868058e+01 -3.517627399907308e+01 -3.520548430324607e+01 - -3.523471164812467e+01 -3.526395600883895e+01 -3.529321735592740e+01 -3.532249570335686e+01 -3.535179107461137e+01 - -3.538110348781549e+01 -3.541043295179184e+01 -3.543977944351469e+01 -3.546914294470585e+01 -3.549852348792567e+01 - -3.552792110371767e+01 -3.555733576371960e+01 -3.558676744035331e+01 -3.561621616808287e+01 -3.564568198278825e+01 - -3.567516486397158e+01 -3.570466478590109e+01 -3.573418175828719e+01 -3.576371580017962e+01 -3.579326693254331e+01 - -3.582283516733191e+01 -3.585242047853867e+01 -3.588202284498269e+01 -3.591164230274704e+01 -3.594127888660625e+01 - -3.597093256883734e+01 -3.600060331833949e+01 -3.603029115299790e+01 -3.605999610029281e+01 -3.608971817709886e+01 - -3.611945738978410e+01 -3.614921371329605e+01 -3.617898712799953e+01 -3.620877766734910e+01 -3.623858536391516e+01 - -3.626841019364145e+01 -3.629825213180558e+01 -3.632811120764664e+01 -3.635798745148868e+01 -3.638788084403422e+01 - -3.641779136227628e+01 -3.644771901799147e+01 -3.647766383142195e+01 -3.650762582188893e+01 -3.653760499949427e+01 - -3.656760133838370e+01 -3.659761481766282e+01 -3.662764547223315e+01 -3.665769333671685e+01 -3.668775838882340e+01 - -3.671784060113342e+01 -3.674793998262476e+01 -3.677805655273779e+01 -3.680819033636626e+01 -3.683834134900049e+01 - -3.686850956306390e+01 -3.689869495454472e+01 -3.692889755675729e+01 -3.695911740229619e+01 -3.698935446355054e+01 - -3.701960871343802e+01 -3.704988018719579e+01 -3.708016892120266e+01 -3.711047489408478e+01 -3.714079807933708e+01 - -3.717113848768184e+01 -3.720149613882988e+01 -3.723187105121882e+01 -3.726226323497034e+01 -3.729267266821555e+01 - -3.732309933333587e+01 -3.735354326170426e+01 -3.738400448395760e+01 -3.741448297879693e+01 -3.744497872108128e+01 - -3.747549172223736e+01 -3.750602200310610e+01 -3.753656958561755e+01 -3.756713448177913e+01 -3.759771666281819e+01 - -3.762831610507856e+01 -3.765893284615005e+01 -3.768956692232328e+01 -3.772021830344675e+01 -3.775088695941269e+01 - -3.778157292673024e+01 -3.781227624306894e+01 -3.784299688412320e+01 -3.787373482086582e+01 -3.790449006735824e+01 - -3.793526264738479e+01 -3.796605258053289e+01 -3.799685987630166e+01 -3.802768450803411e+01 -3.805852645435349e+01 - -3.808938575116029e+01 -3.812026243387959e+01 -3.815115647875793e+01 -3.818206785737669e+01 -3.821299658183555e+01 - -3.824394267407146e+01 -3.827490615485264e+01 -3.830588703573063e+01 -3.833688529255877e+01 -3.836790090523419e+01 - -3.839893390552727e+01 -3.842998432385276e+01 -3.846105213333004e+01 -3.849213730842061e+01 -3.852323988624988e+01 - -3.855435990371658e+01 -3.858549733414936e+01 -3.861665214665468e+01 -3.864782435702053e+01 -3.867901399128823e+01 - -3.871022106983104e+01 -3.874144560188923e+01 -3.877268755783931e+01 -3.880394691415978e+01 -3.883522371060106e+01 - -3.886651798555487e+01 -3.889782970870629e+01 -3.892915884903668e+01 -3.896050544141922e+01 -3.899186952243698e+01 - -3.902325106962145e+01 -3.905465005558139e+01 -3.908606649228560e+01 -3.911750040150871e+01 -3.914895180488885e+01 - -3.918042071436301e+01 -3.921190710320024e+01 -3.924341094905042e+01 -3.927493228575462e+01 -3.930647114756201e+01 - -3.933802751416320e+01 -3.936960136044893e+01 -3.940119269666864e+01 -3.943280154239230e+01 -3.946442791911308e+01 - -3.949607183932866e+01 -3.952773327763106e+01 -3.955941221301939e+01 -3.959110868002649e+01 -3.962282271157864e+01 - -3.965455427864192e+01 -3.968630335291520e+01 -3.971806997098832e+01 -3.974985417066340e+01 -3.978165592970123e+01 - -3.981347522024374e+01 -3.984531205199855e+01 -3.987716644515135e+01 -3.990903842423468e+01 -3.994092800366619e+01 - -3.997283515305731e+01 -4.000475984705376e+01 -4.003670212524431e+01 -4.006866202678586e+01 -4.010063952416471e+01 - -4.013263458527370e+01 -4.016464722630246e+01 -4.019667747391531e+01 -4.022872534837892e+01 -4.026079085897078e+01 - -4.029287397740929e+01 -4.032497468131004e+01 -4.035709300943645e+01 -4.038922899883853e+01 -4.042138261856475e+01 - -4.045355383733334e+01 -4.048574269054266e+01 -4.051794921541258e+01 -4.055017338976896e+01 -4.058241518694505e+01 - -4.061467462169752e+01 -4.064695171778673e+01 -4.067924649356458e+01 -4.071155895737036e+01 -4.074388908290122e+01 - -4.077623684962312e+01 -4.080860229471885e+01 -4.084098545450960e+01 -4.087338630415373e+01 -4.090580481395003e+01 - -4.093824099592192e+01 -4.097069487270115e+01 -4.100316646762842e+01 -4.103565579436854e+01 -4.106816282717386e+01 - -4.110068754422534e+01 -4.113322997883087e+01 -4.116579016300655e+01 -4.119836806847471e+01 -4.123096366815907e+01 - -4.126357700008218e+01 -4.129620810254014e+01 -4.132885694982463e+01 -4.136152351139461e+01 -4.139420780138244e+01 - -4.142690984447184e+01 -4.145962966287846e+01 -4.149236726828771e+01 -4.152512263273182e+01 -4.155789573295193e+01 - -4.159068660417814e+01 -4.162349528189675e+01 -4.165632174413023e+01 -4.168916596438000e+01 -4.172202795552684e+01 - -4.175490773972726e+01 -4.178780533686147e+01 -4.182072075745918e+01 -4.185365397692470e+01 -4.188660497553830e+01 - -4.191957378820953e+01 -4.195256044830271e+01 -4.198556492837179e+01 -4.201858720098863e+01 -4.205162729960676e+01 - -4.208468525919077e+01 -4.211776105986812e+01 -4.215085467691669e+01 -4.218396612105321e+01 -4.221709541226407e+01 - -4.225024257217616e+01 -4.228340761361360e+01 -4.231659051254899e+01 -4.234979124870078e+01 -4.238300985362200e+01 - -4.241624635885866e+01 -4.244950074409413e+01 -4.248277298525672e+01 -4.251606309511715e+01 -4.254937109530931e+01 - -4.258269700607782e+01 -4.261604083828603e+01 -4.264940256666174e+01 -4.268278217100897e+01 -4.271617968757233e+01 - -4.274959515039267e+01 -4.278302852825576e+01 -4.281647979114838e+01 -4.284994897911630e+01 -4.288343613339240e+01 - -4.291694122989936e+01 -4.295046423857267e+01 -4.298400517070971e+01 -4.301756404788966e+01 -4.305114089145757e+01 - -4.308473571388112e+01 -4.311834849235274e+01 -4.315197920801049e+01 -4.318562789305037e+01 -4.321929457904871e+01 - -4.325297924404543e+01 -4.328668186207582e+01 -4.332040244469275e+01 -4.335414101381126e+01 -4.338789759527743e+01 - -4.342167220389723e+01 -4.345546480638487e+01 -4.348927537558045e+01 -4.352310395691921e+01 -4.355695059370569e+01 - -4.359081524812669e+01 -4.362469788222823e+01 -4.365859853861065e+01 -4.369251726260594e+01 -4.372645402991838e+01 - -4.376040880917880e+01 -4.379438161035186e+01 -4.382837245512241e+01 -4.386238137072252e+01 -4.389640837367813e+01 - -4.393045343214298e+01 -4.396451651875527e+01 -4.399859767246311e+01 -4.403269693263155e+01 -4.406681427398399e+01 - -4.410094966630350e+01 -4.413510312425358e+01 -4.416927467295284e+01 -4.420346433446015e+01 -4.423767212069691e+01 - -4.427189800609401e+01 -4.430614196966567e+01 -4.434040404624994e+01 -4.437468426893484e+01 -4.440898260798443e+01 - -4.444329903479183e+01 -4.447763358808973e+01 -4.451198630763288e+01 -4.454635716992501e+01 -4.458074614621454e+01 - -4.461515324997958e+01 -4.464957850449220e+01 -4.468402192997090e+01 -4.471848353715485e+01 -4.475296330191956e+01 - -4.478746120505344e+01 -4.482197728186011e+01 -4.485651156648301e+01 -4.489106403390974e+01 -4.492563465506775e+01 - -4.496022344379944e+01 -4.499483042484561e+01 -4.502945562362576e+01 -4.506409905435962e+01 -4.509876068578905e+01 - -4.513344049220396e+01 -4.516813851556444e+01 -4.520285479589762e+01 -4.523758929782897e+01 -4.527234198687941e+01 - -4.530711290755342e+01 -4.534190210524451e+01 -4.537670954991925e+01 -4.541153520580425e+01 -4.544637908959269e+01 - -4.548124122972980e+01 -4.551612164920255e+01 -4.555102035951307e+01 -4.558593733168242e+01 -4.562087254236648e+01 - -4.565582603124118e+01 -4.569079783605451e+01 -4.572578792382265e+01 -4.576079626235065e+01 -4.579582289333027e+01 - -4.583086785976433e+01 -4.586593113601344e+01 -4.590101269036680e+01 -4.593611253546989e+01 -4.597123069530716e+01 - -4.600636719486254e+01 -4.604152204856955e+01 -4.607669522766013e+01 -4.611188670797630e+01 -4.614709652700154e+01 - -4.618232472227299e+01 -4.621757126990104e+01 -4.625283614113306e+01 -4.628811934919114e+01 -4.632342091751210e+01 - -4.635874086841728e+01 -4.639407921460932e+01 -4.642943593143147e+01 -4.646481099859044e+01 -4.650020445060623e+01 - -4.653561632090474e+01 -4.657104658372261e+01 -4.660649521327068e+01 -4.664196224284595e+01 -4.667744770698098e+01 - -4.671295158606459e+01 -4.674847385553061e+01 -4.678401452513644e+01 -4.681957361522331e+01 -4.685515115414413e+01 - -4.689074715945064e+01 -4.692636159747788e+01 -4.696199443933372e+01 -4.699764572643400e+01 -4.703331550121288e+01 - -4.706900373987032e+01 -4.710471041222129e+01 -4.714043552877479e+01 -4.717617911151273e+01 -4.721194118761495e+01 - -4.724772177397794e+01 -4.728352084116666e+01 -4.731933836391387e+01 -4.735517437995513e+01 -4.739102892624472e+01 - -4.742690197360956e+01 -4.746279349304486e+01 -4.749870352234630e+01 -4.753463210070628e+01 -4.757057920610364e+01 - -4.760654481072343e+01 -4.764252892478859e+01 -4.767853156968457e+01 -4.771455277340900e+01 -4.775059255327958e+01 - -4.778665087728216e+01 -4.782272771801416e+01 -4.785882311585065e+01 -4.789493711157514e+01 -4.793106967982698e+01 - -4.796722079021173e+01 -4.800339045834357e+01 -4.803957871014897e+01 -4.807578556679541e+01 -4.811201103905631e+01 - -4.814825510088780e+01 -4.818451773166895e+01 -4.822079896928767e+01 -4.825709884980719e+01 -4.829341734348342e+01 - -4.832975442115909e+01 -4.836611012183125e+01 -4.840248448526336e+01 -4.843887748613056e+01 -4.847528909416636e+01 - -4.851171932442625e+01 -4.854816820273300e+01 -4.858463575265701e+01 -4.862112198691646e+01 -4.865762687707282e+01 - -4.869415040003414e+01 -4.873069259525141e+01 -4.876725350118260e+01 -4.880383308977095e+01 -4.884043132904604e+01 - -4.887704823789731e+01 -4.891368384608068e+01 -4.895033817595851e+01 -4.898701123776245e+01 -4.902370300059485e+01 - -4.906041344002308e+01 -4.909714259860375e+01 -4.913389051725400e+01 -4.917065716334413e+01 -4.920744250429804e+01 - -4.924424658130064e+01 -4.928106943700116e+01 -4.931791104614518e+01 -4.935477137752828e+01 -4.939165044404930e+01 - -4.942854827009338e+01 -4.946546488188807e+01 -4.950240029454247e+01 -4.953935447684974e+01 -4.957632740294361e+01 - -4.961331911463601e+01 -4.965032965315336e+01 -4.968735898970213e+01 -4.972440709120082e+01 -4.976147397743583e+01 - -4.979855967878247e+01 -4.983566421510402e+01 -4.987278759472007e+01 -4.990992979028766e+01 -4.994709078100569e+01 - -4.998427060790318e+01 -5.002146930959274e+01 -5.005868685319148e+01 -5.009592320640078e+01 -5.013317841075434e+01 - -5.017045250915469e+01 -5.020774547614742e+01 -5.024505728017924e+01 -5.028238793365752e+01 -5.031973746104961e+01 - -5.035710589110189e+01 -5.039449324090066e+01 -5.043189947661289e+01 -5.046932456973549e+01 -5.050676856400442e+01 - -5.054423150327239e+01 -5.058171335962052e+01 -5.061921409929316e+01 -5.065673373695915e+01 -5.069427229950105e+01 - -5.073182981423184e+01 -5.076940629607507e+01 -5.080700170996615e+01 -5.084461602753602e+01 -5.088224929718589e+01 - -5.091990156525010e+01 -5.095757279302548e+01 -5.099526294209112e+01 -5.103297206019221e+01 -5.107070019605169e+01 - -5.110844731613729e+01 -5.114621338143406e+01 -5.118399841325091e+01 -5.122180244526444e+01 -5.125962550029841e+01 - -5.129746758802490e+01 -5.133532867636215e+01 -5.137320874011100e+01 -5.141110782335645e+01 -5.144902596945006e+01 - -5.148696314952589e+01 -5.152491932947918e+01 -5.156289452646703e+01 -5.160088876945014e+01 -5.163890208334180e+01 - -5.167693448081514e+01 -5.171498592963017e+01 -5.175305640369855e+01 -5.179114594645165e+01 -5.182925460014935e+01 - -5.186738233284598e+01 -5.190552911234031e+01 -5.194369497961412e+01 -5.198187997663295e+01 -5.202008407611459e+01 - -5.205830724580739e+01 -5.209654950282933e+01 -5.213481087573764e+01 -5.217309138947744e+01 -5.221139105690054e+01 - -5.224970984609732e+01 -5.228804773087789e+01 -5.232640475269200e+01 -5.236478095346914e+01 -5.240317630941821e+01 - -5.244159079031952e+01 -5.248002440595931e+01 -5.251847717885386e+01 -5.255694914243367e+01 -5.259544031823210e+01 - -5.263395066927961e+01 -5.267248016335085e+01 -5.271102884570031e+01 -5.274959676081755e+01 -5.278818387265291e+01 - -5.282679014593192e+01 -5.286541562901994e+01 -5.290406037048660e+01 -5.294272433607927e+01 -5.298140748616263e+01 - -5.302010984239256e+01 -5.305883143892672e+01 -5.309757229863885e+01 -5.313633243133304e+01 -5.317511180581835e+01 - -5.321391039785607e+01 -5.325272825201081e+01 -5.329156541074357e+01 -5.333042183929739e+01 -5.336929750308754e+01 - -5.340819244543594e+01 -5.344710671111962e+01 -5.348604027282968e+01 -5.352499309722418e+01 -5.356396519891433e+01 - -5.360295660504364e+01 -5.364196734493171e+01 -5.368099743556814e+01 -5.372004684244607e+01 -5.375911553606044e+01 - -5.379820355840945e+01 -5.383731095277006e+01 -5.387643769603123e+01 -5.391558375867469e+01 -5.395474915194053e+01 - -5.399393389872404e+01 -5.403313802778240e+01 -5.407236155707715e+01 -5.411160445552515e+01 -5.415086669663323e+01 - -5.419014832131279e+01 -5.422944936941720e+01 -5.426876980916325e+01 -5.430810960961936e+01 -5.434746881489674e+01 - -5.438684746929877e+01 -5.442624554285502e+01 -5.446566300018413e+01 -5.450509985853421e+01 -5.454455614758906e+01 - -5.458403189414573e+01 -5.462352711279953e+01 -5.466304177222543e+01 -5.470257584656953e+01 -5.474212937778257e+01 - -5.478170240720980e+01 -5.482129490597043e+01 -5.486090684084346e+01 -5.490053823147309e+01 -5.494018910890276e+01 - -5.497985949690793e+01 -5.501954940653937e+01 -5.505925880521750e+01 -5.509898766755921e+01 -5.513873604059781e+01 - -5.517850396943321e+01 -5.521829141901578e+01 -5.525809835354192e+01 -5.529792481434151e+01 -5.533777084523449e+01 - -5.537763642286803e+01 -5.541752151714192e+01 -5.545742613813913e+01 -5.549735030880384e+01 -5.553729406334213e+01 - -5.557725742375872e+01 -5.561724035199087e+01 -5.565724281465346e+01 -5.569726485713910e+01 -5.573730652628086e+01 - -5.577736779589668e+01 -5.581744863307357e+01 -5.585754905099014e+01 -5.589766907536871e+01 -5.593780873601526e+01 - -5.597796805069111e+01 -5.601814698489535e+01 -5.605834550959182e+01 -5.609856366986563e+01 -5.613880151023810e+01 - -5.617905899885479e+01 -5.621933610311022e+01 -5.625963286377015e+01 -5.629994932270948e+01 -5.634028545286861e+01 - -5.638064122221132e+01 -5.642101664772899e+01 -5.646141175844968e+01 -5.650182658252075e+01 -5.654226113528433e+01 - -5.658271538174220e+01 -5.662318929319503e+01 -5.666368291647893e+01 -5.670419629786259e+01 -5.674472940580990e+01 - -5.678528220346420e+01 -5.682585471049146e+01 -5.686644695909487e+01 -5.690705897510426e+01 -5.694769077129006e+01 - -5.698834231455854e+01 -5.702901357847642e+01 -5.706970460911611e+01 -5.711041545084194e+01 -5.715114606868026e+01 - -5.719189642778805e+01 -5.723266657318249e+01 -5.727345655110785e+01 -5.731426633285666e+01 -5.735509588339112e+01 - -5.739594521730356e+01 -5.743681436264626e+01 -5.747770335168147e+01 -5.751861220364783e+01 -5.755954088147938e+01 - -5.760048935348805e+01 -5.764145766580183e+01 -5.768244586550730e+01 -5.772345392571002e+01 -5.776448181276131e+01 - -5.780552953997691e+01 -5.784659713354442e+01 -5.788768462417462e+01 -5.792879202998626e+01 -5.796991931420698e+01 - -5.801106644664837e+01 -5.805223347834903e+01 -5.809342045860209e+01 -5.813462734849197e+01 -5.817585410820936e+01 - -5.821710078257841e+01 -5.825836741928538e+01 -5.829965399283203e+01 -5.834096047087346e+01 -5.838228686686274e+01 - -5.842363320676851e+01 -5.846499952082397e+01 -5.850638582715609e+01 -5.854779209120221e+01 -5.858921828442874e+01 - -5.863066445510763e+01 -5.867213065032231e+01 -5.871361683559694e+01 -5.875512297138874e+01 -5.879664907944645e+01 - -5.883819519466417e+01 -5.887976134322624e+01 -5.892134753756825e+01 -5.896295374384051e+01 -5.900457993500612e+01 - -5.904622615756436e+01 -5.908789245663575e+01 -5.912957879828990e+01 -5.917128514850664e+01 -5.921301155195771e+01 - -5.925475805384439e+01 -5.929652462279476e+01 -5.933831122286624e+01 -5.938011787640643e+01 -5.942194461763230e+01 - -5.946379146994821e+01 -5.950565844408734e+01 -5.954754551091072e+01 -5.958945264733813e+01 -5.963137989439624e+01 - -5.967332729249499e+01 -5.971529481547052e+01 -5.975728243227523e+01 -5.979929015889982e+01 -5.984131802305070e+01 - -5.988336605225896e+01 -5.992543426246962e+01 -5.996752262345901e+01 -6.000963111046766e+01 -6.005175976676178e+01 - -6.009390863383608e+01 -6.013607767807394e+01 -6.017826686618813e+01 -6.022047624132026e+01 -6.026270584835797e+01 - -6.030495566274465e+01 -6.034722565381767e+01 -6.038951583593452e+01 -6.043182623512069e+01 -6.047415687905394e+01 - -6.051650778421003e+01 -6.055887892060463e+01 -6.060127026325783e+01 -6.064368185366749e+01 -6.068611373308907e+01 - -6.072856587533070e+01 -6.077103824887340e+01 -6.081353086833690e+01 -6.085604376132918e+01 -6.089857696127247e+01 - -6.094113048823596e+01 -6.098370430306234e+01 -6.102629837247437e+01 -6.106891274594116e+01 -6.111154747264118e+01 - -6.115420251784390e+01 -6.119687784580902e+01 -6.123957350066591e+01 -6.128228952841628e+01 -6.132502590268162e+01 - -6.136778259056138e+01 -6.141055960544676e+01 -6.145335697380811e+01 -6.149617472814099e+01 -6.153901288864162e+01 - -6.158187142028389e+01 -6.162475029314290e+01 -6.166764955292113e+01 -6.171056924466600e+01 -6.175350933517737e+01 - -6.179646979123154e+01 -6.183945065775757e+01 -6.188245198047678e+01 -6.192547373012725e+01 -6.196851587175868e+01 - -6.201157842265037e+01 -6.205466141333163e+01 -6.209776487510229e+01 -6.214088882566958e+01 -6.218403322759970e+01 - -6.222719804958889e+01 -6.227038333999444e+01 -6.231358914752139e+01 -6.235681544260558e+01 -6.240006218936849e+01 - -6.244332940494305e+01 -6.248661712010740e+01 -6.252992536720910e+01 -6.257325416420860e+01 -6.261660346994837e+01 - -6.265997325077347e+01 -6.270336356215701e+01 -6.274677445777788e+01 -6.279020589501037e+01 -6.283365783085999e+01 - -6.287713031716163e+01 -6.292062340781234e+01 -6.296413707012920e+01 -6.300767126475596e+01 -6.305122601222295e+01 - -6.309480134635203e+01 -6.313839729424505e+01 -6.318201386936521e+01 -6.322565103734121e+01 -6.326930877093868e+01 - -6.331298711930568e+01 -6.335668613058504e+01 -6.340040577251647e+01 -6.344414600718050e+01 -6.348790685442323e+01 - -6.353168834759008e+01 -6.357549051625812e+01 -6.361931337593239e+01 -6.366315688959789e+01 -6.370702102749119e+01 - -6.375090584137499e+01 -6.379481138078580e+01 -6.383873760482961e+01 -6.388268447297220e+01 -6.392665203654889e+01 - -6.397064034897519e+01 -6.401464938011861e+01 -6.405867909237229e+01 -6.410272950177993e+01 -6.414680063823367e+01 - -6.419089253336912e+01 -6.423500520539493e+01 -6.427913861706836e+01 -6.432329273774181e+01 -6.436746761859949e+01 - -6.441166331065573e+01 -6.445587978241413e+01 -6.450011699516882e+01 -6.454437496388719e+01 -6.458865371852110e+01 - -6.463295329528786e+01 -6.467727371608086e+01 -6.472161493923234e+01 -6.476597692945877e+01 -6.481035974057480e+01 - -6.485476342551981e+01 -6.489918794463497e+01 -6.494363325783405e+01 -6.498809941591921e+01 -6.503258647107099e+01 - -6.507709439009531e+01 -6.512162313341831e+01 -6.516617272132122e+01 -6.521074318787740e+01 -6.525533456247440e+01 - -6.529994686059398e+01 -6.534458004678092e+01 -6.538923409250538e+01 -6.543390904787570e+01 -6.547860496211884e+01 - -6.552332180229843e+01 -6.556805952953434e+01 -6.561281816333469e+01 -6.565759773746066e+01 -6.570239828429803e+01 - -6.574721982146080e+01 -6.579206230885156e+01 -6.583692571363754e+01 -6.588181008975629e+01 -6.592671548982709e+01 - -6.597164187442638e+01 -6.601658920334479e+01 -6.606155752527242e+01 -6.610654689090467e+01 -6.615155727005924e+01 - -6.619658862652422e+01 -6.624164098084657e+01 -6.628671436645676e+01 -6.633180881156068e+01 -6.637692433038681e+01 - -6.642206088647883e+01 -6.646721845110714e+01 -6.651239707713407e+01 -6.655759681603797e+01 -6.660281763216933e+01 - -6.664805948389387e+01 -6.669332239276561e+01 -6.673860639512726e+01 -6.678391152328841e+01 -6.682923779433044e+01 - -6.687458516845543e+01 -6.691995361277515e+01 -6.696534317891920e+01 -6.701075391795754e+01 -6.705618579420361e+01 - -6.710163877100581e+01 -6.714711289460833e+01 -6.719260821321966e+01 -6.723812470001026e+01 -6.728366232121398e+01 - -6.732922109035582e+01 -6.737480103488133e+01 -6.742040219062761e+01 -6.746602458035952e+01 -6.751166816616187e+01 - -6.755733291529161e+01 -6.760301887637438e+01 -6.764872609859751e+01 -6.769445455202660e+01 -6.774020420051386e+01 - -6.778597506217976e+01 -6.783176716876942e+01 -6.787758055225885e+01 -6.792341523092826e+01 -6.796927116804379e+01 - -6.801514833341810e+01 -6.806104677806347e+01 -6.810696655123587e+01 -6.815290761396663e+01 -6.819886992772128e+01 - -6.824485354392678e+01 -6.829085851532395e+01 -6.833688480994840e+01 -6.838293238885097e+01 -6.842900126984890e+01 - -6.847509148538957e+01 -6.852120306967514e+01 -6.856733604269469e+01 -6.861349036583006e+01 -6.865966600658993e+01 - -6.870586301559659e+01 -6.875208144399036e+01 -6.879832126187024e+01 -6.884458243234171e+01 -6.889086497157696e+01 - -6.893716890990422e+01 -6.898349428120915e+01 -6.902984110598732e+01 -6.907620934761650e+01 -6.912259897511596e+01 - -6.916901003718877e+01 -6.921544258172949e+01 -6.926189657371528e+01 -6.930837197817074e+01 -6.935486884322755e+01 - -6.940138721768092e+01 -6.944792706987337e+01 -6.949448836290087e+01 -6.954107111932564e+01 -6.958767537490402e+01 - -6.963430115870300e+01 -6.968094848498497e+01 -6.972761731548312e+01 -6.977430762020695e+01 -6.982101945480034e+01 - -6.986775287255249e+01 -6.991450783170005e+01 -6.996128429032680e+01 -7.000808230095708e+01 -7.005490191787665e+01 - -7.010174310797666e+01 -7.014860583121035e+01 -7.019549010717337e+01 -7.024239597049470e+01 -7.028932345629492e+01 - -7.033627258446040e+01 -7.038324331344937e+01 -7.043023560838913e+01 -7.047724952251053e+01 -7.052428510987777e+01 - -7.057134233978515e+01 -7.061842117397924e+01 -7.066552162878578e+01 -7.071264373512433e+01 -7.075978752771100e+01 - -7.080695302731498e+01 -7.085414019512091e+01 -7.090134899910394e+01 -7.094857949398551e+01 -7.099583173235354e+01 - -7.104310567151599e+01 -7.109040126922885e+01 -7.113771858031990e+01 -7.118505766125368e+01 -7.123241847797109e+01 - -7.127980098937178e+01 -7.132720521671429e+01 -7.137463119544236e+01 -7.142207895538176e+01 -7.146954851252747e+01 - -7.151703983316882e+01 -7.156455289009196e+01 -7.161208773177542e+01 -7.165964440570248e+01 -7.170722287968356e+01 - -7.175482311646741e+01 -7.180244513822917e+01 -7.185008898098621e+01 -7.189775467669884e+01 -7.194544224180910e+01 - -7.199315163474331e+01 -7.204088282234626e+01 -7.208863586315185e+01 -7.213641081375658e+01 -7.218420763131780e+01 - -7.223202627227879e+01 -7.227986678966526e+01 -7.232772923884254e+01 -7.237561358795277e+01 -7.242351979769759e+01 - -7.247144788623903e+01 -7.251939788668284e+01 -7.256736983444897e+01 -7.261536375015235e+01 -7.266337959287341e+01 - -7.271141732841731e+01 -7.275947701102203e+01 -7.280755869538000e+01 -7.285566234956853e+01 -7.290378793432680e+01 - -7.295193546765573e+01 -7.300010498266862e+01 -7.304829651566631e+01 -7.309651008753943e+01 -7.314474565435016e+01 - -7.319300317971540e+01 -7.324128272229925e+01 -7.328958433981238e+01 -7.333790799110540e+01 -7.338625363374130e+01 - -7.343462131899291e+01 -7.348301110053259e+01 -7.353142294792167e+01 -7.357985682361442e+01 -7.362831274574745e+01 - -7.367679074711965e+01 -7.372529086349638e+01 -7.377381311579366e+01 -7.382235746256312e+01 -7.387092386912651e+01 - -7.391951239025020e+01 -7.396812308115555e+01 -7.401675590943988e+01 -7.406541083531380e+01 -7.411408787706513e+01 - -7.416278706814910e+01 -7.421150844461324e+01 -7.426025202733783e+01 -7.430901777394124e+01 -7.435780564940528e+01 - -7.440661571142732e+01 -7.445544801616209e+01 -7.450430252087864e+01 -7.455317918285648e+01 -7.460207805830268e+01 - -7.465099920497126e+01 -7.469994258787753e+01 -7.474890816454140e+01 -7.479789595523943e+01 -7.484690599592756e+01 - -7.489593832252380e+01 -7.494499295533201e+01 -7.499406985223764e+01 -7.504316897827101e+01 -7.509229038945979e+01 - -7.514143414169166e+01 -7.519060019929748e+01 -7.523978851997632e+01 -7.528899912645726e+01 -7.533823205657275e+01 - -7.538748734353926e+01 -7.543676500532445e+01 -7.548606500351643e+01 -7.553538730703876e+01 -7.558473197053598e+01 - -7.563409904619321e+01 -7.568348849063742e+01 -7.573290026170078e+01 -7.578233441759443e+01 -7.583179101796470e+01 - -7.588127002782028e+01 -7.593077140392674e+01 -7.598029516471465e+01 -7.602984134475692e+01 -7.607940998153097e+01 - -7.612900109746634e+01 -7.617861465189691e+01 -7.622825061065345e+01 -7.627790902865043e+01 -7.632758996032740e+01 - -7.637729336914126e+01 -7.642701921265419e+01 -7.647676751583191e+01 -7.652653831849052e+01 -7.657633165244424e+01 - -7.662614753370475e+01 -7.667598592307560e+01 -7.672584678949215e+01 -7.677573018962489e+01 -7.682563617769370e+01 - -7.687556471038147e+01 -7.692551574474433e+01 -7.697548933686781e+01 -7.702548554509247e+01 -7.707550433774978e+01 - -7.712554567498073e+01 -7.717560957417300e+01 -7.722569606768573e+01 -7.727580519051753e+01 -7.732593696392289e+01 - -7.737609135154067e+01 -7.742626832278943e+01 -7.747646792782194e+01 -7.752669021677298e+01 -7.757693515897095e+01 - -7.762720271798948e+01 -7.767749291518889e+01 -7.772780578562232e+01 -7.777814136132783e+01 -7.782849965970544e+01 - -7.787888064261847e+01 -7.792928427988689e+01 -7.797971062869398e+01 -7.803015974345008e+01 -7.808063158011076e+01 - -7.813112609521906e+01 -7.818164334612277e+01 -7.823218339188995e+01 -7.828274619766600e+01 -7.833333172107952e+01 - -7.838393998361434e+01 -7.843457102192369e+01 -7.848522486948340e+01 -7.853590154498607e+01 -7.858660101116894e+01 - -7.863732323758104e+01 -7.868806827697425e+01 -7.873883618163512e+01 -7.878962691878654e+01 -7.884044044940295e+01 - -7.889127679452803e+01 -7.894213598992800e+01 -7.899301807018992e+01 -7.904392305456564e+01 -7.909485090214494e+01 - -7.914580158005610e+01 -7.919677514774288e+01 -7.924777166238927e+01 -7.929879107982515e+01 -7.934983335558289e+01 - -7.940089854535901e+01 -7.945198670709752e+01 -7.950309780756868e+01 -7.955423180605224e+01 -7.960538872303847e+01 - -7.965656859466247e+01 -7.970777145842827e+01 -7.975899733555858e+01 -7.981024618078136e+01 -7.986151795697417e+01 - -7.991281272610696e+01 -7.996413054847572e+01 -8.001547137858779e+01 -8.006683517069925e+01 -8.011822198384908e+01 - -8.016963187855384e+01 -8.022106481645797e+01 -8.027252075224854e+01 -8.032399971165485e+01 -8.037550173585385e+01 - -8.042702685677139e+01 -8.047857509055929e+01 -8.053014639952434e+01 -8.058174075328817e+01 -8.063335820457638e+01 - -8.068499880610621e+01 -8.073666252745771e+01 -8.078834933088126e+01 -8.084005923244513e+01 -8.089179226408041e+01 - -8.094354846735196e+01 -8.099532786819320e+01 -8.104713042037783e+01 -8.109895608507813e+01 -8.115080492521992e+01 - -8.120267700205356e+01 -8.125457226837462e+01 -8.130649067623317e+01 -8.135843228315183e+01 -8.141039715010918e+01 - -8.146238524643556e+01 -8.151439653208425e+01 -8.156643102114791e+01 -8.161848874447259e+01 -8.167056974577932e+01 - -8.172267405314662e+01 -8.177480161920819e+01 -8.182695240289546e+01 -8.187912646377457e+01 -8.193132386298609e+01 - -8.198354456733288e+01 -8.203578853472443e+01 -8.208805578183410e+01 -8.214034634197473e+01 -8.219266025625411e+01 - -8.224499755029157e+01 -8.229735817995817e+01 -8.234974210798764e+01 -8.240214939431286e+01 -8.245458009683706e+01 - -8.250703416814667e+01 -8.255951156203467e+01 -8.261201234243612e+01 -8.266453657428882e+01 -8.271708421639993e+01 - -8.276965521981012e+01 -8.282224961062391e+01 -8.287486743131451e+01 -8.292750871476633e+01 -8.298017347733835e+01 - -8.303286167887651e+01 -8.308557328775250e+01 -8.313830836295337e+01 -8.319106696215761e+01 -8.324384904719405e+01 - -8.329665457280116e+01 -8.334948356120523e+01 -8.340233605179664e+01 -8.345521208513452e+01 -8.350811168407860e+01 - -8.356103479952203e+01 -8.361398139085040e+01 -8.366695152338559e+01 -8.371994526125894e+01 -8.377296255790387e+01 - -8.382600336547402e+01 -8.387906774170159e+01 -8.393215574692768e+01 -8.398526734635097e+01 -8.403840249721476e+01 - -8.409156122008268e+01 -8.414474355213920e+01 -8.419794953373223e+01 -8.425117918830632e+01 -8.430443246852916e+01 - -8.435770933516140e+01 -8.441100985211256e+01 -8.446433408298962e+01 -8.451768198704093e+01 -8.457105351533237e+01 - -8.462444869055821e+01 -8.467786755329161e+01 -8.473131014399300e+01 -8.478477648534972e+01 -8.483826652906932e+01 - -8.489178023573824e+01 -8.494531767243778e+01 -8.499887890373510e+01 -8.505246387764603e+01 -8.510607254206460e+01 - -8.515970496094809e+01 -8.521336120130535e+01 -8.526704122628841e+01 -8.532074498941530e+01 -8.537447250952404e+01 - -8.542822382319736e+01 -8.548199897267675e+01 -8.553579798342942e+01 -8.558962080816578e+01 -8.564346740685433e+01 - -8.569733784125194e+01 -8.575123217367282e+01 -8.580515036687339e+01 -8.585909237532205e+01 -8.591305821989287e+01 - -8.596704793875205e+01 -8.602106157282915e+01 -8.607509914567974e+01 -8.612916060859980e+01 -8.618324592155754e+01 - -8.623735515146925e+01 -8.629148836331387e+01 -8.634564550737286e+01 -8.639982653295500e+01 -8.645403150017543e+01 - -8.650826047252751e+01 -8.656251341621210e+01 -8.661679028858919e+01 -8.667109110894766e+01 -8.672541591317201e+01 - -8.677976474159972e+01 -8.683413761829634e+01 -8.688853449778628e+01 -8.694295534179228e+01 -8.699740021037117e+01 - -8.705186916402354e+01 -8.710636216669133e+01 -8.716087917454270e+01 -8.721542020920894e+01 -8.726998530877070e+01 - -8.732457451164281e+01 -8.737918783967393e+01 -8.743382524811331e+01 -8.748848670054353e+01 -8.754317226047976e+01 - -8.759788198894785e+01 -8.765261583708421e+01 -8.770737375634857e+01 -8.776215580938322e+01 -8.781696206132678e+01 - -8.787179247612183e+01 -8.792664700860111e+01 -8.798152567835336e+01 -8.803642852212045e+01 -8.809135558050070e+01 - -8.814630687756171e+01 -8.820128236739042e+01 -8.825628201129771e+01 -8.831130586947003e+01 -8.836635400284558e+01 - -8.842142637649435e+01 -8.847652294770472e+01 -8.853164373850628e+01 -8.858678878695027e+01 -8.864195813043362e+01 - -8.869715178945941e+01 -8.875236971760948e+01 -8.880761187808301e+01 -8.886287833946902e+01 -8.891816916696094e+01 - -8.897348430677987e+01 -8.902882370531137e+01 -8.908418742857141e+01 -8.913957554536425e+01 -8.919498801601753e+01 - -8.925042479199006e+01 -8.930588589774098e+01 -8.936137137472512e+01 -8.941688125937962e+01 -8.947241557120560e+01 - -8.952797426697802e+01 -8.958355731201681e+01 -8.963916476854843e+01 -8.969479669732335e+01 -8.975045305628245e+01 - -8.980613379692392e+01 -8.986183894778455e+01 -8.991756855389235e+01 -8.997332264920152e+01 -9.002910125051302e+01 - -9.008490431708829e+01 -9.014073181666647e+01 -9.019658380843681e+01 -9.025246034941333e+01 -9.030836139645970e+01 - -9.036428690661128e+01 -9.042023693773967e+01 -9.047621154925669e+01 -9.053221070589892e+01 -9.058823436476921e+01 - -9.064428254711031e+01 -9.070035529106499e+01 -9.075645263823618e+01 -9.081257461289793e+01 -9.086872116654884e+01 - -9.092489225918972e+01 -9.098108795760594e+01 -9.103730832657459e+01 -9.109355331605536e+01 -9.114982287548730e+01 - -9.120611706704364e+01 -9.126243595579022e+01 -9.131877950563008e+01 -9.137514767186437e+01 -9.143154047654943e+01 - -9.148795795857168e+01 -9.154440015738282e+01 -9.160086709537343e+01 -9.165735872612346e+01 -9.171387501169491e+01 - -9.177041601688784e+01 -9.182698180564800e+01 -9.188357233576582e+01 -9.194018755741556e+01 -9.199682749646104e+01 - -9.205349219658670e+01 -9.211018169707003e+01 -9.216689601912306e+01 -9.222363511610273e+01 -9.228039895018067e+01 - -9.233718758664240e+01 -9.239400108840672e+01 -9.245083940581294e+01 -9.250770248979978e+01 -9.256459040628322e+01 - -9.262150322244982e+01 -9.267844089559186e+01 -9.273540337476760e+01 -9.279239068599267e+01 -9.284940287335907e+01 - -9.290643997630693e+01 -9.296350201607783e+01 -9.302058894577094e+01 -9.307770072730455e+01 -9.313483742601555e+01 - -9.319199910633068e+01 -9.324918572561810e+01 -9.330639723351504e+01 -9.336363365579297e+01 -9.342089503640302e+01 - -9.347818141588093e+01 -9.353549281584256e+01 -9.359282918563940e+01 -9.365019048477910e+01 -9.370757678565749e+01 - -9.376498815769901e+01 -9.382242454555492e+01 -9.387988589305337e+01 -9.393737226550313e+01 -9.399488373202897e+01 - -9.405242025553964e+01 -9.410998178945039e+01 -9.416756835541781e+01 -9.422517999301114e+01 -9.428281674520871e+01 - -9.434047863667399e+01 -9.439816561540189e+01 -9.445587763836596e+01 -9.451361477512259e+01 -9.457137709520302e+01 - -9.462916455545547e+01 -9.468697710379740e+01 -9.474481476510589e+01 -9.480267758244509e+01 -9.486056559466863e+01 - -9.491847882335075e+01 -9.497641722515867e+01 -9.503438076487508e+01 -9.509236950465109e+01 -9.515038350409563e+01 - -9.520842271528107e+01 -9.526648709103007e+01 -9.532457669470300e+01 -9.538269159175374e+01 -9.544083174547335e+01 - -9.549899710997526e+01 -9.555718770482461e+01 -9.561540356780063e+01 -9.567364474408794e+01 -9.573191126075703e+01 - -9.579020306501620e+01 -9.584852011272490e+01 -9.590686247420874e+01 -9.596523021978578e+01 -9.602362330527772e+01 - -9.608204167783254e+01 -9.614048536439948e+01 -9.619895441016116e+01 -9.625744885343293e+01 -9.631596871403326e+01 - -9.637451394466026e+01 -9.643308450797647e+01 -9.649168047362274e+01 -9.655030190767742e+01 -9.660894875499127e+01 - -9.666762096089710e+01 -9.672631859388268e+01 -9.678504172537357e+01 -9.684379031539257e+01 -9.690256431417546e+01 - -9.696136374421286e+01 -9.702018864639355e+01 -9.707903906294442e+01 -9.713791501832830e+01 -9.719681646461351e+01 - -9.725574336170810e+01 -9.731469577327378e+01 -9.737367376351882e+01 -9.743267729508464e+01 -9.749170632178308e+01 - -9.755076086367355e+01 -9.760984095895955e+01 -9.766894665217343e+01 -9.772807797034233e+01 -9.778723486414395e+01 - -9.784641729236439e+01 -9.790562532257231e+01 -9.796485902036660e+01 -9.802411833468516e+01 -9.808340321418262e+01 - -9.814271372304191e+01 -9.820204992860188e+01 -9.826141179529722e+01 -9.832079927766843e+01 -9.838021239358226e+01 - -9.843965117935535e+01 -9.849911568177785e+01 -9.855860593025675e+01 -9.861812187419362e+01 -9.867766347002308e+01 - -9.873723078231735e+01 -9.879682387670165e+01 -9.885644271487612e+01 -9.891608724974174e+01 -9.897575750292785e+01 - -9.903545351466867e+01 -9.909517533088989e+01 -9.915492297862031e+01 -9.921469640360959e+01 -9.927449556058966e+01 - -9.933432052149955e+01 -9.939417135686639e+01 -9.945404801436261e+01 -9.951395044077229e+01 -9.957387870218038e+01 - -9.963383286719130e+01 -9.969381289518709e+01 -9.975381873630593e+01 -9.981385041293248e+01 -9.987390796877466e+01 - -9.993399146058783e+01 -9.999410091983435e+01 -1.000542362637563e+02 -1.001143974249114e+02 -1.001745845113392e+02 - -1.002347976270743e+02 -1.002950366846517e+02 -1.003553015922550e+02 -1.004155924321621e+02 -1.004759093011103e+02 - -1.005362521795820e+02 -1.005966210292817e+02 -1.006570158530568e+02 -1.007174366671700e+02 -1.007778835004040e+02 - -1.008383563749385e+02 -1.008988552740233e+02 -1.009593801813489e+02 -1.010199311212978e+02 -1.010805081231472e+02 - -1.011411111950619e+02 -1.012017403376325e+02 -1.012623955422635e+02 -1.013230768099676e+02 -1.013837841893743e+02 - -1.014445177207514e+02 -1.015052773633014e+02 -1.015660630775449e+02 -1.016268749103392e+02 -1.016877129150088e+02 - -1.017485770844115e+02 -1.018094673966629e+02 -1.018703838313761e+02 -1.019313263923028e+02 -1.019922951782496e+02 - -1.020532902664119e+02 -1.021143115524854e+02 -1.021753589342455e+02 -1.022364324992857e+02 -1.022975323519374e+02 - -1.023586584736673e+02 -1.024198108268543e+02 -1.024809894203941e+02 -1.025421942728475e+02 -1.026034253949216e+02 - -1.026646827901934e+02 -1.027259664415750e+02 -1.027872763473731e+02 -1.028486125881369e+02 -1.029099752254547e+02 - -1.029713641628286e+02 -1.030327793161952e+02 -1.030942208093169e+02 -1.031556887637190e+02 -1.032171830841550e+02 - -1.032787036718354e+02 -1.033402506305696e+02 -1.034018240681317e+02 -1.034634239055545e+02 -1.035250500515010e+02 - -1.035867025518952e+02 -1.036483814821213e+02 -1.037100868981441e+02 -1.037718188237329e+02 -1.038335771732939e+02 - -1.038953618747522e+02 -1.039571730194689e+02 -1.040190107055651e+02 -1.040808748947658e+02 -1.041427655331822e+02 - -1.042046826408667e+02 -1.042666262524425e+02 -1.043285963868752e+02 -1.043905930564436e+02 -1.044526162623378e+02 - -1.045146660069125e+02 -1.045767423082721e+02 -1.046388451777543e+02 -1.047009745838822e+02 -1.047631305085241e+02 - -1.048253130297424e+02 -1.048875222165416e+02 -1.049497580055002e+02 -1.050120203310284e+02 -1.050743092512860e+02 - -1.051366248384456e+02 -1.051989670969791e+02 -1.052613360137520e+02 -1.053237315729033e+02 -1.053861537661844e+02 - -1.054486026185219e+02 -1.055110781583045e+02 -1.055735803945944e+02 -1.056361093274371e+02 -1.056986649401382e+02 - -1.057612472323176e+02 -1.058238562855892e+02 -1.058864921618116e+02 -1.059491547618286e+02 -1.060118440001799e+02 - -1.060745600072047e+02 -1.061373029070868e+02 -1.062000725835928e+02 -1.062628689188559e+02 -1.063256920288941e+02 - -1.063885420424685e+02 -1.064514189054312e+02 -1.065143225392365e+02 -1.065772529506575e+02 -1.066402101774261e+02 - -1.067031942957903e+02 -1.067662053568374e+02 -1.068292432724951e+02 -1.068923079625714e+02 -1.069553995175528e+02 - -1.070185180380394e+02 -1.070816634944072e+02 -1.071448358336418e+02 -1.072080350393896e+02 -1.072712611247882e+02 - -1.073345141842783e+02 -1.073977942922143e+02 -1.074611013613008e+02 -1.075244353055826e+02 -1.075877962061142e+02 - -1.076511841502191e+02 -1.077145990832866e+02 -1.077780409492339e+02 -1.078415098280245e+02 -1.079050057992970e+02 - -1.079685288053471e+02 -1.080320787786834e+02 -1.080956557500093e+02 -1.081592597729443e+02 -1.082228908945775e+02 - -1.082865491424036e+02 -1.083502344720692e+02 -1.084139468448718e+02 -1.084776863165616e+02 -1.085414529440200e+02 - -1.086052466942038e+02 -1.086690675238350e+02 -1.087329154386204e+02 -1.087967904674474e+02 -1.088606926829425e+02 - -1.089246221377382e+02 -1.089885787607543e+02 -1.090525624876805e+02 -1.091165734050004e+02 -1.091806115963225e+02 - -1.092446769829633e+02 -1.093087694909110e+02 -1.093728892271333e+02 -1.094370362953419e+02 -1.095012106052476e+02 - -1.095654120623545e+02 -1.096296407493415e+02 -1.096938967647426e+02 -1.097581800933404e+02 -1.098224906984946e+02 - -1.098868285716250e+02 -1.099511937236656e+02 -1.100155862155477e+02 -1.100800060933800e+02 -1.101444532939841e+02 - -1.102089277564002e+02 -1.102734295378303e+02 -1.103379587096266e+02 -1.104025152815812e+02 -1.104670992426730e+02 - -1.105317105601886e+02 -1.105963492199813e+02 -1.106610153038629e+02 -1.107257088820756e+02 -1.107904298826226e+02 - -1.108551782361634e+02 -1.109199540262203e+02 -1.109847573373186e+02 -1.110495881051325e+02 -1.111144462586115e+02 - -1.111793318486534e+02 -1.112442449476576e+02 -1.113091855920787e+02 -1.113741537899001e+02 -1.114391494711626e+02 - -1.115041725824562e+02 -1.115692232145109e+02 -1.116343014623147e+02 -1.116994072937479e+02 -1.117645406555522e+02 - -1.118297015370191e+02 -1.118948899532702e+02 -1.119601059801944e+02 -1.120253496750247e+02 -1.120906209596036e+02 - -1.121559197660155e+02 -1.122212462027017e+02 -1.122866003728487e+02 -1.123519821822644e+02 -1.124173915349786e+02 - -1.124828285252852e+02 -1.125482932599049e+02 -1.126137857050017e+02 -1.126793058037530e+02 -1.127448535479451e+02 - -1.128104289543148e+02 -1.128760320907921e+02 -1.129416630123176e+02 -1.130073216706816e+02 -1.130730080183262e+02 - -1.131387221134510e+02 -1.132044640167948e+02 -1.132702336934948e+02 -1.133360310978225e+02 -1.134018562361866e+02 - -1.134677091387784e+02 -1.135335898787815e+02 -1.135994985091588e+02 -1.136654349589990e+02 -1.137313991629182e+02 - -1.137973912015162e+02 -1.138634111582333e+02 -1.139294589818884e+02 -1.139955346168527e+02 -1.140616381243277e+02 - -1.141277695680233e+02 -1.141939289048548e+02 -1.142601160860919e+02 -1.143263311472162e+02 -1.143925741390390e+02 - -1.144588450894802e+02 -1.145251440101338e+02 -1.145914708701818e+02 -1.146578256494022e+02 -1.147242084123678e+02 - -1.147906192149256e+02 -1.148570579932248e+02 -1.149235246826633e+02 -1.149900193353325e+02 -1.150565420227369e+02 - -1.151230927773426e+02 -1.151896716067799e+02 -1.152562784583746e+02 -1.153229132947855e+02 -1.153895762003063e+02 - -1.154562672526404e+02 -1.155229863814943e+02 -1.155897335150450e+02 -1.156565087233475e+02 -1.157233120892246e+02 - -1.157901436046917e+02 -1.158570032371645e+02 -1.159238909464663e+02 -1.159908067231330e+02 -1.160577506881430e+02 - -1.161247229415995e+02 -1.161917233696630e+02 -1.162587518588770e+02 -1.163258085112608e+02 -1.163928934406831e+02 - -1.164600065929374e+02 -1.165271479034755e+02 -1.165943174344564e+02 -1.166615152526160e+02 -1.167287413162901e+02 - -1.167959955757904e+02 -1.168632780577301e+02 -1.169305888112216e+02 -1.169979278990717e+02 -1.170652953548001e+02 - -1.171326910810820e+02 -1.172001149975291e+02 -1.172675672223445e+02 -1.173350478778825e+02 -1.174025569045121e+02 - -1.174700942215011e+02 -1.175376598456954e+02 -1.176052538191002e+02 -1.176728761867799e+02 -1.177405269796691e+02 - -1.178082061691247e+02 -1.178759137299273e+02 -1.179436497101298e+02 -1.180114141509050e+02 -1.180792069926326e+02 - -1.181470281872303e+02 -1.182148778335583e+02 -1.182827560287664e+02 -1.183506627162192e+02 -1.184185978220269e+02 - -1.184865613570652e+02 -1.185545533602401e+02 -1.186225738978121e+02 -1.186906230193939e+02 -1.187587006806511e+02 - -1.188268068350639e+02 -1.188949415213182e+02 -1.189631047837780e+02 -1.190312966043158e+02 -1.190995169567162e+02 - -1.191677658449030e+02 -1.192360432941998e+02 -1.193043493853908e+02 -1.193726841751893e+02 -1.194410475685670e+02 - -1.195094394794060e+02 -1.195778600089746e+02 -1.196463092648311e+02 -1.197147871923100e+02 -1.197832937276135e+02 - -1.198518289326376e+02 -1.199203928745778e+02 -1.199889855161324e+02 -1.200576068078755e+02 -1.201262567563797e+02 - -1.201949353935382e+02 -1.202636427965272e+02 -1.203323790196208e+02 -1.204011439802014e+02 -1.204699376081542e+02 - -1.205387600202684e+02 -1.206076113241917e+02 -1.206764914041025e+02 -1.207454001431820e+02 -1.208143376440890e+02 - -1.208833040296615e+02 -1.209522992839752e+02 -1.210213233653680e+02 -1.210903762679893e+02 -1.211594580022500e+02 - -1.212285686077949e+02 -1.212977081155049e+02 -1.213668764919694e+02 -1.214360737100132e+02 -1.215052998316942e+02 - -1.215745549154533e+02 -1.216438389160294e+02 -1.217131517838345e+02 -1.217824935556734e+02 -1.218518642837182e+02 - -1.219212639952166e+02 -1.219906927020717e+02 -1.220601503797327e+02 -1.221296370078328e+02 -1.221991526191948e+02 - -1.222686972509000e+02 -1.223382709038720e+02 -1.224078735702578e+02 -1.224775052432531e+02 -1.225471659287695e+02 - -1.226168556825330e+02 -1.226865745477072e+02 -1.227563224673916e+02 -1.228260993926653e+02 -1.228959054065903e+02 - -1.229657405910973e+02 -1.230356048916106e+02 -1.231054982500379e+02 -1.231754207307278e+02 -1.232453724007864e+02 - -1.233153532159101e+02 -1.233853631242201e+02 -1.234554021549459e+02 -1.235254703591199e+02 -1.235955677938801e+02 - -1.236656944915691e+02 -1.237358503792446e+02 -1.238060353939673e+02 -1.238762496180971e+02 -1.239464931371069e+02 - -1.240167659036240e+02 -1.240870678602586e+02 -1.241573990423949e+02 -1.242277595040581e+02 -1.242981492810638e+02 - -1.243685683872523e+02 -1.244390167667736e+02 -1.245094943779347e+02 -1.245800013053605e+02 -1.246505376299316e+02 - -1.247211032912332e+02 -1.247916982296097e+02 -1.248623225297382e+02 -1.249329762770640e+02 -1.250036594157741e+02 - -1.250743718736609e+02 -1.251451136541969e+02 -1.252158847947410e+02 -1.252866853925174e+02 -1.253575155184925e+02 - -1.254283750787370e+02 -1.254992639825418e+02 -1.255701823169751e+02 -1.256411301759969e+02 -1.257121075033584e+02 - -1.257831142369608e+02 -1.258541504415142e+02 -1.259252161922362e+02 -1.259963114795672e+02 -1.260674362758903e+02 - -1.261385905661348e+02 -1.262097743537985e+02 -1.262809877041053e+02 -1.263522306696565e+02 -1.264235031908370e+02 - -1.264948052148923e+02 -1.265661368287249e+02 -1.266374981169807e+02 -1.267088890156212e+02 -1.267803094502130e+02 - -1.268517594534262e+02 -1.269232390831601e+02 -1.269947483911282e+02 -1.270662874069690e+02 -1.271378560782095e+02 - -1.272094543594662e+02 -1.272810823158284e+02 -1.273527400123002e+02 -1.274244274030747e+02 -1.274961444355319e+02 - -1.275678911406106e+02 -1.276396675704015e+02 -1.277114737780431e+02 -1.277833097950603e+02 -1.278551755654751e+02 - -1.279270710424012e+02 -1.279989963028243e+02 -1.280709514152536e+02 -1.281429362904217e+02 -1.282149508513121e+02 - -1.282869952276877e+02 -1.283590695463467e+02 -1.284311737154509e+02 -1.285033076302067e+02 -1.285754713526335e+02 - -1.286476649682441e+02 -1.287198884897120e+02 -1.287921419051992e+02 -1.288644251776617e+02 -1.289367382880697e+02 - -1.290090813146567e+02 -1.290814543319980e+02 -1.291538573027727e+02 -1.292262901737162e+02 -1.292987529396840e+02 - -1.293712456190937e+02 -1.294437682764910e+02 -1.295163209673579e+02 -1.295889036647941e+02 -1.296615163353197e+02 - -1.297341590015173e+02 -1.298068316903185e+02 -1.298795343899871e+02 -1.299522670904091e+02 -1.300250298266263e+02 - -1.300978226354063e+02 -1.301706455152632e+02 -1.302434984561237e+02 -1.303163814518184e+02 -1.303892945098205e+02 - -1.304622376882688e+02 -1.305352110313897e+02 -1.306082144770936e+02 -1.306812479731976e+02 -1.307543116134598e+02 - -1.308274054850011e+02 -1.309005295024521e+02 -1.309736835845235e+02 -1.310468678387340e+02 -1.311200823754845e+02 - -1.311933271278942e+02 -1.312666020134129e+02 -1.313399070640916e+02 -1.314132423401880e+02 -1.314866079001839e+02 - -1.315600037753056e+02 -1.316334298895329e+02 -1.317068861777292e+02 -1.317803727255405e+02 -1.318538896215189e+02 - -1.319274368150577e+02 -1.320010142454794e+02 -1.320746219509807e+02 -1.321482599879661e+02 -1.322219283867981e+02 - -1.322956271602158e+02 -1.323693562765047e+02 -1.324431157110688e+02 -1.325169055122373e+02 -1.325907257242561e+02 - -1.326645763021127e+02 -1.327384572099461e+02 -1.328123685377604e+02 -1.328863103680995e+02 -1.329602826278048e+02 - -1.330342852393407e+02 -1.331083182633673e+02 -1.331823817787306e+02 -1.332564757988239e+02 -1.333306003141445e+02 - -1.334047552890586e+02 -1.334789407033280e+02 -1.335531566244299e+02 -1.336274031130300e+02 -1.337016801148342e+02 - -1.337759875748336e+02 -1.338503255501201e+02 -1.339246941130952e+02 -1.339990932852997e+02 -1.340735230609586e+02 - -1.341479833758948e+02 -1.342224741891434e+02 -1.342969956109889e+02 -1.343715477431406e+02 -1.344461305017541e+02 - -1.345207438015131e+02 -1.345953877367626e+02 -1.346700624038786e+02 -1.347447677276981e+02 -1.348195036263442e+02 - -1.348942701626209e+02 -1.349690674171868e+02 -1.350438953974369e+02 -1.351187540921076e+02 -1.351936434885642e+02 - -1.352685635848754e+02 -1.353435144232942e+02 -1.354184960414874e+02 -1.354935084145923e+02 -1.355685515128237e+02 - -1.356436253492364e+02 -1.357187299541088e+02 -1.357938653837732e+02 -1.358690316768758e+02 -1.359442287752637e+02 - -1.360194566279880e+02 -1.360947153097144e+02 -1.361700048911278e+02 -1.362453253013760e+02 -1.363206764782614e+02 - -1.363960585357406e+02 -1.364714715821978e+02 -1.365469155275740e+02 -1.366223902703805e+02 -1.366978958618521e+02 - -1.367734323848502e+02 -1.368489998960226e+02 -1.369245984210613e+02 -1.370002278880492e+02 -1.370758882331093e+02 - -1.371515795221331e+02 -1.372273018270698e+02 -1.373030551143317e+02 -1.373788393429953e+02 -1.374546545483291e+02 - -1.375305007816427e+02 -1.376063780822184e+02 -1.376822864668756e+02 -1.377582258746108e+02 -1.378341962588316e+02 - -1.379101977084133e+02 -1.379862303093919e+02 -1.380622940009784e+02 -1.381383887192652e+02 -1.382145145346940e+02 - -1.382906715205862e+02 -1.383668596274320e+02 -1.384430787972570e+02 -1.385193290610606e+02 -1.385956104734610e+02 - -1.386719230945808e+02 -1.387482669582360e+02 -1.388246419875133e+02 -1.389010481148665e+02 -1.389774854209464e+02 - -1.390539539951986e+02 -1.391304538140523e+02 -1.392069848343242e+02 -1.392835470473980e+02 -1.393601404693719e+02 - -1.394367651806349e+02 -1.395134212422815e+02 -1.395901085739362e+02 -1.396668271002043e+02 -1.397435769070855e+02 - -1.398203580874878e+02 -1.398971706005607e+02 -1.399740143977720e+02 -1.400508895336226e+02 -1.401277960614956e+02 - -1.402047339272718e+02 -1.402817030764181e+02 -1.403587035602461e+02 -1.404357354502877e+02 -1.405127987931110e+02 - -1.405898936026113e+02 -1.406670197869564e+02 -1.407441772794584e+02 -1.408213662197336e+02 -1.408985867371466e+02 - -1.409758387137537e+02 -1.410531220224061e+02 -1.411304367464428e+02 -1.412077829961380e+02 -1.412851607790223e+02 - -1.413625700771281e+02 -1.414400108732392e+02 -1.415174831646232e+02 -1.415949870057306e+02 -1.416725224388105e+02 - -1.417500894001226e+02 -1.418276878351835e+02 -1.419053178325258e+02 -1.419829794809226e+02 -1.420606727270934e+02 - -1.421383975074728e+02 -1.422161538594082e+02 -1.422939418408956e+02 -1.423717614916131e+02 -1.424496128273150e+02 - -1.425274957863782e+02 -1.426054103213069e+02 -1.426833565184944e+02 -1.427613344645970e+02 -1.428393441134355e+02 - -1.429173854035838e+02 -1.429954583454632e+02 -1.430735629773860e+02 -1.431516993773805e+02 -1.432298676007922e+02 - -1.433080675725197e+02 -1.433862992191345e+02 -1.434645626043482e+02 -1.435428578032951e+02 -1.436211847996638e+02 - -1.436995435672099e+02 -1.437779341314036e+02 -1.438563565210897e+02 -1.439348107268960e+02 -1.440132967358192e+02 - -1.440918145585468e+02 -1.441703642214681e+02 -1.442489457900865e+02 -1.443275593072134e+02 -1.444062046857781e+02 - -1.444848818522611e+02 -1.445635909172288e+02 -1.446423319927847e+02 -1.447211050130976e+02 -1.447999098925679e+02 - -1.448787466444589e+02 -1.449576153140356e+02 -1.450365159757091e+02 -1.451154486823820e+02 -1.451944133717774e+02 - -1.452734099863848e+02 -1.453524386029381e+02 -1.454314992962476e+02 -1.455105919991844e+02 -1.455897166474813e+02 - -1.456688733302556e+02 -1.457480621396693e+02 -1.458272830266799e+02 -1.459065359271370e+02 -1.459858208576615e+02 - -1.460651378591126e+02 -1.461444869885314e+02 -1.462238682831965e+02 -1.463032816851561e+02 -1.463827271416525e+02 - -1.464622047159361e+02 -1.465417144784923e+02 -1.466212564127396e+02 -1.467008304928943e+02 -1.467804367434297e+02 - -1.468600751934606e+02 -1.469397458404120e+02 -1.470194486722770e+02 -1.470991836710121e+02 -1.471789508433917e+02 - -1.472587503015001e+02 -1.473385821300154e+02 -1.474184461986837e+02 -1.474983423870870e+02 -1.475782708290815e+02 - -1.476582316674545e+02 -1.477382248264445e+02 -1.478182502096616e+02 -1.478983078567520e+02 -1.479783978350921e+02 - -1.480585201869469e+02 -1.481386749269736e+02 -1.482188619845118e+02 -1.482990813088785e+02 -1.483793330146163e+02 - -1.484596172099193e+02 -1.485399338123612e+02 -1.486202827323657e+02 -1.487006640423751e+02 -1.487810778248495e+02 - -1.488615240403001e+02 -1.489420026412511e+02 -1.490225136702235e+02 -1.491030571832025e+02 -1.491836332000337e+02 - -1.492642417202360e+02 -1.493448826981615e+02 -1.494255561054278e+02 -1.495062620278810e+02 -1.495870005487025e+02 - -1.496677716261896e+02 -1.497485751994623e+02 -1.498294112558179e+02 -1.499102798158717e+02 -1.499911809853331e+02 - -1.500721148441144e+02 -1.501530812838450e+02 -1.502340802026938e+02 -1.503151117132690e+02 -1.503961759364751e+02 - -1.504772728119622e+02 -1.505584022645880e+02 -1.506395643412949e+02 -1.507207591024668e+02 -1.508019865401696e+02 - -1.508832466324269e+02 -1.509645393694111e+02 -1.510458647628492e+02 -1.511272228985386e+02 -1.512086138412552e+02 - -1.512900374976176e+02 -1.513714937855876e+02 -1.514529828266537e+02 -1.515345047392310e+02 -1.516160594259147e+02 - -1.516976467776822e+02 -1.517792668548592e+02 -1.518609197460578e+02 -1.519426054836894e+02 -1.520243240750476e+02 - -1.521060754831553e+02 -1.521878596792744e+02 -1.522696767118938e+02 -1.523515266305248e+02 -1.524334094115421e+02 - -1.525153250314230e+02 -1.525972735401888e+02 -1.526792549864990e+02 -1.527612693400200e+02 -1.528433165631959e+02 - -1.529253966685747e+02 -1.530075096900777e+02 -1.530896556970147e+02 -1.531718347321965e+02 -1.532540466970516e+02 - -1.533362915133235e+02 -1.534185693253995e+02 -1.535008802693854e+02 -1.535832242256197e+02 -1.536656010621809e+02 - -1.537480108538752e+02 -1.538304537113657e+02 -1.539129296820158e+02 -1.539954387715506e+02 -1.540779808824423e+02 - -1.541605559457948e+02 -1.542431641104905e+02 -1.543258055115917e+02 -1.544084800111010e+02 -1.544911874726015e+02 - -1.545739280390565e+02 -1.546567018609975e+02 -1.547395088398511e+02 -1.548223488576198e+02 -1.549052219677139e+02 - -1.549881282595875e+02 -1.550710677954614e+02 -1.551540406026988e+02 -1.552370465964632e+02 -1.553200857053796e+02 - -1.554031580241178e+02 -1.554862636500489e+02 -1.555694025253043e+02 -1.556525745801794e+02 -1.557357798528659e+02 - -1.558190184045264e+02 -1.559022902803117e+02 -1.559855954979769e+02 -1.560689339817060e+02 -1.561523056771075e+02 - -1.562357107090587e+02 -1.563191491909100e+02 -1.564026210106382e+02 -1.564861260558312e+02 -1.565696644378976e+02 - -1.566532362813955e+02 -1.567368415396626e+02 -1.568204801387562e+02 -1.569041520668287e+02 -1.569878573487146e+02 - -1.570715960938785e+02 -1.571553683828581e+02 -1.572391740958522e+02 -1.573230131265335e+02 -1.574068856228085e+02 - -1.574907917295132e+02 -1.575747313249683e+02 -1.576587042737324e+02 -1.577427106518309e+02 -1.578267505715277e+02 - -1.579108240785769e+02 -1.579949311783184e+02 -1.580790717809458e+02 -1.581632458187553e+02 -1.582474534075981e+02 - -1.583316946623155e+02 -1.584159695101536e+02 -1.585002778727259e+02 -1.585846198367120e+02 -1.586689954874005e+02 - -1.587534047394542e+02 -1.588378475061590e+02 -1.589223238659185e+02 -1.590068339195322e+02 -1.590913776922658e+02 - -1.591759551748261e+02 -1.592605662952183e+02 -1.593452110061037e+02 -1.594298894214712e+02 -1.595146016508511e+02 - -1.595993476246111e+02 -1.596841272537272e+02 -1.597689405507699e+02 -1.598537875632453e+02 -1.599386683768111e+02 - -1.600235830481832e+02 -1.601085314801616e+02 -1.601935135899282e+02 -1.602785295061083e+02 -1.603635793509372e+02 - -1.604486630096468e+02 -1.605337803660765e+02 -1.606189315354990e+02 -1.607041166452176e+02 -1.607893356392255e+02 - -1.608745884397152e+02 -1.609598750649831e+02 -1.610451955612870e+02 -1.611305499906227e+02 -1.612159383917271e+02 - -1.613013606945609e+02 -1.613868168398436e+02 -1.614723069201057e+02 -1.615578310304217e+02 -1.616433891242326e+02 - -1.617289811339727e+02 -1.618146070496823e+02 -1.619002668955830e+02 -1.619859607750138e+02 -1.620716887676450e+02 - -1.621574507793529e+02 -1.622432467219253e+02 -1.623290767045893e+02 -1.624149408340039e+02 -1.625008390091176e+02 - -1.625867711331680e+02 -1.626727373342588e+02 -1.627587377384768e+02 -1.628447722389764e+02 -1.629308407201184e+02 - -1.630169432640222e+02 -1.631030799800713e+02 -1.631892508889492e+02 -1.632754559784962e+02 -1.633616951938801e+02 - -1.634479685044198e+02 -1.635342760187116e+02 -1.636206178291233e+02 -1.637069938238325e+02 -1.637934038942077e+02 - -1.638798481485683e+02 -1.639663267112721e+02 -1.640528395538795e+02 -1.641393866180353e+02 -1.642259678785196e+02 - -1.643125833411851e+02 -1.643992331030405e+02 -1.644859172470150e+02 -1.645726357085657e+02 -1.646593884180614e+02 - -1.647461754329907e+02 -1.648329968179324e+02 -1.649198525387065e+02 -1.650067425502886e+02 -1.650936668630355e+02 - -1.651806255134507e+02 -1.652676185872448e+02 -1.653546461444497e+02 -1.654417080931755e+02 -1.655288043499995e+02 - -1.656159350172886e+02 -1.657031001994683e+02 -1.657902998234105e+02 -1.658775338117127e+02 -1.659648022474274e+02 - -1.660521052162188e+02 -1.661394426537408e+02 -1.662268144894047e+02 -1.663142207776613e+02 -1.664016615975541e+02 - -1.664891370014617e+02 -1.665766470055737e+02 -1.666641915079906e+02 -1.667517704334961e+02 -1.668393839316945e+02 - -1.669270321420214e+02 -1.670147149384157e+02 -1.671024321837371e+02 -1.671901839620226e+02 -1.672779703889409e+02 - -1.673657914855093e+02 -1.674536472385115e+02 -1.675415375924466e+02 -1.676294625158688e+02 -1.677174221158364e+02 - -1.678054164853866e+02 -1.678934455229663e+02 -1.679815091339810e+02 -1.680696074462591e+02 -1.681577405863894e+02 - -1.682459084535819e+02 -1.683341109324726e+02 -1.684223480767776e+02 -1.685106199767677e+02 -1.685989266998525e+02 - -1.686872682758898e+02 -1.687756446073924e+02 -1.688640556163956e+02 -1.689525014303699e+02 -1.690409821718389e+02 - -1.691294977381033e+02 -1.692180480141565e+02 -1.693066330609834e+02 -1.693952529706734e+02 -1.694839077837423e+02 - -1.695725975104607e+02 -1.696613220916933e+02 -1.697500814887782e+02 -1.698388758143547e+02 -1.699277051650943e+02 - -1.700165694224996e+02 -1.701054684738952e+02 -1.701944024450633e+02 -1.702833714670375e+02 -1.703723754534025e+02 - -1.704614143033400e+02 -1.705504880758685e+02 -1.706395968591658e+02 -1.707287406982126e+02 -1.708179196055015e+02 - -1.709071335067704e+02 -1.709963823462651e+02 -1.710856662290167e+02 -1.711749852543236e+02 -1.712643393377691e+02 - -1.713537283867857e+02 -1.714431524599174e+02 -1.715326116432521e+02 -1.716221059819435e+02 -1.717116354891412e+02 - -1.718012000909151e+02 -1.718907997312464e+02 -1.719804345128430e+02 -1.720701045346718e+02 -1.721598097220100e+02 - -1.722495499971131e+02 -1.723393254438396e+02 -1.724291361494486e+02 -1.725189820532021e+02 -1.726088630837053e+02 - -1.726987792749333e+02 -1.727887306891670e+02 -1.728787173965418e+02 -1.729687394350333e+02 -1.730587967061244e+02 - -1.731488891286860e+02 -1.732390168276344e+02 -1.733291799265234e+02 -1.734193783374131e+02 -1.735096119603506e+02 - -1.735998808588243e+02 -1.736901851222248e+02 -1.737805247801124e+02 -1.738708998286339e+02 -1.739613101901119e+02 - -1.740517558114003e+02 -1.741422368113012e+02 -1.742327533050288e+02 -1.743233052214973e+02 -1.744138924793676e+02 - -1.745045151425876e+02 -1.745951732822802e+02 -1.746858668529805e+02 -1.747765958032038e+02 -1.748673601739718e+02 - -1.749581600245709e+02 -1.750489953948396e+02 -1.751398663036498e+02 -1.752307727054541e+02 -1.753217145616989e+02 - -1.754126919262226e+02 -1.755037048571098e+02 -1.755947533370347e+02 -1.756858373371216e+02 -1.757769568577038e+02 - -1.758681119173357e+02 -1.759593025782490e+02 -1.760505288876894e+02 -1.761417907892832e+02 -1.762330882344909e+02 - -1.763244213097290e+02 -1.764157900964081e+02 -1.765071945209611e+02 -1.765986345094344e+02 -1.766901101413071e+02 - -1.767816215026837e+02 -1.768731685527375e+02 -1.769647512369523e+02 -1.770563695729838e+02 -1.771480236027573e+02 - -1.772397133931058e+02 -1.773314389867134e+02 -1.774232003047593e+02 -1.775149972814722e+02 -1.776068300247813e+02 - -1.776986986385443e+02 -1.777906030366335e+02 -1.778825431235826e+02 -1.779745189565556e+02 -1.780665306226855e+02 - -1.781585781763529e+02 -1.782506616334199e+02 -1.783427808884287e+02 -1.784349358629673e+02 -1.785271267081259e+02 - -1.786193535668995e+02 -1.787116163204012e+02 -1.788039148425030e+02 -1.788962492399977e+02 -1.789886196318098e+02 - -1.790810259524725e+02 -1.791734681201561e+02 -1.792659461719689e+02 -1.793584601742520e+02 -1.794510101913400e+02 - -1.795435962594126e+02 -1.796362183040394e+02 -1.797288762617232e+02 -1.798215702233099e+02 -1.799143002757676e+02 - -1.800070663362093e+02 -1.800998683262517e+02 -1.801927063553792e+02 -1.802855805315161e+02 -1.803784907684791e+02 - -1.804714369692463e+02 -1.805644191875481e+02 -1.806574375103104e+02 -1.807504920064915e+02 -1.808435827084130e+02 - -1.809367095198169e+02 -1.810298723599504e+02 -1.811230713386593e+02 -1.812163065647390e+02 -1.813095779521854e+02 - -1.814028854036152e+02 -1.814962289709267e+02 -1.815896087407728e+02 -1.816830247895420e+02 -1.817764771515762e+02 - -1.818699657032943e+02 -1.819634903439186e+02 -1.820570512218083e+02 -1.821506484855823e+02 -1.822442820357622e+02 - -1.823379517614509e+02 -1.824316577541746e+02 -1.825254001134493e+02 -1.826191787683301e+02 -1.827129936397535e+02 - -1.828068447866412e+02 -1.829007322929544e+02 -1.829946562048259e+02 -1.830886165373395e+02 -1.831826132192083e+02 - -1.832766461922778e+02 -1.833707155372913e+02 -1.834648213380734e+02 -1.835589635518759e+02 -1.836531421229175e+02 - -1.837473570698571e+02 -1.838416084358642e+02 -1.839358962877114e+02 -1.840302206684350e+02 -1.841245815025237e+02 - -1.842189787235884e+02 -1.843134124202761e+02 -1.844078826806361e+02 -1.845023894352911e+02 -1.845969326205561e+02 - -1.846915123529413e+02 -1.847861287393624e+02 -1.848807816681596e+02 -1.849754710227848e+02 -1.850701968857076e+02 - -1.851649593688754e+02 -1.852597585031284e+02 -1.853545942804591e+02 -1.854494666185751e+02 -1.855443754618861e+02 - -1.856393209358935e+02 -1.857343031604275e+02 -1.858293220515437e+02 -1.859243775087027e+02 -1.860194695687597e+02 - -1.861145983033516e+02 -1.862097637858479e+02 -1.863049660540466e+02 -1.864002050017272e+02 -1.864954805431744e+02 - -1.865907928187129e+02 -1.866861419596013e+02 -1.867815278347963e+02 -1.868769503164351e+02 -1.869724095516791e+02 - -1.870679056966096e+02 -1.871634386679672e+02 -1.872590083560524e+02 -1.873546147847470e+02 -1.874502580123688e+02 - -1.875459381013990e+02 -1.876416550903780e+02 -1.877374089179168e+02 -1.878331995340542e+02 -1.879290270344656e+02 - -1.880248915055781e+02 -1.881207928511883e+02 -1.882167309755823e+02 -1.883127059676341e+02 -1.884087179360091e+02 - -1.885047668839511e+02 -1.886008527852007e+02 -1.886969756009047e+02 -1.887931353152428e+02 -1.888893320171184e+02 - -1.889855657829229e+02 -1.890818365342772e+02 -1.891781441947396e+02 -1.892744888503877e+02 -1.893708705921393e+02 - -1.894672893677523e+02 -1.895637451161106e+02 -1.896602378837592e+02 -1.897567677352667e+02 -1.898533346996371e+02 - -1.899499387807097e+02 -1.900465799172331e+02 -1.901432580674921e+02 -1.902399733330072e+02 -1.903367258125687e+02 - -1.904335154508099e+02 -1.905303421711713e+02 -1.906272059664800e+02 -1.907241068668330e+02 -1.908210449820209e+02 - -1.909180203947948e+02 -1.910150330000556e+02 -1.911120827002041e+02 -1.912091696154924e+02 -1.913062938635582e+02 - -1.914034553337337e+02 -1.915006539182285e+02 -1.915978897490666e+02 -1.916951629619544e+02 -1.917924734675151e+02 - -1.918898211586861e+02 -1.919872060827436e+02 -1.920846283161583e+02 -1.921820878978424e+02 -1.922795848438701e+02 - -1.923771191165239e+02 -1.924746906889474e+02 -1.925722996315181e+02 -1.926699460069926e+02 -1.927676297504074e+02 - -1.928653507913461e+02 -1.929631091652971e+02 -1.930609049367203e+02 -1.931587381800568e+02 -1.932566089358633e+02 - -1.933545170991796e+02 -1.934524625825225e+02 -1.935504455138344e+02 -1.936484660231147e+02 -1.937465240331655e+02 - -1.938446194535055e+02 -1.939427523477156e+02 -1.940409227930324e+02 -1.941391307672549e+02 -1.942373762317632e+02 - -1.943356591817002e+02 -1.944339796386271e+02 -1.945323376960147e+02 -1.946307334225392e+02 -1.947291667157886e+02 - -1.948276374816129e+02 -1.949261458299981e+02 -1.950246918758956e+02 -1.951232755499811e+02 -1.952218967672293e+02 - -1.953205555640852e+02 -1.954192520091347e+02 -1.955179861780584e+02 -1.956167581109271e+02 -1.957155676982765e+02 - -1.958144148511486e+02 -1.959132997121442e+02 -1.960122224157670e+02 -1.961111828325720e+02 -1.962101808324193e+02 - -1.963092165463342e+02 -1.964082901163006e+02 -1.965074014669716e+02 -1.966065505047830e+02 -1.967057372806285e+02 - -1.968049618689787e+02 -1.969042242941536e+02 -1.970035245570506e+02 -1.971028626150270e+02 -1.972022384428475e+02 - -1.973016521284466e+02 -1.974011037520065e+02 -1.975005932495305e+02 -1.976001205455443e+02 -1.976996856628438e+02 - -1.977992886519515e+02 -1.978989295760255e+02 -1.979986084767589e+02 -1.980983252973461e+02 -1.981980799861144e+02 - -1.982978726104215e+02 -1.983977032396124e+02 -1.984975718319531e+02 -1.985974783450467e+02 -1.986974228449224e+02 - -1.987974053983538e+02 -1.988974259666649e+02 -1.989974844962869e+02 -1.990975809795281e+02 -1.991977154414513e+02 - -1.992978879922588e+02 -1.993980987169082e+02 -1.994983475142392e+02 -1.995986342853965e+02 -1.996989591268633e+02 - -1.997993221398394e+02 -1.998997232490551e+02 -2.000001623829878e+02 -2.001006396615730e+02 -2.002011551976202e+02 - -2.003017088839768e+02 -2.004023006006677e+02 -2.005029303963877e+02 -2.006035983645368e+02 -2.007043046086661e+02 - -2.008050491826254e+02 -2.009058319313084e+02 -2.010066527248718e+02 -2.011075117434797e+02 -2.012084091672780e+02 - -2.013093448663347e+02 -2.014103186854462e+02 -2.015113306783989e+02 -2.016123809487723e+02 -2.017134695903300e+02 - -2.018145966520298e+02 -2.019157620134241e+02 -2.020169655668574e+02 -2.021182074252480e+02 -2.022194877090834e+02 - -2.023208063485549e+02 -2.024221632682046e+02 -2.025235585602719e+02 -2.026249923196053e+02 -2.027264644837921e+02 - -2.028279749730532e+02 -2.029295237954015e+02 -2.030311109992572e+02 -2.031327367068774e+02 -2.032344010007734e+02 - -2.033361037306376e+02 -2.034378447601810e+02 -2.035396242420057e+02 -2.036414423389593e+02 -2.037432989659801e+02 - -2.038451940079258e+02 -2.039471274772405e+02 -2.040490994323931e+02 -2.041511099883670e+02 -2.042531592234435e+02 - -2.043552470125819e+02 -2.044573732391661e+02 -2.045595380236004e+02 -2.046617414909655e+02 -2.047639835480296e+02 - -2.048662640993485e+02 -2.049685832589404e+02 -2.050709411450770e+02 -2.051733376835843e+02 -2.052757727854042e+02 - -2.053782464943871e+02 -2.054807588829732e+02 -2.055833100050551e+02 -2.056858998827895e+02 -2.057885284299405e+02 - -2.058911955783421e+02 -2.059939014405005e+02 -2.060966461276917e+02 -2.061994295656012e+02 -2.063022516666823e+02 - -2.064051124760526e+02 -2.065080120661920e+02 -2.066109504863692e+02 -2.067139277576765e+02 -2.068169438117121e+02 - -2.069199985973326e+02 -2.070230922219201e+02 -2.071262247789163e+02 -2.072293961474789e+02 -2.073326062201854e+02 - -2.074358551575783e+02 -2.075391431180403e+02 -2.076424699833530e+02 -2.077458356179337e+02 -2.078492400933438e+02 - -2.079526835133251e+02 -2.080561659031989e+02 -2.081596872578975e+02 -2.082632475292167e+02 -2.083668466898186e+02 - -2.084704848389632e+02 -2.085741620623951e+02 -2.086778782651976e+02 -2.087816333480700e+02 -2.088854273748348e+02 - -2.089892604383302e+02 -2.090931325843364e+02 -2.091970438282278e+02 -2.093009941108145e+02 -2.094049833841979e+02 - -2.095090117202067e+02 -2.096130791905716e+02 -2.097171857469022e+02 -2.098213313423286e+02 -2.099255160561849e+02 - -2.100297399619016e+02 -2.101340029830976e+02 -2.102383050403986e+02 -2.103426461922712e+02 -2.104470265253758e+02 - -2.105514461013085e+02 -2.106559049410852e+02 -2.107604029284658e+02 -2.108649399745926e+02 -2.109695162373935e+02 - -2.110741318706494e+02 -2.111787867647689e+02 -2.112834807867834e+02 -2.113882139735869e+02 -2.114929864074473e+02 - -2.115977981822681e+02 -2.117026493533424e+02 -2.118075398098887e+02 -2.119124694556393e+02 -2.120174384184601e+02 - -2.121224468216736e+02 -2.122274945462991e+02 -2.123325814769304e+02 -2.124377077547605e+02 -2.125428735238108e+02 - -2.126480786828185e+02 -2.127533231155498e+02 -2.128586068911697e+02 -2.129639301084739e+02 -2.130692927993837e+02 - -2.131746949622090e+02 -2.132801365276879e+02 -2.133856174488912e+02 -2.134911378357916e+02 -2.135966977951921e+02 - -2.137022972643151e+02 -2.138079361581469e+02 -2.139136144723085e+02 -2.140193322420075e+02 -2.141250895801643e+02 - -2.142308865713384e+02 -2.143367231089345e+02 -2.144425990899214e+02 -2.145485146166798e+02 -2.146544697958461e+02 - -2.147604645456698e+02 -2.148664987887291e+02 -2.149725726533044e+02 -2.150786862586875e+02 -2.151848394825147e+02 - -2.152910321964648e+02 -2.153972644900385e+02 -2.155035364828845e+02 -2.156098481974242e+02 -2.157161996246267e+02 - -2.158225907268823e+02 -2.159290214790141e+02 -2.160354919341570e+02 -2.161420021424622e+02 -2.162485520638355e+02 - -2.163551416576007e+02 -2.164617709709994e+02 -2.165684400663080e+02 -2.166751489780245e+02 -2.167818977145845e+02 - -2.168886862079515e+02 -2.169955144082682e+02 -2.171023824148656e+02 -2.172092903208214e+02 -2.173162380450137e+02 - -2.174232255130703e+02 -2.175302528518165e+02 -2.176373201799158e+02 -2.177444273821862e+02 -2.178515743317612e+02 - -2.179587610888773e+02 -2.180659877532527e+02 -2.181732543954297e+02 -2.182805610486399e+02 -2.183879076260487e+02 - -2.184952940541088e+02 -2.186027204324891e+02 -2.187101868605661e+02 -2.188176932633304e+02 -2.189252395535715e+02 - -2.190328257696591e+02 -2.191404519835346e+02 -2.192481182758485e+02 -2.193558246894080e+02 -2.194635711069396e+02 - -2.195713574321837e+02 -2.196791838130171e+02 -2.197870503917547e+02 -2.198949570443306e+02 -2.200029036478261e+02 - -2.201108903502962e+02 -2.202189173008489e+02 -2.203269843818326e+02 -2.204350914576510e+02 -2.205432385876858e+02 - -2.206514258738742e+02 -2.207596533933995e+02 -2.208679211808499e+02 -2.209762291251867e+02 -2.210845771334710e+02 - -2.211929653307878e+02 -2.213013938407175e+02 -2.214098625627986e+02 -2.215183713969045e+02 -2.216269204682873e+02 - -2.217355099024502e+02 -2.218441396005216e+02 -2.219528094497077e+02 -2.220615195058979e+02 -2.221702698646027e+02 - -2.222790606111339e+02 -2.223878917838657e+02 -2.224967632436199e+02 -2.226056748766821e+02 -2.227146268487432e+02 - -2.228236193240230e+02 -2.229326521814535e+02 -2.230417252803019e+02 -2.231508386864637e+02 -2.232599925050409e+02 - -2.233691867913336e+02 -2.234784215614204e+02 -2.235876967242961e+02 -2.236970122086523e+02 -2.238063681290529e+02 - -2.239157646015454e+02 -2.240252015622403e+02 -2.241346789340316e+02 -2.242441967668838e+02 -2.243537551247286e+02 - -2.244633540002964e+02 -2.245729933685804e+02 -2.246826732048266e+02 -2.247923935126906e+02 -2.249021544092157e+02 - -2.250119559889259e+02 -2.251217981428817e+02 -2.252316807628839e+02 -2.253416039471573e+02 -2.254515678046834e+02 - -2.255615722810486e+02 -2.256716173029860e+02 -2.257817028852108e+02 -2.258918290784169e+02 -2.260019959892315e+02 - -2.261122036854213e+02 -2.262224520233766e+02 -2.263327408802082e+02 -2.264430704272837e+02 -2.265534408332552e+02 - -2.266638519616550e+02 -2.267743036660735e+02 -2.268847960654481e+02 -2.269953292962885e+02 -2.271059033000460e+02 - -2.272165179952407e+02 -2.273271734037251e+02 -2.274378695801794e+02 -2.275486066072624e+02 -2.276593845334010e+02 - -2.277702032421150e+02 -2.278810626343348e+02 -2.279919628455381e+02 -2.281029040172474e+02 -2.282138860806176e+02 - -2.283249089376286e+02 -2.284359725839265e+02 -2.285470770593814e+02 -2.286582224870930e+02 -2.287694089544078e+02 - -2.288806363224278e+02 -2.289919044640359e+02 -2.291032135254801e+02 -2.292145636582007e+02 -2.293259547610424e+02 - -2.294373867252146e+02 -2.295488596639802e+02 -2.296603736910369e+02 -2.297719286997702e+02 -2.298835245768747e+02 - -2.299951614025932e+02 -2.301068392919157e+02 -2.302185583052736e+02 -2.303303184582155e+02 -2.304421196413199e+02 - -2.305539617649887e+02 -2.306658449438852e+02 -2.307777692999738e+02 -2.308897347801602e+02 -2.310017413072381e+02 - -2.311137888826106e+02 -2.312258775426401e+02 -2.313380073849178e+02 -2.314501784790464e+02 -2.315623907214496e+02 - -2.316746440227619e+02 -2.317869385236417e+02 -2.318992743527083e+02 -2.320116513604021e+02 -2.321240694060221e+02 - -2.322365286624793e+02 -2.323490293043759e+02 -2.324615711994689e+02 -2.325741541998047e+02 -2.326867784014305e+02 - -2.327994439322068e+02 -2.329121508032486e+02 -2.330248989898164e+02 -2.331376884404961e+02 -2.332505191272475e+02 - -2.333633911421986e+02 -2.334763045743060e+02 -2.335892593796759e+02 -2.337022554911374e+02 -2.338152928812627e+02 - -2.339283715644559e+02 -2.340414916827054e+02 -2.341546533474617e+02 -2.342678564204413e+02 -2.343811007676228e+02 - -2.344943865217682e+02 -2.346077138212040e+02 -2.347210825597340e+02 -2.348344926295532e+02 -2.349479441609453e+02 - -2.350614372851493e+02 -2.351749718991416e+02 -2.352885478850955e+02 -2.354021653002366e+02 -2.355158242429473e+02 - -2.356295248011875e+02 -2.357432670145577e+02 -2.358570507396431e+02 -2.359708758587992e+02 -2.360847425404777e+02 - -2.361986509531367e+02 -2.363126009791645e+02 -2.364265924750662e+02 -2.365406254798825e+02 -2.366547000814751e+02 - -2.367688163804559e+02 -2.368829744348273e+02 -2.369971741194025e+02 -2.371114153287764e+02 -2.372256982198593e+02 - -2.373400229428812e+02 -2.374543893590377e+02 -2.375687973238754e+02 -2.376832469593778e+02 -2.377977384043928e+02 - -2.379122715987879e+02 -2.380268464580362e+02 -2.381414629990116e+02 -2.382561212769444e+02 -2.383708213990897e+02 - -2.384855634334210e+02 -2.386003472387607e+02 -2.387151726904082e+02 -2.388300399387221e+02 -2.389449491374237e+02 - -2.390599001786255e+02 -2.391748929369255e+02 -2.392899274784697e+02 -2.394050039061344e+02 -2.395201222781684e+02 - -2.396352826134916e+02 -2.397504848183333e+02 -2.398657288168898e+02 -2.399810147179146e+02 -2.400963426277219e+02 - -2.402117124583125e+02 -2.403271241258893e+02 -2.404425777577767e+02 -2.405580734795174e+02 -2.406736111984077e+02 - -2.407891907995794e+02 -2.409048122977546e+02 -2.410204757554728e+02 -2.411361812969551e+02 -2.412519290053517e+02 - -2.413677187378485e+02 -2.414835503650167e+02 -2.415994240369316e+02 -2.417153399089511e+02 -2.418312978780588e+02 - -2.419472978191357e+02 -2.420633397770240e+02 -2.421794238369657e+02 -2.422955500758429e+02 -2.424117185344053e+02 - -2.425279291172331e+02 -2.426441817421263e+02 -2.427604765159341e+02 -2.428768135466203e+02 -2.429931927575585e+02 - -2.431096140668555e+02 -2.432260775561414e+02 -2.433425833145866e+02 -2.434591312980004e+02 -2.435757214497087e+02 - -2.436923537964655e+02 -2.438090283895336e+02 -2.439257452947832e+02 -2.440425045463603e+02 -2.441593060369063e+02 - -2.442761496825792e+02 -2.443930356351059e+02 -2.445099640393889e+02 -2.446269347774639e+02 -2.447439477225602e+02 - -2.448610029755453e+02 -2.449781006544274e+02 -2.450952407181387e+02 -2.452124231032676e+02 -2.453296478161015e+02 - -2.454469148921256e+02 -2.455642244139170e+02 -2.456815764363974e+02 -2.457989708567751e+02 -2.459164075868465e+02 - -2.460338867544718e+02 -2.461514084874868e+02 -2.462689726975661e+02 -2.463865792818051e+02 -2.465042282951439e+02 - -2.466219198202147e+02 -2.467396538925739e+02 -2.468574305187124e+02 -2.469752496359336e+02 -2.470931112029433e+02 - -2.472110153332446e+02 -2.473289621270786e+02 -2.474469514768406e+02 -2.475649832814832e+02 -2.476830576740329e+02 - -2.478011747871381e+02 -2.479193345178656e+02 -2.480375367456449e+02 -2.481557815149384e+02 -2.482740689103307e+02 - -2.483923990118631e+02 -2.485107718618152e+02 -2.486291873559622e+02 -2.487476454083695e+02 -2.488661461527674e+02 - -2.489846897184250e+02 -2.491032759971039e+02 -2.492219048675295e+02 -2.493405763937896e+02 -2.494592906781626e+02 - -2.495780477903268e+02 -2.496968477531592e+02 -2.498156904349301e+02 -2.499345757349562e+02 -2.500535038313474e+02 - -2.501724748933778e+02 -2.502914887761886e+02 -2.504105453266259e+02 -2.505296446724864e+02 -2.506487869586733e+02 - -2.507679721175656e+02 -2.508872000588222e+02 -2.510064708137437e+02 -2.511257844438344e+02 -2.512451410097723e+02 - -2.513645405425343e+02 -2.514839829551193e+02 -2.516034681806881e+02 -2.517229963510282e+02 -2.518425675906852e+02 - -2.519621817966139e+02 -2.520818388494823e+02 -2.522015387924022e+02 -2.523212817096907e+02 -2.524410676880414e+02 - -2.525608967718439e+02 -2.526807688338955e+02 -2.528006837687293e+02 -2.529206417294141e+02 -2.530406428681973e+02 - -2.531606870755077e+02 -2.532807742357317e+02 -2.534009044709059e+02 -2.535210779031462e+02 -2.536412944172385e+02 - -2.537615538911017e+02 -2.538818564125164e+02 -2.540022021028112e+02 -2.541225910076441e+02 -2.542430231270507e+02 - -2.543634983542462e+02 -2.544840166121418e+02 -2.546045780492533e+02 -2.547251828099108e+02 -2.548458307960956e+02 - -2.549665218842466e+02 -2.550872560909815e+02 -2.552080334828205e+02 -2.553288541857174e+02 -2.554497182835964e+02 - -2.555706256328296e+02 -2.556915761009198e+02 -2.558125698274442e+02 -2.559336069560756e+02 -2.560546873747970e+02 - -2.561758109689862e+02 -2.562969778692906e+02 -2.564181882127723e+02 -2.565394419168841e+02 -2.566607388759341e+02 - -2.567820791112567e+02 -2.569034626862424e+02 -2.570248897054782e+02 -2.571463602359873e+02 -2.572678741533426e+02 - -2.573894313462550e+02 -2.575110319474426e+02 -2.576326760938784e+02 -2.577543636955484e+02 -2.578760946446893e+02 - -2.579978689895271e+02 -2.581196868133063e+02 -2.582415481833543e+02 -2.583634531275302e+02 -2.584854015317316e+02 - -2.586073933093156e+02 -2.587294286254374e+02 -2.588515076317444e+02 -2.589736301740566e+02 -2.590957960996737e+02 - -2.592180055676404e+02 -2.593402587446819e+02 -2.594625555165019e+02 -2.595848957490105e+02 -2.597072795099639e+02 - -2.598297069067293e+02 -2.599521780032740e+02 -2.600746928207452e+02 -2.601972512524080e+02 -2.603198532148209e+02 - -2.604424988455961e+02 -2.605651882765137e+02 -2.606879213949725e+02 -2.608106980758151e+02 -2.609335183880386e+02 - -2.610563824372016e+02 -2.611792902809524e+02 -2.613022419394243e+02 -2.614252373306019e+02 -2.615482763897488e+02 - -2.616713592233935e+02 -2.617944859260970e+02 -2.619176563732862e+02 -2.620408704583867e+02 -2.621641283659552e+02 - -2.622874302706103e+02 -2.624107760160917e+02 -2.625341654302978e+02 -2.626575986086381e+02 -2.627810756876698e+02 - -2.629045967010318e+02 -2.630281616427657e+02 -2.631517704514422e+02 -2.632754230861743e+02 -2.633991196437133e+02 - -2.635228602105341e+02 -2.636466446943674e+02 -2.637704729984163e+02 -2.638943451865159e+02 -2.640182613561179e+02 - -2.641422215785110e+02 -2.642662258795402e+02 -2.643902741294400e+02 -2.645143662245587e+02 -2.646385023213122e+02 - -2.647626825745115e+02 -2.648869068724856e+02 -2.650111750962730e+02 -2.651354873642347e+02 -2.652598438005879e+02 - -2.653842443156531e+02 -2.655086888035231e+02 -2.656331773072787e+02 -2.657577099091213e+02 -2.658822866987512e+02 - -2.660069077230897e+02 -2.661315728504449e+02 -2.662562819710931e+02 -2.663810352417937e+02 -2.665058328192844e+02 - -2.666306745937331e+02 -2.667555604333347e+02 -2.668804903849584e+02 -2.670054645383429e+02 -2.671304829760297e+02 - -2.672555457413816e+02 -2.673806527282453e+02 -2.675058038464400e+02 -2.676309992191929e+02 -2.677562389652032e+02 - -2.678815229716541e+02 -2.680068511277727e+02 -2.681322235624782e+02 -2.682576404136338e+02 -2.683831016151858e+02 - -2.685086070756685e+02 -2.686341568058856e+02 -2.687597508516357e+02 -2.688853892964312e+02 -2.690110721950252e+02 - -2.691367994494158e+02 -2.692625709807897e+02 -2.693883869398372e+02 -2.695142474621058e+02 -2.696401523930688e+02 - -2.697661015819900e+02 -2.698920951833660e+02 -2.700181333642693e+02 -2.701442160368443e+02 -2.702703430840482e+02 - -2.703965145270174e+02 -2.705227304331903e+02 -2.706489909170355e+02 -2.707752960482972e+02 -2.709016456707917e+02 - -2.710280396495872e+02 -2.711544781606855e+02 -2.712809613853167e+02 -2.714074892146895e+02 -2.715340615102555e+02 - -2.716606783044584e+02 -2.717873396730564e+02 -2.719140456940721e+02 -2.720407964136753e+02 -2.721675917483545e+02 - -2.722944316245073e+02 -2.724213161378437e+02 -2.725482453844213e+02 -2.726752192923742e+02 -2.728022377909456e+02 - -2.729293009817382e+02 -2.730564089616648e+02 -2.731835616365174e+02 -2.733107589046467e+02 -2.734380008257563e+02 - -2.735652874983575e+02 -2.736926190148396e+02 -2.738199954194386e+02 -2.739474165698984e+02 -2.740748823405867e+02 - -2.742023928588563e+02 -2.743299482670098e+02 -2.744575485141638e+02 -2.745851935229188e+02 -2.747128833029967e+02 - -2.748406178969678e+02 -2.749683973916734e+02 -2.750962218440648e+02 -2.752240911472609e+02 -2.753520052060601e+02 - -2.754799641358123e+02 -2.756079680559450e+02 -2.757360168916492e+02 -2.758641105650285e+02 -2.759922491800748e+02 - -2.761204328366440e+02 -2.762486614361617e+02 -2.763769348745897e+02 -2.765052532244616e+02 -2.766336165883748e+02 - -2.767620250126050e+02 -2.768904785041199e+02 -2.770189769689730e+02 -2.771475203398639e+02 -2.772761087569904e+02 - -2.774047423518460e+02 -2.775334210136085e+02 -2.776621446145333e+02 -2.777909132015001e+02 -2.779197268642361e+02 - -2.780485856892346e+02 -2.781774897218528e+02 -2.783064388461343e+02 -2.784354329669438e+02 -2.785644722337429e+02 - -2.786935567875348e+02 -2.788226864908934e+02 -2.789518612068105e+02 -2.790810810783757e+02 -2.792103462555617e+02 - -2.793396566357773e+02 -2.794690121008859e+02 -2.795984127231330e+02 -2.797278586088501e+02 -2.798573498103315e+02 - -2.799868863353985e+02 -2.801164680680156e+02 -2.802460949220819e+02 -2.803757670550874e+02 -2.805054846206144e+02 - -2.806352475130235e+02 -2.807650555997772e+02 -2.808949088999684e+02 -2.810248074853591e+02 -2.811547514867556e+02 - -2.812847409903677e+02 -2.814147758449749e+02 -2.815448559108459e+02 -2.816749813316353e+02 -2.818051522586102e+02 - -2.819353685901064e+02 -2.820656302199222e+02 -2.821959372766401e+02 -2.823262898869716e+02 -2.824566879353637e+02 - -2.825871312931868e+02 -2.827176200217700e+02 -2.828481542276227e+02 -2.829787340080183e+02 -2.831093594072626e+02 - -2.832400302670260e+02 -2.833707464559445e+02 -2.835015081531469e+02 -2.836323155420096e+02 -2.837631685124079e+02 - -2.838940669226656e+02 -2.840250107984012e+02 -2.841560002155769e+02 -2.842870352842360e+02 -2.844181160721325e+02 - -2.845492424437817e+02 -2.846804142799303e+02 -2.848116317294889e+02 -2.849428949404899e+02 -2.850742037892878e+02 - -2.852055581519247e+02 -2.853369581748677e+02 -2.854684040068092e+02 -2.855998955349205e+02 -2.857314326251873e+02 - -2.858630153203723e+02 -2.859946437114748e+02 -2.861263179056654e+02 -2.862580379663874e+02 -2.863898037660037e+02 - -2.865216151879669e+02 -2.866534723511688e+02 -2.867853753832939e+02 -2.869173242117615e+02 -2.870493187426322e+02 - -2.871813589967982e+02 -2.873134450373917e+02 -2.874455769816758e+02 -2.875777549027032e+02 -2.877099786425546e+02 - -2.878422480619707e+02 -2.879745633273037e+02 -2.881069246090204e+02 -2.882393317884377e+02 -2.883717847366556e+02 - -2.885042835730584e+02 -2.886368284288774e+02 -2.887694192344474e+02 -2.889020558953364e+02 -2.890347384189399e+02 - -2.891674668528066e+02 -2.893002413032724e+02 -2.894330618447220e+02 -2.895659283649483e+02 -2.896988407604515e+02 - -2.898317991491523e+02 -2.899648036558058e+02 -2.900978542110840e+02 -2.902309507220182e+02 -2.903640931951591e+02 - -2.904972816775983e+02 -2.906305162790740e+02 -2.907637970750559e+02 -2.908971239412933e+02 -2.910304967707643e+02 - -2.911639157250792e+02 -2.912973809535366e+02 -2.914308922875549e+02 -2.915644495654761e+02 -2.916980529712119e+02 - -2.918317026983915e+02 -2.919653986339440e+02 -2.920991406314096e+02 -2.922329287174719e+02 -2.923667629702973e+02 - -2.925006435008390e+02 -2.926345703772706e+02 -2.927685434638595e+02 -2.929025626397000e+02 -2.930366280470975e+02 - -2.931707398343328e+02 -2.933048979103752e+02 -2.934391021578708e+02 -2.935733525934834e+02 -2.937076492857184e+02 - -2.938419923764308e+02 -2.939763819565550e+02 -2.941108178399977e+02 -2.942452998623305e+02 -2.943798282228154e+02 - -2.945144031200941e+02 -2.946490243866398e+02 -2.947836918481424e+02 -2.949184056693277e+02 -2.950531660302706e+02 - -2.951879728334102e+02 -2.953228259514730e+02 -2.954577254159683e+02 -2.955926713017622e+02 -2.957276636983648e+02 - -2.958627026572042e+02 -2.959977880627373e+02 -2.961329198152110e+02 -2.962680980450039e+02 -2.964033228802077e+02 - -2.965385942096344e+02 -2.966739119278574e+02 -2.968092761917713e+02 -2.969446871501122e+02 -2.970801446566606e+02 - -2.972156485544735e+02 -2.973511989386669e+02 -2.974867959450954e+02 -2.976224396205114e+02 -2.977581299655766e+02 - -2.978938668856917e+02 -2.980296503111913e+02 -2.981654803674056e+02 -2.983013571739824e+02 -2.984372806328453e+02 - -2.985732506311156e+02 -2.987092672144286e+02 -2.988453304703744e+02 -2.989814404958496e+02 -2.991175973412398e+02 - -2.992538008615809e+02 -2.993900509369414e+02 -2.995263477428711e+02 -2.996626914493826e+02 -2.997990819088619e+02 - -2.999355189707111e+02 -3.000720027900217e+02 -3.002085335269560e+02 -3.003451110562723e+02 -3.004817352353309e+02 - -3.006184061373012e+02 -3.007551238767678e+02 -3.008918885181671e+02 -3.010287000846923e+02 -3.011655584847104e+02 - -3.013024636430795e+02 -3.014394156654455e+02 -3.015764146559894e+02 -3.017134605322491e+02 -3.018505532010304e+02 - -3.019876927128527e+02 -3.021248791518991e+02 -3.022621125932933e+02 -3.023993930706231e+02 -3.025367204603900e+02 - -3.026740946641424e+02 -3.028115158406990e+02 -3.029489841386069e+02 -3.030864994080570e+02 -3.032240615026816e+02 - -3.033616705882347e+02 -3.034993268395738e+02 -3.036370301558538e+02 -3.037747804087723e+02 -3.039125776359002e+02 - -3.040504219146317e+02 -3.041883133157825e+02 -3.043262518737324e+02 -3.044642374836954e+02 -3.046022700638564e+02 - -3.047403497634464e+02 -3.048784767248004e+02 -3.050166508316213e+02 -3.051548719471290e+02 -3.052931401112401e+02 - -3.054314554166776e+02 -3.055698179906950e+02 -3.057082279030724e+02 -3.058466849591645e+02 -3.059851889955948e+02 - -3.061237402384871e+02 -3.062623389075358e+02 -3.064009848072192e+02 -3.065396777363650e+02 -3.066784178864098e+02 - -3.068172054654241e+02 -3.069560403554044e+02 -3.070949224023651e+02 -3.072338516344630e+02 -3.073728281334552e+02 - -3.075118520133569e+02 -3.076509233435525e+02 -3.077900419826468e+02 -3.079292078053290e+02 -3.080684209614084e+02 - -3.082076816048298e+02 -3.083469896309615e+02 -3.084863449149456e+02 -3.086257475095906e+02 -3.087651975081579e+02 - -3.089046949880547e+02 -3.090442399817611e+02 -3.091838323579038e+02 -3.093234720151574e+02 -3.094631591362355e+02 - -3.096028938900603e+02 -3.097426761063483e+02 -3.098825056148365e+02 -3.100223825845469e+02 -3.101623071983122e+02 - -3.103022793549238e+02 -3.104422989228102e+02 -3.105823659329897e+02 -3.107224804626276e+02 -3.108626426108901e+02 - -3.110028524323948e+02 -3.111431097815640e+02 -3.112834145351391e+02 -3.114237668593314e+02 -3.115641669247677e+02 - -3.117046146302696e+02 -3.118451098470761e+02 -3.119856526079039e+02 -3.121262429897644e+02 -3.122668810853719e+02 - -3.124075669478935e+02 -3.125483004566077e+02 -3.126890815070839e+02 -3.128299102339429e+02 -3.129707867704560e+02 - -3.131117110054437e+02 -3.132526828292356e+02 -3.133937023826453e+02 -3.135347698019019e+02 -3.136758849544115e+02 - -3.138170476993112e+02 -3.139582581314797e+02 -3.140995163841689e+02 -3.142408225083815e+02 -3.143821765079714e+02 - -3.145235782804463e+02 -3.146650277504123e+02 -3.148065250572144e+02 -3.149480703283944e+02 -3.150896634295446e+02 - -3.152313042212708e+02 -3.153729928061792e+02 -3.155147293192109e+02 -3.156565137826469e+02 -3.157983461803634e+02 - -3.159402264552761e+02 -3.160821545730877e+02 -3.162241306316100e+02 -3.163661547129774e+02 -3.165082267045055e+02 - -3.166503465083330e+02 -3.167925142807053e+02 -3.169347301718565e+02 -3.170769940538677e+02 -3.172193057829434e+02 - -3.173616654299331e+02 -3.175040731106142e+02 -3.176465289058318e+02 -3.177890328440690e+02 -3.179315847792938e+02 - -3.180741845934695e+02 -3.182168324550577e+02 -3.183595285351408e+02 -3.185022727287870e+02 -3.186450649049847e+02 - -3.187879051044167e+02 -3.189307934072479e+02 -3.190737298798787e+02 -3.192167145562098e+02 -3.193597473539087e+02 - -3.195028282067584e+02 -3.196459572292360e+02 -3.197891345287240e+02 -3.199323600035334e+02 -3.200756335516368e+02 - -3.202189552787263e+02 -3.203623252990410e+02 -3.205057435532916e+02 -3.206492099607363e+02 -3.207927245283494e+02 - -3.209362873029775e+02 -3.210798984032395e+02 -3.212235579095965e+02 -3.213672656781062e+02 -3.215110215776564e+02 - -3.216548257528610e+02 -3.217986783602123e+02 -3.219425793279964e+02 -3.220865285490494e+02 -3.222305260026159e+02 - -3.223745717228416e+02 -3.225186658770672e+02 -3.226628085862362e+02 -3.228069996525048e+02 -3.229512388959131e+02 - -3.230955265268207e+02 -3.232398627556209e+02 -3.233842474025269e+02 -3.235286802821290e+02 -3.236731615767077e+02 - -3.238176914785998e+02 -3.239622698526831e+02 -3.241068965416273e+02 -3.242515716267282e+02 -3.243962952303619e+02 - -3.245410674006047e+02 -3.246858881442026e+02 -3.248307573768830e+02 -3.249756750377737e+02 -3.251206412506237e+02 - -3.252656561247559e+02 -3.254107195271718e+02 -3.255558313340717e+02 -3.257009917007768e+02 -3.258462007853361e+02 - -3.259914584775946e+02 -3.261367646471811e+02 -3.262821193510638e+02 -3.264275226864755e+02 -3.265729747243638e+02 - -3.267184754961565e+02 -3.268640249014856e+02 -3.270096228564299e+02 -3.271552694746495e+02 -3.273009648690628e+02 - -3.274467089520415e+02 -3.275925016223748e+02 -3.277383429250694e+02 -3.278842329472037e+02 -3.280301717979274e+02 - -3.281761595333842e+02 -3.283221959756238e+02 -3.284682809773962e+02 -3.286144147483458e+02 -3.287605974914733e+02 - -3.289068290263132e+02 -3.290531091681708e+02 -3.291994380988984e+02 -3.293458160115122e+02 -3.294922427771376e+02 - -3.296387182388717e+02 -3.297852424495862e+02 -3.299318155124273e+02 -3.300784375218649e+02 -3.302251085265343e+02 - -3.303718284004092e+02 -3.305185970357408e+02 -3.306654145725511e+02 -3.308122811494171e+02 -3.309591966513669e+02 - -3.311061609508276e+02 -3.312531741233722e+02 -3.314002362831168e+02 -3.315473474952068e+02 -3.316945077733321e+02 - -3.318417169743284e+02 -3.319889749946440e+02 -3.321362820460264e+02 -3.322836383216903e+02 -3.324310436254205e+02 - -3.325784977579187e+02 -3.327260008969810e+02 -3.328735532388732e+02 -3.330211546766479e+02 -3.331688050699581e+02 - -3.333165044480712e+02 -3.334642528918999e+02 -3.336120505193238e+02 -3.337598974031960e+02 -3.339077933992973e+02 - -3.340557383761620e+02 -3.342037324704123e+02 -3.343517758263186e+02 -3.344998683506588e+02 -3.346480099317598e+02 - -3.347962006216366e+02 -3.349444405123485e+02 -3.350927296924430e+02 -3.352410681997821e+02 -3.353894558729969e+02 - -3.355378925848257e+02 -3.356863785436656e+02 -3.358349139484366e+02 -3.359834986244929e+02 -3.361321323883865e+02 - -3.362808153950241e+02 -3.364295478191028e+02 -3.365783295761255e+02 -3.367271605486342e+02 -3.368760407465185e+02 - -3.370249702279324e+02 -3.371739491167402e+02 -3.373229774932894e+02 -3.374720551981496e+02 -3.376211820935624e+02 - -3.377703583682330e+02 -3.379195842066430e+02 -3.380688594499171e+02 -3.382181839217990e+02 -3.383675577198622e+02 - -3.385169809890102e+02 -3.386664537896355e+02 -3.388159761271593e+02 -3.389655478716282e+02 -3.391151689236262e+02 - -3.392648394412631e+02 -3.394145595795439e+02 -3.395643292235305e+02 -3.397141482525620e+02 -3.398640167930273e+02 - -3.400139349724158e+02 -3.401639026755699e+02 -3.403139197760493e+02 -3.404639863449279e+02 -3.406141024957107e+02 - -3.407642683141136e+02 -3.409144838324194e+02 -3.410647488969659e+02 -3.412150633828331e+02 -3.413654274660125e+02 - -3.415158413252182e+02 -3.416663048491409e+02 -3.418168178992377e+02 -3.419673805180489e+02 -3.421179927901010e+02 - -3.422686547867838e+02 -3.424193665441726e+02 -3.425701279702224e+02 -3.427209389917095e+02 -3.428717997388184e+02 - -3.430227103286458e+02 -3.431736706225328e+02 -3.433246804902436e+02 -3.434757400909901e+02 -3.436268495884827e+02 - -3.437780088749811e+02 -3.439292178162220e+02 -3.440804764432992e+02 -3.442317848369893e+02 -3.443831431114438e+02 - -3.445345513395477e+02 -3.446860093957458e+02 -3.448375171638715e+02 -3.449890747637513e+02 -3.451406823209921e+02 - -3.452923397483303e+02 -3.454440469383874e+02 -3.455958039161959e+02 -3.457476107544265e+02 -3.458994675838882e+02 - -3.460513744837874e+02 -3.462033312687789e+02 -3.463553377809081e+02 -3.465073942363314e+02 -3.466595008454457e+02 - -3.468116574214998e+02 -3.469638637732855e+02 -3.471161200889126e+02 -3.472684265676839e+02 -3.474207830743587e+02 - -3.475731894457752e+02 -3.477256457416318e+02 -3.478781520698926e+02 -3.480307085087305e+02 -3.481833150905516e+02 - -3.483359716944890e+02 -3.484886782275422e+02 -3.486414348614480e+02 -3.487942417546251e+02 -3.489470987474849e+02 - -3.491000056682386e+02 -3.492529626143035e+02 -3.494059697303613e+02 -3.495590270809477e+02 -3.497121346735108e+02 - -3.498652923672977e+02 -3.500185000578142e+02 -3.501717579338015e+02 -3.503250661735650e+02 -3.504784246204307e+02 - -3.506318331106053e+02 -3.507852917867942e+02 -3.509388008057230e+02 -3.510923600737020e+02 -3.512459694729739e+02 - -3.513996290399252e+02 -3.515533388531561e+02 -3.517070990059733e+02 -3.518609095547224e+02 -3.520147703931951e+02 - -3.521686814254426e+02 -3.523226427591028e+02 -3.524766545004363e+02 -3.526307165466042e+02 -3.527848288024159e+02 - -3.529389914123712e+02 -3.530932045168612e+02 -3.532474680001527e+02 -3.534017817301934e+02 -3.535561457657783e+02 - -3.537105602073667e+02 -3.538650251312291e+02 -3.540195405716707e+02 -3.541741064193253e+02 -3.543287225825957e+02 - -3.544833891846346e+02 -3.546381063473606e+02 -3.547928739730113e+02 -3.549476919508821e+02 -3.551025603381796e+02 - -3.552574792297605e+02 -3.554124487031720e+02 -3.555674687945711e+02 -3.557225393918643e+02 -3.558776604020463e+02 - -3.560328319567154e+02 -3.561880541805177e+02 -3.563433269456882e+02 -3.564986501330765e+02 -3.566540239103983e+02 - -3.568094484429710e+02 -3.569649235996524e+02 -3.571204492251743e+02 -3.572760253642205e+02 -3.574316521198430e+02 - -3.575873296286128e+02 -3.577430579645793e+02 -3.578988369181832e+02 -3.580546663122107e+02 -3.582105463824335e+02 - -3.583664773634632e+02 -3.585224590722860e+02 -3.586784912980774e+02 -3.588345741363943e+02 -3.589907077420278e+02 - -3.591468922003262e+02 -3.593031275347307e+02 -3.594594135904955e+02 -3.596157502414973e+02 -3.597721376542854e+02 - -3.599285759961583e+02 -3.600850651447366e+02 -3.602416049709182e+02 -3.603981956083848e+02 -3.605548371920680e+02 - -3.607115295991184e+02 -3.608682726958015e+02 -3.610250665626241e+02 -3.611819113190277e+02 -3.613388070259530e+02 - -3.614957536972620e+02 -3.616527512170044e+02 -3.618097994957786e+02 -3.619668986801910e+02 -3.621240489112448e+02 - -3.622812500715253e+02 -3.624385020268735e+02 -3.625958048345691e+02 -3.627531585959862e+02 -3.629105633974360e+02 - -3.630680192762735e+02 -3.632255260890885e+02 -3.633830837209757e+02 -3.635406923518125e+02 -3.636983521500620e+02 - -3.638560629437486e+02 -3.640138245654421e+02 -3.641716372063300e+02 -3.643295010634408e+02 -3.644874159985495e+02 - -3.646453818454157e+02 -3.648033986609884e+02 -3.649614665547653e+02 -3.651195856232492e+02 -3.652777559169987e+02 - -3.654359773157880e+02 -3.655942497193339e+02 -3.657525732779061e+02 -3.659109481367831e+02 -3.660693741707290e+02 - -3.662278512419212e+02 -3.663863794327037e+02 -3.665449588644519e+02 -3.667035895945005e+02 -3.668622716357800e+02 - -3.670210048876434e+02 -3.671797892763418e+02 -3.673386249492966e+02 -3.674975120447079e+02 -3.676564504427247e+02 - -3.678154400208724e+02 -3.679744809042344e+02 -3.681335732252156e+02 -3.682927168979475e+02 -3.684519118222935e+02 - -3.686111580593141e+02 -3.687704557033292e+02 -3.689298048205014e+02 -3.690892054329191e+02 -3.692486574145354e+02 - -3.694081606700869e+02 -3.695677153755793e+02 -3.697273216946131e+02 -3.698869794698993e+02 -3.700466885253786e+02 - -3.702064489307988e+02 -3.703662608017668e+02 -3.705261241915196e+02 -3.706860391012269e+02 -3.708460053861607e+02 - -3.710060229388483e+02 -3.711660919467376e+02 -3.713262125796104e+02 -3.714863846416646e+02 -3.716466079328989e+02 - -3.718068826020972e+02 -3.719672088201144e+02 -3.721275864973102e+02 -3.722880155098476e+02 -3.724484958575989e+02 - -3.726090275883345e+02 -3.727696108177087e+02 -3.729302456171431e+02 -3.730909318132427e+02 -3.732516692484294e+02 - -3.734124580732086e+02 -3.735732984485285e+02 -3.737341902690280e+02 -3.738951333966488e+02 -3.740561278288502e+02 - -3.742171736164895e+02 -3.743782708884933e+02 -3.745394197314636e+02 -3.747006199846337e+02 -3.748618715145197e+02 - -3.750231745441332e+02 -3.751845292967938e+02 -3.753459356405600e+02 -3.755073934398666e+02 -3.756689028999150e+02 - -3.758304642401999e+02 -3.759920773966298e+02 -3.761537422764503e+02 -3.763154589558405e+02 -3.764772275566993e+02 - -3.766390482148706e+02 -3.768009210261144e+02 -3.769628459119104e+02 -3.771248228066682e+02 -3.772868518707951e+02 - -3.774489332703654e+02 -3.776110669681248e+02 -3.777732529036114e+02 -3.779354911268638e+02 -3.780977817328078e+02 - -3.782601248854201e+02 -3.784225207068740e+02 -3.785849690830777e+02 -3.787474699201715e+02 -3.789100234414875e+02 - -3.790726298611719e+02 -3.792352890394379e+02 -3.793980008403989e+02 -3.795607654977005e+02 -3.797235832511840e+02 - -3.798864539959452e+02 -3.800493775732837e+02 -3.802123539540593e+02 -3.803753831256555e+02 -3.805384650119894e+02 - -3.807015994897982e+02 -3.808647863105625e+02 -3.810280252452890e+02 -3.811913162683451e+02 -3.813546593533040e+02 - -3.815180542672069e+02 -3.816815007606327e+02 -3.818449987248433e+02 -3.820085480876401e+02 -3.821721487823003e+02 - -3.823358007029311e+02 -3.824995035814819e+02 -3.826632571794644e+02 -3.828270615387958e+02 -3.829909166775790e+02 - -3.831548222382581e+02 -3.833187778788636e+02 -3.834827836954302e+02 -3.836468397830658e+02 -3.838109457951704e+02 - -3.839751013606573e+02 -3.841393064522010e+02 -3.843035610985582e+02 -3.844678652090594e+02 -3.846322186342679e+02 - -3.847966211091070e+02 -3.849610723938522e+02 -3.851255724658270e+02 -3.852901213276589e+02 -3.854547188661456e+02 - -3.856193651039130e+02 -3.857840607227301e+02 -3.859488064858506e+02 -3.861136028233281e+02 -3.862784501283425e+02 - -3.864433489797775e+02 -3.866083000045549e+02 -3.867733038360474e+02 -3.869383610689728e+02 -3.871034721369783e+02 - -3.872686374886131e+02 -3.874338577931016e+02 -3.875991337168530e+02 -3.877644656943423e+02 -3.879298541437876e+02 - -3.880952996503134e+02 -3.882608028487801e+02 -3.884263644060860e+02 -3.885919849359946e+02 -3.887576648076931e+02 - -3.889234044110585e+02 -3.890892044633024e+02 -3.892550656828005e+02 -3.894209884652491e+02 -3.895869732058733e+02 - -3.897530206206903e+02 -3.899191314265681e+02 -3.900853060229904e+02 -3.902515447813749e+02 -3.904178482782592e+02 - -3.905842171832736e+02 -3.907506523333024e+02 -3.909171542011455e+02 -3.910837216360146e+02 -3.912503530200719e+02 - -3.914170464908692e+02 -3.915838000867597e+02 -3.917506116939103e+02 -3.919174791997058e+02 -3.920844006485843e+02 - -3.922513741233318e+02 -3.924183977030698e+02 -3.925854694180132e+02 -3.927525871064144e+02 -3.929197486330507e+02 - -3.930869521607613e+02 -3.932541958513385e+02 -3.934214775643266e+02 -3.935887951493436e+02 -3.937561467185514e+02 - -3.939235303999417e+02 -3.940909441222876e+02 -3.942583857858931e+02 -3.944258533764072e+02 -3.945933449213566e+02 - -3.947608585304349e+02 -3.949283922804248e+02 -3.950959440342958e+02 -3.952635116636291e+02 -3.954310932882606e+02 - -3.955986870327357e+02 -3.957662907921835e+02 -3.959339024467546e+02 -3.961015200461023e+02 -3.962691416638499e+02 - 1.070000000000000e-01 1.069682658750319e-01 1.069365186252596e-01 1.069047582677665e-01 1.068729848196356e-01 - 1.068411982979503e-01 1.068093987197937e-01 1.067775861022493e-01 1.067457604624000e-01 1.067139218173294e-01 - 1.066820701841205e-01 1.066502055798566e-01 1.066183280216209e-01 1.065864375264968e-01 1.065545341115673e-01 - 1.065226177939159e-01 1.064906885906257e-01 1.064587465187799e-01 1.064267915954618e-01 1.063948238377547e-01 - 1.063628432627417e-01 1.063308498875062e-01 1.062988437291314e-01 1.062668248047005e-01 1.062347931312967e-01 - 1.062027487260033e-01 1.061706916059036e-01 1.061386217880807e-01 1.061065392896180e-01 1.060744441275985e-01 - 1.060423363191058e-01 1.060102158812228e-01 1.059780828310330e-01 1.059459371856195e-01 1.059137789620655e-01 - 1.058816081774544e-01 1.058494248488693e-01 1.058172289933936e-01 1.057850206281103e-01 1.057527997701029e-01 - 1.057205664364545e-01 1.056883206442483e-01 1.056560624105677e-01 1.056237917524958e-01 1.055915086871159e-01 - 1.055592132315112e-01 1.055269054027650e-01 1.054945852179606e-01 1.054622526941811e-01 1.054299078485097e-01 - 1.053975506980299e-01 1.053651812598247e-01 1.053327995509774e-01 1.053004055885713e-01 1.052679993896897e-01 - 1.052355809714157e-01 1.052031503508325e-01 1.051707075450236e-01 1.051382525710719e-01 1.051057854460610e-01 - 1.050733061870738e-01 1.050408148111938e-01 1.050083113355042e-01 1.049757957770881e-01 1.049432681530288e-01 - 1.049107284804097e-01 1.048781767763138e-01 1.048456130578245e-01 1.048130373420250e-01 1.047804496459986e-01 - 1.047478499868284e-01 1.047152383815977e-01 1.046826148473898e-01 1.046499794012880e-01 1.046173320603753e-01 - 1.045846728417352e-01 1.045520017624508e-01 1.045193188396054e-01 1.044866240902822e-01 1.044539175315645e-01 - 1.044211991805354e-01 1.043884690542783e-01 1.043557271698764e-01 1.043229735444130e-01 1.042902081949712e-01 - 1.042574311386343e-01 1.042246423924855e-01 1.041918419736082e-01 1.041590298990855e-01 1.041262061860007e-01 - 1.040933708514369e-01 1.040605239124776e-01 1.040276653862059e-01 1.039947952897050e-01 1.039619136400582e-01 - 1.039290204543487e-01 1.038961157496599e-01 1.038631995430748e-01 1.038302718516768e-01 1.037973326925491e-01 - 1.037643820827749e-01 1.037314200394375e-01 1.036984465796201e-01 1.036654617204061e-01 1.036324654788785e-01 - 1.035994578721206e-01 1.035664389172158e-01 1.035334086312472e-01 1.035003670312980e-01 1.034673141344516e-01 - 1.034342499577912e-01 1.034011745183999e-01 1.033680878333612e-01 1.033349899197580e-01 1.033018807946739e-01 - 1.032687604751918e-01 1.032356289783953e-01 1.032024863213673e-01 1.031693325211913e-01 1.031361675949504e-01 - 1.031029915597278e-01 1.030698044326069e-01 1.030366062306709e-01 1.030033969710030e-01 1.029701766706864e-01 - 1.029369453468044e-01 1.029037030164402e-01 1.028704496966771e-01 1.028371854045984e-01 1.028039101572872e-01 - 1.027706239718267e-01 1.027373268653004e-01 1.027040188547913e-01 1.026706999573827e-01 1.026373701901580e-01 - 1.026040295702002e-01 1.025706781145926e-01 1.025373158404186e-01 1.025039427647613e-01 1.024705589047040e-01 - 1.024371642773299e-01 1.024037588997223e-01 1.023703427889643e-01 1.023369159621393e-01 1.023034784363305e-01 - 1.022700302286212e-01 1.022365713560945e-01 1.022031018358337e-01 1.021696216849221e-01 1.021361309204428e-01 - 1.021026295594792e-01 1.020691176191145e-01 1.020355951164319e-01 1.020020620685147e-01 1.019685184924461e-01 - 1.019349644053093e-01 1.019013998241876e-01 1.018678247661643e-01 1.018342392483225e-01 1.018006432877456e-01 - 1.017670369015167e-01 1.017334201067191e-01 1.016997929204361e-01 1.016661553597508e-01 1.016325074417466e-01 - 1.015988491835066e-01 1.015651806021141e-01 1.015315017146524e-01 1.014978125382047e-01 1.014641130898543e-01 - 1.014304033866843e-01 1.013966834457780e-01 1.013629532842187e-01 1.013292129190896e-01 1.012954623674739e-01 - 1.012617016464549e-01 1.012279307731159e-01 1.011941497645400e-01 1.011603586378106e-01 1.011265574100107e-01 - 1.010927460982239e-01 1.010589247195331e-01 1.010250932910217e-01 1.009912518297729e-01 1.009574003528701e-01 - 1.009235388773963e-01 1.008896674204348e-01 1.008557859990690e-01 1.008218946303820e-01 1.007879933314571e-01 - 1.007540821193774e-01 1.007201610112264e-01 1.006862300240872e-01 1.006522891750429e-01 1.006183384811770e-01 - 1.005843779595726e-01 1.005504076273130e-01 1.005164275014813e-01 1.004824375991610e-01 1.004484379374351e-01 - 1.004144285333870e-01 1.003804094040999e-01 1.003463805666569e-01 1.003123420381414e-01 1.002782938356367e-01 - 1.002442359762259e-01 1.002101684769922e-01 1.001760913550190e-01 1.001420046273895e-01 1.001079083111869e-01 - 1.000738024234945e-01 1.000396869813954e-01 1.000055620019730e-01 9.997142750231042e-02 9.993728349949102e-02 - 9.990313001059796e-02 9.986896705271456e-02 9.983479464292398e-02 9.980061279830947e-02 9.976642153595434e-02 - 9.973222087294174e-02 9.969801082635499e-02 9.966379141327726e-02 9.962956265079187e-02 9.959532455598200e-02 - 9.956107714593093e-02 9.952682043772192e-02 9.949255444843813e-02 9.945827919516288e-02 9.942399469497937e-02 - 9.938970096497086e-02 9.935539802222057e-02 9.932108588381178e-02 9.928676456682770e-02 9.925243408835159e-02 - 9.921809446546671e-02 9.918374571525623e-02 9.914938785480347e-02 9.911502090119163e-02 9.908064487150398e-02 - 9.904625978282372e-02 9.901186565223413e-02 9.897746249681845e-02 9.894305033365988e-02 9.890862917984172e-02 - 9.887419905244718e-02 9.883975996855951e-02 9.880531194526194e-02 9.877085499963774e-02 9.873638914877009e-02 - 9.870191440974231e-02 9.866743079963761e-02 9.863293833553920e-02 9.859843703453038e-02 9.856392691369432e-02 - 9.852940799011436e-02 9.849488028087365e-02 9.846034380305550e-02 9.842579857374308e-02 9.839124461001970e-02 - 9.835668192896858e-02 9.832211054767293e-02 9.828753048321603e-02 9.825294175268109e-02 9.821834437315143e-02 - 9.818373836171017e-02 9.814912373544066e-02 9.811450051142606e-02 9.807986870674969e-02 9.804522833849474e-02 - 9.801057942374444e-02 9.797592197958208e-02 9.794125602309085e-02 9.790658157135405e-02 9.787189864145487e-02 - 9.783720725047659e-02 9.780250741550246e-02 9.776779915361565e-02 9.773308248189948e-02 9.769835741743713e-02 - 9.766362397731190e-02 9.762888217860698e-02 9.759413203840565e-02 9.755937357379113e-02 9.752460680184671e-02 - 9.748983173965557e-02 9.745504840430097e-02 9.742025681286617e-02 9.738545698243438e-02 9.735064893008888e-02 - 9.731583267291286e-02 9.728100822798963e-02 9.724617561240236e-02 9.721133484323437e-02 9.717648593756885e-02 - 9.714162891248904e-02 9.710676378507821e-02 9.707189057241956e-02 9.703700929159639e-02 9.700211995969188e-02 - 9.696722259378933e-02 9.693231721097194e-02 9.689740382832296e-02 9.686248246292567e-02 9.682755313186324e-02 - 9.679261585221899e-02 9.675767064107609e-02 9.672271751551782e-02 9.668775649262741e-02 9.665278758948814e-02 - 9.661781082318323e-02 9.658282621079586e-02 9.654783376940938e-02 9.651283351610694e-02 9.647782546797186e-02 - 9.644280964208730e-02 9.640778605553657e-02 9.637275472540287e-02 9.633771566876947e-02 9.630266890271960e-02 - 9.626761444433649e-02 9.623255231070338e-02 9.619748251890356e-02 9.616240508602021e-02 9.612732002913663e-02 - 9.609222736533599e-02 9.605712711170160e-02 9.602201928531666e-02 9.598690390326445e-02 9.595178098262819e-02 - 9.591665054049109e-02 9.588151259393644e-02 9.584636716004745e-02 9.581121425590743e-02 9.577605389859950e-02 - 9.574088610520702e-02 9.570571089281314e-02 9.567052827850117e-02 9.563533827935435e-02 9.560014091245586e-02 - 9.556493619488900e-02 9.552972414373699e-02 9.549450477608308e-02 9.545927810901049e-02 9.542404415960248e-02 - 9.538880294494230e-02 9.535355448211316e-02 9.531829878819836e-02 9.528303588028109e-02 9.524776577544461e-02 - 9.521248849077216e-02 9.517720404334697e-02 9.514191245025229e-02 9.510661372857139e-02 9.507130789538748e-02 - 9.503599496778380e-02 9.500067496284360e-02 9.496534789765015e-02 9.493001378928664e-02 9.489467265483635e-02 - 9.485932451138250e-02 9.482396937600834e-02 9.478860726579713e-02 9.475323819783207e-02 9.471786218919645e-02 - 9.468247925697347e-02 9.464708941824643e-02 9.461169269009850e-02 9.457628908961296e-02 9.454087863387305e-02 - 9.450546133996199e-02 9.447003722496307e-02 9.443460630595948e-02 9.439916860003450e-02 9.436372412427137e-02 - 9.432827289575330e-02 9.429281493156354e-02 9.425735024878537e-02 9.422187886450198e-02 9.418640079579664e-02 - 9.415091605975259e-02 9.411542467345307e-02 9.407992665398136e-02 9.404442201842063e-02 9.400891078385415e-02 - 9.397339296736518e-02 9.393786858603695e-02 9.390233765695270e-02 9.386680019719568e-02 9.383125622384911e-02 - 9.379570575399625e-02 9.376014880472036e-02 9.372458539310466e-02 9.368901553623238e-02 9.365343925118678e-02 - 9.361785655505112e-02 9.358226746490858e-02 9.354667199784246e-02 9.351107017093598e-02 9.347546200127239e-02 - 9.343984750593494e-02 9.340422670200685e-02 9.336859960657137e-02 9.333296623671174e-02 9.329732660951121e-02 - 9.326168074205300e-02 9.322602865142039e-02 9.319037035469660e-02 9.315470586896488e-02 9.311903521130845e-02 - 9.308335839881057e-02 9.304767544855448e-02 9.301198637762342e-02 9.297629120310064e-02 9.294058994206936e-02 - 9.290488261161287e-02 9.286916922881436e-02 9.283344981075708e-02 9.279772437452428e-02 9.276199293719922e-02 - 9.272625551586512e-02 9.269051212760523e-02 9.265476278950278e-02 9.261900751864104e-02 9.258324633210324e-02 - 9.254747924697261e-02 9.251170628033240e-02 9.247592744926583e-02 9.244014277085617e-02 9.240435226218666e-02 - 9.236855594034055e-02 9.233275382240104e-02 9.229694592545142e-02 9.226113226657491e-02 9.222531286285476e-02 - 9.218948773137420e-02 9.215365688921646e-02 9.211782035346482e-02 9.208197814120249e-02 9.204613026951274e-02 - 9.201027675547878e-02 9.197441761618388e-02 9.193855286871126e-02 9.190268253014419e-02 9.186680661756588e-02 - 9.183092514805957e-02 9.179503813870854e-02 9.175914560659600e-02 9.172324756880521e-02 9.168734404241941e-02 - 9.165143504452181e-02 9.161552059219569e-02 9.157960070252427e-02 9.154367539259080e-02 9.150774467947854e-02 - 9.147180858027071e-02 9.143586711205055e-02 9.139992029190132e-02 9.136396813690625e-02 9.132801066414858e-02 - 9.129204789071155e-02 9.125607983367841e-02 9.122010651013239e-02 9.118412793715676e-02 9.114814413183472e-02 - 9.111215511124955e-02 9.107616089248448e-02 9.104016149262276e-02 9.100415692874760e-02 9.096814721794225e-02 - 9.093213237728998e-02 9.089611242387401e-02 9.086008737477760e-02 9.082405724708396e-02 9.078802205787638e-02 - 9.075198182423806e-02 9.071593656325225e-02 9.067988629200220e-02 9.064383102757116e-02 9.060777078704237e-02 - 9.057170558749904e-02 9.053563544602444e-02 9.049956037970180e-02 9.046348040561442e-02 9.042739554084545e-02 - 9.039130580247817e-02 9.035521120759583e-02 9.031911177328168e-02 9.028300751661894e-02 9.024689845469086e-02 - 9.021078460458068e-02 9.017466598337168e-02 9.013854260814702e-02 9.010241449599002e-02 9.006628166398388e-02 - 9.003014412921184e-02 8.999400190875718e-02 8.995785501970310e-02 8.992170347913286e-02 8.988554730412972e-02 - 8.984938651177689e-02 8.981322111915761e-02 8.977705114335516e-02 8.974087660145275e-02 8.970469751053363e-02 - 8.966851388768103e-02 8.963232574997822e-02 8.959613311450842e-02 8.955993599835491e-02 8.952373441860086e-02 - 8.948752839232957e-02 8.945131793662427e-02 8.941510306856817e-02 8.937888380524456e-02 8.934266016373665e-02 - 8.930643216112769e-02 8.927019981450095e-02 8.923396314093963e-02 8.919772215752698e-02 8.916147688134625e-02 - 8.912522732948071e-02 8.908897351901354e-02 8.905271546702803e-02 8.901645319060740e-02 8.898018670683491e-02 - 8.894391603279379e-02 8.890764118556729e-02 8.887136218223864e-02 8.883507903989107e-02 8.879879177560786e-02 - 8.876250040647221e-02 8.872620494956741e-02 8.868990542197666e-02 8.865360184078323e-02 8.861729422307035e-02 - 8.858098258592126e-02 8.854466694641919e-02 8.850834732164740e-02 8.847202372868912e-02 8.843569618462761e-02 - 8.839936470654611e-02 8.836302931152785e-02 8.832669001665606e-02 8.829034683901400e-02 8.825399979568492e-02 - 8.821764890375206e-02 8.818129418029862e-02 8.814493564240788e-02 8.810857330716310e-02 8.807220719164749e-02 - 8.803583731294432e-02 8.799946368813677e-02 8.796308633430815e-02 8.792670526854167e-02 8.789032050792057e-02 - 8.785393206952812e-02 8.781753997044753e-02 8.778114422776205e-02 8.774474485855495e-02 8.770834187990943e-02 - 8.767193530890875e-02 8.763552516263615e-02 8.759911145817488e-02 8.756269421260816e-02 8.752627344301928e-02 - 8.748984916649143e-02 8.745342140010788e-02 8.741699016095185e-02 8.738055546610660e-02 8.734411733265539e-02 - 8.730767577768141e-02 8.727123081826793e-02 8.723478247149821e-02 8.719833075445547e-02 8.716187568422298e-02 - 8.712541727788393e-02 8.708895555252159e-02 8.705249052521923e-02 8.701602221306004e-02 8.697955063312730e-02 - 8.694307580250422e-02 8.690659773827408e-02 8.687011645752010e-02 8.683363197732555e-02 8.679714431477362e-02 - 8.676065348694757e-02 8.672415951093065e-02 8.668766240380611e-02 8.665116218265721e-02 8.661465886456714e-02 - 8.657815246661917e-02 8.654164300589655e-02 8.650513049948251e-02 8.646861496446030e-02 8.643209641791315e-02 - 8.639557487692430e-02 8.635905035857701e-02 8.632252287995451e-02 8.628599245814005e-02 8.624945911021686e-02 - 8.621292285326819e-02 8.617638370437727e-02 8.613984168062737e-02 8.610329679910171e-02 8.606674907688353e-02 - 8.603019853105608e-02 8.599364517870259e-02 8.595708903690633e-02 8.592053012275053e-02 8.588396845331842e-02 - 8.584740404569323e-02 8.581083691695822e-02 8.577426708419665e-02 8.573769456449173e-02 8.570111937492672e-02 - 8.566454153258486e-02 8.562796105454940e-02 8.559137795790356e-02 8.555479225973059e-02 8.551820397711374e-02 - 8.548161312713624e-02 8.544501972688134e-02 8.540842379343229e-02 8.537182534387232e-02 8.533522439528468e-02 - 8.529862096475260e-02 8.526201506935933e-02 8.522540672618811e-02 8.518879595232219e-02 8.515218276484479e-02 - 8.511556718083918e-02 8.507894921738858e-02 8.504232889157626e-02 8.500570622048544e-02 8.496908122119934e-02 - 8.493245391080124e-02 8.489582430637438e-02 8.485919242500198e-02 8.482255828376728e-02 8.478592189975355e-02 - 8.474928329004400e-02 8.471264247172190e-02 8.467599946187047e-02 8.463935427757298e-02 8.460270693591267e-02 - 8.456605745397273e-02 8.452940584883646e-02 8.449275213758706e-02 8.445609633730780e-02 8.441943846508193e-02 - 8.438277853799266e-02 8.434611657312326e-02 8.430945258755695e-02 8.427278659837699e-02 8.423611862266661e-02 - 8.419944867750905e-02 8.416277677998756e-02 8.412610294718537e-02 8.408942719618576e-02 8.405274954407191e-02 - 8.401607000792713e-02 8.397938860483460e-02 8.394270535187759e-02 8.390602026613936e-02 8.386933336470312e-02 - 8.383264466465212e-02 8.379595418306962e-02 8.375926193703884e-02 8.372256794364304e-02 8.368587221996546e-02 - 8.364917478308932e-02 8.361247565009787e-02 8.357577483807437e-02 8.353907236410206e-02 8.350236824526415e-02 - 8.346566249864391e-02 8.342895514132459e-02 8.339224619038943e-02 8.335553566292164e-02 8.331882357600448e-02 - 8.328210994672121e-02 8.324539479215504e-02 8.320867812938924e-02 8.317195997550704e-02 8.313524034759166e-02 - 8.309851926272641e-02 8.306179673799445e-02 8.302507279047908e-02 8.298834743726349e-02 8.295162069543097e-02 - 8.291489258206473e-02 8.287816311424805e-02 8.284143230906414e-02 8.280470018359624e-02 8.276796675492762e-02 - 8.273123204014149e-02 8.269449605632111e-02 8.265775882054972e-02 8.262102034991055e-02 8.258428066148686e-02 - 8.254753977236187e-02 8.251079769961885e-02 8.247405446034105e-02 8.243731007161166e-02 8.240056455051395e-02 - 8.236381791413117e-02 8.232707017954656e-02 8.229032136384334e-02 8.225357148410478e-02 8.221682055741411e-02 - 8.218006860085458e-02 8.214331563150944e-02 8.210656166646188e-02 8.206980672279519e-02 8.203305081759260e-02 - 8.199629396793737e-02 8.195953619091272e-02 8.192277750360188e-02 8.188601792308813e-02 8.184925746645468e-02 - 8.181249615078479e-02 8.177573399316168e-02 8.173897101066861e-02 8.170220722038883e-02 8.166544263940556e-02 - 8.162867728480205e-02 8.159191117366156e-02 8.155514432306732e-02 8.151837675010254e-02 8.148160847185050e-02 - 8.144483950539445e-02 8.140806986781760e-02 8.137129957620320e-02 8.133452864763450e-02 8.129775709919475e-02 - 8.126098494796720e-02 8.122421221103504e-02 8.118743890548155e-02 8.115066504838998e-02 8.111389065684355e-02 - 8.107711574792552e-02 8.104034033871912e-02 8.100356444630759e-02 8.096678808777417e-02 8.093001128020215e-02 - 8.089323404067471e-02 8.085645638627510e-02 8.081967833408658e-02 8.078289990119239e-02 8.074612110467576e-02 - 8.070934196161997e-02 8.067256248910820e-02 8.063578270422375e-02 8.059900262404983e-02 8.056222226566968e-02 - 8.052544164616657e-02 8.048866078262369e-02 8.045187969212433e-02 8.041509839175172e-02 8.037831689858911e-02 - 8.034153522971973e-02 8.030475340222681e-02 8.026797143319361e-02 8.023118933970336e-02 8.019440713883932e-02 - 8.015762484768471e-02 8.012084248332278e-02 8.008406006283678e-02 8.004727760330994e-02 8.001049512182555e-02 - 7.997371263546676e-02 7.993693016131688e-02 7.990014771645915e-02 7.986336531797676e-02 7.982658298295300e-02 - 7.978980072847111e-02 7.975301857161432e-02 7.971623652946590e-02 7.967945461910902e-02 7.964267285762699e-02 - 7.960589126210302e-02 7.956910984962039e-02 7.953232863726228e-02 7.949554764211197e-02 7.945876688125271e-02 - 7.942198637176773e-02 7.938520613074028e-02 7.934842617525358e-02 7.931164652239087e-02 7.927486718923542e-02 - 7.923808819287045e-02 7.920130955037924e-02 7.916453127884499e-02 7.912775339535094e-02 7.909097591698037e-02 - 7.905419886081648e-02 7.901742224394255e-02 7.898064608344180e-02 7.894387039639746e-02 7.890709519989279e-02 - 7.887032051101103e-02 7.883354634683543e-02 7.879677272444922e-02 7.875999966093565e-02 7.872322717337794e-02 - 7.868645527885937e-02 7.864968399446313e-02 7.861291333727252e-02 7.857614332437074e-02 7.853937397284104e-02 - 7.850260529976670e-02 7.846583732223091e-02 7.842907005731693e-02 7.839230352210801e-02 7.835553773368738e-02 - 7.831877270913830e-02 7.828200846554398e-02 7.824524501998768e-02 7.820848238955266e-02 7.817172059132216e-02 - 7.813495964237939e-02 7.809819955980761e-02 7.806144036069006e-02 7.802468206210998e-02 7.798792468115062e-02 - 7.795116823489523e-02 7.791441274042703e-02 7.787765821482928e-02 7.784090467518520e-02 7.780415213857807e-02 - 7.776740062209107e-02 7.773065014280750e-02 7.769390071781057e-02 7.765715236418354e-02 7.762040509900967e-02 - 7.758365893937215e-02 7.754691390235426e-02 7.751017000503922e-02 7.747342726451029e-02 7.743668569785070e-02 - 7.739994532214370e-02 7.736320615447252e-02 7.732646821192042e-02 7.728973151157063e-02 7.725299607050642e-02 - 7.721626190581099e-02 7.717952903456758e-02 7.714279747385946e-02 7.710606724076986e-02 7.706933835238206e-02 - 7.703261082577922e-02 7.699588467804465e-02 7.695915992626157e-02 7.692243658751323e-02 7.688571467888285e-02 - 7.684899421745368e-02 7.681227522030898e-02 7.677555770453198e-02 7.673884168720593e-02 7.670212718541405e-02 - 7.666541421623961e-02 7.662870279676583e-02 7.659199294407595e-02 7.655528467525324e-02 7.651857800738091e-02 - 7.648187295754222e-02 7.644516954282041e-02 7.640846778029871e-02 7.637176768706039e-02 7.633506928018867e-02 - 7.629837257676678e-02 7.626167759387799e-02 7.622498434860552e-02 7.618829285803264e-02 7.615160313924255e-02 - 7.611491520931853e-02 7.607822908534380e-02 7.604154478440163e-02 7.600486232357523e-02 7.596818171994783e-02 - 7.593150299060271e-02 7.589482615262309e-02 7.585815122309225e-02 7.582147821909338e-02 7.578480715770973e-02 - 7.574813805602458e-02 7.571147093112113e-02 7.567480580008265e-02 7.563814267999236e-02 7.560148158793352e-02 - 7.556482254098935e-02 7.552816555624312e-02 7.549151065077807e-02 7.545485784167741e-02 7.541820714602442e-02 - 7.538155858090231e-02 7.534491216339434e-02 7.530826791058375e-02 7.527162583955378e-02 7.523498596738766e-02 - 7.519834831116866e-02 7.516171288797999e-02 7.512507971490495e-02 7.508844880902671e-02 7.505182018742854e-02 - 7.501519386719367e-02 7.497856986540538e-02 7.494194819914687e-02 7.490532888550142e-02 7.486871194155223e-02 - 7.483209738438257e-02 7.479548523107570e-02 7.475887549871482e-02 7.472226820438319e-02 7.468566336516404e-02 - 7.464906099814063e-02 7.461246112039621e-02 7.457586374901400e-02 7.453926890107723e-02 7.450267659366919e-02 - 7.446608684387307e-02 7.442949966877216e-02 7.439291508544965e-02 7.435633311098883e-02 7.431975376247291e-02 - 7.428317705698513e-02 7.424660301160878e-02 7.421003164342704e-02 7.417346296952319e-02 7.413689700698045e-02 - 7.410033377288210e-02 7.406377328431132e-02 7.402721555835140e-02 7.399066061208556e-02 7.395410846259706e-02 - 7.391755912696915e-02 7.388101262228504e-02 7.384446896562798e-02 7.380792817408122e-02 7.377139026472800e-02 - 7.373485525465158e-02 7.369832316093516e-02 7.366179400066203e-02 7.362526779091538e-02 7.358874454877849e-02 - 7.355222429133459e-02 7.351570703566694e-02 7.347919279885876e-02 7.344268159799329e-02 7.340617345015378e-02 - 7.336966837242348e-02 7.333316638188561e-02 7.329666749562345e-02 7.326017173072021e-02 7.322367910425913e-02 - 7.318718963332346e-02 7.315070333499644e-02 7.311422022636133e-02 7.307774032450136e-02 7.304126364649975e-02 - 7.300479020943977e-02 7.296832003040465e-02 7.293185312647765e-02 7.289538951474199e-02 7.285892921228092e-02 - 7.282247223617767e-02 7.278601860351550e-02 7.274956833137766e-02 7.271312143684736e-02 7.267667793700786e-02 - 7.264023784894239e-02 7.260380118973422e-02 7.256736797646657e-02 7.253093822622268e-02 7.249451195608582e-02 - 7.245808918313920e-02 7.242166992446607e-02 7.238525419714967e-02 7.234884201827325e-02 7.231243340492007e-02 - 7.227602837417331e-02 7.223962694311627e-02 7.220322912883217e-02 7.216683494840427e-02 7.213044441891579e-02 - 7.209405755744998e-02 7.205767438109009e-02 7.202129490691934e-02 7.198491915202099e-02 7.194854713347830e-02 - 7.191217886837446e-02 7.187581437379276e-02 7.183945366681642e-02 7.180309676452867e-02 7.176674368401278e-02 - 7.173039444235199e-02 7.169404905662952e-02 7.165770754392863e-02 7.162136992133256e-02 7.158503620592453e-02 - 7.154870641478780e-02 7.151238056500563e-02 7.147605867366123e-02 7.143974075783785e-02 7.140342683461876e-02 - 7.136711692108716e-02 7.133081103432631e-02 7.129450919141947e-02 7.125821140944985e-02 7.122191770550071e-02 - 7.118562809665530e-02 7.114934259999683e-02 7.111306123260858e-02 7.107678401157377e-02 7.104051095397565e-02 - 7.100424207689746e-02 7.096797739742244e-02 7.093171693263382e-02 7.089546069961486e-02 7.085920871544882e-02 - 7.082296099721888e-02 7.078671756200834e-02 7.075047842690044e-02 7.071424360897838e-02 7.067801312532543e-02 - 7.064178699302483e-02 7.060556522915983e-02 7.056934785081363e-02 7.053313487506954e-02 7.049692631901075e-02 - 7.046072219972052e-02 7.042452253428211e-02 7.038832733977872e-02 7.035213663329361e-02 7.031595043191004e-02 - 7.027976875271123e-02 7.024359161278042e-02 7.020741902920087e-02 7.017125101905583e-02 7.013508759942851e-02 - 7.009892878740216e-02 7.006277460006004e-02 7.002662505448538e-02 6.999048016776144e-02 6.995433995697144e-02 - 6.991820443919861e-02 6.988207363152622e-02 6.984594755103750e-02 6.980982621481568e-02 6.977370963994402e-02 - 6.973759784350578e-02 6.970149084258416e-02 6.966538865426242e-02 6.962929129562380e-02 6.959319878375156e-02 - 6.955711113572893e-02 6.952102836863913e-02 6.948495049956542e-02 6.944887754559105e-02 6.941280952379927e-02 - 6.937674645127329e-02 6.934068834509637e-02 6.930463522235174e-02 6.926858710012268e-02 6.923254399549238e-02 - 6.919650592554411e-02 6.916047290736112e-02 6.912444495802665e-02 6.908842209462392e-02 6.905240433423616e-02 - 6.901639169394666e-02 6.898038419083864e-02 6.894438184199533e-02 6.890838466449999e-02 6.887239267543585e-02 - 6.883640589188617e-02 6.880042433093415e-02 6.876444800966307e-02 6.872847694515619e-02 6.869251115449670e-02 - 6.865655065476786e-02 6.862059546305292e-02 6.858464559643512e-02 6.854870107199770e-02 6.851276190682393e-02 - 6.847682811799699e-02 6.844089972260017e-02 6.840497673771671e-02 6.836905918042983e-02 6.833314706782279e-02 - 6.829724041697882e-02 6.826133924498116e-02 6.822544356891308e-02 6.818955340585779e-02 6.815366877289854e-02 - 6.811778968711857e-02 6.808191616560114e-02 6.804604822542948e-02 6.801018588368681e-02 6.797432915745642e-02 - 6.793847806382150e-02 6.790263261986533e-02 6.786679284267115e-02 6.783095874932217e-02 6.779513035690166e-02 - 6.775930768249286e-02 6.772349074317900e-02 6.768767955604332e-02 6.765187413816909e-02 6.761607450663952e-02 - 6.758028067853786e-02 6.754449267094738e-02 6.750871050095128e-02 6.747293418563281e-02 6.743716374207524e-02 - 6.740139918736179e-02 6.736564053857570e-02 6.732988781280023e-02 6.729414102711860e-02 6.725840019861405e-02 - 6.722266534436987e-02 6.718693648146923e-02 6.715121362699542e-02 6.711549679803168e-02 6.707978601166123e-02 - 6.704408128496732e-02 6.700838263503321e-02 6.697269007894212e-02 6.693700363377729e-02 6.690132331662198e-02 - 6.686564914455943e-02 6.682998113467287e-02 6.679431930404556e-02 6.675866366976070e-02 6.672301424890158e-02 - 6.668737105855144e-02 6.665173411579348e-02 6.661610343771096e-02 6.658047904138716e-02 6.654486094390526e-02 - 6.650924916234854e-02 6.647364371380024e-02 6.643804461534360e-02 6.640245188406185e-02 6.636686553703826e-02 - 6.633128559135604e-02 6.629571206409844e-02 6.626014497234871e-02 6.622458433319009e-02 6.618903016370581e-02 - 6.615348248097914e-02 6.611794130209329e-02 6.608240664413152e-02 6.604687852417708e-02 6.601135695931318e-02 - 6.597584196662311e-02 6.594033356319007e-02 6.590483176609731e-02 6.586933659242808e-02 6.583384805926563e-02 - 6.579836618369318e-02 6.576289098279399e-02 6.572742247365128e-02 6.569196067334833e-02 6.565650559896835e-02 - 6.562105726759460e-02 6.558561569631030e-02 6.555018090219872e-02 6.551475290234308e-02 6.547933171382664e-02 - 6.544391735373260e-02 6.540850983914427e-02 6.537310918714484e-02 6.533771541481756e-02 6.530232853924568e-02 - 6.526694857751246e-02 6.523157554670111e-02 6.519620946389489e-02 6.516085034617702e-02 6.512549821063078e-02 - 6.509015307433939e-02 6.505481495438609e-02 6.501948386785412e-02 6.498415983182672e-02 6.494884286338716e-02 - 6.491353297961865e-02 6.487823019760443e-02 6.484293453442776e-02 6.480764600717190e-02 6.477236463292005e-02 - 6.473709042875546e-02 6.470182341176141e-02 6.466656359902111e-02 6.463131100761778e-02 6.459606565463470e-02 - 6.456082755715510e-02 6.452559673226224e-02 6.449037319703932e-02 6.445515696856961e-02 6.441994806393636e-02 - 6.438474650022280e-02 6.434955229451217e-02 6.431436546388770e-02 6.427918602543267e-02 6.424401399623028e-02 - 6.420884939336380e-02 6.417369223391646e-02 6.413854253497149e-02 6.410340031361215e-02 6.406826558692170e-02 - 6.403313837198334e-02 6.399801868588033e-02 6.396290654569593e-02 6.392780196851335e-02 6.389270497141585e-02 - 6.385761557148667e-02 6.382253378580906e-02 6.378745963146625e-02 6.375239312554147e-02 6.371733428511799e-02 - 6.368228312727903e-02 6.364723966910786e-02 6.361220392768768e-02 6.357717592010177e-02 6.354215566343337e-02 - 6.350714317476568e-02 6.347213847118198e-02 6.343714156976551e-02 6.340215248759951e-02 6.336717124176720e-02 - 6.333219784935186e-02 6.329723232743668e-02 6.326227469310496e-02 6.322732496343991e-02 6.319238315552476e-02 - 6.315744928644278e-02 6.312252337327721e-02 6.308760543311126e-02 6.305269548302821e-02 6.301779354011129e-02 - 6.298289962144372e-02 6.294801374410877e-02 6.291313592518968e-02 6.287826618176968e-02 6.284340453093201e-02 - 6.280855098975993e-02 6.277370557533665e-02 6.273886830474544e-02 6.270403919506955e-02 6.266921826339220e-02 - 6.263440552679662e-02 6.259960100236607e-02 6.256480470718381e-02 6.253001665833306e-02 6.249523687289707e-02 - 6.246046536795907e-02 6.242570216060229e-02 6.239094726791002e-02 6.235620070696547e-02 6.232146249485187e-02 - 6.228673264865250e-02 6.225201118545055e-02 6.221729812232930e-02 6.218259347637199e-02 6.214789726466187e-02 - 6.211320950428215e-02 6.207853021231610e-02 6.204385940584693e-02 6.200919710195792e-02 6.197454331773228e-02 - 6.193989807025328e-02 6.190526137660414e-02 6.187063325386812e-02 6.183601371912845e-02 6.180140278946837e-02 - 6.176680048197113e-02 6.173220681371997e-02 6.169762180179813e-02 6.166304546328885e-02 6.162847781527538e-02 - 6.159391887484095e-02 6.155936865906880e-02 6.152482718504219e-02 6.149029446984435e-02 6.145577053055853e-02 - 6.142125538426796e-02 6.138674904805590e-02 6.135225153900557e-02 6.131776287420022e-02 6.128328307072310e-02 - 6.124881214565744e-02 6.121435011608650e-02 6.117989699909349e-02 6.114545281176169e-02 6.111101757117431e-02 - 6.107659129441460e-02 6.104217399856583e-02 6.100776570071121e-02 6.097336641793399e-02 6.093897616731742e-02 - 6.090459496594473e-02 6.087022283089916e-02 6.083585977926396e-02 6.080150582812238e-02 6.076716099455765e-02 - 6.073282529565302e-02 6.069849874849172e-02 6.066418137015700e-02 6.062987317773211e-02 6.059557418830027e-02 - 6.056128441894475e-02 6.052700388674876e-02 6.049273260879557e-02 6.045847060216841e-02 6.042421788395052e-02 - 6.038997447122514e-02 6.035574038107552e-02 6.032151563058490e-02 6.028730023683652e-02 6.025309421691362e-02 - 6.021889758789946e-02 6.018471036687725e-02 6.015053257093025e-02 6.011636421714171e-02 6.008220532259485e-02 - 6.004805590437293e-02 6.001391597955918e-02 5.997978556523686e-02 5.994566467848918e-02 5.991155333639943e-02 - 5.987745155605081e-02 5.984335935452657e-02 5.980927674890997e-02 5.977520375628423e-02 5.974114039373261e-02 - 5.970708667833834e-02 5.967304262718466e-02 5.963900825735483e-02 5.960498358593206e-02 5.957096862999962e-02 - 5.953696340664075e-02 5.950296793293869e-02 5.946898222597666e-02 5.943500630283793e-02 5.940104018060574e-02 - 5.936708387636331e-02 5.933313740719390e-02 5.929920079018074e-02 5.926527404240709e-02 5.923135718095618e-02 - 5.919745022291125e-02 5.916355318535554e-02 5.912966608537230e-02 5.909578894004478e-02 5.906192176645620e-02 - 5.902806458168981e-02 5.899421740282887e-02 5.896038024695659e-02 5.892655313115624e-02 5.889273607251104e-02 - 5.885892908810425e-02 5.882513219501910e-02 5.879134541033884e-02 5.875756875114671e-02 5.872380223452595e-02 - 5.869004587755981e-02 5.865629969733151e-02 5.862256371092430e-02 5.858883793542144e-02 5.855512238790617e-02 - 5.852141708546170e-02 5.848772204517131e-02 5.845403728411822e-02 5.842036281938568e-02 5.838669866805692e-02 - 5.835304484721521e-02 5.831940137394376e-02 5.828576826532585e-02 5.825214553844467e-02 5.821853321038349e-02 - 5.818493129822556e-02 5.815133981905412e-02 5.811775878995240e-02 5.808418822800365e-02 5.805062815029110e-02 - 5.801707857389801e-02 5.798353951590760e-02 5.795001099340315e-02 5.791649302346786e-02 5.788298562318499e-02 - 5.784948880963779e-02 5.781600259990949e-02 5.778252701108333e-02 5.774906206024256e-02 5.771560776447041e-02 - 5.768216414085015e-02 5.764873120646499e-02 5.761530897839819e-02 5.758189747373298e-02 5.754849670955262e-02 - 5.751510670294033e-02 5.748172747097936e-02 5.744835903075296e-02 5.741500139934437e-02 5.738165459383683e-02 - 5.734831863131357e-02 5.731499352885785e-02 5.728167930355290e-02 5.724837597248197e-02 5.721508355272830e-02 - 5.718180206137512e-02 5.714853151550570e-02 5.711527193220325e-02 5.708202332855103e-02 5.704878572163228e-02 - 5.701555912853024e-02 5.698234356632816e-02 5.694913905210926e-02 5.691594560295680e-02 5.688276323595402e-02 - 5.684959196818416e-02 5.681643181673045e-02 5.678328279867616e-02 5.675014493110452e-02 5.671701823109875e-02 - 5.668390271574211e-02 5.665079840211785e-02 5.661770530730920e-02 5.658462344839940e-02 5.655155284247171e-02 - 5.651849350660935e-02 5.648544545789557e-02 5.645240871341362e-02 5.641938329024674e-02 5.638636920547815e-02 - 5.635336647619112e-02 5.632037511946889e-02 5.628739515239468e-02 5.625442659205174e-02 5.622146945552333e-02 - 5.618852375989267e-02 5.615558952224302e-02 5.612266675965761e-02 5.608975548921968e-02 5.605685572801247e-02 - 5.602396749311925e-02 5.599109080162322e-02 5.595822567060765e-02 5.592537211715578e-02 5.589253015835084e-02 - 5.585969981127608e-02 5.582688109301474e-02 5.579407402065006e-02 5.576127861126528e-02 5.572849488194366e-02 - 5.569572284976842e-02 5.566296253182280e-02 5.563021394519008e-02 5.559747710695345e-02 5.556475203419618e-02 - 5.553203874400151e-02 5.549933725345269e-02 5.546664757963294e-02 5.543396973962551e-02 5.540130375051366e-02 - 5.536864962938060e-02 5.533600739330961e-02 5.530337705938389e-02 5.527075864468672e-02 5.523815216630132e-02 - 5.520555764131094e-02 5.517297508679882e-02 5.514040451984819e-02 5.510784595754230e-02 5.507529941696442e-02 - 5.504276491519774e-02 5.501024246932555e-02 5.497773209643106e-02 5.494523381359754e-02 5.491274763790820e-02 - 5.488027358644629e-02 5.484781167629507e-02 5.481536192453777e-02 5.478292434825763e-02 5.475049896453790e-02 - 5.471808579046181e-02 5.468568484311261e-02 5.465329613957354e-02 5.462091969692785e-02 5.458855553225877e-02 - 5.455620366264955e-02 5.452386410518342e-02 5.449153687694363e-02 5.445922199501343e-02 5.442691947647604e-02 - 5.439462933841474e-02 5.436235159791274e-02 5.433008627205328e-02 5.429783337791962e-02 5.426559293259499e-02 - 5.423336495316264e-02 5.420114945670580e-02 5.416894646030773e-02 5.413675598105167e-02 5.410457803602083e-02 - 5.407241264229849e-02 5.404025981696787e-02 5.400811957711223e-02 5.397599193981480e-02 5.394387692215881e-02 - 5.391177454122753e-02 5.387968481410418e-02 5.384760775787202e-02 5.381554338961427e-02 5.378349172641418e-02 - 5.375145278535501e-02 5.371942658351998e-02 5.368741313799234e-02 5.365541246585533e-02 5.362342458419220e-02 - 5.359144951008617e-02 5.355948726062051e-02 5.352753785287844e-02 5.349560130394321e-02 5.346367763089808e-02 - 5.343176685082626e-02 5.339986898081100e-02 5.336798403793557e-02 5.333611203928318e-02 5.330425300193709e-02 - 5.327240694298052e-02 5.324057387949673e-02 5.320875382856897e-02 5.317694680728046e-02 5.314515283271445e-02 - 5.311337192195419e-02 5.308160409208292e-02 5.304984936018387e-02 5.301810774334029e-02 5.298637925860694e-02 - 5.295466392210174e-02 5.292296174881576e-02 5.289127275367324e-02 5.285959695159842e-02 5.282793435751552e-02 - 5.279628498634878e-02 5.276464885302243e-02 5.273302597246069e-02 5.270141635958780e-02 5.266982002932800e-02 - 5.263823699660550e-02 5.260666727634453e-02 5.257511088346935e-02 5.254356783290417e-02 5.251203813957321e-02 - 5.248052181840073e-02 5.244901888431094e-02 5.241752935222807e-02 5.238605323707637e-02 5.235459055378005e-02 - 5.232314131726334e-02 5.229170554245050e-02 5.226028324426572e-02 5.222887443763326e-02 5.219747913747734e-02 - 5.216609735872220e-02 5.213472911629205e-02 5.210337442511115e-02 5.207203330010370e-02 5.204070575619395e-02 - 5.200939180830615e-02 5.197809147136448e-02 5.194680476029321e-02 5.191553169001656e-02 5.188427227545876e-02 - 5.185302653154403e-02 5.182179447319664e-02 5.179057611534077e-02 5.175937147290068e-02 5.172818056080060e-02 - 5.169700339396475e-02 5.166583998731737e-02 5.163469035578269e-02 5.160355451428494e-02 5.157243247774834e-02 - 5.154132426109714e-02 5.151022987925555e-02 5.147914934714782e-02 5.144808267969817e-02 5.141702989183084e-02 - 5.138599099847005e-02 5.135496601454004e-02 5.132395495496503e-02 5.129295783466926e-02 5.126197466857695e-02 - 5.123100547161235e-02 5.120005025869967e-02 5.116910904476317e-02 5.113818184472704e-02 5.110726867351554e-02 - 5.107636954605289e-02 5.104548447726333e-02 5.101461348207109e-02 5.098375657540039e-02 5.095291377217546e-02 - 5.092208508732055e-02 5.089127053575987e-02 5.086047013241765e-02 5.082968389221815e-02 5.079891183008556e-02 - 5.076815396094415e-02 5.073741029971812e-02 5.070668086133172e-02 5.067596566070917e-02 5.064526471277472e-02 - 5.061457803245257e-02 5.058390563466697e-02 5.055324753434216e-02 5.052260374640234e-02 5.049197428577178e-02 - 5.046135916737467e-02 5.043075840613528e-02 5.040017201697781e-02 5.036960001482652e-02 5.033904241460560e-02 - 5.030849923123931e-02 5.027797047965189e-02 5.024745617476754e-02 5.021695633151052e-02 5.018647096480505e-02 - 5.015600008957535e-02 5.012554372074565e-02 5.009510187324022e-02 5.006467456198324e-02 5.003426180189897e-02 - 5.000386360791163e-02 4.997347999494546e-02 4.994311097792468e-02 4.991275657177353e-02 4.988241679141623e-02 - 4.985209165177702e-02 4.982178116778014e-02 4.979148535434980e-02 4.976120422641023e-02 4.973093779888569e-02 - 4.970068608670038e-02 4.967044910477855e-02 4.964022686804442e-02 4.961001939142222e-02 4.957982668983620e-02 - 4.954964877821057e-02 4.951948567146956e-02 4.948933738453741e-02 4.945920393233836e-02 4.942908532979662e-02 - 4.939898159183643e-02 4.936889273338203e-02 4.933881876935763e-02 4.930875971468749e-02 4.927871558429582e-02 - 4.924868639310685e-02 4.921867215604481e-02 4.918867288803395e-02 4.915868860399848e-02 4.912871931886263e-02 - 4.909876504755066e-02 4.906882580498677e-02 4.903890160609520e-02 4.900899246580018e-02 4.897909839902595e-02 - 4.894921942069672e-02 4.891935554573676e-02 4.888950678907025e-02 4.885967316562146e-02 4.882985469031461e-02 - 4.880005137807392e-02 4.877026324382362e-02 4.874049030248797e-02 4.871073256899117e-02 4.868099005825745e-02 - 4.865126278521108e-02 4.862155076477624e-02 4.859185401187720e-02 4.856217254143816e-02 4.853250636838338e-02 - 4.850285550763707e-02 4.847321997412347e-02 4.844359978276680e-02 4.841399494849130e-02 4.838440548622121e-02 - 4.835483141088075e-02 4.832527273739414e-02 4.829572948068564e-02 4.826620165567946e-02 4.823668927729983e-02 - 4.820719236047098e-02 4.817771092011715e-02 4.814824497116257e-02 4.811879452853147e-02 4.808935960714807e-02 - 4.805994022193662e-02 4.803053638782134e-02 4.800114811972645e-02 4.797177543257621e-02 4.794241834129482e-02 - 4.791307686080653e-02 4.788375100603556e-02 4.785444079190614e-02 4.782514623334252e-02 4.779586734526891e-02 - 4.776660414260955e-02 4.773735664028868e-02 4.770812485323050e-02 4.767890879635927e-02 4.764970848459921e-02 - 4.762052393287456e-02 4.759135515610954e-02 4.756220216922838e-02 4.753306498715533e-02 4.750394362481459e-02 - 4.747483809713041e-02 4.744574841902701e-02 4.741667460542864e-02 4.738761667125952e-02 4.735857463144388e-02 - 4.732954850090595e-02 4.730053829456995e-02 4.727154402736015e-02 4.724256571420073e-02 4.721360337001596e-02 - 4.718465700973005e-02 4.715572664826723e-02 4.712681230055175e-02 4.709791398150782e-02 4.706903170605968e-02 - 4.704016548913156e-02 4.701131534564769e-02 4.698248129053231e-02 4.695366333870963e-02 4.692486150510391e-02 - 4.689607580463934e-02 4.686730625224018e-02 4.683855286283068e-02 4.680981565133503e-02 4.678109463267748e-02 - 4.675238982178226e-02 4.672370123357359e-02 4.669502888297572e-02 4.666637278491287e-02 4.663773295430927e-02 - 4.660910940608916e-02 4.658050215517676e-02 4.655191121649629e-02 4.652333660497202e-02 4.649477833552815e-02 - 4.646623642308891e-02 4.643771088257853e-02 4.640920172892127e-02 4.638070897704132e-02 4.635223264186294e-02 - 4.632377273831036e-02 4.629532928130779e-02 4.626690228577947e-02 4.623849176664965e-02 4.621009773884253e-02 - 4.618172021728237e-02 4.615335921689338e-02 4.612501475259979e-02 4.609668683932586e-02 4.606837549199577e-02 - 4.604008072553380e-02 4.601180255486416e-02 4.598354099491107e-02 4.595529606059879e-02 4.592706776685152e-02 - 4.589885612859351e-02 4.587066116074899e-02 4.584248287824218e-02 4.581432129599732e-02 4.578617642893863e-02 - 4.575804829199037e-02 4.572993690007673e-02 4.570184226812196e-02 4.567376441105030e-02 4.564570334378597e-02 - 4.561765908125320e-02 4.558963163837623e-02 4.556162103007928e-02 4.553362727128659e-02 4.550565037692238e-02 - 4.547769036191089e-02 4.544974724117636e-02 4.542182102964300e-02 4.539391174223504e-02 4.536601939387674e-02 - 4.533814399949231e-02 4.531028557400597e-02 4.528244413234197e-02 4.525461968942453e-02 4.522681226017790e-02 - 4.519902185952628e-02 4.517124850239393e-02 4.514349220370505e-02 4.511575297838390e-02 4.508803084135470e-02 - 4.506032580754168e-02 4.503263789186907e-02 4.500496710926111e-02 4.497731347464200e-02 4.494967700293602e-02 - 4.492205770906736e-02 4.489445560796028e-02 4.486687071453899e-02 4.483930304372771e-02 4.481175261045071e-02 - 4.478421942963219e-02 4.475670351619640e-02 4.472920488506756e-02 4.470172355116988e-02 4.467425952942764e-02 - 4.464681283476502e-02 4.461938348210628e-02 4.459197148637566e-02 4.456457686249737e-02 4.453719962539564e-02 - 4.450983978999472e-02 4.448249737121881e-02 4.445517238399217e-02 4.442786484323902e-02 4.440057476388359e-02 - 4.437330216085012e-02 4.434604704906282e-02 4.431880944344595e-02 4.429158935892372e-02 4.426438681042035e-02 - 4.423720181286010e-02 4.421003438116718e-02 4.418288453026584e-02 4.415575227508029e-02 4.412863763053477e-02 - 4.410154061155352e-02 4.407446123306075e-02 4.404739950998071e-02 4.402035545723762e-02 4.399332908975571e-02 - 4.396632042245923e-02 4.393932947027238e-02 4.391235624811941e-02 4.388540077092456e-02 4.385846305361203e-02 - 4.383154311110608e-02 4.380464095833093e-02 4.377775661021081e-02 4.375089008166996e-02 4.372404138763258e-02 - 4.369721054302294e-02 4.367039756276526e-02 4.364360246178376e-02 4.361682525500267e-02 4.359006595734623e-02 - 4.356332458373868e-02 4.353660114910423e-02 4.350989566836711e-02 4.348320815645158e-02 4.345653862828184e-02 - 4.342988709878214e-02 4.340325358287669e-02 4.337663809548974e-02 4.335004065154552e-02 4.332346126596825e-02 - 4.329689995368217e-02 4.327035672961151e-02 4.324383160868049e-02 4.321732460581335e-02 4.319083573593433e-02 - 4.316436501396765e-02 4.313791245483754e-02 4.311147807346823e-02 4.308506188478395e-02 4.305866390370894e-02 - 4.303228414516742e-02 4.300592262408363e-02 4.297957935538180e-02 4.295325435398616e-02 4.292694763482094e-02 - 4.290065921281035e-02 4.287438910287866e-02 4.284813731995007e-02 4.282190387894883e-02 4.279568879479917e-02 - 4.276949208242530e-02 4.274331375675147e-02 4.271715383270192e-02 4.269101232520085e-02 4.266488924917250e-02 - 4.263878461954113e-02 4.261269845123093e-02 4.258663075916616e-02 4.256058155827103e-02 4.253455086346980e-02 - 4.250853868968667e-02 4.248254505184589e-02 4.245656996487169e-02 4.243061344368828e-02 4.240467550321991e-02 - 4.237875615839081e-02 4.235285542412521e-02 4.232697331534734e-02 4.230110984698143e-02 4.227526503395169e-02 - 4.224943889118240e-02 4.222363143359775e-02 4.219784267612198e-02 4.217207263367933e-02 4.214632132119402e-02 - 4.212058875359029e-02 4.209487494579236e-02 4.206917991272448e-02 4.204350366931086e-02 4.201784623047573e-02 - 4.199220761114335e-02 4.196658782623791e-02 4.194098689068368e-02 4.191540481940486e-02 4.188984162732570e-02 - 4.186429732937041e-02 4.183877194046326e-02 4.181326547552844e-02 4.178777794949019e-02 4.176230937727277e-02 - 4.173685977380037e-02 4.171142915399725e-02 4.168601753278764e-02 4.166062492509574e-02 4.163525134584580e-02 - 4.160989680996207e-02 4.158456133236876e-02 4.155924492799010e-02 4.153394761175032e-02 4.150866939857367e-02 - 4.148341030338436e-02 4.145817034110662e-02 4.143294952666470e-02 4.140774787498282e-02 4.138256540098521e-02 - 4.135740211959609e-02 4.133225804573972e-02 4.130713319434030e-02 4.128202758032209e-02 4.125694121860929e-02 - 4.123187412412615e-02 4.120682631179690e-02 4.118179779654577e-02 4.115678859329698e-02 4.113179871697477e-02 - 4.110682818250337e-02 4.108187700480702e-02 4.105694519880994e-02 4.103203277943635e-02 4.100713976161051e-02 - 4.098226616025662e-02 4.095741199029894e-02 4.093257726666168e-02 4.090776200426908e-02 4.088296621804536e-02 - 4.085818992291476e-02 4.083343313380151e-02 4.080869586562985e-02 4.078397813332400e-02 4.075927995180818e-02 - 4.073460133600665e-02 4.070994230084361e-02 4.068530286124331e-02 4.066068303212998e-02 4.063608282842784e-02 - 4.061150226506113e-02 4.058694135695408e-02 4.056240011903092e-02 4.053787856621588e-02 4.051337671343318e-02 - 4.048889457560707e-02 4.046443216766178e-02 4.043998950452153e-02 4.041556660111054e-02 4.039116347235307e-02 - 4.036678013317334e-02 4.034241659849556e-02 4.031807288324400e-02 4.029374900234285e-02 4.026944497071637e-02 - 4.024516080328877e-02 4.022089651498431e-02 4.019665212072718e-02 4.017242763544165e-02 4.014822307405193e-02 - 4.012403845148225e-02 4.009987378265685e-02 4.007572908249996e-02 4.005160436593580e-02 4.002749964788860e-02 - 4.000341494328261e-02 3.997935026862905e-02 3.995530565020248e-02 3.993128111798760e-02 3.990727670197625e-02 - 3.988329243216027e-02 3.985932833853151e-02 3.983538445108181e-02 3.981146079980302e-02 3.978755741468697e-02 - 3.976367432572553e-02 3.973981156291052e-02 3.971596915623379e-02 3.969214713568721e-02 3.966834553126258e-02 - 3.964456437295178e-02 3.962080369074663e-02 3.959706351463900e-02 3.957334387462071e-02 3.954964480068362e-02 - 3.952596632281957e-02 3.950230847102040e-02 3.947867127527795e-02 3.945505476558409e-02 3.943145897193063e-02 - 3.940788392430945e-02 3.938432965271236e-02 3.936079618713123e-02 3.933728355755788e-02 3.931379179398419e-02 - 3.929032092640197e-02 3.926687098480308e-02 3.924344199917935e-02 3.922003399952266e-02 3.919664701582481e-02 - 3.917328107807769e-02 3.914993621627309e-02 3.912661246040292e-02 3.910330984045896e-02 3.908002838643308e-02 - 3.905676812831715e-02 3.903352909610298e-02 3.901031131978242e-02 3.898711482934733e-02 3.896393965478955e-02 - 3.894078582610091e-02 3.891765337327326e-02 3.889454232629846e-02 3.887145271516833e-02 3.884838456987474e-02 - 3.882533792040951e-02 3.880231279676451e-02 3.877930922893155e-02 3.875632724690252e-02 3.873336688066923e-02 - 3.871042816022353e-02 3.868751111555727e-02 3.866461577666229e-02 3.864174217353044e-02 3.861889033615356e-02 - 3.859606029452349e-02 3.857325207863209e-02 3.855046571847119e-02 3.852770124403264e-02 3.850495868530828e-02 - 3.848223807228996e-02 3.845953943496952e-02 3.843686280333881e-02 3.841420820738967e-02 3.839157567711395e-02 - 3.836896524250349e-02 3.834637693355013e-02 3.832381078024572e-02 3.830126681258209e-02 3.827874506055112e-02 - 3.825624555414461e-02 3.823376832335444e-02 3.821131339817244e-02 3.818888080859045e-02 3.816647058460032e-02 - 3.814408275619389e-02 3.812171735336303e-02 3.809937440609954e-02 3.807705394439530e-02 3.805475599824214e-02 - 3.803248059763190e-02 3.801022777255643e-02 3.798799755300758e-02 3.796578996897719e-02 3.794360505045710e-02 - 3.792144282743916e-02 3.789930332991522e-02 3.787718658787710e-02 3.785509263131667e-02 3.783302149022577e-02 - 3.781097319459624e-02 3.778894777441992e-02 3.776694525968866e-02 3.774496568039430e-02 3.772300906652870e-02 - 3.770107544808367e-02 3.767916485505110e-02 3.765727731742280e-02 3.763541286519063e-02 3.761357152834642e-02 - 3.759175333688204e-02 3.756995832078931e-02 3.754818651006007e-02 3.752643793468620e-02 3.750471262465951e-02 - 3.748301060997186e-02 3.746133192061509e-02 3.743967658658105e-02 3.741804463786157e-02 3.739643610444850e-02 - 3.737485101633371e-02 3.735328940350900e-02 3.733175129596625e-02 3.731023672369729e-02 3.728874571669397e-02 - 3.726727830494812e-02 3.724583451845160e-02 3.722441438719625e-02 3.720301794117391e-02 3.718164521037644e-02 - 3.716029622479566e-02 3.713897101442343e-02 3.711766960925159e-02 3.709639203927199e-02 3.707513833447647e-02 - 3.705390852485687e-02 3.703270264040504e-02 3.701152071111283e-02 3.699036276697207e-02 3.696922883797462e-02 - 3.694811895411231e-02 3.692703314537699e-02 3.690597144176051e-02 3.688493387325471e-02 3.686392046985143e-02 - 3.684293126154253e-02 3.682196627831984e-02 3.680102555017520e-02 3.678010910710046e-02 3.675921697908748e-02 - 3.673834919612807e-02 3.671750578821411e-02 3.669668678533742e-02 3.667589221748987e-02 3.665512211466327e-02 - 3.663437650684950e-02 3.661365542404037e-02 3.659295889622776e-02 3.657228695340348e-02 3.655163962555941e-02 - 3.653101694268735e-02 3.651041893477919e-02 3.648984563182674e-02 3.646929706382188e-02 3.644877326075641e-02 - 3.642827425262220e-02 3.640780006941109e-02 3.638735074111494e-02 3.636692629772557e-02 3.634652676923484e-02 - 3.632615218563458e-02 3.630580257691665e-02 3.628547797307289e-02 3.626517840409513e-02 3.624490389997524e-02 - 3.622465449070505e-02 3.620443020627639e-02 3.618423107668113e-02 3.616405713191111e-02 3.614390840195816e-02 - 3.612378491681414e-02 3.610368670647089e-02 3.608361380092025e-02 3.606356623015406e-02 3.604354402416417e-02 - 3.602354721294244e-02 3.600357582648069e-02 3.598362989477077e-02 3.596370944780453e-02 3.594381451557382e-02 - 3.592394512807047e-02 3.590410131528634e-02 3.588428310721326e-02 3.586449053384308e-02 3.584472362516764e-02 - 3.582498241117880e-02 3.580526692186839e-02 3.578557718722826e-02 3.576591323725024e-02 3.574627510192620e-02 - 3.572666281124797e-02 3.570707639520740e-02 3.568751588379632e-02 3.566798130700659e-02 3.564847269483005e-02 - 3.562899007725854e-02 3.560953348428391e-02 3.559010294589800e-02 3.557069849209266e-02 3.555132015285974e-02 - 3.553196795819106e-02 3.551264193807849e-02 3.549334212251386e-02 3.547406854148901e-02 3.545482122499580e-02 - 3.543560020302607e-02 3.541640550557167e-02 3.539723716262443e-02 3.537809520417620e-02 3.535897966021882e-02 - 3.533989056074414e-02 3.532082793574401e-02 3.530179181521027e-02 3.528278222913475e-02 3.526379920750932e-02 - 3.524484278032580e-02 3.522591297757607e-02 3.520700982925193e-02 3.518813336534525e-02 3.516928361584787e-02 - 3.515046061075164e-02 3.513166438004838e-02 3.511289495372998e-02 3.509415236178823e-02 3.507543663421501e-02 - 3.505674780100216e-02 3.503808589214152e-02 3.501945093762493e-02 3.500084296744425e-02 3.498226201159130e-02 - 3.496370810005795e-02 3.494518126283602e-02 3.492668152991737e-02 3.490820893129385e-02 3.488976349695729e-02 - 3.487134525689954e-02 3.485295424111245e-02 3.483459047958785e-02 3.481625400231760e-02 3.479794483929353e-02 - 3.477966302050750e-02 3.476140857595134e-02 3.474318153561690e-02 3.472498192949603e-02 3.470680978758058e-02 - 3.468866513986237e-02 3.467054801633326e-02 3.465245844698509e-02 3.463439646180971e-02 3.461636209079897e-02 - 3.459835536394470e-02 3.458037631123875e-02 3.456242496267296e-02 3.454450134823919e-02 3.452660549792927e-02 - 3.450873744173504e-02 3.449089720964835e-02 3.447308483166107e-02 3.445530033776500e-02 3.443754375795202e-02 - 3.441981512221395e-02 3.440211446054266e-02 3.438444180292995e-02 3.436679717936773e-02 3.434918061984778e-02 - 3.433159215436199e-02 3.431403181290218e-02 3.429649962546020e-02 3.427899562202789e-02 3.426151983259711e-02 - 3.424407228715969e-02 3.422665301570748e-02 3.420926204823232e-02 3.419189941472606e-02 3.417456514518054e-02 - 3.415725926958761e-02 3.413998181793911e-02 3.412273282022688e-02 3.410551230644278e-02 3.408832030657864e-02 - 3.407115685062630e-02 3.405402196857762e-02 3.403691569042444e-02 3.401983804615860e-02 3.400278906577194e-02 - 3.398576877925633e-02 3.396877721660357e-02 3.395181440780554e-02 3.393488038285408e-02 3.391797517174103e-02 - 3.390109880445821e-02 3.388425131099751e-02 3.386743272135074e-02 3.385064306550976e-02 3.383388237346641e-02 - 3.381715067521254e-02 3.380044800073998e-02 3.378377438004059e-02 3.376712984310620e-02 3.375051441992868e-02 - 3.373392814049984e-02 3.371737103481155e-02 3.370084313285564e-02 3.368434446462396e-02 3.366787506010836e-02 - 3.365143466564878e-02 3.363501887624541e-02 3.361862209777612e-02 3.360224500875989e-02 3.358588827878357e-02 - 3.356955147090725e-02 3.355323458431880e-02 3.353693766165054e-02 3.352066065506343e-02 3.350440352193865e-02 - 3.348816624199871e-02 3.347194881659273e-02 3.345575121630599e-02 3.343957340404732e-02 3.342341535303144e-02 - 3.340727704441876e-02 3.339115845430404e-02 3.337505954322636e-02 3.335898029706669e-02 3.334292070921326e-02 - 3.332688074834195e-02 3.331086037969291e-02 3.329485957414917e-02 3.327887831864652e-02 3.326291658484171e-02 - 3.324697433542376e-02 3.323105156623186e-02 3.321514826023114e-02 3.319926437839098e-02 3.318339989412266e-02 - 3.316755478754796e-02 3.315172903929034e-02 3.313592261295018e-02 3.312013548124740e-02 3.310436764153749e-02 - 3.308861906981869e-02 3.307288973180764e-02 3.305717959801665e-02 3.304148865245999e-02 3.302581687574703e-02 - 3.301016422142487e-02 3.299453067800234e-02 3.297891624809741e-02 3.296332088425066e-02 3.294774455685354e-02 - 3.293218725810471e-02 3.291664896225673e-02 3.290112963401578e-02 3.288562923879117e-02 3.287014777263271e-02 - 3.285468522369568e-02 3.283924155670871e-02 3.282381674440858e-02 3.280841076589561e-02 3.279302360243119e-02 - 3.277765521941309e-02 3.276230558706894e-02 3.274697470113698e-02 3.273166254219040e-02 3.271636907936865e-02 - 3.270109428250347e-02 3.268583813280482e-02 3.267060061307020e-02 3.265538168459424e-02 3.264018132671115e-02 - 3.262499953449712e-02 3.260983628233858e-02 3.259469153939318e-02 3.257956527754512e-02 3.256445748091834e-02 - 3.254936812698490e-02 3.253429718174427e-02 3.251924463148387e-02 3.250421046229880e-02 3.248919464552218e-02 - 3.247419715298105e-02 3.245921796288541e-02 3.244425706251369e-02 3.242931441545717e-02 3.241438998652282e-02 - 3.239948378141620e-02 3.238459577882156e-02 3.236972593925531e-02 3.235487424670715e-02 3.234004068301546e-02 - 3.232522522137563e-02 3.231042782696456e-02 3.229564848261764e-02 3.228088718700101e-02 3.226614390644563e-02 - 3.225141860917057e-02 3.223671128042128e-02 3.222202190260593e-02 3.220735044835789e-02 3.219269687989033e-02 - 3.217806118663362e-02 3.216344336205739e-02 3.214884337811092e-02 3.213426120193776e-02 3.211969680852602e-02 - 3.210515019435922e-02 3.209062132655478e-02 3.207611016186721e-02 3.206161670288540e-02 3.204714093648681e-02 - 3.203268282961075e-02 3.201824236239234e-02 3.200381951210604e-02 3.198941424912934e-02 3.197502654604618e-02 - 3.196065638811887e-02 3.194630377248257e-02 3.193196866763873e-02 3.191765104079724e-02 3.190335087680102e-02 - 3.188906815766901e-02 3.187480285784819e-02 3.186055494296534e-02 3.184632440204734e-02 3.183211122836238e-02 - 3.181791538780577e-02 3.180373685568510e-02 3.178957561657719e-02 3.177543165075891e-02 3.176130492904844e-02 - 3.174719542079285e-02 3.173310312097031e-02 3.171902801589959e-02 3.170497007535993e-02 3.169092927256592e-02 - 3.167690558660036e-02 3.166289900092451e-02 3.164890948767075e-02 3.163493702375719e-02 3.162098160094597e-02 - 3.160704320149037e-02 3.159312179836957e-02 3.157921735868882e-02 3.156532987076624e-02 3.155145932224658e-02 - 3.153760566663864e-02 3.152376889172848e-02 3.150994900180672e-02 3.149614595827410e-02 3.148235973399625e-02 - 3.146859031868535e-02 3.145483769408502e-02 3.144110182886523e-02 3.142738268687409e-02 3.141368026942635e-02 - 3.139999456778463e-02 3.138632554513814e-02 3.137267318073906e-02 3.135903745883740e-02 3.134541835839263e-02 - 3.133181584694165e-02 3.131822989974722e-02 3.130466051752389e-02 3.129110768114365e-02 3.127757136018487e-02 - 3.126405153214003e-02 3.125054818119363e-02 3.123706128835145e-02 3.122359081277034e-02 3.121013674152311e-02 - 3.119669908223311e-02 3.118327780512727e-02 3.116987287740892e-02 3.115648427590923e-02 3.114311198755302e-02 - 3.112975599208620e-02 3.111641625878769e-02 3.110309278026453e-02 3.108978554429882e-02 3.107649451605467e-02 - 3.106321967573116e-02 3.104996101093369e-02 3.103671850522385e-02 3.102349212552239e-02 3.101028184118182e-02 - 3.099708765215899e-02 3.098390954305432e-02 3.097074748653887e-02 3.095760146577434e-02 3.094447145973171e-02 - 3.093135744175442e-02 3.091825938652267e-02 3.090517727892404e-02 3.089211111199125e-02 3.087906086415095e-02 - 3.086602651045607e-02 3.085300802884278e-02 3.084000540267990e-02 3.082701861024971e-02 3.081404762072755e-02 - 3.080109242772720e-02 3.078815302348911e-02 3.077522937271052e-02 3.076232145526043e-02 3.074942925853004e-02 - 3.073655275969265e-02 3.072369193358731e-02 3.071084675893487e-02 3.069801722815575e-02 3.068520332655950e-02 - 3.067240502926292e-02 3.065962230727411e-02 3.064685514336771e-02 3.063410352936318e-02 3.062136743092317e-02 - 3.060864682743443e-02 3.059594172387181e-02 3.058325209340110e-02 3.057057790484611e-02 3.055791914232513e-02 - 3.054527578866520e-02 3.053264782274670e-02 3.052003521936738e-02 3.050743796632342e-02 3.049485605420712e-02 - 3.048228945948342e-02 3.046973815764381e-02 3.045720212753895e-02 3.044468135532321e-02 3.043217582076147e-02 - 3.041968549967531e-02 3.040721038082923e-02 3.039475044749309e-02 3.038230567464306e-02 3.036987604544383e-02 - 3.035746154526919e-02 3.034506215632694e-02 3.033267784558463e-02 3.032030859116679e-02 3.030795439680851e-02 - 3.029561524020229e-02 3.028329109283977e-02 3.027098194217670e-02 3.025868776986960e-02 3.024640855125834e-02 - 3.023414425922958e-02 3.022189488753165e-02 3.020966043396606e-02 3.019744085927903e-02 3.018523614254973e-02 - 3.017304628070488e-02 3.016087124712451e-02 3.014871101490015e-02 3.013656556629268e-02 3.012443489643160e-02 - 3.011231899192166e-02 3.010021782348693e-02 3.008813136953290e-02 3.007605961443153e-02 3.006400254477032e-02 - 3.005196013216448e-02 3.003993235442936e-02 3.002791921520012e-02 3.001592069144608e-02 3.000393675083135e-02 - 2.999196738372897e-02 2.998001257673401e-02 2.996807230790781e-02 2.995614654679549e-02 2.994423528130847e-02 - 2.993233851118915e-02 2.992045620999083e-02 2.990858835120550e-02 2.989673491731453e-02 2.988489589805536e-02 - 2.987307127537464e-02 2.986126102011340e-02 2.984946511909828e-02 2.983768356331996e-02 2.982591633787642e-02 - 2.981416341477938e-02 2.980242477098497e-02 2.979070040412034e-02 2.977899028736241e-02 2.976729439085326e-02 - 2.975561271768286e-02 2.974394525020974e-02 2.973229195799546e-02 2.972065283153817e-02 2.970902785474345e-02 - 2.969741700233630e-02 2.968582025251779e-02 2.967423759388233e-02 2.966266902120933e-02 2.965111450751603e-02 - 2.963957402972690e-02 2.962804757853395e-02 2.961653513685447e-02 2.960503668212408e-02 2.959355219023237e-02 - 2.958208165129883e-02 2.957062505724755e-02 2.955918238857859e-02 2.954775362079399e-02 2.953633873283637e-02 - 2.952493771681483e-02 2.951355054848872e-02 2.950217720053436e-02 2.949081767862442e-02 2.947947196700992e-02 - 2.946814003034778e-02 2.945682185755054e-02 2.944551743582863e-02 2.943422674341014e-02 2.942294975870480e-02 - 2.941168646812421e-02 2.940043686618776e-02 2.938920093147064e-02 2.937797864134186e-02 2.936676998172867e-02 - 2.935557493479196e-02 2.934439347979633e-02 2.933322559583284e-02 2.932207127373048e-02 2.931093050463312e-02 - 2.929980326285230e-02 2.928868953142686e-02 2.927758929945683e-02 2.926650254799867e-02 2.925542925398767e-02 - 2.924436939550082e-02 2.923332296415483e-02 2.922228995044700e-02 2.921127033783603e-02 2.920026410004271e-02 - 2.918927122033416e-02 2.917829169471517e-02 2.916732549176795e-02 2.915637258777840e-02 2.914543298801943e-02 - 2.913450667577263e-02 2.912359362430894e-02 2.911269381274288e-02 2.910180723305731e-02 2.909093387402745e-02 - 2.908007369930849e-02 2.906922669822638e-02 2.905839287303405e-02 2.904757219714476e-02 2.903676465199738e-02 - 2.902597022808873e-02 2.901518890157972e-02 2.900442065055892e-02 2.899366546087253e-02 2.898292332562971e-02 - 2.897219423070421e-02 2.896147815085827e-02 2.895077507160809e-02 2.894008498122344e-02 2.892940786384609e-02 - 2.891874369517828e-02 2.890809245634708e-02 2.889745414621765e-02 2.888682874769054e-02 2.887621623583590e-02 - 2.886561659425123e-02 2.885502981116054e-02 2.884445587294774e-02 2.883389475319686e-02 2.882334643970105e-02 - 2.881281093000496e-02 2.880228819979298e-02 2.879177822929067e-02 2.878128100842524e-02 2.877079651898801e-02 - 2.876032473884395e-02 2.874986564740009e-02 2.873941924390505e-02 2.872898552052601e-02 2.871856444638324e-02 - 2.870815600507148e-02 2.869776018641480e-02 2.868737697516582e-02 2.867700634591397e-02 2.866664827916806e-02 - 2.865630278319325e-02 2.864596983917359e-02 2.863564941328856e-02 2.862534149829953e-02 2.861504608429113e-02 - 2.860476315234840e-02 2.859449267740666e-02 2.858423464566411e-02 2.857398905422620e-02 2.856375588402207e-02 - 2.855353511594846e-02 2.854332673804624e-02 2.853313073796621e-02 2.852294709429606e-02 2.851277577543872e-02 - 2.850261678440491e-02 2.849247012219593e-02 2.848233575178603e-02 2.847221365657614e-02 2.846210383116990e-02 - 2.845200625935100e-02 2.844192091752946e-02 2.843184778466237e-02 2.842178686053369e-02 2.841173813547823e-02 - 2.840170158739025e-02 2.839167719418843e-02 2.838166494245600e-02 2.837166482484053e-02 2.836167681707307e-02 - 2.835170090137019e-02 2.834173707461769e-02 2.833178532393912e-02 2.832184563033358e-02 2.831191797277370e-02 - 2.830200233825938e-02 2.829209871310940e-02 2.828220707523810e-02 2.827232741579271e-02 2.826245972853687e-02 - 2.825260399229306e-02 2.824276019064247e-02 2.823292831178126e-02 2.822310834132040e-02 2.821330025651807e-02 - 2.820350403438503e-02 2.819371967866794e-02 2.818394718049788e-02 2.817418651237375e-02 2.816443766090156e-02 - 2.815470061416237e-02 2.814497535504664e-02 2.813526186206681e-02 2.812556012131105e-02 2.811587013236315e-02 - 2.810619188120791e-02 2.809652534562629e-02 2.808687050311100e-02 2.807722734684383e-02 2.806759586949595e-02 - 2.805797603975531e-02 2.804836784541272e-02 2.803877128655403e-02 2.802918634812817e-02 2.801961300908425e-02 - 2.801005124931340e-02 2.800050106254358e-02 2.799096243185147e-02 2.798143533065562e-02 2.797191976200169e-02 - 2.796241571829330e-02 2.795292316767612e-02 2.794344209750147e-02 2.793397250080147e-02 2.792451436474921e-02 - 2.791506766429417e-02 2.790563238187514e-02 2.789620852426368e-02 2.788679607109519e-02 2.787739499448651e-02 - 2.786800529276515e-02 2.785862695250820e-02 2.784925995023579e-02 2.783990426851568e-02 2.783055990112446e-02 - 2.782122684523413e-02 2.781190507602721e-02 2.780259457625915e-02 2.779329533996523e-02 2.778400734510273e-02 - 2.777473057425486e-02 2.776546502209671e-02 2.775621067523501e-02 2.774696751775778e-02 2.773773553529171e-02 - 2.772851471226555e-02 2.771930503638066e-02 2.771010650156085e-02 2.770091908311444e-02 2.769174275675288e-02 - 2.768257752750487e-02 2.767342338343482e-02 2.766428030170250e-02 2.765514827509389e-02 2.764602728937508e-02 - 2.763691732224667e-02 2.762781835629091e-02 2.761873038318760e-02 2.760965340016332e-02 2.760058738918467e-02 - 2.759153233095657e-02 2.758248821223181e-02 2.757345502668101e-02 2.756443275844788e-02 2.755542137569210e-02 - 2.754642087861812e-02 2.753743126859248e-02 2.752845251726651e-02 2.751948461051369e-02 2.751052754088128e-02 - 2.750158129051000e-02 2.749264584112846e-02 2.748372117908398e-02 2.747480730190011e-02 2.746590419839729e-02 - 2.745701184777745e-02 2.744813023052759e-02 2.743925933666562e-02 2.743039916197098e-02 2.742154968107790e-02 - 2.741271087850060e-02 2.740388275814067e-02 2.739506530469222e-02 2.738625849608251e-02 2.737746231424592e-02 - 2.736867675514432e-02 2.735990180809817e-02 2.735113743878892e-02 2.734238364845174e-02 2.733364044336462e-02 - 2.732490778587926e-02 2.731618566204183e-02 2.730747407386686e-02 2.729877300249025e-02 2.729008242908668e-02 - 2.728140234030172e-02 2.727273272900814e-02 2.726407358354408e-02 2.725542488697956e-02 2.724678662927163e-02 - 2.723815879907967e-02 2.722954137935252e-02 2.722093434732608e-02 2.721233769152850e-02 2.720375141931018e-02 - 2.719517551218435e-02 2.718660994644712e-02 2.717805471481514e-02 2.716950980584153e-02 2.716097520393317e-02 - 2.715245089289530e-02 2.714393686286031e-02 2.713543310581999e-02 2.712693960497614e-02 2.711845634782483e-02 - 2.710998332519429e-02 2.710152051958041e-02 2.709306791441093e-02 2.708462549834906e-02 2.707619326918369e-02 - 2.706777121480425e-02 2.705935930907671e-02 2.705095754483260e-02 2.704256591454058e-02 2.703418439795306e-02 - 2.702581298145425e-02 2.701745165546447e-02 2.700910041075726e-02 2.700075923746808e-02 2.699242812272907e-02 - 2.698410704764140e-02 2.697579599978723e-02 2.696749496984126e-02 2.695920394125775e-02 2.695092290187428e-02 - 2.694265184396634e-02 2.693439075649869e-02 2.692613962541774e-02 2.691789843589869e-02 2.690966718080280e-02 - 2.690144584430361e-02 2.689323440003169e-02 2.688503284907665e-02 2.687684119009101e-02 2.686865940030225e-02 - 2.686048746353486e-02 2.685232536881714e-02 2.684417310662326e-02 2.683603066151065e-02 2.682789801897943e-02 - 2.681977517552054e-02 2.681166212021913e-02 2.680355883616239e-02 2.679546530889016e-02 2.678738152752996e-02 - 2.677930748200765e-02 2.677124315479004e-02 2.676318853591112e-02 2.675514362231527e-02 2.674710839396962e-02 - 2.673908283555094e-02 2.673106694339361e-02 2.672306070150655e-02 2.671506409151823e-02 2.670707710108217e-02 - 2.669909972943648e-02 2.669113197027321e-02 2.668317379682501e-02 2.667522519875436e-02 2.666728617090520e-02 - 2.665935669311371e-02 2.665143675159882e-02 2.664352634032146e-02 2.663562545659268e-02 2.662773408361464e-02 - 2.661985219717407e-02 2.661197979572226e-02 2.660411687169956e-02 2.659626340488144e-02 2.658841937631547e-02 - 2.658058477937751e-02 2.657275961893512e-02 2.656494387358596e-02 2.655713752275513e-02 2.654934056348008e-02 - 2.654155298332925e-02 2.653377476657220e-02 2.652600590198415e-02 2.651824638075199e-02 2.651049619255404e-02 - 2.650275532091429e-02 2.649502375487615e-02 2.648730148802552e-02 2.647958851263073e-02 2.647188480891689e-02 - 2.646419035368700e-02 2.645650515131691e-02 2.644882919484906e-02 2.644116246069965e-02 2.643350494181170e-02 - 2.642585663084689e-02 2.641821751242615e-02 2.641058756892747e-02 2.640296679007395e-02 2.639535517653221e-02 - 2.638775271175803e-02 2.638015937698240e-02 2.637257516664822e-02 2.636500007332271e-02 2.635743408373907e-02 - 2.634987717633525e-02 2.634232934391862e-02 2.633479058525924e-02 2.632726088227431e-02 2.631974022390311e-02 - 2.631222860499385e-02 2.630472600717760e-02 2.629723241433261e-02 2.628974781674581e-02 2.628227220621198e-02 - 2.627480557677242e-02 2.626734792215179e-02 2.625989921852152e-02 2.625245945041883e-02 2.624502862403611e-02 - 2.623760671958282e-02 2.623019371536040e-02 2.622278961237779e-02 2.621539440295659e-02 2.620800807254220e-02 - 2.620063060674004e-02 2.619326199404739e-02 2.618590222410475e-02 2.617855128386046e-02 2.617120916522779e-02 - 2.616387586230346e-02 2.615655135861502e-02 2.614923564213544e-02 2.614192870720641e-02 2.613463054125929e-02 - 2.612734112755428e-02 2.612006044964381e-02 2.611278850871195e-02 2.610552530050819e-02 2.609827080222275e-02 - 2.609102500359168e-02 2.608378789925431e-02 2.607655947900249e-02 2.606933972466179e-02 2.606212861946312e-02 - 2.605492616097670e-02 2.604773234503024e-02 2.604054716124884e-02 2.603337058950191e-02 2.602620261873257e-02 - 2.601904324395194e-02 2.601189244598317e-02 2.600475021758196e-02 2.599761656283118e-02 2.599049145836681e-02 - 2.598337488632347e-02 2.597626684662969e-02 2.596916733159564e-02 2.596207632537513e-02 2.595499380688753e-02 - 2.594791977426907e-02 2.594085422650568e-02 2.593379714560815e-02 2.592674851872178e-02 2.591970833661526e-02 - 2.591267658830654e-02 2.590565326173340e-02 2.589863834578747e-02 2.589163183398775e-02 2.588463371701131e-02 - 2.587764398252935e-02 2.587066261956569e-02 2.586368961749470e-02 2.585672496539723e-02 2.584976865103265e-02 - 2.584282066471713e-02 2.583588100000093e-02 2.582894964599770e-02 2.582202659070586e-02 2.581511182332461e-02 - 2.580820533343631e-02 2.580130710958863e-02 2.579441713875388e-02 2.578753541579036e-02 2.578066193633965e-02 - 2.577379668579866e-02 2.576693964640701e-02 2.576009080523955e-02 2.575325016689414e-02 2.574641771694009e-02 - 2.573959342940173e-02 2.573277731100565e-02 2.572596935753856e-02 2.571916954588383e-02 2.571237786264848e-02 - 2.570559430241213e-02 2.569881886299849e-02 2.569205152414907e-02 2.568529227185872e-02 2.567854111122693e-02 - 2.567179802594942e-02 2.566506299732867e-02 2.565833602386073e-02 2.565161709921462e-02 2.564490620914589e-02 - 2.563820333139000e-02 2.563150846268354e-02 2.562482160754986e-02 2.561814274902439e-02 2.561147187258114e-02 - 2.560480896924013e-02 2.559815402833877e-02 2.559150703774291e-02 2.558486798572520e-02 2.557823686789989e-02 - 2.557161367849433e-02 2.556499840587265e-02 2.555839103232124e-02 2.555179154834854e-02 2.554519995829834e-02 - 2.553861624178350e-02 2.553204037844031e-02 2.552547237202886e-02 2.551891221538829e-02 2.551235989397021e-02 - 2.550581539575596e-02 2.549927871458803e-02 2.549274984258965e-02 2.548622875540724e-02 2.547971544999134e-02 - 2.547320993631275e-02 2.546671219025347e-02 2.546022219347805e-02 2.545373994243675e-02 2.544726542971977e-02 - 2.544079864501286e-02 2.543433957656028e-02 2.542788821576999e-02 2.542144455508066e-02 2.541500858637495e-02 - 2.540858030019949e-02 2.540215968413957e-02 2.539574672197945e-02 2.538934140646816e-02 2.538294373410821e-02 - 2.537655369660362e-02 2.537017128263758e-02 2.536379648098229e-02 2.535742928550868e-02 2.535106968465225e-02 - 2.534471766277936e-02 2.533837321084466e-02 2.533203632423742e-02 2.532570699881585e-02 2.531938521813243e-02 - 2.531307097096266e-02 2.530676425602581e-02 2.530046505932213e-02 2.529417336607690e-02 2.528788916915281e-02 - 2.528161246489754e-02 2.527534324609989e-02 2.526908149634068e-02 2.526282720495094e-02 2.525658036572961e-02 - 2.525034097275206e-02 2.524410901058027e-02 2.523788446449190e-02 2.523166734234336e-02 2.522545763237074e-02 - 2.521925530838600e-02 2.521306037097086e-02 2.520687281776321e-02 2.520069263496993e-02 2.519451980442291e-02 - 2.518835431925369e-02 2.518219618546694e-02 2.517604538654039e-02 2.516990190396150e-02 2.516376573127799e-02 - 2.515763686639562e-02 2.515151530112912e-02 2.514540101358030e-02 2.513929399756280e-02 2.513319425347670e-02 - 2.512710177240427e-02 2.512101654329324e-02 2.511493855506050e-02 2.510886779787783e-02 2.510280425830826e-02 - 2.509674792451250e-02 2.509069880343641e-02 2.508465688466923e-02 2.507862214067907e-02 2.507259457630134e-02 - 2.506657418922008e-02 2.506056095604422e-02 2.505455486579475e-02 2.504855591546334e-02 2.504256410459500e-02 - 2.503657941982099e-02 2.503060184642849e-02 2.502463137903613e-02 2.501866800626509e-02 2.501271171663477e-02 - 2.500676250820755e-02 2.500082037092928e-02 2.499488529135626e-02 2.498895726677344e-02 2.498303628979692e-02 - 2.497712234741346e-02 2.497121542814719e-02 2.496531552247531e-02 2.495942262282587e-02 2.495353672310340e-02 - 2.494765781766853e-02 2.494178589943900e-02 2.493592095223772e-02 2.493006296439117e-02 2.492421193524048e-02 - 2.491836784922406e-02 2.491253069345717e-02 2.490670047398909e-02 2.490087718065651e-02 2.489506079631419e-02 - 2.488925131370227e-02 2.488344872747560e-02 2.487765302865731e-02 2.487186419727612e-02 2.486608223223404e-02 - 2.486030714174834e-02 2.485453889875117e-02 2.484877749156952e-02 2.484302292908405e-02 2.483727519324232e-02 - 2.483153426549052e-02 2.482580013961989e-02 2.482007281919668e-02 2.481435229933991e-02 2.480863855780388e-02 - 2.480293158683973e-02 2.479723138421890e-02 2.479153794250162e-02 2.478585124573938e-02 2.478017128120043e-02 - 2.477449805440481e-02 2.476883155587847e-02 2.476317176818658e-02 2.475751868877601e-02 2.475187231076201e-02 - 2.474623262098153e-02 2.474059960704484e-02 2.473497326224523e-02 2.472935358498410e-02 2.472374056978996e-02 - 2.471813420423485e-02 2.471253447111526e-02 2.470694136984621e-02 2.470135489678424e-02 2.469577503399494e-02 - 2.469020177298829e-02 2.468463511029760e-02 2.467907504169421e-02 2.467352155791407e-02 2.466797464651026e-02 - 2.466243429488579e-02 2.465690049712254e-02 2.465137324948606e-02 2.464585254039273e-02 2.464033836402688e-02 - 2.463483071739735e-02 2.462932958374225e-02 2.462383495186045e-02 2.461834681928389e-02 2.461286517898853e-02 - 2.460739002108202e-02 2.460192133524253e-02 2.459645911917798e-02 2.459100336526309e-02 2.458555405446716e-02 - 2.458011118496141e-02 2.457467475465895e-02 2.456924474486533e-02 2.456382114921245e-02 2.455840396700115e-02 - 2.455299319041756e-02 2.454758880740113e-02 2.454219080674820e-02 2.453679918638537e-02 2.453141393576077e-02 - 2.452603503863916e-02 2.452066249180092e-02 2.451529629410615e-02 2.450993644073534e-02 2.450458291517292e-02 - 2.449923570627392e-02 2.449389481263279e-02 2.448856022075961e-02 2.448323192252920e-02 2.447790992354739e-02 - 2.447259420740984e-02 2.446728475663024e-02 2.446198157303190e-02 2.445668465268695e-02 2.445139398411770e-02 - 2.444610955000165e-02 2.444083134675017e-02 2.443555937646448e-02 2.443029362647454e-02 2.442503408583922e-02 - 2.441978074770511e-02 2.441453360513738e-02 2.440929264714783e-02 2.440405786136508e-02 2.439882924944217e-02 - 2.439360680824694e-02 2.438839052372590e-02 2.438318038826778e-02 2.437797639360750e-02 2.437277852674977e-02 - 2.436758678074824e-02 2.436240115296091e-02 2.435722164202054e-02 2.435204823529888e-02 2.434688091817521e-02 - 2.434171968740183e-02 2.433656453724402e-02 2.433141545805634e-02 2.432627243782077e-02 2.432113546933723e-02 - 2.431600455029639e-02 2.431087967900234e-02 2.430576084399959e-02 2.430064802749307e-02 2.429554123205279e-02 - 2.429044044976694e-02 2.428534565606734e-02 2.428025685952290e-02 2.427517406275088e-02 2.427009724038350e-02 - 2.426502638834353e-02 2.425996150697585e-02 2.425490258288459e-02 2.424984960255012e-02 2.424480255754471e-02 - 2.423976144931379e-02 2.423472627405213e-02 2.422969702193537e-02 2.422467367993699e-02 2.421965624107330e-02 - 2.421464470176334e-02 2.420963904926960e-02 2.420463927567678e-02 2.419964537946393e-02 2.419465735323985e-02 - 2.418967518800793e-02 2.418469887545246e-02 2.417972840901141e-02 2.417476377855392e-02 2.416980496962540e-02 - 2.416485198688481e-02 2.415990483049387e-02 2.415496347565664e-02 2.415002792020104e-02 2.414509816788697e-02 - 2.414017420064829e-02 2.413525600526027e-02 2.413034357711665e-02 2.412543691925479e-02 2.412053602209589e-02 - 2.411564086852338e-02 2.411075145960207e-02 2.410586778967854e-02 2.410098984367492e-02 2.409611761892932e-02 - 2.409125110932578e-02 2.408639030144091e-02 2.408153519631380e-02 2.407668578962185e-02 2.407184206146642e-02 - 2.406700400909483e-02 2.406217163125833e-02 2.405734491326586e-02 2.405252385052364e-02 2.404770844026444e-02 - 2.404289866819192e-02 2.403809452984102e-02 2.403329602484744e-02 2.402850314011094e-02 2.402371586479471e-02 - 2.401893419282938e-02 2.401415812045089e-02 2.400938764313821e-02 2.400462275334547e-02 2.399986343578922e-02 - 2.399510968520409e-02 2.399036150812855e-02 2.398561888480285e-02 2.398088180164008e-02 2.397615026865237e-02 - 2.397142427338870e-02 2.396670380040281e-02 2.396198885088599e-02 2.395727942113068e-02 2.395257549962209e-02 - 2.394787706723708e-02 2.394318412617158e-02 2.393849668455232e-02 2.393381472012022e-02 2.392913822141401e-02 - 2.392446719065216e-02 2.391980162598514e-02 2.391514151312970e-02 2.391048683154523e-02 2.390583758880722e-02 - 2.390119378770886e-02 2.389655541357522e-02 2.389192245255953e-02 2.388729489743550e-02 2.388267274893805e-02 - 2.387805599705324e-02 2.387344463051915e-02 2.386883864637205e-02 2.386423804212813e-02 2.385964281176755e-02 - 2.385505294183017e-02 2.385046842474073e-02 2.384588925674739e-02 2.384131543037479e-02 2.383674693675093e-02 - 2.383218376863605e-02 2.382762592698097e-02 2.382307340607612e-02 2.381852619200930e-02 2.381398427584630e-02 - 2.380944765139419e-02 2.380491631418275e-02 2.380039026147703e-02 2.379586948695320e-02 2.379135397827495e-02 - 2.378684372855616e-02 2.378233873403001e-02 2.377783899070361e-02 2.377334448688785e-02 2.376885521259772e-02 - 2.376437117173840e-02 2.375989235311110e-02 2.375541874056297e-02 2.375095033967465e-02 2.374648714507580e-02 - 2.374202914136664e-02 2.373757632537944e-02 2.373312869288914e-02 2.372868623536894e-02 2.372424894471153e-02 - 2.371981681484819e-02 2.371538984133524e-02 2.371096801501392e-02 2.370655132827953e-02 2.370213977833190e-02 - 2.369773335765337e-02 2.369333205880069e-02 2.368893587883010e-02 2.368454481046802e-02 2.368015884444250e-02 - 2.367577797334512e-02 2.367140218742613e-02 2.366703147963686e-02 2.366266585606776e-02 2.365830530976384e-02 - 2.365394982335759e-02 2.364959939168465e-02 2.364525401200215e-02 2.364091367903051e-02 2.363657837870221e-02 - 2.363224810602428e-02 2.362792286773459e-02 2.362360264929340e-02 2.361928743769403e-02 2.361497723470610e-02 - 2.361067203383207e-02 2.360637182449869e-02 2.360207659794005e-02 2.359778635431920e-02 2.359350109143980e-02 - 2.358922079027601e-02 2.358494544772182e-02 2.358067506765588e-02 2.357640963547734e-02 2.357214914179353e-02 - 2.356789358468287e-02 2.356364296127548e-02 2.355939726289868e-02 2.355515647729875e-02 2.355092060314220e-02 - 2.354668963726047e-02 2.354246356971432e-02 2.353824239065819e-02 2.353402609608870e-02 2.352981468856027e-02 - 2.352560815209497e-02 2.352140647526573e-02 2.351720967050562e-02 2.351301772305351e-02 2.350883061252196e-02 - 2.350464834642137e-02 2.350047092197861e-02 2.349629832802946e-02 2.349213055910952e-02 2.348796760574937e-02 - 2.348380945835795e-02 2.347965612326723e-02 2.347550759163322e-02 2.347136384068571e-02 2.346722487769892e-02 - 2.346309070523777e-02 2.345896130833473e-02 2.345483667635093e-02 2.345071680463291e-02 2.344660169327714e-02 - 2.344249133136094e-02 2.343838570884467e-02 2.343428482723373e-02 2.343018868068117e-02 2.342609726030811e-02 - 2.342201056195244e-02 2.341792857876926e-02 2.341385130156056e-02 2.340977872164902e-02 2.340571083589386e-02 - 2.340164764377465e-02 2.339758913684304e-02 2.339353530825718e-02 2.338948615385810e-02 2.338544166438565e-02 - 2.338140183238109e-02 2.337736665460082e-02 2.337333612670094e-02 2.336931024309368e-02 2.336528899670786e-02 - 2.336127237782067e-02 2.335726037932775e-02 2.335325300092871e-02 2.334925023614406e-02 2.334525207670920e-02 - 2.334125851951941e-02 2.333726955725296e-02 2.333328518197435e-02 2.332930539416707e-02 2.332533018620607e-02 - 2.332135954429912e-02 2.331739346348105e-02 2.331343194297124e-02 2.330947498175055e-02 2.330552256758802e-02 - 2.330157469245372e-02 2.329763135682490e-02 2.329369255310137e-02 2.328975827131819e-02 2.328582850377367e-02 - 2.328190324900185e-02 2.327798250467623e-02 2.327406626164597e-02 2.327015451465238e-02 2.326624725851670e-02 - 2.326234448228765e-02 2.325844618291867e-02 2.325455236057939e-02 2.325066300636415e-02 2.324677811186985e-02 - 2.324289767062798e-02 2.323902167622130e-02 2.323515012509116e-02 2.323128301561370e-02 2.322742034088871e-02 - 2.322356209250113e-02 2.321970826255392e-02 2.321585884544971e-02 2.321201383858435e-02 2.320817324137425e-02 - 2.320433704277431e-02 2.320050523099401e-02 2.319667780275936e-02 2.319285475700314e-02 2.318903609087885e-02 - 2.318522179577433e-02 2.318141186586264e-02 2.317760629632794e-02 2.317380507773795e-02 2.317000820301008e-02 - 2.316621566880872e-02 2.316242747510807e-02 2.315864361575457e-02 2.315486407850317e-02 2.315108885694486e-02 - 2.314731794816131e-02 2.314355135044316e-02 2.313978905662257e-02 2.313603105913640e-02 2.313227735329952e-02 - 2.312852793585061e-02 2.312478280157292e-02 2.312104194073204e-02 2.311730534704967e-02 2.311357301587891e-02 - 2.310984494137890e-02 2.310612112341407e-02 2.310240155989217e-02 2.309868623130452e-02 2.309497513592190e-02 - 2.309126828241582e-02 2.308756565023808e-02 2.308386723175103e-02 2.308017303542274e-02 2.307648304592169e-02 - 2.307279725617671e-02 2.306911567493640e-02 2.306543828441958e-02 2.306176507302976e-02 2.305809605235563e-02 - 2.305443121050249e-02 2.305077053229759e-02 2.304711401909808e-02 2.304346166830784e-02 2.303981347406350e-02 - 2.303616943085239e-02 2.303252953349069e-02 2.302889377643319e-02 2.302526215247478e-02 2.302163465435939e-02 - 2.301801127709388e-02 2.301439202296127e-02 2.301077688440331e-02 2.300716584594829e-02 2.300355891234385e-02 - 2.299995607931316e-02 2.299635732709070e-02 2.299276266087610e-02 2.298917208378683e-02 2.298558558107965e-02 - 2.298200314503575e-02 2.297842477288603e-02 2.297485046311076e-02 2.297128020911345e-02 2.296771400315858e-02 - 2.296415184168031e-02 2.296059371667762e-02 2.295703962066644e-02 2.295348955785851e-02 2.294994352217295e-02 - 2.294640149900077e-02 2.294286348264926e-02 2.293932947451599e-02 2.293579947717141e-02 2.293227347444131e-02 - 2.292875145668869e-02 2.292523342863249e-02 2.292171938675970e-02 2.291820932208030e-02 2.291470322329688e-02 - 2.291120108573121e-02 2.290770290936340e-02 2.290420869564250e-02 2.290071843254762e-02 2.289723210840996e-02 - 2.289374972996874e-02 2.289027128684278e-02 2.288679676284003e-02 2.288332616596880e-02 2.287985949623025e-02 - 2.287639674290211e-02 2.287293789614104e-02 2.286948295143698e-02 2.286603190794522e-02 2.286258475709644e-02 - 2.285914149325583e-02 2.285570211629635e-02 2.285226661817064e-02 2.284883499242224e-02 2.284540723897847e-02 - 2.284198334984975e-02 2.283856331588243e-02 2.283514713353579e-02 2.283173480111027e-02 2.282832631556901e-02 - 2.282492166909090e-02 2.282152085461623e-02 2.281812386736860e-02 2.281473070606539e-02 2.281134136558116e-02 - 2.280795583769253e-02 2.280457411713410e-02 2.280119619914733e-02 2.279782207936136e-02 2.279445175627783e-02 - 2.279108522557549e-02 2.278772247795469e-02 2.278436350274908e-02 2.278100829770330e-02 2.277765687156956e-02 - 2.277430921150676e-02 2.277096530368425e-02 2.276762515226868e-02 2.276428875675497e-02 2.276095610802096e-02 - 2.275762718728153e-02 2.275430199700514e-02 2.275098054723153e-02 2.274766282325953e-02 2.274434881806882e-02 - 2.274103853245654e-02 2.273773195657694e-02 2.273442908251650e-02 2.273112990748000e-02 2.272783443024632e-02 - 2.272454264587135e-02 2.272125454541999e-02 2.271797012768606e-02 2.271468938883630e-02 2.271141231743784e-02 - 2.270813891155475e-02 2.270486917113991e-02 2.270160309030139e-02 2.269834065991423e-02 2.269508187421201e-02 - 2.269182673791773e-02 2.268857524219826e-02 2.268532737305624e-02 2.268208313254210e-02 2.267884251722086e-02 - 2.267560551920548e-02 2.267237214108131e-02 2.266914237609957e-02 2.266591620883689e-02 2.266269364166427e-02 - 2.265947467384046e-02 2.265625929499294e-02 2.265304750285308e-02 2.264983929495161e-02 2.264663466331073e-02 - 2.264343359962570e-02 2.264023610100446e-02 2.263704217283995e-02 2.263385180078203e-02 2.263066497176033e-02 - 2.262748170200772e-02 2.262430198020481e-02 2.262112578516977e-02 2.261795313211606e-02 2.261478401664109e-02 - 2.261161841743119e-02 2.260845633522814e-02 2.260529777070043e-02 2.260214271924124e-02 2.259899117823321e-02 - 2.259584314154298e-02 2.259269859890657e-02 2.258955754741791e-02 2.258641998536936e-02 2.258328590829124e-02 - 2.258015531052365e-02 2.257702818646037e-02 2.257390453172050e-02 2.257078434461123e-02 2.256766762198980e-02 - 2.256455435398716e-02 2.256144453344060e-02 2.255833815784602e-02 2.255523523027356e-02 2.255213574452021e-02 - 2.254903968810603e-02 2.254594705829782e-02 2.254285785514665e-02 2.253977207653749e-02 2.253668970834607e-02 - 2.253361074658835e-02 2.253053520058667e-02 2.252746305460894e-02 2.252439429792020e-02 2.252132894054988e-02 - 2.251826697539277e-02 2.251520839162438e-02 2.251215318778324e-02 2.250910135797150e-02 2.250605289615611e-02 - 2.250300780314812e-02 2.249996607511807e-02 2.249692770517706e-02 2.249389268897849e-02 2.249086101912092e-02 - 2.248783268793952e-02 2.248480769791340e-02 2.248178604607573e-02 2.247876772289102e-02 2.247575272657626e-02 - 2.247274105420605e-02 2.246973269884927e-02 2.246672765673356e-02 2.246372592391256e-02 2.246072749418018e-02 - 2.245773236145919e-02 2.245474052366870e-02 2.245175198466864e-02 2.244876673416187e-02 2.244578475935081e-02 - 2.244280606154297e-02 2.243983064008646e-02 2.243685849064164e-02 2.243388960632717e-02 2.243092397966235e-02 - 2.242796160524575e-02 2.242500248562306e-02 2.242204661762487e-02 2.241909399183298e-02 2.241614460666303e-02 - 2.241319845819517e-02 2.241025553754803e-02 2.240731584245553e-02 2.240437937032112e-02 2.240144611432051e-02 - 2.239851607018801e-02 2.239558923444239e-02 2.239266560299412e-02 2.238974517661811e-02 2.238682795331298e-02 - 2.238391391839321e-02 2.238100306495051e-02 2.237809539304577e-02 2.237519090301935e-02 2.237228958954325e-02 - 2.236939144530989e-02 2.236649647337483e-02 2.236360466636645e-02 2.236071600836286e-02 2.235783050633204e-02 - 2.235494816009726e-02 2.235206895420678e-02 2.234919288912077e-02 2.234631996540050e-02 2.234345017408028e-02 - 2.234058350741709e-02 2.233771996217690e-02 2.233485954108143e-02 2.233200223848051e-02 2.232914804618978e-02 - 2.232629696222737e-02 2.232344898389008e-02 2.232060410657171e-02 2.231776232362639e-02 2.231492363175558e-02 - 2.231208802922137e-02 2.230925550831191e-02 2.230642606279709e-02 2.230359969032392e-02 2.230077639232617e-02 - 2.229795616382932e-02 2.229513899284023e-02 2.229232488215048e-02 2.228951382986107e-02 2.228670582046145e-02 - 2.228390085767177e-02 2.228109894426768e-02 2.227830006461064e-02 2.227550421765863e-02 2.227271140560883e-02 - 2.226992161633195e-02 2.226713484518715e-02 2.226435109357777e-02 2.226157036041665e-02 2.225879263594571e-02 - 2.225601790864145e-02 2.225324618600033e-02 2.225047746610503e-02 2.224771173578603e-02 2.224494899695189e-02 - 2.224218924606724e-02 2.223943246967720e-02 2.223667867147697e-02 2.223392785229840e-02 2.223117999944780e-02 - 2.222843510958861e-02 2.222569318138216e-02 2.222295420869658e-02 2.222021819230338e-02 2.221748513172378e-02 - 2.221475501403353e-02 2.221202783347761e-02 2.220930358964832e-02 2.220658227937696e-02 2.220386389978368e-02 - 2.220114844711944e-02 2.219843591216284e-02 2.219572629440826e-02 2.219301959936691e-02 2.219031581219321e-02 - 2.218761492468887e-02 2.218491694233576e-02 2.218222185562244e-02 2.217952965986671e-02 2.217684036403281e-02 - 2.217415395419634e-02 2.217147041795686e-02 2.216878976537657e-02 2.216611199005385e-02 2.216343708084910e-02 - 2.216076504044857e-02 2.215809586407636e-02 2.215542954392592e-02 2.215276608232491e-02 2.215010547339664e-02 - 2.214744770611955e-02 2.214479278225410e-02 2.214214070177000e-02 2.213949145934428e-02 2.213684504847090e-02 - 2.213420146383213e-02 2.213156070201421e-02 2.212892275987791e-02 2.212628763520102e-02 2.212365532631548e-02 - 2.212102582567219e-02 2.211839912707401e-02 2.211577523186081e-02 2.211315413883962e-02 2.211053584219323e-02 - 2.210792033053083e-02 2.210530760247808e-02 2.210269766011106e-02 2.210009049378774e-02 2.209748609987134e-02 - 2.209488448015577e-02 2.209228563063591e-02 2.208968954607055e-02 2.208709622107550e-02 2.208450564887732e-02 - 2.208191782589816e-02 2.207933275252874e-02 2.207675042560285e-02 2.207417084119970e-02 2.207159399606388e-02 - 2.206901988424427e-02 2.206644850045388e-02 2.206387984291528e-02 2.206131390816773e-02 2.205875069196218e-02 - 2.205619019101501e-02 2.205363240248722e-02 2.205107732226570e-02 2.204852494231603e-02 2.204597526222870e-02 - 2.204342828418220e-02 2.204088399409952e-02 2.203834238815479e-02 2.203580347352047e-02 2.203326724064265e-02 - 2.203073368487589e-02 2.202820281109562e-02 2.202567460568826e-02 2.202314905892956e-02 2.202062617713913e-02 - 2.201810595951965e-02 2.201558839960293e-02 2.201307348855861e-02 2.201056122699519e-02 2.200805161543166e-02 - 2.200554464185156e-02 2.200304030240887e-02 2.200053859846551e-02 2.199803952619762e-02 2.199554308107517e-02 - 2.199304925941878e-02 2.199055805969111e-02 2.198806947716193e-02 2.198558350490501e-02 2.198310014348315e-02 - 2.198061939050182e-02 2.197814123774413e-02 2.197566568143648e-02 2.197319271829654e-02 2.197072234409288e-02 - 2.196825456242376e-02 2.196578937054303e-02 2.196332674903257e-02 2.196086670076693e-02 2.195840923401799e-02 - 2.195595433798292e-02 2.195350200785295e-02 2.195105224287541e-02 2.194860503638501e-02 2.194616038337459e-02 - 2.194371828086876e-02 2.194127872478465e-02 2.193884171275727e-02 2.193640724439015e-02 2.193397531871202e-02 - 2.193154592984012e-02 2.192911906730429e-02 2.192669472874541e-02 2.192427291582612e-02 2.192185362988310e-02 - 2.191943685926103e-02 2.191702259589666e-02 2.191461084837004e-02 2.191220161094460e-02 2.190979487232746e-02 - 2.190739062981033e-02 2.190498888177591e-02 2.190258962778606e-02 2.190019287048831e-02 2.189779860038415e-02 - 2.189540680312951e-02 2.189301748590321e-02 2.189063064823816e-02 2.188824627921663e-02 2.188586438035036e-02 - 2.188348494945867e-02 2.188110797669410e-02 2.187873346273279e-02 2.187636140793982e-02 2.187399180563438e-02 - 2.187162464701073e-02 2.186925992764394e-02 2.186689765219864e-02 2.186453782016761e-02 2.186218042520733e-02 - 2.185982545624109e-02 2.185747291143151e-02 2.185512279286289e-02 2.185277509428750e-02 2.185042981497303e-02 - 2.184808695595145e-02 2.184574650317918e-02 2.184340845337333e-02 2.184107281435048e-02 2.183873957690715e-02 - 2.183640873122354e-02 2.183408027442373e-02 2.183175421068970e-02 2.182943053984947e-02 2.182710925220595e-02 - 2.182479034512406e-02 2.182247381639650e-02 2.182015965839264e-02 2.181784786935527e-02 2.181553844939510e-02 - 2.181323139439093e-02 2.181092669994856e-02 2.180862436262286e-02 2.180632438083940e-02 2.180402674952244e-02 - 2.180173146217098e-02 2.179943851892379e-02 2.179714791838810e-02 2.179485965603752e-02 2.179257372764807e-02 - 2.179029013045416e-02 2.178800886254997e-02 2.178572991731780e-02 2.178345329019238e-02 2.178117898198011e-02 - 2.177890698980304e-02 2.177663730909087e-02 2.177436993586566e-02 2.177210486810286e-02 2.176984210277431e-02 - 2.176758163245009e-02 2.176532345522340e-02 2.176306757137086e-02 2.176081397536724e-02 2.175856266623576e-02 - 2.175631364444715e-02 2.175406689861889e-02 2.175182242380624e-02 2.174958022311289e-02 2.174734029291431e-02 - 2.174510262809328e-02 2.174286722491656e-02 2.174063408336708e-02 2.173840320169586e-02 2.173617457340815e-02 - 2.173394819180500e-02 2.173172405255836e-02 2.172950215559655e-02 2.172728250040623e-02 2.172506508580887e-02 - 2.172284990969628e-02 2.172063696250313e-02 2.171842623537083e-02 2.171621773566752e-02 2.171401146093844e-02 - 2.171180740120238e-02 2.170960555830954e-02 2.170740592901658e-02 2.170520850408856e-02 2.170301328419004e-02 - 2.170082027006994e-02 2.169862945830807e-02 2.169644084240343e-02 2.169425441572978e-02 2.169207017401216e-02 - 2.168988812007480e-02 2.168770825534887e-02 2.168553057272023e-02 2.168335506533793e-02 2.168118172867985e-02 - 2.167901056214399e-02 2.167684156632982e-02 2.167467473989915e-02 2.167251007478243e-02 2.167034756604321e-02 - 2.166818721221639e-02 2.166602901099679e-02 2.166387295840019e-02 2.166171905012346e-02 2.165956728718834e-02 - 2.165741766632386e-02 2.165527017845730e-02 2.165312482355555e-02 2.165098160273919e-02 2.164884051303741e-02 - 2.164670154730472e-02 2.164456469954934e-02 2.164242996946321e-02 2.164029735885670e-02 2.163816686523918e-02 - 2.163603847533059e-02 2.163391219068715e-02 2.163178801684997e-02 2.162966593882407e-02 2.162754595404139e-02 - 2.162542806873079e-02 2.162331227177066e-02 2.162119856181649e-02 2.161908694674025e-02 2.161697741144211e-02 - 2.161486994763257e-02 2.161276456243416e-02 2.161066125301312e-02 2.160856001324272e-02 2.160646083892226e-02 - 2.160436373197112e-02 2.160226869104043e-02 2.160017570438035e-02 2.159808476849354e-02 2.159599588501710e-02 - 2.159390905460169e-02 2.159182427010056e-02 2.158974152429478e-02 2.158766082444429e-02 2.158558216760809e-02 - 2.158350554187339e-02 2.158143094233737e-02 2.157935837033232e-02 2.157728782941571e-02 2.157521931196140e-02 - 2.157315281164952e-02 2.157108832745493e-02 2.156902585566251e-02 2.156696539445298e-02 2.156490694526656e-02 - 2.156285049964247e-02 2.156079605212440e-02 2.155874360997529e-02 2.155669316474123e-02 2.155464470676604e-02 - 2.155259824484399e-02 2.155055377365348e-02 2.154851128035285e-02 2.154647076406023e-02 2.154443222886153e-02 - 2.154239567713112e-02 2.154036109691455e-02 2.153832848380287e-02 2.153629784162443e-02 2.153426916110383e-02 - 2.153224243839968e-02 2.153021767928900e-02 2.152819487735599e-02 2.152617402486068e-02 2.152415511969989e-02 - 2.152213816346627e-02 2.152012315489333e-02 2.151811008517867e-02 2.151609895106827e-02 2.151408975350627e-02 - 2.151208249405811e-02 2.151007716412923e-02 2.150807375412716e-02 2.150607227139823e-02 2.150407271389111e-02 - 2.150207507178008e-02 2.150007934512424e-02 2.149808553345600e-02 2.149609363244227e-02 2.149410363369511e-02 - 2.149211553597770e-02 2.149012934592863e-02 2.148814505588094e-02 2.148616265955859e-02 2.148418215959600e-02 - 2.148220354775919e-02 2.148022681859241e-02 2.147825198020547e-02 2.147627902590631e-02 2.147430794498996e-02 - 2.147233873858447e-02 2.147037140717467e-02 2.146840594879004e-02 2.146644235912430e-02 2.146448063553682e-02 - 2.146252077578778e-02 2.146056277288728e-02 2.145860662318243e-02 2.145665232726965e-02 2.145469988438242e-02 - 2.145274929256557e-02 2.145080054831608e-02 2.144885364454498e-02 2.144690857746641e-02 2.144496534942983e-02 - 2.144302395654175e-02 2.144108439499599e-02 2.143914666610025e-02 2.143721076355154e-02 2.143527668029283e-02 - 2.143334441800114e-02 2.143141397685691e-02 2.142948535268880e-02 2.142755853497146e-02 2.142563352602930e-02 - 2.142371033388222e-02 2.142178894500280e-02 2.141986935358769e-02 2.141795156402302e-02 2.141603556793572e-02 - 2.141412136230918e-02 2.141220895321441e-02 2.141029833297722e-02 2.140838949470163e-02 2.140648244009975e-02 - 2.140457716697424e-02 2.140267367166504e-02 2.140077195168551e-02 2.139887200433115e-02 2.139697382547902e-02 - 2.139507740888590e-02 2.139318275720074e-02 2.139128987343195e-02 2.138939874415982e-02 2.138750936775835e-02 - 2.138562175102568e-02 2.138373588641631e-02 2.138185176599392e-02 2.137996938652284e-02 2.137808875223814e-02 - 2.137620986251236e-02 2.137433270909064e-02 2.137245728978030e-02 2.137058360186242e-02 2.136871163953864e-02 - 2.136684140688612e-02 2.136497290390506e-02 2.136310611597474e-02 2.136124104345297e-02 2.135937769212130e-02 - 2.135751605860686e-02 2.135565613610374e-02 2.135379791822062e-02 2.135194140402438e-02 2.135008659417071e-02 - 2.134823348788390e-02 2.134638207760105e-02 2.134453236032835e-02 2.134268433814086e-02 2.134083800772077e-02 - 2.133899336411597e-02 2.133715040305821e-02 2.133530912424798e-02 2.133346952672500e-02 2.133163160670673e-02 - 2.132979536297411e-02 2.132796079152963e-02 2.132612788229375e-02 2.132429663915477e-02 2.132246706798375e-02 - 2.132063916037057e-02 2.131881290769116e-02 2.131698830582932e-02 2.131516535978050e-02 2.131334407028698e-02 - 2.131152443198118e-02 2.130970643552249e-02 2.130789007885127e-02 2.130607536669811e-02 2.130426229682303e-02 - 2.130245086421657e-02 2.130064106313053e-02 2.129883288837854e-02 2.129702633875496e-02 2.129522141788389e-02 - 2.129341812290223e-02 2.129161644909972e-02 2.128981639414264e-02 2.128801795585396e-02 2.128622113110773e-02 - 2.128442591509673e-02 2.128263230760480e-02 2.128084030772261e-02 2.127904990395241e-02 2.127726109953179e-02 - 2.127547390424031e-02 2.127368830171838e-02 2.127190428479188e-02 2.127012186038021e-02 2.126834102886177e-02 - 2.126656178481652e-02 2.126478411995624e-02 2.126300803603507e-02 2.126123353191450e-02 2.125946059821390e-02 - 2.125768923851055e-02 2.125591945439615e-02 2.125415123382016e-02 2.125238457915817e-02 2.125061949358618e-02 - 2.124885596288304e-02 2.124709398735697e-02 2.124533357303348e-02 2.124357470952245e-02 2.124181739435340e-02 - 2.124006163206048e-02 2.123830741948956e-02 2.123655475001017e-02 2.123480361731545e-02 2.123305402409987e-02 - 2.123130596739953e-02 2.122955943693203e-02 2.122781443910126e-02 2.122607097723360e-02 2.122432904130337e-02 - 2.122258862659696e-02 2.122084973282204e-02 2.121911236175234e-02 2.121737650789419e-02 2.121564216387619e-02 - 2.121390932803162e-02 2.121217800425756e-02 2.121044819455527e-02 2.120871988671843e-02 2.120699307684077e-02 - 2.120526776795157e-02 2.120354395552526e-02 2.120182163603621e-02 2.120010080901829e-02 2.119838147500087e-02 - 2.119666363123091e-02 2.119494727091758e-02 2.119323238927472e-02 2.119151898655034e-02 2.118980706773010e-02 - 2.118809662574528e-02 2.118638765303925e-02 2.118468015121633e-02 2.118297411864271e-02 2.118126955146517e-02 - 2.117956644637810e-02 2.117786480292237e-02 2.117616462067450e-02 2.117446589411339e-02 2.117276862084477e-02 - 2.117107280130004e-02 2.116937843379139e-02 2.116768551256503e-02 2.116599403067535e-02 2.116430399205533e-02 - 2.116261539753040e-02 2.116092824074994e-02 2.115924251858398e-02 2.115755822756320e-02 2.115587536308644e-02 - 2.115419393062315e-02 2.115251393109511e-02 2.115083534999197e-02 2.114915818684827e-02 2.114748244571777e-02 - 2.114580812117730e-02 2.114413521000233e-02 2.114246371011731e-02 2.114079361630021e-02 2.113912493113981e-02 - 2.113745765864524e-02 2.113579178347091e-02 2.113412730283017e-02 2.113246422731517e-02 2.113080255018658e-02 - 2.112914226466844e-02 2.112748336987266e-02 2.112582586239263e-02 2.112416973838773e-02 2.112251499585494e-02 - 2.112086163946853e-02 2.111920966923609e-02 2.111755907231158e-02 2.111590984741022e-02 2.111426199652882e-02 - 2.111261551330255e-02 2.111097039854193e-02 2.110932665501722e-02 2.110768427494188e-02 2.110604325159932e-02 - 2.110440358337455e-02 2.110276527755971e-02 2.110112832954347e-02 2.109949272542061e-02 2.109785847270291e-02 - 2.109622557382813e-02 2.109459401840321e-02 2.109296380279178e-02 2.109133492634166e-02 2.108970738897449e-02 - 2.108808119187406e-02 2.108645633261542e-02 2.108483280177793e-02 2.108321059649476e-02 2.108158971816587e-02 - 2.107997016818712e-02 2.107835194176262e-02 2.107673503228282e-02 2.107511943992769e-02 2.107350516482023e-02 - 2.107189220511111e-02 2.107028055587330e-02 2.106867021606288e-02 2.106706118735907e-02 2.106545346293816e-02 - 2.106384703796383e-02 2.106224191316689e-02 2.106063808955507e-02 2.105903556250238e-02 2.105743432153898e-02 - 2.105583437513380e-02 2.105423572746437e-02 2.105263836035830e-02 2.105104227142354e-02 2.104944746729932e-02 - 2.104785395134047e-02 2.104626171573087e-02 2.104467074966839e-02 2.104308105452007e-02 2.104149263222363e-02 - 2.103990548218236e-02 2.103831959968388e-02 2.103673498293864e-02 2.103515163200819e-02 2.103356953798411e-02 - 2.103198869775456e-02 2.103040911733209e-02 2.102883079574534e-02 2.102725372695269e-02 2.102567790273802e-02 - 2.102410332486244e-02 2.102252999507990e-02 2.102095790737760e-02 2.101938706174730e-02 2.101781745879964e-02 - 2.101624909192282e-02 2.101468195450770e-02 2.101311604447429e-02 2.101155137000445e-02 2.100998792857284e-02 - 2.100842571064132e-02 2.100686471849675e-02 2.100530495078897e-02 2.100374640001838e-02 2.100218906014547e-02 - 2.100063293273019e-02 2.099907802537045e-02 2.099752433031871e-02 2.099597184169578e-02 2.099442056340826e-02 - 2.099287048844137e-02 2.099132161182849e-02 2.098977394056553e-02 2.098822746767990e-02 2.098668218492037e-02 - 2.098513809937855e-02 2.098359520656010e-02 2.098205349870481e-02 2.098051298433238e-02 2.097897365788888e-02 - 2.097743550607582e-02 2.097589853771057e-02 2.097436275317134e-02 2.097282814179318e-02 2.097129470444368e-02 - 2.096976244194844e-02 2.096823135057212e-02 2.096670142502171e-02 2.096517266432222e-02 2.096364507294766e-02 - 2.096211864290872e-02 2.096059336882086e-02 2.095906925902597e-02 2.095754630598820e-02 2.095602449947026e-02 - 2.095450384463222e-02 2.095298434369944e-02 2.095146599313072e-02 2.094994878341327e-02 2.094843271500539e-02 - 2.094691779352117e-02 2.094540401073429e-02 2.094389136288097e-02 2.094237985194064e-02 2.094086947133280e-02 - 2.093936021927527e-02 2.093785210108921e-02 2.093634511142213e-02 2.093483924325246e-02 2.093333449385128e-02 - 2.093183086645815e-02 2.093032836253444e-02 2.092882697593887e-02 2.092732670311165e-02 2.092582754108962e-02 - 2.092432948474122e-02 2.092283253800634e-02 2.092133670446908e-02 2.091984196956714e-02 2.091834833166288e-02 - 2.091685579922333e-02 2.091536436905392e-02 2.091387403364116e-02 2.091238478662568e-02 2.091089663391256e-02 - 2.090940957508328e-02 2.090792359986955e-02 2.090643871032298e-02 2.090495490818039e-02 2.090347218811059e-02 - 2.090199054718417e-02 2.090050998308706e-02 2.089903049243704e-02 2.089755207414248e-02 2.089607472810411e-02 - 2.089459845325996e-02 2.089312324594328e-02 2.089164910255710e-02 2.089017602427597e-02 2.088870401009232e-02 - 2.088723305634642e-02 2.088576315893389e-02 2.088429431601771e-02 2.088282652696964e-02 2.088135978615913e-02 - 2.087989409321534e-02 2.087842945395569e-02 2.087696586275656e-02 2.087550331287119e-02 2.087404180207852e-02 - 2.087258132736208e-02 2.087112188861259e-02 2.086966349090147e-02 2.086820612891688e-02 2.086674979608584e-02 - 2.086529449590395e-02 2.086384022331517e-02 2.086238697045790e-02 2.086093474039187e-02 2.085948353444753e-02 - 2.085803335091995e-02 2.085658418796912e-02 2.085513604081134e-02 2.085368890289571e-02 2.085224277300881e-02 - 2.085079765267601e-02 2.084935354393509e-02 2.084791044341373e-02 2.084646834711395e-02 2.084502725286095e-02 - 2.084358715744794e-02 2.084214805848912e-02 2.084070995598070e-02 2.083927284909677e-02 2.083783673573611e-02 - 2.083640161226469e-02 2.083496747523998e-02 2.083353432223483e-02 2.083210215303235e-02 2.083067096927498e-02 - 2.082924077044086e-02 2.082781154460241e-02 2.082638329211299e-02 2.082495602309350e-02 2.082352972509603e-02 - 2.082210439277076e-02 2.082068003454410e-02 2.081925664261260e-02 2.081783421113447e-02 2.081641274508624e-02 - 2.081499224082686e-02 2.081357269450268e-02 2.081215410878219e-02 2.081073647873721e-02 2.080931979776872e-02 - 2.080790406592918e-02 2.080648928500749e-02 2.080507545608266e-02 2.080366257645188e-02 2.080225063919177e-02 - 2.080083963814898e-02 2.079942957984240e-02 2.079802046255642e-02 2.079661227641324e-02 2.079520502452446e-02 - 2.079379870732677e-02 2.079239331877295e-02 2.079098886066600e-02 2.078958533155146e-02 2.078818272238310e-02 - 2.078678103594075e-02 2.078538027480030e-02 2.078398043169412e-02 2.078258150517176e-02 2.078118349582184e-02 - 2.077978640032045e-02 2.077839021518007e-02 2.077699493798996e-02 2.077560056860569e-02 2.077420710626992e-02 - 2.077281454908150e-02 2.077142289397691e-02 2.077003213665487e-02 2.076864227381708e-02 2.076725331084939e-02 - 2.076586524753700e-02 2.076447807479244e-02 2.076309178893910e-02 2.076170639200464e-02 2.076032188924749e-02 - 2.075893827075576e-02 2.075755552867013e-02 2.075617367037054e-02 2.075479269394757e-02 2.075341259415677e-02 - 2.075203337133167e-02 2.075065502119062e-02 2.074927754004291e-02 2.074790093527532e-02 2.074652520196147e-02 - 2.074515032814618e-02 2.074377631824518e-02 2.074240317461906e-02 2.074103089389617e-02 2.073965947285912e-02 - 2.073828890806665e-02 2.073691919635770e-02 2.073555033844026e-02 2.073418233381763e-02 2.073281517823886e-02 - 2.073144886803073e-02 2.073008340377233e-02 2.072871879147831e-02 2.072735502222402e-02 2.072599208688765e-02 - 2.072462999392301e-02 2.072326873860233e-02 2.072190831224300e-02 2.072054872378210e-02 2.071918997148765e-02 - 2.071783204556565e-02 2.071647494755481e-02 2.071511867766477e-02 2.071376323196711e-02 2.071240860565183e-02 - 2.071105479791370e-02 2.070970181180314e-02 2.070834964331268e-02 2.070699828917085e-02 2.070564775075080e-02 - 2.070429802727900e-02 2.070294911380581e-02 2.070160100113699e-02 2.070025369244763e-02 2.069890719322030e-02 - 2.069756149841416e-02 2.069621660331007e-02 2.069487250616514e-02 2.069352920972353e-02 2.069218670843115e-02 - 2.069084499406914e-02 2.068950407478504e-02 2.068816395008570e-02 2.068682460979861e-02 2.068548605525363e-02 - 2.068414828647597e-02 2.068281129879088e-02 2.068147509294542e-02 2.068013966727868e-02 2.067880501481977e-02 - 2.067747113766845e-02 2.067613803889334e-02 2.067480571527677e-02 2.067347415977921e-02 2.067214336769299e-02 - 2.067081334319025e-02 2.066948408776949e-02 2.066815559807265e-02 2.066682786498898e-02 2.066550088830383e-02 - 2.066417467341183e-02 2.066284921698086e-02 2.066152451475288e-02 2.066020056372571e-02 2.065887736182303e-02 - 2.065755490839281e-02 2.065623320354572e-02 2.065491224367795e-02 2.065359202675738e-02 2.065227255436574e-02 - 2.065095382314874e-02 2.064963582941213e-02 2.064831857270797e-02 2.064700204957123e-02 2.064568625651786e-02 - 2.064437119414936e-02 2.064305686324694e-02 2.064174326345409e-02 2.064043039179931e-02 2.063911824280925e-02 - 2.063780681176866e-02 2.063649610237503e-02 2.063518611610314e-02 2.063387684909248e-02 2.063256829217405e-02 - 2.063126044539576e-02 2.062995331851188e-02 2.062864690334512e-02 2.062734119190086e-02 2.062603618600375e-02 - 2.062473188642144e-02 2.062342829221786e-02 2.062212540064643e-02 2.062082320714733e-02 2.061952170915304e-02 - 2.061822091004314e-02 2.061692080716460e-02 2.061562139605911e-02 2.061432267954307e-02 2.061302465323251e-02 - 2.061172730955065e-02 2.061043065371613e-02 2.060913468523504e-02 2.060783939685846e-02 2.060654478913799e-02 - 2.060525086119714e-02 2.060395760866959e-02 2.060266503271371e-02 2.060137313244415e-02 2.060008190215519e-02 - 2.059879134465455e-02 2.059750146004468e-02 2.059621223782829e-02 2.059492368052522e-02 2.059363579225837e-02 - 2.059234856405708e-02 2.059106199328788e-02 2.058977608130871e-02 2.058849082556723e-02 2.058720622498806e-02 - 2.058592227959311e-02 2.058463898696043e-02 2.058335634281647e-02 2.058207434376584e-02 2.058079299573017e-02 - 2.057951229614279e-02 2.057823223269817e-02 2.057695281356401e-02 2.057567404187197e-02 2.057439590387300e-02 - 2.057311839681732e-02 2.057184152455586e-02 2.057056529173392e-02 2.056928969078429e-02 2.056801471376779e-02 - 2.056674036634529e-02 2.056546664830153e-02 2.056419355486686e-02 2.056292108306100e-02 2.056164923170236e-02 - 2.056037800067255e-02 2.055910738924650e-02 2.055783739340399e-02 2.055656800859636e-02 2.055529924146672e-02 - 2.055403109005562e-02 2.055276354110791e-02 2.055149659755915e-02 2.055023026272679e-02 2.054896453244645e-02 - 2.054769940766287e-02 2.054643488681757e-02 2.054517096062926e-02 2.054390763218316e-02 2.054264490512525e-02 - 2.054138276915942e-02 2.054012122328143e-02 2.053886027085424e-02 2.053759990682471e-02 2.053634012878631e-02 - 2.053508093799464e-02 2.053382233647706e-02 2.053256431985532e-02 2.053130687980379e-02 2.053005001911220e-02 - 2.052879373804411e-02 2.052753803104820e-02 2.052628289842169e-02 2.052502834052905e-02 2.052377435424499e-02 - 2.052252093383405e-02 2.052126807833591e-02 2.052001579579881e-02 2.051876408076618e-02 2.051751292558091e-02 - 2.051626233431153e-02 2.051501230108543e-02 2.051376281904528e-02 2.051251389905356e-02 2.051126553806812e-02 - 2.051001772450580e-02 2.050877046477720e-02 2.050752375748313e-02 2.050627759308629e-02 2.050503197764233e-02 - 2.050378691120845e-02 2.050254238346269e-02 2.050129839647772e-02 2.050005495152270e-02 2.049881204279591e-02 - 2.049756967049427e-02 2.049632783497685e-02 2.049508653204386e-02 2.049384576061373e-02 2.049260552085964e-02 - 2.049136581124810e-02 2.049012662828215e-02 2.048888796855573e-02 2.048764983217528e-02 2.048641222055239e-02 - 2.048517513365279e-02 2.048393856449956e-02 2.048270250702790e-02 2.048146696002243e-02 2.048023193267689e-02 - 2.047899742444990e-02 2.047776342204647e-02 2.047652992557144e-02 2.047529693666283e-02 2.047406445284291e-02 - 2.047283247820367e-02 2.047160101124722e-02 2.047037003705319e-02 2.046913955996649e-02 2.046790958805229e-02 - 2.046668011290463e-02 2.046545112747173e-02 2.046422263048016e-02 2.046299462941648e-02 2.046176712182623e-02 - 2.046054009863872e-02 2.045931356011635e-02 2.045808750875261e-02 2.045686194483555e-02 2.045563685869128e-02 - 2.045441224888558e-02 2.045318812405373e-02 2.045196447539730e-02 2.045074129851060e-02 2.044951860203706e-02 - 2.044829637561388e-02 2.044707461146781e-02 2.044585332076453e-02 2.044463250090934e-02 2.044341214478788e-02 - 2.044219225389736e-02 2.044097282684260e-02 2.043975385980242e-02 2.043853534979080e-02 2.043731729516990e-02 - 2.043609969584751e-02 2.043488255365452e-02 2.043366586840525e-02 2.043244963622695e-02 2.043123384788510e-02 - 2.043001850356880e-02 2.042880361352058e-02 2.042758917125052e-02 2.042637516923373e-02 2.042516160738241e-02 - 2.042394848596822e-02 2.042273580364956e-02 2.042152355668345e-02 2.042031174421715e-02 2.041910036711696e-02 - 2.041788942589821e-02 2.041667891618270e-02 2.041546883283581e-02 2.041425917723074e-02 2.041304994671302e-02 - 2.041184113736942e-02 2.041063275507356e-02 2.040942479864618e-02 2.040821725911453e-02 2.040701013329647e-02 - 2.040580342336421e-02 2.040459713364973e-02 2.040339125626194e-02 2.040218578748979e-02 2.040098073437600e-02 - 2.039977609190064e-02 2.039857185194057e-02 2.039736801200263e-02 2.039616457948628e-02 2.039496155847034e-02 - 2.039375893548800e-02 2.039255670811317e-02 2.039135487906758e-02 2.039015344139171e-02 2.038895239754324e-02 - 2.038775175394349e-02 2.038655150008423e-02 2.038535163468296e-02 2.038415216492024e-02 2.038295307932101e-02 - 2.038175437156158e-02 2.038055604740632e-02 2.037935811014152e-02 2.037816055719221e-02 2.037696338008003e-02 - 2.037576657774965e-02 2.037457015197002e-02 2.037337410306159e-02 2.037217842811476e-02 2.037098312337542e-02 - 2.036978818702816e-02 2.036859361901312e-02 2.036739941883561e-02 2.036620558232109e-02 2.036501210897116e-02 - 2.036381899981477e-02 2.036262624936801e-02 2.036143385733716e-02 2.036024182706139e-02 2.035905014947786e-02 - 2.035785882153747e-02 2.035666784977269e-02 2.035547723079831e-02 2.035428696142468e-02 2.035309704319765e-02 - 2.035190747134853e-02 2.035071824110532e-02 2.034952935293085e-02 2.034834080749865e-02 2.034715260430401e-02 - 2.034596474052595e-02 2.034477721202228e-02 2.034359001578161e-02 2.034240315367684e-02 2.034121662664043e-02 - 2.034003043357028e-02 2.033884457132868e-02 2.033765903741480e-02 2.033647382949949e-02 2.033528894162872e-02 - 2.033410437471255e-02 2.033292013620119e-02 2.033173621775026e-02 2.033055261459435e-02 2.032936933387398e-02 - 2.032818637173341e-02 2.032700371995237e-02 2.032582137330103e-02 2.032463934032926e-02 2.032345762721536e-02 - 2.032227621977112e-02 2.032109511380310e-02 2.031991431266943e-02 2.031873381713771e-02 2.031755362367381e-02 - 2.031637372822898e-02 2.031519413522404e-02 2.031401484060572e-02 2.031283583475656e-02 2.031165712768451e-02 - 2.031047872082618e-02 2.030930060067025e-02 2.030812276414845e-02 2.030694521582938e-02 2.030576796297434e-02 - 2.030459099391277e-02 2.030341430130414e-02 2.030223789822972e-02 2.030106177803277e-02 2.029988592949474e-02 - 2.029871035725545e-02 2.029753506661443e-02 2.029636005659757e-02 2.029518531267896e-02 2.029401083596470e-02 - 2.029283663654064e-02 2.029166270589052e-02 2.029048903923464e-02 2.028931563858370e-02 2.028814250195392e-02 - 2.028696962711050e-02 2.028579701358946e-02 2.028462466440920e-02 2.028345257575578e-02 2.028228073462766e-02 - 2.028110914546667e-02 2.027993781542017e-02 2.027876674182124e-02 2.027759591671596e-02 2.027642533515473e-02 - 2.027525500323221e-02 2.027408491983729e-02 2.027291508043819e-02 2.027174548650143e-02 2.027057613494678e-02 - 2.026940701983228e-02 2.026823814087089e-02 2.026706949898955e-02 2.026590109425394e-02 2.026473292320746e-02 - 2.026356498366547e-02 2.026239727592488e-02 2.026122979922282e-02 2.026006255023894e-02 2.025889552388743e-02 - 2.025772872449768e-02 2.025656215399196e-02 2.025539580342713e-02 2.025422967119250e-02 2.025306375830951e-02 - 2.025189806183918e-02 2.025073258129647e-02 2.024956731656576e-02 2.024840226339874e-02 2.024723742127980e-02 - 2.024607279125879e-02 2.024490836776212e-02 2.024374415071052e-02 2.024258014353189e-02 2.024141633571028e-02 - 2.024025272656142e-02 2.023908932762591e-02 2.023792612793740e-02 2.023676312010299e-02 2.023560031179207e-02 - 2.023443769779265e-02 2.023327527310789e-02 2.023211304323675e-02 2.023095100708355e-02 2.022978916007167e-02 - 2.022862749919407e-02 2.022746602379288e-02 2.022630473371739e-02 2.022514362648272e-02 2.022398270121405e-02 - 2.022282195791762e-02 2.022166139402294e-02 2.022050100551405e-02 2.021934078921764e-02 2.021818074920451e-02 - 2.021702088593813e-02 2.021586119314628e-02 2.021470166428228e-02 2.021354230080554e-02 2.021238311308448e-02 - 2.021122409287018e-02 2.021006523025651e-02 2.020890652716039e-02 2.020774798484683e-02 2.020658960393083e-02 - 2.020543138529554e-02 2.020427332378045e-02 2.020311541298552e-02 2.020195765397637e-02 2.020080004744672e-02 - 2.019964259236717e-02 2.019848528642001e-02 2.019732812869024e-02 2.019617111926010e-02 2.019501425544548e-02 - 2.019385753379127e-02 2.019270095135025e-02 2.019154450793482e-02 2.019038820298517e-02 2.018923203417478e-02 - 2.018807600019563e-02 2.018692010151906e-02 2.018576433995726e-02 2.018460870891364e-02 2.018345320296787e-02 - 2.018229782843392e-02 2.018114258172615e-02 2.017998745649097e-02 2.017883245877245e-02 2.017767758620927e-02 - 2.017652283054322e-02 2.017536819223788e-02 2.017421367319040e-02 2.017305927292809e-02 2.017190498313902e-02 - 2.017075080461503e-02 2.016959674752286e-02 2.016844280049332e-02 2.016728895684716e-02 2.016613522539111e-02 - 2.016498159847723e-02 2.016382807033869e-02 2.016267465040216e-02 2.016152133310211e-02 2.016036811076429e-02 - 2.015921498985646e-02 2.015806197025070e-02 2.015690904702832e-02 2.015575621731957e-02 2.015460347791708e-02 - 2.015345082711757e-02 2.015229826996444e-02 2.015114580452791e-02 2.014999342256183e-02 2.014884112402139e-02 - 2.014768891079059e-02 2.014653678283008e-02 2.014538473229735e-02 2.014423275838842e-02 2.014308087159530e-02 - 2.014192906336537e-02 2.014077732405132e-02 2.013962565684693e-02 2.013847406112768e-02 2.013732253607323e-02 - 2.013617108558620e-02 2.013501970367529e-02 2.013386838304751e-02 2.013271713092954e-02 2.013156594450895e-02 - 2.013041481517404e-02 2.012926374836556e-02 2.012811274375330e-02 2.012696179396415e-02 2.012581089842930e-02 - 2.012466005832842e-02 2.012350927388322e-02 2.012235854139777e-02 2.012120785897021e-02 2.012005722808521e-02 - 2.011890664240422e-02 2.011775609861771e-02 2.011660560342765e-02 2.011545514995805e-02 2.011430473248947e-02 - 2.011315436328775e-02 2.011200403690588e-02 2.011085374071231e-02 2.010970347811273e-02 2.010855325123000e-02 - 2.010740305829795e-02 2.010625289543029e-02 2.010510276184403e-02 2.010395265874816e-02 2.010280258124321e-02 - 2.010165252783862e-02 2.010050250168409e-02 2.009935249835288e-02 2.009820251528310e-02 2.009705255512517e-02 - 2.009590261098061e-02 2.009475267797075e-02 2.009360276160796e-02 2.009245286068316e-02 2.009130297235736e-02 - 2.009015309860190e-02 2.008900323371492e-02 2.008785337125678e-02 2.008670351711407e-02 2.008555367122358e-02 - 2.008440382812401e-02 2.008325398588614e-02 2.008210414433437e-02 2.008095430334925e-02 2.007980445913736e-02 - 2.007865461009197e-02 2.007750475755383e-02 2.007635489836262e-02 2.007520502856765e-02 2.007405514609401e-02 - 2.007290525369839e-02 2.007175535352643e-02 2.007060544261636e-02 2.006945551378952e-02 2.006830556246986e-02 - 2.006715559358176e-02 2.006600560685722e-02 2.006485559907452e-02 2.006370557035152e-02 2.006255552017783e-02 - 2.006140544519211e-02 2.006025533608720e-02 2.005910519424486e-02 2.005795502866486e-02 2.005680483150780e-02 - 2.005565460068358e-02 2.005450434307724e-02 2.005335404752871e-02 2.005220370751987e-02 2.005105333078331e-02 - 2.004990291380246e-02 2.004875245256121e-02 2.004760195075808e-02 2.004645140541610e-02 2.004530081249103e-02 - 2.004415017386308e-02 2.004299948719255e-02 2.004184874893760e-02 2.004069796075558e-02 2.003954711861807e-02 - 2.003839621652469e-02 2.003724525928808e-02 2.003609424691447e-02 2.003494317431652e-02 2.003379204407136e-02 - 2.003264085311753e-02 2.003148959193977e-02 2.003033826577724e-02 2.002918687817827e-02 2.002803542325049e-02 - 2.002688389828578e-02 2.002573230084169e-02 2.002458062668545e-02 2.002342887779152e-02 2.002227705716231e-02 - 2.002112516254241e-02 2.001997318998642e-02 2.001882113644655e-02 2.001766900292078e-02 2.001651678857442e-02 - 2.001536448981540e-02 2.001421210083374e-02 2.001305962366636e-02 2.001190706486020e-02 2.001075441600587e-02 - 2.000960167234195e-02 2.000844883687991e-02 2.000729590520412e-02 2.000614287591466e-02 2.000498975435740e-02 - 2.000383653574291e-02 2.000268321490327e-02 2.000152979351511e-02 2.000037626872929e-02 1.999922263743778e-02 - 1.999806890154111e-02 1.999691505794393e-02 1.999576110265488e-02 1.999460703886217e-02 1.999345286480270e-02 - 1.999229857569377e-02 1.999114417297134e-02 1.998998965543275e-02 1.998883501902821e-02 1.998768026399775e-02 - 1.998652538946059e-02 1.998537039260291e-02 1.998421527483334e-02 1.998306003351848e-02 1.998190465988335e-02 - 1.998074915750420e-02 1.997959352937345e-02 1.997843776879367e-02 1.997728187765045e-02 1.997612585705249e-02 - 1.997496969649909e-02 1.997381339760593e-02 1.997265696528752e-02 1.997150039002939e-02 1.997034367059401e-02 - 1.996918681208352e-02 1.996802981226081e-02 1.996687266788810e-02 1.996571537594770e-02 1.996455793197006e-02 - 1.996340033608642e-02 1.996224259309599e-02 1.996108470119043e-02 1.995992665416334e-02 1.995876844505867e-02 - 1.995761008193637e-02 1.995645156786617e-02 1.995529288784624e-02 1.995413404457776e-02 1.995297504246996e-02 - 1.995181586885687e-02 1.995065652904149e-02 1.994949703248385e-02 1.994833736513130e-02 1.994717752162546e-02 - 1.994601750553184e-02 1.994485731663886e-02 1.994369695406686e-02 1.994253641736701e-02 1.994137570693218e-02 - 1.994021481716852e-02 1.993905373876526e-02 1.993789248152490e-02 1.993673104732284e-02 1.993556942048493e-02 - 1.993440760773439e-02 1.993324561433191e-02 1.993208342679873e-02 1.993092104568069e-02 1.992975847582151e-02 - 1.992859571315939e-02 1.992743275300710e-02 1.992626959353599e-02 1.992510623927749e-02 1.992394268911061e-02 - 1.992277893654564e-02 1.992161497535049e-02 1.992045080942924e-02 1.991928644769617e-02 1.991812187931771e-02 - 1.991695709651699e-02 1.991579210148713e-02 1.991462689658082e-02 1.991346148075462e-02 1.991229584907280e-02 - 1.991113000189043e-02 1.990996393932216e-02 1.990879765723607e-02 1.990763115454515e-02 1.990646443148474e-02 - 1.990529748687400e-02 1.990413031580006e-02 1.990296291532720e-02 1.990179529310021e-02 1.990062744303953e-02 - 1.989945935329500e-02 1.989829103342642e-02 1.989712248515872e-02 1.989595370004318e-02 1.989478467737964e-02 - 1.989361541884726e-02 1.989244592499573e-02 1.989127618925862e-02 1.989010620674421e-02 1.988893597834538e-02 - 1.988776550466197e-02 1.988659478703524e-02 1.988542382727661e-02 1.988425261506333e-02 1.988308114268849e-02 - 1.988190942098788e-02 1.988073745006194e-02 1.987956522359536e-02 1.987839274079954e-02 1.987722000000555e-02 - 1.987604699732070e-02 1.987487372670402e-02 1.987370019241589e-02 1.987252640362364e-02 1.987135234678179e-02 - 1.987017801708705e-02 1.986900342417090e-02 1.986782856130232e-02 1.986665342124566e-02 1.986547800516037e-02 - 1.986430231940191e-02 1.986312636323797e-02 1.986195012209680e-02 1.986077359858922e-02 1.985959679883774e-02 - 1.985841971608161e-02 1.985724235007767e-02 1.985606470192896e-02 1.985488676268764e-02 1.985370853173279e-02 - 1.985253001389235e-02 1.985135120589531e-02 1.985017210671596e-02 1.984899271721913e-02 1.984781303008921e-02 - 1.984663304141680e-02 1.984545275323681e-02 1.984427216416261e-02 1.984309127447186e-02 1.984191008724042e-02 - 1.984072859600846e-02 1.983954679442092e-02 1.983836468369445e-02 1.983718226650526e-02 1.983599954091759e-02 - 1.983481649574990e-02 1.983363313683907e-02 1.983244947316962e-02 1.983126549121019e-02 1.983008118452795e-02 - 1.982889655650101e-02 1.982771161407836e-02 1.982652635127155e-02 1.982534075477381e-02 1.982415483542671e-02 - 1.982296859699974e-02 1.982178202865004e-02 1.982059512679342e-02 1.981940789099672e-02 1.981822032140366e-02 - 1.981703241807743e-02 1.981584417989424e-02 1.981465560415464e-02 1.981346669171603e-02 1.981227744136961e-02 - 1.981108784415540e-02 1.980989790130036e-02 1.980870761757638e-02 1.980751698807925e-02 1.980632600934410e-02 - 1.980513468056937e-02 1.980394300171975e-02 1.980275097143216e-02 1.980155858653555e-02 1.980036584235624e-02 - 1.979917273943820e-02 1.979797928262491e-02 1.979678546489206e-02 1.979559128379798e-02 1.979439674657348e-02 - 1.979320184217468e-02 1.979200656369760e-02 1.979081092352834e-02 1.978961491694981e-02 1.978841853542797e-02 - 1.978722178317891e-02 1.978602465925507e-02 1.978482715855289e-02 1.978362927697639e-02 1.978243101628911e-02 - 1.978123238058121e-02 1.978003336668686e-02 1.977883396860304e-02 1.977763418131442e-02 1.977643400902304e-02 - 1.977523345232920e-02 1.977403250607500e-02 1.977283117205557e-02 1.977162944865208e-02 1.977042732702634e-02 - 1.976922480613855e-02 1.976802188997964e-02 1.976681858355301e-02 1.976561487769950e-02 1.976441076369096e-02 - 1.976320624890566e-02 1.976200133147697e-02 1.976079600616600e-02 1.975959027757971e-02 1.975838414138116e-02 - 1.975717758909272e-02 1.975597062600439e-02 1.975476325369590e-02 1.975355546738499e-02 1.975234726242962e-02 - 1.975113863825908e-02 1.974992959762522e-02 1.974872013640206e-02 1.974751025163228e-02 1.974629994489470e-02 - 1.974508921425132e-02 1.974387805573186e-02 1.974266646519683e-02 1.974145444319864e-02 1.974024199150465e-02 - 1.973902910920840e-02 1.973781579519036e-02 1.973660204598839e-02 1.973538785240977e-02 1.973417321684443e-02 - 1.973295814730416e-02 1.973174263781577e-02 1.973052668253849e-02 1.972931027913797e-02 1.972809342747564e-02 - 1.972687612827085e-02 1.972565838187941e-02 1.972444018482310e-02 1.972322153363352e-02 1.972200242687443e-02 - 1.972078286440720e-02 1.971956284541047e-02 1.971834236691286e-02 1.971712142485657e-02 1.971590001741145e-02 - 1.971467814826898e-02 1.971345581852119e-02 1.971223302479186e-02 1.971100975804211e-02 1.970978601823674e-02 - 1.970856181065497e-02 1.970733713228995e-02 1.970611197806177e-02 1.970488634450282e-02 1.970366023582840e-02 - 1.970243364879734e-02 1.970120657299705e-02 1.969997901837739e-02 1.969875098677333e-02 1.969752246217473e-02 - 1.969629345274012e-02 1.969506396226801e-02 1.969383397141272e-02 1.969260348756574e-02 1.969137252109090e-02 - 1.969014105730648e-02 1.968890909233832e-02 1.968767662961491e-02 1.968644366805134e-02 1.968521020635475e-02 - 1.968397624286150e-02 1.968274177331172e-02 1.968150679588088e-02 1.968027131148579e-02 1.967903532058098e-02 - 1.967779882218197e-02 1.967656181292412e-02 1.967532428489620e-02 1.967408623811289e-02 1.967284768294825e-02 - 1.967160860971293e-02 1.967036900987211e-02 1.966912889102269e-02 1.966788825153749e-02 1.966664708600774e-02 - 1.966540539310703e-02 1.966416317292449e-02 1.966292042476060e-02 1.966167714455673e-02 1.966043333167102e-02 - 1.965918898702837e-02 1.965794410650064e-02 1.965669868705162e-02 1.965545272765306e-02 1.965420622710374e-02 - 1.965295918609461e-02 1.965171160585919e-02 1.965046347855766e-02 1.964921480087875e-02 1.964796557872257e-02 - 1.964671580769246e-02 1.964546548231519e-02 1.964421460325605e-02 1.964296317129598e-02 1.964171118580111e-02 - 1.964045864365522e-02 1.963920554157133e-02 1.963795187629582e-02 1.963669764477085e-02 1.963544284945441e-02 - 1.963418749362842e-02 1.963293156932153e-02 1.963167507295046e-02 1.963041800662418e-02 1.962916036936736e-02 - 1.962790216073956e-02 1.962664338014056e-02 1.962538401760687e-02 1.962412407160046e-02 1.962286355381917e-02 - 1.962160245501161e-02 1.962034076606272e-02 1.961907849332115e-02 1.961781563715828e-02 1.961655219371613e-02 - 1.961528815879130e-02 1.961402353224150e-02 1.961275831461461e-02 1.961149250160691e-02 1.961022609250104e-02 - 1.960895908768241e-02 1.960769148013132e-02 1.960642326897369e-02 1.960515445887448e-02 1.960388504699325e-02 - 1.960261502901453e-02 1.960134440209794e-02 1.960007316755673e-02 1.959880132269796e-02 1.959752885956289e-02 - 1.959625578572781e-02 1.959498210471557e-02 1.959370780282661e-02 1.959243287776576e-02 1.959115733236078e-02 - 1.958988116575855e-02 1.958860437570835e-02 1.958732696070351e-02 1.958604892230215e-02 1.958477025538254e-02 - 1.958349095293616e-02 1.958221102005211e-02 1.958093045820349e-02 1.957964926225915e-02 1.957836742427244e-02 - 1.957708494595253e-02 1.957580183693370e-02 1.957451808573694e-02 1.957323368588814e-02 1.957194864588927e-02 - 1.957066295908808e-02 1.956937661864716e-02 1.956808962863577e-02 1.956680198857452e-02 1.956551369740821e-02 - 1.956422475810978e-02 1.956293516289206e-02 1.956164490198652e-02 1.956035397935251e-02 1.955906239928264e-02 - 1.955777016187055e-02 1.955647725858155e-02 1.955518368630142e-02 1.955388944730695e-02 1.955259453790914e-02 - 1.955129895574477e-02 1.955000270138056e-02 1.954870577278503e-02 1.954740816848287e-02 1.954610988870274e-02 - 1.954481093111385e-02 1.954351129226784e-02 1.954221096901902e-02 1.954090996078360e-02 1.953960826724446e-02 - 1.953830588603245e-02 1.953700281656794e-02 1.953569905855491e-02 1.953439460897686e-02 1.953308946443935e-02 - 1.953178362233442e-02 1.953047708245082e-02 1.952916984426731e-02 1.952786190592496e-02 1.952655326324738e-02 - 1.952524391408689e-02 1.952393385929222e-02 1.952262309949111e-02 1.952131163370209e-02 1.951999945844595e-02 - 1.951868656751035e-02 1.951737295829730e-02 1.951605863555755e-02 1.951474359789877e-02 1.951342784097203e-02 - 1.951211136184995e-02 1.951079415956861e-02 1.950947623396647e-02 1.950815758387342e-02 1.950683820574165e-02 - 1.950551809587482e-02 1.950419725560715e-02 1.950287568354725e-02 1.950155337574423e-02 1.950023033242808e-02 - 1.949890655251627e-02 1.949758203322258e-02 1.949625677745909e-02 1.949493078034667e-02 1.949360402739089e-02 - 1.949227653112452e-02 1.949094829757290e-02 1.948961930480046e-02 1.948828955781861e-02 1.948695906691206e-02 - 1.948562782150981e-02 1.948429581598615e-02 1.948296304982478e-02 1.948162952319633e-02 1.948029523591830e-02 - 1.947896018726217e-02 1.947762437581102e-02 1.947628779922486e-02 1.947495045397724e-02 1.947361233489661e-02 - 1.947227344348770e-02 1.947093378593678e-02 1.946959335022997e-02 1.946825212971076e-02 1.946691013283964e-02 - 1.946556736109183e-02 1.946422381089845e-02 1.946287947598024e-02 1.946153435147304e-02 1.946018843640089e-02 - 1.945884173551620e-02 1.945749424593349e-02 1.945614596164208e-02 1.945479688244431e-02 1.945344700980195e-02 - 1.945209634356683e-02 1.945074487666461e-02 1.944939260492236e-02 1.944803952905332e-02 1.944668565282712e-02 - 1.944533097303948e-02 1.944397548026850e-02 1.944261917903520e-02 1.944126207147254e-02 1.943990414971487e-02 - 1.943854540610747e-02 1.943718584222317e-02 1.943582547177293e-02 1.943446428245481e-02 1.943310226105812e-02 - 1.943173942068859e-02 1.943037575924362e-02 1.942901126749138e-02 1.942764594793762e-02 1.942627979717840e-02 - 1.942491280913776e-02 1.942354498868186e-02 1.942217633546996e-02 1.942080684436220e-02 1.941943651933332e-02 - 1.941806535493775e-02 1.941669333695301e-02 1.941532047644210e-02 1.941394677715704e-02 1.941257222315028e-02 - 1.941119681542690e-02 1.940982056035791e-02 1.940844345901757e-02 1.940706550055424e-02 1.940568667678698e-02 - 1.940430699663802e-02 1.940292645883611e-02 1.940154505765652e-02 1.940016279578962e-02 1.939877966977487e-02 - 1.939739567223053e-02 1.939601080219835e-02 1.939462506233509e-02 1.939323845462366e-02 1.939185096971125e-02 - 1.939046260516801e-02 1.938907336764642e-02 1.938768325184633e-02 1.938629225021856e-02 1.938490035911401e-02 - 1.938350758330235e-02 1.938211392651081e-02 1.938071938447496e-02 1.937932394922459e-02 1.937792761695239e-02 - 1.937653039473651e-02 1.937513227779157e-02 1.937373325789699e-02 1.937233333934693e-02 1.937093252080456e-02 - 1.936953079702195e-02 1.936812816928827e-02 1.936672463690015e-02 1.936532019607867e-02 1.936391484345597e-02 - 1.936250857586552e-02 1.936110139138094e-02 1.935969329410197e-02 1.935828428412852e-02 1.935687435366041e-02 - 1.935546349795341e-02 1.935405171682407e-02 1.935263901452006e-02 1.935122538845629e-02 1.934981083240821e-02 - 1.934839534117787e-02 1.934697891910190e-02 1.934556156924906e-02 1.934414327695751e-02 1.934272404361874e-02 - 1.934130387854031e-02 1.933988276959641e-02 1.933846071416343e-02 1.933703771882020e-02 1.933561377409585e-02 - 1.933418887831357e-02 1.933276303945045e-02 1.933133624375953e-02 1.932990848653697e-02 1.932847978247962e-02 - 1.932705012296452e-02 1.932561949662077e-02 1.932418790536504e-02 1.932275535526071e-02 1.932132184669807e-02 - 1.931988736608416e-02 1.931845191123332e-02 1.931701548648173e-02 1.931557809132799e-02 1.931413972218449e-02 - 1.931270037603072e-02 1.931126005688787e-02 1.930981875761609e-02 1.930837646527647e-02 1.930693319154590e-02 - 1.930548893938918e-02 1.930404369700001e-02 1.930259746628386e-02 1.930115024647330e-02 1.929970202824377e-02 - 1.929825281461415e-02 1.929680260792617e-02 1.929535140092010e-02 1.929389919235001e-02 1.929244598266550e-02 - 1.929099176842190e-02 1.928953654639375e-02 1.928808031414528e-02 1.928662307035359e-02 1.928516481711372e-02 - 1.928370555611205e-02 1.928224527966380e-02 1.928078398206115e-02 1.927932166173262e-02 1.927785831899656e-02 - 1.927639395364510e-02 1.927492856464996e-02 1.927346215243780e-02 1.927199471282116e-02 1.927052623652251e-02 - 1.926905672766994e-02 1.926758618873705e-02 1.926611461056382e-02 1.926464199150991e-02 1.926316833245443e-02 - 1.926169363057714e-02 1.926021788634381e-02 1.925874109903830e-02 1.925726325940621e-02 1.925578436860509e-02 - 1.925430443199749e-02 1.925282343948819e-02 1.925134138889128e-02 1.924985828498051e-02 1.924837411847957e-02 - 1.924688888599618e-02 1.924540259377309e-02 1.924391524090012e-02 1.924242682077230e-02 1.924093732460676e-02 - 1.923944675829762e-02 1.923795512510602e-02 1.923646241448938e-02 1.923496862521413e-02 1.923347375911634e-02 - 1.923197781292445e-02 1.923048078180134e-02 1.922898266296426e-02 1.922748346006174e-02 1.922598317069195e-02 - 1.922448178990142e-02 1.922297932164773e-02 1.922147575963824e-02 1.921997109174737e-02 1.921846532805457e-02 - 1.921695846861228e-02 1.921545049993734e-02 1.921394143207274e-02 1.921243126559395e-02 1.921091998083786e-02 - 1.920940758472120e-02 1.920789408374423e-02 1.920637946562360e-02 1.920486373146851e-02 1.920334688393281e-02 - 1.920182891329169e-02 1.920030981699324e-02 1.919878959725658e-02 1.919726825432456e-02 1.919574578635056e-02 - 1.919422218928470e-02 1.919269745661605e-02 1.919117158884151e-02 1.918964459045353e-02 1.918811645370936e-02 - 1.918658717454346e-02 1.918505675553962e-02 1.918352519296369e-02 1.918199248296462e-02 1.918045862469436e-02 - 1.917892361805418e-02 1.917738746182788e-02 1.917585015265352e-02 1.917431168820606e-02 1.917277206550804e-02 - 1.917123127946213e-02 1.916968933132487e-02 1.916814622316750e-02 1.916660194885779e-02 1.916505650873668e-02 - 1.916350990423480e-02 1.916196212155291e-02 1.916041316033273e-02 1.915886303062994e-02 1.915731172194125e-02 - 1.915575922930148e-02 1.915420555876758e-02 1.915265070860661e-02 1.915109467332810e-02 1.914953744666585e-02 - 1.914797902645569e-02 1.914641941412443e-02 1.914485861314037e-02 1.914329661713828e-02 1.914173341932142e-02 - 1.914016902223032e-02 1.913860342379879e-02 1.913703662029905e-02 1.913546861279183e-02 1.913389939805644e-02 - 1.913232897075573e-02 1.913075733118505e-02 1.912918447844714e-02 1.912761040908805e-02 1.912603511839811e-02 - 1.912445860715432e-02 1.912288088009771e-02 1.912130192853472e-02 1.911972174626816e-02 1.911814033569584e-02 - 1.911655769224527e-02 1.911497381452394e-02 1.911338870990516e-02 1.911180236957772e-02 1.911021478317005e-02 - 1.910862595492130e-02 1.910703588697045e-02 1.910544457683553e-02 1.910385201685182e-02 1.910225820527016e-02 - 1.910066314375077e-02 1.909906682830796e-02 1.909746925477876e-02 1.909587042200599e-02 1.909427033688354e-02 - 1.909266899402551e-02 1.909106637643193e-02 1.908946249114346e-02 1.908785734491775e-02 1.908625093213804e-02 - 1.908464324204344e-02 1.908303427175084e-02 1.908142403234494e-02 1.907981251534393e-02 1.907819971100440e-02 - 1.907658562789714e-02 1.907497026158614e-02 1.907335360333112e-02 1.907173565762024e-02 1.907011642370295e-02 - 1.906849589616872e-02 1.906687407274958e-02 1.906525095073851e-02 1.906362652703246e-02 1.906200080112851e-02 - 1.906037377260159e-02 1.905874543999789e-02 1.905711580005939e-02 1.905548484883143e-02 1.905385258297056e-02 - 1.905221900422594e-02 1.905058411108648e-02 1.904894789413228e-02 1.904731035325132e-02 1.904567149183364e-02 - 1.904403130952197e-02 1.904238980136186e-02 1.904074696113758e-02 1.903910278612417e-02 1.903745727544392e-02 - 1.903581042868199e-02 1.903416224385271e-02 1.903251272055347e-02 1.903086185871027e-02 1.902920965236104e-02 - 1.902755609551852e-02 1.902590118543579e-02 1.902424492713456e-02 1.902258731926820e-02 1.902092835050054e-02 - 1.901926802409253e-02 1.901760634215130e-02 1.901594329530476e-02 1.901427888303375e-02 1.901261310655987e-02 - 1.901094596056572e-02 1.900927744335199e-02 1.900760755425454e-02 1.900593628837979e-02 1.900426364429972e-02 - 1.900258962310978e-02 1.900091422355684e-02 1.899923743835855e-02 1.899755925950979e-02 1.899587969656637e-02 - 1.899419874741247e-02 1.899251639645128e-02 1.899083265299966e-02 1.898914752052511e-02 1.898746098477085e-02 - 1.898577304386013e-02 1.898408369969058e-02 1.898239295076986e-02 1.898070079269564e-02 1.897900722255288e-02 - 1.897731224261929e-02 1.897561584849886e-02 1.897391803334516e-02 1.897221879605241e-02 1.897051814026927e-02 - 1.896881606767167e-02 1.896711256470153e-02 1.896540762798833e-02 1.896370126437186e-02 1.896199347193909e-02 - 1.896028424413336e-02 1.895857357350164e-02 1.895686146124061e-02 1.895514791045918e-02 1.895343292131205e-02 - 1.895171648302300e-02 1.894999858923527e-02 1.894827924721451e-02 1.894655845419708e-02 1.894483620522033e-02 - 1.894311250187257e-02 1.894138733732357e-02 1.893966070463249e-02 1.893793261072514e-02 1.893620305335951e-02 - 1.893447202418282e-02 1.893273952309081e-02 1.893100555094376e-02 1.892927010627177e-02 1.892753318110494e-02 - 1.892579477108063e-02 1.892405487784487e-02 1.892231350329449e-02 1.892057064453369e-02 1.891882629307712e-02 - 1.891708044683251e-02 1.891533310610873e-02 1.891358427035544e-02 1.891183393696100e-02 1.891008210291091e-02 - 1.890832876617924e-02 1.890657392211156e-02 1.890481756749361e-02 1.890305970669826e-02 1.890130033664154e-02 - 1.889953944876527e-02 1.889777703845312e-02 1.889601310905792e-02 1.889424766560776e-02 1.889248069356991e-02 - 1.889071219005931e-02 1.888894216610460e-02 1.888717060771540e-02 1.888539750970531e-02 1.888362288621832e-02 - 1.888184672351093e-02 1.888006901097801e-02 1.887828976119468e-02 1.887650896887177e-02 1.887472662448569e-02 - 1.887294273026847e-02 1.887115728373587e-02 1.886937028132879e-02 1.886758172601296e-02 1.886579161241305e-02 - 1.886399993232671e-02 1.886220669095003e-02 1.886041188581822e-02 1.885861550746470e-02 1.885681755698847e-02 - 1.885501803485419e-02 1.885321693733238e-02 1.885141425906957e-02 1.884960999916156e-02 1.884780416185130e-02 - 1.884599674103886e-02 1.884418772927479e-02 1.884237712445391e-02 1.884056492700234e-02 1.883875113673901e-02 - 1.883693574995443e-02 1.883511876102816e-02 1.883330016667216e-02 1.883147997149076e-02 1.882965817385698e-02 - 1.882783476601560e-02 1.882600973926643e-02 1.882418309568715e-02 1.882235484340025e-02 1.882052497417560e-02 - 1.881869348031539e-02 1.881686035975185e-02 1.881502561164409e-02 1.881318923741505e-02 1.881135123913003e-02 - 1.880951160558249e-02 1.880767032900146e-02 1.880582741534564e-02 1.880398286136111e-02 1.880213666245483e-02 - 1.880028882149621e-02 1.879843933370182e-02 1.879658819228311e-02 1.879473539862031e-02 1.879288094991765e-02 - 1.879102484097325e-02 1.878916707209326e-02 1.878730764191372e-02 1.878544654683108e-02 1.878358378459472e-02 - 1.878171935183507e-02 1.877985324430765e-02 1.877798546179407e-02 1.877611600228067e-02 1.877424486050507e-02 - 1.877237203778229e-02 1.877049753324887e-02 1.876862133863330e-02 1.876674345293673e-02 1.876486387617420e-02 - 1.876298260257535e-02 1.876109963059111e-02 1.875921496034764e-02 1.875732858848502e-02 1.875544051216185e-02 - 1.875355072885378e-02 1.875165923449702e-02 1.874976602623304e-02 1.874787110336161e-02 1.874597446797304e-02 - 1.874407611425766e-02 1.874217603022874e-02 1.874027422146802e-02 1.873837068906284e-02 1.873646542198345e-02 - 1.873455842189881e-02 1.873264969164939e-02 1.873073922656172e-02 1.872882701964194e-02 1.872691306648714e-02 - 1.872499736923527e-02 1.872307992509612e-02 1.872116072949887e-02 1.871923978227258e-02 1.871731708186487e-02 - 1.871539262387551e-02 1.871346640021372e-02 1.871153841041527e-02 1.870960865979342e-02 1.870767714578883e-02 - 1.870574386089293e-02 1.870380879685916e-02 1.870187195798613e-02 1.869993334446320e-02 1.869799294696750e-02 - 1.869605076691687e-02 1.869410680376838e-02 1.869216104730458e-02 1.869021349836844e-02 1.868826416022470e-02 - 1.868631302853863e-02 1.868436009644664e-02 1.868240535897862e-02 1.868044881818047e-02 1.867849047172725e-02 - 1.867653031474529e-02 1.867456834731333e-02 1.867260456736053e-02 1.867063897034608e-02 1.866867155351236e-02 - 1.866670231459311e-02 1.866473125095620e-02 1.866275835809391e-02 1.866078363356833e-02 1.865880707775009e-02 - 1.865682868564128e-02 1.865484845476688e-02 1.865286638889887e-02 1.865088247751579e-02 1.864889671303901e-02 - 1.864690910747520e-02 1.864491965354244e-02 1.864292833855512e-02 1.864093516946379e-02 1.863894014384585e-02 - 1.863694325319922e-02 1.863494449952898e-02 1.863294388193027e-02 1.863094139526787e-02 1.862893703607748e-02 - 1.862693080034535e-02 1.862492268387857e-02 1.862291268732941e-02 1.862090081042848e-02 1.861888704957227e-02 - 1.861687140151818e-02 1.861485386231105e-02 1.861283442704270e-02 1.861081309610335e-02 1.860878986806025e-02 - 1.860676473338590e-02 1.860473769529663e-02 1.860270875778476e-02 1.860067790615180e-02 1.859864513789995e-02 - 1.859661045850656e-02 1.859457386260990e-02 1.859253534675110e-02 1.859049490946049e-02 1.858845254228221e-02 - 1.858640824383296e-02 1.858436201966219e-02 1.858231386031445e-02 1.858026376148910e-02 1.857821173011040e-02 - 1.857615775674864e-02 1.857410183289329e-02 1.857204396224591e-02 1.856998414158087e-02 1.856792236630606e-02 - 1.856585863699762e-02 1.856379295088432e-02 1.856172530348682e-02 1.855965569223371e-02 1.855758411493529e-02 - 1.855551056872843e-02 1.855343504862798e-02 1.855135755357239e-02 1.854927808391809e-02 1.854719662999937e-02 - 1.854511318947389e-02 1.854302776884543e-02 1.854094036342127e-02 1.853885096469986e-02 1.853675956540365e-02 - 1.853466616668727e-02 1.853257077183708e-02 1.853047338096206e-02 1.852837398473379e-02 1.852627257507170e-02 - 1.852416915520061e-02 1.852206372211816e-02 1.851995627104085e-02 1.851784680396669e-02 1.851573531468755e-02 - 1.851362179508880e-02 1.851150625260910e-02 1.850938868433302e-02 1.850726907790290e-02 1.850514743267316e-02 - 1.850302375022463e-02 1.850089802974987e-02 1.849877026321467e-02 1.849664044568886e-02 1.849450857919205e-02 - 1.849237466328984e-02 1.849023869225825e-02 1.848810065567833e-02 1.848596056072587e-02 1.848381841125062e-02 - 1.848167418759208e-02 1.847952788817062e-02 1.847737952020788e-02 1.847522908039946e-02 1.847307656165976e-02 - 1.847092195736722e-02 1.846876526733367e-02 1.846660649126623e-02 1.846444562782898e-02 1.846228267641075e-02 - 1.846011763022634e-02 1.845795047822359e-02 1.845578122357826e-02 1.845360986824314e-02 1.845143640646702e-02 - 1.844926083412144e-02 1.844708314829677e-02 1.844490334652741e-02 1.844272142526039e-02 1.844053738232335e-02 - 1.843835121884711e-02 1.843616292877729e-02 1.843397250473794e-02 1.843177994759022e-02 1.842958525561723e-02 - 1.842738842512387e-02 1.842518945510765e-02 1.842298833954339e-02 1.842078507029563e-02 1.841857965103055e-02 - 1.841637208298309e-02 1.841416236088061e-02 1.841195047731196e-02 1.840973642948215e-02 1.840752022011446e-02 - 1.840530184216091e-02 1.840308128892246e-02 1.840085856103635e-02 1.839863365911139e-02 1.839640658087383e-02 - 1.839417731924000e-02 1.839194587083986e-02 1.838971223370895e-02 1.838747640300020e-02 1.838523837692452e-02 - 1.838299815548432e-02 1.838075573582631e-02 1.837851111106092e-02 1.837626427462707e-02 1.837401523350234e-02 - 1.837176398539980e-02 1.836951051641877e-02 1.836725482529124e-02 1.836499691387402e-02 1.836273678151691e-02 - 1.836047442118306e-02 1.835820982858270e-02 1.835594300692513e-02 1.835367394977665e-02 1.835140264983480e-02 - 1.834912910825698e-02 1.834685332362546e-02 1.834457529066184e-02 1.834229500068380e-02 1.834001245612868e-02 - 1.833772766191195e-02 1.833544060380268e-02 1.833315127769170e-02 1.833085968975407e-02 1.832856583633842e-02 - 1.832626971106521e-02 1.832397130817964e-02 1.832167062581619e-02 1.831936766045366e-02 1.831706240632338e-02 - 1.831475486820015e-02 1.831244504576387e-02 1.831013292472488e-02 1.830781850356614e-02 1.830550178468002e-02 - 1.830318276421879e-02 1.830086143845657e-02 1.829853780375753e-02 1.829621185558813e-02 1.829388359300937e-02 - 1.829155301569956e-02 1.828922011662799e-02 1.828688489153528e-02 1.828454733892483e-02 1.828220745351499e-02 - 1.827986523367206e-02 1.827752068069898e-02 1.827517378500067e-02 1.827282454323407e-02 1.827047296291425e-02 - 1.826811903643735e-02 1.826576275326505e-02 1.826340410954280e-02 1.826104310998728e-02 1.825867975496676e-02 - 1.825631402943589e-02 1.825394593365713e-02 1.825157547349511e-02 1.824920264235266e-02 1.824682743095013e-02 - 1.824444983334214e-02 1.824206985531418e-02 1.823968749396920e-02 1.823730273947125e-02 1.823491559405069e-02 - 1.823252605635143e-02 1.823013411851380e-02 1.822773977727079e-02 1.822534302885856e-02 1.822294386817581e-02 - 1.822054229933361e-02 1.821813832218229e-02 1.821573192447362e-02 1.821332310276354e-02 1.821091185568656e-02 - 1.820849817689734e-02 1.820608206836350e-02 1.820366353310689e-02 1.820124256311412e-02 1.819881915016099e-02 - 1.819639328969794e-02 1.819396498477247e-02 1.819153423068764e-02 1.818910101812068e-02 1.818666535246774e-02 - 1.818422723286477e-02 1.818178664914423e-02 1.817934360000525e-02 1.817689808189780e-02 1.817445008627356e-02 - 1.817199961756547e-02 1.816954667558178e-02 1.816709124568389e-02 1.816463332917677e-02 1.816217292950077e-02 - 1.815971003769815e-02 1.815724465123547e-02 1.815477676809149e-02 1.815230637650250e-02 1.814983348051392e-02 - 1.814735808823705e-02 1.814488018072306e-02 1.814239975267995e-02 1.813991681262074e-02 1.813743135508509e-02 - 1.813494337086823e-02 1.813245285281114e-02 1.812995980445686e-02 1.812746422731492e-02 1.812496611573551e-02 - 1.812246546481565e-02 1.811996226848969e-02 1.811745651920204e-02 1.811494821957559e-02 1.811243737133842e-02 - 1.810992396481434e-02 1.810740799805441e-02 1.810488947142559e-02 1.810236837745802e-02 1.809984471224923e-02 - 1.809731847419077e-02 1.809478965788605e-02 1.809225826197647e-02 1.808972428730369e-02 1.808718772623545e-02 - 1.808464857219165e-02 1.808210682315950e-02 1.807956248210254e-02 1.807701554512131e-02 1.807446599893149e-02 - 1.807191384222250e-02 1.806935907649996e-02 1.806680169977935e-02 1.806424171112906e-02 1.806167910639137e-02 - 1.805911387430984e-02 1.805654601234490e-02 1.805397552118165e-02 1.805140239539148e-02 1.804882663464111e-02 - 1.804624823872755e-02 1.804366719439020e-02 1.804108350087335e-02 1.803849716547347e-02 1.803590817366155e-02 - 1.803331652090480e-02 1.803072221546651e-02 1.802812524400898e-02 1.802552559998909e-02 1.802292329257977e-02 - 1.802031831251088e-02 1.801771065083283e-02 1.801510031065072e-02 1.801248728509480e-02 1.800987156794499e-02 - 1.800725316456288e-02 1.800463207196059e-02 1.800200828229563e-02 1.799938179038418e-02 1.799675259135415e-02 - 1.799412068157979e-02 1.799148606152016e-02 1.798884872978088e-02 1.798620868169797e-02 1.798356590941466e-02 - 1.798092041139825e-02 1.797827219073602e-02 1.797562123473000e-02 1.797296753674024e-02 1.797031110360818e-02 - 1.796765193280976e-02 1.796499001786419e-02 1.796232535287627e-02 1.795965793501132e-02 1.795698776183851e-02 - 1.795431482887613e-02 1.795163913285315e-02 1.794896067070983e-02 1.794627943785036e-02 1.794359543174794e-02 - 1.794090865000600e-02 1.793821908548673e-02 1.793552673496832e-02 1.793283159877326e-02 1.793013367385930e-02 - 1.792743295577707e-02 1.792472944026945e-02 1.792202312682011e-02 1.791931400976357e-02 1.791660207728341e-02 - 1.791388733234035e-02 1.791116977642004e-02 1.790844939977351e-02 1.790572620127331e-02 1.790300018053203e-02 - 1.790027132960331e-02 1.789753964610457e-02 1.789480512776976e-02 1.789206776371137e-02 1.788932755546883e-02 - 1.788658450796398e-02 1.788383860557862e-02 1.788108984645815e-02 1.787833823870088e-02 1.787558376650758e-02 - 1.787282642238153e-02 1.787006621288861e-02 1.786730313584615e-02 1.786453718506033e-02 1.786176835331611e-02 - 1.785899663566110e-02 1.785622203220682e-02 1.785344454733639e-02 1.785066416506327e-02 1.784788087479271e-02 - 1.784509469481547e-02 1.784230561688990e-02 1.783951362363962e-02 1.783671871969004e-02 1.783392090351773e-02 - 1.783112016693977e-02 1.782831650359620e-02 1.782550991644932e-02 1.782270041052123e-02 1.781988796773664e-02 - 1.781707258188517e-02 1.781425426228424e-02 1.781143299909701e-02 1.780860878344276e-02 1.780578161636334e-02 - 1.780295150019453e-02 1.780011843142990e-02 1.779728239750767e-02 1.779444339320670e-02 1.779160141853593e-02 - 1.778875647528820e-02 1.778590855799184e-02 1.778305765851556e-02 1.778020377358821e-02 1.777734690358035e-02 - 1.777448704738365e-02 1.777162419310320e-02 1.776875833746895e-02 1.776588948369731e-02 1.776301762263940e-02 - 1.776014274927566e-02 1.775726486578331e-02 1.775438397030816e-02 1.775150005486545e-02 1.774861310790110e-02 - 1.774572313526677e-02 1.774283013776283e-02 1.773993409898065e-02 1.773703502220879e-02 1.773413291089222e-02 - 1.773122774923129e-02 1.772831953604024e-02 1.772540827370780e-02 1.772249394894422e-02 1.771957656009896e-02 - 1.771665611194296e-02 1.771373259698992e-02 1.771080600888477e-02 1.770787634473108e-02 1.770494360249459e-02 - 1.770200777818149e-02 1.769906886558849e-02 1.769612685929023e-02 1.769318175770428e-02 1.769023356261796e-02 - 1.768728226707501e-02 1.768432786370409e-02 1.768137035050212e-02 1.767840972761326e-02 1.767544598996190e-02 - 1.767247912224100e-02 1.766950912887429e-02 1.766653601772543e-02 1.766355977437013e-02 1.766058039164660e-02 - 1.765759786981226e-02 1.765461220736955e-02 1.765162339764906e-02 1.764863143247870e-02 1.764563631444012e-02 - 1.764263804044564e-02 1.763963660052613e-02 1.763663199590508e-02 1.763362422648862e-02 1.763061328532627e-02 - 1.762759916389677e-02 1.762458185742205e-02 1.762156136756127e-02 1.761853769290762e-02 1.761551082691653e-02 - 1.761248075761478e-02 1.760944748669641e-02 1.760641101894919e-02 1.760337134551661e-02 1.760032845807722e-02 - 1.759728235211478e-02 1.759423302856655e-02 1.759118048266074e-02 1.758812470690578e-02 1.758506570645847e-02 - 1.758200347417691e-02 1.757893799151254e-02 1.757586926700291e-02 1.757279730534286e-02 1.756972209521438e-02 - 1.756664362962799e-02 1.756356190543487e-02 1.756047692143249e-02 1.755738866974527e-02 1.755429714394244e-02 - 1.755120234663686e-02 1.754810427470094e-02 1.754500292288027e-02 1.754189829041229e-02 1.753879037098419e-02 - 1.753567915477636e-02 1.753256463576890e-02 1.752944681640228e-02 1.752632570156945e-02 1.752320127895599e-02 - 1.752007354011609e-02 1.751694248500407e-02 1.751380811099548e-02 1.751067041466748e-02 1.750752939229762e-02 - 1.750438503712632e-02 1.750123734468025e-02 1.749808631552286e-02 1.749493194526630e-02 1.749177422703599e-02 - 1.748861315463852e-02 1.748544872591071e-02 1.748228094036503e-02 1.747910979560325e-02 1.747593528635296e-02 - 1.747275740493088e-02 1.746957614261004e-02 1.746639150171011e-02 1.746320348827029e-02 1.746001208402579e-02 - 1.745681728232032e-02 1.745361909228664e-02 1.745041750587895e-02 1.744721251527593e-02 1.744400411995098e-02 - 1.744079231626219e-02 1.743757709612158e-02 1.743435844889677e-02 1.743113638300998e-02 1.742791090294012e-02 - 1.742468198827393e-02 1.742144963687445e-02 1.741821385208018e-02 1.741497462017237e-02 1.741173194001650e-02 - 1.740848581625378e-02 1.740523623716524e-02 1.740198319673262e-02 1.739872669626729e-02 1.739546673433575e-02 - 1.739220330474240e-02 1.738893639777237e-02 1.738566600801745e-02 1.738239213410604e-02 1.737911477739739e-02 - 1.737583393441487e-02 1.737254959973500e-02 1.736926176792087e-02 1.736597043319887e-02 1.736267559029083e-02 - 1.735937723525189e-02 1.735607536431420e-02 1.735276997535949e-02 1.734946106967137e-02 1.734614863942214e-02 - 1.734283267462293e-02 1.733951317984790e-02 1.733619014933173e-02 1.733286356952035e-02 1.732953344236944e-02 - 1.732619976822115e-02 1.732286254123125e-02 1.731952175476255e-02 1.731617740506982e-02 1.731282949118149e-02 - 1.730947800429541e-02 1.730612293897103e-02 1.730276429900506e-02 1.729940207772190e-02 1.729603626710180e-02 - 1.729266686687025e-02 1.728929387127552e-02 1.728591727431661e-02 1.728253707811547e-02 1.727915327486350e-02 - 1.727576585445017e-02 1.727237482415143e-02 1.726898017713387e-02 1.726558189725253e-02 1.726217999255776e-02 - 1.725877446141184e-02 1.725536528836806e-02 1.725195247427305e-02 1.724853602088567e-02 1.724511592318061e-02 - 1.724169217016580e-02 1.723826475637563e-02 1.723483368674653e-02 1.723139894995541e-02 1.722796053633534e-02 - 1.722451845482723e-02 1.722107270070567e-02 1.721762326419149e-02 1.721417014587169e-02 1.721071333868621e-02 - 1.720725283251134e-02 1.720378862838028e-02 1.720032072298445e-02 1.719684910908383e-02 1.719337378669194e-02 - 1.718989475327181e-02 1.718641200187306e-02 1.718292552719872e-02 1.717943532374793e-02 1.717594138625576e-02 - 1.717244371734551e-02 1.716894231509765e-02 1.716543716617480e-02 1.716192826455456e-02 1.715841561099909e-02 - 1.715489920993168e-02 1.715137904713604e-02 1.714785510917266e-02 1.714432741097788e-02 1.714079594608009e-02 - 1.713726069602739e-02 1.713372166332687e-02 1.713017885016558e-02 1.712663225240283e-02 1.712308185705881e-02 - 1.711952765873538e-02 1.711596966109396e-02 1.711240786053498e-02 1.710884225051524e-02 1.710527282476134e-02 - 1.710169958307061e-02 1.709812252022495e-02 1.709454162136748e-02 1.709095688985418e-02 1.708736832996113e-02 - 1.708377593024533e-02 1.708017968752960e-02 1.707657960032946e-02 1.707297565703870e-02 1.706936785401023e-02 - 1.706575619189593e-02 1.706214066346443e-02 1.705852126552140e-02 1.705489799818787e-02 1.705127085519305e-02 - 1.704763983091843e-02 1.704400492089210e-02 1.704036611449886e-02 1.703672340943711e-02 1.703307681394708e-02 - 1.702942631772786e-02 1.702577190966809e-02 1.702211358937508e-02 1.701845135582294e-02 1.701478520463906e-02 - 1.701111512687454e-02 1.700744111902223e-02 1.700376317991698e-02 1.700008130526762e-02 1.699639548886451e-02 - 1.699270572517141e-02 1.698901201362202e-02 1.698531434790372e-02 1.698161271901581e-02 1.697790713038581e-02 - 1.697419757947398e-02 1.697048405591379e-02 1.696676655885514e-02 1.696304508413142e-02 1.695931962055792e-02 - 1.695559016575875e-02 1.695185672007940e-02 1.694811928170539e-02 1.694437784303563e-02 1.694063239701608e-02 - 1.693688294268234e-02 1.693312947555357e-02 1.692937198914621e-02 1.692561047849961e-02 1.692184494218333e-02 - 1.691807537819241e-02 1.691430177590003e-02 1.691052413380094e-02 1.690674245501956e-02 1.690295672392027e-02 - 1.689916693403359e-02 1.689537309141036e-02 1.689157519031890e-02 1.688777322481082e-02 1.688396719247375e-02 - 1.688015708323470e-02 1.687634289028026e-02 1.687252461641300e-02 1.686870225976892e-02 1.686487581335405e-02 - 1.686104526641643e-02 1.685721061978611e-02 1.685337187596560e-02 1.684952902423863e-02 1.684568205626177e-02 - 1.684183096806695e-02 1.683797575916921e-02 1.683411642637722e-02 1.683025296370582e-02 1.682638536598722e-02 - 1.682251363071521e-02 1.681863775630957e-02 1.681475773295268e-02 1.681087355358095e-02 1.680698521822956e-02 - 1.680309272743823e-02 1.679919607564722e-02 1.679529524908240e-02 1.679139024683375e-02 1.678748107079098e-02 - 1.678356771499038e-02 1.677965016895157e-02 1.677572842703558e-02 1.677180249929987e-02 1.676787237703614e-02 - 1.676393804299063e-02 1.675999950051788e-02 1.675605674951069e-02 1.675210978219402e-02 1.674815858725950e-02 - 1.674420316518524e-02 1.674024352454331e-02 1.673627964747038e-02 1.673231152527195e-02 1.672833916857912e-02 - 1.672436256552257e-02 1.672038170373856e-02 1.671639658470834e-02 1.671240720840105e-02 1.670841357063555e-02 - 1.670441566220705e-02 1.670041347959014e-02 1.669640702110204e-02 1.669239628051189e-02 1.668838125191250e-02 - 1.668436193143650e-02 1.668033831890629e-02 1.667631040878886e-02 1.667227819212758e-02 1.666824166734860e-02 - 1.666420083129591e-02 1.666015567735254e-02 1.665610620005455e-02 1.665205239678242e-02 1.664799426695549e-02 - 1.664393180284348e-02 1.663986499713315e-02 1.663579384792829e-02 1.663171835503466e-02 1.662763851356003e-02 - 1.662355430939835e-02 1.661946574092143e-02 1.661537281150426e-02 1.661127551677910e-02 1.660717384720702e-02 - 1.660306779425839e-02 1.659895736095696e-02 1.659484254425630e-02 1.659072333444665e-02 1.658659972465595e-02 - 1.658247171530552e-02 1.657833931027815e-02 1.657420249617699e-02 1.657006126301349e-02 1.656591561144095e-02 - 1.656176553662080e-02 1.655761103381663e-02 1.655345210211223e-02 1.654928873901935e-02 1.654512093811135e-02 - 1.654094868807454e-02 1.653677198858015e-02 1.653259084096055e-02 1.652840523447503e-02 1.652421516561530e-02 - 1.652002063436291e-02 1.651582163151349e-02 1.651161815099949e-02 1.650741019156900e-02 1.650319775344297e-02 - 1.649898082810461e-02 1.649475940168675e-02 1.649053348141889e-02 1.648630306850305e-02 1.648206814836095e-02 - 1.647782871114676e-02 1.647358475732917e-02 1.646933629656457e-02 1.646508330893651e-02 1.646082578033714e-02 - 1.645656373337251e-02 1.645229715576629e-02 1.644802602626009e-02 1.644375035674409e-02 1.643947014097659e-02 - 1.643518536281393e-02 1.643089602671802e-02 1.642660213310334e-02 1.642230367492405e-02 1.641800064388943e-02 - 1.641369303446324e-02 1.640938084474308e-02 1.640506407467653e-02 1.640074271742540e-02 1.639641675907646e-02 - 1.639208620097271e-02 1.638775104513307e-02 1.638341128505268e-02 1.637906691499287e-02 1.637471792980197e-02 - 1.637036432400064e-02 1.636600609175647e-02 1.636164322915392e-02 1.635727573684415e-02 1.635290360792794e-02 - 1.634852683359730e-02 1.634414541697593e-02 1.633975935494602e-02 1.633536863669590e-02 1.633097325119221e-02 - 1.632657319870386e-02 1.632216848742881e-02 1.631775910539292e-02 1.631334504210032e-02 1.630892629731235e-02 - 1.630450287107613e-02 1.630007475715268e-02 1.629564194133085e-02 1.629120442381021e-02 1.628676220752001e-02 - 1.628231528645751e-02 1.627786365361661e-02 1.627340730437480e-02 1.626894623909321e-02 1.626448044809207e-02 - 1.626000991935131e-02 1.625553465710418e-02 1.625105466086324e-02 1.624656992364918e-02 1.624208044008659e-02 - 1.623758620493278e-02 1.623308721259990e-02 1.622858345750622e-02 1.622407493651434e-02 1.621956164908100e-02 - 1.621504359102545e-02 1.621052075671857e-02 1.620599314061202e-02 1.620146073758967e-02 1.619692354185834e-02 - 1.619238154678624e-02 1.618783475477294e-02 1.618328316706134e-02 1.617872676957040e-02 1.617416555535298e-02 - 1.616959952441603e-02 1.616502867670949e-02 1.616045300241566e-02 1.615587248863419e-02 1.615128714307292e-02 - 1.614669696726644e-02 1.614210195036420e-02 1.613750207990814e-02 1.613289735436475e-02 1.612828778261194e-02 - 1.612367334765880e-02 1.611905403879705e-02 1.611442986870223e-02 1.610980082722066e-02 1.610516690212456e-02 - 1.610052809916244e-02 1.609588441136000e-02 1.609123582829610e-02 1.608658235171540e-02 1.608192397521171e-02 - 1.607726068992654e-02 1.607259250083978e-02 1.606791940362701e-02 1.606324138657220e-02 1.605855844962495e-02 - 1.605387058768025e-02 1.604917779011535e-02 1.604448006054786e-02 1.603977739874237e-02 1.603506979420087e-02 - 1.603035723984084e-02 1.602563973257448e-02 1.602091727188371e-02 1.601618984720332e-02 1.601145745295015e-02 - 1.600672010067149e-02 1.600197777942985e-02 1.599723047266619e-02 1.599247818462375e-02 1.598772091449355e-02 - 1.598295865408641e-02 1.597819139147786e-02 1.597341912912636e-02 1.596864187530068e-02 1.596385961058315e-02 - 1.595907232771693e-02 1.595428003613896e-02 1.594948272828454e-02 1.594468039178993e-02 1.593987301780130e-02 - 1.593506061365002e-02 1.593024318102167e-02 1.592542070422077e-02 1.592059317798925e-02 1.591576060279083e-02 - 1.591092297799217e-02 1.590608029141302e-02 1.590123253274349e-02 1.589637971157846e-02 1.589152182656434e-02 - 1.588665886609507e-02 1.588179081847464e-02 1.587691768450550e-02 1.587203947045915e-02 1.586715616213467e-02 - 1.586226775168990e-02 1.585737424168921e-02 1.585247562649581e-02 1.584757190117160e-02 1.584266306445842e-02 - 1.583774911091078e-02 1.583283003450806e-02 1.582790583090947e-02 1.582297649499978e-02 1.581804202355953e-02 - 1.581310241701619e-02 1.580815766650671e-02 1.580320776320766e-02 1.579825271139450e-02 1.579329250537274e-02 - 1.578832713506978e-02 1.578335660262603e-02 1.577838090296324e-02 1.577340002574811e-02 1.576841397243399e-02 - 1.576342274326813e-02 1.575842633194578e-02 1.575342472205075e-02 1.574841791148685e-02 1.574340591569888e-02 - 1.573838872006093e-02 1.573336631006632e-02 1.572833869008299e-02 1.572330586230670e-02 1.571826781924578e-02 - 1.571322454052314e-02 1.570817603062760e-02 1.570312230059812e-02 1.569806333998715e-02 1.569299913693516e-02 - 1.568792968457186e-02 1.568285498663007e-02 1.567777503779379e-02 1.567268982728102e-02 1.566759935997030e-02 - 1.566250363482262e-02 1.565740264102256e-02 1.565229637077196e-02 1.564718482295817e-02 1.564206800099241e-02 - 1.563694589151567e-02 1.563181848599405e-02 1.562668579194260e-02 1.562154780177149e-02 1.561640450642917e-02 - 1.561125590888111e-02 1.560610200797837e-02 1.560094279515962e-02 1.559577825343192e-02 1.559060838842812e-02 - 1.558543321151646e-02 1.558025270088283e-02 1.557506685188879e-02 1.556987567405825e-02 1.556467915294808e-02 - 1.555947727806998e-02 1.555427005014520e-02 1.554905747326830e-02 1.554383954557267e-02 1.553861625685508e-02 - 1.553338760005679e-02 1.552815357203842e-02 1.552291417232042e-02 1.551766939022104e-02 1.551241921985975e-02 - 1.550716367246923e-02 1.550190274051892e-02 1.549663640983429e-02 1.549136467943576e-02 1.548608754911306e-02 - 1.548080501516420e-02 1.547551706650131e-02 1.547022370107663e-02 1.546492492363977e-02 1.545962073006300e-02 - 1.545431111106912e-02 1.544899605692932e-02 1.544367557060635e-02 1.543834964941066e-02 1.543301828099291e-02 - 1.542768146907574e-02 1.542233921474585e-02 1.541699150599057e-02 1.541163833967913e-02 1.540627971422265e-02 - 1.540091562222576e-02 1.539554606062004e-02 1.539017102808156e-02 1.538479052048013e-02 1.537940453376258e-02 - 1.537401306270197e-02 1.536861609811398e-02 1.536321364249661e-02 1.535780570199338e-02 1.535239225620149e-02 - 1.534697329939463e-02 1.534154884369051e-02 1.533611887960563e-02 1.533068339829330e-02 1.532524239983298e-02 - 1.531979587995433e-02 1.531434383110085e-02 1.530888624554550e-02 1.530342313142362e-02 1.529795449144603e-02 - 1.529248030485156e-02 1.528700056732233e-02 1.528151528324413e-02 1.527602445059826e-02 1.527052806021316e-02 - 1.526502610370102e-02 1.525951858764995e-02 1.525400550804322e-02 1.524848685322667e-02 1.524296262660809e-02 - 1.523743282528689e-02 1.523189743753784e-02 1.522635646012132e-02 1.522080989370855e-02 1.521525773883866e-02 - 1.520969998584297e-02 1.520413662809972e-02 1.519856766896251e-02 1.519299310438481e-02 1.518741292689401e-02 - 1.518182713051541e-02 1.517623571498702e-02 1.517063867977171e-02 1.516503601659771e-02 1.515942772580205e-02 - 1.515381380882217e-02 1.514819425008754e-02 1.514256904339338e-02 1.513693819284546e-02 1.513130169987854e-02 - 1.512565955837021e-02 1.512001175774349e-02 1.511435830052952e-02 1.510869918485496e-02 1.510303439909880e-02 - 1.509736393861015e-02 1.509168780464220e-02 1.508600600178219e-02 1.508031852355242e-02 1.507462535986425e-02 - 1.506892650464710e-02 1.506322195838325e-02 1.505751172137055e-02 1.505179578553525e-02 1.504607414992266e-02 - 1.504034681527993e-02 1.503461377008154e-02 1.502887501067205e-02 1.502313053999477e-02 1.501738035243006e-02 - 1.501162444030474e-02 1.500586279803602e-02 1.500009542963074e-02 1.499432233574762e-02 1.498854350912934e-02 - 1.498275894315130e-02 1.497696863387312e-02 1.497117258012378e-02 1.496537077480856e-02 1.495956321394884e-02 - 1.495374990400090e-02 1.494793083920974e-02 1.494210600904758e-02 1.493627541059610e-02 1.493043904648383e-02 - 1.492459691659297e-02 1.491874900408085e-02 1.491289530722370e-02 1.490703583623931e-02 1.490117058646935e-02 - 1.489529954725381e-02 1.488942270892006e-02 1.488354007804980e-02 1.487765165385858e-02 1.487175742273507e-02 - 1.486585738883519e-02 1.485995155398175e-02 1.485403990610964e-02 1.484812243988829e-02 1.484219915557141e-02 - 1.483627005584607e-02 1.483033513203473e-02 1.482439437542072e-02 1.481844779264578e-02 1.481249538141862e-02 - 1.480653713381494e-02 1.480057304868135e-02 1.479460312202780e-02 1.478862734716873e-02 1.478264572087699e-02 - 1.477665824308106e-02 1.477066491441443e-02 1.476466572742758e-02 1.475866067903805e-02 1.475264977269339e-02 - 1.474663299844858e-02 1.474061034872640e-02 1.473458182710518e-02 1.472854743115566e-02 1.472250715651883e-02 - 1.471646100132783e-02 1.471040896256117e-02 1.470435103749897e-02 1.469828722554372e-02 1.469221751827344e-02 - 1.468614190646898e-02 1.468006039547928e-02 1.467397298615093e-02 1.466787967378610e-02 1.466178045636883e-02 - 1.465567533041493e-02 1.464956428982840e-02 1.464344732703370e-02 1.463732444018100e-02 1.463119563426315e-02 - 1.462506090797482e-02 1.461892025637629e-02 1.461277367320199e-02 1.460662115516677e-02 1.460046270026797e-02 - 1.459429830605704e-02 1.458812796887011e-02 1.458195168595082e-02 1.457576945823491e-02 1.456958128559711e-02 - 1.456338716422361e-02 1.455718708308891e-02 1.455098103823577e-02 1.454476903226018e-02 1.453855106504101e-02 - 1.453232713525658e-02 1.452609724028033e-02 1.451986137384772e-02 1.451361953112174e-02 1.450737171027855e-02 - 1.450111790831084e-02 1.449485812287890e-02 1.448859235383744e-02 1.448232060352556e-02 1.447604287018101e-02 - 1.446975914267516e-02 1.446346941597466e-02 1.445717368938523e-02 1.445087196279080e-02 1.444456423724572e-02 - 1.443825051237331e-02 1.443193078136921e-02 1.442560503975330e-02 1.441927328581930e-02 1.441293551683267e-02 - 1.440659172970616e-02 1.440024192165075e-02 1.439388609177658e-02 1.438752424156573e-02 1.438115637277796e-02 - 1.437478247503487e-02 1.436840254149195e-02 1.436201657648160e-02 1.435562457263202e-02 1.434922652522855e-02 - 1.434282244486077e-02 1.433641232984850e-02 1.432999617114929e-02 1.432357396196595e-02 1.431714570255755e-02 - 1.431071139387867e-02 1.430427102559402e-02 1.429782460021014e-02 1.429137212732056e-02 1.428491359501307e-02 - 1.427844899676062e-02 1.427197833606156e-02 1.426550161130239e-02 1.425901881685885e-02 1.425252994564961e-02 - 1.424603499980085e-02 1.423953398385027e-02 1.423302689906778e-02 1.422651373475527e-02 1.421999448399202e-02 - 1.421346915585374e-02 1.420693774198730e-02 1.420040023237321e-02 1.419385663850131e-02 1.418730696003290e-02 - 1.418075118751426e-02 1.417418931634679e-02 1.416762135086922e-02 1.416104729584521e-02 1.415446713263836e-02 - 1.414788085973522e-02 1.414128849363525e-02 1.413469002361970e-02 1.412808544052846e-02 1.412147474772301e-02 - 1.411485794712882e-02 1.410823503604182e-02 1.410160600672222e-02 1.409497085818714e-02 1.408832959214252e-02 - 1.408168220875668e-02 1.407502870564407e-02 1.406836907961611e-02 1.406170332864153e-02 1.405503144837146e-02 - 1.404835343608425e-02 1.404166929852345e-02 1.403497903248639e-02 1.402828262916828e-02 1.402158009603205e-02 - 1.401487143048169e-02 1.400815661918214e-02 1.400143566703935e-02 1.399470857625501e-02 1.398797534046779e-02 - 1.398123596549795e-02 1.397449045134991e-02 1.396773878380821e-02 1.396098096640959e-02 1.395421700271061e-02 - 1.394744688102961e-02 1.394067060648909e-02 1.393388818692338e-02 1.392709961198955e-02 1.392030488001634e-02 - 1.391350399327543e-02 1.390669694254475e-02 1.389988372719557e-02 1.389306435287330e-02 1.388623881438261e-02 - 1.387940711188756e-02 1.387256925103053e-02 1.386572522405790e-02 1.385887502683316e-02 1.385201866296698e-02 - 1.384515612379329e-02 1.383828740611332e-02 1.383141252098464e-02 1.382453146615934e-02 1.381764423695148e-02 - 1.381075083621117e-02 1.380385125926009e-02 1.379694549932224e-02 1.379003355634722e-02 1.378311543405784e-02 - 1.377619113577579e-02 1.376926065784134e-02 1.376232399626086e-02 1.375538114862362e-02 1.374843211529037e-02 - 1.374147689626999e-02 1.373451549097131e-02 1.372754790081035e-02 1.372057412482435e-02 1.371359415880417e-02 - 1.370660800191563e-02 1.369961565562416e-02 1.369261712158748e-02 1.368561239160383e-02 1.367860146147292e-02 - 1.367158434223160e-02 1.366456103295884e-02 1.365753152816715e-02 1.365049582984413e-02 1.364345393626983e-02 - 1.363640584363454e-02 1.362935155197557e-02 1.362229106201978e-02 1.361522437421294e-02 1.360815148809621e-02 - 1.360107240365773e-02 1.359398712117658e-02 1.358689563898480e-02 1.357979795217255e-02 1.357269405533802e-02 - 1.356558396017600e-02 1.355846767355538e-02 1.355134518540141e-02 1.354421648973967e-02 1.353708158728038e-02 - 1.352994048497773e-02 1.352279317412557e-02 1.351563964921714e-02 1.350847993234027e-02 1.350131401794928e-02 - 1.349414188812881e-02 1.348696355361660e-02 1.347977901858603e-02 1.347258827670450e-02 1.346539132112732e-02 - 1.345818815687027e-02 1.345097879723517e-02 1.344376323611521e-02 1.343654146470481e-02 1.342931348024562e-02 - 1.342207929164266e-02 1.341483890125029e-02 1.340759229714105e-02 1.340033948592649e-02 1.339308047488992e-02 - 1.338581525615185e-02 1.337854383232506e-02 1.337126620737807e-02 1.336398237245951e-02 1.335669232490426e-02 - 1.334939606999042e-02 1.334209361886319e-02 1.333478496691931e-02 1.332747010093965e-02 1.332014902896288e-02 - 1.331282175723704e-02 1.330548828381385e-02 1.329814860211957e-02 1.329080271412866e-02 1.328345063097246e-02 - 1.327609234424045e-02 1.326872784914616e-02 1.326135715657202e-02 1.325398026514318e-02 1.324659716972378e-02 - 1.323920787031880e-02 1.323181236976987e-02 1.322441067219326e-02 1.321700278123619e-02 1.320958869473772e-02 - 1.320216840889533e-02 1.319474192647233e-02 1.318730924299288e-02 1.317987035320805e-02 1.317242527523754e-02 - 1.316497401404441e-02 1.315751655750498e-02 1.315005290457417e-02 1.314258305915991e-02 1.313510702533477e-02 - 1.312762479749873e-02 1.312013637454663e-02 1.311264176674524e-02 1.310514097528989e-02 1.309763399743803e-02 - 1.309012083240218e-02 1.308260148524151e-02 1.307507595779872e-02 1.306754423810231e-02 1.306000633130083e-02 - 1.305246225068735e-02 1.304491199415833e-02 1.303735555888092e-02 1.302979294561730e-02 1.302222416114251e-02 - 1.301464920127586e-02 1.300706805512286e-02 1.299948074007148e-02 1.299188726392925e-02 1.298428761376350e-02 - 1.297668178953030e-02 1.296906979917289e-02 1.296145165196894e-02 1.295382733572278e-02 1.294619684321666e-02 - 1.293856019418804e-02 1.293091739361701e-02 1.292326843600229e-02 1.291561331594024e-02 1.290795203962965e-02 - 1.290028461406370e-02 1.289261102589192e-02 1.288493127982097e-02 1.287724539399148e-02 1.286955336728896e-02 - 1.286185519483855e-02 1.285415087393522e-02 1.284644040779901e-02 1.283872379943217e-02 1.283100105007112e-02 - 1.282327216499671e-02 1.281553714651719e-02 1.280779599126801e-02 1.280004870582322e-02 1.279229529551004e-02 - 1.278453575462785e-02 1.277677008230648e-02 1.276899828322272e-02 1.276122036637128e-02 1.275343633303281e-02 - 1.274564618082443e-02 1.273784991358546e-02 1.273004753391990e-02 1.272223904101719e-02 1.271442442957637e-02 - 1.270660370794978e-02 1.269877689384363e-02 1.269094397773904e-02 1.268310495443295e-02 1.267525983383190e-02 - 1.266740862159357e-02 1.265955131610305e-02 1.265168790986125e-02 1.264381841321034e-02 1.263594283614933e-02 - 1.262806117310012e-02 1.262017342951705e-02 1.261227961209872e-02 1.260437971406514e-02 1.259647373729069e-02 - 1.258856168925583e-02 1.258064357239260e-02 1.257271939240096e-02 1.256478915520078e-02 1.255685285459754e-02 - 1.254891049173029e-02 1.254096207570647e-02 1.253300760376554e-02 1.252504707668881e-02 1.251708050378790e-02 - 1.250910789128773e-02 1.250112924190730e-02 1.249314455497329e-02 1.248515382942968e-02 1.247715706626537e-02 - 1.246915427066142e-02 1.246114545004359e-02 1.245313061093009e-02 1.244510975519442e-02 1.243708288271855e-02 - 1.242904999334644e-02 1.242101108960597e-02 1.241296617602342e-02 1.240491525784085e-02 1.239685833832253e-02 - 1.238879542265411e-02 1.238072651672425e-02 1.237265161832934e-02 1.236457072972670e-02 1.235648385971585e-02 - 1.234839100475330e-02 1.234029216644840e-02 1.233218735967670e-02 1.232407658450629e-02 1.231595983825897e-02 - 1.230783712734204e-02 1.229970846199802e-02 1.229157384500942e-02 1.228343326032102e-02 1.227528672233900e-02 - 1.226713425500730e-02 1.225897584359588e-02 1.225081148758153e-02 1.224264120133804e-02 1.223446498720786e-02 - 1.222628284514866e-02 1.221809477711035e-02 1.220990079161559e-02 1.220170089405064e-02 1.219349508434973e-02 - 1.218528336781141e-02 1.217706575082829e-02 1.216884223701085e-02 1.216061282093886e-02 1.215237750559525e-02 - 1.214413631491834e-02 1.213588924765066e-02 1.212763629639266e-02 1.211937747504947e-02 1.211111278696468e-02 - 1.210284222899338e-02 1.209456580676226e-02 1.208628352659129e-02 1.207799539529086e-02 1.206970142400196e-02 - 1.206140161359375e-02 1.205309595715539e-02 1.204478446558403e-02 1.203646714593309e-02 1.202814399601385e-02 - 1.201981502726849e-02 1.201148024892713e-02 1.200313965960066e-02 1.199479326438714e-02 1.198644106975963e-02 - 1.197808307814890e-02 1.196971928979660e-02 1.196134970757412e-02 1.195297434273665e-02 1.194459320579336e-02 - 1.193620630286995e-02 1.192781363156250e-02 1.191941519457288e-02 1.191101099930699e-02 1.190260104978759e-02 - 1.189418535108248e-02 1.188576391078268e-02 1.187733673904143e-02 1.186890383909906e-02 1.186046520717658e-02 - 1.185202085452967e-02 1.184357078721630e-02 1.183511499765447e-02 1.182665350164435e-02 1.181818631619212e-02 - 1.180971343948878e-02 1.180123487113532e-02 1.179275061618258e-02 1.178426068678883e-02 1.177576508273127e-02 - 1.176726380098327e-02 1.175875685721244e-02 1.175024426443667e-02 1.174172602804813e-02 1.173320214474543e-02 - 1.172467261918110e-02 1.171613746318596e-02 1.170759667473828e-02 1.169905025976067e-02 1.169049823639713e-02 - 1.168194060529573e-02 1.167337736787376e-02 1.166480853596695e-02 1.165623411322526e-02 1.164765410079015e-02 - 1.163906850325271e-02 1.163047732858534e-02 1.162188058835008e-02 1.161327829716097e-02 1.160467045202270e-02 - 1.159605704763531e-02 1.158743810702480e-02 1.157881363156412e-02 1.157018361041755e-02 1.156154807040710e-02 - 1.155290702254676e-02 1.154426045745637e-02 1.153560838867705e-02 1.152695082724772e-02 1.151828777265603e-02 - 1.150961922666123e-02 1.150094519786783e-02 1.149226570234640e-02 1.148358074611148e-02 1.147489033148848e-02 - 1.146619446355201e-02 1.145749315215113e-02 1.144878640491215e-02 1.144007421936342e-02 1.143135660500108e-02 - 1.142263357779597e-02 1.141390514531738e-02 1.140517131031360e-02 1.139643207471360e-02 1.138768744746770e-02 - 1.137893743736065e-02 1.137018205114591e-02 1.136142129485616e-02 1.135265517811921e-02 1.134388371322748e-02 - 1.133510690045416e-02 1.132632474439678e-02 1.131753726104511e-02 1.130874445081251e-02 1.129994631541456e-02 - 1.129114287234474e-02 1.128233413053084e-02 1.127352009524980e-02 1.126470077646612e-02 1.125587617975814e-02 - 1.124704630615814e-02 1.123821115477194e-02 1.122937074388692e-02 1.122052509984340e-02 1.121167421843202e-02 - 1.120281809651728e-02 1.119395674175946e-02 1.118509017235879e-02 1.117621839625571e-02 1.116734140890626e-02 - 1.115845922925729e-02 1.114957187162777e-02 1.114067933143962e-02 1.113178161769016e-02 1.112287874451852e-02 - 1.111397072153178e-02 1.110505754694771e-02 1.109613922373310e-02 1.108721577854856e-02 1.107828721826434e-02 - 1.106935353946150e-02 1.106041475521090e-02 1.105147087839408e-02 1.104252191603393e-02 1.103356786436798e-02 - 1.102460873384026e-02 1.101564454870664e-02 1.100667531791245e-02 1.099770104268406e-02 1.098872172333136e-02 - 1.097973737703280e-02 1.097074801492989e-02 1.096175363206450e-02 1.095275424291130e-02 1.094374986633713e-02 - 1.093474051123777e-02 1.092572618232803e-02 1.091670688531980e-02 1.090768263148204e-02 1.089865342255811e-02 - 1.088961926240844e-02 1.088058018050034e-02 1.087153618780464e-02 1.086248727940419e-02 1.085343346361914e-02 - 1.084437475261139e-02 1.083531115780061e-02 1.082624268419920e-02 1.081716934144050e-02 1.080809114559821e-02 - 1.079900810312026e-02 1.078992022093278e-02 1.078082751184906e-02 1.077172998533364e-02 1.076262764813011e-02 - 1.075352050586474e-02 1.074440857092024e-02 1.073529185762834e-02 1.072617037570664e-02 1.071704413251609e-02 - 1.070791313635956e-02 1.069877740113652e-02 1.068963693244828e-02 1.068049173224424e-02 1.067134181766250e-02 - 1.066218720670161e-02 1.065302791162099e-02 1.064386393117340e-02 1.063469527249458e-02 1.062552195483164e-02 - 1.061634397913101e-02 1.060716135205155e-02 1.059797409807024e-02 1.058878223029125e-02 1.057958575437316e-02 - 1.057038467384018e-02 1.056117900039964e-02 1.055196874533382e-02 1.054275390960051e-02 1.053353451406393e-02 - 1.052431058354873e-02 1.051508211263400e-02 1.050584910821505e-02 1.049661158906674e-02 1.048736956269110e-02 - 1.047812303544552e-02 1.046887201730896e-02 1.045961652742825e-02 1.045035657823219e-02 1.044109217270465e-02 - 1.043182332652317e-02 1.042255005238709e-02 1.041327235213399e-02 1.040399023555266e-02 1.039470371859749e-02 - 1.038541282005145e-02 1.037611754740451e-02 1.036681790639924e-02 1.035751391340543e-02 1.034820558036888e-02 - 1.033889291336949e-02 1.032957591435120e-02 1.032025460242317e-02 1.031092900384275e-02 1.030159911688449e-02 - 1.029226495054825e-02 1.028292652729243e-02 1.027358385071069e-02 1.026423692589549e-02 1.025488576741323e-02 - 1.024553039300053e-02 1.023617081698821e-02 1.022680704740226e-02 1.021743909457171e-02 1.020806697035185e-02 - 1.019869068658227e-02 1.018931025066223e-02 1.017992567348438e-02 1.017053697875713e-02 1.016114417776936e-02 - 1.015174727399650e-02 1.014234627700861e-02 1.013294120450803e-02 1.012353207457940e-02 1.011411888599992e-02 - 1.010470164920459e-02 1.009528038851809e-02 1.008585511657422e-02 1.007642584330934e-02 1.006699257991301e-02 - 1.005755533847607e-02 1.004811412861271e-02 1.003866895746225e-02 1.002921984502842e-02 1.001976681035788e-02 - 1.001030986009602e-02 1.000084900502786e-02 9.991384259025663e-03 9.981915635495017e-03 9.972443141719819e-03 - 9.962966786689603e-03 9.953486595586885e-03 9.944002583039199e-03 9.934514754395770e-03 9.925023122335749e-03 - 9.915527701693664e-03 9.906028505794947e-03 9.896525539473492e-03 9.887018817044350e-03 9.877508364713565e-03 - 9.867994191756903e-03 9.858476305769829e-03 9.848954721540815e-03 9.839429453723526e-03 9.829900512927632e-03 - 9.820367904529967e-03 9.810831649938153e-03 9.801291772225836e-03 9.791748277276684e-03 9.782201174956444e-03 - 9.772650480173910e-03 9.763096209214261e-03 9.753538370443265e-03 9.743976971083063e-03 9.734412038356991e-03 - 9.724843589152831e-03 9.715271627378256e-03 9.705696167153652e-03 9.696117225097080e-03 9.686534815487291e-03 - 9.676948943754414e-03 9.667359623576509e-03 9.657766883492007e-03 9.648170733986708e-03 9.638571181819185e-03 - 9.628968243024477e-03 9.619361933494769e-03 9.609752265452595e-03 9.600139245296816e-03 9.590522893495216e-03 - 9.580903234511828e-03 9.571280275331249e-03 9.561654026946651e-03 9.552024506017841e-03 9.542391727779683e-03 - 9.532755702177183e-03 9.523116437885958e-03 9.513473960404769e-03 9.503828289303256e-03 9.494179431678001e-03 - 9.484527400058637e-03 9.474872210511853e-03 9.465213879778082e-03 9.455552415295903e-03 9.445887829718797e-03 - 9.436220151655284e-03 9.426549394486200e-03 9.416875565725477e-03 9.407198681221749e-03 9.397518758018270e-03 - 9.387835810148322e-03 9.378149843813783e-03 9.368460878589471e-03 9.358768941430739e-03 9.349074041571485e-03 - 9.339376189353358e-03 9.329675400879622e-03 9.319971694171958e-03 9.310265081086165e-03 9.300555568605354e-03 - 9.290843182951191e-03 9.281127946492163e-03 9.271409865969660e-03 9.261688954922952e-03 9.251965230660204e-03 - 9.242238709904914e-03 9.232509401801155e-03 9.222777318787652e-03 9.213042489474691e-03 9.203304930168641e-03 - 9.193564649383718e-03 9.183821661973759e-03 9.174075985705271e-03 9.164327637046287e-03 9.154576623077591e-03 - 9.144822962285418e-03 9.135066683045857e-03 9.125307796249328e-03 9.115546312613307e-03 9.105782249286811e-03 - 9.096015624756502e-03 9.086246452281876e-03 9.076474739187750e-03 9.066700510968253e-03 9.056923792083085e-03 - 9.047144590189744e-03 9.037362919662660e-03 9.027578799121916e-03 9.017792245480461e-03 9.008003268928564e-03 - 8.998211881680073e-03 8.988418113610518e-03 8.978621982540696e-03 8.968823496265647e-03 8.959022672124209e-03 - 8.949219528590024e-03 8.939414081469170e-03 8.929606339864140e-03 8.919796321979990e-03 8.909984056877767e-03 - 8.900169557867096e-03 8.890352835957138e-03 8.880533907981049e-03 8.870712793191068e-03 8.860889506593549e-03 - 8.851064055633283e-03 8.841236465905915e-03 8.831406764712287e-03 8.821574959648875e-03 8.811741064546590e-03 - 8.801905099237244e-03 8.792067082696866e-03 8.782227026145442e-03 8.772384940188230e-03 8.762540855386065e-03 - 8.752694792574688e-03 8.742846759945761e-03 8.732996774006149e-03 8.723144854408183e-03 8.713291019755398e-03 - 8.703435278608567e-03 8.693577647775636e-03 8.683718159456632e-03 8.673856827661263e-03 8.663993662505663e-03 - 8.654128683145933e-03 8.644261909320558e-03 8.634393356690426e-03 8.624523033451901e-03 8.614650964506795e-03 - 8.604777179373340e-03 8.594901686657006e-03 8.585024500118565e-03 8.575145640490715e-03 8.565265126670765e-03 - 8.555382971806235e-03 8.545499187654319e-03 8.535613803632294e-03 8.525726842250045e-03 8.515838312646278e-03 - 8.505948232174527e-03 8.496056621077198e-03 8.486163497882877e-03 8.476268872748003e-03 8.466372762116349e-03 - 8.456475199094931e-03 8.446576199856061e-03 8.436675774300739e-03 8.426773941795081e-03 8.416870722731803e-03 - 8.406966134358667e-03 8.397060186389057e-03 8.387152901959176e-03 8.377244311160385e-03 8.367334425300299e-03 - 8.357423258296441e-03 8.347510830980188e-03 8.337597163605794e-03 8.327682270401855e-03 8.317766161869340e-03 - 8.307848867754637e-03 8.297930413816063e-03 8.288010810083676e-03 8.278090072673102e-03 8.268168221765407e-03 - 8.258245278027963e-03 8.248321253600945e-03 8.238396163758082e-03 8.228470040664376e-03 8.218542903042886e-03 - 8.208614761992156e-03 8.198685637447353e-03 8.188755549837494e-03 8.178824516773604e-03 8.168892549578916e-03 - 8.158959670459199e-03 8.149025910256038e-03 8.139091282816925e-03 8.129155801857130e-03 8.119219487437710e-03 - 8.109282361690508e-03 8.099344440765549e-03 8.089405733754036e-03 8.079466270417937e-03 8.069526079135253e-03 - 8.059585169010465e-03 8.049643556954327e-03 8.039701265060109e-03 8.029758314127560e-03 8.019814717074126e-03 - 8.009870488264625e-03 7.999925660293698e-03 7.989980254561855e-03 7.980034282561204e-03 7.970087763203990e-03 - 7.960140717914167e-03 7.950193166721423e-03 7.940245120231920e-03 7.930296599391260e-03 7.920347637831796e-03 - 7.910398250263278e-03 7.900448449763646e-03 7.890498257622273e-03 7.880547695356892e-03 7.870596780430528e-03 - 7.860645524802819e-03 7.850693955430419e-03 7.840742100859013e-03 7.830789973961963e-03 7.820837591210042e-03 - 7.810884973654219e-03 7.800932143705464e-03 7.790979115476222e-03 7.781025902060369e-03 7.771072537550891e-03 - 7.761119045304192e-03 7.751165435253132e-03 7.741211727248220e-03 7.731257943744334e-03 7.721304105116559e-03 - 7.711350222852130e-03 7.701396316987202e-03 7.691442422531397e-03 7.681488555826352e-03 7.671534729460651e-03 - 7.661580965493510e-03 7.651627286213397e-03 7.641673709645761e-03 7.631720246474624e-03 7.621766924002147e-03 - 7.611813774300424e-03 7.601860809420407e-03 7.591908045212342e-03 7.581955503946372e-03 7.572003208680656e-03 - 7.562051174726026e-03 7.552099414296815e-03 7.542147961065804e-03 7.532196840825635e-03 7.522246063843738e-03 - 7.512295650102864e-03 7.502345622322073e-03 7.492396000716249e-03 7.482446799189802e-03 7.472498037196947e-03 - 7.462549747897286e-03 7.452601950331629e-03 7.442654658211039e-03 7.432707892744488e-03 7.422761676416634e-03 - 7.412816028768508e-03 7.402870961455420e-03 7.392926500328647e-03 7.382982678429822e-03 7.373039508794957e-03 - 7.363097007225734e-03 7.353155196864952e-03 7.343214100532815e-03 7.333273734782904e-03 7.323334112197604e-03 - 7.313395265021593e-03 7.303457220900774e-03 7.293519991033275e-03 7.283583594600794e-03 7.273648054943689e-03 - 7.263713394446934e-03 7.253779626580373e-03 7.243846768480717e-03 7.233914855435080e-03 7.223983908518886e-03 - 7.214053940460562e-03 7.204124972417771e-03 7.194197027491048e-03 7.184270126394881e-03 7.174344280726286e-03 - 7.164419514784642e-03 7.154495863236941e-03 7.144573340914020e-03 7.134651962993328e-03 7.124731752265264e-03 - 7.114812732100897e-03 7.104894920638768e-03 7.094978330575343e-03 7.085062992246606e-03 7.075148934793896e-03 - 7.065236171017366e-03 7.055324719420953e-03 7.045414603125002e-03 7.035505845669364e-03 7.025598461448587e-03 - 7.015692466009597e-03 7.005787894887785e-03 6.995884771371198e-03 6.985983107977662e-03 6.976082925249031e-03 - 6.966184246523457e-03 6.956287093797063e-03 6.946391479271966e-03 6.936497425652844e-03 6.926604968509339e-03 - 6.916714124366364e-03 6.906824907731460e-03 6.896937340931554e-03 6.887051448149962e-03 6.877167248699087e-03 - 6.867284753979424e-03 6.857403994050719e-03 6.847525000658012e-03 6.837647785670592e-03 6.827772367409923e-03 - 6.817898770109592e-03 6.808027016717447e-03 6.798157122708669e-03 6.788289103240300e-03 6.778422992931511e-03 - 6.768558816798320e-03 6.758696587557012e-03 6.748836325648165e-03 6.738978054348659e-03 6.729121795949092e-03 - 6.719267563927435e-03 6.709415379633438e-03 6.699565278400954e-03 6.689717278120727e-03 6.679871393303892e-03 - 6.670027647355804e-03 6.660186063525513e-03 6.650346660981845e-03 6.640509452367944e-03 6.630674466396449e-03 - 6.620841735868644e-03 6.611011273308148e-03 6.601183096392477e-03 6.591357229649247e-03 6.581533696087914e-03 - 6.571712512145987e-03 6.561893692372858e-03 6.552077270290561e-03 6.542263272668194e-03 6.532451712617284e-03 - 6.522642609933696e-03 6.512835987879551e-03 6.503031869590782e-03 6.493230268870023e-03 6.483431205156500e-03 - 6.473634714105858e-03 6.463840816056773e-03 6.454049525191551e-03 6.444260863046832e-03 6.434474853362258e-03 - 6.424691517208967e-03 6.414910866799055e-03 6.405132928351729e-03 6.395357735592168e-03 6.385585303753894e-03 - 6.375815649717760e-03 6.366048796411005e-03 6.356284767471845e-03 6.346523580477974e-03 6.336765248927921e-03 - 6.327009805730009e-03 6.317257279178600e-03 6.307507681412946e-03 6.297761032647583e-03 6.288017356862164e-03 - 6.278276676438099e-03 6.268539005625230e-03 6.258804362658888e-03 6.249072783406197e-03 6.239344289504087e-03 - 6.229618894349891e-03 6.219896619699197e-03 6.210177489065160e-03 6.200461523673893e-03 6.190748736475173e-03 - 6.181039151999554e-03 6.171332804226705e-03 6.161629709556120e-03 6.151929884103313e-03 6.142233350147177e-03 - 6.132540131644584e-03 6.122850247356021e-03 6.113163710170625e-03 6.103480551213418e-03 6.093800800141988e-03 - 6.084124469547710e-03 6.074451578566364e-03 6.064782150905211e-03 6.055116209626953e-03 6.045453769994722e-03 - 6.035794848740185e-03 6.026139480474754e-03 6.016487688229946e-03 6.006839485237500e-03 5.997194892776407e-03 - 5.987553934341584e-03 5.977916631713333e-03 5.968282997802390e-03 5.958653055343909e-03 5.949026838944569e-03 - 5.939404365780911e-03 5.929785651209331e-03 5.920170717549854e-03 5.910559587858684e-03 5.900952281370824e-03 - 5.891348811852907e-03 5.881749208142844e-03 5.872153500225121e-03 5.862561701850070e-03 5.852973831530551e-03 - 5.843389912374926e-03 5.833809966833203e-03 5.824234011006907e-03 5.814662060999971e-03 5.805094150375409e-03 - 5.795530303292347e-03 5.785970532524381e-03 5.776414859211175e-03 5.766863306294991e-03 5.757315894674337e-03 - 5.747772638659374e-03 5.738233559732430e-03 5.728698691311226e-03 5.719168051719483e-03 5.709641656042984e-03 - 5.700119526414031e-03 5.690601685377130e-03 5.681088152168133e-03 5.671578940158426e-03 5.662074076665564e-03 - 5.652573592801510e-03 5.643077502877857e-03 5.633585823810169e-03 5.624098577633230e-03 5.614615788052954e-03 - 5.605137471831965e-03 5.595663642810052e-03 5.586194333773162e-03 5.576729570469775e-03 5.567269364923084e-03 - 5.557813736696195e-03 5.548362708847973e-03 5.538916303890826e-03 5.529474534822445e-03 5.520037420561356e-03 - 5.510604996543656e-03 5.501177281279281e-03 5.491754287530179e-03 5.482336037985177e-03 5.472922555453679e-03 - 5.463513859119052e-03 5.454109961206277e-03 5.444710887376439e-03 5.435316669896643e-03 5.425927322428118e-03 - 5.416542861379438e-03 5.407163309793553e-03 5.397788689388935e-03 5.388419016905312e-03 5.379054306533677e-03 - 5.369694588817857e-03 5.360339890208465e-03 5.350990223294556e-03 5.341645606645782e-03 5.332306062415535e-03 - 5.322971612709802e-03 5.313642271564683e-03 5.304318056285795e-03 5.294999000250198e-03 5.285685123732157e-03 - 5.276376439554206e-03 5.267072968338082e-03 5.257774732353860e-03 5.248481751732874e-03 5.239194038865901e-03 - 5.229911616755654e-03 5.220634516968343e-03 5.211362754853240e-03 5.202096346092698e-03 5.192835312362628e-03 - 5.183579674966123e-03 5.174329450821569e-03 5.165084652994387e-03 5.155845310548846e-03 5.146611450951191e-03 - 5.137383086378589e-03 5.128160234647254e-03 5.118942917508807e-03 5.109731156137037e-03 5.100524965000140e-03 - 5.091324360054826e-03 5.082129373049942e-03 5.072940025255639e-03 5.063756329149303e-03 5.054578304260502e-03 - 5.045405972366202e-03 5.036239353680495e-03 5.027078459118392e-03 5.017923310123222e-03 5.008773940483098e-03 - 4.999630364315774e-03 4.990492594829337e-03 4.981360654331298e-03 4.972234563790402e-03 4.963114339923834e-03 - 4.953999995020500e-03 4.944891556281875e-03 4.935789051765770e-03 4.926692493194353e-03 4.917601897109304e-03 - 4.908517284729773e-03 4.899438676825864e-03 4.890366088012707e-03 4.881299532722441e-03 4.872239041569468e-03 - 4.863184636415129e-03 4.854136328649667e-03 4.845094137498133e-03 4.836058083872883e-03 4.827028186746977e-03 - 4.818004458681770e-03 4.808986918914880e-03 4.799975597861264e-03 4.790970512088721e-03 4.781971675128856e-03 - 4.772979106768043e-03 4.763992827229902e-03 4.755012853632298e-03 4.746039197549013e-03 4.737071883993436e-03 - 4.728110941197518e-03 4.719156380399636e-03 4.710208217424537e-03 4.701266473663848e-03 4.692331168251817e-03 - 4.683402315353613e-03 4.674479928383867e-03 4.665564036556664e-03 4.656654662394768e-03 4.647751816371710e-03 - 4.638855516650367e-03 4.629965783672686e-03 4.621082635909843e-03 4.612206084994354e-03 4.603336148102954e-03 - 4.594472856159325e-03 4.585616225744373e-03 4.576766268345947e-03 4.567923003199363e-03 4.559086450091263e-03 - 4.550256626033265e-03 4.541433541986122e-03 4.532617220194613e-03 4.523807688535670e-03 4.515004959722835e-03 - 4.506209047920159e-03 4.497419972185719e-03 4.488637751873642e-03 4.479862401381760e-03 4.471093932025212e-03 - 4.462332371280023e-03 4.453577742726973e-03 4.444830056583276e-03 4.436089328917552e-03 4.427355578888171e-03 - 4.418628824988929e-03 4.409909078668640e-03 4.401196354933857e-03 4.392490684030716e-03 4.383792083151365e-03 - 4.375100562120779e-03 4.366416138313078e-03 4.357738831525952e-03 4.349068659591380e-03 4.340405630957790e-03 - 4.331749765364269e-03 4.323101091949651e-03 4.314459623208851e-03 4.305825371349630e-03 4.297198354190413e-03 - 4.288578590720092e-03 4.279966095343473e-03 4.271360877578565e-03 4.262762963097229e-03 4.254172376200769e-03 - 4.245589126222103e-03 4.237013227440267e-03 4.228444697962537e-03 4.219883556022182e-03 4.211329813254019e-03 - 4.202783482548908e-03 4.194244591796649e-03 4.185713159116739e-03 4.177189194188086e-03 4.168672712320958e-03 - 4.160163731860882e-03 4.151662270610665e-03 4.143168336754119e-03 4.134681947397693e-03 4.126203130809124e-03 - 4.117731899759874e-03 4.109268265260960e-03 4.100812244167818e-03 4.092363854125291e-03 4.083923109325604e-03 - 4.075490018959178e-03 4.067064605609816e-03 4.058646892914489e-03 4.050236890474988e-03 4.041834611549669e-03 - 4.033440073099425e-03 4.025053291802670e-03 4.016674279190388e-03 4.008303046950822e-03 3.999939621219669e-03 - 3.991584019864232e-03 3.983236251035503e-03 3.974896329846703e-03 3.966564273682151e-03 3.958240098637734e-03 - 3.949923812376889e-03 3.941615430268695e-03 3.933314980874398e-03 3.925022475755094e-03 3.916737923312982e-03 - 3.908461340476090e-03 3.900192744628528e-03 3.891932149238224e-03 3.883679560814138e-03 3.875435000263637e-03 - 3.867198492508630e-03 3.858970045729460e-03 3.850749670926077e-03 3.842537384120139e-03 3.834333202377867e-03 - 3.826137136626801e-03 3.817949195349815e-03 3.809769403427763e-03 3.801597779587331e-03 3.793434330750140e-03 - 3.785279069923421e-03 3.777132013373491e-03 3.768993177352847e-03 3.760862568898475e-03 3.752740200334732e-03 - 3.744626099044159e-03 3.736520277340854e-03 3.728422742215669e-03 3.720333508785603e-03 3.712252593018920e-03 - 3.704180008090329e-03 3.696115760631814e-03 3.688059868276574e-03 3.680012354362612e-03 3.671973228138760e-03 - 3.663942499526064e-03 3.655920182566113e-03 3.647906292785413e-03 3.639900840938008e-03 3.631903834337251e-03 - 3.623915295229000e-03 3.615935242250758e-03 3.607963681828620e-03 3.600000626081414e-03 3.592046089865790e-03 - 3.584100087061132e-03 3.576162625323692e-03 3.568233715505030e-03 3.560313381862740e-03 3.552401637255495e-03 - 3.544498488187401e-03 3.536603947761108e-03 3.528718030587010e-03 3.520840749407267e-03 3.512972109975055e-03 - 3.505112127471606e-03 3.497260824593953e-03 3.489418209893856e-03 3.481584291815555e-03 3.473759083632174e-03 - 3.465942599385497e-03 3.458134849136788e-03 3.450335838875430e-03 3.442545588595099e-03 3.434764116831954e-03 - 3.426991428902786e-03 3.419227535146918e-03 3.411472449427477e-03 3.403726185233638e-03 3.395988749408295e-03 - 3.388260149964055e-03 3.380540409506120e-03 3.372829541439428e-03 3.365127551327278e-03 3.357434450344299e-03 - 3.349750251864305e-03 3.342074968176267e-03 3.334408603200120e-03 3.326751169911567e-03 3.319102691777129e-03 - 3.311463175183513e-03 3.303832626198486e-03 3.296211059114474e-03 3.288598486024217e-03 3.280994915398627e-03 - 3.273400352769854e-03 3.265814815709593e-03 3.258238322074859e-03 3.250670876135365e-03 3.243112486983179e-03 - 3.235563167624456e-03 3.228022929479646e-03 3.220491779361285e-03 3.212969724272006e-03 3.205456783570964e-03 - 3.197952970426890e-03 3.190458290104943e-03 3.182972751519780e-03 3.175496366385864e-03 3.168029146873250e-03 - 3.160571096621216e-03 3.153122225636278e-03 3.145682555500280e-03 3.138252093348739e-03 3.130830843615626e-03 - 3.123418817816768e-03 3.116016027518625e-03 3.108622481356378e-03 3.101238183229207e-03 3.093863147897005e-03 - 3.086497392737253e-03 3.079140921752824e-03 3.071793741871484e-03 3.064455864252268e-03 3.057127299904285e-03 - 3.049808055146270e-03 3.042498134791386e-03 3.035197556645182e-03 3.027906333235584e-03 3.020624467536793e-03 - 3.013351968343262e-03 3.006088846580162e-03 2.998835112089031e-03 2.991590768047797e-03 2.984355822285627e-03 - 2.977130294631421e-03 2.969914192263928e-03 2.962707518230782e-03 2.955510282832787e-03 2.948322496039390e-03 - 2.941144165204636e-03 2.933975293458325e-03 2.926815893073326e-03 2.919665980487675e-03 2.912525559332239e-03 - 2.905394635071103e-03 2.898273217656210e-03 2.891161316595433e-03 2.884058936906487e-03 2.876966081111658e-03 - 2.869882766189157e-03 2.862809005041444e-03 2.855744798230348e-03 2.848690153100023e-03 2.841645079496137e-03 - 2.834609585256340e-03 2.827583673848185e-03 2.820567351490293e-03 2.813560634590312e-03 2.806563530531927e-03 - 2.799576041999259e-03 2.792598177467573e-03 2.785629945309582e-03 2.778671351607254e-03 2.771722398039775e-03 - 2.764783095014263e-03 2.757853459091809e-03 2.750933492568204e-03 2.744023198517816e-03 2.737122585640385e-03 - 2.730231662189404e-03 2.723350432970404e-03 2.716478899800820e-03 2.709617075896625e-03 2.702764973241287e-03 - 2.695922593060963e-03 2.689089940152226e-03 2.682267022316270e-03 2.675453847914084e-03 2.668650418902243e-03 - 2.661856738145520e-03 2.655072822033232e-03 2.648298678030288e-03 2.641534306206961e-03 2.634779712258937e-03 - 2.628034904058933e-03 2.621299888635041e-03 2.614574665771587e-03 2.607859242632423e-03 2.601153634957146e-03 - 2.594457844452072e-03 2.587771872555374e-03 2.581095727373358e-03 2.574429415266960e-03 2.567772939497474e-03 - 2.561126300777387e-03 2.554489510835181e-03 2.547862581281132e-03 2.541245510713479e-03 2.534638303078699e-03 - 2.528040966193904e-03 2.521453505493298e-03 2.514875922225054e-03 2.508308218200437e-03 2.501750407164573e-03 - 2.495202496081871e-03 2.488664484118587e-03 2.482136376281468e-03 2.475618178705269e-03 2.469109895957427e-03 - 2.462611527825166e-03 2.456123079328407e-03 2.449644563898542e-03 2.443175984269443e-03 2.436717340526153e-03 - 2.430268636964234e-03 2.423829879853036e-03 2.417401073311931e-03 2.410982215756923e-03 2.404573315098301e-03 - 2.398174382071132e-03 2.391785416912405e-03 2.385406421217447e-03 2.379037399546287e-03 2.372678357701878e-03 - 2.366329296305038e-03 2.359990214012962e-03 2.353661123666590e-03 2.347342032379030e-03 2.341032936953993e-03 - 2.334733840455562e-03 2.328444748068140e-03 2.322165663885325e-03 2.315896586946297e-03 2.309637519733881e-03 - 2.303388473653537e-03 2.297149451184649e-03 2.290920451297887e-03 2.284701476927273e-03 2.278492533074980e-03 - 2.272293622898508e-03 2.266104742447669e-03 2.259925897918875e-03 2.253757100645447e-03 2.247598348619136e-03 - 2.241449641489242e-03 2.235310983406359e-03 2.229182378556762e-03 2.223063827011661e-03 2.216955326220785e-03 - 2.210856885615230e-03 2.204768511855369e-03 2.198690202073136e-03 2.192621957162963e-03 2.186563780523993e-03 - 2.180515675851768e-03 2.174477640514074e-03 2.168449674335647e-03 2.162431789038673e-03 2.156423986093689e-03 - 2.150426261719325e-03 2.144438618887063e-03 2.138461061015507e-03 2.132493589319895e-03 2.126536199820428e-03 - 2.120588896234097e-03 2.114651688169617e-03 2.108724573757348e-03 2.102807551461262e-03 2.096900623831682e-03 - 2.091003792760502e-03 2.085117057433877e-03 2.079240415028002e-03 2.073373872799373e-03 2.067517436442142e-03 - 2.061671101563673e-03 2.055834867994772e-03 2.050008738194652e-03 2.044192713868095e-03 2.038386792128391e-03 - 2.032590971333173e-03 2.026805260662020e-03 2.021029661329869e-03 2.015264168518725e-03 2.009508783500123e-03 - 2.003763508166370e-03 1.998028342654997e-03 1.992303282805534e-03 1.986588330078225e-03 1.980883492165770e-03 - 1.975188767039759e-03 1.969504151730439e-03 1.963829647004430e-03 1.958165254218237e-03 1.952510971963634e-03 - 1.946866794889960e-03 1.941232728159857e-03 1.935608777640074e-03 1.929994938329363e-03 1.924391207914093e-03 - 1.918797587114099e-03 1.913214077256622e-03 1.907640674795718e-03 1.902077375557082e-03 1.896524186430478e-03 - 1.890981108949087e-03 1.885448138032121e-03 1.879925272541809e-03 1.874412513138102e-03 1.868909859971047e-03 - 1.863417306389931e-03 1.857934851379391e-03 1.852462503653811e-03 1.847000259754348e-03 1.841548114039762e-03 - 1.836106066817225e-03 1.830674118529854e-03 1.825252266916765e-03 1.819840505202892e-03 1.814438836319749e-03 - 1.809047265638602e-03 1.803665787133681e-03 1.798294397101445e-03 1.792933095135866e-03 1.787581880369786e-03 - 1.782240749155103e-03 1.776909697172910e-03 1.771588728179710e-03 1.766277842767543e-03 1.760977035675204e-03 - 1.755686304337379e-03 1.750405647484752e-03 1.745135063548007e-03 1.739874546386865e-03 1.734624093589025e-03 - 1.729383711586370e-03 1.724153396315838e-03 1.718933140719367e-03 1.713722944309894e-03 1.708522806163372e-03 - 1.703332722978997e-03 1.698152687791741e-03 1.692982700783420e-03 1.687822765464940e-03 1.682672875794938e-03 - 1.677533027054054e-03 1.672403217813849e-03 1.667283446525115e-03 1.662173708173832e-03 1.657073995739192e-03 - 1.651984312946546e-03 1.646904660364047e-03 1.641835029387390e-03 1.636775416468660e-03 1.631725820220986e-03 - 1.626686238226539e-03 1.621656663682810e-03 1.616637091835148e-03 1.611627526662728e-03 1.606627964700548e-03 - 1.601638398623349e-03 1.596658825754688e-03 1.591689243408400e-03 1.586729647378206e-03 1.581780030725023e-03 - 1.576840391697073e-03 1.571910732264727e-03 1.566991046477593e-03 1.562081328242421e-03 1.557181574037859e-03 - 1.552291781114454e-03 1.547411944138861e-03 1.542542055154552e-03 1.537682115822498e-03 1.532832126356767e-03 - 1.527992077470792e-03 1.523161963747274e-03 1.518341782422417e-03 1.513531530571088e-03 1.508731200913292e-03 - 1.503940786876937e-03 1.499160290964809e-03 1.494389709200610e-03 1.489629032745148e-03 1.484878257820629e-03 - 1.480137381279299e-03 1.475406398389162e-03 1.470685299850305e-03 1.465974082141071e-03 1.461272748080975e-03 - 1.456581290224651e-03 1.451899700275850e-03 1.447227974089072e-03 1.442566108566721e-03 1.437914097994959e-03 - 1.433271932504185e-03 1.428639611034298e-03 1.424017133356480e-03 1.419404490680891e-03 1.414801676491448e-03 - 1.410208686553135e-03 1.405625516589791e-03 1.401052158609908e-03 1.396488604511052e-03 1.391934855472548e-03 - 1.387390907364871e-03 1.382856750165021e-03 1.378332378783991e-03 1.373817788890047e-03 1.369312974750468e-03 - 1.364817927255285e-03 1.360332641059443e-03 1.355857116711623e-03 1.351391347026849e-03 1.346935323100728e-03 - 1.342489039284644e-03 1.338052491255308e-03 1.333625672740901e-03 1.329208572800934e-03 1.324801188462658e-03 - 1.320403519143769e-03 1.316015555822497e-03 1.311637290544184e-03 1.307268717472159e-03 1.302909831116118e-03 - 1.298560623326278e-03 1.294221085253892e-03 1.289891216124110e-03 1.285571011566486e-03 1.281260461060531e-03 - 1.276959557618139e-03 1.272668295740209e-03 1.268386669608614e-03 1.264114669618853e-03 1.259852288349743e-03 - 1.255599524419093e-03 1.251356371085625e-03 1.247122819189722e-03 1.242898861265979e-03 1.238684491359706e-03 - 1.234479702756933e-03 1.230284484841117e-03 1.226098832748256e-03 1.221922744434409e-03 1.217756210326720e-03 - 1.213599221362577e-03 1.209451770765583e-03 1.205313852635065e-03 1.201185458480448e-03 1.197066577985755e-03 - 1.192957208640432e-03 1.188857345511447e-03 1.184766976969275e-03 1.180686095693037e-03 1.176614695732404e-03 - 1.172552769621902e-03 1.168500307042727e-03 1.164457299537124e-03 1.160423745213695e-03 1.156399636114517e-03 - 1.152384961360659e-03 1.148379714206853e-03 1.144383887440774e-03 1.140397472403066e-03 1.136420458871837e-03 - 1.132452840804467e-03 1.128494614815977e-03 1.124545770440235e-03 1.120606297984056e-03 1.116676190709075e-03 - 1.112755440623707e-03 1.108844038267568e-03 1.104941973598277e-03 1.101049242215234e-03 1.097165838523137e-03 - 1.093291750933755e-03 1.089426970747485e-03 1.085571490835547e-03 1.081725303225761e-03 1.077888396808512e-03 - 1.074060761522748e-03 1.070242395009795e-03 1.066433289590875e-03 1.062633433332422e-03 1.058842817553080e-03 - 1.055061434373011e-03 1.051289275348505e-03 1.047526329409495e-03 1.043772588486000e-03 1.040028047931513e-03 - 1.036292698203525e-03 1.032566529042292e-03 1.028849531681517e-03 1.025141697676040e-03 1.021443017315572e-03 - 1.017753479165712e-03 1.014073077446178e-03 1.010401806565697e-03 1.006739654876394e-03 1.003086612170896e-03 - 9.994426698862881e-04 9.958078198244436e-04 9.921820510029489e-04 9.885653522799815e-04 9.849577193159157e-04 - 9.813591440739670e-04 9.777696142556011e-04 9.741891204675346e-04 9.706176542328248e-04 9.670552065524777e-04 - 9.635017651512704e-04 9.599573207794398e-04 9.564218691437683e-04 9.528953995809905e-04 9.493779002331982e-04 - 9.458693621672339e-04 9.423697766254766e-04 9.388791334439822e-04 9.353974200435674e-04 9.319246293443443e-04 - 9.284607555133966e-04 9.250057861419034e-04 9.215597102726345e-04 9.181225189615299e-04 9.146942031524666e-04 - 9.112747514066988e-04 9.078641516289516e-04 9.044623983719834e-04 9.010694834242857e-04 8.976853937790154e-04 - 8.943101192935385e-04 8.909436508104612e-04 8.875859786393426e-04 8.842370902316334e-04 8.808969751654204e-04 - 8.775656281905130e-04 8.742430385918343e-04 8.709291937982416e-04 8.676240840155020e-04 8.643276998573467e-04 - 8.610400308208924e-04 8.577610636611962e-04 8.544907899714905e-04 8.512292035626933e-04 8.479762917886125e-04 - 8.447320428739457e-04 8.414964471843920e-04 8.382694949325988e-04 8.350511744137459e-04 8.318414728923707e-04 - 8.286403836395943e-04 8.254478982373706e-04 8.222640032931049e-04 8.190886878204532e-04 8.159219419987107e-04 - 8.127637556794064e-04 8.096141160179775e-04 8.064730115089579e-04 8.033404360997527e-04 8.002163789609624e-04 - 7.971008268111541e-04 7.939937692507287e-04 7.908951962853333e-04 7.878050969946667e-04 7.847234577702081e-04 - 7.816502689905088e-04 7.785855239466778e-04 7.755292098590464e-04 7.724813142232633e-04 7.694418267842021e-04 - 7.664107372089749e-04 7.633880335334087e-04 7.603737023812342e-04 7.573677358642847e-04 7.543701253849379e-04 - 7.513808572285544e-04 7.483999196962093e-04 7.454273024026923e-04 7.424629947358947e-04 7.395069836664074e-04 - 7.365592567622367e-04 7.336198070174806e-04 7.306886236388442e-04 7.277656929130117e-04 7.248510036837761e-04 - 7.219445453636994e-04 7.190463067357669e-04 7.161562739946586e-04 7.132744364309508e-04 7.104007867132190e-04 - 7.075353120392018e-04 7.046779992824802e-04 7.018288375861283e-04 6.989878161882759e-04 6.961549229362052e-04 - 6.933301438820412e-04 6.905134700383686e-04 6.877048926511914e-04 6.849043978549774e-04 6.821119732944710e-04 - 6.793276080246700e-04 6.765512910034699e-04 6.737830090783149e-04 6.710227490756584e-04 6.682705030776122e-04 - 6.655262603091742e-04 6.627900067379164e-04 6.600617305924390e-04 6.573414207627890e-04 6.546290656955580e-04 - 6.519246513982958e-04 6.492281662548372e-04 6.465396024423735e-04 6.438589471596415e-04 6.411861867028291e-04 - 6.385213096762252e-04 6.358643049114898e-04 6.332151601148890e-04 6.305738609661260e-04 6.279403974635571e-04 - 6.253147606410383e-04 6.226969365620930e-04 6.200869123319087e-04 6.174846765257772e-04 6.148902176504979e-04 - 6.123035224628875e-04 6.097245772740803e-04 6.071533733723410e-04 6.045898999580564e-04 6.020341426510520e-04 - 5.994860891934145e-04 5.969457280748620e-04 5.944130474177512e-04 5.918880332091087e-04 5.893706730594447e-04 - 5.868609584534629e-04 5.843588766665737e-04 5.818644136544619e-04 5.793775576682911e-04 5.768982970317317e-04 - 5.744266191686133e-04 5.719625097277512e-04 5.695059578510202e-04 5.670569542308351e-04 5.646154849082753e-04 - 5.621815365284883e-04 5.597550972743215e-04 5.573361553519681e-04 5.549246974872960e-04 5.525207095632259e-04 - 5.501241820142805e-04 5.477351040267441e-04 5.453534610951853e-04 5.429792405131840e-04 5.406124304314462e-04 - 5.382530187447214e-04 5.359009913605971e-04 5.335563351904396e-04 5.312190411682156e-04 5.288890968140364e-04 - 5.265664878332606e-04 5.242512018091515e-04 5.219432267978740e-04 5.196425502978362e-04 5.173491576918976e-04 - 5.150630373381158e-04 5.127841797796618e-04 5.105125710953982e-04 5.082481974966798e-04 5.059910467933278e-04 - 5.037411069671739e-04 5.014983647643853e-04 4.992628057533249e-04 4.970344196034297e-04 4.948131954905409e-04 - 4.925991188614672e-04 4.903921766298550e-04 4.881923566574878e-04 4.859996466359864e-04 4.838140324815327e-04 - 4.816355005995136e-04 4.794640414647377e-04 4.772996426854546e-04 4.751422896755638e-04 4.729919697488023e-04 - 4.708486707166207e-04 4.687123799720691e-04 4.665830828962369e-04 4.644607671738101e-04 4.623454230212830e-04 - 4.602370366779194e-04 4.581355941018685e-04 4.560410828358216e-04 4.539534906171381e-04 4.518728041821612e-04 - 4.497990089033435e-04 4.477320938149108e-04 4.456720481170030e-04 4.436188572707195e-04 4.415725078895158e-04 - 4.395329875976124e-04 4.375002838422590e-04 4.354743826722610e-04 4.334552702201095e-04 4.314429363226086e-04 - 4.294373687059989e-04 4.274385527576286e-04 4.254464755700176e-04 4.234611247199864e-04 4.214824874479911e-04 - 4.195105492176435e-04 4.175452972239935e-04 4.155867214135851e-04 4.136348082067204e-04 4.116895433467350e-04 - 4.097509141339746e-04 4.078189081189173e-04 4.058935120995524e-04 4.039747114386321e-04 4.020624945699733e-04 - 4.001568506324645e-04 3.982577652062802e-04 3.963652246433777e-04 3.944792163840573e-04 3.925997278951708e-04 - 3.907267452820787e-04 3.888602542761684e-04 3.870002443827855e-04 3.851467035420477e-04 3.832996170232135e-04 - 3.814589716941001e-04 3.796247550166885e-04 3.777969542187427e-04 3.759755548771444e-04 3.741605437648361e-04 - 3.723519105456335e-04 3.705496418343326e-04 3.687537232626712e-04 3.669641420580878e-04 3.651808856652343e-04 - 3.634039408935104e-04 3.616332930379869e-04 3.598689301103073e-04 3.581108413327368e-04 3.563590123412032e-04 - 3.546134293224166e-04 3.528740796868620e-04 3.511409507353364e-04 3.494140287293094e-04 3.476932993968030e-04 - 3.459787517007610e-04 3.442703736842207e-04 3.425681507579447e-04 3.408720696736798e-04 3.391821178070990e-04 - 3.374982823340253e-04 3.358205489790399e-04 3.341489042294683e-04 3.324833375391577e-04 3.308238358267097e-04 - 3.291703846864138e-04 3.275229711235071e-04 3.258815824857735e-04 3.242462057388915e-04 3.226168264116891e-04 - 3.209934320343741e-04 3.193760116170641e-04 3.177645512713499e-04 3.161590371207419e-04 3.145594562690266e-04 - 3.129657961319975e-04 3.113780432227079e-04 3.097961831114660e-04 3.082202043645004e-04 3.066500952444524e-04 - 3.050858414009347e-04 3.035274294402161e-04 3.019748466354355e-04 3.004280802320956e-04 2.988871162192853e-04 - 2.973519409077311e-04 2.958225434173786e-04 2.942989109163873e-04 2.927810290941792e-04 2.912688849504159e-04 - 2.897624658129895e-04 2.882617587216531e-04 2.867667493909568e-04 2.852774250910157e-04 2.837937747837379e-04 - 2.823157848000407e-04 2.808434412718301e-04 2.793767313619733e-04 2.779156424588856e-04 2.764601612241833e-04 - 2.750102732798498e-04 2.735659669757869e-04 2.721272307826111e-04 2.706940504177620e-04 2.692664125118005e-04 - 2.678443044384447e-04 2.664277133531666e-04 2.650166254907073e-04 2.636110271946842e-04 2.622109073508727e-04 - 2.608162534146021e-04 2.594270512444905e-04 2.580432877716125e-04 2.566649503351083e-04 2.552920261463284e-04 - 2.539245011192165e-04 2.525623623480746e-04 2.512055988243127e-04 2.498541971146173e-04 2.485081433825346e-04 - 2.471674249383843e-04 2.458320291468696e-04 2.445019428356345e-04 2.431771519464020e-04 2.418576445147758e-04 - 2.405434090455539e-04 2.392344316436903e-04 2.379306989304936e-04 2.366321982706708e-04 2.353389171046539e-04 - 2.340508418959193e-04 2.327679588365217e-04 2.314902568213100e-04 2.302177235947735e-04 2.289503450019842e-04 - 2.276881081822984e-04 2.264310006278554e-04 2.251790095285085e-04 2.239321211178975e-04 2.226903224828012e-04 - 2.214536025966827e-04 2.202219483393713e-04 2.189953459440866e-04 2.177737827672056e-04 2.165572463172210e-04 - 2.153457236927424e-04 2.141392010208329e-04 2.129376661694288e-04 2.117411078009580e-04 2.105495123800498e-04 - 2.093628666254358e-04 2.081811579562958e-04 2.070043738711933e-04 2.058325011765904e-04 2.046655262979033e-04 - 2.035034378928387e-04 2.023462239716796e-04 2.011938707312936e-04 2.000463653117907e-04 1.989036953143001e-04 - 1.977658482429478e-04 1.966328105707422e-04 1.955045692837424e-04 1.943811134060168e-04 1.932624302421221e-04 - 1.921485062157297e-04 1.910393287336514e-04 1.899348854684124e-04 1.888351638115297e-04 1.877401500482506e-04 - 1.866498319949601e-04 1.855641985831636e-04 1.844832365124926e-04 1.834069326310023e-04 1.823352746298841e-04 - 1.812682501147551e-04 1.802058461455679e-04 1.791480493724017e-04 1.780948483852737e-04 1.770462314872484e-04 - 1.760021851824818e-04 1.749626967491274e-04 1.739277539439587e-04 1.728973444305181e-04 1.718714550470096e-04 - 1.708500728855944e-04 1.698331869571933e-04 1.688207849549946e-04 1.678128535713188e-04 1.668093803524777e-04 - 1.658103531111011e-04 1.648157594964937e-04 1.638255861976382e-04 1.628398210066413e-04 1.618584529166454e-04 - 1.608814690931768e-04 1.599088565742865e-04 1.589406031206167e-04 1.579766966509897e-04 1.570171246224424e-04 - 1.560618738321770e-04 1.551109328208930e-04 1.541642902068764e-04 1.532219328717612e-04 1.522838482661923e-04 - 1.513500243337891e-04 1.504204489591066e-04 1.494951093483970e-04 1.485739927662749e-04 1.476570882997282e-04 - 1.467443839796364e-04 1.458358667202351e-04 1.449315243896633e-04 1.440313449862068e-04 1.431353162531848e-04 - 1.422434254066872e-04 1.413556604013758e-04 1.404720102486319e-04 1.395924625558734e-04 1.387170046489957e-04 - 1.378456244430427e-04 1.369783100559194e-04 1.361150493062282e-04 1.352558293490397e-04 1.344006387024136e-04 - 1.335494662293593e-04 1.327022993333140e-04 1.318591256583063e-04 1.310199332689028e-04 1.301847103692820e-04 - 1.293534446013900e-04 1.285261234477974e-04 1.277027359881715e-04 1.268832706365997e-04 1.260677147052468e-04 - 1.252560562359565e-04 1.244482834803957e-04 1.236443845356053e-04 1.228443469528238e-04 1.220481588198588e-04 - 1.212558093699401e-04 1.204672865809282e-04 1.196825780471873e-04 1.189016720308052e-04 1.181245568536085e-04 - 1.173512205995857e-04 1.165816508484800e-04 1.158158362776897e-04 1.150537660210759e-04 1.142954277590100e-04 - 1.135408094568152e-04 1.127898995954114e-04 1.120426864956402e-04 1.112991581353023e-04 1.105593024093304e-04 - 1.098231085283700e-04 1.090905652465313e-04 1.083616601800625e-04 1.076363816399760e-04 1.069147182196831e-04 - 1.061966583782502e-04 1.054821899944032e-04 1.047713013150353e-04 1.040639818640637e-04 1.033602200082437e-04 - 1.026600035826387e-04 1.019633211976323e-04 1.012701615275282e-04 1.005805130149820e-04 9.989436355203399e-05 - 9.921170194739147e-05 9.853251765411631e-05 9.785679881782247e-05 9.718453366352614e-05 9.651571091087277e-05 - 9.585031930594751e-05 9.518834724915350e-05 9.452978284703146e-05 9.387461543789448e-05 9.322283420353250e-05 - 9.257442723618249e-05 9.192938310286574e-05 9.128769066247626e-05 9.064933872161225e-05 9.001431561187756e-05 - 8.938260983500139e-05 8.875421104519957e-05 8.812910809646098e-05 8.750728925694059e-05 8.688874335824857e-05 - 8.627345936363417e-05 8.566142611724158e-05 8.505263195150667e-05 8.444706587898619e-05 8.384471762172232e-05 - 8.324557578035348e-05 8.264962891132210e-05 8.205686604727953e-05 8.146727626544971e-05 8.088084838175318e-05 - 8.029757088191735e-05 7.971743327705584e-05 7.914042512047892e-05 7.856653495630607e-05 7.799575166346450e-05 - 7.742806441871695e-05 7.686346239245813e-05 7.630193435494130e-05 7.574346911053080e-05 7.518805653837606e-05 - 7.463568593117825e-05 7.408634594826592e-05 7.354002575090044e-05 7.299671464423979e-05 7.245640185167563e-05 - 7.191907614532941e-05 7.138472679150608e-05 7.085334380230530e-05 7.032491623916224e-05 6.979943301854977e-05 - 6.927688351841825e-05 6.875725716877753e-05 6.824054320182008e-05 6.772673050550591e-05 6.721580881996242e-05 - 6.670776807704407e-05 6.620259726868480e-05 6.570028562031883e-05 6.520082266140781e-05 6.470419793220322e-05 - 6.421040064958054e-05 6.371941996817583e-05 6.323124601185380e-05 6.274586851226631e-05 6.226327655003573e-05 - 6.178345963615301e-05 6.130640743984757e-05 6.083210957777482e-05 6.036055527561582e-05 5.989173409263222e-05 - 5.942563633391719e-05 5.896225154191688e-05 5.850156903007261e-05 5.804357852627766e-05 5.758826983099529e-05 - 5.713563260712647e-05 5.668565617514362e-05 5.623833053838233e-05 5.579364600051564e-05 5.535159201768813e-05 - 5.491215819134343e-05 5.447533442712218e-05 5.404111064124177e-05 5.360947650466450e-05 5.318042157160001e-05 - 5.275393622516995e-05 5.233001062811153e-05 5.190863431238880e-05 5.148979716458554e-05 5.107348923404401e-05 - 5.065970053025621e-05 5.024842074849432e-05 4.983963979263951e-05 4.943334827635427e-05 4.902953621108006e-05 - 4.862819332553702e-05 4.822930973793706e-05 4.783287562882953e-05 4.743888107972067e-05 4.704731588033618e-05 - 4.665817033540254e-05 4.627143510842172e-05 4.588710014690383e-05 4.550515545082771e-05 4.512559130332447e-05 - 4.474839802715817e-05 4.437356575264515e-05 4.400108444300858e-05 4.363094478314062e-05 4.326313737450849e-05 - 4.289765220307346e-05 4.253447954450777e-05 4.217360984935306e-05 4.181503354031293e-05 4.145874078526325e-05 - 4.110472186234567e-05 4.075296770939578e-05 4.040346881442376e-05 4.005621534517384e-05 3.971119780891244e-05 - 3.936840678851008e-05 3.902783280379881e-05 3.868946611492773e-05 3.835329736378580e-05 3.801931758461789e-05 - 3.768751721520911e-05 3.735788667634669e-05 3.703041665089796e-05 3.670509786268472e-05 3.638192090588934e-05 - 3.606087620758478e-05 3.574195476070656e-05 3.542514758568229e-05 3.511044516462031e-05 3.479783817623805e-05 - 3.448731747191980e-05 3.417887390941621e-05 3.387249813623169e-05 3.356818082938366e-05 3.326591326488256e-05 - 3.296568640239042e-05 3.266749086476883e-05 3.237131756688427e-05 3.207715751232477e-05 3.178500166911470e-05 - 3.149484077201404e-05 3.120666582870710e-05 3.092046825328168e-05 3.063623897047349e-05 3.035396883732847e-05 - 3.007364895961203e-05 2.979527048619034e-05 2.951882447255356e-05 2.924430180184470e-05 2.897169381596313e-05 - 2.870099196601076e-05 2.843218722351712e-05 2.816527069305565e-05 2.790023364581556e-05 2.763706736588794e-05 - 2.737576298520704e-05 2.711631161938774e-05 2.685870489191871e-05 2.660293422952212e-05 2.634899073350601e-05 - 2.609686574272242e-05 2.584655068622352e-05 2.559803697386157e-05 2.535131582907573e-05 2.510637865851451e-05 - 2.486321726016628e-05 2.462182305120829e-05 2.438218734168926e-05 2.414430166313400e-05 2.390815760058303e-05 - 2.367374667612129e-05 2.344106023464476e-05 2.321008999935892e-05 2.298082786356460e-05 2.275326527748312e-05 - 2.252739378233606e-05 2.230320509258137e-05 2.208069093512809e-05 2.185984291941186e-05 2.164065260635458e-05 - 2.142311199522572e-05 2.120721298028661e-05 2.099294714303281e-05 2.078030625998752e-05 2.056928220029127e-05 - 2.035986682231265e-05 2.015205183896797e-05 1.994582907956633e-05 1.974119073954575e-05 1.953812872162773e-05 - 1.933663479825456e-05 1.913670094979531e-05 1.893831919578259e-05 1.874148151575467e-05 1.854617976080873e-05 - 1.835240605058427e-05 1.816015268982217e-05 1.796941162992672e-05 1.778017486956627e-05 1.759243456762222e-05 - 1.740618289118282e-05 1.722141193137039e-05 1.703811372777776e-05 1.685628066375182e-05 1.667590509374455e-05 - 1.649697910104339e-05 1.631949489857415e-05 1.614344479286407e-05 1.596882111103627e-05 1.579561606259506e-05 - 1.562382191518076e-05 1.545343126338709e-05 1.528443649706141e-05 1.511682986511545e-05 1.495060379262073e-05 - 1.478575075387210e-05 1.462226320346460e-05 1.446013347627832e-05 1.429935410828208e-05 1.413991783947596e-05 - 1.398181711799591e-05 1.382504440087988e-05 1.366959229690567e-05 1.351545344207288e-05 1.336262041089977e-05 - 1.321108569966174e-05 1.306084210743495e-05 1.291188246012095e-05 1.276419932540445e-05 1.261778537439798e-05 - 1.247263337350260e-05 1.232873611168182e-05 1.218608628547451e-05 1.204467661277090e-05 1.190450010670460e-05 - 1.176554964839514e-05 1.162781797531038e-05 1.149129796332477e-05 1.135598253898601e-05 1.122186462622714e-05 - 1.108893706038782e-05 1.095719281332111e-05 1.082662505098182e-05 1.069722672643097e-05 1.056899077370047e-05 - 1.044191025341683e-05 1.031597825830204e-05 1.019118784797653e-05 1.006753201372614e-05 9.945003972957807e-06 - 9.823597003224701e-06 9.703304169766936e-06 9.584118614966616e-06 9.466033570975281e-06 9.349042284940899e-06 - 9.233137946012443e-06 9.118313747892748e-06 9.004563126071509e-06 8.891879438415634e-06 8.780255908737012e-06 - 8.669685879934477e-06 8.560162746518096e-06 8.451679906731882e-06 8.344230688978416e-06 8.237808513777729e-06 - 8.132406985376577e-06 8.028019552616531e-06 7.924639629701503e-06 7.822260741691212e-06 7.720876445763237e-06 - 7.620480284148957e-06 7.521065743540658e-06 7.422626477381218e-06 7.325156218634066e-06 7.228648532638821e-06 - 7.133097034958690e-06 7.038495423985100e-06 6.944837416133499e-06 6.852116691729515e-06 6.760326924607246e-06 - 6.669461983453847e-06 6.579515704432944e-06 6.490481806747385e-06 6.402354101863004e-06 6.315126452251840e-06 - 6.228792731669073e-06 6.143346764859859e-06 6.058782435540508e-06 5.975093791198315e-06 5.892274772590937e-06 - 5.810319279027480e-06 5.729221306547671e-06 5.648974882411472e-06 5.569574030477156e-06 5.491012732167998e-06 - 5.413285091010444e-06 5.336385298912571e-06 5.260307420244722e-06 5.185045547999291e-06 5.110593849728286e-06 - 5.036946516955677e-06 4.964097720721464e-06 4.892041619202182e-06 4.820772525961763e-06 4.750284753859853e-06 - 4.680572517390150e-06 4.611630102585562e-06 4.543451844884654e-06 4.476032095169469e-06 4.409365173309600e-06 - 4.343445435493855e-06 4.278267378107974e-06 4.213825432046252e-06 4.150113986510229e-06 4.087127510654963e-06 - 4.024860505544460e-06 3.963307478207591e-06 3.902462905546128e-06 3.842321351732513e-06 3.782877469285005e-06 - 3.724125818875267e-06 3.666060976275786e-06 3.608677584308628e-06 3.551970310325800e-06 3.495933813913828e-06 - 3.440562742860537e-06 3.385851865026623e-06 3.331795968547279e-06 3.278389763636986e-06 3.225628015585682e-06 - 3.173505536483180e-06 3.122017155106099e-06 3.071157684657154e-06 3.020921961442045e-06 2.971304937503200e-06 - 2.922301530764381e-06 2.873906622400171e-06 2.826115159163556e-06 2.778922119160790e-06 2.732322492500433e-06 - 2.686311250918327e-06 2.640883427466542e-06 2.596034137909800e-06 2.551758437600915e-06 2.508051388712647e-06 - 2.464908112415978e-06 2.422323753722291e-06 2.380293459852445e-06 2.338812372063220e-06 2.297875719562253e-06 - 2.257478763762930e-06 2.217616712073996e-06 2.178284811840686e-06 2.139478353112250e-06 2.101192645402220e-06 - 2.063422994293474e-06 2.026164721213360e-06 1.989413239181793e-06 1.953163950788084e-06 1.917412231009713e-06 - 1.882153506609316e-06 1.847383234461138e-06 1.813096887995954e-06 1.779289933937322e-06 1.745957881749227e-06 - 1.713096313387221e-06 1.680700776153704e-06 1.648766820412035e-06 1.617290047665242e-06 1.586266083282953e-06 - 1.555690561349229e-06 1.525559115412809e-06 1.495867444877275e-06 1.466611286844381e-06 1.437786342321971e-06 - 1.409388342689011e-06 1.381413059137875e-06 1.353856283643994e-06 1.326713811980504e-06 1.299981452903499e-06 - 1.273655087535907e-06 1.247730601634883e-06 1.222203862466376e-06 1.197070780161529e-06 1.172327293218336e-06 - 1.147969358200551e-06 1.123992934949297e-06 1.100394014305713e-06 1.077168647815731e-06 1.054312872343777e-06 - 1.031822727943270e-06 1.009694299029158e-06 9.879236928228051e-07 9.665070295488333e-07 9.454404356909418e-07 - 9.247200854784831e-07 9.043421911847067e-07 8.843029477247774e-07 8.645985728173436e-07 8.452253193362285e-07 - 8.261794626052351e-07 8.074572875932502e-07 7.890550921071068e-07 7.709692301619030e-07 7.531960701353248e-07 - 7.357319715620587e-07 7.185733287203112e-07 7.017165630618881e-07 6.851581162834306e-07 6.688944388625421e-07 - 6.529220052598067e-07 6.372373411274385e-07 6.218369717692920e-07 6.067174274527125e-07 5.918752755194360e-07 - 5.773071063798692e-07 5.630095271034721e-07 5.489791556312369e-07 5.352126455394792e-07 5.217066864180125e-07 - 5.084579644193884e-07 4.954631845887763e-07 4.827190834887087e-07 4.702224204045173e-07 4.579699684713550e-07 - 4.459585154334098e-07 4.341848919935187e-07 4.226459485782965e-07 4.113385363883691e-07 4.002595352312233e-07 - 3.894058504065020e-07 3.787744086301839e-07 3.683621500987016e-07 3.581660355932383e-07 3.481830676805770e-07 - 3.384102581524441e-07 3.288446273745833e-07 3.194832275224818e-07 3.103231330843525e-07 3.013614373207315e-07 - 2.925952486098954e-07 2.840217031010630e-07 2.756379695267500e-07 2.674412234106971e-07 2.594286576386206e-07 - 2.515974937029081e-07 2.439449754383926e-07 2.364683632309526e-07 2.291649345383248e-07 2.220320002407473e-07 - 2.150668931442167e-07 2.082669548865648e-07 2.016295514473211e-07 1.951520727682157e-07 1.888319311586693e-07 - 1.826665552837694e-07 1.766533931743509e-07 1.707899271779558e-07 1.650736547045015e-07 1.595020857916059e-07 - 1.540727581256184e-07 1.487832309302349e-07 1.436310837043274e-07 1.386139140291348e-07 1.337293426531939e-07 - 1.289750194034745e-07 1.243486077550924e-07 1.198477884856861e-07 1.154702687444825e-07 1.112137774078364e-07 - 1.070760615754017e-07 1.030548878714015e-07 9.914804983102429e-08 9.535336319532080e-08 9.166865877274502e-08 - 8.809178921148019e-08 8.462062987184363e-08 8.125307865123530e-08 7.798705169188094e-08 7.482048486743137e-08 - 7.175134265372113e-08 6.877760756933380e-08 6.589727849023001e-08 6.310837918621049e-08 6.040895419177239e-08 - 5.779706919084610e-08 5.527080986023133e-08 5.282828275733461e-08 5.046762055622123e-08 4.818697371034567e-08 - 4.598451068334482e-08 4.385842456607357e-08 4.180692971968811e-08 3.982825980405518e-08 3.792066966127786e-08 - 3.608243718277188e-08 3.431186206040581e-08 3.260726312426322e-08 3.096697968233847e-08 2.938937298745983e-08 - 2.787282684203093e-08 2.641574418968914e-08 2.501654849393015e-08 2.367368813134603e-08 2.238563078881267e-08 - 2.115086344400587e-08 1.996789606940446e-08 1.883525886916157e-08 1.775150390948272e-08 1.671520402936120e-08 - 1.572495208680648e-08 1.477936511938296e-08 1.387707990026544e-08 1.301675220490221e-08 1.219706138041649e-08 - 1.141670750179082e-08 1.067441065312196e-08 9.968913113355902e-09 9.298978133402818e-09 8.663390331238368e-09 - 8.060955677291694e-09 7.490500025975069e-09 6.950870854385858e-09 6.440937996309972e-09 5.959590797852082e-09 - 5.505739944416565e-09 5.078318901633865e-09 4.676280806472903e-09 4.298600029449081e-09 3.944272776496124e-09 - 3.612315204086912e-09 3.301765808464261e-09 3.011683971683484e-09 2.741149022073358e-09 2.489263438950313e-09 - 2.255150010734707e-09 2.037951439802415e-09 1.836833426869985e-09 1.650981924522248e-09 1.479603458288696e-09 - 1.321927088896133e-09 1.177201927023745e-09 1.044698361371603e-09 9.237089042804517e-10 8.135457713165132e-10 - 7.135428727606122e-10 6.230561233086797e-10 5.414610837010692e-10 4.681552957722881e-10 4.025579739718386e-10 - 3.441080911031397e-10 2.922668865200973e-10 2.465167169238545e-10 2.063598966733955e-10 1.713213823559041e-10 - 1.409467301732644e-10 1.148017117805301e-10 9.247489436372923e-11 7.357503403670199e-11 5.773147403071901e-11 - 4.459623415664643e-11 3.384125546419585e-11 2.515956035071991e-11 1.826656159304613e-11 1.289741553721677e-11 - 8.808852910154413e-12 5.779611749592996e-12 3.608107240050744e-12 2.114775563702074e-12 1.141629414770904e-12 - 5.504076981088132e-13 2.252028793998774e-13 7.135404618680312e-14 1.400208835054596e-14 2.858282411901289e-16 - 0.000000000000000e+00 3.280907692410757e+00 6.559093802140417e+00 9.834554467967374e+00 1.310728583537977e+01 - 1.637728405657552e+01 1.964454529046227e+01 2.290906570265743e+01 2.617084146548816e+01 2.942986875799139e+01 - 3.268614376591378e+01 3.593966268171175e+01 3.919042170455148e+01 4.243841704030890e+01 4.568364490156970e+01 - 4.892610150762930e+01 5.216578308449292e+01 5.540268586487547e+01 5.863680608820168e+01 6.186814000060598e+01 - 6.509668385493259e+01 6.832243391073550e+01 7.154538643427834e+01 7.476553769853463e+01 7.798288398318758e+01 - 8.119742157463018e+01 8.440914676596513e+01 8.761805585700493e+01 9.082414515427180e+01 9.402741097099775e+01 - 9.722784962712448e+01 1.004254574493035e+02 1.036202307708961e+02 1.068121659319733e+02 1.100012592793157e+02 - 1.131875071664140e+02 1.163709059534683e+02 1.195514520073887e+02 1.227291417017950e+02 1.259039714170167e+02 - 1.290759375400930e+02 1.322450364647731e+02 1.354112645915156e+02 1.385746183274891e+02 1.417350940865720e+02 - 1.448926882893522e+02 1.480473973631275e+02 1.511992177419055e+02 1.543481458664036e+02 1.574941781840487e+02 - 1.606373111489777e+02 1.637775412220371e+02 1.669148648707833e+02 1.700492785694823e+02 1.731807787991100e+02 - 1.763093620473519e+02 1.794350248086033e+02 1.825577635839695e+02 1.856775748812652e+02 1.887944552150149e+02 - 1.919084011064531e+02 1.950194090835239e+02 1.981274756808810e+02 2.012325974398883e+02 2.043347709086188e+02 - 2.074339926418558e+02 2.105302592010923e+02 2.136235671545306e+02 2.167139130770834e+02 2.198012935503726e+02 - 2.228857051627302e+02 2.259671445091978e+02 2.290456081915269e+02 2.321210928181784e+02 2.351935950043234e+02 - 2.382631113718425e+02 2.413296385493261e+02 2.443931731720744e+02 2.474537118820972e+02 2.505112513281143e+02 - 2.535657881655549e+02 2.566173190565586e+02 2.596658406699738e+02 2.627113496813596e+02 2.657538427729843e+02 - 2.687933166338259e+02 2.718297679595726e+02 2.748631934526219e+02 2.778935898220815e+02 2.809209537837683e+02 - 2.839452820602094e+02 2.869665713806416e+02 2.899848184810112e+02 2.930000201039745e+02 2.960121729988974e+02 - 2.990212739218558e+02 3.020273196356349e+02 3.050303069097302e+02 3.080302325203465e+02 3.110270932503987e+02 - 3.140208858895110e+02 3.170116072340180e+02 3.199992540869634e+02 3.229838232581013e+02 3.259653115638948e+02 - 3.289437158275174e+02 3.319190328788521e+02 3.348912595544916e+02 3.378603926977383e+02 3.408264291586049e+02 - 3.437893657938130e+02 3.467491994667945e+02 3.497059270476910e+02 3.526595454133537e+02 3.556100514473437e+02 - 3.585574420399318e+02 3.615017140880985e+02 3.644428644955341e+02 3.673808901726388e+02 3.703157880365222e+02 - 3.732475550110041e+02 3.761761880266134e+02 3.791016840205897e+02 3.820240399368814e+02 3.849432527261474e+02 - 3.878593193457557e+02 3.907722367597846e+02 3.936820019390219e+02 3.965886118609651e+02 3.994920635098217e+02 - 4.023923538765087e+02 4.052894799586530e+02 4.081834387605912e+02 4.110742272933696e+02 4.139618425747443e+02 - 4.168462816291812e+02 4.197275414878559e+02 4.226056191886540e+02 4.254805117761704e+02 4.283522163017099e+02 - 4.312207298232872e+02 4.340860494056267e+02 4.369481721201628e+02 4.398070950450389e+02 4.426628152651090e+02 - 4.455153298719365e+02 4.483646359637945e+02 4.512107306456656e+02 4.540536110292430e+02 4.568932742329288e+02 - 4.597297173818351e+02 4.625629376077841e+02 4.653929320493071e+02 4.682196978516460e+02 4.710432321667516e+02 - 4.738635321532851e+02 4.766805949766169e+02 4.794944178088276e+02 4.823049978287075e+02 4.851123322217564e+02 - 4.879164181801841e+02 4.907172529029099e+02 4.935148335955632e+02 4.963091574704831e+02 4.991002217467178e+02 - 5.018880236500261e+02 5.046725604128764e+02 5.074538292744463e+02 5.102318274806237e+02 5.130065522840063e+02 - 5.157780009439010e+02 5.185461707263250e+02 5.213110589040049e+02 5.240726627563774e+02 5.268309795695885e+02 - 5.295860066364945e+02 5.323377412566609e+02 5.350861807363634e+02 5.378313223885873e+02 5.405731635330272e+02 - 5.433117014960885e+02 5.460469336108854e+02 5.487788572172420e+02 5.515074696616928e+02 5.542327682974811e+02 - 5.569547504845609e+02 5.596734135895950e+02 5.623887549859570e+02 5.651007720537292e+02 5.678094621797045e+02 - 5.705148227573850e+02 5.732168511869830e+02 5.759155448754203e+02 5.786109012363282e+02 5.813029176900482e+02 - 5.839915916636313e+02 5.866769205908384e+02 5.893589019121401e+02 5.920375330747167e+02 5.947128115324583e+02 - 5.973847347459648e+02 6.000533001825459e+02 6.027185053162206e+02 6.053803476277183e+02 6.080388246044777e+02 - 6.106939337406476e+02 6.133456725370861e+02 6.159940385013617e+02 6.186390291477520e+02 6.212806419972447e+02 - 6.239188745775372e+02 6.265537244230364e+02 6.291851890748597e+02 6.318132660808333e+02 6.344379529954938e+02 - 6.370592473800871e+02 6.396771468025696e+02 6.422916488376064e+02 6.449027510665734e+02 6.475104510775553e+02 - 6.501147464653474e+02 6.527156348314542e+02 6.553131137840901e+02 6.579071809381794e+02 6.604978339153558e+02 - 6.630850703439634e+02 6.656688878590552e+02 6.682492841023947e+02 6.708262567224546e+02 6.733998033744177e+02 - 6.759699217201766e+02 6.785366094283333e+02 6.810998641742000e+02 6.836596836397980e+02 6.862160655138592e+02 - 6.887690074918247e+02 6.913185072758453e+02 6.938645625747821e+02 6.964071711042051e+02 6.989463305863949e+02 - 7.014820387503412e+02 7.040142933317441e+02 7.065430920730126e+02 7.090684327232666e+02 7.115903130383348e+02 - 7.141087307807558e+02 7.166236837197782e+02 7.191351696313601e+02 7.216431862981700e+02 7.241477315095852e+02 - 7.266488030616937e+02 7.291463987572921e+02 7.316405164058881e+02 7.341311538236981e+02 7.366183088336488e+02 - 7.391019792653765e+02 7.415821629552270e+02 7.440588577462564e+02 7.465320614882301e+02 7.490017720376235e+02 - 7.514679872576214e+02 7.539307050181191e+02 7.563899231957208e+02 7.588456396737411e+02 7.612978523422037e+02 - 7.637465590978424e+02 7.661917578441014e+02 7.686334464911333e+02 7.710716229558018e+02 7.735062851616793e+02 - 7.759374310390485e+02 7.783650585249019e+02 7.807891655629417e+02 7.832097501035795e+02 7.856268101039369e+02 - 7.880403435278453e+02 7.904503483458460e+02 7.928568225351897e+02 7.952597640798369e+02 7.976591709704585e+02 - 8.000550412044341e+02 8.024473727858536e+02 8.048361637255169e+02 8.072214120409334e+02 8.096031157563222e+02 - 8.119812729026120e+02 8.143558815174417e+02 8.167269396451593e+02 8.190944453368236e+02 8.214583966502021e+02 - 8.238187916497725e+02 8.261756284067224e+02 8.285289049989487e+02 8.308786195110586e+02 8.332247700343684e+02 - 8.355673546669050e+02 8.379063715134042e+02 8.402418186853124e+02 8.425736943007848e+02 8.449019964846872e+02 - 8.472267233685945e+02 8.495478730907921e+02 8.518654437962743e+02 8.541794336367457e+02 8.564898407706205e+02 - 8.587966633630226e+02 8.610998995857861e+02 8.633995476174539e+02 8.656956056432798e+02 8.679880718552264e+02 - 8.702769444519665e+02 8.725622216388828e+02 8.748439016280670e+02 8.771219826383219e+02 8.793964628951586e+02 - 8.816673406307990e+02 8.839346140841741e+02 8.861982815009252e+02 8.884583411334027e+02 8.907147912406675e+02 - 8.929676300884897e+02 8.952168559493493e+02 8.974624671024361e+02 8.997044618336495e+02 9.019428384355992e+02 - 9.041775952076036e+02 9.064087304556922e+02 9.086362424926032e+02 9.108601296377846e+02 9.130803902173951e+02 - 9.152970225643020e+02 9.175100250180832e+02 9.197193959250255e+02 9.219251336381268e+02 9.241272365170935e+02 - 9.263257029283417e+02 9.285205312449986e+02 9.307117198468995e+02 9.328992671205907e+02 9.350831714593277e+02 - 9.372634312630761e+02 9.394400449385104e+02 9.416130108990160e+02 9.437823275646871e+02 9.459479933623287e+02 - 9.481100067254541e+02 9.502683660942876e+02 9.524230699157629e+02 9.545741166435229e+02 9.567215047379214e+02 - 9.588652326660207e+02 9.610052989015940e+02 9.631417019251231e+02 9.652744402238004e+02 9.674035122915279e+02 - 9.695289166289172e+02 9.716506517432896e+02 9.737687161486764e+02 9.758831083658184e+02 9.779938269221661e+02 - 9.801008703518804e+02 9.822042371958310e+02 9.843039260015983e+02 9.863999353234714e+02 9.884922637224498e+02 - 9.905809097662435e+02 9.926658720292703e+02 9.947471490926598e+02 9.968247395442500e+02 9.988986419785891e+02 - 1.000968854996935e+03 1.003035377207256e+03 1.005098207224229e+03 1.007157343669241e+03 1.009212785170389e+03 - 1.011264530362480e+03 1.013312577887031e+03 1.015356926392268e+03 1.017397574533126e+03 1.019434520971252e+03 - 1.021467764375000e+03 1.023497303419437e+03 1.025523136786337e+03 1.027545263164185e+03 1.029563681248175e+03 - 1.031578389740212e+03 1.033589387348909e+03 1.035596672789591e+03 1.037600244784291e+03 1.039600102061752e+03 - 1.041596243357428e+03 1.043588667413480e+03 1.045577372978782e+03 1.047562358808916e+03 1.049543623666173e+03 - 1.051521166319557e+03 1.053494985544777e+03 1.055465080124256e+03 1.057431448847125e+03 1.059394090509224e+03 - 1.061353003913104e+03 1.063308187868025e+03 1.065259641189957e+03 1.067207362701581e+03 1.069151351232285e+03 - 1.071091605618170e+03 1.073028124702043e+03 1.074960907333424e+03 1.076889952368542e+03 1.078815258670335e+03 - 1.080736825108451e+03 1.082654650559248e+03 1.084568733905793e+03 1.086479074037864e+03 1.088385669851947e+03 - 1.090288520251241e+03 1.092187624145651e+03 1.094082980451794e+03 1.095974588092995e+03 1.097862445999292e+03 - 1.099746553107428e+03 1.101626908360861e+03 1.103503510709754e+03 1.105376359110983e+03 1.107245452528133e+03 - 1.109110789931497e+03 1.110972370298081e+03 1.112830192611597e+03 1.114684255862470e+03 1.116534559047833e+03 - 1.118381101171529e+03 1.120223881244111e+03 1.122062898282842e+03 1.123898151311694e+03 1.125729639361349e+03 - 1.127557361469200e+03 1.129381316679347e+03 1.131201504042604e+03 1.133017922616489e+03 1.134830571465235e+03 - 1.136639449659783e+03 1.138444556277782e+03 1.140245890403593e+03 1.142043451128286e+03 1.143837237549640e+03 - 1.145627248772146e+03 1.147413483907002e+03 1.149195942072117e+03 1.150974622392110e+03 1.152749523998310e+03 - 1.154520646028755e+03 1.156287987628192e+03 1.158051547948079e+03 1.159811326146585e+03 1.161567321388586e+03 - 1.163319532845669e+03 1.165067959696131e+03 1.166812601124979e+03 1.168553456323928e+03 1.170290524491405e+03 - 1.172023804832545e+03 1.173753296559195e+03 1.175478998889909e+03 1.177200911049953e+03 1.178919032271301e+03 - 1.180633361792637e+03 1.182343898859357e+03 1.184050642723563e+03 1.185753592644071e+03 1.187452747886402e+03 - 1.189148107722792e+03 1.190839671432183e+03 1.192527438300227e+03 1.194211407619287e+03 1.195891578688435e+03 - 1.197567950813455e+03 1.199240523306837e+03 1.200909295487783e+03 1.202574266682204e+03 1.204235436222721e+03 - 1.205892803448666e+03 1.207546367706079e+03 1.209196128347710e+03 1.210842084733019e+03 1.212484236228177e+03 - 1.214122582206062e+03 1.215757122046265e+03 1.217387855135084e+03 1.219014780865528e+03 1.220637898637316e+03 - 1.222257207856876e+03 1.223872707937346e+03 1.225484398298575e+03 1.227092278367119e+03 1.228696347576247e+03 - 1.230296605365935e+03 1.231893051182870e+03 1.233485684480449e+03 1.235074504718779e+03 1.236659511364675e+03 - 1.238240703891664e+03 1.239818081779981e+03 1.241391644516571e+03 1.242961391595090e+03 1.244527322515903e+03 - 1.246089436786084e+03 1.247647733919417e+03 1.249202213436398e+03 1.250752874864230e+03 1.252299717736826e+03 - 1.253842741594810e+03 1.255381945985516e+03 1.256917330462986e+03 1.258448894587972e+03 1.259976637927938e+03 - 1.261500560057056e+03 1.263020660556207e+03 1.264536939012984e+03 1.266049395021687e+03 1.267558028183329e+03 - 1.269062838105629e+03 1.270563824403019e+03 1.272060986696640e+03 1.273554324614341e+03 1.275043837790682e+03 - 1.276529525866934e+03 1.278011388491075e+03 1.279489425317796e+03 1.280963636008494e+03 1.282434020231280e+03 - 1.283900577660971e+03 1.285363307979095e+03 1.286822210873891e+03 1.288277286040307e+03 1.289728533179999e+03 - 1.291175952001336e+03 1.292619542219393e+03 1.294059303555960e+03 1.295495235739530e+03 1.296927338505312e+03 - 1.298355611595221e+03 1.299780054757883e+03 1.301200667748633e+03 1.302617450329516e+03 1.304030402269289e+03 - 1.305439523343415e+03 1.306844813334069e+03 1.308246272030136e+03 1.309643899227210e+03 1.311037694727594e+03 - 1.312427658340302e+03 1.313813789881058e+03 1.315196089172293e+03 1.316574556043153e+03 1.317949190329488e+03 - 1.319319991873862e+03 1.320686960525546e+03 1.322050096140523e+03 1.323409398581483e+03 1.324764867717829e+03 - 1.326116503425671e+03 1.327464305587830e+03 1.328808274093838e+03 1.330148408839934e+03 1.331484709729068e+03 - 1.332817176670901e+03 1.334145809581802e+03 1.335470608384850e+03 1.336791573009835e+03 1.338108703393256e+03 - 1.339421999478320e+03 1.340731461214948e+03 1.342037088559766e+03 1.343338881476113e+03 1.344636839934036e+03 - 1.345930963910293e+03 1.347221253388351e+03 1.348507708358388e+03 1.349790328817288e+03 1.351069114768650e+03 - 1.352344066222779e+03 1.353615183196692e+03 1.354882465714113e+03 1.356145913805479e+03 1.357405527507935e+03 - 1.358661306865335e+03 1.359913251928245e+03 1.361161362753938e+03 1.362405639406399e+03 1.363646081956323e+03 - 1.364882690481112e+03 1.366115465064880e+03 1.367344405798451e+03 1.368569512779358e+03 1.369790786111843e+03 - 1.371008225906858e+03 1.372221832282067e+03 1.373431605361840e+03 1.374637545277261e+03 1.375839652166119e+03 - 1.377037926172918e+03 1.378232367448867e+03 1.379422976151887e+03 1.380609752446609e+03 1.381792696504374e+03 - 1.382971808503231e+03 1.384147088627939e+03 1.385318537069970e+03 1.386486154027501e+03 1.387649939705423e+03 - 1.388809894315333e+03 1.389966018075540e+03 1.391118311211063e+03 1.392266773953630e+03 1.393411406541678e+03 - 1.394552209220356e+03 1.395689182241520e+03 1.396822325863737e+03 1.397951640352285e+03 1.399077125979150e+03 - 1.400198783023028e+03 1.401316611769325e+03 1.402430612510158e+03 1.403540785544351e+03 1.404647131177441e+03 - 1.405749649721672e+03 1.406848341496000e+03 1.407943206826088e+03 1.409034246044311e+03 1.410121459489754e+03 - 1.411204847508209e+03 1.412284410452182e+03 1.413360148680885e+03 1.414432062560241e+03 1.415500152462884e+03 - 1.416564418768155e+03 1.417624861862108e+03 1.418681482137504e+03 1.419734279993815e+03 1.420783255837224e+03 - 1.421828410080621e+03 1.422869743143608e+03 1.423907255452495e+03 1.424940947440303e+03 1.425970819546763e+03 - 1.426996872218314e+03 1.428019105908108e+03 1.429037521076003e+03 1.430052118188569e+03 1.431062897719085e+03 - 1.432069860147540e+03 1.433073005960632e+03 1.434072335651771e+03 1.435067849721075e+03 1.436059548675370e+03 - 1.437047433028196e+03 1.438031503299800e+03 1.439011760017138e+03 1.439988203713878e+03 1.440960834930396e+03 - 1.441929654213780e+03 1.442894662117825e+03 1.443855859203037e+03 1.444813246036631e+03 1.445766823192535e+03 - 1.446716591251382e+03 1.447662550800518e+03 1.448604702433997e+03 1.449543046752585e+03 1.450477584363755e+03 - 1.451408315881691e+03 1.452335241927287e+03 1.453258363128147e+03 1.454177680118583e+03 1.455093193539620e+03 - 1.456004904038989e+03 1.456912812271134e+03 1.457816918897206e+03 1.458717224585068e+03 1.459613730009291e+03 - 1.460506435851157e+03 1.461395342798658e+03 1.462280451546494e+03 1.463161762796076e+03 1.464039277255525e+03 - 1.464912995639670e+03 1.465782918670054e+03 1.466649047074924e+03 1.467511381589240e+03 1.468369922954673e+03 - 1.469224671919600e+03 1.470075629239112e+03 1.470922795675006e+03 1.471766171995790e+03 1.472605758976684e+03 - 1.473441557399614e+03 1.474273568053219e+03 1.475101791732846e+03 1.475926229240551e+03 1.476746881385102e+03 - 1.477563748981976e+03 1.478376832853358e+03 1.479186133828146e+03 1.479991652741944e+03 1.480793390437068e+03 - 1.481591347762545e+03 1.482385525574108e+03 1.483175924734204e+03 1.483962546111986e+03 1.484745390583318e+03 - 1.485524459030776e+03 1.486299752343644e+03 1.487071271417914e+03 1.487839017156289e+03 1.488602990468185e+03 - 1.489363192269722e+03 1.490119623483735e+03 1.490872285039765e+03 1.491621177874064e+03 1.492366302929595e+03 - 1.493107661156030e+03 1.493845253509749e+03 1.494579080953843e+03 1.495309144458115e+03 1.496035444999074e+03 - 1.496757983559942e+03 1.497476761130647e+03 1.498191778707831e+03 1.498903037294843e+03 1.499610537901742e+03 - 1.500314281545298e+03 1.501014269248990e+03 1.501710502043006e+03 1.502402980964245e+03 1.503091707056315e+03 - 1.503776681369534e+03 1.504457904960931e+03 1.505135378894241e+03 1.505809104239914e+03 1.506479082075105e+03 - 1.507145313483682e+03 1.507807799556220e+03 1.508466541390007e+03 1.509121540089038e+03 1.509772796764020e+03 - 1.510420312532367e+03 1.511064088518205e+03 1.511704125852369e+03 1.512340425672404e+03 1.512972989122564e+03 - 1.513601817353814e+03 1.514226911523828e+03 1.514848272796989e+03 1.515465902344391e+03 1.516079801343838e+03 - 1.516689970979842e+03 1.517296412443626e+03 1.517899126933124e+03 1.518498115652977e+03 1.519093379814537e+03 - 1.519684920635866e+03 1.520272739341736e+03 1.520856837163628e+03 1.521437215339733e+03 1.522013875114953e+03 - 1.522586817740897e+03 1.523156044475887e+03 1.523721556584951e+03 1.524283355339831e+03 1.524841442018975e+03 - 1.525395817907543e+03 1.525946484297405e+03 1.526493442487138e+03 1.527036693782033e+03 1.527576239494086e+03 - 1.528112080942007e+03 1.528644219451213e+03 1.529172656353831e+03 1.529697392988700e+03 1.530218430701367e+03 - 1.530735770844087e+03 1.531249414775829e+03 1.531759363862268e+03 1.532265619475790e+03 1.532768182995492e+03 - 1.533267055807180e+03 1.533762239303368e+03 1.534253734883281e+03 1.534741543952856e+03 1.535225667924735e+03 - 1.535706108218275e+03 1.536182866259539e+03 1.536655943481301e+03 1.537125341323045e+03 1.537591061230964e+03 - 1.538053104657961e+03 1.538511473063650e+03 1.538966167914353e+03 1.539417190683102e+03 1.539864542849641e+03 - 1.540308225900420e+03 1.540748241328602e+03 1.541184590634058e+03 1.541617275323370e+03 1.542046296909827e+03 - 1.542471656913432e+03 1.542893356860894e+03 1.543311398285634e+03 1.543725782727782e+03 1.544136511734178e+03 - 1.544543586858370e+03 1.544947009660620e+03 1.545346781707894e+03 1.545742904573873e+03 1.546135379838945e+03 - 1.546524209090207e+03 1.546909393921469e+03 1.547290935933248e+03 1.547668836732771e+03 1.548043097933976e+03 - 1.548413721157510e+03 1.548780708030729e+03 1.549144060187701e+03 1.549503779269201e+03 1.549859866922715e+03 - 1.550212324802440e+03 1.550561154569281e+03 1.550906357890854e+03 1.551247936441483e+03 1.551585891902203e+03 - 1.551920225960758e+03 1.552250940311604e+03 1.552578036655905e+03 1.552901516701533e+03 1.553221382163073e+03 - 1.553537634761818e+03 1.553850276225772e+03 1.554159308289647e+03 1.554464732694865e+03 1.554766551189559e+03 - 1.555064765528572e+03 1.555359377473454e+03 1.555650388792468e+03 1.555937801260586e+03 1.556221616659488e+03 - 1.556501836777564e+03 1.556778463409917e+03 1.557051498358356e+03 1.557320943431401e+03 1.557586800444283e+03 - 1.557849071218940e+03 1.558107757584023e+03 1.558362861374890e+03 1.558614384433611e+03 1.558862328608964e+03 - 1.559106695756438e+03 1.559347487738230e+03 1.559584706423249e+03 1.559818353687112e+03 1.560048431412147e+03 - 1.560274941487391e+03 1.560497885808591e+03 1.560717266278204e+03 1.560933084805396e+03 1.561145343306044e+03 - 1.561354043702732e+03 1.561559187924758e+03 1.561760777908126e+03 1.561958815595552e+03 1.562153302936461e+03 - 1.562344241886987e+03 1.562531634409975e+03 1.562715482474979e+03 1.562895788058264e+03 1.563072553142803e+03 - 1.563245779718279e+03 1.563415469781085e+03 1.563581625334326e+03 1.563744248387813e+03 1.563903340958068e+03 - 1.564058905068325e+03 1.564210942748526e+03 1.564359456035321e+03 1.564504446972073e+03 1.564645917608853e+03 - 1.564783870002442e+03 1.564918306216331e+03 1.565049228320720e+03 1.565176638392519e+03 1.565300538515349e+03 - 1.565420930779540e+03 1.565537817282130e+03 1.565651200126870e+03 1.565761081424219e+03 1.565867463291344e+03 - 1.565970347852125e+03 1.566069737237150e+03 1.566165633583717e+03 1.566258039035835e+03 1.566346955744220e+03 - 1.566432385866300e+03 1.566514331566212e+03 1.566592795014803e+03 1.566667778389629e+03 1.566739283874957e+03 - 1.566807313661764e+03 1.566871869947734e+03 1.566932954937263e+03 1.566990570841457e+03 1.567044719878131e+03 - 1.567095404271811e+03 1.567142626253729e+03 1.567186388061831e+03 1.567226691940771e+03 1.567263540141913e+03 - 1.567296934923331e+03 1.567326878549808e+03 1.567353373292836e+03 1.567376421430620e+03 1.567396025248071e+03 - 1.567412187036812e+03 1.567424909095176e+03 1.567434193728203e+03 1.567440043247646e+03 1.567442459971967e+03 - 1.567441446226336e+03 1.567437004342634e+03 1.567429136659453e+03 1.567417845522091e+03 1.567403133282561e+03 - 1.567385002299581e+03 1.567363454938582e+03 1.567338493571702e+03 1.567310120577791e+03 1.567278338342408e+03 - 1.567243149257822e+03 1.567204555723011e+03 1.567162560143663e+03 1.567117164932177e+03 1.567068372507660e+03 - 1.567016185295929e+03 1.566960605729512e+03 1.566901636247646e+03 1.566839279296277e+03 1.566773537328063e+03 - 1.566704412802369e+03 1.566631908185271e+03 1.566556025949555e+03 1.566476768574717e+03 1.566394138546961e+03 - 1.566308138359204e+03 1.566218770511069e+03 1.566126037508891e+03 1.566029941865714e+03 1.565930486101294e+03 - 1.565827672742092e+03 1.565721504321283e+03 1.565611983378751e+03 1.565499112461087e+03 1.565382894121595e+03 - 1.565263330920288e+03 1.565140425423888e+03 1.565014180205826e+03 1.564884597846246e+03 1.564751680931997e+03 - 1.564615432056643e+03 1.564475853820452e+03 1.564332948830408e+03 1.564186719700199e+03 1.564037169050227e+03 - 1.563884299507601e+03 1.563728113706142e+03 1.563568614286379e+03 1.563405803895550e+03 1.563239685187607e+03 - 1.563070260823207e+03 1.562897533469719e+03 1.562721505801220e+03 1.562542180498501e+03 1.562359560249057e+03 - 1.562173647747097e+03 1.561984445693539e+03 1.561791956796009e+03 1.561596183768845e+03 1.561397129333092e+03 - 1.561194796216507e+03 1.560989187153558e+03 1.560780304885418e+03 1.560568152159974e+03 1.560352731731822e+03 - 1.560134046362267e+03 1.559912098819323e+03 1.559686891877715e+03 1.559458428318879e+03 1.559226710930956e+03 - 1.558991742508803e+03 1.558753525853981e+03 1.558512063774766e+03 1.558267359086140e+03 1.558019414609795e+03 - 1.557768233174136e+03 1.557513817614273e+03 1.557256170772030e+03 1.556995295495938e+03 1.556731194641239e+03 - 1.556463871069885e+03 1.556193327650536e+03 1.555919567258564e+03 1.555642592776049e+03 1.555362407091783e+03 - 1.555079013101264e+03 1.554792413706704e+03 1.554502611817021e+03 1.554209610347846e+03 1.553913412221517e+03 - 1.553614020367084e+03 1.553311437720305e+03 1.553005667223649e+03 1.552696711826295e+03 1.552384574484129e+03 - 1.552069258159750e+03 1.551750765822466e+03 1.551429100448294e+03 1.551104265019960e+03 1.550776262526902e+03 - 1.550445095965265e+03 1.550110768337907e+03 1.549773282654394e+03 1.549432641931000e+03 1.549088849190713e+03 - 1.548741907463227e+03 1.548391819784946e+03 1.548038589198987e+03 1.547682218755173e+03 1.547322711510039e+03 - 1.546960070526829e+03 1.546594298875496e+03 1.546225399632705e+03 1.545853375881829e+03 1.545478230712950e+03 - 1.545099967222861e+03 1.544718588515066e+03 1.544334097699777e+03 1.543946497893915e+03 1.543555792221112e+03 - 1.543161983811711e+03 1.542765075802762e+03 1.542365071338026e+03 1.541961973567975e+03 1.541555785649789e+03 - 1.541146510747358e+03 1.540734152031283e+03 1.540318712678874e+03 1.539900195874149e+03 1.539478604807839e+03 - 1.539053942677383e+03 1.538626212686929e+03 1.538195418047336e+03 1.537761561976173e+03 1.537324647697717e+03 - 1.536884678442957e+03 1.536441657449592e+03 1.535995587962026e+03 1.535546473231378e+03 1.535094316515475e+03 - 1.534639121078853e+03 1.534180890192759e+03 1.533719627135150e+03 1.533255335190690e+03 1.532788017650757e+03 - 1.532317677813435e+03 1.531844318983518e+03 1.531367944472514e+03 1.530888557598635e+03 1.530406161686807e+03 - 1.529920760068664e+03 1.529432356082550e+03 1.528940953073517e+03 1.528446554393331e+03 1.527949163400464e+03 - 1.527448783460099e+03 1.526945417944129e+03 1.526439070231157e+03 1.525929743706494e+03 1.525417441762163e+03 - 1.524902167796895e+03 1.524383925216131e+03 1.523862717432025e+03 1.523338547863434e+03 1.522811419935932e+03 - 1.522281337081799e+03 1.521748302740024e+03 1.521212320356308e+03 1.520673393383061e+03 1.520131525279401e+03 - 1.519586719511159e+03 1.519038979550873e+03 1.518488308877793e+03 1.517934710977876e+03 1.517378189343791e+03 - 1.516818747474916e+03 1.516256388877339e+03 1.515691117063858e+03 1.515122935553979e+03 1.514551847873920e+03 - 1.513977857556607e+03 1.513400968141679e+03 1.512821183175479e+03 1.512238506211065e+03 1.511652940808203e+03 - 1.511064490533368e+03 1.510473158959745e+03 1.509878949667230e+03 1.509281866242427e+03 1.508681912278651e+03 - 1.508079091375926e+03 1.507473407140987e+03 1.506864863187277e+03 1.506253463134950e+03 1.505639210610869e+03 - 1.505022109248608e+03 1.504402162688449e+03 1.503779374577385e+03 1.503153748569118e+03 1.502525288324061e+03 - 1.501893997509335e+03 1.501259879798773e+03 1.500622938872914e+03 1.499983178419011e+03 1.499340602131025e+03 - 1.498695213709626e+03 1.498047016862194e+03 1.497396015302820e+03 1.496742212752304e+03 1.496085612938155e+03 - 1.495426219594593e+03 1.494764036462547e+03 1.494099067289655e+03 1.493431315830267e+03 1.492760785845442e+03 - 1.492087481102946e+03 1.491411405377259e+03 1.490732562449567e+03 1.490050956107769e+03 1.489366590146471e+03 - 1.488679468366991e+03 1.487989594577355e+03 1.487296972592300e+03 1.486601606233272e+03 1.485903499328426e+03 - 1.485202655712629e+03 1.484499079227457e+03 1.483792773721193e+03 1.483083743048834e+03 1.482371991072084e+03 - 1.481657521659358e+03 1.480940338685780e+03 1.480220446033183e+03 1.479497847590113e+03 1.478772547251821e+03 - 1.478044548920272e+03 1.477313856504138e+03 1.476580473918802e+03 1.475844405086357e+03 1.475105653935605e+03 - 1.474364224402058e+03 1.473620120427938e+03 1.472873345962177e+03 1.472123904960415e+03 1.471371801385004e+03 - 1.470617039205005e+03 1.469859622396187e+03 1.469099554941032e+03 1.468336840828730e+03 1.467571484055180e+03 - 1.466803488622991e+03 1.466032858541484e+03 1.465259597826687e+03 1.464483710501340e+03 1.463705200594890e+03 - 1.462924072143496e+03 1.462140329190026e+03 1.461353975784058e+03 1.460565015981880e+03 1.459773453846489e+03 - 1.458979293447591e+03 1.458182538861605e+03 1.457383194171656e+03 1.456581263467582e+03 1.455776750845927e+03 - 1.454969660409948e+03 1.454159996269611e+03 1.453347762541590e+03 1.452532963349272e+03 1.451715602822750e+03 - 1.450895685098830e+03 1.450073214321026e+03 1.449248194639563e+03 1.448420630211373e+03 1.447590525200101e+03 - 1.446757883776100e+03 1.445922710116434e+03 1.445085008404874e+03 1.444244782831905e+03 1.443402037594718e+03 - 1.442556776897215e+03 1.441709004950008e+03 1.440858725970420e+03 1.440005944182481e+03 1.439150663816933e+03 - 1.438292889111226e+03 1.437432624309523e+03 1.436569873662692e+03 1.435704641428314e+03 1.434836931870678e+03 - 1.433966749260786e+03 1.433094097876346e+03 1.432218982001777e+03 1.431341405928208e+03 1.430461373953479e+03 - 1.429578890382137e+03 1.428693959525441e+03 1.427806585701360e+03 1.426916773234569e+03 1.426024526456458e+03 - 1.425129849705122e+03 1.424232747325370e+03 1.423333223668719e+03 1.422431283093393e+03 1.421526929964331e+03 - 1.420620168653178e+03 1.419711003538289e+03 1.418799439004731e+03 1.417885479444278e+03 1.416969129255415e+03 - 1.416050392843337e+03 1.415129274619950e+03 1.414205779003866e+03 1.413279910420411e+03 1.412351673301618e+03 - 1.411421072086230e+03 1.410488111219700e+03 1.409552795154193e+03 1.408615128348581e+03 1.407675115268446e+03 - 1.406732760386080e+03 1.405788068180486e+03 1.404841043137375e+03 1.403891689749170e+03 1.402940012515001e+03 - 1.401986015940709e+03 1.401029704538846e+03 1.400071082828672e+03 1.399110155336157e+03 1.398146926593981e+03 - 1.397181401141535e+03 1.396213583524918e+03 1.395243478296938e+03 1.394271090017116e+03 1.393296423251680e+03 - 1.392319482573570e+03 1.391340272562432e+03 1.390358797804626e+03 1.389375062893219e+03 1.388389072427989e+03 - 1.387400831015423e+03 1.386410343268718e+03 1.385417613807782e+03 1.384422647259231e+03 1.383425448256391e+03 - 1.382426021439299e+03 1.381424371454700e+03 1.380420502956051e+03 1.379414420603515e+03 1.378406129063970e+03 - 1.377395633010999e+03 1.376382937124898e+03 1.375368046092671e+03 1.374350964608031e+03 1.373331697371403e+03 - 1.372310249089921e+03 1.371286624477428e+03 1.370260828254477e+03 1.369232865148331e+03 1.368202739892964e+03 - 1.367170457229056e+03 1.366136021904002e+03 1.365099438671902e+03 1.364060712293568e+03 1.363019847536522e+03 - 1.361976849174995e+03 1.360931721989928e+03 1.359884470768972e+03 1.358835100306487e+03 1.357783615403544e+03 - 1.356730020867921e+03 1.355674321514110e+03 1.354616522163310e+03 1.353556627643430e+03 1.352494642789090e+03 - 1.351430572441617e+03 1.350364421449050e+03 1.349296194666138e+03 1.348225896954338e+03 1.347153533181818e+03 - 1.346079108223457e+03 1.345002626960841e+03 1.343924094282267e+03 1.342843515082743e+03 1.341760894263984e+03 - 1.340676236734416e+03 1.339589547409177e+03 1.338500831210112e+03 1.337410093065776e+03 1.336317337911434e+03 - 1.335222570689062e+03 1.334125796347346e+03 1.333027019841677e+03 1.331926246134163e+03 1.330823480193616e+03 - 1.329718726995561e+03 1.328611991522230e+03 1.327503278762568e+03 1.326392593712228e+03 1.325279941373571e+03 - 1.324165326755672e+03 1.323048754874311e+03 1.321930230751983e+03 1.320809759417887e+03 1.319687345907936e+03 - 1.318562995264752e+03 1.317436712537665e+03 1.316308502782716e+03 1.315178371062656e+03 1.314046322446946e+03 - 1.312912362011755e+03 1.311776494839963e+03 1.310638726021160e+03 1.309499060651645e+03 1.308357503834428e+03 - 1.307214060679228e+03 1.306068736302473e+03 1.304921535827301e+03 1.303772464383560e+03 1.302621527107810e+03 - 1.301468729143317e+03 1.300314075640058e+03 1.299157571754721e+03 1.297999222650704e+03 1.296839033498112e+03 - 1.295677009473761e+03 1.294513155761180e+03 1.293347477550602e+03 1.292179980038974e+03 1.291010668429951e+03 - 1.289839547933899e+03 1.288666623767893e+03 1.287491901155716e+03 1.286315385327865e+03 1.285137081521542e+03 - 1.283956994980662e+03 1.282775130955849e+03 1.281591494704436e+03 1.280406091490466e+03 1.279218926584693e+03 - 1.278030005264579e+03 1.276839332814297e+03 1.275646914524728e+03 1.274452755693465e+03 1.273256861624810e+03 - 1.272059237629775e+03 1.270859889026079e+03 1.269658821138155e+03 1.268456039297144e+03 1.267251548840895e+03 - 1.266045355113969e+03 1.264837463467636e+03 1.263627879259876e+03 1.262416607855379e+03 1.261203654625543e+03 - 1.259989024948479e+03 1.258772724209004e+03 1.257554757798647e+03 1.256335131115646e+03 1.255113849564950e+03 - 1.253890918558217e+03 1.252666343513813e+03 1.251440129856817e+03 1.250212283019015e+03 1.248982808438904e+03 - 1.247751711561691e+03 1.246518997839292e+03 1.245284672730334e+03 1.244048741700151e+03 1.242811210220790e+03 - 1.241572083771006e+03 1.240331367836264e+03 1.239089067908740e+03 1.237845189487317e+03 1.236599738077590e+03 - 1.235352719191863e+03 1.234104138349150e+03 1.232854001075175e+03 1.231602312902370e+03 1.230349079369880e+03 - 1.229094306023557e+03 1.227837998415964e+03 1.226580162106373e+03 1.225320802660766e+03 1.224059925651835e+03 - 1.222797536658982e+03 1.221533641268318e+03 1.220268245072664e+03 1.219001353671552e+03 1.217732972671222e+03 - 1.216463107684624e+03 1.215191764331420e+03 1.213918948237977e+03 1.212644665037377e+03 1.211368920369408e+03 - 1.210091719880570e+03 1.208813069224072e+03 1.207532974059833e+03 1.206251440054480e+03 1.204968472881353e+03 - 1.203684078220499e+03 1.202398261758676e+03 1.201111029189351e+03 1.199822386212701e+03 1.198532338535615e+03 - 1.197240891871687e+03 1.195948051941225e+03 1.194653824471246e+03 1.193358215195474e+03 1.192061229854346e+03 - 1.190762874195007e+03 1.189463153971313e+03 1.188162074943828e+03 1.186859642879827e+03 1.185555863553295e+03 - 1.184250742744927e+03 1.182944286242125e+03 1.181636499839004e+03 1.180327389336388e+03 1.179016960541809e+03 - 1.177705219269511e+03 1.176392171340446e+03 1.175077822582277e+03 1.173762178829377e+03 1.172445245922827e+03 - 1.171127029710419e+03 1.169807536046655e+03 1.168486770792745e+03 1.167164739816612e+03 1.165841448992886e+03 - 1.164516904202907e+03 1.163191111334726e+03 1.161864076283103e+03 1.160535804949508e+03 1.159206303242120e+03 - 1.157875577075829e+03 1.156543632372233e+03 1.155210475059642e+03 1.153876111073074e+03 1.152540546354257e+03 - 1.151203786851631e+03 1.149865838520342e+03 1.148526707322247e+03 1.147186399225916e+03 1.145844920206624e+03 - 1.144502276246358e+03 1.143158473333815e+03 1.141813517464402e+03 1.140467414640234e+03 1.139120170870139e+03 - 1.137771792169650e+03 1.136422284561014e+03 1.135071654073185e+03 1.133719906741829e+03 1.132367048609320e+03 - 1.131013085724743e+03 1.129658024143891e+03 1.128301869929270e+03 1.126944629150092e+03 1.125586307882280e+03 - 1.124226912208469e+03 1.122866448218001e+03 1.121504922006928e+03 1.120142339678013e+03 1.118778707340729e+03 - 1.117414031111256e+03 1.116048317112488e+03 1.114681571474025e+03 1.113313800332179e+03 1.111945009829970e+03 - 1.110575206117129e+03 1.109204395350097e+03 1.107832583692024e+03 1.106459777312770e+03 1.105085982388904e+03 - 1.103711205103706e+03 1.102335451647166e+03 1.100958728215983e+03 1.099581041013564e+03 1.098202396250028e+03 - 1.096822800142205e+03 1.095442258913632e+03 1.094060778794555e+03 1.092678366021934e+03 1.091295026839436e+03 - 1.089910767497437e+03 1.088525594253023e+03 1.087139513369993e+03 1.085752531118851e+03 1.084364653776815e+03 - 1.082975887627809e+03 1.081586238962469e+03 1.080195714078142e+03 1.078804319278880e+03 1.077412060875450e+03 - 1.076018945185327e+03 1.074624978532693e+03 1.073230167248444e+03 1.071834517670182e+03 1.070438036142223e+03 - 1.069040729015589e+03 1.067642602648012e+03 1.066243663403937e+03 1.064843917654515e+03 1.063443371777609e+03 - 1.062042032157791e+03 1.060639905186343e+03 1.059236997261256e+03 1.057833314787232e+03 1.056428864175682e+03 - 1.055023651844726e+03 1.053617684219196e+03 1.052210967730631e+03 1.050803508817282e+03 1.049395313897890e+03 - 1.047986388534756e+03 1.046576737255851e+03 1.045166364529164e+03 1.043755274824231e+03 1.042343472612131e+03 - 1.040930962365484e+03 1.039517748558457e+03 1.038103835666756e+03 1.036689228167636e+03 1.035273930539893e+03 - 1.033857947263865e+03 1.032441282821436e+03 1.031023941696033e+03 1.029605928372625e+03 1.028187247337727e+03 - 1.026767903079397e+03 1.025347900087235e+03 1.023927242852386e+03 1.022505935867538e+03 1.021083983626923e+03 - 1.019661390626317e+03 1.018238161363038e+03 1.016814300335948e+03 1.015389812045455e+03 1.013964700993507e+03 - 1.012538971683598e+03 1.011112628620765e+03 1.009685676311588e+03 1.008258119264191e+03 1.006829961988242e+03 - 1.005401208994952e+03 1.003971864797076e+03 1.002541933908912e+03 1.001111420846301e+03 9.996803301266303e+02 - 9.982486662688275e+02 9.968164337933661e+02 9.953836372222621e+02 9.939502810790750e+02 9.925163698889086e+02 - 9.910819081784098e+02 9.896469004757686e+02 9.882113513107199e+02 9.867752652145410e+02 9.853386467200531e+02 - 9.839015003616214e+02 9.824638306751541e+02 9.810256421981031e+02 9.795869394694643e+02 9.781477270297768e+02 - 9.767080094211232e+02 9.752677911871300e+02 9.738270768729670e+02 9.723858710253478e+02 9.709441781925295e+02 - 9.695020029243127e+02 9.680593497720415e+02 9.666162232886040e+02 9.651726280284314e+02 9.637285685474986e+02 - 9.622840494033246e+02 9.608390751549712e+02 9.593936503630440e+02 9.579477795896925e+02 9.565014673986094e+02 - 9.550547183550314e+02 9.536075370257383e+02 9.521599279790540e+02 9.507118957848456e+02 9.492634450145238e+02 - 9.478145802410424e+02 9.463653060389005e+02 9.449156269841388e+02 9.434655476543426e+02 9.420150726286407e+02 - 9.405642064877048e+02 9.391129538137513e+02 9.376613191905399e+02 9.362093072033728e+02 9.347569224390970e+02 - 9.333041694861028e+02 9.318510529343232e+02 9.303975773752362e+02 9.289437474018629e+02 9.274895676087672e+02 - 9.260350425920570e+02 9.245801769493847e+02 9.231249752799448e+02 9.216694421844763e+02 9.202135822652619e+02 - 9.187574001261273e+02 9.173009003724419e+02 9.158440876111187e+02 9.143869664506148e+02 9.129295415009306e+02 - 9.114718173736089e+02 9.100137986817383e+02 9.085554900399494e+02 9.070968960644165e+02 9.056380213728581e+02 - 9.041788705845360e+02 9.027194483202552e+02 9.012597592023648e+02 8.997998078547574e+02 8.983395989028686e+02 - 8.968791369736786e+02 8.954184266957105e+02 8.939574726990309e+02 8.924962796152502e+02 8.910348520775226e+02 - 8.895731947205452e+02 8.881113121805595e+02 8.866492090953504e+02 8.851868901042455e+02 8.837243598481174e+02 - 8.822616229693809e+02 8.807986841119955e+02 8.793355479214636e+02 8.778722190448314e+02 8.764087021306887e+02 - 8.749450018291686e+02 8.734811227919481e+02 8.720170696722481e+02 8.705528471248323e+02 8.690884598060085e+02 - 8.676239123736278e+02 8.661592094870851e+02 8.646943558073189e+02 8.632293559968109e+02 8.617642147195870e+02 - 8.602989366412162e+02 8.588335264288111e+02 8.573679887510280e+02 8.559023282780669e+02 8.544365496816713e+02 - 8.529706576351281e+02 8.515046568132680e+02 8.500385518924651e+02 8.485723475506371e+02 8.471060484672456e+02 - 8.456396593232956e+02 8.441731848013352e+02 8.427066295854568e+02 8.412399983612960e+02 8.397732958160319e+02 - 8.383065266383875e+02 8.368396955186294e+02 8.353728071485672e+02 8.339058662215547e+02 8.324388774324890e+02 - 8.309718454778108e+02 8.295047750555044e+02 8.280376708650979e+02 8.265705376076626e+02 8.251033799858133e+02 - 8.236362027037090e+02 8.221690104670519e+02 8.207018079830875e+02 8.192345999606056e+02 8.177673911099388e+02 - 8.163001861429635e+02 8.148329897731001e+02 8.133658067153123e+02 8.118986416861073e+02 8.104314994035359e+02 - 8.089643845871925e+02 8.074973019582153e+02 8.060302562392853e+02 8.045632521546285e+02 8.030962944300132e+02 - 8.016293877927517e+02 8.001625369717000e+02 7.986957466972576e+02 7.972290217013673e+02 7.957623667175162e+02 - 7.942957864807344e+02 7.928292857275953e+02 7.913628691962167e+02 7.898965416262595e+02 7.884303077589279e+02 - 7.869641723369706e+02 7.854981401046790e+02 7.840322158078881e+02 7.825664041939773e+02 7.811007100118686e+02 - 7.796351380120283e+02 7.781696929464658e+02 7.767043795687346e+02 7.752392026339312e+02 7.737741668986956e+02 - 7.723092771212124e+02 7.708445380612087e+02 7.693799544799557e+02 7.679155311402681e+02 7.664512728065041e+02 - 7.649871842445651e+02 7.635232702218972e+02 7.620595355074889e+02 7.605959848718730e+02 7.591326230871256e+02 - 7.576694549268664e+02 7.562064851662584e+02 7.547437185820088e+02 7.532811599523681e+02 7.518188140571300e+02 - 7.503566856776325e+02 7.488947795967565e+02 7.474331005989271e+02 7.459716534701122e+02 7.445104429978242e+02 - 7.430494739711182e+02 7.415887511805935e+02 7.401282794183929e+02 7.386680634782024e+02 7.372081081552518e+02 - 7.357484182463149e+02 7.342889985497084e+02 7.328298538652926e+02 7.313709889944722e+02 7.299124087401947e+02 - 7.284541179069513e+02 7.269961213007771e+02 7.255384237292504e+02 7.240810300014931e+02 7.226239449281712e+02 - 7.211671733214938e+02 7.197107199952134e+02 7.182545897646269e+02 7.167987874465738e+02 7.153433178594373e+02 - 7.138881858231457e+02 7.124333961591685e+02 7.109789536905207e+02 7.095248632417597e+02 7.080711296389870e+02 - 7.066177577098478e+02 7.051647522835304e+02 7.037121181907675e+02 7.022598602638342e+02 7.008079833365500e+02 - 6.993564922442782e+02 6.979053918239249e+02 6.964546869139400e+02 6.950043823543177e+02 6.935544829865950e+02 - 6.921049936538523e+02 6.906559192007142e+02 6.892072644733491e+02 6.877590343194680e+02 6.863112335883264e+02 - 6.848638671307228e+02 6.834169397989994e+02 6.819704564470420e+02 6.805244219302806e+02 6.790788411056876e+02 - 6.776337188317796e+02 6.761890599686175e+02 6.747448693778041e+02 6.733011519224871e+02 6.718579124673579e+02 - 6.704151558786504e+02 6.689728870241429e+02 6.675311107731571e+02 6.660898319965579e+02 6.646490555667547e+02 - 6.632087863576994e+02 6.617690292448882e+02 6.603297891053608e+02 6.588910708177000e+02 6.574528792620325e+02 - 6.560152193200289e+02 6.545780958749028e+02 6.531415138114120e+02 6.517054780158572e+02 6.502699933760831e+02 - 6.488350647814780e+02 6.474006971229736e+02 6.459668952930450e+02 6.445336641857116e+02 6.431010086965356e+02 - 6.416689337226230e+02 6.402374441626239e+02 6.388065449167315e+02 6.373762408866819e+02 6.359465369757564e+02 - 6.345174380887786e+02 6.330889491321157e+02 6.316610750136796e+02 6.302338206429247e+02 6.288071909308491e+02 - 6.273811907899951e+02 6.259558251344477e+02 6.245310988798360e+02 6.231070169433332e+02 6.216835842436550e+02 - 6.202608057010611e+02 6.188386862373554e+02 6.174172307758844e+02 6.159964442415383e+02 6.145763315607522e+02 - 6.131568976615030e+02 6.117381474733122e+02 6.103200859272448e+02 6.089027179559087e+02 6.074860484934565e+02 - 6.060700824755835e+02 6.046548248395288e+02 6.032402805240755e+02 6.018264544695495e+02 6.004133516178208e+02 - 5.990009769123031e+02 5.975893352979532e+02 5.961784317212720e+02 5.947682711303036e+02 5.933588584746357e+02 - 5.919501987053994e+02 5.905422967752705e+02 5.891351576384668e+02 5.877287862507508e+02 5.863231875694282e+02 - 5.849183665533477e+02 5.835143281629030e+02 5.821110773600302e+02 5.807086191082091e+02 5.793069583724634e+02 - 5.779061001193606e+02 5.765060493170109e+02 5.751068109350690e+02 5.737083899447330e+02 5.723107913187440e+02 - 5.709140200313871e+02 5.695180810584912e+02 5.681229793774282e+02 5.667287199671144e+02 5.653353078080089e+02 - 5.639427478821145e+02 5.625510451729782e+02 5.611602046656897e+02 5.597702313468828e+02 5.583811302047351e+02 - 5.569929062289672e+02 5.556055644108436e+02 5.542191097431725e+02 5.528335472203050e+02 5.514488818381369e+02 - 5.500651185941068e+02 5.486822624871968e+02 5.473003185179330e+02 5.459192916883851e+02 5.445391870021655e+02 - 5.431600094644319e+02 5.417817640818839e+02 5.404044558627653e+02 5.390280898168637e+02 5.376526709555103e+02 - 5.362782042915790e+02 5.349046948394886e+02 5.335321476152006e+02 5.321605676362202e+02 5.307899599215965e+02 - 5.294203294919217e+02 5.280516813693320e+02 5.266840205775071e+02 5.253173521416702e+02 5.239516810885877e+02 - 5.225870124465707e+02 5.212233512454725e+02 5.198607025166908e+02 5.184990712931668e+02 5.171384626093851e+02 - 5.157788815013741e+02 5.144203330067055e+02 5.130628221644946e+02 5.117063540154008e+02 5.103509336016263e+02 - 5.089965659669175e+02 5.076432561565640e+02 5.062910092173990e+02 5.049398301977998e+02 5.035897241476866e+02 - 5.022406961185235e+02 5.008927511633182e+02 4.995458943366220e+02 4.982001306945292e+02 4.968554652946787e+02 - 4.955119031962524e+02 4.941694494599757e+02 4.928281091481178e+02 4.914878873244913e+02 4.901487890544524e+02 - 4.888108194049014e+02 4.874739834442815e+02 4.861382862425793e+02 4.848037328713260e+02 4.834703284035954e+02 - 4.821380779140055e+02 4.808069864787175e+02 4.794770591754360e+02 4.781483010834104e+02 4.768207172834317e+02 - 4.754943128578365e+02 4.741690928905032e+02 4.728450624668552e+02 4.715222266738587e+02 4.702005906000235e+02 - 4.688801593354034e+02 4.675609379715956e+02 4.662429316017405e+02 4.649261453205227e+02 4.636105842241698e+02 - 4.622962534104534e+02 4.609831579786886e+02 4.596713030297340e+02 4.583606936659914e+02 4.570513349914071e+02 - 4.557432321114703e+02 4.544363901332138e+02 4.531308141652141e+02 4.518265093175915e+02 4.505234807020092e+02 - 4.492217334316751e+02 4.479212726213398e+02 4.466221033872973e+02 4.453242308473862e+02 4.440276601209875e+02 - 4.427323963290266e+02 4.414384445939725e+02 4.401458100398370e+02 4.388544977921764e+02 4.375645129780900e+02 - 4.362758607262207e+02 4.349885461667554e+02 4.337025744314242e+02 4.324179506535007e+02 4.311346799678025e+02 - 4.298527675106906e+02 4.285722184200691e+02 4.272930378353866e+02 4.260152308976346e+02 4.247388027493482e+02 - 4.234637585346064e+02 4.221901033990317e+02 4.209178424897899e+02 4.196469809555908e+02 4.183775239466873e+02 - 4.171094766148764e+02 4.158428441134982e+02 4.145776315974367e+02 4.133138442231195e+02 4.120514871485177e+02 - 4.107905655331455e+02 4.095310845380616e+02 4.082730493258674e+02 4.070164650607085e+02 4.057613369082738e+02 - 4.045076700357962e+02 4.032554696120511e+02 4.020047408073589e+02 4.007554887935824e+02 3.995077187441286e+02 - 3.982614358339480e+02 3.970166452395346e+02 3.957733521389259e+02 3.945315617117033e+02 3.932912791389912e+02 - 3.920525096034583e+02 3.908152582893162e+02 3.895795303823206e+02 3.883453310697706e+02 3.871126655405087e+02 - 3.858815389849212e+02 3.846519565949380e+02 3.834239235640323e+02 3.821974450872211e+02 3.809725263610652e+02 - 3.797491725836686e+02 3.785273889546788e+02 3.773071806752873e+02 3.760885529482291e+02 3.748715109777822e+02 - 3.736560599697692e+02 3.724422051315553e+02 3.712299516720498e+02 3.700193048017055e+02 3.688102697325187e+02 - 3.676028516780295e+02 3.663970558533210e+02 3.651928874750207e+02 3.639903517612993e+02 3.627894539318706e+02 - 3.615901992079928e+02 3.603925928124674e+02 3.591966399696389e+02 3.580023459053963e+02 3.568097158471716e+02 - 3.556187550239405e+02 3.544294686662223e+02 3.532418620060801e+02 3.520559402771199e+02 3.508717087144923e+02 - 3.496891725548904e+02 3.485083370365518e+02 3.473292073992571e+02 3.461517888843309e+02 3.449760867346407e+02 - 3.438021061945983e+02 3.426298525101589e+02 3.414593309288210e+02 3.402905466996269e+02 3.391235050731623e+02 - 3.379582113015570e+02 3.367946706384836e+02 3.356328883391590e+02 3.344728696603431e+02 3.333146198603399e+02 - 3.321581441989965e+02 3.310034479377038e+02 3.298505363393963e+02 3.286994146685523e+02 3.275500881911931e+02 - 3.264025621748842e+02 3.252568418887342e+02 3.241129326033955e+02 3.229708395910641e+02 3.218305681254797e+02 - 3.206921234819250e+02 3.195555109372272e+02 3.184207357697562e+02 3.172878032594259e+02 3.161567186876940e+02 - 3.150274873375612e+02 3.139001144935722e+02 3.127746054418153e+02 3.116509654699221e+02 3.105291998670680e+02 - 3.094093139239718e+02 3.082913129328962e+02 3.071752021876472e+02 3.060609869835743e+02 3.049486726175709e+02 - 3.038382643880739e+02 3.027297675950632e+02 3.016231875400634e+02 3.005185295261418e+02 2.994157988579094e+02 - 2.983150008415209e+02 2.972161407846750e+02 2.961192239966130e+02 2.950242557881208e+02 2.939312414715272e+02 - 2.928401863607048e+02 2.917510957710699e+02 2.906639750195822e+02 2.895788294247451e+02 2.884956643066055e+02 - 2.874144849867538e+02 2.863352967883243e+02 2.852581050359946e+02 2.841829150559857e+02 2.831097321760628e+02 - 2.820385617255341e+02 2.809694090352515e+02 2.799022794376108e+02 2.788371782665511e+02 2.777741108575549e+02 - 2.767130825476488e+02 2.756540986754025e+02 2.745971645809293e+02 2.735422856058867e+02 2.724894670934750e+02 - 2.714387143884384e+02 2.703900328370648e+02 2.693434277871856e+02 2.682989045881756e+02 2.672564685909533e+02 - 2.662161251479810e+02 2.651778796132642e+02 2.641417373423522e+02 2.631077036923379e+02 2.620757840218578e+02 - 2.610459836910915e+02 2.600183080617631e+02 2.589927624971394e+02 2.579693523620314e+02 2.569480830227931e+02 - 2.559289598473227e+02 2.549119882050614e+02 2.538971734669946e+02 2.528845210056507e+02 2.518740361951020e+02 - 2.508657244109642e+02 2.498595910303967e+02 2.488556414321026e+02 2.478538809963281e+02 2.468543151048638e+02 - 2.458569491410431e+02 2.448617884897432e+02 2.438688385373852e+02 2.428781046719333e+02 2.418895922828956e+02 - 2.409033067613238e+02 2.399192534998131e+02 2.389374378925019e+02 2.379578653350729e+02 2.369805412247519e+02 - 2.360054709603084e+02 2.350326599420553e+02 2.340621135718494e+02 2.330938372530911e+02 2.321278363907239e+02 - 2.311641163912353e+02 2.302026826626565e+02 2.292435406145617e+02 2.282866956580692e+02 2.273321532058407e+02 - 2.263799186720815e+02 2.254299974725404e+02 2.244823950245099e+02 2.235371167468261e+02 2.225941680598685e+02 - 2.216535543855603e+02 2.207152811473682e+02 2.197793537703028e+02 2.188457776809178e+02 2.179145583073106e+02 - 2.169857010791227e+02 2.160592114275385e+02 2.151350947852860e+02 2.142133565866376e+02 2.132940022674083e+02 - 2.123770372649571e+02 2.114624670181867e+02 2.105502969675431e+02 2.096405325550162e+02 2.087331792241393e+02 - 2.078282424199890e+02 2.069257275891860e+02 2.060256401798943e+02 2.051279856418216e+02 2.042327694262190e+02 - 2.033399969858813e+02 2.024496737751469e+02 2.015618052498977e+02 2.006763968675590e+02 1.997934540871004e+02 - 1.989129823690343e+02 1.980349871754169e+02 1.971594739698481e+02 1.962864482174713e+02 1.954159153849736e+02 - 1.945478809405854e+02 1.936823503540812e+02 1.928193290967781e+02 1.919588226415381e+02 1.911008364627658e+02 - 1.902453760364096e+02 1.893924468399617e+02 1.885420543524577e+02 1.876942040544768e+02 1.868489014281417e+02 - 1.860061519571189e+02 1.851659611266184e+02 1.843283344233937e+02 1.834932773357418e+02 1.826607953535034e+02 - 1.818308939680629e+02 1.810035786723481e+02 1.801788549608304e+02 1.793567283295249e+02 1.785372042759901e+02 - 1.777202882993282e+02 1.769059859001850e+02 1.760943025807497e+02 1.752852438447554e+02 1.744788151974785e+02 - 1.736750221457390e+02 1.728738701979007e+02 1.720753648638706e+02 1.712795116550998e+02 1.704863160845825e+02 - 1.696957836668566e+02 1.689079199180039e+02 1.681227303556493e+02 1.673402204989617e+02 1.665603958686532e+02 - 1.657832619869799e+02 1.650088243777409e+02 1.642370885662795e+02 1.634680600794823e+02 1.627017444457793e+02 - 1.619381471951445e+02 1.611772738590951e+02 1.604191299706921e+02 1.596637210645399e+02 1.589110526767867e+02 - 1.581611303451241e+02 1.574139596087874e+02 1.566695460085554e+02 1.559278950867503e+02 1.551890123872385e+02 - 1.544529034554292e+02 1.537195738382757e+02 1.529890290842748e+02 1.522612747434666e+02 1.515363163674351e+02 - 1.508141595093076e+02 1.500948097237555e+02 1.493782725669932e+02 1.486645535967789e+02 1.479536583724143e+02 - 1.472455924547449e+02 1.465403614061596e+02 1.458379707905909e+02 1.451384261735148e+02 1.444417331219514e+02 - 1.437478972044633e+02 1.430569239911578e+02 1.423688190536853e+02 1.416835879652396e+02 1.410012363005585e+02 - 1.403217696359229e+02 1.396451935491577e+02 1.389715136196312e+02 1.383007354282553e+02 1.376328645574854e+02 - 1.369679065913208e+02 1.363058671153038e+02 1.356467517165207e+02 1.349905659836014e+02 1.343373155067194e+02 - 1.336870058775913e+02 1.330396426894780e+02 1.323952315371832e+02 1.317537780170550e+02 1.311152877269845e+02 - 1.304797662664065e+02 1.298472192362996e+02 1.292176522391855e+02 1.285910708791301e+02 1.279674807617425e+02 - 1.273468874941753e+02 1.267292966851250e+02 1.261147139448316e+02 1.255031448850783e+02 1.248945951191923e+02 - 1.242890702620443e+02 1.236865759300485e+02 1.230871177411627e+02 1.224907013148884e+02 1.218973322722703e+02 - 1.213070162358971e+02 1.207197588299010e+02 1.201355656799576e+02 1.195544424132864e+02 1.189763946586499e+02 - 1.184014280463548e+02 1.178295482082510e+02 1.172607607777323e+02 1.166950713897357e+02 1.161324856807421e+02 - 1.155730092887757e+02 1.150166478534045e+02 1.144634070157400e+02 1.139132924184372e+02 1.133663097056950e+02 - 1.128224645232555e+02 1.122817625184044e+02 1.117442093399712e+02 1.112098106383290e+02 1.106785720653942e+02 - 1.101504843345202e+02 1.096253193854976e+02 1.091027814759659e+02 1.085828903190926e+02 1.080656662057070e+02 - 1.075510744401853e+02 1.070391017583160e+02 1.065297369211215e+02 1.060229642403793e+02 1.055187689946627e+02 - 1.050171373101604e+02 1.045180558156006e+02 1.040215103049707e+02 1.035274865113781e+02 1.030359706887152e+02 - 1.025469492169604e+02 1.020604083357866e+02 1.015763340040288e+02 1.010947131078929e+02 1.006155327791835e+02 - 1.001387792631148e+02 9.966443911893010e+01 9.919249927205091e+01 9.872294669690289e+01 9.825576811144268e+01 - 9.779095024426459e+01 9.732848086108395e+01 9.686834738339628e+01 9.641053663288847e+01 9.595503591883143e+01 - 9.550183276437639e+01 9.505091470489599e+01 9.460226894357737e+01 9.415588307372171e+01 9.371174549820027e+01 - 9.326984390100915e+01 9.283016578095182e+01 9.239269910989660e+01 9.195743199867270e+01 9.152435246657959e+01 - 9.109344822825337e+01 9.066470776170968e+01 9.023811990175319e+01 8.981367265385576e+01 8.939135422700863e+01 - 8.897115319588202e+01 8.855305819940260e+01 8.813705766268812e+01 8.772313993524557e+01 8.731129428898021e+01 - 8.690150981214184e+01 8.649377498492467e+01 8.608807868460502e+01 8.568441000539183e+01 8.528275807208179e+01 - 8.488311171021131e+01 8.448546000255536e+01 8.408979283578468e+01 8.369609949978657e+01 8.330436902264381e+01 - 8.291459088961614e+01 8.252675470341519e+01 8.214085000107356e+01 8.175686603719873e+01 8.137479266933553e+01 - 8.099462018292702e+01 8.061633811896954e+01 8.023993612969721e+01 7.986540422509246e+01 7.949273245617202e+01 - 7.912191071864751e+01 7.875292880591886e+01 7.838577728963824e+01 7.802044667908689e+01 7.765692688210476e+01 - 7.729520814701189e+01 7.693528093921003e+01 7.657713574044320e+01 7.622076279877933e+01 7.586615250876412e+01 - 7.551329599462582e+01 7.516218394284439e+01 7.481280673973237e+01 7.446515517211270e+01 7.411922012543234e+01 - 7.377499243991551e+01 7.343246273248482e+01 7.309162206375170e+01 7.275246194060588e+01 7.241497325488510e+01 - 7.207914691168762e+01 7.174497413637995e+01 7.141244624067238e+01 7.108155440657860e+01 7.075228964021176e+01 - 7.042464364044737e+01 7.009860816502822e+01 6.977417437950896e+01 6.945133371117183e+01 6.913007780419414e+01 - 6.881039831641085e+01 6.849228672098478e+01 6.817573455985929e+01 6.786073404036127e+01 6.754727706019318e+01 - 6.723535518365489e+01 6.692496029976250e+01 6.661608442214438e+01 6.630871955818391e+01 6.600285747074972e+01 - 6.569849025826812e+01 6.539561050984807e+01 6.509421028016476e+01 6.479428156422156e+01 6.449581665898590e+01 - 6.419880794007263e+01 6.390324769379086e+01 6.360912802573969e+01 6.331644161216560e+01 6.302518126952705e+01 - 6.273533924838438e+01 6.244690800283556e+01 6.215988021335375e+01 6.187424856554645e+01 6.159000558852496e+01 - 6.130714382209544e+01 6.102565642873360e+01 6.074553634647369e+01 6.046677613965124e+01 6.018936867893675e+01 - 5.991330696615304e+01 5.963858400265185e+01 5.936519255461710e+01 5.909312563142009e+01 5.882237675846172e+01 - 5.855293899151076e+01 5.828480526925385e+01 5.801796883717194e+01 5.775242299813667e+01 5.748816098906929e+01 - 5.722517588172157e+01 5.696346118973321e+01 5.670301063052477e+01 5.644381744585571e+01 5.618587497447161e+01 - 5.592917675378749e+01 5.567371639288440e+01 5.541948735564524e+01 5.516648303666721e+01 5.491469740133566e+01 - 5.466412430128952e+01 5.441475721341882e+01 5.416658984866251e+01 5.391961604526729e+01 5.367382965707854e+01 - 5.342922435049869e+01 5.318579394824101e+01 5.294353276046760e+01 5.270243471566913e+01 5.246249358126801e+01 - 5.222370341980431e+01 5.198605834991378e+01 5.174955243603662e+01 5.151417956992881e+01 5.127993401538280e+01 - 5.104681029539683e+01 5.081480246751264e+01 5.058390465007635e+01 5.035411117607305e+01 5.012541641928832e+01 - 4.989781463692880e+01 4.967129999443014e+01 4.944586717469857e+01 4.922151081792142e+01 4.899822516393252e+01 - 4.877600466591702e+01 4.855484391176263e+01 4.833473749525371e+01 4.811567985888949e+01 4.789766553100244e+01 - 4.768068948486052e+01 4.746474643299185e+01 4.724983089968822e+01 4.703593761581940e+01 4.682306140175855e+01 - 4.661119706938157e+01 4.640033923440899e+01 4.619048280117971e+01 4.598162297433280e+01 4.577375454810339e+01 - 4.556687232031752e+01 4.536097129194708e+01 4.515604651624491e+01 4.495209295916556e+01 4.474910546848848e+01 - 4.454707932343867e+01 4.434600983627007e+01 4.414589194663536e+01 4.394672075425581e+01 4.374849149110094e+01 - 4.355119939554362e+01 4.335483958155968e+01 4.315940720272008e+01 4.296489783321342e+01 4.277130684141869e+01 - 4.257862938067940e+01 4.238686082011235e+01 4.219599659307687e+01 4.200603211268383e+01 4.181696265307154e+01 - 4.162878369849639e+01 4.144149102922540e+01 4.125508008000694e+01 4.106954625154178e+01 4.088488514080404e+01 - 4.070109237453877e+01 4.051816351991027e+01 4.033609404369983e+01 4.015487975529847e+01 3.997451654390139e+01 - 3.979499995457292e+01 3.961632565249730e+01 3.943848943565658e+01 3.926148710146721e+01 3.908531435163689e+01 - 3.890996689581685e+01 3.873544082272831e+01 3.856173207783515e+01 3.838883637414560e+01 3.821674961156019e+01 - 3.804546776546066e+01 3.787498680517137e+01 3.770530255859592e+01 3.753641100849845e+01 3.736830845518836e+01 - 3.720099088344971e+01 3.703445420945200e+01 3.686869456603723e+01 3.670370808841574e+01 3.653949085950763e+01 - 3.637603888796111e+01 3.621334844811717e+01 3.605141592615973e+01 3.589023740445852e+01 3.572980904042850e+01 - 3.557012712196481e+01 3.541118795282225e+01 3.525298774403768e+01 3.509552267323749e+01 3.493878928773343e+01 - 3.478278404343990e+01 3.462750313614663e+01 3.447294293878365e+01 3.431909990161546e+01 3.416597046087814e+01 - 3.401355094900445e+01 3.386183779648810e+01 3.371082772101448e+01 3.356051721064496e+01 3.341090265530899e+01 - 3.326198061398263e+01 3.311374767636361e+01 3.296620040125966e+01 3.281933525310492e+01 3.267314891432770e+01 - 3.252763821351709e+01 3.238279969616838e+01 3.223862995512887e+01 3.209512571750849e+01 3.195228370249094e+01 - 3.181010057023420e+01 3.166857295105629e+01 3.152769775432829e+01 3.138747186368265e+01 3.124789194582367e+01 - 3.110895478177638e+01 3.097065722333928e+01 3.083299612203396e+01 3.069596823521478e+01 3.055957038379009e+01 - 3.042379968490992e+01 3.028865305190764e+01 3.015412726448298e+01 3.002021927954454e+01 2.988692608783410e+01 - 2.975424465393443e+01 2.962217185358958e+01 2.949070472525562e+01 2.935984046863818e+01 2.922957605244617e+01 - 2.909990844798608e+01 2.897083474125067e+01 2.884235205411202e+01 2.871445744621140e+01 2.858714789194334e+01 - 2.846042066311678e+01 2.833427304434733e+01 2.820870204788112e+01 2.808370481822039e+01 2.795927858955916e+01 - 2.783542056310479e+01 2.771212788710439e+01 2.758939774558937e+01 2.746722754519704e+01 2.734561457842300e+01 - 2.722455602005491e+01 2.710404915757552e+01 2.698409131619408e+01 2.686467981339180e+01 2.674581188504884e+01 - 2.662748489299116e+01 2.650969637323688e+01 2.639244364869198e+01 2.627572402574995e+01 2.615953493480668e+01 - 2.604387380499337e+01 2.592873803144385e+01 2.581412497154068e+01 2.570003216993883e+01 2.558645721031992e+01 - 2.547339748309297e+01 2.536085044648649e+01 2.524881363723968e+01 2.513728460374055e+01 2.502626081142699e+01 - 2.491573971820056e+01 2.480571905896494e+01 2.469619646153339e+01 2.458716938319504e+01 2.447863542000312e+01 - 2.437059221927192e+01 2.426303741725681e+01 2.415596854366440e+01 2.404938323139217e+01 2.394327933047775e+01 - 2.383765447837906e+01 2.373250626120992e+01 2.362783239922733e+01 2.352363062421024e+01 2.341989863680159e+01 - 2.331663407933185e+01 2.321383475989216e+01 2.311149855755017e+01 2.300962316438995e+01 2.290820631357202e+01 - 2.280724581327735e+01 2.270673948178020e+01 2.260668508940155e+01 2.250708039173678e+01 2.240792334786956e+01 - 2.230921186720802e+01 2.221094371595302e+01 2.211311674173436e+01 2.201572884123411e+01 2.191877792312015e+01 - 2.182226182065280e+01 2.172617842216956e+01 2.163052579410284e+01 2.153530186271772e+01 2.144050449256298e+01 - 2.134613164544727e+01 2.125218130870039e+01 2.115865145244560e+01 2.106553997668644e+01 2.097284492087666e+01 - 2.088056441996010e+01 2.078869643251129e+01 2.069723893213309e+01 2.060618996606658e+01 2.051554761096601e+01 - 2.042530989859754e+01 2.033547481777502e+01 2.024604054022628e+01 2.015700522393599e+01 2.006836688994228e+01 - 1.998012363072147e+01 1.989227358045817e+01 1.980481486918973e+01 1.971774557717947e+01 1.963106382303616e+01 - 1.954476789103884e+01 1.945885594703988e+01 1.937332608222908e+01 1.928817649453870e+01 1.920340539662878e+01 - 1.911901098077130e+01 1.903499138773951e+01 1.895134486255558e+01 1.886806974988112e+01 1.878516424109755e+01 - 1.870262653275597e+01 1.862045489823334e+01 1.853864761644500e+01 1.845720293609644e+01 1.837611907561623e+01 - 1.829539441141390e+01 1.821502731690405e+01 1.813501600648008e+01 1.805535878852776e+01 1.797605402680784e+01 - 1.789710004813803e+01 1.781849513976010e+01 1.774023761822760e+01 1.766232596769640e+01 1.758475857461898e+01 - 1.750753373031707e+01 1.743064982368309e+01 1.735410526816905e+01 1.727789846424588e+01 1.720202775432962e+01 - 1.712649156263800e+01 1.705128842771503e+01 1.697641675133914e+01 1.690187492053174e+01 1.682766139576636e+01 - 1.675377465125957e+01 1.668021313537254e+01 1.660697525047803e+01 1.653405953620346e+01 1.646146456303875e+01 - 1.638918876353225e+01 1.631723061252691e+01 1.624558863577738e+01 1.617426136715184e+01 1.610324729276991e+01 - 1.603254489420701e+01 1.596215281065743e+01 1.589206962268447e+01 1.582229381597797e+01 1.575282394813798e+01 - 1.568365860435203e+01 1.561479636559848e+01 1.554623575841051e+01 1.547797536749664e+01 1.541001389568697e+01 - 1.534234992945672e+01 1.527498202635700e+01 1.520790881496337e+01 1.514112893627654e+01 1.507464101206718e+01 - 1.500844361854594e+01 1.494253544400039e+01 1.487691522461213e+01 1.481158156982783e+01 1.474653311471545e+01 - 1.468176854391490e+01 1.461728655322583e+01 1.455308580005108e+01 1.448916492494823e+01 1.442552270891503e+01 - 1.436215789907635e+01 1.429906914560298e+01 1.423625515786986e+01 1.417371467503432e+01 1.411144643634281e+01 - 1.404944913182382e+01 1.398772148936426e+01 1.392626235467004e+01 1.386507047757601e+01 1.380414456703780e+01 - 1.374348339923097e+01 1.368308576360786e+01 1.362295043539383e+01 1.356307614411792e+01 1.350346171009224e+01 - 1.344410601461897e+01 1.338500782259274e+01 1.332616591200318e+01 1.326757911048049e+01 1.320924625504148e+01 - 1.315116615215319e+01 1.309333758418828e+01 1.303575945915385e+01 1.297843067064863e+01 1.292135001185642e+01 - 1.286451632934388e+01 1.280792850075226e+01 1.275158540067995e+01 1.269548586414703e+01 1.263962874841400e+01 - 1.258401302186647e+01 1.252863758019894e+01 1.247350127006052e+01 1.241860299544399e+01 1.236394167532885e+01 - 1.230951622025856e+01 1.225532549825102e+01 1.220136844757296e+01 1.214764407513537e+01 1.209415128431592e+01 - 1.204088897936275e+01 1.198785611322907e+01 1.193505164847797e+01 1.188247452422181e+01 1.183012365035161e+01 - 1.177799804372636e+01 1.172609672645034e+01 1.167441862559045e+01 1.162296270435431e+01 1.157172795813644e+01 - 1.152071338824009e+01 1.146991795771504e+01 1.141934063624516e+01 1.136898050295155e+01 1.131883658051165e+01 - 1.126890783457083e+01 1.121919328583311e+01 1.116969196974251e+01 1.112040291453270e+01 1.107132511138846e+01 - 1.102245760367597e+01 1.097379950683186e+01 1.092534984778681e+01 1.087710764406476e+01 1.082907196010627e+01 - 1.078124186863284e+01 1.073361642501848e+01 1.068619465441603e+01 1.063897567074718e+01 1.059195860734133e+01 - 1.054514250814830e+01 1.049852644360809e+01 1.045210951602862e+01 1.040589083229813e+01 1.035986946911022e+01 - 1.031404450080543e+01 1.026841510170119e+01 1.022298040707346e+01 1.017773949095798e+01 1.013269147478631e+01 - 1.008783549702620e+01 1.004317069189082e+01 9.998696157456914e+00 9.954411030186206e+00 9.910314523784715e+00 - 9.866405774945729e+00 9.822683900561229e+00 9.779148062474189e+00 9.735797433007823e+00 9.692631171490490e+00 - 9.649648402951970e+00 9.606848328743531e+00 9.564230182014787e+00 9.521793107635142e+00 9.479536270440141e+00 - 9.437458869806633e+00 9.395560106559989e+00 9.353839157926716e+00 9.312295192835592e+00 9.270927467731591e+00 - 9.229735216231479e+00 9.188717610212938e+00 9.147873860369382e+00 9.107203196336844e+00 9.066704846764596e+00 - 9.026378005702853e+00 8.986221892357717e+00 8.946235805206038e+00 8.906418978693665e+00 8.866770619316361e+00 - 8.827289975974383e+00 8.787976307390357e+00 8.748828863538764e+00 8.709846863139358e+00 8.671029583554503e+00 - 8.632376341244221e+00 8.593886376949055e+00 8.555558939921891e+00 8.517393311170933e+00 8.479388776756116e+00 - 8.441544603229096e+00 8.403860042243403e+00 8.366334424744339e+00 8.328967072292842e+00 8.291757243124138e+00 - 8.254704227472720e+00 8.217807335382002e+00 8.181065876905594e+00 8.144479133106664e+00 8.108046399433587e+00 - 8.071767047639053e+00 8.035640397926882e+00 7.999665736506032e+00 7.963842390434660e+00 7.928169696145141e+00 - 7.892646983285742e+00 7.857273552651162e+00 7.822048750599857e+00 7.786971968025827e+00 7.752042529333232e+00 - 7.717259758863888e+00 7.682623011133142e+00 7.648131647347260e+00 7.613785013617140e+00 7.579582436948184e+00 - 7.545523312250220e+00 7.511607037617057e+00 7.477832951167176e+00 7.444200413093294e+00 7.410708803334905e+00 - 7.377357505498556e+00 7.344145878673218e+00 7.311073286547245e+00 7.278139163173499e+00 7.245342906306997e+00 - 7.212683876663248e+00 7.180161467446147e+00 7.147775082852699e+00 7.115524124234772e+00 7.083407965702390e+00 - 7.051426016132217e+00 7.019577732801474e+00 6.987862512275252e+00 6.956279745475502e+00 6.924828855941318e+00 - 6.893509269882150e+00 6.862320401692200e+00 6.831261647888545e+00 6.800332460884749e+00 6.769532305211046e+00 - 6.738860589806862e+00 6.708316738463165e+00 6.677900193977888e+00 6.647610403615440e+00 6.617446795946176e+00 - 6.587408797932629e+00 6.557495898186097e+00 6.527707560796614e+00 6.498043211862364e+00 6.468502306113241e+00 - 6.439084309299234e+00 6.409788685242900e+00 6.380614873655190e+00 6.351562339061567e+00 6.322630595895343e+00 - 6.293819108127046e+00 6.265127326375664e+00 6.236554729526047e+00 6.208100805116588e+00 6.179765032202197e+00 - 6.151546864740690e+00 6.123445807150094e+00 6.095461385258917e+00 6.067593067877628e+00 6.039840335121551e+00 - 6.012202688508743e+00 5.984679633169969e+00 5.957270656961056e+00 5.929975240292937e+00 5.902792923627279e+00 - 5.875723232013562e+00 5.848765648702115e+00 5.821919682493143e+00 5.795184854142510e+00 5.768560683026402e+00 - 5.742046666390822e+00 5.715642318587924e+00 5.689347205919744e+00 5.663160851223163e+00 5.637082758311135e+00 - 5.611112458697719e+00 5.585249491519008e+00 5.559493390584049e+00 5.533843667789125e+00 5.508299872311603e+00 - 5.482861578646651e+00 5.457528314665947e+00 5.432299611523626e+00 5.407175018586152e+00 5.382154093094761e+00 - 5.357236378022760e+00 5.332421403106363e+00 5.307708752059064e+00 5.283098003376689e+00 5.258588694187007e+00 - 5.234180379291222e+00 5.209872626694981e+00 5.185665008050016e+00 5.161557074183171e+00 5.137548383980142e+00 - 5.113638545797982e+00 5.089827134282968e+00 5.066113702430728e+00 5.042497830741953e+00 5.018979105007048e+00 - 4.995557105455633e+00 4.972231392615168e+00 4.949001558388967e+00 4.925867224885915e+00 4.902827967986653e+00 - 4.879883363679411e+00 4.857033008673309e+00 4.834276503129009e+00 4.811613436797770e+00 4.789043387081744e+00 - 4.766565977795326e+00 4.744180833573695e+00 4.721887536130310e+00 4.699685684376157e+00 4.677574891583497e+00 - 4.655554772271826e+00 4.633624922898647e+00 4.611784942911348e+00 4.590034481232405e+00 4.568373160121153e+00 - 4.546800575450856e+00 4.525316347519302e+00 4.503920103923871e+00 4.482611469298424e+00 4.461390048788094e+00 - 4.440255471271009e+00 4.419207398665950e+00 4.398245451269402e+00 4.377369245425554e+00 4.356578419383048e+00 - 4.335872613273037e+00 4.315251459075552e+00 4.294714576337845e+00 4.274261622204341e+00 4.253892261314030e+00 - 4.233606119889290e+00 4.213402835603544e+00 4.193282059746365e+00 4.173243445650493e+00 4.153286631923412e+00 - 4.133411255497697e+00 4.113616998652003e+00 4.093903524786619e+00 4.074270469191258e+00 4.054717490515994e+00 - 4.035244253601178e+00 4.015850419023907e+00 3.996535633568783e+00 3.977299560905666e+00 3.958141896495164e+00 - 3.939062301025637e+00 3.920060427447142e+00 3.901135950094528e+00 3.882288544897898e+00 3.863517881118590e+00 - 3.844823615448907e+00 3.826205437051391e+00 3.807663047653544e+00 3.789196110563124e+00 3.770804297342049e+00 - 3.752487294212357e+00 3.734244789018890e+00 3.716076457976182e+00 3.697981972490954e+00 3.679961043694115e+00 - 3.662013372248035e+00 3.644138631063968e+00 3.626336509775109e+00 3.608606705542072e+00 3.590948914412318e+00 - 3.573362819793663e+00 3.555848115085657e+00 3.538404523614169e+00 3.521031745026515e+00 3.503729467883798e+00 - 3.486497394134707e+00 3.469335231734055e+00 3.452242686325544e+00 3.435219448952052e+00 3.418265234650198e+00 - 3.401379774604279e+00 3.384562769850576e+00 3.367813923930398e+00 3.351132951883403e+00 3.334519571031865e+00 - 3.317973491801103e+00 3.301494419647167e+00 3.285082090084510e+00 3.268736234671993e+00 3.252456560777042e+00 - 3.236242786971220e+00 3.220094639575606e+00 3.204011846234647e+00 3.187994121490988e+00 3.172041185626448e+00 - 3.156152791161071e+00 3.140328668842820e+00 3.124568535295174e+00 3.108872124034968e+00 3.093239171871656e+00 - 3.077669412161458e+00 3.062162565910707e+00 3.046718374098970e+00 3.031336596904380e+00 3.016016966139392e+00 - 3.000759212810465e+00 2.985563079528153e+00 2.970428312130104e+00 2.955354650145179e+00 2.940341825152254e+00 - 2.925389598488303e+00 2.910497731503551e+00 2.895665957526404e+00 2.880894022713473e+00 2.866181682137055e+00 - 2.851528688498591e+00 2.836934785005289e+00 2.822399718118186e+00 2.807923264019232e+00 2.793505182293368e+00 - 2.779145216423770e+00 2.764843124903896e+00 2.750598669795774e+00 2.736411610868753e+00 2.722281698431688e+00 - 2.708208697067331e+00 2.694192390113966e+00 2.680232535961204e+00 2.666328890540199e+00 2.652481222662398e+00 - 2.638689303226956e+00 2.624952898002155e+00 2.611271764144950e+00 2.597645683492627e+00 2.584074442444535e+00 - 2.570557801667266e+00 2.557095530257868e+00 2.543687406599445e+00 2.530333209423413e+00 2.517032707379746e+00 - 2.503785668122807e+00 2.490591889861845e+00 2.477451158950901e+00 2.464363243138197e+00 2.451327922049569e+00 - 2.438344980862380e+00 2.425414204994132e+00 2.412535368413293e+00 2.399708255484590e+00 2.386932671907132e+00 - 2.374208401602455e+00 2.361535223009603e+00 2.348912926727443e+00 2.336341305706971e+00 2.323820149408004e+00 - 2.311349238873846e+00 2.298928374328811e+00 2.286557363678248e+00 2.274235992966902e+00 2.261964052364815e+00 - 2.249741340335214e+00 2.237567658215990e+00 2.225442798573621e+00 2.213366549457367e+00 2.201338726388740e+00 - 2.189359138707274e+00 2.177427577694549e+00 2.165543843493499e+00 2.153707741170415e+00 2.141919076444355e+00 - 2.130177647034976e+00 2.118483256831743e+00 2.106835728234196e+00 2.095234867960482e+00 2.083680476325080e+00 - 2.072172364176171e+00 2.060710343839133e+00 2.049294224696878e+00 2.037923808395575e+00 2.026598913260298e+00 - 2.015319367985618e+00 2.004084979196668e+00 1.992895556108562e+00 1.981750916950703e+00 1.970650881000152e+00 - 1.959595261684839e+00 1.948583868145923e+00 1.937616532016987e+00 1.926693081878526e+00 1.915813328267264e+00 - 1.904977090405082e+00 1.894184192977273e+00 1.883434460875044e+00 1.872727710477953e+00 1.862063762090873e+00 - 1.851442457083682e+00 1.840863622251705e+00 1.830327074965862e+00 1.819832643502570e+00 1.809380158797907e+00 - 1.798969449793061e+00 1.788600336572885e+00 1.778272652771865e+00 1.767986244795942e+00 1.757740938619203e+00 - 1.747536560606076e+00 1.737372946411540e+00 1.727249932639099e+00 1.717167351154095e+00 1.707125028541288e+00 - 1.697122811212298e+00 1.687160545804055e+00 1.677238060829077e+00 1.667355192130723e+00 1.657511781312863e+00 - 1.647707669880958e+00 1.637942692337234e+00 1.628216684763444e+00 1.618529503053863e+00 1.608880992276723e+00 - 1.599270986915247e+00 1.589699330823691e+00 1.580165870897195e+00 1.570670452975510e+00 1.561212914561866e+00 - 1.551793103249197e+00 1.542410880472349e+00 1.533066090216831e+00 1.523758574579748e+00 1.514488184288800e+00 - 1.505254771462676e+00 1.496058184704016e+00 1.486898266759950e+00 1.477774877044576e+00 1.468687878023066e+00 - 1.459637114930725e+00 1.450622438289068e+00 1.441643704572125e+00 1.432700770639202e+00 1.423793487269355e+00 - 1.414921704769478e+00 1.406085292220042e+00 1.397284110913275e+00 1.388518010515092e+00 1.379786849127615e+00 - 1.371090488107240e+00 1.362428788219066e+00 1.353801602746353e+00 1.345208792137069e+00 1.336650231141558e+00 - 1.328125779708811e+00 1.319635294146069e+00 1.311178639017341e+00 1.302755680403749e+00 1.294366281732825e+00 - 1.286010300246468e+00 1.277687607130681e+00 1.269398079017509e+00 1.261141576506052e+00 1.252917963373013e+00 - 1.244727109229262e+00 1.236568884548108e+00 1.228443154841189e+00 1.220349783647821e+00 1.212288651549746e+00 - 1.204259634287000e+00 1.196262595500517e+00 1.188297406122070e+00 1.180363940507803e+00 1.172462072687314e+00 - 1.164591670206239e+00 1.156752605274376e+00 1.148944764287503e+00 1.141168021685895e+00 1.133422246839356e+00 - 1.125707316556084e+00 1.118023109341937e+00 1.110369501923575e+00 1.102746365022667e+00 1.095153580538906e+00 - 1.087591037394418e+00 1.080058609806265e+00 1.072556173728377e+00 1.065083611042832e+00 1.057640804167975e+00 - 1.050227631677888e+00 1.042843969448370e+00 1.035489708218281e+00 1.028164736497249e+00 1.020868930712798e+00 - 1.013602173363602e+00 1.006364350528145e+00 9.991553480860069e-01 9.919750464549014e-01 9.848233287198007e-01 - 9.777000916381701e-01 9.706052224312447e-01 9.635386022157533e-01 9.565001191688937e-01 9.494896630661879e-01 - 9.425071223228538e-01 9.355523797940184e-01 9.286253271866921e-01 9.217258644183214e-01 9.148538781303724e-01 - 9.080092551050607e-01 9.011918879859632e-01 8.944016703005543e-01 8.876384924746002e-01 8.809022413584221e-01 - 8.741928168976413e-01 8.675101190938330e-01 8.608540359442419e-01 8.542244603473701e-01 8.476212889430066e-01 - 8.410444181391276e-01 8.344937399710189e-01 8.279691476350027e-01 8.214705470141707e-01 8.149978368018493e-01 - 8.085509088588196e-01 8.021296614287111e-01 7.957339944800463e-01 7.893638070383275e-01 7.830189931350516e-01 - 7.766994532966268e-01 7.704050967403675e-01 7.641358215802615e-01 7.578915247022724e-01 7.516721083807270e-01 - 7.454774759379389e-01 7.393075284143857e-01 7.331621629407183e-01 7.270412875750237e-01 7.209448123528730e-01 - 7.148726361079928e-01 7.088246610576617e-01 7.028007931997213e-01 6.968009387204053e-01 6.908250000358214e-01 - 6.848728793751606e-01 6.789444908271167e-01 6.730397435251165e-01 6.671585392499849e-01 6.613007849024644e-01 - 6.554663896318030e-01 6.496552624588109e-01 6.438673070778183e-01 6.381024319556428e-01 6.323605552121262e-01 - 6.266415850605696e-01 6.209454272475601e-01 6.152719929073242e-01 6.096211942955035e-01 6.039929419697414e-01 - 5.983871423673978e-01 5.928037109278776e-01 5.872425665727200e-01 5.817036179262789e-01 5.761867757580472e-01 - 5.706919545755328e-01 5.652190691753797e-01 5.597680312855905e-01 5.543387515608681e-01 5.489311514266204e-01 - 5.435451491959484e-01 5.381806555529779e-01 5.328375858091706e-01 5.275158573424954e-01 5.222153871968650e-01 - 5.169360885007255e-01 5.116778775087658e-01 5.064406794925096e-01 5.012244118255510e-01 4.960289886382637e-01 - 4.908543290552675e-01 4.857003532629381e-01 4.805669801867241e-01 4.754541247133137e-01 4.703617092625736e-01 - 4.652896609026711e-01 4.602378967146020e-01 4.552063350475851e-01 4.501948983226124e-01 4.452035092771810e-01 - 4.402320879227842e-01 4.352805523654864e-01 4.303488309750054e-01 4.254368504386150e-01 4.205445290166767e-01 - 4.156717895856258e-01 4.108185573527897e-01 4.059847567861119e-01 4.011703090912549e-01 3.963751374739253e-01 - 3.915991740467544e-01 3.868423443729578e-01 3.821045699452743e-01 3.773857771630841e-01 3.726858934536713e-01 - 3.680048452743795e-01 3.633425553945757e-01 3.586989523890614e-01 3.540739701811214e-01 3.494675340422360e-01 - 3.448795694018267e-01 3.403100055229290e-01 3.357587720701978e-01 3.312257966625470e-01 3.267110046986084e-01 - 3.222143302305144e-01 3.177357072575733e-01 3.132750617821559e-01 3.088323230437107e-01 3.044074228278458e-01 - 3.000002929514869e-01 2.956108619814004e-01 2.912390591663653e-01 2.868848226223222e-01 2.825480855369588e-01 - 2.782287763584979e-01 2.739268276304007e-01 2.696421732978619e-01 2.653747469077652e-01 2.611244782932083e-01 - 2.568913016367161e-01 2.526751570146955e-01 2.484759769388697e-01 2.442936932048949e-01 2.401282413902519e-01 - 2.359795575701045e-01 2.318475761710866e-01 2.277322290127450e-01 2.236334554284879e-01 2.195511960314929e-01 - 2.154853836729677e-01 2.114359536211432e-01 2.074028437636633e-01 2.033859920182897e-01 1.993853337119912e-01 - 1.954008040589642e-01 1.914323463143237e-01 1.874799002688242e-01 1.835434007181165e-01 1.796227861758036e-01 - 1.757179964922509e-01 1.718289711649378e-01 1.679556465242757e-01 1.640979620393169e-01 1.602558632656972e-01 - 1.564292893436780e-01 1.526181778855338e-01 1.488224700413446e-01 1.450421075715582e-01 1.412770310767497e-01 - 1.375271785489454e-01 1.337924939887067e-01 1.300729236356154e-01 1.263684067750867e-01 1.226788841702678e-01 - 1.190042991249222e-01 1.153445951805052e-01 1.116997137432381e-01 1.080695954417651e-01 1.044541881911586e-01 - 1.008534377603918e-01 9.726728475975084e-02 9.369567294988820e-02 9.013854752144720e-02 8.659585347215112e-02 - 8.306753302147955e-02 7.955353046975124e-02 7.605379621791922e-02 7.256827534889604e-02 6.909691079142652e-02 - 6.563964883225221e-02 6.219643640409570e-02 5.876721959493493e-02 5.535194193553600e-02 5.195055179453398e-02 - 4.856300050562060e-02 4.518923308325209e-02 4.182919528191363e-02 3.848283536820589e-02 3.515010193539807e-02 - 3.183094185890936e-02 2.852530077920949e-02 2.523313079087341e-02 2.195438300307553e-02 1.868900335629075e-02 - 1.543694036357313e-02 1.219814405293583e-02 8.972564385828061e-03 5.760148923624660e-03 2.560846417529306e-03 - -6.253884489496408e-04 -3.798605206001689e-03 -6.958856024607482e-03 -1.010619000899848e-02 -1.324065554473652e-02 - -1.636230159824732e-02 -1.947117958312726e-02 -2.256733711284757e-02 -2.565081832749929e-02 -2.872167302619957e-02 - -3.177995089902724e-02 -3.482569914268617e-02 -3.785896464500105e-02 -4.087979562235380e-02 -4.388824175488684e-02 - -4.688434717766576e-02 -4.986815604286890e-02 -5.283971753775529e-02 -5.579907881824794e-02 -5.874628546589089e-02 - -6.168138307363240e-02 -6.460441923558070e-02 -6.751544105442296e-02 -7.041449003639784e-02 -7.330161087707579e-02 - -7.617685125406765e-02 -7.904025608548425e-02 -8.189186951723537e-02 -8.473173608907363e-02 -8.755990257827875e-02 - -9.037641289395969e-02 -9.318130717201861e-02 -9.597463047763352e-02 -9.875642835115833e-02 -1.015267439140877e-01 - -1.042856199263307e-01 -1.070331001684683e-01 -1.097692300567918e-01 -1.124940502948268e-01 -1.152076007898061e-01 - -1.179099262631479e-01 -1.206010699593113e-01 -1.232810735016665e-01 -1.259499784255051e-01 -1.286078279418341e-01 - -1.312546653333709e-01 -1.338905286984875e-01 -1.365154583874092e-01 -1.391294979538990e-01 -1.417326885345280e-01 - -1.443250704192513e-01 -1.469066841433861e-01 -1.494775722507627e-01 -1.520377752494497e-01 -1.545873297590701e-01 - -1.571262765202916e-01 -1.596546572452540e-01 -1.621725113907878e-01 -1.646798779801165e-01 -1.671767967821347e-01 - -1.696633092874520e-01 -1.721394530811854e-01 -1.746052643091513e-01 -1.770607836101869e-01 -1.795060506428017e-01 - -1.819411034225526e-01 -1.843659798390828e-01 -1.867807191554161e-01 -1.891853611111403e-01 -1.915799407499077e-01 - -1.939644945120454e-01 -1.963390621459183e-01 -1.987036813730624e-01 -2.010583889984393e-01 -2.034032219467188e-01 - -2.057382189127211e-01 -2.080634172465200e-01 -2.103788504106409e-01 -2.126845552585028e-01 -2.149805700057577e-01 - -2.172669307458855e-01 -2.195436731393316e-01 -2.218108333786645e-01 -2.240684493062661e-01 -2.263165556286022e-01 - -2.285551851690127e-01 -2.307843748874083e-01 -2.330041611277884e-01 -2.352145785311434e-01 -2.374156618282909e-01 - -2.396074467707450e-01 -2.417899696732801e-01 -2.439632627554057e-01 -2.461273590292558e-01 -2.482822949571798e-01 - -2.504281050002428e-01 -2.525648226666662e-01 -2.546924818382261e-01 -2.568111176810049e-01 -2.589207645010757e-01 - -2.610214530059819e-01 -2.631132165202481e-01 -2.651960899948890e-01 -2.672701065219724e-01 -2.693352987894519e-01 - -2.713916998229662e-01 -2.734393439668777e-01 -2.754782632038173e-01 -2.775084874639143e-01 -2.795300503441993e-01 - -2.815429852855671e-01 -2.835473240274155e-01 -2.855430981234691e-01 -2.875303400246380e-01 -2.895090831627840e-01 - -2.914793573631382e-01 -2.934411924374482e-01 -2.953946213942734e-01 -2.973396760049649e-01 -2.992763870705049e-01 - -3.012047853752455e-01 -3.031249029054077e-01 -3.050367713048046e-01 -3.069404187491607e-01 -3.088358754333808e-01 - -3.107231733999588e-01 -3.126023429151826e-01 -3.144734138246973e-01 -3.163364162512183e-01 -3.181913814969073e-01 - -3.200383391593082e-01 -3.218773166629695e-01 -3.237083442965246e-01 -3.255314526206347e-01 -3.273466708133588e-01 - -3.291540279174764e-01 -3.309535535062730e-01 -3.327452779044484e-01 -3.345292286746930e-01 -3.363054329977739e-01 - -3.380739209920870e-01 -3.398347217688169e-01 -3.415878634526212e-01 -3.433333743100879e-01 -3.450712833788954e-01 - -3.468016195958206e-01 -3.485244091566739e-01 -3.502396793974815e-01 -3.519474593420066e-01 -3.536477770380763e-01 - -3.553406598299846e-01 -3.570261348354672e-01 -3.587042307855341e-01 -3.603749751839582e-01 -3.620383929731605e-01 - -3.636945116923384e-01 -3.653433594409278e-01 -3.669849628231984e-01 -3.686193482790397e-01 -3.702465427747400e-01 - -3.718665743211436e-01 -3.734794684043725e-01 -3.750852495624684e-01 -3.766839451194457e-01 -3.782755819189342e-01 - -3.798601858648072e-01 -3.814377826321034e-01 -3.830083986549013e-01 -3.845720606417443e-01 -3.861287926090124e-01 - -3.876786193539286e-01 -3.892215675502101e-01 -3.907576628594260e-01 -3.922869303026715e-01 -3.938093947284727e-01 - -3.953250822556230e-01 -3.968340182497304e-01 -3.983362256494206e-01 -3.998317293097848e-01 -4.013205549386248e-01 - -4.028027272117153e-01 -4.042782703087232e-01 -4.057472086115670e-01 -4.072095677082399e-01 -4.086653712889545e-01 - -4.101146418277140e-01 -4.115574040934622e-01 -4.129936826934361e-01 -4.144235014035024e-01 -4.158468836578273e-01 - -4.172638535617268e-01 -4.186744357650895e-01 -4.200786523524958e-01 -4.214765258006608e-01 -4.228680805923657e-01 - -4.242533401481378e-01 -4.256323273241845e-01 -4.270050650780072e-01 -4.283715771591216e-01 -4.297318868367957e-01 - -4.310860152683936e-01 -4.324339850671611e-01 -4.337758197699306e-01 -4.351115419219263e-01 -4.364411736856622e-01 - -4.377647373653272e-01 -4.390822563519974e-01 -4.403937525793140e-01 -4.416992465950099e-01 -4.429987609092939e-01 - -4.442923180804305e-01 -4.455799398898891e-01 -4.468616477876415e-01 -4.481374637930542e-01 -4.494074106490894e-01 - -4.506715085877422e-01 -4.519297779021105e-01 -4.531822412097039e-01 -4.544289201442401e-01 -4.556698355752103e-01 - -4.569050083194456e-01 -4.581344599890250e-01 -4.593582121055255e-01 -4.605762842891920e-01 -4.617886970897419e-01 - -4.629954719556403e-01 -4.641966295426422e-01 -4.653921902577345e-01 -4.665821746143150e-01 -4.677666038635413e-01 - -4.689454981292748e-01 -4.701188761476531e-01 -4.712867586709557e-01 -4.724491664926360e-01 -4.736061192593240e-01 - -4.747576368456714e-01 -4.759037394682022e-01 -4.770444475543998e-01 -4.781797800875144e-01 -4.793097558338887e-01 - -4.804343950164401e-01 -4.815537175042383e-01 -4.826677426390972e-01 -4.837764894228364e-01 -4.848799775883490e-01 - -4.859782270303963e-01 -4.870712557287352e-01 -4.881590823344398e-01 -4.892417265305033e-01 -4.903192072931410e-01 - -4.913915433426016e-01 -4.924587534540600e-01 -4.935208569593936e-01 -4.945778724869024e-01 -4.956298174121960e-01 - -4.966767104426105e-01 -4.977185705977166e-01 -4.987554161795947e-01 -4.997872652579317e-01 -5.008141361357437e-01 - -5.018360477540788e-01 -5.028530175622089e-01 -5.038650625463708e-01 -5.048722015765362e-01 -5.058744527800632e-01 - -5.068718334710337e-01 -5.078643614554021e-01 -5.088520548881869e-01 -5.098349318298798e-01 -5.108130088001350e-01 - -5.117863028619736e-01 -5.127548322161382e-01 -5.137186142245088e-01 -5.146776659499980e-01 -5.156320045833772e-01 - -5.165816478015819e-01 -5.175266128170244e-01 -5.184669156304091e-01 -5.194025733016244e-01 -5.203336032597101e-01 - -5.212600221732120e-01 -5.221818466804444e-01 -5.230990936596679e-01 -5.240117804553392e-01 -5.249199232262068e-01 - -5.258235374392936e-01 -5.267226400387954e-01 -5.276172478389746e-01 -5.285073771019844e-01 -5.293930438910602e-01 - -5.302742646986305e-01 -5.311510563423283e-01 -5.320234339437281e-01 -5.328914129379527e-01 -5.337550101355577e-01 - -5.346142414983102e-01 -5.354691226448078e-01 -5.363196694209366e-01 -5.371658979374595e-01 -5.380078240078261e-01 - -5.388454624615836e-01 -5.396788287704753e-01 -5.405079388378121e-01 -5.413328081929075e-01 -5.421534521210617e-01 - -5.429698859177164e-01 -5.437821254261226e-01 -5.445901856060492e-01 -5.453940806517681e-01 -5.461938261275164e-01 - -5.469894375147514e-01 -5.477809296410460e-01 -5.485683172596564e-01 -5.493516154047422e-01 -5.501308394233321e-01 - -5.509060035978606e-01 -5.516771220917993e-01 -5.524442098036262e-01 -5.532072816062331e-01 -5.539663521228516e-01 - -5.547214355736525e-01 -5.554725467511782e-01 -5.562197004144761e-01 -5.569629099559865e-01 -5.577021895124128e-01 - -5.584375539231472e-01 -5.591690174427206e-01 -5.598965939391384e-01 -5.606202972403660e-01 -5.613401421520022e-01 - -5.620561426054913e-01 -5.627683113219669e-01 -5.634766626491997e-01 -5.641812109417922e-01 -5.648819696019924e-01 - -5.655789522526887e-01 -5.662721727674018e-01 -5.669616451334641e-01 -5.676473824290281e-01 -5.683293976251365e-01 - -5.690077046537543e-01 -5.696823171027902e-01 -5.703532481968968e-01 -5.710205111045815e-01 -5.716841193018837e-01 - -5.723440862989044e-01 -5.730004247377283e-01 -5.736531475408438e-01 -5.743022680808630e-01 -5.749477994635019e-01 - -5.755897545119250e-01 -5.762281459317424e-01 -5.768629872133108e-01 -5.774942912813225e-01 -5.781220698864685e-01 - -5.787463360372200e-01 -5.793671029370097e-01 -5.799843829591812e-01 -5.805981885004621e-01 -5.812085322229668e-01 - -5.818154271777390e-01 -5.824188854500640e-01 -5.830189187855023e-01 -5.836155400127914e-01 -5.842087616519486e-01 - -5.847985957903102e-01 -5.853850545399070e-01 -5.859681502822114e-01 -5.865478954643482e-01 -5.871243015837295e-01 - -5.876973804424807e-01 -5.882671445115567e-01 -5.888336058093040e-01 -5.893967761301214e-01 -5.899566672475657e-01 - -5.905132912554449e-01 -5.910666600004119e-01 -5.916167846344484e-01 -5.921636769312483e-01 -5.927073488739303e-01 - -5.932478119884005e-01 -5.937850777230974e-01 -5.943191576345895e-01 -5.948500635775013e-01 -5.953778067525587e-01 - -5.959023980172641e-01 -5.964238491804477e-01 -5.969421717317064e-01 -5.974573766302176e-01 -5.979694750153504e-01 - -5.984784782975928e-01 -5.989843980133127e-01 -5.994872448737363e-01 -5.999870296226286e-01 -6.004837635008013e-01 - -6.009774575116591e-01 -6.014681225640990e-01 -6.019557696406324e-01 -6.024404098188824e-01 -6.029220539582525e-01 - -6.034007123251734e-01 -6.038763957092128e-01 -6.043491151546724e-01 -6.048188811990667e-01 -6.052857043294740e-01 - -6.057495951725935e-01 -6.062105647034982e-01 -6.066686232996821e-01 -6.071237808282512e-01 -6.075760480581535e-01 - -6.080254356249652e-01 -6.084719536597242e-01 -6.089156123708600e-01 -6.093564221655233e-01 -6.097943936088406e-01 - -6.102295366277345e-01 -6.106618611466814e-01 -6.110913776082281e-01 -6.115180960018122e-01 -6.119420262061138e-01 - -6.123631785057825e-01 -6.127815629923925e-01 -6.131971895415724e-01 -6.136100679122567e-01 -6.140202079254689e-01 - -6.144276194632986e-01 -6.148323123693087e-01 -6.152342964516117e-01 -6.156335814880438e-01 -6.160301772367670e-01 - -6.164240932773791e-01 -6.168153390131846e-01 -6.172039241057757e-01 -6.175898582479540e-01 -6.179731510100582e-01 - -6.183538118537011e-01 -6.187318502245757e-01 -6.191072755983122e-01 -6.194800972241303e-01 -6.198503243163954e-01 - -6.202179663089392e-01 -6.205830326036273e-01 -6.209455324825972e-01 -6.213054750121583e-01 -6.216628693834372e-01 - -6.220177248671027e-01 -6.223700505100402e-01 -6.227198553511943e-01 -6.230671484590707e-01 -6.234119388224310e-01 - -6.237542354039819e-01 -6.240940471906395e-01 -6.244313833278470e-01 -6.247662526956897e-01 -6.250986637315333e-01 - -6.254286253149073e-01 -6.257561464374979e-01 -6.260812358699522e-01 -6.264039022632663e-01 -6.267241542804416e-01 - -6.270420007239386e-01 -6.273574502418447e-01 -6.276705113436000e-01 -6.279811924920996e-01 -6.282895022600340e-01 - -6.285954492669960e-01 -6.288990419377586e-01 -6.292002887596219e-01 -6.294991982474318e-01 -6.297957785295903e-01 - -6.300900379535952e-01 -6.303819851813233e-01 -6.306716282540937e-01 -6.309589752809680e-01 -6.312440348023121e-01 - -6.315268150763020e-01 -6.318073241903770e-01 -6.320855701836068e-01 -6.323615610879741e-01 -6.326353050044859e-01 - -6.329068101802829e-01 -6.331760846635813e-01 -6.334431363818833e-01 -6.337079733473078e-01 -6.339706034520735e-01 - -6.342310345121693e-01 -6.344892744839461e-01 -6.347453312805855e-01 -6.349992127114430e-01 -6.352509264768633e-01 - -6.355004804526597e-01 -6.357478826585540e-01 -6.359931404400122e-01 -6.362362612918424e-01 -6.364772532644518e-01 - -6.367161239398067e-01 -6.369528807876881e-01 -6.371875315012039e-01 -6.374200836672138e-01 -6.376505447719858e-01 - -6.378789222449943e-01 -6.381052236017390e-01 -6.383294563385360e-01 -6.385516277126226e-01 -6.387717451483415e-01 - -6.389898161925324e-01 -6.392058481779943e-01 -6.394198483013303e-01 -6.396318237129481e-01 -6.398417817583982e-01 - -6.400497298004382e-01 -6.402556751053731e-01 -6.404596246811356e-01 -6.406615856182318e-01 -6.408615652398488e-01 - -6.410595705960431e-01 -6.412556087124355e-01 -6.414496867908267e-01 -6.416418117430738e-01 -6.418319904244396e-01 - -6.420202299552208e-01 -6.422065373268501e-01 -6.423909194238488e-01 -6.425733831564441e-01 -6.427539354568388e-01 - -6.429325832107947e-01 -6.431093330874931e-01 -6.432841919278923e-01 -6.434571667152847e-01 -6.436282640341581e-01 - -6.437974905134223e-01 -6.439648529819666e-01 -6.441303582355420e-01 -6.442940129046214e-01 -6.444558234243410e-01 - -6.446157964842297e-01 -6.447739387669796e-01 -6.449302567289288e-01 -6.450847570451982e-01 -6.452374463418470e-01 - -6.453883308317777e-01 -6.455374170518916e-01 -6.456847116523639e-01 -6.458302208459006e-01 -6.459739509825424e-01 - -6.461159085765001e-01 -6.462561000624228e-01 -6.463945317857885e-01 -6.465312099893501e-01 -6.466661407794220e-01 - -6.467993305071421e-01 -6.469307857586633e-01 -6.470605124176557e-01 -6.471885165505020e-01 -6.473148048129491e-01 - -6.474393831451855e-01 -6.475622574433044e-01 -6.476834341411803e-01 -6.478029193005811e-01 -6.479207188186653e-01 - -6.480368387749067e-01 -6.481512852365653e-01 -6.482640642356557e-01 -6.483751817763184e-01 -6.484846438333333e-01 - -6.485924563559199e-01 -6.486986252696630e-01 -6.488031563964390e-01 -6.489060555062011e-01 -6.490073285956434e-01 - -6.491069816182633e-01 -6.492050203757027e-01 -6.493014505946639e-01 -6.493962779796888e-01 -6.494895082497514e-01 - -6.495811472172135e-01 -6.496712006463234e-01 -6.497596741452655e-01 -6.498465734697708e-01 -6.499319043537729e-01 - -6.500156722751166e-01 -6.500978828758883e-01 -6.501785418212779e-01 -6.502576544563589e-01 -6.503352264336196e-01 - -6.504112635780723e-01 -6.504857712206107e-01 -6.505587548117625e-01 -6.506302199692129e-01 -6.507001719669850e-01 - -6.507686161481057e-01 -6.508355580770583e-01 -6.509010033515999e-01 -6.509649573333303e-01 -6.510274250599254e-01 - -6.510884119408136e-01 -6.511479234691252e-01 -6.512059649357221e-01 -6.512625414820176e-01 -6.513176583196066e-01 - -6.513713209657690e-01 -6.514235346566493e-01 -6.514743044494572e-01 -6.515236355351222e-01 -6.515715331668240e-01 - -6.516180025498758e-01 -6.516630486086969e-01 -6.517066764698182e-01 -6.517488914696901e-01 -6.517896986474616e-01 - -6.518291029696229e-01 -6.518671094474887e-01 -6.519037232298822e-01 -6.519389493677847e-01 -6.519727927034696e-01 - -6.520052582102593e-01 -6.520363509344871e-01 -6.520660759114448e-01 -6.520944379877177e-01 -6.521214419863292e-01 - -6.521470929034477e-01 -6.521713955379932e-01 -6.521943546611896e-01 -6.522159753870301e-01 -6.522362625000242e-01 - -6.522552205660485e-01 -6.522728545508729e-01 -6.522891692872490e-01 -6.523041693781095e-01 -6.523178594474156e-01 - -6.523302443147758e-01 -6.523413289626511e-01 -6.523511179648659e-01 -6.523596158248584e-01 -6.523668271884714e-01 - -6.523727568212391e-01 -6.523774093997819e-01 -6.523807893579161e-01 -6.523829012952149e-01 -6.523837498990516e-01 - -6.523833397960367e-01 -6.523816754611410e-01 -6.523787613199525e-01 -6.523746019358498e-01 -6.523692018302728e-01 - -6.523625654555820e-01 -6.523546972248629e-01 -6.523456017173497e-01 -6.523352835702680e-01 -6.523237468711672e-01 - -6.523109959032295e-01 -6.522970353197415e-01 -6.522818693382445e-01 -6.522655022842732e-01 -6.522479388337681e-01 - -6.522291831409690e-01 -6.522092393163972e-01 -6.521881118419591e-01 -6.521658050464721e-01 -6.521423231008568e-01 - -6.521176700882644e-01 -6.520918504277817e-01 -6.520648685798258e-01 -6.520367284462982e-01 -6.520074341903623e-01 - -6.519769901852531e-01 -6.519454004576026e-01 -6.519126690272374e-01 -6.518788000417296e-01 -6.518437978790763e-01 - -6.518076667685843e-01 -6.517704106505043e-01 -6.517320333460206e-01 -6.516925389358605e-01 -6.516519318553129e-01 - -6.516102158220000e-01 -6.515673946405215e-01 -6.515234728464969e-01 -6.514784543315630e-01 -6.514323427842886e-01 - -6.513851423523833e-01 -6.513368570527661e-01 -6.512874907235414e-01 -6.512370470939771e-01 -6.511855301990920e-01 - -6.511329442190841e-01 -6.510792928715797e-01 -6.510245798816351e-01 -6.509688091361985e-01 -6.509119847142907e-01 - -6.508541103488035e-01 -6.507951894034477e-01 -6.507352259931611e-01 -6.506742241942834e-01 -6.506121876059120e-01 - -6.505491199228429e-01 -6.504850249436106e-01 -6.504199065016956e-01 -6.503537680222150e-01 -6.502866130342899e-01 - -6.502184457971011e-01 -6.501492700279957e-01 -6.500790890906794e-01 -6.500079066129352e-01 -6.499357263329657e-01 - -6.498625519683058e-01 -6.497883869826074e-01 -6.497132350047277e-01 -6.496370998048885e-01 -6.495599847614121e-01 - -6.494818934475555e-01 -6.494028297363450e-01 -6.493227969968260e-01 -6.492417985197620e-01 -6.491598378013752e-01 - -6.490769185970405e-01 -6.489930446200032e-01 -6.489082192796405e-01 -6.488224457999440e-01 -6.487357275334984e-01 - -6.486480682838258e-01 -6.485594713376021e-01 -6.484699398068251e-01 -6.483794774339799e-01 -6.482880877536140e-01 - -6.481957740532812e-01 -6.481025397024727e-01 -6.480083880017639e-01 -6.479133221889776e-01 -6.478173456351086e-01 - -6.477204618036257e-01 -6.476226741599570e-01 -6.475239858039916e-01 -6.474243999826228e-01 -6.473239202990485e-01 - -6.472225498463482e-01 -6.471202916312221e-01 -6.470171489638400e-01 -6.469131252405815e-01 -6.468082238277443e-01 - -6.467024479420175e-01 -6.465958006550642e-01 -6.464882850509053e-01 -6.463799044773618e-01 -6.462706620382276e-01 - -6.461605607272912e-01 -6.460496040101232e-01 -6.459377950690467e-01 -6.458251367734501e-01 -6.457116323868038e-01 - -6.455972850655802e-01 -6.454820977029684e-01 -6.453660732942879e-01 -6.452492150754419e-01 -6.451315264887545e-01 - -6.450130102914885e-01 -6.448936692680686e-01 -6.447735068128447e-01 -6.446525260129213e-01 -6.445307296530088e-01 - -6.444081203587793e-01 -6.442847014715996e-01 -6.441604765089356e-01 -6.440354480546840e-01 -6.439096188724848e-01 - -6.437829920095609e-01 -6.436555704731397e-01 -6.435273570693492e-01 -6.433983545533010e-01 -6.432685663163126e-01 - -6.431379953365300e-01 -6.430066439769492e-01 -6.428745153347271e-01 -6.427416124750638e-01 -6.426079380140648e-01 - -6.424734947555180e-01 -6.423382856273998e-01 -6.422023135830728e-01 -6.420655814260000e-01 -6.419280919255173e-01 - -6.417898479598759e-01 -6.416508523135933e-01 -6.415111076305331e-01 -6.413706163966455e-01 -6.412293816393564e-01 - -6.410874066048897e-01 -6.409446936267265e-01 -6.408012453136449e-01 -6.406570646910840e-01 -6.405121544270317e-01 - -6.403665170374713e-01 -6.402201550644944e-01 -6.400730715072882e-01 -6.399252691822962e-01 -6.397767504407681e-01 - -6.396275180930010e-01 -6.394775749890055e-01 -6.393269236107165e-01 -6.391755662191552e-01 -6.390235053902433e-01 - -6.388707445708105e-01 -6.387172861694177e-01 -6.385631322023312e-01 -6.384082857966726e-01 -6.382527494896121e-01 - -6.380965253642142e-01 -6.379396162401521e-01 -6.377820248167250e-01 -6.376237535602883e-01 -6.374648052204416e-01 - -6.373051823107587e-01 -6.371448870124290e-01 -6.369839218821269e-01 -6.368222895078627e-01 -6.366599923302766e-01 - -6.364970329561520e-01 -6.363334139746031e-01 -6.361691377885151e-01 -6.360042067688202e-01 -6.358386233547334e-01 - -6.356723901317635e-01 -6.355055093799952e-01 -6.353379833438523e-01 -6.351698147827204e-01 -6.350010061497325e-01 - -6.348315596278746e-01 -6.346614776297652e-01 -6.344907627044540e-01 -6.343194173354602e-01 -6.341474433478579e-01 - -6.339748431233465e-01 -6.338016197812808e-01 -6.336277753787244e-01 -6.334533118997744e-01 -6.332782318265875e-01 - -6.331025376588558e-01 -6.329262316544187e-01 -6.327493157114107e-01 -6.325717923863455e-01 -6.323936643403999e-01 - -6.322149336030685e-01 -6.320356024195775e-01 -6.318556731749607e-01 -6.316751480498738e-01 -6.314940290711796e-01 - -6.313123183267710e-01 -6.311300184615836e-01 -6.309471319109403e-01 -6.307636607640942e-01 -6.305796070902886e-01 - -6.303949730482692e-01 -6.302097608691579e-01 -6.300239725606558e-01 -6.298376103756032e-01 -6.296506769748604e-01 - -6.294631743864889e-01 -6.292751044804592e-01 -6.290864694027335e-01 -6.288972714311484e-01 -6.287075127245377e-01 - -6.285171950849623e-01 -6.283263208775478e-01 -6.281348926187029e-01 -6.279429120773061e-01 -6.277503812180564e-01 - -6.275573022752827e-01 -6.273636774541002e-01 -6.271695087389834e-01 -6.269747979757735e-01 -6.267795473573458e-01 - -6.265837591630624e-01 -6.263874355834504e-01 -6.261905784094625e-01 -6.259931895045528e-01 -6.257952710369122e-01 - -6.255968250363517e-01 -6.253978534898084e-01 -6.251983584520242e-01 -6.249983420853732e-01 -6.247978064572296e-01 - -6.245967533125147e-01 -6.243951846742302e-01 -6.241931026018996e-01 -6.239905086686763e-01 -6.237874050561640e-01 - -6.235837942608177e-01 -6.233796778475696e-01 -6.231750576026635e-01 -6.229699356978790e-01 -6.227643140512986e-01 - -6.225581944126894e-01 -6.223515785171654e-01 -6.221444686516174e-01 -6.219368669106876e-01 -6.217287748516653e-01 - -6.215201944179222e-01 -6.213111276341791e-01 -6.211015763012264e-01 -6.208915420627059e-01 -6.206810267189914e-01 - -6.204700325606027e-01 -6.202585614407183e-01 -6.200466150025669e-01 -6.198341952555039e-01 -6.196213039807257e-01 - -6.194079427661365e-01 -6.191941133919308e-01 -6.189798178811384e-01 -6.187650583625046e-01 -6.185498365366234e-01 - -6.183341539791172e-01 -6.181180123373080e-01 -6.179014136693182e-01 -6.176843597571294e-01 -6.174668518753883e-01 - -6.172488922358068e-01 -6.170304830078728e-01 -6.168116255085183e-01 -6.165923213940302e-01 -6.163725725542526e-01 - -6.161523808379610e-01 -6.159317477445455e-01 -6.157106747923912e-01 -6.154891641891720e-01 -6.152672177134336e-01 - -6.150448367622374e-01 -6.148220230127394e-01 -6.145987783325538e-01 -6.143751045698781e-01 -6.141510029326600e-01 - -6.139264750393221e-01 -6.137015231470567e-01 -6.134761489851926e-01 -6.132503540152313e-01 -6.130241396532106e-01 - -6.127975076851865e-01 -6.125704598048077e-01 -6.123429972989166e-01 -6.121151221351967e-01 -6.118868363314907e-01 - -6.116581411278224e-01 -6.114290380220153e-01 -6.111995287783158e-01 -6.109696151823703e-01 -6.107392985450728e-01 - -6.105085801024925e-01 -6.102774622058419e-01 -6.100459465922933e-01 -6.098140342484372e-01 -6.095817267256873e-01 - -6.093490257933440e-01 -6.091159331809802e-01 -6.088824500709522e-01 -6.086485779905337e-01 -6.084143191489354e-01 - -6.081796748129595e-01 -6.079446461968719e-01 -6.077092351925356e-01 -6.074734432434898e-01 -6.072372716150822e-01 - -6.070007218360295e-01 -6.067637956065657e-01 -6.065264946232775e-01 -6.062888203126375e-01 -6.060507740692458e-01 - -6.058123573561740e-01 -6.055735718185850e-01 -6.053344188005130e-01 -6.050948994718379e-01 -6.048550157592759e-01 - -6.046147693250087e-01 -6.043741612917217e-01 -6.041331930896253e-01 -6.038918662688606e-01 -6.036501823335466e-01 - -6.034081424814672e-01 -6.031657481058161e-01 -6.029230011393863e-01 -6.026799028730719e-01 -6.024364544399844e-01 - -6.021926574869638e-01 -6.019485136055120e-01 -6.017040241022006e-01 -6.014591897708976e-01 -6.012140122415236e-01 - -6.009684936432825e-01 -6.007226351565053e-01 -6.004764378633045e-01 -6.002299030368295e-01 -5.999830322604393e-01 - -5.997358269112610e-01 -5.994882881008079e-01 -5.992404174674395e-01 -5.989922165630734e-01 -5.987436865327392e-01 - -5.984948286273432e-01 -5.982456442781595e-01 -5.979961350600861e-01 -5.977463018616249e-01 -5.974961457245347e-01 - -5.972456688462123e-01 -5.969948725706038e-01 -5.967437577688297e-01 -5.964923259025159e-01 -5.962405782771161e-01 - -5.959885160038786e-01 -5.957361402849749e-01 -5.954834525607696e-01 -5.952304544228757e-01 -5.949771471628894e-01 - -5.947235319540697e-01 -5.944696099654433e-01 -5.942153825546195e-01 -5.939608509107162e-01 -5.937060159741117e-01 - -5.934508794411635e-01 -5.931954428951332e-01 -5.929397071302310e-01 -5.926836734445704e-01 -5.924273432987167e-01 - -5.921707177793331e-01 -5.919137978828047e-01 -5.916565847753502e-01 -5.913990801532651e-01 -5.911412853604616e-01 - -5.908832013941032e-01 -5.906248293335863e-01 -5.903661704565201e-01 -5.901072261246485e-01 -5.898479972855557e-01 - -5.895884850905705e-01 -5.893286910470348e-01 -5.890686164387193e-01 -5.888082623596927e-01 -5.885476297953414e-01 - -5.882867200485414e-01 -5.880255342895034e-01 -5.877640732646211e-01 -5.875023385228563e-01 -5.872403317009627e-01 - -5.869780535979796e-01 -5.867155052441069e-01 -5.864526878805291e-01 -5.861896026754034e-01 -5.859262506932092e-01 - -5.856626329801135e-01 -5.853987507817091e-01 -5.851346053972879e-01 -5.848701980701103e-01 -5.846055297559873e-01 - -5.843406014627009e-01 -5.840754143260567e-01 -5.838099692919883e-01 -5.835442675863415e-01 -5.832783108438364e-01 - -5.830120998737411e-01 -5.827456354637697e-01 -5.824789190313094e-01 -5.822119517157962e-01 -5.819447343999242e-01 - -5.816772678604962e-01 -5.814095534384316e-01 -5.811415926659900e-01 -5.808733865100626e-01 -5.806049358083534e-01 - -5.803362414940428e-01 -5.800673049021045e-01 -5.797981269727348e-01 -5.795287083747186e-01 -5.792590507223763e-01 - -5.789891553127540e-01 -5.787190227795775e-01 -5.784486540773595e-01 -5.781780503537821e-01 -5.779072127885909e-01 - -5.776361421027820e-01 -5.773648392415993e-01 -5.770933058481036e-01 -5.768215427543451e-01 -5.765495506173008e-01 - -5.762773307782053e-01 -5.760048843724456e-01 -5.757322122309633e-01 -5.754593149355522e-01 -5.751861936930261e-01 - -5.749128500443350e-01 -5.746392847733658e-01 -5.743654986749642e-01 -5.740914927526973e-01 -5.738172681170074e-01 - -5.735428256834612e-01 -5.732681661997935e-01 -5.729932909950833e-01 -5.727182011898047e-01 -5.724428973589288e-01 - -5.721673806475209e-01 -5.718916522032619e-01 -5.716157126986885e-01 -5.713395629769044e-01 -5.710632040862346e-01 - -5.707866372440725e-01 -5.705098634203313e-01 -5.702328834166335e-01 -5.699556980810941e-01 -5.696783084118523e-01 - -5.694007154024264e-01 -5.691229196446771e-01 -5.688449222662509e-01 -5.685667247951188e-01 -5.682883277592247e-01 - -5.680097317796297e-01 -5.677309379467054e-01 -5.674519473718960e-01 -5.671727608332666e-01 -5.668933787438524e-01 - -5.666138024324125e-01 -5.663340332775648e-01 -5.660540719736767e-01 -5.657739191147048e-01 -5.654935755198692e-01 - -5.652130424887296e-01 -5.649323205844615e-01 -5.646514102596061e-01 -5.643703131320561e-01 -5.640890302500955e-01 - -5.638075621229782e-01 -5.635259096013298e-01 -5.632440735413435e-01 -5.629620547371306e-01 -5.626798540413637e-01 - -5.623974724401825e-01 -5.621149109968532e-01 -5.618321704141040e-01 -5.615492514232792e-01 -5.612661549867731e-01 - -5.609828820346520e-01 -5.606994332802816e-01 -5.604158091721365e-01 -5.601320109850756e-01 -5.598480400285579e-01 - -5.595638966628304e-01 -5.592795815381203e-01 -5.589950956088516e-01 -5.587104398719418e-01 -5.584256150214867e-01 - -5.581406216413944e-01 -5.578554608147975e-01 -5.575701335442586e-01 -5.572846406020895e-01 -5.569989825973618e-01 - -5.567131602740183e-01 -5.564271745453506e-01 -5.561410260628522e-01 -5.558547156725416e-01 -5.555682445647333e-01 - -5.552816133007876e-01 -5.549948224318785e-01 -5.547078730025937e-01 -5.544207659049382e-01 -5.541335017868810e-01 - -5.538460810525171e-01 -5.535585047530838e-01 -5.532707741030544e-01 -5.529828895161875e-01 -5.526948516856666e-01 - -5.524066615722431e-01 -5.521183198617187e-01 -5.518298271294942e-01 -5.515411840216864e-01 -5.512523916981388e-01 - -5.509634510475757e-01 -5.506743625070015e-01 -5.503851268106821e-01 -5.500957448096843e-01 -5.498062173123895e-01 - -5.495165448046009e-01 -5.492267279674086e-01 -5.489367680360671e-01 -5.486466657159732e-01 -5.483564214808752e-01 - -5.480660360175322e-01 -5.477755101695411e-01 -5.474848446983241e-01 -5.471940399297857e-01 -5.469030967097296e-01 - -5.466120162347039e-01 -5.463207992130580e-01 -5.460294461220425e-01 -5.457379574365921e-01 -5.454463341419615e-01 - -5.451545769787555e-01 -5.448626863052353e-01 -5.445706629798505e-01 -5.442785079610155e-01 -5.439862220351145e-01 - -5.436938056623958e-01 -5.434012594168094e-01 -5.431085842649811e-01 -5.428157805859503e-01 -5.425228488112607e-01 - -5.422297902211034e-01 -5.419366056396356e-01 -5.416432955189590e-01 -5.413498603513526e-01 -5.410563008101139e-01 - -5.407626176406882e-01 -5.404688113584152e-01 -5.401748827259091e-01 -5.398808327262222e-01 -5.395866619984641e-01 - -5.392923710452394e-01 -5.389979603718316e-01 -5.387034307479797e-01 -5.384087828255361e-01 -5.381140170098579e-01 - -5.378191341794292e-01 -5.375241352697128e-01 -5.372290208939874e-01 -5.369337913756430e-01 -5.366384472427702e-01 - -5.363429897090184e-01 -5.360474189692397e-01 -5.357517350808286e-01 -5.354559397287709e-01 -5.351600336380363e-01 - -5.348640167550405e-01 -5.345678898586708e-01 -5.342716537895550e-01 -5.339753091509816e-01 -5.336788560795809e-01 - -5.333822952812678e-01 -5.330856281219807e-01 -5.327888549366336e-01 -5.324919760228772e-01 -5.321949921530423e-01 - -5.318979038948367e-01 -5.316007117591099e-01 -5.313034163655616e-01 -5.310060185016283e-01 -5.307085188690476e-01 - -5.304109178113635e-01 -5.301132159560333e-01 -5.298154141057816e-01 -5.295175129068631e-01 -5.292195125739295e-01 - -5.289214133220888e-01 -5.286232164928936e-01 -5.283249229043371e-01 -5.280265326905970e-01 -5.277280463629660e-01 - -5.274294646406563e-01 -5.271307882435877e-01 -5.268320172699235e-01 -5.265331522204252e-01 -5.262341943956992e-01 - -5.259351442515741e-01 -5.256360020246456e-01 -5.253367683007200e-01 -5.250374438802079e-01 -5.247380293156688e-01 - -5.244385244793137e-01 -5.241389303158239e-01 -5.238392481089597e-01 -5.235394779437145e-01 -5.232396201567239e-01 - -5.229396754457293e-01 -5.226396444439171e-01 -5.223395275325885e-01 -5.220393250130385e-01 -5.217390378529512e-01 - -5.214386667612969e-01 -5.211382119631184e-01 -5.208376739941909e-01 -5.205370535049869e-01 -5.202363510969753e-01 - -5.199355670763710e-01 -5.196347019022574e-01 -5.193337564915598e-01 -5.190327313042545e-01 -5.187316266472318e-01 - -5.184304431068453e-01 -5.181291813913007e-01 -5.178278420262173e-01 -5.175264249304404e-01 -5.172249309061349e-01 - -5.169233612064826e-01 -5.166217158673360e-01 -5.163199951550123e-01 -5.160181998004911e-01 -5.157163303784532e-01 - -5.154143871836301e-01 -5.151123703899823e-01 -5.148102810445049e-01 -5.145081200022412e-01 -5.142058873966443e-01 - -5.139035834879907e-01 -5.136012088439446e-01 -5.132987643470369e-01 -5.129962500176725e-01 -5.126936660139045e-01 - -5.123910137907831e-01 -5.120882937169244e-01 -5.117855056864241e-01 -5.114826505830118e-01 -5.111797289351894e-01 - -5.108767409175631e-01 -5.105736869791608e-01 -5.102705678009448e-01 -5.099673841164564e-01 -5.096641361609235e-01 - -5.093608243087677e-01 -5.090574492425100e-01 -5.087540114820200e-01 -5.084505112619658e-01 -5.081469486274651e-01 - -5.078433245912960e-01 -5.075396400795943e-01 -5.072358951124865e-01 -5.069320899536702e-01 -5.066282251477461e-01 - -5.063243014155288e-01 -5.060203189866231e-01 -5.057162780382299e-01 -5.054121795257869e-01 -5.051080240346536e-01 - -5.048038117428125e-01 -5.044995428560932e-01 -5.041952179946867e-01 -5.038908379779851e-01 -5.035864027540428e-01 - -5.032819126747086e-01 -5.029773687584369e-01 -5.026727713803431e-01 -5.023681207203433e-01 -5.020634170773620e-01 - -5.017586611304518e-01 -5.014538534087800e-01 -5.011489939472488e-01 -5.008440834008399e-01 -5.005391225202214e-01 - -5.002341114848970e-01 -4.999290507534227e-01 -4.996239408965545e-01 -4.993187821357916e-01 -4.990135746184980e-01 - -4.987083187010172e-01 -4.984030154770353e-01 -4.980976654859903e-01 -4.977922686591017e-01 -4.974868253646026e-01 - -4.971813362150598e-01 -4.968758018164073e-01 -4.965702219796178e-01 -4.962645970518764e-01 -4.959589283986423e-01 - -4.956532161259331e-01 -4.953474601672504e-01 -4.950416611894621e-01 -4.947358197709370e-01 -4.944299362131679e-01 - -4.941240104625670e-01 -4.938180432013966e-01 -4.935120353360559e-01 -4.932059869696777e-01 -4.928998983832586e-01 - -4.925937700937396e-01 -4.922876025288242e-01 -4.919813957951697e-01 -4.916751499430368e-01 -4.913688660561277e-01 - -4.910625447982750e-01 -4.907561860728009e-01 -4.904497902858990e-01 -4.901433579647613e-01 -4.898368894758774e-01 - -4.895303847877975e-01 -4.892238442443610e-01 -4.889172690570770e-01 -4.886106594399146e-01 -4.883040152916479e-01 - -4.879973371198497e-01 -4.876906255185612e-01 -4.873838808516193e-01 -4.870771028969680e-01 -4.867702923235035e-01 - -4.864634502410182e-01 -4.861565765237592e-01 -4.858496713307078e-01 -4.855427352755911e-01 -4.852357685536697e-01 - -4.849287714451036e-01 -4.846217444589359e-01 -4.843146879997467e-01 -4.840076025123002e-01 -4.837004885060202e-01 - -4.833933461066379e-01 -4.830861755003688e-01 -4.827789772517898e-01 -4.824717516127337e-01 -4.821644988235214e-01 - -4.818572195031119e-01 -4.815499140763169e-01 -4.812425828318353e-01 -4.809352261296052e-01 -4.806278443199989e-01 - -4.803204376463540e-01 -4.800130060714603e-01 -4.797055501717924e-01 -4.793980709573083e-01 -4.790905684347367e-01 - -4.787830426340720e-01 -4.784754939887473e-01 -4.781679231200341e-01 -4.778603302286951e-01 -4.775527150015833e-01 - -4.772450784284375e-01 -4.769374213667171e-01 -4.766297434623847e-01 -4.763220450397429e-01 -4.760143266869929e-01 - -4.757065886153464e-01 -4.753988310011543e-01 -4.750910541528841e-01 -4.747832586964973e-01 -4.744754450010169e-01 - -4.741676132522562e-01 -4.738597638648681e-01 -4.735518971269201e-01 -4.732440131603057e-01 -4.729361121339242e-01 - -4.726281945136708e-01 -4.723202610280838e-01 -4.720123119889466e-01 -4.717043475548789e-01 -4.713963678930571e-01 - -4.710883732580126e-01 -4.707803639362851e-01 -4.704723402372425e-01 -4.701643027667922e-01 -4.698562520096238e-01 - -4.695481878708884e-01 -4.692401107063794e-01 -4.689320210638210e-01 -4.686239190614940e-01 -4.683158048406638e-01 - -4.680076787162389e-01 -4.676995413185929e-01 -4.673913930202820e-01 -4.670832339045677e-01 -4.667750641928977e-01 - -4.664668842720264e-01 -4.661586945788764e-01 -4.658504950199774e-01 -4.655422858974875e-01 -4.652340682220931e-01 - -4.649258420178881e-01 -4.646176071935555e-01 -4.643093642460228e-01 -4.640011135361189e-01 -4.636928552533583e-01 - -4.633845894780055e-01 -4.630763167063440e-01 -4.627680375263447e-01 -4.624597520114774e-01 -4.621514604268375e-01 - -4.618431632080228e-01 -4.615348605890552e-01 -4.612265525685530e-01 -4.609182391698630e-01 -4.606099213200685e-01 - -4.603015994943055e-01 -4.599932734377760e-01 -4.596849434943749e-01 -4.593766101319814e-01 -4.590682736286037e-01 - -4.587599339472412e-01 -4.584515913122191e-01 -4.581432465762054e-01 -4.578348999443045e-01 -4.575265513883392e-01 - -4.572182012155285e-01 -4.569098498253546e-01 -4.566014974456956e-01 -4.562931438038699e-01 -4.559847894939479e-01 - -4.556764355440957e-01 -4.553680818446301e-01 -4.550597283221777e-01 -4.547513752454754e-01 -4.544430231318768e-01 - -4.541346721146189e-01 -4.538263219879204e-01 -4.535179736207505e-01 -4.532096276207381e-01 -4.529012837320638e-01 - -4.525929421989657e-01 -4.522846033793929e-01 -4.519762674029318e-01 -4.516679344715044e-01 -4.513596049388520e-01 - -4.510512793496801e-01 -4.507429578901284e-01 -4.504346405869434e-01 -4.501263277269192e-01 -4.498180196893253e-01 - -4.495097167463535e-01 -4.492014186979058e-01 -4.488931259139300e-01 -4.485848392328776e-01 -4.482765586745183e-01 - -4.479682843350483e-01 -4.476600166157323e-01 -4.473517555800268e-01 -4.470435013321629e-01 -4.467352542154915e-01 - -4.464270145748750e-01 -4.461187827567155e-01 -4.458105590951706e-01 -4.455023436689998e-01 -4.451941365719282e-01 - -4.448859382022067e-01 -4.445777486373541e-01 -4.442695679571050e-01 -4.439613968717006e-01 -4.436532356916815e-01 - -4.433450843880059e-01 -4.430369431657580e-01 -4.427288122616561e-01 -4.424206918620519e-01 -4.421125820372482e-01 - -4.418044832064567e-01 -4.414963960811867e-01 -4.411883204960218e-01 -4.408802564087612e-01 -4.405722043668788e-01 - -4.402641646390490e-01 -4.399561373068210e-01 -4.396481224088197e-01 -4.393401203468038e-01 -4.390321316119934e-01 - -4.387241564347777e-01 -4.384161947343386e-01 -4.381082465266398e-01 -4.378003125430411e-01 -4.374923928277115e-01 - -4.371844871230922e-01 -4.368765963346815e-01 -4.365687207997857e-01 -4.362608601883623e-01 -4.359530147661063e-01 - -4.356451849773876e-01 -4.353373711547212e-01 -4.350295729831375e-01 -4.347217906709347e-01 -4.344140253247259e-01 - -4.341062767701542e-01 -4.337985447574569e-01 -4.334908298973194e-01 -4.331831324142745e-01 -4.328754522838512e-01 - -4.325677895304312e-01 -4.322601446380396e-01 -4.319525182069930e-01 -4.316449103351276e-01 -4.313373209430619e-01 - -4.310297500384340e-01 -4.307221981580691e-01 -4.304146654764764e-01 -4.301071518609876e-01 -4.297996578556980e-01 - -4.294921838432407e-01 -4.291847298181669e-01 -4.288772959356691e-01 -4.285698824691314e-01 -4.282624896947286e-01 - -4.279551173581843e-01 -4.276477655542056e-01 -4.273404353166645e-01 -4.270331268873108e-01 -4.267258400671970e-01 - -4.264185747737768e-01 -4.261113314513503e-01 -4.258041105111009e-01 -4.254969114260224e-01 -4.251897346526543e-01 - -4.248825811839114e-01 -4.245754507348872e-01 -4.242683433304872e-01 -4.239612594489042e-01 -4.236541990429175e-01 - -4.233471621233121e-01 -4.230401489624036e-01 -4.227331599159186e-01 -4.224261953202194e-01 -4.221192554076946e-01 - -4.218123401221037e-01 -4.215054495276057e-01 -4.211985840665567e-01 -4.208917437341202e-01 -4.205849285470991e-01 - -4.202781391077526e-01 -4.199713756820169e-01 -4.196646382796324e-01 -4.193579269625680e-01 -4.190512419898234e-01 - -4.187445835885104e-01 -4.184379514023820e-01 -4.181313458657921e-01 -4.178247679943504e-01 -4.175182174706034e-01 - -4.172116941638125e-01 -4.169051985589959e-01 -4.165987308801878e-01 -4.162922910262470e-01 -4.159858787333477e-01 - -4.156794948456864e-01 -4.153731400237493e-01 -4.150668138055245e-01 -4.147605162480433e-01 -4.144542477033889e-01 - -4.141480084083939e-01 -4.138417983331389e-01 -4.135356175072968e-01 -4.132294665425894e-01 -4.129233456523720e-01 - -4.126172547353913e-01 -4.123111939769975e-01 -4.120051637027982e-01 -4.116991641480549e-01 -4.113931948631621e-01 - -4.110872561089984e-01 -4.107813489720965e-01 -4.104754732505308e-01 -4.101696286974395e-01 -4.098638156566466e-01 - -4.095580344057681e-01 -4.092522850492459e-01 -4.089465675148873e-01 -4.086408821301867e-01 -4.083352292811099e-01 - -4.080296090087697e-01 -4.077240214925531e-01 -4.074184669621912e-01 -4.071129454474836e-01 -4.068074568206541e-01 - -4.065020011172992e-01 -4.061965792344674e-01 -4.058911914234347e-01 -4.055858372701102e-01 -4.052805169731385e-01 - -4.049752308691225e-01 -4.046699791746853e-01 -4.043647616984872e-01 -4.040595785275335e-01 -4.037544302850327e-01 - -4.034493171430220e-01 -4.031442391412985e-01 -4.028391964411297e-01 -4.025341890399178e-01 -4.022292169515432e-01 - -4.019242804318620e-01 -4.016193797575413e-01 -4.013145151618574e-01 -4.010096867767989e-01 -4.007048946739946e-01 - -4.004001389575452e-01 -4.000954199442892e-01 -3.997907376333255e-01 -3.994860918450180e-01 -3.991814831388100e-01 - -3.988769118682245e-01 -3.985723779299208e-01 -3.982678813725196e-01 -3.979634224118638e-01 -3.976590013430957e-01 - -3.973546179557737e-01 -3.970502723184750e-01 -3.967459652757308e-01 -3.964416967373386e-01 -3.961374664325438e-01 - -3.958332748416728e-01 -3.955291221412219e-01 -3.952250082276700e-01 -3.949209329883424e-01 -3.946168969005399e-01 - -3.943129006192436e-01 -3.940089438207542e-01 -3.937050264421336e-01 -3.934011488327164e-01 -3.930973111392007e-01 - -3.927935133510078e-01 -3.924897554398895e-01 -3.921860379028622e-01 -3.918823611410527e-01 -3.915787251272155e-01 - -3.912751296302741e-01 -3.909715747221262e-01 -3.906680610479274e-01 -3.903645884467465e-01 -3.900611567141484e-01 - -3.897577665105899e-01 -3.894544180732338e-01 -3.891511112918067e-01 -3.888478460867855e-01 -3.885446227676595e-01 - -3.882414417069796e-01 -3.879383024897914e-01 -3.876352053351357e-01 -3.873321510269954e-01 -3.870291394376005e-01 - -3.867261704550462e-01 -3.864232442776043e-01 -3.861203610538394e-01 -3.858175208256477e-01 -3.855147235659399e-01 - -3.852119696012977e-01 -3.849092593053318e-01 -3.846065928280623e-01 -3.843039700003283e-01 -3.840013907871894e-01 - -3.836988557264463e-01 -3.833963646642737e-01 -3.830939173673272e-01 -3.827915146861536e-01 -3.824891567344230e-01 - -3.821868431312930e-01 -3.818845742897094e-01 -3.815823505036508e-01 -3.812801717050347e-01 -3.809780375081945e-01 - -3.806759481537249e-01 -3.803739045452896e-01 -3.800719066553854e-01 -3.797699542729503e-01 -3.794680474344709e-01 - -3.791661864151066e-01 -3.788643713579414e-01 -3.785626020610045e-01 -3.782608787892401e-01 -3.779592019649877e-01 - -3.776575717504184e-01 -3.773559879986245e-01 -3.770544506277551e-01 -3.767529601718599e-01 -3.764515165488658e-01 - -3.761501194541416e-01 -3.758487697291592e-01 -3.755474675286999e-01 -3.752462123142175e-01 -3.749450044400430e-01 - -3.746438442933219e-01 -3.743427319385532e-01 -3.740416670860849e-01 -3.737406497610264e-01 -3.734396805632812e-01 - -3.731387597991040e-01 -3.728378873981389e-01 -3.725370629746288e-01 -3.722362869751284e-01 -3.719355598195744e-01 - -3.716348809475082e-01 -3.713342505611615e-01 -3.710336692885385e-01 -3.707331373206220e-01 -3.704326544188714e-01 - -3.701322203470578e-01 -3.698318357923215e-01 -3.695315007664240e-01 -3.692312147431765e-01 -3.689309784821330e-01 - -3.686307923312130e-01 -3.683306558583173e-01 -3.680305692832940e-01 -3.677305328772401e-01 -3.674305466155561e-01 - -3.671306102835627e-01 -3.668307239979260e-01 -3.665308885123383e-01 -3.662311039528895e-01 -3.659313700864294e-01 - -3.656316867340536e-01 -3.653320542170925e-01 -3.650324728818179e-01 -3.647329423252613e-01 -3.644334627823841e-01 - -3.641340348652060e-01 -3.638346584224414e-01 -3.635353333854674e-01 -3.632360599381753e-01 -3.629368383087880e-01 - -3.626376683911322e-01 -3.623385498640058e-01 -3.620394834143431e-01 -3.617404694429358e-01 -3.614415075289109e-01 - -3.611425978472304e-01 -3.608437406892576e-01 -3.605449360396625e-01 -3.602461837170217e-01 -3.599474837636126e-01 - -3.596488368123176e-01 -3.593502429497555e-01 -3.590517019950174e-01 -3.587532141258951e-01 -3.584547794364419e-01 - -3.581563978967544e-01 -3.578580694598877e-01 -3.575597943932133e-01 -3.572615731273898e-01 -3.569634054963255e-01 - -3.566652915450074e-01 -3.563672316398869e-01 -3.560692255181004e-01 -3.557712730433470e-01 -3.554733745722332e-01 - -3.551755304325120e-01 -3.548777407381354e-01 -3.545800053200450e-01 -3.542823243820459e-01 -3.539846981602633e-01 - -3.536871265064687e-01 -3.533896092936707e-01 -3.530921466577667e-01 -3.527947392696623e-01 -3.524973870763591e-01 - -3.522000896417020e-01 -3.519028473926252e-01 -3.516056606257513e-01 -3.513085292624320e-01 -3.510114529438408e-01 - -3.507144318797571e-01 -3.504174668509267e-01 -3.501205576763053e-01 -3.498237041407538e-01 -3.495269064579332e-01 - -3.492301648012658e-01 -3.489334792023763e-01 -3.486368495320163e-01 -3.483402759532310e-01 -3.480437587608516e-01 - -3.477472981563033e-01 -3.474508940116457e-01 -3.471545462266357e-01 -3.468582552838557e-01 -3.465620210594309e-01 - -3.462658431862374e-01 -3.459697223261950e-01 -3.456736587298253e-01 -3.453776521244075e-01 -3.450817025977070e-01 - -3.447858103250944e-01 -3.444899754033867e-01 -3.441941976114102e-01 -3.438984770490408e-01 -3.436028143288083e-01 - -3.433072093931014e-01 -3.430116620696204e-01 -3.427161725111446e-01 -3.424207408695913e-01 -3.421253671506906e-01 - -3.418300511322294e-01 -3.415347931565998e-01 -3.412395936962896e-01 -3.409444525560181e-01 -3.406493696743920e-01 - -3.403543451949735e-01 -3.400593792856730e-01 -3.397644718554241e-01 -3.394696227303268e-01 -3.391748324448361e-01 - -3.388801012525273e-01 -3.385854289098167e-01 -3.382908154719833e-01 -3.379962610967925e-01 -3.377017658856785e-01 - -3.374073296405456e-01 -3.371129523992028e-01 -3.368186347618567e-01 -3.365243767275647e-01 -3.362301780997549e-01 - -3.359360390044588e-01 -3.356419595939377e-01 -3.353479398983790e-01 -3.350539796822969e-01 -3.347600792157354e-01 - -3.344662390001809e-01 -3.341724588683134e-01 -3.338787387386647e-01 -3.335850787505256e-01 -3.332914790393797e-01 - -3.329979395469141e-01 -3.327044601082655e-01 -3.324110411740308e-01 -3.321176830325031e-01 -3.318243854727410e-01 - -3.315311485033696e-01 -3.312379722613320e-01 -3.309448568815591e-01 -3.306518021855764e-01 -3.303588081394571e-01 - -3.300658753265905e-01 -3.297730038003383e-01 -3.294801933460689e-01 -3.291874440822869e-01 -3.288947561448500e-01 - -3.286021295596533e-01 -3.283095641084477e-01 -3.280170600152969e-01 -3.277246178092963e-01 -3.274322373144385e-01 - -3.271399184133136e-01 -3.268476612759387e-01 -3.265554660369243e-01 -3.262633326374516e-01 -3.259712608638953e-01 - -3.256792511518811e-01 -3.253873038511834e-01 -3.250954187049387e-01 -3.248035957166725e-01 -3.245118350464998e-01 - -3.242201368055027e-01 -3.239285008232202e-01 -3.236369270127419e-01 -3.233454159517716e-01 -3.230539677655248e-01 - -3.227625822208953e-01 -3.224712593689608e-01 -3.221799993547627e-01 -3.218888022707884e-01 -3.215976678728723e-01 - -3.213065962862219e-01 -3.210155880538063e-01 -3.207246430922022e-01 -3.204337612603162e-01 -3.201429426545060e-01 - -3.198521874188910e-01 -3.195614955407240e-01 -3.192708667833873e-01 -3.189803015317205e-01 -3.186898001852494e-01 - -3.183993624745159e-01 -3.181089883645859e-01 -3.178186780215274e-01 -3.175284315788672e-01 -3.172382488912609e-01 - -3.169481298117736e-01 -3.166580748847834e-01 -3.163680842820584e-01 -3.160781577505636e-01 -3.157882953403168e-01 - -3.154984971942622e-01 -3.152087634033934e-01 -3.149190937439705e-01 -3.146294882798918e-01 -3.143399475483734e-01 - -3.140504715109739e-01 -3.137610600081304e-01 -3.134717131245625e-01 -3.131824310053718e-01 -3.128932136614712e-01 - -3.126040608259110e-01 -3.123149728003283e-01 -3.120259500284038e-01 -3.117369923103007e-01 -3.114480995811182e-01 - -3.111592719695180e-01 -3.108705096041851e-01 -3.105818123704323e-01 -3.102931800853200e-01 -3.100046132424714e-01 - -3.097161120700553e-01 -3.094276763275429e-01 -3.091393060498078e-01 -3.088510013669117e-01 -3.085627623567511e-01 - -3.082745888090075e-01 -3.079864807413559e-01 -3.076984387104112e-01 -3.074104627037881e-01 -3.071225525229602e-01 - -3.068347082674415e-01 -3.065469300647063e-01 -3.062592179233167e-01 -3.059715715883658e-01 -3.056839913222955e-01 - -3.053964776128304e-01 -3.051090302429263e-01 -3.048216491115613e-01 -3.045343343664140e-01 -3.042470861256498e-01 - -3.039599042912569e-01 -3.036727886539801e-01 -3.033857396783212e-01 -3.030987576532087e-01 -3.028118423290159e-01 - -3.025249936916685e-01 -3.022382118572411e-01 -3.019514969324824e-01 -3.016648487319269e-01 -3.013782672163520e-01 - -3.010917529380510e-01 -3.008053059332530e-01 -3.005189259718208e-01 -3.002326131255288e-01 -2.999463675243501e-01 - -2.996601892115071e-01 -2.993740779431134e-01 -2.990880338991673e-01 -2.988020575697556e-01 -2.985161488129333e-01 - -2.982303074956766e-01 -2.979445337070337e-01 -2.976588275957710e-01 -2.973731891105994e-01 -2.970876179949718e-01 - -2.968021146693378e-01 -2.965166794729635e-01 -2.962313121299224e-01 -2.959460126205053e-01 -2.956607810824475e-01 - -2.953756176130727e-01 -2.950905220348498e-01 -2.948054942542040e-01 -2.945205348259674e-01 -2.942356438398593e-01 - -2.939508210351428e-01 -2.936660664737455e-01 -2.933813802767271e-01 -2.930967624892026e-01 -2.928122128931882e-01 - -2.925277316158055e-01 -2.922433191494531e-01 -2.919589753765323e-01 -2.916747001400424e-01 -2.913904935350139e-01 - -2.911063557118664e-01 -2.908222866434848e-01 -2.905382860439090e-01 -2.902543542778646e-01 -2.899704917370004e-01 - -2.896866981425306e-01 -2.894029734511842e-01 -2.891193178139609e-01 -2.888357313345801e-01 -2.885522138545054e-01 - -2.882687652243500e-01 -2.879853859636904e-01 -2.877020762131379e-01 -2.874188357014512e-01 -2.871356645025479e-01 - -2.868525627422169e-01 -2.865695304469716e-01 -2.862865673963798e-01 -2.860036736642309e-01 -2.857208497673618e-01 - -2.854380956360413e-01 -2.851554110854154e-01 -2.848727961880673e-01 -2.845902510831507e-01 -2.843077757793696e-01 - -2.840253700094237e-01 -2.837430340397069e-01 -2.834607682748240e-01 -2.831785725328111e-01 -2.828964467316310e-01 - -2.826143909542473e-01 -2.823324053101364e-01 -2.820504896922502e-01 -2.817686439371250e-01 -2.814868685136343e-01 - -2.812051636152371e-01 -2.809235289745332e-01 -2.806419646055033e-01 -2.803604706362606e-01 -2.800790471610514e-01 - -2.797976939416736e-01 -2.795164109639519e-01 -2.792351987736799e-01 -2.789540573481899e-01 -2.786729864814172e-01 - -2.783919862645312e-01 -2.781110567914744e-01 -2.778301980476193e-01 -2.775494098202491e-01 -2.772686923282846e-01 - -2.769880459823117e-01 -2.767074706347814e-01 -2.764269661749121e-01 -2.761465326612197e-01 -2.758661702373058e-01 - -2.755858788282252e-01 -2.753056582075042e-01 -2.750255088041456e-01 -2.747454308713073e-01 -2.744654241403574e-01 - -2.741854886058927e-01 -2.739056243892176e-01 -2.736258315782464e-01 -2.733461099674180e-01 -2.730664595012521e-01 - -2.727868807168794e-01 -2.725073736368404e-01 -2.722279380246611e-01 -2.719485739535283e-01 -2.716692815376729e-01 - -2.713900607905190e-01 -2.711109114418696e-01 -2.708318336740216e-01 -2.705528279896257e-01 -2.702738942089605e-01 - -2.699950321750810e-01 -2.697162419812612e-01 -2.694375237750356e-01 -2.691588774953904e-01 -2.688803028674867e-01 - -2.686018002777490e-01 -2.683233700490228e-01 -2.680450119322323e-01 -2.677667258920440e-01 -2.674885120321642e-01 - -2.672103704327183e-01 -2.669323009240009e-01 -2.666543034142266e-01 -2.663763784024609e-01 -2.660985259744725e-01 - -2.658207458961011e-01 -2.655430381891060e-01 -2.652654029648259e-01 -2.649878402880381e-01 -2.647103499069445e-01 - -2.644329319184849e-01 -2.641555868035665e-01 -2.638783144422805e-01 -2.636011146840161e-01 -2.633239876271375e-01 - -2.630469333706403e-01 -2.627699518665801e-01 -2.624930428881614e-01 -2.622162067361601e-01 -2.619394437425979e-01 - -2.616627537197243e-01 -2.613861365959049e-01 -2.611095924398818e-01 -2.608331213683194e-01 -2.605567232565551e-01 - -2.602803979638560e-01 -2.600041459185203e-01 -2.597279672559259e-01 -2.594518617711524e-01 -2.591758294668244e-01 - -2.588998704444723e-01 -2.586239847880919e-01 -2.583481722507706e-01 -2.580724328621725e-01 -2.577967671126083e-01 - -2.575211749406902e-01 -2.572456561780725e-01 -2.569702108956164e-01 -2.566948391959332e-01 -2.564195410517088e-01 - -2.561443162003717e-01 -2.558691649278121e-01 -2.555940876367002e-01 -2.553190840839927e-01 -2.550441541814838e-01 - -2.547692980445108e-01 -2.544945157803290e-01 -2.542198072584164e-01 -2.539451722830000e-01 -2.536706112997469e-01 - -2.533961245035316e-01 -2.531217116489478e-01 -2.528473727232912e-01 -2.525731078267265e-01 -2.522989170513077e-01 - -2.520248001810547e-01 -2.517507572028029e-01 -2.514767886096237e-01 -2.512028943623831e-01 -2.509290742545349e-01 - -2.506553283625735e-01 -2.503816568034038e-01 -2.501080595782905e-01 -2.498345364108095e-01 -2.495610875124447e-01 - -2.492877133133172e-01 -2.490144136112123e-01 -2.487411882994743e-01 -2.484680374856057e-01 -2.481949612635986e-01 - -2.479219595287280e-01 -2.476490320734136e-01 -2.473761793087864e-01 -2.471034014703498e-01 -2.468306982957061e-01 - -2.465580697844871e-01 -2.462855160432138e-01 -2.460130371204629e-01 -2.457406328233614e-01 -2.454683031113906e-01 - -2.451960484794311e-01 -2.449238689415910e-01 -2.446517642712055e-01 -2.443797345227543e-01 -2.441077797933181e-01 - -2.438359000947776e-01 -2.435640951889690e-01 -2.432923652315951e-01 -2.430207106571287e-01 -2.427491313175689e-01 - -2.424776270783986e-01 -2.422061980074125e-01 -2.419348442072336e-01 -2.416635656192684e-01 -2.413923620306189e-01 - -2.411212337762792e-01 -2.408501811283544e-01 -2.405792038734625e-01 -2.403083019688687e-01 -2.400374754936993e-01 - -2.397667245256450e-01 -2.394960488977194e-01 -2.392254485194238e-01 -2.389549238762380e-01 -2.386844750244205e-01 - -2.384141017100180e-01 -2.381438039886236e-01 -2.378735819631148e-01 -2.376034356560101e-01 -2.373333648418426e-01 - -2.370633696160408e-01 -2.367934504134751e-01 -2.365236071336530e-01 -2.362538396334552e-01 -2.359841479713349e-01 - -2.357145322333765e-01 -2.354449923780104e-01 -2.351755281955192e-01 -2.349061399838227e-01 -2.346368280467886e-01 - -2.343675921502802e-01 -2.340984322401892e-01 -2.338293484224673e-01 -2.335603407944267e-01 -2.332914091991481e-01 - -2.330225534791031e-01 -2.327537740958542e-01 -2.324850711724544e-01 -2.322164444575208e-01 -2.319478939696494e-01 - -2.316794198107119e-01 -2.314110220364787e-01 -2.311427004172850e-01 -2.308744549913938e-01 -2.306062862221652e-01 - -2.303381940399467e-01 -2.300701782673901e-01 -2.298022389505013e-01 -2.295343762055658e-01 -2.292665900251787e-01 - -2.289988801367178e-01 -2.287312467963517e-01 -2.284636903804389e-01 -2.281962106639611e-01 -2.279288075702767e-01 - -2.276614812041137e-01 -2.273942316314865e-01 -2.271270587234099e-01 -2.268599623216859e-01 -2.265929428586625e-01 - -2.263260004971463e-01 -2.260591349680134e-01 -2.257923462859340e-01 -2.255256345570404e-01 -2.252589998316905e-01 - -2.249924418873443e-01 -2.247259607239798e-01 -2.244595568451081e-01 -2.241932301870257e-01 -2.239269805236896e-01 - -2.236608079513920e-01 -2.233947125724077e-01 -2.231286943677930e-01 -2.228627530899186e-01 -2.225968889349937e-01 - -2.223311022938890e-01 -2.220653929888047e-01 -2.217997609137618e-01 -2.215342061492806e-01 -2.212687287997047e-01 - -2.210033287645195e-01 -2.207380058226258e-01 -2.204727603658667e-01 -2.202075926188733e-01 -2.199425023254976e-01 - -2.196774894791217e-01 -2.194125541827232e-01 -2.191476964953657e-01 -2.188829162198361e-01 -2.186182133017065e-01 - -2.183535882155842e-01 -2.180890409721393e-01 -2.178245713492862e-01 -2.175601793915103e-01 -2.172958651996608e-01 - -2.170316287941991e-01 -2.167674699222372e-01 -2.165033887351043e-01 -2.162393856655618e-01 -2.159754605317784e-01 - -2.157116131976179e-01 -2.154478437626437e-01 -2.151841523053365e-01 -2.149205387568082e-01 -2.146570029331132e-01 - -2.143935451423346e-01 -2.141301656253313e-01 -2.138668641770334e-01 -2.136036407648879e-01 -2.133404954698548e-01 - -2.130774283590253e-01 -2.128144392711416e-01 -2.125515281171839e-01 -2.122886953403734e-01 -2.120259409959825e-01 - -2.117632648531722e-01 -2.115006669388265e-01 -2.112381473557379e-01 -2.109757061544524e-01 -2.107133431005909e-01 - -2.104510582708100e-01 -2.101888520817322e-01 -2.099267244352251e-01 -2.096646751892664e-01 -2.094027043922436e-01 - -2.091408121382980e-01 -2.088789983898283e-01 -2.086172629233026e-01 -2.083556060294393e-01 -2.080940280081475e-01 - -2.078325286261216e-01 -2.075711078316715e-01 -2.073097657230958e-01 -2.070485023681648e-01 -2.067873176254528e-01 - -2.065262113703670e-01 -2.062651840261599e-01 -2.060042356935543e-01 -2.057433661320316e-01 -2.054825753736384e-01 - -2.052218635119340e-01 -2.049612305777034e-01 -2.047006763593381e-01 -2.044402009029163e-01 -2.041798046444743e-01 - -2.039194875091236e-01 -2.036592493288050e-01 -2.033990901597007e-01 -2.031390101041152e-01 -2.028790091364410e-01 - -2.026190869860804e-01 -2.023592439213894e-01 -2.020994803209571e-01 -2.018397959336108e-01 -2.015801906636277e-01 - -2.013206646163115e-01 -2.010612178968381e-01 -2.008018503846473e-01 -2.005425618909167e-01 -2.002833527994660e-01 - -2.000242232866459e-01 -1.997651731545872e-01 -1.995062023757428e-01 -1.992473110134654e-01 -1.989884991329442e-01 - -1.987297665552775e-01 -1.984711132804359e-01 -1.982125397288479e-01 -1.979540458641874e-01 -1.976956315048893e-01 - -1.974372966986851e-01 -1.971790415364275e-01 -1.969208660181268e-01 -1.966627699138122e-01 -1.964047534115951e-01 - -1.961468168792641e-01 -1.958889601415059e-01 -1.956311830976701e-01 -1.953734858227050e-01 -1.951158683885618e-01 - -1.948583307060198e-01 -1.946008726082255e-01 -1.943434944554087e-01 -1.940861964418109e-01 -1.938289783248288e-01 - -1.935718400929853e-01 -1.933147818435645e-01 -1.930578036445209e-01 -1.928009053047615e-01 -1.925440867668252e-01 - -1.922873484836986e-01 -1.920306904586313e-01 -1.917741124759950e-01 -1.915176145882685e-01 -1.912611968971867e-01 - -1.910048594156118e-01 -1.907486018758652e-01 -1.904924244300230e-01 -1.902363275204000e-01 -1.899803109613821e-01 - -1.897243746214878e-01 -1.894685186111405e-01 -1.892127429944364e-01 -1.889570476814606e-01 -1.887014324762902e-01 - -1.884458977092228e-01 -1.881904436322386e-01 -1.879350700181010e-01 -1.876797768445363e-01 -1.874245641980662e-01 - -1.871694321106837e-01 -1.869143804464632e-01 -1.866594091449939e-01 -1.864045185802509e-01 -1.861497088150435e-01 - -1.858949796742653e-01 -1.856403311585743e-01 -1.853857633524328e-01 -1.851312763093270e-01 -1.848768697910832e-01 - -1.846225438828809e-01 -1.843682990131126e-01 -1.841141350478542e-01 -1.838600518410295e-01 -1.836060494900988e-01 - -1.833521280737523e-01 -1.830982875326949e-01 -1.828445276569093e-01 -1.825908487213151e-01 -1.823372510073639e-01 - -1.820837342990139e-01 -1.818302985608840e-01 -1.815769438919524e-01 -1.813236703339543e-01 -1.810704777470943e-01 - -1.808173660274447e-01 -1.805643355946649e-01 -1.803113865319381e-01 -1.800585185867421e-01 -1.798057318207557e-01 - -1.795530263298101e-01 -1.793004021140676e-01 -1.790478589821669e-01 -1.787953969871552e-01 -1.785430165333783e-01 - -1.782907175616041e-01 -1.780384999147782e-01 -1.777863636186671e-01 -1.775343087850783e-01 -1.772823354138563e-01 - -1.770304432439544e-01 -1.767786324996124e-01 -1.765269035206169e-01 -1.762752561209628e-01 -1.760236902365481e-01 - -1.757722059508868e-01 -1.755208033072168e-01 -1.752694821962465e-01 -1.750182424985018e-01 -1.747670845873172e-01 - -1.745160085943736e-01 -1.742650142826787e-01 -1.740141016708582e-01 -1.737632708599284e-01 -1.735125219002990e-01 - -1.732618545819516e-01 -1.730112688968157e-01 -1.727607652962038e-01 -1.725103437360838e-01 -1.722600040199003e-01 - -1.720097462053399e-01 -1.717595703957765e-01 -1.715094765937824e-01 -1.712594645505801e-01 -1.710095344617568e-01 - -1.707596867053610e-01 -1.705099210652020e-01 -1.702602374503936e-01 -1.700106359820640e-01 -1.697611167032507e-01 - -1.695116795170456e-01 -1.692623242857098e-01 -1.690130513415946e-01 -1.687638608735592e-01 -1.685147526839133e-01 - -1.682657267304136e-01 -1.680167830834059e-01 -1.677679218434041e-01 -1.675191428301483e-01 -1.672704459776749e-01 - -1.670218317162355e-01 -1.667733000505553e-01 -1.665248507843929e-01 -1.662764839848620e-01 -1.660281997331086e-01 - -1.657799980211539e-01 -1.655318786421316e-01 -1.652838417439954e-01 -1.650358877061586e-01 -1.647880163635810e-01 - -1.645402275978841e-01 -1.642925215033296e-01 -1.640448981629310e-01 -1.637973575048030e-01 -1.635498993322754e-01 - -1.633025239587731e-01 -1.630552316214122e-01 -1.628080220971913e-01 -1.625608953706327e-01 -1.623138515347123e-01 - -1.620668906280902e-01 -1.618200125176413e-01 -1.615732171440627e-01 -1.613265048790783e-01 -1.610798757703294e-01 - -1.608333296326273e-01 -1.605868664946396e-01 -1.603404864451659e-01 -1.600941895233320e-01 -1.598479755194739e-01 - -1.596018445089071e-01 -1.593557968710357e-01 -1.591098325274174e-01 -1.588639513462271e-01 -1.586181533501567e-01 - -1.583724386633118e-01 -1.581268072684121e-01 -1.578812589110151e-01 -1.576357938605635e-01 -1.573904124176000e-01 - -1.571451143885420e-01 -1.568998997115455e-01 -1.566547684551118e-01 -1.564097207009810e-01 -1.561647563377750e-01 - -1.559198752534892e-01 -1.556750777971572e-01 -1.554303640753041e-01 -1.551857339241298e-01 -1.549411873472499e-01 - -1.546967244117141e-01 -1.544523451583313e-01 -1.542080493972972e-01 -1.539638371771692e-01 -1.537197089019022e-01 - -1.534756644902717e-01 -1.532317037874507e-01 -1.529878268669247e-01 -1.527440338285302e-01 -1.525003246495042e-01 - -1.522566990917994e-01 -1.520131573865194e-01 -1.517696998607227e-01 -1.515263263105132e-01 -1.512830366842278e-01 - -1.510398310896279e-01 -1.507967095609423e-01 -1.505536719818633e-01 -1.503107182379510e-01 -1.500678487166025e-01 - -1.498250635429138e-01 -1.495823624607518e-01 -1.493397455183047e-01 -1.490972128240516e-01 -1.488547643939502e-01 - -1.486124000468938e-01 -1.483701197975273e-01 -1.481279240643807e-01 -1.478858128086334e-01 -1.476437858541442e-01 - -1.474018432575297e-01 -1.471599850901578e-01 -1.469182113447434e-01 -1.466765218581870e-01 -1.464349167991909e-01 - -1.461933964691583e-01 -1.459519607332137e-01 -1.457106095126376e-01 -1.454693428712828e-01 -1.452281609001614e-01 - -1.449870635167667e-01 -1.447460505411944e-01 -1.445051223204885e-01 -1.442642790465533e-01 -1.440235204958664e-01 - -1.437828466645076e-01 -1.435422576460715e-01 -1.433017535021517e-01 -1.430613340788666e-01 -1.428209993367665e-01 - -1.425807496580667e-01 -1.423405850452980e-01 -1.421005053276286e-01 -1.418605105748216e-01 -1.416206008760722e-01 - -1.413807762310167e-01 -1.411410364179444e-01 -1.409013815814383e-01 -1.406618121114770e-01 -1.404223278620860e-01 - -1.401829287142080e-01 -1.399436147388266e-01 -1.397043860171121e-01 -1.394652424999606e-01 -1.392261840277533e-01 - -1.389872108800275e-01 -1.387483232704581e-01 -1.385095210193419e-01 -1.382708041155041e-01 -1.380321726381191e-01 - -1.377936266235328e-01 -1.375551659356028e-01 -1.373167905196480e-01 -1.370785007699294e-01 -1.368402967462084e-01 - -1.366021782602805e-01 -1.363641453151502e-01 -1.361261980034910e-01 -1.358883363925467e-01 -1.356505602730137e-01 - -1.354128697173978e-01 -1.351752651019714e-01 -1.349377463365720e-01 -1.347003133096952e-01 -1.344629660943524e-01 - -1.342257047644556e-01 -1.339885292721434e-01 -1.337514394288152e-01 -1.335144355004790e-01 -1.332775177574095e-01 - -1.330406860095451e-01 -1.328039402156265e-01 -1.325672804621033e-01 -1.323307068237664e-01 -1.320942191803451e-01 - -1.318578174250235e-01 -1.316215019436967e-01 -1.313852728254415e-01 -1.311491298574344e-01 -1.309130730812647e-01 - -1.306771025967214e-01 -1.304412184433993e-01 -1.302054204167683e-01 -1.299697085633917e-01 -1.297340833011096e-01 - -1.294985445422908e-01 -1.292630921400970e-01 -1.290277262032818e-01 -1.287924468024440e-01 -1.285572538860320e-01 - -1.283221472565841e-01 -1.280871271607027e-01 -1.278521939245786e-01 -1.276173473594251e-01 -1.273825873815436e-01 - -1.271479140654554e-01 -1.269133275291332e-01 -1.266788276689478e-01 -1.264444143112885e-01 -1.262100878411512e-01 - -1.259758484249543e-01 -1.257416958580221e-01 -1.255076301118343e-01 -1.252736512740011e-01 -1.250397594556589e-01 - -1.248059544551782e-01 -1.245722362561283e-01 -1.243386053032582e-01 -1.241050615437150e-01 -1.238716047916152e-01 - -1.236382351439431e-01 -1.234049527007845e-01 -1.231717574487822e-01 -1.229386491649988e-01 -1.227056280466961e-01 - -1.224726944551588e-01 -1.222398481939305e-01 -1.220070891810755e-01 -1.217744175349468e-01 -1.215418333321439e-01 - -1.213093364896874e-01 -1.210769268543440e-01 -1.208446047468073e-01 -1.206123703546746e-01 -1.203802234985189e-01 - -1.201481641556592e-01 -1.199161924040098e-01 -1.196843083373426e-01 -1.194525118101599e-01 -1.192208027778711e-01 - -1.189891816158967e-01 -1.187576483334740e-01 -1.185262027772708e-01 -1.182948450325541e-01 -1.180635751718018e-01 - -1.178323931740712e-01 -1.176012988598141e-01 -1.173702923768903e-01 -1.171393740841554e-01 -1.169085438684581e-01 - -1.166778016318426e-01 -1.164471474323627e-01 -1.162165813372163e-01 -1.159861033094216e-01 -1.157557132288848e-01 - -1.155254113554128e-01 -1.152951978878259e-01 -1.150650726784410e-01 -1.148350356935617e-01 -1.146050869998271e-01 - -1.143752266983624e-01 -1.141454546633286e-01 -1.139157708150553e-01 -1.136861755297615e-01 -1.134566688685596e-01 - -1.132272506625232e-01 -1.129979209389772e-01 -1.127686797968139e-01 -1.125395272939830e-01 -1.123104632216639e-01 - -1.120814876598629e-01 -1.118526009932446e-01 -1.116238031362107e-01 -1.113950939743172e-01 -1.111664735714766e-01 - -1.109379420230661e-01 -1.107094992989161e-01 -1.104811452047023e-01 -1.102528800189790e-01 -1.100247040176238e-01 - -1.097966169898620e-01 -1.095686189066022e-01 -1.093407098806465e-01 -1.091128899944971e-01 -1.088851591239916e-01 - -1.086575171512236e-01 -1.084299644451029e-01 -1.082025011238454e-01 -1.079751270251657e-01 -1.077478421434466e-01 - -1.075206465724022e-01 -1.072935404061887e-01 -1.070665234272605e-01 -1.068395956686409e-01 -1.066127575621145e-01 - -1.063860090403522e-01 -1.061593499609373e-01 -1.059327804074918e-01 -1.057063004552603e-01 -1.054799100848440e-01 - -1.052536091459819e-01 -1.050273978363624e-01 -1.048012764247322e-01 -1.045752447992682e-01 -1.043493029044653e-01 - -1.041234507912105e-01 -1.038976885616201e-01 -1.036720161437409e-01 -1.034464334142674e-01 -1.032209407082870e-01 - -1.029955381585720e-01 -1.027702255852857e-01 -1.025450030256683e-01 -1.023198705766582e-01 -1.020948282803886e-01 - -1.018698759615270e-01 -1.016450136357437e-01 -1.014202417243671e-01 -1.011955602054591e-01 -1.009709689162001e-01 - -1.007464679013254e-01 -1.005220572777319e-01 -1.002977370772110e-01 -1.000735070732387e-01 -9.984936745539402e-02 - -9.962531858349888e-02 -9.940136027998529e-02 -9.917749246814733e-02 -9.895371525770333e-02 -9.873002873335845e-02 - -9.850643282337790e-02 -9.828292738770521e-02 -9.805951276903688e-02 -9.783618914357473e-02 -9.761295629040607e-02 - -9.738981424317925e-02 -9.716676311420755e-02 -9.694380293900719e-02 -9.672093359332221e-02 -9.649815506782670e-02 - -9.627546771326484e-02 -9.605287156919239e-02 -9.583036651098850e-02 -9.560795255252680e-02 -9.538562978098189e-02 - -9.516339824129488e-02 -9.494125774199282e-02 -9.471920843970391e-02 -9.449725071216948e-02 -9.427538438593883e-02 - -9.405360936874554e-02 -9.383192580278800e-02 -9.361033376064058e-02 -9.338883317577901e-02 -9.316742389906425e-02 - -9.294610622995669e-02 -9.272488039403920e-02 -9.250374621386263e-02 -9.228270367992475e-02 -9.206175287916113e-02 - -9.184089387273792e-02 -9.162012656935895e-02 -9.139945093572596e-02 -9.117886729658348e-02 -9.095837571294788e-02 - -9.073797605928635e-02 -9.051766837713708e-02 -9.029745274779008e-02 -9.007732920697027e-02 -8.985729759887780e-02 - -8.963735802530043e-02 -8.941751083887589e-02 -8.919775594907166e-02 -8.897809325953572e-02 -8.875852286193828e-02 - -8.853904483959285e-02 -8.831965916578795e-02 -8.810036569419880e-02 -8.788116467295366e-02 -8.766205635082600e-02 - -8.744304058057480e-02 -8.722411733824492e-02 -8.700528670561582e-02 -8.678654875532379e-02 -8.656790339361393e-02 - -8.634935054757228e-02 -8.613089058374623e-02 -8.591252359970507e-02 -8.569424942256174e-02 -8.547606809595372e-02 - -8.525797972327777e-02 -8.503998436304407e-02 -8.482208183975883e-02 -8.460427219735964e-02 -8.438655581333676e-02 - -8.416893266387415e-02 -8.395140264416648e-02 -8.373396580036768e-02 -8.351662221748458e-02 -8.329937190808817e-02 - -8.308221474187347e-02 -8.286515089972675e-02 -8.264818063381729e-02 -8.243130387381740e-02 -8.221452057360500e-02 - -8.199783077068876e-02 -8.178123458056528e-02 -8.156473193866548e-02 -8.134832272179610e-02 -8.113200727104515e-02 - -8.091578573554094e-02 -8.069965795549490e-02 -8.048362394306618e-02 -8.026768379237301e-02 -8.005183759034226e-02 - -7.983608519016389e-02 -7.962042660317335e-02 -7.940486220827629e-02 -7.918939199917317e-02 -7.897401585103307e-02 - -7.875873382193239e-02 -7.854354599947752e-02 -7.832845240531904e-02 -7.811345290511561e-02 -7.789854765910142e-02 - -7.768373695009409e-02 -7.746902070156129e-02 -7.725439886068521e-02 -7.703987147751143e-02 -7.682543865920169e-02 - -7.661110037032860e-02 -7.639685648697914e-02 -7.618270730319152e-02 -7.596865299784139e-02 -7.575469343456721e-02 - -7.554082861289950e-02 -7.532705861915691e-02 -7.511338355056779e-02 -7.489980327273796e-02 -7.468631776375068e-02 - -7.447292742489155e-02 -7.425963225373161e-02 -7.404643208981297e-02 -7.383332706618533e-02 -7.362031725942129e-02 - -7.340740264369265e-02 -7.319458312424655e-02 -7.298185885257603e-02 -7.276923011698885e-02 -7.255669681825400e-02 - -7.234425890125808e-02 -7.213191646645117e-02 -7.191966959969415e-02 -7.170751827394115e-02 -7.149546237742448e-02 - -7.128350216363183e-02 -7.107163782537941e-02 -7.085986923051370e-02 -7.064819639413342e-02 -7.043661941815849e-02 - -7.022513838389523e-02 -7.001375316964638e-02 -6.980246372359999e-02 -6.959127044971054e-02 -6.938017339783993e-02 - -6.916917238807876e-02 -6.895826751099868e-02 -6.874745887832359e-02 -6.853674652264935e-02 -6.832613029387129e-02 - -6.811561029537151e-02 -6.790518687416305e-02 -6.769485994872884e-02 -6.748462944761908e-02 -6.727449549181348e-02 - -6.706445814195625e-02 -6.685451736224034e-02 -6.664467305023641e-02 -6.643492546019260e-02 -6.622527482862205e-02 - -6.601572100856345e-02 -6.580626400049541e-02 -6.559690390732385e-02 -6.538764078471235e-02 -6.517847455920224e-02 - -6.496940519404462e-02 -6.476043303620643e-02 -6.455155816426872e-02 -6.434278041275177e-02 -6.413409988235154e-02 - -6.392551667227454e-02 -6.371703078482928e-02 -6.350864213121965e-02 -6.330035079826633e-02 -6.309215709125325e-02 - -6.288406097171770e-02 -6.267606236590158e-02 -6.246816137578116e-02 -6.226035810132791e-02 -6.205265253482506e-02 - -6.184504450634240e-02 -6.163753424009603e-02 -6.143012204113525e-02 -6.122280779495761e-02 -6.101559145710207e-02 - -6.080847310111580e-02 -6.060145284620669e-02 -6.039453063876327e-02 -6.018770637541451e-02 -5.998098039534337e-02 - -5.977435284136760e-02 -5.956782355675167e-02 -5.936139258218223e-02 -5.915506002510895e-02 -5.894882595975996e-02 - -5.874269025717062e-02 -5.853665294379332e-02 -5.833071438748900e-02 -5.812487459491447e-02 -5.791913345983549e-02 - -5.771349104248068e-02 -5.750794745476003e-02 -5.730250273990040e-02 -5.709715674449271e-02 -5.689190963313420e-02 - -5.668676170442684e-02 -5.648171287301057e-02 -5.627676311138611e-02 -5.607191251359627e-02 -5.586716116856662e-02 - -5.566250902085241e-02 -5.545795595276776e-02 -5.525350230977423e-02 -5.504914828197500e-02 -5.484489368806074e-02 - -5.464073856561743e-02 -5.443668303623681e-02 -5.423272717677420e-02 -5.402887087270093e-02 -5.382511411736842e-02 - -5.362145727556954e-02 -5.341790037997223e-02 -5.321444331788154e-02 -5.301108618236487e-02 -5.280782907094528e-02 - -5.260467200594416e-02 -5.240161485390568e-02 -5.219865776343095e-02 -5.199580105954085e-02 -5.179304465507040e-02 - -5.159038850941820e-02 -5.138783273765680e-02 -5.118537740030552e-02 -5.098302246878324e-02 -5.078076787428482e-02 - -5.057861387937131e-02 -5.037656068404879e-02 -5.017460818262723e-02 -4.997275637519877e-02 -4.977100534878579e-02 - -4.956935521374012e-02 -4.936780587637167e-02 -4.916635729330274e-02 -4.896500983679772e-02 -4.876376358063662e-02 - -4.856261839799727e-02 -4.836157437280066e-02 -4.816063160553166e-02 -4.795979012910388e-02 -4.775904981223175e-02 - -4.755841077230219e-02 -4.735787336181510e-02 -4.715743752596301e-02 -4.695710319390285e-02 -4.675687045398216e-02 - -4.655673941737810e-02 -4.635671009364274e-02 -4.615678236145827e-02 -4.595695644691457e-02 -4.575723258610617e-02 - -4.555761069075770e-02 -4.535809077212207e-02 -4.515867291944397e-02 -4.495935719937229e-02 -4.476014355843901e-02 - -4.456103197632578e-02 -4.436202279051898e-02 -4.416311608901573e-02 -4.396431172960501e-02 -4.376560979706327e-02 - -4.356701040970479e-02 -4.336851362154585e-02 -4.317011930970618e-02 -4.297182755295056e-02 -4.277363871130811e-02 - -4.257555275870079e-02 -4.237756961321195e-02 -4.217968936488893e-02 -4.198191211978222e-02 -4.178423789759614e-02 - -4.158666657665847e-02 -4.138919837391426e-02 -4.119183356383482e-02 -4.099457203865310e-02 -4.079741379048268e-02 - -4.060035892668235e-02 -4.040340754077800e-02 -4.020655958670875e-02 -4.000981499812348e-02 -3.981317410229721e-02 - -3.961663704352115e-02 -3.942020369405195e-02 -3.922387410519079e-02 -3.902764838570288e-02 -3.883152661169272e-02 - -3.863550868276464e-02 -3.843959464464100e-02 -3.824378485096525e-02 -3.804807931112070e-02 -3.785247793879744e-02 - -3.765698082240899e-02 -3.746158806803077e-02 -3.726629970906549e-02 -3.707111562537097e-02 -3.687603600301111e-02 - -3.668106114329449e-02 -3.648619095542227e-02 -3.629142541706046e-02 -3.609676463615045e-02 -3.590220871216067e-02 - -3.570775761915167e-02 -3.551341127587861e-02 -3.531916998478909e-02 -3.512503392646860e-02 -3.493100298239093e-02 - -3.473707719308593e-02 -3.454325666569649e-02 -3.434954148093054e-02 -3.415593156072503e-02 -3.396242692622412e-02 - -3.376902792182854e-02 -3.357573459185429e-02 -3.338254684613227e-02 -3.318946476737597e-02 -3.299648846264201e-02 - -3.280361798076661e-02 -3.261085320981364e-02 -3.241819429994710e-02 -3.222564156785773e-02 -3.203319495411584e-02 - -3.184085442350271e-02 -3.164862007407277e-02 -3.145649201602077e-02 -3.126447024597763e-02 -3.107255466700169e-02 - -3.088074555671056e-02 -3.068904313085425e-02 -3.049744727803826e-02 -3.030595802638682e-02 -3.011457548570120e-02 - -2.992329974875160e-02 -2.973213075050443e-02 -2.954106848293515e-02 -2.935011329195715e-02 -2.915926525661732e-02 - -2.896852427673346e-02 -2.877789042941862e-02 -2.858736382466336e-02 -2.839694452567641e-02 -2.820663243092813e-02 - -2.801642765839682e-02 -2.782633053619610e-02 -2.763634102981755e-02 -2.744645909471058e-02 -2.725668483048721e-02 - -2.706701834793413e-02 -2.687745966148872e-02 -2.668800867127078e-02 -2.649866562411629e-02 -2.630943076513501e-02 - -2.612030399888650e-02 -2.593128533989631e-02 -2.574237489560391e-02 -2.555357276907920e-02 -2.536487891525730e-02 - -2.517629330290238e-02 -2.498781626631630e-02 -2.479944791947400e-02 -2.461118815951395e-02 -2.442303705775731e-02 - -2.423499472682666e-02 -2.404706124098910e-02 -2.385923651050157e-02 -2.367152062237768e-02 -2.348391391197065e-02 - -2.329641637680258e-02 -2.310902796361102e-02 -2.292174876507744e-02 -2.273457889435020e-02 -2.254751838574287e-02 - -2.236056713942959e-02 -2.217372537079298e-02 -2.198699334983061e-02 -2.180037099746794e-02 -2.161385831877313e-02 - -2.142745542221016e-02 -2.124116241611923e-02 -2.105497927356034e-02 -2.086890594375282e-02 -2.068294274565517e-02 - -2.049708982965088e-02 -2.031134709508492e-02 -2.012571460207244e-02 -1.994019246558534e-02 -1.975478077426674e-02 - -1.956947944878238e-02 -1.938428854559868e-02 -1.919920840769478e-02 -1.901423906121075e-02 -1.882938044349050e-02 - -1.864463264867233e-02 -1.845999578941159e-02 -1.827546991282947e-02 -1.809105492490821e-02 -1.790675101318496e-02 - -1.772255847013706e-02 -1.753847723077995e-02 -1.735450728912205e-02 -1.717064875577919e-02 -1.698690174123156e-02 - -1.680326624034783e-02 -1.661974219495428e-02 -1.643632989539235e-02 -1.625302952284425e-02 -1.606984099009794e-02 - -1.588676434582367e-02 -1.570379970237604e-02 -1.552094715767664e-02 -1.533820665109939e-02 -1.515557821470722e-02 - -1.497306218983010e-02 -1.479065863118324e-02 -1.460836746737021e-02 -1.442618879376636e-02 -1.424412272699600e-02 - -1.406216932715821e-02 -1.388032850365394e-02 -1.369860041414062e-02 -1.351698537084881e-02 -1.333548332713773e-02 - -1.315409426742165e-02 -1.297281830737383e-02 -1.279165555870565e-02 -1.261060603011550e-02 -1.242966965324022e-02 - -1.224884670128487e-02 -1.206813738892206e-02 -1.188754163203305e-02 -1.170705946859269e-02 -1.152669101347058e-02 - -1.134643637569507e-02 -1.116629550991553e-02 -1.098626842139487e-02 -1.080635544822676e-02 -1.062655668128806e-02 - -1.044687204494093e-02 -1.026730162280993e-02 -1.008784553433474e-02 -9.908503858526582e-03 -9.729276511698201e-03 - -9.550163618928804e-03 -9.371165505355611e-03 -9.192282154920128e-03 -9.013513542246960e-03 -8.834859775588668e-03 - -8.656320970291077e-03 -8.477897155130903e-03 -8.299588259899083e-03 -8.121394531144674e-03 -7.943316209259341e-03 - -7.765353219198069e-03 -7.587505591333328e-03 -7.409773443860054e-03 -7.232156891183837e-03 -7.054655906230881e-03 - -6.877270474033493e-03 -6.700000921715352e-03 -6.522847372218281e-03 -6.345809748257097e-03 -6.168888131399519e-03 - -5.992082642122597e-03 -5.815393366379400e-03 -5.638820235869921e-03 -5.462363348533388e-03 -5.286023033805962e-03 - -5.109799304673499e-03 -4.933692127821829e-03 -4.757701606393674e-03 -4.581827861470766e-03 -4.406070940931505e-03 - -4.230430770274698e-03 -4.054907567997104e-03 -3.879501600335772e-03 -3.704212807069328e-03 -3.529041210474627e-03 - -3.353986930090703e-03 -3.179050081041732e-03 -3.004230655593028e-03 -2.829528626659512e-03 -2.654944304289923e-03 - -2.480477843039907e-03 -2.306129168890747e-03 -2.131898354626704e-03 -1.957785522367332e-03 -1.783790769612464e-03 - -1.609914041309663e-03 -1.436155409326836e-03 -1.262515208025358e-03 -1.088993476198761e-03 -9.155901719868249e-04 - -7.423054008843995e-04 -5.691392854771952e-04 -3.960918865957833e-04 -2.231631331613931e-04 -5.035321608514060e-05 - 1.223375771945329e-04 2.949092895407656e-04 4.673619084872533e-04 6.396953140537370e-04 8.119093865188150e-04 - 9.840041155727759e-04 1.155979539871523e-03 1.327835367602612e-03 1.499571413663267e-03 1.671187748049661e-03 - 1.842684305331169e-03 2.014060960896812e-03 2.185317608856639e-03 2.356454289147141e-03 2.527470954200780e-03 - 2.698367270832486e-03 2.869143169831049e-03 3.039798698561594e-03 3.210333755176400e-03 3.380748214685887e-03 - 3.551042001872539e-03 3.721215182132198e-03 3.891267592694254e-03 4.061198929412137e-03 4.231009214636464e-03 - 4.400698444839332e-03 4.570266499650065e-03 4.739713256426893e-03 4.909038688279234e-03 5.078242841339914e-03 - 5.247325443294046e-03 5.416286280121805e-03 5.585125417934797e-03 5.753842797319914e-03 5.922438289361948e-03 - 6.090911784292105e-03 6.259263304936011e-03 6.427492823105761e-03 6.595600012759487e-03 6.763584774419725e-03 - 6.931447157908777e-03 7.099187064683324e-03 7.266804368739545e-03 7.434298984071849e-03 7.601670964899477e-03 - 7.768920175905106e-03 7.936046303989365e-03 8.103049345026314e-03 8.269929303195386e-03 8.436686062480435e-03 - 8.603319496825714e-03 8.769829559891583e-03 8.936216298209541e-03 9.102479469308070e-03 9.268618835503980e-03 - 9.434634442417017e-03 9.600526244002849e-03 9.766294116521254e-03 9.931937936947469e-03 1.009745771049027e-02 - 1.026285342997890e-02 1.042812477681206e-02 1.059327162144324e-02 1.075829401681754e-02 1.092319186819127e-02 - 1.108796504594824e-02 1.125261345370748e-02 1.141713713772357e-02 1.158153598704318e-02 1.174580967555363e-02 - 1.190995817803677e-02 1.207398151021485e-02 1.223787955540131e-02 1.240165218070774e-02 1.256529932365555e-02 - 1.272882103806231e-02 1.289221710280211e-02 1.305548725320952e-02 1.321863152957668e-02 1.338164989105289e-02 - 1.354454220587777e-02 1.370730835288826e-02 1.386994832163190e-02 1.403246211588375e-02 1.419484943187744e-02 - 1.435711010999991e-02 1.451924419921884e-02 1.468125161270911e-02 1.484313222013652e-02 1.500488591571896e-02 - 1.516651273046586e-02 1.532801257754355e-02 1.548938513124086e-02 1.565063033579857e-02 1.581174821092933e-02 - 1.597273864701365e-02 1.613360150922888e-02 1.629433671764488e-02 1.645494432276120e-02 1.661542413184349e-02 - 1.677577586209575e-02 1.693599953321696e-02 1.709609511287956e-02 1.725606247097126e-02 1.741590148147653e-02 - 1.757561211738663e-02 1.773519439308624e-02 1.789464801957598e-02 1.805397280960725e-02 1.821316881163111e-02 - 1.837223594327105e-02 1.853117406905512e-02 1.868998307594014e-02 1.884866298214414e-02 1.900721372338833e-02 - 1.916563497459167e-02 1.932392665507269e-02 1.948208878919649e-02 1.964012126059438e-02 1.979802393750615e-02 - 1.995579673545799e-02 2.011343968946751e-02 2.027095263124555e-02 2.042833526879373e-02 2.058558759933038e-02 - 2.074270959919291e-02 2.089970114286997e-02 2.105656209513535e-02 2.121329241031374e-02 2.136989211400533e-02 - 2.152636093833320e-02 2.168269866776463e-02 2.183890534086288e-02 2.199498088647827e-02 2.215092516911965e-02 - 2.230673806408907e-02 2.246241957468516e-02 2.261796965793072e-02 2.277338799181243e-02 2.292867446749406e-02 - 2.308382911412376e-02 2.323885181888266e-02 2.339374244699652e-02 2.354850090287507e-02 2.370312721409915e-02 - 2.385762123470989e-02 2.401198266010886e-02 2.416621147301771e-02 2.432030765671687e-02 2.447427107682733e-02 - 2.462810160176357e-02 2.478179917471193e-02 2.493536381795363e-02 2.508879528739230e-02 2.524209334527653e-02 - 2.539525801488748e-02 2.554828923354157e-02 2.570118686847216e-02 2.585395079171064e-02 2.600658098606827e-02 - 2.615907742012537e-02 2.631143978762620e-02 2.646366795301069e-02 2.661576194257877e-02 2.676772164859378e-02 - 2.691954693391293e-02 2.707123769272043e-02 2.722279394328245e-02 2.737421556407061e-02 2.752550224474631e-02 - 2.767665393933695e-02 2.782767063812680e-02 2.797855221700411e-02 2.812929853552858e-02 2.827990951702357e-02 - 2.843038519104858e-02 2.858072533585580e-02 2.873092969062032e-02 2.888099827101270e-02 2.903093101911967e-02 - 2.918072779556083e-02 2.933038847140823e-02 2.947991301658642e-02 2.962930141213865e-02 2.977855336278226e-02 - 2.992766870509821e-02 3.007664746318324e-02 3.022548953626840e-02 3.037419478553557e-02 3.052276309616091e-02 - 3.067119447416764e-02 3.081948881896879e-02 3.096764581778017e-02 3.111566540198458e-02 3.126354756710210e-02 - 3.141129218718559e-02 3.155889912410548e-02 3.170636829125183e-02 3.185369970791438e-02 3.200089317518744e-02 - 3.214794841776677e-02 3.229486543634106e-02 3.244164418203412e-02 3.258828451581320e-02 3.273478630264194e-02 - 3.288114949586567e-02 3.302737408530167e-02 3.317345979235018e-02 3.331940642975919e-02 3.346521401820098e-02 - 3.361088246101045e-02 3.375641161607764e-02 3.390180136352038e-02 3.404705169548587e-02 3.419216253016829e-02 - 3.433713355905806e-02 3.448196468652563e-02 3.462665590981111e-02 3.477120710939272e-02 3.491561814527116e-02 - 3.505988891618091e-02 3.520401943397326e-02 3.534800952666442e-02 3.549185891051008e-02 3.563556756111654e-02 - 3.577913543618631e-02 3.592256240340591e-02 3.606584831947614e-02 3.620899312153205e-02 3.635199681091714e-02 - 3.649485912620978e-02 3.663757985375464e-02 3.678015900636063e-02 3.692259649832257e-02 3.706489218607827e-02 - 3.720704593508108e-02 3.734905772908955e-02 3.749092751022131e-02 3.763265496742431e-02 3.777423997951684e-02 - 3.791568254953915e-02 3.805698256030369e-02 3.819813986869797e-02 3.833915436267914e-02 3.848002605018682e-02 - 3.862075477984065e-02 3.876134025391093e-02 3.890178243600422e-02 3.904208129158644e-02 3.918223668100989e-02 - 3.932224846044379e-02 3.946211655605483e-02 3.960184097189857e-02 3.974142146457355e-02 3.988085779819951e-02 - 4.002014997942075e-02 4.015929792921669e-02 4.029830150192959e-02 4.043716055991190e-02 4.057587507004282e-02 - 4.071444498657769e-02 4.085287001066611e-02 4.099114999824743e-02 4.112928495212512e-02 4.126727475679569e-02 - 4.140511926665246e-02 4.154281836167219e-02 4.168037204269245e-02 4.181778018003033e-02 4.195504246778908e-02 - 4.209215884913708e-02 4.222912929605258e-02 4.236595366776428e-02 4.250263182248033e-02 4.263916367566677e-02 - 4.277554922465009e-02 4.291178824859961e-02 4.304788049654025e-02 4.318382596138427e-02 4.331962457087349e-02 - 4.345527617981602e-02 4.359078064797250e-02 4.372613792550029e-02 4.386134797486977e-02 4.399641051415262e-02 - 4.413132537776133e-02 4.426609256403441e-02 4.440071196061698e-02 4.453518342174363e-02 4.466950682320869e-02 - 4.480368214879805e-02 4.493770928728694e-02 4.507158793990715e-02 4.520531802497359e-02 4.533889951667943e-02 - 4.547233228082954e-02 4.560561616979211e-02 4.573875108353129e-02 4.587173702317195e-02 4.600457379177124e-02 - 4.613726112101928e-02 4.626979898466685e-02 4.640218731770854e-02 4.653442597807410e-02 4.666651481740990e-02 - 4.679845378497393e-02 4.693024287357150e-02 4.706188178521280e-02 4.719337030512012e-02 4.732470843170088e-02 - 4.745589609974604e-02 4.758693317708736e-02 4.771781949014568e-02 4.784855500276729e-02 4.797913963655120e-02 - 4.810957311625792e-02 4.823985532440599e-02 4.836998622519359e-02 4.849996572088229e-02 4.862979364778694e-02 - 4.875946986129576e-02 4.888899438454671e-02 4.901836703838853e-02 4.914758752328308e-02 4.927665585368439e-02 - 4.940557196434897e-02 4.953433564666962e-02 4.966294680168561e-02 4.979140536998770e-02 4.991971127467005e-02 - 5.004786430086550e-02 5.017586426593462e-02 5.030371111424699e-02 5.043140473941395e-02 5.055894500969876e-02 - 5.068633180855401e-02 5.081356509387767e-02 5.094064477169723e-02 5.106757053524139e-02 5.119434226596677e-02 - 5.132095996453229e-02 5.144742351517578e-02 5.157373274644007e-02 5.169988750799723e-02 5.182588783131492e-02 - 5.195173357105356e-02 5.207742440366903e-02 5.220296027189056e-02 5.232834113948501e-02 5.245356688434039e-02 - 5.257863735375337e-02 5.270355244318054e-02 5.282831211610928e-02 5.295291615700908e-02 5.307736435753736e-02 - 5.320165668494783e-02 5.332579302368824e-02 5.344977322479061e-02 5.357359720391287e-02 5.369726488407797e-02 - 5.382077614890905e-02 5.394413077320572e-02 5.406732861255047e-02 5.419036960275756e-02 5.431325364836510e-02 - 5.443598061485443e-02 5.455855035736775e-02 5.468096283548277e-02 5.480321791614200e-02 5.492531533836561e-02 - 5.504725504027442e-02 5.516903696522249e-02 5.529066094250196e-02 5.541212681912044e-02 5.553343451105355e-02 - 5.565458402054679e-02 5.577557512714444e-02 5.589640757833542e-02 5.601708136214176e-02 5.613759637012277e-02 - 5.625795242697428e-02 5.637814944133901e-02 5.649818735356010e-02 5.661806606948155e-02 5.673778531909066e-02 - 5.685734496106067e-02 5.697674499811992e-02 5.709598525886500e-02 5.721506557962035e-02 5.733398588420521e-02 - 5.745274613557275e-02 5.757134619305772e-02 5.768978576165893e-02 5.780806477237931e-02 5.792618319490116e-02 - 5.804414085654030e-02 5.816193759992416e-02 5.827957333255503e-02 5.839704805764100e-02 5.851436157058919e-02 - 5.863151359019340e-02 5.874850407742044e-02 5.886533297606138e-02 5.898200016057164e-02 5.909850545490182e-02 - 5.921484876799358e-02 5.933103006596772e-02 5.944704910278828e-02 5.956290569090495e-02 5.967859979076014e-02 - 5.979413129454921e-02 5.990950006107775e-02 6.002470595625681e-02 6.013974894676900e-02 6.025462892974234e-02 - 6.036934559538653e-02 6.048389882575328e-02 6.059828859366181e-02 6.071251478747773e-02 6.082657726499330e-02 - 6.094047589468096e-02 6.105421060960093e-02 6.116778124880510e-02 6.128118760026364e-02 6.139442960439424e-02 - 6.150750715787331e-02 6.162042008748835e-02 6.173316829355946e-02 6.184575170612789e-02 6.195817023946892e-02 - 6.207042366308074e-02 6.218251178412997e-02 6.229443455021107e-02 6.240619187345142e-02 6.251778362644587e-02 - 6.262920965673664e-02 6.274046989094115e-02 6.285156423838029e-02 6.296249246083868e-02 6.307325441937692e-02 - 6.318385004239983e-02 6.329427920287174e-02 6.340454177652059e-02 6.351463766120390e-02 6.362456678994362e-02 - 6.373432899407734e-02 6.384392402667542e-02 6.395335181995393e-02 6.406261231361865e-02 6.417170537725830e-02 - 6.428063082883417e-02 6.438938856382127e-02 6.449797859582693e-02 6.460640069400744e-02 6.471465460887021e-02 - 6.482274028565467e-02 6.493065766530991e-02 6.503840663024645e-02 6.514598697176463e-02 6.525339863731919e-02 - 6.536064160053869e-02 6.546771556229376e-02 6.557462036169828e-02 6.568135597564134e-02 6.578792228094754e-02 - 6.589431913461476e-02 6.600054641494822e-02 6.610660407274732e-02 6.621249195669229e-02 6.631820979208959e-02 - 6.642375751800587e-02 6.652913508526218e-02 6.663434233390064e-02 6.673937912206085e-02 6.684424535139094e-02 - 6.694894096694531e-02 6.705346576057515e-02 6.715781952052316e-02 6.726200223606826e-02 6.736601378290344e-02 - 6.746985396850236e-02 6.757352270136854e-02 6.767701992273348e-02 6.778034554033589e-02 6.788349929667206e-02 - 6.798648102682574e-02 6.808929069330329e-02 6.819192820375723e-02 6.829439341428477e-02 6.839668615716293e-02 - 6.849880637697058e-02 6.860075397106770e-02 6.870252870886938e-02 6.880413046413429e-02 6.890555915577500e-02 - 6.900681468090485e-02 6.910789689150486e-02 6.920880565820778e-02 6.930954094436353e-02 6.941010257623929e-02 - 6.951049032497619e-02 6.961070411466443e-02 6.971074386483528e-02 6.981060945693285e-02 6.991030074013053e-02 - 7.000981760721879e-02 7.010915998226322e-02 7.020832768385020e-02 7.030732053981503e-02 7.040613843777971e-02 - 7.050478130476578e-02 7.060324902125202e-02 7.070154139632766e-02 7.079965841104072e-02 7.089759998592053e-02 - 7.099536579014293e-02 7.109295574922263e-02 7.119036986301433e-02 7.128760792254588e-02 7.138466979343019e-02 - 7.148155540894172e-02 7.157826467726322e-02 7.167479742578257e-02 7.177115345207208e-02 7.186733268619028e-02 - 7.196333504975572e-02 7.205916041090092e-02 7.215480858692887e-02 7.225027948023270e-02 7.234557308374470e-02 - 7.244068916926014e-02 7.253562753252076e-02 7.263038813284139e-02 7.272497087062332e-02 7.281937559790036e-02 - 7.291360215228662e-02 7.300765049821943e-02 7.310152057265214e-02 7.319521208383468e-02 7.328872490709243e-02 - 7.338205901635925e-02 7.347521425841259e-02 7.356819049091311e-02 7.366098761637971e-02 7.375360558736099e-02 - 7.384604424623381e-02 7.393830334347133e-02 7.403038279875497e-02 7.412228254437477e-02 7.421400245985316e-02 - 7.430554241104276e-02 7.439690229021774e-02 7.448808202204141e-02 7.457908141717452e-02 7.466990029970315e-02 - 7.476053861745356e-02 7.485099625058683e-02 7.494127304678436e-02 7.503136889191833e-02 7.512128371784581e-02 - 7.521101743547498e-02 7.530056981436373e-02 7.538994071268737e-02 7.547913007544443e-02 7.556813780083994e-02 - 7.565696374971752e-02 7.574560777501017e-02 7.583406981695588e-02 7.592234975180168e-02 7.601044736291800e-02 - 7.609836256769248e-02 7.618609528331391e-02 7.627364535037680e-02 7.636101265407126e-02 7.644819711937149e-02 - 7.653519868718589e-02 7.662201715447789e-02 7.670865230880411e-02 7.679510411035856e-02 7.688137246970578e-02 - 7.696745724207896e-02 7.705335828035317e-02 7.713907552614908e-02 7.722460893765626e-02 7.730995825366380e-02 - 7.739512330293280e-02 7.748010405365591e-02 7.756490042829636e-02 7.764951228919105e-02 7.773393946198498e-02 - 7.781818189157449e-02 7.790223948237281e-02 7.798611201876808e-02 7.806979939436651e-02 7.815330154059554e-02 - 7.823661834982702e-02 7.831974966729814e-02 7.840269536418043e-02 7.848545542109749e-02 7.856802968700778e-02 - 7.865041794492959e-02 7.873262009221961e-02 7.881463606524114e-02 7.889646578364969e-02 7.897810905385311e-02 - 7.905956578813299e-02 7.914083598393755e-02 7.922191938944982e-02 7.930281582198326e-02 7.938352526916173e-02 - 7.946404763288464e-02 7.954438277705837e-02 7.962453057021987e-02 7.970449093695484e-02 7.978426377009373e-02 - 7.986384886265184e-02 7.994324611178145e-02 8.002245546069972e-02 8.010147680163558e-02 8.018030998339011e-02 - 8.025895486859348e-02 8.033741142939121e-02 8.041567953647351e-02 8.049375898816008e-02 8.057164970191152e-02 - 8.064935159117341e-02 8.072686453538828e-02 8.080418841559016e-02 8.088132313650849e-02 8.095826861741187e-02 - 8.103502469212946e-02 8.111159121525567e-02 8.118796811657426e-02 8.126415526945288e-02 8.134015254787534e-02 - 8.141595988122388e-02 8.149157718184835e-02 8.156700432424771e-02 8.164224113093393e-02 8.171728750211138e-02 - 8.179214337283539e-02 8.186680860558979e-02 8.194128308109257e-02 8.201556671181809e-02 8.208965942384167e-02 - 8.216356107347705e-02 8.223727146913333e-02 8.231079055026533e-02 8.238411825286719e-02 8.245725445426123e-02 - 8.253019901019013e-02 8.260295182089074e-02 8.267551284923887e-02 8.274788192985057e-02 8.282005889192648e-02 - 8.289204367192234e-02 8.296383619751495e-02 8.303543635380874e-02 8.310684396376640e-02 8.317805898151856e-02 - 8.324908138250064e-02 8.331991092178788e-02 8.339054746670159e-02 8.346099098907200e-02 8.353124136246602e-02 - 8.360129848004999e-02 8.367116227251760e-02 8.374083263302687e-02 8.381030943134427e-02 8.387959252741883e-02 - 8.394868181167527e-02 8.401757720093640e-02 8.408627862550171e-02 8.415478594369409e-02 8.422309904154775e-02 - 8.429121790707177e-02 8.435914237533512e-02 8.442687225429805e-02 8.449440750560887e-02 8.456174803803686e-02 - 8.462889372267089e-02 8.469584447602406e-02 8.476260023136410e-02 8.482916090148240e-02 8.489552630009754e-02 - 8.496169630228255e-02 8.502767086164854e-02 8.509344988672647e-02 8.515903326018803e-02 8.522442086136313e-02 - 8.528961263471936e-02 8.535460848680074e-02 8.541940824041729e-02 8.548401181612168e-02 8.554841915131453e-02 - 8.561263012321893e-02 8.567664461211427e-02 8.574046253447680e-02 8.580408386832587e-02 8.586750845589863e-02 - 8.593073610333024e-02 8.599376680387132e-02 8.605660047760594e-02 8.611923696874126e-02 8.618167618396408e-02 - 8.624391807608472e-02 8.630596259724549e-02 8.636780954833972e-02 8.642945878839840e-02 8.649091029427977e-02 - 8.655216396695875e-02 8.661321970043215e-02 8.667407742210617e-02 8.673473702989365e-02 8.679519841504303e-02 - 8.685546148336530e-02 8.691552612855238e-02 8.697539224666265e-02 8.703505975750943e-02 8.709452857692032e-02 - 8.715379861893667e-02 8.721286980508075e-02 8.727174201224434e-02 8.733041510377958e-02 8.738888903629666e-02 - 8.744716372671989e-02 8.750523904187274e-02 8.756311491392924e-02 8.762079127795709e-02 8.767826803995526e-02 - 8.773554506310657e-02 8.779262223690780e-02 8.784949951260017e-02 8.790617682173207e-02 8.796265406226209e-02 - 8.801893109931651e-02 8.807500788687952e-02 8.813088437660771e-02 8.818656039674132e-02 8.824203585227545e-02 - 8.829731070095961e-02 8.835238486000704e-02 8.840725822106667e-02 8.846193068214857e-02 8.851640221803356e-02 - 8.857067273700293e-02 8.862474207580676e-02 8.867861014722141e-02 8.873227689758616e-02 8.878574227696898e-02 - 8.883900618220902e-02 8.889206851560667e-02 8.894492921167085e-02 8.899758815302622e-02 8.905004524008538e-02 - 8.910230044719054e-02 8.915435367300073e-02 8.920620479173334e-02 8.925785373448247e-02 8.930930045917142e-02 - 8.936054490961548e-02 8.941158695191696e-02 8.946242647641844e-02 8.951306341364354e-02 8.956349771969928e-02 - 8.961372931388180e-02 8.966375808278661e-02 8.971358396554302e-02 8.976320688963368e-02 8.981262675341668e-02 - 8.986184348935064e-02 8.991085703129179e-02 8.995966729258320e-02 9.000827417122792e-02 9.005667759770250e-02 - 9.010487756379584e-02 9.015287394264000e-02 9.020066659275561e-02 9.024825550203337e-02 9.029564061179933e-02 - 9.034282181894199e-02 9.038979902630290e-02 9.043657218570805e-02 9.048314126656666e-02 9.052950615463343e-02 - 9.057566675480395e-02 9.062162300961238e-02 9.066737484935303e-02 9.071292219781772e-02 9.075826498061153e-02 - 9.080340315127385e-02 9.084833664156222e-02 9.089306533771581e-02 9.093758915627431e-02 9.098190804149961e-02 - 9.102602195783284e-02 9.106993084471440e-02 9.111363462196023e-02 9.115713320054021e-02 9.120042650346059e-02 - 9.124351446434358e-02 9.128639702175202e-02 9.132907412994692e-02 9.137154573427010e-02 9.141381170435277e-02 - 9.145587198962597e-02 9.149772660800266e-02 9.153937542844172e-02 9.158081834977004e-02 9.162205535599281e-02 - 9.166308637778346e-02 9.170391133536025e-02 9.174453017072061e-02 9.178494285856946e-02 9.182514933661440e-02 - 9.186514945794547e-02 9.190494319482566e-02 9.194453054665523e-02 9.198391140758180e-02 9.202308569543158e-02 - 9.206205336702038e-02 9.210081441034919e-02 9.213936875086109e-02 9.217771627651770e-02 9.221585694962209e-02 - 9.225379072840771e-02 9.229151754885842e-02 9.232903734819613e-02 9.236635007909103e-02 9.240345570404732e-02 - 9.244035413434255e-02 9.247704529963750e-02 9.251352918345666e-02 9.254980573968512e-02 9.258587489795035e-02 - 9.262173657649034e-02 9.265739073985793e-02 9.269283735974691e-02 9.272807636276849e-02 9.276310769047050e-02 - 9.279793130272118e-02 9.283254716719631e-02 9.286695521394739e-02 9.290115536246511e-02 9.293514761281572e-02 - 9.296893192325742e-02 9.300250819824006e-02 9.303587638369953e-02 9.306903645092859e-02 9.310198837852499e-02 - 9.313473209662422e-02 9.316726755984403e-02 9.319959477466139e-02 9.323171364631608e-02 9.326362408592948e-02 - 9.329532610133226e-02 9.332681964339190e-02 9.335810464438972e-02 9.338918108249107e-02 9.342004893308628e-02 - 9.345070815580041e-02 9.348115868437977e-02 9.351140046962789e-02 9.354143348306601e-02 9.357125770365762e-02 - 9.360087308621738e-02 9.363027956518245e-02 9.365947710363894e-02 9.368846567300493e-02 9.371724524372237e-02 - 9.374581578300241e-02 9.377417725111503e-02 9.380232960142115e-02 9.383027280206080e-02 9.385800682788301e-02 - 9.388553164914089e-02 9.391284719773688e-02 9.393995342276806e-02 9.396685035781838e-02 9.399353796706621e-02 - 9.402001617537038e-02 9.404628495786660e-02 9.407234429781461e-02 9.409819417117830e-02 9.412383453169183e-02 - 9.414926534580341e-02 9.417448659641373e-02 9.419949825736050e-02 9.422430029380560e-02 9.424889267135104e-02 - 9.427327539998738e-02 9.429744844865905e-02 9.432141171534560e-02 9.434516522540957e-02 9.436870900006604e-02 - 9.439204294634228e-02 9.441516705436934e-02 9.443808133745002e-02 9.446078573953387e-02 9.448328023801857e-02 - 9.450556483411636e-02 9.452763950923013e-02 9.454950421611270e-02 9.457115890701832e-02 9.459260360830167e-02 - 9.461383832574666e-02 9.463486302352626e-02 9.465567765409444e-02 9.467628220109425e-02 9.469667668274938e-02 - 9.471686106967921e-02 9.473683533004949e-02 9.475659945563136e-02 9.477615343325803e-02 9.479549725292793e-02 - 9.481463091432241e-02 9.483355439545672e-02 9.485226766778346e-02 9.487077071788189e-02 9.488906353992572e-02 - 9.490714613644993e-02 9.492501852119042e-02 9.494268066964073e-02 9.496013253895599e-02 9.497737414244060e-02 - 9.499440547543551e-02 9.501122651272445e-02 9.502783728094538e-02 9.504423778187990e-02 9.506042797340242e-02 - 9.507640785191551e-02 9.509217742006319e-02 9.510773667189122e-02 9.512308563868060e-02 9.513822432123879e-02 - 9.515315264231193e-02 9.516787063845662e-02 9.518237836728226e-02 9.519667577724227e-02 9.521076284349063e-02 - 9.522463958294539e-02 9.523830604498588e-02 9.525176221483619e-02 9.526500804718509e-02 9.527804359769618e-02 - 9.529086886623650e-02 9.530348379689602e-02 9.531588845120076e-02 9.532808286166987e-02 9.534006699012688e-02 - 9.535184085361241e-02 9.536340447105748e-02 9.537475783364874e-02 9.538590095359538e-02 9.539683385237334e-02 - 9.540755654711666e-02 9.541806903829181e-02 9.542837132640679e-02 9.543846343230179e-02 9.544834536597921e-02 - 9.545801714100983e-02 9.546747880593646e-02 9.547673036184304e-02 9.548577178084619e-02 9.549460309483834e-02 - 9.550322434581640e-02 9.551163556335956e-02 9.551983673903520e-02 9.552782788036314e-02 9.553560902903191e-02 - 9.554318022933674e-02 9.555054148771730e-02 9.555769276632298e-02 9.556463412975340e-02 9.557136563747151e-02 - 9.557788725689133e-02 9.558419903459103e-02 9.559030102901959e-02 9.559619321427665e-02 9.560187562136102e-02 - 9.560734830883322e-02 9.561261127917654e-02 9.561766456108449e-02 9.562250820572099e-02 9.562714223416331e-02 - 9.563156666435306e-02 9.563578152405575e-02 9.563978686682097e-02 9.564358272631937e-02 9.564716910782914e-02 - 9.565054604965099e-02 9.565371359980702e-02 9.565667179877529e-02 9.565942066526258e-02 9.566196023293236e-02 - 9.566429057683135e-02 9.566641172752892e-02 9.566832368940979e-02 9.567002647518966e-02 9.567152016429874e-02 - 9.567280484915060e-02 9.567388053004788e-02 9.567474721294261e-02 9.567540493730267e-02 9.567585379392737e-02 - 9.567609383300600e-02 9.567612506298810e-02 9.567594754568214e-02 9.567556133790830e-02 9.567496647244744e-02 - 9.567416299512438e-02 9.567315095370396e-02 9.567193039196389e-02 9.567050136232016e-02 9.566886392120964e-02 - 9.566701812558283e-02 9.566496403827787e-02 9.566270170884209e-02 9.566023115264767e-02 9.565755243736668e-02 - 9.565466564791879e-02 9.565157080775241e-02 9.564826797386157e-02 9.564475723264595e-02 9.564103864027859e-02 - 9.563711223757489e-02 9.563297806735498e-02 9.562863621895812e-02 9.562408675116861e-02 9.561932968250994e-02 - 9.561436511583814e-02 9.560919313325968e-02 9.560381374743886e-02 9.559822704785555e-02 9.559243313048145e-02 - 9.558643203289170e-02 9.558022378864620e-02 9.557380846466877e-02 9.556718619530349e-02 9.556035703327785e-02 - 9.555332100122134e-02 9.554607821247386e-02 9.553862873475936e-02 9.553097259908433e-02 9.552310989218279e-02 - 9.551504070130773e-02 9.550676510186747e-02 9.549828317393894e-02 9.548959500356741e-02 9.548070067318166e-02 - 9.547160021295119e-02 9.546229369018946e-02 9.545278124506257e-02 9.544306292579091e-02 9.543313878273989e-02 - 9.542300894892854e-02 9.541267351639289e-02 9.540213254817664e-02 9.539138610562420e-02 9.538043425774057e-02 - 9.536927709152246e-02 9.535791472882026e-02 9.534634726779553e-02 9.533457478138217e-02 9.532259734256758e-02 - 9.531041503990305e-02 9.529802797105680e-02 9.528543620462085e-02 9.527263983869082e-02 9.525963900525855e-02 - 9.524643375927100e-02 9.523302417643500e-02 9.521941040061487e-02 9.520559252291068e-02 9.519157060486365e-02 - 9.517734471153570e-02 9.516291499670615e-02 9.514828160467456e-02 9.513344455080376e-02 9.511840393248631e-02 - 9.510315989360162e-02 9.508771251519674e-02 9.507206189457258e-02 9.505620814925633e-02 9.504015138530268e-02 - 9.502389169582724e-02 9.500742917228551e-02 9.499076394524120e-02 9.497389612890822e-02 9.495682580659018e-02 - 9.493955308203066e-02 9.492207807526097e-02 9.490440091330225e-02 9.488652168366014e-02 9.486844048723730e-02 - 9.485015747906970e-02 9.483167277063544e-02 9.481298644119306e-02 9.479409856622809e-02 9.477500930738031e-02 - 9.475571884085587e-02 9.473622721810367e-02 9.471653454723004e-02 9.469664098786204e-02 9.467654664635866e-02 - 9.465625162221861e-02 9.463575602621152e-02 9.461505999415500e-02 9.459416367044585e-02 9.457306719633034e-02 - 9.455177068421998e-02 9.453027423759350e-02 9.450857796468222e-02 9.448668199276268e-02 9.446458647203468e-02 - 9.444229157255099e-02 9.441979739649474e-02 9.439710403006842e-02 9.437421161454676e-02 9.435112031829759e-02 - 9.432783029179438e-02 9.430434160094567e-02 9.428065438538669e-02 9.425676883924589e-02 9.423268508508292e-02 - 9.420840322981890e-02 9.418392339716981e-02 9.415924578030670e-02 9.413437051700123e-02 9.410929767030043e-02 - 9.408402741009517e-02 9.405855992335012e-02 9.403289535840260e-02 9.400703383941893e-02 9.398097549341558e-02 - 9.395472046838550e-02 9.392826889502673e-02 9.390162091553057e-02 9.387477672023849e-02 9.384773645864139e-02 - 9.382050025947151e-02 9.379306828457251e-02 9.376544068778003e-02 9.373761760606118e-02 9.370959916011609e-02 - 9.368138552427184e-02 9.365297690930323e-02 9.362437342817573e-02 9.359557520850639e-02 9.356658243379877e-02 - 9.353739529945312e-02 9.350801394425273e-02 9.347843843855524e-02 9.344866901272440e-02 9.341870589097585e-02 - 9.338854915644307e-02 9.335819897637819e-02 9.332765555734250e-02 9.329691906420928e-02 9.326598960092489e-02 - 9.323486729288316e-02 9.320355242698486e-02 9.317204517635257e-02 9.314034562740874e-02 9.310845398153604e-02 - 9.307637042858882e-02 9.304409511565054e-02 9.301162817412864e-02 9.297896979469056e-02 9.294612022999450e-02 - 9.291307963943660e-02 9.287984815938743e-02 9.284642594887814e-02 9.281281319942865e-02 9.277901009754375e-02 - 9.274501679883909e-02 9.271083349621308e-02 9.267646039527271e-02 9.264189767811302e-02 9.260714551564306e-02 - 9.257220408228978e-02 9.253707357624473e-02 9.250175417101536e-02 9.246624602802385e-02 9.243054935165987e-02 - 9.239466434718238e-02 9.235859120974489e-02 9.232233012999355e-02 9.228588129454922e-02 9.224924488066757e-02 - 9.221242103323031e-02 9.217540995047416e-02 9.213821191347883e-02 9.210082709355732e-02 9.206325564930115e-02 - 9.202549780755387e-02 9.198755374602623e-02 9.194942363528436e-02 9.191110769995278e-02 9.187260614753277e-02 - 9.183391917841241e-02 9.179504701848260e-02 9.175598985687712e-02 9.171674785963810e-02 9.167732123351167e-02 - 9.163771019528422e-02 9.159791495855178e-02 9.155793572040530e-02 9.151777270193290e-02 9.147742614628342e-02 - 9.143689622063791e-02 9.139618310892414e-02 9.135528705455570e-02 9.131420824439858e-02 9.127294688450004e-02 - 9.123150325806001e-02 9.118987755991119e-02 9.114806996063474e-02 9.110608069642255e-02 9.106390998608170e-02 - 9.102155802996120e-02 9.097902503011562e-02 9.093631123402490e-02 9.089341690732793e-02 9.085034224655422e-02 - 9.080708743846595e-02 9.076365269164367e-02 9.072003828369785e-02 9.067624443485320e-02 9.063227129485288e-02 - 9.058811915193726e-02 9.054378827004000e-02 9.049927881221763e-02 9.045459103770109e-02 9.040972520178260e-02 - 9.036468147234690e-02 9.031946007844127e-02 9.027406127956829e-02 9.022848531585773e-02 9.018273243214560e-02 - 9.013680287341128e-02 9.009069686920407e-02 9.004441462623869e-02 8.999795635152021e-02 8.995132231203949e-02 - 8.990451276610797e-02 8.985752795281814e-02 8.981036812557305e-02 8.976303351703613e-02 8.971552434037033e-02 - 8.966784087291869e-02 8.961998334831080e-02 8.957195192338249e-02 8.952374693198487e-02 8.947536869631613e-02 - 8.942681737354224e-02 8.937809319632291e-02 8.932919644498671e-02 8.928012738635183e-02 8.923088623240803e-02 - 8.918147319450437e-02 8.913188858291199e-02 8.908213269254797e-02 8.903220577223506e-02 8.898210800726358e-02 - 8.893183965769864e-02 8.888140104180198e-02 8.883079233855783e-02 8.878001380541380e-02 8.872906581842580e-02 - 8.867794859494142e-02 8.862666233412557e-02 8.857520730323154e-02 8.852358381153494e-02 8.847179212845252e-02 - 8.841983243253916e-02 8.836770502123131e-02 8.831541022882371e-02 8.826294830990469e-02 8.821031949641793e-02 - 8.815752403748606e-02 8.810456224863354e-02 8.805143437639511e-02 8.799814063336710e-02 8.794468134879541e-02 - 8.789105684257616e-02 8.783726738270531e-02 8.778331316928159e-02 8.772919447874153e-02 8.767491167446911e-02 - 8.762046495069514e-02 8.756585454037039e-02 8.751108081839833e-02 8.745614408581825e-02 8.740104459021790e-02 - 8.734578256007368e-02 8.729035830815834e-02 8.723477214343743e-02 8.717902426868683e-02 8.712311501918556e-02 - 8.706704476846663e-02 8.701081371877695e-02 8.695442211628683e-02 8.689787027644420e-02 8.684115853767592e-02 - 8.678428714435096e-02 8.672725629439892e-02 8.667006642064547e-02 8.661271785522098e-02 8.655521075244504e-02 - 8.649754543067346e-02 8.643972223965939e-02 8.638174147222141e-02 8.632360334916610e-02 8.626530814542391e-02 - 8.620685627786050e-02 8.614824804295058e-02 8.608948367410735e-02 8.603056343813603e-02 8.597148768708160e-02 - 8.591225676580187e-02 8.585287085352321e-02 8.579333027004854e-02 8.573363543090719e-02 8.567378659419787e-02 - 8.561378404241062e-02 8.555362810687137e-02 8.549331906471129e-02 8.543285719635127e-02 8.537224281446841e-02 - 8.531147627953188e-02 8.525055791649624e-02 8.518948798167383e-02 8.512826679756995e-02 8.506689470133286e-02 - 8.500537199311337e-02 8.494369892596923e-02 8.488187579804041e-02 8.481990305210670e-02 8.475778099074194e-02 - 8.469550984763315e-02 8.463308996695838e-02 8.457052168539449e-02 8.450780530789033e-02 8.444494110975011e-02 - 8.438192942971584e-02 8.431877065438623e-02 8.425546507059704e-02 8.419201297696736e-02 8.412841471805475e-02 - 8.406467061549007e-02 8.400078097306259e-02 8.393674609180030e-02 8.387256634619757e-02 8.380824209666674e-02 - 8.374377362095807e-02 8.367916122870038e-02 8.361440526888680e-02 8.354950611900661e-02 8.348446403538942e-02 - 8.341927927704872e-02 8.335395233905314e-02 8.328848356223681e-02 8.322287316371958e-02 8.315712149574238e-02 - 8.309122893699929e-02 8.302519583647612e-02 8.295902243510637e-02 8.289270907781640e-02 8.282625623697057e-02 - 8.275966417678003e-02 8.269293318851907e-02 8.262606370095599e-02 8.255905601211083e-02 8.249191039312886e-02 - 8.242462718945633e-02 8.235720681988298e-02 8.228964967784431e-02 8.222195602541869e-02 8.215412621284769e-02 - 8.208616062445039e-02 8.201805954142698e-02 8.194982329150195e-02 8.188145225476894e-02 8.181294680713293e-02 - 8.174430731452863e-02 8.167553412282050e-02 8.160662752890076e-02 8.153758789030935e-02 8.146841562526554e-02 - 8.139911098330359e-02 8.132967428676124e-02 8.126010603531450e-02 8.119040656216225e-02 8.112057615694021e-02 - 8.105061517994502e-02 8.098052402265073e-02 8.091030303880128e-02 8.083995248093376e-02 8.076947276447492e-02 - 8.069886435754116e-02 8.062812754457355e-02 8.055726265736828e-02 8.048627008799529e-02 8.041515020636995e-02 - 8.034390332540668e-02 8.027252974489747e-02 8.020102993492553e-02 8.012940431195667e-02 8.005765317555476e-02 - 7.998577686939379e-02 7.991377577220368e-02 7.984165027334414e-02 7.976940065907111e-02 7.969702727793032e-02 - 7.962453065567111e-02 7.955191112254574e-02 7.947916895239987e-02 7.940630455590227e-02 7.933331833212637e-02 - 7.926021063894960e-02 7.918698178217287e-02 7.911363216326053e-02 7.904016223823181e-02 7.896657235187955e-02 - 7.889286283938438e-02 7.881903406306398e-02 7.874508643443230e-02 7.867102031060058e-02 7.859683599526633e-02 - 7.852253395767629e-02 7.844811463098400e-02 7.837357831424305e-02 7.829892537205134e-02 7.822415619643758e-02 - 7.814927116484589e-02 7.807427062910767e-02 7.799915496813195e-02 7.792392464520610e-02 7.784858004657273e-02 - 7.777312150359181e-02 7.769754936428309e-02 7.762186403791040e-02 7.754606594385612e-02 7.747015537442642e-02 - 7.739413273994507e-02 7.731799855521804e-02 7.724175314852555e-02 7.716539684747571e-02 7.708893004657069e-02 - 7.701235315053030e-02 7.693566653742440e-02 7.685887055661017e-02 7.678196565918903e-02 7.670495227727288e-02 - 7.662783073280909e-02 7.655060142689749e-02 7.647326478202995e-02 7.639582115595660e-02 7.631827089499127e-02 - 7.624061438211467e-02 7.616285210329320e-02 7.608498447266238e-02 7.600701183814436e-02 7.592893457493513e-02 - 7.585075308733022e-02 7.577246778116596e-02 7.569407897223836e-02 7.561558707997214e-02 7.553699264667676e-02 - 7.545829602219666e-02 7.537949752159374e-02 7.530059752746436e-02 7.522159652110559e-02 7.514249491290788e-02 - 7.506329293711217e-02 7.498399108869409e-02 7.490458989985715e-02 7.482508965268882e-02 7.474549074308040e-02 - 7.466579363230305e-02 7.458599868473173e-02 7.450610623924510e-02 7.442611667561436e-02 7.434603053570255e-02 - 7.426584824442337e-02 7.418557009969678e-02 7.410519651333995e-02 7.402472793153594e-02 7.394416477978479e-02 - 7.386350736456949e-02 7.378275607823381e-02 7.370191147772952e-02 7.362097394239986e-02 7.353994380500382e-02 - 7.345882147239775e-02 7.337760740248925e-02 7.329630201371148e-02 7.321490559729334e-02 7.313341861868546e-02 - 7.305184160923943e-02 7.297017492620234e-02 7.288841893034562e-02 7.280657402242413e-02 7.272464064227188e-02 - 7.264261917439505e-02 7.256050997585588e-02 7.247831356170273e-02 7.239603038649280e-02 7.231366079163171e-02 - 7.223120520116612e-02 7.214866404160214e-02 7.206603769517569e-02 7.198332653777370e-02 7.190053098792457e-02 - 7.181765153838118e-02 7.173468863077177e-02 7.165164265282598e-02 7.156851395212357e-02 7.148530298289761e-02 - 7.140201021117390e-02 7.131863593482980e-02 7.123518058493326e-02 7.115164469180060e-02 7.106802866653637e-02 - 7.098433289103630e-02 7.090055775733806e-02 7.081670370962735e-02 7.073277114629017e-02 7.064876042084919e-02 - 7.056467204467058e-02 7.048050649359339e-02 7.039626411522021e-02 7.031194531783586e-02 7.022755055007633e-02 - 7.014308026270048e-02 7.005853477507426e-02 6.997391445865883e-02 6.988921994223606e-02 6.980445161374127e-02 - 6.971960976161336e-02 6.963469490630880e-02 6.954970749457975e-02 6.946464787470261e-02 6.937951638488904e-02 - 6.929431352344900e-02 6.920903988440608e-02 6.912369577614699e-02 6.903828154824053e-02 6.895279768813133e-02 - 6.886724462309453e-02 6.878162274040467e-02 6.869593242264821e-02 6.861017418575431e-02 6.852434851303352e-02 - 6.843845573229547e-02 6.835249626715924e-02 6.826647058722328e-02 6.818037912112360e-02 6.809422221022603e-02 - 6.800800023353686e-02 6.792171381432285e-02 6.783536337902803e-02 6.774894920974223e-02 6.766247176656806e-02 - 6.757593152448671e-02 6.748932891036163e-02 6.740266425451470e-02 6.731593799992638e-02 6.722915072040272e-02 - 6.714230278026269e-02 6.705539454984789e-02 6.696842651283096e-02 6.688139909018249e-02 6.679431266253504e-02 - 6.670716761081900e-02 6.661996446504156e-02 6.653270374249923e-02 6.644538575792285e-02 6.635801090742725e-02 - 6.627057965598744e-02 6.618309245387675e-02 6.609554968705872e-02 6.600795173819872e-02 6.592029914958422e-02 - 6.583259238307172e-02 6.574483179767340e-02 6.565701780669353e-02 6.556915085921187e-02 6.548123140723705e-02 - 6.539325979064996e-02 6.530523643565112e-02 6.521716192687264e-02 6.512903665438342e-02 6.504086097557776e-02 - 6.495263535156262e-02 6.486436022769713e-02 6.477603601048113e-02 6.468766306269763e-02 6.459924187637454e-02 - 6.451077298036002e-02 6.442225675573160e-02 6.433369358016772e-02 6.424508387319842e-02 6.415642813133042e-02 - 6.406772674084167e-02 6.397898002556264e-02 6.389018858464109e-02 6.380135290132970e-02 6.371247325592760e-02 - 6.362355010153516e-02 6.353458392277617e-02 6.344557514446422e-02 6.335652411846264e-02 6.326743126079815e-02 - 6.317829713990436e-02 6.308912216326193e-02 6.299990668862973e-02 6.291065117630994e-02 6.282135608306753e-02 - 6.273202182393535e-02 6.264264873955985e-02 6.255323731562341e-02 6.246378810230178e-02 6.237430143094801e-02 - 6.228477769978175e-02 6.219521740601344e-02 6.210562097707054e-02 6.201598879095212e-02 6.192632121693314e-02 - 6.183661876812600e-02 6.174688193928092e-02 6.165711112558074e-02 6.156730673780070e-02 6.147746920022401e-02 - 6.138759893800432e-02 6.129769633241683e-02 6.120776180293847e-02 6.111779589683188e-02 6.102779903735479e-02 - 6.093777158500626e-02 6.084771398591046e-02 6.075762667844817e-02 6.066751007308262e-02 6.057736455111417e-02 - 6.048719057054321e-02 6.039698864588414e-02 6.030675917961215e-02 6.021650256672047e-02 6.012621923377075e-02 - 6.003590961818356e-02 5.994557411659043e-02 5.985521308639186e-02 5.976482706463886e-02 5.967441656528669e-02 - 5.958398192281734e-02 5.949352353003544e-02 5.940304183449088e-02 5.931253730252380e-02 5.922201027916447e-02 - 5.913146112197507e-02 5.904089044032181e-02 5.895029868043596e-02 5.885968615096351e-02 5.876905326755812e-02 - 5.867840050492581e-02 5.858772833116550e-02 5.849703703991720e-02 5.840632705235495e-02 5.831559896255584e-02 - 5.822485314806121e-02 5.813408997000494e-02 5.804330987759122e-02 5.795251328764216e-02 5.786170059865808e-02 - 5.777087221384987e-02 5.768002859772193e-02 5.758917021647553e-02 5.749829746896256e-02 5.740741077575853e-02 - 5.731651056875526e-02 5.722559725171274e-02 5.713467118430270e-02 5.704373274635539e-02 5.695278249332581e-02 - 5.686182088614487e-02 5.677084826809927e-02 5.667986504336005e-02 5.658887165217444e-02 5.649786853613976e-02 - 5.640685602792318e-02 5.631583453941855e-02 5.622480462822738e-02 5.613376666437993e-02 5.604272100502515e-02 - 5.595166813210956e-02 5.586060845174765e-02 5.576954232437998e-02 5.567847012652845e-02 5.558739236715193e-02 - 5.549630955542323e-02 5.540522197136583e-02 5.531413002536285e-02 5.522303422299683e-02 5.513193492275553e-02 - 5.504083247717721e-02 5.494972729209355e-02 5.485861988753332e-02 5.476751071228679e-02 5.467640010379995e-02 - 5.458528846418693e-02 5.449417622493567e-02 5.440306381105370e-02 5.431195155656662e-02 5.422083985771245e-02 - 5.412972927459819e-02 5.403862019627870e-02 5.394751295390937e-02 5.385640797531270e-02 5.376530569364821e-02 - 5.367420650537214e-02 5.358311072889269e-02 5.349201882499156e-02 5.340093132499041e-02 5.330984856991542e-02 - 5.321877091980749e-02 5.312769879767464e-02 5.303663263591166e-02 5.294557280318667e-02 5.285451962473617e-02 - 5.276347361952855e-02 5.267243525955664e-02 5.258140485845194e-02 5.249038280640431e-02 5.239936952998326e-02 - 5.230836544276557e-02 5.221737088032564e-02 5.212638621732711e-02 5.203541199430900e-02 5.194444860919033e-02 - 5.185349638284296e-02 5.176255572471577e-02 5.167162705674897e-02 5.158071077330502e-02 5.148980718747074e-02 - 5.139891673261619e-02 5.130803993485430e-02 5.121717713356427e-02 5.112632867301793e-02 5.103549496777923e-02 - 5.094467643725986e-02 5.085387344650644e-02 5.076308630673339e-02 5.067231551219451e-02 5.058156153920812e-02 - 5.049082469322039e-02 5.040010534612100e-02 5.030940391348503e-02 5.021872080090227e-02 5.012805633824483e-02 - 5.003741087422633e-02 4.994678493647212e-02 4.985617892926745e-02 4.976559315779018e-02 4.967502801470126e-02 - 4.958448390876292e-02 4.949396122643934e-02 4.940346027599988e-02 4.931298146262254e-02 4.922252530167843e-02 - 4.913209213539834e-02 4.904168229174269e-02 4.895129616994274e-02 4.886093417404704e-02 4.877059666413559e-02 - 4.868028394034647e-02 4.858999646754281e-02 4.849973472130898e-02 4.840949900241633e-02 4.831928966152828e-02 - 4.822910709871525e-02 4.813895171199074e-02 4.804882382564480e-02 4.795872376124456e-02 4.786865202942978e-02 - 4.777860903855367e-02 4.768859507592742e-02 4.759861051627762e-02 4.750865575639699e-02 4.741873117406014e-02 - 4.732883706721817e-02 4.723897381137243e-02 4.714914191200375e-02 4.705934171189571e-02 4.696957351961628e-02 - 4.687983771740974e-02 4.679013469431771e-02 4.670046480338604e-02 4.661082833156779e-02 4.652122571187634e-02 - 4.643165741520618e-02 4.634212373882778e-02 4.625262501422293e-02 4.616316162482947e-02 4.607373395212459e-02 - 4.598434231610999e-02 4.589498701904484e-02 4.580566854223844e-02 4.571638729424802e-02 4.562714355109129e-02 - 4.553793766452621e-02 4.544877001582995e-02 4.535964097502848e-02 4.527055082898004e-02 4.518149992236756e-02 - 4.509248874970542e-02 4.500351765014129e-02 4.491458690878355e-02 4.482569689376779e-02 4.473684797939540e-02 - 4.464804050747698e-02 4.455927474828068e-02 4.447055110499822e-02 4.438187004531898e-02 4.429323185876936e-02 - 4.420463685202721e-02 4.411608538888854e-02 4.402757783926076e-02 4.393911451733543e-02 4.385069570127949e-02 - 4.376232184208732e-02 4.367399334643604e-02 4.358571047769912e-02 4.349747356709084e-02 4.340928298020802e-02 - 4.332113907381294e-02 4.323304212320113e-02 4.314499244129432e-02 4.305699050668390e-02 4.296903665620930e-02 - 4.288113115167341e-02 4.279327434447749e-02 4.270546659199307e-02 4.261770822231841e-02 4.252999949469098e-02 - 4.244234077853745e-02 4.235473252680039e-02 4.226717502474875e-02 4.217966855846760e-02 4.209221347273914e-02 - 4.200481011967518e-02 4.191745880279663e-02 4.183015977695443e-02 4.174291346429643e-02 4.165572027077732e-02 - 4.156858044734360e-02 4.148149429654668e-02 4.139446216241891e-02 4.130748439363172e-02 4.122056125606220e-02 - 4.113369302794675e-02 4.104688016346336e-02 4.096012300095512e-02 4.087342178434451e-02 4.078677683583759e-02 - 4.070018849668031e-02 4.061365708919899e-02 4.052718285106741e-02 4.044076611819490e-02 4.035440733833207e-02 - 4.026810678092279e-02 4.018186470341873e-02 4.009568143909095e-02 4.000955732298062e-02 3.992349264534106e-02 - 3.983748763759326e-02 3.975154269055037e-02 3.966565820546299e-02 3.957983441649049e-02 3.949407160357907e-02 - 3.940837009289332e-02 3.932273021031552e-02 3.923715221270428e-02 3.915163635394041e-02 3.906618306202975e-02 - 3.898079266950179e-02 3.889546539672872e-02 3.881020154253283e-02 3.872500143016262e-02 3.863986536923758e-02 - 3.855479358615301e-02 3.846978637959592e-02 3.838484417257106e-02 3.829996723484980e-02 3.821515580420295e-02 - 3.813041018714970e-02 3.804573069687705e-02 3.796111761198420e-02 3.787657114752344e-02 3.779209165765486e-02 - 3.770767953120019e-02 3.762333499040284e-02 3.753905829251161e-02 3.745484974542636e-02 3.737070965331050e-02 - 3.728663825939783e-02 3.720263578933122e-02 3.711870264209954e-02 3.703483914671073e-02 3.695104550519348e-02 - 3.686732199057993e-02 3.678366890490292e-02 3.670008654113079e-02 3.661657511036890e-02 3.653313487804630e-02 - 3.644976625150438e-02 3.636646948823320e-02 3.628324479604935e-02 3.620009246605282e-02 3.611701279349350e-02 - 3.603400604041686e-02 3.595107239910939e-02 3.586821219020735e-02 3.578542579441001e-02 3.570271341631447e-02 - 3.562007528519529e-02 3.553751169069794e-02 3.545502291550906e-02 3.537260919186706e-02 3.529027072401183e-02 - 3.520800787214007e-02 3.512582095428173e-02 3.504371015751370e-02 3.496167573051010e-02 3.487971795476078e-02 - 3.479783710598274e-02 3.471603337811516e-02 3.463430699965583e-02 3.455265835796009e-02 3.447108770848941e-02 - 3.438959523450754e-02 3.430818119554624e-02 3.422684586511945e-02 3.414558949343227e-02 3.406441225419257e-02 - 3.398331443038755e-02 3.390229638782512e-02 3.382135832287533e-02 3.374050043789544e-02 3.365972299780525e-02 - 3.357902626321113e-02 3.349841045119794e-02 3.341787574130316e-02 3.333742246166845e-02 3.325705092272905e-02 - 3.317676129391954e-02 3.309655379649919e-02 3.301642868788483e-02 3.293638622159571e-02 3.285642658240021e-02 - 3.277654996949401e-02 3.269675673538998e-02 3.261704712715797e-02 3.253742130855802e-02 3.245787951722746e-02 - 3.237842200259459e-02 3.229904899349424e-02 3.221976065258773e-02 3.214055722659278e-02 3.206143905506719e-02 - 3.198240632628265e-02 3.190345921865954e-02 3.182459797365254e-02 3.174582282841434e-02 3.166713398447476e-02 - 3.158853160183031e-02 3.151001597036992e-02 3.143158738592136e-02 3.135324600516137e-02 3.127499202279022e-02 - 3.119682567104914e-02 3.111874718036912e-02 3.104075672462514e-02 3.096285447683152e-02 3.088504075536903e-02 - 3.080731579690068e-02 3.072967974437236e-02 3.065213281019982e-02 3.057467522135681e-02 3.049730718652442e-02 - 3.042002885157935e-02 3.034284042889533e-02 3.026574223701538e-02 3.018873445294931e-02 3.011181722724549e-02 - 3.003499077734359e-02 2.995825532248887e-02 2.988161104857855e-02 2.980505808548691e-02 2.972859668986686e-02 - 2.965222714891759e-02 2.957594959806504e-02 2.949976420500935e-02 2.942367118266701e-02 2.934767073798247e-02 - 2.927176302885600e-02 2.919594820074298e-02 2.912022654108078e-02 2.904459827654108e-02 2.896906352751058e-02 - 2.889362247668933e-02 2.881827533028623e-02 2.874302228403363e-02 2.866786346167200e-02 2.859279903706265e-02 - 2.851782931145582e-02 2.844295445253672e-02 2.836817458182308e-02 2.829348988995876e-02 2.821890057629359e-02 - 2.814440681221589e-02 2.807000870175516e-02 2.799570646465742e-02 2.792150037589211e-02 2.784739055623231e-02 - 2.777337714638600e-02 2.769946033688953e-02 2.762564030841585e-02 2.755191720229608e-02 2.747829114116882e-02 - 2.740476237631904e-02 2.733133112357609e-02 2.725799748998750e-02 2.718476162641247e-02 2.711162371095654e-02 - 2.703858392279279e-02 2.696564237390275e-02 2.689279920452167e-02 2.682005468428394e-02 2.674740897239565e-02 - 2.667486216835663e-02 2.660241443488607e-02 2.653006594727732e-02 2.645781686062815e-02 2.638566726160998e-02 - 2.631361733435826e-02 2.624166733570949e-02 2.616981737012440e-02 2.609806754771221e-02 2.602641803533937e-02 - 2.595486900051258e-02 2.588342056814261e-02 2.581207282360541e-02 2.574082599292273e-02 2.566968028470076e-02 - 2.559863577456860e-02 2.552769259041796e-02 2.545685089381796e-02 2.538611083889939e-02 2.531547252137675e-02 - 2.524493605061727e-02 2.517450166747065e-02 2.510416952086314e-02 2.503393968681819e-02 2.496381230163825e-02 - 2.489378751859868e-02 2.482386547683629e-02 2.475404624292582e-02 2.468432996264991e-02 2.461471687229032e-02 - 2.454520706873932e-02 2.447580063686782e-02 2.440649771598710e-02 2.433729844997764e-02 2.426820294893469e-02 - 2.419921127712116e-02 2.413032362216684e-02 2.406154017790910e-02 2.399286100816565e-02 2.392428621229386e-02 - 2.385581592554643e-02 2.378745028409909e-02 2.371918936700126e-02 2.365103325041379e-02 2.358298215018098e-02 - 2.351503620457756e-02 2.344719546326070e-02 2.337946004127276e-02 2.331183006962702e-02 2.324430566419196e-02 - 2.317688687789637e-02 2.310957382435168e-02 2.304236671579298e-02 2.297526563441205e-02 2.290827063843882e-02 - 2.284138184722980e-02 2.277459938171355e-02 2.270792333404544e-02 2.264135374860772e-02 2.257489077729924e-02 - 2.250853459738779e-02 2.244228525780410e-02 2.237614283279474e-02 2.231010743473913e-02 2.224417917668724e-02 - 2.217835812285958e-02 2.211264432248330e-02 2.204703795931322e-02 2.198153916317220e-02 2.191614796666107e-02 - 2.185086445220271e-02 2.178568872592581e-02 2.172062089111306e-02 2.165566098457172e-02 2.159080908357505e-02 - 2.152606537366001e-02 2.146142993110024e-02 2.139690279242156e-02 2.133248404619538e-02 2.126817379406035e-02 - 2.120397211607284e-02 2.113987903003668e-02 2.107589465469217e-02 2.101201915594272e-02 2.094825256288664e-02 - 2.088459492231405e-02 2.082104632696408e-02 2.075760686991806e-02 2.069427660166107e-02 2.063105554609518e-02 - 2.056794384972622e-02 2.050494162894281e-02 2.044204890243054e-02 2.037926573000831e-02 2.031659219454509e-02 - 2.025402837653619e-02 2.019157429898307e-02 2.012923000978476e-02 2.006699566765361e-02 2.000487133731908e-02 - 1.994285703240835e-02 1.988095281849638e-02 1.981915877663429e-02 1.975747497137283e-02 1.969590139839621e-02 - 1.963443814246610e-02 1.957308535571834e-02 1.951184305296579e-02 1.945071125524195e-02 1.938969003470093e-02 - 1.932877945979973e-02 1.926797956444602e-02 1.920729035294688e-02 1.914671194302782e-02 1.908624443873623e-02 - 1.902588783798898e-02 1.896564217312377e-02 1.890550750534374e-02 1.884548390173623e-02 1.878557136933607e-02 - 1.872576992282937e-02 1.866607969751645e-02 1.860650074902563e-02 1.854703306920867e-02 1.848767670108510e-02 - 1.842843170242723e-02 1.836929811895166e-02 1.831027593341436e-02 1.825136519709141e-02 1.819256603897189e-02 - 1.813387846842225e-02 1.807530248298604e-02 1.801683812530333e-02 1.795848544988909e-02 1.790024447932676e-02 - 1.784211518704799e-02 1.778409766075985e-02 1.772619199567190e-02 1.766839817113224e-02 1.761071619932593e-02 - 1.755314612276550e-02 1.749568797940397e-02 1.743834176385679e-02 1.738110747126647e-02 1.732398520795971e-02 - 1.726697501687009e-02 1.721007686976607e-02 1.715329079150987e-02 1.709661681774517e-02 1.704005496995066e-02 - 1.698360522175755e-02 1.692726759648597e-02 1.687104219632033e-02 1.681492902190890e-02 1.675892805218375e-02 - 1.670303930866012e-02 1.664726282100333e-02 1.659159859573434e-02 1.653604659349284e-02 1.648060687061485e-02 - 1.642527950537791e-02 1.637006446137386e-02 1.631496172845883e-02 1.625997133117372e-02 1.620509328829045e-02 - 1.615032758053278e-02 1.609567417924041e-02 1.604113316306734e-02 1.598670456411958e-02 1.593238833576510e-02 - 1.587818448257840e-02 1.582409302120838e-02 1.577011395254391e-02 1.571624723647299e-02 1.566249287063067e-02 - 1.560885093721684e-02 1.555532142372995e-02 1.550190428691725e-02 1.544859953345741e-02 1.539540716895692e-02 - 1.534232718045593e-02 1.528935952298772e-02 1.523650422043375e-02 1.518376132655854e-02 1.513113080051426e-02 - 1.507861261080395e-02 1.502620675643192e-02 1.497391324399307e-02 1.492173204313831e-02 1.486966309840608e-02 - 1.481770646058926e-02 1.476586215324725e-02 1.471413011485714e-02 1.466251032223325e-02 1.461100277337298e-02 - 1.455960746411957e-02 1.450832433725036e-02 1.445715335761371e-02 1.440609458945226e-02 1.435514801148310e-02 - 1.430431355790390e-02 1.425359121341204e-02 1.420298097105418e-02 1.415248280845771e-02 1.410209665546564e-02 - 1.405182250942155e-02 1.400166041623447e-02 1.395161031395394e-02 1.390167215017196e-02 1.385184591619880e-02 - 1.380213159317199e-02 1.375252913341631e-02 1.370303846818604e-02 1.365365962256361e-02 1.360439260851619e-02 - 1.355523734898775e-02 1.350619380184460e-02 1.345726194685572e-02 1.340844175819677e-02 1.335973317080697e-02 - 1.331113613029375e-02 1.326265067233158e-02 1.321427676765317e-02 1.316601433678336e-02 1.311786334248669e-02 - 1.306982375879771e-02 1.302189555021592e-02 1.297407863461756e-02 1.292637298076667e-02 1.287877861455418e-02 - 1.283129547339001e-02 1.278392348592105e-02 1.273666261347862e-02 1.268951282495219e-02 1.264247406704279e-02 - 1.259554625321822e-02 1.254872937642621e-02 1.250202343522368e-02 1.245542834900525e-02 1.240894405313941e-02 - 1.236257050462080e-02 1.231630767029411e-02 1.227015547343941e-02 1.222411383176151e-02 1.217818275998809e-02 - 1.213236222220244e-02 1.208665212384520e-02 1.204105241018576e-02 1.199556303854240e-02 1.195018395838791e-02 - 1.190491507365890e-02 1.185975632952753e-02 1.181470773836339e-02 1.176976922480089e-02 1.172494069835479e-02 - 1.168022211004454e-02 1.163561340968965e-02 1.159111452823667e-02 1.154672536811994e-02 1.150244589927961e-02 - 1.145827610670764e-02 1.141421589534856e-02 1.137026518661645e-02 1.132642392502224e-02 1.128269205281729e-02 - 1.123906948383837e-02 1.119555612518262e-02 1.115215196588227e-02 1.110885695891592e-02 1.106567099667937e-02 - 1.102259400831050e-02 1.097962593601935e-02 1.093676671505125e-02 1.089401623812122e-02 1.085137442757511e-02 - 1.080884127911701e-02 1.076641671182367e-02 1.072410061923310e-02 1.068189293399554e-02 1.063979359231152e-02 - 1.059780251428707e-02 1.055591958418482e-02 1.051414475108346e-02 1.047247799305691e-02 1.043091920126454e-02 - 1.038946827795377e-02 1.034812515386981e-02 1.030688975996647e-02 1.026576200007446e-02 1.022474176231751e-02 - 1.018382901647819e-02 1.014302370834395e-02 1.010232571551464e-02 1.006173495028295e-02 1.002125134058496e-02 - 9.980874808217161e-03 9.940605238090998e-03 9.900442533803457e-03 9.860386673211879e-03 9.820437566105797e-03 - 9.780595089730604e-03 9.740859166502601e-03 9.701229717604148e-03 9.661706648486619e-03 9.622289837555094e-03 - 9.582979211676392e-03 9.543774731762645e-03 9.504676285752028e-03 9.465683761437204e-03 9.426797070527869e-03 - 9.388016130061547e-03 9.349340837763126e-03 9.310771071700266e-03 9.272306774287777e-03 9.233947879847340e-03 - 9.195694263233465e-03 9.157545820041815e-03 9.119502462398593e-03 9.081564104605406e-03 9.043730620594144e-03 - 9.006001891771507e-03 8.968377884117109e-03 8.930858503326412e-03 8.893443610144467e-03 8.856133108771761e-03 - 8.818926910576046e-03 8.781824915337199e-03 8.744826984807866e-03 8.707933026764444e-03 8.671142997995955e-03 - 8.634456771198624e-03 8.597874217863410e-03 8.561395247729468e-03 8.525019762147885e-03 8.488747643810387e-03 - 8.452578758551675e-03 8.416513035074836e-03 8.380550402064440e-03 8.344690718755845e-03 8.308933866062409e-03 - 8.273279745485652e-03 8.237728259206089e-03 8.202279277607399e-03 8.166932668725525e-03 8.131688373197346e-03 - 8.096546291813443e-03 8.061506280849479e-03 8.026568229604077e-03 7.991732033790425e-03 7.956997581179438e-03 - 7.922364735477982e-03 7.887833385768220e-03 7.853403460644042e-03 7.819074838170454e-03 7.784847385209607e-03 - 7.750720988388416e-03 7.716695538073770e-03 7.682770912288046e-03 7.648946965667346e-03 7.615223607644973e-03 - 7.581600758648286e-03 7.548078272068747e-03 7.514656018308716e-03 7.481333888256649e-03 7.448111767084748e-03 - 7.414989518558892e-03 7.381967002509678e-03 7.349044141005179e-03 7.316220829119200e-03 7.283496916229069e-03 - 7.250872276568530e-03 7.218346796125786e-03 7.185920358959778e-03 7.153592811909379e-03 7.121364026156801e-03 - 7.089233934032213e-03 7.057202401526107e-03 7.025269274784423e-03 6.993434437254338e-03 6.961697770726437e-03 - 6.930059144137623e-03 6.898518406074085e-03 6.867075445461445e-03 6.835730169890301e-03 6.804482436531050e-03 - 6.773332103630715e-03 6.742279042830752e-03 6.711323134446215e-03 6.680464239400761e-03 6.649702204950062e-03 - 6.619036937093537e-03 6.588468325547939e-03 6.557996212108587e-03 6.527620458965777e-03 6.497340941897300e-03 - 6.467157538628341e-03 6.437070090473932e-03 6.407078453159759e-03 6.377182548096138e-03 6.347382238649846e-03 - 6.317677359750170e-03 6.288067782822399e-03 6.258553381641384e-03 6.229134019133821e-03 6.199809533909972e-03 - 6.170579803332374e-03 6.141444731866248e-03 6.112404164377095e-03 6.083457948651627e-03 6.054605954063168e-03 - 6.025848047899531e-03 5.997184082520315e-03 5.968613898555075e-03 5.940137388272029e-03 5.911754435973001e-03 - 5.883464876798197e-03 5.855268565478542e-03 5.827165369238958e-03 5.799155152943781e-03 5.771237757858197e-03 - 5.743413031370796e-03 5.715680873423079e-03 5.688041146137241e-03 5.660493683352233e-03 5.633038344713090e-03 - 5.605674994693767e-03 5.578403490874967e-03 5.551223666073857e-03 5.524135383482108e-03 5.497138538622371e-03 - 5.470232973711985e-03 5.443418527865922e-03 5.416695061766649e-03 5.390062436684385e-03 5.363520500801443e-03 - 5.337069085950208e-03 5.310708070645691e-03 5.284437334686721e-03 5.258256709167105e-03 5.232166039984466e-03 - 5.206165186351173e-03 5.180254006079314e-03 5.154432337116667e-03 5.128700017566677e-03 5.103056934758595e-03 - 5.077502948400768e-03 5.052037887552509e-03 5.026661602896529e-03 5.001373950974750e-03 4.976174783805283e-03 - 4.951063931174483e-03 4.926041244835856e-03 4.901106610871052e-03 4.876259869861805e-03 4.851500854152867e-03 - 4.826829416485723e-03 4.802245411238555e-03 4.777748682676776e-03 4.753339057595283e-03 4.729016402174706e-03 - 4.704780591018902e-03 4.680631452386119e-03 4.656568824906738e-03 4.632592561043116e-03 4.608702512089780e-03 - 4.584898512841469e-03 4.561180394112987e-03 4.537548032865621e-03 4.514001286180084e-03 4.490539978046344e-03 - 4.467163952568486e-03 4.443873060291688e-03 4.420667147623122e-03 4.397546041481102e-03 4.374509584352294e-03 - 4.351557654555007e-03 4.328690090868674e-03 4.305906719484884e-03 4.283207387010587e-03 4.260591942258349e-03 - 4.238060226010617e-03 4.215612060889534e-03 4.193247302342208e-03 4.170965820265097e-03 4.148767441443334e-03 - 4.126651998168965e-03 4.104619336614093e-03 4.082669303050944e-03 4.060801730082235e-03 4.039016442831475e-03 - 4.017313308452854e-03 3.995692181792875e-03 3.974152883344686e-03 3.952695251163741e-03 3.931319130911208e-03 - 3.910024364917125e-03 3.888810777810686e-03 3.867678204037116e-03 3.846626514691173e-03 3.825655547709963e-03 - 3.804765124734014e-03 3.783955087456414e-03 3.763225279741349e-03 3.742575538839424e-03 3.722005684569956e-03 - 3.701515563829318e-03 3.681105042529648e-03 3.660773945892437e-03 3.640522100973796e-03 3.620349349516141e-03 - 3.600255533338096e-03 3.580240483202974e-03 3.560304020332013e-03 3.540446002992503e-03 3.520666284206718e-03 - 3.500964682823155e-03 3.481341031384374e-03 3.461795171007476e-03 3.442326941040924e-03 3.422936165061433e-03 - 3.403622671201535e-03 3.384386323473485e-03 3.365226959961049e-03 3.346144399498565e-03 3.327138478378434e-03 - 3.308209036536853e-03 3.289355909461925e-03 3.270578915351533e-03 3.251877893639187e-03 3.233252706195778e-03 - 3.214703178029928e-03 3.196229132118811e-03 3.177830406368320e-03 3.159506839403438e-03 3.141258260810600e-03 - 3.123084488811596e-03 3.104985374197366e-03 3.086960768611876e-03 3.069010490077185e-03 3.051134366997480e-03 - 3.033332237019262e-03 3.015603936903380e-03 2.997949290147841e-03 2.980368120588831e-03 2.962860285290425e-03 - 2.945425622240710e-03 2.928063948810786e-03 2.910775098113858e-03 2.893558906982335e-03 2.876415208617919e-03 - 2.859343821344898e-03 2.842344578930633e-03 2.825417338731532e-03 2.808561926446875e-03 2.791778162629514e-03 - 2.775065882662152e-03 2.758424922052246e-03 2.741855109318431e-03 2.725356262118107e-03 2.708928224810950e-03 - 2.692570847204586e-03 2.676283947708203e-03 2.660067352018658e-03 2.643920895408666e-03 2.627844412630983e-03 - 2.611837727127577e-03 2.595900659591014e-03 2.580033062057212e-03 2.564234773200918e-03 2.548505609580814e-03 - 2.532845401329118e-03 2.517253983314282e-03 2.501731188088862e-03 2.486276834298587e-03 2.470890751027053e-03 - 2.455572791828030e-03 2.440322784214469e-03 2.425140547489158e-03 2.410025914370114e-03 2.394978718743150e-03 - 2.379998789312335e-03 2.365085943631231e-03 2.350240020749269e-03 2.335460868942443e-03 2.320748308349550e-03 - 2.306102163022297e-03 2.291522266200105e-03 2.277008450857895e-03 2.262560541519312e-03 2.248178358404482e-03 - 2.233861748393963e-03 2.219610550590767e-03 2.205424582540762e-03 2.191303672653564e-03 2.177247654150935e-03 - 2.163256358437406e-03 2.149329606085116e-03 2.135467224025938e-03 2.121669062135428e-03 2.107934949596006e-03 - 2.094264705479671e-03 2.080658161247730e-03 2.067115150052171e-03 2.053635501035216e-03 2.040219032033609e-03 - 2.026865578574763e-03 2.013574988607888e-03 2.000347084189316e-03 1.987181688126059e-03 1.974078632294973e-03 - 1.961037750159034e-03 1.948058867783843e-03 1.935141804192390e-03 1.922286403096425e-03 1.909492504980594e-03 - 1.896759928265229e-03 1.884088500763132e-03 1.871478055631251e-03 1.858928424089599e-03 1.846439428400912e-03 - 1.834010894228015e-03 1.821642669213327e-03 1.809334584628213e-03 1.797086460037203e-03 1.784898126770644e-03 - 1.772769417737367e-03 1.760700162615002e-03 1.748690181778845e-03 1.736739308394668e-03 1.724847388831493e-03 - 1.713014248130287e-03 1.701239709792772e-03 1.689523605558227e-03 1.677865768960374e-03 1.666266027776910e-03 - 1.654724201747776e-03 1.643240132443950e-03 1.631813662093462e-03 1.620444610863358e-03 1.609132806416696e-03 - 1.597878082462674e-03 1.586680271167799e-03 1.575539197124769e-03 1.564454685806544e-03 1.553426583192850e-03 - 1.542454723186195e-03 1.531538926942232e-03 1.520679025889417e-03 1.509874853790604e-03 1.499126242122267e-03 - 1.488433013507451e-03 1.477795000037597e-03 1.467212048115432e-03 1.456683985464255e-03 1.446210636719452e-03 - 1.435791835117153e-03 1.425427414393694e-03 1.415117204211151e-03 1.404861027594662e-03 1.394658724273689e-03 - 1.384510137356095e-03 1.374415090575271e-03 1.364373412382042e-03 1.354384937246215e-03 1.344449499301808e-03 - 1.334566925970926e-03 1.324737043332181e-03 1.314959696939330e-03 1.305234723823342e-03 1.295561947265019e-03 - 1.285941199528206e-03 1.276372315963847e-03 1.266855130463658e-03 1.257389468322312e-03 1.247975161599065e-03 - 1.238612057815808e-03 1.229299987951490e-03 1.220038778115428e-03 1.210828263449681e-03 1.201668279419893e-03 - 1.192558658328712e-03 1.183499226491516e-03 1.174489822883548e-03 1.165530291825810e-03 1.156620461345326e-03 - 1.147760161971411e-03 1.138949229776032e-03 1.130187500878873e-03 1.121474806129454e-03 1.112810973708310e-03 - 1.104195848566657e-03 1.095629271185936e-03 1.087111069073448e-03 1.078641075658101e-03 1.070219127753748e-03 - 1.061845062287274e-03 1.053518708913237e-03 1.045239900848634e-03 1.037008485418972e-03 1.028824298155823e-03 - 1.020687168641753e-03 1.012596933141099e-03 1.004553429894111e-03 9.965564952721074e-04 9.886059579764911e-04 - 9.807016577383673e-04 9.728434421263681e-04 9.650311428619217e-04 9.572645925441391e-04 9.495436296868831e-04 - 9.418680934992058e-04 9.342378189983833e-04 9.266526374013966e-04 9.191123940951565e-04 9.116169327210938e-04 - 9.041660846048507e-04 8.967596865276394e-04 8.893975784458786e-04 8.820795994475233e-04 8.748055834052338e-04 - 8.675753662309574e-04 8.603887967412885e-04 8.532457145816050e-04 8.461459528881801e-04 8.390893515597134e-04 - 8.320757512954288e-04 8.251049910410551e-04 8.181769052102455e-04 8.112913354889369e-04 8.044481307476467e-04 - 7.976471276304203e-04 7.908881626723219e-04 7.841710779271092e-04 7.774957151422038e-04 7.708619131557394e-04 - 7.642695077220146e-04 7.577183458379644e-04 7.512082748417916e-04 7.447391309361296e-04 7.383107537219758e-04 - 7.319229861740803e-04 7.255756719189899e-04 7.192686493738265e-04 7.130017570250109e-04 7.067748463319056e-04 - 7.005877618919097e-04 6.944403408515077e-04 6.883324261093659e-04 6.822638623160529e-04 6.762344932684062e-04 - 6.702441573916524e-04 6.642926986443232e-04 6.583799694858947e-04 6.525058122102392e-04 6.466700672293728e-04 - 6.408725793807691e-04 6.351131947715911e-04 6.293917574305099e-04 6.237081070877600e-04 6.180620932909059e-04 - 6.124535677685099e-04 6.068823714677426e-04 6.013483481700967e-04 5.958513451670206e-04 5.903912096703989e-04 - 5.849677853780454e-04 5.795809154020751e-04 5.742304534677881e-04 5.689162489783443e-04 5.636381442526738e-04 - 5.583959863498279e-04 5.531896240506697e-04 5.480189055622431e-04 5.428836748799696e-04 5.377837797240800e-04 - 5.327190759830209e-04 5.276894110958636e-04 5.226946300477827e-04 5.177345825024617e-04 5.128091188465486e-04 - 5.079180879528710e-04 5.030613351067660e-04 4.982387130290541e-04 4.934500776624026e-04 4.886952758062522e-04 - 4.839741558713263e-04 4.792865695826084e-04 4.746323688630657e-04 4.700114029595036e-04 4.654235198613055e-04 - 4.608685766627245e-04 4.563464280591107e-04 4.518569219186994e-04 4.473999099762359e-04 4.429752457691277e-04 - 4.385827824909558e-04 4.342223700107388e-04 4.298938604566902e-04 4.255971135329090e-04 4.213319826090788e-04 - 4.170983180859963e-04 4.128959744299958e-04 4.087248069577171e-04 4.045846700338900e-04 4.004754147907325e-04 - 3.963968979642262e-04 3.923489801919561e-04 3.883315144592717e-04 3.843443544269981e-04 3.803873568608614e-04 - 3.764603788261386e-04 3.725632754784107e-04 3.686959004384349e-04 3.648581147870281e-04 3.610497787686854e-04 - 3.572707463878945e-04 3.535208745539621e-04 3.498000220657478e-04 3.461080477383748e-04 3.424448076363575e-04 - 3.388101589386426e-04 3.352039657815740e-04 3.316260877532703e-04 3.280763812137888e-04 3.245547060139738e-04 - 3.210609229167205e-04 3.175948921405597e-04 3.141564711604799e-04 3.107455215081982e-04 3.073619088757455e-04 - 3.040054927848886e-04 3.006761327105527e-04 2.973736909925681e-04 2.940980303881470e-04 2.908490123115160e-04 - 2.876264965105581e-04 2.844303488008553e-04 2.812604353029198e-04 2.781166164989417e-04 2.749987551423296e-04 - 2.719067158817455e-04 2.688403633742989e-04 2.657995602462465e-04 2.627841695326067e-04 2.597940603791381e-04 - 2.568290988582687e-04 2.538891477672460e-04 2.509740728301346e-04 2.480837407612393e-04 2.452180180501483e-04 - 2.423767689150773e-04 2.395598604007145e-04 2.367671637065971e-04 2.339985452156380e-04 2.312538707417314e-04 - 2.285330086975239e-04 2.258358279521211e-04 2.231621965330517e-04 2.205119809474630e-04 2.178850522930381e-04 - 2.152812827957872e-04 2.127005401044592e-04 2.101426932429596e-04 2.076076129630843e-04 2.050951703707553e-04 - 2.026052350574154e-04 2.001376764695323e-04 1.976923692963255e-04 1.952691863631026e-04 1.928679973631469e-04 - 1.904886744667185e-04 1.881310908124045e-04 1.857951194428946e-04 1.834806317739651e-04 1.811875010647571e-04 - 1.789156043640377e-04 1.766648152326652e-04 1.744350063601967e-04 1.722260526922104e-04 1.700378296945535e-04 - 1.678702123432160e-04 1.657230742438847e-04 1.635962925697728e-04 1.614897461072756e-04 1.594033097074569e-04 - 1.573368592094730e-04 1.552902721810668e-04 1.532634264532060e-04 1.512561988693490e-04 1.492684659352835e-04 - 1.473001083560244e-04 1.453510059716440e-04 1.434210358729406e-04 1.415100771164913e-04 1.396180097223186e-04 - 1.377447137267307e-04 1.358900680130841e-04 1.340539526362652e-04 1.322362510498252e-04 1.304368442346035e-04 - 1.286556121626104e-04 1.268924368411170e-04 1.251472007379926e-04 1.234197860690376e-04 1.217100740639766e-04 - 1.200179485071157e-04 1.183432949752447e-04 1.166859960758634e-04 1.150459349477667e-04 1.134229962637926e-04 - 1.118170649981152e-04 1.102280255615328e-04 1.086557620076939e-04 1.071001616642248e-04 1.055611117192228e-04 - 1.040384970703678e-04 1.025322040262462e-04 1.010421198490596e-04 9.956813202096472e-05 9.811012722455996e-05 - 9.666799283658755e-05 9.524161921027426e-05 9.383089505710078e-05 9.243570803818307e-05 9.105594759252440e-05 - 8.969150364397068e-05 8.834226604286881e-05 8.700812397260034e-05 8.568896841419017e-05 8.438469212608002e-05 - 8.309518568825200e-05 8.182033994906239e-05 8.056004718218619e-05 7.931419998170841e-05 7.808269064296404e-05 - 7.686541112857092e-05 7.566225594198306e-05 7.447311991364301e-05 7.329789600792314e-05 7.213647827366786e-05 - 7.098876170896106e-05 6.985464163907488e-05 6.873401282606521e-05 6.762677039259616e-05 6.653281205307769e-05 - 6.545203459530543e-05 6.438433381335806e-05 6.332960688869456e-05 6.228775159650499e-05 6.125866586213212e-05 - 6.024224709312662e-05 5.923839394811549e-05 5.824700680510711e-05 5.726798458845817e-05 5.630122626966778e-05 - 5.534663202079377e-05 5.440410243697520e-05 5.347353805513213e-05 5.255483915897720e-05 5.164790790372327e-05 - 5.075264706713765e-05 4.986895809670387e-05 4.899674321102013e-05 4.813590548272275e-05 4.728634834520723e-05 - 4.644797500988253e-05 4.562068892036128e-05 4.480439551815946e-05 4.399899988301035e-05 4.320440633696577e-05 - 4.242052030402665e-05 4.164724778526068e-05 4.088449502887978e-05 4.013216802138054e-05 3.939017361734100e-05 - 3.865842020891389e-05 3.793681530287127e-05 3.722526637683801e-05 3.652368195642655e-05 3.583197100166348e-05 - 3.515004257550265e-05 3.447780563338777e-05 3.381517049939420e-05 3.316204825033269e-05 3.251834908257212e-05 - 3.188398376275541e-05 3.125886384349450e-05 3.064290126992314e-05 3.003600797392098e-05 2.943809607683111e-05 - 2.884907925556903e-05 2.826887119646782e-05 2.769738505988399e-05 2.713453488302094e-05 2.658023526748751e-05 - 2.603440114263312e-05 2.549694738792051e-05 2.496778949423694e-05 2.444684425976710e-05 2.393402805764408e-05 - 2.342925723948219e-05 2.293244905822871e-05 2.244352120797989e-05 2.196239159983278e-05 2.148897818423003e-05 - 2.102319990982268e-05 2.056497650699234e-05 2.011422722229805e-05 1.967087173846936e-05 1.923483045310688e-05 - 1.880602417859793e-05 1.838437386840237e-05 1.796980069033951e-05 1.756222699777835e-05 1.716157539169325e-05 - 1.676776819323897e-05 1.638072842752046e-05 1.600037965967140e-05 1.562664583506045e-05 1.525945101785764e-05 - 1.489871974108943e-05 1.454437762041471e-05 1.419635018600421e-05 1.385456300630342e-05 1.351894241351905e-05 - 1.318941519258516e-05 1.286590843459537e-05 1.254834939298960e-05 1.223666606495489e-05 1.193078719950152e-05 - 1.163064137727749e-05 1.133615754527981e-05 1.104726530816775e-05 1.076389469662666e-05 1.048597599093073e-05 - 1.021343974753131e-05 9.946217419267380e-06 9.684240838620889e-06 9.427441790773100e-06 9.175752643853506e-06 - 8.929106280098344e-06 8.687435997194528e-06 8.450675338936148e-06 8.218758257424963e-06 7.991619584870982e-06 - 7.769194298227330e-06 7.551417507621627e-06 7.338224987041431e-06 7.129552955942858e-06 6.925337997222138e-06 - 6.725516977155444e-06 6.530027335862672e-06 6.338807194551445e-06 6.151794769434223e-06 5.968928615355085e-06 - 5.790147878391894e-06 5.615392155261267e-06 5.444601365246586e-06 5.277715758699128e-06 5.114676291438329e-06 - 4.955424365336747e-06 4.799901525655197e-06 4.648049820836300e-06 4.499811793985402e-06 4.355130438087899e-06 - 4.213949069835453e-06 4.076211399540344e-06 3.941861865039729e-06 3.810845196499976e-06 3.683106361660463e-06 - 3.558590910585118e-06 3.437244835818923e-06 3.319014541070219e-06 3.203846795533912e-06 3.091688852089737e-06 - 2.982488579295818e-06 2.876194109656037e-06 2.772753925582794e-06 2.672117063800105e-06 2.574233014808049e-06 - 2.479051643033932e-06 2.386523210361943e-06 2.296598552297165e-06 2.209228971591383e-06 2.124366069775506e-06 - 2.041961906232304e-06 1.961969019732135e-06 1.884340423438541e-06 1.809029507182080e-06 1.735990071613592e-06 - 1.665176534356502e-06 1.596543687803830e-06 1.530046658503296e-06 1.465641105678908e-06 1.403283128309336e-06 - 1.342929271825179e-06 1.284536503035511e-06 1.228062233226246e-06 1.173464436795038e-06 1.120701460082181e-06 - 1.069732028902882e-06 1.020515399241352e-06 9.730112822753146e-07 9.271798002921477e-07 8.829815278752155e-07 - 8.403775374680640e-07 7.993293716485992e-07 7.597989809176624e-07 7.217487560416926e-07 6.851415619710593e-07 - 6.499407524191172e-07 6.161100929136179e-07 5.836137918783888e-07 5.524166028233452e-07 5.224836968385216e-07 - 4.937806609639881e-07 4.662735849361845e-07 4.399289991547822e-07 4.147139110260500e-07 3.905957813609555e-07 - 3.675425084859321e-07 3.455225231396512e-07 3.245046871736890e-07 3.044582778536548e-07 2.853530928283095e-07 - 2.671593859185241e-07 2.498478511400059e-07 2.333896726605378e-07 2.177564985206194e-07 2.029204500538344e-07 - 1.888541210793108e-07 1.755305458522738e-07 1.629232393506973e-07 1.510062144201093e-07 1.397539174372155e-07 - 1.291412703741045e-07 1.191437050672961e-07 1.097370923617762e-07 1.008977778162274e-07 9.260259669902208e-08 - 8.482883141984319e-08 7.755426670738778e-08 7.075715683240311e-08 6.441620467100832e-08 5.851063608240125e-08 - 5.302013495440350e-08 4.792483459927075e-08 4.320538955913144e-08 3.884291294265582e-08 3.481898425658018e-08 - 3.111569527451850e-08 2.771559342817648e-08 2.460171067137196e-08 2.175758348333717e-08 1.916719757773861e-08 - 1.681503457183268e-08 1.468607978947252e-08 1.276576812429566e-08 1.104003874048358e-08 9.495328649625366e-09 - 8.118528715645258e-09 6.897042498203040e-09 5.818760232281117e-09 4.872032311209139e-09 4.045732447740840e-09 - 3.329210679517489e-09 2.712284881132093e-09 2.185301687016959e-09 1.739076161987666e-09 1.364901589086205e-09 - 1.054599065845252e-09 8.004535320102697e-10 5.952414597054672e-10 4.322622496028902e-10 3.052766304104823e-10 - 2.085502003918036e-10 1.368642901349301e-10 8.546164059834664e-11 5.010215808832263e-11 2.705311520847365e-11 - 1.304599438344934e-11 5.339090781311160e-12 1.692041320615927e-12 3.321208355096226e-13 6.781366937015517e-15 diff --git a/examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy deleted file mode 100644 index 3af058baf7..0000000000 --- a/examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy +++ /dev/null @@ -1,6006 +0,0 @@ -Cobalt EAM potential: G. P. Purja Pun and Y. Mishin, Phys. Rev. B xx, 004100 (2012) (in press) -Data below r = 1.5 A is extrapolated. F(Rho) data not extrapolated. -Created on Wed Sep 26 17:29:54 2012 -1 Co -10000 4.788742913000000e-04 10000 6.499539000000001e-04 6.499539000000000e+00 -27 5.893320000000000e+01 2.507000000000000e+00 hcp - -1.680303080000000e-02 -1.879913964471138e-02 -2.091739081044659e-02 -2.303564197615629e-02 -2.503175082079116e-02 - -2.681996612041136e-02 -2.846010103933253e-02 -3.003179469400266e-02 -3.154842562124295e-02 -3.300931506782415e-02 - -3.442381570000001e-02 -3.580233366714632e-02 -3.714945763166951e-02 -3.846832763111274e-02 -3.976210669053554e-02 - -4.103374908125148e-02 -4.228535107207521e-02 -4.351872320172212e-02 -4.473539109100971e-02 -4.593674531110434e-02 - -4.712392115246503e-02 -4.829795108118731e-02 -4.945971154662068e-02 -5.061001094949964e-02 -5.174954151284258e-02 - -5.287894548568519e-02 -5.399878139884967e-02 -5.510957102742049e-02 -5.621177284174523e-02 -5.730581735016625e-02 - -5.839208651773948e-02 -5.947094067448531e-02 -6.054270215356945e-02 -6.160767623453070e-02 -6.266613797925552e-02 - -6.371834880435967e-02 -6.476454576302854e-02 -6.580495483863194e-02 -6.683978209870683e-02 -6.786922452279202e-02 - -6.889346265426707e-02 -6.991266949659354e-02 -7.092700432972064e-02 -7.193662011890395e-02 -7.294165829413661e-02 - -7.394225494811188e-02 -7.493853635958479e-02 -7.593062425993033e-02 -7.691863200494162e-02 -7.790266905197404e-02 - -7.888283764021425e-02 -7.985923664258643e-02 -8.083195868513401e-02 -8.180109346997461e-02 -8.276672525040257e-02 - -8.372893572415932e-02 -8.468780181559693e-02 -8.564339820511864e-02 -8.659579537072190e-02 -8.754506181558984e-02 - -8.849126234605453e-02 -8.943446001410092e-02 -9.037471455117625e-02 -9.131208412841478e-02 -9.224662399623559e-02 - -9.317838801321032e-02 -9.410742739123597e-02 -9.503379209498646e-02 -9.595752974691800e-02 -9.687868684755546e-02 - -9.779730775191570e-02 -9.871343580120046e-02 -9.962711242685958e-02 -1.005383781439554e-01 -1.014472717117523e-01 - -1.023538310651938e-01 -1.032580925977369e-01 -1.041600919387366e-01 -1.050598632026273e-01 -1.059574398208095e-01 - -1.068528540074704e-01 -1.077461373458066e-01 -1.086373201122683e-01 -1.095264320028559e-01 -1.104135016985198e-01 - -1.112985573626335e-01 -1.121816261033156e-01 -1.130627345294291e-01 -1.139419083080692e-01 -1.148191726662944e-01 - -1.156945520127823e-01 -1.165680703406650e-01 -1.174397507992727e-01 -1.183096161572101e-01 -1.191776885039839e-01 - -1.200439895800373e-01 -1.209085404086571e-01 -1.217713616730546e-01 -1.226324734132936e-01 -1.234918953788508e-01 - -1.243496468000000e-01 -1.252057466264230e-01 -1.260602132046348e-01 -1.269130646065986e-01 -1.277643184092350e-01 - -1.286139919512837e-01 -1.294621021138015e-01 -1.303086655551642e-01 -1.311536985007052e-01 -1.319972169590798e-01 - -1.328392365052704e-01 -1.336797725161469e-01 -1.345188400098036e-01 -1.353564538215464e-01 -1.361926284143060e-01 - -1.370273780803152e-01 -1.378607168013910e-01 -1.386926583917836e-01 -1.395232163058920e-01 -1.403524038515728e-01 - -1.411802341103638e-01 -1.420067200256853e-01 -1.428318742148069e-01 -1.436557091565456e-01 -1.444782371020595e-01 - -1.452994701862315e-01 -1.461194203065015e-01 -1.469380992388567e-01 -1.477555185109162e-01 -1.485716895480879e-01 - -1.493866236153044e-01 -1.502003318703277e-01 -1.510128252027127e-01 -1.518241144121522e-01 -1.526342102070998e-01 - -1.534431232126203e-01 -1.542508638114616e-01 -1.550574422930448e-01 -1.558628688157988e-01 -1.566671534698807e-01 - -1.574703062033520e-01 -1.582723368973844e-01 -1.590732553076882e-01 -1.598730711132973e-01 -1.606717938120008e-01 - -1.614694328459875e-01 -1.622659976162905e-01 -1.630614974730487e-01 -1.638559416039789e-01 -1.646493391351259e-01 - -1.654416991082678e-01 -1.662330305252601e-01 -1.670233423125346e-01 -1.678126433512354e-01 -1.686009424167802e-01 - -1.693882482431861e-01 -1.701745695045948e-01 -1.709599148401449e-01 -1.717442928088396e-01 -1.725277119385885e-01 - -1.733101807130639e-01 -1.740917075837066e-01 -1.748723009172683e-01 -1.756519690655456e-01 -1.764307204052008e-01 - -1.772085632840185e-01 -1.779855059094047e-01 -1.787615564692287e-01 -1.795367232135896e-01 -1.803110143830451e-01 - -1.810844381177561e-01 -1.818570025406103e-01 -1.826287158057983e-01 -1.833995860626770e-01 -1.841696214099643e-01 - -1.849388299454831e-01 -1.857072198141128e-01 -1.864747991526175e-01 -1.872415760182443e-01 -1.880075584641173e-01 - -1.887727546063884e-01 -1.895371725773110e-01 -1.903008205105196e-01 -1.910637065418589e-01 -1.918258388146347e-01 - -1.925872254807121e-01 -1.933478747187342e-01 -1.941077947209150e-01 -1.948669937069724e-01 -1.956254799127480e-01 - -1.963832616110719e-01 -1.971403470967068e-01 -1.978967447151567e-01 -1.986524628291068e-01 -1.994075098192274e-01 - -2.001618941005484e-01 -2.009156242075518e-01 -2.016687086990372e-01 -2.024211561116226e-01 -2.031729750127928e-01 - -2.039241741156804e-01 -2.046747621691974e-01 -2.054247479197256e-01 -2.061741401521784e-01 -2.069229478081280e-01 - -2.076711798806499e-01 -2.084188454121736e-01 -2.091659534755806e-01 -2.099125132162076e-01 -2.106585338443872e-01 - -2.114040247579823e-01 -2.121489953974893e-01 -2.128934551864067e-01 -2.136374136027109e-01 -2.143808803592873e-01 - -2.151238652468154e-01 -2.158663781322411e-01 -2.166084289346303e-01 -2.173500277052638e-01 -2.180911845646947e-01 - -2.188319097783510e-01 -2.195722136949507e-01 -2.203121068514981e-01 -2.210515998518519e-01 -2.217907033790026e-01 - -2.225294282016381e-01 -2.232677853521022e-01 -2.240057859531163e-01 -2.247434412252567e-01 -2.254807624804862e-01 - -2.262177612984613e-01 -2.269544493586047e-01 -2.276908384717110e-01 -2.284269405581227e-01 -2.291627678450005e-01 - -2.298983326532392e-01 -2.306336473718499e-01 -2.313687245044682e-01 -2.321035769451089e-01 -2.328382177230701e-01 - -2.335726600184018e-01 -2.343069171312917e-01 -2.350410026917230e-01 -2.357749304696442e-01 -2.365087144650665e-01 - -2.372423688046511e-01 -2.379759078915950e-01 -2.387093462817347e-01 -2.394426988649284e-01 -2.401759806938325e-01 - -2.409092071382775e-01 -2.416423937275558e-01 -2.423755563116356e-01 -2.431087109081851e-01 -2.438418738849959e-01 - -2.445750618045980e-01 -2.453082916583512e-01 -2.460415806101058e-01 -2.467749460848467e-01 -2.475084057095742e-01 - -2.482419776582159e-01 -2.489756803241430e-01 -2.497095324315720e-01 -2.504435529132133e-01 -2.511777612049070e-01 - -2.519121769824342e-01 -2.526468203782122e-01 -2.533817117688987e-01 -2.541168720514789e-01 -2.548523223627430e-01 - -2.555880842783758e-01 -2.563241796571988e-01 -2.570606310516858e-01 -2.577974612919421e-01 -2.585346936249472e-01 - -2.592723515924181e-01 -2.600104594981498e-01 -2.607490419576605e-01 -2.614881240712832e-01 -2.622277312727207e-01 - -2.629678898443362e-01 -2.637086264051527e-01 -2.644499680721714e-01 -2.651919423187013e-01 -2.659345775453039e-01 - -2.666779025531186e-01 -2.674219468183432e-01 -2.681667401972407e-01 -2.689123133912765e-01 -2.696586975492495e-01 - -2.704059247640904e-01 -2.711540275538941e-01 -2.719030391932789e-01 -2.726529934197978e-01 -2.734039250662187e-01 - -2.741558694758598e-01 -2.749088629390239e-01 -2.756629422674556e-01 -2.764181454116789e-01 -2.771745108563868e-01 - -2.779320780841674e-01 -2.786908871694924e-01 -2.794509795564719e-01 -2.802123972949423e-01 -2.809751834880072e-01 - -2.817393818716988e-01 -2.825050376604960e-01 -2.832721967688652e-01 -2.840409064327807e-01 -2.848112145951165e-01 - -2.855831707048412e-01 -2.863568249759762e-01 -2.871322291766564e-01 -2.879094358829076e-01 -2.886884993482028e-01 - -2.894694746623641e-01 -2.902524185831628e-01 -2.910373887617654e-01 -2.918244447549689e-01 -2.926136470970381e-01 - -2.934050583264800e-01 -2.941987419693519e-01 -2.949947634976693e-01 -2.957931894604184e-01 -2.965940887685082e-01 - -2.973975314584912e-01 -2.982035897075678e-01 -2.990123368838905e-01 -2.998238489787670e-01 -3.006382032814213e-01 - -3.014554796495834e-01 -3.022757592753754e-01 -3.030991261199829e-01 -3.039256655881672e-01 -3.047554660899296e-01 - -3.055886175640754e-01 -3.064252130593845e-01 -3.072653472379187e-01 -3.081091181048918e-01 -3.089566254021406e-01 - -3.098079724748395e-01 -3.106632645082006e-01 -3.115226104442510e-01 -3.123861211846884e-01 -3.132539117130802e-01 - -3.141260990998875e-01 -3.150028046812773e-01 -3.158841520361693e-01 -3.167702694487885e-01 -3.176612875689104e-01 - -3.185573418032087e-01 -3.194585700942650e-01 -3.203651157713922e-01 -3.212771249044592e-01 -3.221947491388281e-01 - -3.231181430183639e-01 -3.240474671054514e-01 -3.249828850672117e-01 -3.259245669711927e-01 -3.268726862299913e-01 - -3.278274232359761e-01 -3.287889619469540e-01 -3.297574936027157e-01 -3.307332132733838e-01 -3.317163240684192e-01 - -3.327070332351553e-01 -3.337055565330767e-01 -3.347121141277095e-01 -3.357269352965953e-01 -3.367502540927247e-01 - -3.377823145588749e-01 -3.388233658450175e-01 -3.398736675401181e-01 -3.409334847493447e-01 -3.420030942036733e-01 - -3.430827786115977e-01 -3.441728329658748e-01 -3.452735586625544e-01 -3.463852704265985e-01 -3.475082899277179e-01 - -3.486429532857090e-01 -3.497896041380748e-01 -3.509486017430585e-01 -3.521203134619261e-01 -3.533051234472958e-01 - -3.545034246605078e-01 -3.557156285064298e-01 -3.569421559513399e-01 -3.581834477636310e-01 -3.594399550688090e-01 - -3.607121506187135e-01 -3.620005184199024e-01 -3.633055658714727e-01 -3.646278119965309e-01 -3.659677989216845e-01 - -3.673260803339768e-01 -3.687032330586966e-01 -3.700998457090232e-01 -3.715165309114429e-01 -3.729539131544640e-01 - -3.744126403613781e-01 -3.758933720658462e-01 -3.773967908082255e-01 -3.789235902651524e-01 -3.804744856516886e-01 - -3.820502023195389e-01 -3.836514846285581e-01 -3.852790856353807e-01 -3.869337741756033e-01 -3.886163256972291e-01 - -3.903275263189269e-01 -3.920681658458204e-01 -3.938390381581898e-01 -3.956409370872805e-01 -3.974746521930466e-01 - -3.993409682701225e-01 -4.012406553231547e-01 -4.031744727439548e-01 -4.051431522629808e-01 -4.071474082130475e-01 - -4.091879129977703e-01 -4.112653138348391e-01 -4.133801991274390e-01 -4.155331235094092e-01 -4.177245653517079e-01 - -4.199549603385881e-01 -4.222246496703586e-01 -4.245339230260172e-01 -4.268829584832519e-01 -4.292718744431503e-01 - -4.317006622016948e-01 -4.341692468068394e-01 -4.366774154195978e-01 -4.392248845800756e-01 -4.418112262316757e-01 - -4.444359401252420e-01 -4.470983818380713e-01 -4.497978365893122e-01 -4.525334523390530e-01 -4.553043120100788e-01 - -4.581093756350076e-01 -4.609475466791835e-01 -4.638176252290113e-01 -4.667183660407072e-01 -4.696484459287199e-01 - -4.726065094563343e-01 -4.755911501239359e-01 -4.786009429283761e-01 -4.816344399152602e-01 -4.846901882843556e-01 - -4.877667388033212e-01 -4.908626497957108e-01 -4.939765062407663e-01 -4.971069114027755e-01 -5.002525150305011e-01 - -5.034119937007041e-01 -5.065840848176727e-01 -5.097675587133593e-01 -5.129612566028576e-01 -5.161640565945169e-01 - -5.193749134865747e-01 -5.225928209640586e-01 -5.258168515692775e-01 -5.290461169135583e-01 -5.322798060270272e-01 - -5.355171460831645e-01 -5.387574394100244e-01 -5.420000245805213e-01 -5.452443099924439e-01 -5.484897376520451e-01 - -5.517358141745681e-01 -5.549820769247875e-01 -5.582281216566209e-01 -5.614735718423751e-01 -5.647181034387753e-01 - -5.679614169890416e-01 -5.712032588979591e-01 -5.744433972991336e-01 -5.776816413798681e-01 -5.809178193507762e-01 - -5.841517944620215e-01 -5.873834463985003e-01 -5.906126855444893e-01 -5.938394364748391e-01 -5.970636498273136e-01 - -6.002852884426439e-01 -6.035043379105128e-01 -6.067207941645156e-01 -6.099346717649501e-01 -6.131459940881434e-01 - -6.163548011478311e-01 -6.195611404873568e-01 -6.227650731310865e-01 -6.259666663617727e-01 -6.291659990146931e-01 - -6.323631552654742e-01 -6.355582290986170e-01 -6.387513188871106e-01 -6.419425307490256e-01 -6.451319745539882e-01 - -6.483197674327603e-01 -6.515060293214946e-01 -6.546908841167685e-01 -6.578744572836812e-01 -6.610568766009968e-01 - -6.642382709221243e-01 -6.674187710853904e-01 -6.705985088370179e-01 -6.737776175698923e-01 -6.769562312911304e-01 - -6.801344848181089e-01 -6.833125134999645e-01 -6.864904540026142e-01 -6.896684434132225e-01 -6.928466191871651e-01 - -6.960251190039876e-01 -6.992040810717012e-01 -7.023836437724149e-01 -7.055639456561626e-01 -7.087451254024176e-01 - -7.119273220404884e-01 -7.151106745784721e-01 -7.182953215897911e-01 -7.214814016245582e-01 -7.246690535743215e-01 - -7.278584163200112e-01 -7.310496283586513e-01 -7.342428280442573e-01 -7.374381535427195e-01 -7.406357429444993e-01 - -7.438357342264661e-01 -7.470382651689156e-01 -7.502434728794412e-01 -7.534514943101106e-01 -7.566624664635970e-01 - -7.598765262236051e-01 -7.630938099473661e-01 -7.663144537782537e-01 -7.695385935306881e-01 -7.727663648349232e-01 - -7.759979029135046e-01 -7.792333428394971e-01 -7.824728194957561e-01 -7.857164675195603e-01 -7.889644207560909e-01 - -7.922168128628783e-01 -7.954737775389469e-01 -7.987354483417761e-01 -8.020019582211745e-01 -8.052734399002169e-01 - -8.085500258027153e-01 -8.118318481538471e-01 -8.151190386835121e-01 -8.184117289678831e-01 -8.217100504635063e-01 - -8.250141343769457e-01 -8.283241110344656e-01 -8.316401105683494e-01 -8.349622632152548e-01 -8.382906990624389e-01 - -8.416255474951805e-01 -8.449669376504778e-01 -8.483149983741850e-01 -8.516698583310095e-01 -8.550316457522134e-01 - -8.584004886419279e-01 -8.617765145292081e-01 -8.651598508088844e-01 -8.685506248139727e-01 -8.719489622521989e-01 - -8.753549823919468e-01 -8.787687997490927e-01 -8.821905162688262e-01 -8.856202278084699e-01 -8.890580184445617e-01 - -8.925039663319011e-01 -8.959581377191167e-01 -8.994205926453692e-01 -9.028913782181163e-01 -9.063705352609543e-01 - -9.098580923937473e-01 -9.133540718558304e-01 -9.168584825681617e-01 -9.203713268261465e-01 -9.238925937413506e-01 - -9.274222656928153e-01 -9.309603113133150e-01 -9.345066924037853e-01 -9.380613571840678e-01 -9.416242468397124e-01 - -9.451952880001965e-01 -9.487744002152808e-01 -9.523614892719469e-01 -9.559564538973973e-01 -9.595591783425093e-01 - -9.631695396882074e-01 -9.667874008119273e-01 -9.704126174878044e-01 -9.740450312802591e-01 -9.776844767743714e-01 - -9.813307748475731e-01 -9.849837394560669e-01 -9.886431705787867e-01 -9.923088615430331e-01 -9.959805930468456e-01 - -9.996581394281877e-01 -1.003341262213973e+00 -1.007029716826452e+00 -1.010723247080268e+00 -1.014421591236032e+00 - -1.018124476945841e+00 -1.021831626529500e+00 -1.025542751586175e+00 -1.029257558992056e+00 -1.032975747452084e+00 - -1.036697011770175e+00 -1.040421039317395e+00 -1.044147513860548e+00 -1.047876112182243e+00 -1.051606508161453e+00 - -1.055338371046766e+00 -1.059071368055605e+00 -1.062805162911107e+00 -1.066539417837194e+00 -1.070273792555226e+00 - -1.074007946119602e+00 -1.077741537419413e+00 -1.081474225260823e+00 -1.085205668283577e+00 -1.088935525821090e+00 - -1.092663460147868e+00 -1.096389134999202e+00 -1.100112217012435e+00 -1.103832374788097e+00 -1.107549281877421e+00 - -1.111262614364874e+00 -1.114972053517157e+00 -1.118677283811066e+00 -1.122377997381517e+00 -1.126073890115035e+00 - -1.129764665246453e+00 -1.133450029987863e+00 -1.137129700112097e+00 -1.140803395884355e+00 -1.144470846978575e+00 - -1.148131787996958e+00 -1.151785963846005e+00 -1.155433124321719e+00 -1.159073028473816e+00 -1.162705440550504e+00 - -1.166330136340245e+00 -1.169946897198408e+00 -1.173555515207745e+00 -1.177155787675114e+00 -1.180747522076412e+00 - -1.184330531453910e+00 -1.187904640946331e+00 -1.191469681045491e+00 -1.195025491559137e+00 -1.198571917630371e+00 - -1.202108816427798e+00 -1.205636050425976e+00 -1.209153491297797e+00 -1.212661015717853e+00 -1.216158511169199e+00 - -1.219645870103956e+00 -1.223122994042052e+00 -1.226589789250444e+00 -1.230046171916402e+00 -1.233492062734542e+00 - -1.236927390508550e+00 -1.240352088211073e+00 -1.243766097381527e+00 -1.247169363751694e+00 -1.250561841256042e+00 - -1.253943487695246e+00 -1.257314268132119e+00 -1.260674151007197e+00 -1.264023111009775e+00 -1.267361126327042e+00 - -1.270688182889021e+00 -1.274004269717549e+00 -1.277309380458899e+00 -1.280603511471348e+00 -1.283886665336751e+00 - -1.287158847447705e+00 -1.290420068216200e+00 -1.293670340397085e+00 -1.296909681097245e+00 -1.300138109654688e+00 - -1.303355649979877e+00 -1.306562327924205e+00 -1.309758172530325e+00 -1.312943214678930e+00 -1.316117489411603e+00 - -1.319281033477409e+00 -1.322433886294459e+00 -1.325576088655014e+00 -1.328707684178879e+00 -1.331828717822939e+00 - -1.334939237064845e+00 -1.338039290534788e+00 -1.341128928952336e+00 -1.344208204044806e+00 -1.347277169481128e+00 - -1.350335879836220e+00 -1.353384391367341e+00 -1.356422761075585e+00 -1.359451047255056e+00 -1.362469308854003e+00 - -1.365477606144248e+00 -1.368475999956682e+00 -1.371464552034891e+00 -1.374443324607048e+00 -1.377412380926959e+00 - -1.380371784452904e+00 -1.383321598435415e+00 -1.386261886043311e+00 -1.389192710326296e+00 -1.392114134331963e+00 - -1.395026221218571e+00 -1.397929034013782e+00 -1.400822635112213e+00 -1.403707086730599e+00 -1.406582451007194e+00 - -1.409448790047375e+00 -1.412306165903488e+00 -1.415154640386279e+00 -1.417994274393129e+00 -1.420825128672226e+00 - -1.423647264288326e+00 -1.426460742270041e+00 -1.429265623184807e+00 -1.432061967292326e+00 -1.434849834082543e+00 - -1.437629282863016e+00 -1.440400372981510e+00 -1.443163163644870e+00 -1.445917713456040e+00 -1.448664080745027e+00 - -1.451402323353998e+00 -1.454132498983212e+00 -1.456854665253158e+00 -1.459568879518891e+00 -1.462275198153495e+00 - -1.464973677286479e+00 -1.467664373054985e+00 -1.470347341460922e+00 -1.473022637957602e+00 -1.475690317602213e+00 - -1.478350434416031e+00 -1.481003042251009e+00 -1.483648195317718e+00 -1.486285947650543e+00 -1.488916352220507e+00 - -1.491539461636770e+00 -1.494155328124374e+00 -1.496764003712290e+00 -1.499365540029296e+00 -1.501959988475343e+00 - -1.504547399935251e+00 -1.507127824972320e+00 -1.509701313378898e+00 -1.512267914702716e+00 -1.514827678283996e+00 - -1.517380653263305e+00 -1.519926888190102e+00 -1.522466431291609e+00 -1.524999330097196e+00 -1.527525631932397e+00 - -1.530045384005255e+00 -1.532558633226744e+00 -1.535065425437065e+00 -1.537565806237489e+00 -1.540059821344337e+00 - -1.542547516227056e+00 -1.545028935252552e+00 -1.547504122520188e+00 -1.549973122161691e+00 -1.552435978060152e+00 - -1.554892733071735e+00 -1.557343429814709e+00 -1.559788110982664e+00 -1.562226819032855e+00 -1.564659595401864e+00 - -1.567086481207361e+00 -1.569507517312065e+00 -1.571922744465970e+00 -1.574332203223133e+00 -1.576735933784567e+00 - -1.579133975135047e+00 -1.581526366095511e+00 -1.583913146047792e+00 -1.586294354132112e+00 -1.588670027961349e+00 - -1.591040204840321e+00 -1.593404922368944e+00 -1.595764217997401e+00 -1.598118128281829e+00 -1.600466689560657e+00 - -1.602809938195509e+00 -1.605147910317183e+00 -1.607480641109968e+00 -1.609808165462235e+00 -1.612130518025190e+00 - -1.614447733364541e+00 -1.616759845941160e+00 -1.619066889913862e+00 -1.621368898338053e+00 -1.623665904067572e+00 - -1.625957940253400e+00 -1.628245039905108e+00 -1.630527235169479e+00 -1.632804557955816e+00 -1.635077040086276e+00 - -1.637344713164072e+00 -1.639607608003776e+00 -1.641865755216986e+00 -1.644119185392045e+00 -1.646367929030376e+00 - -1.648612016308968e+00 -1.650851477080719e+00 -1.653086340226579e+00 -1.655316634503563e+00 -1.657542389144867e+00 - -1.659763633269537e+00 -1.661980395063818e+00 -1.664192702419508e+00 -1.666400582983419e+00 -1.668604064251645e+00 - -1.670803173362428e+00 -1.672997937236383e+00 -1.675188382281491e+00 -1.677374534802169e+00 -1.679556421201192e+00 - -1.681734067628149e+00 -1.683907499121518e+00 -1.686076740528519e+00 -1.688241817042459e+00 -1.690402753749855e+00 - -1.692559574964003e+00 -1.694712304797627e+00 -1.696860967334408e+00 -1.699005586454806e+00 -1.701146185255449e+00 - -1.703282786721620e+00 -1.705415414177082e+00 -1.707544090831449e+00 -1.709668839099297e+00 -1.711789681156861e+00 - -1.713906639022084e+00 -1.716019734585396e+00 -1.718128989385494e+00 -1.720234424849230e+00 -1.722336062307809e+00 - -1.724433922917529e+00 -1.726528027230686e+00 -1.728618395721282e+00 -1.730705049154116e+00 -1.732788008101886e+00 - -1.734867292078088e+00 -1.736942920442919e+00 -1.739014913002594e+00 -1.741083289547465e+00 -1.743148069358425e+00 - -1.745209271450225e+00 -1.747266914282488e+00 -1.749321016270471e+00 -1.751371596207075e+00 -1.753418672811714e+00 - -1.755462264132180e+00 -1.757502388000569e+00 -1.759539062057792e+00 -1.761572303881055e+00 -1.763602130983907e+00 - -1.765628560778196e+00 -1.767651610332621e+00 -1.769671296580689e+00 -1.771687636258316e+00 -1.773700645994041e+00 - -1.775710342184503e+00 -1.777716741146727e+00 -1.779719859111176e+00 -1.781719712181211e+00 -1.783716316038327e+00 - -1.785709686327057e+00 -1.787699838965949e+00 -1.789686789700248e+00 -1.791670553307960e+00 -1.793651144443631e+00 - -1.795628578235185e+00 -1.797602869852874e+00 -1.799574034162875e+00 -1.801542085839167e+00 -1.803507039091021e+00 - -1.805468908052258e+00 -1.807427707019619e+00 -1.809383450209764e+00 -1.811336151356113e+00 -1.813285824110837e+00 - -1.815232482284336e+00 -1.817176139592257e+00 -1.819116809213001e+00 -1.821054504262256e+00 -1.822989238142106e+00 - -1.824921024174149e+00 -1.826849875071642e+00 -1.828775803432498e+00 -1.830698822001605e+00 -1.832618943490715e+00 - -1.834536180332052e+00 -1.836450544855570e+00 -1.838362049261658e+00 -1.840270705693083e+00 -1.842176526191684e+00 - -1.844079522732226e+00 -1.845979707122125e+00 -1.847877091069540e+00 -1.849771686052976e+00 -1.851663503515020e+00 - -1.853552554984233e+00 -1.855438851906239e+00 -1.857322405308933e+00 -1.859203226114476e+00 -1.861081325239847e+00 - -1.862956713608023e+00 -1.864829402171162e+00 -1.866699401811557e+00 -1.868566723102871e+00 -1.870431376467943e+00 - -1.872293372034969e+00 -1.874152719980291e+00 -1.876009430967454e+00 -1.877863515541558e+00 -1.879714983286677e+00 - -1.881563843740828e+00 -1.883410107218835e+00 -1.885253783963326e+00 -1.887094883151373e+00 -1.888933413891583e+00 - -1.890769386084288e+00 -1.892602809677417e+00 -1.894433694017575e+00 -1.896262048252058e+00 -1.898087881332244e+00 - -1.899911202238771e+00 -1.901732020265218e+00 -1.903550344662578e+00 -1.905366184198560e+00 -1.907179547502340e+00 - -1.908990443132265e+00 -1.910798879695625e+00 -1.912604866066330e+00 -1.914408411061036e+00 -1.916209523000752e+00 - -1.918008210058423e+00 -1.919804480310377e+00 -1.921598341888620e+00 -1.923389803244497e+00 -1.925178872754823e+00 - -1.926965558178970e+00 -1.928749867237572e+00 -1.930531808113790e+00 -1.932311388923252e+00 -1.934088617048956e+00 - -1.935863499807747e+00 -1.937636044984464e+00 -1.939406260367225e+00 -1.941174153289245e+00 -1.942939731044444e+00 - -1.944703001224463e+00 -1.946463971324967e+00 -1.948222648160018e+00 -1.949979038559213e+00 -1.951733150095908e+00 - -1.953484990331042e+00 -1.955234566032130e+00 -1.956981883796339e+00 -1.958726950332857e+00 -1.960469772453529e+00 - -1.962210357268799e+00 -1.963948711773954e+00 -1.965684842205069e+00 -1.967418754747339e+00 -1.969150456141664e+00 - -1.970879953151972e+00 -1.972607252078582e+00 -1.974332359180596e+00 -1.976055281015821e+00 -1.977776024078765e+00 - -1.979494594312026e+00 -1.981210997612849e+00 -1.982925240248993e+00 -1.984637328483028e+00 -1.986347268186276e+00 - -1.988055065135925e+00 -1.989760725123873e+00 -1.991464254028801e+00 -1.993165658061782e+00 -1.994864943305917e+00 - -1.996562115000000e+00 -1.998257178352118e+00 -1.999950139291834e+00 -2.001641003786081e+00 -2.003329777229788e+00 - -2.005016464899233e+00 -2.006701072168050e+00 -2.008383604435580e+00 -2.010064067106614e+00 -2.011742465557514e+00 - -2.013418805045480e+00 -2.015093090790721e+00 -2.016765327984645e+00 -2.018435521788566e+00 -2.020103677272243e+00 - -2.021769799450648e+00 -2.023433893211152e+00 -2.025095963440481e+00 -2.026756015150358e+00 -2.028414053372033e+00 - -2.030070083089858e+00 -2.031724109167109e+00 -2.033376136029651e+00 -2.035026168111125e+00 -2.036674210313675e+00 - -2.038320267543339e+00 -2.039964344253219e+00 -2.041606444873179e+00 -2.043246574193053e+00 -2.044884736927830e+00 - -2.046520937133174e+00 -2.048155178894251e+00 -2.049787467073582e+00 -2.051417806490505e+00 -2.053046201014273e+00 - -2.054672654449746e+00 -2.056297171294283e+00 -2.057919756136151e+00 -2.059540413234731e+00 -2.061159146675282e+00 - -2.062775960175462e+00 -2.064390857518372e+00 -2.066003843116474e+00 -2.067614921377108e+00 -2.069224096057763e+00 - -2.070831370870978e+00 -2.072436749999330e+00 -2.074040237602111e+00 -2.075641837275425e+00 -2.077241552544816e+00 - -2.078839387216755e+00 -2.080435345153352e+00 -2.082029430158359e+00 -2.083621645967183e+00 -2.085211996100236e+00 - -2.086800484128769e+00 -2.088387114042385e+00 -2.089971889736969e+00 -2.091554814315162e+00 -2.093135890870968e+00 - -2.094715123257078e+00 -2.096292515329556e+00 -2.097868070199266e+00 -2.099441790929908e+00 -2.101013681141721e+00 - -2.102583744473837e+00 -2.104151984084442e+00 -2.105718403103298e+00 -2.107283005027429e+00 -2.108845793364375e+00 - -2.110406771296459e+00 -2.111965941910842e+00 -2.113523308239219e+00 -2.115078873308544e+00 -2.116632640182243e+00 - -2.118184611994434e+00 -2.119734792125529e+00 -2.121283183887100e+00 -2.122829790069075e+00 -2.124374613416041e+00 - -2.125917657012881e+00 -2.127458923984833e+00 -2.128998417278243e+00 -2.130536139767974e+00 -2.132072094221826e+00 - -2.133606283403289e+00 -2.135138710165668e+00 -2.136669377406417e+00 -2.138198288109766e+00 -2.139725445172409e+00 - -2.141250851054121e+00 -2.142774508270670e+00 -2.144296419998729e+00 -2.145816589318136e+00 -2.147335018260493e+00 - -2.148851708859426e+00 -2.150366664204882e+00 -2.151879887475646e+00 -2.153391381149525e+00 -2.154901147551277e+00 - -2.156409189094421e+00 -2.157915508301146e+00 -2.159420108039566e+00 -2.160922991060322e+00 -2.162424159298261e+00 - -2.163923614721020e+00 -2.165421360243191e+00 -2.166917398765767e+00 -2.168411732188371e+00 -2.169904362385663e+00 - -2.171395292133801e+00 -2.172884524283159e+00 -2.174372061079477e+00 -2.175857904621596e+00 -2.177342057025400e+00 - -2.178824520458782e+00 -2.180305297280612e+00 -2.181784389836284e+00 -2.183261800226323e+00 -2.184737530553230e+00 - -2.186211583172279e+00 -2.187683960396664e+00 -2.189154664118480e+00 -2.190623696232450e+00 -2.192091059064924e+00 - -2.193556754973807e+00 -2.195020786011611e+00 -2.196483154140098e+00 -2.197943861263397e+00 -2.199402909290797e+00 - -2.200860300209873e+00 -2.202316036078389e+00 -2.203770119156592e+00 -2.205222551620105e+00 -2.206673335103553e+00 - -2.208122471221687e+00 -2.209569962050753e+00 -2.211015809743800e+00 -2.212460016299604e+00 -2.213902583604158e+00 - -2.215343513246597e+00 -2.216782806815468e+00 -2.218220466193829e+00 -2.219656493330310e+00 -2.221090890141300e+00 - -2.222523658493742e+00 -2.223954800089009e+00 -2.225384316635711e+00 -2.226812210036953e+00 -2.228238482128524e+00 - -2.229663134282465e+00 -2.231086167933421e+00 -2.232507585230206e+00 -2.233927388263609e+00 -2.235345578178182e+00 - -2.236762156112363e+00 -2.238177124126393e+00 -2.239590484325721e+00 -2.241002238074839e+00 -2.242412386688506e+00 - -2.243820932023517e+00 -2.245227875877045e+00 -2.246633219265731e+00 -2.248036963296034e+00 -2.249439110214208e+00 - -2.250839662216949e+00 -2.252238620162919e+00 -2.253635984842608e+00 -2.255031758111861e+00 -2.256425941987018e+00 - -2.257818538061035e+00 -2.259209547728066e+00 -2.260598972010440e+00 -2.261986811976363e+00 -2.263373069249392e+00 - -2.264757745520950e+00 -2.266140842198597e+00 -2.267522360622610e+00 -2.268902302148032e+00 -2.270280668153553e+00 - -2.271657460097697e+00 -2.273032679375423e+00 -2.274406327047590e+00 -2.275778404191426e+00 -2.277148912283742e+00 - -2.278517852852843e+00 -2.279885227233438e+00 -2.281251036662961e+00 -2.282615282183361e+00 -2.283977964870765e+00 - -2.285339086133513e+00 -2.286698647429660e+00 -2.288056650083893e+00 -2.289413095312870e+00 -2.290767984034498e+00 - -2.292121317209354e+00 -2.293473096267451e+00 -2.294823322630535e+00 -2.296171997217860e+00 -2.297519120939147e+00 - -2.298864695168495e+00 -2.300208721271999e+00 -2.301551200119357e+00 -2.302892132586471e+00 -2.304231520070443e+00 - -2.305569363951571e+00 -2.306905665021753e+00 -2.308240424043668e+00 -2.309573642251534e+00 -2.310905320943594e+00 - -2.312235461202651e+00 -2.313564064009707e+00 -2.314891130153991e+00 -2.316216660462560e+00 -2.317540656105554e+00 - -2.318863118293744e+00 -2.320184048057342e+00 -2.321503446385586e+00 -2.322821314284393e+00 -2.324137652689092e+00 - -2.325452462235987e+00 -2.326765743634779e+00 -2.328077498187803e+00 -2.329387727168217e+00 -2.330696431139842e+00 - -2.332003610675342e+00 -2.333309267092103e+00 -2.334613401701304e+00 -2.335916015044585e+00 -2.337217107588464e+00 - -2.338516680268511e+00 -2.339814734134101e+00 -2.341111270220800e+00 -2.342406289434137e+00 -2.343699792173311e+00 - -2.344991778936741e+00 -2.346282251126043e+00 -2.347571210092017e+00 -2.348858656078995e+00 -2.350144589310363e+00 - -2.351429011032167e+00 -2.352711922533504e+00 -2.353993324252988e+00 -2.355273216536063e+00 -2.356551600205969e+00 - -2.357828476165661e+00 -2.359103845159169e+00 -2.360377707896761e+00 -2.361650065112589e+00 -2.362920917562625e+00 - -2.364190266066228e+00 -2.365458111389245e+00 -2.366724454020086e+00 -2.367989294422349e+00 -2.369252633237819e+00 - -2.370514471195048e+00 -2.371774809191487e+00 -2.373033648052395e+00 -2.374290988145372e+00 -2.375546829856004e+00 - -2.376801174099476e+00 -2.378054021758188e+00 -2.379305373053798e+00 -2.380555228228685e+00 -2.381803588268867e+00 - -2.383050454170042e+00 -2.384295826222999e+00 -2.385539704659158e+00 -2.386782090177350e+00 -2.388022983519428e+00 - -2.389262385131917e+00 -2.390500295440986e+00 -2.391736715086700e+00 -2.392971644747536e+00 -2.394205085041701e+00 - -2.395437036486230e+00 -2.396667499253712e+00 -2.397896473568759e+00 -2.399123960208524e+00 -2.400349959968320e+00 - -2.401574473163553e+00 -2.402797500049246e+00 -2.404019041118798e+00 -2.405239096931802e+00 -2.406457668074259e+00 - -2.407674755052769e+00 -2.408890358029935e+00 -2.410104477201394e+00 -2.411317113238899e+00 -2.412528266823138e+00 - -2.413737938194389e+00 -2.414946127524263e+00 -2.416152835150093e+00 -2.417358061488310e+00 -2.418561807106014e+00 - -2.419764072540869e+00 -2.420964858062149e+00 -2.422164163883997e+00 -2.423361990268478e+00 -2.424558337539998e+00 - -2.425753206224426e+00 -2.426946596778449e+00 -2.428138509180588e+00 -2.429328943436301e+00 -2.430517900136966e+00 - -2.431705379929064e+00 -2.432891383093559e+00 -2.434075909789072e+00 -2.435258960050367e+00 -2.436440534002261e+00 - -2.437620632253666e+00 -2.438799255363957e+00 -2.439976403210287e+00 -2.441152075652963e+00 -2.442326273167121e+00 - -2.443498996281469e+00 -2.444670245124171e+00 -2.445840019720089e+00 -2.447008320081434e+00 -2.448175146330043e+00 - -2.449340499038912e+00 -2.450504378726154e+00 -2.451666785239187e+00 -2.452827718349615e+00 -2.453987178196479e+00 - -2.455145165027037e+00 -2.456301679153984e+00 -2.457456720843679e+00 -2.458610290111703e+00 -2.459762386895362e+00 - -2.460913011069636e+00 -2.462062162618941e+00 -2.463209842027783e+00 -2.464356049701044e+00 -2.465500785225038e+00 - -2.466644048210323e+00 -2.467785839182998e+00 -2.468926158651886e+00 -2.470065006141172e+00 -2.471202381154697e+00 - -2.472338284099561e+00 -2.473472715451581e+00 -2.474605675058163e+00 -2.475737162666682e+00 -2.476867178252799e+00 - -2.477995721814551e+00 -2.479122793211214e+00 -2.480248392312651e+00 -2.481372519169843e+00 -2.482495173828069e+00 - -2.483616356128687e+00 -2.484736065895716e+00 -2.485854303087743e+00 -2.486971067738408e+00 -2.488086360047014e+00 - -2.489200180083995e+00 -2.490312527238630e+00 -2.491423400907520e+00 -2.492532801197714e+00 -2.493640728315912e+00 - -2.494747182157012e+00 -2.495852162518061e+00 -2.496955669116524e+00 -2.498057701682506e+00 -2.499158260076250e+00 - -2.500257344205291e+00 -2.501354954036191e+00 -2.502451089487258e+00 -2.503545750224782e+00 -2.504638935878569e+00 - -2.505730646184535e+00 -2.506820880947837e+00 -2.507909640144502e+00 -2.508996923692245e+00 -2.510082731104683e+00 - -2.511167061905791e+00 -2.512249916065080e+00 -2.513331293568936e+00 -2.514411194025691e+00 -2.515489616993924e+00 - -2.516566562211253e+00 -2.517642029416175e+00 -2.518716018171676e+00 -2.519788528087044e+00 -2.520859559132313e+00 - -2.521929111272669e+00 -2.522997184093166e+00 -2.524063777123772e+00 -2.525128890054233e+00 -2.526192522577199e+00 - -2.527254674237163e+00 -2.528315344566595e+00 -2.529374533198041e+00 -2.530432239809303e+00 -2.531488464159136e+00 - -2.532543206017777e+00 -2.533596465120445e+00 -2.534648241083385e+00 -2.535698533081969e+00 -2.536747340380982e+00 - -2.537794663043710e+00 -2.538840501172024e+00 -2.539884854223596e+00 -2.540927721482817e+00 -2.541969102185147e+00 - -2.543008995720672e+00 -2.544047402146914e+00 -2.545084321505733e+00 -2.546119753108897e+00 -2.547153696148885e+00 - -2.548186150071097e+00 -2.549217114438763e+00 -2.550246589033513e+00 -2.551274573561718e+00 -2.552301067210345e+00 - -2.553326069170913e+00 -2.554349579172571e+00 -2.555371597001575e+00 -2.556392122135012e+00 -2.557411153995589e+00 - -2.558428692097672e+00 -2.559444735964176e+00 -2.560459285060548e+00 -2.561472338773803e+00 -2.562483896234721e+00 - -2.563493956701396e+00 -2.564502520197407e+00 -2.565509586690590e+00 -2.566515155160310e+00 -2.567519224484451e+00 - -2.568521794123430e+00 -2.569522863722881e+00 -2.570522433086768e+00 -2.571520501879673e+00 -2.572517069050324e+00 - -2.573512133570669e+00 -2.574505695221420e+00 -2.575497753777856e+00 -2.576488308184784e+00 -2.577477357385580e+00 - -2.578464901148367e+00 -2.579450939304331e+00 -2.580435471112168e+00 -2.581418495678755e+00 -2.582400012076188e+00 - -2.583380019545771e+00 -2.584358518040427e+00 -2.585335507388502e+00 -2.586310986208430e+00 -2.587284953146766e+00 - -2.588257408172476e+00 -2.589228351266687e+00 -2.590197781136742e+00 -2.591165696464199e+00 -2.592132097101227e+00 - -2.593096982965479e+00 -2.594060353065933e+00 -2.595022206300420e+00 -2.595982542030859e+00 -2.596941359648237e+00 - -2.597898658195753e+00 -2.598854436786441e+00 -2.599808695160485e+00 -2.600761432999720e+00 -2.601712649125437e+00 - -2.602662342322502e+00 -2.603610512090611e+00 -2.604557157983472e+00 -2.605502279056006e+00 -2.606445874333086e+00 - -2.607387943218189e+00 -2.608328485131743e+00 -2.609267499183389e+00 -2.610204984445080e+00 -2.611140940148811e+00 - -2.612075365584592e+00 -2.613008260114454e+00 -2.613939623006402e+00 -2.614869453080320e+00 -2.615797749224179e+00 - -2.616724511046408e+00 -2.617649738126216e+00 -2.618573429205448e+00 -2.619495583026503e+00 -2.620416199171340e+00 - -2.621335277249019e+00 -2.622252816137456e+00 -2.623168814653865e+00 -2.624083272103795e+00 -2.624996187859330e+00 - -2.625907561070358e+00 -2.626817390806325e+00 -2.627725676037143e+00 -2.628632415761536e+00 -2.629537609193020e+00 - -2.630441255587996e+00 -2.631343354159609e+00 -2.632243904045731e+00 -2.633142904126422e+00 -2.634040353337229e+00 - -2.634936251093461e+00 -2.635830596765059e+00 -2.636723389060725e+00 -2.637614626713354e+00 -2.638504309213838e+00 - -2.639392436080191e+00 -2.640279006180904e+00 -2.641164018251881e+00 -2.642047471148195e+00 -2.642929363899640e+00 - -2.643809696115713e+00 -2.644688467316341e+00 -2.645565676083456e+00 -2.646441320932559e+00 -2.647315401051427e+00 - -2.648187915755844e+00 -2.649058864201336e+00 -2.649928245427330e+00 -2.650796058169106e+00 -2.651662301248424e+00 - -2.652526974137104e+00 -2.653390076247662e+00 -2.654251606105329e+00 -2.655111562238285e+00 -2.655969944073783e+00 - -2.656826751086593e+00 -2.657681982042466e+00 -2.658535635661370e+00 -2.659387711189145e+00 -2.660238207837736e+00 - -2.661087124157626e+00 -2.661934458755756e+00 -2.662780211126336e+00 -2.663624380741185e+00 -2.664466966095276e+00 - -2.665307965694397e+00 -2.666147379064445e+00 -2.666985205710447e+00 -2.667821444033845e+00 -2.668656092405469e+00 - -2.669489150177272e+00 -2.670320616801000e+00 -2.671150491146469e+00 -2.671978771965001e+00 -2.672805458115896e+00 - -2.673630548501148e+00 -2.674454042085555e+00 -2.675275937884819e+00 -2.676096235055446e+00 -2.676914932653945e+00 - -2.677732029196031e+00 -2.678547523253807e+00 -2.679361414165717e+00 -2.680173701269736e+00 -2.680984383135636e+00 - -2.681793458321363e+00 -2.682600926105787e+00 -2.683406785794135e+00 -2.684211036076172e+00 -2.685013675548027e+00 - -2.685814703046789e+00 -2.686614117528503e+00 -2.687411918184072e+00 -2.688208104155523e+00 -2.689002674154484e+00 - -2.689795626844247e+00 -2.690586961125131e+00 -2.691376675931391e+00 -2.692164770096012e+00 -2.692951242468673e+00 - -2.693736092067127e+00 -2.694519317933390e+00 -2.695300919038479e+00 -2.696080894259941e+00 -2.696859242172434e+00 - -2.697635961409562e+00 -2.698411051143577e+00 -2.699184510529523e+00 -2.699956338114957e+00 -2.700726532498006e+00 - -2.701495093086574e+00 -2.702262019208106e+00 -2.703027309058428e+00 -2.703790960874505e+00 -2.704552974189474e+00 - -2.705313348537555e+00 -2.706072082161119e+00 -2.706829173257158e+00 -2.707584621133000e+00 -2.708338425191227e+00 - -2.709090584105120e+00 -2.709841096442358e+00 -2.710589961077480e+00 -2.711337176962203e+00 -2.712082743050078e+00 - -2.712826658235913e+00 -2.713568921177743e+00 -2.714309530527581e+00 -2.715048485150131e+00 -2.715785783993005e+00 - -2.716521426122757e+00 -2.717255410569124e+00 -2.717987736095623e+00 -2.718718401385704e+00 -2.719447405068731e+00 - -2.720174745881186e+00 -2.720900423042079e+00 -2.721624435690877e+00 -2.722346782166338e+00 -2.723067460855530e+00 - -2.723786471139474e+00 -2.724503812410580e+00 -2.725219483112852e+00 -2.725933481634188e+00 -2.726645807086471e+00 - -2.727356458650697e+00 -2.728065435060333e+00 -2.728772734953498e+00 -2.729478357034439e+00 -2.730182300087997e+00 - -2.730884563155262e+00 -2.731585145263588e+00 -2.732284045129153e+00 -2.732981261442558e+00 -2.733676793103288e+00 - -2.734370639038562e+00 -2.735062798077667e+00 -2.735753269071118e+00 -2.736442051052291e+00 -2.737129142959769e+00 - -2.737814543170111e+00 -2.738498250131983e+00 -2.739180263144520e+00 -2.739860581563291e+00 -2.740539204119172e+00 - -2.741216129405992e+00 -2.741891356094071e+00 -2.742564882952538e+00 -2.743236709069217e+00 -2.743906833523784e+00 - -2.744575255044610e+00 -2.745241972311204e+00 -2.745906984158941e+00 -2.746570289467025e+00 -2.747231887134115e+00 - -2.747891776057501e+00 -2.748549955109537e+00 -2.749206423158993e+00 -2.749861179085207e+00 -2.750514221765824e+00 - -2.751165550061125e+00 -2.751815162841771e+00 -2.752463059037292e+00 -2.753109237554207e+00 -2.753753697148108e+00 - -2.754396436622574e+00 -2.755037455124055e+00 -2.755676751755156e+00 -2.756314325100252e+00 -2.756950173779785e+00 - -2.757584297076699e+00 -2.758216694281619e+00 -2.758847364053396e+00 -2.759476305000437e+00 -2.760103516161140e+00 - -2.760728996610216e+00 -2.761352745137616e+00 -2.761974760563591e+00 -2.762595042114344e+00 -2.763213589016364e+00 - -2.763830400091322e+00 -2.764445474113015e+00 -2.765058810068553e+00 -2.765670407011266e+00 -2.766280264046035e+00 - -2.766888380201558e+00 -2.767494754150214e+00 -2.768099384646222e+00 -2.768702271127474e+00 -2.769303413030783e+00 - -2.769902809104988e+00 -2.770500458053093e+00 -2.771096359082754e+00 -2.771690511445131e+00 -2.772282914060774e+00 - -2.772873565847032e+00 -2.773462466039048e+00 -2.774049613856528e+00 -2.774635008139637e+00 -2.775218647762881e+00 - -2.775800532117688e+00 -2.776380660598635e+00 -2.776959032095993e+00 -2.777535645483684e+00 -2.778110500074552e+00 - -2.778683595228330e+00 -2.779254930053368e+00 -2.779824503611819e+00 -2.780392315032438e+00 -2.780958363471580e+00 - -2.781522648129417e+00 -2.782085168237396e+00 -2.782645923108263e+00 -2.783204912027138e+00 -2.783762134087364e+00 - -2.784317588365996e+00 -2.784871274066723e+00 -2.785423190471204e+00 -2.785973337046338e+00 -2.786521713227682e+00 - -2.787068318140169e+00 -2.787613150927563e+00 -2.788156211119559e+00 -2.788697498201977e+00 -2.789237011099205e+00 - -2.789774748795882e+00 -2.790310711079109e+00 -2.790844897774500e+00 -2.791377308059270e+00 -2.791907941021321e+00 - -2.792436796039691e+00 -2.792963872575855e+00 -2.793489170129877e+00 -2.794012688183935e+00 -2.794534426110070e+00 - -2.795054383269529e+00 -2.795572559090522e+00 -2.796088953089790e+00 -2.796603565071232e+00 -2.797116394731634e+00 - -2.797627441052200e+00 -2.798136703104035e+00 -2.798644181033428e+00 -2.799149874997305e+00 -2.799653784119957e+00 - -2.800155907491874e+00 -2.800656245100958e+00 -2.801154796934787e+00 -2.801651562082218e+00 -2.802146539693571e+00 - -2.802639730063738e+00 -2.803131133478864e+00 -2.803620749045517e+00 -2.804108575856467e+00 -2.804594614128865e+00 - -2.805078864118387e+00 -2.805561325110418e+00 -2.806041996375143e+00 -2.806520878092229e+00 -2.806997970489045e+00 - -2.807473273074300e+00 -2.807946785293329e+00 -2.808418507056632e+00 -2.808888438355500e+00 -2.809356579039224e+00 - -2.809822928959404e+00 -2.810287488118900e+00 -2.810750256531227e+00 -2.811211234101264e+00 -2.811670420689050e+00 - -2.812127816083888e+00 -2.812583420143096e+00 -2.813037233066774e+00 -2.813489255065615e+00 -2.813939486049919e+00 - -2.814387925944586e+00 -2.814834575033324e+00 -2.815279433542374e+00 -2.815722501109326e+00 -2.816163777438837e+00 - -2.816603263092504e+00 -2.817040958671196e+00 -2.817476864075942e+00 -2.817910979131784e+00 -2.818343304059641e+00 - -2.818773839208482e+00 -2.819202585043600e+00 -2.819629541969078e+00 -2.820054710027820e+00 -2.820478089265513e+00 - -2.820899680100151e+00 -2.821319482977751e+00 -2.821737498084143e+00 -2.822153725615352e+00 -2.822568166068396e+00 - -2.822980820018520e+00 -2.823391688052908e+00 -2.823800770674544e+00 -2.824208068037681e+00 -2.824613580315654e+00 - -2.825017308106835e+00 -2.825419252121360e+00 -2.825819413091381e+00 -2.826217791658008e+00 -2.826614388076187e+00 - -2.827009202624378e+00 -2.827402236061253e+00 -2.827793489256864e+00 -2.828182963046578e+00 -2.828570658171722e+00 - -2.828956575032161e+00 -2.829340714052488e+00 -2.829723076097664e+00 -2.830103662132774e+00 -2.830482473083023e+00 - -2.830859509823491e+00 -2.831234773068641e+00 -2.831608263528317e+00 -2.831979982054516e+00 -2.832349929557777e+00 - -2.832718107040651e+00 -2.833084515526141e+00 -2.833449156027042e+00 -2.833812029550204e+00 -2.834173137088914e+00 - -2.834532479620883e+00 -2.834890058075082e+00 -2.835245873448821e+00 -2.835599927061508e+00 -2.835952220243667e+00 - -2.836302754048190e+00 -2.836651529530672e+00 -2.836998548035129e+00 -2.837343810883671e+00 -2.837687319022324e+00 - -2.838029073490917e+00 -2.838369076080591e+00 -2.838707328586376e+00 -2.839043832067564e+00 -2.839378587474163e+00 - -2.839711596054793e+00 -2.840042859259108e+00 -2.840372379042276e+00 -2.840700157280677e+00 -2.841026195030013e+00 - -2.841350493343512e+00 -2.841673054085180e+00 -2.841993879190829e+00 -2.842312970072699e+00 -2.842630328108386e+00 - -2.842945955060471e+00 -2.843259852775203e+00 -2.843572023048496e+00 -2.843882467617769e+00 -2.844191188036773e+00 - -2.844498185884593e+00 -2.844803463025301e+00 -2.845107021413000e+00 -2.845408863076932e+00 -2.845708990020076e+00 - -2.846007404065244e+00 -2.846304107050338e+00 -2.846599101053807e+00 -2.846892388135785e+00 -2.847183970042619e+00 - -2.847473848570861e+00 -2.847762026031680e+00 -2.848048504803730e+00 -2.848333287020989e+00 -2.848616374754612e+00 - -2.848897770069131e+00 -2.849177475073159e+00 -2.849455492058227e+00 -2.849731823327478e+00 -2.850006471047571e+00 - -2.850279437434387e+00 -2.850550725037162e+00 -2.850820336439234e+00 -2.851088274026996e+00 -2.851354540133094e+00 - -2.851619137072155e+00 -2.851882067200814e+00 -2.852143333061782e+00 -2.852402937208544e+00 -2.852660882051651e+00 - -2.852917170055367e+00 -2.853171804041764e+00 -2.853424786850297e+00 -2.853676121032120e+00 -2.853925809140160e+00 - -2.854173854022716e+00 -2.854420258509995e+00 -2.854665025064492e+00 -2.854908156206457e+00 -2.855149655054884e+00 - -2.855389524765914e+00 -2.855627768045515e+00 -2.855864387531145e+00 -2.856099386036384e+00 -2.856332766480263e+00 - -2.856564532027491e+00 -2.856794685864488e+00 -2.857023231018833e+00 -2.857250170456676e+00 -2.857475507057297e+00 - -2.857699243787178e+00 -2.857921384048440e+00 -2.858141931205942e+00 -2.858360888039817e+00 -2.858578257403886e+00 - -2.858794043031427e+00 -2.859008248642304e+00 -2.859220877023269e+00 -2.859431930941042e+00 -2.859641414015340e+00 - -2.859849329964776e+00 -2.860055682050569e+00 -2.860260473522559e+00 -2.860463708042447e+00 -2.860665389218646e+00 - -2.860865520034553e+00 -2.861064103583913e+00 -2.861261144026887e+00 -2.861456645505078e+00 -2.861650611019446e+00 - -2.861843043539793e+00 -2.862033947051935e+00 -2.862223325674870e+00 -2.862411183044306e+00 -2.862597522669464e+00 - -2.862782348036900e+00 -2.862965662765951e+00 -2.863147471029718e+00 -2.863327776966641e+00 -2.863506584022756e+00 - -2.863683895649960e+00 -2.863859716016013e+00 -2.864034049304372e+00 -2.864206899045429e+00 -2.864378268816853e+00 - -2.864548163038503e+00 -2.864716586175495e+00 -2.864883542031795e+00 -2.865049034317118e+00 -2.865213067025303e+00 - -2.865375644227383e+00 -2.865536770019026e+00 -2.865696448531390e+00 -2.865854684012960e+00 -2.866011480747103e+00 - -2.866166843039399e+00 -2.866320775137251e+00 -2.866473281033156e+00 -2.866624364792500e+00 -2.866774031027124e+00 - -2.866922284373643e+00 -2.867069129021301e+00 -2.867214569108258e+00 -2.867358609015685e+00 -2.867501253183005e+00 - -2.867642506039625e+00 -2.867782372075631e+00 -2.867920856033839e+00 -2.868057962606175e+00 -2.868193696028257e+00 - -2.868328060561013e+00 -2.868461061022879e+00 -2.868592702303233e+00 -2.868722989017701e+00 -2.868851925722842e+00 - -2.868979517012722e+00 -2.869105767524959e+00 -2.869230682033886e+00 -2.869354265317122e+00 -2.869476522028743e+00 - -2.869597456891174e+00 -2.869717075023798e+00 -2.869835381525858e+00 -2.869952381019048e+00 -2.870068078133983e+00 - -2.870182478014490e+00 -2.870295585788873e+00 -2.870407406010122e+00 -2.870517943287246e+00 -2.870627203028626e+00 - -2.870735190678368e+00 -2.870841911024103e+00 -2.870947368779615e+00 -2.871051569019769e+00 -2.871154516959833e+00 - -2.871256218015620e+00 -2.871356677487263e+00 -2.871455900011655e+00 -2.871553890297982e+00 -2.871650654007871e+00 - -2.871746196881877e+00 -2.871840524023838e+00 -2.871933640394619e+00 -2.872025551019907e+00 -2.872116261043417e+00 - -2.872205776016155e+00 -2.872294101539941e+00 -2.872381243012580e+00 -2.872467205758066e+00 -2.872551995009178e+00 - -2.872635615995248e+00 -2.872718074023048e+00 -2.872799374482606e+00 -2.872879523019508e+00 -2.872958525324841e+00 - -2.873036387016140e+00 -2.873113113575017e+00 -2.873188710012942e+00 -2.873263181462381e+00 -2.873336534009911e+00 - -2.873408773769060e+00 -2.873479906007045e+00 -2.873549935889074e+00 -2.873618869018622e+00 -2.873686711126628e+00 - -2.873753468015626e+00 -2.873819145455355e+00 -2.873883749012791e+00 -2.873947284262238e+00 -2.874009757010115e+00 - -2.874071173064448e+00 -2.874131538007598e+00 -2.874190857408149e+00 -2.874249137005235e+00 -2.874306382592947e+00 - -2.874362600014657e+00 -2.874417795154723e+00 -2.874471974012172e+00 -2.874525142492177e+00 -2.874577306009839e+00 - -2.874628470067637e+00 -2.874678641007656e+00 -2.874727825164796e+00 -2.874776028005620e+00 -2.874823254939239e+00 - -2.874869512013286e+00 -2.874914805384953e+00 -2.874959141011137e+00 -2.875002524843012e+00 -2.875044963009132e+00 - -2.875086461553842e+00 -2.875127026007268e+00 -2.875166661990855e+00 -2.875205376005544e+00 -2.875243174521211e+00 - -2.875280063003956e+00 -2.875316046953741e+00 -2.875351133009737e+00 -2.875385327829893e+00 -2.875418637008044e+00 - -2.875451066029114e+00 -2.875482621006486e+00 -2.875513308222273e+00 -2.875543134005058e+00 -2.875572104616458e+00 - -2.875600226003760e+00 -2.875627504088381e+00 -2.875653945002586e+00 -2.875679554924722e+00 -2.875704340006628e+00 - -2.875728306365356e+00 -2.875751460005359e+00 -2.875773807024162e+00 -2.875795354004213e+00 -2.875816107441742e+00 - -2.875836073003188e+00 -2.875855256356105e+00 -2.875873664002281e+00 -2.875891302525273e+00 -2.875908178001488e+00 - -2.875924296429527e+00 -2.875939664003940e+00 -2.875954287022889e+00 -2.875968172003060e+00 -2.875981325374513e+00 - -2.875993753002293e+00 -2.876005460745149e+00 -2.876016455001635e+00 -2.876026742281703e+00 -2.876036329001085e+00 - -2.876045221511428e+00 -2.876053426002279e+00 -2.876060948682664e+00 -2.876067796001651e+00 -2.876073974394489e+00 - -2.876079490001126e+00 -2.876084348997735e+00 -2.876088558000703e+00 -2.876092123620084e+00 -2.876095052000378e+00 - -2.876097349275196e+00 -2.876099022000147e+00 -2.876100076780735e+00 -2.876100520000039e+00 -2.876100357977497e+00 - -2.876099597000405e+00 -2.876098243435337e+00 -2.876096303998139e+00 -2.876093785401991e+00 -2.876090694000126e+00 - -2.876087036076098e+00 -2.876082817994697e+00 -2.876078046153286e+00 -2.876072726998279e+00 -2.876066867041051e+00 - -2.876060473003754e+00 -2.876053551562065e+00 -2.876046108994973e+00 -2.876038151582050e+00 -2.876029686001908e+00 - -2.876020718975022e+00 -2.876011256990315e+00 -2.876001306494705e+00 -2.875990873998654e+00 -2.875979966015766e+00 - -2.875968589008655e+00 -2.875956749461299e+00 -2.875944453994101e+00 -2.875931709272467e+00 -2.875918522005370e+00 - -2.875904898821941e+00 -2.875890845988358e+00 -2.875876369796106e+00 -2.875861477000839e+00 -2.875846174460938e+00 - -2.875830468981534e+00 -2.875814367182402e+00 -2.875797874995170e+00 -2.875780998493851e+00 -2.875763745010153e+00 - -2.875746121853747e+00 -2.875728134988475e+00 -2.875709790337169e+00 -2.875691095004476e+00 -2.875672056151185e+00 - -2.875652679980860e+00 -2.875632972639220e+00 -2.875612940997824e+00 -2.875592591983200e+00 -2.875571932015899e+00 - -2.875550967463832e+00 -2.875529704990307e+00 -2.875508151305197e+00 -2.875486313009207e+00 -2.875464196688727e+00 - -2.875441808982035e+00 -2.875419156538716e+00 -2.875396246001703e+00 -2.875373083982446e+00 -2.875349676973115e+00 - -2.875326031456047e+00 -2.875302153993497e+00 -2.875278051224424e+00 -2.875253730014671e+00 -2.875229197164465e+00 - -2.875204458984698e+00 -2.875179521740897e+00 -2.875154392006447e+00 -2.875129076470253e+00 -2.875103581975416e+00 - -2.875077915323747e+00 -2.875052082997684e+00 -2.875026091410789e+00 -2.874999947020509e+00 -2.874973656330889e+00 - -2.874947225988491e+00 -2.874920662667701e+00 -2.874893973011697e+00 -2.874867163623783e+00 -2.874840240978976e+00 - -2.874813211559227e+00 -2.874786082002508e+00 -2.874758858958694e+00 -2.874731548969249e+00 -2.874704158521300e+00 - -2.874676693993052e+00 -2.874649161850167e+00 -2.874621569017096e+00 -2.874593922351292e+00 -2.874566227983435e+00 - -2.874538491996276e+00 -2.874510721007613e+00 -2.874482921761722e+00 -2.874455100973768e+00 -2.874427265275985e+00 - -2.874399420998023e+00 -2.874371574431975e+00 -2.874343732022288e+00 -2.874315900299783e+00 -2.874288085988434e+00 - -2.874260295776052e+00 -2.874232536012641e+00 -2.874204812974258e+00 -2.874177132978955e+00 -2.874149502426689e+00 - -2.874121928003048e+00 -2.874094416390038e+00 -2.874066973969692e+00 -2.874039607056358e+00 -2.874012321993617e+00 - -2.873985125156578e+00 -2.873958023017241e+00 -2.873931022092817e+00 -2.873904128984454e+00 -2.873877350227203e+00 - -2.873850692007775e+00 -2.873824160475146e+00 -2.873797761975665e+00 -2.873771502947487e+00 -2.873745389998629e+00 - -2.873719429664607e+00 -2.873693628021065e+00 -2.873667991196405e+00 -2.873642525989910e+00 -2.873617239207638e+00 - -2.873592137011854e+00 -2.873567225478465e+00 -2.873542510981722e+00 -2.873517999984164e+00 -2.873493699003122e+00 - -2.873469614539558e+00 -2.873445752974173e+00 -2.873422120664412e+00 -2.873398723994974e+00 -2.873375569341346e+00 - -2.873352663014937e+00 -2.873330011368907e+00 -2.873307620987516e+00 -2.873285498440290e+00 -2.873263650006746e+00 - -2.873242081977908e+00 -2.873220800980854e+00 -2.873199813610778e+00 -2.873179125999297e+00 -2.873158744269642e+00 - -2.873138674975094e+00 -2.873118924733721e+00 -2.873099499992696e+00 -2.873080407078925e+00 -2.873061652009151e+00 - -2.873043240951156e+00 -2.873025180987050e+00 -2.873007479104932e+00 -2.872990141002529e+00 -2.872973172348110e+00 - -2.872956579982463e+00 -2.872940370832477e+00 -2.872924550996914e+00 -2.872909126514257e+00 -2.872894104009989e+00 - -2.872879490127201e+00 -2.872865290992410e+00 -2.872851512733995e+00 -2.872838162004323e+00 -2.872825245427317e+00 - -2.872812768989124e+00 -2.872800738661925e+00 -2.872789160999820e+00 -2.872778042642130e+00 -2.872767389987160e+00 - -2.872757209355336e+00 -2.872747506996586e+00 -2.872738289140315e+00 -2.872729562004331e+00 -2.872721331833777e+00 - -2.872713604994726e+00 -2.872706387896571e+00 -2.872699687001068e+00 -2.872693508692679e+00 -2.872687858994343e+00 - -2.872682743943764e+00 -2.872678169999229e+00 -2.872674143639194e+00 -2.872670671002211e+00 -2.872667758252759e+00 - -2.872665411998920e+00 -2.872663638727966e+00 -2.872662444000314e+00 -2.872661833458480e+00 -2.872661814000242e+00 - -2.872662392564575e+00 -2.872663574999996e+00 -2.872665367034357e+00 -2.872667775003300e+00 -2.872670805307676e+00 - -2.872674464001362e+00 -2.872678757122995e+00 -2.872683690997219e+00 -2.872689271947241e+00 -2.872695506004511e+00 - -2.872702399218003e+00 -2.872709957998547e+00 -2.872718188690384e+00 -2.872727097009549e+00 -2.872736688669513e+00 - -2.872746970001709e+00 -2.872757947412680e+00 -2.872769626991446e+00 -2.872782014787135e+00 -2.872795117006809e+00 - -2.872808939808297e+00 -2.872823488994544e+00 -2.872838770359238e+00 -2.872854790013944e+00 -2.872871554154958e+00 - -2.872889068999627e+00 -2.872907340687168e+00 -2.872926375023218e+00 -2.872946177789640e+00 -2.872966755006795e+00 - -2.872988112738970e+00 -2.873010256987659e+00 -2.873033193743455e+00 -2.873056929016149e+00 -2.873081468798353e+00 - -2.873106818994782e+00 -2.873132985471494e+00 -2.873159974027786e+00 -2.873187790508094e+00 -2.873216441004140e+00 - -2.873245931584463e+00 -2.873276267977569e+00 -2.873307455856915e+00 -2.873339501015828e+00 -2.873372409342765e+00 - -2.873406186986854e+00 -2.873440840030674e+00 -2.873476374029945e+00 -2.873512794459630e+00 -2.873550106998518e+00 - -2.873588317466817e+00 -2.873627432046586e+00 -2.873667456808100e+00 -2.873708397012657e+00 -2.873750257967860e+00 - -2.873793045975522e+00 -2.873836767295967e+00 -2.873881427029366e+00 -2.873927030237608e+00 -2.873973582989610e+00 - -2.874021091436191e+00 -2.874069561048740e+00 -2.874118997257345e+00 -2.874169406006314e+00 -2.874220793186470e+00 - -2.874273163960479e+00 -2.874326523535612e+00 -2.874380878025728e+00 -2.874436233504353e+00 -2.874492594977105e+00 - -2.874549967456173e+00 -2.874608357047944e+00 -2.874667769870749e+00 -2.874728210996486e+00 -2.874789685444839e+00 - -2.874852199073056e+00 -2.874915757808161e+00 -2.874980367018717e+00 -2.875046031956011e+00 -2.875112757960702e+00 - -2.875180550448241e+00 -2.875249415043884e+00 -2.875319357389408e+00 -2.875390382982873e+00 -2.875462497200150e+00 - -2.875535705072081e+00 -2.875610011724477e+00 -2.875685423008027e+00 -2.875761944747628e+00 -2.875839581940104e+00 - -2.875918339524430e+00 -2.875998223036253e+00 -2.876079238083328e+00 -2.876161389965175e+00 -2.876244683897332e+00 - -2.876329125067640e+00 -2.876414718675390e+00 -2.876501469993362e+00 -2.876589384334920e+00 -2.876678467102276e+00 - -2.876768723646439e+00 -2.876860159024752e+00 -2.876952778311590e+00 -2.877046586943105e+00 -2.877141590285005e+00 - -2.877237793059432e+00 -2.877335200055582e+00 -2.877433816974432e+00 -2.877533649470098e+00 -2.877634702097487e+00 - -2.877736979404358e+00 -2.877840487009089e+00 -2.877945230580227e+00 -2.878051214916385e+00 -2.878158444703550e+00 - -2.878266925047163e+00 -2.878376661120778e+00 -2.878487657950954e+00 -2.878599920558564e+00 -2.878713454088738e+00 - -2.878828263638601e+00 -2.878944353988982e+00 -2.879061729871082e+00 -2.879180396133895e+00 -2.879300357745253e+00 - -2.879421620030550e+00 -2.879544188234639e+00 -2.879668066922659e+00 -2.879793260582870e+00 -2.879919774075741e+00 - -2.880047612428619e+00 -2.880176780964157e+00 -2.880307284823274e+00 -2.880439128124635e+00 -2.880572315044195e+00 - -2.880706851009318e+00 -2.880842741491739e+00 -2.880979990889281e+00 -2.881118603470176e+00 -2.881258584058220e+00 - -2.881399937594580e+00 -2.881542668934350e+00 -2.881686782880171e+00 -2.881832284110943e+00 -2.881979177270132e+00 - -2.882127466983199e+00 -2.882277157822698e+00 -2.882428254167564e+00 -2.882580760515876e+00 -2.882734682035907e+00 - -2.882890023809088e+00 -2.883046789899305e+00 -2.883204984344022e+00 -2.883364612092550e+00 -2.883525678164890e+00 - -2.883688186951939e+00 -2.883852142755886e+00 -2.884017550153203e+00 -2.884184413751485e+00 -2.884352738008543e+00 - -2.884522527349429e+00 -2.884693786217942e+00 -2.884866519029743e+00 -2.885040730069195e+00 -2.885216423722596e+00 - -2.885393604915286e+00 -2.885572278454246e+00 -2.885752448133968e+00 -2.885934117732660e+00 -2.886117291975880e+00 - -2.886301975695701e+00 -2.886488173202934e+00 -2.886675888645447e+00 -2.886865126040629e+00 -2.887055889528861e+00 - -2.887248183873006e+00 -2.887442013779875e+00 -2.887637383109605e+00 -2.887834295673936e+00 -2.888032755937675e+00 - -2.888232768417303e+00 -2.888434337182880e+00 -2.888637466267979e+00 -2.888842160006608e+00 -2.889048422705334e+00 - -2.889256258260521e+00 -2.889465670586525e+00 -2.889676664079871e+00 -2.889889243164732e+00 -2.890103411893701e+00 - -2.890319174230825e+00 -2.890536534157536e+00 -2.890755495690120e+00 -2.890976062966901e+00 -2.891198240133124e+00 - -2.891422031239666e+00 -2.891647440271526e+00 -2.891874471044534e+00 -2.892103127449178e+00 -2.892333413843735e+00 - -2.892565334531329e+00 -2.892798893126666e+00 -2.893034093211137e+00 -2.893270938921286e+00 -2.893509434394119e+00 - -2.893749583213363e+00 -2.893991388990754e+00 -2.894234856003367e+00 -2.894479988544211e+00 -2.894726790304690e+00 - -2.894975264880993e+00 -2.895225416090045e+00 -2.895477247800793e+00 -2.895730763869547e+00 -2.895985968110420e+00 - -2.896242864181383e+00 -2.896501455784724e+00 -2.896761746956156e+00 -2.897023741664482e+00 -2.897287443277443e+00 - -2.897552855132549e+00 -2.897819981047455e+00 -2.898088824960355e+00 -2.898359390811481e+00 -2.898631682423090e+00 - -2.898905703143506e+00 -2.899181456336644e+00 -2.899458945902694e+00 -2.899738175745144e+00 -2.900019149244370e+00 - -2.900301869748365e+00 -2.900586340998689e+00 -2.900872566741790e+00 -2.901160550350105e+00 -2.901450295205248e+00 - -2.901741805099525e+00 -2.902035083835090e+00 -2.902330134842785e+00 -2.902626961482952e+00 -2.902925567205262e+00 - -2.903225955501619e+00 -2.903528129943548e+00 -2.903832094083243e+00 -2.904137851315957e+00 -2.904445404943298e+00 - -2.904754758049239e+00 -2.905065913908475e+00 -2.905378876776237e+00 -2.905693650730528e+00 -2.906010238159916e+00 - -2.906328641477237e+00 -2.906648864881840e+00 -2.906970912612057e+00 -2.907294787275635e+00 -2.907620491421319e+00 - -2.907948028992455e+00 -2.908277404008211e+00 -2.908608619396449e+00 -2.908941677961907e+00 -2.909276583108139e+00 - -2.909613338320582e+00 -2.909951946813384e+00 -2.910292411733319e+00 -2.910634736228945e+00 -2.910978923497479e+00 - -2.911324976928991e+00 -2.911672899876866e+00 -2.912022695354926e+00 -2.912374366346152e+00 -2.912727916049746e+00 - -2.913083347735332e+00 -2.913440664738005e+00 -2.913799870293631e+00 -2.914160967175702e+00 -2.914523958205600e+00 - -2.914888846858668e+00 -2.915255636613397e+00 -2.915624330306910e+00 -2.915994930711883e+00 -2.916367440984558e+00 - -2.916741864289805e+00 -2.917118203443422e+00 -2.917496461287171e+00 -2.917876641115726e+00 -2.918258746264796e+00 - -2.918642779781321e+00 -2.919028744569610e+00 -2.919416643252220e+00 -2.919806478556714e+00 -2.920198253912409e+00 - -2.920591972698769e+00 -2.920987637394092e+00 -2.921385250442034e+00 -2.921784815048848e+00 -2.922186334507697e+00 - -2.922589811696789e+00 -2.922995249368979e+00 -2.923402650190686e+00 -2.923812016928122e+00 -2.924223352833133e+00 - -2.924636661116357e+00 -2.925051944337972e+00 -2.925469204994078e+00 -2.925888445974902e+00 -2.926309670222330e+00 - -2.926732880490753e+00 -2.927158079512877e+00 -2.927585270122142e+00 -2.928014455203420e+00 -2.928445637746579e+00 - -2.928878820641719e+00 -2.929314006274898e+00 -2.929751197043434e+00 -2.930190395893735e+00 -2.930631605816839e+00 - -2.931074829433217e+00 -2.931520069294359e+00 -2.931967328046430e+00 -2.932416608452995e+00 -2.932867913652596e+00 - -2.933321246608101e+00 -2.933776609204709e+00 -2.934234003435805e+00 -2.934693432805196e+00 -2.935154900804807e+00 - -2.935618409368617e+00 -2.936083960365691e+00 -2.936551556963400e+00 -2.937021202354904e+00 -2.937492898538196e+00 - -2.937966647468766e+00 -2.938442452127255e+00 -2.938920315642269e+00 -2.939400240709141e+00 -2.939882229846171e+00 - -2.940366285296803e+00 -2.940852409365155e+00 -2.941340604872910e+00 -2.941830874578781e+00 -2.942323220472084e+00 - -2.942817644603974e+00 -2.943314150042391e+00 -2.943812739919231e+00 -2.944313416605433e+00 -2.944816182292809e+00 - -2.945321039217627e+00 -2.945827989752984e+00 -2.946337036774817e+00 -2.946848183049044e+00 -2.947361430398659e+00 - -2.947876780695535e+00 -2.948394236949976e+00 -2.948913802216184e+00 -2.949435478585527e+00 -2.949959268045502e+00 - -2.950485173130951e+00 -2.951013196489051e+00 -2.951543340668991e+00 -2.952075608036040e+00 -2.952610000317780e+00 - -2.953146519451356e+00 -2.953685168849877e+00 -2.954225951787981e+00 -2.954768869510503e+00 -2.955313923227115e+00 - -2.955861116036636e+00 -2.956410451196468e+00 -2.956961930709160e+00 -2.957515556348660e+00 -2.958071330229310e+00 - -2.958629254704319e+00 -2.959189332741965e+00 -2.959751567143614e+00 -2.960315959427935e+00 -2.960882511105170e+00 - -2.961451224934558e+00 -2.962022103774683e+00 -2.962595149632548e+00 -2.963170364371659e+00 -2.963747750133120e+00 - -2.964327309260061e+00 -2.964909044626116e+00 -2.965492958892178e+00 -2.966079053337689e+00 -2.966667329311879e+00 - -2.967257789824588e+00 -2.967850437973655e+00 -2.968445275548303e+00 -2.969042304161408e+00 -2.969641526029084e+00 - -2.970242943489398e+00 -2.970846558764995e+00 -2.971452374012471e+00 -2.972060391239641e+00 -2.972670612566008e+00 - -2.973283040706606e+00 -2.973897678221620e+00 -2.974514526456296e+00 -2.975133586785449e+00 -2.975754861917081e+00 - -2.976378354633252e+00 -2.977004066679083e+00 -2.977631999719257e+00 -2.978262156133669e+00 -2.978894538388579e+00 - -2.979529148580497e+00 -2.980165988659094e+00 -2.980805060356407e+00 -2.981446365534977e+00 -2.982089906796993e+00 - -2.982735686662750e+00 -2.983383706585328e+00 -2.984033968085205e+00 -2.984686474019655e+00 -2.985341227187940e+00 - -2.985998228820469e+00 -2.986657480057624e+00 -2.987318983248517e+00 -2.987982740990944e+00 -2.988648755668708e+00 - -2.989317029403636e+00 -2.989987563483614e+00 -2.990660359350691e+00 -2.991335419897486e+00 -2.992012747963469e+00 - -2.992692344724977e+00 -2.993374211287029e+00 -2.994058350132512e+00 -2.994744763907397e+00 -2.995433454532118e+00 - -2.996124423756546e+00 -2.996817673373822e+00 -2.997513205283444e+00 -2.998211021767050e+00 -2.998911125033880e+00 - -2.999613516621449e+00 -3.000318198120732e+00 -3.001025172008281e+00 -3.001734440748973e+00 -3.002446005875424e+00 - -3.003159868783688e+00 -3.003876031255844e+00 -3.004594495323234e+00 -3.005315263628241e+00 -3.006038338638268e+00 - -3.006763721509772e+00 -3.007491413411925e+00 -3.008221416875716e+00 -3.008953734497098e+00 -3.009688367770095e+00 - -3.010425318036306e+00 -3.011164587129571e+00 -3.011906177113799e+00 -3.012650090480955e+00 -3.013396329533748e+00 - -3.014144895389836e+00 -3.014895789237767e+00 -3.015649013734712e+00 -3.016404571515447e+00 -3.017162463656545e+00 - -3.017922691248400e+00 -3.018685256994897e+00 -3.019450163571901e+00 -3.020217411929727e+00 -3.020987002987051e+00 - -3.021758939261538e+00 -3.022533223477289e+00 -3.023309857585168e+00 -3.024088843221124e+00 -3.024870181534668e+00 - -3.025653873871900e+00 -3.026439922851719e+00 -3.027228331077071e+00 -3.028019099814318e+00 -3.028812230192102e+00 - -3.029607724124773e+00 -3.030405583764245e+00 -3.031205811426982e+00 -3.032008409239547e+00 -3.032813378404362e+00 - -3.033620720145768e+00 -3.034430436699938e+00 -3.035242530366928e+00 -3.036057002690514e+00 -3.036873855182042e+00 - -3.037693089979441e+00 -3.038514709166424e+00 -3.039338713983260e+00 -3.040165105664532e+00 -3.040993886265523e+00 - -3.041825058080565e+00 -3.042658623539453e+00 -3.043494584770202e+00 -3.044332942558215e+00 -3.045173697755793e+00 - -3.046016852825442e+00 -3.046862410359265e+00 -3.047710371857544e+00 -3.048560738605269e+00 -3.049413512118055e+00 - -3.050268694173960e+00 -3.051126287370169e+00 -3.051986294136892e+00 -3.052848715417321e+00 -3.053713552140092e+00 - -3.054580806662679e+00 -3.055450481419417e+00 -3.056322577723267e+00 -3.057197096839233e+00 -3.058074040961857e+00 - -3.058953412280709e+00 -3.059835212035924e+00 -3.060719441405425e+00 -3.061606102267731e+00 -3.062495196777212e+00 - -3.063386727491054e+00 -3.064280696619269e+00 -3.065177104580330e+00 -3.066075951959016e+00 -3.066977241796834e+00 - -3.067880977177860e+00 -3.068787158899685e+00 -3.069695787543252e+00 -3.070606865109353e+00 -3.071520393938529e+00 - -3.072436376310475e+00 -3.073354814200677e+00 -3.074275708428639e+00 -3.075199059975246e+00 -3.076124871622891e+00 - -3.077053146054635e+00 -3.077983883754724e+00 -3.078917085313194e+00 -3.079852753942089e+00 -3.080790892784741e+00 - -3.081731502087634e+00 -3.082674582011150e+00 -3.083620135268097e+00 -3.084568164866139e+00 -3.085518672439932e+00 - -3.086471659270948e+00 -3.087427126600947e+00 -3.088385075921834e+00 -3.089345509765843e+00 -3.090308430518810e+00 - -3.091273838940665e+00 -3.092241735746584e+00 -3.093212123098609e+00 -3.094185003484481e+00 -3.095160379247863e+00 - -3.096138252358965e+00 -3.097118623438258e+00 -3.098101493262150e+00 -3.099086864580523e+00 -3.100074740150514e+00 - -3.101065120784818e+00 -3.102058007230942e+00 -3.103053401920080e+00 -3.104051307417155e+00 -3.105051725138318e+00 - -3.106054656274756e+00 -3.107060102266563e+00 -3.108068064811119e+00 -3.109078546386035e+00 -3.110091549326776e+00 - -3.111107074619999e+00 -3.112125123273996e+00 -3.113145697732417e+00 -3.114168800386244e+00 -3.115194431980418e+00 - -3.116222593318652e+00 -3.117253287085768e+00 -3.118286516039464e+00 -3.119322281347848e+00 -3.120360583948459e+00 - -3.121401425446115e+00 -3.122444807777008e+00 -3.123490733535526e+00 -3.124539205035892e+00 -3.125590222813487e+00 - -3.126643787500575e+00 -3.127699901895779e+00 -3.128758568841378e+00 -3.129819789187914e+00 -3.130883563634097e+00 - -3.131949894263071e+00 -3.133018783446947e+00 -3.134090233329311e+00 -3.135164245759380e+00 -3.136240821637432e+00 - -3.137319962039862e+00 -3.138401669696502e+00 -3.139485947209752e+00 -3.140572795018887e+00 -3.141662213641400e+00 - -3.142754206070774e+00 -3.143848775370422e+00 -3.144945922407469e+00 -3.146045647810740e+00 -3.147147953452156e+00 - -3.148252841552866e+00 -3.149360314487843e+00 -3.150470374336312e+00 -3.151583021840677e+00 -3.152698257836541e+00 - -3.153816084869129e+00 -3.154936505573740e+00 -3.156059521236365e+00 -3.157185132934072e+00 -3.158313342257567e+00 - -3.159444151127381e+00 -3.160577562269707e+00 -3.161713578058511e+00 -3.162852198653188e+00 -3.163993424406347e+00 - -3.165137258658042e+00 -3.166283704751602e+00 -3.167432763056018e+00 -3.168584433853514e+00 -3.169738720053572e+00 - -3.170895624664928e+00 -3.172055148466089e+00 -3.173217292044841e+00 -3.174382057456326e+00 -3.175549447119023e+00 - -3.176719463437418e+00 -3.177892108465135e+00 -3.179067382866334e+00 -3.180245287430775e+00 -3.181425824840074e+00 - -3.182608997807819e+00 -3.183794807283624e+00 -3.184983254083125e+00 -3.186174340249998e+00 -3.187368068149750e+00 - -3.188564440207163e+00 -3.189763458501066e+00 -3.190965123667219e+00 -3.192169436468204e+00 -3.193376399616980e+00 - -3.194586015855556e+00 -3.195798286091764e+00 -3.197013211234878e+00 -3.198230794034108e+00 -3.199451037209393e+00 - -3.200673941523666e+00 -3.201899507599942e+00 -3.203127737458575e+00 -3.204358633517069e+00 -3.205592198384193e+00 - -3.206828434306502e+00 -3.208067341890413e+00 -3.209308921829809e+00 -3.210553176808560e+00 -3.211800109598040e+00 - -3.213049721329648e+00 -3.214302012941719e+00 -3.215556986240311e+00 -3.216814643392485e+00 -3.218074987141617e+00 - -3.219338019837523e+00 -3.220603741679474e+00 -3.221872153094758e+00 -3.223143257573258e+00 -3.224417058543514e+00 - -3.225693556126080e+00 -3.226972750453261e+00 -3.228254645012327e+00 -3.229539243310538e+00 -3.230826545580160e+00 - -3.232116551831102e+00 -3.233409264458852e+00 -3.234704686394765e+00 -3.236002820328103e+00 -3.237303668413965e+00 - -3.238607230912866e+00 -3.239913508296335e+00 -3.241222503774527e+00 -3.242534220589764e+00 -3.243848659374397e+00 - -3.245165820540432e+00 -3.246485706228452e+00 -3.247808319087641e+00 -3.249133662073000e+00 -3.250461737608715e+00 - -3.251792545689908e+00 -3.253126086515263e+00 -3.254462363526813e+00 -3.255801380232294e+00 -3.257143137158927e+00 - -3.258487634736825e+00 -3.259834875988172e+00 -3.261184864013611e+00 -3.262537599635538e+00 -3.263893083453904e+00 - -3.265251317457108e+00 -3.266612304094287e+00 -3.267976046269084e+00 -3.269342546452898e+00 -3.270711804933652e+00 - -3.272083822201368e+00 -3.273458601737915e+00 -3.274836147008249e+00 -3.276216458417835e+00 -3.277599536106921e+00 - -3.278985382214368e+00 -3.280373999474050e+00 -3.281765391001240e+00 -3.283159559381294e+00 -3.284556504698475e+00 - -3.285956227223949e+00 -3.287358730477579e+00 -3.288764018003004e+00 -3.290172090190266e+00 -3.291582947391597e+00 - -3.292996592961586e+00 -3.294413030263101e+00 -3.295832259689772e+00 -3.297254281509102e+00 -3.298679098453292e+00 - -3.300106713632883e+00 -3.301537129207062e+00 -3.302970346938195e+00 -3.304406367952729e+00 -3.305845193592728e+00 - -3.307286826698660e+00 -3.308731270022015e+00 -3.310178524459931e+00 -3.311628590794006e+00 -3.313081471198005e+00 - -3.314537168271639e+00 -3.315995684926260e+00 -3.317457023622331e+00 -3.318921184705128e+00 -3.320388168757214e+00 - -3.321857979425488e+00 -3.323330620242623e+00 -3.324806091220061e+00 -3.326284392457951e+00 -3.327765527932510e+00 - -3.329249501635255e+00 -3.330736313742837e+00 -3.332225964151081e+00 -3.333718455447356e+00 -3.335213790816533e+00 - -3.336711973141963e+00 -3.338213004741188e+00 -3.339716885970061e+00 -3.341223617428788e+00 -3.342733202656698e+00 - -3.344245645175923e+00 -3.345760945500658e+00 -3.347279103963591e+00 -3.348800123179309e+00 -3.350324006237700e+00 - -3.351850755847976e+00 -3.353380374190363e+00 -3.354912861709826e+00 -3.356448219173252e+00 -3.357986450370467e+00 - -3.359527558984502e+00 -3.361071545248283e+00 -3.362618409368982e+00 -3.364168154900880e+00 -3.365720785489059e+00 - -3.367276301794712e+00 -3.368834704260551e+00 -3.370395995439248e+00 -3.371960178388195e+00 -3.373527256073704e+00 - -3.375097230883950e+00 -3.376670102985606e+00 -3.378245872877927e+00 -3.379824544611959e+00 -3.381406122149057e+00 - -3.382990605539988e+00 -3.384577994855671e+00 -3.386168294158221e+00 -3.387761507524905e+00 -3.389357635102426e+00 - -3.390956676825633e+00 -3.392558635712520e+00 -3.394163515324364e+00 -3.395771318312439e+00 -3.397382046745834e+00 - -3.398995701274896e+00 -3.400612282828281e+00 -3.402231794866633e+00 -3.403854240867662e+00 -3.405479621845378e+00 - -3.407107938586081e+00 -3.408739193428916e+00 -3.410373389185216e+00 -3.412010529002203e+00 -3.413650615518111e+00 - -3.415293648999326e+00 -3.416939629995896e+00 -3.418588562564371e+00 -3.420240450691449e+00 -3.421895294577897e+00 - -3.423553094414080e+00 -3.425213854134680e+00 -3.426877577792018e+00 -3.428544266164663e+00 -3.430213919689846e+00 - -3.431886540713168e+00 -3.433562132145608e+00 -3.435240697251321e+00 -3.436922238808692e+00 -3.438606757299870e+00 - -3.440294253397158e+00 -3.441984730829699e+00 -3.443678193368453e+00 -3.445374641894819e+00 -3.447074077051543e+00 - -3.448776501416308e+00 -3.450481918039497e+00 -3.452190329927366e+00 -3.453901739641781e+00 -3.455616148011183e+00 - -3.457333556082980e+00 -3.459053967513855e+00 -3.460777385853499e+00 -3.462503811614361e+00 -3.464233245386620e+00 - -3.465965691108627e+00 -3.467701152771073e+00 -3.469439631225878e+00 -3.471181127031554e+00 -3.472925642711720e+00 - -3.474673181335264e+00 -3.476423746187027e+00 -3.478177340029919e+00 -3.479933963323171e+00 -3.481693616824597e+00 - -3.483456304790008e+00 -3.485222031388338e+00 -3.486990796943019e+00 -3.488762601570069e+00 -3.490537448401365e+00 - -3.492315341151373e+00 -3.494096282849095e+00 -3.495880275915030e+00 -3.497667321021135e+00 -3.499457419173128e+00 - -3.501250574460328e+00 -3.503046790838973e+00 -3.504846068649357e+00 -3.506648408298966e+00 -3.508453814079994e+00 - -3.510262290280344e+00 -3.512073837286068e+00 -3.513888455301771e+00 -3.515706147708129e+00 -3.517526918395819e+00 - -3.519350770119465e+00 -3.521177705073145e+00 -3.523007724344773e+00 -3.524840829328240e+00 -3.526677023747485e+00 - -3.528516311267811e+00 -3.530358692989965e+00 -3.532204169811781e+00 -3.534052744384031e+00 -3.535904419874647e+00 - -3.537759199767289e+00 -3.539617087002065e+00 -3.541478082029144e+00 -3.543342185630307e+00 -3.545209402403708e+00 - -3.547079736777425e+00 -3.548953188682862e+00 -3.550829758143615e+00 -3.552709450048714e+00 -3.554592269345012e+00 - -3.556478216345227e+00 -3.558367291032073e+00 -3.560259496702344e+00 -3.562154837300620e+00 -3.564053316048536e+00 - -3.565954935512961e+00 -3.567859696364639e+00 -3.569767599635964e+00 -3.571678649702049e+00 -3.573592850895430e+00 - -3.575510204035641e+00 -3.577430709619281e+00 -3.579354370364244e+00 -3.581281189700099e+00 -3.583211171681835e+00 - -3.585144319721653e+00 -3.587080634035166e+00 -3.589020115063184e+00 -3.590962767343901e+00 -3.592908595415016e+00 - -3.594857599714854e+00 -3.596809780701911e+00 -3.598765143014713e+00 -3.600723691343250e+00 -3.602685426403352e+00 - -3.604650348553174e+00 -3.606618460694309e+00 -3.608589766473437e+00 -3.610564269974137e+00 -3.612541974573128e+00 - -3.614522880382737e+00 -3.616506987803558e+00 -3.618494301653613e+00 -3.620484826823921e+00 -3.622478564080036e+00 - -3.624475513850586e+00 -3.626475679341938e+00 -3.628479064392689e+00 -3.630485672592619e+00 -3.632495506905407e+00 - -3.634508568039156e+00 -3.636524857004877e+00 -3.638544378280809e+00 -3.640567136287224e+00 -3.642593131745308e+00 - -3.644622365423449e+00 -3.646654841977913e+00 -3.648690566065893e+00 -3.650729538460438e+00 -3.652771759626902e+00 - -3.654817232683972e+00 -3.656865961450936e+00 -3.658917949896158e+00 -3.660973201344661e+00 -3.663031716399031e+00 - -3.665093495929850e+00 -3.667158544602091e+00 -3.669226867066577e+00 -3.671298464123134e+00 -3.673373336353373e+00 - -3.675451487317045e+00 -3.677532921173144e+00 -3.679617641499514e+00 -3.681705651197185e+00 -3.683796951041065e+00 - -3.685891542158701e+00 -3.687989429214330e+00 -3.690090616811484e+00 -3.692195105774196e+00 -3.694302896934788e+00 - -3.696413994938233e+00 -3.698528404463948e+00 -3.700646126516483e+00 -3.702767161822413e+00 -3.704891513671268e+00 - -3.707019186005269e+00 -3.709150182814482e+00 -3.711284507419287e+00 -3.713422160413482e+00 -3.715563142750310e+00 - -3.717707459547388e+00 -3.719855115839397e+00 -3.722006112164920e+00 -3.724160448777861e+00 -3.726318129289493e+00 - -3.728479158099316e+00 -3.730643539402395e+00 -3.732811276589775e+00 -3.734982370040845e+00 -3.737156820495128e+00 - -3.739334633144358e+00 -3.741515813112657e+00 -3.743700360801490e+00 -3.745888276640612e+00 -3.748079565895588e+00 - -3.750274233918474e+00 -3.752472281571475e+00 -3.754673709335501e+00 -3.756878520656135e+00 -3.759086719721971e+00 - -3.761298310728990e+00 -3.763513297133539e+00 -3.765731679426046e+00 -3.767953458457793e+00 -3.770178639489403e+00 - -3.772407227784000e+00 -3.774639224205367e+00 -3.776874629489326e+00 -3.779113448259203e+00 -3.781355685279774e+00 - -3.783601341994148e+00 -3.785850419525435e+00 -3.788102921038436e+00 -3.790358850378410e+00 -3.792618212070778e+00 - -3.794881010002580e+00 -3.797147244827153e+00 -3.799416917428862e+00 -3.801690032849888e+00 -3.803966596190487e+00 - -3.806246608625402e+00 -3.808530070983860e+00 -3.810816986638503e+00 -3.813107359693981e+00 -3.815401194639556e+00 - -3.817698495297397e+00 -3.819999262436677e+00 -3.822303497093916e+00 -3.824611204428034e+00 -3.826922389548483e+00 - -3.829237053244454e+00 -3.831555196353405e+00 -3.833876824226091e+00 -3.836201942201953e+00 -3.838530551061888e+00 - -3.840862651326505e+00 -3.843198247033778e+00 -3.845537342919513e+00 -3.847879942993476e+00 -3.850226050562932e+00 - -3.852575666851148e+00 -3.854928793361406e+00 -3.857285434801036e+00 -3.859645595950435e+00 -3.862009278678248e+00 - -3.864376484523473e+00 -3.866747216618300e+00 -3.869121478726629e+00 -3.871499275546047e+00 -3.873880611182955e+00 - -3.876265486445322e+00 -3.878653902389424e+00 -3.881045864363169e+00 -3.883441377687285e+00 -3.885840443282151e+00 - -3.888243062046155e+00 -3.890649239190073e+00 -3.893058980047241e+00 -3.895472286128841e+00 -3.897889158595383e+00 - -3.900309601026809e+00 -3.902733617656517e+00 -3.905161212912323e+00 -3.907592390603840e+00 -3.910027151873432e+00 - -3.912465498159137e+00 -3.914907434748928e+00 -3.917352966879188e+00 -3.919802095729995e+00 -3.922254822259626e+00 - -3.924711150595445e+00 -3.927171085542605e+00 -3.929634631448325e+00 -3.932101791843537e+00 -3.934572567451927e+00 - -3.937046959532740e+00 -3.939524974294695e+00 -3.942006617767883e+00 -3.944491890318428e+00 -3.946980792233828e+00 - -3.949473329151056e+00 -3.951969506957779e+00 -3.954469327195002e+00 -3.956972790971958e+00 -3.959479902017460e+00 - -3.961990664762499e+00 -3.964505083827194e+00 -3.967023163167552e+00 -3.969544903893966e+00 -3.972070307479498e+00 - -3.974599379693463e+00 -3.977132126179292e+00 -3.979668547780628e+00 -3.982208645099321e+00 -3.984752422569858e+00 - -3.987299885436030e+00 -3.989851038346246e+00 -3.992405885069993e+00 -3.994964426456437e+00 -3.997526663815754e+00 - -4.000092603222488e+00 -4.002662250581340e+00 -4.005235606353252e+00 -4.007812671084819e+00 -4.010393451108941e+00 - -4.012977952843547e+00 -4.015566177260363e+00 -4.018158124897606e+00 -4.020753800005660e+00 -4.023353207686703e+00 - -4.025956352737950e+00 -4.028563239140089e+00 -4.031173867912699e+00 -4.033788240453579e+00 -4.036406362634527e+00 - -4.039028240314873e+00 -4.041653874830120e+00 -4.044283267179555e+00 -4.046916421541453e+00 -4.049553342894448e+00 - -4.052194036239657e+00 -4.054838505774454e+00 -4.057486752458788e+00 -4.060138777601743e+00 -4.062794587146426e+00 - -4.065454187011838e+00 -4.068117578386588e+00 -4.070784762448621e+00 -4.073455745063631e+00 -4.076130532171974e+00 - -4.078809125324914e+00 -4.081491525652789e+00 -4.084177736991329e+00 -4.086867764089578e+00 -4.089561612644448e+00 - -4.092259287473573e+00 -4.094960788929582e+00 -4.097666117736884e+00 -4.100375280572002e+00 -4.103088284211306e+00 - -4.105805129878449e+00 -4.108525818267906e+00 -4.111250353510137e+00 -4.113978740671802e+00 -4.116710985128399e+00 - -4.119447091422845e+00 -4.122187060458915e+00 -4.124930893522407e+00 -4.127678597066370e+00 -4.130430177441071e+00 - -4.133185635418395e+00 -4.135944971791250e+00 -4.138708193015015e+00 -4.141475305696859e+00 -4.144246311388639e+00 - -4.147021211130915e+00 -4.149800008974389e+00 -4.152582709893380e+00 -4.155369319546537e+00 -4.158159842709882e+00 - -4.160954279944561e+00 -4.163752632239020e+00 -4.166554906505763e+00 -4.169361109687737e+00 -4.172171242925584e+00 - -4.174985306927709e+00 -4.177803306475812e+00 -4.180625247195196e+00 -4.183451134012302e+00 -4.186280970992621e+00 - -4.189114759456745e+00 -4.191952501240072e+00 -4.194794202982180e+00 -4.197639871116617e+00 -4.200489506448629e+00 - -4.203343109834506e+00 -4.206200687962978e+00 -4.209062247657938e+00 -4.211927790451525e+00 -4.214797317400862e+00 - -4.217670832954751e+00 -4.220548342457539e+00 -4.223429851444060e+00 -4.226315364591702e+00 -4.229204882957573e+00 - -4.232098408004153e+00 -4.234995946435681e+00 -4.237897504949240e+00 -4.240803084971501e+00 -4.243712687544032e+00 - -4.246626317438374e+00 -4.249543980343883e+00 -4.252465681891192e+00 -4.255391426705907e+00 -4.258321215452209e+00 - -4.261255049361277e+00 -4.264192935893713e+00 -4.267134882389568e+00 -4.270080889477248e+00 -4.273030957691918e+00 - -4.275985093907401e+00 -4.278943305249538e+00 -4.281905593513557e+00 -4.284871959946388e+00 -4.287842408932329e+00 - -4.290816945777364e+00 -4.293795576336856e+00 -4.296778305653331e+00 -4.299765134968560e+00 -4.302756065899131e+00 - -4.305751105361620e+00 -4.308750260118541e+00 -4.311753531016159e+00 -4.314760919008608e+00 -4.317772431397722e+00 - -4.320788075591533e+00 -4.323807853075197e+00 -4.326831764792573e+00 -4.329859815445223e+00 -4.332892010759197e+00 - -4.335928356800809e+00 -4.338968858700405e+00 -4.342013517504197e+00 -4.345062334602749e+00 -4.348115316848165e+00 - -4.351172471198577e+00 -4.354233799574710e+00 -4.357299303495111e+00 -4.360368987907023e+00 -4.363442858590077e+00 - -4.366520921224746e+00 -4.369603180592436e+00 -4.372689637977453e+00 -4.375780295145305e+00 -4.378875159283436e+00 - -4.381974237486932e+00 -4.385077531059527e+00 -4.388185041309383e+00 -4.391296775353732e+00 -4.394412740393244e+00 - -4.397532938153312e+00 -4.400657369887305e+00 -4.403786040435705e+00 -4.406918955633090e+00 -4.410056121703311e+00 - -4.413197543940346e+00 -4.416343223529426e+00 -4.419493162052248e+00 -4.422647366785128e+00 -4.425805845047289e+00 - -4.428968598634965e+00 -4.432135628892382e+00 -4.435306940878729e+00 -4.438482540596634e+00 -4.441662434107552e+00 - -4.444846626509031e+00 -4.448035118984182e+00 -4.451227913265940e+00 -4.454425017200977e+00 -4.457626438485681e+00 - -4.460832178101560e+00 -4.464042236947444e+00 -4.467256622306292e+00 -4.470475341701105e+00 -4.473698397230936e+00 - -4.476925790483307e+00 -4.480157526423565e+00 -4.483393610985775e+00 -4.486634050601043e+00 -4.489878850742320e+00 - -4.493128012552872e+00 -4.496381537630165e+00 -4.499639433718156e+00 -4.502901708553144e+00 -4.506168363694287e+00 - -4.509439400268067e+00 -4.512714823847340e+00 -4.515994641019672e+00 -4.519278857985080e+00 -4.522567479881829e+00 - -4.525860507988668e+00 -4.529157944122721e+00 -4.532459796114085e+00 -4.535766071688615e+00 -4.539076772142213e+00 - -4.542391898765175e+00 -4.545711459255270e+00 -4.549035461446213e+00 -4.552363907308053e+00 -4.555696798263391e+00 - -4.559034139408705e+00 -4.562375936904542e+00 -4.565722197493832e+00 -4.569072926948550e+00 -4.572428126574475e+00 - -4.575787798129616e+00 -4.579151949647104e+00 -4.582520589075836e+00 -4.585893717752653e+00 -4.589271336639746e+00 - -4.592653451812744e+00 -4.596040070428725e+00 -4.599431198857142e+00 -4.602826842289216e+00 -4.606227001990830e+00 - -4.609631679831751e+00 -4.613040884022596e+00 -4.616454622677202e+00 -4.619872897181441e+00 -4.623295708819967e+00 - -4.626723065200532e+00 -4.630154974192006e+00 -4.633591438384649e+00 -4.637032459790966e+00 -4.640478043391029e+00 - -4.643928195196958e+00 -4.647382922381489e+00 -4.650842231139545e+00 -4.654306122594169e+00 -4.657774598295235e+00 - -4.661247666571815e+00 -4.664725335805659e+00 -4.668207607810025e+00 -4.671694483876048e+00 -4.675185969774820e+00 - -4.678682072408495e+00 -4.682182798723523e+00 -4.685688154522786e+00 -4.689198140990583e+00 -4.692712759891060e+00 - -4.696232019926335e+00 -4.699755929666950e+00 -4.703284490219185e+00 -4.706817702626076e+00 -4.710355575141943e+00 - -4.713898116290367e+00 -4.717445328460708e+00 -4.720997213393779e+00 -4.724553776370427e+00 -4.728115023824750e+00 - -4.731680963263822e+00 -4.735251601139764e+00 -4.738826938611875e+00 -4.742406977241646e+00 -4.745991725492132e+00 - -4.749581191958943e+00 -4.753175378866366e+00 -4.756774287871428e+00 -4.760377924733439e+00 -4.763986296289299e+00 - -4.767599409584012e+00 -4.771217270615820e+00 -4.774839880987831e+00 -4.778467242836293e+00 -4.782099364825118e+00 - -4.785736255481164e+00 -4.789377916255392e+00 -4.793024348603915e+00 -4.796675561079348e+00 -4.800331562360717e+00 - -4.803992354536202e+00 -4.807657939173200e+00 -4.811328322346788e+00 -4.815003511262576e+00 -4.818683513140625e+00 - -4.822368334073276e+00 -4.826057975627521e+00 -4.829752439872078e+00 -4.833451735407881e+00 -4.837155870922971e+00 - -4.840864848921632e+00 -4.844578671297884e+00 -4.848297343688468e+00 -4.852020872870312e+00 -4.855749266438375e+00 - -4.859482530948563e+00 -4.863220667982479e+00 -4.866963679596293e+00 -4.870711574718753e+00 -4.874464362148352e+00 - -4.878222043289993e+00 -4.881984619584831e+00 -4.885752100012597e+00 -4.889524493673498e+00 -4.893301802611106e+00 - -4.897084028340568e+00 -4.900871177319985e+00 -4.904663257144151e+00 -4.908460275011687e+00 -4.912262236942902e+00 - -4.916069144641015e+00 -4.919881000415621e+00 -4.923697813318887e+00 -4.927519592402767e+00 -4.931346339975771e+00 - -4.935178057730553e+00 -4.939014751639765e+00 -4.942856428895341e+00 -4.946703097286389e+00 -4.950554763469543e+00 - -4.954411428974413e+00 -4.958273095882141e+00 -4.962139773607051e+00 -4.966011471374763e+00 -4.969888190322918e+00 - -4.973769931656962e+00 -4.977656704941523e+00 -4.981548519919207e+00 -4.985445378685372e+00 -4.989347282670139e+00 - -4.993254238289898e+00 -4.997166253181426e+00 -5.001083334876794e+00 -5.005005489750602e+00 -5.008932719652265e+00 - -5.012865027026571e+00 -5.016802421224969e+00 -5.020744911403345e+00 -5.024692499028711e+00 -5.028645185619313e+00 - -5.032602980587180e+00 -5.036565893470627e+00 -5.040533926419334e+00 -5.044507081015939e+00 -5.048485363963517e+00 - -5.052468783200935e+00 -5.056457346489804e+00 -5.060451060330298e+00 -5.064449926354071e+00 -5.068453946757710e+00 - -5.072463130865962e+00 -5.076477488052552e+00 -5.080497020758939e+00 -5.084521730904982e+00 -5.088551625256381e+00 - -5.092586711696772e+00 -5.096626997735727e+00 -5.100672489712744e+00 -5.104723189661156e+00 -5.108779100266077e+00 - -5.112840231125939e+00 -5.116906591587866e+00 -5.120978183080382e+00 -5.125055007124604e+00 -5.129137073530554e+00 - -5.133224392250169e+00 -5.137316965514153e+00 -5.141414794882011e+00 -5.145517886949661e+00 -5.149626249667421e+00 - -5.153739891366810e+00 -5.157858819095347e+00 -5.161983034383363e+00 -5.166112539324860e+00 -5.170247343785729e+00 - -5.174387457616170e+00 -5.178532882831751e+00 -5.182683620936045e+00 -5.186839679219287e+00 -5.191001066208124e+00 - -5.195167789588259e+00 -5.199339855740569e+00 -5.203517266667578e+00 -5.207700025095241e+00 -5.211888141021600e+00 - -5.216081624199723e+00 -5.220280476130696e+00 -5.224484698310884e+00 -5.228694300469721e+00 -5.232909292611727e+00 - -5.237129677608738e+00 -5.241355457600706e+00 -5.245586638932716e+00 -5.249823229255573e+00 -5.254065237237846e+00 - -5.258312670369801e+00 -5.262565530410686e+00 -5.266823819583928e+00 -5.271087547700648e+00 -5.275356724632263e+00 - -5.279631352903723e+00 -5.283911434448228e+00 -5.288196976178466e+00 -5.292487986327965e+00 -5.296784473434150e+00 - -5.301086444698075e+00 -5.305393901671405e+00 -5.309706846569482e+00 -5.314025289911748e+00 -5.318349242027271e+00 - -5.322678704179561e+00 -5.327013677718438e+00 -5.331354173404511e+00 -5.335700202105029e+00 -5.340051765703035e+00 - -5.344408865432155e+00 -5.348771508912536e+00 -5.353139705124518e+00 -5.357513462102698e+00 -5.361892786505948e+00 - -5.366277680435933e+00 -5.370668146715638e+00 -5.375064195610523e+00 -5.379465837274747e+00 -5.383873073974794e+00 - -5.388285907439377e+00 -5.392704345133761e+00 -5.397128395890300e+00 -5.401558068273167e+00 -5.405993369375257e+00 - -5.410434300672517e+00 -5.414880864443758e+00 -5.419333071796174e+00 -5.423790933634701e+00 -5.428254451226888e+00 - -5.432723625834648e+00 -5.437198468334746e+00 -5.441678989715544e+00 -5.446165191796978e+00 -5.450657075821366e+00 - -5.455154649888983e+00 -5.459657923508107e+00 -5.464166904961132e+00 -5.468681600997277e+00 -5.473202013458992e+00 - -5.477728145011161e+00 -5.482260006515158e+00 -5.486797608759512e+00 -5.491340954044872e+00 -5.495890044003880e+00 - -5.500444886085005e+00 -5.505005489175888e+00 -5.509571862105057e+00 -5.514144012303452e+00 -5.518721941670775e+00 - -5.523305652810777e+00 -5.527895156674663e+00 -5.532490463993778e+00 -5.537091576272570e+00 -5.541698495053784e+00 - -5.546311231260242e+00 -5.550929796018560e+00 -5.555554191890502e+00 -5.560184420697174e+00 -5.564820489861896e+00 - -5.569462408240030e+00 -5.574110184812914e+00 -5.578763827204064e+00 -5.583423337479740e+00 -5.588088718319627e+00 - -5.592759980414353e+00 -5.597437134453794e+00 -5.602120183113874e+00 -5.606809128447821e+00 -5.611503978032022e+00 - -5.616204740842362e+00 -5.620911425929568e+00 -5.625624040919794e+00 -5.630342587666039e+00 -5.635067068763208e+00 - -5.639797495546991e+00 -5.644533879170592e+00 -5.649276221316504e+00 -5.654024523642824e+00 -5.658778797180806e+00 - -5.663539053129186e+00 -5.668305293983524e+00 -5.673077521581335e+00 -5.677855743831122e+00 -5.682639970117403e+00 - -5.687430209657800e+00 -5.692226470164904e+00 -5.697028753498052e+00 -5.701837062188433e+00 -5.706651407307890e+00 - -5.711471800003379e+00 -5.716298243181697e+00 -5.721130739014699e+00 -5.725969294974640e+00 -5.730813920019088e+00 - -5.735664623746429e+00 -5.740521414337008e+00 -5.745384293658165e+00 -5.750253264219532e+00 -5.755128337412918e+00 - -5.760009524502356e+00 -5.764896827358567e+00 -5.769790247833362e+00 -5.774689797096235e+00 -5.779595486532854e+00 - -5.784507319075965e+00 -5.789425296924678e+00 -5.794349427796488e+00 -5.799279720850703e+00 -5.804216185495535e+00 - -5.809158829710795e+00 -5.814107655513784e+00 -5.819062665706917e+00 -5.824023872195552e+00 -5.828991286593848e+00 - -5.833964910248241e+00 -5.838944744496904e+00 -5.843930800912663e+00 -5.848923091405570e+00 -5.853921618999967e+00 - -5.858926385866531e+00 -5.863937399646989e+00 -5.868954669511408e+00 -5.873978205272220e+00 -5.879008015280387e+00 - -5.884044101398642e+00 -5.889086466127434e+00 -5.894135121006329e+00 -5.899190077679159e+00 -5.904251339167730e+00 - -5.909318907675908e+00 -5.914392790757818e+00 -5.919472997569684e+00 -5.924559538325873e+00 -5.929652421747786e+00 - -5.934751649526802e+00 -5.939857223994977e+00 -5.944969157077114e+00 -5.950087460588470e+00 -5.955212136313389e+00 - -5.960343186070434e+00 -5.965480621845905e+00 -5.970624455737114e+00 -5.975774690117698e+00 -5.980931326619691e+00 - -5.986094373632355e+00 -5.991263841186835e+00 -5.996439739124646e+00 -6.001622075628632e+00 -6.006810852436582e+00 - -6.012006072105073e+00 -6.017207746910874e+00 -6.022415889122929e+00 -6.027630501258702e+00 -6.032851585034692e+00 - -6.038079148714933e+00 -6.043313202169935e+00 -6.048553755148549e+00 -6.053800815867540e+00 -6.059054386536941e+00 - -6.064314470164098e+00 -6.069581078952353e+00 -6.074854224823474e+00 -6.080133909377011e+00 -6.085420134277816e+00 - -6.090712911774160e+00 -6.096012254273324e+00 -6.101318164235261e+00 -6.106630643404864e+00 -6.111949700614082e+00 - -6.117275346267099e+00 -6.122607589969956e+00 -6.127946439669295e+00 -6.133291897472249e+00 -6.138643966380033e+00 - -6.144002658809652e+00 -6.149367987035877e+00 -6.154739953348771e+00 -6.160118559324411e+00 -6.165503813667637e+00 - -6.170895726810269e+00 -6.176294308963303e+00 -6.181699568610070e+00 -6.187111507544039e+00 -6.192530128394146e+00 - -6.197955443821025e+00 -6.203387466288188e+00 -6.208826197438971e+00 -6.214271638855750e+00 -6.219723802697215e+00 - -6.225182701452046e+00 -6.230648338352550e+00 -6.236120715733020e+00 -6.241599841591995e+00 -6.247085725644578e+00 - -6.252578378807894e+00 -6.258077810320607e+00 -6.263584021505486e+00 -6.269097014385768e+00 -6.274616801702433e+00 - -6.280143396389799e+00 -6.285676801437800e+00 -6.291217018848358e+00 -6.296764056615736e+00 -6.302317924554712e+00 - -6.307878633769864e+00 -6.313446193664602e+00 -6.319020605547922e+00 -6.324601871487839e+00 -6.330190004682891e+00 - -6.335785018206249e+00 -6.341386913499118e+00 -6.346995691980793e+00 -6.352611366614864e+00 -6.358233950592316e+00 - -6.363863446469443e+00 -6.369499855900457e+00 -6.375143187565898e+00 -6.380793451939097e+00 -6.386450659638202e+00 - -6.392114819555641e+00 -6.397785933536126e+00 -6.403464004233896e+00 -6.409149044588990e+00 -6.414841067513965e+00 - -6.420540075525660e+00 -6.426246070301758e+00 -6.431959060559017e+00 -6.437679056917068e+00 -6.443406070567963e+00 - -6.449140110779302e+00 -6.454881178548420e+00 -6.460629275812415e+00 -6.466384416537711e+00 -6.472146614484319e+00 - -6.477915870557313e+00 -6.483692185657911e+00 -6.489475573526882e+00 -6.495266048141532e+00 -6.501063611585819e+00 - -6.506868264986595e+00 -6.512680017535606e+00 -6.518498880384615e+00 -6.524324864460620e+00 -6.530157978732819e+00 - -6.535998224564008e+00 -6.541845604255500e+00 -6.547700131469085e+00 -6.553561819849423e+00 -6.559430671612207e+00 - -6.565306688088189e+00 -6.571189878497283e+00 -6.577080253965905e+00 -6.582977825357318e+00 -6.588882601649868e+00 - -6.594794584545345e+00 -6.600713776640095e+00 -6.606640191385222e+00 -6.612573842086468e+00 -6.618514730613387e+00 - -6.624462858757332e+00 -6.630418239433046e+00 -6.636380885778538e+00 -6.642350800701542e+00 -6.648327986279747e+00 - -6.654312451500913e+00 -6.660304207148021e+00 -6.666303264274883e+00 -6.672309632144893e+00 -6.678323312588955e+00 - -6.684344308236361e+00 -6.690372632342481e+00 -6.696408298209058e+00 -6.702451308697293e+00 -6.708501665794167e+00 - -6.714559378430309e+00 -6.720624457416141e+00 -6.726696914137652e+00 -6.732776758078630e+00 -6.738863990538500e+00 - -6.744958613795213e+00 -6.751060642225177e+00 -6.757170089911689e+00 -6.763286957667176e+00 -6.769411246357500e+00 - -6.775542970333119e+00 -6.781682144164359e+00 -6.787828769816468e+00 -6.793982848306231e+00 -6.800144389461610e+00 - -6.806313405086916e+00 -6.812489906080716e+00 -6.818673901333698e+00 -6.824865392610781e+00 -6.831064382650163e+00 - -6.837270885208925e+00 -6.843484914029985e+00 -6.849706471780753e+00 -6.855935560196301e+00 -6.862172188357874e+00 - -6.868416367348060e+00 -6.874668108908677e+00 -6.880927422841348e+00 -6.887194310527692e+00 -6.893468774218006e+00 - -6.899750828057308e+00 -6.906040486046904e+00 -6.912337749718504e+00 -6.918642620544160e+00 -6.924955112226868e+00 - -6.931275238742860e+00 -6.937603002930438e+00 -6.943938406703657e+00 -6.950281459417487e+00 -6.956632172330878e+00 - -6.962990556877839e+00 -6.969356622516854e+00 -6.975730370629293e+00 -6.982111803620415e+00 -6.988500936068168e+00 - -6.994897782349220e+00 -7.001302343862422e+00 -7.007714621896787e+00 -7.014134630279748e+00 -7.020562383120512e+00 - -7.026997883116998e+00 -7.033441132058707e+00 -7.039892139512705e+00 -7.046350916975187e+00 -7.052817475881351e+00 - -7.059291825658977e+00 -7.065773967767182e+00 -7.072263904706783e+00 -7.078761651114045e+00 -7.085267221537997e+00 - -7.091780618043302e+00 -7.098301841735545e+00 -7.104830902368316e+00 -7.111367811800725e+00 -7.117912581665987e+00 - -7.124465221496127e+00 -7.131025732644298e+00 -7.137594117517873e+00 -7.144170390919956e+00 -7.150754567380619e+00 - -7.157346647942116e+00 -7.163946633668109e+00 -7.170554539195697e+00 -7.177170379365883e+00 -7.183794156261903e+00 - -7.190425870988396e+00 -7.197065533493338e+00 -7.203713155838439e+00 -7.210368749697043e+00 -7.217032324589560e+00 - -7.223703881813015e+00 -7.230383423705708e+00 -7.237070964994412e+00 -7.243766520390449e+00 -7.250470092154861e+00 - -7.257181681552523e+00 -7.263901298313877e+00 -7.270628954301988e+00 -7.277364661444877e+00 -7.284108429522252e+00 - -7.290860259655573e+00 -7.297620154032538e+00 -7.304388127764033e+00 -7.311164195737019e+00 -7.317948359019635e+00 - -7.324740618617562e+00 -7.331540989105481e+00 -7.338349485298712e+00 -7.345166109406192e+00 -7.351990862719772e+00 - -7.358823755469352e+00 -7.365664799915581e+00 -7.372514007504119e+00 -7.379371387574386e+00 -7.386236941855793e+00 - -7.393110673113762e+00 -7.399992595867711e+00 -7.406882724521767e+00 -7.413781061264927e+00 -7.420687607444220e+00 - -7.427602373253923e+00 -7.434525370953283e+00 -7.441456612214240e+00 -7.448396106579596e+00 -7.455343855662903e+00 - -7.462299862106879e+00 -7.469264140600134e+00 -7.476236705537742e+00 -7.483217558094771e+00 -7.490206699573982e+00 - -7.497204145008848e+00 -7.504209909607961e+00 -7.511223995549668e+00 -7.518246403916826e+00 -7.525277144440522e+00 - -7.532316229110418e+00 -7.539363670302306e+00 -7.546419478207750e+00 -7.553483653895294e+00 -7.560556199398457e+00 - -7.567637129733686e+00 -7.574726459966183e+00 -7.581824192373288e+00 -7.588930328179804e+00 -7.596044877188221e+00 - -7.603167851392376e+00 -7.610299262973792e+00 -7.617439121971403e+00 -7.624587429666054e+00 -7.631744188388593e+00 - -7.638909413427992e+00 -7.646083119762239e+00 -7.653265308167305e+00 -7.660455979470388e+00 -7.667655148905554e+00 - -7.674862831955687e+00 -7.682079030692125e+00 -7.689303746121935e+00 -7.696536988406601e+00 -7.703778769965018e+00 - -7.711029103091334e+00 -7.718287997777487e+00 -7.725555454931286e+00 -7.732831476489904e+00 -7.740116077592081e+00 - -7.747409273463959e+00 -7.754711066479733e+00 -7.762021457991705e+00 -7.769340458116517e+00 -7.776668079072852e+00 - -7.784004332723263e+00 -7.791349228774319e+00 -7.798702768664788e+00 -7.806064954991001e+00 -7.813435803247359e+00 - -7.820815328504128e+00 -7.828203531237023e+00 -7.835600412067597e+00 -7.843005986795347e+00 -7.850420271453628e+00 - -7.857843267833355e+00 -7.865274976500961e+00 -7.872715407367362e+00 -7.880164572827870e+00 -7.887622485870939e+00 - -7.895089157097287e+00 -7.902564586963549e+00 -7.910048776908389e+00 -7.917541742442640e+00 -7.925043499243823e+00 - -7.932554049584044e+00 -7.940073394568305e+00 -7.947601544038569e+00 -7.955138510136092e+00 -7.962684305462377e+00 - -7.970238940357911e+00 -7.977802415658878e+00 -7.985374733292938e+00 -7.992955909057959e+00 -8.000545958501995e+00 - -8.008144882303682e+00 -8.015752681155906e+00 -8.023369370677967e+00 -8.030994966700497e+00 -8.038629470973136e+00 - -8.046272884117311e+00 -8.053925216322545e+00 -8.061586480220186e+00 -8.069256688640843e+00 -8.076935852017314e+00 - -8.084623970991846e+00 -8.092321047230506e+00 -8.100027096285098e+00 -8.107742133772728e+00 -8.115466161685978e+00 - -8.123199180963685e+00 -8.130941201954130e+00 -8.138692237272345e+00 -8.146452299190864e+00 -8.154221397655556e+00 - -8.161999533648068e+00 -8.169786709369063e+00 -8.177582940859525e+00 -8.185388243772254e+00 -8.193202618367051e+00 - -8.201026064968486e+00 -8.208858599553158e+00 -8.216700238370747e+00 -8.224550983111227e+00 -8.232410834288519e+00 - -8.240279802271914e+00 -8.248157899820946e+00 -8.256045139400785e+00 -8.263941531127587e+00 -8.271847076015916e+00 - -8.279761776165609e+00 -8.287685647119202e+00 -8.295618704371698e+00 -8.303560949785306e+00 -8.311512384182917e+00 - -8.319473017862927e+00 -8.327442863513763e+00 -8.335421933908444e+00 -8.343410239406900e+00 -8.351407780632112e+00 - -8.359414559352070e+00 -8.367430591651793e+00 -8.375455893292965e+00 -8.383490464426892e+00 -8.391534305333888e+00 - -8.399587432420665e+00 -8.407649862295598e+00 -8.415721596247392e+00 -8.423802634359653e+00 -8.431892987215194e+00 - -8.439992667917126e+00 -8.448101689150496e+00 -8.456220061058572e+00 -8.464347784035521e+00 -8.472484859778373e+00 - -8.480631304944675e+00 -8.488787135775029e+00 -8.496952351881781e+00 -8.505126952972617e+00 -8.513310955764712e+00 - -8.521504377280520e+00 -8.529707218754108e+00 -8.537919480083488e+00 -8.546141171610756e+00 -8.554372306334406e+00 - -8.562612897434500e+00 -8.570862955488629e+00 -8.579122480482935e+00 -8.587391473585072e+00 -8.595669951280222e+00 - -8.603957930092136e+00 -8.612255411381385e+00 -8.620562395277888e+00 -8.628878892152137e+00 -8.637204914976417e+00 - -8.645540476889700e+00 -8.653885588365707e+00 -8.662240249050400e+00 -8.670604460002718e+00 -8.678978238761259e+00 - -8.687361602440037e+00 -8.695754549975142e+00 -8.704157080317993e+00 -8.712569210659231e+00 -8.720990958572770e+00 - -8.729422324926496e+00 -8.737863309144757e+00 -8.746313921583734e+00 -8.754774175423437e+00 -8.763244084207386e+00 - -8.771723658743657e+00 -8.780212898534927e+00 -8.788711804325507e+00 -8.797220393131562e+00 -8.805738681960509e+00 - -8.814266671512945e+00 -8.822804361262596e+00 -8.831351762082482e+00 -8.839908887544672e+00 -8.848475750618142e+00 - -8.857052361519681e+00 -8.865638720060298e+00 -8.874234827408518e+00 -8.882840700568694e+00 -8.891456356239988e+00 - -8.900081794065120e+00 -8.908717013654563e+00 -8.917362031546196e+00 -8.926016864607513e+00 -8.934681514097109e+00 - -8.943355979966887e+00 -8.952040272550780e+00 -8.960734404827180e+00 -8.969438389970174e+00 -8.978152238557112e+00 - -8.986875950582608e+00 -8.995609527224275e+00 -9.004352984974421e+00 -9.013106340348738e+00 -9.021869594641789e+00 - -9.030642747850949e+00 -9.039425810005964e+00 -9.048218793898496e+00 -9.057021713335553e+00 -9.065834579375275e+00 - -9.074657391064932e+00 -9.083490148798390e+00 -9.092332870366718e+00 -9.101185573233034e+00 -9.110048256151465e+00 - -9.118920917820537e+00 -9.127803575425368e+00 -9.136696246597257e+00 -9.145598932265708e+00 -9.154511631860180e+00 - -9.163434355511646e+00 -9.172367116215408e+00 -9.181309927722621e+00 -9.190262801063124e+00 -9.199225735625708e+00 - -9.208198731948572e+00 -9.217181806808554e+00 -9.226174977077383e+00 -9.235178243767663e+00 -9.244191606592038e+00 - -9.253215075922315e+00 -9.262248664894432e+00 -9.271292387041701e+00 -9.280346253080740e+00 -9.289410262064051e+00 - -9.298484414471314e+00 -9.307568728155069e+00 -9.316663220573421e+00 -9.325767890233902e+00 -9.334882735648362e+00 - -9.344007774296474e+00 -9.353143024056331e+00 -9.362288485431986e+00 -9.371444157433135e+00 -9.380610050466057e+00 - -9.389786177888119e+00 -9.398972553464475e+00 -9.408169188076664e+00 -9.417376080663951e+00 -9.426593231436920e+00 - -9.435820657633688e+00 -9.445058376575700e+00 -9.454306388890288e+00 -9.463564693828612e+00 -9.472833301831271e+00 - -9.482112226230582e+00 -9.491401480736307e+00 -9.500701076124317e+00 -9.510011011057383e+00 -9.519331285649606e+00 - -9.528661917933491e+00 -9.538002925632075e+00 -9.547354307312132e+00 -9.556716061430350e+00 -9.566088205159264e+00 - -9.575470756067922e+00 -9.584863714595665e+00 -9.594267079809105e+00 -9.603680862413734e+00 -9.613105076017005e+00 - -9.622539734195460e+00 -9.631984847535897e+00 -9.641440414697058e+00 -9.650906435763309e+00 -9.660382928449559e+00 - -9.669869910482992e+00 -9.679367382009378e+00 -9.688875341677877e+00 -9.698393799732578e+00 -9.707922769547205e+00 - -9.717462265419133e+00 -9.727012298576232e+00 -9.736572867044643e+00 -9.746143970285512e+00 -9.755725626701739e+00 - -9.765317854403191e+00 -9.774920651385886e+00 -9.784534015610914e+00 -9.794157965013451e+00 -9.803792517858509e+00 - -9.813437673756464e+00 -9.823093430886084e+00 -9.832759800354408e+00 -9.842436796281985e+00 -9.852124431915341e+00 - -9.861822717446652e+00 -9.871531651724764e+00 -9.881251235098006e+00 -9.890981485255914e+00 -9.900722419735771e+00 - -9.910474038124631e+00 -9.920236338721825e+00 -9.930009332625946e+00 -9.939793033953066e+00 -9.949587456089942e+00 - -9.959392609292857e+00 -9.969208492025555e+00 -9.979035104343238e+00 -9.988872464459540e+00 -9.998720590171930e+00 - -1.000857947945488e+01 -1.001844913033355e+01 -1.002832956085879e+01 -1.003822078906736e+01 -1.004812281291406e+01 - -1.005803562971182e+01 -1.006795925428782e+01 -1.007789370360111e+01 -1.008783898562387e+01 -1.009779510571246e+01 - -1.010776206774677e+01 -1.011773987740720e+01 -1.012772854905251e+01 -1.013772809631413e+01 -1.014773852123577e+01 - -1.015775982444731e+01 -1.016779201251112e+01 -1.017783509576905e+01 -1.018788909374848e+01 -1.019795402262726e+01 - -1.020802987599985e+01 -1.021811664796306e+01 -1.022821435720666e+01 -1.023832302389762e+01 -1.024844264951883e+01 - -1.025857323411911e+01 -1.026871479069502e+01 -1.027886733277511e+01 -1.028903086306819e+01 -1.029920538356622e+01 - -1.030939090421369e+01 -1.031958743714735e+01 -1.032979499532081e+01 -1.034001358910991e+01 -1.035024321776280e+01 - -1.036048388191000e+01 -1.037073559883907e+01 -1.038099838556339e+01 -1.039127224134250e+01 -1.040155716512729e+01 - -1.041185317238784e+01 -1.042216027887615e+01 -1.043247848495290e+01 -1.044280779013644e+01 -1.045314820596725e+01 - -1.046349974688984e+01 -1.047386242694284e+01 -1.048423625623699e+01 -1.049462122957744e+01 -1.050501734396915e+01 - -1.051542462052187e+01 -1.052584308069211e+01 -1.053627272321853e+01 -1.054671354447971e+01 -1.055716555413174e+01 - -1.056762876571201e+01 -1.057810319500591e+01 -1.058858885406686e+01 -1.059908573777257e+01 -1.060959384260205e+01 - -1.062011318861535e+01 -1.063064379594653e+01 -1.064118566144451e+01 -1.065173878128750e+01 -1.066230317225584e+01 - -1.067287885251234e+01 -1.068346582514766e+01 -1.069406409086973e+01 -1.070467365592747e+01 -1.071529452946521e+01 - -1.072592672666786e+01 -1.073657026057826e+01 -1.074722512963040e+01 -1.075789133336255e+01 -1.076856889033910e+01 - -1.077925781838790e+01 -1.078995811336476e+01 -1.080066977044343e+01 -1.081139280404170e+01 -1.082212723175914e+01 - -1.083287306467895e+01 -1.084363031023443e+01 -1.085439896777578e+01 -1.086517903841335e+01 -1.087597053838113e+01 - -1.088677348334085e+01 -1.089758787154147e+01 -1.090841370173705e+01 -1.091925099211483e+01 -1.093009976068779e+01 - -1.094096000533889e+01 -1.095183172286895e+01 -1.096271492588021e+01 -1.097360962990334e+01 -1.098451584638146e+01 - -1.099543358339704e+01 -1.100636283967740e+01 -1.101730361593110e+01 -1.102825593014644e+01 -1.103921979985815e+01 - -1.105019522350652e+01 -1.106118219809120e+01 -1.107218073394329e+01 -1.108319084475604e+01 -1.109421254433972e+01 - -1.110524584310812e+01 -1.111629073777213e+01 -1.112734722664297e+01 -1.113841532813614e+01 -1.114949506055284e+01 - -1.116058642163307e+01 -1.117168940919924e+01 -1.118280404196459e+01 -1.119393033845125e+01 -1.120506829552628e+01 - -1.121621790821428e+01 -1.122737918582522e+01 -1.123855214233318e+01 -1.124973679608346e+01 -1.126093316109601e+01 - -1.127214122971816e+01 -1.128336099568353e+01 -1.129459247994368e+01 -1.130583570391351e+01 -1.131709066364352e+01 - -1.132835735316995e+01 -1.133963578383626e+01 -1.135092597165251e+01 -1.136222793398803e+01 -1.137354168289046e+01 - -1.138486720776133e+01 -1.139620450077960e+01 -1.140755358788016e+01 -1.141891449467379e+01 -1.143028721171902e+01 - -1.144167172931863e+01 -1.145306807180483e+01 -1.146447626363145e+01 -1.147589629570943e+01 -1.148732815744427e+01 - -1.149877186576219e+01 -1.151022744176966e+01 -1.152169489577362e+01 -1.153317423307527e+01 -1.154466544975234e+01 - -1.155616854500299e+01 -1.156768353973055e+01 -1.157921045411968e+01 -1.159074928377541e+01 -1.160230002278200e+01 - -1.161386268372032e+01 -1.162543728297182e+01 -1.163702383362365e+01 -1.164862234413445e+01 -1.166023280774309e+01 - -1.167185522083641e+01 -1.168348960761297e+01 -1.169513599109641e+01 -1.170679436179895e+01 -1.171846471050954e+01 - -1.173014706163534e+01 -1.174184143967664e+01 -1.175354783588804e+01 -1.176526623959987e+01 -1.177699666569085e+01 - -1.178873913359907e+01 -1.180049365545172e+01 -1.181226023874721e+01 -1.182403887977966e+01 -1.183582957710202e+01 - -1.184763234950681e+01 -1.185944721571250e+01 -1.187127417390187e+01 -1.188311322026980e+01 -1.189496436359524e+01 - -1.190682761635663e+01 -1.191870299324639e+01 -1.193059050542573e+01 -1.194249014771712e+01 -1.195440191732676e+01 - -1.196632583733436e+01 -1.197826192918009e+01 -1.199021018187259e+01 -1.200217058481946e+01 -1.201414316145583e+01 - -1.202612793653577e+01 -1.203812490606177e+01 -1.205013406283600e+01 -1.206215541561094e+01 -1.207418897775090e+01 - -1.208623476511758e+01 -1.209829279023755e+01 -1.211036304979982e+01 -1.212244554104682e+01 -1.213454027927224e+01 - -1.214664728029985e+01 -1.215876654402256e+01 -1.217089806888390e+01 -1.218304186346073e+01 -1.219519793969503e+01 - -1.220736631285608e+01 -1.221954699446002e+01 -1.223173997768314e+01 -1.224394525782826e+01 -1.225616285704409e+01 - -1.226839279716718e+01 -1.228063507193962e+01 -1.229288967419984e+01 -1.230515662126608e+01 -1.231743593190913e+01 - -1.232972760623024e+01 -1.234203164189830e+01 -1.235434804552219e+01 -1.236667682754052e+01 -1.237901800477097e+01 - -1.239137159078778e+01 -1.240373757981251e+01 -1.241611596680448e+01 -1.242850676902663e+01 -1.244091000477032e+01 - -1.245332567413717e+01 -1.246575377485128e+01 -1.247819431331654e+01 -1.249064729993889e+01 -1.250311275245252e+01 - -1.251559068470151e+01 -1.252808108764087e+01 -1.254058395403090e+01 -1.255309930674196e+01 -1.256562716858205e+01 - -1.257816753199971e+01 -1.259072038911156e+01 -1.260328576106586e+01 -1.261586366917709e+01 -1.262845410639316e+01 - -1.264105706405277e+01 -1.265367255542431e+01 -1.266630059802175e+01 -1.267894120441173e+01 -1.269159438291520e+01 - -1.270426012981745e+01 -1.271693844300063e+01 -1.272962933876972e+01 -1.274233283335257e+01 -1.275504892424538e+01 - -1.276777760888006e+01 -1.278051890316245e+01 -1.279327282335948e+01 -1.280603936870822e+01 -1.281881853703964e+01 - -1.283161033759003e+01 -1.284441478278821e+01 -1.285723188642777e+01 -1.287006165845383e+01 -1.288290409205257e+01 - -1.289575918258311e+01 -1.290862695085492e+01 -1.292150741744502e+01 -1.293440057655018e+01 -1.294730642109768e+01 - -1.296022496531707e+01 -1.297315622664438e+01 -1.298610021403966e+01 -1.299905693252094e+01 -1.301202637981436e+01 - -1.302500855607946e+01 -1.303800347850134e+01 -1.305101116311717e+01 -1.306403160434687e+01 -1.307706479749205e+01 - -1.309011076299821e+01 -1.310316952145874e+01 -1.311624106891474e+01 -1.312932539865738e+01 -1.314242251753035e+01 - -1.315553243732881e+01 -1.316865517610136e+01 -1.318179074759510e+01 -1.319493914209791e+01 -1.320810035188408e+01 - -1.322127440063306e+01 -1.323446131182036e+01 -1.324766107670098e+01 -1.326087368408213e+01 -1.327409914520021e+01 - -1.328733747660298e+01 -1.330058869365459e+01 -1.331385280702646e+01 -1.332712980980294e+01 -1.334041969690924e+01 - -1.335372248822127e+01 -1.336703820316815e+01 -1.338036683444133e+01 -1.339370837465144e+01 -1.340706284282357e+01 - -1.342043025877972e+01 -1.343381061911550e+01 -1.344720391854233e+01 -1.346061016746156e+01 -1.347402937953320e+01 - -1.348746156576247e+01 -1.350090673400032e+01 -1.351436488213541e+01 -1.352783600940468e+01 -1.354132013040003e+01 - -1.355481725974633e+01 -1.356832739684519e+01 -1.358185053959114e+01 -1.359538669507347e+01 -1.360893587411229e+01 - -1.362249809325635e+01 -1.363607336498644e+01 -1.364966167978290e+01 -1.366326303005515e+01 -1.367687743792930e+01 - -1.369050492543861e+01 -1.370414548452841e+01 -1.371779910680898e+01 -1.373146581263829e+01 -1.374514562258463e+01 - -1.375883852931014e+01 -1.377254452369323e+01 -1.378626361738342e+01 -1.379999582664259e+01 -1.381374116541099e+01 - -1.382749964295472e+01 -1.384127125216480e+01 -1.385505598801133e+01 -1.386885387015567e+01 -1.388266491822051e+01 - -1.389648912698253e+01 -1.391032648926665e+01 -1.392417701493663e+01 -1.393804071810552e+01 -1.395191761284479e+01 - -1.396580770902492e+01 -1.397971099975399e+01 -1.399362747983656e+01 -1.400755716762526e+01 -1.402150008127576e+01 - -1.403545621460787e+01 -1.404942556175519e+01 -1.406340814244217e+01 -1.407740397661280e+01 -1.409141305949836e+01 - -1.410543538386059e+01 -1.411947095729565e+01 -1.413351979216372e+01 -1.414758190504674e+01 -1.416165730817942e+01 - -1.417574599218579e+01 -1.418984794931155e+01 -1.420396319989974e+01 -1.421809176459019e+01 -1.423223363711269e+01 - -1.424638880961032e+01 -1.426055729478944e+01 -1.427473910897708e+01 -1.428893426241975e+01 -1.430314276106135e+01 - -1.431736459971596e+01 -1.433159977568000e+01 -1.434584830730895e+01 -1.436011021230267e+01 -1.437438548467938e+01 - -1.438867411856965e+01 -1.440297613223502e+01 -1.441729154417122e+01 -1.443162034967981e+01 -1.444596254173529e+01 - -1.446031812719803e+01 -1.447468711827448e+01 -1.448906953466952e+01 -1.450346539077074e+01 -1.451787467219810e+01 - -1.453229736674074e+01 -1.454673349963205e+01 -1.456118309651608e+01 -1.457564614723534e+01 -1.459012263904241e+01 - -1.460461258463169e+01 -1.461911600163362e+01 -1.463363290198108e+01 -1.464816329304780e+01 -1.466270716966852e+01 - -1.467726452861927e+01 -1.469183538698022e+01 -1.470641976118071e+01 -1.472101764474266e+01 -1.473562903182180e+01 - -1.475025394201659e+01 -1.476489239431922e+01 -1.477954437985420e+01 -1.479420988900897e+01 -1.480888893709030e+01 - -1.482358154289730e+01 -1.483828771427918e+01 -1.485300745484606e+01 -1.486774076220148e+01 -1.488248763590571e+01 - -1.489724808935241e+01 -1.491202213620220e+01 -1.492680977735018e+01 -1.494161101188853e+01 -1.495642584446314e+01 - -1.497125428281713e+01 -1.498609634152866e+01 -1.500095203243959e+01 -1.501582134961145e+01 -1.503070428834008e+01 - -1.504560086663885e+01 -1.506051110171047e+01 -1.507543498479744e+01 -1.509037250787217e+01 -1.510532369178669e+01 - -1.512028855781273e+01 -1.513526710002122e+01 -1.515025931004586e+01 -1.516526519697226e+01 -1.518028477406786e+01 - -1.519531805387558e+01 -1.521036504514735e+01 -1.522542574219565e+01 -1.524050014105165e+01 -1.525558825906066e+01 - -1.527069011317451e+01 -1.528580569745696e+01 -1.530093500454836e+01 -1.531607804428359e+01 -1.533123483115148e+01 - -1.534640538106230e+01 -1.536158970459035e+01 -1.537678778954449e+01 -1.539199962605270e+01 -1.540722523628471e+01 - -1.542246464244602e+01 -1.543771783484346e+01 -1.545298480379291e+01 -1.546826557154514e+01 -1.548356016030771e+01 - -1.549886856018057e+01 -1.551419075889859e+01 -1.552952676684366e+01 -1.554487659991805e+01 -1.556024027345857e+01 - -1.557561779759322e+01 -1.559100916218038e+01 -1.560641435912106e+01 -1.562183340875659e+01 -1.563726633124305e+01 - -1.565271311755539e+01 -1.566817375858786e+01 -1.568364827409284e+01 -1.569913668435983e+01 -1.571463898296877e+01 - -1.573015516140282e+01 -1.574568522946743e+01 -1.576122920078429e+01 -1.577678708591764e+01 -1.579235889192325e+01 - -1.580794461488044e+01 -1.582354425266206e+01 -1.583915782129173e+01 -1.585478533595468e+01 -1.587042679033195e+01 - -1.588608217713541e+01 -1.590175150670428e+01 -1.591743479377280e+01 -1.593313205302798e+01 -1.594884329356461e+01 - -1.596456850215542e+01 -1.598030766876410e+01 -1.599606081844003e+01 -1.601182797567503e+01 -1.602760912764517e+01 - -1.604340426053651e+01 -1.605921339389068e+01 -1.607503654929621e+01 -1.609087372317365e+01 -1.610672490846679e+01 - -1.612259010938000e+01 -1.613846933535691e+01 -1.615436260553746e+01 -1.617026993400350e+01 -1.618619130490810e+01 - -1.620212670496088e+01 -1.621807616102629e+01 -1.623403970021593e+01 -1.625001731047507e+01 -1.626600897617460e+01 - -1.628201470655392e+01 -1.629803451699528e+01 -1.631406842258372e+01 -1.633011643368945e+01 -1.634617854212047e+01 - -1.636225474110459e+01 -1.637834504811086e+01 -1.639444948009596e+01 -1.641056802772599e+01 -1.642670068226715e+01 - -1.644284746367691e+01 -1.645900839255391e+01 -1.647518346337059e+01 -1.649137266740475e+01 -1.650757600928198e+01 - -1.652379349905581e+01 -1.654002515514406e+01 -1.655627099138395e+01 -1.657253099492616e+01 -1.658880515436409e+01 - -1.660509349074862e+01 -1.662139602569388e+01 -1.663771275060954e+01 -1.665404365442992e+01 -1.667038874639235e+01 - -1.668674804082613e+01 -1.670312155212567e+01 -1.671950928959044e+01 -1.673591124207530e+01 -1.675232740091000e+01 - -1.676875778776886e+01 -1.678520242381186e+01 -1.680166129779755e+01 -1.681813439803682e+01 -1.683462174345131e+01 - -1.685112335404732e+01 -1.686763922355921e+01 -1.688416934305047e+01 -1.690071371917313e+01 -1.691727236387981e+01 - -1.693384529473730e+01 -1.695043252373442e+01 -1.696703403493436e+01 -1.698364981519248e+01 -1.700027989045860e+01 - -1.701692428668450e+01 -1.703358299073511e+01 -1.705025598664567e+01 -1.706694328621936e+01 -1.708364490699094e+01 - -1.710036086165371e+01 -1.711709115711999e+01 -1.713383578201967e+01 -1.715059472804424e+01 -1.716736801741393e+01 - -1.718415567151382e+01 -1.720095767785962e+01 -1.721777402421613e+01 -1.723460473321376e+01 -1.725144982735173e+01 - -1.726830929373925e+01 -1.728518311723097e+01 -1.730207130905323e+01 -1.731897388644410e+01 -1.733589086431708e+01 - -1.735282225151622e+01 -1.736976803493245e+01 -1.738672820398455e+01 -1.740370278015603e+01 -1.742069178532102e+01 - -1.743769521085149e+01 -1.745471304524893e+01 -1.747174529603476e+01 -1.748879197614670e+01 -1.750585310116775e+01 - -1.752292868122209e+01 -1.754001870195336e+01 -1.755712315207324e+01 -1.757424205704595e+01 -1.759137544124289e+01 - -1.760852328791187e+01 -1.762568558032359e+01 -1.764286234296404e+01 -1.766005360135051e+01 -1.767725934391039e+01 - -1.769447955614261e+01 -1.771171424892207e+01 -1.772896343807829e+01 -1.774622713388326e+01 -1.776350534196338e+01 - -1.778079805492016e+01 -1.779810526797336e+01 -1.781542699984077e+01 -1.783276326793605e+01 -1.785011406095838e+01 - -1.786747936642481e+01 -1.788485919583838e+01 -1.790225356596892e+01 -1.791966249066770e+01 -1.793708597750879e+01 - -1.795452401187612e+01 -1.797197658287230e+01 -1.798944371666477e+01 -1.800692543788475e+01 -1.802442172795408e+01 - -1.804193256819016e+01 -1.805945798270200e+01 -1.807699799758296e+01 -1.809455260407236e+01 -1.811212178929598e+01 - -1.812970555877947e+01 -1.814730392419934e+01 -1.816491690343573e+01 -1.818254450889657e+01 -1.820018672489731e+01 - -1.821784353770839e+01 -1.823551496951270e+01 -1.825320104351004e+01 -1.827090175105552e+01 -1.828861707995103e+01 - -1.830634703563002e+01 -1.832409162961503e+01 -1.834185088015348e+01 -1.835962479982180e+01 -1.837741337178776e+01 - -1.839521658191638e+01 -1.841303445627024e+01 -1.843086702044687e+01 -1.844871425798603e+01 -1.846657615155986e+01 - -1.848445272242748e+01 -1.850234399331442e+01 -1.852024995422484e+01 -1.853817059263430e+01 -1.855610591862525e+01 - -1.857405594751762e+01 -1.859202069297440e+01 -1.861000016303027e+01 -1.862799434486363e+01 -1.864600322762024e+01 - -1.866402682917165e+01 -1.868206516860479e+01 -1.870011824114266e+01 -1.871818603889838e+01 -1.873626856540951e+01 - -1.875436582948875e+01 -1.877247784962497e+01 -1.879060463922456e+01 -1.880874618168810e+01 -1.882690246254704e+01 - -1.884507350586227e+01 -1.886325933574866e+01 -1.888145993800745e+01 -1.889967529731236e+01 -1.891790543214035e+01 - -1.893615036295555e+01 -1.895441008436764e+01 -1.897268458788422e+01 -1.899097387845919e+01 -1.900927796546465e+01 - -1.902759686249918e+01 -1.904593057916082e+01 -1.906427910481893e+01 -1.908264243109121e+01 -1.910102057881749e+01 - -1.911941356739387e+01 -1.913782138121961e+01 -1.915624400568942e+01 -1.917468146517671e+01 -1.919313378404767e+01 - -1.921160094766128e+01 -1.923008293912871e+01 -1.924857977157690e+01 -1.926709146357444e+01 -1.928561802544077e+01 - -1.930415946120927e+01 -1.932271575801813e+01 -1.934128690695999e+01 -1.935987293184044e+01 -1.937847385553680e+01 - -1.939708966450047e+01 -1.941572034241033e+01 -1.943436589828115e+01 -1.945302634705033e+01 -1.947170170200994e+01 - -1.949039197138318e+01 -1.950909714476303e+01 -1.952781721398065e+01 -1.954655219845012e+01 -1.956530211609402e+01 - -1.958406695128608e+01 -1.960284668959667e+01 -1.962164135493148e+01 -1.964045097168231e+01 -1.965927552785040e+01 - -1.967811500826448e+01 -1.969696942145404e+01 -1.971583878200212e+01 -1.973472310500559e+01 -1.975362239928199e+01 - -1.977253664801789e+01 -1.979146583743514e+01 -1.981040999152762e+01 -1.982936913462439e+01 -1.984834325462312e+01 - -1.986733233626431e+01 -1.988633638809098e+01 -1.990535542475069e+01 -1.992438946150660e+01 -1.994343850724086e+01 - -1.996250254469571e+01 -1.998158155988759e+01 -2.000067557806942e+01 -2.001978462401460e+01 -2.003890868134189e+01 - -2.005804773353269e+01 -2.007720180467363e+01 -2.009637091866160e+01 -2.011555505802958e+01 -2.013475420367532e+01 - -2.015396837131929e+01 -2.017319758216888e+01 -2.019244184455664e+01 -2.021170116029698e+01 -2.023097551800653e+01 - -2.025026491057744e+01 -2.026956936120177e+01 -2.028888889127859e+01 -2.030822348473533e+01 -2.032757312336421e+01 - -2.034693781788847e+01 -2.036631758558183e+01 -2.038571244098909e+01 -2.040512239225047e+01 -2.042454742461679e+01 - -2.044398752597867e+01 -2.046344271767523e+01 -2.048291302072143e+01 -2.050239842138679e+01 -2.052189890581644e+01 - -2.054141449440303e+01 -2.056094520839277e+01 -2.058049103819856e+01 -2.060005197091200e+01 -2.061962801117254e+01 - -2.063921916971323e+01 -2.065882546409381e+01 -2.067844690614864e+01 -2.069808347798381e+01 -2.071773516441981e+01 - -2.073740199086278e+01 -2.075708398272239e+01 -2.077678112483692e+01 -2.079649339928443e+01 -2.081622081767353e+01 - -2.083596339752241e+01 -2.085572115045732e+01 -2.087549408142252e+01 -2.089528217452614e+01 -2.091508541798258e+01 - -2.093490383726751e+01 -2.095473745703866e+01 -2.097458626142068e+01 -2.099445023367205e+01 -2.101432939411960e+01 - -2.103422376365449e+01 -2.105413332835716e+01 -2.107405807288499e+01 -2.109399801101360e+01 -2.111395316146354e+01 - -2.113392353361706e+01 -2.115390913036233e+01 -2.117390993794961e+01 -2.119392594678185e+01 -2.121395718051052e+01 - -2.123400366165125e+01 -2.125406537492771e+01 -2.127414230292253e+01 -2.129423445744600e+01 -2.131434185603574e+01 - -2.133446450991120e+01 -2.135460242400538e+01 -2.137475558442359e+01 -2.139492398094176e+01 -2.141510763684612e+01 - -2.143530657354728e+01 -2.145552077144329e+01 -2.147575021223202e+01 -2.149599492382317e+01 -2.151625493458459e+01 - -2.153653022850520e+01 -2.155682078515937e+01 -2.157712661084235e+01 -2.159744772002078e+01 -2.161778413312624e+01 - -2.163813586321833e+01 -2.165850288790379e+01 -2.167888518769065e+01 -2.169928279014487e+01 -2.171969572392566e+01 - -2.174012397500749e+01 -2.176056752455845e+01 -2.178102637720577e+01 -2.180150054539059e+01 -2.182199004935065e+01 - -2.184249490264348e+01 -2.186301508430896e+01 -2.188355057625899e+01 -2.190410140641098e+01 -2.192466760199104e+01 - -2.194524914145450e+01 -2.196584600311797e+01 -2.198645821351363e+01 -2.200708580045210e+01 -2.202772874864248e+01 - -2.204838703903658e+01 -2.206906068065864e+01 -2.208974968965916e+01 -2.211045408262128e+01 -2.213117386881762e+01 - -2.215190902784613e+01 -2.217265954271720e+01 -2.219342543976576e+01 -2.221420674565993e+01 -2.223500344507609e+01 - -2.225581551916326e+01 -2.227664297695268e+01 -2.229748583458740e+01 -2.231834410877561e+01 -2.233921780886325e+01 - -2.236010691418214e+01 -2.238101140757746e+01 -2.240193131596196e+01 -2.242286666626994e+01 -2.244381744145418e+01 - -2.246478362333585e+01 -2.248576523319086e+01 -2.250676229308250e+01 -2.252777478876882e+01 -2.254880270395783e+01 - -2.256984605046237e+01 -2.259090484578745e+01 -2.261197910210208e+01 -2.263306882483333e+01 -2.265417399777652e+01 - -2.267529460825966e+01 -2.269643067937303e+01 -2.271758223358744e+01 -2.273874925513337e+01 -2.275993172840441e+01 - -2.278112967668665e+01 -2.280234312326570e+01 -2.282357205253301e+01 -2.284481644618636e+01 -2.286607631404299e+01 - -2.288735167241803e+01 -2.290864253549898e+01 -2.292994891082159e+01 -2.295127078144212e+01 -2.297260813386354e+01 - -2.299396099285480e+01 -2.301532938287575e+01 -2.303671328888409e+01 -2.305811269234469e+01 -2.307952760025338e+01 - -2.310095802706863e+01 -2.312240399156859e+01 -2.314386550544134e+01 -2.316534254769484e+01 -2.318683510020089e+01 - -2.320834318896662e+01 -2.322986684000025e+01 -2.325140603517923e+01 -2.327296075598023e+01 -2.329453102640753e+01 - -2.331611687084991e+01 -2.333771827270656e+01 -2.335933521295700e+01 -2.338096770389138e+01 -2.340261576396985e+01 - -2.342427940502197e+01 -2.344595863230511e+01 -2.346765343141823e+01 -2.348936379112492e+01 -2.351108973250527e+01 - -2.353283127622654e+01 -2.355458840898814e+01 -2.357636111469370e+01 -2.359814940003157e+01 -2.361995327887107e+01 - -2.364177277102066e+01 -2.366360788867084e+01 -2.368545860760097e+01 -2.370732490730504e+01 -2.372920681854641e+01 - -2.375110437181196e+01 -2.377301754521346e+01 -2.379494631547129e+01 -2.381689070611525e+01 -2.383885074279985e+01 - -2.386082641286912e+01 -2.388281770027697e+01 -2.390482461372720e+01 -2.392684716763744e+01 -2.394888537453080e+01 - -2.397093924094647e+01 -2.399300875138237e+01 -2.401509389381072e+01 -2.403719469214220e+01 -2.405931116939521e+01 - -2.408144330908079e+01 -2.410359109227195e+01 -2.412575452979684e+01 -2.414793363861520e+01 -2.417012843045825e+01 - -2.419233891107258e+01 -2.421456506749473e+01 -2.423680688969797e+01 -2.425906439811232e+01 -2.428133761196757e+01 - -2.430362651523593e+01 -2.432593109247103e+01 -2.434825136580965e+01 -2.437058735754595e+01 -2.439293905302052e+01 - -2.441530643508021e+01 -2.443768951355032e+01 -2.446008830475372e+01 -2.448250282402539e+01 -2.450493307947941e+01 - -2.452737905133441e+01 -2.454984072340254e+01 -2.457231812176549e+01 -2.459481127247106e+01 -2.461732015916192e+01 - -2.463984476198997e+01 -2.466238508954903e+01 -2.468494115731883e+01 -2.470751297988127e+01 -2.473010056541401e+01 - -2.475270389737600e+01 -2.477532296279144e+01 -2.479795778766421e+01 -2.482060839605179e+01 -2.484327476524651e+01 - -2.486595687297807e+01 -2.488865474549064e+01 -2.491136841050829e+01 -2.493409785316058e+01 -2.495684305468689e+01 - -2.497960402336061e+01 -2.500238077436705e+01 -2.502517332350563e+01 -2.504798167938967e+01 -2.507080582127416e+01 - -2.509364573240812e+01 -2.511650144137505e+01 -2.513937297643642e+01 -2.516226031923135e+01 -2.518516344740990e+01 - -2.520808236928804e+01 -2.523101710100030e+01 -2.525396765928963e+01 -2.527693405405919e+01 -2.529991626724470e+01 - -2.532291428361040e+01 -2.534592812720204e+01 -2.536895782110043e+01 -2.539200334524508e+01 -2.541506468057373e+01 - -2.543814185515816e+01 -2.546123489657537e+01 -2.548434378328921e+01 -2.550746849096137e+01 -2.553060903315797e+01 - -2.555376543163097e+01 -2.557693770297151e+01 -2.560012585444837e+01 -2.562332986120158e+01 -2.564654970308929e+01 - -2.566978541097076e+01 -2.569303701597250e+01 -2.571630449928904e+01 -2.573958783754457e+01 -2.576288703901380e+01 - -2.578620212017663e+01 -2.580953309868325e+01 -2.583287998467666e+01 -2.585624275710073e+01 -2.587962139846310e+01 - -2.590301593672573e+01 -2.592642639921134e+01 -2.594985276523152e+01 -2.597329501305775e+01 -2.599675316481207e+01 - -2.602022724494944e+01 -2.604371724340627e+01 -2.606722314554395e+01 -2.609074495294231e+01 -2.611428267453130e+01 - -2.613783633242288e+01 -2.616140594232113e+01 -2.618499148111656e+01 -2.620859292804694e+01 -2.623221031055255e+01 - -2.625584365675950e+01 -2.627949294933480e+01 -2.630315816707157e+01 -2.632683931872623e+01 -2.635053642045652e+01 - -2.637424948806206e+01 -2.639797853015353e+01 -2.642172352694394e+01 -2.644548446269175e+01 -2.646926136623515e+01 - -2.649305426487780e+01 -2.651686313520573e+01 -2.654068795336410e+01 -2.656452874445229e+01 -2.658838553565089e+01 - -2.661225831351167e+01 -2.663614706041860e+01 -2.666005178271351e+01 -2.668397249386109e+01 -2.670790921185966e+01 - -2.673186194785124e+01 -2.675583068101895e+01 -2.677981539336416e+01 -2.680381611012034e+01 -2.682783285712106e+01 - -2.685186561936856e+01 -2.687591437786270e+01 -2.689997913842517e+01 -2.692405991477839e+01 -2.694815672742597e+01 - -2.697226958936361e+01 -2.699639847677425e+01 -2.702054336911223e+01 -2.704470429573021e+01 -2.706888128546201e+01 - -2.709307431516761e+01 -2.711728336172764e+01 -2.714150845407871e+01 -2.716574962162754e+01 -2.719000684360529e+01 - -2.721428009605862e+01 -2.723856939247152e+01 -2.726287475352885e+01 -2.728719619128178e+01 -2.731153370993099e+01 - -2.733588729090867e+01 -2.736025692081293e+01 -2.738464262967399e+01 -2.740904444482641e+01 -2.743346233939021e+01 - -2.745789628706843e+01 -2.748234631811058e+01 -2.750681246441337e+01 -2.753129470791622e+01 -2.755579302585287e+01 - -2.758030742659158e+01 -2.760483792680023e+01 -2.762938454521084e+01 -2.765394729250735e+01 -2.767852614511706e+01 - -2.770312108289846e+01 -2.772773213369129e+01 -2.775235932608502e+01 -2.777700264368704e+01 -2.780166206614083e+01 - -2.782633760221619e+01 -2.785102926812099e+01 -2.787573708068912e+01 -2.790046104903706e+01 -2.792520115078565e+01 - -2.794995736764946e+01 -2.797472972921345e+01 -2.799951826412358e+01 -2.802432294939970e+01 -2.804914376169005e+01 - -2.807398072778233e+01 -2.809883387567351e+01 -2.812370318805837e+01 -2.814858864438241e+01 -2.817349025639583e+01 - -2.819840804241009e+01 -2.822334201467696e+01 -2.824829217820057e+01 -2.827325851505399e+01 -2.829824101147483e+01 - -2.832323969328987e+01 -2.834825458594292e+01 -2.837328567375688e+01 -2.839833293713809e+01 -2.842339638194745e+01 - -2.844847602232610e+01 -2.847357188008160e+01 -2.849868396869187e+01 -2.852381226064981e+01 -2.854895673259501e+01 - -2.857411741873861e+01 -2.859929435285462e+01 -2.862448750939692e+01 -2.864969686163745e+01 -2.867492243744038e+01 - -2.870016426611871e+01 -2.872542232818885e+01 -2.875069660076976e+01 -2.877598709618692e+01 -2.880129383482867e+01 - -2.882661683412842e+01 -2.885195610246809e+01 -2.887731161497835e+01 -2.890268335136361e+01 -2.892807134287440e+01 - -2.895347562064698e+01 -2.897889616381469e+01 -2.900433294736006e+01 -2.902978598166526e+01 -2.905525528595928e+01 - -2.908074087945912e+01 -2.910624277257485e+01 -2.913176094050105e+01 -2.915729536236611e+01 -2.918284606824940e+01 - -2.920841308797334e+01 -2.923399639938179e+01 -2.925959597987842e+01 -2.928521185708459e+01 -2.931084405942344e+01 - -2.933649256830759e+01 -2.936215736109871e+01 -2.938783844596477e+01 -2.941353583979598e+01 -2.943924956356517e+01 - -2.946497963001566e+01 -2.949072601489006e+01 -2.951648869675137e+01 -2.954226770244480e+01 -2.956806305999476e+01 - -2.959387475386040e+01 -2.961970276467950e+01 -2.964554710136948e+01 -2.967140778023144e+01 -2.969728481882160e+01 - -2.972317822671904e+01 -2.974908798033929e+01 -2.977501406036931e+01 -2.980095649774566e+01 -2.982691532231985e+01 - -2.985289050935425e+01 -2.987888203414534e+01 -2.990488992671488e+01 -2.993091421806754e+01 -2.995695488841446e+01 - -2.998301191396682e+01 -3.000908530572931e+01 -3.003517508294127e+01 -3.006128126298706e+01 -3.008740385472813e+01 - -3.011354283478899e+01 -3.013969818396866e+01 -3.016586993200092e+01 -3.019205810852835e+01 -3.021826269389396e+01 - -3.024448366459688e+01 -3.027072103106001e+01 -3.029697481234801e+01 -3.032324502816885e+01 -3.034953168930138e+01 - -3.037583477016444e+01 -3.040215424919064e+01 -3.042849015722735e+01 -3.045484252487287e+01 -3.048121132931426e+01 - -3.050759654718701e+01 -3.053399820633122e+01 -3.056041633582694e+01 -3.058685091850949e+01 -3.061330193277164e+01 - -3.063976938548045e+01 -3.066625329189824e+01 -3.069275367239408e+01 -3.071927054017274e+01 -3.074580387467516e+01 - -3.077235365736276e+01 -3.079891991154272e+01 -3.082550266154129e+01 -3.085210189391538e+01 -3.087871759159065e+01 - -3.090534976073683e+01 -3.093199841535169e+01 -3.095866357750086e+01 -3.098534526117247e+01 -3.101204343997652e+01 - -3.103875809113482e+01 -3.106548924669440e+01 -3.109223693806243e+01 -3.111900113926174e+01 -3.114578182447812e+01 - -3.117257902593346e+01 -3.119939277712214e+01 -3.122622305859262e+01 -3.125306984560579e+01 -3.127993314521812e+01 - -3.130681297362548e+01 -3.133370935178603e+01 -3.136062229292185e+01 -3.138755177454848e+01 -3.141449777743489e+01 - -3.144146033107010e+01 -3.146843946420585e+01 -3.149543515392452e+01 -3.152244737446985e+01 -3.154947614039987e+01 - -3.157652147508332e+01 -3.160358339681746e+01 -3.163066191390917e+01 -3.165775699977537e+01 -3.168486863280270e+01 - -3.171199684614663e+01 -3.173914167265754e+01 -3.176630308919665e+01 -3.179348107134120e+01 -3.182067564552154e+01 - -3.184788683989369e+01 -3.187511463866380e+01 -3.190235902163426e+01 -3.192961999494226e+01 -3.195689757352222e+01 - -3.198419178116283e+01 -3.201150263346307e+01 -3.203883010440887e+01 -3.206617417058478e+01 -3.209353486058297e+01 - -3.212091220418486e+01 -3.214830618392138e+01 -3.217571677868305e+01 -3.220314400004898e+01 -3.223058786708538e+01 - -3.225804839611857e+01 -3.228552559489243e+01 -3.231301943956095e+01 -3.234052991162765e+01 -3.236805704558397e+01 - -3.239560087404328e+01 -3.242316136911894e+01 -3.245073850255218e+01 -3.247833230509534e+01 -3.250594280965240e+01 - -3.253356999872297e+01 -3.256121385028732e+01 -3.258887437465276e+01 -3.261655158960600e+01 -3.264424551052439e+01 - -3.267195614529539e+01 -3.269968347425627e+01 -3.272742748229857e+01 -3.275518820008119e+01 -3.278296565603427e+01 - -3.281075982390590e+01 -3.283857067801981e+01 -3.286639824968410e+01 -3.289424257141810e+01 -3.292210362360176e+01 - -3.294998138240963e+01 -3.297787585933321e+01 -3.300578707421773e+01 -3.303371504500630e+01 -3.306165978102434e+01 - -3.308962125902853e+01 -3.311759946003357e+01 -3.314559441465483e+01 -3.317360615365304e+01 -3.320163465877013e+01 - -3.322967990687330e+01 -3.325774190434956e+01 -3.328582066713852e+01 -3.331391621987054e+01 -3.334202857831301e+01 - -3.337015771409062e+01 -3.339830360273710e+01 -3.342646627956469e+01 -3.345464577921614e+01 -3.348284207387808e+01 - -3.351105513572078e+01 -3.353928499930519e+01 -3.356753169996216e+01 -3.359579521371194e+01 -3.362407551222610e+01 - -3.365237260909204e+01 -3.368068652715969e+01 -3.370901728441355e+01 -3.373736488954338e+01 -3.376572931892538e+01 - -3.379411055342771e+01 -3.382250862419983e+01 -3.385092356238306e+01 -3.387935534880526e+01 -3.390780395979943e+01 - -3.393626940403256e+01 -3.396475169950308e+01 -3.399325086920118e+01 -3.402176692682492e+01 -3.405029984391190e+01 - -3.407884959628061e+01 -3.410741621903333e+01 -3.413599974690003e+01 -3.416460015383780e+01 -3.419321741347679e+01 - -3.422185155891206e+01 -3.425050262370409e+01 -3.427917058381036e+01 -3.430785541111823e+01 -3.433655711883738e+01 - -3.436527572977491e+01 -3.439401126380553e+01 -3.442276373145798e+01 -3.445153310880944e+01 -3.448031937598221e+01 - -3.450912256373026e+01 -3.453794270224409e+01 -3.456677976882821e+01 -3.459563373771100e+01 -3.462450462370172e+01 - -3.465339245071625e+01 -3.468229723851619e+01 -3.471121899611902e+01 -3.474015769371995e+01 -3.476911330776019e+01 - -3.479808587848705e+01 -3.482707544447295e+01 -3.485608197378501e+01 -3.488510543365825e+01 -3.491414585850467e+01 - -3.494320328527482e+01 -3.497227769389696e+01 -3.500136905869145e+01 -3.503047738856913e+01 -3.505960270226024e+01 - -3.508874502318216e+01 -3.511790436512474e+01 -3.514708069868058e+01 -3.517627399907308e+01 -3.520548430324607e+01 - -3.523471164812467e+01 -3.526395600883895e+01 -3.529321735592740e+01 -3.532249570335686e+01 -3.535179107461137e+01 - -3.538110348781549e+01 -3.541043295179184e+01 -3.543977944351469e+01 -3.546914294470585e+01 -3.549852348792567e+01 - -3.552792110371767e+01 -3.555733576371960e+01 -3.558676744035331e+01 -3.561621616808287e+01 -3.564568198278825e+01 - -3.567516486397158e+01 -3.570466478590109e+01 -3.573418175828719e+01 -3.576371580017962e+01 -3.579326693254331e+01 - -3.582283516733191e+01 -3.585242047853867e+01 -3.588202284498269e+01 -3.591164230274704e+01 -3.594127888660625e+01 - -3.597093256883734e+01 -3.600060331833949e+01 -3.603029115299790e+01 -3.605999610029281e+01 -3.608971817709886e+01 - -3.611945738978410e+01 -3.614921371329605e+01 -3.617898712799953e+01 -3.620877766734910e+01 -3.623858536391516e+01 - -3.626841019364145e+01 -3.629825213180558e+01 -3.632811120764664e+01 -3.635798745148868e+01 -3.638788084403422e+01 - -3.641779136227628e+01 -3.644771901799147e+01 -3.647766383142195e+01 -3.650762582188893e+01 -3.653760499949427e+01 - -3.656760133838370e+01 -3.659761481766282e+01 -3.662764547223315e+01 -3.665769333671685e+01 -3.668775838882340e+01 - -3.671784060113342e+01 -3.674793998262476e+01 -3.677805655273779e+01 -3.680819033636626e+01 -3.683834134900049e+01 - -3.686850956306390e+01 -3.689869495454472e+01 -3.692889755675729e+01 -3.695911740229619e+01 -3.698935446355054e+01 - -3.701960871343802e+01 -3.704988018719579e+01 -3.708016892120266e+01 -3.711047489408478e+01 -3.714079807933708e+01 - -3.717113848768184e+01 -3.720149613882988e+01 -3.723187105121882e+01 -3.726226323497034e+01 -3.729267266821555e+01 - -3.732309933333587e+01 -3.735354326170426e+01 -3.738400448395760e+01 -3.741448297879693e+01 -3.744497872108128e+01 - -3.747549172223736e+01 -3.750602200310610e+01 -3.753656958561755e+01 -3.756713448177913e+01 -3.759771666281819e+01 - -3.762831610507856e+01 -3.765893284615005e+01 -3.768956692232328e+01 -3.772021830344675e+01 -3.775088695941269e+01 - -3.778157292673024e+01 -3.781227624306894e+01 -3.784299688412320e+01 -3.787373482086582e+01 -3.790449006735824e+01 - -3.793526264738479e+01 -3.796605258053289e+01 -3.799685987630166e+01 -3.802768450803411e+01 -3.805852645435349e+01 - -3.808938575116029e+01 -3.812026243387959e+01 -3.815115647875793e+01 -3.818206785737669e+01 -3.821299658183555e+01 - -3.824394267407146e+01 -3.827490615485264e+01 -3.830588703573063e+01 -3.833688529255877e+01 -3.836790090523419e+01 - -3.839893390552727e+01 -3.842998432385276e+01 -3.846105213333004e+01 -3.849213730842061e+01 -3.852323988624988e+01 - -3.855435990371658e+01 -3.858549733414936e+01 -3.861665214665468e+01 -3.864782435702053e+01 -3.867901399128823e+01 - -3.871022106983104e+01 -3.874144560188923e+01 -3.877268755783931e+01 -3.880394691415978e+01 -3.883522371060106e+01 - -3.886651798555487e+01 -3.889782970870629e+01 -3.892915884903668e+01 -3.896050544141922e+01 -3.899186952243698e+01 - -3.902325106962145e+01 -3.905465005558139e+01 -3.908606649228560e+01 -3.911750040150871e+01 -3.914895180488885e+01 - -3.918042071436301e+01 -3.921190710320024e+01 -3.924341094905042e+01 -3.927493228575462e+01 -3.930647114756201e+01 - -3.933802751416320e+01 -3.936960136044893e+01 -3.940119269666864e+01 -3.943280154239230e+01 -3.946442791911308e+01 - -3.949607183932866e+01 -3.952773327763106e+01 -3.955941221301939e+01 -3.959110868002649e+01 -3.962282271157864e+01 - -3.965455427864192e+01 -3.968630335291520e+01 -3.971806997098832e+01 -3.974985417066340e+01 -3.978165592970123e+01 - -3.981347522024374e+01 -3.984531205199855e+01 -3.987716644515135e+01 -3.990903842423468e+01 -3.994092800366619e+01 - -3.997283515305731e+01 -4.000475984705376e+01 -4.003670212524431e+01 -4.006866202678586e+01 -4.010063952416471e+01 - -4.013263458527370e+01 -4.016464722630246e+01 -4.019667747391531e+01 -4.022872534837892e+01 -4.026079085897078e+01 - -4.029287397740929e+01 -4.032497468131004e+01 -4.035709300943645e+01 -4.038922899883853e+01 -4.042138261856475e+01 - -4.045355383733334e+01 -4.048574269054266e+01 -4.051794921541258e+01 -4.055017338976896e+01 -4.058241518694505e+01 - -4.061467462169752e+01 -4.064695171778673e+01 -4.067924649356458e+01 -4.071155895737036e+01 -4.074388908290122e+01 - -4.077623684962312e+01 -4.080860229471885e+01 -4.084098545450960e+01 -4.087338630415373e+01 -4.090580481395003e+01 - -4.093824099592192e+01 -4.097069487270115e+01 -4.100316646762842e+01 -4.103565579436854e+01 -4.106816282717386e+01 - -4.110068754422534e+01 -4.113322997883087e+01 -4.116579016300655e+01 -4.119836806847471e+01 -4.123096366815907e+01 - -4.126357700008218e+01 -4.129620810254014e+01 -4.132885694982463e+01 -4.136152351139461e+01 -4.139420780138244e+01 - -4.142690984447184e+01 -4.145962966287846e+01 -4.149236726828771e+01 -4.152512263273182e+01 -4.155789573295193e+01 - -4.159068660417814e+01 -4.162349528189675e+01 -4.165632174413023e+01 -4.168916596438000e+01 -4.172202795552684e+01 - -4.175490773972726e+01 -4.178780533686147e+01 -4.182072075745918e+01 -4.185365397692470e+01 -4.188660497553830e+01 - -4.191957378820953e+01 -4.195256044830271e+01 -4.198556492837179e+01 -4.201858720098863e+01 -4.205162729960676e+01 - -4.208468525919077e+01 -4.211776105986812e+01 -4.215085467691669e+01 -4.218396612105321e+01 -4.221709541226407e+01 - -4.225024257217616e+01 -4.228340761361360e+01 -4.231659051254899e+01 -4.234979124870078e+01 -4.238300985362200e+01 - -4.241624635885866e+01 -4.244950074409413e+01 -4.248277298525672e+01 -4.251606309511715e+01 -4.254937109530931e+01 - -4.258269700607782e+01 -4.261604083828603e+01 -4.264940256666174e+01 -4.268278217100897e+01 -4.271617968757233e+01 - -4.274959515039267e+01 -4.278302852825576e+01 -4.281647979114838e+01 -4.284994897911630e+01 -4.288343613339240e+01 - -4.291694122989936e+01 -4.295046423857267e+01 -4.298400517070971e+01 -4.301756404788966e+01 -4.305114089145757e+01 - -4.308473571388112e+01 -4.311834849235274e+01 -4.315197920801049e+01 -4.318562789305037e+01 -4.321929457904871e+01 - -4.325297924404543e+01 -4.328668186207582e+01 -4.332040244469275e+01 -4.335414101381126e+01 -4.338789759527743e+01 - -4.342167220389723e+01 -4.345546480638487e+01 -4.348927537558045e+01 -4.352310395691921e+01 -4.355695059370569e+01 - -4.359081524812669e+01 -4.362469788222823e+01 -4.365859853861065e+01 -4.369251726260594e+01 -4.372645402991838e+01 - -4.376040880917880e+01 -4.379438161035186e+01 -4.382837245512241e+01 -4.386238137072252e+01 -4.389640837367813e+01 - -4.393045343214298e+01 -4.396451651875527e+01 -4.399859767246311e+01 -4.403269693263155e+01 -4.406681427398399e+01 - -4.410094966630350e+01 -4.413510312425358e+01 -4.416927467295284e+01 -4.420346433446015e+01 -4.423767212069691e+01 - -4.427189800609401e+01 -4.430614196966567e+01 -4.434040404624994e+01 -4.437468426893484e+01 -4.440898260798443e+01 - -4.444329903479183e+01 -4.447763358808973e+01 -4.451198630763288e+01 -4.454635716992501e+01 -4.458074614621454e+01 - -4.461515324997958e+01 -4.464957850449220e+01 -4.468402192997090e+01 -4.471848353715485e+01 -4.475296330191956e+01 - -4.478746120505344e+01 -4.482197728186011e+01 -4.485651156648301e+01 -4.489106403390974e+01 -4.492563465506775e+01 - -4.496022344379944e+01 -4.499483042484561e+01 -4.502945562362576e+01 -4.506409905435962e+01 -4.509876068578905e+01 - -4.513344049220396e+01 -4.516813851556444e+01 -4.520285479589762e+01 -4.523758929782897e+01 -4.527234198687941e+01 - -4.530711290755342e+01 -4.534190210524451e+01 -4.537670954991925e+01 -4.541153520580425e+01 -4.544637908959269e+01 - -4.548124122972980e+01 -4.551612164920255e+01 -4.555102035951307e+01 -4.558593733168242e+01 -4.562087254236648e+01 - -4.565582603124118e+01 -4.569079783605451e+01 -4.572578792382265e+01 -4.576079626235065e+01 -4.579582289333027e+01 - -4.583086785976433e+01 -4.586593113601344e+01 -4.590101269036680e+01 -4.593611253546989e+01 -4.597123069530716e+01 - -4.600636719486254e+01 -4.604152204856955e+01 -4.607669522766013e+01 -4.611188670797630e+01 -4.614709652700154e+01 - -4.618232472227299e+01 -4.621757126990104e+01 -4.625283614113306e+01 -4.628811934919114e+01 -4.632342091751210e+01 - -4.635874086841728e+01 -4.639407921460932e+01 -4.642943593143147e+01 -4.646481099859044e+01 -4.650020445060623e+01 - -4.653561632090474e+01 -4.657104658372261e+01 -4.660649521327068e+01 -4.664196224284595e+01 -4.667744770698098e+01 - -4.671295158606459e+01 -4.674847385553061e+01 -4.678401452513644e+01 -4.681957361522331e+01 -4.685515115414413e+01 - -4.689074715945064e+01 -4.692636159747788e+01 -4.696199443933372e+01 -4.699764572643400e+01 -4.703331550121288e+01 - -4.706900373987032e+01 -4.710471041222129e+01 -4.714043552877479e+01 -4.717617911151273e+01 -4.721194118761495e+01 - -4.724772177397794e+01 -4.728352084116666e+01 -4.731933836391387e+01 -4.735517437995513e+01 -4.739102892624472e+01 - -4.742690197360956e+01 -4.746279349304486e+01 -4.749870352234630e+01 -4.753463210070628e+01 -4.757057920610364e+01 - -4.760654481072343e+01 -4.764252892478859e+01 -4.767853156968457e+01 -4.771455277340900e+01 -4.775059255327958e+01 - -4.778665087728216e+01 -4.782272771801416e+01 -4.785882311585065e+01 -4.789493711157514e+01 -4.793106967982698e+01 - -4.796722079021173e+01 -4.800339045834357e+01 -4.803957871014897e+01 -4.807578556679541e+01 -4.811201103905631e+01 - -4.814825510088780e+01 -4.818451773166895e+01 -4.822079896928767e+01 -4.825709884980719e+01 -4.829341734348342e+01 - -4.832975442115909e+01 -4.836611012183125e+01 -4.840248448526336e+01 -4.843887748613056e+01 -4.847528909416636e+01 - -4.851171932442625e+01 -4.854816820273300e+01 -4.858463575265701e+01 -4.862112198691646e+01 -4.865762687707282e+01 - -4.869415040003414e+01 -4.873069259525141e+01 -4.876725350118260e+01 -4.880383308977095e+01 -4.884043132904604e+01 - -4.887704823789731e+01 -4.891368384608068e+01 -4.895033817595851e+01 -4.898701123776245e+01 -4.902370300059485e+01 - -4.906041344002308e+01 -4.909714259860375e+01 -4.913389051725400e+01 -4.917065716334413e+01 -4.920744250429804e+01 - -4.924424658130064e+01 -4.928106943700116e+01 -4.931791104614518e+01 -4.935477137752828e+01 -4.939165044404930e+01 - -4.942854827009338e+01 -4.946546488188807e+01 -4.950240029454247e+01 -4.953935447684974e+01 -4.957632740294361e+01 - -4.961331911463601e+01 -4.965032965315336e+01 -4.968735898970213e+01 -4.972440709120082e+01 -4.976147397743583e+01 - -4.979855967878247e+01 -4.983566421510402e+01 -4.987278759472007e+01 -4.990992979028766e+01 -4.994709078100569e+01 - -4.998427060790318e+01 -5.002146930959274e+01 -5.005868685319148e+01 -5.009592320640078e+01 -5.013317841075434e+01 - -5.017045250915469e+01 -5.020774547614742e+01 -5.024505728017924e+01 -5.028238793365752e+01 -5.031973746104961e+01 - -5.035710589110189e+01 -5.039449324090066e+01 -5.043189947661289e+01 -5.046932456973549e+01 -5.050676856400442e+01 - -5.054423150327239e+01 -5.058171335962052e+01 -5.061921409929316e+01 -5.065673373695915e+01 -5.069427229950105e+01 - -5.073182981423184e+01 -5.076940629607507e+01 -5.080700170996615e+01 -5.084461602753602e+01 -5.088224929718589e+01 - -5.091990156525010e+01 -5.095757279302548e+01 -5.099526294209112e+01 -5.103297206019221e+01 -5.107070019605169e+01 - -5.110844731613729e+01 -5.114621338143406e+01 -5.118399841325091e+01 -5.122180244526444e+01 -5.125962550029841e+01 - -5.129746758802490e+01 -5.133532867636215e+01 -5.137320874011100e+01 -5.141110782335645e+01 -5.144902596945006e+01 - -5.148696314952589e+01 -5.152491932947918e+01 -5.156289452646703e+01 -5.160088876945014e+01 -5.163890208334180e+01 - -5.167693448081514e+01 -5.171498592963017e+01 -5.175305640369855e+01 -5.179114594645165e+01 -5.182925460014935e+01 - -5.186738233284598e+01 -5.190552911234031e+01 -5.194369497961412e+01 -5.198187997663295e+01 -5.202008407611459e+01 - -5.205830724580739e+01 -5.209654950282933e+01 -5.213481087573764e+01 -5.217309138947744e+01 -5.221139105690054e+01 - -5.224970984609732e+01 -5.228804773087789e+01 -5.232640475269200e+01 -5.236478095346914e+01 -5.240317630941821e+01 - -5.244159079031952e+01 -5.248002440595931e+01 -5.251847717885386e+01 -5.255694914243367e+01 -5.259544031823210e+01 - -5.263395066927961e+01 -5.267248016335085e+01 -5.271102884570031e+01 -5.274959676081755e+01 -5.278818387265291e+01 - -5.282679014593192e+01 -5.286541562901994e+01 -5.290406037048660e+01 -5.294272433607927e+01 -5.298140748616263e+01 - -5.302010984239256e+01 -5.305883143892672e+01 -5.309757229863885e+01 -5.313633243133304e+01 -5.317511180581835e+01 - -5.321391039785607e+01 -5.325272825201081e+01 -5.329156541074357e+01 -5.333042183929739e+01 -5.336929750308754e+01 - -5.340819244543594e+01 -5.344710671111962e+01 -5.348604027282968e+01 -5.352499309722418e+01 -5.356396519891433e+01 - -5.360295660504364e+01 -5.364196734493171e+01 -5.368099743556814e+01 -5.372004684244607e+01 -5.375911553606044e+01 - -5.379820355840945e+01 -5.383731095277006e+01 -5.387643769603123e+01 -5.391558375867469e+01 -5.395474915194053e+01 - -5.399393389872404e+01 -5.403313802778240e+01 -5.407236155707715e+01 -5.411160445552515e+01 -5.415086669663323e+01 - -5.419014832131279e+01 -5.422944936941720e+01 -5.426876980916325e+01 -5.430810960961936e+01 -5.434746881489674e+01 - -5.438684746929877e+01 -5.442624554285502e+01 -5.446566300018413e+01 -5.450509985853421e+01 -5.454455614758906e+01 - -5.458403189414573e+01 -5.462352711279953e+01 -5.466304177222543e+01 -5.470257584656953e+01 -5.474212937778257e+01 - -5.478170240720980e+01 -5.482129490597043e+01 -5.486090684084346e+01 -5.490053823147309e+01 -5.494018910890276e+01 - -5.497985949690793e+01 -5.501954940653937e+01 -5.505925880521750e+01 -5.509898766755921e+01 -5.513873604059781e+01 - -5.517850396943321e+01 -5.521829141901578e+01 -5.525809835354192e+01 -5.529792481434151e+01 -5.533777084523449e+01 - -5.537763642286803e+01 -5.541752151714192e+01 -5.545742613813913e+01 -5.549735030880384e+01 -5.553729406334213e+01 - -5.557725742375872e+01 -5.561724035199087e+01 -5.565724281465346e+01 -5.569726485713910e+01 -5.573730652628086e+01 - -5.577736779589668e+01 -5.581744863307357e+01 -5.585754905099014e+01 -5.589766907536871e+01 -5.593780873601526e+01 - -5.597796805069111e+01 -5.601814698489535e+01 -5.605834550959182e+01 -5.609856366986563e+01 -5.613880151023810e+01 - -5.617905899885479e+01 -5.621933610311022e+01 -5.625963286377015e+01 -5.629994932270948e+01 -5.634028545286861e+01 - -5.638064122221132e+01 -5.642101664772899e+01 -5.646141175844968e+01 -5.650182658252075e+01 -5.654226113528433e+01 - -5.658271538174220e+01 -5.662318929319503e+01 -5.666368291647893e+01 -5.670419629786259e+01 -5.674472940580990e+01 - -5.678528220346420e+01 -5.682585471049146e+01 -5.686644695909487e+01 -5.690705897510426e+01 -5.694769077129006e+01 - -5.698834231455854e+01 -5.702901357847642e+01 -5.706970460911611e+01 -5.711041545084194e+01 -5.715114606868026e+01 - -5.719189642778805e+01 -5.723266657318249e+01 -5.727345655110785e+01 -5.731426633285666e+01 -5.735509588339112e+01 - -5.739594521730356e+01 -5.743681436264626e+01 -5.747770335168147e+01 -5.751861220364783e+01 -5.755954088147938e+01 - -5.760048935348805e+01 -5.764145766580183e+01 -5.768244586550730e+01 -5.772345392571002e+01 -5.776448181276131e+01 - -5.780552953997691e+01 -5.784659713354442e+01 -5.788768462417462e+01 -5.792879202998626e+01 -5.796991931420698e+01 - -5.801106644664837e+01 -5.805223347834903e+01 -5.809342045860209e+01 -5.813462734849197e+01 -5.817585410820936e+01 - -5.821710078257841e+01 -5.825836741928538e+01 -5.829965399283203e+01 -5.834096047087346e+01 -5.838228686686274e+01 - -5.842363320676851e+01 -5.846499952082397e+01 -5.850638582715609e+01 -5.854779209120221e+01 -5.858921828442874e+01 - -5.863066445510763e+01 -5.867213065032231e+01 -5.871361683559694e+01 -5.875512297138874e+01 -5.879664907944645e+01 - -5.883819519466417e+01 -5.887976134322624e+01 -5.892134753756825e+01 -5.896295374384051e+01 -5.900457993500612e+01 - -5.904622615756436e+01 -5.908789245663575e+01 -5.912957879828990e+01 -5.917128514850664e+01 -5.921301155195771e+01 - -5.925475805384439e+01 -5.929652462279476e+01 -5.933831122286624e+01 -5.938011787640643e+01 -5.942194461763230e+01 - -5.946379146994821e+01 -5.950565844408734e+01 -5.954754551091072e+01 -5.958945264733813e+01 -5.963137989439624e+01 - -5.967332729249499e+01 -5.971529481547052e+01 -5.975728243227523e+01 -5.979929015889982e+01 -5.984131802305070e+01 - -5.988336605225896e+01 -5.992543426246962e+01 -5.996752262345901e+01 -6.000963111046766e+01 -6.005175976676178e+01 - -6.009390863383608e+01 -6.013607767807394e+01 -6.017826686618813e+01 -6.022047624132026e+01 -6.026270584835797e+01 - -6.030495566274465e+01 -6.034722565381767e+01 -6.038951583593452e+01 -6.043182623512069e+01 -6.047415687905394e+01 - -6.051650778421003e+01 -6.055887892060463e+01 -6.060127026325783e+01 -6.064368185366749e+01 -6.068611373308907e+01 - -6.072856587533070e+01 -6.077103824887340e+01 -6.081353086833690e+01 -6.085604376132918e+01 -6.089857696127247e+01 - -6.094113048823596e+01 -6.098370430306234e+01 -6.102629837247437e+01 -6.106891274594116e+01 -6.111154747264118e+01 - -6.115420251784390e+01 -6.119687784580902e+01 -6.123957350066591e+01 -6.128228952841628e+01 -6.132502590268162e+01 - -6.136778259056138e+01 -6.141055960544676e+01 -6.145335697380811e+01 -6.149617472814099e+01 -6.153901288864162e+01 - -6.158187142028389e+01 -6.162475029314290e+01 -6.166764955292113e+01 -6.171056924466600e+01 -6.175350933517737e+01 - -6.179646979123154e+01 -6.183945065775757e+01 -6.188245198047678e+01 -6.192547373012725e+01 -6.196851587175868e+01 - -6.201157842265037e+01 -6.205466141333163e+01 -6.209776487510229e+01 -6.214088882566958e+01 -6.218403322759970e+01 - -6.222719804958889e+01 -6.227038333999444e+01 -6.231358914752139e+01 -6.235681544260558e+01 -6.240006218936849e+01 - -6.244332940494305e+01 -6.248661712010740e+01 -6.252992536720910e+01 -6.257325416420860e+01 -6.261660346994837e+01 - -6.265997325077347e+01 -6.270336356215701e+01 -6.274677445777788e+01 -6.279020589501037e+01 -6.283365783085999e+01 - -6.287713031716163e+01 -6.292062340781234e+01 -6.296413707012920e+01 -6.300767126475596e+01 -6.305122601222295e+01 - -6.309480134635203e+01 -6.313839729424505e+01 -6.318201386936521e+01 -6.322565103734121e+01 -6.326930877093868e+01 - -6.331298711930568e+01 -6.335668613058504e+01 -6.340040577251647e+01 -6.344414600718050e+01 -6.348790685442323e+01 - -6.353168834759008e+01 -6.357549051625812e+01 -6.361931337593239e+01 -6.366315688959789e+01 -6.370702102749119e+01 - -6.375090584137499e+01 -6.379481138078580e+01 -6.383873760482961e+01 -6.388268447297220e+01 -6.392665203654889e+01 - -6.397064034897519e+01 -6.401464938011861e+01 -6.405867909237229e+01 -6.410272950177993e+01 -6.414680063823367e+01 - -6.419089253336912e+01 -6.423500520539493e+01 -6.427913861706836e+01 -6.432329273774181e+01 -6.436746761859949e+01 - -6.441166331065573e+01 -6.445587978241413e+01 -6.450011699516882e+01 -6.454437496388719e+01 -6.458865371852110e+01 - -6.463295329528786e+01 -6.467727371608086e+01 -6.472161493923234e+01 -6.476597692945877e+01 -6.481035974057480e+01 - -6.485476342551981e+01 -6.489918794463497e+01 -6.494363325783405e+01 -6.498809941591921e+01 -6.503258647107099e+01 - -6.507709439009531e+01 -6.512162313341831e+01 -6.516617272132122e+01 -6.521074318787740e+01 -6.525533456247440e+01 - -6.529994686059398e+01 -6.534458004678092e+01 -6.538923409250538e+01 -6.543390904787570e+01 -6.547860496211884e+01 - -6.552332180229843e+01 -6.556805952953434e+01 -6.561281816333469e+01 -6.565759773746066e+01 -6.570239828429803e+01 - -6.574721982146080e+01 -6.579206230885156e+01 -6.583692571363754e+01 -6.588181008975629e+01 -6.592671548982709e+01 - -6.597164187442638e+01 -6.601658920334479e+01 -6.606155752527242e+01 -6.610654689090467e+01 -6.615155727005924e+01 - -6.619658862652422e+01 -6.624164098084657e+01 -6.628671436645676e+01 -6.633180881156068e+01 -6.637692433038681e+01 - -6.642206088647883e+01 -6.646721845110714e+01 -6.651239707713407e+01 -6.655759681603797e+01 -6.660281763216933e+01 - -6.664805948389387e+01 -6.669332239276561e+01 -6.673860639512726e+01 -6.678391152328841e+01 -6.682923779433044e+01 - -6.687458516845543e+01 -6.691995361277515e+01 -6.696534317891920e+01 -6.701075391795754e+01 -6.705618579420361e+01 - -6.710163877100581e+01 -6.714711289460833e+01 -6.719260821321966e+01 -6.723812470001026e+01 -6.728366232121398e+01 - -6.732922109035582e+01 -6.737480103488133e+01 -6.742040219062761e+01 -6.746602458035952e+01 -6.751166816616187e+01 - -6.755733291529161e+01 -6.760301887637438e+01 -6.764872609859751e+01 -6.769445455202660e+01 -6.774020420051386e+01 - -6.778597506217976e+01 -6.783176716876942e+01 -6.787758055225885e+01 -6.792341523092826e+01 -6.796927116804379e+01 - -6.801514833341810e+01 -6.806104677806347e+01 -6.810696655123587e+01 -6.815290761396663e+01 -6.819886992772128e+01 - -6.824485354392678e+01 -6.829085851532395e+01 -6.833688480994840e+01 -6.838293238885097e+01 -6.842900126984890e+01 - -6.847509148538957e+01 -6.852120306967514e+01 -6.856733604269469e+01 -6.861349036583006e+01 -6.865966600658993e+01 - -6.870586301559659e+01 -6.875208144399036e+01 -6.879832126187024e+01 -6.884458243234171e+01 -6.889086497157696e+01 - -6.893716890990422e+01 -6.898349428120915e+01 -6.902984110598732e+01 -6.907620934761650e+01 -6.912259897511596e+01 - -6.916901003718877e+01 -6.921544258172949e+01 -6.926189657371528e+01 -6.930837197817074e+01 -6.935486884322755e+01 - -6.940138721768092e+01 -6.944792706987337e+01 -6.949448836290087e+01 -6.954107111932564e+01 -6.958767537490402e+01 - -6.963430115870300e+01 -6.968094848498497e+01 -6.972761731548312e+01 -6.977430762020695e+01 -6.982101945480034e+01 - -6.986775287255249e+01 -6.991450783170005e+01 -6.996128429032680e+01 -7.000808230095708e+01 -7.005490191787665e+01 - -7.010174310797666e+01 -7.014860583121035e+01 -7.019549010717337e+01 -7.024239597049470e+01 -7.028932345629492e+01 - -7.033627258446040e+01 -7.038324331344937e+01 -7.043023560838913e+01 -7.047724952251053e+01 -7.052428510987777e+01 - -7.057134233978515e+01 -7.061842117397924e+01 -7.066552162878578e+01 -7.071264373512433e+01 -7.075978752771100e+01 - -7.080695302731498e+01 -7.085414019512091e+01 -7.090134899910394e+01 -7.094857949398551e+01 -7.099583173235354e+01 - -7.104310567151599e+01 -7.109040126922885e+01 -7.113771858031990e+01 -7.118505766125368e+01 -7.123241847797109e+01 - -7.127980098937178e+01 -7.132720521671429e+01 -7.137463119544236e+01 -7.142207895538176e+01 -7.146954851252747e+01 - -7.151703983316882e+01 -7.156455289009196e+01 -7.161208773177542e+01 -7.165964440570248e+01 -7.170722287968356e+01 - -7.175482311646741e+01 -7.180244513822917e+01 -7.185008898098621e+01 -7.189775467669884e+01 -7.194544224180910e+01 - -7.199315163474331e+01 -7.204088282234626e+01 -7.208863586315185e+01 -7.213641081375658e+01 -7.218420763131780e+01 - -7.223202627227879e+01 -7.227986678966526e+01 -7.232772923884254e+01 -7.237561358795277e+01 -7.242351979769759e+01 - -7.247144788623903e+01 -7.251939788668284e+01 -7.256736983444897e+01 -7.261536375015235e+01 -7.266337959287341e+01 - -7.271141732841731e+01 -7.275947701102203e+01 -7.280755869538000e+01 -7.285566234956853e+01 -7.290378793432680e+01 - -7.295193546765573e+01 -7.300010498266862e+01 -7.304829651566631e+01 -7.309651008753943e+01 -7.314474565435016e+01 - -7.319300317971540e+01 -7.324128272229925e+01 -7.328958433981238e+01 -7.333790799110540e+01 -7.338625363374130e+01 - -7.343462131899291e+01 -7.348301110053259e+01 -7.353142294792167e+01 -7.357985682361442e+01 -7.362831274574745e+01 - -7.367679074711965e+01 -7.372529086349638e+01 -7.377381311579366e+01 -7.382235746256312e+01 -7.387092386912651e+01 - -7.391951239025020e+01 -7.396812308115555e+01 -7.401675590943988e+01 -7.406541083531380e+01 -7.411408787706513e+01 - -7.416278706814910e+01 -7.421150844461324e+01 -7.426025202733783e+01 -7.430901777394124e+01 -7.435780564940528e+01 - -7.440661571142732e+01 -7.445544801616209e+01 -7.450430252087864e+01 -7.455317918285648e+01 -7.460207805830268e+01 - -7.465099920497126e+01 -7.469994258787753e+01 -7.474890816454140e+01 -7.479789595523943e+01 -7.484690599592756e+01 - -7.489593832252380e+01 -7.494499295533201e+01 -7.499406985223764e+01 -7.504316897827101e+01 -7.509229038945979e+01 - -7.514143414169166e+01 -7.519060019929748e+01 -7.523978851997632e+01 -7.528899912645726e+01 -7.533823205657275e+01 - -7.538748734353926e+01 -7.543676500532445e+01 -7.548606500351643e+01 -7.553538730703876e+01 -7.558473197053598e+01 - -7.563409904619321e+01 -7.568348849063742e+01 -7.573290026170078e+01 -7.578233441759443e+01 -7.583179101796470e+01 - -7.588127002782028e+01 -7.593077140392674e+01 -7.598029516471465e+01 -7.602984134475692e+01 -7.607940998153097e+01 - -7.612900109746634e+01 -7.617861465189691e+01 -7.622825061065345e+01 -7.627790902865043e+01 -7.632758996032740e+01 - -7.637729336914126e+01 -7.642701921265419e+01 -7.647676751583191e+01 -7.652653831849052e+01 -7.657633165244424e+01 - -7.662614753370475e+01 -7.667598592307560e+01 -7.672584678949215e+01 -7.677573018962489e+01 -7.682563617769370e+01 - -7.687556471038147e+01 -7.692551574474433e+01 -7.697548933686781e+01 -7.702548554509247e+01 -7.707550433774978e+01 - -7.712554567498073e+01 -7.717560957417300e+01 -7.722569606768573e+01 -7.727580519051753e+01 -7.732593696392289e+01 - -7.737609135154067e+01 -7.742626832278943e+01 -7.747646792782194e+01 -7.752669021677298e+01 -7.757693515897095e+01 - -7.762720271798948e+01 -7.767749291518889e+01 -7.772780578562232e+01 -7.777814136132783e+01 -7.782849965970544e+01 - -7.787888064261847e+01 -7.792928427988689e+01 -7.797971062869398e+01 -7.803015974345008e+01 -7.808063158011076e+01 - -7.813112609521906e+01 -7.818164334612277e+01 -7.823218339188995e+01 -7.828274619766600e+01 -7.833333172107952e+01 - -7.838393998361434e+01 -7.843457102192369e+01 -7.848522486948340e+01 -7.853590154498607e+01 -7.858660101116894e+01 - -7.863732323758104e+01 -7.868806827697425e+01 -7.873883618163512e+01 -7.878962691878654e+01 -7.884044044940295e+01 - -7.889127679452803e+01 -7.894213598992800e+01 -7.899301807018992e+01 -7.904392305456564e+01 -7.909485090214494e+01 - -7.914580158005610e+01 -7.919677514774288e+01 -7.924777166238927e+01 -7.929879107982515e+01 -7.934983335558289e+01 - -7.940089854535901e+01 -7.945198670709752e+01 -7.950309780756868e+01 -7.955423180605224e+01 -7.960538872303847e+01 - -7.965656859466247e+01 -7.970777145842827e+01 -7.975899733555858e+01 -7.981024618078136e+01 -7.986151795697417e+01 - -7.991281272610696e+01 -7.996413054847572e+01 -8.001547137858779e+01 -8.006683517069925e+01 -8.011822198384908e+01 - -8.016963187855384e+01 -8.022106481645797e+01 -8.027252075224854e+01 -8.032399971165485e+01 -8.037550173585385e+01 - -8.042702685677139e+01 -8.047857509055929e+01 -8.053014639952434e+01 -8.058174075328817e+01 -8.063335820457638e+01 - -8.068499880610621e+01 -8.073666252745771e+01 -8.078834933088126e+01 -8.084005923244513e+01 -8.089179226408041e+01 - -8.094354846735196e+01 -8.099532786819320e+01 -8.104713042037783e+01 -8.109895608507813e+01 -8.115080492521992e+01 - -8.120267700205356e+01 -8.125457226837462e+01 -8.130649067623317e+01 -8.135843228315183e+01 -8.141039715010918e+01 - -8.146238524643556e+01 -8.151439653208425e+01 -8.156643102114791e+01 -8.161848874447259e+01 -8.167056974577932e+01 - -8.172267405314662e+01 -8.177480161920819e+01 -8.182695240289546e+01 -8.187912646377457e+01 -8.193132386298609e+01 - -8.198354456733288e+01 -8.203578853472443e+01 -8.208805578183410e+01 -8.214034634197473e+01 -8.219266025625411e+01 - -8.224499755029157e+01 -8.229735817995817e+01 -8.234974210798764e+01 -8.240214939431286e+01 -8.245458009683706e+01 - -8.250703416814667e+01 -8.255951156203467e+01 -8.261201234243612e+01 -8.266453657428882e+01 -8.271708421639993e+01 - -8.276965521981012e+01 -8.282224961062391e+01 -8.287486743131451e+01 -8.292750871476633e+01 -8.298017347733835e+01 - -8.303286167887651e+01 -8.308557328775250e+01 -8.313830836295337e+01 -8.319106696215761e+01 -8.324384904719405e+01 - -8.329665457280116e+01 -8.334948356120523e+01 -8.340233605179664e+01 -8.345521208513452e+01 -8.350811168407860e+01 - -8.356103479952203e+01 -8.361398139085040e+01 -8.366695152338559e+01 -8.371994526125894e+01 -8.377296255790387e+01 - -8.382600336547402e+01 -8.387906774170159e+01 -8.393215574692768e+01 -8.398526734635097e+01 -8.403840249721476e+01 - -8.409156122008268e+01 -8.414474355213920e+01 -8.419794953373223e+01 -8.425117918830632e+01 -8.430443246852916e+01 - -8.435770933516140e+01 -8.441100985211256e+01 -8.446433408298962e+01 -8.451768198704093e+01 -8.457105351533237e+01 - -8.462444869055821e+01 -8.467786755329161e+01 -8.473131014399300e+01 -8.478477648534972e+01 -8.483826652906932e+01 - -8.489178023573824e+01 -8.494531767243778e+01 -8.499887890373510e+01 -8.505246387764603e+01 -8.510607254206460e+01 - -8.515970496094809e+01 -8.521336120130535e+01 -8.526704122628841e+01 -8.532074498941530e+01 -8.537447250952404e+01 - -8.542822382319736e+01 -8.548199897267675e+01 -8.553579798342942e+01 -8.558962080816578e+01 -8.564346740685433e+01 - -8.569733784125194e+01 -8.575123217367282e+01 -8.580515036687339e+01 -8.585909237532205e+01 -8.591305821989287e+01 - -8.596704793875205e+01 -8.602106157282915e+01 -8.607509914567974e+01 -8.612916060859980e+01 -8.618324592155754e+01 - -8.623735515146925e+01 -8.629148836331387e+01 -8.634564550737286e+01 -8.639982653295500e+01 -8.645403150017543e+01 - -8.650826047252751e+01 -8.656251341621210e+01 -8.661679028858919e+01 -8.667109110894766e+01 -8.672541591317201e+01 - -8.677976474159972e+01 -8.683413761829634e+01 -8.688853449778628e+01 -8.694295534179228e+01 -8.699740021037117e+01 - -8.705186916402354e+01 -8.710636216669133e+01 -8.716087917454270e+01 -8.721542020920894e+01 -8.726998530877070e+01 - -8.732457451164281e+01 -8.737918783967393e+01 -8.743382524811331e+01 -8.748848670054353e+01 -8.754317226047976e+01 - -8.759788198894785e+01 -8.765261583708421e+01 -8.770737375634857e+01 -8.776215580938322e+01 -8.781696206132678e+01 - -8.787179247612183e+01 -8.792664700860111e+01 -8.798152567835336e+01 -8.803642852212045e+01 -8.809135558050070e+01 - -8.814630687756171e+01 -8.820128236739042e+01 -8.825628201129771e+01 -8.831130586947003e+01 -8.836635400284558e+01 - -8.842142637649435e+01 -8.847652294770472e+01 -8.853164373850628e+01 -8.858678878695027e+01 -8.864195813043362e+01 - -8.869715178945941e+01 -8.875236971760948e+01 -8.880761187808301e+01 -8.886287833946902e+01 -8.891816916696094e+01 - -8.897348430677987e+01 -8.902882370531137e+01 -8.908418742857141e+01 -8.913957554536425e+01 -8.919498801601753e+01 - -8.925042479199006e+01 -8.930588589774098e+01 -8.936137137472512e+01 -8.941688125937962e+01 -8.947241557120560e+01 - -8.952797426697802e+01 -8.958355731201681e+01 -8.963916476854843e+01 -8.969479669732335e+01 -8.975045305628245e+01 - -8.980613379692392e+01 -8.986183894778455e+01 -8.991756855389235e+01 -8.997332264920152e+01 -9.002910125051302e+01 - -9.008490431708829e+01 -9.014073181666647e+01 -9.019658380843681e+01 -9.025246034941333e+01 -9.030836139645970e+01 - -9.036428690661128e+01 -9.042023693773967e+01 -9.047621154925669e+01 -9.053221070589892e+01 -9.058823436476921e+01 - -9.064428254711031e+01 -9.070035529106499e+01 -9.075645263823618e+01 -9.081257461289793e+01 -9.086872116654884e+01 - -9.092489225918972e+01 -9.098108795760594e+01 -9.103730832657459e+01 -9.109355331605536e+01 -9.114982287548730e+01 - -9.120611706704364e+01 -9.126243595579022e+01 -9.131877950563008e+01 -9.137514767186437e+01 -9.143154047654943e+01 - -9.148795795857168e+01 -9.154440015738282e+01 -9.160086709537343e+01 -9.165735872612346e+01 -9.171387501169491e+01 - -9.177041601688784e+01 -9.182698180564800e+01 -9.188357233576582e+01 -9.194018755741556e+01 -9.199682749646104e+01 - -9.205349219658670e+01 -9.211018169707003e+01 -9.216689601912306e+01 -9.222363511610273e+01 -9.228039895018067e+01 - -9.233718758664240e+01 -9.239400108840672e+01 -9.245083940581294e+01 -9.250770248979978e+01 -9.256459040628322e+01 - -9.262150322244982e+01 -9.267844089559186e+01 -9.273540337476760e+01 -9.279239068599267e+01 -9.284940287335907e+01 - -9.290643997630693e+01 -9.296350201607783e+01 -9.302058894577094e+01 -9.307770072730455e+01 -9.313483742601555e+01 - -9.319199910633068e+01 -9.324918572561810e+01 -9.330639723351504e+01 -9.336363365579297e+01 -9.342089503640302e+01 - -9.347818141588093e+01 -9.353549281584256e+01 -9.359282918563940e+01 -9.365019048477910e+01 -9.370757678565749e+01 - -9.376498815769901e+01 -9.382242454555492e+01 -9.387988589305337e+01 -9.393737226550313e+01 -9.399488373202897e+01 - -9.405242025553964e+01 -9.410998178945039e+01 -9.416756835541781e+01 -9.422517999301114e+01 -9.428281674520871e+01 - -9.434047863667399e+01 -9.439816561540189e+01 -9.445587763836596e+01 -9.451361477512259e+01 -9.457137709520302e+01 - -9.462916455545547e+01 -9.468697710379740e+01 -9.474481476510589e+01 -9.480267758244509e+01 -9.486056559466863e+01 - -9.491847882335075e+01 -9.497641722515867e+01 -9.503438076487508e+01 -9.509236950465109e+01 -9.515038350409563e+01 - -9.520842271528107e+01 -9.526648709103007e+01 -9.532457669470300e+01 -9.538269159175374e+01 -9.544083174547335e+01 - -9.549899710997526e+01 -9.555718770482461e+01 -9.561540356780063e+01 -9.567364474408794e+01 -9.573191126075703e+01 - -9.579020306501620e+01 -9.584852011272490e+01 -9.590686247420874e+01 -9.596523021978578e+01 -9.602362330527772e+01 - -9.608204167783254e+01 -9.614048536439948e+01 -9.619895441016116e+01 -9.625744885343293e+01 -9.631596871403326e+01 - -9.637451394466026e+01 -9.643308450797647e+01 -9.649168047362274e+01 -9.655030190767742e+01 -9.660894875499127e+01 - -9.666762096089710e+01 -9.672631859388268e+01 -9.678504172537357e+01 -9.684379031539257e+01 -9.690256431417546e+01 - -9.696136374421286e+01 -9.702018864639355e+01 -9.707903906294442e+01 -9.713791501832830e+01 -9.719681646461351e+01 - -9.725574336170810e+01 -9.731469577327378e+01 -9.737367376351882e+01 -9.743267729508464e+01 -9.749170632178308e+01 - -9.755076086367355e+01 -9.760984095895955e+01 -9.766894665217343e+01 -9.772807797034233e+01 -9.778723486414395e+01 - -9.784641729236439e+01 -9.790562532257231e+01 -9.796485902036660e+01 -9.802411833468516e+01 -9.808340321418262e+01 - -9.814271372304191e+01 -9.820204992860188e+01 -9.826141179529722e+01 -9.832079927766843e+01 -9.838021239358226e+01 - -9.843965117935535e+01 -9.849911568177785e+01 -9.855860593025675e+01 -9.861812187419362e+01 -9.867766347002308e+01 - -9.873723078231735e+01 -9.879682387670165e+01 -9.885644271487612e+01 -9.891608724974174e+01 -9.897575750292785e+01 - -9.903545351466867e+01 -9.909517533088989e+01 -9.915492297862031e+01 -9.921469640360959e+01 -9.927449556058966e+01 - -9.933432052149955e+01 -9.939417135686639e+01 -9.945404801436261e+01 -9.951395044077229e+01 -9.957387870218038e+01 - -9.963383286719130e+01 -9.969381289518709e+01 -9.975381873630593e+01 -9.981385041293248e+01 -9.987390796877466e+01 - -9.993399146058783e+01 -9.999410091983435e+01 -1.000542362637563e+02 -1.001143974249114e+02 -1.001745845113392e+02 - -1.002347976270743e+02 -1.002950366846517e+02 -1.003553015922550e+02 -1.004155924321621e+02 -1.004759093011103e+02 - -1.005362521795820e+02 -1.005966210292817e+02 -1.006570158530568e+02 -1.007174366671700e+02 -1.007778835004040e+02 - -1.008383563749385e+02 -1.008988552740233e+02 -1.009593801813489e+02 -1.010199311212978e+02 -1.010805081231472e+02 - -1.011411111950619e+02 -1.012017403376325e+02 -1.012623955422635e+02 -1.013230768099676e+02 -1.013837841893743e+02 - -1.014445177207514e+02 -1.015052773633014e+02 -1.015660630775449e+02 -1.016268749103392e+02 -1.016877129150088e+02 - -1.017485770844115e+02 -1.018094673966629e+02 -1.018703838313761e+02 -1.019313263923028e+02 -1.019922951782496e+02 - -1.020532902664119e+02 -1.021143115524854e+02 -1.021753589342455e+02 -1.022364324992857e+02 -1.022975323519374e+02 - -1.023586584736673e+02 -1.024198108268543e+02 -1.024809894203941e+02 -1.025421942728475e+02 -1.026034253949216e+02 - -1.026646827901934e+02 -1.027259664415750e+02 -1.027872763473731e+02 -1.028486125881369e+02 -1.029099752254547e+02 - -1.029713641628286e+02 -1.030327793161952e+02 -1.030942208093169e+02 -1.031556887637190e+02 -1.032171830841550e+02 - -1.032787036718354e+02 -1.033402506305696e+02 -1.034018240681317e+02 -1.034634239055545e+02 -1.035250500515010e+02 - -1.035867025518952e+02 -1.036483814821213e+02 -1.037100868981441e+02 -1.037718188237329e+02 -1.038335771732939e+02 - -1.038953618747522e+02 -1.039571730194689e+02 -1.040190107055651e+02 -1.040808748947658e+02 -1.041427655331822e+02 - -1.042046826408667e+02 -1.042666262524425e+02 -1.043285963868752e+02 -1.043905930564436e+02 -1.044526162623378e+02 - -1.045146660069125e+02 -1.045767423082721e+02 -1.046388451777543e+02 -1.047009745838822e+02 -1.047631305085241e+02 - -1.048253130297424e+02 -1.048875222165416e+02 -1.049497580055002e+02 -1.050120203310284e+02 -1.050743092512860e+02 - -1.051366248384456e+02 -1.051989670969791e+02 -1.052613360137520e+02 -1.053237315729033e+02 -1.053861537661844e+02 - -1.054486026185219e+02 -1.055110781583045e+02 -1.055735803945944e+02 -1.056361093274371e+02 -1.056986649401382e+02 - -1.057612472323176e+02 -1.058238562855892e+02 -1.058864921618116e+02 -1.059491547618286e+02 -1.060118440001799e+02 - -1.060745600072047e+02 -1.061373029070868e+02 -1.062000725835928e+02 -1.062628689188559e+02 -1.063256920288941e+02 - -1.063885420424685e+02 -1.064514189054312e+02 -1.065143225392365e+02 -1.065772529506575e+02 -1.066402101774261e+02 - -1.067031942957903e+02 -1.067662053568374e+02 -1.068292432724951e+02 -1.068923079625714e+02 -1.069553995175528e+02 - -1.070185180380394e+02 -1.070816634944072e+02 -1.071448358336418e+02 -1.072080350393896e+02 -1.072712611247882e+02 - -1.073345141842783e+02 -1.073977942922143e+02 -1.074611013613008e+02 -1.075244353055826e+02 -1.075877962061142e+02 - -1.076511841502191e+02 -1.077145990832866e+02 -1.077780409492339e+02 -1.078415098280245e+02 -1.079050057992970e+02 - -1.079685288053471e+02 -1.080320787786834e+02 -1.080956557500093e+02 -1.081592597729443e+02 -1.082228908945775e+02 - -1.082865491424036e+02 -1.083502344720692e+02 -1.084139468448718e+02 -1.084776863165616e+02 -1.085414529440200e+02 - -1.086052466942038e+02 -1.086690675238350e+02 -1.087329154386204e+02 -1.087967904674474e+02 -1.088606926829425e+02 - -1.089246221377382e+02 -1.089885787607543e+02 -1.090525624876805e+02 -1.091165734050004e+02 -1.091806115963225e+02 - -1.092446769829633e+02 -1.093087694909110e+02 -1.093728892271333e+02 -1.094370362953419e+02 -1.095012106052476e+02 - -1.095654120623545e+02 -1.096296407493415e+02 -1.096938967647426e+02 -1.097581800933404e+02 -1.098224906984946e+02 - -1.098868285716250e+02 -1.099511937236656e+02 -1.100155862155477e+02 -1.100800060933800e+02 -1.101444532939841e+02 - -1.102089277564002e+02 -1.102734295378303e+02 -1.103379587096266e+02 -1.104025152815812e+02 -1.104670992426730e+02 - -1.105317105601886e+02 -1.105963492199813e+02 -1.106610153038629e+02 -1.107257088820756e+02 -1.107904298826226e+02 - -1.108551782361634e+02 -1.109199540262203e+02 -1.109847573373186e+02 -1.110495881051325e+02 -1.111144462586115e+02 - -1.111793318486534e+02 -1.112442449476576e+02 -1.113091855920787e+02 -1.113741537899001e+02 -1.114391494711626e+02 - -1.115041725824562e+02 -1.115692232145109e+02 -1.116343014623147e+02 -1.116994072937479e+02 -1.117645406555522e+02 - -1.118297015370191e+02 -1.118948899532702e+02 -1.119601059801944e+02 -1.120253496750247e+02 -1.120906209596036e+02 - -1.121559197660155e+02 -1.122212462027017e+02 -1.122866003728487e+02 -1.123519821822644e+02 -1.124173915349786e+02 - -1.124828285252852e+02 -1.125482932599049e+02 -1.126137857050017e+02 -1.126793058037530e+02 -1.127448535479451e+02 - -1.128104289543148e+02 -1.128760320907921e+02 -1.129416630123176e+02 -1.130073216706816e+02 -1.130730080183262e+02 - -1.131387221134510e+02 -1.132044640167948e+02 -1.132702336934948e+02 -1.133360310978225e+02 -1.134018562361866e+02 - -1.134677091387784e+02 -1.135335898787815e+02 -1.135994985091588e+02 -1.136654349589990e+02 -1.137313991629182e+02 - -1.137973912015162e+02 -1.138634111582333e+02 -1.139294589818884e+02 -1.139955346168527e+02 -1.140616381243277e+02 - -1.141277695680233e+02 -1.141939289048548e+02 -1.142601160860919e+02 -1.143263311472162e+02 -1.143925741390390e+02 - -1.144588450894802e+02 -1.145251440101338e+02 -1.145914708701818e+02 -1.146578256494022e+02 -1.147242084123678e+02 - -1.147906192149256e+02 -1.148570579932248e+02 -1.149235246826633e+02 -1.149900193353325e+02 -1.150565420227369e+02 - -1.151230927773426e+02 -1.151896716067799e+02 -1.152562784583746e+02 -1.153229132947855e+02 -1.153895762003063e+02 - -1.154562672526404e+02 -1.155229863814943e+02 -1.155897335150450e+02 -1.156565087233475e+02 -1.157233120892246e+02 - -1.157901436046917e+02 -1.158570032371645e+02 -1.159238909464663e+02 -1.159908067231330e+02 -1.160577506881430e+02 - -1.161247229415995e+02 -1.161917233696630e+02 -1.162587518588770e+02 -1.163258085112608e+02 -1.163928934406831e+02 - -1.164600065929374e+02 -1.165271479034755e+02 -1.165943174344564e+02 -1.166615152526160e+02 -1.167287413162901e+02 - -1.167959955757904e+02 -1.168632780577301e+02 -1.169305888112216e+02 -1.169979278990717e+02 -1.170652953548001e+02 - -1.171326910810820e+02 -1.172001149975291e+02 -1.172675672223445e+02 -1.173350478778825e+02 -1.174025569045121e+02 - -1.174700942215011e+02 -1.175376598456954e+02 -1.176052538191002e+02 -1.176728761867799e+02 -1.177405269796691e+02 - -1.178082061691247e+02 -1.178759137299273e+02 -1.179436497101298e+02 -1.180114141509050e+02 -1.180792069926326e+02 - -1.181470281872303e+02 -1.182148778335583e+02 -1.182827560287664e+02 -1.183506627162192e+02 -1.184185978220269e+02 - -1.184865613570652e+02 -1.185545533602401e+02 -1.186225738978121e+02 -1.186906230193939e+02 -1.187587006806511e+02 - -1.188268068350639e+02 -1.188949415213182e+02 -1.189631047837780e+02 -1.190312966043158e+02 -1.190995169567162e+02 - -1.191677658449030e+02 -1.192360432941998e+02 -1.193043493853908e+02 -1.193726841751893e+02 -1.194410475685670e+02 - -1.195094394794060e+02 -1.195778600089746e+02 -1.196463092648311e+02 -1.197147871923100e+02 -1.197832937276135e+02 - -1.198518289326376e+02 -1.199203928745778e+02 -1.199889855161324e+02 -1.200576068078755e+02 -1.201262567563797e+02 - -1.201949353935382e+02 -1.202636427965272e+02 -1.203323790196208e+02 -1.204011439802014e+02 -1.204699376081542e+02 - -1.205387600202684e+02 -1.206076113241917e+02 -1.206764914041025e+02 -1.207454001431820e+02 -1.208143376440890e+02 - -1.208833040296615e+02 -1.209522992839752e+02 -1.210213233653680e+02 -1.210903762679893e+02 -1.211594580022500e+02 - -1.212285686077949e+02 -1.212977081155049e+02 -1.213668764919694e+02 -1.214360737100132e+02 -1.215052998316942e+02 - -1.215745549154533e+02 -1.216438389160294e+02 -1.217131517838345e+02 -1.217824935556734e+02 -1.218518642837182e+02 - -1.219212639952166e+02 -1.219906927020717e+02 -1.220601503797327e+02 -1.221296370078328e+02 -1.221991526191948e+02 - -1.222686972509000e+02 -1.223382709038720e+02 -1.224078735702578e+02 -1.224775052432531e+02 -1.225471659287695e+02 - -1.226168556825330e+02 -1.226865745477072e+02 -1.227563224673916e+02 -1.228260993926653e+02 -1.228959054065903e+02 - -1.229657405910973e+02 -1.230356048916106e+02 -1.231054982500379e+02 -1.231754207307278e+02 -1.232453724007864e+02 - -1.233153532159101e+02 -1.233853631242201e+02 -1.234554021549459e+02 -1.235254703591199e+02 -1.235955677938801e+02 - -1.236656944915691e+02 -1.237358503792446e+02 -1.238060353939673e+02 -1.238762496180971e+02 -1.239464931371069e+02 - -1.240167659036240e+02 -1.240870678602586e+02 -1.241573990423949e+02 -1.242277595040581e+02 -1.242981492810638e+02 - -1.243685683872523e+02 -1.244390167667736e+02 -1.245094943779347e+02 -1.245800013053605e+02 -1.246505376299316e+02 - -1.247211032912332e+02 -1.247916982296097e+02 -1.248623225297382e+02 -1.249329762770640e+02 -1.250036594157741e+02 - -1.250743718736609e+02 -1.251451136541969e+02 -1.252158847947410e+02 -1.252866853925174e+02 -1.253575155184925e+02 - -1.254283750787370e+02 -1.254992639825418e+02 -1.255701823169751e+02 -1.256411301759969e+02 -1.257121075033584e+02 - -1.257831142369608e+02 -1.258541504415142e+02 -1.259252161922362e+02 -1.259963114795672e+02 -1.260674362758903e+02 - -1.261385905661348e+02 -1.262097743537985e+02 -1.262809877041053e+02 -1.263522306696565e+02 -1.264235031908370e+02 - -1.264948052148923e+02 -1.265661368287249e+02 -1.266374981169807e+02 -1.267088890156212e+02 -1.267803094502130e+02 - -1.268517594534262e+02 -1.269232390831601e+02 -1.269947483911282e+02 -1.270662874069690e+02 -1.271378560782095e+02 - -1.272094543594662e+02 -1.272810823158284e+02 -1.273527400123002e+02 -1.274244274030747e+02 -1.274961444355319e+02 - -1.275678911406106e+02 -1.276396675704015e+02 -1.277114737780431e+02 -1.277833097950603e+02 -1.278551755654751e+02 - -1.279270710424012e+02 -1.279989963028243e+02 -1.280709514152536e+02 -1.281429362904217e+02 -1.282149508513121e+02 - -1.282869952276877e+02 -1.283590695463467e+02 -1.284311737154509e+02 -1.285033076302067e+02 -1.285754713526335e+02 - -1.286476649682441e+02 -1.287198884897120e+02 -1.287921419051992e+02 -1.288644251776617e+02 -1.289367382880697e+02 - -1.290090813146567e+02 -1.290814543319980e+02 -1.291538573027727e+02 -1.292262901737162e+02 -1.292987529396840e+02 - -1.293712456190937e+02 -1.294437682764910e+02 -1.295163209673579e+02 -1.295889036647941e+02 -1.296615163353197e+02 - -1.297341590015173e+02 -1.298068316903185e+02 -1.298795343899871e+02 -1.299522670904091e+02 -1.300250298266263e+02 - -1.300978226354063e+02 -1.301706455152632e+02 -1.302434984561237e+02 -1.303163814518184e+02 -1.303892945098205e+02 - -1.304622376882688e+02 -1.305352110313897e+02 -1.306082144770936e+02 -1.306812479731976e+02 -1.307543116134598e+02 - -1.308274054850011e+02 -1.309005295024521e+02 -1.309736835845235e+02 -1.310468678387340e+02 -1.311200823754845e+02 - -1.311933271278942e+02 -1.312666020134129e+02 -1.313399070640916e+02 -1.314132423401880e+02 -1.314866079001839e+02 - -1.315600037753056e+02 -1.316334298895329e+02 -1.317068861777292e+02 -1.317803727255405e+02 -1.318538896215189e+02 - -1.319274368150577e+02 -1.320010142454794e+02 -1.320746219509807e+02 -1.321482599879661e+02 -1.322219283867981e+02 - -1.322956271602158e+02 -1.323693562765047e+02 -1.324431157110688e+02 -1.325169055122373e+02 -1.325907257242561e+02 - -1.326645763021127e+02 -1.327384572099461e+02 -1.328123685377604e+02 -1.328863103680995e+02 -1.329602826278048e+02 - -1.330342852393407e+02 -1.331083182633673e+02 -1.331823817787306e+02 -1.332564757988239e+02 -1.333306003141445e+02 - -1.334047552890586e+02 -1.334789407033280e+02 -1.335531566244299e+02 -1.336274031130300e+02 -1.337016801148342e+02 - -1.337759875748336e+02 -1.338503255501201e+02 -1.339246941130952e+02 -1.339990932852997e+02 -1.340735230609586e+02 - -1.341479833758948e+02 -1.342224741891434e+02 -1.342969956109889e+02 -1.343715477431406e+02 -1.344461305017541e+02 - -1.345207438015131e+02 -1.345953877367626e+02 -1.346700624038786e+02 -1.347447677276981e+02 -1.348195036263442e+02 - -1.348942701626209e+02 -1.349690674171868e+02 -1.350438953974369e+02 -1.351187540921076e+02 -1.351936434885642e+02 - -1.352685635848754e+02 -1.353435144232942e+02 -1.354184960414874e+02 -1.354935084145923e+02 -1.355685515128237e+02 - -1.356436253492364e+02 -1.357187299541088e+02 -1.357938653837732e+02 -1.358690316768758e+02 -1.359442287752637e+02 - -1.360194566279880e+02 -1.360947153097144e+02 -1.361700048911278e+02 -1.362453253013760e+02 -1.363206764782614e+02 - -1.363960585357406e+02 -1.364714715821978e+02 -1.365469155275740e+02 -1.366223902703805e+02 -1.366978958618521e+02 - -1.367734323848502e+02 -1.368489998960226e+02 -1.369245984210613e+02 -1.370002278880492e+02 -1.370758882331093e+02 - -1.371515795221331e+02 -1.372273018270698e+02 -1.373030551143317e+02 -1.373788393429953e+02 -1.374546545483291e+02 - -1.375305007816427e+02 -1.376063780822184e+02 -1.376822864668756e+02 -1.377582258746108e+02 -1.378341962588316e+02 - -1.379101977084133e+02 -1.379862303093919e+02 -1.380622940009784e+02 -1.381383887192652e+02 -1.382145145346940e+02 - -1.382906715205862e+02 -1.383668596274320e+02 -1.384430787972570e+02 -1.385193290610606e+02 -1.385956104734610e+02 - -1.386719230945808e+02 -1.387482669582360e+02 -1.388246419875133e+02 -1.389010481148665e+02 -1.389774854209464e+02 - -1.390539539951986e+02 -1.391304538140523e+02 -1.392069848343242e+02 -1.392835470473980e+02 -1.393601404693719e+02 - -1.394367651806349e+02 -1.395134212422815e+02 -1.395901085739362e+02 -1.396668271002043e+02 -1.397435769070855e+02 - -1.398203580874878e+02 -1.398971706005607e+02 -1.399740143977720e+02 -1.400508895336226e+02 -1.401277960614956e+02 - -1.402047339272718e+02 -1.402817030764181e+02 -1.403587035602461e+02 -1.404357354502877e+02 -1.405127987931110e+02 - -1.405898936026113e+02 -1.406670197869564e+02 -1.407441772794584e+02 -1.408213662197336e+02 -1.408985867371466e+02 - -1.409758387137537e+02 -1.410531220224061e+02 -1.411304367464428e+02 -1.412077829961380e+02 -1.412851607790223e+02 - -1.413625700771281e+02 -1.414400108732392e+02 -1.415174831646232e+02 -1.415949870057306e+02 -1.416725224388105e+02 - -1.417500894001226e+02 -1.418276878351835e+02 -1.419053178325258e+02 -1.419829794809226e+02 -1.420606727270934e+02 - -1.421383975074728e+02 -1.422161538594082e+02 -1.422939418408956e+02 -1.423717614916131e+02 -1.424496128273150e+02 - -1.425274957863782e+02 -1.426054103213069e+02 -1.426833565184944e+02 -1.427613344645970e+02 -1.428393441134355e+02 - -1.429173854035838e+02 -1.429954583454632e+02 -1.430735629773860e+02 -1.431516993773805e+02 -1.432298676007922e+02 - -1.433080675725197e+02 -1.433862992191345e+02 -1.434645626043482e+02 -1.435428578032951e+02 -1.436211847996638e+02 - -1.436995435672099e+02 -1.437779341314036e+02 -1.438563565210897e+02 -1.439348107268960e+02 -1.440132967358192e+02 - -1.440918145585468e+02 -1.441703642214681e+02 -1.442489457900865e+02 -1.443275593072134e+02 -1.444062046857781e+02 - -1.444848818522611e+02 -1.445635909172288e+02 -1.446423319927847e+02 -1.447211050130976e+02 -1.447999098925679e+02 - -1.448787466444589e+02 -1.449576153140356e+02 -1.450365159757091e+02 -1.451154486823820e+02 -1.451944133717774e+02 - -1.452734099863848e+02 -1.453524386029381e+02 -1.454314992962476e+02 -1.455105919991844e+02 -1.455897166474813e+02 - -1.456688733302556e+02 -1.457480621396693e+02 -1.458272830266799e+02 -1.459065359271370e+02 -1.459858208576615e+02 - -1.460651378591126e+02 -1.461444869885314e+02 -1.462238682831965e+02 -1.463032816851561e+02 -1.463827271416525e+02 - -1.464622047159361e+02 -1.465417144784923e+02 -1.466212564127396e+02 -1.467008304928943e+02 -1.467804367434297e+02 - -1.468600751934606e+02 -1.469397458404120e+02 -1.470194486722770e+02 -1.470991836710121e+02 -1.471789508433917e+02 - -1.472587503015001e+02 -1.473385821300154e+02 -1.474184461986837e+02 -1.474983423870870e+02 -1.475782708290815e+02 - -1.476582316674545e+02 -1.477382248264445e+02 -1.478182502096616e+02 -1.478983078567520e+02 -1.479783978350921e+02 - -1.480585201869469e+02 -1.481386749269736e+02 -1.482188619845118e+02 -1.482990813088785e+02 -1.483793330146163e+02 - -1.484596172099193e+02 -1.485399338123612e+02 -1.486202827323657e+02 -1.487006640423751e+02 -1.487810778248495e+02 - -1.488615240403001e+02 -1.489420026412511e+02 -1.490225136702235e+02 -1.491030571832025e+02 -1.491836332000337e+02 - -1.492642417202360e+02 -1.493448826981615e+02 -1.494255561054278e+02 -1.495062620278810e+02 -1.495870005487025e+02 - -1.496677716261896e+02 -1.497485751994623e+02 -1.498294112558179e+02 -1.499102798158717e+02 -1.499911809853331e+02 - -1.500721148441144e+02 -1.501530812838450e+02 -1.502340802026938e+02 -1.503151117132690e+02 -1.503961759364751e+02 - -1.504772728119622e+02 -1.505584022645880e+02 -1.506395643412949e+02 -1.507207591024668e+02 -1.508019865401696e+02 - -1.508832466324269e+02 -1.509645393694111e+02 -1.510458647628492e+02 -1.511272228985386e+02 -1.512086138412552e+02 - -1.512900374976176e+02 -1.513714937855876e+02 -1.514529828266537e+02 -1.515345047392310e+02 -1.516160594259147e+02 - -1.516976467776822e+02 -1.517792668548592e+02 -1.518609197460578e+02 -1.519426054836894e+02 -1.520243240750476e+02 - -1.521060754831553e+02 -1.521878596792744e+02 -1.522696767118938e+02 -1.523515266305248e+02 -1.524334094115421e+02 - -1.525153250314230e+02 -1.525972735401888e+02 -1.526792549864990e+02 -1.527612693400200e+02 -1.528433165631959e+02 - -1.529253966685747e+02 -1.530075096900777e+02 -1.530896556970147e+02 -1.531718347321965e+02 -1.532540466970516e+02 - -1.533362915133235e+02 -1.534185693253995e+02 -1.535008802693854e+02 -1.535832242256197e+02 -1.536656010621809e+02 - -1.537480108538752e+02 -1.538304537113657e+02 -1.539129296820158e+02 -1.539954387715506e+02 -1.540779808824423e+02 - -1.541605559457948e+02 -1.542431641104905e+02 -1.543258055115917e+02 -1.544084800111010e+02 -1.544911874726015e+02 - -1.545739280390565e+02 -1.546567018609975e+02 -1.547395088398511e+02 -1.548223488576198e+02 -1.549052219677139e+02 - -1.549881282595875e+02 -1.550710677954614e+02 -1.551540406026988e+02 -1.552370465964632e+02 -1.553200857053796e+02 - -1.554031580241178e+02 -1.554862636500489e+02 -1.555694025253043e+02 -1.556525745801794e+02 -1.557357798528659e+02 - -1.558190184045264e+02 -1.559022902803117e+02 -1.559855954979769e+02 -1.560689339817060e+02 -1.561523056771075e+02 - -1.562357107090587e+02 -1.563191491909100e+02 -1.564026210106382e+02 -1.564861260558312e+02 -1.565696644378976e+02 - -1.566532362813955e+02 -1.567368415396626e+02 -1.568204801387562e+02 -1.569041520668287e+02 -1.569878573487146e+02 - -1.570715960938785e+02 -1.571553683828581e+02 -1.572391740958522e+02 -1.573230131265335e+02 -1.574068856228085e+02 - -1.574907917295132e+02 -1.575747313249683e+02 -1.576587042737324e+02 -1.577427106518309e+02 -1.578267505715277e+02 - -1.579108240785769e+02 -1.579949311783184e+02 -1.580790717809458e+02 -1.581632458187553e+02 -1.582474534075981e+02 - -1.583316946623155e+02 -1.584159695101536e+02 -1.585002778727259e+02 -1.585846198367120e+02 -1.586689954874005e+02 - -1.587534047394542e+02 -1.588378475061590e+02 -1.589223238659185e+02 -1.590068339195322e+02 -1.590913776922658e+02 - -1.591759551748261e+02 -1.592605662952183e+02 -1.593452110061037e+02 -1.594298894214712e+02 -1.595146016508511e+02 - -1.595993476246111e+02 -1.596841272537272e+02 -1.597689405507699e+02 -1.598537875632453e+02 -1.599386683768111e+02 - -1.600235830481832e+02 -1.601085314801616e+02 -1.601935135899282e+02 -1.602785295061083e+02 -1.603635793509372e+02 - -1.604486630096468e+02 -1.605337803660765e+02 -1.606189315354990e+02 -1.607041166452176e+02 -1.607893356392255e+02 - -1.608745884397152e+02 -1.609598750649831e+02 -1.610451955612870e+02 -1.611305499906227e+02 -1.612159383917271e+02 - -1.613013606945609e+02 -1.613868168398436e+02 -1.614723069201057e+02 -1.615578310304217e+02 -1.616433891242326e+02 - -1.617289811339727e+02 -1.618146070496823e+02 -1.619002668955830e+02 -1.619859607750138e+02 -1.620716887676450e+02 - -1.621574507793529e+02 -1.622432467219253e+02 -1.623290767045893e+02 -1.624149408340039e+02 -1.625008390091176e+02 - -1.625867711331680e+02 -1.626727373342588e+02 -1.627587377384768e+02 -1.628447722389764e+02 -1.629308407201184e+02 - -1.630169432640222e+02 -1.631030799800713e+02 -1.631892508889492e+02 -1.632754559784962e+02 -1.633616951938801e+02 - -1.634479685044198e+02 -1.635342760187116e+02 -1.636206178291233e+02 -1.637069938238325e+02 -1.637934038942077e+02 - -1.638798481485683e+02 -1.639663267112721e+02 -1.640528395538795e+02 -1.641393866180353e+02 -1.642259678785196e+02 - -1.643125833411851e+02 -1.643992331030405e+02 -1.644859172470150e+02 -1.645726357085657e+02 -1.646593884180614e+02 - -1.647461754329907e+02 -1.648329968179324e+02 -1.649198525387065e+02 -1.650067425502886e+02 -1.650936668630355e+02 - -1.651806255134507e+02 -1.652676185872448e+02 -1.653546461444497e+02 -1.654417080931755e+02 -1.655288043499995e+02 - -1.656159350172886e+02 -1.657031001994683e+02 -1.657902998234105e+02 -1.658775338117127e+02 -1.659648022474274e+02 - -1.660521052162188e+02 -1.661394426537408e+02 -1.662268144894047e+02 -1.663142207776613e+02 -1.664016615975541e+02 - -1.664891370014617e+02 -1.665766470055737e+02 -1.666641915079906e+02 -1.667517704334961e+02 -1.668393839316945e+02 - -1.669270321420214e+02 -1.670147149384157e+02 -1.671024321837371e+02 -1.671901839620226e+02 -1.672779703889409e+02 - -1.673657914855093e+02 -1.674536472385115e+02 -1.675415375924466e+02 -1.676294625158688e+02 -1.677174221158364e+02 - -1.678054164853866e+02 -1.678934455229663e+02 -1.679815091339810e+02 -1.680696074462591e+02 -1.681577405863894e+02 - -1.682459084535819e+02 -1.683341109324726e+02 -1.684223480767776e+02 -1.685106199767677e+02 -1.685989266998525e+02 - -1.686872682758898e+02 -1.687756446073924e+02 -1.688640556163956e+02 -1.689525014303699e+02 -1.690409821718389e+02 - -1.691294977381033e+02 -1.692180480141565e+02 -1.693066330609834e+02 -1.693952529706734e+02 -1.694839077837423e+02 - -1.695725975104607e+02 -1.696613220916933e+02 -1.697500814887782e+02 -1.698388758143547e+02 -1.699277051650943e+02 - -1.700165694224996e+02 -1.701054684738952e+02 -1.701944024450633e+02 -1.702833714670375e+02 -1.703723754534025e+02 - -1.704614143033400e+02 -1.705504880758685e+02 -1.706395968591658e+02 -1.707287406982126e+02 -1.708179196055015e+02 - -1.709071335067704e+02 -1.709963823462651e+02 -1.710856662290167e+02 -1.711749852543236e+02 -1.712643393377691e+02 - -1.713537283867857e+02 -1.714431524599174e+02 -1.715326116432521e+02 -1.716221059819435e+02 -1.717116354891412e+02 - -1.718012000909151e+02 -1.718907997312464e+02 -1.719804345128430e+02 -1.720701045346718e+02 -1.721598097220100e+02 - -1.722495499971131e+02 -1.723393254438396e+02 -1.724291361494486e+02 -1.725189820532021e+02 -1.726088630837053e+02 - -1.726987792749333e+02 -1.727887306891670e+02 -1.728787173965418e+02 -1.729687394350333e+02 -1.730587967061244e+02 - -1.731488891286860e+02 -1.732390168276344e+02 -1.733291799265234e+02 -1.734193783374131e+02 -1.735096119603506e+02 - -1.735998808588243e+02 -1.736901851222248e+02 -1.737805247801124e+02 -1.738708998286339e+02 -1.739613101901119e+02 - -1.740517558114003e+02 -1.741422368113012e+02 -1.742327533050288e+02 -1.743233052214973e+02 -1.744138924793676e+02 - -1.745045151425876e+02 -1.745951732822802e+02 -1.746858668529805e+02 -1.747765958032038e+02 -1.748673601739718e+02 - -1.749581600245709e+02 -1.750489953948396e+02 -1.751398663036498e+02 -1.752307727054541e+02 -1.753217145616989e+02 - -1.754126919262226e+02 -1.755037048571098e+02 -1.755947533370347e+02 -1.756858373371216e+02 -1.757769568577038e+02 - -1.758681119173357e+02 -1.759593025782490e+02 -1.760505288876894e+02 -1.761417907892832e+02 -1.762330882344909e+02 - -1.763244213097290e+02 -1.764157900964081e+02 -1.765071945209611e+02 -1.765986345094344e+02 -1.766901101413071e+02 - -1.767816215026837e+02 -1.768731685527375e+02 -1.769647512369523e+02 -1.770563695729838e+02 -1.771480236027573e+02 - -1.772397133931058e+02 -1.773314389867134e+02 -1.774232003047593e+02 -1.775149972814722e+02 -1.776068300247813e+02 - -1.776986986385443e+02 -1.777906030366335e+02 -1.778825431235826e+02 -1.779745189565556e+02 -1.780665306226855e+02 - -1.781585781763529e+02 -1.782506616334199e+02 -1.783427808884287e+02 -1.784349358629673e+02 -1.785271267081259e+02 - -1.786193535668995e+02 -1.787116163204012e+02 -1.788039148425030e+02 -1.788962492399977e+02 -1.789886196318098e+02 - -1.790810259524725e+02 -1.791734681201561e+02 -1.792659461719689e+02 -1.793584601742520e+02 -1.794510101913400e+02 - -1.795435962594126e+02 -1.796362183040394e+02 -1.797288762617232e+02 -1.798215702233099e+02 -1.799143002757676e+02 - -1.800070663362093e+02 -1.800998683262517e+02 -1.801927063553792e+02 -1.802855805315161e+02 -1.803784907684791e+02 - -1.804714369692463e+02 -1.805644191875481e+02 -1.806574375103104e+02 -1.807504920064915e+02 -1.808435827084130e+02 - -1.809367095198169e+02 -1.810298723599504e+02 -1.811230713386593e+02 -1.812163065647390e+02 -1.813095779521854e+02 - -1.814028854036152e+02 -1.814962289709267e+02 -1.815896087407728e+02 -1.816830247895420e+02 -1.817764771515762e+02 - -1.818699657032943e+02 -1.819634903439186e+02 -1.820570512218083e+02 -1.821506484855823e+02 -1.822442820357622e+02 - -1.823379517614509e+02 -1.824316577541746e+02 -1.825254001134493e+02 -1.826191787683301e+02 -1.827129936397535e+02 - -1.828068447866412e+02 -1.829007322929544e+02 -1.829946562048259e+02 -1.830886165373395e+02 -1.831826132192083e+02 - -1.832766461922778e+02 -1.833707155372913e+02 -1.834648213380734e+02 -1.835589635518759e+02 -1.836531421229175e+02 - -1.837473570698571e+02 -1.838416084358642e+02 -1.839358962877114e+02 -1.840302206684350e+02 -1.841245815025237e+02 - -1.842189787235884e+02 -1.843134124202761e+02 -1.844078826806361e+02 -1.845023894352911e+02 -1.845969326205561e+02 - -1.846915123529413e+02 -1.847861287393624e+02 -1.848807816681596e+02 -1.849754710227848e+02 -1.850701968857076e+02 - -1.851649593688754e+02 -1.852597585031284e+02 -1.853545942804591e+02 -1.854494666185751e+02 -1.855443754618861e+02 - -1.856393209358935e+02 -1.857343031604275e+02 -1.858293220515437e+02 -1.859243775087027e+02 -1.860194695687597e+02 - -1.861145983033516e+02 -1.862097637858479e+02 -1.863049660540466e+02 -1.864002050017272e+02 -1.864954805431744e+02 - -1.865907928187129e+02 -1.866861419596013e+02 -1.867815278347963e+02 -1.868769503164351e+02 -1.869724095516791e+02 - -1.870679056966096e+02 -1.871634386679672e+02 -1.872590083560524e+02 -1.873546147847470e+02 -1.874502580123688e+02 - -1.875459381013990e+02 -1.876416550903780e+02 -1.877374089179168e+02 -1.878331995340542e+02 -1.879290270344656e+02 - -1.880248915055781e+02 -1.881207928511883e+02 -1.882167309755823e+02 -1.883127059676341e+02 -1.884087179360091e+02 - -1.885047668839511e+02 -1.886008527852007e+02 -1.886969756009047e+02 -1.887931353152428e+02 -1.888893320171184e+02 - -1.889855657829229e+02 -1.890818365342772e+02 -1.891781441947396e+02 -1.892744888503877e+02 -1.893708705921393e+02 - -1.894672893677523e+02 -1.895637451161106e+02 -1.896602378837592e+02 -1.897567677352667e+02 -1.898533346996371e+02 - -1.899499387807097e+02 -1.900465799172331e+02 -1.901432580674921e+02 -1.902399733330072e+02 -1.903367258125687e+02 - -1.904335154508099e+02 -1.905303421711713e+02 -1.906272059664800e+02 -1.907241068668330e+02 -1.908210449820209e+02 - -1.909180203947948e+02 -1.910150330000556e+02 -1.911120827002041e+02 -1.912091696154924e+02 -1.913062938635582e+02 - -1.914034553337337e+02 -1.915006539182285e+02 -1.915978897490666e+02 -1.916951629619544e+02 -1.917924734675151e+02 - -1.918898211586861e+02 -1.919872060827436e+02 -1.920846283161583e+02 -1.921820878978424e+02 -1.922795848438701e+02 - -1.923771191165239e+02 -1.924746906889474e+02 -1.925722996315181e+02 -1.926699460069926e+02 -1.927676297504074e+02 - -1.928653507913461e+02 -1.929631091652971e+02 -1.930609049367203e+02 -1.931587381800568e+02 -1.932566089358633e+02 - -1.933545170991796e+02 -1.934524625825225e+02 -1.935504455138344e+02 -1.936484660231147e+02 -1.937465240331655e+02 - -1.938446194535055e+02 -1.939427523477156e+02 -1.940409227930324e+02 -1.941391307672549e+02 -1.942373762317632e+02 - -1.943356591817002e+02 -1.944339796386271e+02 -1.945323376960147e+02 -1.946307334225392e+02 -1.947291667157886e+02 - -1.948276374816129e+02 -1.949261458299981e+02 -1.950246918758956e+02 -1.951232755499811e+02 -1.952218967672293e+02 - -1.953205555640852e+02 -1.954192520091347e+02 -1.955179861780584e+02 -1.956167581109271e+02 -1.957155676982765e+02 - -1.958144148511486e+02 -1.959132997121442e+02 -1.960122224157670e+02 -1.961111828325720e+02 -1.962101808324193e+02 - -1.963092165463342e+02 -1.964082901163006e+02 -1.965074014669716e+02 -1.966065505047830e+02 -1.967057372806285e+02 - -1.968049618689787e+02 -1.969042242941536e+02 -1.970035245570506e+02 -1.971028626150270e+02 -1.972022384428475e+02 - -1.973016521284466e+02 -1.974011037520065e+02 -1.975005932495305e+02 -1.976001205455443e+02 -1.976996856628438e+02 - -1.977992886519515e+02 -1.978989295760255e+02 -1.979986084767589e+02 -1.980983252973461e+02 -1.981980799861144e+02 - -1.982978726104215e+02 -1.983977032396124e+02 -1.984975718319531e+02 -1.985974783450467e+02 -1.986974228449224e+02 - -1.987974053983538e+02 -1.988974259666649e+02 -1.989974844962869e+02 -1.990975809795281e+02 -1.991977154414513e+02 - -1.992978879922588e+02 -1.993980987169082e+02 -1.994983475142392e+02 -1.995986342853965e+02 -1.996989591268633e+02 - -1.997993221398394e+02 -1.998997232490551e+02 -2.000001623829878e+02 -2.001006396615730e+02 -2.002011551976202e+02 - -2.003017088839768e+02 -2.004023006006677e+02 -2.005029303963877e+02 -2.006035983645368e+02 -2.007043046086661e+02 - -2.008050491826254e+02 -2.009058319313084e+02 -2.010066527248718e+02 -2.011075117434797e+02 -2.012084091672780e+02 - -2.013093448663347e+02 -2.014103186854462e+02 -2.015113306783989e+02 -2.016123809487723e+02 -2.017134695903300e+02 - -2.018145966520298e+02 -2.019157620134241e+02 -2.020169655668574e+02 -2.021182074252480e+02 -2.022194877090834e+02 - -2.023208063485549e+02 -2.024221632682046e+02 -2.025235585602719e+02 -2.026249923196053e+02 -2.027264644837921e+02 - -2.028279749730532e+02 -2.029295237954015e+02 -2.030311109992572e+02 -2.031327367068774e+02 -2.032344010007734e+02 - -2.033361037306376e+02 -2.034378447601810e+02 -2.035396242420057e+02 -2.036414423389593e+02 -2.037432989659801e+02 - -2.038451940079258e+02 -2.039471274772405e+02 -2.040490994323931e+02 -2.041511099883670e+02 -2.042531592234435e+02 - -2.043552470125819e+02 -2.044573732391661e+02 -2.045595380236004e+02 -2.046617414909655e+02 -2.047639835480296e+02 - -2.048662640993485e+02 -2.049685832589404e+02 -2.050709411450770e+02 -2.051733376835843e+02 -2.052757727854042e+02 - -2.053782464943871e+02 -2.054807588829732e+02 -2.055833100050551e+02 -2.056858998827895e+02 -2.057885284299405e+02 - -2.058911955783421e+02 -2.059939014405005e+02 -2.060966461276917e+02 -2.061994295656012e+02 -2.063022516666823e+02 - -2.064051124760526e+02 -2.065080120661920e+02 -2.066109504863692e+02 -2.067139277576765e+02 -2.068169438117121e+02 - -2.069199985973326e+02 -2.070230922219201e+02 -2.071262247789163e+02 -2.072293961474789e+02 -2.073326062201854e+02 - -2.074358551575783e+02 -2.075391431180403e+02 -2.076424699833530e+02 -2.077458356179337e+02 -2.078492400933438e+02 - -2.079526835133251e+02 -2.080561659031989e+02 -2.081596872578975e+02 -2.082632475292167e+02 -2.083668466898186e+02 - -2.084704848389632e+02 -2.085741620623951e+02 -2.086778782651976e+02 -2.087816333480700e+02 -2.088854273748348e+02 - -2.089892604383302e+02 -2.090931325843364e+02 -2.091970438282278e+02 -2.093009941108145e+02 -2.094049833841979e+02 - -2.095090117202067e+02 -2.096130791905716e+02 -2.097171857469022e+02 -2.098213313423286e+02 -2.099255160561849e+02 - -2.100297399619016e+02 -2.101340029830976e+02 -2.102383050403986e+02 -2.103426461922712e+02 -2.104470265253758e+02 - -2.105514461013085e+02 -2.106559049410852e+02 -2.107604029284658e+02 -2.108649399745926e+02 -2.109695162373935e+02 - -2.110741318706494e+02 -2.111787867647689e+02 -2.112834807867834e+02 -2.113882139735869e+02 -2.114929864074473e+02 - -2.115977981822681e+02 -2.117026493533424e+02 -2.118075398098887e+02 -2.119124694556393e+02 -2.120174384184601e+02 - -2.121224468216736e+02 -2.122274945462991e+02 -2.123325814769304e+02 -2.124377077547605e+02 -2.125428735238108e+02 - -2.126480786828185e+02 -2.127533231155498e+02 -2.128586068911697e+02 -2.129639301084739e+02 -2.130692927993837e+02 - -2.131746949622090e+02 -2.132801365276879e+02 -2.133856174488912e+02 -2.134911378357916e+02 -2.135966977951921e+02 - -2.137022972643151e+02 -2.138079361581469e+02 -2.139136144723085e+02 -2.140193322420075e+02 -2.141250895801643e+02 - -2.142308865713384e+02 -2.143367231089345e+02 -2.144425990899214e+02 -2.145485146166798e+02 -2.146544697958461e+02 - -2.147604645456698e+02 -2.148664987887291e+02 -2.149725726533044e+02 -2.150786862586875e+02 -2.151848394825147e+02 - -2.152910321964648e+02 -2.153972644900385e+02 -2.155035364828845e+02 -2.156098481974242e+02 -2.157161996246267e+02 - -2.158225907268823e+02 -2.159290214790141e+02 -2.160354919341570e+02 -2.161420021424622e+02 -2.162485520638355e+02 - -2.163551416576007e+02 -2.164617709709994e+02 -2.165684400663080e+02 -2.166751489780245e+02 -2.167818977145845e+02 - -2.168886862079515e+02 -2.169955144082682e+02 -2.171023824148656e+02 -2.172092903208214e+02 -2.173162380450137e+02 - -2.174232255130703e+02 -2.175302528518165e+02 -2.176373201799158e+02 -2.177444273821862e+02 -2.178515743317612e+02 - -2.179587610888773e+02 -2.180659877532527e+02 -2.181732543954297e+02 -2.182805610486399e+02 -2.183879076260487e+02 - -2.184952940541088e+02 -2.186027204324891e+02 -2.187101868605661e+02 -2.188176932633304e+02 -2.189252395535715e+02 - -2.190328257696591e+02 -2.191404519835346e+02 -2.192481182758485e+02 -2.193558246894080e+02 -2.194635711069396e+02 - -2.195713574321837e+02 -2.196791838130171e+02 -2.197870503917547e+02 -2.198949570443306e+02 -2.200029036478261e+02 - -2.201108903502962e+02 -2.202189173008489e+02 -2.203269843818326e+02 -2.204350914576510e+02 -2.205432385876858e+02 - -2.206514258738742e+02 -2.207596533933995e+02 -2.208679211808499e+02 -2.209762291251867e+02 -2.210845771334710e+02 - -2.211929653307878e+02 -2.213013938407175e+02 -2.214098625627986e+02 -2.215183713969045e+02 -2.216269204682873e+02 - -2.217355099024502e+02 -2.218441396005216e+02 -2.219528094497077e+02 -2.220615195058979e+02 -2.221702698646027e+02 - -2.222790606111339e+02 -2.223878917838657e+02 -2.224967632436199e+02 -2.226056748766821e+02 -2.227146268487432e+02 - -2.228236193240230e+02 -2.229326521814535e+02 -2.230417252803019e+02 -2.231508386864637e+02 -2.232599925050409e+02 - -2.233691867913336e+02 -2.234784215614204e+02 -2.235876967242961e+02 -2.236970122086523e+02 -2.238063681290529e+02 - -2.239157646015454e+02 -2.240252015622403e+02 -2.241346789340316e+02 -2.242441967668838e+02 -2.243537551247286e+02 - -2.244633540002964e+02 -2.245729933685804e+02 -2.246826732048266e+02 -2.247923935126906e+02 -2.249021544092157e+02 - -2.250119559889259e+02 -2.251217981428817e+02 -2.252316807628839e+02 -2.253416039471573e+02 -2.254515678046834e+02 - -2.255615722810486e+02 -2.256716173029860e+02 -2.257817028852108e+02 -2.258918290784169e+02 -2.260019959892315e+02 - -2.261122036854213e+02 -2.262224520233766e+02 -2.263327408802082e+02 -2.264430704272837e+02 -2.265534408332552e+02 - -2.266638519616550e+02 -2.267743036660735e+02 -2.268847960654481e+02 -2.269953292962885e+02 -2.271059033000460e+02 - -2.272165179952407e+02 -2.273271734037251e+02 -2.274378695801794e+02 -2.275486066072624e+02 -2.276593845334010e+02 - -2.277702032421150e+02 -2.278810626343348e+02 -2.279919628455381e+02 -2.281029040172474e+02 -2.282138860806176e+02 - -2.283249089376286e+02 -2.284359725839265e+02 -2.285470770593814e+02 -2.286582224870930e+02 -2.287694089544078e+02 - -2.288806363224278e+02 -2.289919044640359e+02 -2.291032135254801e+02 -2.292145636582007e+02 -2.293259547610424e+02 - -2.294373867252146e+02 -2.295488596639802e+02 -2.296603736910369e+02 -2.297719286997702e+02 -2.298835245768747e+02 - -2.299951614025932e+02 -2.301068392919157e+02 -2.302185583052736e+02 -2.303303184582155e+02 -2.304421196413199e+02 - -2.305539617649887e+02 -2.306658449438852e+02 -2.307777692999738e+02 -2.308897347801602e+02 -2.310017413072381e+02 - -2.311137888826106e+02 -2.312258775426401e+02 -2.313380073849178e+02 -2.314501784790464e+02 -2.315623907214496e+02 - -2.316746440227619e+02 -2.317869385236417e+02 -2.318992743527083e+02 -2.320116513604021e+02 -2.321240694060221e+02 - -2.322365286624793e+02 -2.323490293043759e+02 -2.324615711994689e+02 -2.325741541998047e+02 -2.326867784014305e+02 - -2.327994439322068e+02 -2.329121508032486e+02 -2.330248989898164e+02 -2.331376884404961e+02 -2.332505191272475e+02 - -2.333633911421986e+02 -2.334763045743060e+02 -2.335892593796759e+02 -2.337022554911374e+02 -2.338152928812627e+02 - -2.339283715644559e+02 -2.340414916827054e+02 -2.341546533474617e+02 -2.342678564204413e+02 -2.343811007676228e+02 - -2.344943865217682e+02 -2.346077138212040e+02 -2.347210825597340e+02 -2.348344926295532e+02 -2.349479441609453e+02 - -2.350614372851493e+02 -2.351749718991416e+02 -2.352885478850955e+02 -2.354021653002366e+02 -2.355158242429473e+02 - -2.356295248011875e+02 -2.357432670145577e+02 -2.358570507396431e+02 -2.359708758587992e+02 -2.360847425404777e+02 - -2.361986509531367e+02 -2.363126009791645e+02 -2.364265924750662e+02 -2.365406254798825e+02 -2.366547000814751e+02 - -2.367688163804559e+02 -2.368829744348273e+02 -2.369971741194025e+02 -2.371114153287764e+02 -2.372256982198593e+02 - -2.373400229428812e+02 -2.374543893590377e+02 -2.375687973238754e+02 -2.376832469593778e+02 -2.377977384043928e+02 - -2.379122715987879e+02 -2.380268464580362e+02 -2.381414629990116e+02 -2.382561212769444e+02 -2.383708213990897e+02 - -2.384855634334210e+02 -2.386003472387607e+02 -2.387151726904082e+02 -2.388300399387221e+02 -2.389449491374237e+02 - -2.390599001786255e+02 -2.391748929369255e+02 -2.392899274784697e+02 -2.394050039061344e+02 -2.395201222781684e+02 - -2.396352826134916e+02 -2.397504848183333e+02 -2.398657288168898e+02 -2.399810147179146e+02 -2.400963426277219e+02 - -2.402117124583125e+02 -2.403271241258893e+02 -2.404425777577767e+02 -2.405580734795174e+02 -2.406736111984077e+02 - -2.407891907995794e+02 -2.409048122977546e+02 -2.410204757554728e+02 -2.411361812969551e+02 -2.412519290053517e+02 - -2.413677187378485e+02 -2.414835503650167e+02 -2.415994240369316e+02 -2.417153399089511e+02 -2.418312978780588e+02 - -2.419472978191357e+02 -2.420633397770240e+02 -2.421794238369657e+02 -2.422955500758429e+02 -2.424117185344053e+02 - -2.425279291172331e+02 -2.426441817421263e+02 -2.427604765159341e+02 -2.428768135466203e+02 -2.429931927575585e+02 - -2.431096140668555e+02 -2.432260775561414e+02 -2.433425833145866e+02 -2.434591312980004e+02 -2.435757214497087e+02 - -2.436923537964655e+02 -2.438090283895336e+02 -2.439257452947832e+02 -2.440425045463603e+02 -2.441593060369063e+02 - -2.442761496825792e+02 -2.443930356351059e+02 -2.445099640393889e+02 -2.446269347774639e+02 -2.447439477225602e+02 - -2.448610029755453e+02 -2.449781006544274e+02 -2.450952407181387e+02 -2.452124231032676e+02 -2.453296478161015e+02 - -2.454469148921256e+02 -2.455642244139170e+02 -2.456815764363974e+02 -2.457989708567751e+02 -2.459164075868465e+02 - -2.460338867544718e+02 -2.461514084874868e+02 -2.462689726975661e+02 -2.463865792818051e+02 -2.465042282951439e+02 - -2.466219198202147e+02 -2.467396538925739e+02 -2.468574305187124e+02 -2.469752496359336e+02 -2.470931112029433e+02 - -2.472110153332446e+02 -2.473289621270786e+02 -2.474469514768406e+02 -2.475649832814832e+02 -2.476830576740329e+02 - -2.478011747871381e+02 -2.479193345178656e+02 -2.480375367456449e+02 -2.481557815149384e+02 -2.482740689103307e+02 - -2.483923990118631e+02 -2.485107718618152e+02 -2.486291873559622e+02 -2.487476454083695e+02 -2.488661461527674e+02 - -2.489846897184250e+02 -2.491032759971039e+02 -2.492219048675295e+02 -2.493405763937896e+02 -2.494592906781626e+02 - -2.495780477903268e+02 -2.496968477531592e+02 -2.498156904349301e+02 -2.499345757349562e+02 -2.500535038313474e+02 - -2.501724748933778e+02 -2.502914887761886e+02 -2.504105453266259e+02 -2.505296446724864e+02 -2.506487869586733e+02 - -2.507679721175656e+02 -2.508872000588222e+02 -2.510064708137437e+02 -2.511257844438344e+02 -2.512451410097723e+02 - -2.513645405425343e+02 -2.514839829551193e+02 -2.516034681806881e+02 -2.517229963510282e+02 -2.518425675906852e+02 - -2.519621817966139e+02 -2.520818388494823e+02 -2.522015387924022e+02 -2.523212817096907e+02 -2.524410676880414e+02 - -2.525608967718439e+02 -2.526807688338955e+02 -2.528006837687293e+02 -2.529206417294141e+02 -2.530406428681973e+02 - -2.531606870755077e+02 -2.532807742357317e+02 -2.534009044709059e+02 -2.535210779031462e+02 -2.536412944172385e+02 - -2.537615538911017e+02 -2.538818564125164e+02 -2.540022021028112e+02 -2.541225910076441e+02 -2.542430231270507e+02 - -2.543634983542462e+02 -2.544840166121418e+02 -2.546045780492533e+02 -2.547251828099108e+02 -2.548458307960956e+02 - -2.549665218842466e+02 -2.550872560909815e+02 -2.552080334828205e+02 -2.553288541857174e+02 -2.554497182835964e+02 - -2.555706256328296e+02 -2.556915761009198e+02 -2.558125698274442e+02 -2.559336069560756e+02 -2.560546873747970e+02 - -2.561758109689862e+02 -2.562969778692906e+02 -2.564181882127723e+02 -2.565394419168841e+02 -2.566607388759341e+02 - -2.567820791112567e+02 -2.569034626862424e+02 -2.570248897054782e+02 -2.571463602359873e+02 -2.572678741533426e+02 - -2.573894313462550e+02 -2.575110319474426e+02 -2.576326760938784e+02 -2.577543636955484e+02 -2.578760946446893e+02 - -2.579978689895271e+02 -2.581196868133063e+02 -2.582415481833543e+02 -2.583634531275302e+02 -2.584854015317316e+02 - -2.586073933093156e+02 -2.587294286254374e+02 -2.588515076317444e+02 -2.589736301740566e+02 -2.590957960996737e+02 - -2.592180055676404e+02 -2.593402587446819e+02 -2.594625555165019e+02 -2.595848957490105e+02 -2.597072795099639e+02 - -2.598297069067293e+02 -2.599521780032740e+02 -2.600746928207452e+02 -2.601972512524080e+02 -2.603198532148209e+02 - -2.604424988455961e+02 -2.605651882765137e+02 -2.606879213949725e+02 -2.608106980758151e+02 -2.609335183880386e+02 - -2.610563824372016e+02 -2.611792902809524e+02 -2.613022419394243e+02 -2.614252373306019e+02 -2.615482763897488e+02 - -2.616713592233935e+02 -2.617944859260970e+02 -2.619176563732862e+02 -2.620408704583867e+02 -2.621641283659552e+02 - -2.622874302706103e+02 -2.624107760160917e+02 -2.625341654302978e+02 -2.626575986086381e+02 -2.627810756876698e+02 - -2.629045967010318e+02 -2.630281616427657e+02 -2.631517704514422e+02 -2.632754230861743e+02 -2.633991196437133e+02 - -2.635228602105341e+02 -2.636466446943674e+02 -2.637704729984163e+02 -2.638943451865159e+02 -2.640182613561179e+02 - -2.641422215785110e+02 -2.642662258795402e+02 -2.643902741294400e+02 -2.645143662245587e+02 -2.646385023213122e+02 - -2.647626825745115e+02 -2.648869068724856e+02 -2.650111750962730e+02 -2.651354873642347e+02 -2.652598438005879e+02 - -2.653842443156531e+02 -2.655086888035231e+02 -2.656331773072787e+02 -2.657577099091213e+02 -2.658822866987512e+02 - -2.660069077230897e+02 -2.661315728504449e+02 -2.662562819710931e+02 -2.663810352417937e+02 -2.665058328192844e+02 - -2.666306745937331e+02 -2.667555604333347e+02 -2.668804903849584e+02 -2.670054645383429e+02 -2.671304829760297e+02 - -2.672555457413816e+02 -2.673806527282453e+02 -2.675058038464400e+02 -2.676309992191929e+02 -2.677562389652032e+02 - -2.678815229716541e+02 -2.680068511277727e+02 -2.681322235624782e+02 -2.682576404136338e+02 -2.683831016151858e+02 - -2.685086070756685e+02 -2.686341568058856e+02 -2.687597508516357e+02 -2.688853892964312e+02 -2.690110721950252e+02 - -2.691367994494158e+02 -2.692625709807897e+02 -2.693883869398372e+02 -2.695142474621058e+02 -2.696401523930688e+02 - -2.697661015819900e+02 -2.698920951833660e+02 -2.700181333642693e+02 -2.701442160368443e+02 -2.702703430840482e+02 - -2.703965145270174e+02 -2.705227304331903e+02 -2.706489909170355e+02 -2.707752960482972e+02 -2.709016456707917e+02 - -2.710280396495872e+02 -2.711544781606855e+02 -2.712809613853167e+02 -2.714074892146895e+02 -2.715340615102555e+02 - -2.716606783044584e+02 -2.717873396730564e+02 -2.719140456940721e+02 -2.720407964136753e+02 -2.721675917483545e+02 - -2.722944316245073e+02 -2.724213161378437e+02 -2.725482453844213e+02 -2.726752192923742e+02 -2.728022377909456e+02 - -2.729293009817382e+02 -2.730564089616648e+02 -2.731835616365174e+02 -2.733107589046467e+02 -2.734380008257563e+02 - -2.735652874983575e+02 -2.736926190148396e+02 -2.738199954194386e+02 -2.739474165698984e+02 -2.740748823405867e+02 - -2.742023928588563e+02 -2.743299482670098e+02 -2.744575485141638e+02 -2.745851935229188e+02 -2.747128833029967e+02 - -2.748406178969678e+02 -2.749683973916734e+02 -2.750962218440648e+02 -2.752240911472609e+02 -2.753520052060601e+02 - -2.754799641358123e+02 -2.756079680559450e+02 -2.757360168916492e+02 -2.758641105650285e+02 -2.759922491800748e+02 - -2.761204328366440e+02 -2.762486614361617e+02 -2.763769348745897e+02 -2.765052532244616e+02 -2.766336165883748e+02 - -2.767620250126050e+02 -2.768904785041199e+02 -2.770189769689730e+02 -2.771475203398639e+02 -2.772761087569904e+02 - -2.774047423518460e+02 -2.775334210136085e+02 -2.776621446145333e+02 -2.777909132015001e+02 -2.779197268642361e+02 - -2.780485856892346e+02 -2.781774897218528e+02 -2.783064388461343e+02 -2.784354329669438e+02 -2.785644722337429e+02 - -2.786935567875348e+02 -2.788226864908934e+02 -2.789518612068105e+02 -2.790810810783757e+02 -2.792103462555617e+02 - -2.793396566357773e+02 -2.794690121008859e+02 -2.795984127231330e+02 -2.797278586088501e+02 -2.798573498103315e+02 - -2.799868863353985e+02 -2.801164680680156e+02 -2.802460949220819e+02 -2.803757670550874e+02 -2.805054846206144e+02 - -2.806352475130235e+02 -2.807650555997772e+02 -2.808949088999684e+02 -2.810248074853591e+02 -2.811547514867556e+02 - -2.812847409903677e+02 -2.814147758449749e+02 -2.815448559108459e+02 -2.816749813316353e+02 -2.818051522586102e+02 - -2.819353685901064e+02 -2.820656302199222e+02 -2.821959372766401e+02 -2.823262898869716e+02 -2.824566879353637e+02 - -2.825871312931868e+02 -2.827176200217700e+02 -2.828481542276227e+02 -2.829787340080183e+02 -2.831093594072626e+02 - -2.832400302670260e+02 -2.833707464559445e+02 -2.835015081531469e+02 -2.836323155420096e+02 -2.837631685124079e+02 - -2.838940669226656e+02 -2.840250107984012e+02 -2.841560002155769e+02 -2.842870352842360e+02 -2.844181160721325e+02 - -2.845492424437817e+02 -2.846804142799303e+02 -2.848116317294889e+02 -2.849428949404899e+02 -2.850742037892878e+02 - -2.852055581519247e+02 -2.853369581748677e+02 -2.854684040068092e+02 -2.855998955349205e+02 -2.857314326251873e+02 - -2.858630153203723e+02 -2.859946437114748e+02 -2.861263179056654e+02 -2.862580379663874e+02 -2.863898037660037e+02 - -2.865216151879669e+02 -2.866534723511688e+02 -2.867853753832939e+02 -2.869173242117615e+02 -2.870493187426322e+02 - -2.871813589967982e+02 -2.873134450373917e+02 -2.874455769816758e+02 -2.875777549027032e+02 -2.877099786425546e+02 - -2.878422480619707e+02 -2.879745633273037e+02 -2.881069246090204e+02 -2.882393317884377e+02 -2.883717847366556e+02 - -2.885042835730584e+02 -2.886368284288774e+02 -2.887694192344474e+02 -2.889020558953364e+02 -2.890347384189399e+02 - -2.891674668528066e+02 -2.893002413032724e+02 -2.894330618447220e+02 -2.895659283649483e+02 -2.896988407604515e+02 - -2.898317991491523e+02 -2.899648036558058e+02 -2.900978542110840e+02 -2.902309507220182e+02 -2.903640931951591e+02 - -2.904972816775983e+02 -2.906305162790740e+02 -2.907637970750559e+02 -2.908971239412933e+02 -2.910304967707643e+02 - -2.911639157250792e+02 -2.912973809535366e+02 -2.914308922875549e+02 -2.915644495654761e+02 -2.916980529712119e+02 - -2.918317026983915e+02 -2.919653986339440e+02 -2.920991406314096e+02 -2.922329287174719e+02 -2.923667629702973e+02 - -2.925006435008390e+02 -2.926345703772706e+02 -2.927685434638595e+02 -2.929025626397000e+02 -2.930366280470975e+02 - -2.931707398343328e+02 -2.933048979103752e+02 -2.934391021578708e+02 -2.935733525934834e+02 -2.937076492857184e+02 - -2.938419923764308e+02 -2.939763819565550e+02 -2.941108178399977e+02 -2.942452998623305e+02 -2.943798282228154e+02 - -2.945144031200941e+02 -2.946490243866398e+02 -2.947836918481424e+02 -2.949184056693277e+02 -2.950531660302706e+02 - -2.951879728334102e+02 -2.953228259514730e+02 -2.954577254159683e+02 -2.955926713017622e+02 -2.957276636983648e+02 - -2.958627026572042e+02 -2.959977880627373e+02 -2.961329198152110e+02 -2.962680980450039e+02 -2.964033228802077e+02 - -2.965385942096344e+02 -2.966739119278574e+02 -2.968092761917713e+02 -2.969446871501122e+02 -2.970801446566606e+02 - -2.972156485544735e+02 -2.973511989386669e+02 -2.974867959450954e+02 -2.976224396205114e+02 -2.977581299655766e+02 - -2.978938668856917e+02 -2.980296503111913e+02 -2.981654803674056e+02 -2.983013571739824e+02 -2.984372806328453e+02 - -2.985732506311156e+02 -2.987092672144286e+02 -2.988453304703744e+02 -2.989814404958496e+02 -2.991175973412398e+02 - -2.992538008615809e+02 -2.993900509369414e+02 -2.995263477428711e+02 -2.996626914493826e+02 -2.997990819088619e+02 - -2.999355189707111e+02 -3.000720027900217e+02 -3.002085335269560e+02 -3.003451110562723e+02 -3.004817352353309e+02 - -3.006184061373012e+02 -3.007551238767678e+02 -3.008918885181671e+02 -3.010287000846923e+02 -3.011655584847104e+02 - -3.013024636430795e+02 -3.014394156654455e+02 -3.015764146559894e+02 -3.017134605322491e+02 -3.018505532010304e+02 - -3.019876927128527e+02 -3.021248791518991e+02 -3.022621125932933e+02 -3.023993930706231e+02 -3.025367204603900e+02 - -3.026740946641424e+02 -3.028115158406990e+02 -3.029489841386069e+02 -3.030864994080570e+02 -3.032240615026816e+02 - -3.033616705882347e+02 -3.034993268395738e+02 -3.036370301558538e+02 -3.037747804087723e+02 -3.039125776359002e+02 - -3.040504219146317e+02 -3.041883133157825e+02 -3.043262518737324e+02 -3.044642374836954e+02 -3.046022700638564e+02 - -3.047403497634464e+02 -3.048784767248004e+02 -3.050166508316213e+02 -3.051548719471290e+02 -3.052931401112401e+02 - -3.054314554166776e+02 -3.055698179906950e+02 -3.057082279030724e+02 -3.058466849591645e+02 -3.059851889955948e+02 - -3.061237402384871e+02 -3.062623389075358e+02 -3.064009848072192e+02 -3.065396777363650e+02 -3.066784178864098e+02 - -3.068172054654241e+02 -3.069560403554044e+02 -3.070949224023651e+02 -3.072338516344630e+02 -3.073728281334552e+02 - -3.075118520133569e+02 -3.076509233435525e+02 -3.077900419826468e+02 -3.079292078053290e+02 -3.080684209614084e+02 - -3.082076816048298e+02 -3.083469896309615e+02 -3.084863449149456e+02 -3.086257475095906e+02 -3.087651975081579e+02 - -3.089046949880547e+02 -3.090442399817611e+02 -3.091838323579038e+02 -3.093234720151574e+02 -3.094631591362355e+02 - -3.096028938900603e+02 -3.097426761063483e+02 -3.098825056148365e+02 -3.100223825845469e+02 -3.101623071983122e+02 - -3.103022793549238e+02 -3.104422989228102e+02 -3.105823659329897e+02 -3.107224804626276e+02 -3.108626426108901e+02 - -3.110028524323948e+02 -3.111431097815640e+02 -3.112834145351391e+02 -3.114237668593314e+02 -3.115641669247677e+02 - -3.117046146302696e+02 -3.118451098470761e+02 -3.119856526079039e+02 -3.121262429897644e+02 -3.122668810853719e+02 - -3.124075669478935e+02 -3.125483004566077e+02 -3.126890815070839e+02 -3.128299102339429e+02 -3.129707867704560e+02 - -3.131117110054437e+02 -3.132526828292356e+02 -3.133937023826453e+02 -3.135347698019019e+02 -3.136758849544115e+02 - -3.138170476993112e+02 -3.139582581314797e+02 -3.140995163841689e+02 -3.142408225083815e+02 -3.143821765079714e+02 - -3.145235782804463e+02 -3.146650277504123e+02 -3.148065250572144e+02 -3.149480703283944e+02 -3.150896634295446e+02 - -3.152313042212708e+02 -3.153729928061792e+02 -3.155147293192109e+02 -3.156565137826469e+02 -3.157983461803634e+02 - -3.159402264552761e+02 -3.160821545730877e+02 -3.162241306316100e+02 -3.163661547129774e+02 -3.165082267045055e+02 - -3.166503465083330e+02 -3.167925142807053e+02 -3.169347301718565e+02 -3.170769940538677e+02 -3.172193057829434e+02 - -3.173616654299331e+02 -3.175040731106142e+02 -3.176465289058318e+02 -3.177890328440690e+02 -3.179315847792938e+02 - -3.180741845934695e+02 -3.182168324550577e+02 -3.183595285351408e+02 -3.185022727287870e+02 -3.186450649049847e+02 - -3.187879051044167e+02 -3.189307934072479e+02 -3.190737298798787e+02 -3.192167145562098e+02 -3.193597473539087e+02 - -3.195028282067584e+02 -3.196459572292360e+02 -3.197891345287240e+02 -3.199323600035334e+02 -3.200756335516368e+02 - -3.202189552787263e+02 -3.203623252990410e+02 -3.205057435532916e+02 -3.206492099607363e+02 -3.207927245283494e+02 - -3.209362873029775e+02 -3.210798984032395e+02 -3.212235579095965e+02 -3.213672656781062e+02 -3.215110215776564e+02 - -3.216548257528610e+02 -3.217986783602123e+02 -3.219425793279964e+02 -3.220865285490494e+02 -3.222305260026159e+02 - -3.223745717228416e+02 -3.225186658770672e+02 -3.226628085862362e+02 -3.228069996525048e+02 -3.229512388959131e+02 - -3.230955265268207e+02 -3.232398627556209e+02 -3.233842474025269e+02 -3.235286802821290e+02 -3.236731615767077e+02 - -3.238176914785998e+02 -3.239622698526831e+02 -3.241068965416273e+02 -3.242515716267282e+02 -3.243962952303619e+02 - -3.245410674006047e+02 -3.246858881442026e+02 -3.248307573768830e+02 -3.249756750377737e+02 -3.251206412506237e+02 - -3.252656561247559e+02 -3.254107195271718e+02 -3.255558313340717e+02 -3.257009917007768e+02 -3.258462007853361e+02 - -3.259914584775946e+02 -3.261367646471811e+02 -3.262821193510638e+02 -3.264275226864755e+02 -3.265729747243638e+02 - -3.267184754961565e+02 -3.268640249014856e+02 -3.270096228564299e+02 -3.271552694746495e+02 -3.273009648690628e+02 - -3.274467089520415e+02 -3.275925016223748e+02 -3.277383429250694e+02 -3.278842329472037e+02 -3.280301717979274e+02 - -3.281761595333842e+02 -3.283221959756238e+02 -3.284682809773962e+02 -3.286144147483458e+02 -3.287605974914733e+02 - -3.289068290263132e+02 -3.290531091681708e+02 -3.291994380988984e+02 -3.293458160115122e+02 -3.294922427771376e+02 - -3.296387182388717e+02 -3.297852424495862e+02 -3.299318155124273e+02 -3.300784375218649e+02 -3.302251085265343e+02 - -3.303718284004092e+02 -3.305185970357408e+02 -3.306654145725511e+02 -3.308122811494171e+02 -3.309591966513669e+02 - -3.311061609508276e+02 -3.312531741233722e+02 -3.314002362831168e+02 -3.315473474952068e+02 -3.316945077733321e+02 - -3.318417169743284e+02 -3.319889749946440e+02 -3.321362820460264e+02 -3.322836383216903e+02 -3.324310436254205e+02 - -3.325784977579187e+02 -3.327260008969810e+02 -3.328735532388732e+02 -3.330211546766479e+02 -3.331688050699581e+02 - -3.333165044480712e+02 -3.334642528918999e+02 -3.336120505193238e+02 -3.337598974031960e+02 -3.339077933992973e+02 - -3.340557383761620e+02 -3.342037324704123e+02 -3.343517758263186e+02 -3.344998683506588e+02 -3.346480099317598e+02 - -3.347962006216366e+02 -3.349444405123485e+02 -3.350927296924430e+02 -3.352410681997821e+02 -3.353894558729969e+02 - -3.355378925848257e+02 -3.356863785436656e+02 -3.358349139484366e+02 -3.359834986244929e+02 -3.361321323883865e+02 - -3.362808153950241e+02 -3.364295478191028e+02 -3.365783295761255e+02 -3.367271605486342e+02 -3.368760407465185e+02 - -3.370249702279324e+02 -3.371739491167402e+02 -3.373229774932894e+02 -3.374720551981496e+02 -3.376211820935624e+02 - -3.377703583682330e+02 -3.379195842066430e+02 -3.380688594499171e+02 -3.382181839217990e+02 -3.383675577198622e+02 - -3.385169809890102e+02 -3.386664537896355e+02 -3.388159761271593e+02 -3.389655478716282e+02 -3.391151689236262e+02 - -3.392648394412631e+02 -3.394145595795439e+02 -3.395643292235305e+02 -3.397141482525620e+02 -3.398640167930273e+02 - -3.400139349724158e+02 -3.401639026755699e+02 -3.403139197760493e+02 -3.404639863449279e+02 -3.406141024957107e+02 - -3.407642683141136e+02 -3.409144838324194e+02 -3.410647488969659e+02 -3.412150633828331e+02 -3.413654274660125e+02 - -3.415158413252182e+02 -3.416663048491409e+02 -3.418168178992377e+02 -3.419673805180489e+02 -3.421179927901010e+02 - -3.422686547867838e+02 -3.424193665441726e+02 -3.425701279702224e+02 -3.427209389917095e+02 -3.428717997388184e+02 - -3.430227103286458e+02 -3.431736706225328e+02 -3.433246804902436e+02 -3.434757400909901e+02 -3.436268495884827e+02 - -3.437780088749811e+02 -3.439292178162220e+02 -3.440804764432992e+02 -3.442317848369893e+02 -3.443831431114438e+02 - -3.445345513395477e+02 -3.446860093957458e+02 -3.448375171638715e+02 -3.449890747637513e+02 -3.451406823209921e+02 - -3.452923397483303e+02 -3.454440469383874e+02 -3.455958039161959e+02 -3.457476107544265e+02 -3.458994675838882e+02 - -3.460513744837874e+02 -3.462033312687789e+02 -3.463553377809081e+02 -3.465073942363314e+02 -3.466595008454457e+02 - -3.468116574214998e+02 -3.469638637732855e+02 -3.471161200889126e+02 -3.472684265676839e+02 -3.474207830743587e+02 - -3.475731894457752e+02 -3.477256457416318e+02 -3.478781520698926e+02 -3.480307085087305e+02 -3.481833150905516e+02 - -3.483359716944890e+02 -3.484886782275422e+02 -3.486414348614480e+02 -3.487942417546251e+02 -3.489470987474849e+02 - -3.491000056682386e+02 -3.492529626143035e+02 -3.494059697303613e+02 -3.495590270809477e+02 -3.497121346735108e+02 - -3.498652923672977e+02 -3.500185000578142e+02 -3.501717579338015e+02 -3.503250661735650e+02 -3.504784246204307e+02 - -3.506318331106053e+02 -3.507852917867942e+02 -3.509388008057230e+02 -3.510923600737020e+02 -3.512459694729739e+02 - -3.513996290399252e+02 -3.515533388531561e+02 -3.517070990059733e+02 -3.518609095547224e+02 -3.520147703931951e+02 - -3.521686814254426e+02 -3.523226427591028e+02 -3.524766545004363e+02 -3.526307165466042e+02 -3.527848288024159e+02 - -3.529389914123712e+02 -3.530932045168612e+02 -3.532474680001527e+02 -3.534017817301934e+02 -3.535561457657783e+02 - -3.537105602073667e+02 -3.538650251312291e+02 -3.540195405716707e+02 -3.541741064193253e+02 -3.543287225825957e+02 - -3.544833891846346e+02 -3.546381063473606e+02 -3.547928739730113e+02 -3.549476919508821e+02 -3.551025603381796e+02 - -3.552574792297605e+02 -3.554124487031720e+02 -3.555674687945711e+02 -3.557225393918643e+02 -3.558776604020463e+02 - -3.560328319567154e+02 -3.561880541805177e+02 -3.563433269456882e+02 -3.564986501330765e+02 -3.566540239103983e+02 - -3.568094484429710e+02 -3.569649235996524e+02 -3.571204492251743e+02 -3.572760253642205e+02 -3.574316521198430e+02 - -3.575873296286128e+02 -3.577430579645793e+02 -3.578988369181832e+02 -3.580546663122107e+02 -3.582105463824335e+02 - -3.583664773634632e+02 -3.585224590722860e+02 -3.586784912980774e+02 -3.588345741363943e+02 -3.589907077420278e+02 - -3.591468922003262e+02 -3.593031275347307e+02 -3.594594135904955e+02 -3.596157502414973e+02 -3.597721376542854e+02 - -3.599285759961583e+02 -3.600850651447366e+02 -3.602416049709182e+02 -3.603981956083848e+02 -3.605548371920680e+02 - -3.607115295991184e+02 -3.608682726958015e+02 -3.610250665626241e+02 -3.611819113190277e+02 -3.613388070259530e+02 - -3.614957536972620e+02 -3.616527512170044e+02 -3.618097994957786e+02 -3.619668986801910e+02 -3.621240489112448e+02 - -3.622812500715253e+02 -3.624385020268735e+02 -3.625958048345691e+02 -3.627531585959862e+02 -3.629105633974360e+02 - -3.630680192762735e+02 -3.632255260890885e+02 -3.633830837209757e+02 -3.635406923518125e+02 -3.636983521500620e+02 - -3.638560629437486e+02 -3.640138245654421e+02 -3.641716372063300e+02 -3.643295010634408e+02 -3.644874159985495e+02 - -3.646453818454157e+02 -3.648033986609884e+02 -3.649614665547653e+02 -3.651195856232492e+02 -3.652777559169987e+02 - -3.654359773157880e+02 -3.655942497193339e+02 -3.657525732779061e+02 -3.659109481367831e+02 -3.660693741707290e+02 - -3.662278512419212e+02 -3.663863794327037e+02 -3.665449588644519e+02 -3.667035895945005e+02 -3.668622716357800e+02 - -3.670210048876434e+02 -3.671797892763418e+02 -3.673386249492966e+02 -3.674975120447079e+02 -3.676564504427247e+02 - -3.678154400208724e+02 -3.679744809042344e+02 -3.681335732252156e+02 -3.682927168979475e+02 -3.684519118222935e+02 - -3.686111580593141e+02 -3.687704557033292e+02 -3.689298048205014e+02 -3.690892054329191e+02 -3.692486574145354e+02 - -3.694081606700869e+02 -3.695677153755793e+02 -3.697273216946131e+02 -3.698869794698993e+02 -3.700466885253786e+02 - -3.702064489307988e+02 -3.703662608017668e+02 -3.705261241915196e+02 -3.706860391012269e+02 -3.708460053861607e+02 - -3.710060229388483e+02 -3.711660919467376e+02 -3.713262125796104e+02 -3.714863846416646e+02 -3.716466079328989e+02 - -3.718068826020972e+02 -3.719672088201144e+02 -3.721275864973102e+02 -3.722880155098476e+02 -3.724484958575989e+02 - -3.726090275883345e+02 -3.727696108177087e+02 -3.729302456171431e+02 -3.730909318132427e+02 -3.732516692484294e+02 - -3.734124580732086e+02 -3.735732984485285e+02 -3.737341902690280e+02 -3.738951333966488e+02 -3.740561278288502e+02 - -3.742171736164895e+02 -3.743782708884933e+02 -3.745394197314636e+02 -3.747006199846337e+02 -3.748618715145197e+02 - -3.750231745441332e+02 -3.751845292967938e+02 -3.753459356405600e+02 -3.755073934398666e+02 -3.756689028999150e+02 - -3.758304642401999e+02 -3.759920773966298e+02 -3.761537422764503e+02 -3.763154589558405e+02 -3.764772275566993e+02 - -3.766390482148706e+02 -3.768009210261144e+02 -3.769628459119104e+02 -3.771248228066682e+02 -3.772868518707951e+02 - -3.774489332703654e+02 -3.776110669681248e+02 -3.777732529036114e+02 -3.779354911268638e+02 -3.780977817328078e+02 - -3.782601248854201e+02 -3.784225207068740e+02 -3.785849690830777e+02 -3.787474699201715e+02 -3.789100234414875e+02 - -3.790726298611719e+02 -3.792352890394379e+02 -3.793980008403989e+02 -3.795607654977005e+02 -3.797235832511840e+02 - -3.798864539959452e+02 -3.800493775732837e+02 -3.802123539540593e+02 -3.803753831256555e+02 -3.805384650119894e+02 - -3.807015994897982e+02 -3.808647863105625e+02 -3.810280252452890e+02 -3.811913162683451e+02 -3.813546593533040e+02 - -3.815180542672069e+02 -3.816815007606327e+02 -3.818449987248433e+02 -3.820085480876401e+02 -3.821721487823003e+02 - -3.823358007029311e+02 -3.824995035814819e+02 -3.826632571794644e+02 -3.828270615387958e+02 -3.829909166775790e+02 - -3.831548222382581e+02 -3.833187778788636e+02 -3.834827836954302e+02 -3.836468397830658e+02 -3.838109457951704e+02 - -3.839751013606573e+02 -3.841393064522010e+02 -3.843035610985582e+02 -3.844678652090594e+02 -3.846322186342679e+02 - -3.847966211091070e+02 -3.849610723938522e+02 -3.851255724658270e+02 -3.852901213276589e+02 -3.854547188661456e+02 - -3.856193651039130e+02 -3.857840607227301e+02 -3.859488064858506e+02 -3.861136028233281e+02 -3.862784501283425e+02 - -3.864433489797775e+02 -3.866083000045549e+02 -3.867733038360474e+02 -3.869383610689728e+02 -3.871034721369783e+02 - -3.872686374886131e+02 -3.874338577931016e+02 -3.875991337168530e+02 -3.877644656943423e+02 -3.879298541437876e+02 - -3.880952996503134e+02 -3.882608028487801e+02 -3.884263644060860e+02 -3.885919849359946e+02 -3.887576648076931e+02 - -3.889234044110585e+02 -3.890892044633024e+02 -3.892550656828005e+02 -3.894209884652491e+02 -3.895869732058733e+02 - -3.897530206206903e+02 -3.899191314265681e+02 -3.900853060229904e+02 -3.902515447813749e+02 -3.904178482782592e+02 - -3.905842171832736e+02 -3.907506523333024e+02 -3.909171542011455e+02 -3.910837216360146e+02 -3.912503530200719e+02 - -3.914170464908692e+02 -3.915838000867597e+02 -3.917506116939103e+02 -3.919174791997058e+02 -3.920844006485843e+02 - -3.922513741233318e+02 -3.924183977030698e+02 -3.925854694180132e+02 -3.927525871064144e+02 -3.929197486330507e+02 - -3.930869521607613e+02 -3.932541958513385e+02 -3.934214775643266e+02 -3.935887951493436e+02 -3.937561467185514e+02 - -3.939235303999417e+02 -3.940909441222876e+02 -3.942583857858931e+02 -3.944258533764072e+02 -3.945933449213566e+02 - -3.947608585304349e+02 -3.949283922804248e+02 -3.950959440342958e+02 -3.952635116636291e+02 -3.954310932882606e+02 - -3.955986870327357e+02 -3.957662907921835e+02 -3.959339024467546e+02 -3.961015200461023e+02 -3.962691416638499e+02 - 1.070000000000000e-01 1.069682658750319e-01 1.069365186252596e-01 1.069047582677665e-01 1.068729848196356e-01 - 1.068411982979503e-01 1.068093987197937e-01 1.067775861022493e-01 1.067457604624000e-01 1.067139218173294e-01 - 1.066820701841205e-01 1.066502055798566e-01 1.066183280216209e-01 1.065864375264968e-01 1.065545341115673e-01 - 1.065226177939159e-01 1.064906885906257e-01 1.064587465187799e-01 1.064267915954618e-01 1.063948238377547e-01 - 1.063628432627417e-01 1.063308498875062e-01 1.062988437291314e-01 1.062668248047005e-01 1.062347931312967e-01 - 1.062027487260033e-01 1.061706916059036e-01 1.061386217880807e-01 1.061065392896180e-01 1.060744441275985e-01 - 1.060423363191058e-01 1.060102158812228e-01 1.059780828310330e-01 1.059459371856195e-01 1.059137789620655e-01 - 1.058816081774544e-01 1.058494248488693e-01 1.058172289933936e-01 1.057850206281103e-01 1.057527997701029e-01 - 1.057205664364545e-01 1.056883206442483e-01 1.056560624105677e-01 1.056237917524958e-01 1.055915086871159e-01 - 1.055592132315112e-01 1.055269054027650e-01 1.054945852179606e-01 1.054622526941811e-01 1.054299078485097e-01 - 1.053975506980299e-01 1.053651812598247e-01 1.053327995509774e-01 1.053004055885713e-01 1.052679993896897e-01 - 1.052355809714157e-01 1.052031503508325e-01 1.051707075450236e-01 1.051382525710719e-01 1.051057854460610e-01 - 1.050733061870738e-01 1.050408148111938e-01 1.050083113355042e-01 1.049757957770881e-01 1.049432681530288e-01 - 1.049107284804097e-01 1.048781767763138e-01 1.048456130578245e-01 1.048130373420250e-01 1.047804496459986e-01 - 1.047478499868284e-01 1.047152383815977e-01 1.046826148473898e-01 1.046499794012880e-01 1.046173320603753e-01 - 1.045846728417352e-01 1.045520017624508e-01 1.045193188396054e-01 1.044866240902822e-01 1.044539175315645e-01 - 1.044211991805354e-01 1.043884690542783e-01 1.043557271698764e-01 1.043229735444130e-01 1.042902081949712e-01 - 1.042574311386343e-01 1.042246423924855e-01 1.041918419736082e-01 1.041590298990855e-01 1.041262061860007e-01 - 1.040933708514369e-01 1.040605239124776e-01 1.040276653862059e-01 1.039947952897050e-01 1.039619136400582e-01 - 1.039290204543487e-01 1.038961157496599e-01 1.038631995430748e-01 1.038302718516768e-01 1.037973326925491e-01 - 1.037643820827749e-01 1.037314200394375e-01 1.036984465796201e-01 1.036654617204061e-01 1.036324654788785e-01 - 1.035994578721206e-01 1.035664389172158e-01 1.035334086312472e-01 1.035003670312980e-01 1.034673141344516e-01 - 1.034342499577912e-01 1.034011745183999e-01 1.033680878333612e-01 1.033349899197580e-01 1.033018807946739e-01 - 1.032687604751918e-01 1.032356289783953e-01 1.032024863213673e-01 1.031693325211913e-01 1.031361675949504e-01 - 1.031029915597278e-01 1.030698044326069e-01 1.030366062306709e-01 1.030033969710030e-01 1.029701766706864e-01 - 1.029369453468044e-01 1.029037030164402e-01 1.028704496966771e-01 1.028371854045984e-01 1.028039101572872e-01 - 1.027706239718267e-01 1.027373268653004e-01 1.027040188547913e-01 1.026706999573827e-01 1.026373701901580e-01 - 1.026040295702002e-01 1.025706781145926e-01 1.025373158404186e-01 1.025039427647613e-01 1.024705589047040e-01 - 1.024371642773299e-01 1.024037588997223e-01 1.023703427889643e-01 1.023369159621393e-01 1.023034784363305e-01 - 1.022700302286212e-01 1.022365713560945e-01 1.022031018358337e-01 1.021696216849221e-01 1.021361309204428e-01 - 1.021026295594792e-01 1.020691176191145e-01 1.020355951164319e-01 1.020020620685147e-01 1.019685184924461e-01 - 1.019349644053093e-01 1.019013998241876e-01 1.018678247661643e-01 1.018342392483225e-01 1.018006432877456e-01 - 1.017670369015167e-01 1.017334201067191e-01 1.016997929204361e-01 1.016661553597508e-01 1.016325074417466e-01 - 1.015988491835066e-01 1.015651806021141e-01 1.015315017146524e-01 1.014978125382047e-01 1.014641130898543e-01 - 1.014304033866843e-01 1.013966834457780e-01 1.013629532842187e-01 1.013292129190896e-01 1.012954623674739e-01 - 1.012617016464549e-01 1.012279307731159e-01 1.011941497645400e-01 1.011603586378106e-01 1.011265574100107e-01 - 1.010927460982239e-01 1.010589247195331e-01 1.010250932910217e-01 1.009912518297729e-01 1.009574003528701e-01 - 1.009235388773963e-01 1.008896674204348e-01 1.008557859990690e-01 1.008218946303820e-01 1.007879933314571e-01 - 1.007540821193774e-01 1.007201610112264e-01 1.006862300240872e-01 1.006522891750429e-01 1.006183384811770e-01 - 1.005843779595726e-01 1.005504076273130e-01 1.005164275014813e-01 1.004824375991610e-01 1.004484379374351e-01 - 1.004144285333870e-01 1.003804094040999e-01 1.003463805666569e-01 1.003123420381414e-01 1.002782938356367e-01 - 1.002442359762259e-01 1.002101684769922e-01 1.001760913550190e-01 1.001420046273895e-01 1.001079083111869e-01 - 1.000738024234945e-01 1.000396869813954e-01 1.000055620019730e-01 9.997142750231042e-02 9.993728349949102e-02 - 9.990313001059796e-02 9.986896705271456e-02 9.983479464292398e-02 9.980061279830947e-02 9.976642153595434e-02 - 9.973222087294174e-02 9.969801082635499e-02 9.966379141327726e-02 9.962956265079187e-02 9.959532455598200e-02 - 9.956107714593093e-02 9.952682043772192e-02 9.949255444843813e-02 9.945827919516288e-02 9.942399469497937e-02 - 9.938970096497086e-02 9.935539802222057e-02 9.932108588381178e-02 9.928676456682770e-02 9.925243408835159e-02 - 9.921809446546671e-02 9.918374571525623e-02 9.914938785480347e-02 9.911502090119163e-02 9.908064487150398e-02 - 9.904625978282372e-02 9.901186565223413e-02 9.897746249681845e-02 9.894305033365988e-02 9.890862917984172e-02 - 9.887419905244718e-02 9.883975996855951e-02 9.880531194526194e-02 9.877085499963774e-02 9.873638914877009e-02 - 9.870191440974231e-02 9.866743079963761e-02 9.863293833553920e-02 9.859843703453038e-02 9.856392691369432e-02 - 9.852940799011436e-02 9.849488028087365e-02 9.846034380305550e-02 9.842579857374308e-02 9.839124461001970e-02 - 9.835668192896858e-02 9.832211054767293e-02 9.828753048321603e-02 9.825294175268109e-02 9.821834437315143e-02 - 9.818373836171017e-02 9.814912373544066e-02 9.811450051142606e-02 9.807986870674969e-02 9.804522833849474e-02 - 9.801057942374444e-02 9.797592197958208e-02 9.794125602309085e-02 9.790658157135405e-02 9.787189864145487e-02 - 9.783720725047659e-02 9.780250741550246e-02 9.776779915361565e-02 9.773308248189948e-02 9.769835741743713e-02 - 9.766362397731190e-02 9.762888217860698e-02 9.759413203840565e-02 9.755937357379113e-02 9.752460680184671e-02 - 9.748983173965557e-02 9.745504840430097e-02 9.742025681286617e-02 9.738545698243438e-02 9.735064893008888e-02 - 9.731583267291286e-02 9.728100822798963e-02 9.724617561240236e-02 9.721133484323437e-02 9.717648593756885e-02 - 9.714162891248904e-02 9.710676378507821e-02 9.707189057241956e-02 9.703700929159639e-02 9.700211995969188e-02 - 9.696722259378933e-02 9.693231721097194e-02 9.689740382832296e-02 9.686248246292567e-02 9.682755313186324e-02 - 9.679261585221899e-02 9.675767064107609e-02 9.672271751551782e-02 9.668775649262741e-02 9.665278758948814e-02 - 9.661781082318323e-02 9.658282621079586e-02 9.654783376940938e-02 9.651283351610694e-02 9.647782546797186e-02 - 9.644280964208730e-02 9.640778605553657e-02 9.637275472540287e-02 9.633771566876947e-02 9.630266890271960e-02 - 9.626761444433649e-02 9.623255231070338e-02 9.619748251890356e-02 9.616240508602021e-02 9.612732002913663e-02 - 9.609222736533599e-02 9.605712711170160e-02 9.602201928531666e-02 9.598690390326445e-02 9.595178098262819e-02 - 9.591665054049109e-02 9.588151259393644e-02 9.584636716004745e-02 9.581121425590743e-02 9.577605389859950e-02 - 9.574088610520702e-02 9.570571089281314e-02 9.567052827850117e-02 9.563533827935435e-02 9.560014091245586e-02 - 9.556493619488900e-02 9.552972414373699e-02 9.549450477608308e-02 9.545927810901049e-02 9.542404415960248e-02 - 9.538880294494230e-02 9.535355448211316e-02 9.531829878819836e-02 9.528303588028109e-02 9.524776577544461e-02 - 9.521248849077216e-02 9.517720404334697e-02 9.514191245025229e-02 9.510661372857139e-02 9.507130789538748e-02 - 9.503599496778380e-02 9.500067496284360e-02 9.496534789765015e-02 9.493001378928664e-02 9.489467265483635e-02 - 9.485932451138250e-02 9.482396937600834e-02 9.478860726579713e-02 9.475323819783207e-02 9.471786218919645e-02 - 9.468247925697347e-02 9.464708941824643e-02 9.461169269009850e-02 9.457628908961296e-02 9.454087863387305e-02 - 9.450546133996199e-02 9.447003722496307e-02 9.443460630595948e-02 9.439916860003450e-02 9.436372412427137e-02 - 9.432827289575330e-02 9.429281493156354e-02 9.425735024878537e-02 9.422187886450198e-02 9.418640079579664e-02 - 9.415091605975259e-02 9.411542467345307e-02 9.407992665398136e-02 9.404442201842063e-02 9.400891078385415e-02 - 9.397339296736518e-02 9.393786858603695e-02 9.390233765695270e-02 9.386680019719568e-02 9.383125622384911e-02 - 9.379570575399625e-02 9.376014880472036e-02 9.372458539310466e-02 9.368901553623238e-02 9.365343925118678e-02 - 9.361785655505112e-02 9.358226746490858e-02 9.354667199784246e-02 9.351107017093598e-02 9.347546200127239e-02 - 9.343984750593494e-02 9.340422670200685e-02 9.336859960657137e-02 9.333296623671174e-02 9.329732660951121e-02 - 9.326168074205300e-02 9.322602865142039e-02 9.319037035469660e-02 9.315470586896488e-02 9.311903521130845e-02 - 9.308335839881057e-02 9.304767544855448e-02 9.301198637762342e-02 9.297629120310064e-02 9.294058994206936e-02 - 9.290488261161287e-02 9.286916922881436e-02 9.283344981075708e-02 9.279772437452428e-02 9.276199293719922e-02 - 9.272625551586512e-02 9.269051212760523e-02 9.265476278950278e-02 9.261900751864104e-02 9.258324633210324e-02 - 9.254747924697261e-02 9.251170628033240e-02 9.247592744926583e-02 9.244014277085617e-02 9.240435226218666e-02 - 9.236855594034055e-02 9.233275382240104e-02 9.229694592545142e-02 9.226113226657491e-02 9.222531286285476e-02 - 9.218948773137420e-02 9.215365688921646e-02 9.211782035346482e-02 9.208197814120249e-02 9.204613026951274e-02 - 9.201027675547878e-02 9.197441761618388e-02 9.193855286871126e-02 9.190268253014419e-02 9.186680661756588e-02 - 9.183092514805957e-02 9.179503813870854e-02 9.175914560659600e-02 9.172324756880521e-02 9.168734404241941e-02 - 9.165143504452181e-02 9.161552059219569e-02 9.157960070252427e-02 9.154367539259080e-02 9.150774467947854e-02 - 9.147180858027071e-02 9.143586711205055e-02 9.139992029190132e-02 9.136396813690625e-02 9.132801066414858e-02 - 9.129204789071155e-02 9.125607983367841e-02 9.122010651013239e-02 9.118412793715676e-02 9.114814413183472e-02 - 9.111215511124955e-02 9.107616089248448e-02 9.104016149262276e-02 9.100415692874760e-02 9.096814721794225e-02 - 9.093213237728998e-02 9.089611242387401e-02 9.086008737477760e-02 9.082405724708396e-02 9.078802205787638e-02 - 9.075198182423806e-02 9.071593656325225e-02 9.067988629200220e-02 9.064383102757116e-02 9.060777078704237e-02 - 9.057170558749904e-02 9.053563544602444e-02 9.049956037970180e-02 9.046348040561442e-02 9.042739554084545e-02 - 9.039130580247817e-02 9.035521120759583e-02 9.031911177328168e-02 9.028300751661894e-02 9.024689845469086e-02 - 9.021078460458068e-02 9.017466598337168e-02 9.013854260814702e-02 9.010241449599002e-02 9.006628166398388e-02 - 9.003014412921184e-02 8.999400190875718e-02 8.995785501970310e-02 8.992170347913286e-02 8.988554730412972e-02 - 8.984938651177689e-02 8.981322111915761e-02 8.977705114335516e-02 8.974087660145275e-02 8.970469751053363e-02 - 8.966851388768103e-02 8.963232574997822e-02 8.959613311450842e-02 8.955993599835491e-02 8.952373441860086e-02 - 8.948752839232957e-02 8.945131793662427e-02 8.941510306856817e-02 8.937888380524456e-02 8.934266016373665e-02 - 8.930643216112769e-02 8.927019981450095e-02 8.923396314093963e-02 8.919772215752698e-02 8.916147688134625e-02 - 8.912522732948071e-02 8.908897351901354e-02 8.905271546702803e-02 8.901645319060740e-02 8.898018670683491e-02 - 8.894391603279379e-02 8.890764118556729e-02 8.887136218223864e-02 8.883507903989107e-02 8.879879177560786e-02 - 8.876250040647221e-02 8.872620494956741e-02 8.868990542197666e-02 8.865360184078323e-02 8.861729422307035e-02 - 8.858098258592126e-02 8.854466694641919e-02 8.850834732164740e-02 8.847202372868912e-02 8.843569618462761e-02 - 8.839936470654611e-02 8.836302931152785e-02 8.832669001665606e-02 8.829034683901400e-02 8.825399979568492e-02 - 8.821764890375206e-02 8.818129418029862e-02 8.814493564240788e-02 8.810857330716310e-02 8.807220719164749e-02 - 8.803583731294432e-02 8.799946368813677e-02 8.796308633430815e-02 8.792670526854167e-02 8.789032050792057e-02 - 8.785393206952812e-02 8.781753997044753e-02 8.778114422776205e-02 8.774474485855495e-02 8.770834187990943e-02 - 8.767193530890875e-02 8.763552516263615e-02 8.759911145817488e-02 8.756269421260816e-02 8.752627344301928e-02 - 8.748984916649143e-02 8.745342140010788e-02 8.741699016095185e-02 8.738055546610660e-02 8.734411733265539e-02 - 8.730767577768141e-02 8.727123081826793e-02 8.723478247149821e-02 8.719833075445547e-02 8.716187568422298e-02 - 8.712541727788393e-02 8.708895555252159e-02 8.705249052521923e-02 8.701602221306004e-02 8.697955063312730e-02 - 8.694307580250422e-02 8.690659773827408e-02 8.687011645752010e-02 8.683363197732555e-02 8.679714431477362e-02 - 8.676065348694757e-02 8.672415951093065e-02 8.668766240380611e-02 8.665116218265721e-02 8.661465886456714e-02 - 8.657815246661917e-02 8.654164300589655e-02 8.650513049948251e-02 8.646861496446030e-02 8.643209641791315e-02 - 8.639557487692430e-02 8.635905035857701e-02 8.632252287995451e-02 8.628599245814005e-02 8.624945911021686e-02 - 8.621292285326819e-02 8.617638370437727e-02 8.613984168062737e-02 8.610329679910171e-02 8.606674907688353e-02 - 8.603019853105608e-02 8.599364517870259e-02 8.595708903690633e-02 8.592053012275053e-02 8.588396845331842e-02 - 8.584740404569323e-02 8.581083691695822e-02 8.577426708419665e-02 8.573769456449173e-02 8.570111937492672e-02 - 8.566454153258486e-02 8.562796105454940e-02 8.559137795790356e-02 8.555479225973059e-02 8.551820397711374e-02 - 8.548161312713624e-02 8.544501972688134e-02 8.540842379343229e-02 8.537182534387232e-02 8.533522439528468e-02 - 8.529862096475260e-02 8.526201506935933e-02 8.522540672618811e-02 8.518879595232219e-02 8.515218276484479e-02 - 8.511556718083918e-02 8.507894921738858e-02 8.504232889157626e-02 8.500570622048544e-02 8.496908122119934e-02 - 8.493245391080124e-02 8.489582430637438e-02 8.485919242500198e-02 8.482255828376728e-02 8.478592189975355e-02 - 8.474928329004400e-02 8.471264247172190e-02 8.467599946187047e-02 8.463935427757298e-02 8.460270693591267e-02 - 8.456605745397273e-02 8.452940584883646e-02 8.449275213758706e-02 8.445609633730780e-02 8.441943846508193e-02 - 8.438277853799266e-02 8.434611657312326e-02 8.430945258755695e-02 8.427278659837699e-02 8.423611862266661e-02 - 8.419944867750905e-02 8.416277677998756e-02 8.412610294718537e-02 8.408942719618576e-02 8.405274954407191e-02 - 8.401607000792713e-02 8.397938860483460e-02 8.394270535187759e-02 8.390602026613936e-02 8.386933336470312e-02 - 8.383264466465212e-02 8.379595418306962e-02 8.375926193703884e-02 8.372256794364304e-02 8.368587221996546e-02 - 8.364917478308932e-02 8.361247565009787e-02 8.357577483807437e-02 8.353907236410206e-02 8.350236824526415e-02 - 8.346566249864391e-02 8.342895514132459e-02 8.339224619038943e-02 8.335553566292164e-02 8.331882357600448e-02 - 8.328210994672121e-02 8.324539479215504e-02 8.320867812938924e-02 8.317195997550704e-02 8.313524034759166e-02 - 8.309851926272641e-02 8.306179673799445e-02 8.302507279047908e-02 8.298834743726349e-02 8.295162069543097e-02 - 8.291489258206473e-02 8.287816311424805e-02 8.284143230906414e-02 8.280470018359624e-02 8.276796675492762e-02 - 8.273123204014149e-02 8.269449605632111e-02 8.265775882054972e-02 8.262102034991055e-02 8.258428066148686e-02 - 8.254753977236187e-02 8.251079769961885e-02 8.247405446034105e-02 8.243731007161166e-02 8.240056455051395e-02 - 8.236381791413117e-02 8.232707017954656e-02 8.229032136384334e-02 8.225357148410478e-02 8.221682055741411e-02 - 8.218006860085458e-02 8.214331563150944e-02 8.210656166646188e-02 8.206980672279519e-02 8.203305081759260e-02 - 8.199629396793737e-02 8.195953619091272e-02 8.192277750360188e-02 8.188601792308813e-02 8.184925746645468e-02 - 8.181249615078479e-02 8.177573399316168e-02 8.173897101066861e-02 8.170220722038883e-02 8.166544263940556e-02 - 8.162867728480205e-02 8.159191117366156e-02 8.155514432306732e-02 8.151837675010254e-02 8.148160847185050e-02 - 8.144483950539445e-02 8.140806986781760e-02 8.137129957620320e-02 8.133452864763450e-02 8.129775709919475e-02 - 8.126098494796720e-02 8.122421221103504e-02 8.118743890548155e-02 8.115066504838998e-02 8.111389065684355e-02 - 8.107711574792552e-02 8.104034033871912e-02 8.100356444630759e-02 8.096678808777417e-02 8.093001128020215e-02 - 8.089323404067471e-02 8.085645638627510e-02 8.081967833408658e-02 8.078289990119239e-02 8.074612110467576e-02 - 8.070934196161997e-02 8.067256248910820e-02 8.063578270422375e-02 8.059900262404983e-02 8.056222226566968e-02 - 8.052544164616657e-02 8.048866078262369e-02 8.045187969212433e-02 8.041509839175172e-02 8.037831689858911e-02 - 8.034153522971973e-02 8.030475340222681e-02 8.026797143319361e-02 8.023118933970336e-02 8.019440713883932e-02 - 8.015762484768471e-02 8.012084248332278e-02 8.008406006283678e-02 8.004727760330994e-02 8.001049512182555e-02 - 7.997371263546676e-02 7.993693016131688e-02 7.990014771645915e-02 7.986336531797676e-02 7.982658298295300e-02 - 7.978980072847111e-02 7.975301857161432e-02 7.971623652946590e-02 7.967945461910902e-02 7.964267285762699e-02 - 7.960589126210302e-02 7.956910984962039e-02 7.953232863726228e-02 7.949554764211197e-02 7.945876688125271e-02 - 7.942198637176773e-02 7.938520613074028e-02 7.934842617525358e-02 7.931164652239087e-02 7.927486718923542e-02 - 7.923808819287045e-02 7.920130955037924e-02 7.916453127884499e-02 7.912775339535094e-02 7.909097591698037e-02 - 7.905419886081648e-02 7.901742224394255e-02 7.898064608344180e-02 7.894387039639746e-02 7.890709519989279e-02 - 7.887032051101103e-02 7.883354634683543e-02 7.879677272444922e-02 7.875999966093565e-02 7.872322717337794e-02 - 7.868645527885937e-02 7.864968399446313e-02 7.861291333727252e-02 7.857614332437074e-02 7.853937397284104e-02 - 7.850260529976670e-02 7.846583732223091e-02 7.842907005731693e-02 7.839230352210801e-02 7.835553773368738e-02 - 7.831877270913830e-02 7.828200846554398e-02 7.824524501998768e-02 7.820848238955266e-02 7.817172059132216e-02 - 7.813495964237939e-02 7.809819955980761e-02 7.806144036069006e-02 7.802468206210998e-02 7.798792468115062e-02 - 7.795116823489523e-02 7.791441274042703e-02 7.787765821482928e-02 7.784090467518520e-02 7.780415213857807e-02 - 7.776740062209107e-02 7.773065014280750e-02 7.769390071781057e-02 7.765715236418354e-02 7.762040509900967e-02 - 7.758365893937215e-02 7.754691390235426e-02 7.751017000503922e-02 7.747342726451029e-02 7.743668569785070e-02 - 7.739994532214370e-02 7.736320615447252e-02 7.732646821192042e-02 7.728973151157063e-02 7.725299607050642e-02 - 7.721626190581099e-02 7.717952903456758e-02 7.714279747385946e-02 7.710606724076986e-02 7.706933835238206e-02 - 7.703261082577922e-02 7.699588467804465e-02 7.695915992626157e-02 7.692243658751323e-02 7.688571467888285e-02 - 7.684899421745368e-02 7.681227522030898e-02 7.677555770453198e-02 7.673884168720593e-02 7.670212718541405e-02 - 7.666541421623961e-02 7.662870279676583e-02 7.659199294407595e-02 7.655528467525324e-02 7.651857800738091e-02 - 7.648187295754222e-02 7.644516954282041e-02 7.640846778029871e-02 7.637176768706039e-02 7.633506928018867e-02 - 7.629837257676678e-02 7.626167759387799e-02 7.622498434860552e-02 7.618829285803264e-02 7.615160313924255e-02 - 7.611491520931853e-02 7.607822908534380e-02 7.604154478440163e-02 7.600486232357523e-02 7.596818171994783e-02 - 7.593150299060271e-02 7.589482615262309e-02 7.585815122309225e-02 7.582147821909338e-02 7.578480715770973e-02 - 7.574813805602458e-02 7.571147093112113e-02 7.567480580008265e-02 7.563814267999236e-02 7.560148158793352e-02 - 7.556482254098935e-02 7.552816555624312e-02 7.549151065077807e-02 7.545485784167741e-02 7.541820714602442e-02 - 7.538155858090231e-02 7.534491216339434e-02 7.530826791058375e-02 7.527162583955378e-02 7.523498596738766e-02 - 7.519834831116866e-02 7.516171288797999e-02 7.512507971490495e-02 7.508844880902671e-02 7.505182018742854e-02 - 7.501519386719367e-02 7.497856986540538e-02 7.494194819914687e-02 7.490532888550142e-02 7.486871194155223e-02 - 7.483209738438257e-02 7.479548523107570e-02 7.475887549871482e-02 7.472226820438319e-02 7.468566336516404e-02 - 7.464906099814063e-02 7.461246112039621e-02 7.457586374901400e-02 7.453926890107723e-02 7.450267659366919e-02 - 7.446608684387307e-02 7.442949966877216e-02 7.439291508544965e-02 7.435633311098883e-02 7.431975376247291e-02 - 7.428317705698513e-02 7.424660301160878e-02 7.421003164342704e-02 7.417346296952319e-02 7.413689700698045e-02 - 7.410033377288210e-02 7.406377328431132e-02 7.402721555835140e-02 7.399066061208556e-02 7.395410846259706e-02 - 7.391755912696915e-02 7.388101262228504e-02 7.384446896562798e-02 7.380792817408122e-02 7.377139026472800e-02 - 7.373485525465158e-02 7.369832316093516e-02 7.366179400066203e-02 7.362526779091538e-02 7.358874454877849e-02 - 7.355222429133459e-02 7.351570703566694e-02 7.347919279885876e-02 7.344268159799329e-02 7.340617345015378e-02 - 7.336966837242348e-02 7.333316638188561e-02 7.329666749562345e-02 7.326017173072021e-02 7.322367910425913e-02 - 7.318718963332346e-02 7.315070333499644e-02 7.311422022636133e-02 7.307774032450136e-02 7.304126364649975e-02 - 7.300479020943977e-02 7.296832003040465e-02 7.293185312647765e-02 7.289538951474199e-02 7.285892921228092e-02 - 7.282247223617767e-02 7.278601860351550e-02 7.274956833137766e-02 7.271312143684736e-02 7.267667793700786e-02 - 7.264023784894239e-02 7.260380118973422e-02 7.256736797646657e-02 7.253093822622268e-02 7.249451195608582e-02 - 7.245808918313920e-02 7.242166992446607e-02 7.238525419714967e-02 7.234884201827325e-02 7.231243340492007e-02 - 7.227602837417331e-02 7.223962694311627e-02 7.220322912883217e-02 7.216683494840427e-02 7.213044441891579e-02 - 7.209405755744998e-02 7.205767438109009e-02 7.202129490691934e-02 7.198491915202099e-02 7.194854713347830e-02 - 7.191217886837446e-02 7.187581437379276e-02 7.183945366681642e-02 7.180309676452867e-02 7.176674368401278e-02 - 7.173039444235199e-02 7.169404905662952e-02 7.165770754392863e-02 7.162136992133256e-02 7.158503620592453e-02 - 7.154870641478780e-02 7.151238056500563e-02 7.147605867366123e-02 7.143974075783785e-02 7.140342683461876e-02 - 7.136711692108716e-02 7.133081103432631e-02 7.129450919141947e-02 7.125821140944985e-02 7.122191770550071e-02 - 7.118562809665530e-02 7.114934259999683e-02 7.111306123260858e-02 7.107678401157377e-02 7.104051095397565e-02 - 7.100424207689746e-02 7.096797739742244e-02 7.093171693263382e-02 7.089546069961486e-02 7.085920871544882e-02 - 7.082296099721888e-02 7.078671756200834e-02 7.075047842690044e-02 7.071424360897838e-02 7.067801312532543e-02 - 7.064178699302483e-02 7.060556522915983e-02 7.056934785081363e-02 7.053313487506954e-02 7.049692631901075e-02 - 7.046072219972052e-02 7.042452253428211e-02 7.038832733977872e-02 7.035213663329361e-02 7.031595043191004e-02 - 7.027976875271123e-02 7.024359161278042e-02 7.020741902920087e-02 7.017125101905583e-02 7.013508759942851e-02 - 7.009892878740216e-02 7.006277460006004e-02 7.002662505448538e-02 6.999048016776144e-02 6.995433995697144e-02 - 6.991820443919861e-02 6.988207363152622e-02 6.984594755103750e-02 6.980982621481568e-02 6.977370963994402e-02 - 6.973759784350578e-02 6.970149084258416e-02 6.966538865426242e-02 6.962929129562380e-02 6.959319878375156e-02 - 6.955711113572893e-02 6.952102836863913e-02 6.948495049956542e-02 6.944887754559105e-02 6.941280952379927e-02 - 6.937674645127329e-02 6.934068834509637e-02 6.930463522235174e-02 6.926858710012268e-02 6.923254399549238e-02 - 6.919650592554411e-02 6.916047290736112e-02 6.912444495802665e-02 6.908842209462392e-02 6.905240433423616e-02 - 6.901639169394666e-02 6.898038419083864e-02 6.894438184199533e-02 6.890838466449999e-02 6.887239267543585e-02 - 6.883640589188617e-02 6.880042433093415e-02 6.876444800966307e-02 6.872847694515619e-02 6.869251115449670e-02 - 6.865655065476786e-02 6.862059546305292e-02 6.858464559643512e-02 6.854870107199770e-02 6.851276190682393e-02 - 6.847682811799699e-02 6.844089972260017e-02 6.840497673771671e-02 6.836905918042983e-02 6.833314706782279e-02 - 6.829724041697882e-02 6.826133924498116e-02 6.822544356891308e-02 6.818955340585779e-02 6.815366877289854e-02 - 6.811778968711857e-02 6.808191616560114e-02 6.804604822542948e-02 6.801018588368681e-02 6.797432915745642e-02 - 6.793847806382150e-02 6.790263261986533e-02 6.786679284267115e-02 6.783095874932217e-02 6.779513035690166e-02 - 6.775930768249286e-02 6.772349074317900e-02 6.768767955604332e-02 6.765187413816909e-02 6.761607450663952e-02 - 6.758028067853786e-02 6.754449267094738e-02 6.750871050095128e-02 6.747293418563281e-02 6.743716374207524e-02 - 6.740139918736179e-02 6.736564053857570e-02 6.732988781280023e-02 6.729414102711860e-02 6.725840019861405e-02 - 6.722266534436987e-02 6.718693648146923e-02 6.715121362699542e-02 6.711549679803168e-02 6.707978601166123e-02 - 6.704408128496732e-02 6.700838263503321e-02 6.697269007894212e-02 6.693700363377729e-02 6.690132331662198e-02 - 6.686564914455943e-02 6.682998113467287e-02 6.679431930404556e-02 6.675866366976070e-02 6.672301424890158e-02 - 6.668737105855144e-02 6.665173411579348e-02 6.661610343771096e-02 6.658047904138716e-02 6.654486094390526e-02 - 6.650924916234854e-02 6.647364371380024e-02 6.643804461534360e-02 6.640245188406185e-02 6.636686553703826e-02 - 6.633128559135604e-02 6.629571206409844e-02 6.626014497234871e-02 6.622458433319009e-02 6.618903016370581e-02 - 6.615348248097914e-02 6.611794130209329e-02 6.608240664413152e-02 6.604687852417708e-02 6.601135695931318e-02 - 6.597584196662311e-02 6.594033356319007e-02 6.590483176609731e-02 6.586933659242808e-02 6.583384805926563e-02 - 6.579836618369318e-02 6.576289098279399e-02 6.572742247365128e-02 6.569196067334833e-02 6.565650559896835e-02 - 6.562105726759460e-02 6.558561569631030e-02 6.555018090219872e-02 6.551475290234308e-02 6.547933171382664e-02 - 6.544391735373260e-02 6.540850983914427e-02 6.537310918714484e-02 6.533771541481756e-02 6.530232853924568e-02 - 6.526694857751246e-02 6.523157554670111e-02 6.519620946389489e-02 6.516085034617702e-02 6.512549821063078e-02 - 6.509015307433939e-02 6.505481495438609e-02 6.501948386785412e-02 6.498415983182672e-02 6.494884286338716e-02 - 6.491353297961865e-02 6.487823019760443e-02 6.484293453442776e-02 6.480764600717190e-02 6.477236463292005e-02 - 6.473709042875546e-02 6.470182341176141e-02 6.466656359902111e-02 6.463131100761778e-02 6.459606565463470e-02 - 6.456082755715510e-02 6.452559673226224e-02 6.449037319703932e-02 6.445515696856961e-02 6.441994806393636e-02 - 6.438474650022280e-02 6.434955229451217e-02 6.431436546388770e-02 6.427918602543267e-02 6.424401399623028e-02 - 6.420884939336380e-02 6.417369223391646e-02 6.413854253497149e-02 6.410340031361215e-02 6.406826558692170e-02 - 6.403313837198334e-02 6.399801868588033e-02 6.396290654569593e-02 6.392780196851335e-02 6.389270497141585e-02 - 6.385761557148667e-02 6.382253378580906e-02 6.378745963146625e-02 6.375239312554147e-02 6.371733428511799e-02 - 6.368228312727903e-02 6.364723966910786e-02 6.361220392768768e-02 6.357717592010177e-02 6.354215566343337e-02 - 6.350714317476568e-02 6.347213847118198e-02 6.343714156976551e-02 6.340215248759951e-02 6.336717124176720e-02 - 6.333219784935186e-02 6.329723232743668e-02 6.326227469310496e-02 6.322732496343991e-02 6.319238315552476e-02 - 6.315744928644278e-02 6.312252337327721e-02 6.308760543311126e-02 6.305269548302821e-02 6.301779354011129e-02 - 6.298289962144372e-02 6.294801374410877e-02 6.291313592518968e-02 6.287826618176968e-02 6.284340453093201e-02 - 6.280855098975993e-02 6.277370557533665e-02 6.273886830474544e-02 6.270403919506955e-02 6.266921826339220e-02 - 6.263440552679662e-02 6.259960100236607e-02 6.256480470718381e-02 6.253001665833306e-02 6.249523687289707e-02 - 6.246046536795907e-02 6.242570216060229e-02 6.239094726791002e-02 6.235620070696547e-02 6.232146249485187e-02 - 6.228673264865250e-02 6.225201118545055e-02 6.221729812232930e-02 6.218259347637199e-02 6.214789726466187e-02 - 6.211320950428215e-02 6.207853021231610e-02 6.204385940584693e-02 6.200919710195792e-02 6.197454331773228e-02 - 6.193989807025328e-02 6.190526137660414e-02 6.187063325386812e-02 6.183601371912845e-02 6.180140278946837e-02 - 6.176680048197113e-02 6.173220681371997e-02 6.169762180179813e-02 6.166304546328885e-02 6.162847781527538e-02 - 6.159391887484095e-02 6.155936865906880e-02 6.152482718504219e-02 6.149029446984435e-02 6.145577053055853e-02 - 6.142125538426796e-02 6.138674904805590e-02 6.135225153900557e-02 6.131776287420022e-02 6.128328307072310e-02 - 6.124881214565744e-02 6.121435011608650e-02 6.117989699909349e-02 6.114545281176169e-02 6.111101757117431e-02 - 6.107659129441460e-02 6.104217399856583e-02 6.100776570071121e-02 6.097336641793399e-02 6.093897616731742e-02 - 6.090459496594473e-02 6.087022283089916e-02 6.083585977926396e-02 6.080150582812238e-02 6.076716099455765e-02 - 6.073282529565302e-02 6.069849874849172e-02 6.066418137015700e-02 6.062987317773211e-02 6.059557418830027e-02 - 6.056128441894475e-02 6.052700388674876e-02 6.049273260879557e-02 6.045847060216841e-02 6.042421788395052e-02 - 6.038997447122514e-02 6.035574038107552e-02 6.032151563058490e-02 6.028730023683652e-02 6.025309421691362e-02 - 6.021889758789946e-02 6.018471036687725e-02 6.015053257093025e-02 6.011636421714171e-02 6.008220532259485e-02 - 6.004805590437293e-02 6.001391597955918e-02 5.997978556523686e-02 5.994566467848918e-02 5.991155333639943e-02 - 5.987745155605081e-02 5.984335935452657e-02 5.980927674890997e-02 5.977520375628423e-02 5.974114039373261e-02 - 5.970708667833834e-02 5.967304262718466e-02 5.963900825735483e-02 5.960498358593206e-02 5.957096862999962e-02 - 5.953696340664075e-02 5.950296793293869e-02 5.946898222597666e-02 5.943500630283793e-02 5.940104018060574e-02 - 5.936708387636331e-02 5.933313740719390e-02 5.929920079018074e-02 5.926527404240709e-02 5.923135718095618e-02 - 5.919745022291125e-02 5.916355318535554e-02 5.912966608537230e-02 5.909578894004478e-02 5.906192176645620e-02 - 5.902806458168981e-02 5.899421740282887e-02 5.896038024695659e-02 5.892655313115624e-02 5.889273607251104e-02 - 5.885892908810425e-02 5.882513219501910e-02 5.879134541033884e-02 5.875756875114671e-02 5.872380223452595e-02 - 5.869004587755981e-02 5.865629969733151e-02 5.862256371092430e-02 5.858883793542144e-02 5.855512238790617e-02 - 5.852141708546170e-02 5.848772204517131e-02 5.845403728411822e-02 5.842036281938568e-02 5.838669866805692e-02 - 5.835304484721521e-02 5.831940137394376e-02 5.828576826532585e-02 5.825214553844467e-02 5.821853321038349e-02 - 5.818493129822556e-02 5.815133981905412e-02 5.811775878995240e-02 5.808418822800365e-02 5.805062815029110e-02 - 5.801707857389801e-02 5.798353951590760e-02 5.795001099340315e-02 5.791649302346786e-02 5.788298562318499e-02 - 5.784948880963779e-02 5.781600259990949e-02 5.778252701108333e-02 5.774906206024256e-02 5.771560776447041e-02 - 5.768216414085015e-02 5.764873120646499e-02 5.761530897839819e-02 5.758189747373298e-02 5.754849670955262e-02 - 5.751510670294033e-02 5.748172747097936e-02 5.744835903075296e-02 5.741500139934437e-02 5.738165459383683e-02 - 5.734831863131357e-02 5.731499352885785e-02 5.728167930355290e-02 5.724837597248197e-02 5.721508355272830e-02 - 5.718180206137512e-02 5.714853151550570e-02 5.711527193220325e-02 5.708202332855103e-02 5.704878572163228e-02 - 5.701555912853024e-02 5.698234356632816e-02 5.694913905210926e-02 5.691594560295680e-02 5.688276323595402e-02 - 5.684959196818416e-02 5.681643181673045e-02 5.678328279867616e-02 5.675014493110452e-02 5.671701823109875e-02 - 5.668390271574211e-02 5.665079840211785e-02 5.661770530730920e-02 5.658462344839940e-02 5.655155284247171e-02 - 5.651849350660935e-02 5.648544545789557e-02 5.645240871341362e-02 5.641938329024674e-02 5.638636920547815e-02 - 5.635336647619112e-02 5.632037511946889e-02 5.628739515239468e-02 5.625442659205174e-02 5.622146945552333e-02 - 5.618852375989267e-02 5.615558952224302e-02 5.612266675965761e-02 5.608975548921968e-02 5.605685572801247e-02 - 5.602396749311925e-02 5.599109080162322e-02 5.595822567060765e-02 5.592537211715578e-02 5.589253015835084e-02 - 5.585969981127608e-02 5.582688109301474e-02 5.579407402065006e-02 5.576127861126528e-02 5.572849488194366e-02 - 5.569572284976842e-02 5.566296253182280e-02 5.563021394519008e-02 5.559747710695345e-02 5.556475203419618e-02 - 5.553203874400151e-02 5.549933725345269e-02 5.546664757963294e-02 5.543396973962551e-02 5.540130375051366e-02 - 5.536864962938060e-02 5.533600739330961e-02 5.530337705938389e-02 5.527075864468672e-02 5.523815216630132e-02 - 5.520555764131094e-02 5.517297508679882e-02 5.514040451984819e-02 5.510784595754230e-02 5.507529941696442e-02 - 5.504276491519774e-02 5.501024246932555e-02 5.497773209643106e-02 5.494523381359754e-02 5.491274763790820e-02 - 5.488027358644629e-02 5.484781167629507e-02 5.481536192453777e-02 5.478292434825763e-02 5.475049896453790e-02 - 5.471808579046181e-02 5.468568484311261e-02 5.465329613957354e-02 5.462091969692785e-02 5.458855553225877e-02 - 5.455620366264955e-02 5.452386410518342e-02 5.449153687694363e-02 5.445922199501343e-02 5.442691947647604e-02 - 5.439462933841474e-02 5.436235159791274e-02 5.433008627205328e-02 5.429783337791962e-02 5.426559293259499e-02 - 5.423336495316264e-02 5.420114945670580e-02 5.416894646030773e-02 5.413675598105167e-02 5.410457803602083e-02 - 5.407241264229849e-02 5.404025981696787e-02 5.400811957711223e-02 5.397599193981480e-02 5.394387692215881e-02 - 5.391177454122753e-02 5.387968481410418e-02 5.384760775787202e-02 5.381554338961427e-02 5.378349172641418e-02 - 5.375145278535501e-02 5.371942658351998e-02 5.368741313799234e-02 5.365541246585533e-02 5.362342458419220e-02 - 5.359144951008617e-02 5.355948726062051e-02 5.352753785287844e-02 5.349560130394321e-02 5.346367763089808e-02 - 5.343176685082626e-02 5.339986898081100e-02 5.336798403793557e-02 5.333611203928318e-02 5.330425300193709e-02 - 5.327240694298052e-02 5.324057387949673e-02 5.320875382856897e-02 5.317694680728046e-02 5.314515283271445e-02 - 5.311337192195419e-02 5.308160409208292e-02 5.304984936018387e-02 5.301810774334029e-02 5.298637925860694e-02 - 5.295466392210174e-02 5.292296174881576e-02 5.289127275367324e-02 5.285959695159842e-02 5.282793435751552e-02 - 5.279628498634878e-02 5.276464885302243e-02 5.273302597246069e-02 5.270141635958780e-02 5.266982002932800e-02 - 5.263823699660550e-02 5.260666727634453e-02 5.257511088346935e-02 5.254356783290417e-02 5.251203813957321e-02 - 5.248052181840073e-02 5.244901888431094e-02 5.241752935222807e-02 5.238605323707637e-02 5.235459055378005e-02 - 5.232314131726334e-02 5.229170554245050e-02 5.226028324426572e-02 5.222887443763326e-02 5.219747913747734e-02 - 5.216609735872220e-02 5.213472911629205e-02 5.210337442511115e-02 5.207203330010370e-02 5.204070575619395e-02 - 5.200939180830615e-02 5.197809147136448e-02 5.194680476029321e-02 5.191553169001656e-02 5.188427227545876e-02 - 5.185302653154403e-02 5.182179447319664e-02 5.179057611534077e-02 5.175937147290068e-02 5.172818056080060e-02 - 5.169700339396475e-02 5.166583998731737e-02 5.163469035578269e-02 5.160355451428494e-02 5.157243247774834e-02 - 5.154132426109714e-02 5.151022987925555e-02 5.147914934714782e-02 5.144808267969817e-02 5.141702989183084e-02 - 5.138599099847005e-02 5.135496601454004e-02 5.132395495496503e-02 5.129295783466926e-02 5.126197466857695e-02 - 5.123100547161235e-02 5.120005025869967e-02 5.116910904476317e-02 5.113818184472704e-02 5.110726867351554e-02 - 5.107636954605289e-02 5.104548447726333e-02 5.101461348207109e-02 5.098375657540039e-02 5.095291377217546e-02 - 5.092208508732055e-02 5.089127053575987e-02 5.086047013241765e-02 5.082968389221815e-02 5.079891183008556e-02 - 5.076815396094415e-02 5.073741029971812e-02 5.070668086133172e-02 5.067596566070917e-02 5.064526471277472e-02 - 5.061457803245257e-02 5.058390563466697e-02 5.055324753434216e-02 5.052260374640234e-02 5.049197428577178e-02 - 5.046135916737467e-02 5.043075840613528e-02 5.040017201697781e-02 5.036960001482652e-02 5.033904241460560e-02 - 5.030849923123931e-02 5.027797047965189e-02 5.024745617476754e-02 5.021695633151052e-02 5.018647096480505e-02 - 5.015600008957535e-02 5.012554372074565e-02 5.009510187324022e-02 5.006467456198324e-02 5.003426180189897e-02 - 5.000386360791163e-02 4.997347999494546e-02 4.994311097792468e-02 4.991275657177353e-02 4.988241679141623e-02 - 4.985209165177702e-02 4.982178116778014e-02 4.979148535434980e-02 4.976120422641023e-02 4.973093779888569e-02 - 4.970068608670038e-02 4.967044910477855e-02 4.964022686804442e-02 4.961001939142222e-02 4.957982668983620e-02 - 4.954964877821057e-02 4.951948567146956e-02 4.948933738453741e-02 4.945920393233836e-02 4.942908532979662e-02 - 4.939898159183643e-02 4.936889273338203e-02 4.933881876935763e-02 4.930875971468749e-02 4.927871558429582e-02 - 4.924868639310685e-02 4.921867215604481e-02 4.918867288803395e-02 4.915868860399848e-02 4.912871931886263e-02 - 4.909876504755066e-02 4.906882580498677e-02 4.903890160609520e-02 4.900899246580018e-02 4.897909839902595e-02 - 4.894921942069672e-02 4.891935554573676e-02 4.888950678907025e-02 4.885967316562146e-02 4.882985469031461e-02 - 4.880005137807392e-02 4.877026324382362e-02 4.874049030248797e-02 4.871073256899117e-02 4.868099005825745e-02 - 4.865126278521108e-02 4.862155076477624e-02 4.859185401187720e-02 4.856217254143816e-02 4.853250636838338e-02 - 4.850285550763707e-02 4.847321997412347e-02 4.844359978276680e-02 4.841399494849130e-02 4.838440548622121e-02 - 4.835483141088075e-02 4.832527273739414e-02 4.829572948068564e-02 4.826620165567946e-02 4.823668927729983e-02 - 4.820719236047098e-02 4.817771092011715e-02 4.814824497116257e-02 4.811879452853147e-02 4.808935960714807e-02 - 4.805994022193662e-02 4.803053638782134e-02 4.800114811972645e-02 4.797177543257621e-02 4.794241834129482e-02 - 4.791307686080653e-02 4.788375100603556e-02 4.785444079190614e-02 4.782514623334252e-02 4.779586734526891e-02 - 4.776660414260955e-02 4.773735664028868e-02 4.770812485323050e-02 4.767890879635927e-02 4.764970848459921e-02 - 4.762052393287456e-02 4.759135515610954e-02 4.756220216922838e-02 4.753306498715533e-02 4.750394362481459e-02 - 4.747483809713041e-02 4.744574841902701e-02 4.741667460542864e-02 4.738761667125952e-02 4.735857463144388e-02 - 4.732954850090595e-02 4.730053829456995e-02 4.727154402736015e-02 4.724256571420073e-02 4.721360337001596e-02 - 4.718465700973005e-02 4.715572664826723e-02 4.712681230055175e-02 4.709791398150782e-02 4.706903170605968e-02 - 4.704016548913156e-02 4.701131534564769e-02 4.698248129053231e-02 4.695366333870963e-02 4.692486150510391e-02 - 4.689607580463934e-02 4.686730625224018e-02 4.683855286283068e-02 4.680981565133503e-02 4.678109463267748e-02 - 4.675238982178226e-02 4.672370123357359e-02 4.669502888297572e-02 4.666637278491287e-02 4.663773295430927e-02 - 4.660910940608916e-02 4.658050215517676e-02 4.655191121649629e-02 4.652333660497202e-02 4.649477833552815e-02 - 4.646623642308891e-02 4.643771088257853e-02 4.640920172892127e-02 4.638070897704132e-02 4.635223264186294e-02 - 4.632377273831036e-02 4.629532928130779e-02 4.626690228577947e-02 4.623849176664965e-02 4.621009773884253e-02 - 4.618172021728237e-02 4.615335921689338e-02 4.612501475259979e-02 4.609668683932586e-02 4.606837549199577e-02 - 4.604008072553380e-02 4.601180255486416e-02 4.598354099491107e-02 4.595529606059879e-02 4.592706776685152e-02 - 4.589885612859351e-02 4.587066116074899e-02 4.584248287824218e-02 4.581432129599732e-02 4.578617642893863e-02 - 4.575804829199037e-02 4.572993690007673e-02 4.570184226812196e-02 4.567376441105030e-02 4.564570334378597e-02 - 4.561765908125320e-02 4.558963163837623e-02 4.556162103007928e-02 4.553362727128659e-02 4.550565037692238e-02 - 4.547769036191089e-02 4.544974724117636e-02 4.542182102964300e-02 4.539391174223504e-02 4.536601939387674e-02 - 4.533814399949231e-02 4.531028557400597e-02 4.528244413234197e-02 4.525461968942453e-02 4.522681226017790e-02 - 4.519902185952628e-02 4.517124850239393e-02 4.514349220370505e-02 4.511575297838390e-02 4.508803084135470e-02 - 4.506032580754168e-02 4.503263789186907e-02 4.500496710926111e-02 4.497731347464200e-02 4.494967700293602e-02 - 4.492205770906736e-02 4.489445560796028e-02 4.486687071453899e-02 4.483930304372771e-02 4.481175261045071e-02 - 4.478421942963219e-02 4.475670351619640e-02 4.472920488506756e-02 4.470172355116988e-02 4.467425952942764e-02 - 4.464681283476502e-02 4.461938348210628e-02 4.459197148637566e-02 4.456457686249737e-02 4.453719962539564e-02 - 4.450983978999472e-02 4.448249737121881e-02 4.445517238399217e-02 4.442786484323902e-02 4.440057476388359e-02 - 4.437330216085012e-02 4.434604704906282e-02 4.431880944344595e-02 4.429158935892372e-02 4.426438681042035e-02 - 4.423720181286010e-02 4.421003438116718e-02 4.418288453026584e-02 4.415575227508029e-02 4.412863763053477e-02 - 4.410154061155352e-02 4.407446123306075e-02 4.404739950998071e-02 4.402035545723762e-02 4.399332908975571e-02 - 4.396632042245923e-02 4.393932947027238e-02 4.391235624811941e-02 4.388540077092456e-02 4.385846305361203e-02 - 4.383154311110608e-02 4.380464095833093e-02 4.377775661021081e-02 4.375089008166996e-02 4.372404138763258e-02 - 4.369721054302294e-02 4.367039756276526e-02 4.364360246178376e-02 4.361682525500267e-02 4.359006595734623e-02 - 4.356332458373868e-02 4.353660114910423e-02 4.350989566836711e-02 4.348320815645158e-02 4.345653862828184e-02 - 4.342988709878214e-02 4.340325358287669e-02 4.337663809548974e-02 4.335004065154552e-02 4.332346126596825e-02 - 4.329689995368217e-02 4.327035672961151e-02 4.324383160868049e-02 4.321732460581335e-02 4.319083573593433e-02 - 4.316436501396765e-02 4.313791245483754e-02 4.311147807346823e-02 4.308506188478395e-02 4.305866390370894e-02 - 4.303228414516742e-02 4.300592262408363e-02 4.297957935538180e-02 4.295325435398616e-02 4.292694763482094e-02 - 4.290065921281035e-02 4.287438910287866e-02 4.284813731995007e-02 4.282190387894883e-02 4.279568879479917e-02 - 4.276949208242530e-02 4.274331375675147e-02 4.271715383270192e-02 4.269101232520085e-02 4.266488924917250e-02 - 4.263878461954113e-02 4.261269845123093e-02 4.258663075916616e-02 4.256058155827103e-02 4.253455086346980e-02 - 4.250853868968667e-02 4.248254505184589e-02 4.245656996487169e-02 4.243061344368828e-02 4.240467550321991e-02 - 4.237875615839081e-02 4.235285542412521e-02 4.232697331534734e-02 4.230110984698143e-02 4.227526503395169e-02 - 4.224943889118240e-02 4.222363143359775e-02 4.219784267612198e-02 4.217207263367933e-02 4.214632132119402e-02 - 4.212058875359029e-02 4.209487494579236e-02 4.206917991272448e-02 4.204350366931086e-02 4.201784623047573e-02 - 4.199220761114335e-02 4.196658782623791e-02 4.194098689068368e-02 4.191540481940486e-02 4.188984162732570e-02 - 4.186429732937041e-02 4.183877194046326e-02 4.181326547552844e-02 4.178777794949019e-02 4.176230937727277e-02 - 4.173685977380037e-02 4.171142915399725e-02 4.168601753278764e-02 4.166062492509574e-02 4.163525134584580e-02 - 4.160989680996207e-02 4.158456133236876e-02 4.155924492799010e-02 4.153394761175032e-02 4.150866939857367e-02 - 4.148341030338436e-02 4.145817034110662e-02 4.143294952666470e-02 4.140774787498282e-02 4.138256540098521e-02 - 4.135740211959609e-02 4.133225804573972e-02 4.130713319434030e-02 4.128202758032209e-02 4.125694121860929e-02 - 4.123187412412615e-02 4.120682631179690e-02 4.118179779654577e-02 4.115678859329698e-02 4.113179871697477e-02 - 4.110682818250337e-02 4.108187700480702e-02 4.105694519880994e-02 4.103203277943635e-02 4.100713976161051e-02 - 4.098226616025662e-02 4.095741199029894e-02 4.093257726666168e-02 4.090776200426908e-02 4.088296621804536e-02 - 4.085818992291476e-02 4.083343313380151e-02 4.080869586562985e-02 4.078397813332400e-02 4.075927995180818e-02 - 4.073460133600665e-02 4.070994230084361e-02 4.068530286124331e-02 4.066068303212998e-02 4.063608282842784e-02 - 4.061150226506113e-02 4.058694135695408e-02 4.056240011903092e-02 4.053787856621588e-02 4.051337671343318e-02 - 4.048889457560707e-02 4.046443216766178e-02 4.043998950452153e-02 4.041556660111054e-02 4.039116347235307e-02 - 4.036678013317334e-02 4.034241659849556e-02 4.031807288324400e-02 4.029374900234285e-02 4.026944497071637e-02 - 4.024516080328877e-02 4.022089651498431e-02 4.019665212072718e-02 4.017242763544165e-02 4.014822307405193e-02 - 4.012403845148225e-02 4.009987378265685e-02 4.007572908249996e-02 4.005160436593580e-02 4.002749964788860e-02 - 4.000341494328261e-02 3.997935026862905e-02 3.995530565020248e-02 3.993128111798760e-02 3.990727670197625e-02 - 3.988329243216027e-02 3.985932833853151e-02 3.983538445108181e-02 3.981146079980302e-02 3.978755741468697e-02 - 3.976367432572553e-02 3.973981156291052e-02 3.971596915623379e-02 3.969214713568721e-02 3.966834553126258e-02 - 3.964456437295178e-02 3.962080369074663e-02 3.959706351463900e-02 3.957334387462071e-02 3.954964480068362e-02 - 3.952596632281957e-02 3.950230847102040e-02 3.947867127527795e-02 3.945505476558409e-02 3.943145897193063e-02 - 3.940788392430945e-02 3.938432965271236e-02 3.936079618713123e-02 3.933728355755788e-02 3.931379179398419e-02 - 3.929032092640197e-02 3.926687098480308e-02 3.924344199917935e-02 3.922003399952266e-02 3.919664701582481e-02 - 3.917328107807769e-02 3.914993621627309e-02 3.912661246040292e-02 3.910330984045896e-02 3.908002838643308e-02 - 3.905676812831715e-02 3.903352909610298e-02 3.901031131978242e-02 3.898711482934733e-02 3.896393965478955e-02 - 3.894078582610091e-02 3.891765337327326e-02 3.889454232629846e-02 3.887145271516833e-02 3.884838456987474e-02 - 3.882533792040951e-02 3.880231279676451e-02 3.877930922893155e-02 3.875632724690252e-02 3.873336688066923e-02 - 3.871042816022353e-02 3.868751111555727e-02 3.866461577666229e-02 3.864174217353044e-02 3.861889033615356e-02 - 3.859606029452349e-02 3.857325207863209e-02 3.855046571847119e-02 3.852770124403264e-02 3.850495868530828e-02 - 3.848223807228996e-02 3.845953943496952e-02 3.843686280333881e-02 3.841420820738967e-02 3.839157567711395e-02 - 3.836896524250349e-02 3.834637693355013e-02 3.832381078024572e-02 3.830126681258209e-02 3.827874506055112e-02 - 3.825624555414461e-02 3.823376832335444e-02 3.821131339817244e-02 3.818888080859045e-02 3.816647058460032e-02 - 3.814408275619389e-02 3.812171735336303e-02 3.809937440609954e-02 3.807705394439530e-02 3.805475599824214e-02 - 3.803248059763190e-02 3.801022777255643e-02 3.798799755300758e-02 3.796578996897719e-02 3.794360505045710e-02 - 3.792144282743916e-02 3.789930332991522e-02 3.787718658787710e-02 3.785509263131667e-02 3.783302149022577e-02 - 3.781097319459624e-02 3.778894777441992e-02 3.776694525968866e-02 3.774496568039430e-02 3.772300906652870e-02 - 3.770107544808367e-02 3.767916485505110e-02 3.765727731742280e-02 3.763541286519063e-02 3.761357152834642e-02 - 3.759175333688204e-02 3.756995832078931e-02 3.754818651006007e-02 3.752643793468620e-02 3.750471262465951e-02 - 3.748301060997186e-02 3.746133192061509e-02 3.743967658658105e-02 3.741804463786157e-02 3.739643610444850e-02 - 3.737485101633371e-02 3.735328940350900e-02 3.733175129596625e-02 3.731023672369729e-02 3.728874571669397e-02 - 3.726727830494812e-02 3.724583451845160e-02 3.722441438719625e-02 3.720301794117391e-02 3.718164521037644e-02 - 3.716029622479566e-02 3.713897101442343e-02 3.711766960925159e-02 3.709639203927199e-02 3.707513833447647e-02 - 3.705390852485687e-02 3.703270264040504e-02 3.701152071111283e-02 3.699036276697207e-02 3.696922883797462e-02 - 3.694811895411231e-02 3.692703314537699e-02 3.690597144176051e-02 3.688493387325471e-02 3.686392046985143e-02 - 3.684293126154253e-02 3.682196627831984e-02 3.680102555017520e-02 3.678010910710046e-02 3.675921697908748e-02 - 3.673834919612807e-02 3.671750578821411e-02 3.669668678533742e-02 3.667589221748987e-02 3.665512211466327e-02 - 3.663437650684950e-02 3.661365542404037e-02 3.659295889622776e-02 3.657228695340348e-02 3.655163962555941e-02 - 3.653101694268735e-02 3.651041893477919e-02 3.648984563182674e-02 3.646929706382188e-02 3.644877326075641e-02 - 3.642827425262220e-02 3.640780006941109e-02 3.638735074111494e-02 3.636692629772557e-02 3.634652676923484e-02 - 3.632615218563458e-02 3.630580257691665e-02 3.628547797307289e-02 3.626517840409513e-02 3.624490389997524e-02 - 3.622465449070505e-02 3.620443020627639e-02 3.618423107668113e-02 3.616405713191111e-02 3.614390840195816e-02 - 3.612378491681414e-02 3.610368670647089e-02 3.608361380092025e-02 3.606356623015406e-02 3.604354402416417e-02 - 3.602354721294244e-02 3.600357582648069e-02 3.598362989477077e-02 3.596370944780453e-02 3.594381451557382e-02 - 3.592394512807047e-02 3.590410131528634e-02 3.588428310721326e-02 3.586449053384308e-02 3.584472362516764e-02 - 3.582498241117880e-02 3.580526692186839e-02 3.578557718722826e-02 3.576591323725024e-02 3.574627510192620e-02 - 3.572666281124797e-02 3.570707639520740e-02 3.568751588379632e-02 3.566798130700659e-02 3.564847269483005e-02 - 3.562899007725854e-02 3.560953348428391e-02 3.559010294589800e-02 3.557069849209266e-02 3.555132015285974e-02 - 3.553196795819106e-02 3.551264193807849e-02 3.549334212251386e-02 3.547406854148901e-02 3.545482122499580e-02 - 3.543560020302607e-02 3.541640550557167e-02 3.539723716262443e-02 3.537809520417620e-02 3.535897966021882e-02 - 3.533989056074414e-02 3.532082793574401e-02 3.530179181521027e-02 3.528278222913475e-02 3.526379920750932e-02 - 3.524484278032580e-02 3.522591297757607e-02 3.520700982925193e-02 3.518813336534525e-02 3.516928361584787e-02 - 3.515046061075164e-02 3.513166438004838e-02 3.511289495372998e-02 3.509415236178823e-02 3.507543663421501e-02 - 3.505674780100216e-02 3.503808589214152e-02 3.501945093762493e-02 3.500084296744425e-02 3.498226201159130e-02 - 3.496370810005795e-02 3.494518126283602e-02 3.492668152991737e-02 3.490820893129385e-02 3.488976349695729e-02 - 3.487134525689954e-02 3.485295424111245e-02 3.483459047958785e-02 3.481625400231760e-02 3.479794483929353e-02 - 3.477966302050750e-02 3.476140857595134e-02 3.474318153561690e-02 3.472498192949603e-02 3.470680978758058e-02 - 3.468866513986237e-02 3.467054801633326e-02 3.465245844698509e-02 3.463439646180971e-02 3.461636209079897e-02 - 3.459835536394470e-02 3.458037631123875e-02 3.456242496267296e-02 3.454450134823919e-02 3.452660549792927e-02 - 3.450873744173504e-02 3.449089720964835e-02 3.447308483166107e-02 3.445530033776500e-02 3.443754375795202e-02 - 3.441981512221395e-02 3.440211446054266e-02 3.438444180292995e-02 3.436679717936773e-02 3.434918061984778e-02 - 3.433159215436199e-02 3.431403181290218e-02 3.429649962546020e-02 3.427899562202789e-02 3.426151983259711e-02 - 3.424407228715969e-02 3.422665301570748e-02 3.420926204823232e-02 3.419189941472606e-02 3.417456514518054e-02 - 3.415725926958761e-02 3.413998181793911e-02 3.412273282022688e-02 3.410551230644278e-02 3.408832030657864e-02 - 3.407115685062630e-02 3.405402196857762e-02 3.403691569042444e-02 3.401983804615860e-02 3.400278906577194e-02 - 3.398576877925633e-02 3.396877721660357e-02 3.395181440780554e-02 3.393488038285408e-02 3.391797517174103e-02 - 3.390109880445821e-02 3.388425131099751e-02 3.386743272135074e-02 3.385064306550976e-02 3.383388237346641e-02 - 3.381715067521254e-02 3.380044800073998e-02 3.378377438004059e-02 3.376712984310620e-02 3.375051441992868e-02 - 3.373392814049984e-02 3.371737103481155e-02 3.370084313285564e-02 3.368434446462396e-02 3.366787506010836e-02 - 3.365143466564878e-02 3.363501887624541e-02 3.361862209777612e-02 3.360224500875989e-02 3.358588827878357e-02 - 3.356955147090725e-02 3.355323458431880e-02 3.353693766165054e-02 3.352066065506343e-02 3.350440352193865e-02 - 3.348816624199871e-02 3.347194881659273e-02 3.345575121630599e-02 3.343957340404732e-02 3.342341535303144e-02 - 3.340727704441876e-02 3.339115845430404e-02 3.337505954322636e-02 3.335898029706669e-02 3.334292070921326e-02 - 3.332688074834195e-02 3.331086037969291e-02 3.329485957414917e-02 3.327887831864652e-02 3.326291658484171e-02 - 3.324697433542376e-02 3.323105156623186e-02 3.321514826023114e-02 3.319926437839098e-02 3.318339989412266e-02 - 3.316755478754796e-02 3.315172903929034e-02 3.313592261295018e-02 3.312013548124740e-02 3.310436764153749e-02 - 3.308861906981869e-02 3.307288973180764e-02 3.305717959801665e-02 3.304148865245999e-02 3.302581687574703e-02 - 3.301016422142487e-02 3.299453067800234e-02 3.297891624809741e-02 3.296332088425066e-02 3.294774455685354e-02 - 3.293218725810471e-02 3.291664896225673e-02 3.290112963401578e-02 3.288562923879117e-02 3.287014777263271e-02 - 3.285468522369568e-02 3.283924155670871e-02 3.282381674440858e-02 3.280841076589561e-02 3.279302360243119e-02 - 3.277765521941309e-02 3.276230558706894e-02 3.274697470113698e-02 3.273166254219040e-02 3.271636907936865e-02 - 3.270109428250347e-02 3.268583813280482e-02 3.267060061307020e-02 3.265538168459424e-02 3.264018132671115e-02 - 3.262499953449712e-02 3.260983628233858e-02 3.259469153939318e-02 3.257956527754512e-02 3.256445748091834e-02 - 3.254936812698490e-02 3.253429718174427e-02 3.251924463148387e-02 3.250421046229880e-02 3.248919464552218e-02 - 3.247419715298105e-02 3.245921796288541e-02 3.244425706251369e-02 3.242931441545717e-02 3.241438998652282e-02 - 3.239948378141620e-02 3.238459577882156e-02 3.236972593925531e-02 3.235487424670715e-02 3.234004068301546e-02 - 3.232522522137563e-02 3.231042782696456e-02 3.229564848261764e-02 3.228088718700101e-02 3.226614390644563e-02 - 3.225141860917057e-02 3.223671128042128e-02 3.222202190260593e-02 3.220735044835789e-02 3.219269687989033e-02 - 3.217806118663362e-02 3.216344336205739e-02 3.214884337811092e-02 3.213426120193776e-02 3.211969680852602e-02 - 3.210515019435922e-02 3.209062132655478e-02 3.207611016186721e-02 3.206161670288540e-02 3.204714093648681e-02 - 3.203268282961075e-02 3.201824236239234e-02 3.200381951210604e-02 3.198941424912934e-02 3.197502654604618e-02 - 3.196065638811887e-02 3.194630377248257e-02 3.193196866763873e-02 3.191765104079724e-02 3.190335087680102e-02 - 3.188906815766901e-02 3.187480285784819e-02 3.186055494296534e-02 3.184632440204734e-02 3.183211122836238e-02 - 3.181791538780577e-02 3.180373685568510e-02 3.178957561657719e-02 3.177543165075891e-02 3.176130492904844e-02 - 3.174719542079285e-02 3.173310312097031e-02 3.171902801589959e-02 3.170497007535993e-02 3.169092927256592e-02 - 3.167690558660036e-02 3.166289900092451e-02 3.164890948767075e-02 3.163493702375719e-02 3.162098160094597e-02 - 3.160704320149037e-02 3.159312179836957e-02 3.157921735868882e-02 3.156532987076624e-02 3.155145932224658e-02 - 3.153760566663864e-02 3.152376889172848e-02 3.150994900180672e-02 3.149614595827410e-02 3.148235973399625e-02 - 3.146859031868535e-02 3.145483769408502e-02 3.144110182886523e-02 3.142738268687409e-02 3.141368026942635e-02 - 3.139999456778463e-02 3.138632554513814e-02 3.137267318073906e-02 3.135903745883740e-02 3.134541835839263e-02 - 3.133181584694165e-02 3.131822989974722e-02 3.130466051752389e-02 3.129110768114365e-02 3.127757136018487e-02 - 3.126405153214003e-02 3.125054818119363e-02 3.123706128835145e-02 3.122359081277034e-02 3.121013674152311e-02 - 3.119669908223311e-02 3.118327780512727e-02 3.116987287740892e-02 3.115648427590923e-02 3.114311198755302e-02 - 3.112975599208620e-02 3.111641625878769e-02 3.110309278026453e-02 3.108978554429882e-02 3.107649451605467e-02 - 3.106321967573116e-02 3.104996101093369e-02 3.103671850522385e-02 3.102349212552239e-02 3.101028184118182e-02 - 3.099708765215899e-02 3.098390954305432e-02 3.097074748653887e-02 3.095760146577434e-02 3.094447145973171e-02 - 3.093135744175442e-02 3.091825938652267e-02 3.090517727892404e-02 3.089211111199125e-02 3.087906086415095e-02 - 3.086602651045607e-02 3.085300802884278e-02 3.084000540267990e-02 3.082701861024971e-02 3.081404762072755e-02 - 3.080109242772720e-02 3.078815302348911e-02 3.077522937271052e-02 3.076232145526043e-02 3.074942925853004e-02 - 3.073655275969265e-02 3.072369193358731e-02 3.071084675893487e-02 3.069801722815575e-02 3.068520332655950e-02 - 3.067240502926292e-02 3.065962230727411e-02 3.064685514336771e-02 3.063410352936318e-02 3.062136743092317e-02 - 3.060864682743443e-02 3.059594172387181e-02 3.058325209340110e-02 3.057057790484611e-02 3.055791914232513e-02 - 3.054527578866520e-02 3.053264782274670e-02 3.052003521936738e-02 3.050743796632342e-02 3.049485605420712e-02 - 3.048228945948342e-02 3.046973815764381e-02 3.045720212753895e-02 3.044468135532321e-02 3.043217582076147e-02 - 3.041968549967531e-02 3.040721038082923e-02 3.039475044749309e-02 3.038230567464306e-02 3.036987604544383e-02 - 3.035746154526919e-02 3.034506215632694e-02 3.033267784558463e-02 3.032030859116679e-02 3.030795439680851e-02 - 3.029561524020229e-02 3.028329109283977e-02 3.027098194217670e-02 3.025868776986960e-02 3.024640855125834e-02 - 3.023414425922958e-02 3.022189488753165e-02 3.020966043396606e-02 3.019744085927903e-02 3.018523614254973e-02 - 3.017304628070488e-02 3.016087124712451e-02 3.014871101490015e-02 3.013656556629268e-02 3.012443489643160e-02 - 3.011231899192166e-02 3.010021782348693e-02 3.008813136953290e-02 3.007605961443153e-02 3.006400254477032e-02 - 3.005196013216448e-02 3.003993235442936e-02 3.002791921520012e-02 3.001592069144608e-02 3.000393675083135e-02 - 2.999196738372897e-02 2.998001257673401e-02 2.996807230790781e-02 2.995614654679549e-02 2.994423528130847e-02 - 2.993233851118915e-02 2.992045620999083e-02 2.990858835120550e-02 2.989673491731453e-02 2.988489589805536e-02 - 2.987307127537464e-02 2.986126102011340e-02 2.984946511909828e-02 2.983768356331996e-02 2.982591633787642e-02 - 2.981416341477938e-02 2.980242477098497e-02 2.979070040412034e-02 2.977899028736241e-02 2.976729439085326e-02 - 2.975561271768286e-02 2.974394525020974e-02 2.973229195799546e-02 2.972065283153817e-02 2.970902785474345e-02 - 2.969741700233630e-02 2.968582025251779e-02 2.967423759388233e-02 2.966266902120933e-02 2.965111450751603e-02 - 2.963957402972690e-02 2.962804757853395e-02 2.961653513685447e-02 2.960503668212408e-02 2.959355219023237e-02 - 2.958208165129883e-02 2.957062505724755e-02 2.955918238857859e-02 2.954775362079399e-02 2.953633873283637e-02 - 2.952493771681483e-02 2.951355054848872e-02 2.950217720053436e-02 2.949081767862442e-02 2.947947196700992e-02 - 2.946814003034778e-02 2.945682185755054e-02 2.944551743582863e-02 2.943422674341014e-02 2.942294975870480e-02 - 2.941168646812421e-02 2.940043686618776e-02 2.938920093147064e-02 2.937797864134186e-02 2.936676998172867e-02 - 2.935557493479196e-02 2.934439347979633e-02 2.933322559583284e-02 2.932207127373048e-02 2.931093050463312e-02 - 2.929980326285230e-02 2.928868953142686e-02 2.927758929945683e-02 2.926650254799867e-02 2.925542925398767e-02 - 2.924436939550082e-02 2.923332296415483e-02 2.922228995044700e-02 2.921127033783603e-02 2.920026410004271e-02 - 2.918927122033416e-02 2.917829169471517e-02 2.916732549176795e-02 2.915637258777840e-02 2.914543298801943e-02 - 2.913450667577263e-02 2.912359362430894e-02 2.911269381274288e-02 2.910180723305731e-02 2.909093387402745e-02 - 2.908007369930849e-02 2.906922669822638e-02 2.905839287303405e-02 2.904757219714476e-02 2.903676465199738e-02 - 2.902597022808873e-02 2.901518890157972e-02 2.900442065055892e-02 2.899366546087253e-02 2.898292332562971e-02 - 2.897219423070421e-02 2.896147815085827e-02 2.895077507160809e-02 2.894008498122344e-02 2.892940786384609e-02 - 2.891874369517828e-02 2.890809245634708e-02 2.889745414621765e-02 2.888682874769054e-02 2.887621623583590e-02 - 2.886561659425123e-02 2.885502981116054e-02 2.884445587294774e-02 2.883389475319686e-02 2.882334643970105e-02 - 2.881281093000496e-02 2.880228819979298e-02 2.879177822929067e-02 2.878128100842524e-02 2.877079651898801e-02 - 2.876032473884395e-02 2.874986564740009e-02 2.873941924390505e-02 2.872898552052601e-02 2.871856444638324e-02 - 2.870815600507148e-02 2.869776018641480e-02 2.868737697516582e-02 2.867700634591397e-02 2.866664827916806e-02 - 2.865630278319325e-02 2.864596983917359e-02 2.863564941328856e-02 2.862534149829953e-02 2.861504608429113e-02 - 2.860476315234840e-02 2.859449267740666e-02 2.858423464566411e-02 2.857398905422620e-02 2.856375588402207e-02 - 2.855353511594846e-02 2.854332673804624e-02 2.853313073796621e-02 2.852294709429606e-02 2.851277577543872e-02 - 2.850261678440491e-02 2.849247012219593e-02 2.848233575178603e-02 2.847221365657614e-02 2.846210383116990e-02 - 2.845200625935100e-02 2.844192091752946e-02 2.843184778466237e-02 2.842178686053369e-02 2.841173813547823e-02 - 2.840170158739025e-02 2.839167719418843e-02 2.838166494245600e-02 2.837166482484053e-02 2.836167681707307e-02 - 2.835170090137019e-02 2.834173707461769e-02 2.833178532393912e-02 2.832184563033358e-02 2.831191797277370e-02 - 2.830200233825938e-02 2.829209871310940e-02 2.828220707523810e-02 2.827232741579271e-02 2.826245972853687e-02 - 2.825260399229306e-02 2.824276019064247e-02 2.823292831178126e-02 2.822310834132040e-02 2.821330025651807e-02 - 2.820350403438503e-02 2.819371967866794e-02 2.818394718049788e-02 2.817418651237375e-02 2.816443766090156e-02 - 2.815470061416237e-02 2.814497535504664e-02 2.813526186206681e-02 2.812556012131105e-02 2.811587013236315e-02 - 2.810619188120791e-02 2.809652534562629e-02 2.808687050311100e-02 2.807722734684383e-02 2.806759586949595e-02 - 2.805797603975531e-02 2.804836784541272e-02 2.803877128655403e-02 2.802918634812817e-02 2.801961300908425e-02 - 2.801005124931340e-02 2.800050106254358e-02 2.799096243185147e-02 2.798143533065562e-02 2.797191976200169e-02 - 2.796241571829330e-02 2.795292316767612e-02 2.794344209750147e-02 2.793397250080147e-02 2.792451436474921e-02 - 2.791506766429417e-02 2.790563238187514e-02 2.789620852426368e-02 2.788679607109519e-02 2.787739499448651e-02 - 2.786800529276515e-02 2.785862695250820e-02 2.784925995023579e-02 2.783990426851568e-02 2.783055990112446e-02 - 2.782122684523413e-02 2.781190507602721e-02 2.780259457625915e-02 2.779329533996523e-02 2.778400734510273e-02 - 2.777473057425486e-02 2.776546502209671e-02 2.775621067523501e-02 2.774696751775778e-02 2.773773553529171e-02 - 2.772851471226555e-02 2.771930503638066e-02 2.771010650156085e-02 2.770091908311444e-02 2.769174275675288e-02 - 2.768257752750487e-02 2.767342338343482e-02 2.766428030170250e-02 2.765514827509389e-02 2.764602728937508e-02 - 2.763691732224667e-02 2.762781835629091e-02 2.761873038318760e-02 2.760965340016332e-02 2.760058738918467e-02 - 2.759153233095657e-02 2.758248821223181e-02 2.757345502668101e-02 2.756443275844788e-02 2.755542137569210e-02 - 2.754642087861812e-02 2.753743126859248e-02 2.752845251726651e-02 2.751948461051369e-02 2.751052754088128e-02 - 2.750158129051000e-02 2.749264584112846e-02 2.748372117908398e-02 2.747480730190011e-02 2.746590419839729e-02 - 2.745701184777745e-02 2.744813023052759e-02 2.743925933666562e-02 2.743039916197098e-02 2.742154968107790e-02 - 2.741271087850060e-02 2.740388275814067e-02 2.739506530469222e-02 2.738625849608251e-02 2.737746231424592e-02 - 2.736867675514432e-02 2.735990180809817e-02 2.735113743878892e-02 2.734238364845174e-02 2.733364044336462e-02 - 2.732490778587926e-02 2.731618566204183e-02 2.730747407386686e-02 2.729877300249025e-02 2.729008242908668e-02 - 2.728140234030172e-02 2.727273272900814e-02 2.726407358354408e-02 2.725542488697956e-02 2.724678662927163e-02 - 2.723815879907967e-02 2.722954137935252e-02 2.722093434732608e-02 2.721233769152850e-02 2.720375141931018e-02 - 2.719517551218435e-02 2.718660994644712e-02 2.717805471481514e-02 2.716950980584153e-02 2.716097520393317e-02 - 2.715245089289530e-02 2.714393686286031e-02 2.713543310581999e-02 2.712693960497614e-02 2.711845634782483e-02 - 2.710998332519429e-02 2.710152051958041e-02 2.709306791441093e-02 2.708462549834906e-02 2.707619326918369e-02 - 2.706777121480425e-02 2.705935930907671e-02 2.705095754483260e-02 2.704256591454058e-02 2.703418439795306e-02 - 2.702581298145425e-02 2.701745165546447e-02 2.700910041075726e-02 2.700075923746808e-02 2.699242812272907e-02 - 2.698410704764140e-02 2.697579599978723e-02 2.696749496984126e-02 2.695920394125775e-02 2.695092290187428e-02 - 2.694265184396634e-02 2.693439075649869e-02 2.692613962541774e-02 2.691789843589869e-02 2.690966718080280e-02 - 2.690144584430361e-02 2.689323440003169e-02 2.688503284907665e-02 2.687684119009101e-02 2.686865940030225e-02 - 2.686048746353486e-02 2.685232536881714e-02 2.684417310662326e-02 2.683603066151065e-02 2.682789801897943e-02 - 2.681977517552054e-02 2.681166212021913e-02 2.680355883616239e-02 2.679546530889016e-02 2.678738152752996e-02 - 2.677930748200765e-02 2.677124315479004e-02 2.676318853591112e-02 2.675514362231527e-02 2.674710839396962e-02 - 2.673908283555094e-02 2.673106694339361e-02 2.672306070150655e-02 2.671506409151823e-02 2.670707710108217e-02 - 2.669909972943648e-02 2.669113197027321e-02 2.668317379682501e-02 2.667522519875436e-02 2.666728617090520e-02 - 2.665935669311371e-02 2.665143675159882e-02 2.664352634032146e-02 2.663562545659268e-02 2.662773408361464e-02 - 2.661985219717407e-02 2.661197979572226e-02 2.660411687169956e-02 2.659626340488144e-02 2.658841937631547e-02 - 2.658058477937751e-02 2.657275961893512e-02 2.656494387358596e-02 2.655713752275513e-02 2.654934056348008e-02 - 2.654155298332925e-02 2.653377476657220e-02 2.652600590198415e-02 2.651824638075199e-02 2.651049619255404e-02 - 2.650275532091429e-02 2.649502375487615e-02 2.648730148802552e-02 2.647958851263073e-02 2.647188480891689e-02 - 2.646419035368700e-02 2.645650515131691e-02 2.644882919484906e-02 2.644116246069965e-02 2.643350494181170e-02 - 2.642585663084689e-02 2.641821751242615e-02 2.641058756892747e-02 2.640296679007395e-02 2.639535517653221e-02 - 2.638775271175803e-02 2.638015937698240e-02 2.637257516664822e-02 2.636500007332271e-02 2.635743408373907e-02 - 2.634987717633525e-02 2.634232934391862e-02 2.633479058525924e-02 2.632726088227431e-02 2.631974022390311e-02 - 2.631222860499385e-02 2.630472600717760e-02 2.629723241433261e-02 2.628974781674581e-02 2.628227220621198e-02 - 2.627480557677242e-02 2.626734792215179e-02 2.625989921852152e-02 2.625245945041883e-02 2.624502862403611e-02 - 2.623760671958282e-02 2.623019371536040e-02 2.622278961237779e-02 2.621539440295659e-02 2.620800807254220e-02 - 2.620063060674004e-02 2.619326199404739e-02 2.618590222410475e-02 2.617855128386046e-02 2.617120916522779e-02 - 2.616387586230346e-02 2.615655135861502e-02 2.614923564213544e-02 2.614192870720641e-02 2.613463054125929e-02 - 2.612734112755428e-02 2.612006044964381e-02 2.611278850871195e-02 2.610552530050819e-02 2.609827080222275e-02 - 2.609102500359168e-02 2.608378789925431e-02 2.607655947900249e-02 2.606933972466179e-02 2.606212861946312e-02 - 2.605492616097670e-02 2.604773234503024e-02 2.604054716124884e-02 2.603337058950191e-02 2.602620261873257e-02 - 2.601904324395194e-02 2.601189244598317e-02 2.600475021758196e-02 2.599761656283118e-02 2.599049145836681e-02 - 2.598337488632347e-02 2.597626684662969e-02 2.596916733159564e-02 2.596207632537513e-02 2.595499380688753e-02 - 2.594791977426907e-02 2.594085422650568e-02 2.593379714560815e-02 2.592674851872178e-02 2.591970833661526e-02 - 2.591267658830654e-02 2.590565326173340e-02 2.589863834578747e-02 2.589163183398775e-02 2.588463371701131e-02 - 2.587764398252935e-02 2.587066261956569e-02 2.586368961749470e-02 2.585672496539723e-02 2.584976865103265e-02 - 2.584282066471713e-02 2.583588100000093e-02 2.582894964599770e-02 2.582202659070586e-02 2.581511182332461e-02 - 2.580820533343631e-02 2.580130710958863e-02 2.579441713875388e-02 2.578753541579036e-02 2.578066193633965e-02 - 2.577379668579866e-02 2.576693964640701e-02 2.576009080523955e-02 2.575325016689414e-02 2.574641771694009e-02 - 2.573959342940173e-02 2.573277731100565e-02 2.572596935753856e-02 2.571916954588383e-02 2.571237786264848e-02 - 2.570559430241213e-02 2.569881886299849e-02 2.569205152414907e-02 2.568529227185872e-02 2.567854111122693e-02 - 2.567179802594942e-02 2.566506299732867e-02 2.565833602386073e-02 2.565161709921462e-02 2.564490620914589e-02 - 2.563820333139000e-02 2.563150846268354e-02 2.562482160754986e-02 2.561814274902439e-02 2.561147187258114e-02 - 2.560480896924013e-02 2.559815402833877e-02 2.559150703774291e-02 2.558486798572520e-02 2.557823686789989e-02 - 2.557161367849433e-02 2.556499840587265e-02 2.555839103232124e-02 2.555179154834854e-02 2.554519995829834e-02 - 2.553861624178350e-02 2.553204037844031e-02 2.552547237202886e-02 2.551891221538829e-02 2.551235989397021e-02 - 2.550581539575596e-02 2.549927871458803e-02 2.549274984258965e-02 2.548622875540724e-02 2.547971544999134e-02 - 2.547320993631275e-02 2.546671219025347e-02 2.546022219347805e-02 2.545373994243675e-02 2.544726542971977e-02 - 2.544079864501286e-02 2.543433957656028e-02 2.542788821576999e-02 2.542144455508066e-02 2.541500858637495e-02 - 2.540858030019949e-02 2.540215968413957e-02 2.539574672197945e-02 2.538934140646816e-02 2.538294373410821e-02 - 2.537655369660362e-02 2.537017128263758e-02 2.536379648098229e-02 2.535742928550868e-02 2.535106968465225e-02 - 2.534471766277936e-02 2.533837321084466e-02 2.533203632423742e-02 2.532570699881585e-02 2.531938521813243e-02 - 2.531307097096266e-02 2.530676425602581e-02 2.530046505932213e-02 2.529417336607690e-02 2.528788916915281e-02 - 2.528161246489754e-02 2.527534324609989e-02 2.526908149634068e-02 2.526282720495094e-02 2.525658036572961e-02 - 2.525034097275206e-02 2.524410901058027e-02 2.523788446449190e-02 2.523166734234336e-02 2.522545763237074e-02 - 2.521925530838600e-02 2.521306037097086e-02 2.520687281776321e-02 2.520069263496993e-02 2.519451980442291e-02 - 2.518835431925369e-02 2.518219618546694e-02 2.517604538654039e-02 2.516990190396150e-02 2.516376573127799e-02 - 2.515763686639562e-02 2.515151530112912e-02 2.514540101358030e-02 2.513929399756280e-02 2.513319425347670e-02 - 2.512710177240427e-02 2.512101654329324e-02 2.511493855506050e-02 2.510886779787783e-02 2.510280425830826e-02 - 2.509674792451250e-02 2.509069880343641e-02 2.508465688466923e-02 2.507862214067907e-02 2.507259457630134e-02 - 2.506657418922008e-02 2.506056095604422e-02 2.505455486579475e-02 2.504855591546334e-02 2.504256410459500e-02 - 2.503657941982099e-02 2.503060184642849e-02 2.502463137903613e-02 2.501866800626509e-02 2.501271171663477e-02 - 2.500676250820755e-02 2.500082037092928e-02 2.499488529135626e-02 2.498895726677344e-02 2.498303628979692e-02 - 2.497712234741346e-02 2.497121542814719e-02 2.496531552247531e-02 2.495942262282587e-02 2.495353672310340e-02 - 2.494765781766853e-02 2.494178589943900e-02 2.493592095223772e-02 2.493006296439117e-02 2.492421193524048e-02 - 2.491836784922406e-02 2.491253069345717e-02 2.490670047398909e-02 2.490087718065651e-02 2.489506079631419e-02 - 2.488925131370227e-02 2.488344872747560e-02 2.487765302865731e-02 2.487186419727612e-02 2.486608223223404e-02 - 2.486030714174834e-02 2.485453889875117e-02 2.484877749156952e-02 2.484302292908405e-02 2.483727519324232e-02 - 2.483153426549052e-02 2.482580013961989e-02 2.482007281919668e-02 2.481435229933991e-02 2.480863855780388e-02 - 2.480293158683973e-02 2.479723138421890e-02 2.479153794250162e-02 2.478585124573938e-02 2.478017128120043e-02 - 2.477449805440481e-02 2.476883155587847e-02 2.476317176818658e-02 2.475751868877601e-02 2.475187231076201e-02 - 2.474623262098153e-02 2.474059960704484e-02 2.473497326224523e-02 2.472935358498410e-02 2.472374056978996e-02 - 2.471813420423485e-02 2.471253447111526e-02 2.470694136984621e-02 2.470135489678424e-02 2.469577503399494e-02 - 2.469020177298829e-02 2.468463511029760e-02 2.467907504169421e-02 2.467352155791407e-02 2.466797464651026e-02 - 2.466243429488579e-02 2.465690049712254e-02 2.465137324948606e-02 2.464585254039273e-02 2.464033836402688e-02 - 2.463483071739735e-02 2.462932958374225e-02 2.462383495186045e-02 2.461834681928389e-02 2.461286517898853e-02 - 2.460739002108202e-02 2.460192133524253e-02 2.459645911917798e-02 2.459100336526309e-02 2.458555405446716e-02 - 2.458011118496141e-02 2.457467475465895e-02 2.456924474486533e-02 2.456382114921245e-02 2.455840396700115e-02 - 2.455299319041756e-02 2.454758880740113e-02 2.454219080674820e-02 2.453679918638537e-02 2.453141393576077e-02 - 2.452603503863916e-02 2.452066249180092e-02 2.451529629410615e-02 2.450993644073534e-02 2.450458291517292e-02 - 2.449923570627392e-02 2.449389481263279e-02 2.448856022075961e-02 2.448323192252920e-02 2.447790992354739e-02 - 2.447259420740984e-02 2.446728475663024e-02 2.446198157303190e-02 2.445668465268695e-02 2.445139398411770e-02 - 2.444610955000165e-02 2.444083134675017e-02 2.443555937646448e-02 2.443029362647454e-02 2.442503408583922e-02 - 2.441978074770511e-02 2.441453360513738e-02 2.440929264714783e-02 2.440405786136508e-02 2.439882924944217e-02 - 2.439360680824694e-02 2.438839052372590e-02 2.438318038826778e-02 2.437797639360750e-02 2.437277852674977e-02 - 2.436758678074824e-02 2.436240115296091e-02 2.435722164202054e-02 2.435204823529888e-02 2.434688091817521e-02 - 2.434171968740183e-02 2.433656453724402e-02 2.433141545805634e-02 2.432627243782077e-02 2.432113546933723e-02 - 2.431600455029639e-02 2.431087967900234e-02 2.430576084399959e-02 2.430064802749307e-02 2.429554123205279e-02 - 2.429044044976694e-02 2.428534565606734e-02 2.428025685952290e-02 2.427517406275088e-02 2.427009724038350e-02 - 2.426502638834353e-02 2.425996150697585e-02 2.425490258288459e-02 2.424984960255012e-02 2.424480255754471e-02 - 2.423976144931379e-02 2.423472627405213e-02 2.422969702193537e-02 2.422467367993699e-02 2.421965624107330e-02 - 2.421464470176334e-02 2.420963904926960e-02 2.420463927567678e-02 2.419964537946393e-02 2.419465735323985e-02 - 2.418967518800793e-02 2.418469887545246e-02 2.417972840901141e-02 2.417476377855392e-02 2.416980496962540e-02 - 2.416485198688481e-02 2.415990483049387e-02 2.415496347565664e-02 2.415002792020104e-02 2.414509816788697e-02 - 2.414017420064829e-02 2.413525600526027e-02 2.413034357711665e-02 2.412543691925479e-02 2.412053602209589e-02 - 2.411564086852338e-02 2.411075145960207e-02 2.410586778967854e-02 2.410098984367492e-02 2.409611761892932e-02 - 2.409125110932578e-02 2.408639030144091e-02 2.408153519631380e-02 2.407668578962185e-02 2.407184206146642e-02 - 2.406700400909483e-02 2.406217163125833e-02 2.405734491326586e-02 2.405252385052364e-02 2.404770844026444e-02 - 2.404289866819192e-02 2.403809452984102e-02 2.403329602484744e-02 2.402850314011094e-02 2.402371586479471e-02 - 2.401893419282938e-02 2.401415812045089e-02 2.400938764313821e-02 2.400462275334547e-02 2.399986343578922e-02 - 2.399510968520409e-02 2.399036150812855e-02 2.398561888480285e-02 2.398088180164008e-02 2.397615026865237e-02 - 2.397142427338870e-02 2.396670380040281e-02 2.396198885088599e-02 2.395727942113068e-02 2.395257549962209e-02 - 2.394787706723708e-02 2.394318412617158e-02 2.393849668455232e-02 2.393381472012022e-02 2.392913822141401e-02 - 2.392446719065216e-02 2.391980162598514e-02 2.391514151312970e-02 2.391048683154523e-02 2.390583758880722e-02 - 2.390119378770886e-02 2.389655541357522e-02 2.389192245255953e-02 2.388729489743550e-02 2.388267274893805e-02 - 2.387805599705324e-02 2.387344463051915e-02 2.386883864637205e-02 2.386423804212813e-02 2.385964281176755e-02 - 2.385505294183017e-02 2.385046842474073e-02 2.384588925674739e-02 2.384131543037479e-02 2.383674693675093e-02 - 2.383218376863605e-02 2.382762592698097e-02 2.382307340607612e-02 2.381852619200930e-02 2.381398427584630e-02 - 2.380944765139419e-02 2.380491631418275e-02 2.380039026147703e-02 2.379586948695320e-02 2.379135397827495e-02 - 2.378684372855616e-02 2.378233873403001e-02 2.377783899070361e-02 2.377334448688785e-02 2.376885521259772e-02 - 2.376437117173840e-02 2.375989235311110e-02 2.375541874056297e-02 2.375095033967465e-02 2.374648714507580e-02 - 2.374202914136664e-02 2.373757632537944e-02 2.373312869288914e-02 2.372868623536894e-02 2.372424894471153e-02 - 2.371981681484819e-02 2.371538984133524e-02 2.371096801501392e-02 2.370655132827953e-02 2.370213977833190e-02 - 2.369773335765337e-02 2.369333205880069e-02 2.368893587883010e-02 2.368454481046802e-02 2.368015884444250e-02 - 2.367577797334512e-02 2.367140218742613e-02 2.366703147963686e-02 2.366266585606776e-02 2.365830530976384e-02 - 2.365394982335759e-02 2.364959939168465e-02 2.364525401200215e-02 2.364091367903051e-02 2.363657837870221e-02 - 2.363224810602428e-02 2.362792286773459e-02 2.362360264929340e-02 2.361928743769403e-02 2.361497723470610e-02 - 2.361067203383207e-02 2.360637182449869e-02 2.360207659794005e-02 2.359778635431920e-02 2.359350109143980e-02 - 2.358922079027601e-02 2.358494544772182e-02 2.358067506765588e-02 2.357640963547734e-02 2.357214914179353e-02 - 2.356789358468287e-02 2.356364296127548e-02 2.355939726289868e-02 2.355515647729875e-02 2.355092060314220e-02 - 2.354668963726047e-02 2.354246356971432e-02 2.353824239065819e-02 2.353402609608870e-02 2.352981468856027e-02 - 2.352560815209497e-02 2.352140647526573e-02 2.351720967050562e-02 2.351301772305351e-02 2.350883061252196e-02 - 2.350464834642137e-02 2.350047092197861e-02 2.349629832802946e-02 2.349213055910952e-02 2.348796760574937e-02 - 2.348380945835795e-02 2.347965612326723e-02 2.347550759163322e-02 2.347136384068571e-02 2.346722487769892e-02 - 2.346309070523777e-02 2.345896130833473e-02 2.345483667635093e-02 2.345071680463291e-02 2.344660169327714e-02 - 2.344249133136094e-02 2.343838570884467e-02 2.343428482723373e-02 2.343018868068117e-02 2.342609726030811e-02 - 2.342201056195244e-02 2.341792857876926e-02 2.341385130156056e-02 2.340977872164902e-02 2.340571083589386e-02 - 2.340164764377465e-02 2.339758913684304e-02 2.339353530825718e-02 2.338948615385810e-02 2.338544166438565e-02 - 2.338140183238109e-02 2.337736665460082e-02 2.337333612670094e-02 2.336931024309368e-02 2.336528899670786e-02 - 2.336127237782067e-02 2.335726037932775e-02 2.335325300092871e-02 2.334925023614406e-02 2.334525207670920e-02 - 2.334125851951941e-02 2.333726955725296e-02 2.333328518197435e-02 2.332930539416707e-02 2.332533018620607e-02 - 2.332135954429912e-02 2.331739346348105e-02 2.331343194297124e-02 2.330947498175055e-02 2.330552256758802e-02 - 2.330157469245372e-02 2.329763135682490e-02 2.329369255310137e-02 2.328975827131819e-02 2.328582850377367e-02 - 2.328190324900185e-02 2.327798250467623e-02 2.327406626164597e-02 2.327015451465238e-02 2.326624725851670e-02 - 2.326234448228765e-02 2.325844618291867e-02 2.325455236057939e-02 2.325066300636415e-02 2.324677811186985e-02 - 2.324289767062798e-02 2.323902167622130e-02 2.323515012509116e-02 2.323128301561370e-02 2.322742034088871e-02 - 2.322356209250113e-02 2.321970826255392e-02 2.321585884544971e-02 2.321201383858435e-02 2.320817324137425e-02 - 2.320433704277431e-02 2.320050523099401e-02 2.319667780275936e-02 2.319285475700314e-02 2.318903609087885e-02 - 2.318522179577433e-02 2.318141186586264e-02 2.317760629632794e-02 2.317380507773795e-02 2.317000820301008e-02 - 2.316621566880872e-02 2.316242747510807e-02 2.315864361575457e-02 2.315486407850317e-02 2.315108885694486e-02 - 2.314731794816131e-02 2.314355135044316e-02 2.313978905662257e-02 2.313603105913640e-02 2.313227735329952e-02 - 2.312852793585061e-02 2.312478280157292e-02 2.312104194073204e-02 2.311730534704967e-02 2.311357301587891e-02 - 2.310984494137890e-02 2.310612112341407e-02 2.310240155989217e-02 2.309868623130452e-02 2.309497513592190e-02 - 2.309126828241582e-02 2.308756565023808e-02 2.308386723175103e-02 2.308017303542274e-02 2.307648304592169e-02 - 2.307279725617671e-02 2.306911567493640e-02 2.306543828441958e-02 2.306176507302976e-02 2.305809605235563e-02 - 2.305443121050249e-02 2.305077053229759e-02 2.304711401909808e-02 2.304346166830784e-02 2.303981347406350e-02 - 2.303616943085239e-02 2.303252953349069e-02 2.302889377643319e-02 2.302526215247478e-02 2.302163465435939e-02 - 2.301801127709388e-02 2.301439202296127e-02 2.301077688440331e-02 2.300716584594829e-02 2.300355891234385e-02 - 2.299995607931316e-02 2.299635732709070e-02 2.299276266087610e-02 2.298917208378683e-02 2.298558558107965e-02 - 2.298200314503575e-02 2.297842477288603e-02 2.297485046311076e-02 2.297128020911345e-02 2.296771400315858e-02 - 2.296415184168031e-02 2.296059371667762e-02 2.295703962066644e-02 2.295348955785851e-02 2.294994352217295e-02 - 2.294640149900077e-02 2.294286348264926e-02 2.293932947451599e-02 2.293579947717141e-02 2.293227347444131e-02 - 2.292875145668869e-02 2.292523342863249e-02 2.292171938675970e-02 2.291820932208030e-02 2.291470322329688e-02 - 2.291120108573121e-02 2.290770290936340e-02 2.290420869564250e-02 2.290071843254762e-02 2.289723210840996e-02 - 2.289374972996874e-02 2.289027128684278e-02 2.288679676284003e-02 2.288332616596880e-02 2.287985949623025e-02 - 2.287639674290211e-02 2.287293789614104e-02 2.286948295143698e-02 2.286603190794522e-02 2.286258475709644e-02 - 2.285914149325583e-02 2.285570211629635e-02 2.285226661817064e-02 2.284883499242224e-02 2.284540723897847e-02 - 2.284198334984975e-02 2.283856331588243e-02 2.283514713353579e-02 2.283173480111027e-02 2.282832631556901e-02 - 2.282492166909090e-02 2.282152085461623e-02 2.281812386736860e-02 2.281473070606539e-02 2.281134136558116e-02 - 2.280795583769253e-02 2.280457411713410e-02 2.280119619914733e-02 2.279782207936136e-02 2.279445175627783e-02 - 2.279108522557549e-02 2.278772247795469e-02 2.278436350274908e-02 2.278100829770330e-02 2.277765687156956e-02 - 2.277430921150676e-02 2.277096530368425e-02 2.276762515226868e-02 2.276428875675497e-02 2.276095610802096e-02 - 2.275762718728153e-02 2.275430199700514e-02 2.275098054723153e-02 2.274766282325953e-02 2.274434881806882e-02 - 2.274103853245654e-02 2.273773195657694e-02 2.273442908251650e-02 2.273112990748000e-02 2.272783443024632e-02 - 2.272454264587135e-02 2.272125454541999e-02 2.271797012768606e-02 2.271468938883630e-02 2.271141231743784e-02 - 2.270813891155475e-02 2.270486917113991e-02 2.270160309030139e-02 2.269834065991423e-02 2.269508187421201e-02 - 2.269182673791773e-02 2.268857524219826e-02 2.268532737305624e-02 2.268208313254210e-02 2.267884251722086e-02 - 2.267560551920548e-02 2.267237214108131e-02 2.266914237609957e-02 2.266591620883689e-02 2.266269364166427e-02 - 2.265947467384046e-02 2.265625929499294e-02 2.265304750285308e-02 2.264983929495161e-02 2.264663466331073e-02 - 2.264343359962570e-02 2.264023610100446e-02 2.263704217283995e-02 2.263385180078203e-02 2.263066497176033e-02 - 2.262748170200772e-02 2.262430198020481e-02 2.262112578516977e-02 2.261795313211606e-02 2.261478401664109e-02 - 2.261161841743119e-02 2.260845633522814e-02 2.260529777070043e-02 2.260214271924124e-02 2.259899117823321e-02 - 2.259584314154298e-02 2.259269859890657e-02 2.258955754741791e-02 2.258641998536936e-02 2.258328590829124e-02 - 2.258015531052365e-02 2.257702818646037e-02 2.257390453172050e-02 2.257078434461123e-02 2.256766762198980e-02 - 2.256455435398716e-02 2.256144453344060e-02 2.255833815784602e-02 2.255523523027356e-02 2.255213574452021e-02 - 2.254903968810603e-02 2.254594705829782e-02 2.254285785514665e-02 2.253977207653749e-02 2.253668970834607e-02 - 2.253361074658835e-02 2.253053520058667e-02 2.252746305460894e-02 2.252439429792020e-02 2.252132894054988e-02 - 2.251826697539277e-02 2.251520839162438e-02 2.251215318778324e-02 2.250910135797150e-02 2.250605289615611e-02 - 2.250300780314812e-02 2.249996607511807e-02 2.249692770517706e-02 2.249389268897849e-02 2.249086101912092e-02 - 2.248783268793952e-02 2.248480769791340e-02 2.248178604607573e-02 2.247876772289102e-02 2.247575272657626e-02 - 2.247274105420605e-02 2.246973269884927e-02 2.246672765673356e-02 2.246372592391256e-02 2.246072749418018e-02 - 2.245773236145919e-02 2.245474052366870e-02 2.245175198466864e-02 2.244876673416187e-02 2.244578475935081e-02 - 2.244280606154297e-02 2.243983064008646e-02 2.243685849064164e-02 2.243388960632717e-02 2.243092397966235e-02 - 2.242796160524575e-02 2.242500248562306e-02 2.242204661762487e-02 2.241909399183298e-02 2.241614460666303e-02 - 2.241319845819517e-02 2.241025553754803e-02 2.240731584245553e-02 2.240437937032112e-02 2.240144611432051e-02 - 2.239851607018801e-02 2.239558923444239e-02 2.239266560299412e-02 2.238974517661811e-02 2.238682795331298e-02 - 2.238391391839321e-02 2.238100306495051e-02 2.237809539304577e-02 2.237519090301935e-02 2.237228958954325e-02 - 2.236939144530989e-02 2.236649647337483e-02 2.236360466636645e-02 2.236071600836286e-02 2.235783050633204e-02 - 2.235494816009726e-02 2.235206895420678e-02 2.234919288912077e-02 2.234631996540050e-02 2.234345017408028e-02 - 2.234058350741709e-02 2.233771996217690e-02 2.233485954108143e-02 2.233200223848051e-02 2.232914804618978e-02 - 2.232629696222737e-02 2.232344898389008e-02 2.232060410657171e-02 2.231776232362639e-02 2.231492363175558e-02 - 2.231208802922137e-02 2.230925550831191e-02 2.230642606279709e-02 2.230359969032392e-02 2.230077639232617e-02 - 2.229795616382932e-02 2.229513899284023e-02 2.229232488215048e-02 2.228951382986107e-02 2.228670582046145e-02 - 2.228390085767177e-02 2.228109894426768e-02 2.227830006461064e-02 2.227550421765863e-02 2.227271140560883e-02 - 2.226992161633195e-02 2.226713484518715e-02 2.226435109357777e-02 2.226157036041665e-02 2.225879263594571e-02 - 2.225601790864145e-02 2.225324618600033e-02 2.225047746610503e-02 2.224771173578603e-02 2.224494899695189e-02 - 2.224218924606724e-02 2.223943246967720e-02 2.223667867147697e-02 2.223392785229840e-02 2.223117999944780e-02 - 2.222843510958861e-02 2.222569318138216e-02 2.222295420869658e-02 2.222021819230338e-02 2.221748513172378e-02 - 2.221475501403353e-02 2.221202783347761e-02 2.220930358964832e-02 2.220658227937696e-02 2.220386389978368e-02 - 2.220114844711944e-02 2.219843591216284e-02 2.219572629440826e-02 2.219301959936691e-02 2.219031581219321e-02 - 2.218761492468887e-02 2.218491694233576e-02 2.218222185562244e-02 2.217952965986671e-02 2.217684036403281e-02 - 2.217415395419634e-02 2.217147041795686e-02 2.216878976537657e-02 2.216611199005385e-02 2.216343708084910e-02 - 2.216076504044857e-02 2.215809586407636e-02 2.215542954392592e-02 2.215276608232491e-02 2.215010547339664e-02 - 2.214744770611955e-02 2.214479278225410e-02 2.214214070177000e-02 2.213949145934428e-02 2.213684504847090e-02 - 2.213420146383213e-02 2.213156070201421e-02 2.212892275987791e-02 2.212628763520102e-02 2.212365532631548e-02 - 2.212102582567219e-02 2.211839912707401e-02 2.211577523186081e-02 2.211315413883962e-02 2.211053584219323e-02 - 2.210792033053083e-02 2.210530760247808e-02 2.210269766011106e-02 2.210009049378774e-02 2.209748609987134e-02 - 2.209488448015577e-02 2.209228563063591e-02 2.208968954607055e-02 2.208709622107550e-02 2.208450564887732e-02 - 2.208191782589816e-02 2.207933275252874e-02 2.207675042560285e-02 2.207417084119970e-02 2.207159399606388e-02 - 2.206901988424427e-02 2.206644850045388e-02 2.206387984291528e-02 2.206131390816773e-02 2.205875069196218e-02 - 2.205619019101501e-02 2.205363240248722e-02 2.205107732226570e-02 2.204852494231603e-02 2.204597526222870e-02 - 2.204342828418220e-02 2.204088399409952e-02 2.203834238815479e-02 2.203580347352047e-02 2.203326724064265e-02 - 2.203073368487589e-02 2.202820281109562e-02 2.202567460568826e-02 2.202314905892956e-02 2.202062617713913e-02 - 2.201810595951965e-02 2.201558839960293e-02 2.201307348855861e-02 2.201056122699519e-02 2.200805161543166e-02 - 2.200554464185156e-02 2.200304030240887e-02 2.200053859846551e-02 2.199803952619762e-02 2.199554308107517e-02 - 2.199304925941878e-02 2.199055805969111e-02 2.198806947716193e-02 2.198558350490501e-02 2.198310014348315e-02 - 2.198061939050182e-02 2.197814123774413e-02 2.197566568143648e-02 2.197319271829654e-02 2.197072234409288e-02 - 2.196825456242376e-02 2.196578937054303e-02 2.196332674903257e-02 2.196086670076693e-02 2.195840923401799e-02 - 2.195595433798292e-02 2.195350200785295e-02 2.195105224287541e-02 2.194860503638501e-02 2.194616038337459e-02 - 2.194371828086876e-02 2.194127872478465e-02 2.193884171275727e-02 2.193640724439015e-02 2.193397531871202e-02 - 2.193154592984012e-02 2.192911906730429e-02 2.192669472874541e-02 2.192427291582612e-02 2.192185362988310e-02 - 2.191943685926103e-02 2.191702259589666e-02 2.191461084837004e-02 2.191220161094460e-02 2.190979487232746e-02 - 2.190739062981033e-02 2.190498888177591e-02 2.190258962778606e-02 2.190019287048831e-02 2.189779860038415e-02 - 2.189540680312951e-02 2.189301748590321e-02 2.189063064823816e-02 2.188824627921663e-02 2.188586438035036e-02 - 2.188348494945867e-02 2.188110797669410e-02 2.187873346273279e-02 2.187636140793982e-02 2.187399180563438e-02 - 2.187162464701073e-02 2.186925992764394e-02 2.186689765219864e-02 2.186453782016761e-02 2.186218042520733e-02 - 2.185982545624109e-02 2.185747291143151e-02 2.185512279286289e-02 2.185277509428750e-02 2.185042981497303e-02 - 2.184808695595145e-02 2.184574650317918e-02 2.184340845337333e-02 2.184107281435048e-02 2.183873957690715e-02 - 2.183640873122354e-02 2.183408027442373e-02 2.183175421068970e-02 2.182943053984947e-02 2.182710925220595e-02 - 2.182479034512406e-02 2.182247381639650e-02 2.182015965839264e-02 2.181784786935527e-02 2.181553844939510e-02 - 2.181323139439093e-02 2.181092669994856e-02 2.180862436262286e-02 2.180632438083940e-02 2.180402674952244e-02 - 2.180173146217098e-02 2.179943851892379e-02 2.179714791838810e-02 2.179485965603752e-02 2.179257372764807e-02 - 2.179029013045416e-02 2.178800886254997e-02 2.178572991731780e-02 2.178345329019238e-02 2.178117898198011e-02 - 2.177890698980304e-02 2.177663730909087e-02 2.177436993586566e-02 2.177210486810286e-02 2.176984210277431e-02 - 2.176758163245009e-02 2.176532345522340e-02 2.176306757137086e-02 2.176081397536724e-02 2.175856266623576e-02 - 2.175631364444715e-02 2.175406689861889e-02 2.175182242380624e-02 2.174958022311289e-02 2.174734029291431e-02 - 2.174510262809328e-02 2.174286722491656e-02 2.174063408336708e-02 2.173840320169586e-02 2.173617457340815e-02 - 2.173394819180500e-02 2.173172405255836e-02 2.172950215559655e-02 2.172728250040623e-02 2.172506508580887e-02 - 2.172284990969628e-02 2.172063696250313e-02 2.171842623537083e-02 2.171621773566752e-02 2.171401146093844e-02 - 2.171180740120238e-02 2.170960555830954e-02 2.170740592901658e-02 2.170520850408856e-02 2.170301328419004e-02 - 2.170082027006994e-02 2.169862945830807e-02 2.169644084240343e-02 2.169425441572978e-02 2.169207017401216e-02 - 2.168988812007480e-02 2.168770825534887e-02 2.168553057272023e-02 2.168335506533793e-02 2.168118172867985e-02 - 2.167901056214399e-02 2.167684156632982e-02 2.167467473989915e-02 2.167251007478243e-02 2.167034756604321e-02 - 2.166818721221639e-02 2.166602901099679e-02 2.166387295840019e-02 2.166171905012346e-02 2.165956728718834e-02 - 2.165741766632386e-02 2.165527017845730e-02 2.165312482355555e-02 2.165098160273919e-02 2.164884051303741e-02 - 2.164670154730472e-02 2.164456469954934e-02 2.164242996946321e-02 2.164029735885670e-02 2.163816686523918e-02 - 2.163603847533059e-02 2.163391219068715e-02 2.163178801684997e-02 2.162966593882407e-02 2.162754595404139e-02 - 2.162542806873079e-02 2.162331227177066e-02 2.162119856181649e-02 2.161908694674025e-02 2.161697741144211e-02 - 2.161486994763257e-02 2.161276456243416e-02 2.161066125301312e-02 2.160856001324272e-02 2.160646083892226e-02 - 2.160436373197112e-02 2.160226869104043e-02 2.160017570438035e-02 2.159808476849354e-02 2.159599588501710e-02 - 2.159390905460169e-02 2.159182427010056e-02 2.158974152429478e-02 2.158766082444429e-02 2.158558216760809e-02 - 2.158350554187339e-02 2.158143094233737e-02 2.157935837033232e-02 2.157728782941571e-02 2.157521931196140e-02 - 2.157315281164952e-02 2.157108832745493e-02 2.156902585566251e-02 2.156696539445298e-02 2.156490694526656e-02 - 2.156285049964247e-02 2.156079605212440e-02 2.155874360997529e-02 2.155669316474123e-02 2.155464470676604e-02 - 2.155259824484399e-02 2.155055377365348e-02 2.154851128035285e-02 2.154647076406023e-02 2.154443222886153e-02 - 2.154239567713112e-02 2.154036109691455e-02 2.153832848380287e-02 2.153629784162443e-02 2.153426916110383e-02 - 2.153224243839968e-02 2.153021767928900e-02 2.152819487735599e-02 2.152617402486068e-02 2.152415511969989e-02 - 2.152213816346627e-02 2.152012315489333e-02 2.151811008517867e-02 2.151609895106827e-02 2.151408975350627e-02 - 2.151208249405811e-02 2.151007716412923e-02 2.150807375412716e-02 2.150607227139823e-02 2.150407271389111e-02 - 2.150207507178008e-02 2.150007934512424e-02 2.149808553345600e-02 2.149609363244227e-02 2.149410363369511e-02 - 2.149211553597770e-02 2.149012934592863e-02 2.148814505588094e-02 2.148616265955859e-02 2.148418215959600e-02 - 2.148220354775919e-02 2.148022681859241e-02 2.147825198020547e-02 2.147627902590631e-02 2.147430794498996e-02 - 2.147233873858447e-02 2.147037140717467e-02 2.146840594879004e-02 2.146644235912430e-02 2.146448063553682e-02 - 2.146252077578778e-02 2.146056277288728e-02 2.145860662318243e-02 2.145665232726965e-02 2.145469988438242e-02 - 2.145274929256557e-02 2.145080054831608e-02 2.144885364454498e-02 2.144690857746641e-02 2.144496534942983e-02 - 2.144302395654175e-02 2.144108439499599e-02 2.143914666610025e-02 2.143721076355154e-02 2.143527668029283e-02 - 2.143334441800114e-02 2.143141397685691e-02 2.142948535268880e-02 2.142755853497146e-02 2.142563352602930e-02 - 2.142371033388222e-02 2.142178894500280e-02 2.141986935358769e-02 2.141795156402302e-02 2.141603556793572e-02 - 2.141412136230918e-02 2.141220895321441e-02 2.141029833297722e-02 2.140838949470163e-02 2.140648244009975e-02 - 2.140457716697424e-02 2.140267367166504e-02 2.140077195168551e-02 2.139887200433115e-02 2.139697382547902e-02 - 2.139507740888590e-02 2.139318275720074e-02 2.139128987343195e-02 2.138939874415982e-02 2.138750936775835e-02 - 2.138562175102568e-02 2.138373588641631e-02 2.138185176599392e-02 2.137996938652284e-02 2.137808875223814e-02 - 2.137620986251236e-02 2.137433270909064e-02 2.137245728978030e-02 2.137058360186242e-02 2.136871163953864e-02 - 2.136684140688612e-02 2.136497290390506e-02 2.136310611597474e-02 2.136124104345297e-02 2.135937769212130e-02 - 2.135751605860686e-02 2.135565613610374e-02 2.135379791822062e-02 2.135194140402438e-02 2.135008659417071e-02 - 2.134823348788390e-02 2.134638207760105e-02 2.134453236032835e-02 2.134268433814086e-02 2.134083800772077e-02 - 2.133899336411597e-02 2.133715040305821e-02 2.133530912424798e-02 2.133346952672500e-02 2.133163160670673e-02 - 2.132979536297411e-02 2.132796079152963e-02 2.132612788229375e-02 2.132429663915477e-02 2.132246706798375e-02 - 2.132063916037057e-02 2.131881290769116e-02 2.131698830582932e-02 2.131516535978050e-02 2.131334407028698e-02 - 2.131152443198118e-02 2.130970643552249e-02 2.130789007885127e-02 2.130607536669811e-02 2.130426229682303e-02 - 2.130245086421657e-02 2.130064106313053e-02 2.129883288837854e-02 2.129702633875496e-02 2.129522141788389e-02 - 2.129341812290223e-02 2.129161644909972e-02 2.128981639414264e-02 2.128801795585396e-02 2.128622113110773e-02 - 2.128442591509673e-02 2.128263230760480e-02 2.128084030772261e-02 2.127904990395241e-02 2.127726109953179e-02 - 2.127547390424031e-02 2.127368830171838e-02 2.127190428479188e-02 2.127012186038021e-02 2.126834102886177e-02 - 2.126656178481652e-02 2.126478411995624e-02 2.126300803603507e-02 2.126123353191450e-02 2.125946059821390e-02 - 2.125768923851055e-02 2.125591945439615e-02 2.125415123382016e-02 2.125238457915817e-02 2.125061949358618e-02 - 2.124885596288304e-02 2.124709398735697e-02 2.124533357303348e-02 2.124357470952245e-02 2.124181739435340e-02 - 2.124006163206048e-02 2.123830741948956e-02 2.123655475001017e-02 2.123480361731545e-02 2.123305402409987e-02 - 2.123130596739953e-02 2.122955943693203e-02 2.122781443910126e-02 2.122607097723360e-02 2.122432904130337e-02 - 2.122258862659696e-02 2.122084973282204e-02 2.121911236175234e-02 2.121737650789419e-02 2.121564216387619e-02 - 2.121390932803162e-02 2.121217800425756e-02 2.121044819455527e-02 2.120871988671843e-02 2.120699307684077e-02 - 2.120526776795157e-02 2.120354395552526e-02 2.120182163603621e-02 2.120010080901829e-02 2.119838147500087e-02 - 2.119666363123091e-02 2.119494727091758e-02 2.119323238927472e-02 2.119151898655034e-02 2.118980706773010e-02 - 2.118809662574528e-02 2.118638765303925e-02 2.118468015121633e-02 2.118297411864271e-02 2.118126955146517e-02 - 2.117956644637810e-02 2.117786480292237e-02 2.117616462067450e-02 2.117446589411339e-02 2.117276862084477e-02 - 2.117107280130004e-02 2.116937843379139e-02 2.116768551256503e-02 2.116599403067535e-02 2.116430399205533e-02 - 2.116261539753040e-02 2.116092824074994e-02 2.115924251858398e-02 2.115755822756320e-02 2.115587536308644e-02 - 2.115419393062315e-02 2.115251393109511e-02 2.115083534999197e-02 2.114915818684827e-02 2.114748244571777e-02 - 2.114580812117730e-02 2.114413521000233e-02 2.114246371011731e-02 2.114079361630021e-02 2.113912493113981e-02 - 2.113745765864524e-02 2.113579178347091e-02 2.113412730283017e-02 2.113246422731517e-02 2.113080255018658e-02 - 2.112914226466844e-02 2.112748336987266e-02 2.112582586239263e-02 2.112416973838773e-02 2.112251499585494e-02 - 2.112086163946853e-02 2.111920966923609e-02 2.111755907231158e-02 2.111590984741022e-02 2.111426199652882e-02 - 2.111261551330255e-02 2.111097039854193e-02 2.110932665501722e-02 2.110768427494188e-02 2.110604325159932e-02 - 2.110440358337455e-02 2.110276527755971e-02 2.110112832954347e-02 2.109949272542061e-02 2.109785847270291e-02 - 2.109622557382813e-02 2.109459401840321e-02 2.109296380279178e-02 2.109133492634166e-02 2.108970738897449e-02 - 2.108808119187406e-02 2.108645633261542e-02 2.108483280177793e-02 2.108321059649476e-02 2.108158971816587e-02 - 2.107997016818712e-02 2.107835194176262e-02 2.107673503228282e-02 2.107511943992769e-02 2.107350516482023e-02 - 2.107189220511111e-02 2.107028055587330e-02 2.106867021606288e-02 2.106706118735907e-02 2.106545346293816e-02 - 2.106384703796383e-02 2.106224191316689e-02 2.106063808955507e-02 2.105903556250238e-02 2.105743432153898e-02 - 2.105583437513380e-02 2.105423572746437e-02 2.105263836035830e-02 2.105104227142354e-02 2.104944746729932e-02 - 2.104785395134047e-02 2.104626171573087e-02 2.104467074966839e-02 2.104308105452007e-02 2.104149263222363e-02 - 2.103990548218236e-02 2.103831959968388e-02 2.103673498293864e-02 2.103515163200819e-02 2.103356953798411e-02 - 2.103198869775456e-02 2.103040911733209e-02 2.102883079574534e-02 2.102725372695269e-02 2.102567790273802e-02 - 2.102410332486244e-02 2.102252999507990e-02 2.102095790737760e-02 2.101938706174730e-02 2.101781745879964e-02 - 2.101624909192282e-02 2.101468195450770e-02 2.101311604447429e-02 2.101155137000445e-02 2.100998792857284e-02 - 2.100842571064132e-02 2.100686471849675e-02 2.100530495078897e-02 2.100374640001838e-02 2.100218906014547e-02 - 2.100063293273019e-02 2.099907802537045e-02 2.099752433031871e-02 2.099597184169578e-02 2.099442056340826e-02 - 2.099287048844137e-02 2.099132161182849e-02 2.098977394056553e-02 2.098822746767990e-02 2.098668218492037e-02 - 2.098513809937855e-02 2.098359520656010e-02 2.098205349870481e-02 2.098051298433238e-02 2.097897365788888e-02 - 2.097743550607582e-02 2.097589853771057e-02 2.097436275317134e-02 2.097282814179318e-02 2.097129470444368e-02 - 2.096976244194844e-02 2.096823135057212e-02 2.096670142502171e-02 2.096517266432222e-02 2.096364507294766e-02 - 2.096211864290872e-02 2.096059336882086e-02 2.095906925902597e-02 2.095754630598820e-02 2.095602449947026e-02 - 2.095450384463222e-02 2.095298434369944e-02 2.095146599313072e-02 2.094994878341327e-02 2.094843271500539e-02 - 2.094691779352117e-02 2.094540401073429e-02 2.094389136288097e-02 2.094237985194064e-02 2.094086947133280e-02 - 2.093936021927527e-02 2.093785210108921e-02 2.093634511142213e-02 2.093483924325246e-02 2.093333449385128e-02 - 2.093183086645815e-02 2.093032836253444e-02 2.092882697593887e-02 2.092732670311165e-02 2.092582754108962e-02 - 2.092432948474122e-02 2.092283253800634e-02 2.092133670446908e-02 2.091984196956714e-02 2.091834833166288e-02 - 2.091685579922333e-02 2.091536436905392e-02 2.091387403364116e-02 2.091238478662568e-02 2.091089663391256e-02 - 2.090940957508328e-02 2.090792359986955e-02 2.090643871032298e-02 2.090495490818039e-02 2.090347218811059e-02 - 2.090199054718417e-02 2.090050998308706e-02 2.089903049243704e-02 2.089755207414248e-02 2.089607472810411e-02 - 2.089459845325996e-02 2.089312324594328e-02 2.089164910255710e-02 2.089017602427597e-02 2.088870401009232e-02 - 2.088723305634642e-02 2.088576315893389e-02 2.088429431601771e-02 2.088282652696964e-02 2.088135978615913e-02 - 2.087989409321534e-02 2.087842945395569e-02 2.087696586275656e-02 2.087550331287119e-02 2.087404180207852e-02 - 2.087258132736208e-02 2.087112188861259e-02 2.086966349090147e-02 2.086820612891688e-02 2.086674979608584e-02 - 2.086529449590395e-02 2.086384022331517e-02 2.086238697045790e-02 2.086093474039187e-02 2.085948353444753e-02 - 2.085803335091995e-02 2.085658418796912e-02 2.085513604081134e-02 2.085368890289571e-02 2.085224277300881e-02 - 2.085079765267601e-02 2.084935354393509e-02 2.084791044341373e-02 2.084646834711395e-02 2.084502725286095e-02 - 2.084358715744794e-02 2.084214805848912e-02 2.084070995598070e-02 2.083927284909677e-02 2.083783673573611e-02 - 2.083640161226469e-02 2.083496747523998e-02 2.083353432223483e-02 2.083210215303235e-02 2.083067096927498e-02 - 2.082924077044086e-02 2.082781154460241e-02 2.082638329211299e-02 2.082495602309350e-02 2.082352972509603e-02 - 2.082210439277076e-02 2.082068003454410e-02 2.081925664261260e-02 2.081783421113447e-02 2.081641274508624e-02 - 2.081499224082686e-02 2.081357269450268e-02 2.081215410878219e-02 2.081073647873721e-02 2.080931979776872e-02 - 2.080790406592918e-02 2.080648928500749e-02 2.080507545608266e-02 2.080366257645188e-02 2.080225063919177e-02 - 2.080083963814898e-02 2.079942957984240e-02 2.079802046255642e-02 2.079661227641324e-02 2.079520502452446e-02 - 2.079379870732677e-02 2.079239331877295e-02 2.079098886066600e-02 2.078958533155146e-02 2.078818272238310e-02 - 2.078678103594075e-02 2.078538027480030e-02 2.078398043169412e-02 2.078258150517176e-02 2.078118349582184e-02 - 2.077978640032045e-02 2.077839021518007e-02 2.077699493798996e-02 2.077560056860569e-02 2.077420710626992e-02 - 2.077281454908150e-02 2.077142289397691e-02 2.077003213665487e-02 2.076864227381708e-02 2.076725331084939e-02 - 2.076586524753700e-02 2.076447807479244e-02 2.076309178893910e-02 2.076170639200464e-02 2.076032188924749e-02 - 2.075893827075576e-02 2.075755552867013e-02 2.075617367037054e-02 2.075479269394757e-02 2.075341259415677e-02 - 2.075203337133167e-02 2.075065502119062e-02 2.074927754004291e-02 2.074790093527532e-02 2.074652520196147e-02 - 2.074515032814618e-02 2.074377631824518e-02 2.074240317461906e-02 2.074103089389617e-02 2.073965947285912e-02 - 2.073828890806665e-02 2.073691919635770e-02 2.073555033844026e-02 2.073418233381763e-02 2.073281517823886e-02 - 2.073144886803073e-02 2.073008340377233e-02 2.072871879147831e-02 2.072735502222402e-02 2.072599208688765e-02 - 2.072462999392301e-02 2.072326873860233e-02 2.072190831224300e-02 2.072054872378210e-02 2.071918997148765e-02 - 2.071783204556565e-02 2.071647494755481e-02 2.071511867766477e-02 2.071376323196711e-02 2.071240860565183e-02 - 2.071105479791370e-02 2.070970181180314e-02 2.070834964331268e-02 2.070699828917085e-02 2.070564775075080e-02 - 2.070429802727900e-02 2.070294911380581e-02 2.070160100113699e-02 2.070025369244763e-02 2.069890719322030e-02 - 2.069756149841416e-02 2.069621660331007e-02 2.069487250616514e-02 2.069352920972353e-02 2.069218670843115e-02 - 2.069084499406914e-02 2.068950407478504e-02 2.068816395008570e-02 2.068682460979861e-02 2.068548605525363e-02 - 2.068414828647597e-02 2.068281129879088e-02 2.068147509294542e-02 2.068013966727868e-02 2.067880501481977e-02 - 2.067747113766845e-02 2.067613803889334e-02 2.067480571527677e-02 2.067347415977921e-02 2.067214336769299e-02 - 2.067081334319025e-02 2.066948408776949e-02 2.066815559807265e-02 2.066682786498898e-02 2.066550088830383e-02 - 2.066417467341183e-02 2.066284921698086e-02 2.066152451475288e-02 2.066020056372571e-02 2.065887736182303e-02 - 2.065755490839281e-02 2.065623320354572e-02 2.065491224367795e-02 2.065359202675738e-02 2.065227255436574e-02 - 2.065095382314874e-02 2.064963582941213e-02 2.064831857270797e-02 2.064700204957123e-02 2.064568625651786e-02 - 2.064437119414936e-02 2.064305686324694e-02 2.064174326345409e-02 2.064043039179931e-02 2.063911824280925e-02 - 2.063780681176866e-02 2.063649610237503e-02 2.063518611610314e-02 2.063387684909248e-02 2.063256829217405e-02 - 2.063126044539576e-02 2.062995331851188e-02 2.062864690334512e-02 2.062734119190086e-02 2.062603618600375e-02 - 2.062473188642144e-02 2.062342829221786e-02 2.062212540064643e-02 2.062082320714733e-02 2.061952170915304e-02 - 2.061822091004314e-02 2.061692080716460e-02 2.061562139605911e-02 2.061432267954307e-02 2.061302465323251e-02 - 2.061172730955065e-02 2.061043065371613e-02 2.060913468523504e-02 2.060783939685846e-02 2.060654478913799e-02 - 2.060525086119714e-02 2.060395760866959e-02 2.060266503271371e-02 2.060137313244415e-02 2.060008190215519e-02 - 2.059879134465455e-02 2.059750146004468e-02 2.059621223782829e-02 2.059492368052522e-02 2.059363579225837e-02 - 2.059234856405708e-02 2.059106199328788e-02 2.058977608130871e-02 2.058849082556723e-02 2.058720622498806e-02 - 2.058592227959311e-02 2.058463898696043e-02 2.058335634281647e-02 2.058207434376584e-02 2.058079299573017e-02 - 2.057951229614279e-02 2.057823223269817e-02 2.057695281356401e-02 2.057567404187197e-02 2.057439590387300e-02 - 2.057311839681732e-02 2.057184152455586e-02 2.057056529173392e-02 2.056928969078429e-02 2.056801471376779e-02 - 2.056674036634529e-02 2.056546664830153e-02 2.056419355486686e-02 2.056292108306100e-02 2.056164923170236e-02 - 2.056037800067255e-02 2.055910738924650e-02 2.055783739340399e-02 2.055656800859636e-02 2.055529924146672e-02 - 2.055403109005562e-02 2.055276354110791e-02 2.055149659755915e-02 2.055023026272679e-02 2.054896453244645e-02 - 2.054769940766287e-02 2.054643488681757e-02 2.054517096062926e-02 2.054390763218316e-02 2.054264490512525e-02 - 2.054138276915942e-02 2.054012122328143e-02 2.053886027085424e-02 2.053759990682471e-02 2.053634012878631e-02 - 2.053508093799464e-02 2.053382233647706e-02 2.053256431985532e-02 2.053130687980379e-02 2.053005001911220e-02 - 2.052879373804411e-02 2.052753803104820e-02 2.052628289842169e-02 2.052502834052905e-02 2.052377435424499e-02 - 2.052252093383405e-02 2.052126807833591e-02 2.052001579579881e-02 2.051876408076618e-02 2.051751292558091e-02 - 2.051626233431153e-02 2.051501230108543e-02 2.051376281904528e-02 2.051251389905356e-02 2.051126553806812e-02 - 2.051001772450580e-02 2.050877046477720e-02 2.050752375748313e-02 2.050627759308629e-02 2.050503197764233e-02 - 2.050378691120845e-02 2.050254238346269e-02 2.050129839647772e-02 2.050005495152270e-02 2.049881204279591e-02 - 2.049756967049427e-02 2.049632783497685e-02 2.049508653204386e-02 2.049384576061373e-02 2.049260552085964e-02 - 2.049136581124810e-02 2.049012662828215e-02 2.048888796855573e-02 2.048764983217528e-02 2.048641222055239e-02 - 2.048517513365279e-02 2.048393856449956e-02 2.048270250702790e-02 2.048146696002243e-02 2.048023193267689e-02 - 2.047899742444990e-02 2.047776342204647e-02 2.047652992557144e-02 2.047529693666283e-02 2.047406445284291e-02 - 2.047283247820367e-02 2.047160101124722e-02 2.047037003705319e-02 2.046913955996649e-02 2.046790958805229e-02 - 2.046668011290463e-02 2.046545112747173e-02 2.046422263048016e-02 2.046299462941648e-02 2.046176712182623e-02 - 2.046054009863872e-02 2.045931356011635e-02 2.045808750875261e-02 2.045686194483555e-02 2.045563685869128e-02 - 2.045441224888558e-02 2.045318812405373e-02 2.045196447539730e-02 2.045074129851060e-02 2.044951860203706e-02 - 2.044829637561388e-02 2.044707461146781e-02 2.044585332076453e-02 2.044463250090934e-02 2.044341214478788e-02 - 2.044219225389736e-02 2.044097282684260e-02 2.043975385980242e-02 2.043853534979080e-02 2.043731729516990e-02 - 2.043609969584751e-02 2.043488255365452e-02 2.043366586840525e-02 2.043244963622695e-02 2.043123384788510e-02 - 2.043001850356880e-02 2.042880361352058e-02 2.042758917125052e-02 2.042637516923373e-02 2.042516160738241e-02 - 2.042394848596822e-02 2.042273580364956e-02 2.042152355668345e-02 2.042031174421715e-02 2.041910036711696e-02 - 2.041788942589821e-02 2.041667891618270e-02 2.041546883283581e-02 2.041425917723074e-02 2.041304994671302e-02 - 2.041184113736942e-02 2.041063275507356e-02 2.040942479864618e-02 2.040821725911453e-02 2.040701013329647e-02 - 2.040580342336421e-02 2.040459713364973e-02 2.040339125626194e-02 2.040218578748979e-02 2.040098073437600e-02 - 2.039977609190064e-02 2.039857185194057e-02 2.039736801200263e-02 2.039616457948628e-02 2.039496155847034e-02 - 2.039375893548800e-02 2.039255670811317e-02 2.039135487906758e-02 2.039015344139171e-02 2.038895239754324e-02 - 2.038775175394349e-02 2.038655150008423e-02 2.038535163468296e-02 2.038415216492024e-02 2.038295307932101e-02 - 2.038175437156158e-02 2.038055604740632e-02 2.037935811014152e-02 2.037816055719221e-02 2.037696338008003e-02 - 2.037576657774965e-02 2.037457015197002e-02 2.037337410306159e-02 2.037217842811476e-02 2.037098312337542e-02 - 2.036978818702816e-02 2.036859361901312e-02 2.036739941883561e-02 2.036620558232109e-02 2.036501210897116e-02 - 2.036381899981477e-02 2.036262624936801e-02 2.036143385733716e-02 2.036024182706139e-02 2.035905014947786e-02 - 2.035785882153747e-02 2.035666784977269e-02 2.035547723079831e-02 2.035428696142468e-02 2.035309704319765e-02 - 2.035190747134853e-02 2.035071824110532e-02 2.034952935293085e-02 2.034834080749865e-02 2.034715260430401e-02 - 2.034596474052595e-02 2.034477721202228e-02 2.034359001578161e-02 2.034240315367684e-02 2.034121662664043e-02 - 2.034003043357028e-02 2.033884457132868e-02 2.033765903741480e-02 2.033647382949949e-02 2.033528894162872e-02 - 2.033410437471255e-02 2.033292013620119e-02 2.033173621775026e-02 2.033055261459435e-02 2.032936933387398e-02 - 2.032818637173341e-02 2.032700371995237e-02 2.032582137330103e-02 2.032463934032926e-02 2.032345762721536e-02 - 2.032227621977112e-02 2.032109511380310e-02 2.031991431266943e-02 2.031873381713771e-02 2.031755362367381e-02 - 2.031637372822898e-02 2.031519413522404e-02 2.031401484060572e-02 2.031283583475656e-02 2.031165712768451e-02 - 2.031047872082618e-02 2.030930060067025e-02 2.030812276414845e-02 2.030694521582938e-02 2.030576796297434e-02 - 2.030459099391277e-02 2.030341430130414e-02 2.030223789822972e-02 2.030106177803277e-02 2.029988592949474e-02 - 2.029871035725545e-02 2.029753506661443e-02 2.029636005659757e-02 2.029518531267896e-02 2.029401083596470e-02 - 2.029283663654064e-02 2.029166270589052e-02 2.029048903923464e-02 2.028931563858370e-02 2.028814250195392e-02 - 2.028696962711050e-02 2.028579701358946e-02 2.028462466440920e-02 2.028345257575578e-02 2.028228073462766e-02 - 2.028110914546667e-02 2.027993781542017e-02 2.027876674182124e-02 2.027759591671596e-02 2.027642533515473e-02 - 2.027525500323221e-02 2.027408491983729e-02 2.027291508043819e-02 2.027174548650143e-02 2.027057613494678e-02 - 2.026940701983228e-02 2.026823814087089e-02 2.026706949898955e-02 2.026590109425394e-02 2.026473292320746e-02 - 2.026356498366547e-02 2.026239727592488e-02 2.026122979922282e-02 2.026006255023894e-02 2.025889552388743e-02 - 2.025772872449768e-02 2.025656215399196e-02 2.025539580342713e-02 2.025422967119250e-02 2.025306375830951e-02 - 2.025189806183918e-02 2.025073258129647e-02 2.024956731656576e-02 2.024840226339874e-02 2.024723742127980e-02 - 2.024607279125879e-02 2.024490836776212e-02 2.024374415071052e-02 2.024258014353189e-02 2.024141633571028e-02 - 2.024025272656142e-02 2.023908932762591e-02 2.023792612793740e-02 2.023676312010299e-02 2.023560031179207e-02 - 2.023443769779265e-02 2.023327527310789e-02 2.023211304323675e-02 2.023095100708355e-02 2.022978916007167e-02 - 2.022862749919407e-02 2.022746602379288e-02 2.022630473371739e-02 2.022514362648272e-02 2.022398270121405e-02 - 2.022282195791762e-02 2.022166139402294e-02 2.022050100551405e-02 2.021934078921764e-02 2.021818074920451e-02 - 2.021702088593813e-02 2.021586119314628e-02 2.021470166428228e-02 2.021354230080554e-02 2.021238311308448e-02 - 2.021122409287018e-02 2.021006523025651e-02 2.020890652716039e-02 2.020774798484683e-02 2.020658960393083e-02 - 2.020543138529554e-02 2.020427332378045e-02 2.020311541298552e-02 2.020195765397637e-02 2.020080004744672e-02 - 2.019964259236717e-02 2.019848528642001e-02 2.019732812869024e-02 2.019617111926010e-02 2.019501425544548e-02 - 2.019385753379127e-02 2.019270095135025e-02 2.019154450793482e-02 2.019038820298517e-02 2.018923203417478e-02 - 2.018807600019563e-02 2.018692010151906e-02 2.018576433995726e-02 2.018460870891364e-02 2.018345320296787e-02 - 2.018229782843392e-02 2.018114258172615e-02 2.017998745649097e-02 2.017883245877245e-02 2.017767758620927e-02 - 2.017652283054322e-02 2.017536819223788e-02 2.017421367319040e-02 2.017305927292809e-02 2.017190498313902e-02 - 2.017075080461503e-02 2.016959674752286e-02 2.016844280049332e-02 2.016728895684716e-02 2.016613522539111e-02 - 2.016498159847723e-02 2.016382807033869e-02 2.016267465040216e-02 2.016152133310211e-02 2.016036811076429e-02 - 2.015921498985646e-02 2.015806197025070e-02 2.015690904702832e-02 2.015575621731957e-02 2.015460347791708e-02 - 2.015345082711757e-02 2.015229826996444e-02 2.015114580452791e-02 2.014999342256183e-02 2.014884112402139e-02 - 2.014768891079059e-02 2.014653678283008e-02 2.014538473229735e-02 2.014423275838842e-02 2.014308087159530e-02 - 2.014192906336537e-02 2.014077732405132e-02 2.013962565684693e-02 2.013847406112768e-02 2.013732253607323e-02 - 2.013617108558620e-02 2.013501970367529e-02 2.013386838304751e-02 2.013271713092954e-02 2.013156594450895e-02 - 2.013041481517404e-02 2.012926374836556e-02 2.012811274375330e-02 2.012696179396415e-02 2.012581089842930e-02 - 2.012466005832842e-02 2.012350927388322e-02 2.012235854139777e-02 2.012120785897021e-02 2.012005722808521e-02 - 2.011890664240422e-02 2.011775609861771e-02 2.011660560342765e-02 2.011545514995805e-02 2.011430473248947e-02 - 2.011315436328775e-02 2.011200403690588e-02 2.011085374071231e-02 2.010970347811273e-02 2.010855325123000e-02 - 2.010740305829795e-02 2.010625289543029e-02 2.010510276184403e-02 2.010395265874816e-02 2.010280258124321e-02 - 2.010165252783862e-02 2.010050250168409e-02 2.009935249835288e-02 2.009820251528310e-02 2.009705255512517e-02 - 2.009590261098061e-02 2.009475267797075e-02 2.009360276160796e-02 2.009245286068316e-02 2.009130297235736e-02 - 2.009015309860190e-02 2.008900323371492e-02 2.008785337125678e-02 2.008670351711407e-02 2.008555367122358e-02 - 2.008440382812401e-02 2.008325398588614e-02 2.008210414433437e-02 2.008095430334925e-02 2.007980445913736e-02 - 2.007865461009197e-02 2.007750475755383e-02 2.007635489836262e-02 2.007520502856765e-02 2.007405514609401e-02 - 2.007290525369839e-02 2.007175535352643e-02 2.007060544261636e-02 2.006945551378952e-02 2.006830556246986e-02 - 2.006715559358176e-02 2.006600560685722e-02 2.006485559907452e-02 2.006370557035152e-02 2.006255552017783e-02 - 2.006140544519211e-02 2.006025533608720e-02 2.005910519424486e-02 2.005795502866486e-02 2.005680483150780e-02 - 2.005565460068358e-02 2.005450434307724e-02 2.005335404752871e-02 2.005220370751987e-02 2.005105333078331e-02 - 2.004990291380246e-02 2.004875245256121e-02 2.004760195075808e-02 2.004645140541610e-02 2.004530081249103e-02 - 2.004415017386308e-02 2.004299948719255e-02 2.004184874893760e-02 2.004069796075558e-02 2.003954711861807e-02 - 2.003839621652469e-02 2.003724525928808e-02 2.003609424691447e-02 2.003494317431652e-02 2.003379204407136e-02 - 2.003264085311753e-02 2.003148959193977e-02 2.003033826577724e-02 2.002918687817827e-02 2.002803542325049e-02 - 2.002688389828578e-02 2.002573230084169e-02 2.002458062668545e-02 2.002342887779152e-02 2.002227705716231e-02 - 2.002112516254241e-02 2.001997318998642e-02 2.001882113644655e-02 2.001766900292078e-02 2.001651678857442e-02 - 2.001536448981540e-02 2.001421210083374e-02 2.001305962366636e-02 2.001190706486020e-02 2.001075441600587e-02 - 2.000960167234195e-02 2.000844883687991e-02 2.000729590520412e-02 2.000614287591466e-02 2.000498975435740e-02 - 2.000383653574291e-02 2.000268321490327e-02 2.000152979351511e-02 2.000037626872929e-02 1.999922263743778e-02 - 1.999806890154111e-02 1.999691505794393e-02 1.999576110265488e-02 1.999460703886217e-02 1.999345286480270e-02 - 1.999229857569377e-02 1.999114417297134e-02 1.998998965543275e-02 1.998883501902821e-02 1.998768026399775e-02 - 1.998652538946059e-02 1.998537039260291e-02 1.998421527483334e-02 1.998306003351848e-02 1.998190465988335e-02 - 1.998074915750420e-02 1.997959352937345e-02 1.997843776879367e-02 1.997728187765045e-02 1.997612585705249e-02 - 1.997496969649909e-02 1.997381339760593e-02 1.997265696528752e-02 1.997150039002939e-02 1.997034367059401e-02 - 1.996918681208352e-02 1.996802981226081e-02 1.996687266788810e-02 1.996571537594770e-02 1.996455793197006e-02 - 1.996340033608642e-02 1.996224259309599e-02 1.996108470119043e-02 1.995992665416334e-02 1.995876844505867e-02 - 1.995761008193637e-02 1.995645156786617e-02 1.995529288784624e-02 1.995413404457776e-02 1.995297504246996e-02 - 1.995181586885687e-02 1.995065652904149e-02 1.994949703248385e-02 1.994833736513130e-02 1.994717752162546e-02 - 1.994601750553184e-02 1.994485731663886e-02 1.994369695406686e-02 1.994253641736701e-02 1.994137570693218e-02 - 1.994021481716852e-02 1.993905373876526e-02 1.993789248152490e-02 1.993673104732284e-02 1.993556942048493e-02 - 1.993440760773439e-02 1.993324561433191e-02 1.993208342679873e-02 1.993092104568069e-02 1.992975847582151e-02 - 1.992859571315939e-02 1.992743275300710e-02 1.992626959353599e-02 1.992510623927749e-02 1.992394268911061e-02 - 1.992277893654564e-02 1.992161497535049e-02 1.992045080942924e-02 1.991928644769617e-02 1.991812187931771e-02 - 1.991695709651699e-02 1.991579210148713e-02 1.991462689658082e-02 1.991346148075462e-02 1.991229584907280e-02 - 1.991113000189043e-02 1.990996393932216e-02 1.990879765723607e-02 1.990763115454515e-02 1.990646443148474e-02 - 1.990529748687400e-02 1.990413031580006e-02 1.990296291532720e-02 1.990179529310021e-02 1.990062744303953e-02 - 1.989945935329500e-02 1.989829103342642e-02 1.989712248515872e-02 1.989595370004318e-02 1.989478467737964e-02 - 1.989361541884726e-02 1.989244592499573e-02 1.989127618925862e-02 1.989010620674421e-02 1.988893597834538e-02 - 1.988776550466197e-02 1.988659478703524e-02 1.988542382727661e-02 1.988425261506333e-02 1.988308114268849e-02 - 1.988190942098788e-02 1.988073745006194e-02 1.987956522359536e-02 1.987839274079954e-02 1.987722000000555e-02 - 1.987604699732070e-02 1.987487372670402e-02 1.987370019241589e-02 1.987252640362364e-02 1.987135234678179e-02 - 1.987017801708705e-02 1.986900342417090e-02 1.986782856130232e-02 1.986665342124566e-02 1.986547800516037e-02 - 1.986430231940191e-02 1.986312636323797e-02 1.986195012209680e-02 1.986077359858922e-02 1.985959679883774e-02 - 1.985841971608161e-02 1.985724235007767e-02 1.985606470192896e-02 1.985488676268764e-02 1.985370853173279e-02 - 1.985253001389235e-02 1.985135120589531e-02 1.985017210671596e-02 1.984899271721913e-02 1.984781303008921e-02 - 1.984663304141680e-02 1.984545275323681e-02 1.984427216416261e-02 1.984309127447186e-02 1.984191008724042e-02 - 1.984072859600846e-02 1.983954679442092e-02 1.983836468369445e-02 1.983718226650526e-02 1.983599954091759e-02 - 1.983481649574990e-02 1.983363313683907e-02 1.983244947316962e-02 1.983126549121019e-02 1.983008118452795e-02 - 1.982889655650101e-02 1.982771161407836e-02 1.982652635127155e-02 1.982534075477381e-02 1.982415483542671e-02 - 1.982296859699974e-02 1.982178202865004e-02 1.982059512679342e-02 1.981940789099672e-02 1.981822032140366e-02 - 1.981703241807743e-02 1.981584417989424e-02 1.981465560415464e-02 1.981346669171603e-02 1.981227744136961e-02 - 1.981108784415540e-02 1.980989790130036e-02 1.980870761757638e-02 1.980751698807925e-02 1.980632600934410e-02 - 1.980513468056937e-02 1.980394300171975e-02 1.980275097143216e-02 1.980155858653555e-02 1.980036584235624e-02 - 1.979917273943820e-02 1.979797928262491e-02 1.979678546489206e-02 1.979559128379798e-02 1.979439674657348e-02 - 1.979320184217468e-02 1.979200656369760e-02 1.979081092352834e-02 1.978961491694981e-02 1.978841853542797e-02 - 1.978722178317891e-02 1.978602465925507e-02 1.978482715855289e-02 1.978362927697639e-02 1.978243101628911e-02 - 1.978123238058121e-02 1.978003336668686e-02 1.977883396860304e-02 1.977763418131442e-02 1.977643400902304e-02 - 1.977523345232920e-02 1.977403250607500e-02 1.977283117205557e-02 1.977162944865208e-02 1.977042732702634e-02 - 1.976922480613855e-02 1.976802188997964e-02 1.976681858355301e-02 1.976561487769950e-02 1.976441076369096e-02 - 1.976320624890566e-02 1.976200133147697e-02 1.976079600616600e-02 1.975959027757971e-02 1.975838414138116e-02 - 1.975717758909272e-02 1.975597062600439e-02 1.975476325369590e-02 1.975355546738499e-02 1.975234726242962e-02 - 1.975113863825908e-02 1.974992959762522e-02 1.974872013640206e-02 1.974751025163228e-02 1.974629994489470e-02 - 1.974508921425132e-02 1.974387805573186e-02 1.974266646519683e-02 1.974145444319864e-02 1.974024199150465e-02 - 1.973902910920840e-02 1.973781579519036e-02 1.973660204598839e-02 1.973538785240977e-02 1.973417321684443e-02 - 1.973295814730416e-02 1.973174263781577e-02 1.973052668253849e-02 1.972931027913797e-02 1.972809342747564e-02 - 1.972687612827085e-02 1.972565838187941e-02 1.972444018482310e-02 1.972322153363352e-02 1.972200242687443e-02 - 1.972078286440720e-02 1.971956284541047e-02 1.971834236691286e-02 1.971712142485657e-02 1.971590001741145e-02 - 1.971467814826898e-02 1.971345581852119e-02 1.971223302479186e-02 1.971100975804211e-02 1.970978601823674e-02 - 1.970856181065497e-02 1.970733713228995e-02 1.970611197806177e-02 1.970488634450282e-02 1.970366023582840e-02 - 1.970243364879734e-02 1.970120657299705e-02 1.969997901837739e-02 1.969875098677333e-02 1.969752246217473e-02 - 1.969629345274012e-02 1.969506396226801e-02 1.969383397141272e-02 1.969260348756574e-02 1.969137252109090e-02 - 1.969014105730648e-02 1.968890909233832e-02 1.968767662961491e-02 1.968644366805134e-02 1.968521020635475e-02 - 1.968397624286150e-02 1.968274177331172e-02 1.968150679588088e-02 1.968027131148579e-02 1.967903532058098e-02 - 1.967779882218197e-02 1.967656181292412e-02 1.967532428489620e-02 1.967408623811289e-02 1.967284768294825e-02 - 1.967160860971293e-02 1.967036900987211e-02 1.966912889102269e-02 1.966788825153749e-02 1.966664708600774e-02 - 1.966540539310703e-02 1.966416317292449e-02 1.966292042476060e-02 1.966167714455673e-02 1.966043333167102e-02 - 1.965918898702837e-02 1.965794410650064e-02 1.965669868705162e-02 1.965545272765306e-02 1.965420622710374e-02 - 1.965295918609461e-02 1.965171160585919e-02 1.965046347855766e-02 1.964921480087875e-02 1.964796557872257e-02 - 1.964671580769246e-02 1.964546548231519e-02 1.964421460325605e-02 1.964296317129598e-02 1.964171118580111e-02 - 1.964045864365522e-02 1.963920554157133e-02 1.963795187629582e-02 1.963669764477085e-02 1.963544284945441e-02 - 1.963418749362842e-02 1.963293156932153e-02 1.963167507295046e-02 1.963041800662418e-02 1.962916036936736e-02 - 1.962790216073956e-02 1.962664338014056e-02 1.962538401760687e-02 1.962412407160046e-02 1.962286355381917e-02 - 1.962160245501161e-02 1.962034076606272e-02 1.961907849332115e-02 1.961781563715828e-02 1.961655219371613e-02 - 1.961528815879130e-02 1.961402353224150e-02 1.961275831461461e-02 1.961149250160691e-02 1.961022609250104e-02 - 1.960895908768241e-02 1.960769148013132e-02 1.960642326897369e-02 1.960515445887448e-02 1.960388504699325e-02 - 1.960261502901453e-02 1.960134440209794e-02 1.960007316755673e-02 1.959880132269796e-02 1.959752885956289e-02 - 1.959625578572781e-02 1.959498210471557e-02 1.959370780282661e-02 1.959243287776576e-02 1.959115733236078e-02 - 1.958988116575855e-02 1.958860437570835e-02 1.958732696070351e-02 1.958604892230215e-02 1.958477025538254e-02 - 1.958349095293616e-02 1.958221102005211e-02 1.958093045820349e-02 1.957964926225915e-02 1.957836742427244e-02 - 1.957708494595253e-02 1.957580183693370e-02 1.957451808573694e-02 1.957323368588814e-02 1.957194864588927e-02 - 1.957066295908808e-02 1.956937661864716e-02 1.956808962863577e-02 1.956680198857452e-02 1.956551369740821e-02 - 1.956422475810978e-02 1.956293516289206e-02 1.956164490198652e-02 1.956035397935251e-02 1.955906239928264e-02 - 1.955777016187055e-02 1.955647725858155e-02 1.955518368630142e-02 1.955388944730695e-02 1.955259453790914e-02 - 1.955129895574477e-02 1.955000270138056e-02 1.954870577278503e-02 1.954740816848287e-02 1.954610988870274e-02 - 1.954481093111385e-02 1.954351129226784e-02 1.954221096901902e-02 1.954090996078360e-02 1.953960826724446e-02 - 1.953830588603245e-02 1.953700281656794e-02 1.953569905855491e-02 1.953439460897686e-02 1.953308946443935e-02 - 1.953178362233442e-02 1.953047708245082e-02 1.952916984426731e-02 1.952786190592496e-02 1.952655326324738e-02 - 1.952524391408689e-02 1.952393385929222e-02 1.952262309949111e-02 1.952131163370209e-02 1.951999945844595e-02 - 1.951868656751035e-02 1.951737295829730e-02 1.951605863555755e-02 1.951474359789877e-02 1.951342784097203e-02 - 1.951211136184995e-02 1.951079415956861e-02 1.950947623396647e-02 1.950815758387342e-02 1.950683820574165e-02 - 1.950551809587482e-02 1.950419725560715e-02 1.950287568354725e-02 1.950155337574423e-02 1.950023033242808e-02 - 1.949890655251627e-02 1.949758203322258e-02 1.949625677745909e-02 1.949493078034667e-02 1.949360402739089e-02 - 1.949227653112452e-02 1.949094829757290e-02 1.948961930480046e-02 1.948828955781861e-02 1.948695906691206e-02 - 1.948562782150981e-02 1.948429581598615e-02 1.948296304982478e-02 1.948162952319633e-02 1.948029523591830e-02 - 1.947896018726217e-02 1.947762437581102e-02 1.947628779922486e-02 1.947495045397724e-02 1.947361233489661e-02 - 1.947227344348770e-02 1.947093378593678e-02 1.946959335022997e-02 1.946825212971076e-02 1.946691013283964e-02 - 1.946556736109183e-02 1.946422381089845e-02 1.946287947598024e-02 1.946153435147304e-02 1.946018843640089e-02 - 1.945884173551620e-02 1.945749424593349e-02 1.945614596164208e-02 1.945479688244431e-02 1.945344700980195e-02 - 1.945209634356683e-02 1.945074487666461e-02 1.944939260492236e-02 1.944803952905332e-02 1.944668565282712e-02 - 1.944533097303948e-02 1.944397548026850e-02 1.944261917903520e-02 1.944126207147254e-02 1.943990414971487e-02 - 1.943854540610747e-02 1.943718584222317e-02 1.943582547177293e-02 1.943446428245481e-02 1.943310226105812e-02 - 1.943173942068859e-02 1.943037575924362e-02 1.942901126749138e-02 1.942764594793762e-02 1.942627979717840e-02 - 1.942491280913776e-02 1.942354498868186e-02 1.942217633546996e-02 1.942080684436220e-02 1.941943651933332e-02 - 1.941806535493775e-02 1.941669333695301e-02 1.941532047644210e-02 1.941394677715704e-02 1.941257222315028e-02 - 1.941119681542690e-02 1.940982056035791e-02 1.940844345901757e-02 1.940706550055424e-02 1.940568667678698e-02 - 1.940430699663802e-02 1.940292645883611e-02 1.940154505765652e-02 1.940016279578962e-02 1.939877966977487e-02 - 1.939739567223053e-02 1.939601080219835e-02 1.939462506233509e-02 1.939323845462366e-02 1.939185096971125e-02 - 1.939046260516801e-02 1.938907336764642e-02 1.938768325184633e-02 1.938629225021856e-02 1.938490035911401e-02 - 1.938350758330235e-02 1.938211392651081e-02 1.938071938447496e-02 1.937932394922459e-02 1.937792761695239e-02 - 1.937653039473651e-02 1.937513227779157e-02 1.937373325789699e-02 1.937233333934693e-02 1.937093252080456e-02 - 1.936953079702195e-02 1.936812816928827e-02 1.936672463690015e-02 1.936532019607867e-02 1.936391484345597e-02 - 1.936250857586552e-02 1.936110139138094e-02 1.935969329410197e-02 1.935828428412852e-02 1.935687435366041e-02 - 1.935546349795341e-02 1.935405171682407e-02 1.935263901452006e-02 1.935122538845629e-02 1.934981083240821e-02 - 1.934839534117787e-02 1.934697891910190e-02 1.934556156924906e-02 1.934414327695751e-02 1.934272404361874e-02 - 1.934130387854031e-02 1.933988276959641e-02 1.933846071416343e-02 1.933703771882020e-02 1.933561377409585e-02 - 1.933418887831357e-02 1.933276303945045e-02 1.933133624375953e-02 1.932990848653697e-02 1.932847978247962e-02 - 1.932705012296452e-02 1.932561949662077e-02 1.932418790536504e-02 1.932275535526071e-02 1.932132184669807e-02 - 1.931988736608416e-02 1.931845191123332e-02 1.931701548648173e-02 1.931557809132799e-02 1.931413972218449e-02 - 1.931270037603072e-02 1.931126005688787e-02 1.930981875761609e-02 1.930837646527647e-02 1.930693319154590e-02 - 1.930548893938918e-02 1.930404369700001e-02 1.930259746628386e-02 1.930115024647330e-02 1.929970202824377e-02 - 1.929825281461415e-02 1.929680260792617e-02 1.929535140092010e-02 1.929389919235001e-02 1.929244598266550e-02 - 1.929099176842190e-02 1.928953654639375e-02 1.928808031414528e-02 1.928662307035359e-02 1.928516481711372e-02 - 1.928370555611205e-02 1.928224527966380e-02 1.928078398206115e-02 1.927932166173262e-02 1.927785831899656e-02 - 1.927639395364510e-02 1.927492856464996e-02 1.927346215243780e-02 1.927199471282116e-02 1.927052623652251e-02 - 1.926905672766994e-02 1.926758618873705e-02 1.926611461056382e-02 1.926464199150991e-02 1.926316833245443e-02 - 1.926169363057714e-02 1.926021788634381e-02 1.925874109903830e-02 1.925726325940621e-02 1.925578436860509e-02 - 1.925430443199749e-02 1.925282343948819e-02 1.925134138889128e-02 1.924985828498051e-02 1.924837411847957e-02 - 1.924688888599618e-02 1.924540259377309e-02 1.924391524090012e-02 1.924242682077230e-02 1.924093732460676e-02 - 1.923944675829762e-02 1.923795512510602e-02 1.923646241448938e-02 1.923496862521413e-02 1.923347375911634e-02 - 1.923197781292445e-02 1.923048078180134e-02 1.922898266296426e-02 1.922748346006174e-02 1.922598317069195e-02 - 1.922448178990142e-02 1.922297932164773e-02 1.922147575963824e-02 1.921997109174737e-02 1.921846532805457e-02 - 1.921695846861228e-02 1.921545049993734e-02 1.921394143207274e-02 1.921243126559395e-02 1.921091998083786e-02 - 1.920940758472120e-02 1.920789408374423e-02 1.920637946562360e-02 1.920486373146851e-02 1.920334688393281e-02 - 1.920182891329169e-02 1.920030981699324e-02 1.919878959725658e-02 1.919726825432456e-02 1.919574578635056e-02 - 1.919422218928470e-02 1.919269745661605e-02 1.919117158884151e-02 1.918964459045353e-02 1.918811645370936e-02 - 1.918658717454346e-02 1.918505675553962e-02 1.918352519296369e-02 1.918199248296462e-02 1.918045862469436e-02 - 1.917892361805418e-02 1.917738746182788e-02 1.917585015265352e-02 1.917431168820606e-02 1.917277206550804e-02 - 1.917123127946213e-02 1.916968933132487e-02 1.916814622316750e-02 1.916660194885779e-02 1.916505650873668e-02 - 1.916350990423480e-02 1.916196212155291e-02 1.916041316033273e-02 1.915886303062994e-02 1.915731172194125e-02 - 1.915575922930148e-02 1.915420555876758e-02 1.915265070860661e-02 1.915109467332810e-02 1.914953744666585e-02 - 1.914797902645569e-02 1.914641941412443e-02 1.914485861314037e-02 1.914329661713828e-02 1.914173341932142e-02 - 1.914016902223032e-02 1.913860342379879e-02 1.913703662029905e-02 1.913546861279183e-02 1.913389939805644e-02 - 1.913232897075573e-02 1.913075733118505e-02 1.912918447844714e-02 1.912761040908805e-02 1.912603511839811e-02 - 1.912445860715432e-02 1.912288088009771e-02 1.912130192853472e-02 1.911972174626816e-02 1.911814033569584e-02 - 1.911655769224527e-02 1.911497381452394e-02 1.911338870990516e-02 1.911180236957772e-02 1.911021478317005e-02 - 1.910862595492130e-02 1.910703588697045e-02 1.910544457683553e-02 1.910385201685182e-02 1.910225820527016e-02 - 1.910066314375077e-02 1.909906682830796e-02 1.909746925477876e-02 1.909587042200599e-02 1.909427033688354e-02 - 1.909266899402551e-02 1.909106637643193e-02 1.908946249114346e-02 1.908785734491775e-02 1.908625093213804e-02 - 1.908464324204344e-02 1.908303427175084e-02 1.908142403234494e-02 1.907981251534393e-02 1.907819971100440e-02 - 1.907658562789714e-02 1.907497026158614e-02 1.907335360333112e-02 1.907173565762024e-02 1.907011642370295e-02 - 1.906849589616872e-02 1.906687407274958e-02 1.906525095073851e-02 1.906362652703246e-02 1.906200080112851e-02 - 1.906037377260159e-02 1.905874543999789e-02 1.905711580005939e-02 1.905548484883143e-02 1.905385258297056e-02 - 1.905221900422594e-02 1.905058411108648e-02 1.904894789413228e-02 1.904731035325132e-02 1.904567149183364e-02 - 1.904403130952197e-02 1.904238980136186e-02 1.904074696113758e-02 1.903910278612417e-02 1.903745727544392e-02 - 1.903581042868199e-02 1.903416224385271e-02 1.903251272055347e-02 1.903086185871027e-02 1.902920965236104e-02 - 1.902755609551852e-02 1.902590118543579e-02 1.902424492713456e-02 1.902258731926820e-02 1.902092835050054e-02 - 1.901926802409253e-02 1.901760634215130e-02 1.901594329530476e-02 1.901427888303375e-02 1.901261310655987e-02 - 1.901094596056572e-02 1.900927744335199e-02 1.900760755425454e-02 1.900593628837979e-02 1.900426364429972e-02 - 1.900258962310978e-02 1.900091422355684e-02 1.899923743835855e-02 1.899755925950979e-02 1.899587969656637e-02 - 1.899419874741247e-02 1.899251639645128e-02 1.899083265299966e-02 1.898914752052511e-02 1.898746098477085e-02 - 1.898577304386013e-02 1.898408369969058e-02 1.898239295076986e-02 1.898070079269564e-02 1.897900722255288e-02 - 1.897731224261929e-02 1.897561584849886e-02 1.897391803334516e-02 1.897221879605241e-02 1.897051814026927e-02 - 1.896881606767167e-02 1.896711256470153e-02 1.896540762798833e-02 1.896370126437186e-02 1.896199347193909e-02 - 1.896028424413336e-02 1.895857357350164e-02 1.895686146124061e-02 1.895514791045918e-02 1.895343292131205e-02 - 1.895171648302300e-02 1.894999858923527e-02 1.894827924721451e-02 1.894655845419708e-02 1.894483620522033e-02 - 1.894311250187257e-02 1.894138733732357e-02 1.893966070463249e-02 1.893793261072514e-02 1.893620305335951e-02 - 1.893447202418282e-02 1.893273952309081e-02 1.893100555094376e-02 1.892927010627177e-02 1.892753318110494e-02 - 1.892579477108063e-02 1.892405487784487e-02 1.892231350329449e-02 1.892057064453369e-02 1.891882629307712e-02 - 1.891708044683251e-02 1.891533310610873e-02 1.891358427035544e-02 1.891183393696100e-02 1.891008210291091e-02 - 1.890832876617924e-02 1.890657392211156e-02 1.890481756749361e-02 1.890305970669826e-02 1.890130033664154e-02 - 1.889953944876527e-02 1.889777703845312e-02 1.889601310905792e-02 1.889424766560776e-02 1.889248069356991e-02 - 1.889071219005931e-02 1.888894216610460e-02 1.888717060771540e-02 1.888539750970531e-02 1.888362288621832e-02 - 1.888184672351093e-02 1.888006901097801e-02 1.887828976119468e-02 1.887650896887177e-02 1.887472662448569e-02 - 1.887294273026847e-02 1.887115728373587e-02 1.886937028132879e-02 1.886758172601296e-02 1.886579161241305e-02 - 1.886399993232671e-02 1.886220669095003e-02 1.886041188581822e-02 1.885861550746470e-02 1.885681755698847e-02 - 1.885501803485419e-02 1.885321693733238e-02 1.885141425906957e-02 1.884960999916156e-02 1.884780416185130e-02 - 1.884599674103886e-02 1.884418772927479e-02 1.884237712445391e-02 1.884056492700234e-02 1.883875113673901e-02 - 1.883693574995443e-02 1.883511876102816e-02 1.883330016667216e-02 1.883147997149076e-02 1.882965817385698e-02 - 1.882783476601560e-02 1.882600973926643e-02 1.882418309568715e-02 1.882235484340025e-02 1.882052497417560e-02 - 1.881869348031539e-02 1.881686035975185e-02 1.881502561164409e-02 1.881318923741505e-02 1.881135123913003e-02 - 1.880951160558249e-02 1.880767032900146e-02 1.880582741534564e-02 1.880398286136111e-02 1.880213666245483e-02 - 1.880028882149621e-02 1.879843933370182e-02 1.879658819228311e-02 1.879473539862031e-02 1.879288094991765e-02 - 1.879102484097325e-02 1.878916707209326e-02 1.878730764191372e-02 1.878544654683108e-02 1.878358378459472e-02 - 1.878171935183507e-02 1.877985324430765e-02 1.877798546179407e-02 1.877611600228067e-02 1.877424486050507e-02 - 1.877237203778229e-02 1.877049753324887e-02 1.876862133863330e-02 1.876674345293673e-02 1.876486387617420e-02 - 1.876298260257535e-02 1.876109963059111e-02 1.875921496034764e-02 1.875732858848502e-02 1.875544051216185e-02 - 1.875355072885378e-02 1.875165923449702e-02 1.874976602623304e-02 1.874787110336161e-02 1.874597446797304e-02 - 1.874407611425766e-02 1.874217603022874e-02 1.874027422146802e-02 1.873837068906284e-02 1.873646542198345e-02 - 1.873455842189881e-02 1.873264969164939e-02 1.873073922656172e-02 1.872882701964194e-02 1.872691306648714e-02 - 1.872499736923527e-02 1.872307992509612e-02 1.872116072949887e-02 1.871923978227258e-02 1.871731708186487e-02 - 1.871539262387551e-02 1.871346640021372e-02 1.871153841041527e-02 1.870960865979342e-02 1.870767714578883e-02 - 1.870574386089293e-02 1.870380879685916e-02 1.870187195798613e-02 1.869993334446320e-02 1.869799294696750e-02 - 1.869605076691687e-02 1.869410680376838e-02 1.869216104730458e-02 1.869021349836844e-02 1.868826416022470e-02 - 1.868631302853863e-02 1.868436009644664e-02 1.868240535897862e-02 1.868044881818047e-02 1.867849047172725e-02 - 1.867653031474529e-02 1.867456834731333e-02 1.867260456736053e-02 1.867063897034608e-02 1.866867155351236e-02 - 1.866670231459311e-02 1.866473125095620e-02 1.866275835809391e-02 1.866078363356833e-02 1.865880707775009e-02 - 1.865682868564128e-02 1.865484845476688e-02 1.865286638889887e-02 1.865088247751579e-02 1.864889671303901e-02 - 1.864690910747520e-02 1.864491965354244e-02 1.864292833855512e-02 1.864093516946379e-02 1.863894014384585e-02 - 1.863694325319922e-02 1.863494449952898e-02 1.863294388193027e-02 1.863094139526787e-02 1.862893703607748e-02 - 1.862693080034535e-02 1.862492268387857e-02 1.862291268732941e-02 1.862090081042848e-02 1.861888704957227e-02 - 1.861687140151818e-02 1.861485386231105e-02 1.861283442704270e-02 1.861081309610335e-02 1.860878986806025e-02 - 1.860676473338590e-02 1.860473769529663e-02 1.860270875778476e-02 1.860067790615180e-02 1.859864513789995e-02 - 1.859661045850656e-02 1.859457386260990e-02 1.859253534675110e-02 1.859049490946049e-02 1.858845254228221e-02 - 1.858640824383296e-02 1.858436201966219e-02 1.858231386031445e-02 1.858026376148910e-02 1.857821173011040e-02 - 1.857615775674864e-02 1.857410183289329e-02 1.857204396224591e-02 1.856998414158087e-02 1.856792236630606e-02 - 1.856585863699762e-02 1.856379295088432e-02 1.856172530348682e-02 1.855965569223371e-02 1.855758411493529e-02 - 1.855551056872843e-02 1.855343504862798e-02 1.855135755357239e-02 1.854927808391809e-02 1.854719662999937e-02 - 1.854511318947389e-02 1.854302776884543e-02 1.854094036342127e-02 1.853885096469986e-02 1.853675956540365e-02 - 1.853466616668727e-02 1.853257077183708e-02 1.853047338096206e-02 1.852837398473379e-02 1.852627257507170e-02 - 1.852416915520061e-02 1.852206372211816e-02 1.851995627104085e-02 1.851784680396669e-02 1.851573531468755e-02 - 1.851362179508880e-02 1.851150625260910e-02 1.850938868433302e-02 1.850726907790290e-02 1.850514743267316e-02 - 1.850302375022463e-02 1.850089802974987e-02 1.849877026321467e-02 1.849664044568886e-02 1.849450857919205e-02 - 1.849237466328984e-02 1.849023869225825e-02 1.848810065567833e-02 1.848596056072587e-02 1.848381841125062e-02 - 1.848167418759208e-02 1.847952788817062e-02 1.847737952020788e-02 1.847522908039946e-02 1.847307656165976e-02 - 1.847092195736722e-02 1.846876526733367e-02 1.846660649126623e-02 1.846444562782898e-02 1.846228267641075e-02 - 1.846011763022634e-02 1.845795047822359e-02 1.845578122357826e-02 1.845360986824314e-02 1.845143640646702e-02 - 1.844926083412144e-02 1.844708314829677e-02 1.844490334652741e-02 1.844272142526039e-02 1.844053738232335e-02 - 1.843835121884711e-02 1.843616292877729e-02 1.843397250473794e-02 1.843177994759022e-02 1.842958525561723e-02 - 1.842738842512387e-02 1.842518945510765e-02 1.842298833954339e-02 1.842078507029563e-02 1.841857965103055e-02 - 1.841637208298309e-02 1.841416236088061e-02 1.841195047731196e-02 1.840973642948215e-02 1.840752022011446e-02 - 1.840530184216091e-02 1.840308128892246e-02 1.840085856103635e-02 1.839863365911139e-02 1.839640658087383e-02 - 1.839417731924000e-02 1.839194587083986e-02 1.838971223370895e-02 1.838747640300020e-02 1.838523837692452e-02 - 1.838299815548432e-02 1.838075573582631e-02 1.837851111106092e-02 1.837626427462707e-02 1.837401523350234e-02 - 1.837176398539980e-02 1.836951051641877e-02 1.836725482529124e-02 1.836499691387402e-02 1.836273678151691e-02 - 1.836047442118306e-02 1.835820982858270e-02 1.835594300692513e-02 1.835367394977665e-02 1.835140264983480e-02 - 1.834912910825698e-02 1.834685332362546e-02 1.834457529066184e-02 1.834229500068380e-02 1.834001245612868e-02 - 1.833772766191195e-02 1.833544060380268e-02 1.833315127769170e-02 1.833085968975407e-02 1.832856583633842e-02 - 1.832626971106521e-02 1.832397130817964e-02 1.832167062581619e-02 1.831936766045366e-02 1.831706240632338e-02 - 1.831475486820015e-02 1.831244504576387e-02 1.831013292472488e-02 1.830781850356614e-02 1.830550178468002e-02 - 1.830318276421879e-02 1.830086143845657e-02 1.829853780375753e-02 1.829621185558813e-02 1.829388359300937e-02 - 1.829155301569956e-02 1.828922011662799e-02 1.828688489153528e-02 1.828454733892483e-02 1.828220745351499e-02 - 1.827986523367206e-02 1.827752068069898e-02 1.827517378500067e-02 1.827282454323407e-02 1.827047296291425e-02 - 1.826811903643735e-02 1.826576275326505e-02 1.826340410954280e-02 1.826104310998728e-02 1.825867975496676e-02 - 1.825631402943589e-02 1.825394593365713e-02 1.825157547349511e-02 1.824920264235266e-02 1.824682743095013e-02 - 1.824444983334214e-02 1.824206985531418e-02 1.823968749396920e-02 1.823730273947125e-02 1.823491559405069e-02 - 1.823252605635143e-02 1.823013411851380e-02 1.822773977727079e-02 1.822534302885856e-02 1.822294386817581e-02 - 1.822054229933361e-02 1.821813832218229e-02 1.821573192447362e-02 1.821332310276354e-02 1.821091185568656e-02 - 1.820849817689734e-02 1.820608206836350e-02 1.820366353310689e-02 1.820124256311412e-02 1.819881915016099e-02 - 1.819639328969794e-02 1.819396498477247e-02 1.819153423068764e-02 1.818910101812068e-02 1.818666535246774e-02 - 1.818422723286477e-02 1.818178664914423e-02 1.817934360000525e-02 1.817689808189780e-02 1.817445008627356e-02 - 1.817199961756547e-02 1.816954667558178e-02 1.816709124568389e-02 1.816463332917677e-02 1.816217292950077e-02 - 1.815971003769815e-02 1.815724465123547e-02 1.815477676809149e-02 1.815230637650250e-02 1.814983348051392e-02 - 1.814735808823705e-02 1.814488018072306e-02 1.814239975267995e-02 1.813991681262074e-02 1.813743135508509e-02 - 1.813494337086823e-02 1.813245285281114e-02 1.812995980445686e-02 1.812746422731492e-02 1.812496611573551e-02 - 1.812246546481565e-02 1.811996226848969e-02 1.811745651920204e-02 1.811494821957559e-02 1.811243737133842e-02 - 1.810992396481434e-02 1.810740799805441e-02 1.810488947142559e-02 1.810236837745802e-02 1.809984471224923e-02 - 1.809731847419077e-02 1.809478965788605e-02 1.809225826197647e-02 1.808972428730369e-02 1.808718772623545e-02 - 1.808464857219165e-02 1.808210682315950e-02 1.807956248210254e-02 1.807701554512131e-02 1.807446599893149e-02 - 1.807191384222250e-02 1.806935907649996e-02 1.806680169977935e-02 1.806424171112906e-02 1.806167910639137e-02 - 1.805911387430984e-02 1.805654601234490e-02 1.805397552118165e-02 1.805140239539148e-02 1.804882663464111e-02 - 1.804624823872755e-02 1.804366719439020e-02 1.804108350087335e-02 1.803849716547347e-02 1.803590817366155e-02 - 1.803331652090480e-02 1.803072221546651e-02 1.802812524400898e-02 1.802552559998909e-02 1.802292329257977e-02 - 1.802031831251088e-02 1.801771065083283e-02 1.801510031065072e-02 1.801248728509480e-02 1.800987156794499e-02 - 1.800725316456288e-02 1.800463207196059e-02 1.800200828229563e-02 1.799938179038418e-02 1.799675259135415e-02 - 1.799412068157979e-02 1.799148606152016e-02 1.798884872978088e-02 1.798620868169797e-02 1.798356590941466e-02 - 1.798092041139825e-02 1.797827219073602e-02 1.797562123473000e-02 1.797296753674024e-02 1.797031110360818e-02 - 1.796765193280976e-02 1.796499001786419e-02 1.796232535287627e-02 1.795965793501132e-02 1.795698776183851e-02 - 1.795431482887613e-02 1.795163913285315e-02 1.794896067070983e-02 1.794627943785036e-02 1.794359543174794e-02 - 1.794090865000600e-02 1.793821908548673e-02 1.793552673496832e-02 1.793283159877326e-02 1.793013367385930e-02 - 1.792743295577707e-02 1.792472944026945e-02 1.792202312682011e-02 1.791931400976357e-02 1.791660207728341e-02 - 1.791388733234035e-02 1.791116977642004e-02 1.790844939977351e-02 1.790572620127331e-02 1.790300018053203e-02 - 1.790027132960331e-02 1.789753964610457e-02 1.789480512776976e-02 1.789206776371137e-02 1.788932755546883e-02 - 1.788658450796398e-02 1.788383860557862e-02 1.788108984645815e-02 1.787833823870088e-02 1.787558376650758e-02 - 1.787282642238153e-02 1.787006621288861e-02 1.786730313584615e-02 1.786453718506033e-02 1.786176835331611e-02 - 1.785899663566110e-02 1.785622203220682e-02 1.785344454733639e-02 1.785066416506327e-02 1.784788087479271e-02 - 1.784509469481547e-02 1.784230561688990e-02 1.783951362363962e-02 1.783671871969004e-02 1.783392090351773e-02 - 1.783112016693977e-02 1.782831650359620e-02 1.782550991644932e-02 1.782270041052123e-02 1.781988796773664e-02 - 1.781707258188517e-02 1.781425426228424e-02 1.781143299909701e-02 1.780860878344276e-02 1.780578161636334e-02 - 1.780295150019453e-02 1.780011843142990e-02 1.779728239750767e-02 1.779444339320670e-02 1.779160141853593e-02 - 1.778875647528820e-02 1.778590855799184e-02 1.778305765851556e-02 1.778020377358821e-02 1.777734690358035e-02 - 1.777448704738365e-02 1.777162419310320e-02 1.776875833746895e-02 1.776588948369731e-02 1.776301762263940e-02 - 1.776014274927566e-02 1.775726486578331e-02 1.775438397030816e-02 1.775150005486545e-02 1.774861310790110e-02 - 1.774572313526677e-02 1.774283013776283e-02 1.773993409898065e-02 1.773703502220879e-02 1.773413291089222e-02 - 1.773122774923129e-02 1.772831953604024e-02 1.772540827370780e-02 1.772249394894422e-02 1.771957656009896e-02 - 1.771665611194296e-02 1.771373259698992e-02 1.771080600888477e-02 1.770787634473108e-02 1.770494360249459e-02 - 1.770200777818149e-02 1.769906886558849e-02 1.769612685929023e-02 1.769318175770428e-02 1.769023356261796e-02 - 1.768728226707501e-02 1.768432786370409e-02 1.768137035050212e-02 1.767840972761326e-02 1.767544598996190e-02 - 1.767247912224100e-02 1.766950912887429e-02 1.766653601772543e-02 1.766355977437013e-02 1.766058039164660e-02 - 1.765759786981226e-02 1.765461220736955e-02 1.765162339764906e-02 1.764863143247870e-02 1.764563631444012e-02 - 1.764263804044564e-02 1.763963660052613e-02 1.763663199590508e-02 1.763362422648862e-02 1.763061328532627e-02 - 1.762759916389677e-02 1.762458185742205e-02 1.762156136756127e-02 1.761853769290762e-02 1.761551082691653e-02 - 1.761248075761478e-02 1.760944748669641e-02 1.760641101894919e-02 1.760337134551661e-02 1.760032845807722e-02 - 1.759728235211478e-02 1.759423302856655e-02 1.759118048266074e-02 1.758812470690578e-02 1.758506570645847e-02 - 1.758200347417691e-02 1.757893799151254e-02 1.757586926700291e-02 1.757279730534286e-02 1.756972209521438e-02 - 1.756664362962799e-02 1.756356190543487e-02 1.756047692143249e-02 1.755738866974527e-02 1.755429714394244e-02 - 1.755120234663686e-02 1.754810427470094e-02 1.754500292288027e-02 1.754189829041229e-02 1.753879037098419e-02 - 1.753567915477636e-02 1.753256463576890e-02 1.752944681640228e-02 1.752632570156945e-02 1.752320127895599e-02 - 1.752007354011609e-02 1.751694248500407e-02 1.751380811099548e-02 1.751067041466748e-02 1.750752939229762e-02 - 1.750438503712632e-02 1.750123734468025e-02 1.749808631552286e-02 1.749493194526630e-02 1.749177422703599e-02 - 1.748861315463852e-02 1.748544872591071e-02 1.748228094036503e-02 1.747910979560325e-02 1.747593528635296e-02 - 1.747275740493088e-02 1.746957614261004e-02 1.746639150171011e-02 1.746320348827029e-02 1.746001208402579e-02 - 1.745681728232032e-02 1.745361909228664e-02 1.745041750587895e-02 1.744721251527593e-02 1.744400411995098e-02 - 1.744079231626219e-02 1.743757709612158e-02 1.743435844889677e-02 1.743113638300998e-02 1.742791090294012e-02 - 1.742468198827393e-02 1.742144963687445e-02 1.741821385208018e-02 1.741497462017237e-02 1.741173194001650e-02 - 1.740848581625378e-02 1.740523623716524e-02 1.740198319673262e-02 1.739872669626729e-02 1.739546673433575e-02 - 1.739220330474240e-02 1.738893639777237e-02 1.738566600801745e-02 1.738239213410604e-02 1.737911477739739e-02 - 1.737583393441487e-02 1.737254959973500e-02 1.736926176792087e-02 1.736597043319887e-02 1.736267559029083e-02 - 1.735937723525189e-02 1.735607536431420e-02 1.735276997535949e-02 1.734946106967137e-02 1.734614863942214e-02 - 1.734283267462293e-02 1.733951317984790e-02 1.733619014933173e-02 1.733286356952035e-02 1.732953344236944e-02 - 1.732619976822115e-02 1.732286254123125e-02 1.731952175476255e-02 1.731617740506982e-02 1.731282949118149e-02 - 1.730947800429541e-02 1.730612293897103e-02 1.730276429900506e-02 1.729940207772190e-02 1.729603626710180e-02 - 1.729266686687025e-02 1.728929387127552e-02 1.728591727431661e-02 1.728253707811547e-02 1.727915327486350e-02 - 1.727576585445017e-02 1.727237482415143e-02 1.726898017713387e-02 1.726558189725253e-02 1.726217999255776e-02 - 1.725877446141184e-02 1.725536528836806e-02 1.725195247427305e-02 1.724853602088567e-02 1.724511592318061e-02 - 1.724169217016580e-02 1.723826475637563e-02 1.723483368674653e-02 1.723139894995541e-02 1.722796053633534e-02 - 1.722451845482723e-02 1.722107270070567e-02 1.721762326419149e-02 1.721417014587169e-02 1.721071333868621e-02 - 1.720725283251134e-02 1.720378862838028e-02 1.720032072298445e-02 1.719684910908383e-02 1.719337378669194e-02 - 1.718989475327181e-02 1.718641200187306e-02 1.718292552719872e-02 1.717943532374793e-02 1.717594138625576e-02 - 1.717244371734551e-02 1.716894231509765e-02 1.716543716617480e-02 1.716192826455456e-02 1.715841561099909e-02 - 1.715489920993168e-02 1.715137904713604e-02 1.714785510917266e-02 1.714432741097788e-02 1.714079594608009e-02 - 1.713726069602739e-02 1.713372166332687e-02 1.713017885016558e-02 1.712663225240283e-02 1.712308185705881e-02 - 1.711952765873538e-02 1.711596966109396e-02 1.711240786053498e-02 1.710884225051524e-02 1.710527282476134e-02 - 1.710169958307061e-02 1.709812252022495e-02 1.709454162136748e-02 1.709095688985418e-02 1.708736832996113e-02 - 1.708377593024533e-02 1.708017968752960e-02 1.707657960032946e-02 1.707297565703870e-02 1.706936785401023e-02 - 1.706575619189593e-02 1.706214066346443e-02 1.705852126552140e-02 1.705489799818787e-02 1.705127085519305e-02 - 1.704763983091843e-02 1.704400492089210e-02 1.704036611449886e-02 1.703672340943711e-02 1.703307681394708e-02 - 1.702942631772786e-02 1.702577190966809e-02 1.702211358937508e-02 1.701845135582294e-02 1.701478520463906e-02 - 1.701111512687454e-02 1.700744111902223e-02 1.700376317991698e-02 1.700008130526762e-02 1.699639548886451e-02 - 1.699270572517141e-02 1.698901201362202e-02 1.698531434790372e-02 1.698161271901581e-02 1.697790713038581e-02 - 1.697419757947398e-02 1.697048405591379e-02 1.696676655885514e-02 1.696304508413142e-02 1.695931962055792e-02 - 1.695559016575875e-02 1.695185672007940e-02 1.694811928170539e-02 1.694437784303563e-02 1.694063239701608e-02 - 1.693688294268234e-02 1.693312947555357e-02 1.692937198914621e-02 1.692561047849961e-02 1.692184494218333e-02 - 1.691807537819241e-02 1.691430177590003e-02 1.691052413380094e-02 1.690674245501956e-02 1.690295672392027e-02 - 1.689916693403359e-02 1.689537309141036e-02 1.689157519031890e-02 1.688777322481082e-02 1.688396719247375e-02 - 1.688015708323470e-02 1.687634289028026e-02 1.687252461641300e-02 1.686870225976892e-02 1.686487581335405e-02 - 1.686104526641643e-02 1.685721061978611e-02 1.685337187596560e-02 1.684952902423863e-02 1.684568205626177e-02 - 1.684183096806695e-02 1.683797575916921e-02 1.683411642637722e-02 1.683025296370582e-02 1.682638536598722e-02 - 1.682251363071521e-02 1.681863775630957e-02 1.681475773295268e-02 1.681087355358095e-02 1.680698521822956e-02 - 1.680309272743823e-02 1.679919607564722e-02 1.679529524908240e-02 1.679139024683375e-02 1.678748107079098e-02 - 1.678356771499038e-02 1.677965016895157e-02 1.677572842703558e-02 1.677180249929987e-02 1.676787237703614e-02 - 1.676393804299063e-02 1.675999950051788e-02 1.675605674951069e-02 1.675210978219402e-02 1.674815858725950e-02 - 1.674420316518524e-02 1.674024352454331e-02 1.673627964747038e-02 1.673231152527195e-02 1.672833916857912e-02 - 1.672436256552257e-02 1.672038170373856e-02 1.671639658470834e-02 1.671240720840105e-02 1.670841357063555e-02 - 1.670441566220705e-02 1.670041347959014e-02 1.669640702110204e-02 1.669239628051189e-02 1.668838125191250e-02 - 1.668436193143650e-02 1.668033831890629e-02 1.667631040878886e-02 1.667227819212758e-02 1.666824166734860e-02 - 1.666420083129591e-02 1.666015567735254e-02 1.665610620005455e-02 1.665205239678242e-02 1.664799426695549e-02 - 1.664393180284348e-02 1.663986499713315e-02 1.663579384792829e-02 1.663171835503466e-02 1.662763851356003e-02 - 1.662355430939835e-02 1.661946574092143e-02 1.661537281150426e-02 1.661127551677910e-02 1.660717384720702e-02 - 1.660306779425839e-02 1.659895736095696e-02 1.659484254425630e-02 1.659072333444665e-02 1.658659972465595e-02 - 1.658247171530552e-02 1.657833931027815e-02 1.657420249617699e-02 1.657006126301349e-02 1.656591561144095e-02 - 1.656176553662080e-02 1.655761103381663e-02 1.655345210211223e-02 1.654928873901935e-02 1.654512093811135e-02 - 1.654094868807454e-02 1.653677198858015e-02 1.653259084096055e-02 1.652840523447503e-02 1.652421516561530e-02 - 1.652002063436291e-02 1.651582163151349e-02 1.651161815099949e-02 1.650741019156900e-02 1.650319775344297e-02 - 1.649898082810461e-02 1.649475940168675e-02 1.649053348141889e-02 1.648630306850305e-02 1.648206814836095e-02 - 1.647782871114676e-02 1.647358475732917e-02 1.646933629656457e-02 1.646508330893651e-02 1.646082578033714e-02 - 1.645656373337251e-02 1.645229715576629e-02 1.644802602626009e-02 1.644375035674409e-02 1.643947014097659e-02 - 1.643518536281393e-02 1.643089602671802e-02 1.642660213310334e-02 1.642230367492405e-02 1.641800064388943e-02 - 1.641369303446324e-02 1.640938084474308e-02 1.640506407467653e-02 1.640074271742540e-02 1.639641675907646e-02 - 1.639208620097271e-02 1.638775104513307e-02 1.638341128505268e-02 1.637906691499287e-02 1.637471792980197e-02 - 1.637036432400064e-02 1.636600609175647e-02 1.636164322915392e-02 1.635727573684415e-02 1.635290360792794e-02 - 1.634852683359730e-02 1.634414541697593e-02 1.633975935494602e-02 1.633536863669590e-02 1.633097325119221e-02 - 1.632657319870386e-02 1.632216848742881e-02 1.631775910539292e-02 1.631334504210032e-02 1.630892629731235e-02 - 1.630450287107613e-02 1.630007475715268e-02 1.629564194133085e-02 1.629120442381021e-02 1.628676220752001e-02 - 1.628231528645751e-02 1.627786365361661e-02 1.627340730437480e-02 1.626894623909321e-02 1.626448044809207e-02 - 1.626000991935131e-02 1.625553465710418e-02 1.625105466086324e-02 1.624656992364918e-02 1.624208044008659e-02 - 1.623758620493278e-02 1.623308721259990e-02 1.622858345750622e-02 1.622407493651434e-02 1.621956164908100e-02 - 1.621504359102545e-02 1.621052075671857e-02 1.620599314061202e-02 1.620146073758967e-02 1.619692354185834e-02 - 1.619238154678624e-02 1.618783475477294e-02 1.618328316706134e-02 1.617872676957040e-02 1.617416555535298e-02 - 1.616959952441603e-02 1.616502867670949e-02 1.616045300241566e-02 1.615587248863419e-02 1.615128714307292e-02 - 1.614669696726644e-02 1.614210195036420e-02 1.613750207990814e-02 1.613289735436475e-02 1.612828778261194e-02 - 1.612367334765880e-02 1.611905403879705e-02 1.611442986870223e-02 1.610980082722066e-02 1.610516690212456e-02 - 1.610052809916244e-02 1.609588441136000e-02 1.609123582829610e-02 1.608658235171540e-02 1.608192397521171e-02 - 1.607726068992654e-02 1.607259250083978e-02 1.606791940362701e-02 1.606324138657220e-02 1.605855844962495e-02 - 1.605387058768025e-02 1.604917779011535e-02 1.604448006054786e-02 1.603977739874237e-02 1.603506979420087e-02 - 1.603035723984084e-02 1.602563973257448e-02 1.602091727188371e-02 1.601618984720332e-02 1.601145745295015e-02 - 1.600672010067149e-02 1.600197777942985e-02 1.599723047266619e-02 1.599247818462375e-02 1.598772091449355e-02 - 1.598295865408641e-02 1.597819139147786e-02 1.597341912912636e-02 1.596864187530068e-02 1.596385961058315e-02 - 1.595907232771693e-02 1.595428003613896e-02 1.594948272828454e-02 1.594468039178993e-02 1.593987301780130e-02 - 1.593506061365002e-02 1.593024318102167e-02 1.592542070422077e-02 1.592059317798925e-02 1.591576060279083e-02 - 1.591092297799217e-02 1.590608029141302e-02 1.590123253274349e-02 1.589637971157846e-02 1.589152182656434e-02 - 1.588665886609507e-02 1.588179081847464e-02 1.587691768450550e-02 1.587203947045915e-02 1.586715616213467e-02 - 1.586226775168990e-02 1.585737424168921e-02 1.585247562649581e-02 1.584757190117160e-02 1.584266306445842e-02 - 1.583774911091078e-02 1.583283003450806e-02 1.582790583090947e-02 1.582297649499978e-02 1.581804202355953e-02 - 1.581310241701619e-02 1.580815766650671e-02 1.580320776320766e-02 1.579825271139450e-02 1.579329250537274e-02 - 1.578832713506978e-02 1.578335660262603e-02 1.577838090296324e-02 1.577340002574811e-02 1.576841397243399e-02 - 1.576342274326813e-02 1.575842633194578e-02 1.575342472205075e-02 1.574841791148685e-02 1.574340591569888e-02 - 1.573838872006093e-02 1.573336631006632e-02 1.572833869008299e-02 1.572330586230670e-02 1.571826781924578e-02 - 1.571322454052314e-02 1.570817603062760e-02 1.570312230059812e-02 1.569806333998715e-02 1.569299913693516e-02 - 1.568792968457186e-02 1.568285498663007e-02 1.567777503779379e-02 1.567268982728102e-02 1.566759935997030e-02 - 1.566250363482262e-02 1.565740264102256e-02 1.565229637077196e-02 1.564718482295817e-02 1.564206800099241e-02 - 1.563694589151567e-02 1.563181848599405e-02 1.562668579194260e-02 1.562154780177149e-02 1.561640450642917e-02 - 1.561125590888111e-02 1.560610200797837e-02 1.560094279515962e-02 1.559577825343192e-02 1.559060838842812e-02 - 1.558543321151646e-02 1.558025270088283e-02 1.557506685188879e-02 1.556987567405825e-02 1.556467915294808e-02 - 1.555947727806998e-02 1.555427005014520e-02 1.554905747326830e-02 1.554383954557267e-02 1.553861625685508e-02 - 1.553338760005679e-02 1.552815357203842e-02 1.552291417232042e-02 1.551766939022104e-02 1.551241921985975e-02 - 1.550716367246923e-02 1.550190274051892e-02 1.549663640983429e-02 1.549136467943576e-02 1.548608754911306e-02 - 1.548080501516420e-02 1.547551706650131e-02 1.547022370107663e-02 1.546492492363977e-02 1.545962073006300e-02 - 1.545431111106912e-02 1.544899605692932e-02 1.544367557060635e-02 1.543834964941066e-02 1.543301828099291e-02 - 1.542768146907574e-02 1.542233921474585e-02 1.541699150599057e-02 1.541163833967913e-02 1.540627971422265e-02 - 1.540091562222576e-02 1.539554606062004e-02 1.539017102808156e-02 1.538479052048013e-02 1.537940453376258e-02 - 1.537401306270197e-02 1.536861609811398e-02 1.536321364249661e-02 1.535780570199338e-02 1.535239225620149e-02 - 1.534697329939463e-02 1.534154884369051e-02 1.533611887960563e-02 1.533068339829330e-02 1.532524239983298e-02 - 1.531979587995433e-02 1.531434383110085e-02 1.530888624554550e-02 1.530342313142362e-02 1.529795449144603e-02 - 1.529248030485156e-02 1.528700056732233e-02 1.528151528324413e-02 1.527602445059826e-02 1.527052806021316e-02 - 1.526502610370102e-02 1.525951858764995e-02 1.525400550804322e-02 1.524848685322667e-02 1.524296262660809e-02 - 1.523743282528689e-02 1.523189743753784e-02 1.522635646012132e-02 1.522080989370855e-02 1.521525773883866e-02 - 1.520969998584297e-02 1.520413662809972e-02 1.519856766896251e-02 1.519299310438481e-02 1.518741292689401e-02 - 1.518182713051541e-02 1.517623571498702e-02 1.517063867977171e-02 1.516503601659771e-02 1.515942772580205e-02 - 1.515381380882217e-02 1.514819425008754e-02 1.514256904339338e-02 1.513693819284546e-02 1.513130169987854e-02 - 1.512565955837021e-02 1.512001175774349e-02 1.511435830052952e-02 1.510869918485496e-02 1.510303439909880e-02 - 1.509736393861015e-02 1.509168780464220e-02 1.508600600178219e-02 1.508031852355242e-02 1.507462535986425e-02 - 1.506892650464710e-02 1.506322195838325e-02 1.505751172137055e-02 1.505179578553525e-02 1.504607414992266e-02 - 1.504034681527993e-02 1.503461377008154e-02 1.502887501067205e-02 1.502313053999477e-02 1.501738035243006e-02 - 1.501162444030474e-02 1.500586279803602e-02 1.500009542963074e-02 1.499432233574762e-02 1.498854350912934e-02 - 1.498275894315130e-02 1.497696863387312e-02 1.497117258012378e-02 1.496537077480856e-02 1.495956321394884e-02 - 1.495374990400090e-02 1.494793083920974e-02 1.494210600904758e-02 1.493627541059610e-02 1.493043904648383e-02 - 1.492459691659297e-02 1.491874900408085e-02 1.491289530722370e-02 1.490703583623931e-02 1.490117058646935e-02 - 1.489529954725381e-02 1.488942270892006e-02 1.488354007804980e-02 1.487765165385858e-02 1.487175742273507e-02 - 1.486585738883519e-02 1.485995155398175e-02 1.485403990610964e-02 1.484812243988829e-02 1.484219915557141e-02 - 1.483627005584607e-02 1.483033513203473e-02 1.482439437542072e-02 1.481844779264578e-02 1.481249538141862e-02 - 1.480653713381494e-02 1.480057304868135e-02 1.479460312202780e-02 1.478862734716873e-02 1.478264572087699e-02 - 1.477665824308106e-02 1.477066491441443e-02 1.476466572742758e-02 1.475866067903805e-02 1.475264977269339e-02 - 1.474663299844858e-02 1.474061034872640e-02 1.473458182710518e-02 1.472854743115566e-02 1.472250715651883e-02 - 1.471646100132783e-02 1.471040896256117e-02 1.470435103749897e-02 1.469828722554372e-02 1.469221751827344e-02 - 1.468614190646898e-02 1.468006039547928e-02 1.467397298615093e-02 1.466787967378610e-02 1.466178045636883e-02 - 1.465567533041493e-02 1.464956428982840e-02 1.464344732703370e-02 1.463732444018100e-02 1.463119563426315e-02 - 1.462506090797482e-02 1.461892025637629e-02 1.461277367320199e-02 1.460662115516677e-02 1.460046270026797e-02 - 1.459429830605704e-02 1.458812796887011e-02 1.458195168595082e-02 1.457576945823491e-02 1.456958128559711e-02 - 1.456338716422361e-02 1.455718708308891e-02 1.455098103823577e-02 1.454476903226018e-02 1.453855106504101e-02 - 1.453232713525658e-02 1.452609724028033e-02 1.451986137384772e-02 1.451361953112174e-02 1.450737171027855e-02 - 1.450111790831084e-02 1.449485812287890e-02 1.448859235383744e-02 1.448232060352556e-02 1.447604287018101e-02 - 1.446975914267516e-02 1.446346941597466e-02 1.445717368938523e-02 1.445087196279080e-02 1.444456423724572e-02 - 1.443825051237331e-02 1.443193078136921e-02 1.442560503975330e-02 1.441927328581930e-02 1.441293551683267e-02 - 1.440659172970616e-02 1.440024192165075e-02 1.439388609177658e-02 1.438752424156573e-02 1.438115637277796e-02 - 1.437478247503487e-02 1.436840254149195e-02 1.436201657648160e-02 1.435562457263202e-02 1.434922652522855e-02 - 1.434282244486077e-02 1.433641232984850e-02 1.432999617114929e-02 1.432357396196595e-02 1.431714570255755e-02 - 1.431071139387867e-02 1.430427102559402e-02 1.429782460021014e-02 1.429137212732056e-02 1.428491359501307e-02 - 1.427844899676062e-02 1.427197833606156e-02 1.426550161130239e-02 1.425901881685885e-02 1.425252994564961e-02 - 1.424603499980085e-02 1.423953398385027e-02 1.423302689906778e-02 1.422651373475527e-02 1.421999448399202e-02 - 1.421346915585374e-02 1.420693774198730e-02 1.420040023237321e-02 1.419385663850131e-02 1.418730696003290e-02 - 1.418075118751426e-02 1.417418931634679e-02 1.416762135086922e-02 1.416104729584521e-02 1.415446713263836e-02 - 1.414788085973522e-02 1.414128849363525e-02 1.413469002361970e-02 1.412808544052846e-02 1.412147474772301e-02 - 1.411485794712882e-02 1.410823503604182e-02 1.410160600672222e-02 1.409497085818714e-02 1.408832959214252e-02 - 1.408168220875668e-02 1.407502870564407e-02 1.406836907961611e-02 1.406170332864153e-02 1.405503144837146e-02 - 1.404835343608425e-02 1.404166929852345e-02 1.403497903248639e-02 1.402828262916828e-02 1.402158009603205e-02 - 1.401487143048169e-02 1.400815661918214e-02 1.400143566703935e-02 1.399470857625501e-02 1.398797534046779e-02 - 1.398123596549795e-02 1.397449045134991e-02 1.396773878380821e-02 1.396098096640959e-02 1.395421700271061e-02 - 1.394744688102961e-02 1.394067060648909e-02 1.393388818692338e-02 1.392709961198955e-02 1.392030488001634e-02 - 1.391350399327543e-02 1.390669694254475e-02 1.389988372719557e-02 1.389306435287330e-02 1.388623881438261e-02 - 1.387940711188756e-02 1.387256925103053e-02 1.386572522405790e-02 1.385887502683316e-02 1.385201866296698e-02 - 1.384515612379329e-02 1.383828740611332e-02 1.383141252098464e-02 1.382453146615934e-02 1.381764423695148e-02 - 1.381075083621117e-02 1.380385125926009e-02 1.379694549932224e-02 1.379003355634722e-02 1.378311543405784e-02 - 1.377619113577579e-02 1.376926065784134e-02 1.376232399626086e-02 1.375538114862362e-02 1.374843211529037e-02 - 1.374147689626999e-02 1.373451549097131e-02 1.372754790081035e-02 1.372057412482435e-02 1.371359415880417e-02 - 1.370660800191563e-02 1.369961565562416e-02 1.369261712158748e-02 1.368561239160383e-02 1.367860146147292e-02 - 1.367158434223160e-02 1.366456103295884e-02 1.365753152816715e-02 1.365049582984413e-02 1.364345393626983e-02 - 1.363640584363454e-02 1.362935155197557e-02 1.362229106201978e-02 1.361522437421294e-02 1.360815148809621e-02 - 1.360107240365773e-02 1.359398712117658e-02 1.358689563898480e-02 1.357979795217255e-02 1.357269405533802e-02 - 1.356558396017600e-02 1.355846767355538e-02 1.355134518540141e-02 1.354421648973967e-02 1.353708158728038e-02 - 1.352994048497773e-02 1.352279317412557e-02 1.351563964921714e-02 1.350847993234027e-02 1.350131401794928e-02 - 1.349414188812881e-02 1.348696355361660e-02 1.347977901858603e-02 1.347258827670450e-02 1.346539132112732e-02 - 1.345818815687027e-02 1.345097879723517e-02 1.344376323611521e-02 1.343654146470481e-02 1.342931348024562e-02 - 1.342207929164266e-02 1.341483890125029e-02 1.340759229714105e-02 1.340033948592649e-02 1.339308047488992e-02 - 1.338581525615185e-02 1.337854383232506e-02 1.337126620737807e-02 1.336398237245951e-02 1.335669232490426e-02 - 1.334939606999042e-02 1.334209361886319e-02 1.333478496691931e-02 1.332747010093965e-02 1.332014902896288e-02 - 1.331282175723704e-02 1.330548828381385e-02 1.329814860211957e-02 1.329080271412866e-02 1.328345063097246e-02 - 1.327609234424045e-02 1.326872784914616e-02 1.326135715657202e-02 1.325398026514318e-02 1.324659716972378e-02 - 1.323920787031880e-02 1.323181236976987e-02 1.322441067219326e-02 1.321700278123619e-02 1.320958869473772e-02 - 1.320216840889533e-02 1.319474192647233e-02 1.318730924299288e-02 1.317987035320805e-02 1.317242527523754e-02 - 1.316497401404441e-02 1.315751655750498e-02 1.315005290457417e-02 1.314258305915991e-02 1.313510702533477e-02 - 1.312762479749873e-02 1.312013637454663e-02 1.311264176674524e-02 1.310514097528989e-02 1.309763399743803e-02 - 1.309012083240218e-02 1.308260148524151e-02 1.307507595779872e-02 1.306754423810231e-02 1.306000633130083e-02 - 1.305246225068735e-02 1.304491199415833e-02 1.303735555888092e-02 1.302979294561730e-02 1.302222416114251e-02 - 1.301464920127586e-02 1.300706805512286e-02 1.299948074007148e-02 1.299188726392925e-02 1.298428761376350e-02 - 1.297668178953030e-02 1.296906979917289e-02 1.296145165196894e-02 1.295382733572278e-02 1.294619684321666e-02 - 1.293856019418804e-02 1.293091739361701e-02 1.292326843600229e-02 1.291561331594024e-02 1.290795203962965e-02 - 1.290028461406370e-02 1.289261102589192e-02 1.288493127982097e-02 1.287724539399148e-02 1.286955336728896e-02 - 1.286185519483855e-02 1.285415087393522e-02 1.284644040779901e-02 1.283872379943217e-02 1.283100105007112e-02 - 1.282327216499671e-02 1.281553714651719e-02 1.280779599126801e-02 1.280004870582322e-02 1.279229529551004e-02 - 1.278453575462785e-02 1.277677008230648e-02 1.276899828322272e-02 1.276122036637128e-02 1.275343633303281e-02 - 1.274564618082443e-02 1.273784991358546e-02 1.273004753391990e-02 1.272223904101719e-02 1.271442442957637e-02 - 1.270660370794978e-02 1.269877689384363e-02 1.269094397773904e-02 1.268310495443295e-02 1.267525983383190e-02 - 1.266740862159357e-02 1.265955131610305e-02 1.265168790986125e-02 1.264381841321034e-02 1.263594283614933e-02 - 1.262806117310012e-02 1.262017342951705e-02 1.261227961209872e-02 1.260437971406514e-02 1.259647373729069e-02 - 1.258856168925583e-02 1.258064357239260e-02 1.257271939240096e-02 1.256478915520078e-02 1.255685285459754e-02 - 1.254891049173029e-02 1.254096207570647e-02 1.253300760376554e-02 1.252504707668881e-02 1.251708050378790e-02 - 1.250910789128773e-02 1.250112924190730e-02 1.249314455497329e-02 1.248515382942968e-02 1.247715706626537e-02 - 1.246915427066142e-02 1.246114545004359e-02 1.245313061093009e-02 1.244510975519442e-02 1.243708288271855e-02 - 1.242904999334644e-02 1.242101108960597e-02 1.241296617602342e-02 1.240491525784085e-02 1.239685833832253e-02 - 1.238879542265411e-02 1.238072651672425e-02 1.237265161832934e-02 1.236457072972670e-02 1.235648385971585e-02 - 1.234839100475330e-02 1.234029216644840e-02 1.233218735967670e-02 1.232407658450629e-02 1.231595983825897e-02 - 1.230783712734204e-02 1.229970846199802e-02 1.229157384500942e-02 1.228343326032102e-02 1.227528672233900e-02 - 1.226713425500730e-02 1.225897584359588e-02 1.225081148758153e-02 1.224264120133804e-02 1.223446498720786e-02 - 1.222628284514866e-02 1.221809477711035e-02 1.220990079161559e-02 1.220170089405064e-02 1.219349508434973e-02 - 1.218528336781141e-02 1.217706575082829e-02 1.216884223701085e-02 1.216061282093886e-02 1.215237750559525e-02 - 1.214413631491834e-02 1.213588924765066e-02 1.212763629639266e-02 1.211937747504947e-02 1.211111278696468e-02 - 1.210284222899338e-02 1.209456580676226e-02 1.208628352659129e-02 1.207799539529086e-02 1.206970142400196e-02 - 1.206140161359375e-02 1.205309595715539e-02 1.204478446558403e-02 1.203646714593309e-02 1.202814399601385e-02 - 1.201981502726849e-02 1.201148024892713e-02 1.200313965960066e-02 1.199479326438714e-02 1.198644106975963e-02 - 1.197808307814890e-02 1.196971928979660e-02 1.196134970757412e-02 1.195297434273665e-02 1.194459320579336e-02 - 1.193620630286995e-02 1.192781363156250e-02 1.191941519457288e-02 1.191101099930699e-02 1.190260104978759e-02 - 1.189418535108248e-02 1.188576391078268e-02 1.187733673904143e-02 1.186890383909906e-02 1.186046520717658e-02 - 1.185202085452967e-02 1.184357078721630e-02 1.183511499765447e-02 1.182665350164435e-02 1.181818631619212e-02 - 1.180971343948878e-02 1.180123487113532e-02 1.179275061618258e-02 1.178426068678883e-02 1.177576508273127e-02 - 1.176726380098327e-02 1.175875685721244e-02 1.175024426443667e-02 1.174172602804813e-02 1.173320214474543e-02 - 1.172467261918110e-02 1.171613746318596e-02 1.170759667473828e-02 1.169905025976067e-02 1.169049823639713e-02 - 1.168194060529573e-02 1.167337736787376e-02 1.166480853596695e-02 1.165623411322526e-02 1.164765410079015e-02 - 1.163906850325271e-02 1.163047732858534e-02 1.162188058835008e-02 1.161327829716097e-02 1.160467045202270e-02 - 1.159605704763531e-02 1.158743810702480e-02 1.157881363156412e-02 1.157018361041755e-02 1.156154807040710e-02 - 1.155290702254676e-02 1.154426045745637e-02 1.153560838867705e-02 1.152695082724772e-02 1.151828777265603e-02 - 1.150961922666123e-02 1.150094519786783e-02 1.149226570234640e-02 1.148358074611148e-02 1.147489033148848e-02 - 1.146619446355201e-02 1.145749315215113e-02 1.144878640491215e-02 1.144007421936342e-02 1.143135660500108e-02 - 1.142263357779597e-02 1.141390514531738e-02 1.140517131031360e-02 1.139643207471360e-02 1.138768744746770e-02 - 1.137893743736065e-02 1.137018205114591e-02 1.136142129485616e-02 1.135265517811921e-02 1.134388371322748e-02 - 1.133510690045416e-02 1.132632474439678e-02 1.131753726104511e-02 1.130874445081251e-02 1.129994631541456e-02 - 1.129114287234474e-02 1.128233413053084e-02 1.127352009524980e-02 1.126470077646612e-02 1.125587617975814e-02 - 1.124704630615814e-02 1.123821115477194e-02 1.122937074388692e-02 1.122052509984340e-02 1.121167421843202e-02 - 1.120281809651728e-02 1.119395674175946e-02 1.118509017235879e-02 1.117621839625571e-02 1.116734140890626e-02 - 1.115845922925729e-02 1.114957187162777e-02 1.114067933143962e-02 1.113178161769016e-02 1.112287874451852e-02 - 1.111397072153178e-02 1.110505754694771e-02 1.109613922373310e-02 1.108721577854856e-02 1.107828721826434e-02 - 1.106935353946150e-02 1.106041475521090e-02 1.105147087839408e-02 1.104252191603393e-02 1.103356786436798e-02 - 1.102460873384026e-02 1.101564454870664e-02 1.100667531791245e-02 1.099770104268406e-02 1.098872172333136e-02 - 1.097973737703280e-02 1.097074801492989e-02 1.096175363206450e-02 1.095275424291130e-02 1.094374986633713e-02 - 1.093474051123777e-02 1.092572618232803e-02 1.091670688531980e-02 1.090768263148204e-02 1.089865342255811e-02 - 1.088961926240844e-02 1.088058018050034e-02 1.087153618780464e-02 1.086248727940419e-02 1.085343346361914e-02 - 1.084437475261139e-02 1.083531115780061e-02 1.082624268419920e-02 1.081716934144050e-02 1.080809114559821e-02 - 1.079900810312026e-02 1.078992022093278e-02 1.078082751184906e-02 1.077172998533364e-02 1.076262764813011e-02 - 1.075352050586474e-02 1.074440857092024e-02 1.073529185762834e-02 1.072617037570664e-02 1.071704413251609e-02 - 1.070791313635956e-02 1.069877740113652e-02 1.068963693244828e-02 1.068049173224424e-02 1.067134181766250e-02 - 1.066218720670161e-02 1.065302791162099e-02 1.064386393117340e-02 1.063469527249458e-02 1.062552195483164e-02 - 1.061634397913101e-02 1.060716135205155e-02 1.059797409807024e-02 1.058878223029125e-02 1.057958575437316e-02 - 1.057038467384018e-02 1.056117900039964e-02 1.055196874533382e-02 1.054275390960051e-02 1.053353451406393e-02 - 1.052431058354873e-02 1.051508211263400e-02 1.050584910821505e-02 1.049661158906674e-02 1.048736956269110e-02 - 1.047812303544552e-02 1.046887201730896e-02 1.045961652742825e-02 1.045035657823219e-02 1.044109217270465e-02 - 1.043182332652317e-02 1.042255005238709e-02 1.041327235213399e-02 1.040399023555266e-02 1.039470371859749e-02 - 1.038541282005145e-02 1.037611754740451e-02 1.036681790639924e-02 1.035751391340543e-02 1.034820558036888e-02 - 1.033889291336949e-02 1.032957591435120e-02 1.032025460242317e-02 1.031092900384275e-02 1.030159911688449e-02 - 1.029226495054825e-02 1.028292652729243e-02 1.027358385071069e-02 1.026423692589549e-02 1.025488576741323e-02 - 1.024553039300053e-02 1.023617081698821e-02 1.022680704740226e-02 1.021743909457171e-02 1.020806697035185e-02 - 1.019869068658227e-02 1.018931025066223e-02 1.017992567348438e-02 1.017053697875713e-02 1.016114417776936e-02 - 1.015174727399650e-02 1.014234627700861e-02 1.013294120450803e-02 1.012353207457940e-02 1.011411888599992e-02 - 1.010470164920459e-02 1.009528038851809e-02 1.008585511657422e-02 1.007642584330934e-02 1.006699257991301e-02 - 1.005755533847607e-02 1.004811412861271e-02 1.003866895746225e-02 1.002921984502842e-02 1.001976681035788e-02 - 1.001030986009602e-02 1.000084900502786e-02 9.991384259025663e-03 9.981915635495017e-03 9.972443141719819e-03 - 9.962966786689603e-03 9.953486595586885e-03 9.944002583039199e-03 9.934514754395770e-03 9.925023122335749e-03 - 9.915527701693664e-03 9.906028505794947e-03 9.896525539473492e-03 9.887018817044350e-03 9.877508364713565e-03 - 9.867994191756903e-03 9.858476305769829e-03 9.848954721540815e-03 9.839429453723526e-03 9.829900512927632e-03 - 9.820367904529967e-03 9.810831649938153e-03 9.801291772225836e-03 9.791748277276684e-03 9.782201174956444e-03 - 9.772650480173910e-03 9.763096209214261e-03 9.753538370443265e-03 9.743976971083063e-03 9.734412038356991e-03 - 9.724843589152831e-03 9.715271627378256e-03 9.705696167153652e-03 9.696117225097080e-03 9.686534815487291e-03 - 9.676948943754414e-03 9.667359623576509e-03 9.657766883492007e-03 9.648170733986708e-03 9.638571181819185e-03 - 9.628968243024477e-03 9.619361933494769e-03 9.609752265452595e-03 9.600139245296816e-03 9.590522893495216e-03 - 9.580903234511828e-03 9.571280275331249e-03 9.561654026946651e-03 9.552024506017841e-03 9.542391727779683e-03 - 9.532755702177183e-03 9.523116437885958e-03 9.513473960404769e-03 9.503828289303256e-03 9.494179431678001e-03 - 9.484527400058637e-03 9.474872210511853e-03 9.465213879778082e-03 9.455552415295903e-03 9.445887829718797e-03 - 9.436220151655284e-03 9.426549394486200e-03 9.416875565725477e-03 9.407198681221749e-03 9.397518758018270e-03 - 9.387835810148322e-03 9.378149843813783e-03 9.368460878589471e-03 9.358768941430739e-03 9.349074041571485e-03 - 9.339376189353358e-03 9.329675400879622e-03 9.319971694171958e-03 9.310265081086165e-03 9.300555568605354e-03 - 9.290843182951191e-03 9.281127946492163e-03 9.271409865969660e-03 9.261688954922952e-03 9.251965230660204e-03 - 9.242238709904914e-03 9.232509401801155e-03 9.222777318787652e-03 9.213042489474691e-03 9.203304930168641e-03 - 9.193564649383718e-03 9.183821661973759e-03 9.174075985705271e-03 9.164327637046287e-03 9.154576623077591e-03 - 9.144822962285418e-03 9.135066683045857e-03 9.125307796249328e-03 9.115546312613307e-03 9.105782249286811e-03 - 9.096015624756502e-03 9.086246452281876e-03 9.076474739187750e-03 9.066700510968253e-03 9.056923792083085e-03 - 9.047144590189744e-03 9.037362919662660e-03 9.027578799121916e-03 9.017792245480461e-03 9.008003268928564e-03 - 8.998211881680073e-03 8.988418113610518e-03 8.978621982540696e-03 8.968823496265647e-03 8.959022672124209e-03 - 8.949219528590024e-03 8.939414081469170e-03 8.929606339864140e-03 8.919796321979990e-03 8.909984056877767e-03 - 8.900169557867096e-03 8.890352835957138e-03 8.880533907981049e-03 8.870712793191068e-03 8.860889506593549e-03 - 8.851064055633283e-03 8.841236465905915e-03 8.831406764712287e-03 8.821574959648875e-03 8.811741064546590e-03 - 8.801905099237244e-03 8.792067082696866e-03 8.782227026145442e-03 8.772384940188230e-03 8.762540855386065e-03 - 8.752694792574688e-03 8.742846759945761e-03 8.732996774006149e-03 8.723144854408183e-03 8.713291019755398e-03 - 8.703435278608567e-03 8.693577647775636e-03 8.683718159456632e-03 8.673856827661263e-03 8.663993662505663e-03 - 8.654128683145933e-03 8.644261909320558e-03 8.634393356690426e-03 8.624523033451901e-03 8.614650964506795e-03 - 8.604777179373340e-03 8.594901686657006e-03 8.585024500118565e-03 8.575145640490715e-03 8.565265126670765e-03 - 8.555382971806235e-03 8.545499187654319e-03 8.535613803632294e-03 8.525726842250045e-03 8.515838312646278e-03 - 8.505948232174527e-03 8.496056621077198e-03 8.486163497882877e-03 8.476268872748003e-03 8.466372762116349e-03 - 8.456475199094931e-03 8.446576199856061e-03 8.436675774300739e-03 8.426773941795081e-03 8.416870722731803e-03 - 8.406966134358667e-03 8.397060186389057e-03 8.387152901959176e-03 8.377244311160385e-03 8.367334425300299e-03 - 8.357423258296441e-03 8.347510830980188e-03 8.337597163605794e-03 8.327682270401855e-03 8.317766161869340e-03 - 8.307848867754637e-03 8.297930413816063e-03 8.288010810083676e-03 8.278090072673102e-03 8.268168221765407e-03 - 8.258245278027963e-03 8.248321253600945e-03 8.238396163758082e-03 8.228470040664376e-03 8.218542903042886e-03 - 8.208614761992156e-03 8.198685637447353e-03 8.188755549837494e-03 8.178824516773604e-03 8.168892549578916e-03 - 8.158959670459199e-03 8.149025910256038e-03 8.139091282816925e-03 8.129155801857130e-03 8.119219487437710e-03 - 8.109282361690508e-03 8.099344440765549e-03 8.089405733754036e-03 8.079466270417937e-03 8.069526079135253e-03 - 8.059585169010465e-03 8.049643556954327e-03 8.039701265060109e-03 8.029758314127560e-03 8.019814717074126e-03 - 8.009870488264625e-03 7.999925660293698e-03 7.989980254561855e-03 7.980034282561204e-03 7.970087763203990e-03 - 7.960140717914167e-03 7.950193166721423e-03 7.940245120231920e-03 7.930296599391260e-03 7.920347637831796e-03 - 7.910398250263278e-03 7.900448449763646e-03 7.890498257622273e-03 7.880547695356892e-03 7.870596780430528e-03 - 7.860645524802819e-03 7.850693955430419e-03 7.840742100859013e-03 7.830789973961963e-03 7.820837591210042e-03 - 7.810884973654219e-03 7.800932143705464e-03 7.790979115476222e-03 7.781025902060369e-03 7.771072537550891e-03 - 7.761119045304192e-03 7.751165435253132e-03 7.741211727248220e-03 7.731257943744334e-03 7.721304105116559e-03 - 7.711350222852130e-03 7.701396316987202e-03 7.691442422531397e-03 7.681488555826352e-03 7.671534729460651e-03 - 7.661580965493510e-03 7.651627286213397e-03 7.641673709645761e-03 7.631720246474624e-03 7.621766924002147e-03 - 7.611813774300424e-03 7.601860809420407e-03 7.591908045212342e-03 7.581955503946372e-03 7.572003208680656e-03 - 7.562051174726026e-03 7.552099414296815e-03 7.542147961065804e-03 7.532196840825635e-03 7.522246063843738e-03 - 7.512295650102864e-03 7.502345622322073e-03 7.492396000716249e-03 7.482446799189802e-03 7.472498037196947e-03 - 7.462549747897286e-03 7.452601950331629e-03 7.442654658211039e-03 7.432707892744488e-03 7.422761676416634e-03 - 7.412816028768508e-03 7.402870961455420e-03 7.392926500328647e-03 7.382982678429822e-03 7.373039508794957e-03 - 7.363097007225734e-03 7.353155196864952e-03 7.343214100532815e-03 7.333273734782904e-03 7.323334112197604e-03 - 7.313395265021593e-03 7.303457220900774e-03 7.293519991033275e-03 7.283583594600794e-03 7.273648054943689e-03 - 7.263713394446934e-03 7.253779626580373e-03 7.243846768480717e-03 7.233914855435080e-03 7.223983908518886e-03 - 7.214053940460562e-03 7.204124972417771e-03 7.194197027491048e-03 7.184270126394881e-03 7.174344280726286e-03 - 7.164419514784642e-03 7.154495863236941e-03 7.144573340914020e-03 7.134651962993328e-03 7.124731752265264e-03 - 7.114812732100897e-03 7.104894920638768e-03 7.094978330575343e-03 7.085062992246606e-03 7.075148934793896e-03 - 7.065236171017366e-03 7.055324719420953e-03 7.045414603125002e-03 7.035505845669364e-03 7.025598461448587e-03 - 7.015692466009597e-03 7.005787894887785e-03 6.995884771371198e-03 6.985983107977662e-03 6.976082925249031e-03 - 6.966184246523457e-03 6.956287093797063e-03 6.946391479271966e-03 6.936497425652844e-03 6.926604968509339e-03 - 6.916714124366364e-03 6.906824907731460e-03 6.896937340931554e-03 6.887051448149962e-03 6.877167248699087e-03 - 6.867284753979424e-03 6.857403994050719e-03 6.847525000658012e-03 6.837647785670592e-03 6.827772367409923e-03 - 6.817898770109592e-03 6.808027016717447e-03 6.798157122708669e-03 6.788289103240300e-03 6.778422992931511e-03 - 6.768558816798320e-03 6.758696587557012e-03 6.748836325648165e-03 6.738978054348659e-03 6.729121795949092e-03 - 6.719267563927435e-03 6.709415379633438e-03 6.699565278400954e-03 6.689717278120727e-03 6.679871393303892e-03 - 6.670027647355804e-03 6.660186063525513e-03 6.650346660981845e-03 6.640509452367944e-03 6.630674466396449e-03 - 6.620841735868644e-03 6.611011273308148e-03 6.601183096392477e-03 6.591357229649247e-03 6.581533696087914e-03 - 6.571712512145987e-03 6.561893692372858e-03 6.552077270290561e-03 6.542263272668194e-03 6.532451712617284e-03 - 6.522642609933696e-03 6.512835987879551e-03 6.503031869590782e-03 6.493230268870023e-03 6.483431205156500e-03 - 6.473634714105858e-03 6.463840816056773e-03 6.454049525191551e-03 6.444260863046832e-03 6.434474853362258e-03 - 6.424691517208967e-03 6.414910866799055e-03 6.405132928351729e-03 6.395357735592168e-03 6.385585303753894e-03 - 6.375815649717760e-03 6.366048796411005e-03 6.356284767471845e-03 6.346523580477974e-03 6.336765248927921e-03 - 6.327009805730009e-03 6.317257279178600e-03 6.307507681412946e-03 6.297761032647583e-03 6.288017356862164e-03 - 6.278276676438099e-03 6.268539005625230e-03 6.258804362658888e-03 6.249072783406197e-03 6.239344289504087e-03 - 6.229618894349891e-03 6.219896619699197e-03 6.210177489065160e-03 6.200461523673893e-03 6.190748736475173e-03 - 6.181039151999554e-03 6.171332804226705e-03 6.161629709556120e-03 6.151929884103313e-03 6.142233350147177e-03 - 6.132540131644584e-03 6.122850247356021e-03 6.113163710170625e-03 6.103480551213418e-03 6.093800800141988e-03 - 6.084124469547710e-03 6.074451578566364e-03 6.064782150905211e-03 6.055116209626953e-03 6.045453769994722e-03 - 6.035794848740185e-03 6.026139480474754e-03 6.016487688229946e-03 6.006839485237500e-03 5.997194892776407e-03 - 5.987553934341584e-03 5.977916631713333e-03 5.968282997802390e-03 5.958653055343909e-03 5.949026838944569e-03 - 5.939404365780911e-03 5.929785651209331e-03 5.920170717549854e-03 5.910559587858684e-03 5.900952281370824e-03 - 5.891348811852907e-03 5.881749208142844e-03 5.872153500225121e-03 5.862561701850070e-03 5.852973831530551e-03 - 5.843389912374926e-03 5.833809966833203e-03 5.824234011006907e-03 5.814662060999971e-03 5.805094150375409e-03 - 5.795530303292347e-03 5.785970532524381e-03 5.776414859211175e-03 5.766863306294991e-03 5.757315894674337e-03 - 5.747772638659374e-03 5.738233559732430e-03 5.728698691311226e-03 5.719168051719483e-03 5.709641656042984e-03 - 5.700119526414031e-03 5.690601685377130e-03 5.681088152168133e-03 5.671578940158426e-03 5.662074076665564e-03 - 5.652573592801510e-03 5.643077502877857e-03 5.633585823810169e-03 5.624098577633230e-03 5.614615788052954e-03 - 5.605137471831965e-03 5.595663642810052e-03 5.586194333773162e-03 5.576729570469775e-03 5.567269364923084e-03 - 5.557813736696195e-03 5.548362708847973e-03 5.538916303890826e-03 5.529474534822445e-03 5.520037420561356e-03 - 5.510604996543656e-03 5.501177281279281e-03 5.491754287530179e-03 5.482336037985177e-03 5.472922555453679e-03 - 5.463513859119052e-03 5.454109961206277e-03 5.444710887376439e-03 5.435316669896643e-03 5.425927322428118e-03 - 5.416542861379438e-03 5.407163309793553e-03 5.397788689388935e-03 5.388419016905312e-03 5.379054306533677e-03 - 5.369694588817857e-03 5.360339890208465e-03 5.350990223294556e-03 5.341645606645782e-03 5.332306062415535e-03 - 5.322971612709802e-03 5.313642271564683e-03 5.304318056285795e-03 5.294999000250198e-03 5.285685123732157e-03 - 5.276376439554206e-03 5.267072968338082e-03 5.257774732353860e-03 5.248481751732874e-03 5.239194038865901e-03 - 5.229911616755654e-03 5.220634516968343e-03 5.211362754853240e-03 5.202096346092698e-03 5.192835312362628e-03 - 5.183579674966123e-03 5.174329450821569e-03 5.165084652994387e-03 5.155845310548846e-03 5.146611450951191e-03 - 5.137383086378589e-03 5.128160234647254e-03 5.118942917508807e-03 5.109731156137037e-03 5.100524965000140e-03 - 5.091324360054826e-03 5.082129373049942e-03 5.072940025255639e-03 5.063756329149303e-03 5.054578304260502e-03 - 5.045405972366202e-03 5.036239353680495e-03 5.027078459118392e-03 5.017923310123222e-03 5.008773940483098e-03 - 4.999630364315774e-03 4.990492594829337e-03 4.981360654331298e-03 4.972234563790402e-03 4.963114339923834e-03 - 4.953999995020500e-03 4.944891556281875e-03 4.935789051765770e-03 4.926692493194353e-03 4.917601897109304e-03 - 4.908517284729773e-03 4.899438676825864e-03 4.890366088012707e-03 4.881299532722441e-03 4.872239041569468e-03 - 4.863184636415129e-03 4.854136328649667e-03 4.845094137498133e-03 4.836058083872883e-03 4.827028186746977e-03 - 4.818004458681770e-03 4.808986918914880e-03 4.799975597861264e-03 4.790970512088721e-03 4.781971675128856e-03 - 4.772979106768043e-03 4.763992827229902e-03 4.755012853632298e-03 4.746039197549013e-03 4.737071883993436e-03 - 4.728110941197518e-03 4.719156380399636e-03 4.710208217424537e-03 4.701266473663848e-03 4.692331168251817e-03 - 4.683402315353613e-03 4.674479928383867e-03 4.665564036556664e-03 4.656654662394768e-03 4.647751816371710e-03 - 4.638855516650367e-03 4.629965783672686e-03 4.621082635909843e-03 4.612206084994354e-03 4.603336148102954e-03 - 4.594472856159325e-03 4.585616225744373e-03 4.576766268345947e-03 4.567923003199363e-03 4.559086450091263e-03 - 4.550256626033265e-03 4.541433541986122e-03 4.532617220194613e-03 4.523807688535670e-03 4.515004959722835e-03 - 4.506209047920159e-03 4.497419972185719e-03 4.488637751873642e-03 4.479862401381760e-03 4.471093932025212e-03 - 4.462332371280023e-03 4.453577742726973e-03 4.444830056583276e-03 4.436089328917552e-03 4.427355578888171e-03 - 4.418628824988929e-03 4.409909078668640e-03 4.401196354933857e-03 4.392490684030716e-03 4.383792083151365e-03 - 4.375100562120779e-03 4.366416138313078e-03 4.357738831525952e-03 4.349068659591380e-03 4.340405630957790e-03 - 4.331749765364269e-03 4.323101091949651e-03 4.314459623208851e-03 4.305825371349630e-03 4.297198354190413e-03 - 4.288578590720092e-03 4.279966095343473e-03 4.271360877578565e-03 4.262762963097229e-03 4.254172376200769e-03 - 4.245589126222103e-03 4.237013227440267e-03 4.228444697962537e-03 4.219883556022182e-03 4.211329813254019e-03 - 4.202783482548908e-03 4.194244591796649e-03 4.185713159116739e-03 4.177189194188086e-03 4.168672712320958e-03 - 4.160163731860882e-03 4.151662270610665e-03 4.143168336754119e-03 4.134681947397693e-03 4.126203130809124e-03 - 4.117731899759874e-03 4.109268265260960e-03 4.100812244167818e-03 4.092363854125291e-03 4.083923109325604e-03 - 4.075490018959178e-03 4.067064605609816e-03 4.058646892914489e-03 4.050236890474988e-03 4.041834611549669e-03 - 4.033440073099425e-03 4.025053291802670e-03 4.016674279190388e-03 4.008303046950822e-03 3.999939621219669e-03 - 3.991584019864232e-03 3.983236251035503e-03 3.974896329846703e-03 3.966564273682151e-03 3.958240098637734e-03 - 3.949923812376889e-03 3.941615430268695e-03 3.933314980874398e-03 3.925022475755094e-03 3.916737923312982e-03 - 3.908461340476090e-03 3.900192744628528e-03 3.891932149238224e-03 3.883679560814138e-03 3.875435000263637e-03 - 3.867198492508630e-03 3.858970045729460e-03 3.850749670926077e-03 3.842537384120139e-03 3.834333202377867e-03 - 3.826137136626801e-03 3.817949195349815e-03 3.809769403427763e-03 3.801597779587331e-03 3.793434330750140e-03 - 3.785279069923421e-03 3.777132013373491e-03 3.768993177352847e-03 3.760862568898475e-03 3.752740200334732e-03 - 3.744626099044159e-03 3.736520277340854e-03 3.728422742215669e-03 3.720333508785603e-03 3.712252593018920e-03 - 3.704180008090329e-03 3.696115760631814e-03 3.688059868276574e-03 3.680012354362612e-03 3.671973228138760e-03 - 3.663942499526064e-03 3.655920182566113e-03 3.647906292785413e-03 3.639900840938008e-03 3.631903834337251e-03 - 3.623915295229000e-03 3.615935242250758e-03 3.607963681828620e-03 3.600000626081414e-03 3.592046089865790e-03 - 3.584100087061132e-03 3.576162625323692e-03 3.568233715505030e-03 3.560313381862740e-03 3.552401637255495e-03 - 3.544498488187401e-03 3.536603947761108e-03 3.528718030587010e-03 3.520840749407267e-03 3.512972109975055e-03 - 3.505112127471606e-03 3.497260824593953e-03 3.489418209893856e-03 3.481584291815555e-03 3.473759083632174e-03 - 3.465942599385497e-03 3.458134849136788e-03 3.450335838875430e-03 3.442545588595099e-03 3.434764116831954e-03 - 3.426991428902786e-03 3.419227535146918e-03 3.411472449427477e-03 3.403726185233638e-03 3.395988749408295e-03 - 3.388260149964055e-03 3.380540409506120e-03 3.372829541439428e-03 3.365127551327278e-03 3.357434450344299e-03 - 3.349750251864305e-03 3.342074968176267e-03 3.334408603200120e-03 3.326751169911567e-03 3.319102691777129e-03 - 3.311463175183513e-03 3.303832626198486e-03 3.296211059114474e-03 3.288598486024217e-03 3.280994915398627e-03 - 3.273400352769854e-03 3.265814815709593e-03 3.258238322074859e-03 3.250670876135365e-03 3.243112486983179e-03 - 3.235563167624456e-03 3.228022929479646e-03 3.220491779361285e-03 3.212969724272006e-03 3.205456783570964e-03 - 3.197952970426890e-03 3.190458290104943e-03 3.182972751519780e-03 3.175496366385864e-03 3.168029146873250e-03 - 3.160571096621216e-03 3.153122225636278e-03 3.145682555500280e-03 3.138252093348739e-03 3.130830843615626e-03 - 3.123418817816768e-03 3.116016027518625e-03 3.108622481356378e-03 3.101238183229207e-03 3.093863147897005e-03 - 3.086497392737253e-03 3.079140921752824e-03 3.071793741871484e-03 3.064455864252268e-03 3.057127299904285e-03 - 3.049808055146270e-03 3.042498134791386e-03 3.035197556645182e-03 3.027906333235584e-03 3.020624467536793e-03 - 3.013351968343262e-03 3.006088846580162e-03 2.998835112089031e-03 2.991590768047797e-03 2.984355822285627e-03 - 2.977130294631421e-03 2.969914192263928e-03 2.962707518230782e-03 2.955510282832787e-03 2.948322496039390e-03 - 2.941144165204636e-03 2.933975293458325e-03 2.926815893073326e-03 2.919665980487675e-03 2.912525559332239e-03 - 2.905394635071103e-03 2.898273217656210e-03 2.891161316595433e-03 2.884058936906487e-03 2.876966081111658e-03 - 2.869882766189157e-03 2.862809005041444e-03 2.855744798230348e-03 2.848690153100023e-03 2.841645079496137e-03 - 2.834609585256340e-03 2.827583673848185e-03 2.820567351490293e-03 2.813560634590312e-03 2.806563530531927e-03 - 2.799576041999259e-03 2.792598177467573e-03 2.785629945309582e-03 2.778671351607254e-03 2.771722398039775e-03 - 2.764783095014263e-03 2.757853459091809e-03 2.750933492568204e-03 2.744023198517816e-03 2.737122585640385e-03 - 2.730231662189404e-03 2.723350432970404e-03 2.716478899800820e-03 2.709617075896625e-03 2.702764973241287e-03 - 2.695922593060963e-03 2.689089940152226e-03 2.682267022316270e-03 2.675453847914084e-03 2.668650418902243e-03 - 2.661856738145520e-03 2.655072822033232e-03 2.648298678030288e-03 2.641534306206961e-03 2.634779712258937e-03 - 2.628034904058933e-03 2.621299888635041e-03 2.614574665771587e-03 2.607859242632423e-03 2.601153634957146e-03 - 2.594457844452072e-03 2.587771872555374e-03 2.581095727373358e-03 2.574429415266960e-03 2.567772939497474e-03 - 2.561126300777387e-03 2.554489510835181e-03 2.547862581281132e-03 2.541245510713479e-03 2.534638303078699e-03 - 2.528040966193904e-03 2.521453505493298e-03 2.514875922225054e-03 2.508308218200437e-03 2.501750407164573e-03 - 2.495202496081871e-03 2.488664484118587e-03 2.482136376281468e-03 2.475618178705269e-03 2.469109895957427e-03 - 2.462611527825166e-03 2.456123079328407e-03 2.449644563898542e-03 2.443175984269443e-03 2.436717340526153e-03 - 2.430268636964234e-03 2.423829879853036e-03 2.417401073311931e-03 2.410982215756923e-03 2.404573315098301e-03 - 2.398174382071132e-03 2.391785416912405e-03 2.385406421217447e-03 2.379037399546287e-03 2.372678357701878e-03 - 2.366329296305038e-03 2.359990214012962e-03 2.353661123666590e-03 2.347342032379030e-03 2.341032936953993e-03 - 2.334733840455562e-03 2.328444748068140e-03 2.322165663885325e-03 2.315896586946297e-03 2.309637519733881e-03 - 2.303388473653537e-03 2.297149451184649e-03 2.290920451297887e-03 2.284701476927273e-03 2.278492533074980e-03 - 2.272293622898508e-03 2.266104742447669e-03 2.259925897918875e-03 2.253757100645447e-03 2.247598348619136e-03 - 2.241449641489242e-03 2.235310983406359e-03 2.229182378556762e-03 2.223063827011661e-03 2.216955326220785e-03 - 2.210856885615230e-03 2.204768511855369e-03 2.198690202073136e-03 2.192621957162963e-03 2.186563780523993e-03 - 2.180515675851768e-03 2.174477640514074e-03 2.168449674335647e-03 2.162431789038673e-03 2.156423986093689e-03 - 2.150426261719325e-03 2.144438618887063e-03 2.138461061015507e-03 2.132493589319895e-03 2.126536199820428e-03 - 2.120588896234097e-03 2.114651688169617e-03 2.108724573757348e-03 2.102807551461262e-03 2.096900623831682e-03 - 2.091003792760502e-03 2.085117057433877e-03 2.079240415028002e-03 2.073373872799373e-03 2.067517436442142e-03 - 2.061671101563673e-03 2.055834867994772e-03 2.050008738194652e-03 2.044192713868095e-03 2.038386792128391e-03 - 2.032590971333173e-03 2.026805260662020e-03 2.021029661329869e-03 2.015264168518725e-03 2.009508783500123e-03 - 2.003763508166370e-03 1.998028342654997e-03 1.992303282805534e-03 1.986588330078225e-03 1.980883492165770e-03 - 1.975188767039759e-03 1.969504151730439e-03 1.963829647004430e-03 1.958165254218237e-03 1.952510971963634e-03 - 1.946866794889960e-03 1.941232728159857e-03 1.935608777640074e-03 1.929994938329363e-03 1.924391207914093e-03 - 1.918797587114099e-03 1.913214077256622e-03 1.907640674795718e-03 1.902077375557082e-03 1.896524186430478e-03 - 1.890981108949087e-03 1.885448138032121e-03 1.879925272541809e-03 1.874412513138102e-03 1.868909859971047e-03 - 1.863417306389931e-03 1.857934851379391e-03 1.852462503653811e-03 1.847000259754348e-03 1.841548114039762e-03 - 1.836106066817225e-03 1.830674118529854e-03 1.825252266916765e-03 1.819840505202892e-03 1.814438836319749e-03 - 1.809047265638602e-03 1.803665787133681e-03 1.798294397101445e-03 1.792933095135866e-03 1.787581880369786e-03 - 1.782240749155103e-03 1.776909697172910e-03 1.771588728179710e-03 1.766277842767543e-03 1.760977035675204e-03 - 1.755686304337379e-03 1.750405647484752e-03 1.745135063548007e-03 1.739874546386865e-03 1.734624093589025e-03 - 1.729383711586370e-03 1.724153396315838e-03 1.718933140719367e-03 1.713722944309894e-03 1.708522806163372e-03 - 1.703332722978997e-03 1.698152687791741e-03 1.692982700783420e-03 1.687822765464940e-03 1.682672875794938e-03 - 1.677533027054054e-03 1.672403217813849e-03 1.667283446525115e-03 1.662173708173832e-03 1.657073995739192e-03 - 1.651984312946546e-03 1.646904660364047e-03 1.641835029387390e-03 1.636775416468660e-03 1.631725820220986e-03 - 1.626686238226539e-03 1.621656663682810e-03 1.616637091835148e-03 1.611627526662728e-03 1.606627964700548e-03 - 1.601638398623349e-03 1.596658825754688e-03 1.591689243408400e-03 1.586729647378206e-03 1.581780030725023e-03 - 1.576840391697073e-03 1.571910732264727e-03 1.566991046477593e-03 1.562081328242421e-03 1.557181574037859e-03 - 1.552291781114454e-03 1.547411944138861e-03 1.542542055154552e-03 1.537682115822498e-03 1.532832126356767e-03 - 1.527992077470792e-03 1.523161963747274e-03 1.518341782422417e-03 1.513531530571088e-03 1.508731200913292e-03 - 1.503940786876937e-03 1.499160290964809e-03 1.494389709200610e-03 1.489629032745148e-03 1.484878257820629e-03 - 1.480137381279299e-03 1.475406398389162e-03 1.470685299850305e-03 1.465974082141071e-03 1.461272748080975e-03 - 1.456581290224651e-03 1.451899700275850e-03 1.447227974089072e-03 1.442566108566721e-03 1.437914097994959e-03 - 1.433271932504185e-03 1.428639611034298e-03 1.424017133356480e-03 1.419404490680891e-03 1.414801676491448e-03 - 1.410208686553135e-03 1.405625516589791e-03 1.401052158609908e-03 1.396488604511052e-03 1.391934855472548e-03 - 1.387390907364871e-03 1.382856750165021e-03 1.378332378783991e-03 1.373817788890047e-03 1.369312974750468e-03 - 1.364817927255285e-03 1.360332641059443e-03 1.355857116711623e-03 1.351391347026849e-03 1.346935323100728e-03 - 1.342489039284644e-03 1.338052491255308e-03 1.333625672740901e-03 1.329208572800934e-03 1.324801188462658e-03 - 1.320403519143769e-03 1.316015555822497e-03 1.311637290544184e-03 1.307268717472159e-03 1.302909831116118e-03 - 1.298560623326278e-03 1.294221085253892e-03 1.289891216124110e-03 1.285571011566486e-03 1.281260461060531e-03 - 1.276959557618139e-03 1.272668295740209e-03 1.268386669608614e-03 1.264114669618853e-03 1.259852288349743e-03 - 1.255599524419093e-03 1.251356371085625e-03 1.247122819189722e-03 1.242898861265979e-03 1.238684491359706e-03 - 1.234479702756933e-03 1.230284484841117e-03 1.226098832748256e-03 1.221922744434409e-03 1.217756210326720e-03 - 1.213599221362577e-03 1.209451770765583e-03 1.205313852635065e-03 1.201185458480448e-03 1.197066577985755e-03 - 1.192957208640432e-03 1.188857345511447e-03 1.184766976969275e-03 1.180686095693037e-03 1.176614695732404e-03 - 1.172552769621902e-03 1.168500307042727e-03 1.164457299537124e-03 1.160423745213695e-03 1.156399636114517e-03 - 1.152384961360659e-03 1.148379714206853e-03 1.144383887440774e-03 1.140397472403066e-03 1.136420458871837e-03 - 1.132452840804467e-03 1.128494614815977e-03 1.124545770440235e-03 1.120606297984056e-03 1.116676190709075e-03 - 1.112755440623707e-03 1.108844038267568e-03 1.104941973598277e-03 1.101049242215234e-03 1.097165838523137e-03 - 1.093291750933755e-03 1.089426970747485e-03 1.085571490835547e-03 1.081725303225761e-03 1.077888396808512e-03 - 1.074060761522748e-03 1.070242395009795e-03 1.066433289590875e-03 1.062633433332422e-03 1.058842817553080e-03 - 1.055061434373011e-03 1.051289275348505e-03 1.047526329409495e-03 1.043772588486000e-03 1.040028047931513e-03 - 1.036292698203525e-03 1.032566529042292e-03 1.028849531681517e-03 1.025141697676040e-03 1.021443017315572e-03 - 1.017753479165712e-03 1.014073077446178e-03 1.010401806565697e-03 1.006739654876394e-03 1.003086612170896e-03 - 9.994426698862881e-04 9.958078198244436e-04 9.921820510029489e-04 9.885653522799815e-04 9.849577193159157e-04 - 9.813591440739670e-04 9.777696142556011e-04 9.741891204675346e-04 9.706176542328248e-04 9.670552065524777e-04 - 9.635017651512704e-04 9.599573207794398e-04 9.564218691437683e-04 9.528953995809905e-04 9.493779002331982e-04 - 9.458693621672339e-04 9.423697766254766e-04 9.388791334439822e-04 9.353974200435674e-04 9.319246293443443e-04 - 9.284607555133966e-04 9.250057861419034e-04 9.215597102726345e-04 9.181225189615299e-04 9.146942031524666e-04 - 9.112747514066988e-04 9.078641516289516e-04 9.044623983719834e-04 9.010694834242857e-04 8.976853937790154e-04 - 8.943101192935385e-04 8.909436508104612e-04 8.875859786393426e-04 8.842370902316334e-04 8.808969751654204e-04 - 8.775656281905130e-04 8.742430385918343e-04 8.709291937982416e-04 8.676240840155020e-04 8.643276998573467e-04 - 8.610400308208924e-04 8.577610636611962e-04 8.544907899714905e-04 8.512292035626933e-04 8.479762917886125e-04 - 8.447320428739457e-04 8.414964471843920e-04 8.382694949325988e-04 8.350511744137459e-04 8.318414728923707e-04 - 8.286403836395943e-04 8.254478982373706e-04 8.222640032931049e-04 8.190886878204532e-04 8.159219419987107e-04 - 8.127637556794064e-04 8.096141160179775e-04 8.064730115089579e-04 8.033404360997527e-04 8.002163789609624e-04 - 7.971008268111541e-04 7.939937692507287e-04 7.908951962853333e-04 7.878050969946667e-04 7.847234577702081e-04 - 7.816502689905088e-04 7.785855239466778e-04 7.755292098590464e-04 7.724813142232633e-04 7.694418267842021e-04 - 7.664107372089749e-04 7.633880335334087e-04 7.603737023812342e-04 7.573677358642847e-04 7.543701253849379e-04 - 7.513808572285544e-04 7.483999196962093e-04 7.454273024026923e-04 7.424629947358947e-04 7.395069836664074e-04 - 7.365592567622367e-04 7.336198070174806e-04 7.306886236388442e-04 7.277656929130117e-04 7.248510036837761e-04 - 7.219445453636994e-04 7.190463067357669e-04 7.161562739946586e-04 7.132744364309508e-04 7.104007867132190e-04 - 7.075353120392018e-04 7.046779992824802e-04 7.018288375861283e-04 6.989878161882759e-04 6.961549229362052e-04 - 6.933301438820412e-04 6.905134700383686e-04 6.877048926511914e-04 6.849043978549774e-04 6.821119732944710e-04 - 6.793276080246700e-04 6.765512910034699e-04 6.737830090783149e-04 6.710227490756584e-04 6.682705030776122e-04 - 6.655262603091742e-04 6.627900067379164e-04 6.600617305924390e-04 6.573414207627890e-04 6.546290656955580e-04 - 6.519246513982958e-04 6.492281662548372e-04 6.465396024423735e-04 6.438589471596415e-04 6.411861867028291e-04 - 6.385213096762252e-04 6.358643049114898e-04 6.332151601148890e-04 6.305738609661260e-04 6.279403974635571e-04 - 6.253147606410383e-04 6.226969365620930e-04 6.200869123319087e-04 6.174846765257772e-04 6.148902176504979e-04 - 6.123035224628875e-04 6.097245772740803e-04 6.071533733723410e-04 6.045898999580564e-04 6.020341426510520e-04 - 5.994860891934145e-04 5.969457280748620e-04 5.944130474177512e-04 5.918880332091087e-04 5.893706730594447e-04 - 5.868609584534629e-04 5.843588766665737e-04 5.818644136544619e-04 5.793775576682911e-04 5.768982970317317e-04 - 5.744266191686133e-04 5.719625097277512e-04 5.695059578510202e-04 5.670569542308351e-04 5.646154849082753e-04 - 5.621815365284883e-04 5.597550972743215e-04 5.573361553519681e-04 5.549246974872960e-04 5.525207095632259e-04 - 5.501241820142805e-04 5.477351040267441e-04 5.453534610951853e-04 5.429792405131840e-04 5.406124304314462e-04 - 5.382530187447214e-04 5.359009913605971e-04 5.335563351904396e-04 5.312190411682156e-04 5.288890968140364e-04 - 5.265664878332606e-04 5.242512018091515e-04 5.219432267978740e-04 5.196425502978362e-04 5.173491576918976e-04 - 5.150630373381158e-04 5.127841797796618e-04 5.105125710953982e-04 5.082481974966798e-04 5.059910467933278e-04 - 5.037411069671739e-04 5.014983647643853e-04 4.992628057533249e-04 4.970344196034297e-04 4.948131954905409e-04 - 4.925991188614672e-04 4.903921766298550e-04 4.881923566574878e-04 4.859996466359864e-04 4.838140324815327e-04 - 4.816355005995136e-04 4.794640414647377e-04 4.772996426854546e-04 4.751422896755638e-04 4.729919697488023e-04 - 4.708486707166207e-04 4.687123799720691e-04 4.665830828962369e-04 4.644607671738101e-04 4.623454230212830e-04 - 4.602370366779194e-04 4.581355941018685e-04 4.560410828358216e-04 4.539534906171381e-04 4.518728041821612e-04 - 4.497990089033435e-04 4.477320938149108e-04 4.456720481170030e-04 4.436188572707195e-04 4.415725078895158e-04 - 4.395329875976124e-04 4.375002838422590e-04 4.354743826722610e-04 4.334552702201095e-04 4.314429363226086e-04 - 4.294373687059989e-04 4.274385527576286e-04 4.254464755700176e-04 4.234611247199864e-04 4.214824874479911e-04 - 4.195105492176435e-04 4.175452972239935e-04 4.155867214135851e-04 4.136348082067204e-04 4.116895433467350e-04 - 4.097509141339746e-04 4.078189081189173e-04 4.058935120995524e-04 4.039747114386321e-04 4.020624945699733e-04 - 4.001568506324645e-04 3.982577652062802e-04 3.963652246433777e-04 3.944792163840573e-04 3.925997278951708e-04 - 3.907267452820787e-04 3.888602542761684e-04 3.870002443827855e-04 3.851467035420477e-04 3.832996170232135e-04 - 3.814589716941001e-04 3.796247550166885e-04 3.777969542187427e-04 3.759755548771444e-04 3.741605437648361e-04 - 3.723519105456335e-04 3.705496418343326e-04 3.687537232626712e-04 3.669641420580878e-04 3.651808856652343e-04 - 3.634039408935104e-04 3.616332930379869e-04 3.598689301103073e-04 3.581108413327368e-04 3.563590123412032e-04 - 3.546134293224166e-04 3.528740796868620e-04 3.511409507353364e-04 3.494140287293094e-04 3.476932993968030e-04 - 3.459787517007610e-04 3.442703736842207e-04 3.425681507579447e-04 3.408720696736798e-04 3.391821178070990e-04 - 3.374982823340253e-04 3.358205489790399e-04 3.341489042294683e-04 3.324833375391577e-04 3.308238358267097e-04 - 3.291703846864138e-04 3.275229711235071e-04 3.258815824857735e-04 3.242462057388915e-04 3.226168264116891e-04 - 3.209934320343741e-04 3.193760116170641e-04 3.177645512713499e-04 3.161590371207419e-04 3.145594562690266e-04 - 3.129657961319975e-04 3.113780432227079e-04 3.097961831114660e-04 3.082202043645004e-04 3.066500952444524e-04 - 3.050858414009347e-04 3.035274294402161e-04 3.019748466354355e-04 3.004280802320956e-04 2.988871162192853e-04 - 2.973519409077311e-04 2.958225434173786e-04 2.942989109163873e-04 2.927810290941792e-04 2.912688849504159e-04 - 2.897624658129895e-04 2.882617587216531e-04 2.867667493909568e-04 2.852774250910157e-04 2.837937747837379e-04 - 2.823157848000407e-04 2.808434412718301e-04 2.793767313619733e-04 2.779156424588856e-04 2.764601612241833e-04 - 2.750102732798498e-04 2.735659669757869e-04 2.721272307826111e-04 2.706940504177620e-04 2.692664125118005e-04 - 2.678443044384447e-04 2.664277133531666e-04 2.650166254907073e-04 2.636110271946842e-04 2.622109073508727e-04 - 2.608162534146021e-04 2.594270512444905e-04 2.580432877716125e-04 2.566649503351083e-04 2.552920261463284e-04 - 2.539245011192165e-04 2.525623623480746e-04 2.512055988243127e-04 2.498541971146173e-04 2.485081433825346e-04 - 2.471674249383843e-04 2.458320291468696e-04 2.445019428356345e-04 2.431771519464020e-04 2.418576445147758e-04 - 2.405434090455539e-04 2.392344316436903e-04 2.379306989304936e-04 2.366321982706708e-04 2.353389171046539e-04 - 2.340508418959193e-04 2.327679588365217e-04 2.314902568213100e-04 2.302177235947735e-04 2.289503450019842e-04 - 2.276881081822984e-04 2.264310006278554e-04 2.251790095285085e-04 2.239321211178975e-04 2.226903224828012e-04 - 2.214536025966827e-04 2.202219483393713e-04 2.189953459440866e-04 2.177737827672056e-04 2.165572463172210e-04 - 2.153457236927424e-04 2.141392010208329e-04 2.129376661694288e-04 2.117411078009580e-04 2.105495123800498e-04 - 2.093628666254358e-04 2.081811579562958e-04 2.070043738711933e-04 2.058325011765904e-04 2.046655262979033e-04 - 2.035034378928387e-04 2.023462239716796e-04 2.011938707312936e-04 2.000463653117907e-04 1.989036953143001e-04 - 1.977658482429478e-04 1.966328105707422e-04 1.955045692837424e-04 1.943811134060168e-04 1.932624302421221e-04 - 1.921485062157297e-04 1.910393287336514e-04 1.899348854684124e-04 1.888351638115297e-04 1.877401500482506e-04 - 1.866498319949601e-04 1.855641985831636e-04 1.844832365124926e-04 1.834069326310023e-04 1.823352746298841e-04 - 1.812682501147551e-04 1.802058461455679e-04 1.791480493724017e-04 1.780948483852737e-04 1.770462314872484e-04 - 1.760021851824818e-04 1.749626967491274e-04 1.739277539439587e-04 1.728973444305181e-04 1.718714550470096e-04 - 1.708500728855944e-04 1.698331869571933e-04 1.688207849549946e-04 1.678128535713188e-04 1.668093803524777e-04 - 1.658103531111011e-04 1.648157594964937e-04 1.638255861976382e-04 1.628398210066413e-04 1.618584529166454e-04 - 1.608814690931768e-04 1.599088565742865e-04 1.589406031206167e-04 1.579766966509897e-04 1.570171246224424e-04 - 1.560618738321770e-04 1.551109328208930e-04 1.541642902068764e-04 1.532219328717612e-04 1.522838482661923e-04 - 1.513500243337891e-04 1.504204489591066e-04 1.494951093483970e-04 1.485739927662749e-04 1.476570882997282e-04 - 1.467443839796364e-04 1.458358667202351e-04 1.449315243896633e-04 1.440313449862068e-04 1.431353162531848e-04 - 1.422434254066872e-04 1.413556604013758e-04 1.404720102486319e-04 1.395924625558734e-04 1.387170046489957e-04 - 1.378456244430427e-04 1.369783100559194e-04 1.361150493062282e-04 1.352558293490397e-04 1.344006387024136e-04 - 1.335494662293593e-04 1.327022993333140e-04 1.318591256583063e-04 1.310199332689028e-04 1.301847103692820e-04 - 1.293534446013900e-04 1.285261234477974e-04 1.277027359881715e-04 1.268832706365997e-04 1.260677147052468e-04 - 1.252560562359565e-04 1.244482834803957e-04 1.236443845356053e-04 1.228443469528238e-04 1.220481588198588e-04 - 1.212558093699401e-04 1.204672865809282e-04 1.196825780471873e-04 1.189016720308052e-04 1.181245568536085e-04 - 1.173512205995857e-04 1.165816508484800e-04 1.158158362776897e-04 1.150537660210759e-04 1.142954277590100e-04 - 1.135408094568152e-04 1.127898995954114e-04 1.120426864956402e-04 1.112991581353023e-04 1.105593024093304e-04 - 1.098231085283700e-04 1.090905652465313e-04 1.083616601800625e-04 1.076363816399760e-04 1.069147182196831e-04 - 1.061966583782502e-04 1.054821899944032e-04 1.047713013150353e-04 1.040639818640637e-04 1.033602200082437e-04 - 1.026600035826387e-04 1.019633211976323e-04 1.012701615275282e-04 1.005805130149820e-04 9.989436355203399e-05 - 9.921170194739147e-05 9.853251765411631e-05 9.785679881782247e-05 9.718453366352614e-05 9.651571091087277e-05 - 9.585031930594751e-05 9.518834724915350e-05 9.452978284703146e-05 9.387461543789448e-05 9.322283420353250e-05 - 9.257442723618249e-05 9.192938310286574e-05 9.128769066247626e-05 9.064933872161225e-05 9.001431561187756e-05 - 8.938260983500139e-05 8.875421104519957e-05 8.812910809646098e-05 8.750728925694059e-05 8.688874335824857e-05 - 8.627345936363417e-05 8.566142611724158e-05 8.505263195150667e-05 8.444706587898619e-05 8.384471762172232e-05 - 8.324557578035348e-05 8.264962891132210e-05 8.205686604727953e-05 8.146727626544971e-05 8.088084838175318e-05 - 8.029757088191735e-05 7.971743327705584e-05 7.914042512047892e-05 7.856653495630607e-05 7.799575166346450e-05 - 7.742806441871695e-05 7.686346239245813e-05 7.630193435494130e-05 7.574346911053080e-05 7.518805653837606e-05 - 7.463568593117825e-05 7.408634594826592e-05 7.354002575090044e-05 7.299671464423979e-05 7.245640185167563e-05 - 7.191907614532941e-05 7.138472679150608e-05 7.085334380230530e-05 7.032491623916224e-05 6.979943301854977e-05 - 6.927688351841825e-05 6.875725716877753e-05 6.824054320182008e-05 6.772673050550591e-05 6.721580881996242e-05 - 6.670776807704407e-05 6.620259726868480e-05 6.570028562031883e-05 6.520082266140781e-05 6.470419793220322e-05 - 6.421040064958054e-05 6.371941996817583e-05 6.323124601185380e-05 6.274586851226631e-05 6.226327655003573e-05 - 6.178345963615301e-05 6.130640743984757e-05 6.083210957777482e-05 6.036055527561582e-05 5.989173409263222e-05 - 5.942563633391719e-05 5.896225154191688e-05 5.850156903007261e-05 5.804357852627766e-05 5.758826983099529e-05 - 5.713563260712647e-05 5.668565617514362e-05 5.623833053838233e-05 5.579364600051564e-05 5.535159201768813e-05 - 5.491215819134343e-05 5.447533442712218e-05 5.404111064124177e-05 5.360947650466450e-05 5.318042157160001e-05 - 5.275393622516995e-05 5.233001062811153e-05 5.190863431238880e-05 5.148979716458554e-05 5.107348923404401e-05 - 5.065970053025621e-05 5.024842074849432e-05 4.983963979263951e-05 4.943334827635427e-05 4.902953621108006e-05 - 4.862819332553702e-05 4.822930973793706e-05 4.783287562882953e-05 4.743888107972067e-05 4.704731588033618e-05 - 4.665817033540254e-05 4.627143510842172e-05 4.588710014690383e-05 4.550515545082771e-05 4.512559130332447e-05 - 4.474839802715817e-05 4.437356575264515e-05 4.400108444300858e-05 4.363094478314062e-05 4.326313737450849e-05 - 4.289765220307346e-05 4.253447954450777e-05 4.217360984935306e-05 4.181503354031293e-05 4.145874078526325e-05 - 4.110472186234567e-05 4.075296770939578e-05 4.040346881442376e-05 4.005621534517384e-05 3.971119780891244e-05 - 3.936840678851008e-05 3.902783280379881e-05 3.868946611492773e-05 3.835329736378580e-05 3.801931758461789e-05 - 3.768751721520911e-05 3.735788667634669e-05 3.703041665089796e-05 3.670509786268472e-05 3.638192090588934e-05 - 3.606087620758478e-05 3.574195476070656e-05 3.542514758568229e-05 3.511044516462031e-05 3.479783817623805e-05 - 3.448731747191980e-05 3.417887390941621e-05 3.387249813623169e-05 3.356818082938366e-05 3.326591326488256e-05 - 3.296568640239042e-05 3.266749086476883e-05 3.237131756688427e-05 3.207715751232477e-05 3.178500166911470e-05 - 3.149484077201404e-05 3.120666582870710e-05 3.092046825328168e-05 3.063623897047349e-05 3.035396883732847e-05 - 3.007364895961203e-05 2.979527048619034e-05 2.951882447255356e-05 2.924430180184470e-05 2.897169381596313e-05 - 2.870099196601076e-05 2.843218722351712e-05 2.816527069305565e-05 2.790023364581556e-05 2.763706736588794e-05 - 2.737576298520704e-05 2.711631161938774e-05 2.685870489191871e-05 2.660293422952212e-05 2.634899073350601e-05 - 2.609686574272242e-05 2.584655068622352e-05 2.559803697386157e-05 2.535131582907573e-05 2.510637865851451e-05 - 2.486321726016628e-05 2.462182305120829e-05 2.438218734168926e-05 2.414430166313400e-05 2.390815760058303e-05 - 2.367374667612129e-05 2.344106023464476e-05 2.321008999935892e-05 2.298082786356460e-05 2.275326527748312e-05 - 2.252739378233606e-05 2.230320509258137e-05 2.208069093512809e-05 2.185984291941186e-05 2.164065260635458e-05 - 2.142311199522572e-05 2.120721298028661e-05 2.099294714303281e-05 2.078030625998752e-05 2.056928220029127e-05 - 2.035986682231265e-05 2.015205183896797e-05 1.994582907956633e-05 1.974119073954575e-05 1.953812872162773e-05 - 1.933663479825456e-05 1.913670094979531e-05 1.893831919578259e-05 1.874148151575467e-05 1.854617976080873e-05 - 1.835240605058427e-05 1.816015268982217e-05 1.796941162992672e-05 1.778017486956627e-05 1.759243456762222e-05 - 1.740618289118282e-05 1.722141193137039e-05 1.703811372777776e-05 1.685628066375182e-05 1.667590509374455e-05 - 1.649697910104339e-05 1.631949489857415e-05 1.614344479286407e-05 1.596882111103627e-05 1.579561606259506e-05 - 1.562382191518076e-05 1.545343126338709e-05 1.528443649706141e-05 1.511682986511545e-05 1.495060379262073e-05 - 1.478575075387210e-05 1.462226320346460e-05 1.446013347627832e-05 1.429935410828208e-05 1.413991783947596e-05 - 1.398181711799591e-05 1.382504440087988e-05 1.366959229690567e-05 1.351545344207288e-05 1.336262041089977e-05 - 1.321108569966174e-05 1.306084210743495e-05 1.291188246012095e-05 1.276419932540445e-05 1.261778537439798e-05 - 1.247263337350260e-05 1.232873611168182e-05 1.218608628547451e-05 1.204467661277090e-05 1.190450010670460e-05 - 1.176554964839514e-05 1.162781797531038e-05 1.149129796332477e-05 1.135598253898601e-05 1.122186462622714e-05 - 1.108893706038782e-05 1.095719281332111e-05 1.082662505098182e-05 1.069722672643097e-05 1.056899077370047e-05 - 1.044191025341683e-05 1.031597825830204e-05 1.019118784797653e-05 1.006753201372614e-05 9.945003972957807e-06 - 9.823597003224701e-06 9.703304169766936e-06 9.584118614966616e-06 9.466033570975281e-06 9.349042284940899e-06 - 9.233137946012443e-06 9.118313747892748e-06 9.004563126071509e-06 8.891879438415634e-06 8.780255908737012e-06 - 8.669685879934477e-06 8.560162746518096e-06 8.451679906731882e-06 8.344230688978416e-06 8.237808513777729e-06 - 8.132406985376577e-06 8.028019552616531e-06 7.924639629701503e-06 7.822260741691212e-06 7.720876445763237e-06 - 7.620480284148957e-06 7.521065743540658e-06 7.422626477381218e-06 7.325156218634066e-06 7.228648532638821e-06 - 7.133097034958690e-06 7.038495423985100e-06 6.944837416133499e-06 6.852116691729515e-06 6.760326924607246e-06 - 6.669461983453847e-06 6.579515704432944e-06 6.490481806747385e-06 6.402354101863004e-06 6.315126452251840e-06 - 6.228792731669073e-06 6.143346764859859e-06 6.058782435540508e-06 5.975093791198315e-06 5.892274772590937e-06 - 5.810319279027480e-06 5.729221306547671e-06 5.648974882411472e-06 5.569574030477156e-06 5.491012732167998e-06 - 5.413285091010444e-06 5.336385298912571e-06 5.260307420244722e-06 5.185045547999291e-06 5.110593849728286e-06 - 5.036946516955677e-06 4.964097720721464e-06 4.892041619202182e-06 4.820772525961763e-06 4.750284753859853e-06 - 4.680572517390150e-06 4.611630102585562e-06 4.543451844884654e-06 4.476032095169469e-06 4.409365173309600e-06 - 4.343445435493855e-06 4.278267378107974e-06 4.213825432046252e-06 4.150113986510229e-06 4.087127510654963e-06 - 4.024860505544460e-06 3.963307478207591e-06 3.902462905546128e-06 3.842321351732513e-06 3.782877469285005e-06 - 3.724125818875267e-06 3.666060976275786e-06 3.608677584308628e-06 3.551970310325800e-06 3.495933813913828e-06 - 3.440562742860537e-06 3.385851865026623e-06 3.331795968547279e-06 3.278389763636986e-06 3.225628015585682e-06 - 3.173505536483180e-06 3.122017155106099e-06 3.071157684657154e-06 3.020921961442045e-06 2.971304937503200e-06 - 2.922301530764381e-06 2.873906622400171e-06 2.826115159163556e-06 2.778922119160790e-06 2.732322492500433e-06 - 2.686311250918327e-06 2.640883427466542e-06 2.596034137909800e-06 2.551758437600915e-06 2.508051388712647e-06 - 2.464908112415978e-06 2.422323753722291e-06 2.380293459852445e-06 2.338812372063220e-06 2.297875719562253e-06 - 2.257478763762930e-06 2.217616712073996e-06 2.178284811840686e-06 2.139478353112250e-06 2.101192645402220e-06 - 2.063422994293474e-06 2.026164721213360e-06 1.989413239181793e-06 1.953163950788084e-06 1.917412231009713e-06 - 1.882153506609316e-06 1.847383234461138e-06 1.813096887995954e-06 1.779289933937322e-06 1.745957881749227e-06 - 1.713096313387221e-06 1.680700776153704e-06 1.648766820412035e-06 1.617290047665242e-06 1.586266083282953e-06 - 1.555690561349229e-06 1.525559115412809e-06 1.495867444877275e-06 1.466611286844381e-06 1.437786342321971e-06 - 1.409388342689011e-06 1.381413059137875e-06 1.353856283643994e-06 1.326713811980504e-06 1.299981452903499e-06 - 1.273655087535907e-06 1.247730601634883e-06 1.222203862466376e-06 1.197070780161529e-06 1.172327293218336e-06 - 1.147969358200551e-06 1.123992934949297e-06 1.100394014305713e-06 1.077168647815731e-06 1.054312872343777e-06 - 1.031822727943270e-06 1.009694299029158e-06 9.879236928228051e-07 9.665070295488333e-07 9.454404356909418e-07 - 9.247200854784831e-07 9.043421911847067e-07 8.843029477247774e-07 8.645985728173436e-07 8.452253193362285e-07 - 8.261794626052351e-07 8.074572875932502e-07 7.890550921071068e-07 7.709692301619030e-07 7.531960701353248e-07 - 7.357319715620587e-07 7.185733287203112e-07 7.017165630618881e-07 6.851581162834306e-07 6.688944388625421e-07 - 6.529220052598067e-07 6.372373411274385e-07 6.218369717692920e-07 6.067174274527125e-07 5.918752755194360e-07 - 5.773071063798692e-07 5.630095271034721e-07 5.489791556312369e-07 5.352126455394792e-07 5.217066864180125e-07 - 5.084579644193884e-07 4.954631845887763e-07 4.827190834887087e-07 4.702224204045173e-07 4.579699684713550e-07 - 4.459585154334098e-07 4.341848919935187e-07 4.226459485782965e-07 4.113385363883691e-07 4.002595352312233e-07 - 3.894058504065020e-07 3.787744086301839e-07 3.683621500987016e-07 3.581660355932383e-07 3.481830676805770e-07 - 3.384102581524441e-07 3.288446273745833e-07 3.194832275224818e-07 3.103231330843525e-07 3.013614373207315e-07 - 2.925952486098954e-07 2.840217031010630e-07 2.756379695267500e-07 2.674412234106971e-07 2.594286576386206e-07 - 2.515974937029081e-07 2.439449754383926e-07 2.364683632309526e-07 2.291649345383248e-07 2.220320002407473e-07 - 2.150668931442167e-07 2.082669548865648e-07 2.016295514473211e-07 1.951520727682157e-07 1.888319311586693e-07 - 1.826665552837694e-07 1.766533931743509e-07 1.707899271779558e-07 1.650736547045015e-07 1.595020857916059e-07 - 1.540727581256184e-07 1.487832309302349e-07 1.436310837043274e-07 1.386139140291348e-07 1.337293426531939e-07 - 1.289750194034745e-07 1.243486077550924e-07 1.198477884856861e-07 1.154702687444825e-07 1.112137774078364e-07 - 1.070760615754017e-07 1.030548878714015e-07 9.914804983102429e-08 9.535336319532080e-08 9.166865877274502e-08 - 8.809178921148019e-08 8.462062987184363e-08 8.125307865123530e-08 7.798705169188094e-08 7.482048486743137e-08 - 7.175134265372113e-08 6.877760756933380e-08 6.589727849023001e-08 6.310837918621049e-08 6.040895419177239e-08 - 5.779706919084610e-08 5.527080986023133e-08 5.282828275733461e-08 5.046762055622123e-08 4.818697371034567e-08 - 4.598451068334482e-08 4.385842456607357e-08 4.180692971968811e-08 3.982825980405518e-08 3.792066966127786e-08 - 3.608243718277188e-08 3.431186206040581e-08 3.260726312426322e-08 3.096697968233847e-08 2.938937298745983e-08 - 2.787282684203093e-08 2.641574418968914e-08 2.501654849393015e-08 2.367368813134603e-08 2.238563078881267e-08 - 2.115086344400587e-08 1.996789606940446e-08 1.883525886916157e-08 1.775150390948272e-08 1.671520402936120e-08 - 1.572495208680648e-08 1.477936511938296e-08 1.387707990026544e-08 1.301675220490221e-08 1.219706138041649e-08 - 1.141670750179082e-08 1.067441065312196e-08 9.968913113355902e-09 9.298978133402818e-09 8.663390331238368e-09 - 8.060955677291694e-09 7.490500025975069e-09 6.950870854385858e-09 6.440937996309972e-09 5.959590797852082e-09 - 5.505739944416565e-09 5.078318901633865e-09 4.676280806472903e-09 4.298600029449081e-09 3.944272776496124e-09 - 3.612315204086912e-09 3.301765808464261e-09 3.011683971683484e-09 2.741149022073358e-09 2.489263438950313e-09 - 2.255150010734707e-09 2.037951439802415e-09 1.836833426869985e-09 1.650981924522248e-09 1.479603458288696e-09 - 1.321927088896133e-09 1.177201927023745e-09 1.044698361371603e-09 9.237089042804517e-10 8.135457713165132e-10 - 7.135428727606122e-10 6.230561233086797e-10 5.414610837010692e-10 4.681552957722881e-10 4.025579739718386e-10 - 3.441080911031397e-10 2.922668865200973e-10 2.465167169238545e-10 2.063598966733955e-10 1.713213823559041e-10 - 1.409467301732644e-10 1.148017117805301e-10 9.247489436372923e-11 7.357503403670199e-11 5.773147403071901e-11 - 4.459623415664643e-11 3.384125546419585e-11 2.515956035071991e-11 1.826656159304613e-11 1.289741553721677e-11 - 8.808852910154413e-12 5.779611749592996e-12 3.608107240050744e-12 2.114775563702074e-12 1.141629414770904e-12 - 5.504076981088132e-13 2.252028793998774e-13 7.135404618680312e-14 1.400208835054596e-14 2.858282411901289e-16 - 0.000000000000000e+00 3.280907692410757e+00 6.559093802140417e+00 9.834554467967374e+00 1.310728583537977e+01 - 1.637728405657552e+01 1.964454529046227e+01 2.290906570265743e+01 2.617084146548816e+01 2.942986875799139e+01 - 3.268614376591378e+01 3.593966268171175e+01 3.919042170455148e+01 4.243841704030890e+01 4.568364490156970e+01 - 4.892610150762930e+01 5.216578308449292e+01 5.540268586487547e+01 5.863680608820168e+01 6.186814000060598e+01 - 6.509668385493259e+01 6.832243391073550e+01 7.154538643427834e+01 7.476553769853463e+01 7.798288398318758e+01 - 8.119742157463018e+01 8.440914676596513e+01 8.761805585700493e+01 9.082414515427180e+01 9.402741097099775e+01 - 9.722784962712448e+01 1.004254574493035e+02 1.036202307708961e+02 1.068121659319733e+02 1.100012592793157e+02 - 1.131875071664140e+02 1.163709059534683e+02 1.195514520073887e+02 1.227291417017950e+02 1.259039714170167e+02 - 1.290759375400930e+02 1.322450364647731e+02 1.354112645915156e+02 1.385746183274891e+02 1.417350940865720e+02 - 1.448926882893522e+02 1.480473973631275e+02 1.511992177419055e+02 1.543481458664036e+02 1.574941781840487e+02 - 1.606373111489777e+02 1.637775412220371e+02 1.669148648707833e+02 1.700492785694823e+02 1.731807787991100e+02 - 1.763093620473519e+02 1.794350248086033e+02 1.825577635839695e+02 1.856775748812652e+02 1.887944552150149e+02 - 1.919084011064531e+02 1.950194090835239e+02 1.981274756808810e+02 2.012325974398883e+02 2.043347709086188e+02 - 2.074339926418558e+02 2.105302592010923e+02 2.136235671545306e+02 2.167139130770834e+02 2.198012935503726e+02 - 2.228857051627302e+02 2.259671445091978e+02 2.290456081915269e+02 2.321210928181784e+02 2.351935950043234e+02 - 2.382631113718425e+02 2.413296385493261e+02 2.443931731720744e+02 2.474537118820972e+02 2.505112513281143e+02 - 2.535657881655549e+02 2.566173190565586e+02 2.596658406699738e+02 2.627113496813596e+02 2.657538427729843e+02 - 2.687933166338259e+02 2.718297679595726e+02 2.748631934526219e+02 2.778935898220815e+02 2.809209537837683e+02 - 2.839452820602094e+02 2.869665713806416e+02 2.899848184810112e+02 2.930000201039745e+02 2.960121729988974e+02 - 2.990212739218558e+02 3.020273196356349e+02 3.050303069097302e+02 3.080302325203465e+02 3.110270932503987e+02 - 3.140208858895110e+02 3.170116072340180e+02 3.199992540869634e+02 3.229838232581013e+02 3.259653115638948e+02 - 3.289437158275174e+02 3.319190328788521e+02 3.348912595544916e+02 3.378603926977383e+02 3.408264291586049e+02 - 3.437893657938130e+02 3.467491994667945e+02 3.497059270476910e+02 3.526595454133537e+02 3.556100514473437e+02 - 3.585574420399318e+02 3.615017140880985e+02 3.644428644955341e+02 3.673808901726388e+02 3.703157880365222e+02 - 3.732475550110041e+02 3.761761880266134e+02 3.791016840205897e+02 3.820240399368814e+02 3.849432527261474e+02 - 3.878593193457557e+02 3.907722367597846e+02 3.936820019390219e+02 3.965886118609651e+02 3.994920635098217e+02 - 4.023923538765087e+02 4.052894799586530e+02 4.081834387605912e+02 4.110742272933696e+02 4.139618425747443e+02 - 4.168462816291812e+02 4.197275414878559e+02 4.226056191886540e+02 4.254805117761704e+02 4.283522163017099e+02 - 4.312207298232872e+02 4.340860494056267e+02 4.369481721201628e+02 4.398070950450389e+02 4.426628152651090e+02 - 4.455153298719365e+02 4.483646359637945e+02 4.512107306456656e+02 4.540536110292430e+02 4.568932742329288e+02 - 4.597297173818351e+02 4.625629376077841e+02 4.653929320493071e+02 4.682196978516460e+02 4.710432321667516e+02 - 4.738635321532851e+02 4.766805949766169e+02 4.794944178088276e+02 4.823049978287075e+02 4.851123322217564e+02 - 4.879164181801841e+02 4.907172529029099e+02 4.935148335955632e+02 4.963091574704831e+02 4.991002217467178e+02 - 5.018880236500261e+02 5.046725604128764e+02 5.074538292744463e+02 5.102318274806237e+02 5.130065522840063e+02 - 5.157780009439010e+02 5.185461707263250e+02 5.213110589040049e+02 5.240726627563774e+02 5.268309795695885e+02 - 5.295860066364945e+02 5.323377412566609e+02 5.350861807363634e+02 5.378313223885873e+02 5.405731635330272e+02 - 5.433117014960885e+02 5.460469336108854e+02 5.487788572172420e+02 5.515074696616928e+02 5.542327682974811e+02 - 5.569547504845609e+02 5.596734135895950e+02 5.623887549859570e+02 5.651007720537292e+02 5.678094621797045e+02 - 5.705148227573850e+02 5.732168511869830e+02 5.759155448754203e+02 5.786109012363282e+02 5.813029176900482e+02 - 5.839915916636313e+02 5.866769205908384e+02 5.893589019121401e+02 5.920375330747167e+02 5.947128115324583e+02 - 5.973847347459648e+02 6.000533001825459e+02 6.027185053162206e+02 6.053803476277183e+02 6.080388246044777e+02 - 6.106939337406476e+02 6.133456725370861e+02 6.159940385013617e+02 6.186390291477520e+02 6.212806419972447e+02 - 6.239188745775372e+02 6.265537244230364e+02 6.291851890748597e+02 6.318132660808333e+02 6.344379529954938e+02 - 6.370592473800871e+02 6.396771468025696e+02 6.422916488376064e+02 6.449027510665734e+02 6.475104510775553e+02 - 6.501147464653474e+02 6.527156348314542e+02 6.553131137840901e+02 6.579071809381794e+02 6.604978339153558e+02 - 6.630850703439634e+02 6.656688878590552e+02 6.682492841023947e+02 6.708262567224546e+02 6.733998033744177e+02 - 6.759699217201766e+02 6.785366094283333e+02 6.810998641742000e+02 6.836596836397980e+02 6.862160655138592e+02 - 6.887690074918247e+02 6.913185072758453e+02 6.938645625747821e+02 6.964071711042051e+02 6.989463305863949e+02 - 7.014820387503412e+02 7.040142933317441e+02 7.065430920730126e+02 7.090684327232666e+02 7.115903130383348e+02 - 7.141087307807558e+02 7.166236837197782e+02 7.191351696313601e+02 7.216431862981700e+02 7.241477315095852e+02 - 7.266488030616937e+02 7.291463987572921e+02 7.316405164058881e+02 7.341311538236981e+02 7.366183088336488e+02 - 7.391019792653765e+02 7.415821629552270e+02 7.440588577462564e+02 7.465320614882301e+02 7.490017720376235e+02 - 7.514679872576214e+02 7.539307050181191e+02 7.563899231957208e+02 7.588456396737411e+02 7.612978523422037e+02 - 7.637465590978424e+02 7.661917578441014e+02 7.686334464911333e+02 7.710716229558018e+02 7.735062851616793e+02 - 7.759374310390485e+02 7.783650585249019e+02 7.807891655629417e+02 7.832097501035795e+02 7.856268101039369e+02 - 7.880403435278453e+02 7.904503483458460e+02 7.928568225351897e+02 7.952597640798369e+02 7.976591709704585e+02 - 8.000550412044341e+02 8.024473727858536e+02 8.048361637255169e+02 8.072214120409334e+02 8.096031157563222e+02 - 8.119812729026120e+02 8.143558815174417e+02 8.167269396451593e+02 8.190944453368236e+02 8.214583966502021e+02 - 8.238187916497725e+02 8.261756284067224e+02 8.285289049989487e+02 8.308786195110586e+02 8.332247700343684e+02 - 8.355673546669050e+02 8.379063715134042e+02 8.402418186853124e+02 8.425736943007848e+02 8.449019964846872e+02 - 8.472267233685945e+02 8.495478730907921e+02 8.518654437962743e+02 8.541794336367457e+02 8.564898407706205e+02 - 8.587966633630226e+02 8.610998995857861e+02 8.633995476174539e+02 8.656956056432798e+02 8.679880718552264e+02 - 8.702769444519665e+02 8.725622216388828e+02 8.748439016280670e+02 8.771219826383219e+02 8.793964628951586e+02 - 8.816673406307990e+02 8.839346140841741e+02 8.861982815009252e+02 8.884583411334027e+02 8.907147912406675e+02 - 8.929676300884897e+02 8.952168559493493e+02 8.974624671024361e+02 8.997044618336495e+02 9.019428384355992e+02 - 9.041775952076036e+02 9.064087304556922e+02 9.086362424926032e+02 9.108601296377846e+02 9.130803902173951e+02 - 9.152970225643020e+02 9.175100250180832e+02 9.197193959250255e+02 9.219251336381268e+02 9.241272365170935e+02 - 9.263257029283417e+02 9.285205312449986e+02 9.307117198468995e+02 9.328992671205907e+02 9.350831714593277e+02 - 9.372634312630761e+02 9.394400449385104e+02 9.416130108990160e+02 9.437823275646871e+02 9.459479933623287e+02 - 9.481100067254541e+02 9.502683660942876e+02 9.524230699157629e+02 9.545741166435229e+02 9.567215047379214e+02 - 9.588652326660207e+02 9.610052989015940e+02 9.631417019251231e+02 9.652744402238004e+02 9.674035122915279e+02 - 9.695289166289172e+02 9.716506517432896e+02 9.737687161486764e+02 9.758831083658184e+02 9.779938269221661e+02 - 9.801008703518804e+02 9.822042371958310e+02 9.843039260015983e+02 9.863999353234714e+02 9.884922637224498e+02 - 9.905809097662435e+02 9.926658720292703e+02 9.947471490926598e+02 9.968247395442500e+02 9.988986419785891e+02 - 1.000968854996935e+03 1.003035377207256e+03 1.005098207224229e+03 1.007157343669241e+03 1.009212785170389e+03 - 1.011264530362480e+03 1.013312577887031e+03 1.015356926392268e+03 1.017397574533126e+03 1.019434520971252e+03 - 1.021467764375000e+03 1.023497303419437e+03 1.025523136786337e+03 1.027545263164185e+03 1.029563681248175e+03 - 1.031578389740212e+03 1.033589387348909e+03 1.035596672789591e+03 1.037600244784291e+03 1.039600102061752e+03 - 1.041596243357428e+03 1.043588667413480e+03 1.045577372978782e+03 1.047562358808916e+03 1.049543623666173e+03 - 1.051521166319557e+03 1.053494985544777e+03 1.055465080124256e+03 1.057431448847125e+03 1.059394090509224e+03 - 1.061353003913104e+03 1.063308187868025e+03 1.065259641189957e+03 1.067207362701581e+03 1.069151351232285e+03 - 1.071091605618170e+03 1.073028124702043e+03 1.074960907333424e+03 1.076889952368542e+03 1.078815258670335e+03 - 1.080736825108451e+03 1.082654650559248e+03 1.084568733905793e+03 1.086479074037864e+03 1.088385669851947e+03 - 1.090288520251241e+03 1.092187624145651e+03 1.094082980451794e+03 1.095974588092995e+03 1.097862445999292e+03 - 1.099746553107428e+03 1.101626908360861e+03 1.103503510709754e+03 1.105376359110983e+03 1.107245452528133e+03 - 1.109110789931497e+03 1.110972370298081e+03 1.112830192611597e+03 1.114684255862470e+03 1.116534559047833e+03 - 1.118381101171529e+03 1.120223881244111e+03 1.122062898282842e+03 1.123898151311694e+03 1.125729639361349e+03 - 1.127557361469200e+03 1.129381316679347e+03 1.131201504042604e+03 1.133017922616489e+03 1.134830571465235e+03 - 1.136639449659783e+03 1.138444556277782e+03 1.140245890403593e+03 1.142043451128286e+03 1.143837237549640e+03 - 1.145627248772146e+03 1.147413483907002e+03 1.149195942072117e+03 1.150974622392110e+03 1.152749523998310e+03 - 1.154520646028755e+03 1.156287987628192e+03 1.158051547948079e+03 1.159811326146585e+03 1.161567321388586e+03 - 1.163319532845669e+03 1.165067959696131e+03 1.166812601124979e+03 1.168553456323928e+03 1.170290524491405e+03 - 1.172023804832545e+03 1.173753296559195e+03 1.175478998889909e+03 1.177200911049953e+03 1.178919032271301e+03 - 1.180633361792637e+03 1.182343898859357e+03 1.184050642723563e+03 1.185753592644071e+03 1.187452747886402e+03 - 1.189148107722792e+03 1.190839671432183e+03 1.192527438300227e+03 1.194211407619287e+03 1.195891578688435e+03 - 1.197567950813455e+03 1.199240523306837e+03 1.200909295487783e+03 1.202574266682204e+03 1.204235436222721e+03 - 1.205892803448666e+03 1.207546367706079e+03 1.209196128347710e+03 1.210842084733019e+03 1.212484236228177e+03 - 1.214122582206062e+03 1.215757122046265e+03 1.217387855135084e+03 1.219014780865528e+03 1.220637898637316e+03 - 1.222257207856876e+03 1.223872707937346e+03 1.225484398298575e+03 1.227092278367119e+03 1.228696347576247e+03 - 1.230296605365935e+03 1.231893051182870e+03 1.233485684480449e+03 1.235074504718779e+03 1.236659511364675e+03 - 1.238240703891664e+03 1.239818081779981e+03 1.241391644516571e+03 1.242961391595090e+03 1.244527322515903e+03 - 1.246089436786084e+03 1.247647733919417e+03 1.249202213436398e+03 1.250752874864230e+03 1.252299717736826e+03 - 1.253842741594810e+03 1.255381945985516e+03 1.256917330462986e+03 1.258448894587972e+03 1.259976637927938e+03 - 1.261500560057056e+03 1.263020660556207e+03 1.264536939012984e+03 1.266049395021687e+03 1.267558028183329e+03 - 1.269062838105629e+03 1.270563824403019e+03 1.272060986696640e+03 1.273554324614341e+03 1.275043837790682e+03 - 1.276529525866934e+03 1.278011388491075e+03 1.279489425317796e+03 1.280963636008494e+03 1.282434020231280e+03 - 1.283900577660971e+03 1.285363307979095e+03 1.286822210873891e+03 1.288277286040307e+03 1.289728533179999e+03 - 1.291175952001336e+03 1.292619542219393e+03 1.294059303555960e+03 1.295495235739530e+03 1.296927338505312e+03 - 1.298355611595221e+03 1.299780054757883e+03 1.301200667748633e+03 1.302617450329516e+03 1.304030402269289e+03 - 1.305439523343415e+03 1.306844813334069e+03 1.308246272030136e+03 1.309643899227210e+03 1.311037694727594e+03 - 1.312427658340302e+03 1.313813789881058e+03 1.315196089172293e+03 1.316574556043153e+03 1.317949190329488e+03 - 1.319319991873862e+03 1.320686960525546e+03 1.322050096140523e+03 1.323409398581483e+03 1.324764867717829e+03 - 1.326116503425671e+03 1.327464305587830e+03 1.328808274093838e+03 1.330148408839934e+03 1.331484709729068e+03 - 1.332817176670901e+03 1.334145809581802e+03 1.335470608384850e+03 1.336791573009835e+03 1.338108703393256e+03 - 1.339421999478320e+03 1.340731461214948e+03 1.342037088559766e+03 1.343338881476113e+03 1.344636839934036e+03 - 1.345930963910293e+03 1.347221253388351e+03 1.348507708358388e+03 1.349790328817288e+03 1.351069114768650e+03 - 1.352344066222779e+03 1.353615183196692e+03 1.354882465714113e+03 1.356145913805479e+03 1.357405527507935e+03 - 1.358661306865335e+03 1.359913251928245e+03 1.361161362753938e+03 1.362405639406399e+03 1.363646081956323e+03 - 1.364882690481112e+03 1.366115465064880e+03 1.367344405798451e+03 1.368569512779358e+03 1.369790786111843e+03 - 1.371008225906858e+03 1.372221832282067e+03 1.373431605361840e+03 1.374637545277261e+03 1.375839652166119e+03 - 1.377037926172918e+03 1.378232367448867e+03 1.379422976151887e+03 1.380609752446609e+03 1.381792696504374e+03 - 1.382971808503231e+03 1.384147088627939e+03 1.385318537069970e+03 1.386486154027501e+03 1.387649939705423e+03 - 1.388809894315333e+03 1.389966018075540e+03 1.391118311211063e+03 1.392266773953630e+03 1.393411406541678e+03 - 1.394552209220356e+03 1.395689182241520e+03 1.396822325863737e+03 1.397951640352285e+03 1.399077125979150e+03 - 1.400198783023028e+03 1.401316611769325e+03 1.402430612510158e+03 1.403540785544351e+03 1.404647131177441e+03 - 1.405749649721672e+03 1.406848341496000e+03 1.407943206826088e+03 1.409034246044311e+03 1.410121459489754e+03 - 1.411204847508209e+03 1.412284410452182e+03 1.413360148680885e+03 1.414432062560241e+03 1.415500152462884e+03 - 1.416564418768155e+03 1.417624861862108e+03 1.418681482137504e+03 1.419734279993815e+03 1.420783255837224e+03 - 1.421828410080621e+03 1.422869743143608e+03 1.423907255452495e+03 1.424940947440303e+03 1.425970819546763e+03 - 1.426996872218314e+03 1.428019105908108e+03 1.429037521076003e+03 1.430052118188569e+03 1.431062897719085e+03 - 1.432069860147540e+03 1.433073005960632e+03 1.434072335651771e+03 1.435067849721075e+03 1.436059548675370e+03 - 1.437047433028196e+03 1.438031503299800e+03 1.439011760017138e+03 1.439988203713878e+03 1.440960834930396e+03 - 1.441929654213780e+03 1.442894662117825e+03 1.443855859203037e+03 1.444813246036631e+03 1.445766823192535e+03 - 1.446716591251382e+03 1.447662550800518e+03 1.448604702433997e+03 1.449543046752585e+03 1.450477584363755e+03 - 1.451408315881691e+03 1.452335241927287e+03 1.453258363128147e+03 1.454177680118583e+03 1.455093193539620e+03 - 1.456004904038989e+03 1.456912812271134e+03 1.457816918897206e+03 1.458717224585068e+03 1.459613730009291e+03 - 1.460506435851157e+03 1.461395342798658e+03 1.462280451546494e+03 1.463161762796076e+03 1.464039277255525e+03 - 1.464912995639670e+03 1.465782918670054e+03 1.466649047074924e+03 1.467511381589240e+03 1.468369922954673e+03 - 1.469224671919600e+03 1.470075629239112e+03 1.470922795675006e+03 1.471766171995790e+03 1.472605758976684e+03 - 1.473441557399614e+03 1.474273568053219e+03 1.475101791732846e+03 1.475926229240551e+03 1.476746881385102e+03 - 1.477563748981976e+03 1.478376832853358e+03 1.479186133828146e+03 1.479991652741944e+03 1.480793390437068e+03 - 1.481591347762545e+03 1.482385525574108e+03 1.483175924734204e+03 1.483962546111986e+03 1.484745390583318e+03 - 1.485524459030776e+03 1.486299752343644e+03 1.487071271417914e+03 1.487839017156289e+03 1.488602990468185e+03 - 1.489363192269722e+03 1.490119623483735e+03 1.490872285039765e+03 1.491621177874064e+03 1.492366302929595e+03 - 1.493107661156030e+03 1.493845253509749e+03 1.494579080953843e+03 1.495309144458115e+03 1.496035444999074e+03 - 1.496757983559942e+03 1.497476761130647e+03 1.498191778707831e+03 1.498903037294843e+03 1.499610537901742e+03 - 1.500314281545298e+03 1.501014269248990e+03 1.501710502043006e+03 1.502402980964245e+03 1.503091707056315e+03 - 1.503776681369534e+03 1.504457904960931e+03 1.505135378894241e+03 1.505809104239914e+03 1.506479082075105e+03 - 1.507145313483682e+03 1.507807799556220e+03 1.508466541390007e+03 1.509121540089038e+03 1.509772796764020e+03 - 1.510420312532367e+03 1.511064088518205e+03 1.511704125852369e+03 1.512340425672404e+03 1.512972989122564e+03 - 1.513601817353814e+03 1.514226911523828e+03 1.514848272796989e+03 1.515465902344391e+03 1.516079801343838e+03 - 1.516689970979842e+03 1.517296412443626e+03 1.517899126933124e+03 1.518498115652977e+03 1.519093379814537e+03 - 1.519684920635866e+03 1.520272739341736e+03 1.520856837163628e+03 1.521437215339733e+03 1.522013875114953e+03 - 1.522586817740897e+03 1.523156044475887e+03 1.523721556584951e+03 1.524283355339831e+03 1.524841442018975e+03 - 1.525395817907543e+03 1.525946484297405e+03 1.526493442487138e+03 1.527036693782033e+03 1.527576239494086e+03 - 1.528112080942007e+03 1.528644219451213e+03 1.529172656353831e+03 1.529697392988700e+03 1.530218430701367e+03 - 1.530735770844087e+03 1.531249414775829e+03 1.531759363862268e+03 1.532265619475790e+03 1.532768182995492e+03 - 1.533267055807180e+03 1.533762239303368e+03 1.534253734883281e+03 1.534741543952856e+03 1.535225667924735e+03 - 1.535706108218275e+03 1.536182866259539e+03 1.536655943481301e+03 1.537125341323045e+03 1.537591061230964e+03 - 1.538053104657961e+03 1.538511473063650e+03 1.538966167914353e+03 1.539417190683102e+03 1.539864542849641e+03 - 1.540308225900420e+03 1.540748241328602e+03 1.541184590634058e+03 1.541617275323370e+03 1.542046296909827e+03 - 1.542471656913432e+03 1.542893356860894e+03 1.543311398285634e+03 1.543725782727782e+03 1.544136511734178e+03 - 1.544543586858370e+03 1.544947009660620e+03 1.545346781707894e+03 1.545742904573873e+03 1.546135379838945e+03 - 1.546524209090207e+03 1.546909393921469e+03 1.547290935933248e+03 1.547668836732771e+03 1.548043097933976e+03 - 1.548413721157510e+03 1.548780708030729e+03 1.549144060187701e+03 1.549503779269201e+03 1.549859866922715e+03 - 1.550212324802440e+03 1.550561154569281e+03 1.550906357890854e+03 1.551247936441483e+03 1.551585891902203e+03 - 1.551920225960758e+03 1.552250940311604e+03 1.552578036655905e+03 1.552901516701533e+03 1.553221382163073e+03 - 1.553537634761818e+03 1.553850276225772e+03 1.554159308289647e+03 1.554464732694865e+03 1.554766551189559e+03 - 1.555064765528572e+03 1.555359377473454e+03 1.555650388792468e+03 1.555937801260586e+03 1.556221616659488e+03 - 1.556501836777564e+03 1.556778463409917e+03 1.557051498358356e+03 1.557320943431401e+03 1.557586800444283e+03 - 1.557849071218940e+03 1.558107757584023e+03 1.558362861374890e+03 1.558614384433611e+03 1.558862328608964e+03 - 1.559106695756438e+03 1.559347487738230e+03 1.559584706423249e+03 1.559818353687112e+03 1.560048431412147e+03 - 1.560274941487391e+03 1.560497885808591e+03 1.560717266278204e+03 1.560933084805396e+03 1.561145343306044e+03 - 1.561354043702732e+03 1.561559187924758e+03 1.561760777908126e+03 1.561958815595552e+03 1.562153302936461e+03 - 1.562344241886987e+03 1.562531634409975e+03 1.562715482474979e+03 1.562895788058264e+03 1.563072553142803e+03 - 1.563245779718279e+03 1.563415469781085e+03 1.563581625334326e+03 1.563744248387813e+03 1.563903340958068e+03 - 1.564058905068325e+03 1.564210942748526e+03 1.564359456035321e+03 1.564504446972073e+03 1.564645917608853e+03 - 1.564783870002442e+03 1.564918306216331e+03 1.565049228320720e+03 1.565176638392519e+03 1.565300538515349e+03 - 1.565420930779540e+03 1.565537817282130e+03 1.565651200126870e+03 1.565761081424219e+03 1.565867463291344e+03 - 1.565970347852125e+03 1.566069737237150e+03 1.566165633583717e+03 1.566258039035835e+03 1.566346955744220e+03 - 1.566432385866300e+03 1.566514331566212e+03 1.566592795014803e+03 1.566667778389629e+03 1.566739283874957e+03 - 1.566807313661764e+03 1.566871869947734e+03 1.566932954937263e+03 1.566990570841457e+03 1.567044719878131e+03 - 1.567095404271811e+03 1.567142626253729e+03 1.567186388061831e+03 1.567226691940771e+03 1.567263540141913e+03 - 1.567296934923331e+03 1.567326878549808e+03 1.567353373292836e+03 1.567376421430620e+03 1.567396025248071e+03 - 1.567412187036812e+03 1.567424909095176e+03 1.567434193728203e+03 1.567440043247646e+03 1.567442459971967e+03 - 1.567441446226336e+03 1.567437004342634e+03 1.567429136659453e+03 1.567417845522091e+03 1.567403133282561e+03 - 1.567385002299581e+03 1.567363454938582e+03 1.567338493571702e+03 1.567310120577791e+03 1.567278338342408e+03 - 1.567243149257822e+03 1.567204555723011e+03 1.567162560143663e+03 1.567117164932177e+03 1.567068372507660e+03 - 1.567016185295929e+03 1.566960605729512e+03 1.566901636247646e+03 1.566839279296277e+03 1.566773537328063e+03 - 1.566704412802369e+03 1.566631908185271e+03 1.566556025949555e+03 1.566476768574717e+03 1.566394138546961e+03 - 1.566308138359204e+03 1.566218770511069e+03 1.566126037508891e+03 1.566029941865714e+03 1.565930486101294e+03 - 1.565827672742092e+03 1.565721504321283e+03 1.565611983378751e+03 1.565499112461087e+03 1.565382894121595e+03 - 1.565263330920288e+03 1.565140425423888e+03 1.565014180205826e+03 1.564884597846246e+03 1.564751680931997e+03 - 1.564615432056643e+03 1.564475853820452e+03 1.564332948830408e+03 1.564186719700199e+03 1.564037169050227e+03 - 1.563884299507601e+03 1.563728113706142e+03 1.563568614286379e+03 1.563405803895550e+03 1.563239685187607e+03 - 1.563070260823207e+03 1.562897533469719e+03 1.562721505801220e+03 1.562542180498501e+03 1.562359560249057e+03 - 1.562173647747097e+03 1.561984445693539e+03 1.561791956796009e+03 1.561596183768845e+03 1.561397129333092e+03 - 1.561194796216507e+03 1.560989187153558e+03 1.560780304885418e+03 1.560568152159974e+03 1.560352731731822e+03 - 1.560134046362267e+03 1.559912098819323e+03 1.559686891877715e+03 1.559458428318879e+03 1.559226710930956e+03 - 1.558991742508803e+03 1.558753525853981e+03 1.558512063774766e+03 1.558267359086140e+03 1.558019414609795e+03 - 1.557768233174136e+03 1.557513817614273e+03 1.557256170772030e+03 1.556995295495938e+03 1.556731194641239e+03 - 1.556463871069885e+03 1.556193327650536e+03 1.555919567258564e+03 1.555642592776049e+03 1.555362407091783e+03 - 1.555079013101264e+03 1.554792413706704e+03 1.554502611817021e+03 1.554209610347846e+03 1.553913412221517e+03 - 1.553614020367084e+03 1.553311437720305e+03 1.553005667223649e+03 1.552696711826295e+03 1.552384574484129e+03 - 1.552069258159750e+03 1.551750765822466e+03 1.551429100448294e+03 1.551104265019960e+03 1.550776262526902e+03 - 1.550445095965265e+03 1.550110768337907e+03 1.549773282654394e+03 1.549432641931000e+03 1.549088849190713e+03 - 1.548741907463227e+03 1.548391819784946e+03 1.548038589198987e+03 1.547682218755173e+03 1.547322711510039e+03 - 1.546960070526829e+03 1.546594298875496e+03 1.546225399632705e+03 1.545853375881829e+03 1.545478230712950e+03 - 1.545099967222861e+03 1.544718588515066e+03 1.544334097699777e+03 1.543946497893915e+03 1.543555792221112e+03 - 1.543161983811711e+03 1.542765075802762e+03 1.542365071338026e+03 1.541961973567975e+03 1.541555785649789e+03 - 1.541146510747358e+03 1.540734152031283e+03 1.540318712678874e+03 1.539900195874149e+03 1.539478604807839e+03 - 1.539053942677383e+03 1.538626212686929e+03 1.538195418047336e+03 1.537761561976173e+03 1.537324647697717e+03 - 1.536884678442957e+03 1.536441657449592e+03 1.535995587962026e+03 1.535546473231378e+03 1.535094316515475e+03 - 1.534639121078853e+03 1.534180890192759e+03 1.533719627135150e+03 1.533255335190690e+03 1.532788017650757e+03 - 1.532317677813435e+03 1.531844318983518e+03 1.531367944472514e+03 1.530888557598635e+03 1.530406161686807e+03 - 1.529920760068664e+03 1.529432356082550e+03 1.528940953073517e+03 1.528446554393331e+03 1.527949163400464e+03 - 1.527448783460099e+03 1.526945417944129e+03 1.526439070231157e+03 1.525929743706494e+03 1.525417441762163e+03 - 1.524902167796895e+03 1.524383925216131e+03 1.523862717432025e+03 1.523338547863434e+03 1.522811419935932e+03 - 1.522281337081799e+03 1.521748302740024e+03 1.521212320356308e+03 1.520673393383061e+03 1.520131525279401e+03 - 1.519586719511159e+03 1.519038979550873e+03 1.518488308877793e+03 1.517934710977876e+03 1.517378189343791e+03 - 1.516818747474916e+03 1.516256388877339e+03 1.515691117063858e+03 1.515122935553979e+03 1.514551847873920e+03 - 1.513977857556607e+03 1.513400968141679e+03 1.512821183175479e+03 1.512238506211065e+03 1.511652940808203e+03 - 1.511064490533368e+03 1.510473158959745e+03 1.509878949667230e+03 1.509281866242427e+03 1.508681912278651e+03 - 1.508079091375926e+03 1.507473407140987e+03 1.506864863187277e+03 1.506253463134950e+03 1.505639210610869e+03 - 1.505022109248608e+03 1.504402162688449e+03 1.503779374577385e+03 1.503153748569118e+03 1.502525288324061e+03 - 1.501893997509335e+03 1.501259879798773e+03 1.500622938872914e+03 1.499983178419011e+03 1.499340602131025e+03 - 1.498695213709626e+03 1.498047016862194e+03 1.497396015302820e+03 1.496742212752304e+03 1.496085612938155e+03 - 1.495426219594593e+03 1.494764036462547e+03 1.494099067289655e+03 1.493431315830267e+03 1.492760785845442e+03 - 1.492087481102946e+03 1.491411405377259e+03 1.490732562449567e+03 1.490050956107769e+03 1.489366590146471e+03 - 1.488679468366991e+03 1.487989594577355e+03 1.487296972592300e+03 1.486601606233272e+03 1.485903499328426e+03 - 1.485202655712629e+03 1.484499079227457e+03 1.483792773721193e+03 1.483083743048834e+03 1.482371991072084e+03 - 1.481657521659358e+03 1.480940338685780e+03 1.480220446033183e+03 1.479497847590113e+03 1.478772547251821e+03 - 1.478044548920272e+03 1.477313856504138e+03 1.476580473918802e+03 1.475844405086357e+03 1.475105653935605e+03 - 1.474364224402058e+03 1.473620120427938e+03 1.472873345962177e+03 1.472123904960415e+03 1.471371801385004e+03 - 1.470617039205005e+03 1.469859622396187e+03 1.469099554941032e+03 1.468336840828730e+03 1.467571484055180e+03 - 1.466803488622991e+03 1.466032858541484e+03 1.465259597826687e+03 1.464483710501340e+03 1.463705200594890e+03 - 1.462924072143496e+03 1.462140329190026e+03 1.461353975784058e+03 1.460565015981880e+03 1.459773453846489e+03 - 1.458979293447591e+03 1.458182538861605e+03 1.457383194171656e+03 1.456581263467582e+03 1.455776750845927e+03 - 1.454969660409948e+03 1.454159996269611e+03 1.453347762541590e+03 1.452532963349272e+03 1.451715602822750e+03 - 1.450895685098830e+03 1.450073214321026e+03 1.449248194639563e+03 1.448420630211373e+03 1.447590525200101e+03 - 1.446757883776100e+03 1.445922710116434e+03 1.445085008404874e+03 1.444244782831905e+03 1.443402037594718e+03 - 1.442556776897215e+03 1.441709004950008e+03 1.440858725970420e+03 1.440005944182481e+03 1.439150663816933e+03 - 1.438292889111226e+03 1.437432624309523e+03 1.436569873662692e+03 1.435704641428314e+03 1.434836931870678e+03 - 1.433966749260786e+03 1.433094097876346e+03 1.432218982001777e+03 1.431341405928208e+03 1.430461373953479e+03 - 1.429578890382137e+03 1.428693959525441e+03 1.427806585701360e+03 1.426916773234569e+03 1.426024526456458e+03 - 1.425129849705122e+03 1.424232747325370e+03 1.423333223668719e+03 1.422431283093393e+03 1.421526929964331e+03 - 1.420620168653178e+03 1.419711003538289e+03 1.418799439004731e+03 1.417885479444278e+03 1.416969129255415e+03 - 1.416050392843337e+03 1.415129274619950e+03 1.414205779003866e+03 1.413279910420411e+03 1.412351673301618e+03 - 1.411421072086230e+03 1.410488111219700e+03 1.409552795154193e+03 1.408615128348581e+03 1.407675115268446e+03 - 1.406732760386080e+03 1.405788068180486e+03 1.404841043137375e+03 1.403891689749170e+03 1.402940012515001e+03 - 1.401986015940709e+03 1.401029704538846e+03 1.400071082828672e+03 1.399110155336157e+03 1.398146926593981e+03 - 1.397181401141535e+03 1.396213583524918e+03 1.395243478296938e+03 1.394271090017116e+03 1.393296423251680e+03 - 1.392319482573570e+03 1.391340272562432e+03 1.390358797804626e+03 1.389375062893219e+03 1.388389072427989e+03 - 1.387400831015423e+03 1.386410343268718e+03 1.385417613807782e+03 1.384422647259231e+03 1.383425448256391e+03 - 1.382426021439299e+03 1.381424371454700e+03 1.380420502956051e+03 1.379414420603515e+03 1.378406129063970e+03 - 1.377395633010999e+03 1.376382937124898e+03 1.375368046092671e+03 1.374350964608031e+03 1.373331697371403e+03 - 1.372310249089921e+03 1.371286624477428e+03 1.370260828254477e+03 1.369232865148331e+03 1.368202739892964e+03 - 1.367170457229056e+03 1.366136021904002e+03 1.365099438671902e+03 1.364060712293568e+03 1.363019847536522e+03 - 1.361976849174995e+03 1.360931721989928e+03 1.359884470768972e+03 1.358835100306487e+03 1.357783615403544e+03 - 1.356730020867921e+03 1.355674321514110e+03 1.354616522163310e+03 1.353556627643430e+03 1.352494642789090e+03 - 1.351430572441617e+03 1.350364421449050e+03 1.349296194666138e+03 1.348225896954338e+03 1.347153533181818e+03 - 1.346079108223457e+03 1.345002626960841e+03 1.343924094282267e+03 1.342843515082743e+03 1.341760894263984e+03 - 1.340676236734416e+03 1.339589547409177e+03 1.338500831210112e+03 1.337410093065776e+03 1.336317337911434e+03 - 1.335222570689062e+03 1.334125796347346e+03 1.333027019841677e+03 1.331926246134163e+03 1.330823480193616e+03 - 1.329718726995561e+03 1.328611991522230e+03 1.327503278762568e+03 1.326392593712228e+03 1.325279941373571e+03 - 1.324165326755672e+03 1.323048754874311e+03 1.321930230751983e+03 1.320809759417887e+03 1.319687345907936e+03 - 1.318562995264752e+03 1.317436712537665e+03 1.316308502782716e+03 1.315178371062656e+03 1.314046322446946e+03 - 1.312912362011755e+03 1.311776494839963e+03 1.310638726021160e+03 1.309499060651645e+03 1.308357503834428e+03 - 1.307214060679228e+03 1.306068736302473e+03 1.304921535827301e+03 1.303772464383560e+03 1.302621527107810e+03 - 1.301468729143317e+03 1.300314075640058e+03 1.299157571754721e+03 1.297999222650704e+03 1.296839033498112e+03 - 1.295677009473761e+03 1.294513155761180e+03 1.293347477550602e+03 1.292179980038974e+03 1.291010668429951e+03 - 1.289839547933899e+03 1.288666623767893e+03 1.287491901155716e+03 1.286315385327865e+03 1.285137081521542e+03 - 1.283956994980662e+03 1.282775130955849e+03 1.281591494704436e+03 1.280406091490466e+03 1.279218926584693e+03 - 1.278030005264579e+03 1.276839332814297e+03 1.275646914524728e+03 1.274452755693465e+03 1.273256861624810e+03 - 1.272059237629775e+03 1.270859889026079e+03 1.269658821138155e+03 1.268456039297144e+03 1.267251548840895e+03 - 1.266045355113969e+03 1.264837463467636e+03 1.263627879259876e+03 1.262416607855379e+03 1.261203654625543e+03 - 1.259989024948479e+03 1.258772724209004e+03 1.257554757798647e+03 1.256335131115646e+03 1.255113849564950e+03 - 1.253890918558217e+03 1.252666343513813e+03 1.251440129856817e+03 1.250212283019015e+03 1.248982808438904e+03 - 1.247751711561691e+03 1.246518997839292e+03 1.245284672730334e+03 1.244048741700151e+03 1.242811210220790e+03 - 1.241572083771006e+03 1.240331367836264e+03 1.239089067908740e+03 1.237845189487317e+03 1.236599738077590e+03 - 1.235352719191863e+03 1.234104138349150e+03 1.232854001075175e+03 1.231602312902370e+03 1.230349079369880e+03 - 1.229094306023557e+03 1.227837998415964e+03 1.226580162106373e+03 1.225320802660766e+03 1.224059925651835e+03 - 1.222797536658982e+03 1.221533641268318e+03 1.220268245072664e+03 1.219001353671552e+03 1.217732972671222e+03 - 1.216463107684624e+03 1.215191764331420e+03 1.213918948237977e+03 1.212644665037377e+03 1.211368920369408e+03 - 1.210091719880570e+03 1.208813069224072e+03 1.207532974059833e+03 1.206251440054480e+03 1.204968472881353e+03 - 1.203684078220499e+03 1.202398261758676e+03 1.201111029189351e+03 1.199822386212701e+03 1.198532338535615e+03 - 1.197240891871687e+03 1.195948051941225e+03 1.194653824471246e+03 1.193358215195474e+03 1.192061229854346e+03 - 1.190762874195007e+03 1.189463153971313e+03 1.188162074943828e+03 1.186859642879827e+03 1.185555863553295e+03 - 1.184250742744927e+03 1.182944286242125e+03 1.181636499839004e+03 1.180327389336388e+03 1.179016960541809e+03 - 1.177705219269511e+03 1.176392171340446e+03 1.175077822582277e+03 1.173762178829377e+03 1.172445245922827e+03 - 1.171127029710419e+03 1.169807536046655e+03 1.168486770792745e+03 1.167164739816612e+03 1.165841448992886e+03 - 1.164516904202907e+03 1.163191111334726e+03 1.161864076283103e+03 1.160535804949508e+03 1.159206303242120e+03 - 1.157875577075829e+03 1.156543632372233e+03 1.155210475059642e+03 1.153876111073074e+03 1.152540546354257e+03 - 1.151203786851631e+03 1.149865838520342e+03 1.148526707322247e+03 1.147186399225916e+03 1.145844920206624e+03 - 1.144502276246358e+03 1.143158473333815e+03 1.141813517464402e+03 1.140467414640234e+03 1.139120170870139e+03 - 1.137771792169650e+03 1.136422284561014e+03 1.135071654073185e+03 1.133719906741829e+03 1.132367048609320e+03 - 1.131013085724743e+03 1.129658024143891e+03 1.128301869929270e+03 1.126944629150092e+03 1.125586307882280e+03 - 1.124226912208469e+03 1.122866448218001e+03 1.121504922006928e+03 1.120142339678013e+03 1.118778707340729e+03 - 1.117414031111256e+03 1.116048317112488e+03 1.114681571474025e+03 1.113313800332179e+03 1.111945009829970e+03 - 1.110575206117129e+03 1.109204395350097e+03 1.107832583692024e+03 1.106459777312770e+03 1.105085982388904e+03 - 1.103711205103706e+03 1.102335451647166e+03 1.100958728215983e+03 1.099581041013564e+03 1.098202396250028e+03 - 1.096822800142205e+03 1.095442258913632e+03 1.094060778794555e+03 1.092678366021934e+03 1.091295026839436e+03 - 1.089910767497437e+03 1.088525594253023e+03 1.087139513369993e+03 1.085752531118851e+03 1.084364653776815e+03 - 1.082975887627809e+03 1.081586238962469e+03 1.080195714078142e+03 1.078804319278880e+03 1.077412060875450e+03 - 1.076018945185327e+03 1.074624978532693e+03 1.073230167248444e+03 1.071834517670182e+03 1.070438036142223e+03 - 1.069040729015589e+03 1.067642602648012e+03 1.066243663403937e+03 1.064843917654515e+03 1.063443371777609e+03 - 1.062042032157791e+03 1.060639905186343e+03 1.059236997261256e+03 1.057833314787232e+03 1.056428864175682e+03 - 1.055023651844726e+03 1.053617684219196e+03 1.052210967730631e+03 1.050803508817282e+03 1.049395313897890e+03 - 1.047986388534756e+03 1.046576737255851e+03 1.045166364529164e+03 1.043755274824231e+03 1.042343472612131e+03 - 1.040930962365484e+03 1.039517748558457e+03 1.038103835666756e+03 1.036689228167636e+03 1.035273930539893e+03 - 1.033857947263865e+03 1.032441282821436e+03 1.031023941696033e+03 1.029605928372625e+03 1.028187247337727e+03 - 1.026767903079397e+03 1.025347900087235e+03 1.023927242852386e+03 1.022505935867538e+03 1.021083983626923e+03 - 1.019661390626317e+03 1.018238161363038e+03 1.016814300335948e+03 1.015389812045455e+03 1.013964700993507e+03 - 1.012538971683598e+03 1.011112628620765e+03 1.009685676311588e+03 1.008258119264191e+03 1.006829961988242e+03 - 1.005401208994952e+03 1.003971864797076e+03 1.002541933908912e+03 1.001111420846301e+03 9.996803301266303e+02 - 9.982486662688275e+02 9.968164337933661e+02 9.953836372222621e+02 9.939502810790750e+02 9.925163698889086e+02 - 9.910819081784098e+02 9.896469004757686e+02 9.882113513107199e+02 9.867752652145410e+02 9.853386467200531e+02 - 9.839015003616214e+02 9.824638306751541e+02 9.810256421981031e+02 9.795869394694643e+02 9.781477270297768e+02 - 9.767080094211232e+02 9.752677911871300e+02 9.738270768729670e+02 9.723858710253478e+02 9.709441781925295e+02 - 9.695020029243127e+02 9.680593497720415e+02 9.666162232886040e+02 9.651726280284314e+02 9.637285685474986e+02 - 9.622840494033246e+02 9.608390751549712e+02 9.593936503630440e+02 9.579477795896925e+02 9.565014673986094e+02 - 9.550547183550314e+02 9.536075370257383e+02 9.521599279790540e+02 9.507118957848456e+02 9.492634450145238e+02 - 9.478145802410424e+02 9.463653060389005e+02 9.449156269841388e+02 9.434655476543426e+02 9.420150726286407e+02 - 9.405642064877048e+02 9.391129538137513e+02 9.376613191905399e+02 9.362093072033728e+02 9.347569224390970e+02 - 9.333041694861028e+02 9.318510529343232e+02 9.303975773752362e+02 9.289437474018629e+02 9.274895676087672e+02 - 9.260350425920570e+02 9.245801769493847e+02 9.231249752799448e+02 9.216694421844763e+02 9.202135822652619e+02 - 9.187574001261273e+02 9.173009003724419e+02 9.158440876111187e+02 9.143869664506148e+02 9.129295415009306e+02 - 9.114718173736089e+02 9.100137986817383e+02 9.085554900399494e+02 9.070968960644165e+02 9.056380213728581e+02 - 9.041788705845360e+02 9.027194483202552e+02 9.012597592023648e+02 8.997998078547574e+02 8.983395989028686e+02 - 8.968791369736786e+02 8.954184266957105e+02 8.939574726990309e+02 8.924962796152502e+02 8.910348520775226e+02 - 8.895731947205452e+02 8.881113121805595e+02 8.866492090953504e+02 8.851868901042455e+02 8.837243598481174e+02 - 8.822616229693809e+02 8.807986841119955e+02 8.793355479214636e+02 8.778722190448314e+02 8.764087021306887e+02 - 8.749450018291686e+02 8.734811227919481e+02 8.720170696722481e+02 8.705528471248323e+02 8.690884598060085e+02 - 8.676239123736278e+02 8.661592094870851e+02 8.646943558073189e+02 8.632293559968109e+02 8.617642147195870e+02 - 8.602989366412162e+02 8.588335264288111e+02 8.573679887510280e+02 8.559023282780669e+02 8.544365496816713e+02 - 8.529706576351281e+02 8.515046568132680e+02 8.500385518924651e+02 8.485723475506371e+02 8.471060484672456e+02 - 8.456396593232956e+02 8.441731848013352e+02 8.427066295854568e+02 8.412399983612960e+02 8.397732958160319e+02 - 8.383065266383875e+02 8.368396955186294e+02 8.353728071485672e+02 8.339058662215547e+02 8.324388774324890e+02 - 8.309718454778108e+02 8.295047750555044e+02 8.280376708650979e+02 8.265705376076626e+02 8.251033799858133e+02 - 8.236362027037090e+02 8.221690104670519e+02 8.207018079830875e+02 8.192345999606056e+02 8.177673911099388e+02 - 8.163001861429635e+02 8.148329897731001e+02 8.133658067153123e+02 8.118986416861073e+02 8.104314994035359e+02 - 8.089643845871925e+02 8.074973019582153e+02 8.060302562392853e+02 8.045632521546285e+02 8.030962944300132e+02 - 8.016293877927517e+02 8.001625369717000e+02 7.986957466972576e+02 7.972290217013673e+02 7.957623667175162e+02 - 7.942957864807344e+02 7.928292857275953e+02 7.913628691962167e+02 7.898965416262595e+02 7.884303077589279e+02 - 7.869641723369706e+02 7.854981401046790e+02 7.840322158078881e+02 7.825664041939773e+02 7.811007100118686e+02 - 7.796351380120283e+02 7.781696929464658e+02 7.767043795687346e+02 7.752392026339312e+02 7.737741668986956e+02 - 7.723092771212124e+02 7.708445380612087e+02 7.693799544799557e+02 7.679155311402681e+02 7.664512728065041e+02 - 7.649871842445651e+02 7.635232702218972e+02 7.620595355074889e+02 7.605959848718730e+02 7.591326230871256e+02 - 7.576694549268664e+02 7.562064851662584e+02 7.547437185820088e+02 7.532811599523681e+02 7.518188140571300e+02 - 7.503566856776325e+02 7.488947795967565e+02 7.474331005989271e+02 7.459716534701122e+02 7.445104429978242e+02 - 7.430494739711182e+02 7.415887511805935e+02 7.401282794183929e+02 7.386680634782024e+02 7.372081081552518e+02 - 7.357484182463149e+02 7.342889985497084e+02 7.328298538652926e+02 7.313709889944722e+02 7.299124087401947e+02 - 7.284541179069513e+02 7.269961213007771e+02 7.255384237292504e+02 7.240810300014931e+02 7.226239449281712e+02 - 7.211671733214938e+02 7.197107199952134e+02 7.182545897646269e+02 7.167987874465738e+02 7.153433178594373e+02 - 7.138881858231457e+02 7.124333961591685e+02 7.109789536905207e+02 7.095248632417597e+02 7.080711296389870e+02 - 7.066177577098478e+02 7.051647522835304e+02 7.037121181907675e+02 7.022598602638342e+02 7.008079833365500e+02 - 6.993564922442782e+02 6.979053918239249e+02 6.964546869139400e+02 6.950043823543177e+02 6.935544829865950e+02 - 6.921049936538523e+02 6.906559192007142e+02 6.892072644733491e+02 6.877590343194680e+02 6.863112335883264e+02 - 6.848638671307228e+02 6.834169397989994e+02 6.819704564470420e+02 6.805244219302806e+02 6.790788411056876e+02 - 6.776337188317796e+02 6.761890599686175e+02 6.747448693778041e+02 6.733011519224871e+02 6.718579124673579e+02 - 6.704151558786504e+02 6.689728870241429e+02 6.675311107731571e+02 6.660898319965579e+02 6.646490555667547e+02 - 6.632087863576994e+02 6.617690292448882e+02 6.603297891053608e+02 6.588910708177000e+02 6.574528792620325e+02 - 6.560152193200289e+02 6.545780958749028e+02 6.531415138114120e+02 6.517054780158572e+02 6.502699933760831e+02 - 6.488350647814780e+02 6.474006971229736e+02 6.459668952930450e+02 6.445336641857116e+02 6.431010086965356e+02 - 6.416689337226230e+02 6.402374441626239e+02 6.388065449167315e+02 6.373762408866819e+02 6.359465369757564e+02 - 6.345174380887786e+02 6.330889491321157e+02 6.316610750136796e+02 6.302338206429247e+02 6.288071909308491e+02 - 6.273811907899951e+02 6.259558251344477e+02 6.245310988798360e+02 6.231070169433332e+02 6.216835842436550e+02 - 6.202608057010611e+02 6.188386862373554e+02 6.174172307758844e+02 6.159964442415383e+02 6.145763315607522e+02 - 6.131568976615030e+02 6.117381474733122e+02 6.103200859272448e+02 6.089027179559087e+02 6.074860484934565e+02 - 6.060700824755835e+02 6.046548248395288e+02 6.032402805240755e+02 6.018264544695495e+02 6.004133516178208e+02 - 5.990009769123031e+02 5.975893352979532e+02 5.961784317212720e+02 5.947682711303036e+02 5.933588584746357e+02 - 5.919501987053994e+02 5.905422967752705e+02 5.891351576384668e+02 5.877287862507508e+02 5.863231875694282e+02 - 5.849183665533477e+02 5.835143281629030e+02 5.821110773600302e+02 5.807086191082091e+02 5.793069583724634e+02 - 5.779061001193606e+02 5.765060493170109e+02 5.751068109350690e+02 5.737083899447330e+02 5.723107913187440e+02 - 5.709140200313871e+02 5.695180810584912e+02 5.681229793774282e+02 5.667287199671144e+02 5.653353078080089e+02 - 5.639427478821145e+02 5.625510451729782e+02 5.611602046656897e+02 5.597702313468828e+02 5.583811302047351e+02 - 5.569929062289672e+02 5.556055644108436e+02 5.542191097431725e+02 5.528335472203050e+02 5.514488818381369e+02 - 5.500651185941068e+02 5.486822624871968e+02 5.473003185179330e+02 5.459192916883851e+02 5.445391870021655e+02 - 5.431600094644319e+02 5.417817640818839e+02 5.404044558627653e+02 5.390280898168637e+02 5.376526709555103e+02 - 5.362782042915790e+02 5.349046948394886e+02 5.335321476152006e+02 5.321605676362202e+02 5.307899599215965e+02 - 5.294203294919217e+02 5.280516813693320e+02 5.266840205775071e+02 5.253173521416702e+02 5.239516810885877e+02 - 5.225870124465707e+02 5.212233512454725e+02 5.198607025166908e+02 5.184990712931668e+02 5.171384626093851e+02 - 5.157788815013741e+02 5.144203330067055e+02 5.130628221644946e+02 5.117063540154008e+02 5.103509336016263e+02 - 5.089965659669175e+02 5.076432561565640e+02 5.062910092173990e+02 5.049398301977998e+02 5.035897241476866e+02 - 5.022406961185235e+02 5.008927511633182e+02 4.995458943366220e+02 4.982001306945292e+02 4.968554652946787e+02 - 4.955119031962524e+02 4.941694494599757e+02 4.928281091481178e+02 4.914878873244913e+02 4.901487890544524e+02 - 4.888108194049014e+02 4.874739834442815e+02 4.861382862425793e+02 4.848037328713260e+02 4.834703284035954e+02 - 4.821380779140055e+02 4.808069864787175e+02 4.794770591754360e+02 4.781483010834104e+02 4.768207172834317e+02 - 4.754943128578365e+02 4.741690928905032e+02 4.728450624668552e+02 4.715222266738587e+02 4.702005906000235e+02 - 4.688801593354034e+02 4.675609379715956e+02 4.662429316017405e+02 4.649261453205227e+02 4.636105842241698e+02 - 4.622962534104534e+02 4.609831579786886e+02 4.596713030297340e+02 4.583606936659914e+02 4.570513349914071e+02 - 4.557432321114703e+02 4.544363901332138e+02 4.531308141652141e+02 4.518265093175915e+02 4.505234807020092e+02 - 4.492217334316751e+02 4.479212726213398e+02 4.466221033872973e+02 4.453242308473862e+02 4.440276601209875e+02 - 4.427323963290266e+02 4.414384445939725e+02 4.401458100398370e+02 4.388544977921764e+02 4.375645129780900e+02 - 4.362758607262207e+02 4.349885461667554e+02 4.337025744314242e+02 4.324179506535007e+02 4.311346799678025e+02 - 4.298527675106906e+02 4.285722184200691e+02 4.272930378353866e+02 4.260152308976346e+02 4.247388027493482e+02 - 4.234637585346064e+02 4.221901033990317e+02 4.209178424897899e+02 4.196469809555908e+02 4.183775239466873e+02 - 4.171094766148764e+02 4.158428441134982e+02 4.145776315974367e+02 4.133138442231195e+02 4.120514871485177e+02 - 4.107905655331455e+02 4.095310845380616e+02 4.082730493258674e+02 4.070164650607085e+02 4.057613369082738e+02 - 4.045076700357962e+02 4.032554696120511e+02 4.020047408073589e+02 4.007554887935824e+02 3.995077187441286e+02 - 3.982614358339480e+02 3.970166452395346e+02 3.957733521389259e+02 3.945315617117033e+02 3.932912791389912e+02 - 3.920525096034583e+02 3.908152582893162e+02 3.895795303823206e+02 3.883453310697706e+02 3.871126655405087e+02 - 3.858815389849212e+02 3.846519565949380e+02 3.834239235640323e+02 3.821974450872211e+02 3.809725263610652e+02 - 3.797491725836686e+02 3.785273889546788e+02 3.773071806752873e+02 3.760885529482291e+02 3.748715109777822e+02 - 3.736560599697692e+02 3.724422051315553e+02 3.712299516720498e+02 3.700193048017055e+02 3.688102697325187e+02 - 3.676028516780295e+02 3.663970558533210e+02 3.651928874750207e+02 3.639903517612993e+02 3.627894539318706e+02 - 3.615901992079928e+02 3.603925928124674e+02 3.591966399696389e+02 3.580023459053963e+02 3.568097158471716e+02 - 3.556187550239405e+02 3.544294686662223e+02 3.532418620060801e+02 3.520559402771199e+02 3.508717087144923e+02 - 3.496891725548904e+02 3.485083370365518e+02 3.473292073992571e+02 3.461517888843309e+02 3.449760867346407e+02 - 3.438021061945983e+02 3.426298525101589e+02 3.414593309288210e+02 3.402905466996269e+02 3.391235050731623e+02 - 3.379582113015570e+02 3.367946706384836e+02 3.356328883391590e+02 3.344728696603431e+02 3.333146198603399e+02 - 3.321581441989965e+02 3.310034479377038e+02 3.298505363393963e+02 3.286994146685523e+02 3.275500881911931e+02 - 3.264025621748842e+02 3.252568418887342e+02 3.241129326033955e+02 3.229708395910641e+02 3.218305681254797e+02 - 3.206921234819250e+02 3.195555109372272e+02 3.184207357697562e+02 3.172878032594259e+02 3.161567186876940e+02 - 3.150274873375612e+02 3.139001144935722e+02 3.127746054418153e+02 3.116509654699221e+02 3.105291998670680e+02 - 3.094093139239718e+02 3.082913129328962e+02 3.071752021876472e+02 3.060609869835743e+02 3.049486726175709e+02 - 3.038382643880739e+02 3.027297675950632e+02 3.016231875400634e+02 3.005185295261418e+02 2.994157988579094e+02 - 2.983150008415209e+02 2.972161407846750e+02 2.961192239966130e+02 2.950242557881208e+02 2.939312414715272e+02 - 2.928401863607048e+02 2.917510957710699e+02 2.906639750195822e+02 2.895788294247451e+02 2.884956643066055e+02 - 2.874144849867538e+02 2.863352967883243e+02 2.852581050359946e+02 2.841829150559857e+02 2.831097321760628e+02 - 2.820385617255341e+02 2.809694090352515e+02 2.799022794376108e+02 2.788371782665511e+02 2.777741108575549e+02 - 2.767130825476488e+02 2.756540986754025e+02 2.745971645809293e+02 2.735422856058867e+02 2.724894670934750e+02 - 2.714387143884384e+02 2.703900328370648e+02 2.693434277871856e+02 2.682989045881756e+02 2.672564685909533e+02 - 2.662161251479810e+02 2.651778796132642e+02 2.641417373423522e+02 2.631077036923379e+02 2.620757840218578e+02 - 2.610459836910915e+02 2.600183080617631e+02 2.589927624971394e+02 2.579693523620314e+02 2.569480830227931e+02 - 2.559289598473227e+02 2.549119882050614e+02 2.538971734669946e+02 2.528845210056507e+02 2.518740361951020e+02 - 2.508657244109642e+02 2.498595910303967e+02 2.488556414321026e+02 2.478538809963281e+02 2.468543151048638e+02 - 2.458569491410431e+02 2.448617884897432e+02 2.438688385373852e+02 2.428781046719333e+02 2.418895922828956e+02 - 2.409033067613238e+02 2.399192534998131e+02 2.389374378925019e+02 2.379578653350729e+02 2.369805412247519e+02 - 2.360054709603084e+02 2.350326599420553e+02 2.340621135718494e+02 2.330938372530911e+02 2.321278363907239e+02 - 2.311641163912353e+02 2.302026826626565e+02 2.292435406145617e+02 2.282866956580692e+02 2.273321532058407e+02 - 2.263799186720815e+02 2.254299974725404e+02 2.244823950245099e+02 2.235371167468261e+02 2.225941680598685e+02 - 2.216535543855603e+02 2.207152811473682e+02 2.197793537703028e+02 2.188457776809178e+02 2.179145583073106e+02 - 2.169857010791227e+02 2.160592114275385e+02 2.151350947852860e+02 2.142133565866376e+02 2.132940022674083e+02 - 2.123770372649571e+02 2.114624670181867e+02 2.105502969675431e+02 2.096405325550162e+02 2.087331792241393e+02 - 2.078282424199890e+02 2.069257275891860e+02 2.060256401798943e+02 2.051279856418216e+02 2.042327694262190e+02 - 2.033399969858813e+02 2.024496737751469e+02 2.015618052498977e+02 2.006763968675590e+02 1.997934540871004e+02 - 1.989129823690343e+02 1.980349871754169e+02 1.971594739698481e+02 1.962864482174713e+02 1.954159153849736e+02 - 1.945478809405854e+02 1.936823503540812e+02 1.928193290967781e+02 1.919588226415381e+02 1.911008364627658e+02 - 1.902453760364096e+02 1.893924468399617e+02 1.885420543524577e+02 1.876942040544768e+02 1.868489014281417e+02 - 1.860061519571189e+02 1.851659611266184e+02 1.843283344233937e+02 1.834932773357418e+02 1.826607953535034e+02 - 1.818308939680629e+02 1.810035786723481e+02 1.801788549608304e+02 1.793567283295249e+02 1.785372042759901e+02 - 1.777202882993282e+02 1.769059859001850e+02 1.760943025807497e+02 1.752852438447554e+02 1.744788151974785e+02 - 1.736750221457390e+02 1.728738701979007e+02 1.720753648638706e+02 1.712795116550998e+02 1.704863160845825e+02 - 1.696957836668566e+02 1.689079199180039e+02 1.681227303556493e+02 1.673402204989617e+02 1.665603958686532e+02 - 1.657832619869799e+02 1.650088243777409e+02 1.642370885662795e+02 1.634680600794823e+02 1.627017444457793e+02 - 1.619381471951445e+02 1.611772738590951e+02 1.604191299706921e+02 1.596637210645399e+02 1.589110526767867e+02 - 1.581611303451241e+02 1.574139596087874e+02 1.566695460085554e+02 1.559278950867503e+02 1.551890123872385e+02 - 1.544529034554292e+02 1.537195738382757e+02 1.529890290842748e+02 1.522612747434666e+02 1.515363163674351e+02 - 1.508141595093076e+02 1.500948097237555e+02 1.493782725669932e+02 1.486645535967789e+02 1.479536583724143e+02 - 1.472455924547449e+02 1.465403614061596e+02 1.458379707905909e+02 1.451384261735148e+02 1.444417331219514e+02 - 1.437478972044633e+02 1.430569239911578e+02 1.423688190536853e+02 1.416835879652396e+02 1.410012363005585e+02 - 1.403217696359229e+02 1.396451935491577e+02 1.389715136196312e+02 1.383007354282553e+02 1.376328645574854e+02 - 1.369679065913208e+02 1.363058671153038e+02 1.356467517165207e+02 1.349905659836014e+02 1.343373155067194e+02 - 1.336870058775913e+02 1.330396426894780e+02 1.323952315371832e+02 1.317537780170550e+02 1.311152877269845e+02 - 1.304797662664065e+02 1.298472192362996e+02 1.292176522391855e+02 1.285910708791301e+02 1.279674807617425e+02 - 1.273468874941753e+02 1.267292966851250e+02 1.261147139448316e+02 1.255031448850783e+02 1.248945951191923e+02 - 1.242890702620443e+02 1.236865759300485e+02 1.230871177411627e+02 1.224907013148884e+02 1.218973322722703e+02 - 1.213070162358971e+02 1.207197588299010e+02 1.201355656799576e+02 1.195544424132864e+02 1.189763946586499e+02 - 1.184014280463548e+02 1.178295482082510e+02 1.172607607777323e+02 1.166950713897357e+02 1.161324856807421e+02 - 1.155730092887757e+02 1.150166478534045e+02 1.144634070157400e+02 1.139132924184372e+02 1.133663097056950e+02 - 1.128224645232555e+02 1.122817625184044e+02 1.117442093399712e+02 1.112098106383290e+02 1.106785720653942e+02 - 1.101504843345202e+02 1.096253193854976e+02 1.091027814759659e+02 1.085828903190926e+02 1.080656662057070e+02 - 1.075510744401853e+02 1.070391017583160e+02 1.065297369211215e+02 1.060229642403793e+02 1.055187689946627e+02 - 1.050171373101604e+02 1.045180558156006e+02 1.040215103049707e+02 1.035274865113781e+02 1.030359706887152e+02 - 1.025469492169604e+02 1.020604083357866e+02 1.015763340040288e+02 1.010947131078929e+02 1.006155327791835e+02 - 1.001387792631148e+02 9.966443911893010e+01 9.919249927205091e+01 9.872294669690289e+01 9.825576811144268e+01 - 9.779095024426459e+01 9.732848086108395e+01 9.686834738339628e+01 9.641053663288847e+01 9.595503591883143e+01 - 9.550183276437639e+01 9.505091470489599e+01 9.460226894357737e+01 9.415588307372171e+01 9.371174549820027e+01 - 9.326984390100915e+01 9.283016578095182e+01 9.239269910989660e+01 9.195743199867270e+01 9.152435246657959e+01 - 9.109344822825337e+01 9.066470776170968e+01 9.023811990175319e+01 8.981367265385576e+01 8.939135422700863e+01 - 8.897115319588202e+01 8.855305819940260e+01 8.813705766268812e+01 8.772313993524557e+01 8.731129428898021e+01 - 8.690150981214184e+01 8.649377498492467e+01 8.608807868460502e+01 8.568441000539183e+01 8.528275807208179e+01 - 8.488311171021131e+01 8.448546000255536e+01 8.408979283578468e+01 8.369609949978657e+01 8.330436902264381e+01 - 8.291459088961614e+01 8.252675470341519e+01 8.214085000107356e+01 8.175686603719873e+01 8.137479266933553e+01 - 8.099462018292702e+01 8.061633811896954e+01 8.023993612969721e+01 7.986540422509246e+01 7.949273245617202e+01 - 7.912191071864751e+01 7.875292880591886e+01 7.838577728963824e+01 7.802044667908689e+01 7.765692688210476e+01 - 7.729520814701189e+01 7.693528093921003e+01 7.657713574044320e+01 7.622076279877933e+01 7.586615250876412e+01 - 7.551329599462582e+01 7.516218394284439e+01 7.481280673973237e+01 7.446515517211270e+01 7.411922012543234e+01 - 7.377499243991551e+01 7.343246273248482e+01 7.309162206375170e+01 7.275246194060588e+01 7.241497325488510e+01 - 7.207914691168762e+01 7.174497413637995e+01 7.141244624067238e+01 7.108155440657860e+01 7.075228964021176e+01 - 7.042464364044737e+01 7.009860816502822e+01 6.977417437950896e+01 6.945133371117183e+01 6.913007780419414e+01 - 6.881039831641085e+01 6.849228672098478e+01 6.817573455985929e+01 6.786073404036127e+01 6.754727706019318e+01 - 6.723535518365489e+01 6.692496029976250e+01 6.661608442214438e+01 6.630871955818391e+01 6.600285747074972e+01 - 6.569849025826812e+01 6.539561050984807e+01 6.509421028016476e+01 6.479428156422156e+01 6.449581665898590e+01 - 6.419880794007263e+01 6.390324769379086e+01 6.360912802573969e+01 6.331644161216560e+01 6.302518126952705e+01 - 6.273533924838438e+01 6.244690800283556e+01 6.215988021335375e+01 6.187424856554645e+01 6.159000558852496e+01 - 6.130714382209544e+01 6.102565642873360e+01 6.074553634647369e+01 6.046677613965124e+01 6.018936867893675e+01 - 5.991330696615304e+01 5.963858400265185e+01 5.936519255461710e+01 5.909312563142009e+01 5.882237675846172e+01 - 5.855293899151076e+01 5.828480526925385e+01 5.801796883717194e+01 5.775242299813667e+01 5.748816098906929e+01 - 5.722517588172157e+01 5.696346118973321e+01 5.670301063052477e+01 5.644381744585571e+01 5.618587497447161e+01 - 5.592917675378749e+01 5.567371639288440e+01 5.541948735564524e+01 5.516648303666721e+01 5.491469740133566e+01 - 5.466412430128952e+01 5.441475721341882e+01 5.416658984866251e+01 5.391961604526729e+01 5.367382965707854e+01 - 5.342922435049869e+01 5.318579394824101e+01 5.294353276046760e+01 5.270243471566913e+01 5.246249358126801e+01 - 5.222370341980431e+01 5.198605834991378e+01 5.174955243603662e+01 5.151417956992881e+01 5.127993401538280e+01 - 5.104681029539683e+01 5.081480246751264e+01 5.058390465007635e+01 5.035411117607305e+01 5.012541641928832e+01 - 4.989781463692880e+01 4.967129999443014e+01 4.944586717469857e+01 4.922151081792142e+01 4.899822516393252e+01 - 4.877600466591702e+01 4.855484391176263e+01 4.833473749525371e+01 4.811567985888949e+01 4.789766553100244e+01 - 4.768068948486052e+01 4.746474643299185e+01 4.724983089968822e+01 4.703593761581940e+01 4.682306140175855e+01 - 4.661119706938157e+01 4.640033923440899e+01 4.619048280117971e+01 4.598162297433280e+01 4.577375454810339e+01 - 4.556687232031752e+01 4.536097129194708e+01 4.515604651624491e+01 4.495209295916556e+01 4.474910546848848e+01 - 4.454707932343867e+01 4.434600983627007e+01 4.414589194663536e+01 4.394672075425581e+01 4.374849149110094e+01 - 4.355119939554362e+01 4.335483958155968e+01 4.315940720272008e+01 4.296489783321342e+01 4.277130684141869e+01 - 4.257862938067940e+01 4.238686082011235e+01 4.219599659307687e+01 4.200603211268383e+01 4.181696265307154e+01 - 4.162878369849639e+01 4.144149102922540e+01 4.125508008000694e+01 4.106954625154178e+01 4.088488514080404e+01 - 4.070109237453877e+01 4.051816351991027e+01 4.033609404369983e+01 4.015487975529847e+01 3.997451654390139e+01 - 3.979499995457292e+01 3.961632565249730e+01 3.943848943565658e+01 3.926148710146721e+01 3.908531435163689e+01 - 3.890996689581685e+01 3.873544082272831e+01 3.856173207783515e+01 3.838883637414560e+01 3.821674961156019e+01 - 3.804546776546066e+01 3.787498680517137e+01 3.770530255859592e+01 3.753641100849845e+01 3.736830845518836e+01 - 3.720099088344971e+01 3.703445420945200e+01 3.686869456603723e+01 3.670370808841574e+01 3.653949085950763e+01 - 3.637603888796111e+01 3.621334844811717e+01 3.605141592615973e+01 3.589023740445852e+01 3.572980904042850e+01 - 3.557012712196481e+01 3.541118795282225e+01 3.525298774403768e+01 3.509552267323749e+01 3.493878928773343e+01 - 3.478278404343990e+01 3.462750313614663e+01 3.447294293878365e+01 3.431909990161546e+01 3.416597046087814e+01 - 3.401355094900445e+01 3.386183779648810e+01 3.371082772101448e+01 3.356051721064496e+01 3.341090265530899e+01 - 3.326198061398263e+01 3.311374767636361e+01 3.296620040125966e+01 3.281933525310492e+01 3.267314891432770e+01 - 3.252763821351709e+01 3.238279969616838e+01 3.223862995512887e+01 3.209512571750849e+01 3.195228370249094e+01 - 3.181010057023420e+01 3.166857295105629e+01 3.152769775432829e+01 3.138747186368265e+01 3.124789194582367e+01 - 3.110895478177638e+01 3.097065722333928e+01 3.083299612203396e+01 3.069596823521478e+01 3.055957038379009e+01 - 3.042379968490992e+01 3.028865305190764e+01 3.015412726448298e+01 3.002021927954454e+01 2.988692608783410e+01 - 2.975424465393443e+01 2.962217185358958e+01 2.949070472525562e+01 2.935984046863818e+01 2.922957605244617e+01 - 2.909990844798608e+01 2.897083474125067e+01 2.884235205411202e+01 2.871445744621140e+01 2.858714789194334e+01 - 2.846042066311678e+01 2.833427304434733e+01 2.820870204788112e+01 2.808370481822039e+01 2.795927858955916e+01 - 2.783542056310479e+01 2.771212788710439e+01 2.758939774558937e+01 2.746722754519704e+01 2.734561457842300e+01 - 2.722455602005491e+01 2.710404915757552e+01 2.698409131619408e+01 2.686467981339180e+01 2.674581188504884e+01 - 2.662748489299116e+01 2.650969637323688e+01 2.639244364869198e+01 2.627572402574995e+01 2.615953493480668e+01 - 2.604387380499337e+01 2.592873803144385e+01 2.581412497154068e+01 2.570003216993883e+01 2.558645721031992e+01 - 2.547339748309297e+01 2.536085044648649e+01 2.524881363723968e+01 2.513728460374055e+01 2.502626081142699e+01 - 2.491573971820056e+01 2.480571905896494e+01 2.469619646153339e+01 2.458716938319504e+01 2.447863542000312e+01 - 2.437059221927192e+01 2.426303741725681e+01 2.415596854366440e+01 2.404938323139217e+01 2.394327933047775e+01 - 2.383765447837906e+01 2.373250626120992e+01 2.362783239922733e+01 2.352363062421024e+01 2.341989863680159e+01 - 2.331663407933185e+01 2.321383475989216e+01 2.311149855755017e+01 2.300962316438995e+01 2.290820631357202e+01 - 2.280724581327735e+01 2.270673948178020e+01 2.260668508940155e+01 2.250708039173678e+01 2.240792334786956e+01 - 2.230921186720802e+01 2.221094371595302e+01 2.211311674173436e+01 2.201572884123411e+01 2.191877792312015e+01 - 2.182226182065280e+01 2.172617842216956e+01 2.163052579410284e+01 2.153530186271772e+01 2.144050449256298e+01 - 2.134613164544727e+01 2.125218130870039e+01 2.115865145244560e+01 2.106553997668644e+01 2.097284492087666e+01 - 2.088056441996010e+01 2.078869643251129e+01 2.069723893213309e+01 2.060618996606658e+01 2.051554761096601e+01 - 2.042530989859754e+01 2.033547481777502e+01 2.024604054022628e+01 2.015700522393599e+01 2.006836688994228e+01 - 1.998012363072147e+01 1.989227358045817e+01 1.980481486918973e+01 1.971774557717947e+01 1.963106382303616e+01 - 1.954476789103884e+01 1.945885594703988e+01 1.937332608222908e+01 1.928817649453870e+01 1.920340539662878e+01 - 1.911901098077130e+01 1.903499138773951e+01 1.895134486255558e+01 1.886806974988112e+01 1.878516424109755e+01 - 1.870262653275597e+01 1.862045489823334e+01 1.853864761644500e+01 1.845720293609644e+01 1.837611907561623e+01 - 1.829539441141390e+01 1.821502731690405e+01 1.813501600648008e+01 1.805535878852776e+01 1.797605402680784e+01 - 1.789710004813803e+01 1.781849513976010e+01 1.774023761822760e+01 1.766232596769640e+01 1.758475857461898e+01 - 1.750753373031707e+01 1.743064982368309e+01 1.735410526816905e+01 1.727789846424588e+01 1.720202775432962e+01 - 1.712649156263800e+01 1.705128842771503e+01 1.697641675133914e+01 1.690187492053174e+01 1.682766139576636e+01 - 1.675377465125957e+01 1.668021313537254e+01 1.660697525047803e+01 1.653405953620346e+01 1.646146456303875e+01 - 1.638918876353225e+01 1.631723061252691e+01 1.624558863577738e+01 1.617426136715184e+01 1.610324729276991e+01 - 1.603254489420701e+01 1.596215281065743e+01 1.589206962268447e+01 1.582229381597797e+01 1.575282394813798e+01 - 1.568365860435203e+01 1.561479636559848e+01 1.554623575841051e+01 1.547797536749664e+01 1.541001389568697e+01 - 1.534234992945672e+01 1.527498202635700e+01 1.520790881496337e+01 1.514112893627654e+01 1.507464101206718e+01 - 1.500844361854594e+01 1.494253544400039e+01 1.487691522461213e+01 1.481158156982783e+01 1.474653311471545e+01 - 1.468176854391490e+01 1.461728655322583e+01 1.455308580005108e+01 1.448916492494823e+01 1.442552270891503e+01 - 1.436215789907635e+01 1.429906914560298e+01 1.423625515786986e+01 1.417371467503432e+01 1.411144643634281e+01 - 1.404944913182382e+01 1.398772148936426e+01 1.392626235467004e+01 1.386507047757601e+01 1.380414456703780e+01 - 1.374348339923097e+01 1.368308576360786e+01 1.362295043539383e+01 1.356307614411792e+01 1.350346171009224e+01 - 1.344410601461897e+01 1.338500782259274e+01 1.332616591200318e+01 1.326757911048049e+01 1.320924625504148e+01 - 1.315116615215319e+01 1.309333758418828e+01 1.303575945915385e+01 1.297843067064863e+01 1.292135001185642e+01 - 1.286451632934388e+01 1.280792850075226e+01 1.275158540067995e+01 1.269548586414703e+01 1.263962874841400e+01 - 1.258401302186647e+01 1.252863758019894e+01 1.247350127006052e+01 1.241860299544399e+01 1.236394167532885e+01 - 1.230951622025856e+01 1.225532549825102e+01 1.220136844757296e+01 1.214764407513537e+01 1.209415128431592e+01 - 1.204088897936275e+01 1.198785611322907e+01 1.193505164847797e+01 1.188247452422181e+01 1.183012365035161e+01 - 1.177799804372636e+01 1.172609672645034e+01 1.167441862559045e+01 1.162296270435431e+01 1.157172795813644e+01 - 1.152071338824009e+01 1.146991795771504e+01 1.141934063624516e+01 1.136898050295155e+01 1.131883658051165e+01 - 1.126890783457083e+01 1.121919328583311e+01 1.116969196974251e+01 1.112040291453270e+01 1.107132511138846e+01 - 1.102245760367597e+01 1.097379950683186e+01 1.092534984778681e+01 1.087710764406476e+01 1.082907196010627e+01 - 1.078124186863284e+01 1.073361642501848e+01 1.068619465441603e+01 1.063897567074718e+01 1.059195860734133e+01 - 1.054514250814830e+01 1.049852644360809e+01 1.045210951602862e+01 1.040589083229813e+01 1.035986946911022e+01 - 1.031404450080543e+01 1.026841510170119e+01 1.022298040707346e+01 1.017773949095798e+01 1.013269147478631e+01 - 1.008783549702620e+01 1.004317069189082e+01 9.998696157456914e+00 9.954411030186206e+00 9.910314523784715e+00 - 9.866405774945729e+00 9.822683900561229e+00 9.779148062474189e+00 9.735797433007823e+00 9.692631171490490e+00 - 9.649648402951970e+00 9.606848328743531e+00 9.564230182014787e+00 9.521793107635142e+00 9.479536270440141e+00 - 9.437458869806633e+00 9.395560106559989e+00 9.353839157926716e+00 9.312295192835592e+00 9.270927467731591e+00 - 9.229735216231479e+00 9.188717610212938e+00 9.147873860369382e+00 9.107203196336844e+00 9.066704846764596e+00 - 9.026378005702853e+00 8.986221892357717e+00 8.946235805206038e+00 8.906418978693665e+00 8.866770619316361e+00 - 8.827289975974383e+00 8.787976307390357e+00 8.748828863538764e+00 8.709846863139358e+00 8.671029583554503e+00 - 8.632376341244221e+00 8.593886376949055e+00 8.555558939921891e+00 8.517393311170933e+00 8.479388776756116e+00 - 8.441544603229096e+00 8.403860042243403e+00 8.366334424744339e+00 8.328967072292842e+00 8.291757243124138e+00 - 8.254704227472720e+00 8.217807335382002e+00 8.181065876905594e+00 8.144479133106664e+00 8.108046399433587e+00 - 8.071767047639053e+00 8.035640397926882e+00 7.999665736506032e+00 7.963842390434660e+00 7.928169696145141e+00 - 7.892646983285742e+00 7.857273552651162e+00 7.822048750599857e+00 7.786971968025827e+00 7.752042529333232e+00 - 7.717259758863888e+00 7.682623011133142e+00 7.648131647347260e+00 7.613785013617140e+00 7.579582436948184e+00 - 7.545523312250220e+00 7.511607037617057e+00 7.477832951167176e+00 7.444200413093294e+00 7.410708803334905e+00 - 7.377357505498556e+00 7.344145878673218e+00 7.311073286547245e+00 7.278139163173499e+00 7.245342906306997e+00 - 7.212683876663248e+00 7.180161467446147e+00 7.147775082852699e+00 7.115524124234772e+00 7.083407965702390e+00 - 7.051426016132217e+00 7.019577732801474e+00 6.987862512275252e+00 6.956279745475502e+00 6.924828855941318e+00 - 6.893509269882150e+00 6.862320401692200e+00 6.831261647888545e+00 6.800332460884749e+00 6.769532305211046e+00 - 6.738860589806862e+00 6.708316738463165e+00 6.677900193977888e+00 6.647610403615440e+00 6.617446795946176e+00 - 6.587408797932629e+00 6.557495898186097e+00 6.527707560796614e+00 6.498043211862364e+00 6.468502306113241e+00 - 6.439084309299234e+00 6.409788685242900e+00 6.380614873655190e+00 6.351562339061567e+00 6.322630595895343e+00 - 6.293819108127046e+00 6.265127326375664e+00 6.236554729526047e+00 6.208100805116588e+00 6.179765032202197e+00 - 6.151546864740690e+00 6.123445807150094e+00 6.095461385258917e+00 6.067593067877628e+00 6.039840335121551e+00 - 6.012202688508743e+00 5.984679633169969e+00 5.957270656961056e+00 5.929975240292937e+00 5.902792923627279e+00 - 5.875723232013562e+00 5.848765648702115e+00 5.821919682493143e+00 5.795184854142510e+00 5.768560683026402e+00 - 5.742046666390822e+00 5.715642318587924e+00 5.689347205919744e+00 5.663160851223163e+00 5.637082758311135e+00 - 5.611112458697719e+00 5.585249491519008e+00 5.559493390584049e+00 5.533843667789125e+00 5.508299872311603e+00 - 5.482861578646651e+00 5.457528314665947e+00 5.432299611523626e+00 5.407175018586152e+00 5.382154093094761e+00 - 5.357236378022760e+00 5.332421403106363e+00 5.307708752059064e+00 5.283098003376689e+00 5.258588694187007e+00 - 5.234180379291222e+00 5.209872626694981e+00 5.185665008050016e+00 5.161557074183171e+00 5.137548383980142e+00 - 5.113638545797982e+00 5.089827134282968e+00 5.066113702430728e+00 5.042497830741953e+00 5.018979105007048e+00 - 4.995557105455633e+00 4.972231392615168e+00 4.949001558388967e+00 4.925867224885915e+00 4.902827967986653e+00 - 4.879883363679411e+00 4.857033008673309e+00 4.834276503129009e+00 4.811613436797770e+00 4.789043387081744e+00 - 4.766565977795326e+00 4.744180833573695e+00 4.721887536130310e+00 4.699685684376157e+00 4.677574891583497e+00 - 4.655554772271826e+00 4.633624922898647e+00 4.611784942911348e+00 4.590034481232405e+00 4.568373160121153e+00 - 4.546800575450856e+00 4.525316347519302e+00 4.503920103923871e+00 4.482611469298424e+00 4.461390048788094e+00 - 4.440255471271009e+00 4.419207398665950e+00 4.398245451269402e+00 4.377369245425554e+00 4.356578419383048e+00 - 4.335872613273037e+00 4.315251459075552e+00 4.294714576337845e+00 4.274261622204341e+00 4.253892261314030e+00 - 4.233606119889290e+00 4.213402835603544e+00 4.193282059746365e+00 4.173243445650493e+00 4.153286631923412e+00 - 4.133411255497697e+00 4.113616998652003e+00 4.093903524786619e+00 4.074270469191258e+00 4.054717490515994e+00 - 4.035244253601178e+00 4.015850419023907e+00 3.996535633568783e+00 3.977299560905666e+00 3.958141896495164e+00 - 3.939062301025637e+00 3.920060427447142e+00 3.901135950094528e+00 3.882288544897898e+00 3.863517881118590e+00 - 3.844823615448907e+00 3.826205437051391e+00 3.807663047653544e+00 3.789196110563124e+00 3.770804297342049e+00 - 3.752487294212357e+00 3.734244789018890e+00 3.716076457976182e+00 3.697981972490954e+00 3.679961043694115e+00 - 3.662013372248035e+00 3.644138631063968e+00 3.626336509775109e+00 3.608606705542072e+00 3.590948914412318e+00 - 3.573362819793663e+00 3.555848115085657e+00 3.538404523614169e+00 3.521031745026515e+00 3.503729467883798e+00 - 3.486497394134707e+00 3.469335231734055e+00 3.452242686325544e+00 3.435219448952052e+00 3.418265234650198e+00 - 3.401379774604279e+00 3.384562769850576e+00 3.367813923930398e+00 3.351132951883403e+00 3.334519571031865e+00 - 3.317973491801103e+00 3.301494419647167e+00 3.285082090084510e+00 3.268736234671993e+00 3.252456560777042e+00 - 3.236242786971220e+00 3.220094639575606e+00 3.204011846234647e+00 3.187994121490988e+00 3.172041185626448e+00 - 3.156152791161071e+00 3.140328668842820e+00 3.124568535295174e+00 3.108872124034968e+00 3.093239171871656e+00 - 3.077669412161458e+00 3.062162565910707e+00 3.046718374098970e+00 3.031336596904380e+00 3.016016966139392e+00 - 3.000759212810465e+00 2.985563079528153e+00 2.970428312130104e+00 2.955354650145179e+00 2.940341825152254e+00 - 2.925389598488303e+00 2.910497731503551e+00 2.895665957526404e+00 2.880894022713473e+00 2.866181682137055e+00 - 2.851528688498591e+00 2.836934785005289e+00 2.822399718118186e+00 2.807923264019232e+00 2.793505182293368e+00 - 2.779145216423770e+00 2.764843124903896e+00 2.750598669795774e+00 2.736411610868753e+00 2.722281698431688e+00 - 2.708208697067331e+00 2.694192390113966e+00 2.680232535961204e+00 2.666328890540199e+00 2.652481222662398e+00 - 2.638689303226956e+00 2.624952898002155e+00 2.611271764144950e+00 2.597645683492627e+00 2.584074442444535e+00 - 2.570557801667266e+00 2.557095530257868e+00 2.543687406599445e+00 2.530333209423413e+00 2.517032707379746e+00 - 2.503785668122807e+00 2.490591889861845e+00 2.477451158950901e+00 2.464363243138197e+00 2.451327922049569e+00 - 2.438344980862380e+00 2.425414204994132e+00 2.412535368413293e+00 2.399708255484590e+00 2.386932671907132e+00 - 2.374208401602455e+00 2.361535223009603e+00 2.348912926727443e+00 2.336341305706971e+00 2.323820149408004e+00 - 2.311349238873846e+00 2.298928374328811e+00 2.286557363678248e+00 2.274235992966902e+00 2.261964052364815e+00 - 2.249741340335214e+00 2.237567658215990e+00 2.225442798573621e+00 2.213366549457367e+00 2.201338726388740e+00 - 2.189359138707274e+00 2.177427577694549e+00 2.165543843493499e+00 2.153707741170415e+00 2.141919076444355e+00 - 2.130177647034976e+00 2.118483256831743e+00 2.106835728234196e+00 2.095234867960482e+00 2.083680476325080e+00 - 2.072172364176171e+00 2.060710343839133e+00 2.049294224696878e+00 2.037923808395575e+00 2.026598913260298e+00 - 2.015319367985618e+00 2.004084979196668e+00 1.992895556108562e+00 1.981750916950703e+00 1.970650881000152e+00 - 1.959595261684839e+00 1.948583868145923e+00 1.937616532016987e+00 1.926693081878526e+00 1.915813328267264e+00 - 1.904977090405082e+00 1.894184192977273e+00 1.883434460875044e+00 1.872727710477953e+00 1.862063762090873e+00 - 1.851442457083682e+00 1.840863622251705e+00 1.830327074965862e+00 1.819832643502570e+00 1.809380158797907e+00 - 1.798969449793061e+00 1.788600336572885e+00 1.778272652771865e+00 1.767986244795942e+00 1.757740938619203e+00 - 1.747536560606076e+00 1.737372946411540e+00 1.727249932639099e+00 1.717167351154095e+00 1.707125028541288e+00 - 1.697122811212298e+00 1.687160545804055e+00 1.677238060829077e+00 1.667355192130723e+00 1.657511781312863e+00 - 1.647707669880958e+00 1.637942692337234e+00 1.628216684763444e+00 1.618529503053863e+00 1.608880992276723e+00 - 1.599270986915247e+00 1.589699330823691e+00 1.580165870897195e+00 1.570670452975510e+00 1.561212914561866e+00 - 1.551793103249197e+00 1.542410880472349e+00 1.533066090216831e+00 1.523758574579748e+00 1.514488184288800e+00 - 1.505254771462676e+00 1.496058184704016e+00 1.486898266759950e+00 1.477774877044576e+00 1.468687878023066e+00 - 1.459637114930725e+00 1.450622438289068e+00 1.441643704572125e+00 1.432700770639202e+00 1.423793487269355e+00 - 1.414921704769478e+00 1.406085292220042e+00 1.397284110913275e+00 1.388518010515092e+00 1.379786849127615e+00 - 1.371090488107240e+00 1.362428788219066e+00 1.353801602746353e+00 1.345208792137069e+00 1.336650231141558e+00 - 1.328125779708811e+00 1.319635294146069e+00 1.311178639017341e+00 1.302755680403749e+00 1.294366281732825e+00 - 1.286010300246468e+00 1.277687607130681e+00 1.269398079017509e+00 1.261141576506052e+00 1.252917963373013e+00 - 1.244727109229262e+00 1.236568884548108e+00 1.228443154841189e+00 1.220349783647821e+00 1.212288651549746e+00 - 1.204259634287000e+00 1.196262595500517e+00 1.188297406122070e+00 1.180363940507803e+00 1.172462072687314e+00 - 1.164591670206239e+00 1.156752605274376e+00 1.148944764287503e+00 1.141168021685895e+00 1.133422246839356e+00 - 1.125707316556084e+00 1.118023109341937e+00 1.110369501923575e+00 1.102746365022667e+00 1.095153580538906e+00 - 1.087591037394418e+00 1.080058609806265e+00 1.072556173728377e+00 1.065083611042832e+00 1.057640804167975e+00 - 1.050227631677888e+00 1.042843969448370e+00 1.035489708218281e+00 1.028164736497249e+00 1.020868930712798e+00 - 1.013602173363602e+00 1.006364350528145e+00 9.991553480860069e-01 9.919750464549014e-01 9.848233287198007e-01 - 9.777000916381701e-01 9.706052224312447e-01 9.635386022157533e-01 9.565001191688937e-01 9.494896630661879e-01 - 9.425071223228538e-01 9.355523797940184e-01 9.286253271866921e-01 9.217258644183214e-01 9.148538781303724e-01 - 9.080092551050607e-01 9.011918879859632e-01 8.944016703005543e-01 8.876384924746002e-01 8.809022413584221e-01 - 8.741928168976413e-01 8.675101190938330e-01 8.608540359442419e-01 8.542244603473701e-01 8.476212889430066e-01 - 8.410444181391276e-01 8.344937399710189e-01 8.279691476350027e-01 8.214705470141707e-01 8.149978368018493e-01 - 8.085509088588196e-01 8.021296614287111e-01 7.957339944800463e-01 7.893638070383275e-01 7.830189931350516e-01 - 7.766994532966268e-01 7.704050967403675e-01 7.641358215802615e-01 7.578915247022724e-01 7.516721083807270e-01 - 7.454774759379389e-01 7.393075284143857e-01 7.331621629407183e-01 7.270412875750237e-01 7.209448123528730e-01 - 7.148726361079928e-01 7.088246610576617e-01 7.028007931997213e-01 6.968009387204053e-01 6.908250000358214e-01 - 6.848728793751606e-01 6.789444908271167e-01 6.730397435251165e-01 6.671585392499849e-01 6.613007849024644e-01 - 6.554663896318030e-01 6.496552624588109e-01 6.438673070778183e-01 6.381024319556428e-01 6.323605552121262e-01 - 6.266415850605696e-01 6.209454272475601e-01 6.152719929073242e-01 6.096211942955035e-01 6.039929419697414e-01 - 5.983871423673978e-01 5.928037109278776e-01 5.872425665727200e-01 5.817036179262789e-01 5.761867757580472e-01 - 5.706919545755328e-01 5.652190691753797e-01 5.597680312855905e-01 5.543387515608681e-01 5.489311514266204e-01 - 5.435451491959484e-01 5.381806555529779e-01 5.328375858091706e-01 5.275158573424954e-01 5.222153871968650e-01 - 5.169360885007255e-01 5.116778775087658e-01 5.064406794925096e-01 5.012244118255510e-01 4.960289886382637e-01 - 4.908543290552675e-01 4.857003532629381e-01 4.805669801867241e-01 4.754541247133137e-01 4.703617092625736e-01 - 4.652896609026711e-01 4.602378967146020e-01 4.552063350475851e-01 4.501948983226124e-01 4.452035092771810e-01 - 4.402320879227842e-01 4.352805523654864e-01 4.303488309750054e-01 4.254368504386150e-01 4.205445290166767e-01 - 4.156717895856258e-01 4.108185573527897e-01 4.059847567861119e-01 4.011703090912549e-01 3.963751374739253e-01 - 3.915991740467544e-01 3.868423443729578e-01 3.821045699452743e-01 3.773857771630841e-01 3.726858934536713e-01 - 3.680048452743795e-01 3.633425553945757e-01 3.586989523890614e-01 3.540739701811214e-01 3.494675340422360e-01 - 3.448795694018267e-01 3.403100055229290e-01 3.357587720701978e-01 3.312257966625470e-01 3.267110046986084e-01 - 3.222143302305144e-01 3.177357072575733e-01 3.132750617821559e-01 3.088323230437107e-01 3.044074228278458e-01 - 3.000002929514869e-01 2.956108619814004e-01 2.912390591663653e-01 2.868848226223222e-01 2.825480855369588e-01 - 2.782287763584979e-01 2.739268276304007e-01 2.696421732978619e-01 2.653747469077652e-01 2.611244782932083e-01 - 2.568913016367161e-01 2.526751570146955e-01 2.484759769388697e-01 2.442936932048949e-01 2.401282413902519e-01 - 2.359795575701045e-01 2.318475761710866e-01 2.277322290127450e-01 2.236334554284879e-01 2.195511960314929e-01 - 2.154853836729677e-01 2.114359536211432e-01 2.074028437636633e-01 2.033859920182897e-01 1.993853337119912e-01 - 1.954008040589642e-01 1.914323463143237e-01 1.874799002688242e-01 1.835434007181165e-01 1.796227861758036e-01 - 1.757179964922509e-01 1.718289711649378e-01 1.679556465242757e-01 1.640979620393169e-01 1.602558632656972e-01 - 1.564292893436780e-01 1.526181778855338e-01 1.488224700413446e-01 1.450421075715582e-01 1.412770310767497e-01 - 1.375271785489454e-01 1.337924939887067e-01 1.300729236356154e-01 1.263684067750867e-01 1.226788841702678e-01 - 1.190042991249222e-01 1.153445951805052e-01 1.116997137432381e-01 1.080695954417651e-01 1.044541881911586e-01 - 1.008534377603918e-01 9.726728475975084e-02 9.369567294988820e-02 9.013854752144720e-02 8.659585347215112e-02 - 8.306753302147955e-02 7.955353046975124e-02 7.605379621791922e-02 7.256827534889604e-02 6.909691079142652e-02 - 6.563964883225221e-02 6.219643640409570e-02 5.876721959493493e-02 5.535194193553600e-02 5.195055179453398e-02 - 4.856300050562060e-02 4.518923308325209e-02 4.182919528191363e-02 3.848283536820589e-02 3.515010193539807e-02 - 3.183094185890936e-02 2.852530077920949e-02 2.523313079087341e-02 2.195438300307553e-02 1.868900335629075e-02 - 1.543694036357313e-02 1.219814405293583e-02 8.972564385828061e-03 5.760148923624660e-03 2.560846417529306e-03 - -6.253884489496408e-04 -3.798605206001689e-03 -6.958856024607482e-03 -1.010619000899848e-02 -1.324065554473652e-02 - -1.636230159824732e-02 -1.947117958312726e-02 -2.256733711284757e-02 -2.565081832749929e-02 -2.872167302619957e-02 - -3.177995089902724e-02 -3.482569914268617e-02 -3.785896464500105e-02 -4.087979562235380e-02 -4.388824175488684e-02 - -4.688434717766576e-02 -4.986815604286890e-02 -5.283971753775529e-02 -5.579907881824794e-02 -5.874628546589089e-02 - -6.168138307363240e-02 -6.460441923558070e-02 -6.751544105442296e-02 -7.041449003639784e-02 -7.330161087707579e-02 - -7.617685125406765e-02 -7.904025608548425e-02 -8.189186951723537e-02 -8.473173608907363e-02 -8.755990257827875e-02 - -9.037641289395969e-02 -9.318130717201861e-02 -9.597463047763352e-02 -9.875642835115833e-02 -1.015267439140877e-01 - -1.042856199263307e-01 -1.070331001684683e-01 -1.097692300567918e-01 -1.124940502948268e-01 -1.152076007898061e-01 - -1.179099262631479e-01 -1.206010699593113e-01 -1.232810735016665e-01 -1.259499784255051e-01 -1.286078279418341e-01 - -1.312546653333709e-01 -1.338905286984875e-01 -1.365154583874092e-01 -1.391294979538990e-01 -1.417326885345280e-01 - -1.443250704192513e-01 -1.469066841433861e-01 -1.494775722507627e-01 -1.520377752494497e-01 -1.545873297590701e-01 - -1.571262765202916e-01 -1.596546572452540e-01 -1.621725113907878e-01 -1.646798779801165e-01 -1.671767967821347e-01 - -1.696633092874520e-01 -1.721394530811854e-01 -1.746052643091513e-01 -1.770607836101869e-01 -1.795060506428017e-01 - -1.819411034225526e-01 -1.843659798390828e-01 -1.867807191554161e-01 -1.891853611111403e-01 -1.915799407499077e-01 - -1.939644945120454e-01 -1.963390621459183e-01 -1.987036813730624e-01 -2.010583889984393e-01 -2.034032219467188e-01 - -2.057382189127211e-01 -2.080634172465200e-01 -2.103788504106409e-01 -2.126845552585028e-01 -2.149805700057577e-01 - -2.172669307458855e-01 -2.195436731393316e-01 -2.218108333786645e-01 -2.240684493062661e-01 -2.263165556286022e-01 - -2.285551851690127e-01 -2.307843748874083e-01 -2.330041611277884e-01 -2.352145785311434e-01 -2.374156618282909e-01 - -2.396074467707450e-01 -2.417899696732801e-01 -2.439632627554057e-01 -2.461273590292558e-01 -2.482822949571798e-01 - -2.504281050002428e-01 -2.525648226666662e-01 -2.546924818382261e-01 -2.568111176810049e-01 -2.589207645010757e-01 - -2.610214530059819e-01 -2.631132165202481e-01 -2.651960899948890e-01 -2.672701065219724e-01 -2.693352987894519e-01 - -2.713916998229662e-01 -2.734393439668777e-01 -2.754782632038173e-01 -2.775084874639143e-01 -2.795300503441993e-01 - -2.815429852855671e-01 -2.835473240274155e-01 -2.855430981234691e-01 -2.875303400246380e-01 -2.895090831627840e-01 - -2.914793573631382e-01 -2.934411924374482e-01 -2.953946213942734e-01 -2.973396760049649e-01 -2.992763870705049e-01 - -3.012047853752455e-01 -3.031249029054077e-01 -3.050367713048046e-01 -3.069404187491607e-01 -3.088358754333808e-01 - -3.107231733999588e-01 -3.126023429151826e-01 -3.144734138246973e-01 -3.163364162512183e-01 -3.181913814969073e-01 - -3.200383391593082e-01 -3.218773166629695e-01 -3.237083442965246e-01 -3.255314526206347e-01 -3.273466708133588e-01 - -3.291540279174764e-01 -3.309535535062730e-01 -3.327452779044484e-01 -3.345292286746930e-01 -3.363054329977739e-01 - -3.380739209920870e-01 -3.398347217688169e-01 -3.415878634526212e-01 -3.433333743100879e-01 -3.450712833788954e-01 - -3.468016195958206e-01 -3.485244091566739e-01 -3.502396793974815e-01 -3.519474593420066e-01 -3.536477770380763e-01 - -3.553406598299846e-01 -3.570261348354672e-01 -3.587042307855341e-01 -3.603749751839582e-01 -3.620383929731605e-01 - -3.636945116923384e-01 -3.653433594409278e-01 -3.669849628231984e-01 -3.686193482790397e-01 -3.702465427747400e-01 - -3.718665743211436e-01 -3.734794684043725e-01 -3.750852495624684e-01 -3.766839451194457e-01 -3.782755819189342e-01 - -3.798601858648072e-01 -3.814377826321034e-01 -3.830083986549013e-01 -3.845720606417443e-01 -3.861287926090124e-01 - -3.876786193539286e-01 -3.892215675502101e-01 -3.907576628594260e-01 -3.922869303026715e-01 -3.938093947284727e-01 - -3.953250822556230e-01 -3.968340182497304e-01 -3.983362256494206e-01 -3.998317293097848e-01 -4.013205549386248e-01 - -4.028027272117153e-01 -4.042782703087232e-01 -4.057472086115670e-01 -4.072095677082399e-01 -4.086653712889545e-01 - -4.101146418277140e-01 -4.115574040934622e-01 -4.129936826934361e-01 -4.144235014035024e-01 -4.158468836578273e-01 - -4.172638535617268e-01 -4.186744357650895e-01 -4.200786523524958e-01 -4.214765258006608e-01 -4.228680805923657e-01 - -4.242533401481378e-01 -4.256323273241845e-01 -4.270050650780072e-01 -4.283715771591216e-01 -4.297318868367957e-01 - -4.310860152683936e-01 -4.324339850671611e-01 -4.337758197699306e-01 -4.351115419219263e-01 -4.364411736856622e-01 - -4.377647373653272e-01 -4.390822563519974e-01 -4.403937525793140e-01 -4.416992465950099e-01 -4.429987609092939e-01 - -4.442923180804305e-01 -4.455799398898891e-01 -4.468616477876415e-01 -4.481374637930542e-01 -4.494074106490894e-01 - -4.506715085877422e-01 -4.519297779021105e-01 -4.531822412097039e-01 -4.544289201442401e-01 -4.556698355752103e-01 - -4.569050083194456e-01 -4.581344599890250e-01 -4.593582121055255e-01 -4.605762842891920e-01 -4.617886970897419e-01 - -4.629954719556403e-01 -4.641966295426422e-01 -4.653921902577345e-01 -4.665821746143150e-01 -4.677666038635413e-01 - -4.689454981292748e-01 -4.701188761476531e-01 -4.712867586709557e-01 -4.724491664926360e-01 -4.736061192593240e-01 - -4.747576368456714e-01 -4.759037394682022e-01 -4.770444475543998e-01 -4.781797800875144e-01 -4.793097558338887e-01 - -4.804343950164401e-01 -4.815537175042383e-01 -4.826677426390972e-01 -4.837764894228364e-01 -4.848799775883490e-01 - -4.859782270303963e-01 -4.870712557287352e-01 -4.881590823344398e-01 -4.892417265305033e-01 -4.903192072931410e-01 - -4.913915433426016e-01 -4.924587534540600e-01 -4.935208569593936e-01 -4.945778724869024e-01 -4.956298174121960e-01 - -4.966767104426105e-01 -4.977185705977166e-01 -4.987554161795947e-01 -4.997872652579317e-01 -5.008141361357437e-01 - -5.018360477540788e-01 -5.028530175622089e-01 -5.038650625463708e-01 -5.048722015765362e-01 -5.058744527800632e-01 - -5.068718334710337e-01 -5.078643614554021e-01 -5.088520548881869e-01 -5.098349318298798e-01 -5.108130088001350e-01 - -5.117863028619736e-01 -5.127548322161382e-01 -5.137186142245088e-01 -5.146776659499980e-01 -5.156320045833772e-01 - -5.165816478015819e-01 -5.175266128170244e-01 -5.184669156304091e-01 -5.194025733016244e-01 -5.203336032597101e-01 - -5.212600221732120e-01 -5.221818466804444e-01 -5.230990936596679e-01 -5.240117804553392e-01 -5.249199232262068e-01 - -5.258235374392936e-01 -5.267226400387954e-01 -5.276172478389746e-01 -5.285073771019844e-01 -5.293930438910602e-01 - -5.302742646986305e-01 -5.311510563423283e-01 -5.320234339437281e-01 -5.328914129379527e-01 -5.337550101355577e-01 - -5.346142414983102e-01 -5.354691226448078e-01 -5.363196694209366e-01 -5.371658979374595e-01 -5.380078240078261e-01 - -5.388454624615836e-01 -5.396788287704753e-01 -5.405079388378121e-01 -5.413328081929075e-01 -5.421534521210617e-01 - -5.429698859177164e-01 -5.437821254261226e-01 -5.445901856060492e-01 -5.453940806517681e-01 -5.461938261275164e-01 - -5.469894375147514e-01 -5.477809296410460e-01 -5.485683172596564e-01 -5.493516154047422e-01 -5.501308394233321e-01 - -5.509060035978606e-01 -5.516771220917993e-01 -5.524442098036262e-01 -5.532072816062331e-01 -5.539663521228516e-01 - -5.547214355736525e-01 -5.554725467511782e-01 -5.562197004144761e-01 -5.569629099559865e-01 -5.577021895124128e-01 - -5.584375539231472e-01 -5.591690174427206e-01 -5.598965939391384e-01 -5.606202972403660e-01 -5.613401421520022e-01 - -5.620561426054913e-01 -5.627683113219669e-01 -5.634766626491997e-01 -5.641812109417922e-01 -5.648819696019924e-01 - -5.655789522526887e-01 -5.662721727674018e-01 -5.669616451334641e-01 -5.676473824290281e-01 -5.683293976251365e-01 - -5.690077046537543e-01 -5.696823171027902e-01 -5.703532481968968e-01 -5.710205111045815e-01 -5.716841193018837e-01 - -5.723440862989044e-01 -5.730004247377283e-01 -5.736531475408438e-01 -5.743022680808630e-01 -5.749477994635019e-01 - -5.755897545119250e-01 -5.762281459317424e-01 -5.768629872133108e-01 -5.774942912813225e-01 -5.781220698864685e-01 - -5.787463360372200e-01 -5.793671029370097e-01 -5.799843829591812e-01 -5.805981885004621e-01 -5.812085322229668e-01 - -5.818154271777390e-01 -5.824188854500640e-01 -5.830189187855023e-01 -5.836155400127914e-01 -5.842087616519486e-01 - -5.847985957903102e-01 -5.853850545399070e-01 -5.859681502822114e-01 -5.865478954643482e-01 -5.871243015837295e-01 - -5.876973804424807e-01 -5.882671445115567e-01 -5.888336058093040e-01 -5.893967761301214e-01 -5.899566672475657e-01 - -5.905132912554449e-01 -5.910666600004119e-01 -5.916167846344484e-01 -5.921636769312483e-01 -5.927073488739303e-01 - -5.932478119884005e-01 -5.937850777230974e-01 -5.943191576345895e-01 -5.948500635775013e-01 -5.953778067525587e-01 - -5.959023980172641e-01 -5.964238491804477e-01 -5.969421717317064e-01 -5.974573766302176e-01 -5.979694750153504e-01 - -5.984784782975928e-01 -5.989843980133127e-01 -5.994872448737363e-01 -5.999870296226286e-01 -6.004837635008013e-01 - -6.009774575116591e-01 -6.014681225640990e-01 -6.019557696406324e-01 -6.024404098188824e-01 -6.029220539582525e-01 - -6.034007123251734e-01 -6.038763957092128e-01 -6.043491151546724e-01 -6.048188811990667e-01 -6.052857043294740e-01 - -6.057495951725935e-01 -6.062105647034982e-01 -6.066686232996821e-01 -6.071237808282512e-01 -6.075760480581535e-01 - -6.080254356249652e-01 -6.084719536597242e-01 -6.089156123708600e-01 -6.093564221655233e-01 -6.097943936088406e-01 - -6.102295366277345e-01 -6.106618611466814e-01 -6.110913776082281e-01 -6.115180960018122e-01 -6.119420262061138e-01 - -6.123631785057825e-01 -6.127815629923925e-01 -6.131971895415724e-01 -6.136100679122567e-01 -6.140202079254689e-01 - -6.144276194632986e-01 -6.148323123693087e-01 -6.152342964516117e-01 -6.156335814880438e-01 -6.160301772367670e-01 - -6.164240932773791e-01 -6.168153390131846e-01 -6.172039241057757e-01 -6.175898582479540e-01 -6.179731510100582e-01 - -6.183538118537011e-01 -6.187318502245757e-01 -6.191072755983122e-01 -6.194800972241303e-01 -6.198503243163954e-01 - -6.202179663089392e-01 -6.205830326036273e-01 -6.209455324825972e-01 -6.213054750121583e-01 -6.216628693834372e-01 - -6.220177248671027e-01 -6.223700505100402e-01 -6.227198553511943e-01 -6.230671484590707e-01 -6.234119388224310e-01 - -6.237542354039819e-01 -6.240940471906395e-01 -6.244313833278470e-01 -6.247662526956897e-01 -6.250986637315333e-01 - -6.254286253149073e-01 -6.257561464374979e-01 -6.260812358699522e-01 -6.264039022632663e-01 -6.267241542804416e-01 - -6.270420007239386e-01 -6.273574502418447e-01 -6.276705113436000e-01 -6.279811924920996e-01 -6.282895022600340e-01 - -6.285954492669960e-01 -6.288990419377586e-01 -6.292002887596219e-01 -6.294991982474318e-01 -6.297957785295903e-01 - -6.300900379535952e-01 -6.303819851813233e-01 -6.306716282540937e-01 -6.309589752809680e-01 -6.312440348023121e-01 - -6.315268150763020e-01 -6.318073241903770e-01 -6.320855701836068e-01 -6.323615610879741e-01 -6.326353050044859e-01 - -6.329068101802829e-01 -6.331760846635813e-01 -6.334431363818833e-01 -6.337079733473078e-01 -6.339706034520735e-01 - -6.342310345121693e-01 -6.344892744839461e-01 -6.347453312805855e-01 -6.349992127114430e-01 -6.352509264768633e-01 - -6.355004804526597e-01 -6.357478826585540e-01 -6.359931404400122e-01 -6.362362612918424e-01 -6.364772532644518e-01 - -6.367161239398067e-01 -6.369528807876881e-01 -6.371875315012039e-01 -6.374200836672138e-01 -6.376505447719858e-01 - -6.378789222449943e-01 -6.381052236017390e-01 -6.383294563385360e-01 -6.385516277126226e-01 -6.387717451483415e-01 - -6.389898161925324e-01 -6.392058481779943e-01 -6.394198483013303e-01 -6.396318237129481e-01 -6.398417817583982e-01 - -6.400497298004382e-01 -6.402556751053731e-01 -6.404596246811356e-01 -6.406615856182318e-01 -6.408615652398488e-01 - -6.410595705960431e-01 -6.412556087124355e-01 -6.414496867908267e-01 -6.416418117430738e-01 -6.418319904244396e-01 - -6.420202299552208e-01 -6.422065373268501e-01 -6.423909194238488e-01 -6.425733831564441e-01 -6.427539354568388e-01 - -6.429325832107947e-01 -6.431093330874931e-01 -6.432841919278923e-01 -6.434571667152847e-01 -6.436282640341581e-01 - -6.437974905134223e-01 -6.439648529819666e-01 -6.441303582355420e-01 -6.442940129046214e-01 -6.444558234243410e-01 - -6.446157964842297e-01 -6.447739387669796e-01 -6.449302567289288e-01 -6.450847570451982e-01 -6.452374463418470e-01 - -6.453883308317777e-01 -6.455374170518916e-01 -6.456847116523639e-01 -6.458302208459006e-01 -6.459739509825424e-01 - -6.461159085765001e-01 -6.462561000624228e-01 -6.463945317857885e-01 -6.465312099893501e-01 -6.466661407794220e-01 - -6.467993305071421e-01 -6.469307857586633e-01 -6.470605124176557e-01 -6.471885165505020e-01 -6.473148048129491e-01 - -6.474393831451855e-01 -6.475622574433044e-01 -6.476834341411803e-01 -6.478029193005811e-01 -6.479207188186653e-01 - -6.480368387749067e-01 -6.481512852365653e-01 -6.482640642356557e-01 -6.483751817763184e-01 -6.484846438333333e-01 - -6.485924563559199e-01 -6.486986252696630e-01 -6.488031563964390e-01 -6.489060555062011e-01 -6.490073285956434e-01 - -6.491069816182633e-01 -6.492050203757027e-01 -6.493014505946639e-01 -6.493962779796888e-01 -6.494895082497514e-01 - -6.495811472172135e-01 -6.496712006463234e-01 -6.497596741452655e-01 -6.498465734697708e-01 -6.499319043537729e-01 - -6.500156722751166e-01 -6.500978828758883e-01 -6.501785418212779e-01 -6.502576544563589e-01 -6.503352264336196e-01 - -6.504112635780723e-01 -6.504857712206107e-01 -6.505587548117625e-01 -6.506302199692129e-01 -6.507001719669850e-01 - -6.507686161481057e-01 -6.508355580770583e-01 -6.509010033515999e-01 -6.509649573333303e-01 -6.510274250599254e-01 - -6.510884119408136e-01 -6.511479234691252e-01 -6.512059649357221e-01 -6.512625414820176e-01 -6.513176583196066e-01 - -6.513713209657690e-01 -6.514235346566493e-01 -6.514743044494572e-01 -6.515236355351222e-01 -6.515715331668240e-01 - -6.516180025498758e-01 -6.516630486086969e-01 -6.517066764698182e-01 -6.517488914696901e-01 -6.517896986474616e-01 - -6.518291029696229e-01 -6.518671094474887e-01 -6.519037232298822e-01 -6.519389493677847e-01 -6.519727927034696e-01 - -6.520052582102593e-01 -6.520363509344871e-01 -6.520660759114448e-01 -6.520944379877177e-01 -6.521214419863292e-01 - -6.521470929034477e-01 -6.521713955379932e-01 -6.521943546611896e-01 -6.522159753870301e-01 -6.522362625000242e-01 - -6.522552205660485e-01 -6.522728545508729e-01 -6.522891692872490e-01 -6.523041693781095e-01 -6.523178594474156e-01 - -6.523302443147758e-01 -6.523413289626511e-01 -6.523511179648659e-01 -6.523596158248584e-01 -6.523668271884714e-01 - -6.523727568212391e-01 -6.523774093997819e-01 -6.523807893579161e-01 -6.523829012952149e-01 -6.523837498990516e-01 - -6.523833397960367e-01 -6.523816754611410e-01 -6.523787613199525e-01 -6.523746019358498e-01 -6.523692018302728e-01 - -6.523625654555820e-01 -6.523546972248629e-01 -6.523456017173497e-01 -6.523352835702680e-01 -6.523237468711672e-01 - -6.523109959032295e-01 -6.522970353197415e-01 -6.522818693382445e-01 -6.522655022842732e-01 -6.522479388337681e-01 - -6.522291831409690e-01 -6.522092393163972e-01 -6.521881118419591e-01 -6.521658050464721e-01 -6.521423231008568e-01 - -6.521176700882644e-01 -6.520918504277817e-01 -6.520648685798258e-01 -6.520367284462982e-01 -6.520074341903623e-01 - -6.519769901852531e-01 -6.519454004576026e-01 -6.519126690272374e-01 -6.518788000417296e-01 -6.518437978790763e-01 - -6.518076667685843e-01 -6.517704106505043e-01 -6.517320333460206e-01 -6.516925389358605e-01 -6.516519318553129e-01 - -6.516102158220000e-01 -6.515673946405215e-01 -6.515234728464969e-01 -6.514784543315630e-01 -6.514323427842886e-01 - -6.513851423523833e-01 -6.513368570527661e-01 -6.512874907235414e-01 -6.512370470939771e-01 -6.511855301990920e-01 - -6.511329442190841e-01 -6.510792928715797e-01 -6.510245798816351e-01 -6.509688091361985e-01 -6.509119847142907e-01 - -6.508541103488035e-01 -6.507951894034477e-01 -6.507352259931611e-01 -6.506742241942834e-01 -6.506121876059120e-01 - -6.505491199228429e-01 -6.504850249436106e-01 -6.504199065016956e-01 -6.503537680222150e-01 -6.502866130342899e-01 - -6.502184457971011e-01 -6.501492700279957e-01 -6.500790890906794e-01 -6.500079066129352e-01 -6.499357263329657e-01 - -6.498625519683058e-01 -6.497883869826074e-01 -6.497132350047277e-01 -6.496370998048885e-01 -6.495599847614121e-01 - -6.494818934475555e-01 -6.494028297363450e-01 -6.493227969968260e-01 -6.492417985197620e-01 -6.491598378013752e-01 - -6.490769185970405e-01 -6.489930446200032e-01 -6.489082192796405e-01 -6.488224457999440e-01 -6.487357275334984e-01 - -6.486480682838258e-01 -6.485594713376021e-01 -6.484699398068251e-01 -6.483794774339799e-01 -6.482880877536140e-01 - -6.481957740532812e-01 -6.481025397024727e-01 -6.480083880017639e-01 -6.479133221889776e-01 -6.478173456351086e-01 - -6.477204618036257e-01 -6.476226741599570e-01 -6.475239858039916e-01 -6.474243999826228e-01 -6.473239202990485e-01 - -6.472225498463482e-01 -6.471202916312221e-01 -6.470171489638400e-01 -6.469131252405815e-01 -6.468082238277443e-01 - -6.467024479420175e-01 -6.465958006550642e-01 -6.464882850509053e-01 -6.463799044773618e-01 -6.462706620382276e-01 - -6.461605607272912e-01 -6.460496040101232e-01 -6.459377950690467e-01 -6.458251367734501e-01 -6.457116323868038e-01 - -6.455972850655802e-01 -6.454820977029684e-01 -6.453660732942879e-01 -6.452492150754419e-01 -6.451315264887545e-01 - -6.450130102914885e-01 -6.448936692680686e-01 -6.447735068128447e-01 -6.446525260129213e-01 -6.445307296530088e-01 - -6.444081203587793e-01 -6.442847014715996e-01 -6.441604765089356e-01 -6.440354480546840e-01 -6.439096188724848e-01 - -6.437829920095609e-01 -6.436555704731397e-01 -6.435273570693492e-01 -6.433983545533010e-01 -6.432685663163126e-01 - -6.431379953365300e-01 -6.430066439769492e-01 -6.428745153347271e-01 -6.427416124750638e-01 -6.426079380140648e-01 - -6.424734947555180e-01 -6.423382856273998e-01 -6.422023135830728e-01 -6.420655814260000e-01 -6.419280919255173e-01 - -6.417898479598759e-01 -6.416508523135933e-01 -6.415111076305331e-01 -6.413706163966455e-01 -6.412293816393564e-01 - -6.410874066048897e-01 -6.409446936267265e-01 -6.408012453136449e-01 -6.406570646910840e-01 -6.405121544270317e-01 - -6.403665170374713e-01 -6.402201550644944e-01 -6.400730715072882e-01 -6.399252691822962e-01 -6.397767504407681e-01 - -6.396275180930010e-01 -6.394775749890055e-01 -6.393269236107165e-01 -6.391755662191552e-01 -6.390235053902433e-01 - -6.388707445708105e-01 -6.387172861694177e-01 -6.385631322023312e-01 -6.384082857966726e-01 -6.382527494896121e-01 - -6.380965253642142e-01 -6.379396162401521e-01 -6.377820248167250e-01 -6.376237535602883e-01 -6.374648052204416e-01 - -6.373051823107587e-01 -6.371448870124290e-01 -6.369839218821269e-01 -6.368222895078627e-01 -6.366599923302766e-01 - -6.364970329561520e-01 -6.363334139746031e-01 -6.361691377885151e-01 -6.360042067688202e-01 -6.358386233547334e-01 - -6.356723901317635e-01 -6.355055093799952e-01 -6.353379833438523e-01 -6.351698147827204e-01 -6.350010061497325e-01 - -6.348315596278746e-01 -6.346614776297652e-01 -6.344907627044540e-01 -6.343194173354602e-01 -6.341474433478579e-01 - -6.339748431233465e-01 -6.338016197812808e-01 -6.336277753787244e-01 -6.334533118997744e-01 -6.332782318265875e-01 - -6.331025376588558e-01 -6.329262316544187e-01 -6.327493157114107e-01 -6.325717923863455e-01 -6.323936643403999e-01 - -6.322149336030685e-01 -6.320356024195775e-01 -6.318556731749607e-01 -6.316751480498738e-01 -6.314940290711796e-01 - -6.313123183267710e-01 -6.311300184615836e-01 -6.309471319109403e-01 -6.307636607640942e-01 -6.305796070902886e-01 - -6.303949730482692e-01 -6.302097608691579e-01 -6.300239725606558e-01 -6.298376103756032e-01 -6.296506769748604e-01 - -6.294631743864889e-01 -6.292751044804592e-01 -6.290864694027335e-01 -6.288972714311484e-01 -6.287075127245377e-01 - -6.285171950849623e-01 -6.283263208775478e-01 -6.281348926187029e-01 -6.279429120773061e-01 -6.277503812180564e-01 - -6.275573022752827e-01 -6.273636774541002e-01 -6.271695087389834e-01 -6.269747979757735e-01 -6.267795473573458e-01 - -6.265837591630624e-01 -6.263874355834504e-01 -6.261905784094625e-01 -6.259931895045528e-01 -6.257952710369122e-01 - -6.255968250363517e-01 -6.253978534898084e-01 -6.251983584520242e-01 -6.249983420853732e-01 -6.247978064572296e-01 - -6.245967533125147e-01 -6.243951846742302e-01 -6.241931026018996e-01 -6.239905086686763e-01 -6.237874050561640e-01 - -6.235837942608177e-01 -6.233796778475696e-01 -6.231750576026635e-01 -6.229699356978790e-01 -6.227643140512986e-01 - -6.225581944126894e-01 -6.223515785171654e-01 -6.221444686516174e-01 -6.219368669106876e-01 -6.217287748516653e-01 - -6.215201944179222e-01 -6.213111276341791e-01 -6.211015763012264e-01 -6.208915420627059e-01 -6.206810267189914e-01 - -6.204700325606027e-01 -6.202585614407183e-01 -6.200466150025669e-01 -6.198341952555039e-01 -6.196213039807257e-01 - -6.194079427661365e-01 -6.191941133919308e-01 -6.189798178811384e-01 -6.187650583625046e-01 -6.185498365366234e-01 - -6.183341539791172e-01 -6.181180123373080e-01 -6.179014136693182e-01 -6.176843597571294e-01 -6.174668518753883e-01 - -6.172488922358068e-01 -6.170304830078728e-01 -6.168116255085183e-01 -6.165923213940302e-01 -6.163725725542526e-01 - -6.161523808379610e-01 -6.159317477445455e-01 -6.157106747923912e-01 -6.154891641891720e-01 -6.152672177134336e-01 - -6.150448367622374e-01 -6.148220230127394e-01 -6.145987783325538e-01 -6.143751045698781e-01 -6.141510029326600e-01 - -6.139264750393221e-01 -6.137015231470567e-01 -6.134761489851926e-01 -6.132503540152313e-01 -6.130241396532106e-01 - -6.127975076851865e-01 -6.125704598048077e-01 -6.123429972989166e-01 -6.121151221351967e-01 -6.118868363314907e-01 - -6.116581411278224e-01 -6.114290380220153e-01 -6.111995287783158e-01 -6.109696151823703e-01 -6.107392985450728e-01 - -6.105085801024925e-01 -6.102774622058419e-01 -6.100459465922933e-01 -6.098140342484372e-01 -6.095817267256873e-01 - -6.093490257933440e-01 -6.091159331809802e-01 -6.088824500709522e-01 -6.086485779905337e-01 -6.084143191489354e-01 - -6.081796748129595e-01 -6.079446461968719e-01 -6.077092351925356e-01 -6.074734432434898e-01 -6.072372716150822e-01 - -6.070007218360295e-01 -6.067637956065657e-01 -6.065264946232775e-01 -6.062888203126375e-01 -6.060507740692458e-01 - -6.058123573561740e-01 -6.055735718185850e-01 -6.053344188005130e-01 -6.050948994718379e-01 -6.048550157592759e-01 - -6.046147693250087e-01 -6.043741612917217e-01 -6.041331930896253e-01 -6.038918662688606e-01 -6.036501823335466e-01 - -6.034081424814672e-01 -6.031657481058161e-01 -6.029230011393863e-01 -6.026799028730719e-01 -6.024364544399844e-01 - -6.021926574869638e-01 -6.019485136055120e-01 -6.017040241022006e-01 -6.014591897708976e-01 -6.012140122415236e-01 - -6.009684936432825e-01 -6.007226351565053e-01 -6.004764378633045e-01 -6.002299030368295e-01 -5.999830322604393e-01 - -5.997358269112610e-01 -5.994882881008079e-01 -5.992404174674395e-01 -5.989922165630734e-01 -5.987436865327392e-01 - -5.984948286273432e-01 -5.982456442781595e-01 -5.979961350600861e-01 -5.977463018616249e-01 -5.974961457245347e-01 - -5.972456688462123e-01 -5.969948725706038e-01 -5.967437577688297e-01 -5.964923259025159e-01 -5.962405782771161e-01 - -5.959885160038786e-01 -5.957361402849749e-01 -5.954834525607696e-01 -5.952304544228757e-01 -5.949771471628894e-01 - -5.947235319540697e-01 -5.944696099654433e-01 -5.942153825546195e-01 -5.939608509107162e-01 -5.937060159741117e-01 - -5.934508794411635e-01 -5.931954428951332e-01 -5.929397071302310e-01 -5.926836734445704e-01 -5.924273432987167e-01 - -5.921707177793331e-01 -5.919137978828047e-01 -5.916565847753502e-01 -5.913990801532651e-01 -5.911412853604616e-01 - -5.908832013941032e-01 -5.906248293335863e-01 -5.903661704565201e-01 -5.901072261246485e-01 -5.898479972855557e-01 - -5.895884850905705e-01 -5.893286910470348e-01 -5.890686164387193e-01 -5.888082623596927e-01 -5.885476297953414e-01 - -5.882867200485414e-01 -5.880255342895034e-01 -5.877640732646211e-01 -5.875023385228563e-01 -5.872403317009627e-01 - -5.869780535979796e-01 -5.867155052441069e-01 -5.864526878805291e-01 -5.861896026754034e-01 -5.859262506932092e-01 - -5.856626329801135e-01 -5.853987507817091e-01 -5.851346053972879e-01 -5.848701980701103e-01 -5.846055297559873e-01 - -5.843406014627009e-01 -5.840754143260567e-01 -5.838099692919883e-01 -5.835442675863415e-01 -5.832783108438364e-01 - -5.830120998737411e-01 -5.827456354637697e-01 -5.824789190313094e-01 -5.822119517157962e-01 -5.819447343999242e-01 - -5.816772678604962e-01 -5.814095534384316e-01 -5.811415926659900e-01 -5.808733865100626e-01 -5.806049358083534e-01 - -5.803362414940428e-01 -5.800673049021045e-01 -5.797981269727348e-01 -5.795287083747186e-01 -5.792590507223763e-01 - -5.789891553127540e-01 -5.787190227795775e-01 -5.784486540773595e-01 -5.781780503537821e-01 -5.779072127885909e-01 - -5.776361421027820e-01 -5.773648392415993e-01 -5.770933058481036e-01 -5.768215427543451e-01 -5.765495506173008e-01 - -5.762773307782053e-01 -5.760048843724456e-01 -5.757322122309633e-01 -5.754593149355522e-01 -5.751861936930261e-01 - -5.749128500443350e-01 -5.746392847733658e-01 -5.743654986749642e-01 -5.740914927526973e-01 -5.738172681170074e-01 - -5.735428256834612e-01 -5.732681661997935e-01 -5.729932909950833e-01 -5.727182011898047e-01 -5.724428973589288e-01 - -5.721673806475209e-01 -5.718916522032619e-01 -5.716157126986885e-01 -5.713395629769044e-01 -5.710632040862346e-01 - -5.707866372440725e-01 -5.705098634203313e-01 -5.702328834166335e-01 -5.699556980810941e-01 -5.696783084118523e-01 - -5.694007154024264e-01 -5.691229196446771e-01 -5.688449222662509e-01 -5.685667247951188e-01 -5.682883277592247e-01 - -5.680097317796297e-01 -5.677309379467054e-01 -5.674519473718960e-01 -5.671727608332666e-01 -5.668933787438524e-01 - -5.666138024324125e-01 -5.663340332775648e-01 -5.660540719736767e-01 -5.657739191147048e-01 -5.654935755198692e-01 - -5.652130424887296e-01 -5.649323205844615e-01 -5.646514102596061e-01 -5.643703131320561e-01 -5.640890302500955e-01 - -5.638075621229782e-01 -5.635259096013298e-01 -5.632440735413435e-01 -5.629620547371306e-01 -5.626798540413637e-01 - -5.623974724401825e-01 -5.621149109968532e-01 -5.618321704141040e-01 -5.615492514232792e-01 -5.612661549867731e-01 - -5.609828820346520e-01 -5.606994332802816e-01 -5.604158091721365e-01 -5.601320109850756e-01 -5.598480400285579e-01 - -5.595638966628304e-01 -5.592795815381203e-01 -5.589950956088516e-01 -5.587104398719418e-01 -5.584256150214867e-01 - -5.581406216413944e-01 -5.578554608147975e-01 -5.575701335442586e-01 -5.572846406020895e-01 -5.569989825973618e-01 - -5.567131602740183e-01 -5.564271745453506e-01 -5.561410260628522e-01 -5.558547156725416e-01 -5.555682445647333e-01 - -5.552816133007876e-01 -5.549948224318785e-01 -5.547078730025937e-01 -5.544207659049382e-01 -5.541335017868810e-01 - -5.538460810525171e-01 -5.535585047530838e-01 -5.532707741030544e-01 -5.529828895161875e-01 -5.526948516856666e-01 - -5.524066615722431e-01 -5.521183198617187e-01 -5.518298271294942e-01 -5.515411840216864e-01 -5.512523916981388e-01 - -5.509634510475757e-01 -5.506743625070015e-01 -5.503851268106821e-01 -5.500957448096843e-01 -5.498062173123895e-01 - -5.495165448046009e-01 -5.492267279674086e-01 -5.489367680360671e-01 -5.486466657159732e-01 -5.483564214808752e-01 - -5.480660360175322e-01 -5.477755101695411e-01 -5.474848446983241e-01 -5.471940399297857e-01 -5.469030967097296e-01 - -5.466120162347039e-01 -5.463207992130580e-01 -5.460294461220425e-01 -5.457379574365921e-01 -5.454463341419615e-01 - -5.451545769787555e-01 -5.448626863052353e-01 -5.445706629798505e-01 -5.442785079610155e-01 -5.439862220351145e-01 - -5.436938056623958e-01 -5.434012594168094e-01 -5.431085842649811e-01 -5.428157805859503e-01 -5.425228488112607e-01 - -5.422297902211034e-01 -5.419366056396356e-01 -5.416432955189590e-01 -5.413498603513526e-01 -5.410563008101139e-01 - -5.407626176406882e-01 -5.404688113584152e-01 -5.401748827259091e-01 -5.398808327262222e-01 -5.395866619984641e-01 - -5.392923710452394e-01 -5.389979603718316e-01 -5.387034307479797e-01 -5.384087828255361e-01 -5.381140170098579e-01 - -5.378191341794292e-01 -5.375241352697128e-01 -5.372290208939874e-01 -5.369337913756430e-01 -5.366384472427702e-01 - -5.363429897090184e-01 -5.360474189692397e-01 -5.357517350808286e-01 -5.354559397287709e-01 -5.351600336380363e-01 - -5.348640167550405e-01 -5.345678898586708e-01 -5.342716537895550e-01 -5.339753091509816e-01 -5.336788560795809e-01 - -5.333822952812678e-01 -5.330856281219807e-01 -5.327888549366336e-01 -5.324919760228772e-01 -5.321949921530423e-01 - -5.318979038948367e-01 -5.316007117591099e-01 -5.313034163655616e-01 -5.310060185016283e-01 -5.307085188690476e-01 - -5.304109178113635e-01 -5.301132159560333e-01 -5.298154141057816e-01 -5.295175129068631e-01 -5.292195125739295e-01 - -5.289214133220888e-01 -5.286232164928936e-01 -5.283249229043371e-01 -5.280265326905970e-01 -5.277280463629660e-01 - -5.274294646406563e-01 -5.271307882435877e-01 -5.268320172699235e-01 -5.265331522204252e-01 -5.262341943956992e-01 - -5.259351442515741e-01 -5.256360020246456e-01 -5.253367683007200e-01 -5.250374438802079e-01 -5.247380293156688e-01 - -5.244385244793137e-01 -5.241389303158239e-01 -5.238392481089597e-01 -5.235394779437145e-01 -5.232396201567239e-01 - -5.229396754457293e-01 -5.226396444439171e-01 -5.223395275325885e-01 -5.220393250130385e-01 -5.217390378529512e-01 - -5.214386667612969e-01 -5.211382119631184e-01 -5.208376739941909e-01 -5.205370535049869e-01 -5.202363510969753e-01 - -5.199355670763710e-01 -5.196347019022574e-01 -5.193337564915598e-01 -5.190327313042545e-01 -5.187316266472318e-01 - -5.184304431068453e-01 -5.181291813913007e-01 -5.178278420262173e-01 -5.175264249304404e-01 -5.172249309061349e-01 - -5.169233612064826e-01 -5.166217158673360e-01 -5.163199951550123e-01 -5.160181998004911e-01 -5.157163303784532e-01 - -5.154143871836301e-01 -5.151123703899823e-01 -5.148102810445049e-01 -5.145081200022412e-01 -5.142058873966443e-01 - -5.139035834879907e-01 -5.136012088439446e-01 -5.132987643470369e-01 -5.129962500176725e-01 -5.126936660139045e-01 - -5.123910137907831e-01 -5.120882937169244e-01 -5.117855056864241e-01 -5.114826505830118e-01 -5.111797289351894e-01 - -5.108767409175631e-01 -5.105736869791608e-01 -5.102705678009448e-01 -5.099673841164564e-01 -5.096641361609235e-01 - -5.093608243087677e-01 -5.090574492425100e-01 -5.087540114820200e-01 -5.084505112619658e-01 -5.081469486274651e-01 - -5.078433245912960e-01 -5.075396400795943e-01 -5.072358951124865e-01 -5.069320899536702e-01 -5.066282251477461e-01 - -5.063243014155288e-01 -5.060203189866231e-01 -5.057162780382299e-01 -5.054121795257869e-01 -5.051080240346536e-01 - -5.048038117428125e-01 -5.044995428560932e-01 -5.041952179946867e-01 -5.038908379779851e-01 -5.035864027540428e-01 - -5.032819126747086e-01 -5.029773687584369e-01 -5.026727713803431e-01 -5.023681207203433e-01 -5.020634170773620e-01 - -5.017586611304518e-01 -5.014538534087800e-01 -5.011489939472488e-01 -5.008440834008399e-01 -5.005391225202214e-01 - -5.002341114848970e-01 -4.999290507534227e-01 -4.996239408965545e-01 -4.993187821357916e-01 -4.990135746184980e-01 - -4.987083187010172e-01 -4.984030154770353e-01 -4.980976654859903e-01 -4.977922686591017e-01 -4.974868253646026e-01 - -4.971813362150598e-01 -4.968758018164073e-01 -4.965702219796178e-01 -4.962645970518764e-01 -4.959589283986423e-01 - -4.956532161259331e-01 -4.953474601672504e-01 -4.950416611894621e-01 -4.947358197709370e-01 -4.944299362131679e-01 - -4.941240104625670e-01 -4.938180432013966e-01 -4.935120353360559e-01 -4.932059869696777e-01 -4.928998983832586e-01 - -4.925937700937396e-01 -4.922876025288242e-01 -4.919813957951697e-01 -4.916751499430368e-01 -4.913688660561277e-01 - -4.910625447982750e-01 -4.907561860728009e-01 -4.904497902858990e-01 -4.901433579647613e-01 -4.898368894758774e-01 - -4.895303847877975e-01 -4.892238442443610e-01 -4.889172690570770e-01 -4.886106594399146e-01 -4.883040152916479e-01 - -4.879973371198497e-01 -4.876906255185612e-01 -4.873838808516193e-01 -4.870771028969680e-01 -4.867702923235035e-01 - -4.864634502410182e-01 -4.861565765237592e-01 -4.858496713307078e-01 -4.855427352755911e-01 -4.852357685536697e-01 - -4.849287714451036e-01 -4.846217444589359e-01 -4.843146879997467e-01 -4.840076025123002e-01 -4.837004885060202e-01 - -4.833933461066379e-01 -4.830861755003688e-01 -4.827789772517898e-01 -4.824717516127337e-01 -4.821644988235214e-01 - -4.818572195031119e-01 -4.815499140763169e-01 -4.812425828318353e-01 -4.809352261296052e-01 -4.806278443199989e-01 - -4.803204376463540e-01 -4.800130060714603e-01 -4.797055501717924e-01 -4.793980709573083e-01 -4.790905684347367e-01 - -4.787830426340720e-01 -4.784754939887473e-01 -4.781679231200341e-01 -4.778603302286951e-01 -4.775527150015833e-01 - -4.772450784284375e-01 -4.769374213667171e-01 -4.766297434623847e-01 -4.763220450397429e-01 -4.760143266869929e-01 - -4.757065886153464e-01 -4.753988310011543e-01 -4.750910541528841e-01 -4.747832586964973e-01 -4.744754450010169e-01 - -4.741676132522562e-01 -4.738597638648681e-01 -4.735518971269201e-01 -4.732440131603057e-01 -4.729361121339242e-01 - -4.726281945136708e-01 -4.723202610280838e-01 -4.720123119889466e-01 -4.717043475548789e-01 -4.713963678930571e-01 - -4.710883732580126e-01 -4.707803639362851e-01 -4.704723402372425e-01 -4.701643027667922e-01 -4.698562520096238e-01 - -4.695481878708884e-01 -4.692401107063794e-01 -4.689320210638210e-01 -4.686239190614940e-01 -4.683158048406638e-01 - -4.680076787162389e-01 -4.676995413185929e-01 -4.673913930202820e-01 -4.670832339045677e-01 -4.667750641928977e-01 - -4.664668842720264e-01 -4.661586945788764e-01 -4.658504950199774e-01 -4.655422858974875e-01 -4.652340682220931e-01 - -4.649258420178881e-01 -4.646176071935555e-01 -4.643093642460228e-01 -4.640011135361189e-01 -4.636928552533583e-01 - -4.633845894780055e-01 -4.630763167063440e-01 -4.627680375263447e-01 -4.624597520114774e-01 -4.621514604268375e-01 - -4.618431632080228e-01 -4.615348605890552e-01 -4.612265525685530e-01 -4.609182391698630e-01 -4.606099213200685e-01 - -4.603015994943055e-01 -4.599932734377760e-01 -4.596849434943749e-01 -4.593766101319814e-01 -4.590682736286037e-01 - -4.587599339472412e-01 -4.584515913122191e-01 -4.581432465762054e-01 -4.578348999443045e-01 -4.575265513883392e-01 - -4.572182012155285e-01 -4.569098498253546e-01 -4.566014974456956e-01 -4.562931438038699e-01 -4.559847894939479e-01 - -4.556764355440957e-01 -4.553680818446301e-01 -4.550597283221777e-01 -4.547513752454754e-01 -4.544430231318768e-01 - -4.541346721146189e-01 -4.538263219879204e-01 -4.535179736207505e-01 -4.532096276207381e-01 -4.529012837320638e-01 - -4.525929421989657e-01 -4.522846033793929e-01 -4.519762674029318e-01 -4.516679344715044e-01 -4.513596049388520e-01 - -4.510512793496801e-01 -4.507429578901284e-01 -4.504346405869434e-01 -4.501263277269192e-01 -4.498180196893253e-01 - -4.495097167463535e-01 -4.492014186979058e-01 -4.488931259139300e-01 -4.485848392328776e-01 -4.482765586745183e-01 - -4.479682843350483e-01 -4.476600166157323e-01 -4.473517555800268e-01 -4.470435013321629e-01 -4.467352542154915e-01 - -4.464270145748750e-01 -4.461187827567155e-01 -4.458105590951706e-01 -4.455023436689998e-01 -4.451941365719282e-01 - -4.448859382022067e-01 -4.445777486373541e-01 -4.442695679571050e-01 -4.439613968717006e-01 -4.436532356916815e-01 - -4.433450843880059e-01 -4.430369431657580e-01 -4.427288122616561e-01 -4.424206918620519e-01 -4.421125820372482e-01 - -4.418044832064567e-01 -4.414963960811867e-01 -4.411883204960218e-01 -4.408802564087612e-01 -4.405722043668788e-01 - -4.402641646390490e-01 -4.399561373068210e-01 -4.396481224088197e-01 -4.393401203468038e-01 -4.390321316119934e-01 - -4.387241564347777e-01 -4.384161947343386e-01 -4.381082465266398e-01 -4.378003125430411e-01 -4.374923928277115e-01 - -4.371844871230922e-01 -4.368765963346815e-01 -4.365687207997857e-01 -4.362608601883623e-01 -4.359530147661063e-01 - -4.356451849773876e-01 -4.353373711547212e-01 -4.350295729831375e-01 -4.347217906709347e-01 -4.344140253247259e-01 - -4.341062767701542e-01 -4.337985447574569e-01 -4.334908298973194e-01 -4.331831324142745e-01 -4.328754522838512e-01 - -4.325677895304312e-01 -4.322601446380396e-01 -4.319525182069930e-01 -4.316449103351276e-01 -4.313373209430619e-01 - -4.310297500384340e-01 -4.307221981580691e-01 -4.304146654764764e-01 -4.301071518609876e-01 -4.297996578556980e-01 - -4.294921838432407e-01 -4.291847298181669e-01 -4.288772959356691e-01 -4.285698824691314e-01 -4.282624896947286e-01 - -4.279551173581843e-01 -4.276477655542056e-01 -4.273404353166645e-01 -4.270331268873108e-01 -4.267258400671970e-01 - -4.264185747737768e-01 -4.261113314513503e-01 -4.258041105111009e-01 -4.254969114260224e-01 -4.251897346526543e-01 - -4.248825811839114e-01 -4.245754507348872e-01 -4.242683433304872e-01 -4.239612594489042e-01 -4.236541990429175e-01 - -4.233471621233121e-01 -4.230401489624036e-01 -4.227331599159186e-01 -4.224261953202194e-01 -4.221192554076946e-01 - -4.218123401221037e-01 -4.215054495276057e-01 -4.211985840665567e-01 -4.208917437341202e-01 -4.205849285470991e-01 - -4.202781391077526e-01 -4.199713756820169e-01 -4.196646382796324e-01 -4.193579269625680e-01 -4.190512419898234e-01 - -4.187445835885104e-01 -4.184379514023820e-01 -4.181313458657921e-01 -4.178247679943504e-01 -4.175182174706034e-01 - -4.172116941638125e-01 -4.169051985589959e-01 -4.165987308801878e-01 -4.162922910262470e-01 -4.159858787333477e-01 - -4.156794948456864e-01 -4.153731400237493e-01 -4.150668138055245e-01 -4.147605162480433e-01 -4.144542477033889e-01 - -4.141480084083939e-01 -4.138417983331389e-01 -4.135356175072968e-01 -4.132294665425894e-01 -4.129233456523720e-01 - -4.126172547353913e-01 -4.123111939769975e-01 -4.120051637027982e-01 -4.116991641480549e-01 -4.113931948631621e-01 - -4.110872561089984e-01 -4.107813489720965e-01 -4.104754732505308e-01 -4.101696286974395e-01 -4.098638156566466e-01 - -4.095580344057681e-01 -4.092522850492459e-01 -4.089465675148873e-01 -4.086408821301867e-01 -4.083352292811099e-01 - -4.080296090087697e-01 -4.077240214925531e-01 -4.074184669621912e-01 -4.071129454474836e-01 -4.068074568206541e-01 - -4.065020011172992e-01 -4.061965792344674e-01 -4.058911914234347e-01 -4.055858372701102e-01 -4.052805169731385e-01 - -4.049752308691225e-01 -4.046699791746853e-01 -4.043647616984872e-01 -4.040595785275335e-01 -4.037544302850327e-01 - -4.034493171430220e-01 -4.031442391412985e-01 -4.028391964411297e-01 -4.025341890399178e-01 -4.022292169515432e-01 - -4.019242804318620e-01 -4.016193797575413e-01 -4.013145151618574e-01 -4.010096867767989e-01 -4.007048946739946e-01 - -4.004001389575452e-01 -4.000954199442892e-01 -3.997907376333255e-01 -3.994860918450180e-01 -3.991814831388100e-01 - -3.988769118682245e-01 -3.985723779299208e-01 -3.982678813725196e-01 -3.979634224118638e-01 -3.976590013430957e-01 - -3.973546179557737e-01 -3.970502723184750e-01 -3.967459652757308e-01 -3.964416967373386e-01 -3.961374664325438e-01 - -3.958332748416728e-01 -3.955291221412219e-01 -3.952250082276700e-01 -3.949209329883424e-01 -3.946168969005399e-01 - -3.943129006192436e-01 -3.940089438207542e-01 -3.937050264421336e-01 -3.934011488327164e-01 -3.930973111392007e-01 - -3.927935133510078e-01 -3.924897554398895e-01 -3.921860379028622e-01 -3.918823611410527e-01 -3.915787251272155e-01 - -3.912751296302741e-01 -3.909715747221262e-01 -3.906680610479274e-01 -3.903645884467465e-01 -3.900611567141484e-01 - -3.897577665105899e-01 -3.894544180732338e-01 -3.891511112918067e-01 -3.888478460867855e-01 -3.885446227676595e-01 - -3.882414417069796e-01 -3.879383024897914e-01 -3.876352053351357e-01 -3.873321510269954e-01 -3.870291394376005e-01 - -3.867261704550462e-01 -3.864232442776043e-01 -3.861203610538394e-01 -3.858175208256477e-01 -3.855147235659399e-01 - -3.852119696012977e-01 -3.849092593053318e-01 -3.846065928280623e-01 -3.843039700003283e-01 -3.840013907871894e-01 - -3.836988557264463e-01 -3.833963646642737e-01 -3.830939173673272e-01 -3.827915146861536e-01 -3.824891567344230e-01 - -3.821868431312930e-01 -3.818845742897094e-01 -3.815823505036508e-01 -3.812801717050347e-01 -3.809780375081945e-01 - -3.806759481537249e-01 -3.803739045452896e-01 -3.800719066553854e-01 -3.797699542729503e-01 -3.794680474344709e-01 - -3.791661864151066e-01 -3.788643713579414e-01 -3.785626020610045e-01 -3.782608787892401e-01 -3.779592019649877e-01 - -3.776575717504184e-01 -3.773559879986245e-01 -3.770544506277551e-01 -3.767529601718599e-01 -3.764515165488658e-01 - -3.761501194541416e-01 -3.758487697291592e-01 -3.755474675286999e-01 -3.752462123142175e-01 -3.749450044400430e-01 - -3.746438442933219e-01 -3.743427319385532e-01 -3.740416670860849e-01 -3.737406497610264e-01 -3.734396805632812e-01 - -3.731387597991040e-01 -3.728378873981389e-01 -3.725370629746288e-01 -3.722362869751284e-01 -3.719355598195744e-01 - -3.716348809475082e-01 -3.713342505611615e-01 -3.710336692885385e-01 -3.707331373206220e-01 -3.704326544188714e-01 - -3.701322203470578e-01 -3.698318357923215e-01 -3.695315007664240e-01 -3.692312147431765e-01 -3.689309784821330e-01 - -3.686307923312130e-01 -3.683306558583173e-01 -3.680305692832940e-01 -3.677305328772401e-01 -3.674305466155561e-01 - -3.671306102835627e-01 -3.668307239979260e-01 -3.665308885123383e-01 -3.662311039528895e-01 -3.659313700864294e-01 - -3.656316867340536e-01 -3.653320542170925e-01 -3.650324728818179e-01 -3.647329423252613e-01 -3.644334627823841e-01 - -3.641340348652060e-01 -3.638346584224414e-01 -3.635353333854674e-01 -3.632360599381753e-01 -3.629368383087880e-01 - -3.626376683911322e-01 -3.623385498640058e-01 -3.620394834143431e-01 -3.617404694429358e-01 -3.614415075289109e-01 - -3.611425978472304e-01 -3.608437406892576e-01 -3.605449360396625e-01 -3.602461837170217e-01 -3.599474837636126e-01 - -3.596488368123176e-01 -3.593502429497555e-01 -3.590517019950174e-01 -3.587532141258951e-01 -3.584547794364419e-01 - -3.581563978967544e-01 -3.578580694598877e-01 -3.575597943932133e-01 -3.572615731273898e-01 -3.569634054963255e-01 - -3.566652915450074e-01 -3.563672316398869e-01 -3.560692255181004e-01 -3.557712730433470e-01 -3.554733745722332e-01 - -3.551755304325120e-01 -3.548777407381354e-01 -3.545800053200450e-01 -3.542823243820459e-01 -3.539846981602633e-01 - -3.536871265064687e-01 -3.533896092936707e-01 -3.530921466577667e-01 -3.527947392696623e-01 -3.524973870763591e-01 - -3.522000896417020e-01 -3.519028473926252e-01 -3.516056606257513e-01 -3.513085292624320e-01 -3.510114529438408e-01 - -3.507144318797571e-01 -3.504174668509267e-01 -3.501205576763053e-01 -3.498237041407538e-01 -3.495269064579332e-01 - -3.492301648012658e-01 -3.489334792023763e-01 -3.486368495320163e-01 -3.483402759532310e-01 -3.480437587608516e-01 - -3.477472981563033e-01 -3.474508940116457e-01 -3.471545462266357e-01 -3.468582552838557e-01 -3.465620210594309e-01 - -3.462658431862374e-01 -3.459697223261950e-01 -3.456736587298253e-01 -3.453776521244075e-01 -3.450817025977070e-01 - -3.447858103250944e-01 -3.444899754033867e-01 -3.441941976114102e-01 -3.438984770490408e-01 -3.436028143288083e-01 - -3.433072093931014e-01 -3.430116620696204e-01 -3.427161725111446e-01 -3.424207408695913e-01 -3.421253671506906e-01 - -3.418300511322294e-01 -3.415347931565998e-01 -3.412395936962896e-01 -3.409444525560181e-01 -3.406493696743920e-01 - -3.403543451949735e-01 -3.400593792856730e-01 -3.397644718554241e-01 -3.394696227303268e-01 -3.391748324448361e-01 - -3.388801012525273e-01 -3.385854289098167e-01 -3.382908154719833e-01 -3.379962610967925e-01 -3.377017658856785e-01 - -3.374073296405456e-01 -3.371129523992028e-01 -3.368186347618567e-01 -3.365243767275647e-01 -3.362301780997549e-01 - -3.359360390044588e-01 -3.356419595939377e-01 -3.353479398983790e-01 -3.350539796822969e-01 -3.347600792157354e-01 - -3.344662390001809e-01 -3.341724588683134e-01 -3.338787387386647e-01 -3.335850787505256e-01 -3.332914790393797e-01 - -3.329979395469141e-01 -3.327044601082655e-01 -3.324110411740308e-01 -3.321176830325031e-01 -3.318243854727410e-01 - -3.315311485033696e-01 -3.312379722613320e-01 -3.309448568815591e-01 -3.306518021855764e-01 -3.303588081394571e-01 - -3.300658753265905e-01 -3.297730038003383e-01 -3.294801933460689e-01 -3.291874440822869e-01 -3.288947561448500e-01 - -3.286021295596533e-01 -3.283095641084477e-01 -3.280170600152969e-01 -3.277246178092963e-01 -3.274322373144385e-01 - -3.271399184133136e-01 -3.268476612759387e-01 -3.265554660369243e-01 -3.262633326374516e-01 -3.259712608638953e-01 - -3.256792511518811e-01 -3.253873038511834e-01 -3.250954187049387e-01 -3.248035957166725e-01 -3.245118350464998e-01 - -3.242201368055027e-01 -3.239285008232202e-01 -3.236369270127419e-01 -3.233454159517716e-01 -3.230539677655248e-01 - -3.227625822208953e-01 -3.224712593689608e-01 -3.221799993547627e-01 -3.218888022707884e-01 -3.215976678728723e-01 - -3.213065962862219e-01 -3.210155880538063e-01 -3.207246430922022e-01 -3.204337612603162e-01 -3.201429426545060e-01 - -3.198521874188910e-01 -3.195614955407240e-01 -3.192708667833873e-01 -3.189803015317205e-01 -3.186898001852494e-01 - -3.183993624745159e-01 -3.181089883645859e-01 -3.178186780215274e-01 -3.175284315788672e-01 -3.172382488912609e-01 - -3.169481298117736e-01 -3.166580748847834e-01 -3.163680842820584e-01 -3.160781577505636e-01 -3.157882953403168e-01 - -3.154984971942622e-01 -3.152087634033934e-01 -3.149190937439705e-01 -3.146294882798918e-01 -3.143399475483734e-01 - -3.140504715109739e-01 -3.137610600081304e-01 -3.134717131245625e-01 -3.131824310053718e-01 -3.128932136614712e-01 - -3.126040608259110e-01 -3.123149728003283e-01 -3.120259500284038e-01 -3.117369923103007e-01 -3.114480995811182e-01 - -3.111592719695180e-01 -3.108705096041851e-01 -3.105818123704323e-01 -3.102931800853200e-01 -3.100046132424714e-01 - -3.097161120700553e-01 -3.094276763275429e-01 -3.091393060498078e-01 -3.088510013669117e-01 -3.085627623567511e-01 - -3.082745888090075e-01 -3.079864807413559e-01 -3.076984387104112e-01 -3.074104627037881e-01 -3.071225525229602e-01 - -3.068347082674415e-01 -3.065469300647063e-01 -3.062592179233167e-01 -3.059715715883658e-01 -3.056839913222955e-01 - -3.053964776128304e-01 -3.051090302429263e-01 -3.048216491115613e-01 -3.045343343664140e-01 -3.042470861256498e-01 - -3.039599042912569e-01 -3.036727886539801e-01 -3.033857396783212e-01 -3.030987576532087e-01 -3.028118423290159e-01 - -3.025249936916685e-01 -3.022382118572411e-01 -3.019514969324824e-01 -3.016648487319269e-01 -3.013782672163520e-01 - -3.010917529380510e-01 -3.008053059332530e-01 -3.005189259718208e-01 -3.002326131255288e-01 -2.999463675243501e-01 - -2.996601892115071e-01 -2.993740779431134e-01 -2.990880338991673e-01 -2.988020575697556e-01 -2.985161488129333e-01 - -2.982303074956766e-01 -2.979445337070337e-01 -2.976588275957710e-01 -2.973731891105994e-01 -2.970876179949718e-01 - -2.968021146693378e-01 -2.965166794729635e-01 -2.962313121299224e-01 -2.959460126205053e-01 -2.956607810824475e-01 - -2.953756176130727e-01 -2.950905220348498e-01 -2.948054942542040e-01 -2.945205348259674e-01 -2.942356438398593e-01 - -2.939508210351428e-01 -2.936660664737455e-01 -2.933813802767271e-01 -2.930967624892026e-01 -2.928122128931882e-01 - -2.925277316158055e-01 -2.922433191494531e-01 -2.919589753765323e-01 -2.916747001400424e-01 -2.913904935350139e-01 - -2.911063557118664e-01 -2.908222866434848e-01 -2.905382860439090e-01 -2.902543542778646e-01 -2.899704917370004e-01 - -2.896866981425306e-01 -2.894029734511842e-01 -2.891193178139609e-01 -2.888357313345801e-01 -2.885522138545054e-01 - -2.882687652243500e-01 -2.879853859636904e-01 -2.877020762131379e-01 -2.874188357014512e-01 -2.871356645025479e-01 - -2.868525627422169e-01 -2.865695304469716e-01 -2.862865673963798e-01 -2.860036736642309e-01 -2.857208497673618e-01 - -2.854380956360413e-01 -2.851554110854154e-01 -2.848727961880673e-01 -2.845902510831507e-01 -2.843077757793696e-01 - -2.840253700094237e-01 -2.837430340397069e-01 -2.834607682748240e-01 -2.831785725328111e-01 -2.828964467316310e-01 - -2.826143909542473e-01 -2.823324053101364e-01 -2.820504896922502e-01 -2.817686439371250e-01 -2.814868685136343e-01 - -2.812051636152371e-01 -2.809235289745332e-01 -2.806419646055033e-01 -2.803604706362606e-01 -2.800790471610514e-01 - -2.797976939416736e-01 -2.795164109639519e-01 -2.792351987736799e-01 -2.789540573481899e-01 -2.786729864814172e-01 - -2.783919862645312e-01 -2.781110567914744e-01 -2.778301980476193e-01 -2.775494098202491e-01 -2.772686923282846e-01 - -2.769880459823117e-01 -2.767074706347814e-01 -2.764269661749121e-01 -2.761465326612197e-01 -2.758661702373058e-01 - -2.755858788282252e-01 -2.753056582075042e-01 -2.750255088041456e-01 -2.747454308713073e-01 -2.744654241403574e-01 - -2.741854886058927e-01 -2.739056243892176e-01 -2.736258315782464e-01 -2.733461099674180e-01 -2.730664595012521e-01 - -2.727868807168794e-01 -2.725073736368404e-01 -2.722279380246611e-01 -2.719485739535283e-01 -2.716692815376729e-01 - -2.713900607905190e-01 -2.711109114418696e-01 -2.708318336740216e-01 -2.705528279896257e-01 -2.702738942089605e-01 - -2.699950321750810e-01 -2.697162419812612e-01 -2.694375237750356e-01 -2.691588774953904e-01 -2.688803028674867e-01 - -2.686018002777490e-01 -2.683233700490228e-01 -2.680450119322323e-01 -2.677667258920440e-01 -2.674885120321642e-01 - -2.672103704327183e-01 -2.669323009240009e-01 -2.666543034142266e-01 -2.663763784024609e-01 -2.660985259744725e-01 - -2.658207458961011e-01 -2.655430381891060e-01 -2.652654029648259e-01 -2.649878402880381e-01 -2.647103499069445e-01 - -2.644329319184849e-01 -2.641555868035665e-01 -2.638783144422805e-01 -2.636011146840161e-01 -2.633239876271375e-01 - -2.630469333706403e-01 -2.627699518665801e-01 -2.624930428881614e-01 -2.622162067361601e-01 -2.619394437425979e-01 - -2.616627537197243e-01 -2.613861365959049e-01 -2.611095924398818e-01 -2.608331213683194e-01 -2.605567232565551e-01 - -2.602803979638560e-01 -2.600041459185203e-01 -2.597279672559259e-01 -2.594518617711524e-01 -2.591758294668244e-01 - -2.588998704444723e-01 -2.586239847880919e-01 -2.583481722507706e-01 -2.580724328621725e-01 -2.577967671126083e-01 - -2.575211749406902e-01 -2.572456561780725e-01 -2.569702108956164e-01 -2.566948391959332e-01 -2.564195410517088e-01 - -2.561443162003717e-01 -2.558691649278121e-01 -2.555940876367002e-01 -2.553190840839927e-01 -2.550441541814838e-01 - -2.547692980445108e-01 -2.544945157803290e-01 -2.542198072584164e-01 -2.539451722830000e-01 -2.536706112997469e-01 - -2.533961245035316e-01 -2.531217116489478e-01 -2.528473727232912e-01 -2.525731078267265e-01 -2.522989170513077e-01 - -2.520248001810547e-01 -2.517507572028029e-01 -2.514767886096237e-01 -2.512028943623831e-01 -2.509290742545349e-01 - -2.506553283625735e-01 -2.503816568034038e-01 -2.501080595782905e-01 -2.498345364108095e-01 -2.495610875124447e-01 - -2.492877133133172e-01 -2.490144136112123e-01 -2.487411882994743e-01 -2.484680374856057e-01 -2.481949612635986e-01 - -2.479219595287280e-01 -2.476490320734136e-01 -2.473761793087864e-01 -2.471034014703498e-01 -2.468306982957061e-01 - -2.465580697844871e-01 -2.462855160432138e-01 -2.460130371204629e-01 -2.457406328233614e-01 -2.454683031113906e-01 - -2.451960484794311e-01 -2.449238689415910e-01 -2.446517642712055e-01 -2.443797345227543e-01 -2.441077797933181e-01 - -2.438359000947776e-01 -2.435640951889690e-01 -2.432923652315951e-01 -2.430207106571287e-01 -2.427491313175689e-01 - -2.424776270783986e-01 -2.422061980074125e-01 -2.419348442072336e-01 -2.416635656192684e-01 -2.413923620306189e-01 - -2.411212337762792e-01 -2.408501811283544e-01 -2.405792038734625e-01 -2.403083019688687e-01 -2.400374754936993e-01 - -2.397667245256450e-01 -2.394960488977194e-01 -2.392254485194238e-01 -2.389549238762380e-01 -2.386844750244205e-01 - -2.384141017100180e-01 -2.381438039886236e-01 -2.378735819631148e-01 -2.376034356560101e-01 -2.373333648418426e-01 - -2.370633696160408e-01 -2.367934504134751e-01 -2.365236071336530e-01 -2.362538396334552e-01 -2.359841479713349e-01 - -2.357145322333765e-01 -2.354449923780104e-01 -2.351755281955192e-01 -2.349061399838227e-01 -2.346368280467886e-01 - -2.343675921502802e-01 -2.340984322401892e-01 -2.338293484224673e-01 -2.335603407944267e-01 -2.332914091991481e-01 - -2.330225534791031e-01 -2.327537740958542e-01 -2.324850711724544e-01 -2.322164444575208e-01 -2.319478939696494e-01 - -2.316794198107119e-01 -2.314110220364787e-01 -2.311427004172850e-01 -2.308744549913938e-01 -2.306062862221652e-01 - -2.303381940399467e-01 -2.300701782673901e-01 -2.298022389505013e-01 -2.295343762055658e-01 -2.292665900251787e-01 - -2.289988801367178e-01 -2.287312467963517e-01 -2.284636903804389e-01 -2.281962106639611e-01 -2.279288075702767e-01 - -2.276614812041137e-01 -2.273942316314865e-01 -2.271270587234099e-01 -2.268599623216859e-01 -2.265929428586625e-01 - -2.263260004971463e-01 -2.260591349680134e-01 -2.257923462859340e-01 -2.255256345570404e-01 -2.252589998316905e-01 - -2.249924418873443e-01 -2.247259607239798e-01 -2.244595568451081e-01 -2.241932301870257e-01 -2.239269805236896e-01 - -2.236608079513920e-01 -2.233947125724077e-01 -2.231286943677930e-01 -2.228627530899186e-01 -2.225968889349937e-01 - -2.223311022938890e-01 -2.220653929888047e-01 -2.217997609137618e-01 -2.215342061492806e-01 -2.212687287997047e-01 - -2.210033287645195e-01 -2.207380058226258e-01 -2.204727603658667e-01 -2.202075926188733e-01 -2.199425023254976e-01 - -2.196774894791217e-01 -2.194125541827232e-01 -2.191476964953657e-01 -2.188829162198361e-01 -2.186182133017065e-01 - -2.183535882155842e-01 -2.180890409721393e-01 -2.178245713492862e-01 -2.175601793915103e-01 -2.172958651996608e-01 - -2.170316287941991e-01 -2.167674699222372e-01 -2.165033887351043e-01 -2.162393856655618e-01 -2.159754605317784e-01 - -2.157116131976179e-01 -2.154478437626437e-01 -2.151841523053365e-01 -2.149205387568082e-01 -2.146570029331132e-01 - -2.143935451423346e-01 -2.141301656253313e-01 -2.138668641770334e-01 -2.136036407648879e-01 -2.133404954698548e-01 - -2.130774283590253e-01 -2.128144392711416e-01 -2.125515281171839e-01 -2.122886953403734e-01 -2.120259409959825e-01 - -2.117632648531722e-01 -2.115006669388265e-01 -2.112381473557379e-01 -2.109757061544524e-01 -2.107133431005909e-01 - -2.104510582708100e-01 -2.101888520817322e-01 -2.099267244352251e-01 -2.096646751892664e-01 -2.094027043922436e-01 - -2.091408121382980e-01 -2.088789983898283e-01 -2.086172629233026e-01 -2.083556060294393e-01 -2.080940280081475e-01 - -2.078325286261216e-01 -2.075711078316715e-01 -2.073097657230958e-01 -2.070485023681648e-01 -2.067873176254528e-01 - -2.065262113703670e-01 -2.062651840261599e-01 -2.060042356935543e-01 -2.057433661320316e-01 -2.054825753736384e-01 - -2.052218635119340e-01 -2.049612305777034e-01 -2.047006763593381e-01 -2.044402009029163e-01 -2.041798046444743e-01 - -2.039194875091236e-01 -2.036592493288050e-01 -2.033990901597007e-01 -2.031390101041152e-01 -2.028790091364410e-01 - -2.026190869860804e-01 -2.023592439213894e-01 -2.020994803209571e-01 -2.018397959336108e-01 -2.015801906636277e-01 - -2.013206646163115e-01 -2.010612178968381e-01 -2.008018503846473e-01 -2.005425618909167e-01 -2.002833527994660e-01 - -2.000242232866459e-01 -1.997651731545872e-01 -1.995062023757428e-01 -1.992473110134654e-01 -1.989884991329442e-01 - -1.987297665552775e-01 -1.984711132804359e-01 -1.982125397288479e-01 -1.979540458641874e-01 -1.976956315048893e-01 - -1.974372966986851e-01 -1.971790415364275e-01 -1.969208660181268e-01 -1.966627699138122e-01 -1.964047534115951e-01 - -1.961468168792641e-01 -1.958889601415059e-01 -1.956311830976701e-01 -1.953734858227050e-01 -1.951158683885618e-01 - -1.948583307060198e-01 -1.946008726082255e-01 -1.943434944554087e-01 -1.940861964418109e-01 -1.938289783248288e-01 - -1.935718400929853e-01 -1.933147818435645e-01 -1.930578036445209e-01 -1.928009053047615e-01 -1.925440867668252e-01 - -1.922873484836986e-01 -1.920306904586313e-01 -1.917741124759950e-01 -1.915176145882685e-01 -1.912611968971867e-01 - -1.910048594156118e-01 -1.907486018758652e-01 -1.904924244300230e-01 -1.902363275204000e-01 -1.899803109613821e-01 - -1.897243746214878e-01 -1.894685186111405e-01 -1.892127429944364e-01 -1.889570476814606e-01 -1.887014324762902e-01 - -1.884458977092228e-01 -1.881904436322386e-01 -1.879350700181010e-01 -1.876797768445363e-01 -1.874245641980662e-01 - -1.871694321106837e-01 -1.869143804464632e-01 -1.866594091449939e-01 -1.864045185802509e-01 -1.861497088150435e-01 - -1.858949796742653e-01 -1.856403311585743e-01 -1.853857633524328e-01 -1.851312763093270e-01 -1.848768697910832e-01 - -1.846225438828809e-01 -1.843682990131126e-01 -1.841141350478542e-01 -1.838600518410295e-01 -1.836060494900988e-01 - -1.833521280737523e-01 -1.830982875326949e-01 -1.828445276569093e-01 -1.825908487213151e-01 -1.823372510073639e-01 - -1.820837342990139e-01 -1.818302985608840e-01 -1.815769438919524e-01 -1.813236703339543e-01 -1.810704777470943e-01 - -1.808173660274447e-01 -1.805643355946649e-01 -1.803113865319381e-01 -1.800585185867421e-01 -1.798057318207557e-01 - -1.795530263298101e-01 -1.793004021140676e-01 -1.790478589821669e-01 -1.787953969871552e-01 -1.785430165333783e-01 - -1.782907175616041e-01 -1.780384999147782e-01 -1.777863636186671e-01 -1.775343087850783e-01 -1.772823354138563e-01 - -1.770304432439544e-01 -1.767786324996124e-01 -1.765269035206169e-01 -1.762752561209628e-01 -1.760236902365481e-01 - -1.757722059508868e-01 -1.755208033072168e-01 -1.752694821962465e-01 -1.750182424985018e-01 -1.747670845873172e-01 - -1.745160085943736e-01 -1.742650142826787e-01 -1.740141016708582e-01 -1.737632708599284e-01 -1.735125219002990e-01 - -1.732618545819516e-01 -1.730112688968157e-01 -1.727607652962038e-01 -1.725103437360838e-01 -1.722600040199003e-01 - -1.720097462053399e-01 -1.717595703957765e-01 -1.715094765937824e-01 -1.712594645505801e-01 -1.710095344617568e-01 - -1.707596867053610e-01 -1.705099210652020e-01 -1.702602374503936e-01 -1.700106359820640e-01 -1.697611167032507e-01 - -1.695116795170456e-01 -1.692623242857098e-01 -1.690130513415946e-01 -1.687638608735592e-01 -1.685147526839133e-01 - -1.682657267304136e-01 -1.680167830834059e-01 -1.677679218434041e-01 -1.675191428301483e-01 -1.672704459776749e-01 - -1.670218317162355e-01 -1.667733000505553e-01 -1.665248507843929e-01 -1.662764839848620e-01 -1.660281997331086e-01 - -1.657799980211539e-01 -1.655318786421316e-01 -1.652838417439954e-01 -1.650358877061586e-01 -1.647880163635810e-01 - -1.645402275978841e-01 -1.642925215033296e-01 -1.640448981629310e-01 -1.637973575048030e-01 -1.635498993322754e-01 - -1.633025239587731e-01 -1.630552316214122e-01 -1.628080220971913e-01 -1.625608953706327e-01 -1.623138515347123e-01 - -1.620668906280902e-01 -1.618200125176413e-01 -1.615732171440627e-01 -1.613265048790783e-01 -1.610798757703294e-01 - -1.608333296326273e-01 -1.605868664946396e-01 -1.603404864451659e-01 -1.600941895233320e-01 -1.598479755194739e-01 - -1.596018445089071e-01 -1.593557968710357e-01 -1.591098325274174e-01 -1.588639513462271e-01 -1.586181533501567e-01 - -1.583724386633118e-01 -1.581268072684121e-01 -1.578812589110151e-01 -1.576357938605635e-01 -1.573904124176000e-01 - -1.571451143885420e-01 -1.568998997115455e-01 -1.566547684551118e-01 -1.564097207009810e-01 -1.561647563377750e-01 - -1.559198752534892e-01 -1.556750777971572e-01 -1.554303640753041e-01 -1.551857339241298e-01 -1.549411873472499e-01 - -1.546967244117141e-01 -1.544523451583313e-01 -1.542080493972972e-01 -1.539638371771692e-01 -1.537197089019022e-01 - -1.534756644902717e-01 -1.532317037874507e-01 -1.529878268669247e-01 -1.527440338285302e-01 -1.525003246495042e-01 - -1.522566990917994e-01 -1.520131573865194e-01 -1.517696998607227e-01 -1.515263263105132e-01 -1.512830366842278e-01 - -1.510398310896279e-01 -1.507967095609423e-01 -1.505536719818633e-01 -1.503107182379510e-01 -1.500678487166025e-01 - -1.498250635429138e-01 -1.495823624607518e-01 -1.493397455183047e-01 -1.490972128240516e-01 -1.488547643939502e-01 - -1.486124000468938e-01 -1.483701197975273e-01 -1.481279240643807e-01 -1.478858128086334e-01 -1.476437858541442e-01 - -1.474018432575297e-01 -1.471599850901578e-01 -1.469182113447434e-01 -1.466765218581870e-01 -1.464349167991909e-01 - -1.461933964691583e-01 -1.459519607332137e-01 -1.457106095126376e-01 -1.454693428712828e-01 -1.452281609001614e-01 - -1.449870635167667e-01 -1.447460505411944e-01 -1.445051223204885e-01 -1.442642790465533e-01 -1.440235204958664e-01 - -1.437828466645076e-01 -1.435422576460715e-01 -1.433017535021517e-01 -1.430613340788666e-01 -1.428209993367665e-01 - -1.425807496580667e-01 -1.423405850452980e-01 -1.421005053276286e-01 -1.418605105748216e-01 -1.416206008760722e-01 - -1.413807762310167e-01 -1.411410364179444e-01 -1.409013815814383e-01 -1.406618121114770e-01 -1.404223278620860e-01 - -1.401829287142080e-01 -1.399436147388266e-01 -1.397043860171121e-01 -1.394652424999606e-01 -1.392261840277533e-01 - -1.389872108800275e-01 -1.387483232704581e-01 -1.385095210193419e-01 -1.382708041155041e-01 -1.380321726381191e-01 - -1.377936266235328e-01 -1.375551659356028e-01 -1.373167905196480e-01 -1.370785007699294e-01 -1.368402967462084e-01 - -1.366021782602805e-01 -1.363641453151502e-01 -1.361261980034910e-01 -1.358883363925467e-01 -1.356505602730137e-01 - -1.354128697173978e-01 -1.351752651019714e-01 -1.349377463365720e-01 -1.347003133096952e-01 -1.344629660943524e-01 - -1.342257047644556e-01 -1.339885292721434e-01 -1.337514394288152e-01 -1.335144355004790e-01 -1.332775177574095e-01 - -1.330406860095451e-01 -1.328039402156265e-01 -1.325672804621033e-01 -1.323307068237664e-01 -1.320942191803451e-01 - -1.318578174250235e-01 -1.316215019436967e-01 -1.313852728254415e-01 -1.311491298574344e-01 -1.309130730812647e-01 - -1.306771025967214e-01 -1.304412184433993e-01 -1.302054204167683e-01 -1.299697085633917e-01 -1.297340833011096e-01 - -1.294985445422908e-01 -1.292630921400970e-01 -1.290277262032818e-01 -1.287924468024440e-01 -1.285572538860320e-01 - -1.283221472565841e-01 -1.280871271607027e-01 -1.278521939245786e-01 -1.276173473594251e-01 -1.273825873815436e-01 - -1.271479140654554e-01 -1.269133275291332e-01 -1.266788276689478e-01 -1.264444143112885e-01 -1.262100878411512e-01 - -1.259758484249543e-01 -1.257416958580221e-01 -1.255076301118343e-01 -1.252736512740011e-01 -1.250397594556589e-01 - -1.248059544551782e-01 -1.245722362561283e-01 -1.243386053032582e-01 -1.241050615437150e-01 -1.238716047916152e-01 - -1.236382351439431e-01 -1.234049527007845e-01 -1.231717574487822e-01 -1.229386491649988e-01 -1.227056280466961e-01 - -1.224726944551588e-01 -1.222398481939305e-01 -1.220070891810755e-01 -1.217744175349468e-01 -1.215418333321439e-01 - -1.213093364896874e-01 -1.210769268543440e-01 -1.208446047468073e-01 -1.206123703546746e-01 -1.203802234985189e-01 - -1.201481641556592e-01 -1.199161924040098e-01 -1.196843083373426e-01 -1.194525118101599e-01 -1.192208027778711e-01 - -1.189891816158967e-01 -1.187576483334740e-01 -1.185262027772708e-01 -1.182948450325541e-01 -1.180635751718018e-01 - -1.178323931740712e-01 -1.176012988598141e-01 -1.173702923768903e-01 -1.171393740841554e-01 -1.169085438684581e-01 - -1.166778016318426e-01 -1.164471474323627e-01 -1.162165813372163e-01 -1.159861033094216e-01 -1.157557132288848e-01 - -1.155254113554128e-01 -1.152951978878259e-01 -1.150650726784410e-01 -1.148350356935617e-01 -1.146050869998271e-01 - -1.143752266983624e-01 -1.141454546633286e-01 -1.139157708150553e-01 -1.136861755297615e-01 -1.134566688685596e-01 - -1.132272506625232e-01 -1.129979209389772e-01 -1.127686797968139e-01 -1.125395272939830e-01 -1.123104632216639e-01 - -1.120814876598629e-01 -1.118526009932446e-01 -1.116238031362107e-01 -1.113950939743172e-01 -1.111664735714766e-01 - -1.109379420230661e-01 -1.107094992989161e-01 -1.104811452047023e-01 -1.102528800189790e-01 -1.100247040176238e-01 - -1.097966169898620e-01 -1.095686189066022e-01 -1.093407098806465e-01 -1.091128899944971e-01 -1.088851591239916e-01 - -1.086575171512236e-01 -1.084299644451029e-01 -1.082025011238454e-01 -1.079751270251657e-01 -1.077478421434466e-01 - -1.075206465724022e-01 -1.072935404061887e-01 -1.070665234272605e-01 -1.068395956686409e-01 -1.066127575621145e-01 - -1.063860090403522e-01 -1.061593499609373e-01 -1.059327804074918e-01 -1.057063004552603e-01 -1.054799100848440e-01 - -1.052536091459819e-01 -1.050273978363624e-01 -1.048012764247322e-01 -1.045752447992682e-01 -1.043493029044653e-01 - -1.041234507912105e-01 -1.038976885616201e-01 -1.036720161437409e-01 -1.034464334142674e-01 -1.032209407082870e-01 - -1.029955381585720e-01 -1.027702255852857e-01 -1.025450030256683e-01 -1.023198705766582e-01 -1.020948282803886e-01 - -1.018698759615270e-01 -1.016450136357437e-01 -1.014202417243671e-01 -1.011955602054591e-01 -1.009709689162001e-01 - -1.007464679013254e-01 -1.005220572777319e-01 -1.002977370772110e-01 -1.000735070732387e-01 -9.984936745539402e-02 - -9.962531858349888e-02 -9.940136027998529e-02 -9.917749246814733e-02 -9.895371525770333e-02 -9.873002873335845e-02 - -9.850643282337790e-02 -9.828292738770521e-02 -9.805951276903688e-02 -9.783618914357473e-02 -9.761295629040607e-02 - -9.738981424317925e-02 -9.716676311420755e-02 -9.694380293900719e-02 -9.672093359332221e-02 -9.649815506782670e-02 - -9.627546771326484e-02 -9.605287156919239e-02 -9.583036651098850e-02 -9.560795255252680e-02 -9.538562978098189e-02 - -9.516339824129488e-02 -9.494125774199282e-02 -9.471920843970391e-02 -9.449725071216948e-02 -9.427538438593883e-02 - -9.405360936874554e-02 -9.383192580278800e-02 -9.361033376064058e-02 -9.338883317577901e-02 -9.316742389906425e-02 - -9.294610622995669e-02 -9.272488039403920e-02 -9.250374621386263e-02 -9.228270367992475e-02 -9.206175287916113e-02 - -9.184089387273792e-02 -9.162012656935895e-02 -9.139945093572596e-02 -9.117886729658348e-02 -9.095837571294788e-02 - -9.073797605928635e-02 -9.051766837713708e-02 -9.029745274779008e-02 -9.007732920697027e-02 -8.985729759887780e-02 - -8.963735802530043e-02 -8.941751083887589e-02 -8.919775594907166e-02 -8.897809325953572e-02 -8.875852286193828e-02 - -8.853904483959285e-02 -8.831965916578795e-02 -8.810036569419880e-02 -8.788116467295366e-02 -8.766205635082600e-02 - -8.744304058057480e-02 -8.722411733824492e-02 -8.700528670561582e-02 -8.678654875532379e-02 -8.656790339361393e-02 - -8.634935054757228e-02 -8.613089058374623e-02 -8.591252359970507e-02 -8.569424942256174e-02 -8.547606809595372e-02 - -8.525797972327777e-02 -8.503998436304407e-02 -8.482208183975883e-02 -8.460427219735964e-02 -8.438655581333676e-02 - -8.416893266387415e-02 -8.395140264416648e-02 -8.373396580036768e-02 -8.351662221748458e-02 -8.329937190808817e-02 - -8.308221474187347e-02 -8.286515089972675e-02 -8.264818063381729e-02 -8.243130387381740e-02 -8.221452057360500e-02 - -8.199783077068876e-02 -8.178123458056528e-02 -8.156473193866548e-02 -8.134832272179610e-02 -8.113200727104515e-02 - -8.091578573554094e-02 -8.069965795549490e-02 -8.048362394306618e-02 -8.026768379237301e-02 -8.005183759034226e-02 - -7.983608519016389e-02 -7.962042660317335e-02 -7.940486220827629e-02 -7.918939199917317e-02 -7.897401585103307e-02 - -7.875873382193239e-02 -7.854354599947752e-02 -7.832845240531904e-02 -7.811345290511561e-02 -7.789854765910142e-02 - -7.768373695009409e-02 -7.746902070156129e-02 -7.725439886068521e-02 -7.703987147751143e-02 -7.682543865920169e-02 - -7.661110037032860e-02 -7.639685648697914e-02 -7.618270730319152e-02 -7.596865299784139e-02 -7.575469343456721e-02 - -7.554082861289950e-02 -7.532705861915691e-02 -7.511338355056779e-02 -7.489980327273796e-02 -7.468631776375068e-02 - -7.447292742489155e-02 -7.425963225373161e-02 -7.404643208981297e-02 -7.383332706618533e-02 -7.362031725942129e-02 - -7.340740264369265e-02 -7.319458312424655e-02 -7.298185885257603e-02 -7.276923011698885e-02 -7.255669681825400e-02 - -7.234425890125808e-02 -7.213191646645117e-02 -7.191966959969415e-02 -7.170751827394115e-02 -7.149546237742448e-02 - -7.128350216363183e-02 -7.107163782537941e-02 -7.085986923051370e-02 -7.064819639413342e-02 -7.043661941815849e-02 - -7.022513838389523e-02 -7.001375316964638e-02 -6.980246372359999e-02 -6.959127044971054e-02 -6.938017339783993e-02 - -6.916917238807876e-02 -6.895826751099868e-02 -6.874745887832359e-02 -6.853674652264935e-02 -6.832613029387129e-02 - -6.811561029537151e-02 -6.790518687416305e-02 -6.769485994872884e-02 -6.748462944761908e-02 -6.727449549181348e-02 - -6.706445814195625e-02 -6.685451736224034e-02 -6.664467305023641e-02 -6.643492546019260e-02 -6.622527482862205e-02 - -6.601572100856345e-02 -6.580626400049541e-02 -6.559690390732385e-02 -6.538764078471235e-02 -6.517847455920224e-02 - -6.496940519404462e-02 -6.476043303620643e-02 -6.455155816426872e-02 -6.434278041275177e-02 -6.413409988235154e-02 - -6.392551667227454e-02 -6.371703078482928e-02 -6.350864213121965e-02 -6.330035079826633e-02 -6.309215709125325e-02 - -6.288406097171770e-02 -6.267606236590158e-02 -6.246816137578116e-02 -6.226035810132791e-02 -6.205265253482506e-02 - -6.184504450634240e-02 -6.163753424009603e-02 -6.143012204113525e-02 -6.122280779495761e-02 -6.101559145710207e-02 - -6.080847310111580e-02 -6.060145284620669e-02 -6.039453063876327e-02 -6.018770637541451e-02 -5.998098039534337e-02 - -5.977435284136760e-02 -5.956782355675167e-02 -5.936139258218223e-02 -5.915506002510895e-02 -5.894882595975996e-02 - -5.874269025717062e-02 -5.853665294379332e-02 -5.833071438748900e-02 -5.812487459491447e-02 -5.791913345983549e-02 - -5.771349104248068e-02 -5.750794745476003e-02 -5.730250273990040e-02 -5.709715674449271e-02 -5.689190963313420e-02 - -5.668676170442684e-02 -5.648171287301057e-02 -5.627676311138611e-02 -5.607191251359627e-02 -5.586716116856662e-02 - -5.566250902085241e-02 -5.545795595276776e-02 -5.525350230977423e-02 -5.504914828197500e-02 -5.484489368806074e-02 - -5.464073856561743e-02 -5.443668303623681e-02 -5.423272717677420e-02 -5.402887087270093e-02 -5.382511411736842e-02 - -5.362145727556954e-02 -5.341790037997223e-02 -5.321444331788154e-02 -5.301108618236487e-02 -5.280782907094528e-02 - -5.260467200594416e-02 -5.240161485390568e-02 -5.219865776343095e-02 -5.199580105954085e-02 -5.179304465507040e-02 - -5.159038850941820e-02 -5.138783273765680e-02 -5.118537740030552e-02 -5.098302246878324e-02 -5.078076787428482e-02 - -5.057861387937131e-02 -5.037656068404879e-02 -5.017460818262723e-02 -4.997275637519877e-02 -4.977100534878579e-02 - -4.956935521374012e-02 -4.936780587637167e-02 -4.916635729330274e-02 -4.896500983679772e-02 -4.876376358063662e-02 - -4.856261839799727e-02 -4.836157437280066e-02 -4.816063160553166e-02 -4.795979012910388e-02 -4.775904981223175e-02 - -4.755841077230219e-02 -4.735787336181510e-02 -4.715743752596301e-02 -4.695710319390285e-02 -4.675687045398216e-02 - -4.655673941737810e-02 -4.635671009364274e-02 -4.615678236145827e-02 -4.595695644691457e-02 -4.575723258610617e-02 - -4.555761069075770e-02 -4.535809077212207e-02 -4.515867291944397e-02 -4.495935719937229e-02 -4.476014355843901e-02 - -4.456103197632578e-02 -4.436202279051898e-02 -4.416311608901573e-02 -4.396431172960501e-02 -4.376560979706327e-02 - -4.356701040970479e-02 -4.336851362154585e-02 -4.317011930970618e-02 -4.297182755295056e-02 -4.277363871130811e-02 - -4.257555275870079e-02 -4.237756961321195e-02 -4.217968936488893e-02 -4.198191211978222e-02 -4.178423789759614e-02 - -4.158666657665847e-02 -4.138919837391426e-02 -4.119183356383482e-02 -4.099457203865310e-02 -4.079741379048268e-02 - -4.060035892668235e-02 -4.040340754077800e-02 -4.020655958670875e-02 -4.000981499812348e-02 -3.981317410229721e-02 - -3.961663704352115e-02 -3.942020369405195e-02 -3.922387410519079e-02 -3.902764838570288e-02 -3.883152661169272e-02 - -3.863550868276464e-02 -3.843959464464100e-02 -3.824378485096525e-02 -3.804807931112070e-02 -3.785247793879744e-02 - -3.765698082240899e-02 -3.746158806803077e-02 -3.726629970906549e-02 -3.707111562537097e-02 -3.687603600301111e-02 - -3.668106114329449e-02 -3.648619095542227e-02 -3.629142541706046e-02 -3.609676463615045e-02 -3.590220871216067e-02 - -3.570775761915167e-02 -3.551341127587861e-02 -3.531916998478909e-02 -3.512503392646860e-02 -3.493100298239093e-02 - -3.473707719308593e-02 -3.454325666569649e-02 -3.434954148093054e-02 -3.415593156072503e-02 -3.396242692622412e-02 - -3.376902792182854e-02 -3.357573459185429e-02 -3.338254684613227e-02 -3.318946476737597e-02 -3.299648846264201e-02 - -3.280361798076661e-02 -3.261085320981364e-02 -3.241819429994710e-02 -3.222564156785773e-02 -3.203319495411584e-02 - -3.184085442350271e-02 -3.164862007407277e-02 -3.145649201602077e-02 -3.126447024597763e-02 -3.107255466700169e-02 - -3.088074555671056e-02 -3.068904313085425e-02 -3.049744727803826e-02 -3.030595802638682e-02 -3.011457548570120e-02 - -2.992329974875160e-02 -2.973213075050443e-02 -2.954106848293515e-02 -2.935011329195715e-02 -2.915926525661732e-02 - -2.896852427673346e-02 -2.877789042941862e-02 -2.858736382466336e-02 -2.839694452567641e-02 -2.820663243092813e-02 - -2.801642765839682e-02 -2.782633053619610e-02 -2.763634102981755e-02 -2.744645909471058e-02 -2.725668483048721e-02 - -2.706701834793413e-02 -2.687745966148872e-02 -2.668800867127078e-02 -2.649866562411629e-02 -2.630943076513501e-02 - -2.612030399888650e-02 -2.593128533989631e-02 -2.574237489560391e-02 -2.555357276907920e-02 -2.536487891525730e-02 - -2.517629330290238e-02 -2.498781626631630e-02 -2.479944791947400e-02 -2.461118815951395e-02 -2.442303705775731e-02 - -2.423499472682666e-02 -2.404706124098910e-02 -2.385923651050157e-02 -2.367152062237768e-02 -2.348391391197065e-02 - -2.329641637680258e-02 -2.310902796361102e-02 -2.292174876507744e-02 -2.273457889435020e-02 -2.254751838574287e-02 - -2.236056713942959e-02 -2.217372537079298e-02 -2.198699334983061e-02 -2.180037099746794e-02 -2.161385831877313e-02 - -2.142745542221016e-02 -2.124116241611923e-02 -2.105497927356034e-02 -2.086890594375282e-02 -2.068294274565517e-02 - -2.049708982965088e-02 -2.031134709508492e-02 -2.012571460207244e-02 -1.994019246558534e-02 -1.975478077426674e-02 - -1.956947944878238e-02 -1.938428854559868e-02 -1.919920840769478e-02 -1.901423906121075e-02 -1.882938044349050e-02 - -1.864463264867233e-02 -1.845999578941159e-02 -1.827546991282947e-02 -1.809105492490821e-02 -1.790675101318496e-02 - -1.772255847013706e-02 -1.753847723077995e-02 -1.735450728912205e-02 -1.717064875577919e-02 -1.698690174123156e-02 - -1.680326624034783e-02 -1.661974219495428e-02 -1.643632989539235e-02 -1.625302952284425e-02 -1.606984099009794e-02 - -1.588676434582367e-02 -1.570379970237604e-02 -1.552094715767664e-02 -1.533820665109939e-02 -1.515557821470722e-02 - -1.497306218983010e-02 -1.479065863118324e-02 -1.460836746737021e-02 -1.442618879376636e-02 -1.424412272699600e-02 - -1.406216932715821e-02 -1.388032850365394e-02 -1.369860041414062e-02 -1.351698537084881e-02 -1.333548332713773e-02 - -1.315409426742165e-02 -1.297281830737383e-02 -1.279165555870565e-02 -1.261060603011550e-02 -1.242966965324022e-02 - -1.224884670128487e-02 -1.206813738892206e-02 -1.188754163203305e-02 -1.170705946859269e-02 -1.152669101347058e-02 - -1.134643637569507e-02 -1.116629550991553e-02 -1.098626842139487e-02 -1.080635544822676e-02 -1.062655668128806e-02 - -1.044687204494093e-02 -1.026730162280993e-02 -1.008784553433474e-02 -9.908503858526582e-03 -9.729276511698201e-03 - -9.550163618928804e-03 -9.371165505355611e-03 -9.192282154920128e-03 -9.013513542246960e-03 -8.834859775588668e-03 - -8.656320970291077e-03 -8.477897155130903e-03 -8.299588259899083e-03 -8.121394531144674e-03 -7.943316209259341e-03 - -7.765353219198069e-03 -7.587505591333328e-03 -7.409773443860054e-03 -7.232156891183837e-03 -7.054655906230881e-03 - -6.877270474033493e-03 -6.700000921715352e-03 -6.522847372218281e-03 -6.345809748257097e-03 -6.168888131399519e-03 - -5.992082642122597e-03 -5.815393366379400e-03 -5.638820235869921e-03 -5.462363348533388e-03 -5.286023033805962e-03 - -5.109799304673499e-03 -4.933692127821829e-03 -4.757701606393674e-03 -4.581827861470766e-03 -4.406070940931505e-03 - -4.230430770274698e-03 -4.054907567997104e-03 -3.879501600335772e-03 -3.704212807069328e-03 -3.529041210474627e-03 - -3.353986930090703e-03 -3.179050081041732e-03 -3.004230655593028e-03 -2.829528626659512e-03 -2.654944304289923e-03 - -2.480477843039907e-03 -2.306129168890747e-03 -2.131898354626704e-03 -1.957785522367332e-03 -1.783790769612464e-03 - -1.609914041309663e-03 -1.436155409326836e-03 -1.262515208025358e-03 -1.088993476198761e-03 -9.155901719868249e-04 - -7.423054008843995e-04 -5.691392854771952e-04 -3.960918865957833e-04 -2.231631331613931e-04 -5.035321608514060e-05 - 1.223375771945329e-04 2.949092895407656e-04 4.673619084872533e-04 6.396953140537370e-04 8.119093865188150e-04 - 9.840041155727759e-04 1.155979539871523e-03 1.327835367602612e-03 1.499571413663267e-03 1.671187748049661e-03 - 1.842684305331169e-03 2.014060960896812e-03 2.185317608856639e-03 2.356454289147141e-03 2.527470954200780e-03 - 2.698367270832486e-03 2.869143169831049e-03 3.039798698561594e-03 3.210333755176400e-03 3.380748214685887e-03 - 3.551042001872539e-03 3.721215182132198e-03 3.891267592694254e-03 4.061198929412137e-03 4.231009214636464e-03 - 4.400698444839332e-03 4.570266499650065e-03 4.739713256426893e-03 4.909038688279234e-03 5.078242841339914e-03 - 5.247325443294046e-03 5.416286280121805e-03 5.585125417934797e-03 5.753842797319914e-03 5.922438289361948e-03 - 6.090911784292105e-03 6.259263304936011e-03 6.427492823105761e-03 6.595600012759487e-03 6.763584774419725e-03 - 6.931447157908777e-03 7.099187064683324e-03 7.266804368739545e-03 7.434298984071849e-03 7.601670964899477e-03 - 7.768920175905106e-03 7.936046303989365e-03 8.103049345026314e-03 8.269929303195386e-03 8.436686062480435e-03 - 8.603319496825714e-03 8.769829559891583e-03 8.936216298209541e-03 9.102479469308070e-03 9.268618835503980e-03 - 9.434634442417017e-03 9.600526244002849e-03 9.766294116521254e-03 9.931937936947469e-03 1.009745771049027e-02 - 1.026285342997890e-02 1.042812477681206e-02 1.059327162144324e-02 1.075829401681754e-02 1.092319186819127e-02 - 1.108796504594824e-02 1.125261345370748e-02 1.141713713772357e-02 1.158153598704318e-02 1.174580967555363e-02 - 1.190995817803677e-02 1.207398151021485e-02 1.223787955540131e-02 1.240165218070774e-02 1.256529932365555e-02 - 1.272882103806231e-02 1.289221710280211e-02 1.305548725320952e-02 1.321863152957668e-02 1.338164989105289e-02 - 1.354454220587777e-02 1.370730835288826e-02 1.386994832163190e-02 1.403246211588375e-02 1.419484943187744e-02 - 1.435711010999991e-02 1.451924419921884e-02 1.468125161270911e-02 1.484313222013652e-02 1.500488591571896e-02 - 1.516651273046586e-02 1.532801257754355e-02 1.548938513124086e-02 1.565063033579857e-02 1.581174821092933e-02 - 1.597273864701365e-02 1.613360150922888e-02 1.629433671764488e-02 1.645494432276120e-02 1.661542413184349e-02 - 1.677577586209575e-02 1.693599953321696e-02 1.709609511287956e-02 1.725606247097126e-02 1.741590148147653e-02 - 1.757561211738663e-02 1.773519439308624e-02 1.789464801957598e-02 1.805397280960725e-02 1.821316881163111e-02 - 1.837223594327105e-02 1.853117406905512e-02 1.868998307594014e-02 1.884866298214414e-02 1.900721372338833e-02 - 1.916563497459167e-02 1.932392665507269e-02 1.948208878919649e-02 1.964012126059438e-02 1.979802393750615e-02 - 1.995579673545799e-02 2.011343968946751e-02 2.027095263124555e-02 2.042833526879373e-02 2.058558759933038e-02 - 2.074270959919291e-02 2.089970114286997e-02 2.105656209513535e-02 2.121329241031374e-02 2.136989211400533e-02 - 2.152636093833320e-02 2.168269866776463e-02 2.183890534086288e-02 2.199498088647827e-02 2.215092516911965e-02 - 2.230673806408907e-02 2.246241957468516e-02 2.261796965793072e-02 2.277338799181243e-02 2.292867446749406e-02 - 2.308382911412376e-02 2.323885181888266e-02 2.339374244699652e-02 2.354850090287507e-02 2.370312721409915e-02 - 2.385762123470989e-02 2.401198266010886e-02 2.416621147301771e-02 2.432030765671687e-02 2.447427107682733e-02 - 2.462810160176357e-02 2.478179917471193e-02 2.493536381795363e-02 2.508879528739230e-02 2.524209334527653e-02 - 2.539525801488748e-02 2.554828923354157e-02 2.570118686847216e-02 2.585395079171064e-02 2.600658098606827e-02 - 2.615907742012537e-02 2.631143978762620e-02 2.646366795301069e-02 2.661576194257877e-02 2.676772164859378e-02 - 2.691954693391293e-02 2.707123769272043e-02 2.722279394328245e-02 2.737421556407061e-02 2.752550224474631e-02 - 2.767665393933695e-02 2.782767063812680e-02 2.797855221700411e-02 2.812929853552858e-02 2.827990951702357e-02 - 2.843038519104858e-02 2.858072533585580e-02 2.873092969062032e-02 2.888099827101270e-02 2.903093101911967e-02 - 2.918072779556083e-02 2.933038847140823e-02 2.947991301658642e-02 2.962930141213865e-02 2.977855336278226e-02 - 2.992766870509821e-02 3.007664746318324e-02 3.022548953626840e-02 3.037419478553557e-02 3.052276309616091e-02 - 3.067119447416764e-02 3.081948881896879e-02 3.096764581778017e-02 3.111566540198458e-02 3.126354756710210e-02 - 3.141129218718559e-02 3.155889912410548e-02 3.170636829125183e-02 3.185369970791438e-02 3.200089317518744e-02 - 3.214794841776677e-02 3.229486543634106e-02 3.244164418203412e-02 3.258828451581320e-02 3.273478630264194e-02 - 3.288114949586567e-02 3.302737408530167e-02 3.317345979235018e-02 3.331940642975919e-02 3.346521401820098e-02 - 3.361088246101045e-02 3.375641161607764e-02 3.390180136352038e-02 3.404705169548587e-02 3.419216253016829e-02 - 3.433713355905806e-02 3.448196468652563e-02 3.462665590981111e-02 3.477120710939272e-02 3.491561814527116e-02 - 3.505988891618091e-02 3.520401943397326e-02 3.534800952666442e-02 3.549185891051008e-02 3.563556756111654e-02 - 3.577913543618631e-02 3.592256240340591e-02 3.606584831947614e-02 3.620899312153205e-02 3.635199681091714e-02 - 3.649485912620978e-02 3.663757985375464e-02 3.678015900636063e-02 3.692259649832257e-02 3.706489218607827e-02 - 3.720704593508108e-02 3.734905772908955e-02 3.749092751022131e-02 3.763265496742431e-02 3.777423997951684e-02 - 3.791568254953915e-02 3.805698256030369e-02 3.819813986869797e-02 3.833915436267914e-02 3.848002605018682e-02 - 3.862075477984065e-02 3.876134025391093e-02 3.890178243600422e-02 3.904208129158644e-02 3.918223668100989e-02 - 3.932224846044379e-02 3.946211655605483e-02 3.960184097189857e-02 3.974142146457355e-02 3.988085779819951e-02 - 4.002014997942075e-02 4.015929792921669e-02 4.029830150192959e-02 4.043716055991190e-02 4.057587507004282e-02 - 4.071444498657769e-02 4.085287001066611e-02 4.099114999824743e-02 4.112928495212512e-02 4.126727475679569e-02 - 4.140511926665246e-02 4.154281836167219e-02 4.168037204269245e-02 4.181778018003033e-02 4.195504246778908e-02 - 4.209215884913708e-02 4.222912929605258e-02 4.236595366776428e-02 4.250263182248033e-02 4.263916367566677e-02 - 4.277554922465009e-02 4.291178824859961e-02 4.304788049654025e-02 4.318382596138427e-02 4.331962457087349e-02 - 4.345527617981602e-02 4.359078064797250e-02 4.372613792550029e-02 4.386134797486977e-02 4.399641051415262e-02 - 4.413132537776133e-02 4.426609256403441e-02 4.440071196061698e-02 4.453518342174363e-02 4.466950682320869e-02 - 4.480368214879805e-02 4.493770928728694e-02 4.507158793990715e-02 4.520531802497359e-02 4.533889951667943e-02 - 4.547233228082954e-02 4.560561616979211e-02 4.573875108353129e-02 4.587173702317195e-02 4.600457379177124e-02 - 4.613726112101928e-02 4.626979898466685e-02 4.640218731770854e-02 4.653442597807410e-02 4.666651481740990e-02 - 4.679845378497393e-02 4.693024287357150e-02 4.706188178521280e-02 4.719337030512012e-02 4.732470843170088e-02 - 4.745589609974604e-02 4.758693317708736e-02 4.771781949014568e-02 4.784855500276729e-02 4.797913963655120e-02 - 4.810957311625792e-02 4.823985532440599e-02 4.836998622519359e-02 4.849996572088229e-02 4.862979364778694e-02 - 4.875946986129576e-02 4.888899438454671e-02 4.901836703838853e-02 4.914758752328308e-02 4.927665585368439e-02 - 4.940557196434897e-02 4.953433564666962e-02 4.966294680168561e-02 4.979140536998770e-02 4.991971127467005e-02 - 5.004786430086550e-02 5.017586426593462e-02 5.030371111424699e-02 5.043140473941395e-02 5.055894500969876e-02 - 5.068633180855401e-02 5.081356509387767e-02 5.094064477169723e-02 5.106757053524139e-02 5.119434226596677e-02 - 5.132095996453229e-02 5.144742351517578e-02 5.157373274644007e-02 5.169988750799723e-02 5.182588783131492e-02 - 5.195173357105356e-02 5.207742440366903e-02 5.220296027189056e-02 5.232834113948501e-02 5.245356688434039e-02 - 5.257863735375337e-02 5.270355244318054e-02 5.282831211610928e-02 5.295291615700908e-02 5.307736435753736e-02 - 5.320165668494783e-02 5.332579302368824e-02 5.344977322479061e-02 5.357359720391287e-02 5.369726488407797e-02 - 5.382077614890905e-02 5.394413077320572e-02 5.406732861255047e-02 5.419036960275756e-02 5.431325364836510e-02 - 5.443598061485443e-02 5.455855035736775e-02 5.468096283548277e-02 5.480321791614200e-02 5.492531533836561e-02 - 5.504725504027442e-02 5.516903696522249e-02 5.529066094250196e-02 5.541212681912044e-02 5.553343451105355e-02 - 5.565458402054679e-02 5.577557512714444e-02 5.589640757833542e-02 5.601708136214176e-02 5.613759637012277e-02 - 5.625795242697428e-02 5.637814944133901e-02 5.649818735356010e-02 5.661806606948155e-02 5.673778531909066e-02 - 5.685734496106067e-02 5.697674499811992e-02 5.709598525886500e-02 5.721506557962035e-02 5.733398588420521e-02 - 5.745274613557275e-02 5.757134619305772e-02 5.768978576165893e-02 5.780806477237931e-02 5.792618319490116e-02 - 5.804414085654030e-02 5.816193759992416e-02 5.827957333255503e-02 5.839704805764100e-02 5.851436157058919e-02 - 5.863151359019340e-02 5.874850407742044e-02 5.886533297606138e-02 5.898200016057164e-02 5.909850545490182e-02 - 5.921484876799358e-02 5.933103006596772e-02 5.944704910278828e-02 5.956290569090495e-02 5.967859979076014e-02 - 5.979413129454921e-02 5.990950006107775e-02 6.002470595625681e-02 6.013974894676900e-02 6.025462892974234e-02 - 6.036934559538653e-02 6.048389882575328e-02 6.059828859366181e-02 6.071251478747773e-02 6.082657726499330e-02 - 6.094047589468096e-02 6.105421060960093e-02 6.116778124880510e-02 6.128118760026364e-02 6.139442960439424e-02 - 6.150750715787331e-02 6.162042008748835e-02 6.173316829355946e-02 6.184575170612789e-02 6.195817023946892e-02 - 6.207042366308074e-02 6.218251178412997e-02 6.229443455021107e-02 6.240619187345142e-02 6.251778362644587e-02 - 6.262920965673664e-02 6.274046989094115e-02 6.285156423838029e-02 6.296249246083868e-02 6.307325441937692e-02 - 6.318385004239983e-02 6.329427920287174e-02 6.340454177652059e-02 6.351463766120390e-02 6.362456678994362e-02 - 6.373432899407734e-02 6.384392402667542e-02 6.395335181995393e-02 6.406261231361865e-02 6.417170537725830e-02 - 6.428063082883417e-02 6.438938856382127e-02 6.449797859582693e-02 6.460640069400744e-02 6.471465460887021e-02 - 6.482274028565467e-02 6.493065766530991e-02 6.503840663024645e-02 6.514598697176463e-02 6.525339863731919e-02 - 6.536064160053869e-02 6.546771556229376e-02 6.557462036169828e-02 6.568135597564134e-02 6.578792228094754e-02 - 6.589431913461476e-02 6.600054641494822e-02 6.610660407274732e-02 6.621249195669229e-02 6.631820979208959e-02 - 6.642375751800587e-02 6.652913508526218e-02 6.663434233390064e-02 6.673937912206085e-02 6.684424535139094e-02 - 6.694894096694531e-02 6.705346576057515e-02 6.715781952052316e-02 6.726200223606826e-02 6.736601378290344e-02 - 6.746985396850236e-02 6.757352270136854e-02 6.767701992273348e-02 6.778034554033589e-02 6.788349929667206e-02 - 6.798648102682574e-02 6.808929069330329e-02 6.819192820375723e-02 6.829439341428477e-02 6.839668615716293e-02 - 6.849880637697058e-02 6.860075397106770e-02 6.870252870886938e-02 6.880413046413429e-02 6.890555915577500e-02 - 6.900681468090485e-02 6.910789689150486e-02 6.920880565820778e-02 6.930954094436353e-02 6.941010257623929e-02 - 6.951049032497619e-02 6.961070411466443e-02 6.971074386483528e-02 6.981060945693285e-02 6.991030074013053e-02 - 7.000981760721879e-02 7.010915998226322e-02 7.020832768385020e-02 7.030732053981503e-02 7.040613843777971e-02 - 7.050478130476578e-02 7.060324902125202e-02 7.070154139632766e-02 7.079965841104072e-02 7.089759998592053e-02 - 7.099536579014293e-02 7.109295574922263e-02 7.119036986301433e-02 7.128760792254588e-02 7.138466979343019e-02 - 7.148155540894172e-02 7.157826467726322e-02 7.167479742578257e-02 7.177115345207208e-02 7.186733268619028e-02 - 7.196333504975572e-02 7.205916041090092e-02 7.215480858692887e-02 7.225027948023270e-02 7.234557308374470e-02 - 7.244068916926014e-02 7.253562753252076e-02 7.263038813284139e-02 7.272497087062332e-02 7.281937559790036e-02 - 7.291360215228662e-02 7.300765049821943e-02 7.310152057265214e-02 7.319521208383468e-02 7.328872490709243e-02 - 7.338205901635925e-02 7.347521425841259e-02 7.356819049091311e-02 7.366098761637971e-02 7.375360558736099e-02 - 7.384604424623381e-02 7.393830334347133e-02 7.403038279875497e-02 7.412228254437477e-02 7.421400245985316e-02 - 7.430554241104276e-02 7.439690229021774e-02 7.448808202204141e-02 7.457908141717452e-02 7.466990029970315e-02 - 7.476053861745356e-02 7.485099625058683e-02 7.494127304678436e-02 7.503136889191833e-02 7.512128371784581e-02 - 7.521101743547498e-02 7.530056981436373e-02 7.538994071268737e-02 7.547913007544443e-02 7.556813780083994e-02 - 7.565696374971752e-02 7.574560777501017e-02 7.583406981695588e-02 7.592234975180168e-02 7.601044736291800e-02 - 7.609836256769248e-02 7.618609528331391e-02 7.627364535037680e-02 7.636101265407126e-02 7.644819711937149e-02 - 7.653519868718589e-02 7.662201715447789e-02 7.670865230880411e-02 7.679510411035856e-02 7.688137246970578e-02 - 7.696745724207896e-02 7.705335828035317e-02 7.713907552614908e-02 7.722460893765626e-02 7.730995825366380e-02 - 7.739512330293280e-02 7.748010405365591e-02 7.756490042829636e-02 7.764951228919105e-02 7.773393946198498e-02 - 7.781818189157449e-02 7.790223948237281e-02 7.798611201876808e-02 7.806979939436651e-02 7.815330154059554e-02 - 7.823661834982702e-02 7.831974966729814e-02 7.840269536418043e-02 7.848545542109749e-02 7.856802968700778e-02 - 7.865041794492959e-02 7.873262009221961e-02 7.881463606524114e-02 7.889646578364969e-02 7.897810905385311e-02 - 7.905956578813299e-02 7.914083598393755e-02 7.922191938944982e-02 7.930281582198326e-02 7.938352526916173e-02 - 7.946404763288464e-02 7.954438277705837e-02 7.962453057021987e-02 7.970449093695484e-02 7.978426377009373e-02 - 7.986384886265184e-02 7.994324611178145e-02 8.002245546069972e-02 8.010147680163558e-02 8.018030998339011e-02 - 8.025895486859348e-02 8.033741142939121e-02 8.041567953647351e-02 8.049375898816008e-02 8.057164970191152e-02 - 8.064935159117341e-02 8.072686453538828e-02 8.080418841559016e-02 8.088132313650849e-02 8.095826861741187e-02 - 8.103502469212946e-02 8.111159121525567e-02 8.118796811657426e-02 8.126415526945288e-02 8.134015254787534e-02 - 8.141595988122388e-02 8.149157718184835e-02 8.156700432424771e-02 8.164224113093393e-02 8.171728750211138e-02 - 8.179214337283539e-02 8.186680860558979e-02 8.194128308109257e-02 8.201556671181809e-02 8.208965942384167e-02 - 8.216356107347705e-02 8.223727146913333e-02 8.231079055026533e-02 8.238411825286719e-02 8.245725445426123e-02 - 8.253019901019013e-02 8.260295182089074e-02 8.267551284923887e-02 8.274788192985057e-02 8.282005889192648e-02 - 8.289204367192234e-02 8.296383619751495e-02 8.303543635380874e-02 8.310684396376640e-02 8.317805898151856e-02 - 8.324908138250064e-02 8.331991092178788e-02 8.339054746670159e-02 8.346099098907200e-02 8.353124136246602e-02 - 8.360129848004999e-02 8.367116227251760e-02 8.374083263302687e-02 8.381030943134427e-02 8.387959252741883e-02 - 8.394868181167527e-02 8.401757720093640e-02 8.408627862550171e-02 8.415478594369409e-02 8.422309904154775e-02 - 8.429121790707177e-02 8.435914237533512e-02 8.442687225429805e-02 8.449440750560887e-02 8.456174803803686e-02 - 8.462889372267089e-02 8.469584447602406e-02 8.476260023136410e-02 8.482916090148240e-02 8.489552630009754e-02 - 8.496169630228255e-02 8.502767086164854e-02 8.509344988672647e-02 8.515903326018803e-02 8.522442086136313e-02 - 8.528961263471936e-02 8.535460848680074e-02 8.541940824041729e-02 8.548401181612168e-02 8.554841915131453e-02 - 8.561263012321893e-02 8.567664461211427e-02 8.574046253447680e-02 8.580408386832587e-02 8.586750845589863e-02 - 8.593073610333024e-02 8.599376680387132e-02 8.605660047760594e-02 8.611923696874126e-02 8.618167618396408e-02 - 8.624391807608472e-02 8.630596259724549e-02 8.636780954833972e-02 8.642945878839840e-02 8.649091029427977e-02 - 8.655216396695875e-02 8.661321970043215e-02 8.667407742210617e-02 8.673473702989365e-02 8.679519841504303e-02 - 8.685546148336530e-02 8.691552612855238e-02 8.697539224666265e-02 8.703505975750943e-02 8.709452857692032e-02 - 8.715379861893667e-02 8.721286980508075e-02 8.727174201224434e-02 8.733041510377958e-02 8.738888903629666e-02 - 8.744716372671989e-02 8.750523904187274e-02 8.756311491392924e-02 8.762079127795709e-02 8.767826803995526e-02 - 8.773554506310657e-02 8.779262223690780e-02 8.784949951260017e-02 8.790617682173207e-02 8.796265406226209e-02 - 8.801893109931651e-02 8.807500788687952e-02 8.813088437660771e-02 8.818656039674132e-02 8.824203585227545e-02 - 8.829731070095961e-02 8.835238486000704e-02 8.840725822106667e-02 8.846193068214857e-02 8.851640221803356e-02 - 8.857067273700293e-02 8.862474207580676e-02 8.867861014722141e-02 8.873227689758616e-02 8.878574227696898e-02 - 8.883900618220902e-02 8.889206851560667e-02 8.894492921167085e-02 8.899758815302622e-02 8.905004524008538e-02 - 8.910230044719054e-02 8.915435367300073e-02 8.920620479173334e-02 8.925785373448247e-02 8.930930045917142e-02 - 8.936054490961548e-02 8.941158695191696e-02 8.946242647641844e-02 8.951306341364354e-02 8.956349771969928e-02 - 8.961372931388180e-02 8.966375808278661e-02 8.971358396554302e-02 8.976320688963368e-02 8.981262675341668e-02 - 8.986184348935064e-02 8.991085703129179e-02 8.995966729258320e-02 9.000827417122792e-02 9.005667759770250e-02 - 9.010487756379584e-02 9.015287394264000e-02 9.020066659275561e-02 9.024825550203337e-02 9.029564061179933e-02 - 9.034282181894199e-02 9.038979902630290e-02 9.043657218570805e-02 9.048314126656666e-02 9.052950615463343e-02 - 9.057566675480395e-02 9.062162300961238e-02 9.066737484935303e-02 9.071292219781772e-02 9.075826498061153e-02 - 9.080340315127385e-02 9.084833664156222e-02 9.089306533771581e-02 9.093758915627431e-02 9.098190804149961e-02 - 9.102602195783284e-02 9.106993084471440e-02 9.111363462196023e-02 9.115713320054021e-02 9.120042650346059e-02 - 9.124351446434358e-02 9.128639702175202e-02 9.132907412994692e-02 9.137154573427010e-02 9.141381170435277e-02 - 9.145587198962597e-02 9.149772660800266e-02 9.153937542844172e-02 9.158081834977004e-02 9.162205535599281e-02 - 9.166308637778346e-02 9.170391133536025e-02 9.174453017072061e-02 9.178494285856946e-02 9.182514933661440e-02 - 9.186514945794547e-02 9.190494319482566e-02 9.194453054665523e-02 9.198391140758180e-02 9.202308569543158e-02 - 9.206205336702038e-02 9.210081441034919e-02 9.213936875086109e-02 9.217771627651770e-02 9.221585694962209e-02 - 9.225379072840771e-02 9.229151754885842e-02 9.232903734819613e-02 9.236635007909103e-02 9.240345570404732e-02 - 9.244035413434255e-02 9.247704529963750e-02 9.251352918345666e-02 9.254980573968512e-02 9.258587489795035e-02 - 9.262173657649034e-02 9.265739073985793e-02 9.269283735974691e-02 9.272807636276849e-02 9.276310769047050e-02 - 9.279793130272118e-02 9.283254716719631e-02 9.286695521394739e-02 9.290115536246511e-02 9.293514761281572e-02 - 9.296893192325742e-02 9.300250819824006e-02 9.303587638369953e-02 9.306903645092859e-02 9.310198837852499e-02 - 9.313473209662422e-02 9.316726755984403e-02 9.319959477466139e-02 9.323171364631608e-02 9.326362408592948e-02 - 9.329532610133226e-02 9.332681964339190e-02 9.335810464438972e-02 9.338918108249107e-02 9.342004893308628e-02 - 9.345070815580041e-02 9.348115868437977e-02 9.351140046962789e-02 9.354143348306601e-02 9.357125770365762e-02 - 9.360087308621738e-02 9.363027956518245e-02 9.365947710363894e-02 9.368846567300493e-02 9.371724524372237e-02 - 9.374581578300241e-02 9.377417725111503e-02 9.380232960142115e-02 9.383027280206080e-02 9.385800682788301e-02 - 9.388553164914089e-02 9.391284719773688e-02 9.393995342276806e-02 9.396685035781838e-02 9.399353796706621e-02 - 9.402001617537038e-02 9.404628495786660e-02 9.407234429781461e-02 9.409819417117830e-02 9.412383453169183e-02 - 9.414926534580341e-02 9.417448659641373e-02 9.419949825736050e-02 9.422430029380560e-02 9.424889267135104e-02 - 9.427327539998738e-02 9.429744844865905e-02 9.432141171534560e-02 9.434516522540957e-02 9.436870900006604e-02 - 9.439204294634228e-02 9.441516705436934e-02 9.443808133745002e-02 9.446078573953387e-02 9.448328023801857e-02 - 9.450556483411636e-02 9.452763950923013e-02 9.454950421611270e-02 9.457115890701832e-02 9.459260360830167e-02 - 9.461383832574666e-02 9.463486302352626e-02 9.465567765409444e-02 9.467628220109425e-02 9.469667668274938e-02 - 9.471686106967921e-02 9.473683533004949e-02 9.475659945563136e-02 9.477615343325803e-02 9.479549725292793e-02 - 9.481463091432241e-02 9.483355439545672e-02 9.485226766778346e-02 9.487077071788189e-02 9.488906353992572e-02 - 9.490714613644993e-02 9.492501852119042e-02 9.494268066964073e-02 9.496013253895599e-02 9.497737414244060e-02 - 9.499440547543551e-02 9.501122651272445e-02 9.502783728094538e-02 9.504423778187990e-02 9.506042797340242e-02 - 9.507640785191551e-02 9.509217742006319e-02 9.510773667189122e-02 9.512308563868060e-02 9.513822432123879e-02 - 9.515315264231193e-02 9.516787063845662e-02 9.518237836728226e-02 9.519667577724227e-02 9.521076284349063e-02 - 9.522463958294539e-02 9.523830604498588e-02 9.525176221483619e-02 9.526500804718509e-02 9.527804359769618e-02 - 9.529086886623650e-02 9.530348379689602e-02 9.531588845120076e-02 9.532808286166987e-02 9.534006699012688e-02 - 9.535184085361241e-02 9.536340447105748e-02 9.537475783364874e-02 9.538590095359538e-02 9.539683385237334e-02 - 9.540755654711666e-02 9.541806903829181e-02 9.542837132640679e-02 9.543846343230179e-02 9.544834536597921e-02 - 9.545801714100983e-02 9.546747880593646e-02 9.547673036184304e-02 9.548577178084619e-02 9.549460309483834e-02 - 9.550322434581640e-02 9.551163556335956e-02 9.551983673903520e-02 9.552782788036314e-02 9.553560902903191e-02 - 9.554318022933674e-02 9.555054148771730e-02 9.555769276632298e-02 9.556463412975340e-02 9.557136563747151e-02 - 9.557788725689133e-02 9.558419903459103e-02 9.559030102901959e-02 9.559619321427665e-02 9.560187562136102e-02 - 9.560734830883322e-02 9.561261127917654e-02 9.561766456108449e-02 9.562250820572099e-02 9.562714223416331e-02 - 9.563156666435306e-02 9.563578152405575e-02 9.563978686682097e-02 9.564358272631937e-02 9.564716910782914e-02 - 9.565054604965099e-02 9.565371359980702e-02 9.565667179877529e-02 9.565942066526258e-02 9.566196023293236e-02 - 9.566429057683135e-02 9.566641172752892e-02 9.566832368940979e-02 9.567002647518966e-02 9.567152016429874e-02 - 9.567280484915060e-02 9.567388053004788e-02 9.567474721294261e-02 9.567540493730267e-02 9.567585379392737e-02 - 9.567609383300600e-02 9.567612506298810e-02 9.567594754568214e-02 9.567556133790830e-02 9.567496647244744e-02 - 9.567416299512438e-02 9.567315095370396e-02 9.567193039196389e-02 9.567050136232016e-02 9.566886392120964e-02 - 9.566701812558283e-02 9.566496403827787e-02 9.566270170884209e-02 9.566023115264767e-02 9.565755243736668e-02 - 9.565466564791879e-02 9.565157080775241e-02 9.564826797386157e-02 9.564475723264595e-02 9.564103864027859e-02 - 9.563711223757489e-02 9.563297806735498e-02 9.562863621895812e-02 9.562408675116861e-02 9.561932968250994e-02 - 9.561436511583814e-02 9.560919313325968e-02 9.560381374743886e-02 9.559822704785555e-02 9.559243313048145e-02 - 9.558643203289170e-02 9.558022378864620e-02 9.557380846466877e-02 9.556718619530349e-02 9.556035703327785e-02 - 9.555332100122134e-02 9.554607821247386e-02 9.553862873475936e-02 9.553097259908433e-02 9.552310989218279e-02 - 9.551504070130773e-02 9.550676510186747e-02 9.549828317393894e-02 9.548959500356741e-02 9.548070067318166e-02 - 9.547160021295119e-02 9.546229369018946e-02 9.545278124506257e-02 9.544306292579091e-02 9.543313878273989e-02 - 9.542300894892854e-02 9.541267351639289e-02 9.540213254817664e-02 9.539138610562420e-02 9.538043425774057e-02 - 9.536927709152246e-02 9.535791472882026e-02 9.534634726779553e-02 9.533457478138217e-02 9.532259734256758e-02 - 9.531041503990305e-02 9.529802797105680e-02 9.528543620462085e-02 9.527263983869082e-02 9.525963900525855e-02 - 9.524643375927100e-02 9.523302417643500e-02 9.521941040061487e-02 9.520559252291068e-02 9.519157060486365e-02 - 9.517734471153570e-02 9.516291499670615e-02 9.514828160467456e-02 9.513344455080376e-02 9.511840393248631e-02 - 9.510315989360162e-02 9.508771251519674e-02 9.507206189457258e-02 9.505620814925633e-02 9.504015138530268e-02 - 9.502389169582724e-02 9.500742917228551e-02 9.499076394524120e-02 9.497389612890822e-02 9.495682580659018e-02 - 9.493955308203066e-02 9.492207807526097e-02 9.490440091330225e-02 9.488652168366014e-02 9.486844048723730e-02 - 9.485015747906970e-02 9.483167277063544e-02 9.481298644119306e-02 9.479409856622809e-02 9.477500930738031e-02 - 9.475571884085587e-02 9.473622721810367e-02 9.471653454723004e-02 9.469664098786204e-02 9.467654664635866e-02 - 9.465625162221861e-02 9.463575602621152e-02 9.461505999415500e-02 9.459416367044585e-02 9.457306719633034e-02 - 9.455177068421998e-02 9.453027423759350e-02 9.450857796468222e-02 9.448668199276268e-02 9.446458647203468e-02 - 9.444229157255099e-02 9.441979739649474e-02 9.439710403006842e-02 9.437421161454676e-02 9.435112031829759e-02 - 9.432783029179438e-02 9.430434160094567e-02 9.428065438538669e-02 9.425676883924589e-02 9.423268508508292e-02 - 9.420840322981890e-02 9.418392339716981e-02 9.415924578030670e-02 9.413437051700123e-02 9.410929767030043e-02 - 9.408402741009517e-02 9.405855992335012e-02 9.403289535840260e-02 9.400703383941893e-02 9.398097549341558e-02 - 9.395472046838550e-02 9.392826889502673e-02 9.390162091553057e-02 9.387477672023849e-02 9.384773645864139e-02 - 9.382050025947151e-02 9.379306828457251e-02 9.376544068778003e-02 9.373761760606118e-02 9.370959916011609e-02 - 9.368138552427184e-02 9.365297690930323e-02 9.362437342817573e-02 9.359557520850639e-02 9.356658243379877e-02 - 9.353739529945312e-02 9.350801394425273e-02 9.347843843855524e-02 9.344866901272440e-02 9.341870589097585e-02 - 9.338854915644307e-02 9.335819897637819e-02 9.332765555734250e-02 9.329691906420928e-02 9.326598960092489e-02 - 9.323486729288316e-02 9.320355242698486e-02 9.317204517635257e-02 9.314034562740874e-02 9.310845398153604e-02 - 9.307637042858882e-02 9.304409511565054e-02 9.301162817412864e-02 9.297896979469056e-02 9.294612022999450e-02 - 9.291307963943660e-02 9.287984815938743e-02 9.284642594887814e-02 9.281281319942865e-02 9.277901009754375e-02 - 9.274501679883909e-02 9.271083349621308e-02 9.267646039527271e-02 9.264189767811302e-02 9.260714551564306e-02 - 9.257220408228978e-02 9.253707357624473e-02 9.250175417101536e-02 9.246624602802385e-02 9.243054935165987e-02 - 9.239466434718238e-02 9.235859120974489e-02 9.232233012999355e-02 9.228588129454922e-02 9.224924488066757e-02 - 9.221242103323031e-02 9.217540995047416e-02 9.213821191347883e-02 9.210082709355732e-02 9.206325564930115e-02 - 9.202549780755387e-02 9.198755374602623e-02 9.194942363528436e-02 9.191110769995278e-02 9.187260614753277e-02 - 9.183391917841241e-02 9.179504701848260e-02 9.175598985687712e-02 9.171674785963810e-02 9.167732123351167e-02 - 9.163771019528422e-02 9.159791495855178e-02 9.155793572040530e-02 9.151777270193290e-02 9.147742614628342e-02 - 9.143689622063791e-02 9.139618310892414e-02 9.135528705455570e-02 9.131420824439858e-02 9.127294688450004e-02 - 9.123150325806001e-02 9.118987755991119e-02 9.114806996063474e-02 9.110608069642255e-02 9.106390998608170e-02 - 9.102155802996120e-02 9.097902503011562e-02 9.093631123402490e-02 9.089341690732793e-02 9.085034224655422e-02 - 9.080708743846595e-02 9.076365269164367e-02 9.072003828369785e-02 9.067624443485320e-02 9.063227129485288e-02 - 9.058811915193726e-02 9.054378827004000e-02 9.049927881221763e-02 9.045459103770109e-02 9.040972520178260e-02 - 9.036468147234690e-02 9.031946007844127e-02 9.027406127956829e-02 9.022848531585773e-02 9.018273243214560e-02 - 9.013680287341128e-02 9.009069686920407e-02 9.004441462623869e-02 8.999795635152021e-02 8.995132231203949e-02 - 8.990451276610797e-02 8.985752795281814e-02 8.981036812557305e-02 8.976303351703613e-02 8.971552434037033e-02 - 8.966784087291869e-02 8.961998334831080e-02 8.957195192338249e-02 8.952374693198487e-02 8.947536869631613e-02 - 8.942681737354224e-02 8.937809319632291e-02 8.932919644498671e-02 8.928012738635183e-02 8.923088623240803e-02 - 8.918147319450437e-02 8.913188858291199e-02 8.908213269254797e-02 8.903220577223506e-02 8.898210800726358e-02 - 8.893183965769864e-02 8.888140104180198e-02 8.883079233855783e-02 8.878001380541380e-02 8.872906581842580e-02 - 8.867794859494142e-02 8.862666233412557e-02 8.857520730323154e-02 8.852358381153494e-02 8.847179212845252e-02 - 8.841983243253916e-02 8.836770502123131e-02 8.831541022882371e-02 8.826294830990469e-02 8.821031949641793e-02 - 8.815752403748606e-02 8.810456224863354e-02 8.805143437639511e-02 8.799814063336710e-02 8.794468134879541e-02 - 8.789105684257616e-02 8.783726738270531e-02 8.778331316928159e-02 8.772919447874153e-02 8.767491167446911e-02 - 8.762046495069514e-02 8.756585454037039e-02 8.751108081839833e-02 8.745614408581825e-02 8.740104459021790e-02 - 8.734578256007368e-02 8.729035830815834e-02 8.723477214343743e-02 8.717902426868683e-02 8.712311501918556e-02 - 8.706704476846663e-02 8.701081371877695e-02 8.695442211628683e-02 8.689787027644420e-02 8.684115853767592e-02 - 8.678428714435096e-02 8.672725629439892e-02 8.667006642064547e-02 8.661271785522098e-02 8.655521075244504e-02 - 8.649754543067346e-02 8.643972223965939e-02 8.638174147222141e-02 8.632360334916610e-02 8.626530814542391e-02 - 8.620685627786050e-02 8.614824804295058e-02 8.608948367410735e-02 8.603056343813603e-02 8.597148768708160e-02 - 8.591225676580187e-02 8.585287085352321e-02 8.579333027004854e-02 8.573363543090719e-02 8.567378659419787e-02 - 8.561378404241062e-02 8.555362810687137e-02 8.549331906471129e-02 8.543285719635127e-02 8.537224281446841e-02 - 8.531147627953188e-02 8.525055791649624e-02 8.518948798167383e-02 8.512826679756995e-02 8.506689470133286e-02 - 8.500537199311337e-02 8.494369892596923e-02 8.488187579804041e-02 8.481990305210670e-02 8.475778099074194e-02 - 8.469550984763315e-02 8.463308996695838e-02 8.457052168539449e-02 8.450780530789033e-02 8.444494110975011e-02 - 8.438192942971584e-02 8.431877065438623e-02 8.425546507059704e-02 8.419201297696736e-02 8.412841471805475e-02 - 8.406467061549007e-02 8.400078097306259e-02 8.393674609180030e-02 8.387256634619757e-02 8.380824209666674e-02 - 8.374377362095807e-02 8.367916122870038e-02 8.361440526888680e-02 8.354950611900661e-02 8.348446403538942e-02 - 8.341927927704872e-02 8.335395233905314e-02 8.328848356223681e-02 8.322287316371958e-02 8.315712149574238e-02 - 8.309122893699929e-02 8.302519583647612e-02 8.295902243510637e-02 8.289270907781640e-02 8.282625623697057e-02 - 8.275966417678003e-02 8.269293318851907e-02 8.262606370095599e-02 8.255905601211083e-02 8.249191039312886e-02 - 8.242462718945633e-02 8.235720681988298e-02 8.228964967784431e-02 8.222195602541869e-02 8.215412621284769e-02 - 8.208616062445039e-02 8.201805954142698e-02 8.194982329150195e-02 8.188145225476894e-02 8.181294680713293e-02 - 8.174430731452863e-02 8.167553412282050e-02 8.160662752890076e-02 8.153758789030935e-02 8.146841562526554e-02 - 8.139911098330359e-02 8.132967428676124e-02 8.126010603531450e-02 8.119040656216225e-02 8.112057615694021e-02 - 8.105061517994502e-02 8.098052402265073e-02 8.091030303880128e-02 8.083995248093376e-02 8.076947276447492e-02 - 8.069886435754116e-02 8.062812754457355e-02 8.055726265736828e-02 8.048627008799529e-02 8.041515020636995e-02 - 8.034390332540668e-02 8.027252974489747e-02 8.020102993492553e-02 8.012940431195667e-02 8.005765317555476e-02 - 7.998577686939379e-02 7.991377577220368e-02 7.984165027334414e-02 7.976940065907111e-02 7.969702727793032e-02 - 7.962453065567111e-02 7.955191112254574e-02 7.947916895239987e-02 7.940630455590227e-02 7.933331833212637e-02 - 7.926021063894960e-02 7.918698178217287e-02 7.911363216326053e-02 7.904016223823181e-02 7.896657235187955e-02 - 7.889286283938438e-02 7.881903406306398e-02 7.874508643443230e-02 7.867102031060058e-02 7.859683599526633e-02 - 7.852253395767629e-02 7.844811463098400e-02 7.837357831424305e-02 7.829892537205134e-02 7.822415619643758e-02 - 7.814927116484589e-02 7.807427062910767e-02 7.799915496813195e-02 7.792392464520610e-02 7.784858004657273e-02 - 7.777312150359181e-02 7.769754936428309e-02 7.762186403791040e-02 7.754606594385612e-02 7.747015537442642e-02 - 7.739413273994507e-02 7.731799855521804e-02 7.724175314852555e-02 7.716539684747571e-02 7.708893004657069e-02 - 7.701235315053030e-02 7.693566653742440e-02 7.685887055661017e-02 7.678196565918903e-02 7.670495227727288e-02 - 7.662783073280909e-02 7.655060142689749e-02 7.647326478202995e-02 7.639582115595660e-02 7.631827089499127e-02 - 7.624061438211467e-02 7.616285210329320e-02 7.608498447266238e-02 7.600701183814436e-02 7.592893457493513e-02 - 7.585075308733022e-02 7.577246778116596e-02 7.569407897223836e-02 7.561558707997214e-02 7.553699264667676e-02 - 7.545829602219666e-02 7.537949752159374e-02 7.530059752746436e-02 7.522159652110559e-02 7.514249491290788e-02 - 7.506329293711217e-02 7.498399108869409e-02 7.490458989985715e-02 7.482508965268882e-02 7.474549074308040e-02 - 7.466579363230305e-02 7.458599868473173e-02 7.450610623924510e-02 7.442611667561436e-02 7.434603053570255e-02 - 7.426584824442337e-02 7.418557009969678e-02 7.410519651333995e-02 7.402472793153594e-02 7.394416477978479e-02 - 7.386350736456949e-02 7.378275607823381e-02 7.370191147772952e-02 7.362097394239986e-02 7.353994380500382e-02 - 7.345882147239775e-02 7.337760740248925e-02 7.329630201371148e-02 7.321490559729334e-02 7.313341861868546e-02 - 7.305184160923943e-02 7.297017492620234e-02 7.288841893034562e-02 7.280657402242413e-02 7.272464064227188e-02 - 7.264261917439505e-02 7.256050997585588e-02 7.247831356170273e-02 7.239603038649280e-02 7.231366079163171e-02 - 7.223120520116612e-02 7.214866404160214e-02 7.206603769517569e-02 7.198332653777370e-02 7.190053098792457e-02 - 7.181765153838118e-02 7.173468863077177e-02 7.165164265282598e-02 7.156851395212357e-02 7.148530298289761e-02 - 7.140201021117390e-02 7.131863593482980e-02 7.123518058493326e-02 7.115164469180060e-02 7.106802866653637e-02 - 7.098433289103630e-02 7.090055775733806e-02 7.081670370962735e-02 7.073277114629017e-02 7.064876042084919e-02 - 7.056467204467058e-02 7.048050649359339e-02 7.039626411522021e-02 7.031194531783586e-02 7.022755055007633e-02 - 7.014308026270048e-02 7.005853477507426e-02 6.997391445865883e-02 6.988921994223606e-02 6.980445161374127e-02 - 6.971960976161336e-02 6.963469490630880e-02 6.954970749457975e-02 6.946464787470261e-02 6.937951638488904e-02 - 6.929431352344900e-02 6.920903988440608e-02 6.912369577614699e-02 6.903828154824053e-02 6.895279768813133e-02 - 6.886724462309453e-02 6.878162274040467e-02 6.869593242264821e-02 6.861017418575431e-02 6.852434851303352e-02 - 6.843845573229547e-02 6.835249626715924e-02 6.826647058722328e-02 6.818037912112360e-02 6.809422221022603e-02 - 6.800800023353686e-02 6.792171381432285e-02 6.783536337902803e-02 6.774894920974223e-02 6.766247176656806e-02 - 6.757593152448671e-02 6.748932891036163e-02 6.740266425451470e-02 6.731593799992638e-02 6.722915072040272e-02 - 6.714230278026269e-02 6.705539454984789e-02 6.696842651283096e-02 6.688139909018249e-02 6.679431266253504e-02 - 6.670716761081900e-02 6.661996446504156e-02 6.653270374249923e-02 6.644538575792285e-02 6.635801090742725e-02 - 6.627057965598744e-02 6.618309245387675e-02 6.609554968705872e-02 6.600795173819872e-02 6.592029914958422e-02 - 6.583259238307172e-02 6.574483179767340e-02 6.565701780669353e-02 6.556915085921187e-02 6.548123140723705e-02 - 6.539325979064996e-02 6.530523643565112e-02 6.521716192687264e-02 6.512903665438342e-02 6.504086097557776e-02 - 6.495263535156262e-02 6.486436022769713e-02 6.477603601048113e-02 6.468766306269763e-02 6.459924187637454e-02 - 6.451077298036002e-02 6.442225675573160e-02 6.433369358016772e-02 6.424508387319842e-02 6.415642813133042e-02 - 6.406772674084167e-02 6.397898002556264e-02 6.389018858464109e-02 6.380135290132970e-02 6.371247325592760e-02 - 6.362355010153516e-02 6.353458392277617e-02 6.344557514446422e-02 6.335652411846264e-02 6.326743126079815e-02 - 6.317829713990436e-02 6.308912216326193e-02 6.299990668862973e-02 6.291065117630994e-02 6.282135608306753e-02 - 6.273202182393535e-02 6.264264873955985e-02 6.255323731562341e-02 6.246378810230178e-02 6.237430143094801e-02 - 6.228477769978175e-02 6.219521740601344e-02 6.210562097707054e-02 6.201598879095212e-02 6.192632121693314e-02 - 6.183661876812600e-02 6.174688193928092e-02 6.165711112558074e-02 6.156730673780070e-02 6.147746920022401e-02 - 6.138759893800432e-02 6.129769633241683e-02 6.120776180293847e-02 6.111779589683188e-02 6.102779903735479e-02 - 6.093777158500626e-02 6.084771398591046e-02 6.075762667844817e-02 6.066751007308262e-02 6.057736455111417e-02 - 6.048719057054321e-02 6.039698864588414e-02 6.030675917961215e-02 6.021650256672047e-02 6.012621923377075e-02 - 6.003590961818356e-02 5.994557411659043e-02 5.985521308639186e-02 5.976482706463886e-02 5.967441656528669e-02 - 5.958398192281734e-02 5.949352353003544e-02 5.940304183449088e-02 5.931253730252380e-02 5.922201027916447e-02 - 5.913146112197507e-02 5.904089044032181e-02 5.895029868043596e-02 5.885968615096351e-02 5.876905326755812e-02 - 5.867840050492581e-02 5.858772833116550e-02 5.849703703991720e-02 5.840632705235495e-02 5.831559896255584e-02 - 5.822485314806121e-02 5.813408997000494e-02 5.804330987759122e-02 5.795251328764216e-02 5.786170059865808e-02 - 5.777087221384987e-02 5.768002859772193e-02 5.758917021647553e-02 5.749829746896256e-02 5.740741077575853e-02 - 5.731651056875526e-02 5.722559725171274e-02 5.713467118430270e-02 5.704373274635539e-02 5.695278249332581e-02 - 5.686182088614487e-02 5.677084826809927e-02 5.667986504336005e-02 5.658887165217444e-02 5.649786853613976e-02 - 5.640685602792318e-02 5.631583453941855e-02 5.622480462822738e-02 5.613376666437993e-02 5.604272100502515e-02 - 5.595166813210956e-02 5.586060845174765e-02 5.576954232437998e-02 5.567847012652845e-02 5.558739236715193e-02 - 5.549630955542323e-02 5.540522197136583e-02 5.531413002536285e-02 5.522303422299683e-02 5.513193492275553e-02 - 5.504083247717721e-02 5.494972729209355e-02 5.485861988753332e-02 5.476751071228679e-02 5.467640010379995e-02 - 5.458528846418693e-02 5.449417622493567e-02 5.440306381105370e-02 5.431195155656662e-02 5.422083985771245e-02 - 5.412972927459819e-02 5.403862019627870e-02 5.394751295390937e-02 5.385640797531270e-02 5.376530569364821e-02 - 5.367420650537214e-02 5.358311072889269e-02 5.349201882499156e-02 5.340093132499041e-02 5.330984856991542e-02 - 5.321877091980749e-02 5.312769879767464e-02 5.303663263591166e-02 5.294557280318667e-02 5.285451962473617e-02 - 5.276347361952855e-02 5.267243525955664e-02 5.258140485845194e-02 5.249038280640431e-02 5.239936952998326e-02 - 5.230836544276557e-02 5.221737088032564e-02 5.212638621732711e-02 5.203541199430900e-02 5.194444860919033e-02 - 5.185349638284296e-02 5.176255572471577e-02 5.167162705674897e-02 5.158071077330502e-02 5.148980718747074e-02 - 5.139891673261619e-02 5.130803993485430e-02 5.121717713356427e-02 5.112632867301793e-02 5.103549496777923e-02 - 5.094467643725986e-02 5.085387344650644e-02 5.076308630673339e-02 5.067231551219451e-02 5.058156153920812e-02 - 5.049082469322039e-02 5.040010534612100e-02 5.030940391348503e-02 5.021872080090227e-02 5.012805633824483e-02 - 5.003741087422633e-02 4.994678493647212e-02 4.985617892926745e-02 4.976559315779018e-02 4.967502801470126e-02 - 4.958448390876292e-02 4.949396122643934e-02 4.940346027599988e-02 4.931298146262254e-02 4.922252530167843e-02 - 4.913209213539834e-02 4.904168229174269e-02 4.895129616994274e-02 4.886093417404704e-02 4.877059666413559e-02 - 4.868028394034647e-02 4.858999646754281e-02 4.849973472130898e-02 4.840949900241633e-02 4.831928966152828e-02 - 4.822910709871525e-02 4.813895171199074e-02 4.804882382564480e-02 4.795872376124456e-02 4.786865202942978e-02 - 4.777860903855367e-02 4.768859507592742e-02 4.759861051627762e-02 4.750865575639699e-02 4.741873117406014e-02 - 4.732883706721817e-02 4.723897381137243e-02 4.714914191200375e-02 4.705934171189571e-02 4.696957351961628e-02 - 4.687983771740974e-02 4.679013469431771e-02 4.670046480338604e-02 4.661082833156779e-02 4.652122571187634e-02 - 4.643165741520618e-02 4.634212373882778e-02 4.625262501422293e-02 4.616316162482947e-02 4.607373395212459e-02 - 4.598434231610999e-02 4.589498701904484e-02 4.580566854223844e-02 4.571638729424802e-02 4.562714355109129e-02 - 4.553793766452621e-02 4.544877001582995e-02 4.535964097502848e-02 4.527055082898004e-02 4.518149992236756e-02 - 4.509248874970542e-02 4.500351765014129e-02 4.491458690878355e-02 4.482569689376779e-02 4.473684797939540e-02 - 4.464804050747698e-02 4.455927474828068e-02 4.447055110499822e-02 4.438187004531898e-02 4.429323185876936e-02 - 4.420463685202721e-02 4.411608538888854e-02 4.402757783926076e-02 4.393911451733543e-02 4.385069570127949e-02 - 4.376232184208732e-02 4.367399334643604e-02 4.358571047769912e-02 4.349747356709084e-02 4.340928298020802e-02 - 4.332113907381294e-02 4.323304212320113e-02 4.314499244129432e-02 4.305699050668390e-02 4.296903665620930e-02 - 4.288113115167341e-02 4.279327434447749e-02 4.270546659199307e-02 4.261770822231841e-02 4.252999949469098e-02 - 4.244234077853745e-02 4.235473252680039e-02 4.226717502474875e-02 4.217966855846760e-02 4.209221347273914e-02 - 4.200481011967518e-02 4.191745880279663e-02 4.183015977695443e-02 4.174291346429643e-02 4.165572027077732e-02 - 4.156858044734360e-02 4.148149429654668e-02 4.139446216241891e-02 4.130748439363172e-02 4.122056125606220e-02 - 4.113369302794675e-02 4.104688016346336e-02 4.096012300095512e-02 4.087342178434451e-02 4.078677683583759e-02 - 4.070018849668031e-02 4.061365708919899e-02 4.052718285106741e-02 4.044076611819490e-02 4.035440733833207e-02 - 4.026810678092279e-02 4.018186470341873e-02 4.009568143909095e-02 4.000955732298062e-02 3.992349264534106e-02 - 3.983748763759326e-02 3.975154269055037e-02 3.966565820546299e-02 3.957983441649049e-02 3.949407160357907e-02 - 3.940837009289332e-02 3.932273021031552e-02 3.923715221270428e-02 3.915163635394041e-02 3.906618306202975e-02 - 3.898079266950179e-02 3.889546539672872e-02 3.881020154253283e-02 3.872500143016262e-02 3.863986536923758e-02 - 3.855479358615301e-02 3.846978637959592e-02 3.838484417257106e-02 3.829996723484980e-02 3.821515580420295e-02 - 3.813041018714970e-02 3.804573069687705e-02 3.796111761198420e-02 3.787657114752344e-02 3.779209165765486e-02 - 3.770767953120019e-02 3.762333499040284e-02 3.753905829251161e-02 3.745484974542636e-02 3.737070965331050e-02 - 3.728663825939783e-02 3.720263578933122e-02 3.711870264209954e-02 3.703483914671073e-02 3.695104550519348e-02 - 3.686732199057993e-02 3.678366890490292e-02 3.670008654113079e-02 3.661657511036890e-02 3.653313487804630e-02 - 3.644976625150438e-02 3.636646948823320e-02 3.628324479604935e-02 3.620009246605282e-02 3.611701279349350e-02 - 3.603400604041686e-02 3.595107239910939e-02 3.586821219020735e-02 3.578542579441001e-02 3.570271341631447e-02 - 3.562007528519529e-02 3.553751169069794e-02 3.545502291550906e-02 3.537260919186706e-02 3.529027072401183e-02 - 3.520800787214007e-02 3.512582095428173e-02 3.504371015751370e-02 3.496167573051010e-02 3.487971795476078e-02 - 3.479783710598274e-02 3.471603337811516e-02 3.463430699965583e-02 3.455265835796009e-02 3.447108770848941e-02 - 3.438959523450754e-02 3.430818119554624e-02 3.422684586511945e-02 3.414558949343227e-02 3.406441225419257e-02 - 3.398331443038755e-02 3.390229638782512e-02 3.382135832287533e-02 3.374050043789544e-02 3.365972299780525e-02 - 3.357902626321113e-02 3.349841045119794e-02 3.341787574130316e-02 3.333742246166845e-02 3.325705092272905e-02 - 3.317676129391954e-02 3.309655379649919e-02 3.301642868788483e-02 3.293638622159571e-02 3.285642658240021e-02 - 3.277654996949401e-02 3.269675673538998e-02 3.261704712715797e-02 3.253742130855802e-02 3.245787951722746e-02 - 3.237842200259459e-02 3.229904899349424e-02 3.221976065258773e-02 3.214055722659278e-02 3.206143905506719e-02 - 3.198240632628265e-02 3.190345921865954e-02 3.182459797365254e-02 3.174582282841434e-02 3.166713398447476e-02 - 3.158853160183031e-02 3.151001597036992e-02 3.143158738592136e-02 3.135324600516137e-02 3.127499202279022e-02 - 3.119682567104914e-02 3.111874718036912e-02 3.104075672462514e-02 3.096285447683152e-02 3.088504075536903e-02 - 3.080731579690068e-02 3.072967974437236e-02 3.065213281019982e-02 3.057467522135681e-02 3.049730718652442e-02 - 3.042002885157935e-02 3.034284042889533e-02 3.026574223701538e-02 3.018873445294931e-02 3.011181722724549e-02 - 3.003499077734359e-02 2.995825532248887e-02 2.988161104857855e-02 2.980505808548691e-02 2.972859668986686e-02 - 2.965222714891759e-02 2.957594959806504e-02 2.949976420500935e-02 2.942367118266701e-02 2.934767073798247e-02 - 2.927176302885600e-02 2.919594820074298e-02 2.912022654108078e-02 2.904459827654108e-02 2.896906352751058e-02 - 2.889362247668933e-02 2.881827533028623e-02 2.874302228403363e-02 2.866786346167200e-02 2.859279903706265e-02 - 2.851782931145582e-02 2.844295445253672e-02 2.836817458182308e-02 2.829348988995876e-02 2.821890057629359e-02 - 2.814440681221589e-02 2.807000870175516e-02 2.799570646465742e-02 2.792150037589211e-02 2.784739055623231e-02 - 2.777337714638600e-02 2.769946033688953e-02 2.762564030841585e-02 2.755191720229608e-02 2.747829114116882e-02 - 2.740476237631904e-02 2.733133112357609e-02 2.725799748998750e-02 2.718476162641247e-02 2.711162371095654e-02 - 2.703858392279279e-02 2.696564237390275e-02 2.689279920452167e-02 2.682005468428394e-02 2.674740897239565e-02 - 2.667486216835663e-02 2.660241443488607e-02 2.653006594727732e-02 2.645781686062815e-02 2.638566726160998e-02 - 2.631361733435826e-02 2.624166733570949e-02 2.616981737012440e-02 2.609806754771221e-02 2.602641803533937e-02 - 2.595486900051258e-02 2.588342056814261e-02 2.581207282360541e-02 2.574082599292273e-02 2.566968028470076e-02 - 2.559863577456860e-02 2.552769259041796e-02 2.545685089381796e-02 2.538611083889939e-02 2.531547252137675e-02 - 2.524493605061727e-02 2.517450166747065e-02 2.510416952086314e-02 2.503393968681819e-02 2.496381230163825e-02 - 2.489378751859868e-02 2.482386547683629e-02 2.475404624292582e-02 2.468432996264991e-02 2.461471687229032e-02 - 2.454520706873932e-02 2.447580063686782e-02 2.440649771598710e-02 2.433729844997764e-02 2.426820294893469e-02 - 2.419921127712116e-02 2.413032362216684e-02 2.406154017790910e-02 2.399286100816565e-02 2.392428621229386e-02 - 2.385581592554643e-02 2.378745028409909e-02 2.371918936700126e-02 2.365103325041379e-02 2.358298215018098e-02 - 2.351503620457756e-02 2.344719546326070e-02 2.337946004127276e-02 2.331183006962702e-02 2.324430566419196e-02 - 2.317688687789637e-02 2.310957382435168e-02 2.304236671579298e-02 2.297526563441205e-02 2.290827063843882e-02 - 2.284138184722980e-02 2.277459938171355e-02 2.270792333404544e-02 2.264135374860772e-02 2.257489077729924e-02 - 2.250853459738779e-02 2.244228525780410e-02 2.237614283279474e-02 2.231010743473913e-02 2.224417917668724e-02 - 2.217835812285958e-02 2.211264432248330e-02 2.204703795931322e-02 2.198153916317220e-02 2.191614796666107e-02 - 2.185086445220271e-02 2.178568872592581e-02 2.172062089111306e-02 2.165566098457172e-02 2.159080908357505e-02 - 2.152606537366001e-02 2.146142993110024e-02 2.139690279242156e-02 2.133248404619538e-02 2.126817379406035e-02 - 2.120397211607284e-02 2.113987903003668e-02 2.107589465469217e-02 2.101201915594272e-02 2.094825256288664e-02 - 2.088459492231405e-02 2.082104632696408e-02 2.075760686991806e-02 2.069427660166107e-02 2.063105554609518e-02 - 2.056794384972622e-02 2.050494162894281e-02 2.044204890243054e-02 2.037926573000831e-02 2.031659219454509e-02 - 2.025402837653619e-02 2.019157429898307e-02 2.012923000978476e-02 2.006699566765361e-02 2.000487133731908e-02 - 1.994285703240835e-02 1.988095281849638e-02 1.981915877663429e-02 1.975747497137283e-02 1.969590139839621e-02 - 1.963443814246610e-02 1.957308535571834e-02 1.951184305296579e-02 1.945071125524195e-02 1.938969003470093e-02 - 1.932877945979973e-02 1.926797956444602e-02 1.920729035294688e-02 1.914671194302782e-02 1.908624443873623e-02 - 1.902588783798898e-02 1.896564217312377e-02 1.890550750534374e-02 1.884548390173623e-02 1.878557136933607e-02 - 1.872576992282937e-02 1.866607969751645e-02 1.860650074902563e-02 1.854703306920867e-02 1.848767670108510e-02 - 1.842843170242723e-02 1.836929811895166e-02 1.831027593341436e-02 1.825136519709141e-02 1.819256603897189e-02 - 1.813387846842225e-02 1.807530248298604e-02 1.801683812530333e-02 1.795848544988909e-02 1.790024447932676e-02 - 1.784211518704799e-02 1.778409766075985e-02 1.772619199567190e-02 1.766839817113224e-02 1.761071619932593e-02 - 1.755314612276550e-02 1.749568797940397e-02 1.743834176385679e-02 1.738110747126647e-02 1.732398520795971e-02 - 1.726697501687009e-02 1.721007686976607e-02 1.715329079150987e-02 1.709661681774517e-02 1.704005496995066e-02 - 1.698360522175755e-02 1.692726759648597e-02 1.687104219632033e-02 1.681492902190890e-02 1.675892805218375e-02 - 1.670303930866012e-02 1.664726282100333e-02 1.659159859573434e-02 1.653604659349284e-02 1.648060687061485e-02 - 1.642527950537791e-02 1.637006446137386e-02 1.631496172845883e-02 1.625997133117372e-02 1.620509328829045e-02 - 1.615032758053278e-02 1.609567417924041e-02 1.604113316306734e-02 1.598670456411958e-02 1.593238833576510e-02 - 1.587818448257840e-02 1.582409302120838e-02 1.577011395254391e-02 1.571624723647299e-02 1.566249287063067e-02 - 1.560885093721684e-02 1.555532142372995e-02 1.550190428691725e-02 1.544859953345741e-02 1.539540716895692e-02 - 1.534232718045593e-02 1.528935952298772e-02 1.523650422043375e-02 1.518376132655854e-02 1.513113080051426e-02 - 1.507861261080395e-02 1.502620675643192e-02 1.497391324399307e-02 1.492173204313831e-02 1.486966309840608e-02 - 1.481770646058926e-02 1.476586215324725e-02 1.471413011485714e-02 1.466251032223325e-02 1.461100277337298e-02 - 1.455960746411957e-02 1.450832433725036e-02 1.445715335761371e-02 1.440609458945226e-02 1.435514801148310e-02 - 1.430431355790390e-02 1.425359121341204e-02 1.420298097105418e-02 1.415248280845771e-02 1.410209665546564e-02 - 1.405182250942155e-02 1.400166041623447e-02 1.395161031395394e-02 1.390167215017196e-02 1.385184591619880e-02 - 1.380213159317199e-02 1.375252913341631e-02 1.370303846818604e-02 1.365365962256361e-02 1.360439260851619e-02 - 1.355523734898775e-02 1.350619380184460e-02 1.345726194685572e-02 1.340844175819677e-02 1.335973317080697e-02 - 1.331113613029375e-02 1.326265067233158e-02 1.321427676765317e-02 1.316601433678336e-02 1.311786334248669e-02 - 1.306982375879771e-02 1.302189555021592e-02 1.297407863461756e-02 1.292637298076667e-02 1.287877861455418e-02 - 1.283129547339001e-02 1.278392348592105e-02 1.273666261347862e-02 1.268951282495219e-02 1.264247406704279e-02 - 1.259554625321822e-02 1.254872937642621e-02 1.250202343522368e-02 1.245542834900525e-02 1.240894405313941e-02 - 1.236257050462080e-02 1.231630767029411e-02 1.227015547343941e-02 1.222411383176151e-02 1.217818275998809e-02 - 1.213236222220244e-02 1.208665212384520e-02 1.204105241018576e-02 1.199556303854240e-02 1.195018395838791e-02 - 1.190491507365890e-02 1.185975632952753e-02 1.181470773836339e-02 1.176976922480089e-02 1.172494069835479e-02 - 1.168022211004454e-02 1.163561340968965e-02 1.159111452823667e-02 1.154672536811994e-02 1.150244589927961e-02 - 1.145827610670764e-02 1.141421589534856e-02 1.137026518661645e-02 1.132642392502224e-02 1.128269205281729e-02 - 1.123906948383837e-02 1.119555612518262e-02 1.115215196588227e-02 1.110885695891592e-02 1.106567099667937e-02 - 1.102259400831050e-02 1.097962593601935e-02 1.093676671505125e-02 1.089401623812122e-02 1.085137442757511e-02 - 1.080884127911701e-02 1.076641671182367e-02 1.072410061923310e-02 1.068189293399554e-02 1.063979359231152e-02 - 1.059780251428707e-02 1.055591958418482e-02 1.051414475108346e-02 1.047247799305691e-02 1.043091920126454e-02 - 1.038946827795377e-02 1.034812515386981e-02 1.030688975996647e-02 1.026576200007446e-02 1.022474176231751e-02 - 1.018382901647819e-02 1.014302370834395e-02 1.010232571551464e-02 1.006173495028295e-02 1.002125134058496e-02 - 9.980874808217161e-03 9.940605238090998e-03 9.900442533803457e-03 9.860386673211879e-03 9.820437566105797e-03 - 9.780595089730604e-03 9.740859166502601e-03 9.701229717604148e-03 9.661706648486619e-03 9.622289837555094e-03 - 9.582979211676392e-03 9.543774731762645e-03 9.504676285752028e-03 9.465683761437204e-03 9.426797070527869e-03 - 9.388016130061547e-03 9.349340837763126e-03 9.310771071700266e-03 9.272306774287777e-03 9.233947879847340e-03 - 9.195694263233465e-03 9.157545820041815e-03 9.119502462398593e-03 9.081564104605406e-03 9.043730620594144e-03 - 9.006001891771507e-03 8.968377884117109e-03 8.930858503326412e-03 8.893443610144467e-03 8.856133108771761e-03 - 8.818926910576046e-03 8.781824915337199e-03 8.744826984807866e-03 8.707933026764444e-03 8.671142997995955e-03 - 8.634456771198624e-03 8.597874217863410e-03 8.561395247729468e-03 8.525019762147885e-03 8.488747643810387e-03 - 8.452578758551675e-03 8.416513035074836e-03 8.380550402064440e-03 8.344690718755845e-03 8.308933866062409e-03 - 8.273279745485652e-03 8.237728259206089e-03 8.202279277607399e-03 8.166932668725525e-03 8.131688373197346e-03 - 8.096546291813443e-03 8.061506280849479e-03 8.026568229604077e-03 7.991732033790425e-03 7.956997581179438e-03 - 7.922364735477982e-03 7.887833385768220e-03 7.853403460644042e-03 7.819074838170454e-03 7.784847385209607e-03 - 7.750720988388416e-03 7.716695538073770e-03 7.682770912288046e-03 7.648946965667346e-03 7.615223607644973e-03 - 7.581600758648286e-03 7.548078272068747e-03 7.514656018308716e-03 7.481333888256649e-03 7.448111767084748e-03 - 7.414989518558892e-03 7.381967002509678e-03 7.349044141005179e-03 7.316220829119200e-03 7.283496916229069e-03 - 7.250872276568530e-03 7.218346796125786e-03 7.185920358959778e-03 7.153592811909379e-03 7.121364026156801e-03 - 7.089233934032213e-03 7.057202401526107e-03 7.025269274784423e-03 6.993434437254338e-03 6.961697770726437e-03 - 6.930059144137623e-03 6.898518406074085e-03 6.867075445461445e-03 6.835730169890301e-03 6.804482436531050e-03 - 6.773332103630715e-03 6.742279042830752e-03 6.711323134446215e-03 6.680464239400761e-03 6.649702204950062e-03 - 6.619036937093537e-03 6.588468325547939e-03 6.557996212108587e-03 6.527620458965777e-03 6.497340941897300e-03 - 6.467157538628341e-03 6.437070090473932e-03 6.407078453159759e-03 6.377182548096138e-03 6.347382238649846e-03 - 6.317677359750170e-03 6.288067782822399e-03 6.258553381641384e-03 6.229134019133821e-03 6.199809533909972e-03 - 6.170579803332374e-03 6.141444731866248e-03 6.112404164377095e-03 6.083457948651627e-03 6.054605954063168e-03 - 6.025848047899531e-03 5.997184082520315e-03 5.968613898555075e-03 5.940137388272029e-03 5.911754435973001e-03 - 5.883464876798197e-03 5.855268565478542e-03 5.827165369238958e-03 5.799155152943781e-03 5.771237757858197e-03 - 5.743413031370796e-03 5.715680873423079e-03 5.688041146137241e-03 5.660493683352233e-03 5.633038344713090e-03 - 5.605674994693767e-03 5.578403490874967e-03 5.551223666073857e-03 5.524135383482108e-03 5.497138538622371e-03 - 5.470232973711985e-03 5.443418527865922e-03 5.416695061766649e-03 5.390062436684385e-03 5.363520500801443e-03 - 5.337069085950208e-03 5.310708070645691e-03 5.284437334686721e-03 5.258256709167105e-03 5.232166039984466e-03 - 5.206165186351173e-03 5.180254006079314e-03 5.154432337116667e-03 5.128700017566677e-03 5.103056934758595e-03 - 5.077502948400768e-03 5.052037887552509e-03 5.026661602896529e-03 5.001373950974750e-03 4.976174783805283e-03 - 4.951063931174483e-03 4.926041244835856e-03 4.901106610871052e-03 4.876259869861805e-03 4.851500854152867e-03 - 4.826829416485723e-03 4.802245411238555e-03 4.777748682676776e-03 4.753339057595283e-03 4.729016402174706e-03 - 4.704780591018902e-03 4.680631452386119e-03 4.656568824906738e-03 4.632592561043116e-03 4.608702512089780e-03 - 4.584898512841469e-03 4.561180394112987e-03 4.537548032865621e-03 4.514001286180084e-03 4.490539978046344e-03 - 4.467163952568486e-03 4.443873060291688e-03 4.420667147623122e-03 4.397546041481102e-03 4.374509584352294e-03 - 4.351557654555007e-03 4.328690090868674e-03 4.305906719484884e-03 4.283207387010587e-03 4.260591942258349e-03 - 4.238060226010617e-03 4.215612060889534e-03 4.193247302342208e-03 4.170965820265097e-03 4.148767441443334e-03 - 4.126651998168965e-03 4.104619336614093e-03 4.082669303050944e-03 4.060801730082235e-03 4.039016442831475e-03 - 4.017313308452854e-03 3.995692181792875e-03 3.974152883344686e-03 3.952695251163741e-03 3.931319130911208e-03 - 3.910024364917125e-03 3.888810777810686e-03 3.867678204037116e-03 3.846626514691173e-03 3.825655547709963e-03 - 3.804765124734014e-03 3.783955087456414e-03 3.763225279741349e-03 3.742575538839424e-03 3.722005684569956e-03 - 3.701515563829318e-03 3.681105042529648e-03 3.660773945892437e-03 3.640522100973796e-03 3.620349349516141e-03 - 3.600255533338096e-03 3.580240483202974e-03 3.560304020332013e-03 3.540446002992503e-03 3.520666284206718e-03 - 3.500964682823155e-03 3.481341031384374e-03 3.461795171007476e-03 3.442326941040924e-03 3.422936165061433e-03 - 3.403622671201535e-03 3.384386323473485e-03 3.365226959961049e-03 3.346144399498565e-03 3.327138478378434e-03 - 3.308209036536853e-03 3.289355909461925e-03 3.270578915351533e-03 3.251877893639187e-03 3.233252706195778e-03 - 3.214703178029928e-03 3.196229132118811e-03 3.177830406368320e-03 3.159506839403438e-03 3.141258260810600e-03 - 3.123084488811596e-03 3.104985374197366e-03 3.086960768611876e-03 3.069010490077185e-03 3.051134366997480e-03 - 3.033332237019262e-03 3.015603936903380e-03 2.997949290147841e-03 2.980368120588831e-03 2.962860285290425e-03 - 2.945425622240710e-03 2.928063948810786e-03 2.910775098113858e-03 2.893558906982335e-03 2.876415208617919e-03 - 2.859343821344898e-03 2.842344578930633e-03 2.825417338731532e-03 2.808561926446875e-03 2.791778162629514e-03 - 2.775065882662152e-03 2.758424922052246e-03 2.741855109318431e-03 2.725356262118107e-03 2.708928224810950e-03 - 2.692570847204586e-03 2.676283947708203e-03 2.660067352018658e-03 2.643920895408666e-03 2.627844412630983e-03 - 2.611837727127577e-03 2.595900659591014e-03 2.580033062057212e-03 2.564234773200918e-03 2.548505609580814e-03 - 2.532845401329118e-03 2.517253983314282e-03 2.501731188088862e-03 2.486276834298587e-03 2.470890751027053e-03 - 2.455572791828030e-03 2.440322784214469e-03 2.425140547489158e-03 2.410025914370114e-03 2.394978718743150e-03 - 2.379998789312335e-03 2.365085943631231e-03 2.350240020749269e-03 2.335460868942443e-03 2.320748308349550e-03 - 2.306102163022297e-03 2.291522266200105e-03 2.277008450857895e-03 2.262560541519312e-03 2.248178358404482e-03 - 2.233861748393963e-03 2.219610550590767e-03 2.205424582540762e-03 2.191303672653564e-03 2.177247654150935e-03 - 2.163256358437406e-03 2.149329606085116e-03 2.135467224025938e-03 2.121669062135428e-03 2.107934949596006e-03 - 2.094264705479671e-03 2.080658161247730e-03 2.067115150052171e-03 2.053635501035216e-03 2.040219032033609e-03 - 2.026865578574763e-03 2.013574988607888e-03 2.000347084189316e-03 1.987181688126059e-03 1.974078632294973e-03 - 1.961037750159034e-03 1.948058867783843e-03 1.935141804192390e-03 1.922286403096425e-03 1.909492504980594e-03 - 1.896759928265229e-03 1.884088500763132e-03 1.871478055631251e-03 1.858928424089599e-03 1.846439428400912e-03 - 1.834010894228015e-03 1.821642669213327e-03 1.809334584628213e-03 1.797086460037203e-03 1.784898126770644e-03 - 1.772769417737367e-03 1.760700162615002e-03 1.748690181778845e-03 1.736739308394668e-03 1.724847388831493e-03 - 1.713014248130287e-03 1.701239709792772e-03 1.689523605558227e-03 1.677865768960374e-03 1.666266027776910e-03 - 1.654724201747776e-03 1.643240132443950e-03 1.631813662093462e-03 1.620444610863358e-03 1.609132806416696e-03 - 1.597878082462674e-03 1.586680271167799e-03 1.575539197124769e-03 1.564454685806544e-03 1.553426583192850e-03 - 1.542454723186195e-03 1.531538926942232e-03 1.520679025889417e-03 1.509874853790604e-03 1.499126242122267e-03 - 1.488433013507451e-03 1.477795000037597e-03 1.467212048115432e-03 1.456683985464255e-03 1.446210636719452e-03 - 1.435791835117153e-03 1.425427414393694e-03 1.415117204211151e-03 1.404861027594662e-03 1.394658724273689e-03 - 1.384510137356095e-03 1.374415090575271e-03 1.364373412382042e-03 1.354384937246215e-03 1.344449499301808e-03 - 1.334566925970926e-03 1.324737043332181e-03 1.314959696939330e-03 1.305234723823342e-03 1.295561947265019e-03 - 1.285941199528206e-03 1.276372315963847e-03 1.266855130463658e-03 1.257389468322312e-03 1.247975161599065e-03 - 1.238612057815808e-03 1.229299987951490e-03 1.220038778115428e-03 1.210828263449681e-03 1.201668279419893e-03 - 1.192558658328712e-03 1.183499226491516e-03 1.174489822883548e-03 1.165530291825810e-03 1.156620461345326e-03 - 1.147760161971411e-03 1.138949229776032e-03 1.130187500878873e-03 1.121474806129454e-03 1.112810973708310e-03 - 1.104195848566657e-03 1.095629271185936e-03 1.087111069073448e-03 1.078641075658101e-03 1.070219127753748e-03 - 1.061845062287274e-03 1.053518708913237e-03 1.045239900848634e-03 1.037008485418972e-03 1.028824298155823e-03 - 1.020687168641753e-03 1.012596933141099e-03 1.004553429894111e-03 9.965564952721074e-04 9.886059579764911e-04 - 9.807016577383673e-04 9.728434421263681e-04 9.650311428619217e-04 9.572645925441391e-04 9.495436296868831e-04 - 9.418680934992058e-04 9.342378189983833e-04 9.266526374013966e-04 9.191123940951565e-04 9.116169327210938e-04 - 9.041660846048507e-04 8.967596865276394e-04 8.893975784458786e-04 8.820795994475233e-04 8.748055834052338e-04 - 8.675753662309574e-04 8.603887967412885e-04 8.532457145816050e-04 8.461459528881801e-04 8.390893515597134e-04 - 8.320757512954288e-04 8.251049910410551e-04 8.181769052102455e-04 8.112913354889369e-04 8.044481307476467e-04 - 7.976471276304203e-04 7.908881626723219e-04 7.841710779271092e-04 7.774957151422038e-04 7.708619131557394e-04 - 7.642695077220146e-04 7.577183458379644e-04 7.512082748417916e-04 7.447391309361296e-04 7.383107537219758e-04 - 7.319229861740803e-04 7.255756719189899e-04 7.192686493738265e-04 7.130017570250109e-04 7.067748463319056e-04 - 7.005877618919097e-04 6.944403408515077e-04 6.883324261093659e-04 6.822638623160529e-04 6.762344932684062e-04 - 6.702441573916524e-04 6.642926986443232e-04 6.583799694858947e-04 6.525058122102392e-04 6.466700672293728e-04 - 6.408725793807691e-04 6.351131947715911e-04 6.293917574305099e-04 6.237081070877600e-04 6.180620932909059e-04 - 6.124535677685099e-04 6.068823714677426e-04 6.013483481700967e-04 5.958513451670206e-04 5.903912096703989e-04 - 5.849677853780454e-04 5.795809154020751e-04 5.742304534677881e-04 5.689162489783443e-04 5.636381442526738e-04 - 5.583959863498279e-04 5.531896240506697e-04 5.480189055622431e-04 5.428836748799696e-04 5.377837797240800e-04 - 5.327190759830209e-04 5.276894110958636e-04 5.226946300477827e-04 5.177345825024617e-04 5.128091188465486e-04 - 5.079180879528710e-04 5.030613351067660e-04 4.982387130290541e-04 4.934500776624026e-04 4.886952758062522e-04 - 4.839741558713263e-04 4.792865695826084e-04 4.746323688630657e-04 4.700114029595036e-04 4.654235198613055e-04 - 4.608685766627245e-04 4.563464280591107e-04 4.518569219186994e-04 4.473999099762359e-04 4.429752457691277e-04 - 4.385827824909558e-04 4.342223700107388e-04 4.298938604566902e-04 4.255971135329090e-04 4.213319826090788e-04 - 4.170983180859963e-04 4.128959744299958e-04 4.087248069577171e-04 4.045846700338900e-04 4.004754147907325e-04 - 3.963968979642262e-04 3.923489801919561e-04 3.883315144592717e-04 3.843443544269981e-04 3.803873568608614e-04 - 3.764603788261386e-04 3.725632754784107e-04 3.686959004384349e-04 3.648581147870281e-04 3.610497787686854e-04 - 3.572707463878945e-04 3.535208745539621e-04 3.498000220657478e-04 3.461080477383748e-04 3.424448076363575e-04 - 3.388101589386426e-04 3.352039657815740e-04 3.316260877532703e-04 3.280763812137888e-04 3.245547060139738e-04 - 3.210609229167205e-04 3.175948921405597e-04 3.141564711604799e-04 3.107455215081982e-04 3.073619088757455e-04 - 3.040054927848886e-04 3.006761327105527e-04 2.973736909925681e-04 2.940980303881470e-04 2.908490123115160e-04 - 2.876264965105581e-04 2.844303488008553e-04 2.812604353029198e-04 2.781166164989417e-04 2.749987551423296e-04 - 2.719067158817455e-04 2.688403633742989e-04 2.657995602462465e-04 2.627841695326067e-04 2.597940603791381e-04 - 2.568290988582687e-04 2.538891477672460e-04 2.509740728301346e-04 2.480837407612393e-04 2.452180180501483e-04 - 2.423767689150773e-04 2.395598604007145e-04 2.367671637065971e-04 2.339985452156380e-04 2.312538707417314e-04 - 2.285330086975239e-04 2.258358279521211e-04 2.231621965330517e-04 2.205119809474630e-04 2.178850522930381e-04 - 2.152812827957872e-04 2.127005401044592e-04 2.101426932429596e-04 2.076076129630843e-04 2.050951703707553e-04 - 2.026052350574154e-04 2.001376764695323e-04 1.976923692963255e-04 1.952691863631026e-04 1.928679973631469e-04 - 1.904886744667185e-04 1.881310908124045e-04 1.857951194428946e-04 1.834806317739651e-04 1.811875010647571e-04 - 1.789156043640377e-04 1.766648152326652e-04 1.744350063601967e-04 1.722260526922104e-04 1.700378296945535e-04 - 1.678702123432160e-04 1.657230742438847e-04 1.635962925697728e-04 1.614897461072756e-04 1.594033097074569e-04 - 1.573368592094730e-04 1.552902721810668e-04 1.532634264532060e-04 1.512561988693490e-04 1.492684659352835e-04 - 1.473001083560244e-04 1.453510059716440e-04 1.434210358729406e-04 1.415100771164913e-04 1.396180097223186e-04 - 1.377447137267307e-04 1.358900680130841e-04 1.340539526362652e-04 1.322362510498252e-04 1.304368442346035e-04 - 1.286556121626104e-04 1.268924368411170e-04 1.251472007379926e-04 1.234197860690376e-04 1.217100740639766e-04 - 1.200179485071157e-04 1.183432949752447e-04 1.166859960758634e-04 1.150459349477667e-04 1.134229962637926e-04 - 1.118170649981152e-04 1.102280255615328e-04 1.086557620076939e-04 1.071001616642248e-04 1.055611117192228e-04 - 1.040384970703678e-04 1.025322040262462e-04 1.010421198490596e-04 9.956813202096472e-05 9.811012722455996e-05 - 9.666799283658755e-05 9.524161921027426e-05 9.383089505710078e-05 9.243570803818307e-05 9.105594759252440e-05 - 8.969150364397068e-05 8.834226604286881e-05 8.700812397260034e-05 8.568896841419017e-05 8.438469212608002e-05 - 8.309518568825200e-05 8.182033994906239e-05 8.056004718218619e-05 7.931419998170841e-05 7.808269064296404e-05 - 7.686541112857092e-05 7.566225594198306e-05 7.447311991364301e-05 7.329789600792314e-05 7.213647827366786e-05 - 7.098876170896106e-05 6.985464163907488e-05 6.873401282606521e-05 6.762677039259616e-05 6.653281205307769e-05 - 6.545203459530543e-05 6.438433381335806e-05 6.332960688869456e-05 6.228775159650499e-05 6.125866586213212e-05 - 6.024224709312662e-05 5.923839394811549e-05 5.824700680510711e-05 5.726798458845817e-05 5.630122626966778e-05 - 5.534663202079377e-05 5.440410243697520e-05 5.347353805513213e-05 5.255483915897720e-05 5.164790790372327e-05 - 5.075264706713765e-05 4.986895809670387e-05 4.899674321102013e-05 4.813590548272275e-05 4.728634834520723e-05 - 4.644797500988253e-05 4.562068892036128e-05 4.480439551815946e-05 4.399899988301035e-05 4.320440633696577e-05 - 4.242052030402665e-05 4.164724778526068e-05 4.088449502887978e-05 4.013216802138054e-05 3.939017361734100e-05 - 3.865842020891389e-05 3.793681530287127e-05 3.722526637683801e-05 3.652368195642655e-05 3.583197100166348e-05 - 3.515004257550265e-05 3.447780563338777e-05 3.381517049939420e-05 3.316204825033269e-05 3.251834908257212e-05 - 3.188398376275541e-05 3.125886384349450e-05 3.064290126992314e-05 3.003600797392098e-05 2.943809607683111e-05 - 2.884907925556903e-05 2.826887119646782e-05 2.769738505988399e-05 2.713453488302094e-05 2.658023526748751e-05 - 2.603440114263312e-05 2.549694738792051e-05 2.496778949423694e-05 2.444684425976710e-05 2.393402805764408e-05 - 2.342925723948219e-05 2.293244905822871e-05 2.244352120797989e-05 2.196239159983278e-05 2.148897818423003e-05 - 2.102319990982268e-05 2.056497650699234e-05 2.011422722229805e-05 1.967087173846936e-05 1.923483045310688e-05 - 1.880602417859793e-05 1.838437386840237e-05 1.796980069033951e-05 1.756222699777835e-05 1.716157539169325e-05 - 1.676776819323897e-05 1.638072842752046e-05 1.600037965967140e-05 1.562664583506045e-05 1.525945101785764e-05 - 1.489871974108943e-05 1.454437762041471e-05 1.419635018600421e-05 1.385456300630342e-05 1.351894241351905e-05 - 1.318941519258516e-05 1.286590843459537e-05 1.254834939298960e-05 1.223666606495489e-05 1.193078719950152e-05 - 1.163064137727749e-05 1.133615754527981e-05 1.104726530816775e-05 1.076389469662666e-05 1.048597599093073e-05 - 1.021343974753131e-05 9.946217419267380e-06 9.684240838620889e-06 9.427441790773100e-06 9.175752643853506e-06 - 8.929106280098344e-06 8.687435997194528e-06 8.450675338936148e-06 8.218758257424963e-06 7.991619584870982e-06 - 7.769194298227330e-06 7.551417507621627e-06 7.338224987041431e-06 7.129552955942858e-06 6.925337997222138e-06 - 6.725516977155444e-06 6.530027335862672e-06 6.338807194551445e-06 6.151794769434223e-06 5.968928615355085e-06 - 5.790147878391894e-06 5.615392155261267e-06 5.444601365246586e-06 5.277715758699128e-06 5.114676291438329e-06 - 4.955424365336747e-06 4.799901525655197e-06 4.648049820836300e-06 4.499811793985402e-06 4.355130438087899e-06 - 4.213949069835453e-06 4.076211399540344e-06 3.941861865039729e-06 3.810845196499976e-06 3.683106361660463e-06 - 3.558590910585118e-06 3.437244835818923e-06 3.319014541070219e-06 3.203846795533912e-06 3.091688852089737e-06 - 2.982488579295818e-06 2.876194109656037e-06 2.772753925582794e-06 2.672117063800105e-06 2.574233014808049e-06 - 2.479051643033932e-06 2.386523210361943e-06 2.296598552297165e-06 2.209228971591383e-06 2.124366069775506e-06 - 2.041961906232304e-06 1.961969019732135e-06 1.884340423438541e-06 1.809029507182080e-06 1.735990071613592e-06 - 1.665176534356502e-06 1.596543687803830e-06 1.530046658503296e-06 1.465641105678908e-06 1.403283128309336e-06 - 1.342929271825179e-06 1.284536503035511e-06 1.228062233226246e-06 1.173464436795038e-06 1.120701460082181e-06 - 1.069732028902882e-06 1.020515399241352e-06 9.730112822753146e-07 9.271798002921477e-07 8.829815278752155e-07 - 8.403775374680640e-07 7.993293716485992e-07 7.597989809176624e-07 7.217487560416926e-07 6.851415619710593e-07 - 6.499407524191172e-07 6.161100929136179e-07 5.836137918783888e-07 5.524166028233452e-07 5.224836968385216e-07 - 4.937806609639881e-07 4.662735849361845e-07 4.399289991547822e-07 4.147139110260500e-07 3.905957813609555e-07 - 3.675425084859321e-07 3.455225231396512e-07 3.245046871736890e-07 3.044582778536548e-07 2.853530928283095e-07 - 2.671593859185241e-07 2.498478511400059e-07 2.333896726605378e-07 2.177564985206194e-07 2.029204500538344e-07 - 1.888541210793108e-07 1.755305458522738e-07 1.629232393506973e-07 1.510062144201093e-07 1.397539174372155e-07 - 1.291412703741045e-07 1.191437050672961e-07 1.097370923617762e-07 1.008977778162274e-07 9.260259669902208e-08 - 8.482883141984319e-08 7.755426670738778e-08 7.075715683240311e-08 6.441620467100832e-08 5.851063608240125e-08 - 5.302013495440350e-08 4.792483459927075e-08 4.320538955913144e-08 3.884291294265582e-08 3.481898425658018e-08 - 3.111569527451850e-08 2.771559342817648e-08 2.460171067137196e-08 2.175758348333717e-08 1.916719757773861e-08 - 1.681503457183268e-08 1.468607978947252e-08 1.276576812429566e-08 1.104003874048358e-08 9.495328649625366e-09 - 8.118528715645258e-09 6.897042498203040e-09 5.818760232281117e-09 4.872032311209139e-09 4.045732447740840e-09 - 3.329210679517489e-09 2.712284881132093e-09 2.185301687016959e-09 1.739076161987666e-09 1.364901589086205e-09 - 1.054599065845252e-09 8.004535320102697e-10 5.952414597054672e-10 4.322622496028902e-10 3.052766304104823e-10 - 2.085502003918036e-10 1.368642901349301e-10 8.546164059834664e-11 5.010215808832263e-11 2.705311520847365e-11 - 1.304599438344934e-11 5.339090781311160e-12 1.692041320615927e-12 3.321208355096226e-13 6.781366937015517e-15 From 6008cee6aa322646f872f30c50b73589ac44c553 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 26 Jun 2018 16:02:56 -0400 Subject: [PATCH 196/675] ...and replace with symbolic links --- examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy | 1 + examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy | 1 + 2 files changed, 2 insertions(+) create mode 120000 examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy create mode 120000 examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy diff --git a/examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy new file mode 120000 index 0000000000..6a47c9eebe --- /dev/null +++ b/examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy @@ -0,0 +1 @@ +../cobalt_fcc/Co_PurjaPun_2012.eam.alloy \ No newline at end of file diff --git a/examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy new file mode 120000 index 0000000000..6a47c9eebe --- /dev/null +++ b/examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy @@ -0,0 +1 @@ +../cobalt_fcc/Co_PurjaPun_2012.eam.alloy \ No newline at end of file From 5c4bf8ac47935b49d590b3c7d6ae47fa5e3e0bc7 Mon Sep 17 00:00:00 2001 From: jrgissing Date: Tue, 26 Jun 2018 20:40:02 -0600 Subject: [PATCH 197/675] bond/react: optional EdgeIDs take2 --- src/USER-MISC/fix_bond_react.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/USER-MISC/fix_bond_react.cpp b/src/USER-MISC/fix_bond_react.cpp index 09f97be7c4..c72a1b027b 100644 --- a/src/USER-MISC/fix_bond_react.cpp +++ b/src/USER-MISC/fix_bond_react.cpp @@ -265,7 +265,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : memory->create(landlocked_atoms,max_natoms,nreacts,"bond/react:landlocked_atoms"); for (int j = 0; j < nreacts; j++) - for (int i = 0; i < onemol->natoms; i++) edge[i][j] = 0; + for (int i = 0; i < max_natoms; i++) edge[i][j] = 0; // read all superimpose files afterward for (int i = 0; i < nreacts; i++) { From 264f832b1843e25b0aa88eec4ef5169552e23332 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Jun 2018 07:58:57 -0400 Subject: [PATCH 198/675] fix formatting of dump_modify docs --- doc/src/dump_modify.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/dump_modify.txt b/doc/src/dump_modify.txt index 3230507dc3..5365610d64 100644 --- a/doc/src/dump_modify.txt +++ b/doc/src/dump_modify.txt @@ -486,7 +486,7 @@ to respond to the call from the dump command, and update the appropriate reference positions. This is done be defining an "atom-style variable"_variable.html, {check} in this example, which calculates a Boolean value (0 or 1) for each atom, based on the same -criterion used by dump_modify thresh. +criterion used by dump_modify thresh. See the "compute displace/atom"_compute_displace_atom.html command for more details, including an example of how to produce output that @@ -600,13 +600,13 @@ included.) region foo sphere 10 20 10 15 variable inregion atom rmask(foo) -dump_modify ... thresh v_inregion |^ LAST +dump_modify ... thresh v_inregion |^ LAST :pre This will dump atoms which crossed the boundary of the spherical region since the last dump. variable charge atom "(q > 0.5) || (q < -0.5)" -dump_modify ... thresh v_charge |^ LAST +dump_modify ... thresh v_charge |^ LAST :pre This will dump atoms whose charge has changed from an absolute value less than 1/2 to greater than 1/2 (or vice versa) since the last dump. From 244963aa195f1bb345f25f47f1b7fa3fb831033e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Jun 2018 12:29:34 -0400 Subject: [PATCH 199/675] fix incorrect scaling of emag bug --- examples/SPIN/bfo/log.11May18.spin.bfo.g++.1 | 212 +++++++++++++++++++ examples/SPIN/bfo/log.11May18.spin.bfo.g++.4 | 212 +++++++++++++++++++ src/SPIN/fix_precession_spin.cpp | 7 +- 3 files changed, 427 insertions(+), 4 deletions(-) create mode 100644 examples/SPIN/bfo/log.11May18.spin.bfo.g++.1 create mode 100644 examples/SPIN/bfo/log.11May18.spin.bfo.g++.4 diff --git a/examples/SPIN/bfo/log.11May18.spin.bfo.g++.1 b/examples/SPIN/bfo/log.11May18.spin.bfo.g++.1 new file mode 100644 index 0000000000..8e9eb82d1f --- /dev/null +++ b/examples/SPIN/bfo/log.11May18.spin.bfo.g++.1 @@ -0,0 +1,212 @@ +LAMMPS (11 May 2018) +# layer sc iron atoms (in the [001] plane) in bismuth oxide + +clear +units metal +atom_style spin + +dimension 3 +boundary p p f + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice sc 3.96 +Lattice spacing in x,y,z = 3.96 3.96 3.96 +region box block 0.0 34.0 0.0 34.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (134.64 134.64 19.8) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 5780 atoms + Time spent = 0.0013566 secs + +# setting mass, mag. moments, and interactions for bfo + +mass 1 1.0 + +set group all spin/random 11 2.50 + 5780 settings made for spin/random + +pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 +pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965 +pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin anisotropy 0.0000033 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.1 21 +fix 3 all nve/spin lattice no + +timestep 0.0002 + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_emag temp etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 5000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.1 + ghost atom cutoff = 6.1 + binsize = 3.05, bins = 45 45 7 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard + (2) pair spin/magelec, perpetual, copy from (1) + attributes: full, newton on + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 7.272 | 7.272 | 7.272 Mbytes +Step Time v_magnorm v_emag Temp TotEng + 0 0 0.010071723 -0.13298298 0 -0.12034311 + 50 0.01 0.0098643821 -1.3898985 0 -1.3772103 + 100 0.02 0.0096526211 -2.6381677 0 -2.6254222 + 150 0.03 0.0094342235 -3.8784006 0 -3.8656019 + 200 0.04 0.0092074832 -5.111441 0 -5.0986001 + 250 0.05 0.0089713115 -6.3380611 0 -6.3251904 + 300 0.06 0.0087256081 -7.5587787 0 -7.5458894 + 350 0.07 0.0084715548 -8.7738491 0 -8.7609521 + 400 0.08 0.008211486 -9.9833855 0 -9.9704932 + 450 0.09 0.0079483243 -11.18751 0 -11.174637 + 500 0.1 0.0076849713 -12.386462 0 -12.37362 + 550 0.11 0.007424064 -13.580633 0 -13.567832 + 600 0.12 0.0071680699 -14.770519 0 -14.757759 + 650 0.13 0.0069192726 -15.956579 0 -15.943853 + 700 0.14 0.0066793495 -17.139049 0 -17.126343 + 750 0.15 0.0064488038 -18.317803 0 -18.305099 + 800 0.16 0.0062267571 -19.492336 0 -19.479616 + 850 0.17 0.0060112235 -20.661925 0 -20.649176 + 900 0.18 0.0057995251 -21.825931 0 -21.813141 + 950 0.19 0.0055886511 -22.98413 0 -22.971297 + 1000 0.2 0.0053757923 -24.136967 0 -24.124095 + 1050 0.21 0.0051592263 -25.285621 0 -25.272717 + 1100 0.22 0.0049391661 -26.431928 0 -26.419004 + 1150 0.23 0.0047179149 -27.578212 0 -27.565281 + 1200 0.24 0.0044991004 -28.727051 0 -28.714128 + 1250 0.25 0.0042864034 -29.880967 0 -29.868062 + 1300 0.26 0.0040824475 -31.042054 0 -31.029173 + 1350 0.27 0.0038883007 -32.21165 0 -32.198795 + 1400 0.28 0.0037036595 -33.390159 0 -33.377326 + 1450 0.29 0.0035274815 -34.577121 0 -34.564302 + 1500 0.3 0.0033587207 -35.771483 0 -35.758672 + 1550 0.31 0.0031969501 -36.971996 0 -36.95919 + 1600 0.32 0.0030429081 -38.177601 0 -38.164801 + 1650 0.33 0.0028989804 -39.387757 0 -39.374962 + 1700 0.34 0.0027692024 -40.602665 0 -40.589873 + 1750 0.35 0.0026581403 -41.823341 0 -41.81054 + 1800 0.36 0.0025686991 -43.05145 0 -43.038628 + 1850 0.37 0.002500124 -44.288966 0 -44.276111 + 1900 0.38 0.0024477804 -45.537752 0 -45.52486 + 1950 0.39 0.0024050049 -46.799255 0 -46.786336 + 2000 0.4 0.0023657031 -48.074388 0 -48.061466 + 2050 0.41 0.0023260844 -49.363587 0 -49.350695 + 2100 0.42 0.0022848329 -50.666866 0 -50.654039 + 2150 0.43 0.0022419759 -51.983781 0 -51.971055 + 2200 0.44 0.0021972506 -53.31336 0 -53.300764 + 2250 0.45 0.0021488322 -54.654121 0 -54.641676 + 2300 0.46 0.0020929483 -56.004207 0 -55.991918 + 2350 0.47 0.0020244601 -57.361586 0 -57.349442 + 2400 0.48 0.001938225 -58.72428 0 -58.712247 + 2450 0.49 0.0018309419 -60.09064 0 -60.078671 + 2500 0.5 0.0017030436 -61.459658 0 -61.447705 + 2550 0.51 0.0015599449 -62.831213 0 -62.819237 + 2600 0.52 0.0014117554 -64.206088 0 -64.194074 + 2650 0.53 0.0012709942 -65.585701 0 -65.573657 + 2700 0.54 0.0011490452 -66.971565 0 -66.959515 + 2750 0.55 0.001053009 -68.364663 0 -68.352635 + 2800 0.56 0.00098415327 -69.765002 0 -69.753017 + 2850 0.57 0.00093809306 -71.171532 0 -71.159598 + 2900 0.58 0.00090656933 -72.58234 0 -72.570459 + 2950 0.59 0.00088069677 -73.994931 0 -73.983099 + 3000 0.6 0.00085472643 -75.406507 0 -75.39472 + 3050 0.61 0.00082842902 -76.814319 0 -76.802575 + 3100 0.62 0.00080642618 -78.216074 0 -78.204373 + 3150 0.63 0.00079463972 -79.610246 0 -79.598589 + 3200 0.64 0.0007962304 -80.996103 0 -80.984494 + 3250 0.65 0.00080980411 -82.37346 0 -82.361903 + 3300 0.66 0.00083070982 -83.742356 0 -83.730855 + 3350 0.67 0.00085389185 -85.102808 0 -85.091374 + 3400 0.68 0.00087624091 -86.454619 0 -86.443259 + 3450 0.69 0.00089741986 -87.797089 0 -87.785814 + 3500 0.7 0.00091910796 -89.12875 0 -89.117567 + 3550 0.71 0.00094318459 -90.447312 0 -90.436232 + 3600 0.72 0.00096989367 -91.750008 0 -91.739046 + 3650 0.73 0.00099713096 -93.034224 0 -93.023402 + 3700 0.74 0.0010212995 -94.298186 0 -94.287529 + 3750 0.75 0.0010391164 -95.5414 0 -95.530926 + 3800 0.76 0.0010491462 -96.764626 0 -96.754338 + 3850 0.77 0.0010521238 -97.969346 0 -97.95923 + 3900 0.78 0.0010500324 -99.156875 0 -99.146899 + 3950 0.79 0.0010447043 -100.32743 0 -100.31756 + 4000 0.8 0.0010368986 -101.4796 0 -101.46978 + 4050 0.81 0.0010263632 -102.61044 0 -102.60064 + 4100 0.82 0.0010126933 -103.71619 0 -103.70639 + 4150 0.83 0.00099631895 -104.79338 0 -104.78358 + 4200 0.84 0.0009789075 -105.8398 0 -105.82998 + 4250 0.85 0.00096287608 -106.85496 0 -106.84515 + 4300 0.86 0.00095034023 -107.84011 0 -107.83029 + 4350 0.87 0.00094219078 -108.7976 0 -108.78778 + 4400 0.88 0.00093779428 -109.73016 0 -109.72031 + 4450 0.89 0.0009354459 -110.63996 0 -110.63008 + 4500 0.9 0.00093342614 -111.52805 0 -111.51812 + 4550 0.91 0.0009311077 -112.39417 0 -112.38416 + 4600 0.92 0.00092926689 -113.23706 0 -113.22697 + 4650 0.93 0.00092921566 -114.05512 0 -114.04495 + 4700 0.94 0.00093142598 -114.84701 0 -114.83675 + 4750 0.95 0.00093479851 -115.61197 0 -115.60164 + 4800 0.96 0.0009369799 -116.3499 0 -116.33951 + 4850 0.97 0.00093516768 -117.06128 0 -117.05084 + 4900 0.98 0.00092684411 -117.74695 0 -117.73645 + 4950 0.99 0.00091046222 -118.40798 0 -118.39742 + 5000 1 0.00088619957 -119.04554 0 -119.03492 +Loop time of 128.304 on 1 procs for 5000 steps with 5780 atoms + +Performance: 0.673 ns/day, 35.640 hours/ns, 38.970 timesteps/s +99.6% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 24.227 | 24.227 | 24.227 | 0.0 | 18.88 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.081048 | 0.081048 | 0.081048 | 0.0 | 0.06 +Output | 39.796 | 39.796 | 39.796 | 0.0 | 31.02 +Modify | 64.112 | 64.112 | 64.112 | 0.0 | 49.97 +Other | | 0.08788 | | | 0.07 + +Nlocal: 5780 ave 5780 max 5780 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1065 ave 1065 max 1065 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 92480 ave 92480 max 92480 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 92480 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:02:08 diff --git a/examples/SPIN/bfo/log.11May18.spin.bfo.g++.4 b/examples/SPIN/bfo/log.11May18.spin.bfo.g++.4 new file mode 100644 index 0000000000..c0f96b8195 --- /dev/null +++ b/examples/SPIN/bfo/log.11May18.spin.bfo.g++.4 @@ -0,0 +1,212 @@ +LAMMPS (11 May 2018) +# layer sc iron atoms (in the [001] plane) in bismuth oxide + +clear +units metal +atom_style spin + +dimension 3 +boundary p p f + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice sc 3.96 +Lattice spacing in x,y,z = 3.96 3.96 3.96 +region box block 0.0 34.0 0.0 34.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (134.64 134.64 19.8) + 2 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 5780 atoms + Time spent = 0.000355959 secs + +# setting mass, mag. moments, and interactions for bfo + +mass 1 1.0 + +set group all spin/random 11 2.50 + 5780 settings made for spin/random + +pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 +pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965 +pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin anisotropy 0.0000033 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.1 21 +fix 3 all nve/spin lattice no + +timestep 0.0002 + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_emag temp etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 5000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.1 + ghost atom cutoff = 6.1 + binsize = 3.05, bins = 45 45 7 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard + (2) pair spin/magelec, perpetual, copy from (1) + attributes: full, newton on + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 6.862 | 6.862 | 6.862 Mbytes +Step Time v_magnorm v_emag Temp TotEng + 0 0 0.010071723 -0.13298298 0 -0.12034311 + 50 0.01 0.0098643821 -1.3898985 0 -1.3772103 + 100 0.02 0.009652621 -2.6381677 0 -2.6254222 + 150 0.03 0.0094342234 -3.8784007 0 -3.8656019 + 200 0.04 0.009207483 -5.1114411 0 -5.0986001 + 250 0.05 0.0089713114 -6.3380611 0 -6.3251904 + 300 0.06 0.0087256079 -7.5587787 0 -7.5458894 + 350 0.07 0.0084715546 -8.7738491 0 -8.7609521 + 400 0.08 0.0082114858 -9.9833855 0 -9.9704932 + 450 0.09 0.0079483242 -11.18751 0 -11.174637 + 500 0.1 0.0076849711 -12.386462 0 -12.37362 + 550 0.11 0.0074240638 -13.580633 0 -13.567832 + 600 0.12 0.0071680697 -14.770519 0 -14.757759 + 650 0.13 0.0069192724 -15.956579 0 -15.943853 + 700 0.14 0.0066793493 -17.139049 0 -17.126343 + 750 0.15 0.0064488035 -18.317803 0 -18.305099 + 800 0.16 0.0062267569 -19.492336 0 -19.479616 + 850 0.17 0.0060112233 -20.661925 0 -20.649176 + 900 0.18 0.005799525 -21.825931 0 -21.813141 + 950 0.19 0.0055886511 -22.98413 0 -22.971297 + 1000 0.2 0.0053757923 -24.136967 0 -24.124095 + 1050 0.21 0.0051592265 -25.285621 0 -25.272717 + 1100 0.22 0.0049391664 -26.431928 0 -26.419004 + 1150 0.23 0.0047179153 -27.578212 0 -27.565281 + 1200 0.24 0.0044991009 -28.727051 0 -28.714128 + 1250 0.25 0.0042864039 -29.880967 0 -29.868062 + 1300 0.26 0.004082448 -31.042054 0 -31.029174 + 1350 0.27 0.0038883012 -32.21165 0 -32.198795 + 1400 0.28 0.0037036599 -33.390159 0 -33.377326 + 1450 0.29 0.0035274817 -34.577121 0 -34.564302 + 1500 0.3 0.0033587208 -35.771483 0 -35.758672 + 1550 0.31 0.0031969501 -36.971996 0 -36.95919 + 1600 0.32 0.0030429079 -38.177601 0 -38.164801 + 1650 0.33 0.0028989801 -39.387757 0 -39.374962 + 1700 0.34 0.0027692022 -40.602666 0 -40.589873 + 1750 0.35 0.0026581401 -41.823341 0 -41.81054 + 1800 0.36 0.002568699 -43.05145 0 -43.038628 + 1850 0.37 0.0025001242 -44.288966 0 -44.276111 + 1900 0.38 0.0024477808 -45.537752 0 -45.52486 + 1950 0.39 0.0024050056 -46.799255 0 -46.786336 + 2000 0.4 0.002365704 -48.074388 0 -48.061466 + 2050 0.41 0.0023260854 -49.363587 0 -49.350695 + 2100 0.42 0.002284834 -50.666866 0 -50.654039 + 2150 0.43 0.0022419771 -51.983781 0 -51.971055 + 2200 0.44 0.0021972518 -53.31336 0 -53.300764 + 2250 0.45 0.0021488333 -54.654121 0 -54.641676 + 2300 0.46 0.0020929494 -56.004207 0 -55.991918 + 2350 0.47 0.0020244612 -57.361586 0 -57.349441 + 2400 0.48 0.0019382262 -58.72428 0 -58.712247 + 2450 0.49 0.001830943 -60.090639 0 -60.078671 + 2500 0.5 0.0017030446 -61.459658 0 -61.447704 + 2550 0.51 0.0015599459 -62.831213 0 -62.819237 + 2600 0.52 0.0014117562 -64.206088 0 -64.194074 + 2650 0.53 0.001270995 -65.5857 0 -65.573657 + 2700 0.54 0.001149046 -66.971565 0 -66.959515 + 2750 0.55 0.0010530098 -68.364663 0 -68.352635 + 2800 0.56 0.00098415418 -69.765002 0 -69.753017 + 2850 0.57 0.00093809402 -71.171532 0 -71.159598 + 2900 0.58 0.00090657031 -72.58234 0 -72.570459 + 2950 0.59 0.00088069773 -73.994931 0 -73.983099 + 3000 0.6 0.00085472731 -75.406507 0 -75.39472 + 3050 0.61 0.00082842975 -76.814319 0 -76.802575 + 3100 0.62 0.00080642669 -78.216074 0 -78.204373 + 3150 0.63 0.00079464 -79.610246 0 -79.59859 + 3200 0.64 0.00079623049 -80.996103 0 -80.984494 + 3250 0.65 0.00080980416 -82.373461 0 -82.361903 + 3300 0.66 0.00083070997 -83.742356 0 -83.730856 + 3350 0.67 0.00085389223 -85.102809 0 -85.091374 + 3400 0.68 0.00087624159 -86.454619 0 -86.44326 + 3450 0.69 0.00089742086 -87.79709 0 -87.785815 + 3500 0.7 0.00091910931 -89.12875 0 -89.117568 + 3550 0.71 0.00094318635 -90.447312 0 -90.436233 + 3600 0.72 0.00096989594 -91.750008 0 -91.739047 + 3650 0.73 0.00099713386 -93.034224 0 -93.023403 + 3700 0.74 0.0010213031 -94.298186 0 -94.287529 + 3750 0.75 0.0010391209 -95.541401 0 -95.530926 + 3800 0.76 0.0010491514 -96.764626 0 -96.754339 + 3850 0.77 0.0010521296 -97.969347 0 -97.959231 + 3900 0.78 0.0010500386 -99.156876 0 -99.146899 + 3950 0.79 0.0010447106 -100.32743 0 -100.31756 + 4000 0.8 0.0010369046 -101.4796 0 -101.46978 + 4050 0.81 0.0010263688 -102.61044 0 -102.60064 + 4100 0.82 0.0010126985 -103.71619 0 -103.70639 + 4150 0.83 0.00099632366 -104.79338 0 -104.78358 + 4200 0.84 0.00097891183 -105.8398 0 -105.82998 + 4250 0.85 0.00096288003 -106.85496 0 -106.84515 + 4300 0.86 0.00095034371 -107.84011 0 -107.83029 + 4350 0.87 0.00094219371 -108.7976 0 -108.78778 + 4400 0.88 0.00093779663 -109.73016 0 -109.72031 + 4450 0.89 0.00093544766 -110.63996 0 -110.63008 + 4500 0.9 0.00093342739 -111.52805 0 -111.51812 + 4550 0.91 0.00093110855 -112.39417 0 -112.38416 + 4600 0.92 0.00092926746 -113.23706 0 -113.22697 + 4650 0.93 0.00092921608 -114.05512 0 -114.04495 + 4700 0.94 0.0009314263 -114.84701 0 -114.83675 + 4750 0.95 0.0009347987 -115.61197 0 -115.60164 + 4800 0.96 0.00093697985 -116.3499 0 -116.33951 + 4850 0.97 0.00093516726 -117.06128 0 -117.05084 + 4900 0.98 0.00092684316 -117.74695 0 -117.73645 + 4950 0.99 0.00091046061 -118.40798 0 -118.39742 + 5000 1 0.00088619727 -119.04554 0 -119.03492 +Loop time of 37.142 on 4 procs for 5000 steps with 5780 atoms + +Performance: 2.326 ns/day, 10.317 hours/ns, 134.619 timesteps/s +98.7% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 6.2804 | 6.3487 | 6.4569 | 2.7 | 17.09 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.15385 | 0.27957 | 0.36215 | 14.6 | 0.75 +Output | 10.573 | 10.784 | 10.994 | 4.8 | 29.03 +Modify | 19.48 | 19.707 | 19.925 | 3.7 | 53.06 +Other | | 0.02255 | | | 0.06 + +Nlocal: 1445 ave 1445 max 1445 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 555 ave 555 max 555 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 23120 ave 23120 max 23120 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 92480 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:37 diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index 9b33fac551..3543c4087d 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -193,22 +193,21 @@ void FixPrecessionSpin::post_force(int vflag) spi[2] = sp[i][2]; fmi[0] = fmi[1] = fmi[2] = 0.0; - if (zeeman_flag) { // compute Zeeman interaction + if (zeeman_flag) { // compute Zeeman interaction compute_zeeman(i,fmi); emag -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); - emag *= hbar; } - if (aniso_flag) { // compute magnetic anisotropy + if (aniso_flag) { // compute magnetic anisotropy compute_anisotropy(spi,fmi); emag -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); - emag *= hbar; } fm[i][0] += fmi[0]; fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; } + emag *= hbar; } /* ---------------------------------------------------------------------- */ From 3549345830e73e1dc2d67ec02a303ab8dd46508c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Jun 2018 12:30:19 -0400 Subject: [PATCH 200/675] whitespace cleanup --- src/SPIN/fix_precession_spin.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index 3543c4087d..eedf0becb7 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -125,12 +125,12 @@ int FixPrecessionSpin::setmask() void FixPrecessionSpin::init() { - const double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) - const double mub = 5.78901e-5; // in eV/T - const double gyro = mub/hbar; // in rad.THz/T + const double hbar = force->hplanck/MY_2PI; // eV/(rad.THz) + const double mub = 5.78901e-5; // in eV/T + const double gyro = mub/hbar; // in rad.THz/T - H_field *= gyro; // in rad.THz - Ka /= hbar; // in rad.THz + H_field *= gyro; // in rad.THz + Ka /= hbar; // in rad.THz if (strstr(update->integrate_style,"respa")) { ilevel_respa = ((Respa *) update->integrate)->nlevels-1; @@ -176,7 +176,7 @@ void FixPrecessionSpin::post_force(int vflag) if (varflag != CONSTANT) { modify->clearstep_compute(); modify->addstep_compute(update->ntimestep + 1); - set_magneticprecession(); // update mag. field if time-dep. + set_magneticprecession(); // update mag. field if time-dep. } double **sp = atom->sp; @@ -255,14 +255,14 @@ void FixPrecessionSpin::post_force_respa(int vflag, int ilevel, int iloop) void FixPrecessionSpin::set_magneticprecession() { if (zeeman_flag) { - hx = H_field*nhx; - hy = H_field*nhy; - hz = H_field*nhz; + hx = H_field*nhx; + hy = H_field*nhy; + hz = H_field*nhz; } if (aniso_flag) { - Kax = 2.0*Ka*nax; - Kay = 2.0*Ka*nay; - Kaz = 2.0*Ka*naz; + Kax = 2.0*Ka*nax; + Kay = 2.0*Ka*nay; + Kaz = 2.0*Ka*naz; } } From d3b83885d1f8e86bd860ace06f2aa954190c3126 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Jun 2018 14:06:56 -0400 Subject: [PATCH 201/675] make SPIN package examples consistent with other examples and add reference logs --- examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc | 6 +- .../log.11May18.spin.cobalt_fcc.g++.1 | 142 +++ .../log.11May18.spin.cobalt_fcc.g++.4 | 142 +++ examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 2 +- .../log.11May18.spin.cobalt_hcp.g++.1 | 318 +++++ .../log.11May18.spin.cobalt_hcp.g++.4 | 318 +++++ examples/SPIN/iron/in.spin.iron | 2 +- .../SPIN/iron/log.11May18.spin.iron.g++.1 | 1115 +++++++++++++++++ .../SPIN/iron/log.11May18.spin.iron.g++.4 | 1115 +++++++++++++++++ examples/SPIN/nickel/in.spin.nickel | 2 +- .../SPIN/nickel/log.11May18.spin.nickel.g++.1 | 157 +++ .../SPIN/nickel/log.11May18.spin.nickel.g++.4 | 157 +++ examples/SPIN/read_restart/in.spin.read_data | 4 +- examples/SPIN/read_restart/in.spin.restart | 2 +- .../log.11May18.spin.read_data.g++.1 | 112 ++ .../log.11May18.spin.read_data.g++.4 | 112 ++ .../log.11May18.spin.restart.g++.1 | 117 ++ .../log.11May18.spin.restart.g++.4 | 118 ++ .../log.11May18.spin.write_restart.g++.1 | 119 ++ .../log.11May18.spin.write_restart.g++.4 | 119 ++ 20 files changed, 4170 insertions(+), 9 deletions(-) create mode 100644 examples/SPIN/cobalt_fcc/log.11May18.spin.cobalt_fcc.g++.1 create mode 100644 examples/SPIN/cobalt_fcc/log.11May18.spin.cobalt_fcc.g++.4 create mode 100644 examples/SPIN/cobalt_hcp/log.11May18.spin.cobalt_hcp.g++.1 create mode 100644 examples/SPIN/cobalt_hcp/log.11May18.spin.cobalt_hcp.g++.4 create mode 100644 examples/SPIN/iron/log.11May18.spin.iron.g++.1 create mode 100644 examples/SPIN/iron/log.11May18.spin.iron.g++.4 create mode 100644 examples/SPIN/nickel/log.11May18.spin.nickel.g++.1 create mode 100644 examples/SPIN/nickel/log.11May18.spin.nickel.g++.4 create mode 100644 examples/SPIN/read_restart/log.11May18.spin.read_data.g++.1 create mode 100644 examples/SPIN/read_restart/log.11May18.spin.read_data.g++.4 create mode 100644 examples/SPIN/read_restart/log.11May18.spin.restart.g++.1 create mode 100644 examples/SPIN/read_restart/log.11May18.spin.restart.g++.4 create mode 100644 examples/SPIN/read_restart/log.11May18.spin.write_restart.g++.1 create mode 100644 examples/SPIN/read_restart/log.11May18.spin.write_restart.g++.4 diff --git a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc index fd5eeb38b8..fd6833727b 100644 --- a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc +++ b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc @@ -24,7 +24,7 @@ set group all spin 1.72 0.0 0.0 1.0 velocity all create 100 4928459 rot yes dist gaussian pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/cobalt_fcc/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 0.1 bin @@ -57,7 +57,7 @@ variable tmag equal c_out_mag[6] thermo_style custom step time f_1 v_magx v_magy v_magnorm v_emag temp etotal thermo 50 -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 100 all custom 1 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] +#compute outsp all property/atom spx spy spz sp fmx fmy fmz +#dump 100 all custom 1 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] run 1000 diff --git a/examples/SPIN/cobalt_fcc/log.11May18.spin.cobalt_fcc.g++.1 b/examples/SPIN/cobalt_fcc/log.11May18.spin.cobalt_fcc.g++.1 new file mode 100644 index 0000000000..d832b0001a --- /dev/null +++ b/examples/SPIN/cobalt_fcc/log.11May18.spin.cobalt_fcc.g++.1 @@ -0,0 +1,142 @@ +LAMMPS (11 May 2018) +# fcc cobalt in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.54 +Lattice spacing in x,y,z = 3.54 3.54 3.54 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (17.7 17.7 17.7) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000651121 secs + +# setting mass, mag. moments, and interactions for fcc cobalt + +mass 1 58.93 + +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 + 500 settings made for spin +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +fix_modify 1 energy yes + +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# compute and output options + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +thermo_style custom f_1 + +variable magx equal c_out_mag[1] +variable magy equal c_out_mag[2] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time f_1 v_magx v_magy v_magnorm v_emag temp etotal +thermo 50 + +#compute outsp all property/atom spx spy spz sp fmx fmy fmz +#dump 100 all custom 1 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.59954 + ghost atom cutoff = 6.59954 + binsize = 3.29977, bins = 6 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.218 | 5.218 | 5.218 Mbytes +Step Time f_1 v_magx v_magy v_magnorm v_emag Temp TotEng + 0 0 0.049785486 0 0 1 -187.94116 100.00543 -2372.4636 + 50 0.005 0.049785486 0 0 1 -187.94112 95.094679 -2372.4636 + 100 0.01 0.049785486 0 0 1 -187.94071 81.578321 -2372.4636 + 150 0.015 0.049785486 0 0 1 -187.93912 62.802727 -2372.4636 + 200 0.02 0.049785486 0 0 1 -187.93551 43.35108 -2372.4636 + 250 0.025 0.049785486 0 0 1 -187.92942 27.749821 -2372.4636 + 300 0.03 0.049785486 0 0 1 -187.92118 19.149389 -2372.4636 + 350 0.035 0.049785486 0 0 1 -187.91199 18.453387 -2372.4636 + 400 0.04 0.049785486 0 0 1 -187.90364 24.249423 -2372.4636 + 450 0.045 0.049785486 0 0 1 -187.89806 33.548008 -2372.4636 + 500 0.05 0.049785486 0 0 1 -187.89668 42.973172 -2372.4636 + 550 0.055 0.049785486 0 0 1 -187.9 49.902539 -2372.4636 + 600 0.06 0.049785486 0 0 1 -187.90735 53.166772 -2372.4636 + 650 0.065 0.049785486 0 0 1 -187.91706 53.153416 -2372.4636 + 700 0.07 0.049785486 0 0 1 -187.92692 51.377187 -2372.4636 + 750 0.075 0.049785486 0 0 1 -187.9348 49.725449 -2372.4636 + 800 0.08 0.049785486 0 0 1 -187.93921 49.663576 -2372.4636 + 850 0.085 0.049785486 0 0 1 -187.93974 51.681567 -2372.4636 + 900 0.09 0.049785486 0 0 1 -187.937 55.166554 -2372.4636 + 950 0.095 0.049785486 0 0 1 -187.93239 58.718232 -2372.4636 + 1000 0.1 0.049785486 0 0 1 -187.92755 60.75567 -2372.4636 +Loop time of 4.1303 on 1 procs for 1000 steps with 500 atoms + +Performance: 2.092 ns/day, 11.473 hours/ns, 242.113 timesteps/s +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.142 | 2.142 | 2.142 | 0.0 | 51.86 +Neigh | 0.0094573 | 0.0094573 | 0.0094573 | 0.0 | 0.23 +Comm | 0.023293 | 0.023293 | 0.023293 | 0.0 | 0.56 +Output | 0.00031972 | 0.00031972 | 0.00031972 | 0.0 | 0.01 +Modify | 1.9488 | 1.9488 | 1.9488 | 0.0 | 47.18 +Other | | 0.006488 | | | 0.16 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 24065 ave 24065 max 24065 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 48130 ave 48130 max 48130 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 48130 +Ave neighs/atom = 96.26 +Neighbor list builds = 6 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:04 diff --git a/examples/SPIN/cobalt_fcc/log.11May18.spin.cobalt_fcc.g++.4 b/examples/SPIN/cobalt_fcc/log.11May18.spin.cobalt_fcc.g++.4 new file mode 100644 index 0000000000..358d7cfc7a --- /dev/null +++ b/examples/SPIN/cobalt_fcc/log.11May18.spin.cobalt_fcc.g++.4 @@ -0,0 +1,142 @@ +LAMMPS (11 May 2018) +# fcc cobalt in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.54 +Lattice spacing in x,y,z = 3.54 3.54 3.54 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (17.7 17.7 17.7) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000240088 secs + +# setting mass, mag. moments, and interactions for fcc cobalt + +mass 1 58.93 + +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 + 500 settings made for spin +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +fix_modify 1 energy yes + +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# compute and output options + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +thermo_style custom f_1 + +variable magx equal c_out_mag[1] +variable magy equal c_out_mag[2] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time f_1 v_magx v_magy v_magnorm v_emag temp etotal +thermo 50 + +#compute outsp all property/atom spx spy spz sp fmx fmy fmz +#dump 100 all custom 1 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.59954 + ghost atom cutoff = 6.59954 + binsize = 3.29977, bins = 6 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.163 | 5.163 | 5.163 Mbytes +Step Time f_1 v_magx v_magy v_magnorm v_emag Temp TotEng + 0 0 0.049785486 0 0 1 -187.94116 100.00543 -2372.4636 + 50 0.005 0.049785486 0 0 1 -187.94101 95.174807 -2372.4636 + 100 0.01 0.049785486 0 0 1 -187.94029 81.854304 -2372.4636 + 150 0.015 0.049785486 0 0 1 -187.93834 63.270938 -2372.4636 + 200 0.02 0.049785486 0 0 1 -187.93446 43.867262 -2372.4636 + 250 0.025 0.049785486 0 0 1 -187.92831 28.075261 -2372.4636 + 300 0.03 0.049785486 0 0 1 -187.92031 19.046222 -2372.4636 + 350 0.035 0.049785486 0 0 1 -187.91161 17.79071 -2372.4636 + 400 0.04 0.049785486 0 0 1 -187.9039 23.079994 -2372.4636 + 450 0.045 0.049785486 0 0 1 -187.89895 32.127316 -2372.4636 + 500 0.05 0.049785486 0 0 1 -187.89801 41.709644 -2372.4636 + 550 0.055 0.049785486 0 0 1 -187.90146 49.246292 -2372.4636 + 600 0.06 0.049785486 0 0 1 -187.90859 53.465535 -2372.4636 + 650 0.065 0.049785486 0 0 1 -187.91778 54.522857 -2372.4636 + 700 0.07 0.049785486 0 0 1 -187.9269 53.635521 -2372.4636 + 750 0.075 0.049785486 0 0 1 -187.93396 52.419678 -2372.4636 + 800 0.08 0.049785486 0 0 1 -187.9376 52.176558 -2372.4636 + 850 0.085 0.049785486 0 0 1 -187.93744 53.380592 -2372.4636 + 900 0.09 0.049785486 0 0 1 -187.93412 55.551378 -2372.4636 + 950 0.095 0.049785486 0 0 1 -187.92902 57.540047 -2372.4636 + 1000 0.1 0.049785486 0 0 1 -187.92378 58.088674 -2372.4636 +Loop time of 1.71411 on 4 procs for 1000 steps with 500 atoms + +Performance: 5.041 ns/day, 4.761 hours/ns, 583.392 timesteps/s +97.7% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.54717 | 0.57392 | 0.58784 | 2.1 | 33.48 +Neigh | 0.0023484 | 0.0025793 | 0.0026793 | 0.3 | 0.15 +Comm | 0.058548 | 0.073335 | 0.10006 | 5.9 | 4.28 +Output | 0.00042272 | 0.00079203 | 0.0018559 | 0.0 | 0.05 +Modify | 1.0577 | 1.0611 | 1.0625 | 0.2 | 61.90 +Other | | 0.00239 | | | 0.14 + +Nlocal: 125 ave 133 max 116 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 1099 ave 1108 max 1091 min +Histogram: 1 0 0 0 2 0 0 0 0 1 +Neighs: 6032.5 ave 6417 max 5489 min +Histogram: 1 0 0 0 0 0 1 1 0 1 +FullNghs: 12065 ave 13062 max 10970 min +Histogram: 1 0 0 0 0 2 0 0 0 1 + +Total # of neighbors = 48260 +Ave neighs/atom = 96.52 +Neighbor list builds = 6 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:01 diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index 76d41f724d..4a42ec419a 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -25,7 +25,7 @@ velocity all create 100 4928459 rot yes dist gaussian #pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 #pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 diff --git a/examples/SPIN/cobalt_hcp/log.11May18.spin.cobalt_hcp.g++.1 b/examples/SPIN/cobalt_hcp/log.11May18.spin.cobalt_hcp.g++.1 new file mode 100644 index 0000000000..4bb513de18 --- /dev/null +++ b/examples/SPIN/cobalt_hcp/log.11May18.spin.cobalt_hcp.g++.1 @@ -0,0 +1,318 @@ +LAMMPS (11 May 2018) +# hcp cobalt in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice hcp 2.5071 +Lattice spacing in x,y,z = 2.5071 4.34242 4.09408 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000801802 secs + +# setting mass, mag. moments, and interactions for hcp cobalt + +mass 1 58.93 + +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 + 500 settings made for spin +velocity all create 100 4928459 rot yes dist gaussian + +#pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 +#pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 + + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 +fix 3 all nve/spin lattice yes + +timestep 0.0001 + + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_emag temp etotal +thermo 10 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 2000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.59954 + ghost atom cutoff = 6.59954 + binsize = 3.29977, bins = 4 7 7 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.401 | 7.401 | 7.401 Mbytes +Step Time v_magnorm v_emag Temp TotEng + 0 0 1 -187.29499 100.00543 -2375.8943 + 10 0.001 1 -187.29714 99.845593 -2375.8943 + 20 0.002 1 -187.30356 99.367234 -2375.8943 + 30 0.003 1 -187.31419 98.573996 -2375.8943 + 40 0.004 1 -187.32896 97.472027 -2375.8943 + 50 0.005 1 -187.34772 96.069944 -2375.8943 + 60 0.006 1 -187.37032 94.378764 -2375.8943 + 70 0.007 1 -187.39656 92.411827 -2375.8943 + 80 0.008 1 -187.4262 90.184697 -2375.8943 + 90 0.009 1 -187.459 87.715037 -2375.8943 + 100 0.01 1 -187.49466 85.022479 -2375.8943 + 110 0.011 1 -187.53289 82.128462 -2375.8943 + 120 0.012 1 -187.57334 79.05606 -2375.8943 + 130 0.013 1 -187.61568 75.82979 -2375.8943 + 140 0.014 1 -187.65953 72.475403 -2375.8943 + 150 0.015 1 -187.70453 69.019658 -2375.8943 + 160 0.016 1 -187.75028 65.490086 -2375.8943 + 170 0.017 1 -187.79642 61.914735 -2375.8943 + 180 0.018 1 -187.84254 58.321911 -2375.8943 + 190 0.019 1 -187.88828 54.739907 -2375.8943 + 200 0.02 1 -187.93324 51.196728 -2375.8943 + 210 0.021 1 -187.97708 47.719812 -2375.8943 + 220 0.022 1 -188.01947 44.335762 -2375.8943 + 230 0.023 1 -188.06003 41.07007 -2375.8943 + 240 0.024 1 -188.09853 37.946852 -2375.8944 + 250 0.025 1 -188.13457 34.988599 -2375.8944 + 260 0.026 1 -188.16795 32.215943 -2375.8944 + 270 0.027 1 -188.19851 29.647465 -2375.8944 + 280 0.028 1 -188.22593 27.299481 -2375.8944 + 290 0.029 1 -188.25011 25.185896 -2375.8944 + 300 0.03 1 -188.27095 23.318075 -2375.8945 + 310 0.031 1 -188.2883 21.70475 -2375.8945 + 320 0.032 1 -188.30213 20.35194 -2375.8945 + 330 0.033 1 -188.31251 19.262946 -2375.8945 + 340 0.034 1 -188.31928 18.438347 -2375.8945 + 350 0.035 1 -188.32258 17.876036 -2375.8945 + 360 0.036 1 -188.32249 17.571322 -2375.8945 + 370 0.037 1 -188.31913 17.517032 -2375.8945 + 380 0.038 1 -188.31264 17.703653 -2375.8945 + 390 0.039 1 -188.30321 18.119513 -2375.8945 + 400 0.04 1 -188.29102 18.750969 -2375.8945 + 410 0.041 1 -188.2763 19.582631 -2375.8945 + 420 0.042 1 -188.25929 20.597597 -2375.8945 + 430 0.043 1 -188.24025 21.777699 -2375.8945 + 440 0.044 1 -188.21945 23.103765 -2375.8945 + 450 0.045 1 -188.19719 24.555878 -2375.8946 + 460 0.046 1 -188.17368 26.113643 -2375.8946 + 470 0.047 1 -188.1493 27.756439 -2375.8946 + 480 0.048 1 -188.12429 29.463677 -2375.8946 + 490 0.049 1 -188.09895 31.21504 -2375.8946 + 500 0.05 1 -188.07354 32.990713 -2375.8946 + 510 0.051 1 -188.04832 34.771601 -2375.8945 + 520 0.052 1 -188.02358 36.539517 -2375.8945 + 530 0.053 1 -187.99951 38.27736 -2375.8945 + 540 0.054 1 -187.97636 39.969275 -2375.8945 + 550 0.055 1 -187.95437 41.600775 -2375.8945 + 560 0.056 1 -187.93364 43.158863 -2375.8944 + 570 0.057 1 -187.9144 44.632119 -2375.8944 + 580 0.058 1 -187.89669 46.010765 -2375.8944 + 590 0.059 1 -187.88074 47.286714 -2375.8944 + 600 0.06 1 -187.86658 48.453573 -2375.8944 + 610 0.061 1 -187.85422 49.506668 -2375.8943 + 620 0.062 1 -187.84377 50.443021 -2375.8943 + 630 0.063 1 -187.8352 51.261297 -2375.8943 + 640 0.064 1 -187.8285 51.961764 -2375.8943 + 650 0.065 1 -187.8236 52.54622 -2375.8943 + 660 0.066 1 -187.8205 53.017899 -2375.8943 + 670 0.067 1 -187.81909 53.381374 -2375.8943 + 680 0.068 1 -187.81926 53.64244 -2375.8943 + 690 0.069 1 -187.82092 53.807997 -2375.8943 + 700 0.07 1 -187.82391 53.885909 -2375.8943 + 710 0.071 1 -187.82814 53.884865 -2375.8943 + 720 0.072 1 -187.83339 53.814238 -2375.8943 + 730 0.073 1 -187.83952 53.68392 -2375.8943 + 740 0.074 1 -187.84635 53.504185 -2375.8943 + 750 0.075 1 -187.85375 53.285525 -2375.8943 + 760 0.076 1 -187.86153 53.038494 -2375.8943 + 770 0.077 1 -187.86952 52.773567 -2375.8943 + 780 0.078 1 -187.87758 52.500994 -2375.8943 + 790 0.079 1 -187.88549 52.230655 -2375.8943 + 800 0.08 1 -187.89313 51.971933 -2375.8943 + 810 0.081 1 -187.90035 51.733593 -2375.8943 + 820 0.082 1 -187.90702 51.523671 -2375.8943 + 830 0.083 1 -187.91302 51.349376 -2375.8943 + 840 0.084 1 -187.91824 51.217006 -2375.8943 + 850 0.085 1 -187.9226 51.131875 -2375.8943 + 860 0.086 1 -187.92602 51.098259 -2375.8943 + 870 0.087 1 -187.92844 51.119356 -2375.8943 + 880 0.088 1 -187.92979 51.197261 -2375.8943 + 890 0.089 1 -187.93011 51.332955 -2375.8943 + 900 0.09 1 -187.92937 51.526314 -2375.8943 + 910 0.091 1 -187.92757 51.77613 -2375.8943 + 920 0.092 1 -187.92475 52.080145 -2375.8943 + 930 0.093 1 -187.92096 52.435106 -2375.8943 + 940 0.094 1 -187.91624 52.836825 -2375.8943 + 950 0.095 1 -187.91068 53.280251 -2375.8943 + 960 0.096 1 -187.90435 53.759559 -2375.8943 + 970 0.097 1 -187.89734 54.268246 -2375.8943 + 980 0.098 1 -187.88981 54.799223 -2375.8943 + 990 0.099 1 -187.88185 55.344928 -2375.8943 + 1000 0.1 1 -187.87357 55.897438 -2375.8943 + 1010 0.101 1 -187.86511 56.448585 -2375.8943 + 1020 0.102 1 -187.8566 56.990069 -2375.8943 + 1030 0.103 1 -187.84817 57.513575 -2375.8943 + 1040 0.104 1 -187.83995 58.010887 -2375.8943 + 1050 0.105 1 -187.83208 58.474004 -2375.8943 + 1060 0.106 1 -187.8247 58.89524 -2375.8943 + 1070 0.107 1 -187.81789 59.267328 -2375.8943 + 1080 0.108 1 -187.81177 59.583518 -2375.8943 + 1090 0.109 1 -187.80646 59.837665 -2375.8943 + 1100 0.11 1 -187.80204 60.024306 -2375.8943 + 1110 0.111 1 -187.79861 60.138734 -2375.8943 + 1120 0.112 1 -187.79625 60.177056 -2375.8943 + 1130 0.113 1 -187.79497 60.136244 -2375.8943 + 1140 0.114 1 -187.79485 60.014176 -2375.8943 + 1150 0.115 1 -187.7959 59.809665 -2375.8943 + 1160 0.116 1 -187.79811 59.52248 -2375.8943 + 1170 0.117 1 -187.80157 59.153353 -2375.8943 + 1180 0.118 1 -187.80618 58.703971 -2375.8943 + 1190 0.119 1 -187.81193 58.176956 -2375.8943 + 1200 0.12 1 -187.81879 57.575849 -2375.8943 + 1210 0.121 1 -187.82668 56.905072 -2375.8943 + 1220 0.122 1 -187.83554 56.169878 -2375.8943 + 1230 0.123 1 -187.84528 55.376297 -2375.8943 + 1240 0.124 1 -187.85581 54.53107 -2375.8943 + 1250 0.125 1 -187.86702 53.641573 -2375.8943 + 1260 0.126 1 -187.8788 52.715739 -2375.8943 + 1270 0.127 1 -187.89103 51.761969 -2375.8943 + 1280 0.128 1 -187.90358 50.789036 -2375.8943 + 1290 0.129 1 -187.91632 49.805988 -2375.8943 + 1300 0.13 1 -187.92911 48.822045 -2375.8943 + 1310 0.131 1 -187.94182 47.846491 -2375.8943 + 1320 0.132 1 -187.95428 46.888574 -2375.8943 + 1330 0.133 1 -187.96643 45.957394 -2375.8943 + 1340 0.134 1 -187.9781 45.061794 -2375.8943 + 1350 0.135 1 -187.9892 44.210263 -2375.8943 + 1360 0.136 1 -187.99955 43.410832 -2375.8943 + 1370 0.137 1 -188.00907 42.670979 -2375.8943 + 1380 0.138 1 -188.01767 41.997547 -2375.8943 + 1390 0.139 1 -188.02525 41.396655 -2375.8943 + 1400 0.14 1 -188.03177 40.873631 -2375.8944 + 1410 0.141 1 -188.03711 40.432952 -2375.8944 + 1420 0.142 1 -188.04124 40.078172 -2375.8944 + 1430 0.143 1 -188.04413 39.811902 -2375.8944 + 1440 0.144 1 -188.04575 39.635775 -2375.8944 + 1450 0.145 1 -188.04607 39.550435 -2375.8943 + 1460 0.146 1 -188.04515 39.555512 -2375.8943 + 1470 0.147 1 -188.04298 39.649651 -2375.8943 + 1480 0.148 1 -188.03961 39.830523 -2375.8943 + 1490 0.149 1 -188.03508 40.094865 -2375.8943 + 1500 0.15 1 -188.02944 40.438519 -2375.8943 + 1510 0.151 1 -188.02275 40.856491 -2375.8943 + 1520 0.152 1 -188.01515 41.343019 -2375.8943 + 1530 0.153 1 -188.00671 41.891643 -2375.8943 + 1540 0.154 1 -187.99753 42.495295 -2375.8943 + 1550 0.155 1 -187.98772 43.14639 -2375.8943 + 1560 0.156 1 -187.9774 43.836918 -2375.8943 + 1570 0.157 1 -187.9667 44.558553 -2375.8943 + 1580 0.158 1 -187.95576 45.302751 -2375.8943 + 1590 0.159 1 -187.94466 46.060862 -2375.8943 + 1600 0.16 1 -187.93356 46.824226 -2375.8943 + 1610 0.161 1 -187.92257 47.584289 -2375.8943 + 1620 0.162 1 -187.91183 48.332703 -2375.8943 + 1630 0.163 1 -187.90145 49.061422 -2375.8943 + 1640 0.164 1 -187.89155 49.762798 -2375.8943 + 1650 0.165 1 -187.88222 50.429671 -2375.8943 + 1660 0.166 1 -187.87357 51.055445 -2375.8943 + 1670 0.167 1 -187.86569 51.634167 -2375.8943 + 1680 0.168 1 -187.85864 52.160588 -2375.8943 + 1690 0.169 1 -187.85249 52.630219 -2375.8943 + 1700 0.17 1 -187.8473 53.039377 -2375.8943 + 1710 0.171 1 -187.84311 53.385221 -2375.8943 + 1720 0.172 1 -187.83994 53.665778 -2375.8943 + 1730 0.173 1 -187.83781 53.879954 -2375.8943 + 1740 0.174 1 -187.83671 54.027539 -2375.8943 + 1750 0.175 1 -187.83663 54.109201 -2375.8943 + 1760 0.176 1 -187.83753 54.126472 -2375.8943 + 1770 0.177 1 -187.83941 54.081708 -2375.8943 + 1780 0.178 1 -187.8422 53.97806 -2375.8943 + 1790 0.179 1 -187.84584 53.819424 -2375.8943 + 1800 0.18 1 -187.85025 53.610389 -2375.8943 + 1810 0.181 1 -187.85535 53.356163 -2375.8943 + 1820 0.182 1 -187.86105 53.06251 -2375.8943 + 1830 0.183 1 -187.86723 52.735671 -2375.8943 + 1840 0.184 1 -187.87384 52.382262 -2375.8943 + 1850 0.185 1 -187.88075 52.009201 -2375.8943 + 1860 0.186 1 -187.88784 51.623613 -2375.8943 + 1870 0.187 1 -187.89501 51.232726 -2375.8943 + 1880 0.188 1 -187.90214 50.843782 -2375.8943 + 1890 0.189 1 -187.90912 50.463929 -2375.8943 + 1900 0.19 1 -187.91585 50.100133 -2375.8943 + 1910 0.191 1 -187.92222 49.759075 -2375.8943 + 1920 0.192 1 -187.92814 49.447064 -2375.8943 + 1930 0.193 1 -187.93351 49.169949 -2375.8943 + 1940 0.194 1 -187.93826 48.933036 -2375.8943 + 1950 0.195 1 -187.94232 48.741013 -2375.8943 + 1960 0.196 1 -187.94561 48.597888 -2375.8943 + 1970 0.197 1 -187.94809 48.506926 -2375.8943 + 1980 0.198 1 -187.94972 48.470605 -2375.8943 + 1990 0.199 1 -187.95047 48.490576 -2375.8943 + 2000 0.2 1 -187.95033 48.567643 -2375.8943 +Loop time of 10.5391 on 1 procs for 2000 steps with 500 atoms + +Performance: 1.640 ns/day, 14.638 hours/ns, 189.770 timesteps/s +99.6% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.9958 | 4.9958 | 4.9958 | 0.0 | 47.40 +Neigh | 0.020741 | 0.020741 | 0.020741 | 0.0 | 0.20 +Comm | 0.05899 | 0.05899 | 0.05899 | 0.0 | 0.56 +Output | 1.1598 | 1.1598 | 1.1598 | 0.0 | 11.00 +Modify | 4.2885 | 4.2885 | 4.2885 | 0.0 | 40.69 +Other | | 0.01522 | | | 0.14 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 2444 ave 2444 max 2444 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 27041 ave 27041 max 27041 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 54082 ave 54082 max 54082 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 54082 +Ave neighs/atom = 108.164 +Neighbor list builds = 12 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:10 diff --git a/examples/SPIN/cobalt_hcp/log.11May18.spin.cobalt_hcp.g++.4 b/examples/SPIN/cobalt_hcp/log.11May18.spin.cobalt_hcp.g++.4 new file mode 100644 index 0000000000..4e7e6b1b97 --- /dev/null +++ b/examples/SPIN/cobalt_hcp/log.11May18.spin.cobalt_hcp.g++.4 @@ -0,0 +1,318 @@ +LAMMPS (11 May 2018) +# hcp cobalt in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice hcp 2.5071 +Lattice spacing in x,y,z = 2.5071 4.34242 4.09408 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000241518 secs + +# setting mass, mag. moments, and interactions for hcp cobalt + +mass 1 58.93 + +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 + 500 settings made for spin +velocity all create 100 4928459 rot yes dist gaussian + +#pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 +#pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 + + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 +fix 3 all nve/spin lattice yes + +timestep 0.0001 + + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_emag temp etotal +thermo 10 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 2000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.59954 + ghost atom cutoff = 6.59954 + binsize = 3.29977, bins = 4 7 7 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.313 | 7.314 | 7.314 Mbytes +Step Time v_magnorm v_emag Temp TotEng + 0 0 1 -187.29499 100.00543 -2375.8943 + 10 0.001 1 -187.29721 99.841045 -2375.8943 + 20 0.002 1 -187.30385 99.349208 -2375.8943 + 30 0.003 1 -187.31485 98.533905 -2375.8943 + 40 0.004 1 -187.33011 97.401749 -2375.8943 + 50 0.005 1 -187.34949 95.961938 -2375.8943 + 60 0.006 1 -187.37283 94.22618 -2375.8943 + 70 0.007 1 -187.39992 92.208606 -2375.8943 + 80 0.008 1 -187.43051 89.92566 -2375.8943 + 90 0.009 1 -187.46434 87.39597 -2375.8943 + 100 0.01 1 -187.5011 84.640195 -2375.8943 + 110 0.011 1 -187.54047 81.680862 -2375.8943 + 120 0.012 1 -187.5821 78.542172 -2375.8943 + 130 0.013 1 -187.62564 75.249797 -2375.8943 + 140 0.014 1 -187.67069 71.830656 -2375.8943 + 150 0.015 1 -187.71686 68.312673 -2375.8943 + 160 0.016 1 -187.76377 64.724523 -2375.8943 + 170 0.017 1 -187.81099 61.095365 -2375.8943 + 180 0.018 1 -187.85814 57.454566 -2375.8943 + 190 0.019 1 -187.90481 53.831412 -2375.8943 + 200 0.02 1 -187.95061 50.254822 -2375.8943 + 210 0.021 1 -187.99517 46.753056 -2375.8943 + 220 0.022 1 -188.03812 43.353428 -2375.8943 + 230 0.023 1 -188.07913 40.082023 -2375.8943 + 240 0.024 1 -188.11787 36.963429 -2375.8943 + 250 0.025 1 -188.15409 34.020481 -2375.8943 + 260 0.026 1 -188.1875 31.27403 -2375.8943 + 270 0.027 1 -188.21782 28.74271 -2375.8943 + 280 0.028 1 -188.2449 26.44276 -2375.8943 + 290 0.029 1 -188.26857 24.387875 -2375.8943 + 300 0.03 1 -188.28877 22.589076 -2375.8944 + 310 0.031 1 -188.30529 21.054615 -2375.8944 + 320 0.032 1 -188.31814 19.789913 -2375.8944 + 330 0.033 1 -188.3273 18.797563 -2375.8944 + 340 0.034 1 -188.33284 18.077336 -2375.8944 + 350 0.035 1 -188.33478 17.626237 -2375.8945 + 360 0.036 1 -188.33319 17.438611 -2375.8945 + 370 0.037 1 -188.32824 17.506247 -2375.8945 + 380 0.038 1 -188.32007 17.818564 -2375.8945 + 390 0.039 1 -188.30888 18.362769 -2375.8945 + 400 0.04 1 -188.2949 19.124086 -2375.8945 + 410 0.041 1 -188.27837 20.085983 -2375.8945 + 420 0.042 1 -188.25957 21.230423 -2375.8945 + 430 0.043 1 -188.23868 22.538112 -2375.8945 + 440 0.044 1 -188.21604 23.988778 -2375.8945 + 450 0.045 1 -188.19195 25.561447 -2375.8945 + 460 0.046 1 -188.16672 27.234703 -2375.8945 + 470 0.047 1 -188.14064 28.986964 -2375.8946 + 480 0.048 1 -188.11402 30.796738 -2375.8946 + 490 0.049 1 -188.08713 32.642869 -2375.8945 + 500 0.05 1 -188.06032 34.504776 -2375.8945 + 510 0.051 1 -188.03383 36.362662 -2375.8945 + 520 0.052 1 -188.00793 38.197721 -2375.8945 + 530 0.053 1 -187.98284 39.992314 -2375.8945 + 540 0.054 1 -187.95884 41.730127 -2375.8945 + 550 0.055 1 -187.93612 43.396298 -2375.8945 + 560 0.056 1 -187.91489 44.97754 -2375.8945 + 570 0.057 1 -187.89524 46.462224 -2375.8945 + 580 0.058 1 -187.87735 47.840443 -2375.8945 + 590 0.059 1 -187.8613 49.104064 -2375.8945 + 600 0.06 1 -187.84719 50.246744 -2375.8945 + 610 0.061 1 -187.83509 51.26393 -2375.8944 + 620 0.062 1 -187.82506 52.152839 -2375.8944 + 630 0.063 1 -187.81706 52.912413 -2375.8944 + 640 0.064 1 -187.81109 53.543272 -2375.8944 + 650 0.065 1 -187.80708 54.047636 -2375.8944 + 660 0.066 1 -187.80499 54.429234 -2375.8944 + 670 0.067 1 -187.8047 54.693202 -2375.8944 + 680 0.068 1 -187.80613 54.845965 -2375.8944 + 690 0.069 1 -187.80914 54.895106 -2375.8944 + 700 0.07 1 -187.81356 54.849238 -2375.8944 + 710 0.071 1 -187.81923 54.71786 -2375.8943 + 720 0.072 1 -187.82608 54.511181 -2375.8943 + 730 0.073 1 -187.83388 54.239987 -2375.8943 + 740 0.074 1 -187.84244 53.91548 -2375.8943 + 750 0.075 1 -187.85158 53.549112 -2375.8943 + 760 0.076 1 -187.86112 53.152433 -2375.8943 + 770 0.077 1 -187.87086 52.736925 -2375.8943 + 780 0.078 1 -187.88063 52.313858 -2375.8943 + 790 0.079 1 -187.89026 51.894138 -2375.8943 + 800 0.08 1 -187.89958 51.488169 -2375.8943 + 810 0.081 1 -187.90842 51.105725 -2375.8943 + 820 0.082 1 -187.91663 50.755829 -2375.8943 + 830 0.083 1 -187.92411 50.446651 -2375.8943 + 840 0.084 1 -187.93071 50.185404 -2375.8943 + 850 0.085 1 -187.93637 49.978262 -2375.8943 + 860 0.086 1 -187.94099 49.830307 -2375.8943 + 870 0.087 1 -187.9445 49.745473 -2375.8943 + 880 0.088 1 -187.94685 49.726517 -2375.8943 + 890 0.089 1 -187.94802 49.774999 -2375.8943 + 900 0.09 1 -187.94799 49.891282 -2375.8943 + 910 0.091 1 -187.94678 50.074549 -2375.8943 + 920 0.092 1 -187.94441 50.322833 -2375.8943 + 930 0.093 1 -187.94093 50.633063 -2375.8943 + 940 0.094 1 -187.93639 51.001126 -2375.8943 + 950 0.095 1 -187.93089 51.421938 -2375.8943 + 960 0.096 1 -187.9245 51.889531 -2375.8943 + 970 0.097 1 -187.91733 52.397148 -2375.8943 + 980 0.098 1 -187.9095 52.937345 -2375.8943 + 990 0.099 1 -187.90113 53.502108 -2375.8943 + 1000 0.1 1 -187.89236 54.082966 -2375.8943 + 1010 0.101 1 -187.88332 54.671115 -2375.8943 + 1020 0.102 1 -187.87415 55.257545 -2375.8943 + 1030 0.103 1 -187.86501 55.833162 -2375.8943 + 1040 0.104 1 -187.85602 56.388915 -2375.8943 + 1050 0.105 1 -187.84734 56.915918 -2375.8943 + 1060 0.106 1 -187.83909 57.405575 -2375.8943 + 1070 0.107 1 -187.83143 57.849686 -2375.8943 + 1080 0.108 1 -187.82446 58.240564 -2375.8943 + 1090 0.109 1 -187.8183 58.571132 -2375.8943 + 1100 0.11 1 -187.81306 58.835016 -2375.8943 + 1110 0.111 1 -187.80883 59.026633 -2375.8943 + 1120 0.112 1 -187.8057 59.141258 -2375.8943 + 1130 0.113 1 -187.80372 59.17509 -2375.8943 + 1140 0.114 1 -187.80295 59.125305 -2375.8943 + 1150 0.115 1 -187.80341 58.990092 -2375.8943 + 1160 0.116 1 -187.80515 58.76868 -2375.8943 + 1170 0.117 1 -187.80814 58.461352 -2375.8943 + 1180 0.118 1 -187.81244 58.069457 -2375.8943 + 1190 0.119 1 -187.81794 57.595377 -2375.8944 + 1200 0.12 1 -187.82458 57.042514 -2375.8944 + 1210 0.121 1 -187.83233 56.415256 -2375.8944 + 1220 0.122 1 -187.84112 55.718931 -2375.8944 + 1230 0.123 1 -187.85086 54.959744 -2375.8944 + 1240 0.124 1 -187.86145 54.144707 -2375.8944 + 1250 0.125 1 -187.87277 53.281562 -2375.8944 + 1260 0.126 1 -187.88471 52.378686 -2375.8944 + 1270 0.127 1 -187.89713 51.445 -2375.8944 + 1280 0.128 1 -187.9099 50.489858 -2375.8944 + 1290 0.129 1 -187.92288 49.522943 -2375.8944 + 1300 0.13 1 -187.93591 48.554147 -2375.8944 + 1310 0.131 1 -187.94886 47.593456 -2375.8944 + 1320 0.132 1 -187.96157 46.650829 -2375.8944 + 1330 0.133 1 -187.97391 45.736073 -2375.8944 + 1340 0.134 1 -187.98573 44.858733 -2375.8944 + 1350 0.135 1 -187.99691 44.027964 -2375.8944 + 1360 0.136 1 -188.00731 43.252426 -2375.8944 + 1370 0.137 1 -188.01678 42.540178 -2375.8943 + 1380 0.138 1 -188.02529 41.898568 -2375.8943 + 1390 0.139 1 -188.0327 41.334152 -2375.8943 + 1400 0.14 1 -188.03894 40.852606 -2375.8943 + 1410 0.141 1 -188.04396 40.45866 -2375.8944 + 1420 0.142 1 -188.04768 40.156041 -2375.8944 + 1430 0.143 1 -188.05007 39.947416 -2375.8944 + 1440 0.144 1 -188.05107 39.834367 -2375.8944 + 1450 0.145 1 -188.0507 39.817378 -2375.8944 + 1460 0.146 1 -188.04898 39.895828 -2375.8944 + 1470 0.147 1 -188.04595 40.068005 -2375.8945 + 1480 0.148 1 -188.04164 40.331129 -2375.8945 + 1490 0.149 1 -188.03603 40.681394 -2375.8945 + 1500 0.15 1 -188.02929 41.114003 -2375.8945 + 1510 0.151 1 -188.02148 41.623259 -2375.8945 + 1520 0.152 1 -188.0127 42.20263 -2375.8945 + 1530 0.153 1 -188.00302 42.844846 -2375.8945 + 1540 0.154 1 -187.99255 43.541977 -2375.8945 + 1550 0.155 1 -187.98148 44.285554 -2375.8945 + 1560 0.156 1 -187.96989 45.066666 -2375.8945 + 1570 0.157 1 -187.95793 45.876084 -2375.8945 + 1580 0.158 1 -187.94574 46.704378 -2375.8945 + 1590 0.159 1 -187.93346 47.542032 -2375.8945 + 1600 0.16 1 -187.92122 48.379564 -2375.8945 + 1610 0.161 1 -187.90916 49.207642 -2375.8945 + 1620 0.162 1 -187.89742 50.0172 -2375.8945 + 1630 0.163 1 -187.88613 50.799541 -2375.8945 + 1640 0.164 1 -187.87536 51.546446 -2375.8944 + 1650 0.165 1 -187.86531 52.250265 -2375.8944 + 1660 0.166 1 -187.85604 52.904001 -2375.8944 + 1670 0.167 1 -187.84765 53.501394 -2375.8944 + 1680 0.168 1 -187.84021 54.036987 -2375.8944 + 1690 0.169 1 -187.83379 54.506178 -2375.8944 + 1700 0.17 1 -187.82846 54.905273 -2375.8944 + 1710 0.171 1 -187.82424 55.231514 -2375.8944 + 1720 0.172 1 -187.82117 55.483104 -2375.8944 + 1730 0.173 1 -187.81922 55.659221 -2375.8944 + 1740 0.174 1 -187.81843 55.760007 -2375.8944 + 1750 0.175 1 -187.81881 55.786556 -2375.8944 + 1760 0.176 1 -187.82029 55.740888 -2375.8944 + 1770 0.177 1 -187.82284 55.625916 -2375.8944 + 1780 0.178 1 -187.82639 55.445397 -2375.8944 + 1790 0.179 1 -187.83088 55.203871 -2375.8944 + 1800 0.18 1 -187.83623 54.906597 -2375.8944 + 1810 0.181 1 -187.84235 54.559471 -2375.8944 + 1820 0.182 1 -187.84913 54.168949 -2375.8944 + 1830 0.183 1 -187.85646 53.741952 -2375.8943 + 1840 0.184 1 -187.86424 53.28578 -2375.8943 + 1850 0.185 1 -187.87239 52.807988 -2375.8943 + 1860 0.186 1 -187.88077 52.3163 -2375.8943 + 1870 0.187 1 -187.88925 51.81851 -2375.8943 + 1880 0.188 1 -187.89772 51.322368 -2375.8943 + 1890 0.189 1 -187.90605 50.835483 -2375.8943 + 1900 0.19 1 -187.91415 50.365218 -2375.8943 + 1910 0.191 1 -187.92189 49.9186 -2375.8943 + 1920 0.192 1 -187.92917 49.502222 -2375.8943 + 1930 0.193 1 -187.93591 49.122167 -2375.8943 + 1940 0.194 1 -187.94198 48.783928 -2375.8943 + 1950 0.195 1 -187.94737 48.492348 -2375.8943 + 1960 0.196 1 -187.95199 48.25154 -2375.8943 + 1970 0.197 1 -187.95576 48.064862 -2375.8943 + 1980 0.198 1 -187.95866 47.934875 -2375.8943 + 1990 0.199 1 -187.96065 47.863314 -2375.8943 + 2000 0.2 1 -187.96171 47.851079 -2375.8943 +Loop time of 4.40076 on 4 procs for 2000 steps with 500 atoms + +Performance: 3.927 ns/day, 6.112 hours/ns, 454.467 timesteps/s +96.2% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.2934 | 1.3683 | 1.432 | 4.2 | 31.09 +Neigh | 0.005039 | 0.0053418 | 0.0054908 | 0.2 | 0.12 +Comm | 0.12642 | 0.1922 | 0.26891 | 11.6 | 4.37 +Output | 0.39256 | 0.40875 | 0.43431 | 2.5 | 9.29 +Modify | 2.395 | 2.4202 | 2.4352 | 1.0 | 54.99 +Other | | 0.006007 | | | 0.14 + +Nlocal: 125 ave 130 max 122 min +Histogram: 1 1 0 1 0 0 0 0 0 1 +Nghost: 1324 ave 1330 max 1316 min +Histogram: 1 0 0 1 0 0 0 0 0 2 +Neighs: 6747 ave 6959 max 6652 min +Histogram: 2 1 0 0 0 0 0 0 0 1 +FullNghs: 13494 ave 14060 max 13186 min +Histogram: 2 0 0 1 0 0 0 0 0 1 + +Total # of neighbors = 53976 +Ave neighs/atom = 107.952 +Neighbor list builds = 12 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:04 diff --git a/examples/SPIN/iron/in.spin.iron b/examples/SPIN/iron/in.spin.iron index 758cc6c589..c2d5082cb6 100644 --- a/examples/SPIN/iron/in.spin.iron +++ b/examples/SPIN/iron/in.spin.iron @@ -23,7 +23,7 @@ set group all spin/random 31 2.2 velocity all create 100 4928459 rot yes dist gaussian pair_style hybrid/overlay eam/alloy spin/exchange 3.5 -pair_coeff * * eam/alloy ../examples/SPIN/iron/Fe_Mishin2006.eam.alloy Fe +pair_coeff * * eam/alloy Fe_Mishin2006.eam.alloy Fe pair_coeff * * spin/exchange exchange 3.4 0.02726 0.2171 1.841 neighbor 0.1 bin diff --git a/examples/SPIN/iron/log.11May18.spin.iron.g++.1 b/examples/SPIN/iron/log.11May18.spin.iron.g++.1 new file mode 100644 index 0000000000..1b27478002 --- /dev/null +++ b/examples/SPIN/iron/log.11May18.spin.iron.g++.1 @@ -0,0 +1,1115 @@ +LAMMPS (11 May 2018) +# bcc iron in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice bcc 2.8665 +Lattice spacing in x,y,z = 2.8665 2.8665 2.8665 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (14.3325 14.3325 14.3325) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 250 atoms + Time spent = 0.000727415 secs + +# setting mass, mag. moments, and interactions for bcc iron + +mass 1 55.845 + +set group all spin/random 31 2.2 + 250 settings made for spin/random +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 3.5 +pair_coeff * * eam/alloy Fe_Mishin2006.eam.alloy Fe +pair_coeff * * spin/exchange exchange 3.4 0.02726 0.2171 1.841 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# compute and output options + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_tmag temp v_emag ke pe etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump_iron.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 50000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.77337 + ghost atom cutoff = 5.77337 + binsize = 2.88668, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.319 | 7.319 | 7.319 Mbytes +Step Time v_magnorm v_tmag Temp v_emag KinEng PotEng TotEng + 0 0 0.076456975 9109.0924 100.00358 -0.85791269 3.2186929 -1070.8579 -1067.6392 + 50 0.005 0.076456974 9316.7659 96.663685 -0.86504718 3.1111957 -1070.7504 -1067.6392 + 100 0.01 0.076456983 9488.3743 86.965803 -0.88035771 2.7990619 -1070.4383 -1067.6392 + 150 0.015 0.076456973 9589.0566 72.421197 -0.8996913 2.3309324 -1069.9702 -1067.6392 + 200 0.02 0.076456944 9415.3095 55.633188 -0.921682 1.7905973 -1069.4298 -1067.6392 + 250 0.025 0.076456953 8878.9394 39.802206 -0.94649004 1.2810649 -1068.9203 -1067.6392 + 300 0.03 0.076457027 8203.3388 27.882295 -0.97253854 0.8974133 -1068.5366 -1067.6392 + 350 0.035 0.076457103 7720.309 21.776538 -0.99708692 0.70089477 -1068.3401 -1067.6392 + 400 0.04 0.076457117 7531.0683 21.857102 -1.0190244 0.70348778 -1068.3427 -1067.6392 + 450 0.045 0.076457072 7479.8073 26.959407 -1.0389343 0.86770942 -1068.5069 -1067.6392 + 500 0.05 0.076457001 7461.6683 34.92521 -1.0582008 1.124095 -1068.7633 -1067.6392 + 550 0.055 0.076456962 7396.1112 43.405912 -1.0785156 1.397053 -1069.0363 -1067.6392 + 600 0.06 0.076456997 7121.894 50.544844 -1.102048 1.626825 -1069.2661 -1067.6392 + 650 0.065 0.076457079 6683.4805 55.261218 -1.1296588 1.7786252 -1069.4179 -1067.6392 + 700 0.07 0.076457136 6313.6896 57.25083 -1.1595102 1.8426624 -1069.4819 -1067.6392 + 750 0.075 0.076457132 6199.0363 56.934336 -1.1893875 1.8324758 -1069.4717 -1067.6392 + 800 0.08 0.076457116 6265.997 55.266343 -1.2181223 1.7787901 -1069.418 -1067.6392 + 850 0.085 0.076457116 6326.5886 53.376453 -1.2443326 1.7179626 -1069.3572 -1067.6392 + 900 0.09 0.076457121 6336.1261 52.279557 -1.2676425 1.6826581 -1069.3219 -1067.6392 + 950 0.095 0.076457122 6288.4204 52.667743 -1.2902335 1.6951522 -1069.3344 -1067.6392 + 1000 0.1 0.076457135 6122.1622 54.684094 -1.314147 1.76005 -1069.3993 -1067.6392 + 1050 0.105 0.076457155 5830.2219 57.880399 -1.3392396 1.8629256 -1069.5022 -1067.6392 + 1100 0.11 0.076457162 5477.4214 61.505616 -1.3662331 1.979606 -1069.6188 -1067.6392 + 1150 0.115 0.076457195 5194.1423 64.810972 -1.3984474 2.0859914 -1069.7252 -1067.6392 + 1200 0.12 0.076457219 5096.2484 67.147472 -1.438326 2.1611935 -1069.8004 -1067.6392 + 1250 0.125 0.076457214 5180.7444 67.957533 -1.4822383 2.1872659 -1069.8265 -1067.6392 + 1300 0.13 0.076457208 5332.4483 66.96652 -1.5226303 2.1553694 -1069.7946 -1067.6392 + 1350 0.135 0.076457225 5441.1287 64.471602 -1.5553539 2.0750686 -1069.7143 -1067.6392 + 1400 0.14 0.076457244 5466.8622 61.292592 -1.5804721 1.9727496 -1069.612 -1067.6392 + 1450 0.145 0.07645724 5403.309 58.518161 -1.6006864 1.8834524 -1069.5227 -1067.6392 + 1500 0.15 0.076457224 5275.2171 57.1713 -1.6196756 1.8401027 -1069.4793 -1067.6392 + 1550 0.155 0.076457217 5122.7481 57.878063 -1.6407322 1.8628504 -1069.5021 -1067.6392 + 1600 0.16 0.076457217 4968.5049 60.639452 -1.6657935 1.9517278 -1069.591 -1067.6392 + 1650 0.165 0.076457208 4850.1861 64.668839 -1.690847 2.0814168 -1069.7206 -1067.6392 + 1700 0.17 0.076457217 4809.0194 68.693586 -1.7087416 2.2109564 -1069.8502 -1067.6392 + 1750 0.175 0.076457274 4835.8611 71.611033 -1.7188587 2.3048567 -1069.9441 -1067.6392 + 1800 0.18 0.076457318 4929.7428 72.815077 -1.7280248 2.3436098 -1069.9828 -1067.6392 + 1850 0.185 0.076457279 5036.6365 72.102335 -1.7426092 2.3206696 -1069.9599 -1067.6392 + 1900 0.19 0.076457222 5116.2436 69.579977 -1.7638235 2.2394856 -1069.8787 -1067.6392 + 1950 0.195 0.076457228 5207.2334 65.715745 -1.7895824 2.1151122 -1069.7543 -1067.6392 + 2000 0.2 0.076457288 5216.0413 61.340972 -1.8174915 1.9743068 -1069.6135 -1067.6392 + 2050 0.205 0.076457267 5023.1601 57.468628 -1.8456914 1.8496724 -1069.4889 -1067.6392 + 2100 0.21 0.076457198 4748.7818 55.033266 -1.8742291 1.7712884 -1069.4105 -1067.6392 + 2150 0.215 0.076457199 4558.1302 54.573806 -1.9035225 1.7565003 -1069.3957 -1067.6392 + 2200 0.22 0.076457185 4483.1644 56.074241 -1.9322669 1.804793 -1069.444 -1067.6392 + 2250 0.225 0.076457114 4430.1583 59.0552 -1.9577399 1.9007374 -1069.54 -1067.6392 + 2300 0.23 0.076457092 4353.7973 62.874849 -1.9801275 2.0236758 -1069.6629 -1067.6392 + 2350 0.235 0.076457145 4303.5275 66.892738 -2.0022129 2.1529947 -1069.7922 -1067.6392 + 2400 0.24 0.076457171 4258.6889 70.426826 -2.0233072 2.2667421 -1069.906 -1067.6392 + 2450 0.245 0.076457169 4178.5775 72.910422 -2.0405304 2.3466785 -1069.9859 -1067.6392 + 2500 0.25 0.07645717 4114.786 74.106367 -2.0531755 2.3851709 -1070.0244 -1067.6392 + 2550 0.255 0.076457136 4067.5017 74.169349 -2.0634674 2.3871981 -1070.0264 -1067.6392 + 2600 0.26 0.076457099 4045.3324 73.586199 -2.0755814 2.3684289 -1070.0077 -1067.6392 + 2650 0.265 0.076457099 4137.898 72.914235 -2.0913646 2.3468012 -1069.986 -1067.6392 + 2700 0.27 0.076457106 4332.063 72.583192 -2.1091075 2.3361464 -1069.9754 -1067.6392 + 2750 0.275 0.07645709 4465.1953 72.814559 -2.125099 2.3435931 -1069.9828 -1067.6392 + 2800 0.28 0.076457051 4516.5192 73.652154 -2.1371914 2.3705517 -1070.0098 -1067.6392 + 2850 0.285 0.076457019 4555.5962 75.060211 -2.1489378 2.4158711 -1070.0551 -1067.6392 + 2900 0.29 0.076457069 4544.2734 76.844795 -2.1667679 2.4733094 -1070.1125 -1067.6392 + 2950 0.295 0.076457172 4460.2109 78.48171 -2.1924421 2.5259948 -1070.1652 -1067.6392 + 3000 0.3 0.076457219 4323.2746 79.20682 -2.2209955 2.549333 -1070.1886 -1067.6392 + 3050 0.305 0.076457213 4155.688 78.543529 -2.2505299 2.5279844 -1070.1672 -1067.6392 + 3100 0.31 0.076457203 3969.6188 76.554785 -2.2858382 2.4639752 -1070.1032 -1067.6392 + 3150 0.315 0.076457187 3761.432 73.396149 -2.3245055 2.362312 -1070.0015 -1067.6392 + 3200 0.32 0.076457142 3602.8035 69.313196 -2.3577056 2.230899 -1069.8701 -1067.6392 + 3250 0.325 0.076457116 3505.707 65.032482 -2.3836874 2.0931209 -1069.7324 -1067.6392 + 3300 0.33 0.07645716 3424.8795 61.551539 -2.4057167 1.9810841 -1069.6203 -1067.6392 + 3350 0.335 0.076457236 3335.9672 59.709703 -2.4251844 1.9218031 -1069.561 -1067.6392 + 3400 0.34 0.076457298 3238.0186 60.026953 -2.4425501 1.9320141 -1069.5712 -1067.6392 + 3450 0.345 0.076457297 3185.0674 62.613739 -2.4593531 2.0152718 -1069.6545 -1067.6392 + 3500 0.35 0.07645723 3197.4087 67.011871 -2.4756907 2.1568291 -1069.7961 -1067.6392 + 3550 0.355 0.076457177 3216.1428 72.316209 -2.4911379 2.3275533 -1069.9668 -1067.6392 + 3600 0.36 0.076457165 3241.0326 77.550071 -2.5083858 2.4960092 -1070.1352 -1067.6392 + 3650 0.365 0.076457168 3309.6874 81.877688 -2.5306273 2.6352969 -1070.2745 -1067.6392 + 3700 0.37 0.07645718 3350.748 84.764646 -2.5595247 2.7282159 -1070.3674 -1067.6392 + 3750 0.375 0.07645721 3368.085 86.031781 -2.5938559 2.7689996 -1070.4082 -1067.6392 + 3800 0.38 0.076457208 3425.3173 85.733048 -2.6266899 2.7593847 -1070.3986 -1067.6392 + 3850 0.385 0.076457165 3420.4429 84.240647 -2.6514805 2.7113506 -1070.3506 -1067.6392 + 3900 0.39 0.076457146 3323.0403 82.320886 -2.6700966 2.6495616 -1070.2888 -1067.6392 + 3950 0.395 0.076457179 3273.2625 80.780607 -2.6892405 2.5999865 -1070.2392 -1067.6392 + 4000 0.4 0.076457229 3313.2671 79.92769 -2.709641 2.5725347 -1070.2118 -1067.6392 + 4050 0.405 0.076457272 3381.1117 79.663389 -2.7291493 2.564028 -1070.2033 -1067.6392 + 4100 0.41 0.07645731 3373.3005 79.895158 -2.7514856 2.5714877 -1070.2107 -1067.6392 + 4150 0.415 0.076457296 3279.6989 80.402828 -2.7788004 2.5878274 -1070.2271 -1067.6392 + 4200 0.42 0.076457251 3197.0478 80.770336 -2.8064773 2.599656 -1070.2389 -1067.6392 + 4250 0.425 0.076457243 3160.9065 80.756747 -2.8307967 2.5992186 -1070.2385 -1067.6392 + 4300 0.43 0.076457282 3173.9599 80.446488 -2.852192 2.5892326 -1070.2285 -1067.6392 + 4350 0.435 0.076457289 3185.8003 80.110494 -2.8726607 2.5784184 -1070.2177 -1067.6392 + 4400 0.44 0.076457262 3166.3054 80.045036 -2.8936787 2.5763116 -1070.2155 -1067.6392 + 4450 0.445 0.076457226 3177.4332 80.500194 -2.9171408 2.5909612 -1070.2302 -1067.6392 + 4500 0.45 0.076457174 3238.8362 81.573722 -2.9447352 2.6255135 -1070.2647 -1067.6392 + 4550 0.455 0.07645714 3277.7104 83.104228 -2.975052 2.6747741 -1070.314 -1067.6392 + 4600 0.46 0.076457157 3224.8571 84.845473 -3.0065552 2.7308174 -1070.37 -1067.6392 + 4650 0.465 0.076457215 3112.9952 86.608217 -3.03972 2.7875527 -1070.4268 -1067.6392 + 4700 0.47 0.076457254 3001.141 88.18732 -3.074928 2.8383773 -1070.4776 -1067.6392 + 4750 0.475 0.076457235 2904.0735 89.204263 -3.1082127 2.8711084 -1070.5103 -1067.6392 + 4800 0.48 0.076457195 2832.0276 89.24571 -3.134302 2.8724424 -1070.5117 -1067.6392 + 4850 0.485 0.076457172 2833.7453 88.206351 -3.1541802 2.8389899 -1070.4782 -1067.6392 + 4900 0.49 0.076457184 2941.993 86.310712 -3.1725372 2.7779773 -1070.4172 -1067.6392 + 4950 0.495 0.076457228 3082.4825 84.029047 -3.1931038 2.7045401 -1070.3438 -1067.6392 + 5000 0.5 0.07645727 3155.7095 81.99875 -3.2175967 2.6391934 -1070.2784 -1067.6392 + 5050 0.505 0.076457297 3162.1875 80.72053 -3.2420203 2.5980529 -1070.2373 -1067.6392 + 5100 0.51 0.076457279 3133.3889 80.483768 -3.2606472 2.5904325 -1070.2297 -1067.6392 + 5150 0.515 0.076457223 3144.6361 81.566513 -3.2759117 2.6252815 -1070.2645 -1067.6392 + 5200 0.52 0.076457166 3156.8183 84.062018 -3.2944729 2.7056013 -1070.3448 -1067.6392 + 5250 0.525 0.076457128 3059.9886 87.694328 -3.3209415 2.82251 -1070.4617 -1067.6392 + 5300 0.53 0.076457126 2891.6506 91.782947 -3.3547324 2.9541054 -1070.5933 -1067.6392 + 5350 0.535 0.076457151 2751.9451 95.417928 -3.3914125 3.0711001 -1070.7103 -1067.6392 + 5400 0.54 0.07645725 2681.0265 97.845096 -3.4276651 3.1492204 -1070.7885 -1067.6392 + 5450 0.545 0.076457325 2657.0871 98.736021 -3.4632111 3.1778955 -1070.8171 -1067.6392 + 5500 0.55 0.076457263 2653.1919 98.075727 -3.4957627 3.1566434 -1070.7959 -1067.6392 + 5550 0.555 0.076457185 2644.2053 96.114963 -3.5208827 3.0935347 -1070.7328 -1067.6392 + 5600 0.56 0.076457195 2622.4174 93.525807 -3.5389264 3.0102007 -1070.6494 -1067.6392 + 5650 0.565 0.07645725 2616.3851 91.264369 -3.5558733 2.9374145 -1070.5766 -1067.6392 + 5700 0.57 0.076457256 2608.2454 90.135397 -3.5771374 2.9010777 -1070.5403 -1067.6392 + 5750 0.575 0.076457193 2573.217 90.456889 -3.6030061 2.9114252 -1070.5507 -1067.6392 + 5800 0.58 0.076457145 2565.3325 92.099499 -3.6318265 2.9642939 -1070.6035 -1067.6392 + 5850 0.585 0.076457161 2566.2763 94.62532 -3.6627041 3.0455894 -1070.6848 -1067.6392 + 5900 0.59 0.076457186 2564.6814 97.321391 -3.6927592 3.1323645 -1070.7716 -1067.6392 + 5950 0.595 0.076457195 2570.6317 99.384979 -3.7170023 3.1987827 -1070.838 -1067.6392 + 6000 0.6 0.076457206 2556.8466 100.3814 -3.7363622 3.2308533 -1070.8701 -1067.6392 + 6050 0.605 0.076457195 2521.7989 100.35237 -3.7587516 3.2299188 -1070.8692 -1067.6392 + 6100 0.61 0.076457175 2476.1857 99.370382 -3.7869326 3.1983129 -1070.8375 -1067.6392 + 6150 0.615 0.076457178 2397.2805 97.465979 -3.8168635 3.1370182 -1070.7763 -1067.6392 + 6200 0.62 0.07645713 2286.8528 94.931714 -3.8450242 3.0554509 -1070.6947 -1067.6392 + 6250 0.625 0.076457116 2250.5238 92.438461 -3.8722441 2.9752036 -1070.6144 -1067.6392 + 6300 0.63 0.076457156 2338.521 90.714356 -3.9006124 2.9197119 -1070.5589 -1067.6392 + 6350 0.635 0.07645717 2433.0115 90.142291 -3.9291158 2.9012996 -1070.5405 -1067.6392 + 6400 0.64 0.076457159 2467.5348 90.771111 -3.9562691 2.9215387 -1070.5608 -1067.6392 + 6450 0.645 0.076457107 2475.8592 92.488016 -3.9828131 2.9767986 -1070.616 -1067.6392 + 6500 0.65 0.0764571 2489.7418 95.127451 -4.0122141 3.0617508 -1070.701 -1067.6392 + 6550 0.655 0.076457169 2500.4747 98.171693 -4.0419177 3.1597321 -1070.799 -1067.6392 + 6600 0.66 0.076457208 2530.7924 100.74938 -4.0631997 3.242697 -1070.8819 -1067.6392 + 6650 0.665 0.076457205 2539.1274 102.26227 -4.0743158 3.2913904 -1070.9306 -1067.6392 + 6700 0.67 0.076457193 2456.6296 102.74328 -4.083416 3.3068723 -1070.9461 -1067.6392 + 6750 0.675 0.076457138 2387.5795 102.56259 -4.0973623 3.3010567 -1070.9403 -1067.6392 + 6800 0.68 0.076457109 2401.1036 102.04306 -4.113996 3.284335 -1070.9236 -1067.6392 + 6850 0.685 0.076457149 2426.9334 101.49407 -4.1282015 3.2666654 -1070.9059 -1067.6392 + 6900 0.69 0.076457185 2389.4808 101.35428 -4.1401792 3.2621662 -1070.9014 -1067.6392 + 6950 0.695 0.076457175 2323.8732 101.97431 -4.1517617 3.2821222 -1070.9214 -1067.6392 + 7000 0.7 0.076457145 2273.8742 103.4638 -4.1630859 3.3300628 -1070.9693 -1067.6392 + 7050 0.705 0.076457126 2231.6619 105.80757 -4.1770066 3.4054989 -1071.0447 -1067.6392 + 7100 0.71 0.076457114 2185.0913 108.81901 -4.1989399 3.5024243 -1071.1417 -1067.6392 + 7150 0.715 0.076457137 2139.1488 111.85718 -4.2283649 3.60021 -1071.2394 -1067.6392 + 7200 0.72 0.076457149 2101.4843 113.84985 -4.2560033 3.6643459 -1071.3036 -1067.6392 + 7250 0.725 0.07645712 2118.2459 113.9441 -4.2761251 3.6673792 -1071.3066 -1067.6392 + 7300 0.73 0.076457121 2191.8612 111.95162 -4.2925363 3.6032496 -1071.2425 -1067.6392 + 7350 0.735 0.076457137 2227.2133 108.21226 -4.3103732 3.4828957 -1071.1221 -1067.6392 + 7400 0.74 0.076457111 2182.8818 103.43153 -4.3300151 3.329024 -1070.9683 -1067.6392 + 7450 0.745 0.076457109 2101.9195 98.839733 -4.354205 3.1812335 -1070.8205 -1067.6392 + 7500 0.75 0.076457149 2036.6331 95.828658 -4.3866968 3.0843197 -1070.7235 -1067.6392 + 7550 0.755 0.076457161 1994.7766 95.143411 -4.4221882 3.0622645 -1070.7015 -1067.6392 + 7600 0.76 0.076457127 1970.8688 96.749372 -4.4522754 3.1139536 -1070.7532 -1067.6392 + 7650 0.765 0.076457086 1994.0036 100.15642 -4.4763519 3.223612 -1070.8628 -1067.6392 + 7700 0.77 0.076457048 2073.628 104.50472 -4.498005 3.3635656 -1071.0028 -1067.6392 + 7750 0.775 0.076457027 2167.9613 108.65949 -4.5168957 3.49729 -1071.1365 -1067.6392 + 7800 0.78 0.07645702 2217.2571 111.71851 -4.5326316 3.5957471 -1071.235 -1067.6392 + 7850 0.785 0.076457018 2202.7741 113.32785 -4.548779 3.6475449 -1071.2868 -1067.6392 + 7900 0.79 0.076457015 2164.9013 113.50963 -4.5689927 3.6533954 -1071.2926 -1067.6392 + 7950 0.795 0.076457037 2130.7469 112.46016 -4.5932603 3.6196176 -1071.2589 -1067.6392 + 8000 0.8 0.076457043 2075.0145 110.59865 -4.6198672 3.5597035 -1071.1989 -1067.6392 + 8050 0.805 0.076457061 2007.4917 108.6927 -4.6506917 3.4983589 -1071.1376 -1067.6392 + 8100 0.81 0.076457077 1991.5702 107.59433 -4.6877068 3.4630069 -1071.1022 -1067.6392 + 8150 0.815 0.07645708 2031.0743 107.95739 -4.7305236 3.4746923 -1071.1139 -1067.6392 + 8200 0.82 0.076457089 2054.3404 109.99515 -4.7756305 3.5402792 -1071.1795 -1067.6392 + 8250 0.825 0.076457091 2082.2542 113.4122 -4.8195703 3.6502597 -1071.2895 -1067.6392 + 8300 0.83 0.076457089 2137.8944 117.42257 -4.8606167 3.7793367 -1071.4186 -1067.6392 + 8350 0.835 0.076457127 2145.0506 120.77123 -4.8931181 3.8871159 -1071.5263 -1067.6392 + 8400 0.84 0.076457184 2101.9996 122.34334 -4.9126837 3.9377155 -1071.5769 -1067.6392 + 8450 0.845 0.076457201 2057.1092 121.73484 -4.921619 3.9181301 -1071.5574 -1067.6392 + 8500 0.85 0.076457149 2005.1132 119.2385 -4.9251343 3.8377838 -1071.477 -1067.6392 + 8550 0.855 0.076457098 1942.6247 115.64537 -4.9291799 3.722136 -1071.3614 -1067.6392 + 8600 0.86 0.076457115 1910.1502 111.98317 -4.9396222 3.6042654 -1071.2435 -1067.6392 + 8650 0.865 0.076457185 1943.3663 109.19353 -4.9603011 3.5144784 -1071.1537 -1067.6392 + 8700 0.87 0.076457254 2019.4182 107.80177 -4.9898541 3.4696837 -1071.1089 -1067.6392 + 8750 0.875 0.076457249 2073.1225 107.76716 -5.0205034 3.4685697 -1071.1078 -1067.6392 + 8800 0.88 0.076457175 2088.6545 108.72646 -5.0437829 3.4994455 -1071.1387 -1067.6392 + 8850 0.885 0.076457093 2077.5406 110.36499 -5.0572565 3.5521827 -1071.1914 -1067.6392 + 8900 0.89 0.076457088 2039.5392 112.51291 -5.0650529 3.6213154 -1071.2605 -1067.6392 + 8950 0.895 0.076457167 2016.6853 114.99374 -5.0744542 3.7011627 -1071.3404 -1067.6392 + 9000 0.9 0.076457241 2000.3012 117.47475 -5.0917242 3.781016 -1071.4202 -1067.6392 + 9050 0.905 0.076457226 1957.0091 119.35854 -5.1139655 3.8416472 -1071.4809 -1067.6392 + 9100 0.91 0.076457166 1923.1545 120.23087 -5.1350957 3.869724 -1071.509 -1067.6392 + 9150 0.915 0.076457128 1933.618 120.11319 -5.1511544 3.8659364 -1071.5052 -1067.6392 + 9200 0.92 0.076457114 1961.4473 119.3017 -5.1596749 3.8398178 -1071.4791 -1067.6392 + 9250 0.925 0.076457136 1962.1 118.34889 -5.1642618 3.8091509 -1071.4484 -1067.6392 + 9300 0.93 0.076457156 1942.9357 117.84262 -5.1720815 3.7928561 -1071.4321 -1067.6392 + 9350 0.935 0.076457138 1911.4886 118.10075 -5.1877615 3.8011641 -1071.4404 -1067.6392 + 9400 0.94 0.076457123 1890.6033 118.99959 -5.2079977 3.830094 -1071.4693 -1067.6392 + 9450 0.945 0.076457145 1911.9879 120.23989 -5.2265042 3.8700141 -1071.5092 -1067.6392 + 9500 0.95 0.076457172 1944.8053 121.67513 -5.2423826 3.9162086 -1071.5554 -1067.6392 + 9550 0.955 0.076457175 1950.6137 123.16708 -5.2566963 3.9642282 -1071.6035 -1067.6392 + 9600 0.96 0.076457174 1953.467 124.46943 -5.2686278 4.0061451 -1071.6454 -1067.6392 + 9650 0.965 0.076457174 1991.321 125.52237 -5.2816008 4.0400348 -1071.6793 -1067.6392 + 9700 0.97 0.076457153 2064.4494 126.48746 -5.3037304 4.0710971 -1071.7103 -1067.6392 + 9750 0.975 0.076457119 2117.0576 127.38593 -5.3401962 4.100015 -1071.7392 -1067.6392 + 9800 0.98 0.076457147 2129.8396 127.90735 -5.38872 4.1167973 -1071.756 -1067.6392 + 9850 0.985 0.076457201 2114.5902 127.47883 -5.4369444 4.103005 -1071.7422 -1067.6392 + 9900 0.99 0.076457216 2054.2807 125.71916 -5.4695662 4.0463688 -1071.6856 -1067.6392 + 9950 0.995 0.076457168 1984.2158 123.01154 -5.4834672 3.9592219 -1071.5985 -1067.6392 + 10000 1 0.076457131 1962.6658 120.32305 -5.4872199 3.8726906 -1071.5119 -1067.6392 + 10050 1.005 0.076457159 1973.2973 118.61523 -5.4922129 3.8177233 -1071.457 -1067.6392 + 10100 1.01 0.076457216 1957.9424 118.36973 -5.5066432 3.8098215 -1071.4491 -1067.6392 + 10150 1.015 0.076457197 1942.1125 119.27525 -5.5290592 3.8389666 -1071.4782 -1067.6392 + 10200 1.02 0.076457142 1978.3009 120.6949 -5.5571675 3.8846591 -1071.5239 -1067.6392 + 10250 1.025 0.076457171 2058.9652 122.05983 -5.5914809 3.9285903 -1071.5678 -1067.6392 + 10300 1.03 0.07645722 2104.5325 122.92754 -5.6303584 3.9565181 -1071.5958 -1067.6392 + 10350 1.035 0.07645723 2072.9687 123.15237 -5.6697758 3.9637547 -1071.603 -1067.6392 + 10400 1.04 0.076457234 2012.912 123.02584 -5.7067292 3.9596822 -1071.5989 -1067.6392 + 10450 1.045 0.076457242 1971.6903 123.23438 -5.7426231 3.9663941 -1071.6056 -1067.6392 + 10500 1.05 0.0764573 1932.8929 124.43675 -5.7779702 4.0050935 -1071.6443 -1067.6392 + 10550 1.055 0.076457357 1892.1027 126.80016 -5.8082237 4.0811614 -1071.7204 -1067.6392 + 10600 1.06 0.076457317 1911.4422 130.09167 -5.8347562 4.1871012 -1071.8263 -1067.6392 + 10650 1.065 0.076457251 1994.4648 133.74505 -5.8634891 4.3046881 -1071.9439 -1067.6392 + 10700 1.07 0.076457242 2058.3043 136.94864 -5.8957766 4.4077983 -1072.047 -1067.6392 + 10750 1.075 0.076457284 2065.4421 138.83647 -5.9266133 4.4685595 -1072.1078 -1067.6392 + 10800 1.08 0.076457341 2054.3284 138.84647 -5.9519915 4.4688815 -1072.1081 -1067.6392 + 10850 1.085 0.076457339 2019.0718 136.8565 -5.9690783 4.4048328 -1072.0441 -1067.6392 + 10900 1.09 0.076457316 1950.5439 133.30535 -5.9772058 4.290536 -1071.9298 -1067.6392 + 10950 1.095 0.076457386 1880.7681 129.31046 -5.9839906 4.1619576 -1071.8012 -1067.6392 + 11000 1.1 0.076457422 1858.5762 126.17301 -5.9991286 4.0609761 -1071.7002 -1067.6392 + 11050 1.105 0.076457344 1895.8864 124.66179 -6.0225804 4.0123366 -1071.6516 -1067.6392 + 11100 1.11 0.076457251 1940.5442 124.88033 -6.0460181 4.0193704 -1071.6586 -1067.6392 + 11150 1.115 0.076457202 1961.4346 126.74742 -6.0683173 4.0794642 -1071.7187 -1067.6392 + 11200 1.12 0.076457268 1940.4836 129.91024 -6.0923522 4.1812618 -1071.8205 -1067.6392 + 11250 1.125 0.07645736 1893.8666 133.48134 -6.1129806 4.2962004 -1071.9354 -1067.6392 + 11300 1.13 0.076457404 1883.0365 136.68921 -6.127246 4.3994482 -1072.0387 -1067.6392 + 11350 1.135 0.076457466 1882.1011 139.1981 -6.1379481 4.480199 -1072.1194 -1067.6392 + 11400 1.14 0.076457485 1867.5435 140.91567 -6.1513193 4.5354803 -1072.1747 -1067.6392 + 11450 1.145 0.076457418 1847.4052 141.74281 -6.1759478 4.5621023 -1072.2013 -1067.6392 + 11500 1.15 0.076457338 1813.6291 141.28184 -6.2119682 4.5472657 -1072.1865 -1067.6392 + 11550 1.155 0.076457333 1784.6892 139.23575 -6.2525061 4.4814106 -1072.1206 -1067.6392 + 11600 1.16 0.076457369 1755.4332 135.80671 -6.2888206 4.3710442 -1072.0103 -1067.6392 + 11650 1.165 0.076457401 1699.9293 131.63594 -6.3110048 4.236805 -1071.876 -1067.6392 + 11700 1.17 0.076457404 1653.9907 128.00726 -6.3221466 4.120013 -1071.7592 -1067.6392 + 11750 1.175 0.076457374 1643.4316 126.38341 -6.3360107 4.067748 -1071.707 -1067.6392 + 11800 1.18 0.07645738 1673.0949 127.37545 -6.3582141 4.0996777 -1071.7389 -1067.6392 + 11850 1.185 0.076457443 1718.7225 130.55123 -6.3857492 4.2018928 -1071.8411 -1067.6392 + 11900 1.19 0.076457444 1724.682 134.87067 -6.4146926 4.3409171 -1071.9801 -1067.6392 + 11950 1.195 0.076457414 1724.3414 139.24431 -6.4451679 4.4816863 -1072.1209 -1067.6392 + 12000 1.2 0.07645743 1749.066 142.81679 -6.4797792 4.5966692 -1072.2359 -1067.6392 + 12050 1.205 0.076457426 1742.2617 144.86234 -6.5158489 4.6625067 -1072.3017 -1067.6392 + 12100 1.21 0.076457401 1675.5507 144.96503 -6.548258 4.6658119 -1072.305 -1067.6392 + 12150 1.215 0.076457385 1610.7217 143.28189 -6.5749551 4.6116388 -1072.2509 -1067.6392 + 12200 1.22 0.07645736 1594.8876 140.48135 -6.5962025 4.5215012 -1072.1607 -1067.6392 + 12250 1.225 0.076457308 1625.0427 137.50616 -6.6145044 4.4257425 -1072.065 -1067.6392 + 12300 1.23 0.076457299 1685.9568 135.20765 -6.6302129 4.3517632 -1071.991 -1067.6392 + 12350 1.235 0.07645735 1733.821 134.30584 -6.6414385 4.3227378 -1071.962 -1067.6392 + 12400 1.24 0.076457353 1729.246 135.30039 -6.6446018 4.3547479 -1071.994 -1067.6392 + 12450 1.245 0.076457334 1680.067 138.31057 -6.6400277 4.4516331 -1072.0909 -1067.6392 + 12500 1.25 0.076457325 1617.8899 143.09184 -6.6404768 4.6055219 -1072.2448 -1067.6392 + 12550 1.255 0.07645726 1599.1888 148.81179 -6.6580865 4.7896229 -1072.4289 -1067.6392 + 12600 1.26 0.076457209 1658.9431 154.06138 -6.6888278 4.9585849 -1072.5978 -1067.6392 + 12650 1.265 0.07645722 1736.4699 157.49898 -6.7220069 5.0692269 -1072.7085 -1067.6392 + 12700 1.27 0.076457274 1779.2323 158.32957 -6.7551291 5.09596 -1072.7352 -1067.6392 + 12750 1.275 0.076457311 1789.9676 156.14983 -6.7885643 5.0258035 -1072.665 -1067.6392 + 12800 1.28 0.076457268 1802.2393 151.08471 -6.8186653 4.8627787 -1072.502 -1067.6392 + 12850 1.285 0.076457196 1818.1637 144.48302 -6.8490939 4.650298 -1072.2895 -1067.6392 + 12900 1.29 0.076457211 1817.2314 138.47831 -6.8873527 4.4570318 -1072.0963 -1067.6392 + 12950 1.295 0.076457276 1820.0753 134.61334 -6.9279428 4.3326347 -1071.9719 -1067.6392 + 13000 1.3 0.076457312 1845.4907 133.46496 -6.9596793 4.2956734 -1071.9349 -1067.6392 + 13050 1.305 0.076457338 1874.3042 135.13413 -6.9813982 4.3493968 -1071.9886 -1067.6392 + 13100 1.31 0.076457326 1866.7738 139.17204 -6.9940579 4.4793602 -1072.1186 -1067.6392 + 13150 1.315 0.076457289 1832.5745 144.49783 -6.9974757 4.6507749 -1072.29 -1067.6392 + 13200 1.32 0.076457244 1807.0747 149.77919 -6.9983839 4.8207594 -1072.46 -1067.6392 + 13250 1.325 0.076457187 1796.8435 153.72265 -7.0061211 4.9476829 -1072.5869 -1067.6392 + 13300 1.33 0.076457166 1784.1488 155.25389 -7.0202393 4.9969671 -1072.6362 -1067.6392 + 13350 1.335 0.076457229 1753.2853 154.01439 -7.0330486 4.9570726 -1072.5963 -1067.6392 + 13400 1.34 0.0764573 1735.0082 150.84246 -7.0447346 4.8549818 -1072.4942 -1067.6392 + 13450 1.345 0.076457318 1726.8186 147.29221 -7.0628093 4.7407141 -1072.3799 -1067.6392 + 13500 1.35 0.076457297 1714.977 144.61665 -7.0896843 4.654599 -1072.2938 -1067.6392 + 13550 1.355 0.076457254 1740.268 143.14927 -7.1129029 4.6073704 -1072.2466 -1067.6392 + 13600 1.36 0.076457211 1795.1636 143.04769 -7.1231397 4.6041009 -1072.2433 -1067.6392 + 13650 1.365 0.076457195 1823.9739 144.93969 -7.1325 4.6649965 -1072.3042 -1067.6392 + 13700 1.37 0.076457222 1791.6272 148.76155 -7.1501954 4.7880059 -1072.4272 -1067.6392 + 13750 1.375 0.076457214 1717.918 153.25937 -7.1700837 4.9327719 -1072.572 -1067.6392 + 13800 1.38 0.076457173 1650.2116 156.96821 -7.1856522 5.0521435 -1072.6914 -1067.6392 + 13850 1.385 0.076457198 1622.7393 158.94614 -7.1959656 5.1158049 -1072.755 -1067.6392 + 13900 1.39 0.076457218 1637.783 158.98661 -7.2040613 5.1171074 -1072.7563 -1067.6392 + 13950 1.395 0.076457202 1657.4634 157.44492 -7.212632 5.0674868 -1072.7067 -1067.6392 + 14000 1.4 0.076457212 1629.5225 155.05742 -7.2266988 4.9906432 -1072.6299 -1067.6392 + 14050 1.405 0.076457239 1593.2904 152.54882 -7.2502659 4.909902 -1072.5491 -1067.6392 + 14100 1.41 0.07645727 1606.034 150.42146 -7.2818725 4.8414313 -1072.4807 -1067.6392 + 14150 1.415 0.076457309 1640.1759 149.04348 -7.3155252 4.7970802 -1072.4363 -1067.6392 + 14200 1.42 0.076457319 1638.1785 148.56697 -7.3411886 4.7817433 -1072.421 -1067.6392 + 14250 1.425 0.07645727 1612.0972 148.95521 -7.3526259 4.7942389 -1072.4335 -1067.6392 + 14300 1.43 0.076457238 1604.4691 150.10919 -7.3547431 4.8313808 -1072.4706 -1067.6392 + 14350 1.435 0.076457245 1636.4307 151.65208 -7.3541157 4.88104 -1072.5203 -1067.6392 + 14400 1.44 0.076457266 1696.8545 152.99826 -7.354098 4.9243678 -1072.5636 -1067.6392 + 14450 1.445 0.076457266 1741.9828 153.81879 -7.3623341 4.9507773 -1072.59 -1067.6392 + 14500 1.45 0.076457331 1723.2799 153.89268 -7.3834301 4.9531555 -1072.5924 -1067.6392 + 14550 1.455 0.076457432 1657.9319 152.98996 -7.4146781 4.9241004 -1072.5633 -1067.6392 + 14600 1.46 0.076457435 1610.2643 151.16037 -7.4510333 4.8652138 -1072.5044 -1067.6392 + 14650 1.465 0.076457345 1613.0087 148.97 -7.4863307 4.794715 -1072.4339 -1067.6392 + 14700 1.47 0.076457271 1634.4356 147.61305 -7.5183727 4.7510405 -1072.3903 -1067.6392 + 14750 1.475 0.076457283 1633.8891 148.27943 -7.5460376 4.7724886 -1072.4117 -1067.6392 + 14800 1.48 0.076457348 1618.243 151.33474 -7.5665855 4.870826 -1072.5101 -1067.6392 + 14850 1.485 0.076457439 1627.6856 156.2869 -7.5835708 5.0302153 -1072.6694 -1067.6392 + 14900 1.49 0.076457511 1648.6155 162.01117 -7.6018187 5.2144553 -1072.8537 -1067.6392 + 14950 1.495 0.076457476 1659.3058 167.117 -7.6196613 5.3787903 -1073.018 -1067.6392 + 15000 1.5 0.076457375 1669.5167 170.51349 -7.6348747 5.4881089 -1073.1273 -1067.6392 + 15050 1.505 0.076457377 1665.0495 171.6971 -7.6501299 5.5262045 -1073.1654 -1067.6392 + 15100 1.51 0.076457509 1653.5232 170.56263 -7.668555 5.4896905 -1073.1289 -1067.6392 + 15150 1.515 0.07645762 1663.0378 167.19624 -7.6903772 5.3813406 -1073.0206 -1067.6392 + 15200 1.52 0.076457618 1681.9976 161.85457 -7.7108297 5.209415 -1072.8486 -1067.6392 + 15250 1.525 0.076457556 1694.698 155.288 -7.7230717 4.9980649 -1072.6373 -1067.6392 + 15300 1.53 0.076457526 1707.5473 149.10693 -7.726013 4.7991221 -1072.4384 -1067.6392 + 15350 1.535 0.076457503 1714.975 145.26109 -7.7215489 4.6753408 -1072.3146 -1067.6392 + 15400 1.54 0.076457471 1739.6517 145.03787 -7.7121713 4.6681565 -1072.3074 -1067.6392 + 15450 1.545 0.076457463 1779.381 148.49637 -7.7068895 4.7794708 -1072.4187 -1067.6392 + 15500 1.55 0.07645747 1810.3562 154.24813 -7.7125777 4.9645959 -1072.6038 -1067.6392 + 15550 1.555 0.076457505 1808.4717 160.18471 -7.7266491 5.1556691 -1072.7949 -1067.6392 + 15600 1.56 0.076457526 1770.3298 164.69045 -7.7419766 5.3006898 -1072.9399 -1067.6392 + 15650 1.565 0.0764575 1738.214 167.21043 -7.7549828 5.3817975 -1073.021 -1067.6392 + 15700 1.57 0.076457497 1697.7709 168.21074 -7.7723359 5.4139933 -1073.0532 -1067.6392 + 15750 1.575 0.076457555 1621.7132 168.50851 -7.8026216 5.4235772 -1073.0628 -1067.6392 + 15800 1.58 0.076457525 1558.2186 168.47199 -7.8436156 5.4224019 -1073.0616 -1067.6392 + 15850 1.585 0.076457429 1502.1375 167.96717 -7.8883594 5.4061538 -1073.0454 -1067.6392 + 15900 1.59 0.076457478 1425.3742 166.66576 -7.932759 5.3642668 -1073.0035 -1067.6392 + 15950 1.595 0.076457632 1386.0338 164.33246 -7.9718972 5.2891677 -1072.9284 -1067.6392 + 16000 1.6 0.076457666 1419.1839 161.41038 -8.0074959 5.1951185 -1072.8344 -1067.6392 + 16050 1.605 0.076457544 1468.9614 158.91164 -8.0487546 5.1146946 -1072.7539 -1067.6392 + 16100 1.61 0.076457494 1490.7382 157.31753 -8.0937558 5.063387 -1072.7026 -1067.6392 + 16150 1.615 0.076457538 1474.5813 156.42997 -8.1330424 5.03482 -1072.6741 -1067.6392 + 16200 1.62 0.076457556 1437.0783 156.08614 -8.164616 5.0237536 -1072.663 -1067.6392 + 16250 1.625 0.07645755 1438.9601 156.34668 -8.1896203 5.0321393 -1072.6714 -1067.6392 + 16300 1.63 0.076457624 1484.8299 157.40778 -8.2067204 5.0662916 -1072.7055 -1067.6392 + 16350 1.635 0.076457699 1524.3051 159.66771 -8.218867 5.1390293 -1072.7783 -1067.6392 + 16400 1.64 0.076457644 1544.3149 163.28567 -8.2298125 5.255476 -1072.8947 -1067.6392 + 16450 1.645 0.076457498 1553.8417 167.83654 -8.2377547 5.4019493 -1073.0412 -1067.6392 + 16500 1.65 0.076457465 1570.695 172.8939 -8.2462061 5.5647244 -1073.204 -1067.6392 + 16550 1.655 0.076457507 1593.9327 178.16048 -8.2624521 5.7342334 -1073.3735 -1067.6392 + 16600 1.66 0.076457489 1603.2741 183.00592 -8.2872119 5.8901875 -1073.5294 -1067.6392 + 16650 1.665 0.076457496 1571.7154 186.29884 -8.312974 5.9961727 -1073.6354 -1067.6392 + 16700 1.67 0.07645753 1518.6156 186.99911 -8.3350509 6.0187115 -1073.6579 -1067.6392 + 16750 1.675 0.07645752 1499.821 184.74394 -8.3580495 5.9461271 -1073.5854 -1067.6392 + 16800 1.68 0.076457499 1530.7723 179.78119 -8.3875745 5.7863972 -1073.4256 -1067.6392 + 16850 1.685 0.076457548 1575.4962 172.5183 -8.4158429 5.5526355 -1073.1919 -1067.6392 + 16900 1.69 0.076457558 1612.3074 163.97541 -8.4338169 5.277676 -1072.9169 -1067.6392 + 16950 1.695 0.076457479 1635.3132 156.35605 -8.4487945 5.0324408 -1072.6717 -1067.6392 + 17000 1.7 0.076457438 1614.5636 151.92591 -8.4700427 4.8898534 -1072.5291 -1067.6392 + 17050 1.705 0.076457424 1564.7085 151.36605 -8.4902367 4.8718339 -1072.5111 -1067.6392 + 17100 1.71 0.076457358 1535.6285 153.90525 -8.4942176 4.95356 -1072.5928 -1067.6392 + 17150 1.715 0.07645735 1518.627 158.54937 -8.4805275 5.1030346 -1072.7423 -1067.6392 + 17200 1.72 0.07645738 1514.2327 164.40935 -8.4621733 5.2916425 -1072.9309 -1067.6392 + 17250 1.725 0.076457379 1551.5372 170.62245 -8.4562493 5.4916159 -1073.1308 -1067.6392 + 17300 1.73 0.076457343 1595.3198 176.25515 -8.4715899 5.6729089 -1073.3121 -1067.6392 + 17350 1.735 0.076457342 1587.5028 180.16731 -8.4978474 5.7988247 -1073.4381 -1067.6392 + 17400 1.74 0.076457376 1544.7126 181.61601 -8.5200915 5.8454522 -1073.4847 -1067.6392 + 17450 1.745 0.076457389 1509.6731 180.91787 -8.5397072 5.8229821 -1073.4622 -1067.6392 + 17500 1.75 0.076457336 1478.9973 178.87414 -8.56042 5.7572029 -1073.3964 -1067.6392 + 17550 1.755 0.076457332 1451.7239 176.20376 -8.5752611 5.6712547 -1073.3105 -1067.6392 + 17600 1.76 0.076457348 1448.0805 173.64327 -8.5784834 5.5888433 -1073.2281 -1067.6392 + 17650 1.765 0.076457351 1433.0266 171.81431 -8.5726784 5.5299771 -1073.1692 -1067.6392 + 17700 1.77 0.076457438 1390.9365 171.02874 -8.564521 5.5046929 -1073.1439 -1067.6392 + 17750 1.775 0.076457533 1349.1394 171.41687 -8.5621201 5.517185 -1073.1564 -1067.6392 + 17800 1.78 0.076457498 1329.3506 172.86493 -8.5713277 5.563792 -1073.203 -1067.6392 + 17850 1.785 0.076457438 1327.4567 174.82124 -8.5922814 5.6267573 -1073.266 -1067.6392 + 17900 1.79 0.076457427 1319.5199 176.42672 -8.6210646 5.6784309 -1073.3177 -1067.6392 + 17950 1.795 0.076457411 1304.8013 176.80992 -8.649668 5.6907647 -1073.33 -1067.6392 + 18000 1.8 0.076457418 1286.8171 175.49891 -8.6685582 5.6485687 -1073.2878 -1067.6392 + 18050 1.805 0.076457416 1286.4901 172.8819 -8.6780447 5.5643383 -1073.2036 -1067.6392 + 18100 1.81 0.076457432 1323.7883 169.97231 -8.6878072 5.4706908 -1073.1099 -1067.6392 + 18150 1.815 0.076457437 1368.7263 167.90229 -8.7078544 5.4040655 -1073.0433 -1067.6392 + 18200 1.82 0.076457419 1375.2794 167.69816 -8.7440081 5.3974953 -1073.0367 -1067.6392 + 18250 1.825 0.076457418 1341.4685 169.86898 -8.7923763 5.467365 -1073.1066 -1067.6392 + 18300 1.83 0.076457444 1302.4142 174.12507 -8.8422065 5.6043505 -1073.2436 -1067.6392 + 18350 1.835 0.07645748 1271.1442 179.47439 -8.8848553 5.7765226 -1073.4158 -1067.6392 + 18400 1.84 0.07645751 1240.9996 184.64305 -8.9194649 5.9428799 -1073.5821 -1067.6392 + 18450 1.845 0.07645748 1233.4446 188.58667 -8.9527618 6.0698084 -1073.709 -1067.6392 + 18500 1.85 0.07645741 1261.96 190.37217 -8.9842233 6.1272761 -1073.7665 -1067.6392 + 18550 1.855 0.076457388 1308.7001 189.47505 -9.0098977 6.0984017 -1073.7376 -1067.6392 + 18600 1.86 0.076457432 1358.6974 185.96915 -9.0244894 5.9855615 -1073.6248 -1067.6392 + 18650 1.865 0.076457467 1405.4436 180.67131 -9.0286656 5.8150463 -1073.4543 -1067.6392 + 18700 1.87 0.076457462 1433.4669 175.00624 -9.0350323 5.6327117 -1073.2719 -1067.6392 + 18750 1.875 0.0764574 1445.5264 170.24923 -9.048183 5.4796035 -1073.1188 -1067.6392 + 18800 1.88 0.07645736 1443.3405 167.50038 -9.0636349 5.3911298 -1073.0304 -1067.6392 + 18850 1.885 0.076457415 1447.0868 167.72835 -9.083147 5.3984671 -1073.0377 -1067.6392 + 18900 1.89 0.076457524 1458.9885 171.02105 -9.1096362 5.5044452 -1073.1437 -1067.6392 + 18950 1.895 0.076457539 1446.6895 176.34791 -9.1375492 5.6758943 -1073.3151 -1067.6392 + 19000 1.9 0.076457474 1411.5198 182.40529 -9.161382 5.8708558 -1073.5101 -1067.6392 + 19050 1.905 0.076457448 1385.2991 188.2183 -9.1852956 6.0579522 -1073.6972 -1067.6392 + 19100 1.91 0.076457528 1413.6999 192.85984 -9.215331 6.2073435 -1073.8466 -1067.6392 + 19150 1.915 0.076457582 1480.043 195.28016 -9.2474153 6.2852437 -1073.9245 -1067.6392 + 19200 1.92 0.076457539 1547.1186 195.01127 -9.2733006 6.2765891 -1073.9158 -1067.6392 + 19250 1.925 0.07645751 1605.8035 192.80171 -9.2939477 6.2054728 -1073.8447 -1067.6392 + 19300 1.93 0.076457473 1598.3059 190.10762 -9.3163636 6.1187613 -1073.758 -1067.6392 + 19350 1.935 0.076457416 1509.2408 188.03157 -9.3412168 6.0519421 -1073.6912 -1067.6392 + 19400 1.94 0.076457518 1434.6458 186.83194 -9.3626576 6.0133311 -1073.6526 -1067.6392 + 19450 1.945 0.076457638 1403.9558 186.03899 -9.3780305 5.9878093 -1073.627 -1067.6392 + 19500 1.95 0.076457559 1394.7584 185.05086 -9.3957021 5.9560055 -1073.5952 -1067.6392 + 19550 1.955 0.076457442 1413.4384 183.7353 -9.4257255 5.9136631 -1073.5529 -1067.6392 + 19600 1.96 0.076457383 1421.2339 182.69045 -9.4681432 5.880034 -1073.5193 -1067.6392 + 19650 1.965 0.076457413 1420.5968 182.99886 -9.5190918 5.8899604 -1073.5292 -1067.6392 + 19700 1.97 0.076457479 1422.3009 185.07328 -9.5688775 5.9567273 -1073.596 -1067.6392 + 19750 1.975 0.076457568 1401.8644 188.22803 -9.6031318 6.0582654 -1073.6975 -1067.6392 + 19800 1.98 0.076457554 1393.8386 191.47532 -9.6182282 6.1627819 -1073.802 -1067.6392 + 19850 1.985 0.076457465 1418.2809 194.07382 -9.6229072 6.2464164 -1073.8856 -1067.6392 + 19900 1.99 0.076457438 1451.5379 195.52045 -9.6257452 6.2929776 -1073.9322 -1067.6392 + 19950 1.995 0.076457422 1478.147 195.5996 -9.6318225 6.295525 -1073.9348 -1067.6392 + 20000 2 0.076457344 1467.9497 194.43701 -9.6465325 6.258106 -1073.8973 -1067.6392 + 20050 2.005 0.076457295 1455.781 192.15793 -9.6679695 6.1847521 -1073.824 -1067.6392 + 20100 2.01 0.076457282 1475.7234 188.99879 -9.6853381 6.0830729 -1073.7223 -1067.6392 + 20150 2.015 0.076457336 1511.2492 185.9129 -9.6914823 5.983751 -1073.623 -1067.6392 + 20200 2.02 0.076457369 1535.108 184.55863 -9.6947447 5.9401628 -1073.5794 -1067.6392 + 20250 2.025 0.07645738 1549.6908 186.04749 -9.7111475 5.9880829 -1073.6273 -1067.6392 + 20300 2.03 0.076457371 1573.2987 189.74993 -9.7443086 6.1072487 -1073.7465 -1067.6392 + 20350 2.035 0.076457335 1598.8027 193.78171 -9.7835665 6.2370146 -1073.8762 -1067.6392 + 20400 2.04 0.076457321 1612.4365 196.34944 -9.8182578 6.3196591 -1073.9589 -1067.6392 + 20450 2.045 0.076457294 1595.6224 196.49735 -9.8435079 6.3244197 -1073.9637 -1067.6392 + 20500 2.05 0.076457341 1551.0932 194.1488 -9.8554709 6.2488299 -1073.8881 -1067.6392 + 20550 2.055 0.076457438 1523.3882 190.11991 -9.8537895 6.1191568 -1073.7584 -1067.6392 + 20600 2.06 0.07645743 1505.948 186.07182 -9.8495482 5.9888659 -1073.6281 -1067.6392 + 20650 2.065 0.076457406 1490.3445 183.51625 -9.8537234 5.906613 -1073.5458 -1067.6392 + 20700 2.07 0.076457442 1490.946 182.9075 -9.8637593 5.8870197 -1073.5263 -1067.6392 + 20750 2.075 0.076457441 1481.0717 184.03654 -9.8709996 5.9233588 -1073.5626 -1067.6392 + 20800 2.08 0.076457493 1467.9055 186.97232 -9.8793685 6.0178494 -1073.6571 -1067.6392 + 20850 2.085 0.076457525 1469.5229 191.9059 -9.9019503 6.1766405 -1073.8159 -1067.6392 + 20900 2.09 0.07645743 1500.8747 198.14128 -9.9382469 6.3773308 -1074.0166 -1067.6392 + 20950 2.095 0.076457353 1522.7523 204.22851 -9.9761093 6.573253 -1074.2125 -1067.6392 + 21000 2.1 0.076457408 1493.9748 209.08499 -10.009592 6.7295628 -1074.3688 -1067.6392 + 21050 2.105 0.076457469 1446.2705 212.35054 -10.040544 6.8346669 -1074.4739 -1067.6392 + 21100 2.11 0.076457354 1411.2601 213.76664 -10.067187 6.8802453 -1074.5195 -1067.6392 + 21150 2.115 0.07645727 1391.2445 213.01118 -10.083619 6.8559303 -1074.4952 -1067.6392 + 21200 2.12 0.07645735 1371.2169 210.04448 -10.087484 6.7604446 -1074.3997 -1067.6392 + 21250 2.125 0.076457381 1340.7221 205.38603 -10.08789 6.6105088 -1074.2497 -1067.6392 + 21300 2.13 0.076457303 1325.8617 199.86436 -10.098269 6.4327894 -1074.072 -1067.6392 + 21350 2.135 0.076457273 1350.6616 194.28131 -10.12363 6.2530948 -1073.8923 -1067.6392 + 21400 2.14 0.076457275 1394.6898 189.37392 -10.157685 6.0951465 -1073.7344 -1067.6392 + 21450 2.145 0.076457319 1404.9529 186.00624 -10.193758 5.9867551 -1073.626 -1067.6392 + 21500 2.15 0.076457343 1377.3399 184.88515 -10.229093 5.950672 -1073.5899 -1067.6392 + 21550 2.155 0.076457316 1331.0234 185.97828 -10.259659 5.9858551 -1073.6251 -1067.6392 + 21600 2.16 0.076457281 1273.4665 188.83363 -10.28823 6.077757 -1073.717 -1067.6392 + 21650 2.165 0.076457288 1243.3898 192.93897 -10.322287 6.2098905 -1073.8491 -1067.6392 + 21700 2.17 0.076457281 1219.7561 197.68298 -10.364391 6.3625801 -1074.0018 -1067.6392 + 21750 2.175 0.076457285 1200.7077 202.03274 -10.403933 6.5025805 -1074.1418 -1067.6392 + 21800 2.18 0.076457259 1184.4538 204.87849 -10.429043 6.5941733 -1074.2334 -1067.6392 + 21850 2.185 0.076457258 1175.6721 205.68948 -10.440346 6.6202757 -1074.2595 -1067.6392 + 21900 2.19 0.076457315 1180.8341 204.8243 -10.448053 6.5924291 -1074.2317 -1067.6392 + 21950 2.195 0.07645731 1194.0301 203.45174 -10.464561 6.5482521 -1074.1875 -1067.6392 + 22000 2.2 0.076457233 1221.9791 202.73877 -10.493309 6.5253048 -1074.1645 -1067.6392 + 22050 2.205 0.076457231 1250.0249 203.00033 -10.523727 6.5337233 -1074.173 -1067.6392 + 22100 2.21 0.076457313 1249.3152 204.03327 -10.546944 6.5669691 -1074.2062 -1067.6392 + 22150 2.215 0.076457371 1237.3367 205.55066 -10.562365 6.6158075 -1074.255 -1067.6392 + 22200 2.22 0.076457296 1243.2787 207.11609 -10.573015 6.6661921 -1074.3054 -1067.6392 + 22250 2.225 0.076457216 1271.1183 208.31179 -10.585742 6.7046767 -1074.3439 -1067.6392 + 22300 2.23 0.076457244 1284.8837 208.8428 -10.603798 6.7217677 -1074.361 -1067.6392 + 22350 2.235 0.076457332 1283.4661 208.59905 -10.624708 6.7139222 -1074.3532 -1067.6392 + 22400 2.24 0.07645736 1303.7498 207.46236 -10.6408 6.6773371 -1074.3166 -1067.6392 + 22450 2.245 0.076457355 1335.4979 205.36278 -10.647746 6.6097605 -1074.249 -1067.6392 + 22500 2.25 0.076457336 1346.4145 202.64405 -10.654521 6.5222561 -1074.1615 -1067.6392 + 22550 2.255 0.076457311 1346.1625 199.76606 -10.666656 6.4296256 -1074.0689 -1067.6392 + 22600 2.26 0.076457308 1340.0768 197.47287 -10.68361 6.3558176 -1073.995 -1067.6392 + 22650 2.265 0.076457239 1331.9216 197.00994 -10.705717 6.3409178 -1073.9801 -1067.6392 + 22700 2.27 0.076457144 1323.8234 199.2165 -10.723115 6.4119377 -1074.0512 -1067.6392 + 22750 2.275 0.076457155 1328.8167 204.12885 -10.731517 6.5700455 -1074.2093 -1067.6392 + 22800 2.28 0.076457245 1341.6384 210.71157 -10.738456 6.7819153 -1074.4211 -1067.6392 + 22850 2.285 0.076457291 1356.1262 216.84292 -10.742858 6.9792578 -1074.6185 -1067.6392 + 22900 2.29 0.07645725 1366.5895 220.63144 -10.743306 7.1011942 -1074.7404 -1067.6392 + 22950 2.295 0.076457156 1344.6768 221.40356 -10.750585 7.1260454 -1074.7653 -1067.6392 + 23000 2.3 0.076457186 1294.1965 219.35393 -10.774867 7.0600763 -1074.6993 -1067.6392 + 23050 2.305 0.076457196 1239.1224 214.99785 -10.815487 6.9198728 -1074.5591 -1067.6392 + 23100 2.31 0.076457076 1215.0106 208.92641 -10.858673 6.7244588 -1074.3637 -1067.6392 + 23150 2.315 0.076457176 1230.6321 202.19142 -10.890066 6.5076879 -1074.1469 -1067.6392 + 23200 2.32 0.076457304 1238.2351 196.6442 -10.911075 6.3291462 -1073.9684 -1067.6392 + 23250 2.325 0.076457249 1239.4105 194.24059 -10.931389 6.2517841 -1073.891 -1067.6392 + 23300 2.33 0.076457161 1257.0758 195.88203 -10.952578 6.3046152 -1073.9438 -1067.6392 + 23350 2.335 0.076457197 1279.1537 200.82031 -10.967466 6.4635575 -1074.1028 -1067.6392 + 23400 2.34 0.076457257 1300.7395 207.5662 -10.975013 6.6806793 -1074.3199 -1067.6392 + 23450 2.345 0.07645726 1308.5908 214.80077 -10.98098 6.9135294 -1074.5528 -1067.6392 + 23500 2.35 0.076457272 1289.4755 221.18513 -10.987842 7.1190149 -1074.7582 -1067.6392 + 23550 2.355 0.076457236 1283.5991 225.44351 -10.997358 7.2560744 -1074.8953 -1067.6392 + 23600 2.36 0.076457163 1312.3799 226.64105 -11.007971 7.294618 -1074.9339 -1067.6392 + 23650 2.365 0.076457229 1344.3851 224.59123 -11.019084 7.2286432 -1074.8679 -1067.6392 + 23700 2.37 0.07645729 1365.885 219.94976 -11.030767 7.0792538 -1074.7185 -1067.6392 + 23750 2.375 0.076457227 1401.6314 214.22979 -11.045135 6.895152 -1074.5344 -1067.6392 + 23800 2.38 0.076457188 1427.6864 209.29217 -11.064939 6.7362309 -1074.3755 -1067.6392 + 23850 2.385 0.076457163 1408.8222 206.27856 -11.086967 6.6392355 -1074.2785 -1067.6392 + 23900 2.39 0.07645708 1385.5983 205.10952 -11.107172 6.6016091 -1074.2408 -1067.6392 + 23950 2.395 0.076457071 1387.0133 205.04577 -11.129799 6.5995574 -1074.2388 -1067.6392 + 24000 2.4 0.076457108 1390.5162 205.39894 -11.156831 6.6109242 -1074.2502 -1067.6392 + 24050 2.405 0.076457131 1357.8774 206.15789 -11.185375 6.6353518 -1074.2746 -1067.6392 + 24100 2.41 0.076457132 1299.8027 207.97437 -11.215364 6.6938165 -1074.333 -1067.6392 + 24150 2.415 0.076457046 1264.5476 211.18407 -11.243431 6.7971232 -1074.4364 -1067.6392 + 24200 2.42 0.076456997 1257.3066 215.49914 -11.266145 6.9360069 -1074.5752 -1067.6392 + 24250 2.425 0.076457004 1257.7398 220.04117 -11.280372 7.0821959 -1074.7214 -1067.6392 + 24300 2.43 0.07645702 1251.1577 223.4371 -11.283992 7.1914966 -1074.8307 -1067.6392 + 24350 2.435 0.076457022 1252.7715 224.64315 -11.285671 7.230314 -1074.8695 -1067.6392 + 24400 2.44 0.076456984 1265.9957 223.69761 -11.294539 7.1998812 -1074.8391 -1067.6392 + 24450 2.445 0.076456934 1262.7138 221.81546 -11.310639 7.1393028 -1074.7785 -1067.6392 + 24500 2.45 0.076456873 1233.0144 220.50339 -11.329658 7.0970727 -1074.7363 -1067.6392 + 24550 2.455 0.076456875 1202.6505 220.34157 -11.349408 7.0918644 -1074.7311 -1067.6392 + 24600 2.46 0.076456941 1202.6676 220.33665 -11.361751 7.0917062 -1074.7309 -1067.6392 + 24650 2.465 0.076456963 1226.7474 219.30132 -11.363433 7.058383 -1074.6976 -1067.6392 + 24700 2.47 0.076456936 1249.5386 217.48305 -11.36762 6.9998606 -1074.6391 -1067.6392 + 24750 2.475 0.076456975 1268.5471 215.9159 -11.38311 6.9494209 -1074.5887 -1067.6392 + 24800 2.48 0.076456964 1270.5323 215.29735 -11.406944 6.9295122 -1074.5687 -1067.6392 + 24850 2.485 0.076456848 1246.8523 215.79179 -11.434782 6.9454262 -1074.5847 -1067.6392 + 24900 2.49 0.076456767 1228.3555 217.27323 -11.464221 6.9931074 -1074.6323 -1067.6392 + 24950 2.495 0.076456798 1234.9605 219.39808 -11.48602 7.0614974 -1074.7007 -1067.6392 + 25000 2.5 0.076456902 1253.6133 221.8827 -11.487009 7.1414669 -1074.7807 -1067.6392 + 25050 2.505 0.076456945 1263.1766 224.65139 -11.467154 7.2305793 -1074.8698 -1067.6392 + 25100 2.51 0.076456885 1268.8469 227.19826 -11.44163 7.3125522 -1074.9518 -1067.6392 + 25150 2.515 0.076456776 1270.7217 228.36783 -11.425894 7.3501958 -1074.9894 -1067.6392 + 25200 2.52 0.076456734 1279.1408 227.30965 -11.424483 7.3161374 -1074.9554 -1067.6392 + 25250 2.525 0.076456742 1292.6915 224.19273 -11.429236 7.2158169 -1074.8551 -1067.6392 + 25300 2.53 0.07645679 1314.5843 219.60843 -11.430397 7.0682677 -1074.7075 -1067.6392 + 25350 2.535 0.07645686 1334.032 213.71531 -11.425496 6.8785933 -1074.5178 -1067.6392 + 25400 2.54 0.076456849 1349.3813 207.2907 -11.418326 6.6718121 -1074.311 -1067.6392 + 25450 2.545 0.07645677 1377.8998 202.81528 -11.421994 6.5277672 -1074.167 -1067.6392 + 25500 2.55 0.076456793 1396.8932 202.49375 -11.445285 6.5174184 -1074.1566 -1067.6392 + 25550 2.555 0.076456881 1384.3333 205.94001 -11.474157 6.628339 -1074.2676 -1067.6392 + 25600 2.56 0.076456893 1392.2099 211.07888 -11.490781 6.7937375 -1074.433 -1067.6392 + 25650 2.565 0.076456856 1425.474 216.44999 -11.500276 6.966611 -1074.6058 -1067.6392 + 25700 2.57 0.07645682 1422.3347 221.7408 -11.521064 7.1368997 -1074.7761 -1067.6392 + 25750 2.575 0.076456827 1389.5116 226.77774 -11.558724 7.2990176 -1074.9383 -1067.6392 + 25800 2.58 0.076456894 1376.0165 230.42348 -11.588294 7.4163587 -1075.0556 -1067.6392 + 25850 2.585 0.076456848 1392.9987 231.78982 -11.595522 7.4603351 -1075.0996 -1067.6392 + 25900 2.59 0.07645674 1406.285 231.56537 -11.605309 7.4531113 -1075.0923 -1067.6392 + 25950 2.595 0.076456751 1413.5397 230.66657 -11.635338 7.4241825 -1075.0634 -1067.6392 + 26000 2.6 0.076456899 1416.443 229.45699 -11.678587 7.3852513 -1075.0245 -1067.6392 + 26050 2.605 0.076457003 1403.885 228.28072 -11.723713 7.3473922 -1074.9866 -1067.6392 + 26100 2.61 0.076457021 1373.3644 227.67281 -11.766892 7.3278259 -1074.9671 -1067.6392 + 26150 2.615 0.076456911 1340.7862 227.79846 -11.809643 7.3318702 -1074.9711 -1067.6392 + 26200 2.62 0.076456907 1300.443 227.6998 -11.840279 7.3286948 -1074.9679 -1067.6392 + 26250 2.625 0.076456986 1245.9108 226.64351 -11.849238 7.2946973 -1074.9339 -1067.6392 + 26300 2.63 0.076456906 1213.3895 225.39942 -11.849142 7.2546552 -1074.8939 -1067.6392 + 26350 2.635 0.076456826 1226.1376 224.51387 -11.849268 7.2261533 -1074.8654 -1067.6392 + 26400 2.64 0.076456838 1277.7083 223.02405 -11.845728 7.1782022 -1074.8174 -1067.6392 + 26450 2.645 0.076456848 1348.5108 219.94872 -11.843068 7.0792202 -1074.7185 -1067.6392 + 26500 2.65 0.076456809 1384.7118 215.79754 -11.858605 6.9456112 -1074.5848 -1067.6392 + 26550 2.655 0.076456789 1365.0705 211.7995 -11.891933 6.8169312 -1074.4562 -1067.6392 + 26600 2.66 0.076456914 1299.543 209.09625 -11.921163 6.729925 -1074.3692 -1067.6392 + 26650 2.665 0.076457016 1239.2364 208.71915 -11.931351 6.7177878 -1074.357 -1067.6392 + 26700 2.67 0.076456972 1214.9068 211.699 -11.935106 6.8136966 -1074.4529 -1067.6392 + 26750 2.675 0.076456871 1213.0891 218.33214 -11.952461 7.0271895 -1074.6664 -1067.6392 + 26800 2.68 0.076456798 1223.6985 227.28091 -11.983537 7.3152126 -1074.9544 -1067.6392 + 26850 2.685 0.076456809 1225.5098 236.07415 -12.013499 7.5982297 -1075.2375 -1067.6392 + 26900 2.69 0.076456872 1227.6603 242.5254 -12.033513 7.8058683 -1075.4451 -1067.6392 + 26950 2.695 0.076456972 1258.3608 245.56912 -12.047317 7.9038328 -1075.5431 -1067.6392 + 27000 2.7 0.076456994 1275.6126 245.13472 -12.061439 7.8898512 -1075.5291 -1067.6392 + 27050 2.705 0.076456887 1268.2866 241.7328 -12.077934 7.7803577 -1075.4196 -1067.6392 + 27100 2.71 0.076456789 1276.6398 236.41209 -12.099691 7.6091067 -1075.2483 -1067.6392 + 27150 2.715 0.076456817 1285.086 230.59357 -12.127675 7.4218332 -1075.0611 -1067.6392 + 27200 2.72 0.076456956 1279.8644 225.6959 -12.152964 7.2641976 -1074.9034 -1067.6392 + 27250 2.725 0.076457008 1265.0918 222.9285 -12.162529 7.1751269 -1074.8144 -1067.6392 + 27300 2.73 0.076456892 1255.4758 223.34114 -12.160471 7.1884079 -1074.8276 -1067.6392 + 27350 2.735 0.076456791 1255.3028 227.16525 -12.168727 7.3114899 -1074.9507 -1067.6392 + 27400 2.74 0.07645683 1235.3098 232.49107 -12.190625 7.4829055 -1075.1221 -1067.6392 + 27450 2.745 0.076456913 1195.6445 236.20823 -12.208759 7.6025451 -1075.2418 -1067.6392 + 27500 2.75 0.076456943 1161.6213 236.76136 -12.22307 7.6203482 -1075.2596 -1067.6392 + 27550 2.755 0.076456918 1154.7881 234.39737 -12.238887 7.5442614 -1075.1835 -1067.6392 + 27600 2.76 0.076456852 1164.6343 230.1096 -12.253338 7.4062559 -1075.0455 -1067.6392 + 27650 2.765 0.07645681 1192.4719 225.31606 -12.266794 7.2519722 -1074.8912 -1067.6392 + 27700 2.77 0.076456909 1231.6135 221.89166 -12.281503 7.1417553 -1074.781 -1067.6392 + 27750 2.775 0.076457006 1235.7541 221.87696 -12.295173 7.1412822 -1074.7805 -1067.6392 + 27800 2.78 0.07645698 1208.1367 226.64974 -12.307425 7.2948978 -1074.9341 -1067.6392 + 27850 2.785 0.076456891 1176.1511 235.51318 -12.317651 7.5801745 -1075.2194 -1067.6392 + 27900 2.79 0.076456848 1164.9233 245.47424 -12.322706 7.9007791 -1075.54 -1067.6392 + 27950 2.795 0.076456846 1164.6239 253.11209 -12.32738 8.1466091 -1075.7858 -1067.6392 + 28000 2.8 0.076456848 1160.4177 256.41801 -12.347417 8.2530127 -1075.8922 -1067.6392 + 28050 2.805 0.076456824 1162.4022 254.7287 -12.389013 8.1986408 -1075.8379 -1067.6392 + 28100 2.81 0.076456816 1169.0586 248.13397 -12.435631 7.9863846 -1075.6256 -1067.6392 + 28150 2.815 0.076456796 1178.5376 238.03172 -12.470806 7.6612358 -1075.3005 -1067.6392 + 28200 2.82 0.076456763 1199.2585 227.28714 -12.495824 7.3154129 -1074.9546 -1067.6392 + 28250 2.825 0.07645681 1234.5536 218.97616 -12.518189 7.0479177 -1074.6871 -1067.6392 + 28300 2.83 0.076456865 1276.7135 215.42144 -12.539753 6.9335061 -1074.5727 -1067.6392 + 28350 2.835 0.076456943 1320.0112 217.52061 -12.555571 7.0010697 -1074.6403 -1067.6392 + 28400 2.84 0.07645694 1322.7705 223.90193 -12.561183 7.2064573 -1074.8457 -1067.6392 + 28450 2.845 0.076456873 1274.2662 231.82206 -12.558374 7.461373 -1075.1006 -1067.6392 + 28500 2.85 0.07645682 1212.3657 239.21446 -12.557378 7.6993032 -1075.3385 -1067.6392 + 28550 2.855 0.076456743 1168.3546 245.06433 -12.567018 7.8875858 -1075.5268 -1067.6392 + 28600 2.86 0.076456731 1159.1141 248.78928 -12.591534 8.007476 -1075.6467 -1067.6392 + 28650 2.865 0.07645684 1173.7764 249.83877 -12.632126 8.0412547 -1075.6805 -1067.6392 + 28700 2.87 0.076456919 1172.0608 247.79274 -12.684385 7.9754016 -1075.6146 -1067.6392 + 28750 2.875 0.076456876 1150.8061 243.05242 -12.738771 7.8228308 -1075.4621 -1067.6392 + 28800 2.88 0.076456855 1119.2348 237.23074 -12.782276 7.6354555 -1075.2747 -1067.6392 + 28850 2.885 0.076456907 1109.9511 233.14457 -12.809798 7.5039389 -1075.1432 -1067.6392 + 28900 2.89 0.076456909 1118.3015 233.7173 -12.825932 7.5223728 -1075.1616 -1067.6392 + 28950 2.895 0.076456802 1110.4763 239.3953 -12.836993 7.7051234 -1075.3444 -1067.6392 + 29000 2.9 0.076456789 1094.3593 246.77428 -12.846357 7.9426216 -1075.5819 -1067.6392 + 29050 2.905 0.076456914 1087.347 250.95238 -12.854444 8.077097 -1075.7163 -1067.6392 + 29100 2.91 0.076456912 1080.3745 249.15916 -12.864944 8.019381 -1075.6586 -1067.6392 + 29150 2.915 0.076456867 1077.8142 242.15509 -12.879291 7.7939495 -1075.4332 -1067.6392 + 29200 2.92 0.076456965 1073.411 233.44287 -12.891242 7.5135398 -1075.1528 -1067.6392 + 29250 2.925 0.076457115 1072.0744 227.42913 -12.90317 7.3199831 -1074.9592 -1067.6392 + 29300 2.93 0.076457151 1093.6395 227.10626 -12.933289 7.3095913 -1074.9488 -1067.6392 + 29350 2.935 0.076457038 1119.3849 232.36032 -12.988079 7.4786974 -1075.1179 -1067.6392 + 29400 2.94 0.076456921 1134.6243 240.72805 -13.055919 7.748019 -1075.3873 -1067.6392 + 29450 2.945 0.076456864 1141.918 249.49518 -13.118734 8.0301961 -1075.6694 -1067.6392 + 29500 2.95 0.076456941 1159.6822 257.15763 -13.165805 8.2768181 -1075.9161 -1067.6392 + 29550 2.955 0.07645714 1179.2951 262.93943 -13.20027 8.4629096 -1076.1021 -1067.6392 + 29600 2.96 0.07645717 1186.3391 265.77303 -13.225007 8.5541112 -1076.1933 -1067.6392 + 29650 2.965 0.076456962 1198.5613 265.15045 -13.244795 8.5340732 -1076.1733 -1067.6392 + 29700 2.97 0.07645683 1197.8883 261.64426 -13.26969 8.4212236 -1076.0605 -1067.6392 + 29750 2.975 0.076456909 1177.7226 255.9899 -13.299001 8.2392337 -1075.8785 -1067.6392 + 29800 2.98 0.076457063 1159.8441 249.00075 -13.322918 8.0142823 -1075.6535 -1067.6392 + 29850 2.985 0.076457146 1148.4764 242.18856 -13.338769 7.7950268 -1075.4343 -1067.6392 + 29900 2.99 0.076457089 1130.9903 237.45135 -13.348753 7.6425559 -1075.2818 -1067.6392 + 29950 2.995 0.076457001 1117.7814 236.46455 -13.358912 7.610795 -1075.25 -1067.6392 + 30000 3 0.076456942 1126.2416 239.60448 -13.37352 7.7118561 -1075.3511 -1067.6392 + 30050 3.005 0.076456886 1156.3534 245.25724 -13.389734 7.8937946 -1075.533 -1067.6392 + 30100 3.01 0.076456966 1190.7799 250.77536 -13.402583 8.0713994 -1075.7106 -1067.6392 + 30150 3.015 0.076457085 1203.6351 254.27554 -13.409529 8.1840557 -1075.8233 -1067.6392 + 30200 3.02 0.076457139 1204.0863 255.8356 -13.413637 8.2342673 -1075.8735 -1067.6392 + 30250 3.025 0.07645724 1221.2681 256.67609 -13.417029 8.2613191 -1075.9006 -1067.6392 + 30300 3.03 0.076457187 1256.9158 257.31837 -13.417166 8.2819915 -1075.9212 -1067.6392 + 30350 3.035 0.076457004 1278.7323 257.24074 -13.411793 8.2794928 -1075.9187 -1067.6392 + 30400 3.04 0.076457001 1251.5199 256.19386 -13.407137 8.2457981 -1075.885 -1067.6392 + 30450 3.045 0.076457164 1196.1208 254.69214 -13.410047 8.1974643 -1075.8367 -1067.6392 + 30500 3.05 0.076457257 1145.1647 253.23253 -13.415744 8.1504855 -1075.7897 -1067.6392 + 30550 3.055 0.076457144 1116.3699 251.85343 -13.417375 8.1060982 -1075.7453 -1067.6392 + 30600 3.06 0.076456997 1135.1489 250.16809 -13.409575 8.051854 -1075.6911 -1067.6392 + 30650 3.065 0.076457054 1166.8172 248.05389 -13.394954 7.9838071 -1075.623 -1067.6392 + 30700 3.07 0.076457216 1168.9659 245.96158 -13.389042 7.9164642 -1075.5557 -1067.6392 + 30750 3.075 0.076457229 1179.4894 244.10708 -13.40216 7.8567758 -1075.496 -1067.6392 + 30800 3.08 0.076457154 1215.0559 242.34737 -13.43183 7.8001383 -1075.4394 -1067.6392 + 30850 3.085 0.076457184 1249.0791 240.65467 -13.466111 7.7456575 -1075.3849 -1067.6392 + 30900 3.09 0.076457196 1263.3416 239.28699 -13.484792 7.7016376 -1075.3409 -1067.6392 + 30950 3.095 0.076457165 1271.4598 239.5317 -13.488388 7.7095135 -1075.3487 -1067.6392 + 31000 3.1 0.076457184 1286.9333 242.95851 -13.498706 7.8198081 -1075.459 -1067.6392 + 31050 3.105 0.076457244 1283.9706 249.40628 -13.524063 8.0273348 -1075.6666 -1067.6392 + 31100 3.11 0.076457303 1260.718 256.94623 -13.554227 8.2700138 -1075.9092 -1067.6392 + 31150 3.115 0.076457309 1234.9544 263.41539 -13.575646 8.4782287 -1076.1175 -1067.6392 + 31200 3.12 0.076457299 1221.679 267.76241 -13.587061 8.618141 -1076.2574 -1067.6392 + 31250 3.125 0.07645728 1205.3199 269.88964 -13.601419 8.6866074 -1076.3258 -1067.6392 + 31300 3.13 0.076457321 1193.2183 269.84108 -13.633868 8.6850446 -1076.3243 -1067.6392 + 31350 3.135 0.076457329 1188.8946 267.62378 -13.682779 8.6136792 -1076.2529 -1067.6392 + 31400 3.14 0.07645724 1172.3644 263.84237 -13.735657 8.4919716 -1076.1312 -1067.6392 + 31450 3.145 0.076457234 1156.6255 259.26765 -13.777686 8.3447306 -1075.984 -1067.6392 + 31500 3.15 0.076457352 1146.2606 254.31094 -13.801841 8.1851949 -1075.8244 -1067.6392 + 31550 3.155 0.076457413 1127.1739 249.59314 -13.819577 8.0333488 -1075.6726 -1067.6392 + 31600 3.16 0.076457375 1124.4259 245.82878 -13.842426 7.91219 -1075.5514 -1067.6392 + 31650 3.165 0.076457268 1141.1569 243.59222 -13.866183 7.8402047 -1075.4794 -1067.6392 + 31700 3.17 0.076457185 1142.9315 243.62712 -13.876409 7.8413279 -1075.4806 -1067.6392 + 31750 3.175 0.076457201 1127.0843 246.58578 -13.867806 7.9365548 -1075.5758 -1067.6392 + 31800 3.18 0.076457204 1110.3606 251.69266 -13.849255 8.1009235 -1075.7402 -1067.6392 + 31850 3.185 0.076457198 1090.6423 257.43936 -13.842194 8.2858857 -1075.9251 -1067.6392 + 31900 3.19 0.076457249 1070.2837 263.0995 -13.858302 8.4680616 -1076.1073 -1067.6392 + 31950 3.195 0.076457354 1038.4021 268.06563 -13.88309 8.6279005 -1076.2671 -1067.6392 + 32000 3.2 0.076457382 1003.1513 271.1038 -13.895783 8.7256861 -1076.3649 -1067.6392 + 32050 3.205 0.07645731 1001.503 271.56962 -13.890494 8.7406789 -1076.3799 -1067.6392 + 32100 3.21 0.076457342 1028.1672 270.88408 -13.884736 8.7186143 -1076.3578 -1067.6392 + 32150 3.215 0.076457246 1043.2279 270.60923 -13.897305 8.709768 -1076.349 -1067.6392 + 32200 3.22 0.076457163 1061.7278 269.95561 -13.919101 8.688731 -1076.328 -1067.6392 + 32250 3.225 0.076457192 1099.7924 267.40921 -13.929905 8.6067729 -1076.246 -1067.6392 + 32300 3.23 0.07645728 1115.399 262.77167 -13.926581 8.4575103 -1076.0967 -1067.6392 + 32350 3.235 0.076457358 1107.8892 257.08093 -13.924138 8.2743494 -1075.9136 -1067.6392 + 32400 3.24 0.076457338 1118.6333 252.33081 -13.927952 8.1214629 -1075.7607 -1067.6392 + 32450 3.245 0.076457214 1128.4292 251.44519 -13.927409 8.0929586 -1075.7322 -1067.6392 + 32500 3.25 0.076457246 1127.0405 254.99795 -13.916976 8.2073069 -1075.8465 -1067.6392 + 32550 3.255 0.076457307 1140.3298 259.54929 -13.905249 8.3537953 -1075.993 -1067.6392 + 32600 3.26 0.076457287 1141.9087 261.74213 -13.898995 8.4243735 -1076.0636 -1067.6392 + 32650 3.265 0.076457265 1125.1087 260.48084 -13.894888 8.3837781 -1076.023 -1067.6392 + 32700 3.27 0.076457288 1107.2451 256.23647 -13.88768 8.2471695 -1075.8864 -1067.6392 + 32750 3.275 0.076457331 1106.2294 250.66639 -13.887159 8.0678924 -1075.7071 -1067.6392 + 32800 3.28 0.076457361 1102.8873 245.7362 -13.901525 7.9092104 -1075.5484 -1067.6392 + 32850 3.285 0.0764573 1073.7918 243.36584 -13.927674 7.8329184 -1075.4721 -1067.6392 + 32900 3.29 0.076457246 1038.3344 245.33181 -13.96315 7.8961946 -1075.5354 -1067.6392 + 32950 3.295 0.076457262 1052.5387 251.76398 -14.002376 8.103219 -1075.7424 -1067.6392 + 33000 3.3 0.076457271 1099.7091 260.70233 -14.040774 8.3909068 -1076.0301 -1067.6392 + 33050 3.305 0.076457299 1122.3662 269.29951 -14.075396 8.6676137 -1076.3068 -1067.6392 + 33100 3.31 0.076457348 1133.2046 274.78945 -14.097368 8.8443117 -1076.4835 -1067.6392 + 33150 3.315 0.076457345 1144.5149 275.86818 -14.112263 8.8790314 -1076.5183 -1067.6392 + 33200 3.32 0.076457354 1152.0065 273.20166 -14.133828 8.7932075 -1076.4324 -1067.6392 + 33250 3.325 0.076457309 1165.8775 268.65705 -14.161563 8.6469357 -1076.2862 -1067.6392 + 33300 3.33 0.076457216 1161.3025 264.27145 -14.185104 8.5057818 -1076.145 -1067.6392 + 33350 3.335 0.076457256 1163.6382 261.21763 -14.196243 8.4074921 -1076.0467 -1067.6392 + 33400 3.34 0.076457414 1170.8832 259.37361 -14.192673 8.348141 -1075.9874 -1067.6392 + 33450 3.345 0.076457435 1147.1567 258.47673 -14.188523 8.3192742 -1075.9585 -1067.6392 + 33500 3.35 0.076457365 1105.1155 258.65363 -14.192309 8.3249679 -1075.9642 -1067.6392 + 33550 3.355 0.07645739 1090.5352 260.22936 -14.198584 8.3756839 -1076.0149 -1067.6392 + 33600 3.36 0.076457404 1090.7024 263.15737 -14.207014 8.469924 -1076.1092 -1067.6392 + 33650 3.365 0.076457298 1076.4632 266.48318 -14.215356 8.576968 -1076.2162 -1067.6392 + 33700 3.37 0.076457283 1073.0859 269.43944 -14.224471 8.6721174 -1076.3113 -1067.6392 + 33750 3.375 0.076457376 1089.3381 271.89961 -14.244593 8.7512999 -1076.3905 -1067.6392 + 33800 3.38 0.076457435 1103.4612 273.25721 -14.276978 8.7949953 -1076.4342 -1067.6392 + 33850 3.385 0.076457308 1111.4346 272.37848 -14.311851 8.7667127 -1076.4059 -1067.6392 + 33900 3.39 0.076457152 1121.3405 268.69095 -14.338922 8.6480268 -1076.2873 -1067.6392 + 33950 3.395 0.076457254 1157.28 262.95636 -14.353057 8.4634547 -1076.1027 -1067.6392 + 34000 3.4 0.076457397 1196.7048 257.60289 -14.365288 8.2911489 -1075.9304 -1067.6392 + 34050 3.405 0.076457474 1195.8072 255.33311 -14.384718 8.2180942 -1075.8573 -1067.6392 + 34100 3.41 0.076457516 1168.6865 257.33079 -14.404595 8.2823911 -1075.9216 -1067.6392 + 34150 3.415 0.076457484 1150.4642 263.06466 -14.423569 8.4669403 -1076.1062 -1067.6392 + 34200 3.42 0.076457454 1145.8816 270.24631 -14.440471 8.6980873 -1076.3373 -1067.6392 + 34250 3.425 0.076457414 1150.0173 275.63341 -14.450898 8.8714751 -1076.5107 -1067.6392 + 34300 3.43 0.076457415 1133.3958 276.80837 -14.458349 8.9092922 -1076.5485 -1067.6392 + 34350 3.435 0.076457417 1105.4056 273.08081 -14.468157 8.7893178 -1076.4286 -1067.6392 + 34400 3.44 0.07645741 1103.7812 265.31563 -14.480189 8.5393893 -1076.1786 -1067.6392 + 34450 3.445 0.076457445 1111.05 255.73892 -14.490895 8.2311555 -1075.8704 -1067.6392 + 34500 3.45 0.076457521 1110.7118 247.85989 -14.49958 7.9775629 -1075.6168 -1067.6392 + 34550 3.455 0.076457579 1130.7725 245.33622 -14.510207 7.8963366 -1075.5356 -1067.6392 + 34600 3.46 0.07645756 1160.5408 249.98597 -14.528291 8.0459926 -1075.6852 -1067.6392 + 34650 3.465 0.076457475 1173.3904 260.77724 -14.552952 8.393318 -1076.0325 -1067.6392 + 34700 3.47 0.076457459 1180.1124 274.58004 -14.57703 8.8375718 -1076.4768 -1067.6392 + 34750 3.475 0.076457431 1180.26 287.50066 -14.596337 9.2534319 -1076.8927 -1067.6392 + 34800 3.48 0.076457427 1168.0204 296.32134 -14.616838 9.5373322 -1077.1766 -1067.6392 + 34850 3.485 0.076457533 1160.6555 299.11042 -14.639374 9.6271011 -1077.2663 -1067.6392 + 34900 3.49 0.076457572 1154.8977 295.41469 -14.653836 9.5081511 -1077.1474 -1067.6392 + 34950 3.495 0.076457515 1144.2382 286.47523 -14.655017 9.2204277 -1076.8597 -1067.6392 + 35000 3.5 0.076457456 1136.3462 275.07037 -14.654715 8.8533533 -1076.4926 -1067.6392 + 35050 3.505 0.076457435 1137.4511 264.5464 -14.667149 8.5146312 -1076.1539 -1067.6392 + 35100 3.51 0.076457336 1147.1459 257.28562 -14.689408 8.2809373 -1075.9202 -1067.6392 + 35150 3.515 0.076457286 1150.785 253.77586 -14.702669 8.167973 -1075.8072 -1067.6392 + 35200 3.52 0.076457352 1139.7459 253.69403 -14.69943 8.1653391 -1075.8046 -1067.6392 + 35250 3.525 0.076457425 1116.52 256.58494 -14.694772 8.2583854 -1075.8976 -1067.6392 + 35300 3.53 0.07645748 1111.2173 261.10191 -14.6981 8.4037676 -1076.043 -1067.6392 + 35350 3.535 0.076457452 1135.6446 265.79828 -14.707669 8.554924 -1076.1942 -1067.6392 + 35400 3.54 0.076457288 1139.7867 270.36596 -14.724124 8.7019382 -1076.3412 -1067.6392 + 35450 3.545 0.076457217 1102.2707 274.78594 -14.743394 8.8441988 -1076.4834 -1067.6392 + 35500 3.55 0.076457301 1090.3939 278.40484 -14.763703 8.9606757 -1076.5999 -1067.6392 + 35550 3.555 0.076457358 1123.8334 280.40441 -14.795776 9.0250337 -1076.6643 -1067.6392 + 35600 3.56 0.076457339 1139.5536 280.69755 -14.849214 9.0344686 -1076.6737 -1067.6392 + 35650 3.565 0.076457352 1140.7103 280.04749 -14.917058 9.0135457 -1076.6528 -1067.6392 + 35700 3.57 0.076457331 1142.1674 279.62947 -14.981817 9.0000914 -1076.6393 -1067.6392 + 35750 3.575 0.07645736 1144.6546 281.13135 -15.039973 9.0484306 -1076.6877 -1067.6392 + 35800 3.58 0.076457452 1144.7784 285.20803 -15.085998 9.1796418 -1076.8189 -1067.6392 + 35850 3.585 0.076457435 1129.3741 290.12224 -15.107991 9.3378094 -1076.977 -1067.6392 + 35900 3.59 0.076457393 1112.74 293.01297 -15.11219 9.43085 -1077.0701 -1067.6392 + 35950 3.595 0.076457348 1103.3623 292.03339 -15.117469 9.3993213 -1077.0386 -1067.6392 + 36000 3.6 0.076457342 1092.3592 288.39522 -15.133694 9.282224 -1076.9215 -1067.6392 + 36050 3.605 0.076457368 1097.7068 284.33868 -15.15275 9.1516611 -1076.7909 -1067.6392 + 36100 3.61 0.076457447 1089.6532 278.3984 -15.16353 8.9604684 -1076.5997 -1067.6392 + 36150 3.615 0.076457405 1081.2352 270.14161 -15.16929 8.6947173 -1076.3339 -1067.6392 + 36200 3.62 0.076457246 1076.5583 262.87042 -15.178409 8.4606885 -1076.0999 -1067.6392 + 36250 3.625 0.076457235 1061.0661 259.62181 -15.1944 8.3561296 -1075.9954 -1067.6392 + 36300 3.63 0.07645747 1050.7866 261.15131 -15.213791 8.4053577 -1076.0446 -1067.6392 + 36350 3.635 0.076457644 1053.0141 266.64658 -15.238262 8.5822271 -1076.2215 -1067.6392 + 36400 3.64 0.076457572 1037.7841 274.52553 -15.272383 8.8358172 -1076.475 -1067.6392 + 36450 3.645 0.076457433 1003.6397 283.25391 -15.31747 9.1167468 -1076.756 -1067.6392 + 36500 3.65 0.076457386 978.50118 290.76048 -15.359824 9.3583516 -1076.9976 -1067.6392 + 36550 3.655 0.076457382 954.71445 294.4333 -15.380916 9.4765644 -1077.1158 -1067.6392 + 36600 3.66 0.076457454 934.6731 293.09974 -15.381452 9.4336425 -1077.0729 -1067.6392 + 36650 3.665 0.076457485 917.05162 288.19168 -15.372846 9.2756729 -1076.9149 -1067.6392 + 36700 3.67 0.076457404 904.52028 282.67475 -15.369934 9.0981062 -1076.7373 -1067.6392 + 36750 3.675 0.076457354 922.86218 278.65706 -15.385872 8.9687938 -1076.608 -1067.6392 + 36800 3.68 0.076457377 950.29972 276.39567 -15.411585 8.8960092 -1076.5352 -1067.6392 + 36850 3.685 0.076457379 947.97462 275.42079 -15.423194 8.864632 -1076.5039 -1067.6392 + 36900 3.69 0.076457359 941.51877 276.16385 -15.417289 8.8885477 -1076.5278 -1067.6392 + 36950 3.695 0.076457353 956.9108 279.42747 -15.409523 8.99359 -1076.6328 -1067.6392 + 37000 3.7 0.076457317 971.60851 284.78002 -15.412025 9.165866 -1076.8051 -1067.6392 + 37050 3.705 0.076457306 982.77877 290.53372 -15.432887 9.3510532 -1076.9903 -1067.6392 + 37100 3.71 0.076457343 997.15237 294.70552 -15.468502 9.4853259 -1077.1246 -1067.6392 + 37150 3.715 0.076457385 1016.0615 296.28658 -15.49906 9.5362134 -1077.1754 -1067.6392 + 37200 3.72 0.076457326 1051.0664 296.04901 -15.514614 9.5285671 -1077.1678 -1067.6392 + 37250 3.725 0.076457371 1089.2886 295.21317 -15.526145 9.501665 -1077.1409 -1067.6392 + 37300 3.73 0.076457452 1106.1528 293.87568 -15.548007 9.4586168 -1077.0978 -1067.6392 + 37350 3.735 0.076457445 1104.2757 291.48449 -15.577866 9.3816546 -1077.0209 -1067.6392 + 37400 3.74 0.076457331 1085.4998 288.23588 -15.602969 9.2770954 -1076.9163 -1067.6392 + 37450 3.745 0.076457268 1062.8115 285.35794 -15.620806 9.1844668 -1076.8237 -1067.6392 + 37500 3.75 0.076457259 1070.5416 284.37772 -15.640178 9.1529175 -1076.7921 -1067.6392 + 37550 3.755 0.076457261 1092.7901 285.9339 -15.668545 9.2030045 -1076.8422 -1067.6392 + 37600 3.76 0.076457268 1115.2985 288.69513 -15.700277 9.2918767 -1076.9311 -1067.6392 + 37650 3.765 0.076457312 1142.7167 290.22268 -15.717189 9.3410421 -1076.9803 -1067.6392 + 37700 3.77 0.076457266 1159.0972 289.01456 -15.704132 9.3021579 -1076.9414 -1067.6392 + 37750 3.775 0.076457153 1167.8654 285.54867 -15.672789 9.1906054 -1076.8298 -1067.6392 + 37800 3.78 0.076457127 1147.6845 281.59483 -15.654861 9.0633481 -1076.7026 -1067.6392 + 37850 3.785 0.076457194 1112.0309 278.61486 -15.657502 8.9674356 -1076.6067 -1067.6392 + 37900 3.79 0.076457284 1085.8713 277.75431 -15.666153 8.9397381 -1076.579 -1067.6392 + 37950 3.795 0.076457256 1063.8837 280.32673 -15.681907 9.0225334 -1076.6618 -1067.6392 + 38000 3.8 0.076457157 1076.2096 286.41182 -15.708072 9.2183866 -1076.8576 -1067.6392 + 38050 3.805 0.076457093 1101.2483 293.93325 -15.728993 9.4604696 -1077.0997 -1067.6392 + 38100 3.81 0.076457058 1093.1319 300.15342 -15.736321 9.6606707 -1077.2999 -1067.6392 + 38150 3.815 0.076457144 1052.1314 302.93086 -15.72822 9.7500647 -1077.3893 -1067.6392 + 38200 3.82 0.076457165 1022.6071 302.06991 -15.711588 9.7223544 -1077.3616 -1067.6392 + 38250 3.825 0.076457122 1033.0652 299.22877 -15.705515 9.6309102 -1077.2701 -1067.6392 + 38300 3.83 0.076457164 1062.0732 295.72691 -15.720213 9.5182002 -1077.1574 -1067.6392 + 38350 3.835 0.076457203 1064.4455 291.57116 -15.75021 9.384444 -1077.0237 -1067.6392 + 38400 3.84 0.076457185 1056.9879 286.00051 -15.778615 9.2051482 -1076.8444 -1067.6392 + 38450 3.845 0.076457163 1051.055 278.73145 -15.794206 8.971188 -1076.6104 -1067.6392 + 38500 3.85 0.076457045 1043.4921 270.84089 -15.799919 8.7172241 -1076.3565 -1067.6392 + 38550 3.855 0.07645701 1047.2952 264.8644 -15.80707 8.5248663 -1076.1641 -1067.6392 + 38600 3.86 0.076457105 1066.4021 263.59538 -15.821774 8.4840218 -1076.1232 -1067.6392 + 38650 3.865 0.076457109 1081.5763 268.25027 -15.841226 8.6338433 -1076.2731 -1067.6392 + 38700 3.87 0.076457016 1072.3855 277.54565 -15.859692 8.933022 -1076.5723 -1067.6392 + 38750 3.875 0.076456913 1054.1463 288.47412 -15.875746 9.2847635 -1076.924 -1067.6392 + 38800 3.88 0.076456918 1046.099 297.63078 -15.88286 9.5794778 -1077.2187 -1067.6392 + 38850 3.885 0.076456965 1035.9503 302.79444 -15.874155 9.745674 -1077.3849 -1067.6392 + 38900 3.89 0.076456968 1006.8277 304.00878 -15.862675 9.7847584 -1077.424 -1067.6392 + 38950 3.895 0.076456992 982.30541 302.68425 -15.866243 9.7421275 -1077.3814 -1067.6392 + 39000 3.9 0.076457051 964.15884 300.333 -15.885469 9.6664508 -1077.3057 -1067.6392 + 39050 3.905 0.07645708 963.47178 297.96261 -15.907738 9.5901579 -1077.2294 -1067.6392 + 39100 3.91 0.07645707 982.39789 295.77017 -15.919704 9.5195926 -1077.1588 -1067.6392 + 39150 3.915 0.07645701 986.19343 293.76453 -15.921564 9.4550395 -1077.0943 -1067.6392 + 39200 3.92 0.076456973 973.23149 292.25935 -15.917749 9.406594 -1077.0458 -1067.6392 + 39250 3.925 0.07645699 956.8331 292.06244 -15.915109 9.4002564 -1077.0395 -1067.6392 + 39300 3.93 0.076457091 947.66562 293.77507 -15.928151 9.4553785 -1077.0946 -1067.6392 + 39350 3.935 0.076457197 953.8454 296.30939 -15.95971 9.5369477 -1077.1762 -1067.6392 + 39400 3.94 0.076457123 941.598 297.57903 -16.001499 9.5778122 -1077.217 -1067.6392 + 39450 3.945 0.076456979 937.81347 295.88089 -16.028812 9.5231561 -1077.1624 -1067.6392 + 39500 3.95 0.076456966 972.55148 291.44854 -16.022183 9.3804973 -1077.0197 -1067.6392 + 39550 3.955 0.076456998 1016.9451 286.92489 -16.003393 9.2349002 -1076.8741 -1067.6392 + 39600 3.96 0.076457077 1044.6221 284.67636 -16.001645 9.1625296 -1076.8018 -1067.6392 + 39650 3.965 0.076457123 1054.2122 285.21332 -16.024476 9.179812 -1076.819 -1067.6392 + 39700 3.97 0.0764571 1065.5507 287.8143 -16.060544 9.2635265 -1076.9028 -1067.6392 + 39750 3.975 0.076457084 1090.1167 291.49835 -16.091023 9.3821005 -1077.0213 -1067.6392 + 39800 3.98 0.076457092 1088.6899 295.37171 -16.105973 9.5067677 -1077.146 -1067.6392 + 39850 3.985 0.076457119 1048.7529 298.22527 -16.109259 9.5986118 -1077.2378 -1067.6392 + 39900 3.99 0.076457095 1002.706 298.65816 -16.11916 9.6125446 -1077.2518 -1067.6392 + 39950 3.995 0.076457007 987.02608 295.67741 -16.143138 9.5166068 -1077.1558 -1067.6392 + 40000 4 0.076456959 991.32371 290.38741 -16.167165 9.3463442 -1076.9856 -1067.6392 + 40050 4.005 0.076456996 1005.4007 286.06135 -16.191789 9.2071066 -1076.8463 -1067.6392 + 40100 4.01 0.076457058 1012.3385 284.2928 -16.225309 9.1501844 -1076.7894 -1067.6392 + 40150 4.015 0.076457022 981.99522 284.09917 -16.253328 9.1439521 -1076.7832 -1067.6392 + 40200 4.02 0.076457038 941.79789 284.62665 -16.265654 9.1609297 -1076.8002 -1067.6392 + 40250 4.025 0.076457083 937.71916 286.12641 -16.277424 9.2092004 -1076.8484 -1067.6392 + 40300 4.03 0.076457088 965.18662 288.6347 -16.293112 9.2899318 -1076.9292 -1067.6392 + 40350 4.035 0.076457059 1017.9185 291.81257 -16.296246 9.3922139 -1077.0314 -1067.6392 + 40400 4.04 0.076456957 1076.0557 296.38482 -16.287869 9.5393756 -1077.1786 -1067.6392 + 40450 4.045 0.076456887 1095.6373 303.83922 -16.288858 9.779301 -1077.4185 -1067.6392 + 40500 4.05 0.076456882 1073.7393 314.05155 -16.311397 10.107993 -1077.7472 -1067.6392 + 40550 4.055 0.076456904 1044.4103 323.76759 -16.342897 10.420711 -1078.0599 -1067.6392 + 40600 4.06 0.076457029 1034.8473 329.10878 -16.368322 10.592622 -1078.2319 -1067.6392 + 40650 4.065 0.076457135 1060.2685 328.20348 -16.381961 10.563484 -1078.2027 -1067.6392 + 40700 4.07 0.076457112 1074.3918 321.48063 -16.381837 10.347104 -1077.9863 -1067.6392 + 40750 4.075 0.076457033 1068.0033 311.42134 -16.370626 10.023338 -1077.6626 -1067.6392 + 40800 4.08 0.076457002 1062.9309 301.40533 -16.356398 9.7009645 -1077.3402 -1067.6392 + 40850 4.085 0.076457035 1060.5178 293.82988 -16.353033 9.4571427 -1077.0964 -1067.6392 + 40900 4.09 0.076457118 1042.7869 289.64315 -16.36814 9.3223897 -1076.9616 -1067.6392 + 40950 4.095 0.076457102 1018.1514 288.9377 -16.391984 9.2996841 -1076.9389 -1067.6392 + 41000 4.1 0.076457101 1008.7893 291.04209 -16.410378 9.3674155 -1077.0066 -1067.6392 + 41050 4.105 0.076457128 1003.0943 294.82137 -16.429591 9.4890547 -1077.1283 -1067.6392 + 41100 4.11 0.07645713 988.07337 298.92586 -16.468813 9.6211607 -1077.2604 -1067.6392 + 41150 4.115 0.076457209 989.22727 301.53433 -16.530448 9.7051164 -1077.3443 -1067.6392 + 41200 4.12 0.076457137 995.23968 300.7184 -16.59589 9.6788552 -1077.3181 -1067.6392 + 41250 4.125 0.076457081 985.88397 295.87985 -16.651304 9.5231227 -1077.1624 -1067.6392 + 41300 4.13 0.076457157 984.43258 288.32296 -16.693415 9.2798984 -1076.9191 -1067.6392 + 41350 4.135 0.076457193 1006.7996 280.67631 -16.722715 9.033785 -1076.673 -1067.6392 + 41400 4.14 0.076457144 1035.0581 275.89522 -16.743941 8.8799019 -1076.5191 -1067.6392 + 41450 4.145 0.076457091 1055.193 276.48914 -16.770034 8.8990177 -1076.5382 -1067.6392 + 41500 4.15 0.076457094 1049.464 282.98604 -16.80422 9.1081253 -1076.7474 -1067.6392 + 41550 4.155 0.076457138 1033.4498 293.55036 -16.837757 9.448146 -1077.0874 -1067.6392 + 41600 4.16 0.076457177 1025.5053 305.59852 -16.868232 9.8359254 -1077.4752 -1067.6392 + 41650 4.165 0.076457144 1030.3407 316.75401 -16.9012 10.194974 -1077.8342 -1067.6392 + 41700 4.17 0.076457109 1042.8576 325.10515 -16.941062 10.463762 -1078.103 -1067.6392 + 41750 4.175 0.076457116 1041.7476 329.79088 -16.983477 10.614575 -1078.2538 -1067.6392 + 41800 4.18 0.076457129 1021.8465 330.97667 -17.012787 10.652741 -1078.292 -1067.6392 + 41850 4.185 0.076457027 1009.1192 329.54708 -17.026799 10.606729 -1078.246 -1067.6392 + 41900 4.19 0.076457044 1009.0074 326.75477 -17.042781 10.516856 -1078.1561 -1067.6392 + 41950 4.195 0.076457158 1008.7758 323.40391 -17.062093 10.409006 -1078.0482 -1067.6392 + 42000 4.2 0.076457147 1005.3634 320.10432 -17.080158 10.302806 -1077.942 -1067.6392 + 42050 4.205 0.076457115 991.88405 317.33885 -17.10087 10.213797 -1077.853 -1067.6392 + 42100 4.21 0.076457042 980.63929 315.014 -17.130865 10.13897 -1077.7782 -1067.6392 + 42150 4.215 0.076456975 998.50297 312.63763 -17.172141 10.062485 -1077.7017 -1067.6392 + 42200 4.22 0.07645708 1026.9562 310.54725 -17.204551 9.9952042 -1077.6344 -1067.6392 + 42250 4.225 0.07645718 1024.8324 310.92967 -17.213513 10.007513 -1077.6467 -1067.6392 + 42300 4.23 0.076457083 1017.3813 314.39712 -17.205294 10.119115 -1077.7583 -1067.6392 + 42350 4.235 0.076457003 1012.2184 317.86117 -17.191657 10.230608 -1077.8698 -1067.6392 + 42400 4.24 0.076457062 1014.6726 317.97177 -17.18376 10.234168 -1077.8734 -1067.6392 + 42450 4.245 0.076457115 1041.0192 313.50056 -17.1786 10.090259 -1077.7295 -1067.6392 + 42500 4.25 0.076457027 1065.6231 305.46596 -17.164761 9.8316589 -1077.4709 -1067.6392 + 42550 4.255 0.076456955 1061.963 296.42889 -17.133558 9.540794 -1077.18 -1067.6392 + 42600 4.26 0.076457002 1048.971 289.79488 -17.095891 9.327273 -1076.9665 -1067.6392 + 42650 4.265 0.076457008 1015.7483 288.18363 -17.073381 9.2754137 -1076.9146 -1067.6392 + 42700 4.27 0.076456971 966.63074 291.62369 -17.06781 9.3861349 -1077.0254 -1067.6392 + 42750 4.275 0.076456941 937.2059 298.17523 -17.069236 9.5970012 -1077.2362 -1067.6392 + 42800 4.28 0.076456915 941.41873 305.73809 -17.079494 9.8404177 -1077.4796 -1067.6392 + 42850 4.285 0.076456844 968.97273 312.62631 -17.099416 10.06212 -1077.7014 -1067.6392 + 42900 4.29 0.076456817 989.21318 317.5486 -17.113085 10.220548 -1077.8598 -1067.6392 + 42950 4.295 0.07645684 1007.6816 320.37965 -17.114449 10.311668 -1077.9509 -1067.6392 + 43000 4.3 0.076456884 1017.4556 321.9046 -17.116189 10.360749 -1078 -1067.6392 + 43050 4.305 0.076456934 997.36098 322.79504 -17.129186 10.389409 -1078.0286 -1067.6392 + 43100 4.31 0.076456922 976.5255 323.56991 -17.161651 10.414349 -1078.0536 -1067.6392 + 43150 4.315 0.076456789 965.28563 323.98987 -17.208478 10.427865 -1078.0671 -1067.6392 + 43200 4.32 0.076456656 976.013 322.91929 -17.253423 10.393408 -1078.0326 -1067.6392 + 43250 4.325 0.07645674 986.91303 319.71702 -17.290058 10.29034 -1077.9296 -1067.6392 + 43300 4.33 0.076456855 994.50735 315.51655 -17.319905 10.155145 -1077.7944 -1067.6392 + 43350 4.335 0.076456913 992.09776 312.98202 -17.344711 10.073569 -1077.7128 -1067.6392 + 43400 4.34 0.076456873 993.00971 314.05271 -17.361697 10.10803 -1077.7473 -1067.6392 + 43450 4.345 0.076456881 1011.1756 318.25407 -17.363193 10.243254 -1077.8825 -1067.6392 + 43500 4.35 0.076456916 1022.1325 324.00289 -17.356684 10.428285 -1078.0675 -1067.6392 + 43550 4.355 0.076456894 1001.5952 329.50567 -17.36965 10.605396 -1078.2446 -1067.6392 + 43600 4.36 0.076456787 990.25729 331.52244 -17.398294 10.670307 -1078.3095 -1067.6392 + 43650 4.365 0.076456812 1014.8329 327.94176 -17.418135 10.55506 -1078.1943 -1067.6392 + 43700 4.37 0.076456927 1009.9859 320.07607 -17.423852 10.301897 -1077.9411 -1067.6392 + 43750 4.375 0.076456903 969.415 310.42468 -17.431775 9.9912593 -1077.6305 -1067.6392 + 43800 4.38 0.076456845 959.2175 300.83991 -17.450035 9.6827659 -1077.322 -1067.6392 + 43850 4.385 0.076456904 972.76707 292.38261 -17.458814 9.4105611 -1077.0498 -1067.6392 + 43900 4.39 0.076456967 1000.7902 286.33658 -17.440879 9.215965 -1076.8552 -1067.6392 + 43950 4.395 0.076456908 1023.9806 285.0775 -17.417685 9.1754407 -1076.8147 -1067.6392 + 44000 4.4 0.076456873 1016.312 289.59884 -17.414064 9.3209636 -1076.9602 -1067.6392 + 44050 4.405 0.076456899 1002.0937 297.58236 -17.427534 9.5779192 -1077.2171 -1067.6392 + 44100 4.41 0.076456992 979.49413 305.48344 -17.460189 9.8322216 -1077.4715 -1067.6392 + 44150 4.415 0.076456954 957.12038 310.16996 -17.500467 9.983061 -1077.6223 -1067.6392 + 44200 4.42 0.076456909 969.36774 310.67664 -17.517203 9.9993688 -1077.6386 -1067.6392 + 44250 4.425 0.076457034 990.1925 309.6621 -17.501366 9.966715 -1077.6059 -1067.6392 + 44300 4.43 0.076457126 997.07426 311.42685 -17.48063 10.023515 -1077.6627 -1067.6392 + 44350 4.435 0.076457073 1012.156 317.95445 -17.477266 10.233611 -1077.8728 -1067.6392 + 44400 4.44 0.076456939 1014.2778 328.00805 -17.482372 10.557194 -1078.1964 -1067.6392 + 44450 4.445 0.076456926 999.33044 339.05571 -17.484164 10.912771 -1078.552 -1067.6392 + 44500 4.45 0.076457063 992.03592 348.59795 -17.490492 11.219896 -1078.8591 -1067.6392 + 44550 4.455 0.076457102 1000.0606 354.61439 -17.51719 11.413539 -1079.0528 -1067.6392 + 44600 4.46 0.076456962 996.40689 355.89465 -17.569196 11.454745 -1079.094 -1067.6392 + 44650 4.465 0.076456921 982.66296 351.92721 -17.625938 11.32705 -1078.9663 -1067.6392 + 44700 4.47 0.076457079 980.49035 343.41935 -17.667243 11.053218 -1078.6925 -1067.6392 + 44750 4.475 0.076457159 979.21197 332.02069 -17.68549 10.686344 -1078.3256 -1067.6392 + 44800 4.48 0.076457107 992.32881 320.06951 -17.687575 10.301685 -1077.9409 -1067.6392 + 44850 4.485 0.076456963 1013.5196 310.0827 -17.693112 9.9802522 -1077.6195 -1067.6392 + 44900 4.49 0.076456969 1001.5918 303.20339 -17.722904 9.7588364 -1077.3981 -1067.6392 + 44950 4.495 0.07645701 980.51163 298.27852 -17.770105 9.6003255 -1077.2396 -1067.6392 + 45000 4.5 0.076457008 965.95999 294.19092 -17.8048 9.4687631 -1077.108 -1067.6392 + 45050 4.505 0.076457017 961.98916 292.94732 -17.819999 9.4287368 -1077.068 -1067.6392 + 45100 4.51 0.07645703 971.83236 297.17494 -17.826582 9.5648062 -1077.204 -1067.6392 + 45150 4.515 0.076457062 971.3126 305.34652 -17.830021 9.8278148 -1077.467 -1067.6392 + 45200 4.52 0.076457088 967.70533 313.76007 -17.837312 10.098611 -1077.7378 -1067.6392 + 45250 4.525 0.076457101 978.16788 320.28707 -17.856874 10.308688 -1077.9479 -1067.6392 + 45300 4.53 0.076457058 976.86282 324.31727 -17.883352 10.438403 -1078.0776 -1067.6392 + 45350 4.535 0.076457004 957.06022 326.51332 -17.908809 10.509085 -1078.1483 -1067.6392 + 45400 4.54 0.076457052 942.23138 327.86211 -17.932213 10.552497 -1078.1917 -1067.6392 + 45450 4.545 0.07645704 939.40207 328.25924 -17.946431 10.565278 -1078.2045 -1067.6392 + 45500 4.55 0.076456984 936.0127 327.92287 -17.951349 10.554452 -1078.1937 -1067.6392 + 45550 4.555 0.076456984 943.56455 327.95367 -17.956533 10.555444 -1078.1947 -1067.6392 + 45600 4.56 0.076456952 970.72253 329.0502 -17.962098 10.590736 -1078.23 -1067.6392 + 45650 4.565 0.076456987 995.14598 331.17156 -17.959883 10.659014 -1078.2982 -1067.6392 + 45700 4.57 0.076457009 998.94348 333.51018 -17.947766 10.734284 -1078.3735 -1067.6392 + 45750 4.575 0.076456926 989.53969 334.52552 -17.932792 10.766963 -1078.4062 -1067.6392 + 45800 4.58 0.076456925 980.95008 333.13239 -17.931126 10.722125 -1078.3614 -1067.6392 + 45850 4.585 0.076457115 959.08206 328.86879 -17.93416 10.584897 -1078.2241 -1067.6392 + 45900 4.59 0.076457157 946.57457 322.43709 -17.923384 10.377888 -1078.0171 -1067.6392 + 45950 4.595 0.07645705 952.85741 316.41194 -17.913842 10.183964 -1077.8232 -1067.6392 + 46000 4.6 0.076456979 945.08309 313.54756 -17.919013 10.091772 -1077.731 -1067.6392 + 46050 4.605 0.076457016 924.59556 315.06793 -17.927039 10.140706 -1077.7799 -1067.6392 + 46100 4.61 0.076457109 914.10059 320.37764 -17.937025 10.311603 -1077.9508 -1067.6392 + 46150 4.615 0.076457104 917.2827 327.12661 -17.957731 10.528824 -1078.1681 -1067.6392 + 46200 4.62 0.076457168 920.84155 332.53739 -17.977107 10.702974 -1078.3422 -1067.6392 + 46250 4.625 0.076457189 935.24004 335.24356 -17.979199 10.790074 -1078.4293 -1067.6392 + 46300 4.63 0.0764571 956.82788 335.57661 -17.975075 10.800794 -1078.44 -1067.6392 + 46350 4.635 0.076457031 962.26794 334.10104 -17.978152 10.753301 -1078.3925 -1067.6392 + 46400 4.64 0.076457042 962.1098 331.07198 -17.987144 10.655809 -1078.295 -1067.6392 + 46450 4.645 0.076457107 952.75718 326.27068 -17.988379 10.501275 -1078.1405 -1067.6392 + 46500 4.65 0.076457159 948.45576 319.53501 -17.972857 10.284482 -1077.9237 -1067.6392 + 46550 4.655 0.076457197 951.57922 312.18572 -17.950863 10.04794 -1077.6872 -1067.6392 + 46600 4.66 0.076457169 953.72078 306.60692 -17.937745 9.8683816 -1077.5076 -1067.6392 + 46650 4.665 0.07645714 969.19209 304.86187 -17.945815 9.8122157 -1077.4514 -1067.6392 + 46700 4.67 0.076457121 982.50268 307.98161 -17.974576 9.9126272 -1077.5519 -1067.6392 + 46750 4.675 0.076457149 974.5768 314.91384 -18.000917 10.135746 -1077.775 -1067.6392 + 46800 4.68 0.076457222 954.17186 322.2853 -18.003497 10.373003 -1078.0122 -1067.6392 + 46850 4.685 0.076457263 943.539 327.31716 -17.991456 10.534957 -1078.1742 -1067.6392 + 46900 4.69 0.076457272 943.2156 329.68269 -17.979619 10.611093 -1078.2503 -1067.6392 + 46950 4.695 0.076457248 943.45366 330.93325 -17.974243 10.651343 -1078.2906 -1067.6392 + 47000 4.7 0.076457135 949.24404 332.85406 -17.979019 10.713166 -1078.3524 -1067.6392 + 47050 4.705 0.076457109 948.38347 335.49431 -17.990033 10.798145 -1078.4374 -1067.6392 + 47100 4.71 0.076457108 930.57759 336.79293 -18.000912 10.839942 -1078.4792 -1067.6392 + 47150 4.715 0.076457061 927.62433 334.90723 -18.010023 10.779249 -1078.4185 -1067.6392 + 47200 4.72 0.076457026 952.31461 330.77819 -18.012971 10.646353 -1078.2856 -1067.6392 + 47250 4.725 0.076457029 970.41647 328.26943 -18.01237 10.565606 -1078.2048 -1067.6392 + 47300 4.73 0.07645704 968.2995 329.56928 -18.014991 10.607443 -1078.2467 -1067.6392 + 47350 4.735 0.076457096 954.1138 332.31723 -18.02454 10.695888 -1078.3351 -1067.6392 + 47400 4.74 0.07645714 968.01812 333.90938 -18.038354 10.747133 -1078.3864 -1067.6392 + 47450 4.745 0.076457183 1006.2574 334.70242 -18.050106 10.772657 -1078.4119 -1067.6392 + 47500 4.75 0.076457147 1037.4547 335.39669 -18.062338 10.795003 -1078.4342 -1067.6392 + 47550 4.755 0.076457004 1027.5546 333.98227 -18.07862 10.749479 -1078.3887 -1067.6392 + 47600 4.76 0.076457078 986.81013 328.40773 -18.100384 10.570058 -1078.2093 -1067.6392 + 47650 4.765 0.076457236 980.12421 319.46388 -18.120191 10.282193 -1077.9214 -1067.6392 + 47700 4.77 0.076457087 973.75413 310.20532 -18.133538 9.984199 -1077.6234 -1067.6392 + 47750 4.775 0.076456955 944.49227 304.05996 -18.150575 9.7864056 -1077.4256 -1067.6392 + 47800 4.78 0.076457043 934.26558 302.74055 -18.16342 9.7439395 -1077.3832 -1067.6392 + 47850 4.785 0.076457163 946.5867 306.50326 -18.158739 9.8650453 -1077.5043 -1067.6392 + 47900 4.79 0.076457207 956.86274 314.93949 -18.15119 10.136572 -1077.7758 -1067.6392 + 47950 4.795 0.07645715 958.82327 326.06488 -18.164425 10.494651 -1078.1339 -1067.6392 + 48000 4.8 0.076457039 947.13341 336.0645 -18.196245 10.816497 -1078.4557 -1067.6392 + 48050 4.805 0.076457079 939.87276 341.25341 -18.222449 10.983506 -1078.6227 -1067.6392 + 48100 4.81 0.076457027 941.59608 340.87478 -18.232947 10.971319 -1078.6106 -1067.6392 + 48150 4.815 0.076456851 947.69448 337.06143 -18.235444 10.848584 -1078.4878 -1067.6392 + 48200 4.82 0.076456923 945.0083 331.93845 -18.226235 10.683697 -1078.3229 -1067.6392 + 48250 4.825 0.076457065 955.23353 326.88598 -18.206503 10.521079 -1078.1603 -1067.6392 + 48300 4.83 0.076457035 976.25082 323.10993 -18.198786 10.399544 -1078.0388 -1067.6392 + 48350 4.835 0.076456918 980.22652 320.95231 -18.21424 10.330099 -1077.9693 -1067.6392 + 48400 4.84 0.07645681 991.61794 319.56431 -18.236887 10.285425 -1077.9247 -1067.6392 + 48450 4.845 0.076456811 1004.3973 319.00657 -18.259638 10.267474 -1077.9067 -1067.6392 + 48500 4.85 0.076456872 1011.2382 320.78368 -18.281738 10.324672 -1077.9639 -1067.6392 + 48550 4.855 0.076456865 1011.4359 325.48338 -18.293785 10.475935 -1078.1152 -1067.6392 + 48600 4.86 0.076456844 1005.7488 332.46822 -18.305193 10.700748 -1078.34 -1067.6392 + 48650 4.865 0.076456876 989.87609 340.85827 -18.332595 10.970788 -1078.61 -1067.6392 + 48700 4.87 0.07645693 968.07155 348.89288 -18.372402 11.229388 -1078.8686 -1067.6392 + 48750 4.875 0.076456873 954.48433 354.07093 -18.412323 11.396048 -1079.0353 -1067.6392 + 48800 4.88 0.076456838 951.82821 354.8518 -18.445418 11.421181 -1079.0604 -1067.6392 + 48850 4.885 0.076456946 955.18291 351.65785 -18.473652 11.318381 -1078.9576 -1067.6392 + 48900 4.89 0.076457014 961.21122 345.9779 -18.498732 11.135567 -1078.7748 -1067.6392 + 48950 4.895 0.076456863 971.60448 338.99359 -18.517002 10.910772 -1078.55 -1067.6392 + 49000 4.9 0.076456715 983.55102 331.29604 -18.525123 10.66302 -1078.3022 -1067.6392 + 49050 4.905 0.076456793 965.60848 324.24302 -18.535514 10.436013 -1078.0752 -1067.6392 + 49100 4.91 0.076456864 944.53951 319.79955 -18.557009 10.292997 -1077.9322 -1067.6392 + 49150 4.915 0.076456768 947.20225 319.09103 -18.582911 10.270192 -1077.9094 -1067.6392 + 49200 4.92 0.076456734 944.86084 321.47471 -18.607567 10.346913 -1077.9861 -1067.6392 + 49250 4.925 0.076456851 940.6342 324.66116 -18.626242 10.449471 -1078.0887 -1067.6392 + 49300 4.93 0.076456872 950.6162 326.9518 -18.64032 10.523198 -1078.1624 -1067.6392 + 49350 4.935 0.076456643 952.42705 328.08816 -18.649274 10.559772 -1078.199 -1067.6392 + 49400 4.94 0.076456451 940.33548 329.05106 -18.66058 10.590764 -1078.23 -1067.6392 + 49450 4.945 0.076456558 946.93554 331.05799 -18.683544 10.655358 -1078.2946 -1067.6392 + 49500 4.95 0.076456719 968.13429 334.1178 -18.710726 10.753841 -1078.3931 -1067.6392 + 49550 4.955 0.076456712 989.14725 337.02333 -18.733226 10.847357 -1078.4866 -1067.6392 + 49600 4.96 0.076456681 986.97561 338.47429 -18.752155 10.894058 -1078.5333 -1067.6392 + 49650 4.965 0.076456692 980.18259 338.36307 -18.779369 10.890478 -1078.5297 -1067.6392 + 49700 4.97 0.076456776 962.29895 337.41689 -18.815353 10.860024 -1078.4993 -1067.6392 + 49750 4.975 0.076456852 943.47442 335.97999 -18.836611 10.813777 -1078.453 -1067.6392 + 49800 4.98 0.076456829 951.10385 334.29845 -18.839995 10.759655 -1078.3989 -1067.6392 + 49850 4.985 0.076456797 968.57767 333.00568 -18.84792 10.718046 -1078.3573 -1067.6392 + 49900 4.99 0.076456886 973.40031 332.98155 -18.860429 10.71727 -1078.3565 -1067.6392 + 49950 4.995 0.076456914 964.32242 335.13156 -18.853933 10.786469 -1078.4257 -1067.6392 + 50000 5 0.076456921 972.52311 340.63067 -18.841947 10.963463 -1078.6027 -1067.6392 +Loop time of 90.4316 on 1 procs for 50000 steps with 250 atoms + +Performance: 4.777 ns/day, 5.024 hours/ns, 552.904 timesteps/s +99.3% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 37.302 | 37.302 | 37.302 | 0.0 | 41.25 +Neigh | 0.386 | 0.386 | 0.386 | 0.0 | 0.43 +Comm | 0.7718 | 0.7718 | 0.7718 | 0.0 | 0.85 +Output | 15.35 | 15.35 | 15.35 | 0.0 | 16.97 +Modify | 36.465 | 36.465 | 36.465 | 0.0 | 40.32 +Other | | 0.1579 | | | 0.17 + +Nlocal: 250 ave 250 max 250 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1327 ave 1327 max 1327 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 7747 ave 7747 max 7747 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 15494 ave 15494 max 15494 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 15494 +Ave neighs/atom = 61.976 +Neighbor list builds = 614 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:01:30 diff --git a/examples/SPIN/iron/log.11May18.spin.iron.g++.4 b/examples/SPIN/iron/log.11May18.spin.iron.g++.4 new file mode 100644 index 0000000000..1467f8e2c5 --- /dev/null +++ b/examples/SPIN/iron/log.11May18.spin.iron.g++.4 @@ -0,0 +1,1115 @@ +LAMMPS (11 May 2018) +# bcc iron in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice bcc 2.8665 +Lattice spacing in x,y,z = 2.8665 2.8665 2.8665 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (14.3325 14.3325 14.3325) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 250 atoms + Time spent = 0.00023818 secs + +# setting mass, mag. moments, and interactions for bcc iron + +mass 1 55.845 + +set group all spin/random 31 2.2 + 250 settings made for spin/random +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 3.5 +pair_coeff * * eam/alloy Fe_Mishin2006.eam.alloy Fe +pair_coeff * * spin/exchange exchange 3.4 0.02726 0.2171 1.841 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# compute and output options + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_tmag temp v_emag ke pe etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump_iron.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 50000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.77337 + ghost atom cutoff = 5.77337 + binsize = 2.88668, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.265 | 7.265 | 7.265 Mbytes +Step Time v_magnorm v_tmag Temp v_emag KinEng PotEng TotEng + 0 0 0.076456975 9109.0924 100.00358 -0.85791269 3.2186929 -1070.8579 -1067.6392 + 50 0.005 0.076456995 9402.4007 96.298333 -0.85659448 3.0994366 -1070.7387 -1067.6392 + 100 0.01 0.076457028 9589.1846 86.330828 -0.87003341 2.7786247 -1070.4179 -1067.6392 + 150 0.015 0.076457074 9673.9268 71.603402 -0.89006992 2.3046111 -1069.9438 -1067.6392 + 200 0.02 0.076457106 9509.1148 54.648817 -0.91124541 1.7589146 -1069.3981 -1067.6392 + 250 0.025 0.076457128 9004.27 38.599515 -0.93187522 1.2423553 -1068.8816 -1067.6392 + 300 0.03 0.076457157 8353.4371 26.383018 -0.95082226 0.8491579 -1068.4884 -1067.6392 + 350 0.035 0.076457207 7911.1316 20.01039 -0.96826468 0.64404992 -1068.2833 -1067.6392 + 400 0.04 0.076457243 7775.9492 20.097682 -0.98706373 0.64685949 -1068.2861 -1067.6392 + 450 0.045 0.076457231 7737.1225 25.687511 -1.0095684 0.82677249 -1068.466 -1067.6392 + 500 0.05 0.076457204 7676.9809 34.604697 -1.0349855 1.113779 -1068.753 -1067.6392 + 550 0.055 0.076457196 7550.2809 44.251809 -1.0609123 1.4242788 -1069.0635 -1067.6392 + 600 0.06 0.076457188 7209.7657 52.475202 -1.0880854 1.6889551 -1069.3282 -1067.6392 + 650 0.065 0.07645718 6691.1787 57.926479 -1.1179657 1.8644087 -1069.5036 -1067.6392 + 700 0.07 0.076457185 6276.4003 60.030548 -1.1469999 1.9321298 -1069.5714 -1067.6392 + 750 0.075 0.07645719 6149.9253 59.122504 -1.1721939 1.9029037 -1069.5421 -1067.6392 + 800 0.08 0.076457195 6207.0587 56.349146 -1.1949365 1.813641 -1069.4529 -1067.6392 + 850 0.085 0.076457199 6328.4635 53.154464 -1.2164642 1.7108177 -1069.35 -1067.6392 + 900 0.09 0.076457199 6456.2716 50.837416 -1.2366018 1.6362417 -1069.2755 -1067.6392 + 950 0.095 0.076457222 6495.1064 50.234549 -1.2539657 1.6168379 -1069.2561 -1067.6392 + 1000 0.1 0.076457266 6416.775 51.592727 -1.2671834 1.6605519 -1069.2998 -1067.6392 + 1050 0.105 0.076457256 6305.9015 54.719414 -1.2794824 1.7611868 -1069.4004 -1067.6392 + 1100 0.11 0.076457222 6165.987 59.01343 -1.2960617 1.8993931 -1069.5386 -1067.6392 + 1150 0.115 0.076457194 5941.7807 63.475298 -1.317859 2.0430017 -1069.6822 -1067.6392 + 1200 0.12 0.076457182 5692.0982 67.036713 -1.3432854 2.1576286 -1069.7969 -1067.6392 + 1250 0.125 0.076457217 5543.1736 68.917405 -1.3719994 2.2181602 -1069.8574 -1067.6392 + 1300 0.13 0.076457263 5507.9968 68.753418 -1.4042339 2.2128821 -1069.8521 -1067.6392 + 1350 0.135 0.076457286 5500.7848 66.608286 -1.4385667 2.1438394 -1069.7831 -1067.6392 + 1400 0.14 0.076457254 5523.456 62.967429 -1.4712143 2.0266556 -1069.6659 -1067.6392 + 1450 0.145 0.076457188 5501.5777 58.75732 -1.4990458 1.89115 -1069.5304 -1067.6392 + 1500 0.15 0.076457175 5324.4931 55.246308 -1.5236774 1.7781453 -1069.4174 -1067.6392 + 1550 0.155 0.076457234 5025.5908 53.607297 -1.5492947 1.7253925 -1069.3646 -1067.6392 + 1600 0.16 0.076457297 4742.9546 54.443418 -1.5785798 1.7523036 -1069.3915 -1067.6392 + 1650 0.165 0.076457321 4558.083 57.572305 -1.6113848 1.8530093 -1069.4922 -1067.6392 + 1700 0.17 0.076457304 4479.4352 62.073307 -1.6443595 1.9978776 -1069.6371 -1067.6392 + 1750 0.175 0.076457272 4520.5577 66.677964 -1.6742729 2.146082 -1069.7853 -1067.6392 + 1800 0.18 0.076457253 4659.9114 70.277293 -1.7021557 2.2619292 -1069.9012 -1067.6392 + 1850 0.185 0.076457257 4734.1597 72.135028 -1.7307798 2.3217219 -1069.961 -1067.6392 + 1900 0.19 0.076457279 4632.2637 71.873382 -1.7598165 2.3133006 -1069.9525 -1067.6392 + 1950 0.195 0.076457276 4496.6621 69.52131 -1.7866398 2.2375973 -1069.8768 -1067.6392 + 2000 0.2 0.076457276 4507.4594 65.61098 -1.8106776 2.1117403 -1069.751 -1067.6392 + 2050 0.205 0.076457288 4652.9279 61.016261 -1.8317479 1.9638557 -1069.6031 -1067.6392 + 2100 0.21 0.076457307 4738.4188 56.745795 -1.8489776 1.8264074 -1069.4656 -1067.6392 + 2150 0.215 0.076457279 4643.423 53.837376 -1.8647516 1.7327977 -1069.372 -1067.6392 + 2200 0.22 0.076457215 4517.9871 53.044053 -1.8828305 1.707264 -1069.3465 -1067.6392 + 2250 0.225 0.07645717 4436.4399 54.521839 -1.9038753 1.7548277 -1069.3941 -1067.6392 + 2300 0.23 0.076457132 4318.8261 57.895634 -1.9276454 1.8634159 -1069.5026 -1067.6392 + 2350 0.235 0.076457114 4148.8616 62.484473 -1.9559372 2.0111113 -1069.6503 -1067.6392 + 2400 0.24 0.076457144 4014.8498 67.404243 -1.9902034 2.1694579 -1069.8087 -1067.6392 + 2450 0.245 0.076457189 4004.017 71.654167 -2.0278558 2.306245 -1069.9455 -1067.6392 + 2500 0.25 0.076457202 4109.5497 74.379393 -2.0629968 2.3939585 -1070.0332 -1067.6392 + 2550 0.255 0.076457205 4251.6933 75.255112 -2.0918484 2.4221442 -1070.0614 -1067.6392 + 2600 0.26 0.076457208 4320.6876 74.700611 -2.1169691 2.4042972 -1070.0435 -1067.6392 + 2650 0.265 0.076457197 4297.5527 73.627823 -2.143 2.3697686 -1070.009 -1067.6392 + 2700 0.27 0.076457213 4198.4852 72.957211 -2.1702374 2.3481845 -1069.9874 -1067.6392 + 2750 0.275 0.076457256 4019.2384 73.353574 -2.1967187 2.3609417 -1070.0002 -1067.6392 + 2800 0.28 0.076457288 3867.2492 75.083781 -2.2227117 2.4166298 -1070.0559 -1067.6392 + 2850 0.285 0.076457302 3879.8471 77.82546 -2.2488766 2.5048728 -1070.1441 -1067.6392 + 2900 0.29 0.076457321 4003.8986 80.741745 -2.2742584 2.5987357 -1070.238 -1067.6392 + 2950 0.295 0.076457347 4026.6754 82.934399 -2.3001834 2.669308 -1070.3085 -1067.6392 + 3000 0.3 0.076457334 3857.2183 83.701738 -2.3291113 2.6940054 -1070.3332 -1067.6392 + 3050 0.305 0.076457295 3640.7581 82.615991 -2.3614721 2.6590598 -1070.2983 -1067.6392 + 3100 0.31 0.07645725 3489.102 79.573679 -2.3943974 2.5611406 -1070.2004 -1067.6392 + 3150 0.315 0.076457232 3396.4301 74.896125 -2.4236621 2.4105899 -1070.0498 -1067.6392 + 3200 0.32 0.076457259 3378.11 69.450128 -2.4483292 2.2353063 -1069.8745 -1067.6392 + 3250 0.325 0.076457289 3463.7734 64.542714 -2.4729224 2.0773573 -1069.7166 -1067.6392 + 3300 0.33 0.076457318 3637.4971 61.346221 -2.500303 1.9744757 -1069.6137 -1067.6392 + 3350 0.335 0.076457361 3833.5389 60.346704 -2.5252732 1.9423055 -1069.5815 -1067.6392 + 3400 0.34 0.076457387 3965.2081 61.464125 -2.5426842 1.9782706 -1069.6175 -1067.6392 + 3450 0.345 0.076457375 3976.7956 64.41797 -2.5565409 2.0733424 -1069.7126 -1067.6392 + 3500 0.35 0.076457371 3862.8334 68.714547 -2.5743062 2.211631 -1069.8509 -1067.6392 + 3550 0.355 0.076457375 3697.284 73.534942 -2.5974674 2.3667792 -1070.006 -1067.6392 + 3600 0.36 0.076457362 3575.9012 77.902682 -2.6209385 2.5073583 -1070.1466 -1067.6392 + 3650 0.365 0.076457345 3550.0667 81.043684 -2.6394846 2.6084539 -1070.2477 -1067.6392 + 3700 0.37 0.076457309 3535.0981 82.730976 -2.65464 2.6627607 -1070.302 -1067.6392 + 3750 0.375 0.076457309 3444.1795 83.322515 -2.6736085 2.6817998 -1070.321 -1067.6392 + 3800 0.38 0.076457348 3323.7191 83.436143 -2.7008525 2.685457 -1070.3247 -1067.6392 + 3850 0.385 0.076457368 3252.5404 83.62535 -2.7353937 2.6915468 -1070.3308 -1067.6392 + 3900 0.39 0.076457344 3219.5349 84.088597 -2.7722909 2.7064568 -1070.3457 -1067.6392 + 3950 0.395 0.076457316 3210.4164 84.636475 -2.8060651 2.7240906 -1070.3633 -1067.6392 + 4000 0.4 0.076457319 3223.9708 85.042888 -2.8352998 2.7371713 -1070.3764 -1067.6392 + 4050 0.405 0.076457335 3232.7108 85.266853 -2.8607963 2.7443798 -1070.3836 -1067.6392 + 4100 0.41 0.076457314 3206.1428 85.444074 -2.8837721 2.7500838 -1070.3893 -1067.6392 + 4150 0.415 0.076457325 3146.4589 85.771643 -2.9074131 2.7606269 -1070.3999 -1067.6392 + 4200 0.42 0.076457395 3092.6283 86.24875 -2.9341331 2.775983 -1070.4152 -1067.6392 + 4250 0.425 0.07645742 3103.0319 86.563557 -2.9622203 2.7861153 -1070.4253 -1067.6392 + 4300 0.43 0.076457425 3116.9053 86.320099 -2.9880208 2.7782794 -1070.4175 -1067.6392 + 4350 0.435 0.076457427 3061.2259 85.306966 -3.0085539 2.7456709 -1070.3849 -1067.6392 + 4400 0.44 0.076457432 3033.5229 83.703441 -3.0243431 2.6940602 -1070.3333 -1067.6392 + 4450 0.445 0.076457411 3042.5167 82.058057 -3.0397518 2.6411023 -1070.2803 -1067.6392 + 4500 0.45 0.076457387 2994.5161 81.002427 -3.0597817 2.607126 -1070.2464 -1067.6392 + 4550 0.455 0.076457413 2868.381 80.936403 -3.086593 2.605001 -1070.2442 -1067.6392 + 4600 0.46 0.076457454 2716.5128 81.904984 -3.1192161 2.6361755 -1070.2754 -1067.6392 + 4650 0.465 0.076457402 2628.691 83.537981 -3.1529675 2.6887347 -1070.328 -1067.6392 + 4700 0.47 0.076457327 2609.7253 85.196185 -3.1819342 2.7421053 -1070.3813 -1067.6392 + 4750 0.475 0.076457328 2604.4797 86.479192 -3.2088497 2.7833999 -1070.4226 -1067.6392 + 4800 0.48 0.076457385 2610.7583 87.294321 -3.242028 2.8096355 -1070.4489 -1067.6392 + 4850 0.485 0.076457398 2649.7853 87.477655 -3.2810534 2.8155362 -1070.4548 -1067.6392 + 4900 0.49 0.076457371 2678.8351 86.820207 -3.3154833 2.7943757 -1070.4336 -1067.6392 + 4950 0.495 0.076457344 2687.9239 85.543066 -3.3381845 2.75327 -1070.3925 -1067.6392 + 5000 0.5 0.076457351 2720.6587 84.363474 -3.3508261 2.7153039 -1070.3545 -1067.6392 + 5050 0.505 0.076457408 2755.8291 84.030245 -3.3582878 2.7045787 -1070.3438 -1067.6392 + 5100 0.51 0.076457454 2753.2313 84.932962 -3.3648805 2.7336333 -1070.3729 -1067.6392 + 5150 0.515 0.076457453 2706.7195 86.928397 -3.3711152 2.7978579 -1070.4371 -1067.6392 + 5200 0.52 0.076457474 2678.1769 89.583728 -3.3768576 2.8833218 -1070.5226 -1067.6392 + 5250 0.525 0.076457519 2699.6153 92.51484 -3.3860255 2.9776619 -1070.6169 -1067.6392 + 5300 0.53 0.076457531 2703.4089 95.385751 -3.4040809 3.0700644 -1070.7093 -1067.6392 + 5350 0.535 0.076457501 2642.6927 97.779641 -3.4335521 3.1471136 -1070.7863 -1067.6392 + 5400 0.54 0.076457502 2536.3506 99.093181 -3.4686217 3.1893909 -1070.8286 -1067.6392 + 5450 0.545 0.076457526 2496.939 98.768918 -3.4975315 3.1789543 -1070.8182 -1067.6392 + 5500 0.55 0.07645752 2590.2958 96.816602 -3.5146308 3.1161175 -1070.7554 -1067.6392 + 5550 0.555 0.07645751 2736.4682 93.934193 -3.5252273 3.0233449 -1070.6626 -1067.6392 + 5600 0.56 0.076457511 2852.5255 91.119522 -3.5395987 2.9327525 -1070.572 -1067.6392 + 5650 0.565 0.07645752 2911.6957 89.034641 -3.5601373 2.865649 -1070.5049 -1067.6392 + 5700 0.57 0.076457504 2872.1072 87.822315 -3.578603 2.8266294 -1070.4659 -1067.6392 + 5750 0.575 0.076457514 2742.4368 87.594069 -3.5903293 2.8192831 -1070.4585 -1067.6392 + 5800 0.58 0.076457541 2620.8057 88.56771 -3.5997032 2.8506205 -1070.4899 -1067.6392 + 5850 0.585 0.076457558 2577.6654 90.685493 -3.6121768 2.918783 -1070.558 -1067.6392 + 5900 0.59 0.076457556 2603.2357 93.377822 -3.6265072 3.0054377 -1070.6447 -1067.6392 + 5950 0.595 0.076457545 2622.1452 95.785548 -3.6355062 3.0829322 -1070.7222 -1067.6392 + 6000 0.6 0.076457592 2584.5081 97.370124 -3.6379266 3.133933 -1070.7732 -1067.6392 + 6050 0.605 0.076457628 2511.2974 98.197855 -3.6436111 3.1605742 -1070.7998 -1067.6392 + 6100 0.61 0.076457605 2460.1929 98.607339 -3.6641341 3.1737537 -1070.813 -1067.6392 + 6150 0.615 0.076457552 2425.1563 98.77721 -3.7023511 3.1792212 -1070.8185 -1067.6392 + 6200 0.62 0.076457529 2378.8547 98.671042 -3.7529171 3.1758041 -1070.815 -1067.6392 + 6250 0.625 0.076457536 2373.6127 98.176109 -3.8075656 3.1598743 -1070.7991 -1067.6392 + 6300 0.63 0.076457584 2457.9835 97.287991 -3.8600042 3.1312895 -1070.7705 -1067.6392 + 6350 0.635 0.076457603 2571.5799 96.270875 -3.9092353 3.0985528 -1070.7378 -1067.6392 + 6400 0.64 0.076457558 2610.0081 95.435983 -3.9541076 3.0716812 -1070.7109 -1067.6392 + 6450 0.645 0.076457543 2587.7565 94.898723 -3.9898259 3.054389 -1070.6936 -1067.6392 + 6500 0.65 0.076457571 2592.6987 94.73176 -4.0156724 3.0490152 -1070.6882 -1067.6392 + 6550 0.655 0.076457601 2601.6462 95.026393 -4.0381259 3.0584982 -1070.6977 -1067.6392 + 6600 0.66 0.076457634 2566.7039 95.637128 -4.0616088 3.0781552 -1070.7174 -1067.6392 + 6650 0.665 0.076457648 2514.9262 96.272229 -4.0866885 3.0985964 -1070.7378 -1067.6392 + 6700 0.67 0.076457667 2469.8505 96.811573 -4.1148394 3.1159556 -1070.7552 -1067.6392 + 6750 0.675 0.076457679 2455.7259 97.232643 -4.1435989 3.1295081 -1070.7687 -1067.6392 + 6800 0.68 0.076457673 2468.7089 97.598131 -4.1658056 3.1412716 -1070.7805 -1067.6392 + 6850 0.685 0.076457641 2449.9304 98.364281 -4.1815157 3.1659307 -1070.8052 -1067.6392 + 6900 0.69 0.076457591 2353.8798 100.13599 -4.1974942 3.2229545 -1070.8622 -1067.6392 + 6950 0.695 0.076457574 2209.8271 103.01376 -4.2144962 3.3155778 -1070.9548 -1067.6392 + 7000 0.7 0.07645757 2076.4986 106.68059 -4.2313568 3.4335975 -1071.0728 -1067.6392 + 7050 0.705 0.076457532 2018.5403 110.71749 -4.2520079 3.5635282 -1071.2028 -1067.6392 + 7100 0.71 0.076457492 2065.9887 114.55487 -4.281219 3.6870374 -1071.3263 -1067.6392 + 7150 0.715 0.07645748 2155.5459 117.3116 -4.3158586 3.7757647 -1071.415 -1067.6392 + 7200 0.72 0.076457494 2209.3453 118.11442 -4.3476298 3.8016043 -1071.4408 -1067.6392 + 7250 0.725 0.076457549 2217.3813 116.73458 -4.3751538 3.757193 -1071.3964 -1067.6392 + 7300 0.73 0.076457599 2194.6993 113.55369 -4.4007611 3.6548138 -1071.294 -1067.6392 + 7350 0.735 0.07645757 2162.8509 109.25439 -4.4239789 3.5164373 -1071.1557 -1067.6392 + 7400 0.74 0.076457504 2179.0418 104.7754 -4.4453985 3.3722777 -1071.0115 -1067.6392 + 7450 0.745 0.076457518 2259.2856 101.07787 -4.4663409 3.2532696 -1070.8925 -1067.6392 + 7500 0.75 0.076457572 2343.5535 98.882501 -4.4873841 3.1826101 -1070.8218 -1067.6392 + 7550 0.755 0.076457589 2398.2908 98.45877 -4.5060042 3.1689719 -1070.8082 -1067.6392 + 7600 0.76 0.076457555 2420.4319 99.704417 -4.5200225 3.209064 -1070.8483 -1067.6392 + 7650 0.765 0.076457552 2411.7072 102.42806 -4.5350873 3.2967265 -1070.936 -1067.6392 + 7700 0.77 0.076457571 2387.7867 106.24775 -4.5597359 3.4196662 -1071.0589 -1067.6392 + 7750 0.775 0.076457574 2378.614 110.33425 -4.5954327 3.5511934 -1071.1904 -1067.6392 + 7800 0.78 0.076457546 2386.339 113.47426 -4.6333762 3.6522573 -1071.2915 -1067.6392 + 7850 0.785 0.076457584 2373.6185 114.65304 -4.6634531 3.6901971 -1071.3294 -1067.6392 + 7900 0.79 0.076457607 2346.7767 113.53184 -4.6813286 3.6541104 -1071.2933 -1067.6392 + 7950 0.795 0.076457576 2325.1204 110.53074 -4.6884073 3.5575175 -1071.1968 -1067.6392 + 8000 0.8 0.076457577 2299.9447 106.81524 -4.6940716 3.4379313 -1071.0772 -1067.6392 + 8050 0.805 0.076457592 2281.6434 103.78514 -4.7080773 3.3404052 -1070.9796 -1067.6392 + 8100 0.81 0.076457595 2279.2037 102.50084 -4.7334489 3.2990691 -1070.9383 -1067.6392 + 8150 0.815 0.076457635 2249.7793 103.47522 -4.7690042 3.3304303 -1070.9697 -1067.6392 + 8200 0.82 0.076457642 2189.9745 106.45522 -4.8073957 3.426344 -1071.0656 -1067.6392 + 8250 0.825 0.076457606 2149.0282 110.6545 -4.8397042 3.5615011 -1071.2007 -1067.6392 + 8300 0.83 0.076457542 2135.0181 115.25463 -4.8644908 3.7095598 -1071.3488 -1067.6392 + 8350 0.835 0.076457496 2133.8536 119.41482 -4.8843171 3.8434585 -1071.4827 -1067.6392 + 8400 0.84 0.076457518 2133.1467 122.18695 -4.8996144 3.932682 -1071.5719 -1067.6392 + 8450 0.845 0.076457578 2134.2861 123.01595 -4.9155444 3.9593637 -1071.5986 -1067.6392 + 8500 0.85 0.076457574 2141.613 121.9466 -4.9391276 3.9249459 -1071.5642 -1067.6392 + 8550 0.855 0.076457587 2138.9082 119.39807 -4.9693983 3.8429195 -1071.4822 -1067.6392 + 8600 0.86 0.076457616 2068.0673 116.09276 -5.000552 3.7365357 -1071.3758 -1067.6392 + 8650 0.865 0.076457587 1952.0961 112.98671 -5.0303107 3.6365649 -1071.2758 -1067.6392 + 8700 0.87 0.076457563 1866.7421 110.99219 -5.0605853 3.5723697 -1071.2116 -1067.6392 + 8750 0.875 0.07645759 1830.3031 110.63824 -5.0918767 3.5609778 -1071.2002 -1067.6392 + 8800 0.88 0.076457593 1839.3749 111.91657 -5.1197801 3.6021218 -1071.2414 -1067.6392 + 8850 0.885 0.07645757 1836.93 114.56856 -5.1423719 3.687478 -1071.3267 -1067.6392 + 8900 0.89 0.076457579 1795.2859 118.25516 -5.1643112 3.8061342 -1071.4454 -1067.6392 + 8950 0.895 0.076457614 1766.8498 122.31379 -5.1895303 3.9367641 -1071.576 -1067.6392 + 9000 0.9 0.076457668 1777.4862 125.80875 -5.2189311 4.0492522 -1071.6885 -1067.6392 + 9050 0.905 0.076457701 1778.9988 127.84202 -5.250791 4.1146947 -1071.7539 -1067.6392 + 9100 0.91 0.076457703 1756.3985 127.83199 -5.2809641 4.1143719 -1071.7536 -1067.6392 + 9150 0.915 0.076457636 1750.7698 125.64781 -5.3037451 4.0440723 -1071.6833 -1067.6392 + 9200 0.92 0.076457553 1795.5785 121.64446 -5.3145968 3.9152214 -1071.5545 -1067.6392 + 9250 0.925 0.076457546 1884.6389 116.77819 -5.317446 3.7585968 -1071.3978 -1067.6392 + 9300 0.93 0.076457575 1961.0059 112.44866 -5.3248028 3.6192473 -1071.2585 -1067.6392 + 9350 0.935 0.076457586 1988.8357 109.85485 -5.3452949 3.5357635 -1071.175 -1067.6392 + 9400 0.94 0.076457583 1972.3793 109.57616 -5.3783713 3.5267939 -1071.166 -1067.6392 + 9450 0.945 0.076457572 1948.7911 111.48324 -5.4161951 3.5881745 -1071.2274 -1067.6392 + 9500 0.95 0.076457563 1922.5709 114.9318 -5.4492314 3.6991693 -1071.3384 -1067.6392 + 9550 0.955 0.076457545 1887.2071 119.14996 -5.473804 3.8349339 -1071.4742 -1067.6392 + 9600 0.96 0.076457569 1854.7259 123.36854 -5.4904613 3.9707121 -1071.6099 -1067.6392 + 9650 0.965 0.076457622 1827.4781 126.8424 -5.4992845 4.0825212 -1071.7218 -1067.6392 + 9700 0.97 0.076457643 1811.2431 129.09763 -5.503264 4.1551074 -1071.7943 -1067.6392 + 9750 0.975 0.076457625 1802.4995 130.06103 -5.5091498 4.1861153 -1071.8253 -1067.6392 + 9800 0.98 0.076457569 1802.206 129.93881 -5.5226464 4.1821816 -1071.8214 -1067.6392 + 9850 0.985 0.076457512 1815.5438 128.98667 -5.542848 4.1515359 -1071.7908 -1067.6392 + 9900 0.99 0.076457501 1820.5473 127.45475 -5.5621249 4.1022301 -1071.7415 -1067.6392 + 9950 0.995 0.076457538 1816.8204 125.90549 -5.5773991 4.0523658 -1071.6916 -1067.6392 + 10000 1 0.076457537 1784.5276 125.28779 -5.5974427 4.0324847 -1071.6717 -1067.6392 + 10050 1.005 0.076457529 1720.376 126.28509 -5.6322599 4.0645836 -1071.7038 -1067.6392 + 10100 1.01 0.076457551 1689.9106 128.66253 -5.6814138 4.1411033 -1071.7803 -1067.6392 + 10150 1.015 0.076457539 1713.0249 131.40846 -5.7369528 4.2294833 -1071.8687 -1067.6392 + 10200 1.02 0.076457489 1743.8221 133.3229 -5.789472 4.2911009 -1071.9303 -1067.6392 + 10250 1.025 0.076457427 1770.5405 133.47365 -5.8284105 4.2959531 -1071.9352 -1067.6392 + 10300 1.03 0.076457402 1784.3689 131.77123 -5.852419 4.2411593 -1071.8804 -1067.6392 + 10350 1.035 0.076457432 1759.9766 128.82223 -5.8669372 4.1462436 -1071.7855 -1067.6392 + 10400 1.04 0.076457457 1756.0701 125.3228 -5.8723914 4.0336114 -1071.6728 -1067.6392 + 10450 1.045 0.076457431 1796.2676 122.12283 -5.8711897 3.930618 -1071.5698 -1067.6392 + 10500 1.05 0.076457363 1832.5849 120.24945 -5.8728862 3.870322 -1071.5096 -1067.6392 + 10550 1.055 0.076457315 1825.9591 120.26647 -5.8808515 3.8708698 -1071.5101 -1067.6392 + 10600 1.06 0.076457322 1783.5912 121.98369 -5.8879416 3.9261399 -1071.5654 -1067.6392 + 10650 1.065 0.07645737 1765.4445 124.88567 -5.8906657 4.0195423 -1071.6588 -1067.6392 + 10700 1.07 0.076457449 1789.2376 128.29349 -5.8943984 4.1292256 -1071.7685 -1067.6392 + 10750 1.075 0.076457481 1818.6141 131.12076 -5.9023895 4.2202233 -1071.8595 -1067.6392 + 10800 1.08 0.076457417 1821.6989 132.13157 -5.9106221 4.2527572 -1071.892 -1067.6392 + 10850 1.085 0.076457331 1835.7675 130.83646 -5.9174483 4.2110729 -1071.8503 -1067.6392 + 10900 1.09 0.076457313 1863.9325 127.86582 -5.9253528 4.1154608 -1071.7547 -1067.6392 + 10950 1.095 0.076457328 1879.7524 124.69175 -5.9376375 4.0133007 -1071.6525 -1067.6392 + 11000 1.1 0.07645735 1877.2445 122.96147 -5.9563654 3.9576103 -1071.5968 -1067.6392 + 11050 1.105 0.076457334 1853.502 123.73028 -5.9816201 3.9823552 -1071.6216 -1067.6392 + 11100 1.11 0.076457299 1840.4 127.02072 -6.0118687 4.0882605 -1071.7275 -1067.6392 + 11150 1.115 0.076457349 1868.0417 131.88474 -6.0432323 4.2448126 -1071.884 -1067.6392 + 11200 1.12 0.076457425 1906.0826 137.04774 -6.0742843 4.4109879 -1072.0502 -1067.6392 + 11250 1.125 0.076457409 1916.8851 141.44887 -6.1055084 4.5526417 -1072.1919 -1067.6392 + 11300 1.13 0.076457315 1929.063 144.55599 -6.1379843 4.6526467 -1072.2919 -1067.6392 + 11350 1.135 0.07645728 1963.9888 146.27645 -6.1715945 4.7080209 -1072.3473 -1067.6392 + 11400 1.14 0.076457317 2003.9719 146.52242 -6.201081 4.7159377 -1072.3552 -1067.6392 + 11450 1.145 0.076457337 2032.7751 145.14866 -6.2190123 4.6717222 -1072.311 -1067.6392 + 11500 1.15 0.076457346 2007.3165 142.48643 -6.228223 4.5860364 -1072.2253 -1067.6392 + 11550 1.155 0.076457364 1930.307 139.42166 -6.2424032 4.4873945 -1072.1266 -1067.6392 + 11600 1.16 0.076457384 1815.1751 136.55133 -6.2668555 4.3950107 -1072.0342 -1067.6392 + 11650 1.165 0.076457374 1692.3408 134.02582 -6.2982889 4.3137251 -1071.953 -1067.6392 + 11700 1.17 0.076457362 1632.1328 131.95661 -6.333283 4.2471259 -1071.8864 -1067.6392 + 11750 1.175 0.07645735 1668.5268 130.40398 -6.3655085 4.1971534 -1071.8364 -1067.6392 + 11800 1.18 0.076457303 1739.9788 129.31098 -6.3892439 4.1619742 -1071.8012 -1067.6392 + 11850 1.185 0.076457253 1807.7337 128.65584 -6.4083517 4.1408881 -1071.7801 -1067.6392 + 11900 1.19 0.0764573 1826.428 128.39557 -6.4305339 4.1325111 -1071.7717 -1067.6392 + 11950 1.195 0.076457354 1740.376 128.35778 -6.456201 4.1312949 -1071.7705 -1067.6392 + 12000 1.2 0.076457321 1628.3377 128.64127 -6.4864265 4.1404191 -1071.7797 -1067.6392 + 12050 1.205 0.076457228 1610.9113 129.62765 -6.5236327 4.1721667 -1071.8114 -1067.6392 + 12100 1.21 0.07645719 1647.6711 131.56179 -6.5624185 4.2344183 -1071.8736 -1067.6392 + 12150 1.215 0.076457244 1667.2405 134.45387 -6.593096 4.327502 -1071.9667 -1067.6392 + 12200 1.22 0.076457281 1650.0369 138.29884 -6.6148053 4.4512554 -1072.0905 -1067.6392 + 12250 1.225 0.076457269 1610.0214 142.96914 -6.6359085 4.6015728 -1072.2408 -1067.6392 + 12300 1.23 0.076457261 1594.6496 147.74828 -6.6580315 4.755393 -1072.3946 -1067.6392 + 12350 1.235 0.076457238 1609.8485 151.54432 -6.6730075 4.8775714 -1072.5168 -1067.6392 + 12400 1.24 0.076457201 1649.4384 153.78009 -6.6795567 4.9495317 -1072.5888 -1067.6392 + 12450 1.245 0.076457189 1676.2248 154.4468 -6.6837801 4.9709901 -1072.6102 -1067.6392 + 12500 1.25 0.076457239 1670.814 153.58107 -6.6881901 4.9431258 -1072.5824 -1067.6392 + 12550 1.255 0.076457285 1649.8854 151.2045 -6.6908201 4.8666342 -1072.5059 -1067.6392 + 12600 1.26 0.076457284 1650.7306 147.66332 -6.6919133 4.7526585 -1072.3919 -1067.6392 + 12650 1.265 0.076457189 1716.8308 143.58784 -6.6915867 4.6214861 -1072.2607 -1067.6392 + 12700 1.27 0.076457085 1831.8331 139.80608 -6.6912135 4.4997672 -1072.139 -1067.6392 + 12750 1.275 0.076457143 1914.1068 137.09279 -6.6943577 4.4124378 -1072.0517 -1067.6392 + 12800 1.28 0.076457209 1952.4216 135.78967 -6.7027456 4.370496 -1072.0097 -1067.6392 + 12850 1.285 0.076457218 1975.0105 135.8441 -6.71489 4.3722479 -1072.0115 -1067.6392 + 12900 1.29 0.076457295 1973.6709 137.16928 -6.7284709 4.4148997 -1072.0541 -1067.6392 + 12950 1.295 0.076457414 1949.6975 139.70897 -6.7419581 4.4966417 -1072.1359 -1067.6392 + 13000 1.3 0.076457467 1910.5263 143.0515 -6.7515077 4.6042234 -1072.2435 -1067.6392 + 13050 1.305 0.076457461 1863.8288 146.61488 -6.7594325 4.7189138 -1072.3581 -1067.6392 + 13100 1.31 0.07645739 1808.6316 149.91966 -6.7746805 4.8252807 -1072.4645 -1067.6392 + 13150 1.315 0.07645729 1782.3809 152.39881 -6.7984035 4.9050739 -1072.5443 -1067.6392 + 13200 1.32 0.076457252 1781.5232 153.48161 -6.8240019 4.9399248 -1072.5792 -1067.6392 + 13250 1.325 0.07645725 1763.5272 152.93985 -6.8501794 4.9224879 -1072.5617 -1067.6392 + 13300 1.33 0.076457252 1710.4946 150.83438 -6.8814293 4.8547215 -1072.494 -1067.6392 + 13350 1.335 0.076457258 1644.7486 147.30722 -6.9178941 4.7411971 -1072.3804 -1067.6392 + 13400 1.34 0.076457331 1605.6165 142.74866 -6.9539225 4.5944763 -1072.2337 -1067.6392 + 13450 1.345 0.076457403 1581.6983 137.98535 -6.9831256 4.4411657 -1072.0804 -1067.6392 + 13500 1.35 0.076457367 1564.3505 134.11939 -7.0019808 4.3167366 -1071.956 -1067.6392 + 13550 1.355 0.076457301 1574.5107 132.21611 -7.0146772 4.2554781 -1071.8947 -1067.6392 + 13600 1.36 0.076457257 1611.9755 132.80504 -7.0296151 4.2744333 -1071.9137 -1067.6392 + 13650 1.365 0.076457201 1640.7113 135.56674 -7.0513962 4.3633208 -1072.0026 -1067.6392 + 13700 1.37 0.076457189 1654.0361 139.6012 -7.0805562 4.4931729 -1072.1324 -1067.6392 + 13750 1.375 0.076457229 1678.441 143.86647 -7.1124767 4.6304539 -1072.2697 -1067.6392 + 13800 1.38 0.076457284 1686.1364 147.62332 -7.1379787 4.7513712 -1072.3906 -1067.6392 + 13850 1.385 0.076457274 1656.3348 150.77783 -7.1529695 4.8529016 -1072.4921 -1067.6392 + 13900 1.39 0.076457235 1597.0959 153.61417 -7.1618005 4.9441914 -1072.5834 -1067.6392 + 13950 1.395 0.076457252 1565.4065 156.26062 -7.170134 5.0293694 -1072.6686 -1067.6392 + 14000 1.4 0.076457261 1576.0797 158.74996 -7.1843908 5.1094907 -1072.7487 -1067.6392 + 14050 1.405 0.076457231 1597.0006 160.90398 -7.2025683 5.1788195 -1072.8181 -1067.6392 + 14100 1.41 0.076457223 1613.5592 162.39878 -7.2156174 5.2269309 -1072.8662 -1067.6392 + 14150 1.415 0.076457286 1629.6758 163.17046 -7.2245128 5.251768 -1072.891 -1067.6392 + 14200 1.42 0.076457403 1653.3044 163.16418 -7.2361077 5.2515657 -1072.8908 -1067.6392 + 14250 1.425 0.076457462 1662.8527 162.13868 -7.2521095 5.2185594 -1072.8578 -1067.6392 + 14300 1.43 0.076457412 1630.9111 160.1566 -7.2734168 5.1547645 -1072.794 -1067.6392 + 14350 1.435 0.076457382 1580.8899 157.80029 -7.3028008 5.0789247 -1072.7182 -1067.6392 + 14400 1.44 0.076457398 1564.0104 155.5646 -7.336948 5.0069673 -1072.6462 -1067.6392 + 14450 1.445 0.076457402 1558.3075 153.27872 -7.3628999 4.9333947 -1072.5726 -1067.6392 + 14500 1.45 0.076457377 1530.3969 150.48123 -7.3702551 4.8433552 -1072.4826 -1067.6392 + 14550 1.455 0.076457353 1511.7287 147.14899 -7.362315 4.7361044 -1072.3753 -1067.6392 + 14600 1.46 0.076457341 1535.6604 143.91325 -7.3525622 4.6319595 -1072.2712 -1067.6392 + 14650 1.465 0.076457346 1579.1663 141.56448 -7.3510104 4.5563627 -1072.1956 -1067.6392 + 14700 1.47 0.076457397 1612.3535 140.59549 -7.360296 4.5251749 -1072.1644 -1067.6392 + 14750 1.475 0.076457471 1642.2272 141.10169 -7.3761707 4.5414673 -1072.1807 -1067.6392 + 14800 1.48 0.076457425 1655.8317 143.06873 -7.3922813 4.604778 -1072.244 -1067.6392 + 14850 1.485 0.076457358 1635.8169 146.57617 -7.4084124 4.7176678 -1072.3569 -1067.6392 + 14900 1.49 0.07645736 1620.3521 151.43759 -7.4283243 4.8741364 -1072.5134 -1067.6392 + 14950 1.495 0.076457392 1613.6163 156.81465 -7.451549 5.0472011 -1072.6864 -1067.6392 + 15000 1.5 0.076457432 1641.9185 161.49441 -7.4752177 5.1978229 -1072.8371 -1067.6392 + 15050 1.505 0.076457454 1694.671 164.44492 -7.4987743 5.2927872 -1072.932 -1067.6392 + 15100 1.51 0.076457415 1736.9184 165.1692 -7.5221765 5.3160988 -1072.9553 -1067.6392 + 15150 1.515 0.076457338 1752.072 163.78444 -7.5411028 5.2715294 -1072.9108 -1067.6392 + 15200 1.52 0.076457306 1752.6181 161.09848 -7.553989 5.1850797 -1072.8243 -1067.6392 + 15250 1.525 0.076457359 1736.1908 158.22125 -7.5667375 5.0924736 -1072.7317 -1067.6392 + 15300 1.53 0.076457401 1730.7557 155.8948 -7.5868022 5.0175953 -1072.6568 -1067.6392 + 15350 1.535 0.076457406 1749.4877 154.29785 -7.6163309 4.9661959 -1072.6054 -1067.6392 + 15400 1.54 0.076457413 1767.8554 153.256 -7.646484 4.9326634 -1072.5719 -1067.6392 + 15450 1.545 0.076457408 1774.3702 152.86159 -7.6690389 4.9199689 -1072.5592 -1067.6392 + 15500 1.55 0.076457491 1770.2174 153.59646 -7.6870142 4.9436212 -1072.5829 -1067.6392 + 15550 1.555 0.076457608 1767.1771 155.78946 -7.7079221 5.0142046 -1072.6534 -1067.6392 + 15600 1.56 0.076457561 1738.6373 159.28425 -7.7334961 5.1266873 -1072.7659 -1067.6392 + 15650 1.565 0.076457428 1700.8184 163.47112 -7.7586601 5.2614448 -1072.9007 -1067.6392 + 15700 1.57 0.076457375 1688.1496 167.31488 -7.7745852 5.3851594 -1073.0244 -1067.6392 + 15750 1.575 0.076457393 1700.6524 169.85179 -7.7793279 5.4668117 -1073.106 -1067.6392 + 15800 1.58 0.076457312 1732.7457 170.75736 -7.7843367 5.4959582 -1073.1352 -1067.6392 + 15850 1.585 0.076457273 1770.0139 169.97991 -7.7986828 5.4709353 -1073.1102 -1067.6392 + 15900 1.59 0.076457392 1786.2936 167.32785 -7.8165236 5.3855768 -1073.0248 -1067.6392 + 15950 1.595 0.076457536 1758.2055 162.95664 -7.8294313 5.244886 -1072.8841 -1067.6392 + 16000 1.6 0.076457587 1701.2308 157.82826 -7.8390235 5.079825 -1072.7191 -1067.6392 + 16050 1.605 0.076457541 1658.3347 153.26331 -7.8499456 4.9328986 -1072.5721 -1067.6392 + 16100 1.61 0.076457398 1664.9861 150.22106 -7.8641896 4.8349815 -1072.4742 -1067.6392 + 16150 1.615 0.076457358 1704.9163 148.78635 -7.8778806 4.7888042 -1072.428 -1067.6392 + 16200 1.62 0.076457411 1717.877 148.52697 -7.8854701 4.7804557 -1072.4197 -1067.6392 + 16250 1.625 0.076457389 1676.6721 149.39648 -7.8911926 4.8084417 -1072.4477 -1067.6392 + 16300 1.63 0.076457343 1606.1432 151.67229 -7.9043128 4.8816903 -1072.5209 -1067.6392 + 16350 1.635 0.076457336 1579.1024 155.15678 -7.9251862 4.9938414 -1072.6331 -1067.6392 + 16400 1.64 0.076457384 1586.2825 159.18596 -7.949204 5.1235238 -1072.7628 -1067.6392 + 16450 1.645 0.076457396 1574.4855 163.18237 -7.976768 5.2521512 -1072.8914 -1067.6392 + 16500 1.65 0.07645733 1576.1962 166.71848 -8.0077333 5.3659636 -1073.0052 -1067.6392 + 16550 1.655 0.07645727 1597.1073 169.59771 -8.038467 5.4586339 -1073.0979 -1067.6392 + 16600 1.66 0.076457285 1599.917 171.99866 -8.06723 5.5359104 -1073.1751 -1067.6392 + 16650 1.665 0.076457312 1567.2444 174.07518 -8.0934269 5.6027449 -1073.242 -1067.6392 + 16700 1.67 0.076457288 1538.1861 175.68138 -8.1188007 5.6544416 -1073.2937 -1067.6392 + 16750 1.675 0.07645721 1511.9049 176.53933 -8.146985 5.6820555 -1073.3213 -1067.6392 + 16800 1.68 0.076457228 1468.497 176.55444 -8.1808459 5.6825417 -1073.3218 -1067.6392 + 16850 1.685 0.076457264 1431.494 175.8924 -8.2214633 5.6612334 -1073.3005 -1067.6392 + 16900 1.69 0.076457269 1415.3928 174.78298 -8.266249 5.6255257 -1073.2648 -1067.6392 + 16950 1.695 0.076457225 1452.9617 173.33174 -8.3082586 5.5788167 -1073.218 -1067.6392 + 17000 1.7 0.076457179 1470.3678 171.67883 -8.3449394 5.5256165 -1073.1648 -1067.6392 + 17050 1.705 0.076457163 1443.7364 169.99399 -8.3798127 5.4713883 -1073.1106 -1067.6392 + 17100 1.71 0.07645721 1420.9961 168.25292 -8.4131544 5.4153509 -1073.0546 -1067.6392 + 17150 1.715 0.076457295 1438.9266 166.52365 -8.4428287 5.3596929 -1072.9989 -1067.6392 + 17200 1.72 0.076457288 1491.1593 165.33242 -8.4714901 5.3213522 -1072.9606 -1067.6392 + 17250 1.725 0.076457246 1522.9686 165.31615 -8.5004148 5.3208287 -1072.9601 -1067.6392 + 17300 1.73 0.076457324 1507.7851 166.83662 -8.5254522 5.369766 -1073.009 -1067.6392 + 17350 1.735 0.076457348 1472.7382 169.83517 -8.5448034 5.4662768 -1073.1055 -1067.6392 + 17400 1.74 0.076457306 1446.0079 173.344 -8.5542116 5.5792111 -1073.2184 -1067.6392 + 17450 1.745 0.07645735 1428.36 175.90072 -8.5502511 5.661501 -1073.3007 -1067.6392 + 17500 1.75 0.076457419 1424.108 176.56743 -8.5390662 5.6829599 -1073.3222 -1067.6392 + 17550 1.755 0.076457329 1441.9785 175.33547 -8.5352293 5.6433082 -1073.2825 -1067.6392 + 17600 1.76 0.076457184 1458.608 172.71768 -8.5475316 5.5590527 -1073.1983 -1067.6392 + 17650 1.765 0.076457192 1468.4405 169.36794 -8.5725313 5.4512387 -1073.0905 -1067.6392 + 17700 1.77 0.076457276 1483.3347 165.84641 -8.6000497 5.3378954 -1072.9771 -1067.6392 + 17750 1.775 0.076457328 1488.5201 162.8195 -8.6287352 5.2404721 -1072.8797 -1067.6392 + 17800 1.78 0.07645732 1470.5993 161.04107 -8.6640671 5.1832319 -1072.8225 -1067.6392 + 17850 1.785 0.076457278 1462.6343 161.04849 -8.7048157 5.1834707 -1072.8227 -1067.6392 + 17900 1.79 0.076457233 1453.3573 163.16996 -8.7450188 5.2517519 -1072.891 -1067.6392 + 17950 1.795 0.076457161 1447.1007 167.58872 -8.7859818 5.3939729 -1073.0332 -1067.6392 + 18000 1.8 0.076457139 1440.0053 173.87077 -8.833056 5.5961657 -1073.2354 -1067.6392 + 18050 1.805 0.076457185 1418.2881 180.47756 -8.8792523 5.8088102 -1073.448 -1067.6392 + 18100 1.81 0.076457223 1401.1744 185.61692 -8.9125448 5.9742247 -1073.6135 -1067.6392 + 18150 1.815 0.07645727 1389.0345 188.42536 -8.9312647 6.0646165 -1073.7039 -1067.6392 + 18200 1.82 0.076457264 1387.7229 189.24556 -8.9469259 6.0910152 -1073.7302 -1067.6392 + 18250 1.825 0.076457202 1402.1898 188.92804 -8.9718195 6.0807957 -1073.72 -1067.6392 + 18300 1.83 0.076457177 1390.586 188.00713 -9.0028575 6.0511554 -1073.6904 -1067.6392 + 18350 1.835 0.076457182 1352.2199 186.92382 -9.0291119 6.0162881 -1073.6555 -1067.6392 + 18400 1.84 0.076457214 1348.252 186.22966 -9.0428346 5.9939461 -1073.6332 -1067.6392 + 18450 1.845 0.076457257 1391.9407 186.3174 -9.0469158 5.9967701 -1073.636 -1067.6392 + 18500 1.85 0.07645722 1426.8552 186.92904 -9.0496753 6.0164563 -1073.6557 -1067.6392 + 18550 1.855 0.076457185 1446.4566 187.30921 -9.0572556 6.0286923 -1073.6679 -1067.6392 + 18600 1.86 0.076457223 1464.9221 186.80304 -9.0713411 6.0124008 -1073.6516 -1067.6392 + 18650 1.865 0.076457199 1471.3202 185.06559 -9.0868448 5.9564798 -1073.5957 -1067.6392 + 18700 1.87 0.07645725 1461.0629 182.41219 -9.1051202 5.871078 -1073.5103 -1067.6392 + 18750 1.875 0.076457345 1431.7789 179.46716 -9.1294581 5.7762898 -1073.4155 -1067.6392 + 18800 1.88 0.076457274 1409.3438 176.48484 -9.1499481 5.6803016 -1073.3195 -1067.6392 + 18850 1.885 0.076457201 1370.4168 173.84236 -9.1643576 5.5952513 -1073.2345 -1067.6392 + 18900 1.89 0.076457245 1307.0644 172.24292 -9.1908564 5.543772 -1073.183 -1067.6392 + 18950 1.895 0.076457257 1298.5302 171.72024 -9.2357227 5.5269491 -1073.1662 -1067.6392 + 19000 1.9 0.076457286 1335.2088 171.37187 -9.2735952 5.5157366 -1073.155 -1067.6392 + 19050 1.905 0.076457382 1347.2532 170.91617 -9.2850717 5.5010696 -1073.1403 -1067.6392 + 19100 1.91 0.076457395 1332.8305 171.59912 -9.2864975 5.5230508 -1073.1623 -1067.6392 + 19150 1.915 0.076457344 1304.8597 174.54105 -9.2959387 5.6177392 -1073.257 -1067.6392 + 19200 1.92 0.076457301 1276.1592 179.42057 -9.309653 5.7747904 -1073.414 -1067.6392 + 19250 1.925 0.076457274 1260.6559 185.20252 -9.325615 5.9608868 -1073.6001 -1067.6392 + 19300 1.93 0.076457271 1265.939 190.71739 -9.3483129 6.1383871 -1073.7776 -1067.6392 + 19350 1.935 0.076457278 1304.535 194.87898 -9.3783203 6.2723313 -1073.9116 -1067.6392 + 19400 1.94 0.07645731 1362.5576 197.21347 -9.4193269 6.3474686 -1073.9867 -1067.6392 + 19450 1.945 0.076457423 1382.7886 197.45962 -9.4694007 6.355391 -1073.9946 -1067.6392 + 19500 1.95 0.076457472 1352.303 195.21464 -9.5133315 6.2831347 -1073.9224 -1067.6392 + 19550 1.955 0.076457413 1318.6835 190.89792 -9.5445597 6.1441978 -1073.7834 -1067.6392 + 19600 1.96 0.076457386 1300.0189 186.19759 -9.5724767 5.9929138 -1073.6321 -1067.6392 + 19650 1.965 0.076457417 1281.4514 182.93348 -9.6006152 5.8878559 -1073.5271 -1067.6392 + 19700 1.97 0.07645744 1265.2354 182.28868 -9.628322 5.8671025 -1073.5063 -1067.6392 + 19750 1.975 0.076457421 1267.1291 184.68067 -9.6640365 5.9440908 -1073.5833 -1067.6392 + 19800 1.98 0.076457374 1293.1065 189.3714 -9.7123982 6.0950654 -1073.7343 -1067.6392 + 19850 1.985 0.076457367 1329.191 194.76572 -9.7631294 6.268686 -1073.9079 -1067.6392 + 19900 1.99 0.076457418 1354.9407 199.74508 -9.810328 6.4289505 -1074.0682 -1067.6392 + 19950 1.995 0.076457493 1364.3708 203.86864 -9.8606606 6.5616706 -1074.2009 -1067.6392 + 20000 2 0.076457544 1370.452 206.23944 -9.9126035 6.6379764 -1074.2772 -1067.6392 + 20050 2.005 0.076457509 1383.7523 205.76789 -9.9571492 6.6227992 -1074.262 -1067.6392 + 20100 2.01 0.076457429 1414.7434 202.49809 -9.9940319 6.517558 -1074.1568 -1067.6392 + 20150 2.015 0.076457429 1440.4523 197.73428 -10.025459 6.3642312 -1074.0035 -1067.6392 + 20200 2.02 0.076457497 1438.5359 193.30554 -10.048612 6.2216888 -1073.8609 -1067.6392 + 20250 2.025 0.07645744 1414.6747 190.72151 -10.062382 6.1385198 -1073.7778 -1067.6392 + 20300 2.03 0.07645731 1378.8817 190.25946 -10.069669 6.1236485 -1073.7629 -1067.6392 + 20350 2.035 0.076457261 1346.5661 190.90571 -10.074723 6.1444483 -1073.7837 -1067.6392 + 20400 2.04 0.076457374 1317.3739 191.59018 -10.08691 6.1664785 -1073.8057 -1067.6392 + 20450 2.045 0.076457432 1298.4495 191.78045 -10.110389 6.1726027 -1073.8118 -1067.6392 + 20500 2.05 0.076457389 1307.5371 191.15865 -10.137263 6.1525895 -1073.7918 -1067.6392 + 20550 2.055 0.07645742 1349.47 189.92735 -10.166271 6.1129591 -1073.7522 -1067.6392 + 20600 2.06 0.076457466 1398.5195 188.8647 -10.202844 6.0787568 -1073.718 -1067.6392 + 20650 2.065 0.076457498 1429.8721 188.62808 -10.24022 6.0711412 -1073.7104 -1067.6392 + 20700 2.07 0.076457542 1418.3434 189.78814 -10.271874 6.1084787 -1073.7477 -1067.6392 + 20750 2.075 0.076457458 1385.6893 192.47669 -10.295734 6.1950118 -1073.8342 -1067.6392 + 20800 2.08 0.076457259 1384.4289 196.10104 -10.308523 6.3116642 -1073.9509 -1067.6392 + 20850 2.085 0.0764572 1421.2966 200.257 -10.317753 6.4454271 -1074.0847 -1067.6392 + 20900 2.09 0.076457326 1452.7855 205.19616 -10.341775 6.6043977 -1074.2436 -1067.6392 + 20950 2.095 0.076457501 1427.8013 210.86618 -10.385931 6.7868916 -1074.4261 -1067.6392 + 21000 2.1 0.076457596 1357.2483 216.14216 -10.43158 6.9567033 -1074.5959 -1067.6392 + 21050 2.105 0.07645759 1324.5353 219.6255 -10.462375 7.0688173 -1074.7081 -1067.6392 + 21100 2.11 0.076457496 1347.0889 220.73435 -10.48964 7.1045064 -1074.7437 -1067.6392 + 21150 2.115 0.076457458 1361.8801 219.46337 -10.529469 7.0635988 -1074.7028 -1067.6392 + 21200 2.12 0.076457466 1365.4715 216.13572 -10.578785 6.9564959 -1074.5957 -1067.6392 + 21250 2.125 0.076457537 1362.6717 211.57708 -10.625983 6.8097726 -1074.449 -1067.6392 + 21300 2.13 0.076457586 1340.2017 206.63829 -10.66147 6.6508137 -1074.29 -1067.6392 + 21350 2.135 0.076457554 1331.9946 201.93393 -10.679818 6.4994001 -1074.1386 -1067.6392 + 21400 2.14 0.076457547 1347.0023 198.28955 -10.68412 6.382103 -1074.0213 -1067.6392 + 21450 2.145 0.076457533 1340.6741 196.9082 -10.686481 6.3376433 -1073.9769 -1067.6392 + 21500 2.15 0.076457456 1316.0121 198.72879 -10.696049 6.3962403 -1074.0355 -1067.6392 + 21550 2.155 0.076457391 1324.8545 203.55687 -10.714867 6.551636 -1074.1909 -1067.6392 + 21600 2.16 0.076457382 1351.2014 209.51125 -10.739588 6.7432823 -1074.3825 -1067.6392 + 21650 2.165 0.076457455 1366.4862 213.95654 -10.765901 6.8863571 -1074.5256 -1067.6392 + 21700 2.17 0.076457459 1377.4225 215.23385 -10.795997 6.9274684 -1074.5667 -1067.6392 + 21750 2.175 0.076457481 1396.0304 212.90984 -10.825441 6.8526684 -1074.4919 -1067.6392 + 21800 2.18 0.076457615 1387.0649 207.72279 -10.844968 6.6857194 -1074.325 -1067.6392 + 21850 2.185 0.07645756 1347.9695 201.50492 -10.85814 6.4855922 -1074.1248 -1067.6392 + 21900 2.19 0.076457366 1323.2228 196.28581 -10.872625 6.3176113 -1073.9568 -1067.6392 + 21950 2.195 0.076457329 1315.1922 193.83068 -10.887085 6.2385908 -1073.8778 -1067.6392 + 22000 2.2 0.076457369 1307.9895 195.03955 -10.898532 6.2774994 -1073.9167 -1067.6392 + 22050 2.205 0.076457333 1302.1738 199.68283 -10.909377 6.4269467 -1074.0662 -1067.6392 + 22100 2.21 0.076457379 1305.5855 206.92378 -10.917331 6.6600025 -1074.2992 -1067.6392 + 22150 2.215 0.076457515 1304.6883 215.29251 -10.918892 6.9293567 -1074.5686 -1067.6392 + 22200 2.22 0.076457547 1296.8284 222.98568 -10.922929 7.1769673 -1074.8162 -1067.6392 + 22250 2.225 0.076457453 1286.8966 228.09069 -10.938316 7.341276 -1074.9805 -1067.6392 + 22300 2.23 0.076457432 1283.0205 228.97664 -10.961235 7.369791 -1075.009 -1067.6392 + 22350 2.235 0.076457491 1270.3982 225.44347 -10.985727 7.256073 -1074.8953 -1067.6392 + 22400 2.24 0.076457539 1249.8598 219.23739 -11.012893 7.0563256 -1074.6956 -1067.6392 + 22450 2.245 0.076457476 1240.8541 212.79326 -11.044291 6.8489162 -1074.4881 -1067.6392 + 22500 2.25 0.076457394 1216.6944 207.29518 -11.068062 6.6719563 -1074.3112 -1067.6392 + 22550 2.255 0.07645743 1199.1131 202.98585 -11.071495 6.5332571 -1074.1725 -1067.6392 + 22600 2.26 0.076457488 1212.1478 200.96232 -11.064393 6.4681283 -1074.1074 -1067.6392 + 22650 2.265 0.076457528 1237.8172 202.93395 -11.064895 6.5315867 -1074.1708 -1067.6392 + 22700 2.27 0.076457598 1271.2811 209.42782 -11.076273 6.740597 -1074.3798 -1067.6392 + 22750 2.275 0.076457625 1292.63 218.78195 -11.089805 7.0416668 -1074.6809 -1067.6392 + 22800 2.28 0.076457646 1294.2671 227.41133 -11.098416 7.31941 -1074.9586 -1067.6392 + 22850 2.285 0.07645765 1293.2803 231.3383 -11.10365 7.4458026 -1075.085 -1067.6392 + 22900 2.29 0.076457537 1276.9806 228.2557 -11.10958 7.346587 -1074.9858 -1067.6392 + 22950 2.295 0.076457429 1247.4583 218.93487 -11.118854 7.0465888 -1074.6858 -1067.6392 + 23000 2.3 0.07645749 1220.8505 206.99183 -11.13279 6.6621926 -1074.3014 -1067.6392 + 23050 2.305 0.076457684 1195.6985 196.96159 -11.149 6.3393615 -1073.9786 -1067.6392 + 23100 2.31 0.076457705 1177.6963 192.24501 -11.168942 6.1875548 -1073.8268 -1067.6392 + 23150 2.315 0.076457622 1189.909 193.63937 -11.194406 6.2324333 -1073.8717 -1067.6392 + 23200 2.32 0.076457629 1176.2126 199.45702 -11.222484 6.4196791 -1074.0589 -1067.6392 + 23250 2.325 0.076457691 1143.0276 207.378 -11.256925 6.6746219 -1074.3139 -1067.6392 + 23300 2.33 0.076457654 1149.5521 215.51136 -11.297612 6.9364003 -1074.5756 -1067.6392 + 23350 2.335 0.076457506 1175.2519 222.4968 -11.332657 7.1612322 -1074.8005 -1067.6392 + 23400 2.34 0.07645745 1206.0616 227.6206 -11.358013 7.3261457 -1074.9654 -1067.6392 + 23450 2.345 0.076457571 1244.7472 230.22754 -11.372594 7.4100522 -1075.0493 -1067.6392 + 23500 2.35 0.076457771 1284.7778 229.70862 -11.373027 7.3933501 -1075.0326 -1067.6392 + 23550 2.355 0.076457864 1311.4158 226.4096 -11.368792 7.2871688 -1074.9264 -1067.6392 + 23600 2.36 0.076457811 1306.2401 221.71694 -11.376759 7.1361318 -1074.7754 -1067.6392 + 23650 2.365 0.076457644 1286.7748 217.10502 -11.396699 6.9876935 -1074.6269 -1067.6392 + 23700 2.37 0.076457559 1285.9692 213.6234 -11.411758 6.8756348 -1074.5149 -1067.6392 + 23750 2.375 0.076457583 1315.8724 212.16671 -11.41765 6.8287501 -1074.468 -1067.6392 + 23800 2.38 0.076457631 1339.9814 212.92958 -11.42278 6.8533037 -1074.4925 -1067.6392 + 23850 2.385 0.076457734 1345.9875 214.96489 -11.430277 6.918812 -1074.558 -1067.6392 + 23900 2.39 0.076457858 1361.0323 217.03056 -11.439982 6.985297 -1074.6245 -1067.6392 + 23950 2.395 0.076457821 1349.6621 218.41589 -11.451629 7.0298849 -1074.6691 -1067.6392 + 24000 2.4 0.076457708 1314.3225 219.11487 -11.463434 7.0523821 -1074.6916 -1067.6392 + 24050 2.405 0.076457674 1317.1772 219.55885 -11.474327 7.066672 -1074.7059 -1067.6392 + 24100 2.41 0.076457767 1340.506 220.1472 -11.487319 7.0856086 -1074.7248 -1067.6392 + 24150 2.415 0.076457818 1335.5812 220.89722 -11.505688 7.1097485 -1074.749 -1067.6392 + 24200 2.42 0.076457791 1314.6836 221.34153 -11.523839 7.1240489 -1074.7633 -1067.6392 + 24250 2.425 0.0764578 1318.1131 221.06173 -11.535018 7.1150433 -1074.7543 -1067.6392 + 24300 2.43 0.076457733 1331.7464 220.35927 -11.543314 7.0924342 -1074.7317 -1067.6392 + 24350 2.435 0.076457676 1349.095 220.17248 -11.558019 7.0864221 -1074.7257 -1067.6392 + 24400 2.44 0.076457742 1356.5902 221.03788 -11.578741 7.1142759 -1074.7535 -1067.6392 + 24450 2.445 0.076457749 1335.6175 222.53673 -11.601255 7.1625175 -1074.8017 -1067.6392 + 24500 2.45 0.076457723 1333.7469 223.84826 -11.630787 7.2047301 -1074.844 -1067.6392 + 24550 2.455 0.07645779 1345.535 223.91615 -11.665528 7.2069151 -1074.8461 -1067.6392 + 24600 2.46 0.076457891 1349.7061 222.16848 -11.700181 7.1506649 -1074.7899 -1067.6392 + 24650 2.465 0.076457886 1343.7465 219.10866 -11.729696 7.0521824 -1074.6914 -1067.6392 + 24700 2.47 0.076457762 1339.7649 216.23529 -11.746431 6.9597005 -1074.5989 -1067.6392 + 24750 2.475 0.076457705 1355.939 215.51975 -11.750957 6.9366704 -1074.5759 -1067.6392 + 24800 2.48 0.076457776 1356.4139 218.30642 -11.757207 7.0263614 -1074.6656 -1067.6392 + 24850 2.485 0.076457848 1330.0312 224.05179 -11.772578 7.2112807 -1074.8505 -1067.6392 + 24900 2.49 0.076457863 1297.5013 230.5494 -11.792498 7.4204112 -1075.0596 -1067.6392 + 24950 2.495 0.076457868 1290.2485 235.49414 -11.816527 7.5795618 -1075.2188 -1067.6392 + 25000 2.5 0.076457817 1324.8441 237.34082 -11.84201 7.6389985 -1075.2782 -1067.6392 + 25050 2.505 0.076457813 1382.8669 235.99886 -11.868053 7.5958063 -1075.235 -1067.6392 + 25100 2.51 0.076457866 1404.5052 232.75422 -11.897872 7.4913751 -1075.1306 -1067.6392 + 25150 2.515 0.076457758 1373.5678 229.12093 -11.930189 7.3744349 -1075.0137 -1067.6392 + 25200 2.52 0.076457631 1340.2368 225.89973 -11.961129 7.2707582 -1074.91 -1067.6392 + 25250 2.525 0.076457603 1287.6672 223.17935 -11.988402 7.1832006 -1074.8224 -1067.6392 + 25300 2.53 0.076457707 1215.9369 221.04361 -12.017068 7.1144602 -1074.7537 -1067.6392 + 25350 2.535 0.076457838 1180.1736 219.67591 -12.055753 7.0704398 -1074.7097 -1067.6392 + 25400 2.54 0.076457842 1170.0761 218.91437 -12.098288 7.0459289 -1074.6852 -1067.6392 + 25450 2.545 0.076457763 1167.2929 218.81794 -12.132702 7.0428252 -1074.6821 -1067.6392 + 25500 2.55 0.076457742 1155.4395 219.83672 -12.154195 7.0756153 -1074.7148 -1067.6392 + 25550 2.555 0.076457848 1131.146 222.18391 -12.164224 7.1511617 -1074.7904 -1067.6392 + 25600 2.56 0.076457871 1116.0652 225.47579 -12.165095 7.2571134 -1074.8963 -1067.6392 + 25650 2.565 0.076457678 1117.8567 229.01451 -12.157967 7.3710097 -1075.0102 -1067.6392 + 25700 2.57 0.076457577 1115.2103 232.4771 -12.148741 7.4824559 -1075.1217 -1067.6392 + 25750 2.575 0.07645762 1102.8295 236.02578 -12.149186 7.5966728 -1075.2359 -1067.6392 + 25800 2.58 0.076457709 1096.6263 239.31704 -12.161384 7.7026045 -1075.3418 -1067.6392 + 25850 2.585 0.076457771 1099.7531 240.71012 -12.161592 7.747442 -1075.3867 -1067.6392 + 25900 2.59 0.076457794 1113.7391 239.15473 -12.139363 7.6973807 -1075.3366 -1067.6392 + 25950 2.595 0.07645781 1147.6615 235.77781 -12.120655 7.5886918 -1075.2279 -1067.6392 + 26000 2.6 0.076457803 1195.6627 232.4229 -12.122283 7.4807114 -1075.1199 -1067.6392 + 26050 2.605 0.076457723 1213.8878 230.05021 -12.134196 7.4043447 -1075.0436 -1067.6392 + 26100 2.61 0.076457662 1191.4257 228.34601 -12.14523 7.3494937 -1074.9887 -1067.6392 + 26150 2.615 0.076457767 1186.9577 226.17929 -12.149057 7.2797559 -1074.919 -1067.6392 + 26200 2.62 0.076457849 1226.0678 223.24397 -12.148604 7.1852804 -1074.8245 -1067.6392 + 26250 2.625 0.076457784 1270.1774 220.78885 -12.161228 7.1062605 -1074.7455 -1067.6392 + 26300 2.63 0.076457753 1268.5951 220.05927 -12.190785 7.0827783 -1074.722 -1067.6392 + 26350 2.635 0.076457796 1244.3015 221.38274 -12.221833 7.1253752 -1074.7646 -1067.6392 + 26400 2.64 0.076457904 1225.8939 224.5378 -12.241241 7.2269233 -1074.8662 -1067.6392 + 26450 2.645 0.076457928 1204.224 229.04038 -12.247464 7.3718425 -1075.0111 -1067.6392 + 26500 2.65 0.076457842 1199.5629 234.11351 -12.243703 7.5351249 -1075.1744 -1067.6392 + 26550 2.655 0.0764578 1235.5048 238.7946 -12.230359 7.6857895 -1075.325 -1067.6392 + 26600 2.66 0.076457721 1281.541 242.70107 -12.219967 7.8115224 -1075.4508 -1067.6392 + 26650 2.665 0.0764577 1281.3617 245.64082 -12.229105 7.9061404 -1075.5454 -1067.6392 + 26700 2.67 0.07645779 1230.3534 246.77381 -12.256827 7.9426067 -1075.5818 -1067.6392 + 26750 2.675 0.076457839 1175.2288 245.47917 -12.297669 7.9009375 -1075.5402 -1067.6392 + 26800 2.68 0.076457784 1149.9437 242.07494 -12.342321 7.7913698 -1075.4306 -1067.6392 + 26850 2.685 0.076457711 1169.6008 237.70339 -12.376334 7.650668 -1075.2899 -1067.6392 + 26900 2.69 0.076457632 1210.4254 233.714 -12.396735 7.5222663 -1075.1615 -1067.6392 + 26950 2.695 0.076457617 1244.0163 230.58832 -12.405269 7.4216639 -1075.0609 -1067.6392 + 27000 2.7 0.076457659 1257.3494 228.32233 -12.406329 7.3487312 -1074.988 -1067.6392 + 27050 2.705 0.076457668 1242.1629 227.1087 -12.40368 7.3096696 -1074.9489 -1067.6392 + 27100 2.71 0.076457682 1217.8126 227.49963 -12.404175 7.3222522 -1074.9615 -1067.6392 + 27150 2.715 0.076457706 1217.8124 229.8195 -12.417454 7.3969191 -1075.0361 -1067.6392 + 27200 2.72 0.076457701 1219.6581 233.1475 -12.435301 7.5040334 -1075.1433 -1067.6392 + 27250 2.725 0.076457686 1211.6763 235.8244 -12.43823 7.5901913 -1075.2294 -1067.6392 + 27300 2.73 0.076457643 1225.8491 236.93145 -12.423077 7.6258227 -1075.2651 -1067.6392 + 27350 2.735 0.076457549 1261.0199 236.94668 -12.410644 7.6263127 -1075.2655 -1067.6392 + 27400 2.74 0.076457483 1284.2546 236.98531 -12.421882 7.6275561 -1075.2668 -1067.6392 + 27450 2.745 0.076457556 1281.5681 237.67885 -12.455724 7.6498782 -1075.2891 -1067.6392 + 27500 2.75 0.076457685 1256.839 238.55422 -12.493006 7.6780526 -1075.3173 -1067.6392 + 27550 2.755 0.076457693 1220.0129 238.19759 -12.515867 7.6665742 -1075.3058 -1067.6392 + 27600 2.76 0.076457632 1193.1779 235.68564 -12.532016 7.5857252 -1075.225 -1067.6392 + 27650 2.765 0.076457609 1192.09 231.33982 -12.558081 7.4458516 -1075.0851 -1067.6392 + 27700 2.77 0.076457625 1202.0934 226.4355 -12.590497 7.2880024 -1074.9272 -1067.6392 + 27750 2.775 0.076457615 1223.3689 222.74878 -12.619082 7.1693425 -1074.8086 -1067.6392 + 27800 2.78 0.076457614 1236.1154 221.25926 -12.636081 7.1214011 -1074.7606 -1067.6392 + 27850 2.785 0.076457572 1215.5551 222.18867 -12.64127 7.1513149 -1074.7905 -1067.6392 + 27900 2.79 0.07645756 1193.3848 226.01602 -12.647063 7.2745009 -1074.9137 -1067.6392 + 27950 2.795 0.076457569 1199.0777 232.72902 -12.662048 7.4905641 -1075.1298 -1067.6392 + 28000 2.8 0.076457558 1226.0822 240.9006 -12.684171 7.7535728 -1075.3928 -1067.6392 + 28050 2.805 0.076457525 1250.6269 248.18701 -12.706245 7.9880915 -1075.6273 -1067.6392 + 28100 2.81 0.076457523 1248.7874 252.69422 -12.722605 8.1331597 -1075.7724 -1067.6392 + 28150 2.815 0.07645753 1230.0137 253.95916 -12.737961 8.1738726 -1075.8131 -1067.6392 + 28200 2.82 0.076457605 1234.0819 252.35766 -12.756693 8.1223272 -1075.7616 -1067.6392 + 28250 2.825 0.07645771 1254.628 248.5247 -12.774833 7.9989605 -1075.6382 -1067.6392 + 28300 2.83 0.07645778 1281.309 243.72026 -12.788447 7.8443256 -1075.4836 -1067.6392 + 28350 2.835 0.076457708 1285.3002 239.8707 -12.802912 7.7204245 -1075.3597 -1067.6392 + 28400 2.84 0.076457582 1256.9488 238.10994 -12.817628 7.6637532 -1075.303 -1067.6392 + 28450 2.845 0.076457576 1242.8447 238.02503 -12.821369 7.6610204 -1075.3003 -1067.6392 + 28500 2.85 0.076457672 1248.8453 238.87258 -12.815092 7.6882993 -1075.3275 -1067.6392 + 28550 2.855 0.07645771 1281.7135 240.3983 -12.811904 7.7374058 -1075.3766 -1067.6392 + 28600 2.86 0.07645762 1294.605 242.33371 -12.814653 7.7996987 -1075.4389 -1067.6392 + 28650 2.865 0.076457529 1252.3957 244.15537 -12.817984 7.8583301 -1075.4976 -1067.6392 + 28700 2.87 0.076457548 1213.8804 245.30616 -12.82322 7.8953691 -1075.5346 -1067.6392 + 28750 2.875 0.076457553 1200.6384 245.23015 -12.835086 7.8929227 -1075.5322 -1067.6392 + 28800 2.88 0.076457552 1189.7135 243.32741 -12.845696 7.8316815 -1075.4709 -1067.6392 + 28850 2.885 0.076457676 1171.5405 239.66267 -12.847297 7.7137291 -1075.353 -1067.6392 + 28900 2.89 0.076457794 1182.195 235.25919 -12.851038 7.5719995 -1075.2112 -1067.6392 + 28950 2.895 0.076457813 1224.8369 230.84518 -12.859984 7.4299314 -1075.0692 -1067.6392 + 29000 2.9 0.076457656 1269.692 226.8838 -12.858576 7.3024311 -1074.9417 -1067.6392 + 29050 2.905 0.076457468 1286.8403 225.08705 -12.856504 7.2446013 -1074.8838 -1067.6392 + 29100 2.91 0.0764575 1271.0526 226.82973 -12.880368 7.3006909 -1074.9399 -1067.6392 + 29150 2.915 0.07645747 1248.4957 230.86777 -12.929739 7.4306583 -1075.0699 -1067.6392 + 29200 2.92 0.07645748 1245.8599 234.77185 -12.982866 7.5563142 -1075.1955 -1067.6392 + 29250 2.925 0.076457588 1257.79 237.40229 -13.022402 7.6409768 -1075.2802 -1067.6392 + 29300 2.93 0.076457597 1260.7886 239.44496 -13.046942 7.7067219 -1075.346 -1067.6392 + 29350 2.935 0.07645748 1254.7882 242.29319 -13.065883 7.7983943 -1075.4376 -1067.6392 + 29400 2.94 0.076457359 1263.4607 246.63741 -13.085623 7.9382166 -1075.5774 -1067.6392 + 29450 2.945 0.076457332 1289.6554 251.59184 -13.099481 8.0976788 -1075.7369 -1067.6392 + 29500 2.95 0.076457414 1305.0692 255.25633 -13.098228 8.2156232 -1075.8549 -1067.6392 + 29550 2.955 0.076457494 1277.7916 256.65211 -13.088762 8.2605473 -1075.8998 -1067.6392 + 29600 2.96 0.076457446 1192.1394 256.67442 -13.090594 8.2612654 -1075.9005 -1067.6392 + 29650 2.965 0.076457417 1102.145 257.10406 -13.122356 8.2750937 -1075.9143 -1067.6392 + 29700 2.97 0.076457454 1062.1511 258.80127 -13.182596 8.3297196 -1075.969 -1067.6392 + 29750 2.975 0.076457483 1054.3636 261.18603 -13.249025 8.4064751 -1076.0457 -1067.6392 + 29800 2.98 0.076457498 1047.2927 263.27484 -13.304946 8.4737052 -1076.1129 -1067.6392 + 29850 2.985 0.076457496 1036.3496 264.2054 -13.347539 8.503656 -1076.1429 -1067.6392 + 29900 2.99 0.076457524 1049.8211 263.14933 -13.375057 8.4696654 -1076.1089 -1067.6392 + 29950 2.995 0.076457485 1086.8925 259.64496 -13.389366 8.3568747 -1075.9961 -1067.6392 + 30000 3 0.076457358 1121.0033 253.8035 -13.399945 8.1688626 -1075.8081 -1067.6392 + 30050 3.005 0.076457431 1153.305 246.37026 -13.414937 7.929618 -1075.5688 -1067.6392 + 30100 3.01 0.076457504 1145.6871 238.79622 -13.434682 7.6858415 -1075.3251 -1067.6392 + 30150 3.015 0.076457434 1115.5285 232.85496 -13.455727 7.4946177 -1075.1338 -1067.6392 + 30200 3.02 0.076457399 1103.9994 229.6959 -13.474938 7.392941 -1075.0322 -1067.6392 + 30250 3.025 0.076457501 1101.6296 229.35272 -13.488841 7.3818953 -1075.0211 -1067.6392 + 30300 3.03 0.076457539 1112.6865 231.35224 -13.495096 7.4462514 -1075.0855 -1067.6392 + 30350 3.035 0.076457548 1123.796 235.35091 -13.499855 7.5749517 -1075.2142 -1067.6392 + 30400 3.04 0.076457611 1111.9754 240.67564 -13.509248 7.7463324 -1075.3856 -1067.6392 + 30450 3.045 0.076457553 1103.8338 246.28636 -13.523249 7.9269177 -1075.5661 -1067.6392 + 30500 3.05 0.076457568 1119.7372 251.34267 -13.540792 8.089659 -1075.7289 -1067.6392 + 30550 3.055 0.076457571 1132.1966 255.24219 -13.56046 8.2151678 -1075.8544 -1067.6392 + 30600 3.06 0.076457421 1124.379 257.49852 -13.581214 8.2877897 -1075.927 -1067.6392 + 30650 3.065 0.076457351 1122.0717 257.82611 -13.600369 8.2983334 -1075.9376 -1067.6392 + 30700 3.07 0.076457488 1124.7347 256.51074 -13.616001 8.2559974 -1075.8952 -1067.6392 + 30750 3.075 0.076457614 1114.8471 254.66368 -13.629361 8.1965481 -1075.8358 -1067.6392 + 30800 3.08 0.076457581 1094.5902 253.68827 -13.6371 8.1651537 -1075.8044 -1067.6392 + 30850 3.085 0.076457515 1073.605 254.18179 -13.626926 8.1810381 -1075.8203 -1067.6392 + 30900 3.09 0.076457524 1059.6001 255.86129 -13.596369 8.2350942 -1075.8743 -1067.6392 + 30950 3.095 0.0764576 1050.7385 258.54322 -13.569865 8.3214142 -1075.9606 -1067.6392 + 31000 3.1 0.076457649 1033.7103 262.19251 -13.574242 8.4388695 -1076.0781 -1067.6392 + 31050 3.105 0.076457659 1023.1274 265.66302 -13.599347 8.5505704 -1076.1898 -1067.6392 + 31100 3.11 0.076457746 1039.0568 267.03003 -13.620524 8.5945689 -1076.2338 -1067.6392 + 31150 3.115 0.076457898 1064.7448 265.17792 -13.632089 8.5349571 -1076.1742 -1067.6392 + 31200 3.12 0.076458052 1085.3299 260.61936 -13.639394 8.3882363 -1076.0275 -1067.6392 + 31250 3.125 0.076457928 1090.3799 255.5305 -13.653293 8.2244474 -1075.8637 -1067.6392 + 31300 3.13 0.076457763 1073.4364 252.27482 -13.679887 8.1196609 -1075.7589 -1067.6392 + 31350 3.135 0.076457843 1055.311 251.62684 -13.710258 8.098805 -1075.738 -1067.6392 + 31400 3.14 0.07645797 1050.9396 252.63775 -13.731468 8.131342 -1075.7706 -1067.6392 + 31450 3.145 0.076457995 1046.9287 253.93922 -13.744029 8.1732308 -1075.8125 -1067.6392 + 31500 3.15 0.076457929 1022.8429 255.08707 -13.767257 8.2101752 -1075.8494 -1067.6392 + 31550 3.155 0.076457813 1004.9865 255.64995 -13.801963 8.228292 -1075.8675 -1067.6392 + 31600 3.16 0.076457767 1012.0538 254.8658 -13.829447 8.2030536 -1075.8423 -1067.6392 + 31650 3.165 0.076457802 1018.5353 252.69011 -13.844282 8.1330274 -1075.7723 -1067.6392 + 31700 3.17 0.076457799 1017.5009 249.999 -13.85414 8.0464118 -1075.6856 -1067.6392 + 31750 3.175 0.076457841 1019.8774 248.32876 -13.869648 7.9926539 -1075.6319 -1067.6392 + 31800 3.18 0.076457886 1027.7011 249.00645 -13.900943 8.014466 -1075.6537 -1067.6392 + 31850 3.185 0.07645785 1032.5018 251.69035 -13.947711 8.1008491 -1075.7401 -1067.6392 + 31900 3.19 0.076457837 1045.2307 254.29935 -13.987581 8.1848219 -1075.8241 -1067.6392 + 31950 3.195 0.076457885 1056.0235 255.3938 -14.000115 8.2200476 -1075.8593 -1067.6392 + 32000 3.2 0.076457879 1063.1819 256.13783 -14.001498 8.2439948 -1075.8832 -1067.6392 + 32050 3.205 0.076457704 1063.2852 258.5764 -14.010496 8.3224822 -1075.9617 -1067.6392 + 32100 3.21 0.076457634 1060.1503 263.31955 -14.023472 8.4751441 -1076.1144 -1067.6392 + 32150 3.215 0.07645773 1082.1484 268.96215 -14.036792 8.6567557 -1076.296 -1067.6392 + 32200 3.22 0.076457724 1103.843 273.4235 -14.055183 8.8003475 -1076.4396 -1067.6392 + 32250 3.225 0.076457625 1120.0414 275.94618 -14.084096 8.8815421 -1076.5208 -1067.6392 + 32300 3.23 0.076457606 1136.3108 276.73679 -14.116774 8.9069885 -1076.5462 -1067.6392 + 32350 3.235 0.07645768 1140.5919 275.77159 -14.139186 8.8759228 -1076.5152 -1067.6392 + 32400 3.24 0.076457802 1142.314 273.10495 -14.154735 8.7900947 -1076.4293 -1067.6392 + 32450 3.245 0.076457801 1159.6999 269.05809 -14.173996 8.6598435 -1076.2991 -1067.6392 + 32500 3.25 0.076457663 1174.6995 264.30819 -14.195702 8.5069643 -1076.1462 -1067.6392 + 32550 3.255 0.07645754 1185.7335 260.56202 -14.220076 8.3863908 -1076.0256 -1067.6392 + 32600 3.26 0.07645745 1198.982 259.45314 -14.241025 8.3507006 -1075.9899 -1067.6392 + 32650 3.265 0.076457456 1199.5794 261.37319 -14.253149 8.4124991 -1076.0517 -1067.6392 + 32700 3.27 0.076457573 1179.3566 265.3589 -14.262294 8.540782 -1076.18 -1067.6392 + 32750 3.275 0.076457607 1165.0216 269.79834 -14.273699 8.683669 -1076.3229 -1067.6392 + 32800 3.28 0.076457614 1173.1315 273.40897 -14.289043 8.7998799 -1076.4391 -1067.6392 + 32850 3.285 0.076457555 1178.2206 274.57793 -14.299588 8.8375039 -1076.4767 -1067.6392 + 32900 3.29 0.076457497 1160.0236 271.50252 -14.294919 8.7385195 -1076.3778 -1067.6392 + 32950 3.295 0.076457473 1144.3971 264.301 -14.284674 8.5067327 -1076.146 -1067.6392 + 33000 3.3 0.076457442 1138.8725 255.31826 -14.284777 8.2176163 -1075.8568 -1067.6392 + 33050 3.305 0.076457458 1135.3747 247.47369 -14.298209 7.9651327 -1075.6044 -1067.6392 + 33100 3.31 0.07645749 1148.9774 242.6502 -14.315521 7.809885 -1075.4491 -1067.6392 + 33150 3.315 0.076457432 1189.6279 241.36912 -14.324008 7.7686525 -1075.4079 -1067.6392 + 33200 3.32 0.076457424 1218.5788 243.90794 -14.331626 7.8503665 -1075.4896 -1067.6392 + 33250 3.325 0.076457482 1226.0538 250.03113 -14.352941 8.0474459 -1075.6867 -1067.6392 + 33300 3.33 0.076457454 1217.2314 257.73002 -14.374194 8.2952407 -1075.9345 -1067.6392 + 33350 3.335 0.076457399 1179.6803 264.28604 -14.379749 8.5062513 -1076.1455 -1067.6392 + 33400 3.34 0.076457379 1147.4971 267.79867 -14.373039 8.6193079 -1076.2585 -1067.6392 + 33450 3.345 0.076457399 1124.9366 267.92167 -14.366464 8.6232668 -1076.2625 -1067.6392 + 33500 3.35 0.076457444 1092.1841 265.9319 -14.368822 8.5592245 -1076.1985 -1067.6392 + 33550 3.355 0.076457408 1060.5254 264.14114 -14.37771 8.5015877 -1076.1408 -1067.6392 + 33600 3.36 0.07645736 1052.8302 265.02822 -14.389997 8.5301389 -1076.1694 -1067.6392 + 33650 3.365 0.076457327 1071.8382 269.77669 -14.410837 8.6829721 -1076.3222 -1067.6392 + 33700 3.37 0.076457378 1077.2229 277.22693 -14.442017 8.9227639 -1076.562 -1067.6392 + 33750 3.375 0.076457477 1071.9501 284.74963 -14.478049 9.1648879 -1076.8041 -1067.6392 + 33800 3.38 0.076457559 1090.056 289.50132 -14.506085 9.3178246 -1076.9571 -1067.6392 + 33850 3.385 0.076457575 1101.8505 289.82737 -14.514725 9.328319 -1076.9676 -1067.6392 + 33900 3.39 0.076457503 1091.3063 286.53466 -14.509436 9.2223404 -1076.8616 -1067.6392 + 33950 3.395 0.076457435 1087.1463 282.13005 -14.507235 9.0805746 -1076.7198 -1067.6392 + 34000 3.4 0.076457382 1079.0451 278.26682 -14.510716 8.9562337 -1076.5955 -1067.6392 + 34050 3.405 0.076457431 1073.4079 274.56089 -14.506574 8.8369554 -1076.4762 -1067.6392 + 34100 3.41 0.076457549 1080.3626 270.2225 -14.496075 8.6973209 -1076.3366 -1067.6392 + 34150 3.415 0.076457614 1081.8942 265.22981 -14.489633 8.5366274 -1076.1759 -1067.6392 + 34200 3.42 0.076457554 1102.3586 260.17866 -14.492136 8.3740522 -1076.0133 -1067.6392 + 34250 3.425 0.076457464 1141.421 255.94089 -14.50297 8.2376562 -1075.8769 -1067.6392 + 34300 3.43 0.076457528 1167.5346 253.78734 -14.520502 8.1683424 -1075.8076 -1067.6392 + 34350 3.435 0.076457597 1181.2246 255.29171 -14.550339 8.2167619 -1075.856 -1067.6392 + 34400 3.44 0.076457601 1162.4984 260.55233 -14.591365 8.386079 -1076.0253 -1067.6392 + 34450 3.445 0.076457485 1116.5653 267.61508 -14.63639 8.6133991 -1076.2526 -1067.6392 + 34500 3.45 0.07645735 1088.0554 273.74226 -14.675649 8.8106072 -1076.4498 -1067.6392 + 34550 3.455 0.076457477 1088.7296 277.3573 -14.702608 8.9269599 -1076.5662 -1067.6392 + 34600 3.46 0.076457673 1090.2675 279.19132 -14.732125 8.9859893 -1076.6252 -1067.6392 + 34650 3.465 0.07645765 1100.9294 280.27784 -14.77937 9.0209599 -1076.6602 -1067.6392 + 34700 3.47 0.076457569 1122.6353 279.51649 -14.824493 8.9964553 -1076.6357 -1067.6392 + 34750 3.475 0.076457534 1143.7477 275.73199 -14.844911 8.874648 -1076.5139 -1067.6392 + 34800 3.48 0.076457556 1165.0387 270.72066 -14.849166 8.7133545 -1076.3526 -1067.6392 + 34850 3.485 0.076457595 1162.8441 267.90858 -14.858627 8.6228456 -1076.2621 -1067.6392 + 34900 3.49 0.076457625 1139.7512 268.63619 -14.881699 8.6462643 -1076.2855 -1067.6392 + 34950 3.495 0.076457625 1112.7165 270.83924 -14.900675 8.7171711 -1076.3564 -1067.6392 + 35000 3.5 0.076457606 1086.0982 271.68623 -14.896016 8.7444321 -1076.3837 -1067.6392 + 35050 3.505 0.076457591 1071.7971 270.42576 -14.87744 8.703863 -1076.3431 -1067.6392 + 35100 3.51 0.076457658 1060.0049 267.97932 -14.863646 8.6251225 -1076.2644 -1067.6392 + 35150 3.515 0.076457689 1048.4698 265.72769 -14.860477 8.5526519 -1076.1919 -1067.6392 + 35200 3.52 0.076457634 1056.5787 265.02751 -14.865903 8.530116 -1076.1693 -1067.6392 + 35250 3.525 0.076457566 1046.9055 266.33972 -14.87323 8.5723504 -1076.2116 -1067.6392 + 35300 3.53 0.076457569 1013.1592 269.06436 -14.877187 8.6600451 -1076.2993 -1067.6392 + 35350 3.535 0.076457656 997.2022 272.57564 -14.87974 8.7730585 -1076.4123 -1067.6392 + 35400 3.54 0.07645767 994.65584 277.00538 -14.890358 8.9156331 -1076.5549 -1067.6392 + 35450 3.545 0.076457529 1001.1164 282.19926 -14.906943 9.0828022 -1076.722 -1067.6392 + 35500 3.55 0.076457424 1005.5196 287.07965 -14.918939 9.2398813 -1076.8791 -1067.6392 + 35550 3.555 0.076457509 997.69944 290.53612 -14.933609 9.3511304 -1076.9904 -1067.6392 + 35600 3.56 0.076457585 987.73643 291.05935 -14.952689 9.367971 -1077.0072 -1067.6392 + 35650 3.565 0.076457527 979.49042 287.4359 -14.968978 9.2513476 -1076.8906 -1067.6392 + 35700 3.57 0.07645746 984.55099 280.23031 -14.982301 9.01943 -1076.6587 -1067.6392 + 35750 3.575 0.07645748 1007.1391 271.88244 -14.993121 8.7507474 -1076.39 -1067.6392 + 35800 3.58 0.076457584 1039.0252 265.93314 -15.003434 8.5592646 -1076.1985 -1067.6392 + 35850 3.585 0.076457694 1068.9559 264.36704 -15.012954 8.5088585 -1076.1481 -1067.6392 + 35900 3.59 0.076457572 1070.9201 265.93574 -15.011002 8.559348 -1076.1986 -1067.6392 + 35950 3.595 0.076457429 1036.7314 268.37032 -15.000108 8.637707 -1076.2769 -1067.6392 + 36000 3.6 0.076457451 992.35033 270.35259 -15.003655 8.7015079 -1076.3407 -1067.6392 + 36050 3.605 0.076457474 975.3892 271.29311 -15.025665 8.7317792 -1076.371 -1067.6392 + 36100 3.61 0.076457434 1003.1636 271.41843 -15.049959 8.7358129 -1076.375 -1067.6392 + 36150 3.615 0.076457412 1027.3457 271.65889 -15.065017 8.7435522 -1076.3828 -1067.6392 + 36200 3.62 0.076457466 1042.0311 273.28003 -15.081242 8.79573 -1076.435 -1067.6392 + 36250 3.625 0.076457508 1050.9908 276.54947 -15.107217 8.9009594 -1076.5402 -1067.6392 + 36300 3.63 0.076457539 1064.6932 280.62712 -15.141343 9.0322016 -1076.6714 -1067.6392 + 36350 3.635 0.076457488 1085.4466 284.55482 -15.179271 9.1586178 -1076.7979 -1067.6392 + 36400 3.64 0.07645739 1094.0882 287.6198 -15.211097 9.2572665 -1076.8965 -1067.6392 + 36450 3.645 0.076457389 1092.1647 289.93627 -15.238113 9.3318239 -1076.9711 -1067.6392 + 36500 3.65 0.076457492 1082.1176 292.06035 -15.270924 9.4001889 -1077.0394 -1067.6392 + 36550 3.655 0.07645746 1078.0108 293.66619 -15.302636 9.4518744 -1077.0911 -1067.6392 + 36600 3.66 0.076457339 1094.3091 293.79253 -15.317422 9.4559406 -1077.0952 -1067.6392 + 36650 3.665 0.076457274 1100.3857 292.13609 -15.32291 9.4026267 -1077.0419 -1067.6392 + 36700 3.67 0.0764573 1059.1813 288.62112 -15.334691 9.2894948 -1076.9287 -1067.6392 + 36750 3.675 0.076457376 1010.0955 283.16513 -15.348493 9.1138894 -1076.7531 -1067.6392 + 36800 3.68 0.07645743 1004.7965 277.87783 -15.360479 8.9437136 -1076.5829 -1067.6392 + 36850 3.685 0.076457375 1018.8309 276.50784 -15.379064 8.8996193 -1076.5388 -1067.6392 + 36900 3.69 0.076457369 1028.961 278.28003 -15.401946 8.9566587 -1076.5959 -1067.6392 + 36950 3.695 0.076457388 1023.5143 278.85362 -15.418664 8.9751201 -1076.6144 -1067.6392 + 37000 3.7 0.076457408 1012.265 276.41504 -15.427991 8.8966325 -1076.5359 -1067.6392 + 37050 3.705 0.076457493 990.96196 271.81651 -15.438424 8.7486254 -1076.3879 -1067.6392 + 37100 3.71 0.076457562 981.1712 266.91048 -15.456878 8.5907211 -1076.23 -1067.6392 + 37150 3.715 0.076457539 986.354 263.91762 -15.48189 8.4943933 -1076.1336 -1067.6392 + 37200 3.72 0.076457423 996.09368 264.87626 -15.509807 8.525248 -1076.1645 -1067.6392 + 37250 3.725 0.076457402 997.16422 270.68182 -15.53609 8.7121043 -1076.3513 -1067.6392 + 37300 3.73 0.076457531 991.56754 280.3235 -15.553199 9.0224294 -1076.6617 -1067.6392 + 37350 3.735 0.076457475 983.899 291.64399 -15.567246 9.3867882 -1077.026 -1067.6392 + 37400 3.74 0.076457375 957.07127 302.31861 -15.591292 9.7303592 -1077.3696 -1067.6392 + 37450 3.745 0.076457441 915.9148 310.31227 -15.627635 9.9876414 -1077.6269 -1067.6392 + 37500 3.75 0.076457477 897.56201 314.34798 -15.671163 10.117534 -1077.7568 -1067.6392 + 37550 3.755 0.076457431 903.88431 313.87044 -15.71386 10.102164 -1077.7414 -1067.6392 + 37600 3.76 0.076457491 917.28579 308.82801 -15.749285 9.9398693 -1077.5791 -1067.6392 + 37650 3.765 0.076457525 942.06017 299.66951 -15.772048 9.6450956 -1077.2843 -1067.6392 + 37700 3.77 0.076457445 961.28174 287.88151 -15.778198 9.2656899 -1076.9049 -1067.6392 + 37750 3.775 0.076457477 958.2021 276.39254 -15.772569 8.8959083 -1076.5351 -1067.6392 + 37800 3.78 0.076457557 948.94806 268.64513 -15.765698 8.6465521 -1076.2858 -1067.6392 + 37850 3.785 0.076457556 947.78704 266.8871 -15.766401 8.5899684 -1076.2292 -1067.6392 + 37900 3.79 0.076457558 962.37609 270.88487 -15.776472 8.7186398 -1076.3579 -1067.6392 + 37950 3.795 0.076457526 991.61874 278.53558 -15.795866 8.9648839 -1076.6041 -1067.6392 + 38000 3.8 0.076457499 1010.916 287.47978 -15.824326 9.25276 -1076.892 -1067.6392 + 38050 3.805 0.076457489 993.35135 295.7602 -15.862726 9.5192717 -1077.1585 -1067.6392 + 38100 3.81 0.076457546 989.74778 301.47541 -15.907632 9.70322 -1077.3425 -1067.6392 + 38150 3.815 0.07645761 993.3824 303.44671 -15.946558 9.7666679 -1077.4059 -1067.6392 + 38200 3.82 0.076457588 988.80567 302.40203 -15.977266 9.733044 -1077.3723 -1067.6392 + 38250 3.825 0.07645753 984.55282 300.11697 -16.011838 9.6594977 -1077.2987 -1067.6392 + 38300 3.83 0.076457562 983.37008 297.61678 -16.053812 9.5790269 -1077.2183 -1067.6392 + 38350 3.835 0.076457613 1000.3554 294.80409 -16.085202 9.4884983 -1077.1277 -1067.6392 + 38400 3.84 0.076457626 1033.4664 291.876 -16.096115 9.3942555 -1077.0335 -1067.6392 + 38450 3.845 0.076457661 1047.3368 290.07519 -16.110059 9.3362953 -1076.9755 -1067.6392 + 38500 3.85 0.076457655 1024.7937 289.82293 -16.139554 9.328176 -1076.9674 -1067.6392 + 38550 3.855 0.076457638 1017.4806 289.8687 -16.161946 9.3296489 -1076.9689 -1067.6392 + 38600 3.86 0.076457592 1039.5043 289.37833 -16.169892 9.3138662 -1076.9531 -1067.6392 + 38650 3.865 0.076457557 1063.9366 288.50085 -16.171467 9.2856238 -1076.9249 -1067.6392 + 38700 3.87 0.076457677 1070.449 287.9452 -16.169902 9.2677398 -1076.907 -1067.6392 + 38750 3.875 0.076457662 1052.016 288.41298 -16.166026 9.2827956 -1076.922 -1067.6392 + 38800 3.88 0.076457605 1032.1006 289.76121 -16.162583 9.3261896 -1076.9654 -1067.6392 + 38850 3.885 0.076457712 1020.3335 291.3617 -16.16773 9.3777023 -1077.0169 -1067.6392 + 38900 3.89 0.076457683 1015.7433 292.68938 -16.184231 9.4204347 -1077.0597 -1067.6392 + 38950 3.895 0.076457564 1027.8269 293.63898 -16.21584 9.4509986 -1077.0902 -1067.6392 + 39000 3.9 0.076457619 1038.6319 293.97207 -16.254979 9.4617194 -1077.101 -1067.6392 + 39050 3.905 0.076457705 1044.5679 293.885 -16.278531 9.4589168 -1077.0981 -1067.6392 + 39100 3.91 0.076457709 1046.1788 295.0006 -16.27343 9.4948231 -1077.1341 -1067.6392 + 39150 3.915 0.076457649 1023.8873 298.98535 -16.251292 9.6230756 -1077.2623 -1067.6392 + 39200 3.92 0.076457633 1000.8332 305.48222 -16.233015 9.8321825 -1077.4714 -1067.6392 + 39250 3.925 0.07645756 988.14502 312.10448 -16.230005 10.045325 -1077.6846 -1067.6392 + 39300 3.93 0.076457575 997.35073 315.81405 -16.238203 10.16472 -1077.804 -1067.6392 + 39350 3.935 0.076457677 1028.5818 314.19089 -16.240391 10.112478 -1077.7517 -1067.6392 + 39400 3.94 0.076457714 1045.4201 306.98031 -16.22979 9.8803995 -1077.5196 -1067.6392 + 39450 3.945 0.076457711 1044.1918 297.96176 -16.221111 9.5901304 -1077.2294 -1067.6392 + 39500 3.95 0.076457669 1031.5483 292.5692 -16.214559 9.4165666 -1077.0558 -1067.6392 + 39550 3.955 0.07645756 1025.8724 290.92753 -16.201804 9.3637283 -1077.003 -1067.6392 + 39600 3.96 0.076457551 1043.0568 290.57097 -16.194891 9.3522522 -1076.9915 -1067.6392 + 39650 3.965 0.076457568 1064.0457 291.54866 -16.212818 9.3837199 -1077.0229 -1067.6392 + 39700 3.97 0.076457614 1074.2493 294.08039 -16.259022 9.4652057 -1077.1044 -1067.6392 + 39750 3.975 0.076457622 1045.9401 296.58886 -16.307783 9.5459427 -1077.1852 -1067.6392 + 39800 3.98 0.076457589 1003.4409 297.25507 -16.339872 9.5673852 -1077.2066 -1067.6392 + 39850 3.985 0.076457612 993.64485 295.77116 -16.361298 9.5196243 -1077.1589 -1067.6392 + 39900 3.99 0.076457712 1006.0484 293.1885 -16.376761 9.4364994 -1077.0757 -1067.6392 + 39950 3.995 0.076457679 991.57157 290.9198 -16.379302 9.3634795 -1077.0027 -1067.6392 + 40000 4 0.076457582 964.36543 290.23473 -16.367849 9.3414299 -1076.9807 -1067.6392 + 40050 4.005 0.076457559 954.79409 292.02726 -16.354715 9.3991239 -1077.0384 -1067.6392 + 40100 4.01 0.076457588 961.79789 296.03902 -16.354183 9.5282455 -1077.1675 -1067.6392 + 40150 4.015 0.0764576 986.86742 299.96659 -16.365093 9.6546575 -1077.2939 -1067.6392 + 40200 4.02 0.076457589 994.14866 300.89633 -16.372591 9.6845819 -1077.3238 -1067.6392 + 40250 4.025 0.076457645 996.14585 298.37892 -16.367541 9.6035572 -1077.2428 -1067.6392 + 40300 4.03 0.076457675 1009.035 295.25357 -16.358503 9.5029652 -1077.1422 -1067.6392 + 40350 4.035 0.076457598 1014.8105 294.51698 -16.354826 9.4792575 -1077.1185 -1067.6392 + 40400 4.04 0.076457586 1029.6311 295.9285 -16.358567 9.5246883 -1077.1639 -1067.6392 + 40450 4.045 0.076457599 1038.8165 296.70455 -16.37191 9.5496663 -1077.1889 -1067.6392 + 40500 4.05 0.076457523 1019.8005 294.96456 -16.392342 9.4936634 -1077.1329 -1067.6392 + 40550 4.055 0.076457428 1023.4475 291.60684 -16.41267 9.3855926 -1077.0248 -1067.6392 + 40600 4.06 0.076457444 1057.8107 289.35106 -16.430176 9.3129884 -1076.9522 -1067.6392 + 40650 4.065 0.076457557 1057.6424 290.01367 -16.442565 9.3343151 -1076.9735 -1067.6392 + 40700 4.07 0.076457689 1032.0152 293.01599 -16.440441 9.430947 -1077.0702 -1067.6392 + 40750 4.075 0.076457733 1027.6923 297.33249 -16.429161 9.5698769 -1077.2091 -1067.6392 + 40800 4.08 0.076457683 1049.2581 302.71656 -16.425908 9.7431675 -1077.3824 -1067.6392 + 40850 4.085 0.076457676 1062.7046 309.06748 -16.434404 9.9475769 -1077.5868 -1067.6392 + 40900 4.09 0.076457757 1056.9788 316.0858 -16.451775 10.173467 -1077.8127 -1067.6392 + 40950 4.095 0.076457774 1073.6105 322.63471 -16.485634 10.384248 -1078.0235 -1067.6392 + 41000 4.1 0.076457723 1102.1708 326.00311 -16.532097 10.492663 -1078.1319 -1067.6392 + 41050 4.105 0.076457742 1135.7358 323.78206 -16.572384 10.421177 -1078.0604 -1067.6392 + 41100 4.11 0.076457839 1150.9624 315.72207 -16.586201 10.16176 -1077.801 -1067.6392 + 41150 4.115 0.0764579 1133.6801 304.50129 -16.576495 9.8006105 -1077.4398 -1067.6392 + 41200 4.12 0.076457874 1106.7713 294.55355 -16.562247 9.4804346 -1077.1197 -1067.6392 + 41250 4.125 0.076457816 1077.861 288.97154 -16.546794 9.3007733 -1076.94 -1067.6392 + 41300 4.13 0.076457775 1049.8951 288.68305 -16.541043 9.2914881 -1076.9307 -1067.6392 + 41350 4.135 0.076457789 1040.6446 293.17749 -16.568222 9.4361451 -1077.0754 -1067.6392 + 41400 4.14 0.076457796 1062.3287 300.13752 -16.620751 9.660159 -1077.2994 -1067.6392 + 41450 4.145 0.076457888 1076.5853 306.09407 -16.668767 9.8518751 -1077.4911 -1067.6392 + 41500 4.15 0.076457877 1065.2199 308.61394 -16.698067 9.9329793 -1077.5722 -1067.6392 + 41550 4.155 0.076457852 1068.7881 308.03917 -16.719828 9.9144797 -1077.5537 -1067.6392 + 41600 4.16 0.07645779 1068.4578 306.44808 -16.737367 9.8632693 -1077.5025 -1067.6392 + 41650 4.165 0.076457748 1034.0147 305.80908 -16.739572 9.8427024 -1077.4819 -1067.6392 + 41700 4.17 0.076457762 999.13334 306.91055 -16.733356 9.8781543 -1077.5174 -1067.6392 + 41750 4.175 0.076457738 1002.966 308.67217 -16.740815 9.9348535 -1077.5741 -1067.6392 + 41800 4.18 0.076457662 1026.9401 309.28404 -16.76882 9.9545468 -1077.5938 -1067.6392 + 41850 4.185 0.076457785 1048.1545 308.26721 -16.803047 9.9218192 -1077.5611 -1067.6392 + 41900 4.19 0.076457896 1061.9672 306.79451 -16.828056 9.8744195 -1077.5136 -1067.6392 + 41950 4.195 0.076457788 1063.3452 305.81438 -16.838103 9.8428732 -1077.4821 -1067.6392 + 42000 4.2 0.076457653 1066.6376 305.00511 -16.838688 9.8168263 -1077.4561 -1067.6392 + 42050 4.205 0.076457619 1066.8981 303.458 -16.842064 9.7670311 -1077.4063 -1067.6392 + 42100 4.21 0.076457741 1057.308 300.62005 -16.861587 9.6756897 -1077.3149 -1067.6392 + 42150 4.215 0.076457798 1034.8812 296.98868 -16.899542 9.5588112 -1077.198 -1067.6392 + 42200 4.22 0.076457741 1006.9297 294.0721 -16.935797 9.4649389 -1077.1042 -1067.6392 + 42250 4.225 0.076457708 986.75051 293.0943 -16.947693 9.4334674 -1077.0727 -1067.6392 + 42300 4.23 0.076457808 969.75426 294.20406 -16.945858 9.4691862 -1077.1084 -1067.6392 + 42350 4.235 0.076457868 963.74596 296.59463 -16.946926 9.5461283 -1077.1854 -1067.6392 + 42400 4.24 0.076457778 979.44368 299.96439 -16.956659 9.6545866 -1077.2938 -1067.6392 + 42450 4.245 0.076457791 984.2135 304.59299 -16.974496 9.8035617 -1077.4428 -1067.6392 + 42500 4.25 0.076457854 979.70863 310.10222 -16.997517 9.9808808 -1077.6201 -1067.6392 + 42550 4.255 0.076457845 963.18828 315.17089 -17.018507 10.14402 -1077.7833 -1067.6392 + 42600 4.26 0.07645772 924.95483 318.99173 -17.029395 10.266996 -1077.9062 -1067.6392 + 42650 4.265 0.076457639 917.86112 322.34212 -17.035941 10.374831 -1078.0141 -1067.6392 + 42700 4.27 0.07645774 944.82028 325.38302 -17.047468 10.472705 -1078.1119 -1067.6392 + 42750 4.275 0.076457938 960.10214 326.61344 -17.067033 10.512307 -1078.1515 -1067.6392 + 42800 4.28 0.076458022 972.52239 325.00876 -17.091275 10.460659 -1078.0999 -1067.6392 + 42850 4.285 0.076458002 992.87865 320.17152 -17.108075 10.304969 -1077.9442 -1067.6392 + 42900 4.29 0.076457841 1006.327 311.59438 -17.103583 10.028907 -1077.6681 -1067.6392 + 42950 4.295 0.076457788 1002.2455 300.38593 -17.078254 9.6681543 -1077.3074 -1067.6392 + 43000 4.3 0.076457862 996.17457 290.24794 -17.044976 9.3418551 -1076.9811 -1067.6392 + 43050 4.305 0.076457877 1000.9547 285.54988 -17.01983 9.1906446 -1076.8299 -1067.6392 + 43100 4.31 0.076457942 988.65155 288.59122 -17.015533 9.2885325 -1076.9278 -1067.6392 + 43150 4.315 0.076457999 972.41145 298.32202 -17.033256 9.6017256 -1077.241 -1067.6392 + 43200 4.32 0.076458028 948.97512 311.09248 -17.065815 10.012753 -1077.652 -1067.6392 + 43250 4.325 0.076457935 916.82485 322.42515 -17.093329 10.377504 -1078.0167 -1067.6392 + 43300 4.33 0.076457873 899.77572 329.85568 -17.106846 10.616661 -1078.2559 -1067.6392 + 43350 4.335 0.076457929 878.86717 333.35452 -17.115682 10.729274 -1078.3685 -1067.6392 + 43400 4.34 0.076457966 874.70786 333.18911 -17.121427 10.72395 -1078.3632 -1067.6392 + 43450 4.345 0.076458006 891.26384 329.38375 -17.117357 10.601472 -1078.2407 -1067.6392 + 43500 4.35 0.076458001 898.35186 322.8122 -17.107186 10.389961 -1078.0292 -1067.6392 + 43550 4.355 0.076458013 901.74597 315.36342 -17.103127 10.150216 -1077.7894 -1067.6392 + 43600 4.36 0.076458088 926.67246 308.8075 -17.112922 9.9392091 -1077.5784 -1067.6392 + 43650 4.365 0.076458104 960.6166 303.94548 -17.140357 9.7827213 -1077.422 -1067.6392 + 43700 4.37 0.076458063 975.11769 300.59062 -17.177028 9.6747425 -1077.314 -1067.6392 + 43750 4.375 0.076458054 968.24523 298.47066 -17.207996 9.60651 -1077.2457 -1067.6392 + 43800 4.38 0.076458041 964.14007 298.09373 -17.232401 9.5943781 -1077.2336 -1067.6392 + 43850 4.385 0.076457954 965.79688 300.53579 -17.264344 9.6729776 -1077.3122 -1067.6392 + 43900 4.39 0.076457854 955.96603 305.88479 -17.306956 9.8451395 -1077.4844 -1067.6392 + 43950 4.395 0.076457896 941.12525 312.31823 -17.341534 10.052205 -1077.6914 -1067.6392 + 44000 4.4 0.076457859 938.67889 317.5795 -17.360921 10.221543 -1077.8608 -1067.6392 + 44050 4.405 0.076457719 947.63231 320.31294 -17.381896 10.309521 -1077.9488 -1067.6392 + 44100 4.41 0.076457755 969.34037 320.05455 -17.418322 10.301204 -1077.9404 -1067.6392 + 44150 4.415 0.076457877 994.80806 316.92978 -17.455307 10.200631 -1077.8399 -1067.6392 + 44200 4.42 0.076457883 994.27896 312.50804 -17.485343 10.058314 -1077.6975 -1067.6392 + 44250 4.425 0.076457773 973.05564 308.95598 -17.522396 9.943988 -1077.5832 -1067.6392 + 44300 4.43 0.076457724 951.78988 307.21327 -17.563966 9.8878976 -1077.5271 -1067.6392 + 44350 4.435 0.076457759 928.72012 308.03041 -17.602557 9.9141978 -1077.5534 -1067.6392 + 44400 4.44 0.076457834 916.44987 311.99524 -17.635148 10.041809 -1077.681 -1067.6392 + 44450 4.445 0.076457893 928.75804 317.70608 -17.652296 10.225617 -1077.8648 -1067.6392 + 44500 4.45 0.076457885 943.60516 322.59137 -17.661113 10.382853 -1078.0221 -1067.6392 + 44550 4.455 0.076457906 945.49994 325.00133 -17.680273 10.46042 -1078.0997 -1067.6392 + 44600 4.46 0.076457941 952.36178 325.6626 -17.717875 10.481703 -1078.1209 -1067.6392 + 44650 4.465 0.076457852 940.32266 326.47902 -17.757759 10.507981 -1078.1472 -1067.6392 + 44700 4.47 0.076457689 897.56364 327.57886 -17.783166 10.54338 -1078.1826 -1067.6392 + 44750 4.475 0.076457713 857.39373 327.4808 -17.804428 10.540224 -1078.1795 -1067.6392 + 44800 4.48 0.07645791 851.17923 325.52967 -17.833839 10.477425 -1078.1167 -1067.6392 + 44850 4.485 0.076458019 869.19875 322.22447 -17.859584 10.371045 -1078.0103 -1067.6392 + 44900 4.49 0.076457959 892.97974 318.64189 -17.864667 10.255737 -1077.895 -1067.6392 + 44950 4.495 0.076457921 899.76829 316.57454 -17.858322 10.189197 -1077.8284 -1067.6392 + 45000 4.5 0.07645794 879.79667 318.12269 -17.875334 10.239026 -1077.8783 -1067.6392 + 45050 4.505 0.076457864 861.6753 323.54624 -17.930753 10.413587 -1078.0528 -1067.6392 + 45100 4.51 0.076457773 868.31935 329.69269 -17.990903 10.611415 -1078.2506 -1067.6392 + 45150 4.515 0.076457818 892.5502 332.57348 -18.015322 10.704136 -1078.3434 -1067.6392 + 45200 4.52 0.076457979 934.55633 331.51408 -18.006044 10.670038 -1078.3093 -1067.6392 + 45250 4.525 0.076457934 969.26205 329.02929 -17.994029 10.590063 -1078.2293 -1067.6392 + 45300 4.53 0.076457821 986.82839 326.98424 -17.994973 10.524241 -1078.1635 -1067.6392 + 45350 4.535 0.076457878 969.0246 325.50185 -18.001111 10.47653 -1078.1158 -1067.6392 + 45400 4.54 0.076458012 949.66785 324.76289 -18.004536 10.452746 -1078.092 -1067.6392 + 45450 4.545 0.076457931 934.25079 325.87047 -18.014727 10.488394 -1078.1276 -1067.6392 + 45500 4.55 0.076457855 926.68239 328.82491 -18.026773 10.583485 -1078.2227 -1067.6392 + 45550 4.555 0.076457796 929.74295 331.7329 -18.027681 10.677081 -1078.3163 -1067.6392 + 45600 4.56 0.076457858 934.2471 332.34645 -18.020161 10.696829 -1078.3361 -1067.6392 + 45650 4.565 0.076457947 919.70747 330.09857 -18.007458 10.624479 -1078.2637 -1067.6392 + 45700 4.57 0.076457972 912.95486 326.17283 -17.995078 10.498126 -1078.1374 -1067.6392 + 45750 4.575 0.076457896 941.11127 321.60716 -17.994665 10.351176 -1077.9904 -1067.6392 + 45800 4.58 0.076457862 966.79612 317.78513 -18.009696 10.228161 -1077.8674 -1067.6392 + 45850 4.585 0.076457935 944.28578 315.85752 -18.027571 10.16612 -1077.8053 -1067.6392 + 45900 4.59 0.076458044 901.04422 316.68004 -18.043848 10.192593 -1077.8318 -1067.6392 + 45950 4.595 0.076458007 879.51756 320.93625 -18.067698 10.329582 -1077.9688 -1067.6392 + 46000 4.6 0.076457964 872.83739 327.90148 -18.094801 10.553764 -1078.193 -1067.6392 + 46050 4.605 0.076457967 876.29409 335.50363 -18.112035 10.798445 -1078.4377 -1067.6392 + 46100 4.61 0.076457881 897.82101 341.25719 -18.123994 10.983628 -1078.6229 -1067.6392 + 46150 4.615 0.076457848 917.72011 342.09311 -18.135768 11.010532 -1078.6498 -1067.6392 + 46200 4.62 0.076457904 935.79066 336.81461 -18.142721 10.84064 -1078.4799 -1067.6392 + 46250 4.625 0.07645791 958.856 329.24209 -18.153564 10.596912 -1078.2361 -1067.6392 + 46300 4.63 0.076457941 976.84674 323.74284 -18.177828 10.419914 -1078.0591 -1067.6392 + 46350 4.635 0.076457974 986.64452 321.53234 -18.208728 10.348768 -1077.988 -1067.6392 + 46400 4.64 0.076457862 996.7259 323.14828 -18.22492 10.400778 -1078.04 -1067.6392 + 46450 4.645 0.076457805 1006.0233 328.59085 -18.21408 10.575952 -1078.2152 -1067.6392 + 46500 4.65 0.076457941 1004.0925 335.85497 -18.186199 10.809753 -1078.449 -1067.6392 + 46550 4.655 0.076457976 986.50596 341.77518 -18.164044 11.0003 -1078.6395 -1067.6392 + 46600 4.66 0.076457959 977.94506 343.98758 -18.166618 11.071507 -1078.7107 -1067.6392 + 46650 4.665 0.07645792 979.65854 341.91053 -18.193889 11.004656 -1078.6439 -1067.6392 + 46700 4.67 0.07645783 995.8469 337.32643 -18.237006 10.857113 -1078.4963 -1067.6392 + 46750 4.675 0.076457742 996.88168 332.71719 -18.282271 10.708761 -1078.348 -1067.6392 + 46800 4.68 0.076457785 982.69373 328.43469 -18.306019 10.570925 -1078.2102 -1067.6392 + 46850 4.685 0.076457823 978.36015 323.5801 -18.306181 10.414677 -1078.0539 -1067.6392 + 46900 4.69 0.076457791 962.75325 318.03098 -18.3112 10.236074 -1077.8753 -1067.6392 + 46950 4.695 0.076457771 943.72644 312.62711 -18.333493 10.062146 -1077.7014 -1067.6392 + 47000 4.7 0.076457655 933.06364 309.79024 -18.359925 9.9708393 -1077.6101 -1067.6392 + 47050 4.705 0.076457527 923.63321 312.99794 -18.385002 10.074082 -1077.7133 -1067.6392 + 47100 4.71 0.076457491 918.61147 323.5351 -18.420653 10.413228 -1078.0525 -1067.6392 + 47150 4.715 0.076457637 920.24413 338.17027 -18.464512 10.884273 -1078.5235 -1067.6392 + 47200 4.72 0.076457729 914.26076 351.25395 -18.491106 11.305381 -1078.9446 -1067.6392 + 47250 4.725 0.07645769 894.45791 358.77754 -18.490423 11.547534 -1079.1868 -1067.6392 + 47300 4.73 0.076457673 866.24513 359.47999 -18.476062 11.570142 -1079.2094 -1067.6392 + 47350 4.735 0.076457644 850.87063 353.65236 -18.459228 11.382576 -1079.0218 -1067.6392 + 47400 4.74 0.07645765 861.60254 342.84162 -18.444647 11.034624 -1078.6739 -1067.6392 + 47450 4.745 0.076457629 868.52502 329.8691 -18.432312 10.617093 -1078.2563 -1067.6392 + 47500 4.75 0.076457475 874.96863 318.16288 -18.423034 10.240319 -1077.8795 -1067.6392 + 47550 4.755 0.076457461 893.70831 310.61468 -18.425459 9.9973745 -1077.6366 -1067.6392 + 47600 4.76 0.076457507 898.58686 308.29041 -18.437291 9.9225663 -1077.5618 -1067.6392 + 47650 4.765 0.076457495 906.98902 310.84197 -18.447354 10.00469 -1077.6439 -1067.6392 + 47700 4.77 0.076457476 917.08363 317.51731 -18.453233 10.219541 -1077.8588 -1067.6392 + 47750 4.775 0.07645741 913.18684 326.63525 -18.458615 10.513009 -1078.1522 -1067.6392 + 47800 4.78 0.076457341 914.30453 335.22798 -18.466228 10.789573 -1078.4288 -1067.6392 + 47850 4.785 0.076457324 930.54553 340.64884 -18.477564 10.964047 -1078.6033 -1067.6392 + 47900 4.79 0.076457362 944.82928 342.0923 -18.497904 11.010506 -1078.6497 -1067.6392 + 47950 4.795 0.076457403 948.97835 339.9758 -18.525445 10.942385 -1078.5816 -1067.6392 + 48000 4.8 0.076457478 949.55048 335.14347 -18.544304 10.786853 -1078.4261 -1067.6392 + 48050 4.805 0.076457492 934.49484 329.4616 -18.547259 10.603977 -1078.2432 -1067.6392 + 48100 4.81 0.076457483 906.2488 325.50663 -18.537762 10.476683 -1078.1159 -1067.6392 + 48150 4.815 0.076457537 907.61196 324.83016 -18.527959 10.454911 -1078.0941 -1067.6392 + 48200 4.82 0.076457521 928.41301 327.05163 -18.532299 10.526411 -1078.1656 -1067.6392 + 48250 4.825 0.076457453 941.11541 331.5379 -18.558254 10.670805 -1078.31 -1067.6392 + 48300 4.83 0.07645744 943.62955 337.63093 -18.594136 10.866914 -1078.5061 -1067.6392 + 48350 4.835 0.076457431 950.73848 343.5387 -18.62029 11.05706 -1078.6963 -1067.6392 + 48400 4.84 0.076457508 977.05827 347.46226 -18.634634 11.183342 -1078.8226 -1067.6392 + 48450 4.845 0.076457572 985.51176 349.38288 -18.652405 11.245159 -1078.8844 -1067.6392 + 48500 4.85 0.0764575 966.51991 350.00883 -18.680976 11.265306 -1078.9045 -1067.6392 + 48550 4.855 0.076457449 952.81522 348.84984 -18.705088 11.228003 -1078.8672 -1067.6392 + 48600 4.86 0.07645757 956.4504 345.07299 -18.706134 11.106442 -1078.7457 -1067.6392 + 48650 4.865 0.076457648 962.27213 339.6091 -18.687227 10.930583 -1078.5698 -1067.6392 + 48700 4.87 0.076457531 951.28586 335.48047 -18.675207 10.797699 -1078.4369 -1067.6392 + 48750 4.875 0.076457622 939.27346 335.37698 -18.691822 10.794368 -1078.4336 -1067.6392 + 48800 4.88 0.07645763 929.93644 338.62392 -18.723472 10.898874 -1078.5381 -1067.6392 + 48850 4.885 0.07645746 927.0018 341.61788 -18.739309 10.995236 -1078.6345 -1067.6392 + 48900 4.89 0.076457454 933.2133 341.45716 -18.734537 10.990064 -1078.6293 -1067.6392 + 48950 4.895 0.076457525 927.17347 338.03446 -18.732333 10.879901 -1078.5191 -1067.6392 + 49000 4.9 0.076457565 934.00454 333.29208 -18.749493 10.727264 -1078.3665 -1067.6392 + 49050 4.905 0.076457546 946.42674 329.88244 -18.783172 10.617522 -1078.2568 -1067.6392 + 49100 4.91 0.076457456 953.85036 329.62056 -18.816988 10.609094 -1078.2483 -1067.6392 + 49150 4.915 0.076457497 981.62511 332.41677 -18.829947 10.699092 -1078.3383 -1067.6392 + 49200 4.92 0.076457502 1010.935 336.90702 -18.819016 10.843614 -1078.4828 -1067.6392 + 49250 4.925 0.076457418 1025.5157 341.57069 -18.807495 10.993718 -1078.6329 -1067.6392 + 49300 4.93 0.076457502 1027.8193 344.89678 -18.811783 11.100771 -1078.74 -1067.6392 + 49350 4.935 0.076457543 1020.505 345.48293 -18.816811 11.119636 -1078.7589 -1067.6392 + 49400 4.94 0.076457478 1016.2039 342.92093 -18.803277 11.037176 -1078.6764 -1067.6392 + 49450 4.945 0.07645749 1018.2955 337.76884 -18.778837 10.871352 -1078.5106 -1067.6392 + 49500 4.95 0.07645759 1012.1553 330.63853 -18.761954 10.641858 -1078.2811 -1067.6392 + 49550 4.955 0.076457651 985.5222 322.69351 -18.765732 10.386141 -1078.0254 -1067.6392 + 49600 4.96 0.076457607 966.22788 316.25074 -18.798665 10.178775 -1077.818 -1067.6392 + 49650 4.965 0.076457494 961.04675 313.18195 -18.839015 10.080004 -1077.7192 -1067.6392 + 49700 4.97 0.076457431 960.65868 314.4735 -18.863274 10.121574 -1077.7608 -1067.6392 + 49750 4.975 0.076457515 966.54445 320.68235 -18.880959 10.32141 -1077.9606 -1067.6392 + 49800 4.98 0.076457498 965.47876 331.30789 -18.90627 10.663401 -1078.3026 -1067.6392 + 49850 4.985 0.076457382 964.05595 343.93887 -18.938996 11.069939 -1078.7092 -1067.6392 + 49900 4.99 0.076457357 944.93024 354.89734 -18.970612 11.422646 -1079.0619 -1067.6392 + 49950 4.995 0.076457532 918.77322 361.48317 -18.987516 11.634616 -1079.2739 -1067.6392 + 50000 5 0.07645762 900.51128 363.08297 -18.994661 11.686107 -1079.3253 -1067.6392 +Loop time of 52.5523 on 4 procs for 50000 steps with 250 atoms + +Performance: 8.220 ns/day, 2.920 hours/ns, 951.434 timesteps/s +94.1% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 10.242 | 10.478 | 10.799 | 6.3 | 19.94 +Neigh | 0.10368 | 0.10776 | 0.11329 | 1.1 | 0.21 +Comm | 2.4492 | 2.7097 | 2.8852 | 11.0 | 5.16 +Output | 5.5737 | 5.9107 | 6.2742 | 11.8 | 11.25 +Modify | 32.833 | 33.256 | 33.661 | 5.2 | 63.28 +Other | | 0.09063 | | | 0.17 + +Nlocal: 62.5 ave 66 max 57 min +Histogram: 1 0 0 0 0 1 0 0 1 1 +Nghost: 772 ave 785 max 755 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Neighs: 1931 ave 2025 max 1751 min +Histogram: 1 0 0 0 0 0 1 0 0 2 +FullNghs: 3862 ave 4082 max 3518 min +Histogram: 1 0 0 0 0 1 0 0 1 1 + +Total # of neighbors = 15448 +Ave neighs/atom = 61.792 +Neighbor list builds = 614 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:52 diff --git a/examples/SPIN/nickel/in.spin.nickel b/examples/SPIN/nickel/in.spin.nickel index 2fa16b8a1b..ba447b077f 100644 --- a/examples/SPIN/nickel/in.spin.nickel +++ b/examples/SPIN/nickel/in.spin.nickel @@ -24,7 +24,7 @@ set group all spin/random 31 0.63 velocity all create 100 4928459 rot yes dist gaussian pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/nickel/Ni99.eam.alloy Ni +pair_coeff * * eam/alloy Ni99.eam.alloy Ni pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 neighbor 0.1 bin diff --git a/examples/SPIN/nickel/log.11May18.spin.nickel.g++.1 b/examples/SPIN/nickel/log.11May18.spin.nickel.g++.1 new file mode 100644 index 0000000000..82f54f4e6b --- /dev/null +++ b/examples/SPIN/nickel/log.11May18.spin.nickel.g++.1 @@ -0,0 +1,157 @@ +LAMMPS (11 May 2018) +# fcc nickel in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.524 +Lattice spacing in x,y,z = 3.524 3.524 3.524 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (17.62 17.62 17.62) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000804186 secs + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.69 + +set group all spin/random 31 0.63 + 500 settings made for spin/random +#set group all spin 0.63 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Ni99.eam.alloy Ni +pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# compute and output options + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_emag temp v_tmag etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 50 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 2000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.90375 + ghost atom cutoff = 5.90375 + binsize = 2.95187, bins = 6 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.384 | 7.384 | 7.384 Mbytes +Step Time v_magnorm v_emag Temp v_tmag TotEng + 0 0 0.028733803 0.40997576 100.03408 -9550.1342 -2218.1018 + 50 0.005 0.028733807 0.070491717 101.47879 -56307.038 -2218.1018 + 100 0.01 0.028733815 -0.70937134 101.7311 5851.6355 -2218.1018 + 150 0.015 0.028733823 -1.853981 99.63039 2395.8677 -2218.1018 + 200 0.02 0.028733828 -3.2679239 94.850105 1482.3486 -2218.1018 + 250 0.025 0.028733824 -4.863967 88.444584 1100.7396 -2218.1018 + 300 0.03 0.028733807 -6.5763457 82.689581 899.56642 -2218.1018 + 350 0.035 0.028733783 -8.3489158 80.108798 768.64457 -2218.1018 + 400 0.04 0.028733763 -10.120216 82.374947 670.03091 -2218.1018 + 450 0.045 0.028733755 -11.828932 89.814597 593.77931 -2218.1018 + 500 0.05 0.028733762 -13.423712 101.39613 535.03371 -2218.1018 + 550 0.055 0.028733783 -14.866724 115.07399 489.92024 -2218.1018 + 600 0.06 0.028733801 -16.135279 128.57849 458.66654 -2218.1018 + 650 0.065 0.028733804 -17.222838 140.22402 440.11437 -2218.1018 + 700 0.07 0.028733795 -18.154813 149.61295 425.91356 -2218.1018 + 750 0.075 0.028733781 -18.996903 157.5814 412.82654 -2218.1018 + 800 0.08 0.028733768 -19.804249 164.92075 407.77954 -2218.1018 + 850 0.085 0.028733752 -20.579151 171.67278 406.84726 -2218.1018 + 900 0.09 0.028733728 -21.294277 177.67238 399.69633 -2218.1018 + 950 0.095 0.028733715 -21.943945 183.2621 389.92281 -2218.1018 + 1000 0.1 0.02873374 -22.551277 188.99284 383.19592 -2218.1018 + 1050 0.105 0.028733783 -23.120147 194.51391 375.87245 -2218.1018 + 1100 0.11 0.028733792 -23.602325 198.18631 365.37753 -2218.1018 + 1150 0.115 0.028733774 -23.976048 199.04022 354.04863 -2218.1018 + 1200 0.12 0.02873376 -24.31575 198.41999 346.40397 -2218.1018 + 1250 0.125 0.028733759 -24.718347 198.3669 343.1701 -2218.1018 + 1300 0.13 0.028733765 -25.189073 199.57949 336.90052 -2218.1018 + 1350 0.135 0.028733774 -25.650252 201.45897 329.07023 -2218.1018 + 1400 0.14 0.028733785 -26.042702 203.6926 327.97373 -2218.1018 + 1450 0.145 0.028733791 -26.373965 206.80469 327.38747 -2218.1018 + 1500 0.15 0.028733791 -26.691802 211.43923 322.75885 -2218.1018 + 1550 0.155 0.028733794 -27.021573 217.10969 315.55781 -2218.1018 + 1600 0.16 0.028733792 -27.344066 222.16052 310.6743 -2218.1018 + 1650 0.165 0.028733788 -27.640017 225.28449 310.49671 -2218.1018 + 1700 0.17 0.028733803 -27.907241 226.37676 310.9389 -2218.1018 + 1750 0.175 0.028733828 -28.143477 226.31095 313.28034 -2218.1018 + 1800 0.18 0.028733833 -28.363397 226.43633 317.31668 -2218.1018 + 1850 0.185 0.028733811 -28.58153 227.36287 318.98645 -2218.1018 + 1900 0.19 0.028733796 -28.785208 228.39889 316.9972 -2218.1018 + 1950 0.195 0.028733826 -28.9724 228.84666 309.8027 -2218.1018 + 2000 0.2 0.02873386 -29.175039 228.918 297.88519 -2218.1018 +Loop time of 10.033 on 1 procs for 2000 steps with 500 atoms + +Performance: 1.722 ns/day, 13.935 hours/ns, 199.342 timesteps/s +99.4% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.909 | 3.909 | 3.909 | 0.0 | 38.96 +Neigh | 0.031031 | 0.031031 | 0.031031 | 0.0 | 0.31 +Comm | 0.046559 | 0.046559 | 0.046559 | 0.0 | 0.46 +Output | 2.4087 | 2.4087 | 2.4087 | 0.0 | 24.01 +Modify | 3.625 | 3.625 | 3.625 | 0.0 | 36.13 +Other | | 0.01268 | | | 0.13 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19508 ave 19508 max 19508 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 39016 ave 39016 max 39016 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 39016 +Ave neighs/atom = 78.032 +Neighbor list builds = 21 +Dangerous builds = 0 + + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:10 diff --git a/examples/SPIN/nickel/log.11May18.spin.nickel.g++.4 b/examples/SPIN/nickel/log.11May18.spin.nickel.g++.4 new file mode 100644 index 0000000000..373271459f --- /dev/null +++ b/examples/SPIN/nickel/log.11May18.spin.nickel.g++.4 @@ -0,0 +1,157 @@ +LAMMPS (11 May 2018) +# fcc nickel in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.524 +Lattice spacing in x,y,z = 3.524 3.524 3.524 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (17.62 17.62 17.62) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000523567 secs + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.69 + +set group all spin/random 31 0.63 + 500 settings made for spin/random +#set group all spin 0.63 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Ni99.eam.alloy Ni +pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# compute and output options + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_emag temp v_tmag etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 50 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 2000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.90375 + ghost atom cutoff = 5.90375 + binsize = 2.95187, bins = 6 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.298 | 7.298 | 7.298 Mbytes +Step Time v_magnorm v_emag Temp v_tmag TotEng + 0 0 0.028733803 0.40997576 100.03408 -9550.1342 -2218.1018 + 50 0.005 0.028733805 0.25324083 98.741633 -15727.749 -2218.1018 + 100 0.01 0.028733812 -0.37320751 97.073875 11244.373 -2218.1018 + 150 0.015 0.028733819 -1.3971549 94.073447 3250.0517 -2218.1018 + 200 0.02 0.028733825 -2.7238372 89.419944 1838.752 -2218.1018 + 250 0.025 0.028733829 -4.2684428 84.07494 1304.3675 -2218.1018 + 300 0.03 0.028733824 -5.9636712 80.06368 1025.7815 -2218.1018 + 350 0.035 0.02873381 -7.7386326 79.366702 844.49729 -2218.1018 + 400 0.04 0.028733802 -9.5148059 83.052751 715.20758 -2218.1018 + 450 0.045 0.028733806 -11.234935 91.282747 621.75552 -2218.1018 + 500 0.05 0.02873381 -12.875184 103.49836 550.04479 -2218.1018 + 550 0.055 0.028733808 -14.413473 118.16526 495.70417 -2218.1018 + 600 0.06 0.028733803 -15.812466 132.83837 461.35805 -2218.1018 + 650 0.065 0.028733808 -17.061311 145.41049 444.38951 -2218.1018 + 700 0.07 0.028733818 -18.181903 154.83414 438.85866 -2218.1018 + 750 0.075 0.028733823 -19.176259 160.58645 436.90462 -2218.1018 + 800 0.08 0.028733825 -20.035157 163.02829 429.73193 -2218.1018 + 850 0.085 0.028733825 -20.806548 164.4197 419.73763 -2218.1018 + 900 0.09 0.028733829 -21.571419 167.8571 411.59699 -2218.1018 + 950 0.095 0.028733825 -22.365879 175.00875 402.66175 -2218.1018 + 1000 0.1 0.028733821 -23.133464 184.68305 391.05824 -2218.1018 + 1050 0.105 0.028733833 -23.770507 193.83795 379.23354 -2218.1018 + 1100 0.11 0.02873385 -24.249882 200.5039 372.08521 -2218.1018 + 1150 0.115 0.028733864 -24.630489 204.46984 367.92135 -2218.1018 + 1200 0.12 0.028733877 -24.956281 205.96624 363.72367 -2218.1018 + 1250 0.125 0.028733884 -25.227332 205.18503 361.09236 -2218.1018 + 1300 0.13 0.028733877 -25.43568 202.76969 359.10924 -2218.1018 + 1350 0.135 0.028733868 -25.588748 199.85462 358.69556 -2218.1018 + 1400 0.14 0.028733866 -25.723582 197.99165 360.27856 -2218.1018 + 1450 0.145 0.028733851 -25.866283 198.30283 360.46623 -2218.1018 + 1500 0.15 0.028733812 -26.014569 200.95517 354.66722 -2218.1018 + 1550 0.155 0.02873379 -26.192673 205.95485 348.37935 -2218.1018 + 1600 0.16 0.028733795 -26.444059 212.87557 345.53576 -2218.1018 + 1650 0.165 0.028733838 -26.75551 219.86449 338.9224 -2218.1018 + 1700 0.17 0.028733868 -27.068513 224.47868 327.81241 -2218.1018 + 1750 0.175 0.028733862 -27.344118 225.62318 319.85486 -2218.1018 + 1800 0.18 0.028733849 -27.57563 224.07463 320.07064 -2218.1018 + 1850 0.185 0.028733852 -27.774274 221.70618 323.12599 -2218.1018 + 1900 0.19 0.028733864 -27.967999 220.53947 322.9504 -2218.1018 + 1950 0.195 0.028733863 -28.173041 221.61407 318.63401 -2218.1018 + 2000 0.2 0.028733853 -28.362177 224.22281 310.55185 -2218.1018 +Loop time of 3.95094 on 4 procs for 2000 steps with 500 atoms + +Performance: 4.374 ns/day, 5.487 hours/ns, 506.208 timesteps/s +98.1% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.0289 | 1.0467 | 1.0811 | 2.0 | 26.49 +Neigh | 0.0079527 | 0.0081946 | 0.0084369 | 0.2 | 0.21 +Comm | 0.094456 | 0.13311 | 0.15138 | 6.2 | 3.37 +Output | 0.69702 | 0.71998 | 0.74483 | 2.1 | 18.22 +Modify | 2.0107 | 2.0383 | 2.0598 | 1.3 | 51.59 +Other | | 0.004668 | | | 0.12 + +Nlocal: 125 ave 132 max 120 min +Histogram: 2 0 0 0 0 1 0 0 0 1 +Nghost: 1099 ave 1104 max 1092 min +Histogram: 1 0 0 0 1 0 0 0 0 2 +Neighs: 4876.5 ave 5100 max 4721 min +Histogram: 2 0 0 0 0 1 0 0 0 1 +FullNghs: 9753 ave 10296 max 9362 min +Histogram: 2 0 0 0 0 1 0 0 0 1 + +Total # of neighbors = 39012 +Ave neighs/atom = 78.024 +Neighbor list builds = 21 +Dangerous builds = 0 + + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:04 diff --git a/examples/SPIN/read_restart/in.spin.read_data b/examples/SPIN/read_restart/in.spin.read_data index 88a2dc7f0a..80de036661 100644 --- a/examples/SPIN/read_restart/in.spin.read_data +++ b/examples/SPIN/read_restart/in.spin.read_data @@ -6,12 +6,12 @@ atom_style spin # necessary for the serial algorithm (sametag) atom_modify map array -read_data ../examples/SPIN/read_restart/Norm_randXY_8x8x32.data +read_data Norm_randXY_8x8x32.data mass 1 58.93 pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 1.0 bin diff --git a/examples/SPIN/read_restart/in.spin.restart b/examples/SPIN/read_restart/in.spin.restart index f44616ca42..a1198ccf93 100644 --- a/examples/SPIN/read_restart/in.spin.restart +++ b/examples/SPIN/read_restart/in.spin.restart @@ -15,7 +15,7 @@ read_restart restart_hcp_cobalt.equil mass 1 58.93 pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 neighbor 1.0 bin diff --git a/examples/SPIN/read_restart/log.11May18.spin.read_data.g++.1 b/examples/SPIN/read_restart/log.11May18.spin.read_data.g++.1 new file mode 100644 index 0000000000..405be50bd9 --- /dev/null +++ b/examples/SPIN/read_restart/log.11May18.spin.read_data.g++.1 @@ -0,0 +1,112 @@ +LAMMPS (11 May 2018) +units metal +dimension 3 +boundary p p p + +atom_style spin + +# necessary for the serial algorithm (sametag) +atom_modify map array +read_data Norm_randXY_8x8x32.data + orthogonal box = (0 0 0) to (28.32 28.32 113.28) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8192 atoms + +mass 1 58.93 + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 + +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# define outputs and computes + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo 10 +thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo_modify format float %20.15g + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 10 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 100 +Neighbor list info ... + update every 1 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7.49954 + ghost atom cutoff = 7.49954 + binsize = 3.74977, bins = 8 8 31 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 18.68 | 18.68 | 18.68 Mbytes +Step Time v_magnorm v_emag v_tmag Temp TotEng + 0 0 0.980832325249102 -2984.9466433509 51.7121203365409 0 -38881.8459242429 + 10 0.001 0.980832325038224 -2984.94800197308 52.2550760237226 0.00128259392155095 -38881.8459243688 + 20 0.002 0.980832322622779 -2984.95196908579 53.4253029071033 0.0050206854169363 -38881.8459246487 + 30 0.003 0.980832317889283 -2984.95826684048 55.1488791221993 0.0109316238061975 -38881.8459250502 + 40 0.004 0.980832310888481 -2984.96649810512 57.3217709603901 0.0186091353316915 -38881.8459255204 + 50 0.005 0.980832301939686 -2984.97619813381 59.8271487572311 0.0275752699737783 -38881.8459260027 + 60 0.006 0.980832291654664 -2984.98688847988 62.5518654049861 0.0373348857300743 -38881.8459264498 + 70 0.007 0.980832280861627 -2984.99812400566 65.3978892661935 0.0474235455824994 -38881.845926824 + 80 0.008 0.980832270462785 -2985.00952679611 68.286219599829 0.0574425858114516 -38881.8459271072 + 90 0.009 0.980832261284587 -2985.02080458573 71.1539714621652 0.0670788260497413 -38881.8459272915 + 100 0.01 0.980832253960703 -2985.03175506188 73.9486358176052 0.0761100787140068 -38881.8459273845 +Loop time of 12.4286 on 1 procs for 100 steps with 8192 atoms + +Performance: 0.070 ns/day, 345.239 hours/ns, 8.046 timesteps/s +99.6% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.0123 | 4.0123 | 4.0123 | 0.0 | 32.28 +Neigh | 3.005 | 3.005 | 3.005 | 0.0 | 24.18 +Comm | 0.041798 | 0.041798 | 0.041798 | 0.0 | 0.34 +Output | 1.8465 | 1.8465 | 1.8465 | 0.0 | 14.86 +Modify | 3.5157 | 3.5157 | 3.5157 | 0.0 | 28.29 +Other | | 0.007261 | | | 0.06 + +Nlocal: 8192 ave 8192 max 8192 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 14621 ave 14621 max 14621 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 573440 ave 573440 max 573440 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 1.14688e+06 ave 1.14688e+06 max 1.14688e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 1146880 +Ave neighs/atom = 140 +Neighbor list builds = 100 +Dangerous builds not checked + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:12 diff --git a/examples/SPIN/read_restart/log.11May18.spin.read_data.g++.4 b/examples/SPIN/read_restart/log.11May18.spin.read_data.g++.4 new file mode 100644 index 0000000000..56fed35307 --- /dev/null +++ b/examples/SPIN/read_restart/log.11May18.spin.read_data.g++.4 @@ -0,0 +1,112 @@ +LAMMPS (11 May 2018) +units metal +dimension 3 +boundary p p p + +atom_style spin + +# necessary for the serial algorithm (sametag) +atom_modify map array +read_data Norm_randXY_8x8x32.data + orthogonal box = (0 0 0) to (28.32 28.32 113.28) + 1 by 1 by 4 MPI processor grid + reading atoms ... + 8192 atoms + +mass 1 58.93 + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 + +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# define outputs and computes + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo 10 +thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo_modify format float %20.15g + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 10 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 100 +Neighbor list info ... + update every 1 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7.49954 + ghost atom cutoff = 7.49954 + binsize = 3.74977, bins = 8 8 31 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.883 | 7.994 | 8.25 Mbytes +Step Time v_magnorm v_emag v_tmag Temp TotEng + 0 0 0.980832325249103 -2984.9466433509 51.7121203365411 0 -38881.8459242507 + 10 0.001 0.980832325329477 -2984.94800197307 52.2550778515409 0.00128259391683994 -38881.8459243698 + 20 0.002 0.980832324654401 -2984.95196908569 53.4253110612179 0.00502068532291255 -38881.8459246487 + 30 0.003 0.98083232312993 -2984.95826683995 55.148898005011 0.0109316232931419 -38881.84592505 + 40 0.004 0.980832320808156 -2984.9664981035 57.3218040934977 0.0186091337978305 -38881.8459255198 + 50 0.005 0.980832317596783 -2984.97619813016 59.827198436387 0.0275752665472358 -38881.8459260035 + 60 0.006 0.980832313514709 -2984.98688847322 62.5519331668858 0.037334879488755 -38881.84592645 + 70 0.007 0.980832309220414 -2984.99812399537 65.3979760533737 0.0474235360022736 -38881.8459268243 + 80 0.008 0.980832304490479 -2985.00952678209 68.2863250613635 0.0574425728014485 -38881.8459271068 + 90 0.009 0.980832299379824 -2985.02080456789 71.1540940309591 0.0670788096168283 -38881.8459272917 + 100 0.01 0.980832294622694 -2985.03175503971 73.9487734241296 0.0761100584457276 -38881.8459273851 +Loop time of 3.6612 on 4 procs for 100 steps with 8192 atoms + +Performance: 0.236 ns/day, 101.700 hours/ns, 27.313 timesteps/s +98.8% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.0622 | 1.076 | 1.0936 | 1.1 | 29.39 +Neigh | 0.77462 | 0.79542 | 0.81798 | 1.9 | 21.73 +Comm | 0.024701 | 0.066122 | 0.10261 | 11.1 | 1.81 +Output | 0.50304 | 0.51253 | 0.52111 | 0.9 | 14.00 +Modify | 1.2006 | 1.2082 | 1.2205 | 0.7 | 33.00 +Other | | 0.002962 | | | 0.08 + +Nlocal: 2048 ave 2095 max 1981 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Nghost: 5765 ave 5832 max 5718 min +Histogram: 1 0 0 2 0 0 0 0 0 1 +Neighs: 143360 ave 146361 max 139058 min +Histogram: 1 0 0 0 0 0 1 1 0 1 +FullNghs: 286720 ave 293300 max 277340 min +Histogram: 1 0 0 0 0 0 2 0 0 1 + +Total # of neighbors = 1146880 +Ave neighs/atom = 140 +Neighbor list builds = 100 +Dangerous builds not checked + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:03 diff --git a/examples/SPIN/read_restart/log.11May18.spin.restart.g++.1 b/examples/SPIN/read_restart/log.11May18.spin.restart.g++.1 new file mode 100644 index 0000000000..16eb7c3f5e --- /dev/null +++ b/examples/SPIN/read_restart/log.11May18.spin.restart.g++.1 @@ -0,0 +1,117 @@ +LAMMPS (11 May 2018) +# start a spin-lattice simulation from a data file +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +read_restart restart_hcp_cobalt.equil + restoring atom style spin from restart + orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) + 1 by 1 by 1 MPI processor grid + restoring pair style spin/exchange from restart + 500 atoms + +# setting mass, mag. moments, and interactions + +mass 1 58.93 + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 + +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# define outputs + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo 10 +thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo_modify format float %20.15g + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 100 +Neighbor list info ... + update every 1 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7.49954 + ghost atom cutoff = 7.49954 + binsize = 3.74977, bins = 4 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.315 | 6.315 | 6.315 Mbytes +Step Time v_magnorm v_emag v_tmag Temp TotEng + 1000 0 0.106120063678768 -11.8110267448938 5244.87332482316 0 -2206.81097898043 + 1010 0.001 0.106120047478105 -11.8198467887534 5263.87502105137 0.136650312456579 -2206.81097929055 + 1020 0.002 0.106120026430373 -11.8460960518731 5267.29822866382 0.542282409605327 -2206.81098022997 + 1030 0.003 0.106120005015917 -11.8891434078861 5252.95323564256 1.204018338139 -2206.81098172551 + 1040 0.004 0.106119988532653 -11.9479778701641 5220.88508622311 2.10120884995911 -2206.81098371047 + 1050 0.005 0.10611998133687 -12.021242685853 5172.58549378915 3.20622445795757 -2206.81098610701 + 1060 0.006 0.10611998489458 -12.107271344148 5110.57395203849 4.48535975411235 -2206.81098879725 + 1070 0.007 0.106119996964771 -12.204156761765 5038.48903231346 5.9003121044977 -2206.81099161183 + 1080 0.008 0.106120013042521 -12.3098695046152 4961.0327167967 7.4104497466856 -2206.81099434653 + 1090 0.009 0.106120029236234 -12.4224157835754 4883.3210922213 8.97568980540163 -2206.81099680117 + 1100 0.01 0.106120044071404 -12.5400036896932 4809.88136080052 10.559459821976 -2206.81099883104 +Loop time of 0.833234 on 1 procs for 100 steps with 500 atoms + +Performance: 1.037 ns/day, 23.145 hours/ns, 120.014 timesteps/s +99.7% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.26558 | 0.26558 | 0.26558 | 0.0 | 31.87 +Neigh | 0.21352 | 0.21352 | 0.21352 | 0.0 | 25.62 +Comm | 0.0057988 | 0.0057988 | 0.0057988 | 0.0 | 0.70 +Output | 0.12463 | 0.12463 | 0.12463 | 0.0 | 14.96 +Modify | 0.22275 | 0.22275 | 0.22275 | 0.0 | 26.73 +Other | | 0.0009537 | | | 0.11 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 2534 ave 2534 max 2534 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 36500 ave 36500 max 36500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 73000 ave 73000 max 73000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 73000 +Ave neighs/atom = 146 +Neighbor list builds = 100 +Dangerous builds not checked + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:00 diff --git a/examples/SPIN/read_restart/log.11May18.spin.restart.g++.4 b/examples/SPIN/read_restart/log.11May18.spin.restart.g++.4 new file mode 100644 index 0000000000..f93605a10a --- /dev/null +++ b/examples/SPIN/read_restart/log.11May18.spin.restart.g++.4 @@ -0,0 +1,118 @@ +LAMMPS (11 May 2018) +# start a spin-lattice simulation from a data file +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +read_restart restart_hcp_cobalt.equil +WARNING: Restart file used different # of processors (../read_restart.cpp:723) + restoring atom style spin from restart + orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) + 1 by 2 by 2 MPI processor grid + restoring pair style spin/exchange from restart + 500 atoms + +# setting mass, mag. moments, and interactions + +mass 1 58.93 + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 + +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice yes +timestep 0.0001 + +# define outputs + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo 10 +thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo_modify format float %20.15g + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 100 +Neighbor list info ... + update every 1 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7.49954 + ghost atom cutoff = 7.49954 + binsize = 3.74977, bins = 4 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.203 | 6.203 | 6.203 Mbytes +Step Time v_magnorm v_emag v_tmag Temp TotEng + 1000 0 0.106120063678768 -11.8110267448939 5244.87332482316 0 -2206.81097898003 + 1010 0.001 0.106120030254187 -11.8198467883806 5263.87550015043 0.136650306637598 -2206.81097929055 + 1020 0.002 0.106119996655714 -11.8460960476455 5267.299198699 0.542282344092749 -2206.81098022997 + 1030 0.003 0.106119967407682 -11.8891433919665 5252.95473019843 1.20401809237154 -2206.81098172552 + 1040 0.004 0.106119960016585 -11.9479778326021 5220.88686874944 2.10120827278397 -2206.81098371049 + 1050 0.005 0.106119961252471 -12.0212426191481 5172.58712301374 3.20622343988728 -2206.81098610703 + 1060 0.006 0.106119967598995 -12.1072712483404 5110.57504803718 4.48535830705751 -2206.81098879724 + 1070 0.007 0.106119967669058 -12.2041566468564 5038.48927079832 5.90031039867811 -2206.81099161179 + 1080 0.008 0.106119969263395 -12.3098693905406 4961.03212459716 7.41044810751949 -2206.8109943465 + 1090 0.009 0.106119960964075 -12.4224156966204 4883.31968289062 8.97568865379831 -2206.81099680112 + 1100 0.01 0.106119945605273 -12.5400036591612 4809.87930844463 10.5594596175303 -2206.81099883101 +Loop time of 0.304678 on 4 procs for 100 steps with 500 atoms + +Performance: 2.836 ns/day, 8.463 hours/ns, 328.215 timesteps/s +98.0% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.071445 | 0.073018 | 0.074151 | 0.4 | 23.97 +Neigh | 0.054448 | 0.055709 | 0.057528 | 0.5 | 18.28 +Comm | 0.0061178 | 0.0074609 | 0.0090766 | 1.2 | 2.45 +Output | 0.037489 | 0.038586 | 0.039952 | 0.5 | 12.66 +Modify | 0.12826 | 0.12954 | 0.13065 | 0.3 | 42.52 +Other | | 0.0003686 | | | 0.12 + +Nlocal: 125 ave 129 max 120 min +Histogram: 1 0 0 0 1 0 0 1 0 1 +Nghost: 1387 ave 1392 max 1383 min +Histogram: 1 0 1 0 0 1 0 0 0 1 +Neighs: 9125 ave 9428 max 8740 min +Histogram: 1 0 0 1 0 0 0 0 1 1 +FullNghs: 18250 ave 18834 max 17520 min +Histogram: 1 0 0 0 1 0 0 1 0 1 + +Total # of neighbors = 73000 +Ave neighs/atom = 146 +Neighbor list builds = 100 +Dangerous builds not checked + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:00 diff --git a/examples/SPIN/read_restart/log.11May18.spin.write_restart.g++.1 b/examples/SPIN/read_restart/log.11May18.spin.write_restart.g++.1 new file mode 100644 index 0000000000..c3be90cb50 --- /dev/null +++ b/examples/SPIN/read_restart/log.11May18.spin.write_restart.g++.1 @@ -0,0 +1,119 @@ +LAMMPS (11 May 2018) +# fcc cobalt in a 3d periodic box + +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice hcp 2.5071 +Lattice spacing in x,y,z = 2.5071 4.34242 4.09408 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.00027585 secs + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.93 + +set group all spin/random 31 1.72 + 500 settings made for spin/random + +pair_style spin/exchange 4.0 +pair_coeff * * exchange 4.0 0.3593 1.135028015e-05 1.064568567 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 100.0 0.01 21 + +fix 3 all nve/spin lattice no +timestep 0.0001 + +# compute and output options + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_emag temp etotal +thermo 100 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.1 + ghost atom cutoff = 4.1 + binsize = 2.05, bins = 7 11 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.446 | 6.446 | 6.446 Mbytes +Step Time v_magnorm v_emag Temp TotEng + 0 0 0.076558814 1.7982359 0 1.7982359 + 100 0.01 0.079107243 0.56368447 0 0.56368447 + 200 0.02 0.08225862 -0.42421042 0 -0.42421042 + 300 0.03 0.08397714 -1.4964948 0 -1.4964948 + 400 0.04 0.084704989 -2.6740652 0 -2.6740652 + 500 0.05 0.087486342 -4.2043382 0 -4.2043382 + 600 0.06 0.09187261 -5.6687169 0 -5.6687169 + 700 0.07 0.096925249 -6.937499 0 -6.937499 + 800 0.08 0.098988236 -8.2456715 0 -8.2456715 + 900 0.09 0.10434092 -10.111953 0 -10.111953 + 1000 0.1 0.10612006 -11.811027 0 -11.811027 +Loop time of 2.60215 on 1 procs for 1000 steps with 500 atoms + +Performance: 3.320 ns/day, 7.228 hours/ns, 384.297 timesteps/s +99.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.35178 | 0.35178 | 0.35178 | 0.0 | 13.52 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.014421 | 0.014421 | 0.014421 | 0.0 | 0.55 +Output | 1.2046 | 1.2046 | 1.2046 | 0.0 | 46.29 +Modify | 1.0274 | 1.0274 | 1.0274 | 0.0 | 39.48 +Other | | 0.004006 | | | 0.15 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1221 ave 1221 max 1221 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 10000 ave 10000 max 10000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 10000 +Ave neighs/atom = 20 +Neighbor list builds = 0 +Dangerous builds = 0 +write_restart restart_hcp_cobalt.equil + + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:02 diff --git a/examples/SPIN/read_restart/log.11May18.spin.write_restart.g++.4 b/examples/SPIN/read_restart/log.11May18.spin.write_restart.g++.4 new file mode 100644 index 0000000000..e54299b9dd --- /dev/null +++ b/examples/SPIN/read_restart/log.11May18.spin.write_restart.g++.4 @@ -0,0 +1,119 @@ +LAMMPS (11 May 2018) +# fcc cobalt in a 3d periodic box + +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice hcp 2.5071 +Lattice spacing in x,y,z = 2.5071 4.34242 4.09408 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000257969 secs + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.93 + +set group all spin/random 31 1.72 + 500 settings made for spin/random + +pair_style spin/exchange 4.0 +pair_coeff * * exchange 4.0 0.3593 1.135028015e-05 1.064568567 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 100.0 0.01 21 + +fix 3 all nve/spin lattice no +timestep 0.0001 + +# compute and output options + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_emag temp etotal +thermo 100 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.1 + ghost atom cutoff = 4.1 + binsize = 2.05, bins = 7 11 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.367 | 6.367 | 6.367 Mbytes +Step Time v_magnorm v_emag Temp TotEng + 0 0 0.076558814 1.7982359 0 1.7982359 + 100 0.01 0.081414414 0.70545723 0 0.70545723 + 200 0.02 0.084519539 -0.33171078 0 -0.33171078 + 300 0.03 0.089334139 -1.3988283 0 -1.3988283 + 400 0.04 0.092873722 -2.8519371 0 -2.8519371 + 500 0.05 0.0970839 -4.1531164 0 -4.1531164 + 600 0.06 0.099626132 -5.7993765 0 -5.7993765 + 700 0.07 0.10467169 -7.3011333 0 -7.3011333 + 800 0.08 0.10893493 -8.6918141 0 -8.6918141 + 900 0.09 0.11389657 -10.236174 0 -10.236174 + 1000 0.1 0.1180057 -11.896933 0 -11.896933 +Loop time of 1.05012 on 4 procs for 1000 steps with 500 atoms + +Performance: 8.228 ns/day, 2.917 hours/ns, 952.272 timesteps/s +98.1% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.08972 | 0.090456 | 0.091872 | 0.3 | 8.61 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.016958 | 0.018047 | 0.019791 | 0.8 | 1.72 +Output | 0.36286 | 0.37483 | 0.38975 | 1.6 | 35.69 +Modify | 0.55131 | 0.56541 | 0.57702 | 1.3 | 53.84 +Other | | 0.001374 | | | 0.13 + +Nlocal: 125 ave 125 max 125 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 597.5 ave 600 max 595 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 0 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 2500 ave 2500 max 2500 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 10000 +Ave neighs/atom = 20 +Neighbor list builds = 0 +Dangerous builds = 0 +write_restart restart_hcp_cobalt.equil + + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:01 From 3eed23d3f7c961db06b28559dfa80267d5b20c6d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Jun 2018 14:07:09 -0400 Subject: [PATCH 202/675] whitespace cleanup --- src/SPIN/pair_spin_magelec.cpp | 28 ++++++++++++++-------------- src/SPIN/pair_spin_neel.cpp | 32 ++++++++++++++++---------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index b8ef9db609..e9e7c1fb3f 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -225,7 +225,7 @@ void PairSpinMagelec::compute(int eflag, int vflag) double **x = atom->x; double **f = atom->f; double **fm = atom->fm; - double **sp = atom->sp; + double **sp = atom->sp; int *type = atom->type; int nlocal = atom->nlocal; int newton_pair = force->newton_pair; @@ -281,32 +281,32 @@ void PairSpinMagelec::compute(int eflag, int vflag) // compute me interaction if (rsq <= local_cut2) { - compute_magelec(i,j,rsq,eij,fmi,spj); - if (lattice_flag) { - compute_magelec_mech(i,j,fi,spi,spj); - } + compute_magelec(i,j,rsq,eij,fmi,spj); + if (lattice_flag) { + compute_magelec_mech(i,j,fi,spi,spj); + } } - f[i][0] += fi[0]; - f[i][1] += fi[1]; + f[i][0] += fi[0]; + f[i][1] += fi[1]; f[i][2] += fi[2]; - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; f[j][2] -= fi[2]; } if (eflag) { - evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); - evdwl *= hbar; + evdwl = (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl *= hbar; } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); } } diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 0160d8a69b..d74db638bd 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -94,8 +94,8 @@ void PairSpinNeel::settings(int narg, char **arg) int i,j; for (i = 1; i <= atom->ntypes; i++) { for (j = i+1; j <= atom->ntypes; j++) { - if (setflag[i][j]) { - cut_spin_neel[i][j] = cut_spin_neel_global; + if (setflag[i][j]) { + cut_spin_neel[i][j] = cut_spin_neel_global; } } } @@ -230,7 +230,7 @@ void PairSpinNeel::compute(int eflag, int vflag) double **x = atom->x; double **f = atom->f; double **fm = atom->fm; - double **sp = atom->sp; + double **sp = atom->sp; int *type = atom->type; int nlocal = atom->nlocal; int newton_pair = force->newton_pair; @@ -289,32 +289,32 @@ void PairSpinNeel::compute(int eflag, int vflag) // compute neel interaction if (rsq <= local_cut2) { - compute_neel(i,j,rsq,eij,fmi,spi,spj); - if (lattice_flag) { - compute_neel_mech(i,j,rsq,eij,fi,spi,spj); - } + compute_neel(i,j,rsq,eij,fmi,spi,spj); + if (lattice_flag) { + compute_neel_mech(i,j,rsq,eij,fi,spi,spj); + } } - f[i][0] += fi[0]; - f[i][1] += fi[1]; + f[i][0] += fi[0]; + f[i][1] += fi[1]; f[i][2] += fi[2]; - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; + fm[i][0] += fmi[0]; + fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; + f[j][0] -= fi[0]; + f[j][1] -= fi[1]; f[j][2] -= fi[2]; } if (eflag) { - evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); - evdwl *= hbar; + evdwl = (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl *= hbar; } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); } } From 58559d9e62ff2285aee793bd2fe12a73fc2573fd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Jun 2018 14:08:54 -0400 Subject: [PATCH 203/675] update src/.gitignor for SPIN package sources --- src/.gitignore | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/.gitignore b/src/.gitignore index 3ae05079d2..92933ce5ee 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -130,6 +130,27 @@ /pair_lj_charmmfsw_coul_long.cpp /pair_lj_charmmfsw_coul_long.h +/atom_vec_spin.cpp +/atom_vec_spin.h +/compute_spin.cpp +/compute_spin.h +/fix_langevin_spin.cpp +/fix_langevin_spin.h +/fix_nve_spin.cpp +/fix_nve_spin.h +/fix_precession_spin.cpp +/fix_precession_spin.h +/pair_spin.cpp +/pair_spin.h +/pair_spin_dmi.cpp +/pair_spin_dmi.h +/pair_spin_exchange.cpp +/pair_spin_exchange.h +/pair_spin_magelec.cpp +/pair_spin_magelec.h +/pair_spin_neel.cpp +/pair_spin_neel.h + /angle_cg_cmm.cpp /angle_cg_cmm.h /angle_charmm.cpp From 7ffab9a2285016ac95fa1f3eb7c6f468c239c952 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 27 Jun 2018 13:22:22 -0600 Subject: [PATCH 204/675] cmake: added INJECT_KNL_FLAG option --- cmake/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 2bbc316902..1ced9e140f 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -642,6 +642,10 @@ if(PKG_USER-INTEL) message(FATAL_ERROR "USER-INTEL is needed at least 2016 intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}") endif() endif() + option(INJECT_KNL_FLAG "Inject flags for KNL build" OFF) + if(INJECT_KNL_FLAG) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xMIC-AVX512") + endif() option(INJECT_INTEL_FLAG "Inject OMG fast flags for USER-INTEL" ON) if(INJECT_INTEL_FLAG AND CMAKE_CXX_COMPILER_ID STREQUAL "Intel") if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4) From 868f5711a29dcf5145957671e9b4b910d1c035aa Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 27 Jun 2018 13:23:35 -0600 Subject: [PATCH 205/675] cmake: fix summary for GPU --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 1ced9e140f..1e7b220772 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -944,7 +944,7 @@ message(STATUS "Link libraries: ${LAMMPS_LINK_LIBS}") if(BUILD_MPI) message(STATUS "Using mpi with headers in ${MPI_CXX_INCLUDE_PATH} and ${MPI_CXX_LIBRARIES}") endif() -if(ENABLED_GPU) +if(PKG_GPU) message(STATUS "GPU Api: ${GPU_API}") if(GPU_API STREQUAL "CUDA") message(STATUS "GPU Arch: ${GPU_ARCH}") From 9353569d302db637e3389dc5ce7658dde0c285f9 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 27 Jun 2018 13:25:56 -0600 Subject: [PATCH 206/675] cmake: add KOKKOS_ARCH to summary --- cmake/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 1e7b220772..5f665e2945 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -953,6 +953,9 @@ if(PKG_GPU) endif() message(STATUS "GPU Precision: ${GPU_PREC}") endif() +if(PKG_KOKKOS) + message(STATUS "Kokkos Arch: ${KOKKOS_ARCH}") +endif() if(PKG_KSPACE) message(STATUS "Using ${FFT} as FFT") endif() From 38cdc1828dd88fafdf994ae7748d4183f91008b7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Jun 2018 15:29:24 -0400 Subject: [PATCH 207/675] insert spin package into make and cmake build system --- cmake/CMakeLists.txt | 2 +- src/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 7ce7ca23e1..a864f1d077 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -113,7 +113,7 @@ endif(ENABLE_TESTING) option(ENABLE_ALL "Build all default packages" OFF) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ - REAX REPLICA RIGID SHOCK SNAP SRD) + REAX REPLICA RIGID SHOCK SNAP SPIN SRD) set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF diff --git a/src/Makefile b/src/Makefile index d17a2ccbd9..2cffe23fe7 100644 --- a/src/Makefile +++ b/src/Makefile @@ -55,7 +55,7 @@ endif PACKAGE = asphere body class2 colloid compress coreshell dipole gpu \ granular kim kokkos kspace latte manybody mc meam misc \ molecule mpiio mscg opt peri poems \ - python qeq reax replica rigid shock snap srd voronoi + python qeq reax replica rigid shock snap spin srd voronoi PACKUSER = user-atc user-awpmd user-bocs user-cgdna user-cgsdk user-colvars \ user-diffraction user-dpd user-drude user-eff user-fep user-h5md \ From 8f4b7161c5a3aac92202798712d42bfb813354c0 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 27 Jun 2018 14:12:34 -0600 Subject: [PATCH 208/675] README: add cmake --- README | 1 + 1 file changed, 1 insertion(+) diff --git a/README b/README index a258a335e9..3a4a865eb5 100644 --- a/README +++ b/README @@ -25,6 +25,7 @@ The LAMMPS distribution includes the following files and directories: README this file LICENSE the GNU General Public License (GPL) bench benchmark problems +cmake cmake buildsystem couple code coupling examples using LAMMPS as a library doc documentation examples simple test problems From 20fe0cd9d07421b6e14112d1ad91de53f4f45f36 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 27 Jun 2018 16:41:10 -0400 Subject: [PATCH 209/675] Define CMake presets --- cmake/CMakeLists.txt | 3 +- cmake/presets/all_off.cmake | 22 +++++++++ cmake/presets/all_on.cmake | 22 +++++++++ cmake/presets/manual_selection.cmake | 69 ++++++++++++++++++++++++++++ cmake/presets/nolib.cmake | 22 +++++++++ cmake/presets/std.cmake | 22 +++++++++ cmake/presets/std_nolib.cmake | 26 +++++++++++ cmake/presets/user.cmake | 22 +++++++++ 8 files changed, 206 insertions(+), 2 deletions(-) create mode 100644 cmake/presets/all_off.cmake create mode 100644 cmake/presets/all_on.cmake create mode 100644 cmake/presets/manual_selection.cmake create mode 100644 cmake/presets/nolib.cmake create mode 100644 cmake/presets/std.cmake create mode 100644 cmake/presets/std_nolib.cmake create mode 100644 cmake/presets/user.cmake diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 7e4fd690e9..e58d15e47b 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -115,7 +115,6 @@ if(ENABLE_TESTING) enable_testing() endif(ENABLE_TESTING) -option(ENABLE_ALL "Build all default packages" OFF) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SNAP SRD) @@ -127,7 +126,7 @@ set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM) set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) foreach(PKG ${DEFAULT_PACKAGES}) - option(PKG_${PKG} "Build ${PKG} Package" ${ENABLE_ALL}) + option(PKG_${PKG} "Build ${PKG} Package" OFF) endforeach() foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES}) option(PKG_${PKG} "Build ${PKG} Package" OFF) diff --git a/cmake/presets/all_off.cmake b/cmake/presets/all_off.cmake new file mode 100644 index 0000000000..f7e90ddbb4 --- /dev/null +++ b/cmake/presets/all_off.cmake @@ -0,0 +1,22 @@ +set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU + GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC + MOLECULE MPIIO MSCG OPT PERI POEMS + PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI) + +set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS + USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD + USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO + USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE + USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB + USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY + USER-UEF USER-VTK) + +set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI + USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE + USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK) + +set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES}) + +foreach(PKG ${ALL_PACKAGES}) + set(PKG_${PKG} OFF CACHE BOOL "" FORCE) +endforeach() diff --git a/cmake/presets/all_on.cmake b/cmake/presets/all_on.cmake new file mode 100644 index 0000000000..2c6f67904e --- /dev/null +++ b/cmake/presets/all_on.cmake @@ -0,0 +1,22 @@ +set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU + GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC + MOLECULE MPIIO MSCG OPT PERI POEMS + PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI) + +set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS + USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD + USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO + USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE + USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB + USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY + USER-UEF USER-VTK) + +set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI + USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE + USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK) + +set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES}) + +foreach(PKG ${ALL_PACKAGES}) + set(PKG_${PKG} ON CACHE BOOL "" FORCE) +endforeach() diff --git a/cmake/presets/manual_selection.cmake b/cmake/presets/manual_selection.cmake new file mode 100644 index 0000000000..6c03d983f6 --- /dev/null +++ b/cmake/presets/manual_selection.cmake @@ -0,0 +1,69 @@ +set(PKG_ASPHERE OFF CACHE BOOL "" FORCE) +set(PKG_BODY OFF CACHE BOOL "" FORCE) +set(PKG_CLASS2 OFF CACHE BOOL "" FORCE) +set(PKG_COLLOID OFF CACHE BOOL "" FORCE) +set(PKG_COMPRESS OFF CACHE BOOL "" FORCE) +set(PKG_CORESHELL OFF CACHE BOOL "" FORCE) +set(PKG_DIPOLE OFF CACHE BOOL "" FORCE) +set(PKG_GPU OFF CACHE BOOL "" FORCE) +set(PKG_GRANULAR OFF CACHE BOOL "" FORCE) +set(PKG_KIM OFF CACHE BOOL "" FORCE) +set(PKG_KOKKOS OFF CACHE BOOL "" FORCE) +set(PKG_KSPACE OFF CACHE BOOL "" FORCE) +set(PKG_LATTE OFF CACHE BOOL "" FORCE) +set(PKG_LIB OFF CACHE BOOL "" FORCE) +set(PKG_MANYBODY OFF CACHE BOOL "" FORCE) +set(PKG_MC OFF CACHE BOOL "" FORCE) +set(PKG_MEAM OFF CACHE BOOL "" FORCE) +set(PKG_MISC OFF CACHE BOOL "" FORCE) +set(PKG_MOLECULE OFF CACHE BOOL "" FORCE) +set(PKG_MPIIO OFF CACHE BOOL "" FORCE) +set(PKG_MSCG OFF CACHE BOOL "" FORCE) +set(PKG_OPT OFF CACHE BOOL "" FORCE) +set(PKG_PERI OFF CACHE BOOL "" FORCE) +set(PKG_POEMS OFF CACHE BOOL "" FORCE) +set(PKG_PYTHOFF OFF CACHE BOOL "" FORCE) +set(PKG_QEQ OFF CACHE BOOL "" FORCE) +set(PKG_REAX OFF CACHE BOOL "" FORCE) +set(PKG_REPLICA OFF CACHE BOOL "" FORCE) +set(PKG_RIGID OFF CACHE BOOL "" FORCE) +set(PKG_SHOCK OFF CACHE BOOL "" FORCE) +set(PKG_SNAP OFF CACHE BOOL "" FORCE) +set(PKG_SRD OFF CACHE BOOL "" FORCE) +set(PKG_VOROFFOI OFF CACHE BOOL "" FORCE) + +set(PKG_USER OFF CACHE BOOL "" FORCE) +set(PKG_USER-ATC OFF CACHE BOOL "" FORCE) +set(PKG_USER-AWPMD OFF CACHE BOOL "" FORCE) +set(PKG_USER-BOCS OFF CACHE BOOL "" FORCE) +set(PKG_USER-CGDNA OFF CACHE BOOL "" FORCE) +set(PKG_USER-CGSDK OFF CACHE BOOL "" FORCE) +set(PKG_USER-COLVARS OFF CACHE BOOL "" FORCE) +set(PKG_USER-DIFFRACTIOFF OFF CACHE BOOL "" FORCE) +set(PKG_USER-DPD OFF CACHE BOOL "" FORCE) +set(PKG_USER-DRUDE OFF CACHE BOOL "" FORCE) +set(PKG_USER-EFF OFF CACHE BOOL "" FORCE) +set(PKG_USER-FEP OFF CACHE BOOL "" FORCE) +set(PKG_USER-H5MD OFF CACHE BOOL "" FORCE) +set(PKG_USER-INTEL OFF CACHE BOOL "" FORCE) +set(PKG_USER-LB OFF CACHE BOOL "" FORCE) +set(PKG_USER-MANIFOLD OFF CACHE BOOL "" FORCE) +set(PKG_USER-MEAMC OFF CACHE BOOL "" FORCE) +set(PKG_USER-MESO OFF CACHE BOOL "" FORCE) +set(PKG_USER-MGPT OFF CACHE BOOL "" FORCE) +set(PKG_USER-MISC OFF CACHE BOOL "" FORCE) +set(PKG_USER-MOFFF OFF CACHE BOOL "" FORCE) +set(PKG_USER-MOLFILE OFF CACHE BOOL "" FORCE) +set(PKG_USER-NETCDF OFF CACHE BOOL "" FORCE) +set(PKG_USER-OMP OFF CACHE BOOL "" FORCE) +set(PKG_USER-PHOFFOFF OFF CACHE BOOL "" FORCE) +set(PKG_USER-QMMM OFF CACHE BOOL "" FORCE) +set(PKG_USER-QTB OFF CACHE BOOL "" FORCE) +set(PKG_USER-QUIP OFF CACHE BOOL "" FORCE) +set(PKG_USER-REAXC OFF CACHE BOOL "" FORCE) +set(PKG_USER-SMD OFF CACHE BOOL "" FORCE) +set(PKG_USER-SMTBQ OFF CACHE BOOL "" FORCE) +set(PKG_USER-SPH OFF CACHE BOOL "" FORCE) +set(PKG_USER-TALLY OFF CACHE BOOL "" FORCE) +set(PKG_USER-UEF OFF CACHE BOOL "" FORCE) +set(PKG_USER-VTK OFF CACHE BOOL "" FORCE) diff --git a/cmake/presets/nolib.cmake b/cmake/presets/nolib.cmake new file mode 100644 index 0000000000..cd603aa804 --- /dev/null +++ b/cmake/presets/nolib.cmake @@ -0,0 +1,22 @@ +set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU + GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC + MOLECULE MPIIO MSCG OPT PERI POEMS + PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI) + +set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS + USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD + USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO + USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE + USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB + USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY + USER-UEF USER-VTK) + +set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI + USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE + USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK) + +set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES}) + +foreach(PKG ${PACKAGES_WITH_LIB}) + set(PKG_${PKG} OFF CACHE BOOL "" FORCE) +endforeach() diff --git a/cmake/presets/std.cmake b/cmake/presets/std.cmake new file mode 100644 index 0000000000..36da897957 --- /dev/null +++ b/cmake/presets/std.cmake @@ -0,0 +1,22 @@ +set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU + GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC + MOLECULE MPIIO MSCG OPT PERI POEMS + PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI) + +set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS + USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD + USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO + USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE + USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB + USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY + USER-UEF USER-VTK) + +set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI + USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE + USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK) + +set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES}) + +foreach(PKG ${STANDARD_PACKAGES}) + set(PKG_${PKG} ON CACHE BOOL "" FORCE) +endforeach() diff --git a/cmake/presets/std_nolib.cmake b/cmake/presets/std_nolib.cmake new file mode 100644 index 0000000000..9bffefcbe0 --- /dev/null +++ b/cmake/presets/std_nolib.cmake @@ -0,0 +1,26 @@ +set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU + GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC + MOLECULE MPIIO MSCG OPT PERI POEMS + PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI) + +set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS + USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD + USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO + USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE + USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB + USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY + USER-UEF USER-VTK) + +set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI + USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE + USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK) + +set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES}) + +foreach(PKG ${STANDARD_PACKAGES}) + set(PKG_${PKG} ON CACHE BOOL "" FORCE) +endforeach() + +foreach(PKG ${PACKAGES_WITH_LIB}) + set(PKG_${PKG} OFF CACHE BOOL "" FORCE) +endforeach() diff --git a/cmake/presets/user.cmake b/cmake/presets/user.cmake new file mode 100644 index 0000000000..cb81b67558 --- /dev/null +++ b/cmake/presets/user.cmake @@ -0,0 +1,22 @@ +set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU + GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC + MOLECULE MPIIO MSCG OPT PERI POEMS + PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI) + +set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS + USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD + USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO + USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE + USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB + USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY + USER-UEF USER-VTK) + +set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI + USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE + USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK) + +set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES}) + +foreach(PKG ${USER_PACKAGES}) + set(PKG_${PKG} ON CACHE BOOL "" FORCE) +endforeach() From 08552fefe937ad08f2fc77b49ad3c0b74ddb74cc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Jun 2018 16:52:28 -0400 Subject: [PATCH 210/675] add md5 checksum support to Install.py for LATTE --- lib/latte/Install.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/lib/latte/Install.py b/lib/latte/Install.py index b9500a8996..e1ed9d4eaa 100644 --- a/lib/latte/Install.py +++ b/lib/latte/Install.py @@ -4,7 +4,7 @@ # used to automate the steps described in the README file in this dir from __future__ import print_function -import sys,os,re,subprocess +import sys,os,re,subprocess,hashlib # help message @@ -24,7 +24,7 @@ specify one or more options, order does not matter -b = download and build the LATTE library -p = specify folder of existing LATTE installation -m = copy Makefile.lammps.suffix to Makefile.lammps - -v = set version of LATTE library to download and set up (default = 1.1.1) + -v = set version of LATTE library to download and set up (default = 1.2.1) Example: @@ -36,6 +36,13 @@ make lib-latte args="-p $HOME/latte" # use existing LATTE installation version = '1.2.1' +# known checksums for different LATTE versions. used to validate the download. +checksums = { \ + '1.1.0' : '533635721ee222d0ed2925a18fb5b294', \ + '1.2.0' : '68bf0db879da5e068a71281020239ae7', \ + '1.2.1' : 'bed76e7e76c545c36dd848a8f1fd35eb' \ + } + # print error message or help def error(str=None): @@ -91,6 +98,17 @@ def geturl(url,fname): error("Failed to download source code with 'curl' or 'wget'") return +def checkmd5sum(md5sum,fname): + with open(fname,'rb') as fh: + m = hashlib.md5() + while True: + data = fh.read(81920) + if not data: + break + m.update(data) + fh.close() + return m.hexdigest() == md5sum + # parse args args = sys.argv[1:] @@ -144,6 +162,11 @@ if buildflag: print("Downloading LATTE ...") geturl(url,"LATTE.tar.gz") + # verify downloaded archive integrity via md5 checksum, if known. + if version in checksums: + if not checkmd5sum(checksums[version],'LATTE.tar.gz'): + error("Checksum for LATTE library does not match") + print("Unpacking LATTE ...") if os.path.exists(lattedir): cmd = 'rm -rf "%s"' % lattedir @@ -162,7 +185,7 @@ if buildflag: # create 3 links in lib/latte to LATTE dirs # do this -b or -p is set - + if buildflag or pathflag: print("Creating links to LATTE files") if os.path.isfile("includelink") or os.path.islink("includelink"): From 75aacfd17fbe09c74c7120e362a8e2e6e09483bc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Jun 2018 16:58:58 -0400 Subject: [PATCH 211/675] add explanation comment to ABIVERSION define --- src/LATTE/fix_latte.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/LATTE/fix_latte.cpp b/src/LATTE/fix_latte.cpp index 37205040e2..9db236399d 100644 --- a/src/LATTE/fix_latte.cpp +++ b/src/LATTE/fix_latte.cpp @@ -42,6 +42,12 @@ extern "C" { int latte_abiversion(); } +// the ABIVERSION number here must be kept consistent +// with its counterpart in the LATTE library and the +// prototype above. We want to catch mismatches with +// a meaningful error messages, as they can cause +// difficult to debug crashes or memory corruption. + #define ABIVERSION 20180622 #define INVOKED_PERATOM 8 From fc3694189ede9d3f43b27b26e210e421b46931c7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Jun 2018 17:01:49 -0400 Subject: [PATCH 212/675] update CODEOWNERS file for LATTE --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b145a3178f..75b79443c3 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -16,6 +16,7 @@ src/COMPRESS/* @akohlmey src/GPU/* @ndtrung81 src/KOKKOS/* @stanmoore1 src/KIM/* @ellio167 +src/LATTE/* @cnegre src/USER-CGDNA/* @ohenrich src/USER-CGSDK/* @akohlmey src/USER-COLVARS/* @giacomofiorin From a2b250712111f9296ea13a038cac7953b3998753 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 27 Jun 2018 19:02:10 -0600 Subject: [PATCH 213/675] cmake: remove ENABLE_ALL option --- cmake/CMakeLists.txt | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 5f665e2945..3aba9dced7 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -131,21 +131,15 @@ if(ENABLE_TESTING) enable_testing() endif(ENABLE_TESTING) -option(ENABLE_ALL "Build all default packages" OFF) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR - KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ - REAX REPLICA RIGID SHOCK SNAP SRD) -set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE - USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO - USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF + KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SNAP SRD + KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS USER-CGDNA + USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM) set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) -foreach(PKG ${DEFAULT_PACKAGES}) - option(PKG_${PKG} "Build ${PKG} Package" ${ENABLE_ALL}) -endforeach() -foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES}) +foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES}) option(PKG_${PKG} "Build ${PKG} Package" OFF) endforeach() @@ -481,7 +475,7 @@ RegisterStyles(${LAMMPS_SOURCE_DIR}) ############################################## # add sources of enabled packages ############################################ -foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES}) +foreach(PKG ${DEFAULT_PACKAGES}) set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG}) # ignore PKG files which were manually installed in src folder @@ -897,7 +891,7 @@ endif() ############################################################################### # Print package summary ############################################################################### -foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES} ${ACCEL_PACKAGES}) +foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES}) if(PKG_${PKG}) message(STATUS "Building package: ${PKG}") endif() From 23fb0370a9ae3c8c16e6c4476a6ac04a8b23bf9e Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 28 Jun 2018 00:39:24 -0400 Subject: [PATCH 214/675] Update CMake documentation --- cmake/README.md | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/cmake/README.md b/cmake/README.md index 8a582d82d9..462afcacb2 100644 --- a/cmake/README.md +++ b/cmake/README.md @@ -22,6 +22,7 @@ tasks, act as a reference and provide examples of typical use cases. * [Building LAMMPS using cmake](#building-lammps-using-cmake-1) * [Prerequisites](#prerequisites) * [Build directory vs. Source Directory](#build-directory-vs-source-directory) + * [Defining and using presets](#defining-and-using-presets) * [Reference](#reference) * [Common CMAKE Configuration Options](#common-cmake-configuration-options) * [LAMMPS Configuration Options](#lammps-configuration-options) @@ -150,6 +151,30 @@ build directory. ``` make ``` +# Defining and using presets + +The CMake build exposes a lot of different options. In the old build system +some of the package selections were possible by using special make target like +`make yes-std` or `make no-lib`. Achieving the same result with cmake requires +specifying all options manually. This can quickly become a very long command +line that is hard to handle. While these could be stored in a simple script +file, there is another way of defining "presets" to compile LAMMPS in a certain +way. + +A preset is a regular CMake script file that can use constructs such as +variables, lists and for-loops to manipulate configuration options. Options +must be set with the `CACHE` and `FORCE` flag to ensure they are considered. + +Such a file can then be passed to cmake via the `-C` flag to initialize the +cache. Several examples of such presets can be found in the `cmake/presets` +folder. + +```bash +# build LAMMPS with all "standard" packages which don't use libraries and enable GPU package +mkdir build +cd build +cmake -C ../cmake/presets/std_nolib.cmake ../cmake -DPKG_GPU=on +``` # Reference @@ -374,16 +399,6 @@ make - - ENABLE_ALL - Enable all default packages - -
-
off (default)
-
on
-
- - PKG_ASPHERE Computes, time-integration fixes, and pair styles for aspherical particle models including ellipsoids, 2d lines, and 3d triangles. From 7abc960d3932d1cbbb495aa315077df810fb4dd4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Jun 2018 08:18:35 -0400 Subject: [PATCH 215/675] import moltemplate 2.8.6 from andrew jewett --- tools/moltemplate/.gitignore | 180 + tools/moltemplate/README.md | 10 +- tools/moltemplate/doc/moltemplate_manual.pdf | Bin 760231 -> 764320 bytes .../{2bead_residue.jpg => 2bead_monomer.jpg} | Bin .../{2bead_peptide.jpg => 2bead_polymer.jpg} | Bin ...LR.jpg => 2bead_polymers_nopbc_t=0_LR.jpg} | Bin ...s_LR.jpg => 2bead_polymers_t=100ps_LR.jpg} | Bin ...l_complex+mol_complex0_transparent_LR.jpg} | Bin .../{dimer_LR.jpg => mol_complex_LR.jpg} | Bin .../moltemplate_manual.tex | 654 +- .../moltemplate/doc/utils/docs_genpoly_lt.txt | 30 +- .../benzene/moltemplate_files/benzene.lt | 24 +- .../ethylene+benzene/README_visualize.txt | 4 +- .../ethylene+benzene_50bar_t=100000_LR.jpg | Bin 0 -> 36911 bytes .../ethylene+benzene_box80x80x80_LR.jpg | Bin 130048 -> 0 bytes .../images/ethylene+benzene_t=0_LR.jpg | Bin 0 -> 52598 bytes .../moltemplate_files/benzene.lt | 25 +- .../moltemplate_files/system.lt | 25 +- .../ethylene+benzene/run.in.nvt | 2 +- .../all_atom/force_field_COMPASS/WARNING.txt | 38 + .../alkane_chain_single/README.txt | 37 + .../README_remove_irrelevant_info.sh | 8 + .../alkane_chain_single/README_run.sh | 34 + .../alkane_chain_single/README_setup.sh | 34 + .../alkane_chain_single/README_visualize.txt | 87 + .../alkane_chain_single/images/ch2_ry90.jpg | Bin 0 -> 4680 bytes .../alkane_chain_single/images/ch3_ry60.jpg | Bin 0 -> 6951 bytes .../alkane_chain_single/images/t=0.jpg | Bin 0 -> 51583 bytes .../alkane_chain_single/images/t=1ns.jpg | Bin 0 -> 60111 bytes .../moltemplate_files/alkane50.lt | 137 + .../moltemplate_files/ch2group.lt | 76 + .../moltemplate_files/ch3group.lt | 78 + .../moltemplate_files/system.lt | 30 + .../alkane_chain_single/run.in.min | 37 + .../alkane_chain_single/run.in.nvt | 38 + .../force_field_COMPASS/butane/README.txt | 37 + .../butane/README_remove_irrelevant_info.sh | 8 + .../force_field_COMPASS/butane/README_run.sh | 34 + .../butane/README_setup.sh | 34 + .../butane/README_visualize.txt | 87 + .../after_pressure_equilibration_LR.jpg | Bin 0 -> 28251 bytes .../butane/images/butane.jpg | Bin 0 -> 4606 bytes .../butane/images/ch2_ry90.jpg | Bin 0 -> 4680 bytes .../butane/images/ch3_ry60.jpg | Bin 0 -> 3161 bytes .../images/initial_configuration_LR.jpg | Bin 0 -> 29167 bytes .../butane/moltemplate_files/butane.lt | 39 + .../butane/moltemplate_files/ch2group.lt | 71 + .../butane/moltemplate_files/ch3group.lt | 70 + .../butane/moltemplate_files/system.lt | 24 + .../force_field_COMPASS/butane/run.in.npt | 103 + .../force_field_COMPASS/butane/run.in.nvt | 45 + .../force_field_COMPASS/hexadecane/README.txt | 42 + .../README_remove_irrelevant_info.sh | 8 + .../hexadecane/README_run.sh | 21 + .../hexadecane/README_setup.sh | 34 + .../hexadecane/README_visualize.txt | 87 + .../hexadecane/WARNING.txt | 13 + .../images/hexadecane_12x12x2_t=0_LR.jpg | Bin 0 -> 27017 bytes .../hexadecane_12x12x2_t=10ps_npt_LR.jpg | Bin 0 -> 36181 bytes .../hexadecane/images/hexadecane_LR.jpg | Bin 0 -> 8118 bytes .../hexadecane/moltemplate_files/ch2group.lt | 70 + .../hexadecane/moltemplate_files/ch3group.lt | 70 + .../moltemplate_files/hexadecane.lt | 79 + .../hexadecane/moltemplate_files/system.lt | 20 + .../force_field_COMPASS/hexadecane/run.in.npt | 102 + .../force_field_COMPASS/hexadecane/run.in.nvt | 45 + .../force_field_OPLSAA/butane/README.txt | 37 + .../butane/README_remove_irrelevant_info.sh | 8 + .../force_field_OPLSAA/butane/README_run.sh | 34 + .../force_field_OPLSAA/butane/README_setup.sh | 34 + .../butane/README_visualize.txt | 87 + .../after_pressure_equilibration_LR.jpg | Bin 0 -> 28251 bytes .../butane/images/butane.jpg | Bin 0 -> 5146 bytes .../butane/images/ch2_ry90.jpg | Bin 0 -> 4680 bytes .../butane/images/ch3_ry60.jpg | Bin 0 -> 6951 bytes .../images/initial_configuration_LR.jpg | Bin 0 -> 29167 bytes .../butane/moltemplate_files/butane.lt | 42 + .../butane/moltemplate_files/ch2group.lt | 67 + .../butane/moltemplate_files/ch3group.lt | 69 + .../butane/moltemplate_files/system.lt | 25 + .../force_field_OPLSAA/butane/run.in.npt | 103 + .../force_field_OPLSAA/butane/run.in.nvt | 45 + .../ethylene+benzene/README.txt | 3 - .../ethylene+benzene/README_visualize.txt | 4 +- .../ethylene+benzene_50bar_t=100000_LR.jpg | Bin 0 -> 36911 bytes .../ethylene+benzene_box80x80x80_LR.jpg | Bin 130048 -> 0 bytes .../images/ethylene+benzene_t=0_LR.jpg | Bin 0 -> 52598 bytes .../moltemplate_files/benzene.lt | 42 +- .../moltemplate_files/ethylene.lt | 32 +- .../moltemplate_files/system.lt | 20 +- .../ethylene+benzene/run.in.nvt | 2 +- .../moltemplate_files/benzene.lt | 52 +- .../moltemplate_files/ethylene.lt | 35 +- .../packmol_files/benzene.xyz | 24 +- .../force_field_OPLSAA/hexadecane/README.txt | 3 +- .../force_field_OPLSAA/hexadecane/WARNING.txt | 4 +- .../hexadecane/images/ch2_ry60_LR.jpg | Bin 0 -> 2590 bytes .../hexadecane/images/ch3_ry60_LR.jpg | Bin 0 -> 3758 bytes .../hexadecane/images/hexadecane_LR.jpg | Bin 5237 -> 8118 bytes .../hexadecane/moltemplate_files/ch2group.lt | 2 +- .../force_field_OPLSAA/hexadecane/run.in.npt | 19 +- .../force_field_OPLSAA/hexadecane/run.in.nvt | 5 +- .../ice_crystal/moltemplate_files/spce.lt | 34 +- .../ice_crystal/run.in.npt | 2 +- .../nanotube+water/moltemplate_files/spce.lt | 4 +- .../nanotube+water/moltemplate_files/watmw.lt | 54 - .../waterSPCE+Na+Cl/README_visualize.txt | 4 +- .../images/waterSPCE+Na+Cl_t=0.jpg | Bin 169027 -> 44020 bytes .../images/waterSPCE+Na+Cl_t=100ps.jpg | Bin 144377 -> 38522 bytes .../waterSPCE+Na+Cl/moltemplate_files/ions.lt | 117 +- .../waterSPCE+Na+Cl/moltemplate_files/spce.lt | 118 +- .../moltemplate_files/system.lt | 16 +- .../ELBAwater+methanol/README.txt | 11 + .../ELBAwater+methanol/README_run.sh | 20 + .../ELBAwater+methanol/README_setup.sh | 28 + ...ELBAwater+methanol_rendered_with_ovito.jpg | Bin 0 -> 22841 bytes .../moltemplate_files/elba.lt | 39 + .../moltemplate_files/methanol.lt | 84 + .../moltemplate_files/system.lt | 29 + .../packmol_files/README.txt | 12 + .../packmol_files/coord.xyz | 1008 ++ .../packmol_files/elba_water.xyz | 4 + .../packmol_files/input.packmol | 17 + .../packmol_files/methanol.xyz | 8 + .../ELBAwater+methanol/run.in.npt | 54 + .../packmol_files/README.txt | 8 + .../packmol_files/dopc.xyz | 14 + .../packmol_files/mix_lipids+water.inp | 35 + .../packmol_files/water.xyz | 3 + .../moltemplate_files/forcefield.lt | 93 +- .../abstract_2bead_polymer/README.txt | 17 + .../abstract_2bead_polymer/README_run.sh | 20 + .../abstract_2bead_polymer/README_setup.sh | 23 + .../README_visualize.txt | 86 + .../images/2bead_monomer.jpg | Bin 0 -> 3784 bytes .../images/2bead_polymer_LR.jpg | Bin 0 -> 6552 bytes .../images/2bead_polymer_array3x3x3_LR.jpg | Bin 0 -> 32045 bytes .../images/2bead_t=4850000_LR.jpg | Bin 0 -> 22763 bytes .../moltemplate_files/README.sh | 6 + .../moltemplate_files/README.txt | 19 + .../moltemplate_files/forcefield.lt | 110 + .../moltemplate_files/monomer.lt | 20 + .../moltemplate_files/polymer.lt | 27 + .../moltemplate_files/system.lt | 29 + .../abstract_2bead_polymer/run.in.nvt | 32 + .../moltemplate_files/monomer.lt | 81 +- .../moltemplate_files/polymer.lt | 8 +- .../moltemplate_files/polymer_forcefield.lt | 120 + .../ellipsoids_CG_benzene/README.txt | 20 + .../ellipsoids_CG_benzene/README_run.sh | 20 + .../ellipsoids_CG_benzene/README_setup.sh | 19 + .../README_visualization_OVITO.txt | 12 + .../README_visualization_OVITO_ellipsoids.png | Bin 0 -> 72390 bytes .../images/benzene_cg_ellipsoid.png | Bin 0 -> 2011 bytes .../ellipsoids_CG_benzene/images/t=0.jpg | Bin 0 -> 23529 bytes .../ellipsoids_CG_benzene/images/t=14900.jpg | Bin 0 -> 15966 bytes .../moltemplate_files/benzene_cg.lt | 62 + .../moltemplate_files/system.lt | 24 + .../ellipsoids_CG_benzene/run.in | 37 + .../membrane+protein/run.in.min | 2 +- .../moltemplate_files/spce.lt | 30 +- .../explicit_electrons/eff_CH4/README.txt | 25 + .../explicit_electrons/eff_CH4/README_run.sh | 3 + .../eff_CH4/README_setup.sh | 14 + .../eff_CH4/moltemplate_files/ch4.lt | 45 + .../eff_CH4/moltemplate_files/ch4_ionized.lt | 55 + .../eff_CH4/moltemplate_files/system_ch4.in | 42 + .../eff_CH4/moltemplate_files/system_ch4.lt | 28 + .../moltemplate_files/system_ch4_ionized.lt | 29 + .../eff_CH4/orig_files/README | 2 + .../eff_CH4/orig_files/data.ch4 | 32 + .../eff_CH4/orig_files/data.ch4_ionized | 31 + .../eff_CH4/orig_files/in.ch4.dynamics | 41 + .../eff_CH4/orig_files/in.ch4.min | 32 + .../orig_files/in.ch4_ionized.dynamics | 42 + .../explicit_electrons/eff_CH4/run.in.ch4 | 49 + .../eff_CH4/run.in.ch4_ionized | 62 + tools/moltemplate/moltemplate/__init__.py | 4 +- .../moltemplate/moltemplate/bonds_by_type.py | 2 +- .../moltemplate/moltemplate/charge_by_bond.py | 27 +- tools/moltemplate/moltemplate/dump2data.py | 17 +- tools/moltemplate/moltemplate/ettree.py | 8 +- .../moltemplate/force_fields/README.txt | 13 + .../force_fields/SDK_lipid+chol.lt | 423 - .../moltemplate/force_fields/__init__.py | 0 .../compass_original_format/README.txt | 30 + .../compass_published.frc | 1381 ++ .../force_fields/compass_published.lt | 4148 +++++ .../README.txt | 0 .../amberparm2lt.sh | 2 + .../amberparm_angle_to_lt.py | 6 +- .../amberparm_bond_to_lt.py | 6 +- .../amberparm_dihedral_to_lt.py | 4 +- .../amberparm_improper_to_lt.py | 6 +- .../amberparm_mass_to_lt.py | 0 .../amberparm_pair_to_lt.py | 6 +- .../convert_EMC_files_to_LT_files/README.txt | 18 + .../convert_EMC_files_to_LT_files/__init__.py | 0 .../emcprm2lt.py | 2 +- .../msifrc2lt.py | 4536 ++++++ .../__init__.py | 0 .../tinkerparm2lt.py | 246 +- .../README | 0 .../gen_potential-cooke.py | 0 .../tabulated_potential.dat | 0 .../moltemplate/force_fields/gaff.lt | 7 +- .../moltemplate/force_fields/gaff2.lt | 13357 ++++++++++++++++ .../moltemplate/force_fields/loplsaa.lt | 732 +- .../moltemplate/force_fields/martini.lt | 16 +- .../force_fields/martini/emcprm2lt.py | 580 - .../martini_original_format/README.txt | 42 + .../aminoacids.prm | 0 .../cholesterol.prm | 1 + .../lipids.prm | 0 .../martini.prm | 0 .../polymers.prm | 0 .../sugars.prm | 0 .../moltemplate/force_fields/oplsaa.lt | 12498 +++++++-------- .../force_fields/oplsaa/AUTHOR.txt | 2 - .../oplsaa_original_format/AUTHOR.txt | 7 + .../oplsaa_original_format/README.txt | 10 + .../loplsaa_ext.prm | 80 +- .../{sdk/SDK_lipid+chol.lt => sdk.lt} | 14 +- .../moltemplate/force_fields/sdk/README.txt | 63 - .../sdk_original_format/README.txt | 84 + .../SDK_lipidONLY.lt | 0 .../sdk_cholesterol.prm | 0 .../sdk_lipids.prm | 0 tools/moltemplate/moltemplate/genpoly_lt.py | 8 +- tools/moltemplate/moltemplate/ltemplify.py | 28 +- tools/moltemplate/moltemplate/lttree.py | 84 +- tools/moltemplate/moltemplate/lttree_check.py | 140 +- .../moltemplate/lttree_postprocess.py | 6 +- .../moltemplate/moltemplate/lttree_styles.py | 3 +- tools/moltemplate/moltemplate/nbody_Angles.py | 2 +- tools/moltemplate/moltemplate/nbody_Bonds.py | 2 +- .../moltemplate/nbody_Dihedrals.py | 2 +- .../moltemplate/nbody_Impropers.py | 2 +- .../nbody_alt_symmetry/cenIflipJK.py | 61 + .../nbody_alt_symmetry/cenJflipIL.py | 68 + .../moltemplate/moltemplate/nbody_by_type.py | 10 +- .../moltemplate/nbody_by_type_lib.py | 2 +- .../nbody_fix_ttree_assignments.py | 2 +- .../moltemplate/nbody_reorder_atoms.py | 2 +- .../moltemplate/postprocess_coeffs.py | 287 + .../moltemplate/postprocess_input_script.py | 4 + tools/moltemplate/moltemplate/raw2data.py | 69 +- .../scripts/cleanup_moltemplate.sh | 25 +- .../moltemplate/scripts/emoltemplate.sh | 56 +- .../moltemplate/scripts/moltemplate.sh | 176 +- tools/moltemplate/moltemplate/ttree.py | 27 +- tools/moltemplate/moltemplate/ttree_lex.py | 19 +- .../moltemplate/ttree_matrix_stack.py | 164 +- tools/moltemplate/moltemplate/ttree_render.py | 43 +- tools/moltemplate/setup.py | 23 +- 255 files changed, 37465 insertions(+), 8929 deletions(-) create mode 100644 tools/moltemplate/.gitignore rename tools/moltemplate/doc/moltemplate_manual_src/{2bead_residue.jpg => 2bead_monomer.jpg} (100%) rename tools/moltemplate/doc/moltemplate_manual_src/{2bead_peptide.jpg => 2bead_polymer.jpg} (100%) rename tools/moltemplate/doc/moltemplate_manual_src/{2bead_peptides_nopbc_t=0_LR.jpg => 2bead_polymers_nopbc_t=0_LR.jpg} (100%) rename tools/moltemplate/doc/moltemplate_manual_src/{2bead_peptides_t=100ps_LR.jpg => 2bead_polymers_t=100ps_LR.jpg} (100%) rename tools/moltemplate/doc/moltemplate_manual_src/{dimer+dimer0_transparent_LR.jpg => mol_complex+mol_complex0_transparent_LR.jpg} (100%) rename tools/moltemplate/doc/moltemplate_manual_src/{dimer_LR.jpg => mol_complex_LR.jpg} (100%) create mode 100644 tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/images/ethylene+benzene_50bar_t=100000_LR.jpg delete mode 100644 tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/images/ethylene+benzene_box80x80x80_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/images/ethylene+benzene_t=0_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/WARNING.txt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/README.txt create mode 100755 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/README_remove_irrelevant_info.sh create mode 100755 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/README_run.sh create mode 100755 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/README_setup.sh create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/README_visualize.txt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/images/ch2_ry90.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/images/ch3_ry60.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/images/t=0.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/images/t=1ns.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/moltemplate_files/alkane50.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/moltemplate_files/ch2group.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/moltemplate_files/ch3group.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/moltemplate_files/system.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/run.in.min create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/run.in.nvt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/README.txt create mode 100755 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/README_remove_irrelevant_info.sh create mode 100755 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/README_run.sh create mode 100755 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/README_setup.sh create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/README_visualize.txt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/images/after_pressure_equilibration_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/images/butane.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/images/ch2_ry90.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/images/ch3_ry60.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/images/initial_configuration_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/moltemplate_files/butane.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/moltemplate_files/ch2group.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/moltemplate_files/ch3group.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/moltemplate_files/system.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/run.in.npt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/run.in.nvt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README.txt create mode 100755 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_remove_irrelevant_info.sh create mode 100755 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_run.sh create mode 100755 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_setup.sh create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_visualize.txt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/WARNING.txt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/images/hexadecane_12x12x2_t=0_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/images/hexadecane_12x12x2_t=10ps_npt_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/images/hexadecane_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/moltemplate_files/ch2group.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/moltemplate_files/ch3group.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/moltemplate_files/hexadecane.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/moltemplate_files/system.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/run.in.npt create mode 100644 tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/run.in.nvt create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README.txt create mode 100755 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_remove_irrelevant_info.sh create mode 100755 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_run.sh create mode 100755 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_setup.sh create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_visualize.txt create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/after_pressure_equilibration_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/butane.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/ch2_ry90.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/ch3_ry60.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/initial_configuration_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/moltemplate_files/butane.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/moltemplate_files/ch2group.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/moltemplate_files/ch3group.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/moltemplate_files/system.lt create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/run.in.npt create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/run.in.nvt create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/images/ethylene+benzene_50bar_t=100000_LR.jpg delete mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/images/ethylene+benzene_box80x80x80_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/images/ethylene+benzene_t=0_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/images/ch2_ry60_LR.jpg create mode 100644 tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/images/ch3_ry60_LR.jpg delete mode 100644 tools/moltemplate/examples/all_atom/force_field_explicit_parameters/nanotube+water/moltemplate_files/watmw.lt create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README.txt create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README_run.sh create mode 100755 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README_setup.sh create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/images/ELBAwater+methanol_rendered_with_ovito.jpg create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/elba.lt create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/methanol.lt create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/system.lt create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/README.txt create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/coord.xyz create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/elba_water.xyz create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/input.packmol create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/methanol.xyz create mode 100644 tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/run.in.npt create mode 100644 tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/README.txt create mode 100644 tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/dopc.xyz create mode 100644 tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/mix_lipids+water.inp create mode 100644 tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/water.xyz create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README.txt create mode 100755 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_run.sh create mode 100755 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_setup.sh create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_visualize.txt create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/images/2bead_monomer.jpg create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/images/2bead_polymer_LR.jpg create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/images/2bead_polymer_array3x3x3_LR.jpg create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/images/2bead_t=4850000_LR.jpg create mode 100755 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/README.sh create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/README.txt create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/forcefield.lt create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/monomer.lt create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/polymer.lt create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/system.lt create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/run.in.nvt create mode 100644 tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/polymer_forcefield.lt create mode 100644 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README.txt create mode 100755 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_run.sh create mode 100755 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_setup.sh create mode 100644 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_visualization_OVITO.txt create mode 100644 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_visualization_OVITO_ellipsoids.png create mode 100644 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/images/benzene_cg_ellipsoid.png create mode 100644 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/images/t=0.jpg create mode 100644 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/images/t=14900.jpg create mode 100644 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/moltemplate_files/benzene_cg.lt create mode 100644 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/moltemplate_files/system.lt create mode 100644 tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/run.in create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/README.txt create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/README_run.sh create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/README_setup.sh create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/moltemplate_files/ch4.lt create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/moltemplate_files/ch4_ionized.lt create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/moltemplate_files/system_ch4.in create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/moltemplate_files/system_ch4.lt create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/moltemplate_files/system_ch4_ionized.lt create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/orig_files/README create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/orig_files/data.ch4 create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/orig_files/data.ch4_ionized create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/orig_files/in.ch4.dynamics create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/orig_files/in.ch4.min create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/orig_files/in.ch4_ionized.dynamics create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/run.in.ch4 create mode 100644 tools/moltemplate/examples/misc_examples/explicit_electrons/eff_CH4/run.in.ch4_ionized create mode 100644 tools/moltemplate/moltemplate/force_fields/README.txt delete mode 100644 tools/moltemplate/moltemplate/force_fields/SDK_lipid+chol.lt create mode 100644 tools/moltemplate/moltemplate/force_fields/__init__.py create mode 100644 tools/moltemplate/moltemplate/force_fields/compass_original_format/README.txt create mode 100644 tools/moltemplate/moltemplate/force_fields/compass_original_format/compass_published.frc create mode 100644 tools/moltemplate/moltemplate/force_fields/compass_published.lt rename tools/moltemplate/moltemplate/force_fields/{amber => convert_AMBER_files_to_LT_files}/README.txt (100%) rename tools/moltemplate/moltemplate/force_fields/{amber => convert_AMBER_files_to_LT_files}/amberparm2lt.sh (98%) rename tools/moltemplate/moltemplate/force_fields/{amber => convert_AMBER_files_to_LT_files}/amberparm_angle_to_lt.py (91%) rename tools/moltemplate/moltemplate/force_fields/{amber => convert_AMBER_files_to_LT_files}/amberparm_bond_to_lt.py (90%) rename tools/moltemplate/moltemplate/force_fields/{amber => convert_AMBER_files_to_LT_files}/amberparm_dihedral_to_lt.py (97%) rename tools/moltemplate/moltemplate/force_fields/{amber => convert_AMBER_files_to_LT_files}/amberparm_improper_to_lt.py (94%) rename tools/moltemplate/moltemplate/force_fields/{amber => convert_AMBER_files_to_LT_files}/amberparm_mass_to_lt.py (100%) rename tools/moltemplate/moltemplate/force_fields/{amber => convert_AMBER_files_to_LT_files}/amberparm_pair_to_lt.py (93%) create mode 100644 tools/moltemplate/moltemplate/force_fields/convert_EMC_files_to_LT_files/README.txt create mode 100644 tools/moltemplate/moltemplate/force_fields/convert_EMC_files_to_LT_files/__init__.py rename tools/moltemplate/moltemplate/force_fields/{sdk => convert_EMC_files_to_LT_files}/emcprm2lt.py (99%) create mode 100755 tools/moltemplate/moltemplate/force_fields/convert_MSI_files_to_LT_files/msifrc2lt.py create mode 100644 tools/moltemplate/moltemplate/force_fields/convert_TINKER_files_to_LT_files/__init__.py rename tools/moltemplate/moltemplate/force_fields/{tinker => convert_TINKER_files_to_LT_files}/tinkerparm2lt.py (76%) rename tools/moltemplate/moltemplate/force_fields/{cooke_deserno => cooke_deserno_supporting_files}/README (100%) rename tools/moltemplate/moltemplate/force_fields/{cooke_deserno => cooke_deserno_supporting_files}/gen_potential-cooke.py (100%) rename tools/moltemplate/moltemplate/force_fields/{cooke_deserno => cooke_deserno_supporting_files}/tabulated_potential.dat (100%) create mode 100644 tools/moltemplate/moltemplate/force_fields/gaff2.lt delete mode 100755 tools/moltemplate/moltemplate/force_fields/martini/emcprm2lt.py create mode 100644 tools/moltemplate/moltemplate/force_fields/martini_original_format/README.txt rename tools/moltemplate/moltemplate/force_fields/{martini => martini_original_format}/aminoacids.prm (100%) rename tools/moltemplate/moltemplate/force_fields/{martini => martini_original_format}/cholesterol.prm (98%) rename tools/moltemplate/moltemplate/force_fields/{martini => martini_original_format}/lipids.prm (100%) rename tools/moltemplate/moltemplate/force_fields/{martini => martini_original_format}/martini.prm (100%) rename tools/moltemplate/moltemplate/force_fields/{martini => martini_original_format}/polymers.prm (100%) rename tools/moltemplate/moltemplate/force_fields/{martini => martini_original_format}/sugars.prm (100%) delete mode 100644 tools/moltemplate/moltemplate/force_fields/oplsaa/AUTHOR.txt create mode 100644 tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/AUTHOR.txt create mode 100644 tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/README.txt rename tools/moltemplate/moltemplate/force_fields/{oplsaa => oplsaa_original_format}/loplsaa_ext.prm (52%) rename tools/moltemplate/moltemplate/force_fields/{sdk/SDK_lipid+chol.lt => sdk.lt} (98%) delete mode 100644 tools/moltemplate/moltemplate/force_fields/sdk/README.txt create mode 100644 tools/moltemplate/moltemplate/force_fields/sdk_original_format/README.txt rename tools/moltemplate/moltemplate/force_fields/{sdk => sdk_original_format}/SDK_lipidONLY.lt (100%) rename tools/moltemplate/moltemplate/force_fields/{sdk => sdk_original_format}/sdk_cholesterol.prm (100%) rename tools/moltemplate/moltemplate/force_fields/{sdk => sdk_original_format}/sdk_lipids.prm (100%) create mode 100644 tools/moltemplate/moltemplate/nbody_alt_symmetry/cenIflipJK.py create mode 100644 tools/moltemplate/moltemplate/nbody_alt_symmetry/cenJflipIL.py create mode 100755 tools/moltemplate/moltemplate/postprocess_coeffs.py diff --git a/tools/moltemplate/.gitignore b/tools/moltemplate/.gitignore new file mode 100644 index 0000000000..d2053ce4dc --- /dev/null +++ b/tools/moltemplate/.gitignore @@ -0,0 +1,180 @@ +# from https://github.com/github/gitignore/blob/master/Python.gitignore + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# dotenv +.env + +# virtualenv +.venv/ +venv/ +ENV/ + +# Spyder project settings +.spyderproject + +# Rope project settings +.ropeproject + +# text-editor temporary files: +*~ + +# misc rubbish +deleteme* +DELETEME* + +######## files specific to moltemplate and lammps ######## + +# latex/bibtex temporary files for the moltemplate manual: +moltemplate_manual*.aux +moltemplate_manual*.bbl +moltemplate_manual*.blg +moltemplate_manual*.log +moltemplate_manual*.out +moltemplate_manual*.toc + +######## files created by running LAMMPS: ######## + +log.lammps +log.cite +traj*.lammpstrj + +######## files generated by running moltemplate: ######## + +system.data +system.in +system.in.init +system.in.settings +system.in.charges +system.psf +ttree_assignments.txt +output_ttree/ + +# Sections from the LAMMPS data file generated by moltemplate.sh +"Data Header"* +"Data Atoms"* +"Data Masses"* +"Data Velocities"* +"Data Bonds"* +"Data Bond List"* +"Data Bonds AtomId AtomId"* +"Data Angles"* +"Data Dihedrals"* +"Data Impropers"* +"Data Bond Coeffs"* +"Data Angle Coeffs"* +"Data Dihedral Coeffs"* +"Data Improper Coeffs"* +"Data Pair Coeffs"* +"Data PairIJ Coeffs"* + +# interactions-by-type (not id. This is not part of the LAMMPS standard.) +"Data Charge By Bond"* +"Data Bonds By Type"* +"Data Angles By Type"* +"Data Dihedrals By Type"* +"Data Impropers By Type"* + +# class2 data sections +"Data BondBond Coeffs"* +"Data BondAngle Coeffs"* +"Data MiddleBondTorsion Coeffs"* +"Data EndBondTorsion Coeffs"* +"Data AngleTorsion Coeffs"* +"Data AngleAngleTorsion Coeffs"* +"Data BondBond13 Coeffs"* +"Data AngleAngle Coeffs"* + +# sections for non-point-like particles: +"Data Ellipsoids"* +"Data Lines"* +"Data Triangles"* + +# periodic boundary conditions +"Data Boundary"* + +# Sections from the LAMMPS input script(s) generated by moltemplate.sh + +"In Init"* +"In Settings"* +"In Coords"* +"In Charges"* +#temporary file created by moltemplate.sh for storing coordinates +tmp_atom_coords.dat + diff --git a/tools/moltemplate/README.md b/tools/moltemplate/README.md index dc63a6bf4a..c0bcb28296 100644 --- a/tools/moltemplate/README.md +++ b/tools/moltemplate/README.md @@ -1,9 +1,11 @@ +[![Build Status](https://travis-ci.org/jewettaij/moltemplate.svg?branch=master)](https://travis-ci.org/jewettaij/moltemplate.svg?branch=master) + Moltemplate =========== ## Description -Moltemplate is a cross-platform text-based molecule builder for LAMMPS. +Moltemplate is a *general* cross-platform text-based molecule builder for **LAMMPS** and **ESPResSo**. Moltemplate was intended for building custom coarse-grained molecular models, but it can be used to prepare realistic all-atom simulations as well. It currently supports the **OPLS**, **COMPASS**, **AMBER**(GAFF,GAFF2), **MARTINI**, **SDK**, **LOPLS**(2015), and **TraPPE**(1998) force fields, and includes approximately 40 examples. (New force fields and examples are added continually by users.) ## Typical usage @@ -45,7 +47,7 @@ Make sure that your default pip install bin directory is in your PATH. (This is pip uninstall moltemplate -If you continue to run into difficulty, try installing moltemplate into a temporary virtual environment by installing "virtualenv", downloading moltemplate (to "~/moltemplate" in the example below), and running these commands: +If you continue to run into difficulty, try installing moltemplate into a temporary virtual environment by installing "*virtualenv*", downloading moltemplate (to "~/moltemplate" in the example below), and running these commands: cd ~/moltemplate virtualenv venv @@ -53,7 +55,9 @@ If you continue to run into difficulty, try installing moltemplate into a tempor pip install . #(now do something useful with moltemplate...) -(You will have to "run source ~/moltemplate/venv/bin/activate" beforehand every time you want to run moltemplate.) If all this fails, then try installing moltemplate by manually updating your \$PATH environment variable. Instructions for doing that are included below. +(You will have to "run source ~/moltemplate/venv/bin/activate" beforehand every time you want to run moltemplate. +The *virtualenv* tool is +[explained in detail here](http://docs.python-guide.org/en/latest/dev/virtualenvs/)) If all this fails, then try installing moltemplate by manually updating your \$PATH environment variable. Instructions for doing that are included below. ## Manual installation: diff --git a/tools/moltemplate/doc/moltemplate_manual.pdf b/tools/moltemplate/doc/moltemplate_manual.pdf index b0122a3fd875a12c698a128a9646c50eae7a4351..54d8b132bfd5ad1e7f205f673f4754e2a9bdc283 100644 GIT binary patch delta 185280 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

28AgucOFFWP%H~D= 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

NXcvM?QDkK)mVu;? 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%0AP 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 AMgRZ+ diff --git a/tools/moltemplate/doc/moltemplate_manual_src/2bead_residue.jpg b/tools/moltemplate/doc/moltemplate_manual_src/2bead_monomer.jpg similarity index 100% rename from tools/moltemplate/doc/moltemplate_manual_src/2bead_residue.jpg rename to tools/moltemplate/doc/moltemplate_manual_src/2bead_monomer.jpg diff --git a/tools/moltemplate/doc/moltemplate_manual_src/2bead_peptide.jpg b/tools/moltemplate/doc/moltemplate_manual_src/2bead_polymer.jpg similarity index 100% rename from tools/moltemplate/doc/moltemplate_manual_src/2bead_peptide.jpg rename to tools/moltemplate/doc/moltemplate_manual_src/2bead_polymer.jpg diff --git a/tools/moltemplate/doc/moltemplate_manual_src/2bead_peptides_nopbc_t=0_LR.jpg b/tools/moltemplate/doc/moltemplate_manual_src/2bead_polymers_nopbc_t=0_LR.jpg similarity index 100% rename from tools/moltemplate/doc/moltemplate_manual_src/2bead_peptides_nopbc_t=0_LR.jpg rename to tools/moltemplate/doc/moltemplate_manual_src/2bead_polymers_nopbc_t=0_LR.jpg diff --git a/tools/moltemplate/doc/moltemplate_manual_src/2bead_peptides_t=100ps_LR.jpg b/tools/moltemplate/doc/moltemplate_manual_src/2bead_polymers_t=100ps_LR.jpg similarity index 100% rename from tools/moltemplate/doc/moltemplate_manual_src/2bead_peptides_t=100ps_LR.jpg rename to tools/moltemplate/doc/moltemplate_manual_src/2bead_polymers_t=100ps_LR.jpg diff --git a/tools/moltemplate/doc/moltemplate_manual_src/dimer+dimer0_transparent_LR.jpg b/tools/moltemplate/doc/moltemplate_manual_src/mol_complex+mol_complex0_transparent_LR.jpg similarity index 100% rename from tools/moltemplate/doc/moltemplate_manual_src/dimer+dimer0_transparent_LR.jpg rename to tools/moltemplate/doc/moltemplate_manual_src/mol_complex+mol_complex0_transparent_LR.jpg diff --git a/tools/moltemplate/doc/moltemplate_manual_src/dimer_LR.jpg b/tools/moltemplate/doc/moltemplate_manual_src/mol_complex_LR.jpg similarity index 100% rename from tools/moltemplate/doc/moltemplate_manual_src/dimer_LR.jpg rename to tools/moltemplate/doc/moltemplate_manual_src/mol_complex_LR.jpg diff --git a/tools/moltemplate/doc/moltemplate_manual_src/moltemplate_manual.tex b/tools/moltemplate/doc/moltemplate_manual_src/moltemplate_manual.tex index 10a3d4fd38..f8ce810fd5 100644 --- a/tools/moltemplate/doc/moltemplate_manual_src/moltemplate_manual.tex +++ b/tools/moltemplate/doc/moltemplate_manual_src/moltemplate_manual.tex @@ -36,7 +36,7 @@ \author{ Andrew Jewett, \\ - Jensen Lab (Caltech), Shea Lab (UCSB) \\ + MGL Lab (Scripps), Jensen Lab (Caltech), Shea Lab (UCSB) \\ \includegraphics[height=0.3cm]{author_email.png} } \date \today @@ -57,8 +57,16 @@ %(which is distributed with moltemplate). %These were created to supplement the moltemplate documentation. +\subsubsection*{Warning: This manual does not explain how to run ``active-matter'' simulations or use all-atom force fields.} +However numerous examples and README files are available to +demonstrate how to run these kinds of simulations. +Downloading these examples is \textit{highly recommended}. +(See section \ref{sec:installation}.) + \section{Introduction} + + Moltemplate is a general molecule builder and force-field database system for LAMMPS. A simple file format has been created to store molecule definitions and force-fields (the LAMMPS-template format, “LTâ€). LT files are templates containing \textit{all} of the text relevant to a particular molecule (including coordinates, bond-topology, angles, force-field parameters, constraints, groups and fixes). Moltemplate can then duplicate the molecule, customize it, and use it as a building-block for constructing larger, more complex molecules. (These molecules can be used to build even larger molecules.) Once built, individual molecules and subunits can be customized (atoms and bonds, and subunits can be inserted, moved, deleted and/or replaced). @@ -320,57 +328,82 @@ under the terms of the open-source 3-clause BSD license. \section{Installation} - -\subsection*{Obtaining Moltemplate} -\textit{If you don't already have moltemplate}, -the most up-to-date version can be downloaded at -\url{http://www.moltemplate.org} -If you obtained moltemplate as a .tar.gz file, -(as opposed to github or pip), you can unpack it using: -\begin{verbatim} -tar -xzvf moltemplate_2017-8-22.tar.gz -\end{verbatim} -(The date will vary from version to version.) -Alternately, if you obtained moltemplate bundled with LAMMPS, -then the \textit{``moltemplate''} directory will probably be located -in the \textit{``tools''} subdirectory of your lammps installation. +\label{sec:installation} There are two ways to install moltemplate: \subsubsection*{Installation Method 1 (pip)} -\textit{If you are familiar with pip}, then run the following command from within outermost directory: +\textit{If you are familiar with pip}, you can install +moltemplate by typing following command in the terminal/shell: + %from within outermost directory: \begin{verbatim} -pip install . +pip install moltemplate \end{verbatim} -\textit{In order for this to work, this directory should contain a file named ``\textbf{setup.py}''.} (If no such file exists, then either proceed to ``Installation Method 2'' below, or download a newer version of moltemplate.) If you receive an error regarding permissions, then run pip this way instead: +%\textit{In order for this to work, this directory should contain a file named ``\textbf{setup.py}''.} (If no such file exists, then either proceed to ``Installation Method 2'' below, or download a newer version of moltemplate.) +If you receive an error regarding permissions, then run pip this way instead: \begin{verbatim} -pip install . --user +pip install moltemplate --user \end{verbatim} Make sure that your default pip install bin directory is in your PATH. (This is usually something like \textapprox/.local/bin/ or \textapprox/anaconda3/bin/. If you have installed anaconda, your PATH should have been updated for you automatically.) Later, you can uninstall moltemplate using: \begin{verbatim} pip uninstall moltemplate \end{verbatim} -\textit{If you continue to run into difficulty}, try installing moltemplate into a temporary virtual environment by installing ``virtualenv'', downloading moltemplate (to ``\textapprox/moltemplate'' in the example below), and running these commands: +\textit{Note: There are is a large variety of detailed moltemplate examples +which will be omitted if you install moltemplate this way. +\textbf{Downloading the examples is strongly recommended.}} +You can do this either by using git: \begin{verbatim} -cd ~/moltemplate +git clone https://github.com/jewettaij/moltemplate ~/moltemplate +\end{verbatim} +or by visiting the \url{http://www.moltemplate.org} web site. +They will be in the ``examples'' subdirectory.) + +\textit{If you run into difficulty with pip}, then try installing +moltemplate into a temporary virtual environment +by installing ``virtualenv'', +%downloading moltemplate (to ``\textapprox/moltemplate'' in the example below), +and running these commands: +\begin{verbatim} +mkdir ~/moltemplate_v +cd ~/moltemplate_v virtualenv venv source venv/bin/activate -pip install . +pip install moltemplate #(now do something useful with moltemplate...) \end{verbatim} -You will have to ``run source \textapprox/moltemplate/venv/bin/activate'' beforehand whenver you want to run moltemplate. If all this fails, then try installing moltemplate by manually updating your \$PATH environment variable. Instructions for doing that are included below. +You will have to ``run source \textapprox/moltemplate\_v/venv/bin/activate'' beforehand whenver you want to run moltemplate again. If all this fails, then try installing moltemplate by manually updating your \$PATH environment variable. Instructions for doing that are included below. \subsubsection*{Installation Method 2} -Alternatively, you can edit your PATH variable manually to include +Alternatively, you can download the moltemplate files and edit your +PATH variable manually to include the subdirectory where the moltemplate.sh script is located (typically ``\textapprox/moltemplate/moltemplate/scripts/''), as well as -the directory containing the most of the python scripts (``\textapprox/moltemplate/moltemplate/''). -Suppose the directory where with the README file is named ``moltemplate'' -and it is located in your home directory: +the directory containing the most of the python scripts +(``\textapprox/moltemplate/moltemplate/''). + +\subsection*{Obtaining Moltemplate} +The most up-to-date version of moltemplate can be downloaded using git. +\begin{verbatim} +git clone https://github.com/jewettaij/moltemplate ~/moltemplate +\end{verbatim} +Later, you can update to the latest version of moltemplate using: +\begin{verbatim} +git pull +\end{verbatim} +Alternatively, you can also download moltemplate as a .tar.gz archive from +\url{http://www.moltemplate.org} +and can unpack it using: +\begin{verbatim} +tar -xzvf moltemplate_2017-8-22.tar.gz +\end{verbatim} +(The date will vary from version to version.) +Somewhat older versions of moltemplate are also bundled with the LAMMPS +source code and are located in the \textit{``tools''} subdirectory. + If you use the \textbf{bash} shell, typically you would edit your \mbox{$\sim$/.bash\_profile}, @@ -409,7 +442,7 @@ If you are using an older version of windows, try following the tutorial written To use LAMMPS and moltemplate, You will also need to install (and learn how to use) a text editor. (Word, Wordpad, and Notepad will not work.) Popular free text editors which you can safely install and run from within the WSL terminal include: nano, ne, emacs, vim, and jove. (Unfortunately, as of 2017-5-17, graphical unix-friendly text editors such as Atom, VSCode, Notepad++, and sublime won't work with WSL, and may cause file system corruption. Avoid these editors for now. (\url{https://www.reddit.com/r/bashonubuntuonwindows/comments/6bu1d1/since_we_shouldnt_edit_files_stored_in_wsl_with/}) -%\pagebreak +\pagebreak \section{Quick reference \textit{(skip on first reading)}} \section*{ @@ -674,7 +707,7 @@ create\_var \{ \textit{variable} \} & Create a variable specific to this molecule object. (Typically this is used to create molecule-ID numbers, for a molecule built from smaller components. -See section \ref{sec:2beadPeptide}.) +See section \ref{sec:2beadPolymer}.) \\ \hline replace \{ \textit{oldvariable} \textit{newvariable} \} & @@ -761,7 +794,7 @@ Note: \mbox{\textit{``\$mol''}} is shorthand for \mbox{\textit{``\$mol:.''}}) \$\textit{mol:}... & The ID number assigned to the molecule to which this object belongs (if applicable). -See sections \ref{sec:2beadPeptide}, +See sections \ref{sec:2beadPolymer}, \ref{sec:ellipsis_mol}, %\ref{sec:paths}, and appendix \ref{sec:adv_variable_syntax}. @@ -897,6 +930,21 @@ you want the scaling to occur. Of omitted, the origin is used.) \\ \hline +\begin{tabular}[t]{l} + \textit{.quat($a,b,c,d$)} \\ + \textit{.quat($a,b,c,d,x_0,y_0,z_0$)} \\ + \textit{.quatT($a,b,c,d$)} \\ + \textit{.quatT($a,b,c,d,x_0,y_0,z_0$)} \\ +\end{tabular} + & + Rotate atom coordinates by the rotation corresponding + to quaternion $a+b\mathbf{i}+c\mathbf{j}+b\mathbf{k}$ + (around \mbox{$(x_0,y_0,z_0)$}, if specified) + The \textit{.quatT(a,b,c,d)} variant performs the inverse rotation. + (Equivalent to \textit{.quat(a,-b,-c,-d)}.) + % Otherwise around $(0,0,0)$) +\\ +\hline \multicolumn{2}{c} { \textbf{ \textit{Note:} @@ -940,7 +988,6 @@ In this example, the first transformation, ``rot()'', is applied to both ``monom - \subsection{moltemplate.sh command line arguments:} \label{sec:args_table} %\begin{table} @@ -1055,7 +1102,7 @@ Do \textit{not} check for common LAMMPS/moltemplate syntax errors. This forces moltemplate.sh to check that there are valid angle and dihedral interactions defined for every 3 or 4 consecutively bonded atoms in the system -(defined in "Data Angles By Type'' and ``Data Dihedrals By Type" sections). +(defined in ``Data Angles By Type'' and ``Data Dihedrals By Type'' sections). \\ \hline -vmd & @@ -1094,10 +1141,16 @@ Invoke VMD after running moltemplate to view the system you have just created. Normally moltemplate.sh reorders the atoms in each bond, angle, dihedral, and improper interaction before writing them to the DATA file in order to help avoid duplicate interactions between the same atoms if listed in different but equivalent orders. Sometimes this is undesirable. \textit{\textbf{To disable this behavior, set ``file.py'' to ``None''.}} You can also manually choose alternate symmetry rules for unusual force fields. (Such as class2 force fields, dihedral\_style spherical, etc... For an example of the file format for ``file.py'', see the ``nbody\_Impropers.py'' file.) \\ \hline +-allow-wildcards & +Allow the use of ``*'' and ``?'' characters within +``pair\_coeff'', ``bond\_coeff'', ``angle\_coeff'', ``dihedral\_coeff'', +and ``improper\_coeff'' commands. (Default) +\\ +\hline \end{tabular} -%\pagebreak +\pagebreak @@ -2061,30 +2114,30 @@ within moltemplate is discouraged. See section \ref{sec:wildcard_bug}.) Objects can be connected together to form larger molecule objects. These objects can be used to form still larger objects. As an example, we define a small 2-atom molecule named ``Monomer'', -and use it to construct a short polymer (``Peptide''). +and use it to construct a short polymer (``Polymer''). \begin{figure}[htbp] \centering \textbf{a)} -\includegraphics[height=3cm]{2bead_residue.jpg} +\includegraphics[height=3cm]{2bead_monomer.jpg} \quad \quad \quad \quad \quad \textbf{b)} -\includegraphics[height=3cm]{2bead_peptide.jpg} +\includegraphics[height=3cm]{2bead_polymer.jpg} \newline \vspace{10 mm} \newline \textbf{c)} -\includegraphics[width=4cm]{2bead_peptides_nopbc_t=0_LR.jpg} +\includegraphics[width=4cm]{2bead_polymers_nopbc_t=0_LR.jpg} \textbf{d)} -\includegraphics[width=4cm]{2bead_peptides_t=100ps_LR.jpg} +\includegraphics[width=4cm]{2bead_polymers_t=100ps_LR.jpg} \caption{ -\label{fig:2bead_peptide} +\label{fig:2bead_polymer} \textbf{a)-b)} \textit{Building a complex system from small pieces:} Construction of a polymer (\textbf{b}) out of smaller (2-atom) subunits (\textbf{a}) using composition and rigid-body transformations. -Bonds connecting different residues together (blue) +Bonds connecting different monomer together (blue) must be declared explicitly, but angle and dihedral interactions will be generated automatically. See section \ref{sec:2bead} for details. @@ -2130,20 +2183,123 @@ Monomer inherits ForceField { \end{verbatim} -Soon will use it to construct a polymer (``Peptide'') +Soon will use it to construct a polymer (``Polymer'') \textit{Note: The ellipsis notation used here ``\$mol:...''. warns moltemplate that the ``Monomer'' molecule may be part of a larger molecule. (This is explained in more detail in section \ref{sec:ellipsis_mol}.) +(Note: The meaning of ``inherits ForceField'' + will be explained below in section \ref{sec:nbody_by_type_intro}) } - + In this example we will define two kinds of molecule objects: -``Monomer'', and ``Peptide'' (\textit{defined later}). -It is often convenient to store atom types, masses, and force-field -parameters in a separate file so that they -can be shared between these different molecules. -We do that in the ``forcefield.lt'' file below: +``Monomer'', and ``Polymer'' (\textit{defined later}). +\subsubsection*{Building a simple polymer} +We construct a short polymer by making 7 copies of ``Monomer'', +rotating and moving each copy: +\label{sec:2beadPolymer} +\begin{verbatim} +# -- file "polymer.lt" -- + +import "monomer.lt" #(defines "Monomer" and "ForceField") + +Polymer inherits ForceField { + + # The next line is optional: + create_var {$mol} #(force all monomers to share the same molecule-ID) + + # Now create some monomers + + mon1 = new Monomer #(no need to move the first monomer) + mon2 = new Monomer.rot(180.0, 1,0,0).move(3.2,0,0) + mon3 = new Monomer.rot(360.0, 1,0,0).move(6.4,0,0) + mon4 = new Monomer.rot(540.0, 1,0,0).move(9.6,0,0) + mon5 = new Monomer.rot(720.0, 1,0,0).move(12.8,0,0) + mon6 = new Monomer.rot(900.0, 1,0,0).move(16.0,0,0) + mon7 = new Monomer.rot(1080.0, 1,0,0).move(19.2,0,0) + + # Now, link the monomers together this way: + write("Data Bonds") { + $bond:backbone1 @bond:Backbone $atom:mon1/ca $atom:mon2/ca + $bond:backbone2 @bond:Backbone $atom:mon2/ca $atom:mon3/ca + $bond:backbone3 @bond:Backbone $atom:mon3/ca $atom:mon4/ca + $bond:backbone4 @bond:Backbone $atom:mon4/ca $atom:mon5/ca + $bond:backbone5 @bond:Backbone $atom:mon5/ca $atom:mon6/ca + $bond:backbone6 @bond:Backbone $atom:mon6/ca $atom:mon7/ca + } +} +\end{verbatim} +The position and orientation of each copy of ``Monomer'' +is specified after the ``new'' statement. +Each ``new'' statement is typically followed by a chain of +move/rotate/scale functions separated by dots, evaluated left-to-right +(optionally followed by square brackets and then more dots). +For example, ``mon2'' is a copy of ``Monomer'' which is first rotated +180 degrees around the X axis (denoted by ``1,0,0''), +and \textbf{then} moved in the (3.2,0,0) direction. +(The last three arguments to the ``rot()'' command + denote the axis of rotation, which does not have to be normalized.) +(A list of available coordinate transformations +is provided in section \ref{sec:xforms_table}.) + +\textit{(Note: Although we did not do this here, +it is sometimes convenient to represent polymers as 1-dimensional arrays. +See sections \ref{sec:arrays} and \ref{sec:random_arrays} for examples.)} + +To bond atoms in different molecules or molecular subunits together, we used +the write(``Data Bonds'') command to append additional bonds to the system. + +%\subsubsection{Sharing atom, bond and angle types} +%Normally you must separately define the parameters for all of the atoms types, +%and bond types, angle types etc... in every type of molecule. +%However different kinds of monomers in a heteropolymer typically will +%share some common backbone atom types and other properties. +%You must be careful to indicate which atom and bond types are shared between +%different monomers by referring them using a ``../'' prefix. +%(See sections \ref{sec:variable_scope}, +%\ref{sec:paths}, and +%\ref{sec:butane} for details and examples.) +%\textit{Note: There is a heteropolymer example in the the +%``2bead\_heteropolymer/'' directory in the online examples. +%This example demonstrates how to share backbone atoms, bonds, and angles. +%You can also define specific angle or dihedral interactions which are +%specific to the atom types in different monomers.} + + +\subsection{Bonded interactions \textit{by type}} +\label{sec:nbody_by_type_intro} + +In this example we did \textit{not} provide a list of all 3-body +and 4-body angle forces between bonded atoms in the polymer. +Moltemplate allows you to manually list all of these interactions +(using the ``write\_once("Data Angles")'' command +from section \ref{sec:spce_example}, +\textit{or} +the ``write\_once("Data Dihedrals")'', +or ``write\_once("Data Impropers")'' commands). +However there are usually many of them. +For this reason, it is often more convenient to provide +moltemplate with instructions to help it automatically figure out +which atoms participate in 3-body and 4-body angle interactions, +and what force field parameters to assign to them. +We will do that below using the following commands: +``write\_once("Data Angles By Type")'', +``write\_once("Data Dihedrals By Type")'', and +``write\_once("Data Impropers By Type")'' + + %Moltemplate can detect consecutively bonded atoms and + %determine the forces between them based on atom type (and bond type). + +Furthermoree, since many different kinds molecules often share +the same rules for creating 3-body and 4-body angle interactions, +it is convenient to organize all of this information +together into one place (eg an object named ``ForceField''). +A ``ForceField'' object will typically include many +``write\_once("Data Angles By Type")'' +commands, as well as force field parameters and related atom type properties. +We also typically store that information in a separate file +(eg ``forcefield.lt'', ``oplsaa.lt'', ``gaff2.lt'', ``compass.lt'', etc...). \begin{verbatim} # -- file "forcefield.lt" -- @@ -2199,14 +2355,14 @@ ForceField { angle_coeff @angle:Sidechain 30.00 132 } + # 4-body interactions in this example are listed by atomType # Rules for determining 4-body (dihedral) interactions by atom & bond type: write_once("Data Dihedrals By Type") { - # dihedralType atmType1 atmType2 atmType3 atmType4 bondType1 bnd2 bnd3 + # dihedralType atmType1 atmType2 atmType3 atmType4 bondType1 bType2 bType3 @dihedral:CCCC @atom:CA @atom:CA @atom:CA @atom:CA @bond:* @bond:* @bond:* @dihedral:RCCR @atom:R @atom:CA @atom:CA @atom:R @bond:* @bond:* @bond:* } - # 4-body interactions in this example are listed by atomType # The forumula used is: # # Udihedral(phi) = K * (1 + cos(n*phi - d)) @@ -2229,111 +2385,22 @@ ForceField { bond_style harmonic angle_style harmonic dihedral_style charmm - pair_style lj/cut/coul/debye 0.1 11.0 - pair_modify mix arithmetic - dielectric 80.0 - special_bonds lj 0.0 0.0 0.0 + pair_style lj/cut 11.0 } } \end{verbatim} - - - -\subsubsection{Building a simple polymer} -We construct a short polymer by making 7 copies of ``Monomer'', -rotating and moving each copy: -\label{sec:2beadPeptide} -\begin{verbatim} -# -- file "peptide.lt" -- - -import "monomer.lt" - -Peptide inherits ForceField { - - create_var {$mol} # optional:force all monomers to share the same molecule-ID - # (The "Data Atoms" in Monomer must use the "$mol:..." notation.) - - res1 = new Monomer - res2 = new Monomer.rot(180.0, 1,0,0).move(3.2,0,0) - res3 = new Monomer.rot(360.0, 1,0,0).move(6.4,0,0) - res4 = new Monomer.rot(540.0, 1,0,0).move(9.6,0,0) - res5 = new Monomer.rot(720.0, 1,0,0).move(12.8,0,0) - res6 = new Monomer.rot(900.0, 1,0,0).move(16.0,0,0) - res7 = new Monomer.rot(1080.0, 1,0,0).move(19.2,0,0) - - # Now, link the residues together this way: - write("Data Bonds") { - $bond:backbone1 @bond:Backbone $atom:res1/ca $atom:res2/ca - $bond:backbone2 @bond:Backbone $atom:res2/ca $atom:res3/ca - $bond:backbone3 @bond:Backbone $atom:res3/ca $atom:res4/ca - $bond:backbone4 @bond:Backbone $atom:res4/ca $atom:res5/ca - $bond:backbone5 @bond:Backbone $atom:res5/ca $atom:res6/ca - $bond:backbone6 @bond:Backbone $atom:res6/ca $atom:res7/ca - } -} -\end{verbatim} -The position and orientation of each copy of ``Monomer'' -is specified after the ``new'' statement. -Each ``new'' statement is typically followed by a chain of -move/rotate/scale functions separated by dots, evaluated left-to-right -(optionally followed by square brackets and then more dots). -For example, ``res2'' is a copy of ``Monomer'' which is first rotated -180 degrees around the X axis (denoted by ``1,0,0''), -and \textbf{then} moved in the (3.2,0,0) direction. -(The last three arguments to the ``rot()'' command - denote the axis of rotation, which does not have to be normalized.) -(A list of available coordinate transformations -is provided in section \ref{sec:xforms_table}.) - -\textit{(Note: Although we did not do this here, -it is sometimes convenient to represent polymers as 1-dimensional arrays. -See sections \ref{sec:arrays} and \ref{sec:random_arrays} for examples.)} - -To bond atoms in different molecules or molecular subunits together, we used -the write(``Data Bonds'') command to append additional bonds to the system. - -%\subsubsection{Sharing atom, bond and angle types} -%Normally you must separately define the parameters for all of the atoms types, -%and bond types, angle types etc... in every type of molecule. -%However different kinds of monomers in a heteropolymer typically will -%share some common backbone atom types and other properties. -%You must be careful to indicate which atom and bond types are shared between -%different monomers by referring them using a ``../'' prefix. -%(See sections \ref{sec:variable_scope}, -%\ref{sec:paths}, and -%\ref{sec:butane} for details and examples.) -%\textit{Note: There is a heteropolymer example in the the -%``2bead\_heteropolymer/'' directory in the online examples. -%This example demonstrates how to share backbone atoms, bonds, and angles. -%You can also define specific angle or dihedral interactions which are -%specific to the atom types in different residues.} - - -\subsection{Bonded interactions \textit{by type}} -\label{sec:nbody_by_type_intro} - -In this example we did \textit{not} provide a list of all 3-body -and 4-body forces between bonded atoms in the polymer. -(for example using the ``write\_once("Data Angles")'' command -from section \ref{sec:spce_example}, -\textit{or} -the ``write\_once("Data Dihedrals")'', -or ``write\_once("Data Impropers")'' commands.) -Instead we provided moltemplate.sh with instructions to help it figure out -which atoms participate in 3-body and 4-body bonded interactions. -Moltemplate can detect consecutively bonded atoms and -determine the forces between them based on atom type. -(Bond type can also be used as a criteria.) -We did this in ``forcefield.lt'' using the -\mbox{``write\_once("Data Angles By Type")''} and -\mbox{``write\_once("Data Dihedrals By Type")''} -commands. -You can also generate improper interactions -between any 4-atoms bonded together in a T-shaped topology -using the ``write\_once("Impropers By Type")'' command. -See appendix \ref{sec:nbody_by_type} for more details. -\textit{(More general interactions are possible. - See appendix \ref{sec:nbody_by_type_custom}.)} +Any molecule that wants to access this information can use the +``inherits ForceField'' keyword. +\textit{(...as we did in the ``monomer.lt'' and ``polymer.lt'' files in theexample above. + Note: the ``import forcefield'' statement was also necessary because the + information is located in a separate file: ``forcefield.lt''.} +%\textit{(Note: You can also generate \textbf{improper} interactions +% %between any 4-atoms bonded together in a T-shaped topology +% the same way, using the ``write\_once("Impropers By Type")'' command. +% See appendix \ref{sec:nbody_by_type} for more details. +\textit{You can customize these ``By Type'' rules further + by altering the bond topology search rules and atom type symmetry. + See appendix \ref{sec:nbody_by_type_custom} for details.)} %\subsubsection*{\textit{(Advanced)} Order matters when sets overlap} %Bonded-interactions are generated in the order they appear in the LT file. @@ -2379,17 +2446,17 @@ with molecules or atoms. (See sections \ref{sec:coords_intro} and \ref{sec:multidimensional_arrays}.) Here we show an easier way to create the short polymer -shown in section \ref{sec:2beadPeptide}. +shown in section \ref{sec:2beadPolymer}. You can make 7 copies of the \textit{Monomer} molecule this way: \begin{verbatim} - res = new Monomer[7] + monomers = new Monomer[7] \end{verbatim} This creates 7 new \textit{Monomer} molecules (named -\mbox{\textit{res[0]}}, -\mbox{\textit{res[1]}}, -\mbox{\textit{res[2]}}, -\mbox{\textit{res[3]}}, ... -\mbox{\textit{res[6]}}). +\mbox{\textit{monomers[0]}}, +\mbox{\textit{monomers[1]}}, +\mbox{\textit{monomers[2]}}, +\mbox{\textit{monomers[3]}}, ... +\mbox{\textit{monomers[6]}}). Unfortunately, by default, the coordinates of each molecule are identical. To prevent the atom coordinates from overlapping, you have several choices: @@ -2398,13 +2465,13 @@ To prevent the atom coordinates from overlapping, you have several choices: After every square-bracket [] in a new command, you can specify a list of transformations to apply. For example, we could have generated atomic coordinates for the -the short polymer in section \ref{sec:2beadPeptide} +the short polymer in section \ref{sec:2beadPolymer} using this command: \begin{verbatim} - res = new Monomer [7].rot(180, 1,0,0).move(3.2,0,0) + monomers = new Monomer [7].rot(180, 1,0,0).move(3.2,0,0) \end{verbatim} This will create 7 molecules. -The coordinates of the first molecule \textit{res[0]} are will be unmodified. +The coordinates of the first molecule \textit{monomers[0]} are will be unmodified. However each successive molecule will have its coordinates cumulatively modified by the commands ``rot(180, 1,0,0)'' followed by ``move(3.2,0,0)''. \subsubsection*{optional: initial customizations (preceding [] brackets)} @@ -2413,7 +2480,7 @@ You can also make adjustments to the initial coordinates of the molecule before it is copied, and before any of the array transformations are applied. For example: \begin{verbatim} - res = new Monomer.scale(1.5) [7].rot(180, 1,0,0).move(3.2,0,0) + monomers = new Monomer.scale(1.5) [7].rot(180, 1,0,0).move(3.2,0,0) \end{verbatim} In this example, the ``scale(1.5)'' transformation is applied once to enlarge every \textit{Monomer} object initially. @@ -2426,17 +2493,17 @@ are applied to build the polymer Alternately you apply transformations to a molecule after they have been created (even if they are part of an array). \begin{verbatim} - res = new Monomer [7] + monomers = new Monomer [7] # Again, the first line creates the molecules named - # "res[0]", "res[1]", "res[2]", "res[3]", ... "res[6]". + # "monomers[0]", "monomers[1]", "monomers[2]", ... "monomers[6]". # The following lines move them into position. - res[1].rot(180.0, 1,0,0).move(3.2,0,0) - res[2].rot(360.0, 1,0,0).move(6.4,0,0) - res[3].rot(540.0, 1,0,0).move(9.6,0,0) - res[4].rot(720.0, 1,0,0).move(12.8,0,0) - res[5].rot(900.0, 1,0,0).move(16.0,0,0) - res[6].rot(1080.0, 1,0,0).move(19.2,0,0) + monomers[1].rot(180.0, 1,0,0).move(3.2,0,0) + monomers[2].rot(360.0, 1,0,0).move(6.4,0,0) + monomers[3].rot(540.0, 1,0,0).move(9.6,0,0) + monomers[4].rot(720.0, 1,0,0).move(12.8,0,0) + monomers[5].rot(900.0, 1,0,0).move(16.0,0,0) + monomers[6].rot(1080.0, 1,0,0).move(19.2,0,0) \end{verbatim} \subsection{Transformation order (general case)} @@ -2454,13 +2521,13 @@ copy of the molecule multiple times. XFORMS2 will be applied $i$ times.) Finally after all the molecules have been created, the list of transformations in XFORMS3 will be applied. -For example, to create a ring of 10 peptides of radius 30.0, +For example, to create a ring of 10 polymers of radius 30.0, centered at position (0,25,0), use this notation: \begin{verbatim} -peptide_ring = new Peptide.move(0,30,0) [10].rot(36,1,0,0) +polymer_ring = new Polymer.move(0,30,0) [10].rot(36,1,0,0) # After creating it, we can move the entire ring # (These commands are applied last.) -peptide_ring[*].move(0,25,0) +polymer_ring[*].move(0,25,0) \end{verbatim} @@ -2618,19 +2685,19 @@ commands appearing later (following ``[50]'') are carried out. \label{sec:array_wildcards_intro} You can move the entire array of molecules using ``[*]'' notation: \begin{verbatim} - res[*].move(0,0,40) + monomers[*].move(0,0,40) \end{verbatim} -(Note that ``res.move(0,0,40)'' does not work. +(Note that ``monomers.move(0,0,40)'' does not work. You must include the ``[*]''.) -You can also use range limits to move only some of the residues: +You can also use range limits to move only some of the monomers: \begin{verbatim} - res[2-4].move(0,0,40) + monomers[2-4].move(0,0,40) \end{verbatim} -This will move only the third, fourth, and fifth residues. +This will move only the third, fourth, and fifth monomers. If you are more familiar with python's slice notation, you can accomplish the same thing using: \begin{verbatim} - res[2:5].move(0,0,40) + monomers[2:5].move(0,0,40) \end{verbatim} (In this case, the second integer (eg ``5'') is interpreted as a strict upper bound.) @@ -2678,10 +2745,10 @@ You can build multidimensional arrays using slice notation as well, for example The same techniques work with multidimensional arrays. Coordinate transformations can be applied to each layer in a multi-dimensional array. -For example, to create a cubic lattice of 3x3x3 peptides: +For example, to create a cubic lattice of 3x3x3 polymers: you would use this syntax: \begin{verbatim} -molecules = new Peptide [3].move(30.0, 0, 0) +molecules = new Polymer [3].move(30.0, 0, 0) [3].move(0, 30.0, 0) [3].move(0, 0, 30.0) \end{verbatim} @@ -2689,14 +2756,14 @@ molecules = new Peptide [3].move(30.0, 0, 0) with cylindrical, helical, conical, or toroidal symmetry.) \subsection{Customizing individual rows, columns, or layers} -Similarly, you can customize the position of individual peptides, +Similarly, you can customize the position of individual polymers, or layers or columns using the methods above: \begin{verbatim} molecules[1][*][*].move(0,20,0) molecules[*][1][*].move(0,0,20) molecules[*][*][1].move(20,0,0) \end{verbatim} -See figure \ref{fig:2bead_peptide}c) +See figure \ref{fig:2bead_polymer}c) \textit{(You can also use slice notation, eg ``molecules[1][0-2][0-1].move(20,0,0)'')} @@ -2858,48 +2925,57 @@ And all of this can be done from anywhere else in the LT file. %\textit{(The notation in section \ref{sec:paths} explains % how to navigate the object hierarchy.)} -For example, suppose we used the ``Peptide'' molecule we defined above -to create a larger, more complex ``Dimer'' molecule. +For example, suppose we used the ``Polymer'' molecule we defined above +to create a larger, more complicated ``MolecularComplex'' molecule. \begin{verbatim} -Dimer { - peptides[0] = new Peptide - peptides[1] = new Peptide.rot(180,1,0,0).move(0, 12.4, 0) +MolecularComplex { + polymers[0] = new Polymer + polymers[1] = new Polymer.rot(180,1,0,0).move(0, 12.4, 0) } -dimer = new Dimer +mol_complex = new MolecularComplex \end{verbatim} -The \textit{Dimer} molecule is shown in figure \ref{fig:dimers}a). -\textit{Optional: If you want all the atoms in a ``Dimer'' to share the same molecule-ID, -then define ``Dimer'' this way:} +The \textit{MolecularComplex} molecule is shown in figure \ref{fig:mol_complex}a). +\textit{Optional: If you want all the atoms in a ``MolecularComplex'' to share the same molecule-ID, +then define ``MolecularComplex'' this way:} \begin{verbatim} -Dimer inherits ForceField { +MolecularComplex inherits ForceField { create_var { $mol } - peptides[0] = new Peptide - peptides[1] = new Peptide.rot(180,1,0,0).move(0, 12.4, 0) + polymers[0] = new Polymer + polymers[1] = new Polymer.rot(180,1,0,0).move(0, 12.4, 0) } \end{verbatim} \textit{For this to work, you must also delete the \mbox{\textit{``create\_var \{\$mol:.\}''}} line from - the definition of the Peptide molecule. See section \ref{sec:2bead}.} + the definition of the Polymer molecule. See section \ref{sec:2bead}.} -We can subsquently customize the position of the 3rd residue -of the second peptide this way: +We can subsquently customize the position of the 3rd monomer (``monomers[2]'') +of the second polymer (``polymers[1]''), this way: \begin{verbatim} -dimer/peptides[1]/res[2].move(0,0.2,0.6) +mol_complex/polymers[1]/monomers[2].move(0,0.2,0.6) \end{verbatim} -This does not effect the position of \textit{res[2]} in \textit{peptides[0]}. -(or in any other \textit{``Peptide''} or \textit{``Dimer''} molecule.) -If you want to move both residues, you could use a wildcard character ``*'' +This does not effect the position of +\textit{monomers[2]} in \textit{polymers[0]}. +(or in any other \textit{``Polymer''} or +\textit{``MolecularComplex''} molecule.) +If you want to do the same thing for both polymers, +you could use a wildcard character ``*'' \begin{verbatim} -dimer/peptides[*]/res[2].move(0,0.2,0.6) +mol_complex/polymers[*]/res[2].move(0,0.2,0.6) \end{verbatim} -(You can also use ranged (slice) notation, such as ``peptides[0-1]'', - as an alternative to ``peptides[*]''. +If you want to move both polymers, you can use: +\begin{verbatim} +mol_complex/polymers[*].move(0,0.2,0.6) +\end{verbatim} +you could use a wildcard character ``*'' +(You can also use ranged (slice) notation, such as ``polymers[0-1]'', + as an alternative to ``polymers[*]''. See section \ref{sec:array_wildcards_intro}. -To make changes that apply to every subsequently created \textit{``Peptide''} or -\textit{``Dimer''} molecule, see section \ref{sec:molecule_customization}.) +To make changes that apply to every subsequently created \textit{``Polymer''} +or \textit{``MolecularComplex''} molecule, +see section \ref{sec:molecule_customization}.) \subsection{Customizing individual atom locations} @@ -2907,10 +2983,10 @@ To make changes that apply to every subsequently created \textit{``Peptide''} or The ``move'' or ``rot'' commands can not be used to control the positions of \textit{individual atoms}. Instead simply overwrite their coordinates this way: -%$atom:dimer/peptides[0]/res[2]/CA $mol:dimer/peptides[1] @atom:R 0 6.4 8.0 0 +%$atom:mol_complex/polymers[0]/res[2]/CA $mol:mol_complex/polymers[1] @atom:R 0 6.4 8.0 0 \begin{verbatim} write("Data Atoms") { - $atom:dimer/peptides[0]/res[2]/ca $mol:... @atom:R 0 6.4 8.2 0.6 + $atom:mol_complex/polymers[0]/res[2]/ca $mol:... @atom:R 0 6.4 8.2 0.6 } \end{verbatim} @@ -2918,8 +2994,8 @@ write("Data Atoms") { \label{sec:adding_atoms_bonds} Adding additional bonds within a molecule can be accomplished by writing additional lines of text to the ``Data Bonds'' section. -(This is what we did when we added bonds between residues to create a polymer - in section \ref{sec:2beadPeptide}.) +(This is what we did when we added bonds between monomers to create a polymer + in section \ref{sec:2beadPolymer}.) Again, bonds and atom names must be referred to by their \textit{full} names. Bonds and bonded interactions can be deleted using the ``delete'' command. (See section \ref{sec:delete}.) @@ -2931,18 +3007,18 @@ Bonds and bonded interactions can be deleted using the ``delete'' command. \subsubsection{Deleting molecules or molecular subunits} Molecules can be further customized by deleting individual atoms, bonds, bonded-interactions, and entire subunits. -We can \textbf{delete} the 3rd residue of the second peptide, +We can \textbf{delete} the 3rd monomer of the second polymer, use the ``delete'' command: \begin{verbatim} -delete dimer/peptides[1]/res[2] +delete mol_complex/polymers[1]/res[2] \end{verbatim} \subsubsection{Deleting atoms, bonds, angles, dihedrals, and impropers} \label{sec:delete_atoms_bonds} Individual atoms or bonds can be deleted in a similar way: \begin{verbatim} -delete dimer/peptides[1]/res[3]/ca #<-- deletes the "ca" atom -delete dimer/peptides[1]/res[4]/cr #<-- deletes the "cr" bond +delete mol_complex/polymers[1]/res[3]/ca #<-- deletes the "ca" atom +delete mol_complex/polymers[1]/res[4]/cr #<-- deletes the "cr" bond \end{verbatim} Whenever an atom or a molecule is deleted, the bonds, angles, dihedrals, and improper interactions involving those atoms are deleted as well. @@ -2961,10 +3037,10 @@ generated by moltemplate are removed as well. are not removed. These need to be deleted manually.) Multiple molecules can moved or deleted in a single command. For example, -the following command deletes the third, fourth, and fifth residues from -both peptides[0] and peptides[1]: +the following command deletes the third, fourth, and fifth monomers from +both polymers[0] and polymers[1]: \begin{verbatim} -delete dimer/peptides[*]/res[2-4] +delete mol_complex/polymers[*]/res[2-4] \end{verbatim} See section \ref{sec:array_wildcards_intro} for an explanation of ranged (``[2-4]'') array notation, @@ -3001,13 +3077,13 @@ to make sure they look reasonable. %By default, this transformations is applied relative %to the coordinate system in which the command was given. %In other words, this command will move the third - %residue of peptides[1] in the +Y direction + %monomer of polymers[1] in the +Y direction %regardless of the direction that the molecule ``res[2]'' is facing. %Alternately, if we want to apply this transformation - %in peptides[1]'s local coordinate system, - %we would use the context(peptides[1]) command: + %in polymers[1]'s local coordinate system, + %we would use the context(polymers[1]) command: %\begin{verbatim} - %dimer2/peptides[1]/res[2].context(peptides[1]).move(0,1,0) + %mol_complex/polymers[1]/res[2].context(polymers[1]).move(0,1,0) %\end{verbatim} @@ -3032,14 +3108,14 @@ to make sure they look reasonable. You can create modified versions of existing molecule \textit{types}, without having to redefine the entire molecule. For example: \begin{verbatim} -Dimer0 = Dimer.move(-9.6,-6.2, 0).scale(0.3125) +MolecularComplex0 = MolecularComplex.move(-9.6,-6.2, 0).scale(0.3125) \end{verbatim} or equivalently: \begin{verbatim} -Dimer0 = Dimer -Dimer0.move(-9.6,-6.2, 0).scale(0.3125) +MolecularComplex0 = MolecularComplex +MolecularComplex0.move(-9.6,-6.2, 0).scale(0.3125) \end{verbatim} -This creates a new type of molecule named ``Dimer0'' whose +This creates a new type of molecule named ``MolecularComplex0'' whose coordinates have been centered and rescaled. (Note that the ``scale()'' command only effects the atomic coordinates. (You will have to override earlier force field settings, @@ -3047,11 +3123,11 @@ such as atomic radii and bond-lengths in order for this to work properly.) If we want to make additional customizations (such as adding atoms, bonds, or molecular subunits), we could use this syntax: \begin{verbatim} -Dimer0 = Dimer +MolecularComplex0 = MolecularComplex -# Add some new atoms connecting the two peptides in the dimer +# Add some new atoms connecting the two polymers in the mol_complex -Dimer0 inherits ForceField { +MolecularComplex0 inherits ForceField { write("Data Atoms") { $atom:t1 $mol:. @atom:CA 0.0 23.0 0.0 0.0 $atom:t2 $mol:. @atom:CA 0.0 24.7 4.0 0.0 @@ -3059,36 +3135,36 @@ Dimer0 inherits ForceField { $atom:t4 $mol:. @atom:CA 0.0 23.0 12.4 0.0 } write("Data Bonds") { - $bond:b1 @bond:Backbone $atom:peptides[0]/res7/CA $atom:t1 + $bond:b1 @bond:Backbone $atom:polymers[0]/res7/CA $atom:t1 $bond:b2 @bond:Backbone $atom:t1 $atom:t2 $bond:b3 @bond:Backbone $atom:t2 $atom:t3 $bond:b4 @bond:Backbone $atom:t3 $atom:t4 - $bond:b5 @bond:Backbone $atom:t4 $atom:peptides[1]/res7/ca + $bond:b5 @bond:Backbone $atom:t4 $atom:polymers[1]/res7/ca } } -# Center and rescale the atoms in all "Dimer0" -Dimer0.move(-9.6,-6.2, 0).scale(0.3125) +# Center and rescale the atoms in all "MolecularComplex0" +MolecularComplex0.move(-9.6,-6.2, 0).scale(0.3125) \end{verbatim} -The result of these modifications is shown in figure \ref{fig:dimers}b). +The result of these modifications is shown in figure \ref{fig:mol_complex}b). \begin{figure}[htbp] \centering \textbf{a)} -\includegraphics[height=3cm]{dimer_LR.jpg} +\includegraphics[height=3cm]{mol_complex_LR.jpg} \hspace{1cm} \textbf{b)} -\includegraphics[height=3cm]{dimer+dimer0_transparent_LR.jpg} +\includegraphics[height=3cm]{mol_complex+mol_complex0_transparent_LR.jpg} %\newline %\vspace{10 mm} %\newline \caption{ -\label{fig:dimers} +\label{fig:mol_complex} \textbf{a)} -The ``Dimer'' molecule. This is a contrived example consisting of -two ``Peptides''. See section \ref{sec:2beadPeptide} +The ``MolecularComplex'' molecule. This is a contrived example consisting of +two ``Polymers''. See section \ref{sec:2beadPolymer} \textbf{b)} -A customized version of the ``Dimer'' molecule. -(The original ``Dimer'' is shown faded in the background for comparison.) +A customized version of the ``MolecularComplex'' molecule. +(The original ``MolecularComplex'' is shown faded in the background for comparison.) } \end{figure} @@ -3109,18 +3185,18 @@ an entire molecule type \textbf{after} all of its internal details \subsubsection*{\textit{(Advanced)} Inheritance} \label{sec:inheritance_intro} -The \textit{Dimer0} molecule is a type of \textit{Dimer} molecule. +The \textit{MolecularComplex0} molecule is a type of \textit{MolecularComplex} molecule. For those who are familiar with programming, relationships like this are analogous to the relationship between parent and child objects in an object-oriented programming language. %What we have done is equivalent to saying that - %\textit{Dimer0} inherits from \textit{Dimer}. + %\textit{MolecularComplex0} inherits from \textit{MolecularComplex}. More general kinds of inheritance are supported by moltemplate and are discussed in section \ref{sec:inheritance}. \subsubsection*{\textit{(Advanced)} Multiple Inheritance} If we wanted, we could have created a new molecule type -(like \textit{``Dimer0''}) +(like \textit{``MolecularComplex0''}) which includes atom types and features from \textit{multiple} different types of molecules. Section \ref{sec:inheritance} mentions one way to do this @@ -3984,10 +4060,8 @@ starting moltemplate and kill the process if it's memory usage exceeds 80\%. \textbf{3)} Limited support for non-point-like atoms: -As of 2014-12-09, only the ``full'', ``angle'', ``atomic'', ``charge'', -and ``molecular'' styles have been tested. -The ``dipole'' atom style \textit{is} fully supported -but it has not been tested. +As of 2017-8-31, only the ``full'', ``angle'', ``atomic'', ``charge'', +``sphere'', ``dipole'', and ``molecular'' styles have been tested. Non-point-like atoms like ``ellipsoid'', ``tri'', ``line'' \textit{should} also work with moltemplate. However these objects @@ -4027,28 +4101,36 @@ Please let me know if it is not working. \textbf{6)} Inconsistent support for wildcard characters (``*'' and ``?'') \label{sec:wildcard_bug} - As of 2014-1-28, - the wildcard character ``*'' + The wildcard character ``*'' is interpreted differently in different parts of an LT file. Wildcard characters work reliably and are used for \textit{string} - pattern matching when inside any of the \textit{``By Type''} sections + pattern matching when inside + ``bond\_coeff'', ``angle\_coeff'', ``dihedral\_coeff'', ``improper\_coeff'', + and most ``pair\_coeff'' commands, + as well as any of the \textit{``By Type''} sections in an LT file (such as \textit{``Data Angles By Type''}, \textit{``Data Dihedrals By Type''}, and \textit{``Data Impropers By Type''}). - However these characters are interpreted differently when they appear - in \textit{pair\_coeff}, \textit{bond\_coeff}, \textit{angle\_coeff} - \textit{dihedral\_coeff}, and \textit{improper\_coeff} commands - (and their corresponding \textit{``Coeff''} sections of a data file). - LAMMPS interprets ``*'' characters appearing in any of the - \textit{coeff} commands as \textit{numeric} wildcard characters. + However these wildcard characters \textit{do not} + within pair\_coeff commands that require \textit{more} + than 2 atom types as arguments. + (such as ``pair\_style hbond/dreiding/lj''. + However manybody pair\_styles which use ``pair\_coeff * *'' + notation work fine.) + As of 2017-8-31, wildcard characters (``*'', ``?'') also fail to work inside + \textit{``bond\_modify''} commands, and other commands used for running + active matter simulations. (Such commands are typically located within the + \textit{``write\_once("In Transitions")''} section of an .LT file.) + LAMMPS interprets ``*'' characters appearing here as + \textit{numeric ranges}, and their behavior depends on the + integers which moltemplate assigns to these variables, + \textit{not} the \textit{names} of the variables. + (See the official documentation for bond\_modify, and bond\_coeff + commands to see how ``*'' characters are interpreted. This can lead to unintended side-effects and is discouraged. - So please avoid ``*'' characters in any of the - \textit{``coeff''} commands - (eg \textit{pair\_coeff, bond\_coeff, angle\_coeff, - dihedral\_coeff, improper\_coeff}). - The ``*'' character can be safely used in array brackets, \textit{[*]}, - or in the \textit{``By Type''} sections. + The ``*'' character can be safely used in array brackets, \textit{[*]}, or in + the varios \textit{``\_coeff''} commands and \textit{``By Type''} sections. (See section \ref{sec:array_wildcards_intro} and appendix \ref{sec:nbody_by_type}.) @@ -4452,7 +4534,7 @@ To specify the atoms in each \textit{representation}, click on the \mbox{\textbf{Selections}} tab. By default ``all'' atoms are selected, however you can select atoms according to atom -\textbf{type}, \textbf{index}, \textbf{resid}, +\textbf{type}, \textbf{index}, \textbf{molid}, \textbf{charge}, \textbf{mass}, \textbf{x}, \textbf{y}, \textbf{z}. This will limit the current display settings to a subset of the atoms/bonds present in your system. @@ -4470,7 +4552,7 @@ and \textit{\textbf{Note:}} In VMD/topotools, -the \textbf{type}, \textbf{index}, and \textbf{resid} +the \textbf{type}, \textbf{index}, and \textbf{molid} properties of each atom correspond to the \textit{@atom}, \textit{\$atom}, and \textit{\$mol} variables for each atom in moltemplate. @@ -4745,7 +4827,7 @@ Keep in mind, that in this example, this could cause other atom-types (for example ``@atom:SPCE/H'') to be assigned to overlapping numbers. %For this reason, the ``-b'' flag is usually used only for %custom user-defined variable categories - %(such as the ``\$resid'' counter example described + %(such as the ``\$monomerid'' counter example described %in section \ref{sec:custom_categories}). @@ -4839,35 +4921,35 @@ By default variables in a given category are always assigned to unique integers. This can be overridden using the ``category'' command. For example, you might have a variable that keeps track of -the position index of each residue in each protein chain. -The first residue in a protein (N-terminus) is assigned ``1'', -the second residue, ``2'', etc, -\textit{regardless} of the number of protein chains in your system. +the monomer in every polymer. +The first monomer in a polymer is assigned ``1'', +the second monomer, ``2'', etc, +\textit{regardless} of the number of polymer in your system. -To do this, we can create a new variable category named ``resid'' which -is defined within the scope of each instance of the ``Protein'' molecule: +To do this, we can create a new variable category named ``monomerid'' which +is defined within the scope of each instance of the ``Polymer'' molecule: \begin{verbatim} -Residue { +Monomer { write("Data Atoms") { - $atom:ca @atom:CA $resid:. 0.0 0.0 0.0 0.0 - $atom:cb @atom:CB $resid:. 0.0 1.53 0.0 0.0 + $atom:ca @atom:CA $monomerid:. 0.0 0.0 0.0 0.0 + $atom:cb @atom:CB $monomerid:. 0.0 1.53 0.0 0.0 } } -Protein { - category $resid(1,1) - residues = Residue[100] +Polymer { + category $monomerid(1,1) + monomers = Monomer[100] } -proteins = Protein[10] +polymers = Polymer[10] \end{verbatim} -In this example, there are 10 proteins containing 100 residues each. -The ``\$resid'' counters will be replaced with integers in the range +In this example, there are 10 polymers containing 100 monomers each. +The ``\$monomerid'' counters will be replaced with integers in the range $1\ldots 100$, (not $1\ldots 1000$, as you might expect). -Because the ``\$resid'' counter is local to the +Because the ``\$monomerid'' counter is local to the protein it is defined within, -``\$resid'' variables in other proteins do not share the same counter, +``\$monomerid'' variables in other proteins do not share the same counter, and can overlap. \subsection{Counting order} @@ -5446,10 +5528,10 @@ However the \textit{\textbf{cpath}} can be specified explicitly, as in this example: ``\$/atom:'' (``/'' denotes explicitly that the counter has global scope). Another example with an explicit \textit{\textbf{cpath}} is -the custom local counter variable named ``\$/proteins[5]/resid:.'' +the custom local counter variable named ``\$/proteins[5]/monomerid:.'' (See section \ref{sec:cpath_simple}.) In this example, the \textit{\textbf{cpath}} is ``\$/proteins[5]'', the -\textit{\textbf{catname}} is ``resid'', +\textit{\textbf{catname}} is ``monomerid'', and the \textit{\textbf{lpath}} is ``.''. (In section \ref{sec:cpath_simple}, @@ -5488,7 +5570,7 @@ then it is equivalent to: \$\textit{\textbf{catname}}:\textit{\textbf{lpath}}. Again, in these cases, \textit{\textbf{lpath}} is a path which is relative to the object in which the variable was referenced. -If \$\textit{\textbf{lpath}} is omitted, then this is equivalent to \$\textit{\textbf{catname}}:. In other words, the the leaf node is the current node, ``.''. (This syntax is often used to count keep track of molecule ID numbers. You can use the counter variable ``\$mol'' to keep track of the current molecule id number, because it counts the molecular objects in which this variable was defined. In this case the name of the category is ``mol''. As in most examples, the category object, \textit{\textbf{cpath}}, is not specified. This means the category object is automatically global. A global category object means that every molecule object is given a unique ID number which is unique for the entire system, not just unique within some local molecule. As a counter-example, consider amino acid residue counters. Each amino acid in a protein can be assigned a residue ID number which identifies it within a single protein chain. However because their category was defined locally at the protein level, these residue ID numbers are not global, and are not uniquely defined if there are multiple protein chains present.) +If \$\textit{\textbf{lpath}} is omitted, then this is equivalent to \$\textit{\textbf{catname}}:. In other words, the the leaf node is the current node, ``.''. (This syntax is often used to count keep track of molecule ID numbers. You can use the counter variable ``\$mol'' to keep track of the current molecule id number, because it counts the molecular objects in which this variable was defined. In this case the name of the category is ``mol''. As in most examples, the category object, \textit{\textbf{cpath}}, is not specified. This means the category object is automatically global. A global category object means that every molecule object is given a unique ID number which is unique for the entire system, not just unique within some local molecule. As a counter-example, consider amino acid residue counters. Each amino acid in a protein can be assigned a residue ID number which identifies it within a single protein chain. However because their category was defined locally at the protein level, these residue ID numbers are not global, and are not uniquely defined if there are multiple protein chains present.) (See section \ref{sec:cpath_simple} for details.) diff --git a/tools/moltemplate/doc/utils/docs_genpoly_lt.txt b/tools/moltemplate/doc/utils/docs_genpoly_lt.txt index dbc751176d..31a0359b6d 100644 --- a/tools/moltemplate/doc/utils/docs_genpoly_lt.txt +++ b/tools/moltemplate/doc/utils/docs_genpoly_lt.txt @@ -13,22 +13,22 @@ Explanation: Usage: - genpoly_lt.py \\ - [-bond btype a1 a2] \\ - [-helix deltaphi] \\ - [-axis x,y,z] \\ - [-circular yes/no/connected] \\ + genpoly_lt.py \ + [-bond btype a1 a2] \ + [-helix deltaphi] \ + [-axis x,y,z] \ + [-circular yes/no/connected] \ [-dir-indices ia ib] \ - [-angle atype a1 a2 a3 i1 i2 i3] \\ - [-dihedral dtype a1 a2 a3 a4 i1 i2 i3 i4] \\ - [-improper itype a1 a2 a3 a4 i1 i2 i3 i4] \\ - [-monomer-name mname] \\ - [-sequence sequence.txt] \\ - [-polymer-name pname] \\ - [-inherits ForceFieldObject] \\ - [-header "import \"monomer.lt\""] \\ - [-cuts cuts.txt] \\ - [-box paddingX,paddingY,paddingZ] \\ + [-angle atype a1 a2 a3 i1 i2 i3] \ + [-dihedral dtype a1 a2 a3 a4 i1 i2 i3 i4] \ + [-improper itype a1 a2 a3 a4 i1 i2 i3 i4] \ + [-monomer-name mname] \ + [-sequence sequence.txt] \ + [-polymer-name pname] \ + [-inherits ForceFieldObject] \ + [-header "import monomer.lt"] \ + [-cuts cuts.txt] \ + [-box paddingX,paddingY,paddingZ] \ < coords.raw > polymer.lt Arguments (optional): diff --git a/tools/moltemplate/examples/all_atom/force_field_AMBER/benzene/moltemplate_files/benzene.lt b/tools/moltemplate/examples/all_atom/force_field_AMBER/benzene/moltemplate_files/benzene.lt index 05c55482d3..8d736e72b3 100644 --- a/tools/moltemplate/examples/all_atom/force_field_AMBER/benzene/moltemplate_files/benzene.lt +++ b/tools/moltemplate/examples/all_atom/force_field_AMBER/benzene/moltemplate_files/benzene.lt @@ -20,18 +20,18 @@ Benzene inherits GAFF { # atomID molID atomType charge X Y Z write('Data Atoms') { - $atom:C1 $mol @atom:ca -0.115 5.274 1.999 -8.568 - $atom:C2 $mol @atom:ca -0.115 6.627 2.018 -8.209 - $atom:C3 $mol @atom:ca -0.115 7.366 0.829 -8.202 - $atom:C4 $mol @atom:ca -0.115 6.752 -0.379 -8.554 - $atom:C5 $mol @atom:ca -0.115 5.399 -0.398 -8.912 - $atom:C6 $mol @atom:ca -0.115 4.660 0.791 -8.919 - $atom:H11 $mol @atom:ha 0.115 4.704 2.916 -8.573 - $atom:H21 $mol @atom:ha 0.115 7.101 2.950 -7.938 - $atom:H31 $mol @atom:ha 0.115 8.410 0.844 -7.926 - $atom:H41 $mol @atom:ha 0.115 7.322 -1.296 -8.548 - $atom:H51 $mol @atom:ha 0.115 4.925 -1.330 -9.183 - $atom:H61 $mol @atom:ha 0.115 3.616 0.776 -9.196 + $atom:C1 $mol @atom:ca -0.115 -0.739 1.189 -0.00733 + $atom:C2 $mol @atom:ca -0.115 0.614 1.208 0.35167 + $atom:C3 $mol @atom:ca -0.115 1.353 0.019 0.35867 + $atom:C4 $mol @atom:ca -0.115 0.739 -1.189 0.00667 + $atom:C5 $mol @atom:ca -0.115 -0.614 -1.208 -0.35133 + $atom:C6 $mol @atom:ca -0.115 -1.353 -0.019 -0.35833 + $atom:H11 $mol @atom:ha 0.115 -1.309 2.106 -0.01233 + $atom:H21 $mol @atom:ha 0.115 1.088 2.14 0.62267 + $atom:H31 $mol @atom:ha 0.115 2.397 0.034 0.63467 + $atom:H41 $mol @atom:ha 0.115 1.309 -2.106 0.01267 + $atom:H51 $mol @atom:ha 0.115 -1.088 -2.14 -0.62233 + $atom:H61 $mol @atom:ha 0.115 -2.397 -0.034 -0.63533 } write('Data Bond List') { diff --git a/tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/README_visualize.txt b/tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/README_visualize.txt index a3e3ed620e..b39d8901ad 100644 --- a/tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/README_visualize.txt +++ b/tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/README_visualize.txt @@ -60,8 +60,8 @@ d) Try entering these commands: It can help to shift the location of the periodic boundary box To shift the box in the y direction (for example) do this: - pbc wrap -compound res -all -shiftcenterrel {0.0 0.15 0.0} - pbc box -shiftcenterrel {0.0 0.15 0.0} + pbc wrap -compound res -all -shiftcenterrel {-0.05 -0.05 -0.05} + pbc box -shiftcenterrel {-0.05 -0.05 -0.05} Distances are measured in units of box-length fractions, not Angstroms. diff --git a/tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/images/ethylene+benzene_50bar_t=100000_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/images/ethylene+benzene_50bar_t=100000_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9ff053fcb48e18052a81039fb4a3a8ab65cb1a2 GIT binary patch literal 36911 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 Cee7od literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/images/ethylene+benzene_box80x80x80_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/images/ethylene+benzene_box80x80x80_LR.jpg deleted file mode 100644 index 00c82d3d9f5f13a5dd36eaee35d982557be2b1b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130048 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%0AlqfP_f5(nxm?-97ZsjdXXHNH@dKEy&P0 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 diff --git a/tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/images/ethylene+benzene_t=0_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_AMBER/ethylene+benzene/images/ethylene+benzene_t=0_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65949a4684b3102a625d628e8760884493029781 GIT binary patch literal 52598 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 Console +c) Enter: + +(I assume that the the DATA file is called "system.data") + + topo readlammpsdata system.data full + animate write psf system.psf + +2) + +Later, to Load a trajectory in VMD: + + Start VMD + Select menu: File->New Molecule + -Browse to select the PSF file you created above, and load it. + (Don't close the window yet.) + -Browse to select the trajectory file. + If necessary, for "file type" select: "LAMMPS Trajectory" + Load it. + + ---- A note on trajectory format: ----- +If the trajectory is a DUMP file, then make sure the it contains the +information you need for pbctools (see below. I've been using this +command in my LAMMPS scripts to create the trajectories: + + dump 1 all custom 5000 DUMP_FILE.lammpstrj id mol type x y z ix iy iz + +It's a good idea to use an atom_style which supports molecule-ID numbers +so that you can assign a molecule-ID number to each atom. (I think this +is needed to wrap atom coordinates without breaking molecules in half.) + +Of course, you don't have to save your trajectories in DUMP format, +(other formats like DCD work fine) I just mention dump files +because these are the files I'm familiar with. + +3) ----- Wrap the coordinates to the unit cell + (without cutting the molecules in half) + +a) Start VMD +b) Load the trajectory in VMD (see above) +c) Menu Extensions->Tk Console +d) Try entering these commands: + + pbc wrap -compound res -all + pbc box + + ----- Optional ---- + Sometimes the solvent or membrane obscures the view of the solute. + It can help to shift the location of the periodic boundary box + To shift the box in the y direction (for example) do this: + + pbc wrap -compound res -all -shiftcenterrel {0.0 0.15 0.0} + pbc box -shiftcenterrel {0.0 0.15 0.0} + + Distances are measured in units of box-length fractions, not Angstroms. + + Alternately if you have a solute whose atoms are all of type 1, + then you can also try this to center the box around it: + + pbc wrap -sel type=1 -all -centersel type=2 -center com + +4) + You should check if your periodic boundary conditions are too small. + To do that: + select Graphics->Representations menu option + click on the "Periodic" tab, and + click on the "+x", "-x", "+y", "-y", "+z", "-z" checkboxes. + +5) Optional: If you like, change the atom types in the PSF file so + that VMD recognizes the atom types, use something like: + +sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf +sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf +sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf + +(If you do this, it might effect step 2 above.) diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/images/ch2_ry90.jpg b/tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/images/ch2_ry90.jpg new file mode 100644 index 0000000000000000000000000000000000000000..39a88795579f33345539451daac4815f999961a6 GIT binary patch literal 4680 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 literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/images/t=0.jpg b/tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/images/t=0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..39633edd5e6987b9b6f72e09ce493a1e3f3ff018 GIT binary patch literal 51583 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 OV{G~#i!1k5U;YI_ixQgv literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/images/ch3_ry60_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/images/ch3_ry60_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65e20353ca70955d22afffc5f07709f828d3d561 GIT binary patch literal 3758 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 PhnZNHl$#uo>H6+}gB&_P literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/images/hexadecane_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/images/hexadecane_LR.jpg index 3ad353dbb4e083ccc07be687ea044170e86ec952..a4151a5fd34691d3986dd4e73f290c7bf41b1ae9 100644 GIT binary patch literal 8118 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 Ob8E+5TPj`WGyehPY6hJE diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/moltemplate_files/ch2group.lt b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/moltemplate_files/ch2group.lt index 05091ba39c..c800d56679 100644 --- a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/moltemplate_files/ch2group.lt +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/moltemplate_files/ch2group.lt @@ -2,7 +2,7 @@ # First, load the OPLS force field parameters we will need. # These 2 files are located in the "force_fields" subdirectory -# of the moltemplate distribution. +# distributed with moltemplate. import "oplsaa.lt" # <-- defines the standard "OPLSAA" force field import "loplsaa.lt" # <-- custom parameters for long alkane chains taken from diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/run.in.npt b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/run.in.npt index 1b1a28fabc..f30c796b47 100644 --- a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/run.in.npt +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/run.in.npt @@ -74,11 +74,24 @@ unfix fxnvt # I did this to enable the molecules to move freely and reorient themselves. # After doing that, we should run the simulation under NPT conditions to # allow the simulation box to contract to it's natural size. We do that here: -# We begin the simulation at 100 barr (a relatively low pressure), and -# slowly decrease it to 1 barr, maintianing the temperature at 300K. +# To help it collapse, we begin the simulation at a relatively high pressure +# Later on, we will slowly decrease it to 1 bar. + +# First cool the system. (Do this at high pressure to avoid bubble formation.) dump dumpeq3 all custom 200 traj_eq3_npt.lammpstrj id mol type x y z ix iy iz -fix fxnpt all npt temp 900.0 300.0 100.0 iso 100.0 1.0 1000.0 drag 2.0 +fix fxnpt all npt temp 900.0 260.0 100.0 iso 500.0 500.0 1000.0 drag 2.0 + +timestep 1.0 +run 20000 + +# At the very end of the previous simulation, the temperature dropped below +# the boiling point. Run the simulation for longer at these conditions to +# give it a chance for the vapor -> liquid transition to complete. +# We will also slowly decrease the pressure to 1 bar. + +unfix fxnpt +fix fxnpt all npt temp 260.0 260.0 100.0 iso 500.0 1.0 1000.0 drag 2.0 timestep 1.0 run 100000 diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/run.in.nvt b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/run.in.nvt index 38815745c5..6f74ef0870 100644 --- a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/run.in.nvt +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/hexadecane/run.in.nvt @@ -35,9 +35,10 @@ include system.in.charges timestep 1.0 dump 1 all custom 500 traj_nvt.lammpstrj id mol type x y z ix iy iz -fix fxnvt all nvt temp 350.0 350.0 500.0 tchain 1 +fix fxnvt all nvt temp 270.0 270.0 500.0 tchain 1 +thermo_style custom step temp pe etotal epair ebond eangle edihed thermo 100 -#thermo_modify flush yes +thermo_modify norm yes run 50000 diff --git a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/ice_crystal/moltemplate_files/spce.lt b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/ice_crystal/moltemplate_files/spce.lt index 2b550b6309..1f0f0f61b5 100644 --- a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/ice_crystal/moltemplate_files/spce.lt +++ b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/ice_crystal/moltemplate_files/spce.lt @@ -6,18 +6,6 @@ SPCE { - write_once("In Init") { - # -- Default styles (for solo "SPCE" water) -- - units real - atom_style full - # (Hybrid force fields were not necessary but are used for portability.) - pair_style hybrid lj/charmm/coul/long 9.0 10.0 10.0 - bond_style hybrid harmonic - angle_style hybrid harmonic - kspace_style pppm 0.0001 - pair_modify mix arithmetic - } - write("Data Atoms") { $atom:O $mol:. @atom:O -0.8476 0.0000000 0.00000 0.000000 $atom:H1 $mol:. @atom:H 0.4238 0.8164904 0.00000 0.5773590 @@ -39,13 +27,25 @@ SPCE { } write_once("In Settings") { - bond_coeff @bond:OH harmonic 1000.0 1.0 - angle_coeff @angle:HOH harmonic 1000.0 109.47 + bond_coeff @bond:OH harmonic 600.0 1.0 + angle_coeff @angle:HOH harmonic 75.0 109.47 pair_coeff @atom:O @atom:O lj/charmm/coul/long 0.1553 3.166 - pair_coeff @atom:H @atom:H lj/charmm/coul/long 0.0 2.058 + pair_coeff @atom:H @atom:H lj/charmm/coul/long 0.0 0.0 group spce type @atom:O @atom:H - fix fSHAKE spce shake 0.0001 10 100 b @bond:OH a @angle:HOH - # (Remember to "unfix" fSHAKE during minimization.) + fix fShakeSPCE spce shake 0.0001 10 100 b @bond:OH a @angle:HOH + # (Remember to "unfix" fShakeSPCE during minimization.) + } + + write_once("In Init") { + # -- Default styles (for solo "SPCE" water) -- + units real + atom_style full + # (Hybrid force fields were not necessary but are used for portability.) + pair_style hybrid lj/charmm/coul/long 9.0 10.0 10.0 + bond_style hybrid harmonic + angle_style hybrid harmonic + kspace_style pppm 0.0001 + #pair_modify mix arithmetic # LEAVE THIS UNSPECIFIED! } } # end of definition of "SPCE" water molecule type diff --git a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/ice_crystal/run.in.npt b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/ice_crystal/run.in.npt index c10893b411..efa4fca484 100644 --- a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/ice_crystal/run.in.npt +++ b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/ice_crystal/run.in.npt @@ -27,7 +27,7 @@ include system.in.settings # Note: The minimization step is not necessary in this example. However # in general, it's always a good idea to minimize the system beforehand. # fSHAKE was defined in system.in.settings. It is incompatible with "minimize". -unfix fSHAKE +unfix fShakeSPCE minimize 1.0e-5 1.0e-7 100000 400000 # Now read "system.in.settings" in order to redefine fSHAKE again: include system.in.settings diff --git a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/nanotube+water/moltemplate_files/spce.lt b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/nanotube+water/moltemplate_files/spce.lt index e1bf2390a0..d40da62b99 100644 --- a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/nanotube+water/moltemplate_files/spce.lt +++ b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/nanotube+water/moltemplate_files/spce.lt @@ -29,8 +29,8 @@ SPCE { write_once("In Settings") { bond_coeff @bond:OH harmonic 600.0 1.0 angle_coeff @angle:HOH harmonic 75.0 109.47 - pair_coeff @atom:O @atom:O lj/cut/coul/long 0.1553 3.166 - pair_coeff @atom:H @atom:H lj/cut/coul/long 0.0 2.058 + pair_coeff @atom:O @atom:O lj/cut/coul/long 0.1553 3.166 + pair_coeff @atom:H @atom:H lj/cut/coul/long 0.0 0.0 group spce type @atom:O @atom:H fix fShakeSPCE spce shake 0.0001 10 100 b @bond:OH a @angle:HOH # (Remember to "unfix" fShakeSPCE during minimization.) diff --git a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/nanotube+water/moltemplate_files/watmw.lt b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/nanotube+water/moltemplate_files/watmw.lt deleted file mode 100644 index c7aaecebbc..0000000000 --- a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/nanotube+water/moltemplate_files/watmw.lt +++ /dev/null @@ -1,54 +0,0 @@ -# This file stores LAMMPS data for the "mW" water model. -# (Molinero, V. and Moore, E.B., J. Phys. Chem. B 2009, 113, 4008-4016) -# -# In this model, each water molecule is represented by a single "mW" particle. -# These particles interact with their neighbors via 3-body Stillinger-Weber -# forces whose parameters are tuned to mimic directional hydrogen-bonding -# in liquid water (as well as hexagonal ice, type II ice, and -# low-density super-cooled liquid/amorphous water phases). - -WatMW { - write("Data Atoms") { - $atom:mW $mol:. @atom:mW 0.0 0.0 0.0 0.0 - } - - write_once("Data Masses") { - @atom:mW 18.02 - } - - write_once("system.in.sw") { - mW mW mW 6.189 2.3925 1.8 23.15 1.2 -0.333333333 7.049556277 0.602224558 4 0 0 - } - - write_once("In Init") { - # -- Default styles for "WatMW" -- - units real - pair_style sw - } - - write_once("In Settings") { - # --Now indicate which atom type(s) are simulated using the "sw" pair style - # -- In this case only one of the atom types is used (the mW water "atom"). - - pair_coeff * * sw system.in.sw mW NULL NULL NULL - - # -- Unfortunately LAMMPS itself does not understand molemlate syntax, so - # -- the atoms are identified by order in the list, not by name. (The "mW" - # -- refers to to an identifier in the system.in.sw file, not watmw.lt.) - # -- This command says that the first atom type corresponds to the "mW" - # -- atom in system.in.sw, and to ignore the remaining three atom types - # -- (correspond to the CH2, CH3, CH4 atom types defined in trappe1998.lt. - # -- We don't want to use the "sw" force field for interactions involving - # -- these atom types, so we put "NULL" there.) - # -- Note: For this to work, you should probably run moltemplate this way: - # -- moltemplate.sh -a "@atom:WatMW/mW 1" system.lt - # -- This assigns the atom type named @atom:WatMW/mW to 1 (the first atom) - } - - # -- optional -- - - write_once("In Settings") { - group WatMW type @atom:mW #(Atoms of this type belong to the "WatMW" group) - } - -} # WatMW diff --git a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/README_visualize.txt b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/README_visualize.txt index a3e3ed620e..e345be951d 100644 --- a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/README_visualize.txt +++ b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/README_visualize.txt @@ -60,8 +60,8 @@ d) Try entering these commands: It can help to shift the location of the periodic boundary box To shift the box in the y direction (for example) do this: - pbc wrap -compound res -all -shiftcenterrel {0.0 0.15 0.0} - pbc box -shiftcenterrel {0.0 0.15 0.0} + pbc wrap -compound res -all -shiftcenterrel {-0.05 0.14 -0.05} + pbc box -shiftcenterrel {-0.05 0.14 -0.05} -width 0.5 -style tubes Distances are measured in units of box-length fractions, not Angstroms. diff --git a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/images/waterSPCE+Na+Cl_t=0.jpg b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/images/waterSPCE+Na+Cl_t=0.jpg index 2c34754c4c2754c75502a87245bf882f555b1def..bf00edc9c40a6c506d16c7c51b442facf810aa01 100644 GIT binary patch literal 44020 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

IhpXFl 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

%LC@Cr#1RR1r z>-M?WdsU1>`DZ@6ABZYr1ZR@vTbJz1s+(8;0CTkknnG|nd^pki@Di`{sMOAa^*$1k ztkON=eV!yFQhv4{xz({{S{ud5@tAGfNp5AByCBN3AYFw@HYeQf2pX=)1#d3`;IOD&_ zpb7e%(}q3S$^QV)q09c0^esmUVY8KUZT+Zht^xbUN?aqKKMy4jWB&k9MM-V{0JL9C z5O|qv_+p_u+r|eMj@h?LYqjq<^#yg;>x!&(j&87PV|dWPyj8aj*XX9U`Q* z-CL!uO{sSMOJ|mpfK*wU+V=N6;PKf107G2YdHtDh@Z(977gJi^ZI;T%s?&{=j!r-d z#~JOKgtO6|Ybq)pw>NE^TsTW?%t}^&MeV@)oKuHqyE{?-MRmW`ZftILCS;R`q7W!*4G2t0FK6^vstY zE&RFQ1^l@0$7)~PCQJVS4Oqwh_!5sx>eb#=<1sMNUh(r-n(OJW!r315)aHvE+IsH!twp8wBNJLS)Y`(-bDPs zPZe>MYg=_3{V^d{-CYsr(4v*4E-jUMPkX5+AH+^PeS25CU0#5ze8@2%IT>a$lWxO+ zs3;5oM_>nVMtfu1HLc(FjJE14GVL0hr|rs);Q7?m$7xEjfTRN6QbtY=>Zx4Rv744$ zgYj*pwVy#w?J5X8g0aSN?O7FFk;kGfJOV)8#i!s^+80m=r4K#wJEY#j@5OX9{;aWX z(`k%^fZ$0>t18J?JYXKgRo$i}%A2O`lP5M?l>A1Vc?4jkYCt3r;N;gUbPrPW&fPj* zpw{;kH+V~%Vl?ze9cc)_KA_r#e-j{#lfdoXx-Qw(4xU`G@Vd&&l5i6Aq_j`yyc(lX zgkmv&nFGiDr|7A~7|n{pXIM0KHO>UrKyjG`n9Kq~RfCL^!>b$nFm{sMK0tN^2SFyV-A%k#ZE5l3C2bb z-vC!WYMZvLvtQ-MyrN8dvqvqs;UfqH?NSerF_fr#R#j8o6LOa8>{>Wg2c%Rw@@3Nf zZdH@hZl2k6&rxMdlY9N+Ce@!s!q{aAB^Xg7a-c(P321zH344*a9eIU>-=(sZ9xZHj| z>pY~$S~KZ3l;>&?4?mdXp8mp}-OFI95h;|qLZ(++gj-}KOP1h6V1$o#D4YN)7u5|n zX4ZOiH$AqaTmne9$=(9naPpL#kHDe;Kj?64chqYf%l?^iCAn=PV{W15eNsY62arhZ zkWcH1tSy~DlcpGbyu%rn^cBNSPgPGq3Z#%PCo`_(kw zjMp-C3T)AI{mMMmDJ;6BM^I@1b$^*_ zP~ehtp98l7s}a^WWZEZNRUM>V9&KL=rpd!7I3GSqB||w1AB)&yn9@3}`>RcuESA#Z z2@6(mzS!ILsOiHT%e3gN;>MyXjFPlw=DJXFGAcE!G*y#Pp~sz!+-sRg4bN!+I+8yQ zTax=X4P=*jx9|? zb)ezL=NZB0-#O#{5%0{67dBMh?5(*ApS8WeQR!Q(s}1SEm&j7k`c;u3vQHrU93BrK z`&Lecfqd#Nqhix)QHEJSRQZKDLoMeS$L1%(c<0C&HGJQ+?SrZI#uFtaF(WvB9oEQ1 zh4J$Y@)A9=4srH1fz!jHbSyicfvdQIIl6fOlXFelK%TvI7&&Q@XoV zih67e;x|_4w(a!!oiC#tg{BbXn}K~YB)syH9+*-H2`bVm?LN2U+omhhZa7v~8GMtB{#<@yc~=O@qW&0*_UyEk|xuwaZ7a{54ZrOD;(#XcF*aW zx03<|&cPnnbYT+PEFdipe8oi|0<8Pz&wgu@wEAttb=#Cr3l8Ry)N zIX-P|392r#bt6}Me31o&eE0fou_Y%VBp~62BD4AEkV=P zp0Hivy&7RzZ6!$gP<*=CBMKakq2o0GERCeuN?TD?D;f>&U@x#&?u*hk%`VgC8?q$G zlegB8`off;Gk`Dv0A%(beAkAcyxVRw<>?gqjy~f%A1FBV_a`G5?m!^_07{`%*1OH7 zC+_Hy(;!H670hrI`XG>0QJ*I~gOCqy^%;?@pRrz*F^MlY?3Hfy5Td1(k&n60y)vFg z$}=lCr3|z$;a>OHg>GIhQ#2!T<1NN-R`=NrDbmnTY#)?`r;(0N2ZNj*^+D?vV%x5! zb+6S-83!v$v$uA6$NUG54`au*bVo!q?dszab^BCDN?_dLdJ$s2GUD1%+@+{?0O2?t z&we<}V^#F39-6sBmp0}n+MJdUh|6ngh~-;UbAm81ag6;blg4Clw#sZev9xfyUglZ5>$1Jx;zY*Xx4J6t9sS;AJ%_{^oIJ$@8$5&+3a1O7rhRNp}AxEI#s zUFOSeg|L#gnL!~epeL1&<~{hS*$`tbb)8XK`ib*~?xOQ-O!T7q)3&yzNw&*I;QWjz zA;FMPqL45E!iGna-v*=+WoQwoqiP4Dw{g5ahSKzx2H?pYh3!$=mHr%KoF{|tAdS>L zEg~e>;ZfSDQt53NpPZ7ihJu-@BjZ}+P7>SPN98?m|Qh|*y^w^pZ8r2JWPsF(ds^sbPORr!6oM0tD@NvcuioA6;sM6Y+>1)&SqnU9PA+!QX zONAtj!znq&0nRR9-7Lq{OJW=l0L34lat2-Dn0R0vG;jt z7P7THDP=n)WAkPn#j)0wyZ)Kg_lZ_`?n$#LOP05ysAe)2ubm1=IRPqBflIG7%xZ{Ov zK;)8g2|33J?Soa1?F-W=Hk8WNT1PA;l_hr=41NZXu03Y)$N=MVamI7N2A@8D8OWf+ zO)#o&A6s(deAaEFsk&=SF&4?DwEGCYxRT7fgNX+pE_Y;&$|Q`G@RXnCsLC~@n=Y?* z^EO$2OY08$&Ya~y0kr4a0|VQ)YN}j$%bbXj?a{F;CvWh9C3wl+aqK&h;AXC_n>D1Y z4#&G()Xt&0G69&m2_BSSM`l~>qmn*#WbuF#lTbrBV=p4q#4y%RR3oGs5KXW1KE)={ zHe_{iyM(Pz8bYj1f@4TZi(8~*g0{%ugpI)PQ{zIuX_hu3;@Xbo zoa7-&lPVAqdCpBPnvspDB0xj{J24s~Xwj5i5C~SEu`c;NA?IrG?6OV=)(+O(uLwMLU|*lxQlH0&g(2*4>M{G z50roa`EsumLv{?M7=dj}hDM7kv|OQCZSj+IxHf>bCBId}jIBri0LAt_fbUwKuElC* zh?O08NS5b!p~f7NtRYK5-M4^A$Oo_|=xdb6Qf_kITwD4daZz%ZiQR?AIQ%^K2aNv! z@mkBqsl5$P8SO!Eeq&KlwU*TBS{i9%I7UgwarOCddsSmo_@$(1wgw6X3uSBW>l=?& zfFFvrG?t-u>3Bu1{8(Hji*5RE;lw0xtl;s%IsGfc_JRKZ4$Oun>By`{xHhD)>Y{+! zWVMW8Nyr>=&wLDa?F6+Ze z!-?F0hKuD3Bk-XkK0h!S@9$kX(=^{#Wp-uxmm|F;-R&~x3ra9BR6i*^@!WBo9tLKM z(l#w4ZTKrRO@%;uuef(Q@dLV*{dgDyCjeK@rqxg^lj2)el|434Dnn^Mg*nFK_dUJv zX`^hRIrhwCak*MKy+LW+YVMk~w3k&KVW*xaIdi&@k@W0I^O55x3truq2KyH9nGZ>e z5h1w|kO&PcC*~w)86*t-1ylV*wd!3NuI~4EaV1Q)N|5Em%Z%ETB9|6cv^$Pbw3Er; zj2!m@anr4RrG}T09_*%lXTjcIJJU3)KOqN?pz++FCZ!o#E_o`1Ni)M)t@$m#Rqn{2 z(A(69rX_2b(o1M*Ln$FiQAgYaoc%M5*CVM980+{~OKMp8&<+yko_@btvUO$NWu|nu zccMHQ0d4;8bd?6uto(o<#66Yt6&|r$?PpEBJxWMYlHm0pRs(&&`gX@ZTBRHPDfW$Y zbrdhcV`-RN{0`#B=B0f+(0YSY*%ABV=LRjYhFo>cIR-F z0#xgKNv)QG)XR@YUgSIytYs?llaAxKHMP{5_UAs#yBsG~7S`t9SSN+ZBb+Gz04{mQ zoMih5^`hRXjt5@(SO@G?^cCwE7iB20C_lxqZ3xsf@;tQW?t_;-cFL0#uCE@CdxP-v z=)SD>*Del)D=3bW^DE!zKDA+J%W`g7j@4seB@MkH4Vzo@(UL{Snp7*i)z#Dm+WFkW}5Z)O`Cq0=(f1KG-rKi%$+fv1TboMC0=z37@maOa z$Er67kdBm|B-!T10kyuQ6s^6#kdEMX!iPT9hkNS&tdSxWx>L!44`B5kX&YRSl>!3P zd=LDfdHYvB>6j$Ss>6p)`d&FBo}B*5zvSw>TY7+4*mOvk2o9wR$Y`Gj8Tq{9+P5*J zvm<|`;#N>_t*1DyU((HLY1ii@=^JFZzc=w;Y=j}TsRkhtd~1AiAMDL zT)0VJs_GEE$!K^$K2AHIa&eF{XCa_?tkxHoUy_tkl%^??l%)t%f9+>*QY}_1T2ywt z`>(Aa{{SLVk&*uZI={VH-7>d+>gn~02^dl#Hl>ecC~jBxQL0DwhH+Qkty;AFa!QcX z5wU^(@zs<5N=JI>05AX<{h2DMAvtv-ZW) zVX1bFR>NQifrTYNV=5U_Wc!jgkNHJ(okTj#U~^LR&i86z0dh+ovjZ6=#>iL$>UQn@ zYj3ldhoE9nN=}!t@;V=8{-qqu%)%D0_IK2dYEG8hos#NYmjswk5#Qv-%>8y0efg^n zxo7r5)Sm;Z=V_EBah7he zpJA9NJD+W5@wNQ^$xs~Ndtm)CrfN99y&&7+I@8LQ->QdFte~ej8%W^i2mZ}Cu!CgA z&I=3dx74WOwOzG~>}yNX+f$Mk=>zz7IpHV4$>3wj9`(MLA(*k(A@zhdfs#!$w1Z^! zNY}S8UW-arf`z0hDi|P)f-0cY+CuxIS2q6urBr9bZM7^yAeURlP6zX&w;zk|R;TYM z;y1*(xwZy3IILkmerqstGAVn_NDCy_aJeowR4=k5=1uBOCN!oU%78*rLE~;PImQ$K zBPX6sd@-xFJ>Ek)QpU`wvq@K>9ild#GF6grk?u(tsc&2QJ$IX^9J*+z5Z_`@Pp<*D zP|BKc1C^vGgzY#S1Dun^NWW&zm|b*exZd?M4YPEX62lB{LyBRc$t7tdWk(zXz)1JN zh5-1%X6)sw?vl}#jcX#?b<%dx7IF0=DWnz>l%D&2GM-X*4Zm-tbY)^)?XWJ;9f5L++?ej9 zrAS!!1Y{oI@^D57@mdgK6;$W&K9^J^?c@S$VgITKNT;PWM_a2e0a~eJXX)GIvVAm?w=JN z;N*)v$<=x;tp5NJmG{`M)3S$r9@yps9_e$u%eGh`Hm}|6=FskX*a?iTMSeXz4T8?M{mYhfzb5C1_KdpJi<&DNk~C z?jzgoMP+K9fb07N2WLK;RH*F)?_7C(w<~BESV`_j^{%7ocTKFi7CN70PENc?Wi88| z{tDIDsVErv5L7d_=rTzF)T;Syk9f1nwn{1t$!xZzAmK^RWe=!0BkC(^9^c~;p7WaT zHvKHJeG!)NTpI67dVteRyqz;K;POh__;n%W5IdY9ME?NS#cD2=?OhLIZg4M=!c<#8 zkjtsUjxv$BckRV=#moFt(uU;RZjHBbw~`XvmI>IhNeD{Pd2Lz2@;Tu|LZe7xHL1` ze3c2MwN3v3OI`)q$30OeB?@dhT0?{b++kpfu`T}qw0Bctp-FySvT-Q@DfmeRBzYS) z@_xK~0b6Iad`J;x+U3E6A##XHi}6t5caw}{9!V#Uda!yq(z_O<)6%Z`$3?+mxlbi< z8`!w+hQQ@TC@I2Jae?G=cp|Kx)?ibA#88h=X+H+6_OfRk9HDma+MiQ4NADdoXplVm z4mj7hxmVV{b)Q`{cDu9w@6@_3Y)251W6X&q4!Xke-8+(ur@m574hP&$x}ngnp4+sv z%e|)8G8>VSf~2)A#eknsZdMjle+fD80Qcsr{V~x!DXC;_fvD~=5|)nSx`y3Sm(MA{ zPEt6?@BU#$Ph)Dq%@djZU;bP|ah9S71DRCAP@x{1te2X7yy0YbANQZ@S6}S!dg*no zqp3Akp@;q?bxK2Q$zfqJ5DyzkPST}gJAvRGymOlCUv#MHtI93#^)xG@76}iARD_SA z!B;;(PAgFhrdpzM6sSpn@lJA+EiI4$@AK^+rgKe;1MGcHkX07{0Nro>oAXy|YHOSu zEkiARjjeUt_RW8x?p#6D);E>>f_r<1>73SO{?B36_A?IP+cV)Tg`sV^$`m^-3rWa4 z_Xm(jaq=r(mm7(cZ={i$JEv87bo$Y%_2l_B-8@-E zzBU8Xq$q~k&t!3urF{qMin^KUY~4R;gmnGX%as+Z$V2Jd@ow%aDhDJW^MI3)!g70) z&V4`Y-mTGkb{?O$+bnLui@R^E!=9pwlvGJjaC4G;RQBKdSW8MsxM-GLR(Mkv64(PC z#kFUg`4vuX!Q*kB>jS);K6Y7cni4El!&vnm^K!RbEz(1g))bbN7t;vYv1vas#(63I zGC<(gUrhRy6XIHK_WIk85hS*k4g(qd_&vve?@%pu)vXh)Wq$FOXuMf&UWjjebhP_! zazEZ>NGAhu$mba2j8t}Bw$m?ZMd`S)!!0fH`;(twnJZslM%;uW0~>O$Jo8wR_GcTT z%wJ6Rc?{qB-D~Bg#EfiXn;8Pe5iF!CmcsI`o&l|7~3I6qsz^kRq>Zsh?b!i_Eui`jt z6$Ut{1+l^yF1@tF%_0g=cS5bm&TvZCONVtpcU2oDOn+e*XZ79>nAf zRu@b(Rqt2a-n2{-t@en3srS^$3Jb`?Y0qUG=jb!;GQlg0?`8uT&2@VHK zdbd+uTdQ>bqt%w^@-6VBGYFNX=?tZ6PVP9)a4<4QY=C@J!sB4FYP)2}@GWq@9pvqD zV@)Lvx}@Z#NI2z5Q9aHM;yV*nP0OX4fZhK9bz7KmlO9K=ZUBOUgM+<5tDl#gXTKSy ztkfE_r04ep;-?szREX0WB`I;S-NbX0I5IMm*qe$D3oE$29ZehfE|V}igY5QuS6oNETbP=QQ*JV!O{26Y2npN9 z%yt+RiLCU_pVzu^cDt)V=2eFobp(2hERGhF;Pdu9jdI?Ry6XK;se)|~=DxjzApnue zh#Qs92^sEqBgF$r!9*`&f+G@cq4wqkc4f|Z1QqcPI&MrR+a7mcv{SPo>C0uwu%iYv(eXtjEa9aAOHOvCc5AJ9esDQcs@^{{T|Zp&B7rbTG*yZ;_6BXY%$3u)x6Rw>71Oy%+FP z7TlFeX-&v!Y2hg&2cM{|29nb{UrfP+uHvd~#m&h~R^M?Urrlae-GDN!sn4JKhD!sB zt_rh7ibotd9Lo@H509Flua~(On|OKo32)Oc6ITO3rLTq=tf~RTw06SnZ3U@?E3Vc%+in*jDD=LdsB*mVWRPfw5W#g`ai#Noi8Q@kDml6f7zqmj*L>AfMSuJ`n}CM>N# z8ZHw)beQUGEDUjwtYu2z1dim7y>xDg(;6}bl%fThhtOLnkt$ONao56=wOh%_!hs;C zfr3T=raOC|b7AcGL z-C%B7VlM+9IVa>-IL~9oPCymLownVzp0R;y(~Kn(q^T*~l0q5-g*u`$gn`Naz>)=3 zyn<_;irx*PlMM`Lv2FF|e;&VfQ|l(ScS>JhkYohBw-(|aUpu$tp8k0?aQ@HI?>dU( zaMZIm{_XUB9y*uDtfeU`Qh@dWBc8{18NtL};nEBCg|;!OEK-H`_Z@@rd)pak;OmjmJ;a&?B^hRr~8e>b|$RNP+4JZ);$Im+JNVm zSdF|_LJN+O)4HJ+eKlsX#hW9UPQ;GeVLXr$qJT22f_XfCwODnFLo%syFZvE9_m~TI z;T44pB=-(BgWwQ%0DPwdy=e4pt5R!8(d6maYhk2-ADH-3SV+$xD<3k4JSQjL6@7Hq zMz2c7l%VRi*W0X|UtMQb3IAN*;{nG8d0L9y}06JMxpy zmOI+zNrvIRkyaY#SaUy571<0;i1dGmZbK?-U~_m_DcVLtv)crDs*kE2NVmp?HyH}php@16pga7?3ddl1 z11Bfi@qKDojOC;$>1URZfJ&4+q=C=5eDxB`p{_b8 zLUskEtCO+4NYi7sl(@>V^5mofMti3?Khn9Gn?#g5>)k>SsP1i4Wr9{n?i4!!2*Dld zeWs*M{r1C}m1&J0Dw6NRq0m(FhaeNk3CJ18BxG^kuiXixwDzlU8t(ODOP2@U^&_pt zD`L`+0$eE0)1GihJOrPuNjn4V;kvDdRXUtHH(a#)6dOYH*HLPJg}GeN_MEpRv9TLR zuIhVjN)O;q92E@qz#!(W6&*Ly%`kve^R7yKASq{a(p@R?djJ3@z#ntW;YZ|ZKM+BEdIQT8f##2w2qh$%`ic^)_R`3W3k`vS8$k+(hUn?X-eS1$pL z%zpm=099UT?xrTk0sTLAhNyRiETox8DJfYQ{wO@-1YrAP#Zp~Fv@s_9!nDLU6Devx z5fVN<4fz9eKyaL#v)o7-HseYhy;3#qZue!BOHPFRmySO zJQ|kca*d~FMU?D^kqMM6G8RIX306qp44h;79@NO`=Bt^lk6Y*5jXU=thK{N zEs3w=MvUnR_@I(WQQ;Qk>#=iM*VK_B|Wb-aNT!as)(G6SF3pW6Q)g>8; zafrmoj|@1=$O}TobI3e*0M`N99Db)7sp89{N9AuIK4+=C9~&0<@W@42B|Knbkg;v zTXy}^bw1k&Nn7w6T9oTJ?xsoPgU(Z&kIUQvPR-O0-mMY|U&Ader_~Jt1e3TEyBrP% zex!d+a-wq5EEb*@hQ~8so%SPOu3y?IdP@9=4zVNFy2N=XQ_<2Cl`>B#TKmhY zHS1`#^y$kTu{S#`2{J>;+BYk3!59iT`GNL4A0wKr`fsN7Ub3`&6|&e-4LL{0$t4V9 zJ`M>{2al8-ahz4%p*lwgPtIa}&hsYmA~_3X3TQOaRy!!CB$5v!oDXACw6@o>qcEAT zEDq2fMOg6S#)TEQu;a5DJ4xExO&}o%9>5L&uUb-(DpHi82})Ot=hGGw@|2Y+EVic# zQ`~?vfl2`;!3&)<@=l@sr({S=CDvn3d21?3!b2!1N{$a7GE`?LLPp{u6tTZ3yEPBx8=Z@T{gH4Gn?{Zf>ra|&doDMAvI zr3hSQt=N^*PP@A{I!kRvo|()Beo(mX9mNCbw5bQj2gPje35=xSueKqoePq0uU?z)%$%-V%l-j>8+=L+On)?qIr zA1XjC`Q!u?j~&0Sb&ntMEFPN>ADNxUefqEe0CKAraze#tQkCZ=_G7o|KH^ZE<0r}X zt`%7(+Lh^AeOsojI-=Sj-I-d@g>PwXxKOs&f;R#_{fe*FN>x8luY!QR(@%ONv%v%xJc~hYC-SpnbsrkEpI?x&F<1 z!RxA-X7OcQ4^s({wYZlyXM$S@BX&G)BkNEG7R|&Q)~l-7E*>czrc-g_=C^$Z(mIP) z-YuH;>m)_8$9ZnXWUF(smV#0hj>$k)c|4My*g31msE{XIG?d0|psG?fy4nYI?NCuj z`j8GjxU9V+Vuz-5#k#=*COj4r%2clFBf5{&oRjyhtxt1%tgM38RKA_p&>fEX)hYD8 z5gv+}b+VG2a8jfn&Q3e|#bw9p-Konx!YnxQ;`(vQU^uV}fdd;<26m7+2as@i$mUPg zuAbZV-HmJ&A|=tJkA<0nc93(mKoPkokbl_G2DFpp^$LUk7Bnp9Fo&(!rWT&5P*Lu z;Y5-Axbu$;l@qj83X_uaA$+=4{ZDW>L=Ar32?v5 zX78uu#*aM-^xtXXP?yj<9l#tY430-U0!9T^H=e6rY>66NGKhB;Q?^3iNF@Mq>EPsN z1HZ8tqU05L8s67oylKf0btF_tx36yGt00AE2`M9xte)VG z{@JKjiRq4m(ie2;_6LfIy;yIdDs$5AOG-ZJ=Nayt9OpRddt|9s6~?;5eGRZP z`~Zxp_WWe$0bW4y*!MNIlXigJjr+P^ZRm|Ow-mG}5JEx7`|*r>@l2KwO^UNYUiiUt zJc{N20NJNaMtbEVTWYBdw2N^Gju#qy(_%2s1KighCHCcS4;9nxYRgQU+-ncSH7!!Yn^$6z zb`@jl2n1rQ{;G7@+a{l%eChh!g(a}JpNJheDJLo{llW9Q!bcy=f&elenDpI^HRx&! z{MF07A(a)9uo#Vz&e4IA20>B!;0l-A)eik-mkBO98F{jwSqRSGWdYxV{#2x9*+9n# ztX^(>R})Fpa|CoCvJhH*E0BUPN|Jt~DLi1-&IQ`%e80uDX+~ErWaVuP0gb-uQT(6| zNjzX?w_RlE?dsDn_q?a0r{fk9my)8UBz&UWlEe);;9pZC?P02C6MjdFYDM48WV!7Lc zgOG8Nf_^pfdR1|;3w5(e+FPFBB)=VmuwpEam((a3P(Izh#;nJ+Buj<%@nXEkOWAzI zY9qt=Yff>MXRsp*&)4l#4_Y)7?w{Qa)(y!ITJA0sr5pbMiqTLcppPlz0bgO?nwj6N6F55%vOf}X=3eCtv6w-}9piiZ>8Z}GZ|62sXQ zQ<%*MFC|R>0EfL*sKlC=8p+tDwo|xxILWWkr0&WDwdgy6pOtw305B_g6o8SADpjOc z9a6nHC-`d{Rn9myD?e#?^e)xSaPesQS#}V1TMw2S5JRoK`TNujeLdDGj+qFuI`e8? z#QH8F!cTGXr9}AltPA#%)fN=)y=mL6y#(zGkr8M@kI_V6_V8-$w@$igE2|TX<|V~! zg44+1Y47;c3@8Y)Fud1!kYwgb>EYMGbA7t;ceWC3*GbTc!9IkAx14tTBvhi?)vl#m!bE*( zcUIG!zW1z8+^;zwL)xTvfdb_kbGuuS={vQ*Q6uLAkV;Q%{e7#};dargv=(2nS`gw% zDo~7;+y{(;Q-kCD{p&^_+6En1!0Ng^{{YhOhzgD)LMbX;6i+U~&}Pl=*+{xBi7f`f1=GlViT>iT(1mMEGU4c4u(G z&JAz0T(-ToLL|4iiT$Tzq zBLJmDq@Lh|z~-}|{?6L|d;>b(?V>{}Y`DPql_5_I@Bk^mC%+^Qtr6i}iJTJ~^56ca z5B-$0Vs(;OJ=Y_^E03rBOX#+man>xirsJv8k5%~62G;mHN|cl5jysW>v}1KMr;-^{ zt!r&QLIEmCxHJ{VAB3Er)4z(~d!~}qHrs@oe9Lm1l@&@$&4&=8k~@wG&*@s{Ete!G za_#bf_bjU&@$K)$Ja!`isy3ypzmu5ng_K50h=yqzYqTeYEA6DGJ+J{C-C9HlG<0Bo97{MIzdv3{v zAePqjXOqDxQ9_5)-nZ~I{<(plgVs8MkVf1l;O;T@-HL{P*?gb>02+boZN3Di#adcH zaJ`hJ{Xuq_ZhqGBFyywhoOZtm<>HYod-L3_$WT#my zlQE?$YDvl3Ql#LXGJcpHoS17#}J~SAp;EQyUNMM`Tnc;$QUbz_qlt z=wvqb^pJmH<8kk_fP+%aHRjl$Dpj`Mp2};zxgCPm)boPj$9ghrX1xhHzwC^+qnmfe-Cy+9tUpK0Jd1PW!malkJS4NYbajr^9zj12*)2H zk`Ps%FcrY(9xE23v-rh3gWm)6{{W=h;bo;2RSV&KE*7~2A0D55Rl(Cfq}ZZq*NpcO z>$*z)Rk^$3R!0aq&OL{L$@ev_gVe}6a^))FcVTVYTzyU=8dte&I8(wvKZ}I$dvbem zT289;??`G!;hvS=ElymbHkQ=}JjTmX#u5V3z1w|Ea!(;d@((J@!G~cEVsOVqJvGuCAq`Gfe^#!+WmS!4Fz9N#_^Q0U$ z$Wi<_?y?3>(c>8-BCqW?(O#R|qpHy(;_laWn<2@rKA>7z8462z^wLH_0EJ@%IrC;Y zJEF^A56hSW(&a2`Ji83(sH;FszW|dW93$0y-1vkWvCkK*mN%BRmn$b5$0-wBPg{@Apl{=Bbw3fc4mx*dVxo ztQ=?XtZ|SJVmaopdSPb2>S@yKwr1HeQ-w&AAe6MgRzNDodxV@1II7H*#!?&>y+sTS zqHK`5=bz}U-AmM^MALTY5N0WN8-t4YhfZ?Z6Wjxy=OBFseulU9`Sv@WlaFVS7A?ui z;G^M+IY;Z`-##j)>aR&|no`{s=^pm&!YT+!e4}rm;o}84KO(rn&j$eb&WAv2OSYD~ z36plWkKy{?iIpUbl4ZzjKJRHj$_ZN>WxFMZPxqS7FddEMAf5n$t(W=ai7AK0r`*e;C}mJw&U6(g`wF7F|*2 z)B_x!bBzB0TH9T^i*wXcl!hdHQnrs-TYySZKE1Mg0sjEKTFAmIRwHJauMc5RHu`_m z3x%FU)28kXz=D#uo_7fdPm+*MSKB`*KK-kA(`_Me)fcFi{VNqQ*4PG2)s+-CkIuDw zp1~u(w{ug-{ZEo?tlMCaLs`z$9E|rWKT5dzZ+5@mC$Rg_Ux#ds9~<3eNDmS)Htz54 zNZ?~0YQLkgyA`N0T8S|k)YS+h*&$PEhQs9#Y!b7$6XvpM-P;9Qt*(r#3B4pEXq zR+R!2kW^0?KU&^EeA?~9_oT!Y(tdZ;cBQg^Dzn&UvHt)n_S6^KWr`BzTx2ByDJn~8 z<;OAMDf9kR!Ypj3W5d~*ao1Kf<@ZTnT4GFg;m+87Ijtx763__=R|AC%dE{_87&Q#A z>ie`9vTd)B;vUFS9|Zbp&*C3nHPF3A>OHSgSzoo@EKR);Z=n&}X=#-?N8B?QFwuTlE19{HN510z!aourPgBa(O<;JPzk1;Cmhu zgW>&(q4c`Lnq$+iM*Q9K(NM*4BZ<^p3l3kZ@co=R3iZM0n#){9D1-oZ6}8l1PbeN1 z>PX=j843K^1o6VU53APul>VCCpxGn((u-}D*g)lIONmmFk?v9y0Q1_nmYduQqf2@c z)V7h`WMC2Y@BOPiPPT^qML2|`kC>|ipRIY0IgQoh6+CK#ry!gfIEglbmD`;Er?46NURs-=*lg`BT3P@=S)9KBnMO z6bckZKvGl>gU=(yVN^=+(UdJbB8r+xj~T|+(%&Ca>77BXLE@_Rker^uJDOtwnu)HkpO$Mh9ex zFP)6EJEW;V9)5rm--^F<&qDO{TuQ&rn{=47x#TwKVmUqlN`7uV_jBI^wLTd;wcC zvkF4FfNY+Mc@l}Oe}2rVG43TuB-wHE-0@jAb2DFGBHyMTyB3z#3qye zqwE?Fa71Fv0VzsWT6$8Hp$SS-ged<2QS|b4R))LSN>W^v89|N8DFNjC&5}oeu#$e2 z&Ofq+`F3uiO4IVnnnl%u-o*?M`&m*!&u^F1A94kCb#d=mp-a#mZ*uQ%8+XV>)-K=z zRk>MGc>KG<(~da)wcK`1!nT^H3wiwQyMNR^!SyQB_eg(5*i{7UE3+V3VcuhfshCgh zkdQJ0R4^8PfbstTHB9YuW8AH=ZV?t7k13Qq(t*e+Py`?7Yau`=5I`XCLGxTqiydRQ zQ@Nq-va9V{w#k38OPhLlM}(I5EtEK|iAVDdyr}2L+Pu$Itp?J#R_C5}N;aXFok0QC zyA^|<#5{w8&VBKz>t{(-GRgbHL$K5*qLTBr))BF{!a@H4c9ifJ{{RRWR(u}(;RjL} z&aBGMpz~l2zmY@EKkvmuEbij9w(hMOEHVQ@G`A*Euo?h9eAijsb+wY+XhVsZhorpL z;Iu5IO{?qgQcj&}G-|CY9`2pHl(n?x-rJC(oc_26^{zkZ<+l0N4Q8D&26AJ?ZKXdh zVNT-HK!K2)jmjlS0DW`V8tjb?rmfmPNp?#ywJdB#;h1yc+as?-borY<1Rzmk?Ig)#NM=;C)AY zdvjGkQWvQ-p0t&Bg2a()xM2KKDJ~_VQUcPx`%XqdJaRB{2p@MIscGA7qBAWGOksrC`nS(5|A=UI0B%W z_oiAKT}w>cv{H%XJ3cBa-jk~UU}wUy#t8(B0o#g$&+4hW#I+&Tei`PSS(ub87M&m` zVvw%!_>xw&^bzbXHm9C!x4Thz*#sGPFKYtwb4B~BB`$w*fj;}{}_u)AcEOxAC@lhtw8Zkf49QzP_*F^Ngr<#LD z=*w2FiD-R#hG1Kl237)|X$oE%2u3rFzcQ1YMYF^&Xzqmj+dE_~?+?XLLtcakRaXGI=3MAe;g@-~upeL)X5Yrtb-Q zn!^ceyRrwwvd9DCS{cbB%E!}^1~7QVE7P4Neb$8aW+{U(c4HZALENogUF zuSLR=km_^J@tp3?eznIsyQQ5*v|P=#dSc~0NXTkUy@fu~$9#n(a6XE`sAOZf;$7C2 zEnG(oeG{zSert0JRcb4=fu}67CQqA!w6h!L7#wdt5;^X1-|JV;O0*O`C18zt*3jWd z)Q?CjO34nE3V_<$3FB}H$s;`O!NpV7OD3!7HHi&f;e0E%z!xHOe>##e#C0piIVC=F za84^I>-&VLZ3z>cBHXj^>^SC1QGv)k&por83=Y*}jhak_WSls~N$D*kdt0BH=q{&9 zdEF5{JT#w-b+D$J9I0taf|dXP^RO!e%|beRt=PJ=7SbO?RHWr{624vbN7Fw408g!J zx^6YTwbYi)ME9*0#>>9Cr9FUTZQvmZ?m;63SjIESJXE`=T`#xXBh0($c2R7C3nuh%rOt@DT zpKkKnl!puH!+`lpl1D$SBWh;9aWqTexv~EM5j<}C{Xrf6wMq$ivYg`9*>w1g188Vi zX`Wq}S=~IxMb-ChRbtb2w6|??D0wMMfU$ss$Kg;PPCw~Wt2E~BmUve-Qc~Qw?Y@9d zV6=q~^R7S8T6*u)29t2RT-dVMTTu1f^}pJmZ=CumAdHd#%DZPcRxoo+cWY<;9(~N|)l?2yuY!mfG#aA?{-E(OuOnGf^N_ONaU>q!R z2W`Y*AcIlYx@mjVT2e}+YB}I+6PST6pga^ ze&+Lt*rk#_^%|Cx!F?|^!%94-z(4e?r9btlze;pGePuX{jK^cd3JC~g0^_I73CJJN z)DXbu9HD8~;*mnmBaN-Htev_@jVZ<3lp7BmdSK*ZJ-;X|ZHGig)*8em=`%xX zW-icFu(6b-O2$wK=5W<;uvUzsm$RiSAB{HIOhkP9OMi;wyf505N_&&byIS}M44{I zQd?=ff=L(~NE!bChtIt^^0kft1j=eDDj|EzhMNL)J#4e}4VE`mE~>j&)ZMCLP#a6c zoH_yEI-bPiaLRCb9FQ?k%l5m~Is!`cb=4|iYXH2qTt9<6Ev1ZOBp!a4tcy;!e@WFJ09voFtxU7L^_t|@q~mT9m18MhGB=?9WSnqE2CXmI>rL2};_iC3 z8mG$-1Y00TIAIFUD{%*d=Y?r&lscz)Bj3+eInZ{(ZpWtD9}+;WuJKjw(Y=k5*HQ+)ni# zPEJ&Q-r21fE9xSYwT~^gLPx=3Nkqm`wssreeKz{5QQm~~g7Y=jV%i>x^B@;K5^K9p zj>;+nw~C-|eKON_?O%GbNuP6yAxd?of|P|TW=UyE`9^YrgX1~zT}Pw8b7^}w?^Vfh zPEJA;vg-E|l#`N>J9j*Jz^`3@)2%Di0?oooq(!);qKNZiuWHIiASfOd0Xe}L?}9U1 zadw{=r#;$-Tg2bvb)42mD{akl<)ij#UFy)?(%r1%w%fTOx8h{C^KcZTufE=UcjN0& z+h;;`)!OTGfoc8MFk6?g*OM$I3nx2v?f{T*aI9m4&lN1y_l}_S%}KFdAgzeA0+8e2 z?_yhd#?-8E2^^I0tPzoe%zo>yE>Pnk{VOh9EvX4qgs7#~LV?R+K=Plzp4h7=_LGg% z$QzhAc(i=1x(qL~QB~5uSs!O|A78&6c2MnI(~V)JrzREJ+Sq+q!dQ~q#1ozfLWu{C z#Mi z8&*V$i$0s2Bgr^K*&o7=6UXs4p6TQtloENsI5pAJ{?n@iL6#<;E0396 z4M3#eq=W5WfkbvvhuGJBy{2q>Bc(sM?ongi{v}}&mm#1;hn8|yLG82;m&n?my>pjT zbOpalPGW3tO66&v+2t}fGT|GGN?72l9D~8{#~G~=`%b5OKOU6Z!NB{73Tk=|B%(0< zq^j3S>+NNwm=W~;rMO$;hfCgzPJazcBLtM54*+)_2enGAeR%3z6h4Jsqs$Ki74Z<- zQOWa=kaPE~OL}fK#&oaUcBv90#%)qxEs{$tB#p~gH~<65t^KP&X)CfCX^VvRBs@S$ z%g8MwIOL6)$A2|6U9If3aLp|}kBn{ji>Rw9C8mByy8cTl<=5-w@&s#cr_y?2?*Wc| zKSkD-PBFPFOP?aKo$WT%+6b?ZI_@{sHdbe8b2mbc`5;i)c7GMcx*X4emYR0wx(|TfKl3LU@dzpsv zc9s(zr;tM`6Xbx}pp>EzY!)+Y3o;I7#QYAwvZHYm{{+ zhSatTgOFxLY1bQHr@AzRJe4aMz$rY|x>lUjQJF8lW4Ixa$#>zDQSbPG#YlS{*_y%l z6aN59+I}}tGI=8_d8$8iTD3fw`hM&2)|IVGj-s!aBYE1D#bXZzy z2{#GOr7SSP#utuNp9vT$C$JeOfl%e8NLJOhQhkWUezfA6SX*mbY5f)2a#U-5#ljXXk1V73KI=aRhf$TB$%|xSWnGJuvg4+K8 z@~o%+wS!svKJ5e|&_>t!I1i1M&KoWlQ0&#ymU%Rvc)!7RPf&F)NjigK{lj(CN=Dax zXwSCO&8dfiR06_^Hl7rrg=8H2;;GxFp1kNVi}kYq025N!(m-9p3HjoANO=H~fJP4N z<2)R3n#$R&t!Z8-+vOoX?G&v40DM;HYb`F6Z-qW=M;t(L70IP3!X$pTks>#=ECetozA&BYu7UH(G zFaH464&QHTtF=C-pZn0R1i49Qw3H!EI8;JF+5$=J02m%X9vBx5jxjYdQxs}s2Hrd zg4|^h!N=xv>&PBC0N1!f1|8VC9wdi6&K|cOgQG`3ea(XNClL2(pkEy){hX#Zq}{&i zB_WMQ@=)!vBcy~xAwgMp9oC`7Fm`w4Tqi4ETyNH$FEdZy;=dYGNNvci7Xd=h9ZHl? zQgEz*c>M^;u9k@@iA^QeSCp%^Ml)JYpxCta`%XU}QY8t9*eXl=wylK`fTW*(dvl%! z4S4P?j8)>bCZeF+orfSg0n_8T)o8L9tSz#mI%}^ZNoqZr$*GMC)e3#Yq!$y$G5-L4 zs%g~iK@ttp%kY;6UurrDG26nL3F8V1?p4MLPDmW_=B`gi^`pv){lDN=U2#pKV{!lp z12`)R!6`k!0H3u(Zqjugk-pqCj-hcuO+E{%KQ=)*4z{EG!<_wj0Oql$o>sF#s@20V z+BvE%EAG-cXnw-KtvzIbx%1PszEIFCu-VAYc*?v1_BqW*^p?3@!(7U|Y6not_j*`q zAAz*zVg^rcN&BduHA-mMmx;Q(!P2(*H&;{@@*w~pMHFJvB1Cn1%r=mfz6si;;1ULY{MMRhOZ0r31baGQI>IBZ zPBkH?NPR0%0ZQI;oZw^}jt3kHs`ZoFx23!7=y7wbb5*f3Jv9shKMIdzIrxS_v9zy>n!FXI3L9F9?r7^S)LQ>N~#SgaNto_Y&y_Er#j-2fq z9Pf3$Y8n3kExN1v*AcsYvMdHb4Mt@QpbYR5kOzKzRz)dX+niiUDrBW8NQ9*+LK2jv z2uh@XYn?Qi`a%|@VUnpf*Zn7yl#llgaq}Ex;bA!NH>=*R>ecGoGa8FbT&!|-`g3C~ zoytz_iX-J#J<@PT)K-=cTxct!sN~bHmdD(gBXhKcTK>vHM#97}hV>uv}B~ZOj{heap?-H*1YVwO(rbfi4_3oT;EW!mM zd_r&;Do{vUfAEr^3VdfHjuX)T0KH=(YY^XCZM`EtmUl)botN|NokFX8H{w0HZ8)Oh7L)S@8n*ucXAYRL z)F?7_POx$5Hg?}ELxdbsJ#{AqOIa8@20#EFNLF!48-+Vr-ahhehE^dQ7EZfNhF_hNf>iml&99q6!RHa zH(q+G$cx6Ddep*%WdwsANf=9NPvPKxUNA?uYUf>a=Bd%wrsZ9b>o3S5CFWe+oP424 zQ1P`rjtKHOuA;3rveS0GS7Cn9bzv?v;z@0I`I%k_4kY+c&-xw>NtwWCs&J!whJBSj z&sbnvH0v=Mh}607Acol|4J|%YudhA4^T?>&?xtRDa9n`v@yjRyY4lQ3<47ceg^ZsW z8S*n#{V8bZoe z@|U|}5=Y@5Dv2YuKDBt?bS(axS|#0jdfSf0YkP`;5VGiR;H@+ZhBxFckTURhUTxdWaK6afc_*VaD#Y_E+^64|Nr zyxUd5r^G2u>{Fl&wsVxMbKN8Z&m42bQI_A?-t_(TmECW4w`~b?i_C#SZlFDbuLRF|5J77kR>Tp+Cd0r^Lc z-o~bUEhgi2n+0sFVQaQ3*IY( zJ{xg-Ol-E0t)XNE9248Nd-0rAJ8^!?eYDG!bx^VD29y5HFVF}sC;}4OiNM|ze>ZWA z=NZpM->oojcGoTU7JWunf-p){g$~L|9D+ag>}r7PhLE^gEzy~DE@hnyKMy--^;lW_ zC|*1sdF*rG;*rv1VX~GQVLd}bj-P)OMKO84Tby>)JJf1oSCp;Qe9fqw?g!3&>+;K} znu!Kn3yXw0rxd?YYROSO@_q6%n#I(qc18=UB4Y%hMQ1rrfuHjG)c2(w0Mwer>wW7| z1X`>Pkn)0*ej-bG?3Dgcpg2+RK>*bXW;w6U7gdbaM>RJA=JwfT^shkcexzGfIf;zg z>|Up)-1!J9Q}{ShZ2*nf?UFzzARY)CeRI$UtYz8u+tW^3np0udo?hp&r6npQ0XWH0 zxWUFd)%8B+l%X7IV^7DJ+CB+92@dJ=j zl;jUN9lo_1V&AEHMEo?~64Fq$6-JuDDq+QBouNbwE4je{ z(KIcQpqm5Fb$SdkwyHTZ{{RPF@8GSDoa&n_+iaQFNk}u4lH`THMhZQV#~9;|kYqNX(Rz3wH%5pIL; z?&{c&sUJ+p&9v!EC)MihJ&70~AM2met;u@+%Lh!g9WSBvzR64IT6j)JBDqaEq9fKO z7+TA6SP1|pxg&r_zDN1g!$WC1=Btp?I*#)i!vLi&Io)q9vw{F0g(XQj1e1)6gIX+p zW`Y+VQ%vaOA=+C-W$AlV8w?vxuhTZiW<5D_OUOu5r6^0qDG5O2H}d%Q%}Z`~ttWA2 z+j5epCR`g(FE&6s+EF1vK}Tp9&eO*@$sOy(T4HUgJ+bW|*T7oCNsbiz%G}BT#`PZf zJfE&}#%d?kjS@8dsulX*CQI`qIHu+Vr)YdAXL?c&K*t1m&VBNinV^V&HovdAT*JjY zl?^lgRru;O@YXCU%O$C{wXfBWyes&47%4ljP6_>LZ>uyFj^zm7V<{Gks6bZs5>kgi z{$}%ooc9Rv@0TE`e2L0a+rMy9VY*97!qAGe>$GYJH)#(Qi1C!qrs7fwLYzn>=dn(B z#(mEeVrUbR(|)U_uAWEXk+OKpf0s)Oczp`hMQc`E840FM;4}##5Y* z{i^-Y@b7HgBFfYk1{o-5rHC!N>bd1VJ~#jl*eAbnj2JF~*2ez;s-3!CUT!L1S=;0^ zft`rYoDV)uPnwWw&Y(y5=0&9llP#w`CPPh?snV`66O58`!24E!WyYm)j+_Tstx}$| z>EvpTn%%9U-rV=YUaWS@VM_~7B)7pK&AWidIXLrN8nJVN>d z1%1UfE{Id6BjawnBEaP7YNe zvNMiG-0{M)KMh{D-m1oHPeqSsaSlq5eKoq!0l4V|j3?aSU}Ls@#ZbC!tL@@Z($b{} zi9o{N#^nSN_(90ZPJ4gvR>ZE4KF)+9(|SyY+CflmLUsjno(TLuOy-JFA--nlq{f{_ z(!&gdxQ$28^iq96sx<7q6d_$7G8G{q$F{npEecA3A2+`r{M1idCPtmLTrKhAs{N&$ zbu7wMrqWiz^W7x*Vv>wXGv+!+~42lixo#%ioiO*j0%;!=lNiA}ImTkZ)y7 z+VxUws8zDo#A|JySS8gm%2MmVWDike<{)#%aq}M)m!>*eFVLO3>6?suY_zDUww){V z97)FtJomN?VJ4`{W=g_Jf|QEzdsi_=<~JcjM@T-c~?f|azt zE)TDedtmY0=Si$}Ro&(m&9ZdJ_L*R|;X;dl8L;u{gq$lG7|*?2{{XaHEh(%td?|Ja zs9pXVQ|UN@5~kYn%g4@gN^|EtjGXf-<;{Hp&*{FW5a|Jcf>xFGBOUYO6+(EkOh`8? zs>17xcxz*kxmre@4UYc+erm;+d4)2>+v#~NtfVVB$wJ42UXX5jvR0aM=Easth=lUu zmW1b!oTVjMS1K65Il;$cjkiK{?w7O7Rnu6*{oyGYQ*oUDw93HaC_gIC)Z})@Y@N?m zwMjKGhRxD z1~ZNObM+&dVm!j`mhsoh%1M7oPzNK_l{i2?Xg@oHgeoxv?H%`D=Ab*=j$O5%+F3mEgrOmA+tr}QvPt(VmtliOCp|tK6 z^0ec+T}Sz5wQpK4EV>$Y*(@xKg!&|$e@d1oQe0Q6qd9Ys>ukn&x9KSG&^bxZxd8G{ zH6zs1nPDwVWxyR{CmH-{ILQ9M{{Zt_SaJoiRBx&pb^f2m=VZO=LB=@Up?Yj zrA{SM>WY_L$Jhr!&;_O9BWajWnU5&5|yX}h2-{MVeMI!H3lmiU1;FAODl7OCQvr# zbM*VLI;*Qi+WTON zv@+70kLs+YUVtQx#2!y1WI_2rPWWE?egIKsS+^1UQ4BFQim8SCq1$KDtV!_ zcTjHy*;Y$Qk8N?!;XgHHfzKqQ5xGd`@c>7TaB5iO4{lgIPn_Td4jU2`rxa-cU1A5mw7_U=tpj$H38BFkp04-iwf zRzESYzn_A#I$@#oWJql4JBnVGwiZKeN^uKlto9{1A&; zr==-M5QKmUBmg-i*E{qV7tXNWFRDth>By3jMsTMb01WmVDPQ-RyLIizS~Oka_1aHNHQ z%qyz2_0l!&#Rl&UTbP)_A4kwA1B3M)s;~X4H2N-`J4NLU?vZGGEGTykI6@XbuEYNT zEn)c{D#PA4ehvtOjcb1m_0Q2oCvpbTO z^;bUzk}vUF1|z88jM7|66)n(^;^VT7#Gv^Ef30qPX1xzz)JSV?;<9i6_ccggZ(5I~5IrlC zZOvv=ibPp$f?EssQ0|j}K3wzQoDw4OI-Pfy65(xjawH|>rRP9E1q3V-TgQa}a-4S~ z7|F{dm7GAqxmKyDDh(u+E+Z>?ollbK5k4=c>KAa{alC>OKVKD6>p$7oLh38a*G6Bu zS=Ra7>o8nEWlG(ZC?#lC(nd!F4#yqy57Zr9aM_u+!)z%<0j-SXOL<;6@=ag*K{q7n zTT*WTrr;s9@hLo%xwLKsrf ztm7+Ek0kIuzyL4>Z>k{Ps*NW90C9%wq{e0ni+f7;mkM}RJ1`D{(Wns)NBsg5?2gr{!Qp({97%kvPf4ped4tV^ZAm`F-W zl3#EiMY3_cf&GVWezk@1^BY?&INoGC^CcNbLcsh%C%!=OO=MicntIafG3NGMgVx@g zOzEZB1}xVkSS~73V=YVmDlh>pxqtyY@JDbwRd~*%UAErkwd4m_$tY0qpY-!x@6;Ox zpVgW|Ri{vl+up(T5O%oI!TD5!gM|afZzK>wBB{$i?A4;9-y=-8-!9W&mqBV9;j{-& zCu-K7PmaMk!S~|3U@U%ity!^FR8oj1)Qy!GbY7*8r)`>_QNxhC9o4YpLWgpY4t9qK zZA%4mSzN$v{>+2NVh1GlPHz zaf9BUmBLKdRrt`lkAPcad)#yLRNN`EZ_lO6td+!P(=H*fznR4Yz$eGPD}AK(HP+tr zXQx7xn`f`FFD*xDkFRR95n!{YO(#wmEiTrW;y=TvWhDS(`uWd%^WLRoj~|&)se%Vvhqb-xtknHq zwlxJX?JOA*cK-ksd%yd|N3p>CTzCXy`&P0qRU3t-9*n}vnxoT6bztSEvK6)T@BWQxnQ6JIA}xbcYS0eh@efyrcN9t@?a`@?AaC{-9g!mUopjxa-9k zWobQ?^{*QzSEHVxMEIE*W#pFR5BM?wRz8G}^7CBA{-KpBd2ZJ7kjmASl9EP#gWu^_ zpF{c+KJLtIPpaj)9y|M8Wuy>Xkl6uAIp<;ydw0msv8@+K2(siEOj_%%svL}phjlLf zVvB86j^xubT%Y_S8A{*|`<0GUj^nY&7{_{;*C_Q_H?2FWo|ScpEG1H0Q*sp9^xa7y z5|v{IA1VENRBQm9Rf$~Yj_&H()7?4I7RF;y!=FqcBO@3lv6e@;7$Rf%A^ zv39nmQz_Yn6fGafq1=CwA3`dK>5ot&U8luO;$eOibnIYfhS$LgAa}+w{pxkDI*)I( z$y7@+Q$F$O?g$U;j^}@rsCQV$VfM(UPUz!qXJ`^()b*8<7@`I4`_z-5_bD!^(yExZ zZdNG?w%!Qg?shMO_<-~O02T@3oYe(?fvB$c7ggar4*Qo8(m7k{Ma8R5B}Bh((PFqQshm&+z`{w0`YNOmZRdE!EBZ{ z(MT)iqR$@=&c8ju3YVSx*>`W~JuOPY|%p*+%(vP!a@sqQ)CW9#>*#;vqZ(>I%i zf_poij_$(Z0a9{2q>u?1K0wIl+Pa26Q7z8vn{rZFN?%cqvIzVn5)Myn5DEHbwOZ$= z(Y5vU{X=26H4M1gQsQ20?R`n(enI(ioN49Jr_MSI1)+;`YW-iS5NwS{;6lzdg7Q(D~9mi^(*Q|MhE@zT@2K; zMwCSET>0HoWqawKWoxZ%TJ)z;>8Z$W-q^gb`)VolQ-zEIRq_&i4Dd~B zw1trhjI(|UTFQUf7*Pc&=eZqg@SZ zQK#g}b}L9m7V-Z8#m@z`iEY16KzUmtSN{HFvc?cy+bdz|CA-RBuN^N!@! z`>Hls%h3_jbJL}_g0XJ6xZk9-kOB0HbC47P0V?2QBh6Fo+AmYCDMH$IBAY2oj;MjP zBLj|pV~*IW-S*UH1z(OxU4?LqLrA{7{k}aqD>lup=c3m3mWaaTxhME*h}#~qd&UBA zNe9}tm%ftgOJ|Pa;9_~F z%0qgrnhZ75wekyDypJ_cTD7go5!D83ZkwAfY-RT{ml{@ZpuF;Yj2|_w(-);%wFK1N z7yL;IA=RjXwZKn*r*Zu&ebjp;$53jO-0Trwxz3PfcrKrWDuEVlQZQ=0!6qd~O_U)*h zx9LbOTpdyr^Ti4OEKfUhiN2dpPD~i%G0dpOe zvZI9f0A~jxt`IWi3!DYQLi4hP^}Zy1E!8$=N4KIJJA_0yhZ`6|-3wo+J%YJOAb&7E zO-(dbss8{P+@nBw<{`$6(8>~`l}T40DE8yO_WDn?9ji_27_RBt^hoyx(}%q>N=g(m zoyj2XN`~Sx2tPG*w^;Prx?he(`{-hb~}g(&Q;|q&U53D?UAp`p-Utp zQ<=KmSY2bV#Icrj1)h5r_g1e>_^t&IM}6tq2^h~LjB+_1WSuEY8x@JC=3QBpGU~Lr zw^DGBoM9;(pOg}L<2#A%z~*>;Oje>UPt;P2cQ#Oc83|58(ldt0@;ndwH5Qesr@g5d zYDgvO-bmG@^tP*r{KI1L{Z| zR+}=nK)A`X%0r3U+`o0zs!ol$e)6*2*7dsJw;KFJxXB;*Ydwxe2tD!k$%(aaR9!&Z z)^s@Gc!Z@3BPuEba3{7ioO^LoElqBbVFKH5x&HHuFeBsA5x3KLVM=UgJ-;f(HvoR3 zwR$StgE8i!GaaNTgeqg?l7M@G-;y)H$JEwtKFb6gGlepXWmx-t>6 zIeEVT7(wU0U!7{?`&*iW1dKLEhZI5HquU9_G2LD^ItxiND2HVwt867JbZHJVx>Nk% z`g!E>!C5#5j(HVibW=%K6#KWNu4Tb+R+i(vDPv+>!75Tx02#qgeB6M-2ld)uSnBd!PDwuZcwHyO5iDdFeWRv|>Dxa+su_%#q)oJ9*=pkg=mx zRym}34Y%s3-CH|Q+4S|>PU?GW@ZMdzK#v{u0)?HV6`+H)SjPl?Dv5@_lviPEoqMD& zR#~>~VQE{|_cE(;&HqU=;qOKvrJU`QrETC-@=x{k8VK0PmgeM-#kL< zNh58@xLR>zl$COb*mArZ0!D|!uj;8wtl2l4k$4oYL)hMX4hAx7XC5eNq#{eplu$4N z{{RX{(0|sy8uXb?)>}hk*(n0Q7Vp-ompayNfo(DfgSeAf&i4<#tK$CvAS&FnXS#s? z_4(4q!`)8O%_wCmyu=FN9zA4dzaQ6%*WMl6$Vfk$y);XrKCHILQi?+_hYEo0x19d~ zZuRfqv-S#J%S|EXWOuQke3t{-ijz}cet-{;)pmzcHC^VzcV_)&c1)?!2Zhif`RbM||-F0oULBCx-bUC>!paeF7oTmvL@Oa6|Z{LJ`xTCM0O{VbHO0s zc#EWDQ<0l>qYWhWm|%Yk@{j=*1dg`%T}pJqwY|p88VisgwAzR99hEsDmfLLSD*3Qg zz&OTxj=<)k`rn~f3znpvchGlBYnI6_mwgAy+AJ+fB}qw23Q7lXc;k#50(`oOtuFeX z)3`eF| zOq8$94uwg2Inhftjc@mr@i8wq#i=Vx#jLd(1G7P1a!<}cCj$U;okoz???0&S60feT zx|f}4xZr2fP*DM}4`4fc)W#1`?T~a^GUdLP?nz{*#AxnXc{@V?0F>iyLFegFi`AP= z>i7ooOE%3#G2j_}g^}}c0C5?@f#78G^`^$$yC>C1W!3wYYFlTP;Ig}`tVVI=Bq1tT z02LpV8P6x}_N@7G7>OClGF?L~wl^(nH~?2CYTZSuESDAOZDS34BP5uBFCg~;#3=qG zD+k8|j02j`&egYX@e_Z)Ztu^I(|(&kzE*~ipa|Q~*dIJqb2#GVwu@psEQ%p8eci3c z!&Px=OFo6_UcGoT7F$vfLr+hN?!zNs1MrYX0Ao1G1L!K%(J(9)n@8@gJsqg=V=o0L z$tqF&$|sUfxg_yi{{W*jrn9_0<;uksh;UuyFHCr}7P1H702N^8IU^rhzIuJ8ozqrz z$CWhAmiqli+ye;*0Buj5qulq&Ja!fw8V8EUW94zw_j)NMDN16QDN0a;r71!cb^AqJ zJ`1K&Sqf5BHbYU;N8foLY#`UaK&^kfI%NSz9;DSSQt(OqM+yG`?4>{V%|m}`sp=7| zcC@H%THTQ1eDD&KpZ?P7-_sCNY}1z8a!^nsMQyF5Y>|V%{zBF4n15$;}61%VkWuk94SD*C})wbJ{bl zim}gH6YDzlsq?#!P%GufzE*$-{%Y%b<&WB$(IU&#h_>0=_%u?p!cuI);zfs&^ zgIh*Ahoo#bRa>B`=i#{a=`J&u5glX?m~u*xc+T8`-`iy1o?qTen%WQpysq_b7L2fIYB0{p&A4>iD{jRn7}eha7^m5Uw(& z*PW#Oa+9CZmCPVrM;zhqunJj9@s}xxsY!WzO3u`bWRqVAn!$OtSGlFTpG+)cem#$D z{X5fgn_Ws?&~o2ZuI5#qSxU3BMLX=~$=qgn1# zT0?~~rb3LjQ1VaV{2<`-ji=6gj%&54QMrM{6>bWr!q+rxcU14})zg_8UdryF)Nn(3 zhI)=YPF#-17(p4rNh5Ld$OpD6;;j|N{L>nMT1(BbwSe;6aN{{Afu1`L`^9G4r#|$R zwDfhMq5_z8SRSDA2+st6m)fPuZFNhE+}Tt+Ui9^MYpSpIS>`Rn@w&^2+}wpFASVYS zVc>Jf`gy8*RrNytxsohbKZ>?|9uoX=lGCn{$WcFuCy+)C4+gqz$!sP^!v$`80F)$T zf%U4pubn>s02^4*chl^$yYvNM01}l*Z_7lSVL32~t*XHbk$#%5FTbPp~TxGV)N&LzMSPD4o6OwrQ*J)|{ zMYh9ci)ge&ZX_tE2x+7a0QdTmc_i{lB-D+0F^24_PYWAVWELX#@LanSTubz%MRH?^ zVQWNyg{%GRqd8G0^Bz9<$*Y4v>KJ!xVrN}mL-N}Q^qW!n)PF9|sQPnS`}aWf{m%B} z)^4*QLv_;P;x^g{NGByIQT!vmG7djV_S9W1k!zT58ZuF2Fpyie9QPQ{rr}oy8Q}4s zB8qRrZc>a{&8wKq&B~p-HtQbGKXX}?=(xBcCwi84k`jCs1LM!uqk4N*MY-EsYAnx6 zSOasbPW35$#?g_H$0U*5d(|_j`m=Vpy(R?pNVg&i_B#`n+)~>o=O-JI;6InQ1IW!{ z!Pd_y__~So#c4zx{*x(2;uL;$gp3s&e8=C|Q4K?1BbWxs_1H|*v~f=Nf?ddNJpTQw zsAk?HK!9dX{tICRL0K4413O35{KJ6!|0HA8O`}ch#v^ zg_!NF1UR4+8vHG%%CS=pooKy9uB~j`ZqwYiSXO_7vzMf!Bpsu&2OY>c?~cZ$IRejb z8Nd~G>is=x)%s#(g6`U#fibElnQZ>DYLPSm>Coapqy z7~G(SzyuP13bzb#&m`QbN*h2*LQsT^00sa8t8GoI?V5d+wP|@1Bo%s&teyUc%Z=N- z=h$!#bHS~KmcLvzNRKh-N@a#Y+7PT4Rs8!&;Clne$>h@-SofAUlAdVif|;|-Et_tq z)zMC?U8yXV?L%mG*K}jmVa|9sQWfDzJ`_Fw0MfO(TIjjA+tf^-PAO=mDo)iTt9T%R z$K@a1vv2pNZBijH?$nt|P!25N2noh=efb!t7VBjQkYvud{{X4FH&k@)?(6Neu?a+? zJguL?UUE~&<9D1Me&V3kT~#_O4?&g->QN;n#eB`I{$PK<*1PS+!Mj0rCB`F9!H@%c zWHuDr!2VK`k^Ot*RSDLQ+4j!6d7Yq=;}@;vNVhonExwHW$wHO*2*|-I#~9-|s+Ba( zkXdvXHZvV7_?ETpbM;g%o4>mf`7~Z1THcd@r(IS~fo(agtGsSj4 zO8RA|^ruYIq?CpwJ2irCGSJ?|%306Nlg<;IC))tv5^7p<_D7c6DtNb}&sD_+_uX^e zfR6$N%6-#R$PZi>9q5+0&8&vnTZmE%%U2(ikT}5Ip7<%7XdQZ3kc~ZXd2Gf@nUc~7 z-^UyuZ2MHf9R{{6OH}LI($=OFh?r;6^jsqWY9U8(2gemqH`5-VNz{zmTd>KD@*LP^ zsThuwg}}4VH^aI4M{Cb5QQ0X`M;aTgt4{?mrW6 zxPKBnEx5;r3E|{l+Pf)XBsxe%zIu zLkXqyDCMRkyZF3)T)y{R!KETMceb&4oh?g{>Gc>>E~p5npO@-+=RA1&opqWHivIxW zGwkImy+%QjroxY)6iCX_4;!=20m4Z<0tIt(9a+BVXsETa7R!>8{?d}J&7M9(;YXf( zkH2g?zO`c4Y-UBB^*Z=Y_-abZU4)`AK|WGJBX43j>}i!%p|1@B{{VcIj1RMJsHT!h zB*;bVI{yHx!{5)KJ!{pwjgAI}xF-5NRv$oZ3?;yq99dA?w?0C!bIviG8iw?y#bA?b z_?NA5q=u9HSDkDrStFiL>%~wB)R#?JV;3vc(do0!;H9{~!lbOIBmu%lZUF3SHqF$B zZT9zLH8pX!4X&Uo2kb>&hb@D;u4=GK9$~-bKHDpUTSN)F`Z{S+q%iAcDvZc0Qb6uf zJNf?ru~Dm6L~pm~{{SEHtl6W!=P}=5Tf#;@aFLI$0mt+;sOb)+o~=loUq5&5sO`Gc z5Kau)1O$|fj3ogoQQmM0fCD&C7UYhqMpcb78(U1ub?;B%2_Ca49H~k{nG>E^T-`47#!OiN897aD2R-~^7zA6$1n z^$eYD_K%fr7db4sO~4fkJg{)_jq;HX5y}F4~H$m*VeSU z*F{`zdS$ont}PRW1QixAgc6~YxU<+1p92RR9z|90G)A$#-BWC0()Y!LkOt(Q-Z&@v z_WFP_I~L<~hU{kSF+B^K$-NfJCUCQ3_u$SMCw1m6>02KuV zV*qymeQLMrH%%qz)vfXsb?<(7>Bu~HGaq2O(DMFN?w4KM20VI@x^s63BT|d;#D<&P;l^Cd#hFwaw zxYB?aS{2~(Q}r1KgH^7T>7C~18HqBkQJqss$DlHiw-~`t=i9|hG;W#HrL@9v*zj#k zN+HIQ@9`7{Gk~53eaQ!$;;o&v3k9TR?i;RH>(5SA(@kUW(7q-6JMD*KyyAOy1QGxl z2P2QC10tX|o0{hq-B!<44W+-8I4T2yoOd|D{RMwWwOxYQsjM=r*J$m(8bS(wWCauw z2nreUGyec$xR0qFH@tM({^DGKhhe&Q$Ck@wNl;RGPDsyegH&aNUpQShABevvqrBL4 zT5Ta_k21^gms#q4=8h2&c-Y^N75u>e08ZnaRh3}Z7nwGO?3P&57TaWPX{N|+2RlJ0 z@TER8oKA}aEwF~amiHOsNOnMzu`t#DO)axy(>t!+SugZ_M;@gfS4^)$tpsN6&XK3uNlpGRH zCml5DHLl5QW!w8L&z<lw&b8{q+h4F+8*tu79n?u5YJ_Vo1lG5`#=2;WiX+|^7%Ju^ZuoWWNJ*6>6G(UrE)BdP9?ssprNAH6^<=7iPmJA+#Y#@>CLc z0iWyrYO=q(0de8Th*TW(w#Z5TU``18jDJd+bh6j2^~*@L>H9nKTV(oXdznOLfbh2u z86LwY9x3z=%W&mewNVKObb0`G^V`|;RxeI^hN}!`9Ei4wb-kx|IH;#pdV;I1t=m$T z7N^t{aCjI{Kj~JEmgpXkwzwkdy+JnPete~F#MTV-BtQi%CNWQS0NU}GU*k~q)e@_F{rdx>csS0hgwBbl!!P;R*l$r$fmezM+h zG}21et^gI$9RamkH2wX^s`y1bnJZ;eT^S@LM0X$%4m)6dYRT7nQrE7RAvOzbwYe#E zB3z)5ggQHAMI$O8bDrb+Rd&&fUh7g^edYNrr&Y*$t53CP(^l!O%5Frtt`oJj_XH+i9X|xr+V=jse`-wEv!2kd@b~A z7hgg2RgX)$Rj)NosyeR-MUK#0N2K(C6!Xm=321h}9oM(GAS;^L^tVQ6wQ3o$ZY{ey zBxw&Jl}?bL3u#dRsUrZZ1F;?I`jf77w0LYuUD=gx}g0F`m%`*L`z4@mUR&ta0pw`R_{NN46ieMt?aUKA1rc=3{I zq(@j?xmpvaktJ5ijie;aKg0Y#_-C;}AIvfB_xzvNZAPadS{jWWF;ED8dWKf+e+tqt z5}&ET&vCcJCUyxpVQDiAsg{^kKE(U%28Y(HzP4$7C#zEm1=@SC?+k@5Bawhpi9)zL z(s(E&c_WmZ9`&HM^e)eB)7KW_&0Oo_%_PNA(fa4$>jE}LAFRRvAKNRKG zGwsI*FqY5p43z%>kUo3;JC0_WzfIb8Rh7$4;xKuI9mr5PTT8(KX+9J){$S)1E1I6^ ze^42?y<-+-No&*zYGGP^Et`l73eU<2-b0@iSdz(v+sD5|pI~R1a0qokiEHHIXS=(7=qt$@&!+R!2X`ucvCis)5i!I)nC$ zx?J|9O~i6TspEnZ{1l(=4PVvK_J{DBPfh%c7xO!)V%F!yDN0v3rb<$jAt_2wgrzA$ z5|pI~O053?XxIB@^Hi>8m~kb**o9!j-XC@#FlGfZ^-k z>+4Zdy6v&#v^wWYK-HEP?UM?bacEFxOJn$qsElqO>OB7ddgKjnZoX(OOuHS$&sX6V z9BI&;2`m%BhkOH$+~9&dS8miZsr@$7-9U)KF5eLvRCD|paY|C?PdP!{2r0?VG2gKq z*B>ld?0JQ;hu4~1%|DgG#d3X~_j1&llHI1PPAAp4K9*bccnsw7PCNmV$F+5LNjiNK zKw2e7ME7n}rn()KDZ~VBAYmy=a&VE8fJr$~=Cxfg=*E@McXw|P+?jB=oyleSN={fo z1Q3vr21qz0{+Oxs+k;W1GY}6_L!hZB2e2Mb{rELFE_UlN!Z_|m$_v%Ig!>KF*Qf(U z>vJhBx;Ff%R^WbP;48L$)Abem4*g-e*w=Zy+`bVEs5$_2r{Po%Q?w7nc=kE=shFPz zWVKqPh8E+E@AQcaO4FW4J;?UOQa`j0PVSHx{{R!|FiZ&hotbWJC*&mZ;sEZPcTeTy zjxqwiM=^%OR8rEzQ&7zAvq{ve4Zfz?AGOO<4xf*Xv>-I%b_W8E1E}x0I0WEwI~->< zv$$#oU|CT%MZ*s|->A+oQm#7@?ObK!n$<6>sFs073_Qa)n}`39YAkTr%t~La^7JnRAk0cN@M_dchm>C zBZHBQV2tLjtqG@?(waisr`UN&P0CmWPhah@}ZhII>2xu^B~H?APA z-sDhPN=`F{9pmqkoc#)ET+S%SO@eJbQKEkttPXXpua7kkx@z59rl%J!@g)3Z%pnac z&nJ(a*19Myx-xZ0QZZ0n|^WpPzK#I1%r%clD>20>>m*}wdHlszeQbe~&d`67p1=Tu1|{ON~1iL5T?(N6_LBQAdDP#;;9W?skIHYD0N8ysVf=!r{z6?1b3#)?i6<->U=r@T~;Fx$`4AANU(O+sh)w%a_ zP}*^vd;P2Jsf?~y!j%NSvwp&Rr?yAyT&-#9B-nombTgiEODXh16tcB6GH{fIWR&u7 zIjd`=cHLb&Q8}q~8%u>3;naxCKf}(I;O{B?sQ?j!&QESA8A}08k+L#pGmth~@7gz} zFKQ^L)Y@j;hi{A=N^QI)a@qg@f8ttjG32L?aFJ97hUwvUGhco> z+CweyN!+3MicbJ?ay)ZgnXayH+4Qu_gmMFo>>2h7T2fEw39V(4@B88se{;SR`Vy78 z`~yPoWHkM#&B&KBNFJQVtYO zJNHpM)uRavHw~8JvX*0^w56ufje!XR0U)Zofx|H@6}ckVtZqWc z+`X#L2Luo?oE(Bd0=(eK))QIXUYE`an|UDQC0OJUlgQ70MOOD-rQY;YDbiO4 zegf*A8+m98OHKGA!qR*n9QmmppVgQ9^RTRzYkTA~AuY<1md@4+PDxsi$_N19XPyO1 zI?JH!`qN5G_^7S^^otqAz?2Tvwy+5aD)NFr1Rgoh2L_uiY=x~VN&^t6WV5p19lH6h zYm;ZNEl&mSdcg1tu zxia8PNKzxI8+Ts0hP<@!Pvn2*RqG1Q@tQAi3aQ1>4= z8P9Z);MBXR7B}yDacP3mT%Q?1=)kLKBpy-@ags7Q<2dcyZeU1)n5?%AC~7J~T4W(1 zErHo7NboxVKG?5Il(yi&dSjrJG=icBb5;%Sa_p4=5VW6_G(${SYP z0ohz0Pu8^>=J9y6>LlM_8FFGsNM*Oy-^h*+ZZVGM@AatmrPJDq#dd!4WsWDpJM&X3L_FGEs!L%KqzShekR9ap~1&t$9~lL zWo&HB?n){O39Ba%!Y)s<*0(xWRNBA854(7i>NxSr*(*@qtbQ+Hj1TEv`g>8`r?DKw zi1di-aYe}}!C$166omKS{HKpRd-FoVa@yn9Xph{cO?jY|MrJCK+hh<)E+~R?oDGS` zpO|r0pHDUAvdN~@hl0!KKn!ih&@tH3#Uo{IVX{ivNob~YGJasJ$@e#eCT_`b0vm2^ zF;t+HtdoFq;aU8?-&)Oyb(bCjU!KBLr{n}M8dgF<0|5PVpMK(~Ek&rV*V8LgKtqn& ztu@jmh_^&WP8RJH55{^%KZan`|MpEg&ZYumk@9!V~2EJ99xT z)E-G29JXO+@oDS6%16}eE|u18Ghx(hr}$xRw<))_IT={N+I{|qBew^}yQRGu(mFEc zo7{0eea#6WmuIOb(F9jbsUBdI>Ng8Tt@=gN ztw(5?1lo}jQvU#miBSplBdi|j$=U}zr?DSkM-^S+%hNZzrk=b<+bS~G9n`F2k@!}h zq2WOGAcNS~Z0U_tXuo`2uue=kv55&Na|&M>{71F{#yr(?)VR85Ri-_@`D$W&uo_cP zrlhHt9dG%GN`W8{PSc)q#!1a;sF-Xyt&9@3rG@Xea1C#;T-(#jex%e|wkDU;sSAF4 zm{#oiZKMpT#bb~XGD-b8;<}zc?AfN`X&2jeOSer%w1s?YsR0{@FXLJNqwSJu&wSC=R0?)Td+N|Rx~Tkwe8J*@s76|Y$?TV+A)q#J-(yI z8ShgF_-zd(P?D?C=5&p3--_ZZjl)psOZ=Ggu={Eyt&Sx6WG8?z;~z@bL%%8pqjGfl z3z8pfB~B7f0l^>B7{zsSx_?XR%_noSPD_okbCtbblYqPym2L`ef)Yk?oM3~4oYi#$ z_Hwe?u8dC9n!Qu)?8s018*oEQf1HF8R&Wm)z~pBHcc`VM44*tkH}80i;I}X!UjBklhH zwM=@W)JRvGNwwJ>4%=PE`2Cvo5djGO}+*Bb8a zf4tk9d1{MlV5{Nd1(Fg*0!oSeN(sox`qc|`c0^0FHy>0uwd{Gd=OZH=euQ?ZHQQ7{ zxLc9vxTLzGHYFn~OP&B8d*kbxl9Hj)Grn~Szi2S1sb?;xZJOeJT|HeFPS`qwYPRVx z-dq27%LxY79LU{WHe@f)*Ro?kMYJ}s=L?b^l#Dx$& zk^$%FNU0`|)DkR4Wxm|05}tKi-g%?={`~L;JAc-$30mQz=U+!8PP2gpc8#X{7Ie8$ znqR6Tq%YJM{3kuf(;hv=WnOKTy+LSt+jES}=rR+9wysj4+#HU_u>^Bmoul>S`&$Lz+M6S;F0ZCuTFGLo>X)x=M=MmRE_Eg zSR}LsM&c zgsCN$R#KM|aCjr|s1%GJ>U@l?F=%omcBV>qH#b|!b9PVx!SwhzBZ1HK@molD>r97c zM-$?vL;@2ruT*7{MtS;uf7BXlz-iGwoz9hqFx!9CaOS0tF4wB=G2d=Pc`V9b4vaXS zNg4ZsKdpVl)HeX!m=m57BFy2?>O%56WM{Dhino7gZ7*-V>lUxJOPny|fSA)#vaVi8 z0VN~@xa{D8z}ep>p)<5@oP&3PY;yX$jFqH0DW=-khLe&2-;>G5VaNdIxU15#8k%gc z(ZgkClM(b8v$tNpO0o4*nEU5v34+6yRb6SF7jnE`qFWN;q!--@^rJRb;?vz&A7D?O)!1Dd zxxs^_VQK47N?vUtwiz5H2?HfW`{yM2C)}E?Ix(U3UAEW%0Mux9_TF1aQG*p@EjP?NWnz3}|tFXvzdvn42lYyLb)yG)e?(ii1M55H!8(JkiR&yaI18xT$vOSL;)u2cC zf*rX!me6Ld+W@7R3sOmGl_-RORCrKUM;*pT(y97OoW}q)R*nx0b42&acAH+?_>a|3 zwf%WP> zW(v|CPz#c+xk3o+GDbHjjCmcYVVUwqdZffCDQRlka!U#I+o$TGpR`5t^LW&-#oA}Y zB`m4-0thW7E-RAXusa7IPpx8fI%US+bh^m5PIemHhv+SBETwx?pl}H1A1}YPLT?fz zKOqT_w+fj@rV_m67$@by?a4e;{{W#nJ5%a;S0}8_LWypSg#2{Lj_hrr$ruA9s~eAO zamg7K?T-HdX6!3(&8`0c$>Zv>F()=`MdmO7zJO`4R&Po5gnc&Q_1Z(qX(hEbrDF>B zsS~p`M^U7?{vAVQ+iQX4Eyp&bk_Zigcqa$3;{%@KI~e^J(5ldrZsP9!%I6{~{vLDk zl@+8u5<);iae=r1LiZjjHPZcN)so)399CM4>zh!&RU|E+az}jo=aXJK93*aDMKH2T zSww(Y!21@C$7Ix3jdq)5t^$SGfPOJAs3k36?NXFSWb!e9d|)0b>9KTnI#KaA%iPB$ zF9pV-6t>9Ywp5a(f9Cmq)g_&(ELv984n&C_yK>YLg|s&<-{xQGoRRh8+O{`sXQpkD zqrWQg8~v%jRy$}`^}37_6cRbd1Z3c6jMZia#!DJjrA(7mwY4%b!1K0-+v=-sxb$_K z?V=>@8*Yll+7Jz?prGHyHS9?{cY<@dT%JKas=Cpg6V`f??;reK9qTo%hW07XRkb{{ zjNu4KD#s_fhB@pCg)kslo3R3|O3z0}D=tQqy$B)1}w>mpg11U$t!sYT~jTQ)pHJOPS;x z`NlsF={bwkTP3#B6;P7(!9;^8w5>j)N%FOO{W}kQaB9k0QnV=xNK#ZVK^X*lS2^{o zrqcB7$rtSzZ<@P&ox)^z*#%|Lo} z(=Ah|?l0Yn4xNHkfMl?(&Sd0-AmEgbazN|`dBxRW>0Xev?Roesxl8=-OK_+x{{Z^1 zLNWSh>S@rt<-3NdweT=XTNAF;Dbv%9%F7mcPSE>%)AdR0e^G;3_4t&fDG5jkNEiSP z0I%8#hzkoPDM}KhVqWGZ-)5aXN(oG8?mS8C0#Z(YwPn;hty2sxnBJWOC2b{~f9G0I zf3Y=YjvhTkaepxb+EO^!606_YegluqzTe*}Qq{IPSNz39t$*Z?>sOst{{XX{y%9Qa z+@OpuY?ob8Ba#8wKTnhUnzAcLv{Ui1DNi76?9nn2W(1`vSgJ&&DMAvIr3gw=lp!ff zP=uu^LKiar)|z<1)i&)<9BoYYy%&mjA=dGQXX=s%{FQw4-u{hGp{+NxuX5x^Pp!vi zQ}Vb!^#xX!uR3@9N7EamcA73qh>Ll~>tFTvo{2ccfsf8&)vPU#HSgK0x)bVeM)tQ)I4Ree$Ax|WQM?cIG za7vGI3GMHmGc7$#jXqbz-q3*8!+?Y_^ER{3%mTT>y}8G3Yh~Ato()rHH)}K$F8=@< zZVFel$Y^IMJ_+X|Jn@Y4R2G)e8v9V*Vp%_P-629l!7?RDjJ8B}@(PCK0h5Emd;XOh z9`PwI+mgFHG|!-8A^759}wzXjHiTfrC=c^aL#^W z0Xf1?Cl%1$KhpLdmTB0!YS`oQUYPRVTaOXF_b`y9a4?Vt&=NkK&PkJLojYXHP<{%> zZI1<$jsBW`X9ySyT8}F@@<}zQ>NcOb-Qz`_WRRAwP)dtQQnsbQtYl}w`9TNnJmg5w z(00*Nnps}WU2;0D;JUDjgAiU)67%5tdsUu5$pm=gKhnN69fHrOt>y*l15+5tPzuOW z54uzcQcu(oRb%}}MTRl5-0iAz`j-!?+pF5Fjzfg`IU^W2Be5J;%s#2E=F~XzJtUzI zC`oyd^16|?7zFS}Rh0XI%^`aXoHm_P#Vtc9{VGA-y@uC5r3&kvqflrZg!tI=aE(Avs4*3HyCl!$~_H?saz?+kf0QN;Eo5-*Fb6wb7Q;S;Ay5A zOqkav(*gF%IeDi@O0qtKCq6Nnr8UPux`S=GJk6pDSBrW|l+3o}G|@^1NZywek`4zr z$o4e^u$Imw8m(FkNsq%{M(*f7{%bNGy3{vNoi$`)bm@32L`cn-J9kzGVf8qxk3e+F zWX_jOvul+pyM@+Y#w{$VB~Zu!At79(s|h5L$IeI8;{MJ06Z`|E=3K5WH8$&TA;}J) z{{XpZBZksXD)LF=B!Ppp6L7?k)TqtLVPS1Jkff318npbxS<40tjdp0xp>taLVFyRt zoYa56m2_3ITWDwq-jHqW--$|71mFS&JY-|Rd^~O+|KEA}uL(VL>dkR&WZGe0Mk*IL{UHuX?2__~5kLVXfC@s52fT zCwW@czyN-=d-T^%+Vr-NiD$Jm<88NTch(G z#9)ER00I91sAKImn%_X$=qO1-cL`FrNHn#R)x{{W|(7p19h3^^Ze z5avl7Af#uJ#yR_E6!tXkpq^F%k!kg9u4~rQsq~ey5+p}X_Rw1aPa~YTkVgjujLQ;SYt(v9;+&1xPT&p>FnJ@|wOvQD zyLPrJ@ulIo@1V6AC8Luuv%{ev@~n*KAB&OAGHCdW*y)qcgZME*C#H!g>ClHLJtZgA?(>4t>&4L^#Oj~ATraO!EOT~YS)GNtZ zJ+gD*J%AM#*IhW#*Z6N)Y_a3oE-_E8Bt=LGLcf*3KM?wHjEoVJp9`!;G>)r}adu0x zta5-c_YMAu1C#|GIl&-*s3x|WhR)5>GdI}xn3h=bFdZSS*-7k96b9jreXxD1OrU~Y zvZ^F=9@auhcAEJ3E_Tz}uHmM21IfC)rl!VsVwAED#UqWm>_;E1bQXZrmR&(?nKJh4 z56fBt8RG{P zPj#!Ocbf&di(AX~)>oU&mepZxhSwatrqZXR`teg%N?hABkyJZB zM9AePqTo5E*3$m~U%raU)0f#0Z?T_lV=HamLYY?dBzGVZFiuVmIOBqNHD+qL7VE1l zMYcKdHy{wA^D5jxJ@b+~eMqip(lRc$v^Qk7#vZ(Xm_DPm4W~WH{{TUfYRl=(<-I$p zWJbHnRFtymORGTIR59|93E*QDZa0UtEIP;?1g6}Io84|VEgN-IbS=l3no+h(=qXY` zA2-uE81umuv((zg18}YJVM|-@rN-1-NhB=e@cZC@PAe|sYCS}-xVI#(Bo{Y)3ig7s zpl}p@hDY4{`_|g$L(S8dF?qA9MaJ0+Vr1@gE%>Y2Grc1m9l=>hJRbmNhY;HY$eLuk zwzs`o(Qi}YLz8v8wit=D7X3e)C+puI<&1f%hp!rPPgmeUb569%ZuX{1<>3@c9Mas{0 zb~2m?(@ViF1g9T|u+J1aF#QP85Y;}MhcwyTmmR&+KBKvNZ%@0Vu1(BarKFXl2Dc5l zA>8aBZXAL|T33(R&V8E0Y&v@4#nV(a$#UftOG{vqay=C*00e?TDkFB%ct0&&I*U<}Mn4itG62c)K|JwSRqtHdShhoDGhADwp-!FTXWb_~ z{{Z-}s5;7Z>U@vz^_}TS2umTvC*@8_BP#qLUtwC>TM7a%2kBVU!{6M7t z02kPRka-*)anq6B^%4SrLzu}%Mn~7}UTU2bOjJ)*CFG}al0PW=&@K*%9vbG{u3EEo z;99K>Sr+kpNly|2vZ$#(N4fU?wI9_tCEDUH?Dfg_i>OkfTpCbQj%Vg5UVj%L6Q69< z&-S0_b5fX_)D0BNZAodbTH$VKye0Ic47$)91q6(gf%9^I7vkpY4aJEIZHv3lxdiQ8q~c3Ns!Y26E233ukWz5f7D1u@dvqJ94Op(Hli7-2=E zBRB-9IVUG1{{Yn1&PN58TJNYB;T1y?`*QxIfOT9o;)HdlvP~rX(N_Lg4NypFKAP!Ubw*$bb zPN)5wA;7W+?3b(6)=MoPRxFp0kn#6HLO~ekMz};p=K_j(hrF9kOS3=V|YvZ3jzo8q}TP=`&TzsK8;B$eBg7nS> zi&IRSb-3AKIOFRwWFuzeAd{1TqIl1Wt}VLG0yMSm&wfZ#R|v{zJe=ov<+UK=kdSaUP=BNsq?i%gZAz`;(++c<*G+hRk4KF*d2dW(N}E^q4llp z>GPqjFS1j;_8l#H=^6P~jt&6EMiq>6#Y|$v)3a;}vNIMd_K@GhnB}~(P&nJq1XMD? zs1gI(3$rvR$BXK@|Ulj$k^<9fTn07SA1as=BrR~I_P54F+A!D`= zd}L>wM)$(mGLvFex@t^9dP6*HE@LRUhX zrD`C3@sXO3btg-?X=%xNCPPsqZQUx?+W!FFx8LMPjN=78kB)dTyVqN#J*HWAO*EA) zFmhjz*(GlT^MRh(9nU2H0Dqo~YDU!|Qm;2WIHZ?W`@b=9XTE;)=ENL46cW`wCxdSA zJo$fR%l%p^I`-gPh44=Ng~kdBN>oq@$Rj!DJmhZ?Q@mLIL~XBR^c%Nq)zPi4UVC zsiC(Tx!m6+w+7&#QikwB;DfUmuVw8sI6aSo9<7Xff%z)%)*nnYCwr6YRTS&HvhEP2 zF}=*axI$ z$)PTKHry}zMpOR)x!5T)Vkvuze1H|t;z1{r`0v~B-E@{|wyT?loIXai$0)w)?zie& z9P2V}?OdaxA>m7PVH*|vst2;ZpVFeYPNl*+jjJu8WW8rNn~xvH8%3>BwMy-xgwmpj zy;>w{#oiP}l-hgOtXLt`-dn8NYSx~$w<59kuK7FppL4G3oa>yIdHuY|_qm_@{(OMG z_O|Kb0HO3*| z+vq~$$Z$tVFH%d=zllNfMvhcaebWu|B+;bzAkPW!!N8B?LWmo0 z;w^;?W0=Ihk~-0mn&{Z4FR=L@%v)RWR&5Da47zBK7drUE=!U8uJMq%V+R@oiZ?Apq z&u+#FOX+}KQlsp*2UVr+HIIap+h>Cg*4BR>ApN2_S}-AfAWj(HH__zc5aPr>vHWY zwQHRxOa49Yyep$m3YJ0#EZSUEG}KU5O|`{nE~ON-wVCV{a}&6NoQ8PsiS&rfzQoESU4BT;%2s{I?`G9VaKjD$TDdLq|IxB+>HwIf+&yzW)zI*F1Nx`yrUFZ%?~Lq~wKd`?pzs zT&KACj~1tmlfTe(jM$qy3eQoAZp625H}5ge$*`5c;o9~aXYCzfCFbs%tIpo1Onm~P zBV?om(6ZlnN17A_qg^xFAeBs?^fySkU_5e%_L*ZeB8_ZWTzXl z>)7sqU%ub^1llOO7I1Q&%DX#bKo%4wyi|E1f z%n-^ov-z`I$s+PWlN16`(6fa=1mWaxgyOD?)?u^r?~;p})JTuWFG${1WQB<)GrcD? zUDdJetuwasrRt)d#<-wziK!nBXOU+<(gKL;*0?PGm0nD}n5G%hdiBVD&)}}aPDkq} zCaZGs`$U%`ZY24&f)4o?UoXS1JwB}2C$6c;#O`nTGH=FY{n|(6s4Tl5{mM0QaN)^o zY0f{-f)PGv2kHmUNHlhDF_Ij%TzYYQ)n+Ep$6Ow{toT8SyS`fblgRJcZ1D#2;u3F7IRZh&tLX@li1OUe>j#RDqfbDO_<&&`ek=DC&4GHSTM_rP(rhnio3^n^-)Rpy>RqMOvb#F0;ZHdLti zAO4=Z7C+N@i>G|t&(xJ4ijdxQ-L>8D{o59SR`sM#&5B^*VlzJ_(Gq6Wi>UaoW!QmA zv2$LwaN-cyUPCixgR_&#uj+$JGrz-Rk{#Y$l817v5KAP28A?)tWu2tbbRbu-hxwv~cxjkc zGhOGCj!sNuetvf*tP`j-)2Fd-AmWDo`gdArvq6CRf+_$7*Pc?T4eRT8f=AUv2S9zI z=d~A_R|=W;Gk@%6iE)Gd)P3w}kIqYuG;ch_O>CzI?pJ>#Z_2v!0k|0aALWcmDIM%P zjb7z@8-jO6B!+bK`S~=-@P-1RTIeyHQ0s)BcyZ)UnKcpm^qy=i(|V<8cd~aLB$SQx zrWcpXitkLy>X+WR>b>|r(PZCfWH>A_p;I_xtRd(AtPhVNArVP72dZ@QjS8*saYjvi zOG?f-U--U$`l%7zd2|2pLyG%vJg`hxgO7i`*Rn#B_g5|<4$uEMw-S`!j#39xiq4m8 zC=%Smsh=!Cz9kURFL0}ZG?-a#;5b_&Y&mbtM^KYF-S|TCA7A$5E(g@WZ4WqYlMD3I z1lEM+E#rPa6t2^_oZ^u^a`seu^z+8Au#&JXYNfETV5DU}ntoH1n|5jQj@%t%-^ncE z9i)Hw^PSbfK&4dA1lC_Oml&5Fm(aVx9viQR#@163GTn9Cs-9;&-&3w$sIMXhcx4QF zKKsYmtCbL+nE23?>y<+CVX|sptn67zPY8t&`@MIunvwT2$9iLVtKA@ z4R#k1vG@=^s$;61Q7H8#lXQjB$k&U)Uk%H=C;K|}GiMXT^yVD&NyZXSEOu=_Mdr0n ze=yd?P8;V38XdCyN!%)Gk(u)Dx4z&%EJnxq4Na}Na%vkoE8W(?vYc5c8$M&{n#ju` z>MkR@@*Y+QVzGpC67yy5F|o5Cwz@T~V^Vp8pscaK;+#p@=KNA%`3C00?nAD~1XZL? zD5&%RbHj{No{GNYCQni0wF1h;5^-2ZcW>b~-IL0b{9bXO31frodfN*XXpeRc!$Y zuuGN~%?=QERD8E7QE+gJG>S0u8Qh*3(H15)homx9&)_pP-da}6h?#9t`xtw?!cNaWqE2DvH zyXq5gEyQP6MiO4I7#Obiq~Q$T|7$(0Z2KX-5oQ|{IZH>g2h@NtD2qq!orVo`(BAc> zTROVvJhX2Y#?|lqgIb7)Ni0#JKDN;;rYAI+j|`HC;sUSzO@4#Q_I+v|J=)kc3sK!n z-f_bV_ioz_Uv8S)zv6)>8A)YF)7cS$_i3^T>3S7~fa79s4D41hDI_X|D>Im!0UX6y z4+a1T#5}TisK9NP?~odxa=!7x`Oo6o)l|0p`Fs-7bKGsV7)MvXtP30Uv`5x0;gvDqs0yfE^Wu+*jLGiI^+zY$}Z{K%O5ePl&;9? z?Uoh}B|UY{IR>hSqJ?4~n&M{tioa`RlP)ZeSD5LZK^A}EjuNhZi=j#n7R8&)eY8-# zo4)>KvZe(!OZB$ab`Qp&5x0&AU+&8{Wa_?BKL{GJ{>!KCS}t&2q|3K@jU5oIq9(+H z7HJ9MMA;f7blSCG8E>P>QzF#;((!t2^TKIe7$`S@;KNF06P~OKle)%VOdc9m9&!M4 z4E7byt4ejr<@Df?a7((R6p8%bJuk4be`Rf~4~smHaM@ein7XMIS3VNM_Udw+W{Q&7 zZ(v5j6S2o>2O-RK1X52$SEmyuLO~nV12ycmMSt;o4)yU8(9%~6O*_WEl&1W zb~B9)hn-4OjoqFMJ~!{8DAP;|3-yaC5t5wYxcFy1^_f9o06zH*p9eY{yv9680bp_V z(Un)5*6HPYVwm?UMIck>54m%q`=Q_U!GpH4e3t*XZu>F3mRlSzH2IjIVork)sx*qz z*?%v&>r$pyJrFkR<7lq?J|C28?F5l~*}MY^R>`k! zp`dMukr%rIUJSIN+jm|XmY%2eK_^T<-er+np2uEVdN?+jj_uxt{}B?Y`uSnQROD7n zl5dqwW%^5tt*uXRie>m&uMA#d{uSN8K1j49ug(u~kXPYSdzcfFU%pXqY(Pc63vFYt zeg7mF8$eReh`C>R+o_4w+pD&nKdY-(mnGvWgGI8WhXkuJb{uWy&)CbJI4(HR7fKlN ziA{<-2aPeH38aXMnIVMZHj`**@47MS+{oBx!dQ7y%%7~Tu`{Wsnw!YB%Ms(KM8wC| zEH}`>?$QAobSa!_@Tg-D;d|3K^yXc@Rmc;3IJxeHj?;}_S#6sDO%qm4V0F1r^m1_M z&2I>G6VX^Z9+0!YlbEif!msIJL?o$B05vmWYU55kig}LM>dqmk$8d0P#)^me;%IN> z^Eo;$e=+wwV~re_m@jP_PmQn7dHE+F=qz#&6T)7i>L4A0GaxFxQoj;YTy65~O9sBX zt3;yMpG@RC^@SD&02ucMZgxuQ`X4|=%s8jn?Q3wQ-0Q^-gV>|z3-}x5$L?ehsJNN? z)j-Kp&2!^+6I_`7W@8C&X)$T~wP#tC{sZOblFcmD;AKabFcfyPxu^P#BPeDJ_j=(19VW>M*%%? z&Yp1j&T%vNv%K{yy9_*gOr-W)ykTjgdNmR;tnhoo4H!Q)WZ$kcY~D>{-blU(T`@hL zaF%t@624FRHIpn|R`E8!Du~Ade{;X?9 zAJ;0cQTT<))ybK(xod#3P}UJXwkqdAGjo&1!_kf5${GaRvCR=zzl%XddL^E_Cu)&b z5YiFRGFU&ftv4OXx{evcxL{e-y$9+T#{DK%X;y+k8Sw}y5bmxo#6EdGgDLSoPknJ{ z0D&4&`r^bxaKEk_3pmZ9!(FJPdtq3*v8WE3W5YQr^afnwwUoN{59c4~7F4X9d9!1mRULf627L=9%xOWwABK z$2`hpH!7sj@E9t^bn8*41Z}L^Yrn3V7-*xCU)|RIrIJxJ=N)6s&h5&GS;$l_YTK0q zLMU-Mr@<;YwuakRRr0aFy0FLjbv=FD?~( z8=!sdg9w!xmILduG@bHXUEgvct@-5^H9w7eID;b#egJUH%1?Z%0;jMO8aV-(*dndP zlKiHmGEHh*uT9tX?0fet5ER)H6h+^)=W@&?GQ9{GV+7;uye4DfR*b&w!9?3z&=MZL zl(xh^jBQp-qpco25hSE&e z=@oa2syddpwNCW1I5m9oPfol~a}~PTQJrc$8+0r>NC>(r;Q*?t8~mRR4Gmu4 zi>S+FZisUHs+eql@5GSj*z7-~x7hj%TZhKl96~TOF)t8ssDd5i{+v+xYYbCST4RNQ z2c0&yhzG_dt*3)GzN&Arqses9eYD!<`r;)E9{UWf0JxftD+Tr6LH z7?ghzFOWMHbE^L7b;%>K@HHpU9XI2t_!T3TAD_2(1=+Au3u~EsqHtKwUVr8g9Si|2 zp8bP*_4<5UGSg*L?^F8ore>jYH!m+`%#m@;?p%HGtJYG@`yZ3LR`UW>I>x31PV7id zCd|}PHlmJnS-0$dferiVRude-gwO4n&sEZaHKPg0=%zEnDsSZfw1No?-nZIO_q`{v z3z|DY{Bv#Iz9R_2epJJH4Ej2ERCvosgUE%ABb2!(PC+h^6Su)TtYymM+{pUfMQ6mJ32rDa z3dU_a>Tkt$to78)^Ae2*6&By ztLC2BPm~&51}_JOcH^DS;u3@V2pZ4Q;ou8t=xayU8-ti_$o<;_UU^uW`U6yYG>x?2 zvtv;=8zL;b3iZsA}PYBV$o}MZh#>i|snDoSZ6QOmIetqJ>Ls`W|Vh^q#?&Q zE)jgIvqq@BE*URsOqE>ThA|j`d#h#ezJY-j8d*6MI*cajv}442T0G-a^TI?fAyics&skj8*ezW4jlSNv=Ok47#V&cc20TY#e3{j& zmwHrI;uvS2zps7{;gAffpR?fuC!XrtvQQ$q0>%AQ0%Xyz-qDuJ%T0s`EU1Sh%(IvU zAiXxFp$jD+kh|7DjF?1TR50n}{peXs=JSaQ(<)rC!24n%jC^(!Kenftnb|!fw${X7 z+hU{A8jIA-Z>*mqUJX0N;npDp0ah(Q{iA!juDhKgCcmN;(lVL^FsNx|cs4x($q@P| zKTeGe)GONm3dJkw^XG=8uCP3Z{{SpLg|_1p?wau_foX7X4mJ@<-W_b^ea)-yj^gDW zP~{bNf18X`Spwy^Tz(hYrBb*7oWT^#(r4Db!S7PUW&02C6i0&L_MY3l#9%@vCf3iX znrVbKM@cir-l=!6mnKlOR|$iTQBdG^;uVwETggh{`}-Km`yYTSt`>uBg!wNfqz8&J z`A(&FIyIQu*I2L?GMXcQjMi0o!&E`^0g3sS(gw(A*H0VPQ)<-8fseXLJZ;A{n;T?p z4^jL${hBKc#%6tUclp`8IQaTRT>XE)HNvUToSap~1ud6$pM^S|HemH8tt`IpEt4M6 z@nX$&89gxe#M8GFK8O8fY{uI|G0}mS`8#J0$rd?w-W2IP=r)Ws0&p11^2B8&qSGJcl~Stiw7iVCuHcdb;jw4g4VC)HH9USjJ^Emw~%`H6&-uJqcEB! zUgw(ueQB3(jnpTF*{!SQ+Pa4{ox-25*r4w{7ELZ^@-f!;5-#TzpJy(^-;JzI4QoZr z(k$acZCmI@U zIW6Zop~?<^%MV8%tf&52e?4i%mPO@2hRlz}*WfAFd{4E*ncvD7T0{nsi*Ty(VQ0o* zCzS5}V%vU78J6uNRxt*Kf{`%i$>85bHAWDnwc*%qsf;`2=9Y1#WCHTT?+Xig^;N5g z6Vd`OzAR4HQ}*LWF#!v^LJ?+3L5{u?&Q;6I-%H*tEt_ z7#K`QBPr9K^|!?Ig^#XM9W0rT(lUj@$Wct^^n26~fLX%dhHITg%?ld;q85J3;5mUq zzJf3VyEsIJV62&d+MgF8uI)tz;l(e^N0i+>#sh~!`7QGI-B+Px2T>C2xL5(DZ-)gn zr@Z@+_DFK=eO=o7M0^e_pWxsy=`bzlHbRDk8*8C_>p_{_#+kK>_)1TfjjJ-6qsh8g zn!_YzlX)~j{%juu(cfyqR27`&EaI~qY?&%|A`Dc|L-o5u=Ra5P;x!>&Hba6ei%*q0 zSTa?8SEt86?|yq*9&NA!&ssUkI7p7f8THc8MLLC~ucCK`Ewo^BFJj&4AQk*^8j|NM z91VRK4Yji(VuC(grmorzgm{>U!JLsBRosn5?dKK$N{{W@`)A|hZX5;qCYEhzZVleI z1B)SB0}S_`z1&N6JATxYx0AZUtfk6>9J~^Hp<8STr)%`nr^i|XQWgl&1Ff0#X@slW zT6fL1Jp>v>BK_8lpaHvf>Aaafnrw298qM@J>eEjKP9fEl=ejfpR+$Dm%Ti=wI?Yl{ zZZg@L(iS)N3?6c%bAMZx4_k>l_=GBi;w^b@rGsC$r!*;BvwlFfm@_3Y-0lKQ*UqwPl6abLs#= z14TZ}SsmMLV%8NeO)$N6E9}_6c-7vx`~!Sna)vQb-_7T?=47d5PMu!ZyeQX`H40NF z>j^j*B&~Ic7el}p2wK@T7A*KX8D`X?Wlam@(i~LP9t%i23GmLl8SHxPg0!w3?kT~b zG_JUi4Tm#_w@+ywr|Eaw;e6$tYR$A~sN=J2!26awKejQnT5fOqfFHO-W3Nf=`U`X; zpMaLUdkd#fBrs<%!%25Zh=*pF+D<+?Ron zH^{5m-KxzsPzG~zca8=$ja`({_(=5zBr8;-nE+JoZqa;O5$DF4X}^zxrGLo!wtW}cG_d)^fE z7_4(l(doO9xT*XH_+6WL2DeO|J^!hq7V8oh{f63^qt`e0{j3hfJm9X#;~FPnYnKlt zUf@q5S1A@FFK8VD1wT*%C_G06ybcwa_%~2)sgHcezwtZ1c zzd6p>(-@u7v} zB=wW83+V@-otVK)xqdsOn9;{LV{?n@947PtxXPeD0B&1##xajIyBtDq5`yxMI zjA`$r{q(TqxXSL=Eu8Ej824g3wTOG_FMcI$Fa>Kmb>NP5Hi!$ODY$X^lM5ZdqW(DH z7{6oK?XG)5*5`47+KU51BmE(gXg&}RF9_)X?qi7WWQ^b>0KLqal;oVAy(aA?GtBML zr;EFTvp+fO6^z50WUq>?^Ce^y3T)RJ&-|#z2bOIX3!3obE_0(C>#HyyiL7LDYNH30 zvxb5O#=g!J&P0n(m6eB~fYr26su11)YGD06RT%?Hln3jti*D+JuWBESXD03V;aZ#h z4qGZ4?P6}~w4@hL18{ka+T`&6RXsYEr%p|d|u;zEZ7$sss-i~d~x3w+h z%-}Vj7s1cNgs{1I+{lB@n}-;^QJM=Ui0)(HPNKVES#w&xPih zmRcXH*2@C1lMP!P_4q7;>ajmllx3&uErluYZs@S3wPhWKJ^u;d>E>2@{KY_NSEq}U z&cB+(U#!V~QlM+8_Jtg~BcM5^mZNY$o>4v^O4Zb2rs6Pn`=8i-i1^pWm(&XjHA(p) zUm*xb2n`M$_OfnPbz1tS;u>~{@flqlDvjBy&|sSa6We?XMo3uD_Dxh|@Ra5ZA{`nQ z^BUE2BFQ*@v2vPovOBGsW!1@wC5-$0PQFgQe=02SzVG=O z0PuBS2j#c8@&*z37&ZTt70Tm<%J-G}3@f7l07rG~2ljgC#jK*0V!MqBEVD82zWydO z*X})%bRI0Di_h+X&(?lP@Ev(RS;D)62dRhY9d=nE9g=<@?0Xfgy40Q_`1|7Fo+uIR zI=p55w?^HV1_wZtOaB_7Y~SGagGErnJ*XH4OTmw7{YzaEys8aK@%dC$-yrFQvvq}j zJMQ=Xo6RJT&7oGPgB%N;dA~AqFaKBZ^iaL zWtq0Om|B)H+&3&=5OwBwH?E1`)706eQjk8LfQFt1AlYz_(`UXMXm~a41xX!9&T7#q znRBzS)^5cm#!&X3oR=7!a5ai?Q)-HRmz$?w*$(*NX2auNP-Bb9`Piqani$%z9Qq+~ zYZKHl_Anh?!6El&R^jX0SK(QW$Av~ZcXv6g-SMmc0kRx$`W9{?Z900MKG#D(pZYP#x^8Yp8}x6>m7uW-4)a^XO;lCIX;Hrcf$bLk zmnT8m(yBKhOWP-}zh@@#J``(?vI0-)X$rBD7AaW>UL=!)zmu~9f@3yuQ?C8Z9t-v@ zHq@(?JxsAnaNG0=9J!m8TCqImbE?8!Tt(SCO)_Qe+HPJHm+#-nQQqkTB zl^UA6{pvf-@QInW_J4qJ|DuoW&FRMrb=*uTND3m#|B0TZ#&gJmiNXEv2;W=3 zkL_mG`7@h=1kUi{-N)eGWGQgTS_LzveYK*8=FFi0?f@puMLMaswzZHHuV02EHR3fz zyb~HkVFOA!E~oI!RhNTUhh>j|_QltwF;iPr7=*k%+%jlcQ8KW9YtNL1M<*lfbaVbd zxH0xuR>pSqqFg#2W&@1N_O9>ukMMJyk`p#Ohi~!Ps#!akWl8G}6a|Xa<#|kq@baxm zaqU{KQ`pReFiq`!+3F<6fGWx)Z|t=h>OD@!F}AXLCAsGWNo+)B(vBBn8FZ2VOTTyt zG>Tp=W*<2ZWu|=OBoDQwH3*yf4{({tO?mrH=84VD&q2o~O=8(A2nFC_Lp$yEgDStb zrv(-R^B1vbb04PrU_;%u!~S%+6;z|hy`)Pkr7C^L%4c!D96Qnc_<@YjyZ=9ci{kW$ zUzxHHY$_&I@c*UX{Xg4K>ZiAcwjCGs^QHQbq4?Qj=eGj5u%&#iTR?eibB~_!(Wm;Lx`Y?`ByjaQF5m+I2ER}E zS{515yyJzJBVh0^3GovS`WDLm6sw82=BbXlM+b_gwc$EFBwYG^Z#q==FU#A3=rWXZ z*wm>e*Z*ByIhCXNbHKNSaJ9{zx+}>8V^|qf0Vn{0U?uNi6deg<;nF9 z%`O*PXM4T;=hmT0t>C3tu#u8vuM*3*K0MEIhcwr}sy6SWS|FzWMu8OjCESp7;8Cp^ zfHKo5_RAJEl@n%IlsZq>0EVa9n%-${->M8hg!0|!>z+0 z)AKW(GX3jJVGp^x!iS?ht-0E5R;{b_@T@pinY&8sYUwF1CXi5j&=jTY@Y`O2qidZYbQJhk4 zqo5pp>vVpQy2+!1Oc2y1p)Yk7mmTK4qVFU;b|j)>>kTkShKakEeOhRB?|%L`L$g;p zduJmb@isS>v;@+n{Wta#!a~PhV~1O=NLiW!8Tz)MY-5gqkm+~(MH$r`>Vw3laN4^& z@3Oong$~qx=C71*!pn~4D(vOQN$Kdp&r{Nbd4G>DO;(6Df_yMVv^P%QH=7Rl*cYMi)f2Qs%3c76eVB+&i@wH0yQ44)3fTJcyWk)P4&TlzqkBfXJc~V|So!CG_$O zshu=?_{nk}s5j#MN*q8oCdE(A5>LEP$%T`u$+hW(QAh^7<~>98#eRkx!*G`eBW)V~ z**BbSpDGGD>*60T@@zo7W~oWQ+@-8rTjy)tMJsG<{o3w=RWiyDxgVrGfO^U-=*+^jI~p8EOc zam5m4_;WIO*3GPr4i0w4(vDsq2KOx?l649j4_zQnhNAP|!4I(!T3e8V)NiJPNxZR9 z#!Z2guat{gXLt5cWj=ye?$Qit>;ph$k0C0Kg ztRj4*e&{ZGf)=!Q=(mvEDO?JZ*I1N8A}Qkk1r6vZVwW*5mKK{4pMLTe#aS6y@?1C1(3*IB`CgHs^dwb7nT43uS|nV5DI+k7}aFA8Qfjydd-YI(*G@IC_gfkz-n8 zwP(odR)YngLsoo{1%!`O?7TSfRWf^woQdc`KB(mrmx#TBxp9hzgh@S~k2j(U9q_-3O@x!a0S*SoHnHEvR`;kd?Fsl` zH1-rV57b@%9=dhfT{RKgK4YMV?lAC7jj_r%NF?0E>;82R-YZz=XucqxcO@E(GyeXK zwY~;ytFJaN2Drp9FlgOYWJuU){`Sz^(Tft{vW2d=CA6T0|KT<#@^><8jK$bHT)$)- z5s|6;wL|OU9m#WrE#9_G>sTwz_l&uHT{|8h3zHCP|1O%*r|jw9aJ*~s12$x*bCuQf zYm(TW&bA89hFe2HKm;)R)cQr2lrCV}!!)w46LFT4y~vS`+S6A*n>$IL_L&&XFmbd0 zd37;(_=RTn!F~Q5vaENg17_vL(xKD0+6Yp56LyRi+Bt@WCGyi}xYeej>FIUnW?|_OuUAqnE5=zs6a_$04yIfFS}qGX#+`cf z(vKPSxCZv8?BkHjt{x1sY===cmjRkx>Y>?ew>o>2FIunkZ5N0B9FYObT0l;b5iUSO z{VuIo|8DCx0m4zcz4v=cCl{Ktbg_Jz4nS^o=z|q$oMQ$Flkl-D>^G9hGp{VhAxV@ApVr4?Cb`49Sai z)S(ncLxI*IZ z@@DCIq8I1*?_F_3;-IQN`JT7;ST%(cOd%P*&b-VT_^5%wci`9`D*&px3Ccb)@X=HX zwTQXc#Y?((*TyN3C|uM4*>~srmeOAKeUc2DEb^n6d0uGJXgsvw%>yr6O-&5tnE#4< znw{<2uNLqFez`!MS_URr^`bGHyJUULp+*l+jq+POvTFD?H9*+#uph-Oqk%2nW4&$2 zfDOi7#q4+54aFK9Mi;1F`&N73Vd3BX_T9n)WO5VPU=W&)mI;br4EjXPwT5SW=()irQodY$gwxJMb z-bULtGhUOyA|4UXY#v*G5$yxRPaDnWbSMP$>CIF4Z@LWccdi!&(w2~J;-E@@Jy zLu~#B6-hNThu?GenkVgXDLimA zWwmfcPpa%J8#^??_I%Ih9aM@uZFz?HfGp;!oOB$7%@x zVwrQNUtOQ*j$203Nw-*nkf4lESu0VNBI!`PRrFmGHP6ICyqKwGvJoMHvrgD_mlEJn zy63_DuJNsSZ$x39qB1WX&aV=?UZo@Wtsl3=l%YvPn+a;?m*ER9dnr1T72*cQMs(w- z^hAZG%y!hxABz+j!n;Ir6Qt=}Al>f(O=E(wX?Vr^oT0WDlUyuO^jT3x+7WDpYlUh0E-CSrdN z<1BaM%c)vn2r0{b{*qfM7TC7<)U||@%>!3-EY?gxT6I6J?&FT`2etGG%kt(bBnES; z1;#t|x`(w+C4BZCYEVI>s4Dp2bU%6@NJL-bB|XvlE-b&@Hp!n+MJa-Ygd6cJDG{e{ zosJG&@1hQE-snad!QS@1?_~^+$4Wfhh-vFd`83H1D1Rwo;orez{xY7BK7vfbQK>|Q z6sK^9N%Mk@Rz^TvoO^*Un%(0}_x{u*ve~ssZhbznLv0oOAHYU=4hxca>U5OZ;S>z2 zaE`TUEW{r8MRE;&U-G6rn*)tW#1#uy7MK%FT|{l#WkVQP_`6N3nUg@VE7X`!j3kE)zPZhe9Y z*Na8%#-kw(3%u@%OgshiLhflF1+PL)&~TQZV>#kxvks}r;N%H+!= z^Q1_7RLCNQuu9m^V5)?Ew%c2#r*$4lVHwZwq{1gT`X<&J8gD~L2U&1~*4U^&JWOW1 zLb^_m?h&dCo^!kl;+Px0DJaOn5jDUWT`nPTJm?3Z-@$8iW$tbf&a&$r z{iUR~>P>Z$Gg zMqlk44b!jCLl3SI6!;5XPJJY=@YrnoMaX%64){$lM4 zfAY%WhS(`DQ*Lln%_0UgCfZTrHr@KX)U_kJ1ogvzfkb_^p()t{ugDf6+TV)++Ct_X-i*Ds4zUwBAei{ z$elQRvjZe;<|wY`>1AFsP~^*-k#b}goy1U)>3X@BN7Kq`m;7RN$j&SB2}Q%i8t#UR zch$NqE)Xwhbb@GLvt=fGO1NLwjwa8_p+cFs%j7N}&S4|9WPuw)c>KXMRqDWRf*-x` z#(iEVae$TS=Ws%o&%W*_C$td#eeuBymYu%Cs&U{@WnpMFYj~$6H5Op=n&}$00 znzt+|xvoETP)gB+);>_M*I0uPk8&r zt$)a@qcL-&^B)b}lgNmA-95!vDh@&p(Q9G~ahHy(&Pv7m!q(ox$7Cv;3yS0BGI}q* zHh0;1#tKKkUyP7UfGW8P$A*v`U(78`1hxm2{pi}3`n1nTT+x_}f(!nVUe!q_+Y1JIJLF8&ayN8aQG~_(=dC5<$!(1(8b`LG} zg6iZYB@;leoZR<-x1&$L@2KDxylYGQ+4sVImPvqSPQ!;j!-d7UAXC-p^0FA1>k3$g zS%5-7Q9-s-U-xT@lS}LJgbVr9Y=^QN3@O5y___>j&k@dQSP+4;f}<#iI>vjz^|QrQ zBfVv>6RL1w)4e)|qCB>=M(NHt<}D#MmZN2RS*)V}=V}wy1bx@DyG*vsVWpt0?X%s53#ZM$e(-cwLBYY@_ua z!Xh?sB7jF&AJV`j)a1~3snHTcLBQ^kzSWm`v6U~hK7LYZV%hT2c{Xf^l$CY!@=aD zeW&20y)whhR0T+4ZXz4N<*!F?+AUEKPl{O{Isb$Z$GU*(#{MCX41u*U@>)yL^kAOu=PRf3HSvEx(n!~!lkXkrf0 z|LdnNw;K`J`B`PxX_wZL)!>It7M!!%wFdzO7kHKi7J9ngTu~CR(5_bMkoc{b*4ia$ z>s}<0;Bz{fbDM@j8oS|An-?qWG44n>g^;LKel0@Di#sgFKsIf=#U>c-Z4GGR@=G|e zeCF>rrB|0eQ$%g&qqugC+$t^ik>i;%3c}3y_|ku-L-n+4EAoqd$(HkD+lAPSe>@5a zS_*;$?i?tMbZJGnkTW)yY-B6Cfs_EJ0zNnge-B|F?2)%6GpGjTCeuH7n5SCzr}Ywuz_F0L0%yrF7e*o{8aWtz5Jv zAjv-bT&2&jONv!kB?%Hged~0%icSyqWe9}jG@je33`f7(vY#f)6;xd-7Nm$nM~)>^ zF2;DuUZO=QAL`F%Y%UE#RSb}LQ?@rIe72{%39n6w; zmqidjF_Ccv{SP3Z2zT_!YN2ypw|u@`K9y8M*aNKV^D!Pv9{1G~3$>}*A#DEi7eD`_ zeRi1PlAL?d#&XNxKNgqudY#cSQ7PQF#w@>5@EbOTP78WF#&A!|(iteEG{24FeJhg` zs^3*%`EeQL!+%)6`G~jlE8#VE4jv3XLQb?n7P@jKm}tkS4e+sJWZc;IzCLX)ZEenQoJRaoQuwb-3=NZbjCMhp+n*Y>9yvTB>q=Ryp#= zng6iT0Qv73V*-z8b-t(zBgY4zlZkr{dD|sEYTAeOt&q^dbq8n>%gr#zx$78S@CSz} zH4Fe`c$SV1<}hF`)}VbqpIoGaX`m`NltKG@;dwF-q z6IQ3P3JrpL^6X<}!^Zj`esy9TTu(I=H)u8PiaYSw*n^+?ZkCe@GJ|*A*i?52ogU@0 zOP!|ayB0s|N~!_tW2YofbEr*snNr%>416Vn4<5Z>CJ8VnW=fV8Ade%H86yI%7y1|( zF$r(h>|l=qu}pbXO9Mtb#d_+Kv&Ac7B>xgF8>fw`uixE?0m|Ic-)(xYE=es%vM?xx z=#+w4hJkT@0YodhdXnxHtpA2*=P)Eun4&!Rk$hNo(>gDdvBBpG% z-7Am!Z5wyz#)&2gp9JbihsR2wV=zINWn`qd0z>BUV`~dn8)LT>K2tg)#P{o3SV4B@ zv)SZ>LC1o+CJYCN7(#@`k*B*{HB2(ek#}~~nv0fisOr)r;{kEmvp7oN9(2$GoU}J< z-t#IGmHefo;hiT~J5?uV0^n44J(imQbm|66m`$bSE<6j*sqoudtx)B{VWc28whcK; zsJ$!YWTOx2eau}B*mA3*NBz4wjq?|R># z_TFp%4bNKlbKlo>p2rb})7+ewz{reD-2j|d2mP*5r=M2_MBXf{q`aA7Dco8~R7-rt zI*fjKMf!PWrFtm-u1S-waNaAgEWvb%6J zU2doEn3!`Q5qL5Tlsf|tw+$*bN!JtZy%T}Sp9y37FLwh4)mBh|tQ7Zw3;~`esy&GM zwe@*x;$0DtCSi_h zMf^7U^;<}C#1ttZtoap7p>rrRaY90GFGba|UbuK;`F_ogxh2_Xg*tZp_E_^j3eo;u z8y&V@N~U@MajbVS=K68$j;$Mte>m<2YKz4^Sj%E~Jv zc|nlL_Ri3Y$Q~E$(B)wK!6L1PjnTyFm_&%a?ByEP?keDx|BDOZ`P1Squum>DhclNinY=aQ>P_4CGkMKzVe zFJxyZCn2X#I-Ak%V47&H4DTBhN1HG-r)_0?kWiU@EZuVegIEQ;ZB zX|YY`%vDJ$MGlz2_gvZ6JldbHI4s$E){@IW=-E!6H@f`RXy?4FMkdR;b*STr7g2Ec z7@scdOPx?QX^a7aiGYz}S9*0s4AXgb30i~(=hll(U#}qIk3JjdDTGNhrvxGh9_FXuw5q260nqufzAR=Y z9!i+BQEsmkR=+OphtjKX-|@Y@qAL8Vn}&0c)!~^9x0DY?C0Lhm7k%EJkT!136$HRoN_>+Up%&2 ztap_+kX|eLSIaSfqL=iZVEa9tpYxvZJ>A_tFW0owmNj*!j`j})g*PO{+~@Bh5n7*M zW|xzq`J}W`)B)q!gi^hjn{huc_?Xi5-Z_V9-0uA2hs$i-u;+0;bo=Eure>INbF?1b zm91*w{-y1u7fbX5&@UGEHHFKETH=UCFu&e8iTkJDUFXt$S#q7+SXu;jhCzHG z(TFc8?L#|xa(1SQr{qCZKo2QeG zAfmrtAt?c}`@KR5t74NC@Kh-GSwoSmX6PPS8pr#S)*H$*PpsZaF1)WkgZV+^9Li$v zoL@QA^IfPbWg8^7f{M}0Gj`ZdUO--~mLko%Ju@{#y<53z=Iws~jNr23 zLh3WkBZ!D*OLhwq&y5gzZu>mWBSEv~TX}+qVU`{cO`Y)jSimpOt-MAc;u^6%W^JXi zKNf}>yO1nS`G5>O-kckv%q*Q1>!tpUT#ez&+did9^nHGsXRqKCP}d$z{gXTULGLsg zlonk)=KKvYIwGn2NlhV2qH&s3Be| zsv$r46Lw#b_Z5oUf_PJXJJBo}$rN?MvHFSoN(OdVWPYEG#z z{~GLxl87%Y95{8uyYfJ`Q?_TRAg(9R(WLpgWj=+5Aj3+;`B}(urOjW}(vZphP`(l- zPd331+@#_x=b6^R-z=filM`+LVO`u+=#2~nF4nVqH^MZXR7YQ#cxaBhdce`H;?0Jn-h^!VMQXB5ut zjC>r|3cSP}&Ez;cAuwK8vmo zp}gPc9u}3?ILbAQ;?$4a*gmDYGw|`VFj27jgEn`BM<)WUTbIAi*bF5i zL_pBe?m05M!h=6M*flb)X}IyFO##0ApJRv5neQnnX@CCHK$Lr>mFVSus2VdJ4=YLj zk{j|L0Nd>Jo`m#{28h0s%N^w4kPy!Uoab;!W%w&RZo*#jP_lXynn8BtBD>>1DC-Xv zM@NGBL8Bm=Gi6@h1CjJ7)XkF@#WO>MEskvp--skfkf#nCi&!|RzENh9?{}L9XIuw#w5?~)!N33YR99h7R?Zbhh67sc>ARb4E_U$hw_Q7CFZX*h!U=N(hiGkm+%`}dv_eRvb96j z=(uIJR$gHvc}46L|N7K7SRWRYPgJWo8oksl8};{qdu`w{I`lU!)^=w8YV0M)gP=6B zQgnmx;N!*J`e!a#=P+8DS0XS4zp0C*!1>45%Rn~Ul=e=PTuJuT=X1j(+nJklf2o(l z?IH#!t`(VDYL+t-b?b#=;J<%8H3EO%Wwlz_x|!;&Nvgl?caw+cuux(E`+gqdKUo|K z-tZyo7v=8Zw?8Iy=`^c0&tI+xw^S&phyTdfwmuLlQ*1n!!NayW05-iR9g%66`MfE3 z->va2`bWRgex1g%()Ui2SO1#wA|R2WN8TiYwW}Sy)6j8->8K$j__Zjff^fLE!>%pt z;vjP+lhw_kkc4~Ehk*1?ZuL>v>E{m(AJv#vdjLeq;aVxI?^%A^oyveuHh3THfAO2m z7w$7oZ~2s1sZHUioDv{R9~ZOxD0y>XM{BBKe@a>zHpUCvujbr^ne4w$Ih&Mp@XFa% z(B*&Fyv1S7d$^l0bH&m_G+FbF`@C|y#aUTx8+?C)4KOtx!m39&2M?2KT6dSo!e2k} zd{q3E!-hdqKyj{8#;ZBD3+wA@PZ^_UcgkkHlRFcsxVd?O!;*9}bldGM%Bh*RA#tNM zIhyVJ8m?9+7h3*q&B825L*%Rq$C;nWr915-Rq_>7ZLv6ZRIxZQ5eAe22@m;aO*l8l zx3Sp#MlPW8T>A_dvDw(r(X)51USJ;^tqi5?o7q;@|4_4`=j>PxXX86xm8y>{Wq8uJ z*GJAO8j0e^=JvK*`r5;f$-fNFr%J8UHns^DLoD;R)RIw2gaT@o(Go@fI#&O>#verI zfn&dF6}o6HP{?iqO+v!aeH#t>`E~@v{AdT-50hbDY}ii_Hmqx`)gi0N8DF0HML`7< zXGuQkRfYm(ynnVs;#b3VcZ^c3$b?SDX!qD_iHN3|7RG-z;ztu-9V|+=$CWBj_Vw^> zWrr{Cj6+U$u8nR;?X@<3tm8RG+w@Q$3b#r= zwF+4NcsC)Ap7ZHHz#i%B{BL3N$d|Aq14G3(_yrN1g-#IVZ55Cw;MsHJ#?WPeQb8$X zV5tVnbi|gkseV~bWkhs(QGKP9&%OVrG*3$5e}F?O`uJ;7bSl*TQR!>D=wMgJ@nQhO zdH@EIiYzWuoem8>J^wZZ&8G1svH+lBWV}(Ve=TU&;-ZjTs2*D(Nx@_t0iFV&rl3We z4!U7z8yX)N;Q9Ym__C*O7tJ(F@ZeWSW6yk|<|IhuAil%;i(^@X)^`Ye5s+H5y48gdol$;8NQu!?l=wCLm7M9#sIGVhugKtB{WeKHRco#Dxv_cl2 zehg;IO54N4#1ObYD-ykOB^05J-8k>jDi>Qm#%6EI(Nt|GE6xh;K~Gw8qXb_qxMi(J zG>>;$qPM-{YH0hskYCsbX0e>w#->3TrJ<9y8cmW@Aj#N$u+au$Kku?m{}5XCBr@Mj;sSO8LXzXF(F50dWLPEzEx`LCufOTs3CaAZ z5yh|I{gcX+{)oB0=Q>-7#}6Mq{r#o+cl@-AkYwYM7F=j)2y~ia_Ox`7SA%);47E-5 zF2*#0$d4H$e>%h8!^bFRjm|c+2)-(-voLn}Qw2{_28XT&f2(Fw>&!`_EP1dSvBVv6 zt1zZfS4+e^TIl2?+(t0A5m~?T4aX!2jSl_~@N1!~7ajE#!_C`d76a%!RM>Gktx4K^ zn6|O~-+;JUAcM~`$NM~{IH5D|o3WWwgW83bJ?e-ieVjgOLEM`5>Zes|baNo(C^J&5 z5I7gdGdHqyDeEXY))XY#r9t~+Ch=Q=SCkUV)kC_S*>@Dslm%hJ((YxP&m)}AMJ$zr z@q_EE^h%AM(Pl~fN&9!VbZdF34^yF3pm!=dV_LOYaGYM0FNuZTW;+K4i#5OeEZLi? zAg6ED=-9kI^u~7;$BW$v8Q;>)n_M+7R=9rFSAp*p;@SXqVNDt-xudTrk;Hk=p5g1J z8e#4^ZNs;dxgE_{JuAt7(|%cxx*A1TiU_@S`h@8m=`z!-g)$)(t|c$7w(lh1vFz*@ zJO6Ju!~Xklmo|B`j3h@ni@3!eO)g-+tp}}}?f76a5ANXVRjb#n{v+Wp^o=oJ-BCz+ zfT3RC3MLA`IU5-nM!H`P(%Oy6%T@(Sfte~_Ayay5p7voo=A&7iRr*ncYryZ& z#vXQA{5sjw6nD9Y;0dR&DmectOKQ{X-Mp=TT0~qWp@#zj0SsPRDO+6a`+qXGg!o zvg6+2MMo7)e)@Rqrk-xjDGDp;L;S4aF%tf=+_Z zR^zuiDpq|TD%smjtjpdm**nn1IfOM;u-lxd0~u&oyCEI9J19t3NX4QdU(`3tHUYoC z`MYIAh*a~BPHNa_9>ZWt)*~IS00AYLMcJV-wjI4V05uM54bKo!-=MiI^k}|HMUVI)g4G(F#lXhcGwY z0Y3Gu?xJ9T4U~Wd9@0=B+y+FWZKYg`e%y=`DgWIr9`r$*hh?dT&yRAK#w-8LUHB#I z9_VE0Std4eK2v%Fy4RjQDH*}zRcdsX8XKpFPoANqHZpscs+Op8zp=`wYrU{`O z(pqBSUHih^vc(9)-@P0G^&q+9-)+U3%&jTj_2trPj8i+G-#?M?e=(w%OBgCCpG;GRck60&G&3gWftXgTKWQ?f6w&=%Ib%8N#D9(>bRiG5t@{d$HSv6hR$-T;nc&yl4XpIKrFsRLNV zJFiQD>E#0MOibo{T7|;+bEf-SEhTd_0PFc&wXbI=ajw1Pr=~!u*s`ue|2H2|&6=oE zsuVE()UQq$5U3`p;4_9r!}Mn}Z*kbG>8d7{r~u62_H$vW93ipK-PVUP`7bMXZB&F! zclP81l;6&ib5If=Bu1T_(k{lz0-HnBllJUb70mtWc)r$AoAtbZLDYAp12* z7`%o+2qgOeu=;H?d4zAx@^1`FNj^)U5o&I2tG7ESRAm1%FSMm)i6!}rG!935Thzx5 zwFqy4+CXazzT_pL=977SjQzVTqM9ZJ?8?r!L>8{rNr&$Qf;L(2t@pbaT*)bvmYB0k z=7mbqupnb4AG|#(eDf4OowUpgI!A_Djr=qjxjZBFQ23A=egeVui(wn!8~v_Kcz6GI(JCg)kf-WId6E9c%{% z{!{2cV4TRcX8Wko*iKf`NvuCqUO@WswJX)++$7&Pmw|>9#}7oZSGl^04(%8ukX{8$ zJDfM?rc{%fDFcs3bfB2}n;=z+h;Pj}hk;Ds({|IM2Z7U$3trCB#KqE~FQ9T=2XfNn ze|q&Tfp-qd%yh4yEov@Vbtkp7pATDGNYV_NOAvcN@EDd8NE9f19%t1*`;hvDm1(J_ zKKuPj$tOLK{4ODv_QsEYtL{upgSNG*c4WYJH}ez4JP&R_HIf#RCDy?B6yl9;kw0~~ za`WbVVwe)VdUiQSQRdTL+6OhA*kn&TZ848QC-!o%_Z8=$>**+Em6vf z^}xf>ApG?2BrraB6Y9^A5qiR!J+>*+T;w1i7bTEM_wBe}j%TM(Ij1m#PzVc(tVs{{ zawDah66QSq5_52N9#;cuUZX#oiguH015W6wemGEdHMN+zAKEj)4s3d>tYH0u6F-!^&?QZXH zKW}k0>-A;1e#7CRwiraBITk55@{pG$x=&QhOR4G^EXLRn1TA&I+1IZBA|Lih<#e@|;|>o$(7@w{Zud-R zVV+>)L*nw>VpU#E+O!kgQ{1L``^7vK9|Xqw58zc<+hR5rX12-*v)X;DM%hOKD<@O} zpfkt5I?*p*OdoF+OQ7}MFk|+T{Dp?W;Fm#frBeyo@8mFBIc9(2ZHZaFjQYCjy{NR5 zKN4=yEK=2~AZ;ig%U2qvk#H;{+;h9b+j&Tq5?Xy#U4?#aWBFW(d)0S?T=^r5e@d@F ztO*9EIi5)WEin#Tv6t%VlEyY)*xbW~^7Bnqk@AsjMB}iR+4j|<0g5b}i0t`l_FWYx z%1USqbq?OjSsQDGfWY(YiBgtX1#>+x=6J;1tYmgHV^RT8h!VrwdQ^yQ%2D`N)Or|gg_*hu+FLWxF#0dCCZo%-_%&n8S=n%y%HSf z_`|4@nc72|n#%VE$}!4v4?rqd6c=Dpad`0vuC_8hA2q}@OGVgSwKV_hN4AjNrg!jg z5*!0nd=4<>CjKXxAeq(3!K3R$+Qe0JJI(^Hv$8Sx)(6bQWq@OJqVmMQog?k;_Jb5y z$d{P1B=8`k7#M4QigGiwDmgIE-)>&^WloEdjFsonekG=3LGtjGM&ZSLoPycYSkKM= zdPmIwHy;=vdQJZX*)3(9V9DYTJw8I(=&azk*6VpcBb3EqQ2XM|*&6 z`-kYiaE`&eHx}O3x@^AssTy4+VpZpF5_(0PPvw$d`aY9%{He^SXTg(-olzAEf_(^# ztLcAc)30>F%uFfgeJ#&~$@8?|fLQYbg<9z6a@6o8=+C{$6RM+SCAd+s!k4h+$O0(}& z2z4-57&pHz*ky0k@;vE%jJ;+*SdVNxqRuOD_L5}wsZeKTk%_()9-eL4Xrjxsj8W>6 zL5Aieoe3V*@mdp`$&v}ui)psx0Q-n%X(s`bg4|X;!?w@9ciJTJg>mxlv6iy;LFE~E zyKPkLjoXw!C)k4Pg47?pDrqUhQewc6Dx2k5(v$jbqIcD>zg56!D%oK&fwQ`>Ce+lx zCid^aoAd}yqO+Y4pGx4Qg!8gYaL1*^kqSGS;~#|CXNC`6OpM^wY#N&Tn@VnV*qoWw zp~I7&&Zl#s{^hA5L=7}IaBX4Mjxg&!_3|XyTt~J?@Rw2lpuySxm-Lpb7{(T|z8it$ zDi)j}2dlV)(u!uCtIHYYeBdUkT1*k;6tWf>Y$YFk;O?0~glN4af8TPpg(DwlE`uW3 zrVZSoc|N=h$K(sF+)Lkz&{Slf)ISt?N>dzxyM@)ntP*n&$Q!*-LvWTSMeIEGMfFyA zwhhpWZ$L~-^BiS7-y6M5$(bds;D`E?2OnQ2Appd!v2v$ac_n)7ddr;47z4^#=ZS_6 zt+0?yd_d2G|3WF)rcv5w<+vGM0<8Q}uB~74#HwiLp$gf!T2>;B-m@I}_mqGBl2HNG z_|??e6NOQ^(SdOQ@uu6t9&UN^`w#GFWgLHA|0-*npwTGNEbKR%%=BM+v^j52;L2_a zn9;`+tcorAAYo;%LuChmSw8wU0Ys>{ZRy+9P(&9R51}pyuMCz$x!aN-btpiHrpE67 zX}%;%E_wC;cOOI5{on!~Yc5RgVGUoK1UsYg^&LX0hP*@Qo&z6Dxo@n0Q4cF-gkALd zEnF04XD7yz1mE;E$33N(e1)E$E<~iZSt16SkU3WUT6~#Zqrj*{A*~d!19`}SFo5T z_pi#+crP>kfHHda{2;_6rld_XRdZ|S@6&&FCcLMIse7$NAC)I_5#8Kz56aW-c%&uZzw zY{#@JGG8_Sfb3Zw6WQFp3tI7H{q~Dnet4|u@ePEVH$z-8VMbAP(A(wRF21j(qxoUd zdQ+B5SbUlAmj`*Q^ikpI&X>2J`#Sd%hQaM<+PoaKVV)4DbH<4Z{JiAHQ`Uqy`#MsE zj=7g2y^r?#Z;yI@#?wMa+zSVYQe-qd3*hP_Q#J=F>=9#58?WGMl6?d@C3?#W7UTSuCKeIUh(c*nN5=uOT4 z0g|I*v3z2^;f-R}d5G~)KI?5gKU!>vp)(V}kI=_BQ}+9g?50$J+BY5dJKqm>)|cSb zD|*ej55Fx(>GAVRbC)|AJIc^r9IY%26T$Zt69-q?u6FKxD# z*ic?zQSxTkwtfaHH?ON5yB@nD2@9gF56?*3E;;ZdC6*7v`noiw(dtON`D;-cHI}m- zqrQQq&d_ci)a1=Bmn%(Ud@h*bTu~{ zL1XpprdLuZC;#dk`w;rPIb|asq9J|IYY{swI+{^wH&t6_(JLNq>Rwe4sFO^@R=Pmy z$e1^C9kq7I?znj1iYyLEhoCFRG-@sK!`B}jCLJeb|D9;698A`?SV`%hoXuW+2zmQ0 zHM!-$B6J6g?kP)obBd>*sV^hZAg{1Do+R?a-q>*)Rdx8cN<3%^o)pWy!3Eo!_-9wC zs5G+s#O=21%x}OD=Fwal=r05&CE}gB| zDqGl*BOJ1CcK2bf8(KV_f`c*36(NSH)6_T2d8*ywkfhz$`@%z@8s%28j+ImMCVy;2 zBBDPY@29YiR6u4P9{cTcf$K>MhZeN@Ren#T8>MzsOpt>;rC?HEhtT@qsD6~=K-`^H zA;if$WRp%f)X+^1w^b*9Jbp%EchGj2usB{^O`IWkUYxbkVh%5Ou6`o)ns5`pX9kI=0noavhah1925R z=N!ChMuTU5!zQ66d6U6CpaUr>f9_5+p|YR%c0rET%&aS2vbUin7%JtNQmJrcZM8yz zC79^{#G37<<#8WAVSa6X%drwPCAt~f8`{*oNIlDG#v&(FjMh7{Kg3pf$m5;UJT_D{ zJ4e_dSo0oX`*ZVCQ6eVdX#!;ltb0{G=8190Y9R4`@MdgE9X5fIHIx}{;2@w6ne6BJ+pv6f(OdF)vGMrl2 zR4`AZbvbs~V%VfTaU*{RlWd*OMJ~~n zT|!-74d_Bgc!Flt4n(>aiMlFj_Dry~K5w8g2M$z89_D~ttYh2%s+ZeTs@oBkG1FM= zog_L3h~8KF8(M?8H9v?fIn8e4x?Kx6Q7ES(rt+AM0yBfWn&(>eU2B6j8@JI%{235W z;p=&H4mJx0tm7Y9jBj{3XQ>$51Twiet7Mzo3!7Nj?{j1*Mrp&Dj!ym=@(UI}3ndgj zQ)<1cL+Fb&GA19p5P}55nV&E7coE`plEnH2>{RZr*7ZC&?OLqKDMJ6Ao<~M+a7Jd{ z>k1!HtLvwk{hEXUr_{G{)rjiv=k7J*C@DbDZ^?=-zXt$z-*a%#?7AY4Yzt(ns!wF* z@gCIB9^*_7kn5orMVW>6u3zTQ!ezu{m*u=VmR7ED;Vpw&s0jK9D`|glpM--9^=0pb z^U@z41$<+H`06=n5VWt;SpRmiyN=D(Ea}eQHZ$G@EqeBjEo4f2wRbPikfut<$e4Ke7z6eE?SI2g-_w z0hkje-A&PnV}}}D-{lI+G(*x#bpuUX`(?HBd#*B)2|d?hQ5#1@#R!6O8CyO@P>BDM ztc5CTe*qr0s^7XEj92~+i+TG}()CX2bjP-t**>hg0L7eX9}?NSQfn+WvfnKQv1^}` z;as$xTd4AOg2WSz<=Q*x&_)Jbw$|ni2%b(VzisnYG2$fuAzl?6NFdFK&tx|bk``w} zlFZepd9U4>`}u}Qu5LyovgqHB_VlW5qIwfqrF@w56jEd0`tq znu2hgF8L3p>c&cSd>Zwx1B1$f8BSj?<3Rd9SfWXD-+ zG-Ls{k=@W?3c!^#04glZr#lqNHq2^MXy3t08KK)rCOvcTbwsDoyk;S@!8J#nuB}_d z+-_ZRfwZ8MoP-l!1!M@0GK>VXWH$2rQoe?b{#zSs*IB(vfnB#SDy9Ah5X-3)73;K! zz8#>N5jnmC zwmFIU7Wv@AhV>eGCp2tPY+Cto*?lIo(caDMO@~jQDt;*0u5t@UG0W}omRZw9gecDW z=)H3NRQ8UjUepi#JZKnZv0>G1(kn{{=JpDjjGgjGiXZnd4OMuUl(^F@X|)^CQf#+D z+y>11V8T^Y{(u*Wr%|UhE=lXcK>uib9J)iX>)WWN6!}%#BQt~ClA{vR>+C#sFE;5` z#u_+dv;}z_Nedvd&(coW@bh zuiY9o%iSz%2)M-(Rrc;3EYtkm&L`Zpc3%;v;euCHK_14ekC5sbsX6t^zpYCXvFQ7Kns1E)w(vDUa)lPE z?W51QmM>@#!;cbidm@KINZk-c<@P0%(+#TZ)LD(|>_o%n8TM1omK6=ibZ%xUA_uW|sd@z}CG<_F%{&J&6>N0sktUCG~@07THcVuY=Qw3H=$tFaY zO$rc1R%avEE&a0AGvYPDOU)bN+f=>>B8733_bT`VhcdHu2@8Ve<4QbP7$pm4(u^D< zKG7^a;%s7IHgx*mGR)`0qQc~GA{fR@n|1~VnB%guqW>bmbA@}!m+ias#+JZ`!_11n zx8H+KeInbhCURD-zIrK+x?^n&8320#9yEEEH#GI#FJKLZYMEcx*v4%qMzkfH5_(1k0^mEjT18m%t}5a=hMZL>srr?T>+a zlpZ|!G8fg|LR3LLie^pYLr$Xmhbp^tSJW9Qq5AS%4P7hUYx;Plvx5HsVa2)PQ?d7z zXg6u|0P_6 zcD73+gCwmx6AtOgldsS_D}-OyAfG*D%teA!rO>n{*c*09oNZoTnlTaVm1#7#f!w_y$`1F{M2n)wkb z3%BxmEPJt+XT*+k!wj@$0uLYFBsU12CCX04%F=o4WOmi&)D9ieZe!Jj|;4p{HcUEugo4?;jVJ^s4du}d&UXv?c(Z{|G`k+nX@bg0xOYdh8o|B%;Wo) z6WhEQj2Wp2^)k^%Xv9Nkl$<=LSakknn>OQr8V=)an>-v8O5qk#mv#|qXIEP*bvbDp zLWG*Od^++EgiA{!-|Bqa&qv?B4RM7u(k3ym{%|*5CqBu&+ntw)ZGf~!I2!9wMKBiQ zRk@zr3x(3Q(#8tqK`s7HI3!tIzZ-QkoY)H~i%uclM7iD}xp5!tt5u;@x){cjfB_+D zEdMikU`sz7`j}%dw}4URjYrm{!OlPk+w*OE0+Kq<^Bc=``OT1121?nk_UCe84q(<# z*{3JnLJ_adHa`3Z7#V)EUw2nt0!NuQK-$T$A^(>K*#BM#$2`ZGl zRr)01`#qW8W9Zdt!nKz7qTIaoqm1Q__rdDyvXYrz_Fer(GC*SZO7Pbn^yT*gj*WOA zQq%D~x9hL}zSMT9?8frg(DpN@qXx-9smi5=2nh=P{@07IRy-DFB6VSz;(Bl&=GRE< z2lP3;c6&cx^M^y(VpC^n4_4yrsGi(2(uXKpC9wCV?dIUqS2ny6OU3tPtvKjJBAp9v zEYd$JcLR|5!ds_XR^H_-*MO>CLQ;pTcnX>lwy$K!JD|nE^N~4@Joj5}PJtGl3)E@H z=pZh(2Ch>9l&PQdICoX@Vx>H#4f%_He7R#yy8HHOC<#YrL;@9(>8MPFa*&^Hj0% zeadM2l1}~u_#TOjdf9f^$agM(7-}(yA1h+C-U|I-4n%l|qKYh)wPi?+RgoaOYAA9C zI!76__!ZDWJJxd+Y&PKIc9*VeOQt-OgI%J7(6X7$cvCUx5vm2P>w`CA^LcKGmnHSh z-DRolvC*seAL#3;y>a=|+JxZr>wcMx8wuNqzy3zf3wQu}y^)0MoRx=`N9QrnIQK%8 zGM}^TO^7thd1-i(n`=Yjh`pht34N(r$>-T;NRVUXftNbEE#{VvtJ##DHg(jRBWz{Q zx!y=B^D24BfD(hN-#^DR89a=jiIx4QHm}uHG03;h7IvJ)sXFZ_NeOD zz1o+xI*?2Af?{|~^HAvfP1r4z=)&$93h zDxNax9Vf@sO^nEPqiu{%(0c1^(4(|xwkXNW-BsPK;_^#L`D1%p94XWnu z3061oR^OaONg(AG*+keq54+y@f;UyeC8tc=tjz;0HP|5ai)?%2jeC`ZqyS7ME+u8h zp4uvZ1s;U_LHl?45nOgV_DE&qWOXxuOY98$eA3Epg>VIx8lsZ0#B7Wsok;yHk6Y(J zez{&nr23t_^M~02Sp_+4^$3Di4Qk~r5DUX*?sJ@}MxHu-Y#MbIp8Y^OjGUYTKj!y{ ztuKNmp-pU0l7hh^2;ALXK)Y`{LvJU@S&|lER2_3bNkK^=;XABCy|VMzIPPk3gPa8uwDe` z3U^R-Aw_UCmnrtMw!&nK7)|8NP2&~%-RVGFuxzgyk~FUTuIhx`f{T;gC_lMr@prBA z4+n3&{gB{iYryw57%dI;1!n?Vj#@OhmnYQNZ#F}*ORQ0<0zrPmIk1R z#;pd3bedeJm0Qofm&%-MqHg?)XnBS6CLRgqLU{HF*C&E0qYsv~x@=KdQVrt5S{cpZ z3T!V7tkg-ti1Np5`fi}fhu?bO_eVwLpZVPJXiHumYS*-F;iDYp48IPo-}47(1(4c&qcnn_ZriQwV^mTuGYr}4`mw%LxMQbii=zVE@e#v zDRnQmTIsi#i6p7>d-8M|APlVfTfq0&1^i0RGPeWM%yZw6G^4&-W}+GhLBge3FmkVW zt#!)n>WtfS8K|mRgaUUKEsJ!;y$!K$x6^7FXGy_&Ap(zKI>|!=muZZPU+9(xrCq-k zX8He&z{gw?QBAd|0H03AUfb!_5j|ZGxlZ1Xv z?_x78MH3^bv<~e|%4QTIsu|8U_T-hS6Zjr}Dt%O%L>w7p$$<93Le<`5ZuLla1WwpZ z$1%wrknB*L6vQ1J*E%R)yE3JNCloGK`qcWni6p3%GlYftHBIsk#jtRt{!DD5PSbp) z7wqkd(}P194H8$#CBDhsA>zr7##+}iX+z=Ok<(3*{+n?;GdZC2^p(w4_vcXN-Qrk} zT>>yBETp8!a1ql|pSf#lOfgV^z-r67WJqdk^XdSCxEwo5tW?JJ3}x{6nO2%9EtDg#bx<|=tS&IeYw5ZW~FO1D7; zSM5GwPX0dF+1#z`)BkyFOerrXi^2$0A`%0j#5({;^{w#J zt*pH{tuZOWOq=pFmu$gp)7U8b64GwgylvBZS6|nIzqcB637WF?!INV)z9b=> zHrQrkgn^{26z14HEW;;a44i;pQmo1~^fo4dGzRjN$`xC-9IKcTphBC^0}NxRP6 zU51?il(i|!o>M8yc8fCTZI|%dtEy=Qu`(Pg3W=g}d|x|1HNg|CX8cpDZ1eigp}8G% zs0ItP#MYpi|EXoy_VyfhTm@YFNG?4%IBq!4$vE$K=?g2v(61|M$rZ`>PE_{FI#?5> z`x>g10kcejrqQxTaB#4jT7zF$%e|lFL_SaObT|1C%g7C1z0R)&J!p0@0+OGKY2Fjz zzj~Z6K1;Vz-EcB?_@uV=Bc{X>?JNlySEyS;lg?hyxJxQ_mTVe_HP2{v@q`miRFw6? z|NeYe2je@6ed-l+0t>}Ux*Hvyt1s`a zjw^LlxFN-njJ6^lX2~vT3hYzc1ok}^6Ju|Dpi(k}T6PM&2yT%b};o7~6T1TgmO+PO~#<|Lyu*`KMH|V%$t{6{5D*Z;3cP z-7|L1zU;^oxhJiun9&QCSsN!~&FPTR7ilagrq?VXzGOucGEGPXZCa30Ss1RtFy=p% zrbZgqsf~{*(Yb;t)@vsMSEDZ{m3cu2Va*X{&7;H%JBbbsh51TPmmR_f=V!Sy%reEYw}Fa(v0upPYY~ZCliI`EvCifYWHut%$!`1X_o$TDdEBQQJLIPO@qOWvg%KDnkzH1$1o z#}1Sqrz-MOBJe&bWz#WX*uO-9hcr*=z}Dfp5>9sX{&l$ds1CcUl^C)fh+b?D?75i& zS5;|##@~I!(=8fGa1IfcM%YT)f!MHyL1=lPs`#Nlb*NgHOqwKfZ6|jB0q8%@i@6Ld zd{n2^fSNdZ&Fb63&3{fZTI6D@#Y%e)VftQpRK-CoeMQSw*c*HCIA&7Xx072)|0Nd6 zo*-+>kZ?U1OS@~kLC4Wc%p`YKh>T4|Z zwu0y_ONJny%Y^Gq08_43Q`jZjByISVD)k-!lRx8*{jin$royr0dP5acEx80!Kxu;w zNtcS-U|y8}8zU#GW|c-NV7W5#N`fyYAXW~0(^q(sJz3x$$Sp8ju`U_YniumP$CjBO zg;BV{_t)LY*Q7_D@aH|Ihfj})jl%KDbdWi2k-u4n5>u%|p(F}KA+1vlIVa<61e`}>UN3DPR zj%)ue82a-_yh~p;p(_8U+|Akk>&dB5h5hT_>-?A(Vy7MqNy9Kl;j(Hh((IL6@2)g< zd#pZsO_JD2jIe-9Q4Vsgp>Dm?2TynEjyG>?RiC)TRM3QobGcU|t6=MSspY?@&G8Mc z9`zA6Bo&z(4?=EUu7A%JClF8`*_ z3+UJgB8|Ri-%l&u3~$MyaZ5d8}U2W5u$& zS279K{OJ#OG+W*?-TpT2i^XoMO95o|DK28jYu)MEvii0`MWxfsO_~1p9+g5CqNaYa zgBBqDIj-aftfWZEFwZ0_sZe-S_N^e4eg`GbWDR`gvAcs=P5zyX(Tq2Y)sf0ZBIGY; z(sCc7b^Y|Cp&5t&drK?J64prvry9Say6x&Lzr4Ad7W8y2YZn=6ECPO7Y#lm38;gGv z>MQNfl}%57Qw4)7qp9vU6-+$j`|H+nmnLzPnI^?at4(ze4He)&?I(Q?*qq--ky0Q6 zgPT}{${oD_6j*2FF_7sIOS0#aa{Vv5-YTlCFMQVxE-hN1xQ5~`4Q|CfxRxSCLxJG# z6iV^nQfPuZ1oz?;XtCl@NTIlEf#1$P=Un{99{XIbyR}xvm|1gv@B2I;5bQ^d_<=8Jw4W*{g=h1)_=HpovCv4z7D(HSEa;=8>@i;WYeH~&+7_=nlkJasLe7O!KGH% z!{pOK?RjHJzT(USP7cRaul#iF2ib%A5FI@(g$#1YQj{1X!?eoo=l%m!i1hk7NqzrP zlR##;tRoU5fMQxx{JPQf@ZzQXD+N3ecF^DH`T@CzD2t5Vn3yT_+y-iKI9Fa!)n`n} zrST1n_`h>{{>Lc|><_;bxTKr%^28a%g)9S&tMxO@bUSMh;QoG=D=EM-`C=h{+1jq^ zxw_}588@9_bHOC<*_3?W(d_}^prF^e%HSH};52`IN^8*1T*G$S^K;xVbdPJ~Ny%g? zx1%9=_Edl@mNt8Ukzkr@bPQc^NWC{PS{CHqiX!`P)`GrcgV4uu{2+K!$#tj2Z>yR{ zzEajC?AUKwvx&EB~qAiRG#xz#|X(l+O6)3zcD zm$k~@iJ315AH?|MYv2DK7~~cy3*jj$=fy9oqc0%PX>YHBYF^IKjxbgXZ4zrMEwWcQOsx1UBw%|;^@mV59`XWI3 z8ncWl@)Kq>*9?skIV!BNE}DhM^2wq3^fS|Xru~Rnk1jr> z5i!o4JobiHh-N9#UKziDVxk_Rv8D>#sB&nZNHUu{-aPHT`R$X22EFsZY`Mgpq3n~O z!lO&_&%h^{oE+}9jtVb|2;?6LwEhgBFP9fFc40mom?N${^T#WKSD1+_DTAK$d`d-V z)y`ue&Q|)m0?22_ZzQRoKZm^M1Lc@5qMpBqUnNf;HEGU z9Zv78PNb?>|D|{_0)-0Oa7iET8clXd{4>nc(^(t%?k%S}u%La!Ez$o($J;S22FCpN zi0T?v>%KqQ7X0i0!k_u571h_@kGGO0SL3Ge|CXGx6$pLXK$g6&h#txrta^T-+;mFR zk!LHe!he8byp*7*NtO4Pvu`vSG@JMb25cv|3}U!V$|>@Xz{WZXG@#wFQyquP(iFlJ znaRaUI=#>-T6dWQyZcb18Kd6>8>HGPODdbt)<24>Y|JkfQ(WK$rB^%Iwu)tosQ#EU z0;Oc>qEuqC6z~_1;t|i({O3EJV00&|#PXdKVeoqg6(1=}=Q$j9rF|liSd30@?parQ zQ@ix88TY_{CP1f&2aAw(qS2bMEEQNZ%MS`Vv(eRz>x25sqdA9Y|vaWq0#+TPV>cgTCQT9xPf|U zWex)D%_)LQsAO5`v+ZQg0weeNa{9nv@hwv;Q_ace6@RB*oOk4hidKz-g+)^H=|_Fy z)J3oU189!7z-0LeF+7in>!6?8QhcK#J{P^_0yrLH(0{I2?K1y>I~(AmquDsddmkVb zYUGC2#(mcq@#f@ZEb`?OCw=}g&hGBGqGNpi?{6pOd@b!fZH)1XWWKwIC1p8w z%{;L>eLe^EwakS@*v5CIxgSTY8ij94N=MDc^E@zXA4fqW`#kAxl0)AFd!01DwpQ1y zgs>%ZT-MBY{PX+|K&sNIRkU9#Rru9eu@%wlM^!8Je3ST&em9{r~%C=Vwh1llv>b^JpF_G(F`?B z$7ITO?-n2qexDUB&&QVAzaX$i{XkI>?KzwYHuPR&(Kb-i?=u~Uv;8^U>NMru?r;2_i!++12X%LDP+z`4ib{hk>lQC!;aOnO>Dfu z@n($mY9KU_mTZjXG}yle=buS~cSq{S^BpZ{kZ{WSH>Pk8d=z{e2aipHIa0@zo7FY^ zgXqmW%0^YTQt{shw!tk|p$U*WQJh-#$*e8w9`XZ8`RBokk!C1{e);ER9MmS#XR8;< zaHQ%j`3XN`vzw}U3gwwaLR={Ufq~-%^CK=aF)`6d(`&&bp4FaiMwaz3`W_-3MxY`` zfOqyhlUFv8GdZf`^k&7ZI+X|RYU@^DlOqF>hE^THY_kry5!}7p~J;UA8D*K1jRQZ3WyljW6p` z!~DsF9QQwf1E&AIr@^D{{H|52I1D#JDM;S6V|ryBVI}rAHm6lSo(-%H)mx(&^m2WNC?`YSj5bfk%LqkM5l;BbU#$ zBRBuV)X*dqyIxwwnXlUjRY0!4Qc%3anz7bo=}-G&Q0O7e87_-#nOl?2tGe_$dHJl^ zY95VrJ!&lmifI_WQ>tQlqev4u-%iU!!k^ z>x(UYHeub-_r}|cx-n!(F06LuYw3WBqhuXtn$`@}dQ+Q;R>8VlrQLZ;SX5-q#9BrW zMtIP63oC>1{51E7Cvu>#MO~wZtiGfK>_MTh%lvtfQ6z~(tl;O-I~Syaej8H7T@-ht=K8yUzg)SF4rh&zGzr^dC^bFQ6r#xhSx9z&CqC!-2SFHtF zEttSBJ$j2>!4_`Nr@!pL&lP&x*r?q#)lo5L=e+iA3%Co#v@MsSVG69ui&{0fJ>PQ} znwoqb<8)+Y|M@FW#Ak*5mjW^S98Mg@gYugjnTy<57a5-F%e}|~Igg|ZsL?*1x%HEX zTe*X5?IC92-bmZFEaOdPtAY=aC~vMF<6%^e@hf=e9?v7}HT$&rF@&h(jqi2GOvEUm z`bs<7;w=!KxKrXOW{v2v{<@M6JH23er*AJ_q8IFL?AdmU@*S0RY1x-40-GY< z>btrNt$N?k@O$RWX`OL~C?2qa(s{^es*q&T8!B8V4&9ooik@dDZl{$a4&%I>O(Yc* z7RiTBhB`5ph@qk7#Fg(x$Ml~;`BJu$nYm~H<@RJp{fAI+kZ;*Mv9+DG`$CS#CI?$k zL&mZnmy|(@D#2Y-`fB3y3)3~9_iG_d!;NDBpQ1EBEWEq?O8o7u4V>3A#+OrK6B^Y# zpV{=s1@_HnY`--L$2IWY746cX?(T_s zbnSEgjUiod;9MXT z`TnkD8SPU}#J@uZYZ>zJ%eI17AOh~5Fh(!HQTob|y@Akx-QZm9FS=ZoxMuKDWS>Rd z!3Q&wI7NQFL>~!{P+_XfM`f;661`uXSF9E$#Krp(-+{#yFU|PH(|@zilgc5iHD>(i zXi+O0b9yTsc*3i=IR^1y=?Z@G{JXwolH_10eCWP$9hzJ)#1k>{sypl2!O_r=(MB{# z{a!$}Fz4`dW9pjE(YC8qn7pJJv2^XHy$N7S=`8=itP6&jF~#U=Xwk=Ca{IOEG7i6b ze~;b_)5Ne7b?$dWii;vsLiGYxnm1o;LU(G3lXTIUya5=iy3$Wp@o(BS(*r4~eY&mG zliEn}j0RWg2KGs%(EvV&c%jwBEpTzZV~T1%X;^!m@F12$dC=6*;J<|!cEbj&Z{plt zGaWBf_B0LBew)r$6ec&zu>bO7(RuE!ry!-M8cMFVoxa{0Xkt1Ndc-yMd8k!{p*yj8 z9I%NIks{ms&gk*N{H-Y6%q66sIF@2-<^6j>@Dc|xv;Af{sb`^Z@P)ow;N*d8^)gNC zGQ9p@1=w*k!P2|TS1|4C=XUCT_2W>O_H0A)a}4WG&nwDHeH8qE+)pR}?I_MkDKj$< z{P2Zs;sYJi@GtUUn;UHZYq7Vk+5-Odfw@s-#l`1E){MWK0TSjS{hMCtXrck2VZWX4 zAlg#EfIcN98n>SfC4ZdZPk)hIWA1yuQM3!UySuoNdqytIm}2 z)psx0v3K_Ib)Z8{!#CNU8CRJH+|Pt9aSfdPxOq-ebV1S=`TuS!bh7fi{q#z1+#)0o z!!zQjCU`tN)CWE?`WdfiI)@0o1PjqV+A8-1Nq9dfn3SH4E-R`p8uX(u<*bzpu&kWp z$XHry^?!4V#C(a%AlnCk4D34M648N{?_{sTd36qqTf)xR3aVv(RVG?*RYBa_ ztE>00JB(-$73j(nskXZ4W77P)$ZX?m?O|uOg070UMx5ti=Cf}W7XBrD zq55P?afZbmAdiqcPqhCJ@L>Vo0DsLwXy8J)TmrM%#d|sfr-TWa9r|O%5?&#=v~~Y? zYQ^|JKr`=2+)utY8hw`SPU^ZeTx#4L_h=Xtnl=V{wf2?wbS@>Pgw4Sj;87x6y8#ZU zJgIxLihPw>N(+KBc!zSymb^S4drUVp(1b*K%@IXkGJ9F!( zLk1|um@eF~9}lVqlFQ!tP^ezK?%6;;d?+{GjWxr*6_187-!PQaTyY&(F%&JHx~3ub z&;A!D&fH))zp)XIc~z6v;#OFDCrjm^9YX=NY6dpQzYn zWJ{(|BsJaaGRfhRTg{Qz*MF)Ku_vIsx%Vt8OLGooT?(gA(a3#zMgSU*G)nJnn-16Q zw(%)L7@WKmeJh%18Xw|3Sl+Ktf{aSpf}W$UB}Qxl#;Qs)X8M#9G9}~LLVXJ~N)BZt z=8Zo~cOFe{SRc<;_>i&|^od1MuAE6sd88*|;;L5^7Ia%6wP-ZDA&KY%#1aR!RGygh?X!}t@WRN)up&!v?*DSWYS)|ytN z{hp%4#!|0%#=Ca*_p=?}sY4_*NKXLeW&I%LqKYa^RqzR!cjEiSq`TPjOg2d~7UBvH z!sVXve(8S(&O6f#DCB&i9Wg}aEpZAt{zXU6wl#yNn(uljOId1k%hq@%zCMoslQo6Z z4O8H>SF z;L!Dfue3D!T6~0T7`j0a0vX#9`sc!GPq5dXE4(Y(3=^>tZwW$RulMm@Gy(1Np-0v* zg2KyA;4CzA+v|H@X4G7*_!I{qWIz$Y2g?;nlyBN|{t#3-b@BaB_ z2#&thhmMK2dijBpna$rIWO?%RF9u*M`(LMLkE|$-cEO@A{DfYexw*AV(aqCu6O+mb z(DNiqOwSa~+WA-=e&?kyKrBB!caZJYX3<{<iEMBKId?>rqV~$xYVj(#>;r z-w+08evG?SyLT)MDk^m;(AK<2%p(ch_t1I;OO>8`KEGH*5gOr>r-Ot-OeFxECq@OEeBr4nW#4VmV?UC-z@`%p?1e=1gMKd298V} z%~jlPOw@*qA-Sn^Vvnrsl|kDr4fevc&fcem66d{?-)iEcWx@yqji!yAuUw8isfQG? z4xZSL%4f+A#50ecO41q8iBvzbfn511veaSE^uosj zTB|($)!jFrxhFjf_StT^HF2cUdIxs4`(#l?)H0QSfBN~>jry#-@o$;%%4+AbmGo*@ zH5XehM%=fuR#%e$FQl&&RRs#3qzXtgpaRD4YQW4#o6D1 zu%@67>(Kid`_Er6;gn)fi4$im?O?@U-7}L+q2ycq4wIh}*()+pf#F?uH1sVhGr|M| zifVY>!Oq$kWs-i?CHy-^LL+Q=p|2D%E`PO~;j3-h5sZyV?=}qCYRxq=&8c;W))m-bfmnr>gG*MeMpqdaPQ8u-%1Kza`^{6ifTf=PN~OolA0 z)W0vHLAf8p1@8!F^qB&_W;7ILN4R-j z#1TwdjBS3bX+(Bx8_ zCqsbR#z(MI1SO_J(O)GH>0{_e-vqR*Ef)W)_nVGwgYC<|)lZGqrmdE&t?vU+?#7@&+Kn@r2rm*FlA_H(Zv^cYv_vZ`Tql%>DS=Y>yZ zUP$!D&I)7@ko_Px+?g!U zy3QGx2!DW+OZ3st>z6Zh%KL_O+tyO+ z-aCj&)OIB17O7&4ilgB=%6PGfN~Q*&402_!$7_^!Rtz{aI;GeLEai)pOi_N=o#?Cx$=`0`MUL}m>KR`}<&h%hZpJMp1pde@%u#JS= z_s@>7vJWCjc%D z9%~hKHhTM@xh(kWU+iyJvjX!Gz1$iZ4{=6qQTbk>*;tpAbjol41Ne-E3g>tZN@6Ar zQgQ(U`p%~BjF7XFFRI0WWxLB3@wnV^{v+&m+?9AUbPot%}1&xXe)&FC@K#5gl2ar3pmb_u!YLBKL1q}I%#Pa+v4{OBWsmD)ERa*IPOG4 z1H6g9T9KF0tnogbnYnsK6{O{S!UBttZm&HiF3&&0*TG%2yH8Qg?b4q7coO?c!+~3G zT=)0xori89YP8jC!FART|0lbsada02JaY;U!+9++Njk`IMQfiyIjpP6QI5x=o^=aIv#;l`Ht^-BbPSQz|RpT{Cp`hM(vK{g1dOfWT^Hw$-HaFXWM|I)2p6nAwuXKX z8@=(=H~zhHn-S00+Sks9ovdD=q|z99-}dt2 zoZw%Esehd(g` zV6Q|7J%Ist327k@VdnMK#Ifl0C)<$>MJN8!<(T`>2rEQak1Lj%wPPQc2jOW`F=p0CHGT5R&tHSRcq4Ct0WSXooekbIZAr-$UtbG)quwuw-nYW>L4M)v zDGf2k)MXzG9%HJYesq0{S$oNS`$x)pWb|)HUilyQ_bE-6+P`U|)Xh&gP4!_k&!CL- z!&Gw0I3zP&V#r*pnP&nPj7lc>u2Y$c3XU~F3LCavRz-Ucy7Z2N#sNqu&q7t(QF*!-Ks!F{@R9`YwDGt zk4uIxe{?4Rp?m3nfd8&#RmG<7Wq;PC`Y7k(=Cp~i&C3m^j4wmJ7>${K+{8*xO&TVvz|DV$QjsISPYdwJ3EsHkYtrn>bd)-~Q-%NVl&4w%;d9jE-8H1{ihY9L zM^;50AiMwG|33N{1kxaTs2clY7g0FU8%nq|<4<_oie#8v`5w1y0Qu9a-SXOQS8a^l z=E>~|W?oiy-=t-k=FXG&Ng*SHTT>^}Bz29gZA#Efc4=F{(=)?c@6BS)o9ooutc`D9 zOseS)bX??C{|2jra|}AenOM{TNm5D5A6zJ%T2_uoUi0XF)5;lwKPW~HB;;@a-8q=A zK@6kx^u{B`)~V!t-Iv{s*jX*o=g^F^m4Ea}54Lb<(0B&;hChIdJ(Lp8%Utfx#_X7G zjz0^Ykweei$($E8#$mUyVe1zw)JGddNEgU2xlh?wjgF`A4um8yy`ASn$1|6UOSVLk zneed7-y}H<9l{{uLC49!H*?}YE>7*gYp^S;t?d&bevW)k-A%*Avl~g# z>93gNTUY@b&lF&{_A<#zfcmd@z7o+cnR(aYw8!@furtlBN&j5nG3<1EMjxi);yW%t zzQ0cIVOXLgi~+F08U@Tj^)DCLOL_c=h#;CTajn)%KcTYHJOnAW>V*=+btFu>&6*Lk zbkV=kPR+NAjcTF{`yKKk#R5a`9)TkgnlO%}HOK*nVL zmiuvi$B)Ma@I?MlY?F9=G&;8Vg7tt&XX_w{%hI8geMj7cN`CYib12Sshi)&>|D1&5 z87ezBWvmBJa}uEsXLlaR(*sE`ZYDCx?9(`;C;TAFMRIbMuPO87ug(yu3Y=`8ulWq8 zr#)_swkPvtAJu4ptvI=@2^-0gFQ%#S>OpmL>tB)1={~oybe?4`d~oJ>bZQ)q4P4B3 z^z$V4^ULiMLBhV?YZI4(RGz;r!?8s- z@SjE+JO(X$O4VD`QEMl?YOX1-WlFtKvC`KiRBg~3!JEP#qfGb=bwXODLX?WgNKr2> zthaloR&R8J(a~789k+;TNcp8umEtGiIA_}6)9kWJ){SZVO;T#IBY)G9-LJ;P}%MQ?Ip z*-?$)4)ro0q9J>$5zeG=N%^JdpN#i{-W~HQ8_!*CZr6W+>qhP+gkH)Sz4fEIv6*Nh zmFvf=%4-gd=Bvo@@<0t?zN!3*k(XH}%x9ku^rvy8iNA3qp{21e)lXk_;<{EPZ2|8q zpD6(Nn8WKDu+QbXz1da7lHwZoXy@vu{v^T=+*+< zD_$X^QC5t(9C-Qdm@AuJB?ZN3))1Q$^;33f!JPXF=ApYf|I#X#7EHJ~O|KRpGj6Eb zi+2EKQ25b)+>yNYdURYd-XK=VMKPrgM+#bq-a+0Q|EkTuA|AB2gxO~OwX=_+oa-=7 zlaSKWXc*z34=APi^MM_b4WZ~%Q!VPe0$cbNw>#Z|`8*IfiUHQS>;S5mFT3tra)j6C zU=P(5$`75vv*K&CYro?)pBI}c#RGa6BUS(kzL)CZ%=vnHaXp{oXpfDEB-q zb3;SzTS0m|&9W{C4O1a$o0{w3(Q@HpqV#EQye#Mpv4^p!uCN2$he1;=hz6Iup6>ad z`eZdJcIuG5nY>Zw*qJY$odd8$k{(?^s!-=1@+h)XZJ!x+SiZs9{q^nuS5%ZZ>(fN@IDT_^R0>G5SCc9EJFDD-kb#WCa<+ z$SvRF{Re<*j?8IbfXBl(^V4*MJ=2H7%-fRt-yU5+4D{jvPcQ!BB{GgPt~JVhyf@TX zbDS{`Jp5A&#H+nw%4oCCs1_&2$72T4dkN-WY~&{M+$L<$k|>V{uJ3p5qYY3^MbzIT zCuYsn(ZPWPHA86nUXA=QJ4fn`v1)Fb>D6S(NZFRTn;`WkR$9y=hqtW0q3mQys2ka( z(MiX?JqVg8{>#_9Z4&3D!3QjCV4*xzg6nLNp6ve56;r9lvG04G+;}R6agmi7qoOT% zA=psYCV*y2P=45jbqNc9r?$n#WUc{aEi_?)S$SmdM%!~()qw1JpmE0|q}SIx;(RXP zlBPSZ27G>ZG^EK(o2=}V&1D?lEXoGMu_7!0uMW!*{~=dr82NJy0;X2X+`Ig8NHnP6 zP)}vgYL&y3>=t4GDAVei!6GZ50fSCP2#{X&|CU{@R4PWu8) zJiDrXHs4uhJ}~iWyBu=hXM{WcnpGnw;E!V;HZbG*E=>o=#`{36#&Od}`REg^g`Nfe zokmuAnv9|^)>t3v;!-TmdsgVgw+y(vp4n|aFp!Jktmer%r62BZa(*)gaLi2?3V!q2 z$Edy~x4qONb|W*39{D!_2K;f}q2xBJy$syD&TePl(BGjW1|7gjZVD@teE$RV845y2 z(yNeK9ZEe`AC_eo&mo0XwTEuNN=br&#)!KBAOsJq*DZHew;`0gCT`MuNx#_ZO`RWfd@ zspA?TSleVML-p@+;33@=lwp-@ zSfrc)TLwtF$Tlcx-Q{()JL}&S5nGYd)48p1$53A$K+%uBsur?R#&l z7Obdu$0fltH*hJ7cM~hqn;je#w6n_lqYX^$rZ3oQ+8s^|qMVscs|JszvflyY-_YNLb(mw?Awah#H7QU!bKf< zfPG^6lacAJ$iba)X9&f+Z(Pk$A%4A)je&8V$=-h%zZCdfTD@Y8axzdiC87AuO*2L~ zHfrp@%Q!z)AQ|9^oGdhO;W7;1^5?|#J-llgS?&<1&DEjG+>;rUDre_+R#GTOeZj-< z!LS|-r(CqZLpf5M98RsWEx7WuGHDGukW+1XG9%vhd0<3s0F$JD)%hw9@J}s#e|_>V zTeb@4P$HLjWWR&NY+V#NE3dNr&F|S)&1Xb4ZwK9WcRejUH1M}qK-+(|cfQSAcx&>A zcUlm*?8n%*SUl0{Nw8r7Ji`Gu)40u6{y*_&>yWkHflP@5b1#HNvyi}mGypl4xC)!gbBxsdj(bu7G~F4JT$gM%sV&+zZUJ9<0n>$Yk%>##l- z7A>-0XKS(17PVDr-Qlzn>7yYgQzA(^@fkQ~s=!4IFUm2+qoE6sX6p6c(k7dvX@c!@ z%y#HG&X?R>?UCqX0a73A1fp)C))Ng*KxFyUaIrW~FX?y}WZy(=}_Lw%}r7k^{k zBcp8Lc`lKD`%$r8l?IKttN1Km_#;r|j)r99<72xn(I{_c^3&M3>R)MNyjvdgC3(p( zqrkt^PcQCN0EcJ+qW?eNs-AddfjjUY8G2dU-zw}-q-2#a%$&%ow)!LMBjS5$-h*yE z{${AHLA#vwK#OlrxpTbyD=ruRX$>lco5L#0FqO( zKpN9ztFZqA*yl#3<&PPT=JR>sb@P1A)tC>RPU$9Md1afTh?+1a=^#(RyIC_7P$5w;DI$^P`EVo{*NHY|K;+f zxPp0L*uOWR0S$djtvW3Pn+tgMmWxR~hD+|A2fm;BSaGP}`_CHT%CbOztLphsIi41# zNQtJ9SFh)-4;TMf$g42V+-{i3%BcM__kbpa9${JOh=&L#6t;bEOS+&7^5Mq+SIY;c z1;Zw|W*TZ!Y%Mosa9z0qrN)+in1TUI`ap%QD zdaj7}3X!*}+xJV^TM6Gh={Qi}cpwW~YtpwN^A`8aJ!-VRTy{MV4p$|Te2A%07=kP# zqA5w!0;GLU{U_a;dm?5e-v{n4xz(slsBx7NU_DQQTC_ItmI)q^e&P7a;dY__Ei zoX%@zKW{EK?Z#{Vh--zipM>-U1Gh~~1zL|HzuhYL$JnQ3t=z0MU#ip#qCZ@^_1jFkV*e^^*1o*LN>ocK z)8~Dl)6~<@$j9Q1tdme@lj)bK$5D4j7!wnVyZSI9IXgDCR+i-hc-)oXxVca)UmcOu z)Z`P>Usd0;xtzGT_+W6g0DRCpIqS#&0EYqP$l(jew#A~)UP|LVIHYzh`I58Yn>PM# z^jI5LH9CboYkz>w_FsQq-Nae??fCSl=;sqH;l+?pA9`Vlh|+%rSBn$m_p?nI7lxHS z_4nje@#Up!HRgB$8$SgV%cj>#M5P6%Z=&4@vu~S;BRV#4mQTv~8aaw`G!4Q|q#h>J z?o4jsD%eX)anX5M$c$=B95Jz{SbjTX&7G{dnGYyc8K2+w}K+xJe) zNt*cSmNE-B_Mxcg<7=9;^ayK`)kovEmWndsMo9M}&`EQ^ebB5thkdQTQ~TS%!UX~I zP)OYZZw?U!qE7^A)jyJ&B4QL$Vs)au#%hktcO-Ms$jCm>h+H;r8fcVCmNJTp$~P(_ zv|)LMt}UxEtC-(%105Nqwpo!3YF=|YumZw80)wT1#^oG02er|Mfc~Y3QIp{79YlN` z^cyX|hTS5X%l^~k(O_ZdSs-Jfxe0^QE4!LHr?h-8GgAfa_%DWwTNm zqj;B2yKeMwK@7LmxRg9!<_j2_2(_+jUk3E@kf;Lc%xWjD+#c{{?& zB|jM{W>v5~ogjyONIEQia7Ge{(doArN%CW$?N%|*`7wF|OQf{JXXf%)ST}dD;aHO9 zxZ1>LW(Q5YgFd_|DfGm9z4Q*^=?sbI>-vqI!LG!K)pP7$Ip$)g-24%oteg4-OnOENtMiFWihk+S)O$Dc1nuV23vs7pY2bC}pJHQyZX zxv`LR7-kvOJWME&6P1lxbr~HQ>knw)R-!b6cGc<)r%6y7JsHd~P2_!Ix=H$H*Ae&lE`VU|u zv}z(FHve654q9q$;mN+I({W*O!$k;Ah?90~+a0Z}1lQ&I^oM=o18;TIf7>&s&|6|Y zf>@pl5=+$Z^#ox)ZS828(}hTbC{*Tc?2;B4+KZ6_FP1hk4&yys{N6>NIcnLnbu;UX z{{d_dSJ;{ao?wqzFa|g*nA%){*bmQdw(Uly|Hz_~{a9?ke!?YlhF{S4!GOSn{PQ<1 z&@smSFX5&82LGQe-lA<@K&9N0*$;e3_FBMd%lu+FrmS9Y;%)iSwh52cbbR??D+a%7 zT#!zMgYqEfA2okJJz&tTbR_;HrIGFH*yaBKz-$i3A`@-k(4CtoUe2BO)AH3z{bsvB zSS;#|rGG1K(z6LwVm5ljn=rkAkpullDR^@SWGvpZbF@u5qk_1iV9XvmN{BTKlDJPa zl9Q`2AAT&`mf}CW^p=HJK!(`i?A#`sqf#09o)?@qVxHb7`sT%Zwik`dntOL4lzwb` z#yO-i$5m9NwJM=6nROTS*0jHfNn30SRj0zO_$oa46+(322(DxB*Fr)6X_^s+)7K^i zBv7PM@+(7>IIP0Ds=<_>y7E*3XwM`8a7<>N`=;aq9JfVnyB)WVq)(JfT#ly^sOio| zdZI&025(_br||NSeu{o3{1l3lDjz%Zw{6eTd>GcRh;6@4rft1y?5b39BF1-D+?Rbhp!4t^}{XvJy+JR-o_M)dnwym8)abv_I zideCdo$wYx4TJns5R<~nuCDjfqxizNEZmX-6F7P1nt8WERR8vAK6GOW|3qI=7?h-O z%qDnYBq_C(PV>Rr8A5dAL*elx71DrW9{AX7X6pU>tK zKVT9e%Ax=h>w>0;K~-T@^>yMCnv#K+2(8BU3#H6oqu^79tfRzytbY2WLBbPtw0@`3 zUc+FfaAU9LOAs(=lNc>mLWuCYe5wkzW~89`a=x(u*9@Gg(lo(;VHNMA=*x#emvX8$ zpn|aqJ4?LiJF=M2HH0Mnz1sT``@%bzM5ITj>3*QpHGF4r+#0jSd)P!V!J=0z~CEJ=qK~SOGg3yyKNj}PD5kI=(+4Ib%eR@9CGjSF4U1!@ii0*29@LL(E z5jqiXF@47ND-HQIT%@3wBj11ez%18KXFsUtOTu?ff=?{bf857S;On?LhF@0;SG`;Y ze^QAbXL+k+`FUZF;1iSRI;luAtfuJ#&Q!_GTUuv)_+}pd0~q;{S3}s9K9gb8t`aH! zSn>{%#0?%CZDsw(5R-g;V|HbiQi5p+w?{PUGQEbP&Wx9B{#GzZ`tI?yRT%Ka@a@uPS&Opj}E`J!B+vuzSMH`G#QHeqQ@DIJrX1j*BnRgAS0f8Olmpg3z9;D~C@SrByomeSj`(gbukmce_I3h1|zF z-t@b5C$8(9de%UyZB6Yka60~xj9`y({5|H0q z<#3(*WdGV>^u6#Jfmnkhz_!6A#^j+OTiprXL!m&!bx<8Twu3riOm}-Kv>> zu#(&FR@iDZrbkRj+duoyT3!rgv+Ff4oHg7{yI zy;W3OZM23P3KT2QV#TF|;+=`bHAQ0SLibIf6iWYYd?oN^7h2T=$t>}NU z@Afzs=j?Tt+ch%Q_~!e~_jw9j{CS&&@oH(A8Zer{TWiGr@1KiVv}Lh_@`QdVAiw=y z?s@3e6`e3x66E?un>9UI>Hc{1K(WNqp2rC~t@`$NqWXFhf7Zp@BzB?HOIH2#TPl&H zMm|Ckr6_SRX56l}N9x^h77+3tRTcL>bXc~!Fbkp;2OrXXpAiy+F_<2xNuEfL93?o>}qKd;al>MjjXcYCL#==xLW+Xu1VR)xy3RLIGJ=fd$n z=$g6*csKG}I1MF=O}?|7&j?YC&p8tTK*Ow9*+`Bd53*+zz-nsNw5?^dnYC7;=<196 zEQJhm+?qv|Nkmo~51Wm0Gmz*xy!B6zzBjX?>1R2Zczk$cBd^iMcNiJ>s52OXA#To^ z;ZYf=*z<|obikTe(GSRuPlb~aP~=@8`pu%v_8^g)!?;W?gx3_)`Da;n5_2Pn@phu= zZH|jG$*G{BhRPn7gLqt>mv2h6Wy5H7Tkp;NJ=iv;kvz2QS8h*vg6if1^!HjfKEN|xx=ff~S3JrKQX~;Ak^9xP zAbGxOz_}3;tYm2O1ncU5fb_rV(xL?^mCP-Ty2`acp+Z&xgXC3^2Bx?8JBGjF4A6L$ zAAA!5$;;ghjrf+`N?FfkF(`5G&*FSvT~pWkuZNDx&6Smld`i+J!B-&=C#fO; zM}(}3o6*kPQWs7*O`ThBj?6nj>LqAzD7WyNhXu*>-=>P*c)uv=3N4XmbOMP#<6mO4Y&Y@_P~9)f_i<^w-3>!CLLc5J z+$iCQQ7ECAP*3k*>~DY}*{*kUym2;pPmt%2Ubmd|Xy|b25+(7d4-1-(7PPe4Z`bJ~ zKI3lHv1lxp!-gCo(+*{r*kSZq3n%~yq!>&I7WSJ%A9-!s%H|ChLtFtA1v!BoAezoJ zG&=kZN8r9t>CF2|tqRc=&gjh7Y;iG3bl1vV`r4bnc|7TZ7$(~XSTTdm4^Q*TpGHSyQ??!I~ft<_3IXj+||`Il@mdLg5S zge^1O&{zq%g5ezMAD?TD7q#tFZ~IF;OdiT%_(^qW~{ z)5yZgcYT^9T2ws)&$adH*MLMjf3&3(KQS#I7T0&l8mApt4XsFOvyRklU7*?tVGdyX z_;rH{0=Qcu`;e1OQ-Knkb?$?ZW^V}HL)LRU{2i}oiY2tf(7Or&LC5VUxH#JbQq<@^ z#uYhL%Rael%SK^kwCcYkz&{<}dS9TAWf$EU>gvQ~nTPZwz2L^dIWzH%7Pe!dsBnGq z6C~(X-PZ$$Rgi3YTZF3F5adqz*0!WXD7N)V($pXPrL1Dm;FAOabjWsweC@>>No~I8 zK3o@B4{K3BR1=D$Klj62f7JIz$Q_d?Eh+;uG5~m+lCy<1iq(65Y>_eIlv&{;vdL}b zY#u8~CmBx-?7t~mLp{frt9S&qZo4@!s3em-htxl2Il~8>M7jj76?_s zLh_ojkyXWfwfa;6Cx-?VXc#nnH0ID?H4)M9Am&U!VqG?Au1qB&o_$Cx$*=!Tbh*>g zQG%L1p0b=Pra+MrqO(I6hfWH>)RPt)X}6}|YlO2|SPFE!eN2|NMomiAbRvQY!T=zQ zofvo=k<@rO8;PmT@KCAsOl>NpzNG(|GB8eL;!(=bPHb$HY?ko7s=52RylAII^T+sS z7hmEJMvx`eYD^;VFS`8oUX1y)erIFmUnFG5%QG%sCksWsV6}8gU70Dv#9vCf?Z}cE z8HRsxz=pB2DIIG&akL%~1-a-fe9A1``iXtTj;}J7`4a*mqJadhWxcPW9E5r%G!#hN zqPT+pj?~QF=o^~qD|sl7!pnRD>x+z-Es4or)`!G|Zq~NC3{nc3FI;gW)PGp4QmLtA zv$MK*ZcCk!2UIvemCd~VW+7tR#DAK!0V{a!MB*;eGjbk%$X zztUBB2v-J2^@Paj@IKs?6{-k zHLo>3==?@a-4(nu6Onb6t;L`XF#SE(UvgBQf!rXWCA9X$f!_suJkTWgFht7z%G{7_ zWQPm~zXyK0MZXU^%04hW5`A3MSy_7=kPCjrg0Z`|g5VvA2tX=6U53AR2Xh!tme#Rr z{JZ&V2=nL~GJCtUTHHwCa)6ClPwOE<_jq<}=iu1#ZrwsTbxq~nGm6b9C0x+j*-4Dw z*au4{LkBsvsxesEfU8p7&q}U8qr>Kw1P*8tkExU0U#_8ZL<(O6I$Kd@gUH-lxflR~ zm9VTl=x2J!xl(o9EwXq!y7?jN8=~Suev9sRGsW{Y}L52mQ@$B22w+Em*FQm0*6NuuHUR%iaYTY zey4D9;9(|%VzO{|jxI10pc#IHZv-y!*l8lM$cbTn{@W-?noBs4r z+~XN2-I0JQgbF8hX~w@NTFN6|D9i}IFU$izH^#)%$E2$UZ8Aqy-kELsRCwFl{;ubL z7l9t>!!zNTbV4D!0>k*1SqaB|o3}oGr#`w*)1rUxOk-v?HZ`xq-c7Pt(c@uC@}f^m zM#3F|E1&!QWgRKbL~_5D$dZw)(NnpF0OE%pSE<6qvgiWgR^LA_T^l+lBk3?yyf)T36Kb7h zST7iMp92oD^;nG{@WvOdWb0@fQF6W3 zSW5%C=rpIi8^J+4+PeIs8~!R=0EG*c;M~=}tOqGR;we$F-szZ3S74DYkn*4#ixzut8Of zJ#PEvc$FEjbBZ5v%^h_e1`!Na#y}D|3Eq`Kt+YUW+{Al)rH{J=4>KCwYR7(Bd63wtfZq7pu> zGpq0r!()d%hGYmJ#txeKe4Ot5hg%)J!eG0n!tSty*o1aVrr#6h@0`S(`k6s;VS0)Y*F9NA>D^yBx)|VGih8zWc(xT+FJDN zyMk?wRf*K#B^hiSe7O?l#0h_~kjI0}mYr#_f~*OTWm2RTQIeHf6oKkIe-H4fZ+W1q-bObU9#Vx zH>$tQD8;rLBJ5C%eR~ZQ-w-NrC=13N68KY^A2k1b-+Ku^nly6M#rahY&UQmbPtRlC z6^Eepz_M3d?r9u$BOPE}3GAe#|72e#ayP$ocwcI>r{Z6b;s6y%WO*S#u`i7Eq6)-N zjNbH|!YKQ$?WI;r-rV_J?cxtD{IS&Sw+g70$JjvlId=_EWUu6^))*LiJs{2ecPESg z(>i9Y`>V#~olPbwKwBB5S@bJc2P!!L#rYS4pO@r~Dk6D(CDmr!Uo`$`C!ffk5-C3Z zs}P(o{?;UHK-3SRcIJ~aeNi8P?QjaI&WKZDJX<>(B>x!%n-;22DC6GIQ+ZsPB2gXq zgX_>6|6MEyL>H)mBf=bqmjNvs1Y327pN1|EI~-Z?S+Wc?zA$G}*<=TJi1d3I$Jzg! z%#6xPXaB;GRgw;}4WRc%mzCnb%w4=S$pg2lUNMFTC!?gX@^=u@YyW5;?K~<4l1${L zq+ZjDY4Uv4-6i>?jL(L1S{&z|1<%+F#s=5Vq>ULeH_hN`Ft?zEO@QP)i6#Kilbz2; z&uMo2@^{bFf!5B;*&j@Dp|R;%cGO;~^|*$=>4=LcZ{5pqm}7Q2KXlZ=ogswWF z+(XCqihs+&=#sKM*;6oLobf=LNQ~}cvB?Cg+S%vS$o4Co&R<0b0f$v;?@BA`wx4!t z2Ow{HWi{J-6ans-Nhk(hK@K$OkctSIBLjpVi_H=iP20w@KvPOTA=Tg$ssdj*HQ*ux zTg9A1gTDS9_K#G>W?;?+qnGEKvdZ}Wvek{m&gB?eNk@0uYYiJm2F`=rV&|h=1v6Et z#wryoeLMJ6R8^%=_dPHql;fhZah|&c{=?WqNCXZ+>`_hpOu+9Nv_~XPI4RvL*Ar&y zaN*_ZZXyJDcE1?4r%1uJ50UY0KQjcV2AqS{f-bs$ zff6L?qLKmMS8UAp@!xtxIzy7n1v&m-?TG*HpE`2)>b9H0s`4{0^1nHZ+xz?nm<35s z>{jGGS?XTdHAv(}UuR|8B=tJ~(ekPJr%cOvOhmkANU3A~vpmjU`e3`}=52d(y6p62 zkp`Vg&QarQ+ACoABNcE{vJ?c|M0)By^b`mx_>aA2T{AiHRa61%#ZC%{t?eyd3C{Lg7@k-x2kS}$NMtk5MUDvF zbL=~5WN93@k;%Du02X#i08tly*wby)-_j=8X2w!kIu*DjC?o9IbKW%@5p<*%Js~iJ zJx`L6@#2Pc@5C^AJ8H7nP^(gCwVz4yhjW5d)Fck0O(#wUgUbm-;Loyd%J%^cU4AH( zKw;W9VZPTmgKGfa1wj77n=vWlW^k2$mZ3$&<+my+`8S?3t1?R~R+rJTZipg>G{F67 zp){#fFIExS0mOiAl}UcSt1{9lcadq$EkMF#ENzOAB{5cEDb}=;u;iT{{dPZm^pM6EtHiQ zoPBlkbZo_RkyG1cw4M&4T~9B5u1poZ$5W);M7Osxzi2Arr4*Llf(vi?JoL#(0*o9< ziWK}>1+0X6lB-l()F1B8)&jm)(ZsdajoP+mMlH4Ssuv;)mh@FH1l8#MEBFwB& zk$XeDiB86L!3vjLxzaCl6X4yn3{xF~{Ut)TcyIVenYxp`W0Q{=RBtLb@-TYyX+b{u z(ZPf#XDyZ{=(Qlzu5vYXdui4Lz~p^)F2EiolEq+UV?^$Li3?3#V1>xf_Dxa{m=3SMh*pfQt{cln|& zs`@6dL-m|A8ID9|?m)mguKEUvWHT#k2LN+iji%Vf*Kuamtvy=rg#vE5Lo!r^OG0$E zs5pJZctP{S*OxDY>yMd;L_dzC5RFjcFh26(3fcz(x+uxXr{b%*#~MG!(`A;eJm?y# zs3D1+0GL^zdlv|B#9>z@>6KE#Go5-ClNqUZzqc&+!1t><@c;}Y{=0x5)ao^#rzKS1 z2z*Xr!uAb#c}!b2NZGY{wMp3$XO)&p5E{MOvaU)_en?dPdZ+PQRl3`;pcxJ(TEgDCAwgGRHX_Nr z2ceIte~HWPSR1(+=+L*1Bq!fT<&ys=r63PJElp- zmpn}Mjlf2>7-0J%j$=N+BJo4h&sYDLhbfazzKX|{c~m4nxaTaDh z*@Yi>)qGXk-V7~%o*;mjYG~byyePV@IeacL{1lAzP8YCsr;1epN6Qp&9X&|r!?65h z$VsMQ!eXl4s>=MVDvr<}aGwDjzhMy!@y)9u4EKawmk<`axTP7nVn5EwNBNFc&)Vfr zArf0*V6V`y>Jv(Qb`Tmv${469F%GqyI!@a?qH?tTr41ZS)7HE1F(hg17Jr#yxrIrW zbakRZV>GWKcza;na|wJM!U=SMOvdcQ@eT%n&K4`8u?I+azSc@3B2XXPM5Xn0r^xtZ z&hhlF3UN{PUC?qBEgpY@O!wG|V#xC!4*Aa)9k_Gc!3uyXniyO?w$f-xX1+8%_ho5~ zqj)J7!^U?3XhNtml3OY6>k#-ROQjjGhIwqX6MocWQWqL7^ zMa2;Xv7LeE&bx#hIh5G&CfLG3R7Lt)R|^t1oDwN zF=mq%-v@{clNSUf>FzmpLKl}W7X|u{S|5h@C>GRnNp3P&ipZpC19(1OiQL;eF7~Q) zwaKeg_Vbcapz>MSUABN`K3f>sC8drKH|{ZurLV7lJ5(7(B@{aXbHue0D)vryMJNa9 zA~O11+mE!k8{J7M#A>?mY+()Ur$HkS3QwgGj5VuU&_-Ep^)ORx-W-xcOq{)Vvn=sG z(`bCraIi{eTGZl-`s$1JJnSvCW)f90C;=HnN$a86z4hp;yEt+=XU4vRf{8>Xkkr$S zTX{)+`VVl`FV`aIRNp@hH5#v;TCn$xX6C%t4bk3*i|O_u2h;LpWRn|miTt&K(52?y zE@o7=cgq2wd8l&dm5<@h!qtMYuAe;h5go+5`XndjL@P}h%ZJEi=T3J7h|JF=kk$ZC zH)G445yLg{5-b{E7T763B{)00uipjFP%Pu$(Vs{EhRuMM{)VwY3sw9CWygPUPNCJNM8Oz$RbilvJ4!>$TxvzX7jVivom-fg8DM` z%$5l&sk>X`k^hpM%3PO5qX&5v4-X^S#{R><$(4-vc(=oAvEaq<)Kl~R?@^|TG zK&Ia&5P*KxFjQz%y`AN)dWs`n+3>uYokz`OCZH&qe_4nQ+|Vd^=fD{!5Mhz*`L%S~(Vnxg{aSv4IMa$iqnXjPSh@b`KMMdVI`g5;AdpgQbRFq>s zw`y<+)wD*1-NvqWD`O=pNQ>`+U?I50SnRNJ7z5hI80Q~a!hT<@ljqsk*J@Z`#9B`m z&0fH_Pn=wAHZM?Ru-9xTbHtLLs}Lq}nLp}A031@<%I8A-tZD{P(R1%6h&ni!o+}-*EaDLr z)={lC{++W)Aej_uCOOG!8M$?uyD3f^G9>u*SJM_XvMN1x*{1yHXrJ;oP>@dYCmAIm zSeeGz**)$b@FM2AOsbfgRmHg8*(m9mxb0KizjKZE`5Ew`V?M9vKUnbmb4rTu!R&|g z^{DTUuX*3v<j4H z;HHty{R=P;jYp;E%$&}m;~~T%^%Icqzz6@g61&EPYvShW5rpvd^CPe60yrZVF77+_ z9g1XT3$NvimrC7(fSJPK`x`9<__y??6-m0SJ0gm?ea#prGS82c*AK=sA;!B0k0ZZf zb3S6%&DYoMdg=E60dCG~`9m>Bx|V!gP|cL*#d$BVk9LM_=XF{N4hyqCXPVr-Gr{v{ zS)mI25jIEOF;BHz8Ih%=uk?@;(B~u~=`vwy`(bv@cHSDrU0G^(wCSBb(1+lU?TbO% zBz@+Y1)YrMcOePCq66G%t&z7ltYXr40lu@5MLc>EA|<-WKMqBv(t2krws=$@|3Z=h zkLog;?aE{eC@%pWJ9O_OL6(^tar%6Hx*!FjNvFHu#6@v z=DwF8dWJ1Vr10X%<%hQe6v4E+#=U0bc(9%P{}fz}tLLylzNZ z`O=Nk+!T*jR(71|eL3=6v3YO|9X3}6E8{Cclo(@z#i-Hi-?p5@ClX}K3;EXfMyQF- z{5BTTRr7mHqo?Rq^w?2^+)2%``tY$wYFzzq7a+Stefn-*B{BeMo}fcKI=GvF?&&K!`6OcF?%2F9bJA*J!THQkT^7;kDY>(J}h83X1 z797aLj3{@<$2>nvyraIJGCYc&aiP-G=81i08O!`Q70ySIa{nq$>ZSOrIMvssce?gJ zMz;5Ud3W%3(Pt8gbt}07i|iuN>jUd@`$=)i#Y;PB$Nex|#<=o9t=!ksgQ=wkm6t2u z_Q{@a4Z|RP+6-VTn`aaxPH61z3(iJsB9TGwp}iZm%eWtnIE>XWXhL$i@{b5@ttG4& zbLI)m6GI8sBEkGI@w9U~*f8BJ!oXw4jd}IU<{=(~VO_-}O^{o66%Dg11dcb_HSZX4EA8MQig6AzBR z-+3tWD|fT{>X^O!;Xgpc7UxVN3~M{737~w6=D=gdJy@#c@tkFMR$j1k<0JxsF)^W7 z>%hm4B9d^e=?!il6BTBj9>Taj2IBO2O2>bG@5@{|U*&sv(AV8qw>Cs-ynA-z(;)VW z>1^-YBJDE)quaybEZt?+D5CWBow`r_!hGxS9zU% zL_|t;&2OlzRc|FdLK5q+Qm4Ir{r7JcCPf;Ztid5PDcs1F2HcLRXmTeA zG(0>ks50A`JORpSJ&d$gQCgbfgKXe%09dndu>MKTzS_GQxNvR~Hy30X>fUN99(D?! zc@MwjxRG>{DASzr(2s^EJY}YC#)xKC<^Yp{G3IkF3qS-yoc13Cs+glyQhqHX$z8Py6i*D~&7Mymi8*`AvqjNwBtaBZeenJ779ID6QGu<2UP;}%xvy^qdC{K$ z3?><-8w{~poOOu~d*_eoWepP=`KHuA9A|k`(6ew!qeB@s(=29BI3H%l4XxQ(zw773 zAkkG@_U5LrQLkC?UD-&m@)|&i9xyR4sQ)xcCxOPF{R)vBLWVtZvlqN?z>0hkll9Rm zK^c&B-;p6y5|`3!m>o1LF9$+M3oV`ND5@+(jTVzweIuJ5;VEh0WK$=myxXL@M+3_| zI}Iu>xb0D&;!3~?)9mmpaL){eBHhIxx!j+6`kWfh^#<{4v!A>~U+pVc)?yGJOM(MM z2Bb~>r8k9k)a}#NP`_T=Y3V8R=_|Vt880heJ`0!BW(H)Cj?~4(_`MC6`Np`!^&p!r z$6f-bGFFSP`iU&9trxRsJP$0fa!v3#D`D$IRb@#*XBhnkh2c>vS9~+gEiN}c z;7q>H%lpv>5 zh%T#f7Zuo726(ljjEs!r{Qbnat$mCc#oVX3mMMCVK2b*QD{25iDHzR+@h(B#bQ4ki zwc|Q}m%*#2+LBD#tcK>AvQ%ZY1b|}}YR$4SBO)@9+I=8OfW%{I)T4NGS5tjM{ zd=X3@vPlao=VtfIcB@Bm&;77U&Q(#?9t#yp4s$L~i~}&!EA=yBT4?=IIuW2@D>@RJ z{#K0WJxZwR!{%Fgd0Oq$?H@ zlBfax^r_bmV-~vp@O)amtLxJm8hfDkw?%fs;gvw?+*pqsffr4X=8!4C>jsn7qQ+S0 z-j~zmx|!#LJNS15iB5K3j#$(broC(z~C^ z(Bm?9lYg5>g;j*ue{dLIQW^I14-O~mI=SQ&e<>N!NY%Iyp$FTksjkK*v;gwpFh*D*!62%%Y`jn%Fp z!^C|~7PGA|d%eb*>qp%9sCnA**VD5{XbN-hRun(*a`5-FdFLBXw;;k1q17dT= ztz)&EK}DYh_h}y@#p3Dz9o^0N9+Jn($t`i=PZap_9XJYnGt@UE{}XkeOMt0ia5R6Q zHP@Q&Iuvz^1_|IY*I+s0-c(x6W-`xf9ILn5H&mMTmViGXt(aZL0)@^JD!R-psZL@7 zIZI1aeI5MwX9ca2cbb}buJRf}-k3Z|esAlKf9aUE@v|v#4g_fioGoouZ>_m#7QvWr zVw7vBoRTDk z(pWCtg4Fxr;T@MP_9AQ`v&InlC z*HM9=Vcc`)4T(#kVJ~s^1E!ie)tAyEN;2VuZJY1V>|A9?u=3CvkuRpMLTvj|`D>52 z(pC-4Q^_zx*~aX?%u*3aAMKfQoI3uw&zuUo9I8&nA&vZ7IoS;aBR-YFj|UFc3`DU* zhj6-&q3X#Y{(DOakj--!QmCjMZaF9lisPIykq}>}F zr` zT0+KeL&t%5IDqL=DgiZ27uh8q zx7^GCowrp_;Nf~U`}exR@itnM26I|(5;`7m8Ko<-J|_mu61C|Aenyy@P8tXeqm$uL zi}N2>Kw-4{_Ie;-1WBGdefNnxU9nG?!~WYdcgBu2Cd^#`=H1`MnG3t!l4=mqIV3s% zqamGNfO`5=?Qt47TZwScKJlU@FEqw$&>1HX%JQ3&Dbg&-$2UbnV(hD?$geLza=)3{ zylcD)Vf`YB;;YP71*2u0DMOXcck5o3XlE;@Ratz1|J*i`*2k|y9JlySpF3jO_8P2! z?Wih2KxiM(&r|fs>lt&ToXxzb^#f1hraAX7{<* z$e~s?5*P@M#2lo&NdKl6y5}Hg%Oi%+%?Sm1K;nZQ_l%r=&kRSKG9^comY%gN83d*V z58Pzw4jAF2WZx0LZA)~;ZK`{2NMk!Vr6SMcI7~O?NeOytD4(gJZ})z+(UGR7--PIi zTnZLrBN1~}jK}O0q{=K^sF(Mi^olEhvXr_1uIMPn*@oi}ny+~ci0u%;?Wk3f;fjJE z#;o4l7>V_~)}8|UGZe+tjKs-1q6Zd*-*b*G!`Yp(`ef{IPSX^#55 zRMg*hhY@HY88>zXbbOmRDfBD}K@64c`CF@TB<_NH)?bGKX%b`ez7!Cxl#rsC7cc{^X<~aXrTQ6KXiM|eD~0rFn0+it`kH{2%Vw2w zv)%Ywjn1Opm{d~0gBB4KzU0+YyZWpCXabO+{&D7CMZvk@n!#T+2PPHs6fR5@qt~6* z#S^0^b!j<5cR+uKhDSYns@;z;0{E-uPF2XMQHLFYzTXbBp^YaO-rG?!tL_n`ulP=H zOc8eyZf;|adBOeRnY6?dZ?-c?n7qZVc4N?)U_ZSsY-p)14<>14c1j-7wK?Ef9H7lT z#k5Fxq1I;7mC6&@DY7VGaZT&+- za`mXirds>m*dm1N2YxX0#|%R@%S%4EQ!c9efBG~2-m5}NLr|eGYIE+$+R=^Q(B?f# z{})ef)!&_@u3_3OvrSq^mTwKF-Li4d>7<}bnrX7o--n43TXJ}_U}=oll(8yOSdp70 zFS)gg6=1_k_tY`#yto5JRRnYYT(veN+3m@%+6F`5h`Ma5qt!i4`t;T5w>u6g#f4Nd zuU;k(yD_N%?lY`5gT~c4CZ_LVqX*jl*~t)?7mx5IC&;>Q*|QF8edP;4KJAmx-|6)12YiHAj*p|dAAH(aGS#S&*_P-w!w*1a!zOm%C+)? z9GX0)O8re6N1NxO=!y%4dYK|hhMZ0TD8)e%@IYI{-$agv3qJ2tRV7L1(W(BhZTiz+ zp$Qq=c)!Zzcv|Sv4SX{DDHgY++lY3hxqh92yQIxD)Dxd3Bo`3=yWs@gu`(F`I-slV z7VW0qdj`&K6OB*KReYCsfgQ8vhvR!aP6)ko_?%p(?e!4~O0?##PODiDVwy_aw&uXV za_^S%rGLRC6}RqFLH+e8tWS=+Wai?0+uC(6gzzi0L0;s2bxJ0xafj94zeuVQDmXKw zx@t36S82$7JZSanGo*_Vp^XSZ#jsZIi1}4}81gJok4~TdnrM}n^`797Rx*q*kAc_w zSgj?Un9|9pH7$PUXAW!ITu(d3tVcFHbICTt039lkzn}c|{(xei@bgUe8ct?>MM7Z* z<6nXG6z@FbWEOmA#FM#s^Lg2_j9+a)T&MrOkI%p|Z&!*;@bOe$BQ6|hR_??<;uGfs z9KSoUNOYPiR!tddeh{?A(*P zS<#|jeH6cmz4x5JP*U*2n#3`V|0jCill=wP>#vDL*3d9QP6uz!qu?YCi$@y-83wzo zGW$n*FCZ;^%z%3oT$$Z$)6zGPUkmogd8YKB#C|A4C6#-!5w=%QW+M5jxLnlVh)etr zyrCnXPuq#Nfs?WL)t^nAmGUFPqAMD`lQa4nM4!c!cG~2lnKngka6vI$do2L#W`dI3 zH+9>%*#4)QD*?$KK6kcpp1Qyts$SiiM2F7ipSjNrVB$PBXY=T?YRuX$g`V`}%jR2g z-JpNSjgFkfi4?4m;Bs^aHk({{HvRKL$%epp6?miJu!Raf#+M0S8^(~JZgS(%&V31n zz1@?`7T^nl~sKl-bbLY1OL{`h`De z8`X$r9|M`#mY&tVullKo@O*|OGP2%{9^Ip8wH2}jaDhUa6vl1FQpg~en->DAqhRz0fJAOB!%Ld;M##Ric&jE#o2C_6bK*Hvo zPL~WcxZ+W%)>`gOU@GtJpk`yc8MG{ejWoCJb92R;t^7z>uH;V$!qWgVv+G9b>~Z_F z%Ka-e)-v?I&eWkg>%IE(=i8h?6VnGe#y(bRVgZqUU)ov)igfAJ!Bf*EpU4yxp06o9 z_X+dtD%skhZ;{h2sjnz}q0RZ52jk%b#s%yoZs~Jk?!fl8s9xVvMUm|v<1CwB-{d<| z{P5c9zL+PlfDjFL5vLfapjGkPGb0cr5eOoUK~@yugd8ePKZWPa(MeV)TFDLjCAjZOo?55ekBn@zMXYMrtMf=KNWU?2#lYw{kq}Q1y)<*e)f>UL z!5yQMcgb%Izdd}JBCCbSM)nR%+%j%4FwX0s-o3uBs1>+ni-3Ktl`unvHYLDs<0)@8 z>LnC@3(=SM8S(rw_L|#vh;+7Pl4mk5X($S;KP7fjq-17&KQsN^p!9cl4O~tOUb8yW zY*bW-+hR=0WTxcCBo7_%WOaJV4*)lMOO@r>)*=g#-!bsmARcRBp6Hv%tCHuTkLl&9 zt!YhApWgWbX2}e9lH#$QZU~}%a1~H=kf_@$N-AGR#XDJG|CFwNlKzHF`34x1Ju{QM zHPAIhZfwM&qf%hre$*LUYCIp^0;RBG-Oz9J4vW|-z{jEiZ;!V&E z?~FqeCbbshJ+o%MD__xzsDwU=lV;egiac^`K4$jv&HQ@jV3fwfG_g$=_{f%HX7_Hi z==x{L`HWLnosk)N&+;){<}lG%dJs8b0eIxSR@{5u%)vyI2wkgo(61Pv;n*a^=pW;J z#Q|pW;efNmzvA#bzfh{7pf9ATOERFM12eWXUE5il=TjTpc+atghr7oFX%t^^%YmH? zB(2{H#+8aVxKvXX>$SG~D5ynTz(1+X>BhxeIN0ka`uJMk@EshcmOG%aPvf+Xud$Z( zc&|HELiA%5)~M2poTvNvvj>qZRKRIQiA7h!%$l)vu~|(nP+Z6K&iDs@k5vzz zA)p(i$+1Z};OyTvz4Qx84k~OO*?wQ}q5i2_ZH_ED{r9MneP%8JusmbUCBy0;Wr={Y z{jjX|f(D2BT1tNY=IZk_L)q`Of&*Pu-UH33wPhxe=iB(=e=1*ae_JGCGIh-&w3mAaX&hxNzA0|zVESG@@egrePM-$`&zv^gr3#SxcV|0a4%C%D0CUEr(1*-Dk$dzC{VF8b&F6`It=PFN^Pr&#cuNL~{brGFTGmivSB|)FVk__WI zYev8dr#pfyAwMISk5C|(EU4?S(-sV2Wif+_mHV(nIV@`SY8q&TdTG)jB=gsZOUmy` zyl;KnX1k^|6iY9|SZ+`_XAdYt#r+PY{{W#n4}39m+DIPbhw!~BcTKm=-_gdcVH-PT zu&ke}kmOL1CwSRlX>V|PTWOHttLMgAg+gp?L(%0Zjf!uo(bJo@ir$ggyW(`zbdBMJ zN~vqe`Js6Ds&))acYz(O>+Jo%ZbAR=SEhRH{xt+0f&N+!$B7Oah>+~zg@DJbfbBB; zw(a*b#p45hc<^r;MsR$p{|TI)QlL>KGbt~=clOBKU#Pjb5U@$foS1fqx)C;1fW24p zUiFl_tK;)t;zAU6pEoAT8F+H0a5k2f;*Qx=%SnX zs<@%x_C3RY0OA#t_UA~wdy7b1ghZn|)mE0vb(PWQhT6X7%F)BHx10e$Ta_(#IT8EY zA4*eW_{sX;2I@MkPK)UKR8QVxM(+)GJh@1QOspGI`}pah z3f)5Uj-oHCk*e}waqM%q4`rciUwz_fDnsisBvtC2$OUL zR(|Y0Dobey4-GEOc0i`@MGO6de%|r^Ca4JTW`7ZgakP{)NHtXQxqvs})7oLLc}3gI zVToB-Rvg#gAFEY+H?ul^Y*Tm33tv@@pg9A!^HQj+PcISV!K5)MbX{w4k`2zgW9)8? zE7|R)mBX3rYN_8H>N8`5WgwB_DYTZ=T@$`%?2WR~u+SMc)q=F67fg6(;~)LE5bC~j z-^*(Ms-}-vQJBP?f42=KOW}%n7-X(F_QiOFzQwf9)hkY{Oc+@&*=>9+Qf`zZCL|-7 zB**$?>mm?m27wJ-X=|mYe!D~!mj+8nVF9M(FtEm_`2{}OO>Mq3y}Z9Jf%ys)Fws|b zXRCF|BBakVidGX7Gp@hZ`S>Uezc_F!GIyMgU}4|~GYo-fvj&;t8wJ*rF~2LUGp|fC z2%c0_=&1=qzq?QFV*JdUT4xr|%lu_`tBn)%he)EdYRa(3wgvpbAf6YaA1FSjV1hrc z>zC|Fr7qcAQjt_L9OUD@?Dn-m&WmMetnQ+jiut?@2$R`_w*MOtv+A2PQ~-wUH|$+w z8t~wjx{acI4 z7|D?jp~H5vRJ7(<|4{n}-4C*WueN)weq(P1Zg+!I*m>s+@J>2y2c!(YU;7`3KHC)= z6%Er^XaTRpS;Lqn&ZxwzOLr!Jgy)4`*i;)Mof@`yj==K#N0x z;*{d9Esy}gU0U2FxECo>+$kanSGhtFW;NI z&$HJ0ElxRN%{{``hLob!ff!KSns4bvrjfv*w4!aXqou{BMKc{^ct=UK3yf@j5qZKP z!%uOv#yKwbboFeXGCn=vhm?#G-*6(+p-JIudF{OcZ0XVwd1c1G=ft@i4K|jt7WpB4 zl4F7Ehk@TWgRk^{;XkOvf@NIsf+Y->H*V1oZfLtw_el8r%b7c#BN5yiAkKUyIVly` z(t%%ImLB{z^~50CN998{Jl6jTQyDCc4()Sh>T9gBwG-RA+1=Y|_%0#}*#jlk`gGD>@*kz`8g+EkU4rF`a%FgMPjusiP)u z0sYTg9M)L;s7bou?EPnrKY7vB%43a zCNm4&rvd_y%pHb7-3A&Ntxah9e5;+t&NmV!EFzxPoLbs~9u0AHgEFx%5mXF;7Ddzw zhRtNlkD~jN{FCc-XHAr~N!vg)2A7MU7@^e;gCOOV@$iKA{2H?@l6e$EY(Q>) z?Rts!3lqZk%~ytob-YJ)oEStV1f{Hb70Qc6Df~D~O9x1b*eaB6zgo1s8hM!G$iq%H zKj_@!$2R|wNS*E<-~;~q2Icvha&MZU97sh9)3_kH8!Q5z5Z)xfH^edoW2~A2<_$#?5`bq6` z?|x-Aj3$VIkp-g6b9;NrwZ2B1TbLxNl!QMuuapY2AkeRy~^-~26e5>99Rm0AGA zA6Q(cT@UXb591Qi|8r!HHOi)I|1nYsR}(To@bMVf#VUDpg*~FY#U*L=#2Y-lST)}C zBB?iSIc@jeP~(9Y<1Zqq*rUMVyROck0Rntu^lqjqr-Z!g+TTQ-(hUB*6R|FhhMouB zGfZj5-}D~+{0BwZA< z8yiOIPQ6!TXR~~`Ym0rx=3w?@nCWV6^bs;6Ly566gjjUz-Wnen#&w7uz;W=_Xyj+s z*v~atN*yH^aUd!6Ohlb+_af5P!?_9>k%D%E9FN=l!9xdZSg1K?9QgbdrKcW;ZP}c| zQWJEr-D+^85SEvN>bjSxHx&$eH@hX7k_a}TP~tjSeir=9V?M&RZnH=@KZADzV2U(} zp)udQv>Sg|G9F~A{~l<`M)#oO!mpB6`=?rd5hTsUY2>lk+f`|?RH0io63HEHqEmz! zsG4!lMK_t`COfc||0MNTm8!f%Rl1zXlM?)fHw7?wgJf$#T<^ds%ikVf>mBK(Q^Fco z&HQ+f8{^EFx8qKJPc2;qmU)!pufS=o>HDHQpU3STF@GkvoC4={1e*T|2{qq3188v`{H>`_o3d8>+)iWoKC!FWaE!5y0gT6h zi52;_%&Ws{@Yh!~=3V+Uk}w+Y-T4%;`|KZgx04xOGj;kaGAsfCaq)kY4S7^B7&!Xf ze%RVGSR$Cy*gjaTI>}`vhP4dPXCX$`mqpqBNa}L#v5qX+p_wY#u>W}{0Ku|tA)V~K zI@s5v=)6Pz-d1Z8MUv#o91+o$x|2zJhKMnShM%N}jha1j8}{q=fHLu#sY4;N}d z(t`u$`0e(bh9+af%s{lR{y1#6UlIX@5^WB>HpJVIy|)UzDIZIl;bY!oG3C7x5)*K9 zhGqiYs^UV@68IoX&9s~4kIt1ceKq3Ken51_D_Ug_hjf%=7}&8dWj$SO3Vql77U#Xm zGme=7m3?+!v_`rp3EdR1d`Nefa@jK#(SF9pwXkVwEPXP7$dmydJ zSgYF*Q0)j*0iG8Nq$avnTg_k50*@ag?HTBy%)Bi_av+L_R$5wHgww|hT@ke_LWHhq zeA5Q|*Q%=eX`9Y>>_poJGH*pMa(&TZ)D=MuvOEh-O~04aQB6wyiQ8^ZR*&l0wFXP3 zR>Jo9y?zh6g^QD$=)Vi0`M>mdb~M6mbA;Z7(n}R^QRO&77k6jyGlI~fO~Y4DAK5g@mTpq2L+AAaAhe_!a7aQ9y-Njg4? z4nlP5xQIEYS3z!+?|o`6|Jz^6_4Ba==>NxXBJ(=+QtjIVEO^@0$Sz*2a&qEF4_8oH z8k`B1CK?iG<-?$myb4YGF7)cYauj0Ut`<}2Wvg5ToFwX>BEc8YllG?5MtC3?)2dR# zlanMq-V^M!O^GubtNeWN2_o~t0`$S;`v#NJ3d_wP!YOgG%`9y>Y&`+wJtL{OLnpUi zsV4NzD<~_I`K=qgv3Gwsl+%!dYMg;hW?DC%v>+;aBxwHw^z%3O_DT#Yp#xA-imq^7 zwFoXqD_P1sfbdyeY!h&u3hGAT2<>7+!G zCjQmH9dDsveJu1M?y}#h;uhDq8c4YXZj(+7{k)=OJGj70zAWk44p;2AQ3%c*WZSg* zCKKv_fqN*y!s2(dJojGhsW-CI;}&+DczGe+(Gl~)Cm;Jg7mUMXKkNSs5B)#n*8fnS z{`;e5hxg~F+&R4<$7gU9XK&`1%*62}X5x<0%WGg|J$Z(WyoHq)1^>N01Wpzi8k>Wl!PS}iR7bLIIFgUClB0lkczDgDl(amAt; z^_CTAZf%d8(~ksHSu(Ry!Y8u2wK~cN<+Dvi7ePH5^T;VUVN+5XGyou>r^lqE2Ab`s z%hvE>Hs9C`##^RPcXCbqYa%@qQimeiZyO`QAu~0YUc$&>?Jt~eEa8o;EDygRsUc$b zGz3X#EFswL_6C_>EA#BKaGRxsI(wEt9bbSHxj>1E!;c>){DgdBHp%{|44Q**RfZHv zfJawU4BP`MRk-*MH7emHhHG>A$2X(M61@Kjc;U-YKD?^rih+nCY76m(3+CO+>c zCQ+A*GW8DeyGvL!-BgQw``-NZ#<(N?B--y6jEr(KDU+O!gq*C#ql*gVd#cdIns5l& zEyr5G$+a+3u>zB>+Q$8J)WeB_#)@Cx@d zpEK`_l6pZt)kSY?a7_FdKsr#S2NMYZ7ZsFof3evhQvvdOb8vB+Gl_9vvzRk(*^c?b ztiNcE=Y@4S)L*GpSkH2Qxij1{f|F}UX?GFrrjX0-GK=b8-DzBRC^0`MesG@SNf4n^ z#&wv;%%qgpuc-qhTXZ z#_)#y-a$6qRD7d}6%n1%58_5gPg-7BIi&vp0o+Ha6bO>}lw7nH4g;Dxq{i`Bd- z&66Z5Rli{y<|^e&YV(o1L9;{ha+x$DKQV-pzOsOyi*RL|LYuIz(A=YFnU;G5<2s|q zyd~z}F^9J`{-0c1J{%1sml-yiu$niG_nr{52b1QO;;C;?J;<^UDRNRVbDuQsH&zrmo~Zql+@LJrIJ zm^pJ{EWIk4xC{8$+-EP~lA4kGust`qXrd=ZiG2cW-A!g(okpm!bSf8mzt)^1WHfhW<8W8R#iwRwF!6fGG#fU#Ea z^7Y$7@d67Ki(y~V!;PwFd;n`^HeQbw;3a4h=b3asqPaj+h57O-&jO8ZAII1(nKvWD zN9C=50M|?A%$U{VvdSVag1&~hQpAaFY`JHSyG_Ndz0tQ74TVCNCz>H;q?=SCM)KWG z#flQj-(MM?shqJ;XS+zJ{hHaST6rwk0@9PB1VM%oXa6|5pw6Dm2!Zn8u|wd&EbP8Q zhJTFD3tKs7+^s+Sq)XChB;hmByluGL6+4PidS`W<>c}Q%#6Fl@Mby$%IR$i7iGMnd zzOjG1AsE>c{V^j2W|KoGU6b z$K7;yHQ4M`GdQ;h$IJdne6_wux)mtD2tM9^IW}?0)(PqEx21G6Z9}+_tn+_8n*^n& zlj*2?aVVt(mt@Ey2w?mvM$z=I?ct9H1(!bR+(s_Hx1{WO19PS@Gt7mL`)4JfjHNsJ z)*kJ3l2$t3-pNea5j8`+vJ@{U{4UM36C-uLeLfP!k&zEJzoFpYkI$GX7Yw|0=9EY+ zL>Ql03l{1vD6ho#_SD4%c`RdSn#z20QnyEAO@W(ilW6T$=)l^fx}`7U9fzxAI8zMm zbI?3O`BMYVo7Zage}8c!)0pr|R3pP8O~=TWK%LZ4kDq3OTy4CYLa#GywDtU!CLs2O zI?+Qc9%J4xL($U|KAZvc)yAGowD}u4rLsaeItddr{qAED&h2!SCEeNh8b+2A@Vfn* z$~$1~uCR7QWS&Y$7{6$e9HLSiNrX^8^1@YUiu9FaVlfFF5$a2Y3a+Zk;} z8*v?v+ESFakxF^pr=L)bX+IV-2;+Wg8nXLRS-V~~X^cVy^i`{I$IC_q3lwmWJ~>FPV>)-2fw{g;|8QGv6WgS`*Vh<)Ex#HEHP6i1ilFaSIMB+%4W}QJMwZc->n$8cjG^q? z8E4(dGg=1P-IrSgfASAJO;TkjKhk-4xH3E=x2#O&X^u*EOMovFbT!wA%jY7GWjUl* zCf&s7nrt-@v;NuSDt1Y|8mRXxv#U3T(RqXAnx++{fuHD_LHC49MRe)jP)m&s-LE#{ zs;S7QL=H;Gv23lA4h)E53%#zJuQBo|dt03;<}7$Wp>bxSq?2Y1()vUScrq$i$xY33 zv3!*)RFZ38^vh#%^~y=g(`K=J4!54lfeVv$w3O}T`q^^sI+4d>Wsu|VQH(0ve}FHA zCI#?7i{W#V=uMrGuo|5zE+$TC2qG}<;)B$OX4Q|ums5SWnqQS);H(xw@PLO^wrsT5 zM=8ELl|i&K{aaUqUrE_UIGGGB#B)JPQl~`A*N+_5Co0Lk@6yyrC#a*LV%>H04E~j+ zB|-dq{n=ql-Z@qQxrH$HWw!cEGefECGAICm!~t0D0|mZNa2h9mQO?JFZb^0Mvd6{1H0kDtLQb!7BZ(8Tn^n`lLsbjyya8dWK_V+1)$KPv; ziGcT7wZ4_B5OYOlfz>%yf3PvGAC39ethT5}p*8Ya?%DAeljeic*8oJo^|=OO;d7Cu zs<`zn5~XGO_xkGuw>>j2zdh1UiK0_rnD2ek;Bl$grP7&dlAP$nGCdX$fEReXI#O81Hz%i}!5ZM|{DW9`l-l%H2aL`hALzz?7jj-@Mf(ZV zAVgFbhLA^@3s;R^E5{gtm&wcVdX#tnC|7DLU8XA7xBFWP+1RX~_*j9JyqSf^FoRS`nC~@m;wLMR$6g=mPpv{fZ|a z{{aR#bw`{gJ7t}Oq_-6>DG%EjG+(wh_LxGxjypZGW+V&CJzM+f`hBu(yu_!yvuNsg zBpsroLDQw8Ru~CnI73%IFloOR*|Wc^Gy%rqDQJe1=p59vg%x655)cGC>Ldi zqe`?Fn;(GwYi~P7M(kN}2OiW=j&A@GN$TAZ}#i$O0(krI(YTTvv_Ph3l<6r6Y*G2 z*5j~W(H1bbITpS@S4O6p>hsO~155|k`yVr@8yT><;B>_eO8C+BtccxoOV0%Bdi|CF z!0jdX+H`bd6Or$OgJ%1eORARQHW+c2T_EFT zO-4!wEx$?2+u%v=QMUk!?i4Q`lw|wpFn0Wj^?caf{Kkm>?H_OGhK53n{73Lz{+%Uibo5s;klG~-a5A6cGjByV)=B=e*$!!r%`jHA;XN4FH9 zHd-8DH+240*+!0n&naD1#Z(>N-OV|tQk%v%4#em@7r>@@a7Jy1V07ocQVm=}5koiIIHis3H!9_?w!JYx3n;+AU^j7nfytu%gg{BW}2(U3+EqO_IkZb;XRx?Qz z2P|QTLG#eJ#wE&WCgaG#`Qq?~L;DLsV`Ht(i`qDnnk7h>ZZ6SITMF~hP|S1&kf$xA zkxY^_*{pH0`>VuPErixi&mSMhG<2z-`m4Me-&PpwT$+DDnrRJ<^bef$yg$Q~Qsc-V zA%WNBk6asDFQ|;|4dt|y@#v-sgqR=_6>%Rw)*3jr_W<3FjdGkeTws_*Y{y*hzYA{V zM6}*62Fpcxs#tB*3J-$?_P#f7qOhKQ4wr{nZnOQFor*dnav-z8B{o`TP}EE2t3%P( z^%e(?tQ8M}mtW{}1py;|jvF{`wEmo;NQ{@7>-V=Tt<>D$eGro-^YGWTu_m z9%@1m|6Q^bDlOdMsjtzvV`8jb{Jv8CfwPaCpcL|S6nrI&NRB+Yv45m|#sjY{{H=He z#`kQgN8xhn25`&$Tidc`cXQn3jOnV4?t&g%23@2;qRhtZ{j{zmdNu zG?ZB?QSnWN**0z6W}YJnp%$k1=W9c0HyQ)W$v0FC)k>GWr?x%Tl)nU=RS85lRqTN) z3BJhf8<~emB@)Nso*+|?ol?uKA^j9*~;Jj(!VI*-4%^p`=bqa|uyEL)Xq?@w7<)fpt;CzaH-4`CwDl5!NF?!^3 zko`i#e&L22krF-w-E65gK1Fva&m1oL>Cu6(;V95AyLy5UQm0Yr5?`?FG-&66wyn%1SQe?H<__Yg$z@JQJ zJ!y#Y8y2qpyx zc6s9#*CIyjF#nRAih60wHQtj|_?Yz5PAjtdc-hJfe~$eC{^6(`l&#Ioo|}k2fRuC# z3dK$i{q6tc)IzPN^Ht8QkR3Fg|3^*(U*^tZJmHCx%d2+YE3&|5fiPp*NM5fQg(6rS z_Y70=hzrnhjUE_Aub$MaPbgG2{*)QBUFL&i)cYYJB-IfUuyykknMENQ-!E6rxf0BK*OH~WVbdVnQM`8K0jKL+aNrrh2c=xk z{?#_dm56GBtc_vkQj1jhpG)V>XjKPEXCsyE@hnus&?gtq<&y?A)`^x{rA{G(@U}YM znW==Y%e+PoEWQnF&arf-plQ&>g^L&)E}jNe|9f{DNxVO&)Rem8*>Z(970+^ot+}L4 zvNEY+Go`i9x7rkM3f!t4&V~|SHxw?_;4JYndBMM>Ro81lAEV0|6swvJ#>y0Y1X=r2 zLo!fZvcL=d$RCqU^Q0yo>Wk+Fu8-vDBVKa9-qN%-OUxyem2Jh-@NpNeugXwy@aMkS1&QY(UZmTk!(srGl5`g+IWkPX*~67y-YH`{c0Z5N{*+xg}13%7cms1td<(wXU+1 zUOM+!r)xnBV=ORTxEsG~2FS9#?Am=A!+sU@n;P42 zyrCu8(q97Km#5jPN+^H%NS{@PeT&GW5A2$9W!?H!T+5%Ce=9PLS_8sGgN6R3dkjmK zsz1Is)^N)GK4SNV4ZSMM4 zm{t;;vK-d97_DZ)$bFes!TCkylRw(~`TYaF*aChO&bn{zt&|BoBM4DWMA6pT`E~k1 zqaW7~(x|0nUiK~JE*){>bjHF59Iq|RhyuDqs=Lkd?@RU{J@?0E{d5;N`%i34&QNC7 zRmZ}^M!&ikw@+UgY$~Ws2&^K=A0v^^R)thY+^2nyPSqh!FkAq^dqv-)F@8r!sz^(|Nap$_9!7I^XC@BiJG8|P4$#;C z*iUsarrB5yI;({~eqJ|G9{S6|L)C+Y4sE@m{kAV#=~^xxZ68D@{3qY)=(4z!YWciH zoxZpA4nyP3LVxexuYxkGz;bI-hI4&jII%)WCW$w)ZB1Z&=Cmym zd`6&mKq%NtSleswTrx@WndKuZ<41rb-aU*f=k>nT|Ih*dH^bF`4Q3A-ctB7HV;o7~ z+!4EciGSskW6bfyaklXMpjBFp>g!w;;1!v#0VrCX5t-<8D^xTsQtb@AJa=x!=Z=P? z1?!`yApMw|F1Ii)Yd(MfLeRhzQO8uWYW*v%8V=>)#BO1{p|D6$HqR8S8kuTor9aKn zxB<_?*Lv$CJ?Bj91Ga1EP!Cvh8}-ep0zqgBA7eknHz(;3i3`7p!3Yb0XTVHjKl#LFUoA>7`Yw1YF zTvqh{1C+V(7$p-3uHMt;(<}^yB}x}R-)`7~B%qwxIU>Q%5Y-C``w)pAFoMvBr2ypp zBNt%;nF-viJPf2YJHoBpb~8PzEFL-bShF6HVM@z^x7f&l2Rv1JLd0yx8>|egI$T#R zMr>D;xKjth8^yz7Uz3+U3U~~7xECH z;KIQcR+vO2ot^{A8spVrjux=qeyu>7+^H~NFBPiU@4z(eEV+F>bc9eJ;Wn8E8c}v* zf^Zp*(-Us{vFG;8#50ap3QSoKYCSe6$Z=rI%#3-x^tb(=w(s=%O$R%~s16>-WJ#dp zFMiLj?EM8zVsEZL%_e;qFY0)_F(@50f za>}X)?)I5ARpt)&ZLU!B)SKv`oHe93`A&tzX{dBo?sXri_^qSy&yLNvgkYc(L##9I z@;(kG9kPXyZ9LRaO?0Vjb#k(CD-OB^QH{2;(I~C{1k<6)Yc*O?vIq_QTw*Pl)`oow zWo4eW`^$*JUS;njz*dExWuNemR*+2(9tvZM5$27yjJctwsAGgdmKhFAwRZji)Xcs< z^OcZ0Dxd%>PwDYMTw+VVs}5OQQT1`SMqrA^t$%OnY5wRYck}W@HG^J&f5o7;j^Xq! zl&5*}p(pyX=kh$$KGv&k#2;XfH~$bJ`nfV;kPXB2BVe=oAm|CR+LdU{4%dsd6l33N zLxLL>_@UfG@R_2bdQtI|A(6 z_oB((EV6zkEMs`_jDv-Px$So@!&hS3fCOJ*o_7@9SzfaqRn^jE6Ca&c_Go!}G{}L{ zfMqP~rohvX7j}5s%oa??FX|RFvOgIvTkO|9Mh1Q@PZ`vS;AXWx7YHe=3X>ZjjXMt- zHKEqJAyUi{QR(|71L>DD{%SR?$0~ci=Q93 z`<&$F+owKJC>TTQY~RTC*I}8&%&oAX0#qB^pMxPvIHa4aS7xF0<*Rd{v5LQ@-;^c_ z5mcM0%_*)@X7FGL*!>gu$cbBR(q@Nme6pDB|2_kBx{nyyqF}f5l~w|v2S5s_8bSac z-8coN17esAl1cli{n}I4Fn{V;bAXbHi-Z0G8EOJ8(!w^(M-^ytXu?v`Mu2!Aq)O~(`EX*riw{?}<7 zxMO5h8@Ai17%^CC4|bRFm?r);I_Ps1i4?yC{rV&4F_}Y)iRhOJkwzD%85`wl%bFO+ zvc@<jT0~(-lef_xX0)ri_D|<{5M&p159RMh;Tjys#6m z-uc$Vt5{Bo(Ypz)YT45qz(^^6;9y`3#7ee%l_8b z(rWVNG^Yu{&+;uEX7EgMmkkm43G}nkC2h8;nYdRu{Mo|0LzP5sR@u0GZ`zA|iF;cF z`-lRGVCNStq|Kg%(CO^lgadM{G)T`Mb%hTSf5=#&{Bq~#ZYAprZd6F_RAph0VC~#6 zIM21+7rv#c4!Wvm{imFLX*!uT5vU$GYHiwcO}c&d)do{t&YityFmYiA<{)YpNS5D$!1$ zXR4BKyv#8#z+uQC#M9ADedHw;F=HT-_CC=SE*)i4%0UM5{=Duo02DhxNY2GI(N1u8 zyS$sc%0r+RICFHn(r-PPK*nS`^k?bl%8tG-ZGhdMzwkC%e$`mN`8zx*Zy&?LPx*mU z^CG6%)4AgGYVdY3#TeYVh;PA2wMhQ9^<9D-6$Y)(y>288|G{hTov-zGAC|wldYLWR z|2QG2ew6$JGWILFU=7@slSVL-pDOZ8Y!?=#rHwMhBLuEmpw%LP)W4wEVbEIZLJa3|NPhl zC2w?mP^2*rgS+&LaIrF?UC=-Nz1zfde?W*&_fe^J$4$lB*K|-Wm1JiuANoai3~0X) zEH`UU8CynMsi*j>EH)sSdX3)LBn|)7wBP#syK04S-j#4)VA1>eE`q>yg0!-@ID%5q zE$_ekt{@ljZ{T)u+CGtr3$gK}-H5Q>j`{>_<&5UN0_6}ZEs|H6 zgX53|%@og^&f!Od3l83ngoW9-ro!J}^(_Ag{0FGt&o9{@#jd>kRF199M<4wsnPM%{ z6I#U*AGI}r$sU)0V6Z%yy163UUn1q7*f*Y6W=czlDaE?!&Kje;1Z5(nQok{`tx?_m*(?ksV`M<+EDjc!lXD z@3iUDql&owbWuYdZrJ9zpC;j`rX#cRsInSye?hv9uMiWx84@>G z8VazoNi0)%G4IWht7`Ln3boAmRaK5=&is7_^bcTlKkeuen@6wHa@yTme!6)|UL`!g zn7s1t;yjV+rY648^kqwPE3Og6I?pqSs0%i!KFAs<18RTZp2fNi=W*d^B>Y9B#7J3n3sco9LZn7t+n;MsV%s_@3HhkC z8E=%mQf*4w5GCB@lCerqzpN_BRVc%EHbdymF2Y$j49tRe71c`4>95iC|_cZJx^-BgmJ`J!MF@7 zPTpQ#=d_qXk9c~`!OmLOC;HopffQW04BF}mBFd-zv8jb}!a66WZ^+)XjbWuWC4CP! z!osUfANKi-f!qd;ecIHh%v4*nG^paMCIt}uvgQfH5+PlA7m$i_Zj_IO8f}@u)q3@o z$14uF4A+u8SSQkh6sJj0kDBzla;%NO@2J$tlQfT+`ftn04bqyxXk|BBE3F2i`v0F1 z{C_f7)8pMk@wQ3bj!9o;(tY~UoJ5{_M?DB*XQBDb8!(e6IGs^#R&aU+KS(b!j`O_R zqmS0OP4Xd)qel!N#76zryk-_>neE#zahrA)4OG?}Q+7-9K}53pbO{hsQlldU%f@{g z_v)LkJSqv_@+xVe_s|5b;KG>ZD4-htkw(u>e&ny9$27RB7m&z%-FSS|*WOvhV%n|u zS|yxJD=n;K(ya+$-pZDCEp@Om{OjXEnSJvXYl=dpJrhul?qUoqi4;jno?Vm zTP|2m&_aCQlSTz(cL7h(V0i7`YJ+sK=ja(%s9@EDQ2|h)F#qwaTXJ`PHr|E`OojNC zDj}A*=~@t#FjTo6fSQ;LyqXsjMyh!JGvLuh3*G46x9yCUe&3wl&_50V=ycqt(%IIY z>xAdJoCfE9u@pJ*xYf~r!J76Yk|n2Yf1kW|Ir_#Vm%r#D_>u<+ufgi`>TXfaqhZ%zge6(ziD!sSyM zS?x5mbokRTl9W0e;XIL3(9X#(-+q8Y=87qhrT<9PJgIXlRT8qn%@ zS5sC2eAF!_W_&t2utqaYd%Tr=nz4zvzYIn#PWmm{SKoUKCn<*^>1Uj-pVvv@?*ev1 zcYn@yHX>9nZ3^tC-!(KdfuC51rR#sHEwf#sLo;I4ntu0WHOX1LqO2Y!ETu_om3Gj} z;S(N8JKCHUH(uR25N=#-`}M|qM)+5ReEvLVEDylN-WPeCi)7xrq-fE^1!|4~#xaEO zr*4!^DD_?I*(Cds55fy(WD6*{{{ks?GRkFSlEqRiVZupvE4+=bC*X*ZUK>UuSb-_~ zI$CrF54=QZJ@rJN_!wtkP%pI#-b`cSh@Wo0Y3po$hSICR@jIQPSgBZzJM9zy;MK>` zG=Gj#DA{-H4^;=Kf6-NtyDcOjc%M3K+$6f{?QAe z9DGq?Dqja&sbM{}tWMkJgr z_IWpdVH`Wr;dp$H4q3dAI6?IMuj+%W7u%m?>h1s3wPo-p4ijD2y522LT+%X^w8Q>Cjx?F#)}TG^g5)O`2U@*x325nv~vm zpw9dh(R^yJ>GD#KoQA!l>0N>KG(xjSe%&xI&(wM=ulq@jCo8RUD^CDv72ZG@p?WEsup zh56yL8?jCr2TM@ufS%MjXHUKHBHU=cxgOqQ%~Efq>Cv9Z-L^5omnwxtw{8gg8!b(>-7f6aZnDT z;A8BIBMb09mC`x$CyU^~fWGUg*BE5_b#+V#=z-jK=7jC7JFy@0&lu+#yB>&rfMp1gOn z9tLm`5lx`mAV}qy2`cnCZ5P8rk=P~R)KNU!QcT>?Q?&o(^4qFcs&nX1fsZInb|@Jp zp7aDur&C|Dh5gK>CxI3+LJNj`F@435Ne=3^Em<10GcqJg&Y#)K@jSLw?6)Ecurb8W z?vf4mV$oMhw0R_+Gws~CaxT+ix9JdX(&GpjdHE0fPG$(7EV|3DO{U0Gh~vi$I&sJ6 zK3Q4I5;G!yLfrMgepRcfwJUVCRxmQn*fObX0Pb^{l{OUbIrvt?=qlw;DJK!0+~{tK zN>|u*Wj?yu-gHk>Wv~2Q#ps?jf6G)nPbt(YOxUt@6TS1rrk!$XZ;Q9+O@a=fY9;XG zwQl8%#Cr6@$49WS_w;U*jy1EV-B;T?)5^im_r-mD*J)AfX*_%Np&A3Hs{Yk^Yc7=%gG9+2~44T2dUex zCa+j8KeoW!cV6V<4i15(&F5!_D=2rp@b%T?N?w;YR~;7ZBKcFanOH%`*hysHcAKP& z)1$nsSJWvzo>HC57}7A{a1tek?=sc=u&tq&iZNrP>Mx5@iV|PR)zZo6x)}=6XHU-E z9A!9KcRuvC3|IWhqyo#`cHjEk^h*ZVG>iQ5T+pSH0d&Uyi{-H4AVX@0CgN&6Q~1;L=+SxB2g<;NcH&9C*HbUziTi=H*D zt4B_1CZKJxoQk3PeLWe}Jqa_YX~JRI#NtWc%{C{^{FW{A5R4w-p`rZ{-Ph5RM*Z)z zX{z=X%K!R+CJx9Ob@*#!4Y3FBpWq($rB|#y2gFF{*K1@XOnqYg7qz9R9dANFke#EE z@z>)V$p(G}e05KXj!!Ck z7Gew<4=l%J;=J3Uy)6&&9Z9FAd3LMb)T_{zQHZ^m6nmWhoqMKac#|B5&*-v9KA!4_ zr6Uh3#vPhT)V(E~OhoJG_j>Ix0o>M=r*U3htN5U_mVU|c`z9!nr*O+hYcn_xvFt<9 z{{cP{xq2X2@;lgu3E>=gyVO4Kt8sJxmu~#U3^a_EL@OA$)t?ac^K$iy^x;Sg3HfBpq8A#Brc9IszVayIH40xg0bj4j`Oqm+{LE^3hv8o$=X$R6u&(HlYc|zb`$$=sqTjjl0M&|Rg)EwmpdpxwX zARlhp#A1i_JdS9-f*g*nCDJABnyPD5^hy1aVmwbYW~Xz%VeYo7iZALPz)u{{qmkt( zZbGUBLq?-uwvBgOw!h=5KH*UQ$u@Hjb=fYJoftLg5Sl`$+WpZ(fcM_LfK}e+e;E0` z_g87+6*LWIt}d{fJo(dyrobo-A0HFOp~?Ec;YF9IWQ@2Wp+p({c-yZcUIWdyad>6|4+}4QN$CGVxLT_E}7L2`# zjhJHe&o&wGNgL7JHh+ZLoP*jJ<=-j(2?2^>26~VMQ*b*2oZ2(Ub>`Nr*(URZ?I2)(x zQ})Exrk;NBCVm>%K8rw*hL9f@eE7teIxyz9b&dK9gL&h2cc4Z6 z!*ahHGlqPg?ZyS{F4o3}*4K{og>D&8Txm$`d<{kj+&ty0j7R2b*DTfjV5i@%TVpQB zEGYfR>5Ie6xRZviI7r*IVbMCLcO`fGe11mQ9u)nxpv#5xR+A+KDjs)Ek$`N%5~Hf5 zQ95X^DGzEHm5p~bqIq`l=bHdE zmj?QkXv6$oH!UiZE>2F7w(hko6)&SUCqt-g_wotgVl9qzDLXO`_TAgVt2Abmy!IW( z;{PG-t%KVBzjfaLrC5<-Ee-{W6shad&fLQ3;Z7&Tu2JOtT6d4+?Pl4d zVm{$F)QM;TS6QYdUDcVz$9t50*))ZVyL1x-pgsZ8&tp(Slc$9Rh7>QYW-Q#$0$+%< z%nqGcMZln~T~UsB#%cEAWryF@n%UmDcwQQ>S>9b@rc$jE@?!moYeOoK z%gI7oKqmvO-iWuD<)E2=qm_qBm^%0P*~Gq$N51v-eaI#Lf^^Zydsg0*FTSP6C`-hP zq-N@L)K75)uwl`uoW9*?1AAg4@Z;J#u73ompY`^>MAOip@msZlCAVrD+52z~b594z zY{LNV`!#x!$KtvhNNAJ6$(yQrcBPxR)ROU8mtaHK-#BeBG&4A~>L!O%+X1wERP%Pq zUz<6_8mQP?Qxg^+aBDH*l52`wc1giMF;&rr(Q9#Q%0QBHyS`r1j7lxtY6tBW8U-Tv z890YnR$p)y5B$tTwT}h+fJ6rV_~J?S#Gqq!d}Wem?54N^OE$iZDb^UX3BN?u{MqN; z0c$+o27G!mFmSVb)L5=Kvv8wuzrDiYSAY8hH|zziH^;c4I-xoOR(^eULzuXy_Wi)% zkCUd&2La11u?>AEo;mmUZyfFB37>DybXd}3uHF(Exah5Cub=-KxQcv6tfcy2dNEF0 zg43WXbYsvV#AB%jgG3{tDz}NhS0p~RTfy&<*kBZgv zmw7{Pvegi@yS8yLJ_*^Abw9X!U}U0KxNgs5m<#5y>L9R|m+^}!y@ms&C#y;g`zj9? zLMDb4TcH-!``UZaVHHaD6!r39j~6r_Ma<;+i1d-VJle^JyHF?768UXXvKzDEVMnzE zlc>+>v3RmX_hmQ!oS3yS3j7<5OMY3zEf4Ml?KbXa{bi2HaOc>&AAMqkERjpj4pU|k z*Nll7PlKVg^u8ROe@N@zi)~NNHz>_b85&~KXT5vjPE45#AyXneX_AKp zz?AC9`#v^Bd(`UuEc1ZQL|6L#DEHRL?wlo-M)r5aPe?fH}4WiC-lIjYh+CQ#L4>MQhNBskNCLX6uy7JjKbyga^7}52X zn$l*mkw}DzXA2?2Jxp%=Yz&htBEA5fb}3Ga-&?qxOFSgCSFhw6FDFtJrc;;~bEQ0g z#pMVW5IkpvVWenHWmX(dO)V8m-0vx!wm0d;5!sR05+2p1Vb_cqpLB3Rj#x=eM=*Sx ztbK-#7d1{b1>Ft(N$y!}EI<9y(+D7fbFn#3f|6pVP&^MDwQpIAd6!s3_j?WFA6-I7 z$K$2&smLZ9TG9=})A_2DVHxI?G)_JF$PYt#xv>1d1E->W#G)bj`bGN;tZLSWD3~nZ zGt8g1%=t=4eZTwCA@5QqBKd)VBohTM=t8v9Y$2}uR_SNBZ)$9-9XQG+b)xBwwhwR*Ls?NY{HNR4_X zOb4BVeK6e06=lYTVGmqB*BFak5iP2D#-KJDl0?q%qj6@MrRj^z1Dy?9QDM`-y<)(W zGSD*`Vu-9N$hK$bt?!!x27)ihVQ^?8(>K>Q{`XECrLJ^Czr>Vfd_Q;=&5&XzyU5gKq$PQJ$X@A{K$$xI!LxW zWZZ4KR7j`S9D8mO3G^)rml5qBEyH94sJFVm(=w|eE%qLE)ZyyWZ{!W5j01w}FZ+Xd zFzSg7CQi%;#4`8hAHd;i-e8dIQ>PI$@5IczYrfM-PWyS}s}obsINFGA79Md|c{8Wo zF@{nnZ6;OcG7cRH7lEi$Aka>|sF4g7(t%ewP#UjnoZ2MF4kgr~D)bW8nxn^tNX;|N z{CF^G>fKG%O%+;B9(D&qa<%>~*Q%sqK~VFHVUScB#x+s+;&)#0BSuXc`m%?7tP3o; z21%01y#Bm2#3_{Tw-)bGAuc`_R{hy3f%?_Uk|sO<;!HCmJ44fk;$sjuI2ap;=z2hO zcgmnc`h)W_{Q}vdol`A42Hp;aya6x-Q%!BOA3hJzW<3-CaSXftonsTYJ-m-Vx(#{! zYl}=0S(8JOeA7T^EKTVSwJ~qx_r(yqE)ppnE(_LCA11?r@w8FCa+ATQWmoBLM`Mqf zo;@aCJrNy(K#p zCHEv_l7CaMF>u#oEu26^$LAvbl=K)Qg>r=xNMggOgJm!HB}OOvSq)UM8x<3Uruh%D=Tgc>@J=;s_gI+gIHjVtTH!L zm<#OZ9>-QV6Eg_Y6P$Z}+p7srJQnq9#<$~?^ zKu|y&G0E;nnM=3Rc6gJX?%wZI)w{OgK<#v}3G3*T-t)^|VYA8!!io5<6atKXBcuBX zoTMl4@&n{XL3Hek?NFTvdYj9vg=YF`44OXI*h@sh>qXi9yO~%X@A}3D?d`U$MfQ)Z z_nG=?Ubz;Z6FWu;E>R`uv8iq*#usey*XgJq*Z2E1FMMo=ymhU(xv1COod=fZ=dI0y zZ%-+ZeEieYQ1?ldq%Gz`OdswVz=Q(s+Ka12r4Y`#eUm3o>53DiFUmmKbXythc8&!@ zS*CPt^@i=&RTX8g(_MpJro>SuqNUp{dfkq76!RwEiF(o9g}4T)Mlvt)H%ysrJ#EOa zc;qzp$oDyWl3-IAI^6wnw^>o~3%xo0qb3v6!g*!f3yC?~CrL@f7?u3va5OJ2)Ux_U z$!(!4_#x>h!y7*yH^*Z58rekbJ{uf+RG^}9r^43z8|nUEGL%~N+WC@lZ&eqJTs{78 z{pqKff+sERulCr7`D2J*TWyzk{8$%L-S6i$pLJ~_8+Co)hmrUUFtpy65S561L$)xQ zX7DQ9FF^VESO?ZspRP`xBz#Wjd&7+``BW|`kX>Z+E?|=Xdx`zH(YHZEqu0>WGKyer zar&$de{G6XqE{2Of2x!j)O;7A7HzX9It?1ABTv3F>f6G#l10yqzIjcgNM^hvX5BhR zFvE#H&gUr3%JAKHZy!fN=N5Y)YFLi)?8V!U`{Y=CgoymaC3+{uz*6z|9>a!4ES=xZ z>IWuScO4YAsn~2{VDO9+%-)r0Qr$|=72iV0j1=>C3l#x3G7zV;K=-39dJ1&S;}E5@2+X9oWb+)bNP?4KOJ{N z;L!TBxeSY}Y0~lL+@yun%G%-BWyHE2&|u-QIC|{k8#n2hOggOADIJQ|oX3Y{EgrV~ z-$PvDX_Bem0lLT$rBXg?Gpg^W{Xgf&wk`W+Ekd_jepenu+R1+#B)nAg!8_f;=^RMb zA`W3u8*U1@tmG!065smW95H4Qbyj8YEgZG0d75OF&(4A=_Ml@fe#=$NM$W|V1=!ja zCL<*ksBV;EcsMdJ!atLr1Fs+{q}!??!`PR9N{>;FoDc@wa$n}aVU6ovD80Ji+}oVs zP0N)k*&;7;n-Dyqx5&sM7a2ff08s4fBgCSJmt5JLPl*yMb&vEIY--All3U8Y?3mOu z6@BH!mQ_5>c=dGPPK3>C^FV``XZkiPqcL6elpL)J_9zaX4B;^=e!pfDI?rZi>4Y<8 zUwOFvKB34tV%4@mh(Wc;uN-8cv6}(Na1SMM*XU$MSlhQpX-b9caDBP3F9qE+Z%+=y zEx&^08#}&ks;WL7jZh!%MoNcm!4mrpb?l(iSK_?Gcbev{5~&k2d8Uu382Y)Dzp@h2 z9OD0xEIB@q%Farc9NM$ScNCt}Sy@oF3_nd4tM@~xKo=#R;W479w4r`0?1I<;P z=;GXD#;Q7Zd$my{0kMBfNUbd+2tj;UBd+R^JjyS^g3x!s|^ytVEr_YKL0&QSeGtLn~duWJ%}zDwegbo zr*LpuD+;tYp>As66?&;&!rT-=&oz_`hsbdJ1K=84sX0Ha&z?A01dl&s7}pJ3^U`$- z{JVQ>qJ6AZi|U$vEcx(@WRIKs@g9%E$C)w=aAenx?JhrirXe{{@?%Y(y-@iWHk~RP zlE5mgkmh)RVJvZXL@SDgV$iwQMQ?+zyui|JRnVzoH4Rn!&|Jr#pZeup3Ak?>AV5Ec z^Bk>?L-jc1mxit+ItEv8}ST@alr#=bhpqdhyTi z9gLxU_O+tjGy=J7agW75w1yDmSReG08XYnS=7pyW_>}WnEJrz$zH+i#qqi)WqFOq zPC@qD+`S^K{v$&qBr&SJpvsV7-2W_V9v)wk_{U=g}v)k57WAA4r-rAR$R$Y`& zTZg|K&fjhjJKa#WR{kK!?cSXVi5)bz zm5s8$f;r&saXtVu-Ozr=Xkiffs%IEaaP40y!SiD7bDpDjtzYHjNSSA?BG-5ed^X=W zRB@yvC3z30TNRoXO^rSyN{d2QuM-+*&ysA2Q;Z4m{W39~@$)l$5}i2fV`bLdGfNa! zSVdrfIS>~!Y&v(otL@FJWbi)zL1phLIpL7+MWxCk(3BHS;*Gm#Xn#Vgp>J-A+SiQb z&)InQgi92ic!9@!ui(gyb1SVB^bYLA+eR2USDVCZFM?Slcp1j&tzUb3+^nOnV5g=UT49i%Z>6km zl^>LG3x`Qe(_r@tSeSm-mqo+MG32N6X>uW=q0df6F$=e^Htq8R)nVC%G-rqWYjXC2 zEd4S7FUE_(4bP*1CbR9Pt;PTg3d_Xp!l~FXcEjEjXx&dPt%9 zCZiX8PR)C-Hzph;Y;UV`D4arcuNynaQK6DeACuLa&Dk+LrQxDj>#%MkeJ6?Q5} z+lnIY-4jfYa`NaOfMGgGQA;PDf(1dz2&*x1_@NT}rxnZ5uP#P22X5s8vRF^>;4_CA z6ivneJfX5*m%gwkiWLr75Eil+&jPpd8Y-!0(yvC9g<8!$&sQ2c1%U<t}rvfm|wHi;Z{O+S4pN5h2qy#VN`7uT5eh4d2?j zJ64wcY}X^wo^LzG;`Z38uRL(COwtyt7tNEKcg0d6u<1z}b+vOl30R-g3=GoW62c7& z8eGFtd1DLNdDPtNWY%J?cbeLy8ryAsCSJ|*NG!USlgm3dbVc|hO}?N7L`tLcZwghG z5BYNqkMR>kn451g`#{7;`|RLrf-P+5DO}uLZ~skNQOS?Tzm@ zlZt!G<}?wnFHhLsjIGtFu1wjzsg8^t&^TlJ~ zy#xH1Q-sct_uE?MTW1`hl;m|o$MCpEbX2)j9;*rlsL)5sPpnv-DGxdt_e8dh#+bAJ zLeG1h%XEn(WBHYv1 zM&yf)2ks&=dpX&VEX*fxSy2p)B@HnpZDiMiXz5XvHTTUowrJSnB`GB^#Nt*HVI~6| zcaA~hj2A!X&^JYsn9QJ`>>4%^Sq|a{_6oH&$ay7MG_uwQoERCR%CK%z9Ba2P0Loz}2l>aQnmarjPpl0+eGm8CN# zpGzK|T_G~~qJ*Tzi0?+t!=vqHcW;m#82Sum-n42bZF+sz!DJt1n|l1P4@=vE zk&?keA;1L^fCOfK4-Qt@RWowHEq=-LM8w^CEVXA})b};YrNreKQB1UMm4nsH0(_Fw zN!At;kPicLJn-EG@~aY+d%BAm+8a#0BZpN-7#S^omSGnm;6Q}*12BoqBOy~G6oqw8 zc_Vz2P;06Sd=;-h*$K=2+fEjpgnERG`vZE({7J}`d#@c)BE8TLp9k#4J`)D z2M^ihi(dGy&D6939LZU-5Xio(|K}wyQP!##wZ!LryHwU}#2WRetp_h}5xn1WpqrD+ zQu1HelI8P^tCVCvy}HPC{wBq3WwT|0PC=z`>P7>1#7{WKPV<)HjnkC1=M(**NrB}c z@vrJ7z*j{!?Zugm{j*VZ9?6KA8*9H~{2CT8Bv^~Fn)-X6U~rj5$gafnx?!MfF|U`B zK|EJ)3-5zr%#gQ8?%muP)&(131hwnA{dh&OP?(g-tGebF?8_(IyFu}P4&bmbMNK?> zG&s^RuK#f|GS;$sO7VI zKD&bS&o@BULkFp>dv#yk@Oc{B(P)skx}EMf<%uKV0vfX*c7cd-n0i(>ja1-)jZ5NV zc>*$~xC0;-vp^06CIMY2&8nBWeHVx+@zAH6+w0kgMr>hAucLM*6o@91rhh$JAT>}W zpR1QOIREKioeSw*bq7J*M~PpSKfZ;Ogzk+fK&K4h`x9(@lp^Hx=EU^~xE!TctAe~l zLIyOXze!L8GWTr|8oq0{P@CNoZpKi;NXmK>6=t9LOsM$mb(*!|Jp4iTT(-kg>4dUW zf?}}q5ycinxMM#bAv%ICjxBMsep{QA-@Fi|S8K-T!+LB`2efz2$G_}jvD*p|+F|{^ zk!A=whbJbneI6Wqt|1W@ur{;NIZMPoBv|4%;$}BPke4XXwv9gzH;6_ zu(dY;E~Mh71s%IEwSfnx$P*rSyQb|3D@7fY4AsZ5vt=YMHu!BE&--!bdp7sw{xu+N zE*I=DH~ZwqlV8VImKwBYTG+_%ApcY~OH=LYbPX42{@#KKns_B77u0{!8dQGM{xIeo zI3@*t`VU~+w?gr-ac%8eSf-K7o%*yD@Xs|Z_8}&OaMykx6ZSy(dRh_~%adFFPNTIt zP+F1sk(K)EuuZAe=)**v_`}5l>~cXN`ueH%&rHNry-Yo))gL}g#f0r1>wl=Fy7!K? zB2`}mA<|8k>OaGp$}>^l_aSdS=@2%12!&?~B6%-$;VZun^TleP;L-Q#mUoNl`p@cP zjBVCWXliz+FpA}^e}*Cdv--x{c)FGf7d;21g{Rit8a z%o?`C%q+4!VEJ1J1M@Sza2}=*Dea)HT;1DY*Uc15F|vinAR)ou91tV_A`*jw+To{s zyf>Q0A2vzy;V_*HKqatW`i%^esW@da__0Xk!2r(_tbU#G%K;T5)GyQt1kz&-pESE# zNC?TUph^JirHS_T?RrAFz#VPNYx8E@mRF%qA|4sQkc*ziXRY5c|x?YUt zN_^v|!kjH9rUnT?2Tr3M_zUJkN3ZxBNqFErRTi2)xxy}j)2?%E!uxsV!SfkoI@i>K zZ{|tFgO$t;C1w4wxUuwsWr6Ym0G?f}7j6)?fZrbbJ|B9DE@P@Z zJJK%toeep7Yg_Z@PV&N;*tRC<%8+ZgWknx;(JXlIl|JMJSVP&#re3{$qOD9owf@8< zy)ltm-g)bKA;@)d7FGga2i2`%soj5I zbNJ7@9EameWz~n3#%Iw1zExBB3;P0E3CkSK>QiRZ&rp8P-0MN_oSs6VU4s{zH2s83 zPBL45&LjkvqofQY9_&1N#C;`yHvjUW&+s$?KfLenn?*N;N^4yhK@;;mKNAuuqi*6s zj2510zQk)`Q0w$~vykvjRT3BZ+%XsZ% z4+63@d?G^aUTceDLWj}Z*)1N&roR zR5RN+HK&JXKDCFWAq^2NoxjoU9ek4&3Q)UyRmT=%YePE3d{bwCPbC)pCjs}riI<}U zfGe8iSy~|<<0B;}ZLJsBp;1e`A{v!zTVV;I2?_W6XM6sK%Q*wtfyrC_sccy6r$`p@ zxHlk-dDeJZJW~+#V%X?;C^x}-Xk&|vvxjakk7oW(>P+6w=?0yzlW?`0HX@s2tUf5I zp%}laI)Bz0P%>GbMl1%$*rAamtQtl}t2C;mjMcJ_a&9wl;wuh@Q^r2P1? zPnkp>r;#Jzb24{dV=}CtaFjfEww%ql`n1>un<4NClJ6D04L1%) zQYRyMi6K4|e~YPTrxruyw2hYV6eLnL8q#({O0AaH`~wh7kKao}Ob22gh(ivx(v;&>c~IWf!WM5N+rDdxKP#~k#Gw--as)f)duA`-pL0sDpW*1X;+)tDF11w zYnI3+qXX11TBwKH;c|EDrd+tJb|Zr5YajGbTXa<7WBs`ZnIlATr>Vhy+yN!$v0W~H zRLK}*jOexGgdtEMNCOWe0JIr%IWX$5Pk&vt7St6WU_!}n8gJ?IWfP(DS?b3}Uw}ppxacV|EVE>8Z1%Yh zhn=(qp*SHQt4p%?iQ*RgTB$c(x!+iJIX$Vc>ypz&?O`UlM(w*)@iqr+;;I|Q%6E3e zhBJT2jODPCyF{KFDzQsA4-C@uvp)Z(Hk~F2VK$tm^7e#NCsR>|W`w>AtrW(@<%k|@ z%JP^xkLVmKhT3bwbFA1*EbBb(uZ5bZy+PJA1HK>@j0TK%y!#IzYGvNVm9Km_mSHQv zm>t>VXv1x#ARZAE<|XAC5Q_T_W9*Jgs=gnZfBgPHykyScQ{q#lKR1nkK5>VLc0T&7 zgFCFhjCyBLa+p%63H=6o{e%ke9Uh(^ioY4GD8e{3RFd4cQ;X|@)3H?+WuV*vu-gbq zzUCYJv9M;!i_x?W z*FWT*e9Mq3KTvYQe17+h0~z`3YI(v$ETBPV%TPs$-Nd6_!}@xwQZ+u~J@gXf)}FLC zDZKX9h6U95oM!N-Kjvw#zJsws*8m)7#7s^U?0LcGCkdXSCR)5n#vm`ZjWda0!(VV4 z0Hfr!S88~GP!fr&QrdUALMpqc%hTy{!HGU&-(>AT2@4h$WmbtzSiqFD_BpF|(23#O z<~)^Zu&X4Ei*!{VLMc9M5hys6A<0BA@{hRvA8 zCfNwpq>0Dxw1Z|(=!?NYFecuBlhKEO!`otap*&XFW`-PnGMZ<^D<77Vf20q|f~aZ5 zc+u=~WbwygqU(-hLsgEJt>pDYk#A4!SM*lV2iZbDOiT)zMT6?b>R9-7nC!RMw_q@! zIxhDpsUy>;;-Zv8J$fFK738(^{NB}rjmD?DsK$1Cu1`e2jE3Yx2m>A8N=~Q1fJ`|; zMh`tIP5b*zbf3cOxdqXmqFkkq2P)*cmMjjDMq}@cFrb(-17t`|@H1ryqC!#+UguYT z!KAjA9*)*sRih)s;Phkn?~2Eobny<1z~9^LP>P|4#IF`p%?a+;p#%@_Gv0o_()GcR zrybPsa)d5oB9nIqT+SJ};Nm>awSo9G(#1lz4F?I_+T_mUK;3uXfNWJZZ!UtRirkJf z6FQBRSi38a%gWBC!K~z#W~m=A&Ry6|`eN7M z3uj%-Y`F*WuSJz63RJ6Tlbwlz@Fode++4nxsof3?%zCW(K-->z7lP*BjjFIHF2lG}#coXF5;0a(QRs4Dl3h}35_j<(O$%*&YA(q8gROGhk)`J} zd|hO80^?5Uw=h->svE9eu{N}++rw-SqWzvhR+D?-FV`}6P@9>JQbgrp!k8Ml4w=e z9!Tr;+)b8mz?H1WgDJK9;p>(3jw`W&fI_#1@z2}PsXWkm8s3(b)F9I&$0*MTXS!!2 zUtsUFG<)~Z*L7A=0^py7#9l{J-)~Q{6p#JZp!Av-mUYd78;wu&Xaap-StrE%-Lijs z;;j2_^F~`;V--Ne?t@)*!EnyTS!_nyYI!~^r!q5vyK{D+P$m4MKE}zo3tz(WQwy3f zGN^lyKsK@s*{v+}j<{>9)OBKnh)8yiC`E&h{VMrToPxW10&tzhe7fj+w#vOlT4DdY zMYWl@V4=5pndWJpl8n6S_ez}GM6^0bQ-$qMep+$pcY(!MwXldq3<*R|rUO6%V4U7F zL68YhZ`+#O3kh<~Cxmc;wTHU?kAmtj&VkZcrC+ghem{WCh|$mNXFtBgKVsqY)dzt( zITAPbR!Ul}a{Qvd&-osBB>FbkNY!FeW}-s=0Z;_??=|YFPSn2H{|6uk{o&-Vw%);H zz7!xquIh`*$b2S!UWlrn6aHP#pp5$lHZb=!0S4w@O8O2bkbn!q{Rw|;njFC$cTQ*n zypPuF#7~IJxahPp`&k$9r0pX;aq<_mbn6=)o*SayGgNP|ad0G_eg9LD2=~$KxDMA$ zi&pR?Ef^X0;;8`Df}B)=UNk&*P8p#LvP`cTfgPh*ioqEFAZZYA6n#%(F zltyL1dJZP1h_gFA>Nk~=t?{e9$`!Pyllel*!g`^zSa!=Swp;Hx{=g*iuP`0eOcQuO zl{NY$4RA}lmVZhIXc3F->)BhsI?@&5f%Fwl!e88J`(IS;Kr=^%_!)u{On7OG*6P%6umOe)0 zz|t=9qNy}iE|Aqy;ZU-Mg3B;U_RKlYLQ!0_?=^5#@{h>LS+3ZkZF09)E11#x&jQKr z^EmCv%}zQHm#!#tuw=_dWxH)AfQrCxSEbiT&$g5(BN>bRvW4o1DOG|zpb#qBQ9=qD zBb-*301xHYmdm-15lXg@5bFlOX@d!VIZsafY9N4GxG=xtm~Ma{(pfjwF6S4QzV&UO z{sn6=w6T{9VJ;+MhVvgiG!9MGi@&U!j58`%DIOSopbDv*(IxeOOX*-sk8jZyi%Awc z%@Dc&D#x|+1YrC`{Zc^}_P+@n8jX;~f$YLRQ`sGpp!*#5ihm@(J_>~DF?J@oyN+=@ zb&JcLOv{=t+MFviEGI|y`b1zqhqSTebA?&{UTJ=u^yt;P>98_cv8R{T%QXY}+QsY*S>e*s%Ug!V72Y_}eZ{~+4LF_%xa$jxjQ1a(-Ci$T&ZJP2U-CNa zR6PM#%{#--fS$+b0bn}qJj37hM>wy&Eic6(z6@~!f^!L4{#p$3h@XKH7gZVyF5!bd z`MI^%qM+-C;7{fQOP(*TC0jq(O_ntu+Qti5N^IJ5X_c(jagGJQ0qthQJ6nznI{)JT z7UjELoo{a5OO-ruH-8-esj>9QPrAI}jJ`cJbB9|Yqc2Y9IQU39H}afr)`4c^-C~64ht4l=0>gsr^(?uLgVt)^7Zcvv}{f zWuY`Dz9X5;)dR~zXluI@7nT_LFa;~0@x6*OQxY<6e()~v5rJba9Z^1Un$HynRYT6H;?@Z7mW0dLJVG0kpg+<{{lp zY+mJSr`Q=UZEyRt5;cm6MG39^?{DzBUmY3cdDr(fG*o*tzm)8GV&Uw%m~}lkr!JjX zPwYW#VZw|_w`DgfsAq`fLJI7Y?tmlkA0o;ow42j3nQsZ``CheWZ)s7z+}BM^{4NwW zOt-HU%Y2iNDgC#s^iS#W+P!Si3{Tz9d0NKhC{%s)S=ET?vQSg0meI6;ari)Eu8|e0 zmx@d2v?y^EGuzHP(aK8tK$7j|UQOrI4-dT3C2FA_rQ|f4Vv4FGU!^ z5uy53>)X1Wdqh3sh37EhCp8$Nc<5cE_Pq^B0GZj5HtcNO_dzRZ9kmexueO4cg!Y(J zO`G|oilmh7>w zSm29ND4yf24X09!*pbVJ`9S)^0;Po|TUNh(uW7C2HZt*U zWDDy`P5in%aCYWM2}%D+<-=5XW5Pid3pe+L5jQiUw2g#BcK1b#SY2~yr{&bsMA|F+ zudYsboTRms8Ucu`y`v2zswlZyxY{C}uLq5%eC&eLz++#rURMwyw{wW`nw1tDcRFuc z8$~&+O^nmvR5vaKVHE$?5B#sm3hWmH93YDx?8wOExqkp%3()NA`YAyZ4}odX>80AR z8jI}4it(*}%^R%Yz&lHyMID`X%?qOZn}nHiXiD839t|S%Z~*L2`N|h?g%|3JSLg9o zgbs>-1bV}VbDFhx;Y^x&H^Y|m)xE``ydJ5SDZPK0G;MGHV)cI3%}~)|NP_^<;v{#= zbJQt%WOQ#+OkX4Yc$F9-E(XHosWyoNpQUA@Mx(;=PV5yqYW_U9qtaKwcRm}hZBJL!2=LN5=6O4D}*eI z#G*)2>rk(T19RDTrvx;9LEtc$A^|%`#z{j1^VeQku|y=tlC$dtJ1pEdw_z_C9DJcc zsV$t?p}}@_oOS26vv5An(f2NHPoPVCla09V8Ta ze*Ag)r8|v7x`{MtVQ~rRK$pA_$MLbJ_zdkw>in1?Cg{L%zv*SRBXRdKhvY(1%hOzlt=1JF=wz>`NYmyFkk>Qg$1Sa~yJca~?vA5&?DCb@7~8Lmg{g%sM= z9qwQAjan*wnz2)elosT(*mfl$#lxGs{4V%eO*@0rgn5%#^g@ROalkvKHl$i|i=`*b zN2+E++r792M%7#vf{+70bc1dXvVu`LS#~1LQtmmxK%Wlyz~_Z^#mex5wyMm~TX(N?)4SNvOVg5Fe1g!V zkJO?vako`ok--6|TVcyUN-2c^;BW8i)e^)>I+=~zpG!kXDl|ke>$qaq@Aeh{J@Q< ze&dzlC*wYsrM@U7I1+x#r*tmHWo>}Ih10V-^WRw&UaU**7vI-?0M{vI$JRPKQ^ZkZ z0U;;<0JhRvnklGUZ)6J$OqWUsP1bh9;Z^qto*zA9q}7O+{f$poH{nD=nZ2q-dE^9a z08zHTn5QLZDo)>n2bRkjbo!%W&EiQ+aPC-BY|C z#u5>u0*etYu-==3|H2gezmE)b^p05b5{l0Kjy2{$&4v(@CA^=TIPA9f(qzYTA%9B~ z2P%H^x*hBL8F8qZZht^kwffVcQ^*ldzU7}na_^c(NzLAnN?zJRbtgJ@hKuL|DRPlQ z6hgrvK_#`-3q;$mhv*E^6x$zewZA&C6=ELY4uCG39pFkRIXs+jv+9+c-=O;qUYnH!g-a;b{2z5ARF`E~2Twh*6DgSRT z?W(NNer=-k@6F|tNC?BL1FV&i6nzPDANhCW;#nQy{{U_=DXK5acV;5#lw(mma=}~> zHCeo>$MqHo)kJl^NE6Db_(9Hly(2Dgg3kY^_xiv1=NJ)Civ0n-3R}YZs8x3?{&#*E7>?(A0Nah*&W*J*wL6mk1M!ITGoE_~+ltK5qUZ zu5xXD?kM|1(er^H!;Ue%8%gq>{Cw@95y()&n^w;j9W(F9;)F?COme~p(wEV1aWYNm z#l;-pMtG#4uJ-Wj8W}mGF~*{#hQ+}JZGYh(7R(toRex9*WPZnP%reZUQE%OzKq?G$ zcl9E%a9BUKOOMktE~OP@G~IdbuiQ<&4UQyd0MRMRZWVpXbk{G?FSIQTvK{TuPN4sC z$G~9=Y8C3mA#xy;s{;WOak6w12T+YZR>T(?NV$#q z3Y%D}Z{<=E-}{mDg!jE=KzHXOGKaQ(+)_XJTu;euZ~s_SkFv-1g_5soWPEe*rnF{g zKw5U<*5;UO@_IR#~uht67xAGUYYx|LPL9j2+HXKZc6?*dC(Y>-!{`i31sUcd1ENJNB?9&4KH-=LwoaBo!9%v zh#vgIig4ixNYEOV$*!FXBSB=JZ)jlmeo1#(JkJ6q7g_Hs?Qn6yyrW^JGfv(l-bXbl z_U_1(_`fo&5~K*mrRmM-SoMde<0*8_qDeKsqB5?0KXC{Bz0}ko9$vzUK|kri#JF-n}ID zF#c0UIs!YkD_uNpX^5Np)Jz|u9CYjv_Zr$HmSjeRQS9u=|MwH|zj#X9n5>GQ@J24k zqeS3Ixpsu$5H!AIZ{S22H&aOT(RbxSowNvt)oZ z>S(CUuW6#O`TNulgJI}v7PcY_e1wu&h1I9t`@mk>D47$l^6&UZID1Pp{F4>a?zhh2 zBo~*i3g+t3t~FzBxD%`=Z1t}7nX(|J4@Ea|#D3L(G>-Kr-W%#6A-dIGv6`21A;pm@ zHwm7<;$Kka9NzMC@LvUt*qjNgyWF+Lseg3W)R3jZ>|q)c1_(9_y5{z{HgeA=ZF>4R zNY(e6=Zq$QJs~M(E_t6%7G`OK#T*K}S+n#lNxPWhb%45-DAwf7>YsmQ6HEH~Knzk~_%@tXsCBhfP7-;chTbW#P~8_TAB}%|1I_l{fi|d{=`7`+ ziVhAk3YriZt51?`wyI6q+Gcj`bj3aPA;K8l%pB@@46)tzF$5V(heuat)tEXz+3mkq z&Hv9Wm;baANFtxQ7yc#o)y=d?|3#{R(g|CwqCv^i`kT=#1A}XVS7?}JzwQ$R)*8oi_XiEqU>-c=vULhF9_=LSApcA9qp5GL zpBtTK2RkM^$l~7;h-Njll|P&xD<4>Qm7h?4wNvZcQPS;)31-+ldU~!QIpV49bHsME zwxNNCbLRvQ@m-j`9WNOT`8YCbVtU2_i%jXC*7QK#q+qsR34_#=|g<&D`gF4Od3q^w?KkKdK_`KOyD6 zj}NuW>>yK!+B;C4&>FHTjbWjhozVUzpFZ*9Nx~c%bZl>>e)>`M>htMRqEH>0q7ZI6 zUBU*R#dE6aNk2^bVcY2BFnrM)s63a?c|>|L=)%FlfY}!LCNwmFOr{U7A6|2sg`*kqRUVLxbm_N5n+W$>59y5-S&eZp7TGTxK;S{!k%u$ChSnS72!N!o z(x6V^@~ET^F$P3nW$gK#T7T%`#hekT2m(70V(U$1xhOi9^eV8ZVOZmykd zN^L8@9pD+G!O&MJXqW6Iu!JJ_($256s7$RHHUIKO_{Q3PwYSvwyGIn~cQS$aCngHo zEy}F6YmrZ4es_BNWLK*vFi_;ueD%eE5c+xk-AdMf`epqOWQOPq3i$;gRGDHHkw6;W zIx@$~3G)vJj}Y01zUAgK&1%=*`3e}OKmRVvj)cb<`LYg3kv6NpXrZlb-VjPtOKc*# z(;mdQ{GESbu>~8QEZzbL9;p7cNyL>k!Ck${8 zDlT3yVI~r%$xMKV$$9B29ij^LJZA-jh>HFJU{Kg{B>q3vxNsVnIeaBTNf!1Ezn-T9 z`SU#9^9aZYe7PtPkrp57J05pUI0qJ6xd=5Wq$CWpBy9I`fwd5J|9{*5|K*^N5euJi z;wX~@@hRRfx)}_nQn7Gr{sV}WOu0F`D8A<&;k7)66EOQa{E)f;?nDw%4W%qgPPHY~ z-i|}87RQ5>!?cqkCO)M~{yG|9ox3dA!03X`0g7AINi5E96zD>}h8~g<10diK**fVzFP*?4*4J}! zDkeoXXeVb{*)L_3VzH6piQMy~dSYtf^9Lij3#ZrbV{*dO?YOo0NSS*2AKh}|^r|+y zPxI*XYb#*1`=$K%<}fJ+wL;$Fz=(^_ry;8%{Y}qzq08AQvJ(qyuZ1f+lD~WgqtF!3 zUmg`-js@8xwv;>@QlTtPjSHdh{4Ci=t_p#(5(>3EvRvS6-=4P<%TQT-IWXe;9M;l= zb9mn}_tOgL+6=wU_sOO$U_>}pSAC>0I8tg21LB-Py>+rTynMFcX`3%Wk-N-*NDS>E&T!;H%} zzEcr9n|T;ML;k2k7RV)U3}9lZ;d%Z5$pfUcO*x{yz`aCBkl|J~4bwhkvov)H=(5 zji_Lo(Xm)$6BSsbHL5cGvN^)u`v(247WfFMzsXuv7WIGj5&z4R>$T`Be)jNw_^^w> z+Cu#jhWsx1MS`}_FLGR&VX5hzvP3#tchd7)@OKetN59wgX-52C`yJ$moSyy4tKC9h zmyYY$D2H#e(Nz6!(1D73yvr(LOQrtyrbOzjQ_-yScZGkln}K>wCwhhIe)9!FDk$M)^_HvKmJ7=XpPQn-t0};bjq!PZa?I*wTc_=R8G3eh z=qa6Pin*cuaD2COftSBwN+0x<+9Z5!cu`R_w_mu8s~TbGORu+JBMZ`O8`Fc873m+Z_{~qjoqjY16bwhd(Pk82DdkuX_6q zxb{2P*y-<|_A584x|*g=x7?*OD`@Idtxtr@0lbNX!$Fya$+nl=G6t{NI2tBftLFPh zmYS|DJN~bG|d7X)#mKp%{lJ5BcOo zY!V|Ll&eiy+oLVB_Hdj9|K){O;{t`hx_;C4+4*wDh6!QQ zMU3h@_HlB)5we-Hdc*trOH*dNt=anZ{Iu9_mlK$jGO`_j&f6r?Ns14+|K9`vP1SRs diff --git a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/images/waterSPCE+Na+Cl_t=100ps.jpg b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/images/waterSPCE+Na+Cl_t=100ps.jpg index 220a717271c2e5fd6a8e9eb6ec47cd3851062339..af70c239978f5205d2ed874be9e3569adb8f6726 100644 GIT binary patch literal 38522 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 Clbc!q literal 144377 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π= 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

l^S==Le_#a<4CK+}-y(%f2bH3W>>@b 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 diff --git a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/ions.lt b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/ions.lt index 8d36341253..ff52a7db97 100644 --- a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/ions.lt +++ b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/ions.lt @@ -1,5 +1,57 @@ # We define two molecule classes to represent Na+ and Cl- ions, respectively. -# This may seem like overkill since they both only consist of one atom each. +# They both contain only one atom. + +# In moltemplate each molecule type is stored in a file whose format mimics the +# format of a LAMMPS "data" file, with "Atoms", "Bonds", and "Angles" sections. +# Once defined, these molecules may be copied and moved to build larger systems. + + +NaIon { + + # ---- Definition of "NaIon" ---- + + # AtomID MolID AtomType charge X Y Z + write("Data Atoms") { + $atom:Na $mol @atom:Na 1.0 0.00000 0.00000 0.000000 + } + + write_once("Data Masses") { + @atom:Na 22.9898 + } + + write_once("In Settings") { + pair_coeff @atom:Na @atom:Na 0.3526418 1.079769246386 + } + # (explanation: http://lammps.sandia.gov/doc/pair_charmm.html) + +} # NaIon + + + + +ClIon { + + # ---- Definition of "ClIon" ---- + + # AtomID MolID AtomType charge X Y Z + write("Data Atoms") { + $atom:Cl $mol @atom:Cl -1.0 0.00000 0.00000 0.000000 + } + + write_once("Data Masses") { + @atom:Cl 35.453 + } + + write_once("In Settings") { + pair_coeff @atom:Cl @atom:Cl 0.0127850 2.711 + } + # (explanation: http://lammps.sandia.gov/doc/pair_charmm.html) + +} # ClIon + + + + # Note: Monovalent ion parameters for Ewald and SPC/E water @@ -7,61 +59,10 @@ # These Lennard Jones parameters match the parameters for ions # in SPC/E water in the "frcmod.ionsjc_spce" file distributed # with Amber (the 2010 version). - - -NaIon { - - # The epsilong & sigma parameters from that paper were 0.3526418 & 1.212. - # However sigma must be divided by 2^(1/6), because they use the alternate - # Lennard-Jones convention: U(r)=epsilon*((s/r)^12 - 2*(s/r)^6), and - # pair_style lj/charmm/coul/long uses U(r)=4*epsilon*((s/r)^12 - (s/r)^6) - # (Note: This change does not effect the epsilon parameter.) - - write_once("In Settings") { - pair_coeff @atom:Na @atom:Na lj/charmm/coul/long 0.3526418 1.079769246386 - } - - write_once("Data Masses") { - @atom:Na 22.9898 - } - - # assumes "full" atom style - write("Data Atoms") { - $atom:Na $mol @atom:Na 1.0 0.00000 0.00000 0.000000 - } -} # NaIon - - -ClIon { - write_once("In Settings") { - pair_coeff @atom:Cl @atom:Cl lj/charmm/coul/long 0.0127850 2.711 - } - - write_once("Data Masses") { - @atom:Cl 35.453 - } - - # assumes "full" atom style - write("Data Atoms") { - $atom:Cl $mol @atom:Cl -1.0 0.00000 0.00000 0.000000 - } -} # ClIon - - -write_once("In Init") { - # -- Default styles for ions -- - units real - atom_style full - # (Hybrid force fields were not necessary but are used for portability.) - pair_style hybrid lj/charmm/coul/long 9.0 10.0 10.0 - kspace_style pppm 0.0001 - pair_modify mix arithmetic -} - -# Optional: Define a group named "ions" consisting of either Na or Cl ions. -write_once("In Settings") { - group ionNa type @atom:NaIon/Na @atom:NaIon/Na - group ionCl type @atom:ClIon/Cl @atom:ClIon/Cl - group ions type @atom:NaIon/Na @atom:ClIon/Cl -} +# +# The epsilong & sigma parameters from that paper were 0.3526418 & 1.212. +# However sigma must be divided by 2^(1/6), because they use the alternate +# Lennard-Jones convention: U(r)=epsilon*((s/r)^12 - 2*(s/r)^6), and +# pair_style lj/charmm/coul/long uses U(r)=4*epsilon*((s/r)^12 - (s/r)^6) +# (Note: This change does not effect the epsilon parameter.) diff --git a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/spce.lt b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/spce.lt index 019911c19b..db5e7df3b3 100644 --- a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/spce.lt +++ b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/spce.lt @@ -1,51 +1,113 @@ +# In moltemplate each molecule type is stored in a file whose format mimics the +# format of a LAMMPS "data" file, with "Atoms", "Bonds", and "Angles" sections. +# Once defined, these molecules can be copied and moved to build larger systems. +# +# "SPCE" ("extended simple point charge") is one of several popular water models +# (See Berendsen H.J.C et al., J.Phys.Chem. Vol91 pp.6269-6271,1987 for details) +# # file "spce.lt" # # H1 H2 # \ / # O + SPCE { - write_once("In Init") { - # -- Default styles (for solo "SPCE" water) -- - units real - atom_style full - # (Hybrid force fields were not necessary but are used for portability.) - pair_style hybrid lj/charmm/coul/long 9.0 10.0 10.0 - bond_style hybrid harmonic - angle_style hybrid harmonic - kspace_style pppm 0.0001 - pair_modify mix arithmetic - } + # ---- Definition of the "SPCE" (water molecule type) ---- + + # The "Data Atoms" section is a list of atom attributes (type, charge, x,y,z) + # AtomID MoleculeID AtomType Charge X Y Z write("Data Atoms") { - $atom:O $mol:. @atom:O -0.8476 0.0000000 0.00000 0.000000 - $atom:H1 $mol:. @atom:H 0.4238 0.8164904 0.00000 0.5773590 - $atom:H2 $mol:. @atom:H 0.4238 -0.8164904 0.00000 0.5773590 + $atom:o $mol @atom:O -0.8476 0.0000000 0.00000 0.000000 + $atom:h1 $mol @atom:H 0.4238 0.8164904 0.00000 0.5773590 + $atom:h2 $mol @atom:H 0.4238 -0.8164904 0.00000 0.5773590 } + # Note: LAMMPS expects an integer in the 2nd column (the Molecule-ID number). + # If we put "$mol" there, moltemplate will generate this integer for you + + # A list of the bonds in the molecule: + # BondID BondType AtomID1 AtomID2 + + write("Data Bonds") { + $bond:OH1 @bond:OH $atom:o $atom:h1 + $bond:OH2 @bond:OH $atom:o $atom:h2 + } + + # A list of the angles in the molecule: + # AngleID AngleType AtomID1 AtomID2 AtomID3 + + write("Data Angles") { + $angle:HOH @angle:HOH $atom:h1 $atom:o $atom:h2 + } + + # The mass of each atom type: write_once("Data Masses") { @atom:O 15.9994 @atom:H 1.008 } - write("Data Bonds") { - $bond:OH1 @bond:OH $atom:O $atom:H1 - $bond:OH2 @bond:OH $atom:O $atom:H2 - } - write("Data Angles") { - $angle:HOH @angle:HOH $atom:H1 $atom:O $atom:H2 - } + # ---- Where to put force field parameters? ---- + # Moltemplate allows you to specify force-field parameters anywhere you want. + # Sometimes it is convenient to nest them within a molecule's definition. + # For more complicated simulations, it's convenient to define a "ForceField" + # object containing force field parameters shared by many different types of + # molecules. (Since this is a simple example, there is no need to do that.) + + # The "In Settings" section contains LAMMPS commands which typically define + # force-field parameters (eg "pair_coeff") and constraints (eg "fix shake") write_once("In Settings") { - bond_coeff @bond:OH harmonic 1000.0 1.0 - angle_coeff @angle:HOH harmonic 1000.0 109.47 - pair_coeff @atom:O @atom:O lj/charmm/coul/long 0.1553 3.166 - pair_coeff @atom:H @atom:H lj/charmm/coul/long 0.0 2.058 - group spce type @atom:O @atom:H - fix fShakeSPCE spce shake 0.0001 10 100 b @bond:OH a @angle:HOH - # (Remember to "unfix" fShakeSPCE during minimization.) + bond_coeff @bond:OH 1000.0 1.0 + # explanation: http://lammps.sandia.gov/doc/bond_harmonic.html + + angle_coeff @angle:HOH 1000.0 109.47 + # explanation: http://lammps.sandia.gov/doc/angle_harmonic.html + + pair_coeff @atom:O @atom:O 0.1553 3.166 + pair_coeff @atom:H @atom:H 0.0 2.058 + # explanation: http://lammps.sandia.gov/doc/pair_charmm.html + + # OPTIONAL: We want the water molecules to behave like rigid objects, so + # we apply the "SHAKE" constraint to the group of atoms in water molecules. + # (SHAKE is used to make bonds and angles rigid.) + + group gSPCE type @atom:O @atom:H + # explanation: http://lammps.sandia.gov/doc/group.html + + fix fShakeSPCE gSPCE shake 0.0001 10 100 b @bond:OH a @angle:HOH + # explanation: http://lammps.sandia.gov/doc/fix_shake.html + # (Remember to "unfix" fSHAKE during minimization.) + + } + + # LAMMPS requires that some commands must be issued in a certain order. + # (IE. You must inform LAMMPS the kind of simulation you wish to run + # before supplying LAMMPS with numeric parameters for that simulation.) + # The "In Init" section is where you put commands which must be run before + # all other commands in the simulation (such as the commands in "In Settings") + + write_once("In Init") { + + units real + # explanation: http://lammps.sandia.gov/doc/units.html + + # Specify the attributes of the particles in our system (eg. "full") + atom_style full + # explanation: http://lammps.sandia.gov/doc/atom_style.html + + # Specify the kinds of formulas we want to use to calculate + # the forces in our system (ie. force-field "styles") + bond_style harmonic + angle_style harmonic + pair_style lj/charmm/coul/long 9.0 10.0 10.0 + pair_modify mix arithmetic + # explanation: http://lammps.sandia.gov/doc/pair_modify.html + kspace_style pppm 0.0001 + # explanation: http://lammps.sandia.gov/doc/kspace_style.html } } # end of definition of "SPCE" water molecule type diff --git a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/system.lt b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/system.lt index af38795022..284d042d73 100644 --- a/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/system.lt +++ b/tools/moltemplate/examples/all_atom/force_field_explicit_parameters/waterSPCE+Na+Cl/moltemplate_files/system.lt @@ -1,6 +1,4 @@ -import "spce.lt" # <- This defines the SPCE water molecule. This file is - # located in the "force_fields" subdirectory - # distributed with moltemplate +import "spce.lt" # <- This defines the SPCE water molecule. import "ions.lt" # <- This defines the ions "NaIon" and "ClIon". @@ -16,8 +14,8 @@ write_once("Data Boundary") { # spacing 3.45 Angstroms. (The pressure must be equilibrated later.) wat = new SPCE [10].move(0.00, 0.00, 3.45) - [10].move(0.00, 3.45, 0.00) - [10].move(3.45, 0.00, 0.00) + [10].move(0.00, 3.45, 0.01) + [10].move(3.45, 0.01, 0.01) # We now create a 2x2x2 lattice of Na+ and Cl- ions: @@ -30,14 +28,16 @@ cl = new ClIon [2].move(0,0,17.25) [2].move(0,17.25,0) [2].move(17.25,0,0) -na[*][*][*].move(5.175,5.175,5.6) -cl[*][*][*].move(12.075,12.075,12.5) +na[*][*][*].move(5,5,5) +cl[*][*][*].move(12,12,12) -# (The (5.175,5.175,5.175) and (12.075,12.075,12.075) translational shifts +# (The (5,5,5) and (12,12,12) translational shifts # prevent the Na and Cl ions from overlapping # with the water molecules or each other.) + + # Comment: Fortunately the ions and the water in this example share the # same force-field styles (so their was no need to use "hybrid" styles). # If this were not the case, you might need to add something like this. diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README.txt b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README.txt new file mode 100644 index 0000000000..b2996dab29 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README.txt @@ -0,0 +1,11 @@ +This is an example of all-atom methanol immersed in coarse grained ELBA water. +It was provided by Oscar Matus Rivas at McGill University. + + +References: +1. Orsi, Mario, Wei Ding, and Michail Palaiokostas. "Direct mixing of atomistic solutes and coarse-grained water." Journal of chemical theory and computation 10.10 (2014): 4684-4693. + +2. Orsi, Mario. "Comparative assessment of the ELBA coarse-grained model for water." Molecular Physics 112.11 (2014): 1566-1576. + +3. ELBA coarse-grained water model tutorial: +https://github.com/orsim/elba-lammps/tree/master/examples/water-bulk diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README_run.sh b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README_run.sh new file mode 100644 index 0000000000..91e79124e1 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README_run.sh @@ -0,0 +1,20 @@ +# --- Running LAMMPS --- +# +# The file "run.in.npt" is a LAMMPS +# input script which link to the input scripts and data files +# you hopefully have created earlier with moltemplate.sh: +# system.in.init, system.in.settings, system.data +# If not, carry out the instructions in "README_setup.sh". +# +# -- Instructions: -- +# If "lmp_mpi" is the name of the command you use to invoke lammps, +# then you would run lammps on these files this way: + +lmp_mpi -i run.in.npt # simulation at constant pressure + +# (Note: The "lmp_mpi" program is also frequently called "lmp_ubuntu", +# and has many other names depending upon how it was compiled.) + +# If you have compiled the MPI version of lammps, you can run lammps in parallel +#mpirun -np 4 lmp_mpi -i run.in.npt +# (assuming you have 4 processors available) diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README_setup.sh b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README_setup.sh new file mode 100755 index 0000000000..20d5eac231 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/README_setup.sh @@ -0,0 +1,28 @@ + +# Create the coordinates of the atoms using PACKMOL +cd packmol_files + + packmol < input.packmol + mv -f system.xyz ../moltemplate_files/ + +cd .. + +# Create LAMMPS input files this way: +cd moltemplate_files + + # run moltemplate + moltemplate.sh -atomstyle "hybrid sphere dipole molecular" \ + -xyz system.xyz system.lt + + + # This will generate various files with names ending in *.in* and *.data. + # Move them to the directory where you plan to run LAMMPS (in this case "../") + mv -f system.data system.in* ../ + + # Optional: + # The "./output_ttree/" directory is full of temporary files generated by + # moltemplate. They can be useful for debugging, but are usually thrown away. + rm -rf output_ttree/ system.xyz + +cd ../ + diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/images/ELBAwater+methanol_rendered_with_ovito.jpg b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/images/ELBAwater+methanol_rendered_with_ovito.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88773055a10ba0a6ec73085d6d49ffb2d14a50db GIT binary patch literal 22841 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 P(Ek9lVn~d7hJXLr7W7@B literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/elba.lt b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/elba.lt new file mode 100644 index 0000000000..e5a35fbfd9 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/elba.lt @@ -0,0 +1,39 @@ + +ElbaFF { + + write_once("Data Masses") { + @atom:W 18.0153 # Water + } + + write_once("In Settings") { + pair_coeff @atom:W @atom:W lj/sf/dipole/sf 0.55 3.05 + } + + # select the LAMMPS force field styles and other settings we will need + write_once("In Init") { + units real + atom_style hybrid sphere dipole molecular + bond_style hybrid harmonic + angle_style hybrid harmonic + dihedral_style hybrid harmonic + pair_style hybrid lj/sf/dipole/sf 12.0 lj/charmm/coul/long 11.0 12.0 + kspace_style pppm/cg 1.0e-5 + pair_modify mix arithmetic + special_bonds amber + } + +} # end of definition of "ElbaFF" + + +ElbaWater inherits ElbaFF { + + # atom-ID atom-Type x y z diameter density q mux muy muz molecule-ID + write("Data Atoms") { + $atom:id1 @atom:W 0.0 0.0 0.0 4.080749 0.5063179 0.0 0.541 0.0 0.0 $mol:. + } + + write_once("In Settings") { + group gElbaWater type @atom:W + } + +} # end of definition of "ElbaWater" diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/methanol.lt b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/methanol.lt new file mode 100644 index 0000000000..1d556ab13b --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/methanol.lt @@ -0,0 +1,84 @@ +# This version of the methanol molecule uses the GAFF force +# field. (BCC) Charges were assigned using AmberTools + +Methanol { + + write_once("In Settings") { + pair_coeff @atom:type1 @atom:type1 lj/charmm/coul/long 0.2104000002486992 3.066473387458142 0.2104000002486992 3.066473387458142 + pair_coeff @atom:type2 @atom:type2 lj/charmm/coul/long 0.10939999991572773 3.399669508450741 0.10939999991572773 3.399669508450741 + pair_coeff @atom:type3 @atom:type3 lj/charmm/coul/long 0.01570000009846142 2.4713530426421655 0.01570000009846142 2.4713530426421655 + pair_coeff @atom:type4 @atom:type4 lj/charmm/coul/long 0.0 0.0 0.0 0.0 + } + + write_once("In Settings") { + bond_coeff @bond:type1 harmonic 316.7 1.4233 + bond_coeff @bond:type2 harmonic 371.4 0.973 + bond_coeff @bond:type3 harmonic 330.6 1.0969 + } + + write_once("In Settings") { + angle_coeff @angle:type1 harmonic 50.93 110.260047369346 + angle_coeff @angle:type2 harmonic 47.38 107.26004608361897 + angle_coeff @angle:type3 harmonic 39.24 108.46004659790978 + } + + write_once("In Settings") { + dihedral_coeff @dihedral:type1 harmonic 0.166666667 1 3 + } + + + ### DATA sections + + + write_once("Data Masses") { + @atom:type1 16.0 + @atom:type2 12.01 + @atom:type3 1.008 + @atom:type4 1.008 + } + + + # NOTE: This molecule uses atom_style hybrid sphere dipole molecular + # (This is the same atom_style used by ELBA.) Hence the extra + # columns for "diam", "mux", "muy", "muz" are not relevant + # for this molecule and can be ignored. + + write("Data Atoms") { + # atom-ID atom-Type x y z diam dens q mux muy muz molecule-ID + $atom:id1 @atom:type1 0.708 0.0 0.0 0.0 16.0 -0.598800 0.0 0.0 0.0 $mol:id0 + $atom:id2 @atom:type2 -0.708 0.0 0.0 0.0 12.01 0.116700 0.0 0.0 0.0 $mol:id0 + $atom:id3 @atom:type3 -1.073 -0.769 0.685 0.0 1.008 0.028700 0.0 0.0 0.0 $mol:id0 + $atom:id4 @atom:type3 -1.073 -0.195 -1.011 0.0 1.008 0.028700 0.0 0.0 0.0 $mol:id0 + $atom:id5 @atom:type3 -1.063 0.979 0.331 0.0 1.008 0.028700 0.0 0.0 0.0 $mol:id0 + $atom:id6 @atom:type4 0.994 -0.88 -0.298 0.0 1.008 0.396000 0.0 0.0 0.0 $mol:id0 + } + + write("Data Bonds") { + $bond:id1 @bond:type2 $atom:id1 $atom:id6 + $bond:id2 @bond:type3 $atom:id2 $atom:id3 + $bond:id3 @bond:type3 $atom:id2 $atom:id4 + $bond:id4 @bond:type3 $atom:id2 $atom:id5 + $bond:id5 @bond:type1 $atom:id1 $atom:id2 + } + + write("Data Angles") { + $angle:id1 @angle:type1 $atom:id1 $atom:id2 $atom:id3 + $angle:id2 @angle:type1 $atom:id1 $atom:id2 $atom:id4 + $angle:id3 @angle:type1 $atom:id1 $atom:id2 $atom:id5 + $angle:id4 @angle:type2 $atom:id2 $atom:id1 $atom:id6 + $angle:id5 @angle:type3 $atom:id3 $atom:id2 $atom:id4 + $angle:id6 @angle:type3 $atom:id3 $atom:id2 $atom:id5 + $angle:id7 @angle:type3 $atom:id4 $atom:id2 $atom:id5 + } + + write("Data Dihedrals") { + $dihedral:id1 @dihedral:type1 $atom:id6 $atom:id1 $atom:id2 $atom:id3 + $dihedral:id2 @dihedral:type1 $atom:id6 $atom:id1 $atom:id2 $atom:id4 + $dihedral:id3 @dihedral:type1 $atom:id6 $atom:id1 $atom:id2 $atom:id5 + } + + write_once("In Settings") { + group gMethanol type @atom:type1 @atom:type2 @atom:type3 @atom:type4 + } + +} # end of "Methanol" type definition diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/system.lt b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/system.lt new file mode 100644 index 0000000000..1a077a92f1 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/moltemplate_files/system.lt @@ -0,0 +1,29 @@ +import "methanol.lt" + +import "elba.lt" + +write_once("Data Boundary") { + -15.5 15.5 xlo xhi + -15.5 15.5 ylo yhi + -15.5 15.5 zlo zhi +} + +solute = new Methanol [1] + +solvent = new ElbaWater [1000] + +# Lorentz-Berthelot mixing +write_once("In Settings") { + pair_coeff @atom:Methanol/type1 @atom:Methanol/type2 lj/charmm/coul/long 0.151716 3.233071 0.151716 3.233071 + pair_coeff @atom:Methanol/type1 @atom:Methanol/type3 lj/charmm/coul/long 0.057474 2.768913 0.057474 2.768913 + pair_coeff @atom:Methanol/type1 @atom:Methanol/type4 lj/charmm/coul/long 0.000000 1.533237 0.000000 1.533237 + pair_coeff @atom:Methanol/type1 @atom:ElbaFF/W lj/sf/dipole/sf 0.340176 3.058237 + pair_coeff @atom:Methanol/type2 @atom:Methanol/type3 lj/charmm/coul/long 0.041444 2.935511 0.041444 2.935511 + pair_coeff @atom:Methanol/type2 @atom:Methanol/type4 lj/charmm/coul/long 0.000000 1.699835 0.000000 1.699835 + pair_coeff @atom:Methanol/type2 @atom:ElbaFF/W lj/sf/dipole/sf 0.245296 3.224835 + pair_coeff @atom:Methanol/type3 @atom:Methanol/type4 lj/charmm/coul/long 0.000000 1.235677 0.000000 1.235677 + pair_coeff @atom:Methanol/type3 @atom:ElbaFF/W lj/sf/dipole/sf 0.092925 2.760677 + pair_coeff @atom:Methanol/type4 @atom:ElbaFF/W lj/sf/dipole/sf 0.000000 1.525000 +} + +} diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/README.txt b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/README.txt new file mode 100644 index 0000000000..3d310d44d3 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/README.txt @@ -0,0 +1,12 @@ +Packmol is a program that generates non-overlapping atomic coordinates for +mixtures of molecules. + +Usage: + + packmol < input.packmol + +Ouput: + + system.xyz + +(a file containing the coordinates of all of the molecules packed together.) diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/coord.xyz b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/coord.xyz new file mode 100644 index 0000000000..fc495c0564 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/coord.xyz @@ -0,0 +1,1008 @@ + 1006 + Built with Packmol + O 1.077217 0.144250 0.048817 + C -0.338583 0.144250 0.048817 + H -0.703883 -0.624750 0.734017 + H -0.703783 -0.050450 -0.962483 + H -0.693883 1.122850 0.380017 + H 1.362917 -0.736150 -0.249183 + OW -1.412297 -7.446504 10.904602 + OW 4.452292 7.235571 -6.250955 + OW -6.020558 -4.280954 1.868432 + OW -5.179618 11.632347 -13.999700 + OW 3.301355 8.558586 5.180801 + OW -12.174570 -4.025488 11.826522 + OW -12.212121 7.659684 7.004107 + OW 12.507397 4.123302 -9.139812 + OW -4.390714 -13.339157 -13.935723 + OW -2.347127 -13.464377 -11.186378 + OW -0.390430 -4.494023 -0.873365 + OW 12.653213 11.245608 -10.879975 + OW 10.928733 -0.256067 -13.979839 + OW 3.113899 10.464514 7.381244 + OW 6.444145 7.878126 9.347764 + OW 13.995822 10.713223 -2.070525 + OW -5.824617 -5.506497 5.519803 + OW 13.421557 7.738992 -11.788954 + OW 6.168350 10.067253 -13.538591 + OW -0.045394 -7.883676 -11.050038 + OW -3.936470 2.908840 -9.461076 + OW -4.549773 13.172554 -11.300363 + OW -5.580400 2.956314 4.820040 + OW 11.434233 -11.982027 13.827720 + OW 7.091228 7.641158 6.689051 + OW -1.871254 8.389547 -14.001775 + OW 2.119354 4.690267 5.686549 + OW -3.541398 -12.042127 -0.197612 + OW 6.900566 8.166603 -0.762935 + OW -2.817436 -12.543902 -4.403389 + OW 11.377874 11.322904 6.601112 + OW -12.836109 -1.875201 8.127625 + OW 5.672028 12.401154 -8.459143 + OW 7.430035 3.240706 -1.450096 + OW -10.038995 -2.292621 -7.235657 + OW -0.218358 -14.000125 -13.132499 + OW 6.332077 8.585353 -11.008466 + OW 10.567812 12.324117 12.601731 + OW 2.132468 -10.209125 -5.560252 + OW 6.914302 3.158258 -5.462909 + OW 2.241182 -10.532752 2.836470 + OW 9.635500 9.933016 13.781636 + OW -4.708872 2.474080 13.999972 + OW 7.469570 -2.650997 -3.855276 + OW -1.785179 -2.947809 -11.955006 + OW -3.182880 7.924869 5.582130 + OW -10.963632 -6.890214 1.596607 + OW -7.601594 -13.998048 11.439208 + OW 13.867823 1.437609 9.958940 + OW 7.010889 -1.261509 6.040167 + OW 3.088922 0.408610 -4.511697 + OW 7.180459 4.012658 13.073386 + OW 13.998578 -8.166874 -10.383155 + OW -6.177568 -7.960618 6.710820 + OW -0.448222 10.484860 9.868052 + OW 5.978025 11.555205 8.681871 + OW 0.540473 9.289780 -8.581696 + OW -1.754998 -13.998344 4.024525 + OW -3.574741 2.151926 11.515749 + OW -13.988996 3.004087 5.767812 + OW -13.223941 9.959500 10.674000 + OW -7.944482 -12.350002 8.700562 + OW -3.825796 6.104725 -10.176144 + OW -8.249098 -11.727255 -3.894413 + OW -3.839773 10.822793 -2.561436 + OW -0.022941 -1.585678 -6.872414 + OW 10.753131 1.256594 1.994780 + OW -0.641529 -4.772826 11.794099 + OW 10.903997 -13.999524 1.480173 + OW -6.220238 -7.278258 3.458533 + OW 9.223878 -13.995048 6.688774 + OW -13.999693 5.714904 6.228812 + OW -7.732501 1.681527 3.562151 + OW -10.154518 -3.876261 -2.168790 + OW 10.113875 6.637798 -3.816278 + OW 2.109401 2.517593 13.340956 + OW 0.853589 2.721590 7.292615 + OW -10.758243 1.342025 9.200936 + OW 13.998782 1.450435 -0.982643 + OW 0.749056 5.408736 3.259202 + OW -13.945043 -4.717521 -13.218608 + OW -9.974815 4.688036 -8.922533 + OW 2.648123 1.662568 -7.792379 + OW -4.060440 -2.171149 2.430150 + OW 6.659202 -11.565822 2.502042 + OW 10.613702 12.363202 4.185430 + OW 9.743672 10.512624 -0.600977 + OW 1.752790 -4.833507 4.027928 + OW -4.885400 8.260226 -2.754463 + OW 8.769009 1.053307 5.248508 + OW 7.771876 11.964858 12.793976 + OW -0.354292 11.533225 -6.820807 + OW 12.431203 -11.294337 6.476258 + OW 11.787631 2.944158 11.056967 + OW 4.725230 -11.753600 7.739280 + OW 13.984207 -4.047093 -11.497797 + OW -4.189502 -5.938038 -7.171294 + OW 9.154839 4.748747 -5.568048 + OW 13.999368 -6.874417 12.857476 + OW 5.764184 -14.000737 8.943560 + OW -11.679127 7.841006 9.853676 + OW 5.855922 -7.323640 8.144783 + OW -0.856467 -13.999217 -8.938668 + OW -1.510832 -6.867279 -8.407693 + OW 13.057644 13.993825 4.399118 + OW 12.245484 13.999382 7.058515 + OW 12.491779 -1.199806 -8.167213 + OW 12.227457 8.116886 -4.773668 + OW -7.295620 -6.141930 10.603053 + OW -8.339049 9.466253 -7.439146 + OW -13.994744 6.725998 8.878174 + OW 10.731737 -11.109604 4.322355 + OW 9.315062 -13.996962 10.025622 + OW -5.203478 -11.084016 -9.996006 + OW -11.234152 7.158703 -10.562518 + OW 7.281894 -2.368904 -11.196682 + OW 8.243298 -11.965867 5.113684 + OW 3.631637 -11.535788 -7.444179 + OW -6.915922 6.611712 -7.091841 + OW -4.424692 -3.527799 6.816775 + OW -11.447203 -9.097963 3.158769 + OW -13.999027 -9.212939 12.350423 + OW -4.514890 13.342819 -0.340089 + OW 2.190372 8.072372 2.375695 + OW 9.737678 -9.483691 13.998301 + OW -4.918463 -9.944898 9.666069 + OW -8.534034 0.453217 7.268876 + OW 9.386532 -9.668250 10.400223 + OW -2.933913 -12.888900 12.505280 + OW 13.259195 11.339162 10.784140 + OW 2.788170 -0.644772 10.227169 + OW -7.977370 6.527205 -13.581637 + OW 11.391197 9.039117 1.030315 + OW -4.128507 -0.438343 12.247371 + OW -13.998899 3.852881 8.382207 + OW 14.001469 3.211643 -3.879073 + OW 0.097779 -9.682666 -0.976412 + OW -13.673484 10.846509 7.347071 + OW -2.578592 10.316648 4.364568 + OW 2.940164 -11.184188 -10.912565 + OW 7.544534 4.210972 -13.516515 + OW 3.331310 4.845755 -7.023535 + OW -2.626270 13.091969 9.430091 + OW -5.547137 4.193185 2.262664 + OW 6.297253 8.933203 2.637659 + OW -10.175494 13.280225 -9.273882 + OW -5.471125 0.721414 8.397682 + OW 1.362202 -13.548682 5.618704 + OW -4.216989 -8.408379 12.025899 + OW 5.673222 -9.356105 -7.305151 + OW -11.445517 9.727248 -2.571209 + OW -8.923855 -3.960099 13.789292 + OW 1.750453 3.959747 -9.176729 + OW -7.421556 4.939059 10.965253 + OW -13.111876 2.398081 -4.858004 + OW 13.986538 -1.321944 -1.451402 + OW 11.422209 3.611884 -12.713313 + OW 13.245256 -1.976472 6.240235 + OW -2.612505 6.672378 -1.199396 + OW -5.181385 7.223505 13.988374 + OW -12.624491 -6.402610 8.721605 + OW -7.748323 -6.640943 13.871040 + OW 2.788937 -5.315154 -5.691747 + OW -1.162858 -0.432298 6.548228 + OW -7.913885 8.827317 6.233112 + OW -1.829061 -9.098764 -13.270620 + OW -9.838708 6.299550 6.727407 + OW 12.848637 7.461232 14.017662 + OW 8.856550 13.999906 11.255213 + OW -5.577019 9.230791 8.263193 + OW 3.803810 7.616403 -11.489291 + OW -13.999956 6.572492 -9.919341 + OW 12.408645 -5.947925 -10.053077 + OW 12.672684 -1.543440 14.000328 + OW 6.533050 -5.583635 1.207402 + OW -2.245571 -0.007169 -4.462525 + OW -10.218649 -14.000014 -11.838728 + OW 5.629352 13.855997 13.262446 + OW 8.618333 3.797534 -10.608144 + OW 1.321873 7.050211 -10.449396 + OW -1.115033 -4.159256 -8.678230 + OW 13.799188 -12.513410 9.665107 + OW -5.326181 4.810458 12.705229 + OW -4.340419 13.999980 2.424028 + OW -11.256367 -0.534026 -3.327284 + OW -4.530743 2.874367 -13.999325 + OW 13.130184 7.765239 2.736537 + OW 10.366302 5.977889 -11.190727 + OW 10.168638 -8.851373 0.706507 + OW -13.666625 -0.655563 2.401092 + OW 3.879084 -1.856439 -7.092096 + OW -9.119119 -5.011090 -5.271355 + OW 8.415029 11.604764 6.396246 + OW -0.451678 3.328070 13.981576 + OW 3.442502 9.130394 -9.222214 + OW -8.013258 13.999565 -2.668359 + OW 8.463015 -4.530737 -9.765885 + OW -9.343054 4.945912 -1.485716 + OW 3.940330 -11.672737 -13.440730 + OW 4.346646 9.425128 -4.544991 + OW 14.033112 9.507095 7.223190 + OW 7.543555 -4.876632 9.650438 + OW -2.145262 -6.774820 -0.280797 + OW -3.100253 8.285345 8.971320 + OW 6.812382 -5.155840 12.317210 + OW -4.437546 -11.276493 4.122005 + OW 10.565764 -11.204445 -8.616600 + OW 1.442934 -6.390936 -8.523039 + OW 3.733882 -7.590252 -4.469741 + OW 2.621669 -14.002137 -8.096299 + OW 3.959591 13.997979 -4.298308 + OW -7.313139 10.928211 1.275702 + OW 2.535654 13.998754 11.995542 + OW -9.934580 8.413097 -13.999971 + OW 1.706607 -13.996453 -1.092599 + OW 0.186388 -11.606526 -11.180328 + OW 9.607674 1.181242 -11.490683 + OW 9.906641 -13.931822 4.041574 + OW 8.911294 8.747960 -2.532962 + OW -7.313832 11.159101 9.390558 + OW -10.420449 2.323969 -11.066723 + OW -12.006406 14.007524 8.679061 + OW -5.169245 -6.552996 -12.736199 + OW 10.027729 -1.057061 -9.952256 + OW -12.130175 -10.841909 -12.033855 + OW -9.628313 -14.006552 -4.574101 + OW 13.994193 13.370525 9.085123 + OW -6.802439 -9.905243 4.073122 + OW 3.801877 3.990990 -13.081773 + OW 3.842253 -9.453334 0.742035 + OW -13.783031 -12.879476 11.686527 + OW 3.195350 5.938460 0.962798 + OW -1.419070 7.345954 -11.497701 + OW 8.691791 9.258281 8.636080 + OW -7.221059 -13.996596 4.211835 + OW -13.797435 -1.150366 -11.417530 + OW 13.995860 0.138395 1.429291 + OW 13.815571 4.646939 -11.499112 + OW -8.986132 -11.253687 11.022012 + OW 3.980604 -9.040328 7.080681 + OW 1.695279 6.948382 -7.707740 + OW -4.548895 0.137015 -6.161126 + OW 6.610386 -1.597662 -7.025663 + OW 8.065955 -0.547949 -13.965006 + OW 1.856936 13.999997 -11.354862 + OW -9.076530 0.307076 -5.175759 + OW -0.195395 0.261871 -12.411182 + OW -9.170766 9.684858 13.998822 + OW -4.877627 4.958696 -7.888693 + OW -8.519894 -0.910454 4.241378 + OW 13.944251 9.795139 13.074825 + OW -3.049489 -11.274120 -6.833167 + OW 12.161497 -0.640767 8.373863 + OW -2.738095 1.482430 -11.483094 + OW -0.896126 6.958412 -8.820813 + OW -0.154731 -12.351502 -5.880376 + OW -11.600713 0.416115 -13.516590 + OW -1.458410 13.659185 2.150026 + OW 13.996113 3.081073 12.646458 + OW -12.883715 4.189581 3.545183 + OW 9.470726 13.982481 -0.335819 + OW 7.920798 9.435057 4.796553 + OW -8.142885 -4.059150 -9.145357 + OW -9.332404 -2.391726 7.652300 + OW -8.059308 4.232140 8.323482 + OW 4.639449 -5.222827 -2.689615 + OW 12.603718 5.508063 -2.296106 + OW -10.226569 4.990828 1.685129 + OW -8.708988 9.869547 3.798772 + OW -8.325878 13.966240 -6.575790 + OW -0.191438 7.590351 9.875127 + OW 12.320815 -13.994606 -4.006220 + OW 9.067096 6.311913 -1.279265 + OW -2.554779 6.070816 10.508980 + OW -5.615033 -11.627079 -1.954973 + OW 9.166997 14.049093 7.381784 + OW 13.994384 3.190689 7.655818 + OW 0.840860 -9.205726 -8.818189 + OW 13.988186 -0.399497 4.118642 + OW 10.872457 13.999996 -4.764830 + OW 6.166912 5.911665 1.329291 + OW 13.847326 10.185282 -8.592303 + OW -14.000016 -12.151198 -10.003654 + OW -13.721562 5.127606 12.787815 + OW -3.794513 -0.905001 5.905055 + OW -11.618208 -4.569445 0.278227 + OW -12.305360 4.671720 -12.045522 + OW 7.507235 12.064357 -0.221157 + OW -8.784585 -12.033083 -9.954127 + OW -4.549692 7.753794 11.366126 + OW -6.881292 7.382143 9.823432 + OW 10.069300 12.665712 -9.975515 + OW 4.115068 -4.153119 -12.978340 + OW 4.322566 -13.341883 -1.623177 + OW -1.784997 12.670145 -4.765818 + OW 3.057275 13.999723 -1.701669 + OW 7.990374 -6.504994 -6.817109 + OW 13.999997 -6.453501 0.529160 + OW 12.700720 -1.985854 -12.787757 + OW -9.031763 3.125990 6.001183 + OW -11.452621 -11.979065 -4.224148 + OW -13.614444 0.732219 7.272119 + OW 7.208084 13.552104 2.157156 + OW -9.914673 3.808270 11.221472 + OW 4.239989 2.584979 -5.736410 + OW -6.904381 5.491816 4.604850 + OW 13.999738 2.288051 -12.898246 + OW -6.560355 5.757510 -9.911306 + OW -3.319762 -12.602880 9.009696 + OW -5.546167 11.202980 6.045610 + OW -6.188880 0.473064 -0.529917 + OW 9.595707 -13.776564 -3.740953 + OW -7.185622 -10.418457 13.999929 + OW 2.074955 -11.146619 6.748709 + OW 11.350573 -11.726466 -12.645411 + OW 5.389355 -0.860573 -3.702076 + OW 4.859524 4.121503 -1.027754 + OW 6.589869 7.838180 -3.678921 + OW -3.034618 -0.546669 8.570013 + OW 6.665695 11.143727 -2.706637 + OW -4.630465 5.094227 -0.198093 + OW 13.744234 -3.793684 -2.624079 + OW -4.640357 -13.999361 -2.946622 + OW 11.423794 -6.054165 13.352306 + OW -8.880873 7.211805 -8.919587 + OW -9.246467 0.010660 -0.097855 + OW 10.372659 5.456967 -8.032926 + OW 1.394077 -6.903367 -0.246023 + OW 8.456875 0.953542 11.908803 + OW -1.618060 -11.798281 -14.000027 + OW -5.110234 6.539386 -5.001740 + OW 8.388736 1.386868 0.382618 + OW -11.764942 4.227671 6.824709 + OW -2.283262 13.613033 -7.555918 + OW 1.766569 8.483676 -4.697653 + OW -5.493097 8.900848 -13.999406 + OW 2.963401 -14.000000 7.868778 + OW 0.669344 -4.705540 9.378875 + OW -14.000296 -3.729005 9.791916 + OW 8.874483 -11.491152 -11.528519 + OW 13.475177 1.201688 -7.277248 + OW -1.632113 -11.500022 -2.095322 + OW 13.112690 2.667769 2.044325 + OW 10.143857 8.887272 6.340725 + OW 2.694852 -6.883331 5.610779 + OW -5.260140 12.235718 10.867847 + OW 13.999951 -12.526607 12.607834 + OW 3.081440 -8.429774 -7.428842 + OW -0.678202 9.883768 13.057408 + OW 13.660751 4.850532 5.511318 + OW 2.750640 -13.996003 1.529898 + OW -10.265125 10.254729 6.243309 + OW 10.589838 4.038654 -1.009462 + OW 7.792558 -8.757464 2.937220 + OW -7.231977 1.381761 13.997965 + OW -9.555046 9.086544 8.629369 + OW 9.710064 -0.711440 7.132980 + OW 8.260138 -13.028623 -9.338170 + OW -10.939700 -2.043491 5.448464 + OW 6.701048 -3.907931 5.247142 + OW -13.980059 -11.406816 14.000021 + OW -10.399160 4.349185 -13.999621 + OW 4.756284 -8.604213 -10.206826 + OW -12.035076 11.830734 -0.150849 + OW 6.757141 -9.810230 12.780546 + OW 9.495114 -8.819263 -11.505345 + OW 1.236091 10.405322 -10.996454 + OW -5.557803 11.678453 3.255158 + OW -0.268501 -12.985050 13.175218 + OW -7.985632 -4.704752 -11.961123 + OW -7.317766 13.101281 -10.394963 + OW 2.466876 -8.630126 11.274608 + OW 1.221376 -8.128056 -2.943111 + OW -2.611018 4.432349 12.690846 + OW 14.016408 2.316808 4.616295 + OW 5.200800 12.672315 3.988347 + OW 6.338254 -9.344275 -12.326761 + OW -9.337850 7.416663 -0.094543 + OW -6.894023 -8.930407 11.705836 + OW 5.359576 0.926786 -8.183411 + OW 9.877198 -1.556239 -4.667726 + OW 12.710286 -3.276387 8.917838 + OW -1.437950 0.952388 13.060667 + OW -3.192212 10.386580 12.071512 + OW -1.547261 -7.809427 -2.893530 + OW -13.998997 -4.726636 2.858184 + OW 6.806959 6.169940 11.432134 + OW 5.605543 3.284411 4.327225 + OW 11.452449 1.629317 -2.171932 + OW 11.881115 5.290513 1.068563 + OW -7.347259 -7.793107 -10.266638 + OW -12.419963 7.956122 -12.915732 + OW -5.118969 4.150014 -11.636031 + OW 10.365419 12.180603 9.005078 + OW 2.938461 -6.066166 8.634148 + OW 4.132441 2.544843 11.510029 + OW 11.292840 10.645628 -5.304002 + OW 2.202379 9.321011 11.670897 + OW -3.342280 -3.823287 11.527477 + OW -6.668436 -9.488675 -3.668731 + OW -13.931579 -2.081939 -14.001509 + OW -5.282213 -4.681412 9.258994 + OW 5.832450 -11.845728 -5.824873 + OW 10.640113 0.580982 10.293678 + OW -4.733389 -13.931253 -9.611065 + OW 5.820975 -3.286046 7.986058 + OW -8.672852 8.188499 -11.499141 + OW -5.381822 -10.259096 0.940854 + OW -1.090064 -2.344135 9.310576 + OW -10.695772 2.047626 1.047656 + OW -8.222368 -6.692126 1.666389 + OW 9.666387 4.059989 4.415467 + OW 2.100840 11.029805 -5.682644 + OW -7.664176 -9.655492 9.169577 + OW -13.097481 9.153566 -10.211720 + OW -0.865880 -3.482322 6.444168 + OW -11.779585 -3.749272 -11.706170 + OW 9.472426 -13.570279 -0.997275 + OW 13.411903 -8.489953 9.196340 + OW -6.018449 -2.371816 -8.689768 + OW 1.193147 -8.040739 13.636263 + OW 7.779052 3.343699 6.397620 + OW 4.359055 -7.730024 13.144913 + OW -3.557140 -10.293881 6.532373 + OW 9.490715 -10.898447 -1.647919 + OW -7.507058 -13.876450 -2.156632 + OW 4.130445 1.590477 -10.551528 + OW 4.285100 -0.900764 6.050364 + OW 11.620526 1.849899 7.351931 + OW -1.843018 -7.024421 14.000000 + OW -9.641417 -9.061952 -9.299015 + OW -13.801880 13.891668 -8.771272 + OW 10.105302 -5.827175 -11.548889 + OW -10.931048 -13.396371 11.272228 + OW 5.219952 -6.654180 -6.966367 + OW 6.548927 -13.997387 5.858724 + OW -12.233226 10.758778 -12.853157 + OW 2.126941 3.936478 9.724544 + OW -12.036236 5.074753 9.870367 + OW -10.795303 -8.276229 -12.386762 + OW 6.018649 -0.324287 14.006100 + OW 0.236349 -6.679946 -5.619010 + OW 3.389539 -14.000559 -5.456776 + OW -13.631993 2.030369 -2.182802 + OW 14.000032 -8.875283 -14.000024 + OW -10.646704 -6.067913 -9.619460 + OW 7.947303 -6.491247 6.551157 + OW -10.850231 -0.525687 2.074076 + OW 13.993115 6.916083 0.029775 + OW 4.899919 -13.324913 11.458402 + OW -0.785320 -13.434314 -0.074664 + OW 13.497046 -13.541947 -11.208795 + OW 2.992702 -9.906638 -1.829591 + OW 5.707553 2.259024 0.808994 + OW -1.985286 -0.725625 -10.036463 + OW -10.042939 10.572649 -5.539898 + OW 0.330459 5.300555 11.304964 + OW 8.376059 -7.251755 13.157723 + OW -13.870638 -1.777117 5.406794 + OW -3.333998 -8.922174 -8.720881 + OW -1.256668 -9.196104 -6.938538 + OW 4.221223 11.415325 11.780205 + OW 7.833793 -10.925914 -14.004199 + OW 1.622502 8.167625 7.618155 + OW -10.141888 -13.999712 8.612949 + OW 10.282876 -5.031371 9.701760 + OW 7.455218 -9.537266 8.427567 + OW -13.297994 -6.678770 11.551871 + OW -12.127964 0.974732 -7.178304 + OW 10.866522 9.169118 -11.117014 + OW 0.688900 -2.416053 -13.432813 + OW -0.287182 -6.653484 6.460158 + OW -8.729043 4.571370 -11.371396 + OW 6.684426 -11.418499 -1.536512 + OW 4.847809 5.250951 -3.542650 + OW -10.977664 13.240989 -6.643756 + OW 13.927376 6.713912 8.927284 + OW 8.341682 1.415703 9.029934 + OW -10.509590 6.060761 13.683575 + OW 11.177631 -0.856837 4.813675 + OW 5.025464 -6.222702 10.522796 + OW -7.687617 13.586165 -13.184271 + OW -7.868644 8.106589 -4.694620 + OW -11.602976 3.549400 13.928634 + OW -3.197514 10.591092 7.480346 + OW -6.017314 9.781145 13.441033 + OW 8.626283 -0.572645 2.726573 + OW 10.747558 -6.785389 -5.764277 + OW 10.368420 -6.919754 -8.486052 + OW 0.632986 -13.102639 3.009598 + OW 10.987211 -2.117192 10.709984 + OW 11.332214 12.127440 -7.598464 + OW 1.901481 -5.470358 -2.752697 + OW -12.600025 -5.649230 14.000759 + OW -10.135016 12.874569 -4.038266 + OW -5.464592 -14.000902 -0.320310 + OW -3.192865 13.645944 12.063449 + OW -6.750394 11.844314 -7.569205 + OW -8.609761 9.155566 -2.096495 + OW -8.983848 -8.001972 3.960871 + OW 0.123226 6.522016 -13.696130 + OW -6.001590 4.225714 -2.418013 + OW -9.765200 -6.886336 8.853304 + OW -13.999958 5.898991 -13.829301 + OW 7.437659 -12.192495 7.730250 + OW -7.382754 13.059907 7.405364 + OW -5.054552 -3.296289 13.999983 + OW -4.834151 12.588375 13.999998 + OW -3.033919 -5.966995 -10.512971 + OW 4.466175 9.341475 0.099198 + OW 2.787655 12.120065 9.549555 + OW 14.001811 9.922772 -5.843914 + OW 10.493151 7.958056 -6.898205 + OW 1.672217 -4.493244 6.758700 + OW 6.237858 6.831763 14.026770 + OW -11.947002 -6.119539 4.045858 + OW 6.981493 -5.539183 -4.448081 + OW 7.255130 -8.292041 -4.791148 + OW 6.195042 12.664320 -5.185802 + OW -7.974796 -2.704601 -4.171372 + OW -6.148368 6.656522 6.998353 + OW 2.050565 13.485443 3.232216 + OW 5.925395 -4.727255 -10.804454 + OW -12.167564 -12.040225 4.002736 + OW 12.877849 -6.921063 3.850292 + OW 13.982219 4.188733 -0.315614 + OW 0.517657 7.773813 4.874456 + OW -6.134702 -11.702305 -7.254097 + OW 11.655702 3.535734 13.993589 + OW 11.305665 1.860804 4.617376 + OW 14.002127 -3.494142 -8.194522 + OW 9.519187 -0.855407 13.747211 + OW -3.525126 -3.145971 -7.825546 + OW -5.272312 0.405548 -9.827269 + OW 13.972440 11.972216 6.013656 + OW -11.288336 -12.688223 1.480913 + OW 4.916673 6.833800 3.732121 + OW 8.647045 -3.251774 11.607974 + OW 9.495843 3.819522 1.502356 + OW -3.643091 8.892610 -11.965804 + OW -6.311683 -0.210735 -3.886336 + OW 12.017051 -5.865346 -2.084382 + OW 1.142236 -8.676039 8.865570 + OW 12.729159 7.294098 6.304215 + OW 3.089427 -2.925185 8.517667 + OW 9.454842 6.405279 2.417873 + OW -13.230523 -1.523071 -6.854368 + OW 0.860564 -11.922228 -8.396263 + OW 2.531588 -7.548436 2.312618 + OW 2.503287 7.886789 13.993114 + OW -0.148394 -3.208434 13.999712 + OW 12.452680 13.999984 11.272439 + OW 12.973051 -10.654208 -9.817050 + OW -7.705677 2.157717 -10.402491 + OW 14.000816 -9.036477 6.472721 + OW -13.994016 0.258161 -9.065213 + OW -13.969856 -9.432545 -5.245074 + OW 6.324880 -12.236857 13.999991 + OW -0.228897 13.999994 12.503559 + OW 1.324157 -1.571620 6.829965 + OW 13.399043 -9.431910 1.185758 + OW -3.294065 -10.086598 13.999486 + OW -10.500092 2.148104 3.812197 + OW 13.993263 -11.053433 -12.322773 + OW 11.491101 -9.071991 -7.157550 + OW -6.463780 7.268887 -0.589092 + OW 3.169808 1.877421 5.150100 + OW 13.995449 9.691824 0.482123 + OW 6.874948 -0.905122 0.634348 + OW -2.032832 -11.414150 -9.382164 + OW -10.519257 -7.497905 -4.236004 + OW 0.553496 13.999992 -7.629123 + OW -3.491512 13.030354 6.076863 + OW 5.030584 -3.587464 -5.067176 + OW 4.298227 -7.217689 -0.825081 + OW 2.262727 -11.629307 0.182772 + OW -10.731304 -7.648673 6.290858 + OW -7.055328 -1.131940 -6.373324 + OW 10.524533 12.171044 1.437859 + OW 6.189312 0.116546 -11.615392 + OW 8.450586 0.904267 -3.111542 + OW -14.000091 -6.789772 -11.411640 + OW -3.205105 5.729397 7.859429 + OW 4.575901 4.866557 13.073245 + OW 3.161576 -5.224709 -10.481317 + OW -2.199386 -5.112915 9.384352 + OW 11.416568 -2.822316 -0.979252 + OW -7.584465 -5.457015 7.631862 + OW 0.767551 0.571125 4.826567 + OW 12.634521 13.999980 -10.057070 + OW -13.998982 -13.999212 8.071836 + OW 5.649461 13.457494 -13.558636 + OW 5.108661 -9.418252 10.460116 + OW -6.952204 13.999995 12.127501 + OW 5.646239 -7.274789 -14.000318 + OW -5.261318 -13.314678 6.959849 + OW -10.658702 13.018109 12.538557 + OW 12.719213 -3.622609 12.201435 + OW -5.628425 -12.731994 2.116814 + OW 12.862039 11.280812 2.575170 + OW -1.615579 2.061840 4.588317 + OW -1.148571 8.576678 -6.427606 + OW -13.999893 -11.483159 6.966653 + OW 6.575229 -9.522365 0.451847 + OW -5.225944 0.307996 2.189450 + OW -13.804643 2.624251 -10.987058 + OW 5.590096 3.671349 -8.063416 + OW -1.102669 4.501896 -10.328956 + OW 11.793839 -0.226417 -0.175251 + OW 1.037884 1.413220 9.682695 + OW -5.622733 9.023206 -6.819726 + OW 11.994832 -7.998054 -12.335161 + OW 13.262939 12.083472 -13.538167 + OW 7.346681 -2.730175 13.998389 + OW -12.634327 10.364913 4.509043 + OW -12.073014 -3.963406 -6.294114 + OW -7.034995 3.242976 -7.616494 + OW 0.725451 5.802353 13.979546 + OW -10.504032 3.110402 -4.233769 + OW -7.082543 4.321273 -4.991316 + OW -13.999999 13.370866 -1.723097 + OW -0.142705 3.925075 -12.839575 + OW 14.003585 -1.287005 10.302985 + OW -1.028060 13.999996 5.332785 + OW 11.521874 6.074804 4.191428 + OW 5.238018 2.308959 14.006305 + OW 9.917152 3.628025 9.119866 + OW 5.616015 14.001970 -0.694605 + OW -0.368811 2.567411 -7.984637 + OW 6.037269 8.501319 -8.107676 + OW -7.934793 4.506403 13.828886 + OW -11.021821 -10.028931 0.377313 + OW -6.965461 -10.027343 -11.823689 + OW -7.292805 2.777417 -13.999933 + OW 2.407696 0.298828 -13.828299 + OW 11.957170 -14.000590 6.570318 + OW -13.598279 6.525654 1.351478 + OW 1.459427 -2.927505 11.692245 + OW 4.781621 -5.374281 6.543437 + OW -6.800692 10.723496 -5.007953 + OW -7.359271 6.244986 1.999300 + OW 6.512287 13.999754 9.820457 + OW -13.358213 -3.089420 -9.110531 + OW 8.683120 7.574498 -8.930817 + OW 4.707680 4.919553 10.267461 + OW -10.495255 11.716145 8.818575 + OW 3.304487 -11.877570 -3.716079 + OW 13.863359 13.198944 -7.535777 + OW 2.304096 5.799122 -4.440497 + OW 8.412737 -11.899148 -6.838441 + OW 7.089835 4.576239 8.960404 + OW -2.020421 9.456794 -9.718495 + OW -13.734601 -13.999646 5.124254 + OW -1.960562 5.293459 5.450447 + OW 9.053118 -2.723876 8.852409 + OW -2.477877 -11.968861 2.328410 + OW 4.593036 -9.000167 3.858627 + OW -10.086371 13.926603 6.715534 + OW 4.567506 6.839685 -1.315780 + OW -12.929202 -8.893473 -10.001049 + OW -3.961464 -9.967226 -3.735919 + OW 0.143417 -0.540110 11.384820 + OW -13.690784 9.376499 -1.022614 + OW -7.123706 -9.309253 -0.963012 + OW 8.630564 8.879418 -12.691382 + OW 0.993686 -0.707400 13.999462 + OW -6.716372 -10.736833 6.819673 + OW -9.808328 -10.830343 -13.507417 + OW 9.103985 6.128570 9.950263 + OW 4.861770 11.927788 0.941792 + OW -8.329638 -13.317722 -6.897448 + OW 8.666593 8.767694 1.254043 + OW 1.153080 -11.715326 -13.809857 + OW 0.925031 13.351808 -4.136088 + OW -2.584506 -4.054439 4.330162 + OW -8.739381 -4.486368 0.108626 + OW 10.506286 6.022969 13.965514 + OW 7.581553 -7.540577 10.313169 + OW 2.705437 0.715357 7.612362 + OW 9.097389 -2.652681 4.786686 + OW -5.516076 6.804671 -12.229280 + OW -9.550579 2.198903 -7.230798 + OW -6.985329 -4.464979 -2.302353 + OW 6.786077 -13.999641 -0.595168 + OW 9.968351 -7.763628 8.525538 + OW 6.700411 -14.000991 -7.292948 + OW 12.277466 8.585088 11.256988 + OW 11.423882 -3.661142 -7.254554 + OW 9.524925 -6.929628 -3.099535 + OW 1.046863 13.678747 8.104691 + OW -11.377170 -12.877149 -9.612168 + OW 6.364151 -9.775197 5.915711 + OW -10.757242 10.532196 -9.786071 + OW 13.998020 -9.280452 -6.053417 + OW -6.391049 -2.351100 -0.646873 + OW 4.982214 -4.217380 -8.272104 + OW 10.698773 -8.527410 3.383869 + OW -4.778158 -3.838735 -12.531626 + OW 10.116168 -0.046473 -7.399865 + OW 4.783293 -1.456345 -9.678399 + OW -4.072064 10.912852 -8.085022 + OW 9.413797 2.259120 -14.012485 + OW -6.120731 -1.758710 -13.728771 + OW 13.420259 3.849687 -6.561268 + OW 3.909295 11.385386 -1.770591 + OW 13.980477 -6.660292 -5.228654 + OW -11.099497 9.014006 2.654323 + OW 9.657902 10.168433 -8.858170 + OW -7.812168 13.826057 0.069501 + OW -4.773158 2.854190 -5.334660 + OW 7.163728 10.720999 -6.870818 + OW -8.203439 -9.528309 -6.328862 + OW -11.658983 -10.626739 12.318140 + OW 2.772627 7.175811 -14.000225 + OW 6.199451 -13.137441 -13.999841 + OW -6.489654 2.423466 11.564768 + OW 4.634760 -5.129322 13.999409 + OW 9.214843 12.187957 -3.351899 + OW 6.204818 -13.999976 -3.517064 + OW -7.086645 11.429009 -2.365683 + OW -4.007334 9.486415 2.166293 + OW 10.967730 -12.807612 -6.236064 + OW 11.319878 3.534596 -4.390702 + OW -13.929527 5.940282 -5.767374 + OW -5.933862 13.999966 5.265567 + OW 7.770729 2.250306 2.984261 + OW -10.739481 -1.438965 9.852603 + OW -1.051577 8.627665 7.171562 + OW -3.714238 3.155589 7.032719 + OW -1.984356 -1.120253 -13.999999 + OW -13.108634 -12.814117 -2.198683 + OW -9.735504 -4.066398 -13.984222 + OW 13.285481 -0.177841 -10.753047 + OW 13.290706 -13.109264 -13.991669 + OW 9.713197 7.764079 12.060368 + OW -7.780106 7.293005 12.426620 + OW -10.952106 -8.685278 -6.862193 + OW 8.624627 -9.271848 -8.379383 + OW 7.491242 -8.634334 -1.984250 + OW 8.451786 13.997010 4.727555 + OW 11.064998 2.487033 -6.918997 + OW 4.287753 -13.515192 -10.225784 + OW -9.899663 10.174720 0.359164 + OW -1.866443 2.130229 -14.009134 + OW 14.020778 4.267262 10.175429 + OW 3.086213 6.681394 11.594944 + OW 4.235091 13.999095 8.160861 + OW 14.050845 6.572050 11.723441 + OW 12.936468 -2.224299 2.337625 + OW -2.765433 5.112990 -6.136063 + OW -13.487336 2.105970 1.327948 + OW 11.803886 -13.999967 11.854129 + OW 4.562570 -4.676385 3.615379 + OW 7.177969 13.999986 -2.992173 + OW 11.447919 1.603738 -9.493253 + OW -5.254983 -4.892836 -4.501727 + OW 9.946874 -10.662677 7.470990 + OW -8.691040 9.730173 11.294146 + OW 11.912457 9.916071 8.880103 + OW 1.417297 11.653964 12.885439 + OW -3.804473 -6.062854 2.904798 + OW 9.186176 -11.767257 12.258468 + OW -3.957882 -8.788725 3.071074 + OW -7.887814 13.127345 3.070218 + OW -4.206767 -10.781888 -12.592171 + OW -13.655795 -1.292810 11.056831 + OW -10.444803 -6.204712 12.387306 + OW 4.495433 6.054479 -9.202174 + OW 7.157189 6.568732 -6.078554 + OW 7.464522 5.653255 4.829638 + OW 8.571692 9.022390 -5.243819 + OW 8.947822 -8.881753 5.629392 + OW -3.339223 -7.953046 -5.502432 + OW -11.599203 -8.443304 13.996091 + OW 7.702018 -3.084511 2.094922 + OW 10.338491 8.990330 3.570101 + OW -14.000903 -10.085968 3.389809 + OW -0.080180 -6.684981 3.147838 + OW -1.311741 -9.392862 3.507992 + OW 5.016791 -0.347485 8.650440 + OW -10.356344 6.231612 -5.919248 + OW -8.824697 -7.148051 -1.035158 + OW 10.860907 -3.207409 6.839217 + OW -10.262190 -10.473950 5.223961 + OW -12.195782 10.689396 13.113345 + OW 9.012714 -1.373012 -1.031298 + OW -13.450898 -9.852272 9.733513 + OW 9.671614 4.350372 11.961091 + OW 9.863557 -3.099878 -11.781425 + OW 7.735460 -13.999974 -11.888430 + OW 5.295291 -3.160739 0.768173 + OW -0.828859 -10.111765 -4.325262 + OW -1.702513 -8.454007 7.982130 + OW -12.119012 5.337475 -3.742990 + OW -1.481270 3.490352 10.338989 + OW -5.687827 -5.216927 -10.141166 + OW -10.246419 -0.095378 -8.876075 + OW 3.372680 0.113597 12.858097 + OW -5.685140 -8.938817 -13.999432 + OW -0.326822 -11.311798 5.231959 + OW 5.754040 2.222508 9.344764 + OW 5.213972 9.109558 12.890295 + OW -1.906159 7.825611 2.790538 + OW -11.345930 -12.625077 6.558105 + OW 8.042723 -5.774645 3.607668 + OW 1.567730 -3.481620 -8.071416 + OW 3.881425 8.821381 9.559705 + OW 0.238642 -12.534343 8.253967 + OW 13.736559 8.007270 -2.480484 + OW 1.200686 -9.021756 -13.221156 + OW 13.139552 12.364037 13.562974 + OW -8.045845 0.453916 10.441920 + OW -0.086927 -10.960590 1.445301 + OW 5.827268 0.385830 11.361194 + OW -9.518440 6.174519 9.700659 + OW 1.966020 6.056606 -1.724030 + OW 14.001496 6.036056 -5.019212 + OW 10.203120 -4.074262 -3.103825 + OW -12.059319 -2.791170 3.050694 + OW 7.723962 13.999372 -9.448319 + OW 10.374249 -2.854776 1.564503 + OW -13.327439 8.479753 -4.299649 + OW -1.687374 12.711680 -10.976699 + OW -8.394457 -6.710810 -7.790079 + OW -2.972917 -13.998827 -7.183455 + OW 2.000881 -5.604196 12.010707 + OW -3.480565 7.822875 -8.057285 + OW -9.604204 -8.810733 12.140190 + OW -9.942992 12.102094 -12.116911 + OW 0.536604 -12.760915 -3.251277 + OW 5.710382 5.756770 -12.171874 + OW 11.705173 5.646740 10.652222 + OW 7.605846 -7.027095 -10.642192 + OW -10.734366 2.061403 -1.702175 + OW 11.897234 7.331278 -9.351049 + OW 5.408535 2.577284 -3.236841 + OW -7.530713 10.317771 -12.811952 + OW 7.386732 9.794023 11.073265 + OW 8.342205 11.099639 2.657479 + OW 2.367382 -14.000036 -12.131804 + OW -5.426143 -12.050952 11.360075 + OW -9.873916 0.619879 14.000372 + OW 8.512102 -6.337490 -0.604871 + OW 0.089647 8.306684 -1.106984 + OW 11.235333 -3.973020 -13.998303 + OW -8.020276 10.404435 -10.007100 + OW -13.999969 -5.739668 -0.442645 + OW 11.328380 -11.557167 0.288824 + OW 12.323286 -8.457115 -1.150607 + OW -4.215063 -7.359644 9.046328 + OW -7.977554 1.843289 -2.893055 + OW 1.595014 -0.386591 -10.144518 + OW 9.096764 -4.237305 -5.629043 + OW -9.935829 6.948992 -3.299111 + OW -13.999293 -7.719194 4.938551 + OW 6.784115 -1.874817 10.126191 + OW -1.501307 1.699726 8.255148 + OW 5.550582 10.215746 6.098884 + OW -5.345051 -1.919005 9.150932 + OW 3.543336 13.055060 -6.846825 + OW 12.276139 -4.558053 -4.813063 + OW -13.999989 9.797613 1.878722 + OW 10.957002 -5.426326 0.461545 + OW -2.409234 -9.593744 0.947990 + OW 13.965705 -4.549440 6.847086 + OW 12.178480 0.379792 -4.549764 + OW -10.449503 11.942731 3.314128 + OW -4.154157 -1.100911 -11.918335 + OW 11.297526 -4.005470 3.884312 + OW -8.618046 -13.000512 2.066585 + OW 5.488002 -1.946401 3.679569 + OW 10.970728 -11.819471 9.749417 + OW 11.348318 -9.092422 -4.391392 + OW 11.323231 -7.967764 11.379300 + OW -7.950468 -1.067932 -10.149212 + OW 13.303965 -12.662871 -1.811506 + OW -3.096287 -6.554082 5.926909 + OW -8.645822 -12.536832 6.047939 + OW -13.994156 1.453231 11.905846 + OW -2.037763 0.239754 -7.465622 + OW -3.782792 -8.753067 -1.280793 + OW 4.684318 -3.118945 11.378830 + OW 8.932641 5.669886 7.257789 + OW 13.990227 12.469369 0.043107 + OW -14.000499 12.371431 9.611436 + OW 13.808587 -3.611431 0.130014 + OW -8.689238 -1.667592 -12.749340 + OW 13.390652 12.139449 -4.339378 + OW -8.694533 -1.316619 12.443937 + OW 13.950399 -13.999875 -6.221768 + OW 10.369993 -9.561912 -13.997427 + OW -4.476076 -13.999427 4.415269 + OW -11.619635 -6.178822 -13.962785 + OW -11.042765 -12.713829 13.999069 + OW 0.021356 5.118422 -5.813657 + OW -11.909646 13.999998 -11.449984 + OW 3.702246 10.319091 2.844120 + OW 4.861250 5.328310 6.026418 + OW 12.545564 13.998369 1.763122 + OW 8.252689 13.529514 -6.790712 + OW 1.031209 -8.948033 4.875286 + OW 13.999065 0.347602 12.510454 + OW -0.065847 9.975715 1.138405 + OW -10.309983 -4.994242 6.872761 + OW -1.934684 -5.923451 -13.084289 + OW -2.042754 -4.160332 -5.743160 + OW 10.783808 -13.959390 -11.047746 + OW 3.327303 1.902643 -1.579056 + OW 11.373215 1.010909 12.960254 + OW -10.122946 -10.023250 -2.822983 + OW 13.990853 5.156290 2.809407 + OW 1.852233 12.404930 5.752937 + OW 10.995820 7.371739 8.436268 + OW -12.986591 -8.938201 7.185780 + OW 11.848008 4.900199 7.632163 + OW 10.096013 10.223317 10.906320 + OW 2.798249 8.901416 -2.166173 + OW 6.735872 -3.938673 -1.456660 + OW 10.078714 -3.746509 13.999725 + OW -9.331916 -4.207488 3.553449 + OW -3.083036 5.941655 -13.653799 + OW 8.584434 3.283005 -7.823566 + OW -1.568508 8.289584 -3.330874 + OW 12.836280 -13.099895 -8.569654 + OW 3.991134 3.141119 7.442981 + OW -9.795426 -4.182999 10.456228 + OW 7.849793 0.628181 -5.995152 + OW 13.994325 -4.426637 3.572824 + OW -2.281307 -1.474247 13.998026 + OW -4.946921 -7.370290 -3.351418 + OW -8.746343 -9.821416 1.907528 + OW 10.382295 -6.195287 5.273026 + OW 2.616056 11.913074 -9.165861 + OW -14.002679 2.883795 -8.257268 + OW 7.961522 11.913063 -11.959657 + OW -4.787991 -6.893126 0.476643 + OW -2.611936 -12.869332 6.378264 + OW 13.029103 -6.056959 -13.998998 + OW -4.407334 -2.194999 -3.568501 + OW 11.513179 9.623801 -2.508129 + OW -8.269262 -7.892037 -13.403617 + OW -4.970844 3.354407 9.468988 + OW -5.372271 10.617279 -10.706022 + OW -1.622388 7.319039 12.768293 + OW 11.885462 -3.235256 -9.924598 + OW -8.266705 -2.264832 1.658502 + OW -5.253484 9.731276 -0.403921 + OW -12.607780 4.635893 -1.088712 + OW 13.515721 -11.156456 -4.102193 + OW -10.466775 -10.432927 7.965268 + OW -9.207114 7.143753 4.163594 + OW 5.961325 1.299245 6.664630 + OW -5.902941 13.407087 -4.380523 + OW -6.074721 0.748387 -12.599750 + OW 13.777183 -5.438772 10.369659 + OW -12.075928 7.799177 -7.992452 + OW -0.055981 -11.438602 10.759057 + OW 2.663239 -10.936612 9.559387 + OW 7.558240 -13.999971 12.138905 + OW -1.871394 2.561964 -5.630914 + OW -12.196832 -12.220496 9.137100 + OW 4.234069 -2.413200 13.999285 + OW 13.999676 7.006377 -7.608679 + OW 7.590448 5.226324 -3.344355 + OW -0.153098 5.061249 8.508902 + OW 13.981596 9.684998 4.491065 + OW -7.553710 -3.355664 5.789696 + OW 13.728206 -2.065151 -5.712719 + OW 4.857276 11.336982 -11.047700 + OW -0.973693 -9.585182 12.612187 + OW 3.846996 -11.939271 4.548360 + OW -0.404830 11.281240 6.851853 + OW -13.081242 12.288609 2.595113 + OW 13.136706 5.561403 -13.998741 + OW 1.911186 2.299186 -12.009117 + OW -7.195577 -6.976201 -5.299771 + OW 5.870064 -11.282885 -9.971276 + OW -5.633981 8.452908 4.455279 + OW 8.991048 -2.573175 -7.911399 + OW -10.978209 -1.133653 -11.320642 + OW -13.028980 -4.572247 6.526645 + OW -11.916202 6.703233 4.334316 + OW 3.573667 6.353047 8.225506 + OW -12.050997 4.450930 -7.134920 + OW 0.957895 -3.518908 -10.803105 + OW -13.920213 -10.600014 -7.734417 + OW 13.995643 0.606674 6.762347 + OW -11.075273 0.590448 6.225712 + OW 5.275710 -9.971316 -3.892260 + OW -11.527104 0.245516 11.861492 + OW -1.747353 -4.627752 1.775315 + OW 13.440927 -7.239370 -7.859647 + OW 5.734642 0.582466 -1.372705 + OW 0.665369 9.291919 -13.444192 + OW -5.758073 -8.210381 -7.593076 + OW -1.997570 11.697927 -0.661254 + OW -3.135579 10.046901 -5.121617 + OW 11.791809 -5.933214 7.596812 + OW 7.815492 1.001428 -9.412914 + OW -13.535245 -11.141362 0.465505 diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/elba_water.xyz b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/elba_water.xyz new file mode 100644 index 0000000000..3ed22d1fad --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/elba_water.xyz @@ -0,0 +1,4 @@ +1 + + OW 0.000000 0.000000 0.000000 + diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/input.packmol b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/input.packmol new file mode 100644 index 0000000000..9c640263d9 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/input.packmol @@ -0,0 +1,17 @@ +tolerance 2.5 +filetype xyz +output system.xyz + +# Methanol +structure methanol.xyz + number 1 + center + fixed 0. 0. 0. 0. 0. 0. +end structure + +# ELBA Solvent +structure elba_water.xyz + number 1000 + inside box -14.0 -14.0 -14.0 14.0 14.0 14.0 +end structure + diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/methanol.xyz b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/methanol.xyz new file mode 100644 index 0000000000..b06d93fa5f --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/packmol_files/methanol.xyz @@ -0,0 +1,8 @@ +6 + +O 0.70790 0.00000 0.00000 +C -0.70790 0.00000 0.00000 +H -1.07320 -0.76900 0.68520 +H -1.07310 -0.19470 -1.01130 +H -1.06320 0.97860 0.33120 +H 0.99360 -0.88040 -0.29800 diff --git a/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/run.in.npt b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/run.in.npt new file mode 100644 index 0000000000..ad8076d7fd --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ELBAwater+methanol/run.in.npt @@ -0,0 +1,54 @@ +# PREREQUISITES: +# +# You must use moltemplate.sh (& packmol?) to create 3 files: +# system.data system.in.init system.in.settings +# +# See "README_setup.sh" for instructions how to use moltemplate.sh +# Note: This input script file only covers equilibration of the system. +# +# ------------------------------- Initialization Section -------------------- + +include "system.in.init" + +# ------------------------------- Atom Definition Section ------------------- + +read_data "system.data" + +# ------------------------------- Settings Section -------------------------- + +include "system.in.settings" + +# ------------------------------- Run Section ------------------------------- + +# -- simulation protocol -- + +# (Groups "gElbaWater" and "gMethanol" are defined in "system.in.settings" +# Rename them to "gSolvent" and "gSolute") +group gSolvent union gElbaWater gElbaWater +group gSolute union gMethanol gMethanol + +# Randomize the direction of the solvent dipoles +set group gSolvent dipole/random 9876 0.541 + +velocity all create 298.0 9876 + +neighbor 1.0 bin +neigh_modify every 1 delay 0 check yes + +timestep 2.0 + +fix 1 gSolute nve # integrate gSolute +fix 2 gSolvent nve/sphere update dipole # integrate gSolvent +fix 3 gSolute langevin 298.0 298.0 1000 9876 # thermostat gSolute +fix 4 gSolvent langevin 298.0 298.0 1000 9876 omega yes zero yes # thermostat gSolvent +fix 5 all press/berendsen iso 1.0 1.0 1000 modulus 21740 # barostat +fix 6 all momentum 500 linear 1 1 1 +fix 7 gSolute shake 1.0e-6 100 0 m 1.0 + +dump 1 all custom 1000 traj_nvt.lammpstrj id mol type x y z mux muy muz ix iy iz + +thermo_style custom step temp etotal pe epair press +thermo_modify norm yes flush yes +thermo 100 + +run 10000 diff --git a/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/README.txt b/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/README.txt new file mode 100644 index 0000000000..c61369a225 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/README.txt @@ -0,0 +1,8 @@ +You can use packmol to create a file containing the atomic coordinates +for a system of coarse-grained lipids mixed with water using this command: + +If it takes too long for packmol to run, try lowering the tolerance. +(tolerance 2.0 should work) + +packmol < mix_lipids+water.inp + diff --git a/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/dopc.xyz b/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/dopc.xyz new file mode 100644 index 0000000000..7caffdc159 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/dopc.xyz @@ -0,0 +1,14 @@ +12 + DOPC +Q0 0.596 0.518 2.453 +Qa 0.413 0.591 2.167 +Na 0.525 0.626 1.829 +Na 0.749 0.434 1.795 +C1 0.428 0.686 1.448 +C3 0.395 0.491 1.197 +C1 0.389 0.575 0.899 +C1 0.423 0.497 0.555 +C1 0.944 0.505 1.503 +C3 0.906 0.476 1.192 +C1 0.899 0.567 0.905 +C1 0.921 0.637 0.557 diff --git a/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/mix_lipids+water.inp b/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/mix_lipids+water.inp new file mode 100644 index 0000000000..9e1388a137 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/mix_lipids+water.inp @@ -0,0 +1,35 @@ +# +# A mixture of coarse-grained (martini) DPPC (lipid) and water. +# + +# All the atoms from diferent molecules will be separated at least 3.0 +# Anstroms at the solution. + +tolerance 3.0 # minimal distance between atoms in different molecules + # (you should also consider changing the "discale" + # parameter. I think discale=1.0 by default.) + +seed 12345 # seed for random number generator + +# The file type of input and output files is XYZ + +filetype xyz + +# The name of the output file + +output system.xyz + +# DPPC (lipid) molecules and water molecules will be put in a box +# defined by the minimum coordinates x, y and z = 0 0 0. and maximum +# coordinates 100 100 100. (Box size: 100x100x100) + +structure dopc.xyz + number 300 + inside box 0.0 0.0 0.0 100.0 100.0 100.0 +end structure + +structure water.xyz + number 6000 + inside box 0.0 0.0 0.0 100.0 100.0 100.0 +end structure + diff --git a/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/water.xyz b/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/water.xyz new file mode 100644 index 0000000000..84fe1f74c2 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/MARTINI_examples/DOPC_bilayer_example/packmol_files/water.xyz @@ -0,0 +1,3 @@ +1 + water +W 0 0 0 diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_heteropolymer/moltemplate_files/forcefield.lt b/tools/moltemplate/examples/coarse_grained/abstract_2bead_heteropolymer/moltemplate_files/forcefield.lt index aad330df20..e177c136e3 100644 --- a/tools/moltemplate/examples/coarse_grained/abstract_2bead_heteropolymer/moltemplate_files/forcefield.lt +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_heteropolymer/moltemplate_files/forcefield.lt @@ -1,8 +1,11 @@ -# The "HPForceField" is a force-field environment object containing -# force-field data, atomic masses, and bond rules. -# Later, when we define molecules (such as "H" and "P"), we can inherit -# atom types and bond-rules from this force-field. This will automatically -# assign bonds and angular interactions according to atom (and bond) type. +# Define a "ForceField" object. +# A force field in moltemplate is any object containing mostly pair_coeff, +# bond_coeff, angle_coeff, dihedral_coeff, "Bonds By Type", "Angles By Type", +# "Dihedrals By Type", "Impropers By Type", "Data Masses" (and "In Charges") +# information. Later, when we define molecules (such as "H" and "P"), we can +# borrow these atom types, bond-rules and force field parameters. This way, +# bonds and angular interactions are generated automatically according to +# atom (and bond) type. # (You can also assign charge by atom type. However in this example I assigned # charge to each atom manually (not by type). The OPLSAA examples in the # "all_atoms" directory demonstrate how to assign charge by atom type.) @@ -11,6 +14,31 @@ HPForceField { + # LAMMPS supports a large number of "styles" (ie. equations for calculating + # forces between particles). At some point, we must eventually select the + # formulas we want to use. This can be done anywhere, but we might as + # well specify that now. Later on we will specify the parameters + # which go into these equations. + + write_once("In Init") { + units real + atom_style full + bond_style harmonic + angle_style harmonic + dihedral_style charmm + pair_style lj/cut 11.0 + + # If charges are needed, (assuming biopolymers), try one of: + #dielectric 80.0 + #pair_style lj/cut/coul/debye 0.1 11.0 + # or (for short distances, below a couple nm) + #pair_style lj/charmm/coul/charmm/implicit 9.0 11.0 + + pair_modify mix arithmetic + special_bonds lj 0.0 0.0 0.0 + } + + # There are 3 atom types: write_once("Data Masses") { @@ -22,16 +50,17 @@ HPForceField { # 2-body (non-bonded) interactions: # # Uij(r) = 4*eps_ij * ( (sig_ij/r)^12 - (sig_ij/r)^6 ) + # (for details see http://lammps.sandia.gov/doc/pair_lj.html) # # Hydrophobic side-chain (R) atoms are attractive (large epsilon parameter). # Polar side-chains and backbone atoms are not attractive (small epsilon). # - # i j pairstylename eps sig + # i j eps sig # write_once("In Settings") { - pair_coeff @atom:CA @atom:CA lj/cut 0.10 2.0 - pair_coeff @atom:HR @atom:HR lj/cut 2.50 3.6 - pair_coeff @atom:PR @atom:PR lj/cut 0.10 3.6 + pair_coeff @atom:CA @atom:CA 0.10 2.0 + pair_coeff @atom:HR @atom:HR 2.50 3.6 + pair_coeff @atom:PR @atom:PR 0.10 3.6 } # (By default, interactions between different AtomTypes use "arithmetic"rules: @@ -50,15 +79,16 @@ HPForceField { # 2-body (bonded) interactions: # # Ubond(r) = (k/2)*(r-0)^2 + # (for details see http://lammps.sandia.gov/doc/bond_harmonic.html) # # The corresponding command is: # - # bond_coeff bondType bondstylename k r0 + # bond_coeff bondType k r0 # write_once("In Settings") { - bond_coeff @bond:Sidechain harmonic 30.0 3.4 - bond_coeff @bond:Backbone harmonic 30.0 3.7 + bond_coeff @bond:Sidechain 30.0 3.4 + bond_coeff @bond:Backbone 30.0 3.7 } @@ -83,14 +113,15 @@ HPForceField { # # Uangle(theta) = (k/2)*(theta-theta0)^2 # (k in kcal/mol/rad^2, theta0 in degrees) + # (for details see http://lammps.sandia.gov/doc/angle_harmonic.html) # # The corresponding command is: # - # angle_coeff angleType anglestylename k theta0 + # angle_coeff angleType k theta0 write_once("In Settings") { - angle_coeff @angle:Backbone harmonic 30.00 114 - angle_coeff @angle:Sidechain harmonic 30.00 123 + angle_coeff @angle:Backbone 30.00 114 + angle_coeff @angle:Sidechain 30.00 123 } @@ -100,40 +131,16 @@ HPForceField { # Udihedral(phi) = K * (1 + cos(n*phi - d)) # # The d parameter is in degrees, K is in kcal/mol/rad^2. + # (for details, see http://lammps.sandia.gov/doc/dihedral_charmm.html) # # The corresponding command is - # dihedral_coeff dihedralType dihedralstylename K n d w (ignore "w") + # dihedral_coeff dihedralType K n d w (ignore "w") write_once("In Settings") { - dihedral_coeff @dihedral:CCCC charmm -0.5 1 -180 0.0 - dihedral_coeff @dihedral:RCCR charmm -1.5 1 -180 0.0 + dihedral_coeff @dihedral:CCCC -0.5 1 -180 0.0 + dihedral_coeff @dihedral:RCCR -1.5 1 -180 0.0 } # write_once("In Settings") - # LAMMPS supports a large number of force-field styles. We must select - # which ones we need. This information belongs in the "In Init" section. - # (Hybrid styles used for portability. These choices can be overridden later.) - - write_once("In Init") { - # -- Default styles for "2bead" -- - # (Hybrid force fields were not necessary but are used for portability.) - units real - atom_style full - bond_style hybrid harmonic - angle_style hybrid harmonic - dihedral_style hybrid charmm - pair_style hybrid lj/cut 11.0 - - # If charges are needed, (assuming biopolymers), try one of: - #dielectric 80.0 - #pair_style hybrid lj/cut/coul/debye 0.1 11.0 - # or (for short distances, below a couple nm) - #pair_style hybrid lj/charmm/coul/charmm/implicit 9.0 11.0 - - pair_modify mix arithmetic - special_bonds lj 0.0 0.0 0.0 - } - - } # HPForceField diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README.txt b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README.txt new file mode 100644 index 0000000000..eca0a1b7f4 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README.txt @@ -0,0 +1,17 @@ + +This directory contains an example of a couarse-grained (vaguely protein-like) +heteropolymer consisting of 14 residues, each of which has 2 atoms +(one backbone atom, one residue atom.) + +There are two types of residues, H and P. +The R-atom for the H residue are attracted to eachother. +All other atoms are repulsive. + +Instructions on how to build LAMMPS input files and +run a short simulation are provided in other README files. + +step 1) +README_setup.sh + +step2) +README_run.sh diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_run.sh b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_run.sh new file mode 100755 index 0000000000..8bf8e27648 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_run.sh @@ -0,0 +1,20 @@ +# --- Running LAMMPS --- +# -- Prerequisites: -- +# The "run.in.nvt" file is a LAMMPS input script containing +# references to the input scripts and data files +# you hopefully have created earlier with moltemplate.sh: +# system.in.init, system.in.settings, system.data +# If not, carry out the instructions in "README_setup.sh". +# +# -- Instructions: -- +# If "lmp_mpi" is the name of the command you use to invoke lammps, +# then you would run lammps on these files this way: + + +lmp_mpi -i run.in.nvt + + + +# If you have compiled the MPI version of lammps, you can run lammps in parallel +#mpirun -np 4 lmp_mpi -i run.in.nvt +# (assuming you have 4 processors available) diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_setup.sh b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_setup.sh new file mode 100755 index 0000000000..cf22ee0fa1 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_setup.sh @@ -0,0 +1,23 @@ +# Use these commands to generate the LAMMPS input script and data file +# (and other auxilliary files): + + +# Create LAMMPS input files this way: +cd moltemplate_files + + # run moltemplate + + moltemplate.sh system.lt + + # This will generate various files with names ending in *.in* and *.data. + # These files are the input files directly read by LAMMPS. Move them to + # the parent directory (or wherever you plan to run the simulation). + + mv -f system.in* system.data ../ + + # Optional: + # The "./output_ttree/" directory is full of temporary files generated by + # moltemplate. They can be useful for debugging, but are usually thrown away. + rm -rf output_ttree/ + +cd ../ diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_visualize.txt b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_visualize.txt new file mode 100644 index 0000000000..518df2c20a --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/README_visualize.txt @@ -0,0 +1,86 @@ + + ------- To view a lammps trajectory in VMD -------- + + +1) Build a PSF file for use in viewing with VMD. + +This step works with VMD 1.9 and topotools 1.2. +(Older versions, like VMD 1.8.6, don't support this.) + + +a) Start VMD +b) Menu Extensions->Tk Console +c) Enter: + +(I assume that the the DATA file is called "system.data") + + topo readlammpsdata system.data full + animate write psf system.psf + +2) + +Later, to Load a trajectory in VMD: + + Start VMD + Select menu: File->New Molecule + -Browse to select the PSF file you created above, and load it. + (Don't close the window yet.) + -Browse to select the trajectory file. + If necessary, for "file type" select: "LAMMPS Trajectory" + Load it. + + ---- A note on trajectory format: ----- +If the trajectory is a DUMP file, then make sure the it contains the +information you need for pbctools (see below. I've been using this +command in my LAMMPS scripts to create the trajectories: + + dump 1 all custom 5000 DUMP_FILE.lammpstrj id mol type x y z ix iy iz + +It's a good idea to use an atom_style which supports molecule-ID numbers +so that you can assign a molecule-ID number to each atom. (I think this +is needed to wrap atom coordinates without breaking molecules in half.) + +Of course, you don't have to save your trajectories in DUMP format, +(other formats like DCD work fine) I just mention dump files +because these are the files I'm familiar with. + +3) ----- Wrap the coordinates to the unit cell + (without cutting the molecules in half) + +a) Start VMD +b) Load the trajectory in VMD (see above) +c) Menu Extensions->Tk Console +d) Try entering these commands: + + pbc wrap -compound res -all + pbc box + + ----- Optional ---- + It can help to shift the location of the periodic boundary box + To shift the box in the y direction (for example) do this: + + pbc wrap -compound res -all -shiftcenterrel {-0.05 -0.15 -0.05} + pbc box -shiftcenterrel {-0.05 -0.15 -0.05} -width 1.6 -style tubes + + Distances are measured in units of box-length fractions, not Angstroms. + + Alternately if you have a solute whose atoms are all of type 1, + then you can also try this to center the box around it: + + pbc wrap -sel type=1 -all -centersel type=2 -center com + +4) + You should check if your periodic boundary conditions are too small. + To do that: + select Graphics->Representations menu option + click on the "Periodic" tab, and + click on the "+x", "-x", "+y", "-y", "+z", "-z" checkboxes. + +5) Optional: If you like, change the atom types in the PSF file so + that VMD recognizes the atom types, use something like: + +sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf +sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf +sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf + +(If you do this, it might effect step 2 above.) diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/images/2bead_monomer.jpg b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/images/2bead_monomer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35af99387ec987f274dc91c837cd4a6fb23a21ee GIT binary patch literal 3784 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%0DLRuY~D72J3orJw944 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 literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/README.sh b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/README.sh new file mode 100755 index 0000000000..bcc5947b1f --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/README.sh @@ -0,0 +1,6 @@ +# Use these commands to generate the LAMMPS input script and data file +# (and other auxilliary files): +moltemplate.sh system.lt + +# This will generate various files with names ending in *.in* and *.data. + diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/README.txt b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/README.txt new file mode 100644 index 0000000000..3d9fdab320 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/README.txt @@ -0,0 +1,19 @@ +# In this example, we construct a large molecule ("Polymer") +# from multiple smaller molecular subunits ("Monomer"). +# The "Monomer" molecule contains two atoms (type "CA", and "R") +# +# "Monomer" +# +# @R +# | +# @CA +# +# Eventually, we will connect multiple "Monomer" molecular subunits +# together to form a polymer, as shown below: +# +# @R @R +# | | +# _@CA_ _@CA_ +# ... -.@CA-' `-@CA-' ` ... +# | | +# @R @R diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/forcefield.lt b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/forcefield.lt new file mode 100644 index 0000000000..8dfdf98a41 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/forcefield.lt @@ -0,0 +1,110 @@ + +# Define a "ForceField" object. +# A force field in moltemplate is any object containing mostly pair_coeff, +# bond_coeff, angle_coeff, dihedral_coeff, "Bonds By Type", "Angles By Type", +# "Dihedrals By Type", "Impropers By Type", "Data Masses" (and "In Charges") +# information. Later on when we define molecule objects, we can access all +# of the atom types and force field parameters here using "inherits ForceField". +# (See "monomer.lt" for example.) + + +ForceField { + + + # LAMMPS supports a large number of "styles" (ie. equations for calculating + # forces between particles). At some point, we must eventually select the + # formulas we want to use. This can be done anywhere, but we might as + # well specify that now. Later on we will specify the parameters + # which go into these equations. + + write_once("In Init") { + # -- Styles used in "ForceField" -- + # -- (Changing these styles will change the formulas above) -- + units real + atom_style full + bond_style harmonic + angle_style harmonic + dihedral_style charmm + pair_style lj/cut 11.0 + } + + + # There are 2 atom types: "CA" and "R" + write_once("Data Masses") { + @atom:CA 13.0 + @atom:R 50.0 + } + + # ---- 2-body (non-bonded) interactions: ---- + # U(r) = 4*epsilon((sigma/r)^12 - (sigma/r)^6) + # (for details see http://lammps.sandia.gov/doc/pair_lj.html) + # atom-type atom-type epsilon sigma + + write_once("In Settings") { + # Pairwise (non-bonded) interactions: + # atomType1 atomType2 epsilon sigma + pair_coeff @atom:CA @atom:CA 0.10 2.0 + pair_coeff @atom:R @atom:R 0.50 3.6 + # (Interactions between different atoms are determined by mixing rules.) + } + + # ---- 2-body (bonded) interactions: ---- + # + # Ubond(r) = k*(r-r0)^2 + # (for details see http://lammps.sandia.gov/doc/bond_harmonic.html) + # + write_once("In Settings") { + # bond-type k r0 + bond_coeff @bond:Sidechain 15.0 3.4 + bond_coeff @bond:Backbone 15.0 3.7 + } + + # ---- 3-body angle (hinge) interactions: ---- + + # Rules for determining 3-body (angle) interactions by atom & bond type: + # angle-type atomType1 atomType2 atomType3 bondType1 bondType2 + + write_once("Data Angles By Type") { + @angle:Backbone @atom:CA @atom:CA @atom:CA @bond:* @bond:* + @angle:Sidechain @atom:CA @atom:CA @atom:R @bond:* @bond:* + } + + # Force-field parameters for 3-body (angle) interactions: + # + # Uangle(theta) = k*(theta-theta0)^2 + # (for details see http://lammps.sandia.gov/doc/angle_harmonic.html) + # + write_once("In Settings") { + # angle-type k theta0 + angle_coeff @angle:Backbone 30.00 114 + angle_coeff @angle:Sidechain 30.00 132 + } + + # ---- 4-body dihedral interactions ---- + + # 4-body interactions in this example are listed by atomType + # Rules for determining 4-body (dihedral) interactions by atom & bond type: + write_once("Data Dihedrals By Type") { + # dihedralType atmType1 atmType2 atmType3 atmType4 bondType1 bType2 bType3 + @dihedral:CCCC @atom:CA @atom:CA @atom:CA @atom:CA @bond:* @bond:* @bond:* + @dihedral:RCCR @atom:R @atom:CA @atom:CA @atom:R @bond:* @bond:* @bond:* + } + + # The forumula used is: + # + # Udihedral(phi) = K * (1 + cos(n*phi - d)) + # + # The d parameter is in degrees, K is in kcal/mol/rad^2. + # (for details, see http://lammps.sandia.gov/doc/dihedral_charmm.html) + # + # The corresponding command is + # dihedral_coeff dihedralType K n d w(ignored) + + write_once("In Settings") { + dihedral_coeff @dihedral:CCCC -0.5 1 -180 0.0 + dihedral_coeff @dihedral:RCCR -1.5 1 -180 0.0 + } + +} # "ForceField" + + diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/monomer.lt b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/monomer.lt new file mode 100644 index 0000000000..286eb12ff4 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/monomer.lt @@ -0,0 +1,20 @@ +import "forcefield.lt" # contains force-field parameters + +Monomer inherits ForceField { + + write("Data Atoms") { + # atomId molId atomType charge x y z + $atom:ca $mol:... @atom:CA 0.0 0.000 1.0000 0.0000000 + $atom:r $mol:... @atom:R 0.0 0.000 4.4000 0.0000000 + } + write("Data Bonds") { + # bond-id bond-type atom-id1 atom-id2 + $bond:cr @bond:Sidechain $atom:ca $atom:r + } +} + + + +# NOTE: The "..." in "$mol:..." tells moltemplate that this molecule is part +# of a larger molecule, and to use the larger parent object's +# molecule id number as it's own. diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/polymer.lt b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/polymer.lt new file mode 100644 index 0000000000..5ca8eb03e9 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/polymer.lt @@ -0,0 +1,27 @@ +import "monomer.lt" # <-- defines "Monomer" and "ForceField" + +Polymer inherits ForceField { + + # The next line is optional + create_var {$mol} # force all monomers to share the same molecule-ID + + # Now create some monomers + + mon1 = new Monomer + mon2 = new Monomer.rot(180.0, 1,0,0).move(3.2,0,0) + mon3 = new Monomer.move(6.4,0,0) + mon4 = new Monomer.rot(180.0, 1,0,0).move(9.6,0,0) + mon5 = new Monomer.move(12.8,0,0) + mon6 = new Monomer.rot(180.0, 1,0,0).move(16.0,0,0) + mon7 = new Monomer.move(19.2,0,0) + + # Now, link the monomers together this way: + write("Data Bonds") { + $bond:backbone1 @bond:Backbone $atom:mon1/ca $atom:mon2/ca + $bond:backbone2 @bond:Backbone $atom:mon2/ca $atom:mon3/ca + $bond:backbone3 @bond:Backbone $atom:mon3/ca $atom:mon4/ca + $bond:backbone4 @bond:Backbone $atom:mon4/ca $atom:mon5/ca + $bond:backbone5 @bond:Backbone $atom:mon5/ca $atom:mon6/ca + $bond:backbone6 @bond:Backbone $atom:mon6/ca $atom:mon7/ca + } +} diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/system.lt b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/system.lt new file mode 100644 index 0000000000..480f8c0216 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/moltemplate_files/system.lt @@ -0,0 +1,29 @@ +import "polymer.lt" + + +# Specify the periodic boundary conditions: +write_once("Data Boundary") { + 0 90.0 xlo xhi + 0 90.0 ylo yhi + 0 90.0 zlo zhi +} + +# Create 27 polymers in a rectangular grid + +polymers = new Polymer [3].move(0, 0, 30.0) + [3].move(0, 30.0, 0) + [3].move(30.0, 0, 0) + + + +# ------------ Optional: ------------ +# Now (for fun) shift some of the polymers +# in the x direction by a distance of 20.0 +# Suppose we want to move the middle slice +# (which has constant Z). We do that this way: +# polymers[1][*][*].move(20,0,0) +# more examples: +# polymers[*][1][*].move(0,0,20) +# polymers[*][*][1].move(0,20,0) + + diff --git a/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/run.in.nvt b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/run.in.nvt new file mode 100644 index 0000000000..e9fdbf41fd --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_2bead_polymer/run.in.nvt @@ -0,0 +1,32 @@ +# -- Init Section -- + +include system.in.init + +# -- Atom Definition Section -- + +read_data system.data + +# -- Settings Section -- + +include system.in.settings + +# -- Run Section -- + + +timestep 2.0 +dump 1 all custom 5000 traj_nvt.lammpstrj id mol type x y z ix iy iz + +# To use Langevin dynamics in LAMMPS you need both "fix langevin" and "fix nve". +# (See http://lammps.sandia.gov/doc/fix_langevin.html for details.) + +fix fxlan all langevin 300.0 300.0 5000.0 48279 +fix fxnve all nve + + +thermo_style custom step temp pe etotal press vol epair ebond eangle edihed +thermo 1000 # time interval for printing out "thermo" data + +run 40000000 + +write_data system_after_nvt.data + diff --git a/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/monomer.lt b/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/monomer.lt index a8a35339f5..88c1f6e322 100644 --- a/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/monomer.lt +++ b/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/monomer.lt @@ -10,7 +10,10 @@ # ---------------------------------------------------------------------- -Monomer { +import "polymer_forcefield.lt" # contains force-field parameters + + +Monomer inherits ForceField { # atom-id mol-id atom-type charge x y z @@ -24,88 +27,14 @@ Monomer { # be a part of a larger molecule, and (if so) to use the larger # parent object's molecule id number as it's own - - # atom-type mass - - write_once("Data Masses") { - @atom:CA 13.0 - @atom:R 50.0 - } - - # atom-type atom-type epsilon sigma - - write_once("In Settings") { - pair_coeff @atom:CA @atom:CA 0.05 2.0 - pair_coeff @atom:R @atom:R 0.50 2.0 - } - # bond-id bond-type atom-id1 atom-id2 write("Data Bonds") { $bond:CR1 @bond:sidechain $atom:CA $atom:R1 $bond:CR2 @bond:sidechain $atom:CA $atom:R2 } - - write_once("In Settings") { - # bond-type k r0 - bond_coeff @bond:sidechain 30.0 1.2 - bond_coeff @bond:bb 30.0 2.0 # "bb" shorthand for "backbone" - } - - # For a compound molecule consisting of smaller building blocks (such as a - # polymer built from monomers), it is tedious to explicitly list all of the - # angles, dihedrals in the entire molecule. Instead, you can define rules - # for automatically generating all the angular interactions between bonded - # atoms according to their connectivity and the atom/bond type. - # Later, when you connect multiple monomers together to form a polymer, - # appropriate bond-angle forces will be applied to these atoms automatically - # (as well as dihedral and improper forces, if defined). - - # Rules for determining 3 and 4-body bonded interactions by type - - # angle-type atomType1 atomType2 atomType3 bondType1 bondType2 - - write_once("Data Angles By Type") { - @angle:backbone @atom:CA @atom:CA @atom:CA @bond:* @bond:* - @angle:sidechain @atom:CA @atom:CA @atom:R @bond:* @bond:* - @angle:RCR @atom:R @atom:CA @atom:R @bond:* @bond:* - } - - # ("@angle:RCR" defines the angle between the R-C-R atoms within a monomer. - # The other angular interactions are between atoms in neighboring monomers.) - - - # dihedral-type AtomType1 AtomType2 AtomType3 AtomType4 bondType1 btyp2 btyp3 - - write_once("Data Dihedrals By Type") { - @dihedral:backbn @atom:CA @atom:CA @atom:CA @atom:CA @bond:* @bond:* @bond:* - } - - # Parameters for these new angular interactions must be defined. (I recommend - # putting all force-field parameters (coeffs) in the "In Settings" section.) - - write_once("In Settings") { - # angle-type k theta0 - angle_coeff @angle:backbone 50.00 160 - angle_coeff @angle:sidechain 50.00 120 - angle_coeff @angle:RCR 50.00 120 - # dihedral-type K1 K2 K3 K4 - dihedral_coeff @dihedral:backbn 1.411036 -0.271016 3.145034 0.0 - } + # atom-type mass } # Monomer - - - - -# ------------------------------------------------------------------------- -# Heteropolymers: -# -# There is a similar example for heteropolymers which is distributed online -# bundled with the moltemplate software. It is named "2bead_heteropolymer", -# and it demonstrates how to share backbone (CA) atoms, bonds and angles -# (so that you don't have to define them seperately for each type of monomer). -# ------------------------------------------------------------------------- - diff --git a/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/polymer.lt b/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/polymer.lt index 31a36d07ce..5eae2abe29 100644 --- a/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/polymer.lt +++ b/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/polymer.lt @@ -1,9 +1,9 @@ -import "monomer.lt" +import "monomer.lt" # <-- defines "Monomer" and "ForceField" -Polymer { +Polymer inherits ForceField { create_var {$mol} # optional:force all monomers to share the same molecule-ID - # (The "Data Atoms" in Monomer must use "$mol:..." notation.) + #(The "Data Atoms" in Monomer must use "$mol:..." notation.) # Make a chain of monomers monomers = new Monomer [12].rot(180, 1,0,0).move(2.0, 0, 0) @@ -29,4 +29,4 @@ Polymer { # Angle, dihedral and improper interactions will be generated -# automatically according to the instructions in "monomer.lt" +# automatically according to the instructions in "forcefield.lt" diff --git a/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/polymer_forcefield.lt b/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/polymer_forcefield.lt new file mode 100644 index 0000000000..ef7efe24e4 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/abstract_translocation/moltemplate_files/polymer_forcefield.lt @@ -0,0 +1,120 @@ +# Define a "ForceField" object. +# A force field in moltemplate is any object containing mostly pair_coeff, +# bond_coeff, angle_coeff, dihedral_coeff, "Bonds By Type", "Angles By Type", +# "Dihedrals By Type", "Impropers By Type", "Data Masses" (and "In Charges") +# information. Later on when we define molecule objects, we can access all +# of the atom types and force field parameters here using "inherits ForceField". +# (See "monomer.lt" for example.) + + +ForceField { + + # LAMMPS supports a large number of "styles" (ie. equations for calculating + # forces between particles). At some point, we must eventually select the + # formulas we want to use. This can be done anywhere, but we might as + # well specify that now. Later on we will specify the parameters + # which go into these equations. + + write_once("In Init") { + # -- Styles used in "ForceField" -- + # -- (Changing these styles will change the formulas above) -- + units real + atom_style full + bond_style harmonic + angle_style harmonic + dihedral_style opls + pair_style lj/cut 11.0 + } + + + # There are 2 atom types: "CA" and "R" + + write_once("Data Masses") { + @atom:CA 13.0 + @atom:R 50.0 + } + + # ---- 2-body (non-bonded) interactions: ---- + # U(r) = 4*epsilon((sigma/r)^12 - (sigma/r)^6) + # (for details see http://lammps.sandia.gov/doc/pair_lj.html) + # atom-type atom-type epsilon sigma + + write_once("In Settings") { + pair_coeff @atom:CA @atom:CA 0.05 2.0 + pair_coeff @atom:R @atom:R 0.50 2.0 + # (Interactions between different atoms are determined by mixing rules.) + } + + # ---- 2-body (bonded) interactions: ---- + # + # Ubond(r) = k*(r-r0)^2 + # (for details see http://lammps.sandia.gov/doc/bond_harmonic.html) + # + write_once("In Settings") { + # bond-type k r0 + bond_coeff @bond:sidechain 30.0 1.2 + bond_coeff @bond:bb 30.0 2.0 # "bb" shorthand for "backbone" + } + + # For a compound molecule consisting of smaller building blocks (such as a + # polymer built from monomers), it is tedious to explicitly list all of the + # angles, dihedrals in the entire molecule. Instead, you can define rules + # for automatically generating all the angular interactions between bonded + # atoms according to their connectivity and the atom/bond type. + # Later, when you connect multiple monomers together to form a polymer, + # appropriate bond-angle forces will be applied to these atoms automatically + # (as well as dihedral and improper forces, if defined). + + # ---- 3-body angle (hinge) interactions ---- + # Rules for determining 3-body interactions by type + + # angle-type atomType1 atomType2 atomType3 bondType1 bondType2 + + write_once("Data Angles By Type") { + @angle:backbone @atom:CA @atom:CA @atom:CA @bond:* @bond:* + @angle:sidechain @atom:CA @atom:CA @atom:R @bond:* @bond:* + @angle:RCR @atom:R @atom:CA @atom:R @bond:* @bond:* + } + + # ("@angle:RCR" defines the angle between the R-C-R atoms within a monomer. + # The other angular interactions are between atoms in neighboring monomers.) + + # Force-field parameters for 3-body (angle) interactions: + # + # Uangle(theta) = k*(theta-theta0)^2 + # (for details see http://lammps.sandia.gov/doc/angle_harmonic.html) + # + write_once("In Settings") { + # angle-type k theta0 + angle_coeff @angle:backbone 50.00 160 + angle_coeff @angle:sidechain 50.00 120 + angle_coeff @angle:RCR 50.00 120 + } + + # ---- 4-body dihedral interactions ---- + + # Rules for determining 4-body (dihedral) interactions by atom & bond type: + # dihedralType atmType1 atmType2 atmType3 atmType4 bondType1 bType2 bType3 + + write_once("Data Dihedrals By Type") { + @dihedral:backbn @atom:CA @atom:CA @atom:CA @atom:CA @bond:* @bond:* @bond:* + } + # (A more realistic force field would have more dihedral and angle types) + + + # The forumula used for dihedral interactions is: + # + # Udihedral(phi) = (K1/2)*(1+cos(phi)) + (K2/2)*(1+cos(2*phi)) + + # ... (K3/2)*(1+cos(3*phi)) + (K4/2)*(1+cos(4*phi)) + # (for details, see http://lammps.sandia.gov/doc/dihedral_opls.html) + # + # The corresponding command is + + write_once("In Settings") { + # dihedral-type K1 K2 K3 K4 + dihedral_coeff @dihedral:backbn 1.411036 -0.271016 3.145034 0.0 + } + +} # "ForceField" + + diff --git a/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README.txt b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README.txt new file mode 100644 index 0000000000..c3c4faecb1 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README.txt @@ -0,0 +1,20 @@ +# CG model of benzene where each molecule is represented as an ellipsoid +# and the intermolecular interactions are described with the Gay-Berne potential +# +# Do not expect realistic behaviour from this example. +# The long-range electrostatic interactions are missing. +# +# To build the files which LAMMPS needs, follow the instructions in +# README_setup.sh +# +# To run the simulation in LAMMPS, follow the instructions in: +# README_run.sh +# +# Finally, to view the simulation results in OVITO, follow the instructions in: +# README_visualization_OVITO.txt +# README_visualization_OVITO_ellipsoids.png +# +# +# This example was provided by Otello M. Roscion (U.Southampton) +# and Matteo Ricci(U.Bologna) Many thanks for editing and debugging +# moltemplate code to get this working! diff --git a/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_run.sh b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_run.sh new file mode 100755 index 0000000000..91e79124e1 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_run.sh @@ -0,0 +1,20 @@ +# --- Running LAMMPS --- +# +# The file "run.in.npt" is a LAMMPS +# input script which link to the input scripts and data files +# you hopefully have created earlier with moltemplate.sh: +# system.in.init, system.in.settings, system.data +# If not, carry out the instructions in "README_setup.sh". +# +# -- Instructions: -- +# If "lmp_mpi" is the name of the command you use to invoke lammps, +# then you would run lammps on these files this way: + +lmp_mpi -i run.in.npt # simulation at constant pressure + +# (Note: The "lmp_mpi" program is also frequently called "lmp_ubuntu", +# and has many other names depending upon how it was compiled.) + +# If you have compiled the MPI version of lammps, you can run lammps in parallel +#mpirun -np 4 lmp_mpi -i run.in.npt +# (assuming you have 4 processors available) diff --git a/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_setup.sh b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_setup.sh new file mode 100755 index 0000000000..3a5a6d2e67 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_setup.sh @@ -0,0 +1,19 @@ +# Create LAMMPS input files this way: +cd moltemplate_files + + # Run moltemplate with the "-allow-wildcards" and "-nocheck" arguments + # as well as a custom -atomstyle + + moltemplate.sh -atomstyle "atomid atomtype flag density x y z" system.lt \ + -allow-wildcards -nocheck + + # This will generate various files with names ending in *.in* and *.data. + # Move them to the directory where you plan to run LAMMPS (in this case "../") + mv -f system.data system.in* ../ + + # Optional: + # The "./output_ttree/" directory is full of temporary files generated by + # moltemplate. They can be useful for debugging, but are usually thrown away. + rm -rf output_ttree/ + +cd ../ diff --git a/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_visualization_OVITO.txt b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_visualization_OVITO.txt new file mode 100644 index 0000000000..cd2498b1a1 --- /dev/null +++ b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_visualization_OVITO.txt @@ -0,0 +1,12 @@ +You can visualize the trajectory (dump file) with the program OVITO (www.ovito.org). You will have to define few parameters, thought. Invoke ovito using: + +ovito traj.lammpstrj + +On the right panel of ovito, under the section "LAMMPS dump" click on the button "Edit column mapping" and enter the fields as specified in the attached png file. On the same panel, tick "File contains a time series" to display the entire trajectory. + +A screenshot of these settings is available: +README_visualization_OVITO_ellipsoids.png + + +Otello M. Roscioni +roscioni@gmail.com diff --git a/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_visualization_OVITO_ellipsoids.png b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/README_visualization_OVITO_ellipsoids.png new file mode 100644 index 0000000000000000000000000000000000000000..15e5e77c4bb87793f3e7a9cfe81b5be5616dc39b GIT binary patch literal 72390 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 V6~ac-lmS4Sq^O)omC!H0{{?Q2Xbk`W literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/images/benzene_cg_ellipsoid.png b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/images/benzene_cg_ellipsoid.png new file mode 100644 index 0000000000000000000000000000000000000000..89629bde4840d81a79c07a3d65c0ff48c3cd7cf3 GIT binary patch literal 2011 zcmV<12PF83P)!x&VA|;`nMx0i(Z8{+$k9qZv#ONOW z@wfjleanGAec-x%IoScD?2o0Zw{07-x@C#sP#G)*mPbQOGNFRH_NaPPDvTCU0TWb} zlxJ8`R4PuMJWZS#$6q;(s4?E05xdZpTp!vv+dlZKhmIV6(}6#>f7hP*4SR0EUo33PvFWMI=&eMyQ0k@@&6sjnQ($Xr-oY zr)<1B-aG5`t{XnE?f8)=PaeLcz@NYOgWs6N>31QA<&}oFy`y1utzl)gW@*_`)lgMR z2z{n}@Te%>JG^&2v=f{Y)PXv~`Tn(46%ZA?chq%*S-}TE)o2>W_8lwiynKzxbdypf zv}5_`z7K5;&pdJRu}cDc=NI;VMYJ3gf#Fi%%3aH>t_@gPsu&DCJ{Ugqu-<#TcQ_}A zfU4kw;C=smRePN8!9#F3r-(4mzC%O^K~V)!LDW!}7z~xG-}QFdc0${>Sdkk)e9P6- z-~aY+k6+Xp{`hUXuMd?zT{oW5Xu#!HRjh3t(lnlC=PE!cb=jiq0RK z8KR(~nAtpxJ`^)U0F%<&T?7?}6-YTDnkX4^8uIiXU*y>H>#Qtqr*35L{a^asGyjgm zUnp>l<(`xhIcKhX=ZMuU4TC{LsK7b!LGhuttaJJr`({KHK@e5ID5adwx~gKPSn1(< z6%fHJBmG-2bp%yJ12ZOgiM;oQD=`wUymSg!y$87Cq5*psZjLE4966j9nr28m|0I1z`O^W^-fDkAzi``WxQ^$8Z4*Z92QnK>wdQu=V)wnZh7lViM@ zIQjQYrek~gq5_NBqw0hh3+wA=7>_$9O9J9>k=9pP$Oecl)6H^W!{tG2nk6zSk>D_xqFNnwi zvx1Qj>1#_=5K&4=JzVyP_JNnuLxNx?m{|`}3MC7roI80A*w=2!%%`kO&V`(nI7`G? zrtJzTCb||T8%Bt@6*)6FtnTS(ES?KIx={jVMV`J1vWed?}jc9m=g zDZ0O^E9ypB8hM5zPgQ${OEt~FlgkY6%ly9e=a+`QarM9gbBo)&aXVs)q}1Dg)@3G> zj@U&E#Y_*C%zY2s|HK>Kmj3H~_!GBZv(Gty0BpbaR@aTgd8KYDnt>-&*3Zzc!TECT zPDc=mCi(KKy#!cK4n^Dd|@4 z^%m##CQNpySA5m4d{qejIw%?E0xC)|Lon1i5XdP~qT#%!>snGOC!l^T#_~u?@!_9+ z@7cHhACG^f&wlZSJ!Y~`t8|@6-tC;bN>z7?$eOAQRn-AmRVS)?MpcfN9A6ZX=T!A* t&iU|nzWT=_EVR%<3oW$JLJR%B>K}lc)Wkw2N-O{X002ovPDHLkV1gLO)WiS) literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/images/t=0.jpg b/tools/moltemplate/examples/coarse_grained/ellipsoids_CG_benzene/images/t=0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b3514f4c8ab106b4a72227760638be21f692812a GIT binary patch literal 23529 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 YI@cXgBThM6= len(tokens)) or (i_vy >= len(tokens)) or (i_vz >= len(tokens))): @@ -697,8 +698,9 @@ def WriteFrameToData(out_file, tokens[i_vz] = vxvyvz[2] else: - if data_settings.column_names[ - i_vx] not in dump_column_names: + if (dump_column_names and + (data_settings.column_names[ + i_vx] not in dump_column_names)): raise InputError('Error(dump2data): You have a vector coordinate in your DATA file named \"' + data_settings.column_names[i_vx] + '\"\n' ' However there are no columns with this name in your DUMP file\n' ' (or the column was not in the expected place).\n' @@ -1273,6 +1275,7 @@ def main(): descr_str, misc_settings, data_settings, + dump_column_names, frame_natoms, frame_coords, frame_coords_ixiyiz, diff --git a/tools/moltemplate/moltemplate/ettree.py b/tools/moltemplate/moltemplate/ettree.py index c8d90c7e42..20353a86ef 100755 --- a/tools/moltemplate/moltemplate/ettree.py +++ b/tools/moltemplate/moltemplate/ettree.py @@ -56,7 +56,7 @@ try: iEsptAtomCoords, iEsptAtomVects, iEsptAtomType, iEsptAtomID from .ttree_matrix_stack import AffineTransform, MultiAffineStack, \ LinTransform -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from ttree import * from ttree_lex import * @@ -482,7 +482,7 @@ def WriteFiles(files_content, suffix='', write_to_stdout=True): -def main() +def main(): """ This is is a "main module" wrapper for invoking ettree.py as a stand alone program. This program: @@ -495,8 +495,8 @@ def main() """ g_program_name = 'ettree.py' - g_date_str = '2016-12-22' - g_version_str = '0.36.0' + g_date_str = '2018-6-26' + g_version_str = '0.37.0' SimpleCounter.default_n0 = 0 # counters in Espresso begin at 0, not 1 diff --git a/tools/moltemplate/moltemplate/force_fields/README.txt b/tools/moltemplate/moltemplate/force_fields/README.txt new file mode 100644 index 0000000000..d0650a0f72 --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/README.txt @@ -0,0 +1,13 @@ + +If moltemplate is unable to locate an .LT file that the user has requested +(ie. using the "import" command) in the current local directory, +moltemplate will search for that file here. + +This directory contains moltemplate files (.LT files) containing common +force fields (including parameters and rules for creating bonded interactions), +as well as definitions of molecules which are frequently used (for example +SPCE water). + +The scripts used to convert these force fields are located here as well, along +with the original files containing the force field parameters (when available). + diff --git a/tools/moltemplate/moltemplate/force_fields/SDK_lipid+chol.lt b/tools/moltemplate/moltemplate/force_fields/SDK_lipid+chol.lt deleted file mode 100644 index dd54c6b697..0000000000 --- a/tools/moltemplate/moltemplate/force_fields/SDK_lipid+chol.lt +++ /dev/null @@ -1,423 +0,0 @@ -# Autogenerated by EMC 2 LT tool v0.2 on 2017-02-28 -# -# ./emcprm2lt.py --pair-style=lj/sdk/coul/long --bond-style=harmonic --angle-style=sdk sdk_lipids.prm sdk_cholesterol.prm --name=SDK_lipid+chol --units -# -# Adapted from EMC by Pieter J. in 't Veld -# Originally written as, FFNAME:SDK STYLE:COARSE VERSION:1.0 on Oct 2014 - -SDK { - write_once("Data Masses") { - @atom:CM 42.080400 # CM - @atom:CMD2 26.037800 # CMD2 - @atom:CT 43.088300 # CT - @atom:CT2 29.061500 # CT2 - @atom:EST1 58.036600 # EST1 - @atom:EST2 58.036600 # EST2 - @atom:GL 41.072500 # GL - @atom:NC 87.164400 # NC - @atom:NH 44.076100 # NH - @atom:PH 94.971600 # PH - @atom:PHE 94.971600 # PHE - @atom:W 54.045600 # W - @atom:C2T 43.090000 # C2T - @atom:CM2 28.050000 # CM2 - @atom:CM2R 28.050000 # CM2R - @atom:CMDB 39.060000 # CMDB - @atom:CMB 40.060000 # CMB - @atom:CMR 41.070000 # CMR - @atom:CMR5 41.070000 # CMR5 - @atom:CTB 42.080000 # CTB - @atom:CTBA 27.050000 # CTBA - @atom:CTBB 27.050000 # CTBB - @atom:OAB 30.030000 # OAB - } # end of atom masses - - # ----- EQUIVALENCE CATEGORIES for bonded interaction lookup ----- - replace{ @atom:CM @atom:CM_bCM_aCM_dCM_iCM} - replace{ @atom:CMD2 @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2} - replace{ @atom:CT @atom:CT_bCT_aCT_dCT_iCT} - replace{ @atom:CT2 @atom:CT2_bCT2_aCT2_dCT2_iCT2} - replace{ @atom:EST1 @atom:EST1_bEST1_aEST1_dEST1_iEST1} - replace{ @atom:EST2 @atom:EST2_bEST2_aEST2_dEST2_iEST2} - replace{ @atom:GL @atom:GL_bGL_aGL_dGL_iGL} - replace{ @atom:NC @atom:NC_bNC_aNC_dNC_iNC} - replace{ @atom:NH @atom:NH_bNH_aNH_dNH_iNH} - replace{ @atom:PH @atom:PH_bPH_aPH_dPH_iPH} - replace{ @atom:PHE @atom:PHE_bPHE_aPHE_dPHE_iPHE} - replace{ @atom:W @atom:W_bW_aW_dW_iW} - replace{ @atom:C2T @atom:C2T_bC2T_aC2T_dC2T_iC2T} - replace{ @atom:CM2 @atom:CM2_bCM2_aCM2_dCM2_iCM2} - replace{ @atom:CM2R @atom:CM2R_bCM2R_aCM2R_dCM2R_iCM2R} - replace{ @atom:CMDB @atom:CMDB_bCMDB_aCMDB_dCMDB_iCMDB} - replace{ @atom:CMB @atom:CMB_bCMB_aCMB_dCMB_iCMB} - replace{ @atom:CMR @atom:CMR_bCMR_aCMR_dCMR_iCMR} - replace{ @atom:CMR5 @atom:CMR5_bCMR5_aCMR5_dCMR5_iCMR5} - replace{ @atom:CTB @atom:CTB_bCTB_aCTB_dCTB_iCTB} - replace{ @atom:CTBA @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA} - replace{ @atom:CTBB @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB} - replace{ @atom:OAB @atom:OAB_bOAB_aOAB_dOAB_iOAB} - # END EQUIVALENCE - - write_once("In Settings") { - # ----- Non-Bonded interactions ----- - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CM_bCM_aCM_dCM_iCM lj9_6 0.420000 4.506000 # CM-CM - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 lj9_6 0.312000 4.255500 # CM-CMD2 - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CT_bCT_aCT_dCT_iCT lj9_6 0.444000 4.545500 # CM-CT - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CT2_bCT2_aCT2_dCT2_iCT2 lj9_6 0.362000 4.363500 # CM-CT2 - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:EST1_bEST1_aEST1_dEST1_iEST1 lj9_6 0.470000 4.403000 # CM-EST1 - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.470000 4.403000 # CM-EST2 - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.420000 4.506000 # CM-GL - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.400000 5.128000 # CM-NC - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:NH_bNH_aNH_dNH_iNH lj9_6 0.330000 4.553000 # CM-NH - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.300000 4.953000 # CM-PH - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 0.300000 4.953000 # CM-PHE - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:W_bW_aW_dW_iW lj12_4 0.340000 4.438500 # CM-W - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 lj9_6 0.232000 4.005000 # CMD2-CMD2 - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:CT_bCT_aCT_dCT_iCT lj9_6 0.330000 4.295000 # CMD2-CT - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:CT2_bCT2_aCT2_dCT2_iCT2 lj9_6 0.269000 4.113000 # CMD2-CT2 - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:EST1_bEST1_aEST1_dEST1_iEST1 lj9_6 0.440000 4.005000 # CMD2-EST1 - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.440000 4.005000 # CMD2-EST2 - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.312000 4.255500 # CMD2-GL - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.350000 4.877500 # CMD2-NC - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:NH_bNH_aNH_dNH_iNH lj9_6 0.300000 4.302500 # CMD2-NH - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.300000 4.702500 # CMD2-PH - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 0.300000 4.702500 # CMD2-PHE - pair_coeff @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 @atom:W_bW_aW_dW_iW lj12_4 0.270000 4.188000 # CMD2-W - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:CT_bCT_aCT_dCT_iCT lj9_6 0.469000 4.585000 # CT-CT - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:CT2_bCT2_aCT2_dCT2_iCT2 lj9_6 0.383000 4.403000 # CT-CT2 - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:EST1_bEST1_aEST1_dEST1_iEST1 lj9_6 0.470000 4.442500 # CT-EST1 - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.470000 4.442500 # CT-EST2 - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.444000 4.545500 # CT-GL - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.420000 5.167500 # CT-NC - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:NH_bNH_aNH_dNH_iNH lj9_6 0.340000 4.925000 # CT-NH - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.320000 4.992500 # CT-PH - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 0.320000 4.992500 # CT-PHE - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:W_bW_aW_dW_iW lj12_4 0.360000 4.478000 # CT-W - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:CT2_bCT2_aCT2_dCT2_iCT2 lj9_6 0.312000 4.221000 # CT2-CT2 - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:EST1_bEST1_aEST1_dEST1_iEST1 lj9_6 0.390000 4.260500 # CT2-EST1 - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.390000 4.260500 # CT2-EST2 - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.362000 4.365000 # CT2-GL - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.320000 4.985500 # CT2-NC - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:NH_bNH_aNH_dNH_iNH lj9_6 0.320000 4.410500 # CT2-NH - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.280000 4.810500 # CT2-PH - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 0.280000 4.810500 # CT2-PHE - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:W_bW_aW_dW_iW lj12_4 0.290000 4.296000 # CT2-W - pair_coeff @atom:EST1_bEST1_aEST1_dEST1_iEST1 @atom:EST1_bEST1_aEST1_dEST1_iEST1 lj9_6 0.495000 4.300000 # EST1-EST1 - pair_coeff @atom:EST1_bEST1_aEST1_dEST1_iEST1 @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.495000 4.300000 # EST1-EST2 - pair_coeff @atom:EST1_bEST1_aEST1_dEST1_iEST1 @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.470000 4.403000 # EST1-GL - pair_coeff @atom:EST1_bEST1_aEST1_dEST1_iEST1 @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.750000 4.475000 # EST1-NC - pair_coeff @atom:EST1_bEST1_aEST1_dEST1_iEST1 @atom:NH_bNH_aNH_dNH_iNH lj9_6 0.850000 4.110000 # EST1-NH - pair_coeff @atom:EST1_bEST1_aEST1_dEST1_iEST1 @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.500000 4.550000 # EST1-PH - pair_coeff @atom:EST1_bEST1_aEST1_dEST1_iEST1 @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 0.500000 4.550000 # EST1-PHE - pair_coeff @atom:EST1_bEST1_aEST1_dEST1_iEST1 @atom:W_bW_aW_dW_iW lj12_4 0.820000 4.290000 # EST1-W - pair_coeff @atom:EST2_bEST2_aEST2_dEST2_iEST2 @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.495000 4.300000 # EST2-EST2 - pair_coeff @atom:EST2_bEST2_aEST2_dEST2_iEST2 @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.470000 4.403000 # EST2-GL - pair_coeff @atom:EST2_bEST2_aEST2_dEST2_iEST2 @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.750000 4.475000 # EST2-NC - pair_coeff @atom:EST2_bEST2_aEST2_dEST2_iEST2 @atom:NH_bNH_aNH_dNH_iNH lj9_6 0.850000 4.110000 # EST2-NH - pair_coeff @atom:EST2_bEST2_aEST2_dEST2_iEST2 @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.500000 4.550000 # EST2-PH - pair_coeff @atom:EST2_bEST2_aEST2_dEST2_iEST2 @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 0.500000 4.550000 # EST2-PHE - pair_coeff @atom:EST2_bEST2_aEST2_dEST2_iEST2 @atom:W_bW_aW_dW_iW lj12_4 0.820000 4.290000 # EST2-W - pair_coeff @atom:GL_bGL_aGL_dGL_iGL @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.420000 4.506000 # GL-GL - pair_coeff @atom:GL_bGL_aGL_dGL_iGL @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.650000 4.620000 # GL-NC - pair_coeff @atom:GL_bGL_aGL_dGL_iGL @atom:NH_bNH_aNH_dNH_iNH lj9_6 0.750000 4.190000 # GL-NH - pair_coeff @atom:GL_bGL_aGL_dGL_iGL @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.300000 4.750000 # GL-PH - pair_coeff @atom:GL_bGL_aGL_dGL_iGL @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 0.300000 4.750000 # GL-PHE - pair_coeff @atom:GL_bGL_aGL_dGL_iGL @atom:W_bW_aW_dW_iW lj12_4 0.640000 4.438500 # GL-W - pair_coeff @atom:NC_bNC_aNC_dNC_iNC @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.700000 5.750000 # NC-NC - pair_coeff @atom:NC_bNC_aNC_dNC_iNC @atom:NH_bNH_aNH_dNH_iNH lj9_6 0.880000 5.175000 # NC-NH - pair_coeff @atom:NC_bNC_aNC_dNC_iNC @atom:PH_bPH_aPH_dPH_iPH lj9_6 1.150000 4.200000 # NC-PH - pair_coeff @atom:NC_bNC_aNC_dNC_iNC @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 1.150000 4.200000 # NC-PHE - pair_coeff @atom:NC_bNC_aNC_dNC_iNC @atom:W_bW_aW_dW_iW lj12_4 0.900000 4.610000 # NC-W - pair_coeff @atom:NH_bNH_aNH_dNH_iNH @atom:NH_bNH_aNH_dNH_iNH lj9_6 1.100000 4.600000 # NH-NH - pair_coeff @atom:NH_bNH_aNH_dNH_iNH @atom:PH_bPH_aPH_dPH_iPH lj9_6 1.200000 3.800000 # NH-PH - pair_coeff @atom:NH_bNH_aNH_dNH_iNH @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 1.200000 3.800000 # NH-PHE - pair_coeff @atom:NH_bNH_aNH_dNH_iNH @atom:W_bW_aW_dW_iW lj12_4 0.800000 3.950000 # NH-W - pair_coeff @atom:PH_bPH_aPH_dPH_iPH @atom:PH_bPH_aPH_dPH_iPH lj9_6 1.400000 5.400000 # PH-PH - pair_coeff @atom:PH_bPH_aPH_dPH_iPH @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 1.400000 5.000000 # PH-PHE - pair_coeff @atom:PH_bPH_aPH_dPH_iPH @atom:W_bW_aW_dW_iW lj12_4 1.000000 4.030000 # PH-W - pair_coeff @atom:PHE_bPHE_aPHE_dPHE_iPHE @atom:PHE_bPHE_aPHE_dPHE_iPHE lj9_6 1.400000 4.600000 # PHE-PHE - pair_coeff @atom:PHE_bPHE_aPHE_dPHE_iPHE @atom:W_bW_aW_dW_iW lj12_4 1.000000 4.030000 # PHE-W - pair_coeff @atom:W_bW_aW_dW_iW @atom:W_bW_aW_dW_iW lj12_4 0.895000 4.371000 # W-W - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.420000 5.167500 # C2T-NC - pair_coeff @atom:CMR5_bCMR5_aCMR5_dCMR5_iCMR5 @atom:CT_bCT_aCT_dCT_iCT lj9_6 0.444000 4.545500 # CMR5-CT - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA lj9_6 0.252000 4.767700 # C2T-CTBA - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:CTB_bCTB_aCTB_dCTB_iCTB lj9_6 0.469000 4.585000 # CT-CTB - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CMR_bCMR_aCMR_dCMR_iCMR lj9_6 0.331000 4.771400 # C2T-CMR - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA lj9_6 0.383000 4.403000 # CT-CTBA - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB lj9_6 0.252000 4.767700 # C2T-CTBB - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB lj9_6 0.383000 4.403000 # CT-CTBB - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.444000 4.545500 # C2T-GL - pair_coeff @atom:CT_bCT_aCT_dCT_iCT @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.437000 4.033000 # CT-OAB - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CM2R_bCM2R_aCM2R_dCM2R_iCM2R lj9_6 0.254000 4.610100 # C2T-CM2R - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:CTB_bCTB_aCTB_dCTB_iCTB lj9_6 0.383000 4.403000 # CT2-CTB - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 lj9_6 0.330000 4.295000 # C2T-CMD2 - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA lj9_6 0.312000 4.221000 # CT2-CTBA - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CMR5_bCMR5_aCMR5_dCMR5_iCMR5 lj9_6 0.331000 4.771400 # C2T-CMR5 - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB lj9_6 0.312000 4.221000 # CT2-CTBB - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:W_bW_aW_dW_iW lj12_4 0.360000 4.478000 # C2T-W - pair_coeff @atom:CT2_bCT2_aCT2_dCT2_iCT2 @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.415000 3.950500 # CT2-OAB - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:C2T_bC2T_aC2T_dC2T_iC2T lj9_6 0.400000 4.811500 # C2T-C2T - pair_coeff @atom:CTB_bCTB_aCTB_dCTB_iCTB @atom:CTB_bCTB_aCTB_dCTB_iCTB lj9_6 0.269000 5.015500 # CTB-CTB - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.437000 4.033000 # C2T-OAB - pair_coeff @atom:CTB_bCTB_aCTB_dCTB_iCTB @atom:EST1_bEST1_aEST1_dEST1_iEST1 lj9_6 0.470000 4.442500 # CTB-EST1 - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.320000 4.992500 # C2T-PH - pair_coeff @atom:CTB_bCTB_aCTB_dCTB_iCTB @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.470000 4.442500 # CTB-EST2 - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CMDB_bCMDB_aCMDB_dCMDB_iCMDB lj9_6 0.354000 4.894100 # C2T-CMDB - pair_coeff @atom:CTB_bCTB_aCTB_dCTB_iCTB @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.420000 5.167500 # CTB-NC - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CT2_bCT2_aCT2_dCT2_iCT2 lj9_6 0.297000 4.527200 # C2T-CT2 - pair_coeff @atom:CTB_bCTB_aCTB_dCTB_iCTB @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA lj9_6 0.265000 4.464800 # CTB-CTBA - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CM2_bCM2_aCM2_dCM2_iCM2 lj9_6 0.291000 4.588000 # C2T-CM2 - pair_coeff @atom:CTB_bCTB_aCTB_dCTB_iCTB @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB lj9_6 0.265000 4.464800 # CTB-CTBB - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CM_bCM_aCM_dCM_iCM lj9_6 0.391000 4.545500 # C2T-CM - pair_coeff @atom:CTB_bCTB_aCTB_dCTB_iCTB @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.444000 4.545500 # CTB-GL - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CT_bCT_aCT_dCT_iCT lj9_6 0.409000 4.860100 # C2T-CT - pair_coeff @atom:CTB_bCTB_aCTB_dCTB_iCTB @atom:W_bW_aW_dW_iW lj12_4 0.360000 4.478000 # CTB-W - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CTB_bCTB_aCTB_dCTB_iCTB lj9_6 0.283000 4.910900 # C2T-CTB - pair_coeff @atom:CTB_bCTB_aCTB_dCTB_iCTB @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.437000 4.033000 # CTB-OAB - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:CMB_bCMB_aCMB_dCMB_iCMB lj9_6 0.310000 4.656400 # C2T-CMB - pair_coeff @atom:CTB_bCTB_aCTB_dCTB_iCTB @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.320000 4.992500 # CTB-PH - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:EST1_bEST1_aEST1_dEST1_iEST1 lj9_6 0.470000 4.442500 # C2T-EST1 - pair_coeff @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.320000 4.985500 # CTBA-NC - pair_coeff @atom:C2T_bC2T_aC2T_dC2T_iC2T @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.470000 4.442500 # C2T-EST2 - pair_coeff @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA @atom:EST1_bEST1_aEST1_dEST1_iEST1 lj9_6 0.390000 4.260500 # CTBA-EST1 - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CMR_bCMR_aCMR_dCMR_iCMR lj9_6 0.420000 4.506000 # CM-CMR - pair_coeff @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.390000 4.260500 # CTBA-EST2 - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CM2R_bCM2R_aCM2R_dCM2R_iCM2R lj9_6 0.390000 4.434200 # CM-CM2R - pair_coeff @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA @atom:W_bW_aW_dW_iW lj12_4 0.290000 4.296000 # CTBA-W - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CMR5_bCMR5_aCMR5_dCMR5_iCMR5 lj9_6 0.420000 4.506000 # CM-CMR5 - pair_coeff @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.362000 4.363500 # CTBA-GL - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.561000 4.093000 # CM-OAB - pair_coeff @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA lj9_6 0.265000 4.461000 # CTBA-CTBA - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CMDB_bCMDB_aCMDB_dCMDB_iCMDB lj9_6 0.362000 4.379000 # CM-CMDB - pair_coeff @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB lj9_6 0.265000 4.461000 # CTBA-CTBB - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CM2_bCM2_aCM2_dCM2_iCM2 lj9_6 0.336000 4.461900 # CM-CM2 - pair_coeff @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.280000 4.810500 # CTBA-PH - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CTB_bCTB_aCTB_dCTB_iCTB lj9_6 0.444000 4.545500 # CM-CTB - pair_coeff @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.380000 3.840000 # CTBA-OAB - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CMB_bCMB_aCMB_dCMB_iCMB lj9_6 0.420000 4.506000 # CM-CMB - pair_coeff @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB @atom:W_bW_aW_dW_iW lj12_4 0.290000 4.296000 # CTBB-W - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CTBA_bCTBA_aCTBA_dCTBA_iCTBA lj9_6 0.362000 4.363500 # CM-CTBA - pair_coeff @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.320000 4.985500 # CTBB-NC - pair_coeff @atom:CM_bCM_aCM_dCM_iCM @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB lj9_6 0.362000 4.363500 # CM-CTBB - pair_coeff @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB @atom:GL_bGL_aGL_dGL_iGL lj9_6 0.362000 4.363500 # CTBB-GL - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.248000 4.936800 # CM2-PH - pair_coeff @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB @atom:EST1_bEST1_aEST1_dEST1_iEST1 lj9_6 0.390000 4.260500 # CTBB-EST1 - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.413000 4.066900 # CM2-OAB - pair_coeff @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.390000 4.260500 # CTBB-EST2 - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:CM2R_bCM2R_aCM2R_dCM2R_iCM2R lj9_6 0.237000 4.440300 # CM2-CM2R - pair_coeff @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.280000 4.810500 # CTBB-PH - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:CMD2_bCMD2_aCMD2_dCMD2_iCMD2 lj9_6 0.248000 4.231300 # CM2-CMD2 - pair_coeff @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.380000 3.840000 # CTBB-OAB - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:CMR5_bCMR5_aCMR5_dCMR5_iCMR5 lj9_6 0.333000 4.484600 # CM2-CMR5 - pair_coeff @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB @atom:CTBB_bCTBB_aCTBB_dCTBB_iCTBB lj9_6 0.265000 4.461000 # CTBB-CTBB - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:CT2_bCT2_aCT2_dCT2_iCT2 lj9_6 0.228000 4.319900 # CM2-CT2 - pair_coeff @atom:EST1_bEST1_aEST1_dEST1_iEST1 @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 1.100000 3.990000 # EST1-OAB - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:CM2_bCM2_aCM2_dCM2_iCM2 lj9_6 0.265000 4.461000 # CM2-CM2 - pair_coeff @atom:EST2_bEST2_aEST2_dEST2_iEST2 @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 1.100000 3.990000 # EST2-OAB - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:CMDB_bCMDB_aCMDB_dCMDB_iCMDB lj9_6 0.267000 4.369700 # CM2-CMDB - pair_coeff @atom:GL_bGL_aGL_dGL_iGL @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.669000 4.093000 # GL-OAB - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:CT_bCT_aCT_dCT_iCT lj9_6 0.301000 4.454600 # CM2-CT - pair_coeff @atom:NC_bNC_aNC_dNC_iNC @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.637000 3.931900 # NC-OAB - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:CTB_bCTB_aCTB_dCTB_iCTB lj9_6 0.353000 4.524600 # CM2-CTB - pair_coeff @atom:OAB_bOAB_aOAB_dOAB_iOAB @atom:W_bW_aW_dW_iW lj9_6 1.026000 4.025500 # OAB-W - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:CMB_bCMB_aCMB_dCMB_iCMB lj9_6 0.333000 4.484600 # CM2-CMB - pair_coeff @atom:OAB_bOAB_aOAB_dOAB_iOAB @atom:PH_bPH_aPH_dPH_iPH lj9_6 0.928000 3.616600 # OAB-PH - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:NC_bNC_aNC_dNC_iNC lj9_6 0.306000 5.113800 # CM2-NC - pair_coeff @atom:OAB_bOAB_aOAB_dOAB_iOAB @atom:OAB_bOAB_aOAB_dOAB_iOAB lj9_6 0.580000 3.680000 # OAB-OAB - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:EST1_bEST1_aEST1_dEST1_iEST1 lj9_6 0.366000 4.380500 # CM2-EST1 - pair_coeff @atom:CM2_bCM2_aCM2_dCM2_iCM2 @atom:EST2_bEST2_aEST2_dEST2_iEST2 lj9_6 0.366000 4.380500 # CM2-EST2 - } # end of nonbonded parameters - - write_once("In Settings") { - # ----- Bonds ----- - bond_coeff @bond:CM-CM harmonic 6.160000 3.640000 - bond_coeff @bond:CM-CMD2 harmonic 8.000000 3.030000 - bond_coeff @bond:CM-CT harmonic 6.160000 3.650000 - bond_coeff @bond:CM-CT2 harmonic 9.000000 3.130000 - bond_coeff @bond:CM-EST1 harmonic 4.700000 3.550000 - bond_coeff @bond:CM-EST2 harmonic 5.100000 3.610000 - bond_coeff @bond:CM-PHE harmonic 12.000000 3.690000 - bond_coeff @bond:CM-SO4 harmonic 11.000000 3.630000 - bond_coeff @bond:CMD2-CT harmonic 8.000000 3.090000 - bond_coeff @bond:CMD2-CT2 harmonic 60.000000 2.540000 - bond_coeff @bond:CT-CT harmonic 6.955000 3.710000 - bond_coeff @bond:EST1-GL harmonic 30.000000 2.880000 - bond_coeff @bond:EST2-GL harmonic 8.400000 3.480000 - bond_coeff @bond:GL-PHE harmonic 8.900000 3.520000 - bond_coeff @bond:NC-PHE harmonic 4.800000 4.250000 - bond_coeff @bond:NH-PHE harmonic 9.400000 3.600000 - bond_coeff @bond:PHE1-PHE2 harmonic 2.500000 150.000000 - bond_coeff @bond:C2T-CM2 harmonic 55.000000 2.500000 - bond_coeff @bond:CM2-CTB harmonic 42.500000 2.900000 - bond_coeff @bond:CM2R-CTBA harmonic 45.000000 2.400000 - bond_coeff @bond:CM2R-OAB harmonic 50.000000 2.600000 - bond_coeff @bond:CMB-CMDB harmonic 75.000000 3.500000 - bond_coeff @bond:CMB-CMR5 harmonic 50.000000 3.000000 - bond_coeff @bond:CMB-CTBA harmonic 35.000000 3.400000 - bond_coeff @bond:CMB-CTBB harmonic 50.000000 3.000000 - bond_coeff @bond:CMDB-CTBA harmonic 40.000000 2.500000 - bond_coeff @bond:CMDB-OAB harmonic 55.000000 3.100000 - bond_coeff @bond:CMR5-CTBB harmonic 60.000000 2.300000 - bond_coeff @bond:CMR-CTBA harmonic 50.000000 3.000000 - bond_coeff @bond:CMR-CTBB harmonic 55.000000 2.500000 - bond_coeff @bond:CTB-CTBB harmonic 22.500000 3.400000 - bond_coeff @bond:CMR5-CTB harmonic 35.000000 3.100000 - } - - write_once("Data Bonds By Type") { - @bond:CM-CM @atom:*_bCM_a*_d*_i* @atom:*_bCM_a*_d*_i* - @bond:CM-CMD2 @atom:*_bCM_a*_d*_i* @atom:*_bCMD2_a*_d*_i* - @bond:CM-CT @atom:*_bCM_a*_d*_i* @atom:*_bCT_a*_d*_i* - @bond:CM-CT2 @atom:*_bCM_a*_d*_i* @atom:*_bCT2_a*_d*_i* - @bond:CM-EST1 @atom:*_bCM_a*_d*_i* @atom:*_bEST1_a*_d*_i* - @bond:CM-EST2 @atom:*_bCM_a*_d*_i* @atom:*_bEST2_a*_d*_i* - @bond:CM-PHE @atom:*_bCM_a*_d*_i* @atom:*_bPHE_a*_d*_i* - @bond:CM-SO4 @atom:*_bCM_a*_d*_i* @atom:*_bSO4_a*_d*_i* - @bond:CMD2-CT @atom:*_bCMD2_a*_d*_i* @atom:*_bCT_a*_d*_i* - @bond:CMD2-CT2 @atom:*_bCMD2_a*_d*_i* @atom:*_bCT2_a*_d*_i* - @bond:CT-CT @atom:*_bCT_a*_d*_i* @atom:*_bCT_a*_d*_i* - @bond:EST1-GL @atom:*_bEST1_a*_d*_i* @atom:*_bGL_a*_d*_i* - @bond:EST2-GL @atom:*_bEST2_a*_d*_i* @atom:*_bGL_a*_d*_i* - @bond:GL-PHE @atom:*_bGL_a*_d*_i* @atom:*_bPHE_a*_d*_i* - @bond:NC-PHE @atom:*_bNC_a*_d*_i* @atom:*_bPHE_a*_d*_i* - @bond:NH-PHE @atom:*_bNH_a*_d*_i* @atom:*_bPHE_a*_d*_i* - @bond:PHE1-PHE2 @atom:*_bPHE1_a*_d*_i* @atom:*_bPHE2_a*_d*_i* - @bond:C2T-CM2 @atom:*_bC2T_a*_d*_i* @atom:*_bCM2_a*_d*_i* - @bond:CM2-CTB @atom:*_bCM2_a*_d*_i* @atom:*_bCTB_a*_d*_i* - @bond:CM2R-CTBA @atom:*_bCM2R_a*_d*_i* @atom:*_bCTBA_a*_d*_i* - @bond:CM2R-OAB @atom:*_bCM2R_a*_d*_i* @atom:*_bOAB_a*_d*_i* - @bond:CMB-CMDB @atom:*_bCMB_a*_d*_i* @atom:*_bCMDB_a*_d*_i* - @bond:CMB-CMR5 @atom:*_bCMB_a*_d*_i* @atom:*_bCMR5_a*_d*_i* - @bond:CMB-CTBA @atom:*_bCMB_a*_d*_i* @atom:*_bCTBA_a*_d*_i* - @bond:CMB-CTBB @atom:*_bCMB_a*_d*_i* @atom:*_bCTBB_a*_d*_i* - @bond:CMDB-CTBA @atom:*_bCMDB_a*_d*_i* @atom:*_bCTBA_a*_d*_i* - @bond:CMDB-OAB @atom:*_bCMDB_a*_d*_i* @atom:*_bOAB_a*_d*_i* - @bond:CMR5-CTBB @atom:*_bCMR5_a*_d*_i* @atom:*_bCTBB_a*_d*_i* - @bond:CMR-CTBA @atom:*_bCMR_a*_d*_i* @atom:*_bCTBA_a*_d*_i* - @bond:CMR-CTBB @atom:*_bCMR_a*_d*_i* @atom:*_bCTBB_a*_d*_i* - @bond:CTB-CTBB @atom:*_bCTB_a*_d*_i* @atom:*_bCTBB_a*_d*_i* - @bond:CMR5-CTB @atom:*_bCMR5_a*_d*_i* @atom:*_bCTB_a*_d*_i* - } # end of bonds - - write_once("In Settings") { - # ----- Angles ----- - angle_coeff @angle:CM-CM-CM sdk 1.190000 173.000000 - angle_coeff @angle:CM-CM-CMD2 sdk 1.900000 161.000000 - angle_coeff @angle:CM-CM-CT sdk 1.190000 175.000000 - angle_coeff @angle:CM-CM-CT2 sdk 1.600000 172.000000 - angle_coeff @angle:CM-CM-EST1 sdk 1.000000 178.000000 - angle_coeff @angle:CM-CM-EST2 sdk 1.000000 178.000000 - angle_coeff @angle:CM-CM-PHE sdk 1.100000 178.000000 - angle_coeff @angle:CM-CMD2-CM sdk 6.000000 110.000000 - angle_coeff @angle:CM-EST1-GL sdk 0.800000 168.000000 - angle_coeff @angle:CM-EST2-GL sdk 0.800000 172.000000 - angle_coeff @angle:CM-PHE-NC sdk 3.300000 112.000000 - angle_coeff @angle:CT-CM-CT sdk 1.093000 175.500000 - angle_coeff @angle:CT-CM-CT2 sdk 1.600000 172.000000 - angle_coeff @angle:CT-CMD2-CT sdk 7.700000 116.000000 - angle_coeff @angle:CT2-CM-CT2 sdk 1.700000 173.000000 - angle_coeff @angle:CT2-CMD2-CT2 sdk 12.000000 110.000000 - angle_coeff @angle:EST1-GL-EST2 sdk 1.000000 95.000000 - angle_coeff @angle:EST1-GL-PHE sdk 1.400000 124.000000 - angle_coeff @angle:EST2-GL-PHE sdk 2.000000 138.000000 - angle_coeff @angle:GL-PHE-NC sdk 3.100000 112.000000 - angle_coeff @angle:GL-PHE-NH sdk 4.000000 102.000000 - angle_coeff @angle:C2T-CM2-CTB sdk 8.000000 160.000000 - angle_coeff @angle:CM2-CTB-CTBB sdk 4.000000 130.000000 - angle_coeff @angle:CM2R-CTBA-CMB harmonic 40.000000 112.500000 - angle_coeff @angle:CM2R-CTBA-CMDB harmonic 22.500000 75.900000 - angle_coeff @angle:CM2R-CTBA-CMR harmonic 35.000000 98.700000 - angle_coeff @angle:CM2R-OAB-CMDB harmonic 40.000000 63.900000 - angle_coeff @angle:CMB-CMDB-CTBA harmonic 45.000000 68.600000 - angle_coeff @angle:CMB-CMDB-OAB harmonic 65.000000 146.600000 - angle_coeff @angle:CMB-CMR5-CTBB harmonic 35.000000 67.800000 - angle_coeff @angle:CMB-CTBA-CMDB harmonic 25.000000 68.900000 - angle_coeff @angle:CMB-CTBA-CMR harmonic 75.000000 47.800000 - angle_coeff @angle:CMB-CTBB-CMR5 harmonic 25.000000 68.200000 - angle_coeff @angle:CMB-CTBB-CMR harmonic 50.000000 56.300000 - angle_coeff @angle:CMB-CTBB-CTB sdk 35.000000 120.700000 - angle_coeff @angle:CMDB-CMB-CMR5 harmonic 150.000000 175.600000 - angle_coeff @angle:CMDB-CMB-CTBA harmonic 62.500000 42.500000 - angle_coeff @angle:CMDB-CMB-CTBB harmonic 25.000000 134.200000 - angle_coeff @angle:CMDB-CTBA-CMR harmonic 50.000000 108.600000 - angle_coeff @angle:CMR5-CNB-CTBA harmonic 15.000000 135.800000 - angle_coeff @angle:CMR5-CMB-CTBB harmonic 45.000000 44.000000 - angle_coeff @angle:CMR5-CTBB-CTB harmonic 20.000000 62.700000 - angle_coeff @angle:CMR-CTBB-CMR5 harmonic 75.000000 107.000000 - angle_coeff @angle:CMR-CTBB-CTB sdk 37.500000 110.100000 - angle_coeff @angle:CTBA-CM2R-OAB harmonic 25.000000 107.400000 - angle_coeff @angle:CTBA-CMB-CTBB harmonic 20.000000 92.200000 - angle_coeff @angle:CTBA-CMDB-OAB harmonic 20.000000 91.800000 - angle_coeff @angle:CTBA-CMR-CTBB harmonic 15.000000 115.000000 - angle_coeff @angle:CMB-CMR5-CTB harmonic 88.000000 131.700000 - angle_coeff @angle:CTBB-CMR5-CTB harmonic 20.000000 77.400000 - angle_coeff @angle:CM2-CTB-CMR5 sdk 20.000000 118.000000 - angle_coeff @angle:CMR5-CTB-CTBB harmonic 62.500000 39.700000 - } - - write_once("Data Angles By Type") { - @angle:CM-CM-CM @atom:*_b*_aCM_d*_i* @atom:*_b*_aCM_d*_i* @atom:*_b*_aCM_d*_i* - @angle:CM-CM-CMD2 @atom:*_b*_aCM_d*_i* @atom:*_b*_aCM_d*_i* @atom:*_b*_aCMD2_d*_i* - @angle:CM-CM-CT @atom:*_b*_aCM_d*_i* @atom:*_b*_aCM_d*_i* @atom:*_b*_aCT_d*_i* - @angle:CM-CM-CT2 @atom:*_b*_aCM_d*_i* @atom:*_b*_aCM_d*_i* @atom:*_b*_aCT2_d*_i* - @angle:CM-CM-EST1 @atom:*_b*_aCM_d*_i* @atom:*_b*_aCM_d*_i* @atom:*_b*_aEST1_d*_i* - @angle:CM-CM-EST2 @atom:*_b*_aCM_d*_i* @atom:*_b*_aCM_d*_i* @atom:*_b*_aEST2_d*_i* - @angle:CM-CM-PHE @atom:*_b*_aCM_d*_i* @atom:*_b*_aCM_d*_i* @atom:*_b*_aPHE_d*_i* - @angle:CM-CMD2-CM @atom:*_b*_aCM_d*_i* @atom:*_b*_aCMD2_d*_i* @atom:*_b*_aCM_d*_i* - @angle:CM-EST1-GL @atom:*_b*_aCM_d*_i* @atom:*_b*_aEST1_d*_i* @atom:*_b*_aGL_d*_i* - @angle:CM-EST2-GL @atom:*_b*_aCM_d*_i* @atom:*_b*_aEST2_d*_i* @atom:*_b*_aGL_d*_i* - @angle:CM-PHE-NC @atom:*_b*_aCM_d*_i* @atom:*_b*_aPHE_d*_i* @atom:*_b*_aNC_d*_i* - @angle:CT-CM-CT @atom:*_b*_aCT_d*_i* @atom:*_b*_aCM_d*_i* @atom:*_b*_aCT_d*_i* - @angle:CT-CM-CT2 @atom:*_b*_aCT_d*_i* @atom:*_b*_aCM_d*_i* @atom:*_b*_aCT2_d*_i* - @angle:CT-CMD2-CT @atom:*_b*_aCT_d*_i* @atom:*_b*_aCMD2_d*_i* @atom:*_b*_aCT_d*_i* - @angle:CT2-CM-CT2 @atom:*_b*_aCT2_d*_i* @atom:*_b*_aCM_d*_i* @atom:*_b*_aCT2_d*_i* - @angle:CT2-CMD2-CT2 @atom:*_b*_aCT2_d*_i* @atom:*_b*_aCMD2_d*_i* @atom:*_b*_aCT2_d*_i* - @angle:EST1-GL-EST2 @atom:*_b*_aEST1_d*_i* @atom:*_b*_aGL_d*_i* @atom:*_b*_aEST2_d*_i* - @angle:EST1-GL-PHE @atom:*_b*_aEST1_d*_i* @atom:*_b*_aGL_d*_i* @atom:*_b*_aPHE_d*_i* - @angle:EST2-GL-PHE @atom:*_b*_aEST2_d*_i* @atom:*_b*_aGL_d*_i* @atom:*_b*_aPHE_d*_i* - @angle:GL-PHE-NC @atom:*_b*_aGL_d*_i* @atom:*_b*_aPHE_d*_i* @atom:*_b*_aNC_d*_i* - @angle:GL-PHE-NH @atom:*_b*_aGL_d*_i* @atom:*_b*_aPHE_d*_i* @atom:*_b*_aNH_d*_i* - @angle:C2T-CM2-CTB @atom:*_b*_aC2T_d*_i* @atom:*_b*_aCM2_d*_i* @atom:*_b*_aCTB_d*_i* - @angle:CM2-CTB-CTBB @atom:*_b*_aCM2_d*_i* @atom:*_b*_aCTB_d*_i* @atom:*_b*_aCTBB_d*_i* - @angle:CM2R-CTBA-CMB @atom:*_b*_aCM2R_d*_i* @atom:*_b*_aCTBA_d*_i* @atom:*_b*_aCMB_d*_i* - @angle:CM2R-CTBA-CMDB @atom:*_b*_aCM2R_d*_i* @atom:*_b*_aCTBA_d*_i* @atom:*_b*_aCMDB_d*_i* - @angle:CM2R-CTBA-CMR @atom:*_b*_aCM2R_d*_i* @atom:*_b*_aCTBA_d*_i* @atom:*_b*_aCMR_d*_i* - @angle:CM2R-OAB-CMDB @atom:*_b*_aCM2R_d*_i* @atom:*_b*_aOAB_d*_i* @atom:*_b*_aCMDB_d*_i* - @angle:CMB-CMDB-CTBA @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCMDB_d*_i* @atom:*_b*_aCTBA_d*_i* - @angle:CMB-CMDB-OAB @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCMDB_d*_i* @atom:*_b*_aOAB_d*_i* - @angle:CMB-CMR5-CTBB @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCMR5_d*_i* @atom:*_b*_aCTBB_d*_i* - @angle:CMB-CTBA-CMDB @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCTBA_d*_i* @atom:*_b*_aCMDB_d*_i* - @angle:CMB-CTBA-CMR @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCTBA_d*_i* @atom:*_b*_aCMR_d*_i* - @angle:CMB-CTBB-CMR5 @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCTBB_d*_i* @atom:*_b*_aCMR5_d*_i* - @angle:CMB-CTBB-CMR @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCTBB_d*_i* @atom:*_b*_aCMR_d*_i* - @angle:CMB-CTBB-CTB @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCTBB_d*_i* @atom:*_b*_aCTB_d*_i* - @angle:CMDB-CMB-CMR5 @atom:*_b*_aCMDB_d*_i* @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCMR5_d*_i* - @angle:CMDB-CMB-CTBA @atom:*_b*_aCMDB_d*_i* @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCTBA_d*_i* - @angle:CMDB-CMB-CTBB @atom:*_b*_aCMDB_d*_i* @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCTBB_d*_i* - @angle:CMDB-CTBA-CMR @atom:*_b*_aCMDB_d*_i* @atom:*_b*_aCTBA_d*_i* @atom:*_b*_aCMR_d*_i* - @angle:CMR5-CNB-CTBA @atom:*_b*_aCMR5_d*_i* @atom:*_b*_aCNB_d*_i* @atom:*_b*_aCTBA_d*_i* - @angle:CMR5-CMB-CTBB @atom:*_b*_aCMR5_d*_i* @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCTBB_d*_i* - @angle:CMR5-CTBB-CTB @atom:*_b*_aCMR5_d*_i* @atom:*_b*_aCTBB_d*_i* @atom:*_b*_aCTB_d*_i* - @angle:CMR-CTBB-CMR5 @atom:*_b*_aCMR_d*_i* @atom:*_b*_aCTBB_d*_i* @atom:*_b*_aCMR5_d*_i* - @angle:CMR-CTBB-CTB @atom:*_b*_aCMR_d*_i* @atom:*_b*_aCTBB_d*_i* @atom:*_b*_aCTB_d*_i* - @angle:CTBA-CM2R-OAB @atom:*_b*_aCTBA_d*_i* @atom:*_b*_aCM2R_d*_i* @atom:*_b*_aOAB_d*_i* - @angle:CTBA-CMB-CTBB @atom:*_b*_aCTBA_d*_i* @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCTBB_d*_i* - @angle:CTBA-CMDB-OAB @atom:*_b*_aCTBA_d*_i* @atom:*_b*_aCMDB_d*_i* @atom:*_b*_aOAB_d*_i* - @angle:CTBA-CMR-CTBB @atom:*_b*_aCTBA_d*_i* @atom:*_b*_aCMR_d*_i* @atom:*_b*_aCTBB_d*_i* - @angle:CMB-CMR5-CTB @atom:*_b*_aCMB_d*_i* @atom:*_b*_aCMR5_d*_i* @atom:*_b*_aCTB_d*_i* - @angle:CTBB-CMR5-CTB @atom:*_b*_aCTBB_d*_i* @atom:*_b*_aCMR5_d*_i* @atom:*_b*_aCTB_d*_i* - @angle:CM2-CTB-CMR5 @atom:*_b*_aCM2_d*_i* @atom:*_b*_aCTB_d*_i* @atom:*_b*_aCMR5_d*_i* - @angle:CMR5-CTB-CTBB @atom:*_b*_aCMR5_d*_i* @atom:*_b*_aCTB_d*_i* @atom:*_b*_aCTBB_d*_i* - } # end of angles - - write_once("In Init") { - # Warning: This is a very generic "In Init" section, further - # modification prior to any simulation is extremely likely - units real - atom_style full - bond_style hybrid harmonic - angle_style hybrid sdk - pair_style hybrid lj/sdk/coul/long 9.000000 12.000000 - special_bonds lj/coul 0.0 0.0 0.0 - } # end init -} # SDK diff --git a/tools/moltemplate/moltemplate/force_fields/__init__.py b/tools/moltemplate/moltemplate/force_fields/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/moltemplate/moltemplate/force_fields/compass_original_format/README.txt b/tools/moltemplate/moltemplate/force_fields/compass_original_format/README.txt new file mode 100644 index 0000000000..d228c3c18f --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/compass_original_format/README.txt @@ -0,0 +1,30 @@ +This directoroy contains the COMPASS force field parameters in the original +MSI file format ("compass_published.frc" which is distributed with "msi2lmp"). +It can be converted into moltemplate format using the following command: + +msifrc2lt.py -name COMPASS < compass_published.frc > compass_published.lt + +--- Credits: ---- + This is an incomplete version of the COMPASS force field based on available +public sources. Parameters for some common chemical groups are missing +(for example, the NH2 amine group). The commercial version of COMPASS is +much larger and presumably includes more up to date parameters and parameters +for a wider range of atom types and molecule types. (However files +containing those force field parameters are not publicly available.) + + This file has been graciously made available by Materials Design Inc. + + Here is a comment from "compass_published.frc": + + "This file created by Materials Design, Inc. (www.materialsdesign.com) +Please realize that we neither support this version, nor make any warranty +as to the correctness of the parameters. We have checked the numbers against +the literature, but of course there may still be errors, including errors of +interpretation. Also, the current version of COMPASS may well be different +that that originally published. + If you have comments or suggestions, feel free to email Paul Saxe +at psaxe (at) materialsdesign.com" + +(Note: This file predates moltemplate and was intended for use with other + software. Paul Saxe cannot be expected to answer questions related to + moltemplate.) diff --git a/tools/moltemplate/moltemplate/force_fields/compass_original_format/compass_published.frc b/tools/moltemplate/moltemplate/force_fields/compass_original_format/compass_published.frc new file mode 100644 index 0000000000..6c2e681b5c --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/compass_original_format/compass_published.frc @@ -0,0 +1,1381 @@ +!BIOSYM forcefield 1 + +#version compass_published.frc 1.1 30-Jun-09 +#version compass_published.frc 1.0 01-Jun-09 + +#define compass + +!Ver Ref Function Label +!---- --- --------------------------------- ------ + 1.0 1 atom_types compass + 1.0 1 equivalence compass + 1.0 1 quartic_bond compass + 1.0 1 quartic_angle compass + 1.0 1 bond-bond compass + 1.0 1 bond-bond_1_3 compass + 1.0 1 bond-angle compass + 1.0 1 torsion_3 compass + 1.0 1 end_bond-torsion_3 compass + 1.0 1 middle_bond-torsion_3 compass + 1.0 1 angle-torsion_3 compass + 1.0 1 wilson_out_of_plane compass + 1.0 1 angle-angle compass + 1.0 1 angle-angle-torsion_1 compass + 1.0 1 nonbond(9-6) compass + 1.0 1 bond_increments compass + 1.0 1 templates compass + +#atom_types compass + +> Atom type definitions for any variant of compass +> Masses from CRC 1973/74 pages B-250. + +!Ver Ref Type Mass Element Comment +!---- --- ---- ---------- ------- ----------------------------------------- + 1.0 5 ar 39.94400 Ar argon + 1.0 1 c3a 12.01115 C aromatic carbon + 1.0 5 c1o 12.01115 C carbon in CO + 1.0 5 c2= 12.01115 C carbon in CO2 and CS2 + 1.0 7 c3' 12.01115 C carbonyl carbon [one polar substituent] + 1.0 1 c4 12.01115 C generic sp3 carbon + 1.0 8 c41o 12.01115 C carbon, sp3, in methanol + 1.0 8 c43o 12.01115 C carbon, sp3 in secondary alcohols + 1.0 1 c43 12.01115 C sp3 carbon with three heavy atoms attached + 1.0 1 c44 12.01115 C sp3 carbon with four heavy atoms attached + 1.0 3 c4o 12.01115 C alpha carbon + 1.0 9 c4z 12.01115 C carbon, sp3, bonded to -N3 + 1.0 1 h1 1.00797 H nonpolar hydrogen + 1.0 5 h1h 1.00797 H hydrogen in H2 + 1.0 3 h1o 1.00797 H strongly polar hydrogen, bonded to O,F + 1.0 5 he 4.00300 He helium + 1.0 5 kr 83.80000 Kr krypton + 1.0 5 n1n 14.00670 N nitrogen in N2 + 1.0 5 n1o 14.00670 N nitrogen in NO + 1.0 5 n1z 14.00670 N nitrogen, terminal atom in -N3 + 1.0 4 n2= 14.00670 N nitrogen + 1.0 5 n2o 14.00670 N nitrogen in NO2 + 1.0 9 n2t 14.00670 N nitrogen, central atom in -N3 + 1.0 9 n2z 14.00670 N nitrogen, first atom in -N3 + 1.0 7 n3m 14.00670 N sp3 nitrogen in amides without hydrogen + 1.0 6 n3o 14.00670 N nitrogen in nitro group + 1.0 5 ne 20.18300 Ne neon + 1.0 5 o1= 15.99940 O oxygen in NO2 and SO2 [and carbonyl] + 1.0 5 o1=* 15.99940 O oxygen in CO2 + 1.0 6 o12 15.99940 O oxygen in nitro group (-NO2) + 1.0 5 o1c 15.99940 O oxygen in CO + 1.0 5 o1n 15.99940 O oxygen in NO + 1.0 5 o1o 15.99940 O oxygen in O2 + 1.0 2 o2 15.99940 O generic oxygen with two bonds attached + 1.0 3 o2e 15.99940 O ether oxygen + 1.0 3 o2h 15.99940 O hydroxyl oxygen + 1.0 6 o2n 15.99940 O oxygen in nitrates + 1.0 7 o2s 15.99940 O ester oxygen + 1.0 2 o2z 15.99940 O oxygen, in siloxanes and zeolites + 1.0 4 p4= 30.97380 P phosphorous + 1.0 5 s1= 32.06400 S sulfur in CS2 + 1.0 5 s2= 32.06400 S sulfur in SO2 + 1.0 2 si4 28.08600 Si generic silicon with four bonds attached + 1.0 2 si4c 28.08600 Si a subset of si4, non-hydrogen atom attached [siloxanes] + 1.0 5 xe 131.30000 Xe xenon + + +#equivalence compass + +! Equivalences +! ----------------------------------------- +!Ver Ref Type NonB Bond Angle Torsion OOP +!---- --- ---- ---- ---- ----- ------- ---- + 1.0 5 ar ar ar ar ar ar + 1.0 5 c1o c1o c1o c1o c1o c1o + 1.0 5 c2= c2= c2= c2= c2= c2= + 1.0 1 c3a c3a c3a c3a c3a c3a + 1.0 7 c3' c3' c3' c3' c3' c3' + 1.0 1 c4 c4 c4 c4 c4 c4 + 1.0 8 c41o c41o c4 c4 c4 c4 + 1.0 8 c43o c43o c4 c4 c4 c4 + 1.0 1 c43 c43 c4 c4 c4 c4 + 1.0 1 c44 c44 c4 c4 c4 c4 + 1.0 3 c4o c4o c4 c4 c4 c4 + 1.0 9 c4z c4z c4 c4 c4 c4 + 1.0 1 h1 h1 h1 h1 h1 h1 + 1.0 5 h1h h1h h1h h1 h1 h1 + 1.0 3 h1o h1o h1 h1 h1 h1 + 1.0 5 he he he he he he + 1.0 5 kr kr kr kr kr kr + 1.0 5 n1n n1n n1n n1n n1n n1n + 1.0 5 n1o n1o n1o n1o n1o n1o + 1.0 9 n1z n1z n1t n1t n1t n1t + 1.0 4 n2= n2= n2= n2= n2= n2= + 1.0 5 n2o n2o n2o n2o n2o n2o + 1.0 9 n2t n2t n2t n2t n2t n2t + 1.0 9 n2z n2z n2z n2z n2z n2z + 1.0 7 n3m n3m n3m n3m n3m n3m + 1.0 6 n3o n3o n3o n3o n3o n3o + 1.0 5 ne ne ne ne ne ne + 1.0 5 o1= o1= o1= o1= o1= o1= + 1.0 5 o1=* o1=* o1= o1= o1= o1= + 1.0 6 o12 o12 o1= o1= o1= o1= + 1.0 5 o1c o1c o1c o1c o1c o1c + 1.0 5 o1n o1n o1n o1n o1n o1n + 1.0 5 o1o o1o o1o o1o o1o o1o + 1.0 2 o2 o2 o2 o2 o2 o2 + 1.0 3 o2h o2h o2h o2 o2 o2 + 1.0 3 o2e o2e o2e o2 o2 o2 + 1.0 6 o2n o2n o2n o2n o2 o2 + 1.0 7 o2s o2s o2e o2 o2 o2 + 1.0 2 o2z o2z o2z o2z o2z o2z + 1.0 4 p4= p4= p4= p4= p4= p4= + 1.0 5 s1= s1= s1= s1= s1= s1= + 1.0 5 s2= s2= s2= s2= s2= s2= + 1.0 2 si4 si4 si4 si4 si4 si4 + 1.0 2 si4c si4c si4 si4 si4 si4 + 1.0 5 xe xe xe xe xe xe + + +#quartic_bond compass + +> E = K2 * (R - R0)^2 + K3 * (R - R0)^3 + K4 * (R - R0)^4 + +!Ver Ref I J R0 K2 K3 K4 +!---- --- ---- ---- ------- -------- --------- -------- + 1.0 1 c3a c3a 1.4170 470.8361 -627.6179 1327.6345 + 1.0 1 c3a c4 1.5010 321.9021 -521.8208 572.1628 + 1.0 1 c3a h1 1.0982 372.8251 -803.4526 894.3173 + 1.0 1 c4 c4 1.5300 299.6700 -501.7700 679.8100 + 1.0 1 c4 h1 1.1010 345.0000 -691.8900 844.6000 + 1.0 2 o2z si4 1.6400 350.1232 -517.3424 673.7067 + 1.0 3 c3a o2 1.3768 428.8798 -738.2350 1114.9655 + 1.0 3 c3a o2e 1.3768 428.8798 -738.2351 1114.9655 + 1.0 3 c3a o2h 1.3768 428.8798 -738.2351 1114.9655 + 1.0 3 c4 o2e 1.4200 400.3954 -835.1951 1313.0142 + 1.0 3 c4 o2h 1.4200 400.3954 -835.1951 1313.0142 + 1.0 3 h1 o2h 0.9494 540.3633 -1311.8663 2132.4446 + 1.0 4 c3a n2= 1.4000 350.0000 0.0000 0.0000 + 1.0 4 c3a p4= 1.7890 197.7020 -332.2510 325.7160 + 1.0 4 c4 n2= 1.4740 337.0600 -147.3700 213.6330 + 1.0 4 c4 p4= 1.8000 218.1400 -329.5110 290.3490 + 1.0 4 cl1p p4= 2.0000 158.7770 -239.1290 210.0840 + 1.0 4 f1p p4= 1.5650 340.0000 -882.3840 1197.9190 + 1.0 4 h1 n2= 1.0310 540.1120 -1500.2952 2431.0080 + 1.0 4 h1 p4= 1.4300 285.2040 -575.6850 677.8460 + 1.0 4 n2= p4= 1.5980 393.0060 -751.4050 767.4310 + 1.0 4 n3 p4= 1.6780 329.0000 -713.7950 902.9190 + 1.0 4 o2 p4= 1.6000 333.0980 -726.6230 924.6200 + 1.0 5 h1h h1h 0.7412 414.2185 -805.6549 914.1296 + 1.0 5 n1n n1n 1.0977 1651.3730 -4069.3178 5984.9629 + 1.0 5 o1o o1o 1.2074 846.7150 -2247.1760 3478.9900 + 1.0 5 c1o o1c 1.1283 1368.7676 -3157.0007 4247.5298 + 1.0 5 n1o o1n 1.1506 1147.8362 -3167.7349 5099.5811 + 1.0 5 o1= s2= 1.4308 730.8387 -1531.7910 1859.7753 + 1.0 5 c2= o1= 1.1600 1161.3421 -2564.5706 3932.8735 + 1.0 5 n2o o1= 1.1930 620.0000 -1808.6018 3077.5918 + 1.0 5 c2= s1= 1.5540 559.0065 -1348.6633 1248.8604 + 1.0 6 c3a n3o 1.4300 313.8329 -568.6087 600.9597 + 1.0 6 c4 n3o 1.4740 301.6051 -535.7028 555.0420 + 1.0 6 c4 o2n 1.4350 400.3954 -835.1951 1313.0142 + 1.0 6 h1 n3o 1.0400 439.9346 -943.7307 1180.9318 + 1.0 6 n3o o1= 1.2100 765.0664 -2070.2830 2793.3218 + 1.0 6 n3o o2n 1.4020 300.0000 -1000.0000 2000.0000 + 1.0 7 c3' o2e 1.3750 368.7309 -832.4784 1274.0231 + 1.0 7 c3' c4 1.5140 312.3719 -465.8290 473.8300 + 1.0 7 c3' o1= 1.2160 823.7948 -1878.7939 2303.5310 + 1.0 7 c3' c3a 1.4890 339.3574 -655.7236 670.2362 + 1.0 7 c3' n3m 1.3850 359.1591 -558.4730 1146.3810 + 1.0 7 c3a n3m 1.3950 344.0452 -652.1208 1022.2242 + 1.0 9 n1t n1t 1.1354 1337.7450 -2675.4900 3121.4049 + 1.0 9 n2z n2t 1.2343 720.3345 -1542.6689 1799.7804 + 1.0 9 n2t n1t 1.1354 1198.7450 -2675.4900 3121.4049 + 1.0 9 n2z c4 1.4814 324.4578 -648.9156 757.0681 + 1.0 9 n2z h1 1.0221 440.1623 -960.3246 1120.3787 + 1.0 10 c3a si4 1.8634 233.2433 -276.8692 161.6659 + 1.0 10 c4 si4 1.8995 189.6536 -279.4210 307.5135 + 1.0 10 h1 si4 1.4783 202.7798 -305.3603 280.2685 + 1.0 10 si4 si4 2.3384 114.2164 -140.4212 80.7084 + 1.0 10 c4 n3m 1.4000 350.0000 0.0000 0.0000 + + +#quartic_angle compass + +> Delta = Theta - Theta0 +> E = K2 * Delta^2 + K3 * Delta^3 + K4 * Delta^4 + +!Ver Ref I J K Theta0 K2 K3 K4 +!---- --- ---- ---- ---- -------- ------- -------- -------- + 1.0 1 c3a c3a c3a 118.9000 61.0226 -34.9931 0.0000 + 1.0 1 c3a c3a c4 120.0500 44.7148 -22.7352 0.0000 + 1.0 1 c3a c3a h1 117.9400 35.1558 -12.4682 0.0000 + 1.0 1 c3a c4 c3a 111.0000 44.3234 -9.4454 0.0000 + 1.0 1 c3a c4 c4 108.4000 43.9594 -8.3924 -9.3379 + 1.0 1 c3a c4 h1 111.0000 44.3234 -9.4454 0.0000 + 1.0 1 c4 c4 c4 112.6700 39.5160 -7.4430 -9.5583 + 1.0 1 c4 c4 h1 110.7700 41.4530 -10.6040 5.1290 + 1.0 1 h1 c4 h1 107.6600 39.6410 -12.9210 -2.4318 + 1.0 2 h1 o2z si4 122.8000 23.7764 -19.8152 9.6331 + 1.0 2 si4 o2z si4 159.0000 8.5000 -13.4188 -4.1785 + 1.0 2 c3a si4 o2z 114.9060 23.0218 -31.3993 24.9814 + 1.0 2 c4 si4 o2z 114.9060 23.0218 -31.3993 24.9814 + 1.0 2 h1 si4 o2z 107.4000 57.6643 -10.6506 4.6274 + 1.0 2 o2z si4 o2z 110.7000 70.3069 -6.9375 0.0000 + 1.0 3 c3a c3a o2 123.4200 73.6781 -21.6787 0.0000 + 1.0 3 c4 c4 o2 111.2700 54.5381 -8.3642 -13.0838 + 1.0 3 h1 c4 o2 108.7280 58.5446 -10.8088 -12.4006 + 1.0 3 c3a o2 c4 102.9695 38.9739 -6.2595 -8.1710 + 1.0 3 c3a o2 h1 108.1900 53.1250 -8.5016 0.0000 + 1.0 3 c4 o2 c4 104.5000 35.7454 -10.0067 -6.2729 + 1.0 3 c4 o2 h1 105.8000 52.7061 -12.1090 -9.8681 + 1.0 4 c3a c3a n2= 120.0000 60.0000 0.0000 0.0000 + 1.0 4 c3a c3a p4= 120.0010 47.8410 -15.2290 -10.9070 + 1.0 4 c4 c4 n2= 117.3170 55.2420 0.0000 0.0000 + 1.0 4 h1 c4 n2= 107.4990 62.7310 0.0000 0.0000 + 1.0 4 h1 c4 p4= 110.8860 33.8300 -7.0430 -7.2460 + 1.0 4 c4 n2= h1 117.2000 37.2620 0.0000 0.0000 + 1.0 4 h1 n2= h1 110.9100 31.0910 0.0000 0.0000 + 1.0 4 h1 n2= p4= 120.0000 26.0680 -8.2980 -5.9430 + 1.0 4 p4= n2= p4= 135.0000 23.8680 -8.7360 0.0000 + 1.0 4 c4 n3 p4= 120.0830 25.0010 -6.1170 -5.4570 + 1.0 4 h1 n3 p4= 120.0830 25.0010 -6.1170 -5.4570 + 1.0 4 c4 o2 p4= 118.2830 35.0010 -10.3600 -7.8700 + 1.0 4 h1 o2 p4= 117.0000 26.0310 -5.8280 -5.6200 + 1.0 4 c3a p4= c3a 110.2310 56.1850 -17.3160 -12.7280 + 1.0 4 c3a p4= h1 108.2310 36.1850 -6.4880 -7.6460 + 1.0 4 c3a p4= n2= 109.6000 63.0620 -19.7400 -14.3290 + 1.0 4 c3a p4= n3 108.1650 70.9770 -11.5480 -15.1090 + 1.0 4 c3a p4= o2 107.3650 71.9770 -10.9430 -15.2900 + 1.0 4 c4 p4= c4 102.5000 48.2320 -5.7980 -9.9660 + 1.0 4 c4 p4= h1 102.9000 52.0710 -6.4680 -10.7730 + 1.0 4 c4 p4= n2= 119.3000 47.3660 -14.6410 -10.7360 + 1.0 4 h1 p4= h1 101.4080 39.6950 -5.1340 -8.2270 + 1.0 4 h1 p4= n2= 110.0330 45.9780 -14.0520 -10.3990 + 1.0 4 h1 p4= n3 103.9780 68.2570 -9.2210 -14.1740 + 1.0 4 h1 p4= o2 103.9780 73.2570 -9.8970 -15.2120 + 1.0 4 n2= p4= n2= 125.0000 90.5230 -20.8010 -19.6020 + 1.0 4 n2= p4= n3 123.2150 89.9230 -32.6120 -21.0960 + 1.0 4 n2= p4= o2 112.2150 99.9230 -32.0930 -22.8210 + 1.0 4 n3 p4= n3 107.1000 85.7690 -5.7790 -17.4890 + 1.0 4 n3 p4= o2 108.3000 86.7690 -5.1750 -17.6710 + 1.0 4 o2 p4= o2 107.5000 86.7690 -4.5700 -17.8520 + 1.0 5 o1= c2= o1= 180.0000 57.1000 0.0000 0.0000 + 1.0 5 s1= c2= s1= 180.0000 48.0000 0.0000 0.0000 + 1.0 5 o1= n2o o1= 134.1000 150.0000 -82.1013 -40.0005 + 1.0 5 o1= s2= o1= 119.3000 115.2627 -35.6278 -26.1261 + 1.0 6 c3a c3a n3o 118.8000 29.2436 -8.8495 -6.6020 + 1.0 6 h1 c4 n3o 107.0000 54.9318 -9.1333 -11.5434 + 1.0 6 h1 c4 o2n 108.7280 58.5446 -10.8088 -12.4006 + 1.0 6 c3a n3o o1= 117.7000 63.9404 -18.4524 -14.3129 + 1.0 6 c4 n3o o1= 117.5000 64.5228 -18.4582 -14.4215 + 1.0 6 h1 n3o o1= 115.7000 53.8034 -14.1991 -11.8708 + 1.0 6 o1= n3o o1= 128.0000 95.1035 -47.4240 -27.9164 + 1.0 6 c4 o2n n3o 108.5000 55.7454 -10.0067 -6.2729 + 1.0 6 c4 c4 o2n 105.0000 54.5381 -8.3642 -13.0838 + 1.0 6 o2n n3o o1= 112.8000 85.5228 -18.4582 -14.4215 + 1.0 7 c3' o2 c4 109.0000 38.9739 -6.2595 -8.1710 + 1.0 7 c3' c4 h1 107.8594 38.0833 -17.5074 0.0000 + 1.0 7 c3' n3m c3' 121.9556 76.3105 -26.3166 -17.6944 + 1.0 7 c3a c3a c3' 116.0640 71.2598 -15.8273 2.0506 + 1.0 7 c3a c3' n3m 108.4400 84.8377 -19.9640 2.7405 + 1.0 7 c3a c3' o1= 125.5320 72.3167 -16.0650 2.0818 + 1.0 7 c3a c3a n3m 120.7640 73.2738 -27.4033 13.3920 + 1.0 7 c3a n3m c3' 120.0700 47.1131 -32.5592 13.1257 + 1.0 7 o1= c3' o2 118.9855 98.6813 -22.2485 10.3673 + 1.0 7 o1= c3' c4 119.3000 65.1016 -17.9766 0.0000 + 1.0 7 o2 c3' c4 100.3182 88.8631 -3.8323 -7.9802 + 1.0 7 n3m c3' o1= 121.5420 92.5720 -34.4800 -11.1871 + 1.0 9 n2z n2t n1t 171.6211 47.7899 0.0000 0.0000 + 1.0 9 n2t n2z h1 110.0345 55.7635 0.6618 0.0022 + 1.0 9 n2t n2z c4 113.5017 82.6294 0.9845 0.0033 + 1.0 9 n2z c4 h1 107.9744 52.7803 0.6615 0.0023 + 1.0 9 n2z c4 c4 110.9900 77.9387 0.9499 0.0033 + 1.0 10 c3a c3a si4 120.0000 30.4689 -23.5439 0.0000 + 1.0 10 c4 c4 si4 112.6700 39.5160 -7.4430 0.0000 + 1.0 10 h1 c4 si4 112.0355 28.7721 -13.9523 0.0000 + 1.0 10 c3a si4 h1 109.5932 41.9497 -42.3639 48.1442 + 1.0 10 c4 si4 c4 113.1855 36.2069 -20.3939 20.0172 + 1.0 10 c4 si4 h1 112.0977 36.4832 -12.8094 0.0000 + 1.0 10 h1 si4 h1 108.6051 32.5415 -8.3164 0.0000 + 1.0 10 c4 si4 si4 113.0000 19.4692 -34.3471 0.0000 + 1.0 10 h1 si4 si4 112.0893 22.5062 -11.5926 0.0000 + 1.0 10 si4 si4 si4 114.2676 24.9501 -19.5949 0.0000 + +#bond-bond compass + +> E = K(b,b') * (R - R0) * (R' - R0') + +!Ver Ref I J K K(b,b') +!---- --- ---- ---- ---- ------- + 1.0 1 c3a c3a c3a 68.2856 + 1.0 1 c3a c3a c4 12.0676 + 1.0 1 c3a c3a h1 1.0795 + 1.0 1 c3a c4 h1 2.9168 + 1.0 1 c4 c4 h1 3.3872 + 1.0 1 h1 c4 h1 5.3316 + 1.1 2 h1 c4 si4 6.3820 + 1.0 2 h1 o2z si4 6.3820 + 1.0 2 si4 o2z si4 41.1143 + 1.0 2 c4 si4 o2z 5.4896 + 1.0 2 h1 si4 o2z 11.6183 + 1.0 2 o2z si4 o2z 41.1143 + 1.0 3 c3a c3a o2 48.4754 + 1.0 3 h1 c3a o2 4.5800 + 1.0 3 c4 c4 o2 11.4318 + 1.0 3 h1 c4 o2 23.1979 + 1.0 3 o2 c4 o2 8.2983 + 1.0 3 c3a o2 h1 20.6577 + 1.0 3 c4 o2 c4 -7.1131 + 1.0 3 c4 o2 h1 -9.6879 + 1.0 4 c4 c4 n2= 22.7100 + 1.0 4 h1 c4 n2= 5.6640 + 1.0 4 h1 c4 p4= 1.0500 + 1.0 4 c4 n2= h1 12.5630 + 1.0 4 h1 n2= h1 1.4570 + 1.0 4 h1 n2= p4= -18.2870 + 1.0 4 p4= n2= p4= 20.0000 + 1.0 4 c4 p4= c4 6.2460 + 1.0 4 c4 p4= h1 3.8820 + 1.0 4 c4 p4= n2= 1.0720 + 1.0 4 h1 p4= h1 20.0000 + 1.0 4 h1 p4= n2= 12.5700 + 1.0 4 n2= p4= n2= 20.0000 + 1.0 5 o1= c2= o1= 275.4350 + 1.0 5 s1= c2= s1= 100.7369 + 1.0 5 o1= n2o o1= 20.0000 + 1.0 5 o1= s2= o1= 20.0000 + 1.0 6 c3a c3a n3o 21.0495 + 1.0 6 c4 c4 o2n 11.4318 + 1.0 6 h1 c4 n3o 3.3770 + 1.0 6 h1 c4 o2n 23.1979 + 1.0 6 c3a n3o o1= 93.7948 + 1.0 6 o2n n3o o1= 80.0000 + 1.0 6 c4 n3o o1= 48.1403 + 1.0 6 h1 n3o o1= 14.8226 + 1.0 6 o1= n3o o1= 265.7106 + 1.0 7 c3' o2 c3a 69.5999 + 1.0 7 c3' c4 h1 2.2522 + 1.0 7 c3' n3m c3' 25.9530 + 1.0 7 c3a c4 o2 0.0000 + 1.0 7 c3a o2 c3a 0.0000 + 1.0 7 c3' c3a c3a 37.8749 + 1.0 7 c3a c3' n3m 0.0000 + 1.0 7 c3a c3' o1= 116.9445 + 1.0 7 c3a c3a n3m 37.8749 + 1.0 7 c3a n3m c3' 0.0000 + 1.0 7 o1= c3' o2 210.1813 + 1.0 7 c4 c3' o1= 77.5201 + 1.0 7 c4 c3' o2 19.1069 + 1.0 7 n3m c3' o1= 138.4954 + 1.0 9 h1 n2z n2t 14.9026 + 1.0 9 n2z n2t n1t 204.9909 + 1.0 9 n2t n2z c4 84.2075 + 1.0 9 n2z c4 h1 18.4621 + 1.0 9 n2z c4 c4 36.9309 + 1.0 10 h1 c4 si4 1.6561 + 1.0 10 c3a c3a si4 21.3938 + 1.0 10 c3a si4 h1 3.9264 + 1.0 10 c4 si4 c4 3.7419 + 1.0 10 c4 si4 h1 3.9340 + 1.0 10 c4 si4 si4 2.3030 + 1.0 10 h1 si4 h1 4.6408 + 1.0 10 h1 si4 si4 3.5172 + 1.0 10 si4 si4 si4 6.0704 + + +#bond-bond_1_3 compass + +> E = K(b,b') * (R - R0) * (R' - R0') + +!Ver Ref I J K L K(b,b') +!--- --- ----- ----- ----- ----- -------- + 1.0 1 c3a c3a c3a c3a 53.0000 + 1.0 1 c3a c3a c3a c4 2.5085 + 1.0 1 c3a c3a c3a h1 -6.2741 + 1.0 1 c4 c3a c3a h1 0.8743 + 1.0 1 h1 c3a c3a h1 -1.7077 + 1.0 1 c3a c3a c4 h1 -3.4826 + 1.0 3 c3a c3a c3a o2 -2.2436 + 1.0 3 h1 c3a c3a o2 -2.0517 + 1.0 3 c3a c3a o2 h1 1.1590 + + +#bond-angle compass + +> E = K * (R - R0) * (Theta - Theta0) + +!Ver Ref I J K K(b,theta) K(b',theta) +!---- --- ---- ---- ---- ---------- ----------- + 1.0 1 c3a c3a c3a 28.8708 + 1.0 1 c3a c3a c4 31.0771 47.0579 + 1.0 1 c3a c3a h1 20.0033 24.2183 + 1.0 1 c3a c4 h1 26.4608 11.7717 + 1.0 1 c4 c4 c4 8.0160 + 1.0 1 c4 c4 h1 20.7540 11.4210 + 1.0 1 h1 c4 h1 18.1030 + 1.0 2 h1 o2z si4 18.0902 31.0726 + 1.0 2 si4 o2z si4 28.6686 + 1.0 2 c4 si4 o2z 6.4278 20.5669 + 1.0 2 h1 si4 o2z 6.4278 20.5669 + 1.0 2 o2z si4 o2z 23.4380 + 1.0 3 c3a c3a o2 58.4790 107.6806 + 1.0 3 c4 c4 o2 2.6868 20.4033 + 1.0 3 h1 c4 o2 4.6189 55.3270 + 1.0 3 c3a o2 h1 53.8614 23.9224 + 1.0 3 c4 o2 c4 -2.8112 + 1.0 3 c4 o2 h1 28.5800 18.9277 + 1.0 4 c4 c4 n2= 19.2440 59.4220 + 1.0 4 h1 c4 n2= 6.4070 46.3730 + 1.0 4 h1 c4 p4= 19.8120 16.9400 + 1.0 4 c4 n2= h1 18.4860 7.8370 + 1.0 4 h1 n2= h1 8.4900 + 1.0 4 h1 n2= p4= 40.0630 90.7910 + 1.0 4 c4 p4= c4 12.8050 + 1.0 4 c4 p4= h1 11.1260 -19.4700 + 1.0 4 c4 p4= n2= -7.1280 26.3530 + 1.0 4 h1 p4= n2= -24.3830 72.9250 + 1.0 5 o1= n2o o1= -50.0000 + 1.0 5 o1= s2= o1= 45.0585 + 1.0 6 c3a c3a n3o 30.5211 59.8025 + 1.0 6 c4 c4 o2n 2.6868 20.4033 + 1.0 6 h1 c4 n3o 12.2491 30.5314 + 1.0 6 h1 c4 o2n 4.6189 55.3270 + 1.0 6 c3a n3o o1= 40.3757 92.1955 + 1.0 6 c4 n3o o1= 27.2141 93.9927 + 1.0 6 h1 n3o o1= -8.6275 58.6036 + 1.0 6 o1= n3o o1= 95.6936 + 1.0 7 c3' o2 c4 21.5366 -16.6748 + 1.0 7 c3' c4 h1 15.5988 14.6287 + 1.0 7 c3' n3m c3' 20.0533 + 1.0 7 c3' c3a c3a 23.6977 45.8865 + 1.0 7 c3a c3a n3m 35.8865 53.6977 + 1.0 7 c3a c3' o1= 72.8758 76.1093 + 1.0 7 o1= c3' o2 79.4497 57.0987 + 1.0 7 c4 c3' o1= 31.8455 46.6613 + 1.0 7 c4 c3' o2 1.3435 4.6978 + 1.0 7 n3m c3' o1= 62.7124 52.4045 + 1.0 9 h1 n2z n2t 37.4419 141.1218 + 1.0 9 n2z n2t n1t 25.5611 1.2222 + 1.0 9 n2t n2z c4 195.9722 88.2679 + 1.0 9 n2z c4 h1 61.9652 3.3182 + 1.0 9 n2z c4 c4 67.8888 34.8803 + 1.0 10 c3a c3a si4 14.5831 23.7679 + 1.0 10 h1 c4 si4 16.6908 18.2764 + 1.0 10 c3a si4 h1 22.5947 8.7811 + 1.0 10 c4 si4 c4 18.5805 + 1.0 10 c4 si4 h1 13.3961 7.4104 + 1.0 10 c4 si4 si4 16.9455 11.4377 + 1.0 10 h1 si4 h1 9.3467 + 1.0 10 h1 si4 si4 5.6630 2.0706 + 1.0 10 si4 si4 si4 8.9899 + + +#torsion_3 compass + +> E = SUM(n=1,3) { V(n) * [ 1 - cos(n*Phi - Phi0(n)) ] } + +!Ver Ref I J K L V1 Phi0 V2 Phi0 V3 Phi0 +!---- --- ---- ---- ---- ---- ------- ------ ------- ------ ------- ------ + 1.0 1 c3a c3a c3a c3a 8.3667 0.0 1.2000 0.0 0.0000 0.0 + 1.0 1 c3a c3a c3a c4 0.0000 0.0 4.4072 0.0 0.0000 0.0 + 1.0 1 c3a c3a c3a h1 0.0000 0.0 3.9661 0.0 0.0000 0.0 + 1.0 1 c4 c3a c3a h1 0.0000 0.0 1.5590 0.0 0.0000 0.0 + 1.0 1 h1 c3a c3a h1 0.0000 0.0 2.3500 0.0 0.0000 0.0 + 1.0 1 c3a c3a c4 c3a -0.2802 0.0 -0.0678 0.0 -0.0122 0.0 + 1.0 1 c3a c3a c4 c4 -0.2802 0.0 -0.0678 0.0 -0.0122 0.0 + 1.0 1 c3a c3a c4 h1 -0.2802 0.0 -0.0678 0.0 -0.0122 0.0 + 1.0 1 c3a c4 c4 h1 -0.0228 0.0 0.0280 0.0 -0.1863 0.0 + 1.0 1 c4 c4 c4 c4 0.0000 0.0 0.0514 0.0 -0.1430 0.0 + 1.0 1 c4 c4 c4 h1 0.0000 0.0 0.0316 0.0 -0.1681 0.0 + 1.0 1 h1 c4 c4 h1 -0.1432 0.0 0.0617 0.0 -0.1530 0.0 + 1.0 1 * c3a c3a * 0.0000 0.0 4.5000 0.0 0.0000 0.0 + 1.0 1 * c4 c4 * 0.0000 0.0 0.0000 0.0 -0.1530 0.0 + 1.0 2 h1 o2z si4 c4 0.0000 0.0 0.0000 0.0 -0.0500 0.0 + 1.0 2 h1 o2z si4 h1 0.0000 0.0 0.0000 0.0 -0.0500 0.0 + 1.0 2 h1 o2z si4 o2z 0.0000 0.0 0.0000 0.0 -0.0500 0.0 + 1.0 2 si4 o2z si4 c4 0.0000 0.0 0.0000 0.0 -0.0100 0.0 + 1.0 2 si4 o2z si4 h1 0.0000 0.0 0.0000 0.0 -0.0100 0.0 + 1.0 2 si4 o2z si4 o2z -0.2250 0.0 0.0000 0.0 -0.0100 0.0 + 1.0 2 * o2z si4 * 0.0000 0.0 0.0000 0.0 -0.0100 0.0 + 1.0 3 c3a c3a c3a o2 0.0000 0.0 4.8498 0.0 0.0000 0.0 + 1.0 3 h1 c3a c3a o2 0.0000 0.0 1.7234 0.0 0.0000 0.0 + 1.0 3 c3a c3a o2 c4 0.0000 0.0 1.5000 0.0 0.0000 0.0 + 1.0 3 c3a c3a o2 h1 -0.6900 0.0 0.5097 0.0 0.0095 0.0 + 1.0 3 c4 c4 c4 o2 0.7137 0.0 0.2660 0.0 -0.2545 0.0 + 1.0 3 h1 c4 c4 o2 -0.1435 0.0 0.2530 0.0 -0.0905 0.0 + 1.0 3 o2 c4 c4 o2 1.1000 0.0 -0.0500 0.0 -0.1441 0.0 + 1.0 3 c4 c4 o2 c4 -0.4000 0.0 -0.4028 0.0 -0.2450 0.0 + 1.0 3 c4 c4 o2 h1 -0.6732 0.0 -0.4778 0.0 -0.1670 0.0 + 1.0 3 h1 c4 o2 c3a 0.9513 0.0 0.1155 0.0 0.0720 0.0 + 1.0 3 h1 c4 o2 c4 0.5302 0.0 0.0000 0.0 -0.3966 0.0 + 1.0 3 h1 c4 o2 h1 0.1863 0.0 -0.4338 0.0 -0.2121 0.0 + 1.0 4 c3a c3a c3a p4= 0.0000 0.0 5.4770 0.0 0.0000 0.0 + 1.0 4 h1 c3a c3a p4= 0.0000 0.0 2.2700 0.0 0.0000 0.0 + 1.0 4 c3a c3a p4= h1 -0.2720 0.0 1.1900 0.0 0.0000 0.0 + 1.0 4 c3a c3a p4= n2= -0.2720 0.0 1.1900 0.0 0.0000 0.0 + 1.0 4 c4 c4 c4 n2= 0.0970 0.0 0.0720 0.0 -0.2580 0.0 + 1.0 4 h1 c4 c4 n2= -0.1510 0.0 0.0100 0.0 -0.1860 0.0 + 1.0 4 c4 c4 n2= h1 -5.0720 0.0 -0.4980 0.0 -0.4380 0.0 + 1.0 4 h1 c4 n2= h1 1.2660 0.0 -0.7740 0.0 0.0380 0.0 + 1.0 4 h1 c4 p4= c4 0.0000 0.0 0.0000 0.0 -0.0680 0.0 + 1.0 4 h1 c4 p4= h1 0.0000 0.0 0.0000 0.0 -0.0680 0.0 + 1.0 4 h1 c4 p4= n2= 0.0000 0.0 0.0000 0.0 -0.0680 0.0 + 1.0 4 h1 n2= p4= c3a 0.0000 0.0 0.0000 0.0 -0.3500 0.0 + 1.0 4 h1 n2= p4= c4 0.0000 0.0 0.0000 0.0 -0.3690 0.0 + 1.0 4 h1 n2= p4= h1 0.0000 0.0 0.0000 0.0 -0.3500 0.0 + 1.0 4 h1 n2= p4= o2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 + 1.0 4 p4= n2= p4= h1 0.0000 0.0 0.0000 0.0 0.0000 0.0 + 1.0 4 p4= n2= p4= n2= 1.8000 0.0 0.5000 0.0 2.0000 0.0 + 1.0 4 h1 n3 p4= h1 0.0000 0.0 0.0000 0.0 0.0000 0.0 + 1.0 4 h1 n3 p4= n2= 0.0000 0.0 0.0000 0.0 0.0000 0.0 + 1.0 4 h1 n3 p4= o2 0.0000 0.0 0.0000 0.0 0.0000 0.0 + 1.0 4 h1 o2 p4= h1 5.7080 0.0 2.1180 0.0 0.0000 0.0 + 1.0 4 h1 o2 p4= n2= 5.7080 0.0 2.1180 0.0 0.0000 0.0 + 1.0 4 h1 o2 p4= o2 5.7080 0.0 2.1180 0.0 0.0000 0.0 + 1.0 4 * o2 p4= * 5.7080 0.0 2.1180 0.0 0.0000 0.0 + 1.0 4 * c3a n2= * 0.0000 0.0 1.0000 0.0 0.0000 0.0 + 1.0 4 * c3a p4= * -0.2720 0.0 1.1900 0.0 0.0000 0.0 + 1.0 4 * c4 n2= * 0.0000 0.0 0.0000 0.0 -0.0200 0.0 + 1.0 4 * c4 p4= * 0.0000 0.0 0.0000 0.0 -0.0680 0.0 + 1.0 4 * n2= p4= * 0.0000 0.0 0.0000 0.0 -0.3500 0.0 + 1.0 4 * n3 p4= * 0.0000 0.0 0.0000 0.0 0.0000 0.0 + 1.0 6 c3a c3a c3a n3o 0.0000 0.0 7.2124 0.0 0.0000 0.0 + 1.0 6 h1 c3a c3a n3o 0.0000 0.0 2.9126 0.0 0.0000 0.0 + 1.0 6 c3a c3a n3o o1= 0.0000 0.0 1.1600 0.0 0.0000 0.0 + 1.0 6 c4 c4 n3o o1= 0.0000 0.0 0.0000 0.0 -0.3500 0.0 + 1.0 6 h1 c4 n3o o1= 0.0000 0.0 0.0000 0.0 -0.3500 0.0 + 1.0 6 c4 c4 o2 n3o 0.0000 0.0 -0.4000 0.0 -0.2000 0.0 + 1.0 6 o1= n3o o2 c4 0.0000 0.0 2.0000 0.0 0.0000 0.0 + 1.0 7 c3' c3a c3a c3a 0.0000 0.0 4.6282 0.0 0.0000 0.0 + 1.0 7 c3' c3a c3a h1 0.0000 0.0 2.1670 0.0 0.0000 0.0 + 1.0 7 c3' n3m c3a c3a 0.0000 0.0 0.6500 0.0 0.0000 0.0 + 1.0 7 c3' n3m c3' o1 -0.4066 0.0 1.2513 0.0 -0.7507 0.0 + 1.0 7 c3' o2 c4 c4 0.1302 0.0 -0.3250 0.0 0.1134 0.0 + 1.0 7 c3' o2 c4 h1 0.9513 0.0 0.1155 0.0 0.0000 0.0 + 1.0 7 c3a c3a c3' o1= 0.0000 0.0 0.7800 0.0 0.0000 0.0 + 1.0 7 c3a c3a c3a n3m 0.0000 0.0 3.4040 0.0 0.0000 0.0 + 1.0 7 c3a n3m c3' o1= 0.0000 0.0 2.0521 0.0 0.0000 0.0 + 1.0 7 c4 o2 c3' c4 -2.5594 0.0 2.2013 0.0 0.0325 0.0 + 1.0 7 c4 o2 c3' o1= 0.8905 0.0 3.2644 0.0 0.2646 0.0 + 1.0 7 o1= c3' c4 h1 0.0000 0.0 0.0000 0.0 0.0000 0.0 + 1.0 7 o2 c3' c4 h1 0.0000 0.0 0.0000 0.0 0.0000 0.0 + 1.0 7 n3m c3a c3a h1 0.0000 0.0 3.4040 0.0 0.0000 0.0 + 1.0 9 h1 n2z n2t n1t 0.0000 0.0 0.0000 0.0 -0.2637 0.0 + 1.0 9 c4 n2z n2t n1t 0.0000 0.0 0.0000 0.0 -0.1823 0.0 + 1.0 9 n2t n2z c4 h1 0.0000 0.0 0.0000 0.0 -0.2181 0.0 + 1.0 9 n2t n2z c4 c4 0.0000 0.0 0.0000 0.0 -0.2021 0.0 + 1.0 9 n2z c4 c4 h1 0.0000 0.0 0.0000 0.0 -0.2259 0.0 + 1.0 10 c3a c3a c3a si4 0.0000 0.0 4.3270 0.0 0.0000 0.0 + 1.0 10 h1 c3a c3a si4 0.0000 0.0 1.5093 0.0 0.0000 0.0 + 1.0 10 c3a c3a si4 * 0.0000 0.0 0.0000 0.0 -0.0231 0.0 + 1.0 10 c4 c4 si4 si4 -0.3500 0.0 0.0000 0.0 -0.0657 0.0 + 1.0 10 * c4 si4 * 0.0000 0.0 0.0000 0.0 -0.0657 0.0 + 1.0 10 * si4 si4 * 0.0000 0.0 0.0000 0.0 -0.0657 0.0 + + +#end_bond-torsion_3 compass + +> E = (R - R0) * +> { F(1) * cos(phi) + F(2) * cos(2 * phi) + F(3) * cos(3 * phi) } + +! LEFT RIGHT +! ------------------------------- ------------------------------- +!Ver Ref I J K L F(1) F(2) F(3) F(1) F(2) F(3) +!---- --- ---- ---- ---- ---- ------- ------- ------- ------- ------- ------- + 1.0 1 c3a c3a c3a c3a -0.1185 6.3204 0.0000 + 1.0 1 c3a c3a c3a c4 0.0000 -0.6918 0.0000 0.0000 0.2421 0.0000 + 1.0 1 c3a c3a c3a h1 0.0000 -6.8958 0.0000 0.0000 -0.4669 0.0000 + 1.0 1 c4 c3a c3a h1 0.0000 -1.7970 0.0000 0.0000 -0.4879 0.0000 + 1.0 1 h1 c3a c3a h1 0.0000 -0.6890 0.0000 + 1.0 1 c3a c3a c4 c4 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 + 1.0 1 c3a c3a c4 h1 -0.5835 1.1220 0.3978 1.3997 0.7756 0.0000 + 1.0 1 c3a c4 c4 h1 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 + 1.0 1 c4 c4 c4 c4 -0.0732 0.0000 0.0000 + 1.0 1 c4 c4 c4 h1 0.2486 0.2422 -0.0925 0.0814 0.0591 0.2219 + 1.0 1 h1 c4 c4 h1 0.2130 0.3120 0.0777 + 1.0 3 c3a c3a c3a o2 0.0000 0.2655 0.0000 0.0000 4.8905 0.0000 + 1.0 3 h1 c3a c3a o2 0.0000 -1.5867 0.0000 0.0000 4.2641 0.0000 + 1.0 3 c3a c3a o2 h1 0.9000 -1.3456 1.1900 3.4132 0.5873 -0.1323 + 1.0 3 c4 c4 c4 o2 -0.3190 0.4411 -0.7174 1.1538 0.8409 -0.9138 + 1.0 3 h1 c4 c4 o2 0.9681 0.9551 0.0436 0.5903 0.6669 0.8584 + 1.0 3 o2 c4 c4 o2 1.0165 0.7553 -0.4609 + 1.0 3 c4 c4 o2 c4 -0.2456 1.0517 -0.7795 0.4741 1.2635 0.5576 + 1.0 3 c4 c4 o2 h1 -0.5800 0.9004 0.0000 0.0000 0.5343 0.9025 + 1.0 3 h1 c4 o2 c4 -0.6054 1.3339 0.9648 -0.1620 0.1564 -1.1408 + 1.0 3 h1 c4 o2 h1 -1.7554 1.3145 0.2263 0.2493 0.6803 0.0000 + 1.0 7 o1= c3' n3m c3' -0.7019 0.8305 -0.6874 0.1726 -0.4823 0.2666 + 1.0 7 c4 c4 o2 c3' -1.2164 -0.1715 -0.0964 0.2560 0.8133 -0.0728 + 1.0 7 h1 c4 o2 c3' 0.9589 0.9190 -0.6015 0.2282 2.2998 -0.4473 + 1.0 7 c4 c3' o2 c4 0.1928 1.3187 0.8599 0.0004 -1.0975 0.4831 + 1.0 7 o1= c3' o2 c4 -4.2421 10.1102 1.6824 0.0882 -2.4309 -0.7426 + 1.0 7 o1= c3' c4 h1 0.0536 0.0354 0.3853 2.9036 0.5307 0.1439 + 1.0 7 o2 c3' c4 h1 0.4160 -0.1140 0.7099 0.7800 1.3339 0.3268 + + +#middle_bond-torsion_3 compass + +> E = (R - R0) * +> { F(1) * cos(phi) + F(2) * cos(2 * phi) + F(3) * cos(3 * phi) } + +!Ver Ref I J K L F(1) F(2) F(3) +!---- --- ---- ---- ---- ---- -------- ------- ------- + 1.0 1 c3a c3a c3a c3a 27.5989 -2.3120 0.0000 + 1.0 1 c3a c3a c3a c4 0.0000 9.1792 0.0000 + 1.0 1 c3a c3a c3a h1 0.0000 -1.1521 0.0000 + 1.0 1 c4 c3a c3a h1 0.0000 3.9421 0.0000 + 1.0 1 h1 c3a c3a h1 0.0000 4.8228 0.0000 + 1.0 1 c3a c3a c4 c4 0.0000 0.0000 0.0000 + 1.0 1 c3a c3a c4 h1 -5.5679 1.4083 0.3010 + 1.0 1 c3a c4 c4 h1 0.0000 0.0000 0.0000 + 1.0 1 c4 c4 c4 c4 -17.7870 -7.1877 0.0000 + 1.0 1 c4 c4 c4 h1 -14.8790 -3.6581 -0.3138 + 1.0 1 h1 c4 c4 h1 -14.2610 -0.5322 -0.4864 + 1.0 3 c3a c3a c3a o2 0.0000 4.8255 0.0000 + 1.0 3 h1 c3a c3a o2 0.0000 5.5432 0.0000 + 1.0 3 c3a c3a o2 h1 1.1580 3.2697 3.5132 + 1.0 3 c4 c4 c4 o2 -21.8842 -7.6764 -0.6868 + 1.0 3 h1 c4 c4 o2 -16.7975 -1.2296 -0.2750 + 1.0 3 o2 c4 c4 o2 -17.2585 -3.6157 -0.8364 + 1.0 3 c4 c4 o2 c4 -5.9288 -2.7007 -0.3175 + 1.0 3 c4 c4 o2 h1 1.2472 0.0000 0.7485 + 1.0 3 h1 c4 o2 c4 -6.8007 -4.6546 -1.4101 + 1.0 3 h1 c4 o2 h1 0.0000 0.9241 -0.5889 + 1.0 4 c4 c4 c4 n2= 0.0000 0.0000 0.0000 + 1.0 4 h1 c4 c4 n2= -3.5150 -2.2980 -1.2770 + 1.0 4 c4 c4 n2= h1 -2.3800 2.5290 -0.7300 + 1.0 4 h1 c4 n2= h1 -0.4140 -2.8620 0.0070 + 1.0 4 p4= n2= p4= n2= 0.0000 0.0000 0.0000 + 1.0 7 c3' c3a c3a c3a 0.0000 3.8762 0.0000 + 1.0 7 o1= c3' n3m c3' -0.1118 -1.1990 0.6784 + 1.0 7 c4 c4 o2 c3' 9.9416 2.6421 2.2333 + 1.0 7 h1 c4 o2 c3' 7.7147 4.2557 -1.0118 + 1.0 7 o1= c3' c3a c3a 0.0000 2.4002 0.0000 + 1.0 7 c3a c3a c3a n3m 0.0000 5.2012 0.0000 + 1.0 7 c4 c3' o2 c4 1.3445 3.5515 -4.9202 + 1.0 7 o1= c3' o2 c4 0.4552 7.3091 0.2842 + 1.0 7 o1= c3' c4 h1 0.0000 0.0000 -1.0000 + 1.0 7 o2 c3' c4 h1 -13.7686 -2.5959 1.1934 + 1.0 7 h1 c3a c3a n3m 0.0000 5.2012 0.0000 + 1.0 10 c3a c3a c3a si4 0.0000 11.1576 0.0000 + 1.0 10 h1 c3a c3a si4 0.0000 6.2168 0.0000 + 1.0 10 c3a c3a si4 h1 0.0000 0.0000 -0.3146 + 1.0 10 h1 c4 si4 h1 0.0000 0.0000 -0.5906 + 1.0 10 h1 c4 si4 si4 0.0000 0.0000 -0.1909 + 1.0 10 c4 si4 si4 h1 0.0000 0.0000 -0.6941 + 1.0 10 h1 si4 si4 h1 0.0000 0.0000 -0.6302 + + +#angle-torsion_3 compass + +> E = (Theta - Theta0) * +> { F(1) * cos(phi) + F(2) * cos(2 * phi) + F(3) * cos(3 * phi) } + +! LEFT RIGHT +! ------------------------------- ------------------------------- +!Ver Ref I J K L F(1) F(2) F(3) F(1) F(2) F(3) +!---- --- ---- ---- ---- ---- ------- ------- ------- ------- ------- ------- + 1.0 1 c3a c3a c3a c3a 1.9767 1.0239 0.0000 + 1.0 1 c3a c3a c3a c4 0.0000 3.8987 0.0000 0.0000 -4.4683 0.0000 + 1.0 1 c3a c3a c3a h1 0.0000 2.5014 0.0000 0.0000 2.7147 0.0000 + 1.0 1 c4 c3a c3a h1 0.0000 -0.1242 0.0000 0.0000 3.4601 0.0000 + 1.0 1 h1 c3a c3a h1 0.0000 2.4501 0.0000 + 1.0 1 c3a c3a c4 c4 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 + 1.0 1 c3a c3a c4 h1 0.2251 0.6548 0.1237 4.6266 0.1632 0.0461 + 1.0 1 c3a c4 c4 h1 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 + 1.0 1 c4 c4 c4 c4 0.3886 -0.3139 0.1389 + 1.0 1 c4 c4 c4 h1 -0.2454 0.0000 -0.1136 0.3113 0.4516 -0.1988 + 1.0 1 h1 c4 c4 h1 -0.8085 0.5569 -0.2466 + 1.0 3 c3a c3a c3a o2 0.0000 10.0155 0.0000 0.0000 1.7404 0.0000 + 1.0 3 h1 c3a c3a o2 0.0000 1.8729 0.0000 0.0000 2.5706 0.0000 + 1.0 3 c3a c3a o2 h1 -5.1360 -1.0122 0.0000 4.6852 0.0230 -0.5980 + 1.0 3 c4 c4 c4 o2 0.5623 -0.3041 -0.4015 0.9672 -0.7566 -1.2331 + 1.0 3 h1 c4 c4 o2 2.3668 2.4920 -1.0122 -0.1892 0.4918 0.7273 + 1.0 3 o2 c4 c4 o2 0.5511 0.9737 -0.6673 + 1.0 3 c4 c4 o2 c4 -2.7466 1.4877 -0.8955 0.5676 0.9450 0.0703 + 1.0 3 c4 c4 o2 h1 -3.5903 2.5225 0.4888 0.8726 -0.3577 0.3888 + 1.0 3 h1 c4 o2 c4 -1.8234 1.6393 0.5144 -0.7777 0.4340 -0.6653 + 1.0 3 h1 c4 o2 h1 -3.4060 1.6396 0.0737 0.0000 -0.2810 -0.5944 + 1.0 4 c4 c4 c4 n2= -2.0980 1.8610 -1.6890 -0.1220 1.8930 -0.5670 + 1.0 4 h1 c4 c4 n2= -2.0980 1.8610 -1.6890 -0.1220 1.8930 -0.5670 + 1.0 4 c4 c4 n2= h1 -2.5230 2.8480 2.0590 -3.6920 4.0610 -1.5440 + 1.0 4 h1 c4 n2= h1 -1.8950 1.2210 -0.7460 0.1100 0.0650 0.1090 + 1.0 6 c3a c3a c3a n3o 0.0000 7.7594 0.0000 0.0000 0.0000 0.0000 + 1.0 6 h1 c3a c3a n3o 0.0000 -8.0369 0.0000 0.0000 0.0000 0.0000 + 1.0 6 c3a c3a n3o o1= 0.0000 0.0000 0.0000 0.0000 -3.4207 0.0000 + 1.0 6 h1 c4 n3o o1= 0.0000 -0.3086 0.0000 0.0000 1.0352 0.0000 + 1.0 6 o1= n3o o2 c4 -3.0000 0.0000 0.0000 0.0000 0.0000 0.0000 + 1.0 7 o1= c3' n3m c3' -1.5747 2.3997 -0.2851 -0.3038 -0.0548 -0.3188 + 1.0 7 c4 c4 o2 c3' -0.4620 1.4492 -0.6765 -0.0890 -0.9159 0.7229 + 1.0 7 h1 c4 o2 c3' -0.4990 2.8061 -0.0401 -0.3142 -0.8699 0.0971 + 1.0 7 c4 c3' o2 c4 0.9701 -2.5169 1.7195 0.8831 -0.8203 0.2405 + 1.0 7 o1= c3' o2 c4 5.9732 2.7261 1.9052 2.3573 1.0059 -0.0327 + 1.0 7 o1= c3' c4 h1 -2.0667 0.7308 -0.2083 14.4728 0.3339 0.0800 + 1.0 7 o2 c3' c4 h1 -0.0241 1.4427 0.1212 13.2959 0.8005 -0.0071 + 1.0 10 c3a c3a c3a si4 0.0000 -5.5448 0.0000 0.0000 4.3281 0.0000 + 1.0 10 h1 c3a c3a si4 0.0000 4.5914 0.0000 0.0000 1.1079 0.0000 + 1.0 10 c3a c3a si4 h1 0.0000 0.0000 -0.2779 0.0000 0.0000 -0.1932 + 1.0 10 h1 c4 si4 c4 0.0000 0.0000 0.3382 0.0000 0.0000 0.4272 + + +#wilson_out_of_plane compass + +> E = K * (Chi - Chi0)^2 + +!Ver Ref I J K L K Chi0 +!---- --- ---- ---- ---- ---- ------- ---- + 1.0 1 c3a c3a c3a c3a 7.1794 0.0 + 1.0 1 c3a c3a c3a c4 7.8153 0.0 + 1.0 1 c3a c3a c3a h1 4.8912 0.0 + 1.0 3 c3a c3a c3a o2 13.0421 0.0 + 1.0 4 c3a c3a c3a n2= 8.0000 0.0 + 1.0 4 c3a c3a c3a p4= 6.7090 0.0 + 1.0 6 c3a c3a c3a n3o 0.9194 0.0 + 1.0 6 c3a n3o o1= o1= 36.2612 0.0 + 1.0 6 c4 n3o o1= o1= 44.3062 0.0 + 1.0 6 h1 n3o o1= o1= 38.5581 0.0 + 1.0 6 o1= n3o o1= o2 45.0000 0.0 + 1.0 7 c3' c3' n3m c3a 0.0000 0.0 + 1.0 7 c3' c3a c3a c3a 17.0526 0.0 + 1.0 7 c3' n3m c3' c3a 0.0000 0.0 + 1.0 7 c3a c3a n3m c3a 17.0526 0.0 +!1.0 7 c3a c3a c3a n3m 17.0526 0.0 + 1.0 7 c3a c3' n3m o1= 30.0000 0.0 +!1.0 7 c3a c3a c3' c3a 17.0526 0.0 +!1.0 7 c3a c3' o1= n3m 30.0000 0.0 + 1.0 7 c3a o1= c3' n3m 30.0000 0.0 + 1.0 7 c4 c3' o2 o1= 46.9264 0.0 + 1.0 10 c3a c3a si4 c3a 5.3654 0.0 + + +#angle-angle compass + +> E = K * (Theta - Theta0) * (Theta' - Theta0') + +! J' I' K' +!Ver Ref I J K K +!---- --- ---- ---- ---- ---- ------- + 1.0 1 c3a c3a c3a c3a 0.0000 + 1.0 1 c3a c3a c3a h1 0.0000 + 1.0 1 c3a c3a h1 c3a 0.0000 + 1.0 1 c4 c4 c3a h1 2.0403 + 1.0 1 h1 c4 c3a h1 3.0118 + 1.0 1 c3a c4 c4 h1 -1.8202 + 1.0 1 c4 c4 c4 c4 -0.1729 + 1.0 1 c4 c4 c4 h1 -1.3199 + 1.0 1 h1 c4 c4 h1 -0.4825 + 1.0 1 c3a c4 h1 c4 1.0827 + 1.0 1 c3a c4 h1 h1 2.3794 + 1.0 1 c4 c4 h1 c4 0.1184 + 1.0 1 c4 c4 h1 h1 0.2738 + 1.0 1 h1 c4 h1 h1 -0.3157 + 1.0 3 c3a c3a c3a o2 0.0000 + 1.0 3 c3a c3a o2 c3a 0.0000 + 1.0 3 c4 c4 c4 o2 -0.8330 + 1.0 3 h1 c4 c4 o2 2.5926 + 1.0 3 c4 c4 h1 o2 3.9177 + 1.0 3 h1 c4 h1 o2 2.4259 + 1.0 3 c4 c4 o2 c4 -3.5744 + 1.0 3 c4 c4 o2 h1 0.1689 + 1.0 3 h1 c4 o2 h1 2.1283 + 1.0 4 h1 c4 c4 n2= 1.0910 + 1.0 4 c4 c4 h1 n2= 2.7530 + 1.0 4 h1 c4 h1 n2= 1.7680 + 1.0 4 c4 c4 n2= h1 -1.3060 + 1.0 4 h1 c4 n2= h1 -2.9470 + 1.0 7 h1 c4 c3' o2 4.7955 + 1.0 7 c3' c4 h1 h1 -1.7653 + 1.0 11 h1 c4 c3' h1 0.0 + 1.0 10 h1 c4 h1 si4 0.0000 + 1.0 10 h1 c4 si4 h1 2.2050 + 1.0 10 c4 si4 c4 h1 3.3827 + 1.0 10 c4 si4 c4 si4 1.3465 + 1.0 10 h1 si4 c4 h1 4.6809 + 1.0 10 si4 si4 c4 si4 -5.6849 + 1.0 10 c4 si4 h1 c4 2.7963 + 1.0 10 c4 si4 h1 h1 4.4559 + 1.0 10 c4 si4 h1 si4 3.4758 + 1.0 10 h1 si4 h1 h1 2.0665 + 1.0 10 si4 si4 h1 si4 3.4924 + 1.0 10 c4 si4 si4 c4 2.0805 + 1.0 10 c4 si4 si4 h1 -2.9623 + 1.0 10 c4 si4 si4 si4 4.5272 + 1.0 10 h1 si4 si4 h1 1.6082 + 1.0 10 si4 si4 si4 h1 4.1996 + + +#angle-angle-torsion_1 compass + +> E = K * (Theta - Theta0) * (Theta' - Theta0') * cos(Phi) + +!Ver Ref I J K L K(Ang,Ang,Tor) +!---- --- ---- ---- ---- ---- -------------- + 1.0 1 c3a c3a c3a c3a 0.0000 + 1.0 1 c3a c3a c3a c4 -14.4097 + 1.0 1 c3a c3a c3a h1 -4.8141 + 1.0 1 c4 c3a c3a h1 4.4444 + 1.0 1 h1 c3a c3a h1 0.3598 + 1.0 1 c3a c3a c4 h1 -5.8888 + 1.0 1 c4 c4 c4 c4 -22.0450 + 1.0 1 c4 c4 c4 h1 -16.1640 + 1.0 1 h1 c4 c4 h1 -12.5640 + 1.0 3 c3a c3a c3a o2 -21.0247 + 1.0 3 h1 c3a c3a o2 4.2296 + 1.0 3 c3a c3a o2 h1 -4.6072 + 1.0 3 c4 c4 c4 o2 -29.0420 + 1.0 3 h1 c4 c4 o2 -20.2006 + 1.0 3 o2 c4 c4 o2 -14.0484 + 1.0 3 c4 c4 o2 c4 -19.0059 + 1.0 3 c4 c4 o2 h1 -12.1038 + 1.0 3 h1 c4 o2 c4 -16.4438 + 1.0 3 h1 c4 o2 h1 -10.5093 + 1.0 4 c4 c4 c4 n2= 0.0000 + 1.0 4 h1 c4 c4 n2= -27.5060 + 1.0 4 c4 c4 n2= h1 -8.8980 + 1.0 4 h1 c4 n2= h1 -9.6280 + 1.0 4 h1 c4 p4= c4 -25.5460 + 1.0 4 h1 c4 p4= h1 -16.0180 + 1.0 4 h1 c4 p4= n2= -19.9340 + 1.0 4 h1 n2= p4= c4 -11.1020 + 1.0 4 h1 n2= p4= h1 -3.7880 + 1.0 6 c3a c3a c3a n3o -34.9681 + 1.0 6 h1 c3a c3a n3o 2.1508 + 1.0 6 c3a c3a n3o o1= -18.0436 + 1.0 6 h1 c4 n3o o1= -16.2615 + 1.0 7 o1= c3' n3m c3' -3.3556 + 1.0 7 c4 c4 o2 c3' -15.7082 + 1.0 7 h1 c4 o2 c3' -13.1500 + 1.0 7 c4 c3' o2 c4 -12.2070 + 1.0 7 o1= c3' o2 c4 -32.9368 + 1.0 7 o1= c3' c4 h1 -23.1923 + 1.0 7 o2 c3' c4 h1 -13.9734 + 1.0 10 c4 si4 c4 h1 -17.5802 + 1.0 10 h1 si4 c4 h1 -12.9341 + 1.0 10 h1 c4 si4 si4 -13.3679 + 1.0 10 c4 si4 si4 h1 -16.9141 + 1.0 10 h1 si4 si4 h1 -10.8232 + 1.0 10 h1 si4 si4 si4 -12.2900 + + +#nonbond(9-6) compass + +> E = eps(ij) [2(r(ij)*/r(ij))**9 - 3(r(ij)*/r(ij))**6] +> where r(ij) = [(r(i)**6 + r(j)**6))/2]**(1/6) +> +> eps(ij) = 2 sqrt(eps(i) * eps(j)) * +> r(i)^3 * r(j)^3/[r(i)^6 + r(j)^6] + +@combination sixth-power +@type r-eps + +!Ver Ref I r eps +!---- --- ---- --------- --------- + 1.0 1 c3a 3.9150 0.0680 + 1.0 1 c4 3.8540 0.0620 + 1.0 1 c43 3.8540 0.0400 + 1.0 1 c44 3.8540 0.0200 + 1.0 1 h1 2.8780 0.0230 + 1.0 2 o2z 3.3000 0.0800 + 1.0 2 si4 4.4050 0.1980 + 1.0 2 si4c 4.2900 0.1310 + 1.0 3 c4o 3.8150 0.0680 + 1.0 3 h1o 1.0870 0.0080 + 1.0 3 o2 3.3000 0.0800 + 1.0 3 o2e 3.3000 0.1200 + 1.0 3 o2h 3.5800 0.0960 + 1.0 4 n2= 3.8300 0.0960 + 1.0 4 p4= 4.2950 0.0650 + 1.0 5 he 2.9000 0.0050 + 1.0 5 ne 3.2000 0.0550 + 1.0 5 ar 3.8800 0.2000 + 1.0 5 kr 4.3000 0.2800 + 1.0 5 xe 4.2600 0.3900 + 1.0 5 h1h 1.4210 0.0216 + 1.0 5 n1n 3.8008 0.0598 + 1.0 5 c1o 4.0120 0.0530 + 1.0 5 o1o 3.4758 0.0780 + 1.0 5 o1c 3.6020 0.0850 + 1.0 5 n1o 3.4600 0.1280 + 1.0 5 o1n 3.3000 0.1560 + 1.0 5 c2= 3.9150 0.0680 + 1.0 5 s2= 4.0470 0.1250 + 1.0 5 n2o 3.5290 0.3330 + 1.0 5 o1= 3.4300 0.1920 + 1.0 5 o1=* 3.3600 0.0670 + 1.0 5 s1= 4.0070 0.3130 + 1.0 6 n3o 3.7600 0.0480 + 1.0 6 o12 3.4000 0.0480 + 1.0 6 o2n 3.6500 0.2000 + 1.0 7 c3' 3.9000 0.0640 + 1.0 7 n3m 3.7200 0.1500 + 1.0 7 o2s 3.3000 0.0960 + 1.1 8 c4o 3.8700 0.0748 + 1.1 8 c41o 3.8700 0.1080 + 1.1 8 c43o 3.6700 0.0498 + 1.0 9 c4z 3.6500 0.0800 + 1.0 9 n1z 3.5200 0.0850 + 1.0 9 n2t 3.3000 0.0500 + 1.0 9 n2z 3.4000 0.1200 + + +#bond_increments compass + +!Ver Ref I J DeltaIJ DeltaJI +!---- --- ---- ---- ------- ------- + 1.0 1 c3a c3a 0.0000 0.0000 + 1.0 1 c3a c4 0.0000 0.0000 + 1.0 1 c3a h1 -0.1268 0.1268 + 1.0 1 c4 c4 0.0000 0.0000 + 1.0 1 c4 h1 -0.0530 0.0530 + 1.0 2 o2z si4 -0.2225 0.2225 + 1.0 3 c3a o2e 0.0420 -0.0420 + 1.0 3 c3a o2h 0.0420 -0.0420 + 1.0 3 c4 o2e 0.1600 -0.1600 + 1.0 3 c4 o2h 0.1600 -0.1600 + 1.0 3 h1 o2 0.4200 -0.4200 + 1.0 3 h1 o2h 0.4200 -0.4200 + 1.0 4 c3a n2= 0.1990 -0.1990 + 1.0 4 c3a p4= -0.0600 0.0600 + 1.0 4 c4 n2= 0.3450 -0.3450 + 1.0 4 c4 p4= -0.0500 0.0500 + 1.0 4 cl1p p4= -0.1200 0.1200 + 1.0 4 f1p p4= -0.1800 0.1800 + 1.0 4 h1 n2= 0.3280 -0.3280 + 1.0 4 h1 p4= -0.0500 0.0500 + 1.0 4 n2= n2= 0.0000 0.0000 + 1.0 4 n2= n3 0.0250 -0.0250 + 1.0 4 n2= o2 -0.0430 0.0430 + 1.0 4 n2= p4= -0.3500 0.3500 + 1.0 4 n3 p4= -0.1200 0.1200 + 1.0 4 o2 p4= -0.1400 0.1400 + 1.0 5 c1o o1c -0.0203 0.0203 + 1.0 5 c2= o1= 0.4000 -0.4000 + 1.0 5 c2= s1= 0.0258 -0.0258 + 1.0 5 n2o o1= 0.0730 -0.0730 + 1.0 5 h1h h1h 0.0000 0.0000 + 1.0 5 n1n n1n 0.0000 0.0000 + 1.0 5 n1o o1n 0.0288 -0.0288 + 1.0 5 o1= s2= -0.2351 0.2351 + 1.0 5 o1o o1o 0.0000 0.0000 + 1.0 6 c3a n3o 0.2390 -0.2390 + 1.0 6 c4 n3o 0.2100 -0.2100 + 1.0 6 c4 o2n 0.3170 -0.3170 + 1.0 6 h1 n3o 0.1880 -0.1880 + 1.0 6 n3o o1= 0.4280 -0.4280 + 1.0 6 n3o o2n 0.0010 -0.0010 + 1.0 7 c3' o2e 0.1120 -0.1120 + 1.0 7 c3' c4 0.0000 0.0000 + 1.0 7 c3' o1= 0.4500 -0.4500 + 1.0 7 c3' c3a 0.0350 -0.0350 + 1.0 7 c3' n3m 0.0000 0.0000 + 1.0 7 c3a n3m 0.0950 -0.0950 + 1.1 8 h1 o2h 0.4100 -0.4100 + 1.0 9 n2z c4 -0.3110 0.3110 + 1.0 9 n2z h1 -0.3350 0.3350 + 1.0 9 n2t n1t 0.3860 -0.3860 + 1.0 9 n2t n2z 0.2470 -0.2470 + 1.0 10 c3a si4 -0.1170 0.1170 + 1.0 10 c4 si4 -0.1350 0.1350 + 1.0 10 h1 si4 -0.1260 0.1260 + +#templates compass + +type: ? + ! anything + template: (>*) +end_type + +type: ar + ! Argon atom + template: (>Ar) +end_type + +type:c1o + ! Carbon in CO + template: [>C[~O]] +end_type + +type:c2= + ! Carbon in =C= (e.g. CO2, CS2) + template: [>C[~*][~*]] +end_type + +type:c3' + ! Carbonyl carbon [one polar substituent such as O,N] + ! e.g. amide, acid and ester + template: (>C (~O) (~*) (~*)) + atom_test:1 + hybridization:sp2 + end_test + atom_test:3 + allowed_elements: C, H + end_test + atom_test:4 + allowed_elements: O, N + end_test +end_type + +type:c3a + ! SP2 aromatic carbon + template:(>C(~*)(~*)(~*)) + atom_test:1 + hybridization: SP2 + aromaticity:AROMATIC + end_test +end_type + +type:c3a + ! Transferred from pcff - may not be required. + ! This is used for aromatic carbons that fail the aromaticity test because + ! the current ring checker is too lame to figure on a ring with more than + ! seven or eight sides. The NON_AROMATIC test is to eliminate the conflict + ! with the above 'c3a' definition. This can be removed when the ring checker + ! is made more robust. + template: [>C(-*)(:*)(:*)] + atom_test:1 + hybridization:SP2 + aromaticity:NON_AROMATIC + end_test +end_type + +type:c4 + ! generic SP3 carbon + template: (>C(-*)(-*)(-*)(-*)) + atom_test:1 + hybridization:SP3 + end_test +end_type + +type:c41o + ! Carbon, sp3, in methanol (and dimethyl ether?) + template: [>C(-O(-*))(-H)(-H)(-H)] + atom_test:1 + hybridization:SP3 + end_test + atom_test:3 + allowed_elements:C,H +end_type + +type: c43 + ! sp3 carbon with 1 h and 3 heavy atoms + template: (>C(-H)(-*)(-*)(-*)) + atom_test:1 + hybridization:SP3 + atom_test:3 + disallowed_elements:H + atom_test:4 + disallowed_elements:H + atom_test:5 + disallowed_elements:H + end_test +end_type + +type:c43o + ! Carbon, sp3, in secondary alcohols + template: [>C(-O(-H))(-H)(-C)(-C)] + atom_test:1 + hybridization:SP3 + end_test +end_type + +type: c44 + ! sp3 carbon with four heavy atoms attached + template: (>C(-*)(-*)(-*)(-*)) + atom_test:1 + hybridization:SP3 + atom_test:2 + disallowed_elements:H + atom_test:3 + disallowed_elements:H + atom_test:4 + disallowed_elements:H + atom_test:5 + disallowed_elements:H + end_test +end_type + +type: c4o + ! alpha carbon (e.g. alpha to oxygen in ethers and alcohols) + template: (>C(-O)(-*)(-*)(-*)) + atom_test:1 + hybridization:SP3 + end_test +end_type + +type: c4z + ! Carbon, sp3, bonded to -N3 (azides) + template: (>C(-N(~N(~N)))(-*)(-*)(-*)) + atom_test:1 + hybridization:SP3 + end_test +end_type + +type:h1 + ! nonpolar hydrogen + template: (>H (-*) ) + atom_test:2 + allowed_elements:C,Si + end_test +end_type + +type:h1h + ! Hydrogen in H2 + template: [>H[-H]] +end_type + +type:h1o + ! strongly polar hydrogen (bonded to fluorine, nitrogen, Oxygen - h* in pcff) + template: (>H(-*)) + atom_test:2 + allowed_elements:O,N,F + end_test +end_type + +type: he + ! Helium atom + template: (>He) +end_type + +type: kr + ! Krypton atom + template: (>Kr) +end_type + +type:n1n + ! Nitrogen in N2 + template: [>N[~N]] +end_type + +type:n1o + ! Nitrogen in NO + template: [>N[~O]] +end_type + +type:n1z + ! Nitrogen, terminal atom in -N3 + template: [>N[~N[~N(~*)]]] +end_type + +type:n2= + ! Nitrogen (in phosphazenes, or generic???) + template: [>N(~*)(~*)] +end_type + +type:n2o + ! Nitrogen in NO2 + template: [>N[~O][~O]] +end_type + +type:n2t + ! Nitrogen, central atom in -N3 + template: [>N[~N][~N(~*)]] +end_type + +type:n2z + ! Nitrogen, first atom in -N3 + template: (>N[~N[~N]](~*)) +end_type + +type: n3m + ! sp3 nitrogen in amides without hydrogen + template: (>N(-C[=O])(-C)(-C)) + atom_test:1 + hybridization:SP3 + end_test +end_type + +type: n3o + ! Nitrogen in nitro group + template: (>N[~O][~O](~O(~C))) +end_type + +type: ne + ! Neon atom + template: (>Ne) +end_type + +type:o1= + ! Oxygen in NO2 and SO2 [and carbonyl] + template: (>O(~*)) + atom_test:2 + allowed_elements:N,S,C + end_test +end_type + +type:o1=* + ! Oxygen in CO2 + template: [>O[~C[~O]]] +end_type + +type:o12 + ! Oxygen in nitro group -NO2 + template: [>O[~N[~O](~*)]] +end_type + +type:o1c + ! Oxygen in CO + template: [>O[~C]] +end_type + +type:o1n + ! Oxygen in NO + template: [>O[~N]] +end_type + +type:o1o + ! Oxygen in O2 + template: [>O[~O]] +end_type + +type:o2 + ! Generic oxygen with two bonds attached + template: [>O(~*)(~*)] +end_type + +type:o2e + ! Ether oxygen + template: [>O(-C)(-C)] + atom_test: 1 + aromaticity:NON_AROMATIC + end_test +end_type + +type:o2h + ! Hydroxyl oxygen + template: (>O[-H](~*)) +end_type + +type:o2n + ! Oxygen in nitrates + template: (>O[~N[~O][~O]](~C)) +end_type + +type:o2s + ! Ester oxygen + template: (>O[~C[~O](~*)](~C)) +end_type + +type: o2z + ! Oxygen in siloxanes and zeolites + template: (>O(-Si)(-*) ) + atom_test: 3 + allowed_elements: Si, H + end_test +end_type + +type: p4= + ! Phosphorous [in phosphazenes] + template: (>P(~*)(~*)(~*)(~*)) +end_type + +type:s1= + ! Sulfur in CS2 + template: [>S[~C[~S]]] +end_type + +type:s2= + ! Sulfur in SO2 + template: [>S[~O][~O]] +end_type + +type: si4 + ! Generic silicon with four bonds attached + template: (>Si(-*)(-*)(-*)(-*)) +end_type + +type: si4c + ! A subset of si4, non-hydrogen atom attached [siloxanes??] + template: (>Si(-O)(-*)(-*)(-*)) + atom_test: 3 + allowed_elements: O, C + end_test + atom_test: 4 + allowed_elements: O, C + end_test + atom_test: 5 + allowed_elements: O, C + end_test +end_type + +type: xe + ! Xenon atom + template: (>Xe) +end_type + +precedence: +(? + (ar) + (c1o) + (c2=) + (c3a) (c3') + (c4 (c43 (c43o)) (c44) (c4o(c41o)) (c4z) ) + (h1) (h1h) (h1o) + (he) + (kr) + (n1n) (n1o) (n1z) + (n2= (n2o) (n2t) (n2z) ) + (n3m) (n3o) + (ne) + (o1= (o1=*) (o12) (o1c) (o1n) ) (o1o) + (o2 (o2e(o2s)) (o2h) (o2n) (o2z) ) + (p4=) + (s1=) + (s2=) + (si4 (si4c) ) + (xe) +) +end_precedence + + + +#reference 1 +@Author tester +@Date 01-Jun-09 +Barebones compass for aromatic & aliphatic hydrocarbons from H. Sun JCP B102, 7361-2 (1998) + +This file created by Materials Design, Inc. (www.materialsdesign.com) Please realize that +we neither support this version, nor make any warranty as to the correctness of the parameters. +We have checked the numbers against the literature, but of course there may still be errors, +including errors of interpretation. Also, the current version of COMPASS may well be different +that that originally published. + +If you have comments or suggestions, feel free to email Paul Saxe at psaxe (at) materialsdesign.com + +#reference 2 +@Author tester +@Date 27-Jun-09 +Parameters for siloxanes from Sun/Rigby Spectrochim. Acta A53, 1301-23 (1997) (o2 later renamed to o2z) + +#reference 3 +@Author tester +@Date 27-Jun-09 +Parameters for ethers and alcohols from Rigby/Sun/Eichinger Polym. Int. 44, 311-330 (1997) + +#reference 4 +@Author tester +@Date 30-Jun-09 +Parameters for phosphazenes from Comput. Theor. Polym. Sci. 8, 229-246 (1998) + +#reference 5 +@Author tester +@Date 28-Jun-09 +Parameters for He,Ne,Ar,Kr,Xe,H2,O2,N2,NO,CO,CO2,NO2,CS2,SO2 from JPC B104, 4951-7 (2000) + +#reference 6 +@Author tester +@Date 29-Jun-09 +Parameters for nitrate esters from JPC B104, 2477-89 (2000) + +#reference 7 +@Author tester +@Date 30-Jun-09 +Parameters for Ultem (imides) from Polymer 43, 599-607 (2002) + +#reference 8 +@Author tester +@Date 30-Jun-09 +Parameters for 2y and 3y alcohols from Fluid Phase Equilibria 217, 77-87 (2004) + +#reference 9 +@Author tester +@Date 30-Jun-09 +Parameters for aliphatic azides from J. Comput. Chem. 25, 61-71 (2004) + +#reference 10 +@Author tester +@Date 02-Jul-09 +Ref 2 missing -C-Si- params; assume values from Macromols 28, 701-712 (1995) (see pcff) diff --git a/tools/moltemplate/moltemplate/force_fields/compass_published.lt b/tools/moltemplate/moltemplate/force_fields/compass_published.lt new file mode 100644 index 0000000000..3ec7595f28 --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/compass_published.lt @@ -0,0 +1,4148 @@ +# This file was generated automatically using: +# msifrc2lt.py -name COMPASS < compass_published.frc > compass_published.lt + +# This is an incomplete version of the COMPASS force field based on available +# public sources. Parameters for common atoms and many groups are missing +# (for example, sp2 carbons and the NH2 amine group). The commercial version +# of COMPASS is much larger and presumably includes more up to date +# parameters and parameters for a wider range of atom types and molecule types. +# (However files containing those force field parameters have not been publicly +# disclosed.) We would like to thank Materials Design Inc. for collecting +# these force field parameters and making them publicly available. + +# USAGE: You can create molecules using this force-field this way: +# +# MyMolecule inherits COMPASS { +# # atom-id mol-id atom-type charge X Y Z +# write('Data Atoms') { +# $atom:C1 $mol @atom:c4 0.00 -0.6695 0.000000 0.000000 +# $atom:H11 $mol @atom:h1 0.00 -1.234217 -0.854458 0.000000 +# : : : : : : +# } +# } +# +# You can omit the atom charge in your molecule definition. +# (Partial charges will be assigned later according to the force field rules.) +# Responsibility for choosing the atom types (eg "@atom:c4", "@atom:h1") falls +# on the user. You must select the type of each atom in the molecule carefully +# by looking at the description in the "Data Masses" section of this file +# (see below), and looking for a reasonable match. If your simulation is +# non-neutral, or moltemplate complains that you have missing bond, angle, or +# dihedral types, this means at least one of your atom types is incorrect. + + + +COMPASS { + + + # AtomType Mass # "Description" (version, reference) + + write_once("Data Masses") { + @atom:ar 39.944 # Ar, "argon" (ver=1.0, ref=5) + @atom:c3a 12.01115 # C, "aromatic carbon" (ver=1.0, ref=1) + @atom:c1o 12.01115 # C, "carbon in CO" (ver=1.0, ref=5) + @atom:c2= 12.01115 # C, "carbon in CO2 and CS2" (ver=1.0, ref=5) + @atom:c3prime 12.01115 # C, "carbonyl carbon [one polar substituent]" (ver=1.0, ref=7) + @atom:c4 12.01115 # C, "generic sp3 carbon" (ver=1.0, ref=1) + @atom:c41o 12.01115 # C, "carbon, sp3, in methanol" (ver=1.0, ref=8) + @atom:c43o 12.01115 # C, "carbon, sp3 in secondary alcohols" (ver=1.0, ref=8) + @atom:c43 12.01115 # C, "sp3 carbon with three heavy atoms attached" (ver=1.0, ref=1) + @atom:c44 12.01115 # C, "sp3 carbon with four heavy atoms attached" (ver=1.0, ref=1) + @atom:c4o 12.01115 # C, "alpha carbon" (ver=1.0, ref=3) + @atom:c4z 12.01115 # C, "carbon, sp3, bonded to -N3" (ver=1.0, ref=9) + @atom:h1 1.00797 # H, "nonpolar hydrogen" (ver=1.0, ref=1) + @atom:h1h 1.00797 # H, "hydrogen in H2" (ver=1.0, ref=5) + @atom:h1o 1.00797 # H, "strongly polar hydrogen, bonded to O,F" (ver=1.0, ref=3) + @atom:he 4.003 # He, "helium" (ver=1.0, ref=5) + @atom:kr 83.8 # Kr, "krypton" (ver=1.0, ref=5) + @atom:n1n 14.0067 # N, "nitrogen in N2" (ver=1.0, ref=5) + @atom:n1o 14.0067 # N, "nitrogen in NO" (ver=1.0, ref=5) + @atom:n1z 14.0067 # N, "nitrogen, terminal atom in -N3" (ver=1.0, ref=5) + @atom:n2= 14.0067 # N, "nitrogen" (ver=1.0, ref=4) + @atom:n2o 14.0067 # N, "nitrogen in NO2" (ver=1.0, ref=5) + @atom:n2t 14.0067 # N, "nitrogen, central atom in -N3" (ver=1.0, ref=9) + @atom:n2z 14.0067 # N, "nitrogen, first atom in -N3" (ver=1.0, ref=9) + @atom:n3m 14.0067 # N, "sp3 nitrogen in amides without hydrogen" (ver=1.0, ref=7) + @atom:n3o 14.0067 # N, "nitrogen in nitro group" (ver=1.0, ref=6) + @atom:ne 20.183 # Ne, "neon" (ver=1.0, ref=5) + @atom:o1= 15.9994 # O, "oxygen in NO2 and SO2 [and carbonyl]" (ver=1.0, ref=5) + @atom:o1=star 15.9994 # O, "oxygen in CO2" (ver=1.0, ref=5) + @atom:o12 15.9994 # O, "oxygen in nitro group (-NO2)" (ver=1.0, ref=6) + @atom:o1c 15.9994 # O, "oxygen in CO" (ver=1.0, ref=5) + @atom:o1n 15.9994 # O, "oxygen in NO" (ver=1.0, ref=5) + @atom:o1o 15.9994 # O, "oxygen in O2" (ver=1.0, ref=5) + @atom:o2 15.9994 # O, "generic oxygen with two bonds attached" (ver=1.0, ref=2) + @atom:o2e 15.9994 # O, "ether oxygen" (ver=1.0, ref=3) + @atom:o2h 15.9994 # O, "hydroxyl oxygen" (ver=1.0, ref=3) + @atom:o2n 15.9994 # O, "oxygen in nitrates" (ver=1.0, ref=6) + @atom:o2s 15.9994 # O, "ester oxygen" (ver=1.0, ref=7) + @atom:o2z 15.9994 # O, "oxygen, in siloxanes and zeolites" (ver=1.0, ref=2) + @atom:p4= 30.9738 # P, "phosphorous" (ver=1.0, ref=4) + @atom:s1= 32.064 # S, "sulfur in CS2" (ver=1.0, ref=5) + @atom:s2= 32.064 # S, "sulfur in SO2" (ver=1.0, ref=5) + @atom:si4 28.086 # Si, "generic silicon with four bonds attached" (ver=1.0, ref=2) + @atom:si4c 28.086 # Si, "a subset of si4, non-hydrogen atom attached [siloxanes]" (ver=1.0, ref=2) + @atom:xe 131.3 # Xe, "xenon" (ver=1.0, ref=5) + } #(end of atom masses) + + + # ---------- EQUIVALENCE CATEGORIES for bonded interaction lookup ---------- + # Each type of atom has a separate ID used for looking up bond parameters + # and a separate ID for looking up 3-body angle interaction parameters + # and a separate ID for looking up 4-body dihedral interaction parameters + # and a separate ID for looking up 4-body improper interaction parameters + # The complete @atom type name includes ALL of these ID numbers. There's + # no need to force the end-user to type the complete name of each atom. + # The "replace" command used below informs moltemplate that the short + # @atom names we have been using abovee are equivalent to the complete + # @atom names used below: + + replace{ @atom:ar @atom:ar,par,bar,aar,dar,iar } + replace{ @atom:c3a @atom:c3a,pc3a,bc3a,ac3a,dc3a,ic3a } + replace{ @atom:c1o @atom:c1o,pc1o,bc1o,ac1o,dc1o,ic1o } + replace{ @atom:c2= @atom:c2=,pc2=,bc2=,ac2=,dc2=,ic2= } + replace{ @atom:c3prime @atom:c3prime,pc3prime,bc3prime,ac3prime,dc3prime,ic3prime } + replace{ @atom:c4 @atom:c4,pc4,bc4,ac4,dc4,ic4 } + replace{ @atom:c41o @atom:c41o,pc41o,bc4,ac4,dc4,ic4 } + replace{ @atom:c43o @atom:c43o,pc43o,bc4,ac4,dc4,ic4 } + replace{ @atom:c43 @atom:c43,pc43,bc4,ac4,dc4,ic4 } + replace{ @atom:c44 @atom:c44,pc44,bc4,ac4,dc4,ic4 } + replace{ @atom:c4o @atom:c4o,pc4o,bc4,ac4,dc4,ic4 } + replace{ @atom:c4z @atom:c4z,pc4z,bc4,ac4,dc4,ic4 } + replace{ @atom:h1 @atom:h1,ph1,bh1,ah1,dh1,ih1 } + replace{ @atom:h1h @atom:h1h,ph1h,bh1h,ah1,dh1,ih1 } + replace{ @atom:h1o @atom:h1o,ph1o,bh1,ah1,dh1,ih1 } + replace{ @atom:he @atom:he,phe,bhe,ahe,dhe,ihe } + replace{ @atom:kr @atom:kr,pkr,bkr,akr,dkr,ikr } + replace{ @atom:n1n @atom:n1n,pn1n,bn1n,an1n,dn1n,in1n } + replace{ @atom:n1o @atom:n1o,pn1o,bn1o,an1o,dn1o,in1o } + replace{ @atom:n1z @atom:n1z,pn1z,bn1t,an1t,dn1t,in1t } + replace{ @atom:n2= @atom:n2=,pn2=,bn2=,an2=,dn2=,in2= } + replace{ @atom:n2o @atom:n2o,pn2o,bn2o,an2o,dn2o,in2o } + replace{ @atom:n2t @atom:n2t,pn2t,bn2t,an2t,dn2t,in2t } + replace{ @atom:n2z @atom:n2z,pn2z,bn2z,an2z,dn2z,in2z } + replace{ @atom:n3m @atom:n3m,pn3m,bn3m,an3m,dn3m,in3m } + replace{ @atom:n3o @atom:n3o,pn3o,bn3o,an3o,dn3o,in3o } + replace{ @atom:ne @atom:ne,pne,bne,ane,dne,ine } + replace{ @atom:o1= @atom:o1=,po1=,bo1=,ao1=,do1=,io1= } + replace{ @atom:o1=star @atom:o1=star,po1=star,bo1=,ao1=,do1=,io1= } + replace{ @atom:o12 @atom:o12,po12,bo1=,ao1=,do1=,io1= } + replace{ @atom:o1c @atom:o1c,po1c,bo1c,ao1c,do1c,io1c } + replace{ @atom:o1n @atom:o1n,po1n,bo1n,ao1n,do1n,io1n } + replace{ @atom:o1o @atom:o1o,po1o,bo1o,ao1o,do1o,io1o } + replace{ @atom:o2 @atom:o2,po2,bo2,ao2,do2,io2 } + replace{ @atom:o2e @atom:o2e,po2e,bo2e,ao2,do2,io2 } + replace{ @atom:o2h @atom:o2h,po2h,bo2h,ao2,do2,io2 } + replace{ @atom:o2n @atom:o2n,po2n,bo2n,ao2n,do2,io2 } + replace{ @atom:o2s @atom:o2s,po2s,bo2e,ao2,do2,io2 } + replace{ @atom:o2z @atom:o2z,po2z,bo2z,ao2z,do2z,io2z } + replace{ @atom:p4= @atom:p4=,pp4=,bp4=,ap4=,dp4=,ip4= } + replace{ @atom:s1= @atom:s1=,ps1=,bs1=,as1=,ds1=,is1= } + replace{ @atom:s2= @atom:s2=,ps2=,bs2=,as2=,ds2=,is2= } + replace{ @atom:si4 @atom:si4,psi4,bsi4,asi4,dsi4,isi4 } + replace{ @atom:si4c @atom:si4c,psi4c,bsi4,asi4,dsi4,isi4 } + replace{ @atom:xe @atom:xe,pxe,bxe,axe,dxe,ixe } + + + + + # --------------- Non-Bonded Interactions: --------------------- + # Syntax: + # pair_coeff AtomType1 AtomType2 pair_style_name parameters... + + write_once("In Settings") { + pair_coeff @atom:*,pc3a,b*,a*,d*,i* @atom:*,pc3a,b*,a*,d*,i* lj/class2/coul/long 0.0680 3.9150 # (ver=1.0, ref=1) + pair_coeff @atom:*,pc4,b*,a*,d*,i* @atom:*,pc4,b*,a*,d*,i* lj/class2/coul/long 0.0620 3.8540 # (ver=1.0, ref=1) + pair_coeff @atom:*,pc43,b*,a*,d*,i* @atom:*,pc43,b*,a*,d*,i* lj/class2/coul/long 0.0400 3.8540 # (ver=1.0, ref=1) + pair_coeff @atom:*,pc44,b*,a*,d*,i* @atom:*,pc44,b*,a*,d*,i* lj/class2/coul/long 0.0200 3.8540 # (ver=1.0, ref=1) + pair_coeff @atom:*,ph1,b*,a*,d*,i* @atom:*,ph1,b*,a*,d*,i* lj/class2/coul/long 0.0230 2.8780 # (ver=1.0, ref=1) + pair_coeff @atom:*,po2z,b*,a*,d*,i* @atom:*,po2z,b*,a*,d*,i* lj/class2/coul/long 0.0800 3.3000 # (ver=1.0, ref=2) + pair_coeff @atom:*,psi4,b*,a*,d*,i* @atom:*,psi4,b*,a*,d*,i* lj/class2/coul/long 0.1980 4.4050 # (ver=1.0, ref=2) + pair_coeff @atom:*,psi4c,b*,a*,d*,i* @atom:*,psi4c,b*,a*,d*,i* lj/class2/coul/long 0.1310 4.2900 # (ver=1.0, ref=2) + pair_coeff @atom:*,pc4o,b*,a*,d*,i* @atom:*,pc4o,b*,a*,d*,i* lj/class2/coul/long 0.0748 3.8700 # (ver=1.1, ref=8) + pair_coeff @atom:*,ph1o,b*,a*,d*,i* @atom:*,ph1o,b*,a*,d*,i* lj/class2/coul/long 0.0080 1.0870 # (ver=1.0, ref=3) + pair_coeff @atom:*,po2,b*,a*,d*,i* @atom:*,po2,b*,a*,d*,i* lj/class2/coul/long 0.0800 3.3000 # (ver=1.0, ref=3) + pair_coeff @atom:*,po2e,b*,a*,d*,i* @atom:*,po2e,b*,a*,d*,i* lj/class2/coul/long 0.1200 3.3000 # (ver=1.0, ref=3) + pair_coeff @atom:*,po2h,b*,a*,d*,i* @atom:*,po2h,b*,a*,d*,i* lj/class2/coul/long 0.0960 3.5800 # (ver=1.0, ref=3) + pair_coeff @atom:*,pn2=,b*,a*,d*,i* @atom:*,pn2=,b*,a*,d*,i* lj/class2/coul/long 0.0960 3.8300 # (ver=1.0, ref=4) + pair_coeff @atom:*,pp4=,b*,a*,d*,i* @atom:*,pp4=,b*,a*,d*,i* lj/class2/coul/long 0.0650 4.2950 # (ver=1.0, ref=4) + pair_coeff @atom:*,phe,b*,a*,d*,i* @atom:*,phe,b*,a*,d*,i* lj/class2/coul/long 0.0050 2.9000 # (ver=1.0, ref=5) + pair_coeff @atom:*,pne,b*,a*,d*,i* @atom:*,pne,b*,a*,d*,i* lj/class2/coul/long 0.0550 3.2000 # (ver=1.0, ref=5) + pair_coeff @atom:*,par,b*,a*,d*,i* @atom:*,par,b*,a*,d*,i* lj/class2/coul/long 0.2000 3.8800 # (ver=1.0, ref=5) + pair_coeff @atom:*,pkr,b*,a*,d*,i* @atom:*,pkr,b*,a*,d*,i* lj/class2/coul/long 0.2800 4.3000 # (ver=1.0, ref=5) + pair_coeff @atom:*,pxe,b*,a*,d*,i* @atom:*,pxe,b*,a*,d*,i* lj/class2/coul/long 0.3900 4.2600 # (ver=1.0, ref=5) + pair_coeff @atom:*,ph1h,b*,a*,d*,i* @atom:*,ph1h,b*,a*,d*,i* lj/class2/coul/long 0.0216 1.4210 # (ver=1.0, ref=5) + pair_coeff @atom:*,pn1n,b*,a*,d*,i* @atom:*,pn1n,b*,a*,d*,i* lj/class2/coul/long 0.0598 3.8008 # (ver=1.0, ref=5) + pair_coeff @atom:*,pc1o,b*,a*,d*,i* @atom:*,pc1o,b*,a*,d*,i* lj/class2/coul/long 0.0530 4.0120 # (ver=1.0, ref=5) + pair_coeff @atom:*,po1o,b*,a*,d*,i* @atom:*,po1o,b*,a*,d*,i* lj/class2/coul/long 0.0780 3.4758 # (ver=1.0, ref=5) + pair_coeff @atom:*,po1c,b*,a*,d*,i* @atom:*,po1c,b*,a*,d*,i* lj/class2/coul/long 0.0850 3.6020 # (ver=1.0, ref=5) + pair_coeff @atom:*,pn1o,b*,a*,d*,i* @atom:*,pn1o,b*,a*,d*,i* lj/class2/coul/long 0.1280 3.4600 # (ver=1.0, ref=5) + pair_coeff @atom:*,po1n,b*,a*,d*,i* @atom:*,po1n,b*,a*,d*,i* lj/class2/coul/long 0.1560 3.3000 # (ver=1.0, ref=5) + pair_coeff @atom:*,pc2=,b*,a*,d*,i* @atom:*,pc2=,b*,a*,d*,i* lj/class2/coul/long 0.0680 3.9150 # (ver=1.0, ref=5) + pair_coeff @atom:*,ps2=,b*,a*,d*,i* @atom:*,ps2=,b*,a*,d*,i* lj/class2/coul/long 0.1250 4.0470 # (ver=1.0, ref=5) + pair_coeff @atom:*,pn2o,b*,a*,d*,i* @atom:*,pn2o,b*,a*,d*,i* lj/class2/coul/long 0.3330 3.5290 # (ver=1.0, ref=5) + pair_coeff @atom:*,po1=,b*,a*,d*,i* @atom:*,po1=,b*,a*,d*,i* lj/class2/coul/long 0.1920 3.4300 # (ver=1.0, ref=5) + pair_coeff @atom:*,po1=star,b*,a*,d*,i* @atom:*,po1=star,b*,a*,d*,i* lj/class2/coul/long 0.0670 3.3600 # (ver=1.0, ref=5) + pair_coeff @atom:*,ps1=,b*,a*,d*,i* @atom:*,ps1=,b*,a*,d*,i* lj/class2/coul/long 0.3130 4.0070 # (ver=1.0, ref=5) + pair_coeff @atom:*,pn3o,b*,a*,d*,i* @atom:*,pn3o,b*,a*,d*,i* lj/class2/coul/long 0.0480 3.7600 # (ver=1.0, ref=6) + pair_coeff @atom:*,po12,b*,a*,d*,i* @atom:*,po12,b*,a*,d*,i* lj/class2/coul/long 0.0480 3.4000 # (ver=1.0, ref=6) + pair_coeff @atom:*,po2n,b*,a*,d*,i* @atom:*,po2n,b*,a*,d*,i* lj/class2/coul/long 0.2000 3.6500 # (ver=1.0, ref=6) + pair_coeff @atom:*,pc3prime,b*,a*,d*,i* @atom:*,pc3prime,b*,a*,d*,i* lj/class2/coul/long 0.0640 3.9000 # (ver=1.0, ref=7) + pair_coeff @atom:*,pn3m,b*,a*,d*,i* @atom:*,pn3m,b*,a*,d*,i* lj/class2/coul/long 0.1500 3.7200 # (ver=1.0, ref=7) + pair_coeff @atom:*,po2s,b*,a*,d*,i* @atom:*,po2s,b*,a*,d*,i* lj/class2/coul/long 0.0960 3.3000 # (ver=1.0, ref=7) + pair_coeff @atom:*,pc41o,b*,a*,d*,i* @atom:*,pc41o,b*,a*,d*,i* lj/class2/coul/long 0.1080 3.8700 # (ver=1.1, ref=8) + pair_coeff @atom:*,pc43o,b*,a*,d*,i* @atom:*,pc43o,b*,a*,d*,i* lj/class2/coul/long 0.0498 3.6700 # (ver=1.1, ref=8) + pair_coeff @atom:*,pc4z,b*,a*,d*,i* @atom:*,pc4z,b*,a*,d*,i* lj/class2/coul/long 0.0800 3.6500 # (ver=1.0, ref=9) + pair_coeff @atom:*,pn1z,b*,a*,d*,i* @atom:*,pn1z,b*,a*,d*,i* lj/class2/coul/long 0.0850 3.5200 # (ver=1.0, ref=9) + pair_coeff @atom:*,pn2t,b*,a*,d*,i* @atom:*,pn2t,b*,a*,d*,i* lj/class2/coul/long 0.0500 3.3000 # (ver=1.0, ref=9) + pair_coeff @atom:*,pn2z,b*,a*,d*,i* @atom:*,pn2z,b*,a*,d*,i* lj/class2/coul/long 0.1200 3.4000 # (ver=1.0, ref=9) + } #(end of pair_coeffs) + + + + # ---------- Charge By Bond (a.k.a. "bond equivalences") ---------- + + + + write_once("Data Charge By Bond") { + @atom:*,p*,bh1,a*,d*,i* @atom:*,p*,bsi4,a*,d*,i* -0.1260 0.1260 # (ver=1.0, ref=10) + @atom:*,p*,bc4,a*,d*,i* @atom:*,p*,bsi4,a*,d*,i* -0.1350 0.1350 # (ver=1.0, ref=10) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bsi4,a*,d*,i* -0.1170 0.1170 # (ver=1.0, ref=10) + @atom:*,p*,bn2t,a*,d*,i* @atom:*,p*,bn2z,a*,d*,i* 0.2470 -0.2470 # (ver=1.0, ref=9) + @atom:*,p*,bn1t,a*,d*,i* @atom:*,p*,bn2t,a*,d*,i* -0.3860 0.3860 # (ver=1.0, ref=9) + @atom:*,p*,bh1,a*,d*,i* @atom:*,p*,bn2z,a*,d*,i* 0.3350 -0.3350 # (ver=1.0, ref=9) + @atom:*,p*,bc4,a*,d*,i* @atom:*,p*,bn2z,a*,d*,i* 0.3110 -0.3110 # (ver=1.0, ref=9) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bn3m,a*,d*,i* 0.0950 -0.0950 # (ver=1.0, ref=7) + @atom:*,p*,bc3prime,a*,d*,i* @atom:*,p*,bn3m,a*,d*,i* 0.0000 0.0000 # (ver=1.0, ref=7) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bc3prime,a*,d*,i* -0.0350 0.0350 # (ver=1.0, ref=7) + @atom:*,p*,bc3prime,a*,d*,i* @atom:*,p*,bo1=,a*,d*,i* 0.4500 -0.4500 # (ver=1.0, ref=7) + @atom:*,p*,bc3prime,a*,d*,i* @atom:*,p*,bc4,a*,d*,i* 0.0000 0.0000 # (ver=1.0, ref=7) + @atom:*,p*,bc3prime,a*,d*,i* @atom:*,p*,bo2e,a*,d*,i* 0.1120 -0.1120 # (ver=1.0, ref=7) + @atom:*,p*,bn3o,a*,d*,i* @atom:*,p*,bo2n,a*,d*,i* 0.0010 -0.0010 # (ver=1.0, ref=6) + @atom:*,p*,bn3o,a*,d*,i* @atom:*,p*,bo1=,a*,d*,i* 0.4280 -0.4280 # (ver=1.0, ref=6) + @atom:*,p*,bh1,a*,d*,i* @atom:*,p*,bn3o,a*,d*,i* 0.1880 -0.1880 # (ver=1.0, ref=6) + @atom:*,p*,bc4,a*,d*,i* @atom:*,p*,bo2n,a*,d*,i* 0.3170 -0.3170 # (ver=1.0, ref=6) + @atom:*,p*,bc4,a*,d*,i* @atom:*,p*,bn3o,a*,d*,i* 0.2100 -0.2100 # (ver=1.0, ref=6) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bn3o,a*,d*,i* 0.2390 -0.2390 # (ver=1.0, ref=6) + @atom:*,p*,bo1o,a*,d*,i* @atom:*,p*,bo1o,a*,d*,i* 0.0000 0.0000 # (ver=1.0, ref=5) + @atom:*,p*,bo1=,a*,d*,i* @atom:*,p*,bs2=,a*,d*,i* -0.2351 0.2351 # (ver=1.0, ref=5) + @atom:*,p*,bn1o,a*,d*,i* @atom:*,p*,bo1n,a*,d*,i* 0.0288 -0.0288 # (ver=1.0, ref=5) + @atom:*,p*,bn1n,a*,d*,i* @atom:*,p*,bn1n,a*,d*,i* 0.0000 0.0000 # (ver=1.0, ref=5) + @atom:*,p*,bh1h,a*,d*,i* @atom:*,p*,bh1h,a*,d*,i* 0.0000 0.0000 # (ver=1.0, ref=5) + @atom:*,p*,bn2o,a*,d*,i* @atom:*,p*,bo1=,a*,d*,i* 0.0730 -0.0730 # (ver=1.0, ref=5) + @atom:*,p*,bc2=,a*,d*,i* @atom:*,p*,bs1=,a*,d*,i* 0.0258 -0.0258 # (ver=1.0, ref=5) + @atom:*,p*,bc2=,a*,d*,i* @atom:*,p*,bo1=,a*,d*,i* 0.4000 -0.4000 # (ver=1.0, ref=5) + @atom:*,p*,bc1o,a*,d*,i* @atom:*,p*,bo1c,a*,d*,i* -0.0203 0.0203 # (ver=1.0, ref=5) + @atom:*,p*,bo2,a*,d*,i* @atom:*,p*,bp4=,a*,d*,i* -0.1400 0.1400 # (ver=1.0, ref=4) + @atom:*,p*,bn3,a*,d*,i* @atom:*,p*,bp4=,a*,d*,i* -0.1200 0.1200 # (ver=1.0, ref=4) + @atom:*,p*,bn2=,a*,d*,i* @atom:*,p*,bp4=,a*,d*,i* -0.3500 0.3500 # (ver=1.0, ref=4) + @atom:*,p*,bn2=,a*,d*,i* @atom:*,p*,bo2,a*,d*,i* -0.0430 0.0430 # (ver=1.0, ref=4) + @atom:*,p*,bn2=,a*,d*,i* @atom:*,p*,bn3,a*,d*,i* 0.0250 -0.0250 # (ver=1.0, ref=4) + @atom:*,p*,bn2=,a*,d*,i* @atom:*,p*,bn2=,a*,d*,i* 0.0000 0.0000 # (ver=1.0, ref=4) + @atom:*,p*,bh1,a*,d*,i* @atom:*,p*,bp4=,a*,d*,i* -0.0500 0.0500 # (ver=1.0, ref=4) + @atom:*,p*,bh1,a*,d*,i* @atom:*,p*,bn2=,a*,d*,i* 0.3280 -0.3280 # (ver=1.0, ref=4) + @atom:*,p*,bf1p,a*,d*,i* @atom:*,p*,bp4=,a*,d*,i* -0.1800 0.1800 # (ver=1.0, ref=4) + @atom:*,p*,bcl1p,a*,d*,i* @atom:*,p*,bp4=,a*,d*,i* -0.1200 0.1200 # (ver=1.0, ref=4) + @atom:*,p*,bc4,a*,d*,i* @atom:*,p*,bp4=,a*,d*,i* -0.0500 0.0500 # (ver=1.0, ref=4) + @atom:*,p*,bc4,a*,d*,i* @atom:*,p*,bn2=,a*,d*,i* 0.3450 -0.3450 # (ver=1.0, ref=4) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bp4=,a*,d*,i* -0.0600 0.0600 # (ver=1.0, ref=4) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bn2=,a*,d*,i* 0.1990 -0.1990 # (ver=1.0, ref=4) + @atom:*,p*,bh1,a*,d*,i* @atom:*,p*,bo2,a*,d*,i* 0.4200 -0.4200 # (ver=1.0, ref=3) + @atom:*,p*,bc4,a*,d*,i* @atom:*,p*,bo2h,a*,d*,i* 0.1600 -0.1600 # (ver=1.0, ref=3) + @atom:*,p*,bc4,a*,d*,i* @atom:*,p*,bo2e,a*,d*,i* 0.1600 -0.1600 # (ver=1.0, ref=3) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bo2h,a*,d*,i* 0.0420 -0.0420 # (ver=1.0, ref=3) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bo2e,a*,d*,i* 0.0420 -0.0420 # (ver=1.0, ref=3) + @atom:*,p*,bo2z,a*,d*,i* @atom:*,p*,bsi4,a*,d*,i* -0.2225 0.2225 # (ver=1.0, ref=2) + @atom:*,p*,bc4,a*,d*,i* @atom:*,p*,bh1,a*,d*,i* -0.0530 0.0530 # (ver=1.0, ref=1) + @atom:*,p*,bc4,a*,d*,i* @atom:*,p*,bc4,a*,d*,i* 0.0000 0.0000 # (ver=1.0, ref=1) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bh1,a*,d*,i* -0.1268 0.1268 # (ver=1.0, ref=1) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bc4,a*,d*,i* 0.0000 0.0000 # (ver=1.0, ref=1) + @atom:*,p*,bc3a,a*,d*,i* @atom:*,p*,bc3a,a*,d*,i* 0.0000 0.0000 # (ver=1.0, ref=1) + @atom:*,p*,bh1,a*,d*,i* @atom:*,p*,bo2h,a*,d*,i* 0.4100 -0.4100 # (ver=1.1, ref=8) + } #(end of Charge by Bond (bond equivalences)) + + + + + + # --------------- Bond Interactions: --------------------- + + + # -- Rules for generating (2-body) "bond" interactions: -- + # BondType AtomType1 AtomType2 + + write_once("Data Bonds By Type") { + @bond:c4,n3m @atom:*,bc4,a*,d*,i* @atom:*,bn3m,a*,d*,i* + @bond:si4,si4 @atom:*,bsi4,a*,d*,i* @atom:*,bsi4,a*,d*,i* + @bond:h1,si4 @atom:*,bh1,a*,d*,i* @atom:*,bsi4,a*,d*,i* + @bond:c4,si4 @atom:*,bc4,a*,d*,i* @atom:*,bsi4,a*,d*,i* + @bond:c3a,si4 @atom:*,bc3a,a*,d*,i* @atom:*,bsi4,a*,d*,i* + @bond:h1,n2z @atom:*,bh1,a*,d*,i* @atom:*,bn2z,a*,d*,i* + @bond:c4,n2z @atom:*,bc4,a*,d*,i* @atom:*,bn2z,a*,d*,i* + @bond:n1t,n2t @atom:*,bn1t,a*,d*,i* @atom:*,bn2t,a*,d*,i* + @bond:n2t,n2z @atom:*,bn2t,a*,d*,i* @atom:*,bn2z,a*,d*,i* + @bond:n1t,n1t @atom:*,bn1t,a*,d*,i* @atom:*,bn1t,a*,d*,i* + @bond:c3a,n3m @atom:*,bc3a,a*,d*,i* @atom:*,bn3m,a*,d*,i* + @bond:c3prime,n3m @atom:*,bc3prime,a*,d*,i* @atom:*,bn3m,a*,d*,i* + @bond:c3a,c3prime @atom:*,bc3a,a*,d*,i* @atom:*,bc3prime,a*,d*,i* + @bond:c3prime,o1= @atom:*,bc3prime,a*,d*,i* @atom:*,bo1=,a*,d*,i* + @bond:c3prime,c4 @atom:*,bc3prime,a*,d*,i* @atom:*,bc4,a*,d*,i* + @bond:c3prime,o2e @atom:*,bc3prime,a*,d*,i* @atom:*,bo2e,a*,d*,i* + @bond:n3o,o2n @atom:*,bn3o,a*,d*,i* @atom:*,bo2n,a*,d*,i* + @bond:n3o,o1= @atom:*,bn3o,a*,d*,i* @atom:*,bo1=,a*,d*,i* + @bond:h1,n3o @atom:*,bh1,a*,d*,i* @atom:*,bn3o,a*,d*,i* + @bond:c4,o2n @atom:*,bc4,a*,d*,i* @atom:*,bo2n,a*,d*,i* + @bond:c4,n3o @atom:*,bc4,a*,d*,i* @atom:*,bn3o,a*,d*,i* + @bond:c3a,n3o @atom:*,bc3a,a*,d*,i* @atom:*,bn3o,a*,d*,i* + @bond:c2=,s1= @atom:*,bc2=,a*,d*,i* @atom:*,bs1=,a*,d*,i* + @bond:n2o,o1= @atom:*,bn2o,a*,d*,i* @atom:*,bo1=,a*,d*,i* + @bond:c2=,o1= @atom:*,bc2=,a*,d*,i* @atom:*,bo1=,a*,d*,i* + @bond:o1=,s2= @atom:*,bo1=,a*,d*,i* @atom:*,bs2=,a*,d*,i* + @bond:n1o,o1n @atom:*,bn1o,a*,d*,i* @atom:*,bo1n,a*,d*,i* + @bond:c1o,o1c @atom:*,bc1o,a*,d*,i* @atom:*,bo1c,a*,d*,i* + @bond:o1o,o1o @atom:*,bo1o,a*,d*,i* @atom:*,bo1o,a*,d*,i* + @bond:n1n,n1n @atom:*,bn1n,a*,d*,i* @atom:*,bn1n,a*,d*,i* + @bond:h1h,h1h @atom:*,bh1h,a*,d*,i* @atom:*,bh1h,a*,d*,i* + @bond:o2,p4= @atom:*,bo2,a*,d*,i* @atom:*,bp4=,a*,d*,i* + @bond:n3,p4= @atom:*,bn3,a*,d*,i* @atom:*,bp4=,a*,d*,i* + @bond:n2=,p4= @atom:*,bn2=,a*,d*,i* @atom:*,bp4=,a*,d*,i* + @bond:h1,p4= @atom:*,bh1,a*,d*,i* @atom:*,bp4=,a*,d*,i* + @bond:h1,n2= @atom:*,bh1,a*,d*,i* @atom:*,bn2=,a*,d*,i* + @bond:f1p,p4= @atom:*,bf1p,a*,d*,i* @atom:*,bp4=,a*,d*,i* + @bond:cl1p,p4= @atom:*,bcl1p,a*,d*,i* @atom:*,bp4=,a*,d*,i* + @bond:c4,p4= @atom:*,bc4,a*,d*,i* @atom:*,bp4=,a*,d*,i* + @bond:c4,n2= @atom:*,bc4,a*,d*,i* @atom:*,bn2=,a*,d*,i* + @bond:c3a,p4= @atom:*,bc3a,a*,d*,i* @atom:*,bp4=,a*,d*,i* + @bond:c3a,n2= @atom:*,bc3a,a*,d*,i* @atom:*,bn2=,a*,d*,i* + @bond:h1,o2h @atom:*,bh1,a*,d*,i* @atom:*,bo2h,a*,d*,i* + @bond:c4,o2h @atom:*,bc4,a*,d*,i* @atom:*,bo2h,a*,d*,i* + @bond:c4,o2e @atom:*,bc4,a*,d*,i* @atom:*,bo2e,a*,d*,i* + @bond:c3a,o2h @atom:*,bc3a,a*,d*,i* @atom:*,bo2h,a*,d*,i* + @bond:c3a,o2e @atom:*,bc3a,a*,d*,i* @atom:*,bo2e,a*,d*,i* + @bond:c3a,o2 @atom:*,bc3a,a*,d*,i* @atom:*,bo2,a*,d*,i* + @bond:o2z,si4 @atom:*,bo2z,a*,d*,i* @atom:*,bsi4,a*,d*,i* + @bond:c4,h1 @atom:*,bc4,a*,d*,i* @atom:*,bh1,a*,d*,i* + @bond:c4,c4 @atom:*,bc4,a*,d*,i* @atom:*,bc4,a*,d*,i* + @bond:c3a,h1 @atom:*,bc3a,a*,d*,i* @atom:*,bh1,a*,d*,i* + @bond:c3a,c4 @atom:*,bc3a,a*,d*,i* @atom:*,bc4,a*,d*,i* + @bond:c3a,c3a @atom:*,bc3a,a*,d*,i* @atom:*,bc3a,a*,d*,i* + } # end of "Data Bonds By Type" section + + + + # ------------ Bond Parameters: ---------- + # For an explanation of these parameters, visit: + # http://lammps.sandia.gov/doc/bond_class2.html + + # Syntax: + # bond_coeff BondTypeName BondStyle parameters... + + + write_once("In Settings") { + bond_coeff @bond:c4,n3m class2 1.4000 350.0000 0.0000 0.0000 # (ver=1.0, ref=10) + bond_coeff @bond:si4,si4 class2 2.3384 114.2164 -140.4212 80.7084 # (ver=1.0, ref=10) + bond_coeff @bond:h1,si4 class2 1.4783 202.7798 -305.3603 280.2685 # (ver=1.0, ref=10) + bond_coeff @bond:c4,si4 class2 1.8995 189.6536 -279.4210 307.5135 # (ver=1.0, ref=10) + bond_coeff @bond:c3a,si4 class2 1.8634 233.2433 -276.8692 161.6659 # (ver=1.0, ref=10) + bond_coeff @bond:h1,n2z class2 1.0221 440.1623 -960.3246 1120.3787 # (ver=1.0, ref=9) + bond_coeff @bond:c4,n2z class2 1.4814 324.4578 -648.9156 757.0681 # (ver=1.0, ref=9) + bond_coeff @bond:n1t,n2t class2 1.1354 1198.7450 -2675.4900 3121.4049 # (ver=1.0, ref=9) + bond_coeff @bond:n2t,n2z class2 1.2343 720.3345 -1542.6689 1799.7804 # (ver=1.0, ref=9) + bond_coeff @bond:n1t,n1t class2 1.1354 1337.7450 -2675.4900 3121.4049 # (ver=1.0, ref=9) + bond_coeff @bond:c3a,n3m class2 1.3950 344.0452 -652.1208 1022.2242 # (ver=1.0, ref=7) + bond_coeff @bond:c3prime,n3m class2 1.3850 359.1591 -558.4730 1146.3810 # (ver=1.0, ref=7) + bond_coeff @bond:c3a,c3prime class2 1.4890 339.3574 -655.7236 670.2362 # (ver=1.0, ref=7) + bond_coeff @bond:c3prime,o1= class2 1.2160 823.7948 -1878.7939 2303.5310 # (ver=1.0, ref=7) + bond_coeff @bond:c3prime,c4 class2 1.5140 312.3719 -465.8290 473.8300 # (ver=1.0, ref=7) + bond_coeff @bond:c3prime,o2e class2 1.3750 368.7309 -832.4784 1274.0231 # (ver=1.0, ref=7) + bond_coeff @bond:n3o,o2n class2 1.4020 300.0000 -1000.0000 2000.0000 # (ver=1.0, ref=6) + bond_coeff @bond:n3o,o1= class2 1.2100 765.0664 -2070.2830 2793.3218 # (ver=1.0, ref=6) + bond_coeff @bond:h1,n3o class2 1.0400 439.9346 -943.7307 1180.9318 # (ver=1.0, ref=6) + bond_coeff @bond:c4,o2n class2 1.4350 400.3954 -835.1951 1313.0142 # (ver=1.0, ref=6) + bond_coeff @bond:c4,n3o class2 1.4740 301.6051 -535.7028 555.0420 # (ver=1.0, ref=6) + bond_coeff @bond:c3a,n3o class2 1.4300 313.8329 -568.6087 600.9597 # (ver=1.0, ref=6) + bond_coeff @bond:c2=,s1= class2 1.5540 559.0065 -1348.6633 1248.8604 # (ver=1.0, ref=5) + bond_coeff @bond:n2o,o1= class2 1.1930 620.0000 -1808.6018 3077.5918 # (ver=1.0, ref=5) + bond_coeff @bond:c2=,o1= class2 1.1600 1161.3421 -2564.5706 3932.8735 # (ver=1.0, ref=5) + bond_coeff @bond:o1=,s2= class2 1.4308 730.8387 -1531.7910 1859.7753 # (ver=1.0, ref=5) + bond_coeff @bond:n1o,o1n class2 1.1506 1147.8362 -3167.7349 5099.5811 # (ver=1.0, ref=5) + bond_coeff @bond:c1o,o1c class2 1.1283 1368.7676 -3157.0007 4247.5298 # (ver=1.0, ref=5) + bond_coeff @bond:o1o,o1o class2 1.2074 846.7150 -2247.1760 3478.9900 # (ver=1.0, ref=5) + bond_coeff @bond:n1n,n1n class2 1.0977 1651.3730 -4069.3178 5984.9629 # (ver=1.0, ref=5) + bond_coeff @bond:h1h,h1h class2 0.7412 414.2185 -805.6549 914.1296 # (ver=1.0, ref=5) + bond_coeff @bond:o2,p4= class2 1.6000 333.0980 -726.6230 924.6200 # (ver=1.0, ref=4) + bond_coeff @bond:n3,p4= class2 1.6780 329.0000 -713.7950 902.9190 # (ver=1.0, ref=4) + bond_coeff @bond:n2=,p4= class2 1.5980 393.0060 -751.4050 767.4310 # (ver=1.0, ref=4) + bond_coeff @bond:h1,p4= class2 1.4300 285.2040 -575.6850 677.8460 # (ver=1.0, ref=4) + bond_coeff @bond:h1,n2= class2 1.0310 540.1120 -1500.2952 2431.0080 # (ver=1.0, ref=4) + bond_coeff @bond:f1p,p4= class2 1.5650 340.0000 -882.3840 1197.9190 # (ver=1.0, ref=4) + bond_coeff @bond:cl1p,p4= class2 2.0000 158.7770 -239.1290 210.0840 # (ver=1.0, ref=4) + bond_coeff @bond:c4,p4= class2 1.8000 218.1400 -329.5110 290.3490 # (ver=1.0, ref=4) + bond_coeff @bond:c4,n2= class2 1.4740 337.0600 -147.3700 213.6330 # (ver=1.0, ref=4) + bond_coeff @bond:c3a,p4= class2 1.7890 197.7020 -332.2510 325.7160 # (ver=1.0, ref=4) + bond_coeff @bond:c3a,n2= class2 1.4000 350.0000 0.0000 0.0000 # (ver=1.0, ref=4) + bond_coeff @bond:h1,o2h class2 0.9494 540.3633 -1311.8663 2132.4446 # (ver=1.0, ref=3) + bond_coeff @bond:c4,o2h class2 1.4200 400.3954 -835.1951 1313.0142 # (ver=1.0, ref=3) + bond_coeff @bond:c4,o2e class2 1.4200 400.3954 -835.1951 1313.0142 # (ver=1.0, ref=3) + bond_coeff @bond:c3a,o2h class2 1.3768 428.8798 -738.2351 1114.9655 # (ver=1.0, ref=3) + bond_coeff @bond:c3a,o2e class2 1.3768 428.8798 -738.2351 1114.9655 # (ver=1.0, ref=3) + bond_coeff @bond:c3a,o2 class2 1.3768 428.8798 -738.2350 1114.9655 # (ver=1.0, ref=3) + bond_coeff @bond:o2z,si4 class2 1.6400 350.1232 -517.3424 673.7067 # (ver=1.0, ref=2) + bond_coeff @bond:c4,h1 class2 1.1010 345.0000 -691.8900 844.6000 # (ver=1.0, ref=1) + bond_coeff @bond:c4,c4 class2 1.5300 299.6700 -501.7700 679.8100 # (ver=1.0, ref=1) + bond_coeff @bond:c3a,h1 class2 1.0982 372.8251 -803.4526 894.3173 # (ver=1.0, ref=1) + bond_coeff @bond:c3a,c4 class2 1.5010 321.9021 -521.8208 572.1628 # (ver=1.0, ref=1) + bond_coeff @bond:c3a,c3a class2 1.4170 470.8361 -627.6179 1327.6345 # (ver=1.0, ref=1) + } # end of bond_coeff commands + + + # --------------- Angle Interactions: --------------------- + + + # -- Rules for generating (3-body) "angle" interactions: -- + # AngleType AtomType1 AtomType2 AtomType3 [BondType1 BondType2] + + write_once("Data Angles By Type") { + @angle:c3a,o2,c3a,c3a,o2h,c3a @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* + @angle:c3a,o2,c3a,c3a,o2e,c3a @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* + @angle:c3a,o2,c3a,c3a,o2,c3a @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* + @angle:c3a,c4,o2,c3a,c4,o2h @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2h,ao2,d*,i* + @angle:c3a,c4,o2,c3a,c4,o2e @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2e,ao2,d*,i* + @angle:c3a,o2,c3prime,c3a,o2e,c3prime @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @angle:o2,c4,o2,o2h,c4,o2h @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2h,ao2,d*,i* + @angle:o2,c4,o2,o2h,c4,o2e @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2e,ao2,d*,i* + @angle:o2,c4,o2,o2e,c4,o2h @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2h,ao2,d*,i* + @angle:o2,c4,o2,o2e,c4,o2e @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2e,ao2,d*,i* + @angle:h1,c3a,o2,h1,c3a,o2h @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2h,ao2,d*,i* + @angle:h1,c3a,o2,h1,c3a,o2e @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2e,ao2,d*,i* + @angle:h1,c3a,o2,h1,c3a,o2 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2,ao2,d*,i* + @angle:si4,si4,si4,si4,si4,si4 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bsi4,asi4,d*,i* + @angle:h1,si4,si4,h1,si4,si4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bsi4,asi4,d*,i* + @angle:c4,si4,si4,c4,si4,si4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bsi4,asi4,d*,i* + @angle:h1,si4,h1,h1,si4,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c4,si4,h1,c4,si4,h1 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c4,si4,c4,c4,si4,c4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc4,ac4,d*,i* + @angle:c3a,si4,h1,c3a,si4,h1 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:h1,c4,si4,h1,c4,si4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bsi4,asi4,d*,i* + @angle:c4,c4,si4,c4,c4,si4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bsi4,asi4,d*,i* + @angle:c3a,c3a,si4,c3a,c3a,si4 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bsi4,asi4,d*,i* + @angle:c4,c4,n2z,c4,c4,n2z @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bn2z,an2z,d*,i* + @angle:h1,c4,n2z,h1,c4,n2z @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bn2z,an2z,d*,i* + @angle:c4,n2z,n2t,c4,n2z,n2t @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bn2t,an2t,d*,i* + @angle:h1,n2z,n2t,h1,n2z,n2t @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bn2t,an2t,d*,i* + @angle:n1t,n2t,n2z,n1t,n2t,n2z @atom:*,p*,bn1t,an1t,d*,i* @atom:*,p*,bn2t,an2t,d*,i* @atom:*,p*,bn2z,an2z,d*,i* + @angle:n3m,c3prime,o1=,n3m,c3prime,o1= @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bo1=,ao1=,d*,i* + @angle:c4,c3prime,o2,c4,c3prime,o2e @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bo2e,ao2,d*,i* + @angle:c4,c3prime,o1=,c4,c3prime,o1= @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bo1=,ao1=,d*,i* + @angle:o1=,c3prime,o2,o1=,c3prime,o2e @atom:*,p*,bo1=,ao1=,d*,i* @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bo2e,ao2,d*,i* + @angle:c3a,n3m,c3prime,c3a,n3m,c3prime @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @angle:c3a,c3a,n3m,c3a,c3a,n3m @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bn3m,an3m,d*,i* + @angle:c3a,c3prime,o1=,c3a,c3prime,o1= @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bo1=,ao1=,d*,i* + @angle:c3a,c3prime,n3m,c3a,c3prime,n3m @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bn3m,an3m,d*,i* + @angle:c3a,c3a,c3prime,c3a,c3a,c3prime @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @angle:c3prime,n3m,c3prime,c3prime,n3m,c3prime @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @angle:c3prime,c4,h1,c3prime,c4,h1 @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c3prime,o2,c4,c3prime,o2e,c4 @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,d*,i* + @angle:o1=,n3o,o2n,o1=,n3o,o2n @atom:*,p*,bo1=,ao1=,d*,i* @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bo2n,ao2n,d*,i* + @angle:c4,c4,o2n,c4,c4,o2n @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2n,ao2n,d*,i* + @angle:c4,o2n,n3o,c4,o2n,n3o @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2n,ao2n,d*,i* @atom:*,p*,bn3o,an3o,d*,i* + @angle:o1=,n3o,o1=,o1=,n3o,o1= @atom:*,p*,bo1=,ao1=,d*,i* @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bo1=,ao1=,d*,i* + @angle:h1,n3o,o1=,h1,n3o,o1= @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bo1=,ao1=,d*,i* + @angle:c4,n3o,o1=,c4,n3o,o1= @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bo1=,ao1=,d*,i* + @angle:c3a,n3o,o1=,c3a,n3o,o1= @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bo1=,ao1=,d*,i* + @angle:h1,c4,o2n,h1,c4,o2n @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2n,ao2n,d*,i* + @angle:h1,c4,n3o,h1,c4,n3o @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bn3o,an3o,d*,i* + @angle:c3a,c3a,n3o,c3a,c3a,n3o @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bn3o,an3o,d*,i* + @angle:o1=,s2=,o1=,o1=,s2=,o1= @atom:*,p*,bo1=,ao1=,d*,i* @atom:*,p*,bs2=,as2=,d*,i* @atom:*,p*,bo1=,ao1=,d*,i* + @angle:o1=,n2o,o1=,o1=,n2o,o1= @atom:*,p*,bo1=,ao1=,d*,i* @atom:*,p*,bn2o,an2o,d*,i* @atom:*,p*,bo1=,ao1=,d*,i* + @angle:s1=,c2=,s1=,s1=,c2=,s1= @atom:*,p*,bs1=,as1=,d*,i* @atom:*,p*,bc2=,ac2=,d*,i* @atom:*,p*,bs1=,as1=,d*,i* + @angle:o1=,c2=,o1=,o1=,c2=,o1= @atom:*,p*,bo1=,ao1=,d*,i* @atom:*,p*,bc2=,ac2=,d*,i* @atom:*,p*,bo1=,ao1=,d*,i* + @angle:o2,p4=,o2,o2,p4=,o2 @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bo2,ao2,d*,i* + @angle:n2=,p4=,o2,n2=,p4=,o2 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bo2,ao2,d*,i* + @angle:n2=,p4=,n2=,n2=,p4=,n2= @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bn2=,an2=,d*,i* + @angle:h1,p4=,o2,h1,p4=,o2 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bo2,ao2,d*,i* + @angle:h1,p4=,n2=,h1,p4=,n2= @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bn2=,an2=,d*,i* + @angle:h1,p4=,h1,h1,p4=,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c4,p4=,n2=,c4,p4=,n2= @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bn2=,an2=,d*,i* + @angle:c4,p4=,h1,c4,p4=,h1 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c4,p4=,c4,c4,p4=,c4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc4,ac4,d*,i* + @angle:c3a,p4=,o2,c3a,p4=,o2 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bo2,ao2,d*,i* + @angle:c3a,p4=,n2=,c3a,p4=,n2= @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bn2=,an2=,d*,i* + @angle:c3a,p4=,h1,c3a,p4=,h1 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c3a,p4=,c3a,c3a,p4=,c3a @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* + @angle:p4=,n2=,p4=,p4=,n2=,p4= @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* + @angle:h1,n2=,p4=,h1,n2=,p4= @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* + @angle:h1,n2=,h1,h1,n2=,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c4,n2=,h1,c4,n2=,h1 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:h1,c4,p4=,h1,c4,p4= @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* + @angle:h1,c4,n2=,h1,c4,n2= @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bn2=,an2=,d*,i* + @angle:c4,c4,n2=,c4,c4,n2= @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bn2=,an2=,d*,i* + @angle:c3a,c3a,p4=,c3a,c3a,p4= @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bp4=,ap4=,d*,i* + @angle:c3a,c3a,n2=,c3a,c3a,n2= @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bn2=,an2=,d*,i* + @angle:c4,o2,h1,c4,o2h,h1 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c4,o2,c4,c4,o2h,c4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,d*,i* + @angle:c4,o2,c4,c4,o2e,c4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,d*,i* + @angle:c3a,o2,h1,c3a,o2h,h1 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c3a,o2,c4,c3a,o2h,c4 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,d*,i* + @angle:c3a,o2,c4,c3a,o2e,c4 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,d*,i* + @angle:h1,c4,o2,h1,c4,o2h @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2h,ao2,d*,i* + @angle:h1,c4,o2,h1,c4,o2e @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2e,ao2,d*,i* + @angle:c4,c4,o2,c4,c4,o2h @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2h,ao2,d*,i* + @angle:c4,c4,o2,c4,c4,o2e @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bo2e,ao2,d*,i* + @angle:c3a,c3a,o2,c3a,c3a,o2h @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2h,ao2,d*,i* + @angle:c3a,c3a,o2,c3a,c3a,o2e @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2e,ao2,d*,i* + @angle:c3a,c3a,o2,c3a,c3a,o2 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bo2,ao2,d*,i* + @angle:o2z,si4,o2z,o2z,si4,o2z @atom:*,p*,bo2z,ao2z,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bo2z,ao2z,d*,i* + @angle:h1,si4,o2z,h1,si4,o2z @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bo2z,ao2z,d*,i* + @angle:c4,si4,o2z,c4,si4,o2z @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bo2z,ao2z,d*,i* + @angle:c3a,si4,o2z,c3a,si4,o2z @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bo2z,ao2z,d*,i* + @angle:si4,o2z,si4,si4,o2z,si4 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bo2z,ao2z,d*,i* @atom:*,p*,bsi4,asi4,d*,i* + @angle:h1,c4,h1,h1,c4,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c4,c4,h1,c4,c4,h1 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c4,c4,c4,c4,c4,c4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,d*,i* + @angle:c3a,c4,h1,c3a,c4,h1 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c3a,c4,c4,c3a,c4,c4 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,d*,i* + @angle:c3a,c4,c3a,c3a,c4,c3a @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* + @angle:c3a,c3a,h1,c3a,c3a,h1 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bh1,ah1,d*,i* + @angle:c3a,c3a,c4,c3a,c3a,c4 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,d*,i* + @angle:c3a,c3a,c3a,c3a,c3a,c3a @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,d*,i* + @angle:n3,p4=,o2,X,X,X @atom:*,p*,b*,an3,d*,i* @atom:*,p*,b*,ap4=,d*,i* @atom:*,p*,b*,ao2,d*,i* + @angle:n3,p4=,n3,X,X,X @atom:*,p*,b*,an3,d*,i* @atom:*,p*,b*,ap4=,d*,i* @atom:*,p*,b*,an3,d*,i* + @angle:n2=,p4=,n3,X,X,X @atom:*,p*,b*,an2=,d*,i* @atom:*,p*,b*,ap4=,d*,i* @atom:*,p*,b*,an3,d*,i* + @angle:h1,p4=,n3,X,X,X @atom:*,p*,b*,ah1,d*,i* @atom:*,p*,b*,ap4=,d*,i* @atom:*,p*,b*,an3,d*,i* + @angle:c3a,p4=,n3,X,X,X @atom:*,p*,b*,ac3a,d*,i* @atom:*,p*,b*,ap4=,d*,i* @atom:*,p*,b*,an3,d*,i* + @angle:h1,o2,p4=,X,X,X @atom:*,p*,b*,ah1,d*,i* @atom:*,p*,b*,ao2,d*,i* @atom:*,p*,b*,ap4=,d*,i* + @angle:c4,o2,p4=,X,X,X @atom:*,p*,b*,ac4,d*,i* @atom:*,p*,b*,ao2,d*,i* @atom:*,p*,b*,ap4=,d*,i* + @angle:h1,n3,p4=,X,X,X @atom:*,p*,b*,ah1,d*,i* @atom:*,p*,b*,an3,d*,i* @atom:*,p*,b*,ap4=,d*,i* + @angle:c4,n3,p4=,X,X,X @atom:*,p*,b*,ac4,d*,i* @atom:*,p*,b*,an3,d*,i* @atom:*,p*,b*,ap4=,d*,i* + @angle:h1,o2z,si4,X,X,X @atom:*,p*,b*,ah1,d*,i* @atom:*,p*,b*,ao2z,d*,i* @atom:*,p*,b*,asi4,d*,i* + } # end of "Data Angles By Type" section + + + + # ------- Angle Force Field Parameters: ------- # For an explanation of these parameters, visit: + # http://lammps.sandia.gov/doc/angle_class2.html + + # Syntax: + # angle_coeff AngleTypeName AngleStyle parameters... + + + write_once("In Settings") { + angle_coeff @angle:c3a,o2,c3a,c3a,o2h,c3a class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3a,c3a,o2h,c3a class2 bb 0.0000 1.3768 1.3768 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3a,c3a,o2h,c3a class2 ba 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3a,c3a,o2e,c3a class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3a,c3a,o2e,c3a class2 bb 0.0000 1.3768 1.3768 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3a,c3a,o2e,c3a class2 ba 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3a,c3a,o2,c3a class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3a,c3a,o2,c3a class2 bb 0.0000 1.3768 1.3768 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3a,c3a,o2,c3a class2 ba 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c4,o2,c3a,c4,o2h class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c4,o2,c3a,c4,o2h class2 bb 0.0000 1.5010 1.4200 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c4,o2,c3a,c4,o2h class2 ba 0.0 0.0 1.5010 1.4200 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c4,o2,c3a,c4,o2e class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c4,o2,c3a,c4,o2e class2 bb 0.0000 1.5010 1.4200 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c4,o2,c3a,c4,o2e class2 ba 0.0 0.0 1.5010 1.4200 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3prime,c3a,o2e,c3prime class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3prime,c3a,o2e,c3prime class2 bb 69.5999 1.3768 1.3750 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,o2,c3prime,c3a,o2e,c3prime class2 ba 0.0 0.0 1.3768 1.3750 # (ver=1.0, ref=7) + angle_coeff @angle:o2,c4,o2,o2h,c4,o2h class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2h,c4,o2h class2 bb 8.2983 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2h,c4,o2h class2 ba 0.0 0.0 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2h,c4,o2e class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2h,c4,o2e class2 bb 8.2983 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2h,c4,o2e class2 ba 0.0 0.0 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2e,c4,o2h class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2e,c4,o2h class2 bb 8.2983 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2e,c4,o2h class2 ba 0.0 0.0 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2e,c4,o2e class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2e,c4,o2e class2 bb 8.2983 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:o2,c4,o2,o2e,c4,o2e class2 ba 0.0 0.0 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c3a,o2,h1,c3a,o2h class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c3a,o2,h1,c3a,o2h class2 bb 4.5800 1.0982 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c3a,o2,h1,c3a,o2h class2 ba 0.0 0.0 1.0982 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c3a,o2,h1,c3a,o2e class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c3a,o2,h1,c3a,o2e class2 bb 4.5800 1.0982 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c3a,o2,h1,c3a,o2e class2 ba 0.0 0.0 1.0982 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c3a,o2,h1,c3a,o2 class2 0.0 0.0 0.0 0.0 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c3a,o2,h1,c3a,o2 class2 bb 4.5800 1.0982 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c3a,o2,h1,c3a,o2 class2 ba 0.0 0.0 1.0982 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:si4,si4,si4,si4,si4,si4 class2 114.2676 24.9501 -19.5949 0.0000 # (ver=1.0, ref=10) + angle_coeff @angle:si4,si4,si4,si4,si4,si4 class2 bb 6.0704 2.3384 2.3384 # (ver=1.0, ref=10) + angle_coeff @angle:si4,si4,si4,si4,si4,si4 class2 ba 8.9899 8.9899 2.3384 2.3384 # (ver=1.0, ref=10) + angle_coeff @angle:h1,si4,si4,h1,si4,si4 class2 112.0893 22.5062 -11.5926 0.0000 # (ver=1.0, ref=10) + angle_coeff @angle:h1,si4,si4,h1,si4,si4 class2 bb 3.5172 1.4783 2.3384 # (ver=1.0, ref=10) + angle_coeff @angle:h1,si4,si4,h1,si4,si4 class2 ba 5.6630 2.0706 1.4783 2.3384 # (ver=1.0, ref=10) + angle_coeff @angle:c4,si4,si4,c4,si4,si4 class2 113.0000 19.4692 -34.3471 0.0000 # (ver=1.0, ref=10) + angle_coeff @angle:c4,si4,si4,c4,si4,si4 class2 bb 2.3030 1.8995 2.3384 # (ver=1.0, ref=10) + angle_coeff @angle:c4,si4,si4,c4,si4,si4 class2 ba 16.9455 11.4377 1.8995 2.3384 # (ver=1.0, ref=10) + angle_coeff @angle:h1,si4,h1,h1,si4,h1 class2 108.6051 32.5415 -8.3164 0.0000 # (ver=1.0, ref=10) + angle_coeff @angle:h1,si4,h1,h1,si4,h1 class2 bb 4.6408 1.4783 1.4783 # (ver=1.0, ref=10) + angle_coeff @angle:h1,si4,h1,h1,si4,h1 class2 ba 9.3467 9.3467 1.4783 1.4783 # (ver=1.0, ref=10) + angle_coeff @angle:c4,si4,h1,c4,si4,h1 class2 112.0977 36.4832 -12.8094 0.0000 # (ver=1.0, ref=10) + angle_coeff @angle:c4,si4,h1,c4,si4,h1 class2 bb 3.9340 1.8995 1.4783 # (ver=1.0, ref=10) + angle_coeff @angle:c4,si4,h1,c4,si4,h1 class2 ba 13.3961 7.4104 1.8995 1.4783 # (ver=1.0, ref=10) + angle_coeff @angle:c4,si4,c4,c4,si4,c4 class2 113.1855 36.2069 -20.3939 20.0172 # (ver=1.0, ref=10) + angle_coeff @angle:c4,si4,c4,c4,si4,c4 class2 bb 3.7419 1.8995 1.8995 # (ver=1.0, ref=10) + angle_coeff @angle:c4,si4,c4,c4,si4,c4 class2 ba 18.5805 18.5805 1.8995 1.8995 # (ver=1.0, ref=10) + angle_coeff @angle:c3a,si4,h1,c3a,si4,h1 class2 109.5932 41.9497 -42.3639 48.1442 # (ver=1.0, ref=10) + angle_coeff @angle:c3a,si4,h1,c3a,si4,h1 class2 bb 3.9264 1.8634 1.4783 # (ver=1.0, ref=10) + angle_coeff @angle:c3a,si4,h1,c3a,si4,h1 class2 ba 22.5947 8.7811 1.8634 1.4783 # (ver=1.0, ref=10) + angle_coeff @angle:h1,c4,si4,h1,c4,si4 class2 112.0355 28.7721 -13.9523 0.0000 # (ver=1.0, ref=10) + angle_coeff @angle:h1,c4,si4,h1,c4,si4 class2 bb 1.6561 1.1010 1.8995 # (ver=1.0, ref=10) + angle_coeff @angle:h1,c4,si4,h1,c4,si4 class2 ba 16.6908 18.2764 1.1010 1.8995 # (ver=1.0, ref=10) + angle_coeff @angle:c4,c4,si4,c4,c4,si4 class2 112.6700 39.5160 -7.4430 0.0000 # (ver=1.0, ref=10) + angle_coeff @angle:c4,c4,si4,c4,c4,si4 class2 bb 0.0 1.5300 1.8995 # (ver=1.0, ref=10) + angle_coeff @angle:c4,c4,si4,c4,c4,si4 class2 ba 0.0 0.0 1.5300 1.8995 # (ver=1.0, ref=10) + angle_coeff @angle:c3a,c3a,si4,c3a,c3a,si4 class2 120.0000 30.4689 -23.5439 0.0000 # (ver=1.0, ref=10) + angle_coeff @angle:c3a,c3a,si4,c3a,c3a,si4 class2 bb 21.3938 1.4170 1.8634 # (ver=1.0, ref=10) + angle_coeff @angle:c3a,c3a,si4,c3a,c3a,si4 class2 ba 14.5831 23.7679 1.4170 1.8634 # (ver=1.0, ref=10) + angle_coeff @angle:c4,c4,n2z,c4,c4,n2z class2 110.9900 77.9387 0.9499 0.0033 # (ver=1.0, ref=9) + angle_coeff @angle:c4,c4,n2z,c4,c4,n2z class2 bb 36.9309 1.5300 1.4814 # (ver=1.0, ref=9) + angle_coeff @angle:c4,c4,n2z,c4,c4,n2z class2 ba 34.8803 67.8888 1.5300 1.4814 # (ver=1.0, ref=9) + angle_coeff @angle:h1,c4,n2z,h1,c4,n2z class2 107.9744 52.7803 0.6615 0.0023 # (ver=1.0, ref=9) + angle_coeff @angle:h1,c4,n2z,h1,c4,n2z class2 bb 18.4621 1.1010 1.4814 # (ver=1.0, ref=9) + angle_coeff @angle:h1,c4,n2z,h1,c4,n2z class2 ba 3.3182 61.9652 1.1010 1.4814 # (ver=1.0, ref=9) + angle_coeff @angle:c4,n2z,n2t,c4,n2z,n2t class2 113.5017 82.6294 0.9845 0.0033 # (ver=1.0, ref=9) + angle_coeff @angle:c4,n2z,n2t,c4,n2z,n2t class2 bb 84.2075 1.4814 1.2343 # (ver=1.0, ref=9) + angle_coeff @angle:c4,n2z,n2t,c4,n2z,n2t class2 ba 88.2679 195.9722 1.4814 1.2343 # (ver=1.0, ref=9) + angle_coeff @angle:h1,n2z,n2t,h1,n2z,n2t class2 110.0345 55.7635 0.6618 0.0022 # (ver=1.0, ref=9) + angle_coeff @angle:h1,n2z,n2t,h1,n2z,n2t class2 bb 14.9026 1.0221 1.2343 # (ver=1.0, ref=9) + angle_coeff @angle:h1,n2z,n2t,h1,n2z,n2t class2 ba 37.4419 141.1218 1.0221 1.2343 # (ver=1.0, ref=9) + angle_coeff @angle:n1t,n2t,n2z,n1t,n2t,n2z class2 171.6211 47.7899 0.0000 0.0000 # (ver=1.0, ref=9) + angle_coeff @angle:n1t,n2t,n2z,n1t,n2t,n2z class2 bb 204.9909 1.1354 1.2343 # (ver=1.0, ref=9) + angle_coeff @angle:n1t,n2t,n2z,n1t,n2t,n2z class2 ba 1.2222 25.5611 1.1354 1.2343 # (ver=1.0, ref=9) + angle_coeff @angle:n3m,c3prime,o1=,n3m,c3prime,o1= class2 121.5420 92.5720 -34.4800 -11.1871 # (ver=1.0, ref=7) + angle_coeff @angle:n3m,c3prime,o1=,n3m,c3prime,o1= class2 bb 138.4954 1.3850 1.2160 # (ver=1.0, ref=7) + angle_coeff @angle:n3m,c3prime,o1=,n3m,c3prime,o1= class2 ba 62.7124 52.4045 1.3850 1.2160 # (ver=1.0, ref=7) + angle_coeff @angle:c4,c3prime,o2,c4,c3prime,o2e class2 100.3182 88.8631 -3.8323 -7.9802 # (ver=1.0, ref=7) + angle_coeff @angle:c4,c3prime,o2,c4,c3prime,o2e class2 bb 19.1069 1.5140 1.3750 # (ver=1.0, ref=7) + angle_coeff @angle:c4,c3prime,o2,c4,c3prime,o2e class2 ba 1.3435 4.6978 1.5140 1.3750 # (ver=1.0, ref=7) + angle_coeff @angle:c4,c3prime,o1=,c4,c3prime,o1= class2 119.3000 65.1016 -17.9766 0.0000 # (ver=1.0, ref=7) + angle_coeff @angle:c4,c3prime,o1=,c4,c3prime,o1= class2 bb 77.5201 1.5140 1.2160 # (ver=1.0, ref=7) + angle_coeff @angle:c4,c3prime,o1=,c4,c3prime,o1= class2 ba 31.8455 46.6613 1.5140 1.2160 # (ver=1.0, ref=7) + angle_coeff @angle:o1=,c3prime,o2,o1=,c3prime,o2e class2 118.9855 98.6813 -22.2485 10.3673 # (ver=1.0, ref=7) + angle_coeff @angle:o1=,c3prime,o2,o1=,c3prime,o2e class2 bb 210.1813 1.2160 1.3750 # (ver=1.0, ref=7) + angle_coeff @angle:o1=,c3prime,o2,o1=,c3prime,o2e class2 ba 79.4497 57.0987 1.2160 1.3750 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,n3m,c3prime,c3a,n3m,c3prime class2 120.0700 47.1131 -32.5592 13.1257 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,n3m,c3prime,c3a,n3m,c3prime class2 bb 0.0000 1.3950 1.3850 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,n3m,c3prime,c3a,n3m,c3prime class2 ba 0.0 0.0 1.3950 1.3850 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3a,n3m,c3a,c3a,n3m class2 120.7640 73.2738 -27.4033 13.3920 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3a,n3m,c3a,c3a,n3m class2 bb 37.8749 1.4170 1.3950 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3a,n3m,c3a,c3a,n3m class2 ba 35.8865 53.6977 1.4170 1.3950 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3prime,o1=,c3a,c3prime,o1= class2 125.5320 72.3167 -16.0650 2.0818 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3prime,o1=,c3a,c3prime,o1= class2 bb 116.9445 1.4890 1.2160 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3prime,o1=,c3a,c3prime,o1= class2 ba 72.8758 76.1093 1.4890 1.2160 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3prime,n3m,c3a,c3prime,n3m class2 108.4400 84.8377 -19.9640 2.7405 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3prime,n3m,c3a,c3prime,n3m class2 bb 0.0000 1.4890 1.3850 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3prime,n3m,c3a,c3prime,n3m class2 ba 0.0 0.0 1.4890 1.3850 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3a,c3prime,c3a,c3a,c3prime class2 116.0640 71.2598 -15.8273 2.0506 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3a,c3prime,c3a,c3a,c3prime class2 bb 37.8749 1.4170 1.4890 # (ver=1.0, ref=7) + angle_coeff @angle:c3a,c3a,c3prime,c3a,c3a,c3prime class2 ba 45.8865 23.6977 1.4170 1.4890 # (ver=1.0, ref=7) + angle_coeff @angle:c3prime,n3m,c3prime,c3prime,n3m,c3prime class2 121.9556 76.3105 -26.3166 -17.6944 # (ver=1.0, ref=7) + angle_coeff @angle:c3prime,n3m,c3prime,c3prime,n3m,c3prime class2 bb 25.9530 1.3850 1.3850 # (ver=1.0, ref=7) + angle_coeff @angle:c3prime,n3m,c3prime,c3prime,n3m,c3prime class2 ba 20.0533 20.0533 1.3850 1.3850 # (ver=1.0, ref=7) + angle_coeff @angle:c3prime,c4,h1,c3prime,c4,h1 class2 107.8594 38.0833 -17.5074 0.0000 # (ver=1.0, ref=7) + angle_coeff @angle:c3prime,c4,h1,c3prime,c4,h1 class2 bb 2.2522 1.5140 1.1010 # (ver=1.0, ref=7) + angle_coeff @angle:c3prime,c4,h1,c3prime,c4,h1 class2 ba 15.5988 14.6287 1.5140 1.1010 # (ver=1.0, ref=7) + angle_coeff @angle:c3prime,o2,c4,c3prime,o2e,c4 class2 109.0000 38.9739 -6.2595 -8.1710 # (ver=1.0, ref=7) + angle_coeff @angle:c3prime,o2,c4,c3prime,o2e,c4 class2 bb 0.0 1.3750 1.4200 # (ver=1.0, ref=7) + angle_coeff @angle:c3prime,o2,c4,c3prime,o2e,c4 class2 ba 21.5366 -16.6748 1.3750 1.4200 # (ver=1.0, ref=7) + angle_coeff @angle:o1=,n3o,o2n,o1=,n3o,o2n class2 112.8000 85.5228 -18.4582 -14.4215 # (ver=1.0, ref=6) + angle_coeff @angle:o1=,n3o,o2n,o1=,n3o,o2n class2 bb 80.0000 1.2100 1.4020 # (ver=1.0, ref=6) + angle_coeff @angle:o1=,n3o,o2n,o1=,n3o,o2n class2 ba 0.0 0.0 1.2100 1.4020 # (ver=1.0, ref=6) + angle_coeff @angle:c4,c4,o2n,c4,c4,o2n class2 105.0000 54.5381 -8.3642 -13.0838 # (ver=1.0, ref=6) + angle_coeff @angle:c4,c4,o2n,c4,c4,o2n class2 bb 11.4318 1.5300 1.4350 # (ver=1.0, ref=6) + angle_coeff @angle:c4,c4,o2n,c4,c4,o2n class2 ba 2.6868 20.4033 1.5300 1.4350 # (ver=1.0, ref=6) + angle_coeff @angle:c4,o2n,n3o,c4,o2n,n3o class2 108.5000 55.7454 -10.0067 -6.2729 # (ver=1.0, ref=6) + angle_coeff @angle:c4,o2n,n3o,c4,o2n,n3o class2 bb 0.0 1.4350 1.4020 # (ver=1.0, ref=6) + angle_coeff @angle:c4,o2n,n3o,c4,o2n,n3o class2 ba 0.0 0.0 1.4350 1.4020 # (ver=1.0, ref=6) + angle_coeff @angle:o1=,n3o,o1=,o1=,n3o,o1= class2 128.0000 95.1035 -47.4240 -27.9164 # (ver=1.0, ref=6) + angle_coeff @angle:o1=,n3o,o1=,o1=,n3o,o1= class2 bb 265.7106 1.2100 1.2100 # (ver=1.0, ref=6) + angle_coeff @angle:o1=,n3o,o1=,o1=,n3o,o1= class2 ba 95.6936 95.6936 1.2100 1.2100 # (ver=1.0, ref=6) + angle_coeff @angle:h1,n3o,o1=,h1,n3o,o1= class2 115.7000 53.8034 -14.1991 -11.8708 # (ver=1.0, ref=6) + angle_coeff @angle:h1,n3o,o1=,h1,n3o,o1= class2 bb 14.8226 1.0400 1.2100 # (ver=1.0, ref=6) + angle_coeff @angle:h1,n3o,o1=,h1,n3o,o1= class2 ba -8.6275 58.6036 1.0400 1.2100 # (ver=1.0, ref=6) + angle_coeff @angle:c4,n3o,o1=,c4,n3o,o1= class2 117.5000 64.5228 -18.4582 -14.4215 # (ver=1.0, ref=6) + angle_coeff @angle:c4,n3o,o1=,c4,n3o,o1= class2 bb 48.1403 1.4740 1.2100 # (ver=1.0, ref=6) + angle_coeff @angle:c4,n3o,o1=,c4,n3o,o1= class2 ba 27.2141 93.9927 1.4740 1.2100 # (ver=1.0, ref=6) + angle_coeff @angle:c3a,n3o,o1=,c3a,n3o,o1= class2 117.7000 63.9404 -18.4524 -14.3129 # (ver=1.0, ref=6) + angle_coeff @angle:c3a,n3o,o1=,c3a,n3o,o1= class2 bb 93.7948 1.4300 1.2100 # (ver=1.0, ref=6) + angle_coeff @angle:c3a,n3o,o1=,c3a,n3o,o1= class2 ba 40.3757 92.1955 1.4300 1.2100 # (ver=1.0, ref=6) + angle_coeff @angle:h1,c4,o2n,h1,c4,o2n class2 108.7280 58.5446 -10.8088 -12.4006 # (ver=1.0, ref=6) + angle_coeff @angle:h1,c4,o2n,h1,c4,o2n class2 bb 23.1979 1.1010 1.4350 # (ver=1.0, ref=6) + angle_coeff @angle:h1,c4,o2n,h1,c4,o2n class2 ba 4.6189 55.3270 1.1010 1.4350 # (ver=1.0, ref=6) + angle_coeff @angle:h1,c4,n3o,h1,c4,n3o class2 107.0000 54.9318 -9.1333 -11.5434 # (ver=1.0, ref=6) + angle_coeff @angle:h1,c4,n3o,h1,c4,n3o class2 bb 3.3770 1.1010 1.4740 # (ver=1.0, ref=6) + angle_coeff @angle:h1,c4,n3o,h1,c4,n3o class2 ba 12.2491 30.5314 1.1010 1.4740 # (ver=1.0, ref=6) + angle_coeff @angle:c3a,c3a,n3o,c3a,c3a,n3o class2 118.8000 29.2436 -8.8495 -6.6020 # (ver=1.0, ref=6) + angle_coeff @angle:c3a,c3a,n3o,c3a,c3a,n3o class2 bb 21.0495 1.4170 1.4300 # (ver=1.0, ref=6) + angle_coeff @angle:c3a,c3a,n3o,c3a,c3a,n3o class2 ba 30.5211 59.8025 1.4170 1.4300 # (ver=1.0, ref=6) + angle_coeff @angle:o1=,s2=,o1=,o1=,s2=,o1= class2 119.3000 115.2627 -35.6278 -26.1261 # (ver=1.0, ref=5) + angle_coeff @angle:o1=,s2=,o1=,o1=,s2=,o1= class2 bb 20.0000 1.4308 1.4308 # (ver=1.0, ref=5) + angle_coeff @angle:o1=,s2=,o1=,o1=,s2=,o1= class2 ba 45.0585 45.0585 1.4308 1.4308 # (ver=1.0, ref=5) + angle_coeff @angle:o1=,n2o,o1=,o1=,n2o,o1= class2 134.1000 150.0000 -82.1013 -40.0005 # (ver=1.0, ref=5) + angle_coeff @angle:o1=,n2o,o1=,o1=,n2o,o1= class2 bb 20.0000 1.1930 1.1930 # (ver=1.0, ref=5) + angle_coeff @angle:o1=,n2o,o1=,o1=,n2o,o1= class2 ba -50.0000 -50.0000 1.1930 1.1930 # (ver=1.0, ref=5) + angle_coeff @angle:s1=,c2=,s1=,s1=,c2=,s1= class2 180.0000 48.0000 0.0000 0.0000 # (ver=1.0, ref=5) + angle_coeff @angle:s1=,c2=,s1=,s1=,c2=,s1= class2 bb 100.7369 1.5540 1.5540 # (ver=1.0, ref=5) + angle_coeff @angle:s1=,c2=,s1=,s1=,c2=,s1= class2 ba 0.0 0.0 1.5540 1.5540 # (ver=1.0, ref=5) + angle_coeff @angle:o1=,c2=,o1=,o1=,c2=,o1= class2 180.0000 57.1000 0.0000 0.0000 # (ver=1.0, ref=5) + angle_coeff @angle:o1=,c2=,o1=,o1=,c2=,o1= class2 bb 275.4350 1.1600 1.1600 # (ver=1.0, ref=5) + angle_coeff @angle:o1=,c2=,o1=,o1=,c2=,o1= class2 ba 0.0 0.0 1.1600 1.1600 # (ver=1.0, ref=5) + angle_coeff @angle:o2,p4=,o2,o2,p4=,o2 class2 107.5000 86.7690 -4.5700 -17.8520 # (ver=1.0, ref=4) + angle_coeff @angle:o2,p4=,o2,o2,p4=,o2 class2 bb 0.0 1.6000 1.6000 # (ver=1.0, ref=4) + angle_coeff @angle:o2,p4=,o2,o2,p4=,o2 class2 ba 0.0 0.0 1.6000 1.6000 # (ver=1.0, ref=4) + angle_coeff @angle:n2=,p4=,o2,n2=,p4=,o2 class2 112.2150 99.9230 -32.0930 -22.8210 # (ver=1.0, ref=4) + angle_coeff @angle:n2=,p4=,o2,n2=,p4=,o2 class2 bb 0.0 1.5980 1.6000 # (ver=1.0, ref=4) + angle_coeff @angle:n2=,p4=,o2,n2=,p4=,o2 class2 ba 0.0 0.0 1.5980 1.6000 # (ver=1.0, ref=4) + angle_coeff @angle:n2=,p4=,n2=,n2=,p4=,n2= class2 125.0000 90.5230 -20.8010 -19.6020 # (ver=1.0, ref=4) + angle_coeff @angle:n2=,p4=,n2=,n2=,p4=,n2= class2 bb 20.0000 1.5980 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:n2=,p4=,n2=,n2=,p4=,n2= class2 ba 0.0 0.0 1.5980 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,o2,h1,p4=,o2 class2 103.9780 73.2570 -9.8970 -15.2120 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,o2,h1,p4=,o2 class2 bb 0.0 1.4300 1.6000 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,o2,h1,p4=,o2 class2 ba 0.0 0.0 1.4300 1.6000 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,n2=,h1,p4=,n2= class2 110.0330 45.9780 -14.0520 -10.3990 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,n2=,h1,p4=,n2= class2 bb 12.5700 1.4300 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,n2=,h1,p4=,n2= class2 ba -24.3830 72.9250 1.4300 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,h1,h1,p4=,h1 class2 101.4080 39.6950 -5.1340 -8.2270 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,h1,h1,p4=,h1 class2 bb 20.0000 1.4300 1.4300 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,h1,h1,p4=,h1 class2 ba 0.0 0.0 1.4300 1.4300 # (ver=1.0, ref=4) + angle_coeff @angle:c4,p4=,n2=,c4,p4=,n2= class2 119.3000 47.3660 -14.6410 -10.7360 # (ver=1.0, ref=4) + angle_coeff @angle:c4,p4=,n2=,c4,p4=,n2= class2 bb 1.0720 1.8000 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:c4,p4=,n2=,c4,p4=,n2= class2 ba -7.1280 26.3530 1.8000 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:c4,p4=,h1,c4,p4=,h1 class2 102.9000 52.0710 -6.4680 -10.7730 # (ver=1.0, ref=4) + angle_coeff @angle:c4,p4=,h1,c4,p4=,h1 class2 bb 3.8820 1.8000 1.4300 # (ver=1.0, ref=4) + angle_coeff @angle:c4,p4=,h1,c4,p4=,h1 class2 ba 11.1260 -19.4700 1.8000 1.4300 # (ver=1.0, ref=4) + angle_coeff @angle:c4,p4=,c4,c4,p4=,c4 class2 102.5000 48.2320 -5.7980 -9.9660 # (ver=1.0, ref=4) + angle_coeff @angle:c4,p4=,c4,c4,p4=,c4 class2 bb 6.2460 1.8000 1.8000 # (ver=1.0, ref=4) + angle_coeff @angle:c4,p4=,c4,c4,p4=,c4 class2 ba 12.8050 12.8050 1.8000 1.8000 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,o2,c3a,p4=,o2 class2 107.3650 71.9770 -10.9430 -15.2900 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,o2,c3a,p4=,o2 class2 bb 0.0 1.7890 1.6000 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,o2,c3a,p4=,o2 class2 ba 0.0 0.0 1.7890 1.6000 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,n2=,c3a,p4=,n2= class2 109.6000 63.0620 -19.7400 -14.3290 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,n2=,c3a,p4=,n2= class2 bb 0.0 1.7890 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,n2=,c3a,p4=,n2= class2 ba 0.0 0.0 1.7890 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,h1,c3a,p4=,h1 class2 108.2310 36.1850 -6.4880 -7.6460 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,h1,c3a,p4=,h1 class2 bb 0.0 1.7890 1.4300 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,h1,c3a,p4=,h1 class2 ba 0.0 0.0 1.7890 1.4300 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,c3a,c3a,p4=,c3a class2 110.2310 56.1850 -17.3160 -12.7280 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,c3a,c3a,p4=,c3a class2 bb 0.0 1.7890 1.7890 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,c3a,c3a,p4=,c3a class2 ba 0.0 0.0 1.7890 1.7890 # (ver=1.0, ref=4) + angle_coeff @angle:p4=,n2=,p4=,p4=,n2=,p4= class2 135.0000 23.8680 -8.7360 0.0000 # (ver=1.0, ref=4) + angle_coeff @angle:p4=,n2=,p4=,p4=,n2=,p4= class2 bb 20.0000 1.5980 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:p4=,n2=,p4=,p4=,n2=,p4= class2 ba 0.0 0.0 1.5980 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:h1,n2=,p4=,h1,n2=,p4= class2 120.0000 26.0680 -8.2980 -5.9430 # (ver=1.0, ref=4) + angle_coeff @angle:h1,n2=,p4=,h1,n2=,p4= class2 bb -18.2870 1.0310 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:h1,n2=,p4=,h1,n2=,p4= class2 ba 40.0630 90.7910 1.0310 1.5980 # (ver=1.0, ref=4) + angle_coeff @angle:h1,n2=,h1,h1,n2=,h1 class2 110.9100 31.0910 0.0000 0.0000 # (ver=1.0, ref=4) + angle_coeff @angle:h1,n2=,h1,h1,n2=,h1 class2 bb 1.4570 1.0310 1.0310 # (ver=1.0, ref=4) + angle_coeff @angle:h1,n2=,h1,h1,n2=,h1 class2 ba 8.4900 8.4900 1.0310 1.0310 # (ver=1.0, ref=4) + angle_coeff @angle:c4,n2=,h1,c4,n2=,h1 class2 117.2000 37.2620 0.0000 0.0000 # (ver=1.0, ref=4) + angle_coeff @angle:c4,n2=,h1,c4,n2=,h1 class2 bb 12.5630 1.4740 1.0310 # (ver=1.0, ref=4) + angle_coeff @angle:c4,n2=,h1,c4,n2=,h1 class2 ba 18.4860 7.8370 1.4740 1.0310 # (ver=1.0, ref=4) + angle_coeff @angle:h1,c4,p4=,h1,c4,p4= class2 110.8860 33.8300 -7.0430 -7.2460 # (ver=1.0, ref=4) + angle_coeff @angle:h1,c4,p4=,h1,c4,p4= class2 bb 1.0500 1.1010 1.8000 # (ver=1.0, ref=4) + angle_coeff @angle:h1,c4,p4=,h1,c4,p4= class2 ba 19.8120 16.9400 1.1010 1.8000 # (ver=1.0, ref=4) + angle_coeff @angle:h1,c4,n2=,h1,c4,n2= class2 107.4990 62.7310 0.0000 0.0000 # (ver=1.0, ref=4) + angle_coeff @angle:h1,c4,n2=,h1,c4,n2= class2 bb 5.6640 1.1010 1.4740 # (ver=1.0, ref=4) + angle_coeff @angle:h1,c4,n2=,h1,c4,n2= class2 ba 6.4070 46.3730 1.1010 1.4740 # (ver=1.0, ref=4) + angle_coeff @angle:c4,c4,n2=,c4,c4,n2= class2 117.3170 55.2420 0.0000 0.0000 # (ver=1.0, ref=4) + angle_coeff @angle:c4,c4,n2=,c4,c4,n2= class2 bb 22.7100 1.5300 1.4740 # (ver=1.0, ref=4) + angle_coeff @angle:c4,c4,n2=,c4,c4,n2= class2 ba 19.2440 59.4220 1.5300 1.4740 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,c3a,p4=,c3a,c3a,p4= class2 120.0010 47.8410 -15.2290 -10.9070 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,c3a,p4=,c3a,c3a,p4= class2 bb 0.0 1.4170 1.7890 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,c3a,p4=,c3a,c3a,p4= class2 ba 0.0 0.0 1.4170 1.7890 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,c3a,n2=,c3a,c3a,n2= class2 120.0000 60.0000 0.0000 0.0000 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,c3a,n2=,c3a,c3a,n2= class2 bb 0.0 1.4170 1.4000 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,c3a,n2=,c3a,c3a,n2= class2 ba 0.0 0.0 1.4170 1.4000 # (ver=1.0, ref=4) + angle_coeff @angle:c4,o2,h1,c4,o2h,h1 class2 105.8000 52.7061 -12.1090 -9.8681 # (ver=1.0, ref=3) + angle_coeff @angle:c4,o2,h1,c4,o2h,h1 class2 bb -9.6879 1.4200 0.9494 # (ver=1.0, ref=3) + angle_coeff @angle:c4,o2,h1,c4,o2h,h1 class2 ba 28.5800 18.9277 1.4200 0.9494 # (ver=1.0, ref=3) + angle_coeff @angle:c4,o2,c4,c4,o2h,c4 class2 104.5000 35.7454 -10.0067 -6.2729 # (ver=1.0, ref=3) + angle_coeff @angle:c4,o2,c4,c4,o2h,c4 class2 bb -7.1131 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c4,o2,c4,c4,o2h,c4 class2 ba -2.8112 -2.8112 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c4,o2,c4,c4,o2e,c4 class2 104.5000 35.7454 -10.0067 -6.2729 # (ver=1.0, ref=3) + angle_coeff @angle:c4,o2,c4,c4,o2e,c4 class2 bb -7.1131 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c4,o2,c4,c4,o2e,c4 class2 ba -2.8112 -2.8112 1.4200 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,o2,h1,c3a,o2h,h1 class2 108.1900 53.1250 -8.5016 0.0000 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,o2,h1,c3a,o2h,h1 class2 bb 20.6577 1.3768 0.9494 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,o2,h1,c3a,o2h,h1 class2 ba 53.8614 23.9224 1.3768 0.9494 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,o2,c4,c3a,o2h,c4 class2 102.9695 38.9739 -6.2595 -8.1710 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,o2,c4,c3a,o2h,c4 class2 bb 0.0 1.3768 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,o2,c4,c3a,o2h,c4 class2 ba 0.0 0.0 1.3768 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,o2,c4,c3a,o2e,c4 class2 102.9695 38.9739 -6.2595 -8.1710 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,o2,c4,c3a,o2e,c4 class2 bb 0.0 1.3768 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,o2,c4,c3a,o2e,c4 class2 ba 0.0 0.0 1.3768 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c4,o2,h1,c4,o2h class2 108.7280 58.5446 -10.8088 -12.4006 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c4,o2,h1,c4,o2h class2 bb 23.1979 1.1010 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c4,o2,h1,c4,o2h class2 ba 4.6189 55.3270 1.1010 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c4,o2,h1,c4,o2e class2 108.7280 58.5446 -10.8088 -12.4006 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c4,o2,h1,c4,o2e class2 bb 23.1979 1.1010 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:h1,c4,o2,h1,c4,o2e class2 ba 4.6189 55.3270 1.1010 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c4,c4,o2,c4,c4,o2h class2 111.2700 54.5381 -8.3642 -13.0838 # (ver=1.0, ref=3) + angle_coeff @angle:c4,c4,o2,c4,c4,o2h class2 bb 11.4318 1.5300 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c4,c4,o2,c4,c4,o2h class2 ba 2.6868 20.4033 1.5300 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c4,c4,o2,c4,c4,o2e class2 111.2700 54.5381 -8.3642 -13.0838 # (ver=1.0, ref=3) + angle_coeff @angle:c4,c4,o2,c4,c4,o2e class2 bb 11.4318 1.5300 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c4,c4,o2,c4,c4,o2e class2 ba 2.6868 20.4033 1.5300 1.4200 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,c3a,o2,c3a,c3a,o2h class2 123.4200 73.6781 -21.6787 0.0000 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,c3a,o2,c3a,c3a,o2h class2 bb 48.4754 1.4170 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,c3a,o2,c3a,c3a,o2h class2 ba 58.4790 107.6806 1.4170 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,c3a,o2,c3a,c3a,o2e class2 123.4200 73.6781 -21.6787 0.0000 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,c3a,o2,c3a,c3a,o2e class2 bb 48.4754 1.4170 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,c3a,o2,c3a,c3a,o2e class2 ba 58.4790 107.6806 1.4170 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,c3a,o2,c3a,c3a,o2 class2 123.4200 73.6781 -21.6787 0.0000 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,c3a,o2,c3a,c3a,o2 class2 bb 48.4754 1.4170 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:c3a,c3a,o2,c3a,c3a,o2 class2 ba 58.4790 107.6806 1.4170 1.3768 # (ver=1.0, ref=3) + angle_coeff @angle:o2z,si4,o2z,o2z,si4,o2z class2 110.7000 70.3069 -6.9375 0.0000 # (ver=1.0, ref=2) + angle_coeff @angle:o2z,si4,o2z,o2z,si4,o2z class2 bb 41.1143 1.6400 1.6400 # (ver=1.0, ref=2) + angle_coeff @angle:o2z,si4,o2z,o2z,si4,o2z class2 ba 23.4380 23.4380 1.6400 1.6400 # (ver=1.0, ref=2) + angle_coeff @angle:h1,si4,o2z,h1,si4,o2z class2 107.4000 57.6643 -10.6506 4.6274 # (ver=1.0, ref=2) + angle_coeff @angle:h1,si4,o2z,h1,si4,o2z class2 bb 11.6183 1.4783 1.6400 # (ver=1.0, ref=2) + angle_coeff @angle:h1,si4,o2z,h1,si4,o2z class2 ba 6.4278 20.5669 1.4783 1.6400 # (ver=1.0, ref=2) + angle_coeff @angle:c4,si4,o2z,c4,si4,o2z class2 114.9060 23.0218 -31.3993 24.9814 # (ver=1.0, ref=2) + angle_coeff @angle:c4,si4,o2z,c4,si4,o2z class2 bb 5.4896 1.8995 1.6400 # (ver=1.0, ref=2) + angle_coeff @angle:c4,si4,o2z,c4,si4,o2z class2 ba 6.4278 20.5669 1.8995 1.6400 # (ver=1.0, ref=2) + angle_coeff @angle:c3a,si4,o2z,c3a,si4,o2z class2 114.9060 23.0218 -31.3993 24.9814 # (ver=1.0, ref=2) + angle_coeff @angle:c3a,si4,o2z,c3a,si4,o2z class2 bb 0.0 1.8634 1.6400 # (ver=1.0, ref=2) + angle_coeff @angle:c3a,si4,o2z,c3a,si4,o2z class2 ba 0.0 0.0 1.8634 1.6400 # (ver=1.0, ref=2) + angle_coeff @angle:si4,o2z,si4,si4,o2z,si4 class2 159.0000 8.5000 -13.4188 -4.1785 # (ver=1.0, ref=2) + angle_coeff @angle:si4,o2z,si4,si4,o2z,si4 class2 bb 41.1143 1.6400 1.6400 # (ver=1.0, ref=2) + angle_coeff @angle:si4,o2z,si4,si4,o2z,si4 class2 ba 28.6686 28.6686 1.6400 1.6400 # (ver=1.0, ref=2) + angle_coeff @angle:h1,c4,h1,h1,c4,h1 class2 107.6600 39.6410 -12.9210 -2.4318 # (ver=1.0, ref=1) + angle_coeff @angle:h1,c4,h1,h1,c4,h1 class2 bb 5.3316 1.1010 1.1010 # (ver=1.0, ref=1) + angle_coeff @angle:h1,c4,h1,h1,c4,h1 class2 ba 18.1030 18.1030 1.1010 1.1010 # (ver=1.0, ref=1) + angle_coeff @angle:c4,c4,h1,c4,c4,h1 class2 110.7700 41.4530 -10.6040 5.1290 # (ver=1.0, ref=1) + angle_coeff @angle:c4,c4,h1,c4,c4,h1 class2 bb 3.3872 1.5300 1.1010 # (ver=1.0, ref=1) + angle_coeff @angle:c4,c4,h1,c4,c4,h1 class2 ba 20.7540 11.4210 1.5300 1.1010 # (ver=1.0, ref=1) + angle_coeff @angle:c4,c4,c4,c4,c4,c4 class2 112.6700 39.5160 -7.4430 -9.5583 # (ver=1.0, ref=1) + angle_coeff @angle:c4,c4,c4,c4,c4,c4 class2 bb 0.0 1.5300 1.5300 # (ver=1.0, ref=1) + angle_coeff @angle:c4,c4,c4,c4,c4,c4 class2 ba 8.0160 8.0160 1.5300 1.5300 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c4,h1,c3a,c4,h1 class2 111.0000 44.3234 -9.4454 0.0000 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c4,h1,c3a,c4,h1 class2 bb 2.9168 1.5010 1.1010 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c4,h1,c3a,c4,h1 class2 ba 26.4608 11.7717 1.5010 1.1010 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c4,c4,c3a,c4,c4 class2 108.4000 43.9594 -8.3924 -9.3379 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c4,c4,c3a,c4,c4 class2 bb 0.0 1.5010 1.5300 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c4,c4,c3a,c4,c4 class2 ba 0.0 0.0 1.5010 1.5300 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c4,c3a,c3a,c4,c3a class2 111.0000 44.3234 -9.4454 0.0000 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c4,c3a,c3a,c4,c3a class2 bb 0.0 1.5010 1.5010 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c4,c3a,c3a,c4,c3a class2 ba 0.0 0.0 1.5010 1.5010 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c3a,h1,c3a,c3a,h1 class2 117.9400 35.1558 -12.4682 0.0000 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c3a,h1,c3a,c3a,h1 class2 bb 1.0795 1.4170 1.0982 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c3a,h1,c3a,c3a,h1 class2 ba 20.0033 24.2183 1.4170 1.0982 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c3a,c4,c3a,c3a,c4 class2 120.0500 44.7148 -22.7352 0.0000 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c3a,c4,c3a,c3a,c4 class2 bb 12.0676 1.4170 1.5010 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c3a,c4,c3a,c3a,c4 class2 ba 31.0771 47.0579 1.4170 1.5010 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c3a,c3a,c3a,c3a,c3a class2 118.9000 61.0226 -34.9931 0.0000 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c3a,c3a,c3a,c3a,c3a class2 bb 68.2856 1.4170 1.4170 # (ver=1.0, ref=1) + angle_coeff @angle:c3a,c3a,c3a,c3a,c3a,c3a class2 ba 28.8708 28.8708 1.4170 1.4170 # (ver=1.0, ref=1) + angle_coeff @angle:n3,p4=,o2,X,X,X class2 108.3000 86.7690 -5.1750 -17.6710 # (ver=1.0, ref=4) + angle_coeff @angle:n3,p4=,o2,X,X,X class2 bb 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:n3,p4=,o2,X,X,X class2 ba 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:n3,p4=,n3,X,X,X class2 107.1000 85.7690 -5.7790 -17.4890 # (ver=1.0, ref=4) + angle_coeff @angle:n3,p4=,n3,X,X,X class2 bb 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:n3,p4=,n3,X,X,X class2 ba 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:n2=,p4=,n3,X,X,X class2 123.2150 89.9230 -32.6120 -21.0960 # (ver=1.0, ref=4) + angle_coeff @angle:n2=,p4=,n3,X,X,X class2 bb 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:n2=,p4=,n3,X,X,X class2 ba 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,n3,X,X,X class2 103.9780 68.2570 -9.2210 -14.1740 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,n3,X,X,X class2 bb 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:h1,p4=,n3,X,X,X class2 ba 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,n3,X,X,X class2 108.1650 70.9770 -11.5480 -15.1090 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,n3,X,X,X class2 bb 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:c3a,p4=,n3,X,X,X class2 ba 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:h1,o2,p4=,X,X,X class2 117.0000 26.0310 -5.8280 -5.6200 # (ver=1.0, ref=4) + angle_coeff @angle:h1,o2,p4=,X,X,X class2 bb 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:h1,o2,p4=,X,X,X class2 ba 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:c4,o2,p4=,X,X,X class2 118.2830 35.0010 -10.3600 -7.8700 # (ver=1.0, ref=4) + angle_coeff @angle:c4,o2,p4=,X,X,X class2 bb 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:c4,o2,p4=,X,X,X class2 ba 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:h1,n3,p4=,X,X,X class2 120.0830 25.0010 -6.1170 -5.4570 # (ver=1.0, ref=4) + angle_coeff @angle:h1,n3,p4=,X,X,X class2 bb 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:h1,n3,p4=,X,X,X class2 ba 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:c4,n3,p4=,X,X,X class2 120.0830 25.0010 -6.1170 -5.4570 # (ver=1.0, ref=4) + angle_coeff @angle:c4,n3,p4=,X,X,X class2 bb 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:c4,n3,p4=,X,X,X class2 ba 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + angle_coeff @angle:h1,o2z,si4,X,X,X class2 122.8000 23.7764 -19.8152 9.6331 # (ver=1.0, ref=2) + angle_coeff @angle:h1,o2z,si4,X,X,X class2 bb 0.0 1.0 1.0 # (ver=1.0, ref=2) + angle_coeff @angle:h1,o2z,si4,X,X,X class2 ba 0.0 0.0 1.0 1.0 # (ver=1.0, ref=2) + } # end of angle_coeff commands + + + # --------------- Dihedral Interactions: --------------------- + + + # -- Rules for generating (4-body) "dihedral" interactions: -- + # DihedralType AtmType1 AtmType2 AtmType3 AtmType3 [BondType1 Bnd2 Bnd3] + + + write_once("Data Dihedrals By Type") { + @dihedral:h1,si4,si4,si4,h1,si4,si4,si4,h1,si4,si4,si4 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* + @dihedral:h1,si4,c4,h1,h1,si4,c4,h1,h1,si4,c4,h1 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,si4,c4,h1,c4,si4,c4,h1,c4,si4,c4,h1 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:h1,si4,si4,h1,h1,si4,si4,h1,h1,si4,si4,h1 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4,h1 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:h1,c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* + @dihedral:h1,c4,si4,h1,h1,c4,si4,h1,h1,c4,si4,h1 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* + @dihedral:c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1= @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bn3m,an3m,dn3m,i* @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bo1=,ao1=,do1=,i* + @dihedral:X,si4,si4,X,si4,si4,si4,si4,si4,si4,si4,si4 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,si4,si4,X,si4,si4,si4,h1,si4,si4,si4,h1 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,si4,si4,X,si4,si4,si4,c4,si4,si4,si4,c4 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,si4,si4,X,h1,si4,si4,si4,h1,si4,si4,si4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,si4,si4,X,h1,si4,si4,h1,h1,si4,si4,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,si4,si4,X,h1,si4,si4,c4,h1,si4,si4,c4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,si4,si4,X,c4,si4,si4,si4,c4,si4,si4,si4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,si4,si4,X,c4,si4,si4,h1,c4,si4,si4,h1 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,si4,si4,X,c4,si4,si4,c4,c4,si4,si4,c4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,si4,X,h1,c4,si4,si4,h1,c4,si4,si4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,si4,X,h1,c4,si4,o2z,h1,c4,si4,o2z @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bo2z,ao2z,d*,i* + @dihedral:X,c4,si4,X,h1,c4,si4,h1,h1,c4,si4,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,si4,X,h1,c4,si4,c4,h1,c4,si4,c4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,si4,X,c4,c4,si4,si4,c4,c4,si4,si4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,si4,X,c4,c4,si4,o2z,c4,c4,si4,o2z @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bo2z,ao2z,d*,i* + @dihedral:X,c4,si4,X,c4,c4,si4,h1,c4,c4,si4,h1 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,si4,X,c4,c4,si4,c4,c4,c4,si4,c4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:c4,c4,si4,si4,c4,c4,si4,si4,c4,c4,si4,si4 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bsi4,asi4,dsi4,i* + @dihedral:X,si4,c3a,c3a,o2z,si4,c3a,c3a,o2z,si4,c3a,c3a @atom:*,p*,bo2z,ao2z,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* + @dihedral:X,si4,c3a,c3a,h1,si4,c3a,c3a,h1,si4,c3a,c3a @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* + @dihedral:h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,dsi4,i* + @dihedral:c3a,c3a,c3a,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,dsi4,i* + @dihedral:h1,c4,c4,n2z,h1,c4,c4,n2z,h1,c4,c4,n2z @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,dn2z,i* + @dihedral:c4,c4,n2z,n2t,c4,c4,n2z,n2t,c4,c4,n2z,n2t @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,dn2z,i* @atom:*,p*,bn2t,an2t,dn2t,i* + @dihedral:h1,c4,n2z,n2t,h1,c4,n2z,n2t,h1,c4,n2z,n2t @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,dn2z,i* @atom:*,p*,bn2t,an2t,dn2t,i* + @dihedral:c4,n2z,n2t,n1t,c4,n2z,n2t,n1t,c4,n2z,n2t,n1t @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,dn2z,i* @atom:*,p*,bn2t,an2t,dn2t,i* @atom:*,p*,bn1t,an1t,dn1t,i* + @dihedral:h1,n2z,n2t,n1t,h1,n2z,n2t,n1t,h1,n2z,n2t,n1t @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bn2z,an2z,dn2z,i* @atom:*,p*,bn2t,an2t,dn2t,i* @atom:*,p*,bn1t,an1t,dn1t,i* + @dihedral:h1,c3a,c3a,n3m,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,dn3m,i* + @dihedral:h1,c4,c3prime,o2,h1,c4,c3prime,o2e,h1,c4,c3prime,o2 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bo2e,ao2,do2,i* + @dihedral:h1,c4,c3prime,o1=,h1,c4,c3prime,o1=,h1,c4,c3prime,o1= @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bo1=,ao1=,do1=,i* + @dihedral:c4,o2,c3prime,o1=,c4,o2e,c3prime,o1=,c4,o2,c3prime,o1= @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bo1=,ao1=,do1=,i* + @dihedral:c4,o2,c3prime,c4,c4,o2e,c3prime,c4,c4,o2,c3prime,c4 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bc4,ac4,dc4,i* + @dihedral:c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1= @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,dn3m,i* @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bo1=,ao1=,do1=,i* + @dihedral:c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,dn3m,i* + @dihedral:c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1= @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bo1=,ao1=,do1=,i* + @dihedral:c3prime,o2,c4,h1,c3prime,o2e,c4,h1,c3prime,o2,c4,h1 @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4,c4 @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* + @dihedral:c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,dn3m,i* @atom:*,p*,bc3prime,ac3prime,dc3prime,i* + @dihedral:c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 @atom:*,p*,bc3prime,ac3prime,dc3prime,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,dc3prime,i* + @dihedral:c4,o2,n3o,o1=,c4,o2n,n3o,o1=,c4,o2n,n3o,o1= @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,do2,i* @atom:*,p*,bn3o,an3o,dn3o,i* @atom:*,p*,bo1=,ao1=,do1=,i* + @dihedral:c4,c4,o2,n3o,c4,c4,o2n,n3o,c4,c4,o2n,n3o @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,do2,i* @atom:*,p*,bn3o,an3o,dn3o,i* + @dihedral:h1,c4,n3o,o1=,h1,c4,n3o,o1=,h1,c4,n3o,o1= @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn3o,an3o,dn3o,i* @atom:*,p*,bo1=,ao1=,do1=,i* + @dihedral:c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1= @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,dn3o,i* @atom:*,p*,bo1=,ao1=,do1=,i* + @dihedral:h1,c3a,c3a,n3o,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,dn3o,i* + @dihedral:c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,dn3o,i* + @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,o2,p4=,n2=,p4=,o2 @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2= @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1 @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c4,p4=,n2=,p4=,c4 @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c3a,p4=,n2=,p4=,c3a @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,n2=,p4=,X,h1,n2=,p4=,o2,h1,n2=,p4=,o2 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,n2=,p4=,X,h1,n2=,p4=,n2=,h1,n2=,p4=,n2= @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,n2=,p4=,X,h1,n2=,p4=,h1,h1,n2=,p4=,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c4,h1,n2=,p4=,c4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c3a,h1,n2=,p4=,c3a @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c4,p4=,X,h1,c4,p4=,n2=,h1,c4,p4=,n2= @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c4,p4=,X,h1,c4,p4=,h1,h1,c4,p4=,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,p4=,X,h1,c4,p4=,c4,h1,c4,p4=,c4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,n2=,X,h1,c4,n2=,h1,h1,c4,n2=,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,n2=,X,c4,c4,n2=,h1,c4,c4,n2=,h1 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,o2,c3a,c3a,p4=,o2 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4= @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* + @dihedral:h1,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1,p4=,n2=,p4= @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* + @dihedral:h1,n2=,p4=,o2,h1,n2=,p4=,o2,h1,n2=,p4=,o2 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bo2,ao2,do2,i* + @dihedral:h1,n2=,p4=,h1,h1,n2=,p4=,h1,h1,n2=,p4=,h1 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c3a,p4=,n2=,h1,c3a,p4=,n2=,h1,c3a,p4=,n2=,h1 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2= @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bn2=,an2=,dn2=,i* + @dihedral:h1,c4,p4=,h1,h1,c4,p4=,h1,h1,c4,p4=,h1 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,p4=,c4,h1,c4,p4=,c4,h1,c4,p4=,c4,h1 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:h1,c4,n2=,h1,h1,c4,n2=,h1,h1,c4,n2=,h1 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2=,h1 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,dn2=,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:h1,c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2= @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,dn2=,i* + @dihedral:c4,c4,c4,n2=,c4,c4,c4,n2=,c4,c4,c4,n2= @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,dn2=,i* + @dihedral:c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bn2=,an2=,dn2=,i* + @dihedral:c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,dp4=,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,dp4=,i* + @dihedral:c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,dp4=,i* + @dihedral:h1,c4,o2,h1,h1,c4,o2h,h1,h1,c4,o2,h1 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,do2,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,o2,c4,h1,c4,o2h,c4,h1,c4,o2,c4,h1 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,o2,c4,h1,c4,o2e,c4,h1,c4,o2,c4,h1 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c3a,o2,c4,h1,c3a,o2h,c4,h1,c3a,o2,c4,h1 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c3a,o2,c4,h1,c3a,o2e,c4,h1,c3a,o2,c4,h1 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2,h1 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,do2,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2,c4 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* + @dihedral:c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2,c4 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* + @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2n,o2n,c4,c4,o2n @atom:*,p*,bo2n,ao2n,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,do2,i* + @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2h,o2n,c4,c4,o2 @atom:*,p*,bo2n,ao2n,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,do2,i* + @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2e,o2n,c4,c4,o2 @atom:*,p*,bo2n,ao2n,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,do2,i* + @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2n,o2,c4,c4,o2n @atom:*,p*,bo2h,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,do2,i* + @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2h,o2,c4,c4,o2 @atom:*,p*,bo2h,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,do2,i* + @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2e,o2,c4,c4,o2 @atom:*,p*,bo2h,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,do2,i* + @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2n,o2,c4,c4,o2n @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,do2,i* + @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2h,o2,c4,c4,o2 @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,do2,i* + @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2e,o2,c4,c4,o2 @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,do2,i* + @dihedral:h1,c4,c4,o2,h1,c4,c4,o2n,h1,c4,c4,o2n @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,do2,i* + @dihedral:h1,c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,do2,i* + @dihedral:h1,c4,c4,o2,h1,c4,c4,o2e,h1,c4,c4,o2 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,do2,i* + @dihedral:c4,c4,c4,o2,c4,c4,c4,o2n,c4,c4,c4,o2n @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,do2,i* + @dihedral:c4,c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,do2,i* + @dihedral:c4,c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,do2,i* + @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2h,c4,c3a,c3a,o2,c4 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* + @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2e,c4,c3a,c3a,o2,c4 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,do2,i* @atom:*,p*,bc4,ac4,dc4,i* + @dihedral:X,o2z,si4,X,si4,o2z,si4,o2z,si4,o2z,si4,o2z @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bo2z,ao2z,do2z,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bo2z,ao2z,d*,i* + @dihedral:X,o2z,si4,X,si4,o2z,si4,h1,si4,o2z,si4,h1 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bo2z,ao2z,do2z,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,o2z,si4,X,si4,o2z,si4,c4,si4,o2z,si4,c4 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bo2z,ao2z,do2z,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,o2z,si4,X,si4,o2z,si4,c3a,si4,o2z,si4,c3a @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bo2z,ao2z,do2z,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4 @atom:*,p*,bo2z,ao2z,do2z,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bo2z,ao2z,do2z,i* @atom:*,p*,bsi4,asi4,dsi4,i* + @dihedral:h1,si4,o2z,si4,h1,si4,o2z,si4,h1,si4,o2z,si4 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bo2z,ao2z,do2z,i* @atom:*,p*,bsi4,asi4,dsi4,i* + @dihedral:c4,si4,o2z,si4,c4,si4,o2z,si4,c4,si4,o2z,si4 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,dsi4,i* @atom:*,p*,bo2z,ao2z,do2z,i* @atom:*,p*,bsi4,asi4,dsi4,i* + @dihedral:X,c4,c4,X,si4,c4,c4,si4,si4,c4,c4,si4 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,c4,X,si4,c4,c4,o2n,si4,c4,c4,o2n @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,d*,i* + @dihedral:X,c4,c4,X,si4,c4,c4,o2h,si4,c4,c4,o2 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c4,c4,X,si4,c4,c4,o2e,si4,c4,c4,o2 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c4,c4,X,si4,c4,c4,n2z,si4,c4,c4,n2z @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,d*,i* + @dihedral:X,c4,c4,X,si4,c4,c4,n2=,si4,c4,c4,n2= @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c4,c4,X,si4,c4,c4,h1,si4,c4,c4,h1 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,c4,X,si4,c4,c4,c4,si4,c4,c4,c4 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,c4,X,si4,c4,c4,c3a,si4,c4,c4,c3a @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c4,c4,X,o2n,c4,c4,si4,o2n,c4,c4,si4 @atom:*,p*,bo2n,ao2n,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,c4,X,o2n,c4,c4,o2n,o2n,c4,c4,o2n @atom:*,p*,bo2n,ao2n,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,d*,i* + @dihedral:X,c4,c4,X,o2n,c4,c4,o2h,o2n,c4,c4,o2 @atom:*,p*,bo2n,ao2n,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c4,c4,X,o2n,c4,c4,o2e,o2n,c4,c4,o2 @atom:*,p*,bo2n,ao2n,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c4,c4,X,o2n,c4,c4,n2z,o2n,c4,c4,n2z @atom:*,p*,bo2n,ao2n,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,d*,i* + @dihedral:X,c4,c4,X,o2n,c4,c4,n2=,o2n,c4,c4,n2= @atom:*,p*,bo2n,ao2n,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c4,c4,X,o2n,c4,c4,h1,o2n,c4,c4,h1 @atom:*,p*,bo2n,ao2n,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,c4,X,o2n,c4,c4,c4,o2n,c4,c4,c4 @atom:*,p*,bo2n,ao2n,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,c4,X,o2n,c4,c4,c3a,o2n,c4,c4,c3a @atom:*,p*,bo2n,ao2n,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c4,c4,X,o2h,c4,c4,si4,o2,c4,c4,si4 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,c4,X,o2h,c4,c4,o2n,o2,c4,c4,o2n @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,d*,i* + @dihedral:X,c4,c4,X,o2h,c4,c4,o2h,o2,c4,c4,o2 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c4,c4,X,o2h,c4,c4,o2e,o2,c4,c4,o2 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c4,c4,X,o2h,c4,c4,n2z,o2,c4,c4,n2z @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,d*,i* + @dihedral:X,c4,c4,X,o2h,c4,c4,n2=,o2,c4,c4,n2= @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c4,c4,X,o2h,c4,c4,h1,o2,c4,c4,h1 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,c4,X,o2h,c4,c4,c4,o2,c4,c4,c4 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,c4,X,o2h,c4,c4,c3a,o2,c4,c4,c3a @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c4,c4,X,o2e,c4,c4,si4,o2,c4,c4,si4 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,c4,X,o2e,c4,c4,o2n,o2,c4,c4,o2n @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,d*,i* + @dihedral:X,c4,c4,X,o2e,c4,c4,o2h,o2,c4,c4,o2 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c4,c4,X,o2e,c4,c4,o2e,o2,c4,c4,o2 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c4,c4,X,o2e,c4,c4,n2z,o2,c4,c4,n2z @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,d*,i* + @dihedral:X,c4,c4,X,o2e,c4,c4,n2=,o2,c4,c4,n2= @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c4,c4,X,o2e,c4,c4,h1,o2,c4,c4,h1 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,c4,X,o2e,c4,c4,c4,o2,c4,c4,c4 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,c4,X,o2e,c4,c4,c3a,o2,c4,c4,c3a @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c4,c4,X,n2z,c4,c4,si4,n2z,c4,c4,si4 @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,c4,X,n2z,c4,c4,o2n,n2z,c4,c4,o2n @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,d*,i* + @dihedral:X,c4,c4,X,n2z,c4,c4,o2h,n2z,c4,c4,o2 @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c4,c4,X,n2z,c4,c4,o2e,n2z,c4,c4,o2 @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c4,c4,X,n2z,c4,c4,n2z,n2z,c4,c4,n2z @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,d*,i* + @dihedral:X,c4,c4,X,n2z,c4,c4,n2=,n2z,c4,c4,n2= @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c4,c4,X,n2z,c4,c4,h1,n2z,c4,c4,h1 @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,c4,X,n2z,c4,c4,c4,n2z,c4,c4,c4 @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,c4,X,n2z,c4,c4,c3a,n2z,c4,c4,c3a @atom:*,p*,bn2z,an2z,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c4,c4,X,n2=,c4,c4,si4,n2=,c4,c4,si4 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,c4,X,n2=,c4,c4,o2n,n2=,c4,c4,o2n @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,d*,i* + @dihedral:X,c4,c4,X,n2=,c4,c4,o2h,n2=,c4,c4,o2 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c4,c4,X,n2=,c4,c4,o2e,n2=,c4,c4,o2 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c4,c4,X,n2=,c4,c4,n2z,n2=,c4,c4,n2z @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,d*,i* + @dihedral:X,c4,c4,X,n2=,c4,c4,n2=,n2=,c4,c4,n2= @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c4,c4,X,n2=,c4,c4,h1,n2=,c4,c4,h1 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,c4,X,n2=,c4,c4,c4,n2=,c4,c4,c4 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,c4,X,n2=,c4,c4,c3a,n2=,c4,c4,c3a @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c4,c4,X,h1,c4,c4,si4,h1,c4,c4,si4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,c4,X,h1,c4,c4,o2n,h1,c4,c4,o2n @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,d*,i* + @dihedral:X,c4,c4,X,h1,c4,c4,o2h,h1,c4,c4,o2 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c4,c4,X,h1,c4,c4,o2e,h1,c4,c4,o2 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c4,c4,X,h1,c4,c4,n2z,h1,c4,c4,n2z @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,d*,i* + @dihedral:X,c4,c4,X,h1,c4,c4,n2=,h1,c4,c4,n2= @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c4,c4,X,h1,c4,c4,h1,h1,c4,c4,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,c4,X,h1,c4,c4,c4,h1,c4,c4,c4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,c4,X,h1,c4,c4,c3a,h1,c4,c4,c3a @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c4,c4,X,c4,c4,c4,si4,c4,c4,c4,si4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,c4,X,c4,c4,c4,o2n,c4,c4,c4,o2n @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,d*,i* + @dihedral:X,c4,c4,X,c4,c4,c4,o2h,c4,c4,c4,o2 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c4,c4,X,c4,c4,c4,o2e,c4,c4,c4,o2 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c4,c4,X,c4,c4,c4,n2z,c4,c4,c4,n2z @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,d*,i* + @dihedral:X,c4,c4,X,c4,c4,c4,n2=,c4,c4,c4,n2= @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c4,c4,X,c4,c4,c4,h1,c4,c4,c4,h1 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,c4,X,c4,c4,c4,c4,c4,c4,c4,c4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,c4,X,c4,c4,c4,c3a,c4,c4,c4,c3a @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c4,c4,X,c3a,c4,c4,si4,c3a,c4,c4,si4 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c4,c4,X,c3a,c4,c4,o2n,c3a,c4,c4,o2n @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2n,ao2n,d*,i* + @dihedral:X,c4,c4,X,c3a,c4,c4,o2h,c3a,c4,c4,o2 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c4,c4,X,c3a,c4,c4,o2e,c3a,c4,c4,o2 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c4,c4,X,c3a,c4,c4,n2z,c3a,c4,c4,n2z @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2z,an2z,d*,i* + @dihedral:X,c4,c4,X,c3a,c4,c4,n2=,c3a,c4,c4,n2= @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c4,c4,X,c3a,c4,c4,h1,c3a,c4,c4,h1 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c4,c4,X,c3a,c4,c4,c4,c3a,c4,c4,c4 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c4,c4,X,c3a,c4,c4,c3a,c3a,c4,c4,c3a @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,si4,si4,c3a,c3a,si4 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,p4=,si4,c3a,c3a,p4= @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2h,si4,c3a,c3a,o2 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2e,si4,c3a,c3a,o2 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2,si4,c3a,c3a,o2 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3o,si4,c3a,c3a,n3o @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3m,si4,c3a,c3a,n3m @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n2=,si4,c3a,c3a,n2= @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,h1,si4,c3a,c3a,h1 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c4,si4,c3a,c3a,c4 @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3prime,si4,c3a,c3a,c3prime @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a @atom:*,p*,bsi4,asi4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,si4,p4=,c3a,c3a,si4 @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,p4=,p4=,c3a,c3a,p4= @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2h,p4=,c3a,c3a,o2 @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2e,p4=,c3a,c3a,o2 @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2,p4=,c3a,c3a,o2 @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3o,p4=,c3a,c3a,n3o @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3m,p4=,c3a,c3a,n3m @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n2=,p4=,c3a,c3a,n2= @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,h1,p4=,c3a,c3a,h1 @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c4,p4=,c3a,c3a,c4 @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3prime,p4=,c3a,c3a,c3prime @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a @atom:*,p*,bp4=,ap4=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,si4,o2,c3a,c3a,si4 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,p4=,o2,c3a,c3a,p4= @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2h,o2,c3a,c3a,o2 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2e,o2,c3a,c3a,o2 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2,o2,c3a,c3a,o2 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3o,o2,c3a,c3a,n3o @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3m,o2,c3a,c3a,n3m @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n2=,o2,c3a,c3a,n2= @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,h1,o2,c3a,c3a,h1 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c4,o2,c3a,c3a,c4 @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3prime,o2,c3a,c3a,c3prime @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3a,o2,c3a,c3a,c3a @atom:*,p*,bo2h,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,si4,o2,c3a,c3a,si4 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,p4=,o2,c3a,c3a,p4= @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2h,o2,c3a,c3a,o2 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2e,o2,c3a,c3a,o2 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2,o2,c3a,c3a,o2 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3o,o2,c3a,c3a,n3o @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3m,o2,c3a,c3a,n3m @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n2=,o2,c3a,c3a,n2= @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,h1,o2,c3a,c3a,h1 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c4,o2,c3a,c3a,c4 @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3prime,o2,c3a,c3a,c3prime @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3a,o2,c3a,c3a,c3a @atom:*,p*,bo2e,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,si4,o2,c3a,c3a,si4 @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,p4=,o2,c3a,c3a,p4= @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2h,o2,c3a,c3a,o2 @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2e,o2,c3a,c3a,o2 @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2,o2,c3a,c3a,o2 @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3o,o2,c3a,c3a,n3o @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3m,o2,c3a,c3a,n3m @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n2=,o2,c3a,c3a,n2= @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,h1,o2,c3a,c3a,h1 @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c4,o2,c3a,c3a,c4 @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3prime,o2,c3a,c3a,c3prime @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a @atom:*,p*,bo2,ao2,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,si4,n3o,c3a,c3a,si4 @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,p4=,n3o,c3a,c3a,p4= @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2h,n3o,c3a,c3a,o2 @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2e,n3o,c3a,c3a,o2 @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2,n3o,c3a,c3a,o2 @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3o,n3o,c3a,c3a,n3o @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3m,n3o,c3a,c3a,n3m @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n2=,n3o,c3a,c3a,n2= @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,h1,n3o,c3a,c3a,h1 @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c4,n3o,c3a,c3a,c4 @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3prime,n3o,c3a,c3a,c3prime @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a @atom:*,p*,bn3o,an3o,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,si4,n3m,c3a,c3a,si4 @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,p4=,n3m,c3a,c3a,p4= @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2h,n3m,c3a,c3a,o2 @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2e,n3m,c3a,c3a,o2 @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2,n3m,c3a,c3a,o2 @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3o,n3m,c3a,c3a,n3o @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3m,n3m,c3a,c3a,n3m @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n2=,n3m,c3a,c3a,n2= @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,h1,n3m,c3a,c3a,h1 @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c4,n3m,c3a,c3a,c4 @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3prime,n3m,c3a,c3a,c3prime @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a @atom:*,p*,bn3m,an3m,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,si4,n2=,c3a,c3a,si4 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4= @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2h,n2=,c3a,c3a,o2 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2e,n2=,c3a,c3a,o2 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2,n2=,c3a,c3a,o2 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3o,n2=,c3a,c3a,n3o @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3m,n2=,c3a,c3a,n3m @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n2=,n2=,c3a,c3a,n2= @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,h1,n2=,c3a,c3a,h1 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c4,n2=,c3a,c3a,c4 @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3prime,n2=,c3a,c3a,c3prime @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3a,n2=,c3a,c3a,c3a @atom:*,p*,bn2=,an2=,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,si4,h1,c3a,c3a,si4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2,h1,c3a,c3a,o2 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n2=,h1,c3a,c3a,n2= @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,h1,h1,c3a,c3a,h1 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c4,h1,c3a,c3a,c4 @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3prime,h1,c3a,c3a,c3prime @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a @atom:*,p*,bh1,ah1,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,si4,c4,c3a,c3a,si4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,p4=,c4,c3a,c3a,p4= @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2h,c4,c3a,c3a,o2 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2e,c4,c3a,c3a,o2 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2,c4,c3a,c3a,o2 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3o,c4,c3a,c3a,n3o @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3m,c4,c3a,c3a,n3m @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n2=,c4,c3a,c3a,n2= @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,h1,c4,c3a,c3a,h1 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c4,c4,c3a,c3a,c4 @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3prime,c4,c3a,c3a,c3prime @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a @atom:*,p*,bc4,ac4,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,si4,c3prime,c3a,c3a,si4 @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,p4=,c3prime,c3a,c3a,p4= @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2h,c3prime,c3a,c3a,o2 @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2e,c3prime,c3a,c3a,o2 @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2,c3prime,c3a,c3a,o2 @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3o,c3prime,c3a,c3a,n3o @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n2=,c3prime,c3a,c3a,n2= @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c4,c3prime,c3a,c3a,c4 @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3prime,c3prime,c3a,c3a,c3prime @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a @atom:*,p*,bc3prime,ac3prime,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bsi4,asi4,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bp4=,ap4=,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3o,an3o,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn3m,an3m,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n2=,c3a,c3a,c3a,n2= @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bn2=,an2=,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3prime,ac3prime,d*,i* + @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a @atom:*,p*,bc3a,ac3a,d*,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,d*,i* + @dihedral:h1,c4,c4,h1,h1,c4,c4,h1,h1,c4,c4,h1 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,c4,c4,h1,c4,c4,c4,h1,c4,c4,c4,h1 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* + @dihedral:c3a,c4,c4,h1,c3a,c4,c4,h1,c3a,c4,c4,h1 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c3a,c3a,c4,c4,c3a,c3a,c4,c4,c3a,c3a,c4,c4 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc4,ac4,dc4,i* + @dihedral:c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,dc3a,i* + @dihedral:c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2,h1 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,do2,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,do2,i* + @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,do2,i* + @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2,h1,c3a,c3a,o2 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,do2,i* + @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2h,ao2,do2,i* + @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2e,ao2,do2,i* + @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bo2,ao2,do2,i* + @dihedral:c3a,c3a,c4,h1,c3a,c3a,c4,h1,c3a,c3a,c4,h1 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:h1,c3a,c3a,h1,h1,c3a,c3a,h1,h1,c3a,c3a,h1 @atom:*,p*,bh1,ah1,dh1,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c4,c3a,c3a,h1,c4,c3a,c3a,h1,c4,c3a,c3a,h1 @atom:*,p*,bc4,ac4,dc4,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c3a,c3a,c3a,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bh1,ah1,dh1,i* + @dihedral:c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc4,ac4,dc4,i* + @dihedral:c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* @atom:*,p*,bc3a,ac3a,dc3a,i* + @dihedral:c3prime,n3m,c3prime,o1,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dc3prime,i* @atom:*,p*,b*,a*,dn3m,i* @atom:*,p*,b*,a*,dc3prime,i* @atom:*,p*,b*,a*,do1,i* + @dihedral:c4,c4,n3o,o1=,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dc4,i* @atom:*,p*,b*,a*,dc4,i* @atom:*,p*,b*,a*,dn3o,i* @atom:*,p*,b*,a*,do1=,i* + @dihedral:X,n3,p4=,X,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,d*,i* @atom:*,p*,b*,a*,dn3,i* @atom:*,p*,b*,a*,dp4=,i* @atom:*,p*,b*,a*,d*,i* + @dihedral:X,c3a,n2=,X,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,d*,i* @atom:*,p*,b*,a*,dc3a,i* @atom:*,p*,b*,a*,dn2=,i* @atom:*,p*,b*,a*,d*,i* + @dihedral:X,o2,p4=,X,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,d*,i* @atom:*,p*,b*,a*,do2,i* @atom:*,p*,b*,a*,dp4=,i* @atom:*,p*,b*,a*,d*,i* + @dihedral:h1,o2,p4=,o2,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dh1,i* @atom:*,p*,b*,a*,do2,i* @atom:*,p*,b*,a*,dp4=,i* @atom:*,p*,b*,a*,do2,i* + @dihedral:h1,o2,p4=,n2=,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dh1,i* @atom:*,p*,b*,a*,do2,i* @atom:*,p*,b*,a*,dp4=,i* @atom:*,p*,b*,a*,dn2=,i* + @dihedral:h1,o2,p4=,h1,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dh1,i* @atom:*,p*,b*,a*,do2,i* @atom:*,p*,b*,a*,dp4=,i* @atom:*,p*,b*,a*,dh1,i* + @dihedral:h1,n3,p4=,o2,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dh1,i* @atom:*,p*,b*,a*,dn3,i* @atom:*,p*,b*,a*,dp4=,i* @atom:*,p*,b*,a*,do2,i* + @dihedral:h1,n3,p4=,n2=,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dh1,i* @atom:*,p*,b*,a*,dn3,i* @atom:*,p*,b*,a*,dp4=,i* @atom:*,p*,b*,a*,dn2=,i* + @dihedral:h1,n3,p4=,h1,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dh1,i* @atom:*,p*,b*,a*,dn3,i* @atom:*,p*,b*,a*,dp4=,i* @atom:*,p*,b*,a*,dh1,i* + @dihedral:h1,o2z,si4,o2z,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dh1,i* @atom:*,p*,b*,a*,do2z,i* @atom:*,p*,b*,a*,dsi4,i* @atom:*,p*,b*,a*,do2z,i* + @dihedral:h1,o2z,si4,h1,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dh1,i* @atom:*,p*,b*,a*,do2z,i* @atom:*,p*,b*,a*,dsi4,i* @atom:*,p*,b*,a*,dh1,i* + @dihedral:c4,si4,o2z,h1,X,X,X,X,X,X,X,X @atom:*,p*,b*,a*,dc4,i* @atom:*,p*,b*,a*,dsi4,i* @atom:*,p*,b*,a*,do2z,i* @atom:*,p*,b*,a*,dh1,i* + } # end of "Data Dihedrals By Type" section + + + + # ------- Dihedral Force Field Parameters: ------- + # For an explanation of these parameters, visit: + # http://lammps.sandia.gov/doc/dihedral_class2.html + + # Syntax: + # dihedral_coeff DihedralTypeName DihedralStyle parameters... + + + write_once("In Settings") { + dihedral_coeff @dihedral:h1,si4,si4,si4,h1,si4,si4,si4,h1,si4,si4,si4 class2 0.0 0.0 0.0 0.0 0.0 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,si4,h1,si4,si4,si4,h1,si4,si4,si4 class2 mbt 0.0 0.0 0.0 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,si4,h1,si4,si4,si4,h1,si4,si4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4783 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,si4,h1,si4,si4,si4,h1,si4,si4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0893 114.2676 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,si4,h1,si4,si4,si4,h1,si4,si4,si4 class2 aat -12.2900 112.0893 114.2676 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,si4,h1,si4,si4,si4,h1,si4,si4,si4 class2 bb13 0.0 1.4783 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,c4,h1,h1,si4,c4,h1,h1,si4,c4,h1 class2 0.0 0.0 0.0 0.0 0.0 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,c4,h1,h1,si4,c4,h1,h1,si4,c4,h1 class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,c4,h1,h1,si4,c4,h1,h1,si4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4783 1.1010 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,c4,h1,h1,si4,c4,h1,h1,si4,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0977 112.0355 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,c4,h1,h1,si4,c4,h1,h1,si4,c4,h1 class2 aat -12.9341 112.0977 112.0355 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,c4,h1,h1,si4,c4,h1,h1,si4,c4,h1 class2 bb13 0.0 1.4783 1.1010 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,c4,h1,c4,si4,c4,h1,c4,si4,c4,h1 class2 0.0 0.0 0.0 0.0 0.0 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,c4,h1,c4,si4,c4,h1,c4,si4,c4,h1 class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,c4,h1,c4,si4,c4,h1,c4,si4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.1010 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,c4,h1,c4,si4,c4,h1,c4,si4,c4,h1 class2 at 0.4272 0.0000 0.0000 0.3382 0.0000 0.0000 113.1855 112.0355 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,c4,h1,c4,si4,c4,h1,c4,si4,c4,h1 class2 aat -17.5802 113.1855 112.0355 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,c4,h1,c4,si4,c4,h1,c4,si4,c4,h1 class2 bb13 0.0 1.8995 1.1010 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,h1,h1,si4,si4,h1,h1,si4,si4,h1 class2 0.0 0.0 0.0 0.0 0.0 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,h1,h1,si4,si4,h1,h1,si4,si4,h1 class2 mbt 0.0000 0.0000 -0.6302 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,h1,h1,si4,si4,h1,h1,si4,si4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4783 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,h1,h1,si4,si4,h1,h1,si4,si4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0893 112.0893 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,h1,h1,si4,si4,h1,h1,si4,si4,h1 class2 aat -10.8232 112.0893 112.0893 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,si4,si4,h1,h1,si4,si4,h1,h1,si4,si4,h1 class2 bb13 0.0 1.4783 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4,h1 class2 0.0 0.0 0.0 0.0 0.0 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4,h1 class2 mbt 0.0000 0.0000 -0.6941 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 113.0000 112.0893 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4,h1 class2 aat -16.9141 113.0000 112.0893 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4,h1 class2 bb13 0.0 1.8995 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4 class2 0.0 0.0 0.0 0.0 0.0 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4 class2 mbt 0.0000 0.0000 -0.1909 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0355 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4 class2 aat -13.3679 112.0355 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,si4,h1,c4,si4,si4,h1,c4,si4,si4 class2 bb13 0.0 1.1010 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,h1,h1,c4,si4,h1,h1,c4,si4,h1 class2 0.0 0.0 0.0 0.0 0.0 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,h1,h1,c4,si4,h1,h1,c4,si4,h1 class2 mbt 0.0000 0.0000 -0.5906 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,h1,h1,c4,si4,h1,h1,c4,si4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,h1,h1,c4,si4,h1,h1,c4,si4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0355 112.0977 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,h1,h1,c4,si4,h1,h1,c4,si4,h1 class2 aat 0.0 112.0355 112.0977 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,si4,h1,h1,c4,si4,h1,h1,c4,si4,h1 class2 bb13 0.0 1.1010 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1 class2 0.0 0.0 0.0 0.0 0.0 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1 class2 mbt 0.0000 0.0000 -0.3146 1.8634 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1 class2 at 0.0000 0.0000 -0.2779 0.0000 0.0000 -0.1932 120.0000 109.5932 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1 class2 aat 0.0 120.0000 109.5932 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1 class2 bb13 0.0 1.4170 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4 class2 0.0 0.0 0.0 0.0 0.0 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4 class2 mbt 1.3445 3.5515 -4.9202 1.3750 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4 class2 ebt 0.1928 1.3187 0.8599 0.0004 -1.0975 0.4831 1.5140 1.4200 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4 class2 at 0.9701 -2.5169 1.7195 0.8831 -0.8203 0.2405 100.3182 109.0000 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4 class2 aat -12.2070 100.3182 109.0000 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4 class2 bb13 0.0 1.5140 1.4200 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1= class2 0.0 0.0 0.0 0.0 0.0 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1= class2 mbt -0.1118 -1.1990 0.6784 1.3850 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1= class2 ebt 0.1726 -0.4823 0.2666 -0.7019 0.8305 -0.6874 1.3850 1.2160 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1= class2 at -0.3188 -0.0548 -0.3038 -0.2851 2.3997 -1.5747 121.9556 121.5420 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1= class2 aat -3.3556 121.9556 121.5420 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1=,c3prime,n3m,c3prime,o1= class2 bb13 0.0 1.3850 1.2160 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,si4,si4,si4,si4,si4 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,si4,si4,si4,si4,si4 class2 mbt 0.0 0.0 0.0 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,si4,si4,si4,si4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 2.3384 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,si4,si4,si4,si4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 114.2676 114.2676 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,si4,si4,si4,si4,si4 class2 aat 0.0 114.2676 114.2676 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,si4,si4,si4,si4,si4 class2 bb13 0.0 2.3384 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,h1,si4,si4,si4,h1 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,h1,si4,si4,si4,h1 class2 mbt 0.0 0.0 0.0 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,h1,si4,si4,si4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 2.3384 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,h1,si4,si4,si4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 114.2676 112.0893 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,h1,si4,si4,si4,h1 class2 aat 0.0 114.2676 112.0893 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,h1,si4,si4,si4,h1 class2 bb13 0.0 2.3384 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,c4,si4,si4,si4,c4 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,c4,si4,si4,si4,c4 class2 mbt 0.0 0.0 0.0 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,c4,si4,si4,si4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 2.3384 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,c4,si4,si4,si4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 114.2676 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,c4,si4,si4,si4,c4 class2 aat 0.0 114.2676 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,si4,si4,si4,c4,si4,si4,si4,c4 class2 bb13 0.0 2.3384 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,si4,h1,si4,si4,si4 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,si4,h1,si4,si4,si4 class2 mbt 0.0 0.0 0.0 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,si4,h1,si4,si4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4783 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,si4,h1,si4,si4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0893 114.2676 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,si4,h1,si4,si4,si4 class2 aat 0.0 112.0893 114.2676 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,si4,h1,si4,si4,si4 class2 bb13 0.0 1.4783 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,h1,h1,si4,si4,h1 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,h1,h1,si4,si4,h1 class2 mbt 0.0 0.0 0.0 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,h1,h1,si4,si4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4783 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,h1,h1,si4,si4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0893 112.0893 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,h1,h1,si4,si4,h1 class2 aat 0.0 112.0893 112.0893 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,h1,h1,si4,si4,h1 class2 bb13 0.0 1.4783 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,c4,h1,si4,si4,c4 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,c4,h1,si4,si4,c4 class2 mbt 0.0 0.0 0.0 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,c4,h1,si4,si4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4783 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,c4,h1,si4,si4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0893 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,c4,h1,si4,si4,c4 class2 aat 0.0 112.0893 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,h1,si4,si4,c4,h1,si4,si4,c4 class2 bb13 0.0 1.4783 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,si4,c4,si4,si4,si4 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,si4,c4,si4,si4,si4 class2 mbt 0.0 0.0 0.0 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,si4,c4,si4,si4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,si4,c4,si4,si4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 113.0000 114.2676 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,si4,c4,si4,si4,si4 class2 aat 0.0 113.0000 114.2676 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,si4,c4,si4,si4,si4 class2 bb13 0.0 1.8995 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,h1,c4,si4,si4,h1 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,h1,c4,si4,si4,h1 class2 mbt 0.0 0.0 0.0 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,h1,c4,si4,si4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,h1,c4,si4,si4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 113.0000 112.0893 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,h1,c4,si4,si4,h1 class2 aat 0.0 113.0000 112.0893 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,h1,c4,si4,si4,h1 class2 bb13 0.0 1.8995 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,c4,c4,si4,si4,c4 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,c4,c4,si4,si4,c4 class2 mbt 0.0 0.0 0.0 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,c4,c4,si4,si4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,c4,c4,si4,si4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 113.0000 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,c4,c4,si4,si4,c4 class2 aat 0.0 113.0000 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,si4,X,c4,si4,si4,c4,c4,si4,si4,c4 class2 bb13 0.0 1.8995 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,si4,h1,c4,si4,si4 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,si4,h1,c4,si4,si4 class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,si4,h1,c4,si4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,si4,h1,c4,si4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0355 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,si4,h1,c4,si4,si4 class2 aat 0.0 112.0355 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,si4,h1,c4,si4,si4 class2 bb13 0.0 1.1010 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,o2z,h1,c4,si4,o2z class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,o2z,h1,c4,si4,o2z class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,o2z,h1,c4,si4,o2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.6400 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,o2z,h1,c4,si4,o2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0355 114.9060 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,o2z,h1,c4,si4,o2z class2 aat 0.0 112.0355 114.9060 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,o2z,h1,c4,si4,o2z class2 bb13 0.0 1.1010 1.6400 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,h1,h1,c4,si4,h1 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,h1,h1,c4,si4,h1 class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,h1,h1,c4,si4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,h1,h1,c4,si4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0355 112.0977 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,h1,h1,c4,si4,h1 class2 aat 0.0 112.0355 112.0977 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,h1,h1,c4,si4,h1 class2 bb13 0.0 1.1010 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,c4,h1,c4,si4,c4 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,c4,h1,c4,si4,c4 class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,c4,h1,c4,si4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,c4,h1,c4,si4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.0355 113.1855 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,c4,h1,c4,si4,c4 class2 aat 0.0 112.0355 113.1855 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,h1,c4,si4,c4,h1,c4,si4,c4 class2 bb13 0.0 1.1010 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,si4,c4,c4,si4,si4 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,si4,c4,c4,si4,si4 class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,si4,c4,c4,si4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,si4,c4,c4,si4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,si4,c4,c4,si4,si4 class2 aat 0.0 112.6700 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,si4,c4,c4,si4,si4 class2 bb13 0.0 1.5300 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,o2z,c4,c4,si4,o2z class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,o2z,c4,c4,si4,o2z class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,o2z,c4,c4,si4,o2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.6400 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,o2z,c4,c4,si4,o2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 114.9060 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,o2z,c4,c4,si4,o2z class2 aat 0.0 112.6700 114.9060 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,o2z,c4,c4,si4,o2z class2 bb13 0.0 1.5300 1.6400 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,h1,c4,c4,si4,h1 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,h1,c4,c4,si4,h1 class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,h1,c4,c4,si4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,h1,c4,c4,si4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 112.0977 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,h1,c4,c4,si4,h1 class2 aat 0.0 112.6700 112.0977 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,h1,c4,c4,si4,h1 class2 bb13 0.0 1.5300 1.4783 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,c4,c4,c4,si4,c4 class2 0.0000 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,c4,c4,c4,si4,c4 class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,c4,c4,c4,si4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,c4,c4,c4,si4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 113.1855 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,c4,c4,c4,si4,c4 class2 aat 0.0 112.6700 113.1855 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,c4,si4,X,c4,c4,si4,c4,c4,c4,si4,c4 class2 bb13 0.0 1.5300 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,c4,si4,si4,c4,c4,si4,si4,c4,c4,si4,si4 class2 -0.3500 0.0 0.0000 0.0 -0.0657 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,c4,si4,si4,c4,c4,si4,si4,c4,c4,si4,si4 class2 mbt 0.0 0.0 0.0 1.8995 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,c4,si4,si4,c4,c4,si4,si4,c4,c4,si4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,c4,si4,si4,c4,c4,si4,si4,c4,c4,si4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,c4,si4,si4,c4,c4,si4,si4,c4,c4,si4,si4 class2 aat 0.0 112.6700 113.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c4,c4,si4,si4,c4,c4,si4,si4,c4,c4,si4,si4 class2 bb13 0.0 1.5300 2.3384 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,o2z,si4,c3a,c3a,o2z,si4,c3a,c3a class2 0.0000 0.0 0.0000 0.0 -0.0231 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,o2z,si4,c3a,c3a,o2z,si4,c3a,c3a class2 mbt 0.0 0.0 0.0 1.8634 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,o2z,si4,c3a,c3a,o2z,si4,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.6400 1.4170 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,o2z,si4,c3a,c3a,o2z,si4,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 114.9060 120.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,o2z,si4,c3a,c3a,o2z,si4,c3a,c3a class2 aat 0.0 114.9060 120.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,o2z,si4,c3a,c3a,o2z,si4,c3a,c3a class2 bb13 0.0 1.6400 1.4170 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,h1,si4,c3a,c3a,h1,si4,c3a,c3a class2 0.0000 0.0 0.0000 0.0 -0.0231 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,h1,si4,c3a,c3a,h1,si4,c3a,c3a class2 mbt 0.0 0.0 0.0 1.8634 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,h1,si4,c3a,c3a,h1,si4,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4783 1.4170 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,h1,si4,c3a,c3a,h1,si4,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 109.5932 120.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,h1,si4,c3a,c3a,h1,si4,c3a,c3a class2 aat 0.0 109.5932 120.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:X,si4,c3a,c3a,h1,si4,c3a,c3a,h1,si4,c3a,c3a class2 bb13 0.0 1.4783 1.4170 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 0.0000 0.0 1.5093 0.0 0.0000 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 mbt 0.0000 6.2168 0.0000 1.4170 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.8634 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 at 0.0000 4.5914 0.0000 0.0000 1.1079 0.0000 117.9400 120.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 aat 0.0 117.9400 120.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c3a,c3a,si4,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 bb13 0.0 1.0982 1.8634 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,c3a,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 0.0000 0.0 4.3270 0.0 0.0000 0.0 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,c3a,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 mbt 0.0000 11.1576 0.0000 1.4170 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,c3a,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.8634 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,c3a,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 at 0.0000 -5.5448 0.0000 0.0000 4.3281 0.0000 118.9000 120.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,c3a,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 aat 0.0 118.9000 120.0000 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:c3a,c3a,c3a,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 bb13 0.0 1.4170 1.8634 # (ver=1.0, ref=10) + dihedral_coeff @dihedral:h1,c4,c4,n2z,h1,c4,c4,n2z,h1,c4,c4,n2z class2 0.0000 0.0 0.0000 0.0 -0.2259 0.0 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,c4,n2z,h1,c4,c4,n2z,h1,c4,c4,n2z class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,c4,n2z,h1,c4,c4,n2z,h1,c4,c4,n2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4814 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,c4,n2z,h1,c4,c4,n2z,h1,c4,c4,n2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7700 110.9900 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,c4,n2z,h1,c4,c4,n2z,h1,c4,c4,n2z class2 aat 0.0 110.7700 110.9900 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,c4,n2z,h1,c4,c4,n2z,h1,c4,c4,n2z class2 bb13 0.0 1.1010 1.4814 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,c4,n2z,n2t,c4,c4,n2z,n2t,c4,c4,n2z,n2t class2 0.0000 0.0 0.0000 0.0 -0.2021 0.0 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,c4,n2z,n2t,c4,c4,n2z,n2t,c4,c4,n2z,n2t class2 mbt 0.0 0.0 0.0 1.4814 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,c4,n2z,n2t,c4,c4,n2z,n2t,c4,c4,n2z,n2t class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.2343 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,c4,n2z,n2t,c4,c4,n2z,n2t,c4,c4,n2z,n2t class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.9900 113.5017 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,c4,n2z,n2t,c4,c4,n2z,n2t,c4,c4,n2z,n2t class2 aat 0.0 110.9900 113.5017 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,c4,n2z,n2t,c4,c4,n2z,n2t,c4,c4,n2z,n2t class2 bb13 0.0 1.5300 1.2343 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,n2z,n2t,h1,c4,n2z,n2t,h1,c4,n2z,n2t class2 0.0000 0.0 0.0000 0.0 -0.2181 0.0 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,n2z,n2t,h1,c4,n2z,n2t,h1,c4,n2z,n2t class2 mbt 0.0 0.0 0.0 1.4814 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,n2z,n2t,h1,c4,n2z,n2t,h1,c4,n2z,n2t class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.2343 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,n2z,n2t,h1,c4,n2z,n2t,h1,c4,n2z,n2t class2 at 0.0 0.0 0.0 0.0 0.0 0.0 107.9744 113.5017 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,n2z,n2t,h1,c4,n2z,n2t,h1,c4,n2z,n2t class2 aat 0.0 107.9744 113.5017 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c4,n2z,n2t,h1,c4,n2z,n2t,h1,c4,n2z,n2t class2 bb13 0.0 1.1010 1.2343 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,n2z,n2t,n1t,c4,n2z,n2t,n1t,c4,n2z,n2t,n1t class2 0.0000 0.0 0.0000 0.0 -0.1823 0.0 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,n2z,n2t,n1t,c4,n2z,n2t,n1t,c4,n2z,n2t,n1t class2 mbt 0.0 0.0 0.0 1.2343 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,n2z,n2t,n1t,c4,n2z,n2t,n1t,c4,n2z,n2t,n1t class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4814 1.1354 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,n2z,n2t,n1t,c4,n2z,n2t,n1t,c4,n2z,n2t,n1t class2 at 0.0 0.0 0.0 0.0 0.0 0.0 113.5017 171.6211 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,n2z,n2t,n1t,c4,n2z,n2t,n1t,c4,n2z,n2t,n1t class2 aat 0.0 113.5017 171.6211 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:c4,n2z,n2t,n1t,c4,n2z,n2t,n1t,c4,n2z,n2t,n1t class2 bb13 0.0 1.4814 1.1354 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,n2z,n2t,n1t,h1,n2z,n2t,n1t,h1,n2z,n2t,n1t class2 0.0000 0.0 0.0000 0.0 -0.2637 0.0 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,n2z,n2t,n1t,h1,n2z,n2t,n1t,h1,n2z,n2t,n1t class2 mbt 0.0 0.0 0.0 1.2343 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,n2z,n2t,n1t,h1,n2z,n2t,n1t,h1,n2z,n2t,n1t class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0221 1.1354 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,n2z,n2t,n1t,h1,n2z,n2t,n1t,h1,n2z,n2t,n1t class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.0345 171.6211 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,n2z,n2t,n1t,h1,n2z,n2t,n1t,h1,n2z,n2t,n1t class2 aat 0.0 110.0345 171.6211 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,n2z,n2t,n1t,h1,n2z,n2t,n1t,h1,n2z,n2t,n1t class2 bb13 0.0 1.0221 1.1354 # (ver=1.0, ref=9) + dihedral_coeff @dihedral:h1,c3a,c3a,n3m,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 0.0000 0.0 3.4040 0.0 0.0000 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c3a,c3a,n3m,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 mbt 0.0000 5.2012 0.0000 1.4170 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c3a,c3a,n3m,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.3950 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c3a,c3a,n3m,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 120.7640 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c3a,c3a,n3m,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 aat 0.0 117.9400 120.7640 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c3a,c3a,n3m,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 bb13 0.0 1.0982 1.3950 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o2,h1,c4,c3prime,o2e,h1,c4,c3prime,o2 class2 0.0000 0.0 0.0000 0.0 0.0000 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o2,h1,c4,c3prime,o2e,h1,c4,c3prime,o2 class2 mbt -13.7686 -2.5959 1.1934 1.5140 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o2,h1,c4,c3prime,o2e,h1,c4,c3prime,o2 class2 ebt 0.7800 1.3339 0.3268 0.4160 -0.1140 0.7099 1.1010 1.3750 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o2,h1,c4,c3prime,o2e,h1,c4,c3prime,o2 class2 at -0.0071 0.8005 13.2959 0.1212 1.4427 -0.0241 107.8594 100.3182 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o2,h1,c4,c3prime,o2e,h1,c4,c3prime,o2 class2 aat -13.9734 107.8594 100.3182 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o2,h1,c4,c3prime,o2e,h1,c4,c3prime,o2 class2 bb13 0.0 1.1010 1.3750 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o1=,h1,c4,c3prime,o1=,h1,c4,c3prime,o1= class2 0.0000 0.0 0.0000 0.0 0.0000 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o1=,h1,c4,c3prime,o1=,h1,c4,c3prime,o1= class2 mbt 0.0000 0.0000 -1.0000 1.5140 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o1=,h1,c4,c3prime,o1=,h1,c4,c3prime,o1= class2 ebt 2.9036 0.5307 0.1439 0.0536 0.0354 0.3853 1.1010 1.2160 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o1=,h1,c4,c3prime,o1=,h1,c4,c3prime,o1= class2 at 0.0800 0.3339 14.4728 -0.2083 0.7308 -2.0667 107.8594 119.3000 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o1=,h1,c4,c3prime,o1=,h1,c4,c3prime,o1= class2 aat -23.1923 107.8594 119.3000 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:h1,c4,c3prime,o1=,h1,c4,c3prime,o1=,h1,c4,c3prime,o1= class2 bb13 0.0 1.1010 1.2160 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,o1=,c4,o2e,c3prime,o1=,c4,o2,c3prime,o1= class2 0.8905 0.0 3.2644 0.0 0.2646 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,o1=,c4,o2e,c3prime,o1=,c4,o2,c3prime,o1= class2 mbt 0.4552 7.3091 0.2842 1.3750 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,o1=,c4,o2e,c3prime,o1=,c4,o2,c3prime,o1= class2 ebt 0.0882 -2.4309 -0.7426 -4.2421 10.1102 1.6824 1.4200 1.2160 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,o1=,c4,o2e,c3prime,o1=,c4,o2,c3prime,o1= class2 at -0.0327 1.0059 2.3573 1.9052 2.7261 5.9732 109.0000 118.9855 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,o1=,c4,o2e,c3prime,o1=,c4,o2,c3prime,o1= class2 aat -32.9368 109.0000 118.9855 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,o1=,c4,o2e,c3prime,o1=,c4,o2,c3prime,o1= class2 bb13 0.0 1.4200 1.2160 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,c4,c4,o2e,c3prime,c4,c4,o2,c3prime,c4 class2 -2.5594 0.0 2.2013 0.0 0.0325 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,c4,c4,o2e,c3prime,c4,c4,o2,c3prime,c4 class2 mbt 0.0 0.0 0.0 1.3750 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,c4,c4,o2e,c3prime,c4,c4,o2,c3prime,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.5140 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,c4,c4,o2e,c3prime,c4,c4,o2,c3prime,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 109.0000 100.3182 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,c4,c4,o2e,c3prime,c4,c4,o2,c3prime,c4 class2 aat 0.0 109.0000 100.3182 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,c3prime,c4,c4,o2e,c3prime,c4,c4,o2,c3prime,c4 class2 bb13 0.0 1.4200 1.5140 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1= class2 0.0000 0.0 2.0521 0.0 0.0000 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1= class2 mbt 0.0 0.0 0.0 1.3850 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.2160 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0700 121.5420 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1= class2 aat 0.0 120.0700 121.5420 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1=,c3a,n3m,c3prime,o1= class2 bb13 0.0 1.3950 1.2160 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 0.0000 0.0 3.4040 0.0 0.0000 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 mbt 0.0000 5.2012 0.0000 1.4170 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.3950 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 120.7640 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 aat 0.0 118.9000 120.7640 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 bb13 0.0 1.4170 1.3950 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1= class2 0.0000 0.0 0.7800 0.0 0.0000 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1= class2 mbt 0.0000 2.4002 0.0000 1.4890 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.2160 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 125.5320 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1= class2 aat 0.0 116.0640 125.5320 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1=,c3a,c3a,c3prime,o1= class2 bb13 0.0 1.4170 1.2160 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,h1,c3prime,o2e,c4,h1,c3prime,o2,c4,h1 class2 0.9513 0.0 0.1155 0.0 0.0000 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,h1,c3prime,o2e,c4,h1,c3prime,o2,c4,h1 class2 mbt 7.7147 4.2557 -1.0118 1.4200 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,h1,c3prime,o2e,c4,h1,c3prime,o2,c4,h1 class2 ebt 0.2282 2.2998 -0.4473 0.9589 0.9190 -0.6015 1.3750 1.1010 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,h1,c3prime,o2e,c4,h1,c3prime,o2,c4,h1 class2 at 0.0971 -0.8699 -0.3142 -0.0401 2.8061 -0.4990 109.0000 108.7280 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,h1,c3prime,o2e,c4,h1,c3prime,o2,c4,h1 class2 aat -13.1500 109.0000 108.7280 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,h1,c3prime,o2e,c4,h1,c3prime,o2,c4,h1 class2 bb13 0.0 1.3750 1.1010 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4,c4 class2 0.1302 0.0 -0.3250 0.0 0.1134 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4,c4 class2 mbt 9.9416 2.6421 2.2333 1.4200 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4,c4 class2 ebt 0.2560 0.8133 -0.0728 -1.2164 -0.1715 -0.0964 1.3750 1.5300 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4,c4 class2 at 0.7229 -0.9159 -0.0890 -0.6765 1.4492 -0.4620 109.0000 111.2700 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4,c4 class2 aat -15.7082 109.0000 111.2700 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,o2,c4,c4,c3prime,o2e,c4,c4,c3prime,o2,c4,c4 class2 bb13 0.0 1.3750 1.5300 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime class2 0.0000 0.0 0.6500 0.0 0.0000 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime class2 mbt 0.0 0.0 0.0 1.3950 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.3850 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 120.0700 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime class2 aat 0.0 120.7640 120.0700 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m,c3prime class2 bb13 0.0 1.4170 1.3850 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 0.0000 0.0 2.1670 0.0 0.0000 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.0982 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 117.9400 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 aat 0.0 116.0640 117.9400 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 bb13 0.0 1.4890 1.0982 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 0.0000 0.0 4.6282 0.0 0.0000 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 mbt 0.0000 3.8762 0.0000 1.4170 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4890 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 116.0640 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 aat 0.0 118.9000 116.0640 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 bb13 0.0 1.4170 1.4890 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,o2,n3o,o1=,c4,o2n,n3o,o1=,c4,o2n,n3o,o1= class2 0.0000 0.0 2.0000 0.0 0.0000 0.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,o2,n3o,o1=,c4,o2n,n3o,o1=,c4,o2n,n3o,o1= class2 mbt 0.0 0.0 0.0 1.4020 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,o2,n3o,o1=,c4,o2n,n3o,o1=,c4,o2n,n3o,o1= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4350 1.2100 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,o2,n3o,o1=,c4,o2n,n3o,o1=,c4,o2n,n3o,o1= class2 at 0.0000 0.0000 0.0000 0.0000 0.0000 -3.0000 108.5000 112.8000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,o2,n3o,o1=,c4,o2n,n3o,o1=,c4,o2n,n3o,o1= class2 aat 0.0 108.5000 112.8000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,o2,n3o,o1=,c4,o2n,n3o,o1=,c4,o2n,n3o,o1= class2 bb13 0.0 1.4350 1.2100 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,o2,n3o,c4,c4,o2n,n3o,c4,c4,o2n,n3o class2 0.0000 0.0 -0.4000 0.0 -0.2000 0.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,o2,n3o,c4,c4,o2n,n3o,c4,c4,o2n,n3o class2 mbt 0.0 0.0 0.0 1.4350 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,o2,n3o,c4,c4,o2n,n3o,c4,c4,o2n,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.4020 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,o2,n3o,c4,c4,o2n,n3o,c4,c4,o2n,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 105.0000 108.5000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,o2,n3o,c4,c4,o2n,n3o,c4,c4,o2n,n3o class2 aat 0.0 105.0000 108.5000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,o2,n3o,c4,c4,o2n,n3o,c4,c4,o2n,n3o class2 bb13 0.0 1.5300 1.4020 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c4,n3o,o1=,h1,c4,n3o,o1=,h1,c4,n3o,o1= class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c4,n3o,o1=,h1,c4,n3o,o1=,h1,c4,n3o,o1= class2 mbt 0.0 0.0 0.0 1.4740 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c4,n3o,o1=,h1,c4,n3o,o1=,h1,c4,n3o,o1= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.2100 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c4,n3o,o1=,h1,c4,n3o,o1=,h1,c4,n3o,o1= class2 at 0.0000 -0.3086 0.0000 0.0000 1.0352 0.0000 107.0000 117.5000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c4,n3o,o1=,h1,c4,n3o,o1=,h1,c4,n3o,o1= class2 aat -16.2615 107.0000 117.5000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c4,n3o,o1=,h1,c4,n3o,o1=,h1,c4,n3o,o1= class2 bb13 0.0 1.1010 1.2100 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1= class2 0.0000 0.0 1.1600 0.0 0.0000 0.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1= class2 mbt 0.0 0.0 0.0 1.4300 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.2100 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1= class2 at 0.0000 0.0000 0.0000 0.0000 -3.4207 0.0000 118.8000 117.7000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1= class2 aat -18.0436 118.8000 117.7000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1=,c3a,c3a,n3o,o1= class2 bb13 0.0 1.4170 1.2100 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c3a,c3a,n3o,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 0.0000 0.0 2.9126 0.0 0.0000 0.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c3a,c3a,n3o,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c3a,c3a,n3o,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.4300 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c3a,c3a,n3o,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 at 0.0000 -8.0369 0.0000 0.0000 0.0000 0.0000 117.9400 118.8000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c3a,c3a,n3o,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 aat 2.1508 117.9400 118.8000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:h1,c3a,c3a,n3o,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 bb13 0.0 1.0982 1.4300 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 0.0000 0.0 7.2124 0.0 0.0000 0.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4300 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 at 0.0000 7.7594 0.0000 0.0000 0.0000 0.0000 118.9000 118.8000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 aat -34.9681 118.9000 118.8000 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 bb13 0.0 1.4170 1.4300 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,o2,p4=,n2=,p4=,o2 class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,o2,p4=,n2=,p4=,o2 class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,o2,p4=,n2=,p4=,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5980 1.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,o2,p4=,n2=,p4=,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 135.0000 112.2150 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,o2,p4=,n2=,p4=,o2 class2 aat 0.0 135.0000 112.2150 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,o2,p4=,n2=,p4=,o2 class2 bb13 0.0 1.5980 1.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2= class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2= class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5980 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 135.0000 125.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2= class2 aat 0.0 135.0000 125.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2= class2 bb13 0.0 1.5980 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1 class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1 class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5980 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 135.0000 110.0330 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1 class2 aat 0.0 135.0000 110.0330 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1 class2 bb13 0.0 1.5980 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c4,p4=,n2=,p4=,c4 class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c4,p4=,n2=,p4=,c4 class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c4,p4=,n2=,p4=,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5980 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c4,p4=,n2=,p4=,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 135.0000 119.3000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c4,p4=,n2=,p4=,c4 class2 aat 0.0 135.0000 119.3000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c4,p4=,n2=,p4=,c4 class2 bb13 0.0 1.5980 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c3a,p4=,n2=,p4=,c3a class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c3a,p4=,n2=,p4=,c3a class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c3a,p4=,n2=,p4=,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5980 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c3a,p4=,n2=,p4=,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 135.0000 109.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c3a,p4=,n2=,p4=,c3a class2 aat 0.0 135.0000 109.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,p4=,n2=,p4=,c3a,p4=,n2=,p4=,c3a class2 bb13 0.0 1.5980 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0310 1.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 112.2150 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 aat 0.0 120.0000 112.2150 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 bb13 0.0 1.0310 1.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,n2=,h1,n2=,p4=,n2= class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,n2=,h1,n2=,p4=,n2= class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,n2=,h1,n2=,p4=,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0310 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,n2=,h1,n2=,p4=,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 125.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,n2=,h1,n2=,p4=,n2= class2 aat 0.0 120.0000 125.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,n2=,h1,n2=,p4=,n2= class2 bb13 0.0 1.0310 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0310 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 110.0330 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 aat 0.0 120.0000 110.0330 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 bb13 0.0 1.0310 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c4,h1,n2=,p4=,c4 class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c4,h1,n2=,p4=,c4 class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c4,h1,n2=,p4=,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0310 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c4,h1,n2=,p4=,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 119.3000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c4,h1,n2=,p4=,c4 class2 aat 0.0 120.0000 119.3000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c4,h1,n2=,p4=,c4 class2 bb13 0.0 1.0310 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c3a,h1,n2=,p4=,c3a class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c3a,h1,n2=,p4=,c3a class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c3a,h1,n2=,p4=,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0310 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c3a,h1,n2=,p4=,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 109.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c3a,h1,n2=,p4=,c3a class2 aat 0.0 120.0000 109.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n2=,p4=,X,h1,n2=,p4=,c3a,h1,n2=,p4=,c3a class2 bb13 0.0 1.0310 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 0.0000 0.0 0.0000 0.0 -0.0680 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 mbt 0.0 0.0 0.0 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.8860 119.3000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 aat 0.0 110.8860 119.3000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 bb13 0.0 1.1010 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 0.0000 0.0 0.0000 0.0 -0.0680 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 mbt 0.0 0.0 0.0 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.8860 102.9000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 aat 0.0 110.8860 102.9000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 bb13 0.0 1.1010 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,c4,h1,c4,p4=,c4 class2 0.0000 0.0 0.0000 0.0 -0.0680 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,c4,h1,c4,p4=,c4 class2 mbt 0.0 0.0 0.0 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,c4,h1,c4,p4=,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,c4,h1,c4,p4=,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.8860 102.5000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,c4,h1,c4,p4=,c4 class2 aat 0.0 110.8860 102.5000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,p4=,X,h1,c4,p4=,c4,h1,c4,p4=,c4 class2 bb13 0.0 1.1010 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 0.0000 0.0 0.0000 0.0 -0.0200 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 mbt 0.0 0.0 0.0 1.4740 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 107.4990 117.2000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 aat 0.0 107.4990 117.2000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 bb13 0.0 1.1010 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 0.0000 0.0 0.0000 0.0 -0.0200 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 mbt 0.0 0.0 0.0 1.4740 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.3170 117.2000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 aat 0.0 117.3170 117.2000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c4,n2=,X,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 bb13 0.0 1.5300 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,o2,c3a,c3a,p4=,o2 class2 -0.2720 0.0 1.1900 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,o2,c3a,c3a,p4=,o2 class2 mbt 0.0 0.0 0.0 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,o2,c3a,c3a,p4=,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,o2,c3a,c3a,p4=,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 107.3650 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,o2,c3a,c3a,p4=,o2 class2 aat 0.0 120.0010 107.3650 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,o2,c3a,c3a,p4=,o2 class2 bb13 0.0 1.4170 1.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 -0.2720 0.0 1.1900 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 mbt 0.0 0.0 0.0 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 109.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 aat 0.0 120.0010 109.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 bb13 0.0 1.4170 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 -0.2720 0.0 1.1900 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 mbt 0.0 0.0 0.0 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 108.2310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 aat 0.0 120.0010 108.2310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 bb13 0.0 1.4170 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a class2 -0.2720 0.0 1.1900 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a class2 mbt 0.0 0.0 0.0 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 110.2310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a class2 aat 0.0 120.0010 110.2310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,p4=,X,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a class2 bb13 0.0 1.4170 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4= class2 1.8000 0.0 0.5000 0.0 2.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4= class2 mbt 0.0000 0.0000 0.0000 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5980 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 125.0000 135.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4= class2 aat 0.0 125.0000 135.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4=,n2=,p4= class2 bb13 0.0 1.5980 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1,p4=,n2=,p4= class2 0.0000 0.0 0.0000 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1,p4=,n2=,p4= class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1,p4=,n2=,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1,p4=,n2=,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.0330 135.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1,p4=,n2=,p4= class2 aat 0.0 110.0330 135.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,p4=,n2=,p4=,h1,p4=,n2=,p4=,h1,p4=,n2=,p4= class2 bb13 0.0 1.4300 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,o2,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,o2,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,o2,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0310 1.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,o2,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 112.2150 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,o2,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 aat 0.0 120.0000 112.2150 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,o2,h1,n2=,p4=,o2,h1,n2=,p4=,o2 class2 bb13 0.0 1.0310 1.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,h1,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,h1,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,h1,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0310 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,h1,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 110.0330 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,h1,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 aat -3.7880 120.0000 110.0330 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n2=,p4=,h1,h1,n2=,p4=,h1,h1,n2=,p4=,h1 class2 bb13 0.0 1.0310 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1 class2 0.0000 0.0 0.0000 0.0 -0.3690 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1 class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8000 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 119.3000 120.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1 class2 aat -11.1020 119.3000 120.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1 class2 bb13 0.0 1.8000 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,p4=,n2=,h1,c3a,p4=,n2=,h1,c3a,p4=,n2=,h1 class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,p4=,n2=,h1,c3a,p4=,n2=,h1,c3a,p4=,n2=,h1 class2 mbt 0.0 0.0 0.0 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,p4=,n2=,h1,c3a,p4=,n2=,h1,c3a,p4=,n2=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,p4=,n2=,h1,c3a,p4=,n2=,h1,c3a,p4=,n2=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 109.6000 120.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,p4=,n2=,h1,c3a,p4=,n2=,h1,c3a,p4=,n2=,h1 class2 aat 0.0 109.6000 120.0000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,p4=,n2=,h1,c3a,p4=,n2=,h1,c3a,p4=,n2=,h1 class2 bb13 0.0 1.7890 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 0.0000 0.0 0.0000 0.0 -0.0680 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 mbt 0.0 0.0 0.0 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.8860 119.3000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 aat -19.9340 110.8860 119.3000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,n2=,h1,c4,p4=,n2=,h1,c4,p4=,n2= class2 bb13 0.0 1.1010 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,h1,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 0.0000 0.0 0.0000 0.0 -0.0680 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,h1,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 mbt 0.0 0.0 0.0 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,h1,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,h1,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.8860 102.9000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,h1,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 aat -16.0180 110.8860 102.9000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,p4=,h1,h1,c4,p4=,h1,h1,c4,p4=,h1 class2 bb13 0.0 1.1010 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,c4,h1,c4,p4=,c4,h1,c4,p4=,c4,h1 class2 0.0000 0.0 0.0000 0.0 -0.0680 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,c4,h1,c4,p4=,c4,h1,c4,p4=,c4,h1 class2 mbt 0.0 0.0 0.0 1.8000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,c4,h1,c4,p4=,c4,h1,c4,p4=,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8000 1.1010 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,c4,h1,c4,p4=,c4,h1,c4,p4=,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 102.5000 110.8860 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,c4,h1,c4,p4=,c4,h1,c4,p4=,c4,h1 class2 aat -25.5460 102.5000 110.8860 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,p4=,c4,h1,c4,p4=,c4,h1,c4,p4=,c4,h1 class2 bb13 0.0 1.8000 1.1010 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,n2=,h1,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 1.2660 0.0 -0.7740 0.0 0.0380 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,n2=,h1,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 mbt -0.4140 -2.8620 0.0070 1.4740 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,n2=,h1,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,n2=,h1,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 at -1.8950 1.2210 -0.7460 0.1100 0.0650 0.1090 107.4990 117.2000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,n2=,h1,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 aat -9.6280 107.4990 117.2000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,n2=,h1,h1,c4,n2=,h1,h1,c4,n2=,h1 class2 bb13 0.0 1.1010 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 -5.0720 0.0 -0.4980 0.0 -0.4380 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 mbt -2.3800 2.5290 -0.7300 1.4740 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 at -2.5230 2.8480 2.0590 -3.6920 4.0610 -1.5440 117.3170 117.2000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 aat -8.8980 117.3170 117.2000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2=,h1 class2 bb13 0.0 1.5300 1.0310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2= class2 -0.1510 0.0 0.0100 0.0 -0.1860 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2= class2 mbt -3.5150 -2.2980 -1.2770 1.5300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4740 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2= class2 at -2.0980 1.8610 -1.6890 -0.1220 1.8930 -0.5670 110.7700 117.3170 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2= class2 aat -27.5060 110.7700 117.3170 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,c4,n2=,h1,c4,c4,n2=,h1,c4,c4,n2= class2 bb13 0.0 1.1010 1.4740 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,c4,n2=,c4,c4,c4,n2=,c4,c4,c4,n2= class2 0.0970 0.0 0.0720 0.0 -0.2580 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,c4,n2=,c4,c4,c4,n2=,c4,c4,c4,n2= class2 mbt 0.0000 0.0000 0.0000 1.5300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,c4,n2=,c4,c4,c4,n2=,c4,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.4740 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,c4,n2=,c4,c4,c4,n2=,c4,c4,c4,n2= class2 at -2.0980 1.8610 -1.6890 -0.1220 1.8930 -0.5670 112.6700 117.3170 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,c4,n2=,c4,c4,c4,n2=,c4,c4,c4,n2= class2 aat 0.0000 112.6700 117.3170 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c4,c4,c4,n2=,c4,c4,c4,n2=,c4,c4,c4,n2= class2 bb13 0.0 1.5300 1.4740 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 -0.2720 0.0 1.1900 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 mbt 0.0 0.0 0.0 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 109.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 aat 0.0 120.0010 109.6000 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4=,n2= class2 bb13 0.0 1.4170 1.5980 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 -0.2720 0.0 1.1900 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 mbt 0.0 0.0 0.0 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 108.2310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 aat 0.0 120.0010 108.2310 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1 class2 bb13 0.0 1.4170 1.4300 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 0.0000 0.0 2.2700 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 120.0010 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 aat 0.0 117.9400 120.0010 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c3a,c3a,p4=,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 bb13 0.0 1.0982 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 0.0000 0.0 5.4770 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 120.0010 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 aat 0.0 118.9000 120.0010 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 bb13 0.0 1.4170 1.7890 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,c4,o2,h1,h1,c4,o2h,h1,h1,c4,o2,h1 class2 0.1863 0.0 -0.4338 0.0 -0.2121 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,o2,h1,h1,c4,o2h,h1,h1,c4,o2,h1 class2 mbt 0.0000 0.9241 -0.5889 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,o2,h1,h1,c4,o2h,h1,h1,c4,o2,h1 class2 ebt -1.7554 1.3145 0.2263 0.2493 0.6803 0.0000 1.1010 0.9494 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,o2,h1,h1,c4,o2h,h1,h1,c4,o2,h1 class2 at -3.4060 1.6396 0.0737 0.0000 -0.2810 -0.5944 108.7280 105.8000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,o2,h1,h1,c4,o2h,h1,h1,c4,o2,h1 class2 aat -10.5093 108.7280 105.8000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,o2,h1,h1,c4,o2h,h1,h1,c4,o2,h1 class2 bb13 0.0 1.1010 0.9494 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2h,c4,h1,c4,o2,c4,h1 class2 0.5302 0.0 0.0000 0.0 -0.3966 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2h,c4,h1,c4,o2,c4,h1 class2 mbt -6.8007 -4.6546 -1.4101 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2h,c4,h1,c4,o2,c4,h1 class2 ebt -0.1620 0.1564 -1.1408 -0.6054 1.3339 0.9648 1.4200 1.1010 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2h,c4,h1,c4,o2,c4,h1 class2 at -0.6653 0.4340 -0.7777 0.5144 1.6393 -1.8234 104.5000 108.7280 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2h,c4,h1,c4,o2,c4,h1 class2 aat -16.4438 104.5000 108.7280 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2h,c4,h1,c4,o2,c4,h1 class2 bb13 0.0 1.4200 1.1010 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2e,c4,h1,c4,o2,c4,h1 class2 0.5302 0.0 0.0000 0.0 -0.3966 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2e,c4,h1,c4,o2,c4,h1 class2 mbt -6.8007 -4.6546 -1.4101 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2e,c4,h1,c4,o2,c4,h1 class2 ebt -0.1620 0.1564 -1.1408 -0.6054 1.3339 0.9648 1.4200 1.1010 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2e,c4,h1,c4,o2,c4,h1 class2 at -0.6653 0.4340 -0.7777 0.5144 1.6393 -1.8234 104.5000 108.7280 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2e,c4,h1,c4,o2,c4,h1 class2 aat -16.4438 104.5000 108.7280 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,o2,c4,h1,c4,o2e,c4,h1,c4,o2,c4,h1 class2 bb13 0.0 1.4200 1.1010 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2h,c4,h1,c3a,o2,c4,h1 class2 0.9513 0.0 0.1155 0.0 0.0720 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2h,c4,h1,c3a,o2,c4,h1 class2 mbt 0.0 0.0 0.0 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2h,c4,h1,c3a,o2,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.1010 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2h,c4,h1,c3a,o2,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 102.9695 108.7280 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2h,c4,h1,c3a,o2,c4,h1 class2 aat 0.0 102.9695 108.7280 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2h,c4,h1,c3a,o2,c4,h1 class2 bb13 0.0 1.3768 1.1010 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2e,c4,h1,c3a,o2,c4,h1 class2 0.9513 0.0 0.1155 0.0 0.0720 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2e,c4,h1,c3a,o2,c4,h1 class2 mbt 0.0 0.0 0.0 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2e,c4,h1,c3a,o2,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.1010 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2e,c4,h1,c3a,o2,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 102.9695 108.7280 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2e,c4,h1,c3a,o2,c4,h1 class2 aat 0.0 102.9695 108.7280 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,o2,c4,h1,c3a,o2e,c4,h1,c3a,o2,c4,h1 class2 bb13 0.0 1.3768 1.1010 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2,h1 class2 -0.6732 0.0 -0.4778 0.0 -0.1670 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2,h1 class2 mbt 1.2472 0.0000 0.7485 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2,h1 class2 ebt -0.5800 0.9004 0.0000 0.0000 0.5343 0.9025 1.5300 0.9494 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2,h1 class2 at -3.5903 2.5225 0.4888 0.8726 -0.3577 0.3888 111.2700 105.8000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2,h1 class2 aat -12.1038 111.2700 105.8000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2,h1 class2 bb13 0.0 1.5300 0.9494 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2,c4 class2 -0.4000 0.0 -0.4028 0.0 -0.2450 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2,c4 class2 mbt -5.9288 -2.7007 -0.3175 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2,c4 class2 ebt -0.2456 1.0517 -0.7795 0.4741 1.2635 0.5576 1.5300 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2,c4 class2 at -2.7466 1.4877 -0.8955 0.5676 0.9450 0.0703 111.2700 104.5000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2,c4 class2 aat -19.0059 111.2700 104.5000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2,c4 class2 bb13 0.0 1.5300 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2,c4 class2 -0.4000 0.0 -0.4028 0.0 -0.2450 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2,c4 class2 mbt -5.9288 -2.7007 -0.3175 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2,c4 class2 ebt -0.2456 1.0517 -0.7795 0.4741 1.2635 0.5576 1.5300 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2,c4 class2 at -2.7466 1.4877 -0.8955 0.5676 0.9450 0.0703 111.2700 104.5000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2,c4 class2 aat -19.0059 111.2700 104.5000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2,c4 class2 bb13 0.0 1.5300 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 1.1000 0.0 -0.0500 0.0 -0.1441 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 mbt -17.2585 -3.6157 -0.8364 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 ebt 1.0165 0.7553 -0.4609 1.0165 0.7553 -0.4609 1.4350 1.4350 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 at 0.5511 0.9737 -0.6673 0.5511 0.9737 -0.6673 105.0000 105.0000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 aat -14.0484 105.0000 105.0000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 bb13 0.0 1.4350 1.4350 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 1.1000 0.0 -0.0500 0.0 -0.1441 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 mbt -17.2585 -3.6157 -0.8364 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 ebt 1.0165 0.7553 -0.4609 1.0165 0.7553 -0.4609 1.4350 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 at 0.5511 0.9737 -0.6673 0.5511 0.9737 -0.6673 105.0000 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 aat -14.0484 105.0000 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 bb13 0.0 1.4350 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 1.1000 0.0 -0.0500 0.0 -0.1441 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 mbt -17.2585 -3.6157 -0.8364 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 ebt 1.0165 0.7553 -0.4609 1.0165 0.7553 -0.4609 1.4350 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 at 0.5511 0.9737 -0.6673 0.5511 0.9737 -0.6673 105.0000 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 aat -14.0484 105.0000 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 bb13 0.0 1.4350 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 1.1000 0.0 -0.0500 0.0 -0.1441 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 mbt -17.2585 -3.6157 -0.8364 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 ebt 1.0165 0.7553 -0.4609 1.0165 0.7553 -0.4609 1.4200 1.4350 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 at 0.5511 0.9737 -0.6673 0.5511 0.9737 -0.6673 111.2700 105.0000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 aat -14.0484 111.2700 105.0000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 bb13 0.0 1.4200 1.4350 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 1.1000 0.0 -0.0500 0.0 -0.1441 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 mbt -17.2585 -3.6157 -0.8364 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 ebt 1.0165 0.7553 -0.4609 1.0165 0.7553 -0.4609 1.4200 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 at 0.5511 0.9737 -0.6673 0.5511 0.9737 -0.6673 111.2700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 aat -14.0484 111.2700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 bb13 0.0 1.4200 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 1.1000 0.0 -0.0500 0.0 -0.1441 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 mbt -17.2585 -3.6157 -0.8364 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 ebt 1.0165 0.7553 -0.4609 1.0165 0.7553 -0.4609 1.4200 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 at 0.5511 0.9737 -0.6673 0.5511 0.9737 -0.6673 111.2700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 aat -14.0484 111.2700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 bb13 0.0 1.4200 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 1.1000 0.0 -0.0500 0.0 -0.1441 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 mbt -17.2585 -3.6157 -0.8364 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 ebt 1.0165 0.7553 -0.4609 1.0165 0.7553 -0.4609 1.4200 1.4350 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 at 0.5511 0.9737 -0.6673 0.5511 0.9737 -0.6673 111.2700 105.0000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 aat -14.0484 111.2700 105.0000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 bb13 0.0 1.4200 1.4350 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 1.1000 0.0 -0.0500 0.0 -0.1441 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 mbt -17.2585 -3.6157 -0.8364 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 ebt 1.0165 0.7553 -0.4609 1.0165 0.7553 -0.4609 1.4200 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 at 0.5511 0.9737 -0.6673 0.5511 0.9737 -0.6673 111.2700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 aat -14.0484 111.2700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 bb13 0.0 1.4200 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 1.1000 0.0 -0.0500 0.0 -0.1441 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 mbt -17.2585 -3.6157 -0.8364 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 ebt 1.0165 0.7553 -0.4609 1.0165 0.7553 -0.4609 1.4200 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 at 0.5511 0.9737 -0.6673 0.5511 0.9737 -0.6673 111.2700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 aat -14.0484 111.2700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:o2,c4,c4,o2,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 bb13 0.0 1.4200 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2n,h1,c4,c4,o2n class2 -0.1435 0.0 0.2530 0.0 -0.0905 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2n,h1,c4,c4,o2n class2 mbt -16.7975 -1.2296 -0.2750 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2n,h1,c4,c4,o2n class2 ebt 0.9681 0.9551 0.0436 0.5903 0.6669 0.8584 1.1010 1.4350 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2n,h1,c4,c4,o2n class2 at 2.3668 2.4920 -1.0122 -0.1892 0.4918 0.7273 110.7700 105.0000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2n,h1,c4,c4,o2n class2 aat -20.2006 110.7700 105.0000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2n,h1,c4,c4,o2n class2 bb13 0.0 1.1010 1.4350 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2 class2 -0.1435 0.0 0.2530 0.0 -0.0905 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2 class2 mbt -16.7975 -1.2296 -0.2750 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2 class2 ebt 0.9681 0.9551 0.0436 0.5903 0.6669 0.8584 1.1010 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2 class2 at 2.3668 2.4920 -1.0122 -0.1892 0.4918 0.7273 110.7700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2 class2 aat -20.2006 110.7700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2h,h1,c4,c4,o2 class2 bb13 0.0 1.1010 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2e,h1,c4,c4,o2 class2 -0.1435 0.0 0.2530 0.0 -0.0905 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2e,h1,c4,c4,o2 class2 mbt -16.7975 -1.2296 -0.2750 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2e,h1,c4,c4,o2 class2 ebt 0.9681 0.9551 0.0436 0.5903 0.6669 0.8584 1.1010 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2e,h1,c4,c4,o2 class2 at 2.3668 2.4920 -1.0122 -0.1892 0.4918 0.7273 110.7700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2e,h1,c4,c4,o2 class2 aat -20.2006 110.7700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c4,c4,o2,h1,c4,c4,o2e,h1,c4,c4,o2 class2 bb13 0.0 1.1010 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2n,c4,c4,c4,o2n class2 0.7137 0.0 0.2660 0.0 -0.2545 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2n,c4,c4,c4,o2n class2 mbt -21.8842 -7.6764 -0.6868 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2n,c4,c4,c4,o2n class2 ebt -0.3190 0.4411 -0.7174 1.1538 0.8409 -0.9138 1.5300 1.4350 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2n,c4,c4,c4,o2n class2 at 0.5623 -0.3041 -0.4015 0.9672 -0.7566 -1.2331 112.6700 105.0000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2n,c4,c4,c4,o2n class2 aat -29.0420 112.6700 105.0000 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2n,c4,c4,c4,o2n class2 bb13 0.0 1.5300 1.4350 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2 class2 0.7137 0.0 0.2660 0.0 -0.2545 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2 class2 mbt -21.8842 -7.6764 -0.6868 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2 class2 ebt -0.3190 0.4411 -0.7174 1.1538 0.8409 -0.9138 1.5300 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2 class2 at 0.5623 -0.3041 -0.4015 0.9672 -0.7566 -1.2331 112.6700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2 class2 aat -29.0420 112.6700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2h,c4,c4,c4,o2 class2 bb13 0.0 1.5300 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2 class2 0.7137 0.0 0.2660 0.0 -0.2545 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2 class2 mbt -21.8842 -7.6764 -0.6868 1.5300 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2 class2 ebt -0.3190 0.4411 -0.7174 1.1538 0.8409 -0.9138 1.5300 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2 class2 at 0.5623 -0.3041 -0.4015 0.9672 -0.7566 -1.2331 112.6700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2 class2 aat -29.0420 112.6700 111.2700 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c4,c4,c4,o2,c4,c4,c4,o2e,c4,c4,c4,o2 class2 bb13 0.0 1.5300 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2h,c4,c3a,c3a,o2,c4 class2 0.0000 0.0 1.5000 0.0 0.0000 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2h,c4,c3a,c3a,o2,c4 class2 mbt 0.0 0.0 0.0 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2h,c4,c3a,c3a,o2,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2h,c4,c3a,c3a,o2,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 102.9695 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2h,c4,c3a,c3a,o2,c4 class2 aat 0.0 123.4200 102.9695 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2h,c4,c3a,c3a,o2,c4 class2 bb13 0.0 1.4170 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2e,c4,c3a,c3a,o2,c4 class2 0.0000 0.0 1.5000 0.0 0.0000 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2e,c4,c3a,c3a,o2,c4 class2 mbt 0.0 0.0 0.0 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2e,c4,c3a,c3a,o2,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2e,c4,c3a,c3a,o2,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 102.9695 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2e,c4,c3a,c3a,o2,c4 class2 aat 0.0 123.4200 102.9695 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,c4,c3a,c3a,o2e,c4,c3a,c3a,o2,c4 class2 bb13 0.0 1.4170 1.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,o2z,si4,o2z,si4,o2z class2 0.0000 0.0 0.0000 0.0 -0.0100 0.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,o2z,si4,o2z,si4,o2z class2 mbt 0.0 0.0 0.0 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,o2z,si4,o2z,si4,o2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.6400 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,o2z,si4,o2z,si4,o2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 159.0000 110.7000 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,o2z,si4,o2z,si4,o2z class2 aat 0.0 159.0000 110.7000 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,o2z,si4,o2z,si4,o2z class2 bb13 0.0 1.6400 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,h1,si4,o2z,si4,h1 class2 0.0000 0.0 0.0000 0.0 -0.0100 0.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,h1,si4,o2z,si4,h1 class2 mbt 0.0 0.0 0.0 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,h1,si4,o2z,si4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.6400 1.4783 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,h1,si4,o2z,si4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 159.0000 107.4000 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,h1,si4,o2z,si4,h1 class2 aat 0.0 159.0000 107.4000 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,h1,si4,o2z,si4,h1 class2 bb13 0.0 1.6400 1.4783 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c4,si4,o2z,si4,c4 class2 0.0000 0.0 0.0000 0.0 -0.0100 0.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c4,si4,o2z,si4,c4 class2 mbt 0.0 0.0 0.0 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c4,si4,o2z,si4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.6400 1.8995 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c4,si4,o2z,si4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 159.0000 114.9060 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c4,si4,o2z,si4,c4 class2 aat 0.0 159.0000 114.9060 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c4,si4,o2z,si4,c4 class2 bb13 0.0 1.6400 1.8995 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c3a,si4,o2z,si4,c3a class2 0.0000 0.0 0.0000 0.0 -0.0100 0.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c3a,si4,o2z,si4,c3a class2 mbt 0.0 0.0 0.0 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c3a,si4,o2z,si4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.6400 1.8634 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c3a,si4,o2z,si4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 159.0000 114.9060 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c3a,si4,o2z,si4,c3a class2 aat 0.0 159.0000 114.9060 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,o2z,si4,X,si4,o2z,si4,c3a,si4,o2z,si4,c3a class2 bb13 0.0 1.6400 1.8634 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4 class2 -0.2250 0.0 0.0000 0.0 -0.0100 0.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4 class2 mbt 0.0 0.0 0.0 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.6400 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7000 159.0000 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4 class2 aat 0.0 110.7000 159.0000 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4,o2z,si4 class2 bb13 0.0 1.6400 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,si4,o2z,si4,h1,si4,o2z,si4,h1,si4,o2z,si4 class2 0.0000 0.0 0.0000 0.0 -0.0100 0.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,si4,o2z,si4,h1,si4,o2z,si4,h1,si4,o2z,si4 class2 mbt 0.0 0.0 0.0 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,si4,o2z,si4,h1,si4,o2z,si4,h1,si4,o2z,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4783 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,si4,o2z,si4,h1,si4,o2z,si4,h1,si4,o2z,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 107.4000 159.0000 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,si4,o2z,si4,h1,si4,o2z,si4,h1,si4,o2z,si4 class2 aat 0.0 107.4000 159.0000 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,si4,o2z,si4,h1,si4,o2z,si4,h1,si4,o2z,si4 class2 bb13 0.0 1.4783 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,si4,c4,si4,o2z,si4,c4,si4,o2z,si4 class2 0.0000 0.0 0.0000 0.0 -0.0100 0.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,si4,c4,si4,o2z,si4,c4,si4,o2z,si4 class2 mbt 0.0 0.0 0.0 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,si4,c4,si4,o2z,si4,c4,si4,o2z,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,si4,c4,si4,o2z,si4,c4,si4,o2z,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 114.9060 159.0000 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,si4,c4,si4,o2z,si4,c4,si4,o2z,si4 class2 aat 0.0 114.9060 159.0000 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,si4,c4,si4,o2z,si4,c4,si4,o2z,si4 class2 bb13 0.0 1.8995 1.6400 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,si4,si4,c4,c4,si4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,si4,si4,c4,c4,si4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,si4,si4,c4,c4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,si4,si4,c4,c4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,si4,si4,c4,c4,si4 class2 aat 0.0 112.6700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,si4,si4,c4,c4,si4 class2 bb13 0.0 1.8995 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2n,si4,c4,c4,o2n class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2n,si4,c4,c4,o2n class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2n,si4,c4,c4,o2n class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2n,si4,c4,c4,o2n class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2n,si4,c4,c4,o2n class2 aat 0.0 112.6700 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2n,si4,c4,c4,o2n class2 bb13 0.0 1.8995 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2h,si4,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2h,si4,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2h,si4,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2h,si4,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2h,si4,c4,c4,o2 class2 aat 0.0 112.6700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2h,si4,c4,c4,o2 class2 bb13 0.0 1.8995 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2e,si4,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2e,si4,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2e,si4,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2e,si4,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2e,si4,c4,c4,o2 class2 aat 0.0 112.6700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,o2e,si4,c4,c4,o2 class2 bb13 0.0 1.8995 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2z,si4,c4,c4,n2z class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2z,si4,c4,c4,n2z class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2z,si4,c4,c4,n2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2z,si4,c4,c4,n2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2z,si4,c4,c4,n2z class2 aat 0.0 112.6700 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2z,si4,c4,c4,n2z class2 bb13 0.0 1.8995 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2=,si4,c4,c4,n2= class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2=,si4,c4,c4,n2= class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2=,si4,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2=,si4,c4,c4,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2=,si4,c4,c4,n2= class2 aat 0.0 112.6700 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,n2=,si4,c4,c4,n2= class2 bb13 0.0 1.8995 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,h1,si4,c4,c4,h1 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,h1,si4,c4,c4,h1 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,h1,si4,c4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,h1,si4,c4,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,h1,si4,c4,c4,h1 class2 aat 0.0 112.6700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,h1,si4,c4,c4,h1 class2 bb13 0.0 1.8995 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c4,si4,c4,c4,c4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c4,si4,c4,c4,c4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c4,si4,c4,c4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c4,si4,c4,c4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c4,si4,c4,c4,c4 class2 aat 0.0 112.6700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c4,si4,c4,c4,c4 class2 bb13 0.0 1.8995 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c3a,si4,c4,c4,c3a class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c3a,si4,c4,c4,c3a class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c3a,si4,c4,c4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8995 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c3a,si4,c4,c4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c3a,si4,c4,c4,c3a class2 aat 0.0 112.6700 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,si4,c4,c4,c3a,si4,c4,c4,c3a class2 bb13 0.0 1.8995 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,si4,o2n,c4,c4,si4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,si4,o2n,c4,c4,si4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,si4,o2n,c4,c4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4350 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,si4,o2n,c4,c4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 105.0000 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,si4,o2n,c4,c4,si4 class2 aat 0.0 105.0000 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,si4,o2n,c4,c4,si4 class2 bb13 0.0 1.4350 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4350 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 at 0.0 0.0 0.0 0.0 0.0 0.0 105.0000 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 aat 0.0 105.0000 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2n,o2n,c4,c4,o2n class2 bb13 0.0 1.4350 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4350 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 105.0000 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 aat 0.0 105.0000 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2h,o2n,c4,c4,o2 class2 bb13 0.0 1.4350 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4350 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 105.0000 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 aat 0.0 105.0000 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,o2e,o2n,c4,c4,o2 class2 bb13 0.0 1.4350 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2z,o2n,c4,c4,n2z class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2z,o2n,c4,c4,n2z class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2z,o2n,c4,c4,n2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4350 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2z,o2n,c4,c4,n2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 105.0000 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2z,o2n,c4,c4,n2z class2 aat 0.0 105.0000 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2z,o2n,c4,c4,n2z class2 bb13 0.0 1.4350 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2=,o2n,c4,c4,n2= class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2=,o2n,c4,c4,n2= class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2=,o2n,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4350 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2=,o2n,c4,c4,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 105.0000 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2=,o2n,c4,c4,n2= class2 aat 0.0 105.0000 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,n2=,o2n,c4,c4,n2= class2 bb13 0.0 1.4350 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,h1,o2n,c4,c4,h1 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,h1,o2n,c4,c4,h1 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,h1,o2n,c4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4350 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,h1,o2n,c4,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 105.0000 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,h1,o2n,c4,c4,h1 class2 aat 0.0 105.0000 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,h1,o2n,c4,c4,h1 class2 bb13 0.0 1.4350 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c4,o2n,c4,c4,c4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c4,o2n,c4,c4,c4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c4,o2n,c4,c4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4350 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c4,o2n,c4,c4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 105.0000 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c4,o2n,c4,c4,c4 class2 aat 0.0 105.0000 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c4,o2n,c4,c4,c4 class2 bb13 0.0 1.4350 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c3a,o2n,c4,c4,c3a class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c3a,o2n,c4,c4,c3a class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c3a,o2n,c4,c4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4350 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c3a,o2n,c4,c4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 105.0000 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c3a,o2n,c4,c4,c3a class2 aat 0.0 105.0000 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2n,c4,c4,c3a,o2n,c4,c4,c3a class2 bb13 0.0 1.4350 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,si4,o2,c4,c4,si4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,si4,o2,c4,c4,si4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,si4,o2,c4,c4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,si4,o2,c4,c4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,si4,o2,c4,c4,si4 class2 aat 0.0 111.2700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,si4,o2,c4,c4,si4 class2 bb13 0.0 1.4200 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 aat 0.0 111.2700 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2n,o2,c4,c4,o2n class2 bb13 0.0 1.4200 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 aat 0.0 111.2700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2h,o2,c4,c4,o2 class2 bb13 0.0 1.4200 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 aat 0.0 111.2700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,o2e,o2,c4,c4,o2 class2 bb13 0.0 1.4200 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2z,o2,c4,c4,n2z class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2z,o2,c4,c4,n2z class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2z,o2,c4,c4,n2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2z,o2,c4,c4,n2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2z,o2,c4,c4,n2z class2 aat 0.0 111.2700 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2z,o2,c4,c4,n2z class2 bb13 0.0 1.4200 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2=,o2,c4,c4,n2= class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2=,o2,c4,c4,n2= class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2=,o2,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2=,o2,c4,c4,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2=,o2,c4,c4,n2= class2 aat 0.0 111.2700 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,n2=,o2,c4,c4,n2= class2 bb13 0.0 1.4200 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,h1,o2,c4,c4,h1 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,h1,o2,c4,c4,h1 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,h1,o2,c4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,h1,o2,c4,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,h1,o2,c4,c4,h1 class2 aat 0.0 111.2700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,h1,o2,c4,c4,h1 class2 bb13 0.0 1.4200 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c4,o2,c4,c4,c4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c4,o2,c4,c4,c4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c4,o2,c4,c4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c4,o2,c4,c4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c4,o2,c4,c4,c4 class2 aat 0.0 111.2700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c4,o2,c4,c4,c4 class2 bb13 0.0 1.4200 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c3a,o2,c4,c4,c3a class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c3a,o2,c4,c4,c3a class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c3a,o2,c4,c4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c3a,o2,c4,c4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c3a,o2,c4,c4,c3a class2 aat 0.0 111.2700 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2h,c4,c4,c3a,o2,c4,c4,c3a class2 bb13 0.0 1.4200 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,si4,o2,c4,c4,si4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,si4,o2,c4,c4,si4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,si4,o2,c4,c4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,si4,o2,c4,c4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,si4,o2,c4,c4,si4 class2 aat 0.0 111.2700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,si4,o2,c4,c4,si4 class2 bb13 0.0 1.4200 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 aat 0.0 111.2700 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2n,o2,c4,c4,o2n class2 bb13 0.0 1.4200 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 aat 0.0 111.2700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2h,o2,c4,c4,o2 class2 bb13 0.0 1.4200 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 aat 0.0 111.2700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,o2e,o2,c4,c4,o2 class2 bb13 0.0 1.4200 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2z,o2,c4,c4,n2z class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2z,o2,c4,c4,n2z class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2z,o2,c4,c4,n2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2z,o2,c4,c4,n2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2z,o2,c4,c4,n2z class2 aat 0.0 111.2700 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2z,o2,c4,c4,n2z class2 bb13 0.0 1.4200 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2=,o2,c4,c4,n2= class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2=,o2,c4,c4,n2= class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2=,o2,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2=,o2,c4,c4,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2=,o2,c4,c4,n2= class2 aat 0.0 111.2700 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,n2=,o2,c4,c4,n2= class2 bb13 0.0 1.4200 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,h1,o2,c4,c4,h1 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,h1,o2,c4,c4,h1 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,h1,o2,c4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,h1,o2,c4,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,h1,o2,c4,c4,h1 class2 aat 0.0 111.2700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,h1,o2,c4,c4,h1 class2 bb13 0.0 1.4200 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c4,o2,c4,c4,c4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c4,o2,c4,c4,c4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c4,o2,c4,c4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c4,o2,c4,c4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c4,o2,c4,c4,c4 class2 aat 0.0 111.2700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c4,o2,c4,c4,c4 class2 bb13 0.0 1.4200 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c3a,o2,c4,c4,c3a class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c3a,o2,c4,c4,c3a class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c3a,o2,c4,c4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4200 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c3a,o2,c4,c4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 111.2700 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c3a,o2,c4,c4,c3a class2 aat 0.0 111.2700 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,o2e,c4,c4,c3a,o2,c4,c4,c3a class2 bb13 0.0 1.4200 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,si4,n2z,c4,c4,si4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,si4,n2z,c4,c4,si4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,si4,n2z,c4,c4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4814 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,si4,n2z,c4,c4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.9900 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,si4,n2z,c4,c4,si4 class2 aat 0.0 110.9900 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,si4,n2z,c4,c4,si4 class2 bb13 0.0 1.4814 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2n,n2z,c4,c4,o2n class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2n,n2z,c4,c4,o2n class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2n,n2z,c4,c4,o2n class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4814 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2n,n2z,c4,c4,o2n class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.9900 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2n,n2z,c4,c4,o2n class2 aat 0.0 110.9900 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2n,n2z,c4,c4,o2n class2 bb13 0.0 1.4814 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2h,n2z,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2h,n2z,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2h,n2z,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4814 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2h,n2z,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.9900 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2h,n2z,c4,c4,o2 class2 aat 0.0 110.9900 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2h,n2z,c4,c4,o2 class2 bb13 0.0 1.4814 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2e,n2z,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2e,n2z,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2e,n2z,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4814 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2e,n2z,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.9900 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2e,n2z,c4,c4,o2 class2 aat 0.0 110.9900 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,o2e,n2z,c4,c4,o2 class2 bb13 0.0 1.4814 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2z,n2z,c4,c4,n2z class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2z,n2z,c4,c4,n2z class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2z,n2z,c4,c4,n2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4814 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2z,n2z,c4,c4,n2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.9900 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2z,n2z,c4,c4,n2z class2 aat 0.0 110.9900 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2z,n2z,c4,c4,n2z class2 bb13 0.0 1.4814 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2=,n2z,c4,c4,n2= class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2=,n2z,c4,c4,n2= class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2=,n2z,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4814 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2=,n2z,c4,c4,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.9900 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2=,n2z,c4,c4,n2= class2 aat 0.0 110.9900 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,n2=,n2z,c4,c4,n2= class2 bb13 0.0 1.4814 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,h1,n2z,c4,c4,h1 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,h1,n2z,c4,c4,h1 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,h1,n2z,c4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4814 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,h1,n2z,c4,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.9900 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,h1,n2z,c4,c4,h1 class2 aat 0.0 110.9900 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,h1,n2z,c4,c4,h1 class2 bb13 0.0 1.4814 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c4,n2z,c4,c4,c4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c4,n2z,c4,c4,c4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c4,n2z,c4,c4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4814 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c4,n2z,c4,c4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.9900 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c4,n2z,c4,c4,c4 class2 aat 0.0 110.9900 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c4,n2z,c4,c4,c4 class2 bb13 0.0 1.4814 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c3a,n2z,c4,c4,c3a class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c3a,n2z,c4,c4,c3a class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c3a,n2z,c4,c4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4814 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c3a,n2z,c4,c4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.9900 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c3a,n2z,c4,c4,c3a class2 aat 0.0 110.9900 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2z,c4,c4,c3a,n2z,c4,c4,c3a class2 bb13 0.0 1.4814 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,si4,n2=,c4,c4,si4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,si4,n2=,c4,c4,si4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,si4,n2=,c4,c4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4740 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,si4,n2=,c4,c4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.3170 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,si4,n2=,c4,c4,si4 class2 aat 0.0 117.3170 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,si4,n2=,c4,c4,si4 class2 bb13 0.0 1.4740 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2n,n2=,c4,c4,o2n class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2n,n2=,c4,c4,o2n class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2n,n2=,c4,c4,o2n class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4740 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2n,n2=,c4,c4,o2n class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.3170 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2n,n2=,c4,c4,o2n class2 aat 0.0 117.3170 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2n,n2=,c4,c4,o2n class2 bb13 0.0 1.4740 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2h,n2=,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2h,n2=,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2h,n2=,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4740 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2h,n2=,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.3170 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2h,n2=,c4,c4,o2 class2 aat 0.0 117.3170 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2h,n2=,c4,c4,o2 class2 bb13 0.0 1.4740 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2e,n2=,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2e,n2=,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2e,n2=,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4740 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2e,n2=,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.3170 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2e,n2=,c4,c4,o2 class2 aat 0.0 117.3170 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,o2e,n2=,c4,c4,o2 class2 bb13 0.0 1.4740 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2z,n2=,c4,c4,n2z class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2z,n2=,c4,c4,n2z class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2z,n2=,c4,c4,n2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4740 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2z,n2=,c4,c4,n2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.3170 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2z,n2=,c4,c4,n2z class2 aat 0.0 117.3170 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2z,n2=,c4,c4,n2z class2 bb13 0.0 1.4740 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2=,n2=,c4,c4,n2= class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2=,n2=,c4,c4,n2= class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2=,n2=,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4740 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2=,n2=,c4,c4,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.3170 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2=,n2=,c4,c4,n2= class2 aat 0.0 117.3170 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,n2=,n2=,c4,c4,n2= class2 bb13 0.0 1.4740 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,h1,n2=,c4,c4,h1 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,h1,n2=,c4,c4,h1 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,h1,n2=,c4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4740 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,h1,n2=,c4,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.3170 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,h1,n2=,c4,c4,h1 class2 aat 0.0 117.3170 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,h1,n2=,c4,c4,h1 class2 bb13 0.0 1.4740 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c4,n2=,c4,c4,c4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c4,n2=,c4,c4,c4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c4,n2=,c4,c4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4740 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c4,n2=,c4,c4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.3170 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c4,n2=,c4,c4,c4 class2 aat 0.0 117.3170 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c4,n2=,c4,c4,c4 class2 bb13 0.0 1.4740 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c3a,n2=,c4,c4,c3a class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c3a,n2=,c4,c4,c3a class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c3a,n2=,c4,c4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4740 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c3a,n2=,c4,c4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.3170 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c3a,n2=,c4,c4,c3a class2 aat 0.0 117.3170 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,n2=,c4,c4,c3a,n2=,c4,c4,c3a class2 bb13 0.0 1.4740 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,si4,h1,c4,c4,si4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,si4,h1,c4,c4,si4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,si4,h1,c4,c4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,si4,h1,c4,c4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,si4,h1,c4,c4,si4 class2 aat 0.0 110.7700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,si4,h1,c4,c4,si4 class2 bb13 0.0 1.1010 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2n,h1,c4,c4,o2n class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2n,h1,c4,c4,o2n class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2n,h1,c4,c4,o2n class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2n,h1,c4,c4,o2n class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7700 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2n,h1,c4,c4,o2n class2 aat 0.0 110.7700 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2n,h1,c4,c4,o2n class2 bb13 0.0 1.1010 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2h,h1,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2h,h1,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2h,h1,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2h,h1,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2h,h1,c4,c4,o2 class2 aat 0.0 110.7700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2h,h1,c4,c4,o2 class2 bb13 0.0 1.1010 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2e,h1,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2e,h1,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2e,h1,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2e,h1,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2e,h1,c4,c4,o2 class2 aat 0.0 110.7700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,o2e,h1,c4,c4,o2 class2 bb13 0.0 1.1010 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2z,h1,c4,c4,n2z class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2z,h1,c4,c4,n2z class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2z,h1,c4,c4,n2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2z,h1,c4,c4,n2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7700 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2z,h1,c4,c4,n2z class2 aat 0.0 110.7700 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2z,h1,c4,c4,n2z class2 bb13 0.0 1.1010 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2=,h1,c4,c4,n2= class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2=,h1,c4,c4,n2= class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2=,h1,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2=,h1,c4,c4,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7700 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2=,h1,c4,c4,n2= class2 aat 0.0 110.7700 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,n2=,h1,c4,c4,n2= class2 bb13 0.0 1.1010 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,h1,h1,c4,c4,h1 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,h1,h1,c4,c4,h1 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,h1,h1,c4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,h1,h1,c4,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,h1,h1,c4,c4,h1 class2 aat 0.0 110.7700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,h1,h1,c4,c4,h1 class2 bb13 0.0 1.1010 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c4,h1,c4,c4,c4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c4,h1,c4,c4,c4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c4,h1,c4,c4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c4,h1,c4,c4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c4,h1,c4,c4,c4 class2 aat 0.0 110.7700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c4,h1,c4,c4,c4 class2 bb13 0.0 1.1010 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c3a,h1,c4,c4,c3a class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c3a,h1,c4,c4,c3a class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c3a,h1,c4,c4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.1010 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c3a,h1,c4,c4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 110.7700 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c3a,h1,c4,c4,c3a class2 aat 0.0 110.7700 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,h1,c4,c4,c3a,h1,c4,c4,c3a class2 bb13 0.0 1.1010 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,si4,c4,c4,c4,si4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,si4,c4,c4,c4,si4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,si4,c4,c4,c4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,si4,c4,c4,c4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,si4,c4,c4,c4,si4 class2 aat 0.0 112.6700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,si4,c4,c4,c4,si4 class2 bb13 0.0 1.5300 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2n,c4,c4,c4,o2n class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2n,c4,c4,c4,o2n class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2n,c4,c4,c4,o2n class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2n,c4,c4,c4,o2n class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2n,c4,c4,c4,o2n class2 aat 0.0 112.6700 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2n,c4,c4,c4,o2n class2 bb13 0.0 1.5300 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2h,c4,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2h,c4,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2h,c4,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2h,c4,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2h,c4,c4,c4,o2 class2 aat 0.0 112.6700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2h,c4,c4,c4,o2 class2 bb13 0.0 1.5300 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2e,c4,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2e,c4,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2e,c4,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2e,c4,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2e,c4,c4,c4,o2 class2 aat 0.0 112.6700 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,o2e,c4,c4,c4,o2 class2 bb13 0.0 1.5300 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2z,c4,c4,c4,n2z class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2z,c4,c4,c4,n2z class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2z,c4,c4,c4,n2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2z,c4,c4,c4,n2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2z,c4,c4,c4,n2z class2 aat 0.0 112.6700 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2z,c4,c4,c4,n2z class2 bb13 0.0 1.5300 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2=,c4,c4,c4,n2= class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2=,c4,c4,c4,n2= class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2=,c4,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2=,c4,c4,c4,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2=,c4,c4,c4,n2= class2 aat 0.0 112.6700 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,n2=,c4,c4,c4,n2= class2 bb13 0.0 1.5300 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,h1,c4,c4,c4,h1 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,h1,c4,c4,c4,h1 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,h1,c4,c4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,h1,c4,c4,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,h1,c4,c4,c4,h1 class2 aat 0.0 112.6700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,h1,c4,c4,c4,h1 class2 bb13 0.0 1.5300 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c4,c4,c4,c4,c4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c4,c4,c4,c4,c4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c4,c4,c4,c4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c4,c4,c4,c4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c4,c4,c4,c4,c4 class2 aat 0.0 112.6700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c4,c4,c4,c4,c4 class2 bb13 0.0 1.5300 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c3a,c4,c4,c4,c3a class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c3a,c4,c4,c4,c3a class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c3a,c4,c4,c4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5300 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c3a,c4,c4,c4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 112.6700 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c3a,c4,c4,c4,c3a class2 aat 0.0 112.6700 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c4,c4,c4,c3a,c4,c4,c4,c3a class2 bb13 0.0 1.5300 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,si4,c3a,c4,c4,si4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,si4,c3a,c4,c4,si4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,si4,c3a,c4,c4,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,si4,c3a,c4,c4,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 108.4000 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,si4,c3a,c4,c4,si4 class2 aat 0.0 108.4000 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,si4,c3a,c4,c4,si4 class2 bb13 0.0 1.5010 1.8995 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2n,c3a,c4,c4,o2n class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2n,c3a,c4,c4,o2n class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2n,c3a,c4,c4,o2n class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2n,c3a,c4,c4,o2n class2 at 0.0 0.0 0.0 0.0 0.0 0.0 108.4000 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2n,c3a,c4,c4,o2n class2 aat 0.0 108.4000 105.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2n,c3a,c4,c4,o2n class2 bb13 0.0 1.5010 1.4350 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2h,c3a,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2h,c3a,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2h,c3a,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2h,c3a,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 108.4000 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2h,c3a,c4,c4,o2 class2 aat 0.0 108.4000 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2h,c3a,c4,c4,o2 class2 bb13 0.0 1.5010 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2e,c3a,c4,c4,o2 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2e,c3a,c4,c4,o2 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2e,c3a,c4,c4,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2e,c3a,c4,c4,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 108.4000 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2e,c3a,c4,c4,o2 class2 aat 0.0 108.4000 111.2700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,o2e,c3a,c4,c4,o2 class2 bb13 0.0 1.5010 1.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2z,c3a,c4,c4,n2z class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2z,c3a,c4,c4,n2z class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2z,c3a,c4,c4,n2z class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2z,c3a,c4,c4,n2z class2 at 0.0 0.0 0.0 0.0 0.0 0.0 108.4000 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2z,c3a,c4,c4,n2z class2 aat 0.0 108.4000 110.9900 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2z,c3a,c4,c4,n2z class2 bb13 0.0 1.5010 1.4814 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2=,c3a,c4,c4,n2= class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2=,c3a,c4,c4,n2= class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2=,c3a,c4,c4,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2=,c3a,c4,c4,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 108.4000 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2=,c3a,c4,c4,n2= class2 aat 0.0 108.4000 117.3170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,n2=,c3a,c4,c4,n2= class2 bb13 0.0 1.5010 1.4740 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 108.4000 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 aat 0.0 108.4000 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 bb13 0.0 1.5010 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c4,c3a,c4,c4,c4 class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c4,c3a,c4,c4,c4 class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c4,c3a,c4,c4,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c4,c3a,c4,c4,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 108.4000 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c4,c3a,c4,c4,c4 class2 aat 0.0 108.4000 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c4,c3a,c4,c4,c4 class2 bb13 0.0 1.5010 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c3a,c3a,c4,c4,c3a class2 0.0000 0.0 0.0000 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c3a,c3a,c4,c4,c3a class2 mbt 0.0 0.0 0.0 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c3a,c3a,c4,c4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c3a,c3a,c4,c4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 108.4000 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c3a,c3a,c4,c4,c3a class2 aat 0.0 108.4000 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c4,c4,X,c3a,c4,c4,c3a,c3a,c4,c4,c3a class2 bb13 0.0 1.5010 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,si4,si4,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,si4,si4,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,si4,si4,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,si4,si4,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,si4,si4,c3a,c3a,si4 class2 aat 0.0 120.0000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,si4,si4,c3a,c3a,si4 class2 bb13 0.0 1.8634 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,p4=,si4,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,p4=,si4,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,p4=,si4,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,p4=,si4,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,p4=,si4,c3a,c3a,p4= class2 aat 0.0 120.0000 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,p4=,si4,c3a,c3a,p4= class2 bb13 0.0 1.8634 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2h,si4,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2h,si4,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2h,si4,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2h,si4,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2h,si4,c3a,c3a,o2 class2 aat 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2h,si4,c3a,c3a,o2 class2 bb13 0.0 1.8634 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2e,si4,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2e,si4,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2e,si4,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2e,si4,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2e,si4,c3a,c3a,o2 class2 aat 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2e,si4,c3a,c3a,o2 class2 bb13 0.0 1.8634 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2,si4,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2,si4,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2,si4,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2,si4,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2,si4,c3a,c3a,o2 class2 aat 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,o2,si4,c3a,c3a,o2 class2 bb13 0.0 1.8634 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3o,si4,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3o,si4,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3o,si4,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3o,si4,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3o,si4,c3a,c3a,n3o class2 aat 0.0 120.0000 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3o,si4,c3a,c3a,n3o class2 bb13 0.0 1.8634 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3m,si4,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3m,si4,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3m,si4,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3m,si4,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3m,si4,c3a,c3a,n3m class2 aat 0.0 120.0000 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n3m,si4,c3a,c3a,n3m class2 bb13 0.0 1.8634 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n2=,si4,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n2=,si4,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n2=,si4,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n2=,si4,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n2=,si4,c3a,c3a,n2= class2 aat 0.0 120.0000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,n2=,si4,c3a,c3a,n2= class2 bb13 0.0 1.8634 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,h1,si4,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,h1,si4,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,h1,si4,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,h1,si4,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,h1,si4,c3a,c3a,h1 class2 aat 0.0 120.0000 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,h1,si4,c3a,c3a,h1 class2 bb13 0.0 1.8634 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c4,si4,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c4,si4,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c4,si4,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c4,si4,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c4,si4,c3a,c3a,c4 class2 aat 0.0 120.0000 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c4,si4,c3a,c3a,c4 class2 bb13 0.0 1.8634 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3prime,si4,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3prime,si4,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3prime,si4,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3prime,si4,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3prime,si4,c3a,c3a,c3prime class2 aat 0.0 120.0000 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3prime,si4,c3a,c3a,c3prime class2 bb13 0.0 1.8634 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.8634 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a class2 aat 0.0 120.0000 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,si4,c3a,c3a,c3a,si4,c3a,c3a,c3a class2 bb13 0.0 1.8634 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,si4,p4=,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,si4,p4=,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,si4,p4=,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,si4,p4=,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,si4,p4=,c3a,c3a,si4 class2 aat 0.0 120.0010 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,si4,p4=,c3a,c3a,si4 class2 bb13 0.0 1.7890 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,p4=,p4=,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,p4=,p4=,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,p4=,p4=,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,p4=,p4=,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,p4=,p4=,c3a,c3a,p4= class2 aat 0.0 120.0010 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,p4=,p4=,c3a,c3a,p4= class2 bb13 0.0 1.7890 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2h,p4=,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2h,p4=,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2h,p4=,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2h,p4=,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2h,p4=,c3a,c3a,o2 class2 aat 0.0 120.0010 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2h,p4=,c3a,c3a,o2 class2 bb13 0.0 1.7890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2e,p4=,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2e,p4=,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2e,p4=,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2e,p4=,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2e,p4=,c3a,c3a,o2 class2 aat 0.0 120.0010 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2e,p4=,c3a,c3a,o2 class2 bb13 0.0 1.7890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2,p4=,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2,p4=,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2,p4=,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2,p4=,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2,p4=,c3a,c3a,o2 class2 aat 0.0 120.0010 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,o2,p4=,c3a,c3a,o2 class2 bb13 0.0 1.7890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3o,p4=,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3o,p4=,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3o,p4=,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3o,p4=,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3o,p4=,c3a,c3a,n3o class2 aat 0.0 120.0010 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3o,p4=,c3a,c3a,n3o class2 bb13 0.0 1.7890 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3m,p4=,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3m,p4=,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3m,p4=,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3m,p4=,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3m,p4=,c3a,c3a,n3m class2 aat 0.0 120.0010 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n3m,p4=,c3a,c3a,n3m class2 bb13 0.0 1.7890 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n2=,p4=,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n2=,p4=,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n2=,p4=,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n2=,p4=,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n2=,p4=,c3a,c3a,n2= class2 aat 0.0 120.0010 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,n2=,p4=,c3a,c3a,n2= class2 bb13 0.0 1.7890 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,h1,p4=,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,h1,p4=,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,h1,p4=,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,h1,p4=,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,h1,p4=,c3a,c3a,h1 class2 aat 0.0 120.0010 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,h1,p4=,c3a,c3a,h1 class2 bb13 0.0 1.7890 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c4,p4=,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c4,p4=,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c4,p4=,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c4,p4=,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c4,p4=,c3a,c3a,c4 class2 aat 0.0 120.0010 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c4,p4=,c3a,c3a,c4 class2 bb13 0.0 1.7890 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3prime,p4=,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3prime,p4=,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3prime,p4=,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3prime,p4=,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3prime,p4=,c3a,c3a,c3prime class2 aat 0.0 120.0010 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3prime,p4=,c3a,c3a,c3prime class2 bb13 0.0 1.7890 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.7890 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0010 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a class2 aat 0.0 120.0010 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,p4=,c3a,c3a,c3a,p4=,c3a,c3a,c3a class2 bb13 0.0 1.7890 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,si4,o2,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,si4,o2,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,si4,o2,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,si4,o2,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,si4,o2,c3a,c3a,si4 class2 aat 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,si4,o2,c3a,c3a,si4 class2 bb13 0.0 1.3768 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 aat 0.0 123.4200 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 bb13 0.0 1.3768 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 aat 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 bb13 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 aat 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 bb13 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2,o2,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2,o2,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2,o2,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2,o2,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2,o2,c3a,c3a,o2 class2 aat 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,o2,o2,c3a,c3a,o2 class2 bb13 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 aat 0.0 123.4200 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 bb13 0.0 1.3768 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 aat 0.0 123.4200 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 bb13 0.0 1.3768 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 aat 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 bb13 0.0 1.3768 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,h1,o2,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,h1,o2,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,h1,o2,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,h1,o2,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,h1,o2,c3a,c3a,h1 class2 aat 0.0 123.4200 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,h1,o2,c3a,c3a,h1 class2 bb13 0.0 1.3768 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c4,o2,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c4,o2,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c4,o2,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c4,o2,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c4,o2,c3a,c3a,c4 class2 aat 0.0 123.4200 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c4,o2,c3a,c3a,c4 class2 bb13 0.0 1.3768 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 aat 0.0 123.4200 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 bb13 0.0 1.3768 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 aat 0.0 123.4200 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2h,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 bb13 0.0 1.3768 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,si4,o2,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,si4,o2,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,si4,o2,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,si4,o2,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,si4,o2,c3a,c3a,si4 class2 aat 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,si4,o2,c3a,c3a,si4 class2 bb13 0.0 1.3768 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 aat 0.0 123.4200 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 bb13 0.0 1.3768 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 aat 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 bb13 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 aat 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 bb13 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2,o2,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2,o2,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2,o2,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2,o2,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2,o2,c3a,c3a,o2 class2 aat 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,o2,o2,c3a,c3a,o2 class2 bb13 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 aat 0.0 123.4200 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 bb13 0.0 1.3768 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 aat 0.0 123.4200 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 bb13 0.0 1.3768 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 aat 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 bb13 0.0 1.3768 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,h1,o2,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,h1,o2,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,h1,o2,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,h1,o2,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,h1,o2,c3a,c3a,h1 class2 aat 0.0 123.4200 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,h1,o2,c3a,c3a,h1 class2 bb13 0.0 1.3768 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c4,o2,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c4,o2,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c4,o2,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c4,o2,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c4,o2,c3a,c3a,c4 class2 aat 0.0 123.4200 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c4,o2,c3a,c3a,c4 class2 bb13 0.0 1.3768 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 aat 0.0 123.4200 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 bb13 0.0 1.3768 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 aat 0.0 123.4200 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2e,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 bb13 0.0 1.3768 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,si4,o2,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,si4,o2,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,si4,o2,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,si4,o2,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,si4,o2,c3a,c3a,si4 class2 aat 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,si4,o2,c3a,c3a,si4 class2 bb13 0.0 1.3768 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 aat 0.0 123.4200 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,p4=,o2,c3a,c3a,p4= class2 bb13 0.0 1.3768 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 aat 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2h,o2,c3a,c3a,o2 class2 bb13 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 aat 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2e,o2,c3a,c3a,o2 class2 bb13 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2,o2,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2,o2,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2,o2,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2,o2,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2,o2,c3a,c3a,o2 class2 aat 0.0 123.4200 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,o2,o2,c3a,c3a,o2 class2 bb13 0.0 1.3768 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 aat 0.0 123.4200 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3o,o2,c3a,c3a,n3o class2 bb13 0.0 1.3768 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 aat 0.0 123.4200 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n3m,o2,c3a,c3a,n3m class2 bb13 0.0 1.3768 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 aat 0.0 123.4200 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,n2=,o2,c3a,c3a,n2= class2 bb13 0.0 1.3768 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,h1,o2,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,h1,o2,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,h1,o2,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,h1,o2,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,h1,o2,c3a,c3a,h1 class2 aat 0.0 123.4200 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,h1,o2,c3a,c3a,h1 class2 bb13 0.0 1.3768 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c4,o2,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c4,o2,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c4,o2,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c4,o2,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c4,o2,c3a,c3a,c4 class2 aat 0.0 123.4200 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c4,o2,c3a,c3a,c4 class2 bb13 0.0 1.3768 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 aat 0.0 123.4200 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3prime,o2,c3a,c3a,c3prime class2 bb13 0.0 1.3768 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3768 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 123.4200 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 aat 0.0 123.4200 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a class2 bb13 0.0 1.3768 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,si4,n3o,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,si4,n3o,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,si4,n3o,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,si4,n3o,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,si4,n3o,c3a,c3a,si4 class2 aat 0.0 118.8000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,si4,n3o,c3a,c3a,si4 class2 bb13 0.0 1.4300 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,p4=,n3o,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,p4=,n3o,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,p4=,n3o,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,p4=,n3o,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,p4=,n3o,c3a,c3a,p4= class2 aat 0.0 118.8000 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,p4=,n3o,c3a,c3a,p4= class2 bb13 0.0 1.4300 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2h,n3o,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2h,n3o,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2h,n3o,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2h,n3o,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2h,n3o,c3a,c3a,o2 class2 aat 0.0 118.8000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2h,n3o,c3a,c3a,o2 class2 bb13 0.0 1.4300 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2e,n3o,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2e,n3o,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2e,n3o,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2e,n3o,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2e,n3o,c3a,c3a,o2 class2 aat 0.0 118.8000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2e,n3o,c3a,c3a,o2 class2 bb13 0.0 1.4300 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2,n3o,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2,n3o,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2,n3o,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2,n3o,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2,n3o,c3a,c3a,o2 class2 aat 0.0 118.8000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,o2,n3o,c3a,c3a,o2 class2 bb13 0.0 1.4300 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3o,n3o,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3o,n3o,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3o,n3o,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3o,n3o,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3o,n3o,c3a,c3a,n3o class2 aat 0.0 118.8000 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3o,n3o,c3a,c3a,n3o class2 bb13 0.0 1.4300 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3m,n3o,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3m,n3o,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3m,n3o,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3m,n3o,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3m,n3o,c3a,c3a,n3m class2 aat 0.0 118.8000 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n3m,n3o,c3a,c3a,n3m class2 bb13 0.0 1.4300 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n2=,n3o,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n2=,n3o,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n2=,n3o,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n2=,n3o,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n2=,n3o,c3a,c3a,n2= class2 aat 0.0 118.8000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,n2=,n3o,c3a,c3a,n2= class2 bb13 0.0 1.4300 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,h1,n3o,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,h1,n3o,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,h1,n3o,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,h1,n3o,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,h1,n3o,c3a,c3a,h1 class2 aat 0.0 118.8000 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,h1,n3o,c3a,c3a,h1 class2 bb13 0.0 1.4300 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c4,n3o,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c4,n3o,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c4,n3o,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c4,n3o,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c4,n3o,c3a,c3a,c4 class2 aat 0.0 118.8000 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c4,n3o,c3a,c3a,c4 class2 bb13 0.0 1.4300 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3prime,n3o,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3prime,n3o,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3prime,n3o,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3prime,n3o,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3prime,n3o,c3a,c3a,c3prime class2 aat 0.0 118.8000 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3prime,n3o,c3a,c3a,c3prime class2 bb13 0.0 1.4300 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4300 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.8000 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a class2 aat 0.0 118.8000 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3o,c3a,c3a,c3a,n3o,c3a,c3a,c3a class2 bb13 0.0 1.4300 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,si4,n3m,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,si4,n3m,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,si4,n3m,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,si4,n3m,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,si4,n3m,c3a,c3a,si4 class2 aat 0.0 120.7640 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,si4,n3m,c3a,c3a,si4 class2 bb13 0.0 1.3950 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,p4=,n3m,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,p4=,n3m,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,p4=,n3m,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,p4=,n3m,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,p4=,n3m,c3a,c3a,p4= class2 aat 0.0 120.7640 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,p4=,n3m,c3a,c3a,p4= class2 bb13 0.0 1.3950 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2h,n3m,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2h,n3m,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2h,n3m,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2h,n3m,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2h,n3m,c3a,c3a,o2 class2 aat 0.0 120.7640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2h,n3m,c3a,c3a,o2 class2 bb13 0.0 1.3950 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2e,n3m,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2e,n3m,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2e,n3m,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2e,n3m,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2e,n3m,c3a,c3a,o2 class2 aat 0.0 120.7640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2e,n3m,c3a,c3a,o2 class2 bb13 0.0 1.3950 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2,n3m,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2,n3m,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2,n3m,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2,n3m,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2,n3m,c3a,c3a,o2 class2 aat 0.0 120.7640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,o2,n3m,c3a,c3a,o2 class2 bb13 0.0 1.3950 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3o,n3m,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3o,n3m,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3o,n3m,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3o,n3m,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3o,n3m,c3a,c3a,n3o class2 aat 0.0 120.7640 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3o,n3m,c3a,c3a,n3o class2 bb13 0.0 1.3950 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3m,n3m,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3m,n3m,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3m,n3m,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3m,n3m,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3m,n3m,c3a,c3a,n3m class2 aat 0.0 120.7640 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n3m,n3m,c3a,c3a,n3m class2 bb13 0.0 1.3950 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n2=,n3m,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n2=,n3m,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n2=,n3m,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n2=,n3m,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n2=,n3m,c3a,c3a,n2= class2 aat 0.0 120.7640 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,n2=,n3m,c3a,c3a,n2= class2 bb13 0.0 1.3950 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,h1,n3m,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,h1,n3m,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,h1,n3m,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,h1,n3m,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,h1,n3m,c3a,c3a,h1 class2 aat 0.0 120.7640 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,h1,n3m,c3a,c3a,h1 class2 bb13 0.0 1.3950 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c4,n3m,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c4,n3m,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c4,n3m,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c4,n3m,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c4,n3m,c3a,c3a,c4 class2 aat 0.0 120.7640 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c4,n3m,c3a,c3a,c4 class2 bb13 0.0 1.3950 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3prime,n3m,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3prime,n3m,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3prime,n3m,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3prime,n3m,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3prime,n3m,c3a,c3a,c3prime class2 aat 0.0 120.7640 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3prime,n3m,c3a,c3a,c3prime class2 bb13 0.0 1.3950 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.3950 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.7640 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a class2 aat 0.0 120.7640 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n3m,c3a,c3a,c3a,n3m,c3a,c3a,c3a class2 bb13 0.0 1.3950 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,si4,n2=,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,si4,n2=,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,si4,n2=,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,si4,n2=,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,si4,n2=,c3a,c3a,si4 class2 aat 0.0 120.0000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,si4,n2=,c3a,c3a,si4 class2 bb13 0.0 1.4000 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4= class2 aat 0.0 120.0000 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,p4=,n2=,c3a,c3a,p4= class2 bb13 0.0 1.4000 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2h,n2=,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2h,n2=,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2h,n2=,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2h,n2=,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2h,n2=,c3a,c3a,o2 class2 aat 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2h,n2=,c3a,c3a,o2 class2 bb13 0.0 1.4000 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2e,n2=,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2e,n2=,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2e,n2=,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2e,n2=,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2e,n2=,c3a,c3a,o2 class2 aat 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2e,n2=,c3a,c3a,o2 class2 bb13 0.0 1.4000 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2,n2=,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2,n2=,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2,n2=,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2,n2=,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2,n2=,c3a,c3a,o2 class2 aat 0.0 120.0000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,o2,n2=,c3a,c3a,o2 class2 bb13 0.0 1.4000 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3o,n2=,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3o,n2=,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3o,n2=,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3o,n2=,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3o,n2=,c3a,c3a,n3o class2 aat 0.0 120.0000 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3o,n2=,c3a,c3a,n3o class2 bb13 0.0 1.4000 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3m,n2=,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3m,n2=,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3m,n2=,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3m,n2=,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3m,n2=,c3a,c3a,n3m class2 aat 0.0 120.0000 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n3m,n2=,c3a,c3a,n3m class2 bb13 0.0 1.4000 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n2=,n2=,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n2=,n2=,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n2=,n2=,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n2=,n2=,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n2=,n2=,c3a,c3a,n2= class2 aat 0.0 120.0000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,n2=,n2=,c3a,c3a,n2= class2 bb13 0.0 1.4000 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,h1,n2=,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,h1,n2=,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,h1,n2=,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,h1,n2=,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,h1,n2=,c3a,c3a,h1 class2 aat 0.0 120.0000 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,h1,n2=,c3a,c3a,h1 class2 bb13 0.0 1.4000 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c4,n2=,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c4,n2=,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c4,n2=,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c4,n2=,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c4,n2=,c3a,c3a,c4 class2 aat 0.0 120.0000 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c4,n2=,c3a,c3a,c4 class2 bb13 0.0 1.4000 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3prime,n2=,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3prime,n2=,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3prime,n2=,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3prime,n2=,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3prime,n2=,c3a,c3a,c3prime class2 aat 0.0 120.0000 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3prime,n2=,c3a,c3a,c3prime class2 bb13 0.0 1.4000 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3a,n2=,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3a,n2=,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3a,n2=,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4000 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3a,n2=,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0000 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3a,n2=,c3a,c3a,c3a class2 aat 0.0 120.0000 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,n2=,c3a,c3a,c3a,n2=,c3a,c3a,c3a class2 bb13 0.0 1.4000 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 aat 0.0 117.9400 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,si4,h1,c3a,c3a,si4 class2 bb13 0.0 1.0982 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 aat 0.0 117.9400 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,p4=,h1,c3a,c3a,p4= class2 bb13 0.0 1.0982 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 aat 0.0 117.9400 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 bb13 0.0 1.0982 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 aat 0.0 117.9400 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 bb13 0.0 1.0982 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 aat 0.0 117.9400 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 bb13 0.0 1.0982 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 aat 0.0 117.9400 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3o,h1,c3a,c3a,n3o class2 bb13 0.0 1.0982 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 aat 0.0 117.9400 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n3m,h1,c3a,c3a,n3m class2 bb13 0.0 1.0982 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n2=,h1,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n2=,h1,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n2=,h1,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n2=,h1,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n2=,h1,c3a,c3a,n2= class2 aat 0.0 117.9400 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,n2=,h1,c3a,c3a,n2= class2 bb13 0.0 1.0982 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 aat 0.0 117.9400 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 bb13 0.0 1.0982 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c4,h1,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c4,h1,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c4,h1,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c4,h1,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c4,h1,c3a,c3a,c4 class2 aat 0.0 117.9400 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c4,h1,c3a,c3a,c4 class2 bb13 0.0 1.0982 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3prime,h1,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3prime,h1,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3prime,h1,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3prime,h1,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3prime,h1,c3a,c3a,c3prime class2 aat 0.0 117.9400 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3prime,h1,c3a,c3a,c3prime class2 bb13 0.0 1.0982 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0982 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 117.9400 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a class2 aat 0.0 117.9400 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a class2 bb13 0.0 1.0982 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,si4,c4,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,si4,c4,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,si4,c4,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,si4,c4,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,si4,c4,c3a,c3a,si4 class2 aat 0.0 120.0500 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,si4,c4,c3a,c3a,si4 class2 bb13 0.0 1.5010 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,p4=,c4,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,p4=,c4,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,p4=,c4,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,p4=,c4,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,p4=,c4,c3a,c3a,p4= class2 aat 0.0 120.0500 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,p4=,c4,c3a,c3a,p4= class2 bb13 0.0 1.5010 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2h,c4,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2h,c4,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2h,c4,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2h,c4,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2h,c4,c3a,c3a,o2 class2 aat 0.0 120.0500 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2h,c4,c3a,c3a,o2 class2 bb13 0.0 1.5010 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2e,c4,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2e,c4,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2e,c4,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2e,c4,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2e,c4,c3a,c3a,o2 class2 aat 0.0 120.0500 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2e,c4,c3a,c3a,o2 class2 bb13 0.0 1.5010 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2,c4,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2,c4,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2,c4,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2,c4,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2,c4,c3a,c3a,o2 class2 aat 0.0 120.0500 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,o2,c4,c3a,c3a,o2 class2 bb13 0.0 1.5010 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3o,c4,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3o,c4,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3o,c4,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3o,c4,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3o,c4,c3a,c3a,n3o class2 aat 0.0 120.0500 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3o,c4,c3a,c3a,n3o class2 bb13 0.0 1.5010 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3m,c4,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3m,c4,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3m,c4,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3m,c4,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3m,c4,c3a,c3a,n3m class2 aat 0.0 120.0500 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n3m,c4,c3a,c3a,n3m class2 bb13 0.0 1.5010 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n2=,c4,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n2=,c4,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n2=,c4,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n2=,c4,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n2=,c4,c3a,c3a,n2= class2 aat 0.0 120.0500 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,n2=,c4,c3a,c3a,n2= class2 bb13 0.0 1.5010 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 aat 0.0 120.0500 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 bb13 0.0 1.5010 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c4,c4,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c4,c4,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c4,c4,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c4,c4,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c4,c4,c3a,c3a,c4 class2 aat 0.0 120.0500 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c4,c4,c3a,c3a,c4 class2 bb13 0.0 1.5010 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3prime,c4,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3prime,c4,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3prime,c4,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3prime,c4,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3prime,c4,c3a,c3a,c3prime class2 aat 0.0 120.0500 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3prime,c4,c3a,c3a,c3prime class2 bb13 0.0 1.5010 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.5010 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a class2 aat 0.0 120.0500 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a class2 bb13 0.0 1.5010 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,si4,c3prime,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,si4,c3prime,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,si4,c3prime,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,si4,c3prime,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,si4,c3prime,c3a,c3a,si4 class2 aat 0.0 116.0640 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,si4,c3prime,c3a,c3a,si4 class2 bb13 0.0 1.4890 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,p4=,c3prime,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,p4=,c3prime,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,p4=,c3prime,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,p4=,c3prime,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,p4=,c3prime,c3a,c3a,p4= class2 aat 0.0 116.0640 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,p4=,c3prime,c3a,c3a,p4= class2 bb13 0.0 1.4890 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2h,c3prime,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2h,c3prime,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2h,c3prime,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2h,c3prime,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2h,c3prime,c3a,c3a,o2 class2 aat 0.0 116.0640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2h,c3prime,c3a,c3a,o2 class2 bb13 0.0 1.4890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2e,c3prime,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2e,c3prime,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2e,c3prime,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2e,c3prime,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2e,c3prime,c3a,c3a,o2 class2 aat 0.0 116.0640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2e,c3prime,c3a,c3a,o2 class2 bb13 0.0 1.4890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2,c3prime,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2,c3prime,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2,c3prime,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2,c3prime,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2,c3prime,c3a,c3a,o2 class2 aat 0.0 116.0640 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,o2,c3prime,c3a,c3a,o2 class2 bb13 0.0 1.4890 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3o,c3prime,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3o,c3prime,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3o,c3prime,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3o,c3prime,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3o,c3prime,c3a,c3a,n3o class2 aat 0.0 116.0640 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3o,c3prime,c3a,c3a,n3o class2 bb13 0.0 1.4890 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m class2 aat 0.0 116.0640 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n3m,c3prime,c3a,c3a,n3m class2 bb13 0.0 1.4890 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n2=,c3prime,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n2=,c3prime,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n2=,c3prime,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n2=,c3prime,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n2=,c3prime,c3a,c3a,n2= class2 aat 0.0 116.0640 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,n2=,c3prime,c3a,c3a,n2= class2 bb13 0.0 1.4890 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 aat 0.0 116.0640 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,h1,c3prime,c3a,c3a,h1 class2 bb13 0.0 1.4890 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c4,c3prime,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c4,c3prime,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c4,c3prime,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c4,c3prime,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c4,c3prime,c3a,c3a,c4 class2 aat 0.0 116.0640 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c4,c3prime,c3a,c3a,c4 class2 bb13 0.0 1.4890 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3prime,c3prime,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3prime,c3prime,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3prime,c3prime,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3prime,c3prime,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3prime,c3prime,c3a,c3a,c3prime class2 aat 0.0 116.0640 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3prime,c3prime,c3a,c3a,c3prime class2 bb13 0.0 1.4890 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4890 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 116.0640 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a class2 aat 0.0 116.0640 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3prime,c3a,c3a,c3a,c3prime,c3a,c3a,c3a class2 bb13 0.0 1.4890 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 aat 0.0 118.9000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 bb13 0.0 1.4170 1.8634 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 aat 0.0 118.9000 120.0010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 bb13 0.0 1.4170 1.7890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 aat 0.0 118.9000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 bb13 0.0 1.4170 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 aat 0.0 118.9000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 bb13 0.0 1.4170 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 aat 0.0 118.9000 123.4200 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 bb13 0.0 1.4170 1.3768 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 aat 0.0 118.9000 118.8000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 bb13 0.0 1.4170 1.4300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 aat 0.0 118.9000 120.7640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 bb13 0.0 1.4170 1.3950 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n2=,c3a,c3a,c3a,n2= class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n2=,c3a,c3a,c3a,n2= class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n2=,c3a,c3a,c3a,n2= class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n2=,c3a,c3a,c3a,n2= class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n2=,c3a,c3a,c3a,n2= class2 aat 0.0 118.9000 120.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,n2=,c3a,c3a,c3a,n2= class2 bb13 0.0 1.4170 1.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 aat 0.0 118.9000 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 bb13 0.0 1.4170 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 aat 0.0 118.9000 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 bb13 0.0 1.4170 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 aat 0.0 118.9000 116.0640 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 bb13 0.0 1.4170 1.4890 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 0.0000 0.0 4.5000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 mbt 0.0 0.0 0.0 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 118.9000 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 aat 0.0 118.9000 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:X,c3a,c3a,X,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 bb13 0.0 1.4170 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c4,c4,h1,h1,c4,c4,h1,h1,c4,c4,h1 class2 -0.1432 0.0 0.0617 0.0 -0.1530 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c4,c4,h1,h1,c4,c4,h1,h1,c4,c4,h1 class2 mbt -14.2610 -0.5322 -0.4864 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c4,c4,h1,h1,c4,c4,h1,h1,c4,c4,h1 class2 ebt 0.2130 0.3120 0.0777 0.2130 0.3120 0.0777 1.1010 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c4,c4,h1,h1,c4,c4,h1,h1,c4,c4,h1 class2 at -0.8085 0.5569 -0.2466 -0.8085 0.5569 -0.2466 110.7700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c4,c4,h1,h1,c4,c4,h1,h1,c4,c4,h1 class2 aat -12.5640 110.7700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c4,c4,h1,h1,c4,c4,h1,h1,c4,c4,h1 class2 bb13 0.0 1.1010 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,h1,c4,c4,c4,h1,c4,c4,c4,h1 class2 0.0000 0.0 0.0316 0.0 -0.1681 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,h1,c4,c4,c4,h1,c4,c4,c4,h1 class2 mbt -14.8790 -3.6581 -0.3138 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,h1,c4,c4,c4,h1,c4,c4,c4,h1 class2 ebt 0.2486 0.2422 -0.0925 0.0814 0.0591 0.2219 1.5300 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,h1,c4,c4,c4,h1,c4,c4,c4,h1 class2 at -0.2454 0.0000 -0.1136 0.3113 0.4516 -0.1988 112.6700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,h1,c4,c4,c4,h1,c4,c4,c4,h1 class2 aat -16.1640 112.6700 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,h1,c4,c4,c4,h1,c4,c4,c4,h1 class2 bb13 0.0 1.5300 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4 class2 0.0000 0.0 0.0514 0.0 -0.1430 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4 class2 mbt -17.7870 -7.1877 0.0000 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4 class2 ebt -0.0732 0.0000 0.0000 -0.0732 0.0000 0.0000 1.5300 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4 class2 at 0.3886 -0.3139 0.1389 0.3886 -0.3139 0.1389 112.6700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4 class2 aat -22.0450 112.6700 112.6700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4,c4 class2 bb13 0.0 1.5300 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c4,c4,h1,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 -0.0228 0.0 0.0280 0.0 -0.1863 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c4,c4,h1,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 mbt 0.0000 0.0000 0.0000 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c4,c4,h1,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 ebt 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.5010 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c4,c4,h1,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 at 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 108.4000 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c4,c4,h1,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 aat 0.0 108.4000 110.7700 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c4,c4,h1,c3a,c4,c4,h1,c3a,c4,c4,h1 class2 bb13 0.0 1.5010 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c4,c3a,c3a,c4,c4,c3a,c3a,c4,c4 class2 -0.2802 0.0 -0.0678 0.0 -0.0122 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c4,c3a,c3a,c4,c4,c3a,c3a,c4,c4 class2 mbt 0.0000 0.0000 0.0000 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c4,c3a,c3a,c4,c4,c3a,c3a,c4,c4 class2 ebt 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.4170 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c4,c3a,c3a,c4,c4,c3a,c3a,c4,c4 class2 at 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 120.0500 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c4,c3a,c3a,c4,c4,c3a,c3a,c4,c4 class2 aat 0.0 120.0500 108.4000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c4,c3a,c3a,c4,c4,c3a,c3a,c4,c4 class2 bb13 0.0 1.4170 1.5300 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a class2 -0.2802 0.0 -0.0678 0.0 -0.0122 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a class2 mbt 0.0 0.0 0.0 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.4170 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0500 111.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a class2 aat 0.0 120.0500 111.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a class2 bb13 0.0 1.4170 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2,h1 class2 -0.6900 0.0 0.5097 0.0 0.0095 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2,h1 class2 mbt 1.1580 3.2697 3.5132 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2,h1 class2 ebt 0.9000 -1.3456 1.1900 3.4132 0.5873 -0.1323 1.4170 0.9494 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2,h1 class2 at -5.1360 -1.0122 0.0000 4.6852 0.0230 -0.5980 123.4200 108.1900 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2,h1 class2 aat -4.6072 123.4200 108.1900 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2,h1 class2 bb13 1.1590 1.4170 0.9494 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 0.0000 0.0 1.7234 0.0 0.0000 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 mbt 0.0000 5.5432 0.0000 1.4170 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 ebt 0.0000 -1.5867 0.0000 0.0000 4.2641 0.0000 1.0982 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 at 0.0000 1.8729 0.0000 0.0000 2.5706 0.0000 117.9400 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 aat 4.2296 117.9400 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2h,h1,c3a,c3a,o2 class2 bb13 -2.0517 1.0982 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 0.0000 0.0 1.7234 0.0 0.0000 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 mbt 0.0000 5.5432 0.0000 1.4170 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 ebt 0.0000 -1.5867 0.0000 0.0000 4.2641 0.0000 1.0982 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 at 0.0000 1.8729 0.0000 0.0000 2.5706 0.0000 117.9400 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 aat 4.2296 117.9400 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2e,h1,c3a,c3a,o2 class2 bb13 -2.0517 1.0982 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 0.0000 0.0 1.7234 0.0 0.0000 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 mbt 0.0000 5.5432 0.0000 1.4170 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 ebt 0.0000 -1.5867 0.0000 0.0000 4.2641 0.0000 1.0982 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 at 0.0000 1.8729 0.0000 0.0000 2.5706 0.0000 117.9400 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 aat 4.2296 117.9400 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:h1,c3a,c3a,o2,h1,c3a,c3a,o2,h1,c3a,c3a,o2 class2 bb13 -2.0517 1.0982 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 0.0000 0.0 4.8498 0.0 0.0000 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 mbt 0.0000 4.8255 0.0000 1.4170 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 ebt 0.0000 0.2655 0.0000 0.0000 4.8905 0.0000 1.4170 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 at 0.0000 10.0155 0.0000 0.0000 1.7404 0.0000 118.9000 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 aat -21.0247 118.9000 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2h,c3a,c3a,c3a,o2 class2 bb13 -2.2436 1.4170 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 0.0000 0.0 4.8498 0.0 0.0000 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 mbt 0.0000 4.8255 0.0000 1.4170 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 ebt 0.0000 0.2655 0.0000 0.0000 4.8905 0.0000 1.4170 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 at 0.0000 10.0155 0.0000 0.0000 1.7404 0.0000 118.9000 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 aat -21.0247 118.9000 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2e,c3a,c3a,c3a,o2 class2 bb13 -2.2436 1.4170 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 0.0000 0.0 4.8498 0.0 0.0000 0.0 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 mbt 0.0000 4.8255 0.0000 1.4170 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 ebt 0.0000 0.2655 0.0000 0.0000 4.8905 0.0000 1.4170 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 at 0.0000 10.0155 0.0000 0.0000 1.7404 0.0000 118.9000 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 aat -21.0247 118.9000 123.4200 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 bb13 -2.2436 1.4170 1.3768 # (ver=1.0, ref=3) + dihedral_coeff @dihedral:c3a,c3a,c4,h1,c3a,c3a,c4,h1,c3a,c3a,c4,h1 class2 -0.2802 0.0 -0.0678 0.0 -0.0122 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,h1,c3a,c3a,c4,h1,c3a,c3a,c4,h1 class2 mbt -5.5679 1.4083 0.3010 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,h1,c3a,c3a,c4,h1,c3a,c3a,c4,h1 class2 ebt -0.5835 1.1220 0.3978 1.3997 0.7756 0.0000 1.4170 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,h1,c3a,c3a,c4,h1,c3a,c3a,c4,h1 class2 at 0.2251 0.6548 0.1237 4.6266 0.1632 0.0461 120.0500 111.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,h1,c3a,c3a,c4,h1,c3a,c3a,c4,h1 class2 aat -5.8888 120.0500 111.0000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c4,h1,c3a,c3a,c4,h1,c3a,c3a,c4,h1 class2 bb13 -3.4826 1.4170 1.1010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c3a,c3a,h1,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 0.0000 0.0 2.3500 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c3a,c3a,h1,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 mbt 0.0000 4.8228 0.0000 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c3a,c3a,h1,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 ebt 0.0000 -0.6890 0.0000 0.0000 -0.6890 0.0000 1.0982 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c3a,c3a,h1,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 at 0.0000 2.4501 0.0000 0.0000 2.4501 0.0000 117.9400 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c3a,c3a,h1,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 aat 0.3598 117.9400 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:h1,c3a,c3a,h1,h1,c3a,c3a,h1,h1,c3a,c3a,h1 class2 bb13 -1.7077 1.0982 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c3a,c3a,h1,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 0.0000 0.0 1.5590 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c3a,c3a,h1,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 mbt 0.0000 3.9421 0.0000 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c3a,c3a,h1,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 ebt 0.0000 -1.7970 0.0000 0.0000 -0.4879 0.0000 1.5010 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c3a,c3a,h1,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 at 0.0000 -0.1242 0.0000 0.0000 3.4601 0.0000 120.0500 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c3a,c3a,h1,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 aat 4.4444 120.0500 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c4,c3a,c3a,h1,c4,c3a,c3a,h1,c4,c3a,c3a,h1 class2 bb13 0.8743 1.5010 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 0.0000 0.0 3.9661 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 mbt 0.0000 -1.1521 0.0000 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 ebt 0.0000 -6.8958 0.0000 0.0000 -0.4669 0.0000 1.4170 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 at 0.0000 2.5014 0.0000 0.0000 2.7147 0.0000 118.9000 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 aat -4.8141 118.9000 117.9400 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,h1,c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 bb13 -6.2741 1.4170 1.0982 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 0.0000 0.0 4.4072 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 mbt 0.0000 9.1792 0.0000 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 ebt 0.0000 -0.6918 0.0000 0.0000 0.2421 0.0000 1.4170 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 at 0.0000 3.8987 0.0000 0.0000 -4.4683 0.0000 118.9000 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 aat -14.4097 118.9000 120.0500 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c4,c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 bb13 2.5085 1.4170 1.5010 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 8.3667 0.0 1.2000 0.0 0.0000 0.0 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 mbt 27.5989 -2.3120 0.0000 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 ebt -0.1185 6.3204 0.0000 -0.1185 6.3204 0.0000 1.4170 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 at 1.9767 1.0239 0.0000 1.9767 1.0239 0.0000 118.9000 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 aat 0.0000 118.9000 118.9000 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 bb13 53.0000 1.4170 1.4170 # (ver=1.0, ref=1) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1,X,X,X,X,X,X,X,X class2 -0.4066 0.0 1.2513 0.0 -0.7507 0.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c3prime,n3m,c3prime,o1,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=7) + dihedral_coeff @dihedral:c4,c4,n3o,o1=,X,X,X,X,X,X,X,X class2 0.0000 0.0 0.0000 0.0 -0.3500 0.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,n3o,o1=,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,n3o,o1=,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,n3o,o1=,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,n3o,o1=,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:c4,c4,n3o,o1=,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=6) + dihedral_coeff @dihedral:X,n3,p4=,X,X,X,X,X,X,X,X,X class2 0.0000 0.0 0.0000 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n3,p4=,X,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n3,p4=,X,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n3,p4=,X,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n3,p4=,X,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,n3,p4=,X,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,n2=,X,X,X,X,X,X,X,X,X class2 0.0000 0.0 1.0000 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,n2=,X,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,n2=,X,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,n2=,X,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,n2=,X,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,c3a,n2=,X,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,o2,p4=,X,X,X,X,X,X,X,X,X class2 5.7080 0.0 2.1180 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,o2,p4=,X,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,o2,p4=,X,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,o2,p4=,X,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,o2,p4=,X,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:X,o2,p4=,X,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,o2,X,X,X,X,X,X,X,X class2 5.7080 0.0 2.1180 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,o2,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,o2,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,o2,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,o2,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,o2,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,n2=,X,X,X,X,X,X,X,X class2 5.7080 0.0 2.1180 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,n2=,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,n2=,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,n2=,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,n2=,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,n2=,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,h1,X,X,X,X,X,X,X,X class2 5.7080 0.0 2.1180 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,h1,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,h1,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,h1,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,h1,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2,p4=,h1,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,o2,X,X,X,X,X,X,X,X class2 0.0000 0.0 0.0000 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,o2,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,o2,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,o2,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,o2,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,o2,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,n2=,X,X,X,X,X,X,X,X class2 0.0000 0.0 0.0000 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,n2=,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,n2=,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,n2=,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,n2=,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,n2=,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,h1,X,X,X,X,X,X,X,X class2 0.0000 0.0 0.0000 0.0 0.0000 0.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,h1,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,h1,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,h1,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,h1,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,n3,p4=,h1,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=4) + dihedral_coeff @dihedral:h1,o2z,si4,o2z,X,X,X,X,X,X,X,X class2 0.0000 0.0 0.0000 0.0 -0.0500 0.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,o2z,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,o2z,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,o2z,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,o2z,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,o2z,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,h1,X,X,X,X,X,X,X,X class2 0.0000 0.0 0.0000 0.0 -0.0500 0.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,h1,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,h1,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,h1,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,h1,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:h1,o2z,si4,h1,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,h1,X,X,X,X,X,X,X,X class2 0.0000 0.0 0.0000 0.0 -0.0500 0.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,h1,X,X,X,X,X,X,X,X class2 mbt 0.0 0.0 0.0 1.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,h1,X,X,X,X,X,X,X,X class2 ebt 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,h1,X,X,X,X,X,X,X,X class2 at 0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,h1,X,X,X,X,X,X,X,X class2 aat 0.0 120.0 120.0 # (ver=1.0, ref=2) + dihedral_coeff @dihedral:c4,si4,o2z,h1,X,X,X,X,X,X,X,X class2 bb13 0.0 1.0 1.0 # (ver=1.0, ref=2) + } # end of dihedral_coeff commands + + + # --------------- Improper Interactions: --------------------- + + + # -- Rules for generating (4-body) "improper" interactions: -- + # ImproperType AtmType1 AtmType2 AtmType3 AtmType3 [BondType1 Bnd2 Bnd3] + + write_once("Data Impropers By Type (cenJsortIKL)") { + @improper:c4,c4,c4,c4,c4,c4,c4,c4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 + @improper:c3a,c4,h1,h1,c3a,c4,h1,h1 @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ah1,d*,ih1 + @improper:c4,c4,h1,o2,c4,c4,h1,o2 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ao2,d*,io2 + @improper:h1,c4,h1,n2=,h1,c4,h1,n2= @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,an2=,d*,in2= + @improper:h1,c4,h1,si4,h1,c4,h1,si4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,asi4,d*,isi4 + @improper:c4,si4,c4,h1,c4,si4,c4,h1 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,asi4,d*,isi4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 + @improper:h1,c4,h1,h1,h1,c4,h1,h1 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ah1,d*,ih1 + @improper:c4,c4,c4,h1,c4,c4,c4,h1 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 + @improper:c4,si4,c4,si4,c4,si4,c4,si4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,asi4,d*,isi4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,asi4,d*,isi4 + @improper:c4,c4,h1,h1,c4,c4,h1,h1 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ah1,d*,ih1 + @improper:h1,si4,h1,h1,h1,si4,h1,h1 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,asi4,d*,isi4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ah1,d*,ih1 + @improper:h1,si4,si4,si4,h1,si4,si4,si4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,asi4,d*,isi4 @atom:*,p*,b*,asi4,d*,isi4 @atom:*,p*,b*,asi4,d*,isi4 + @improper:c4,si4,si4,si4,c4,si4,si4,si4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,asi4,d*,isi4 @atom:*,p*,b*,asi4,d*,isi4 @atom:*,p*,b*,asi4,d*,isi4 + @improper:c3a,c4,c4,h1,c3a,c4,c4,h1 @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 + @improper:c3prime,c4,h1,h1,c3prime,c4,h1,h1 @atom:*,p*,b*,ac3prime,d*,ic3prime @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ah1,d*,ih1 + @improper:c4,si4,h1,si4,c4,si4,h1,si4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,asi4,d*,isi4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,asi4,d*,isi4 + @improper:c4,c4,c4,o2,c4,c4,c4,o2 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ao2,d*,io2 + @improper:h1,c4,h1,o2,h1,c4,h1,o2 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ao2,d*,io2 + @improper:c4,c4,h1,n2=,c4,c4,h1,n2= @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,an2=,d*,in2= + @improper:c4,si4,h1,h1,c4,si4,h1,h1 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,asi4,d*,isi4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,ah1,d*,ih1 + @improper:h1,si4,h1,si4,h1,si4,h1,si4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,asi4,d*,isi4 @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,asi4,d*,isi4 + @improper:c3a,c3prime,n3m,o1=,c3a,c3prime,n3m,o1= @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3prime,d*,ic3prime @atom:*,p*,b*,an3m,d*,in3m @atom:*,p*,b*,ao1=,d*,io1= + @improper:c3a,c3a,c3a,n2=,c3a,c3a,c3a,n2= @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,an2=,d*,in2= + @improper:c3a,n3m,c3prime,c3prime,c3a,n3m,c3prime,c3prime @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,an3m,d*,in3m @atom:*,p*,b*,ac3prime,d*,ic3prime @atom:*,p*,b*,ac3prime,d*,ic3prime + @improper:c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,asi4,d*,isi4 + @improper:c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ap4=,d*,ip4= + @improper:c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3prime,d*,ic3prime + @improper:c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,an3m,d*,in3m + @improper:c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,an3o,d*,in3o + @improper:o1=,n3o,o1=,o2,o1=,n3o,o1=,o2n @atom:*,p*,b*,ao1=,d*,io1= @atom:*,p*,b*,an3o,d*,in3o @atom:*,p*,b*,ao1=,d*,io1= @atom:*,p*,b*,ao2n,d*,io2 + @improper:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ao2,d*,io2 + @improper:h1,n3o,o1=,o1=,h1,n3o,o1=,o1= @atom:*,p*,b*,ah1,d*,ih1 @atom:*,p*,b*,an3o,d*,in3o @atom:*,p*,b*,ao1=,d*,io1= @atom:*,p*,b*,ao1=,d*,io1= + @improper:c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ah1,d*,ih1 + @improper:c4,c3prime,o1=,o2,c4,c3prime,o1=,o2 @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,ac3prime,d*,ic3prime @atom:*,p*,b*,ao1=,d*,io1= @atom:*,p*,b*,ao2,d*,io2 + @improper:c4,n3o,o1=,o1=,c4,n3o,o1=,o1= @atom:*,p*,b*,ac4,d*,ic4 @atom:*,p*,b*,an3o,d*,in3o @atom:*,p*,b*,ao1=,d*,io1= @atom:*,p*,b*,ao1=,d*,io1= + @improper:c3a,n3o,o1=,o1=,c3a,n3o,o1=,o1= @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,an3o,d*,in3o @atom:*,p*,b*,ao1=,d*,io1= @atom:*,p*,b*,ao1=,d*,io1= + @improper:c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac4,d*,ic4 + @improper:c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a @atom:*,p*,b*,ac3a,d*,ic3a + @improper:c3a,c3prime,c3prime,n3m,X,X,X,X @atom:*,p*,b*,a*,d*,ic3a @atom:*,p*,b*,a*,d*,ic3prime @atom:*,p*,b*,a*,d*,ic3prime @atom:*,p*,b*,a*,d*,in3m + @improper:c3a,o1=,c3prime,n3m,X,X,X,X @atom:*,p*,b*,a*,d*,ic3a @atom:*,p*,b*,a*,d*,io1= @atom:*,p*,b*,a*,d*,ic3prime @atom:*,p*,b*,a*,d*,in3m + } # end of "Data Impropers By Type" section + + + + # ------- Improper Force Field Parameters: ------- + # For an explanation of these parameters, visit: + # http://lammps.sandia.gov/doc/improper_class2.html + +# Syntax: + # improper_coeff ImproperTypeName ImproperStyle parameters... + + + write_once("In Settings") { + improper_coeff @improper:c4,c4,c4,c4,c4,c4,c4,c4 class2 0.0 0.0 # (ver=1.0, ref=1) + improper_coeff @improper:c4,c4,c4,c4,c4,c4,c4,c4 class2 aa -0.1729 -0.1729 -0.1729 112.6700 112.6700 112.6700 # (ver=1.0, ref=1) + improper_coeff @improper:c3a,c4,h1,h1,c3a,c4,h1,h1 class2 0.0 0.0 # (ver=1.0, ref=1) + improper_coeff @improper:c3a,c4,h1,h1,c3a,c4,h1,h1 class2 aa 2.3794 3.0118 2.3794 111.0000 111.0000 107.6600 # (ver=1.0, ref=1) + improper_coeff @improper:c4,c4,h1,o2,c4,c4,h1,o2 class2 0.0 0.0 # (ver=1.0, ref=3) + improper_coeff @improper:c4,c4,h1,o2,c4,c4,h1,o2 class2 aa 3.9177 2.5926 0.1689 110.7700 111.2700 108.7280 # (ver=1.0, ref=3) + improper_coeff @improper:h1,c4,h1,n2=,h1,c4,h1,n2= class2 0.0 0.0 # (ver=1.0, ref=4) + improper_coeff @improper:h1,c4,h1,n2=,h1,c4,h1,n2= class2 aa 1.7680 1.7680 -2.9470 107.6600 107.4990 107.4990 # (ver=1.0, ref=4) + improper_coeff @improper:h1,c4,h1,si4,h1,c4,h1,si4 class2 0.0 0.0 # (ver=1.0, ref=10) + improper_coeff @improper:h1,c4,h1,si4,h1,c4,h1,si4 class2 aa 0.0000 0.0000 2.2050 107.6600 112.0355 112.0355 # (ver=1.0, ref=10) + improper_coeff @improper:c4,si4,c4,h1,c4,si4,c4,h1 class2 0.0 0.0 # (ver=1.0, ref=10) + improper_coeff @improper:c4,si4,c4,h1,c4,si4,c4,h1 class2 aa 3.3827 3.3827 2.7963 113.1855 112.0977 112.0977 # (ver=1.0, ref=10) + improper_coeff @improper:h1,c4,h1,h1,h1,c4,h1,h1 class2 0.0 0.0 # (ver=1.0, ref=1) + improper_coeff @improper:h1,c4,h1,h1,h1,c4,h1,h1 class2 aa -0.3157 -0.3157 -0.3157 107.6600 107.6600 107.6600 # (ver=1.0, ref=1) + improper_coeff @improper:c4,c4,c4,h1,c4,c4,c4,h1 class2 0.0 0.0 # (ver=1.0, ref=1) + improper_coeff @improper:c4,c4,c4,h1,c4,c4,c4,h1 class2 aa -1.3199 -1.3199 0.1184 112.6700 110.7700 110.7700 # (ver=1.0, ref=1) + improper_coeff @improper:c4,si4,c4,si4,c4,si4,c4,si4 class2 0.0 0.0 # (ver=1.0, ref=10) + improper_coeff @improper:c4,si4,c4,si4,c4,si4,c4,si4 class2 aa 1.3465 1.3465 2.0805 113.1855 113.0000 113.0000 # (ver=1.0, ref=10) + improper_coeff @improper:c4,c4,h1,h1,c4,c4,h1,h1 class2 0.0 0.0 # (ver=1.0, ref=7) + improper_coeff @improper:c4,c4,h1,h1,c4,c4,h1,h1 class2 aa 0.2738 -0.4825 0.2738 110.7700 110.7700 107.6600 # (ver=1.0, ref=7) + improper_coeff @improper:h1,si4,h1,h1,h1,si4,h1,h1 class2 0.0 0.0 # (ver=1.0, ref=10) + improper_coeff @improper:h1,si4,h1,h1,h1,si4,h1,h1 class2 aa 2.0665 2.0665 2.0665 108.6051 108.6051 108.6051 # (ver=1.0, ref=10) + improper_coeff @improper:h1,si4,si4,si4,h1,si4,si4,si4 class2 0.0 0.0 # (ver=1.0, ref=10) + improper_coeff @improper:h1,si4,si4,si4,h1,si4,si4,si4 class2 aa 4.1996 3.4924 4.1996 112.0893 112.0893 114.2676 # (ver=1.0, ref=10) + improper_coeff @improper:c4,si4,si4,si4,c4,si4,si4,si4 class2 0.0 0.0 # (ver=1.0, ref=10) + improper_coeff @improper:c4,si4,si4,si4,c4,si4,si4,si4 class2 aa 4.5272 -5.6849 4.5272 113.0000 113.0000 114.2676 # (ver=1.0, ref=10) + improper_coeff @improper:c3a,c4,c4,h1,c3a,c4,c4,h1 class2 0.0 0.0 # (ver=1.0, ref=1) + improper_coeff @improper:c3a,c4,c4,h1,c3a,c4,c4,h1 class2 aa -1.8202 2.0403 1.0827 108.4000 111.0000 110.7700 # (ver=1.0, ref=1) + improper_coeff @improper:c3prime,c4,h1,h1,c3prime,c4,h1,h1 class2 0.0 0.0 # (ver=1.0, ref=7) + improper_coeff @improper:c3prime,c4,h1,h1,c3prime,c4,h1,h1 class2 aa -1.7653 0.0 -1.7653 107.8594 107.8594 107.6600 # (ver=1.0, ref=7) + improper_coeff @improper:c4,si4,h1,si4,c4,si4,h1,si4 class2 0.0 0.0 # (ver=1.0, ref=10) + improper_coeff @improper:c4,si4,h1,si4,c4,si4,h1,si4 class2 aa 3.4758 0.0 -2.9623 112.0977 113.0000 112.0893 # (ver=1.0, ref=10) + improper_coeff @improper:c4,c4,c4,o2,c4,c4,c4,o2 class2 0.0 0.0 # (ver=1.0, ref=3) + improper_coeff @improper:c4,c4,c4,o2,c4,c4,c4,o2 class2 aa -0.8330 -0.8330 -3.5744 112.6700 111.2700 111.2700 # (ver=1.0, ref=3) + improper_coeff @improper:h1,c4,h1,o2,h1,c4,h1,o2 class2 0.0 0.0 # (ver=1.0, ref=3) + improper_coeff @improper:h1,c4,h1,o2,h1,c4,h1,o2 class2 aa 2.4259 2.4259 2.1283 107.6600 108.7280 108.7280 # (ver=1.0, ref=3) + improper_coeff @improper:c4,c4,h1,n2=,c4,c4,h1,n2= class2 0.0 0.0 # (ver=1.0, ref=4) + improper_coeff @improper:c4,c4,h1,n2=,c4,c4,h1,n2= class2 aa 2.7530 1.0910 -1.3060 110.7700 117.3170 107.4990 # (ver=1.0, ref=4) + improper_coeff @improper:c4,si4,h1,h1,c4,si4,h1,h1 class2 0.0 0.0 # (ver=1.0, ref=10) + improper_coeff @improper:c4,si4,h1,h1,c4,si4,h1,h1 class2 aa 4.4559 4.6809 4.4559 112.0977 112.0977 108.6051 # (ver=1.0, ref=10) + improper_coeff @improper:h1,si4,h1,si4,h1,si4,h1,si4 class2 0.0 0.0 # (ver=1.0, ref=10) + improper_coeff @improper:h1,si4,h1,si4,h1,si4,h1,si4 class2 aa 0.0 0.0 1.6082 108.6051 112.0893 112.0893 # (ver=1.0, ref=10) + improper_coeff @improper:c3a,c3prime,n3m,o1=,c3a,c3prime,n3m,o1= class2 30.0000 -0.0 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,c3prime,n3m,o1=,c3a,c3prime,n3m,o1= class2 aa 0.0 0.0 0.0 108.4400 125.5320 121.5420 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,c3a,c3a,n2=,c3a,c3a,c3a,n2= class2 8.0000 -0.0 # (ver=1.0, ref=4) + improper_coeff @improper:c3a,c3a,c3a,n2=,c3a,c3a,c3a,n2= class2 aa 0.0 0.0 0.0 118.9000 120.0000 120.0000 # (ver=1.0, ref=4) + improper_coeff @improper:c3a,n3m,c3prime,c3prime,c3a,n3m,c3prime,c3prime class2 0.0000 -0.0 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,n3m,c3prime,c3prime,c3a,n3m,c3prime,c3prime class2 aa 0.0 0.0 0.0 120.0700 120.0700 121.9556 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 5.3654 0.0 # (ver=1.0, ref=10) + improper_coeff @improper:c3a,c3a,c3a,si4,c3a,c3a,c3a,si4 class2 aa 0.0 0.0 0.0 118.9000 120.0000 120.0000 # (ver=1.0, ref=10) + improper_coeff @improper:c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 6.7090 -0.0 # (ver=1.0, ref=4) + improper_coeff @improper:c3a,c3a,c3a,p4=,c3a,c3a,c3a,p4= class2 aa 0.0 0.0 0.0 118.9000 120.0010 120.0010 # (ver=1.0, ref=4) + improper_coeff @improper:c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 17.0526 -0.0 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,c3a,c3a,c3prime,c3a,c3a,c3a,c3prime class2 aa 0.0 0.0 0.0 118.9000 116.0640 116.0640 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 17.0526 0.0 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,c3a,c3a,n3m,c3a,c3a,c3a,n3m class2 aa 0.0 0.0 0.0 118.9000 120.7640 120.7640 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 0.9194 -0.0 # (ver=1.0, ref=6) + improper_coeff @improper:c3a,c3a,c3a,n3o,c3a,c3a,c3a,n3o class2 aa 0.0 0.0 0.0 118.9000 118.8000 118.8000 # (ver=1.0, ref=6) + improper_coeff @improper:o1=,n3o,o1=,o2,o1=,n3o,o1=,o2n class2 45.0000 -0.0 # (ver=1.0, ref=6) + improper_coeff @improper:o1=,n3o,o1=,o2,o1=,n3o,o1=,o2n class2 aa 0.0 0.0 0.0 128.0000 112.8000 112.8000 # (ver=1.0, ref=6) + improper_coeff @improper:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 13.0421 -0.0 # (ver=1.0, ref=3) + improper_coeff @improper:c3a,c3a,c3a,o2,c3a,c3a,c3a,o2 class2 aa 0.0000 0.0000 0.0000 118.9000 123.4200 123.4200 # (ver=1.0, ref=3) + improper_coeff @improper:h1,n3o,o1=,o1=,h1,n3o,o1=,o1= class2 38.5581 -0.0 # (ver=1.0, ref=6) + improper_coeff @improper:h1,n3o,o1=,o1=,h1,n3o,o1=,o1= class2 aa 0.0 0.0 0.0 115.7000 115.7000 128.0000 # (ver=1.0, ref=6) + improper_coeff @improper:c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 4.8912 -0.0 # (ver=1.0, ref=1) + improper_coeff @improper:c3a,c3a,c3a,h1,c3a,c3a,c3a,h1 class2 aa 0.0000 0.0000 0.0000 118.9000 117.9400 117.9400 # (ver=1.0, ref=1) + improper_coeff @improper:c4,c3prime,o1=,o2,c4,c3prime,o1=,o2 class2 46.9264 0.0 # (ver=1.0, ref=7) + improper_coeff @improper:c4,c3prime,o1=,o2,c4,c3prime,o1=,o2 class2 aa 0.0 0.0 0.0 119.3000 100.3182 118.9855 # (ver=1.0, ref=7) + improper_coeff @improper:c4,n3o,o1=,o1=,c4,n3o,o1=,o1= class2 44.3062 -0.0 # (ver=1.0, ref=6) + improper_coeff @improper:c4,n3o,o1=,o1=,c4,n3o,o1=,o1= class2 aa 0.0 0.0 0.0 117.5000 117.5000 128.0000 # (ver=1.0, ref=6) + improper_coeff @improper:c3a,n3o,o1=,o1=,c3a,n3o,o1=,o1= class2 36.2612 -0.0 # (ver=1.0, ref=6) + improper_coeff @improper:c3a,n3o,o1=,o1=,c3a,n3o,o1=,o1= class2 aa 0.0 0.0 0.0 117.7000 117.7000 128.0000 # (ver=1.0, ref=6) + improper_coeff @improper:c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 7.8153 -0.0 # (ver=1.0, ref=1) + improper_coeff @improper:c3a,c3a,c3a,c4,c3a,c3a,c3a,c4 class2 aa 0.0 0.0 0.0 118.9000 120.0500 120.0500 # (ver=1.0, ref=1) + improper_coeff @improper:c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 7.1794 -0.0 # (ver=1.0, ref=1) + improper_coeff @improper:c3a,c3a,c3a,c3a,c3a,c3a,c3a,c3a class2 aa 0.0000 0.0000 0.0000 118.9000 118.9000 118.9000 # (ver=1.0, ref=1) + improper_coeff @improper:c3a,c3prime,c3prime,n3m,X,X,X,X class2 0.0000 -0.0 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,c3prime,c3prime,n3m,X,X,X,X class2 aa 0.0 0.0 0.0 120.0 120.0 120.0 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,o1=,c3prime,n3m,X,X,X,X class2 30.0000 -0.0 # (ver=1.0, ref=7) + improper_coeff @improper:c3a,o1=,c3prime,n3m,X,X,X,X class2 aa 0.0 0.0 0.0 120.0 120.0 120.0 # (ver=1.0, ref=7) + } # end of improper_coeff commands + + + + + + + # -------------------- Select LAMMPS style(s) ------------------ + + + # LAMMPS supports many different kinds of bonded and non-bonded + # interactions which can be selected at run time. Eventually + # we must inform LAMMPS which of them we will need. We specify + # this in the "In Init" section: + + write_once("In Init") { + units real + atom_style full + bond_style hybrid class2 + # http://lammps.sandia.gov/doc/bond_class2.html + + angle_style hybrid class2 + # http://lammps.sandia.gov/doc/angle_class2.html + + dihedral_style hybrid class2 + # http://lammps.sandia.gov/doc/dihedral_class2.html + + improper_style hybrid class2 + # http://lammps.sandia.gov/doc/improper_class2.html + + pair_style hybrid lj/class2/coul/long 10.0 + # http://lammps.sandia.gov/doc/pair_class2.html + + pair_modify mix sixthpower tail yes + special_bonds lj/coul 0.0 0.0 1.0 dihedral yes + kspace_style pppm 0.0001 + } #end of init parameters + +} # COMPASS + +# +# WARNING: The following 1-2, 1-3, and 1-4 weighting parameters were ASSUMED: +# special_bonds lj/coul 0.0 0.0 1.0 dihedral yes +# (See http://lammps.sandia.gov/doc/special_bonds.html for details) + + + + +# ---- templates from the original .frc file used for atom type selection: --- +# +# type: ? +# template: (>*) +# end_type +# +# type: ar +# template: (>Ar) +# end_type +# +# type:c1o +# template: [>C[~O]] +# end_type +# +# type:c2= +# template: [>C[~*][~*]] +# end_type +# +# type:c3' +# template: (>C (~O) (~*) (~*)) +# atom_test:1 +# hybridization:sp2 +# end_test +# atom_test:3 +# allowed_elements: C, H +# end_test +# atom_test:4 +# allowed_elements: O, N +# end_test +# end_type +# +# type:c3a +# template:(>C(~*)(~*)(~*)) +# atom_test:1 +# hybridization: SP2 +# aromaticity:AROMATIC +# end_test +# end_type +# +# type:c3a +# template: [>C(-*)(:*)(:*)] +# atom_test:1 +# hybridization:SP2 +# aromaticity:NON_AROMATIC +# end_test +# end_type +# +# type:c4 +# template: (>C(-*)(-*)(-*)(-*)) +# atom_test:1 +# hybridization:SP3 +# end_test +# end_type +# +# type:c41o +# template: [>C(-O(-*))(-H)(-H)(-H)] +# atom_test:1 +# hybridization:SP3 +# end_test +# atom_test:3 +# allowed_elements:C,H +# end_type +# +# type: c43 +# template: (>C(-H)(-*)(-*)(-*)) +# atom_test:1 +# hybridization:SP3 +# atom_test:3 +# disallowed_elements:H +# atom_test:4 +# disallowed_elements:H +# atom_test:5 +# disallowed_elements:H +# end_test +# end_type +# +# type:c43o +# template: [>C(-O(-H))(-H)(-C)(-C)] +# atom_test:1 +# hybridization:SP3 +# end_test +# end_type +# +# type: c44 +# template: (>C(-*)(-*)(-*)(-*)) +# atom_test:1 +# hybridization:SP3 +# atom_test:2 +# disallowed_elements:H +# atom_test:3 +# disallowed_elements:H +# atom_test:4 +# disallowed_elements:H +# atom_test:5 +# disallowed_elements:H +# end_test +# end_type +# +# type: c4o +# template: (>C(-O)(-*)(-*)(-*)) +# atom_test:1 +# hybridization:SP3 +# end_test +# end_type +# +# type: c4z +# template: (>C(-N(~N(~N)))(-*)(-*)(-*)) +# atom_test:1 +# hybridization:SP3 +# end_test +# end_type +# +# type:h1 +# template: (>H (-*) ) +# atom_test:2 +# allowed_elements:C,Si +# end_test +# end_type +# +# type:h1h +# template: [>H[-H]] +# end_type +# +# type:h1o +# template: (>H(-*)) +# atom_test:2 +# allowed_elements:O,N,F +# end_test +# end_type +# +# type: he +# template: (>He) +# end_type +# +# type: kr +# template: (>Kr) +# end_type +# +# type:n1n +# template: [>N[~N]] +# end_type +# +# type:n1o +# template: [>N[~O]] +# end_type +# +# type:n1z +# template: [>N[~N[~N(~*)]]] +# end_type +# +# type:n2= +# template: [>N(~*)(~*)] +# end_type +# +# type:n2o +# template: [>N[~O][~O]] +# end_type +# +# type:n2t +# template: [>N[~N][~N(~*)]] +# end_type +# +# type:n2z +# template: (>N[~N[~N]](~*)) +# end_type +# +# type: n3m +# template: (>N(-C[=O])(-C)(-C)) +# atom_test:1 +# hybridization:SP3 +# end_test +# end_type +# +# type: n3o +# template: (>N[~O][~O](~O(~C))) +# end_type +# +# type: ne +# template: (>Ne) +# end_type +# +# type:o1= +# template: (>O(~*)) +# atom_test:2 +# allowed_elements:N,S,C +# end_test +# end_type +# +# type:o1=* +# template: [>O[~C[~O]]] +# end_type +# +# type:o12 +# template: [>O[~N[~O](~*)]] +# end_type +# +# type:o1c +# template: [>O[~C]] +# end_type +# +# type:o1n +# template: [>O[~N]] +# end_type +# +# type:o1o +# template: [>O[~O]] +# end_type +# +# type:o2 +# template: [>O(~*)(~*)] +# end_type +# +# type:o2e +# template: [>O(-C)(-C)] +# atom_test: 1 +# aromaticity:NON_AROMATIC +# end_test +# end_type +# +# type:o2h +# template: (>O[-H](~*)) +# end_type +# +# type:o2n +# template: (>O[~N[~O][~O]](~C)) +# end_type +# +# type:o2s +# template: (>O[~C[~O](~*)](~C)) +# end_type +# +# type: o2z +# template: (>O(-Si)(-*) ) +# atom_test: 3 +# allowed_elements: Si, H +# end_test +# end_type +# +# type: p4= +# template: (>P(~*)(~*)(~*)(~*)) +# end_type +# +# type:s1= +# template: [>S[~C[~S]]] +# end_type +# +# type:s2= +# template: [>S[~O][~O]] +# end_type +# +# type: si4 +# template: (>Si(-*)(-*)(-*)(-*)) +# end_type +# +# type: si4c +# template: (>Si(-O)(-*)(-*)(-*)) +# atom_test: 3 +# allowed_elements: O, C +# end_test +# atom_test: 4 +# allowed_elements: O, C +# end_test +# atom_test: 5 +# allowed_elements: O, C +# end_test +# end_type +# +# type: xe +# template: (>Xe) +# end_type +# +# precedence: +# (? +# (ar) +# (c1o) +# (c2=) +# (c3a) (c3') +# (c4 (c43 (c43o)) (c44) (c4o(c41o)) (c4z) ) +# (h1) (h1h) (h1o) +# (he) +# (kr) +# (n1n) (n1o) (n1z) +# (n2= (n2o) (n2t) (n2z) ) +# (n3m) (n3o) +# (ne) +# (o1= (o1=*) (o12) (o1c) (o1n) ) (o1o) +# (o2 (o2e(o2s)) (o2h) (o2n) (o2z) ) +# (p4=) +# (s1=) +# (s2=) +# (si4 (si4c) ) +# (xe) +# ) +# end_precedence +# +# +# + + + + +# ---- references from the original .frc file: ---- + +# reference 1 +# @Author tester +# @Date 01-Jun-09 +# Barebones compass for aromatic & aliphatic hydrocarbons from H. Sun JCP B102, 7361-2 (1998) +# This file created by Materials Design, Inc. (www.materialsdesign.com) Please realize that +# we neither support this version, nor make any warranty as to the correctness of the parameters. +# We have checked the numbers against the literature, but of course there may still be errors, +# including errors of interpretation. Also, the current version of COMPASS may well be different +# that that originally published. +# If you have comments or suggestions, feel free to email Paul Saxe at psaxe (at) materialsdesign.com + +# reference 2 +# @Author tester +# @Date 27-Jun-09 +# Parameters for siloxanes from Sun/Rigby Spectrochim. Acta A53, 1301-23 (1997) (o2 later renamed to o2z) + +# reference 3 +# @Author tester +# @Date 27-Jun-09 +# Parameters for ethers and alcohols from Rigby/Sun/Eichinger Polym. Int. 44, 311-330 (1997) + +# reference 4 +# @Author tester +# @Date 30-Jun-09 +# Parameters for phosphazenes from Comput. Theor. Polym. Sci. 8, 229-246 (1998) + +# reference 5 +# @Author tester +# @Date 28-Jun-09 +# Parameters for He,Ne,Ar,Kr,Xe,H2,O2,N2,NO,CO,CO2,NO2,CS2,SO2 from JPC B104, 4951-7 (2000) + +# reference 6 +# @Author tester +# @Date 29-Jun-09 +# Parameters for nitrate esters from JPC B104, 2477-89 (2000) + +# reference 7 +# @Author tester +# @Date 30-Jun-09 +# Parameters for Ultem (imides) from Polymer 43, 599-607 (2002) + +# reference 8 +# @Author tester +# @Date 30-Jun-09 +# Parameters for 2y and 3y alcohols from Fluid Phase Equilibria 217, 77-87 (2004) + +# reference 9 +# @Author tester +# @Date 30-Jun-09 +# Parameters for aliphatic azides from J. Comput. Chem. 25, 61-71 (2004) + +# reference 10 +# @Author tester +# @Date 02-Jul-09 +# Ref 2 missing -C-Si- params; assume values from Macromols 28, 701-712 (1995) (see pcff) + + + + + +# ---- additional warnings: ---- +# WARNING: Undefined bond length (r0) in angle: h1 o2z si4 +# WARNING: Undefined bond length (r0) in angle: c4 n3 p4= +# WARNING: Undefined bond length (r0) in angle: h1 n3 p4= +# WARNING: Undefined bond length (r0) in angle: c4 o2 p4= +# WARNING: Undefined bond length (r0) in angle: h1 o2 p4= +# WARNING: Undefined bond length (r0) in angle: c3a p4= n3 +# WARNING: Undefined bond length (r0) in angle: h1 p4= n3 +# WARNING: Undefined bond length (r0) in angle: n2= p4= n3 +# WARNING: Undefined bond length (r0) in angle: n3 p4= n3 +# WARNING: Undefined bond length (r0) in angle: n3 p4= o2 +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: c4 si4 o2z h1 +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: h1 o2z si4 h1 +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: h1 o2z si4 o2z +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: h1 n3 p4= h1 +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: h1 n3 p4= n2= +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: h1 n3 p4= o2 +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: h1 o2 p4= h1 +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: h1 o2 p4= n2= +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: h1 o2 p4= o2 +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: X o2 p4= X +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: X c3a n2= X +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: X n3 p4= X +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: c4 c4 n3o o1= +# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: c3prime n3m c3prime o1 +# WARNING: Undefined rest angle (theta0) in improper: c3a o1= c3prime n3m +# WARNING: Undefined rest angle (theta0) in improper: c3a c3prime c3prime n3m diff --git a/tools/moltemplate/moltemplate/force_fields/amber/README.txt b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/README.txt similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/amber/README.txt rename to tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/README.txt diff --git a/tools/moltemplate/moltemplate/force_fields/amber/amberparm2lt.sh b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm2lt.sh similarity index 98% rename from tools/moltemplate/moltemplate/force_fields/amber/amberparm2lt.sh rename to tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm2lt.sh index 07442dbee7..98a77f3b05 100755 --- a/tools/moltemplate/moltemplate/force_fields/amber/amberparm2lt.sh +++ b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm2lt.sh @@ -61,6 +61,8 @@ echo "$MOLTEMPLATE_USAGE_MSG" echo "####################################################################" echo "# Moltemplate can not assign atom charge. You must assign atomic" echo "# charges yourself. (Moltemplate is only a simple text manipulation tool.)" +echo "# You can do this afterwards using commands like \"set atom 70 charge -0.212\"" +echo "# For details, see http://lammps.sandia.gov/doc/set.html)" echo "####################################################################" echo "" echo "" diff --git a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_angle_to_lt.py b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_angle_to_lt.py similarity index 91% rename from tools/moltemplate/moltemplate/force_fields/amber/amberparm_angle_to_lt.py rename to tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_angle_to_lt.py index dd465841b5..447857675e 100755 --- a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_angle_to_lt.py +++ b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_angle_to_lt.py @@ -22,7 +22,11 @@ for i in range(0, len(lines_gaff)): keq = tokens[0] req = tokens[1] comments=' '.join(tokens[2:]) - sys.stdout.write(' angle_coeff '+angletype+' '+angle_style_name+' '+keq+' '+req+' # '+comments+'\n') + sys.stdout.write(' angle_coeff '+angletype+' '+angle_style_name+' '+keq+' '+req) + if len(comments.strip()) > 0: + sys.stdout.write(' # '+comments) + sys.stdout.write('\n') + sys.stdout.write(' } # (end of angle_coeffs)\n') sys.stdout.write('\n') diff --git a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_bond_to_lt.py b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_bond_to_lt.py similarity index 90% rename from tools/moltemplate/moltemplate/force_fields/amber/amberparm_bond_to_lt.py rename to tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_bond_to_lt.py index bacc49b7d5..abfde23dab 100755 --- a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_bond_to_lt.py +++ b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_bond_to_lt.py @@ -21,7 +21,11 @@ for i in range(0, len(lines_gaff)): keq = tokens[0] req = tokens[1] comments=' '.join(tokens[2:]) - sys.stdout.write(' bond_coeff '+bondtype+' '+bond_style_name+' '+keq+' '+req+' # '+comments+'\n') + sys.stdout.write(' bond_coeff '+bondtype+' '+bond_style_name+' '+keq+' '+req) + if len(comments.strip()) > 0: + sys.stdout.write(' # '+comments) + sys.stdout.write('\n') + sys.stdout.write(' } # (end of bond_coeffs)\n') sys.stdout.write('\n') diff --git a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_dihedral_to_lt.py b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_dihedral_to_lt.py similarity index 97% rename from tools/moltemplate/moltemplate/force_fields/amber/amberparm_dihedral_to_lt.py rename to tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_dihedral_to_lt.py index 8729e3fe16..f4f8e3a645 100755 --- a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_dihedral_to_lt.py +++ b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_dihedral_to_lt.py @@ -29,7 +29,9 @@ for i in range(0, len(lines_gaff)): # ...I THINK (?). (Very confusing. See documentation below...) dn = float(tokens[2]) n = int(float(tokens[3])) - comments=' # '+(' '.join(tokens[4:])) + comments=' '.join(tokens[4:]) + if len(comments.strip()) > 0: + comments = ' # ' + comments in_dihedral_coeffs.append([dihedraltype, Kn, n, dn, comments]) #print(Kn, n, dn) diff --git a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_improper_to_lt.py b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_improper_to_lt.py similarity index 94% rename from tools/moltemplate/moltemplate/force_fields/amber/amberparm_improper_to_lt.py rename to tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_improper_to_lt.py index 8cc7828f89..ebf48d4f18 100755 --- a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_improper_to_lt.py +++ b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_improper_to_lt.py @@ -31,11 +31,13 @@ for i in range(0, len(lines_gaff)): dn = float(tokens[1]) n = int(float(tokens[2])) comments=' '.join(tokens[3:]) + if len(comments.strip()) > 0: + comments = ' # ' + comments if (dn < 0.001): - sys.stdout.write(' improper_coeff '+impropertype+' '+improper_style_name+' '+str(Kn)+' 1 '+str(n)+' # '+comments+'\n') + sys.stdout.write(' improper_coeff '+impropertype+' '+improper_style_name+' '+str(Kn)+' 1 '+str(n)+comments+'\n') elif (179.999 < abs(dn) < 180.001): - sys.stdout.write(' improper_coeff '+impropertype+' '+improper_style_name+' '+str(Kn)+' -1 '+str(n)+' # '+comments+'\n') + sys.stdout.write(' improper_coeff '+impropertype+' '+improper_style_name+' '+str(Kn)+' -1 '+str(n)+comments+'\n') else: sys.stderr.write('Error: Illegal bondImproper parameters:\n' ' As of 2013-8-03, LAMMPS doens hot have an improper style\n' diff --git a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_mass_to_lt.py b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_mass_to_lt.py similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/amber/amberparm_mass_to_lt.py rename to tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_mass_to_lt.py diff --git a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_pair_to_lt.py b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_pair_to_lt.py similarity index 93% rename from tools/moltemplate/moltemplate/force_fields/amber/amberparm_pair_to_lt.py rename to tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_pair_to_lt.py index 61e7672589..f24a92b78f 100755 --- a/tools/moltemplate/moltemplate/force_fields/amber/amberparm_pair_to_lt.py +++ b/tools/moltemplate/moltemplate/force_fields/convert_AMBER_files_to_LT_files/amberparm_pair_to_lt.py @@ -51,7 +51,11 @@ for i in range(0, len(lines_gaff)): sig=str(float(tokens[1])*2.0*pow(2.0, (-1.0/6.0))) eps=tokens[2] comments=' '.join(tokens[3:]) - sys.stdout.write(' pair_coeff @atom:'+atype+' @atom:'+atype+' '+pair_style+' '+eps+' '+sig+' # '+comments+'\n') + sys.stdout.write(' pair_coeff @atom:'+atype+' @atom:'+atype+' '+pair_style+' '+eps+' '+sig) + if len(comments.strip()) > 0: + sys.stdout.write(' # '+comments) + sys.stdout.write('\n') + sys.stdout.write(' } # (end of pair_coeffs)\n') sys.stdout.write('\n') diff --git a/tools/moltemplate/moltemplate/force_fields/convert_EMC_files_to_LT_files/README.txt b/tools/moltemplate/moltemplate/force_fields/convert_EMC_files_to_LT_files/README.txt new file mode 100644 index 0000000000..f110af62ca --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/convert_EMC_files_to_LT_files/README.txt @@ -0,0 +1,18 @@ +This directory contains a tool "emcprm2lt.py" which +converts ".PRM" files containing lists of force-field parameters +in EMC format into MOLTEMPLATE files in ".LT" format. +(Several force fields including MARTINI and SDK have been + converted into moltemplate format using this tool.) + +---- Credit: ---- + +The "emcprm2lt.py" converter was writtin by David Stelter. +The .PRM files we use were written by Pieter J. in 't Veld. + +---- Citation request: ---- + +Since we borrowed force field parameters from files distributed with EMC, +if you use files generated by "emcprm2lt.py", please also cite the EMC paper: +P. J. in ‘t Veld and G. C. Rutledge, Macromolecules 2003, 36, 7358 + + diff --git a/tools/moltemplate/moltemplate/force_fields/convert_EMC_files_to_LT_files/__init__.py b/tools/moltemplate/moltemplate/force_fields/convert_EMC_files_to_LT_files/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/moltemplate/moltemplate/force_fields/sdk/emcprm2lt.py b/tools/moltemplate/moltemplate/force_fields/convert_EMC_files_to_LT_files/emcprm2lt.py similarity index 99% rename from tools/moltemplate/moltemplate/force_fields/sdk/emcprm2lt.py rename to tools/moltemplate/moltemplate/force_fields/convert_EMC_files_to_LT_files/emcprm2lt.py index c924ce64e0..7e97770899 100755 --- a/tools/moltemplate/moltemplate/force_fields/sdk/emcprm2lt.py +++ b/tools/moltemplate/moltemplate/force_fields/convert_EMC_files_to_LT_files/emcprm2lt.py @@ -508,7 +508,7 @@ for i in range(len(nonbond)): atom1name = None atom2name = None stylename = pstyle - if pstyle == 'lj/sdk' or 'lj/sdk/coul/long': + if pstyle == 'lj/sdk' or pstyle == 'lj/sdk/coul/long': stylename = 'lj%s_%s' % (nonbond[i][4], nonbond[i][5]) # Cross Terms + Diagonal, normal for j in range(len(equiv)): diff --git a/tools/moltemplate/moltemplate/force_fields/convert_MSI_files_to_LT_files/msifrc2lt.py b/tools/moltemplate/moltemplate/force_fields/convert_MSI_files_to_LT_files/msifrc2lt.py new file mode 100755 index 0000000000..7c4c6abc73 --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/convert_MSI_files_to_LT_files/msifrc2lt.py @@ -0,0 +1,4536 @@ +#! /usr/bin/env python +# Author: Andrew Jewett (jewett.aij at g mail) +# License: 3-clause BSD License (See LICENSE.TXT) +# Copyright (c) 2017, California Institute of Technology +# All rights reserved. + +""" +This standalone python script can be used to convert force-field data +in FRC files (a.k.a. "MSI", "Accelrys", "BIOSYM", "DISCOVERY" files) +...into MOLTEMPLATE/LAMMPS compatible format (.LT files). + +Once converted into moltemplate (.LT) format, users can use these files with +MOLTEMPLATE to prepare LAMMPS simulations of molecules using these force fields +(without needing any additional software such as msi2lmp). + +There are several examples of MSI files in the "tools/msi2lmp/frc_files/" +directory which is distributed with LAMMPS. + +Limitations: + +Currently (2017-10) this script ignores the "template" information in .FRC files. +When defining a new type of molecule, the user must carefully choose the +complete atom type for each type of atom in the molecule. In other words, +MOLTEMPLATE will not attempt to determine (from local context) whether +a carbon atom somewhere in your molecule happens to be an SP3 carbon +(ie. "c4" in the COMPASS force-field), or an aromatic carbon ("c3a"), +or something else (for example). This information is typically contained +in the "templates" section of these files, and this script currently ignores +that information. Instead, the user must determine which type of carbon atom +it is manually, for all of the carbon atoms in that kind of molecule. +(This only needs to be done once per molecule definition. + Once a type of molecule is defined, it can be copied indefinitely.) + +""" + + +__author__ = 'Andrew Jewett' +__version__ = '0.2.1' +__date__ = '2017-10-15' + + +import sys +import os + +from collections import defaultdict, OrderedDict +from operator import itemgetter + + +g_program_name = __file__.split('/')[-1] + + +doc_msg = \ + "Typical Usage:\n\n" + \ + " " + g_program_name + " -name COMPASS < compass_published.frc > compass.lt\n\n" + \ + " where \"compass_published.frc\" is a force-field file in MSI format.\n" + \ + " \"comass.lt\" is the corresponding file converted to moltemplate format\n" + \ + " and \"COMPASS\" is the name that future moltemplate users will use to refer\n" + \ + " to this force-field (optional).\n" + \ + "Optional Arguments\n" + \ + " -name FORCEFIELDNAME # Give the force-field a name\n" + \ + " -file FILE_NAME # Read force field parameters from a file\n" + \ + " -url URL # Read force field parameters from a file on the web\n" + \ + " -atoms \"QUOTED LIST\" # Restrict output to a subset of atom types\n" + \ + " Sometimes an FRC file contains multiple versions. In that case,\n"+\ + " you can select between them using these optional arguments:\n"+\ + " -pair-style \"PAIRSTYLE ARGS\" # LAMMPS pair style and cutoff arg(s)\n" + \ + " -bond-style BONDSTYLE # desired LAMMPS bond style (default: \"class2\")\n" + \ + " -angle-style ANGLESTYLE # desired LAMMPS angle style\n" + \ + " -dihedral-style DIHEDRALSTYLE # desired LAMMPS dihedral style\n" + \ + " -improper-style IMPROPERSTYLE # desired LAMMPS improper style\n" + \ + " -hbond-style \"HBONDTYLE ARGS\" # LAMMPS hydrogen-bond style and args\n" + + +# " -auto # Consider auto_equivalences in the .frc file \n"+\ + + + +class InputError(Exception): + """ A generic exception object containing a string for error reporting. + (Raising this exception implies that the caller has provided + a faulty input file or argument.) + + """ + + def __init__(self, err_msg): + self.err_msg = err_msg + + def __str__(self): + return self.err_msg + + def __repr__(self): + return str(self) + +# It seems like there are no ordered sets in python, (a set that remembers the +# order that you added elements), so I built one by wrapping OrderedDict() + +class MyOrderedSet(object): + def __init__(self, l): + self.d = OrderedDict() + for x in l: + self.d[x] = True + def __add__(self, x): + self.d[x] = True + def __delitem__(self, x): + del self.d[x] + def __contains__(self, x): + return x in self.d + def __iter__(self): + self.p = iter(self.d) + return self + def __next__(self): + return next(self.p) + # the following wrappers might be necessary for python2/3 compatibility: + def add(self, x): + self.__add__(x) + def del_item(self, x): + self.__del_item__(x) + def iter(self): + return self.__iter__() + def next(self): + return self.__next__() + # no need to bother with set unions and intersections + + +def NSplitQuotedString(string, + nmax, + quotes, + delimiters=' \t\r\f\n', + escape='\\', + comment_char='#'): + """ + Split a quoted & commented string into at most "nmax" tokens (if nmax>0), + where each token is separated by one or more delimeter characters + in the origingal string, and quoted substrings are not split, + This function returns a list of strings. Once the string is split Nmax + times, any remaining text will be appended to the last entry of the list. + Comments are stripped from the string before splitting begins. + """ + tokens = [] + token = '' + reading_token = True + escaped_state = False + quote_state = None + for c in string: + + if (c in comment_char) and (not escaped_state) and (quote_state == None): + if len(token) > 0: + tokens.append(token) + return tokens + + elif (c in delimiters) and (not escaped_state) and (quote_state == None): + if reading_token: + if (nmax == 0) or (len(tokens) < nmax-1): + if len(token) > 0: + tokens.append(token) + token = '' + reading_token = False + else: + token += c + elif c in escape: + if escaped_state: + token += c + reading_token = True + escaped_state = False + else: + escaped_state = True + # and leave c (the '\' character) out of token + elif (c in quotes) and (not escaped_state): + if (quote_state != None): + if (c == quote_state): + quote_state = None + else: + quote_state = c + token += c + reading_token = True + else: + if (c == 'n') and (escaped_state == True): + c = '\n' + elif (c == 't') and (escaped_state == True): + c = '\t' + elif (c == 'r') and (escaped_state == True): + c = '\r' + elif (c == 'f') and (escaped_state == True): + c = '\f' + token += c + reading_token = True + escaped_state = False + + if len(token) > 0: + tokens.append(token) + return tokens + + + + +def SplitQuotedString(string, + quotes='\'\"', + delimiters=' \t\r\f\n', + escape='\\', + comment_char='#'): + + return NSplitQuotedString(string, + 0, + quotes, + delimiters, + escape, + comment_char) + + + + +def RemoveOuterQuotes(text, quotes='\"\''): + if ((len(text) >= 2) and (text[0] in quotes) and (text[-1] == text[0])): + return text[1:-1] + else: + return text + + +def SortByEnds(l_orig): + """ + Convenient to have a one-line macro for swapping list order if first>last + """ + l = [x for x in l_orig] + if l[0] > l[-1]: + l.reverse() + return l + + + +#def Repl(tokens, a, b): +# return [(b if x==a else x) for x in tokens] + +def DecodeAName(s): + if s.find('auto') == 0: + s = s[4:] + if s == 'X': # special case: deal with strings like 'X' + return '*' + return s + + +def EncodeAName(s): + """ + Handle * characters in MSI atom names + """ + + if s.find('auto') == 0: + s = s[4:] + # If the atom name begins with *, then it is a wildcard + if s[:1] == '*': # special case: deal with strings like *7 + return 'X' # These have special meaning. Throw away the integer. + # (and replace the * with an X) + + # If the * character occurs later on in the atom name, then it is actually + # part of the atom's name. (MSI force fields use many strange characters in + # atom names.) Here we change the * to \* to prevent the atom name from + # being interpreted as a wild card in the rules for generating bonds, + # angles, dihedrals, and impropers. + + return s.replace('*','star').replace('\'','prime').replace('"','dblpr') + # '*' is reserved for wildcards in moltemplate + # 'star' is a string that is unused in any + # of the force fields I have seen so far. + # Similarly quote characters (' and ") confuse + # moltemplate, so we replace them with something else. + + # The following approach doesn't work (mistakenly thinks '\*' = wildcard) + #return s.replace('*','\\*') # this prevents ttree_lex.MatchesAll() + # # from interpreting the '*' as a wildcard + + +def DetermineAutoPriority(anames): + """ + Given a list of atom names (including wildcards), generate a number + indicating the priority the interaction between these atoms should have: + Scan through list of strings anames, looking for patterns of the form + *n + where n is an integer. + Make sure this pattern only appears once and return n to the caller. + (These patterns are used by MSI software when using "auto_equivalences" + to look up force field parameters for bonded interactions. + The higher the integer, the lower the priority. + For details, see "Forcefield based simulations" PDF, Cerius2, p 87) + Ordinary wildcards ('*' characters not followed by integers) have the + lowest possible priority. (Each time a '*' string appears in the + list of arguments, the priority value increases by HUGE_VAL.) + """ + + # This is terrible code. + + n = -1.0 + num_blank_wildcards = 0 + for a in anames: + # Sometimes the first atom name contains the prefix 'auto'. Remove this + if a.find('auto') == 0: + a = a[4:] + if a[:1] == '*': + #if a[:1] == 'X': + if len(a) > 1: + if n == -1.0: + n = float(a[1:]) + elif n != float(a[1:]): + # Make sure if present, the number appears only once in the list of atom names + raise InputError('Error: Inconsistent priority integers in the following interaction:\n' + ' ' + ' '.join(anames) + '\n') + else: + num_blank_wildcards += 1 + + # A "blank" wildcard (not followed by a number eg '*') has a very low priority + # Give it a high number, because this corresponds to low priority. Very confusing + # For details, see "Forcefield based simulations" PDF, Cerius2, p 87) + HUGE_VAL = 1.0e5 + return n + num_blank_wildcards*HUGE_VAL + + + + +#def DeterminePriority(is_auto, +# anames, +# version): +# """ +# Determine the priority of an interaction from +# 1) whether or not it is an "auto" interaction +# 2) what is the force-field "version" (a number) +# 3) what are the names of the atoms (for auto_equivalences only, +# some atom "names" are wildcards followed by integers. use the integer) +# """ +# +# if is_auto: +# n = DetermineAutoPriority(anames) +# return (is_auto, n) +# else: +# return (is_auto, -version) + + +def DetermineNumericPriority(is_auto, + anames, + version): + """ + Determine the priority of an interaction from + 2) what is the force-field "version" (a number) + 3) what are the names of the atoms (for auto_equivalences only, + some atom "names" are wildcards followed by integers. use the integer) + """ + + if is_auto: + n = DetermineAutoPriority(anames) + return n # low priority integers <--> high priority () + else: + return -float(version) # later version numbers <--> higher priority + # (multiplying by -1 compensates for this) + # Note: this means auto interactions always have + # lower priority because their numeric priority + # will be a positive number. Otherwise the + # numeric priority will be a negative number + # (...corresponding to a higher priority + # I don't like this complicated priority system + # but I didn't invent it. It's not my fault.) + + +def IsAutoAtom(atom_name): + return atom_name[-1:] == '_' + + +#def PossibleAutoAtom(atom_name): +# """ Auto-equivalences are alternate atom names used in "auto" +# interactions. (These are low priority interactions used as a +# last resort when the interaction parameters could not be located +# by any other means). Each atom is given an alternate name which +# is used in this kind of interaction. These names typically end +# '_' followed by an optional integer. Example "auto" atom names +# are 'c3m_' and 'c=_3'. Unfortunately some ordinary atom names +# also end in an integer preceeded by a _ character. But they +# never end in a '_' character. Here we check for both.""" +# +# i = atom_name.rfind('_') +# if (i == -1) or str.isdigit(atom_name[i:]): +# return True +# return False + + + +def IsAutoInteraction(interaction_name): + return interaction_name.find('auto') == 0 + + +#def IsAutoInteraction(interaction_name): +# anames = ExtractAtomNames(interaction_name) +# for a in anames: +# if IsAutoAtom(a): +# return True +# if not PossibleAutoAtom(a): +# return False +# return True + + + + +def EncodeInteractionName(anames, + is_auto = False): + if is_auto == False: + is_auto = False + # Is the line containing anames from an "_auto" section of + # the FRC file? (I am trying to infer this from whether or + # not any of the atom names are followed by the '_' character.) + for s in anames: + if IsAutoAtom(s): + is_auto = True + if is_auto: + priority = DetermineAutoPriority(anames) + # (If an atom name is a wildcard '*' followed by + # an integer, DetermineAutoPriority() will return + # that integer. Otherwise it will return '') + #return str(priority)+'auto'+','.join(anames) + return 'auto'+','.join(anames) + + return ','.join(anames) + + + +def ExtractANames(interaction_name): + if IsAutoInteraction(interaction_name): + return interaction_name[4:].split(',') + return interaction_name.split(',') + + + +def OOPImproperNameSort(aorig): + assert(len(aorig) == 4) + atom_names = map(EncodeAName, aorig) + if atom_names[0] < atom_names[3]: + return (atom_names, [0,1,2,3]) + else: + return ([atom_names[3], + atom_names[1], + atom_names[2], + atom_names[0]], + [3,1,2,0]) + + +def Class2ImproperNameSort(aorig): + """ + This function takes a list of 4 strings as an argument representing 4 atom + names for atoms participating in an "improper" ("wilson-out-of-plane") + interaction. This function assumes the second atom is the central ("hub") + atom in the interaction, and it sorts the remaining atoms names. + This function also replaces any occurence of \"*\" with \"X\". + The new list is returned to the caller, along with the permutation. + """ + assert(len(aorig) == 4) + atom_names = [a for a in map(EncodeAName, aorig)] + z = [x for x in zip([atom_names[0], atom_names[2], atom_names[3]], + [0,2,3])] + z.sort() + l = [z[0][0], atom_names[1], z[1][0], z[2][0]] + p = [z[0][1], 1, z[1][1], z[2][1]] + return (l, p) + + + +def Parity(p): + """ compute the parity of a permutation + (credit: "Weeble") + """ + permutation = list(p) + length = len(permutation) + elements_seen = [False] * length + cycles = 0 + for index, already_seen in enumerate(elements_seen): + if already_seen: + continue + cycles += 1 + current = index + while not elements_seen[current]: + elements_seen[current] = True + current = permutation[current] + return (length-cycles) % 2 == 0 + + + +def ImCrossTermID(atom_names): + """ + # From a list of 4 atom names, corresponding two a pair + # of angles between atoms# 3,2,1 and 3,2,4, + # and replaces the list of atoms with a canonical tuple + # which eliminates order ambiguity. + # If you swap the first and last atom (#1 and #4), then + # the -pair- of angles is the same. Hence if atom #1 + # has a name which is lexicographically less than atom #4, + # swap atoms 1 and 4. + """ + if atom_names[0] <= atom_names[3]: + return (atom_names[0]+','+atom_names[1]+','+ + atom_names[2]+','+atom_names[3]) + else: + return (atom_names[3]+','+atom_names[1]+','+ + atom_names[2]+','+atom_names[0]) + + + + +def AtomsMatchPattern(anames, pattern): + """ + Check whether the list of atom names "anames" matches "pattern" + (Both arguments are lists of strings, but some of the strings + in pattern may contain wildcard characters followed by + "priority" numbers. Matches with lower priority numbers are + given preference whenever multiple distinct matches are found. + (Note: This function does not check patterns in reverse order.) + """ + #sys.stderr.write('DEBUG: checking whether '+str(anames)+' matches '+str(pattern)+'\n') + assert(len(anames) == len(pattern)) + matched = True + for d in range(0, len(pattern)): + if (pattern[d] == anames[d]) or (pattern[d][0] == '*'): + if pattern[d][0] == '*': + priority = int(pattern[d][1:]) + else: + priority = 0 + else: + matched = False + if matched: + #sys.stderr.write('DEBUG: '+str(anames)+' matches '+str(pattern)+'\n') + return priority + else: + return None + + +def LookupBondLength(a1, a2, + atom2equiv_bond, + bond2r0, + atom2auto_bond, + bond2r0_auto): + """ + Try to find bond parameters between atoms whose original + atom names (without equivalences) are a1 and a2. + Then return both the equilibrium bond length for that bond, + as well as the equivalent atom names used to lookup that bond. + (These could be stored in either atom2equiv_bond or atom2auto_bond.) + If a match was not found, return None. + """ + return_val = None + anames = (atom2equiv_bond[a1], atom2equiv_bond[a2]) + bond_name = EncodeInteractionName(SortByEnds(anames)) + if bond_name in bond2r0: + return_val = (bond2r0[bond_name], + [anames[0], anames[1]], + False) + # If no bond between these atoms is defined, + # check the bonds in the _auto section(s) + # This is a lot messier. + elif ((a1 in atom2auto_bond) and (a2 in atom2auto_bond)): + anames = [atom2auto_bond[a1], atom2auto_bond[a2]] + # Because _auto interactions can contain wildcards, + # there can be multiple entries in bond2r0_auto[] + # for the same list of atom names, and we have to + # consider all of them, and pick the one with the + # most priority (ie. whose priority number is lowest). + # (Note: The MSI file format uses low priority numbers + # to indicate high priority. Somewhat confusing. + # For details, see "Forcefield based simulations" PDF, Cerius2, p 87) + HUGE_VAL = 2000000000 + best_priority = HUGE_VAL + pattern = ['',''] + for (pattern[0],pattern[1]), r0 in bond2r0_auto.items(): + priority = AtomsMatchPattern(anames, pattern) + if (priority != None) and (priority < best_priority): + best_priority = priority + return_val = (r0, anames, True) + # try again with the atom type names in reverse order + priority = AtomsMatchPattern([anames[1],anames[0]], pattern) + if ((priority != None) and + (priority < best_priority)): #(note: low priority numbers = high priority) + best_priority = priority + return_val = (r0, anames, True) + #if return_val != None: + # sys.stderr.write('DEBUG: For atoms '+str((a1,a2))+' ... bond_length, batom_names = '+str(return_val)+'\n') + return return_val + + + + + + + + +def LookupBondAngle(a1, a2, a3, + atom2equiv_angle, + angle2theta0_or, + atom2auto_angle, + angle2theta0_auto_or): + """ + Try to find angle parameters between atoms whose original atom + names (without equivalences) are a1, a2, and a3. Then return + both the equilibrium rest angle for that 3body interaction + as well as the equivalent atom names used to look it up. (These + could be stored in either atom2equiv_angle or atom2auto_angle.) + If a match was not found, return None. + """ + return_val = None + anames = (atom2equiv_angle[a1], atom2equiv_angle[a2], atom2equiv_angle[a3]) + angle_name = EncodeInteractionName(SortByEnds(anames)) + if angle_name in angle2theta0_or: + return_val = (angle2theta0_or[angle_name], + [anames[0], anames[1], anames[2]], + False) + + # If no angle between these atoms is defined, + # check the angles in the _auto section(s) + # This is a lot messier. + elif ((a1 in atom2auto_angle[0]) and + (a2 in atom2auto_angle[1]) and + (a3 in atom2auto_angle[2])): + + anames = [atom2auto_angle[0][a1], + atom2auto_angle[1][a2], + atom2auto_angle[2][a3]] + #sys.stderr.write('DEBUG: LookupBondAngle(): a1,a2,a3=('+ + # a1+','+a2+','+a3+'), anames='+str(anames)+'\n') + + # Because _auto interactions can contain wildcards, + # there can be multiple entries in angle2theta0_auto_or[] + # for the same list of atom names, and we have to + # consider all of them, and pick the one with the + # most priority (ie. whose priority number is lowest). + # (Note: The MSI file format uses low priority numbers + # to indicate high priority. Somewhat confusing.) + HUGE_VAL = 2000000000 + best_priority = HUGE_VAL # (ie. low priority) + pattern = ['','',''] + for (pattern[0],pattern[1],pattern[2]), theta0 in angle2theta0_auto_or.items(): + priority = AtomsMatchPattern(anames, pattern) + if ((priority != None) and + (priority < best_priority)): #(note: low priority numbers = high priority) + best_priority = priority + return_val = (theta0, anames, True) + # try again with the atom type names in reverse order + priority = AtomsMatchPattern([anames[2],anames[1],anames[0]], pattern) + if (priority != None) and (priority < best_priority): + best_priority = priority + return_val = (theta0, anames, True) + #if return_val != None: + # sys.stderr.write('DEBUG: For atoms '+str((a1,a2,a3))+' ... rest_angle, anames = '+str(return_val)+'\n') + return return_val + + + + + + + + +def Equivalences2ffids(lines_equivalences, + atom_types, + atom2equiv_pair, + atom2equiv_bond, + atom2equiv_angle, + atom2equiv_dihedral, + atom2equiv_improper): + """ + This function reads a list of lines containing "equivalences" and + "auto_equivalences" from an MSI-formatted .FRC file. + Then, for each atom type, it generates a long string which includes the + original atom type name as well as all of the equivalences it belongs to. + Later on, when it is time to generate angles, dihedrals, or impropers, + moltemplate will search for patterns contained in these strings to decide + which type of interaction to generate. + This function returns a dictionary that converts the original atom type name + into these strings. + """ + for line in lines_equivalences: + #tokens = SplitQuotedString(line.strip(), + # comment_char='!>') + + # skip past both '!' and '>' characters + ic1 = line.find('!') + ic = ic1 + ic2 = line.find('>') + if ic2 != -1 and ic2 < ic1: + ic = ic2 + if ic != -1: + line = line[:ic] + else: + line = line.rstrip('\n') + tokens = line.strip().split() + #sys.stderr.write('DEBUG Equivalences2ffids():\n' + # ' tokens = '+str(tokens)+'\n') + atype = EncodeAName(tokens[2]) + atom2equiv_pair[atype] = EncodeAName(tokens[3]) + atom2equiv_bond[atype] = EncodeAName(tokens[4]) + atom2equiv_angle[atype] = EncodeAName(tokens[5]) + atom2equiv_dihedral[atype] = EncodeAName(tokens[6]) + atom2equiv_improper[atype] = EncodeAName(tokens[7]) + + atom2ffid = OrderedDict() + for atom in atom_types: + atom2ffid[atom] = (atom + + ',p'+atom2equiv_pair.get(atom,'') + + ',b'+atom2equiv_bond.get(atom,'') + + ',a'+atom2equiv_angle.get(atom,'') + + ',d'+atom2equiv_dihedral.get(atom,'') + + ',i'+atom2equiv_improper.get(atom,'')) + return atom2ffid + + + + + + +def AutoEquivalences2ffids(lines_equivalences, + lines_auto_equivalences, + atom_types, + atom2equiv_pair, + atom2equiv_bond, + atom2equiv_angle, + atom2equiv_dihedral, + atom2equiv_improper, + atom2auto_pair, + atom2auto_bondincr, + atom2auto_bond, + atom2auto_angleend, + atom2auto_anglecenter, + atom2auto_dihedralend, + atom2auto_dihedralcenter, + atom2auto_improperend, + atom2auto_impropercenter): + """ + This function is a variant of Equivalences2ffids() which also considers + "auto_equivalences". + This function returns a dictionary that converts the original atom type name + into a string that includes that atom's "equivalences", + as well as its "auto_equivalences". + moltemplate will search for patterns contained in these strings to decide + which type of interaction to generate. + """ + Equivalences2ffids(lines_equivalences, + atom_types, + atom2equiv_pair, + atom2equiv_bond, + atom2equiv_angle, + atom2equiv_dihedral, + atom2equiv_improper) + + # ------ The following lines are for processing "auto_equivalences" ----- + # + # What is the difference between "equivalences" and "auto_equivalences"? + # + # equivalences: + # Here is an excerpt from the Discover manual describing "equivalences": + # "Chemically distinct atoms often differ in some, but not all, + # of their forcefield parameters. For example, the bond parameters + # for the C-C bonds in ethene and in benzene are quite different, + # but the nonbond parameters for the carbon atoms are essentially + # the same. Rather than duplicating the nonbond parameters in the + # forcefield parameter file, the Discover program uses atom type + # equivalences to simplify the problem. In the example, the phenyl + # carbon atom type is equivalent to the pure sp2 carbons of ethene + # insofar as the nonbond parameters are concerned. The Discover + # program recognizes five types of equivalences for each atom + # type: nonbond, bond, angle, torsion, and out-of-plane. + # Cross terms such as bond-bond terms have the same equivalences + # (insofar as atom types are concerned) as the diagonal term of + # the topology of all the atoms defining the internal coordinates. + # For the bond-bond term, this means that the atom type + # equivalences for angles would be used + # + # auto_equivalences: + # Are similar to equivalences, but apparently with lower priority. + # In addition, it seems that, when looking up some of the class2 terms + # in the interaction according to atom type using "auto_equivalences" + # a distinction is made between end atoms and central atoms. + # The parameters for these interactions are also stored in different + # tables in the .frc file, with different comments/tags. + # (for example, "cff91_auto" as opposed to "cff91") + # An excerpt from the Discover manual is somewhat vague: + # "A forcefield may include automatic parameters for use when + # better-quality explicit parameters are not defined for a + # particular bond, angle, torsion, or out-of-plane interaction. + # These parameters are intended as temporary patches, to allow + # you to begin calculations immediately." + + for line in lines_auto_equivalences: + #tokens = SplitQuotedString(line.strip(), + # comment_char='!>') + + # skip past both '!' and '>' characters + ic1 = line.find('!') + ic = ic1 + ic2 = line.find('>') + if ic2 != -1 and ic2 < ic1: + ic = ic2 + if ic != -1: + line = line[:ic] + else: + line = line.rstrip('\n') + tokens = line.strip().split() + #sys.stderr.write('DEBUG Equivalences2ffids():\n' + # ' tokens = '+str(tokens)+'\n') + atype = EncodeAName(tokens[2]) + atom2auto_pair[atype] = EncodeAName(tokens[3]) + atom2auto_bondincr[atype] = EncodeAName(tokens[4]) + atom2auto_bond[atype] = EncodeAName(tokens[5]) + atom2auto_angleend[atype] = EncodeAName(tokens[6]) + atom2auto_anglecenter[atype] = EncodeAName(tokens[7]) + atom2auto_dihedralend[atype] = EncodeAName(tokens[8]) + atom2auto_dihedralcenter[atype] = EncodeAName(tokens[9]) + atom2auto_improperend[atype] = EncodeAName(tokens[10]) + atom2auto_impropercenter[atype] = EncodeAName(tokens[11]) + + atom2ffid = OrderedDict() + for atom in atom_types: + atom2ffid[atom] = (atom + + ',p'+atom2equiv_pair.get(atom,'') + + ',b'+atom2equiv_bond.get(atom,'') + + ',a'+atom2equiv_angle.get(atom,'') + + ',d'+atom2equiv_dihedral.get(atom,'') + + ',i'+atom2equiv_improper.get(atom,'') + + ',ap'+atom2auto_pair.get(atom,'') + + ',aq'+atom2auto_bondincr.get(atom,'') + + ',ab'+atom2auto_bond.get(atom,'') + + ',aae'+atom2auto_angleend.get(atom,'') + + ',aac'+atom2auto_anglecenter.get(atom,'') + + ',ade'+atom2auto_dihedralend.get(atom,'') + + ',adc'+atom2auto_dihedralcenter.get(atom,'') + + ',aie'+atom2auto_improperend.get(atom,'') + + ',aic'+atom2auto_impropercenter.get(atom,'') + + '' + ) + return atom2ffid + + + + + + +def main(): + try: + sys.stderr.write(g_program_name + ", version " + + __version__ + ", " + __date__ + "\n") + if sys.version < '2.6': + raise InputError('Error: Using python ' + sys.version + '\n' + + ' Alas, your version of python is too old.\n' + ' You must upgrade to a newer version of python (2.6 or later).') + + if sys.version < '2.7': + from ordereddict import OrderedDict + else: + from collections import OrderedDict + + if sys.version > '3': + import io + else: + import cStringIO + + # defaults: + ffname = 'BIOSYM_MSI_FORCE_FIELD' + type_subset = set([]) + filename_in = '' + file_in = sys.stdin + #file_in = open('pcff_repaired.frc','r') #CONTINUEHERE + include_auto_equivalences = False + #pair_style_name = 'lj/class2/coul/long' + #pair_style_params = "10.0 10.0" + pair_style2docs = {} + pair_style2args = defaultdict(str) + pair_style2docs['lj/cut/coul/long'] = 'http://lammps.sandia.gov/doc/pair_lj.html' + pair_style2args['lj/cut/coul/long'] = '10.0' + pair_style2docs['lj/class2/coul/long'] = 'http://lammps.sandia.gov/doc/pair_class2.html' + pair_style2args['lj/class2/coul/long'] = '10.0' + pair_style2docs['lj/class2/coul/cut'] = 'http://lammps.sandia.gov/doc/pair_class2.html' + pair_style2args['lj/class2/coul/cut'] = '10.0' + + bond_style2docs = {} + #bond_style2args = defaultdict(str) + bond_style2docs['harmonic'] = 'http://lammps.sandia.gov/doc/bond_harmonic.html' + bond_style2docs['class2'] = 'http://lammps.sandia.gov/doc/bond_class2.html' + bond_style2docs['morse'] = 'http://lammps.sandia.gov/doc/bond_morse.html' + bond_symmetry_subgraph = '' # default + + angle_style2docs = {} + #angle_style2args = defaultdict(str) + angle_style2docs['harmonic'] = 'http://lammps.sandia.gov/doc/angle_harmonic.html' + angle_style2docs['class2'] = 'http://lammps.sandia.gov/doc/angle_class2.html' + angle_symmetry_subgraph = '' # default + + dihedral_style2docs = {} + #dihedral_style2args = defaultdict(str) + dihedral_style2docs['charmm'] = 'http://lammps.sandia.gov/doc/dihedral_charmm.html' + dihedral_style2docs['class2'] = 'http://lammps.sandia.gov/doc/dihedral_class2.html' + dihedral_symmetry_subgraph = '' # default + + improper_style2docs = {} + #improper_style2args = defaultdict(str) + improper_style2docs['cvff'] = 'http://lammps.sandia.gov/doc/improper_cvff.html' + improper_style2docs['class2'] = 'http://lammps.sandia.gov/doc/improper_class2.html' + improper_symmetry_subgraph = {} #'cenJsortIKL' + + pair_mixing_style = 'sixthpower tail yes' + + special_bonds_command = 'special_bonds lj/coul 0.0 0.0 1.0 dihedral yes' + # Thanks to Paul Saxe for is suggestions + # http://lammps.sandia.gov/threads/msg11270.html + + + kspace_style = 'kspace_style pppm 0.0001' + pair_styles_selected = set([]) + #pair_style_link = 'http://lammps.sandia.gov/doc/pair_class2.html' + pair_style_args = {} + pair_cutoff = '10.0' + #pair_style_command = " pair_style hybrid " + \ + # pair_style_name + " " + pair_style_args + "\n" + bond_styles_selected = set([]) + #bond_style_link = bond_style2docs[bond_style_name] + #bond_style_args = '' + angle_styles_selected = set([]) + #angle_style_link = angle_style2docs[angle_style_name] + #angle_style_args = '' + dihedral_styles_selected = set([]) + #dihedral_style_link = dihedral_style2docs[dihedral_style_name] + #dihedral_style_args = '' + improper_styles_selected = set([]) + #improper_style_link = improper_style2docs[improper_style_name] + #improper_style_args = '' + hbond_style_name = '' + hbond_style_link = '' + hbond_style_args = '' + + lines_templates = [] + lines_references = defaultdict(list) + lines_warnings = [] + + + argv = [arg for arg in sys.argv] + + i = 1 + + while i < len(argv): + + #sys.stderr.write('argv['+str(i)+'] = \"'+argv[i]+'\"\n') + + if argv[i] == '-atoms': + if i + 1 >= len(argv): + raise InputError('Error: the \"' + argv[i] + '\" argument should be followed by a quoted string\n' + ' which contains a space-delimited list of of a subset of atom types\n' + ' you want to use from the original force-field.\n' + ' Make sure you enclose the entire list in quotes.\n') + type_subset = set(argv[i + 1].strip('\"\'').strip().split()) + del argv[i:i + 2] + + elif argv[i] == '-name': + if i + 1 >= len(argv): + raise InputError('Error: ' + argv[i] + ' flag should be followed by the name of the force-field\n') + ffname = argv[i + 1] + del argv[i:i + 2] + + elif argv[i] in ('-file', '-in-file'): + if i + 1 >= len(argv): + raise InputError('Error: ' + argv[i] + ' flag should be followed by the name of a force-field file\n') + filename_in = argv[i + 1] + try: + file_in = open(filename_in, 'r') + except IOError: + sys.stderr.write('Error: Unable to open file\n' + ' \"' + filename_in + '\"\n' + ' for reading.\n') + sys.exit(1) + del argv[i:i + 2] + + elif argv[i] == '-pair-cutoff': + if i + 1 >= len(argv): + raise InputError('Error: ' + argv[i] + ' flag should be followed by a number' + ' (the distance cutoff for non-bonded (pair) interactions)\n') + pair_style_cutoff = argv[i+1] + del argv[i:i + 2] + + elif argv[i] == '-pair-style': + if i + 1 >= len(argv): + raise InputError('Error: ' + argv[i] + ' flag should be followed by either \"lj/class2/coul/cut\" or \"lj/class2/coul/long\"\n') + pair_style_list = argv[i + 1].split(',') + for pair_style in pair_style_list: + if pair_style == '9-6': + pair_style = 'lj/class2/coul/long' + elif pair_style in ('12-6', 'lj', 'LJ'): + pair_style = 'lj/cut/coul/long' + + if pair_style.find('lj/class2/coul/long') == 0: + kspace_style = 'kspace_style pppm 0.0001' + elif pair_style.find('lj/cut/coul/long') == 0: + kspace_style = 'kspace_style pppm 0.0001' + elif pair_style.find('lj/class2/coul/cut') == 0: + pass + #kspace_style = '' + elif pair_style.find('lj/cut') == 0: + pass + #kspace_style = '' + else: + raise InputError('Error: ' + argv[i] + ' ' + pair_style + ' not supported.\n' + ' The following pair_styles are supported:\n' + ' lj/class2/coul/cut\n' + ' lj/class2/coul/long\n' + ' lj/cut\n' + ' lj/cut/coul/long\n') + pair_styles_selected.add(pair_style) + + del argv[i:i + 2] + + elif argv[i] == '-bond-style': + if i + 1 >= len(argv): + raise InputError('Error: ' + argv[i] + ' flag should be followed by\n' + ' a compatible bond_style.\n') + bond_styles = argv[i + 1].split(',') + for bond_style in bond_styles: + bond_styles_selected.add(bond_style) + #bond_style2args[bond_style] = argv[i + 1].split()[1:] + #if bond_style_name.find('harmonic') == 0: + # pass + # #bond_style_link = 'http://lammps.sandia.gov/doc/bond_harmonic.html' + #elif bond_style_name.find('morse') == 0: + # pass + # #bond_style_link = 'http://lammps.sandia.gov/doc/bond_morse.html' + #elif bond_style_name.find('class2') == 0: + # pass + # #bond_style_link = 'http://lammps.sandia.gov/doc/bond_class2.html' + #else: + # raise InputError('Error: ' + argv[i] + ' must be followed by either:\n' + # ' \"harmonic\", \"class2\", or \"morse\".\n') + del argv[i:i + 2] + + elif argv[i] == '-angle-style': + if i + 1 >= len(argv): + raise InputError('Error: ' + argv[i] + ' flag should be followed by\n' + ' a compatible angle_style.\n') + angle_styles = argv[i + 1].split(',') + for angle_style in angle_styles: + angle_styles_selected.add(angle_style) + #if angle_style_name.find('harmonic') == 0: + # pass + # #angle_style_link = 'http://lammps.sandia.gov/doc/angle_harmonic.html' + #elif angle_style_name.find('class2') == 0: + # pass + # #angle_style_link = 'http://lammps.sandia.gov/doc/angle_class2.html' + #else: + # raise InputError('Error: ' + argv[i] + ' must be followed by either:\n' + # ' \"harmonic\" or \"class2\"\n') + del argv[i:i + 2] + + elif argv[i] == '-dihedral-style': + if i + 1 >= len(argv): + raise InputError('Error: ' + argv[i] + ' flag should be followed by\n' + ' a compatible dihedral_style.\n') + dihedral_styles = argv[i + 1].split(',') + for dihedral_style in dihedral_styles: + dihedral_styles_selected.add(dihedral_style) + #if dihedral_style_name.find('charmm') == 0: + # pass + # #dihedral_style_link = 'http://lammps.sandia.gov/doc/dihedral_charmm.html' + #elif dihedral_style_name.find('class2') == 0: + # pass + # #dihedral_style_link = 'http://lammps.sandia.gov/doc/dihedral_class2.html' + #else: + # raise InputError('Error: ' + argv[i] + ' must be followed by either:\n' + # ' \"harmonic\" or \"class2\"\n') + del argv[i:i + 2] + + elif argv[i] == '-improper-style': + if i + 1 >= len(argv): + raise InputError('Error: ' + argv[i] + ' flag should be followed by\n' + ' a compatible impropoer_style.\n') + improper_styles = argv[i + 1].split(',') + for improper_style in improper_styles: + improper_styles_selected.add(improper_style) + #if impropoer_style_name.find('harmonic') == 0: + # pass + # #impropoer_style_link = 'http://lammps.sandia.gov/doc/impropoer_harmonic.html' + #elif impropoer_style_name.find('class2') == 0: + # pass + # #impropoer_style_link = 'http://lammps.sandia.gov/doc/impropoer_class2.html' + #else: + # raise InputError('Error: ' + argv[i] + ' must be followed by either:\n' + # ' \"harmonic\" or \"class2\"\n') + del argv[i:i + 2] + + elif argv[i] == '-hbond-style': + if i + 1 >= len(argv): + raise InputError('Error: ' + argv[i] + ' ' + hbond_style_name + '\n' + ' should be followed by a compatible pair_style.\n') + hbond_style_name = argv[i + 1] + hbond_style_link = 'http://lammps.sandia.gov/doc/pair_hbond_dreiding.html' + if hbond_style_name.find('none') == 0: + hbond_style_name = '' + hbond_style_args = '' + elif hbond_style_name.find('hbond/dreiding/lj') == 0: + n = len('hbond/dreiding/lj') + hbond_style_args = hbond_style_name[n+1:] + hbond_style_name = hbond_style_name[:n] + elif hbond_style_name.find('hbond/dreiding/morse') == 0: + n = len('hbond/dreiding/morse') + hbond_style_args = hbond_style_name[n+1:] + hbond_style_name = hbond_style_name[:n] + else: + raise InputError('Error: ' + argv[i] + ' flag should be followed by either\n' + ' \"hbond/dreiding/lj\" or \"hbond/dreiding/morse"\n') + del argv[i:i + 2] + + elif argv[i] in ('-url', '-in-url'): + import urllib2 + if i + 1 >= len(argv): + raise InputError('Error: ' + argv[i] + ' flag should be followed by a URL pointing to\n' + ' a file containing force-field information in msi/frc format.\n') + url = argv[i + 1] + try: + request = urllib2.Request(url) + file_in = urllib2.urlopen(request) + except urllib2.URLError: + sys.stdout.write("Error: Unable to open link:\n" + url + "\n") + sys.exit(1) + del argv[i:i + 2] + + elif argv[i] == '-auto': + include_auto_equivalences = True + del argv[i:i + 1] + + elif argv[i] in ('-help', '--help', '-?', '--?'): + sys.stderr.write(doc_msg) + sys.exit(0) + del argv[i:i + 1] + + else: + i += 1 + + if len(argv) != 1: + raise InputError('Error: Unrecongized arguments: ' + ' '.join(argv[1:]) + + '\n\n' + doc_msg) + + # Default styles: + if len(bond_styles_selected) == 0: + bond_styles_selected.add('class2') + if len(angle_styles_selected) == 0: + angle_styles_selected.add('class2') + if len(dihedral_styles_selected) == 0: + dihedral_styles_selected.add('class2') + if len(improper_styles_selected) == 0: + improper_styles_selected.add('class2') + if len(pair_styles_selected) == 0: + pair_styles_selected.add('lj/class2/coul/long') + + #sys.stderr.write("Reading parameter file...\n") + + lines = file_in.readlines() + atom2charge = OrderedDict() # lookup charge from atom type + atom2mass = OrderedDict() # lookup mass from atom type + # equivalences lookup + atom2ffid = OrderedDict() # lookup "force-field-ID" a string containing + # equivalences to lookup bonded interactions + atom2equiv_pair = OrderedDict() # lookup the equivalent symbol used for + # looking up pair interactions + atom2equiv_bond = OrderedDict() + atom2equiv_angle = OrderedDict() + atom2equiv_dihedral = OrderedDict() + atom2equiv_improper = OrderedDict() + # inverse equivalences lookup + equiv_pair2atom = defaultdict(set) + equiv_bond2atom = defaultdict(set) + equiv_angle2atom = defaultdict(set) + equiv_dihedral2atom = defaultdict(set) + equiv_improper2atom = defaultdict(set) + + # auto equivalences lookup + atom2auto_pair = OrderedDict() + atom2auto_bondincr = OrderedDict() + atom2auto_bond = OrderedDict() + atom2auto_angleend = OrderedDict() + atom2auto_anglecenter = OrderedDict() + atom2auto_dihedralend = OrderedDict() + atom2auto_dihedralcenter = OrderedDict() + atom2auto_improperend = OrderedDict() + atom2auto_impropercenter = OrderedDict() + # inverse auto equivalences lookup + auto_pair2atom = defaultdict(set) + auto_bondincr2atom = defaultdict(set) + auto_bond2atom = defaultdict(set) + auto_angleend2atom = defaultdict(set) + auto_anglecenter2atom = defaultdict(set) + auto_dihedralend2atom = defaultdict(set) + auto_dihedralcenter2atom = defaultdict(set) + auto_improperend2atom = defaultdict(set) + auto_impropercenter2atom = defaultdict(set) + + + atom2element = OrderedDict() # Optional: + # which element (eg 'C', 'O') ? (Note this + # is different from atom type: 'C1', 'Oh') + atom2numbonds = OrderedDict() # Optional: how many bonds emanate from + atom2descr = OrderedDict() # Optional: a brief description + atom2ver = OrderedDict() # atoms introduced in different versions of ff + atom2ref = OrderedDict() # reference to paper where atom introduced + lines_equivalences = [] # equivalences for force-field lookup + lines_auto_equivalences = [] # auto_equivalences have lower priority + + pair2params = OrderedDict() + pair2style = OrderedDict() + pair_styles = set([]) + pair2ver = OrderedDict() + pair2ref = OrderedDict() + + bond2chargepair = OrderedDict() # a.k.a "bond increments" + charge_pair_priority = OrderedDict() # priority in case multiple entries + # exist for the same pair of atoms + charge_pair_ver = OrderedDict() # which version of the force field? + charge_pair_ref = OrderedDict() # paper introducing this chargepair + + bond2params = OrderedDict() # store a tuple with the 2-body bond + # interaction type, and its parameters + # for every type of bond + bond2priority = OrderedDict() # What is the priority of this interaction? + bond2style = OrderedDict() # What LAMMPS bond style (formula) + # is used for a given interaction? + bond_styles = set([]) # Contains all bond styles used. + bond2ver = OrderedDict() + bond2ref = OrderedDict() + bond2r0 = OrderedDict() + bond2r0_auto = OrderedDict() + + angle2params = OrderedDict() # store a tuple with the 3-body angle + # interaction type, and its parameters + # for every type of angle + + angle2params_or = OrderedDict() + # http://lammps.sandia.gov/doc/angle_class2.html + #angle2class2_a = OrderedDict() # params for the "a" class2 terms + angle2class2_bb = OrderedDict() # params for the "bb" class2 terms + angle2class2_bb_or = OrderedDict() + angle2class2_ba = OrderedDict() # params for the "ba" class2 terms + angle2class2_ba_or = OrderedDict() + angle2priority = OrderedDict() # What is the priority of this interaction? + angle2priority_or = OrderedDict() + angle_is_secondary_or = OrderedDict() + angle2style = OrderedDict() # What LAMMPS angle style (formula) + # is used for a given interaction? + angle2style_or = OrderedDict() + angle_styles = set([]) # Contains all angle styles used. + angle2ref = OrderedDict() + angle2ver = OrderedDict() + angle2ref_or = OrderedDict() + angle2ver_or = OrderedDict() + angle2ver_bb = OrderedDict() + angle2ver_bb_or = OrderedDict() + angle2ref_bb = OrderedDict() + angle2ref_bb_or = OrderedDict() + angle2ver_ba = OrderedDict() + angle2ver_ba_or = OrderedDict() + angle2ref_ba = OrderedDict() + angle2ref_ba_or = OrderedDict() + angle2theta0_or = OrderedDict() + angle2theta0_auto_or = OrderedDict() + + # http://lammps.sandia.gov/doc/dihedral_class2.html + dihedral2params = OrderedDict() # store a tuple with the 4-body dihedral + # interaction type, and its parameters + # for every type of dihedral + dihedral2params_or = OrderedDict() + #dihedral2class2_d = OrderedDict() # params for the "d" class2 term + dihedral2class2_mbt = OrderedDict() # params for the "mbt" class2 term + dihedral2class2_mbt_or = OrderedDict() + dihedral2class2_ebt = OrderedDict() # params for the "ebt" class2 term + dihedral2class2_ebt_or = OrderedDict() + #dihedral2sym_ebt = OrderedDict() + dihedral2class2_at = OrderedDict() # params for the "at" class2 term + dihedral2class2_at_or = OrderedDict() + #dihedral2sym_at = OrderedDict() + dihedral2class2_aat = OrderedDict() # params for the "aat" class2 term + dihedral2class2_aat_or = OrderedDict() + #dihedral2sym_aat = OrderedDict() + dihedral2class2_bb13 = OrderedDict() # params for the "bb13" class2 term + dihedral2class2_bb13_or = OrderedDict() + #dihedral2sym_bb13 = OrderedDict() + dihedral2priority = OrderedDict() # What is the priority of this interaction? + dihedral2priority_or = OrderedDict() + dihedral_is_secondary_or = OrderedDict() + dihedral2style = OrderedDict() # What LAMMPS dihedral style (formula) + # is used for a given interaction? + dihedral2style_or = OrderedDict() + dihedral_styles = set([]) # Contains all dihedral styles used. + dihedral2ref = OrderedDict() + dihedral2ver = OrderedDict() + dihedral2ver_or = OrderedDict() + dihedral2ref_or = OrderedDict() + dihedral2ver_mbt = OrderedDict() + dihedral2ver_mbt_or = OrderedDict() + dihedral2ref_mbt = OrderedDict() + dihedral2ref_mbt_or = OrderedDict() + dihedral2ver_ebt = OrderedDict() + dihedral2ver_ebt_or = OrderedDict() + dihedral2ref_ebt = OrderedDict() + dihedral2ref_ebt_or = OrderedDict() + dihedral2ver_at = OrderedDict() + dihedral2ver_at_or = OrderedDict() + dihedral2ref_at = OrderedDict() + dihedral2ref_at_or = OrderedDict() + dihedral2ver_aat = OrderedDict() + dihedral2ver_aat_or = OrderedDict() + dihedral2ref_aat = OrderedDict() + dihedral2ref_aat_or = OrderedDict() + dihedral2ver_bb13 = OrderedDict() + dihedral2ver_bb13_or = OrderedDict() + dihedral2ref_bb13 = OrderedDict() + dihedral2ref_bb13_or = OrderedDict() + + + # http://lammps.sandia.gov/doc/improper_class2.html + improper2params = OrderedDict() # store a tuple with the 4-body improper + # interaction type, and its parameters + # for every type of imporpoer + improper2params_or = OrderedDict() + improper2class2_aa = OrderedDict() # params for the "aa" class2 term + improper2class2_aa_or = OrderedDict() + + improper2cross = defaultdict(dict) + # improper2cross[imp_name][atoms] stores the + # coefficient (K) for the angle-angle ("aa") + # improper interactions between a pair of + # neighboring 3-body angles (in the .FRC file). + # "imp_name" is the name of the improper interaction + # (which is a concatination of the central atom and + # the 3 surrounding leaf atoms (which are sorted)) + # "atoms" indicates, for that K value, the list of + # leaf atoms for that K value as they appear in the + # corresponding line of the .frc file (however the + # and last atom names are swapped if the first + # atom name is lexicographically > the last, to + # eliminate redundancy and ambiguity.) + + improper2sym = defaultdict(set) + # improper2sym[imp_name] indicates which subset of + # leaf atoms (from 0 to 2) are equivalent and can + # tolerate having their order rearranged without + # effecting the energy. Later on this will be used + # to reduce the number of improper interactions that + # will be generated by moltemplate. + + improper2priority = OrderedDict() # What is the priority of this interaction? + improper2priority_or = OrderedDict() + improper_is_secondary_or = OrderedDict() + improper2style = OrderedDict() # What LAMMPS improper style (formula) + # is used for a given interaction? + improper2style_or = OrderedDict() + improper_styles = set([]) # Contains all improper styles used. + improper2ver = OrderedDict() + improper2ver_or = OrderedDict() + improper2ref = OrderedDict() + improper2ref_or = OrderedDict() + improper2ver_aa = OrderedDict() + improper2ver_aa_or = OrderedDict() + improper2ref_aa = OrderedDict() + improper2ref_aa_or = OrderedDict() + + + # Warn users if force field contains terms which cannot yet + # be simulated with LAMMPS (as of 2017-10-13) + display_OOP_OOP_warning = False + display_torsion_torsion_1_warning = False + + + """ + --- these next few lines of code appear to be unnecessary. + --- I'll probably delete this code in a later version + hbond2params = OrderedDict() # lookup hbond parameters and atom types + hbond2donors = OrderedDict() # according to the identifier in the 2nd + hbond2acceptors = OrderedDict() # column of the "#hbond_definition" + hbond2hydrogens = OrderedDict() # section of an .frc file. + """ + + allowed_section_names = set(['#define', + # sections used in all MSI force-fields + '#atom_types', + '#equivalence', + '#auto_equivalence', + '#nonbond(9-6)', + '#nonbond(12-6)', + '#quadratic_bond', + '#quartic_bond', + '#morse_bond', + '#quadratic_angle', + '#quartic_angle', + '#bond-bond', + '#bond-angle', + '#torsion_1', + '#torsion_3', + '#middle_bond-torsion_3', + '#end_bond-torsion_3', + '#angle-torsion_3', + '#angle-angle-torsion_1',#(class2 dihedral) + '#bond-bond_1_3', #(a class2 dihedral term) + '#out_of_plane', + '#wilson_out_of_plane', + '#angle-angle', #(a class2 improper term) + '#out_of_plane-out_of_plane', # UNSUPPORTED + '#torsion-torsion_1', # UNSUPPORTED + '#bond_increments', + '#hbond_definition', # irrelevant? + '#templates', + '#reference', + '#end' + ]) + + icol_type = icol_mass = icol_elem = icol_nbonds = icol_comment = icol_ver = icol_ref = -1 + + section_name = '' + section_is_auto = False + + sys.stderr.write("parsing file pass1: look for atom types and equivalences...") + + for iline in range(0, len(lines)): + line = lines[iline] + sys.stderr.write('line=\"' + line.strip() + '\"\n') + tokens = SplitQuotedString(line.strip(), + quotes='', + comment_char='>') + #sys.stderr.write('tokens = ' + str(tokens) + '\n') + if line.lstrip().find('!') == 0 and tokens[0] != '!Ver': + continue + if line.lstrip(' ').find('#') == 0: + #sys.stderr.write('allowed_section_names = ' + + # str(allowed_section_names) + '\n') + if tokens[0] in allowed_section_names: + section_name = tokens[0] + section_is_auto = tokens[-1].endswith('_auto') + tokens_after_section_name = tokens[1:] + sys.stderr.write(' encountered section \"'+tokens[0]+'\"\n') + continue + elif not tokens[0] in ('#version', + '#define'): + raise InputError('Error: Line# '+str(iline) +'\n' + ' Unrecognized section name:\n' + ' \"' + tokens[0] + '\"\n') + elif (len(tokens) == 8) and (section_name == '#equivalence'): + if line.lstrip().find('!') == 0: + continue + lines_equivalences.append(line) + elif (len(tokens) == 12) and (section_name == '#auto_equivalence'): + if line.lstrip().find('!') == 0: + continue + lines_auto_equivalences.append(line) + elif (len(tokens) > 0) and (section_name == '#atom_types'): + # Different FRC files put this information in different + # columns. Column order is stored in the !Ver comment line: + if line.lstrip().find('!Ver') == 0: + tokens = line.strip().split() + for i in range(0, len(tokens)): + if tokens[i].lower() == 'type': + icol_type = i + elif tokens[i].lower() == 'mass': + icol_mass = i + elif tokens[i].lower() == 'element': + icol_elem = i + elif tokens[i].lower() == 'connections': + icol_nbonds = i + elif tokens[i].lower() == 'comment': + icol_comment = i + elif tokens[i].lower() == '!ver': #(version of ff) + icol_ver = i + elif tokens[i].lower() == 'ref': + icol_ref = i + assert(icol_ver == 0) + + if -1 in (icol_type, icol_mass): + raise InputError('Error: Invalid #atom_types section.\n' + ' The meaning of each column cannot be determined.\n' + ' This file needs a valid "!Ver..." comment.\n') + if icol_comment == -1: + icol_comment = max(icol_type, icol_mass, + icol_elem, icol_nbonds) + 1 + + sys.stderr.write('icol_ver = '+str(icol_ver)+'\n') + sys.stderr.write('icol_ref = '+str(icol_ref)+'\n') + sys.stderr.write('icol_mass = '+str(icol_mass)+'\n') + sys.stderr.write('icol_nelem = '+str(icol_elem)+'\n') + sys.stderr.write('icol_nbonds = '+str(icol_nbonds)+'\n') + sys.stderr.write('icol_comment = '+str(icol_comment)+'\n') + continue + + tokens = map(RemoveOuterQuotes, + NSplitQuotedString(line.strip(), + icol_comment+1, + quotes='', + comment_char='>')) + tokens = list(tokens) + + if (len(tokens) > 4): + if ((len(type_subset) == 0) or (tokens[1] in type_subset)): + aname = EncodeAName(tokens[icol_type]) + atom2mass[aname] = str(max(float(tokens[icol_mass]), 1.0e-06)) + # Some atoms in cvff.prm have zero mass. Unfortunately this + # causes LAMMPS to crash, even if these atoms are never used, + # so I give the mass a non-zero value instead. + + if icol_elem != -1: + atom2element[aname] = tokens[icol_elem] + if icol_nbonds != -1: + atom2numbonds[aname] = int(tokens[icol_nbonds]) + atom2descr[aname] = tokens[icol_comment] + atom2ver[aname] = tokens[icol_ver] + atom2ref[aname] = tokens[icol_ref] + + elif len(tokens) > 0: + raise InputError('Error: Invalid atom line: (line#'+str(iline)+')\n' + + '\"'+line.strip()+'\"') + + atom_types = [x for x in atom2mass] + + # Now construct the lookup tables and inverse tables + # we will need to understand the remainder of the file: + if not include_auto_equivalences: + atom2ffid = Equivalences2ffids(lines_equivalences, + atom_types, + atom2equiv_pair, + atom2equiv_bond, + atom2equiv_angle, + atom2equiv_dihedral, + atom2equiv_improper) + else: + atom2ffid = AutoEquivalences2ffids(lines_equivalences, + lines_auto_equivalences, + atom_types, + atom2equiv_pair, + atom2equiv_bond, + atom2equiv_angle, + atom2equiv_dihedral, + atom2equiv_improper, + atom2auto_pair, + atom2auto_bondincr, + atom2auto_bond, + atom2auto_angleend, + atom2auto_anglecenter, + atom2auto_dihedralend, + atom2auto_dihedralcenter, + atom2auto_improperend, + atom2auto_impropercenter) + + for a,e in atom2equiv_pair.items(): + equiv_pair2atom[e].add(a) + for a,e in atom2equiv_bond.items(): + equiv_bond2atom[e].add(a) + for a,e in atom2equiv_angle.items(): + equiv_angle2atom[e].add(a) + for a,e in atom2equiv_dihedral.items(): + equiv_dihedral2atom[e].add(a) + for a,e in atom2equiv_improper.items(): + equiv_improper2atom[e].add(a) + + # the inverse lookup for '*' matches all atom types + for a in atom_types: + #equiv_pair2atom['*'].add(EncodeAName(a)) + equiv_pair2atom['X'].add(EncodeAName(a)) + #equiv_bond2atom['*'].add(EncodeAName(a)) + equiv_bond2atom['X'].add(EncodeAName(a)) + #equiv_angle2atom['*'].add(EncodeAName(a)) + equiv_angle2atom['X'].add(EncodeAName(a)) + #equiv_dihedral2atom['*'].add(EncodeAName(a)) + equiv_dihedral2atom['X'].add(EncodeAName(a)) + #equiv_improper2atom['*'].add(EncodeAName(a)) + equiv_improper2atom['X'].add(EncodeAName(a)) + + for a,e in atom2auto_pair.items(): + auto_pair2atom[e].add(a) + for a,e in atom2auto_bondincr.items(): + auto_bondincr2atom[e].add(a) + for a,e in atom2auto_bond.items(): + auto_bond2atom[e].add(a) + for a,e in atom2auto_angleend.items(): + auto_angleend2atom[e].add(a) + #auto_angle[0][e].add(a) + #auto_angle[2][e].add(a) + for a,e in atom2auto_anglecenter.items(): + auto_anglecenter2atom[e].add(a) + #auto_angle[1][e].add(a) + for a,e in atom2auto_dihedralend.items(): + auto_dihedralend2atom[e].add(a) + #auto_dihedral2atom[0][e].add(a) + #auto_dihedral2atom[3][e].add(a) + for a,e in atom2auto_dihedralcenter.items(): + auto_dihedralcenter2atom[e].add(a) + #auto_dihedral2atom[1][e].add(a) + #auto_dihedral2atom[2][e].add(a) + for a,e in atom2auto_improperend.items(): + auto_improperend2atom[e].add(a) + for a,e in atom2auto_impropercenter.items(): + auto_impropercenter2atom[e].add(a) + + # the inverse lookup for '*' matches all atom types + for a in atom_types: + #auto_pair2atom['*'].add(EncodeAName(a)) + auto_pair2atom['X'].add(EncodeAName(a)) + #auto_bondincr2atom['*'].add(EncodeAName(a)) + auto_bondincr2atom['X'].add(EncodeAName(a)) + #auto_bond2atom['*'].add(EncodeAName(a)) + auto_bond2atom['X'].add(EncodeAName(a)) + #auto_angleend2atom['*'].add(EncodeAName(a)) + auto_angleend2atom['X'].add(EncodeAName(a)) + #auto_anglecenter2atom['*'].add(EncodeAName(a)) + auto_anglecenter2atom['X'].add(EncodeAName(a)) + #auto_dihedralend2atom['*'].add(EncodeAName(a)) + auto_dihedralend2atom['X'].add(EncodeAName(a)) + #auto_dihedralcenter2atom['*'].add(EncodeAName(a)) + auto_dihedralcenter2atom['X'].add(EncodeAName(a)) + #auto_improperend2atom['*'].add(EncodeAName(a)) + auto_improperend2atom['X'].add(EncodeAName(a)) + #auto_impropercenter2atom['*'].add(EncodeAName(a)) + auto_impropercenter2atom['X'].add(EncodeAName(a)) + + + + + + + + + sys.stderr.write("parsing file pass2: look for bonds, bond_increments and nonbonded (pair) interactions...") + + for iline in range(0, len(lines)): + line = lines[iline] + sys.stderr.write('line=\"' + line.strip() + '\"\n') + tokens = SplitQuotedString(line.strip(), + quotes='', + comment_char='>') + #sys.stderr.write('tokens = ' + str(tokens) + '\n') + if line.lstrip().find('!') == 0 and tokens[0] != '!Ver': + continue + if line.lstrip(' ').find('#') == 0: + #sys.stderr.write('allowed_section_names = ' + + # str(allowed_section_names) + '\n') + if (tokens[0] in allowed_section_names): + section_name = tokens[0] + section_is_auto = tokens[-1].endswith('_auto') + tokens_after_section_name = tokens[1:] + sys.stderr.write(' encountered section \"'+tokens[0]+'\"\n') + continue + elif (not tokens[0] in ('#version','#define')): + raise InputError('Error: Line# '+str(iline) +'\n' + ' Unrecognized section name:\n' + ' \"' + tokens[0] + '\"\n') + + + elif ((len(tokens) > 4) and (section_name == '#nonbond(12-6)') + and (pair_styles_selected & set(['lj','lj/cut','lj/cut/coul/long', + 'lj/cut/coul/cut','lj/cut/coul/debye', + 'lj/cut/coul/dsf','lj/cut/coul/msm', + '12-6','nonbond(12-6)']))): + + if line.lstrip().find('!') == 0: + continue + atom_name = EncodeAName(tokens[2]) + pair2ver[atom_name] = tokens[0] + pair2ref[atom_name] = tokens[1] + A = float(tokens[3]) + B = float(tokens[4]) + epsilon = B*B/(4*A) + sigma = pow(B/A, 1.0/6) + if sigma == 0.0: + sigma = 1.0 #(non-zero to avoid nan error later) + pair_styles.add('lj/cut/coul/long') + pair_style_args['lj/cut/coul/long'] = pair_cutoff + pair2style[atom_name] = 'lj/cut/coul/long' + pair2params[atom_name] = (str(epsilon)+' '+str(sigma)) + pair_mixing_style = 'geometric tail yes' + #if pair_style_name.find('lj/cut') == 0: + # pair2params[atom_name] = (str(epsilon)+' '+str(sigma)) + # pair_mixing_style = 'geometric tail yes' + + + elif ((len(tokens) > 4) and (section_name == '#nonbond(9-6)') + and (pair_styles_selected & + set(['class2', '9-6', 'nonbond(9-6)', + 'lj/class2/coul/long']))): + if line.lstrip().find('!') == 0: + continue + atom_name = EncodeAName(tokens[2]) + pair2ver[atom_name] = tokens[0] + pair2ref[atom_name] = tokens[1] + sigma = tokens[3] + epsilon = tokens[4] + pair_styles.add('lj/class2/coul/long') + pair_style_args['lj/class2/coul/long'] = pair_cutoff + pair2style[atom_name] = 'lj/class2/coul/long' + pair2params[atom_name] = (epsilon+' '+sigma) + pair_mixing_style = 'sixthpower tail yes' + #if pair_style_name.find('lj/class2') == 0: + # pair2params[atom_name] = (epsilon+' '+sigma) + # pair_mixing_style = 'sixthpower tail yes' + + + elif (len(tokens) == 6) and (section_name == '#bond_increments'): + if line.lstrip().find('!') == 0: + continue + aorig = [a for a in map(EncodeAName, tokens[2:4])] + delta_q = tokens[4:6] + atom_names = [a for a in aorig] + # swap the order of the atoms? + order_reversed = aorig[0] > aorig[-1] + if order_reversed: + delta_q.reverse() + atom_names.reverse() + bond_name = EncodeInteractionName(atom_names, section_is_auto) + charge_pair_ver[bond_name] = tokens[0] + charge_pair_ref[bond_name] = tokens[1] + charge_pair_priority[bond_name] = \ + (section_is_auto, + DetermineNumericPriority(section_is_auto, + tokens[2:4], + float(charge_pair_ver[bond_name]))) + bond2chargepair[bond_name] = (delta_q[0] + ' ' + delta_q[1]) + + + elif ((len(tokens) > 5) and (section_name == '#quadratic_bond') + and (bond_styles_selected & set(['harmonic','quadratic','quadratic_bond']))): + if line.lstrip().find('!') == 0: + continue + bond_styles.add('harmonic') + atom_names = SortByEnds(map(EncodeAName, tokens[2:4])) + bond_name = EncodeInteractionName(atom_names, section_is_auto) + bond2ver[bond_name] = tokens[0] + bond2ref[bond_name] = tokens[1] + bond2priority[bond_name] = \ + (section_is_auto, + DetermineNumericPriority(section_is_auto, + tokens[2:4], + float(bond2ver[bond_name]))) + r0 = tokens[4] + k = tokens[5] + if not section_is_auto: + bond2r0[bond_name] = r0 + sys.stderr.write('bond2r0['+bond_name+'] = ' + str(r0) + '\n') + else: + bond2r0_auto[(atom_names[0], atom_names[1])] = r0 + sys.stderr.write('bond2r0_auto['+str(atom_names)+'] = ' + str(r0) + '\n') + bond2style[bond_name] = 'harmonic' + bond2params[bond_name] = (k+' '+r0) + + + elif ((len(tokens) > 6) and (section_name == '#morse_bond') + and (bond_styles_selected & set(['morse','morse_bond']))): + if line.lstrip().find('!') == 0: + continue + bond_styles.add('morse') + atom_names = SortByEnds(map(EncodeAName, tokens[2:4])) + bond_name = EncodeInteractionName(atom_names, section_is_auto) + bond2ver[bond_name] = tokens[0] + bond2ref[bond_name] = tokens[1] + bond2priority[bond_name] = \ + (section_is_auto, + DetermineNumericPriority(section_is_auto, + tokens[2:4], + float(bond2ver[bond_name]))) + r0 = tokens[4] + D = tokens[5] + alpha = tokens[6] + sys.stderr.write('DEBUG: morse: atom_names = '+str(atom_names)+'\n') + if not section_is_auto: + bond2r0[bond_name] = r0 + sys.stderr.write('bond2r0['+bond_name+'] = ' + str(r0) + '\n') + else: + bond2r0_auto[(atom_names[0], atom_names[1])] = r0 + sys.stderr.write('bond2r0_auto['+str(atom_names)+'] = ' + str(r0) + '\n') + bond2style[bond_name] = 'morse' + bond2params[bond_name] = (D+' '+alpha+' '+r0) + + + + elif ((len(tokens) > 7) and (section_name == '#quartic_bond') + and (bond_styles_selected & set(['class2','quartic','quartic_bond']))): + if line.lstrip().find('!') == 0: + continue + bond_styles.add('class2') + atom_names = SortByEnds(map(EncodeAName, tokens[2:4])) + bond_name = EncodeInteractionName(atom_names, section_is_auto) + bond2ver[bond_name] = tokens[0] + bond2ref[bond_name] = tokens[1] + bond2priority[bond_name] = \ + (section_is_auto, + DetermineNumericPriority(section_is_auto, + tokens[2:4], + float(bond2ver[bond_name]))) + r0 = tokens[4] + if not section_is_auto: + bond2r0[bond_name] = r0 + sys.stderr.write('bond2r0['+bond_name+'] = ' + str(r0) + '\n') + else: + bond2r0_auto[(atom_names[0], atom_names[1])] = r0 + sys.stderr.write('bond2r0_auto['+str(atom_names)+'] = ' + str(r0) + '\n') + K2 = tokens[5] + K3 = tokens[6] + K4 = tokens[7] + bond2style[bond_name] = 'class2' + bond2params[bond_name] = (r0+' '+K2+' '+K3+' '+K4) + + + + + + sys.stderr.write("parsing file pass3: look for (3-body) angle interactions...") + + for iline in range(0, len(lines)): + line = lines[iline] + sys.stderr.write('line=\"' + line.strip() + '\"\n') + tokens = SplitQuotedString(line.strip(), + quotes='', + comment_char='>') + #sys.stderr.write('tokens = ' + str(tokens) + '\n') + if line.lstrip().find('!') == 0 and tokens[0] != '!Ver': + continue + if line.lstrip(' ').find('#') == 0: + #sys.stderr.write('allowed_section_names = ' + + # str(allowed_section_names) + '\n') + if (tokens[0] in allowed_section_names): + section_name = tokens[0] + section_is_auto = tokens[-1].endswith('_auto') + tokens_after_section_name = tokens[1:] + sys.stderr.write(' encountered section \"'+tokens[0]+'\"\n') + continue + elif (not tokens[0] in ('#version','#define')): + raise InputError('Error: Line# '+str(iline) +'\n' + ' Unrecognized section name:\n' + ' \"' + tokens[0] + '\"\n') + + + + + + + + elif (len(tokens) > 6) and (section_name == '#quadratic_angle'): + if line.lstrip().find('!') == 0: + continue + atom_names = SortByEnds(map(EncodeAName, tokens[2:5])) + angle_name = EncodeInteractionName(atom_names, section_is_auto) + + angle2ver[angle_name] = tokens[0] + angle2ref[angle_name] = tokens[1] + angle2priority_or[angle_name] = \ + DetermineNumericPriority(section_is_auto, + tokens[2:5], + float(angle2ver[angle_name])) + angle_is_secondary_or[angle_name] = False + angle2priority[angle_name] = \ + (section_is_auto, + angle_is_secondary_or[angle_name], + angle2priority_or[angle_name]) + theta0 = tokens[5] + k = tokens[6] + if not section_is_auto: + angle2theta0_or[angle_name] = theta0 + sys.stderr.write('angle2theta0_or['+angle_name+'] = ' + str(theta0) + '\n') + else: + angle2theta0_auto_or[(atom_names[0], atom_names[1], atom_names[2])] = theta0 + sys.stderr.write('angle2theta0_auto_or['+str(atom_names)+'] = ' + str(theta0) + '\n') + if (angle_styles_selected & set(['harmonic', + 'quadratic', + 'quadratic_angle'])): + angle_styles.add('harmonic') + angle2style[angle_name] = 'harmonic' + angle2params[angle_name] = (k+' '+theta0) + elif (angle_styles_selected & set(['class2', + 'quartic', + 'quartic_angle'])): + # Then this is a special case of the class2 angle where + # the (theta-theta0)^3 and (theta-theta0)^4 terms = 0 + angle_styles.add('class2') + angle2style_or[angle_name] = 'class2' + angle2params_or[angle_name] = (theta0+' '+k+' 0 0') + + + + elif ((len(tokens) > 8) and (section_name == '#quartic_angle') + and (angle_styles_selected & set(['class2','quartic','quartic_angle']))): + if line.lstrip().find('!') == 0: + continue + angle_styles.add('class2') + atom_names = SortByEnds(map(EncodeAName, tokens[2:5])) + ang_name_orig = EncodeInteractionName(atom_names, section_is_auto) + version = tokens[0] + reference = tokens[1] + angle2ver_or[ang_name_orig] = version + angle2ref_or[ang_name_orig] = reference + angle2priority_or[ang_name_orig] = \ + DetermineNumericPriority(section_is_auto, + tokens[2:5], + float(angle2ver_or[ang_name_orig])) + angle_is_secondary_or[ang_name_orig] = False + #angle2priority[ang_name_orig] = \ + # (section_is_auto, + # angle_is_secondary_or[ang_name_orig], + # angle2priority_or[ang_name_orig]) + theta0 = tokens[5] + if not section_is_auto: + angle2theta0_or[ang_name_orig] = theta0 + sys.stderr.write('angle2theta0_or['+ang_name_orig+'] = ' + str(theta0) + '\n') + else: + angle2theta0_auto_or[(atom_names[0], atom_names[1], atom_names[2])] = theta0 + sys.stderr.write('angle2theta0_auto_or['+str(atom_names)+'] = ' + str(theta0) + '\n') + K2 = tokens[6] + K3 = tokens[7] + K4 = tokens[8] + angle2style_or[ang_name_orig] = 'class2' + angle2params_or[ang_name_orig] = [theta0, K2, K3, K4] + if not ang_name_orig in angle2class2_bb_or: + angle2class2_bb_or[ang_name_orig] = '0.0' # default value + angle2ver_bb_or[ang_name_orig] = version # default value + angle2ref_bb_or[ang_name_orig] = reference # default value + if not ang_name_orig in angle2class2_ba_or: + angle2class2_ba_or[ang_name_orig] = ['0.0', '0.0'] # default value + angle2ver_ba_or[ang_name_orig] = version # default value + angle2ref_ba_or[ang_name_orig] = reference # default value + + elif ((len(tokens) > 5) and + (section_name in ('#bond-bond', '#bond-angle')) and + (angle_styles_selected & + set(['class2', 'quartic', 'quartic_angle']))): + if line.lstrip().find('!') == 0: + continue + version = tokens[0] + reference = tokens[1] + if line.lstrip().find('!') == 0: + continue + aorig = [a for a in map(EncodeAName, tokens[2:5])] + atom_names = SortByEnds(aorig) + ang_name_orig = EncodeInteractionName(atom_names, section_is_auto) + K = ['', ''] + K[0] = tokens[5] + K[1] = K[0] + if len(tokens) > 6: + K[1] = tokens[6] + order_reversed = aorig[0] > aorig[-1] + if order_reversed: + K.reverse() + if (section_name == '#bond-bond'): + angle2class2_bb_or[ang_name_orig] = K[0] + angle2ver_bb_or[ang_name_orig] = version + angle2ref_bb_or[ang_name_orig] = reference + elif (section_name == '#bond-angle'): + angle2class2_ba_or[ang_name_orig] = [k for k in K] + angle2ver_ba_or[ang_name_orig] = version + angle2ref_ba_or[ang_name_orig] = reference + if not ang_name_orig in angle2params_or: + angle_is_secondary_or[ang_name_orig] = True #only cross terms have been defined so far + angle2params_or[ang_name_orig] = ['0.0', '0.0', '0.0', '0.0'] # default value + angle2ver_or[ang_name_orig] = version + angle2ref_or[ang_name_orig] = reference + angle2priority_or[ang_name_orig] = 0.0 + + + + + + + + + + sys.stderr.write("parsing file pass4: look for dihedrals(torsions) and impropers(out_of_plane)...") + + for iline in range(0, len(lines)): + line = lines[iline] + sys.stderr.write('line=\"' + line.strip() + '\"\n') + tokens = SplitQuotedString(line.strip(), + quotes='', + comment_char='>') + #sys.stderr.write('tokens = ' + str(tokens) + '\n') + if line.lstrip().find('!') == 0 and tokens[0] != '!Ver': + continue + + + if line.lstrip(' ').find('#') == 0: + #sys.stderr.write('allowed_section_names = ' + + # str(allowed_section_names) + '\n') + if (tokens[0] in allowed_section_names): + section_name = tokens[0] + section_is_auto = tokens[-1].endswith('_auto') + tokens_after_section_name = tokens[1:] + sys.stderr.write(' encountered section \"'+tokens[0]+'\"\n') + continue + elif (not tokens[0] in ('#version','#define')): + raise InputError('Error: Line# '+str(iline) +'\n' + ' Unrecognized section name:\n' + ' \"' + tokens[0] + '\"\n') + + + + + elif (len(tokens) > 8) and (section_name == '#torsion_1'): + if line.lstrip().find('!') == 0: + continue + atom_names = SortByEnds(map(EncodeAName, tokens[2:6])) + dihedral_name = EncodeInteractionName(atom_names, section_is_auto) + dihedral2ver[dihedral_name] = tokens[0] + dihedral2ref[dihedral_name] = tokens[1] + dihedral2priority_or[dihedral_name] = \ + DetermineNumericPriority(section_is_auto, + tokens[2:6], + float(dihedral2ver[dihedral_name])) + dihedral_is_secondary_or[dihedral_name] = False + dihedral2priority[dihedral_name] = \ + (section_is_auto, + dihedral_is_secondary_or[dihedral_name], + dihedral2priority_or[dihedral_name]) + K = tokens[6] + n = tokens[7] + d = tokens[8] + + w = '0.0' #ignore: this is only used by the CHARMM force field + + if (dihedral_styles_selected & set(['charmm','torsion_1'])): + dihedral_styles.add('charmm') + dihedral2style[dihedral_name] = 'charmm' + #dihedral2params_or[dihedral_name] = [K,n,d,w] + dihedral2params[dihedral_name] = (K+' '+n+' '+d+' '+w) + elif (dihedral_styles_selected & set(['class2','torsion_3'])): + # Then this is a special case of the class2 angle + # lacking the higher terms in the Fourier series + dihedral_styles.add('class2') + dihedral2style[dihedral_name] = 'class2' + dihedral2params_or[dihedral_name] = [K,d,0,0,0,0] + + + + + elif ((len(tokens) > 7) and (section_name == '#torsion_3') + and (dihedral_styles_selected & set(['class2','torsion_3']))): + if line.lstrip().find('!') == 0: + continue + dihedral_styles.add('class2') + atom_names = SortByEnds(map(EncodeAName, tokens[2:6])) + dih_name_orig = EncodeInteractionName(atom_names, section_is_auto) + version = tokens[0] + reference = tokens[1] + dihedral2priority_or[dih_name_orig] = \ + DetermineNumericPriority(section_is_auto, + tokens[2:6], + float(version)) + dihedral_is_secondary_or[dih_name_orig] = False + #dihedral2priority[dih_name_orig] = \ + # (section_is_auto, + # dihedral_is_secondary_or[dih_name_orig], + # dihedral2priority_or[dih_name_orig]) + V1 = tokens[6] + phi0_1 = tokens[7] + V2 = phi0_2 = V3 = phi0_3 = '0.0' + if len(tokens) > 9: + V2 = tokens[8] + phi0_2 = tokens[9] + if len(tokens) > 11: + V3 = tokens[10] + phi0_3 = tokens[11] + dihedral2style_or[dih_name_orig] = 'class2' + dihedral2ver_or[dih_name_orig] = version + dihedral2ref_or[dih_name_orig] = reference + dihedral2params_or[dih_name_orig] = [V1, phi0_1, V2, phi0_2, V3, phi0_3] + # default values for cross terms: + if not dih_name_orig in dihedral2class2_mbt_or: + dihedral2class2_mbt_or[dih_name_orig] = ['0.0','0.0','0.0'] # default value + dihedral2ver_mbt_or[dih_name_orig] = version + dihedral2ref_mbt_or[dih_name_orig] = reference + if not dih_name_orig in dihedral2class2_ebt_or: + dihedral2class2_ebt_or[dih_name_orig] = [['0.0','0.0','0.0'],['0.0','0.0','0.0']] # default value + dihedral2ver_ebt_or[dih_name_orig] = version + dihedral2ref_ebt_or[dih_name_orig] = reference + if not dih_name_orig in dihedral2class2_bb13_or: + dihedral2class2_bb13_or[dih_name_orig] = '0.0' # default value + dihedral2ver_bb13_or[dih_name_orig] = version + dihedral2ref_bb13_or[dih_name_orig] = reference + if not dih_name_orig in dihedral2class2_at_or: + dihedral2class2_at_or[dih_name_orig] = [['0.0','0.0','0.0'],['0.0','0.0','0.0']] # default value + dihedral2ver_at_or[dih_name_orig] = version + dihedral2ref_at_or[dih_name_orig] = reference + if not dih_name_orig in dihedral2class2_aat_or: + dihedral2class2_aat_or[dih_name_orig] = '0.0' # default value + dihedral2ver_aat_or[dih_name_orig] = version + dihedral2ref_aat_or[dih_name_orig] = reference + + + + + + elif ((len(tokens) > 6) and (section_name == '#middle_bond-torsion_3') + and (dihedral_styles_selected & set(['class2','torsion_3']))): + if line.lstrip().find('!') == 0: + continue + dihedral_styles.add('class2') + version = tokens[0] + reference = tokens[1] + if line.lstrip().find('!') == 0: + continue + aorig = [a for a in map(EncodeAName, tokens[2:6])] + atom_names = SortByEnds(aorig) + + Fmbt = [tokens[6], '0.0', '0.0'] + if len(tokens) > 7: + Fmbt[1] = tokens[7] + if len(tokens) > 8: + Fmbt[2] = tokens[8] + + dih_name_orig = EncodeInteractionName(atom_names, section_is_auto) + + #sys.stderr.write('DEBUG: (a2,a3) = '+str((a2,a3))+', ' + # ' (b1,b2) = '+str(batoms)+'\n') + dihedral2style[dih_name_orig] = 'class2' + dihedral2class2_mbt_or[dih_name_orig] = [F for F in Fmbt] + dihedral2ver_mbt_or[dih_name_orig] = version + dihedral2ref_mbt_or[dih_name_orig] = reference + if not dih_name_orig in dihedral2params_or: + dihedral_is_secondary_or[dih_name_orig] = True #only cross terms have been defined so far + dihedral2params_or[dih_name_orig] = ['0.0', '0.0', '0.0', '0.0', '0.0', '0.0'] + dihedral2ver_or[dih_name_orig] = version + dihedral2ref_or[dih_name_orig] = reference + dihedral2priority_or[dih_name_orig] = 0.0 + + + + + elif ((len(tokens) > 6) and + (section_name in ('#end_bond-torsion_3', + '#bond-bond_1_3')) and + (dihedral_styles_selected & + set(['class2', 'torsion_3']))): + if line.lstrip().find('!') == 0: + continue + dihedral_styles.add('class2') + version = tokens[0] + reference = tokens[1] + if line.lstrip().find('!') == 0: + continue + aorig = [a for a in map(EncodeAName, tokens[2:6])] + atom_names = SortByEnds(aorig) + + dih_name_orig = EncodeInteractionName(atom_names, section_is_auto) + + dihedral2style[dih_name_orig] = 'class2' + if section_name == '#end_bond-torsion_3': + Febt = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0]] + Febt[0][0] = tokens[6] + if len(tokens) > 7: + Febt[0][1] = tokens[7] + if len(tokens) > 8: + Febt[0][2] = tokens[8] + Febt[1][0] = Febt[0][0] + Febt[1][1] = Febt[0][1] + Febt[1][2] = Febt[0][2] + if len(tokens) > 9: + Febt[1][0] = tokens[9] + if len(tokens) > 10: + Febt[1][1] = tokens[10] + if len(tokens) > 11: + Febt[1][2] = tokens[11] + order_reversed = aorig[0] > aorig[-1] + if order_reversed: + Febt.reverse() + dihedral2class2_ebt_or[dih_name_orig] = [ [F_ij for F_ij in F_i] for F_i in Febt] #deep copy of Febt[][] + dihedral2ver_ebt_or[dih_name_orig] = version + dihedral2ref_ebt_or[dih_name_orig] = reference + + elif section_name == '#bond-bond_1_3': + Kbb13 = tokens[6] + #dihedral2ver_bb13[dih_name_orig] = version + dihedral2class2_bb13_or[dih_name_orig] = Kbb13 + dihedral2ver_bb13_or[dih_name_orig] = version + dihedral2ref_bb13_or[dih_name_orig] = reference + else: + assert(False) + if not dih_name_orig in dihedral2params_or: + dihedral_is_secondary_or[dih_name_orig] = True #only cross terms have been defined so far + dihedral2params_or[dih_name_orig] = ['0.0', '0.0', '0.0', '0.0', '0.0', '0.0'] + dihedral2ver_or[dih_name_orig] = version + dihedral2ref_or[dih_name_orig] = reference + dihedral2priority_or[dih_name_orig] = 0.0 + + + + + + + + + + + elif ((len(tokens) > 6) and + (section_name in ('#angle-torsion_3', + '#angle-angle-torsion_1')) and + (dihedral_styles_selected & + set(['class2', 'torsion_3']))): + if line.lstrip().find('!') == 0: + continue + dihedral_styles.add('class2') + version = tokens[0] + reference = tokens[1] + if line.lstrip().find('!') == 0: + continue + aorig = [a for a in map(EncodeAName, tokens[2:6])] + atom_names = SortByEnds(aorig) + + dih_name_orig = EncodeInteractionName(atom_names, section_is_auto) + + dihedral2style[dih_name_orig] = 'class2' + + if section_name == '#angle-torsion_3': + Fat = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0]] + Fat[0][0] = tokens[6] + if len(tokens) > 7: + Fat[0][1] = tokens[7] + if len(tokens) > 8: + Fat[0][2] = tokens[8] + Fat[1][0] = Fat[0][0] + Fat[1][1] = Fat[0][1] + Fat[1][2] = Fat[0][2] + if len(tokens) > 9: + Fat[1][0] = tokens[9] + if len(tokens) > 10: + Fat[1][1] = tokens[10] + if len(tokens) > 11: + Fat[1][2] = tokens[11] + order_reversed = aorig[0] > aorig[-1] + if order_reversed: + Fat.reverse() + Fat[0].reverse() + Fat[1].reverse() + dihedral2class2_at_or[dih_name_orig] = [ [F_ij for F_ij in F_i] for F_i in Fat] #deep copy of Fat + dihedral2ver_at_or[dih_name_orig] = version + dihedral2ref_at_or[dih_name_orig] = reference + elif section_name == '#angle-angle-torsion_1': + Kaat = tokens[6] + dihedral2class2_aat_or[dih_name_orig] = Kaat + dihedral2ver_aat_or[dih_name_orig] = version + dihedral2ref_aat_or[dih_name_orig] = reference + else: + assert(False) + + if not dih_name_orig in dihedral2params_or: + dihedral_is_secondary_or[dih_name_orig] = True #only cross terms have been defined so far + dihedral2params_or[dih_name_orig] = ['0.0', '0.0', '0.0', '0.0', '0.0', '0.0'] # default value + dihedral2ver_or[dih_name_orig] = version + dihedral2ref_or[dih_name_orig] = reference + dihedral2priority_or[dih_name_orig] = 0.0 + + + + + + + + + + + elif ((len(tokens) > 8) and (section_name == '#out_of_plane') + and (improper_styles_selected & set(['cvff','out_of_plane']))): + if line.lstrip().find('!') == 0: + continue + improper_styles.add('cvff') + aorig = [a for a in map(EncodeAName, tokens[2:6])] + atom_names,_ignore = OOPImproperNameSort(tokens[2:6]) + improper_name = EncodeInteractionName(atom_names, section_is_auto) + imsym = improper_symmetry_subgraph[improper_name] = 'cenJflipIL' + subgraph2impname['cenJflipIL'].add(improper_name) CONTINUEHERE + improper2ver[imsym][improper_name] = tokens[0] + improper2ref[imsym][improper_name] = tokens[1] + improper2priority_or[imsym][improper_name] = \ + DetermineNumericPriority(section_is_auto, + tokens[2:6], + float(improper2ver[imsym][improper_name])) + improper_is_secondary_or[imsym][imp_name_orig] = False + improper2priority[imsym][improper_name] = \ + (section_is_auto, + improper_is_secondary_or[imsym][imp_name_orig], + improper2priority_or[imsym][improper_name]) + K = tokens[6] + n = tokens[7] + chi0 = tokens[8] + improper2style[imsym][improper_name] = 'cvff' + improper2params[imsym][improper_name] = (Kchi+' '+n+' '+chi0) + #if improper_style_name == 'cvff': + # improper2params[improper_name] = (Kchi+' '+n+' '+chi0) + # improper_symmetry_subgraph[improper_name] = 'cenJswapIL' + + + elif ((len(tokens) > 7) and (section_name == '#wilson_out_of_plane') + and (improper_styles_selected and set(['class2','wilson_out_of_plane']))): + if line.lstrip().find('!') == 0: + continue + improper_styles.add('class2') + sys.stderr.write('tokens = ' + str(tokens) + '\n') + + version = tokens[0] + reference = tokens[1] + aorig = [a for a in map(EncodeAName, tokens[2:6])] + + # To avoid redundancy, it is necessary to order the atoms + # in the interaction so that two equivalent ways of ordering + # the atoms in an improper interaction do not get misinterpreted + # as two different types of improper interactions. So we sort + # the 3 "leaf" atoms surrounding the central "hub" by name. + + atom_names, permutation = Class2ImproperNameSort(tokens[2:6]) + + # This will effect the formula for the energy. + # (specifically the "chi0" parameter) + # When we lookup the various cross-term interactions for that + # same improper interaction, we will be sure to sort them + # in the same way to make sure those interactions are + # associated with the same improper interaction. + + imp_name_orig = EncodeInteractionName(atom_names, section_is_auto) + #improper_symmetry_subgraph_or[improper_name] = 'dihedrals_nosym' (<--no) + imsym = improper_symmetry_subgraph_or[imp_name_orig] = 'cenJsortIKL' + improper2ver_or[imsym][imp_name_orig] = version + improper2ref_or[imsym][imp_name_orig] = reference + improper2priority_or[imsym][imp_name_orig] = \ + DetermineNumericPriority(section_is_auto, + tokens[2:6], + float(improper2ver_or[imp_name_orig])) + improper_is_secondary_or[imsym][imp_name_orig] = False + #improper2priority[imp_name_orig] = \ + # (section_is_auto, + # improper_is_secondary_or[imp_name_orig], + # improper2priority_or[imp_name_orig]) + K = tokens[6] + chi0 = tokens[7] + + if Parity(permutation) != 0: + # Each time the order of a pair of atoms is swapped in + # the interaction, all 3 of the "X" (chi) angles change sign + # The formula for the ordinary term in the improper + # interaction is Ei = K*((Xijkl + Xkjli + Xljik)/3 - chi0)^2 + # This formula is invariant if we change the sign of all + # Xijkl, Xkjli, Xljik, chi0 + # Hence, we can account for a change in atom order by + # changing the sign of the "chi0" parameter. + # We calculate the "Parity" of the permutation (ie whether + # the permutation has an even or odd number of swaps) + # and multiply chi0 by -1 for each swap. + # It's not clear if this is necessary since in practice + # the "chi0" parameter is usually zero. + + chi0 = str(-1.0*float(chi0)) # same as ('-' + chi0) + + improper2style_or[imsym][imp_name_orig] = 'class2' + improper2params_or[imsym][imp_name_orig] = [K, chi0] + #improper2params[imp_name_orig] = K + ' ' + chi0 + # default values for cross terms: + if not imp_name_orig in improper2class2_aa_or: + improper2class2_aa_or[imsym][imp_name_orig] = '0.0' #(default) + improper2ver_aa_or[imsym][imp_name_orig] = version + improper2ref_aa_or[imsym][imp_name_orig] = reference + # Initially, set all of the angle-angle cross terms to zero + # Start with the first cross term between aorig[0],aorig[1],aorig[2] & aorig[2],aorig[1],aorig[3] + improper2cross[imp_name_orig][ImCrossTermID([aorig[0],aorig[1],aorig[2],aorig[3]])] = '0.0' + # ...then cyclically permute the 3 "leaf" atoms (aorig[0], aorig[2], aorig[3]) around the "hub" atom (aorig[1]) + improper2cross[imp_name_orig][ImCrossTermID([aorig[2],aorig[1],aorig[3],aorig[0]])] = '0.0' + improper2cross[imp_name_orig][ImCrossTermID([aorig[3],aorig[1],aorig[0],aorig[2]])] = '0.0' + + elif ((len(tokens) > 6) and (section_name == '#angle-angle') + and (improper_styles_selected and set(['class2','wilson_out_of_plane']))): + if line.lstrip().find('!') == 0: + continue + improper_styles.add('class2') + version = tokens[0] + reference = tokens[1] + aorig = [a for a in map(EncodeAName, tokens[2:6])] + atom_names, permutation = Class2ImproperNameSort(tokens[2:6]) + imp_name_orig = EncodeInteractionName(atom_names, section_is_auto) + imsym = improper_symmetry_subgraph_or[imp_name_orig] = 'cenJsortIKL' + improper2ver_aa_or[imsym][imp_name_orig] = version + improper2ref_aa_or[imsym][imp_name_orig] = reference + K = tokens[6] + improper2style_or[imsym][imp_name_orig] = 'class2' + if not imp_name_orig in improper2params_or: + improper_is_secondary_or[imsym][imp_name_orig] = True #only cross terms have been defined so far + improper2params_or[imsym][imp_name_orig] = ['0.0', '0.0'] + improper2ver_or[imsym][imp_name_orig] = version + improper2ref_or[imsym][imp_name_orig] = reference + improper2priority_or[imsym][imp_name_orig] = 0.0 + if not imp_name_orig in improper2cross: + # then initialize all of the cross terms to zero + improper2cross[imp_name_orig][ImCrossTermID([aorig[0],aorig[1],aorig[2],aorig[3]])] = '0.0' + # ...then cyclically permute the 3 "leaf" atoms (aorig[0], aorig[2], aorig[3]) around the "hub" atom (aorig[1]) + improper2cross[imp_name_orig][ImCrossTermID([aorig[2],aorig[1],aorig[3],aorig[0]])] = '0.0' + improper2cross[imp_name_orig][ImCrossTermID([aorig[3],aorig[1],aorig[0],aorig[2]])] = '0.0' + #improper2class2_aa_or[imp_name_orig] = K (not needed) + improper2cross[imp_name_orig][ImCrossTermID(aorig)] = K + + elif (len(tokens) > 0) and (section_name == '#out_of_plane-out_of_plane'): + if line.lstrip().find('!') == 0: + continue + display_OOP_OOP_warning = True + + elif (len(tokens) > 0) and (section_name == '#torsion-torsion_1'): + if line.lstrip().find('!') == 0: + continue + display_torsion_torsion_1_warning = True + + elif section_name == '#templates': + #if line.lstrip().find('!') == 0: + # continue + lines_templates.append(line) + + elif section_name == '#reference': + if line.lstrip().find('!') == 0: + continue + if len(tokens_after_section_name) > 0: + ref_number = int(tokens_after_section_name[0]) + if len(line.strip()) > 0: + lines_references[ref_number].append(line) + + + + """ + --- these next few lines of code appear to be unnecessary. + --- I'll probably delete this code in a later version + elif (len(tokens) > 3) and (section_name == '#hbond_definition'): + hbondID = tokens[1] + if tokens[2] == 'distance': + hbond2distance[hbondID] = tokens[3] + if tokens[2] == 'angle': + hbond2angle[hbondID] = tokens[3] + if tokens[2] == 'donors': + hbond2donors[hbondID] = map(EncodeAName, tokens[2:]) + if tokens[2] == 'acceptors': + hbond2acceptors[hbondID] = map(EncodeAname(),tokens[2:]) + """ + + + if display_OOP_OOP_warning: + lines_warnings.append('###########################################################\n' + '# WARNING\n' + '# ALL \"out-of-plane_out-of_plane\" INTERACTIONS ARE IGNORED.\n' + '# CHECK THAT THESE TERMS ARE NEGLEGIBLY SMALL.\n' + '# \"out-of-plane_out-of_plane\" interactions are not yet supported in LAMMPS\n' + '# (...as of 2017-10-13) There is no way that moltemplate can produce\n' + '# LAMMPS compatible parameter files for these interactions.\n' + '###########################################################\n') + + if display_torsion_torsion_1_warning: + lines_warnings.append('###########################################################\n' + '# WARNING\n' + '# ALL \"torsion_torsion_1\" INTERACTIONS ARE IGNORED.\n' + '# CHECK THAT THESE TERMS ARE NEGLEGIBLY SMALL.\n' + '# \"torsion_torsion_1\" interactions are not yet supported in LAMMPS\n' + '# (...as of 2017-10-13) There is no way that moltemplate can produce\n' + '# LAMMPS compatible parameter files for these interactions.\n' + '###########################################################\n') + + + sys.stderr.write(' done.\n' + 'building lookup tables...') + + + + + + + + """ + --- these next few lines of code appear to be unnecessary. + --- I'll probably delete them eventually + if len(hbond2params) > 0: + sys.stdout.write('\n\n write_once("In Settings") {\n') + if hbond_style == 'hbond/dreiding/lj': + for hbondID, angle in hbond2angle: + hbond2params[hbondID] = hbond2distance[hbondID]+' '+hbond2angle[hbondID] ##<--this is not correct + for hbondID, params in hbond2params: + for donor in hbond2donors[hbondID]: + for acceptor in hbond2acceptors[hbondID]: + for hydrogen in hbond2hydrogens[hbondID]: + sys.stdout.write('pair_coeff @atom:'+donor+' @atom:'+acceptor+' '+hbond_style+' @atom:'+hydrogen+' i '+params+'\n') + sys.stdout.write(' } # (DREIDING style H-bond parameters)\n\n\n') + """ + + + + + + + sys.stderr.write(" done.\n") + sys.stderr.write("Trying all combinations of atom types...") + + + + + + + + ##################### POST-PROCESSING ######################## + + + + + + for ang_name_orig in angle2params_or: + + is_auto = (ang_name_orig.find('auto_') == 0) + + atom_names = ExtractANames(ang_name_orig) + + num_angles = 0 + + atom_combos = [set([]), set([]), set([])] + + # We must consider every possible combination of atom types + # which satisfy BOTH angle_equivalences and bond_equivalences. + # ...AND we must consider BOTH regular AND auto equivalences. + # For each combination generate a separate @angle interaction. + # (I fear this will make the resulting .LT file large.) + + # Use different auto equivalence lookup tables for different + # atoms in the interaction. (ie the "center" and "end" atoms) + auto_angle2atom = [auto_angleend2atom, + auto_anglecenter2atom, + auto_angleend2atom] + + for i in range(0, 3): + angle_atom_name = atom_names[i] + sys.stderr.write('DEBUG: angle_atom_name = '+angle_atom_name+'\n') + if not is_auto: + assert(angle_atom_name[-1] != '_') + # assume regular equivalences when looking up atom types + sys.stderr.write('DEBUG: equiv_angle2atom['+angle_atom_name+'] = '+ + str(equiv_angle2atom[angle_atom_name])+'\n') + for a in equiv_angle2atom[angle_atom_name]: + atom_combos[i].add(a) + else: + #assert((angle_atom_name[-1] == '_') or (angle_atom_name[0] == '*')) (<--some exceptions. don't assert this) + + # assume "auto" equivalences when looking up atom types + sys.stderr.write('DEBUG: auto_angle2atom['+str(i)+']['+angle_atom_name+'] = \n' + ' '+str(equiv_angle2atom[i][angle_atom_name])+'\n') + for a in auto_angle2atom[i][angle_atom_name]: + atom_combos[i].add(a) + + found_at_least_one = False + #for a1 in atom_combos[0]: + for a1 in sorted(list(atom_combos[0])): + #for a2 in atom_combos[1]: + for a2 in sorted(list(atom_combos[1])): + #sys.stderr.write('atom2auto_bond = '+str(atom2auto_bond)+'\n') + bond_data1 = LookupBondLength(a1, a2, + atom2equiv_bond, + bond2r0, + atom2auto_bond, + bond2r0_auto) + if bond_data1 == None: # Save time by continuing only if a + continue # bond was defined between a1 and a2 + + #for a3 in atom_combos[2]: + for a3 in sorted(list(atom_combos[2])): + bond_data2 = LookupBondLength(a2, a3, + atom2equiv_bond, + bond2r0, + atom2auto_bond, + bond2r0_auto) + if bond_data2 == None: + continue + + #bond lengths: + r0s = [0.0, 0.0] + #equivalent atom names used to lookup the bonds: + batoms = [['', ''], ['', '']] + #were "auto" equivalences needed to lookup the bond length? + b_is_auto = [False, False] + r0s[0], batoms[0], b_is_auto[0] = bond_data1 + r0s[1], batoms[1], b_is_auto[1] = bond_data2 + order_reversed = aorig[0] > aorig[-1] + if order_reversed: + batoms.reverse() + batoms[0].reverse() + batoms[1].reverse() + b_is_auto.reverse() + ang_name_full = (ang_name_orig + ',' + + EncodeInteractionName(batoms[0], b_is_auto[0]) + ',' + + EncodeInteractionName(batoms[1], b_is_auto[1])) + + + #sys.stderr.write('DEBUG: (a1,a2,a3) = '+str((a1,a2,a3))+', ' + # ' (b11,b12,b21,b22) = '+str(batoms)+'\n') + angle2ref_or[ang_name_full] = reference + angle2style_or[ang_name_full] = 'class2' + theta0_K_params = angle2params_or[ang_name_orig] + angle2params[ang_name_full] = ' '.join(theta0_K_params) + if ang_name_orig in angle2class2_bb_or: + Kbb = angle2class2_bb_or[ang_name_orig] + assert(ang_name_orig in angle2ver_bb_or) + assert(ang_name_orig in angle2ref_bb_or) + else: #(use default values) + Kbb = '0.0' + angle2class2_bb_or[ang_name_orig] = Kbb + angle2ver_bb_or[ang_name_orig] = angle2ver_or[ang_name_orig] + angle2ref_bb_or[ang_name_orig] = angle2ref_or[ang_name_orig] + angle2class2_bb[ang_name_full] = (Kbb+' '+r0s[0]+' '+r0s[1]) + angle2priority_bb = \ + DetermineNumericPriority(is_auto, + batoms[0] + batoms[1], + float(angle2ver_bb_or[ang_name_orig])) + angle2ver_bb[ang_name_full] = angle2ver_bb_or[ang_name_orig] + angle2ref_bb[ang_name_full] = angle2ref_bb_or[ang_name_orig] + + if ang_name_orig in angle2class2_ba_or: + Kba = angle2class2_ba_or[ang_name_orig] + assert(ang_name_orig in angle2ver_ba_or) + assert(ang_name_orig in angle2ref_ba_or) + else: #(use default values) + Kba = ['0.0', '0.0'] + angle2class2_ba_or[ang_name_orig] = Kba + angle2ver_ba_or[ang_name_orig] = angle2ver_or[ang_name_orig] + angle2ref_ba_or[ang_name_orig] = angle2ref_or[ang_name_orig] + angle2class2_ba[ang_name_full] = (Kba[0]+' '+Kba[1]+' '+r0s[0]+' '+r0s[1]) + angle2sym_ba = (Kba[0] == Kba[1]) + angle2priority_ba = \ + DetermineNumericPriority(is_auto, + batoms[0] + batoms[1], + angle2ver_ba_or[ang_name_orig]) + angle2ver_ba[ang_name_full] = angle2ver_ba_or[ang_name_orig] + angle2ref_ba[ang_name_full] = angle2ref_ba_or[ang_name_orig] + + version = max((angle2ver_or[ang_name_orig], + angle2ver_bb_or[ang_name_orig], + angle2ver_ba_or[ang_name_orig])) + angle2ver[ang_name_full] = version + angle2ref[ang_name_full] = angle2ref_or[ang_name_orig] + angle2style[ang_name_full] = 'class2' + angle2priority[ang_name_full] = \ + (is_auto, + angle_is_secondary_or[ang_name_orig], + angle2priority_or[ang_name_orig], + angle2priority_bb, + angle2priority_ba) + + if num_angles < len(angle2params): + sys.stderr.write('DEBUG: '+section_name[1:]+' r0 ('+ang_name_full+') = ('+r0s[0]+', '+r0s[1]+')\n') + sys.stderr.write('DEBUG: len(angle2class2_bb) = '+str(len(angle2class2_bb))+'\n') + sys.stderr.write('DEBUG: '+section_name[1:]+' r0 ('+ang_name_full+') = ('+r0s[0]+', '+r0s[1]+')\n') + #sys.stderr.write('DEBUG: len(angle2class2_ba) = '+str(len(angle2class2_ba))+'\n') + num_angles = len(angle2params) + + if ((not angle2sym_ba) + and + (atom_names[0] == atom_names[2])): + raise InputError('Error: Unsupported angle interaction: \"@angle:'+str(ang_name_orig)+'\"\n' + ' This interaction has symmetric atom names:\n' + ', '.join(atom_names)+'\n' + ' and yet it lacks symmetry in the corresponding force field parameters.\n' + ' (If this is not a mistake in the .frc file, then explain\n' + ' why to andrew so he can fix this.)\n') + + + found_at_least_one = True + + + if not found_at_least_one: + lines_warnings.append('# WARNING: Undefined bond length (r0) in angle: ' + + ' '.join(atom_names)+'\n') + # Then we were unable to define cross terms for this interaction + # because at least one of the bond lengths could not be determined. + # This usually occurs because most of the .FRC files which are + # in circulation are incomplete. We have to handle this gracefully. + ang_name_full = (ang_name_orig + ',X,X,X,X,X,X') + version = angle2ver_or[ang_name_orig] + reference = angle2ref_or[ang_name_orig] + angle2ref[ang_name_full] = reference + angle2ver[ang_name_full] = version + angle2style[ang_name_full] = 'class2' + angle2params[ang_name_full] = ' '.join(angle2params_or[ang_name_orig]) + # substitute zeros for all the cross term interactions + angle2priority[ang_name_full] = angle2priority_or[ang_name_orig] + angle2class2_bb[ang_name_full] = '0.0 1.0 1.0' + angle2ref_bb[ang_name_full] = reference + angle2ver_bb[ang_name_full] = version + angle2class2_ba[ang_name_full] = '0.0 0.0 1.0 1.0' + angle2ref_ba[ang_name_full] = reference + angle2ver_ba[ang_name_full] = version + #sys.stderr.write('bond_names = ' + str(bond_names) + '\n') + + + + + + ############ POST-PROCESSING DIHEDRALS ########### + + + + for dih_name_orig in dihedral2params_or: + #assert(dih_name_orig in dihedral2class2_mbt_or) + #assert(dih_name_orig in dihedral2class2_ebt_or) + #assert(dih_name_orig in dihedral2class2_bb13_or) + #assert(dih_name_orig in dihedral2class2_at_or) + #assert(dih_name_orig in dihedral2class2_aat_or) + + is_auto = (dih_name_orig.find('auto_') == 0) + + atom_names = ExtractANames(dih_name_orig) + + num_dihedrals = 0 + + atom_combos = [set([]), set([]), set([]), set([])] + + # We must consider every possible combination of atom types + # which satisfy all three: + # dihedral_equivalences + # bond_equivalences + # angle_equivalences + # ...AND we must consider BOTH regular AND auto equivalences. + # For each combination generate a separate @dihedral interaction. + # (I fear this will make the resulting .LT file large.) + + # Use different auto equivalence lookup tables for different + # atoms in the interaction. (ie the "center" and "end" atoms) + auto_dihedral2atom = [auto_dihedralend2atom, + auto_dihedralcenter2atom, + auto_dihedralcenter2atom, + auto_dihedralend2atom] + + for i in range(0, 4): + dihedral_atom_name = atom_names[i] + sys.stderr.write('DEBUG: dihedral_atom_name = '+dihedral_atom_name+'\n') + if not is_auto: + assert(dihedral_atom_name[-1] != '_') + # assume regular equivalences when looking up atom types + sys.stderr.write('DEBUG: equiv_dihedral2atom['+dihedral_atom_name+'] = '+ + str(equiv_dihedral2atom[dihedral_atom_name])+'\n') + for a in equiv_dihedral2atom[dihedral_atom_name]: + atom_combos[i].add(a) + else: + assert((dihedral_atom_name[-1] == '_') or (ange_atom_name[0] == '*')) + # assume "auto" equivalences when looking up atom types + sys.stderr.write('DEBUG: auto_dihedral2atom['+str(i)+']['+dihedral_atom_name+'] = \n' + ' '+str(equiv_dihedral2atom[i][dihedral_atom_name])+'\n') + for a in auto_dihedral2atom[i][dihedral_atom_name]: + atom_combos[i].add(a) + + found_at_least_one = False + + #for a1 in atom_combos[0]: + for a1 in sorted(list(atom_combos[0])): + + #for a2 in atom_combos[1]: + for a2 in sorted(list(atom_combos[1])): + + #sys.stderr.write('atom2auto_bond = '+str(atom2auto_bond)+'\n') + bond_data12 = LookupBondLength(a1, a2, + atom2equiv_bond, + bond2r0, + atom2auto_bond, + bond2r0_auto) + if bond_data12 == None: + # Save time by only continuing if a bond was + # found between a1 and a2 + continue + #for a3 in atom_combos[2]: + for a3 in sorted(list(atom_combos[2])): + bond_data23 = LookupBondLength(a2, a3, + atom2equiv_bond, + bond2r0, + atom2auto_bond, + bond2r0_auto) + if bond_data23 == None: + # Save time by only continuing if a bond was + # found between a2 and a3 + continue + + angle_data123 = LookupBondAngle(a1, a2, a3, + atom2equiv_angle, + angle2theta0_or, + [atom2auto_angleend, + atom2auto_anglecenter, + atom2auto_anglecenter], + angle2theta0_auto_or) + if angle_data123 == None: + # Save time by only continuing if an angle was + # found between a1, a2, a3 + continue + + + #for a4 in atom_combos[3]: + for a4 in sorted(list(atom_combos[3])): + bond_data34 = LookupBondLength(a3, a4, + atom2equiv_bond, + bond2r0, + atom2auto_bond, + bond2r0_auto) + if bond_data34 == None: + # Save time by only continuing if a bond was + # found between a3 and a4 + continue + + #rest bond lengths: + r0s = [0.0, 0.0, 0,0] + #equivalent atom names used to lookup the bonds: + batoms = [['', ''], ['', ''], ['','']] + #are these bond interactions "auto" interactions? + #were "auto" equivalences needed to lookup the bond length? + b_is_auto = [False, False, False] + r0s[0], batoms[0], b_is_auto[0] = bond_data12 + r0s[1], batoms[1], b_is_auto[1] = bond_data23 + r0s[2], batoms[2], b_is_auto[2] = bond_data34 + + angle_data234 = LookupBondAngle(a2, a3, a4, + atom2equiv_angle, + angle2theta0_or, + [atom2auto_angleend, + atom2auto_anglecenter, + atom2auto_anglecenter], + angle2theta0_auto_or) + if angle_data234 == None: + # Save time by only continuing if an angle was + # found between a2, a3, a4 + continue + + #rest angles: + theta0s = [0.0, 0.0] + #equivalent atom names used to lookup angles: + aatoms = [['', '',''], ['', '','']] + #were "auto" equivalences needed to lookup the bond-angle? + a_is_auto = [False, False] + theta0s[0], aatoms[0], a_is_auto[0] = angle_data123 + theta0s[1], aatoms[1], a_is_auto[1] = angle_data234 + order_reversed = aorig[0] > aorig[-1] + if order_reversed: + batoms.reverse() + batoms[0].reverse() + batoms[1].reverse() + batoms[2].reverse() + b_is_auto.reverse() + theta0s.reverse() + aatoms.reverse() + aatoms[0].reverse() + aatoms[1].reverse() + a_is_auto.reverse() + + #if is_auto: + dih_name_full = (dih_name_orig + ',' + + EncodeInteractionName(batoms[0], b_is_auto[0]) + ',' + + EncodeInteractionName(batoms[1], b_is_auto[1]) + ',' + + EncodeInteractionName(batoms[2], b_is_auto[2]) + ',' + + EncodeInteractionName(aatoms[0], a_is_auto[0]) + ',' + + EncodeInteractionName(aatoms[1], a_is_auto[1])) + #else: + # assert(batoms[0][1] == batoms[1][0]) + # assert(batoms[1][1] == batoms[2][0]) + # assert(aatoms[0][1] == aatoms[1][0]) + # assert(aatoms[0][2] == aatoms[1][1]) + # dih_name_full = dih_name_orig + ',' + \ + # EncodeInteractionName([batoms[0][0], batoms[0][1] + # batoms[2][0], batoms[2][1], + # aatoms[0][0], aatoms[0][1], + # aatoms[0][2], aatoms[1][0]], + # False) + + ########### Fourier terms ########### + #if dih_name_orig in dihedral2param_or: + V_phi0_params = dihedral2params_or[dih_name_orig] + dihedral2params[dih_name_full] = ' '.join(V_phi0_params) + #else: + # dihedral2params[dih_name_full] = '0.0 0.0 0.0 0.0 0.0 0.0' + + ########### "mbt", "ebt", and "aat" terms ########### + # "mbt" terms: + if dih_name_orig in dihedral2class2_mbt_or: + Fmbt = dihedral2class2_mbt_or[dih_name_orig] + else: + Fmbt = ['0.0', '0.0', '0.0'] + dihedral2class2_mbt_or[dih_name_orig] = Fmbt + dihedral2ver_mbt_or[dih_name_orig] = dihedral2ver_or[dih_name_orig] + dihedral2ref_mbt_or[dih_name_orig] = dihedral2ref_or[dih_name_orig] + dihedral2class2_mbt[dih_name_full] = \ + (Fmbt[0]+' '+Fmbt[1]+' '+Fmbt[2]+' '+r0s[1]) + dihedral2priority_mbt = \ + DetermineNumericPriority(is_auto, + batoms[1], + float(dihedral2ver_mbt_or[dih_name_orig])) + dihedral2ver_mbt[dih_name_full] = dihedral2ver_mbt_or[dih_name_orig] + dihedral2ref_mbt[dih_name_full] = dihedral2ref_mbt_or[dih_name_orig] + + # "ebt" terms: + if dih_name_orig in dihedral2class2_ebt_or: + Febt = dihedral2class2_ebt_or[dih_name_orig] + dihedral2sym_ebt = ((Febt[0][0] == Febt[1][0]) and + (Febt[0][1] == Febt[1][1]) and + (Febt[0][2] == Febt[1][2])) + #and (r0s[0] == r0s[2])) + else: + Febt = [['0.0','0.0','0.0'], ['0.0','0.0','0.0']] + dihedral2class2_ebt_or[dih_name_orig] = Febt + dihedral2ver_ebt_or[dih_name_orig] = dihedral2ver_or[dih_name_orig] + dihedral2ref_ebt_or[dih_name_orig] = dihedral2ref_or[dih_name_orig] + dihedral2sym_ebt = True + dihedral2class2_ebt[dih_name_full]= (Febt[0][0] + ' ' + + Febt[0][1] + ' ' + + Febt[0][2] + ' ' + + Febt[1][0] + ' ' + + Febt[1][1] + ' ' + + Febt[1][2] + ' ' + + r0s[0]+' '+r0s[2]) + + dihedral2priority_ebt = \ + DetermineNumericPriority(is_auto, + batoms[0] + batoms[2], + float(dihedral2ver_ebt_or[dih_name_orig])) + dihedral2ver_ebt[dih_name_full] = dihedral2ver_ebt_or[dih_name_orig] + dihedral2ref_ebt[dih_name_full] = dihedral2ref_ebt_or[dih_name_orig] + + #(Note: large atom_priority number <==> low priority + # Only one of the atom priority numbers should be > 0) + + # "bb13" terms: + if dih_name_orig in dihedral2class2_bb13_or: + Kbb13 = dihedral2class2_bb13_or[dih_name_orig] + #dihedral2sym_bb13 = (r0s[0] == r0s[2]) + dihedral2sym_bb13 = True + else: + Kbb13 = '0.0' + dihedral2class2_bb13_or[dih_name_orig] = Kbb13 + dihedral2ver_bb13_or[dih_name_orig] = dihedral2ver_or[dih_name_orig] + dihedral2ref_bb13_or[dih_name_orig] = dihedral2ref_or[dih_name_orig] + dihedral2sym_bb13 = True + + dihedral2class2_bb13[dih_name_full] = (Kbb13+' '+r0s[0]+' '+r0s[2]) + dihedral2priority_bb13 = \ + DetermineNumericPriority(is_auto, + batoms[0] + batoms[2], + float(dihedral2ver_bb13_or[dih_name_orig])) + dihedral2ver_bb13[dih_name_full] = dihedral2ver_bb13_or[dih_name_orig] + dihedral2ref_bb13[dih_name_full] = dihedral2ref_bb13_or[dih_name_orig] + + + ########### "at" and "aat" terms ########### + # "at" terms: + if dih_name_orig in dihedral2class2_at_or: + Fat = dihedral2class2_at_or[dih_name_orig] + dihedral2sym_at = ((Fat[0][0] == Fat[1][0]) and + (Fat[0][1] == Fat[1][1]) and + (Fat[0][2] == Fat[1][2])) + #and (theta0[0] == theta0[1])) + else: + Fat = [['0.0','0.0','0.0'], ['0.0','0.0','0.0']] + dihedral2class2_at_or[dih_name_orig] = Fat + dihedral2ver_at_or[dih_name_orig] = dihedral2ver_or[dih_name_orig] + dihedral2ref_at_or[dih_name_orig] = dihedral2ref_or[dih_name_orig] + dihedral2sym_at = True + dihedral2class2_at[dih_name_full] = \ + (Fat[0][0] + ' ' + + Fat[0][1] + ' ' + + Fat[0][2] + ' ' + + Fat[1][0] + ' ' + + Fat[1][1] + ' ' + + Fat[1][2] + ' ' + + theta0s[0] + ' ' + + theta0s[1]) + dihedral2priority_at = \ + DetermineNumericPriority(is_auto, + aatoms[0] + aatoms[1], + float(dihedral2ver_at_or[dih_name_orig])) + dihedral2ver_at[dih_name_full] = dihedral2ver_at_or[dih_name_orig] + dihedral2ref_at[dih_name_full] = dihedral2ref_at_or[dih_name_orig] + + + # "aat" terms: + if dih_name_orig in dihedral2class2_aat_or: + Kaat = dihedral2class2_aat_or[dih_name_orig] + #dihedral2sym_aat = (theta0[0] == theta0[1]) + dihedral2sym_aat = True + else: + Kaat = '0.0' + dihedral2class2_aat_or[dih_name_orig] = Kaat + dihedral2ver_aat_or[dih_name_orig] = dihedral2ver_or[dih_name_orig] + dihedral2ref_aat_or[dih_name_orig] = dihedral2ref_or[dih_name_orig] + dihedral2sym_aat = True + dihedral2class2_aat[dih_name_full] = \ + (Kaat+' '+theta0s[0]+' '+theta0s[1]) + dihedral2priority_aat = \ + DetermineNumericPriority(is_auto, + aatoms[0] + aatoms[1], + float(dihedral2ver_aat_or[dih_name_orig])) + dihedral2ver_aat[dih_name_full] = dihedral2ver_aat_or[dih_name_orig] + dihedral2ref_aat[dih_name_full] = dihedral2ref_aat_or[dih_name_orig] + + if len(dihedral2params) > num_dihedrals: + sys.stderr.write('DEBUG: dihedral['+dih_name_full+']:\n' + '(r12,r23,r34) = (' + +r0s[0]+','+r0s[1]+','+r0s[2]+') \n' + '(theta123,theta234) = (' + +theta0s[0]+','+theta0s[1]+') \n') + sys.stderr.write('DEBUG: num_dihedrals = len(dihedral2params) = ' + +str(len(dihedral2params))+'\n') + version = max((dihedral2ver_or[dih_name_orig], + dihedral2ver_mbt_or[dih_name_orig], + dihedral2ver_ebt_or[dih_name_orig], + dihedral2ver_bb13_or[dih_name_orig], + dihedral2ver_at_or[dih_name_orig], + dihedral2ver_aat_or[dih_name_orig])) + + dihedral2style[dih_name_full] = 'class2' + dihedral2ver[dih_name_full] = version + dihedral2ref[dih_name_full] = dihedral2ref_or[dih_name_orig] + dihedral2priority[dih_name_full] = \ + (is_auto, + dihedral_is_secondary_or[dih_name_orig], + dihedral2priority_or[dih_name_orig], + dihedral2priority_mbt, + dihedral2priority_ebt, + dihedral2priority_bb13, + dihedral2priority_at, + dihedral2priority_aat) + + num_dihedrals = len(dihedral2params) + + if ((not (dihedral2sym_ebt and + #dihedral2sym_mbt and + # (note: symmetry doesn't make sense for mbt) + dihedral2sym_at and + dihedral2sym_aat and + dihedral2sym_bb13)) + and + ((atom_names[0] == atom_names[3]) and + (atom_names[1] == atom_names[2]))): + raise InputError('Error: Unsupported dihedral interaction: \"@dihedral:'+str(dih_name_orig)+'\"\n' + ' This interaction has symmetric atom names:\n'+ + ', '.join(atom_names)+'\n'+ + ' and yet it lacks symmetry in the corresponding force field parameters.\n'+ + ' (If this is not a mistake in the .frc file, then explain\n'+ + ' why to andrew so he can fix this.)\n') + + found_at_least_one = True + + + #sys.stderr.write('DEBUG: number of interactions = '+str(len(dihedral2class2_bb))+'\n') + if not found_at_least_one: + lines_warnings.append('# WARNING: Undefined bond length (r0) or rest angle (theta0) in dihedral: ' + + #'# the dihedral interaction between: ' + + ' '.join(atom_names)+'\n') + # Then we were unable to define cross terms for this interaction because + # at least one of the bond lengths or bond angles could not be determined. + # This usually occurs because most of the .FRC files which are + # in circulation are incomplete. We have to handle this gracefully. + dih_name_full = (dih_name_orig + ',X,X,X,X,X,X,X,X,X,X,X,X') + reference = dihedral2ref_or[dih_name_orig] + version = dihedral2ver_or[dih_name_orig] + dihedral2ref[dih_name_full] = reference + dihedral2ver[dih_name_full] = version + dihedral2style[dih_name_full] = 'class2' + dihedral2priority[dih_name_full] = dihedral2priority_or[dih_name_orig] + dihedral2params[dih_name_full] = ' '.join(dihedral2params_or[dih_name_orig]) + # substitute zeros for all the cross term interactions + + dihedral2class2_mbt[dih_name_full] = '0.0 0.0 0.0 1.0' + dihedral2ref_mbt[dih_name_full] = reference + dihedral2ver_mbt[dih_name_full] = version + + dihedral2class2_ebt[dih_name_full] = '0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0' + dihedral2ref_ebt[dih_name_full] = reference + dihedral2ver_ebt[dih_name_full] = version + + dihedral2class2_bb13[dih_name_full] = '0.0 1.0 1.0' + dihedral2ref_bb13[dih_name_full] = reference + dihedral2ver_bb13[dih_name_full] = version + + dihedral2class2_at[dih_name_full] = '0.0 0.0 0.0 0.0 0.0 0.0 120.0 120.0' + dihedral2ref_at[dih_name_full] = reference + dihedral2ver_at[dih_name_full] = version + + dihedral2class2_aat[dih_name_full] = '0.0 120.0 120.0' + dihedral2ref_aat[dih_name_full] = reference + dihedral2ver_aat[dih_name_full] = version + + + + + + + + + ############ POST-PROCESSING IMPROPERS ########### + + + + + imsym = 'cenJsortIKL' + for imp_name_orig in improper2cross[imsym]: + + if improper2style_or[imsym][imp_name_orig] != 'class2': + continue + + assert(imp_name_orig in improper2params_or[imsym]) + assert(imp_name_orig in improper2class2_aa_or[imsym]) + + is_auto = (imp_name_orig.find('auto') == 0) + + atom_names = ExtractANames(imp_name_orig) + + num_impropers = 0 + + atom_combos = [set([]), set([]), set([]), set([])] + + # We must consider every possible combination of atom types + # which satisfy both: + # improper_equivalences + # angle_equivalences + # ...AND we must consider BOTH regular AND auto equivalences. + # For each combination generate a separate @improper interaction. + # (I fear this will make the resulting .LT file large.) + + # Use different auto equivalence lookup tables for different + # atoms in the interaction. (ie the "center" and "end" atoms) + + auto_improper2atom = [auto_improperend2atom, + auto_impropercenter2atom, + auto_improperend2atom, + auto_improperend2atom] + + for i in range(0, 4): + improper_atom_name = atom_names[i] + sys.stderr.write('DEBUG: improper_atom_name = '+improper_atom_name+'\n') + if not is_auto: + assert(improper_atom_name[-1] != '_') + # assume regular equivalences when looking up atom types + sys.stderr.write('DEBUG: equiv_improper2atom['+improper_atom_name+'] = '+ + str(equiv_improper2atom[improper_atom_name])+'\n') + for a in equiv_improper2atom[improper_atom_name]: + atom_combos[i].add(a) + else: + assert((improper_atom_name[-1] == '_') or (improper_atom_name[0] == 'X')) + # assume "auto" equivalences when looking up atom types + sys.stderr.write('DEBUG: auto_improper2atom['+str(i)+']['+improper_atom_name+'] = \n' + ' '+str(auto_improper2atom[i][improper_atom_name])+'\n') + for a in auto_improper2atom[i][improper_atom_name]: + atom_combos[i].add(a) + + is_auto = IsAutoInteraction(imp_name_orig) # is this an "auto" interaction? + + atom_names = ExtractANames(imp_name_orig) # names of all 4 atoms + lnames = [atom_names[0], atom_names[2], atom_names[3]] # names of "leaf" atoms + + #M1 = improper2cross[imp_name_orig][ 2 ] + #M2 = improper2cross[imp_name_orig][ 0 ] + #M3 = improper2cross[imp_name_orig][ 3 ] + + #try: + M1 = improper2cross[imp_name_orig][ImCrossTermID([atom_names[0], + atom_names[1], + atom_names[2], + atom_names[3]])] + #except KeyError: + # M1 = '0.0' + + #try: + M2 = improper2cross[imp_name_orig][ImCrossTermID([atom_names[2], + atom_names[1], + atom_names[0], + atom_names[3]])] + #except KeyError: + # M2 = '0.0' + + #try: + M3 = improper2cross[imp_name_orig][ImCrossTermID([atom_names[0], + atom_names[1], + atom_names[3], + atom_names[2]])] + #except KeyError: + # M3 = '0.0' + + + + + + + # ###### Symmetry: ###### + # Unfortunately, it's time to wade into the messy issue of symmetry. + # We desire a way to detect whether an improper interaction + # between 4 atoms is invariant with respect to atom reordering + # of the 3 peripheral "leaf" atoms which surround the central atom. + # In principle, any rearrangement of atoms would require a separate + # class2 improper interaction. However, in some cases, when the + # parameters for these rearrangements are symmetric, we can detect + # that and warn moltemplate that it is not necessary to generate new + # improper interactions for every conceivable permutation of these + # atoms. Figuring out when it is safe to do that is a headache. + # (...but it's necessary. Otherwise each junction in the molecule + # will generate 3*2*1=6 improper interactions which are usually + # redundant. This will slow down the simulation significantly + # and may make it difficult to compare the resulting LAMMPS + # input files with those generated by other tools like msi2lmp.) + # + # To make this easier, I store the parameters in arrays which + # are arranged in a more symmetric way + M = [0.0, 0.0, 0.0] + theta0 = [0.0, 0.0, 0.0] + # noti3[i] = the sorted tuple of integers from the + # set {0,1,2} which remain after deleting i + noti3 = ((1,2), (0,2), (0,1)) + i_neigh = [ ([0,2,3][ noti3[i][0] ], # neighbor leaves of ith leaf + [0,2,3][ noti3[i][1] ]) for i in range(0,3)] + for i in range(0, 3): + # You will notice the pattern "[0,2,3][i]" appears often in the + # code below because for class 2 force-fields, the second atom + # (with index 1) is the central atom ("hub" atom), and the three + # that surround it ("leaf" atoms) have indices 0,2,3. I want + # to skip over the central atoms and loop over the leaf atoms + imTermID = ImCrossTermID([atom_names[ i_neigh[i][0] ], + atom_names[ 1 ], + atom_names[ [0,2,3][i] ], + atom_names[ i_neigh[i][1] ]]) + M[i] = float(improper2cross[imp_name_orig][imTermID]) + ##i_leaf = [0,2,3][i] + ##M[i] = float(improper2cross[imp_name_orig][ i_leaf ]) + #angle_name_l = SortByEnds([atom_names[i_neigh[i][0]], + # atom_names[ 1 ], + # atom_names[i_neigh[i][1]]]) + #angle_name = EncodeInteractionName(angle_name_l, is_auto) + #theta0[i] = float(angle2theta0_or[angle_name]) + + for i in range(0, 3): + if (M[ noti3[i][0] ] == M[ noti3[i][1] ]): + #and (theta0[ noti3[i][0] ] == theta0[ noti3[i][1] ])): + # Then it is safe to swap the order of these two atoms in + # the list of atoms when looking up force-field parameters + improper2sym[imp_name_orig].add(i_neigh[i][0]) + improper2sym[imp_name_orig].add(i_neigh[i][1]) + # Later, I can use these to decide whether or not I need to + # change the default script with symmetry rules. (I'm hoping + # that "cenJsortIKL.py" should work in most cases.) + # CONTINUEHERE: FIGURE OUT WHETHER TO WORRY ABOUT improper2sym + else: + if atom_names[i_neigh[i][0]] == atom_names[i_neigh[i][1]]: + raise InputError('Error: Unsupported improper interaction: \"@improper:'+str(imp_name_orig)+'\"\n' + ' This interaction has matching atom aliases:\n' + ' (@atom:'+str(atom_names[i_neigh[i][0]])+ + ', @atom:'+str(atom_names[i_neigh[i][1]])+')\n' + ' and yet it lacks symmetry in the corresponding force field parameters.\n' + ' (If this is not a mistake in the .frc file, then ask andrew to\n' + ' fix this limitation.)\n') + + + found_at_least_one = False + for a1 in sorted(list(atom_combos[0])): + for a2 in sorted(list(atom_combos[1])): + sys.stderr.write('DEBUG: improper '+imp_name_orig+' substitutions: '+a1+','+a2+',...\n') + for a3 in sorted(list(atom_combos[2])): + #(Note: sorting "atom_combos" makes it faster and easier + # to follow the loop's progress. This nested loop can be very slow.) + theta0s = ['0.0', '0.0', '0.0'] + aatoms = [['', '',''], ['', '',''], ['', '', '']] + #were "auto" equivalences needed to lookup the bond-angle? + a_is_auto = [False, False, False] + # Collect information from the different terms in a class2 improper: + # http://lammps.sandia.gov/doc/improper_class2.html + + # Loop over the neighbors of the central atom in each improper + # interaction and collect all the Mi and Ti parameters. Collect + # them in the order they appear in the formula for the Eaa + # term as it appears in the documentation for improper_style class2: + # + # http://lammps.sandia.gov/doc/improper_class2.html + # + # Eaa = M1 (Tijk - T0)(Tkjl - T2) + #common leaf node: k (index 2) + # M2 (Tijk - T0)(Tijl - T1) + #common leaf node: i (index 0) + # M3 (Tijl - T1)(Tkjl - T2) #common leaf node: l (index 3) + # (I'm trying to match the variable names used in this web page + # I wish the author had chosen the M1,M2,M3, T1,T2,T3 order in more + # symmetric way, or at least in a way that makes more sense to me.) + + #angle_name_l = SortByEnds([atom_names[0], atom_names[1], atom_names[2]]) + #angle_name = EncodeInteractionName(angle_name_l, is_auto) + #theta01 = angle2theta0_or[angle_name] + angle_data = LookupBondAngle(a1, a2, a3, + atom2equiv_angle, + angle2theta0_or, + [atom2auto_improperend, + atom2auto_impropercenter, + atom2auto_improperend], + angle2theta0_auto_or) + if angle_data == None: + # Save time by only continuing if an angle was + # found between a1, a2, a3 + continue + theta0s[0], aatoms[0], a_is_auto[0] = angle_data + + + for a4 in sorted(list(atom_combos[3])): + theta0s[1] = theta0s[2] = '0.0' + aatoms[1] = aatoms[2] = ['', '',''] + + #angle_name_l = SortByEnds(aatoms[0]) + #angle_name = EncodeInteractionName(angle_name_l[0], is_auto) + + #theta02 = angle2theta0_or[angle_name] + angle_data = LookupBondAngle(a1, a2, a4, + atom2equiv_angle, + angle2theta0_or, + [atom2auto_improperend, + atom2auto_impropercenter, + atom2auto_improperend], + angle2theta0_auto_or) + if angle_data == None: + # Save time by only continuing if an angle was + # found between a1, a2, a4 + continue + theta0s[1], aatoms[1], a_is_auto[1] = angle_data + + #angle_name_l = SortByEnds(aatoms[1]) + #angle_name = EncodeInteractionName(angle_name_l, is_auto) + + + #theta03 = angle2theta0_or[angle_name] + angle_data = LookupBondAngle(a3, a2, a4, + atom2equiv_angle, + angle2theta0_or, + [atom2auto_improperend, + atom2auto_impropercenter, + atom2auto_improperend], + angle2theta0_auto_or) + if angle_data == None: + # Save time by only continuing if an angle was + # found between a3, a2, a4 + continue + theta0s[2], aatoms[2], a_is_auto[2] = angle_data + + + # The following asserts checks that the two theta0s + # are defined whenever the corresponding M is defined. + # (Note: The order is LAMMPS-implementation specific. + # See http://lammps.sandia.gov/doc/improper_class2.html) + assert((float(theta0s[0]) != 0) or (float(M1) == 0)) + assert((float(theta0s[2]) != 0) or (float(M1) == 0)) + assert((float(theta0s[0]) != 0) or (float(M2) == 0)) + assert((float(theta0s[1]) != 0) or (float(M2) == 0)) + assert((float(theta0s[1]) != 0) or (float(M3) == 0)) + assert((float(theta0s[2]) != 0) or (float(M3) == 0)) + + #angle_name_l = SortByEnds(aatoms[2]) + #angle_name = EncodeInteractionName(angle_name_l, is_auto) + + + imp_name_full = (imp_name_orig + ',' + + EncodeInteractionName(aatoms[0], a_is_auto[0]) + ',' + + EncodeInteractionName(aatoms[1], a_is_auto[1]) + ',' + + EncodeInteractionName(aatoms[2], a_is_auto[2])) + + #if imp_name_orig in improper2params_or[imsym][imp_name_orig]: + improper2params[imsym][imp_name_full] = ' '.join(improper2params_or[imsym][imp_name_orig]) + #else: + # improper2params[imsym][imp_name_full] = '0.0 0.0' + + #if imp_name_orig in improper2cross: + improper2class2_aa[imsym][imp_name_full] = \ + (str(M1)+' '+str(M2)+' '+str(M3)+' '+ + str(theta0s[0])+' '+str(theta0s[1])+' '+str(theta0s[2])) + #else: + # improper2class2_aa[imsym][imp_name_full] = '0.0 0.0 0.0 0.0 0.0 0.0' + # improper2ver_aa_or[imsym][imp_name_orig] = improper2ver_or[imsym][imp_name_orig] + # improper2ref_aa_or[imsym][imp_name_orig] = improper2ref_or[imsym][imp_name_orig] + + improper2priority_aa = \ + DetermineNumericPriority(is_auto, + aatoms[0] + aatoms[1] + aatoms[2], + float(improper2ver_aa_or[imsym][imp_name_orig])) + improper2ver_aa[imsym][imp_name_full] = improper2ver_aa_or[imsym][imp_name_orig] + improper2ref_aa[imsym][imp_name_full] = improper2ref_aa_or[imsym][imp_name_orig] + + + version = max((improper2ver_or[imsym][imp_name_orig], + improper2ver_aa_or[imsym][imp_name_orig])) + improper2style[imsym][imp_name_full] = 'class2' + improper2ref[imsym][imp_name_full] = improper2ref_or[imsym][imp_name_orig] + improper2ver[imsym][imp_name_full] = version + improper2priority[imsym][imp_name_full] = \ + (is_auto, + improper_is_secondary_or[imsym][imp_name_orig], + improper2priority_or[imsym][imp_name_orig], + improper2priority_aa) + + if len(improper2params) > num_impropers: + sys.stderr.write('DEBUG: improper['+imp_name_full+']:\n' + 'theta0 = (' + +theta0s[0]+','+theta0s[1]+','+theta0s[2]+')\n') + sys.stderr.write('DEBUG: num_impropers = len(improper2params) = ' + +str(len(improper2params))+'\n') + num_impropers = len(improper2params) + + + found_at_least_one = True + + + if not found_at_least_one: + lines_warnings.append('# WARNING: Undefined rest angle (theta0) in improper: ' + + #'# the improper interaction between: ' + + ' '.join(atom_names)+'\n') + # Then we were unable to define cross terms for this interaction because + # at least one of the equilibrium rest angles could not be determined. + # This usually occurs because most of the .FRC files which are + # in circulation are incomplete. We have to handle this gracefully. + imp_name_full = (imp_name_orig + ',X,X,X,X,X,X,X,X,X') + reference = improper2ref_or[imsym][imp_name_orig] + version = improper2ver_or[imsym][imp_name_orig] + improper2ref[imsym][imp_name_full] = reference + improper2ver[imsym][imp_name_full] = version + improper2params[imsym][imp_name_full] = ' '.join(improper2params_or[imp_name_orig]) + CONTINUEHERE + improper2style[imp_name_full] = 'class2' + improper2priority[imp_name_full] = improper2priority_or[imp_name_orig] + # substitute zeros for the cross term interactions + improper2class2_aa[imp_name_full] = '0.0 0.0 0.0 120.0 120.0 120.0' + improper2ref_aa[imp_name_full] = reference + improper2ver_aa[imp_name_full] = version + + + + + + sys.stderr.write("done\n") + sys.stderr.write("Converting to moltemplate format...\n") + + + + + + ##################### BEGIN WRITING FILE ##################### + + + + + + sys.stdout.write("# This file was generated automatically using:\n") + sys.stdout.write("# " + g_program_name + " " + " ".join(sys.argv[1:]) + "\n") + sys.stdout.write("\n\n") + sys.stdout.write(ffname + " {\n\n") + + sys.stdout.write("\n" + " # AtomType Mass # \"Description\" (version, reference)\n\n") + sys.stdout.write(" write_once(\"Data Masses\") {\n") + for atype in atom2mass: + sys.stdout.write(" @atom:" + atype + " " + str(atom2mass[atype])) + sys.stdout.write(" # ") + if atype in atom2element: + sys.stdout.write(atom2element[atype] + ", ") + #sys.stdout.write(atom2descr[atype]) + sys.stdout.write("\"" + atom2descr[atype] + "\"") + sys.stdout.write(" (") + if atype in atom2numbonds: + sys.stdout.write("nbonds="+str(atom2numbonds[atype])+", ") + sys.stdout.write("ver=" + atom2ver[atype] + + ", ref=" + atom2ref[atype]) + sys.stdout.write(")\n") + sys.stdout.write(" } #(end of atom masses)\n\n\n") + + + + + + + + + + + + + sys.stdout.write(" # ---------- EQUIVALENCE CATEGORIES for bonded interaction lookup ----------\n" + " # Each type of atom has a separate ID used for looking up bond parameters\n" + " # and a separate ID for looking up 3-body angle interaction parameters\n" + " # and a separate ID for looking up 4-body dihedral interaction parameters\n" + " # and a separate ID for looking up 4-body improper interaction parameters\n" + #" # (This is because there are several different types of sp3 carbon atoms\n" + #" # which have the same torsional properties when within an alkane molecule,\n" + #" # for example. If they share the same dihedral-ID, then this frees us\n" + #" # from being forced define separate dihedral interaction parameters\n" + #" # for all of them.)\n" + " # The complete @atom type name includes ALL of these ID numbers. There's\n" + " # no need to force the end-user to type the complete name of each atom.\n" + " # The \"replace\" command used below informs moltemplate that the short\n" + " # @atom names we have been using abovee are equivalent to the complete\n" + " # @atom names used below:\n\n") + + for atype in atom2ffid: + #ffid = atype + "_ffid" + atom2ffid[atype] + sys.stdout.write(" replace{ @atom:" + atype + + " @atom:" + atom2ffid[atype] + " }\n") + + sys.stdout.write("\n\n\n\n") + + + sys.stdout.write(" # --------------- Non-Bonded Interactions: ---------------------\n" + " # Syntax:\n" + " # pair_coeff AtomType1 AtomType2 pair_style_name parameters...\n\n") + + sys.stdout.write(" write_once(\"In Settings\") {\n") + + for atype in pair2params: + assert(atype in pair2style) + if IsAutoInteraction(bond_name): + assert(atype in atom2auto_pair) + if include_auto_equivalences: + sys.stdout.write(' pair_coeff @atom:*,ap' + atom2auto_pair[atype] + + ',aq*,ab*,aae*,aac*,ade*,adc*,aie*,aic*' + + ' @atom:*,ap' + atom2auto_pair[atype] + + ',aq*,ab*,aae*,aac*,ade*,adc*,aie*,aic* ' + + pair2style[atype] + ' ' + + pair2params[atype] + + ' # (ver=' + pair2ver[atype] + + ', ref=' +pair2ref[atype] + ')\n') + else: + continue + else: + assert(atype in atom2equiv_pair) + sys.stdout.write(' pair_coeff ' + + '@atom:*,p' + atom2equiv_pair[atype] + ',b*,a*,d*,i* ' + + '@atom:*,p' + atom2equiv_pair[atype] + ',b*,a*,d*,i* ' + + pair2style[atype] + ' ' + + pair2params[atype] + + ' # (ver=' + pair2ver[atype] + + ', ref=' +pair2ref[atype] + ')\n') + sys.stdout.write(" } #(end of pair_coeffs)\n\n\n\n") + + + + + + + + ################# Print Charge By Bond Interactions ################## + charge_pair_priority_high_to_low = [x[0] for x in + sorted([x for x in reversed(charge_pair_priority.items())], + key=itemgetter(1), + reverse=True)] + + if len(charge_pair_priority) > 0: + sys.stdout.write(" # ---------- Charge By Bond (a.k.a. \"bond equivalences\") ----------\n") + # Print rules for generating (2-body) "bond" interactions: + sys.stdout.write('\n\n\n' + ' write_once("Data Charge By Bond") {\n') + for bond_name in charge_pair_priority_high_to_low: + anames = ['*' if x=='X' else x + for x in ExtractANames(bond_name)] + # Did the user ask us to include "auto" interactions? + if IsAutoInteraction(bond_name): + if include_auto_equivalences: + sys.stdout.write(' @atom:*,ap*,aq' + anames[0] + + ',ab*,aae*,aac*,ade*,adc*,aie*,aic*' + + ' @atom:*,ap*,aq' + anames[1] + + ',ab*,aae*,aac*,ade*,adc*,aie*,aic*' + + ' ' + bond2chargepair[bond_name] + + " # (ver=" + charge_pair_ver[bond_name] + + ", ref=" + charge_pair_ref[bond_name] + ")\n") + else: + continue + else: + sys.stdout.write(' @atom:*,p*,b' + anames[0] + ',a*,d*,i* ' + + ' @atom:*,p*,b' + anames[1] + ',a*,d*,i* ' + + ' ' + bond2chargepair[bond_name] + + " # (ver=" + charge_pair_ver[bond_name] + + ", ref=" + charge_pair_ref[bond_name] + ")\n") + sys.stdout.write(' } #(end of Charge by Bond (bond equivalences))\n\n' + '\n\n\n\n') + + + + + + + + ################# Print 2-body Bond Interactions ################## + + bond_names_priority_high_to_low = [x[0] for x in + sorted([x for x in reversed(bond2priority.items())], + key=itemgetter(1), + reverse=True)] + + if len(bond2priority) > 0: + sys.stdout.write(" # --------------- Bond Interactions: ---------------------\n") + sys.stdout.write('\n' + '\n' + ' # -- Rules for generating (2-body) "bond" interactions: --\n' + ' # BondType AtomType1 AtomType2\n') + sys.stdout.write('\n' + ' write_once("Data Bonds By Type') + if bond_symmetry_subgraph != '': + sys.stdout.write(' ('+bond_symmetry_subgraph+')') + sys.stdout.write('") {\n') + for bond_name in bond_names_priority_high_to_low: + if not (bond2style[bond_name] in + bond_styles_selected): + continue + anames = ['*' if x=='X' else x + for x in ExtractANames(bond_name)] + # Did the user ask us to include "auto" interactions? + if IsAutoInteraction(bond_name): + if include_auto_equivalences: + sys.stdout.write(' @bond:' + bond_name + ' ' + + ' @atom:*,ap*,aq*,ab' + anames[0] + + ',aae*,aac*,ade*,adc*,aie*,aic*' + + ' @atom:*,ap*,aq*,ab' + anames[1] + + ',aae*,aac*,ade*,adc*,aie*,aic*' + + '\n') + else: + continue + else: + sys.stdout.write(' @bond:' + bond_name + ' ' + + ' @atom:*,b' + anames[0] + ',a*,d*,i* ' + + ' @atom:*,b' + anames[1] + ',a*,d*,i* ' + + '\n') + + sys.stdout.write(' } # end of "Data Bonds By Type" section\n' + '\n') + + # Print the force-field parameters for these bond interactions: + sys.stdout.write('\n\n' + ' # ------------ Bond Parameters: ----------\n') + sys.stdout.write(' # For an explanation of these parameters, visit:\n') + for bond_style in bond_styles: + if not (bond_style in bond_styles_selected): + continue + sys.stdout.write(' # '+bond_style2docs[bond_style]+'\n') + sys.stdout.write('\n' + ' # Syntax: \n' + ' # bond_coeff BondTypeName BondStyle parameters...\n\n') + sys.stdout.write('\n' + ' write_once("In Settings") {\n') + for bond_name in bond_names_priority_high_to_low: + if not (bond2style[bond_name] in + bond_styles_selected): + continue + # Did the user ask us to include "auto" interactions? + if (IsAutoInteraction(bond_name) and + (not include_auto_equivalences)): + continue + sys.stdout.write(' bond_coeff @bond:'+bond_name+' '+ + bond2style[bond_name] + ' ' + + bond2params[bond_name] + + " # (ver=" + bond2ver[bond_name] + + ", ref=" +bond2ref[bond_name] + ")\n") + + sys.stdout.write(' } # end of bond_coeff commands\n' + '\n\n') + + + + + + + ################# Print 3-body Angle Interactions ################## + + ang_names_priority_high_to_low = [x[0] for x in + sorted([x for x in reversed(angle2priority.items())], + key=itemgetter(1), + reverse=True)] + + ang_name_abbr = {} #optional abbreviated name for each interaction + ang_name_abbr_used = set([]) #make sure we don't reuse these abbreviated names + + if len(angle2priority) > 0: + sys.stdout.write(" # --------------- Angle Interactions: ---------------------\n") + sys.stdout.write('\n' + '\n' + ' # -- Rules for generating (3-body) "angle" interactions: --\n' + ' # AngleType AtomType1 AtomType2 AtomType3 [BondType1 BondType2]\n') + sys.stdout.write('\n' + ' write_once("Data Angles By Type') + if angle_symmetry_subgraph != '': + sys.stdout.write(' ('+angle_symmetry_subgraph+')') + sys.stdout.write('") {\n') + for angle_name in ang_names_priority_high_to_low: + if not (angle2style[angle_name] in + angle_styles_selected): + continue + anames = ['*' if x=='X' else x + for x in ExtractANames(angle_name)] + + angle_is_auto = IsAutoInteraction(angle_name) + if angle2style[angle_name] == 'class2': + anm = [a for a in map(DecodeAName, anames)] + bnames = [[a for a in map(DecodeAName, anames[3:5])], + [a for a in map(DecodeAName, anames[5:7])]] + bond_is_auto1 = IsAutoInteraction(anames[3]) + bond_is_auto2 = IsAutoInteraction(anames[5]) + + if ((angle_is_auto or bond_is_auto1 or bond_is_auto2) and + (not include_auto_equivalences)): + continue + + # Can we ignore "auto" interactions? + # (If so, life is much easier) + if not (angle_is_auto or bond_is_auto1 or bond_is_auto2): + if angle2style[angle_name] == 'class2': + assert(bnames[0][1] == bnames[1][0]) + # Optional: Shorten the angle name since some of the atom's bond names are redundant: + ang_name_abbr[angle_name] = EncodeInteractionName(map(EncodeAName, + anm[0:3] + + #[anm[3],anm[4],anm[6]], + [bnames[0][0],bnames[0][1],bnames[1][1]]), + angle_is_auto) + sys.stdout.write(' @angle:' + ang_name_abbr[angle_name] + ' ' + + ' @atom:*,p*,b'+bnames[0][0]+',a'+anames[0]+',d*,i* ' + + ' @atom:*,p*,b'+bnames[0][1]+',a'+anames[1]+',d*,i* ' + + ' @atom:*,p*,b'+bnames[1][1]+',a'+anames[2]+',d*,i*' + '\n') + else: + ang_name_abbr[angle_name] = angle_name + sys.stdout.write(' @angle:' + ang_name_abbr[angle_name] + ' ' + + ' @atom:*,p*,b*,a'+anames[0]+',d*,i* ' + + ' @atom:*,p*,b*,a'+anames[1]+',d*,i* ' + + ' @atom:*,p*,b*,a'+anames[2]+',d*,i*' + '\n') + else: + # Consider "auto" interactions and "auto" atom equivalences + ang_name_abbr[angle_name] = angle_name #(full name) + sys.stdout.write(' @angle:' + ang_name_abbr[angle_name] + ' ') + + if angle2style[angle_name] == 'class2': + + bshared = 'b*' #(default. overidden below) + abshared = 'ab*' #(default. overidden below) + + if angle_is_auto: + a1 = a2 = a3 = 'a*' #Then, dont use regular equivalences for these atoms. + aa1 = 'aae' + anames[0] + ',aac*' #Instead use the corresponding "auto" equivalence names + aa2 = 'aae*,aac*' + anames[1] #for these atoms. (There are different auto equivalence names depending + aa3 = 'aae' + anames[2] + ',aac*' #on if the atom appears in the center (c) or end(e) of the 3-body angle) + else: + a1 = 'a' + anames[0] #In this case, use use (regular) equivalence names + a2 = 'a' + anames[1] #for these atoms + a3 = 'a' + anames[2] + aa1 = aa2 = aa3 = 'aae*,aac*' + + if not bond_is_auto1: + b11 = 'b' + bnames[0][0] #(bond atom equivalent name) + b12 = 'b' + bnames[0][1] #(bond atom equivalent name) + bshared = 'b' + bnames[0][1] #(bond atom equivalent name) + ab11 = ab12 = 'ab*' + else: + b11 = b12 = 'b*' + ab11 = 'ab' + bnames[0][0] #(auto bond atom name) + ab12 = 'ab' + bnames[0][1] #(auto bond atom name) + abshared = 'ab' + bnames[0][1] #(auto bond atom name) + # print atom 1 information: + sys.stdout.write(' @atom:*,p*,'+b11+','+a1+',d*,i*,' + + 'ap*,aq*,'+ab11+','+aa1+ + ',ade*,adc*,aie*,aic*') + if not bond_is_auto2: + b21 = 'b' + bnames[1][0] #(bond atom equivalent name) + b22 = 'b' + bnames[1][1] #(bond atom equivalent name) + assert((bshared == 'b*') or (bshared == 'b' + bnames[1][0])) + bshared = 'b' + bnames[1][0] + ab21 = ab22 = 'ab*' + else: + b21 = b22 = 'b*' + ab21 = 'ab' + bnames[1][0] #(auto bond atom name) + ab22 = 'ab' + bnames[1][1] #(auto bond atom name) + assert((abshared == 'ab*') or (abshared == 'ab' + bnames[1][0])) + abshared = 'ab' + bnames[1][0] + # print atom 2 information: + sys.stdout.write(' @atom:*,p*,'+bshared+','+a2+',d*,i*,' + + 'ap*,aq*,'+abshared+','+aa2+ + ',ade*,adc*,aie*,aic*') + # print atom 3 information: + sys.stdout.write(' @atom:*,p*,'+b22+','+a3+',d*,i*,' + + 'ap*,aq*,'+ab22+','+aa3+ + ',ade*,adc*,aie*,aic*') + sys.stdout.write('\n') + else: + sys.stdout.write(' @angle:' + ang_name_abbr[angle_name] + ' ' + + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae'+anames[0]+'aac*,ade*,adc*,aie*,aic* ' + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae*,aac'+anames[1]+',ade*,adc*,aie*,aic* ' + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae'+anames[2]+'aac*,ade*,adc*,aie*,aic* ' + '\n') + + assert(ang_name_abbr[angle_name] not in ang_name_abbr_used) + ang_name_abbr_used.add(ang_name_abbr[angle_name]) + + sys.stdout.write(' } # end of "Data Angles By Type" section\n' + '\n') + + # Print the force-field parameters for these angle interactions: + sys.stdout.write('\n\n' + ' # ------- Angle Force Field Parameters: -------') + sys.stdout.write(' # For an explanation of these parameters, visit:\n') + for angle_style in angle_styles: + if not (angle_style in angle_styles_selected): + continue + sys.stdout.write(' # '+angle_style2docs[angle_style]+'\n') + sys.stdout.write('\n' + ' # Syntax: \n' + ' # angle_coeff AngleTypeName AngleStyle parameters...\n\n') + sys.stdout.write('\n' + ' write_once("In Settings") {\n') + for angle_name in ang_names_priority_high_to_low: + anames = ['*' if x=='X' else x + for x in ExtractANames(angle_name)] + if not (angle2style[angle_name] in + angle_styles_selected): + continue + + + # Did the user ask us to include "auto" interactions? + #if (IsAutoInteraction(angle_name) and + # (not include_auto_equivalences)): + # continue + # the if statement above is covered by the following: + if angle_name not in ang_name_abbr: + continue + + sys.stdout.write(' angle_coeff @angle:'+ang_name_abbr[angle_name]+' '+ + angle2style[angle_name] + ' ' + + angle2params[angle_name] + + " # (ver=" + angle2ver[angle_name] + + ", ref=" + angle2ref[angle_name] + ")\n") + if angle_name in angle2class2_bb: + sys.stdout.write(' angle_coeff @angle:'+ang_name_abbr[angle_name]+' '+ + angle2style[angle_name] + ' bb ' + + angle2class2_bb[angle_name] + + " # (ver=" + angle2ver_bb[angle_name] + + ", ref=" + angle2ref_bb[angle_name] + ")\n") + + assert(angle_name in angle2class2_ba) + sys.stdout.write(' angle_coeff @angle:'+ang_name_abbr[angle_name]+' '+ + angle2style[angle_name] + ' ba ' + + angle2class2_ba[angle_name] + + " # (ver=" + angle2ver_ba[angle_name] + + ", ref=" + angle2ref_ba[angle_name] + ")\n") + sys.stdout.write(' } # end of angle_coeff commands\n' + '\n\n') + + + + + + + + ################# Print 4-body Dihedral Interactions ################## + + dih_names_priority_high_to_low = [x[0] for x in + sorted([x for x in reversed(dihedral2priority.items())], + key=itemgetter(1), + reverse=True)] + + dih_name_abbr = {} #optional abbreviated name for each interaction + dih_name_abbr_used = set([]) #make sure we don't reuse these abbreviated names + + if len(dih_names_priority_high_to_low) > 0: + sys.stdout.write(' # --------------- Dihedral Interactions: ---------------------\n') + sys.stdout.write('\n' + '\n' + ' # -- Rules for generating (4-body) "dihedral" interactions: --\n' + ' # DihedralType AtmType1 AtmType2 AtmType3 AtmType3 [BondType1 Bnd2 Bnd3]\n') + sys.stdout.write('\n\n' + ' write_once("Data Dihedrals By Type') + if dihedral_symmetry_subgraph != '': + sys.stdout.write(' ('+dihedral_symmetry_subgraph+')') + sys.stdout.write('") {\n') + + + + for dihedral_name in dih_names_priority_high_to_low: + if not (dihedral2style[dihedral_name] in + dihedral_styles_selected): + continue + anames = ['*' if x=='X' else x + for x in ExtractANames(dihedral_name)] + + dihedral_is_auto = IsAutoInteraction(dihedral_name) + if dihedral2style[dihedral_name] == 'class2': + anm = [a for a in map(DecodeAName, anames)] + bnames = [[a for a in map(DecodeAName, anames[4:6])], + [a for a in map(DecodeAName, anames[6:8])], + [a for a in map(DecodeAName, anames[8:10])]] + bond_is_auto1 = IsAutoInteraction(anames[4]) + bond_is_auto2 = IsAutoInteraction(anames[6]) + bond_is_auto3 = IsAutoInteraction(anames[8]) + ang_names = [[a for a in map(DecodeAName, anames[10:13])], + [a for a in map(DecodeAName, anames[13:16])]] + angle_is_auto1 = IsAutoInteraction(anames[10]) + angle_is_auto2 = IsAutoInteraction(anames[13]) + + if ((dihedral_is_auto or + angle_is_auto1 or angle_is_auto2 or + bond_is_auto1 or bond_is_auto2 or bond_is_auto3) and + (not include_auto_equivalences)): + continue + + # Can we ignore "auto" interactions? + # (If so, life is much easier) + if not (dihedral_is_auto or + angle_is_auto1 or angle_is_auto2 or + bond_is_auto1 or bond_is_auto2 or bond_is_auto3): + + if dihedral2style[dihedral_name] == 'class2': + assert(bnames[0][1] == bnames[1][0]) + assert(bnames[1][1] == bnames[2][0]) + assert(ang_names[0][1] == ang_names[1][0]) + assert(ang_names[0][2] == ang_names[1][1]) + + # Optional: Shorten the dihedral name since some of the atom's bond names are redundant: + dih_name_abbr[dihedral_name] = EncodeInteractionName(map(EncodeAName, + anm[0:4] + + #[bnames[0][0], bnames[0][1], + # bnames[1][1], bnames[2][1]] + [anm[4],anm[5],anm[7],anm[9]]+ + #[ang_names[0][0], + # ang_names[0][1], + # ang_names[0][2], + # ang_names[1][2]] + [anm[10],anm[11],anm[12],anm[15]]), + is_auto) + + sys.stdout.write(' @dihedral:' + dih_name_abbr[dihedral_name] + ' ' + + ' @atom:*,p*,b'+bnames[0][0]+',a'+ang_names[0][0]+',d'+anames[0]+',i* ' + + ' @atom:*,p*,b'+bnames[0][1]+',a'+ang_names[0][1]+',d'+anames[1]+',i* ' + + ' @atom:*,p*,b'+bnames[1][1]+',a'+ang_names[0][2]+',d'+anames[2]+',i* ' + ' @atom:*,p*,b'+bnames[2][1]+',a'+ang_names[1][2]+',d'+anames[3]+',i*' + '\n') + else: + dih_name_abbr[dihedral_name] = dihedral_name + sys.stdout.write(' @dihedral:' + dih_name_abbr[dihedral_name] + ' ' + + ' @atom:*,p*,b*,a*,d'+anames[0]+',i* ' + + ' @atom:*,p*,b*,a*,d'+anames[1]+',i* ' + + ' @atom:*,p*,b*,a*,d'+anames[2]+',i* ' + ' @atom:*,p*,b*,a*,d'+anames[3]+',i*' + + '\n') + else: + # Consider "auto" interactions and "auto" atom equivalences + dih_name_abbr[dihedral_name] = dihedral_name #(full name) + sys.stdout.write(' @dihedral:' + dih_name_abbr[dihedral_name] + ' ') + + if dihedral2style[dihedral_name] == 'class2': + + # equivalent names of atoms shared by more than one bond: + # (names ending in * mean they were unspecified for this + # dihedral interaction. By default, this is the case.) + bshared1 = 'b*' #(default. overidden below) + bshared2 = 'b*' #(default. overidden below) + abshared1 = 'ab*' #(default. overidden below) + abshared2 = 'ab*' #(default. overidden below) + + # equivalent names of atoms shared by more than one angle interaction: + # (names ending in * mean they were unspecified for this + # dihedral interaction. By default, this is the case.) + ashared1 = 'a*' #(default. overidden below) + ashared2 = 'a*' #(default. overidden below) + aac_shared1 = 'aac*' #(default. overidden below) + aae_shared1 = 'aae*' #(default. overidden below) + aac_shared2 = 'aac*' #(default. overidden below) + aae_shared2 = 'aae*' #(default. overidden below) + + if dihedral_is_auto: + d1 = d2 = d3 = d4 = 'd*' #Then, dont use regular equivalences for these atoms. + ad1 = 'ade' + anames[0] + ',adc*' #Instead use the corresponding "auto" + ad2 = 'ade*,adc*' + anames[1] #equivalence names for these atoms. + ad3 = 'ade*,adc*' + anames[1] #(There are different auto equivalence names depending upon + ad4 = 'ade' + anames[2] + ',adc*' # if the atom appears in the center (c) or end(e) of the dihedral) + else: + d1 = 'd' + anames[0] # In this case, use use (regular) equivalence names + d2 = 'd' + anames[1] # for these atoms + d3 = 'd' + anames[2] + d4 = 'd' + anames[3] + ad1 = ad2 = ad3 = ad4 = 'ade*,adc*' + + if not bond_is_auto1: + b11 = 'b' + bnames[0][0] #(bond atom equivalent name) + b12 = 'b' + bnames[0][1] #(bond atom equivalent name) + bshared1 = 'b' + bnames[0][1] #(bond atom equivalent name) + ab11 = ab12 = 'ab*' + else: + b11 = b12 = 'b*' + ab11 = 'ab' + bnames[0][0] #(auto bond atom name) + ab12 = 'ab' + bnames[0][1] #(auto bond atom name) + abshared1 = 'ab' + bnames[0][1] #(auto bond atom name) + + if not bond_is_auto2: + b21 = 'b' + bnames[1][0] #(bond atom equivalent name) + b22 = 'b' + bnames[1][1] #(bond atom equivalent name) + assert((bshared1 == 'b*') or (bshared1 == 'b' + bnames[1][0])) + bshared1 = 'b' + bnames[1][0] #(bond atom equivalent name) + assert((bshared2 == 'b*') or (bshared2 == 'b' + bnames[1][1])) + bshared2 = 'b' + bnames[1][1] #(bond atom equivalent name) + ab21 = ab22 = 'ab*' + else: + b21 = b22 = 'b*' + ab21 = 'ab' + bnames[1][0] #(auto bond atom name) + ab22 = 'ab' + bnames[1][1] #(auto bond atom name) + assert((abshared1 == 'ab*') or (abshared1 == 'ab' + bnames[1][0])) + abshared1 = 'ab' + bnames[1][0] #(auto bond atom name) + assert((abshared2 == 'ab*') or (abshared2 == 'ab' + bnames[1][1])) + abshared2 = 'ab' + bnames[1][1] #(auto bond atom name) + + if not bond_is_auto3: + b31 = 'b' + bnames[2][0] #(bond atom equivalent name) + b32 = 'b' + bnames[2][1] #(bond atom equivalent name) + assert((bshared2 == 'b*') or (bshared2 == 'b' + bnames[2][0])) + bshared2 = 'b' + bnames[2][0] #(bond atom equivalent name) + ab31 = ab32 = 'ab*' + else: + b31 = b32 = 'b*' + ab31 = 'ab' + bnames[2][0] #(auto bond atom name) + ab32 = 'ab' + bnames[2][1] #(auto bond atom name) + assert((abshared2 == 'ab*') or (abshared2 == 'ab' + bnames[2][0])) + abshared2 = 'ab' + bnames[2][0] #(auto bond atom name) + + if not angle_is_auto1: + a11 = 'a' + ang_names[0][0] #(angle atom equivalent name) + a12 = 'a' + ang_names[0][1] #(angle atom equivalent name) + a13 = 'a' + ang_names[0][2] #(angle atom equivalent name) + ashared1 = 'a' + ang_names[0][1] #(angle atom equivalent name) + ashared2 = 'a' + ang_names[0][2] #(angle atom equivalent name) + aa11 = 'aae*,aac*' + aa12 = 'aae*,aac*' + aa13 = 'aae*,aac*' + else: + a11 = a12 = a13 = 'a*' + aa11 = 'aae'+ang_names[0][0]+'aac*' #(auto angle atom name) + aa12 = 'aae*,aac'+ang_names[0][1] #(auto angle atom name) + aa13 = 'aae'+ang_names[0][2]+'aac*' #(auto angle atom name) + aac_shared1 = 'aac'+ang_names[0][1] #(auto angle atom name) + aae_shared2 = 'aae'+ang_names[0][2] #(auto angle atom name) + + if not angle_is_auto2: + a21 = 'a' + ang_names[1][0] #(angle atom equivalent name) + a22 = 'a' + ang_names[1][1] #(angle atom equivalent name) + a23 = 'a' + ang_names[1][2] #(angle atom equivalent name) + assert((ashared1 == 'a*') or (ashared1 == 'a' + ang_names[1][0])) + ashared1 = 'a' + ang_names[1][0] #(angle atom equivalent name) + assert((ashared2 == 'a*') or (ashared2 == 'a' + ang_names[1][1])) + ashared2 = 'a' + ang_names[1][1] #(angle atom equivalent name) + aa21 = 'aae*,aac*' + aa22 = 'aae*,aac*' + aa23 = 'aae*,aac*' + else: + a21 = a22 = a23 = 'a*' + aa21 = 'aae'+ang_names[1][0]+',aac*' #(auto angle atom name) + aa22 = 'aae*,aac'+ang_names[1][1] #(auto angle atom name) + aa23 = 'aae'+ang_names[1][2]+',aac*' #(auto angle atom name) + aae_shared1 = 'aae'+ang_names[1][0] #(auto angle atom name) + aac_shared2 = 'aac'+ang_names[1][1] #(auto angle atom name) + + + # print atom 1 information: + sys.stdout.write(' @atom:*,p*,'+b11+','+a11+','+d1+',i*,' + + 'ap*,aq*,'+ab11+','+aa11+',' + + ad1+',aie*,aic*') + # print atom 2 information: + sys.stdout.write(' @atom:*,p*,'+bshared1+','+ashared1+','+d2+',i*,' + + 'ap*,aq*,'+abshared1+','+aae_shared1+','+aac_shared1+',' + + ad2+',aie*,aic*') + # print atom 3 information: + sys.stdout.write(' @atom:*,p*,'+bshared2+','+ashared2+','+d3+',i*,' + + 'ap*,aq*,'+abshared2+','+aae_shared2+','+aac_shared2+',' + + ad3+',aie*,aic*') + # print atom 4 information: + sys.stdout.write(' @atom:*,p*,'+b32+','+a23+','+d4+',i*,' + + 'ap*,aq*,'+ab32+','+aa23+',' + + ad4+',aie*,aic*') + sys.stdout.write('\n') + else: + assert(dihedral_is_auto) #(so we should use "auto" equivalence names for these atoms) + sys.stdout.write(' @dihedral:' + dih_name_abbr[dihedral_name] + ' ' + + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae*,aac*,ade'+anames[0]+',adc*,aie*,aic* ' + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae*,aac*,ade*,adc'+anames[1]+',aie*,aic* ' + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae*,aac*,ade*,adc'+anames[2]+',aie*,aic* ' + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae*,aac*,ade'+anames[3]+',adc*,aie*,aic* ' + '\n') + + + + + assert(dih_name_abbr[dihedral_name] not in dih_name_abbr_used) + dih_name_abbr_used.add(dih_name_abbr[dihedral_name]) + + sys.stdout.write(' } # end of "Data Dihedrals By Type" section\n' + '\n') + + # Print the force-field parameters for these dihedral interactions: + sys.stdout.write('\n\n' + ' # ------- Dihedral Force Field Parameters: -------\n') + sys.stdout.write(' # For an explanation of these parameters, visit:\n') + for dihedral_style in dihedral_styles: + if not (dihedral_style in dihedral_styles_selected): + continue + sys.stdout.write(' # '+dihedral_style2docs[dihedral_style]+'\n') + sys.stdout.write('\n' + ' # Syntax: \n' + ' # dihedral_coeff DihedralTypeName DihedralStyle parameters...\n\n') + sys.stdout.write('\n' + ' write_once("In Settings") {\n') + for dihedral_name in dih_names_priority_high_to_low: + anames = ['*' if x=='X' else x + for x in ExtractANames(dihedral_name)] + #if (len(anames) == 4) and dihedral2style[dihedral_name] == 'class2': + # continue + if not (dihedral2style[dihedral_name] in + dihedral_styles_selected): + continue + + # Did the user ask us to include "auto" interactions? + #if (IsAutoInteraction(dihedral_name) and + # (not include_auto_equivalences)): + # continue + # the if statement above is covered by the following: + if dihedral_name not in dih_name_abbr: + continue + + sys.stdout.write(' dihedral_coeff @dihedral:'+dih_name_abbr[dihedral_name]+' '+ + dihedral2style[dihedral_name] + ' ' + + dihedral2params[dihedral_name] + + " # (ver=" + dihedral2ver[dihedral_name] + + ", ref=" + dihedral2ref[dihedral_name] + ")\n") + if dihedral_name in dihedral2class2_mbt: + sys.stdout.write(' dihedral_coeff @dihedral:'+dih_name_abbr[dihedral_name]+' '+ + dihedral2style[dihedral_name] + ' mbt ' + + dihedral2class2_mbt[dihedral_name] + + " # (ver=" + dihedral2ver_mbt[dihedral_name] + + ", ref=" + dihedral2ref_mbt[dihedral_name] + ")\n") + + assert(dihedral_name in dihedral2class2_ebt) + sys.stdout.write(' dihedral_coeff @dihedral:'+dih_name_abbr[dihedral_name]+' '+ + dihedral2style[dihedral_name] + ' ebt ' + + dihedral2class2_ebt[dihedral_name] + + " # (ver=" + dihedral2ver_ebt[dihedral_name] + + ", ref=" + dihedral2ref_ebt[dihedral_name] + ")\n") + + assert(dihedral_name in dihedral2class2_at) + sys.stdout.write(' dihedral_coeff @dihedral:'+dih_name_abbr[dihedral_name]+' '+ + dihedral2style[dihedral_name] + ' at ' + + dihedral2class2_at[dihedral_name] + + " # (ver=" + dihedral2ver_at[dihedral_name] + + ", ref=" + dihedral2ref_at[dihedral_name] + ")\n") + + assert(dihedral_name in dihedral2class2_aat) + sys.stdout.write(' dihedral_coeff @dihedral:'+dih_name_abbr[dihedral_name]+' '+ + dihedral2style[dihedral_name] + ' aat ' + + dihedral2class2_aat[dihedral_name] + + " # (ver=" + dihedral2ver_aat[dihedral_name] + + ", ref=" + dihedral2ref_aat[dihedral_name] + ")\n") + assert(dihedral_name in dihedral2class2_bb13) + sys.stdout.write(' dihedral_coeff @dihedral:'+dih_name_abbr[dihedral_name]+' '+ + dihedral2style[dihedral_name] + ' bb13 ' + + dihedral2class2_bb13[dihedral_name] + + " # (ver=" + dihedral2ver_bb13[dihedral_name] + + ", ref=" + dihedral2ref_bb13[dihedral_name] + ")\n") + sys.stdout.write(' } # end of dihedral_coeff commands\n' + '\n\n') + + + + + + ################# Print 4-body Improper Interactions ################## + + imp_names_priority_high_to_low = [x[0] for x in + sorted([x for x in reversed(improper2priority.items())], + key=itemgetter(1), + reverse=True)] + + imp_name_abbr = {} #optional abbreviated name for each interaction + imp_name_abbr_used = set([]) #make sure we don't reuse these abbreviated names + + if len(imp_names_priority_high_to_low) > 0: + sys.stdout.write(" # --------------- Improper Interactions: ---------------------\n") + sys.stdout.write('\n' + '\n' + ' # -- Rules for generating (4-body) "improper" interactions: --\n' + ' # ImproperType AtmType1 AtmType2 AtmType3 AtmType3 [BondType1 Bnd2 Bnd3]\n') + sys.stdout.write('\n' + ' write_once("Data Impropers By Type') + if improper_symmetry_subgraph != '': + sys.stdout.write(' ('+improper_symmetry_subgraph+')') + sys.stdout.write('") {\n') + for improper_name in imp_names_priority_high_to_low: + if not (improper2style[improper_name] in + improper_styles_selected): + continue + anames = ['*' if x=='X' else x + for x in ExtractANames(improper_name)] + #if (len(anames) == 4) and improper2style[improper_name] == 'class2': + # continue + ang_names = [[a for a in map(DecodeAName, anames[4:7])], + [a for a in map(DecodeAName, anames[7:10])], + [a for a in map(DecodeAName, anames[10:13])]] + anm = [a for a in map(DecodeAName, anames)] + + improper_is_auto = IsAutoInteraction(improper_name) + if improper2style[improper_name] == 'class2': + angle_is_auto1 = IsAutoInteraction(anames[4]) + angle_is_auto2 = IsAutoInteraction(anames[7]) + angle_is_auto3 = IsAutoInteraction(anames[10]) + + if ((improper_is_auto or + angle_is_auto1 or + angle_is_auto2 or + angle_is_auto3) and + (not include_auto_equivalences)): + continue + + # Can we ignore "auto" interactions? + # (If so, life is much easier) + if not (improper_is_auto or + angle_is_auto1 or + angle_is_auto2 or + angle_is_auto3): + if improper2style[improper_name] == 'class2': + # NOTE: atom orderings here are LAMMPS implementation specific. + # http://lammps.sandia.gov/doc/improper_class2.html + #ang_names[0] <==> (a1, a2, a3) <==> (i, j, k) + #ang_names[1] <==> (a1, a2, a4) <==> (i, j, l) + #ang_names[2] <==> (a3, a2, a4) <==> (k, j, l) + assert(ang_names[0][1] == ang_names[1][1] == ang_names[2][1]) + assert(ang_names[0][0] == ang_names[1][0]) + assert(ang_names[1][2] == ang_names[2][2]) + assert(ang_names[2][0] == ang_names[0][2]) + + # Optional: Shorten the improper name since some of the atom's bond names are redundant: + imp_name_abbr[improper_name] = EncodeInteractionName(map(EncodeAName, anm[0:4] + + [ang_names[0][0], + ang_names[0][1], + ang_names[0][2], + ang_names[1][2]]), + #[anm[4],anm[5],anm[6], + #anm[9]], + improper_is_auto) + sys.stdout.write(' @improper:' + imp_name_abbr[improper_name] + ' ' + + ' @atom:*,p*,b*,a'+ang_names[0][0]+',d*,i' + anames[0] + + ' @atom:*,p*,b*,a'+ang_names[0][1]+',d*,i' + anames[1] + + ' @atom:*,p*,b*,a'+ang_names[0][2]+',d*,i' + anames[2] + + ' @atom:*,p*,b*,a'+ang_names[1][2]+',d*,i' + anames[3] + + '\n') + else: + imp_name_abbr[improper_name] = improper_name + sys.stdout.write(' @improper:' + imp_name_abbr[improper_name] + ' ' + + ' @atom:*,p*,b*,a*,d*,i' + anames[0] + + ' @atom:*,p*,b*,a*,d*,i' + anames[1] + + ' @atom:*,p*,b*,a*,d*,i' + anames[2] + + ' @atom:*,p*,b*,a*,d*,i' + anames[3] + + '\n') + else: + # Consider "auto" interactions and "auto" atom equivalences + imp_name_abbr[improper_name] = improper_name #(full name) + sys.stdout.write(' @improper:' + imp_name_abbr[improper_name] + ' ') + + if improper2style[improper_name] == 'class2': + + #ang_names[0] <==> (a1, a2, a3) <==> (i, j, k) + #ang_names[1] <==> (a1, a2, a4) <==> (i, j, l) + #ang_names[2] <==> (a3, a2, a4) <==> (k, j, l) + + # default angle atom equivalence names: + ashared1 = 'a*' #(default for a1 <-> ang_names[0][0], ang_names[1][0]) + ashared2 = 'a*' #(default for a2 <-> ang_names[0][1], ang_names[1][1], ang_names[2][1]) + ashared3 = 'a*' #(default for a3 <-> ang_names[2][0], ang_names[0][2]) + ashared4 = 'a*' #(default for a4 <-> ang_names[1][2], ang_names[2][2]) + + # default auto angle atom equivalence names: + aashared1 = 'aae*,aac*' #(default for a1 <-> ang_names[0][0], ang_names[1][0]) + aashared2 = 'aae*,aac*' #(default for a2 <-> ang_names[0][1], ang_names[1][1], ang_names[2][1]) + aashared3 = 'aae*,aac*' #(default for a3 <-> ang_names[2][0], ang_names[0][2]) + aashared4 = 'aae*,aac*' #(default for a4 <-> ang_names[1][2], ang_names[2][2]) + + if improper_is_auto: + i1 = i2 = i3 = i4 = 'i*' #Then, dont use regular equivalences for these atoms. + ai1 = 'aie' + anames[0] + ',aic*' #Instead use the corresponding "auto" equivalence names + ai2 = 'aie*,aic*' + anames[1] #for these atoms. (There are different auto equivalence names depending + ai3 = 'aie' + anames[2] + ',aic*' #on if the atom appears in the center (c) or end(e) + ai4 = 'aie' + anames[3] + ',aic*' + else: + i1 = 'i' + anames[0] #In this case, use use (regular) equivalence names + i2 = 'i' + anames[1] #for these atoms + i3 = 'i' + anames[2] + i4 = 'i' + anames[3] + ai1 = ai2 = ai3 = 'aie*,aic*' + + #For reference, LAMMPS-specific atom ordering: + #ang_names[0] <==> (a1, a2, a3) <==> (i, j, k) + #ang_names[1] <==> (a1, a2, a4) <==> (i, j, l) + #ang_names[2] <==> (a3, a2, a4) <==> (k, j, l) + if not angle_is_auto1: + ashared1 = 'a' + ang_names[0][0] + ashared2 = 'a' + ang_names[0][1] + ashared3 = 'a' + ang_names[0][2] + else: + aashared1 = 'aae' + ang_names[0][0] + ',aac*' + aashared2 = 'aae*,aac' + ang_names[0][1] + aashared3 = 'aae' + ang_names[0][2] + ',aac*' + + #For reference, LAMMPS-specific atom ordering: + #ang_names[0] <==> (a1, a2, a3) <==> (i, j, k) + #ang_names[1] <==> (a1, a2, a4) <==> (i, j, l) + #ang_names[2] <==> (a3, a2, a4) <==> (k, j, l) + if not angle_is_auto2: + assert((ashared1 == 'a*') or (ashared1 == 'a' + ang_names[1][0])) + ashared1 = 'a' + ang_names[1][0] + assert((ashared2 == 'a*') or (ashared2 == 'a' + ang_names[1][1])) + ashared2 = 'a' + ang_names[1][1] + ashared4 = 'a' + ang_names[1][2] + else: + assert((aashared1 == 'aae*,aac*') or (aashared1 == 'aae' + ang_names[1][0] + ',aac*')) + aashared1 = 'aae' + ang_names[1][0] + ',aac*' + assert((aashared2 == 'aae*,aac*') or (aashared2 == 'aae*,aac' + ang_names[1][1])) + aashared2 = 'aae*,aac' + ang_names[1][1] + aashared4 = 'aae' + ang_names[1][2] + ',aac*' + + #For reference, LAMMPS-specific atom ordering: + #ang_names[0] <==> (a1, a2, a3) <==> (i, j, k) + #ang_names[1] <==> (a1, a2, a4) <==> (i, j, l) + #ang_names[2] <==> (a3, a2, a4) <==> (k, j, l) + if not angle_is_auto3: + assert((ashared3 == 'a*') or (ashared3 == 'a' + ang_names[2][0])) + ashared3 = 'a' + ang_names[2][0] + assert((ashared2 == 'a*') or (ashared2 == 'a' + ang_names[2][1])) + ashared2 = 'a' + ang_names[2][1] + assert((ashared4 == 'a*') or (ashared4 == 'a' + ang_names[2][2])) + ashared4 = 'a' + ang_names[2][2] + else: + assert((aashared3 == 'aae*,aac*') or (aashared3 == 'aae' + ang_names[2][0] + ',aac*')) + aashared3 = 'aae' + ang_names[2][0] + ',aac*' + assert((aashared2 == 'aae*,aac*') or (aashared2 == 'aae*,aac' + ang_names[2][1])) + aashared2 = 'aae*,aac' + ang_names[2][1] + assert((aashared4 == 'aae*,aac*') or (aashared4 == 'aae' + ang_names[2][2] + ',aac*')) + aashared4 = 'aae' + ang_names[2][2] + ',aac*' + + # print atom 1 information: + sys.stdout.write(' @atom:*,p*,b*,'+ashared1+',d*,'+i1+','+ + 'ap*,aq*,ab*,'+aashared1+',ad*,'+ai1) + # print atom 2 information: + sys.stdout.write(' @atom:*,p*,b*,'+ashared2+',d*,'+i2+','+ + 'ap*,aq*,ab*,'+aashared2+',ad*,'+ai2) + # print atom 3 information: + sys.stdout.write(' @atom:*,p*,b*,'+ashared3+',d*,'+i3+','+ + 'ap*,aq*,ab*,'+aashared3+',ad*,'+ai3) + # print atom 4 information: + sys.stdout.write(' @atom:*,p*,b*,'+ashared4+',d*,'+i4+','+ + 'ap*,aq*,ab*,'+aashared4+',ad*,'+ai4) + sys.stdout.write('\n') + else: + sys.stdout.write(' @improper:' + imp_name_abbr[improper_name] + ' ' + + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae*,aac*,ade*,adc*,aie*,aie'+anames[0]+',aic*' + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae*,aac*,ade*,adc*,aie*,aie*,aic'+anames[1]+ + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae*,aac*,ade*,adc*,aie*,aie'+anames[2]+',aic*' + ' @atom:*,p*,b*,d*,i*,' + + 'ap*,aq*,ab*,aae*,aac*,ade*,adc*,aie*,aie'+anames[3]+',aic*' + '\n') + + assert(imp_name_abbr[improper_name] not in imp_name_abbr_used) + imp_name_abbr_used.add(imp_name_abbr[improper_name]) + + + + + sys.stdout.write(' } # end of "Data Impropers By Type" section\n' + '\n') + + # Print the force-field parameters for these improper interactions: + sys.stdout.write('\n\n' + ' # ------- Improper Force Field Parameters: -------\n') + sys.stdout.write(' # For an explanation of these parameters, visit:\n') + for improper_style in improper_styles: + if not (improper_style in improper_styles_selected): + continue + sys.stdout.write(' # '+improper_style2docs[improper_style]+'\n') + sys.stdout.write('\n' + '# Syntax: \n' + ' # improper_coeff ImproperTypeName ImproperStyle parameters...\n\n') + sys.stdout.write('\n' + ' write_once("In Settings") {\n') + for improper_name in imp_names_priority_high_to_low: + anames = ['*' if x=='X' else x + for x in ExtractANames(improper_name)] + #if (len(anames) == 4) and improper2style[improper_name] == 'class2': + # continue + # Optional: Shorten the angle name since some of the bnames are redundant: + + is_auto = IsAutoInteraction(improper_name) + + if not (improper2style[improper_name] in + improper_styles_selected): + continue + + # Did the user ask us to include "auto" interactions? + #if (IsAutoInteraction(improper_name) and + # (not include_auto_equivalences)): + # continue + # the if statement above is covered by the following: + if improper_name not in imp_name_abbr: + continue + + sys.stdout.write(' improper_coeff @improper:'+imp_name_abbr[improper_name]+' '+ + improper2style[improper_name] + ' ' + + improper2params[improper_name] + + " # (ver=" + improper2ver[improper_name] + + ", ref=" + improper2ref[improper_name] + ")\n") + if improper_name in improper2class2_aa: + sys.stdout.write(' improper_coeff @improper:'+imp_name_abbr[improper_name]+' '+ + improper2style[improper_name] + ' aa ' + + improper2class2_aa[improper_name] + + " # (ver=" + improper2ver_aa[improper_name] + + ", ref=" + improper2ref[improper_name] + ")\n") + sys.stdout.write(' } # end of improper_coeff commands\n' + '\n\n') + + + + sys.stdout.write('\n\n\n\n' + ' # -------------------- Select LAMMPS style(s) ------------------\n' + '\n') + + + sys.stdout.write('\n' + ' # LAMMPS supports many different kinds of bonded and non-bonded\n' + ' # interactions which can be selected at run time. Eventually\n' + ' # we must inform LAMMPS which of them we will need. We specify\n' + ' # this in the "In Init" section: \n\n') + + sys.stdout.write(' write_once("In Init") {\n') + sys.stdout.write(' units real\n') + sys.stdout.write(' atom_style full\n') + + if len(bond_styles) > 0: + sys.stdout.write(' bond_style hybrid') + for bond_style in bond_styles: + if not (bond_style in bond_styles_selected): + continue + sys.stdout.write(' ' + bond_style) + sys.stdout.write('\n') + for bond_style in bond_styles: + if not (bond_style in bond_styles_selected): + continue + sys.stdout.write(' # '+bond_style2docs[bond_style]+'\n') + sys.stdout.write('\n') + + if len(angle_styles) > 0: + sys.stdout.write(' angle_style hybrid') + for angle_style in angle_styles: + if not (angle_style in angle_styles_selected): + continue + sys.stdout.write(' ' + angle_style) + sys.stdout.write('\n') + for angle_style in angle_styles: + if not (angle_style in angle_styles_selected): + continue + sys.stdout.write(' # '+angle_style2docs[angle_style]+'\n') + sys.stdout.write('\n') + + if len(dihedral_styles) > 0: + sys.stdout.write(' dihedral_style hybrid') + for dihedral_style in dihedral_styles: + if not (dihedral_style in dihedral_styles_selected): + continue + sys.stdout.write(' ' + dihedral_style) + sys.stdout.write('\n') + for dihedral_style in dihedral_styles: + if not (dihedral_style in dihedral_styles_selected): + continue + sys.stdout.write(' # '+dihedral_style2docs[dihedral_style]+'\n') + sys.stdout.write('\n') + + if len(improper_styles) > 0: + sys.stdout.write(' improper_style hybrid') + for improper_style in improper_styles: + if not (improper_style in improper_styles_selected): + continue + sys.stdout.write(' ' + improper_style) + sys.stdout.write('\n') + for improper_style in improper_styles: + if not (improper_style in improper_styles_selected): + continue + sys.stdout.write(' # '+improper_style2docs[improper_style]+'\n') + sys.stdout.write('\n') + + if len(pair_styles) > 0: + sys.stdout.write(' pair_style hybrid') + for pair_style in pair_styles: + if not (pair_style in pair_styles_selected): + continue + sys.stdout.write(' ' + pair_style + + ' ' + pair_style_args[pair_style]) + sys.stdout.write('\n') + for pair_style in pair_styles: + sys.stdout.write(' # '+pair_style2docs[pair_style]+'\n') + sys.stdout.write('\n') + + sys.stdout.write(' pair_modify mix ' + pair_mixing_style + '\n') + sys.stdout.write(' ' + special_bonds_command + '\n') + sys.stdout.write(' ' + kspace_style + '\n') + sys.stdout.write(' } #end of init parameters\n\n') + sys.stdout.write('} # ' + ffname + '\n\n') + + + sys.stdout.write("#\n" + "# WARNING: The following 1-2, 1-3, and 1-4 weighting parameters were ASSUMED:\n") + sys.stdout.write("# " + special_bonds_command + "\n") + sys.stdout.write("# (See http://lammps.sandia.gov/doc/special_bonds.html for details)\n") + + #sys.stderr.write(' done.\n') + + + if len(lines_templates) > 0: + sys.stdout.write('\n\n\n\n' + '# ---- templates from the original .frc file used for atom type selection: ---\n') + for line in lines_templates: + sys.stdout.write('# '+line) + + if len(lines_references) > 0: + sys.stdout.write('\n\n\n\n' + '# ---- references from the original .frc file: ----\n\n') + for ref_number,lines in sorted(lines_references.items()): + sys.stdout.write('# reference '+str(ref_number)+'\n') + for line in lines: + sys.stdout.write('# '+line) + sys.stdout.write('\n') + + + if len(lines_warnings) > 0: + sys.stdout.write('\n\n\n\n' + '# ---- additional warnings: ----\n') + for line in lines_warnings: + sys.stdout.write(line) + + + if filename_in != '': + file_in.close() + + + + + except InputError as err: + sys.stderr.write('\n\n' + str(err) + '\n') + sys.exit(1) + + + +if __name__ == '__main__': + main() diff --git a/tools/moltemplate/moltemplate/force_fields/convert_TINKER_files_to_LT_files/__init__.py b/tools/moltemplate/moltemplate/force_fields/convert_TINKER_files_to_LT_files/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/moltemplate/moltemplate/force_fields/tinker/tinkerparm2lt.py b/tools/moltemplate/moltemplate/force_fields/convert_TINKER_files_to_LT_files/tinkerparm2lt.py similarity index 76% rename from tools/moltemplate/moltemplate/force_fields/tinker/tinkerparm2lt.py rename to tools/moltemplate/moltemplate/force_fields/convert_TINKER_files_to_LT_files/tinkerparm2lt.py index acb3db5e5c..c5bf317e52 100755 --- a/tools/moltemplate/moltemplate/force_fields/tinker/tinkerparm2lt.py +++ b/tools/moltemplate/moltemplate/force_fields/convert_TINKER_files_to_LT_files/tinkerparm2lt.py @@ -17,8 +17,8 @@ to my knowledge, have not yet been implemented in LAMMPS as of 2017-2-01.) __author__ = 'Jason Lambert and Andrew Jewett' # (some additional corrections by Miguel Gonzalez, Yue Chun Chiu and others) -__version__ = '0.2.1' -__date__ = '2017-17-18' +__version__ = '0.3.2' +__date__ = '2018-6-15' import sys @@ -38,10 +38,12 @@ doc_msg = \ " and \"OPLS\" is the name that future moltemplate users will use to refer to\n" + \ " this force-field (optional).\n" + \ "Optional Arguments\n" + \ - " -name FORCEFIELDNAME # Give the force-field a name\n" + \ + " -name FORCEFIELDNAME # Give the force-field a name (recommended)\n" + \ " -file FILE_NAME # Read force field parameters from a file\n" + \ - " -url URL # Read force field parameters from a file on the web\n" + \ - " -atoms \"QUOTED LIST\" # Restrict output to a subset of atom types\n" + " -url URL # Read force field parameters from a file online\n" + \ + " -atoms \"QUOTED LIST\" # Restrict output to a subset of atom types\n" + \ + " -hybrid # Optional LAMMPS \"hybrid\" style compatibility\n" + \ + " -zeropad N # Optional zero-padding for bonded interactions\n" def SplitQuotedString(string, @@ -142,9 +144,13 @@ def main(): dihedral_style_link = "http://lammps.sandia.gov/doc/dihedral_fourier.html" improper_style_name = "harmonic" improper_style_link = "http://lammps.sandia.gov/doc/improper_harmonic.html" + #improper_style_name = "cvff" + #improper_style_link = "http://lammps.sandia.gov/doc/improper_cvff.html" special_bonds_command = "special_bonds lj/coul 0.0 0.0 0.5" mixing_style = "geometric" + use_hybrid = False contains_united_atoms = False + zeropad_ffid = 1 argv = [arg for arg in sys.argv] @@ -183,7 +189,7 @@ def main(): ' for reading.\n') sys.exit(1) del argv[i:i + 2] - + elif argv[i] == '-dihedral-style': if i + 1 >= len(argv): raise Exception( @@ -201,8 +207,9 @@ def main(): elif argv[i] in ('-url', '-in-url'): import urllib2 if i + 1 >= len(argv): - raise Exception( - 'Error: ' + argv[i] + ' flag should be followed by the name of a force-field file.\n') + raise InputError('Error: ' + argv[i] + ' flag should be followed by a URL pointing to\n' + + ' a TINKER file containing force-field information.\n') url = argv[i + 1] try: request = urllib2.Request(url) @@ -211,6 +218,17 @@ def main(): sys.stdout.write("Error: Unable to open link:\n" + url + "\n") sys.exit(1) del argv[i:i + 2] + + elif argv[i] == '-hybrid': + use_hybrid = True + del argv[i:i + 1] + + elif (argv[i] == '-zeropad' or argv[i] == '-zero-pad'): + if (i + 1 >= len(argv)) or (argv[i+1][1:] == '-'): + raise Exception( + 'Error: ' + argv[i] + ' flag should be followed by a positive integer\n') + zeropad_ffid = int(argv[i+1]) + del argv[i:i + 2] elif argv[i] in ('-help', '--help', '-?', '--?'): sys.stderr.write(doc_msg) @@ -276,11 +294,14 @@ def main(): elif (len(tokens) > 4) and (tokens[0] == 'bond'): k = float(tokens[3]) r0 = float(tokens[4]) - bonds_by_type[tokens[1], tokens[2]] = (k, r0) + bonds_by_type[tokens[1].rjust(zeropad_ffid,'0'), + tokens[2].rjust(zeropad_ffid,'0')] = (k, r0) elif (len(tokens) > 5) and (tokens[0] == 'angle'): k = float(tokens[4]) angle0 = float(tokens[5]) - angles_by_type[tokens[1], tokens[2], tokens[3]] = (k, angle0) + angles_by_type[tokens[1].rjust(zeropad_ffid,'0'), + tokens[2].rjust(zeropad_ffid,'0'), + tokens[3].rjust(zeropad_ffid,'0')] = (k, angle0) elif (len(tokens) > 11) and (tokens[0] == 'torsion'): if dihedral_style_name == 'fourier': # http://lammps.sandia.gov/doc/dihedral_fourier.html @@ -292,8 +313,10 @@ def main(): K[i] = float(tokens[5 + 3 * i]) d[i] = float(tokens[5 + 3 * i + 1]) n[i] = float(tokens[5 + 3 * i + 2]) - dihedrals_by_type[tokens[1], tokens[2], - tokens[3], tokens[4]] = (K, n, d) + dihedrals_by_type[tokens[1].rjust(zeropad_ffid,'0'), + tokens[2].rjust(zeropad_ffid,'0'), + tokens[3].rjust(zeropad_ffid,'0'), + tokens[4].rjust(zeropad_ffid,'0')] = (K, n, d) elif dihedral_style_name == 'opls': # http://lammps.sandia.gov/doc/dihedral_opls.html K1 = float(tokens[5]) @@ -311,8 +334,10 @@ def main(): (float(tokens[16]) != 4.0)))): raise Exception("Error: This parameter file is incompatible with -dihedral-style \"" + dihedral_style_name + "\"\n" + " (See line number " + str(iline + 1) + " of parameter file.)\n") - dihedrals_by_type[tokens[1], tokens[2], - tokens[3], tokens[4]] = (K1, K2, K3, K4) + dihedrals_by_type[tokens[1].rjust(zeropad_ffid,'0'), + tokens[2].rjust(zeropad_ffid,'0'), + tokens[3].rjust(zeropad_ffid,'0'), + tokens[4].rjust(zeropad_ffid,'0')] = (K1, K2, K3, K4) else: assert(False) @@ -320,8 +345,10 @@ def main(): k = float(tokens[5]) angle0 = float(tokens[6]) multiplicity = float(tokens[7]) - impropers_by_type[tokens[1], tokens[2], tokens[ - 3], tokens[4]] = (k / multiplicity, angle0) + impropers_by_type[tokens[1].rjust(zeropad_ffid,'0'), + tokens[2].rjust(zeropad_ffid,'0'), + tokens[3].rjust(zeropad_ffid,'0'), + tokens[4].rjust(zeropad_ffid,'0')] = (k / multiplicity, angle0) elif ((len(tokens) > 0) and (tokens[0] == 'biotype')): # I'm not sure what to do with these, so I'll store them for now and # append them as comments to the .lt file generated by the program. @@ -351,13 +378,28 @@ def main(): " to consider alternate mixing rules.\n\n" + "The offending line from the file is line number " + str(iline) + ":\n" + line + "\n") - - - + + # Zero-pad the atom2ffid values so that they have the same number + # of digits. This is usually not necessary, but it can be helpful + # to remove uncertainty about the meaning of '4*' which could + # pattern match with '4', '4L', '47', '47L'... If you replace '4' + # with '04', '04*' becomes distinguishable from '47*'. + # This can be useful if you want to augment the force field later, + # (for example, adding additional atoms to the LOPLSAA variant of OPLSAA) + + for k in atom2ffid.keys(): + atom2ffid[k] = atom2ffid[k].rjust(zeropad_ffid, '0') + + # Horrible hack: for LOPLSAA, uncomment the next 3 lines: + #ki = atom2ffid[k].find('L') + #if ki!=-1: + # atom2ffid[k] = atom2ffid[k].rjust(zeropad_ffid + len(atom2ffid[k]) - ki, '0') + + #sys.stderr.write(" done.\n") #sys.stderr.write("Converting to moltemplate format...\n") - - + + system_is_charged = False for atom_type in atom2charge: if atom2charge[atom_type] != 0.0: @@ -373,10 +415,9 @@ def main(): pair_style_params = "10.0" kspace_style = "" pair_style_link = "http://lammps.sandia.gov/doc/pair_lj.html" - - pair_style_command = " pair_style hybrid " + \ - pair_style_name + " " + pair_style_params + "\n" - + + pair_style_command = " pair_style " + ("hybrid " if use_hybrid else "") + \ + pair_style_name + " " + pair_style_params + "\n" sys.stdout.write("# This file was generated automatically using:\n") sys.stdout.write("# " + g_program_name + " " + " ".join(sys.argv[1:]) + "\n") @@ -442,8 +483,10 @@ def main(): sys.stdout.write(" # --------------- Non-Bonded interactions: ---------------------\n" " # " + pair_style_link + "\n" " # Syntax:\n" - " # pair_coeff AtomType1 AtomType2 pair_style_name parameters...\n\n") - + " # pair_coeff AtomType1 AtomType2 " + + ("PairStyleName " if use_hybrid else "") + + "parameters...\n\n") + sys.stdout.write(" write_once(\"In Settings\") {\n") for atype in atom2vdw_e: assert(atype in atom2vdw_s) @@ -454,7 +497,7 @@ def main(): "@atom:" + atype + "_b" + atom2ffid[atype] + "_a" + atom2ffid[ atype] + "_d" + atom2ffid[atype] + "_i" + atom2ffid[atype] + " " "@atom:" + atype + "_b" + atom2ffid[atype] + "_a" + atom2ffid[atype] + "_d" + atom2ffid[atype] + "_i" + atom2ffid[atype] + " " + - pair_style_name + + (pair_style_name if use_hybrid else "") + " " + str(atom2vdw_e[atype]) + " " + str(atom2vdw_s[atype]) + "\n") sys.stdout.write(" } #(end of pair_coeffs)\n\n\n\n") @@ -463,15 +506,18 @@ def main(): sys.stdout.write(" # ------- Bonded Interactions: -------\n" " # " + bond_style_link + "\n" " # Syntax: \n" - " # bond_coeff BondTypeName BondStyle parameters...\n\n") + " # bond_coeff BondTypeName " + + ("BondStyleName " if use_hybrid else "") + + "parameters...\n\n") sys.stdout.write(" write_once(\"In Settings\") {\n") for btype in bonds_by_type: - ffid1 = btype[0] if btype[0] != "0" else "X" - ffid2 = btype[1] if btype[1] != "0" else "X" + ffid1 = btype[0] if btype[0] != ("0"*zeropad_ffid) else "X" + ffid2 = btype[1] if btype[1] != ("0"*zeropad_ffid) else "X" (k, r0) = bonds_by_type[btype] - sys.stdout.write(" bond_coeff @bond:" + ffid1 + "-" + ffid2 + " " + - bond_style_name + " " + str(k) + " " + str(r0) + "\n") + sys.stdout.write(" bond_coeff @bond:" + ffid1 + "_" + ffid2 + " " + + (bond_style_name if use_hybrid else "") + + " " + str(k) + " " + str(r0) + "\n") sys.stdout.write(" } #(end of bond_coeffs)\n\n") sys.stdout.write(" # Rules for assigning bond types by atom type:\n" @@ -480,13 +526,13 @@ def main(): sys.stdout.write(" write_once(\"Data Bonds By Type\") {\n") for btype in bonds_by_type: - ffid1 = btype[0] if btype[0] != "0" else "X" - ffid2 = btype[1] if btype[1] != "0" else "X" - sys.stdout.write(" @bond:" + ffid1 + "-" + ffid2) + ffid1 = btype[0] if btype[0] != ("0"*zeropad_ffid) else "X" + ffid2 = btype[1] if btype[1] != ("0"*zeropad_ffid) else "X" + sys.stdout.write(" @bond:" + ffid1 + "_" + ffid2) ffid1 = "@atom:*_b" + btype[0] + \ - "_a*_d*_i*" if btype[0] != "0" else "@atom:*" + "*_a*_d*_i*" if btype[0] != ("0"*zeropad_ffid) else "@atom:*" ffid2 = "@atom:*_b" + btype[1] + \ - "_a*_d*_i*" if btype[1] != "0" else "@atom:*" + "*_a*_d*_i*" if btype[1] != ("0"*zeropad_ffid) else "@atom:*" sys.stdout.write(" " + ffid1 + " " + ffid2 + "\n") sys.stdout.write(" } #(end of bonds by type)\n\n\n\n\n") @@ -494,16 +540,19 @@ def main(): sys.stdout.write(" # ------- Angle Interactions: -------\n" " # " + angle_style_link + "\n" " # Syntax: \n" - " # angle_coeff AngleTypeName AngleStyle parameters...\n\n") + " # angle_coeff AngleTypeName "+ + ("AngleStyleName " if use_hybrid else "") + + "parameters...\n\n") sys.stdout.write(" write_once(\"In Settings\") {\n") for atype in angles_by_type: - ffid1 = atype[0] if atype[0] != "0" else "X" - ffid2 = atype[1] if atype[1] != "0" else "X" - ffid3 = atype[2] if atype[2] != "0" else "X" + ffid1 = atype[0] if atype[0] != ("0"*zeropad_ffid) else "X" + ffid2 = atype[1] if atype[1] != ("0"*zeropad_ffid) else "X" + ffid3 = atype[2] if atype[2] != ("0"*zeropad_ffid) else "X" (k, angle0) = angles_by_type[atype] - sys.stdout.write(" angle_coeff @angle:" + ffid1 + "-" + ffid2 + "-" + ffid3 + " " + - angle_style_name + " " + str(k) + " " + str(angle0) + "\n") + sys.stdout.write(" angle_coeff @angle:" + ffid1 + "_" + ffid2 + "_" + ffid3 + " " + + (angle_style_name if use_hybrid else "") + + " " + str(k) + " " + str(angle0) + "\n") sys.stdout.write(" } #(end of angle_coeffs)\n\n") @@ -513,16 +562,16 @@ def main(): sys.stdout.write(" write_once(\"Data Angles By Type\") {\n") for atype in angles_by_type: - ffid1 = atype[0] if atype[0] != "0" else "X" - ffid2 = atype[1] if atype[1] != "0" else "X" - ffid3 = atype[2] if atype[2] != "0" else "X" - sys.stdout.write(" @angle:" + ffid1 + "-" + ffid2 + "-" + ffid3) + ffid1 = atype[0] if atype[0] != ("0"*zeropad_ffid) else "X" + ffid2 = atype[1] if atype[1] != ("0"*zeropad_ffid) else "X" + ffid3 = atype[2] if atype[2] != ("0"*zeropad_ffid) else "X" + sys.stdout.write(" @angle:" + ffid1 + "_" + ffid2 + "_" + ffid3) ffid1 = "@atom:*_b*_a" + atype[0] + \ - "_d*_i*" if atype[0] != "0" else "@atom:*" + "*_d*_i*" if atype[0] != ("0"*zeropad_ffid) else "@atom:*" ffid2 = "@atom:*_b*_a" + atype[1] + \ - "_d*_i*" if atype[1] != "0" else "@atom:*" + "*_d*_i*" if atype[1] != ("0"*zeropad_ffid) else "@atom:*" ffid3 = "@atom:*_b*_a" + atype[2] + \ - "_d*_i*" if atype[2] != "0" else "@atom:*" + "*_d*_i*" if atype[2] != ("0"*zeropad_ffid) else "@atom:*" sys.stdout.write(" " + ffid1 + " " + ffid2 + " " + ffid3 + "\n") sys.stdout.write(" } #(end of angles by type)\n\n\n\n\n") @@ -530,17 +579,20 @@ def main(): sys.stdout.write(" # ----------- Dihedral Interactions: ------------\n" " # " + dihedral_style_link + "\n" " # Syntax:\n" - " # dihedral_coeff DihedralTypeName DihedralStyle parameters...\n\n") + " # dihedral_coeff DihedralTypeName " + + ("DihedralStyleName " if use_hybrid else "") + + "parameters...\n\n") sys.stdout.write(" write_once(\"In Settings\") {\n") for dtype in dihedrals_by_type: - ffid1 = dtype[0] if dtype[0] != "0" else "X" - ffid2 = dtype[1] if dtype[1] != "0" else "X" - ffid3 = dtype[2] if dtype[2] != "0" else "X" - ffid4 = dtype[3] if dtype[3] != "0" else "X" + ffid1 = dtype[0] if dtype[0] != ("0"*zeropad_ffid) else "X" + ffid2 = dtype[1] if dtype[1] != ("0"*zeropad_ffid) else "X" + ffid3 = dtype[2] if dtype[2] != ("0"*zeropad_ffid) else "X" + ffid4 = dtype[3] if dtype[3] != ("0"*zeropad_ffid) else "X" sys.stdout.write(" dihedral_coeff @dihedral:" + - ffid1 + "-" + ffid2 + "-" + ffid3 + "-" + ffid4 + " " + - dihedral_style_name + " ") + ffid1 + "_" + ffid2 + "_" + ffid3 + "_" + ffid4 + " " + + (dihedral_style_name if use_hybrid else "") + + " ") if dihedral_style_name == 'fourier': # http://lammps.sandia.gov/doc/dihedral_fourier.html (K, n, d) = dihedrals_by_type[dtype] @@ -567,20 +619,22 @@ def main(): sys.stdout.write(" write_once(\"Data Dihedrals By Type\") {\n") for dtype in dihedrals_by_type: - ffid1 = dtype[0] if dtype[0] != "0" else "X" - ffid2 = dtype[1] if dtype[1] != "0" else "X" - ffid3 = dtype[2] if dtype[2] != "0" else "X" - ffid4 = dtype[3] if dtype[3] != "0" else "X" - sys.stdout.write(" @dihedral:" + ffid1 + "-" + - ffid2 + "-" + ffid3 + "-" + ffid4) + ffid1 = dtype[0] if dtype[0] != ("0"*zeropad_ffid) else "X" + ffid2 = dtype[1] if dtype[1] != ("0"*zeropad_ffid) else "X" + ffid3 = dtype[2] if dtype[2] != ("0"*zeropad_ffid) else "X" + ffid4 = dtype[3] if dtype[3] != ("0"*zeropad_ffid) else "X" + sys.stdout.write(" @dihedral:" + + ffid1 + "_" + ffid2 + "_" + + ffid3 + "_" + ffid4) ffid1 = "@atom:*_b*_a*_d" + dtype[0] + \ - "_i*" if dtype[0] != "0" else "@atom:*" + "*_i*" if dtype[0] != ("0"*zeropad_ffid) else "@atom:*" ffid2 = "@atom:*_b*_a*_d" + dtype[1] + \ - "_i*" if dtype[1] != "0" else "@atom:*" + "*_i*" if dtype[1] != ("0"*zeropad_ffid) else "@atom:*" ffid3 = "@atom:*_b*_a*_d" + dtype[2] + \ - "_i*" if dtype[2] != "0" else "@atom:*" + "*_i*" if dtype[2] != ("0"*zeropad_ffid) else "@atom:*" ffid4 = "@atom:*_b*_a*_d" + dtype[3] + \ - "_i*" if dtype[3] != "0" else "@atom:*" + "*_i*" if dtype[3] != ("0"*zeropad_ffid) else "@atom:*" + sys.stdout.write(" " + ffid1 + " " + ffid2 + " " + ffid3 + " " + ffid4 + "\n") sys.stdout.write(" } #(end of dihedrals by type)\n\n\n\n\n") @@ -589,37 +643,41 @@ def main(): sys.stdout.write(" # ---------- Improper Interactions: ----------\n" " # " + improper_style_link + "\n" " # Syntax:\n" - " # improper_coeff ImproperTypeName ImproperStyle parameters\n\n") + " # improper_coeff ImproperTypeName " + + ("ImproperStyleName " if use_hybrid else "") + + "parameters\n\n") sys.stdout.write(" write_once(\"In Settings\") {\n") for itype in impropers_by_type: - ffid1 = itype[0] if itype[0] != "0" else "X" - ffid2 = itype[1] if itype[1] != "0" else "X" - ffid3 = itype[2] if itype[2] != "0" else "X" - ffid4 = itype[3] if itype[3] != "0" else "X" + ffid1 = itype[0] if itype[0] != ("0"*zeropad_ffid) else "X" + ffid2 = itype[1] if itype[1] != ("0"*zeropad_ffid) else "X" + ffid3 = itype[2] if itype[2] != ("0"*zeropad_ffid) else "X" + ffid4 = itype[3] if itype[3] != ("0"*zeropad_ffid) else "X" (k, angle0) = impropers_by_type[itype] sys.stdout.write(" improper_coeff @improper:" + - ffid1 + "-" + ffid2 + "-" + ffid3 + "-" + ffid4 + " " + - improper_style_name + " " + str(k) + " " + str(angle0) + "\n") + ffid1 + "_" + ffid2 + "_" + ffid3 + "_" + ffid4 + " " + + (improper_style_name if use_hybrid else "") + + " " + str(k) + " " + str(angle0) + "\n") sys.stdout.write(" } #(end of improper_coeffs)\n\n") - sys.stdout.write(" # Rules for creating dihedral interactions according to atom type:\n" + sys.stdout.write(" # Rules for creating improper interactions according to atom type:\n" " # ImproperTypeName AtomType1 AtomType2 AtomType3 AtomType4\n" " # (* = wildcard)\n") sys.stdout.write(" write_once(\"Data Impropers By Type (opls_imp.py)\") {\n") for itype in impropers_by_type: - ffid1 = itype[0] if itype[0] != "0" else "X" - ffid2 = itype[1] if itype[1] != "0" else "X" - ffid3 = itype[2] if itype[2] != "0" else "X" - ffid4 = itype[3] if itype[3] != "0" else "X" - sys.stdout.write(" @improper:" + ffid1 + "-" + - ffid2 + "-" + ffid3 + "-" + ffid4) - ffid1 = "@atom:*_b*_a*_d*_i" + itype[0] if itype[0] != "0" else "@atom:*" - ffid2 = "@atom:*_b*_a*_d*_i" + itype[1] if itype[1] != "0" else "@atom:*" - ffid3 = "@atom:*_b*_a*_d*_i" + itype[2] if itype[2] != "0" else "@atom:*" - ffid4 = "@atom:*_b*_a*_d*_i" + itype[3] if itype[3] != "0" else "@atom:*" + ffid1 = itype[0] if itype[0] != ("0"*zeropad_ffid) else "X" + ffid2 = itype[1] if itype[1] != ("0"*zeropad_ffid) else "X" + ffid3 = itype[2] if itype[2] != ("0"*zeropad_ffid) else "X" + ffid4 = itype[3] if itype[3] != ("0"*zeropad_ffid) else "X" + sys.stdout.write(" @improper:" + + ffid1 + "_" + ffid2 + "_" + + ffid3 + "_" + ffid4) + ffid1 = "@atom:*_b*_a*_d*_i" + itype[0]+"*" if itype[0] != ("0"*zeropad_ffid) else "@atom:*" + ffid2 = "@atom:*_b*_a*_d*_i" + itype[1]+"*" if itype[1] != ("0"*zeropad_ffid) else "@atom:*" + ffid3 = "@atom:*_b*_a*_d*_i" + itype[2]+"*" if itype[2] != ("0"*zeropad_ffid) else "@atom:*" + ffid4 = "@atom:*_b*_a*_d*_i" + itype[3]+"*" if itype[3] != ("0"*zeropad_ffid) else "@atom:*" sys.stdout.write(" " + ffid1 + " " + ffid2 + " " + ffid3 + " " + ffid4 + "\n") sys.stdout.write(" } #(end of impropers by type)\n\n\n\n\n") @@ -639,10 +697,18 @@ def main(): sys.stdout.write(" write_once(\"In Init\") {\n") sys.stdout.write(" units real\n") sys.stdout.write(" atom_style full\n") - sys.stdout.write(" bond_style hybrid " + bond_style_name + "\n") - sys.stdout.write(" angle_style hybrid " + angle_style_name + "\n") - sys.stdout.write(" dihedral_style hybrid " + dihedral_style_name + "\n") - sys.stdout.write(" improper_style hybrid " + improper_style_name + "\n") + sys.stdout.write(" bond_style " + + ("hybrid " if use_hybrid else "") + + bond_style_name + "\n") + sys.stdout.write(" angle_style " + + ("hybrid " if use_hybrid else "") + + angle_style_name + "\n") + sys.stdout.write(" dihedral_style " + + ("hybrid " if use_hybrid else "") + + dihedral_style_name + "\n") + sys.stdout.write(" improper_style " + + ("hybrid " if use_hybrid else "") + + improper_style_name + "\n") sys.stdout.write(pair_style_command) sys.stdout.write(" pair_modify mix " + mixing_style + "\n") sys.stdout.write(" " + special_bonds_command + "\n") diff --git a/tools/moltemplate/moltemplate/force_fields/cooke_deserno/README b/tools/moltemplate/moltemplate/force_fields/cooke_deserno_supporting_files/README similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/cooke_deserno/README rename to tools/moltemplate/moltemplate/force_fields/cooke_deserno_supporting_files/README diff --git a/tools/moltemplate/moltemplate/force_fields/cooke_deserno/gen_potential-cooke.py b/tools/moltemplate/moltemplate/force_fields/cooke_deserno_supporting_files/gen_potential-cooke.py similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/cooke_deserno/gen_potential-cooke.py rename to tools/moltemplate/moltemplate/force_fields/cooke_deserno_supporting_files/gen_potential-cooke.py diff --git a/tools/moltemplate/moltemplate/force_fields/cooke_deserno/tabulated_potential.dat b/tools/moltemplate/moltemplate/force_fields/cooke_deserno_supporting_files/tabulated_potential.dat similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/cooke_deserno/tabulated_potential.dat rename to tools/moltemplate/moltemplate/force_fields/cooke_deserno_supporting_files/tabulated_potential.dat diff --git a/tools/moltemplate/moltemplate/force_fields/gaff.lt b/tools/moltemplate/moltemplate/force_fields/gaff.lt index 683dbf4ee4..d9e367e8ce 100644 --- a/tools/moltemplate/moltemplate/force_fields/gaff.lt +++ b/tools/moltemplate/moltemplate/force_fields/gaff.lt @@ -30,15 +30,14 @@ #(See "Inheritance" and "short names vs. full names" in the moltemplate manual.) #################################################################### # Moltemplate can not assign atom charge. You must assign atomic -# charges yourself. (Moltemplate is only a simple text manipulation tool.) +# charges yourself. (Moltemplate is only a simple text manipulation tool. +# You can do this afterwards using commands like "set atom 70 charge -0.212" +# For details, see http://lammps.sandia.gov/doc/set.html) #################################################################### - - - GAFF { # ---------------------------------------------------------------------- diff --git a/tools/moltemplate/moltemplate/force_fields/gaff2.lt b/tools/moltemplate/moltemplate/force_fields/gaff2.lt new file mode 100644 index 0000000000..9063b28cb9 --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/gaff2.lt @@ -0,0 +1,13357 @@ +# This is the 2.1 version of GAFF (April 2016) +#################################################################### +# This moltemplate (LT) file was generated automatically using +# amberparm2lt.sh gaff2.dat GAFF2 > gaff2.lt +#################################################################### +# WARNING: As of 2017-10-03 this file has not yet been tested with +# moltemplate. Please report issues to jewett.aij -at- gmail.com +#################################################################### +# Background information and usage explanation: +# This file contanis a list of atom types and rules for generating bonded +# interactions between these atoms (hopefully) according to AMBER conventions. +# By using the atom types shown below in your own molecules, bonds and angular +# interactions will be automatically generated. +# AMBER (GAFF) force-field parameters will also be assigned to each angle +# interaction (according to these atom types). +# One way to apply the GAFF force field to a particular type of molecule, is +# to use the "inherits" keyword when you define that molecule. For example: +# import("gaff.lt") +# MoleculeType inherits GAFF { +# write_once("Data Atoms") { +# $atom:C1 $mol:... @atom:cx 0.0 4.183 3.194 13.285 +# $atom:C2 $mol:... @atom:cx 0.0 4.291 4.618 13.382 +# : : : +# } +# } +#(See "Inheritance" and "short names vs. full names" in the moltemplate manual.) +#################################################################### +# Moltemplate can not assign atom charge. You must assign atomic +# charges yourself. (Moltemplate is only a simple text manipulation tool. +# You can do this afterwards using commands like "set atom 70 charge -0.212" +# For details, see http://lammps.sandia.gov/doc/set.html) +#################################################################### + + +GAFF2 { + + # ---------------------------------------------------------------------- + # The basic atom nomenclature and conventions are explained here: + # http://ambermd.org/antechamber/gaff.pdf + # For reference, the original gaff.dat file and format documentation are here: + # http://ambermd.org/AmberTools-get.html + # http://ambermd.org/formats.html#parm.dat + # ---------------------------------------------------------------------- + + write_once("Data Masses") { + @atom:c 12.01 # Sp2 C carbonyl group + @atom:cs 12.01 # Sp2 C in c=S + @atom:c1 12.01 # Sp C + @atom:c2 12.01 # Sp2 C + @atom:c3 12.01 # Sp3 C + @atom:ca 12.01 # Sp2 C in pure aromatic systems + @atom:cp 12.01 # Head Sp2 C that connect two rings in biphenyl sys. + @atom:cq 12.01 # Head Sp2 C that connect two rings in biphenyl sys. identical to cp + @atom:cc 12.01 # Sp2 carbons in non-pure aromatic systems + @atom:cd 12.01 # Sp2 carbons in non-pure aromatic systems, identical to cc + @atom:ce 12.01 # Inner Sp2 carbons in conjugated systems + @atom:cf 12.01 # Inner Sp2 carbons in conjugated systems, identical to ce + @atom:cg 12.01 # Inner Sp carbons in conjugated systems + @atom:ch 12.01 # Inner Sp carbons in conjugated systems, identical to cg + @atom:cx 12.01 # Sp3 carbons in triangle systems + @atom:cy 12.01 # Sp3 carbons in square systems + @atom:cu 12.01 # Sp2 carbons in triangle systems + @atom:cv 12.01 # Sp2 carbons in square systems + @atom:cz 12.01 # Sp2 carbon in guanidine group + @atom:h1 1.008 # H bonded to aliphatic carbon with 1 electrwd. group + @atom:h2 1.008 # H bonded to aliphatic carbon with 2 electrwd. group + @atom:h3 1.008 # H bonded to aliphatic carbon with 3 electrwd. group + @atom:h4 1.008 # H bonded to non-sp3 carbon with 1 electrwd. group + @atom:h5 1.008 # H bonded to non-sp3 carbon with 2 electrwd. group + @atom:ha 1.008 # H bonded to aromatic carbon + @atom:hc 1.008 # H bonded to aliphatic carbon without electrwd. group + @atom:hn 1.008 # H bonded to nitrogen atoms + @atom:ho 1.008 # Hydroxyl group + @atom:hp 1.008 # H bonded to phosphate + @atom:hs 1.008 # Hydrogen bonded to sulphur + @atom:hw 1.008 # Hydrogen in water + @atom:hx 1.008 # H bonded to C next to positively charged group + @atom:f 19.00 # Fluorine + @atom:cl 35.45 # Chlorine + @atom:br 79.90 # Bromine + @atom:i 126.9 # Iodine + @atom:n 14.01 # Sp2 nitrogen in amide groups + @atom:n1 14.01 # Sp N + @atom:n2 14.01 # aliphatic Sp2 N with two connected atoms + @atom:n3 14.01 # Sp3 N with three connected atoms + @atom:n4 14.01 # Sp3 N with four connected atoms + @atom:na 14.01 # Sp2 N with three connected atoms + @atom:nb 14.01 # Sp2 N in pure aromatic systems + @atom:nc 14.01 # Sp2 N in non-pure aromatic systems + @atom:nd 14.01 # Sp2 N in non-pure aromatic systems, identical to nc + @atom:ne 14.01 # Inner Sp2 N in conjugated systems + @atom:nf 14.01 # Inner Sp2 N in conjugated systems, identical to ne + @atom:nh 14.01 # Amine N connected one or more aromatic rings + @atom:no 14.01 # Nitro N + @atom:ns 14.01 # amind N, with 1 attached hydrogen atom + @atom:nt 14.01 # amide N, with 2 attached hydrogen atoms + @atom:nx 14.01 # like n4, but only has one hydrogen atom + @atom:ny 14.01 # like n4, but only has two hydrogen atoms + @atom:nz 14.01 # like n4, but only has three three hydrogen atoms + @atom:n+ 14.01 # NH4+ + @atom:nu 14.01 # like nh, but only has one attached hydrogen atom + @atom:nv 14.01 # like nh, but only has two attached hydrogen atoms + @atom:n7 14.01 # like n3, but only has one attached hydrogen atom + @atom:n8 14.01 # like n3, but only has two attached hydrogen atoms + @atom:n9 14.01 # NH3 + @atom:o 16.00 # Oxygen with one connected atom + @atom:oh 16.00 # Oxygen in hydroxyl group + @atom:os 16.00 # Ether and ester oxygen + @atom:ow 16.00 # Oxygen in water + @atom:p2 30.97 # Phosphate with two connected atoms + @atom:p3 30.97 # Phosphate with three connected atoms, such as PH3 + @atom:p4 30.97 # Phosphate with three connected atoms, such as O=P(CH3)2 + @atom:p5 30.97 # Phosphate with four connected atoms, such as O=P(OH)3 + @atom:pb 30.97 # Sp2 P in pure aromatic systems + @atom:pc 30.97 # Sp2 P in non-pure aromatic systems + @atom:pd 30.97 # Sp2 P in non-pure aromatic systems, identical to pc + @atom:pe 30.97 # Inner Sp2 P in conjugated systems + @atom:pf 30.97 # Inner Sp2 P in conjugated systems, identical to pe + @atom:px 30.97 # Special p4 in conjugated systems + @atom:py 30.97 # Special p5 in conjugated systems + @atom:s 32.06 # S with one connected atom + @atom:s2 32.06 # S with two connected atom, involved at least one double bond + @atom:s4 32.06 # S with three connected atoms + @atom:s6 32.06 # S with four connected atoms + @atom:sh 32.06 # Sp3 S connected with hydrogen + @atom:ss 32.06 # Sp3 S in thio-ester and thio-ether + @atom:sx 32.06 # Special s4 in conjugated systems + @atom:sy 32.06 # Special s6 in conjugated systems + } # (end of masses) + + write_once("In Settings") { + pair_coeff @atom:hc @atom:hc lj/charmm/coul/long 0.0208 2.60017699876 + pair_coeff @atom:ha @atom:ha lj/charmm/coul/long 0.0161 2.62547852236 + pair_coeff @atom:hn @atom:hn lj/charmm/coul/long 0.0100 1.10649620793 + pair_coeff @atom:ho @atom:ho lj/charmm/coul/long 0.0047 0.537924646013 + pair_coeff @atom:hs @atom:hs lj/charmm/coul/long 0.0124 1.08903459305 + pair_coeff @atom:hp @atom:hp lj/charmm/coul/long 0.0144 1.07460203382 + pair_coeff @atom:o @atom:o lj/charmm/coul/long 0.1463 3.04812087425 + pair_coeff @atom:os @atom:os lj/charmm/coul/long 0.0726 3.15609779888 + pair_coeff @atom:oh @atom:oh lj/charmm/coul/long 0.0930 3.24287133403 + pair_coeff @atom:c3 @atom:c3 lj/charmm/coul/long 0.1078 3.39770953124 + pair_coeff @atom:c2 @atom:c2 lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:c1 @atom:c1 lj/charmm/coul/long 0.1596 3.47895949434 + pair_coeff @atom:n @atom:n lj/charmm/coul/long 0.1636 3.18086478325 + pair_coeff @atom:s @atom:s lj/charmm/coul/long 0.2824 3.53241341743 + pair_coeff @atom:p2 @atom:p2 lj/charmm/coul/long 0.2295 3.6940224449 + pair_coeff @atom:f @atom:f lj/charmm/coul/long 0.0832 3.03422285424 + pair_coeff @atom:cl @atom:cl lj/charmm/coul/long 0.2638 3.46595237305 + pair_coeff @atom:br @atom:br lj/charmm/coul/long 0.3932 3.61259430206 + pair_coeff @atom:i @atom:i lj/charmm/coul/long 0.4955 3.84119891313 + pair_coeff @atom:n1 @atom:n1 lj/charmm/coul/long 0.1098 3.27351824993 + pair_coeff @atom:n2 @atom:n2 lj/charmm/coul/long 0.0941 3.38416787073 + pair_coeff @atom:n3 @atom:n3 lj/charmm/coul/long 0.0858 3.36510263816 + pair_coeff @atom:na @atom:na lj/charmm/coul/long 0.2042 3.20580994736 + pair_coeff @atom:nh @atom:nh lj/charmm/coul/long 0.2150 3.18995195017 + pair_coeff @atom:n+ @atom:n+ lj/charmm/coul/long 0.7828 2.85586493087 + pair_coeff @atom:n9 @atom:n9 lj/charmm/coul/long 0.0095 4.04468018036 + pair_coeff @atom:h1 @atom:h1 lj/charmm/coul/long 0.0208 2.42199725514 + pair_coeff @atom:h2 @atom:h2 lj/charmm/coul/long 0.0208 2.24381751151 + pair_coeff @atom:h3 @atom:h3 lj/charmm/coul/long 0.0208 2.06563776788 + pair_coeff @atom:hx @atom:hx lj/charmm/coul/long 0.0208 1.88745802425 + pair_coeff @atom:h4 @atom:h4 lj/charmm/coul/long 0.0161 2.53638865055 + pair_coeff @atom:h5 @atom:h5 lj/charmm/coul/long 0.0161 2.44729877873 + pair_coeff @atom:cx @atom:cx lj/charmm/coul/long 0.1078 3.39770953124 + pair_coeff @atom:cy @atom:cy lj/charmm/coul/long 0.1078 3.39770953124 + pair_coeff @atom:c @atom:c lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:cs @atom:cs lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:ca @atom:ca lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:cc @atom:cc lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:cd @atom:cd lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:ce @atom:ce lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:cf @atom:cf lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:cp @atom:cp lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:cq @atom:cq lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:cz @atom:cz lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:cg @atom:cg lj/charmm/coul/long 0.1596 3.47895949434 + pair_coeff @atom:ch @atom:ch lj/charmm/coul/long 0.1596 3.47895949434 + pair_coeff @atom:cu @atom:cu lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:cv @atom:cv lj/charmm/coul/long 0.0988 3.31521230994 + pair_coeff @atom:nb @atom:nb lj/charmm/coul/long 0.0941 3.38416787073 + pair_coeff @atom:nc @atom:nc lj/charmm/coul/long 0.0941 3.38416787073 + pair_coeff @atom:nd @atom:nd lj/charmm/coul/long 0.0941 3.38416787073 + pair_coeff @atom:ne @atom:ne lj/charmm/coul/long 0.0941 3.38416787073 + pair_coeff @atom:nf @atom:nf lj/charmm/coul/long 0.0941 3.38416787073 + pair_coeff @atom:no @atom:no lj/charmm/coul/long 0.0858 3.36510263816 + pair_coeff @atom:n7 @atom:n7 lj/charmm/coul/long 0.0522 3.50764643306 + pair_coeff @atom:n8 @atom:n8 lj/charmm/coul/long 0.0323 3.65019022796 + pair_coeff @atom:n4 @atom:n4 lj/charmm/coul/long 3.8748 2.49950544361 + pair_coeff @atom:nx @atom:nx lj/charmm/coul/long 2.5453 2.58859531543 + pair_coeff @atom:ny @atom:ny lj/charmm/coul/long 1.6959 2.67768518724 + pair_coeff @atom:nz @atom:nz lj/charmm/coul/long 1.1450 2.76677505906 + pair_coeff @atom:ns @atom:ns lj/charmm/coul/long 0.1174 3.26995465506 + pair_coeff @atom:nt @atom:nt lj/charmm/coul/long 0.0851 3.35904452688 + pair_coeff @atom:nu @atom:nu lj/charmm/coul/long 0.1545 3.27904182199 + pair_coeff @atom:nv @atom:nv lj/charmm/coul/long 0.1120 3.3681316938 + pair_coeff @atom:s2 @atom:s2 lj/charmm/coul/long 0.2824 3.53241341743 + pair_coeff @atom:s4 @atom:s4 lj/charmm/coul/long 0.2824 3.53241341743 + pair_coeff @atom:s6 @atom:s6 lj/charmm/coul/long 0.2824 3.53241341743 + pair_coeff @atom:sx @atom:sx lj/charmm/coul/long 0.2824 3.53241341743 + pair_coeff @atom:sy @atom:sy lj/charmm/coul/long 0.2824 3.53241341743 + pair_coeff @atom:sh @atom:sh lj/charmm/coul/long 0.2824 3.53241341743 + pair_coeff @atom:ss @atom:ss lj/charmm/coul/long 0.2824 3.53241341743 + pair_coeff @atom:p3 @atom:p3 lj/charmm/coul/long 0.2295 3.6940224449 + pair_coeff @atom:p4 @atom:p4 lj/charmm/coul/long 0.2295 3.6940224449 + pair_coeff @atom:p5 @atom:p5 lj/charmm/coul/long 0.2295 3.6940224449 + pair_coeff @atom:pb @atom:pb lj/charmm/coul/long 0.2295 3.6940224449 + pair_coeff @atom:px @atom:px lj/charmm/coul/long 0.2295 3.6940224449 + pair_coeff @atom:py @atom:py lj/charmm/coul/long 0.2295 3.6940224449 + pair_coeff @atom:pc @atom:pc lj/charmm/coul/long 0.2295 3.6940224449 + pair_coeff @atom:pd @atom:pd lj/charmm/coul/long 0.2295 3.6940224449 + pair_coeff @atom:pe @atom:pe lj/charmm/coul/long 0.2295 3.6940224449 + pair_coeff @atom:pf @atom:pf lj/charmm/coul/long 0.2295 3.6940224449 + } # (end of pair_coeffs) + + write_once("In Settings") { + bond_coeff @bond:ow-hw harmonic 612.98 0.957 # TIP3P_Water 1 + bond_coeff @bond:hw-hw harmonic 15.17 1.514 # TIP3P_Water 1 + bond_coeff @bond:br-br harmonic 81.01 2.542 # SOURCE1 4 + bond_coeff @bond:br-c1 harmonic 227.01 1.787 # SOURCE2 4 0.0024 + bond_coeff @bond:br-c2 harmonic 168.91 1.893 # SOURCE1_SOURCE5 25 0.0078 + bond_coeff @bond:br-c harmonic 146.48 1.946 # SOURCE2 2 0.0285 + bond_coeff @bond:br-c3 harmonic 134.73 1.978 # SOURCE1_SOURCE5 146 0.0118 + bond_coeff @bond:br-ca harmonic 162.15 1.908 # SOURCE1_SOURCE5 462 0.0052 + bond_coeff @bond:br-cc harmonic 172.53 1.885 # SOURCE4_SOURCE5 128 0.0078 + bond_coeff @bond:br-cx harmonic 154.63 1.926 # SOURCE1_SOURCE5 11 0.0019 + bond_coeff @bond:br-n1 harmonic 141.51 1.860 # SOUECE3 1 + bond_coeff @bond:br-n2 harmonic 88.47 2.038 # SOURCE3 5 0.1082 + bond_coeff @bond:br-n harmonic 136.53 1.873 # SOURCE3 4 0.0046 + bond_coeff @bond:br-n3 harmonic 110.41 1.952 # SOURCE3 2 + bond_coeff @bond:br-n4 harmonic 118.29 1.926 # SOURCE3 3 0.0013 + bond_coeff @bond:br-na harmonic 96.95 2.002 # SOURCE3 7 0.2156 + bond_coeff @bond:br-nh harmonic 112.77 1.944 # SOURCE3 1 + bond_coeff @bond:br-no harmonic 75.65 2.101 # SOURCE3 1 + bond_coeff @bond:br-o harmonic 193.58 1.800 # SOUECE3 1 + bond_coeff @bond:br-oh harmonic 160.87 1.866 # SOURCE3 1 + bond_coeff @bond:br-os harmonic 151.88 1.887 # SOURCE3 2 + bond_coeff @bond:br-p2 harmonic 133.12 2.210 # SOURCE3 9 0.0510 + bond_coeff @bond:br-p3 harmonic 126.80 2.231 # SOURCE3 3 0.0101 + bond_coeff @bond:br-p4 harmonic 145.88 2.171 # SOUECE3 1 + bond_coeff @bond:br-p5 harmonic 137.54 2.196 # SOURCE3 3 0.0099 + bond_coeff @bond:br-s harmonic 169.20 2.220 # SOUECE3 1 + bond_coeff @bond:br-s4 harmonic 128.80 2.341 # SOURCE3 1 + bond_coeff @bond:br-s6 harmonic 171.57 2.214 # SOURCE3 3 0.0443 + bond_coeff @bond:br-sh harmonic 173.58 2.209 # SOURCE3 1 + bond_coeff @bond:br-ss harmonic 176.02 2.203 # SOURCE3 3 0.0035 + bond_coeff @bond:c1-c1 harmonic 837.28 1.198 # SOURCE1_SOURCE5 659 0.0039 + bond_coeff @bond:c1-c2 harmonic 535.85 1.307 # SOURCE1 18 + bond_coeff @bond:c1-c3 harmonic 295.86 1.467 # SOURCE1_SOURCE5 795 0.0034 + bond_coeff @bond:c1-ca harmonic 325.62 1.440 # SOUECE3 1 + bond_coeff @bond:c1-ce harmonic 518.69 1.315 # SOURCE4 6 0.0086 + bond_coeff @bond:c1-cg harmonic 776.82 1.216 # SOURCE3_SOURCE5 179 0.0036 + bond_coeff @bond:c1-ch harmonic 765.43 1.219 # SOURCE3_SOURCE5 13 0.0016 + bond_coeff @bond:c1-cl harmonic 261.49 1.631 # SOURCE2 6 0.0050 + bond_coeff @bond:c1-cx harmonic 320.55 1.444 # SOURCE1_SOURCE5 24 0.0043 + bond_coeff @bond:c1-f harmonic 482.19 1.270 # SOURCE2 2 0.0085 + bond_coeff @bond:c1-ha harmonic 433.72 1.067 # SOURCE3_SOURCE5 343 0.0013 + bond_coeff @bond:c1-hc harmonic 448.21 1.060 # SOUECE3 1 + bond_coeff @bond:c1-i harmonic 153.51 1.989 # SOURCE2 4 0.0032 + bond_coeff @bond:c1-n1 harmonic 891.54 1.153 # SOURCE1_SOURCE5 481 0.0035 + bond_coeff @bond:c1-n2 harmonic 736.75 1.197 # SOURCE3_SOURCE5 36 0.0076 + bond_coeff @bond:c1-n3 harmonic 400.99 1.347 # SOURCE2_SOURCE5 10 0.0093 + bond_coeff @bond:c1-n4 harmonic 309.65 1.417 # SOURCE3 3 0.0032 + bond_coeff @bond:c1-n harmonic 428.86 1.330 # SOUECE3 1 + bond_coeff @bond:c1-na harmonic 379.52 1.362 # SOURCE3 8 0.0034 + bond_coeff @bond:c1-ne harmonic 720.51 1.202 # SOURCE4_SOURCE5 31 0.0124 + bond_coeff @bond:c1-nf harmonic 720.51 1.202 # SOURCE4_SOURCE5 21 0.0141 + bond_coeff @bond:c1-nh harmonic 409.04 1.342 # SOURCE4_SOURCE5 33 0.0061 + bond_coeff @bond:c1-no harmonic 323.48 1.405 # SOURCE3 3 0.0005 + bond_coeff @bond:c1-o harmonic 794.98 1.172 # SOURCE2_SOURCE5 31 0.0068 + bond_coeff @bond:c1-oh harmonic 422.21 1.326 # SOURCE3 1 + bond_coeff @bond:c1-os harmonic 435.38 1.318 # SOURCE3_SOURCE5 8 0.0079 + bond_coeff @bond:c1-p2 harmonic 215.98 1.770 # SOUECE3 1 + bond_coeff @bond:c1-p3 harmonic 203.86 1.790 # SOUECE3 1 + bond_coeff @bond:c1-p4 harmonic 203.86 1.790 # SOUECE3 1 + bond_coeff @bond:c1-p5 harmonic 226.96 1.753 # SOURCE3 2 + bond_coeff @bond:c1-s2 harmonic 380.51 1.595 # SOURCE3 1 + bond_coeff @bond:c1-s harmonic 370.61 1.603 # SOURCE1_SOURCE5 37 0.0043 + bond_coeff @bond:c1-s4 harmonic 239.03 1.746 # SOURCE3 2 + bond_coeff @bond:c1-s6 harmonic 256.65 1.722 # SOURCE3 2 + bond_coeff @bond:c1-sh harmonic 291.39 1.680 # SOUECE3 1 + bond_coeff @bond:c1-ss harmonic 282.80 1.690 # SOURCE1_SOURCE5 49 0.0113 + bond_coeff @bond:c2-c2 harmonic 481.83 1.334 # SOURCE1_SOURCE5 3727 0.0053 + bond_coeff @bond:c2-c3 harmonic 255.56 1.510 # SOURCE1_SOURCE5 10204 0.0042 + bond_coeff @bond:c2-ca harmonic 398.37 1.385 # SOUECE3_SOURCE5 9 0.0149 + bond_coeff @bond:c2-cc harmonic 437.98 1.359 # SOURCE1_SOURCE5 882 0.0181 + bond_coeff @bond:c2-cd harmonic 437.98 1.359 # SOURCE1_SOURCE5 882 0.0181 + bond_coeff @bond:c2-ce harmonic 460.51 1.346 # SOURCE3_SOURCE5 3239 0.0058 + bond_coeff @bond:c2-cf harmonic 460.51 1.346 # SOURCE3_SOURCE5 3177 0.0057 + bond_coeff @bond:c2-cl harmonic 192.70 1.731 # SOURCE1_SOURCE5 290 0.0098 + bond_coeff @bond:c2-cu harmonic 500.05 1.325 # SOURCE2_SOURCE5 11 0.0010 + bond_coeff @bond:c2-cx harmonic 278.37 1.485 # SOURCE4_SOURCE5 102 0.0061 + bond_coeff @bond:c2-cy harmonic 255.91 1.509 # SOURCE4_SOURCE5 30 0.0063 + bond_coeff @bond:c2-f harmonic 368.08 1.339 # SOURCE1_SOURCE5 35 0.0085 + bond_coeff @bond:c2-h4 harmonic 394.23 1.087 # SOURCE3_SOURCE5 517 0.0028 + bond_coeff @bond:c2-h5 harmonic 386.13 1.091 # SOURCE4_SOURCE5 116 0.0021 + bond_coeff @bond:c2-ha harmonic 392.18 1.088 # SOURCE3_SOURCE5 5991 0.0019 + bond_coeff @bond:c2-hc harmonic 393.86 1.087 # SOURCE3 789 0.0046 + bond_coeff @bond:c2-hx harmonic 401.39 1.083 # SOURCE3 3 0.0008 + bond_coeff @bond:c2-i harmonic 98.09 2.170 # SOURCE3_SOURCE5 7 0.0194 + bond_coeff @bond:c2-n1 harmonic 470.94 1.306 # SOURCE3 4 0.0161 + bond_coeff @bond:c2-n2 harmonic 518.67 1.282 # SOURCE1_SOURCE5 1004 0.0051 + bond_coeff @bond:c2-n3 harmonic 412.66 1.340 # SOUECE3 1 + bond_coeff @bond:c2-n harmonic 330.19 1.399 # SOURCE3_SOURCE5 174 0.0100 + bond_coeff @bond:c2-n4 harmonic 221.45 1.512 # SOURCE3_SOURCE5 21 0.0133 + bond_coeff @bond:c2-na harmonic 327.66 1.401 # SOURCE3_SOURCE5 65 0.0179 + bond_coeff @bond:c2-nc harmonic 458.17 1.313 # SOURCE1 99 0.0095 + bond_coeff @bond:c2-nd harmonic 458.17 1.313 # SOURCE1 99 + bond_coeff @bond:c2-ne harmonic 498.75 1.292 # SOURCE3_SOURCE5 310 0.0099 + bond_coeff @bond:c2-nf harmonic 498.75 1.292 # SOURCE3_SOURCE5 273 0.0098 + bond_coeff @bond:c2-nh harmonic 345.39 1.387 # SOURCE3_SOURCE5 1559 0.0120 + bond_coeff @bond:c2-no harmonic 276.95 1.448 # SOURCE4_SOURCE5 27 0.0139 + bond_coeff @bond:c2-o harmonic 635.23 1.225 # SOURCE4_SOURCE5 35 0.0033 + bond_coeff @bond:c2-oh harmonic 402.33 1.339 # SOURCE1_SOURCE5 85 0.0126 + bond_coeff @bond:c2-os harmonic 371.26 1.360 # SOURCE1_SOURCE5 548 0.0107 + bond_coeff @bond:c2-p2 harmonic 292.48 1.669 # SOURCE3_SOURCE5 87 0.0126 + bond_coeff @bond:c2-p3 harmonic 179.93 1.834 # SOURCE3 5 0.0042 + bond_coeff @bond:c2-p4 harmonic 186.11 1.822 # SOUECE3 1 + bond_coeff @bond:c2-p5 harmonic 166.18 1.863 # SOURCE4_SOURCE5 15 0.0083 + bond_coeff @bond:c2-pe harmonic 275.11 1.689 # SOURCE3_SOURCE5 60 0.0472 + bond_coeff @bond:c2-pf harmonic 275.11 1.689 # SOURCE3_SOURCE5 8 0.0019 + bond_coeff @bond:c2-s2 harmonic 362.64 1.610 # SOURCE2 1 + bond_coeff @bond:c2-s harmonic 247.65 1.734 # SOURCE3 4 0.0034 + bond_coeff @bond:c2-s4 harmonic 229.42 1.760 # SOUECE3 1 + bond_coeff @bond:c2-s6 harmonic 229.42 1.760 # SOUECE3 1 + bond_coeff @bond:c2-sh harmonic 215.23 1.782 # SOURCE4_SOURCE5 13 0.0077 + bond_coeff @bond:c2-ss harmonic 246.19 1.736 # SOURCE1 209 0.0155 + bond_coeff @bond:c3-c3 harmonic 232.52 1.538 # SOURCE1_SOURCE5 88072 0.0058 + bond_coeff @bond:c3-ca harmonic 250.32 1.516 # SOURCE1_SOURCE5 10699 0.0054 + bond_coeff @bond:c3-cc harmonic 262.64 1.502 # SOURCE3_SOURCE5 3926 0.0049 + bond_coeff @bond:c3-cd harmonic 262.64 1.502 # SOURCE3_SOURCE5 3926 0.0049 + bond_coeff @bond:c3-ce harmonic 250.06 1.516 # SOURCE3_SOURCE5 1210 0.0060 + bond_coeff @bond:c3-cf harmonic 250.23 1.516 # SOURCE3_SOURCE5 345 0.0071 + bond_coeff @bond:c3-cl harmonic 155.52 1.804 # SOURCE1_SOURCE5 1173 0.0119 + bond_coeff @bond:c3-cu harmonic 284.82 1.478 # SOURCE1 7 + bond_coeff @bond:c3-cv harmonic 274.17 1.489 # SOURCE1 11 + bond_coeff @bond:c3-cx harmonic 247.95 1.518 # SOURCE1_SOURCE5 1561 0.0054 + bond_coeff @bond:c3-cy harmonic 236.93 1.532 # SOURCE1_SOURCE5 522 0.0055 + bond_coeff @bond:c3-f harmonic 352.65 1.350 # SOURCE1_SOURCE5 2188 0.0139 + bond_coeff @bond:c3-h1 harmonic 375.92 1.097 # SOURCE3_SOURCE5 112144 0.0055 + bond_coeff @bond:c3-h2 harmonic 377.33 1.096 # SOURCE3_SOURCE5 2681 0.0032 + bond_coeff @bond:c3-h3 harmonic 379.47 1.095 # SOURCE4_SOURCE5 64 0.0028 + bond_coeff @bond:c3-hc harmonic 375.92 1.097 # SOURCE3_SOURCE5 133628 0.0015 + bond_coeff @bond:c3-hx harmonic 386.49 1.091 # SOURCE3_SOURCE5 6495 0.0022 + bond_coeff @bond:c3-i harmonic 88.97 2.212 # SOURCE1_SOURCE5 35 0.0128 + bond_coeff @bond:c3-n1 harmonic 292.28 1.433 # SOURCE3_SOURCE5 7 0.0033 + bond_coeff @bond:c3-n2 harmonic 259.91 1.466 # SOURCE1_SOURCE5 816 0.0087 + bond_coeff @bond:c3-n harmonic 263.77 1.462 # SOURCE1_SOURCE5 4576 0.0061 + bond_coeff @bond:c3-n3 harmonic 261.19 1.465 # SOURCE1_SOURCE5 15206 0.0039 + bond_coeff @bond:c3-n4 harmonic 222.58 1.511 # SOURCE1_SOURCE5 2375 0.0125 + bond_coeff @bond:c3-na harmonic 262.85 1.463 # SOURCE3_SOURCE5 1732 0.0077 + bond_coeff @bond:c3-nc harmonic 269.31 1.456 # SOURCE3 9 0.0109 + bond_coeff @bond:c3-nd harmonic 269.31 1.456 # SOURCE3 9 + bond_coeff @bond:c3-nh harmonic 261.84 1.464 # SOURCE3_SOURCE5 3492 0.0064 + bond_coeff @bond:c3-no harmonic 206.37 1.533 # SOURCE1_SOURCE5 150 0.0187 + bond_coeff @bond:c3-o harmonic 438.11 1.317 # SOURCE4 8 0.0193 + bond_coeff @bond:c3-oh harmonic 293.40 1.423 # SOURCE1_SOURCE5 8884 0.0067 + bond_coeff @bond:c3-os harmonic 284.76 1.432 # SOURCE1_SOURCE5 17971 0.0103 + bond_coeff @bond:c3-p2 harmonic 169.71 1.855 # SOURCE3 9 0.0125 + bond_coeff @bond:c3-p3 harmonic 168.21 1.858 # SOURCE3_SOURCE5 221 0.0094 + bond_coeff @bond:c3-p4 harmonic 177.58 1.839 # SOURCE3_SOURCE5 45 0.0106 + bond_coeff @bond:c3-p5 harmonic 177.19 1.839 # SOURCE1_SOURCE5 408 0.0183 + bond_coeff @bond:c3-px harmonic 182.68 1.829 # SOURCE3_SOURCE5 35 0.0083 + bond_coeff @bond:c3-py harmonic 177.09 1.840 # SOURCE3_SOURCE5 39 0.0126 + bond_coeff @bond:c3-s harmonic 180.03 1.845 # SOURCE3 4 0.0185 + bond_coeff @bond:c3-s4 harmonic 187.48 1.831 # SOURCE1_SOURCE5 326 0.0096 + bond_coeff @bond:c3-s6 harmonic 200.07 1.808 # SOURCE1_SOURCE5 644 0.0143 + bond_coeff @bond:c3-sh harmonic 180.78 1.843 # SOURCE3_SOURCE5 189 0.0058 + bond_coeff @bond:c3-ss harmonic 182.96 1.839 # SOURCE1_SOURCE5 2732 0.0105 + bond_coeff @bond:c3-sx harmonic 181.64 1.842 # SOURCE3_SOURCE5 99 0.0121 + bond_coeff @bond:c3-sy harmonic 199.39 1.809 # SOURCE3_SOURCE5 162 0.0094 + bond_coeff @bond:ca-ca harmonic 378.57 1.398 # SOURCE1_SOURCE5 121206 0.0061 + bond_coeff @bond:ca-cc harmonic 308.19 1.456 # SOURCE1_SOURCE5 2424 0.0121 + bond_coeff @bond:ca-cd harmonic 308.19 1.456 # SOURCE1_SOURCE5 2424 0.0121 + bond_coeff @bond:ca-ce harmonic 286.51 1.476 # SOURCE1_SOURCE5 1750 0.0089 + bond_coeff @bond:ca-cf harmonic 286.51 1.476 # SOURCE1_SOURCE5 1750 0.0089 + bond_coeff @bond:ca-cg harmonic 334.12 1.433 # SOURCE1_SOURCE5 318 0.0029 + bond_coeff @bond:ca-ch harmonic 334.12 1.433 # SOURCE1_SOURCE5 318 0.0029 + bond_coeff @bond:ca-cl harmonic 181.97 1.750 # SOURCE1_SOURCE5 2919 0.0059 + bond_coeff @bond:ca-cp harmonic 368.44 1.406 # CORR_SOURCE5 2042 0.0049 + bond_coeff @bond:ca-cq harmonic 368.44 1.406 # CORR_SOURCE5 2042 0.0049 + bond_coeff @bond:ca-cx harmonic 273.13 1.490 # SOURCE1_SOURCE5 165 0.0091 + bond_coeff @bond:ca-cy harmonic 250.49 1.515 # SOURCE4_SOURCE5 35 0.0055 + bond_coeff @bond:ca-f harmonic 353.59 1.349 # SOURCE1_SOURCE5 1239 0.0057 + bond_coeff @bond:ca-h4 harmonic 390.15 1.089 # SOURCE3_SOURCE5 2643 0.0010 + bond_coeff @bond:ca-h5 harmonic 392.37 1.088 # SOURCE3_SOURCE5 299 0.0007 + bond_coeff @bond:ca-ha harmonic 395.72 1.086 # SOURCE3_SOURCE5 65456 0.0010 + bond_coeff @bond:ca-i harmonic 108.27 2.129 # SOURCE1_SOURCE5 61 0.0076 + bond_coeff @bond:ca-n1 harmonic 420.66 1.335 # SOURCE3_SOURCE5 6 0.0078 + bond_coeff @bond:ca-n2 harmonic 476.53 1.303 # SOURCE4 7 0.0058 + bond_coeff @bond:ca-n harmonic 315.21 1.412 # SOURCE3_SOURCE5 1254 0.0090 + bond_coeff @bond:ca-n4 harmonic 244.03 1.484 # SOURCE1_SOURCE5 28 0.0065 + bond_coeff @bond:ca-na harmonic 349.52 1.384 # SOURCE1_SOURCE5 2751 0.0095 + bond_coeff @bond:ca-nb harmonic 414.24 1.339 # SOURCE3_SOURCE5 6806 0.0055 + bond_coeff @bond:ca-nc harmonic 394.62 1.352 # SOURCE1_SOURCE5 2672 0.0030 + bond_coeff @bond:ca-nd harmonic 394.62 1.352 # SOURCE1_SOURCE5 2672 0.0030 + bond_coeff @bond:ca-ne harmonic 320.07 1.408 # SOURCE1_SOURCE5 276 0.0093 + bond_coeff @bond:ca-nf harmonic 320.07 1.408 # SOURCE1_SOURCE5 276 0.0093 + bond_coeff @bond:ca-nh harmonic 347.06 1.386 # SOURCE1_SOURCE5 2785 0.0134 + bond_coeff @bond:ca-no harmonic 257.38 1.469 # SOURCE1_SOURCE5 454 0.0049 + bond_coeff @bond:ca-o harmonic 606.45 1.236 # SOURCE4_SOURCE5 17 0.0088 + bond_coeff @bond:ca-oh harmonic 365.55 1.364 # SOURCE1_SOURCE5 3637 0.0062 + bond_coeff @bond:ca-os harmonic 357.53 1.370 # SOURCE1_SOURCE5 6900 0.0064 + bond_coeff @bond:ca-p2 harmonic 176.94 1.840 # SOUECE3 1 + bond_coeff @bond:ca-p3 harmonic 184.18 1.826 # SOURCE1_SOURCE5 156 0.0180 + bond_coeff @bond:ca-p4 harmonic 194.74 1.806 # SOUECE3 1 + bond_coeff @bond:ca-p5 harmonic 200.84 1.795 # SOURCE1_SOURCE5 577 0.0028 + bond_coeff @bond:ca-pe harmonic 182.48 1.829 # SOURCE3 10 0.0042 + bond_coeff @bond:ca-pf harmonic 182.48 1.829 # SOURCE3 10 0.0042 + bond_coeff @bond:ca-px harmonic 184.54 1.825 # SOURCE3 5 0.0168 + bond_coeff @bond:ca-py harmonic 189.18 1.816 # SOURCE4_SOURCE5 34 0.0098 + bond_coeff @bond:ca-s harmonic 244.02 1.739 # SOURCE3 2 + bond_coeff @bond:ca-s4 harmonic 211.54 1.788 # SOURCE1 51 0.0048 + bond_coeff @bond:ca-s6 harmonic 224.85 1.767 # SOURCE1_SOURCE5 258 0.0041 + bond_coeff @bond:ca-sh harmonic 215.91 1.781 # SOURCE4_SOURCE5 40 0.0053 + bond_coeff @bond:ca-ss harmonic 216.10 1.781 # SOURCE1_SOURCE5 1016 0.0068 + bond_coeff @bond:ca-sx harmonic 190.35 1.825 # SOURCE4_SOURCE5 90 0.0050 + bond_coeff @bond:ca-sy harmonic 209.78 1.791 # SOURCE3_SOURCE5 703 0.0076 + bond_coeff @bond:c-c1 harmonic 303.33 1.460 # SOUECE3 1 + bond_coeff @bond:c-c2 harmonic 368.17 1.406 # SOURCE3 2 0.0370 + bond_coeff @bond:c-c harmonic 224.38 1.548 # SOURCE1_SOURCE5 254 0.0090 + bond_coeff @bond:c-c3 harmonic 243.22 1.524 # SOURCE1_SOURCE5 12697 0.0077 + bond_coeff @bond:c-ca harmonic 272.66 1.491 # SOURCE1_SOURCE5 4357 0.0085 + bond_coeff @bond:c-cc harmonic 295.35 1.468 # SOURCE3_SOURCE5 1864 0.0130 + bond_coeff @bond:cc-cc harmonic 340.18 1.428 # SOURCE1_SOURCE5 4559 0.0096 + bond_coeff @bond:cc-cd harmonic 416.13 1.373 # SOURCE3_SOURCE5 8451 0.0091 + bond_coeff @bond:cc-ce harmonic 309.82 1.454 # CORR_SOURCE5 396 0.0089 + bond_coeff @bond:cc-cf harmonic 427.69 1.366 # CORR_SOURCE5 156 0.0107 + bond_coeff @bond:cc-cg harmonic 342.76 1.426 # SOURCE1_SOURCE5 109 0.0049 + bond_coeff @bond:cc-ch harmonic 341.16 1.427 # SOURCE1 560 + bond_coeff @bond:cc-cl harmonic 190.08 1.735 # CORR_SOURCE5 137 0.0076 + bond_coeff @bond:cc-cx harmonic 290.53 1.472 # CORR_SOURCE5 37 0.0035 + bond_coeff @bond:c-cd harmonic 295.35 1.468 # SOURCE3_SOURCE5 1864 0.0130 + bond_coeff @bond:c-ce harmonic 280.40 1.482 # SOURCE1_SOURCE5 3022 0.0115 + bond_coeff @bond:c-cf harmonic 280.40 1.482 # SOURCE1_SOURCE5 3022 0.0115 + bond_coeff @bond:cc-f harmonic 364.99 1.341 # SOURCE4_SOURCE5 70 0.0039 + bond_coeff @bond:c-cg harmonic 312.91 1.451 # SOURCE3_SOURCE5 11 0.0089 + bond_coeff @bond:c-ch harmonic 312.91 1.451 # SOURCE3_SOURCE5 11 0.0089 + bond_coeff @bond:cc-h4 harmonic 403.88 1.082 # SOURCE3_SOURCE5 4457 0.0016 + bond_coeff @bond:cc-h5 harmonic 403.49 1.082 # SOURCE3_SOURCE5 879 0.0012 + bond_coeff @bond:cc-ha harmonic 400.06 1.084 # SOURCE3_SOURCE5 4706 0.0018 + bond_coeff @bond:c-cl harmonic 156.23 1.803 # SOURCE3_SOURCE5 16 0.0187 + bond_coeff @bond:cc-n2 harmonic 500.74 1.290 # CORR_SOURCE5 156 0.0074 + bond_coeff @bond:cc-n harmonic 353.83 1.381 # SOURCE3_SOURCE5 1142 0.0085 + bond_coeff @bond:cc-n4 harmonic 236.72 1.493 # SOURCE4 7 0.0148 + bond_coeff @bond:cc-na harmonic 354.49 1.380 # SOURCE3_SOURCE5 6739 0.0088 + bond_coeff @bond:cc-nc harmonic 369.10 1.369 # SOURCE1_SOURCE5 2269 0.0086 + bond_coeff @bond:cc-nd harmonic 450.71 1.317 # SOURCE3_SOURCE5 4612 0.0083 + bond_coeff @bond:cc-ne harmonic 356.61 1.379 # SOURCE4_SOURCE5 82 0.0119 + bond_coeff @bond:cc-nf harmonic 485.08 1.298 # CORR_SOURCE5 41 0.0113 + bond_coeff @bond:cc-nh harmonic 363.47 1.373 # SOURCE3_SOURCE5 976 0.0106 + bond_coeff @bond:cc-no harmonic 296.62 1.429 # SOURCE4_SOURCE5 386 0.0074 + bond_coeff @bond:cc-oh harmonic 389.45 1.347 # CORR_SOURCE5 248 0.0073 + bond_coeff @bond:cc-os harmonic 367.90 1.362 # SOURCE3_SOURCE5 1859 0.0083 + bond_coeff @bond:cc-pd harmonic 240.75 1.733 # SOURCE3 84 0.0161 + bond_coeff @bond:cc-sh harmonic 223.28 1.769 # SOURCE4_SOURCE5 22 0.0030 + bond_coeff @bond:cc-ss harmonic 231.98 1.756 # SOURCE3_SOURCE5 2011 0.0134 + bond_coeff @bond:cc-sx harmonic 198.26 1.811 # SOURCE4_SOURCE5 44 0.0033 + bond_coeff @bond:cc-sy harmonic 214.05 1.784 # CORR_SOURCE5 73 0.0082 + bond_coeff @bond:c-cu harmonic 360.20 1.412 # SOURCE2 1 + bond_coeff @bond:c-cx harmonic 265.90 1.498 # SOURCE1_SOURCE5 246 0.0109 + bond_coeff @bond:c-cy harmonic 222.38 1.551 # SOURCE1_SOURCE5 374 0.0059 + bond_coeff @bond:cd-cd harmonic 340.18 1.428 # SOURCE1_SOURCE5 4559 0.0096 + bond_coeff @bond:cd-ce harmonic 427.69 1.366 # CORR_SOURCE5 156 0.0107 + bond_coeff @bond:cd-cf harmonic 309.82 1.454 # CORR_SOURCE5 396 0.0089 + bond_coeff @bond:cd-cg harmonic 341.16 1.427 # SOURCE1 560 + bond_coeff @bond:cd-ch harmonic 342.76 1.426 # SOURCE1_SOURCE5 109 0.0049 + bond_coeff @bond:cd-cl harmonic 190.08 1.735 # CORR_SOURCE5 137 0.0076 + bond_coeff @bond:cd-cx harmonic 290.53 1.472 # CORR_SOURCE5 37 0.0035 + bond_coeff @bond:cd-cy harmonic 259.34 1.505 # SOURCE4_SOURCE5 21 0.0007 + bond_coeff @bond:cd-h4 harmonic 403.88 1.082 # SOURCE3_SOURCE5 4457 0.0016 + bond_coeff @bond:cd-h5 harmonic 403.68 1.082 # SOURCE3_SOURCE5 578 0.0013 + bond_coeff @bond:cd-ha harmonic 400.06 1.084 # SOURCE3_SOURCE5 4706 0.0018 + bond_coeff @bond:cd-n2 harmonic 500.74 1.290 # CORR_SOURCE5 156 0.0074 + bond_coeff @bond:cd-n harmonic 353.83 1.381 # SOURCE3_SOURCE5 1142 0.0085 + bond_coeff @bond:cd-na harmonic 354.49 1.380 # SOURCE3_SOURCE5 6739 0.0088 + bond_coeff @bond:cd-nc harmonic 450.71 1.317 # SOURCE3_SOURCE5 4612 0.0083 + bond_coeff @bond:cd-nd harmonic 369.10 1.369 # SOURCE1_SOURCE5 2269 0.0086 + bond_coeff @bond:cd-ne harmonic 485.08 1.298 # CORR_SOURCE5 41 0.0113 + bond_coeff @bond:cd-nh harmonic 363.47 1.373 # SOURCE3_SOURCE5 976 0.0106 + bond_coeff @bond:cd-oh harmonic 389.45 1.347 # CORR_SOURCE5 248 0.0073 + bond_coeff @bond:cd-os harmonic 367.90 1.362 # SOURCE3_SOURCE5 1859 0.0083 + bond_coeff @bond:cd-pc harmonic 240.75 1.733 # SOURCE3 84 + bond_coeff @bond:cd-ss harmonic 231.98 1.756 # SOURCE3_SOURCE5 2011 0.0134 + bond_coeff @bond:cd-sy harmonic 214.05 1.784 # CORR_SOURCE5 73 0.0082 + bond_coeff @bond:ce-ce harmonic 306.13 1.457 # SOURCE1_SOURCE5 1000 0.0092 + bond_coeff @bond:ce-cf harmonic 452.16 1.351 # SOURCE1_SOURCE5 1908 0.0059 + bond_coeff @bond:ce-cg harmonic 341.16 1.427 # SOURCE1_SOURCE5 238 0.0053 + bond_coeff @bond:ce-ch harmonic 336.29 1.431 # SOURCE1 22 + bond_coeff @bond:ce-cl harmonic 174.72 1.764 # SOURCE4_SOURCE5 90 0.0111 + bond_coeff @bond:ce-cx harmonic 261.83 1.502 # SOURCE4_SOURCE5 31 0.0075 + bond_coeff @bond:ce-cy harmonic 250.06 1.516 # SOURCE4_SOURCE5 53 0.0043 + bond_coeff @bond:ce-h4 harmonic 385.40 1.092 # CORR_SOURCE5 315 0.0033 + bond_coeff @bond:ce-ha harmonic 391.44 1.088 # SOURCE3_SOURCE5 2751 0.0014 + bond_coeff @bond:ce-n1 harmonic 461.59 1.311 # CORR_SOURCE5 16 0.0049 + bond_coeff @bond:ce-n2 harmonic 506.97 1.287 # SOURCE1_SOURCE5 896 0.0038 + bond_coeff @bond:ce-n harmonic 301.69 1.424 # CORR_SOURCE5 209 0.0059 + bond_coeff @bond:ce-na harmonic 305.30 1.421 # SOURCE4_SOURCE5 11 0.0050 + bond_coeff @bond:ce-ne harmonic 336.57 1.394 # SOURCE3_SOURCE5 69 0.0151 + bond_coeff @bond:ce-nf harmonic 489.14 1.296 # CORR_SOURCE5 101 0.0097 + bond_coeff @bond:ce-nh harmonic 341.71 1.390 # CORR_SOURCE5 300 0.0133 + bond_coeff @bond:ce-oh harmonic 384.73 1.350 # CORR_SOURCE5 58 0.0102 + bond_coeff @bond:ce-os harmonic 355.66 1.371 # CORR_SOURCE5 96 0.0128 + bond_coeff @bond:ce-p2 harmonic 190.37 1.814 # SOUECE3 1 + bond_coeff @bond:ce-pe harmonic 188.22 1.818 # SOURCE3 8 0.0108 + bond_coeff @bond:ce-px harmonic 186.64 1.821 # SOURCE3 6 0.0046 + bond_coeff @bond:ce-py harmonic 194.96 1.806 # SOURCE3_SOURCE5 22 0.0142 + bond_coeff @bond:ce-s harmonic 291.39 1.680 # SOUECE3 1 + bond_coeff @bond:ce-ss harmonic 215.60 1.781 # SOURCE4_SOURCE5 56 0.0098 + bond_coeff @bond:ce-sx harmonic 193.92 1.819 # SOURCE3_SOURCE5 30 0.0101 + bond_coeff @bond:ce-sy harmonic 211.48 1.788 # SOURCE3_SOURCE5 41 0.0169 + bond_coeff @bond:c-f harmonic 387.77 1.325 # SOURCE2 6 0.0147 + bond_coeff @bond:cf-cf harmonic 306.13 1.457 # SOURCE1_SOURCE5 1000 0.0092 + bond_coeff @bond:cf-cg harmonic 336.29 1.431 # SOURCE1 22 + bond_coeff @bond:cf-ch harmonic 341.16 1.427 # SOURCE1_SOURCE5 238 0.0053 + bond_coeff @bond:cf-h4 harmonic 385.40 1.092 # CORR_SOURCE5 315 0.0033 + bond_coeff @bond:cf-ha harmonic 391.44 1.088 # SOURCE3_SOURCE5 2751 0.0014 + bond_coeff @bond:cf-n1 harmonic 461.59 1.311 # CORR_SOURCE5 16 0.0049 + bond_coeff @bond:cf-n2 harmonic 506.97 1.287 # SOURCE1_SOURCE5 896 0.0038 + bond_coeff @bond:cf-n harmonic 301.69 1.424 # CORR_SOURCE5 209 0.0059 + bond_coeff @bond:cf-ne harmonic 489.14 1.296 # CORR_SOURCE5 101 0.0097 + bond_coeff @bond:cf-nf harmonic 336.57 1.394 # SOURCE3_SOURCE5 62 0.0156 + bond_coeff @bond:cf-nh harmonic 341.71 1.390 # CORR_SOURCE5 300 0.0133 + bond_coeff @bond:cf-oh harmonic 384.73 1.350 # CORR_SOURCE5 58 0.0102 + bond_coeff @bond:cf-os harmonic 355.66 1.371 # CORR_SOURCE5 96 0.0128 + bond_coeff @bond:cf-p2 harmonic 190.37 1.814 # SOUECE3 1 + bond_coeff @bond:cf-pf harmonic 188.22 1.818 # SOURCE3 8 + bond_coeff @bond:cf-px harmonic 186.64 1.821 # SOURCE3 6 + bond_coeff @bond:cf-py harmonic 194.96 1.806 # SOURCE3_SOURCE5 17 0.0171 + bond_coeff @bond:cf-s harmonic 291.39 1.680 # SOUECE3 1 + bond_coeff @bond:cf-sx harmonic 193.92 1.819 # SOURCE3_SOURCE5 25 0.0105 + bond_coeff @bond:cf-sy harmonic 211.48 1.788 # SOURCE3_SOURCE5 36 0.0177 + bond_coeff @bond:cg-cg harmonic 421.79 1.369 # SOURCE1_SOURCE5 62 0.0025 + bond_coeff @bond:cg-ch harmonic 811.54 1.206 # SOURCE1_SOURCE5 156 0.0023 + bond_coeff @bond:cg-n1 harmonic 879.32 1.157 # SOURCE1_SOURCE5 879 0.0015 + bond_coeff @bond:cg-ne harmonic 435.38 1.326 # SOURCE4_SOURCE5 68 0.0013 + bond_coeff @bond:cg-pe harmonic 339.39 1.621 # SOURCE3 11 0.2008 + bond_coeff @bond:c-h4 harmonic 350.25 1.112 # SOURCE4_SOURCE5 506 0.0025 + bond_coeff @bond:c-h5 harmonic 361.80 1.105 # SOURCE4_SOURCE5 163 0.0038 + bond_coeff @bond:c-ha harmonic 368.78 1.101 # SOURCE3 53 0.0102 + bond_coeff @bond:ch-ch harmonic 421.79 1.369 # SOURCE1_SOURCE5 62 0.0025 + bond_coeff @bond:ch-n1 harmonic 879.32 1.157 # SOURCE1_SOURCE5 879 0.0015 + bond_coeff @bond:ch-nf harmonic 435.38 1.326 # SOURCE4_SOURCE5 51 0.0014 + bond_coeff @bond:ch-pf harmonic 339.39 1.621 # SOURCE3 11 + bond_coeff @bond:c-i harmonic 89.53 2.209 # SOURCE3 4 0.0365 + bond_coeff @bond:cl-cl harmonic 79.29 2.267 # SOURCE1 2 0.0395 + bond_coeff @bond:cl-cx harmonic 172.69 1.768 # SOURCE1_SOURCE5 42 0.0071 + bond_coeff @bond:cl-cy harmonic 161.13 1.792 # SOURCE2_SOURCE5 28 0.0103 + bond_coeff @bond:cl-n1 harmonic 217.59 1.630 # SOUECE3 1 + bond_coeff @bond:cl-n2 harmonic 123.81 1.819 # SOURCE3 6 0.1020 + bond_coeff @bond:cl-n3 harmonic 139.52 1.777 # SOURCE4_SOURCE5 16 0.0044 + bond_coeff @bond:cl-n harmonic 167.01 1.716 # SOURCE4_SOURCE5 17 0.0049 + bond_coeff @bond:cl-n4 harmonic 149.71 1.753 # SOURCE3 4 0.0098 + bond_coeff @bond:cl-na harmonic 118.36 1.835 # SOURCE3 7 0.2083 + bond_coeff @bond:cl-nh harmonic 145.39 1.763 # SOURCE3 1 + bond_coeff @bond:cl-no harmonic 116.71 1.840 # SOURCE2 1 + bond_coeff @bond:cl-o harmonic 331.00 1.483 # SOURCE3 4 + bond_coeff @bond:cl-oh harmonic 169.11 1.690 # SOURCE2 1 + bond_coeff @bond:cl-os harmonic 149.95 1.730 # SOURCE3 4 + bond_coeff @bond:cl-p2 harmonic 143.51 2.070 # SOURCE3 6 0.0108 + bond_coeff @bond:cl-p3 harmonic 167.79 2.008 # SOURCE1 111 + bond_coeff @bond:cl-p4 harmonic 167.79 2.008 # SOURCE1 111 + bond_coeff @bond:cl-p5 harmonic 167.79 2.008 # SOURCE1 111 + bond_coeff @bond:cl-pb harmonic 172.59 1.997 # SOURCE1 46 + bond_coeff @bond:cl-s harmonic 230.41 2.072 # SOURCE1 6 + bond_coeff @bond:cl-s2 harmonic 185.62 2.161 # SOURCE2 1 + bond_coeff @bond:cl-s4 harmonic 230.41 2.072 # SOURCE1 6 + bond_coeff @bond:cl-s6 harmonic 230.41 2.072 # SOURCE1 6 + bond_coeff @bond:cl-sh harmonic 230.41 2.072 # SOURCE1 6 + bond_coeff @bond:cl-ss harmonic 230.41 2.072 # SOURCE1 6 + bond_coeff @bond:cl-sx harmonic 230.41 2.072 # SOURCE1 6 + bond_coeff @bond:cl-sy harmonic 230.41 2.072 # SOURCE1 6 + bond_coeff @bond:c-n2 harmonic 306.30 1.420 # SOUECE3 1 + bond_coeff @bond:c-n4 harmonic 197.87 1.546 # SOURCE3 4 0.0388 + bond_coeff @bond:c-n harmonic 356.21 1.379 # SOURCE1_SOURCE5 9463 0.0137 + bond_coeff @bond:c-nc harmonic 346.03 1.387 # CORR_SOURCE5 179 0.0121 + bond_coeff @bond:c-nd harmonic 346.03 1.387 # CORR_SOURCE5 179 0.0121 + bond_coeff @bond:c-ne harmonic 340.70 1.391 # CORR_SOURCE5 87 0.0140 + bond_coeff @bond:c-nf harmonic 340.70 1.391 # CORR_SOURCE5 87 0.0140 + bond_coeff @bond:c-no harmonic 201.86 1.540 # SOUECE3 1 + bond_coeff @bond:c-o harmonic 652.57 1.218 # SOURCE1_SOURCE5 27083 0.0110 + bond_coeff @bond:c-oh harmonic 383.13 1.351 # SOURCE1_SOURCE5 3610 0.0055 + bond_coeff @bond:c-os harmonic 372.94 1.358 # SOURCE1_SOURCE5 5555 0.0163 + bond_coeff @bond:c-p2 harmonic 150.04 1.900 # SOUECE3 1 + bond_coeff @bond:c-p3 harmonic 157.13 1.883 # SOURCE3 6 0.0129 + bond_coeff @bond:c-p4 harmonic 158.42 1.880 # SOUECE3 1 + bond_coeff @bond:c-p5 harmonic 157.64 1.882 # SOURCE4_SOURCE5 25 0.0081 + bond_coeff @bond:cp-cp harmonic 277.60 1.485 # SOURCE1_SOURCE5 728 0.0059 + bond_coeff @bond:cp-cq harmonic 309.60 1.454 # SOURCE4_SOURCE5 34 0.0159 + bond_coeff @bond:c-pe harmonic 145.65 1.911 # SOURCE3 3 0.0025 + bond_coeff @bond:c-pf harmonic 145.65 1.911 # SOURCE3 3 + bond_coeff @bond:cp-na harmonic 349.52 1.384 # SOURCE4 7 0.0181 + bond_coeff @bond:cp-nb harmonic 414.72 1.339 # SOURCE4_SOURCE5 190 0.0068 + bond_coeff @bond:c-px harmonic 148.42 1.904 # SOURCE3 1 + bond_coeff @bond:c-py harmonic 164.17 1.867 # SOURCE3_SOURCE5 17 0.0103 + bond_coeff @bond:cq-cq harmonic 277.60 1.485 # SOURCE1_SOURCE5 728 0.0059 + bond_coeff @bond:c-s harmonic 298.35 1.672 # SOURCE1_SOURCE5 875 0.0114 + bond_coeff @bond:c-s4 harmonic 167.99 1.870 # SOUECE3 1 + bond_coeff @bond:c-s6 harmonic 167.99 1.870 # SOUECE3 1 + bond_coeff @bond:c-sh harmonic 206.09 1.797 # SOURCE3_SOURCE5 39 0.0097 + bond_coeff @bond:c-ss harmonic 204.39 1.800 # SOURCE1_SOURCE5 249 0.0157 + bond_coeff @bond:c-sx harmonic 161.23 1.885 # SOURCE3 5 0.0088 + bond_coeff @bond:c-sy harmonic 170.32 1.865 # SOURCE3 5 0.0085 + bond_coeff @bond:cu-cu harmonic 564.10 1.294 # SOURCE1 10 + bond_coeff @bond:cu-cx harmonic 277.70 1.485 # SOURCE1_SOURCE5 31 0.0066 + bond_coeff @bond:cu-ha harmonic 405.22 1.081 # SOURCE2 3 0.0111 + bond_coeff @bond:cv-cv harmonic 480.53 1.335 # SOURCE1 25 + bond_coeff @bond:cv-cy harmonic 250.66 1.515 # SOURCE1_SOURCE5 19 0.0057 + bond_coeff @bond:cv-ha harmonic 393.86 1.087 # SOURCE3 2 + bond_coeff @bond:cx-cv harmonic 256.87 1.508 # SOURCE1 2536 + bond_coeff @bond:cx-cx harmonic 260.31 1.504 # SOURCE1_SOURCE5 2781 0.0136 + bond_coeff @bond:cx-cy harmonic 250.83 1.515 # SOURCE3 2 + bond_coeff @bond:cx-f harmonic 339.01 1.360 # SOURCE2_SOURCE5 10 0.0045 + bond_coeff @bond:cx-h1 harmonic 390.15 1.089 # SOURCE3_SOURCE5 1142 0.0013 + bond_coeff @bond:cx-h2 harmonic 395.91 1.086 # SOURCE3_SOURCE5 5 0.0014 + bond_coeff @bond:cx-hc harmonic 393.86 1.087 # SOURCE3_SOURCE5 1702 0.0009 + bond_coeff @bond:cx-hx harmonic 397.60 1.085 # SOURCE4_SOURCE5 19 0.0002 + bond_coeff @bond:cx-n2 harmonic 245.89 1.482 # SOURCE3 2 + bond_coeff @bond:cx-n3 harmonic 256.30 1.470 # SOURCE1_SOURCE5 227 0.0050 + bond_coeff @bond:cx-n harmonic 283.33 1.442 # SOURCE4_SOURCE5 39 0.0103 + bond_coeff @bond:cx-na harmonic 264.52 1.461 # SOURCE4_SOURCE5 49 0.0026 + bond_coeff @bond:cx-nh harmonic 270.65 1.455 # SOURCE4_SOURCE5 192 0.0076 + bond_coeff @bond:cx-oh harmonic 369.30 1.361 # SOURCE3 3 0.0018 + bond_coeff @bond:cx-os harmonic 279.50 1.437 # SOURCE3_SOURCE5 703 0.0071 + bond_coeff @bond:cx-p3 harmonic 164.17 1.867 # SOURCE2 1 + bond_coeff @bond:cx-s4 harmonic 192.02 1.822 # SOURCE2 1 + bond_coeff @bond:cx-s6 harmonic 249.87 1.731 # SOURCE2 1 + bond_coeff @bond:cx-ss harmonic 186.43 1.833 # SOURCE2_SOURCE5 5 0.0011 + bond_coeff @bond:cy-cy harmonic 218.51 1.556 # SOURCE1_SOURCE5 1665 0.0053 + bond_coeff @bond:cy-f harmonic 344.83 1.356 # SOURCE4_SOURCE5 36 0.0095 + bond_coeff @bond:cy-h1 harmonic 379.11 1.095 # SOURCE3_SOURCE5 477 0.0019 + bond_coeff @bond:cy-h2 harmonic 382.87 1.093 # SOURCE4_SOURCE5 210 0.0017 + bond_coeff @bond:cy-hc harmonic 379.47 1.095 # SOURCE3_SOURCE5 840 0.0011 + bond_coeff @bond:cy-n harmonic 256.66 1.470 # SOURCE4_SOURCE5 618 0.0101 + bond_coeff @bond:cy-n3 harmonic 248.73 1.479 # SOURCE1_SOURCE5 67 0.0083 + bond_coeff @bond:cy-oh harmonic 305.23 1.412 # SOURCE3_SOURCE5 13 0.0082 + bond_coeff @bond:cy-os harmonic 277.32 1.439 # SOURCE4_SOURCE5 81 0.0141 + bond_coeff @bond:cy-s6 harmonic 177.00 1.851 # SOURCE4_SOURCE5 39 0.0142 + bond_coeff @bond:cy-ss harmonic 177.89 1.849 # SOURCE4_SOURCE5 201 0.0086 + bond_coeff @bond:cz-nh harmonic 414.24 1.339 # SOURCE4_SOURCE5 85 0.0046 + bond_coeff @bond:f-n1 harmonic 167.33 1.410 # SOUECE3 1 + bond_coeff @bond:f-n2 harmonic 148.04 1.444 # SOURCE3 5 0.0377 + bond_coeff @bond:f-n3 harmonic 169.79 1.406 # SOURCE1 9 + bond_coeff @bond:f-n harmonic 175.49 1.397 # SOURCE3 3 0.0112 + bond_coeff @bond:f-n4 harmonic 246.14 1.308 # SOURCE3 2 + bond_coeff @bond:f-na harmonic 166.72 1.411 # SOURCE3 7 0.0611 + bond_coeff @bond:f-nh harmonic 157.90 1.426 # SOURCE3 3 0.0085 + bond_coeff @bond:f-no harmonic 136.49 1.467 # SOURCE2 1 + bond_coeff @bond:f-o harmonic 198.07 1.330 # SOUECE3 1 + bond_coeff @bond:f-oh harmonic 129.79 1.444 # SOURCE3 1 + bond_coeff @bond:f-os harmonic 139.94 1.423 # SOURCE3 2 + bond_coeff @bond:f-p2 harmonic 522.31 1.536 # SOURCE3 7 0.2054 + bond_coeff @bond:f-p3 harmonic 454.68 1.578 # SOURCE2 8 0.0103 + bond_coeff @bond:f-p4 harmonic 437.32 1.590 # SOUECE3 1 + bond_coeff @bond:f-p5 harmonic 442.73 1.586 # SOURCE1_SOURCE5 18 0.0161 + bond_coeff @bond:f-s2 harmonic 363.47 1.643 # SOURCE2 1 + bond_coeff @bond:f-s harmonic 344.73 1.660 # SOUECE3 1 + bond_coeff @bond:f-s4 harmonic 428.80 1.591 # SOURCE2 4 0.0065 + bond_coeff @bond:f-s6 harmonic 400.85 1.612 # SOURCE2_SOURCE5 15 0.0133 + bond_coeff @bond:f-sh harmonic 356.72 1.649 # SOURCE3 1 + bond_coeff @bond:f-ss harmonic 373.87 1.634 # SOURCE3 3 0.0156 + bond_coeff @bond:hn-n1 harmonic 605.55 0.986 # SOURCE2 1 + bond_coeff @bond:hn-n2 harmonic 501.09 1.023 # SOURCE3_SOURCE5 732 0.0030 + bond_coeff @bond:hn-n3 harmonic 511.28 1.019 # SOURCE3_SOURCE5 5944 0.0012 + bond_coeff @bond:hn-n harmonic 527.31 1.013 # SOURCE3_SOURCE5 7593 0.0034 + bond_coeff @bond:hn-n4 harmonic 482.87 1.030 # SOURCE3_SOURCE5 756 0.0122 + bond_coeff @bond:hn-na harmonic 535.14 1.010 # SOURCE3_SOURCE5 1755 0.0019 + bond_coeff @bond:hn-nh harmonic 529.46 1.012 # SOURCE3_SOURCE5 7230 0.0022 + bond_coeff @bond:hn-no harmonic 501.09 1.023 # SOURCE3 1 + bond_coeff @bond:ho-o harmonic 540.28 0.981 # SOURCE3 1 + bond_coeff @bond:ho-oh harmonic 563.51 0.973 # SOURCE3_SOURCE5 21237 0.0034 + bond_coeff @bond:hp-p2 harmonic 266.54 1.336 # SOURCE3 87 0.1706 + bond_coeff @bond:hp-p3 harmonic 200.57 1.412 # SOURCE3_SOURCE5 123 0.0510 + bond_coeff @bond:hp-p4 harmonic 253.60 1.349 # SOURCE3 17 0.1577 + bond_coeff @bond:hp-p5 harmonic 196.39 1.418 # SOURCE3_SOURCE5 31 0.0077 + bond_coeff @bond:hs-s harmonic 288.27 1.353 # SOURCE3 1 + bond_coeff @bond:hs-s4 harmonic 265.33 1.375 # SOURCE3 5 0.0004 + bond_coeff @bond:hs-s6 harmonic 281.78 1.359 # SOURCE3 5 0.0015 + bond_coeff @bond:hs-sh harmonic 294.59 1.347 # SOURCE3_SOURCE5 477 0.0118 + bond_coeff @bond:i-i harmonic 50.27 2.917 # SOURCE1 1 + bond_coeff @bond:i-n1 harmonic 105.51 2.060 # SOUECE3 1 + bond_coeff @bond:i-n2 harmonic 59.35 2.304 # SOURCE3 6 0.1186 + bond_coeff @bond:i-n harmonic 96.05 2.098 # SOURCE3 5 0.0156 + bond_coeff @bond:i-n3 harmonic 77.95 2.185 # SOURCE3 3 0.0437 + bond_coeff @bond:i-n4 harmonic 83.69 2.155 # SOURCE3 3 0.0168 + bond_coeff @bond:i-na harmonic 89.07 2.129 # SOURCE3 8 0.1276 + bond_coeff @bond:i-nh harmonic 84.69 2.150 # SOURCE3 1 + bond_coeff @bond:i-no harmonic 70.03 2.231 # SOURCE3 1 + bond_coeff @bond:i-o harmonic 106.33 1.980 # SOUECE3 1 + bond_coeff @bond:i-oh harmonic 78.38 2.101 # SOURCE3 2 + bond_coeff @bond:i-os harmonic 73.23 2.129 # SOURCE3 3 0.0146 + bond_coeff @bond:i-p2 harmonic 66.30 2.643 # SOURCE3 6 0.0297 + bond_coeff @bond:i-p3 harmonic 77.18 2.566 # SOURCE3 3 0.0016 + bond_coeff @bond:i-p4 harmonic 120.75 2.352 # SOURCE3 4 0.2600 + bond_coeff @bond:i-p5 harmonic 72.70 2.596 # SOURCE3 3 0.0143 + bond_coeff @bond:i-s harmonic 115.77 2.430 # SOUECE3 1 + bond_coeff @bond:i-s4 harmonic 49.21 2.870 # SOUECE3 1 + bond_coeff @bond:i-s6 harmonic 49.21 2.870 # SOURCE3 1 + bond_coeff @bond:i-sh harmonic 88.56 2.560 # SOUECE3 1 + bond_coeff @bond:i-ss harmonic 86.63 2.571 # SOURCE3 3 0.0065 + bond_coeff @bond:n1-n1 harmonic 750.98 1.135 # SOURCE1_SOURCE5 78 0.0044 + bond_coeff @bond:n1-n2 harmonic 494.86 1.230 # SOURCE1_SOURCE5 36 0.0029 + bond_coeff @bond:n1-n3 harmonic 307.19 1.350 # SOUECE3 1 + bond_coeff @bond:n1-n4 harmonic 295.75 1.360 # SOUECE3 1 + bond_coeff @bond:n1-na harmonic 307.19 1.350 # SOUECE3 1 + bond_coeff @bond:n1-nc harmonic 525.73 1.216 # SOURCE1 38 + bond_coeff @bond:n1-nd harmonic 525.73 1.216 # SOURCE1 38 + bond_coeff @bond:n1-ne harmonic 452.52 1.252 # SOURCE2 1 + bond_coeff @bond:n1-nf harmonic 452.52 1.252 # SOURCE2 1 + bond_coeff @bond:n1-nh harmonic 319.16 1.340 # SOUECE3 1 + bond_coeff @bond:n1-no harmonic 254.81 1.400 # SOUECE3 1 + bond_coeff @bond:n1-o harmonic 298.40 1.277 # SOURCE3 5 0.0438 + bond_coeff @bond:n1-oh harmonic 272.24 1.300 # SOUECE3 1 + bond_coeff @bond:n1-os harmonic 261.73 1.310 # SOUECE3 1 + bond_coeff @bond:n1-p2 harmonic 268.95 1.678 # SOURCE3 2 0.0282 + bond_coeff @bond:n1-p3 harmonic 284.28 1.660 # SOUECE3 1 + bond_coeff @bond:n1-p4 harmonic 267.31 1.680 # SOURCE3 0 + bond_coeff @bond:n1-p5 harmonic 377.36 1.571 # SOURCE1 132 + bond_coeff @bond:n1-s2 harmonic 681.10 1.449 # SOURCE2 2 0.0010 + bond_coeff @bond:n1-s harmonic 339.70 1.659 # SOURCE3 6 0.0789 + bond_coeff @bond:n1-s4 harmonic 349.33 1.650 # SOUECE3 1 + bond_coeff @bond:n1-s6 harmonic 766.72 1.416 # SOURCE2 2 + bond_coeff @bond:n1-sh harmonic 396.29 1.610 # SOUECE3 1 + bond_coeff @bond:n1-ss harmonic 396.29 1.610 # SOUECE3 1 + bond_coeff @bond:n2-n2 harmonic 425.99 1.267 # SOURCE3_SOURCE5 40 0.0268 + bond_coeff @bond:n2-n3 harmonic 332.97 1.329 # SOURCE2 1 + bond_coeff @bond:n2-n4 harmonic 100.13 1.679 # SOURCE3 7 0.3138 + bond_coeff @bond:n2-na harmonic 287.40 1.368 # SOURCE4_SOURCE5 49 0.0087 + bond_coeff @bond:n2-nc harmonic 446.98 1.255 # SOURCE1 13 + bond_coeff @bond:n2-nd harmonic 446.98 1.255 # SOURCE1 13 + bond_coeff @bond:n2-ne harmonic 418.13 1.271 # SOURCE3_SOURCE5 57 0.0194 + bond_coeff @bond:n2-nf harmonic 418.13 1.271 # SOURCE3_SOURCE5 27 0.0074 + bond_coeff @bond:n2-nh harmonic 304.40 1.352 # SOURCE3_SOURCE5 210 0.0159 + bond_coeff @bond:n2-no harmonic 224.76 1.435 # SOURCE3_SOURCE5 15 0.0628 + bond_coeff @bond:n2-o harmonic 381.83 1.217 # SOURCE3_SOURCE5 112 0.0102 + bond_coeff @bond:n2-oh harmonic 192.13 1.391 # SOURCE1_SOURCE5 149 0.0171 + bond_coeff @bond:n2-os harmonic 184.98 1.401 # SOURCE3_SOURCE5 108 0.0101 + bond_coeff @bond:n2-p2 harmonic 338.04 1.605 # SOURCE3 35 0.0737 + bond_coeff @bond:n2-p3 harmonic 208.02 1.764 # SOURCE3 7 0.0374 + bond_coeff @bond:n2-p4 harmonic 234.05 1.724 # SOUECE3 1 + bond_coeff @bond:n2-p5 harmonic 344.61 1.599 # SOURCE1 7 + bond_coeff @bond:n2-pe harmonic 418.07 1.540 # SOURCE3 20 0.1392 + bond_coeff @bond:n2-pf harmonic 418.07 1.540 # SOURCE3 20 + bond_coeff @bond:n2-s2 harmonic 491.26 1.544 # SOURCE2_SOURCE5 11 0.0086 + bond_coeff @bond:n2-s4 harmonic 396.29 1.610 # SOUECE3 1 + bond_coeff @bond:n2-s harmonic 496.36 1.541 # SOURCE1 37 + bond_coeff @bond:n2-s6 harmonic 475.70 1.554 # SOURCE4_SOURCE5 16 0.0041 + bond_coeff @bond:n2-sh harmonic 267.45 1.738 # SOURCE3 5 0.0511 + bond_coeff @bond:n2-ss harmonic 342.87 1.656 # SOURCE1 36 + bond_coeff @bond:n3-n3 harmonic 219.29 1.442 # SOURCE1_SOURCE5 48 0.0063 + bond_coeff @bond:n3-n4 harmonic 228.50 1.430 # SOURCE1_SOURCE5 9 0.0040 + bond_coeff @bond:n3-na harmonic 236.90 1.420 # SOURCE1 68 + bond_coeff @bond:n3-nh harmonic 240.71 1.416 # SOURCE1_SOURCE5 66 0.0085 + bond_coeff @bond:n3-no harmonic 256.88 1.398 # SOURCE3_SOURCE5 19 0.0132 + bond_coeff @bond:n3-o harmonic 269.04 1.303 # SOURCE3 4 0.1217 + bond_coeff @bond:n3-oh harmonic 176.15 1.415 # SOURCE1_SOURCE5 17 0.0055 + bond_coeff @bond:n3-os harmonic 160.59 1.441 # SOURCE1_SOURCE5 84 0.0191 + bond_coeff @bond:n3-p2 harmonic 275.64 1.670 # SOUECE3 1 + bond_coeff @bond:n3-p3 harmonic 229.90 1.730 # SOURCE1 40 + bond_coeff @bond:n3-p4 harmonic 253.83 1.697 # SOURCE1 88 + bond_coeff @bond:n3-p5 harmonic 275.98 1.670 # SOURCE1_SOURCE5 680 0.0109 + bond_coeff @bond:n3-py harmonic 256.22 1.694 # SOURCE4_SOURCE5 16 0.0080 + bond_coeff @bond:n3-s harmonic 228.53 1.792 # SOURCE3 3 0.0178 + bond_coeff @bond:n3-s4 harmonic 254.85 1.754 # SOURCE3_SOURCE5 15 0.0416 + bond_coeff @bond:n3-s6 harmonic 326.04 1.672 # SOURCE1_SOURCE5 243 0.0144 + bond_coeff @bond:n3-sh harmonic 266.66 1.739 # SOURCE3 3 0.0154 + bond_coeff @bond:n3-ss harmonic 279.14 1.724 # SOURCE3_SOURCE5 25 0.0197 + bond_coeff @bond:n3-sy harmonic 303.10 1.696 # SOURCE4_SOURCE5 511 0.0083 + bond_coeff @bond:n4-n4 harmonic 188.86 1.484 # SOURCE3 4 0.0089 + bond_coeff @bond:n4-na harmonic 224.44 1.435 # SOURCE3 9 0.0390 + bond_coeff @bond:n4-nh harmonic 201.09 1.466 # SOURCE3 5 0.0108 + bond_coeff @bond:n4-no harmonic 191.50 1.480 # SOUECE3 1 + bond_coeff @bond:n4-o harmonic 215.08 1.361 # SOURCE3 3 0.0041 + bond_coeff @bond:n4-oh harmonic 186.01 1.400 # SOURCE3 3 0.0115 + bond_coeff @bond:n4-os harmonic 172.30 1.421 # SOURCE3 5 0.0249 + bond_coeff @bond:n4-p2 harmonic 126.91 1.942 # SOURCE3 10 0.0643 + bond_coeff @bond:n4-p3 harmonic 149.95 1.880 # SOURCE3 5 0.0146 + bond_coeff @bond:n4-p4 harmonic 128.26 1.938 # SOURCE3 1 + bond_coeff @bond:n4-p5 harmonic 172.23 1.830 # SOURCE3 5 0.0087 + bond_coeff @bond:n4-py harmonic 141.24 1.902 # SOURCE3 4 + bond_coeff @bond:n4-s harmonic 204.02 1.832 # SOURCE3 3 0.0004 + bond_coeff @bond:n4-s4 harmonic 139.73 1.972 # SOURCE3 3 0.0198 + bond_coeff @bond:n4-s6 harmonic 162.90 1.914 # SOURCE3 5 0.0432 + bond_coeff @bond:n4-sh harmonic 216.47 1.811 # SOURCE3 3 0.0027 + bond_coeff @bond:n4-ss harmonic 215.86 1.812 # SOURCE3 5 0.0064 + bond_coeff @bond:na-na harmonic 253.88 1.401 # SOURCE1 40 + bond_coeff @bond:na-nb harmonic 310.48 1.347 # SOURCE4_SOURCE5 26 0.0093 + bond_coeff @bond:na-nc harmonic 300.49 1.356 # SOURCE3_SOURCE5 899 0.0083 + bond_coeff @bond:na-nd harmonic 302.44 1.354 # SOURCE3_SOURCE5 362 0.0113 + bond_coeff @bond:na-nh harmonic 254.81 1.400 # SOURCE1_SOURCE5 20 0.0066 + bond_coeff @bond:na-no harmonic 224.76 1.435 # SOURCE3_SOURCE5 16 0.0192 + bond_coeff @bond:na-o harmonic 347.95 1.239 # SOURCE1_SOURCE5 93 0.0208 + bond_coeff @bond:na-oh harmonic 191.21 1.393 # SOURCE3_SOURCE5 18 0.0144 + bond_coeff @bond:na-os harmonic 158.65 1.444 # SOURCE3 45 0.0423 + bond_coeff @bond:na-p2 harmonic 217.35 1.749 # SOURCE3 11 0.0192 + bond_coeff @bond:na-p3 harmonic 209.23 1.762 # SOURCE3 8 0.0113 + bond_coeff @bond:na-p4 harmonic 386.12 1.564 # SOURCE3 5 0.2161 + bond_coeff @bond:na-p5 harmonic 240.43 1.715 # SOURCE3 11 0.0238 + bond_coeff @bond:na-pc harmonic 228.54 1.732 # SOURCE3 81 0.0207 + bond_coeff @bond:na-pd harmonic 228.54 1.732 # SOURCE3 81 + bond_coeff @bond:na-py harmonic 242.60 1.712 # SOURCE3 2 + bond_coeff @bond:na-s harmonic 247.08 1.765 # SOURCE3 8 0.0095 + bond_coeff @bond:na-s4 harmonic 227.88 1.793 # SOURCE3 10 0.0421 + bond_coeff @bond:na-s6 harmonic 279.89 1.723 # SOURCE3_SOURCE5 15 0.0153 + bond_coeff @bond:na-sh harmonic 281.31 1.721 # SOURCE3 9 0.0113 + bond_coeff @bond:na-ss harmonic 271.85 1.732 # SOURCE3_SOURCE5 50 0.0325 + bond_coeff @bond:na-sy harmonic 276.32 1.727 # SOURCE3 1 + bond_coeff @bond:nb-nb harmonic 327.23 1.333 # SOURCE1_SOURCE5 98 0.0106 + bond_coeff @bond:nb-pb harmonic 358.21 1.587 # SOURCE1 162 0.0091 + bond_coeff @bond:nc-nc harmonic 290.67 1.365 # SOURCE3_SOURCE5 271 0.0065 + bond_coeff @bond:nc-nd harmonic 374.73 1.299 # SOURCE3_SOURCE5 185 0.0074 + bond_coeff @bond:nc-os harmonic 185.12 1.401 # SOURCE1_SOURCE5 243 0.0096 + bond_coeff @bond:nc-ss harmonic 376.65 1.626 # SOURCE1_SOURCE5 114 0.0148 + bond_coeff @bond:nc-sy harmonic 473.81 1.555 # SOURCE3 2 + bond_coeff @bond:nd-nd harmonic 290.67 1.365 # SOURCE3_SOURCE5 271 0.0065 + bond_coeff @bond:nd-os harmonic 185.12 1.401 # SOURCE1_SOURCE5 243 0.0096 + bond_coeff @bond:nd-ss harmonic 376.65 1.626 # SOURCE1_SOURCE5 114 0.0148 + bond_coeff @bond:nd-sy harmonic 473.81 1.555 # SOURCE3 2 + bond_coeff @bond:ne-ne harmonic 235.02 1.422 # SOURCE3_SOURCE5 47 0.0776 + bond_coeff @bond:ne-nf harmonic 432.27 1.263 # SOURCE4_SOURCE5 78 0.0037 + bond_coeff @bond:ne-o harmonic 360.78 1.231 # SOURCE3_SOURCE5 55 0.0223 + bond_coeff @bond:ne-p2 harmonic 387.40 1.563 # SOURCE3 14 0.1325 + bond_coeff @bond:ne-pe harmonic 242.60 1.712 # SOURCE3 28 0.1076 + bond_coeff @bond:ne-px harmonic 250.02 1.702 # SOURCE3 11 0.0883 + bond_coeff @bond:ne-py harmonic 338.14 1.605 # SOURCE4_SOURCE5 94 0.0111 + bond_coeff @bond:ne-s harmonic 503.04 1.537 # SOURCE3 22 0.1708 + bond_coeff @bond:ne-sx harmonic 200.62 1.838 # SOURCE3 7 0.1060 + bond_coeff @bond:ne-sy harmonic 326.04 1.672 # SOURCE3_SOURCE5 49 0.0285 + bond_coeff @bond:nf-nf harmonic 235.02 1.422 # SOURCE3_SOURCE5 28 0.0146 + bond_coeff @bond:nf-o harmonic 360.78 1.231 # SOURCE3_SOURCE5 15 0.0138 + bond_coeff @bond:nf-p2 harmonic 387.40 1.563 # SOURCE3 14 + bond_coeff @bond:nf-pf harmonic 242.60 1.712 # SOURCE3 28 + bond_coeff @bond:nf-px harmonic 250.02 1.702 # SOURCE3 11 + bond_coeff @bond:nf-py harmonic 338.14 1.605 # SOURCE4_SOURCE5 84 0.0113 + bond_coeff @bond:nf-s harmonic 503.04 1.537 # SOURCE3 22 + bond_coeff @bond:nf-sx harmonic 200.62 1.838 # SOURCE3 7 + bond_coeff @bond:nf-sy harmonic 326.04 1.672 # SOURCE3_SOURCE5 42 0.0197 + bond_coeff @bond:nh-nh harmonic 252.77 1.402 # SOURCE1_SOURCE5 8 0.0109 + bond_coeff @bond:nh-no harmonic 267.93 1.386 # SOURCE4_SOURCE5 22 0.0046 + bond_coeff @bond:nh-o harmonic 316.06 1.263 # SOURCE3_SOURCE5 18 0.0143 + bond_coeff @bond:nh-oh harmonic 175.33 1.416 # SOURCE4_SOURCE5 63 0.0072 + bond_coeff @bond:nh-os harmonic 175.90 1.415 # SOURCE4_SOURCE5 26 0.0063 + bond_coeff @bond:nh-p2 harmonic 268.13 1.679 # SOURCE3 17 0.0872 + bond_coeff @bond:nh-p3 harmonic 229.90 1.730 # SOURCE3 3 0.0016 + bond_coeff @bond:nh-p4 harmonic 247.02 1.706 # SOURCE3 3 0.0008 + bond_coeff @bond:nh-p5 harmonic 274.79 1.671 # SOURCE3 3 0.0007 + bond_coeff @bond:nh-s harmonic 233.85 1.784 # SOURCE3 3 0.0076 + bond_coeff @bond:nh-s4 harmonic 258.92 1.749 # SOURCE3 3 0.0203 + bond_coeff @bond:nh-s6 harmonic 301.91 1.698 # SOURCE4_SOURCE5 93 0.0076 + bond_coeff @bond:nh-sh harmonic 292.49 1.708 # SOURCE3 1 + bond_coeff @bond:nh-ss harmonic 291.53 1.709 # SOURCE1_SOURCE5 58 0.0020 + bond_coeff @bond:nh-sy harmonic 287.18 1.714 # SOURCE4_SOURCE5 239 0.0099 + bond_coeff @bond:n-n1 harmonic 319.16 1.340 # SOUECE3 1 + bond_coeff @bond:n-n2 harmonic 295.31 1.360 # SOURCE3_SOURCE5 272 0.0114 + bond_coeff @bond:n-n3 harmonic 250.92 1.404 # SOURCE3_SOURCE5 87 0.0076 + bond_coeff @bond:n-n4 harmonic 226.87 1.432 # SOURCE3 5 0.0098 + bond_coeff @bond:n-n harmonic 250.83 1.404 # SOURCE3_SOURCE5 47 0.0125 + bond_coeff @bond:n-na harmonic 248.27 1.407 # SOURCE3_SOURCE5 56 0.0060 + bond_coeff @bond:n-nc harmonic 295.87 1.360 # CORR_SOURCE5 121 0.0130 + bond_coeff @bond:n-nd harmonic 295.87 1.360 # CORR_SOURCE5 121 0.0130 + bond_coeff @bond:n-nh harmonic 253.32 1.402 # SOURCE4_SOURCE5 51 0.0075 + bond_coeff @bond:n-no harmonic 208.29 1.456 # SOURCE3 4 0.0327 + bond_coeff @bond:n-o harmonic 342.80 1.243 # SOURCE3_SOURCE5 16 0.0255 + bond_coeff @bond:n-oh harmonic 181.83 1.406 # SOURCE3_SOURCE5 119 0.0062 + bond_coeff @bond:no-no harmonic 65.41 1.824 # SOURCE3 1 + bond_coeff @bond:no-o harmonic 367.95 1.226 # SOURCE1_SOURCE5 4403 0.0099 + bond_coeff @bond:no-oh harmonic 181.96 1.406 # SOURCE2 1 + bond_coeff @bond:no-os harmonic 172.24 1.421 # SOURCE4_SOURCE5 138 0.0070 + bond_coeff @bond:no-p2 harmonic 224.52 1.738 # SOURCE3 10 0.2231 + bond_coeff @bond:no-p3 harmonic 165.61 1.844 # SOURCE3 3 0.0005 + bond_coeff @bond:no-p4 harmonic 154.11 1.870 # SOURCE3 3 0.0006 + bond_coeff @bond:no-p5 harmonic 170.31 1.834 # SOURCE3 4 0.0020 + bond_coeff @bond:no-s harmonic 264.31 1.742 # SOURCE3 2 + bond_coeff @bond:n-os harmonic 180.04 1.409 # SOURCE4_SOURCE5 73 0.0121 + bond_coeff @bond:no-s4 harmonic 131.30 1.996 # SOURCE3 3 0.0313 + bond_coeff @bond:no-s6 harmonic 138.28 1.976 # SOURCE3 3 0.0520 + bond_coeff @bond:no-sh harmonic 220.82 1.804 # SOURCE3 1 + bond_coeff @bond:no-ss harmonic 206.32 1.828 # SOURCE3 3 0.0244 + bond_coeff @bond:n-p2 harmonic 227.87 1.733 # SOURCE3 8 0.0217 + bond_coeff @bond:n-p3 harmonic 204.42 1.770 # SOURCE3 9 0.0118 + bond_coeff @bond:n-p4 harmonic 227.19 1.734 # SOURCE3 1 + bond_coeff @bond:n-p5 harmonic 238.92 1.717 # SOURCE4_SOURCE5 25 0.0133 + bond_coeff @bond:n-pc harmonic 223.19 1.740 # SOURCE3 3 0.0010 + bond_coeff @bond:n-pd harmonic 223.19 1.740 # SOURCE3 3 + bond_coeff @bond:n-s harmonic 245.64 1.767 # SOURCE3 3 0.0011 + bond_coeff @bond:n-s4 harmonic 244.86 1.768 # SOURCE3_SOURCE5 9 0.0163 + bond_coeff @bond:n-s6 harmonic 283.34 1.719 # SOURCE4_SOURCE5 45 0.0154 + bond_coeff @bond:n-sh harmonic 275.50 1.728 # SOURCE3 4 0.0128 + bond_coeff @bond:n-ss harmonic 277.23 1.726 # SOURCE3_SOURCE5 22 0.0103 + bond_coeff @bond:n-sy harmonic 285.29 1.716 # SOURCE4_SOURCE5 126 0.0086 + bond_coeff @bond:oh-oh harmonic 123.13 1.469 # SOURCE3 1 + bond_coeff @bond:oh-os harmonic 129.12 1.456 # SOURCE4_SOURCE5 49 0.0046 + bond_coeff @bond:oh-p2 harmonic 329.87 1.630 # SOURCE3 8 0.0916 + bond_coeff @bond:oh-p3 harmonic 285.03 1.677 # SOURCE3 3 0.0148 + bond_coeff @bond:oh-p4 harmonic 318.66 1.641 # SOURCE3 4 0.0092 + bond_coeff @bond:oh-p5 harmonic 346.03 1.615 # SOURCE3_SOURCE5 1121 0.0129 + bond_coeff @bond:oh-py harmonic 344.61 1.616 # SOURCE3_SOURCE5 112 0.0110 + bond_coeff @bond:oh-s harmonic 219.79 1.812 # SOURCE3 2 + bond_coeff @bond:oh-s4 harmonic 309.00 1.696 # SOURCE4_SOURCE5 29 0.0100 + bond_coeff @bond:oh-s6 harmonic 373.26 1.635 # SOURCE3_SOURCE5 193 0.0162 + bond_coeff @bond:oh-sh harmonic 312.59 1.692 # SOURCE3 2 0.0003 + bond_coeff @bond:oh-ss harmonic 316.41 1.688 # SOURCE3_SOURCE5 12 0.0167 + bond_coeff @bond:oh-sy harmonic 356.03 1.650 # SOURCE4_SOURCE5 123 0.0037 + bond_coeff @bond:o-o harmonic 141.39 1.430 # SOURCE3 2 0.0500 + bond_coeff @bond:o-oh harmonic 104.37 1.517 # SOURCE3 2 + bond_coeff @bond:o-os harmonic 109.10 1.504 # SOURCE3 3 0.0117 + bond_coeff @bond:o-p2 harmonic 492.04 1.508 # SOURCE3 17 0.0306 + bond_coeff @bond:o-p3 harmonic 480.47 1.515 # SOURCE3 35 0.0297 + bond_coeff @bond:o-p4 harmonic 498.98 1.504 # SOURCE3_SOURCE5 60 0.0565 + bond_coeff @bond:o-p5 harmonic 529.55 1.487 # SOURCE1_SOURCE5 1318 0.0133 + bond_coeff @bond:o-pe harmonic 470.81 1.521 # SOURCE3 20 0.0171 + bond_coeff @bond:o-pf harmonic 470.81 1.521 # SOURCE3 20 + bond_coeff @bond:o-px harmonic 499.66 1.504 # SOURCE3_SOURCE5 45 0.0136 + bond_coeff @bond:o-py harmonic 527.91 1.488 # SOURCE3_SOURCE5 119 0.0072 + bond_coeff @bond:o-s harmonic 226.13 1.802 # SOURCE3 2 + bond_coeff @bond:o-s2 harmonic 417.99 1.599 # SOURCE3 3 0.0707 + bond_coeff @bond:o-s4 harmonic 572.26 1.504 # SOURCE1_SOURCE5 137 0.0127 + bond_coeff @bond:o-s6 harmonic 683.03 1.453 # SOURCE1_SOURCE5 2456 0.0105 + bond_coeff @bond:o-sh harmonic 410.02 1.605 # SOURCE3 2 + bond_coeff @bond:os-os harmonic 124.74 1.465 # SOURCE1_SOURCE5 69 0.0090 + bond_coeff @bond:os-p2 harmonic 396.10 1.573 # SOURCE1 16 + bond_coeff @bond:os-p3 harmonic 287.31 1.674 # SOURCE3_SOURCE5 22 0.0105 + bond_coeff @bond:os-p4 harmonic 323.70 1.636 # SOURCE3 4 0.0057 + bond_coeff @bond:os-p5 harmonic 346.25 1.615 # SOURCE1_SOURCE5 1200 0.0218 + bond_coeff @bond:os-py harmonic 342.10 1.619 # SOURCE3_SOURCE5 68 0.0106 + bond_coeff @bond:os-s harmonic 227.43 1.800 # SOURCE3 3 0.0052 + bond_coeff @bond:o-ss harmonic 567.21 1.507 # SOURCE3_SOURCE5 22 0.0235 + bond_coeff @bond:os-s4 harmonic 312.40 1.692 # SOURCE3_SOURCE5 25 0.0189 + bond_coeff @bond:os-s6 harmonic 387.79 1.623 # SOURCE1_SOURCE5 242 0.0147 + bond_coeff @bond:os-sh harmonic 333.31 1.671 # SOURCE3 3 0.0106 + bond_coeff @bond:os-ss harmonic 301.43 1.704 # SOURCE3 9 0.0277 + bond_coeff @bond:os-sy harmonic 306.02 1.699 # SOURCE3 1 + bond_coeff @bond:o-sx harmonic 555.55 1.513 # SOURCE3_SOURCE5 136 0.0072 + bond_coeff @bond:o-sy harmonic 653.16 1.466 # SOURCE3_SOURCE5 2007 0.0061 + bond_coeff @bond:p2-p2 harmonic 307.63 1.786 # SOURCE3 25 0.3488 + bond_coeff @bond:p2-p3 harmonic 118.00 2.152 # SOURCE3 9 0.1777 + bond_coeff @bond:p2-p4 harmonic 110.68 2.179 # SOUECE3 1 + bond_coeff @bond:p2-p5 harmonic 110.42 2.180 # SOUECE3 1 + bond_coeff @bond:p2-pe harmonic 244.92 1.867 # SOURCE3 16 0.3571 + bond_coeff @bond:p2-pf harmonic 244.92 1.867 # SOURCE3 16 + bond_coeff @bond:p2-s harmonic 375.05 1.772 # SOURCE3 26 0.3014 + bond_coeff @bond:p2-s4 harmonic 126.27 2.190 # SOUECE3 1 + bond_coeff @bond:p2-s6 harmonic 129.28 2.180 # SOUECE3 1 + bond_coeff @bond:p2-sh harmonic 217.02 1.971 # SOURCE3 10 0.2829 + bond_coeff @bond:p2-ss harmonic 219.87 1.966 # SOURCE3 10 0.2739 + bond_coeff @bond:p3-p3 harmonic 101.97 2.214 # SOURCE1 41 + bond_coeff @bond:p3-p4 harmonic 101.50 2.216 # SOURCE3 3 0.0011 + bond_coeff @bond:p3-p5 harmonic 102.21 2.213 # SOURCE3 9 0.0265 + bond_coeff @bond:p3-s harmonic 168.70 2.070 # SOUECE3 1 + bond_coeff @bond:p3-s4 harmonic 161.75 2.087 # SOURCE3 8 0.2235 + bond_coeff @bond:p3-s6 harmonic 165.79 2.077 # SOURCE3 11 0.1420 + bond_coeff @bond:p3-sh harmonic 144.95 2.132 # SOURCE3 3 0.0078 + bond_coeff @bond:p3-ss harmonic 148.86 2.121 # SOURCE3 3 0.0059 + bond_coeff @bond:p4-p4 harmonic 157.68 2.034 # SOURCE1 1 + bond_coeff @bond:p4-p5 harmonic 96.70 2.237 # SOUECE3 1 + bond_coeff @bond:p4-s harmonic 140.16 2.146 # SOURCE3 5 0.0601 + bond_coeff @bond:p4-s4 harmonic 109.64 2.251 # SOUECE3 1 + bond_coeff @bond:p4-s6 harmonic 105.24 2.269 # SOUECE3 1 + bond_coeff @bond:p4-sh harmonic 151.04 2.115 # SOURCE3 4 0.0008 + bond_coeff @bond:p4-ss harmonic 155.14 2.104 # SOURCE3 4 0.0044 + bond_coeff @bond:p5-p5 harmonic 149.95 2.054 # SOURCE1 1 + bond_coeff @bond:p5-s harmonic 239.16 1.934 # SOURCE1_SOURCE5 173 0.0138 + bond_coeff @bond:p5-s4 harmonic 181.84 2.040 # SOUECE3 1 + bond_coeff @bond:p5-s6 harmonic 181.84 2.040 # SOUECE3 1 + bond_coeff @bond:p5-sh harmonic 163.76 2.082 # SOURCE3 3 0.0035 + bond_coeff @bond:p5-ss harmonic 150.09 2.118 # SOURCE4_SOURCE5 70 0.0117 + bond_coeff @bond:pe-pe harmonic 136.46 2.092 # SOURCE3 7 0.1369 + bond_coeff @bond:pe-pf harmonic 149.57 2.055 # SOURCE3 1 + bond_coeff @bond:pe-px harmonic 169.76 2.005 # SOURCE3 12 0.2609 + bond_coeff @bond:pe-py harmonic 161.32 2.025 # SOURCE3 12 0.2617 + bond_coeff @bond:pe-s harmonic 390.65 1.758 # SOURCE3 31 0.3197 + bond_coeff @bond:pe-sx harmonic 133.00 2.168 # SOURCE3 9 0.1743 + bond_coeff @bond:pe-sy harmonic 119.67 2.213 # SOURCE3 6 0.0127 + bond_coeff @bond:pf-pf harmonic 136.46 2.092 # SOURCE3 7 + bond_coeff @bond:pf-px harmonic 169.76 2.005 # SOURCE3 12 + bond_coeff @bond:pf-py harmonic 161.32 2.025 # SOURCE3 12 + bond_coeff @bond:pf-s harmonic 390.65 1.758 # SOURCE3 31 + bond_coeff @bond:pf-sx harmonic 133.00 2.168 # SOURCE3 9 + bond_coeff @bond:pf-sy harmonic 119.67 2.213 # SOURCE3 6 + bond_coeff @bond:px-py harmonic 105.60 2.199 # SOURCE3 5 0.0238 + bond_coeff @bond:px-sx harmonic 111.92 2.242 # SOURCE3 3 0.0119 + bond_coeff @bond:px-sy harmonic 110.14 2.249 # SOURCE3 3 0.0272 + bond_coeff @bond:py-py harmonic 108.87 2.186 # SOURCE3 8 0.0132 + bond_coeff @bond:py-sx harmonic 107.66 2.259 # SOURCE3 7 0.0603 + bond_coeff @bond:py-sy harmonic 128.67 2.182 # SOURCE3 5 0.0047 + bond_coeff @bond:s4-s4 harmonic 243.62 2.080 # SOUECE3 1 + bond_coeff @bond:s4-s6 harmonic 243.62 2.080 # SOUECE3 1 + bond_coeff @bond:s4-sh harmonic 196.89 2.168 # SOURCE3 3 0.0227 + bond_coeff @bond:s4-ss harmonic 197.83 2.166 # SOURCE3 5 0.0247 + bond_coeff @bond:s6-s6 harmonic 243.62 2.080 # SOUECE3 1 + bond_coeff @bond:s6-sh harmonic 227.44 2.108 # SOURCE3 3 0.0144 + bond_coeff @bond:s6-ss harmonic 221.98 2.118 # SOURCE3 5 0.0209 + bond_coeff @bond:sh-sh harmonic 257.31 2.058 # SOURCE2 1 + bond_coeff @bond:sh-ss harmonic 251.60 2.067 # SOURCE3 3 0.0029 + bond_coeff @bond:s-s harmonic 276.08 2.030 # SOURCE3 1 + bond_coeff @bond:s-s2 harmonic 391.11 1.897 # SOURCE1 5 + bond_coeff @bond:s-s4 harmonic 246.05 2.076 # SOURCE3 4 0.0345 + bond_coeff @bond:s-s6 harmonic 270.56 2.038 # SOURCE3 3 0.0311 + bond_coeff @bond:s-sh harmonic 226.34 2.110 # SOURCE3 2 + bond_coeff @bond:s-ss harmonic 238.28 2.089 # SOURCE3 1 + bond_coeff @bond:ss-ss harmonic 248.01 2.073 # SOURCE1_SOURCE5 457 0.0074 + bond_coeff @bond:sx-sx harmonic 119.03 2.391 # SOURCE3 3 0.0185 + bond_coeff @bond:sx-sy harmonic 160.84 2.255 # SOURCE3 5 0.0737 + bond_coeff @bond:sy-sy harmonic 162.69 2.250 # SOURCE3 3 0.0289 + bond_coeff @bond:br-cd harmonic 172.53 1.885 # SOURCE4_SOURCE5 89 0.0082 + bond_coeff @bond:c1-cf harmonic 518.69 1.315 # SOURCE4 6 + bond_coeff @bond:cd-f harmonic 364.99 1.341 # SOURCE4_SOURCE5 46 0.0041 + bond_coeff @bond:cd-n4 harmonic 236.72 1.493 # SOURCE4 7 + bond_coeff @bond:cd-nf harmonic 356.61 1.379 # SOURCE4_SOURCE5 52 0.0115 + bond_coeff @bond:cd-no harmonic 296.62 1.429 # SOURCE4_SOURCE5 253 0.0081 + bond_coeff @bond:cd-sh harmonic 223.28 1.769 # SOURCE4_SOURCE5 14 0.0031 + bond_coeff @bond:cd-sx harmonic 198.26 1.811 # SOURCE4_SOURCE5 28 0.0024 + bond_coeff @bond:cc-cy harmonic 259.34 1.505 # SOURCE4_SOURCE5 11 0.0006 + bond_coeff @bond:cf-cl harmonic 174.72 1.764 # SOURCE4_SOURCE5 66 0.0129 + bond_coeff @bond:cf-cx harmonic 261.83 1.502 # SOURCE4_SOURCE5 26 0.0077 + bond_coeff @bond:cf-cy harmonic 250.06 1.516 # SOURCE4_SOURCE5 36 0.0052 + bond_coeff @bond:cf-na harmonic 305.30 1.421 # SOURCE4_SOURCE5 6 0.0049 + bond_coeff @bond:cf-ss harmonic 215.60 1.781 # SOURCE4_SOURCE5 46 0.0106 + bond_coeff @bond:cq-na harmonic 349.52 1.384 # SOURCE4 7 + bond_coeff @bond:cq-nb harmonic 414.72 1.339 # SOURCE4_SOURCE5 120 0.0071 + bond_coeff @bond:cl-py harmonic 152.76 2.045 # SOURCE5 45 0.0072 + bond_coeff @bond:f-py harmonic 456.16 1.577 # SOURCE5 25 0.0035 + bond_coeff @bond:py-s harmonic 215.89 1.973 # SOURCE5 17 0.0159 + bond_coeff @bond:cy-nh harmonic 251.08 1.476 # SOURCE5 16 0.0050 + bond_coeff @bond:cy-hx harmonic 386.49 1.091 # SOURCE5 13 0.0007 + bond_coeff @bond:br-ce harmonic 163.42 1.905 # SOURCE5 12 0.0099 + bond_coeff @bond:cc-i harmonic 110.60 2.120 # SOURCE5 11 0.0086 + bond_coeff @bond:cy-n4 harmonic 214.44 1.522 # SOURCE5 11 0.0076 + bond_coeff @bond:cy-p3 harmonic 146.83 1.908 # SOURCE5 10 0.0056 + bond_coeff @bond:cy-na harmonic 279.03 1.446 # SOURCE5 8 0.0049 + bond_coeff @bond:cx-n4 harmonic 234.29 1.496 # SOURCE5 9 0.0009 + bond_coeff @bond:ne-s4 harmonic 338.65 1.660 # SOURCE5 6 0.0027 + bond_coeff @bond:cv-ss harmonic 228.75 1.761 # SOURCE5 8 0.0086 + bond_coeff @bond:cy-no harmonic 216.62 1.519 # SOURCE5 7 0.0035 + bond_coeff @bond:ce-cv harmonic 436.82 1.360 # SOURCE5 6 0.0111 + bond_coeff @bond:cd-i harmonic 111.95 2.115 # SOURCE5 7 0.0138 + bond_coeff @bond:cy-s4 harmonic 149.47 1.913 # SOURCE5 5 0.0068 + bond_coeff @bond:n2-sy harmonic 491.42 1.544 # SOURCE5 7 0.0042 + bond_coeff @bond:cc-s6 harmonic 196.41 1.814 # SOURCE5 6 0.0108 + bond_coeff @bond:i-s2 harmonic 48.08 2.883 # SOURCE5 5 0.0165 + bond_coeff @bond:br-cy harmonic 144.56 1.951 # SOURCE5 5 0.0056 + bond_coeff @bond:br-cf harmonic 163.42 1.905 # SOURCE5 12 0.0099 + bond_coeff @bond:nf-s4 harmonic 338.65 1.660 # SOURCE5 6 0.0027 + bond_coeff @bond:cf-cv harmonic 436.82 1.360 # SOURCE5 6 0.0111 + bond_coeff @bond:cd-s6 harmonic 196.41 1.814 # SOURCE5 6 0.0108 + bond_coeff @bond:ss-sy harmonic 177.36 2.212 # SOURCE5 4 0.0105 + bond_coeff @bond:h5-ce harmonic 390.52 1.089 # SOURCE5 4 0.0006 + bond_coeff @bond:h5-cf harmonic 390.52 1.089 # SOURCE5 4 0.0006 + bond_coeff @bond:ce-s4 harmonic 226.75 1.764 # SOURCE5 4 0.0087 + bond_coeff @bond:cf-s4 harmonic 226.69 1.764 # SOURCE5 4 0.0087 + bond_coeff @bond:cy-py harmonic 136.02 1.937 # SOURCE5 4 0.0000 + bond_coeff @bond:cd-o harmonic 649.55 1.219 # SOURCE5 4 0.0015 + bond_coeff @bond:ne-s6 harmonic 412.23 1.598 # SOURCE5 3 0.0054 + bond_coeff @bond:nf-s6 harmonic 412.23 1.598 # SOURCE5 3 0.0054 + bond_coeff @bond:ce-no harmonic 262.66 1.463 # SOURCE5 3 0.0129 + bond_coeff @bond:cf-no harmonic 262.66 1.463 # SOURCE5 3 0.0129 + } # (end of bond_coeffs) + + write_once("Data Bonds By Type") { + @bond:ow-hw @atom:ow @atom:hw + @bond:hw-hw @atom:hw @atom:hw + @bond:br-br @atom:br @atom:br + @bond:br-c1 @atom:br @atom:c1 + @bond:br-c2 @atom:br @atom:c2 + @bond:br-c @atom:br @atom:c + @bond:br-c3 @atom:br @atom:c3 + @bond:br-ca @atom:br @atom:ca + @bond:br-cc @atom:br @atom:cc + @bond:br-cx @atom:br @atom:cx + @bond:br-n1 @atom:br @atom:n1 + @bond:br-n2 @atom:br @atom:n2 + @bond:br-n @atom:br @atom:n + @bond:br-n3 @atom:br @atom:n3 + @bond:br-n4 @atom:br @atom:n4 + @bond:br-na @atom:br @atom:na + @bond:br-nh @atom:br @atom:nh + @bond:br-no @atom:br @atom:no + @bond:br-o @atom:br @atom:o + @bond:br-oh @atom:br @atom:oh + @bond:br-os @atom:br @atom:os + @bond:br-p2 @atom:br @atom:p2 + @bond:br-p3 @atom:br @atom:p3 + @bond:br-p4 @atom:br @atom:p4 + @bond:br-p5 @atom:br @atom:p5 + @bond:br-s @atom:br @atom:s + @bond:br-s4 @atom:br @atom:s4 + @bond:br-s6 @atom:br @atom:s6 + @bond:br-sh @atom:br @atom:sh + @bond:br-ss @atom:br @atom:ss + @bond:c1-c1 @atom:c1 @atom:c1 + @bond:c1-c2 @atom:c1 @atom:c2 + @bond:c1-c3 @atom:c1 @atom:c3 + @bond:c1-ca @atom:c1 @atom:ca + @bond:c1-ce @atom:c1 @atom:ce + @bond:c1-cg @atom:c1 @atom:cg + @bond:c1-ch @atom:c1 @atom:ch + @bond:c1-cl @atom:c1 @atom:cl + @bond:c1-cx @atom:c1 @atom:cx + @bond:c1-f @atom:c1 @atom:f + @bond:c1-ha @atom:c1 @atom:ha + @bond:c1-hc @atom:c1 @atom:hc + @bond:c1-i @atom:c1 @atom:i + @bond:c1-n1 @atom:c1 @atom:n1 + @bond:c1-n2 @atom:c1 @atom:n2 + @bond:c1-n3 @atom:c1 @atom:n3 + @bond:c1-n4 @atom:c1 @atom:n4 + @bond:c1-n @atom:c1 @atom:n + @bond:c1-na @atom:c1 @atom:na + @bond:c1-ne @atom:c1 @atom:ne + @bond:c1-nf @atom:c1 @atom:nf + @bond:c1-nh @atom:c1 @atom:nh + @bond:c1-no @atom:c1 @atom:no + @bond:c1-o @atom:c1 @atom:o + @bond:c1-oh @atom:c1 @atom:oh + @bond:c1-os @atom:c1 @atom:os + @bond:c1-p2 @atom:c1 @atom:p2 + @bond:c1-p3 @atom:c1 @atom:p3 + @bond:c1-p4 @atom:c1 @atom:p4 + @bond:c1-p5 @atom:c1 @atom:p5 + @bond:c1-s2 @atom:c1 @atom:s2 + @bond:c1-s @atom:c1 @atom:s + @bond:c1-s4 @atom:c1 @atom:s4 + @bond:c1-s6 @atom:c1 @atom:s6 + @bond:c1-sh @atom:c1 @atom:sh + @bond:c1-ss @atom:c1 @atom:ss + @bond:c2-c2 @atom:c2 @atom:c2 + @bond:c2-c3 @atom:c2 @atom:c3 + @bond:c2-ca @atom:c2 @atom:ca + @bond:c2-cc @atom:c2 @atom:cc + @bond:c2-cd @atom:c2 @atom:cd + @bond:c2-ce @atom:c2 @atom:ce + @bond:c2-cf @atom:c2 @atom:cf + @bond:c2-cl @atom:c2 @atom:cl + @bond:c2-cu @atom:c2 @atom:cu + @bond:c2-cx @atom:c2 @atom:cx + @bond:c2-cy @atom:c2 @atom:cy + @bond:c2-f @atom:c2 @atom:f + @bond:c2-h4 @atom:c2 @atom:h4 + @bond:c2-h5 @atom:c2 @atom:h5 + @bond:c2-ha @atom:c2 @atom:ha + @bond:c2-hc @atom:c2 @atom:hc + @bond:c2-hx @atom:c2 @atom:hx + @bond:c2-i @atom:c2 @atom:i + @bond:c2-n1 @atom:c2 @atom:n1 + @bond:c2-n2 @atom:c2 @atom:n2 + @bond:c2-n3 @atom:c2 @atom:n3 + @bond:c2-n @atom:c2 @atom:n + @bond:c2-n4 @atom:c2 @atom:n4 + @bond:c2-na @atom:c2 @atom:na + @bond:c2-nc @atom:c2 @atom:nc + @bond:c2-nd @atom:c2 @atom:nd + @bond:c2-ne @atom:c2 @atom:ne + @bond:c2-nf @atom:c2 @atom:nf + @bond:c2-nh @atom:c2 @atom:nh + @bond:c2-no @atom:c2 @atom:no + @bond:c2-o @atom:c2 @atom:o + @bond:c2-oh @atom:c2 @atom:oh + @bond:c2-os @atom:c2 @atom:os + @bond:c2-p2 @atom:c2 @atom:p2 + @bond:c2-p3 @atom:c2 @atom:p3 + @bond:c2-p4 @atom:c2 @atom:p4 + @bond:c2-p5 @atom:c2 @atom:p5 + @bond:c2-pe @atom:c2 @atom:pe + @bond:c2-pf @atom:c2 @atom:pf + @bond:c2-s2 @atom:c2 @atom:s2 + @bond:c2-s @atom:c2 @atom:s + @bond:c2-s4 @atom:c2 @atom:s4 + @bond:c2-s6 @atom:c2 @atom:s6 + @bond:c2-sh @atom:c2 @atom:sh + @bond:c2-ss @atom:c2 @atom:ss + @bond:c3-c3 @atom:c3 @atom:c3 + @bond:c3-ca @atom:c3 @atom:ca + @bond:c3-cc @atom:c3 @atom:cc + @bond:c3-cd @atom:c3 @atom:cd + @bond:c3-ce @atom:c3 @atom:ce + @bond:c3-cf @atom:c3 @atom:cf + @bond:c3-cl @atom:c3 @atom:cl + @bond:c3-cu @atom:c3 @atom:cu + @bond:c3-cv @atom:c3 @atom:cv + @bond:c3-cx @atom:c3 @atom:cx + @bond:c3-cy @atom:c3 @atom:cy + @bond:c3-f @atom:c3 @atom:f + @bond:c3-h1 @atom:c3 @atom:h1 + @bond:c3-h2 @atom:c3 @atom:h2 + @bond:c3-h3 @atom:c3 @atom:h3 + @bond:c3-hc @atom:c3 @atom:hc + @bond:c3-hx @atom:c3 @atom:hx + @bond:c3-i @atom:c3 @atom:i + @bond:c3-n1 @atom:c3 @atom:n1 + @bond:c3-n2 @atom:c3 @atom:n2 + @bond:c3-n @atom:c3 @atom:n + @bond:c3-n3 @atom:c3 @atom:n3 + @bond:c3-n4 @atom:c3 @atom:n4 + @bond:c3-na @atom:c3 @atom:na + @bond:c3-nc @atom:c3 @atom:nc + @bond:c3-nd @atom:c3 @atom:nd + @bond:c3-nh @atom:c3 @atom:nh + @bond:c3-no @atom:c3 @atom:no + @bond:c3-o @atom:c3 @atom:o + @bond:c3-oh @atom:c3 @atom:oh + @bond:c3-os @atom:c3 @atom:os + @bond:c3-p2 @atom:c3 @atom:p2 + @bond:c3-p3 @atom:c3 @atom:p3 + @bond:c3-p4 @atom:c3 @atom:p4 + @bond:c3-p5 @atom:c3 @atom:p5 + @bond:c3-px @atom:c3 @atom:px + @bond:c3-py @atom:c3 @atom:py + @bond:c3-s @atom:c3 @atom:s + @bond:c3-s4 @atom:c3 @atom:s4 + @bond:c3-s6 @atom:c3 @atom:s6 + @bond:c3-sh @atom:c3 @atom:sh + @bond:c3-ss @atom:c3 @atom:ss + @bond:c3-sx @atom:c3 @atom:sx + @bond:c3-sy @atom:c3 @atom:sy + @bond:ca-ca @atom:ca @atom:ca + @bond:ca-cc @atom:ca @atom:cc + @bond:ca-cd @atom:ca @atom:cd + @bond:ca-ce @atom:ca @atom:ce + @bond:ca-cf @atom:ca @atom:cf + @bond:ca-cg @atom:ca @atom:cg + @bond:ca-ch @atom:ca @atom:ch + @bond:ca-cl @atom:ca @atom:cl + @bond:ca-cp @atom:ca @atom:cp + @bond:ca-cq @atom:ca @atom:cq + @bond:ca-cx @atom:ca @atom:cx + @bond:ca-cy @atom:ca @atom:cy + @bond:ca-f @atom:ca @atom:f + @bond:ca-h4 @atom:ca @atom:h4 + @bond:ca-h5 @atom:ca @atom:h5 + @bond:ca-ha @atom:ca @atom:ha + @bond:ca-i @atom:ca @atom:i + @bond:ca-n1 @atom:ca @atom:n1 + @bond:ca-n2 @atom:ca @atom:n2 + @bond:ca-n @atom:ca @atom:n + @bond:ca-n4 @atom:ca @atom:n4 + @bond:ca-na @atom:ca @atom:na + @bond:ca-nb @atom:ca @atom:nb + @bond:ca-nc @atom:ca @atom:nc + @bond:ca-nd @atom:ca @atom:nd + @bond:ca-ne @atom:ca @atom:ne + @bond:ca-nf @atom:ca @atom:nf + @bond:ca-nh @atom:ca @atom:nh + @bond:ca-no @atom:ca @atom:no + @bond:ca-o @atom:ca @atom:o + @bond:ca-oh @atom:ca @atom:oh + @bond:ca-os @atom:ca @atom:os + @bond:ca-p2 @atom:ca @atom:p2 + @bond:ca-p3 @atom:ca @atom:p3 + @bond:ca-p4 @atom:ca @atom:p4 + @bond:ca-p5 @atom:ca @atom:p5 + @bond:ca-pe @atom:ca @atom:pe + @bond:ca-pf @atom:ca @atom:pf + @bond:ca-px @atom:ca @atom:px + @bond:ca-py @atom:ca @atom:py + @bond:ca-s @atom:ca @atom:s + @bond:ca-s4 @atom:ca @atom:s4 + @bond:ca-s6 @atom:ca @atom:s6 + @bond:ca-sh @atom:ca @atom:sh + @bond:ca-ss @atom:ca @atom:ss + @bond:ca-sx @atom:ca @atom:sx + @bond:ca-sy @atom:ca @atom:sy + @bond:c-c1 @atom:c @atom:c1 + @bond:c-c2 @atom:c @atom:c2 + @bond:c-c @atom:c @atom:c + @bond:c-c3 @atom:c @atom:c3 + @bond:c-ca @atom:c @atom:ca + @bond:c-cc @atom:c @atom:cc + @bond:cc-cc @atom:cc @atom:cc + @bond:cc-cd @atom:cc @atom:cd + @bond:cc-ce @atom:cc @atom:ce + @bond:cc-cf @atom:cc @atom:cf + @bond:cc-cg @atom:cc @atom:cg + @bond:cc-ch @atom:cc @atom:ch + @bond:cc-cl @atom:cc @atom:cl + @bond:cc-cx @atom:cc @atom:cx + @bond:c-cd @atom:c @atom:cd + @bond:c-ce @atom:c @atom:ce + @bond:c-cf @atom:c @atom:cf + @bond:cc-f @atom:cc @atom:f + @bond:c-cg @atom:c @atom:cg + @bond:c-ch @atom:c @atom:ch + @bond:cc-h4 @atom:cc @atom:h4 + @bond:cc-h5 @atom:cc @atom:h5 + @bond:cc-ha @atom:cc @atom:ha + @bond:c-cl @atom:c @atom:cl + @bond:cc-n2 @atom:cc @atom:n2 + @bond:cc-n @atom:cc @atom:n + @bond:cc-n4 @atom:cc @atom:n4 + @bond:cc-na @atom:cc @atom:na + @bond:cc-nc @atom:cc @atom:nc + @bond:cc-nd @atom:cc @atom:nd + @bond:cc-ne @atom:cc @atom:ne + @bond:cc-nf @atom:cc @atom:nf + @bond:cc-nh @atom:cc @atom:nh + @bond:cc-no @atom:cc @atom:no + @bond:cc-oh @atom:cc @atom:oh + @bond:cc-os @atom:cc @atom:os + @bond:cc-pd @atom:cc @atom:pd + @bond:cc-sh @atom:cc @atom:sh + @bond:cc-ss @atom:cc @atom:ss + @bond:cc-sx @atom:cc @atom:sx + @bond:cc-sy @atom:cc @atom:sy + @bond:c-cu @atom:c @atom:cu + @bond:c-cx @atom:c @atom:cx + @bond:c-cy @atom:c @atom:cy + @bond:cd-cd @atom:cd @atom:cd + @bond:cd-ce @atom:cd @atom:ce + @bond:cd-cf @atom:cd @atom:cf + @bond:cd-cg @atom:cd @atom:cg + @bond:cd-ch @atom:cd @atom:ch + @bond:cd-cl @atom:cd @atom:cl + @bond:cd-cx @atom:cd @atom:cx + @bond:cd-cy @atom:cd @atom:cy + @bond:cd-h4 @atom:cd @atom:h4 + @bond:cd-h5 @atom:cd @atom:h5 + @bond:cd-ha @atom:cd @atom:ha + @bond:cd-n2 @atom:cd @atom:n2 + @bond:cd-n @atom:cd @atom:n + @bond:cd-na @atom:cd @atom:na + @bond:cd-nc @atom:cd @atom:nc + @bond:cd-nd @atom:cd @atom:nd + @bond:cd-ne @atom:cd @atom:ne + @bond:cd-nh @atom:cd @atom:nh + @bond:cd-oh @atom:cd @atom:oh + @bond:cd-os @atom:cd @atom:os + @bond:cd-pc @atom:cd @atom:pc + @bond:cd-ss @atom:cd @atom:ss + @bond:cd-sy @atom:cd @atom:sy + @bond:ce-ce @atom:ce @atom:ce + @bond:ce-cf @atom:ce @atom:cf + @bond:ce-cg @atom:ce @atom:cg + @bond:ce-ch @atom:ce @atom:ch + @bond:ce-cl @atom:ce @atom:cl + @bond:ce-cx @atom:ce @atom:cx + @bond:ce-cy @atom:ce @atom:cy + @bond:ce-h4 @atom:ce @atom:h4 + @bond:ce-ha @atom:ce @atom:ha + @bond:ce-n1 @atom:ce @atom:n1 + @bond:ce-n2 @atom:ce @atom:n2 + @bond:ce-n @atom:ce @atom:n + @bond:ce-na @atom:ce @atom:na + @bond:ce-ne @atom:ce @atom:ne + @bond:ce-nf @atom:ce @atom:nf + @bond:ce-nh @atom:ce @atom:nh + @bond:ce-oh @atom:ce @atom:oh + @bond:ce-os @atom:ce @atom:os + @bond:ce-p2 @atom:ce @atom:p2 + @bond:ce-pe @atom:ce @atom:pe + @bond:ce-px @atom:ce @atom:px + @bond:ce-py @atom:ce @atom:py + @bond:ce-s @atom:ce @atom:s + @bond:ce-ss @atom:ce @atom:ss + @bond:ce-sx @atom:ce @atom:sx + @bond:ce-sy @atom:ce @atom:sy + @bond:c-f @atom:c @atom:f + @bond:cf-cf @atom:cf @atom:cf + @bond:cf-cg @atom:cf @atom:cg + @bond:cf-ch @atom:cf @atom:ch + @bond:cf-h4 @atom:cf @atom:h4 + @bond:cf-ha @atom:cf @atom:ha + @bond:cf-n1 @atom:cf @atom:n1 + @bond:cf-n2 @atom:cf @atom:n2 + @bond:cf-n @atom:cf @atom:n + @bond:cf-ne @atom:cf @atom:ne + @bond:cf-nf @atom:cf @atom:nf + @bond:cf-nh @atom:cf @atom:nh + @bond:cf-oh @atom:cf @atom:oh + @bond:cf-os @atom:cf @atom:os + @bond:cf-p2 @atom:cf @atom:p2 + @bond:cf-pf @atom:cf @atom:pf + @bond:cf-px @atom:cf @atom:px + @bond:cf-py @atom:cf @atom:py + @bond:cf-s @atom:cf @atom:s + @bond:cf-sx @atom:cf @atom:sx + @bond:cf-sy @atom:cf @atom:sy + @bond:cg-cg @atom:cg @atom:cg + @bond:cg-ch @atom:cg @atom:ch + @bond:cg-n1 @atom:cg @atom:n1 + @bond:cg-ne @atom:cg @atom:ne + @bond:cg-pe @atom:cg @atom:pe + @bond:c-h4 @atom:c @atom:h4 + @bond:c-h5 @atom:c @atom:h5 + @bond:c-ha @atom:c @atom:ha + @bond:ch-ch @atom:ch @atom:ch + @bond:ch-n1 @atom:ch @atom:n1 + @bond:ch-nf @atom:ch @atom:nf + @bond:ch-pf @atom:ch @atom:pf + @bond:c-i @atom:c @atom:i + @bond:cl-cl @atom:cl @atom:cl + @bond:cl-cx @atom:cl @atom:cx + @bond:cl-cy @atom:cl @atom:cy + @bond:cl-n1 @atom:cl @atom:n1 + @bond:cl-n2 @atom:cl @atom:n2 + @bond:cl-n3 @atom:cl @atom:n3 + @bond:cl-n @atom:cl @atom:n + @bond:cl-n4 @atom:cl @atom:n4 + @bond:cl-na @atom:cl @atom:na + @bond:cl-nh @atom:cl @atom:nh + @bond:cl-no @atom:cl @atom:no + @bond:cl-o @atom:cl @atom:o + @bond:cl-oh @atom:cl @atom:oh + @bond:cl-os @atom:cl @atom:os + @bond:cl-p2 @atom:cl @atom:p2 + @bond:cl-p3 @atom:cl @atom:p3 + @bond:cl-p4 @atom:cl @atom:p4 + @bond:cl-p5 @atom:cl @atom:p5 + @bond:cl-pb @atom:cl @atom:pb + @bond:cl-s @atom:cl @atom:s + @bond:cl-s2 @atom:cl @atom:s2 + @bond:cl-s4 @atom:cl @atom:s4 + @bond:cl-s6 @atom:cl @atom:s6 + @bond:cl-sh @atom:cl @atom:sh + @bond:cl-ss @atom:cl @atom:ss + @bond:cl-sx @atom:cl @atom:sx + @bond:cl-sy @atom:cl @atom:sy + @bond:c-n2 @atom:c @atom:n2 + @bond:c-n4 @atom:c @atom:n4 + @bond:c-n @atom:c @atom:n + @bond:c-nc @atom:c @atom:nc + @bond:c-nd @atom:c @atom:nd + @bond:c-ne @atom:c @atom:ne + @bond:c-nf @atom:c @atom:nf + @bond:c-no @atom:c @atom:no + @bond:c-o @atom:c @atom:o + @bond:c-oh @atom:c @atom:oh + @bond:c-os @atom:c @atom:os + @bond:c-p2 @atom:c @atom:p2 + @bond:c-p3 @atom:c @atom:p3 + @bond:c-p4 @atom:c @atom:p4 + @bond:c-p5 @atom:c @atom:p5 + @bond:cp-cp @atom:cp @atom:cp + @bond:cp-cq @atom:cp @atom:cq + @bond:c-pe @atom:c @atom:pe + @bond:c-pf @atom:c @atom:pf + @bond:cp-na @atom:cp @atom:na + @bond:cp-nb @atom:cp @atom:nb + @bond:c-px @atom:c @atom:px + @bond:c-py @atom:c @atom:py + @bond:cq-cq @atom:cq @atom:cq + @bond:c-s @atom:c @atom:s + @bond:c-s4 @atom:c @atom:s4 + @bond:c-s6 @atom:c @atom:s6 + @bond:c-sh @atom:c @atom:sh + @bond:c-ss @atom:c @atom:ss + @bond:c-sx @atom:c @atom:sx + @bond:c-sy @atom:c @atom:sy + @bond:cu-cu @atom:cu @atom:cu + @bond:cu-cx @atom:cu @atom:cx + @bond:cu-ha @atom:cu @atom:ha + @bond:cv-cv @atom:cv @atom:cv + @bond:cv-cy @atom:cv @atom:cy + @bond:cv-ha @atom:cv @atom:ha + @bond:cx-cv @atom:cx @atom:cv + @bond:cx-cx @atom:cx @atom:cx + @bond:cx-cy @atom:cx @atom:cy + @bond:cx-f @atom:cx @atom:f + @bond:cx-h1 @atom:cx @atom:h1 + @bond:cx-h2 @atom:cx @atom:h2 + @bond:cx-hc @atom:cx @atom:hc + @bond:cx-hx @atom:cx @atom:hx + @bond:cx-n2 @atom:cx @atom:n2 + @bond:cx-n3 @atom:cx @atom:n3 + @bond:cx-n @atom:cx @atom:n + @bond:cx-na @atom:cx @atom:na + @bond:cx-nh @atom:cx @atom:nh + @bond:cx-oh @atom:cx @atom:oh + @bond:cx-os @atom:cx @atom:os + @bond:cx-p3 @atom:cx @atom:p3 + @bond:cx-s4 @atom:cx @atom:s4 + @bond:cx-s6 @atom:cx @atom:s6 + @bond:cx-ss @atom:cx @atom:ss + @bond:cy-cy @atom:cy @atom:cy + @bond:cy-f @atom:cy @atom:f + @bond:cy-h1 @atom:cy @atom:h1 + @bond:cy-h2 @atom:cy @atom:h2 + @bond:cy-hc @atom:cy @atom:hc + @bond:cy-n @atom:cy @atom:n + @bond:cy-n3 @atom:cy @atom:n3 + @bond:cy-oh @atom:cy @atom:oh + @bond:cy-os @atom:cy @atom:os + @bond:cy-s6 @atom:cy @atom:s6 + @bond:cy-ss @atom:cy @atom:ss + @bond:cz-nh @atom:cz @atom:nh + @bond:f-n1 @atom:f @atom:n1 + @bond:f-n2 @atom:f @atom:n2 + @bond:f-n3 @atom:f @atom:n3 + @bond:f-n @atom:f @atom:n + @bond:f-n4 @atom:f @atom:n4 + @bond:f-na @atom:f @atom:na + @bond:f-nh @atom:f @atom:nh + @bond:f-no @atom:f @atom:no + @bond:f-o @atom:f @atom:o + @bond:f-oh @atom:f @atom:oh + @bond:f-os @atom:f @atom:os + @bond:f-p2 @atom:f @atom:p2 + @bond:f-p3 @atom:f @atom:p3 + @bond:f-p4 @atom:f @atom:p4 + @bond:f-p5 @atom:f @atom:p5 + @bond:f-s2 @atom:f @atom:s2 + @bond:f-s @atom:f @atom:s + @bond:f-s4 @atom:f @atom:s4 + @bond:f-s6 @atom:f @atom:s6 + @bond:f-sh @atom:f @atom:sh + @bond:f-ss @atom:f @atom:ss + @bond:hn-n1 @atom:hn @atom:n1 + @bond:hn-n2 @atom:hn @atom:n2 + @bond:hn-n3 @atom:hn @atom:n3 + @bond:hn-n @atom:hn @atom:n + @bond:hn-n4 @atom:hn @atom:n4 + @bond:hn-na @atom:hn @atom:na + @bond:hn-nh @atom:hn @atom:nh + @bond:hn-no @atom:hn @atom:no + @bond:ho-o @atom:ho @atom:o + @bond:ho-oh @atom:ho @atom:oh + @bond:hp-p2 @atom:hp @atom:p2 + @bond:hp-p3 @atom:hp @atom:p3 + @bond:hp-p4 @atom:hp @atom:p4 + @bond:hp-p5 @atom:hp @atom:p5 + @bond:hs-s @atom:hs @atom:s + @bond:hs-s4 @atom:hs @atom:s4 + @bond:hs-s6 @atom:hs @atom:s6 + @bond:hs-sh @atom:hs @atom:sh + @bond:i-i @atom:i @atom:i + @bond:i-n1 @atom:i @atom:n1 + @bond:i-n2 @atom:i @atom:n2 + @bond:i-n @atom:i @atom:n + @bond:i-n3 @atom:i @atom:n3 + @bond:i-n4 @atom:i @atom:n4 + @bond:i-na @atom:i @atom:na + @bond:i-nh @atom:i @atom:nh + @bond:i-no @atom:i @atom:no + @bond:i-o @atom:i @atom:o + @bond:i-oh @atom:i @atom:oh + @bond:i-os @atom:i @atom:os + @bond:i-p2 @atom:i @atom:p2 + @bond:i-p3 @atom:i @atom:p3 + @bond:i-p4 @atom:i @atom:p4 + @bond:i-p5 @atom:i @atom:p5 + @bond:i-s @atom:i @atom:s + @bond:i-s4 @atom:i @atom:s4 + @bond:i-s6 @atom:i @atom:s6 + @bond:i-sh @atom:i @atom:sh + @bond:i-ss @atom:i @atom:ss + @bond:n1-n1 @atom:n1 @atom:n1 + @bond:n1-n2 @atom:n1 @atom:n2 + @bond:n1-n3 @atom:n1 @atom:n3 + @bond:n1-n4 @atom:n1 @atom:n4 + @bond:n1-na @atom:n1 @atom:na + @bond:n1-nc @atom:n1 @atom:nc + @bond:n1-nd @atom:n1 @atom:nd + @bond:n1-ne @atom:n1 @atom:ne + @bond:n1-nf @atom:n1 @atom:nf + @bond:n1-nh @atom:n1 @atom:nh + @bond:n1-no @atom:n1 @atom:no + @bond:n1-o @atom:n1 @atom:o + @bond:n1-oh @atom:n1 @atom:oh + @bond:n1-os @atom:n1 @atom:os + @bond:n1-p2 @atom:n1 @atom:p2 + @bond:n1-p3 @atom:n1 @atom:p3 + @bond:n1-p4 @atom:n1 @atom:p4 + @bond:n1-p5 @atom:n1 @atom:p5 + @bond:n1-s2 @atom:n1 @atom:s2 + @bond:n1-s @atom:n1 @atom:s + @bond:n1-s4 @atom:n1 @atom:s4 + @bond:n1-s6 @atom:n1 @atom:s6 + @bond:n1-sh @atom:n1 @atom:sh + @bond:n1-ss @atom:n1 @atom:ss + @bond:n2-n2 @atom:n2 @atom:n2 + @bond:n2-n3 @atom:n2 @atom:n3 + @bond:n2-n4 @atom:n2 @atom:n4 + @bond:n2-na @atom:n2 @atom:na + @bond:n2-nc @atom:n2 @atom:nc + @bond:n2-nd @atom:n2 @atom:nd + @bond:n2-ne @atom:n2 @atom:ne + @bond:n2-nf @atom:n2 @atom:nf + @bond:n2-nh @atom:n2 @atom:nh + @bond:n2-no @atom:n2 @atom:no + @bond:n2-o @atom:n2 @atom:o + @bond:n2-oh @atom:n2 @atom:oh + @bond:n2-os @atom:n2 @atom:os + @bond:n2-p2 @atom:n2 @atom:p2 + @bond:n2-p3 @atom:n2 @atom:p3 + @bond:n2-p4 @atom:n2 @atom:p4 + @bond:n2-p5 @atom:n2 @atom:p5 + @bond:n2-pe @atom:n2 @atom:pe + @bond:n2-pf @atom:n2 @atom:pf + @bond:n2-s2 @atom:n2 @atom:s2 + @bond:n2-s4 @atom:n2 @atom:s4 + @bond:n2-s @atom:n2 @atom:s + @bond:n2-s6 @atom:n2 @atom:s6 + @bond:n2-sh @atom:n2 @atom:sh + @bond:n2-ss @atom:n2 @atom:ss + @bond:n3-n3 @atom:n3 @atom:n3 + @bond:n3-n4 @atom:n3 @atom:n4 + @bond:n3-na @atom:n3 @atom:na + @bond:n3-nh @atom:n3 @atom:nh + @bond:n3-no @atom:n3 @atom:no + @bond:n3-o @atom:n3 @atom:o + @bond:n3-oh @atom:n3 @atom:oh + @bond:n3-os @atom:n3 @atom:os + @bond:n3-p2 @atom:n3 @atom:p2 + @bond:n3-p3 @atom:n3 @atom:p3 + @bond:n3-p4 @atom:n3 @atom:p4 + @bond:n3-p5 @atom:n3 @atom:p5 + @bond:n3-py @atom:n3 @atom:py + @bond:n3-s @atom:n3 @atom:s + @bond:n3-s4 @atom:n3 @atom:s4 + @bond:n3-s6 @atom:n3 @atom:s6 + @bond:n3-sh @atom:n3 @atom:sh + @bond:n3-ss @atom:n3 @atom:ss + @bond:n3-sy @atom:n3 @atom:sy + @bond:n4-n4 @atom:n4 @atom:n4 + @bond:n4-na @atom:n4 @atom:na + @bond:n4-nh @atom:n4 @atom:nh + @bond:n4-no @atom:n4 @atom:no + @bond:n4-o @atom:n4 @atom:o + @bond:n4-oh @atom:n4 @atom:oh + @bond:n4-os @atom:n4 @atom:os + @bond:n4-p2 @atom:n4 @atom:p2 + @bond:n4-p3 @atom:n4 @atom:p3 + @bond:n4-p4 @atom:n4 @atom:p4 + @bond:n4-p5 @atom:n4 @atom:p5 + @bond:n4-py @atom:n4 @atom:py + @bond:n4-s @atom:n4 @atom:s + @bond:n4-s4 @atom:n4 @atom:s4 + @bond:n4-s6 @atom:n4 @atom:s6 + @bond:n4-sh @atom:n4 @atom:sh + @bond:n4-ss @atom:n4 @atom:ss + @bond:na-na @atom:na @atom:na + @bond:na-nb @atom:na @atom:nb + @bond:na-nc @atom:na @atom:nc + @bond:na-nd @atom:na @atom:nd + @bond:na-nh @atom:na @atom:nh + @bond:na-no @atom:na @atom:no + @bond:na-o @atom:na @atom:o + @bond:na-oh @atom:na @atom:oh + @bond:na-os @atom:na @atom:os + @bond:na-p2 @atom:na @atom:p2 + @bond:na-p3 @atom:na @atom:p3 + @bond:na-p4 @atom:na @atom:p4 + @bond:na-p5 @atom:na @atom:p5 + @bond:na-pc @atom:na @atom:pc + @bond:na-pd @atom:na @atom:pd + @bond:na-py @atom:na @atom:py + @bond:na-s @atom:na @atom:s + @bond:na-s4 @atom:na @atom:s4 + @bond:na-s6 @atom:na @atom:s6 + @bond:na-sh @atom:na @atom:sh + @bond:na-ss @atom:na @atom:ss + @bond:na-sy @atom:na @atom:sy + @bond:nb-nb @atom:nb @atom:nb + @bond:nb-pb @atom:nb @atom:pb + @bond:nc-nc @atom:nc @atom:nc + @bond:nc-nd @atom:nc @atom:nd + @bond:nc-os @atom:nc @atom:os + @bond:nc-ss @atom:nc @atom:ss + @bond:nc-sy @atom:nc @atom:sy + @bond:nd-nd @atom:nd @atom:nd + @bond:nd-os @atom:nd @atom:os + @bond:nd-ss @atom:nd @atom:ss + @bond:nd-sy @atom:nd @atom:sy + @bond:ne-ne @atom:ne @atom:ne + @bond:ne-nf @atom:ne @atom:nf + @bond:ne-o @atom:ne @atom:o + @bond:ne-p2 @atom:ne @atom:p2 + @bond:ne-pe @atom:ne @atom:pe + @bond:ne-px @atom:ne @atom:px + @bond:ne-py @atom:ne @atom:py + @bond:ne-s @atom:ne @atom:s + @bond:ne-sx @atom:ne @atom:sx + @bond:ne-sy @atom:ne @atom:sy + @bond:nf-nf @atom:nf @atom:nf + @bond:nf-o @atom:nf @atom:o + @bond:nf-p2 @atom:nf @atom:p2 + @bond:nf-pf @atom:nf @atom:pf + @bond:nf-px @atom:nf @atom:px + @bond:nf-py @atom:nf @atom:py + @bond:nf-s @atom:nf @atom:s + @bond:nf-sx @atom:nf @atom:sx + @bond:nf-sy @atom:nf @atom:sy + @bond:nh-nh @atom:nh @atom:nh + @bond:nh-no @atom:nh @atom:no + @bond:nh-o @atom:nh @atom:o + @bond:nh-oh @atom:nh @atom:oh + @bond:nh-os @atom:nh @atom:os + @bond:nh-p2 @atom:nh @atom:p2 + @bond:nh-p3 @atom:nh @atom:p3 + @bond:nh-p4 @atom:nh @atom:p4 + @bond:nh-p5 @atom:nh @atom:p5 + @bond:nh-s @atom:nh @atom:s + @bond:nh-s4 @atom:nh @atom:s4 + @bond:nh-s6 @atom:nh @atom:s6 + @bond:nh-sh @atom:nh @atom:sh + @bond:nh-ss @atom:nh @atom:ss + @bond:nh-sy @atom:nh @atom:sy + @bond:n-n1 @atom:n @atom:n1 + @bond:n-n2 @atom:n @atom:n2 + @bond:n-n3 @atom:n @atom:n3 + @bond:n-n4 @atom:n @atom:n4 + @bond:n-n @atom:n @atom:n + @bond:n-na @atom:n @atom:na + @bond:n-nc @atom:n @atom:nc + @bond:n-nd @atom:n @atom:nd + @bond:n-nh @atom:n @atom:nh + @bond:n-no @atom:n @atom:no + @bond:n-o @atom:n @atom:o + @bond:n-oh @atom:n @atom:oh + @bond:no-no @atom:no @atom:no + @bond:no-o @atom:no @atom:o + @bond:no-oh @atom:no @atom:oh + @bond:no-os @atom:no @atom:os + @bond:no-p2 @atom:no @atom:p2 + @bond:no-p3 @atom:no @atom:p3 + @bond:no-p4 @atom:no @atom:p4 + @bond:no-p5 @atom:no @atom:p5 + @bond:no-s @atom:no @atom:s + @bond:n-os @atom:n @atom:os + @bond:no-s4 @atom:no @atom:s4 + @bond:no-s6 @atom:no @atom:s6 + @bond:no-sh @atom:no @atom:sh + @bond:no-ss @atom:no @atom:ss + @bond:n-p2 @atom:n @atom:p2 + @bond:n-p3 @atom:n @atom:p3 + @bond:n-p4 @atom:n @atom:p4 + @bond:n-p5 @atom:n @atom:p5 + @bond:n-pc @atom:n @atom:pc + @bond:n-pd @atom:n @atom:pd + @bond:n-s @atom:n @atom:s + @bond:n-s4 @atom:n @atom:s4 + @bond:n-s6 @atom:n @atom:s6 + @bond:n-sh @atom:n @atom:sh + @bond:n-ss @atom:n @atom:ss + @bond:n-sy @atom:n @atom:sy + @bond:oh-oh @atom:oh @atom:oh + @bond:oh-os @atom:oh @atom:os + @bond:oh-p2 @atom:oh @atom:p2 + @bond:oh-p3 @atom:oh @atom:p3 + @bond:oh-p4 @atom:oh @atom:p4 + @bond:oh-p5 @atom:oh @atom:p5 + @bond:oh-py @atom:oh @atom:py + @bond:oh-s @atom:oh @atom:s + @bond:oh-s4 @atom:oh @atom:s4 + @bond:oh-s6 @atom:oh @atom:s6 + @bond:oh-sh @atom:oh @atom:sh + @bond:oh-ss @atom:oh @atom:ss + @bond:oh-sy @atom:oh @atom:sy + @bond:o-o @atom:o @atom:o + @bond:o-oh @atom:o @atom:oh + @bond:o-os @atom:o @atom:os + @bond:o-p2 @atom:o @atom:p2 + @bond:o-p3 @atom:o @atom:p3 + @bond:o-p4 @atom:o @atom:p4 + @bond:o-p5 @atom:o @atom:p5 + @bond:o-pe @atom:o @atom:pe + @bond:o-pf @atom:o @atom:pf + @bond:o-px @atom:o @atom:px + @bond:o-py @atom:o @atom:py + @bond:o-s @atom:o @atom:s + @bond:o-s2 @atom:o @atom:s2 + @bond:o-s4 @atom:o @atom:s4 + @bond:o-s6 @atom:o @atom:s6 + @bond:o-sh @atom:o @atom:sh + @bond:os-os @atom:os @atom:os + @bond:os-p2 @atom:os @atom:p2 + @bond:os-p3 @atom:os @atom:p3 + @bond:os-p4 @atom:os @atom:p4 + @bond:os-p5 @atom:os @atom:p5 + @bond:os-py @atom:os @atom:py + @bond:os-s @atom:os @atom:s + @bond:o-ss @atom:o @atom:ss + @bond:os-s4 @atom:os @atom:s4 + @bond:os-s6 @atom:os @atom:s6 + @bond:os-sh @atom:os @atom:sh + @bond:os-ss @atom:os @atom:ss + @bond:os-sy @atom:os @atom:sy + @bond:o-sx @atom:o @atom:sx + @bond:o-sy @atom:o @atom:sy + @bond:p2-p2 @atom:p2 @atom:p2 + @bond:p2-p3 @atom:p2 @atom:p3 + @bond:p2-p4 @atom:p2 @atom:p4 + @bond:p2-p5 @atom:p2 @atom:p5 + @bond:p2-pe @atom:p2 @atom:pe + @bond:p2-pf @atom:p2 @atom:pf + @bond:p2-s @atom:p2 @atom:s + @bond:p2-s4 @atom:p2 @atom:s4 + @bond:p2-s6 @atom:p2 @atom:s6 + @bond:p2-sh @atom:p2 @atom:sh + @bond:p2-ss @atom:p2 @atom:ss + @bond:p3-p3 @atom:p3 @atom:p3 + @bond:p3-p4 @atom:p3 @atom:p4 + @bond:p3-p5 @atom:p3 @atom:p5 + @bond:p3-s @atom:p3 @atom:s + @bond:p3-s4 @atom:p3 @atom:s4 + @bond:p3-s6 @atom:p3 @atom:s6 + @bond:p3-sh @atom:p3 @atom:sh + @bond:p3-ss @atom:p3 @atom:ss + @bond:p4-p4 @atom:p4 @atom:p4 + @bond:p4-p5 @atom:p4 @atom:p5 + @bond:p4-s @atom:p4 @atom:s + @bond:p4-s4 @atom:p4 @atom:s4 + @bond:p4-s6 @atom:p4 @atom:s6 + @bond:p4-sh @atom:p4 @atom:sh + @bond:p4-ss @atom:p4 @atom:ss + @bond:p5-p5 @atom:p5 @atom:p5 + @bond:p5-s @atom:p5 @atom:s + @bond:p5-s4 @atom:p5 @atom:s4 + @bond:p5-s6 @atom:p5 @atom:s6 + @bond:p5-sh @atom:p5 @atom:sh + @bond:p5-ss @atom:p5 @atom:ss + @bond:pe-pe @atom:pe @atom:pe + @bond:pe-pf @atom:pe @atom:pf + @bond:pe-px @atom:pe @atom:px + @bond:pe-py @atom:pe @atom:py + @bond:pe-s @atom:pe @atom:s + @bond:pe-sx @atom:pe @atom:sx + @bond:pe-sy @atom:pe @atom:sy + @bond:pf-pf @atom:pf @atom:pf + @bond:pf-px @atom:pf @atom:px + @bond:pf-py @atom:pf @atom:py + @bond:pf-s @atom:pf @atom:s + @bond:pf-sx @atom:pf @atom:sx + @bond:pf-sy @atom:pf @atom:sy + @bond:px-py @atom:px @atom:py + @bond:px-sx @atom:px @atom:sx + @bond:px-sy @atom:px @atom:sy + @bond:py-py @atom:py @atom:py + @bond:py-sx @atom:py @atom:sx + @bond:py-sy @atom:py @atom:sy + @bond:s4-s4 @atom:s4 @atom:s4 + @bond:s4-s6 @atom:s4 @atom:s6 + @bond:s4-sh @atom:s4 @atom:sh + @bond:s4-ss @atom:s4 @atom:ss + @bond:s6-s6 @atom:s6 @atom:s6 + @bond:s6-sh @atom:s6 @atom:sh + @bond:s6-ss @atom:s6 @atom:ss + @bond:sh-sh @atom:sh @atom:sh + @bond:sh-ss @atom:sh @atom:ss + @bond:s-s @atom:s @atom:s + @bond:s-s2 @atom:s @atom:s2 + @bond:s-s4 @atom:s @atom:s4 + @bond:s-s6 @atom:s @atom:s6 + @bond:s-sh @atom:s @atom:sh + @bond:s-ss @atom:s @atom:ss + @bond:ss-ss @atom:ss @atom:ss + @bond:sx-sx @atom:sx @atom:sx + @bond:sx-sy @atom:sx @atom:sy + @bond:sy-sy @atom:sy @atom:sy + @bond:br-cd @atom:br @atom:cd + @bond:c1-cf @atom:c1 @atom:cf + @bond:cd-f @atom:cd @atom:f + @bond:cd-n4 @atom:cd @atom:n4 + @bond:cd-nf @atom:cd @atom:nf + @bond:cd-no @atom:cd @atom:no + @bond:cd-sh @atom:cd @atom:sh + @bond:cd-sx @atom:cd @atom:sx + @bond:cc-cy @atom:cc @atom:cy + @bond:cf-cl @atom:cf @atom:cl + @bond:cf-cx @atom:cf @atom:cx + @bond:cf-cy @atom:cf @atom:cy + @bond:cf-na @atom:cf @atom:na + @bond:cf-ss @atom:cf @atom:ss + @bond:cq-na @atom:cq @atom:na + @bond:cq-nb @atom:cq @atom:nb + @bond:cl-py @atom:cl @atom:py + @bond:f-py @atom:f @atom:py + @bond:py-s @atom:py @atom:s + @bond:cy-nh @atom:cy @atom:nh + @bond:cy-hx @atom:cy @atom:hx + @bond:br-ce @atom:br @atom:ce + @bond:cc-i @atom:cc @atom:i + @bond:cy-n4 @atom:cy @atom:n4 + @bond:cy-p3 @atom:cy @atom:p3 + @bond:cy-na @atom:cy @atom:na + @bond:cx-n4 @atom:cx @atom:n4 + @bond:ne-s4 @atom:ne @atom:s4 + @bond:cv-ss @atom:cv @atom:ss + @bond:cy-no @atom:cy @atom:no + @bond:ce-cv @atom:ce @atom:cv + @bond:cd-i @atom:cd @atom:i + @bond:cy-s4 @atom:cy @atom:s4 + @bond:n2-sy @atom:n2 @atom:sy + @bond:cc-s6 @atom:cc @atom:s6 + @bond:i-s2 @atom:i @atom:s2 + @bond:br-cy @atom:br @atom:cy + @bond:br-cf @atom:br @atom:cf + @bond:nf-s4 @atom:nf @atom:s4 + @bond:cf-cv @atom:cf @atom:cv + @bond:cd-s6 @atom:cd @atom:s6 + @bond:ss-sy @atom:ss @atom:sy + @bond:h5-ce @atom:h5 @atom:ce + @bond:h5-cf @atom:h5 @atom:cf + @bond:ce-s4 @atom:ce @atom:s4 + @bond:cf-s4 @atom:cf @atom:s4 + @bond:cy-py @atom:cy @atom:py + @bond:cd-o @atom:cd @atom:o + @bond:ne-s6 @atom:ne @atom:s6 + @bond:nf-s6 @atom:nf @atom:s6 + @bond:ce-no @atom:ce @atom:no + @bond:cf-no @atom:cf @atom:no + } # (end of Bonds By Type) + + write_once("In Settings") { + angle_coeff @angle:hw-ow-hw harmonic 43.276 104.520 # AMBER 1 TIP3P_water + angle_coeff @angle:hw-hw-ow harmonic 0.000 127.740 # AMBER 1 (found_in_crystallographic_water_with_3_bonds) + angle_coeff @angle:br-c1-br harmonic 58.432 180.000 # Guess 0 + angle_coeff @angle:br-c1-c1 harmonic 56.125 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-c1 harmonic 65.529 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-c2 harmonic 62.451 180.000 # SOURCE3 2 + angle_coeff @angle:c1-c1-c3 harmonic 57.975 178.510 # SOURCE4_SOURCE5 618 0.7369 + angle_coeff @angle:c1-c1-ca harmonic 58.535 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-cl harmonic 63.947 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-f harmonic 80.686 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-ha harmonic 44.782 179.110 # SOURCE3_SOURCE5 219 0.5885 + angle_coeff @angle:c1-c1-hc harmonic 44.772 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-i harmonic 52.986 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-n1 harmonic 83.562 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-n2 harmonic 82.100 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-n3 harmonic 76.721 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-n4 harmonic 74.244 179.560 # SOURCE3 3 0.3096 + angle_coeff @angle:c1-c1-n harmonic 77.977 177.180 # SOURCE3 1 + angle_coeff @angle:c1-c1-na harmonic 76.884 176.750 # SOURCE3 8 2.9328 + angle_coeff @angle:c1-c1-nh harmonic 77.069 179.270 # SOURCE3 3 0.2357 + angle_coeff @angle:c1-c1-no harmonic 74.597 180.000 # SOURCE3 3 + angle_coeff @angle:c1-c1-o harmonic 82.936 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-oh harmonic 78.242 176.650 # SOURCE3 1 + angle_coeff @angle:c1-c1-os harmonic 78.471 176.930 # SOURCE3_SOURCE5 5 1.1927 + angle_coeff @angle:c1-c1-p2 harmonic 68.155 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-p3 harmonic 69.444 169.630 # SOURCE3 2 + angle_coeff @angle:c1-c1-p4 harmonic 67.414 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-p5 harmonic 69.535 176.170 # SOURCE3 2 + angle_coeff @angle:c1-c1-s4 harmonic 55.785 167.470 # SOURCE3 2 + angle_coeff @angle:c1-c1-s6 harmonic 55.388 174.380 # SOURCE3 2 + angle_coeff @angle:c1-c1-s harmonic 58.129 179.970 # SOURCE3 1 + angle_coeff @angle:c1-c1-sh harmonic 55.773 180.000 # SOURCE3 1 + angle_coeff @angle:c1-c1-ss harmonic 56.169 175.600 # SOURCE3_SOURCE5 19 1.3679 + angle_coeff @angle:c2-c1-c2 harmonic 60.185 179.370 # SOURCE3_SOURCE5 14 0.3391 + angle_coeff @angle:c2-c1-ce harmonic 60.047 179.050 # SOURCE4_SOURCE5 15 0.4210 + angle_coeff @angle:c2-c1-n1 harmonic 79.308 180.000 # HF/6-31G* 1 + angle_coeff @angle:c2-c1-o harmonic 78.963 179.500 # SOURCE2 1 + angle_coeff @angle:c2-c1-s2 harmonic 58.516 172.980 # SOURCE3 1 + angle_coeff @angle:c3-c1-c3 harmonic 53.523 180.000 # Guess 0 + angle_coeff @angle:c3-c1-cg harmonic 57.770 178.430 # SOURCE4_SOURCE5 134 0.5502 + angle_coeff @angle:c3-c1-n1 harmonic 73.216 178.580 # SOURCE4_SOURCE5 245 0.5409 + angle_coeff @angle:ca-c1-ca harmonic 54.530 180.000 # Guess 0 + angle_coeff @angle:c-c1-c1 harmonic 57.944 180.000 # SOURCE3 1 + angle_coeff @angle:cg-c1-ha harmonic 44.392 178.830 # SOURCE3_SOURCE5 60 1.1251 + angle_coeff @angle:ch-c1-ha harmonic 44.307 178.830 # SOURCE3_SOURCE5 38 0.3321 + angle_coeff @angle:cl-c1-cl harmonic 70.163 180.000 # Guess 0 + angle_coeff @angle:f-c1-f harmonic 99.768 180.000 # Guess 0 + angle_coeff @angle:i-c1-i harmonic 58.397 180.000 # Guess 0 + angle_coeff @angle:n1-c1-n1 harmonic 141.802 102.010 # SOURCE3 1 + angle_coeff @angle:n1-c1-n3 harmonic 98.388 176.010 # SOURCE2_SOURCE5 5 0.1498 + angle_coeff @angle:n1-c1-nh harmonic 98.195 177.650 # SOURCE4_SOURCE5 18 0.7845 + angle_coeff @angle:n1-c1-os harmonic 99.150 178.590 # SOURCE3 1 + angle_coeff @angle:n1-c1-p3 harmonic 86.562 171.200 # SOURCE2 1 + angle_coeff @angle:n1-c1-ss harmonic 70.134 177.470 # SOURCE3_SOURCE5 15 0.7211 + angle_coeff @angle:n2-c1-n2 harmonic 102.862 180.000 # Guess 0 + angle_coeff @angle:n2-c1-o harmonic 106.076 172.730 # SOURCE3_SOURCE5 10 0.3647 + angle_coeff @angle:n2-c1-s harmonic 73.638 175.910 # SOURCE4_SOURCE5 29 0.2046 + angle_coeff @angle:n3-c1-n3 harmonic 91.381 180.000 # Guess 0 + angle_coeff @angle:n4-c1-n4 harmonic 86.899 180.000 # Guess 0 + angle_coeff @angle:na-c1-na harmonic 90.408 180.000 # Guess 0 + angle_coeff @angle:ne-c1-o harmonic 105.956 172.330 # SOURCE3 1 + angle_coeff @angle:ne-c1-s harmonic 73.610 175.820 # SOURCE4_SOURCE5 23 0.2168 + angle_coeff @angle:nf-c1-o harmonic 105.956 172.330 # SOURCE3 1 + angle_coeff @angle:nh-c1-nh harmonic 91.735 180.000 # Guess 0 + angle_coeff @angle:n-c1-n harmonic 92.583 180.000 # Guess 0 + angle_coeff @angle:no-c1-no harmonic 87.641 180.000 # Guess 0 + angle_coeff @angle:oh-c1-oh harmonic 92.863 180.000 # Guess 0 + angle_coeff @angle:o-c1-o harmonic 105.029 180.000 # Guess 0 + angle_coeff @angle:os-c1-os harmonic 93.419 180.000 # Guess 0 + angle_coeff @angle:p2-c1-p2 harmonic 85.393 180.000 # Guess 0 + angle_coeff @angle:p3-c1-p3 harmonic 84.439 180.000 # Guess 0 + angle_coeff @angle:p4-c1-p4 harmonic 84.439 180.000 # Guess 0 + angle_coeff @angle:p5-c1-p5 harmonic 86.221 180.000 # Guess 0 + angle_coeff @angle:s2-c1-s2 harmonic 57.538 180.000 # Guess 0 + angle_coeff @angle:s4-c1-s4 harmonic 52.562 180.000 # Guess 0 + angle_coeff @angle:s6-c1-s6 harmonic 53.295 180.000 # Guess 0 + angle_coeff @angle:sh-c1-sh harmonic 54.627 180.000 # Guess 0 + angle_coeff @angle:s-c1-s harmonic 57.244 180.000 # Guess 0 + angle_coeff @angle:ss-c1-ss harmonic 54.310 180.000 # Guess 0 + angle_coeff @angle:br-c2-br harmonic 68.999 115.060 # SOURCE3 1 + angle_coeff @angle:br-c2-c2 harmonic 64.458 121.030 # SOURCE4_SOURCE5 18 0.8426 + angle_coeff @angle:br-c2-c3 harmonic 64.834 115.320 # SOURCE4_SOURCE5 18 0.6855 + angle_coeff @angle:br-c2-ce harmonic 64.279 121.530 # SOURCE4_SOURCE5 18 0.7036 + angle_coeff @angle:br-c2-h4 harmonic 42.846 113.730 # SOURCE4_SOURCE5 17 0.5888 + angle_coeff @angle:br-c2-ha harmonic 42.937 113.280 # SOURCE3 1 + angle_coeff @angle:c1-c2-c1 harmonic 74.593 116.770 # SOURCE3 1 + angle_coeff @angle:c1-c2-c2 harmonic 72.319 121.620 # SOURCE3 1 + angle_coeff @angle:c1-c2-c3 harmonic 66.250 124.900 # SOURCE4_SOURCE5 44 0.7045 + angle_coeff @angle:c1-c2-f harmonic 90.501 124.900 # SOURCE2 1 + angle_coeff @angle:c1-c2-ha harmonic 51.141 120.420 # SOURCE3_SOURCE5 30 0.4602 + angle_coeff @angle:c2-c2-c2 harmonic 71.539 121.810 # SOURCE3 10 0.3843 + angle_coeff @angle:c2-c2-c3 harmonic 66.132 123.630 # SOURCE3_SOURCE5 4623 2.2803 + angle_coeff @angle:c2-c2-ca harmonic 71.595 117.000 # SOURCE3 1 + angle_coeff @angle:c2-c2-cc harmonic 72.240 117.210 # SOURCE3 2 0.3418 + angle_coeff @angle:c2-c2-cd harmonic 72.240 117.210 # SOURCE3 2 + angle_coeff @angle:c2-c2-cl harmonic 72.331 123.110 # SOURCE4_SOURCE5 103 1.0574 + angle_coeff @angle:c2-c2-cx harmonic 66.489 124.950 # SOURCE4_SOURCE5 51 1.8521 + angle_coeff @angle:c2-c2-cy harmonic 67.939 117.180 # SOURCE2_SOURCE5 11 1.7549 + angle_coeff @angle:c2-c2-f harmonic 90.338 122.870 # SOURCE4_SOURCE5 37 0.6494 + angle_coeff @angle:c2-c2-h4 harmonic 49.914 122.670 # SOURCE4_SOURCE5 266 1.3387 + angle_coeff @angle:c2-c2-ha harmonic 50.363 120.430 # SOURCE3_SOURCE5 3764 1.3300 + angle_coeff @angle:c2-c2-hc harmonic 50.527 119.700 # SOURCE3 1 + angle_coeff @angle:c2-c2-hx harmonic 49.204 126.450 # SOURCE3 3 0.0219 + angle_coeff @angle:c2-c2-i harmonic 59.321 121.030 # SOURCE3 2 + angle_coeff @angle:c2-c2-n1 harmonic 90.093 122.980 # HF/6-31G* 1 + angle_coeff @angle:c2-c2-n2 harmonic 89.778 126.010 # SOURCE3 1 + angle_coeff @angle:c2-c2-n3 harmonic 88.404 124.550 # SOURCE3 1 + angle_coeff @angle:c2-c2-n4 harmonic 83.421 121.520 # SOURCE3 5 1.2656 + angle_coeff @angle:c2-c2-n harmonic 86.693 123.670 # SOURCE4_SOURCE5 48 1.8326 + angle_coeff @angle:c2-c2-na harmonic 87.232 121.940 # SOURCE3_SOURCE5 35 5.4059 + angle_coeff @angle:c2-c2-nh harmonic 86.653 124.990 # SOURCE3 7 0.9929 + angle_coeff @angle:c2-c2-no harmonic 85.060 123.460 # SOURCE4_SOURCE5 26 1.6311 + angle_coeff @angle:c2-c2-o harmonic 89.793 130.890 # SOURCE3 2 0.0201 + angle_coeff @angle:c2-c2-oh harmonic 89.312 122.170 # SOURCE4_SOURCE5 18 1.1206 + angle_coeff @angle:c2-c2-os harmonic 88.706 121.870 # SOURCE4_SOURCE5 114 1.6810 + angle_coeff @angle:c2-c2-p2 harmonic 88.516 115.100 # SOURCE3 1 + angle_coeff @angle:c2-c2-p3 harmonic 78.573 124.830 # SOURCE3 5 2.1222 + angle_coeff @angle:c2-c2-p4 harmonic 80.685 119.760 # SOURCE3 1 + angle_coeff @angle:c2-c2-p5 harmonic 77.141 125.970 # SOURCE3 1 + angle_coeff @angle:c2-c2-s4 harmonic 64.747 119.840 # SOURCE3 1 + angle_coeff @angle:c2-c2-s6 harmonic 64.702 120.010 # SOURCE3 1 + angle_coeff @angle:c2-c2-s harmonic 63.092 129.370 # SOURCE3 2 + angle_coeff @angle:c2-c2-sh harmonic 62.559 125.700 # SOURCE3 3 1.3390 + angle_coeff @angle:c2-c2-ss harmonic 64.815 122.350 # SOURCE4_SOURCE5 54 2.2017 + angle_coeff @angle:c3-c2-c3 harmonic 64.898 115.650 # SOURCE3_SOURCE5 1743 1.5647 + angle_coeff @angle:c3-c2-cc harmonic 65.283 125.190 # CORR_SOURCE5 50 1.5929 + angle_coeff @angle:c3-c2-cd harmonic 65.283 125.190 # CORR_SOURCE5 50 1.5929 + angle_coeff @angle:c3-c2-ce harmonic 66.056 123.150 # CORR_SOURCE5 2644 2.0746 + angle_coeff @angle:c3-c2-cf harmonic 66.056 123.150 # CORR_SOURCE5 2644 2.0746 + angle_coeff @angle:c3-c2-h4 harmonic 45.760 119.020 # SOURCE4_SOURCE5 63 1.6077 + angle_coeff @angle:c3-c2-ha harmonic 46.411 115.680 # SOURCE3_SOURCE5 3991 1.1961 + angle_coeff @angle:c3-c2-hc harmonic 45.572 120.000 # SOURCE3 1 + angle_coeff @angle:c3-c2-n2 harmonic 83.960 123.430 # SOURCE4_SOURCE5 388 2.3609 + angle_coeff @angle:c3-c2-n harmonic 84.414 114.800 # SOURCE4 12 1.8112 + angle_coeff @angle:c3-c2-na harmonic 83.495 117.200 # SOURCE3_SOURCE5 5 0.8937 + angle_coeff @angle:c3-c2-ne harmonic 84.706 120.710 # SOURCE3_SOURCE5 11 0.9157 + angle_coeff @angle:c3-c2-nf harmonic 84.706 120.710 # SOURCE3_SOURCE5 7 1.3134 + angle_coeff @angle:c3-c2-nh harmonic 84.195 116.210 # SOURCE3_SOURCE5 339 2.4814 + angle_coeff @angle:c3-c2-o harmonic 85.206 122.820 # SOURCE4_SOURCE5 12 1.1220 + angle_coeff @angle:c3-c2-oh harmonic 85.711 115.160 # SOURCE4_SOURCE5 90 2.0675 + angle_coeff @angle:c3-c2-os harmonic 86.117 112.800 # SOURCE4_SOURCE5 148 2.4217 + angle_coeff @angle:c3-c2-p2 harmonic 82.609 122.740 # SOURCE3 2 + angle_coeff @angle:c3-c2-s harmonic 64.740 115.440 # SOURCE3 2 0.0115 + angle_coeff @angle:c3-c2-ss harmonic 63.539 119.660 # SOURCE4_SOURCE5 137 2.1299 + angle_coeff @angle:ca-c2-ca harmonic 70.080 117.880 # SOURCE3 1 + angle_coeff @angle:ca-c2-hc harmonic 48.375 123.300 # SOURCE3 1 + angle_coeff @angle:c-c2-c2 harmonic 69.891 120.700 # SOURCE3 1 + angle_coeff @angle:c-c2-c3 harmonic 65.889 119.700 # SOURCE3 1 + angle_coeff @angle:c-c2-c harmonic 68.722 118.880 # SOURCE3 1 + angle_coeff @angle:cc-c2-h4 harmonic 49.786 119.850 # SOURCE4_SOURCE5 23 0.5829 + angle_coeff @angle:cc-c2-ha harmonic 50.004 118.750 # SOURCE3_SOURCE5 72 1.1667 + angle_coeff @angle:cc-c2-nh harmonic 86.562 123.120 # SOURCE4_SOURCE5 27 1.0384 + angle_coeff @angle:cc-c2-o harmonic 91.352 123.590 # SOURCE4_SOURCE5 12 0.0560 + angle_coeff @angle:cd-c2-ha harmonic 50.004 118.750 # SOURCE3_SOURCE5 72 1.1667 + angle_coeff @angle:ce-c2-cl harmonic 72.107 123.470 # SOURCE4_SOURCE5 41 0.8440 + angle_coeff @angle:ce-c2-h4 harmonic 49.654 122.310 # SOURCE4_SOURCE5 220 1.5462 + angle_coeff @angle:ce-c2-ha harmonic 50.024 120.450 # SOURCE3_SOURCE5 2139 1.1520 + angle_coeff @angle:ce-c2-na harmonic 86.108 124.170 # SOURCE4_SOURCE5 12 1.9766 + angle_coeff @angle:ce-c2-nh harmonic 87.822 120.710 # SOURCE4_SOURCE5 243 2.3407 + angle_coeff @angle:ce-c2-no harmonic 86.097 119.650 # SOURCE4_SOURCE5 10 0.9817 + angle_coeff @angle:ce-c2-o harmonic 91.992 123.370 # SOURCE4_SOURCE5 14 0.7592 + angle_coeff @angle:ce-c2-oh harmonic 88.571 123.130 # SOURCE4_SOURCE5 104 1.7734 + angle_coeff @angle:ce-c2-os harmonic 87.995 122.800 # SOURCE4_SOURCE5 149 2.3406 + angle_coeff @angle:cf-c2-ha harmonic 50.024 120.450 # SOURCE3_SOURCE5 2017 1.1895 + angle_coeff @angle:c-c2-ha harmonic 48.160 121.330 # SOURCE3 4 0.2462 + angle_coeff @angle:c-c2-hc harmonic 48.494 119.700 # SOURCE3 1 + angle_coeff @angle:cl-c2-cl harmonic 82.957 114.340 # SOURCE4_SOURCE5 29 0.6417 + angle_coeff @angle:cl-c2-h4 harmonic 49.503 113.540 # SOURCE4_SOURCE5 33 0.7337 + angle_coeff @angle:cl-c2-ha harmonic 49.579 113.200 # SOURCE3 1 + angle_coeff @angle:cx-c2-ha harmonic 47.006 116.150 # SOURCE4_SOURCE5 64 0.8729 + angle_coeff @angle:f-c2-f harmonic 120.199 111.640 # SOURCE2_SOURCE5 12 0.8567 + angle_coeff @angle:f-c2-ha harmonic 66.780 110.000 # SOURCE2 1 + angle_coeff @angle:h4-c2-n2 harmonic 64.810 120.990 # SOURCE4_SOURCE5 77 1.9305 + angle_coeff @angle:h4-c2-n harmonic 62.621 113.440 # SOURCE4_SOURCE5 78 1.0580 + angle_coeff @angle:h4-c2-na harmonic 62.675 112.970 # SOURCE4_SOURCE5 27 0.6876 + angle_coeff @angle:h4-c2-ne harmonic 64.858 119.510 # SOURCE4_SOURCE5 52 1.6395 + angle_coeff @angle:h4-c2-nh harmonic 62.613 115.080 # SOURCE4_SOURCE5 109 1.1974 + angle_coeff @angle:h4-c2-no harmonic 60.883 113.380 # SOURCE4_SOURCE5 20 0.1373 + angle_coeff @angle:h4-c2-os harmonic 63.989 113.730 # SOURCE3_SOURCE5 89 1.3113 + angle_coeff @angle:h4-c2-ss harmonic 43.595 116.670 # SOURCE3_SOURCE5 49 1.4612 + angle_coeff @angle:h5-c2-n2 harmonic 64.543 121.700 # SOURCE4_SOURCE5 71 2.1538 + angle_coeff @angle:h5-c2-na harmonic 59.208 126.390 # SOURCE3 4 0.3299 + angle_coeff @angle:h5-c2-ne harmonic 64.691 119.850 # SOURCE4_SOURCE5 44 1.3576 + angle_coeff @angle:h5-c2-nh harmonic 62.882 113.910 # SOURCE4_SOURCE5 119 0.8516 + angle_coeff @angle:ha-c2-ha harmonic 37.684 116.900 # SOURCE3_SOURCE5 1456 0.6313 + angle_coeff @angle:ha-c2-n1 harmonic 63.987 120.760 # SOURCE3 8 0.6632 + angle_coeff @angle:ha-c2-n2 harmonic 64.911 120.540 # SOURCE3 92 1.4571 + angle_coeff @angle:ha-c2-n3 harmonic 64.744 113.540 # SOURCE3 1 + angle_coeff @angle:ha-c2-n harmonic 62.620 113.400 # SOURCE3 4 1.2182 + angle_coeff @angle:ha-c2-na harmonic 62.816 112.420 # SOURCE3 8 0.6507 + angle_coeff @angle:ha-c2-ne harmonic 64.391 121.180 # SOURCE3 68 0.6824 + angle_coeff @angle:ha-c2-nf harmonic 64.391 121.180 # SOURCE3 68 + angle_coeff @angle:ha-c2-nh harmonic 62.169 116.680 # SOURCE3 13 2.5734 + angle_coeff @angle:ha-c2-no harmonic 61.209 112.140 # SOURCE3 2 0.0264 + angle_coeff @angle:ha-c2-o harmonic 67.875 117.230 # SOURCE3 2 0.0201 + angle_coeff @angle:ha-c2-oh harmonic 64.058 116.180 # SOURCE3 2 + angle_coeff @angle:ha-c2-os harmonic 64.269 112.690 # SOURCE3 13 2.5851 + angle_coeff @angle:ha-c2-p2 harmonic 57.111 121.480 # SOURCE3 122 0.4329 + angle_coeff @angle:ha-c2-p3 harmonic 53.276 114.310 # SOURCE3 3 + angle_coeff @angle:ha-c2-p4 harmonic 52.849 117.860 # SOURCE3 1 + angle_coeff @angle:ha-c2-p5 harmonic 51.984 116.000 # SOURCE3_SOURCE5 6 0.1220 + angle_coeff @angle:ha-c2-pe harmonic 56.443 121.400 # SOURCE3_SOURCE5 119 0.8904 + angle_coeff @angle:ha-c2-pf harmonic 56.443 121.400 # SOURCE3_SOURCE5 15 1.6416 + angle_coeff @angle:ha-c2-s2 harmonic 46.632 118.740 # SOURCE3 2 + angle_coeff @angle:ha-c2-s4 harmonic 43.223 115.300 # SOURCE3 2 + angle_coeff @angle:ha-c2-s harmonic 43.832 115.700 # SOURCE3 2 + angle_coeff @angle:ha-c2-s6 harmonic 42.982 116.600 # SOURCE3 2 + angle_coeff @angle:ha-c2-sh harmonic 43.327 111.740 # SOURCE3 1 + angle_coeff @angle:ha-c2-ss harmonic 43.588 116.720 # SOURCE3 7 2.7543 + angle_coeff @angle:hc-c2-hc harmonic 37.394 118.920 # SOURCE3 1 + angle_coeff @angle:hc-c2-n2 harmonic 64.965 120.400 # SOURCE3 1 + angle_coeff @angle:hc-c2-n harmonic 62.454 114.040 # SOURCE3 1 + angle_coeff @angle:hc-c2-na harmonic 61.038 119.100 # SOURCE3 1 + angle_coeff @angle:hc-c2-nh harmonic 63.084 113.360 # SOURCE3 1 + angle_coeff @angle:hc-c2-no harmonic 61.222 112.120 # SOURCE3 1 + angle_coeff @angle:hc-c2-oh harmonic 64.060 116.220 # SOURCE3 1 + angle_coeff @angle:hc-c2-os harmonic 63.327 116.110 # SOURCE3 1 + angle_coeff @angle:hc-c2-p3 harmonic 52.613 117.190 # SOURCE3 1 + angle_coeff @angle:hc-c2-p5 harmonic 51.195 119.580 # SOURCE3 1 + angle_coeff @angle:hc-c2-s4 harmonic 43.068 116.120 # SOURCE3 1 + angle_coeff @angle:hc-c2-s6 harmonic 43.193 115.450 # SOURCE3 1 + angle_coeff @angle:hc-c2-sh harmonic 42.589 115.630 # SOURCE3 1 + angle_coeff @angle:hc-c2-ss harmonic 43.793 115.620 # SOURCE3 1 + angle_coeff @angle:hx-c2-n4 harmonic 58.717 113.030 # SOURCE3 3 0.3873 + angle_coeff @angle:i-c2-i harmonic 66.122 117.940 # SOURCE3 1 + angle_coeff @angle:n1-c2-n1 harmonic 113.528 124.150 # HF/6-31G* 1 + angle_coeff @angle:n2-c2-n2 harmonic 120.816 113.820 # SOURCE3 1 + angle_coeff @angle:n2-c2-n4 harmonic 109.745 112.970 # SOURCE4_SOURCE5 13 0.4034 + angle_coeff @angle:n2-c2-na harmonic 110.312 123.620 # SOURCE3 1 + angle_coeff @angle:n2-c2-nh harmonic 110.708 124.270 # SOURCE3 12 2.4114 + angle_coeff @angle:n2-c2-oh harmonic 114.021 122.080 # SOURCE3 1 + angle_coeff @angle:n2-c2-os harmonic 114.100 119.780 # SOURCE4_SOURCE5 55 1.3881 + angle_coeff @angle:n2-c2-ss harmonic 79.299 129.770 # SOURCE3 1 + angle_coeff @angle:n3-c2-n3 harmonic 113.269 118.470 # SOURCE3 1 + angle_coeff @angle:n4-c2-n4 harmonic 102.331 113.930 # SOURCE3 1 + angle_coeff @angle:n4-c2-ss harmonic 80.666 116.270 # SOURCE4_SOURCE5 14 2.4226 + angle_coeff @angle:na-c2-na harmonic 112.735 109.330 # SOURCE3 3 3.0187 + angle_coeff @angle:ne-c2-nh harmonic 110.728 123.460 # CORR_SOURCE5 241 2.3941 + angle_coeff @angle:ne-c2-os harmonic 114.213 118.760 # SOURCE4 5 0.3382 + angle_coeff @angle:ne-c2-ss harmonic 82.205 120.510 # SOURCE4_SOURCE5 32 2.1160 + angle_coeff @angle:nf-c2-nh harmonic 110.728 123.460 # CORR_SOURCE5 241 2.3941 + angle_coeff @angle:nh-c2-nh harmonic 112.122 112.820 # SOURCE4_SOURCE5 689 1.9577 + angle_coeff @angle:nh-c2-oh harmonic 111.944 117.110 # SOURCE4_SOURCE5 15 0.8639 + angle_coeff @angle:nh-c2-os harmonic 112.490 114.300 # SOURCE4_SOURCE5 50 1.3395 + angle_coeff @angle:nh-c2-ss harmonic 84.343 111.550 # SOURCE4 37 1.1778 + angle_coeff @angle:n-c2-n2 harmonic 110.772 122.820 # SOURCE3_SOURCE5 46 2.2661 + angle_coeff @angle:n-c2-n harmonic 110.943 113.230 # SOURCE3 1 + angle_coeff @angle:n-c2-na harmonic 114.893 105.420 # SOURCE3 1 + angle_coeff @angle:n-c2-ne harmonic 109.323 125.340 # SOURCE4_SOURCE5 25 1.6082 + angle_coeff @angle:n-c2-nh harmonic 113.384 109.350 # SOURCE4_SOURCE5 61 1.6924 + angle_coeff @angle:no-c2-no harmonic 106.896 113.900 # SOURCE3 1 + angle_coeff @angle:n-c2-ss harmonic 84.310 111.190 # SOURCE4_SOURCE5 24 0.6195 + angle_coeff @angle:oh-c2-oh harmonic 115.431 114.330 # SOURCE3 1 + angle_coeff @angle:o-c2-o harmonic 122.282 121.690 # SOURCE3 1 + angle_coeff @angle:o-c2-oh harmonic 116.614 121.230 # SOURCE4_SOURCE5 12 0.0958 + angle_coeff @angle:o-c2-s harmonic 80.412 127.680 # SOURCE3 2 0.0547 + angle_coeff @angle:os-c2-os harmonic 113.284 115.050 # SOURCE3_SOURCE5 6 1.2203 + angle_coeff @angle:p2-c2-p2 harmonic 106.670 129.800 # SOURCE3 1 + angle_coeff @angle:p3-c2-p3 harmonic 102.865 115.540 # SOURCE3 1 + angle_coeff @angle:p5-c2-p5 harmonic 98.628 121.850 # SOURCE3 1 + angle_coeff @angle:s4-c2-s4 harmonic 63.778 120.320 # SOURCE3 1 + angle_coeff @angle:s4-c2-s6 harmonic 63.877 119.950 # SOURCE3 1 + angle_coeff @angle:s6-c2-s6 harmonic 63.871 119.970 # SOURCE3 1 + angle_coeff @angle:sh-c2-sh harmonic 65.736 110.480 # SOURCE3 1 + angle_coeff @angle:sh-c2-ss harmonic 64.466 117.820 # SOURCE3 1 + angle_coeff @angle:s-c2-s harmonic 64.374 121.670 # SOURCE3 1 + angle_coeff @angle:ss-c2-ss harmonic 65.740 116.400 # SOURCE3_SOURCE5 22 2.3993 + angle_coeff @angle:br-c3-br harmonic 67.612 109.740 # SOURCE4_SOURCE5 24 0.9971 + angle_coeff @angle:br-c3-c1 harmonic 63.834 111.800 # SOURCE2 3 0.2160 + angle_coeff @angle:br-c3-c3 harmonic 63.860 110.010 # SOURCE3_SOURCE5 216 1.1568 + angle_coeff @angle:br-c3-c harmonic 64.284 108.920 # SOURCE4_SOURCE5 35 2.3703 + angle_coeff @angle:br-c3-h1 harmonic 42.433 105.070 # SOURCE3_SOURCE5 175 0.8275 + angle_coeff @angle:br-c3-h2 harmonic 42.082 106.800 # SOURCE4_SOURCE5 25 0.8044 + angle_coeff @angle:br-c3-hc harmonic 42.147 106.500 # SOURCE3 1 + angle_coeff @angle:c1-c3-c1 harmonic 68.433 110.110 # SOURCE2_SOURCE5 11 0.3454 + angle_coeff @angle:c1-c3-c2 harmonic 67.184 110.920 # SOURCE4_SOURCE5 35 0.5903 + angle_coeff @angle:c1-c3-c3 harmonic 66.276 111.710 # SOURCE4_SOURCE5 624 1.1320 + angle_coeff @angle:c1-c3-ca harmonic 67.047 110.890 # SOURCE4_SOURCE5 78 1.1306 + angle_coeff @angle:c1-c3-cc harmonic 66.403 114.190 # CORR_SOURCE5 15 0.1283 + angle_coeff @angle:c1-c3-cd harmonic 66.403 114.190 # CORR_SOURCE5 15 0.1283 + angle_coeff @angle:c1-c3-cl harmonic 72.363 110.630 # SOURCE2 3 1.2257 + angle_coeff @angle:c1-c3-h1 harmonic 48.917 109.240 # SOURCE4_SOURCE5 436 0.5758 + angle_coeff @angle:c1-c3-hc harmonic 48.879 109.410 # SOURCE3_SOURCE5 495 0.5104 + angle_coeff @angle:c1-c3-hx harmonic 48.339 112.040 # SOURCE4_SOURCE5 52 0.3815 + angle_coeff @angle:c1-c3-n3 harmonic 84.763 112.730 # SOURCE4_SOURCE5 99 0.7675 + angle_coeff @angle:c1-c3-n4 harmonic 83.658 112.060 # SOURCE4_SOURCE5 25 0.5395 + angle_coeff @angle:c1-c3-n harmonic 84.975 112.380 # SOURCE4_SOURCE5 55 0.9540 + angle_coeff @angle:c1-c3-nh harmonic 84.843 112.570 # SOURCE4_SOURCE5 21 0.9525 + angle_coeff @angle:c1-c3-oh harmonic 87.220 109.440 # SOURCE4_SOURCE5 127 0.9878 + angle_coeff @angle:c1-c3-os harmonic 87.159 109.000 # SOURCE4_SOURCE5 87 0.9531 + angle_coeff @angle:c2-c3-c2 harmonic 65.947 112.000 # SOURCE4_SOURCE5 453 0.8153 + angle_coeff @angle:c2-c3-c3 harmonic 65.459 111.560 # SOURCE4_SOURCE5 9345 1.7373 + angle_coeff @angle:c2-c3-ca harmonic 65.670 112.490 # SOURCE4_SOURCE5 475 1.6791 + angle_coeff @angle:c2-c3-cc harmonic 66.148 111.910 # CORR_SOURCE5 65 1.7402 + angle_coeff @angle:c2-c3-cd harmonic 66.148 111.910 # CORR_SOURCE5 65 1.7402 + angle_coeff @angle:c2-c3-ce harmonic 65.863 111.810 # CORR_SOURCE5 85 1.8411 + angle_coeff @angle:c2-c3-cf harmonic 65.867 111.810 # CORR_SOURCE5 85 1.8411 + angle_coeff @angle:c2-c3-cl harmonic 71.864 110.510 # SOURCE4_SOURCE5 60 1.4762 + angle_coeff @angle:c2-c3-cx harmonic 65.673 112.270 # SOURCE4_SOURCE5 76 1.2985 + angle_coeff @angle:c2-c3-cy harmonic 68.713 101.630 # SOURCE4_SOURCE5 164 1.0542 + angle_coeff @angle:c2-c3-f harmonic 88.392 110.760 # SOURCE4_SOURCE5 69 0.5776 + angle_coeff @angle:c2-c3-h1 harmonic 47.561 109.960 # SOURCE3_SOURCE5 2169 0.9645 + angle_coeff @angle:c2-c3-h2 harmonic 47.195 111.690 # SOURCE4_SOURCE5 49 0.9061 + angle_coeff @angle:c2-c3-hc harmonic 47.475 110.360 # SOURCE3_SOURCE5 11033 0.8531 + angle_coeff @angle:c2-c3-hx harmonic 47.293 111.340 # SOURCE4_SOURCE5 56 0.8089 + angle_coeff @angle:c2-c3-n2 harmonic 85.005 108.720 # SOURCE4_SOURCE5 36 1.3485 + angle_coeff @angle:c2-c3-n3 harmonic 84.006 111.420 # SOURCE4_SOURCE5 447 1.5436 + angle_coeff @angle:c2-c3-n harmonic 84.129 111.290 # SOURCE4_SOURCE5 180 1.8899 + angle_coeff @angle:c2-c3-na harmonic 83.365 113.270 # SOURCE4_SOURCE5 78 1.2929 + angle_coeff @angle:c2-c3-nh harmonic 84.408 110.410 # SOURCE4_SOURCE5 134 1.7670 + angle_coeff @angle:c2-c3-oh harmonic 85.495 110.350 # SOURCE4_SOURCE5 793 1.4429 + angle_coeff @angle:c2-c3-os harmonic 85.982 108.560 # SOURCE4_SOURCE5 763 1.7474 + angle_coeff @angle:c2-c3-s4 harmonic 63.867 109.890 # SOURCE4_SOURCE5 19 0.8365 + angle_coeff @angle:c2-c3-ss harmonic 65.117 104.970 # SOURCE3 2 2.2248 + angle_coeff @angle:c3-c3-c3 harmonic 64.888 111.510 # SOURCE3_SOURCE5 61999 1.8007 + angle_coeff @angle:c3-c3-ca harmonic 65.183 112.070 # SOURCE4_SOURCE5 11982 1.5875 + angle_coeff @angle:c3-c3-cc harmonic 65.515 111.930 # CORR_SOURCE5 2280 1.5614 + angle_coeff @angle:c3-c3-cd harmonic 65.515 111.930 # CORR_SOURCE5 2280 1.5614 + angle_coeff @angle:c3-c3-ce harmonic 65.514 110.920 # CORR_SOURCE5 1159 1.8552 + angle_coeff @angle:c3-c3-cf harmonic 65.518 110.920 # CORR_SOURCE5 1159 1.8552 + angle_coeff @angle:c3-c3-cl harmonic 71.515 110.410 # SOURCE3_SOURCE5 824 0.9824 + angle_coeff @angle:c3-c3-cx harmonic 65.198 111.820 # SOURCE4 179 2.4814 + angle_coeff @angle:c3-c3-cy harmonic 64.751 112.390 # SOURCE3_SOURCE5 322 1.3623 + angle_coeff @angle:c3-c3-f harmonic 87.947 109.240 # SOURCE3_SOURCE5 785 1.1106 + angle_coeff @angle:c3-c3-h1 harmonic 46.868 109.560 # SOURCE3_SOURCE5 55294 0.8125 + angle_coeff @angle:c3-c3-h2 harmonic 46.730 110.220 # SOURCE3_SOURCE5 1083 0.9457 + angle_coeff @angle:c3-c3-hc harmonic 46.816 109.800 # SOURCE3_SOURCE5 179054 0.7972 + angle_coeff @angle:c3-c3-hx harmonic 46.677 110.560 # SOURCE3_SOURCE5 1758 0.9658 + angle_coeff @angle:c3-c3-i harmonic 60.771 111.150 # SOURCE3_SOURCE5 48 1.3033 + angle_coeff @angle:c3-c3-n1 harmonic 84.875 108.980 # SOURCE4_SOURCE5 20 0.8416 + angle_coeff @angle:c3-c3-n2 harmonic 84.123 108.800 # SOURCE3_SOURCE5 665 2.1214 + angle_coeff @angle:c3-c3-n3 harmonic 83.305 111.040 # SOURCE3_SOURCE5 12086 1.5519 + angle_coeff @angle:c3-c3-n4 harmonic 80.976 114.210 # SOURCE4_SOURCE5 1537 2.4293 + angle_coeff @angle:c3-c3-n harmonic 83.161 111.610 # SOURCE3_SOURCE5 3543 1.6672 + angle_coeff @angle:c3-c3-na harmonic 82.668 112.880 # SOURCE4_SOURCE5 1677 1.4742 + angle_coeff @angle:c3-c3-nh harmonic 83.541 110.460 # SOURCE4_SOURCE5 3983 1.4189 + angle_coeff @angle:c3-c3-no harmonic 82.142 109.410 # SOURCE4_SOURCE5 111 1.3831 + angle_coeff @angle:c3-c3-o harmonic 85.929 113.010 # SOURCE4_SOURCE5 31 1.2728 + angle_coeff @angle:c3-c3-oh harmonic 84.642 110.190 # SOURCE3_SOURCE5 10188 1.4761 + angle_coeff @angle:c3-c3-os harmonic 85.306 107.970 # SOURCE3_SOURCE5 11384 1.3754 + angle_coeff @angle:c3-c3-p3 harmonic 79.425 113.360 # SOURCE4_SOURCE5 47 0.9033 + angle_coeff @angle:c3-c3-p5 harmonic 80.490 112.020 # SOURCE4_SOURCE5 346 1.5599 + angle_coeff @angle:c3-c3-s4 harmonic 63.481 110.120 # SOURCE4_SOURCE5 117 0.9869 + angle_coeff @angle:c3-c3-s6 harmonic 64.024 110.220 # SOURCE4_SOURCE5 420 1.6420 + angle_coeff @angle:c3-c3-sh harmonic 62.313 113.130 # SOURCE4_SOURCE5 226 1.3868 + angle_coeff @angle:c3-c3-ss harmonic 63.222 110.270 # SOURCE3_SOURCE5 1315 1.5441 + angle_coeff @angle:c3-c3-sy harmonic 64.081 109.920 # SOURCE4_SOURCE5 62 0.8825 + angle_coeff @angle:ca-c3-ca harmonic 65.611 112.240 # SOURCE4_SOURCE5 1062 1.7394 + angle_coeff @angle:ca-c3-cc harmonic 65.728 112.880 # CORR_SOURCE5 146 1.4369 + angle_coeff @angle:ca-c3-cd harmonic 65.728 112.880 # CORR_SOURCE5 146 1.4369 + angle_coeff @angle:ca-c3-ce harmonic 65.614 112.210 # SOURCE4_SOURCE5 144 1.2359 + angle_coeff @angle:ca-c3-cl harmonic 71.631 110.980 # SOURCE4_SOURCE5 62 0.7657 + angle_coeff @angle:ca-c3-cx harmonic 65.472 112.510 # SOURCE4_SOURCE5 24 2.0281 + angle_coeff @angle:ca-c3-f harmonic 87.765 111.770 # SOURCE4_SOURCE5 1080 0.3344 + angle_coeff @angle:ca-c3-h1 harmonic 47.477 109.560 # SOURCE3_SOURCE5 3349 0.8812 + angle_coeff @angle:ca-c3-h2 harmonic 47.451 109.700 # SOURCE4_SOURCE5 86 1.1507 + angle_coeff @angle:ca-c3-hc harmonic 47.281 110.470 # SOURCE3_SOURCE5 13973 0.8325 + angle_coeff @angle:ca-c3-hx harmonic 47.099 111.450 # SOURCE4_SOURCE5 113 0.5046 + angle_coeff @angle:ca-c3-n2 harmonic 83.424 112.390 # SOURCE4_SOURCE5 58 1.2061 + angle_coeff @angle:ca-c3-n3 harmonic 83.546 112.160 # SOURCE4_SOURCE5 1125 1.2435 + angle_coeff @angle:ca-c3-n4 harmonic 81.721 113.800 # SOURCE4_SOURCE5 79 2.4049 + angle_coeff @angle:ca-c3-n harmonic 83.537 112.380 # SOURCE4_SOURCE5 512 1.5411 + angle_coeff @angle:ca-c3-na harmonic 83.330 112.870 # SOURCE4_SOURCE5 240 1.5673 + angle_coeff @angle:ca-c3-nc harmonic 85.966 106.510 # SOURCE3 1 + angle_coeff @angle:ca-c3-nd harmonic 85.966 106.510 # SOURCE3 1 + angle_coeff @angle:ca-c3-nh harmonic 83.853 111.390 # SOURCE4_SOURCE5 349 0.9955 + angle_coeff @angle:ca-c3-oh harmonic 85.192 110.620 # SOURCE4_SOURCE5 1007 1.2078 + angle_coeff @angle:ca-c3-os harmonic 85.631 108.950 # SOURCE4_SOURCE5 1123 1.1238 + angle_coeff @angle:ca-c3-p5 harmonic 80.237 113.600 # SOURCE4_SOURCE5 41 1.4171 + angle_coeff @angle:ca-c3-s6 harmonic 63.909 111.540 # SOURCE4_SOURCE5 38 1.2112 + angle_coeff @angle:ca-c3-ss harmonic 63.252 111.020 # SOURCE4_SOURCE5 226 1.6105 + angle_coeff @angle:ca-c3-sx harmonic 63.255 110.780 # SOURCE4_SOURCE5 40 0.6145 + angle_coeff @angle:c-c3-c1 harmonic 66.399 112.380 # SOURCE4_SOURCE5 32 1.1114 + angle_coeff @angle:c-c3-c2 harmonic 65.824 111.330 # SOURCE4_SOURCE5 282 2.0882 + angle_coeff @angle:c-c3-c3 harmonic 65.307 111.040 # SOURCE3_SOURCE5 8161 1.7693 + angle_coeff @angle:c-c3-c harmonic 65.424 111.630 # SOURCE4_SOURCE5 409 2.2030 + angle_coeff @angle:c-c3-ca harmonic 65.788 111.010 # SOURCE4_SOURCE5 1282 1.7239 + angle_coeff @angle:c-c3-cc harmonic 65.455 113.170 # CORR_SOURCE5 164 1.3730 + angle_coeff @angle:cc-c3-cc harmonic 66.183 112.390 # CORR_SOURCE5 14 0.8688 + angle_coeff @angle:cc-c3-cd harmonic 66.037 112.890 # SOURCE3_SOURCE5 10 1.0674 + angle_coeff @angle:cc-c3-cx harmonic 65.894 112.100 # SOURCE4_SOURCE5 12 1.5999 + angle_coeff @angle:c-c3-cd harmonic 65.455 113.170 # CORR_SOURCE5 164 1.3730 + angle_coeff @angle:c-c3-ce harmonic 65.523 111.890 # SOURCE4_SOURCE5 75 1.6968 + angle_coeff @angle:cc-c3-f harmonic 88.472 111.310 # CORR_SOURCE5 105 0.4710 + angle_coeff @angle:cc-c3-h1 harmonic 47.855 109.640 # SOURCE3_SOURCE5 1145 0.8896 + angle_coeff @angle:cc-c3-hc harmonic 47.671 110.490 # SOURCE3_SOURCE5 6781 0.7714 + angle_coeff @angle:cc-c3-hx harmonic 47.588 111.010 # SOURCE4_SOURCE5 19 0.7303 + angle_coeff @angle:c-c3-cl harmonic 71.700 110.410 # SOURCE4_SOURCE5 146 1.5057 + angle_coeff @angle:cc-c3-n2 harmonic 84.630 110.310 # SOURCE4_SOURCE5 32 0.5465 + angle_coeff @angle:cc-c3-n3 harmonic 84.370 111.090 # CORR_SOURCE5 192 1.4026 + angle_coeff @angle:cc-c3-n4 harmonic 81.467 115.580 # SOURCE4_SOURCE5 12 1.1723 + angle_coeff @angle:cc-c3-n harmonic 84.192 111.760 # CORR_SOURCE5 51 1.5321 + angle_coeff @angle:cc-c3-na harmonic 83.647 113.150 # SOURCE4_SOURCE5 18 0.7152 + angle_coeff @angle:cc-c3-nc harmonic 86.190 107.040 # SOURCE3 2 + angle_coeff @angle:cc-c3-nh harmonic 83.918 112.340 # CORR_SOURCE5 25 1.8212 + angle_coeff @angle:cc-c3-oh harmonic 85.441 111.160 # CORR_SOURCE5 187 1.3741 + angle_coeff @angle:cc-c3-os harmonic 86.104 108.900 # CORR_SOURCE5 213 1.1488 + angle_coeff @angle:cc-c3-p5 harmonic 79.513 116.230 # SOURCE4_SOURCE5 12 0.7766 + angle_coeff @angle:cc-c3-sh harmonic 62.454 114.020 # SOURCE3 1 + angle_coeff @angle:cc-c3-ss harmonic 63.363 111.160 # CORR_SOURCE5 65 0.8483 + angle_coeff @angle:c-c3-cx harmonic 65.687 111.150 # SOURCE4_SOURCE5 48 1.8520 + angle_coeff @angle:cd-c3-cd harmonic 66.183 112.390 # CORR_SOURCE5 14 0.8688 + angle_coeff @angle:cd-c3-f harmonic 88.472 111.310 # CORR_SOURCE5 105 0.4710 + angle_coeff @angle:cd-c3-h1 harmonic 47.855 109.640 # SOURCE3_SOURCE5 1145 0.8896 + angle_coeff @angle:cd-c3-hc harmonic 47.671 110.490 # SOURCE3_SOURCE5 6781 0.7714 + angle_coeff @angle:cd-c3-n3 harmonic 84.370 111.090 # CORR_SOURCE5 192 1.4026 + angle_coeff @angle:cd-c3-n harmonic 84.192 111.760 # CORR_SOURCE5 51 1.5321 + angle_coeff @angle:cd-c3-nd harmonic 86.190 107.040 # SOURCE3 2 + angle_coeff @angle:cd-c3-nh harmonic 83.918 112.340 # CORR_SOURCE5 25 1.8212 + angle_coeff @angle:cd-c3-oh harmonic 85.441 111.160 # CORR_SOURCE5 187 1.3741 + angle_coeff @angle:cd-c3-os harmonic 86.104 108.900 # CORR_SOURCE5 213 1.1488 + angle_coeff @angle:cd-c3-sh harmonic 62.454 114.020 # SOURCE3 1 + angle_coeff @angle:cd-c3-ss harmonic 63.363 111.160 # CORR_SOURCE5 65 0.8483 + angle_coeff @angle:ce-c3-ce harmonic 65.825 111.470 # SOURCE4_SOURCE5 53 0.5207 + angle_coeff @angle:ce-c3-cy harmonic 68.161 102.860 # CORR_SOURCE5 72 0.2321 + angle_coeff @angle:ce-c3-h1 harmonic 47.473 109.540 # CORR_SOURCE5 252 0.8257 + angle_coeff @angle:ce-c3-hc harmonic 47.247 110.590 # SOURCE3_SOURCE5 2438 0.7216 + angle_coeff @angle:ce-c3-n3 harmonic 83.687 111.760 # CORR_SOURCE5 83 0.9878 + angle_coeff @angle:ce-c3-n harmonic 84.343 110.220 # SOURCE4_SOURCE5 16 1.1101 + angle_coeff @angle:ce-c3-oh harmonic 84.964 111.190 # SOURCE4_SOURCE5 74 1.5577 + angle_coeff @angle:ce-c3-os harmonic 85.406 109.500 # SOURCE4_SOURCE5 71 1.9041 + angle_coeff @angle:ce-c3-ss harmonic 63.335 110.720 # SOURCE4_SOURCE5 19 1.8179 + angle_coeff @angle:c-c3-f harmonic 88.148 110.000 # SOURCE4_SOURCE5 101 0.9951 + angle_coeff @angle:cf-c3-cy harmonic 68.165 102.860 # CORR_SOURCE5 72 0.2321 + angle_coeff @angle:cf-c3-h1 harmonic 47.479 109.540 # CORR_SOURCE5 252 0.8257 + angle_coeff @angle:cf-c3-hc harmonic 47.253 110.590 # SOURCE3_SOURCE5 2411 0.7279 + angle_coeff @angle:cf-c3-n3 harmonic 83.693 111.760 # CORR_SOURCE5 83 0.9878 + angle_coeff @angle:c-c3-h1 harmonic 47.531 108.220 # SOURCE3_SOURCE5 3484 0.9857 + angle_coeff @angle:c-c3-h2 harmonic 47.215 109.690 # SOURCE4_SOURCE5 100 1.0452 + angle_coeff @angle:c-c3-hc harmonic 47.411 108.770 # SOURCE3_SOURCE5 11750 0.9577 + angle_coeff @angle:c-c3-hx harmonic 47.419 108.850 # SOURCE4_SOURCE5 172 0.8753 + angle_coeff @angle:cl-c3-cl harmonic 81.372 109.330 # SOURCE2_SOURCE5 325 0.5772 + angle_coeff @angle:cl-c3-f harmonic 94.073 109.110 # SOURCE4_SOURCE5 57 0.3048 + angle_coeff @angle:cl-c3-h1 harmonic 48.859 106.780 # SOURCE3_SOURCE5 860 0.4999 + angle_coeff @angle:cl-c3-h2 harmonic 48.808 106.990 # SOURCE4_SOURCE5 147 0.6435 + angle_coeff @angle:cl-c3-hc harmonic 48.661 107.650 # SOURCE2 2 2.2500 + angle_coeff @angle:cl-c3-os harmonic 91.033 110.860 # SOURCE4_SOURCE5 26 1.1129 + angle_coeff @angle:cl-c3-ss harmonic 71.130 112.530 # SOURCE4_SOURCE5 39 1.6937 + angle_coeff @angle:c-c3-n2 harmonic 84.195 109.670 # SOURCE4_SOURCE5 157 1.3668 + angle_coeff @angle:c-c3-n3 harmonic 83.673 111.140 # SOURCE4_SOURCE5 1652 1.6694 + angle_coeff @angle:c-c3-n4 harmonic 82.611 110.730 # SOURCE4_SOURCE5 103 1.8311 + angle_coeff @angle:c-c3-n harmonic 84.540 109.060 # SOURCE3_SOURCE5 905 1.7615 + angle_coeff @angle:c-c3-na harmonic 83.584 111.500 # SOURCE4_SOURCE5 87 1.4027 + angle_coeff @angle:c-c3-nh harmonic 84.373 109.350 # SOURCE4_SOURCE5 106 1.8043 + angle_coeff @angle:c-c3-oh harmonic 85.627 108.790 # SOURCE4_SOURCE5 824 1.3178 + angle_coeff @angle:c-c3-os harmonic 85.254 109.210 # SOURCE3_SOURCE5 429 1.7229 + angle_coeff @angle:c-c3-p5 harmonic 81.107 110.850 # SOURCE4_SOURCE5 32 1.9944 + angle_coeff @angle:c-c3-s6 harmonic 64.058 110.670 # SOURCE4_SOURCE5 14 2.0336 + angle_coeff @angle:c-c3-sh harmonic 63.714 108.720 # SOURCE4_SOURCE5 31 0.7714 + angle_coeff @angle:c-c3-ss harmonic 63.788 108.840 # SOURCE3_SOURCE5 149 1.5563 + angle_coeff @angle:cx-c3-cx harmonic 65.100 113.590 # SOURCE4_SOURCE5 27 1.6971 + angle_coeff @angle:cx-c3-h1 harmonic 47.373 109.680 # SOURCE4_SOURCE5 611 0.9276 + angle_coeff @angle:cx-c3-hc harmonic 47.265 110.180 # SOURCE4_SOURCE5 1366 0.9055 + angle_coeff @angle:cx-c3-hx harmonic 46.751 112.740 # SOURCE4_SOURCE5 30 0.2036 + angle_coeff @angle:cx-c3-n3 harmonic 83.086 113.180 # SOURCE4_SOURCE5 97 1.4360 + angle_coeff @angle:cx-c3-n4 harmonic 86.467 101.460 # SOURCE4_SOURCE5 26 0.1569 + angle_coeff @angle:cx-c3-n harmonic 83.435 112.430 # SOURCE4_SOURCE5 68 0.9548 + angle_coeff @angle:cx-c3-oh harmonic 85.349 109.980 # SOURCE4_SOURCE5 145 1.5821 + angle_coeff @angle:cx-c3-os harmonic 85.968 107.870 # SOURCE4_SOURCE5 126 1.4698 + angle_coeff @angle:cy-c3-h1 harmonic 47.300 108.280 # SOURCE4_SOURCE5 415 1.0438 + angle_coeff @angle:cy-c3-hc harmonic 46.770 110.750 # SOURCE3_SOURCE5 539 0.9100 + angle_coeff @angle:cy-c3-n3 harmonic 82.598 113.410 # SOURCE4_SOURCE5 17 1.2266 + angle_coeff @angle:cy-c3-oh harmonic 84.330 111.490 # SOURCE4_SOURCE5 347 0.5753 + angle_coeff @angle:cy-c3-os harmonic 85.847 107.070 # SOURCE4_SOURCE5 16 1.1669 + angle_coeff @angle:f-c3-f harmonic 121.555 107.360 # SOURCE2_SOURCE5 1178 0.5429 + angle_coeff @angle:f-c3-h1 harmonic 66.869 107.900 # SOURCE3_SOURCE5 181 0.5803 + angle_coeff @angle:f-c3-h2 harmonic 66.607 108.790 # SOURCE3_SOURCE5 66 0.6474 + angle_coeff @angle:f-c3-h3 harmonic 66.233 110.080 # SOURCE4_SOURCE5 45 0.6178 + angle_coeff @angle:f-c3-hc harmonic 66.555 108.920 # SOURCE2 5 3.0534 + angle_coeff @angle:f-c3-n2 harmonic 112.898 110.400 # SOURCE2 3 2.6470 + angle_coeff @angle:f-c3-os harmonic 114.397 110.580 # SOURCE4_SOURCE5 114 1.2792 + angle_coeff @angle:f-c3-p5 harmonic 107.070 107.610 # SOURCE4_SOURCE5 35 1.1282 + angle_coeff @angle:f-c3-s6 harmonic 83.906 109.680 # SOURCE4_SOURCE5 57 0.4273 + angle_coeff @angle:f-c3-ss harmonic 81.883 111.750 # SOURCE4_SOURCE5 38 1.8571 + angle_coeff @angle:h1-c3-h1 harmonic 38.802 108.460 # SOURCE3_SOURCE5 50971 0.8222 + angle_coeff @angle:h1-c3-n1 harmonic 62.841 107.990 # HF/6-31G*_SOURCE5 7 0.3554 + angle_coeff @angle:h1-c3-n2 harmonic 61.133 109.810 # SOURCE3_SOURCE5 957 1.0346 + angle_coeff @angle:h1-c3-n3 harmonic 61.163 109.880 # SOURCE3_SOURCE5 20428 1.2681 + angle_coeff @angle:h1-c3-n harmonic 61.544 108.880 # SOURCE3_SOURCE5 6816 1.0842 + angle_coeff @angle:h1-c3-na harmonic 61.536 108.780 # SOURCE3_SOURCE5 2896 0.9339 + angle_coeff @angle:h1-c3-nc harmonic 61.844 108.570 # SOURCE3 6 0.0764 + angle_coeff @angle:h1-c3-nd harmonic 61.844 108.570 # SOURCE3 6 + angle_coeff @angle:h1-c3-nh harmonic 61.213 109.790 # SOURCE3_SOURCE5 6106 1.0471 + angle_coeff @angle:h1-c3-no harmonic 59.962 105.470 # SOURCE4_SOURCE5 73 0.6459 + angle_coeff @angle:h1-c3-o harmonic 64.637 116.450 # SOURCE3_SOURCE5 25 1.4798 + angle_coeff @angle:h1-c3-oh harmonic 62.540 110.260 # SOURCE3_SOURCE5 7971 1.1355 + angle_coeff @angle:h1-c3-os harmonic 62.377 109.780 # SOURCE3_SOURCE5 19982 1.1092 + angle_coeff @angle:h1-c3-p5 harmonic 54.608 108.270 # SOURCE4_SOURCE5 222 1.1376 + angle_coeff @angle:h1-c3-s4 harmonic 42.850 107.920 # SOURCE3_SOURCE5 496 0.6942 + angle_coeff @angle:h1-c3-s harmonic 41.631 112.370 # SOURCE3_SOURCE5 14 0.4580 + angle_coeff @angle:h1-c3-s6 harmonic 43.600 107.150 # SOURCE3_SOURCE5 1022 0.8992 + angle_coeff @angle:h1-c3-sh harmonic 42.420 108.420 # SOURCE3_SOURCE5 259 1.4350 + angle_coeff @angle:h1-c3-ss harmonic 42.463 108.760 # SOURCE3_SOURCE5 3369 1.0506 + angle_coeff @angle:h1-c3-sx harmonic 42.605 107.700 # SOURCE3_SOURCE5 201 0.7977 + angle_coeff @angle:h1-c3-sy harmonic 43.421 107.880 # SOURCE3_SOURCE5 377 1.1089 + angle_coeff @angle:h2-c3-h2 harmonic 38.523 110.200 # SOURCE3_SOURCE5 677 0.8586 + angle_coeff @angle:h2-c3-i harmonic 39.064 104.990 # SOURCE3 2 + angle_coeff @angle:h2-c3-n2 harmonic 61.031 110.200 # SOURCE3_SOURCE5 69 0.8494 + angle_coeff @angle:h2-c3-n3 harmonic 61.318 109.350 # SOURCE4_SOURCE5 660 0.9086 + angle_coeff @angle:h2-c3-n harmonic 62.008 107.280 # SOURCE4_SOURCE5 692 1.3634 + angle_coeff @angle:h2-c3-na harmonic 61.963 107.310 # SOURCE3_SOURCE5 428 0.9670 + angle_coeff @angle:h2-c3-nc harmonic 61.596 109.470 # SOURCE3 10 0.3133 + angle_coeff @angle:h2-c3-nd harmonic 61.596 109.470 # SOURCE3 10 + angle_coeff @angle:h2-c3-nh harmonic 61.159 110.010 # SOURCE4_SOURCE5 274 1.1061 + angle_coeff @angle:h2-c3-no harmonic 59.186 108.270 # SOURCE3_SOURCE5 13 0.4528 + angle_coeff @angle:h2-c3-o harmonic 66.832 108.970 # SOURCE3 4 + angle_coeff @angle:h2-c3-oh harmonic 62.785 109.430 # SOURCE3_SOURCE5 258 1.6998 + angle_coeff @angle:h2-c3-os harmonic 62.442 109.580 # SOURCE3_SOURCE5 2823 0.6377 + angle_coeff @angle:h2-c3-s4 harmonic 42.969 107.310 # SOURCE3_SOURCE5 29 0.3344 + angle_coeff @angle:h2-c3-s harmonic 42.709 106.750 # SOURCE3 4 + angle_coeff @angle:h2-c3-s6 harmonic 43.728 106.510 # SOURCE4_SOURCE5 67 1.0466 + angle_coeff @angle:h2-c3-sh harmonic 42.525 107.870 # SOURCE3 6 0.4376 + angle_coeff @angle:h2-c3-ss harmonic 42.544 108.330 # SOURCE3_SOURCE5 279 1.1804 + angle_coeff @angle:h3-c3-n3 harmonic 61.502 108.730 # SOURCE4_SOURCE5 32 1.8953 + angle_coeff @angle:h3-c3-nc harmonic 61.634 109.370 # SOURCE3 1 + angle_coeff @angle:h3-c3-nd harmonic 61.634 109.370 # SOURCE3 1 + angle_coeff @angle:h3-c3-nh harmonic 61.116 110.200 # SOURCE4_SOURCE5 11 1.4222 + angle_coeff @angle:h3-c3-os harmonic 61.911 111.510 # SOURCE4_SOURCE5 44 1.4444 + angle_coeff @angle:h3-c3-ss harmonic 42.391 109.090 # SOURCE4_SOURCE5 19 0.8547 + angle_coeff @angle:hc-c3-hc harmonic 38.960 107.580 # SOURCE3_SOURCE5 92717 0.5328 + angle_coeff @angle:hc-c3-i harmonic 39.071 104.990 # SOURCE3 1 + angle_coeff @angle:hc-c3-n2 harmonic 61.220 109.500 # SOURCE3 1 + angle_coeff @angle:hc-c3-n3 harmonic 61.186 109.800 # SOURCE2 5 2.0070 + angle_coeff @angle:hc-c3-n4 harmonic 60.071 107.900 # SOURCE3 1 + angle_coeff @angle:hc-c3-n harmonic 61.369 109.500 # SOURCE3 1 + angle_coeff @angle:hc-c3-na harmonic 61.334 109.500 # SOURCE3 1 + angle_coeff @angle:hc-c3-nh harmonic 60.731 111.540 # SOURCE3 1 + angle_coeff @angle:hc-c3-no harmonic 59.477 107.200 # SOURCE2 1 + angle_coeff @angle:hc-c3-oh harmonic 62.756 109.500 # SOURCE3 1 + angle_coeff @angle:hc-c3-os harmonic 62.686 108.700 # SOURCE2 13 2.3739 + angle_coeff @angle:hc-c3-p2 harmonic 53.633 110.180 # SOURCE3 25 0.4057 + angle_coeff @angle:hc-c3-p3 harmonic 53.601 109.890 # SOURCE3_SOURCE5 528 0.6740 + angle_coeff @angle:hc-c3-p4 harmonic 54.339 109.450 # SOURCE3_SOURCE5 128 0.4042 + angle_coeff @angle:hc-c3-p5 harmonic 54.567 108.430 # SOURCE3_SOURCE5 513 1.0539 + angle_coeff @angle:hc-c3-px harmonic 54.606 109.700 # SOURCE3_SOURCE5 103 0.3664 + angle_coeff @angle:hc-c3-py harmonic 54.373 109.180 # SOURCE3_SOURCE5 74 0.4506 + angle_coeff @angle:hc-c3-s4 harmonic 42.934 107.500 # SOURCE2 1 + angle_coeff @angle:hc-c3-s6 harmonic 43.388 108.200 # SOURCE3 1 + angle_coeff @angle:hc-c3-sh harmonic 42.529 107.870 # SOURCE2 3 2.0981 + angle_coeff @angle:hc-c3-ss harmonic 42.463 108.760 # SOURCE2 3 1.6891 + angle_coeff @angle:hx-c3-hx harmonic 38.782 109.750 # SOURCE3_SOURCE5 5075 0.8234 + angle_coeff @angle:hx-c3-n4 harmonic 60.076 108.010 # SOURCE3_SOURCE5 6129 1.3658 + angle_coeff @angle:i-c3-i harmonic 66.247 113.120 # SOURCE3 1 + angle_coeff @angle:n1-c3-n1 harmonic 112.470 105.070 # HF/6-31G* 1 + angle_coeff @angle:n2-c3-n2 harmonic 107.595 109.680 # SOURCE3_SOURCE5 6 0.6095 + angle_coeff @angle:n2-c3-nh harmonic 106.900 111.270 # SOURCE4_SOURCE5 19 0.9194 + angle_coeff @angle:n2-c3-oh harmonic 108.058 111.890 # SOURCE4_SOURCE5 31 0.2948 + angle_coeff @angle:n2-c3-os harmonic 108.177 111.040 # SOURCE4_SOURCE5 16 1.7109 + angle_coeff @angle:n3-c3-n3 harmonic 106.945 111.230 # SOURCE4_SOURCE5 123 1.3731 + angle_coeff @angle:n3-c3-nc harmonic 106.282 113.290 # SOURCE3 1 + angle_coeff @angle:n3-c3-nd harmonic 106.282 113.290 # SOURCE3 1 + angle_coeff @angle:n3-c3-nh harmonic 107.270 110.610 # SOURCE4_SOURCE5 58 1.2027 + angle_coeff @angle:n3-c3-oh harmonic 108.693 110.700 # SOURCE4_SOURCE5 52 0.9667 + angle_coeff @angle:n3-c3-os harmonic 109.486 108.510 # SOURCE4_SOURCE5 53 1.7879 + angle_coeff @angle:n3-c3-p5 harmonic 103.225 109.410 # SOURCE4_SOURCE5 26 1.5078 + angle_coeff @angle:n3-c3-ss harmonic 81.202 107.380 # SOURCE4_SOURCE5 50 1.6843 + angle_coeff @angle:n4-c3-n4 harmonic 102.708 113.320 # SOURCE3 1 + angle_coeff @angle:na-c3-na harmonic 106.005 113.490 # SOURCE3 1 + angle_coeff @angle:na-c3-os harmonic 109.296 109.030 # SOURCE4_SOURCE5 495 0.5894 + angle_coeff @angle:nc-c3-nc harmonic 107.885 110.610 # SOURCE3 1 + angle_coeff @angle:nc-c3-nh harmonic 106.714 112.430 # SOURCE3 1 + angle_coeff @angle:nc-c3-os harmonic 106.495 115.410 # SOURCE3 3 1.0288 + angle_coeff @angle:nd-c3-nd harmonic 107.885 110.610 # SOURCE3 1 + angle_coeff @angle:nd-c3-nh harmonic 106.714 112.430 # SOURCE3 1 + angle_coeff @angle:nd-c3-os harmonic 106.495 115.410 # SOURCE3 3 + angle_coeff @angle:nh-c3-nh harmonic 109.672 105.870 # SOURCE3 1 + angle_coeff @angle:nh-c3-oh harmonic 107.958 112.270 # SOURCE4_SOURCE5 43 0.9258 + angle_coeff @angle:nh-c3-os harmonic 109.202 109.130 # SOURCE4_SOURCE5 47 1.3529 + angle_coeff @angle:nh-c3-p5 harmonic 101.809 112.500 # SOURCE4 5 1.7371 + angle_coeff @angle:nh-c3-ss harmonic 80.602 109.010 # SOURCE4_SOURCE5 19 2.2237 + angle_coeff @angle:n-c3-n2 harmonic 106.958 111.310 # SOURCE4_SOURCE5 12 1.5991 + angle_coeff @angle:n-c3-n3 harmonic 107.105 111.110 # SOURCE4_SOURCE5 37 1.6907 + angle_coeff @angle:n-c3-n harmonic 106.473 112.650 # SOURCE3_SOURCE5 30 2.1166 + angle_coeff @angle:n-c3-nh harmonic 108.332 108.660 # SOURCE4_SOURCE5 26 1.9779 + angle_coeff @angle:n-c3-oh harmonic 107.902 112.560 # SOURCE4_SOURCE5 75 1.1310 + angle_coeff @angle:no-c3-no harmonic 105.051 105.180 # SOURCE4_SOURCE5 23 1.9192 + angle_coeff @angle:n-c3-os harmonic 109.285 109.130 # SOURCE4_SOURCE5 432 0.8256 + angle_coeff @angle:n-c3-p5 harmonic 102.749 110.520 # SOURCE4_SOURCE5 12 1.2739 + angle_coeff @angle:oh-c3-oh harmonic 110.720 109.900 # SOURCE4_SOURCE5 20 1.5118 + angle_coeff @angle:oh-c3-os harmonic 110.658 109.380 # SOURCE4_SOURCE5 280 1.2270 + angle_coeff @angle:oh-c3-p5 harmonic 104.174 108.680 # SOURCE4_SOURCE5 77 1.3087 + angle_coeff @angle:oh-c3-sh harmonic 78.616 115.460 # SOURCE3 1 + angle_coeff @angle:o-c3-o harmonic 113.472 122.300 # SOURCE3 1 + angle_coeff @angle:os-c3-os harmonic 110.893 108.290 # SOURCE3_SOURCE5 723 1.0283 + angle_coeff @angle:os-c3-p5 harmonic 104.392 107.990 # SOURCE4_SOURCE5 63 2.0205 + angle_coeff @angle:os-c3-ss harmonic 81.130 108.590 # SOURCE4_SOURCE5 54 1.6231 + angle_coeff @angle:p2-c3-p2 harmonic 104.003 110.480 # SOURCE3 1 + angle_coeff @angle:p3-c3-p3 harmonic 103.975 110.160 # SOURCE3 1 + angle_coeff @angle:p5-c3-p5 harmonic 105.046 110.130 # SOURCE4 33 2.4116 + angle_coeff @angle:p5-c3-ss harmonic 81.364 111.480 # SOURCE4_SOURCE5 12 1.9291 + angle_coeff @angle:s4-c3-s4 harmonic 63.477 112.290 # SOURCE3 2 1.2724 + angle_coeff @angle:s4-c3-s6 harmonic 63.526 113.520 # SOURCE3 1 + angle_coeff @angle:s6-c3-s6 harmonic 64.593 111.220 # SOURCE3_SOURCE5 6 1.7567 + angle_coeff @angle:sh-c3-sh harmonic 61.944 116.260 # SOURCE3 1 + angle_coeff @angle:sh-c3-ss harmonic 63.545 110.730 # SOURCE3 1 + angle_coeff @angle:s-c3-s harmonic 60.088 123.350 # SOURCE3 1 + angle_coeff @angle:ss-c3-ss harmonic 63.417 111.440 # SOURCE4_SOURCE5 66 1.6272 + angle_coeff @angle:br-ca-br harmonic 67.710 117.600 # SOURCE3 1 + angle_coeff @angle:br-ca-ca harmonic 64.160 119.300 # SOURCE3_SOURCE5 640 0.4898 + angle_coeff @angle:c1-ca-c1 harmonic 66.786 120.000 # SOURCE3 1 + angle_coeff @angle:c1-ca-ca harmonic 67.736 120.000 # SOURCE3 1 + angle_coeff @angle:c2-ca-c2 harmonic 69.458 120.000 # SOURCE3 1 + angle_coeff @angle:c2-ca-ca harmonic 68.938 120.600 # SOURCE3 1 + angle_coeff @angle:c3-ca-c2 harmonic 66.051 120.000 # SOURCE3 1 + angle_coeff @angle:c3-ca-c3 harmonic 64.318 116.800 # SOURCE3 1 + angle_coeff @angle:c3-ca-ca harmonic 65.583 120.770 # SOURCE3_SOURCE5 23865 1.2220 + angle_coeff @angle:c3-ca-cp harmonic 65.482 120.630 # CORR 120 + angle_coeff @angle:c3-ca-cq harmonic 65.482 120.630 # CORR 120 + angle_coeff @angle:c3-ca-na harmonic 83.171 118.720 # SOURCE4_SOURCE5 145 1.1124 + angle_coeff @angle:c3-ca-nb harmonic 84.916 116.680 # SOURCE4_SOURCE5 1062 0.9093 + angle_coeff @angle:ca-ca-ca harmonic 68.767 120.020 # SOURCE3_SOURCE5 108055 0.7701 + angle_coeff @angle:ca-ca-cc harmonic 67.122 120.790 # SOURCE3_SOURCE5 2048 2.0941 + angle_coeff @angle:ca-ca-cd harmonic 67.122 120.790 # SOURCE3_SOURCE5 2048 2.0941 + angle_coeff @angle:ca-ca-ce harmonic 66.584 120.820 # SOURCE3_SOURCE5 3962 1.5682 + angle_coeff @angle:ca-ca-cf harmonic 66.584 120.820 # SOURCE3_SOURCE5 3948 1.5732 + angle_coeff @angle:ca-ca-cg harmonic 67.841 120.270 # SOURCE3_SOURCE5 453 0.4194 + angle_coeff @angle:ca-ca-ch harmonic 67.841 120.270 # SOURCE3_SOURCE5 447 0.4218 + angle_coeff @angle:ca-ca-cl harmonic 72.112 119.390 # SOURCE4_SOURCE5 6669 0.5363 + angle_coeff @angle:ca-ca-cp harmonic 68.394 120.690 # CORR_SOURCE5 1915 0.8596 + angle_coeff @angle:ca-ca-cq harmonic 68.394 120.690 # CORR_SOURCE5 1915 0.8596 + angle_coeff @angle:ca-ca-cx harmonic 66.227 120.830 # SOURCE4 71 1.3062 + angle_coeff @angle:ca-ca-cy harmonic 65.564 120.860 # SOURCE4 17 2.0287 + angle_coeff @angle:ca-ca-f harmonic 89.261 118.960 # SOURCE4_SOURCE5 2636 0.3804 + angle_coeff @angle:ca-ca-h4 harmonic 48.561 120.340 # SOURCE3_SOURCE5 2590 0.5568 + angle_coeff @angle:ca-ca-ha harmonic 48.680 119.880 # SOURCE3_SOURCE5 126779 0.4424 + angle_coeff @angle:ca-ca-i harmonic 61.098 119.110 # SOURCE3_SOURCE5 123 0.9416 + angle_coeff @angle:ca-ca-n1 harmonic 88.104 119.780 # HF/6-31G*_SOURCE5 14 0.4655 + angle_coeff @angle:ca-ca-n2 harmonic 89.100 119.570 # SOURCE3 1 + angle_coeff @angle:ca-ca-n4 harmonic 83.650 119.310 # SOURCE3_SOURCE5 63 1.4960 + angle_coeff @angle:ca-ca-n harmonic 85.629 120.190 # SOURCE3_SOURCE5 3041 2.2480 + angle_coeff @angle:ca-ca-na harmonic 87.167 118.340 # SOURCE3 54 3.6168 + angle_coeff @angle:ca-ca-nb harmonic 86.849 122.940 # SOURCE3_SOURCE5 5507 1.1495 + angle_coeff @angle:ca-ca-nc harmonic 87.635 119.720 # SOURCE3 22 3.3994 + angle_coeff @angle:ca-ca-nd harmonic 87.635 119.720 # SOURCE3 22 3.3994 + angle_coeff @angle:ca-ca-ne harmonic 85.610 120.610 # SOURCE3_SOURCE5 349 2.0914 + angle_coeff @angle:ca-ca-nf harmonic 85.610 120.610 # SOURCE3_SOURCE5 349 2.0914 + angle_coeff @angle:ca-ca-nh harmonic 86.163 120.950 # SOURCE3_SOURCE5 4970 1.2168 + angle_coeff @angle:ca-ca-no harmonic 84.250 119.010 # SOURCE3_SOURCE5 854 0.7071 + angle_coeff @angle:ca-ca-o harmonic 89.534 123.260 # SOURCE4_SOURCE5 35 1.2620 + angle_coeff @angle:ca-ca-oh harmonic 87.211 119.900 # SOURCE3_SOURCE5 6384 1.7827 + angle_coeff @angle:ca-ca-os harmonic 87.289 119.200 # SOURCE3 52 0.5240 + angle_coeff @angle:ca-ca-p2 harmonic 81.329 114.360 # SOURCE3 1 + angle_coeff @angle:ca-ca-p3 harmonic 79.908 120.010 # SOURCE3_SOURCE5 24 1.1566 + angle_coeff @angle:ca-ca-p4 harmonic 80.525 120.300 # SOURCE3 1 + angle_coeff @angle:ca-ca-p5 harmonic 80.938 120.240 # SOURCE4_SOURCE5 15 0.0746 + angle_coeff @angle:ca-ca-pe harmonic 79.643 120.450 # SOURCE3 20 0.2719 + angle_coeff @angle:ca-ca-pf harmonic 79.643 120.450 # SOURCE3 20 0.2719 + angle_coeff @angle:ca-ca-px harmonic 79.761 120.530 # SOURCE3 10 0.4509 + angle_coeff @angle:ca-ca-py harmonic 80.172 120.250 # SOURCE3_SOURCE5 75 1.5353 + angle_coeff @angle:ca-ca-s4 harmonic 63.561 119.150 # SOURCE3 1 + angle_coeff @angle:ca-ca-s6 harmonic 63.822 120.430 # SOURCE4_SOURCE5 89 1.1843 + angle_coeff @angle:ca-ca-s harmonic 64.056 122.550 # SOURCE3 4 + angle_coeff @angle:ca-ca-sh harmonic 63.072 121.780 # SOURCE4_SOURCE5 54 1.3490 + angle_coeff @angle:ca-ca-ss harmonic 63.530 120.060 # SOURCE3_SOURCE5 1341 2.1632 + angle_coeff @angle:ca-ca-sx harmonic 62.473 119.280 # SOURCE3_SOURCE5 140 1.1919 + angle_coeff @angle:ca-ca-sy harmonic 63.407 119.420 # SOURCE3_SOURCE5 1489 0.7572 + angle_coeff @angle:c-ca-c3 harmonic 64.497 118.060 # SOURCE3 1 + angle_coeff @angle:c-ca-c harmonic 64.519 120.000 # SOURCE3 1 + angle_coeff @angle:c-ca-ca harmonic 66.351 120.330 # SOURCE3_SOURCE5 8320 1.9221 + angle_coeff @angle:cc-ca-cp harmonic 66.010 124.300 # SOURCE4_SOURCE5 20 0.6423 + angle_coeff @angle:cc-ca-nb harmonic 86.709 117.750 # CORR_SOURCE5 42 1.7067 + angle_coeff @angle:cd-ca-nb harmonic 86.709 117.750 # CORR_SOURCE5 42 1.7067 + angle_coeff @angle:ce-ca-na harmonic 84.062 119.920 # SOURCE4_SOURCE5 38 0.5659 + angle_coeff @angle:ce-ca-nb harmonic 86.028 117.560 # CORR_SOURCE5 91 0.8492 + angle_coeff @angle:cf-ca-nb harmonic 86.028 117.560 # CORR_SOURCE5 91 0.8492 + angle_coeff @angle:cg-ca-cp harmonic 67.320 121.530 # SOURCE4_SOURCE5 24 0.1831 + angle_coeff @angle:c-ca-ha harmonic 46.900 115.900 # SOURCE3 1 + angle_coeff @angle:cl-ca-cl harmonic 80.510 118.720 # SOURCE3 1 + angle_coeff @angle:cl-ca-cp harmonic 71.726 120.390 # SOURCE4_SOURCE5 52 0.5449 + angle_coeff @angle:cl-ca-nb harmonic 92.329 116.180 # SOURCE4_SOURCE5 152 0.5909 + angle_coeff @angle:c-ca-nb harmonic 85.429 117.780 # SOURCE4_SOURCE5 262 1.1507 + angle_coeff @angle:c-ca-nc harmonic 80.781 130.800 # SOURCE3 1 + angle_coeff @angle:c-ca-nd harmonic 80.781 130.800 # SOURCE3 1 + angle_coeff @angle:cp-ca-f harmonic 88.831 119.420 # SOURCE4_SOURCE5 46 0.2425 + angle_coeff @angle:cp-ca-h4 harmonic 48.404 120.090 # SOURCE4_SOURCE5 62 0.4243 + angle_coeff @angle:cp-ca-ha harmonic 48.475 119.860 # CORR_SOURCE5 1240 0.5472 + angle_coeff @angle:cp-ca-na harmonic 90.665 108.790 # SOURCE4_SOURCE5 514 0.5055 + angle_coeff @angle:cp-ca-nb harmonic 86.369 123.580 # SOURCE4_SOURCE5 129 0.8391 + angle_coeff @angle:cp-ca-nh harmonic 85.714 121.560 # SOURCE4_SOURCE5 30 0.5872 + angle_coeff @angle:cp-ca-oh harmonic 86.623 120.850 # SOURCE4_SOURCE5 41 1.3658 + angle_coeff @angle:cp-ca-ss harmonic 65.950 111.170 # SOURCE4_SOURCE5 24 1.8180 + angle_coeff @angle:cp-ca-sy harmonic 65.646 111.180 # CORR 4 + angle_coeff @angle:cq-ca-ha harmonic 48.475 119.860 # CORR_SOURCE5 1240 0.5472 + angle_coeff @angle:cq-ca-sy harmonic 65.646 111.180 # CORR 4 + angle_coeff @angle:f-ca-f harmonic 116.252 117.500 # SOURCE3 1 + angle_coeff @angle:f-ca-nb harmonic 116.437 114.670 # SOURCE4_SOURCE5 42 0.4295 + angle_coeff @angle:h4-ca-n harmonic 61.444 116.020 # SOURCE3 1 + angle_coeff @angle:h4-ca-na harmonic 62.367 116.320 # SOURCE3_SOURCE5 394 0.4031 + angle_coeff @angle:h4-ca-nb harmonic 64.066 116.030 # SOURCE3_SOURCE5 2217 0.2861 + angle_coeff @angle:h4-ca-nc harmonic 62.978 118.360 # SOURCE3 1 + angle_coeff @angle:h4-ca-nd harmonic 62.978 118.360 # SOURCE3 1 + angle_coeff @angle:h4-ca-os harmonic 64.330 111.150 # SOURCE3 1 + angle_coeff @angle:h4-ca-ss harmonic 42.528 116.190 # SOURCE3 1 + angle_coeff @angle:h5-ca-nb harmonic 64.141 115.820 # SOURCE3_SOURCE5 618 0.3893 + angle_coeff @angle:h5-ca-nc harmonic 62.019 122.110 # SOURCE3 1 + angle_coeff @angle:h5-ca-nd harmonic 62.019 122.110 # SOURCE3 1 + angle_coeff @angle:ha-ca-n2 harmonic 65.427 116.000 # SOURCE2 1 + angle_coeff @angle:ha-ca-p2 harmonic 51.256 122.560 # SOURCE3 1 + angle_coeff @angle:i-ca-i harmonic 67.026 119.280 # SOURCE3 1 + angle_coeff @angle:n1-ca-n1 harmonic 114.391 117.030 # HF/6-31G* 1 + angle_coeff @angle:n2-ca-n2 harmonic 115.741 120.000 # SOURCE3 1 + angle_coeff @angle:n2-ca-na harmonic 112.235 119.600 # SOURCE3 1 + angle_coeff @angle:n4-ca-n4 harmonic 102.984 116.820 # SOURCE3 1 + angle_coeff @angle:na-ca-na harmonic 115.064 107.620 # SOURCE4_SOURCE5 11 0.8382 + angle_coeff @angle:na-ca-nb harmonic 107.575 127.090 # SOURCE4_SOURCE5 708 1.9791 + angle_coeff @angle:na-ca-nh harmonic 109.505 118.660 # SOURCE4_SOURCE5 73 0.9977 + angle_coeff @angle:nb-ca-nb harmonic 109.369 127.260 # SOURCE4_SOURCE5 1586 1.1854 + angle_coeff @angle:nb-ca-nc harmonic 109.175 126.500 # CORR_SOURCE5 33 1.0453 + angle_coeff @angle:nb-ca-nd harmonic 109.175 126.500 # CORR_SOURCE5 33 1.0453 + angle_coeff @angle:nb-ca-nh harmonic 112.063 116.940 # SOURCE4_SOURCE5 2042 0.7868 + angle_coeff @angle:nb-ca-oh harmonic 112.676 117.680 # SOURCE4_SOURCE5 182 0.7979 + angle_coeff @angle:nb-ca-os harmonic 111.458 119.720 # SOURCE4_SOURCE5 194 0.7211 + angle_coeff @angle:nb-ca-sh harmonic 80.990 117.610 # SOURCE4_SOURCE5 35 1.3741 + angle_coeff @angle:nb-ca-ss harmonic 80.595 118.800 # SOURCE4_SOURCE5 111 1.8247 + angle_coeff @angle:nc-ca-nc harmonic 107.717 128.740 # SOURCE3 1 + angle_coeff @angle:nc-ca-nh harmonic 110.670 118.860 # SOURCE3 1 + angle_coeff @angle:nd-ca-nd harmonic 107.717 128.740 # SOURCE3 1 + angle_coeff @angle:nd-ca-nh harmonic 110.670 118.860 # SOURCE3 1 + angle_coeff @angle:nh-ca-nh harmonic 108.376 120.980 # SOURCE3 1 + angle_coeff @angle:n-ca-nc harmonic 107.316 123.860 # SOURCE3 1 + angle_coeff @angle:n-ca-nd harmonic 107.316 123.860 # SOURCE3 1 + angle_coeff @angle:n-ca-nh harmonic 109.547 116.160 # SOURCE3 1 + angle_coeff @angle:no-ca-no harmonic 103.915 117.140 # SOURCE3 1 + angle_coeff @angle:oh-ca-oh harmonic 110.589 120.000 # SOURCE3 1 + angle_coeff @angle:o-ca-o harmonic 118.708 126.820 # SOURCE3 1 + angle_coeff @angle:os-ca-os harmonic 113.107 113.730 # SOURCE3 1 + angle_coeff @angle:p2-ca-p2 harmonic 100.107 121.200 # SOURCE3 1 + angle_coeff @angle:p3-ca-p3 harmonic 100.783 121.460 # SOURCE3 1 + angle_coeff @angle:p5-ca-p5 harmonic 103.117 120.000 # SOURCE3 1 + angle_coeff @angle:s4-ca-s4 harmonic 66.946 105.810 # SOURCE3 1 + angle_coeff @angle:s6-ca-s6 harmonic 67.745 105.810 # SOURCE3 1 + angle_coeff @angle:sh-ca-sh harmonic 63.051 120.240 # SOURCE3 1 + angle_coeff @angle:s-ca-s harmonic 63.293 125.140 # SOURCE3 1 + angle_coeff @angle:ss-ca-ss harmonic 64.440 115.150 # SOURCE3 1 + angle_coeff @angle:br-c-br harmonic 67.692 113.100 # SOURCE3 1 + angle_coeff @angle:br-c-c3 harmonic 64.598 110.740 # SOURCE3 1 + angle_coeff @angle:br-c-o harmonic 78.490 121.460 # SOURCE3 5 1.6264 + angle_coeff @angle:c1-c-c1 harmonic 67.194 115.320 # SOURCE3 1 + angle_coeff @angle:c1-c-o harmonic 87.628 122.340 # SOURCE3 1 + angle_coeff @angle:c2-c-c2 harmonic 69.337 116.780 # SOURCE3 1 + angle_coeff @angle:c2-c-ha harmonic 49.151 115.950 # SOURCE3 1 + angle_coeff @angle:c2-c-o harmonic 91.182 119.120 # SOURCE3 2 + angle_coeff @angle:c2-c-s harmonic 66.780 119.160 # SOURCE3 2 + angle_coeff @angle:c3-c-c3 harmonic 64.041 116.500 # SOURCE3_SOURCE5 720 1.3034 + angle_coeff @angle:c3-c-ca harmonic 64.216 118.400 # SOURCE4_SOURCE5 749 1.4991 + angle_coeff @angle:c3-c-cc harmonic 64.984 117.290 # CORR_SOURCE5 118 1.7737 + angle_coeff @angle:c3-c-cd harmonic 64.984 117.290 # CORR_SOURCE5 118 1.7737 + angle_coeff @angle:c3-c-ce harmonic 64.919 116.440 # CORR_SOURCE5 543 1.3559 + angle_coeff @angle:c3-c-cf harmonic 64.919 116.440 # CORR_SOURCE5 543 1.3559 + angle_coeff @angle:c3-c-cg harmonic 65.958 115.000 # SOURCE2 1 + angle_coeff @angle:c3-c-ch harmonic 65.958 115.000 # SOURCE2 1 + angle_coeff @angle:c3-c-cl harmonic 71.237 111.990 # SOURCE3 2 0.0125 + angle_coeff @angle:c3-c-f harmonic 88.418 110.700 # SOURCE2 1 + angle_coeff @angle:c3-c-h4 harmonic 46.112 114.640 # SOURCE4_SOURCE5 193 0.4989 + angle_coeff @angle:c3-c-ha harmonic 46.047 115.220 # SOURCE3 15 0.3181 + angle_coeff @angle:c3-c-i harmonic 60.388 112.940 # SOURCE3 1 + angle_coeff @angle:c3-c-n2 harmonic 83.534 114.530 # SOURCE3 1 + angle_coeff @angle:c3-c-n4 harmonic 81.106 112.260 # SOURCE3 2 + angle_coeff @angle:c3-c-n harmonic 84.266 115.180 # SOURCE3_SOURCE5 2997 1.3885 + angle_coeff @angle:c3-c-ne harmonic 84.941 112.610 # CORR_SOURCE5 19 2.4426 + angle_coeff @angle:c3-c-nf harmonic 84.941 112.610 # CORR_SOURCE5 19 2.4426 + angle_coeff @angle:c3-c-o harmonic 84.552 123.200 # SOURCE3_SOURCE5 10083 1.8011 + angle_coeff @angle:c3-c-oh harmonic 85.803 112.730 # SOURCE3_SOURCE5 1989 1.3796 + angle_coeff @angle:c3-c-os harmonic 86.419 110.720 # SOURCE3_SOURCE5 1786 0.9391 + angle_coeff @angle:c3-c-p3 harmonic 77.773 116.420 # SOURCE3 3 0.1291 + angle_coeff @angle:c3-c-p5 harmonic 76.995 118.900 # SOURCE3 1 + angle_coeff @angle:c3-c-pe harmonic 77.418 114.850 # SOURCE3 1 + angle_coeff @angle:c3-c-pf harmonic 77.418 114.850 # SOURCE3 1 + angle_coeff @angle:c3-c-px harmonic 77.387 115.600 # SOURCE3 1 + angle_coeff @angle:c3-c-py harmonic 77.698 118.160 # SOURCE3 3 1.0735 + angle_coeff @angle:c3-c-s4 harmonic 61.352 114.790 # SOURCE3 1 + angle_coeff @angle:c3-c-s6 harmonic 61.371 114.720 # SOURCE3 1 + angle_coeff @angle:c3-c-s harmonic 63.941 123.150 # SOURCE3_SOURCE5 66 1.3121 + angle_coeff @angle:c3-c-sh harmonic 63.752 112.650 # SOURCE3_SOURCE5 9 1.5127 + angle_coeff @angle:c3-c-ss harmonic 63.438 113.510 # SOURCE3_SOURCE5 65 0.9334 + angle_coeff @angle:c3-c-sx harmonic 61.201 113.970 # SOURCE3 3 0.0610 + angle_coeff @angle:c3-c-sy harmonic 61.612 114.280 # SOURCE3 3 0.7341 + angle_coeff @angle:ca-c-ca harmonic 65.033 118.110 # SOURCE4_SOURCE5 506 1.8633 + angle_coeff @angle:ca-c-cc harmonic 66.124 116.000 # CORR_SOURCE5 670 1.7109 + angle_coeff @angle:ca-c-cd harmonic 66.124 116.000 # CORR_SOURCE5 670 1.7109 + angle_coeff @angle:ca-c-ce harmonic 64.959 119.020 # CORR_SOURCE5 83 1.3943 + angle_coeff @angle:ca-c-cf harmonic 64.959 119.020 # CORR_SOURCE5 83 1.3943 + angle_coeff @angle:ca-c-h4 harmonic 46.911 115.140 # SOURCE4_SOURCE5 122 0.7683 + angle_coeff @angle:ca-c-ha harmonic 47.184 114.120 # SOURCE3 1 + angle_coeff @angle:ca-c-n harmonic 85.392 115.250 # SOURCE4_SOURCE5 1494 1.4889 + angle_coeff @angle:ca-c-ne harmonic 85.290 114.710 # SOURCE4_SOURCE5 14 0.5855 + angle_coeff @angle:ca-c-o harmonic 86.207 122.600 # SOURCE3_SOURCE5 3960 1.5802 + angle_coeff @angle:ca-c-oh harmonic 86.748 113.450 # SOURCE4_SOURCE5 656 0.8414 + angle_coeff @angle:ca-c-os harmonic 86.963 112.440 # SOURCE3_SOURCE5 493 0.8365 + angle_coeff @angle:ca-c-s harmonic 64.593 122.680 # SOURCE4_SOURCE5 32 1.3788 + angle_coeff @angle:ca-c-sh harmonic 62.515 118.630 # SOURCE3 1 + angle_coeff @angle:ca-c-ss harmonic 63.406 115.050 # SOURCE4_SOURCE5 37 1.0695 + angle_coeff @angle:br-cc-c harmonic 65.156 116.280 # SOURCE4_SOURCE5 32 1.1116 + angle_coeff @angle:br-cc-cc harmonic 63.389 124.050 # SOURCE4_SOURCE5 31 1.9388 + angle_coeff @angle:br-cc-cd harmonic 63.686 124.230 # SOURCE4_SOURCE5 116 2.3356 + angle_coeff @angle:br-cc-na harmonic 80.565 121.580 # SOURCE4_SOURCE5 19 0.8500 + angle_coeff @angle:c2-cc-c3 harmonic 65.262 126.110 # SOURCE3 2 + angle_coeff @angle:c2-cc-ca harmonic 66.952 124.420 # CORR_SOURCE5 25 1.8245 + angle_coeff @angle:c2-cc-cc harmonic 68.308 122.190 # CORR_SOURCE5 46 2.3853 + angle_coeff @angle:c2-cc-cd harmonic 71.286 117.020 # SOURCE3 2 0.0703 + angle_coeff @angle:c2-cc-ha harmonic 49.231 122.720 # SOURCE3 2 0.0092 + angle_coeff @angle:c2-cc-n harmonic 86.150 124.910 # SOURCE3_SOURCE5 5 1.6803 + angle_coeff @angle:c2-cc-os harmonic 87.991 121.420 # CORR_SOURCE5 24 0.9570 + angle_coeff @angle:c-c-c3 harmonic 63.621 116.170 # SOURCE3_SOURCE5 58 1.1332 + angle_coeff @angle:c3-cc-ca harmonic 63.318 126.520 # CORR_SOURCE5 370 1.8946 + angle_coeff @angle:c3-cc-cc harmonic 66.709 115.970 # SOURCE3 4 3.0507 + angle_coeff @angle:c3-cc-cd harmonic 66.802 119.450 # SOURCE3 35 8.2040 + angle_coeff @angle:c3-cc-cf harmonic 67.395 117.840 # CORR 2 + angle_coeff @angle:c3-cc-ha harmonic 45.517 121.520 # SOURCE3 32 3.2091 + angle_coeff @angle:c3-cc-n2 harmonic 83.336 125.690 # CORR_SOURCE5 12 1.9935 + angle_coeff @angle:c3-cc-n harmonic 83.558 119.190 # CORR_SOURCE5 107 2.1078 + angle_coeff @angle:c3-cc-na harmonic 82.356 122.730 # CORR_SOURCE5 961 1.6482 + angle_coeff @angle:c3-cc-nc harmonic 83.215 120.950 # CORR_SOURCE5 456 0.8756 + angle_coeff @angle:c3-cc-nd harmonic 83.886 122.410 # CORR_SOURCE5 653 1.6992 + angle_coeff @angle:c3-cc-os harmonic 84.855 116.800 # CORR_SOURCE5 306 0.8990 + angle_coeff @angle:c3-cc-ss harmonic 62.656 121.530 # CORR_SOURCE5 270 1.0948 + angle_coeff @angle:c-c-c harmonic 64.391 111.680 # SOURCE3 2 6.1226 + angle_coeff @angle:c-c-ca harmonic 63.623 118.600 # SOURCE4_SOURCE5 90 1.0263 + angle_coeff @angle:ca-cc-cc harmonic 69.336 111.040 # SOURCE3 9 7.9455 + angle_coeff @angle:ca-cc-cd harmonic 69.802 113.510 # SOURCE3 26 7.4229 + angle_coeff @angle:ca-cc-ce harmonic 64.258 127.010 # SOURCE4_SOURCE5 38 1.6763 + angle_coeff @angle:ca-cc-h4 harmonic 45.368 129.250 # SOURCE3_SOURCE5 54 1.5632 + angle_coeff @angle:ca-cc-ha harmonic 46.300 124.040 # SOURCE3 34 3.6691 + angle_coeff @angle:ca-cc-n harmonic 85.642 117.670 # CORR 18 + angle_coeff @angle:ca-cc-nc harmonic 84.897 120.590 # CORR_SOURCE5 224 1.0853 + angle_coeff @angle:ca-cc-nd harmonic 85.294 123.240 # CORR_SOURCE5 246 2.3557 + angle_coeff @angle:ca-cc-nh harmonic 84.253 122.130 # SOURCE4_SOURCE5 20 1.7636 + angle_coeff @angle:ca-cc-oh harmonic 86.577 117.550 # CORR_SOURCE5 35 1.9318 + angle_coeff @angle:ca-cc-os harmonic 87.229 114.750 # CORR_SOURCE5 247 2.0579 + angle_coeff @angle:ca-cc-ss harmonic 63.408 120.800 # CORR_SOURCE5 80 2.1212 + angle_coeff @angle:c-cc-c2 harmonic 67.513 121.170 # CORR_SOURCE5 28 1.6484 + angle_coeff @angle:c-cc-c3 harmonic 65.378 117.760 # CORR_SOURCE5 566 1.9588 + angle_coeff @angle:c-cc-c harmonic 65.240 121.070 # CORR_SOURCE5 128 0.8902 + angle_coeff @angle:c-c-cc harmonic 66.020 111.670 # SOURCE3 4 5.5146 + angle_coeff @angle:c-cc-ca harmonic 65.005 122.950 # SOURCE3 1 + angle_coeff @angle:c-cc-cc harmonic 65.674 122.690 # SOURCE3 2 + angle_coeff @angle:cc-c-cc harmonic 66.696 115.840 # CORR_SOURCE5 115 1.4659 + angle_coeff @angle:cc-cc-cc harmonic 70.129 110.700 # SOURCE3 54 3.4091 + angle_coeff @angle:cc-cc-cd harmonic 70.348 114.190 # SOURCE3 517 6.5960 + angle_coeff @angle:cc-cc-ce harmonic 64.853 127.060 # CORR_SOURCE5 61 2.3233 + angle_coeff @angle:cc-cc-cf harmonic 68.022 122.720 # CORR_SOURCE5 66 1.9701 + angle_coeff @angle:cc-cc-cg harmonic 65.805 125.910 # CORR_SOURCE5 41 1.1646 + angle_coeff @angle:c-cc-cd harmonic 67.187 121.350 # CORR_SOURCE5 3554 2.2084 + angle_coeff @angle:cc-c-cd harmonic 67.592 112.790 # SOURCE3 1 + angle_coeff @angle:c-cc-ce harmonic 65.406 121.570 # CORR_SOURCE5 29 1.1305 + angle_coeff @angle:cc-c-ce harmonic 66.433 115.570 # SOURCE4_SOURCE5 14 1.2088 + angle_coeff @angle:cc-cc-f harmonic 88.377 119.190 # SOURCE4_SOURCE5 26 0.8983 + angle_coeff @angle:c-cc-cg harmonic 67.046 117.880 # SOURCE4_SOURCE5 26 0.6759 + angle_coeff @angle:cc-cc-h4 harmonic 46.348 127.960 # SOURCE3_SOURCE5 391 2.1732 + angle_coeff @angle:cc-cc-ha harmonic 47.634 121.070 # CORR_SOURCE5 2414 2.2010 + angle_coeff @angle:c-cc-cl harmonic 72.591 116.380 # CORR_SOURCE5 50 1.2099 + angle_coeff @angle:cc-cc-n2 harmonic 87.356 122.210 # CORR_SOURCE5 37 1.6493 + angle_coeff @angle:cc-cc-n harmonic 85.753 119.890 # SOURCE3 36 0.2095 + angle_coeff @angle:cc-cc-na harmonic 86.536 117.770 # SOURCE3_SOURCE5 865 1.5665 + angle_coeff @angle:cc-cc-nc harmonic 85.332 121.980 # CORR_SOURCE5 141 1.9633 + angle_coeff @angle:cc-cc-nd harmonic 90.306 112.560 # SOURCE3 141 4.2871 + angle_coeff @angle:cc-cc-nh harmonic 86.018 119.720 # CORR_SOURCE5 348 1.7785 + angle_coeff @angle:cc-cc-oh harmonic 86.201 121.270 # CORR_SOURCE5 11 2.2744 + angle_coeff @angle:cc-cc-os harmonic 87.213 117.340 # CORR_SOURCE5 217 1.9304 + angle_coeff @angle:cc-cc-pd harmonic 84.517 115.360 # SOURCE3 84 + angle_coeff @angle:cc-cc-ss harmonic 63.877 120.210 # CORR_SOURCE5 52 2.1160 + angle_coeff @angle:cc-cc-sy harmonic 61.106 128.250 # SOURCE4_SOURCE5 20 0.9014 + angle_coeff @angle:c-c-cd harmonic 66.020 111.670 # SOURCE3 4 5.5146 + angle_coeff @angle:cd-cc-cd harmonic 70.027 120.080 # CORR_SOURCE5 119 1.6139 + angle_coeff @angle:cd-cc-ce harmonic 65.759 128.050 # CORR_SOURCE5 350 2.4628 + angle_coeff @angle:cd-cc-cl harmonic 71.687 123.410 # CORR_SOURCE5 115 2.1217 + angle_coeff @angle:cd-cc-f harmonic 89.570 121.190 # SOURCE4_SOURCE5 82 0.7206 + angle_coeff @angle:cd-cc-h4 harmonic 47.759 128.480 # SOURCE3_SOURCE5 3291 2.3189 + angle_coeff @angle:cd-cc-ha harmonic 49.040 121.760 # SOURCE3_SOURCE5 4433 1.8701 + angle_coeff @angle:cd-cc-n harmonic 86.990 121.330 # SOURCE3_SOURCE5 821 1.9126 + angle_coeff @angle:cd-cc-na harmonic 92.653 106.990 # SOURCE3_SOURCE5 3003 2.3845 + angle_coeff @angle:cd-cc-nc harmonic 91.057 111.650 # CORR_SOURCE5 1656 1.8430 + angle_coeff @angle:cd-cc-nh harmonic 86.331 123.840 # CORR_SOURCE5 152 2.2360 + angle_coeff @angle:cd-cc-no harmonic 82.947 128.690 # SOURCE4_SOURCE5 314 1.4409 + angle_coeff @angle:cd-cc-oh harmonic 87.177 123.780 # CORR_SOURCE5 251 1.1988 + angle_coeff @angle:cd-cc-os harmonic 87.957 120.300 # SOURCE3 64 5.4354 + angle_coeff @angle:cd-cc-ss harmonic 66.887 111.550 # CORR_SOURCE5 1048 1.8648 + angle_coeff @angle:cd-cc-sy harmonic 62.501 124.550 # CORR_SOURCE5 56 1.7107 + angle_coeff @angle:ce-cc-na harmonic 83.371 124.350 # CORR_SOURCE5 87 1.3591 + angle_coeff @angle:ce-cc-nc harmonic 84.769 121.100 # CORR_SOURCE5 43 1.2959 + angle_coeff @angle:ce-cc-nd harmonic 85.887 121.700 # CORR_SOURCE5 58 1.4179 + angle_coeff @angle:ce-cc-os harmonic 85.796 118.760 # CORR_SOURCE5 92 1.3159 + angle_coeff @angle:ce-cc-ss harmonic 63.222 121.580 # CORR_SOURCE5 54 1.3126 + angle_coeff @angle:c-cc-f harmonic 87.759 116.980 # SOURCE4_SOURCE5 49 0.4690 + angle_coeff @angle:cg-cc-na harmonic 84.878 122.610 # SOURCE4_SOURCE5 12 0.9695 + angle_coeff @angle:cg-cc-ss harmonic 63.762 120.730 # SOURCE4_SOURCE5 27 0.9221 + angle_coeff @angle:cc-c-h4 harmonic 47.598 114.830 # SOURCE4_SOURCE5 25 0.5124 + angle_coeff @angle:c-cc-ha harmonic 47.405 116.640 # SOURCE3_SOURCE5 896 1.3075 + angle_coeff @angle:cl-cc-na harmonic 90.511 121.120 # SOURCE4_SOURCE5 37 0.7206 + angle_coeff @angle:cl-cc-nd harmonic 90.963 122.070 # CORR_SOURCE5 19 1.6973 + angle_coeff @angle:cl-cc-ss harmonic 71.934 119.850 # SOURCE4_SOURCE5 27 0.9529 + angle_coeff @angle:c-cc-n2 harmonic 85.228 123.930 # CORR_SOURCE5 6 0.0993 + angle_coeff @angle:c-cc-n harmonic 85.713 116.370 # CORR_SOURCE5 41 2.4875 + angle_coeff @angle:cc-c-n harmonic 87.145 112.700 # SOURCE3_SOURCE5 1124 1.8431 + angle_coeff @angle:c-cc-nc harmonic 83.549 123.320 # CORR_SOURCE5 27 2.2025 + angle_coeff @angle:cc-c-nd harmonic 85.602 116.240 # CORR_SOURCE5 38 1.0053 + angle_coeff @angle:c-cc-nd harmonic 85.323 121.880 # CORR_SOURCE5 54 2.0672 + angle_coeff @angle:c-cc-ne harmonic 84.503 119.880 # SOURCE4 6 0.3139 + angle_coeff @angle:cc-c-o harmonic 86.736 123.930 # SOURCE3_SOURCE5 3463 2.3073 + angle_coeff @angle:c-cc-oh harmonic 87.608 113.660 # CORR_SOURCE5 190 1.6462 + angle_coeff @angle:cc-c-oh harmonic 87.815 112.840 # CORR_SOURCE5 184 0.7264 + angle_coeff @angle:c-cc-os harmonic 85.149 119.260 # CORR_SOURCE5 104 2.4145 + angle_coeff @angle:cc-c-os harmonic 87.108 114.200 # SOURCE3_SOURCE5 427 2.2749 + angle_coeff @angle:cc-c-s harmonic 64.011 126.280 # SOURCE4_SOURCE5 69 1.9867 + angle_coeff @angle:cc-c-ss harmonic 64.406 112.400 # SOURCE4_SOURCE5 42 0.9902 + angle_coeff @angle:cx-cc-nd harmonic 83.147 127.820 # SOURCE4_SOURCE5 27 1.6288 + angle_coeff @angle:cx-cc-os harmonic 85.414 118.070 # SOURCE4_SOURCE5 23 0.0923 + angle_coeff @angle:cd-c-cd harmonic 66.696 115.840 # CORR_SOURCE5 115 1.4659 + angle_coeff @angle:cd-c-cx harmonic 65.553 117.430 # SOURCE4_SOURCE5 37 0.1506 + angle_coeff @angle:cd-c-n harmonic 87.145 112.700 # SOURCE3_SOURCE5 1124 1.8431 + angle_coeff @angle:cd-c-nc harmonic 85.602 116.240 # CORR_SOURCE5 38 1.0053 + angle_coeff @angle:cd-c-nd harmonic 86.534 113.750 # SOURCE4_SOURCE5 28 0.0860 + angle_coeff @angle:cd-c-o harmonic 86.736 123.930 # SOURCE3_SOURCE5 3463 2.3073 + angle_coeff @angle:cd-c-oh harmonic 87.815 112.840 # CORR_SOURCE5 184 0.7264 + angle_coeff @angle:cd-c-os harmonic 87.108 114.200 # SOURCE3_SOURCE5 427 2.2749 + angle_coeff @angle:ce-c-ce harmonic 66.032 115.820 # CORR_SOURCE5 103 0.7143 + angle_coeff @angle:ce-c-cf harmonic 65.875 116.370 # SOURCE4_SOURCE5 31 1.3157 + angle_coeff @angle:ce-c-cx harmonic 65.246 117.390 # SOURCE4_SOURCE5 19 0.7227 + angle_coeff @angle:ce-c-h4 harmonic 47.181 114.890 # SOURCE4_SOURCE5 113 0.4718 + angle_coeff @angle:ce-c-ha harmonic 47.181 115.220 # SOURCE3 7 2.4188 + angle_coeff @angle:ce-c-n harmonic 85.680 115.220 # CORR_SOURCE5 38 1.1173 + angle_coeff @angle:ce-c-o harmonic 86.348 123.200 # SOURCE3_SOURCE5 2306 2.0617 + angle_coeff @angle:ce-c-oh harmonic 86.976 113.620 # CORR_SOURCE5 273 1.4501 + angle_coeff @angle:ce-c-os harmonic 87.846 110.930 # CORR_SOURCE5 445 1.6899 + angle_coeff @angle:ce-c-s harmonic 64.731 122.630 # SOURCE3_SOURCE5 11 1.3034 + angle_coeff @angle:ce-c-ss harmonic 64.794 110.490 # SOURCE4_SOURCE5 13 0.5852 + angle_coeff @angle:cf-c-cf harmonic 66.032 115.820 # CORR_SOURCE5 103 0.7143 + angle_coeff @angle:cf-c-ha harmonic 47.181 115.220 # SOURCE3 7 + angle_coeff @angle:cf-c-n harmonic 85.680 115.220 # CORR_SOURCE5 38 1.1173 + angle_coeff @angle:cf-c-o harmonic 86.348 123.200 # SOURCE3_SOURCE5 2306 2.0617 + angle_coeff @angle:cf-c-oh harmonic 86.976 113.620 # CORR_SOURCE5 273 1.4501 + angle_coeff @angle:cf-c-os harmonic 87.846 110.930 # CORR_SOURCE5 445 1.6899 + angle_coeff @angle:cf-c-s harmonic 64.731 122.630 # SOURCE3_SOURCE5 11 1.3034 + angle_coeff @angle:cg-c-cg harmonic 67.584 115.380 # SOURCE3 1 + angle_coeff @angle:cg-c-ha harmonic 48.322 113.900 # SOURCE2 1 + angle_coeff @angle:cg-c-o harmonic 88.213 121.780 # SOURCE3_SOURCE5 13 0.8393 + angle_coeff @angle:c-c-h4 harmonic 45.243 115.800 # SOURCE4_SOURCE5 17 0.7492 + angle_coeff @angle:h4-cc-n harmonic 62.742 115.690 # SOURCE3_SOURCE5 425 0.9142 + angle_coeff @angle:h4-cc-na harmonic 61.487 120.530 # SOURCE3_SOURCE5 1801 1.3882 + angle_coeff @angle:h4-cc-nc harmonic 61.716 121.140 # SOURCE3_SOURCE5 574 0.5658 + angle_coeff @angle:h4-cc-nd harmonic 64.296 118.470 # SOURCE3_SOURCE5 435 1.3360 + angle_coeff @angle:h4-cc-os harmonic 63.640 114.900 # SOURCE3_SOURCE5 456 0.8638 + angle_coeff @angle:h4-cc-ss harmonic 42.456 119.970 # SOURCE3_SOURCE5 496 0.7119 + angle_coeff @angle:h5-cc-n harmonic 62.737 115.700 # CORR_SOURCE5 41 0.7665 + angle_coeff @angle:h5-cc-na harmonic 61.226 121.550 # SOURCE3_SOURCE5 1138 0.7136 + angle_coeff @angle:h5-cc-nc harmonic 61.265 122.920 # SOURCE3_SOURCE5 136 0.3532 + angle_coeff @angle:h5-cc-nd harmonic 62.461 125.520 # SOURCE3_SOURCE5 1309 0.7276 + angle_coeff @angle:h5-cc-os harmonic 63.110 116.830 # SOURCE3_SOURCE5 42 1.3051 + angle_coeff @angle:h5-cc-ss harmonic 42.272 121.020 # SOURCE3_SOURCE5 46 0.6462 + angle_coeff @angle:c-c-ha harmonic 45.358 115.430 # SOURCE2 3 0.6549 + angle_coeff @angle:ha-cc-na harmonic 61.218 121.500 # SOURCE2 1 + angle_coeff @angle:ha-cc-nc harmonic 62.898 116.540 # SOURCE3 5 1.4482 + angle_coeff @angle:ha-cc-nd harmonic 64.154 118.880 # SOURCE3 20 2.8923 + angle_coeff @angle:ha-cc-os harmonic 64.764 110.860 # SOURCE3 7 1.3846 + angle_coeff @angle:ha-cc-pd harmonic 54.856 121.760 # SOURCE3 84 + angle_coeff @angle:ha-cc-ss harmonic 42.168 121.640 # SOURCE2 5 1.3276 + angle_coeff @angle:ch-c-ch harmonic 67.584 115.380 # SOURCE3 1 + angle_coeff @angle:ch-c-ha harmonic 48.322 113.900 # SOURCE2 1 + angle_coeff @angle:ch-c-o harmonic 88.213 121.780 # SOURCE3_SOURCE5 13 0.8393 + angle_coeff @angle:cl-c-cl harmonic 80.720 111.300 # SOURCE2 1 + angle_coeff @angle:cl-c-f harmonic 93.155 112.000 # SOURCE2 1 + angle_coeff @angle:cl-c-ha harmonic 48.221 109.900 # SOURCE2 1 + angle_coeff @angle:cl-c-o harmonic 89.044 120.690 # SOURCE3_SOURCE5 14 1.1076 + angle_coeff @angle:cl-c-s harmonic 69.852 127.600 # SOURCE2 1 + angle_coeff @angle:c-c-n harmonic 84.329 112.740 # SOURCE4_SOURCE5 157 2.1770 + angle_coeff @angle:na-cc-nc harmonic 108.812 121.950 # CORR_SOURCE5 321 1.6221 + angle_coeff @angle:na-cc-nd harmonic 115.504 112.220 # SOURCE3_SOURCE5 2726 1.5103 + angle_coeff @angle:na-cc-no harmonic 105.313 124.590 # SOURCE4_SOURCE5 162 0.8093 + angle_coeff @angle:na-cc-oh harmonic 111.744 117.480 # SOURCE4_SOURCE5 39 0.9806 + angle_coeff @angle:na-cc-sx harmonic 79.683 117.020 # SOURCE4_SOURCE5 32 0.3937 + angle_coeff @angle:na-cc-sy harmonic 79.507 120.460 # SOURCE4_SOURCE5 15 1.7292 + angle_coeff @angle:nc-cc-nd harmonic 114.185 115.830 # CORR_SOURCE5 309 1.2424 + angle_coeff @angle:nc-cc-nh harmonic 111.255 117.230 # CORR_SOURCE5 51 1.7463 + angle_coeff @angle:nc-cc-no harmonic 106.922 121.730 # SOURCE4_SOURCE5 17 0.8729 + angle_coeff @angle:nc-cc-ss harmonic 79.922 122.640 # SOURCE3_SOURCE5 10 1.3100 + angle_coeff @angle:nd-cc-nd harmonic 110.827 128.070 # SOURCE4_SOURCE5 17 0.2580 + angle_coeff @angle:nd-cc-ne harmonic 107.796 129.010 # SOURCE4_SOURCE5 20 1.2478 + angle_coeff @angle:nd-cc-nh harmonic 111.697 120.650 # SOURCE3_SOURCE5 554 1.6769 + angle_coeff @angle:nd-cc-no harmonic 108.240 122.750 # SOURCE4_SOURCE5 80 0.3006 + angle_coeff @angle:nd-cc-oh harmonic 112.660 121.120 # CORR_SOURCE5 31 1.3923 + angle_coeff @angle:nd-cc-os harmonic 114.076 116.740 # CORR_SOURCE5 156 2.0183 + angle_coeff @angle:nd-cc-sh harmonic 79.198 124.970 # SOURCE4_SOURCE5 18 0.8493 + angle_coeff @angle:nd-cc-ss harmonic 83.264 114.510 # SOURCE3 8 0.3449 + angle_coeff @angle:nd-cc-sx harmonic 76.768 127.740 # SOURCE4_SOURCE5 33 0.6804 + angle_coeff @angle:nd-cc-sy harmonic 79.255 123.030 # SOURCE4_SOURCE5 33 1.1587 + angle_coeff @angle:ne-cc-ss harmonic 81.707 117.030 # SOURCE4_SOURCE5 17 0.2106 + angle_coeff @angle:nh-cc-nh harmonic 111.696 115.960 # SOURCE3 1 + angle_coeff @angle:nh-cc-os harmonic 111.815 116.680 # CORR_SOURCE5 36 0.7439 + angle_coeff @angle:nh-cc-ss harmonic 80.147 121.810 # CORR_SOURCE5 128 1.0728 + angle_coeff @angle:n-cc-n2 harmonic 112.932 119.420 # SOURCE4_SOURCE5 28 1.2985 + angle_coeff @angle:n-cc-na harmonic 108.295 122.120 # CORR_SOURCE5 15 1.1276 + angle_coeff @angle:n-cc-nc harmonic 106.932 126.230 # CORR_SOURCE5 118 0.4381 + angle_coeff @angle:n-cc-nd harmonic 110.304 123.000 # CORR_SOURCE5 354 1.4352 + angle_coeff @angle:n-cc-nh harmonic 110.935 116.940 # CORR_SOURCE5 126 0.5956 + angle_coeff @angle:no-cc-os harmonic 109.068 117.550 # SOURCE4_SOURCE5 144 0.2521 + angle_coeff @angle:no-cc-ss harmonic 79.693 121.060 # SOURCE4_SOURCE5 33 0.2051 + angle_coeff @angle:n-cc-ss harmonic 79.713 122.880 # CORR_SOURCE5 82 1.5666 + angle_coeff @angle:c-c-o harmonic 84.325 120.850 # SOURCE4_SOURCE5 712 2.3365 + angle_coeff @angle:c-c-oh harmonic 85.170 112.070 # SOURCE3_SOURCE5 45 0.4339 + angle_coeff @angle:c-c-os harmonic 85.272 111.410 # SOURCE4_SOURCE5 34 0.4577 + angle_coeff @angle:os-cc-ss harmonic 81.124 119.280 # SOURCE3_SOURCE5 10 1.6753 + angle_coeff @angle:ss-cc-ss harmonic 63.639 121.370 # CORR 22 + angle_coeff @angle:ss-cc-sy harmonic 63.048 121.700 # CORR_SOURCE5 43 0.4842 + angle_coeff @angle:cx-c-cx harmonic 87.506 64.600 # SOURCE2 1 + angle_coeff @angle:cx-c-n harmonic 85.409 114.530 # SOURCE4_SOURCE5 60 1.3306 + angle_coeff @angle:cx-c-o harmonic 85.839 122.750 # SOURCE4_SOURCE5 366 2.2300 + angle_coeff @angle:cx-c-oh harmonic 86.840 112.520 # SOURCE4_SOURCE5 43 1.3576 + angle_coeff @angle:cx-c-os harmonic 87.109 111.390 # SOURCE4_SOURCE5 64 2.0118 + angle_coeff @angle:cy-c-cy harmonic 70.855 91.910 # SOURCE2_SOURCE5 12 0.9858 + angle_coeff @angle:cy-c-n harmonic 93.471 91.560 # SOURCE4_SOURCE5 619 0.5374 + angle_coeff @angle:cy-c-o harmonic 79.625 135.160 # SOURCE4_SOURCE5 665 1.3860 + angle_coeff @angle:cy-c-oh harmonic 85.029 112.180 # SOURCE4_SOURCE5 17 0.7869 + angle_coeff @angle:cy-c-os harmonic 92.339 94.790 # SOURCE4_SOURCE5 25 0.5353 + angle_coeff @angle:c2-cd-c3 harmonic 65.262 126.110 # SOURCE3 2 + angle_coeff @angle:c2-cd-ca harmonic 66.952 124.420 # CORR_SOURCE5 25 1.8245 + angle_coeff @angle:c2-cd-cc harmonic 71.286 117.020 # SOURCE3 2 + angle_coeff @angle:c2-cd-cd harmonic 68.308 122.190 # CORR_SOURCE5 46 2.3853 + angle_coeff @angle:c2-cd-ha harmonic 49.231 122.720 # SOURCE3 2 + angle_coeff @angle:c2-cd-n harmonic 86.150 124.910 # SOURCE3_SOURCE5 5 1.6803 + angle_coeff @angle:c2-cd-os harmonic 87.991 121.420 # CORR_SOURCE5 24 0.9570 + angle_coeff @angle:c3-cd-ca harmonic 63.318 126.520 # CORR_SOURCE5 370 1.8946 + angle_coeff @angle:c3-cd-cc harmonic 66.802 119.450 # SOURCE3 35 8.2040 + angle_coeff @angle:c3-cd-cd harmonic 66.709 115.970 # SOURCE3 4 3.0507 + angle_coeff @angle:c3-cd-ce harmonic 67.395 117.840 # CORR 2 + angle_coeff @angle:c3-cd-ha harmonic 45.517 121.520 # SOURCE3 32 3.2091 + angle_coeff @angle:c3-cd-n2 harmonic 83.336 125.690 # CORR_SOURCE5 12 1.9935 + angle_coeff @angle:c3-cd-n harmonic 83.558 119.190 # CORR_SOURCE5 107 2.1078 + angle_coeff @angle:c3-cd-na harmonic 82.356 122.730 # CORR_SOURCE5 961 1.6482 + angle_coeff @angle:c3-cd-nc harmonic 83.886 122.410 # CORR_SOURCE5 653 1.6992 + angle_coeff @angle:c3-cd-nd harmonic 83.215 120.950 # CORR_SOURCE5 456 0.8756 + angle_coeff @angle:c3-cd-os harmonic 84.855 116.800 # CORR_SOURCE5 306 0.8990 + angle_coeff @angle:c3-cd-ss harmonic 62.656 121.530 # CORR_SOURCE5 270 1.0948 + angle_coeff @angle:ca-cd-cc harmonic 69.802 113.510 # SOURCE3 26 7.4229 + angle_coeff @angle:ca-cd-cd harmonic 69.336 111.040 # SOURCE3 9 7.9455 + angle_coeff @angle:ca-cd-ce harmonic 66.694 124.900 # SOURCE4_SOURCE5 41 1.7178 + angle_coeff @angle:ca-cd-h4 harmonic 45.368 129.250 # SOURCE3_SOURCE5 54 1.5632 + angle_coeff @angle:ca-cd-ha harmonic 46.300 124.040 # SOURCE3 34 3.6691 + angle_coeff @angle:ca-cd-n harmonic 85.642 117.670 # CORR 18 + angle_coeff @angle:ca-cd-na harmonic 83.626 123.450 # SOURCE4 39 1.9138 + angle_coeff @angle:ca-cd-nc harmonic 85.294 123.240 # CORR_SOURCE5 246 2.3557 + angle_coeff @angle:ca-cd-nd harmonic 84.897 120.590 # CORR_SOURCE5 224 1.0853 + angle_coeff @angle:ca-cd-oh harmonic 86.577 117.550 # CORR_SOURCE5 35 1.9318 + angle_coeff @angle:ca-cd-os harmonic 87.229 114.750 # CORR_SOURCE5 247 2.0579 + angle_coeff @angle:ca-cd-ss harmonic 63.408 120.800 # CORR_SOURCE5 80 2.1212 + angle_coeff @angle:c-cd-c2 harmonic 67.513 121.170 # CORR_SOURCE5 28 1.6484 + angle_coeff @angle:c-cd-c3 harmonic 65.378 117.760 # CORR_SOURCE5 566 1.9588 + angle_coeff @angle:c-cd-c harmonic 65.240 121.070 # CORR_SOURCE5 128 0.8902 + angle_coeff @angle:c-cd-ca harmonic 65.005 122.950 # SOURCE3 1 + angle_coeff @angle:c-cd-cc harmonic 67.187 121.350 # CORR_SOURCE5 3554 2.2084 + angle_coeff @angle:cc-cd-cc harmonic 70.027 120.080 # CORR_SOURCE5 119 1.6139 + angle_coeff @angle:cc-cd-cd harmonic 70.348 114.190 # SOURCE3 517 6.5960 + angle_coeff @angle:cc-cd-cf harmonic 65.759 128.050 # CORR_SOURCE5 350 2.4628 + angle_coeff @angle:cc-cd-ch harmonic 67.080 125.790 # SOURCE4_SOURCE5 84 1.6445 + angle_coeff @angle:cc-cd-cl harmonic 71.687 123.410 # CORR_SOURCE5 115 2.1217 + angle_coeff @angle:cc-cd-cy harmonic 65.987 122.050 # SOURCE4_SOURCE5 22 0.8483 + angle_coeff @angle:c-cd-cd harmonic 65.674 122.690 # SOURCE3 2 + angle_coeff @angle:c-cd-cf harmonic 65.406 121.570 # CORR_SOURCE5 29 1.1305 + angle_coeff @angle:cc-cd-h4 harmonic 47.759 128.480 # SOURCE3_SOURCE5 3291 2.3189 + angle_coeff @angle:cc-cd-ha harmonic 49.040 121.760 # SOURCE3_SOURCE5 4433 1.8701 + angle_coeff @angle:c-cd-cl harmonic 72.591 116.380 # CORR_SOURCE5 50 1.2099 + angle_coeff @angle:cc-cd-n harmonic 86.990 121.330 # SOURCE3_SOURCE5 821 1.9126 + angle_coeff @angle:cc-cd-na harmonic 92.653 106.990 # SOURCE3_SOURCE5 3003 2.3845 + angle_coeff @angle:cc-cd-nc harmonic 88.069 123.820 # SOURCE4_SOURCE5 28 0.3678 + angle_coeff @angle:cc-cd-nd harmonic 91.057 111.650 # CORR_SOURCE5 1656 1.8430 + angle_coeff @angle:cc-cd-nh harmonic 86.331 123.840 # CORR_SOURCE5 152 2.2360 + angle_coeff @angle:cc-cd-oh harmonic 87.177 123.780 # CORR_SOURCE5 251 1.1988 + angle_coeff @angle:cc-cd-os harmonic 87.957 120.300 # SOURCE3 64 5.4354 + angle_coeff @angle:cc-cd-ss harmonic 66.887 111.550 # CORR_SOURCE5 1048 1.8648 + angle_coeff @angle:cc-cd-sy harmonic 62.501 124.550 # CORR_SOURCE5 56 1.7107 + angle_coeff @angle:cd-cd-cd harmonic 70.129 110.700 # SOURCE3 54 3.4091 + angle_coeff @angle:cd-cd-ce harmonic 68.022 122.720 # CORR_SOURCE5 66 1.9701 + angle_coeff @angle:cd-cd-cf harmonic 64.853 127.060 # CORR_SOURCE5 61 2.3233 + angle_coeff @angle:cd-cd-ch harmonic 65.805 125.910 # CORR_SOURCE5 41 1.1646 + angle_coeff @angle:cd-cd-cy harmonic 64.938 122.040 # SOURCE4_SOURCE5 13 0.6868 + angle_coeff @angle:cd-cd-h4 harmonic 46.348 127.960 # SOURCE3_SOURCE5 391 2.1732 + angle_coeff @angle:cd-cd-ha harmonic 47.634 121.070 # CORR_SOURCE5 2414 2.2010 + angle_coeff @angle:cd-cd-n2 harmonic 87.356 122.210 # CORR_SOURCE5 37 1.6493 + angle_coeff @angle:cd-cd-n harmonic 85.753 119.890 # SOURCE3 36 0.2095 + angle_coeff @angle:cd-cd-na harmonic 86.536 117.770 # SOURCE3_SOURCE5 832 1.6037 + angle_coeff @angle:cd-cd-nc harmonic 90.306 112.560 # SOURCE3 141 4.2871 + angle_coeff @angle:cd-cd-nd harmonic 85.332 121.980 # CORR_SOURCE5 141 1.9633 + angle_coeff @angle:cd-cd-nh harmonic 86.018 119.720 # CORR_SOURCE5 348 1.7785 + angle_coeff @angle:cd-cd-oh harmonic 86.201 121.270 # CORR_SOURCE5 11 2.2744 + angle_coeff @angle:cd-cd-os harmonic 87.213 117.340 # CORR_SOURCE5 217 1.9304 + angle_coeff @angle:cd-cd-pc harmonic 84.517 115.360 # SOURCE3 84 3.2889 + angle_coeff @angle:cd-cd-ss harmonic 63.877 120.210 # CORR_SOURCE5 52 2.1160 + angle_coeff @angle:ce-cd-nd harmonic 86.641 123.980 # SOURCE4_SOURCE5 10 2.4097 + angle_coeff @angle:cf-cd-na harmonic 83.371 124.350 # CORR_SOURCE5 87 1.3591 + angle_coeff @angle:cf-cd-nc harmonic 85.887 121.700 # CORR_SOURCE5 58 1.4179 + angle_coeff @angle:cf-cd-nd harmonic 84.769 121.100 # CORR_SOURCE5 43 1.2959 + angle_coeff @angle:cf-cd-os harmonic 85.796 118.760 # CORR_SOURCE5 92 1.3159 + angle_coeff @angle:cf-cd-ss harmonic 63.222 121.580 # CORR_SOURCE5 54 1.3126 + angle_coeff @angle:c-cd-h4 harmonic 47.105 118.190 # SOURCE4_SOURCE5 16 0.2226 + angle_coeff @angle:c-cd-ha harmonic 47.405 116.640 # SOURCE3_SOURCE5 896 1.3075 + angle_coeff @angle:cl-cd-nc harmonic 90.963 122.070 # CORR_SOURCE5 19 1.6973 + angle_coeff @angle:c-cd-n2 harmonic 85.228 123.930 # CORR_SOURCE5 6 0.0993 + angle_coeff @angle:c-cd-n harmonic 85.713 116.370 # CORR_SOURCE5 41 2.4875 + angle_coeff @angle:c-cd-nc harmonic 85.323 121.880 # CORR_SOURCE5 54 2.0672 + angle_coeff @angle:c-cd-nd harmonic 83.549 123.320 # CORR_SOURCE5 27 2.2025 + angle_coeff @angle:c-cd-oh harmonic 87.608 113.660 # CORR_SOURCE5 190 1.6462 + angle_coeff @angle:c-cd-os harmonic 85.149 119.260 # CORR_SOURCE5 104 2.4145 + angle_coeff @angle:h4-cd-n harmonic 62.742 115.690 # SOURCE3_SOURCE5 425 0.9142 + angle_coeff @angle:h4-cd-na harmonic 61.487 120.530 # SOURCE3_SOURCE5 1801 1.3882 + angle_coeff @angle:h4-cd-nc harmonic 64.296 118.470 # SOURCE3_SOURCE5 435 1.3360 + angle_coeff @angle:h4-cd-nd harmonic 61.716 121.140 # SOURCE3_SOURCE5 574 0.5658 + angle_coeff @angle:h4-cd-os harmonic 63.640 114.900 # SOURCE3_SOURCE5 456 0.8638 + angle_coeff @angle:h4-cd-ss harmonic 42.456 119.970 # SOURCE3_SOURCE5 496 0.7119 + angle_coeff @angle:h5-cd-n harmonic 62.738 115.700 # CORR_SOURCE5 41 0.7665 + angle_coeff @angle:h5-cd-na harmonic 61.227 121.550 # SOURCE3_SOURCE5 1138 0.7136 + angle_coeff @angle:h5-cd-nc harmonic 62.462 125.520 # SOURCE3_SOURCE5 1309 0.7276 + angle_coeff @angle:h5-cd-nd harmonic 61.266 122.920 # SOURCE3_SOURCE5 136 0.3532 + angle_coeff @angle:h5-cd-os harmonic 63.111 116.830 # SOURCE3_SOURCE5 42 1.3051 + angle_coeff @angle:h5-cd-ss harmonic 42.271 121.020 # SOURCE3_SOURCE5 46 0.6462 + angle_coeff @angle:ha-cd-na harmonic 61.218 121.500 # SOURCE2 1 + angle_coeff @angle:ha-cd-nc harmonic 64.154 118.880 # SOURCE3 20 2.8923 + angle_coeff @angle:ha-cd-nd harmonic 62.898 116.540 # SOURCE3 5 1.4482 + angle_coeff @angle:ha-cd-os harmonic 64.764 110.860 # SOURCE3 7 1.3846 + angle_coeff @angle:ha-cd-pc harmonic 54.856 121.760 # SOURCE3 84 2.2216 + angle_coeff @angle:ha-cd-ss harmonic 42.168 121.640 # SOURCE2 5 + angle_coeff @angle:na-cd-nc harmonic 115.504 112.220 # SOURCE3_SOURCE5 2726 1.5103 + angle_coeff @angle:na-cd-nd harmonic 108.812 121.950 # CORR_SOURCE5 321 1.6221 + angle_coeff @angle:na-cd-nh harmonic 110.794 117.280 # SOURCE4_SOURCE5 100 1.6359 + angle_coeff @angle:na-cd-ss harmonic 83.703 111.460 # SOURCE4 20 0.8600 + angle_coeff @angle:nc-cd-nd harmonic 114.185 115.830 # CORR_SOURCE5 309 1.2424 + angle_coeff @angle:nc-cd-nh harmonic 111.697 120.650 # SOURCE3_SOURCE5 554 1.6769 + angle_coeff @angle:nc-cd-oh harmonic 112.660 121.120 # CORR_SOURCE5 31 1.3923 + angle_coeff @angle:nc-cd-os harmonic 114.076 116.740 # CORR_SOURCE5 156 2.0183 + angle_coeff @angle:nc-cd-ss harmonic 83.264 114.510 # SOURCE3 8 0.3449 + angle_coeff @angle:nd-cd-nd harmonic 107.603 125.700 # SOURCE4_SOURCE5 31 0.5900 + angle_coeff @angle:nd-cd-nh harmonic 111.255 117.230 # CORR_SOURCE5 51 1.7463 + angle_coeff @angle:nd-cd-ss harmonic 79.922 122.640 # SOURCE3_SOURCE5 10 1.3100 + angle_coeff @angle:nh-cd-nh harmonic 111.696 115.960 # SOURCE3 1 + angle_coeff @angle:nh-cd-os harmonic 111.815 116.680 # CORR_SOURCE5 36 0.7439 + angle_coeff @angle:nh-cd-ss harmonic 80.147 121.810 # CORR_SOURCE5 128 1.0728 + angle_coeff @angle:n-cd-na harmonic 108.295 122.120 # CORR_SOURCE5 15 1.1276 + angle_coeff @angle:n-cd-nc harmonic 110.304 123.000 # CORR_SOURCE5 354 1.4352 + angle_coeff @angle:n-cd-nd harmonic 106.932 126.230 # CORR_SOURCE5 118 0.4381 + angle_coeff @angle:n-cd-nh harmonic 110.935 116.940 # CORR_SOURCE5 126 0.5956 + angle_coeff @angle:n-cd-ss harmonic 79.713 122.880 # CORR_SOURCE5 82 1.5666 + angle_coeff @angle:oh-cd-os harmonic 115.442 111.610 # SOURCE4_SOURCE5 12 1.1909 + angle_coeff @angle:os-cd-ss harmonic 81.124 119.280 # SOURCE3_SOURCE5 10 1.6753 + angle_coeff @angle:ss-cd-ss harmonic 63.639 121.370 # CORR 22 + angle_coeff @angle:ss-cd-sy harmonic 63.048 121.700 # CORR_SOURCE5 43 0.4842 + angle_coeff @angle:c2-ce-c3 harmonic 66.042 122.530 # SOURCE3_SOURCE5 882 1.9288 + angle_coeff @angle:c2-ce-ca harmonic 67.362 121.780 # SOURCE3_SOURCE5 11 1.7099 + angle_coeff @angle:c2-ce-cc harmonic 67.560 123.320 # CORR_SOURCE5 132 1.9068 + angle_coeff @angle:c2-ce-ce harmonic 67.482 123.260 # SOURCE3_SOURCE5 791 1.8772 + angle_coeff @angle:c2-ce-cg harmonic 68.647 122.090 # CORR_SOURCE5 54 1.3612 + angle_coeff @angle:c2-ce-cl harmonic 72.080 119.760 # SOURCE4_SOURCE5 62 1.3986 + angle_coeff @angle:c2-ce-h4 harmonic 49.154 124.550 # SOURCE4_SOURCE5 43 1.6498 + angle_coeff @angle:c2-ce-ha harmonic 50.126 119.940 # SOURCE3_SOURCE5 1439 1.4338 + angle_coeff @angle:c2-ce-n1 harmonic 91.289 118.230 # SOURCE4_SOURCE5 18 0.9047 + angle_coeff @angle:c2-ce-n2 harmonic 88.228 128.700 # SOURCE3 1 + angle_coeff @angle:c2-ce-na harmonic 87.216 119.190 # SOURCE4_SOURCE5 10 0.8452 + angle_coeff @angle:c2-ce-ne harmonic 88.464 118.320 # SOURCE3 7 1.0468 + angle_coeff @angle:c2-ce-oh harmonic 87.984 123.700 # SOURCE4_SOURCE5 27 1.7525 + angle_coeff @angle:c2-ce-p2 harmonic 81.422 118.240 # SOURCE3 1 + angle_coeff @angle:c2-ce-pe harmonic 81.089 118.760 # SOURCE3 8 2.3984 + angle_coeff @angle:c2-ce-px harmonic 80.647 119.720 # SOURCE3 6 0.5213 + angle_coeff @angle:c2-ce-py harmonic 80.419 122.180 # SOURCE3_SOURCE5 12 1.9482 + angle_coeff @angle:c2-ce-sx harmonic 63.052 119.210 # SOURCE3_SOURCE5 14 0.9863 + angle_coeff @angle:c2-ce-sy harmonic 63.705 120.200 # SOURCE3_SOURCE5 17 1.3599 + angle_coeff @angle:c3-ce-ca harmonic 64.464 119.240 # CORR_SOURCE5 312 1.7689 + angle_coeff @angle:c3-ce-cc harmonic 65.246 118.030 # CORR_SOURCE5 77 1.5840 + angle_coeff @angle:c3-ce-ce harmonic 65.430 117.120 # CORR_SOURCE5 524 1.4790 + angle_coeff @angle:c3-ce-cf harmonic 65.999 122.380 # CORR_SOURCE5 490 2.0752 + angle_coeff @angle:c3-ce-cg harmonic 66.008 117.220 # SOURCE4_SOURCE5 34 1.7153 + angle_coeff @angle:c3-ce-n2 harmonic 83.839 122.730 # CORR_SOURCE5 149 1.8752 + angle_coeff @angle:c3-ce-nf harmonic 84.370 120.680 # SOURCE4_SOURCE5 13 2.1196 + angle_coeff @angle:c3-ce-nh harmonic 82.726 119.560 # SOURCE4_SOURCE5 10 1.0079 + angle_coeff @angle:ca-ce-ca harmonic 65.741 117.830 # CORR_SOURCE5 210 0.9675 + angle_coeff @angle:ca-ce-cc harmonic 66.149 118.130 # CORR_SOURCE5 30 0.7112 + angle_coeff @angle:ca-ce-ce harmonic 65.684 119.540 # SOURCE4_SOURCE5 32 1.9209 + angle_coeff @angle:ca-ce-cf harmonic 65.738 127.520 # CORR_SOURCE5 599 1.6916 + angle_coeff @angle:ca-ce-cl harmonic 72.181 114.590 # SOURCE4_SOURCE5 14 1.1195 + angle_coeff @angle:ca-ce-h4 harmonic 47.047 116.990 # SOURCE4_SOURCE5 255 1.0051 + angle_coeff @angle:ca-ce-ha harmonic 47.444 115.130 # CORR_SOURCE5 720 0.9389 + angle_coeff @angle:ca-ce-n2 harmonic 86.084 120.720 # SOURCE3 1 + angle_coeff @angle:ca-ce-nf harmonic 85.534 121.710 # CORR_SOURCE5 49 2.1313 + angle_coeff @angle:ca-ce-nh harmonic 85.466 115.580 # SOURCE4_SOURCE5 240 1.0372 + angle_coeff @angle:ca-ce-oh harmonic 86.291 116.100 # CORR_SOURCE5 15 0.6417 + angle_coeff @angle:ca-ce-os harmonic 85.838 115.910 # SOURCE4_SOURCE5 25 1.4247 + angle_coeff @angle:ca-ce-ss harmonic 63.378 117.520 # SOURCE4_SOURCE5 14 1.2435 + angle_coeff @angle:c-ce-c2 harmonic 67.566 120.420 # SOURCE3 13 1.8877 + angle_coeff @angle:c-ce-c3 harmonic 64.889 117.220 # CORR_SOURCE5 558 2.2754 + angle_coeff @angle:c-ce-c harmonic 64.277 122.230 # CORR_SOURCE5 52 2.1518 + angle_coeff @angle:c-ce-ca harmonic 65.478 118.280 # SOURCE4_SOURCE5 25 1.6999 + angle_coeff @angle:cc-ce-cd harmonic 65.259 130.610 # SOURCE4_SOURCE5 24 1.1422 + angle_coeff @angle:cc-ce-cf harmonic 66.704 126.140 # CORR_SOURCE5 122 1.8142 + angle_coeff @angle:c-ce-cd harmonic 67.092 120.770 # CORR_SOURCE5 15 1.8896 + angle_coeff @angle:c-ce-ce harmonic 65.150 120.980 # SOURCE4_SOURCE5 53 2.2319 + angle_coeff @angle:c-ce-cf harmonic 65.856 126.410 # SOURCE3 2 5.7847 + angle_coeff @angle:c-ce-cg harmonic 66.500 118.420 # SOURCE4_SOURCE5 49 1.0600 + angle_coeff @angle:cc-ce-h4 harmonic 47.935 115.680 # SOURCE4_SOURCE5 77 0.8454 + angle_coeff @angle:cc-ce-ha harmonic 48.006 115.440 # CORR_SOURCE5 179 0.9381 + angle_coeff @angle:c-ce-cl harmonic 71.821 115.470 # SOURCE4_SOURCE5 25 1.2041 + angle_coeff @angle:cc-ce-n2 harmonic 86.868 120.960 # CORR_SOURCE5 102 2.2421 + angle_coeff @angle:cc-ce-nh harmonic 85.299 118.050 # SOURCE4_SOURCE5 21 1.8052 + angle_coeff @angle:c-ce-cy harmonic 74.704 88.440 # SOURCE4_SOURCE5 53 0.9126 + angle_coeff @angle:cd-ce-ce harmonic 66.791 124.350 # CORR_SOURCE5 18 1.4583 + angle_coeff @angle:cd-ce-ha harmonic 50.638 114.950 # CORR_SOURCE5 95 1.4175 + angle_coeff @angle:ce-ce-ce harmonic 65.416 122.110 # SOURCE3_SOURCE5 9 2.4680 + angle_coeff @angle:ce-ce-cf harmonic 67.119 124.240 # CORR_SOURCE5 866 1.6941 + angle_coeff @angle:ce-ce-cl harmonic 71.617 117.220 # SOURCE4_SOURCE5 35 0.8344 + angle_coeff @angle:ce-ce-h4 harmonic 47.341 118.130 # CORR_SOURCE5 44 1.1161 + angle_coeff @angle:ce-ce-ha harmonic 47.662 116.650 # SOURCE3_SOURCE5 1159 0.9686 + angle_coeff @angle:ce-ce-n1 harmonic 84.049 127.150 # CORR 4 + angle_coeff @angle:ce-ce-n2 harmonic 87.472 118.930 # CORR_SOURCE5 13 1.3210 + angle_coeff @angle:ce-ce-oh harmonic 86.685 116.850 # SOURCE4_SOURCE5 30 1.7182 + angle_coeff @angle:cf-ce-cg harmonic 68.252 123.130 # CORR_SOURCE5 115 2.1292 + angle_coeff @angle:cf-ce-cy harmonic 62.247 137.580 # SOURCE4_SOURCE5 31 0.9919 + angle_coeff @angle:cf-ce-h4 harmonic 49.339 122.950 # SOURCE4_SOURCE5 23 1.1580 + angle_coeff @angle:cf-ce-ha harmonic 50.352 118.220 # CORR_SOURCE5 1522 1.3445 + angle_coeff @angle:cf-ce-n1 harmonic 90.464 119.940 # SOURCE4_SOURCE5 13 1.8896 + angle_coeff @angle:cf-ce-n harmonic 91.197 108.390 # CORR_SOURCE5 86 1.0066 + angle_coeff @angle:cf-ce-nh harmonic 87.337 121.380 # SOURCE4_SOURCE5 39 1.7667 + angle_coeff @angle:cf-ce-oh harmonic 88.551 121.690 # CORR_SOURCE5 37 1.2824 + angle_coeff @angle:cg-ce-cg harmonic 68.393 116.520 # CORR_SOURCE5 35 1.1031 + angle_coeff @angle:cg-ce-ha harmonic 48.557 116.460 # CORR_SOURCE5 58 0.6523 + angle_coeff @angle:cg-ce-n1 harmonic 87.835 119.500 # CORR 2 + angle_coeff @angle:cg-ce-n2 harmonic 87.851 121.140 # SOURCE4_SOURCE5 14 0.8974 + angle_coeff @angle:c-ce-ha harmonic 47.000 116.460 # SOURCE3_SOURCE5 1028 1.3091 + angle_coeff @angle:c-ce-n harmonic 83.338 118.450 # CORR_SOURCE5 213 1.4857 + angle_coeff @angle:c-ce-nh harmonic 85.341 115.360 # CORR_SOURCE5 28 2.1980 + angle_coeff @angle:c-ce-oh harmonic 86.196 115.760 # SOURCE4_SOURCE5 20 2.0254 + angle_coeff @angle:c-ce-os harmonic 86.086 114.670 # SOURCE4_SOURCE5 47 2.1291 + angle_coeff @angle:h4-ce-n1 harmonic 64.863 116.640 # SOURCE4_SOURCE5 19 0.4343 + angle_coeff @angle:h4-ce-n2 harmonic 64.393 121.480 # CORR_SOURCE5 257 1.1842 + angle_coeff @angle:h4-ce-ne harmonic 62.153 115.650 # SOURCE4_SOURCE5 19 1.8165 + angle_coeff @angle:ha-ce-n1 harmonic 65.106 115.960 # CORR 4 + angle_coeff @angle:ha-ce-n2 harmonic 64.979 119.510 # SOURCE3 2 0.4623 + angle_coeff @angle:ha-ce-ne harmonic 61.414 118.590 # SOURCE3 5 1.1113 + angle_coeff @angle:ha-ce-nh harmonic 62.516 114.990 # CORR 2 + angle_coeff @angle:ha-ce-p2 harmonic 52.606 120.110 # SOURCE3 1 + angle_coeff @angle:ha-ce-pe harmonic 52.651 119.330 # SOURCE3 6 0.8966 + angle_coeff @angle:ha-ce-px harmonic 52.873 117.900 # SOURCE3 6 0.1809 + angle_coeff @angle:ha-ce-py harmonic 53.346 117.990 # SOURCE3_SOURCE5 11 0.7169 + angle_coeff @angle:ha-ce-sx harmonic 41.698 115.450 # SOURCE3 3 0.6640 + angle_coeff @angle:ha-ce-sy harmonic 42.578 114.860 # SOURCE3 3 0.4717 + angle_coeff @angle:n2-ce-nh harmonic 110.010 125.090 # CORR_SOURCE5 163 1.6803 + angle_coeff @angle:n2-ce-os harmonic 114.215 117.950 # SOURCE4_SOURCE5 19 0.3524 + angle_coeff @angle:n2-ce-ss harmonic 81.512 117.230 # SOURCE4 6 2.0518 + angle_coeff @angle:ne-ce-ne harmonic 106.467 123.870 # SOURCE3 1 + angle_coeff @angle:ne-ce-nh harmonic 111.319 113.640 # SOURCE4_SOURCE5 41 1.4024 + angle_coeff @angle:nf-ce-nh harmonic 112.342 119.270 # SOURCE4_SOURCE5 23 1.5487 + angle_coeff @angle:pe-ce-pe harmonic 97.908 129.790 # SOURCE3 1 + angle_coeff @angle:py-ce-py harmonic 108.039 108.060 # SOURCE3 1 + angle_coeff @angle:sx-ce-sx harmonic 61.727 120.320 # SOURCE3 1 + angle_coeff @angle:sy-ce-sy harmonic 62.867 119.970 # SOURCE3 1 + angle_coeff @angle:c2-cf-c3 harmonic 66.048 122.530 # SOURCE3_SOURCE5 875 1.9359 + angle_coeff @angle:c2-cf-ca harmonic 67.362 121.780 # SOURCE3_SOURCE5 5 1.1712 + angle_coeff @angle:c2-cf-cd harmonic 67.560 123.320 # CORR_SOURCE5 132 1.9068 + angle_coeff @angle:c2-cf-cf harmonic 67.482 123.260 # SOURCE3_SOURCE5 779 1.8961 + angle_coeff @angle:c2-cf-ch harmonic 68.647 122.090 # CORR_SOURCE5 54 1.3612 + angle_coeff @angle:c2-cf-ha harmonic 50.126 119.940 # SOURCE3_SOURCE5 1393 1.4017 + angle_coeff @angle:c2-cf-n2 harmonic 88.228 128.700 # SOURCE3 1 + angle_coeff @angle:c2-cf-nf harmonic 88.464 118.320 # SOURCE3 7 + angle_coeff @angle:c2-cf-p2 harmonic 81.422 118.240 # SOURCE3 1 + angle_coeff @angle:c2-cf-pf harmonic 81.089 118.760 # SOURCE3 8 + angle_coeff @angle:c2-cf-px harmonic 80.647 119.720 # SOURCE3 6 + angle_coeff @angle:c2-cf-py harmonic 80.419 122.180 # SOURCE3_SOURCE5 7 1.0992 + angle_coeff @angle:c2-cf-sx harmonic 63.052 119.210 # SOURCE3_SOURCE5 9 1.0588 + angle_coeff @angle:c2-cf-sy harmonic 63.705 120.200 # SOURCE3_SOURCE5 12 1.7015 + angle_coeff @angle:c3-cf-ca harmonic 64.468 119.240 # CORR_SOURCE5 312 1.7689 + angle_coeff @angle:c3-cf-cd harmonic 65.251 118.030 # CORR_SOURCE5 77 1.5840 + angle_coeff @angle:c3-cf-ce harmonic 66.005 122.380 # CORR_SOURCE5 490 2.0752 + angle_coeff @angle:c3-cf-cf harmonic 65.435 117.120 # CORR_SOURCE5 524 1.4790 + angle_coeff @angle:c3-cf-n2 harmonic 83.846 122.730 # CORR_SOURCE5 149 1.8752 + angle_coeff @angle:ca-cf-ca harmonic 65.741 117.830 # CORR_SOURCE5 210 0.9675 + angle_coeff @angle:ca-cf-cc harmonic 64.611 130.880 # SOURCE4_SOURCE5 41 1.2386 + angle_coeff @angle:ca-cf-cd harmonic 66.149 118.130 # CORR_SOURCE5 30 0.7112 + angle_coeff @angle:ca-cf-ce harmonic 65.738 127.520 # CORR_SOURCE5 599 1.6916 + angle_coeff @angle:ca-cf-ha harmonic 47.444 115.130 # CORR_SOURCE5 720 0.9389 + angle_coeff @angle:ca-cf-n2 harmonic 86.084 120.720 # SOURCE3 1 + angle_coeff @angle:ca-cf-ne harmonic 85.534 121.710 # CORR_SOURCE5 49 2.1313 + angle_coeff @angle:ca-cf-oh harmonic 86.291 116.100 # CORR_SOURCE5 15 0.6417 + angle_coeff @angle:c-cf-c2 harmonic 67.566 120.420 # SOURCE3 13 + angle_coeff @angle:c-cf-c3 harmonic 64.893 117.220 # CORR_SOURCE5 558 2.2754 + angle_coeff @angle:c-cf-c harmonic 64.277 122.230 # CORR_SOURCE5 52 2.1518 + angle_coeff @angle:c-cf-cc harmonic 67.092 120.770 # CORR_SOURCE5 15 1.8896 + angle_coeff @angle:cc-cf-cf harmonic 66.791 124.350 # CORR_SOURCE5 18 1.4583 + angle_coeff @angle:c-cf-cd harmonic 66.092 117.820 # SOURCE4_SOURCE5 29 1.0204 + angle_coeff @angle:c-cf-ce harmonic 65.856 126.410 # SOURCE3 2 + angle_coeff @angle:cc-cf-ha harmonic 50.638 114.950 # CORR_SOURCE5 95 1.4175 + angle_coeff @angle:cd-cf-ce harmonic 66.704 126.140 # CORR_SOURCE5 122 1.8142 + angle_coeff @angle:cd-cf-ha harmonic 48.006 115.440 # CORR_SOURCE5 179 0.9381 + angle_coeff @angle:cd-cf-n2 harmonic 86.868 120.960 # CORR_SOURCE5 102 2.2421 + angle_coeff @angle:ce-cf-cf harmonic 67.119 124.240 # CORR_SOURCE5 866 1.6941 + angle_coeff @angle:ce-cf-ch harmonic 68.252 123.130 # CORR_SOURCE5 115 2.1292 + angle_coeff @angle:ce-cf-ha harmonic 50.352 118.220 # CORR_SOURCE5 1522 1.3445 + angle_coeff @angle:ce-cf-n harmonic 91.197 108.390 # CORR_SOURCE5 86 1.0066 + angle_coeff @angle:ce-cf-oh harmonic 88.551 121.690 # CORR_SOURCE5 37 1.2824 + angle_coeff @angle:cf-cf-cf harmonic 65.416 122.110 # SOURCE3_SOURCE5 9 2.4680 + angle_coeff @angle:cf-cf-h4 harmonic 47.341 118.130 # CORR_SOURCE5 44 1.1161 + angle_coeff @angle:cf-cf-ha harmonic 47.662 116.650 # SOURCE3_SOURCE5 1159 0.9686 + angle_coeff @angle:cf-cf-n1 harmonic 84.049 127.150 # CORR 4 + angle_coeff @angle:cf-cf-n2 harmonic 87.472 118.930 # CORR_SOURCE5 13 1.3210 + angle_coeff @angle:c-cf-ha harmonic 47.000 116.460 # SOURCE3_SOURCE5 1028 1.3091 + angle_coeff @angle:ch-cf-ch harmonic 68.393 116.520 # CORR_SOURCE5 35 1.1031 + angle_coeff @angle:ch-cf-ha harmonic 48.557 116.460 # CORR_SOURCE5 58 0.6523 + angle_coeff @angle:ch-cf-n1 harmonic 87.835 119.500 # CORR 2 + angle_coeff @angle:c-cf-n2 harmonic 88.177 114.410 # SOURCE4_SOURCE5 13 1.4243 + angle_coeff @angle:c-cf-n harmonic 83.338 118.450 # CORR_SOURCE5 213 1.4857 + angle_coeff @angle:c-cf-nh harmonic 85.341 115.360 # CORR_SOURCE5 28 2.1980 + angle_coeff @angle:f-c-f harmonic 123.826 107.350 # SOURCE2 2 0.2500 + angle_coeff @angle:h4-cf-n2 harmonic 64.393 121.480 # CORR_SOURCE5 257 1.1842 + angle_coeff @angle:h4-cf-ne harmonic 64.320 120.560 # SOURCE4_SOURCE5 39 0.8435 + angle_coeff @angle:ha-cf-n1 harmonic 65.106 115.960 # CORR 4 + angle_coeff @angle:ha-cf-n2 harmonic 64.979 119.510 # SOURCE3 2 + angle_coeff @angle:ha-cf-nf harmonic 61.414 118.590 # SOURCE3 5 + angle_coeff @angle:ha-cf-nh harmonic 62.516 114.990 # CORR 2 + angle_coeff @angle:ha-cf-p2 harmonic 52.606 120.110 # SOURCE3 1 + angle_coeff @angle:ha-cf-pf harmonic 52.651 119.330 # SOURCE3 6 + angle_coeff @angle:ha-cf-px harmonic 52.873 117.900 # SOURCE3 6 + angle_coeff @angle:ha-cf-py harmonic 53.346 117.990 # SOURCE3_SOURCE5 8 0.8708 + angle_coeff @angle:ha-cf-sx harmonic 41.698 115.450 # SOURCE3 3 + angle_coeff @angle:ha-cf-sy harmonic 42.578 114.860 # SOURCE3 3 + angle_coeff @angle:n2-cf-nh harmonic 110.010 125.090 # CORR_SOURCE5 163 1.6803 + angle_coeff @angle:nf-cf-nf harmonic 106.467 123.870 # SOURCE3 1 + angle_coeff @angle:f-c-o harmonic 118.196 123.440 # SOURCE3 1 + angle_coeff @angle:pf-cf-pf harmonic 97.908 129.790 # SOURCE3 1 + angle_coeff @angle:py-cf-py harmonic 108.039 108.060 # SOURCE3 1 + angle_coeff @angle:f-c-s harmonic 84.396 124.000 # SOURCE2 1 + angle_coeff @angle:sx-cf-sx harmonic 61.727 120.320 # SOURCE3 1 + angle_coeff @angle:sy-cf-sy harmonic 62.867 119.970 # SOURCE3 1 + angle_coeff @angle:c1-cg-ca harmonic 58.572 179.570 # CORR_SOURCE5 38 0.4711 + angle_coeff @angle:c1-cg-cc harmonic 58.934 178.610 # SOURCE4_SOURCE5 13 0.3677 + angle_coeff @angle:c1-cg-ce harmonic 58.989 178.050 # CORR_SOURCE5 15 0.1905 + angle_coeff @angle:c1-cg-cg harmonic 60.378 179.670 # CORR_SOURCE5 90 0.1487 + angle_coeff @angle:c1-cg-ne harmonic 79.305 170.020 # SOURCE3 4 1.1724 + angle_coeff @angle:c1-cg-pe harmonic 75.149 173.290 # SOURCE3 11 4.9305 + angle_coeff @angle:ca-cg-ch harmonic 58.741 179.430 # CORR_SOURCE5 40 0.6103 + angle_coeff @angle:ca-cg-n1 harmonic 74.346 179.490 # CORR_SOURCE5 186 0.6659 + angle_coeff @angle:c-cg-c1 harmonic 58.113 179.140 # SOURCE3 2 + angle_coeff @angle:cc-cg-n1 harmonic 74.809 178.620 # CORR_SOURCE5 43 0.6454 + angle_coeff @angle:ce-cg-ch harmonic 59.157 177.940 # CORR 17 + angle_coeff @angle:ce-cg-n1 harmonic 74.894 177.970 # CORR_SOURCE5 184 1.2220 + angle_coeff @angle:n1-cg-ne harmonic 99.946 174.030 # CORR_SOURCE5 30 0.6173 + angle_coeff @angle:h4-c-o harmonic 66.570 120.700 # SOURCE4_SOURCE5 491 0.4811 + angle_coeff @angle:h5-c-n harmonic 63.496 112.160 # SOURCE4_SOURCE5 98 0.3632 + angle_coeff @angle:h5-c-o harmonic 65.930 123.650 # SOURCE4_SOURCE5 150 0.7654 + angle_coeff @angle:ha-c-ha harmonic 37.443 115.610 # SOURCE3 4 0.0458 + angle_coeff @angle:ha-c-i harmonic 38.168 110.580 # SOURCE3 1 + angle_coeff @angle:ha-c-n harmonic 63.490 112.370 # SOURCE3 4 0.6424 + angle_coeff @angle:ha-c-o harmonic 66.484 121.940 # SOURCE3 51 2.3235 + angle_coeff @angle:ha-c-oh harmonic 64.638 111.820 # SOURCE3 4 1.9375 + angle_coeff @angle:ha-c-os harmonic 64.813 110.340 # SOURCE3 8 1.9344 + angle_coeff @angle:ha-c-s harmonic 44.760 119.560 # SOURCE3 3 0.7586 + angle_coeff @angle:c1-ch-ca harmonic 58.522 179.570 # CORR_SOURCE5 38 0.4711 + angle_coeff @angle:c1-ch-cf harmonic 58.938 178.050 # CORR_SOURCE5 15 0.1905 + angle_coeff @angle:c1-ch-ch harmonic 60.316 179.670 # CORR_SOURCE5 90 0.1487 + angle_coeff @angle:c1-ch-nf harmonic 79.216 170.020 # SOURCE3 4 + angle_coeff @angle:c1-ch-pf harmonic 75.117 173.290 # SOURCE3 11 + angle_coeff @angle:ca-ch-cg harmonic 58.741 179.430 # CORR_SOURCE5 40 0.6103 + angle_coeff @angle:ca-ch-n1 harmonic 74.346 179.490 # CORR_SOURCE5 186 0.6659 + angle_coeff @angle:c-ch-c1 harmonic 58.066 179.140 # SOURCE3 2 + angle_coeff @angle:cd-ch-n1 harmonic 74.807 178.630 # CORR_SOURCE5 49 0.3708 + angle_coeff @angle:cf-ch-cg harmonic 59.157 177.940 # CORR 17 + angle_coeff @angle:cf-ch-n1 harmonic 74.894 177.970 # CORR_SOURCE5 184 1.2220 + angle_coeff @angle:cg-ch-ch harmonic 60.571 179.580 # SOURCE4_SOURCE5 55 0.2973 + angle_coeff @angle:n1-ch-nf harmonic 99.946 174.030 # CORR_SOURCE5 30 0.6173 + angle_coeff @angle:i-c-i harmonic 65.372 116.450 # SOURCE3 1 + angle_coeff @angle:i-c-o harmonic 71.718 122.020 # SOURCE3 4 1.2961 + angle_coeff @angle:f-cl-f harmonic 0.000 87.500 # SOURCE2 1 + angle_coeff @angle:n2-c-n2 harmonic 110.771 110.310 # SOURCE3 1 + angle_coeff @angle:n2-c-o harmonic 111.836 122.500 # SOURCE3 1 + angle_coeff @angle:n4-c-n4 harmonic 99.803 114.640 # SOURCE3 1 + angle_coeff @angle:n4-c-o harmonic 106.610 118.830 # SOURCE3 4 3.8516 + angle_coeff @angle:nc-c-o harmonic 113.330 123.180 # CORR_SOURCE5 172 1.0508 + angle_coeff @angle:nd-c-o harmonic 113.330 123.180 # CORR_SOURCE5 172 1.0508 + angle_coeff @angle:ne-c-ne harmonic 113.088 110.310 # CORR 2 + angle_coeff @angle:ne-c-o harmonic 111.914 125.810 # CORR_SOURCE5 65 1.1135 + angle_coeff @angle:nf-c-nf harmonic 113.088 110.310 # CORR 2 + angle_coeff @angle:nf-c-o harmonic 111.914 125.810 # CORR_SOURCE5 65 1.1135 + angle_coeff @angle:n-c-n harmonic 112.428 113.560 # SOURCE4_SOURCE5 1747 1.4619 + angle_coeff @angle:n-c-nc harmonic 110.397 117.110 # CORR_SOURCE5 131 0.7717 + angle_coeff @angle:n-c-nd harmonic 110.397 117.110 # CORR_SOURCE5 131 0.7717 + angle_coeff @angle:n-c-ne harmonic 113.600 110.260 # SOURCE4_SOURCE5 25 1.7043 + angle_coeff @angle:n-c-o harmonic 113.811 123.050 # SOURCE3_SOURCE5 8454 1.5552 + angle_coeff @angle:n-c-oh harmonic 113.913 112.820 # SOURCE4_SOURCE5 14 1.4518 + angle_coeff @angle:no-c-no harmonic 102.620 109.280 # SOURCE3 1 + angle_coeff @angle:no-c-o harmonic 104.115 125.360 # SOURCE3 1 + angle_coeff @angle:n-c-os harmonic 115.486 109.220 # SOURCE4_SOURCE5 821 0.9352 + angle_coeff @angle:n-c-s harmonic 82.398 124.050 # SOURCE3_SOURCE5 514 1.4099 + angle_coeff @angle:n-c-sh harmonic 81.620 112.970 # SOURCE4_SOURCE5 26 1.1725 + angle_coeff @angle:n-c-ss harmonic 82.496 110.290 # SOURCE4_SOURCE5 160 1.6051 + angle_coeff @angle:oh-c-oh harmonic 116.271 110.560 # SOURCE3 2 0.5498 + angle_coeff @angle:oh-c-s harmonic 83.019 123.440 # SOURCE3 1 + angle_coeff @angle:o-c-o harmonic 118.817 130.250 # SOURCE4_SOURCE5 1037 1.2396 + angle_coeff @angle:o-c-oh harmonic 115.745 122.100 # SOURCE3_SOURCE5 2859 0.8497 + angle_coeff @angle:o-c-os harmonic 114.822 123.250 # SOURCE4_SOURCE5 5492 1.1411 + angle_coeff @angle:o-c-p2 harmonic 96.161 123.100 # SOURCE3 1 + angle_coeff @angle:o-c-p3 harmonic 97.971 120.790 # SOURCE3 1 + angle_coeff @angle:o-c-p5 harmonic 97.881 121.170 # SOURCE4_SOURCE5 18 1.1433 + angle_coeff @angle:o-c-pe harmonic 95.623 123.020 # SOURCE3 3 0.1404 + angle_coeff @angle:o-c-pf harmonic 95.623 123.020 # SOURCE3 3 + angle_coeff @angle:o-c-px harmonic 97.552 119.100 # SOURCE3 1 + angle_coeff @angle:o-c-py harmonic 98.325 122.010 # SOURCE4_SOURCE5 14 1.0132 + angle_coeff @angle:o-c-s4 harmonic 76.764 121.150 # SOURCE3 1 + angle_coeff @angle:o-c-s6 harmonic 77.308 119.450 # SOURCE3 1 + angle_coeff @angle:o-c-s harmonic 85.589 120.440 # SOURCE3 2 + angle_coeff @angle:o-c-sh harmonic 79.543 122.050 # SOURCE3_SOURCE5 10 1.1120 + angle_coeff @angle:os-c-os harmonic 115.283 111.290 # SOURCE4_SOURCE5 32 0.8183 + angle_coeff @angle:o-c-ss harmonic 79.009 123.320 # SOURCE3_SOURCE5 190 1.2053 + angle_coeff @angle:os-c-s harmonic 82.392 125.010 # SOURCE4_SOURCE5 62 1.0980 + angle_coeff @angle:os-c-ss harmonic 82.286 111.400 # SOURCE4_SOURCE5 23 1.7283 + angle_coeff @angle:o-c-sx harmonic 76.145 121.150 # SOURCE3 5 3.6452 + angle_coeff @angle:o-c-sy harmonic 77.559 119.320 # SOURCE3 5 2.4495 + angle_coeff @angle:p2-c-p2 harmonic 100.070 113.750 # SOURCE3 1 + angle_coeff @angle:p3-c-p3 harmonic 99.122 118.040 # SOURCE3 1 + angle_coeff @angle:p3-c-py harmonic 113.947 90.080 # SOURCE3 1 + angle_coeff @angle:p5-c-p5 harmonic 96.866 123.760 # SOURCE3 1 + angle_coeff @angle:ca-cp-ca harmonic 68.877 118.380 # CORR_SOURCE5 959 0.6763 + angle_coeff @angle:ca-cp-cp harmonic 66.121 121.110 # CORR_SOURCE5 1631 1.6425 + angle_coeff @angle:ca-cp-na harmonic 86.507 119.500 # SOURCE4_SOURCE5 59 0.7877 + angle_coeff @angle:ca-cp-nb harmonic 87.071 121.620 # SOURCE4_SOURCE5 174 0.6998 + angle_coeff @angle:cp-cp-cp harmonic 74.761 90.000 # SOURCE3 4 + angle_coeff @angle:cp-cp-cq harmonic 64.283 124.270 # CORR_SOURCE5 8 2.0477 + angle_coeff @angle:cp-cp-nb harmonic 86.053 116.610 # SOURCE4_SOURCE5 235 1.1595 + angle_coeff @angle:pe-c-pe harmonic 99.485 113.770 # SOURCE3 1 + angle_coeff @angle:pf-c-pf harmonic 99.485 113.770 # SOURCE3 1 + angle_coeff @angle:nb-cp-nb harmonic 110.031 125.790 # SOURCE4_SOURCE5 11 0.6658 + angle_coeff @angle:py-c-py harmonic 97.618 123.800 # SOURCE3 1 + angle_coeff @angle:ca-cq-ca harmonic 68.877 118.380 # CORR_SOURCE5 959 0.6763 + angle_coeff @angle:ca-cq-cq harmonic 66.121 121.110 # CORR_SOURCE5 1631 1.6425 + angle_coeff @angle:ca-cq-nb harmonic 87.071 121.620 # SOURCE4_SOURCE5 111 0.7244 + angle_coeff @angle:cp-cq-cq harmonic 64.278 124.290 # CORR_SOURCE5 8 1.4947 + angle_coeff @angle:cq-cq-cq harmonic 74.761 90.000 # SOURCE3 4 + angle_coeff @angle:cq-cq-nb harmonic 86.053 116.610 # SOURCE4_SOURCE5 147 1.1420 + angle_coeff @angle:s4-c-s4 harmonic 63.122 108.810 # SOURCE3 1 + angle_coeff @angle:s6-c-s6 harmonic 61.200 115.750 # SOURCE3 1 + angle_coeff @angle:sh-c-sh harmonic 63.799 115.330 # SOURCE3 1 + angle_coeff @angle:s-c-s harmonic 65.463 126.500 # SOURCE3_SOURCE5 14 1.3489 + angle_coeff @angle:s-c-sh harmonic 63.925 122.650 # SOURCE4_SOURCE5 37 1.5614 + angle_coeff @angle:s-c-ss harmonic 63.724 123.190 # SOURCE3_SOURCE5 85 1.7112 + angle_coeff @angle:ss-c-ss harmonic 64.515 112.420 # SOURCE3_SOURCE5 17 0.4533 + angle_coeff @angle:sx-c-sx harmonic 62.622 108.800 # SOURCE3 1 + angle_coeff @angle:sy-c-sy harmonic 61.356 115.780 # SOURCE3 1 + angle_coeff @angle:c2-cu-cx harmonic 61.131 148.500 # SOURCE4_SOURCE5 23 1.5654 + angle_coeff @angle:c-cu-cu harmonic 98.040 62.600 # SOURCE2 1 + angle_coeff @angle:cu-cu-cx harmonic 105.362 50.800 # SOURCE2 1 + angle_coeff @angle:cu-cu-ha harmonic 46.590 147.730 # SOURCE2 3 2.0950 + angle_coeff @angle:cv-cv-cy harmonic 75.476 94.410 # SOURCE3_SOURCE5 6 0.2122 + angle_coeff @angle:cv-cv-ha harmonic 47.789 133.700 # SOURCE3 2 + angle_coeff @angle:cx-cv-cx harmonic 87.395 63.900 # SOURCE2 1 + angle_coeff @angle:cy-cv-ha harmonic 43.281 132.140 # SOURCE3 2 + angle_coeff @angle:c1-cx-cx harmonic 65.298 119.570 # SOURCE4_SOURCE5 51 1.0503 + angle_coeff @angle:c2-cx-cx harmonic 64.271 120.300 # SOURCE4_SOURCE5 207 2.3490 + angle_coeff @angle:c2-cx-h1 harmonic 47.059 115.860 # SOURCE4_SOURCE5 34 0.6256 + angle_coeff @angle:c2-cx-hc harmonic 47.215 115.150 # SOURCE4_SOURCE5 45 0.9609 + angle_coeff @angle:c2-cx-os harmonic 83.614 116.550 # SOURCE4_SOURCE5 48 1.1122 + angle_coeff @angle:c3-cx-c3 harmonic 64.915 114.240 # SOURCE4_SOURCE5 207 2.2113 + angle_coeff @angle:c3-cx-cx harmonic 63.608 120.100 # SOURCE4_SOURCE5 1739 2.3197 + angle_coeff @angle:c3-cx-h1 harmonic 46.234 115.320 # SOURCE4_SOURCE5 326 1.1035 + angle_coeff @angle:c3-cx-hc harmonic 46.430 114.390 # SOURCE4_SOURCE5 291 1.4379 + angle_coeff @angle:c3-cx-n3 harmonic 81.063 118.500 # SOURCE4 17 2.4897 + angle_coeff @angle:c3-cx-os harmonic 82.886 115.680 # SOURCE4_SOURCE5 616 1.2862 + angle_coeff @angle:ca-cx-cx harmonic 63.720 121.950 # SOURCE4_SOURCE5 197 1.8192 + angle_coeff @angle:ca-cx-h1 harmonic 47.143 114.700 # SOURCE4_SOURCE5 19 0.6393 + angle_coeff @angle:ca-cx-hc harmonic 47.377 113.620 # SOURCE4_SOURCE5 57 0.9227 + angle_coeff @angle:ca-cx-oh harmonic 86.728 112.930 # SOURCE3 1 + angle_coeff @angle:ca-cx-os harmonic 82.823 118.310 # SOURCE4_SOURCE5 18 0.7292 + angle_coeff @angle:c-cx-c3 harmonic 64.445 117.470 # SOURCE4_SOURCE5 71 1.9181 + angle_coeff @angle:cc-cx-cx harmonic 64.711 119.620 # CORR_SOURCE5 73 1.1478 + angle_coeff @angle:cc-cx-hc harmonic 47.813 113.930 # SOURCE4_SOURCE5 44 0.6781 + angle_coeff @angle:c-cx-cx harmonic 64.620 117.970 # SOURCE4_SOURCE5 554 2.1023 + angle_coeff @angle:cd-cx-cx harmonic 64.711 119.620 # CORR_SOURCE5 73 1.1478 + angle_coeff @angle:c-cx-h1 harmonic 46.552 116.550 # SOURCE4_SOURCE5 86 1.1535 + angle_coeff @angle:c-cx-hc harmonic 46.546 116.630 # SOURCE4_SOURCE5 122 1.5743 + angle_coeff @angle:cl-cx-cl harmonic 82.588 110.550 # SOURCE2_SOURCE5 14 0.4864 + angle_coeff @angle:cl-cx-cx harmonic 70.087 119.850 # SOURCE4_SOURCE5 84 0.7070 + angle_coeff @angle:cl-cx-h1 harmonic 48.861 111.430 # SOURCE3 1 + angle_coeff @angle:cl-cx-hc harmonic 47.924 115.800 # SOURCE2 1 + angle_coeff @angle:c-cx-os harmonic 83.552 115.590 # SOURCE4 36 0.8227 + angle_coeff @angle:cu-cx-cu harmonic 95.990 54.600 # SOURCE2 1 + angle_coeff @angle:cu-cx-cx harmonic 92.184 58.450 # SOURCE4_SOURCE5 35 0.3844 + angle_coeff @angle:cu-cx-hc harmonic 46.510 118.570 # SOURCE4_SOURCE5 36 0.6733 + angle_coeff @angle:cx-cx-cx harmonic 90.424 60.000 # SOURCE4_SOURCE5 2370 0.7579 + angle_coeff @angle:cx-cx-cy harmonic 69.603 100.530 # SOURCE3 4 + angle_coeff @angle:cx-cx-f harmonic 85.391 118.550 # SOURCE4_SOURCE5 24 1.1971 + angle_coeff @angle:cx-cx-h1 harmonic 45.959 118.700 # SOURCE3_SOURCE5 1351 1.3656 + angle_coeff @angle:cx-cx-hc harmonic 46.163 117.700 # SOURCE3_SOURCE5 3574 0.9510 + angle_coeff @angle:cx-cx-hx harmonic 45.802 119.610 # SOURCE4_SOURCE5 29 0.1468 + angle_coeff @angle:cx-cx-n3 harmonic 114.892 59.590 # SOURCE4_SOURCE5 400 0.3281 + angle_coeff @angle:cx-cx-na harmonic 79.232 126.020 # SOURCE4_SOURCE5 69 1.6659 + angle_coeff @angle:cx-cx-nh harmonic 115.868 59.170 # SOURCE4_SOURCE5 276 0.6810 + angle_coeff @angle:cx-cx-os harmonic 116.592 59.090 # SOURCE4_SOURCE5 1094 0.5727 + angle_coeff @angle:cy-cx-hc harmonic 44.429 125.430 # SOURCE3 2 + angle_coeff @angle:f-cx-f harmonic 120.884 106.900 # SOURCE2 2 1.4000 + angle_coeff @angle:f-cx-h1 harmonic 65.454 111.680 # SOURCE3 1 + angle_coeff @angle:f-cx-hc harmonic 65.300 112.300 # SOURCE2 1 + angle_coeff @angle:h1-cx-h1 harmonic 37.880 115.460 # SOURCE4_SOURCE5 585 0.3332 + angle_coeff @angle:h1-cx-n3 harmonic 59.281 116.470 # SOURCE4_SOURCE5 463 1.4379 + angle_coeff @angle:h1-cx-n harmonic 60.648 115.050 # SOURCE4_SOURCE5 36 1.2404 + angle_coeff @angle:h1-cx-na harmonic 61.785 108.360 # SOURCE4_SOURCE5 35 1.1443 + angle_coeff @angle:h1-cx-nh harmonic 59.869 116.290 # SOURCE4_SOURCE5 349 1.0287 + angle_coeff @angle:h1-cx-os harmonic 60.853 114.930 # SOURCE3_SOURCE5 531 0.5509 + angle_coeff @angle:h2-cx-h2 harmonic 37.352 119.430 # SOURCE3 1 + angle_coeff @angle:h2-cx-n2 harmonic 58.708 117.180 # SOURCE3 4 + angle_coeff @angle:hc-cx-hc harmonic 38.120 114.430 # SOURCE3_SOURCE5 595 0.4830 + angle_coeff @angle:hc-cx-os harmonic 61.092 114.100 # SOURCE2 1 + angle_coeff @angle:hx-cx-n4 harmonic 58.913 114.470 # SOURCE4_SOURCE5 28 0.1963 + angle_coeff @angle:n2-cx-n2 harmonic 157.396 50.160 # SOURCE3 1 + angle_coeff @angle:n-cx-oh harmonic 107.552 119.750 # SOURCE3 2 + angle_coeff @angle:n-cx-os harmonic 141.311 65.980 # SOURCE3 1 + angle_coeff @angle:oh-cx-oh harmonic 116.883 107.850 # SOURCE3 1 + angle_coeff @angle:oh-cx-os harmonic 108.501 118.120 # SOURCE3 4 1.3581 + angle_coeff @angle:os-cx-os harmonic 106.734 116.050 # SOURCE4_SOURCE5 15 2.1532 + angle_coeff @angle:c2-cy-cy harmonic 68.568 100.400 # SOURCE2 1 + angle_coeff @angle:c3-cy-c3 harmonic 65.146 111.440 # SOURCE4_SOURCE5 53 1.0307 + angle_coeff @angle:c3-cy-cy harmonic 62.618 118.700 # SOURCE4 293 1.8510 + angle_coeff @angle:c3-cy-h1 harmonic 46.561 111.780 # SOURCE4_SOURCE5 309 0.4521 + angle_coeff @angle:c3-cy-hc harmonic 46.907 110.140 # SOURCE3_SOURCE5 291 0.5598 + angle_coeff @angle:c3-cy-n3 harmonic 82.158 113.650 # SOURCE3_SOURCE5 15 2.3547 + angle_coeff @angle:c3-cy-n harmonic 86.069 104.130 # SOURCE4_SOURCE5 306 0.5952 + angle_coeff @angle:c3-cy-os harmonic 83.640 112.310 # SOURCE4_SOURCE5 40 1.1099 + angle_coeff @angle:c-cy-c3 harmonic 63.261 116.710 # SOURCE4_SOURCE5 332 0.5683 + angle_coeff @angle:cc-cy-cy harmonic 62.477 121.220 # CORR_SOURCE5 27 0.4901 + angle_coeff @angle:c-cy-cy harmonic 73.514 85.090 # SOURCE4_SOURCE5 672 0.9017 + angle_coeff @angle:cd-cy-cy harmonic 62.477 121.220 # CORR_SOURCE5 27 0.4901 + angle_coeff @angle:ce-cy-h2 harmonic 45.874 117.400 # SOURCE4_SOURCE5 38 0.5598 + angle_coeff @angle:ce-cy-n harmonic 94.195 87.940 # SOURCE4_SOURCE5 38 0.1933 + angle_coeff @angle:ce-cy-ss harmonic 60.454 120.540 # SOURCE4_SOURCE5 34 1.4182 + angle_coeff @angle:c-cy-h1 harmonic 45.784 113.030 # SOURCE4_SOURCE5 167 0.8137 + angle_coeff @angle:c-cy-hc harmonic 46.135 111.320 # SOURCE3_SOURCE5 246 1.1605 + angle_coeff @angle:cl-cy-cy harmonic 69.535 117.010 # SOURCE3_SOURCE5 41 1.1740 + angle_coeff @angle:cl-cy-h1 harmonic 49.261 106.590 # SOURCE3 1 + angle_coeff @angle:cl-cy-hc harmonic 47.632 114.000 # SOURCE2 1 + angle_coeff @angle:c-cy-n harmonic 80.522 117.340 # SOURCE4_SOURCE5 164 1.1278 + angle_coeff @angle:c-cy-os harmonic 82.061 115.000 # SOURCE4_SOURCE5 17 1.7766 + angle_coeff @angle:cv-cy-cy harmonic 73.645 86.710 # SOURCE4_SOURCE5 30 1.1538 + angle_coeff @angle:cv-cy-hc harmonic 46.478 114.420 # SOURCE4_SOURCE5 25 1.1899 + angle_coeff @angle:cx-cy-cy harmonic 68.163 101.230 # SOURCE3 4 + angle_coeff @angle:cx-cy-hc harmonic 45.715 118.300 # SOURCE2 3 5.7799 + angle_coeff @angle:cy-cy-cy harmonic 72.002 88.400 # SOURCE3_SOURCE5 746 1.4921 + angle_coeff @angle:cy-cy-f harmonic 85.702 112.870 # SOURCE4 13 1.6772 + angle_coeff @angle:cy-cy-h1 harmonic 45.598 113.240 # SOURCE3_SOURCE5 501 1.2112 + angle_coeff @angle:cy-cy-h2 harmonic 44.908 116.780 # SOURCE4_SOURCE5 206 0.8496 + angle_coeff @angle:cy-cy-hc harmonic 45.290 114.790 # SOURCE3_SOURCE5 1632 2.3030 + angle_coeff @angle:cy-cy-n3 harmonic 92.778 87.580 # SOURCE3 4 0.6135 + angle_coeff @angle:cy-cy-n harmonic 91.445 90.630 # SOURCE3_SOURCE5 429 2.2980 + angle_coeff @angle:cy-cy-na harmonic 80.160 119.560 # SOURCE4_SOURCE5 26 0.4777 + angle_coeff @angle:cy-cy-oh harmonic 82.786 114.190 # SOURCE3 4 + angle_coeff @angle:cy-cy-os harmonic 83.069 111.770 # SOURCE4 18 2.1334 + angle_coeff @angle:cy-cy-s6 harmonic 60.829 117.220 # SOURCE4_SOURCE5 19 1.2938 + angle_coeff @angle:cy-cy-ss harmonic 60.567 118.400 # SOURCE4_SOURCE5 183 1.7650 + angle_coeff @angle:h1-cy-h1 harmonic 38.688 109.460 # SOURCE3_SOURCE5 73 0.6101 + angle_coeff @angle:h1-cy-n3 harmonic 59.591 113.930 # SOURCE3_SOURCE5 104 0.9602 + angle_coeff @angle:h1-cy-n harmonic 60.615 111.280 # SOURCE4_SOURCE5 377 0.6736 + angle_coeff @angle:h1-cy-oh harmonic 62.604 111.490 # SOURCE3 2 + angle_coeff @angle:h1-cy-os harmonic 62.029 110.130 # SOURCE3_SOURCE5 45 0.8913 + angle_coeff @angle:h1-cy-s6 harmonic 41.611 111.620 # SOURCE4_SOURCE5 16 1.2135 + angle_coeff @angle:h2-cy-n harmonic 59.772 114.500 # SOURCE4_SOURCE5 213 0.6904 + angle_coeff @angle:h2-cy-os harmonic 62.315 109.190 # SOURCE4_SOURCE5 19 0.6835 + angle_coeff @angle:h2-cy-s6 harmonic 41.906 110.010 # SOURCE4_SOURCE5 29 1.6175 + angle_coeff @angle:h2-cy-ss harmonic 41.997 109.770 # SOURCE4_SOURCE5 214 0.7540 + angle_coeff @angle:hc-cy-hc harmonic 38.780 108.980 # SOURCE3_SOURCE5 313 0.5379 + angle_coeff @angle:n-cy-os harmonic 109.575 107.420 # SOURCE4_SOURCE5 24 2.2897 + angle_coeff @angle:n-cy-s6 harmonic 82.361 103.180 # SOURCE4_SOURCE5 18 0.8204 + angle_coeff @angle:n-cy-ss harmonic 81.655 105.130 # SOURCE4_SOURCE5 165 0.4214 + angle_coeff @angle:nh-cz-nh harmonic 112.563 120.140 # SOURCE4_SOURCE5 67 0.3910 + angle_coeff @angle:br-n1-c1 harmonic 52.125 180.000 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-c1 harmonic 65.921 179.920 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-c2 harmonic 61.737 177.730 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-c3 harmonic 57.795 177.720 # HF/6-31G*_SOURCE5 6 0.4473 + angle_coeff @angle:c1-n1-ca harmonic 60.455 179.990 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-cl harmonic 62.197 179.950 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-f harmonic 73.857 179.960 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-hn harmonic 45.538 179.980 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-i harmonic 49.085 179.950 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-n1 harmonic 83.205 180.000 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-n2 harmonic 81.640 171.560 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-n3 harmonic 76.060 175.590 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-n4 harmonic 74.800 179.690 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-na harmonic 75.122 180.000 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-nh harmonic 76.286 176.350 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-o harmonic 77.945 179.950 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-oh harmonic 78.300 174.310 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-os harmonic 77.399 176.610 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-p2 harmonic 70.987 172.830 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-p3 harmonic 71.573 173.510 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-p4 harmonic 70.741 173.640 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-p5 harmonic 74.438 177.280 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-s2 harmonic 61.878 178.110 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-s4 harmonic 56.730 169.600 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-s harmonic 54.789 179.990 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-s6 harmonic 63.372 175.920 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-sh harmonic 57.243 174.250 # HF/6-31G* 1 + angle_coeff @angle:c1-n1-ss harmonic 56.948 176.060 # HF/6-31G* 1 + angle_coeff @angle:c2-n1-n1 harmonic 77.250 180.000 # HF/6-31G* 1 + angle_coeff @angle:c2-n1-o harmonic 91.430 116.940 # SOURCE3 2 0.0060 + angle_coeff @angle:c2-n1-s harmonic 66.557 118.000 # SOURCE3 2 0.0121 + angle_coeff @angle:c3-n1-n1 harmonic 72.180 180.000 # HF/6-31G* 1 + angle_coeff @angle:ca-n1-n1 harmonic 76.091 180.000 # HF/6-31G* 1 + angle_coeff @angle:ce-n1-o harmonic 89.183 122.400 # CORR 2 + angle_coeff @angle:ce-n1-s harmonic 66.690 117.340 # CORR 2 + angle_coeff @angle:cf-n1-o harmonic 89.183 122.400 # CORR 2 + angle_coeff @angle:cf-n1-s harmonic 66.690 117.340 # CORR 2 + angle_coeff @angle:cl-n1-n1 harmonic 77.983 179.940 # HF/6-31G* 1 + angle_coeff @angle:f-n1-n1 harmonic 92.867 179.930 # HF/6-31G* 1 + angle_coeff @angle:hn-n1-n1 harmonic 57.688 179.910 # HF/6-31G* 1 + angle_coeff @angle:i-n1-n1 harmonic 61.297 179.940 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-n1 harmonic 105.090 179.970 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-n2 harmonic 102.546 172.850 # HF/6-31G*_SOURCE5 38 0.7957 + angle_coeff @angle:n1-n1-n3 harmonic 95.850 175.090 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-n4 harmonic 94.056 179.910 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-na harmonic 94.541 179.970 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-nh harmonic 96.108 176.000 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-o harmonic 98.200 179.940 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-oh harmonic 98.761 173.770 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-os harmonic 97.594 176.120 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-p2 harmonic 88.474 174.710 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-p3 harmonic 89.510 174.270 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-s harmonic 68.668 180.000 # SOURCE3 1 + angle_coeff @angle:n1-n1-sh harmonic 71.618 175.070 # HF/6-31G* 1 + angle_coeff @angle:n1-n1-ss harmonic 71.507 175.610 # HF/6-31G* 1 + angle_coeff @angle:o-n1-p2 harmonic 107.306 116.050 # SOURCE3 1 + angle_coeff @angle:p2-n1-s harmonic 83.718 119.930 # SOURCE3 1 + angle_coeff @angle:br-n2-br harmonic 64.457 106.600 # SOURCE3 1 + angle_coeff @angle:br-n2-c2 harmonic 60.247 112.400 # SOURCE3 1 + angle_coeff @angle:br-n2-n2 harmonic 76.071 110.420 # SOURCE3 1 + angle_coeff @angle:br-n2-o harmonic 74.480 114.470 # SOURCE3 1 + angle_coeff @angle:br-n2-p2 harmonic 82.651 111.030 # SOURCE3 1 + angle_coeff @angle:br-n2-s harmonic 63.537 115.780 # SOURCE3 1 + angle_coeff @angle:c1-n2-c1 harmonic 77.425 121.100 # SOURCE3 1 + angle_coeff @angle:c1-n2-c3 harmonic 60.897 151.880 # SOURCE3 4 15.8282 + angle_coeff @angle:c1-n2-cl harmonic 68.804 118.800 # SOURCE2 1 + angle_coeff @angle:c1-n2-hn harmonic 52.343 126.500 # SOURCE2 3 7.6267 + angle_coeff @angle:c1-n2-n2 harmonic 97.203 113.400 # SOURCE3 1 + angle_coeff @angle:c1-n2-o harmonic 99.262 113.590 # SOURCE3 1 + angle_coeff @angle:c1-n2-p2 harmonic 88.534 119.570 # SOURCE3 1 + angle_coeff @angle:c1-n2-s harmonic 71.943 117.670 # SOURCE3 1 + angle_coeff @angle:c2-n2-c2 harmonic 73.202 118.180 # SOURCE3 1 + angle_coeff @angle:c2-n2-c3 harmonic 68.517 115.300 # SOURCE3 8 4.2940 + angle_coeff @angle:c2-n2-ca harmonic 72.054 119.940 # SOURCE3 1 + angle_coeff @angle:c2-n2-cl harmonic 70.470 112.640 # SOURCE3 1 + angle_coeff @angle:c2-n2-f harmonic 90.773 108.140 # SOURCE3 1 + angle_coeff @angle:c2-n2-hn harmonic 53.185 110.800 # SOURCE3_SOURCE5 419 0.5563 + angle_coeff @angle:c2-n2-i harmonic 54.902 114.740 # SOURCE3 2 0.0139 + angle_coeff @angle:c2-n2-n1 harmonic 94.708 115.090 # HF/6-31G* 1 + angle_coeff @angle:c2-n2-n2 harmonic 98.476 103.590 # SOURCE3 2 + angle_coeff @angle:c2-n2-n3 harmonic 89.963 118.140 # SOURCE3 1 + angle_coeff @angle:c2-n2-n4 harmonic 78.566 112.220 # SOURCE3 3 0.0406 + angle_coeff @angle:c2-n2-n harmonic 88.873 117.930 # SOURCE4_SOURCE5 32 1.2067 + angle_coeff @angle:c2-n2-na harmonic 88.734 117.580 # SOURCE3 8 1.6671 + angle_coeff @angle:c2-n2-nh harmonic 89.294 117.610 # SOURCE3 6 3.2642 + angle_coeff @angle:c2-n2-no harmonic 86.019 118.020 # SOURCE3_SOURCE5 8 0.7772 + angle_coeff @angle:c2-n2-o harmonic 94.405 116.940 # SOURCE3 1 + angle_coeff @angle:c2-n2-oh harmonic 90.358 111.120 # SOURCE4_SOURCE5 59 1.2303 + angle_coeff @angle:c2-n2-os harmonic 90.019 110.960 # SOURCE4_SOURCE5 46 1.0478 + angle_coeff @angle:c2-n2-p2 harmonic 88.774 116.000 # SOURCE3 1 + angle_coeff @angle:c2-n2-p3 harmonic 80.914 119.300 # SOURCE3 3 2.8489 + angle_coeff @angle:c2-n2-p4 harmonic 82.737 118.770 # SOURCE3 1 + angle_coeff @angle:c2-n2-s4 harmonic 70.138 112.290 # SOURCE3 1 + angle_coeff @angle:c2-n2-s6 harmonic 70.821 116.240 # SOURCE3 1 + angle_coeff @angle:c2-n2-s harmonic 70.719 118.000 # SOURCE3 1 + angle_coeff @angle:c2-n2-sh harmonic 64.926 115.480 # SOURCE3 1 + angle_coeff @angle:c2-n2-ss harmonic 66.888 118.040 # SOURCE3 4 2.2804 + angle_coeff @angle:c3-n2-c3 harmonic 66.122 110.700 # SOURCE3 1 + angle_coeff @angle:c3-n2-ca harmonic 68.205 115.050 # SOURCE4_SOURCE5 12 1.0676 + angle_coeff @angle:c3-n2-ce harmonic 67.437 118.670 # CORR_SOURCE5 270 1.8559 + angle_coeff @angle:c3-n2-cf harmonic 67.437 118.670 # CORR_SOURCE5 270 1.8559 + angle_coeff @angle:c3-n2-hn harmonic 45.854 118.400 # SOURCE3 1 + angle_coeff @angle:c3-n2-n1 harmonic 86.587 116.100 # SOURCE4_SOURCE5 33 0.4557 + angle_coeff @angle:c3-n2-n2 harmonic 87.844 110.840 # SOURCE3_SOURCE5 20 1.2862 + angle_coeff @angle:c3-n2-nh harmonic 86.138 109.990 # SOURCE3 1 + angle_coeff @angle:c3-n2-o harmonic 88.263 112.400 # SOURCE2 1 + angle_coeff @angle:c3-n2-p2 harmonic 85.879 114.210 # SOURCE3 2 2.2772 + angle_coeff @angle:c3-n2-s6 harmonic 68.328 113.840 # SOURCE3 1 + angle_coeff @angle:c3-n2-s harmonic 67.797 116.720 # SOURCE3 1 + angle_coeff @angle:ca-n2-ca harmonic 73.899 112.200 # SOURCE3 1 + angle_coeff @angle:ca-n2-hn harmonic 50.447 120.000 # SOURCE3 1 + angle_coeff @angle:ca-n2-n2 harmonic 93.256 113.530 # SOURCE3 1 + angle_coeff @angle:ca-n2-o harmonic 93.893 116.000 # SOURCE2 1 + angle_coeff @angle:ca-n2-p2 harmonic 87.640 118.110 # SOURCE3 1 + angle_coeff @angle:ca-n2-s harmonic 69.770 120.110 # SOURCE3 1 + angle_coeff @angle:c-n2-c2 harmonic 68.290 120.970 # SOURCE3 1 + angle_coeff @angle:c-n2-c harmonic 64.555 123.800 # SOURCE3 1 + angle_coeff @angle:c-n2-ca harmonic 67.993 120.500 # SOURCE3 1 + angle_coeff @angle:cc-n2-cl harmonic 69.467 115.790 # CORR 2 + angle_coeff @angle:cc-n2-hn harmonic 52.795 111.250 # CORR_SOURCE5 44 0.9238 + angle_coeff @angle:cc-n2-na harmonic 91.793 109.240 # SOURCE4_SOURCE5 23 1.5921 + angle_coeff @angle:cc-n2-nh harmonic 88.704 118.470 # SOURCE4_SOURCE5 13 1.7276 + angle_coeff @angle:cd-n2-cl harmonic 69.467 115.790 # CORR 2 + angle_coeff @angle:cd-n2-hn harmonic 52.795 111.250 # CORR_SOURCE5 44 0.9238 + angle_coeff @angle:ce-n2-hn harmonic 52.954 111.000 # CORR_SOURCE5 129 0.3980 + angle_coeff @angle:ce-n2-n harmonic 88.686 117.980 # CORR_SOURCE5 153 0.9604 + angle_coeff @angle:ce-n2-nh harmonic 88.846 118.340 # CORR_SOURCE5 99 1.0308 + angle_coeff @angle:ce-n2-o harmonic 96.153 112.160 # SOURCE3 1 + angle_coeff @angle:ce-n2-oh harmonic 89.527 112.790 # CORR_SOURCE5 124 1.4261 + angle_coeff @angle:ce-n2-os harmonic 89.131 112.790 # CORR_SOURCE5 58 1.1282 + angle_coeff @angle:ce-n2-s harmonic 71.153 116.280 # SOURCE3 1 + angle_coeff @angle:cf-n2-hn harmonic 52.942 111.050 # CORR_SOURCE5 5 0.7460 + angle_coeff @angle:cf-n2-n harmonic 88.686 117.980 # CORR_SOURCE5 153 0.9604 + angle_coeff @angle:cf-n2-nh harmonic 88.846 118.340 # CORR_SOURCE5 99 1.0308 + angle_coeff @angle:cf-n2-o harmonic 96.153 112.160 # SOURCE3 1 + angle_coeff @angle:cf-n2-oh harmonic 89.527 112.790 # CORR_SOURCE5 124 1.4261 + angle_coeff @angle:cf-n2-os harmonic 89.131 112.790 # CORR_SOURCE5 58 1.1282 + angle_coeff @angle:cf-n2-s harmonic 71.153 116.280 # SOURCE3 1 + angle_coeff @angle:cl-n2-n1 harmonic 90.032 108.700 # SOURCE2 1 + angle_coeff @angle:cl-n2-n2 harmonic 89.183 110.470 # SOURCE3 1 + angle_coeff @angle:cl-n2-o harmonic 87.927 114.030 # SOURCE3 1 + angle_coeff @angle:cl-n2-p2 harmonic 93.146 112.980 # SOURCE3 1 + angle_coeff @angle:cl-n2-s harmonic 72.639 115.770 # SOURCE3 1 + angle_coeff @angle:cx-n2-n2 harmonic 113.932 64.920 # SOURCE3 2 + angle_coeff @angle:f-n2-n2 harmonic 110.866 114.600 # SOURCE2 1 + angle_coeff @angle:f-n2-o harmonic 114.530 110.100 # SOURCE2 1 + angle_coeff @angle:f-n2-p2 harmonic 113.300 107.100 # SOURCE3 1 + angle_coeff @angle:f-n2-s harmonic 88.996 110.730 # SOURCE3 1 + angle_coeff @angle:hn-n2-hn harmonic 38.294 120.000 # SOURCE3 1 + angle_coeff @angle:hn-n2-n1 harmonic 67.682 114.100 # SOURCE2 1 + angle_coeff @angle:hn-n2-n2 harmonic 69.032 105.010 # SOURCE3 19 1.5183 + angle_coeff @angle:hn-n2-ne harmonic 67.706 108.560 # SOURCE3 29 5.5708 + angle_coeff @angle:hn-n2-nf harmonic 67.706 108.560 # SOURCE3 29 + angle_coeff @angle:hn-n2-o harmonic 70.317 107.370 # SOURCE3 1 + angle_coeff @angle:hn-n2-p2 harmonic 59.815 112.090 # SOURCE3 18 4.0663 + angle_coeff @angle:hn-n2-p4 harmonic 55.602 111.330 # SOURCE3 1 + angle_coeff @angle:hn-n2-p5 harmonic 57.476 122.340 # SOURCE3 1 + angle_coeff @angle:hn-n2-pe harmonic 62.556 111.410 # SOURCE3 20 4.9895 + angle_coeff @angle:hn-n2-pf harmonic 62.556 111.410 # SOURCE3 20 + angle_coeff @angle:hn-n2-s2 harmonic 47.686 115.800 # SOURCE2 1 + angle_coeff @angle:hn-n2-s4 harmonic 46.643 111.210 # SOURCE3 1 + angle_coeff @angle:hn-n2-s harmonic 49.437 108.170 # SOURCE3 1 + angle_coeff @angle:hn-n2-s6 harmonic 48.367 111.170 # SOURCE3_SOURCE5 7 0.7012 + angle_coeff @angle:i-n2-n2 harmonic 69.513 111.790 # SOURCE3 1 + angle_coeff @angle:i-n2-o harmonic 67.472 116.820 # SOURCE3 1 + angle_coeff @angle:i-n2-p2 harmonic 77.614 113.260 # SOURCE3 1 + angle_coeff @angle:i-n2-s harmonic 59.644 116.850 # SOURCE3 1 + angle_coeff @angle:n1-n2-n1 harmonic 122.832 112.000 # HF/6-31G* 1 + angle_coeff @angle:n2-n2-n1 harmonic 95.438 180.000 # dac_for_azides 0 + angle_coeff @angle:n2-n2-n2 harmonic 120.662 109.490 # SOURCE3 2 + angle_coeff @angle:n2-n2-n3 harmonic 117.964 108.880 # SOURCE3 1 + angle_coeff @angle:n2-n2-n4 harmonic 101.207 106.450 # SOURCE3 1 + angle_coeff @angle:n2-n2-na harmonic 114.285 112.230 # SOURCE3 1 + angle_coeff @angle:n2-n2-nh harmonic 115.311 111.700 # SOURCE3 5 0.3475 + angle_coeff @angle:n2-n2-no harmonic 114.147 105.970 # SOURCE3 1 + angle_coeff @angle:n2-n2-o harmonic 122.449 110.430 # SOURCE3 1 + angle_coeff @angle:n2-n2-oh harmonic 113.470 111.510 # SOURCE3 1 + angle_coeff @angle:n2-n2-os harmonic 114.570 108.380 # SOURCE3 1 + angle_coeff @angle:n2-n2-p2 harmonic 114.892 109.150 # SOURCE3 1 + angle_coeff @angle:n2-n2-p3 harmonic 104.216 113.050 # SOURCE3 1 + angle_coeff @angle:n2-n2-p4 harmonic 103.768 118.770 # SOURCE3 1 + angle_coeff @angle:n2-n2-p5 harmonic 114.546 110.460 # SOURCE3 1 + angle_coeff @angle:n2-n2-s4 harmonic 90.072 107.300 # SOURCE3 1 + angle_coeff @angle:n2-n2-s6 harmonic 90.924 111.250 # SOURCE3 1 + angle_coeff @angle:n2-n2-s harmonic 89.630 115.910 # SOURCE3 1 + angle_coeff @angle:n2-n2-sh harmonic 83.010 111.100 # SOURCE3 1 + angle_coeff @angle:n2-n2-ss harmonic 86.115 112.140 # SOURCE3 1 + angle_coeff @angle:n3-n2-n3 harmonic 112.191 115.070 # SOURCE3 1 + angle_coeff @angle:n3-n2-o harmonic 117.213 114.000 # SOURCE2 1 + angle_coeff @angle:n3-n2-p2 harmonic 110.501 115.340 # SOURCE3 1 + angle_coeff @angle:n3-n2-s harmonic 87.944 117.130 # SOURCE3 1 + angle_coeff @angle:n4-n2-n4 harmonic 92.222 106.700 # SOURCE3 1 + angle_coeff @angle:n4-n2-o harmonic 99.103 112.200 # SOURCE3 1 + angle_coeff @angle:n4-n2-p2 harmonic 101.387 113.070 # SOURCE3 1 + angle_coeff @angle:n4-n2-s harmonic 78.497 118.500 # SOURCE3 1 + angle_coeff @angle:na-n2-na harmonic 113.061 107.000 # SOURCE3 1 + angle_coeff @angle:na-n2-o harmonic 115.589 113.090 # SOURCE3 1 + angle_coeff @angle:na-n2-p2 harmonic 107.835 119.160 # SOURCE3 1 + angle_coeff @angle:na-n2-s harmonic 86.691 118.260 # SOURCE3 1 + angle_coeff @angle:ne-n2-nh harmonic 114.300 113.340 # CORR_SOURCE5 18 1.2157 + angle_coeff @angle:ne-n2-o harmonic 122.270 110.310 # SOURCE3 1 + angle_coeff @angle:ne-n2-s harmonic 89.426 116.220 # SOURCE3 1 + angle_coeff @angle:nf-n2-nh harmonic 114.300 113.340 # CORR_SOURCE5 18 1.2157 + angle_coeff @angle:nf-n2-o harmonic 122.270 110.310 # SOURCE3 1 + angle_coeff @angle:nf-n2-s harmonic 89.426 116.220 # SOURCE3 1 + angle_coeff @angle:nh-n2-nh harmonic 107.426 121.200 # SOURCE3 1 + angle_coeff @angle:nh-n2-o harmonic 116.027 113.850 # SOURCE4_SOURCE5 33 1.0590 + angle_coeff @angle:nh-n2-p2 harmonic 108.341 118.830 # SOURCE3 2 0.1024 + angle_coeff @angle:nh-n2-s harmonic 87.530 116.900 # SOURCE3 2 0.2276 + angle_coeff @angle:n-n2-n2 harmonic 116.779 108.160 # SOURCE4_SOURCE5 18 0.3340 + angle_coeff @angle:n-n2-o harmonic 114.959 115.110 # SOURCE4_SOURCE5 85 0.2779 + angle_coeff @angle:no-n2-no harmonic 109.483 103.700 # SOURCE3 1 + angle_coeff @angle:no-n2-o harmonic 118.569 100.760 # SOURCE3 1 + angle_coeff @angle:no-n2-p2 harmonic 109.507 111.950 # SOURCE3 1 + angle_coeff @angle:n-n2-p2 harmonic 108.858 117.300 # SOURCE3 1 + angle_coeff @angle:n-n2-s harmonic 87.790 115.740 # SOURCE3 1 + angle_coeff @angle:oh-n2-oh harmonic 114.003 101.700 # SOURCE3 1 + angle_coeff @angle:oh-n2-p2 harmonic 109.132 115.110 # SOURCE3 1 + angle_coeff @angle:oh-n2-s harmonic 86.961 116.080 # SOURCE3 1 + angle_coeff @angle:o-n2-o harmonic 122.337 115.370 # SOURCE3 1 + angle_coeff @angle:o-n2-oh harmonic 114.777 112.150 # SOURCE2 2 1.4500 + angle_coeff @angle:o-n2-os harmonic 115.139 110.350 # SOURCE3 2 0.0042 + angle_coeff @angle:o-n2-p2 harmonic 112.237 116.080 # SOURCE3 1 + angle_coeff @angle:o-n2-p3 harmonic 104.358 113.430 # SOURCE3 1 + angle_coeff @angle:o-n2-p4 harmonic 107.967 110.610 # SOURCE3 1 + angle_coeff @angle:o-n2-p5 harmonic 116.129 109.110 # SOURCE3 1 + angle_coeff @angle:o-n2-pe harmonic 107.813 134.560 # SOURCE3 1 + angle_coeff @angle:o-n2-pf harmonic 107.813 134.560 # SOURCE3 1 + angle_coeff @angle:o-n2-s4 harmonic 90.054 108.910 # SOURCE3 1 + angle_coeff @angle:o-n2-s6 harmonic 91.703 111.340 # SOURCE3 1 + angle_coeff @angle:o-n2-s harmonic 89.978 117.180 # SOURCE3 1 + angle_coeff @angle:o-n2-sh harmonic 81.901 114.980 # SOURCE3 1 + angle_coeff @angle:os-n2-os harmonic 108.669 110.290 # SOURCE3 1 + angle_coeff @angle:os-n2-p2 harmonic 111.268 110.200 # SOURCE3 1 + angle_coeff @angle:o-n2-ss harmonic 85.259 115.770 # SOURCE3_SOURCE5 7 0.2342 + angle_coeff @angle:os-n2-s harmonic 88.194 112.230 # SOURCE3 1 + angle_coeff @angle:p2-n2-p2 harmonic 113.183 116.800 # SOURCE3 1 + angle_coeff @angle:p2-n2-p3 harmonic 103.997 124.480 # SOURCE3 1 + angle_coeff @angle:p2-n2-p4 harmonic 103.837 128.370 # SOURCE3 1 + angle_coeff @angle:p2-n2-p5 harmonic 110.289 123.470 # SOURCE3 1 + angle_coeff @angle:p2-n2-s4 harmonic 89.884 112.100 # SOURCE3 1 + angle_coeff @angle:p2-n2-s6 harmonic 90.002 115.700 # SOURCE3 1 + angle_coeff @angle:p2-n2-s harmonic 89.517 117.840 # SOURCE3 1 + angle_coeff @angle:p2-n2-sh harmonic 83.828 118.450 # SOURCE3 1 + angle_coeff @angle:p2-n2-ss harmonic 85.455 120.430 # SOURCE3 1 + angle_coeff @angle:p3-n2-p3 harmonic 101.430 120.400 # SOURCE3 1 + angle_coeff @angle:p3-n2-s harmonic 83.445 120.860 # SOURCE3 1 + angle_coeff @angle:p4-n2-s harmonic 81.102 131.840 # SOURCE3 1 + angle_coeff @angle:p5-n2-p5 harmonic 111.803 120.600 # SOURCE3 1 + angle_coeff @angle:p5-n2-s harmonic 88.930 119.890 # SOURCE3 1 + angle_coeff @angle:pe-n2-s harmonic 92.311 115.730 # SOURCE3 1 + angle_coeff @angle:pf-n2-s harmonic 92.311 115.730 # SOURCE3 1 + angle_coeff @angle:s4-n2-s4 harmonic 67.822 119.180 # SOURCE3 1 + angle_coeff @angle:s4-n2-s6 harmonic 68.983 119.180 # SOURCE3 1 + angle_coeff @angle:s6-n2-s6 harmonic 70.275 119.180 # SOURCE3 1 + angle_coeff @angle:sh-n2-sh harmonic 61.611 123.930 # SOURCE3 1 + angle_coeff @angle:sh-n2-ss harmonic 63.026 123.930 # SOURCE3 1 + angle_coeff @angle:s-n2-s harmonic 70.359 120.880 # SOURCE3 1 + angle_coeff @angle:s-n2-s4 harmonic 71.109 113.000 # SOURCE3 1 + angle_coeff @angle:s-n2-s6 harmonic 70.436 119.610 # SOURCE3 1 + angle_coeff @angle:s-n2-sh harmonic 65.341 122.050 # SOURCE3 1 + angle_coeff @angle:s-n2-ss harmonic 68.418 118.190 # SOURCE3 1 + angle_coeff @angle:ss-n2-ss harmonic 64.662 123.930 # SOURCE3 1 + angle_coeff @angle:br-n3-br harmonic 67.124 107.150 # SOURCE3 1 + angle_coeff @angle:br-n3-c3 harmonic 63.925 106.930 # SOURCE3 2 + angle_coeff @angle:c1-n3-c1 harmonic 68.156 123.340 # SOURCE3 1 + angle_coeff @angle:c1-n3-f harmonic 91.888 104.700 # SOURCE2 1 + angle_coeff @angle:c1-n3-hn harmonic 50.216 114.780 # SOURCE3_SOURCE5 7 0.4776 + angle_coeff @angle:c1-n3-o harmonic 89.192 116.630 # SOURCE3 1 + angle_coeff @angle:c2-n3-c2 harmonic 68.168 124.680 # SOURCE3 1 + angle_coeff @angle:c2-n3-hn harmonic 49.470 119.380 # SOURCE3 1 + angle_coeff @angle:c3-n3-c3 harmonic 65.697 112.350 # SOURCE3_SOURCE5 10425 1.3688 + angle_coeff @angle:c3-n3-cl harmonic 72.005 107.230 # SOURCE3 3 0.3673 + angle_coeff @angle:c3-n3-cx harmonic 64.536 116.000 # SOURCE4_SOURCE5 93 0.9654 + angle_coeff @angle:c3-n3-cy harmonic 63.919 117.550 # SOURCE4_SOURCE5 52 1.6649 + angle_coeff @angle:c3-n3-f harmonic 88.810 103.130 # SOURCE3 2 + angle_coeff @angle:c3-n3-hn harmonic 47.782 109.290 # SOURCE3_SOURCE5 6742 0.6614 + angle_coeff @angle:c3-n3-i harmonic 60.375 108.480 # SOURCE3 2 + angle_coeff @angle:c3-n3-n2 harmonic 83.514 118.750 # SOURCE2 2 2.6500 + angle_coeff @angle:c3-n3-n3 harmonic 83.494 110.800 # SOURCE3_SOURCE5 91 1.4698 + angle_coeff @angle:c3-n3-n4 harmonic 84.250 109.650 # SOURCE3 3 0.1146 + angle_coeff @angle:c3-n3-n harmonic 84.170 111.710 # SOURCE4_SOURCE5 108 1.7154 + angle_coeff @angle:c3-n3-nh harmonic 83.840 111.770 # SOURCE4_SOURCE5 54 1.2232 + angle_coeff @angle:c3-n3-no harmonic 82.437 116.930 # SOURCE3_SOURCE5 25 0.8475 + angle_coeff @angle:c3-n3-o harmonic 86.116 113.310 # SOURCE3 5 8.9081 + angle_coeff @angle:c3-n3-oh harmonic 85.913 106.490 # SOURCE4_SOURCE5 51 1.1723 + angle_coeff @angle:c3-n3-os harmonic 85.469 105.800 # SOURCE4_SOURCE5 28 1.5996 + angle_coeff @angle:c3-n3-p3 harmonic 79.872 119.670 # SOURCE3_SOURCE5 17 1.9089 + angle_coeff @angle:c3-n3-p5 harmonic 81.775 119.860 # SOURCE4_SOURCE5 188 2.0452 + angle_coeff @angle:c3-n3-s4 harmonic 62.997 114.490 # SOURCE3_SOURCE5 8 1.8120 + angle_coeff @angle:c3-n3-s6 harmonic 64.550 116.550 # SOURCE4_SOURCE5 179 1.8765 + angle_coeff @angle:c3-n3-s harmonic 63.268 110.020 # SOURCE3 1 + angle_coeff @angle:c3-n3-sh harmonic 63.898 112.700 # SOURCE3 1 + angle_coeff @angle:c3-n3-ss harmonic 63.312 116.250 # SOURCE3_SOURCE5 14 1.9512 + angle_coeff @angle:c3-n3-sy harmonic 64.295 115.250 # SOURCE4_SOURCE5 250 1.7586 + angle_coeff @angle:cl-n3-cl harmonic 80.378 108.280 # SOURCE3 1 + angle_coeff @angle:cl-n3-hn harmonic 48.266 104.390 # SOURCE3 2 + angle_coeff @angle:cl-n3-n3 harmonic 90.354 107.650 # SOURCE3 1 + angle_coeff @angle:cx-n3-cx harmonic 89.029 60.730 # SOURCE4_SOURCE5 147 0.2518 + angle_coeff @angle:cx-n3-hn harmonic 47.500 109.830 # SOURCE4_SOURCE5 76 0.6684 + angle_coeff @angle:cx-n3-p5 harmonic 81.827 119.410 # SOURCE4_SOURCE5 173 1.2386 + angle_coeff @angle:cx-n3-py harmonic 80.259 121.750 # SOURCE4_SOURCE5 20 1.0295 + angle_coeff @angle:cy-n3-cy harmonic 72.263 91.110 # SOURCE4_SOURCE5 36 0.9119 + angle_coeff @angle:cy-n3-hn harmonic 47.059 110.670 # SOURCE4_SOURCE5 48 0.9592 + angle_coeff @angle:f-n3-f harmonic 115.777 102.220 # SOURCE2 4 0.7562 + angle_coeff @angle:f-n3-hn harmonic 65.935 99.800 # SOURCE2 1 + angle_coeff @angle:hn-n3-hn harmonic 40.828 106.400 # SOURCE3_SOURCE5 2019 0.9777 + angle_coeff @angle:hn-n3-i harmonic 36.749 109.980 # SOURCE3 2 + angle_coeff @angle:hn-n3-n1 harmonic 64.085 110.170 # HF/6-31G* 1 + angle_coeff @angle:hn-n3-n2 harmonic 63.293 115.940 # SOURCE3 1 + angle_coeff @angle:hn-n3-n3 harmonic 61.180 107.680 # SOURCE3_SOURCE5 107 1.7630 + angle_coeff @angle:hn-n3-n4 harmonic 61.852 106.910 # SOURCE3_SOURCE5 18 0.7068 + angle_coeff @angle:hn-n3-n harmonic 62.520 108.120 # SOURCE3_SOURCE5 90 1.1435 + angle_coeff @angle:hn-n3-na harmonic 61.963 107.890 # SOURCE3 1 + angle_coeff @angle:hn-n3-nh harmonic 62.016 108.310 # SOURCE3_SOURCE5 85 1.2609 + angle_coeff @angle:hn-n3-no harmonic 63.767 104.780 # SOURCE3 3 1.1126 + angle_coeff @angle:hn-n3-o harmonic 65.058 113.320 # SOURCE3 3 4.3945 + angle_coeff @angle:hn-n3-oh harmonic 63.840 102.300 # SOURCE3_SOURCE5 14 0.6850 + angle_coeff @angle:hn-n3-os harmonic 62.667 102.750 # SOURCE3_SOURCE5 43 0.6086 + angle_coeff @angle:hn-n3-p2 harmonic 55.368 120.260 # SOURCE3 1 + angle_coeff @angle:hn-n3-p3 harmonic 54.032 116.890 # SOURCE3 9 3.8816 + angle_coeff @angle:hn-n3-p4 harmonic 56.121 113.050 # SOURCE3 2 + angle_coeff @angle:hn-n3-p5 harmonic 56.803 114.320 # SOURCE3_SOURCE5 63 1.6600 + angle_coeff @angle:hn-n3-s4 harmonic 42.895 109.140 # SOURCE3_SOURCE5 13 1.2903 + angle_coeff @angle:hn-n3-s harmonic 41.811 109.470 # SOURCE3 1 + angle_coeff @angle:hn-n3-s6 harmonic 45.126 109.600 # SOURCE4_SOURCE5 234 1.2605 + angle_coeff @angle:hn-n3-sh harmonic 43.414 108.670 # SOURCE3 3 2.5025 + angle_coeff @angle:hn-n3-ss harmonic 43.417 110.830 # SOURCE3_SOURCE5 14 1.1613 + angle_coeff @angle:hn-n3-sy harmonic 44.457 109.500 # SOURCE4_SOURCE5 617 0.8005 + angle_coeff @angle:i-n3-i harmonic 65.458 111.270 # SOURCE3 1 + angle_coeff @angle:n1-n3-n1 harmonic 111.350 113.210 # HF/6-31G* 1 + angle_coeff @angle:n2-n3-n2 harmonic 110.449 118.730 # SOURCE3 1 + angle_coeff @angle:n2-n3-o harmonic 113.356 114.910 # SOURCE3 1 + angle_coeff @angle:n3-n3-n3 harmonic 107.918 105.710 # SOURCE3 3 0.3561 + angle_coeff @angle:n4-n3-n4 harmonic 104.995 113.480 # SOURCE3 1 + angle_coeff @angle:n4-n3-nh harmonic 108.598 107.140 # SOURCE3 1 + angle_coeff @angle:na-n3-na harmonic 106.431 112.000 # SOURCE3 1 + angle_coeff @angle:nh-n3-nh harmonic 109.151 107.150 # SOURCE3 1 + angle_coeff @angle:n-n3-n harmonic 108.332 110.550 # SOURCE3 1 + angle_coeff @angle:no-n3-no harmonic 106.581 115.260 # SOURCE3 1 + angle_coeff @angle:oh-n3-oh harmonic 109.190 107.180 # SOURCE3 1 + angle_coeff @angle:o-n3-o harmonic 109.294 126.140 # SOURCE3 1 + angle_coeff @angle:o-n3-p2 harmonic 106.891 117.020 # SOURCE3 1 + angle_coeff @angle:o-n3-p4 harmonic 105.671 116.650 # SOURCE3 1 + angle_coeff @angle:o-n3-s4 harmonic 80.957 114.090 # SOURCE3 1 + angle_coeff @angle:o-n3-s6 harmonic 84.368 113.800 # SOURCE3 1 + angle_coeff @angle:o-n3-s harmonic 77.548 119.810 # SOURCE3 1 + angle_coeff @angle:os-n3-os harmonic 107.574 106.520 # SOURCE3 1 + angle_coeff @angle:p2-n3-p2 harmonic 103.056 130.130 # SOURCE3 1 + angle_coeff @angle:p3-n3-p3 harmonic 104.144 118.740 # SOURCE3 3 3.3755 + angle_coeff @angle:p4-n3-p4 harmonic 107.254 116.350 # SOURCE3 1 + angle_coeff @angle:p5-n3-p5 harmonic 107.603 119.420 # SOURCE3 1 + angle_coeff @angle:s4-n3-s4 harmonic 62.022 120.020 # SOURCE3 1 + angle_coeff @angle:s4-n3-s6 harmonic 63.190 120.950 # SOURCE3 1 + angle_coeff @angle:s6-n3-s6 harmonic 65.471 118.540 # SOURCE3_SOURCE5 18 1.1456 + angle_coeff @angle:sh-n3-sh harmonic 62.936 118.630 # SOURCE3 1 + angle_coeff @angle:sh-n3-ss harmonic 62.938 119.670 # SOURCE3 1 + angle_coeff @angle:s-n3-s harmonic 58.040 131.360 # SOURCE3 1 + angle_coeff @angle:ss-n3-ss harmonic 63.249 119.570 # SOURCE3 1 + angle_coeff @angle:br-n4-br harmonic 65.719 114.820 # SOURCE3 1 + angle_coeff @angle:br-n4-hn harmonic 41.251 108.440 # SOURCE3 7 0.5630 + angle_coeff @angle:c1-n4-c1 harmonic 67.454 113.870 # SOURCE3 1 + angle_coeff @angle:c1-n4-hn harmonic 48.997 110.190 # SOURCE3 7 1.0847 + angle_coeff @angle:c2-n4-c2 harmonic 63.556 112.580 # SOURCE3 1 + angle_coeff @angle:c2-n4-c3 harmonic 64.050 110.960 # SOURCE4 13 2.4632 + angle_coeff @angle:c2-n4-hn harmonic 46.094 110.370 # SOURCE3_SOURCE5 39 1.1227 + angle_coeff @angle:c3-n4-c3 harmonic 64.460 109.660 # SOURCE3_SOURCE5 2931 1.1695 + angle_coeff @angle:c3-n4-ca harmonic 64.770 110.530 # SOURCE4_SOURCE5 127 1.4968 + angle_coeff @angle:c3-n4-cc harmonic 64.438 111.040 # SOURCE4_SOURCE5 18 1.4876 + angle_coeff @angle:c3-n4-cl harmonic 71.792 108.040 # SOURCE3 3 + angle_coeff @angle:c3-n4-hn harmonic 46.193 110.110 # SOURCE3 100 1.3136 + angle_coeff @angle:c3-n4-n3 harmonic 83.568 107.700 # SOURCE3_SOURCE5 11 1.5498 + angle_coeff @angle:c3-n4-n4 harmonic 79.845 114.070 # SOURCE3 4 + angle_coeff @angle:c3-n4-n harmonic 82.738 109.740 # SOURCE4_SOURCE5 17 2.0520 + angle_coeff @angle:c3-n4-nh harmonic 81.141 111.730 # SOURCE3 1 + angle_coeff @angle:c3-n4-no harmonic 81.756 109.080 # SOURCE3 1 + angle_coeff @angle:c3-n4-o harmonic 84.145 110.520 # SOURCE3_SOURCE5 7 0.8910 + angle_coeff @angle:c3-n4-oh harmonic 82.047 113.730 # SOURCE3 1 + angle_coeff @angle:c3-n4-os harmonic 83.903 107.420 # SOURCE3 3 3.5920 + angle_coeff @angle:c3-n4-p2 harmonic 74.897 112.520 # SOURCE3 1 + angle_coeff @angle:c3-n4-p3 harmonic 77.458 110.730 # SOURCE3 3 2.1084 + angle_coeff @angle:c3-n4-p5 harmonic 78.172 113.220 # SOURCE3 3 0.4021 + angle_coeff @angle:c3-n4-s4 harmonic 58.766 108.230 # SOURCE3 3 0.4195 + angle_coeff @angle:c3-n4-s6 harmonic 59.297 111.560 # SOURCE3 3 1.8851 + angle_coeff @angle:c3-n4-s harmonic 60.776 113.550 # SOURCE3 1 + angle_coeff @angle:c3-n4-sh harmonic 60.690 115.810 # SOURCE3 1 + angle_coeff @angle:c3-n4-ss harmonic 61.231 113.680 # SOURCE3 3 1.1405 + angle_coeff @angle:ca-n4-ca harmonic 64.228 114.480 # SOURCE3 1 + angle_coeff @angle:ca-n4-hn harmonic 46.901 110.500 # SOURCE3_SOURCE5 23 1.4863 + angle_coeff @angle:c-n4-c harmonic 63.305 108.610 # SOURCE3 1 + angle_coeff @angle:c-n4-hn harmonic 44.970 111.120 # SOURCE3_SOURCE5 17 0.9627 + angle_coeff @angle:cl-n4-cl harmonic 79.101 114.910 # SOURCE3 1 + angle_coeff @angle:cl-n4-hn harmonic 48.065 108.870 # SOURCE3 7 0.7719 + angle_coeff @angle:f-n4-f harmonic 120.491 109.050 # SOURCE3 1 + angle_coeff @angle:f-n4-hn harmonic 67.122 108.390 # SOURCE3 4 + angle_coeff @angle:hn-n4-hn harmonic 40.020 108.300 # SOURCE3_SOURCE5 588 1.8224 + angle_coeff @angle:hn-n4-i harmonic 37.762 108.720 # SOURCE3 7 1.2717 + angle_coeff @angle:hn-n4-n1 harmonic 63.803 109.390 # HF/6-31G* 1 + angle_coeff @angle:hn-n4-n2 harmonic 52.071 109.680 # SOURCE3 19 0.6266 + angle_coeff @angle:hn-n4-n3 harmonic 60.801 110.400 # SOURCE3 11 0.7307 + angle_coeff @angle:hn-n4-n4 harmonic 59.235 108.660 # SOURCE3 18 1.2967 + angle_coeff @angle:hn-n4-n harmonic 61.091 109.080 # SOURCE3 13 1.6047 + angle_coeff @angle:hn-n4-na harmonic 60.973 109.090 # SOURCE3_SOURCE5 31 1.0459 + angle_coeff @angle:hn-n4-nh harmonic 59.568 109.920 # SOURCE3 12 0.7304 + angle_coeff @angle:hn-n4-no harmonic 60.590 104.380 # SOURCE3 2 + angle_coeff @angle:hn-n4-o harmonic 63.200 111.350 # SOURCE3_SOURCE5 11 1.4866 + angle_coeff @angle:hn-n4-oh harmonic 62.612 108.090 # SOURCE3 6 1.6728 + angle_coeff @angle:hn-n4-os harmonic 61.427 109.390 # SOURCE3 10 1.4403 + angle_coeff @angle:hn-n4-p2 harmonic 48.678 110.500 # SOURCE3 25 1.0664 + angle_coeff @angle:hn-n4-p3 harmonic 50.742 109.890 # SOURCE3 10 2.3870 + angle_coeff @angle:hn-n4-p4 harmonic 48.617 111.330 # SOURCE3 3 + angle_coeff @angle:hn-n4-p5 harmonic 52.339 110.000 # SOURCE3 10 1.0282 + angle_coeff @angle:hn-n4-py harmonic 48.319 117.890 # SOURCE3 8 + angle_coeff @angle:hn-n4-s4 harmonic 37.298 110.100 # SOURCE3 6 0.8471 + angle_coeff @angle:hn-n4-s harmonic 41.320 106.890 # SOURCE3 6 1.0775 + angle_coeff @angle:hn-n4-s6 harmonic 38.875 108.940 # SOURCE3 10 0.5715 + angle_coeff @angle:hn-n4-sh harmonic 41.549 108.560 # SOURCE3 6 0.8535 + angle_coeff @angle:hn-n4-ss harmonic 41.406 109.170 # SOURCE3 10 0.8455 + angle_coeff @angle:i-n4-i harmonic 64.315 118.490 # SOURCE3 1 + angle_coeff @angle:n1-n4-n1 harmonic 111.792 110.670 # HF/6-31G* 1 + angle_coeff @angle:n2-n4-n2 harmonic 91.394 108.640 # SOURCE3 1 + angle_coeff @angle:n3-n4-n3 harmonic 106.128 111.070 # SOURCE3 1 + angle_coeff @angle:n4-n4-n4 harmonic 100.290 115.490 # SOURCE3 1 + angle_coeff @angle:na-n4-na harmonic 101.917 119.600 # SOURCE3 1 + angle_coeff @angle:nh-n4-nh harmonic 104.319 109.380 # SOURCE3 1 + angle_coeff @angle:n-n4-n harmonic 102.552 118.620 # SOURCE3 1 + angle_coeff @angle:oh-n4-oh harmonic 109.836 108.190 # SOURCE3 1 + angle_coeff @angle:o-n4-o harmonic 106.848 120.970 # SOURCE3 1 + angle_coeff @angle:os-n4-os harmonic 110.159 104.400 # SOURCE3 1 + angle_coeff @angle:p2-n4-p2 harmonic 94.721 113.910 # SOURCE3 2 + angle_coeff @angle:p3-n4-p3 harmonic 94.786 121.380 # SOURCE3 1 + angle_coeff @angle:p5-n4-p5 harmonic 103.704 107.020 # SOURCE3 1 + angle_coeff @angle:py-n4-py harmonic 123.558 69.790 # SOURCE3 2 + angle_coeff @angle:s4-n4-s4 harmonic 56.264 115.430 # SOURCE3 1 + angle_coeff @angle:s6-n4-s6 harmonic 59.515 109.510 # SOURCE3 1 + angle_coeff @angle:sh-n4-sh harmonic 62.034 112.590 # SOURCE3 1 + angle_coeff @angle:s-n4-s harmonic 58.304 124.550 # SOURCE3 1 + angle_coeff @angle:ss-n4-ss harmonic 62.955 109.200 # SOURCE3 1 + angle_coeff @angle:br-na-br harmonic 61.086 123.000 # SOURCE3 1 + angle_coeff @angle:br-na-c2 harmonic 64.788 100.480 # SOURCE3 2 1.0536 + angle_coeff @angle:br-na-ca harmonic 58.177 124.810 # SOURCE3 1 + angle_coeff @angle:br-na-cc harmonic 58.230 124.620 # SOURCE3 3 0.5348 + angle_coeff @angle:br-na-cd harmonic 58.230 124.620 # SOURCE3 3 + angle_coeff @angle:br-na-nc harmonic 74.547 119.420 # SOURCE3 4 1.6703 + angle_coeff @angle:br-na-nd harmonic 74.550 119.420 # SOURCE3 4 + angle_coeff @angle:br-na-os harmonic 79.164 104.990 # SOURCE3 1 + angle_coeff @angle:br-na-p2 harmonic 78.377 121.010 # SOURCE3 1 + angle_coeff @angle:br-na-pc harmonic 78.871 120.260 # SOURCE3 3 2.1456 + angle_coeff @angle:br-na-pd harmonic 78.871 120.260 # SOURCE3 3 + angle_coeff @angle:br-na-ss harmonic 63.599 112.280 # SOURCE3 1 + angle_coeff @angle:c1-na-c1 harmonic 69.174 117.200 # SOURCE3 1 + angle_coeff @angle:c1-na-c2 harmonic 65.944 125.200 # SOURCE3 1 + angle_coeff @angle:c1-na-ca harmonic 67.645 120.570 # SOURCE3 1 + angle_coeff @angle:c1-na-cc harmonic 67.523 121.350 # SOURCE3 6 0.6517 + angle_coeff @angle:c1-na-cd harmonic 67.523 121.350 # SOURCE3 6 0.6517 + angle_coeff @angle:c1-na-nc harmonic 85.715 120.240 # SOURCE3 4 1.6849 + angle_coeff @angle:c1-na-nd harmonic 85.768 120.240 # SOURCE3 4 + angle_coeff @angle:c1-na-os harmonic 87.875 106.960 # SOURCE3 2 + angle_coeff @angle:c1-na-p2 harmonic 79.771 122.250 # SOURCE3 1 + angle_coeff @angle:c1-na-pc harmonic 80.652 121.480 # SOURCE3 3 2.1681 + angle_coeff @angle:c1-na-pd harmonic 80.652 121.480 # SOURCE3 3 + angle_coeff @angle:c1-na-ss harmonic 63.670 118.300 # SOURCE3 1 + angle_coeff @angle:c2-na-c2 harmonic 69.273 110.370 # SOURCE3 6 0.5121 + angle_coeff @angle:c2-na-c3 harmonic 65.723 117.200 # SOURCE3 2 + angle_coeff @angle:c2-na-ca harmonic 65.505 124.970 # SOURCE4_SOURCE5 19 0.9360 + angle_coeff @angle:c2-na-cc harmonic 65.181 126.550 # SOURCE3_SOURCE5 47 1.6996 + angle_coeff @angle:c2-na-cd harmonic 65.181 126.550 # SOURCE3_SOURCE5 47 1.6996 + angle_coeff @angle:c2-na-cl harmonic 73.039 101.010 # SOURCE3 2 1.5799 + angle_coeff @angle:c2-na-f harmonic 90.731 103.110 # SOURCE3 1 + angle_coeff @angle:c2-na-hn harmonic 47.660 119.280 # SOURCE3 14 6.6027 + angle_coeff @angle:c2-na-i harmonic 62.480 106.740 # SOURCE3 1 + angle_coeff @angle:c2-na-n1 harmonic 83.043 124.810 # HF/6-31G* 1 + angle_coeff @angle:c2-na-n2 harmonic 82.486 125.000 # SOURCE3 1 + angle_coeff @angle:c2-na-n3 harmonic 81.036 124.800 # SOURCE3 1 + angle_coeff @angle:c2-na-n4 harmonic 81.740 121.320 # SOURCE3 1 + angle_coeff @angle:c2-na-n harmonic 81.447 124.700 # SOURCE3 1 + angle_coeff @angle:c2-na-na harmonic 81.658 124.600 # SOURCE3 1 + angle_coeff @angle:c2-na-nc harmonic 84.246 120.800 # CORR_SOURCE5 5 1.0225 + angle_coeff @angle:c2-na-nd harmonic 84.294 120.800 # CORR_SOURCE5 5 1.0225 + angle_coeff @angle:c2-na-nh harmonic 81.563 124.980 # SOURCE3 1 + angle_coeff @angle:c2-na-no harmonic 80.798 124.200 # SOURCE3 1 + angle_coeff @angle:c2-na-o harmonic 85.559 125.900 # SOURCE3 1 + angle_coeff @angle:c2-na-oh harmonic 82.136 123.900 # SOURCE3 1 + angle_coeff @angle:c2-na-os harmonic 85.429 110.330 # SOURCE3 4 3.2172 + angle_coeff @angle:c2-na-p2 harmonic 79.329 122.140 # SOURCE3 1 + angle_coeff @angle:c2-na-p3 harmonic 77.626 126.100 # SOURCE3 1 + angle_coeff @angle:c2-na-p4 harmonic 84.849 125.000 # SOURCE3 1 + angle_coeff @angle:c2-na-p5 harmonic 79.565 125.100 # SOURCE3 1 + angle_coeff @angle:c2-na-pc harmonic 80.116 121.560 # SOURCE3 3 1.6252 + angle_coeff @angle:c2-na-pd harmonic 80.116 121.560 # SOURCE3 3 + angle_coeff @angle:c2-na-s4 harmonic 59.943 124.900 # SOURCE3 1 + angle_coeff @angle:c2-na-s6 harmonic 61.964 124.400 # SOURCE3 1 + angle_coeff @angle:c2-na-s harmonic 60.479 125.800 # SOURCE3 1 + angle_coeff @angle:c2-na-sh harmonic 61.837 125.100 # SOURCE3 1 + angle_coeff @angle:c2-na-ss harmonic 64.023 115.530 # SOURCE3 5 1.4036 + angle_coeff @angle:c3-na-c3 harmonic 62.214 125.590 # SOURCE3 1 + angle_coeff @angle:c3-na-ca harmonic 64.155 124.360 # SOURCE3 5 4.2557 + angle_coeff @angle:c3-na-cc harmonic 63.695 126.460 # SOURCE3_SOURCE5 2025 1.8293 + angle_coeff @angle:c3-na-cd harmonic 63.695 126.460 # SOURCE3_SOURCE5 2025 1.8293 + angle_coeff @angle:c3-na-cp harmonic 65.414 119.620 # SOURCE4_SOURCE5 17 0.4924 + angle_coeff @angle:c3-na-n2 harmonic 82.460 119.240 # SOURCE4_SOURCE5 15 0.8410 + angle_coeff @angle:c3-na-n harmonic 83.711 112.880 # SOURCE4_SOURCE5 34 0.6363 + angle_coeff @angle:c3-na-nc harmonic 82.430 120.180 # SOURCE3_SOURCE5 266 0.9487 + angle_coeff @angle:c3-na-nd harmonic 82.472 120.180 # SOURCE3_SOURCE5 266 0.9487 + angle_coeff @angle:c3-na-os harmonic 86.002 104.390 # SOURCE3 3 1.2017 + angle_coeff @angle:c3-na-p2 harmonic 78.161 123.120 # SOURCE3 1 + angle_coeff @angle:c3-na-pc harmonic 79.034 122.110 # SOURCE3 3 2.8504 + angle_coeff @angle:c3-na-pd harmonic 79.034 122.110 # SOURCE3 3 + angle_coeff @angle:c3-na-sh harmonic 65.096 110.280 # SOURCE3 1 + angle_coeff @angle:c3-na-ss harmonic 64.618 110.870 # SOURCE3 3 0.8260 + angle_coeff @angle:ca-na-ca harmonic 67.261 120.050 # SOURCE4_SOURCE5 899 1.7177 + angle_coeff @angle:ca-na-cc harmonic 69.377 113.150 # SOURCE3 18 9.8644 + angle_coeff @angle:ca-na-cd harmonic 69.377 113.150 # SOURCE3 18 9.8644 + angle_coeff @angle:ca-na-cl harmonic 65.846 124.790 # SOURCE3 1 + angle_coeff @angle:ca-na-cp harmonic 67.035 120.860 # SOURCE4_SOURCE5 58 1.3836 + angle_coeff @angle:ca-na-cx harmonic 64.141 124.590 # SOURCE4_SOURCE5 51 1.7589 + angle_coeff @angle:ca-na-f harmonic 85.915 116.400 # SOURCE3 1 + angle_coeff @angle:ca-na-hn harmonic 46.979 125.540 # SOURCE4_SOURCE5 1396 1.1217 + angle_coeff @angle:ca-na-i harmonic 58.530 121.620 # SOURCE3 1 + angle_coeff @angle:ca-na-n2 harmonic 85.072 119.070 # SOURCE4_SOURCE5 19 2.0667 + angle_coeff @angle:ca-na-n4 harmonic 82.602 120.190 # SOURCE3 1 + angle_coeff @angle:ca-na-n harmonic 82.849 122.000 # SOURCE3 1 + angle_coeff @angle:ca-na-na harmonic 82.443 123.760 # SOURCE3 1 + angle_coeff @angle:ca-na-nb harmonic 84.426 122.640 # SOURCE4_SOURCE5 30 1.1363 + angle_coeff @angle:ca-na-nc harmonic 85.867 117.850 # SOURCE3 6 3.6536 + angle_coeff @angle:ca-na-nd harmonic 85.918 117.850 # SOURCE3 6 + angle_coeff @angle:ca-na-nh harmonic 82.258 124.410 # SOURCE4_SOURCE5 15 1.3695 + angle_coeff @angle:ca-na-o harmonic 88.288 120.170 # SOURCE4_SOURCE5 161 1.3927 + angle_coeff @angle:ca-na-oh harmonic 83.969 120.050 # SOURCE3_SOURCE5 6 2.2969 + angle_coeff @angle:ca-na-os harmonic 86.259 109.460 # SOURCE3 1 + angle_coeff @angle:ca-na-p2 harmonic 78.367 125.850 # SOURCE3 1 + angle_coeff @angle:ca-na-p3 harmonic 78.367 124.380 # SOURCE3 1 + angle_coeff @angle:ca-na-p4 harmonic 85.239 124.970 # SOURCE3 1 + angle_coeff @angle:ca-na-p5 harmonic 80.389 123.300 # SOURCE3 1 + angle_coeff @angle:ca-na-pc harmonic 80.162 122.130 # SOURCE3 3 2.2393 + angle_coeff @angle:ca-na-pd harmonic 80.162 122.130 # SOURCE3 3 + angle_coeff @angle:ca-na-py harmonic 75.307 140.880 # SOURCE3 2 + angle_coeff @angle:ca-na-s4 harmonic 62.021 117.230 # SOURCE3 1 + angle_coeff @angle:ca-na-s6 harmonic 63.097 120.690 # SOURCE3 1 + angle_coeff @angle:ca-na-s harmonic 60.676 125.640 # SOURCE3 1 + angle_coeff @angle:ca-na-sh harmonic 61.938 125.440 # SOURCE3 1 + angle_coeff @angle:ca-na-ss harmonic 60.549 129.920 # SOURCE4_SOURCE5 17 0.1432 + angle_coeff @angle:cc-na-cc harmonic 70.492 109.900 # SOURCE3 109 1.5547 + angle_coeff @angle:cc-na-cd harmonic 65.316 128.010 # SOURCE3 1 + angle_coeff @angle:cc-na-ce harmonic 64.694 126.610 # SOURCE4_SOURCE5 16 0.5158 + angle_coeff @angle:cc-na-cl harmonic 65.922 124.610 # SOURCE3 3 0.5208 + angle_coeff @angle:cc-na-f harmonic 85.431 118.030 # SOURCE3 4 0.3081 + angle_coeff @angle:cc-na-hn harmonic 47.101 125.500 # CORR_SOURCE5 1758 1.2247 + angle_coeff @angle:cc-na-i harmonic 57.570 125.700 # SOURCE3 6 0.7821 + angle_coeff @angle:cc-na-n2 harmonic 84.478 121.090 # SOURCE3_SOURCE5 21 1.2340 + angle_coeff @angle:cc-na-n4 harmonic 82.458 120.910 # SOURCE3_SOURCE5 16 2.5151 + angle_coeff @angle:cc-na-n harmonic 87.346 110.050 # SOURCE3_SOURCE5 63 1.0193 + angle_coeff @angle:cc-na-na harmonic 84.774 117.360 # SOURCE3_SOURCE5 38 0.6452 + angle_coeff @angle:cc-na-nc harmonic 88.067 112.360 # SOURCE3_SOURCE5 209 2.0210 + angle_coeff @angle:cc-na-nd harmonic 83.137 126.230 # CORR_SOURCE5 157 1.3576 + angle_coeff @angle:cc-na-nh harmonic 82.640 123.590 # SOURCE3_SOURCE5 33 0.7437 + angle_coeff @angle:cc-na-no harmonic 81.621 123.440 # SOURCE3_SOURCE5 15 0.5273 + angle_coeff @angle:cc-na-o harmonic 86.644 125.210 # SOURCE3 10 0.0124 + angle_coeff @angle:cc-na-oh harmonic 83.278 122.380 # SOURCE3 10 0.1570 + angle_coeff @angle:cc-na-os harmonic 83.586 116.860 # CORR 48 + angle_coeff @angle:cc-na-p2 harmonic 78.409 125.860 # SOURCE3 14 2.2993 + angle_coeff @angle:cc-na-p3 harmonic 78.138 125.250 # SOURCE3 8 0.1998 + angle_coeff @angle:cc-na-p4 harmonic 84.394 127.730 # SOURCE3 7 3.6077 + angle_coeff @angle:cc-na-p5 harmonic 79.988 124.700 # SOURCE3 13 1.4225 + angle_coeff @angle:cc-na-s4 harmonic 61.070 121.030 # SOURCE3 10 0.5589 + angle_coeff @angle:cc-na-s6 harmonic 62.402 123.550 # SOURCE3_SOURCE5 18 0.8360 + angle_coeff @angle:cc-na-s harmonic 60.705 125.660 # SOURCE3 8 0.1880 + angle_coeff @angle:cc-na-sh harmonic 62.346 123.960 # SOURCE3 10 0.3424 + angle_coeff @angle:cc-na-ss harmonic 62.745 121.130 # CORR_SOURCE5 13 0.6360 + angle_coeff @angle:cd-na-cd harmonic 70.492 109.900 # SOURCE3 109 1.5547 + angle_coeff @angle:cd-na-cl harmonic 65.922 124.610 # SOURCE3 3 + angle_coeff @angle:cd-na-f harmonic 85.431 118.030 # SOURCE3 4 0.3081 + angle_coeff @angle:cd-na-hn harmonic 47.101 125.500 # CORR_SOURCE5 1758 1.2247 + angle_coeff @angle:cd-na-i harmonic 57.570 125.700 # SOURCE3 6 0.7821 + angle_coeff @angle:cd-na-n2 harmonic 84.478 121.090 # SOURCE3_SOURCE5 21 1.2340 + angle_coeff @angle:cd-na-n4 harmonic 82.458 120.910 # SOURCE3_SOURCE5 16 2.5151 + angle_coeff @angle:cd-na-n harmonic 87.346 110.050 # SOURCE3_SOURCE5 63 1.0193 + angle_coeff @angle:cd-na-na harmonic 84.774 117.360 # SOURCE3_SOURCE5 38 0.6452 + angle_coeff @angle:cd-na-nc harmonic 83.088 126.230 # CORR_SOURCE5 157 1.3576 + angle_coeff @angle:cd-na-nd harmonic 88.120 112.360 # SOURCE3_SOURCE5 209 2.0210 + angle_coeff @angle:cd-na-nh harmonic 82.624 123.640 # SOURCE3_SOURCE5 34 0.8283 + angle_coeff @angle:cd-na-no harmonic 81.621 123.440 # SOURCE3_SOURCE5 15 0.5273 + angle_coeff @angle:cd-na-o harmonic 86.644 125.210 # SOURCE3 10 0.0124 + angle_coeff @angle:cd-na-oh harmonic 83.278 122.380 # SOURCE3 10 0.1570 + angle_coeff @angle:cd-na-os harmonic 83.586 116.860 # CORR 48 + angle_coeff @angle:cd-na-p2 harmonic 78.409 125.860 # SOURCE3 14 2.2993 + angle_coeff @angle:cd-na-p3 harmonic 78.138 125.250 # SOURCE3 8 0.1998 + angle_coeff @angle:cd-na-p4 harmonic 84.394 127.730 # SOURCE3 7 + angle_coeff @angle:cd-na-p5 harmonic 79.988 124.700 # SOURCE3 13 1.4225 + angle_coeff @angle:cd-na-s4 harmonic 61.070 121.030 # SOURCE3 10 0.5589 + angle_coeff @angle:cd-na-s6 harmonic 62.402 123.550 # SOURCE3_SOURCE5 18 0.8360 + angle_coeff @angle:cd-na-s harmonic 60.705 125.660 # SOURCE3 8 0.1880 + angle_coeff @angle:cd-na-sh harmonic 62.346 123.960 # SOURCE3 10 0.3424 + angle_coeff @angle:cd-na-ss harmonic 62.745 121.130 # CORR_SOURCE5 13 0.6360 + angle_coeff @angle:cl-na-cl harmonic 73.099 122.800 # SOURCE3 1 + angle_coeff @angle:cl-na-nc harmonic 84.560 119.360 # SOURCE3 4 1.7128 + angle_coeff @angle:cl-na-nd harmonic 84.574 119.360 # SOURCE3 4 + angle_coeff @angle:cl-na-os harmonic 88.543 106.580 # SOURCE3 1 + angle_coeff @angle:cl-na-p2 harmonic 86.459 121.290 # SOURCE3 1 + angle_coeff @angle:cl-na-pc harmonic 87.107 120.510 # SOURCE3 3 2.1985 + angle_coeff @angle:cl-na-pd harmonic 87.107 120.510 # SOURCE3 3 + angle_coeff @angle:cl-na-ss harmonic 70.427 111.910 # SOURCE3 1 + angle_coeff @angle:f-na-f harmonic 106.388 120.200 # SOURCE3 1 + angle_coeff @angle:f-na-nc harmonic 107.856 118.050 # SOURCE3 4 1.7931 + angle_coeff @angle:f-na-nd harmonic 107.917 118.050 # SOURCE3 4 + angle_coeff @angle:f-na-os harmonic 111.494 103.860 # SOURCE3 1 + angle_coeff @angle:f-na-p2 harmonic 101.527 119.950 # SOURCE3 1 + angle_coeff @angle:f-na-pc harmonic 102.647 119.100 # SOURCE3 3 2.3967 + angle_coeff @angle:f-na-pd harmonic 102.647 119.100 # SOURCE3 3 + angle_coeff @angle:f-na-ss harmonic 83.972 108.010 # SOURCE3 1 + angle_coeff @angle:hn-na-hn harmonic 39.315 116.800 # SOURCE3 1 + angle_coeff @angle:hn-na-n harmonic 61.525 111.440 # SOURCE4_SOURCE5 14 1.2883 + angle_coeff @angle:hn-na-nc harmonic 61.377 119.550 # SOURCE3_SOURCE5 196 1.0024 + angle_coeff @angle:hn-na-nd harmonic 61.443 119.550 # SOURCE3_SOURCE5 196 1.0024 + angle_coeff @angle:hn-na-os harmonic 62.765 102.120 # SOURCE3_SOURCE5 20 2.5614 + angle_coeff @angle:hn-na-p2 harmonic 52.077 122.520 # SOURCE3 1 + angle_coeff @angle:hn-na-pc harmonic 52.878 121.480 # SOURCE3 3 2.9355 + angle_coeff @angle:hn-na-pd harmonic 52.878 121.480 # SOURCE3 3 + angle_coeff @angle:hn-na-ss harmonic 42.530 113.950 # SOURCE3 1 + angle_coeff @angle:i-na-i harmonic 63.587 124.200 # SOURCE3 1 + angle_coeff @angle:i-na-nc harmonic 73.745 120.030 # SOURCE3 4 2.0032 + angle_coeff @angle:i-na-nd harmonic 73.742 120.030 # SOURCE3 4 + angle_coeff @angle:i-na-os harmonic 77.062 109.910 # SOURCE3 1 + angle_coeff @angle:i-na-p2 harmonic 78.740 122.280 # SOURCE3 1 + angle_coeff @angle:i-na-pc harmonic 79.219 121.400 # SOURCE3 3 2.4763 + angle_coeff @angle:i-na-pd harmonic 79.219 121.400 # SOURCE3 3 + angle_coeff @angle:i-na-ss harmonic 62.502 118.400 # SOURCE3 1 + angle_coeff @angle:n2-na-n2 harmonic 108.256 116.710 # SOURCE3 1 + angle_coeff @angle:n2-na-nc harmonic 107.238 119.960 # SOURCE3 4 4.5041 + angle_coeff @angle:n2-na-nd harmonic 107.304 119.960 # SOURCE3 4 + angle_coeff @angle:n2-na-os harmonic 107.573 111.530 # SOURCE3 1 + angle_coeff @angle:n2-na-p2 harmonic 98.756 124.880 # SOURCE3 1 + angle_coeff @angle:n2-na-pc harmonic 100.212 123.180 # SOURCE3 3 4.7947 + angle_coeff @angle:n2-na-pd harmonic 100.212 123.180 # SOURCE3 3 + angle_coeff @angle:n2-na-ss harmonic 77.611 124.640 # SOURCE3 1 + angle_coeff @angle:n3-na-n3 harmonic 101.150 124.000 # SOURCE3 1 + angle_coeff @angle:n4-na-n4 harmonic 105.460 111.700 # SOURCE3 1 + angle_coeff @angle:n4-na-nc harmonic 106.051 116.440 # SOURCE3 4 3.6604 + angle_coeff @angle:n4-na-nd harmonic 106.108 116.440 # SOURCE3 4 + angle_coeff @angle:n4-na-os harmonic 109.494 102.970 # SOURCE3 1 + angle_coeff @angle:n4-na-p2 harmonic 98.207 123.560 # SOURCE3 1 + angle_coeff @angle:n4-na-pc harmonic 99.557 121.980 # SOURCE3 3 4.4884 + angle_coeff @angle:n4-na-pd harmonic 99.557 121.980 # SOURCE3 3 + angle_coeff @angle:na-na-na harmonic 102.688 123.600 # SOURCE3 1 + angle_coeff @angle:na-na-nc harmonic 106.027 119.640 # SOURCE3 4 1.6920 + angle_coeff @angle:na-na-nd harmonic 106.088 119.640 # SOURCE3 4 + angle_coeff @angle:na-na-os harmonic 107.416 109.470 # SOURCE3 1 + angle_coeff @angle:na-na-p2 harmonic 99.520 121.720 # SOURCE3 1 + angle_coeff @angle:na-na-pc harmonic 100.604 120.910 # SOURCE3 3 2.3033 + angle_coeff @angle:na-na-pd harmonic 100.604 120.910 # SOURCE3 3 + angle_coeff @angle:na-na-ss harmonic 79.845 116.500 # SOURCE3 1 + angle_coeff @angle:nc-na-nc harmonic 109.391 116.300 # SOURCE3_SOURCE5 57 1.3191 + angle_coeff @angle:nc-na-nd harmonic 106.540 122.760 # SOURCE4_SOURCE5 12 0.1496 + angle_coeff @angle:nc-na-nh harmonic 105.667 120.550 # SOURCE3 8 1.1436 + angle_coeff @angle:nc-na-no harmonic 104.829 119.210 # SOURCE3_SOURCE5 9 1.2751 + angle_coeff @angle:nc-na-o harmonic 110.789 122.790 # SOURCE3 6 1.3154 + angle_coeff @angle:nc-na-oh harmonic 106.562 119.220 # SOURCE3 4 1.7201 + angle_coeff @angle:nc-na-os harmonic 104.244 119.650 # SOURCE3 4 1.5019 + angle_coeff @angle:nc-na-p2 harmonic 100.917 119.990 # SOURCE3 4 3.6009 + angle_coeff @angle:nc-na-p3 harmonic 100.275 120.070 # SOURCE3 4 3.7188 + angle_coeff @angle:nc-na-p4 harmonic 109.789 119.770 # SOURCE3 3 0.3747 + angle_coeff @angle:nc-na-p5 harmonic 102.963 118.950 # SOURCE3 4 3.1194 + angle_coeff @angle:nc-na-pc harmonic 102.284 118.660 # SOURCE3 27 1.5082 + angle_coeff @angle:nc-na-s4 harmonic 77.292 119.200 # SOURCE3 4 2.3841 + angle_coeff @angle:nc-na-s6 harmonic 79.850 119.240 # SOURCE3 4 2.2262 + angle_coeff @angle:nc-na-s harmonic 77.325 122.260 # SOURCE3 4 0.9173 + angle_coeff @angle:nc-na-sh harmonic 79.494 120.500 # SOURCE3 4 1.5016 + angle_coeff @angle:nc-na-ss harmonic 79.073 120.500 # SOURCE3 4 1.5615 + angle_coeff @angle:nd-na-nd harmonic 109.528 116.300 # SOURCE3_SOURCE5 57 1.3191 + angle_coeff @angle:nd-na-nh harmonic 105.728 120.550 # SOURCE3 8 + angle_coeff @angle:nd-na-no harmonic 104.885 119.210 # SOURCE3_SOURCE5 5 1.0113 + angle_coeff @angle:nd-na-o harmonic 110.874 122.790 # SOURCE3 6 + angle_coeff @angle:nd-na-oh harmonic 106.624 119.220 # SOURCE3 4 + angle_coeff @angle:nd-na-os harmonic 104.299 119.650 # SOURCE3 4 + angle_coeff @angle:nd-na-p2 harmonic 100.941 119.990 # SOURCE3 4 + angle_coeff @angle:nd-na-p3 harmonic 100.297 120.070 # SOURCE3 4 + angle_coeff @angle:nd-na-p4 harmonic 109.833 119.770 # SOURCE3 3 + angle_coeff @angle:nd-na-p5 harmonic 102.991 118.950 # SOURCE3 4 + angle_coeff @angle:nd-na-pd harmonic 102.309 118.660 # SOURCE3 27 + angle_coeff @angle:nd-na-s4 harmonic 77.307 119.200 # SOURCE3 4 + angle_coeff @angle:nd-na-s6 harmonic 79.870 119.240 # SOURCE3 4 + angle_coeff @angle:nd-na-s harmonic 77.342 122.260 # SOURCE3 4 + angle_coeff @angle:nd-na-sh harmonic 79.514 120.500 # SOURCE3 4 + angle_coeff @angle:nd-na-ss harmonic 79.092 120.500 # SOURCE3 4 + angle_coeff @angle:nh-na-nh harmonic 102.761 123.600 # SOURCE3 1 + angle_coeff @angle:nh-na-os harmonic 106.530 111.370 # SOURCE3 1 + angle_coeff @angle:nh-na-p2 harmonic 99.889 120.860 # SOURCE3 1 + angle_coeff @angle:nh-na-pc harmonic 100.842 120.380 # SOURCE3 6 1.3513 + angle_coeff @angle:nh-na-pd harmonic 100.842 120.380 # SOURCE3 6 + angle_coeff @angle:nh-na-ss harmonic 81.320 112.350 # SOURCE3 2 5.2951 + angle_coeff @angle:n-na-n harmonic 102.160 123.800 # SOURCE3 1 + angle_coeff @angle:n-na-nc harmonic 105.685 119.850 # SOURCE3 4 1.6156 + angle_coeff @angle:n-na-nd harmonic 105.745 119.850 # SOURCE3 4 + angle_coeff @angle:no-na-no harmonic 100.609 122.800 # SOURCE3 1 + angle_coeff @angle:no-na-os harmonic 107.653 106.550 # SOURCE3 1 + angle_coeff @angle:no-na-pc harmonic 100.336 120.110 # SOURCE3 3 2.0821 + angle_coeff @angle:no-na-pd harmonic 100.336 120.110 # SOURCE3 3 + angle_coeff @angle:n-na-os harmonic 109.608 104.710 # SOURCE3 1 + angle_coeff @angle:no-na-ss harmonic 79.903 114.950 # SOURCE3 1 + angle_coeff @angle:n-na-p2 harmonic 99.572 121.350 # SOURCE3 1 + angle_coeff @angle:n-na-pc harmonic 100.611 120.640 # SOURCE3 3 2.0168 + angle_coeff @angle:n-na-pd harmonic 100.611 120.640 # SOURCE3 3 + angle_coeff @angle:n-na-ss harmonic 79.899 116.100 # SOURCE3 1 + angle_coeff @angle:oh-na-oh harmonic 103.905 122.200 # SOURCE3 1 + angle_coeff @angle:oh-na-p2 harmonic 100.050 120.760 # SOURCE3 1 + angle_coeff @angle:oh-na-pc harmonic 101.133 119.990 # SOURCE3 3 2.1734 + angle_coeff @angle:oh-na-pd harmonic 101.133 119.990 # SOURCE3 3 + angle_coeff @angle:oh-na-ss harmonic 81.173 113.040 # SOURCE3 1 + angle_coeff @angle:o-na-o harmonic 114.875 126.200 # SOURCE3 1 + angle_coeff @angle:o-na-os harmonic 108.116 118.780 # SOURCE3_SOURCE5 6 0.4047 + angle_coeff @angle:o-na-p2 harmonic 100.973 122.800 # SOURCE3 1 + angle_coeff @angle:o-na-pc harmonic 102.067 122.340 # SOURCE3 3 1.2908 + angle_coeff @angle:o-na-pd harmonic 102.067 122.340 # SOURCE3 3 + angle_coeff @angle:os-na-os harmonic 108.379 104.450 # SOURCE3 2 0.0983 + angle_coeff @angle:os-na-p2 harmonic 100.391 117.860 # SOURCE3 1 + angle_coeff @angle:os-na-p3 harmonic 105.930 104.700 # SOURCE3 1 + angle_coeff @angle:os-na-p5 harmonic 104.736 111.410 # SOURCE3 1 + angle_coeff @angle:os-na-pc harmonic 100.242 119.910 # SOURCE3 3 1.9002 + angle_coeff @angle:os-na-pd harmonic 100.242 119.910 # SOURCE3 3 + angle_coeff @angle:os-na-s4 harmonic 81.006 105.880 # SOURCE3 2 + angle_coeff @angle:os-na-s6 harmonic 81.137 112.000 # SOURCE3 2 + angle_coeff @angle:os-na-ss harmonic 81.670 109.640 # SOURCE3 3 4.1395 + angle_coeff @angle:p2-na-p2 harmonic 102.084 120.910 # SOURCE3 1 + angle_coeff @angle:p2-na-p3 harmonic 100.105 124.800 # SOURCE3 1 + angle_coeff @angle:p2-na-p5 harmonic 101.778 123.990 # SOURCE3 1 + angle_coeff @angle:p2-na-pc harmonic 102.658 120.720 # SOURCE3 3 0.2407 + angle_coeff @angle:p2-na-pd harmonic 102.658 120.720 # SOURCE3 3 + angle_coeff @angle:p2-na-s4 harmonic 78.032 122.470 # SOURCE3 1 + angle_coeff @angle:p2-na-s6 harmonic 79.617 122.500 # SOURCE3 1 + angle_coeff @angle:p2-na-s harmonic 78.874 121.850 # SOURCE3 1 + angle_coeff @angle:p2-na-sh harmonic 79.900 121.750 # SOURCE3 1 + angle_coeff @angle:p2-na-ss harmonic 79.600 121.880 # SOURCE3 1 + angle_coeff @angle:p3-na-p3 harmonic 99.027 126.600 # SOURCE3 1 + angle_coeff @angle:p3-na-pc harmonic 101.182 123.320 # SOURCE3 3 4.1781 + angle_coeff @angle:p3-na-pd harmonic 101.182 123.320 # SOURCE3 3 + angle_coeff @angle:p5-na-p5 harmonic 102.554 124.600 # SOURCE3 1 + angle_coeff @angle:p5-na-pc harmonic 102.835 122.690 # SOURCE3 3 3.6738 + angle_coeff @angle:p5-na-pd harmonic 102.835 122.690 # SOURCE3 3 + angle_coeff @angle:p5-na-ss harmonic 81.516 118.520 # SOURCE3 1 + angle_coeff @angle:pc-na-pc harmonic 103.141 120.780 # SOURCE3 27 1.6457 + angle_coeff @angle:pc-na-s4 harmonic 78.694 121.510 # SOURCE3 3 2.7242 + angle_coeff @angle:pc-na-s6 harmonic 80.329 121.550 # SOURCE3 3 2.7065 + angle_coeff @angle:pc-na-s harmonic 79.371 121.470 # SOURCE3 3 1.0668 + angle_coeff @angle:pc-na-sh harmonic 80.524 121.080 # SOURCE3 3 1.8942 + angle_coeff @angle:pc-na-ss harmonic 80.219 121.200 # SOURCE3 3 1.9295 + angle_coeff @angle:pd-na-pd harmonic 103.141 120.780 # SOURCE3 27 + angle_coeff @angle:pd-na-s4 harmonic 78.694 121.510 # SOURCE3 3 + angle_coeff @angle:pd-na-s6 harmonic 80.329 121.550 # SOURCE3 3 + angle_coeff @angle:pd-na-s harmonic 79.371 121.470 # SOURCE3 3 + angle_coeff @angle:pd-na-sh harmonic 80.524 121.080 # SOURCE3 3 + angle_coeff @angle:pd-na-ss harmonic 80.219 121.200 # SOURCE3 3 + angle_coeff @angle:py-na-py harmonic 129.638 78.250 # SOURCE3 1 + angle_coeff @angle:s4-na-s4 harmonic 59.656 124.200 # SOURCE3 1 + angle_coeff @angle:s4-na-s6 harmonic 63.782 112.860 # SOURCE3 1 + angle_coeff @angle:s4-na-ss harmonic 63.885 111.920 # SOURCE3 1 + angle_coeff @angle:s6-na-s6 harmonic 62.342 123.200 # SOURCE3 1 + angle_coeff @angle:s6-na-ss harmonic 63.225 119.100 # SOURCE3 1 + angle_coeff @angle:sh-na-sh harmonic 62.052 124.600 # SOURCE3 1 + angle_coeff @angle:sh-na-ss harmonic 63.339 118.790 # SOURCE3 1 + angle_coeff @angle:s-na-s harmonic 60.168 126.000 # SOURCE3 1 + angle_coeff @angle:s-na-ss harmonic 64.260 112.490 # SOURCE3 1 + angle_coeff @angle:ss-na-ss harmonic 64.658 113.240 # SOURCE3 2 6.6084 + angle_coeff @angle:sy-na-sy harmonic 62.187 123.200 # SOURCE3 1 + angle_coeff @angle:ca-nb-ca harmonic 70.356 117.220 # SOURCE3_SOURCE5 3343 1.0306 + angle_coeff @angle:ca-nb-cp harmonic 70.116 118.050 # SOURCE4_SOURCE5 160 0.7542 + angle_coeff @angle:ca-nb-cq harmonic 70.116 118.050 # SOURCE4_SOURCE5 102 0.7384 + angle_coeff @angle:ca-nb-nb harmonic 87.237 120.050 # SOURCE3_SOURCE5 159 0.6095 + angle_coeff @angle:cp-nb-nb harmonic 86.918 120.960 # SOURCE4_SOURCE5 32 0.5601 + angle_coeff @angle:nb-nb-nb harmonic 109.020 121.040 # SOURCE3 1 + angle_coeff @angle:br-n-br harmonic 67.176 116.200 # SOURCE3 1 + angle_coeff @angle:br-n-c harmonic 62.729 121.250 # SOURCE3_SOURCE5 10 1.6266 + angle_coeff @angle:br-n-ca harmonic 63.323 118.190 # SOURCE3 1 + angle_coeff @angle:br-n-cc harmonic 63.525 118.190 # SOURCE3 1 + angle_coeff @angle:br-n-cd harmonic 63.525 118.190 # SOURCE3 1 + angle_coeff @angle:c1-n-c1 harmonic 75.677 102.690 # SOURCE3 1 + angle_coeff @angle:c1-n-ca harmonic 68.108 118.880 # SOURCE3 1 + angle_coeff @angle:c1-n-cc harmonic 68.972 118.880 # SOURCE3 1 + angle_coeff @angle:c1-n-cd harmonic 68.972 118.880 # SOURCE3 1 + angle_coeff @angle:c2-n-c2 harmonic 67.455 116.750 # SOURCE3 1 + angle_coeff @angle:c2-n-c3 harmonic 64.992 120.100 # SOURCE4_SOURCE5 62 2.3796 + angle_coeff @angle:c2-n-ca harmonic 67.208 116.540 # SOURCE3 1 + angle_coeff @angle:c2-n-cc harmonic 67.963 116.540 # SOURCE3 1 + angle_coeff @angle:c2-n-cd harmonic 67.963 116.540 # SOURCE3 1 + angle_coeff @angle:c2-n-hn harmonic 47.988 117.900 # SOURCE4_SOURCE5 115 1.4688 + angle_coeff @angle:c3-n-c3 harmonic 64.880 115.640 # SOURCE4_SOURCE5 1017 2.0256 + angle_coeff @angle:c3-n-ca harmonic 64.801 119.830 # SOURCE4_SOURCE5 448 1.9961 + angle_coeff @angle:c3-n-cc harmonic 65.172 120.850 # CORR_SOURCE5 523 1.4176 + angle_coeff @angle:c3-n-cd harmonic 65.172 120.850 # CORR_SOURCE5 523 1.4176 + angle_coeff @angle:c3-n-cy harmonic 64.307 117.080 # SOURCE4_SOURCE5 120 1.3701 + angle_coeff @angle:c3-n-hn harmonic 46.147 117.680 # SOURCE3_SOURCE5 1934 1.5065 + angle_coeff @angle:c3-n-n2 harmonic 81.830 121.710 # SOURCE4_SOURCE5 131 1.2251 + angle_coeff @angle:c3-n-n harmonic 82.901 115.390 # SOURCE4_SOURCE5 28 1.0963 + angle_coeff @angle:c3-n-nc harmonic 84.094 115.280 # CORR_SOURCE5 61 0.8561 + angle_coeff @angle:c3-n-nd harmonic 84.094 115.280 # CORR_SOURCE5 61 0.8561 + angle_coeff @angle:c3-n-oh harmonic 83.734 112.970 # SOURCE4_SOURCE5 82 0.8203 + angle_coeff @angle:c3-n-os harmonic 83.821 112.540 # SOURCE4_SOURCE5 42 1.7642 + angle_coeff @angle:c3-n-sy harmonic 62.308 120.880 # SOURCE4_SOURCE5 13 1.1569 + angle_coeff @angle:ca-n-ca harmonic 66.671 117.370 # SOURCE4_SOURCE5 99 1.5139 + angle_coeff @angle:ca-n-cc harmonic 68.390 114.010 # CORR_SOURCE5 53 1.0051 + angle_coeff @angle:ca-n-cd harmonic 68.390 114.010 # CORR_SOURCE5 53 1.0051 + angle_coeff @angle:ca-n-cl harmonic 71.199 117.720 # SOURCE3 1 + angle_coeff @angle:ca-n-f harmonic 86.043 114.920 # SOURCE3 1 + angle_coeff @angle:ca-n-hn harmonic 47.989 116.000 # SOURCE4_SOURCE5 1451 1.8612 + angle_coeff @angle:ca-n-i harmonic 59.954 119.300 # SOURCE3 1 + angle_coeff @angle:ca-n-n2 harmonic 83.352 122.020 # SOURCE4_SOURCE5 12 0.9977 + angle_coeff @angle:ca-n-n4 harmonic 80.984 122.980 # SOURCE3 1 + angle_coeff @angle:ca-n-n harmonic 83.301 118.550 # SOURCE4_SOURCE5 46 0.3283 + angle_coeff @angle:ca-n-na harmonic 82.957 119.300 # SOURCE4_SOURCE5 47 0.3131 + angle_coeff @angle:ca-n-nc harmonic 85.318 116.500 # CORR_SOURCE5 14 1.6910 + angle_coeff @angle:ca-n-nd harmonic 85.318 116.500 # CORR_SOURCE5 14 1.6910 + angle_coeff @angle:ca-n-nh harmonic 84.129 116.450 # SOURCE3 1 + angle_coeff @angle:ca-n-p2 harmonic 83.158 112.320 # SOURCE3 1 + angle_coeff @angle:ca-n-p3 harmonic 77.529 125.110 # SOURCE3 1 + angle_coeff @angle:ca-n-s4 harmonic 62.152 118.400 # SOURCE3 1 + angle_coeff @angle:ca-n-s6 harmonic 63.800 117.320 # SOURCE3 1 + angle_coeff @angle:ca-n-ss harmonic 63.794 116.600 # SOURCE3 1 + angle_coeff @angle:c-n-c1 harmonic 69.561 117.040 # SOURCE3 1 + angle_coeff @angle:c-n-c2 harmonic 66.426 122.150 # SOURCE3 9 5.1016 + angle_coeff @angle:c-n-c3 harmonic 65.252 120.690 # SOURCE3_SOURCE5 4556 2.1510 + angle_coeff @angle:c3-nc-cd harmonic 69.940 109.510 # SOURCE3 9 5.4142 + angle_coeff @angle:c-n-c harmonic 65.616 127.080 # SOURCE4_SOURCE5 1415 2.1363 + angle_coeff @angle:c-n-ca harmonic 65.694 123.710 # SOURCE3 10 3.8159 + angle_coeff @angle:ca-nc-ca harmonic 71.962 109.950 # SOURCE3 1 + angle_coeff @angle:ca-nc-cd harmonic 74.608 104.880 # CORR_SOURCE5 766 1.8814 + angle_coeff @angle:ca-nc-n harmonic 92.070 104.690 # CORR 2 + angle_coeff @angle:ca-nc-na harmonic 93.072 102.760 # CORR_SOURCE5 25 0.7558 + angle_coeff @angle:ca-nc-os harmonic 90.719 104.480 # CORR_SOURCE5 16 0.1832 + angle_coeff @angle:ca-nc-ss harmonic 70.369 107.070 # SOURCE3_SOURCE5 17 0.3771 + angle_coeff @angle:c-n-cc harmonic 66.579 123.270 # SOURCE3_SOURCE5 805 2.2636 + angle_coeff @angle:c-nc-ca harmonic 67.794 120.660 # CORR 2 + angle_coeff @angle:cc-n-cc harmonic 70.783 108.920 # SOURCE3 11 0.3167 + angle_coeff @angle:cc-nc-cc harmonic 73.120 103.760 # CORR_SOURCE5 6 0.0439 + angle_coeff @angle:cc-nc-cd harmonic 73.871 105.490 # CORR_SOURCE5 1810 1.9032 + angle_coeff @angle:c-nc-cd harmonic 68.639 120.490 # CORR_SOURCE5 205 1.1318 + angle_coeff @angle:cc-n-cl harmonic 71.592 117.720 # SOURCE3 1 + angle_coeff @angle:cc-nc-na harmonic 92.369 102.970 # SOURCE3 1 + angle_coeff @angle:cc-nc-nd harmonic 91.732 108.620 # SOURCE3_SOURCE5 82 1.5614 + angle_coeff @angle:c-n-cd harmonic 66.579 123.270 # SOURCE3_SOURCE5 805 2.2636 + angle_coeff @angle:cd-nc-cd harmonic 71.496 117.300 # CORR_SOURCE5 18 0.3907 + angle_coeff @angle:cd-nc-n harmonic 88.099 117.190 # CORR 64 + angle_coeff @angle:cd-nc-na harmonic 93.753 103.820 # SOURCE3_SOURCE5 919 1.7445 + angle_coeff @angle:cd-nc-nc harmonic 91.676 107.820 # CORR_SOURCE5 457 1.5268 + angle_coeff @angle:cd-nc-os harmonic 91.671 104.670 # CORR_SOURCE5 184 0.8204 + angle_coeff @angle:cd-nc-ss harmonic 70.508 108.070 # CORR_SOURCE5 95 1.3804 + angle_coeff @angle:c-n-ce harmonic 63.457 131.380 # SOURCE4_SOURCE5 371 1.5975 + angle_coeff @angle:cc-n-f harmonic 87.015 114.920 # SOURCE3 1 + angle_coeff @angle:cc-n-hn harmonic 48.285 119.260 # CORR_SOURCE5 459 1.7223 + angle_coeff @angle:cc-n-i harmonic 59.973 119.300 # SOURCE3 1 + angle_coeff @angle:c-n-cl harmonic 72.034 116.350 # SOURCE4 11 0.6829 + angle_coeff @angle:cc-n-n2 harmonic 88.496 110.870 # SOURCE3 1 + angle_coeff @angle:cc-n-n harmonic 83.245 121.370 # SOURCE3 1 + angle_coeff @angle:cc-n-na harmonic 84.492 117.570 # SOURCE3 1 + angle_coeff @angle:cc-n-nc harmonic 88.107 111.890 # CORR_SOURCE5 20 0.7095 + angle_coeff @angle:cc-n-nh harmonic 84.683 117.520 # SOURCE3 1 + angle_coeff @angle:cc-n-no harmonic 83.522 115.920 # SOURCE3 1 + angle_coeff @angle:cc-n-o harmonic 88.192 120.540 # SOURCE3 1 + angle_coeff @angle:cc-n-oh harmonic 83.905 119.300 # SOURCE3_SOURCE5 7 0.3237 + angle_coeff @angle:cc-n-os harmonic 85.167 115.560 # SOURCE3 1 + angle_coeff @angle:cc-n-p2 harmonic 83.596 112.320 # SOURCE3 1 + angle_coeff @angle:cc-n-p3 harmonic 77.892 125.110 # SOURCE3 1 + angle_coeff @angle:cc-n-p5 harmonic 81.119 121.000 # SOURCE3 1 + angle_coeff @angle:cc-n-s4 harmonic 62.446 118.400 # SOURCE3 1 + angle_coeff @angle:cc-n-s6 harmonic 64.150 117.320 # SOURCE3 1 + angle_coeff @angle:cc-n-s harmonic 62.506 118.290 # SOURCE3 1 + angle_coeff @angle:cc-n-sh harmonic 63.393 119.130 # SOURCE3 1 + angle_coeff @angle:cc-n-ss harmonic 64.137 116.600 # SOURCE3 2 + angle_coeff @angle:c-n-cx harmonic 65.394 122.070 # SOURCE4 11 1.9478 + angle_coeff @angle:c-n-cy harmonic 73.625 94.220 # SOURCE4_SOURCE5 674 1.8186 + angle_coeff @angle:cd-n-cd harmonic 70.783 108.920 # SOURCE3 11 + angle_coeff @angle:cd-n-cl harmonic 71.592 117.720 # SOURCE3 1 + angle_coeff @angle:cd-n-f harmonic 87.015 114.920 # SOURCE3 1 + angle_coeff @angle:cd-n-hn harmonic 48.285 119.260 # CORR_SOURCE5 459 1.7223 + angle_coeff @angle:cd-n-i harmonic 59.973 119.300 # SOURCE3 1 + angle_coeff @angle:cd-n-n2 harmonic 88.496 110.870 # SOURCE3 1 + angle_coeff @angle:cd-n-n harmonic 83.245 121.370 # SOURCE3 1 + angle_coeff @angle:cd-n-na harmonic 84.492 117.570 # SOURCE3 1 + angle_coeff @angle:cd-n-nd harmonic 88.107 111.890 # CORR_SOURCE5 20 0.7095 + angle_coeff @angle:cd-n-nh harmonic 84.683 117.520 # SOURCE3 1 + angle_coeff @angle:cd-n-no harmonic 83.522 115.920 # SOURCE3 1 + angle_coeff @angle:cd-n-o harmonic 88.192 120.540 # SOURCE3 1 + angle_coeff @angle:cd-n-oh harmonic 83.905 119.300 # SOURCE3_SOURCE5 7 0.3237 + angle_coeff @angle:cd-n-os harmonic 85.167 115.560 # SOURCE3 1 + angle_coeff @angle:cd-n-p2 harmonic 83.596 112.320 # SOURCE3 1 + angle_coeff @angle:cd-n-p3 harmonic 77.892 125.110 # SOURCE3 1 + angle_coeff @angle:cd-n-p5 harmonic 81.119 121.000 # SOURCE3 1 + angle_coeff @angle:cd-n-s4 harmonic 62.446 118.400 # SOURCE3 1 + angle_coeff @angle:cd-n-s6 harmonic 64.150 117.320 # SOURCE3 1 + angle_coeff @angle:cd-n-s harmonic 62.506 118.290 # SOURCE3 1 + angle_coeff @angle:cd-n-sh harmonic 63.393 119.130 # SOURCE3 1 + angle_coeff @angle:cd-n-ss harmonic 64.137 116.600 # SOURCE3 2 1.8318 + angle_coeff @angle:ce-n-cy harmonic 66.660 111.710 # CORR_SOURCE5 226 2.0477 + angle_coeff @angle:c-n-f harmonic 89.555 108.630 # SOURCE3 3 4.6785 + angle_coeff @angle:cf-n-cy harmonic 66.660 111.710 # CORR_SOURCE5 226 2.0477 + angle_coeff @angle:c-n-hn harmonic 48.691 117.550 # SOURCE3_SOURCE5 5866 1.6058 + angle_coeff @angle:c-n-i harmonic 59.703 120.380 # SOURCE3 5 2.1600 + angle_coeff @angle:cl-n-cl harmonic 81.959 111.690 # SOURCE3 1 + angle_coeff @angle:c-n-n2 harmonic 85.152 119.910 # SOURCE3_SOURCE5 237 1.7782 + angle_coeff @angle:c-n-n3 harmonic 83.740 120.100 # SOURCE3_SOURCE5 90 1.4705 + angle_coeff @angle:c-n-n4 harmonic 85.688 112.320 # SOURCE3 5 1.2622 + angle_coeff @angle:c-n-n harmonic 84.328 118.420 # SOURCE3 10 2.8922 + angle_coeff @angle:c-n-na harmonic 86.815 111.500 # SOURCE3_SOURCE5 60 1.0005 + angle_coeff @angle:na-nc-nd harmonic 116.802 106.240 # SOURCE3_SOURCE5 145 0.6824 + angle_coeff @angle:c-n-nc harmonic 83.462 124.860 # CORR_SOURCE5 117 2.2930 + angle_coeff @angle:nc-nc-nd harmonic 113.624 111.460 # CORR_SOURCE5 97 0.5962 + angle_coeff @angle:c-n-nd harmonic 83.462 124.860 # CORR_SOURCE5 117 2.2930 + angle_coeff @angle:nd-nc-os harmonic 114.084 107.220 # SOURCE3 3 0.4707 + angle_coeff @angle:c-n-nh harmonic 84.310 118.710 # SOURCE4_SOURCE5 52 1.7764 + angle_coeff @angle:c-n-no harmonic 82.773 118.160 # SOURCE3 4 5.4870 + angle_coeff @angle:c-n-o harmonic 89.074 118.360 # SOURCE3_SOURCE5 14 3.9188 + angle_coeff @angle:c-n-oh harmonic 85.324 115.510 # SOURCE3_SOURCE5 128 0.8808 + angle_coeff @angle:c-n-os harmonic 86.126 113.140 # SOURCE3 7 3.0839 + angle_coeff @angle:c-n-p2 harmonic 79.405 124.560 # SOURCE3 8 3.6907 + angle_coeff @angle:c-n-p3 harmonic 78.725 122.540 # SOURCE3 9 4.4802 + angle_coeff @angle:c-n-p4 harmonic 79.728 123.440 # SOURCE3 1 + angle_coeff @angle:c-n-p5 harmonic 78.739 128.500 # SOURCE4 6 0.5353 + angle_coeff @angle:c-n-pc harmonic 79.905 122.230 # SOURCE3 3 2.8787 + angle_coeff @angle:c-n-pd harmonic 79.905 122.230 # SOURCE3 3 + angle_coeff @angle:c-n-s4 harmonic 61.938 120.410 # SOURCE3 4 3.1760 + angle_coeff @angle:c-n-s6 harmonic 62.226 124.760 # SOURCE4_SOURCE5 44 1.7490 + angle_coeff @angle:c-n-s harmonic 60.447 126.550 # SOURCE3 3 4.3365 + angle_coeff @angle:c-n-sh harmonic 63.302 119.540 # SOURCE3 4 1.7681 + angle_coeff @angle:c-n-ss harmonic 62.795 121.710 # SOURCE3_SOURCE5 23 1.8428 + angle_coeff @angle:c-n-sy harmonic 62.308 124.690 # SOURCE4_SOURCE5 124 1.1647 + angle_coeff @angle:cx-n-hn harmonic 46.588 118.500 # SOURCE4_SOURCE5 12 0.6959 + angle_coeff @angle:cx-n-os harmonic 121.869 54.040 # SOURCE3 1 + angle_coeff @angle:cy-n-hn harmonic 45.639 119.110 # SOURCE4_SOURCE5 156 1.4586 + angle_coeff @angle:c3-nd-cc harmonic 69.940 109.510 # SOURCE3 9 + angle_coeff @angle:ca-nd-ca harmonic 71.962 109.950 # SOURCE3 1 + angle_coeff @angle:ca-nd-cc harmonic 74.608 104.880 # CORR_SOURCE5 766 1.8814 + angle_coeff @angle:ca-nd-n harmonic 92.070 104.690 # CORR 2 + angle_coeff @angle:ca-nd-na harmonic 93.131 102.760 # CORR_SOURCE5 25 0.7558 + angle_coeff @angle:ca-nd-nc harmonic 92.520 108.340 # SOURCE4_SOURCE5 23 0.2293 + angle_coeff @angle:ca-nd-os harmonic 90.719 104.480 # CORR_SOURCE5 16 0.1832 + angle_coeff @angle:ca-nd-ss harmonic 70.369 107.070 # SOURCE3_SOURCE5 17 0.3771 + angle_coeff @angle:c-nd-ca harmonic 67.794 120.660 # CORR 2 + angle_coeff @angle:c-nd-cc harmonic 68.639 120.490 # CORR_SOURCE5 205 1.1318 + angle_coeff @angle:cc-nd-cc harmonic 71.496 117.300 # CORR_SOURCE5 18 0.3907 + angle_coeff @angle:cc-nd-cd harmonic 73.871 105.490 # CORR_SOURCE5 1810 1.9032 + angle_coeff @angle:cc-nd-n harmonic 88.099 117.190 # CORR 64 + angle_coeff @angle:cc-nd-na harmonic 93.815 103.820 # SOURCE3_SOURCE5 919 1.7445 + angle_coeff @angle:cc-nd-nd harmonic 91.676 107.820 # CORR_SOURCE5 457 1.5268 + angle_coeff @angle:cc-nd-os harmonic 91.671 104.670 # CORR_SOURCE5 184 0.8204 + angle_coeff @angle:cc-nd-ss harmonic 70.508 108.070 # CORR_SOURCE5 95 1.3804 + angle_coeff @angle:cd-nd-cd harmonic 73.120 103.760 # CORR_SOURCE5 6 0.0439 + angle_coeff @angle:cd-nd-na harmonic 92.426 102.970 # SOURCE3 1 + angle_coeff @angle:cd-nd-nc harmonic 91.732 108.620 # SOURCE3_SOURCE5 82 1.5614 + angle_coeff @angle:na-nd-nc harmonic 116.883 106.240 # SOURCE3_SOURCE5 145 0.6824 + angle_coeff @angle:nc-nd-nd harmonic 113.624 111.460 # CORR_SOURCE5 97 0.5962 + angle_coeff @angle:nc-nd-os harmonic 114.084 107.220 # SOURCE3 3 + angle_coeff @angle:c1-ne-ca harmonic 62.618 151.950 # CORR_SOURCE5 15 1.4352 + angle_coeff @angle:c1-ne-cg harmonic 67.861 140.000 # SOURCE2 1 + angle_coeff @angle:c2-ne-ca harmonic 68.492 120.830 # CORR_SOURCE5 103 1.9474 + angle_coeff @angle:c2-ne-ce harmonic 70.313 116.010 # SOURCE3_SOURCE5 34 2.0813 + angle_coeff @angle:c2-ne-cg harmonic 70.178 123.230 # SOURCE4_SOURCE5 39 1.0918 + angle_coeff @angle:c2-ne-n2 harmonic 93.623 113.310 # SOURCE3 1 + angle_coeff @angle:c2-ne-ne harmonic 88.990 110.860 # SOURCE3 7 4.5874 + angle_coeff @angle:c2-ne-p2 harmonic 84.105 134.030 # SOURCE3 1 + angle_coeff @angle:c2-ne-pe harmonic 82.533 120.520 # SOURCE3 8 8.1381 + angle_coeff @angle:c2-ne-px harmonic 83.910 117.750 # SOURCE3 5 0.8581 + angle_coeff @angle:c2-ne-py harmonic 88.230 117.040 # SOURCE3 3 1.4398 + angle_coeff @angle:c2-ne-sx harmonic 62.652 111.980 # SOURCE3 3 0.4090 + angle_coeff @angle:c2-ne-sy harmonic 65.555 120.600 # CORR_SOURCE5 19 1.1215 + angle_coeff @angle:ca-ne-cf harmonic 68.142 121.710 # CORR_SOURCE5 29 1.8572 + angle_coeff @angle:ca-ne-n2 harmonic 88.697 114.350 # CORR_SOURCE5 15 1.3133 + angle_coeff @angle:ca-ne-nf harmonic 88.592 115.170 # CORR_SOURCE5 98 0.8636 + angle_coeff @angle:ca-ne-o harmonic 89.200 115.690 # SOURCE3_SOURCE5 18 1.7090 + angle_coeff @angle:ca-ne-p2 harmonic 87.186 118.090 # SOURCE3 1 + angle_coeff @angle:ca-ne-s harmonic 68.068 120.110 # SOURCE3 1 + angle_coeff @angle:c-ne-c2 harmonic 69.660 118.530 # CORR 6 + angle_coeff @angle:ce-ne-n2 harmonic 90.497 111.190 # SOURCE3 1 + angle_coeff @angle:ce-ne-o harmonic 91.180 112.160 # SOURCE3 1 + angle_coeff @angle:ce-ne-p2 harmonic 87.896 117.020 # SOURCE3 1 + angle_coeff @angle:ce-ne-s harmonic 69.440 116.280 # SOURCE3 1 + angle_coeff @angle:cg-ne-n1 harmonic 90.226 120.200 # SOURCE2 1 + angle_coeff @angle:cg-ne-n2 harmonic 92.273 113.390 # SOURCE3 1 + angle_coeff @angle:cg-ne-o harmonic 93.028 114.700 # SOURCE2 1 + angle_coeff @angle:cg-ne-p2 harmonic 88.388 119.570 # SOURCE3 1 + angle_coeff @angle:cg-ne-s harmonic 70.232 117.700 # SOURCE3 1 + angle_coeff @angle:c-ne-sy harmonic 65.604 116.430 # SOURCE4_SOURCE5 16 1.7300 + angle_coeff @angle:n2-ne-n2 harmonic 121.491 107.220 # SOURCE3 1 + angle_coeff @angle:n2-ne-ne harmonic 112.157 110.720 # SOURCE3 9 6.1488 + angle_coeff @angle:n2-ne-o harmonic 119.624 114.100 # SOURCE3 1 + angle_coeff @angle:n2-ne-p2 harmonic 116.902 109.660 # SOURCE3 1 + angle_coeff @angle:n2-ne-pe harmonic 107.386 112.150 # SOURCE3 7 6.5273 + angle_coeff @angle:n2-ne-px harmonic 106.135 115.970 # SOURCE3 3 1.9854 + angle_coeff @angle:n2-ne-py harmonic 112.046 114.600 # SOURCE3 3 2.9261 + angle_coeff @angle:n2-ne-s harmonic 89.721 115.900 # SOURCE3 1 + angle_coeff @angle:n2-ne-sx harmonic 80.235 107.290 # SOURCE3 1 + angle_coeff @angle:n2-ne-sy harmonic 85.721 111.210 # SOURCE3 1 + angle_coeff @angle:ne-ne-o harmonic 113.544 110.450 # SOURCE3 10 1.8535 + angle_coeff @angle:ne-ne-p2 harmonic 110.510 114.390 # SOURCE3 6 4.0528 + angle_coeff @angle:ne-ne-s harmonic 86.406 115.950 # SOURCE3 6 3.4604 + angle_coeff @angle:o-ne-o harmonic 116.666 124.090 # SOURCE3 2 8.7534 + angle_coeff @angle:o-ne-pe harmonic 99.245 132.320 # SOURCE3 11 23.9559 + angle_coeff @angle:o-ne-px harmonic 109.115 110.620 # SOURCE3 1 + angle_coeff @angle:o-ne-py harmonic 114.678 110.790 # SOURCE3 4 1.6818 + angle_coeff @angle:o-ne-s harmonic 89.941 117.190 # SOURCE3 2 0.0225 + angle_coeff @angle:o-ne-sx harmonic 79.732 108.920 # SOURCE3 1 + angle_coeff @angle:o-ne-sy harmonic 86.078 111.340 # SOURCE3 1 + angle_coeff @angle:p2-ne-pe harmonic 110.473 116.810 # SOURCE3 1 + angle_coeff @angle:p2-ne-px harmonic 105.767 128.350 # SOURCE3 1 + angle_coeff @angle:p2-ne-py harmonic 111.507 123.470 # SOURCE3 1 + angle_coeff @angle:p2-ne-sx harmonic 83.857 112.120 # SOURCE3 1 + angle_coeff @angle:p2-ne-sy harmonic 87.708 115.730 # SOURCE3 1 + angle_coeff @angle:pe-ne-s harmonic 87.031 115.730 # SOURCE3 1 + angle_coeff @angle:px-ne-s harmonic 81.843 131.840 # SOURCE3 1 + angle_coeff @angle:py-ne-s harmonic 90.262 116.180 # SOURCE3 4 3.7135 + angle_coeff @angle:s-ne-s harmonic 70.545 120.870 # SOURCE3 1 + angle_coeff @angle:s-ne-sx harmonic 65.416 112.960 # SOURCE3 1 + angle_coeff @angle:s-ne-sy harmonic 67.679 119.630 # SOURCE3 1 + angle_coeff @angle:c1-nf-ca harmonic 62.618 151.950 # CORR_SOURCE5 15 1.4352 + angle_coeff @angle:c1-nf-ch harmonic 67.861 140.000 # SOURCE2 1 + angle_coeff @angle:c2-nf-ca harmonic 68.492 120.830 # CORR_SOURCE5 103 1.9474 + angle_coeff @angle:c2-nf-cf harmonic 70.313 116.010 # SOURCE3_SOURCE5 31 2.1630 + angle_coeff @angle:c2-nf-n2 harmonic 93.623 113.310 # SOURCE3 1 + angle_coeff @angle:c2-nf-nf harmonic 88.990 110.860 # SOURCE3 7 + angle_coeff @angle:c2-nf-p2 harmonic 84.105 134.030 # SOURCE3 1 + angle_coeff @angle:c2-nf-pf harmonic 82.533 120.520 # SOURCE3 8 + angle_coeff @angle:c2-nf-px harmonic 83.910 117.750 # SOURCE3 5 + angle_coeff @angle:c2-nf-py harmonic 88.230 117.040 # SOURCE3 3 + angle_coeff @angle:c2-nf-sx harmonic 62.652 111.980 # SOURCE3 3 + angle_coeff @angle:c2-nf-sy harmonic 65.555 120.600 # CORR_SOURCE5 19 1.1215 + angle_coeff @angle:ca-nf-ce harmonic 68.142 121.710 # CORR_SOURCE5 29 1.8572 + angle_coeff @angle:ca-nf-n2 harmonic 88.697 114.350 # CORR_SOURCE5 15 1.3133 + angle_coeff @angle:ca-nf-ne harmonic 88.592 115.170 # CORR_SOURCE5 98 0.8636 + angle_coeff @angle:ca-nf-o harmonic 89.200 115.690 # SOURCE3_SOURCE5 15 1.8257 + angle_coeff @angle:ca-nf-p2 harmonic 87.186 118.090 # SOURCE3 1 + angle_coeff @angle:ca-nf-s harmonic 68.068 120.110 # SOURCE3 1 + angle_coeff @angle:c-nf-c2 harmonic 69.660 118.530 # CORR 6 + angle_coeff @angle:cf-nf-n2 harmonic 90.497 111.190 # SOURCE3 1 + angle_coeff @angle:cf-nf-o harmonic 91.180 112.160 # SOURCE3 1 + angle_coeff @angle:cf-nf-p2 harmonic 87.896 117.020 # SOURCE3 1 + angle_coeff @angle:cf-nf-s harmonic 69.440 116.280 # SOURCE3 1 + angle_coeff @angle:ch-nf-n1 harmonic 90.226 120.200 # SOURCE2 1 + angle_coeff @angle:ch-nf-n2 harmonic 92.273 113.390 # SOURCE3 1 + angle_coeff @angle:ch-nf-o harmonic 93.028 114.700 # SOURCE2 1 + angle_coeff @angle:ch-nf-p2 harmonic 88.388 119.570 # SOURCE3 1 + angle_coeff @angle:ch-nf-s harmonic 70.232 117.700 # SOURCE3 1 + angle_coeff @angle:f-n-f harmonic 116.092 102.980 # SOURCE3 1 + angle_coeff @angle:n2-nf-n2 harmonic 121.491 107.220 # SOURCE3 1 + angle_coeff @angle:n2-nf-nf harmonic 112.157 110.720 # SOURCE3 9 + angle_coeff @angle:n2-nf-o harmonic 119.624 114.100 # SOURCE3 1 + angle_coeff @angle:n2-nf-p2 harmonic 116.902 109.660 # SOURCE3 1 + angle_coeff @angle:n2-nf-pf harmonic 107.386 112.150 # SOURCE3 7 + angle_coeff @angle:n2-nf-px harmonic 106.135 115.970 # SOURCE3 3 + angle_coeff @angle:n2-nf-py harmonic 112.046 114.600 # SOURCE3 3 + angle_coeff @angle:n2-nf-s harmonic 89.721 115.900 # SOURCE3 1 + angle_coeff @angle:n2-nf-sx harmonic 80.235 107.290 # SOURCE3 1 + angle_coeff @angle:n2-nf-sy harmonic 85.721 111.210 # SOURCE3 1 + angle_coeff @angle:nf-nf-o harmonic 113.544 110.450 # SOURCE3 10 + angle_coeff @angle:nf-nf-p2 harmonic 110.510 114.390 # SOURCE3 6 + angle_coeff @angle:nf-nf-s harmonic 86.406 115.950 # SOURCE3 6 + angle_coeff @angle:o-nf-o harmonic 116.666 124.090 # SOURCE3 2 + angle_coeff @angle:o-nf-pf harmonic 99.245 132.320 # SOURCE3 11 + angle_coeff @angle:o-nf-px harmonic 109.115 110.620 # SOURCE3 1 + angle_coeff @angle:o-nf-py harmonic 114.678 110.790 # SOURCE3 4 + angle_coeff @angle:o-nf-s harmonic 89.941 117.190 # SOURCE3 2 + angle_coeff @angle:o-nf-sx harmonic 79.732 108.920 # SOURCE3 1 + angle_coeff @angle:o-nf-sy harmonic 86.078 111.340 # SOURCE3 1 + angle_coeff @angle:p2-nf-pf harmonic 110.473 116.810 # SOURCE3 1 + angle_coeff @angle:p2-nf-px harmonic 105.767 128.350 # SOURCE3 1 + angle_coeff @angle:p2-nf-py harmonic 111.507 123.470 # SOURCE3 1 + angle_coeff @angle:p2-nf-sx harmonic 83.857 112.120 # SOURCE3 1 + angle_coeff @angle:p2-nf-sy harmonic 87.708 115.730 # SOURCE3 1 + angle_coeff @angle:pf-nf-s harmonic 87.031 115.730 # SOURCE3 1 + angle_coeff @angle:px-nf-s harmonic 81.843 131.840 # SOURCE3 1 + angle_coeff @angle:py-nf-s harmonic 90.262 116.180 # SOURCE3 4 + angle_coeff @angle:s-nf-s harmonic 70.545 120.870 # SOURCE3 1 + angle_coeff @angle:s-nf-sx harmonic 65.416 112.960 # SOURCE3 1 + angle_coeff @angle:s-nf-sy harmonic 67.679 119.630 # SOURCE3 1 + angle_coeff @angle:br-nh-br harmonic 67.679 106.270 # SOURCE3 1 + angle_coeff @angle:br-nh-ca harmonic 63.138 111.880 # SOURCE3 1 + angle_coeff @angle:br-nh-hn harmonic 41.986 101.560 # SOURCE3 1 + angle_coeff @angle:c1-nh-c1 harmonic 70.255 116.980 # SOURCE3 1 + angle_coeff @angle:c1-nh-c2 harmonic 67.255 123.350 # SOURCE4_SOURCE5 17 1.3108 + angle_coeff @angle:c1-nh-ca harmonic 67.561 122.360 # SOURCE3 3 1.2016 + angle_coeff @angle:c1-nh-hn harmonic 49.868 117.400 # SOURCE4_SOURCE5 22 0.6517 + angle_coeff @angle:c2-nh-c2 harmonic 65.835 124.730 # SOURCE4_SOURCE5 107 1.4158 + angle_coeff @angle:c2-nh-c3 harmonic 64.232 123.710 # SOURCE3 8 3.5348 + angle_coeff @angle:c2-nh-ca harmonic 65.131 127.560 # SOURCE4_SOURCE5 258 2.3985 + angle_coeff @angle:c2-nh-cc harmonic 65.733 126.350 # CORR_SOURCE5 14 0.8394 + angle_coeff @angle:c2-nh-cd harmonic 65.733 126.350 # CORR_SOURCE5 14 0.8394 + angle_coeff @angle:c2-nh-cx harmonic 64.299 124.350 # SOURCE4_SOURCE5 21 1.6877 + angle_coeff @angle:c2-nh-hn harmonic 48.954 115.090 # SOURCE4_SOURCE5 2743 1.5424 + angle_coeff @angle:c2-nh-n2 harmonic 85.013 120.220 # SOURCE4_SOURCE5 101 1.0922 + angle_coeff @angle:c2-nh-n3 harmonic 84.289 116.870 # SOURCE4_SOURCE5 35 1.4173 + angle_coeff @angle:c2-nh-no harmonic 82.173 125.620 # SOURCE4_SOURCE5 19 0.8850 + angle_coeff @angle:c2-nh-oh harmonic 86.014 112.180 # SOURCE4_SOURCE5 38 1.3409 + angle_coeff @angle:c2-nh-os harmonic 85.749 112.950 # SOURCE4_SOURCE5 14 0.4455 + angle_coeff @angle:c2-nh-sy harmonic 63.190 121.130 # SOURCE4_SOURCE5 20 0.5133 + angle_coeff @angle:c3-nh-c3 harmonic 65.106 114.510 # SOURCE4_SOURCE5 1386 2.1206 + angle_coeff @angle:c3-nh-ca harmonic 65.249 119.980 # SOURCE3_SOURCE5 1640 2.1716 + angle_coeff @angle:c3-nh-cc harmonic 65.571 119.720 # CORR_SOURCE5 638 2.4802 + angle_coeff @angle:c3-nh-cd harmonic 65.571 119.720 # CORR_SOURCE5 638 2.4802 + angle_coeff @angle:c3-nh-cf harmonic 65.126 120.120 # SOURCE4_SOURCE5 52 2.0459 + angle_coeff @angle:c3-nh-cz harmonic 64.716 125.460 # SOURCE4_SOURCE5 25 0.5651 + angle_coeff @angle:c3-nh-hn harmonic 46.421 115.990 # SOURCE3_SOURCE5 1206 1.7716 + angle_coeff @angle:c3-nh-n2 harmonic 85.302 112.350 # SOURCE3 9 4.0058 + angle_coeff @angle:c3-nh-n harmonic 84.428 111.270 # SOURCE4_SOURCE5 20 2.2657 + angle_coeff @angle:c3-nh-na harmonic 84.049 112.390 # SOURCE4_SOURCE5 18 1.3421 + angle_coeff @angle:c3-nh-p2 harmonic 80.321 123.350 # SOURCE3 1 + angle_coeff @angle:c3-nh-sy harmonic 63.547 116.320 # SOURCE4_SOURCE5 31 1.3018 + angle_coeff @angle:ca-nh-ca harmonic 65.187 127.460 # SOURCE3 2 0.0002 + angle_coeff @angle:ca-nh-cc harmonic 64.885 129.800 # CORR_SOURCE5 49 1.2126 + angle_coeff @angle:ca-nh-cd harmonic 64.885 129.800 # CORR_SOURCE5 49 1.2126 + angle_coeff @angle:ca-nh-cl harmonic 71.441 113.150 # SOURCE3 1 + angle_coeff @angle:ca-nh-cx harmonic 64.495 123.700 # SOURCE4_SOURCE5 80 0.6122 + angle_coeff @angle:ca-nh-f harmonic 89.432 106.090 # SOURCE3 3 1.0660 + angle_coeff @angle:ca-nh-hn harmonic 48.787 116.070 # SOURCE4_SOURCE5 5026 1.3182 + angle_coeff @angle:ca-nh-i harmonic 58.875 117.830 # SOURCE3 1 + angle_coeff @angle:ca-nh-n1 harmonic 86.539 117.130 # HF/6-31G* 1 + angle_coeff @angle:ca-nh-n2 harmonic 84.736 121.130 # SOURCE4_SOURCE5 61 1.2262 + angle_coeff @angle:ca-nh-n3 harmonic 83.982 117.830 # SOURCE3_SOURCE5 31 1.9504 + angle_coeff @angle:ca-nh-n4 harmonic 85.682 108.940 # SOURCE3 5 0.6562 + angle_coeff @angle:ca-nh-n harmonic 85.070 116.030 # SOURCE4_SOURCE5 31 1.0216 + angle_coeff @angle:ca-nh-na harmonic 85.145 115.960 # SOURCE3_SOURCE5 14 0.6985 + angle_coeff @angle:ca-nh-nh harmonic 85.491 114.840 # SOURCE3_SOURCE5 14 1.2270 + angle_coeff @angle:ca-nh-no harmonic 86.330 113.920 # SOURCE3 4 2.9561 + angle_coeff @angle:ca-nh-o harmonic 86.968 121.920 # SOURCE3 2 3.9630 + angle_coeff @angle:ca-nh-oh harmonic 85.751 112.970 # SOURCE3_SOURCE5 7 0.3980 + angle_coeff @angle:ca-nh-os harmonic 86.208 111.850 # SOURCE3_SOURCE5 8 0.6032 + angle_coeff @angle:ca-nh-p2 harmonic 81.008 125.270 # SOURCE3 8 5.1798 + angle_coeff @angle:ca-nh-p3 harmonic 79.062 125.700 # SOURCE3 3 5.7796 + angle_coeff @angle:ca-nh-p4 harmonic 80.454 124.010 # SOURCE3 3 2.5810 + angle_coeff @angle:ca-nh-p5 harmonic 80.367 128.170 # SOURCE3_SOURCE5 9 0.9847 + angle_coeff @angle:ca-nh-s4 harmonic 63.691 115.620 # SOURCE3 3 0.3434 + angle_coeff @angle:ca-nh-s6 harmonic 63.224 122.850 # SOURCE4_SOURCE5 92 2.1278 + angle_coeff @angle:ca-nh-s harmonic 60.896 122.540 # SOURCE3 3 2.7001 + angle_coeff @angle:ca-nh-sh harmonic 63.303 121.410 # SOURCE3 1 + angle_coeff @angle:ca-nh-ss harmonic 63.248 121.500 # SOURCE3 3 2.6255 + angle_coeff @angle:ca-nh-sy harmonic 62.161 125.230 # SOURCE4_SOURCE5 116 1.6241 + angle_coeff @angle:cc-nh-cx harmonic 64.747 123.700 # CORR_SOURCE5 82 1.6057 + angle_coeff @angle:cc-nh-hn harmonic 49.267 115.630 # SOURCE3_SOURCE5 1084 1.8598 + angle_coeff @angle:cc-nh-n2 harmonic 85.504 120.090 # SOURCE4_SOURCE5 21 1.0306 + angle_coeff @angle:cc-nh-sy harmonic 62.976 122.520 # SOURCE4_SOURCE5 60 1.2839 + angle_coeff @angle:cd-nh-cx harmonic 64.747 123.700 # CORR_SOURCE5 82 1.6057 + angle_coeff @angle:cd-nh-hn harmonic 49.267 115.630 # SOURCE3_SOURCE5 1084 1.8598 + angle_coeff @angle:ce-nh-hn harmonic 48.739 115.680 # CORR_SOURCE5 360 1.2286 + angle_coeff @angle:ce-nh-o harmonic 84.249 129.430 # CORR 2 + angle_coeff @angle:ce-nh-sy harmonic 65.279 113.390 # SOURCE4_SOURCE5 15 1.0862 + angle_coeff @angle:cf-nh-hn harmonic 48.739 115.680 # CORR_SOURCE5 360 1.2286 + angle_coeff @angle:cf-nh-o harmonic 84.249 129.430 # CORR 2 + angle_coeff @angle:cl-nh-cl harmonic 81.661 106.600 # SOURCE3 1 + angle_coeff @angle:cl-nh-hn harmonic 48.722 104.140 # SOURCE3 1 + angle_coeff @angle:cx-nh-cx harmonic 89.045 62.010 # SOURCE4_SOURCE5 98 0.5911 + angle_coeff @angle:cx-nh-hn harmonic 46.132 118.880 # SOURCE4_SOURCE5 23 0.1930 + angle_coeff @angle:cz-nh-hn harmonic 49.192 121.150 # SOURCE4_SOURCE5 116 0.7805 + angle_coeff @angle:f-nh-f harmonic 114.444 101.700 # SOURCE3 1 + angle_coeff @angle:f-nh-hn harmonic 64.681 101.230 # SOURCE3 1 + angle_coeff @angle:hn-nh-hn harmonic 39.519 115.120 # SOURCE4_SOURCE5 3024 2.1393 + angle_coeff @angle:hn-nh-i harmonic 37.873 107.570 # SOURCE3 1 + angle_coeff @angle:hn-nh-n1 harmonic 64.440 110.570 # HF/6-31G* 1 + angle_coeff @angle:hn-nh-n2 harmonic 61.856 118.140 # SOURCE4_SOURCE5 220 2.1956 + angle_coeff @angle:hn-nh-n3 harmonic 60.496 113.970 # SOURCE3_SOURCE5 53 1.8422 + angle_coeff @angle:hn-nh-n4 harmonic 61.193 104.400 # SOURCE3 3 0.5056 + angle_coeff @angle:hn-nh-n harmonic 62.655 108.170 # SOURCE4_SOURCE5 39 1.1076 + angle_coeff @angle:hn-nh-na harmonic 62.699 108.240 # SOURCE3_SOURCE5 48 1.3913 + angle_coeff @angle:hn-nh-nh harmonic 61.867 110.860 # SOURCE4_SOURCE5 20 1.2814 + angle_coeff @angle:hn-nh-no harmonic 62.754 109.940 # SOURCE4_SOURCE5 17 0.1843 + angle_coeff @angle:hn-nh-o harmonic 65.877 116.450 # SOURCE3 2 0.6063 + angle_coeff @angle:hn-nh-oh harmonic 62.561 106.490 # SOURCE4_SOURCE5 45 1.2492 + angle_coeff @angle:hn-nh-os harmonic 62.721 106.070 # SOURCE3_SOURCE5 11 1.1257 + angle_coeff @angle:hn-nh-p2 harmonic 55.498 118.180 # SOURCE3 21 3.6927 + angle_coeff @angle:hn-nh-p3 harmonic 54.152 116.190 # SOURCE3 3 3.0539 + angle_coeff @angle:hn-nh-p4 harmonic 55.870 112.600 # SOURCE3 3 0.8237 + angle_coeff @angle:hn-nh-p5 harmonic 56.530 115.090 # SOURCE3_SOURCE5 12 1.4234 + angle_coeff @angle:hn-nh-s4 harmonic 43.338 107.480 # SOURCE3 3 1.3960 + angle_coeff @angle:hn-nh-s harmonic 41.075 114.370 # SOURCE3 1 + angle_coeff @angle:hn-nh-s6 harmonic 44.306 109.920 # SOURCE4_SOURCE5 70 0.7219 + angle_coeff @angle:hn-nh-sh harmonic 43.546 112.250 # SOURCE3 1 + angle_coeff @angle:hn-nh-ss harmonic 43.161 114.100 # SOURCE3_SOURCE5 9 0.8638 + angle_coeff @angle:hn-nh-sy harmonic 43.636 110.910 # SOURCE4_SOURCE5 174 1.2855 + angle_coeff @angle:i-nh-i harmonic 65.204 115.820 # SOURCE3 1 + angle_coeff @angle:n1-nh-n1 harmonic 115.547 106.710 # HF/6-31G* 1 + angle_coeff @angle:n2-nh-n2 harmonic 109.104 117.500 # SOURCE3 2 1.1907 + angle_coeff @angle:n2-nh-n3 harmonic 105.802 119.060 # SOURCE3_SOURCE5 5 1.1057 + angle_coeff @angle:n2-nh-o harmonic 108.688 126.060 # SOURCE3 1 + angle_coeff @angle:n3-nh-n3 harmonic 107.251 110.980 # SOURCE3 1 + angle_coeff @angle:n4-nh-n4 harmonic 104.809 108.360 # SOURCE3 1 + angle_coeff @angle:na-nh-na harmonic 107.947 112.010 # SOURCE3 1 + angle_coeff @angle:hn-n-hn harmonic 39.011 117.950 # SOURCE3_SOURCE5 619 1.1004 + angle_coeff @angle:nh-nh-nh harmonic 107.672 112.230 # SOURCE3 1 + angle_coeff @angle:hn-n-i harmonic 37.457 117.240 # SOURCE3 2 0.4435 + angle_coeff @angle:hn-n-n2 harmonic 61.294 119.080 # SOURCE3_SOURCE5 133 1.1985 + angle_coeff @angle:hn-n-n3 harmonic 60.078 117.240 # SOURCE4_SOURCE5 85 1.3614 + angle_coeff @angle:hn-n-n4 harmonic 60.201 112.680 # SOURCE3 3 1.9746 + angle_coeff @angle:hn-n-n harmonic 61.137 113.200 # SOURCE3_SOURCE5 44 1.5099 + angle_coeff @angle:hn-n-na harmonic 60.720 114.350 # SOURCE3_SOURCE5 14 1.6595 + angle_coeff @angle:hn-n-nc harmonic 62.278 115.420 # SOURCE4_SOURCE5 34 0.6814 + angle_coeff @angle:hn-n-nh harmonic 61.240 113.210 # SOURCE4_SOURCE5 34 1.4195 + angle_coeff @angle:hn-n-no harmonic 59.968 110.110 # SOURCE3 1 + angle_coeff @angle:hn-n-o harmonic 66.701 116.320 # SOURCE3 2 0.0175 + angle_coeff @angle:n-nh-o harmonic 111.046 115.630 # SOURCE3 1 + angle_coeff @angle:hn-n-oh harmonic 61.737 110.740 # SOURCE4_SOURCE5 106 1.1526 + angle_coeff @angle:no-nh-no harmonic 110.729 108.550 # SOURCE3 1 + angle_coeff @angle:hn-n-os harmonic 61.835 110.010 # SOURCE4_SOURCE5 28 0.8603 + angle_coeff @angle:hn-n-p2 harmonic 53.625 118.050 # SOURCE3 7 3.0564 + angle_coeff @angle:hn-n-p3 harmonic 52.013 119.630 # SOURCE3 2 + angle_coeff @angle:hn-n-p4 harmonic 54.129 115.710 # SOURCE3 1 + angle_coeff @angle:hn-n-p5 harmonic 55.227 113.610 # SOURCE4_SOURCE5 12 0.8598 + angle_coeff @angle:hn-n-s4 harmonic 41.853 112.460 # SOURCE3 1 + angle_coeff @angle:hn-n-s harmonic 41.432 114.920 # SOURCE3 2 0.0260 + angle_coeff @angle:hn-n-s6 harmonic 43.193 112.560 # SOURCE4_SOURCE5 18 0.6934 + angle_coeff @angle:hn-n-sh harmonic 42.490 114.910 # SOURCE3 1 + angle_coeff @angle:hn-n-ss harmonic 42.420 115.600 # SOURCE3 3 0.6414 + angle_coeff @angle:hn-n-sy harmonic 43.301 112.330 # SOURCE4_SOURCE5 87 0.6324 + angle_coeff @angle:oh-nh-oh harmonic 109.556 106.270 # SOURCE3 1 + angle_coeff @angle:o-nh-o harmonic 111.924 128.060 # SOURCE3 1 + angle_coeff @angle:os-nh-os harmonic 110.145 105.270 # SOURCE3 1 + angle_coeff @angle:p2-nh-p2 harmonic 103.624 127.330 # SOURCE3 2 2.7857 + angle_coeff @angle:p3-nh-p3 harmonic 101.470 125.080 # SOURCE3 1 + angle_coeff @angle:p5-nh-p5 harmonic 110.643 112.760 # SOURCE3 1 + angle_coeff @angle:s4-nh-s4 harmonic 64.290 112.390 # SOURCE3 1 + angle_coeff @angle:s6-nh-s6 harmonic 64.034 120.270 # SOURCE3 1 + angle_coeff @angle:sh-nh-sh harmonic 63.979 119.000 # SOURCE3 1 + angle_coeff @angle:s-nh-s harmonic 61.323 118.730 # SOURCE3 1 + angle_coeff @angle:ss-nh-ss harmonic 63.871 119.250 # SOURCE3 1 + angle_coeff @angle:i-n-i harmonic 66.144 118.200 # SOURCE3 1 + angle_coeff @angle:n2-n-n2 harmonic 108.745 116.890 # SOURCE3 1 + angle_coeff @angle:n3-n-n3 harmonic 104.883 117.940 # SOURCE3 1 + angle_coeff @angle:n4-n-n4 harmonic 105.215 112.690 # SOURCE3 1 + angle_coeff @angle:na-n-na harmonic 104.916 117.380 # SOURCE3 1 + angle_coeff @angle:nc-n-nc harmonic 109.009 116.410 # CORR 2 + angle_coeff @angle:nc-n-p2 harmonic 102.805 117.210 # CORR 2 + angle_coeff @angle:nc-n-pc harmonic 102.474 117.210 # CORR 2 + angle_coeff @angle:nd-n-nd harmonic 109.009 116.410 # CORR 2 + angle_coeff @angle:nd-n-p2 harmonic 102.805 117.210 # CORR 2 + angle_coeff @angle:nd-n-pd harmonic 102.474 117.210 # CORR 2 + angle_coeff @angle:nh-n-nh harmonic 106.329 115.180 # SOURCE3 1 + angle_coeff @angle:n-n-n harmonic 106.384 114.620 # SOURCE3 1 + angle_coeff @angle:no-n-no harmonic 105.383 108.660 # SOURCE3 1 + angle_coeff @angle:br-no-o harmonic 72.469 113.190 # SOURCE3 2 + angle_coeff @angle:c1-no-o harmonic 89.075 116.630 # SOURCE3 6 + angle_coeff @angle:c2-no-o harmonic 86.856 117.670 # SOURCE3_SOURCE5 49 0.7530 + angle_coeff @angle:c3-no-o harmonic 83.512 116.930 # SOURCE3_SOURCE5 182 0.7108 + angle_coeff @angle:ca-no-o harmonic 85.942 117.760 # SOURCE3_SOURCE5 886 0.2929 + angle_coeff @angle:cc-no-o harmonic 87.737 117.490 # SOURCE4_SOURCE5 624 0.5662 + angle_coeff @angle:cl-no-o harmonic 86.532 115.080 # SOURCE3 2 + angle_coeff @angle:c-no-o harmonic 83.834 115.260 # SOURCE3 1 + angle_coeff @angle:hn-no-o harmonic 67.449 115.490 # SOURCE3 2 + angle_coeff @angle:oh-n-oh harmonic 109.825 107.260 # SOURCE3 1 + angle_coeff @angle:i-no-o harmonic 70.372 116.310 # SOURCE3 2 + angle_coeff @angle:n1-no-o harmonic 112.600 115.000 # HF/6-31G* 1 + angle_coeff @angle:n2-no-o harmonic 110.021 116.520 # SOURCE2_SOURCE5 17 2.4833 + angle_coeff @angle:n3-no-o harmonic 111.860 116.770 # SOURCE3_SOURCE5 35 0.4158 + angle_coeff @angle:n4-no-o harmonic 111.250 109.000 # SOURCE3 2 + angle_coeff @angle:na-no-o harmonic 110.472 115.570 # SOURCE3_SOURCE5 29 0.5293 + angle_coeff @angle:nh-no-o harmonic 112.798 116.080 # SOURCE3_SOURCE5 32 0.8573 + angle_coeff @angle:n-no-o harmonic 109.317 115.590 # SOURCE3_SOURCE5 14 0.7108 + angle_coeff @angle:no-no-o harmonic 91.614 112.380 # SOURCE3 4 + angle_coeff @angle:o-n-o harmonic 113.464 128.610 # SOURCE3 3 1.0626 + angle_coeff @angle:o-no-o harmonic 116.649 125.080 # SOURCE4_SOURCE5 1464 0.8585 + angle_coeff @angle:o-no-oh harmonic 112.426 114.700 # SOURCE3 2 + angle_coeff @angle:o-no-os harmonic 111.586 114.760 # SOURCE3_SOURCE5 147 2.2227 + angle_coeff @angle:o-no-p2 harmonic 103.970 117.380 # SOURCE3 20 0.8083 + angle_coeff @angle:o-no-p3 harmonic 98.510 116.780 # SOURCE3 6 0.4929 + angle_coeff @angle:o-no-p4 harmonic 97.206 116.640 # SOURCE3 6 0.0089 + angle_coeff @angle:o-no-p5 harmonic 99.077 116.690 # SOURCE3 8 0.4507 + angle_coeff @angle:o-no-s4 harmonic 71.457 114.490 # SOURCE3 6 0.5674 + angle_coeff @angle:o-no-s6 harmonic 72.259 114.390 # SOURCE3 6 0.8311 + angle_coeff @angle:o-no-s harmonic 80.020 119.810 # SOURCE3 4 0.0042 + angle_coeff @angle:o-no-sh harmonic 78.649 116.100 # SOURCE3 2 + angle_coeff @angle:o-no-ss harmonic 77.822 115.580 # SOURCE3 6 0.5860 + angle_coeff @angle:os-n-os harmonic 109.989 106.530 # SOURCE3 1 + angle_coeff @angle:p2-n-p2 harmonic 103.580 119.620 # SOURCE3 1 + angle_coeff @angle:p3-n-p3 harmonic 106.372 108.730 # SOURCE3 3 0.2591 + angle_coeff @angle:p4-n-p4 harmonic 108.671 108.550 # SOURCE3 1 + angle_coeff @angle:p5-n-p5 harmonic 114.341 99.990 # SOURCE3 1 + angle_coeff @angle:pc-n-pc harmonic 103.163 119.620 # SOURCE3 1 + angle_coeff @angle:pd-n-pd harmonic 103.163 119.620 # SOURCE3 1 + angle_coeff @angle:s4-n-s4 harmonic 63.214 113.750 # SOURCE3 1 + angle_coeff @angle:s6-n-s6 harmonic 63.403 119.680 # SOURCE3 1 + angle_coeff @angle:sh-n-sh harmonic 63.230 119.030 # SOURCE3 1 + angle_coeff @angle:s-n-s harmonic 60.100 126.000 # SOURCE3 1 + angle_coeff @angle:ss-n-ss harmonic 63.451 118.490 # SOURCE3 1 + angle_coeff @angle:br-oh-ho harmonic 43.172 101.600 # SOURCE3 1 + angle_coeff @angle:c1-oh-ho harmonic 51.954 108.760 # SOURCE3 1 + angle_coeff @angle:c2-oh-ho harmonic 51.795 107.630 # SOURCE3_SOURCE5 86 1.5038 + angle_coeff @angle:c3-oh-ho harmonic 49.027 107.260 # SOURCE3_SOURCE5 7781 0.7665 + angle_coeff @angle:ca-oh-ho harmonic 50.712 108.580 # SOURCE3_SOURCE5 3580 0.7052 + angle_coeff @angle:cc-oh-ho harmonic 51.627 107.120 # CORR_SOURCE5 226 1.6427 + angle_coeff @angle:cd-oh-ho harmonic 51.627 107.120 # CORR_SOURCE5 226 1.6427 + angle_coeff @angle:ce-oh-ho harmonic 51.587 106.830 # CORR_SOURCE5 48 1.2629 + angle_coeff @angle:cf-oh-ho harmonic 51.587 106.830 # CORR_SOURCE5 48 1.2629 + angle_coeff @angle:c-oh-ho harmonic 51.617 106.550 # SOURCE3_SOURCE5 2765 1.0627 + angle_coeff @angle:cl-oh-ho harmonic 50.601 102.400 # SOURCE2 1 + angle_coeff @angle:cx-oh-ho harmonic 51.376 106.170 # SOURCE3 3 0.0644 + angle_coeff @angle:cy-oh-ho harmonic 49.289 107.690 # SOURCE4_SOURCE5 21 0.5952 + angle_coeff @angle:f-oh-ho harmonic 64.650 96.800 # SOURCE2 1 + angle_coeff @angle:ho-oh-ho harmonic 42.178 106.490 # SOURCE2_SOURCE5 23 1.3050 + angle_coeff @angle:ho-oh-i harmonic 37.979 107.980 # SOURCE3 2 + angle_coeff @angle:ho-oh-n1 harmonic 66.474 107.810 # HF/6-31G* 1 + angle_coeff @angle:ho-oh-n2 harmonic 63.987 103.090 # SOURCE3_SOURCE5 185 1.2900 + angle_coeff @angle:ho-oh-n3 harmonic 63.233 102.260 # SOURCE3_SOURCE5 28 0.5790 + angle_coeff @angle:ho-oh-n4 harmonic 62.546 106.630 # SOURCE3 3 0.2770 + angle_coeff @angle:ho-oh-n harmonic 63.907 101.290 # SOURCE3_SOURCE5 114 1.0315 + angle_coeff @angle:ho-oh-na harmonic 63.538 104.370 # SOURCE3_SOURCE5 16 0.9188 + angle_coeff @angle:ho-oh-nh harmonic 63.021 102.770 # SOURCE4_SOURCE5 57 0.7554 + angle_coeff @angle:ho-oh-no harmonic 63.640 102.170 # SOURCE3 1 + angle_coeff @angle:ho-oh-o harmonic 59.432 100.870 # SOURCE3 1 + angle_coeff @angle:ho-oh-oh harmonic 62.055 98.720 # SOURCE3 2 + angle_coeff @angle:ho-oh-os harmonic 62.321 99.680 # SOURCE4_SOURCE5 45 0.3142 + angle_coeff @angle:ho-oh-p2 harmonic 58.567 109.450 # SOURCE3 8 3.3491 + angle_coeff @angle:ho-oh-p3 harmonic 56.437 110.640 # SOURCE3 3 0.5191 + angle_coeff @angle:ho-oh-p4 harmonic 57.939 110.190 # SOURCE3 4 0.2372 + angle_coeff @angle:ho-oh-p5 harmonic 58.997 110.080 # SOURCE3_SOURCE5 1074 1.1258 + angle_coeff @angle:ho-oh-py harmonic 58.835 110.490 # SOURCE3_SOURCE5 115 1.4927 + angle_coeff @angle:ho-oh-s4 harmonic 44.189 106.850 # SOURCE4_SOURCE5 28 0.5669 + angle_coeff @angle:ho-oh-s harmonic 42.242 100.150 # SOURCE3 2 + angle_coeff @angle:ho-oh-s6 harmonic 45.957 107.260 # SOURCE3_SOURCE5 180 0.7965 + angle_coeff @angle:ho-oh-sh harmonic 44.429 106.240 # SOURCE3 2 0.0661 + angle_coeff @angle:ho-oh-ss harmonic 44.367 107.110 # SOURCE3_SOURCE5 12 1.0472 + angle_coeff @angle:ho-oh-sy harmonic 45.671 106.420 # SOURCE4_SOURCE5 121 0.3216 + angle_coeff @angle:br-os-br harmonic 67.436 110.630 # SOURCE3 1 + angle_coeff @angle:c1-os-c1 harmonic 71.202 115.020 # SOURCE3 1 + angle_coeff @angle:c1-os-c3 harmonic 68.518 113.390 # SOURCE3 1 + angle_coeff @angle:c2-os-c2 harmonic 69.600 113.140 # SOURCE3 6 2.1932 + angle_coeff @angle:c2-os-c3 harmonic 66.993 115.590 # SOURCE3_SOURCE5 149 2.3501 + angle_coeff @angle:c2-os-ca harmonic 67.843 118.200 # SOURCE3_SOURCE5 13 0.6779 + angle_coeff @angle:c2-os-n2 harmonic 83.963 118.130 # SOURCE3 1 + angle_coeff @angle:c2-os-na harmonic 88.073 103.850 # SOURCE3 4 0.6297 + angle_coeff @angle:c2-os-os harmonic 87.781 102.770 # SOURCE3 1 + angle_coeff @angle:c2-os-p5 harmonic 82.312 126.370 # SOURCE4 7 1.7939 + angle_coeff @angle:c2-os-ss harmonic 66.609 108.130 # SOURCE3 1 + angle_coeff @angle:c3-os-c3 harmonic 66.293 112.480 # SOURCE4_SOURCE5 4012 1.7399 + angle_coeff @angle:c3-os-ca harmonic 66.103 117.960 # SOURCE4_SOURCE5 7354 1.4497 + angle_coeff @angle:c3-os-cc harmonic 66.432 117.370 # CORR_SOURCE5 411 1.1548 + angle_coeff @angle:c3-os-cd harmonic 66.432 117.370 # CORR_SOURCE5 411 1.1548 + angle_coeff @angle:c3-os-ce harmonic 66.603 116.090 # CORR_SOURCE5 59 1.9942 + angle_coeff @angle:c3-os-cf harmonic 66.603 116.090 # CORR_SOURCE5 59 1.9942 + angle_coeff @angle:c3-os-cl harmonic 71.832 110.500 # SOURCE2 1 + angle_coeff @angle:c3-os-cy harmonic 66.337 111.750 # SOURCE4_SOURCE5 19 0.7990 + angle_coeff @angle:c3-os-i harmonic 59.723 113.700 # SOURCE3 1 + angle_coeff @angle:c3-os-n1 harmonic 85.969 113.500 # HF/6-31G* 1 + angle_coeff @angle:c3-os-n2 harmonic 85.118 109.230 # SOURCE3_SOURCE5 93 0.8090 + angle_coeff @angle:c3-os-n3 harmonic 83.747 109.830 # SOURCE4_SOURCE5 46 1.7350 + angle_coeff @angle:c3-os-n4 harmonic 84.065 110.500 # SOURCE3 3 0.5426 + angle_coeff @angle:c3-os-n harmonic 84.730 109.680 # SOURCE4_SOURCE5 42 0.9897 + angle_coeff @angle:c3-os-na harmonic 83.212 110.980 # SOURCE3_SOURCE5 17 1.2781 + angle_coeff @angle:c3-os-nc harmonic 83.792 112.730 # SOURCE3 2 1.0358 + angle_coeff @angle:c3-os-nd harmonic 83.792 112.730 # SOURCE3 2 + angle_coeff @angle:c3-os-nh harmonic 84.502 109.790 # SOURCE4_SOURCE5 22 0.2157 + angle_coeff @angle:c3-os-no harmonic 82.802 113.890 # SOURCE4_SOURCE5 112 0.3140 + angle_coeff @angle:c3-os-o harmonic 84.510 103.000 # SOURCE3 1 + angle_coeff @angle:c3-os-oh harmonic 83.965 108.110 # SOURCE4_SOURCE5 34 0.5701 + angle_coeff @angle:c3-os-os harmonic 83.957 107.370 # SOURCE3_SOURCE5 55 0.9835 + angle_coeff @angle:c3-os-p2 harmonic 86.122 115.470 # SOURCE3 8 2.6374 + angle_coeff @angle:c3-os-p3 harmonic 81.943 117.510 # SOURCE3_SOURCE5 11 0.9552 + angle_coeff @angle:c3-os-p4 harmonic 83.257 117.480 # SOURCE3 4 0.3850 + angle_coeff @angle:c3-os-p5 harmonic 83.251 119.540 # SOURCE3_SOURCE5 665 1.1338 + angle_coeff @angle:c3-os-py harmonic 83.113 119.570 # SOURCE3_SOURCE5 59 1.1952 + angle_coeff @angle:c3-os-s4 harmonic 64.572 113.210 # SOURCE3_SOURCE5 18 1.1865 + angle_coeff @angle:c3-os-s6 harmonic 65.683 115.870 # SOURCE4_SOURCE5 144 1.2750 + angle_coeff @angle:c3-os-s harmonic 62.691 109.550 # SOURCE3 1 + angle_coeff @angle:c3-os-sh harmonic 65.257 112.820 # SOURCE3 1 + angle_coeff @angle:c3-os-ss harmonic 64.028 114.010 # SOURCE3_SOURCE5 8 0.2853 + angle_coeff @angle:ca-os-ca harmonic 67.119 119.890 # SOURCE4_SOURCE5 312 1.5712 + angle_coeff @angle:ca-os-cc harmonic 69.301 113.080 # CORR_SOURCE5 343 1.5098 + angle_coeff @angle:ca-os-cd harmonic 69.301 113.080 # CORR_SOURCE5 343 1.5098 + angle_coeff @angle:ca-os-n3 harmonic 84.583 112.190 # SOURCE3 1 + angle_coeff @angle:ca-os-na harmonic 85.998 108.240 # SOURCE3 1 + angle_coeff @angle:ca-os-nc harmonic 86.989 109.320 # SOURCE3_SOURCE5 7 0.0434 + angle_coeff @angle:ca-os-nd harmonic 86.989 109.320 # SOURCE3_SOURCE5 7 0.0434 + angle_coeff @angle:ca-os-p5 harmonic 83.193 123.180 # SOURCE4_SOURCE5 136 1.2191 + angle_coeff @angle:ca-os-s6 harmonic 66.238 117.180 # SOURCE4_SOURCE5 46 1.0420 + angle_coeff @angle:c-os-c2 harmonic 68.118 118.220 # SOURCE4_SOURCE5 22 0.6933 + angle_coeff @angle:c-os-c3 harmonic 66.906 115.980 # SOURCE3_SOURCE5 2731 1.0103 + angle_coeff @angle:c-os-c harmonic 67.462 120.640 # SOURCE4 7 1.5114 + angle_coeff @angle:c-os-ca harmonic 67.041 121.150 # SOURCE4_SOURCE5 731 1.7389 + angle_coeff @angle:c-os-cc harmonic 67.659 119.620 # SOURCE3 5 6.0675 + angle_coeff @angle:cc-os-cc harmonic 71.537 106.720 # CORR_SOURCE5 406 0.7345 + angle_coeff @angle:cc-os-cd harmonic 67.837 118.680 # SOURCE4_SOURCE5 49 2.2289 + angle_coeff @angle:c-os-cd harmonic 67.659 119.620 # SOURCE3 5 6.0675 + angle_coeff @angle:cc-os-na harmonic 84.874 111.660 # SOURCE3 28 4.1343 + angle_coeff @angle:cc-os-nc harmonic 87.598 108.370 # SOURCE3_SOURCE5 148 0.8594 + angle_coeff @angle:cc-os-os harmonic 85.382 108.470 # SOURCE3 2 + angle_coeff @angle:cc-os-ss harmonic 63.313 119.590 # SOURCE3 1 + angle_coeff @angle:c-os-cy harmonic 75.270 91.100 # SOURCE3 2 0.0155 + angle_coeff @angle:cd-os-cd harmonic 71.537 106.720 # CORR_SOURCE5 406 0.7345 + angle_coeff @angle:cd-os-na harmonic 84.874 111.660 # SOURCE3 28 4.1343 + angle_coeff @angle:cd-os-nd harmonic 87.598 108.370 # SOURCE3_SOURCE5 148 0.8594 + angle_coeff @angle:cd-os-os harmonic 85.382 108.470 # SOURCE3 2 + angle_coeff @angle:cd-os-ss harmonic 63.313 119.590 # SOURCE3 1 + angle_coeff @angle:cl-os-cl harmonic 80.567 110.760 # SOURCE3 2 + angle_coeff @angle:c-os-n2 harmonic 86.219 112.120 # SOURCE4_SOURCE5 16 0.1285 + angle_coeff @angle:c-os-n harmonic 85.927 112.240 # SOURCE4_SOURCE5 17 0.6206 + angle_coeff @angle:c-os-oh harmonic 85.021 110.500 # SOURCE3 1 + angle_coeff @angle:c-os-os harmonic 84.800 110.200 # SOURCE4_SOURCE5 22 1.3187 + angle_coeff @angle:c-os-p5 harmonic 83.749 122.130 # SOURCE4_SOURCE5 11 0.5685 + angle_coeff @angle:c-os-sy harmonic 65.179 113.490 # SOURCE3 1 + angle_coeff @angle:cx-os-cx harmonic 89.127 61.780 # SOURCE4_SOURCE5 379 0.2104 + angle_coeff @angle:cx-os-n harmonic 114.351 59.990 # SOURCE3 1 + angle_coeff @angle:cx-os-os harmonic 115.519 56.520 # SOURCE3 2 + angle_coeff @angle:cy-os-cy harmonic 72.980 91.860 # SOURCE2_SOURCE5 16 1.0042 + angle_coeff @angle:f-os-f harmonic 112.297 103.300 # SOURCE2 1 + angle_coeff @angle:f-os-os harmonic 105.904 109.500 # SOURCE2 1 + angle_coeff @angle:i-os-i harmonic 65.023 115.670 # SOURCE3 1 + angle_coeff @angle:n1-os-n1 harmonic 111.016 117.790 # HF/6-31G* 1 + angle_coeff @angle:n2-os-n2 harmonic 108.962 106.830 # SOURCE3 1 + angle_coeff @angle:n2-os-s6 harmonic 84.516 111.300 # SOURCE4_SOURCE5 14 0.5651 + angle_coeff @angle:n3-os-n3 harmonic 106.985 104.880 # SOURCE3 1 + angle_coeff @angle:n4-os-n4 harmonic 103.723 114.680 # SOURCE3 1 + angle_coeff @angle:na-os-na harmonic 104.414 109.590 # SOURCE3 1 + angle_coeff @angle:na-os-ss harmonic 83.603 104.340 # SOURCE3 1 + angle_coeff @angle:nc-os-nc harmonic 106.078 112.750 # SOURCE2_SOURCE5 12 0.7540 + angle_coeff @angle:nc-os-ss harmonic 81.743 110.970 # SOURCE3 1 + angle_coeff @angle:nd-os-nd harmonic 106.078 112.750 # SOURCE2_SOURCE5 12 0.7540 + angle_coeff @angle:nd-os-ss harmonic 81.743 110.970 # SOURCE3 1 + angle_coeff @angle:nh-os-nh harmonic 107.169 108.290 # SOURCE3 1 + angle_coeff @angle:n-os-n harmonic 107.646 108.310 # SOURCE3 1 + angle_coeff @angle:no-os-no harmonic 105.015 111.860 # SOURCE3 1 + angle_coeff @angle:n-os-s6 harmonic 83.504 113.630 # SOURCE4_SOURCE5 13 0.1799 + angle_coeff @angle:o-os-o harmonic 97.999 114.680 # SOURCE3 1 + angle_coeff @angle:p2-os-p2 harmonic 112.427 120.020 # SOURCE3 1 + angle_coeff @angle:p2-os-p5 harmonic 117.003 107.860 # SOURCE3 1 + angle_coeff @angle:p3-os-p3 harmonic 105.094 121.220 # SOURCE3 1 + angle_coeff @angle:p3-os-py harmonic 114.455 105.580 # SOURCE3 1 + angle_coeff @angle:p5-os-p5 harmonic 106.787 126.250 # SOURCE3 1 + angle_coeff @angle:s4-os-s4 harmonic 65.797 111.630 # SOURCE3 1 + angle_coeff @angle:s6-os-s6 harmonic 66.445 119.070 # SOURCE3 2 0.4318 + angle_coeff @angle:sh-os-sh harmonic 64.549 118.950 # SOURCE3 1 + angle_coeff @angle:s-os-s harmonic 60.143 118.080 # SOURCE3 1 + angle_coeff @angle:ss-os-ss harmonic 64.198 115.640 # SOURCE3 1 + angle_coeff @angle:br-p2-br harmonic 50.367 108.600 # SOURCE3 1 + angle_coeff @angle:br-p2-c2 harmonic 49.320 102.320 # SOURCE3 2 0.0146 + angle_coeff @angle:br-p2-n2 harmonic 61.779 103.330 # SOURCE3 1 + angle_coeff @angle:br-p2-o harmonic 59.925 110.870 # SOURCE3 1 + angle_coeff @angle:br-p2-p2 harmonic 63.559 115.460 # SOURCE3 4 7.8622 + angle_coeff @angle:br-p2-s harmonic 50.714 110.520 # SOURCE3 1 + angle_coeff @angle:c1-p2-c1 harmonic 49.523 99.040 # SOURCE3 1 + angle_coeff @angle:c1-p2-c2 harmonic 50.326 101.290 # SOURCE3 1 + angle_coeff @angle:c1-p2-n2 harmonic 63.856 101.790 # SOURCE3 1 + angle_coeff @angle:c1-p2-o harmonic 63.431 107.620 # SOURCE3 1 + angle_coeff @angle:c1-p2-p2 harmonic 68.223 99.540 # SOURCE3 1 + angle_coeff @angle:c1-p2-s harmonic 51.746 105.900 # SOURCE3 1 + angle_coeff @angle:c2-p2-c2 harmonic 51.141 104.500 # SOURCE3 1 + angle_coeff @angle:c2-p2-c3 harmonic 48.776 101.900 # SOURCE3 4 0.1132 + angle_coeff @angle:c2-p2-ca harmonic 49.013 101.950 # SOURCE3 1 + angle_coeff @angle:c2-p2-cl harmonic 54.318 102.720 # SOURCE3 2 + angle_coeff @angle:c2-p2-f harmonic 67.755 103.470 # SOURCE3 2 0.0136 + angle_coeff @angle:c2-p2-hp harmonic 37.280 97.190 # SOURCE3 3 0.0216 + angle_coeff @angle:c2-p2-i harmonic 44.010 101.940 # SOURCE3 2 0.0368 + angle_coeff @angle:c2-p2-n2 harmonic 66.728 99.880 # SOURCE3 1 + angle_coeff @angle:c2-p2-n3 harmonic 64.858 101.800 # SOURCE3 1 + angle_coeff @angle:c2-p2-n4 harmonic 60.347 98.260 # SOURCE3 6 0.1522 + angle_coeff @angle:c2-p2-n harmonic 63.154 103.280 # SOURCE3 4 3.3113 + angle_coeff @angle:c2-p2-na harmonic 62.619 103.990 # SOURCE3 8 1.6834 + angle_coeff @angle:c2-p2-nh harmonic 63.638 105.170 # SOURCE3 8 0.8263 + angle_coeff @angle:c2-p2-no harmonic 64.740 97.970 # SOURCE3 3 0.4175 + angle_coeff @angle:c2-p2-o harmonic 63.763 115.160 # SOURCE3 1 + angle_coeff @angle:c2-p2-oh harmonic 65.278 102.890 # SOURCE3 3 0.8191 + angle_coeff @angle:c2-p2-os harmonic 66.578 102.120 # SOURCE3 4 0.8783 + angle_coeff @angle:c2-p2-p2 harmonic 70.059 99.560 # SOURCE3 1 + angle_coeff @angle:c2-p2-p3 harmonic 61.583 99.270 # SOURCE3 4 1.1590 + angle_coeff @angle:c2-p2-p4 harmonic 61.685 96.940 # SOURCE3 1 + angle_coeff @angle:c2-p2-p5 harmonic 61.450 97.610 # SOURCE3 1 + angle_coeff @angle:c2-p2-s4 harmonic 48.314 95.150 # SOURCE3 1 + angle_coeff @angle:c2-p2-s6 harmonic 48.407 95.510 # SOURCE3 1 + angle_coeff @angle:c2-p2-s harmonic 53.268 105.530 # SOURCE3 1 + angle_coeff @angle:c2-p2-sh harmonic 50.735 101.490 # SOURCE3 3 0.0057 + angle_coeff @angle:c2-p2-ss harmonic 50.746 101.810 # SOURCE3 4 0.5883 + angle_coeff @angle:c3-p2-c3 harmonic 47.191 99.300 # SOURCE3 1 + angle_coeff @angle:c3-p2-n2 harmonic 62.233 100.820 # SOURCE3 1 + angle_coeff @angle:c3-p2-o harmonic 61.561 106.720 # SOURCE3 1 + angle_coeff @angle:c3-p2-os harmonic 62.459 101.340 # SOURCE3 1 + angle_coeff @angle:c3-p2-p2 harmonic 66.273 100.480 # SOURCE3 1 + angle_coeff @angle:c3-p2-s harmonic 50.533 105.680 # SOURCE3 1 + angle_coeff @angle:ca-p2-ca harmonic 47.481 99.700 # SOURCE3 1 + angle_coeff @angle:ca-p2-n2 harmonic 62.575 100.820 # SOURCE3 1 + angle_coeff @angle:ca-p2-n harmonic 64.349 89.970 # SOURCE3 1 + angle_coeff @angle:ca-p2-na harmonic 64.367 89.210 # SOURCE3 1 + angle_coeff @angle:ca-p2-o harmonic 61.891 106.880 # SOURCE3 1 + angle_coeff @angle:ca-p2-s harmonic 50.228 107.930 # SOURCE3 1 + angle_coeff @angle:c-p2-c2 harmonic 49.148 97.300 # SOURCE3 1 + angle_coeff @angle:c-p2-c harmonic 48.369 90.100 # SOURCE3 1 + angle_coeff @angle:ce-p2-o harmonic 62.381 107.440 # SOURCE3 1 + angle_coeff @angle:ce-p2-s harmonic 51.184 105.540 # SOURCE3 1 + angle_coeff @angle:cf-p2-o harmonic 62.381 107.440 # SOURCE3 1 + angle_coeff @angle:cf-p2-s harmonic 51.184 105.540 # SOURCE3 1 + angle_coeff @angle:cl-p2-cl harmonic 58.906 108.700 # SOURCE3 1 + angle_coeff @angle:cl-p2-n2 harmonic 68.360 103.380 # SOURCE3 1 + angle_coeff @angle:cl-p2-o harmonic 66.726 110.570 # SOURCE3 1 + angle_coeff @angle:cl-p2-p2 harmonic 73.823 103.110 # SOURCE3 1 + angle_coeff @angle:cl-p2-s harmonic 55.803 110.110 # SOURCE3 1 + angle_coeff @angle:f-p2-f harmonic 88.550 107.100 # SOURCE3 1 + angle_coeff @angle:f-p2-n2 harmonic 86.735 103.570 # SOURCE3 1 + angle_coeff @angle:f-p2-o harmonic 86.673 110.610 # SOURCE3 1 + angle_coeff @angle:f-p2-p2 harmonic 89.962 103.480 # SOURCE3 1 + angle_coeff @angle:f-p2-s harmonic 66.939 114.710 # SOURCE3 2 5.2794 + angle_coeff @angle:hp-p2-hp harmonic 27.644 98.760 # SOURCE3 1 + angle_coeff @angle:hp-p2-n1 harmonic 46.969 95.180 # SOURCE3 2 1.5708 + angle_coeff @angle:hp-p2-n2 harmonic 48.480 95.540 # SOURCE3 19 4.7352 + angle_coeff @angle:hp-p2-ne harmonic 48.264 100.100 # SOURCE3 14 6.1290 + angle_coeff @angle:hp-p2-nf harmonic 48.264 100.100 # SOURCE3 14 + angle_coeff @angle:hp-p2-o harmonic 48.141 105.580 # SOURCE3 1 + angle_coeff @angle:hp-p2-p2 harmonic 47.796 101.880 # SOURCE3 27 12.9535 + angle_coeff @angle:hp-p2-p4 harmonic 40.954 94.510 # SOURCE3 1 + angle_coeff @angle:hp-p2-p5 harmonic 42.165 89.070 # SOURCE3 1 + angle_coeff @angle:hp-p2-pe harmonic 47.048 97.250 # SOURCE3 16 8.8916 + angle_coeff @angle:hp-p2-pf harmonic 47.048 97.250 # SOURCE3 16 + angle_coeff @angle:hp-p2-s4 harmonic 32.527 89.990 # SOURCE3 1 + angle_coeff @angle:hp-p2-s harmonic 37.377 102.520 # SOURCE3 1 + angle_coeff @angle:hp-p2-s6 harmonic 33.031 88.130 # SOURCE3 1 + angle_coeff @angle:i-p2-i harmonic 47.836 104.160 # SOURCE3 1 + angle_coeff @angle:i-p2-n2 harmonic 55.025 101.770 # SOURCE3 1 + angle_coeff @angle:i-p2-o harmonic 52.674 109.510 # SOURCE3 1 + angle_coeff @angle:i-p2-p2 harmonic 60.877 102.630 # SOURCE3 1 + angle_coeff @angle:i-p2-s harmonic 45.705 110.600 # SOURCE3 1 + angle_coeff @angle:n1-p2-n1 harmonic 87.795 86.220 # HF/6-31G* 1 + angle_coeff @angle:n2-p2-n2 harmonic 86.095 98.000 # SOURCE3 1 + angle_coeff @angle:n2-p2-n3 harmonic 83.297 100.420 # SOURCE3 1 + angle_coeff @angle:n2-p2-n4 harmonic 78.374 93.420 # SOURCE3 1 + angle_coeff @angle:n2-p2-na harmonic 80.458 102.030 # SOURCE3 1 + angle_coeff @angle:n2-p2-nh harmonic 82.457 101.870 # SOURCE3 2 0.8491 + angle_coeff @angle:n2-p2-no harmonic 82.358 98.120 # SOURCE3 1 + angle_coeff @angle:n2-p2-o harmonic 81.674 115.340 # SOURCE3 1 + angle_coeff @angle:n2-p2-oh harmonic 80.728 109.720 # SOURCE3 1 + angle_coeff @angle:n2-p2-os harmonic 85.101 102.290 # SOURCE3 1 + angle_coeff @angle:n2-p2-p3 harmonic 77.520 99.510 # SOURCE3 1 + angle_coeff @angle:n2-p2-p4 harmonic 75.847 101.730 # SOURCE3 1 + angle_coeff @angle:n2-p2-p5 harmonic 79.007 93.680 # SOURCE3 1 + angle_coeff @angle:n2-p2-s4 harmonic 60.003 97.830 # SOURCE3 1 + angle_coeff @angle:n2-p2-s6 harmonic 60.149 98.140 # SOURCE3 1 + angle_coeff @angle:n2-p2-s harmonic 65.491 112.940 # SOURCE3 1 + angle_coeff @angle:n2-p2-sh harmonic 64.416 100.820 # SOURCE3 1 + angle_coeff @angle:n2-p2-ss harmonic 64.240 101.760 # SOURCE3 1 + angle_coeff @angle:n3-p2-n3 harmonic 79.448 106.300 # SOURCE3 1 + angle_coeff @angle:n3-p2-o harmonic 82.859 106.830 # SOURCE3 1 + angle_coeff @angle:n3-p2-p2 harmonic 87.256 100.580 # SOURCE3 1 + angle_coeff @angle:n3-p2-s harmonic 66.611 105.750 # SOURCE3 1 + angle_coeff @angle:n4-p2-n4 harmonic 74.750 88.800 # SOURCE3 1 + angle_coeff @angle:n4-p2-o harmonic 76.313 101.360 # SOURCE3 1 + angle_coeff @angle:n4-p2-p2 harmonic 82.466 96.530 # SOURCE3 1 + angle_coeff @angle:n4-p2-s harmonic 61.808 104.980 # SOURCE3 1 + angle_coeff @angle:na-p2-na harmonic 75.931 106.100 # SOURCE3 1 + angle_coeff @angle:na-p2-o harmonic 80.149 107.460 # SOURCE3 1 + angle_coeff @angle:na-p2-s harmonic 64.498 108.150 # SOURCE3 1 + angle_coeff @angle:ne-p2-o harmonic 85.784 107.710 # SOURCE3 1 + angle_coeff @angle:ne-p2-s harmonic 68.411 105.500 # SOURCE3 1 + angle_coeff @angle:nf-p2-o harmonic 85.784 107.710 # SOURCE3 1 + angle_coeff @angle:nf-p2-s harmonic 68.411 105.500 # SOURCE3 1 + angle_coeff @angle:nh-p2-nh harmonic 79.891 104.000 # SOURCE3 1 + angle_coeff @angle:nh-p2-o harmonic 82.088 108.110 # SOURCE3 2 0.6773 + angle_coeff @angle:nh-p2-p2 harmonic 84.120 107.730 # SOURCE3 3 3.1678 + angle_coeff @angle:nh-p2-s harmonic 65.274 109.620 # SOURCE3 2 1.7725 + angle_coeff @angle:n-p2-n2 harmonic 82.195 98.850 # SOURCE3 1 + angle_coeff @angle:n-p2-o harmonic 81.559 105.080 # SOURCE3 1 + angle_coeff @angle:no-p2-no harmonic 79.425 98.200 # SOURCE3 1 + angle_coeff @angle:no-p2-o harmonic 81.482 104.870 # SOURCE3 1 + angle_coeff @angle:no-p2-p2 harmonic 82.518 108.570 # SOURCE3 3 8.2121 + angle_coeff @angle:no-p2-s harmonic 64.423 109.060 # SOURCE3 2 5.4074 + angle_coeff @angle:n-p2-p2 harmonic 85.198 102.120 # SOURCE3 1 + angle_coeff @angle:n-p2-s harmonic 63.562 112.340 # SOURCE3 1 + angle_coeff @angle:oh-p2-oh harmonic 83.880 100.100 # SOURCE3 1 + angle_coeff @angle:oh-p2-p2 harmonic 85.099 107.820 # SOURCE3 2 2.6708 + angle_coeff @angle:oh-p2-s harmonic 66.041 109.750 # SOURCE3 1 + angle_coeff @angle:o-p2-o harmonic 82.822 119.960 # SOURCE3 1 + angle_coeff @angle:o-p2-oh harmonic 82.704 110.460 # SOURCE3 1 + angle_coeff @angle:o-p2-os harmonic 85.052 108.810 # SOURCE3 1 + angle_coeff @angle:o-p2-p2 harmonic 84.879 114.230 # SOURCE3 1 + angle_coeff @angle:o-p2-p3 harmonic 75.364 106.690 # SOURCE3 1 + angle_coeff @angle:o-p2-p4 harmonic 75.313 104.370 # SOURCE3 1 + angle_coeff @angle:o-p2-p5 harmonic 75.237 104.490 # SOURCE3 1 + angle_coeff @angle:o-p2-pe harmonic 72.675 145.960 # SOURCE3 1 + angle_coeff @angle:o-p2-pf harmonic 72.675 145.960 # SOURCE3 1 + angle_coeff @angle:o-p2-s4 harmonic 57.795 106.590 # SOURCE3 1 + angle_coeff @angle:o-p2-s6 harmonic 58.473 105.040 # SOURCE3 1 + angle_coeff @angle:o-p2-s harmonic 65.598 117.420 # SOURCE3 1 + angle_coeff @angle:o-p2-sh harmonic 62.592 109.600 # SOURCE3 1 + angle_coeff @angle:os-p2-os harmonic 87.712 98.300 # SOURCE3 1 + angle_coeff @angle:os-p2-p2 harmonic 88.869 101.460 # SOURCE3 1 + angle_coeff @angle:o-p2-ss harmonic 62.723 109.600 # SOURCE3 1 + angle_coeff @angle:os-p2-s harmonic 67.319 108.470 # SOURCE3 3 1.7065 + angle_coeff @angle:p2-p2-n2 harmonic 90.057 97.400 # SOURCE3 1 + angle_coeff @angle:p2-p2-p3 harmonic 83.101 101.730 # SOURCE3 1 + angle_coeff @angle:p2-p2-p4 harmonic 82.238 101.980 # SOURCE3 1 + angle_coeff @angle:p2-p2-p5 harmonic 83.299 99.330 # SOURCE3 1 + angle_coeff @angle:p2-p2-s4 harmonic 65.891 95.730 # SOURCE3 1 + angle_coeff @angle:p2-p2-s6 harmonic 66.042 95.950 # SOURCE3 1 + angle_coeff @angle:p2-p2-s harmonic 69.717 111.280 # SOURCE3 1 + angle_coeff @angle:p2-p2-sh harmonic 64.935 113.940 # SOURCE3 3 8.5009 + angle_coeff @angle:p3-p2-p3 harmonic 77.638 101.000 # SOURCE3 1 + angle_coeff @angle:p3-p2-s harmonic 61.492 113.280 # SOURCE3 2 6.7035 + angle_coeff @angle:p4-p2-s harmonic 63.615 103.890 # SOURCE3 1 + angle_coeff @angle:p5-p2-p5 harmonic 81.461 89.400 # SOURCE3 1 + angle_coeff @angle:p5-p2-s harmonic 64.429 101.210 # SOURCE3 1 + angle_coeff @angle:pe-p2-s harmonic 69.635 106.350 # SOURCE3 1 + angle_coeff @angle:pf-p2-s harmonic 69.635 106.350 # SOURCE3 1 + angle_coeff @angle:s4-p2-s4 harmonic 50.406 85.300 # SOURCE3 1 + angle_coeff @angle:s6-p2-s6 harmonic 47.194 98.200 # SOURCE3 1 + angle_coeff @angle:sh-p2-sh harmonic 52.119 98.500 # SOURCE3 1 + angle_coeff @angle:s-p2-s harmonic 55.726 106.600 # SOURCE3 1 + angle_coeff @angle:s-p2-s4 harmonic 49.051 105.290 # SOURCE3 1 + angle_coeff @angle:s-p2-s6 harmonic 48.843 106.930 # SOURCE3 1 + angle_coeff @angle:s-p2-sh harmonic 51.478 110.730 # SOURCE3 2 0.0232 + angle_coeff @angle:s-p2-ss harmonic 50.784 114.140 # SOURCE3 4 5.9223 + angle_coeff @angle:ss-p2-ss harmonic 52.411 97.900 # SOURCE3 1 + angle_coeff @angle:br-p3-br harmonic 51.098 103.540 # SOURCE3 1 + angle_coeff @angle:br-p3-hp harmonic 32.984 96.360 # SOURCE3 4 0.6701 + angle_coeff @angle:c1-p3-c1 harmonic 48.612 100.500 # SOURCE3 1 + angle_coeff @angle:c1-p3-f harmonic 66.318 96.900 # SOURCE2 1 + angle_coeff @angle:c1-p3-hp harmonic 34.779 97.670 # SOURCE3 2 + angle_coeff @angle:c2-p3-c2 harmonic 47.149 101.770 # SOURCE3 3 + angle_coeff @angle:c2-p3-hp harmonic 34.073 97.850 # SOURCE3 4 + angle_coeff @angle:c3-p3-c3 harmonic 47.098 99.350 # SOURCE3_SOURCE5 108 0.9814 + angle_coeff @angle:c3-p3-ca harmonic 46.899 101.940 # SOURCE3 2 + angle_coeff @angle:c3-p3-cl harmonic 54.343 99.890 # SOURCE3 1 + angle_coeff @angle:c3-p3-f harmonic 64.355 97.800 # SOURCE2 1 + angle_coeff @angle:c3-p3-hp harmonic 33.769 97.480 # SOURCE3_SOURCE5 20 0.3444 + angle_coeff @angle:c3-p3-n2 harmonic 61.301 96.550 # SOURCE3 2 + angle_coeff @angle:c3-p3-n3 harmonic 60.308 101.410 # SOURCE3_SOURCE5 22 1.5604 + angle_coeff @angle:c3-p3-n4 harmonic 59.355 96.940 # SOURCE3 6 0.4815 + angle_coeff @angle:c3-p3-n harmonic 59.620 101.770 # SOURCE3 12 2.4449 + angle_coeff @angle:c3-p3-na harmonic 60.213 100.170 # SOURCE3 4 0.0554 + angle_coeff @angle:c3-p3-nh harmonic 59.410 104.500 # SOURCE3 2 + angle_coeff @angle:c3-p3-no harmonic 59.922 96.980 # SOURCE3 2 + angle_coeff @angle:c3-p3-o harmonic 60.035 111.670 # SOURCE3 28 5.3387 + angle_coeff @angle:c3-p3-oh harmonic 62.034 98.210 # SOURCE3 2 + angle_coeff @angle:c3-p3-os harmonic 61.657 99.530 # SOURCE3 3 1.7678 + angle_coeff @angle:c3-p3-p3 harmonic 58.575 99.880 # SOURCE3_SOURCE5 26 1.6230 + angle_coeff @angle:c3-p3-p5 harmonic 58.297 100.900 # SOURCE3 10 2.7070 + angle_coeff @angle:c3-p3-s4 harmonic 47.756 98.880 # SOURCE3 8 6.2235 + angle_coeff @angle:c3-p3-s6 harmonic 47.355 101.180 # SOURCE3 12 6.4536 + angle_coeff @angle:c3-p3-sh harmonic 47.131 98.710 # SOURCE3 2 + angle_coeff @angle:c3-p3-ss harmonic 47.137 99.370 # SOURCE3 2 + angle_coeff @angle:ca-p3-ca harmonic 47.814 99.860 # SOURCE3 1 + angle_coeff @angle:ca-p3-hp harmonic 34.261 97.500 # SOURCE3 2 + angle_coeff @angle:c-p3-c3 harmonic 47.331 97.060 # SOURCE3 3 1.1490 + angle_coeff @angle:c-p3-c harmonic 46.120 100.900 # SOURCE3 1 + angle_coeff @angle:c-p3-hp harmonic 33.554 96.550 # SOURCE3 6 0.5223 + angle_coeff @angle:cl-p3-cl harmonic 62.437 102.820 # SOURCE3 1 + angle_coeff @angle:cl-p3-f harmonic 72.784 99.200 # SOURCE2 1 + angle_coeff @angle:cl-p3-hp harmonic 38.308 96.300 # SOURCE3 3 0.6203 + angle_coeff @angle:c-p3-os harmonic 67.637 81.320 # SOURCE3 1 + angle_coeff @angle:cx-p3-hp harmonic 34.036 95.200 # SOURCE2 1 + angle_coeff @angle:f-p3-f harmonic 90.383 97.400 # SOURCE2 8 1.6636 + angle_coeff @angle:f-p3-hp harmonic 48.664 96.410 # SOURCE3 2 + angle_coeff @angle:f-p3-n3 harmonic 83.292 100.600 # SOURCE2 1 + angle_coeff @angle:f-p3-os harmonic 85.509 99.230 # SOURCE2_SOURCE5 5 0.5316 + angle_coeff @angle:f-p3-p3 harmonic 77.745 97.200 # SOURCE2 1 + angle_coeff @angle:hp-p3-hp harmonic 26.638 95.220 # SOURCE3_SOURCE5 51 2.1059 + angle_coeff @angle:hp-p3-i harmonic 29.813 96.190 # SOURCE3 4 0.6454 + angle_coeff @angle:hp-p3-n1 harmonic 47.221 92.980 # HF/6-31G* 1 + angle_coeff @angle:hp-p3-n2 harmonic 43.917 98.280 # SOURCE3 10 1.8860 + angle_coeff @angle:hp-p3-n3 harmonic 45.466 94.460 # SOURCE3 2 + angle_coeff @angle:hp-p3-n4 harmonic 42.822 93.210 # SOURCE3 2 + angle_coeff @angle:hp-p3-n harmonic 44.516 95.150 # SOURCE3 2 + angle_coeff @angle:hp-p3-na harmonic 44.183 97.270 # SOURCE3 12 0.9318 + angle_coeff @angle:hp-p3-nh harmonic 45.553 94.100 # SOURCE3 2 + angle_coeff @angle:hp-p3-no harmonic 43.557 93.060 # SOURCE3 2 + angle_coeff @angle:hp-p3-o harmonic 48.052 101.020 # SOURCE3 2 + angle_coeff @angle:hp-p3-oh harmonic 46.151 95.950 # SOURCE3 2 + angle_coeff @angle:hp-p3-os harmonic 45.868 97.350 # SOURCE3 6 2.8326 + angle_coeff @angle:hp-p3-p2 harmonic 40.595 99.110 # SOURCE3 16 4.3022 + angle_coeff @angle:hp-p3-p3 harmonic 40.175 95.520 # SOURCE3 4 0.0844 + angle_coeff @angle:hp-p3-p4 harmonic 40.047 95.950 # SOURCE3 6 0.0489 + angle_coeff @angle:hp-p3-p5 harmonic 40.189 95.540 # SOURCE3 2 + angle_coeff @angle:hp-p3-s4 harmonic 33.215 95.490 # SOURCE3 2 + angle_coeff @angle:hp-p3-s6 harmonic 33.822 92.950 # SOURCE3 2 + angle_coeff @angle:hp-p3-sh harmonic 32.748 94.210 # SOURCE3 2 + angle_coeff @angle:hp-p3-ss harmonic 32.846 94.610 # SOURCE3 2 + angle_coeff @angle:i-p3-i harmonic 49.016 105.250 # SOURCE3 1 + angle_coeff @angle:n1-p3-n1 harmonic 86.652 90.440 # HF/6-31G* 1 + angle_coeff @angle:n2-p3-n2 harmonic 76.240 103.460 # SOURCE3 1 + angle_coeff @angle:n3-p3-n3 harmonic 74.122 113.800 # SOURCE3 1 + angle_coeff @angle:n3-p3-o harmonic 80.756 107.100 # SOURCE3 4 + angle_coeff @angle:n3-p3-oh harmonic 80.929 98.360 # SOURCE3 1 + angle_coeff @angle:n4-p3-n4 harmonic 72.570 100.530 # SOURCE3 1 + angle_coeff @angle:na-p3-na harmonic 75.328 106.220 # SOURCE3 1 + angle_coeff @angle:nh-p3-nh harmonic 75.698 109.110 # SOURCE3 1 + angle_coeff @angle:n-p3-n harmonic 75.573 104.580 # SOURCE3 1 + angle_coeff @angle:n-p3-o harmonic 80.307 104.990 # SOURCE3 4 + angle_coeff @angle:no-p3-no harmonic 74.810 98.330 # SOURCE3 1 + angle_coeff @angle:oh-p3-oh harmonic 79.802 104.480 # SOURCE3 1 + angle_coeff @angle:o-p3-o harmonic 81.687 122.180 # SOURCE3 2 7.8556 + angle_coeff @angle:o-p3-p3 harmonic 70.126 116.740 # SOURCE3 14 0.7525 + angle_coeff @angle:o-p3-p5 harmonic 73.068 107.620 # SOURCE3 4 + angle_coeff @angle:o-p3-s4 harmonic 59.257 110.700 # SOURCE3 4 0.7259 + angle_coeff @angle:o-p3-s6 harmonic 60.626 106.660 # SOURCE3 6 3.4017 + angle_coeff @angle:os-p3-os harmonic 81.795 99.760 # SOURCE3_SOURCE5 8 1.2613 + angle_coeff @angle:p2-p3-p2 harmonic 76.665 103.580 # SOURCE3 1 + angle_coeff @angle:p3-p3-p3 harmonic 73.903 105.310 # SOURCE3 4 3.5864 + angle_coeff @angle:p4-p3-p4 harmonic 76.119 99.090 # SOURCE3 1 + angle_coeff @angle:p5-p3-p5 harmonic 76.218 99.100 # SOURCE3 1 + angle_coeff @angle:s4-p3-s4 harmonic 49.282 98.260 # SOURCE3 1 + angle_coeff @angle:s6-p3-s6 harmonic 49.641 97.780 # SOURCE3 1 + angle_coeff @angle:sh-p3-sh harmonic 46.105 107.580 # SOURCE3 1 + angle_coeff @angle:s-p3-s harmonic 42.980 131.320 # SOURCE3 1 + angle_coeff @angle:ss-p3-ss harmonic 45.990 109.240 # SOURCE3 1 + angle_coeff @angle:br-p4-br harmonic 50.850 110.410 # SOURCE3 1 + angle_coeff @angle:br-p4-o harmonic 57.453 124.800 # SOURCE3 1 + angle_coeff @angle:c2-p4-c2 harmonic 46.901 104.210 # SOURCE3 1 + angle_coeff @angle:c2-p4-hp harmonic 34.221 99.500 # SOURCE3 2 + angle_coeff @angle:c2-p4-o harmonic 60.517 113.590 # SOURCE3 1 + angle_coeff @angle:c3-p4-c3 harmonic 46.849 102.550 # SOURCE3 4 0.0192 + angle_coeff @angle:c3-p4-n2 harmonic 60.249 103.170 # SOURCE3 1 + angle_coeff @angle:c3-p4-n3 harmonic 60.876 102.370 # SOURCE3 1 + angle_coeff @angle:c3-p4-n4 harmonic 57.893 99.570 # SOURCE3 1 + angle_coeff @angle:c3-p4-n harmonic 60.075 103.260 # SOURCE3 1 + angle_coeff @angle:c3-p4-na harmonic 58.423 117.670 # SOURCE3 5 19.0404 + angle_coeff @angle:c3-p4-nh harmonic 60.622 102.790 # SOURCE3 1 + angle_coeff @angle:c3-p4-no harmonic 58.960 99.800 # SOURCE3 3 0.2151 + angle_coeff @angle:c3-p4-o harmonic 59.565 115.670 # SOURCE3_SOURCE5 41 1.9882 + angle_coeff @angle:c3-p4-oh harmonic 62.836 98.560 # SOURCE3 2 0.4558 + angle_coeff @angle:c3-p4-os harmonic 63.080 98.010 # SOURCE3 2 0.0931 + angle_coeff @angle:c3-p4-p2 harmonic 56.813 109.270 # SOURCE3 1 + angle_coeff @angle:c3-p4-p3 harmonic 57.663 103.530 # SOURCE3 1 + angle_coeff @angle:c3-p4-p4 harmonic 61.536 102.120 # SOURCE3 1 + angle_coeff @angle:c3-p4-p5 harmonic 57.093 104.150 # SOURCE3 1 + angle_coeff @angle:c3-p4-sh harmonic 47.201 100.170 # SOURCE3 2 0.0815 + angle_coeff @angle:c3-p4-ss harmonic 47.127 101.190 # SOURCE3 1 + angle_coeff @angle:ca-p4-ca harmonic 46.528 107.770 # SOURCE3 1 + angle_coeff @angle:ca-p4-o harmonic 61.439 111.640 # SOURCE3 1 + angle_coeff @angle:cl-p4-cl harmonic 62.229 103.510 # SOURCE3 1 + angle_coeff @angle:cl-p4-o harmonic 66.762 116.530 # SOURCE3 2 + angle_coeff @angle:hp-p4-hp harmonic 27.316 99.210 # SOURCE3 4 6.4572 + angle_coeff @angle:hp-p4-n1 harmonic 45.702 99.910 # HF/6-31G* 1 + angle_coeff @angle:hp-p4-o harmonic 47.223 109.350 # SOURCE3 6 10.8284 + angle_coeff @angle:hp-p4-p3 harmonic 39.333 98.960 # SOURCE3 4 + angle_coeff @angle:hp-p4-s harmonic 30.046 110.240 # SOURCE3 4 4.1081 + angle_coeff @angle:i-p4-i harmonic 51.559 113.220 # SOURCE3 2 6.7916 + angle_coeff @angle:i-p4-o harmonic 59.585 110.220 # SOURCE3 4 9.7726 + angle_coeff @angle:n1-p4-n1 harmonic 81.177 100.610 # HF/6-31G* 1 + angle_coeff @angle:n1-p4-o harmonic 79.782 114.590 # HF/6-31G* 1 + angle_coeff @angle:n2-p4-n2 harmonic 78.358 102.540 # SOURCE3 1 + angle_coeff @angle:n2-p4-o harmonic 76.567 120.280 # SOURCE3 1 + angle_coeff @angle:n3-p4-o harmonic 79.727 113.270 # SOURCE3 1 + angle_coeff @angle:n4-p4-o harmonic 74.226 107.610 # SOURCE3 1 + angle_coeff @angle:na-p4-o harmonic 84.731 110.600 # SOURCE3 5 1.3133 + angle_coeff @angle:nh-p4-nh harmonic 82.137 95.300 # SOURCE3 1 + angle_coeff @angle:nh-p4-o harmonic 78.559 115.860 # SOURCE3 3 3.2712 + angle_coeff @angle:n-p4-o harmonic 77.006 117.990 # SOURCE3 1 + angle_coeff @angle:no-p4-o harmonic 73.956 114.690 # SOURCE3 3 0.1070 + angle_coeff @angle:oh-p4-oh harmonic 85.208 95.710 # SOURCE3 1 + angle_coeff @angle:o-p4-o harmonic 84.013 117.220 # SOURCE3 6 2.7792 + angle_coeff @angle:o-p4-oh harmonic 79.987 117.390 # SOURCE3 4 1.0083 + angle_coeff @angle:o-p4-os harmonic 80.383 116.670 # SOURCE3 4 0.6923 + angle_coeff @angle:o-p4-p2 harmonic 69.856 121.350 # SOURCE3 1 + angle_coeff @angle:o-p4-p3 harmonic 70.923 114.000 # SOURCE3 3 0.6663 + angle_coeff @angle:o-p4-p4 harmonic 75.914 116.430 # SOURCE3 1 + angle_coeff @angle:o-p4-p5 harmonic 71.622 109.760 # SOURCE3 1 + angle_coeff @angle:o-p4-s4 harmonic 54.866 112.190 # SOURCE3 1 + angle_coeff @angle:o-p4-s6 harmonic 54.029 113.890 # SOURCE3 1 + angle_coeff @angle:o-p4-s harmonic 57.277 112.780 # SOURCE3 2 + angle_coeff @angle:o-p4-sh harmonic 56.730 118.090 # SOURCE3 1 + angle_coeff @angle:os-p4-os harmonic 83.473 100.340 # SOURCE3 1 + angle_coeff @angle:o-p4-ss harmonic 57.476 116.140 # SOURCE3 4 1.0636 + angle_coeff @angle:p2-p4-p2 harmonic 73.236 110.710 # SOURCE3 1 + angle_coeff @angle:p3-p4-p3 harmonic 70.664 114.980 # SOURCE3 1 + angle_coeff @angle:p4-p4-p4 harmonic 79.664 107.380 # SOURCE3 1 + angle_coeff @angle:p5-p4-p5 harmonic 72.301 107.780 # SOURCE3 1 + angle_coeff @angle:s4-p4-s4 harmonic 46.168 96.240 # SOURCE3 1 + angle_coeff @angle:s6-p4-s6 harmonic 44.412 102.360 # SOURCE3 1 + angle_coeff @angle:sh-p4-sh harmonic 48.494 98.810 # SOURCE3 1 + angle_coeff @angle:s-p4-s harmonic 46.079 106.300 # SOURCE3 2 25.0119 + angle_coeff @angle:ss-p4-ss harmonic 47.422 104.410 # SOURCE3 1 + angle_coeff @angle:br-p5-br harmonic 51.952 103.380 # SOURCE3 1 + angle_coeff @angle:br-p5-o harmonic 59.322 114.650 # SOURCE3 3 1.0910 + angle_coeff @angle:br-p5-oh harmonic 62.204 102.920 # SOURCE3 4 0.5468 + angle_coeff @angle:c1-p5-c1 harmonic 49.058 102.890 # SOURCE3 1 + angle_coeff @angle:c1-p5-o harmonic 61.836 115.770 # SOURCE3 2 + angle_coeff @angle:c1-p5-oh harmonic 63.769 102.790 # SOURCE3 2 + angle_coeff @angle:c2-p5-c2 harmonic 45.370 106.560 # SOURCE3 1 + angle_coeff @angle:c2-p5-o harmonic 60.781 109.520 # SOURCE4_SOURCE5 15 2.0293 + angle_coeff @angle:c2-p5-oh harmonic 61.672 101.690 # SOURCE3 1 + angle_coeff @angle:c2-p5-os harmonic 63.109 97.120 # SOURCE3_SOURCE5 6 0.9178 + angle_coeff @angle:c3-p5-c3 harmonic 46.061 106.000 # SOURCE3_SOURCE5 107 1.6965 + angle_coeff @angle:c3-p5-hp harmonic 33.063 103.260 # SOURCE4_SOURCE5 20 1.3795 + angle_coeff @angle:c3-p5-n3 harmonic 60.649 104.400 # SOURCE3_SOURCE5 10 1.8148 + angle_coeff @angle:c3-p5-o harmonic 60.550 112.500 # SOURCE3 23 4.4203 + angle_coeff @angle:c3-p5-oh harmonic 61.886 102.690 # SOURCE3_SOURCE5 389 1.5370 + angle_coeff @angle:c3-p5-os harmonic 62.476 100.770 # SOURCE4 51 2.0928 + angle_coeff @angle:c3-p5-p4 harmonic 56.514 106.270 # SOURCE3 1 + angle_coeff @angle:c3-p5-s harmonic 46.672 114.400 # SOURCE3_SOURCE5 36 1.0844 + angle_coeff @angle:c3-p5-ss harmonic 45.854 105.940 # SOURCE3_SOURCE5 24 1.6358 + angle_coeff @angle:ca-p5-ca harmonic 46.780 107.900 # SOURCE3_SOURCE5 5 0.5519 + angle_coeff @angle:ca-p5-o harmonic 61.263 113.980 # SOURCE3 1 + angle_coeff @angle:ca-p5-oh harmonic 63.154 101.770 # SOURCE3 1 + angle_coeff @angle:ca-p5-os harmonic 62.551 103.750 # SOURCE3 1 + angle_coeff @angle:c-p5-c harmonic 45.421 104.160 # SOURCE3 1 + angle_coeff @angle:cl-p5-cl harmonic 62.172 103.700 # SOURCE2 1 + angle_coeff @angle:cl-p5-o harmonic 68.012 112.650 # SOURCE3_SOURCE5 7 1.0635 + angle_coeff @angle:cl-p5-oh harmonic 70.253 102.440 # SOURCE3 2 + angle_coeff @angle:c-p5-o harmonic 60.972 107.100 # SOURCE4_SOURCE5 37 0.4646 + angle_coeff @angle:c-p5-oh harmonic 61.112 102.120 # SOURCE3 1 + angle_coeff @angle:f-p5-f harmonic 92.407 92.220 # SOURCE2_SOURCE5 19 1.3661 + angle_coeff @angle:f-p5-o harmonic 85.135 112.070 # SOURCE4_SOURCE5 15 0.5195 + angle_coeff @angle:f-p5-oh harmonic 85.837 101.980 # SOURCE3 2 + angle_coeff @angle:f-p5-os harmonic 85.720 102.270 # SOURCE4_SOURCE5 16 1.0230 + angle_coeff @angle:f-p5-s harmonic 61.598 117.400 # SOURCE2 1 + angle_coeff @angle:hp-p5-hp harmonic 25.816 100.550 # SOURCE3_SOURCE5 11 0.5508 + angle_coeff @angle:hp-p5-n1 harmonic 46.858 101.320 # HF/6-31G* 1 + angle_coeff @angle:hp-p5-o harmonic 45.433 115.080 # SOURCE3_SOURCE5 27 1.7749 + angle_coeff @angle:hp-p5-oh harmonic 45.976 101.570 # SOURCE3_SOURCE5 16 1.3736 + angle_coeff @angle:hp-p5-s harmonic 31.882 119.200 # SOURCE2 1 + angle_coeff @angle:i-p5-i harmonic 48.013 107.170 # SOURCE3 1 + angle_coeff @angle:i-p5-o harmonic 52.148 115.930 # SOURCE3 3 0.0415 + angle_coeff @angle:i-p5-oh harmonic 55.980 102.260 # SOURCE3 4 1.9577 + angle_coeff @angle:n1-p5-n1 harmonic 86.407 101.550 # HF/6-31G* 1 + angle_coeff @angle:n1-p5-o harmonic 83.757 113.780 # HF/6-31G* 1 + angle_coeff @angle:n2-p5-n2 harmonic 82.960 106.340 # SOURCE3 1 + angle_coeff @angle:n2-p5-o harmonic 82.994 113.530 # SOURCE3 1 + angle_coeff @angle:n2-p5-oh harmonic 84.118 102.400 # SOURCE3 1 + angle_coeff @angle:n3-p5-n3 harmonic 80.585 103.370 # SOURCE4 47 2.1009 + angle_coeff @angle:n3-p5-nh harmonic 80.369 103.840 # SOURCE4_SOURCE5 11 1.8670 + angle_coeff @angle:n3-p5-o harmonic 80.416 114.640 # SOURCE4 76 2.2728 + angle_coeff @angle:n3-p5-oh harmonic 81.248 104.990 # SOURCE3_SOURCE5 18 0.6974 + angle_coeff @angle:n3-p5-os harmonic 82.342 102.230 # SOURCE4_SOURCE5 90 2.1717 + angle_coeff @angle:n3-p5-s harmonic 60.056 116.560 # SOURCE4_SOURCE5 28 0.9342 + angle_coeff @angle:n4-p5-n4 harmonic 73.942 102.200 # SOURCE3 1 + angle_coeff @angle:n4-p5-o harmonic 77.060 109.780 # SOURCE3 5 2.7519 + angle_coeff @angle:n4-p5-oh harmonic 79.407 98.480 # SOURCE3 6 0.4104 + angle_coeff @angle:n4-p5-os harmonic 81.044 94.550 # SOURCE3 2 + angle_coeff @angle:na-p5-na harmonic 76.550 108.570 # SOURCE3 1 + angle_coeff @angle:na-p5-o harmonic 79.422 113.430 # SOURCE3 11 0.8968 + angle_coeff @angle:na-p5-oh harmonic 81.176 102.070 # SOURCE3 16 1.4144 + angle_coeff @angle:na-p5-os harmonic 80.790 103.060 # SOURCE3 4 0.7463 + angle_coeff @angle:nh-p5-nh harmonic 82.064 99.510 # SOURCE3 1 + angle_coeff @angle:nh-p5-o harmonic 80.296 114.860 # SOURCE3_SOURCE5 11 1.6006 + angle_coeff @angle:nh-p5-oh harmonic 82.027 102.910 # SOURCE3_SOURCE5 6 0.9034 + angle_coeff @angle:nh-p5-os harmonic 81.134 105.200 # SOURCE3_SOURCE5 6 2.0688 + angle_coeff @angle:n-p5-n3 harmonic 79.065 104.310 # SOURCE4_SOURCE5 28 1.2397 + angle_coeff @angle:n-p5-n harmonic 78.462 103.090 # SOURCE3 1 + angle_coeff @angle:n-p5-o harmonic 79.797 112.180 # SOURCE4_SOURCE5 14 1.5068 + angle_coeff @angle:n-p5-oh harmonic 80.973 102.440 # SOURCE3 4 0.0999 + angle_coeff @angle:no-p5-no harmonic 76.253 95.680 # SOURCE3 1 + angle_coeff @angle:no-p5-o harmonic 75.912 112.750 # SOURCE3 4 3.3684 + angle_coeff @angle:no-p5-oh harmonic 78.162 101.350 # SOURCE3 2 + angle_coeff @angle:no-p5-os harmonic 78.031 101.700 # SOURCE3 4 0.0565 + angle_coeff @angle:n-p5-os harmonic 81.763 100.480 # SOURCE3 2 + angle_coeff @angle:oh-p5-oh harmonic 83.590 102.690 # SOURCE3_SOURCE5 359 1.1644 + angle_coeff @angle:oh-p5-os harmonic 83.902 101.940 # SOURCE3_SOURCE5 591 1.1251 + angle_coeff @angle:oh-p5-p2 harmonic 75.094 103.530 # SOURCE3 1 + angle_coeff @angle:oh-p5-p3 harmonic 74.007 103.830 # SOURCE3 13 0.4303 + angle_coeff @angle:oh-p5-p4 harmonic 74.032 101.790 # SOURCE3 1 + angle_coeff @angle:oh-p5-p5 harmonic 80.103 100.450 # SOURCE3 1 + angle_coeff @angle:oh-p5-s4 harmonic 61.903 103.240 # SOURCE3 1 + angle_coeff @angle:oh-p5-s6 harmonic 62.438 101.480 # SOURCE3 1 + angle_coeff @angle:oh-p5-s harmonic 62.070 111.300 # SOURCE3_SOURCE5 8 1.1112 + angle_coeff @angle:oh-p5-sh harmonic 61.449 101.410 # SOURCE3 2 + angle_coeff @angle:oh-p5-ss harmonic 59.814 104.090 # SOURCE3_SOURCE5 23 1.4682 + angle_coeff @angle:o-p5-o harmonic 85.510 115.800 # SOURCE3 17 5.7902 + angle_coeff @angle:o-p5-oh harmonic 81.901 115.210 # SOURCE4_SOURCE5 1716 1.3221 + angle_coeff @angle:o-p5-os harmonic 81.819 115.460 # SOURCE3_SOURCE5 843 2.3835 + angle_coeff @angle:o-p5-p2 harmonic 71.892 114.600 # SOURCE3 1 + angle_coeff @angle:o-p5-p3 harmonic 70.584 115.480 # SOURCE3 9 2.1084 + angle_coeff @angle:o-p5-p4 harmonic 70.090 114.660 # SOURCE3 1 + angle_coeff @angle:o-p5-p5 harmonic 76.354 113.440 # SOURCE3 1 + angle_coeff @angle:o-p5-s4 harmonic 60.725 110.230 # SOURCE3 1 + angle_coeff @angle:o-p5-s6 harmonic 60.311 111.750 # SOURCE3 1 + angle_coeff @angle:o-p5-s harmonic 61.702 116.940 # SOURCE3 3 2.9506 + angle_coeff @angle:o-p5-sh harmonic 58.488 114.560 # SOURCE3 3 1.7645 + angle_coeff @angle:os-p5-os harmonic 83.949 101.840 # SOURCE4_SOURCE5 608 1.9896 + angle_coeff @angle:os-p5-p3 harmonic 74.065 103.670 # SOURCE3 2 + angle_coeff @angle:os-p5-p5 harmonic 78.545 104.480 # SOURCE3 1 + angle_coeff @angle:os-p5-s4 harmonic 62.122 102.520 # SOURCE3 1 + angle_coeff @angle:os-p5-s6 harmonic 62.313 101.890 # SOURCE3 1 + angle_coeff @angle:o-p5-ss harmonic 57.641 114.340 # SOURCE3_SOURCE5 37 1.7416 + angle_coeff @angle:os-p5-s harmonic 60.508 117.130 # SOURCE4_SOURCE5 200 0.8203 + angle_coeff @angle:os-p5-sh harmonic 61.258 102.050 # SOURCE3_SOURCE5 7 0.5915 + angle_coeff @angle:os-p5-ss harmonic 60.283 102.480 # SOURCE4_SOURCE5 70 1.4633 + angle_coeff @angle:p2-p5-p2 harmonic 74.412 107.140 # SOURCE3 1 + angle_coeff @angle:p3-p5-p3 harmonic 73.965 105.230 # SOURCE3 3 5.1024 + angle_coeff @angle:p4-p5-p4 harmonic 74.460 101.620 # SOURCE3 1 + angle_coeff @angle:p5-p5-p5 harmonic 76.997 112.720 # SOURCE3 1 + angle_coeff @angle:s6-p5-s6 harmonic 48.731 105.180 # SOURCE3 1 + angle_coeff @angle:sh-p5-sh harmonic 47.889 104.560 # SOURCE3 1 + angle_coeff @angle:sh-p5-ss harmonic 46.903 107.130 # SOURCE3 1 + angle_coeff @angle:s-p5-s harmonic 49.342 114.130 # SOURCE3 1 + angle_coeff @angle:ss-p5-ss harmonic 45.986 109.610 # SOURCE3 1 + angle_coeff @angle:cd-pc-n harmonic 66.016 90.800 # SOURCE3 3 2.3423 + angle_coeff @angle:cd-pc-na harmonic 66.396 90.180 # SOURCE3 81 2.7619 + angle_coeff @angle:cc-pd-n harmonic 66.016 90.800 # SOURCE3 3 + angle_coeff @angle:cc-pd-na harmonic 66.396 90.180 # SOURCE3 81 + angle_coeff @angle:c2-pe-ca harmonic 49.088 101.440 # SOURCE3 3 0.7177 + angle_coeff @angle:c2-pe-ce harmonic 48.888 103.010 # SOURCE3 4 1.4470 + angle_coeff @angle:c2-pe-cg harmonic 51.641 104.030 # SOURCE3 3 3.8740 + angle_coeff @angle:c2-pe-n2 harmonic 69.448 94.140 # SOURCE3 1 + angle_coeff @angle:c2-pe-ne harmonic 64.662 98.700 # SOURCE3 12 5.3383 + angle_coeff @angle:c2-pe-o harmonic 63.086 115.160 # SOURCE3 2 0.0149 + angle_coeff @angle:c2-pe-p2 harmonic 65.232 107.820 # SOURCE3 1 + angle_coeff @angle:c2-pe-pe harmonic 61.668 102.990 # SOURCE3 9 8.2860 + angle_coeff @angle:c2-pe-px harmonic 65.444 97.370 # SOURCE3 4 0.6655 + angle_coeff @angle:c2-pe-py harmonic 65.200 96.710 # SOURCE3 4 1.2755 + angle_coeff @angle:c2-pe-s harmonic 51.862 111.160 # SOURCE3 2 + angle_coeff @angle:c2-pe-sx harmonic 48.622 95.110 # SOURCE3 4 0.2676 + angle_coeff @angle:c2-pe-sy harmonic 47.698 95.560 # SOURCE3 2 0.0462 + angle_coeff @angle:ca-pe-n2 harmonic 63.263 102.030 # SOURCE3 1 + angle_coeff @angle:ca-pe-o harmonic 62.025 106.880 # SOURCE3 2 0.0018 + angle_coeff @angle:ca-pe-p2 harmonic 65.219 100.790 # SOURCE3 1 + angle_coeff @angle:ca-pe-pf harmonic 61.993 99.700 # SOURCE3 2 + angle_coeff @angle:ca-pe-s harmonic 50.574 107.930 # SOURCE3 1 + angle_coeff @angle:c-pe-c2 harmonic 48.762 97.300 # SOURCE3 3 0.0335 + angle_coeff @angle:ce-pe-n2 harmonic 64.000 100.550 # SOURCE3 1 + angle_coeff @angle:ce-pe-o harmonic 62.134 107.440 # SOURCE3 1 + angle_coeff @angle:ce-pe-p2 harmonic 65.808 99.560 # SOURCE3 1 + angle_coeff @angle:ce-pe-s harmonic 51.312 105.540 # SOURCE3 1 + angle_coeff @angle:cg-pe-n2 harmonic 68.416 101.790 # SOURCE3 1 + angle_coeff @angle:cg-pe-o harmonic 66.891 107.620 # SOURCE3 1 + angle_coeff @angle:cg-pe-p2 harmonic 67.155 104.680 # SOURCE3 2 5.1435 + angle_coeff @angle:cg-pe-s harmonic 53.387 108.600 # SOURCE3 4 2.6981 + angle_coeff @angle:n2-pe-n2 harmonic 85.418 108.140 # SOURCE3 1 + angle_coeff @angle:n2-pe-ne harmonic 80.952 106.800 # SOURCE3 6 4.5981 + angle_coeff @angle:n2-pe-o harmonic 83.198 115.390 # SOURCE3 1 + angle_coeff @angle:n2-pe-p2 harmonic 82.679 111.600 # SOURCE3 1 + angle_coeff @angle:n2-pe-pe harmonic 76.187 109.400 # SOURCE3 1 + angle_coeff @angle:n2-pe-px harmonic 78.660 110.300 # SOURCE3 3 6.0548 + angle_coeff @angle:n2-pe-py harmonic 84.653 93.680 # SOURCE3 1 + angle_coeff @angle:n2-pe-s harmonic 66.247 114.840 # SOURCE3 3 3.6512 + angle_coeff @angle:n2-pe-sx harmonic 60.809 97.830 # SOURCE3 1 + angle_coeff @angle:n2-pe-sy harmonic 59.570 98.140 # SOURCE3 1 + angle_coeff @angle:ne-pe-o harmonic 80.037 110.240 # SOURCE3 3 3.8478 + angle_coeff @angle:ne-pe-p2 harmonic 82.546 104.480 # SOURCE3 2 7.1207 + angle_coeff @angle:ne-pe-s harmonic 65.116 109.190 # SOURCE3 5 3.6708 + angle_coeff @angle:o-pe-o harmonic 82.114 119.960 # SOURCE3 1 + angle_coeff @angle:o-pe-p2 harmonic 81.980 114.230 # SOURCE3 1 + angle_coeff @angle:o-pe-pe harmonic 66.057 145.960 # SOURCE3 1 + angle_coeff @angle:o-pe-px harmonic 81.034 104.370 # SOURCE3 1 + angle_coeff @angle:o-pe-py harmonic 80.312 104.490 # SOURCE3 1 + angle_coeff @angle:o-pe-s harmonic 65.783 117.420 # SOURCE3 2 0.0426 + angle_coeff @angle:o-pe-sx harmonic 58.314 106.590 # SOURCE3 1 + angle_coeff @angle:o-pe-sy harmonic 57.621 105.040 # SOURCE3 1 + angle_coeff @angle:p2-pe-pe harmonic 85.030 98.240 # SOURCE3 1 + angle_coeff @angle:p2-pe-px harmonic 83.137 108.280 # SOURCE3 2 6.2959 + angle_coeff @angle:p2-pe-py harmonic 81.676 110.870 # SOURCE3 3 8.1645 + angle_coeff @angle:p2-pe-s harmonic 68.307 111.280 # SOURCE3 1 + angle_coeff @angle:p2-pe-sx harmonic 65.549 95.730 # SOURCE3 1 + angle_coeff @angle:p2-pe-sy harmonic 64.541 95.950 # SOURCE3 1 + angle_coeff @angle:pe-pe-s harmonic 64.452 107.910 # SOURCE3 2 1.5577 + angle_coeff @angle:px-pe-s harmonic 66.458 107.620 # SOURCE3 2 3.7266 + angle_coeff @angle:py-pe-s harmonic 65.679 108.730 # SOURCE3 3 5.3201 + angle_coeff @angle:s-pe-s harmonic 43.414 178.440 # SOURCE3 1 + angle_coeff @angle:s-pe-sx harmonic 48.826 108.320 # SOURCE3 2 3.0318 + angle_coeff @angle:s-pe-sy harmonic 48.370 106.930 # SOURCE3 1 + angle_coeff @angle:c2-pf-ca harmonic 49.088 101.440 # SOURCE3 3 + angle_coeff @angle:c2-pf-cf harmonic 48.888 103.010 # SOURCE3 4 + angle_coeff @angle:c2-pf-ch harmonic 51.641 104.030 # SOURCE3 3 + angle_coeff @angle:c2-pf-n2 harmonic 69.448 94.140 # SOURCE3 1 + angle_coeff @angle:c2-pf-nf harmonic 64.662 98.700 # SOURCE3 12 + angle_coeff @angle:c2-pf-o harmonic 63.086 115.160 # SOURCE3 2 + angle_coeff @angle:c2-pf-p2 harmonic 65.232 107.820 # SOURCE3 1 + angle_coeff @angle:c2-pf-pf harmonic 61.668 102.990 # SOURCE3 9 + angle_coeff @angle:c2-pf-px harmonic 65.444 97.370 # SOURCE3 4 + angle_coeff @angle:c2-pf-py harmonic 65.200 96.710 # SOURCE3 4 + angle_coeff @angle:c2-pf-s harmonic 51.862 111.160 # SOURCE3 2 + angle_coeff @angle:c2-pf-sx harmonic 48.622 95.110 # SOURCE3 4 + angle_coeff @angle:c2-pf-sy harmonic 47.698 95.560 # SOURCE3 2 + angle_coeff @angle:ca-pf-n2 harmonic 63.263 102.030 # SOURCE3 1 + angle_coeff @angle:ca-pf-o harmonic 62.025 106.880 # SOURCE3 2 + angle_coeff @angle:ca-pf-p2 harmonic 65.219 100.790 # SOURCE3 1 + angle_coeff @angle:ca-pf-pe harmonic 61.993 99.700 # SOURCE3 2 + angle_coeff @angle:ca-pf-s harmonic 50.574 107.930 # SOURCE3 1 + angle_coeff @angle:c-pf-c2 harmonic 48.762 97.300 # SOURCE3 3 + angle_coeff @angle:cf-pf-n2 harmonic 64.000 100.550 # SOURCE3 1 + angle_coeff @angle:cf-pf-o harmonic 62.134 107.440 # SOURCE3 1 + angle_coeff @angle:cf-pf-p2 harmonic 65.808 99.560 # SOURCE3 1 + angle_coeff @angle:cf-pf-s harmonic 51.312 105.540 # SOURCE3 1 + angle_coeff @angle:ch-pf-n2 harmonic 68.416 101.790 # SOURCE3 1 + angle_coeff @angle:ch-pf-o harmonic 66.891 107.620 # SOURCE3 1 + angle_coeff @angle:ch-pf-p2 harmonic 67.155 104.680 # SOURCE3 2 + angle_coeff @angle:ch-pf-s harmonic 53.387 108.600 # SOURCE3 4 + angle_coeff @angle:n2-pf-n2 harmonic 85.418 108.140 # SOURCE3 1 + angle_coeff @angle:n2-pf-nf harmonic 80.952 106.800 # SOURCE3 6 + angle_coeff @angle:n2-pf-o harmonic 83.198 115.390 # SOURCE3 1 + angle_coeff @angle:n2-pf-p2 harmonic 82.679 111.600 # SOURCE3 1 + angle_coeff @angle:n2-pf-pf harmonic 76.187 109.400 # SOURCE3 1 + angle_coeff @angle:n2-pf-px harmonic 78.660 110.300 # SOURCE3 3 + angle_coeff @angle:n2-pf-py harmonic 84.653 93.680 # SOURCE3 1 + angle_coeff @angle:n2-pf-s harmonic 66.247 114.840 # SOURCE3 3 + angle_coeff @angle:n2-pf-sx harmonic 60.809 97.830 # SOURCE3 1 + angle_coeff @angle:n2-pf-sy harmonic 59.570 98.140 # SOURCE3 1 + angle_coeff @angle:nf-pf-o harmonic 80.037 110.240 # SOURCE3 3 + angle_coeff @angle:nf-pf-p2 harmonic 82.546 104.480 # SOURCE3 2 + angle_coeff @angle:nf-pf-s harmonic 65.116 109.190 # SOURCE3 5 + angle_coeff @angle:o-pf-o harmonic 82.114 119.960 # SOURCE3 1 + angle_coeff @angle:o-pf-p2 harmonic 81.980 114.230 # SOURCE3 1 + angle_coeff @angle:o-pf-pf harmonic 66.057 145.960 # SOURCE3 1 + angle_coeff @angle:o-pf-px harmonic 81.034 104.370 # SOURCE3 1 + angle_coeff @angle:o-pf-py harmonic 80.312 104.490 # SOURCE3 1 + angle_coeff @angle:o-pf-s harmonic 65.783 117.420 # SOURCE3 2 + angle_coeff @angle:o-pf-sx harmonic 58.314 106.590 # SOURCE3 1 + angle_coeff @angle:o-pf-sy harmonic 57.621 105.040 # SOURCE3 1 + angle_coeff @angle:p2-pf-pf harmonic 85.030 98.240 # SOURCE3 1 + angle_coeff @angle:p2-pf-px harmonic 83.137 108.280 # SOURCE3 2 + angle_coeff @angle:p2-pf-py harmonic 81.676 110.870 # SOURCE3 3 + angle_coeff @angle:p2-pf-s harmonic 68.307 111.280 # SOURCE3 1 + angle_coeff @angle:p2-pf-sx harmonic 65.549 95.730 # SOURCE3 1 + angle_coeff @angle:p2-pf-sy harmonic 64.541 95.950 # SOURCE3 1 + angle_coeff @angle:pf-pf-s harmonic 64.452 107.910 # SOURCE3 2 + angle_coeff @angle:px-pf-s harmonic 66.458 107.620 # SOURCE3 2 + angle_coeff @angle:py-pf-s harmonic 65.679 108.730 # SOURCE3 3 + angle_coeff @angle:s-pf-s harmonic 43.414 178.440 # SOURCE3 1 + angle_coeff @angle:s-pf-sx harmonic 48.826 108.320 # SOURCE3 2 + angle_coeff @angle:s-pf-sy harmonic 48.370 106.930 # SOURCE3 1 + angle_coeff @angle:c3-px-ca harmonic 46.648 104.790 # SOURCE3 1 + angle_coeff @angle:c3-px-ce harmonic 46.683 104.860 # SOURCE3 4 0.6354 + angle_coeff @angle:c3-px-cf harmonic 46.683 104.860 # SOURCE3 4 + angle_coeff @angle:c3-px-ne harmonic 60.976 102.460 # SOURCE3 7 1.8685 + angle_coeff @angle:c3-px-nf harmonic 60.976 102.460 # SOURCE3 7 + angle_coeff @angle:c3-px-o harmonic 60.307 113.790 # SOURCE3_SOURCE5 33 4.2352 + angle_coeff @angle:c3-px-pe harmonic 61.145 105.730 # SOURCE3 10 4.4059 + angle_coeff @angle:c3-px-pf harmonic 61.145 105.730 # SOURCE3 10 + angle_coeff @angle:c3-px-py harmonic 58.192 103.110 # SOURCE3 3 0.8680 + angle_coeff @angle:c3-px-sx harmonic 45.492 99.550 # SOURCE3 1 + angle_coeff @angle:c3-px-sy harmonic 44.530 103.410 # SOURCE3 1 + angle_coeff @angle:ca-px-ca harmonic 46.837 104.150 # SOURCE3 2 3.6168 + angle_coeff @angle:ca-px-o harmonic 62.137 107.500 # SOURCE3 5 5.7355 + angle_coeff @angle:c-px-c3 harmonic 46.307 101.720 # SOURCE3 1 + angle_coeff @angle:ce-px-ce harmonic 46.926 104.210 # SOURCE3 1 + angle_coeff @angle:ce-px-o harmonic 60.493 113.790 # SOURCE3 6 0.3877 + angle_coeff @angle:cf-px-cf harmonic 46.926 104.210 # SOURCE3 1 + angle_coeff @angle:cf-px-o harmonic 60.493 113.790 # SOURCE3 6 + angle_coeff @angle:c-px-o harmonic 58.294 114.470 # SOURCE3 1 + angle_coeff @angle:ne-px-ne harmonic 79.109 103.220 # SOURCE3 2 0.6807 + angle_coeff @angle:ne-px-o harmonic 79.281 114.130 # SOURCE3 11 8.9737 + angle_coeff @angle:nf-px-nf harmonic 79.109 103.220 # SOURCE3 2 + angle_coeff @angle:nf-px-o harmonic 79.281 114.130 # SOURCE3 11 + angle_coeff @angle:o-px-pe harmonic 76.837 116.500 # SOURCE3 12 8.2925 + angle_coeff @angle:o-px-pf harmonic 76.837 116.500 # SOURCE3 12 + angle_coeff @angle:o-px-py harmonic 71.388 114.200 # SOURCE3 5 1.7165 + angle_coeff @angle:o-px-sx harmonic 54.930 112.810 # SOURCE3 3 0.8799 + angle_coeff @angle:o-px-sy harmonic 54.586 113.540 # SOURCE3 3 0.5010 + angle_coeff @angle:pe-px-pe harmonic 79.592 110.710 # SOURCE3 1 + angle_coeff @angle:pf-px-pf harmonic 79.592 110.710 # SOURCE3 1 + angle_coeff @angle:py-px-py harmonic 73.550 107.780 # SOURCE3 1 + angle_coeff @angle:sx-px-sx harmonic 46.354 96.240 # SOURCE3 1 + angle_coeff @angle:sy-px-sy harmonic 44.807 102.360 # SOURCE3 1 + angle_coeff @angle:c3-py-n4 harmonic 57.271 103.830 # SOURCE3 4 + angle_coeff @angle:c3-py-na harmonic 59.344 106.890 # SOURCE3 2 + angle_coeff @angle:c3-py-o harmonic 59.442 116.680 # SOURCE3_SOURCE5 22 1.9051 + angle_coeff @angle:c3-py-oh harmonic 62.641 100.160 # SOURCE3 2 + angle_coeff @angle:c3-py-os harmonic 61.038 105.390 # SOURCE3 1 + angle_coeff @angle:c3-py-px harmonic 57.225 106.270 # SOURCE3 2 + angle_coeff @angle:c3-py-py harmonic 56.530 109.830 # SOURCE3_SOURCE5 16 1.4525 + angle_coeff @angle:c3-py-sx harmonic 43.696 106.360 # SOURCE3 4 + angle_coeff @angle:ca-py-ca harmonic 46.314 107.550 # SOURCE3 1 + angle_coeff @angle:ca-py-o harmonic 60.635 114.330 # SOURCE3_SOURCE5 20 1.3895 + angle_coeff @angle:ca-py-oh harmonic 62.332 102.870 # SOURCE4_SOURCE5 16 1.4519 + angle_coeff @angle:ca-py-os harmonic 62.763 101.360 # SOURCE3_SOURCE5 12 1.6676 + angle_coeff @angle:c-py-c3 harmonic 44.799 110.360 # SOURCE3 1 + angle_coeff @angle:c-py-c harmonic 45.772 104.200 # SOURCE3 1 + angle_coeff @angle:ce-py-ce harmonic 46.806 106.540 # SOURCE3 1 + angle_coeff @angle:ce-py-o harmonic 60.977 114.040 # SOURCE3_SOURCE5 17 2.0725 + angle_coeff @angle:ce-py-oh harmonic 61.997 104.770 # SOURCE3 6 2.1852 + angle_coeff @angle:ce-py-os harmonic 61.932 104.880 # SOURCE3_SOURCE5 7 1.2571 + angle_coeff @angle:cf-py-cf harmonic 46.806 106.540 # SOURCE3 1 + angle_coeff @angle:cf-py-o harmonic 60.977 114.040 # SOURCE3_SOURCE5 12 1.5779 + angle_coeff @angle:cf-py-oh harmonic 61.997 104.770 # SOURCE3 6 + angle_coeff @angle:cf-py-os harmonic 61.932 104.880 # SOURCE3_SOURCE5 7 1.2571 + angle_coeff @angle:c-py-o harmonic 59.457 114.000 # SOURCE3_SOURCE5 17 1.4765 + angle_coeff @angle:c-py-oh harmonic 61.100 103.220 # SOURCE3_SOURCE5 16 1.4543 + angle_coeff @angle:c-py-os harmonic 62.044 100.010 # SOURCE3_SOURCE5 14 3.2269 + angle_coeff @angle:n3-py-ne harmonic 79.409 108.760 # SOURCE4_SOURCE5 30 1.0660 + angle_coeff @angle:n4-py-o harmonic 72.867 115.580 # SOURCE3 4 + angle_coeff @angle:n4-py-py harmonic 98.929 55.100 # SOURCE3 4 + angle_coeff @angle:na-py-o harmonic 76.532 122.400 # SOURCE3 2 + angle_coeff @angle:na-py-py harmonic 105.838 50.880 # SOURCE3 2 + angle_coeff @angle:ne-py-ne harmonic 78.402 118.190 # SOURCE3_SOURCE5 35 1.2083 + angle_coeff @angle:ne-py-o harmonic 82.910 113.210 # SOURCE3 15 3.8894 + angle_coeff @angle:ne-py-oh harmonic 83.005 104.700 # SOURCE3 26 2.7513 + angle_coeff @angle:ne-py-os harmonic 81.559 108.290 # SOURCE3_SOURCE5 23 1.6881 + angle_coeff @angle:nf-py-nf harmonic 78.402 118.190 # SOURCE3_SOURCE5 35 1.2083 + angle_coeff @angle:nf-py-o harmonic 82.910 113.210 # SOURCE3 15 + angle_coeff @angle:nf-py-oh harmonic 83.005 104.700 # SOURCE3 26 + angle_coeff @angle:nf-py-os harmonic 81.559 108.290 # SOURCE3_SOURCE5 23 1.6881 + angle_coeff @angle:oh-py-oh harmonic 83.937 101.680 # SOURCE3_SOURCE5 49 1.9218 + angle_coeff @angle:oh-py-pe harmonic 79.277 104.840 # SOURCE3 22 2.0337 + angle_coeff @angle:oh-py-pf harmonic 79.277 104.840 # SOURCE3 22 + angle_coeff @angle:oh-py-px harmonic 74.246 104.300 # SOURCE3 8 1.2772 + angle_coeff @angle:oh-py-py harmonic 76.047 100.450 # SOURCE3 6 + angle_coeff @angle:oh-py-sx harmonic 57.417 100.940 # SOURCE3 4 + angle_coeff @angle:oh-py-sy harmonic 59.053 101.470 # SOURCE3 6 0.2490 + angle_coeff @angle:o-py-oh harmonic 81.623 115.830 # SOURCE3_SOURCE5 105 1.8918 + angle_coeff @angle:o-py-os harmonic 81.496 115.990 # SOURCE3_SOURCE5 47 1.2146 + angle_coeff @angle:o-py-pe harmonic 76.936 114.560 # SOURCE3 12 3.6114 + angle_coeff @angle:o-py-pf harmonic 76.936 114.560 # SOURCE3 12 + angle_coeff @angle:o-py-px harmonic 72.318 111.370 # SOURCE3 5 0.3803 + angle_coeff @angle:o-py-py harmonic 69.944 120.430 # SOURCE3 16 6.0629 + angle_coeff @angle:os-py-os harmonic 83.760 101.820 # SOURCE3_SOURCE5 27 1.5502 + angle_coeff @angle:os-py-py harmonic 74.513 104.590 # SOURCE3_SOURCE5 5 0.4023 + angle_coeff @angle:os-py-sx harmonic 56.596 103.860 # SOURCE3 2 + angle_coeff @angle:os-py-sy harmonic 58.853 102.120 # SOURCE3 2 + angle_coeff @angle:o-py-sx harmonic 53.190 118.560 # SOURCE3 7 6.2976 + angle_coeff @angle:o-py-sy harmonic 56.689 111.710 # SOURCE3 5 1.1937 + angle_coeff @angle:pe-py-pe harmonic 80.108 107.140 # SOURCE3 1 + angle_coeff @angle:pf-py-pf harmonic 80.108 107.140 # SOURCE3 1 + angle_coeff @angle:py-py-py harmonic 72.354 112.700 # SOURCE3 1 + angle_coeff @angle:py-py-sx harmonic 75.004 61.540 # SOURCE3 4 + angle_coeff @angle:sy-py-sy harmonic 45.561 105.170 # SOURCE3 1 + angle_coeff @angle:c1-s2-o harmonic 94.269 117.250 # SOURCE3 1 + angle_coeff @angle:c2-s2-n2 harmonic 98.098 110.840 # SOURCE3 1 + angle_coeff @angle:c2-s2-o harmonic 94.864 114.700 # SOURCE2 1 + angle_coeff @angle:cl-s2-n1 harmonic 92.974 117.700 # SOURCE2 1 + angle_coeff @angle:f-s2-n1 harmonic 122.911 116.900 # SOURCE2 1 + angle_coeff @angle:n1-s2-o harmonic 127.997 108.460 # HF/6-31G* 1 + angle_coeff @angle:n2-s2-o harmonic 117.918 121.200 # SOURCE2 2 0.8000 + angle_coeff @angle:o-s2-o harmonic 118.448 116.170 # SOURCE3 1 + angle_coeff @angle:o-s2-s harmonic 91.358 118.300 # SOURCE2 1 + angle_coeff @angle:s-s2-s harmonic 74.776 115.040 # SOURCE3 1 + angle_coeff @angle:br-s4-br harmonic 74.689 98.020 # SOURCE3 1 + angle_coeff @angle:br-s4-c3 harmonic 72.437 92.980 # SOURCE3 1 + angle_coeff @angle:br-s4-o harmonic 84.014 112.070 # SOURCE3 1 + angle_coeff @angle:c1-s4-c1 harmonic 77.086 93.550 # SOURCE3 1 + angle_coeff @angle:c1-s4-o harmonic 94.436 110.360 # SOURCE3 2 + angle_coeff @angle:c2-s4-c2 harmonic 73.133 102.290 # SOURCE3 1 + angle_coeff @angle:c2-s4-c3 harmonic 74.359 94.950 # SOURCE3 1 + angle_coeff @angle:c2-s4-o harmonic 95.340 107.090 # SOURCE3 1 + angle_coeff @angle:c3-s4-c3 harmonic 72.538 96.120 # SOURCE3_SOURCE5 72 1.2506 + angle_coeff @angle:c3-s4-ca harmonic 73.801 95.000 # SOURCE3 1 + angle_coeff @angle:c3-s4-f harmonic 99.956 91.700 # SOURCE3 1 + angle_coeff @angle:c3-s4-hs harmonic 53.159 90.600 # SOURCE3 1 + angle_coeff @angle:c3-s4-i harmonic 64.204 90.530 # SOURCE3 1 + angle_coeff @angle:c3-s4-n2 harmonic 98.749 90.590 # SOURCE3 1 + angle_coeff @angle:c3-s4-n3 harmonic 92.849 95.770 # SOURCE3_SOURCE5 10 1.8721 + angle_coeff @angle:c3-s4-n harmonic 92.379 96.070 # SOURCE3 4 1.0354 + angle_coeff @angle:c3-s4-n4 harmonic 88.918 92.470 # SOURCE3 1 + angle_coeff @angle:c3-s4-na harmonic 93.247 93.070 # SOURCE3 10 1.8813 + angle_coeff @angle:c3-s4-nh harmonic 92.347 97.080 # SOURCE3 1 + angle_coeff @angle:c3-s4-no harmonic 89.712 89.530 # SOURCE3 1 + angle_coeff @angle:c3-s4-o harmonic 92.851 106.710 # SOURCE3_SOURCE5 233 1.1391 + angle_coeff @angle:c3-s4-oh harmonic 97.024 90.280 # SOURCE4_SOURCE5 21 0.2709 + angle_coeff @angle:c3-s4-os harmonic 97.226 90.060 # SOURCE3 4 0.4484 + angle_coeff @angle:c3-s4-p2 harmonic 91.018 94.370 # SOURCE3 1 + angle_coeff @angle:c3-s4-p3 harmonic 93.042 96.540 # SOURCE3 4 1.3634 + angle_coeff @angle:c3-s4-p4 harmonic 87.791 97.400 # SOURCE3 1 + angle_coeff @angle:c3-s4-p5 harmonic 93.163 99.180 # SOURCE3 1 + angle_coeff @angle:c3-s4-s4 harmonic 75.465 89.500 # SOURCE3 1 + angle_coeff @angle:c3-s4-s harmonic 71.946 98.720 # SOURCE3 2 0.0185 + angle_coeff @angle:c3-s4-s6 harmonic 72.311 97.480 # SOURCE3 1 + angle_coeff @angle:c3-s4-sh harmonic 71.328 94.660 # SOURCE3 1 + angle_coeff @angle:c3-s4-ss harmonic 71.131 95.310 # SOURCE3 3 1.4101 + angle_coeff @angle:ca-s4-ca harmonic 74.616 95.210 # SOURCE3 1 + angle_coeff @angle:ca-s4-o harmonic 94.489 106.630 # SOURCE3 1 + angle_coeff @angle:c-s4-c3 harmonic 72.142 95.070 # SOURCE3 1 + angle_coeff @angle:c-s4-c harmonic 74.707 86.830 # SOURCE3 1 + angle_coeff @angle:cl-s4-cl harmonic 92.643 97.680 # SOURCE3 1 + angle_coeff @angle:cl-s4-o harmonic 100.538 108.340 # SOURCE3 2 + angle_coeff @angle:c-s4-o harmonic 91.597 106.170 # SOURCE3 1 + angle_coeff @angle:cx-s4-cx harmonic 102.278 48.800 # SOURCE2 1 + angle_coeff @angle:cx-s4-o harmonic 91.767 110.000 # SOURCE2 1 + angle_coeff @angle:f-s4-f harmonic 137.119 92.710 # SOURCE2 3 0.1490 + angle_coeff @angle:f-s4-o harmonic 129.265 106.810 # SOURCE2 2 0.0100 + angle_coeff @angle:f-s4-s harmonic 90.806 107.500 # SOURCE2 1 + angle_coeff @angle:hs-s4-hs harmonic 42.707 87.000 # SOURCE3 2 0.0202 + angle_coeff @angle:hs-s4-n1 harmonic 72.280 90.510 # HF/6-31G* 1 + angle_coeff @angle:hs-s4-o harmonic 69.666 110.270 # SOURCE3 5 0.1908 + angle_coeff @angle:i-s4-i harmonic 68.021 97.290 # SOURCE3 1 + angle_coeff @angle:i-s4-o harmonic 69.889 113.910 # SOURCE3 1 + angle_coeff @angle:n1-s4-n1 harmonic 127.594 94.020 # HF/6-31G* 1 + angle_coeff @angle:n1-s4-o harmonic 122.838 110.090 # HF/6-31G* 1 + angle_coeff @angle:n2-s4-n2 harmonic 133.526 90.170 # SOURCE3 1 + angle_coeff @angle:n2-s4-o harmonic 126.113 107.570 # SOURCE3 1 + angle_coeff @angle:n3-s4-n3 harmonic 121.849 91.190 # SOURCE3 1 + angle_coeff @angle:n3-s4-o harmonic 117.831 110.430 # SOURCE3_SOURCE5 13 1.9165 + angle_coeff @angle:n4-s4-n4 harmonic 106.426 94.610 # SOURCE3 1 + angle_coeff @angle:n4-s4-o harmonic 110.589 104.910 # SOURCE3 3 0.4370 + angle_coeff @angle:na-s4-na harmonic 112.128 103.100 # SOURCE3 1 + angle_coeff @angle:na-s4-o harmonic 116.397 109.750 # SOURCE3 10 2.6919 + angle_coeff @angle:nh-s4-nh harmonic 121.527 92.240 # SOURCE3 1 + angle_coeff @angle:nh-s4-o harmonic 119.657 107.540 # SOURCE3 3 0.0401 + angle_coeff @angle:n-s4-n harmonic 120.832 91.300 # SOURCE3 1 + angle_coeff @angle:n-s4-o harmonic 118.814 107.440 # SOURCE3_SOURCE5 9 1.2433 + angle_coeff @angle:no-s4-no harmonic 111.990 83.400 # SOURCE3 1 + angle_coeff @angle:no-s4-o harmonic 110.173 103.580 # SOURCE3 3 1.5109 + angle_coeff @angle:oh-s4-oh harmonic 120.174 100.340 # SOURCE3 1 + angle_coeff @angle:o-s4-o harmonic 127.045 114.110 # SOURCE3_SOURCE5 14 2.6371 + angle_coeff @angle:o-s4-oh harmonic 120.725 110.100 # SOURCE4_SOURCE5 30 0.8834 + angle_coeff @angle:o-s4-os harmonic 121.937 108.220 # SOURCE3_SOURCE5 19 1.5128 + angle_coeff @angle:o-s4-p2 harmonic 110.606 106.770 # SOURCE3 1 + angle_coeff @angle:o-s4-p3 harmonic 115.784 106.510 # SOURCE3 8 4.0943 + angle_coeff @angle:o-s4-p4 harmonic 109.471 103.360 # SOURCE3 1 + angle_coeff @angle:o-s4-p5 harmonic 123.827 96.950 # SOURCE3 1 + angle_coeff @angle:o-s4-s4 harmonic 91.337 104.550 # SOURCE3 1 + angle_coeff @angle:o-s4-s harmonic 88.312 112.220 # SOURCE3 4 2.8682 + angle_coeff @angle:o-s4-s6 harmonic 92.094 102.840 # SOURCE3 1 + angle_coeff @angle:o-s4-sh harmonic 86.714 107.510 # SOURCE3 3 0.7511 + angle_coeff @angle:os-s4-os harmonic 124.379 94.070 # SOURCE3_SOURCE5 7 2.3843 + angle_coeff @angle:o-s4-ss harmonic 86.001 109.490 # SOURCE3 5 1.8509 + angle_coeff @angle:p2-s4-p2 harmonic 118.888 92.620 # SOURCE3 1 + angle_coeff @angle:p3-s4-p3 harmonic 122.725 95.710 # SOURCE3 2 1.2239 + angle_coeff @angle:p5-s4-p5 harmonic 126.784 93.860 # SOURCE3 1 + angle_coeff @angle:s4-s4-s4 harmonic 77.030 90.170 # SOURCE3 1 + angle_coeff @angle:s4-s4-s6 harmonic 77.030 90.170 # SOURCE3 1 + angle_coeff @angle:s6-s4-s6 harmonic 75.638 93.520 # SOURCE3 1 + angle_coeff @angle:sh-s4-sh harmonic 69.229 102.760 # SOURCE3 1 + angle_coeff @angle:sh-s4-ss harmonic 69.301 102.640 # SOURCE3 1 + angle_coeff @angle:s-s4-s harmonic 70.495 108.080 # SOURCE3 1 + angle_coeff @angle:ss-s4-ss harmonic 71.889 95.470 # SOURCE3 1 + angle_coeff @angle:br-s6-br harmonic 77.581 101.570 # SOURCE3 1 + angle_coeff @angle:br-s6-c3 harmonic 73.519 98.990 # SOURCE3 1 + angle_coeff @angle:br-s6-f harmonic 94.581 100.600 # SOURCE2 1 + angle_coeff @angle:br-s6-o harmonic 90.691 107.580 # SOURCE3 6 0.3000 + angle_coeff @angle:c1-s6-c1 harmonic 75.601 99.990 # SOURCE3 1 + angle_coeff @angle:c1-s6-o harmonic 97.406 107.980 # SOURCE3_SOURCE5 7 0.4450 + angle_coeff @angle:c2-s6-c2 harmonic 72.969 102.750 # SOURCE3 1 + angle_coeff @angle:c2-s6-c3 harmonic 71.521 104.050 # SOURCE3 1 + angle_coeff @angle:c2-s6-o harmonic 96.507 106.580 # SOURCE3 1 + angle_coeff @angle:c3-s6-c3 harmonic 70.681 103.830 # SOURCE3_SOURCE5 74 2.0698 + angle_coeff @angle:c3-s6-ca harmonic 71.693 103.170 # SOURCE3 1 + angle_coeff @angle:c3-s6-cy harmonic 73.114 94.680 # SOURCE4_SOURCE5 19 0.4776 + angle_coeff @angle:c3-s6-f harmonic 98.119 95.900 # SOURCE3_SOURCE5 9 2.4171 + angle_coeff @angle:c3-s6-hs harmonic 51.078 100.620 # SOURCE3 1 + angle_coeff @angle:c3-s6-i harmonic 61.761 97.740 # SOURCE3 1 + angle_coeff @angle:c3-s6-n2 harmonic 90.421 112.480 # SOURCE4_SOURCE5 27 1.7086 + angle_coeff @angle:c3-s6-n3 harmonic 92.504 101.970 # SOURCE4_SOURCE5 162 1.1030 + angle_coeff @angle:c3-s6-n harmonic 90.797 103.440 # SOURCE3_SOURCE5 15 0.8616 + angle_coeff @angle:c3-s6-n4 harmonic 87.728 99.400 # SOURCE3 3 0.4695 + angle_coeff @angle:c3-s6-na harmonic 90.979 102.810 # SOURCE3 10 3.1256 + angle_coeff @angle:c3-s6-nh harmonic 90.894 104.320 # SOURCE4_SOURCE5 92 1.5234 + angle_coeff @angle:c3-s6-no harmonic 86.016 99.570 # SOURCE3 1 + angle_coeff @angle:c3-s6-o harmonic 93.703 108.610 # SOURCE3_SOURCE5 1062 1.0758 + angle_coeff @angle:c3-s6-oh harmonic 94.842 98.740 # SOURCE4_SOURCE5 121 0.7363 + angle_coeff @angle:c3-s6-os harmonic 96.240 96.420 # SOURCE4_SOURCE5 70 0.5868 + angle_coeff @angle:c3-s6-p2 harmonic 86.273 106.470 # SOURCE3 1 + angle_coeff @angle:c3-s6-p3 harmonic 90.571 103.400 # SOURCE3 3 0.8516 + angle_coeff @angle:c3-s6-p4 harmonic 84.641 104.120 # SOURCE3 1 + angle_coeff @angle:c3-s6-p5 harmonic 91.629 103.460 # SOURCE3 1 + angle_coeff @angle:c3-s6-s4 harmonic 72.386 98.100 # SOURCE3 1 + angle_coeff @angle:c3-s6-s harmonic 71.088 104.500 # SOURCE3 1 + angle_coeff @angle:c3-s6-s6 harmonic 71.006 101.950 # SOURCE3 1 + angle_coeff @angle:c3-s6-sh harmonic 70.399 101.840 # SOURCE3 1 + angle_coeff @angle:c3-s6-ss harmonic 69.952 102.470 # SOURCE3 3 1.7451 + angle_coeff @angle:ca-s6-ca harmonic 72.567 103.080 # SOURCE3 1 + angle_coeff @angle:ca-s6-o harmonic 97.373 104.090 # SOURCE4_SOURCE5 137 0.5743 + angle_coeff @angle:c-s6-c3 harmonic 70.322 101.240 # SOURCE3 1 + angle_coeff @angle:c-s6-c harmonic 69.677 99.820 # SOURCE3 1 + angle_coeff @angle:cc-s6-o harmonic 95.603 103.760 # SOURCE4_SOURCE5 24 0.8201 + angle_coeff @angle:cl-s6-cl harmonic 90.995 101.250 # SOURCE3 1 + angle_coeff @angle:cl-s6-f harmonic 105.577 99.000 # SOURCE2 1 + angle_coeff @angle:cl-s6-o harmonic 101.239 107.520 # SOURCE3_SOURCE5 6 0.2106 + angle_coeff @angle:c-s6-o harmonic 91.492 107.970 # SOURCE3 1 + angle_coeff @angle:c-s6-os harmonic 91.455 102.120 # SOURCE3 1 + angle_coeff @angle:cx-s6-cx harmonic 101.683 54.700 # SOURCE2 1 + angle_coeff @angle:cy-s6-o harmonic 91.172 110.520 # SOURCE4_SOURCE5 71 0.9427 + angle_coeff @angle:f-s6-f harmonic 137.577 89.710 # SOURCE2_SOURCE5 22 1.8574 + angle_coeff @angle:f-s6-o harmonic 130.197 106.540 # SOURCE3_SOURCE5 7 0.0793 + angle_coeff @angle:hs-s6-hs harmonic 40.502 99.020 # SOURCE3 2 0.0595 + angle_coeff @angle:hs-s6-n1 harmonic 77.206 97.270 # HF/6-31G* 1 + angle_coeff @angle:hs-s6-o harmonic 72.305 107.680 # SOURCE3_SOURCE5 17 0.0882 + angle_coeff @angle:i-s6-i harmonic 67.346 99.250 # SOURCE3 1 + angle_coeff @angle:i-s6-o harmonic 70.931 108.820 # SOURCE3_SOURCE5 6 0.6545 + angle_coeff @angle:n1-s6-n1 harmonic 147.507 95.520 # HF/6-31G* 1 + angle_coeff @angle:n1-s6-o harmonic 137.179 107.520 # HF/6-31G* 1 + angle_coeff @angle:n2-s6-n2 harmonic 132.302 98.610 # SOURCE3 1 + angle_coeff @angle:n2-s6-o harmonic 124.131 119.100 # SOURCE3_SOURCE5 11 3.0533 + angle_coeff @angle:n2-s6-oh harmonic 123.655 106.960 # SOURCE3 2 + angle_coeff @angle:n2-s6-os harmonic 126.381 103.250 # SOURCE3 1 + angle_coeff @angle:n3-s6-n3 harmonic 123.034 98.440 # SOURCE4_SOURCE5 16 0.3984 + angle_coeff @angle:n3-s6-o harmonic 124.794 107.430 # SOURCE3_SOURCE5 319 1.1452 + angle_coeff @angle:n3-s6-os harmonic 124.070 99.660 # SOURCE4_SOURCE5 27 0.8063 + angle_coeff @angle:n4-s6-n4 harmonic 105.682 101.850 # SOURCE3 1 + angle_coeff @angle:n4-s6-o harmonic 115.123 102.920 # SOURCE3 10 1.5434 + angle_coeff @angle:na-s6-na harmonic 119.677 98.040 # SOURCE3 1 + angle_coeff @angle:na-s6-o harmonic 123.180 105.820 # SOURCE3_SOURCE5 31 0.6987 + angle_coeff @angle:nh-s6-nh harmonic 123.669 94.560 # SOURCE3 1 + angle_coeff @angle:nh-s6-o harmonic 123.651 107.210 # SOURCE3_SOURCE5 106 1.3795 + angle_coeff @angle:n-s6-n harmonic 116.385 104.160 # SOURCE3 1 + angle_coeff @angle:n-s6-o harmonic 122.694 107.020 # SOURCE3_SOURCE5 63 1.7044 + angle_coeff @angle:no-s6-no harmonic 107.924 91.630 # SOURCE3 1 + angle_coeff @angle:no-s6-o harmonic 109.649 107.430 # SOURCE3 6 1.5494 + angle_coeff @angle:n-s6-os harmonic 122.468 99.230 # SOURCE4_SOURCE5 10 0.9794 + angle_coeff @angle:oh-s6-oh harmonic 124.674 100.340 # SOURCE3 6 0.0076 + angle_coeff @angle:oh-s6-os harmonic 127.394 96.810 # SOURCE4_SOURCE5 74 0.8201 + angle_coeff @angle:oh-s6-p2 harmonic 108.695 109.670 # SOURCE3 2 + angle_coeff @angle:o-s6-o harmonic 128.200 120.050 # SOURCE4_SOURCE5 971 1.8153 + angle_coeff @angle:o-s6-oh harmonic 126.323 108.050 # SOURCE3_SOURCE5 306 0.8954 + angle_coeff @angle:o-s6-os harmonic 126.629 108.560 # SOURCE3_SOURCE5 346 1.4469 + angle_coeff @angle:o-s6-p2 harmonic 111.304 106.610 # SOURCE3 1 + angle_coeff @angle:o-s6-p3 harmonic 116.333 107.070 # SOURCE3 22 1.0550 + angle_coeff @angle:o-s6-p4 harmonic 107.389 105.670 # SOURCE3 1 + angle_coeff @angle:o-s6-p5 harmonic 118.512 106.640 # SOURCE3 1 + angle_coeff @angle:o-s6-s4 harmonic 90.199 107.850 # SOURCE3 1 + angle_coeff @angle:o-s6-s harmonic 90.887 110.290 # SOURCE3 6 2.2405 + angle_coeff @angle:o-s6-s6 harmonic 90.953 106.070 # SOURCE3 1 + angle_coeff @angle:o-s6-sh harmonic 89.506 106.810 # SOURCE3 6 0.6292 + angle_coeff @angle:os-s6-os harmonic 126.643 98.700 # SOURCE3 1 + angle_coeff @angle:o-s6-ss harmonic 88.847 107.430 # SOURCE3 10 1.1423 + angle_coeff @angle:p3-s6-p3 harmonic 114.939 110.170 # SOURCE3 4 5.3678 + angle_coeff @angle:p5-s6-p5 harmonic 120.162 104.490 # SOURCE3 1 + angle_coeff @angle:s4-s6-s4 harmonic 72.429 101.990 # SOURCE3 1 + angle_coeff @angle:s4-s6-s6 harmonic 77.030 90.170 # SOURCE3 1 + angle_coeff @angle:s6-s6-s6 harmonic 71.972 103.290 # SOURCE3 1 + angle_coeff @angle:sh-s6-sh harmonic 69.961 106.430 # SOURCE3 1 + angle_coeff @angle:sh-s6-ss harmonic 71.071 102.640 # SOURCE3 1 + angle_coeff @angle:s-s6-s harmonic 71.394 109.340 # SOURCE3 1 + angle_coeff @angle:ss-s6-ss harmonic 71.189 101.820 # SOURCE3 1 + angle_coeff @angle:br-sh-hs harmonic 49.791 95.640 # SOURCE3 1 + angle_coeff @angle:c1-sh-hs harmonic 55.580 95.990 # calculated_based_on_C#C-SH 0 + angle_coeff @angle:c2-sh-hs harmonic 52.778 96.790 # SOURCE4_SOURCE5 12 0.5703 + angle_coeff @angle:c3-sh-hs harmonic 51.361 96.400 # SOURCE3_SOURCE5 191 0.6428 + angle_coeff @angle:ca-sh-hs harmonic 53.161 95.500 # SOURCE4_SOURCE5 44 0.8350 + angle_coeff @angle:cc-sh-hs harmonic 53.591 95.010 # SOURCE4_SOURCE5 23 1.3099 + angle_coeff @angle:c-sh-hs harmonic 53.042 94.470 # SOURCE3_SOURCE5 41 0.9733 + angle_coeff @angle:f-sh-hs harmonic 71.420 96.500 # SOURCE3 1 + angle_coeff @angle:hs-sh-hs harmonic 42.155 93.000 # SOURCE3_SOURCE5 3 0.4777 + angle_coeff @angle:hs-sh-i harmonic 44.148 96.440 # SOURCE3 1 + angle_coeff @angle:hs-sh-n1 harmonic 72.794 93.510 # HF/6-31G* 1 + angle_coeff @angle:hs-sh-n2 harmonic 67.814 95.820 # SOURCE3 5 3.1495 + angle_coeff @angle:hs-sh-n harmonic 68.213 95.590 # SOURCE3 4 3.9065 + angle_coeff @angle:hs-sh-n3 harmonic 67.725 95.980 # SOURCE3 3 1.1735 + angle_coeff @angle:hs-sh-n4 harmonic 66.458 93.130 # SOURCE3 3 0.1675 + angle_coeff @angle:hs-sh-na harmonic 67.804 97.380 # SOURCE3 9 1.0223 + angle_coeff @angle:hs-sh-nh harmonic 66.944 101.110 # SOURCE3 1 + angle_coeff @angle:hs-sh-no harmonic 66.751 92.930 # SOURCE3 1 + angle_coeff @angle:hs-sh-o harmonic 67.503 109.230 # SOURCE3 2 0.0068 + angle_coeff @angle:hs-sh-oh harmonic 68.281 98.640 # SOURCE3 2 0.0605 + angle_coeff @angle:hs-sh-os harmonic 69.115 98.150 # SOURCE3 3 0.1661 + angle_coeff @angle:hs-sh-p2 harmonic 66.084 99.120 # SOURCE3 10 5.4110 + angle_coeff @angle:hs-sh-p3 harmonic 62.144 95.810 # SOURCE3 3 0.4396 + angle_coeff @angle:hs-sh-p4 harmonic 63.188 94.220 # SOURCE3 4 0.7605 + angle_coeff @angle:hs-sh-p5 harmonic 64.112 94.520 # SOURCE3 3 0.5589 + angle_coeff @angle:hs-sh-s harmonic 47.237 102.870 # SOURCE3 2 + angle_coeff @angle:hs-sh-s4 harmonic 48.513 92.160 # SOURCE3 3 1.6519 + angle_coeff @angle:hs-sh-s6 harmonic 49.509 93.830 # SOURCE3 3 1.2561 + angle_coeff @angle:hs-sh-sh harmonic 49.372 99.070 # SOURCE3 2 + angle_coeff @angle:hs-sh-ss harmonic 49.131 99.170 # SOURCE3 3 0.2457 + angle_coeff @angle:br-ss-br harmonic 77.455 102.920 # SOURCE3 1 + angle_coeff @angle:br-ss-c3 harmonic 73.438 99.030 # SOURCE3 1 + angle_coeff @angle:c1-ss-c1 harmonic 77.701 98.300 # SOURCE2 1 + angle_coeff @angle:c1-ss-c3 harmonic 72.838 101.860 # SOURCE2_SOURCE5 24 1.0923 + angle_coeff @angle:c2-ss-c2 harmonic 75.153 99.560 # SOURCE3 1 + angle_coeff @angle:c2-ss-c3 harmonic 72.568 100.370 # SOURCE4 100 2.3280 + angle_coeff @angle:c2-ss-cy harmonic 76.860 88.910 # SOURCE4_SOURCE5 51 0.4794 + angle_coeff @angle:c2-ss-n2 harmonic 92.922 106.760 # SOURCE3 1 + angle_coeff @angle:c2-ss-na harmonic 93.759 100.510 # SOURCE3 6 6.9702 + angle_coeff @angle:c2-ss-os harmonic 100.020 89.760 # SOURCE3 1 + angle_coeff @angle:c2-ss-ss harmonic 75.743 92.260 # SOURCE3 1 + angle_coeff @angle:c3-ss-c3 harmonic 71.051 99.240 # SOURCE3_SOURCE5 443 1.3973 + angle_coeff @angle:c3-ss-ca harmonic 71.145 102.100 # SOURCE4_SOURCE5 393 1.3148 + angle_coeff @angle:c3-ss-cc harmonic 72.106 100.640 # CORR_SOURCE5 118 1.6668 + angle_coeff @angle:c3-ss-cd harmonic 72.106 100.640 # CORR_SOURCE5 118 1.6668 + angle_coeff @angle:c3-ss-cl harmonic 80.033 99.400 # SOURCE2 1 + angle_coeff @angle:c3-ss-cy harmonic 72.699 94.270 # SOURCE4_SOURCE5 150 0.4649 + angle_coeff @angle:c3-ss-f harmonic 95.769 97.490 # SOURCE3 1 + angle_coeff @angle:c3-ss-i harmonic 67.953 100.000 # SOURCE3 1 + angle_coeff @angle:c3-ss-n1 harmonic 94.433 98.440 # HF/6-31G* 1 + angle_coeff @angle:c3-ss-n2 harmonic 94.643 96.080 # SOURCE3_SOURCE5 11 1.2317 + angle_coeff @angle:c3-ss-n3 harmonic 91.857 98.830 # SOURCE3 3 0.2909 + angle_coeff @angle:c3-ss-n harmonic 91.130 100.300 # SOURCE3 4 0.6579 + angle_coeff @angle:c3-ss-n4 harmonic 90.288 97.790 # SOURCE3 3 0.2002 + angle_coeff @angle:c3-ss-na harmonic 92.714 96.590 # SOURCE3_SOURCE5 21 1.0132 + angle_coeff @angle:c3-ss-nh harmonic 91.350 100.630 # SOURCE3 1 + angle_coeff @angle:c3-ss-no harmonic 89.523 98.620 # SOURCE3 1 + angle_coeff @angle:c3-ss-o harmonic 92.362 106.990 # SOURCE3_SOURCE5 11 1.0097 + angle_coeff @angle:c3-ss-oh harmonic 92.897 98.280 # SOURCE3 2 1.4326 + angle_coeff @angle:c3-ss-os harmonic 92.581 98.210 # SOURCE3 4 1.7097 + angle_coeff @angle:c3-ss-p2 harmonic 95.479 98.410 # SOURCE3 8 0.9454 + angle_coeff @angle:c3-ss-p3 harmonic 90.885 98.700 # SOURCE3 3 0.0356 + angle_coeff @angle:c3-ss-p4 harmonic 91.629 98.160 # SOURCE3 4 0.1361 + angle_coeff @angle:c3-ss-p5 harmonic 90.364 100.060 # SOURCE4_SOURCE5 62 1.0141 + angle_coeff @angle:c3-ss-s4 harmonic 70.640 96.370 # SOURCE3 3 0.0202 + angle_coeff @angle:c3-ss-s harmonic 70.410 101.900 # SOURCE3 1 + angle_coeff @angle:c3-ss-s6 harmonic 71.595 96.760 # SOURCE3 3 1.5680 + angle_coeff @angle:c3-ss-sh harmonic 70.887 101.930 # SOURCE3 1 + angle_coeff @angle:c3-ss-ss harmonic 70.258 103.390 # SOURCE4_SOURCE5 237 1.0715 + angle_coeff @angle:ca-ss-ca harmonic 73.541 98.830 # SOURCE4_SOURCE5 225 1.3938 + angle_coeff @angle:ca-ss-cc harmonic 77.818 89.470 # CORR_SOURCE5 200 1.1779 + angle_coeff @angle:ca-ss-cd harmonic 77.818 89.470 # CORR_SOURCE5 200 1.1779 + angle_coeff @angle:ca-ss-cl harmonic 80.234 101.050 # SOURCE3 1 + angle_coeff @angle:ca-ss-n harmonic 97.427 90.990 # SOURCE3_SOURCE5 5 0.5202 + angle_coeff @angle:ca-ss-na harmonic 93.087 99.320 # SOURCE3 1 + angle_coeff @angle:ca-ss-nc harmonic 97.913 94.760 # SOURCE3 1 + angle_coeff @angle:ca-ss-nd harmonic 97.913 94.760 # SOURCE3 1 + angle_coeff @angle:ca-ss-ss harmonic 70.425 105.130 # SOURCE4_SOURCE5 69 1.0007 + angle_coeff @angle:c-ss-c2 harmonic 76.536 92.430 # SOURCE3 1 + angle_coeff @angle:c-ss-c3 harmonic 71.828 99.160 # SOURCE3_SOURCE5 108 1.2072 + angle_coeff @angle:c-ss-c harmonic 71.820 101.400 # SOURCE3 1 + angle_coeff @angle:c-ss-cc harmonic 75.135 94.890 # SOURCE4_SOURCE5 32 1.7205 + angle_coeff @angle:cc-ss-cc harmonic 78.031 90.240 # SOURCE3_SOURCE5 652 1.5043 + angle_coeff @angle:cc-ss-cd harmonic 77.807 90.760 # SOURCE4_SOURCE5 157 1.7485 + angle_coeff @angle:cc-ss-n harmonic 96.775 93.580 # SOURCE3_SOURCE5 6 2.0175 + angle_coeff @angle:cc-ss-na harmonic 93.760 99.330 # SOURCE3 18 + angle_coeff @angle:cc-ss-nc harmonic 99.545 93.220 # CORR_SOURCE5 25 1.5563 + angle_coeff @angle:cc-ss-os harmonic 94.746 98.810 # SOURCE3 2 2.1583 + angle_coeff @angle:cc-ss-ss harmonic 74.869 93.800 # CORR_SOURCE5 31 0.9858 + angle_coeff @angle:cd-ss-cd harmonic 78.031 90.240 # SOURCE3_SOURCE5 652 1.5043 + angle_coeff @angle:cd-ss-n harmonic 96.775 93.580 # SOURCE3_SOURCE5 6 2.0175 + angle_coeff @angle:cd-ss-na harmonic 93.760 99.330 # SOURCE3 18 2.5847 + angle_coeff @angle:cd-ss-nd harmonic 99.545 93.220 # CORR_SOURCE5 25 1.5563 + angle_coeff @angle:cd-ss-os harmonic 94.746 98.810 # SOURCE3 2 + angle_coeff @angle:cd-ss-ss harmonic 74.869 93.800 # CORR_SOURCE5 31 0.9858 + angle_coeff @angle:cl-ss-cl harmonic 90.057 103.370 # SOURCE3 1 + angle_coeff @angle:cx-ss-cx harmonic 102.217 48.300 # SOURCE2 1 + angle_coeff @angle:f-ss-f harmonic 129.659 98.300 # SOURCE2 1 + angle_coeff @angle:f-ss-ss harmonic 90.124 108.300 # SOURCE2 1 + angle_coeff @angle:i-ss-i harmonic 72.646 106.290 # SOURCE3 1 + angle_coeff @angle:n1-ss-n1 harmonic 128.766 96.960 # HF/6-31G* 1 + angle_coeff @angle:n2-ss-n2 harmonic 125.325 96.750 # SOURCE3 1 + angle_coeff @angle:n3-ss-n3 harmonic 117.075 102.340 # SOURCE3 1 + angle_coeff @angle:n4-ss-n4 harmonic 111.994 101.190 # SOURCE3 1 + angle_coeff @angle:na-ss-na harmonic 116.207 102.810 # SOURCE3 1 + angle_coeff @angle:nc-ss-nc harmonic 126.827 97.990 # CORR_SOURCE5 29 0.5000 + angle_coeff @angle:nd-ss-nd harmonic 126.827 97.990 # CORR_SOURCE5 29 0.5000 + angle_coeff @angle:nh-ss-nh harmonic 114.991 107.890 # SOURCE3 1 + angle_coeff @angle:n-ss-n harmonic 116.487 103.100 # SOURCE3 1 + angle_coeff @angle:no-ss-no harmonic 108.247 106.430 # SOURCE3 1 + angle_coeff @angle:oh-ss-oh harmonic 118.444 104.250 # SOURCE3 1 + angle_coeff @angle:o-ss-o harmonic 124.036 119.300 # SOURCE2 1 + angle_coeff @angle:o-ss-p5 harmonic 114.305 106.410 # SOURCE3 1 + angle_coeff @angle:o-ss-s6 harmonic 89.483 105.390 # SOURCE3 1 + angle_coeff @angle:os-ss-os harmonic 118.047 102.990 # SOURCE3 1 + angle_coeff @angle:o-ss-ss harmonic 88.228 112.700 # SOURCE2 1 + angle_coeff @angle:p2-ss-p2 harmonic 127.760 99.520 # SOURCE3 1 + angle_coeff @angle:p3-ss-p3 harmonic 117.165 101.670 # SOURCE3 1 + angle_coeff @angle:p5-ss-p5 harmonic 126.593 87.370 # SOURCE3_SOURCE5 11 1.2491 + angle_coeff @angle:s4-ss-s4 harmonic 71.661 96.080 # SOURCE3 1 + angle_coeff @angle:s4-ss-s6 harmonic 70.568 101.260 # SOURCE3 1 + angle_coeff @angle:s6-ss-s6 harmonic 71.193 101.810 # SOURCE3 1 + angle_coeff @angle:sh-ss-sh harmonic 70.979 107.540 # SOURCE3 1 + angle_coeff @angle:sh-ss-ss harmonic 71.215 106.530 # SOURCE3 1 + angle_coeff @angle:s-ss-s harmonic 67.904 115.040 # SOURCE3 1 + angle_coeff @angle:ss-ss-ss harmonic 70.653 107.930 # SOURCE4_SOURCE5 72 1.6368 + angle_coeff @angle:c3-sx-ca harmonic 72.223 96.640 # SOURCE4_SOURCE5 41 0.4942 + angle_coeff @angle:c3-sx-cc harmonic 73.054 95.180 # SOURCE4_SOURCE5 41 0.6549 + angle_coeff @angle:c3-sx-ce harmonic 72.861 95.290 # SOURCE3_SOURCE5 10 0.5723 + angle_coeff @angle:c3-sx-cf harmonic 72.861 95.290 # SOURCE3_SOURCE5 7 0.8172 + angle_coeff @angle:c3-sx-ne harmonic 93.362 90.060 # SOURCE3 5 1.9627 + angle_coeff @angle:c3-sx-nf harmonic 93.362 90.060 # SOURCE3 5 + angle_coeff @angle:c3-sx-o harmonic 91.942 107.520 # SOURCE3_SOURCE5 84 0.7996 + angle_coeff @angle:c3-sx-pe harmonic 91.537 94.320 # SOURCE3 7 0.5547 + angle_coeff @angle:c3-sx-pf harmonic 91.537 94.320 # SOURCE3 7 + angle_coeff @angle:c3-sx-px harmonic 88.346 96.460 # SOURCE3 3 1.3351 + angle_coeff @angle:c3-sx-py harmonic 88.211 95.670 # SOURCE3 1 + angle_coeff @angle:c3-sx-sx harmonic 67.226 91.470 # SOURCE3 4 1.9919 + angle_coeff @angle:c3-sx-sy harmonic 68.899 95.470 # SOURCE3 3 2.8422 + angle_coeff @angle:ca-sx-ca harmonic 72.893 95.750 # SOURCE3_SOURCE5 14 1.8607 + angle_coeff @angle:ca-sx-o harmonic 92.722 107.150 # SOURCE4_SOURCE5 86 0.9103 + angle_coeff @angle:c-sx-c3 harmonic 72.536 92.710 # SOURCE3 3 0.3095 + angle_coeff @angle:c-sx-c harmonic 74.104 86.850 # SOURCE3 1 + angle_coeff @angle:cc-sx-o harmonic 94.293 104.810 # SOURCE4_SOURCE5 45 1.5594 + angle_coeff @angle:ce-sx-ce harmonic 73.461 94.960 # SOURCE3 1 + angle_coeff @angle:ce-sx-o harmonic 92.502 108.230 # SOURCE3_SOURCE5 27 0.8358 + angle_coeff @angle:cf-sx-cf harmonic 73.461 94.960 # SOURCE3 1 + angle_coeff @angle:cf-sx-o harmonic 92.502 108.230 # SOURCE3_SOURCE5 22 0.9547 + angle_coeff @angle:c-sx-o harmonic 90.915 106.170 # SOURCE3 5 0.9477 + angle_coeff @angle:ne-sx-ne harmonic 107.648 106.450 # SOURCE3_SOURCE5 5 1.4815 + angle_coeff @angle:ne-sx-o harmonic 114.103 109.810 # SOURCE3_SOURCE5 13 1.0385 + angle_coeff @angle:nf-sx-nf harmonic 107.648 106.450 # SOURCE3_SOURCE5 5 1.4815 + angle_coeff @angle:nf-sx-o harmonic 114.103 109.810 # SOURCE3_SOURCE5 6 0.5536 + angle_coeff @angle:o-sx-pe harmonic 111.805 106.430 # SOURCE3 9 2.8345 + angle_coeff @angle:o-sx-pf harmonic 111.805 106.430 # SOURCE3 9 + angle_coeff @angle:o-sx-px harmonic 109.143 104.770 # SOURCE3 3 1.9810 + angle_coeff @angle:o-sx-py harmonic 106.155 109.130 # SOURCE3 7 5.6840 + angle_coeff @angle:o-sx-sx harmonic 79.764 104.650 # SOURCE3 6 3.0524 + angle_coeff @angle:o-sx-sy harmonic 85.123 103.410 # SOURCE3 5 0.9618 + angle_coeff @angle:pe-sx-pe harmonic 120.095 92.620 # SOURCE3 1 + angle_coeff @angle:pf-sx-pf harmonic 120.095 92.620 # SOURCE3 1 + angle_coeff @angle:py-sx-py harmonic 133.313 69.230 # SOURCE3 3 17.4143 + angle_coeff @angle:sx-sx-sx harmonic 69.059 84.900 # SOURCE3 1 + angle_coeff @angle:sy-sx-sy harmonic 69.768 93.520 # SOURCE3 1 + angle_coeff @angle:c3-sy-ca harmonic 70.945 103.930 # SOURCE4_SOURCE5 136 0.4172 + angle_coeff @angle:c3-sy-cc harmonic 71.767 101.950 # SOURCE4_SOURCE5 32 1.4362 + angle_coeff @angle:c3-sy-ce harmonic 71.136 103.530 # SOURCE3_SOURCE5 11 1.3594 + angle_coeff @angle:c3-sy-cf harmonic 71.136 103.530 # SOURCE3_SOURCE5 8 1.7429 + angle_coeff @angle:c3-sy-ne harmonic 92.368 102.190 # SOURCE3_SOURCE5 11 3.1966 + angle_coeff @angle:c3-sy-nf harmonic 92.368 102.190 # SOURCE3_SOURCE5 6 2.3703 + angle_coeff @angle:c3-sy-o harmonic 93.792 107.850 # SOURCE3_SOURCE5 283 0.5690 + angle_coeff @angle:c3-sy-pe harmonic 85.480 106.030 # SOURCE3 6 2.6117 + angle_coeff @angle:c3-sy-pf harmonic 85.480 106.030 # SOURCE3 6 + angle_coeff @angle:c3-sy-px harmonic 85.416 103.620 # SOURCE3 3 0.7078 + angle_coeff @angle:c3-sy-py harmonic 87.474 103.390 # SOURCE3 3 0.4563 + angle_coeff @angle:c3-sy-sx harmonic 66.097 104.640 # SOURCE3 3 4.6276 + angle_coeff @angle:c3-sy-sy harmonic 67.466 100.780 # SOURCE3 4 1.1633 + angle_coeff @angle:ca-sy-ca harmonic 71.127 104.440 # SOURCE4_SOURCE5 55 1.7845 + angle_coeff @angle:ca-sy-cc harmonic 71.045 105.090 # SOURCE4_SOURCE5 10 0.3628 + angle_coeff @angle:ca-sy-n3 harmonic 92.241 102.440 # SOURCE4_SOURCE5 407 1.1038 + angle_coeff @angle:ca-sy-n harmonic 90.479 105.370 # SOURCE4_SOURCE5 122 1.2203 + angle_coeff @angle:ca-sy-ne harmonic 92.539 103.010 # SOURCE4_SOURCE5 36 2.1672 + angle_coeff @angle:ca-sy-nh harmonic 90.475 105.500 # SOURCE4_SOURCE5 205 1.5936 + angle_coeff @angle:ca-sy-o harmonic 94.276 108.350 # SOURCE3_SOURCE5 1362 0.6985 + angle_coeff @angle:ca-sy-oh harmonic 93.834 101.300 # SOURCE4_SOURCE5 94 0.8210 + angle_coeff @angle:ca-sy-os harmonic 96.750 92.980 # SOURCE3 1 + angle_coeff @angle:c-sy-c3 harmonic 70.399 101.250 # SOURCE3 3 1.1850 + angle_coeff @angle:c-sy-c harmonic 69.867 99.810 # SOURCE3 1 + angle_coeff @angle:cc-sy-n3 harmonic 92.404 102.530 # CORR_SOURCE5 35 0.5689 + angle_coeff @angle:cc-sy-o harmonic 94.752 107.890 # CORR_SOURCE5 130 0.8911 + angle_coeff @angle:cd-sy-n3 harmonic 92.404 102.530 # CORR_SOURCE5 35 0.5689 + angle_coeff @angle:cd-sy-nh harmonic 94.463 97.200 # SOURCE4_SOURCE5 12 0.2429 + angle_coeff @angle:cd-sy-o harmonic 94.752 107.890 # CORR_SOURCE5 130 0.8911 + angle_coeff @angle:ce-sy-ce harmonic 71.811 102.780 # SOURCE3 1 + angle_coeff @angle:ce-sy-o harmonic 94.373 108.380 # SOURCE3_SOURCE5 66 0.9753 + angle_coeff @angle:cf-sy-cf harmonic 71.811 102.780 # SOURCE3 1 + angle_coeff @angle:cf-sy-o harmonic 94.373 108.380 # SOURCE3_SOURCE5 56 1.0516 + angle_coeff @angle:c-sy-o harmonic 91.740 107.480 # SOURCE3_SOURCE5 16 0.7996 + angle_coeff @angle:n2-sy-o harmonic 121.876 123.530 # SOURCE4 6 1.2388 + angle_coeff @angle:n3-sy-ne harmonic 120.039 101.930 # SOURCE4_SOURCE5 15 1.4395 + angle_coeff @angle:n3-sy-o harmonic 123.426 107.130 # SOURCE4_SOURCE5 863 1.1609 + angle_coeff @angle:na-sy-na harmonic 119.379 98.040 # SOURCE3 1 + angle_coeff @angle:nc-sy-nc harmonic 132.584 98.040 # SOURCE3 2 + angle_coeff @angle:nd-sy-nd harmonic 132.584 98.040 # SOURCE3 2 + angle_coeff @angle:ne-sy-ne harmonic 122.921 98.620 # SOURCE3 1 + angle_coeff @angle:ne-sy-o harmonic 123.169 109.650 # SOURCE3_SOURCE5 101 1.9902 + angle_coeff @angle:nf-sy-nf harmonic 122.921 98.620 # SOURCE3 1 + angle_coeff @angle:nf-sy-o harmonic 123.169 109.650 # SOURCE3_SOURCE5 87 1.9451 + angle_coeff @angle:nh-sy-o harmonic 123.056 106.230 # SOURCE4_SOURCE5 319 1.7353 + angle_coeff @angle:n-sy-o harmonic 122.195 107.540 # SOURCE4_SOURCE5 155 1.8699 + angle_coeff @angle:o-sy-o harmonic 126.375 121.410 # SOURCE3_SOURCE5 734 0.8526 + angle_coeff @angle:o-sy-oh harmonic 125.990 106.680 # SOURCE3_SOURCE5 166 0.5588 + angle_coeff @angle:o-sy-os harmonic 123.063 107.520 # SOURCE4_SOURCE5 38 1.6656 + angle_coeff @angle:o-sy-pe harmonic 109.504 106.900 # SOURCE3 12 1.4524 + angle_coeff @angle:o-sy-pf harmonic 109.504 106.900 # SOURCE3 12 + angle_coeff @angle:o-sy-px harmonic 108.122 106.170 # SOURCE3 6 0.7059 + angle_coeff @angle:o-sy-py harmonic 111.153 106.670 # SOURCE3 10 0.6478 + angle_coeff @angle:o-sy-sx harmonic 83.961 106.330 # SOURCE3 10 2.0456 + angle_coeff @angle:o-sy-sy harmonic 84.205 106.190 # SOURCE3 12 0.1754 + angle_coeff @angle:py-sy-py harmonic 112.342 104.490 # SOURCE3 1 + angle_coeff @angle:sx-sy-sx harmonic 66.808 101.990 # SOURCE3 1 + angle_coeff @angle:sy-sy-sy harmonic 66.534 103.290 # SOURCE3 1 + angle_coeff @angle:c2-c1-cf harmonic 60.047 179.050 # SOURCE4_SOURCE5 9 0.3913 + angle_coeff @angle:c3-c1-ch harmonic 57.725 178.430 # SOURCE4_SOURCE5 95 0.5682 + angle_coeff @angle:nf-c1-s harmonic 73.610 175.820 # SOURCE4_SOURCE5 15 0.2067 + angle_coeff @angle:br-c2-cf harmonic 64.279 121.530 # SOURCE4_SOURCE5 11 0.7009 + angle_coeff @angle:cd-c2-h4 harmonic 49.786 119.850 # SOURCE4_SOURCE5 16 0.8001 + angle_coeff @angle:cd-c2-nh harmonic 86.562 123.120 # SOURCE4_SOURCE5 17 1.2171 + angle_coeff @angle:cd-c2-o harmonic 91.352 123.590 # SOURCE4_SOURCE5 6 0.0560 + angle_coeff @angle:cf-c2-cl harmonic 72.107 123.470 # SOURCE4_SOURCE5 30 1.0225 + angle_coeff @angle:cf-c2-h4 harmonic 49.654 122.310 # SOURCE4_SOURCE5 145 1.6214 + angle_coeff @angle:cf-c2-na harmonic 86.108 124.170 # SOURCE4_SOURCE5 6 1.9423 + angle_coeff @angle:cf-c2-nh harmonic 87.822 120.710 # SOURCE4_SOURCE5 150 2.3947 + angle_coeff @angle:cf-c2-no harmonic 86.097 119.650 # SOURCE4_SOURCE5 5 0.9817 + angle_coeff @angle:cf-c2-o harmonic 91.992 123.370 # SOURCE4_SOURCE5 9 1.0481 + angle_coeff @angle:cf-c2-oh harmonic 88.571 123.130 # SOURCE4_SOURCE5 62 1.7479 + angle_coeff @angle:cf-c2-os harmonic 87.995 122.800 # SOURCE4_SOURCE5 98 2.2743 + angle_coeff @angle:h4-c2-nf harmonic 64.858 119.510 # SOURCE4_SOURCE5 42 1.6302 + angle_coeff @angle:h5-c2-nf harmonic 64.691 119.850 # SOURCE4_SOURCE5 27 1.3790 + angle_coeff @angle:nf-c2-os harmonic 114.213 118.760 # SOURCE4 5 + angle_coeff @angle:nf-c2-ss harmonic 82.205 120.510 # SOURCE4_SOURCE5 23 2.4188 + angle_coeff @angle:n-c2-nf harmonic 109.323 125.340 # SOURCE4_SOURCE5 15 1.5591 + angle_coeff @angle:ca-c3-cf harmonic 65.618 112.210 # SOURCE4_SOURCE5 93 1.2595 + angle_coeff @angle:cd-c3-cx harmonic 65.894 112.100 # SOURCE4_SOURCE5 7 1.7201 + angle_coeff @angle:c-c3-cf harmonic 65.527 111.890 # SOURCE4_SOURCE5 59 1.5769 + angle_coeff @angle:cd-c3-hx harmonic 47.588 111.010 # SOURCE4_SOURCE5 10 0.7123 + angle_coeff @angle:cd-c3-n2 harmonic 84.630 110.310 # SOURCE4_SOURCE5 21 0.5628 + angle_coeff @angle:cd-c3-n4 harmonic 81.467 115.580 # SOURCE4_SOURCE5 6 1.1723 + angle_coeff @angle:cd-c3-na harmonic 83.647 113.150 # SOURCE4_SOURCE5 10 0.6466 + angle_coeff @angle:cd-c3-p5 harmonic 79.513 116.230 # SOURCE4_SOURCE5 6 0.7766 + angle_coeff @angle:cf-c3-cf harmonic 65.833 111.470 # SOURCE4_SOURCE5 35 0.5985 + angle_coeff @angle:cf-c3-n harmonic 84.349 110.220 # SOURCE4_SOURCE5 10 1.0919 + angle_coeff @angle:cf-c3-oh harmonic 84.971 111.190 # SOURCE4_SOURCE5 57 1.5702 + angle_coeff @angle:cf-c3-os harmonic 85.412 109.500 # SOURCE4_SOURCE5 55 1.8883 + angle_coeff @angle:cf-c3-ss harmonic 63.337 110.720 # SOURCE4_SOURCE5 12 1.7025 + angle_coeff @angle:cd-ca-cq harmonic 66.010 124.300 # SOURCE4_SOURCE5 10 0.6423 + angle_coeff @angle:cf-ca-na harmonic 84.062 119.920 # SOURCE4_SOURCE5 29 0.5242 + angle_coeff @angle:ch-ca-cq harmonic 67.320 121.530 # SOURCE4_SOURCE5 12 0.1831 + angle_coeff @angle:cl-ca-cq harmonic 71.726 120.390 # SOURCE4_SOURCE5 34 0.5366 + angle_coeff @angle:cq-ca-f harmonic 88.831 119.420 # SOURCE4_SOURCE5 30 0.2799 + angle_coeff @angle:cq-ca-h4 harmonic 48.404 120.090 # SOURCE4_SOURCE5 35 0.4098 + angle_coeff @angle:cq-ca-na harmonic 90.665 108.790 # SOURCE4_SOURCE5 349 0.5003 + angle_coeff @angle:cq-ca-nb harmonic 86.369 123.580 # SOURCE4_SOURCE5 79 0.8527 + angle_coeff @angle:cq-ca-nh harmonic 85.714 121.560 # SOURCE4_SOURCE5 19 0.6123 + angle_coeff @angle:cq-ca-oh harmonic 86.623 120.850 # SOURCE4_SOURCE5 29 1.4592 + angle_coeff @angle:cq-ca-ss harmonic 65.950 111.170 # SOURCE4_SOURCE5 16 2.4162 + angle_coeff @angle:ca-c-nf harmonic 85.290 114.710 # SOURCE4_SOURCE5 9 0.7464 + angle_coeff @angle:br-cd-c harmonic 65.156 116.280 # SOURCE4_SOURCE5 24 1.3164 + angle_coeff @angle:br-cd-cd harmonic 63.389 124.050 # SOURCE4_SOURCE5 23 1.9356 + angle_coeff @angle:br-cd-cc harmonic 63.686 124.230 # SOURCE4_SOURCE5 84 2.2845 + angle_coeff @angle:br-cd-na harmonic 80.565 121.580 # SOURCE4_SOURCE5 13 0.9881 + angle_coeff @angle:ca-cd-cf harmonic 64.258 127.010 # SOURCE4_SOURCE5 27 1.6430 + angle_coeff @angle:ca-cd-nh harmonic 84.253 122.130 # SOURCE4_SOURCE5 11 2.0536 + angle_coeff @angle:cd-c-cf harmonic 66.433 115.570 # SOURCE4_SOURCE5 8 1.2130 + angle_coeff @angle:cd-cd-f harmonic 88.377 119.190 # SOURCE4_SOURCE5 19 1.0481 + angle_coeff @angle:c-cd-ch harmonic 67.046 117.880 # SOURCE4_SOURCE5 19 0.6396 + angle_coeff @angle:cd-cd-sy harmonic 61.106 128.250 # SOURCE4_SOURCE5 12 0.8482 + angle_coeff @angle:cc-cd-f harmonic 89.570 121.190 # SOURCE4_SOURCE5 54 0.6386 + angle_coeff @angle:cc-cd-no harmonic 82.947 128.690 # SOURCE4_SOURCE5 197 1.4212 + angle_coeff @angle:c-cd-f harmonic 87.759 116.980 # SOURCE4_SOURCE5 33 0.4384 + angle_coeff @angle:ch-cd-na harmonic 84.878 122.610 # SOURCE4_SOURCE5 7 1.0826 + angle_coeff @angle:ch-cd-ss harmonic 63.762 120.730 # SOURCE4_SOURCE5 15 0.9326 + angle_coeff @angle:cd-c-h4 harmonic 47.598 114.830 # SOURCE4_SOURCE5 20 0.4400 + angle_coeff @angle:cl-cd-na harmonic 90.511 121.120 # SOURCE4_SOURCE5 25 0.9015 + angle_coeff @angle:cl-cd-ss harmonic 71.934 119.850 # SOURCE4_SOURCE5 16 0.8775 + angle_coeff @angle:c-cd-nf harmonic 84.503 119.880 # SOURCE4 6 + angle_coeff @angle:cd-c-s harmonic 64.011 126.280 # SOURCE4_SOURCE5 57 2.2083 + angle_coeff @angle:cd-c-ss harmonic 64.406 112.400 # SOURCE4_SOURCE5 32 1.0830 + angle_coeff @angle:cx-cd-nc harmonic 83.147 127.820 # SOURCE4_SOURCE5 15 1.5594 + angle_coeff @angle:cx-cd-os harmonic 85.414 118.070 # SOURCE4_SOURCE5 13 0.0898 + angle_coeff @angle:cc-c-cx harmonic 65.553 117.430 # SOURCE4_SOURCE5 24 0.1441 + angle_coeff @angle:cc-c-nc harmonic 86.534 113.750 # SOURCE4_SOURCE5 14 0.0860 + angle_coeff @angle:cf-c-cx harmonic 65.246 117.390 # SOURCE4_SOURCE5 13 0.7631 + angle_coeff @angle:cf-c-h4 harmonic 47.181 114.890 # SOURCE4_SOURCE5 94 0.4993 + angle_coeff @angle:cf-c-ss harmonic 64.794 110.490 # SOURCE4_SOURCE5 8 0.5728 + angle_coeff @angle:na-cd-no harmonic 105.313 124.590 # SOURCE4_SOURCE5 114 0.8160 + angle_coeff @angle:na-cd-oh harmonic 111.744 117.480 # SOURCE4_SOURCE5 23 1.0304 + angle_coeff @angle:na-cd-sx harmonic 79.683 117.020 # SOURCE4_SOURCE5 19 0.3766 + angle_coeff @angle:na-cd-sy harmonic 79.507 120.460 # SOURCE4_SOURCE5 8 1.7069 + angle_coeff @angle:nd-cd-no harmonic 106.922 121.730 # SOURCE4_SOURCE5 10 0.8384 + angle_coeff @angle:nc-cd-nc harmonic 110.827 128.070 # SOURCE4_SOURCE5 10 0.4198 + angle_coeff @angle:nc-cd-nf harmonic 107.796 129.010 # SOURCE4_SOURCE5 13 1.6879 + angle_coeff @angle:nc-cd-no harmonic 108.240 122.750 # SOURCE4_SOURCE5 64 0.2909 + angle_coeff @angle:nc-cd-sh harmonic 79.198 124.970 # SOURCE4_SOURCE5 13 0.8081 + angle_coeff @angle:nc-cd-sx harmonic 76.768 127.740 # SOURCE4_SOURCE5 19 0.3234 + angle_coeff @angle:nc-cd-sy harmonic 79.255 123.030 # SOURCE4_SOURCE5 20 1.2273 + angle_coeff @angle:nf-cd-ss harmonic 81.707 117.030 # SOURCE4_SOURCE5 10 0.2421 + angle_coeff @angle:n-cd-n2 harmonic 112.932 119.420 # SOURCE4_SOURCE5 13 0.1189 + angle_coeff @angle:no-cd-os harmonic 109.068 117.550 # SOURCE4_SOURCE5 82 0.2764 + angle_coeff @angle:no-cd-ss harmonic 79.693 121.060 # SOURCE4_SOURCE5 23 0.2526 + angle_coeff @angle:ca-cc-cf harmonic 66.694 124.900 # SOURCE4_SOURCE5 32 1.6591 + angle_coeff @angle:ca-cc-na harmonic 83.626 123.450 # SOURCE4 39 + angle_coeff @angle:cd-cc-cg harmonic 67.080 125.790 # SOURCE4_SOURCE5 54 1.7418 + angle_coeff @angle:cd-cc-cy harmonic 65.987 122.050 # SOURCE4_SOURCE5 12 0.8462 + angle_coeff @angle:cd-cc-nd harmonic 88.069 123.820 # SOURCE4_SOURCE5 14 0.3678 + angle_coeff @angle:cc-cc-cy harmonic 64.938 122.040 # SOURCE4_SOURCE5 7 0.2293 + angle_coeff @angle:cf-cc-nc harmonic 86.641 123.980 # SOURCE4_SOURCE5 5 2.4219 + angle_coeff @angle:c-cc-h4 harmonic 47.105 118.190 # SOURCE4_SOURCE5 8 0.2226 + angle_coeff @angle:na-cc-nh harmonic 110.794 117.280 # SOURCE4_SOURCE5 54 1.7570 + angle_coeff @angle:na-cc-ss harmonic 83.703 111.460 # SOURCE4 20 + angle_coeff @angle:nc-cc-nc harmonic 107.603 125.700 # SOURCE4_SOURCE5 18 0.6787 + angle_coeff @angle:oh-cc-os harmonic 115.442 111.610 # SOURCE4_SOURCE5 6 1.1909 + angle_coeff @angle:c2-cf-cl harmonic 72.080 119.760 # SOURCE4_SOURCE5 38 1.3369 + angle_coeff @angle:c2-cf-h4 harmonic 49.154 124.550 # SOURCE4_SOURCE5 32 1.8945 + angle_coeff @angle:c2-cf-n1 harmonic 91.289 118.230 # SOURCE4_SOURCE5 11 1.2780 + angle_coeff @angle:c2-cf-na harmonic 87.216 119.190 # SOURCE4_SOURCE5 5 0.8452 + angle_coeff @angle:c2-cf-oh harmonic 87.984 123.700 # SOURCE4_SOURCE5 17 1.7138 + angle_coeff @angle:c3-cf-ch harmonic 66.013 117.220 # SOURCE4_SOURCE5 26 1.7890 + angle_coeff @angle:c3-cf-ne harmonic 84.378 120.680 # SOURCE4_SOURCE5 7 2.0560 + angle_coeff @angle:c3-cf-nh harmonic 82.733 119.560 # SOURCE4_SOURCE5 5 1.0524 + angle_coeff @angle:ca-cf-cf harmonic 65.684 119.540 # SOURCE4_SOURCE5 18 1.9239 + angle_coeff @angle:ca-cf-cl harmonic 72.181 114.590 # SOURCE4_SOURCE5 8 0.9719 + angle_coeff @angle:ca-cf-h4 harmonic 47.047 116.990 # SOURCE4_SOURCE5 181 1.0407 + angle_coeff @angle:ca-cf-nh harmonic 85.466 115.580 # SOURCE4_SOURCE5 147 1.1060 + angle_coeff @angle:ca-cf-os harmonic 85.838 115.910 # SOURCE4_SOURCE5 17 1.5899 + angle_coeff @angle:ca-cf-ss harmonic 63.378 117.520 # SOURCE4_SOURCE5 9 1.2901 + angle_coeff @angle:c-cf-ca harmonic 65.478 118.280 # SOURCE4_SOURCE5 17 1.7879 + angle_coeff @angle:cd-cf-cc harmonic 65.259 130.610 # SOURCE4_SOURCE5 19 0.8270 + angle_coeff @angle:c-cf-cf harmonic 65.150 120.980 # SOURCE4_SOURCE5 37 2.3876 + angle_coeff @angle:c-cf-ch harmonic 66.500 118.420 # SOURCE4_SOURCE5 34 1.0602 + angle_coeff @angle:cd-cf-h4 harmonic 47.935 115.680 # SOURCE4_SOURCE5 48 0.8279 + angle_coeff @angle:c-cf-cl harmonic 71.821 115.470 # SOURCE4_SOURCE5 19 1.2383 + angle_coeff @angle:cd-cf-nh harmonic 85.299 118.050 # SOURCE4_SOURCE5 13 1.6005 + angle_coeff @angle:c-cf-cy harmonic 74.704 88.440 # SOURCE4_SOURCE5 34 1.2419 + angle_coeff @angle:cf-cf-cl harmonic 71.617 117.220 # SOURCE4_SOURCE5 23 1.1321 + angle_coeff @angle:cf-cf-oh harmonic 86.685 116.850 # SOURCE4_SOURCE5 19 1.5331 + angle_coeff @angle:ce-cf-cy harmonic 62.247 137.580 # SOURCE4_SOURCE5 18 1.4229 + angle_coeff @angle:ce-cf-h4 harmonic 49.339 122.950 # SOURCE4_SOURCE5 18 1.1766 + angle_coeff @angle:ce-cf-n1 harmonic 90.464 119.940 # SOURCE4_SOURCE5 7 1.8420 + angle_coeff @angle:ce-cf-nh harmonic 87.337 121.380 # SOURCE4_SOURCE5 27 1.6583 + angle_coeff @angle:ch-cf-n2 harmonic 87.851 121.140 # SOURCE4_SOURCE5 8 0.9418 + angle_coeff @angle:c-cf-oh harmonic 86.196 115.760 # SOURCE4_SOURCE5 15 2.2145 + angle_coeff @angle:c-cf-os harmonic 86.086 114.670 # SOURCE4_SOURCE5 26 2.3740 + angle_coeff @angle:h4-cf-n1 harmonic 64.863 116.640 # SOURCE4_SOURCE5 12 0.5604 + angle_coeff @angle:h4-cf-nf harmonic 62.153 115.650 # SOURCE4_SOURCE5 12 1.7190 + angle_coeff @angle:n2-cf-os harmonic 114.215 117.950 # SOURCE4_SOURCE5 13 0.4519 + angle_coeff @angle:n2-cf-ss harmonic 81.512 117.230 # SOURCE4 6 + angle_coeff @angle:nf-cf-nh harmonic 111.319 113.640 # SOURCE4_SOURCE5 29 1.5167 + angle_coeff @angle:ne-cf-nh harmonic 112.342 119.270 # SOURCE4_SOURCE5 17 1.8891 + angle_coeff @angle:ca-ce-cd harmonic 64.611 130.880 # SOURCE4_SOURCE5 29 1.2258 + angle_coeff @angle:c-ce-cc harmonic 66.092 117.820 # SOURCE4_SOURCE5 19 0.9022 + angle_coeff @angle:c-ce-n2 harmonic 88.177 114.410 # SOURCE4_SOURCE5 8 1.4615 + angle_coeff @angle:h4-ce-nf harmonic 64.320 120.560 # SOURCE4_SOURCE5 33 0.8495 + angle_coeff @angle:c1-ch-cd harmonic 58.883 178.610 # SOURCE4_SOURCE5 7 0.3553 + angle_coeff @angle:ch-cg-cg harmonic 60.571 179.580 # SOURCE4_SOURCE5 48 0.3197 + angle_coeff @angle:n-c-nf harmonic 113.600 110.260 # SOURCE4_SOURCE5 15 1.6743 + angle_coeff @angle:ca-cq-na harmonic 86.507 119.500 # SOURCE4_SOURCE5 38 0.8587 + angle_coeff @angle:nb-cq-nb harmonic 110.031 125.790 # SOURCE4_SOURCE5 6 0.6645 + angle_coeff @angle:cd-cx-hc harmonic 47.813 113.930 # SOURCE4_SOURCE5 29 0.6832 + angle_coeff @angle:cf-cy-h2 harmonic 45.874 117.400 # SOURCE4_SOURCE5 21 0.5798 + angle_coeff @angle:cf-cy-n harmonic 94.195 87.940 # SOURCE4_SOURCE5 24 0.2234 + angle_coeff @angle:cf-cy-ss harmonic 60.454 120.540 # SOURCE4_SOURCE5 21 2.1971 + angle_coeff @angle:cd-n2-na harmonic 91.793 109.240 # SOURCE4_SOURCE5 14 1.5712 + angle_coeff @angle:cd-n2-nh harmonic 88.704 118.470 # SOURCE4_SOURCE5 7 1.6660 + angle_coeff @angle:c3-n4-cd harmonic 64.438 111.040 # SOURCE4_SOURCE5 11 1.9847 + angle_coeff @angle:c3-na-cq harmonic 65.414 119.620 # SOURCE4_SOURCE5 10 0.5495 + angle_coeff @angle:ca-na-cq harmonic 67.035 120.860 # SOURCE4_SOURCE5 38 1.4370 + angle_coeff @angle:cd-na-cf harmonic 64.694 126.610 # SOURCE4_SOURCE5 8 0.5158 + angle_coeff @angle:cq-nb-nb harmonic 86.918 120.960 # SOURCE4_SOURCE5 20 0.6372 + angle_coeff @angle:c-n-cf harmonic 63.457 131.380 # SOURCE4_SOURCE5 225 1.7874 + angle_coeff @angle:ca-nc-nd harmonic 92.520 108.340 # SOURCE4_SOURCE5 14 0.2755 + angle_coeff @angle:c2-nf-ch harmonic 70.178 123.230 # SOURCE4_SOURCE5 27 1.1966 + angle_coeff @angle:c-nf-sy harmonic 65.604 116.430 # SOURCE4_SOURCE5 10 2.0084 + angle_coeff @angle:c3-nh-ce harmonic 65.126 120.120 # SOURCE4_SOURCE5 32 2.1639 + angle_coeff @angle:cd-nh-n2 harmonic 85.504 120.090 # SOURCE4_SOURCE5 16 0.9182 + angle_coeff @angle:cd-nh-sy harmonic 62.976 122.520 # SOURCE4_SOURCE5 37 1.3342 + angle_coeff @angle:cf-nh-sy harmonic 65.279 113.390 # SOURCE4_SOURCE5 8 1.1060 + angle_coeff @angle:hn-n-nd harmonic 62.278 115.420 # SOURCE4_SOURCE5 24 0.7584 + angle_coeff @angle:cd-no-o harmonic 87.737 117.490 # SOURCE4_SOURCE5 426 0.5387 + angle_coeff @angle:n3-py-nf harmonic 79.409 108.760 # SOURCE4_SOURCE5 18 1.1434 + angle_coeff @angle:cd-s6-o harmonic 95.603 103.760 # SOURCE4_SOURCE5 15 0.9562 + angle_coeff @angle:cd-sh-hs harmonic 53.591 95.010 # SOURCE4_SOURCE5 15 1.4000 + angle_coeff @angle:c-ss-cd harmonic 75.135 94.890 # SOURCE4_SOURCE5 18 1.2231 + angle_coeff @angle:c3-sx-cd harmonic 73.054 95.180 # SOURCE4_SOURCE5 24 0.6543 + angle_coeff @angle:cd-sx-o harmonic 94.293 104.810 # SOURCE4_SOURCE5 28 1.4279 + angle_coeff @angle:c3-sy-cd harmonic 71.767 101.950 # SOURCE4_SOURCE5 20 1.3784 + angle_coeff @angle:ca-sy-cd harmonic 71.045 105.090 # SOURCE4_SOURCE5 5 0.3628 + angle_coeff @angle:ca-sy-nf harmonic 92.539 103.010 # SOURCE4_SOURCE5 25 2.4137 + angle_coeff @angle:cc-sy-nh harmonic 94.463 97.200 # SOURCE4_SOURCE5 6 0.2429 + angle_coeff @angle:n3-sy-nf harmonic 120.039 101.930 # SOURCE4_SOURCE5 10 1.4898 + angle_coeff @angle:cl-py-ne harmonic 67.181 109.160 # SOURCE5 79 0.9726 + angle_coeff @angle:ce-ce-nh harmonic 85.786 116.410 # SOURCE5 70 1.9262 + angle_coeff @angle:cp-ca-os harmonic 87.894 116.910 # SOURCE5 38 1.2997 + angle_coeff @angle:ca-cc-ca harmonic 65.280 122.940 # SOURCE5 37 2.3284 + angle_coeff @angle:h1-c3-i harmonic 39.280 103.880 # SOURCE5 43 0.8359 + angle_coeff @angle:h4-c2-h4 harmonic 37.559 117.920 # SOURCE5 46 1.0787 + angle_coeff @angle:c-ss-ss harmonic 72.810 97.680 # SOURCE5 29 1.7788 + angle_coeff @angle:f-py-ne harmonic 83.682 108.600 # SOURCE5 47 0.7739 + angle_coeff @angle:ca-nh-ce harmonic 65.017 127.740 # SOURCE5 32 0.9569 + angle_coeff @angle:ce-cx-cx harmonic 64.347 118.620 # SOURCE5 40 1.7472 + angle_coeff @angle:py-ne-py harmonic 111.020 121.410 # SOURCE5 34 1.5196 + angle_coeff @angle:c-cd-ss harmonic 62.961 121.970 # SOURCE5 29 2.1476 + angle_coeff @angle:s-p5-ss harmonic 46.401 116.670 # SOURCE5 27 1.1060 + angle_coeff @angle:cx-c3-nh harmonic 86.752 103.860 # SOURCE5 29 2.2522 + angle_coeff @angle:cc-cc-cl harmonic 72.034 119.990 # SOURCE5 43 1.9574 + angle_coeff @angle:cd-na-cx harmonic 66.440 116.390 # SOURCE5 14 0.5535 + angle_coeff @angle:h1-cy-nh harmonic 59.704 113.860 # SOURCE5 31 0.8499 + angle_coeff @angle:h5-c-os harmonic 63.962 113.090 # SOURCE5 20 0.1826 + angle_coeff @angle:c2-c3-n4 harmonic 81.944 113.640 # SOURCE5 18 2.3563 + angle_coeff @angle:c2-cx-c3 harmonic 65.275 115.480 # SOURCE5 22 1.1986 + angle_coeff @angle:c3-c2-cx harmonic 64.810 117.870 # SOURCE5 20 2.2886 + angle_coeff @angle:br-cx-cx harmonic 62.999 119.040 # SOURCE5 21 0.7114 + angle_coeff @angle:cc-cf-ch harmonic 68.168 122.270 # SOURCE5 30 0.9028 + angle_coeff @angle:c3-c3-sx harmonic 63.092 110.500 # SOURCE5 14 1.4461 + angle_coeff @angle:ca-cy-hc harmonic 46.450 114.530 # SOURCE5 17 1.6221 + angle_coeff @angle:cx-c1-n1 harmonic 74.188 178.250 # SOURCE5 17 0.8798 + angle_coeff @angle:cl-py-cl harmonic 61.568 101.950 # SOURCE5 12 0.7596 + angle_coeff @angle:c2-ce-cx harmonic 66.366 122.740 # SOURCE5 23 1.5745 + angle_coeff @angle:c3-c-cx harmonic 64.715 116.040 # SOURCE5 14 1.1793 + angle_coeff @angle:cf-cc-os harmonic 87.197 123.070 # SOURCE5 15 1.3662 + angle_coeff @angle:cd-cd-cl harmonic 72.034 119.990 # SOURCE5 43 1.9574 + angle_coeff @angle:c3-py-ca harmonic 46.073 107.270 # SOURCE5 20 1.8136 + angle_coeff @angle:c3-c3-py harmonic 80.645 111.570 # SOURCE5 14 1.9142 + angle_coeff @angle:c3-py-s harmonic 46.250 113.850 # SOURCE5 14 0.3847 + angle_coeff @angle:ca-c-cx harmonic 64.997 117.660 # SOURCE5 20 1.5268 + angle_coeff @angle:ce-ce-os harmonic 86.756 115.190 # SOURCE5 15 2.1777 + angle_coeff @angle:c3-n4-cx harmonic 62.636 117.290 # SOURCE5 15 0.3164 + angle_coeff @angle:h4-ce-sy harmonic 42.563 115.000 # SOURCE5 20 1.1588 + angle_coeff @angle:hx-cy-n4 harmonic 58.977 110.620 # SOURCE5 14 1.8211 + angle_coeff @angle:cy-no-o harmonic 84.157 116.830 # SOURCE5 17 1.1181 + angle_coeff @angle:cc-cd-cx harmonic 66.301 124.150 # SOURCE5 10 1.8770 + angle_coeff @angle:ca-nb-na harmonic 87.254 118.780 # SOURCE5 10 0.6408 + angle_coeff @angle:cl-c3-cy harmonic 71.118 111.890 # SOURCE5 12 0.7377 + angle_coeff @angle:f-c2-h4 harmonic 66.183 112.050 # SOURCE5 13 0.7763 + angle_coeff @angle:ca-py-s harmonic 45.997 116.310 # SOURCE5 11 1.2602 + angle_coeff @angle:cl-c3-cx harmonic 71.664 110.760 # SOURCE5 9 1.3315 + angle_coeff @angle:ca-nh-cy harmonic 63.219 126.620 # SOURCE5 12 1.1353 + angle_coeff @angle:cy-cy-no harmonic 79.836 115.430 # SOURCE5 15 1.0848 + angle_coeff @angle:ce-n1-n1 harmonic 77.561 177.620 # SOURCE5 10 0.5740 + angle_coeff @angle:cy-cy-hx harmonic 45.080 115.920 # SOURCE5 9 1.5918 + angle_coeff @angle:ce-n-hn harmonic 48.071 113.830 # SOURCE5 11 1.3642 + angle_coeff @angle:c3-cx-cu harmonic 63.779 120.910 # SOURCE5 11 0.4272 + angle_coeff @angle:cf-cf-ne harmonic 86.585 120.790 # SOURCE5 9 1.8014 + angle_coeff @angle:f-p5-na harmonic 88.711 89.260 # SOURCE5 12 1.2991 + angle_coeff @angle:h4-ce-nh harmonic 62.318 115.580 # SOURCE5 10 0.8050 + angle_coeff @angle:ne-c-s harmonic 82.148 124.230 # SOURCE5 9 1.7990 + angle_coeff @angle:ca-os-py harmonic 83.011 123.310 # SOURCE5 12 0.8994 + angle_coeff @angle:cf-ce-cl harmonic 71.390 121.940 # SOURCE5 20 1.2372 + angle_coeff @angle:cy-cy-n4 harmonic 90.361 89.940 # SOURCE5 10 0.7009 + angle_coeff @angle:na-cc-sh harmonic 79.224 122.950 # SOURCE5 9 1.1542 + angle_coeff @angle:nb-na-o harmonic 113.391 118.130 # SOURCE5 11 0.6838 + angle_coeff @angle:c-cx-n3 harmonic 82.187 116.960 # SOURCE5 11 1.3298 + angle_coeff @angle:cd-cy-hc harmonic 48.302 107.200 # SOURCE5 8 0.5300 + angle_coeff @angle:f-c3-no harmonic 111.081 107.760 # SOURCE5 11 0.3179 + angle_coeff @angle:ce-cd-na harmonic 85.967 124.930 # SOURCE5 9 0.9918 + angle_coeff @angle:cq-cp-cq harmonic 69.705 108.020 # SOURCE5 24 0.5633 + angle_coeff @angle:os-py-s harmonic 59.825 116.220 # SOURCE5 11 0.4580 + angle_coeff @angle:c-c3-cy harmonic 65.476 110.880 # SOURCE5 9 1.4172 + angle_coeff @angle:cy-c2-ha harmonic 45.849 118.590 # SOURCE5 5 1.8406 + angle_coeff @angle:cp-cq-cp harmonic 69.705 108.020 # SOURCE5 24 0.5633 + angle_coeff @angle:cx-cu-cx harmonic 89.228 63.190 # SOURCE5 12 0.2140 + angle_coeff @angle:cu-c2-ha harmonic 50.414 121.490 # SOURCE5 12 0.1524 + angle_coeff @angle:cd-ce-cg harmonic 68.168 122.270 # SOURCE5 30 0.9028 + angle_coeff @angle:cf-ne-ne harmonic 87.949 113.170 # SOURCE5 15 1.6715 + angle_coeff @angle:c3-c2-no harmonic 82.781 115.940 # SOURCE5 9 0.9963 + angle_coeff @angle:f-cy-f harmonic 120.355 108.560 # SOURCE5 9 1.2393 + angle_coeff @angle:c2-cy-hc harmonic 46.979 112.800 # SOURCE5 10 0.5936 + angle_coeff @angle:c3-c2-cy harmonic 64.260 117.990 # SOURCE5 10 1.8958 + angle_coeff @angle:c-ce-h4 harmonic 46.659 118.080 # SOURCE5 8 2.4522 + angle_coeff @angle:cf-cc-n harmonic 86.203 124.200 # SOURCE5 10 0.8706 + angle_coeff @angle:cd-cc-i harmonic 60.056 124.280 # SOURCE5 14 1.7120 + angle_coeff @angle:ce-cf-cl harmonic 71.390 121.940 # SOURCE5 20 1.2372 + angle_coeff @angle:cl-c3-p5 harmonic 92.521 109.520 # SOURCE5 9 0.8307 + angle_coeff @angle:c2-c3-no harmonic 83.742 107.190 # SOURCE5 9 0.5470 + angle_coeff @angle:ce-nf-nf harmonic 87.949 113.170 # SOURCE5 15 1.6715 + angle_coeff @angle:c1-c3-cx harmonic 66.544 112.350 # SOURCE5 11 0.3186 + angle_coeff @angle:ce-c3-h2 harmonic 46.896 112.270 # SOURCE5 9 0.2011 + angle_coeff @angle:na-cd-na harmonic 115.931 106.600 # SOURCE5 10 1.3968 + angle_coeff @angle:cx-cx-n4 harmonic 113.255 60.300 # SOURCE5 10 0.1253 + angle_coeff @angle:c1-cx-hc harmonic 48.408 114.860 # SOURCE5 6 0.1269 + angle_coeff @angle:cg-ca-nb harmonic 87.852 116.870 # SOURCE5 10 0.6088 + angle_coeff @angle:ce-c2-f harmonic 90.032 122.620 # SOURCE5 11 1.4117 + angle_coeff @angle:cp-ca-cq harmonic 70.964 111.520 # SOURCE5 8 0.0849 + angle_coeff @angle:cl-py-nf harmonic 67.181 109.160 # SOURCE5 79 0.9726 + angle_coeff @angle:ca-c3-cy harmonic 65.233 112.320 # SOURCE5 7 0.8064 + angle_coeff @angle:ch-cd-nd harmonic 85.036 123.030 # SOURCE5 7 0.2371 + angle_coeff @angle:h1-cy-ss harmonic 41.667 111.560 # SOURCE5 6 1.1376 + angle_coeff @angle:h5-cc-n2 harmonic 63.976 123.280 # SOURCE5 5 1.2554 + angle_coeff @angle:cc-na-cy harmonic 64.047 126.730 # SOURCE5 13 0.8228 + angle_coeff @angle:c-c3-no harmonic 83.428 106.990 # SOURCE5 8 1.0618 + angle_coeff @angle:c3-py-c3 harmonic 46.116 105.720 # SOURCE5 10 2.4094 + angle_coeff @angle:hx-c3-n3 harmonic 60.702 111.730 # SOURCE5 10 0.1463 + angle_coeff @angle:cf-cf-nh harmonic 85.786 116.410 # SOURCE5 70 1.9262 + angle_coeff @angle:c3-n3-py harmonic 81.527 118.270 # SOURCE5 8 1.5513 + angle_coeff @angle:h5-c2-os harmonic 64.726 110.950 # SOURCE5 9 1.4177 + angle_coeff @angle:cc-c3-ce harmonic 66.308 110.890 # SOURCE5 7 2.0183 + angle_coeff @angle:n4-c3-p5 harmonic 104.054 106.090 # SOURCE5 10 1.7975 + angle_coeff @angle:ne-cd-ss harmonic 79.536 126.000 # SOURCE5 6 1.6775 + angle_coeff @angle:na-cd-ne harmonic 111.251 122.470 # SOURCE5 7 2.4448 + angle_coeff @angle:cl-c3-h3 harmonic 48.652 107.660 # SOURCE5 10 0.1942 + angle_coeff @angle:h5-c-s harmonic 44.037 123.510 # SOURCE5 6 0.5125 + angle_coeff @angle:cf-ce-ss harmonic 63.673 120.950 # SOURCE5 15 1.8784 + angle_coeff @angle:c3-c2-f harmonic 87.663 113.280 # SOURCE5 8 1.0861 + angle_coeff @angle:h4-c2-oh harmonic 64.512 114.610 # SOURCE5 8 1.2250 + angle_coeff @angle:ne-ce-nf harmonic 108.272 127.960 # SOURCE5 10 1.2321 + angle_coeff @angle:cc-n-cd harmonic 67.143 121.050 # SOURCE5 7 0.3580 + angle_coeff @angle:f-py-f harmonic 90.389 97.510 # SOURCE5 5 0.2281 + angle_coeff @angle:n-cc-os harmonic 110.414 119.020 # SOURCE5 8 1.4066 + angle_coeff @angle:cq-cp-nb harmonic 85.943 120.010 # SOURCE5 14 1.1266 + angle_coeff @angle:c-c-s harmonic 64.027 121.310 # SOURCE5 8 0.9033 + angle_coeff @angle:cf-ce-os harmonic 88.396 120.230 # SOURCE5 8 2.3122 + angle_coeff @angle:br-ce-c2 harmonic 64.169 120.520 # SOURCE5 8 0.4148 + angle_coeff @angle:cp-nb-na harmonic 87.511 118.110 # SOURCE5 5 0.5760 + angle_coeff @angle:n-s6-oh harmonic 123.280 97.300 # SOURCE5 8 0.9381 + angle_coeff @angle:cd-c3-h2 harmonic 47.679 110.470 # SOURCE5 12 1.1111 + angle_coeff @angle:nb-ca-sy harmonic 81.256 115.730 # SOURCE5 6 0.4033 + angle_coeff @angle:na-sy-o harmonic 122.952 105.300 # SOURCE5 5 1.0811 + angle_coeff @angle:hx-cx-hx harmonic 37.969 115.770 # SOURCE5 9 0.0901 + angle_coeff @angle:cd-cf-ne harmonic 86.147 122.390 # SOURCE5 7 1.4919 + angle_coeff @angle:h5-c-oh harmonic 65.262 109.490 # SOURCE5 7 0.3600 + angle_coeff @angle:cy-n-cy harmonic 71.371 94.550 # SOURCE5 5 0.6286 + angle_coeff @angle:br-c3-no harmonic 81.143 106.960 # SOURCE5 6 2.2092 + angle_coeff @angle:c2-ss-s4 harmonic 73.233 92.420 # SOURCE5 8 0.4009 + angle_coeff @angle:c3-nh-o harmonic 85.477 117.530 # SOURCE5 7 1.0041 + angle_coeff @angle:br-cc-ss harmonic 65.672 120.060 # SOURCE5 6 0.2609 + angle_coeff @angle:c-ce-ss harmonic 64.495 113.230 # SOURCE5 6 1.9344 + angle_coeff @angle:c3-n-n3 harmonic 82.135 117.560 # SOURCE5 6 2.4546 + angle_coeff @angle:h5-ca-na harmonic 62.521 115.800 # SOURCE5 8 0.4738 + angle_coeff @angle:n2-nh-oh harmonic 106.301 117.890 # SOURCE5 6 0.2008 + angle_coeff @angle:c2-c3-p5 harmonic 80.813 112.220 # SOURCE5 6 0.6523 + angle_coeff @angle:c3-cx-nh harmonic 82.121 116.580 # SOURCE5 7 1.1795 + angle_coeff @angle:c2-cc-ss harmonic 62.687 127.480 # SOURCE5 6 0.3389 + angle_coeff @angle:c-ca-na harmonic 84.333 117.810 # SOURCE5 7 2.2477 + angle_coeff @angle:cl-c2-n2 harmonic 91.772 121.450 # SOURCE5 8 0.8251 + angle_coeff @angle:n2-s4-ne harmonic 122.203 104.290 # SOURCE5 8 0.9503 + angle_coeff @angle:nc-c-s harmonic 82.136 124.470 # SOURCE5 7 1.3793 + angle_coeff @angle:o-sy-ss harmonic 85.092 107.590 # SOURCE5 7 2.0694 + angle_coeff @angle:c2-ce-ss harmonic 62.956 123.860 # SOURCE5 5 1.0553 + angle_coeff @angle:c3-cx-ca harmonic 64.734 117.010 # SOURCE5 6 1.1320 + angle_coeff @angle:cc-cc-nf harmonic 87.342 121.680 # SOURCE5 7 1.9093 + angle_coeff @angle:ca-nd-cd harmonic 73.420 104.240 # SOURCE5 8 0.2625 + angle_coeff @angle:cc-n2-oh harmonic 89.258 113.250 # SOURCE5 7 1.6484 + angle_coeff @angle:ca-os-sy harmonic 63.798 118.010 # SOURCE5 8 2.0392 + angle_coeff @angle:hx-c3-p5 harmonic 54.750 107.590 # SOURCE5 7 1.8329 + angle_coeff @angle:ca-ce-n harmonic 83.340 118.990 # SOURCE5 8 0.3821 + angle_coeff @angle:h4-ce-sx harmonic 41.742 115.270 # SOURCE5 5 0.1053 + angle_coeff @angle:c3-ce-ne harmonic 83.806 116.230 # SOURCE5 5 1.2988 + angle_coeff @angle:c1-n1-ce harmonic 61.729 176.870 # SOURCE5 7 0.6686 + angle_coeff @angle:c3-n2-cd harmonic 67.858 117.010 # SOURCE5 6 1.8279 + angle_coeff @angle:cc-c3-h2 harmonic 47.679 110.470 # SOURCE5 12 1.1111 + angle_coeff @angle:ca-ce-cg harmonic 67.208 116.470 # SOURCE5 5 1.0847 + angle_coeff @angle:c2-cc-na harmonic 86.738 123.270 # SOURCE5 6 1.9888 + angle_coeff @angle:ca-c3-s4 harmonic 63.907 109.520 # SOURCE5 7 1.3239 + angle_coeff @angle:n2-cf-nf harmonic 111.801 120.690 # SOURCE5 6 1.4522 + angle_coeff @angle:ce-cf-ss harmonic 63.673 120.950 # SOURCE5 15 1.8784 + angle_coeff @angle:c3-cx-ss harmonic 62.514 114.160 # SOURCE5 7 0.1562 + angle_coeff @angle:nh-ce-nh harmonic 108.620 119.710 # SOURCE5 6 0.4946 + angle_coeff @angle:cd-c-ne harmonic 87.008 112.220 # SOURCE5 6 0.1806 + angle_coeff @angle:na-c3-ss harmonic 82.873 103.150 # SOURCE5 8 0.3361 + angle_coeff @angle:cf-cf-os harmonic 86.756 115.190 # SOURCE5 15 2.1777 + angle_coeff @angle:cx-c3-h2 harmonic 46.468 114.010 # SOURCE5 8 0.8649 + angle_coeff @angle:cv-ss-cy harmonic 79.244 82.620 # SOURCE5 8 0.2654 + angle_coeff @angle:ss-cy-ss harmonic 68.296 95.040 # SOURCE5 6 0.9436 + angle_coeff @angle:ce-cx-os harmonic 82.835 117.210 # SOURCE5 6 1.3466 + angle_coeff @angle:nb-ca-ne harmonic 109.027 121.410 # SOURCE5 6 1.6965 + angle_coeff @angle:br-ca-nb harmonic 81.701 116.350 # SOURCE5 5 0.4508 + angle_coeff @angle:c3-nh-os harmonic 84.400 110.370 # SOURCE5 6 2.4123 + angle_coeff @angle:c2-nh-p5 harmonic 81.068 125.900 # SOURCE5 6 1.8594 + angle_coeff @angle:br-ca-cp harmonic 63.564 121.390 # SOURCE5 7 0.3403 + angle_coeff @angle:cc-ce-cc harmonic 67.224 116.170 # SOURCE5 6 0.4089 + angle_coeff @angle:c3-nh-s6 harmonic 63.928 116.490 # SOURCE5 6 0.5375 + angle_coeff @angle:cx-c3-na harmonic 82.551 114.780 # SOURCE5 7 1.7481 + angle_coeff @angle:ca-os-p3 harmonic 85.566 110.460 # SOURCE5 5 0.0025 + angle_coeff @angle:ce-cf-sy harmonic 62.892 123.190 # SOURCE5 5 0.3760 + angle_coeff @angle:ca-n2-n1 harmonic 92.483 118.480 # SOURCE5 5 0.1464 + angle_coeff @angle:cd-cd-no harmonic 82.299 125.950 # SOURCE5 5 2.2787 + angle_coeff @angle:na-n2-os harmonic 113.058 104.340 # SOURCE5 6 0.3185 + angle_coeff @angle:ce-c3-f harmonic 88.332 110.310 # SOURCE5 6 0.9204 + angle_coeff @angle:cx-cc-na harmonic 81.840 127.210 # SOURCE5 7 2.0873 + angle_coeff @angle:n-n2-na harmonic 113.870 106.040 # SOURCE5 6 0.3975 + angle_coeff @angle:c3-cf-cc harmonic 67.117 117.430 # SOURCE5 5 2.0116 + angle_coeff @angle:ca-na-cy harmonic 63.636 128.060 # SOURCE5 7 0.2603 + angle_coeff @angle:h1-c3-py harmonic 54.323 109.380 # SOURCE5 7 0.4767 + angle_coeff @angle:cy-s6-cy harmonic 75.496 86.770 # SOURCE5 5 1.5405 + angle_coeff @angle:ce-ce-s4 harmonic 63.624 119.120 # SOURCE5 6 0.0093 + angle_coeff @angle:c3-p3-cy harmonic 45.442 103.850 # SOURCE5 6 0.6245 + angle_coeff @angle:h2-cx-os harmonic 60.942 114.700 # SOURCE5 7 1.4166 + angle_coeff @angle:c-c-ce harmonic 64.646 115.440 # SOURCE5 5 1.0373 + angle_coeff @angle:ce-cy-h1 harmonic 46.242 115.490 # SOURCE5 5 0.2559 + angle_coeff @angle:cx-c3-ss harmonic 64.879 105.420 # SOURCE5 7 0.4078 + angle_coeff @angle:cg-ce-ss harmonic 63.731 118.190 # SOURCE5 5 1.0760 + angle_coeff @angle:br-cy-cy harmonic 61.847 119.270 # SOURCE5 6 1.4624 + angle_coeff @angle:c-cy-cl harmonic 71.094 112.180 # SOURCE5 5 2.4165 + angle_coeff @angle:c-cx-n harmonic 81.704 120.510 # SOURCE5 7 1.7811 + angle_coeff @angle:br-c3-f harmonic 82.493 109.620 # SOURCE5 7 0.6251 + angle_coeff @angle:c3-n4-cy harmonic 63.514 112.130 # SOURCE5 5 0.7180 + angle_coeff @angle:ce-cv-ss harmonic 61.912 130.090 # SOURCE5 7 2.1973 + angle_coeff @angle:cc-cd-i harmonic 60.200 124.280 # SOURCE5 14 1.7120 + angle_coeff @angle:c2-ss-ca harmonic 73.005 102.780 # SOURCE5 5 0.7426 + angle_coeff @angle:c-cx-ce harmonic 64.969 116.840 # SOURCE5 7 1.2393 + angle_coeff @angle:cy-nh-cy harmonic 71.537 93.310 # SOURCE5 6 0.3047 + angle_coeff @angle:cx-c-h4 harmonic 46.665 115.380 # SOURCE5 7 0.1819 + angle_coeff @angle:c-n4-c3 harmonic 63.969 108.760 # SOURCE5 7 1.5097 + angle_coeff @angle:f-cy-py harmonic 99.595 113.190 # SOURCE5 8 0.9744 + angle_coeff @angle:n2-c3-ss harmonic 80.436 109.390 # SOURCE5 5 1.4343 + angle_coeff @angle:c3-ss-cf harmonic 71.418 101.280 # SOURCE5 6 2.4411 + angle_coeff @angle:ce-cy-hc harmonic 46.374 114.840 # SOURCE5 5 0.4991 + angle_coeff @angle:br-cc-nc harmonic 82.466 116.250 # SOURCE5 5 0.0824 + angle_coeff @angle:h3-c3-n harmonic 61.280 109.880 # SOURCE5 6 0.7497 + angle_coeff @angle:ca-ne-cd harmonic 67.557 123.670 # SOURCE5 5 2.0742 + angle_coeff @angle:cx-n-cy harmonic 64.984 116.210 # SOURCE5 6 0.4758 + angle_coeff @angle:cl-c3-s4 harmonic 71.477 111.990 # SOURCE5 6 1.5116 + angle_coeff @angle:cp-cq-nb harmonic 85.943 120.010 # SOURCE5 14 1.1266 + angle_coeff @angle:cc-cd-o harmonic 86.659 136.060 # SOURCE5 5 0.5251 + angle_coeff @angle:hx-cy-hx harmonic 38.598 110.800 # SOURCE5 5 0.4155 + angle_coeff @angle:cc-na-sy harmonic 61.877 125.170 # SOURCE5 5 1.1548 + angle_coeff @angle:h1-cy-na harmonic 62.857 106.380 # SOURCE5 5 0.0918 + angle_coeff @angle:h4-cf-sy harmonic 42.563 115.000 # SOURCE5 20 1.1588 + angle_coeff @angle:c-p5-c3 harmonic 44.432 111.280 # SOURCE5 6 2.1227 + angle_coeff @angle:ca-c-nc harmonic 84.546 117.030 # SOURCE5 5 0.2959 + angle_coeff @angle:c3-os-sy harmonic 63.872 115.050 # SOURCE5 5 0.9975 + angle_coeff @angle:cd-ne-sy harmonic 65.441 120.780 # SOURCE5 5 1.2762 + angle_coeff @angle:cx-ca-nb harmonic 85.768 116.900 # SOURCE5 5 0.8439 + angle_coeff @angle:nc-ss-ss harmonic 93.760 97.440 # SOURCE5 6 0.0880 + angle_coeff @angle:hp-p5-os harmonic 45.642 103.080 # SOURCE5 5 0.8064 + angle_coeff @angle:ca-n-oh harmonic 84.294 115.620 # SOURCE5 5 1.0474 + angle_coeff @angle:c3-s6-ne harmonic 91.348 108.190 # SOURCE5 5 0.2914 + angle_coeff @angle:c1-cx-h1 harmonic 48.407 114.800 # SOURCE5 5 0.4789 + angle_coeff @angle:na-c3-oh harmonic 109.816 108.590 # SOURCE5 6 1.4542 + angle_coeff @angle:n-nc-nd harmonic 109.773 119.880 # SOURCE5 5 0.1982 + angle_coeff @angle:c3-na-nb harmonic 85.173 113.140 # SOURCE5 5 0.4557 + angle_coeff @angle:ne-c-os harmonic 113.522 112.010 # SOURCE5 5 1.9012 + angle_coeff @angle:br-ce-ce harmonic 64.975 115.220 # SOURCE5 6 0.2328 + angle_coeff @angle:cc-c2-oh harmonic 91.119 115.180 # SOURCE5 6 0.1517 + angle_coeff @angle:c1-cx-os harmonic 84.507 117.430 # SOURCE5 5 0.5408 + angle_coeff @angle:nc-cc-os harmonic 109.642 121.720 # SOURCE5 5 2.3919 + angle_coeff @angle:br-ce-cf harmonic 63.865 121.600 # SOURCE5 5 1.8246 + angle_coeff @angle:cy-c3-f harmonic 87.269 111.480 # SOURCE5 5 0.6981 + angle_coeff @angle:h5-ce-ne harmonic 62.727 113.650 # SOURCE5 5 0.5892 + angle_coeff @angle:n3-py-n3 harmonic 78.976 104.560 # SOURCE5 5 0.5659 + angle_coeff @angle:br-cc-ca harmonic 62.532 126.640 # SOURCE5 5 0.3204 + angle_coeff @angle:f-c3-na harmonic 113.041 110.410 # SOURCE5 5 0.7067 + angle_coeff @angle:cc-c3-s4 harmonic 63.350 112.000 # SOURCE5 5 0.1216 + angle_coeff @angle:ce-cf-sx harmonic 64.738 112.970 # SOURCE5 5 1.7021 + angle_coeff @angle:cc-cc-i harmonic 59.680 125.790 # SOURCE5 5 1.4784 + angle_coeff @angle:c-cg-ch harmonic 58.652 176.690 # SOURCE5 5 0.2913 + angle_coeff @angle:ce-c3-hx harmonic 47.212 110.880 # SOURCE5 5 0.3335 + angle_coeff @angle:cd-na-cy harmonic 64.047 126.730 # SOURCE5 13 0.8228 + angle_coeff @angle:br-c3-c2 harmonic 63.737 111.170 # SOURCE5 5 1.2445 + angle_coeff @angle:ce-ce-cg harmonic 68.210 114.640 # SOURCE5 5 0.4759 + angle_coeff @angle:cl-cd-nd harmonic 90.599 121.290 # SOURCE5 5 0.8123 + angle_coeff @angle:n-ca-na harmonic 109.145 117.170 # SOURCE5 5 0.3934 + angle_coeff @angle:cx-cd-nd harmonic 83.980 121.600 # SOURCE5 5 0.1341 + angle_coeff @angle:cl-p5-os harmonic 69.550 104.530 # SOURCE5 5 0.1303 + angle_coeff @angle:cx-ss-cy harmonic 73.867 91.640 # SOURCE5 5 0.0761 + angle_coeff @angle:cc-cg-ch harmonic 59.342 177.060 # SOURCE5 5 0.7516 + angle_coeff @angle:cc-sy-oh harmonic 92.772 104.120 # SOURCE5 5 0.3761 + angle_coeff @angle:cq-ca-os harmonic 87.894 116.910 # SOURCE5 38 1.2997 + angle_coeff @angle:ca-cd-ca harmonic 65.280 122.940 # SOURCE5 37 2.3284 + angle_coeff @angle:f-py-nf harmonic 83.682 108.600 # SOURCE5 47 0.7739 + angle_coeff @angle:ca-nh-cf harmonic 65.017 127.740 # SOURCE5 32 0.9569 + angle_coeff @angle:cf-cx-cx harmonic 64.347 118.620 # SOURCE5 40 1.7472 + angle_coeff @angle:py-nf-py harmonic 111.020 121.410 # SOURCE5 34 1.5196 + angle_coeff @angle:c-cc-ss harmonic 62.961 121.970 # SOURCE5 29 2.1476 + angle_coeff @angle:cc-na-cx harmonic 66.440 116.390 # SOURCE5 14 0.5535 + angle_coeff @angle:c2-cf-cx harmonic 66.366 122.740 # SOURCE5 23 1.5745 + angle_coeff @angle:ce-cd-os harmonic 87.197 123.070 # SOURCE5 15 1.3662 + angle_coeff @angle:cd-cc-cx harmonic 66.301 124.150 # SOURCE5 10 1.8770 + angle_coeff @angle:cf-n1-n1 harmonic 77.561 177.620 # SOURCE5 10 0.5740 + angle_coeff @angle:cf-n-hn harmonic 48.071 113.830 # SOURCE5 11 1.3642 + angle_coeff @angle:ce-ce-nf harmonic 86.585 120.790 # SOURCE5 9 1.8014 + angle_coeff @angle:cf-no-o harmonic 86.024 118.220 # SOURCE5 11 0.7792 + angle_coeff @angle:h4-cf-nh harmonic 62.318 115.580 # SOURCE5 10 0.8050 + angle_coeff @angle:nf-c-s harmonic 82.148 124.230 # SOURCE5 9 1.7990 + angle_coeff @angle:na-cd-sh harmonic 79.224 122.950 # SOURCE5 9 1.1542 + angle_coeff @angle:cc-cy-hc harmonic 48.302 107.200 # SOURCE5 8 0.5300 + angle_coeff @angle:cf-cc-na harmonic 85.967 124.930 # SOURCE5 9 0.9918 + angle_coeff @angle:c-cf-h4 harmonic 46.659 118.080 # SOURCE5 8 2.4522 + angle_coeff @angle:ce-cd-n harmonic 86.203 124.200 # SOURCE5 10 0.8706 + angle_coeff @angle:cf-c3-h2 harmonic 46.902 112.270 # SOURCE5 9 0.2011 + angle_coeff @angle:na-cc-na harmonic 115.931 106.600 # SOURCE5 10 1.3968 + angle_coeff @angle:ch-ca-nb harmonic 87.852 116.870 # SOURCE5 10 0.6088 + angle_coeff @angle:cf-c2-f harmonic 90.032 122.620 # SOURCE5 11 1.4117 + angle_coeff @angle:cg-cc-nc harmonic 85.036 123.030 # SOURCE5 7 0.2371 + angle_coeff @angle:h5-cd-n2 harmonic 63.978 123.280 # SOURCE5 5 1.2554 + angle_coeff @angle:cd-c3-cf harmonic 66.313 110.890 # SOURCE5 7 2.0183 + angle_coeff @angle:nf-cc-ss harmonic 79.536 126.000 # SOURCE5 6 1.6775 + angle_coeff @angle:na-cc-nf harmonic 111.251 122.470 # SOURCE5 7 2.4448 + angle_coeff @angle:nf-cf-ne harmonic 108.272 127.960 # SOURCE5 10 1.2321 + angle_coeff @angle:n-cd-os harmonic 110.414 119.020 # SOURCE5 8 1.4066 + angle_coeff @angle:ce-cf-os harmonic 88.396 120.230 # SOURCE5 8 2.3122 + angle_coeff @angle:br-cf-c2 harmonic 64.169 120.520 # SOURCE5 8 0.4148 + angle_coeff @angle:cq-nb-na harmonic 87.511 118.110 # SOURCE5 5 0.5760 + angle_coeff @angle:cc-ce-nf harmonic 86.147 122.390 # SOURCE5 7 1.4919 + angle_coeff @angle:cf-s4-ss harmonic 74.492 88.650 # SOURCE5 8 0.4156 + angle_coeff @angle:br-cd-ss harmonic 65.672 120.060 # SOURCE5 6 0.2609 + angle_coeff @angle:c-cf-ss harmonic 64.495 113.230 # SOURCE5 6 1.9344 + angle_coeff @angle:c2-cd-ss harmonic 62.687 127.480 # SOURCE5 6 0.3389 + angle_coeff @angle:n2-s4-nf harmonic 122.203 104.290 # SOURCE5 8 0.9503 + angle_coeff @angle:nd-c-s harmonic 82.136 124.470 # SOURCE5 7 1.3793 + angle_coeff @angle:c2-cf-ss harmonic 62.956 123.860 # SOURCE5 5 1.0553 + angle_coeff @angle:cd-cd-ne harmonic 87.342 121.680 # SOURCE5 7 1.9093 + angle_coeff @angle:ca-nc-cc harmonic 73.420 104.240 # SOURCE5 8 0.2625 + angle_coeff @angle:cd-n2-oh harmonic 89.258 113.250 # SOURCE5 7 1.6484 + angle_coeff @angle:ca-cf-n harmonic 83.340 118.990 # SOURCE5 8 0.3821 + angle_coeff @angle:h4-cf-sx harmonic 41.742 115.270 # SOURCE5 5 0.1053 + angle_coeff @angle:c3-cf-nf harmonic 83.812 116.230 # SOURCE5 5 1.2988 + angle_coeff @angle:c1-n1-cf harmonic 61.729 176.870 # SOURCE5 7 0.6686 + angle_coeff @angle:c3-n2-cc harmonic 67.858 117.010 # SOURCE5 6 1.8279 + angle_coeff @angle:ca-cf-ch harmonic 67.208 116.470 # SOURCE5 5 1.0847 + angle_coeff @angle:c2-cd-na harmonic 86.738 123.270 # SOURCE5 6 1.9888 + angle_coeff @angle:n2-ce-ne harmonic 111.801 120.690 # SOURCE5 6 1.4522 + angle_coeff @angle:nh-cf-nh harmonic 108.620 119.710 # SOURCE5 6 0.4946 + angle_coeff @angle:cc-c-nf harmonic 87.008 112.220 # SOURCE5 6 0.1806 + angle_coeff @angle:cf-cx-os harmonic 82.835 117.210 # SOURCE5 6 1.3466 + angle_coeff @angle:nb-ca-nf harmonic 109.027 121.410 # SOURCE5 6 1.6965 + angle_coeff @angle:br-ca-cq harmonic 63.564 121.390 # SOURCE5 7 0.3403 + angle_coeff @angle:cd-cf-cd harmonic 67.224 116.170 # SOURCE5 6 0.4089 + angle_coeff @angle:cf-ce-sy harmonic 62.892 123.190 # SOURCE5 5 0.3760 + angle_coeff @angle:cc-cc-no harmonic 82.299 125.950 # SOURCE5 5 2.2787 + angle_coeff @angle:cf-c3-f harmonic 88.340 110.310 # SOURCE5 6 0.9204 + angle_coeff @angle:cx-cd-na harmonic 81.840 127.210 # SOURCE5 7 2.0873 + angle_coeff @angle:c3-ce-cd harmonic 67.111 117.430 # SOURCE5 5 2.0116 + angle_coeff @angle:cf-cf-s4 harmonic 63.624 119.120 # SOURCE5 6 0.0093 + angle_coeff @angle:c-c-cf harmonic 64.646 115.440 # SOURCE5 5 1.0373 + angle_coeff @angle:cf-cy-h1 harmonic 46.242 115.490 # SOURCE5 5 0.2559 + angle_coeff @angle:ch-cf-ss harmonic 63.731 118.190 # SOURCE5 5 1.0760 + angle_coeff @angle:cf-cv-ss harmonic 61.912 130.090 # SOURCE5 7 2.1973 + angle_coeff @angle:c-cx-cf harmonic 64.969 116.840 # SOURCE5 7 1.2393 + angle_coeff @angle:c3-ss-ce harmonic 71.418 101.280 # SOURCE5 6 2.4411 + angle_coeff @angle:cf-cy-hc harmonic 46.374 114.840 # SOURCE5 5 0.4991 + angle_coeff @angle:br-cd-nd harmonic 82.466 116.250 # SOURCE5 5 0.0824 + angle_coeff @angle:ca-nf-cc harmonic 67.557 123.670 # SOURCE5 5 2.0742 + angle_coeff @angle:cd-cc-o harmonic 86.659 136.060 # SOURCE5 5 0.5251 + angle_coeff @angle:cd-na-sy harmonic 61.877 125.170 # SOURCE5 5 1.1548 + angle_coeff @angle:ca-c-nd harmonic 84.546 117.030 # SOURCE5 5 0.2959 + angle_coeff @angle:cc-nf-sy harmonic 65.441 120.780 # SOURCE5 5 1.2762 + angle_coeff @angle:nd-ss-ss harmonic 93.760 97.440 # SOURCE5 6 0.0880 + angle_coeff @angle:c3-s6-nf harmonic 91.348 108.190 # SOURCE5 5 0.2914 + angle_coeff @angle:n-nd-nc harmonic 109.773 119.880 # SOURCE5 5 0.1982 + angle_coeff @angle:nf-c-os harmonic 113.522 112.010 # SOURCE5 5 1.9012 + angle_coeff @angle:br-cf-cf harmonic 64.975 115.220 # SOURCE5 6 0.2328 + angle_coeff @angle:cd-c2-oh harmonic 91.119 115.180 # SOURCE5 6 0.1517 + angle_coeff @angle:nd-cd-os harmonic 109.642 121.720 # SOURCE5 5 2.3919 + angle_coeff @angle:br-cf-ce harmonic 63.865 121.600 # SOURCE5 5 1.8246 + angle_coeff @angle:h5-cf-nf harmonic 62.727 113.650 # SOURCE5 5 0.5892 + angle_coeff @angle:br-cd-ca harmonic 62.532 126.640 # SOURCE5 5 0.3204 + angle_coeff @angle:cd-c3-s4 harmonic 63.350 112.000 # SOURCE5 5 0.1216 + angle_coeff @angle:cf-ce-sx harmonic 64.738 112.970 # SOURCE5 5 1.7021 + angle_coeff @angle:cd-cd-i harmonic 59.818 125.790 # SOURCE5 5 1.4784 + angle_coeff @angle:c-ch-cg harmonic 58.652 176.690 # SOURCE5 5 0.2913 + angle_coeff @angle:cf-c3-hx harmonic 47.217 110.880 # SOURCE5 5 0.3335 + angle_coeff @angle:cf-cf-ch harmonic 68.210 114.640 # SOURCE5 5 0.4759 + angle_coeff @angle:cl-cc-nc harmonic 90.599 121.290 # SOURCE5 5 0.8123 + angle_coeff @angle:cx-cc-nc harmonic 83.980 121.600 # SOURCE5 5 0.1341 + angle_coeff @angle:cd-ch-cg harmonic 59.342 177.060 # SOURCE5 5 0.7516 + angle_coeff @angle:cd-sy-oh harmonic 92.772 104.120 # SOURCE5 5 0.3761 + } # (end of angle_coeffs) + + write_once("Data Angles By Type") { + @angle:hw-ow-hw @atom:hw @atom:ow @atom:hw + @angle:hw-hw-ow @atom:hw @atom:hw @atom:ow + @angle:br-c1-br @atom:br @atom:c1 @atom:br + @angle:br-c1-c1 @atom:br @atom:c1 @atom:c1 + @angle:c1-c1-c1 @atom:c1 @atom:c1 @atom:c1 + @angle:c1-c1-c2 @atom:c1 @atom:c1 @atom:c2 + @angle:c1-c1-c3 @atom:c1 @atom:c1 @atom:c3 + @angle:c1-c1-ca @atom:c1 @atom:c1 @atom:ca + @angle:c1-c1-cl @atom:c1 @atom:c1 @atom:cl + @angle:c1-c1-f @atom:c1 @atom:c1 @atom:f + @angle:c1-c1-ha @atom:c1 @atom:c1 @atom:ha + @angle:c1-c1-hc @atom:c1 @atom:c1 @atom:hc + @angle:c1-c1-i @atom:c1 @atom:c1 @atom:i + @angle:c1-c1-n1 @atom:c1 @atom:c1 @atom:n1 + @angle:c1-c1-n2 @atom:c1 @atom:c1 @atom:n2 + @angle:c1-c1-n3 @atom:c1 @atom:c1 @atom:n3 + @angle:c1-c1-n4 @atom:c1 @atom:c1 @atom:n4 + @angle:c1-c1-n @atom:c1 @atom:c1 @atom:n + @angle:c1-c1-na @atom:c1 @atom:c1 @atom:na + @angle:c1-c1-nh @atom:c1 @atom:c1 @atom:nh + @angle:c1-c1-no @atom:c1 @atom:c1 @atom:no + @angle:c1-c1-o @atom:c1 @atom:c1 @atom:o + @angle:c1-c1-oh @atom:c1 @atom:c1 @atom:oh + @angle:c1-c1-os @atom:c1 @atom:c1 @atom:os + @angle:c1-c1-p2 @atom:c1 @atom:c1 @atom:p2 + @angle:c1-c1-p3 @atom:c1 @atom:c1 @atom:p3 + @angle:c1-c1-p4 @atom:c1 @atom:c1 @atom:p4 + @angle:c1-c1-p5 @atom:c1 @atom:c1 @atom:p5 + @angle:c1-c1-s4 @atom:c1 @atom:c1 @atom:s4 + @angle:c1-c1-s6 @atom:c1 @atom:c1 @atom:s6 + @angle:c1-c1-s @atom:c1 @atom:c1 @atom:s + @angle:c1-c1-sh @atom:c1 @atom:c1 @atom:sh + @angle:c1-c1-ss @atom:c1 @atom:c1 @atom:ss + @angle:c2-c1-c2 @atom:c2 @atom:c1 @atom:c2 + @angle:c2-c1-ce @atom:c2 @atom:c1 @atom:ce + @angle:c2-c1-n1 @atom:c2 @atom:c1 @atom:n1 + @angle:c2-c1-o @atom:c2 @atom:c1 @atom:o + @angle:c2-c1-s2 @atom:c2 @atom:c1 @atom:s2 + @angle:c3-c1-c3 @atom:c3 @atom:c1 @atom:c3 + @angle:c3-c1-cg @atom:c3 @atom:c1 @atom:cg + @angle:c3-c1-n1 @atom:c3 @atom:c1 @atom:n1 + @angle:ca-c1-ca @atom:ca @atom:c1 @atom:ca + @angle:c-c1-c1 @atom:c @atom:c1 @atom:c1 + @angle:cg-c1-ha @atom:cg @atom:c1 @atom:ha + @angle:ch-c1-ha @atom:ch @atom:c1 @atom:ha + @angle:cl-c1-cl @atom:cl @atom:c1 @atom:cl + @angle:f-c1-f @atom:f @atom:c1 @atom:f + @angle:i-c1-i @atom:i @atom:c1 @atom:i + @angle:n1-c1-n1 @atom:n1 @atom:c1 @atom:n1 + @angle:n1-c1-n3 @atom:n1 @atom:c1 @atom:n3 + @angle:n1-c1-nh @atom:n1 @atom:c1 @atom:nh + @angle:n1-c1-os @atom:n1 @atom:c1 @atom:os + @angle:n1-c1-p3 @atom:n1 @atom:c1 @atom:p3 + @angle:n1-c1-ss @atom:n1 @atom:c1 @atom:ss + @angle:n2-c1-n2 @atom:n2 @atom:c1 @atom:n2 + @angle:n2-c1-o @atom:n2 @atom:c1 @atom:o + @angle:n2-c1-s @atom:n2 @atom:c1 @atom:s + @angle:n3-c1-n3 @atom:n3 @atom:c1 @atom:n3 + @angle:n4-c1-n4 @atom:n4 @atom:c1 @atom:n4 + @angle:na-c1-na @atom:na @atom:c1 @atom:na + @angle:ne-c1-o @atom:ne @atom:c1 @atom:o + @angle:ne-c1-s @atom:ne @atom:c1 @atom:s + @angle:nf-c1-o @atom:nf @atom:c1 @atom:o + @angle:nh-c1-nh @atom:nh @atom:c1 @atom:nh + @angle:n-c1-n @atom:n @atom:c1 @atom:n + @angle:no-c1-no @atom:no @atom:c1 @atom:no + @angle:oh-c1-oh @atom:oh @atom:c1 @atom:oh + @angle:o-c1-o @atom:o @atom:c1 @atom:o + @angle:os-c1-os @atom:os @atom:c1 @atom:os + @angle:p2-c1-p2 @atom:p2 @atom:c1 @atom:p2 + @angle:p3-c1-p3 @atom:p3 @atom:c1 @atom:p3 + @angle:p4-c1-p4 @atom:p4 @atom:c1 @atom:p4 + @angle:p5-c1-p5 @atom:p5 @atom:c1 @atom:p5 + @angle:s2-c1-s2 @atom:s2 @atom:c1 @atom:s2 + @angle:s4-c1-s4 @atom:s4 @atom:c1 @atom:s4 + @angle:s6-c1-s6 @atom:s6 @atom:c1 @atom:s6 + @angle:sh-c1-sh @atom:sh @atom:c1 @atom:sh + @angle:s-c1-s @atom:s @atom:c1 @atom:s + @angle:ss-c1-ss @atom:ss @atom:c1 @atom:ss + @angle:br-c2-br @atom:br @atom:c2 @atom:br + @angle:br-c2-c2 @atom:br @atom:c2 @atom:c2 + @angle:br-c2-c3 @atom:br @atom:c2 @atom:c3 + @angle:br-c2-ce @atom:br @atom:c2 @atom:ce + @angle:br-c2-h4 @atom:br @atom:c2 @atom:h4 + @angle:br-c2-ha @atom:br @atom:c2 @atom:ha + @angle:c1-c2-c1 @atom:c1 @atom:c2 @atom:c1 + @angle:c1-c2-c2 @atom:c1 @atom:c2 @atom:c2 + @angle:c1-c2-c3 @atom:c1 @atom:c2 @atom:c3 + @angle:c1-c2-f @atom:c1 @atom:c2 @atom:f + @angle:c1-c2-ha @atom:c1 @atom:c2 @atom:ha + @angle:c2-c2-c2 @atom:c2 @atom:c2 @atom:c2 + @angle:c2-c2-c3 @atom:c2 @atom:c2 @atom:c3 + @angle:c2-c2-ca @atom:c2 @atom:c2 @atom:ca + @angle:c2-c2-cc @atom:c2 @atom:c2 @atom:cc + @angle:c2-c2-cd @atom:c2 @atom:c2 @atom:cd + @angle:c2-c2-cl @atom:c2 @atom:c2 @atom:cl + @angle:c2-c2-cx @atom:c2 @atom:c2 @atom:cx + @angle:c2-c2-cy @atom:c2 @atom:c2 @atom:cy + @angle:c2-c2-f @atom:c2 @atom:c2 @atom:f + @angle:c2-c2-h4 @atom:c2 @atom:c2 @atom:h4 + @angle:c2-c2-ha @atom:c2 @atom:c2 @atom:ha + @angle:c2-c2-hc @atom:c2 @atom:c2 @atom:hc + @angle:c2-c2-hx @atom:c2 @atom:c2 @atom:hx + @angle:c2-c2-i @atom:c2 @atom:c2 @atom:i + @angle:c2-c2-n1 @atom:c2 @atom:c2 @atom:n1 + @angle:c2-c2-n2 @atom:c2 @atom:c2 @atom:n2 + @angle:c2-c2-n3 @atom:c2 @atom:c2 @atom:n3 + @angle:c2-c2-n4 @atom:c2 @atom:c2 @atom:n4 + @angle:c2-c2-n @atom:c2 @atom:c2 @atom:n + @angle:c2-c2-na @atom:c2 @atom:c2 @atom:na + @angle:c2-c2-nh @atom:c2 @atom:c2 @atom:nh + @angle:c2-c2-no @atom:c2 @atom:c2 @atom:no + @angle:c2-c2-o @atom:c2 @atom:c2 @atom:o + @angle:c2-c2-oh @atom:c2 @atom:c2 @atom:oh + @angle:c2-c2-os @atom:c2 @atom:c2 @atom:os + @angle:c2-c2-p2 @atom:c2 @atom:c2 @atom:p2 + @angle:c2-c2-p3 @atom:c2 @atom:c2 @atom:p3 + @angle:c2-c2-p4 @atom:c2 @atom:c2 @atom:p4 + @angle:c2-c2-p5 @atom:c2 @atom:c2 @atom:p5 + @angle:c2-c2-s4 @atom:c2 @atom:c2 @atom:s4 + @angle:c2-c2-s6 @atom:c2 @atom:c2 @atom:s6 + @angle:c2-c2-s @atom:c2 @atom:c2 @atom:s + @angle:c2-c2-sh @atom:c2 @atom:c2 @atom:sh + @angle:c2-c2-ss @atom:c2 @atom:c2 @atom:ss + @angle:c3-c2-c3 @atom:c3 @atom:c2 @atom:c3 + @angle:c3-c2-cc @atom:c3 @atom:c2 @atom:cc + @angle:c3-c2-cd @atom:c3 @atom:c2 @atom:cd + @angle:c3-c2-ce @atom:c3 @atom:c2 @atom:ce + @angle:c3-c2-cf @atom:c3 @atom:c2 @atom:cf + @angle:c3-c2-h4 @atom:c3 @atom:c2 @atom:h4 + @angle:c3-c2-ha @atom:c3 @atom:c2 @atom:ha + @angle:c3-c2-hc @atom:c3 @atom:c2 @atom:hc + @angle:c3-c2-n2 @atom:c3 @atom:c2 @atom:n2 + @angle:c3-c2-n @atom:c3 @atom:c2 @atom:n + @angle:c3-c2-na @atom:c3 @atom:c2 @atom:na + @angle:c3-c2-ne @atom:c3 @atom:c2 @atom:ne + @angle:c3-c2-nf @atom:c3 @atom:c2 @atom:nf + @angle:c3-c2-nh @atom:c3 @atom:c2 @atom:nh + @angle:c3-c2-o @atom:c3 @atom:c2 @atom:o + @angle:c3-c2-oh @atom:c3 @atom:c2 @atom:oh + @angle:c3-c2-os @atom:c3 @atom:c2 @atom:os + @angle:c3-c2-p2 @atom:c3 @atom:c2 @atom:p2 + @angle:c3-c2-s @atom:c3 @atom:c2 @atom:s + @angle:c3-c2-ss @atom:c3 @atom:c2 @atom:ss + @angle:ca-c2-ca @atom:ca @atom:c2 @atom:ca + @angle:ca-c2-hc @atom:ca @atom:c2 @atom:hc + @angle:c-c2-c2 @atom:c @atom:c2 @atom:c2 + @angle:c-c2-c3 @atom:c @atom:c2 @atom:c3 + @angle:c-c2-c @atom:c @atom:c2 @atom:c + @angle:cc-c2-h4 @atom:cc @atom:c2 @atom:h4 + @angle:cc-c2-ha @atom:cc @atom:c2 @atom:ha + @angle:cc-c2-nh @atom:cc @atom:c2 @atom:nh + @angle:cc-c2-o @atom:cc @atom:c2 @atom:o + @angle:cd-c2-ha @atom:cd @atom:c2 @atom:ha + @angle:ce-c2-cl @atom:ce @atom:c2 @atom:cl + @angle:ce-c2-h4 @atom:ce @atom:c2 @atom:h4 + @angle:ce-c2-ha @atom:ce @atom:c2 @atom:ha + @angle:ce-c2-na @atom:ce @atom:c2 @atom:na + @angle:ce-c2-nh @atom:ce @atom:c2 @atom:nh + @angle:ce-c2-no @atom:ce @atom:c2 @atom:no + @angle:ce-c2-o @atom:ce @atom:c2 @atom:o + @angle:ce-c2-oh @atom:ce @atom:c2 @atom:oh + @angle:ce-c2-os @atom:ce @atom:c2 @atom:os + @angle:cf-c2-ha @atom:cf @atom:c2 @atom:ha + @angle:c-c2-ha @atom:c @atom:c2 @atom:ha + @angle:c-c2-hc @atom:c @atom:c2 @atom:hc + @angle:cl-c2-cl @atom:cl @atom:c2 @atom:cl + @angle:cl-c2-h4 @atom:cl @atom:c2 @atom:h4 + @angle:cl-c2-ha @atom:cl @atom:c2 @atom:ha + @angle:cx-c2-ha @atom:cx @atom:c2 @atom:ha + @angle:f-c2-f @atom:f @atom:c2 @atom:f + @angle:f-c2-ha @atom:f @atom:c2 @atom:ha + @angle:h4-c2-n2 @atom:h4 @atom:c2 @atom:n2 + @angle:h4-c2-n @atom:h4 @atom:c2 @atom:n + @angle:h4-c2-na @atom:h4 @atom:c2 @atom:na + @angle:h4-c2-ne @atom:h4 @atom:c2 @atom:ne + @angle:h4-c2-nh @atom:h4 @atom:c2 @atom:nh + @angle:h4-c2-no @atom:h4 @atom:c2 @atom:no + @angle:h4-c2-os @atom:h4 @atom:c2 @atom:os + @angle:h4-c2-ss @atom:h4 @atom:c2 @atom:ss + @angle:h5-c2-n2 @atom:h5 @atom:c2 @atom:n2 + @angle:h5-c2-na @atom:h5 @atom:c2 @atom:na + @angle:h5-c2-ne @atom:h5 @atom:c2 @atom:ne + @angle:h5-c2-nh @atom:h5 @atom:c2 @atom:nh + @angle:ha-c2-ha @atom:ha @atom:c2 @atom:ha + @angle:ha-c2-n1 @atom:ha @atom:c2 @atom:n1 + @angle:ha-c2-n2 @atom:ha @atom:c2 @atom:n2 + @angle:ha-c2-n3 @atom:ha @atom:c2 @atom:n3 + @angle:ha-c2-n @atom:ha @atom:c2 @atom:n + @angle:ha-c2-na @atom:ha @atom:c2 @atom:na + @angle:ha-c2-ne @atom:ha @atom:c2 @atom:ne + @angle:ha-c2-nf @atom:ha @atom:c2 @atom:nf + @angle:ha-c2-nh @atom:ha @atom:c2 @atom:nh + @angle:ha-c2-no @atom:ha @atom:c2 @atom:no + @angle:ha-c2-o @atom:ha @atom:c2 @atom:o + @angle:ha-c2-oh @atom:ha @atom:c2 @atom:oh + @angle:ha-c2-os @atom:ha @atom:c2 @atom:os + @angle:ha-c2-p2 @atom:ha @atom:c2 @atom:p2 + @angle:ha-c2-p3 @atom:ha @atom:c2 @atom:p3 + @angle:ha-c2-p4 @atom:ha @atom:c2 @atom:p4 + @angle:ha-c2-p5 @atom:ha @atom:c2 @atom:p5 + @angle:ha-c2-pe @atom:ha @atom:c2 @atom:pe + @angle:ha-c2-pf @atom:ha @atom:c2 @atom:pf + @angle:ha-c2-s2 @atom:ha @atom:c2 @atom:s2 + @angle:ha-c2-s4 @atom:ha @atom:c2 @atom:s4 + @angle:ha-c2-s @atom:ha @atom:c2 @atom:s + @angle:ha-c2-s6 @atom:ha @atom:c2 @atom:s6 + @angle:ha-c2-sh @atom:ha @atom:c2 @atom:sh + @angle:ha-c2-ss @atom:ha @atom:c2 @atom:ss + @angle:hc-c2-hc @atom:hc @atom:c2 @atom:hc + @angle:hc-c2-n2 @atom:hc @atom:c2 @atom:n2 + @angle:hc-c2-n @atom:hc @atom:c2 @atom:n + @angle:hc-c2-na @atom:hc @atom:c2 @atom:na + @angle:hc-c2-nh @atom:hc @atom:c2 @atom:nh + @angle:hc-c2-no @atom:hc @atom:c2 @atom:no + @angle:hc-c2-oh @atom:hc @atom:c2 @atom:oh + @angle:hc-c2-os @atom:hc @atom:c2 @atom:os + @angle:hc-c2-p3 @atom:hc @atom:c2 @atom:p3 + @angle:hc-c2-p5 @atom:hc @atom:c2 @atom:p5 + @angle:hc-c2-s4 @atom:hc @atom:c2 @atom:s4 + @angle:hc-c2-s6 @atom:hc @atom:c2 @atom:s6 + @angle:hc-c2-sh @atom:hc @atom:c2 @atom:sh + @angle:hc-c2-ss @atom:hc @atom:c2 @atom:ss + @angle:hx-c2-n4 @atom:hx @atom:c2 @atom:n4 + @angle:i-c2-i @atom:i @atom:c2 @atom:i + @angle:n1-c2-n1 @atom:n1 @atom:c2 @atom:n1 + @angle:n2-c2-n2 @atom:n2 @atom:c2 @atom:n2 + @angle:n2-c2-n4 @atom:n2 @atom:c2 @atom:n4 + @angle:n2-c2-na @atom:n2 @atom:c2 @atom:na + @angle:n2-c2-nh @atom:n2 @atom:c2 @atom:nh + @angle:n2-c2-oh @atom:n2 @atom:c2 @atom:oh + @angle:n2-c2-os @atom:n2 @atom:c2 @atom:os + @angle:n2-c2-ss @atom:n2 @atom:c2 @atom:ss + @angle:n3-c2-n3 @atom:n3 @atom:c2 @atom:n3 + @angle:n4-c2-n4 @atom:n4 @atom:c2 @atom:n4 + @angle:n4-c2-ss @atom:n4 @atom:c2 @atom:ss + @angle:na-c2-na @atom:na @atom:c2 @atom:na + @angle:ne-c2-nh @atom:ne @atom:c2 @atom:nh + @angle:ne-c2-os @atom:ne @atom:c2 @atom:os + @angle:ne-c2-ss @atom:ne @atom:c2 @atom:ss + @angle:nf-c2-nh @atom:nf @atom:c2 @atom:nh + @angle:nh-c2-nh @atom:nh @atom:c2 @atom:nh + @angle:nh-c2-oh @atom:nh @atom:c2 @atom:oh + @angle:nh-c2-os @atom:nh @atom:c2 @atom:os + @angle:nh-c2-ss @atom:nh @atom:c2 @atom:ss + @angle:n-c2-n2 @atom:n @atom:c2 @atom:n2 + @angle:n-c2-n @atom:n @atom:c2 @atom:n + @angle:n-c2-na @atom:n @atom:c2 @atom:na + @angle:n-c2-ne @atom:n @atom:c2 @atom:ne + @angle:n-c2-nh @atom:n @atom:c2 @atom:nh + @angle:no-c2-no @atom:no @atom:c2 @atom:no + @angle:n-c2-ss @atom:n @atom:c2 @atom:ss + @angle:oh-c2-oh @atom:oh @atom:c2 @atom:oh + @angle:o-c2-o @atom:o @atom:c2 @atom:o + @angle:o-c2-oh @atom:o @atom:c2 @atom:oh + @angle:o-c2-s @atom:o @atom:c2 @atom:s + @angle:os-c2-os @atom:os @atom:c2 @atom:os + @angle:p2-c2-p2 @atom:p2 @atom:c2 @atom:p2 + @angle:p3-c2-p3 @atom:p3 @atom:c2 @atom:p3 + @angle:p5-c2-p5 @atom:p5 @atom:c2 @atom:p5 + @angle:s4-c2-s4 @atom:s4 @atom:c2 @atom:s4 + @angle:s4-c2-s6 @atom:s4 @atom:c2 @atom:s6 + @angle:s6-c2-s6 @atom:s6 @atom:c2 @atom:s6 + @angle:sh-c2-sh @atom:sh @atom:c2 @atom:sh + @angle:sh-c2-ss @atom:sh @atom:c2 @atom:ss + @angle:s-c2-s @atom:s @atom:c2 @atom:s + @angle:ss-c2-ss @atom:ss @atom:c2 @atom:ss + @angle:br-c3-br @atom:br @atom:c3 @atom:br + @angle:br-c3-c1 @atom:br @atom:c3 @atom:c1 + @angle:br-c3-c3 @atom:br @atom:c3 @atom:c3 + @angle:br-c3-c @atom:br @atom:c3 @atom:c + @angle:br-c3-h1 @atom:br @atom:c3 @atom:h1 + @angle:br-c3-h2 @atom:br @atom:c3 @atom:h2 + @angle:br-c3-hc @atom:br @atom:c3 @atom:hc + @angle:c1-c3-c1 @atom:c1 @atom:c3 @atom:c1 + @angle:c1-c3-c2 @atom:c1 @atom:c3 @atom:c2 + @angle:c1-c3-c3 @atom:c1 @atom:c3 @atom:c3 + @angle:c1-c3-ca @atom:c1 @atom:c3 @atom:ca + @angle:c1-c3-cc @atom:c1 @atom:c3 @atom:cc + @angle:c1-c3-cd @atom:c1 @atom:c3 @atom:cd + @angle:c1-c3-cl @atom:c1 @atom:c3 @atom:cl + @angle:c1-c3-h1 @atom:c1 @atom:c3 @atom:h1 + @angle:c1-c3-hc @atom:c1 @atom:c3 @atom:hc + @angle:c1-c3-hx @atom:c1 @atom:c3 @atom:hx + @angle:c1-c3-n3 @atom:c1 @atom:c3 @atom:n3 + @angle:c1-c3-n4 @atom:c1 @atom:c3 @atom:n4 + @angle:c1-c3-n @atom:c1 @atom:c3 @atom:n + @angle:c1-c3-nh @atom:c1 @atom:c3 @atom:nh + @angle:c1-c3-oh @atom:c1 @atom:c3 @atom:oh + @angle:c1-c3-os @atom:c1 @atom:c3 @atom:os + @angle:c2-c3-c2 @atom:c2 @atom:c3 @atom:c2 + @angle:c2-c3-c3 @atom:c2 @atom:c3 @atom:c3 + @angle:c2-c3-ca @atom:c2 @atom:c3 @atom:ca + @angle:c2-c3-cc @atom:c2 @atom:c3 @atom:cc + @angle:c2-c3-cd @atom:c2 @atom:c3 @atom:cd + @angle:c2-c3-ce @atom:c2 @atom:c3 @atom:ce + @angle:c2-c3-cf @atom:c2 @atom:c3 @atom:cf + @angle:c2-c3-cl @atom:c2 @atom:c3 @atom:cl + @angle:c2-c3-cx @atom:c2 @atom:c3 @atom:cx + @angle:c2-c3-cy @atom:c2 @atom:c3 @atom:cy + @angle:c2-c3-f @atom:c2 @atom:c3 @atom:f + @angle:c2-c3-h1 @atom:c2 @atom:c3 @atom:h1 + @angle:c2-c3-h2 @atom:c2 @atom:c3 @atom:h2 + @angle:c2-c3-hc @atom:c2 @atom:c3 @atom:hc + @angle:c2-c3-hx @atom:c2 @atom:c3 @atom:hx + @angle:c2-c3-n2 @atom:c2 @atom:c3 @atom:n2 + @angle:c2-c3-n3 @atom:c2 @atom:c3 @atom:n3 + @angle:c2-c3-n @atom:c2 @atom:c3 @atom:n + @angle:c2-c3-na @atom:c2 @atom:c3 @atom:na + @angle:c2-c3-nh @atom:c2 @atom:c3 @atom:nh + @angle:c2-c3-oh @atom:c2 @atom:c3 @atom:oh + @angle:c2-c3-os @atom:c2 @atom:c3 @atom:os + @angle:c2-c3-s4 @atom:c2 @atom:c3 @atom:s4 + @angle:c2-c3-ss @atom:c2 @atom:c3 @atom:ss + @angle:c3-c3-c3 @atom:c3 @atom:c3 @atom:c3 + @angle:c3-c3-ca @atom:c3 @atom:c3 @atom:ca + @angle:c3-c3-cc @atom:c3 @atom:c3 @atom:cc + @angle:c3-c3-cd @atom:c3 @atom:c3 @atom:cd + @angle:c3-c3-ce @atom:c3 @atom:c3 @atom:ce + @angle:c3-c3-cf @atom:c3 @atom:c3 @atom:cf + @angle:c3-c3-cl @atom:c3 @atom:c3 @atom:cl + @angle:c3-c3-cx @atom:c3 @atom:c3 @atom:cx + @angle:c3-c3-cy @atom:c3 @atom:c3 @atom:cy + @angle:c3-c3-f @atom:c3 @atom:c3 @atom:f + @angle:c3-c3-h1 @atom:c3 @atom:c3 @atom:h1 + @angle:c3-c3-h2 @atom:c3 @atom:c3 @atom:h2 + @angle:c3-c3-hc @atom:c3 @atom:c3 @atom:hc + @angle:c3-c3-hx @atom:c3 @atom:c3 @atom:hx + @angle:c3-c3-i @atom:c3 @atom:c3 @atom:i + @angle:c3-c3-n1 @atom:c3 @atom:c3 @atom:n1 + @angle:c3-c3-n2 @atom:c3 @atom:c3 @atom:n2 + @angle:c3-c3-n3 @atom:c3 @atom:c3 @atom:n3 + @angle:c3-c3-n4 @atom:c3 @atom:c3 @atom:n4 + @angle:c3-c3-n @atom:c3 @atom:c3 @atom:n + @angle:c3-c3-na @atom:c3 @atom:c3 @atom:na + @angle:c3-c3-nh @atom:c3 @atom:c3 @atom:nh + @angle:c3-c3-no @atom:c3 @atom:c3 @atom:no + @angle:c3-c3-o @atom:c3 @atom:c3 @atom:o + @angle:c3-c3-oh @atom:c3 @atom:c3 @atom:oh + @angle:c3-c3-os @atom:c3 @atom:c3 @atom:os + @angle:c3-c3-p3 @atom:c3 @atom:c3 @atom:p3 + @angle:c3-c3-p5 @atom:c3 @atom:c3 @atom:p5 + @angle:c3-c3-s4 @atom:c3 @atom:c3 @atom:s4 + @angle:c3-c3-s6 @atom:c3 @atom:c3 @atom:s6 + @angle:c3-c3-sh @atom:c3 @atom:c3 @atom:sh + @angle:c3-c3-ss @atom:c3 @atom:c3 @atom:ss + @angle:c3-c3-sy @atom:c3 @atom:c3 @atom:sy + @angle:ca-c3-ca @atom:ca @atom:c3 @atom:ca + @angle:ca-c3-cc @atom:ca @atom:c3 @atom:cc + @angle:ca-c3-cd @atom:ca @atom:c3 @atom:cd + @angle:ca-c3-ce @atom:ca @atom:c3 @atom:ce + @angle:ca-c3-cl @atom:ca @atom:c3 @atom:cl + @angle:ca-c3-cx @atom:ca @atom:c3 @atom:cx + @angle:ca-c3-f @atom:ca @atom:c3 @atom:f + @angle:ca-c3-h1 @atom:ca @atom:c3 @atom:h1 + @angle:ca-c3-h2 @atom:ca @atom:c3 @atom:h2 + @angle:ca-c3-hc @atom:ca @atom:c3 @atom:hc + @angle:ca-c3-hx @atom:ca @atom:c3 @atom:hx + @angle:ca-c3-n2 @atom:ca @atom:c3 @atom:n2 + @angle:ca-c3-n3 @atom:ca @atom:c3 @atom:n3 + @angle:ca-c3-n4 @atom:ca @atom:c3 @atom:n4 + @angle:ca-c3-n @atom:ca @atom:c3 @atom:n + @angle:ca-c3-na @atom:ca @atom:c3 @atom:na + @angle:ca-c3-nc @atom:ca @atom:c3 @atom:nc + @angle:ca-c3-nd @atom:ca @atom:c3 @atom:nd + @angle:ca-c3-nh @atom:ca @atom:c3 @atom:nh + @angle:ca-c3-oh @atom:ca @atom:c3 @atom:oh + @angle:ca-c3-os @atom:ca @atom:c3 @atom:os + @angle:ca-c3-p5 @atom:ca @atom:c3 @atom:p5 + @angle:ca-c3-s6 @atom:ca @atom:c3 @atom:s6 + @angle:ca-c3-ss @atom:ca @atom:c3 @atom:ss + @angle:ca-c3-sx @atom:ca @atom:c3 @atom:sx + @angle:c-c3-c1 @atom:c @atom:c3 @atom:c1 + @angle:c-c3-c2 @atom:c @atom:c3 @atom:c2 + @angle:c-c3-c3 @atom:c @atom:c3 @atom:c3 + @angle:c-c3-c @atom:c @atom:c3 @atom:c + @angle:c-c3-ca @atom:c @atom:c3 @atom:ca + @angle:c-c3-cc @atom:c @atom:c3 @atom:cc + @angle:cc-c3-cc @atom:cc @atom:c3 @atom:cc + @angle:cc-c3-cd @atom:cc @atom:c3 @atom:cd + @angle:cc-c3-cx @atom:cc @atom:c3 @atom:cx + @angle:c-c3-cd @atom:c @atom:c3 @atom:cd + @angle:c-c3-ce @atom:c @atom:c3 @atom:ce + @angle:cc-c3-f @atom:cc @atom:c3 @atom:f + @angle:cc-c3-h1 @atom:cc @atom:c3 @atom:h1 + @angle:cc-c3-hc @atom:cc @atom:c3 @atom:hc + @angle:cc-c3-hx @atom:cc @atom:c3 @atom:hx + @angle:c-c3-cl @atom:c @atom:c3 @atom:cl + @angle:cc-c3-n2 @atom:cc @atom:c3 @atom:n2 + @angle:cc-c3-n3 @atom:cc @atom:c3 @atom:n3 + @angle:cc-c3-n4 @atom:cc @atom:c3 @atom:n4 + @angle:cc-c3-n @atom:cc @atom:c3 @atom:n + @angle:cc-c3-na @atom:cc @atom:c3 @atom:na + @angle:cc-c3-nc @atom:cc @atom:c3 @atom:nc + @angle:cc-c3-nh @atom:cc @atom:c3 @atom:nh + @angle:cc-c3-oh @atom:cc @atom:c3 @atom:oh + @angle:cc-c3-os @atom:cc @atom:c3 @atom:os + @angle:cc-c3-p5 @atom:cc @atom:c3 @atom:p5 + @angle:cc-c3-sh @atom:cc @atom:c3 @atom:sh + @angle:cc-c3-ss @atom:cc @atom:c3 @atom:ss + @angle:c-c3-cx @atom:c @atom:c3 @atom:cx + @angle:cd-c3-cd @atom:cd @atom:c3 @atom:cd + @angle:cd-c3-f @atom:cd @atom:c3 @atom:f + @angle:cd-c3-h1 @atom:cd @atom:c3 @atom:h1 + @angle:cd-c3-hc @atom:cd @atom:c3 @atom:hc + @angle:cd-c3-n3 @atom:cd @atom:c3 @atom:n3 + @angle:cd-c3-n @atom:cd @atom:c3 @atom:n + @angle:cd-c3-nd @atom:cd @atom:c3 @atom:nd + @angle:cd-c3-nh @atom:cd @atom:c3 @atom:nh + @angle:cd-c3-oh @atom:cd @atom:c3 @atom:oh + @angle:cd-c3-os @atom:cd @atom:c3 @atom:os + @angle:cd-c3-sh @atom:cd @atom:c3 @atom:sh + @angle:cd-c3-ss @atom:cd @atom:c3 @atom:ss + @angle:ce-c3-ce @atom:ce @atom:c3 @atom:ce + @angle:ce-c3-cy @atom:ce @atom:c3 @atom:cy + @angle:ce-c3-h1 @atom:ce @atom:c3 @atom:h1 + @angle:ce-c3-hc @atom:ce @atom:c3 @atom:hc + @angle:ce-c3-n3 @atom:ce @atom:c3 @atom:n3 + @angle:ce-c3-n @atom:ce @atom:c3 @atom:n + @angle:ce-c3-oh @atom:ce @atom:c3 @atom:oh + @angle:ce-c3-os @atom:ce @atom:c3 @atom:os + @angle:ce-c3-ss @atom:ce @atom:c3 @atom:ss + @angle:c-c3-f @atom:c @atom:c3 @atom:f + @angle:cf-c3-cy @atom:cf @atom:c3 @atom:cy + @angle:cf-c3-h1 @atom:cf @atom:c3 @atom:h1 + @angle:cf-c3-hc @atom:cf @atom:c3 @atom:hc + @angle:cf-c3-n3 @atom:cf @atom:c3 @atom:n3 + @angle:c-c3-h1 @atom:c @atom:c3 @atom:h1 + @angle:c-c3-h2 @atom:c @atom:c3 @atom:h2 + @angle:c-c3-hc @atom:c @atom:c3 @atom:hc + @angle:c-c3-hx @atom:c @atom:c3 @atom:hx + @angle:cl-c3-cl @atom:cl @atom:c3 @atom:cl + @angle:cl-c3-f @atom:cl @atom:c3 @atom:f + @angle:cl-c3-h1 @atom:cl @atom:c3 @atom:h1 + @angle:cl-c3-h2 @atom:cl @atom:c3 @atom:h2 + @angle:cl-c3-hc @atom:cl @atom:c3 @atom:hc + @angle:cl-c3-os @atom:cl @atom:c3 @atom:os + @angle:cl-c3-ss @atom:cl @atom:c3 @atom:ss + @angle:c-c3-n2 @atom:c @atom:c3 @atom:n2 + @angle:c-c3-n3 @atom:c @atom:c3 @atom:n3 + @angle:c-c3-n4 @atom:c @atom:c3 @atom:n4 + @angle:c-c3-n @atom:c @atom:c3 @atom:n + @angle:c-c3-na @atom:c @atom:c3 @atom:na + @angle:c-c3-nh @atom:c @atom:c3 @atom:nh + @angle:c-c3-oh @atom:c @atom:c3 @atom:oh + @angle:c-c3-os @atom:c @atom:c3 @atom:os + @angle:c-c3-p5 @atom:c @atom:c3 @atom:p5 + @angle:c-c3-s6 @atom:c @atom:c3 @atom:s6 + @angle:c-c3-sh @atom:c @atom:c3 @atom:sh + @angle:c-c3-ss @atom:c @atom:c3 @atom:ss + @angle:cx-c3-cx @atom:cx @atom:c3 @atom:cx + @angle:cx-c3-h1 @atom:cx @atom:c3 @atom:h1 + @angle:cx-c3-hc @atom:cx @atom:c3 @atom:hc + @angle:cx-c3-hx @atom:cx @atom:c3 @atom:hx + @angle:cx-c3-n3 @atom:cx @atom:c3 @atom:n3 + @angle:cx-c3-n4 @atom:cx @atom:c3 @atom:n4 + @angle:cx-c3-n @atom:cx @atom:c3 @atom:n + @angle:cx-c3-oh @atom:cx @atom:c3 @atom:oh + @angle:cx-c3-os @atom:cx @atom:c3 @atom:os + @angle:cy-c3-h1 @atom:cy @atom:c3 @atom:h1 + @angle:cy-c3-hc @atom:cy @atom:c3 @atom:hc + @angle:cy-c3-n3 @atom:cy @atom:c3 @atom:n3 + @angle:cy-c3-oh @atom:cy @atom:c3 @atom:oh + @angle:cy-c3-os @atom:cy @atom:c3 @atom:os + @angle:f-c3-f @atom:f @atom:c3 @atom:f + @angle:f-c3-h1 @atom:f @atom:c3 @atom:h1 + @angle:f-c3-h2 @atom:f @atom:c3 @atom:h2 + @angle:f-c3-h3 @atom:f @atom:c3 @atom:h3 + @angle:f-c3-hc @atom:f @atom:c3 @atom:hc + @angle:f-c3-n2 @atom:f @atom:c3 @atom:n2 + @angle:f-c3-os @atom:f @atom:c3 @atom:os + @angle:f-c3-p5 @atom:f @atom:c3 @atom:p5 + @angle:f-c3-s6 @atom:f @atom:c3 @atom:s6 + @angle:f-c3-ss @atom:f @atom:c3 @atom:ss + @angle:h1-c3-h1 @atom:h1 @atom:c3 @atom:h1 + @angle:h1-c3-n1 @atom:h1 @atom:c3 @atom:n1 + @angle:h1-c3-n2 @atom:h1 @atom:c3 @atom:n2 + @angle:h1-c3-n3 @atom:h1 @atom:c3 @atom:n3 + @angle:h1-c3-n @atom:h1 @atom:c3 @atom:n + @angle:h1-c3-na @atom:h1 @atom:c3 @atom:na + @angle:h1-c3-nc @atom:h1 @atom:c3 @atom:nc + @angle:h1-c3-nd @atom:h1 @atom:c3 @atom:nd + @angle:h1-c3-nh @atom:h1 @atom:c3 @atom:nh + @angle:h1-c3-no @atom:h1 @atom:c3 @atom:no + @angle:h1-c3-o @atom:h1 @atom:c3 @atom:o + @angle:h1-c3-oh @atom:h1 @atom:c3 @atom:oh + @angle:h1-c3-os @atom:h1 @atom:c3 @atom:os + @angle:h1-c3-p5 @atom:h1 @atom:c3 @atom:p5 + @angle:h1-c3-s4 @atom:h1 @atom:c3 @atom:s4 + @angle:h1-c3-s @atom:h1 @atom:c3 @atom:s + @angle:h1-c3-s6 @atom:h1 @atom:c3 @atom:s6 + @angle:h1-c3-sh @atom:h1 @atom:c3 @atom:sh + @angle:h1-c3-ss @atom:h1 @atom:c3 @atom:ss + @angle:h1-c3-sx @atom:h1 @atom:c3 @atom:sx + @angle:h1-c3-sy @atom:h1 @atom:c3 @atom:sy + @angle:h2-c3-h2 @atom:h2 @atom:c3 @atom:h2 + @angle:h2-c3-i @atom:h2 @atom:c3 @atom:i + @angle:h2-c3-n2 @atom:h2 @atom:c3 @atom:n2 + @angle:h2-c3-n3 @atom:h2 @atom:c3 @atom:n3 + @angle:h2-c3-n @atom:h2 @atom:c3 @atom:n + @angle:h2-c3-na @atom:h2 @atom:c3 @atom:na + @angle:h2-c3-nc @atom:h2 @atom:c3 @atom:nc + @angle:h2-c3-nd @atom:h2 @atom:c3 @atom:nd + @angle:h2-c3-nh @atom:h2 @atom:c3 @atom:nh + @angle:h2-c3-no @atom:h2 @atom:c3 @atom:no + @angle:h2-c3-o @atom:h2 @atom:c3 @atom:o + @angle:h2-c3-oh @atom:h2 @atom:c3 @atom:oh + @angle:h2-c3-os @atom:h2 @atom:c3 @atom:os + @angle:h2-c3-s4 @atom:h2 @atom:c3 @atom:s4 + @angle:h2-c3-s @atom:h2 @atom:c3 @atom:s + @angle:h2-c3-s6 @atom:h2 @atom:c3 @atom:s6 + @angle:h2-c3-sh @atom:h2 @atom:c3 @atom:sh + @angle:h2-c3-ss @atom:h2 @atom:c3 @atom:ss + @angle:h3-c3-n3 @atom:h3 @atom:c3 @atom:n3 + @angle:h3-c3-nc @atom:h3 @atom:c3 @atom:nc + @angle:h3-c3-nd @atom:h3 @atom:c3 @atom:nd + @angle:h3-c3-nh @atom:h3 @atom:c3 @atom:nh + @angle:h3-c3-os @atom:h3 @atom:c3 @atom:os + @angle:h3-c3-ss @atom:h3 @atom:c3 @atom:ss + @angle:hc-c3-hc @atom:hc @atom:c3 @atom:hc + @angle:hc-c3-i @atom:hc @atom:c3 @atom:i + @angle:hc-c3-n2 @atom:hc @atom:c3 @atom:n2 + @angle:hc-c3-n3 @atom:hc @atom:c3 @atom:n3 + @angle:hc-c3-n4 @atom:hc @atom:c3 @atom:n4 + @angle:hc-c3-n @atom:hc @atom:c3 @atom:n + @angle:hc-c3-na @atom:hc @atom:c3 @atom:na + @angle:hc-c3-nh @atom:hc @atom:c3 @atom:nh + @angle:hc-c3-no @atom:hc @atom:c3 @atom:no + @angle:hc-c3-oh @atom:hc @atom:c3 @atom:oh + @angle:hc-c3-os @atom:hc @atom:c3 @atom:os + @angle:hc-c3-p2 @atom:hc @atom:c3 @atom:p2 + @angle:hc-c3-p3 @atom:hc @atom:c3 @atom:p3 + @angle:hc-c3-p4 @atom:hc @atom:c3 @atom:p4 + @angle:hc-c3-p5 @atom:hc @atom:c3 @atom:p5 + @angle:hc-c3-px @atom:hc @atom:c3 @atom:px + @angle:hc-c3-py @atom:hc @atom:c3 @atom:py + @angle:hc-c3-s4 @atom:hc @atom:c3 @atom:s4 + @angle:hc-c3-s6 @atom:hc @atom:c3 @atom:s6 + @angle:hc-c3-sh @atom:hc @atom:c3 @atom:sh + @angle:hc-c3-ss @atom:hc @atom:c3 @atom:ss + @angle:hx-c3-hx @atom:hx @atom:c3 @atom:hx + @angle:hx-c3-n4 @atom:hx @atom:c3 @atom:n4 + @angle:i-c3-i @atom:i @atom:c3 @atom:i + @angle:n1-c3-n1 @atom:n1 @atom:c3 @atom:n1 + @angle:n2-c3-n2 @atom:n2 @atom:c3 @atom:n2 + @angle:n2-c3-nh @atom:n2 @atom:c3 @atom:nh + @angle:n2-c3-oh @atom:n2 @atom:c3 @atom:oh + @angle:n2-c3-os @atom:n2 @atom:c3 @atom:os + @angle:n3-c3-n3 @atom:n3 @atom:c3 @atom:n3 + @angle:n3-c3-nc @atom:n3 @atom:c3 @atom:nc + @angle:n3-c3-nd @atom:n3 @atom:c3 @atom:nd + @angle:n3-c3-nh @atom:n3 @atom:c3 @atom:nh + @angle:n3-c3-oh @atom:n3 @atom:c3 @atom:oh + @angle:n3-c3-os @atom:n3 @atom:c3 @atom:os + @angle:n3-c3-p5 @atom:n3 @atom:c3 @atom:p5 + @angle:n3-c3-ss @atom:n3 @atom:c3 @atom:ss + @angle:n4-c3-n4 @atom:n4 @atom:c3 @atom:n4 + @angle:na-c3-na @atom:na @atom:c3 @atom:na + @angle:na-c3-os @atom:na @atom:c3 @atom:os + @angle:nc-c3-nc @atom:nc @atom:c3 @atom:nc + @angle:nc-c3-nh @atom:nc @atom:c3 @atom:nh + @angle:nc-c3-os @atom:nc @atom:c3 @atom:os + @angle:nd-c3-nd @atom:nd @atom:c3 @atom:nd + @angle:nd-c3-nh @atom:nd @atom:c3 @atom:nh + @angle:nd-c3-os @atom:nd @atom:c3 @atom:os + @angle:nh-c3-nh @atom:nh @atom:c3 @atom:nh + @angle:nh-c3-oh @atom:nh @atom:c3 @atom:oh + @angle:nh-c3-os @atom:nh @atom:c3 @atom:os + @angle:nh-c3-p5 @atom:nh @atom:c3 @atom:p5 + @angle:nh-c3-ss @atom:nh @atom:c3 @atom:ss + @angle:n-c3-n2 @atom:n @atom:c3 @atom:n2 + @angle:n-c3-n3 @atom:n @atom:c3 @atom:n3 + @angle:n-c3-n @atom:n @atom:c3 @atom:n + @angle:n-c3-nh @atom:n @atom:c3 @atom:nh + @angle:n-c3-oh @atom:n @atom:c3 @atom:oh + @angle:no-c3-no @atom:no @atom:c3 @atom:no + @angle:n-c3-os @atom:n @atom:c3 @atom:os + @angle:n-c3-p5 @atom:n @atom:c3 @atom:p5 + @angle:oh-c3-oh @atom:oh @atom:c3 @atom:oh + @angle:oh-c3-os @atom:oh @atom:c3 @atom:os + @angle:oh-c3-p5 @atom:oh @atom:c3 @atom:p5 + @angle:oh-c3-sh @atom:oh @atom:c3 @atom:sh + @angle:o-c3-o @atom:o @atom:c3 @atom:o + @angle:os-c3-os @atom:os @atom:c3 @atom:os + @angle:os-c3-p5 @atom:os @atom:c3 @atom:p5 + @angle:os-c3-ss @atom:os @atom:c3 @atom:ss + @angle:p2-c3-p2 @atom:p2 @atom:c3 @atom:p2 + @angle:p3-c3-p3 @atom:p3 @atom:c3 @atom:p3 + @angle:p5-c3-p5 @atom:p5 @atom:c3 @atom:p5 + @angle:p5-c3-ss @atom:p5 @atom:c3 @atom:ss + @angle:s4-c3-s4 @atom:s4 @atom:c3 @atom:s4 + @angle:s4-c3-s6 @atom:s4 @atom:c3 @atom:s6 + @angle:s6-c3-s6 @atom:s6 @atom:c3 @atom:s6 + @angle:sh-c3-sh @atom:sh @atom:c3 @atom:sh + @angle:sh-c3-ss @atom:sh @atom:c3 @atom:ss + @angle:s-c3-s @atom:s @atom:c3 @atom:s + @angle:ss-c3-ss @atom:ss @atom:c3 @atom:ss + @angle:br-ca-br @atom:br @atom:ca @atom:br + @angle:br-ca-ca @atom:br @atom:ca @atom:ca + @angle:c1-ca-c1 @atom:c1 @atom:ca @atom:c1 + @angle:c1-ca-ca @atom:c1 @atom:ca @atom:ca + @angle:c2-ca-c2 @atom:c2 @atom:ca @atom:c2 + @angle:c2-ca-ca @atom:c2 @atom:ca @atom:ca + @angle:c3-ca-c2 @atom:c3 @atom:ca @atom:c2 + @angle:c3-ca-c3 @atom:c3 @atom:ca @atom:c3 + @angle:c3-ca-ca @atom:c3 @atom:ca @atom:ca + @angle:c3-ca-cp @atom:c3 @atom:ca @atom:cp + @angle:c3-ca-cq @atom:c3 @atom:ca @atom:cq + @angle:c3-ca-na @atom:c3 @atom:ca @atom:na + @angle:c3-ca-nb @atom:c3 @atom:ca @atom:nb + @angle:ca-ca-ca @atom:ca @atom:ca @atom:ca + @angle:ca-ca-cc @atom:ca @atom:ca @atom:cc + @angle:ca-ca-cd @atom:ca @atom:ca @atom:cd + @angle:ca-ca-ce @atom:ca @atom:ca @atom:ce + @angle:ca-ca-cf @atom:ca @atom:ca @atom:cf + @angle:ca-ca-cg @atom:ca @atom:ca @atom:cg + @angle:ca-ca-ch @atom:ca @atom:ca @atom:ch + @angle:ca-ca-cl @atom:ca @atom:ca @atom:cl + @angle:ca-ca-cp @atom:ca @atom:ca @atom:cp + @angle:ca-ca-cq @atom:ca @atom:ca @atom:cq + @angle:ca-ca-cx @atom:ca @atom:ca @atom:cx + @angle:ca-ca-cy @atom:ca @atom:ca @atom:cy + @angle:ca-ca-f @atom:ca @atom:ca @atom:f + @angle:ca-ca-h4 @atom:ca @atom:ca @atom:h4 + @angle:ca-ca-ha @atom:ca @atom:ca @atom:ha + @angle:ca-ca-i @atom:ca @atom:ca @atom:i + @angle:ca-ca-n1 @atom:ca @atom:ca @atom:n1 + @angle:ca-ca-n2 @atom:ca @atom:ca @atom:n2 + @angle:ca-ca-n4 @atom:ca @atom:ca @atom:n4 + @angle:ca-ca-n @atom:ca @atom:ca @atom:n + @angle:ca-ca-na @atom:ca @atom:ca @atom:na + @angle:ca-ca-nb @atom:ca @atom:ca @atom:nb + @angle:ca-ca-nc @atom:ca @atom:ca @atom:nc + @angle:ca-ca-nd @atom:ca @atom:ca @atom:nd + @angle:ca-ca-ne @atom:ca @atom:ca @atom:ne + @angle:ca-ca-nf @atom:ca @atom:ca @atom:nf + @angle:ca-ca-nh @atom:ca @atom:ca @atom:nh + @angle:ca-ca-no @atom:ca @atom:ca @atom:no + @angle:ca-ca-o @atom:ca @atom:ca @atom:o + @angle:ca-ca-oh @atom:ca @atom:ca @atom:oh + @angle:ca-ca-os @atom:ca @atom:ca @atom:os + @angle:ca-ca-p2 @atom:ca @atom:ca @atom:p2 + @angle:ca-ca-p3 @atom:ca @atom:ca @atom:p3 + @angle:ca-ca-p4 @atom:ca @atom:ca @atom:p4 + @angle:ca-ca-p5 @atom:ca @atom:ca @atom:p5 + @angle:ca-ca-pe @atom:ca @atom:ca @atom:pe + @angle:ca-ca-pf @atom:ca @atom:ca @atom:pf + @angle:ca-ca-px @atom:ca @atom:ca @atom:px + @angle:ca-ca-py @atom:ca @atom:ca @atom:py + @angle:ca-ca-s4 @atom:ca @atom:ca @atom:s4 + @angle:ca-ca-s6 @atom:ca @atom:ca @atom:s6 + @angle:ca-ca-s @atom:ca @atom:ca @atom:s + @angle:ca-ca-sh @atom:ca @atom:ca @atom:sh + @angle:ca-ca-ss @atom:ca @atom:ca @atom:ss + @angle:ca-ca-sx @atom:ca @atom:ca @atom:sx + @angle:ca-ca-sy @atom:ca @atom:ca @atom:sy + @angle:c-ca-c3 @atom:c @atom:ca @atom:c3 + @angle:c-ca-c @atom:c @atom:ca @atom:c + @angle:c-ca-ca @atom:c @atom:ca @atom:ca + @angle:cc-ca-cp @atom:cc @atom:ca @atom:cp + @angle:cc-ca-nb @atom:cc @atom:ca @atom:nb + @angle:cd-ca-nb @atom:cd @atom:ca @atom:nb + @angle:ce-ca-na @atom:ce @atom:ca @atom:na + @angle:ce-ca-nb @atom:ce @atom:ca @atom:nb + @angle:cf-ca-nb @atom:cf @atom:ca @atom:nb + @angle:cg-ca-cp @atom:cg @atom:ca @atom:cp + @angle:c-ca-ha @atom:c @atom:ca @atom:ha + @angle:cl-ca-cl @atom:cl @atom:ca @atom:cl + @angle:cl-ca-cp @atom:cl @atom:ca @atom:cp + @angle:cl-ca-nb @atom:cl @atom:ca @atom:nb + @angle:c-ca-nb @atom:c @atom:ca @atom:nb + @angle:c-ca-nc @atom:c @atom:ca @atom:nc + @angle:c-ca-nd @atom:c @atom:ca @atom:nd + @angle:cp-ca-f @atom:cp @atom:ca @atom:f + @angle:cp-ca-h4 @atom:cp @atom:ca @atom:h4 + @angle:cp-ca-ha @atom:cp @atom:ca @atom:ha + @angle:cp-ca-na @atom:cp @atom:ca @atom:na + @angle:cp-ca-nb @atom:cp @atom:ca @atom:nb + @angle:cp-ca-nh @atom:cp @atom:ca @atom:nh + @angle:cp-ca-oh @atom:cp @atom:ca @atom:oh + @angle:cp-ca-ss @atom:cp @atom:ca @atom:ss + @angle:cp-ca-sy @atom:cp @atom:ca @atom:sy + @angle:cq-ca-ha @atom:cq @atom:ca @atom:ha + @angle:cq-ca-sy @atom:cq @atom:ca @atom:sy + @angle:f-ca-f @atom:f @atom:ca @atom:f + @angle:f-ca-nb @atom:f @atom:ca @atom:nb + @angle:h4-ca-n @atom:h4 @atom:ca @atom:n + @angle:h4-ca-na @atom:h4 @atom:ca @atom:na + @angle:h4-ca-nb @atom:h4 @atom:ca @atom:nb + @angle:h4-ca-nc @atom:h4 @atom:ca @atom:nc + @angle:h4-ca-nd @atom:h4 @atom:ca @atom:nd + @angle:h4-ca-os @atom:h4 @atom:ca @atom:os + @angle:h4-ca-ss @atom:h4 @atom:ca @atom:ss + @angle:h5-ca-nb @atom:h5 @atom:ca @atom:nb + @angle:h5-ca-nc @atom:h5 @atom:ca @atom:nc + @angle:h5-ca-nd @atom:h5 @atom:ca @atom:nd + @angle:ha-ca-n2 @atom:ha @atom:ca @atom:n2 + @angle:ha-ca-p2 @atom:ha @atom:ca @atom:p2 + @angle:i-ca-i @atom:i @atom:ca @atom:i + @angle:n1-ca-n1 @atom:n1 @atom:ca @atom:n1 + @angle:n2-ca-n2 @atom:n2 @atom:ca @atom:n2 + @angle:n2-ca-na @atom:n2 @atom:ca @atom:na + @angle:n4-ca-n4 @atom:n4 @atom:ca @atom:n4 + @angle:na-ca-na @atom:na @atom:ca @atom:na + @angle:na-ca-nb @atom:na @atom:ca @atom:nb + @angle:na-ca-nh @atom:na @atom:ca @atom:nh + @angle:nb-ca-nb @atom:nb @atom:ca @atom:nb + @angle:nb-ca-nc @atom:nb @atom:ca @atom:nc + @angle:nb-ca-nd @atom:nb @atom:ca @atom:nd + @angle:nb-ca-nh @atom:nb @atom:ca @atom:nh + @angle:nb-ca-oh @atom:nb @atom:ca @atom:oh + @angle:nb-ca-os @atom:nb @atom:ca @atom:os + @angle:nb-ca-sh @atom:nb @atom:ca @atom:sh + @angle:nb-ca-ss @atom:nb @atom:ca @atom:ss + @angle:nc-ca-nc @atom:nc @atom:ca @atom:nc + @angle:nc-ca-nh @atom:nc @atom:ca @atom:nh + @angle:nd-ca-nd @atom:nd @atom:ca @atom:nd + @angle:nd-ca-nh @atom:nd @atom:ca @atom:nh + @angle:nh-ca-nh @atom:nh @atom:ca @atom:nh + @angle:n-ca-nc @atom:n @atom:ca @atom:nc + @angle:n-ca-nd @atom:n @atom:ca @atom:nd + @angle:n-ca-nh @atom:n @atom:ca @atom:nh + @angle:no-ca-no @atom:no @atom:ca @atom:no + @angle:oh-ca-oh @atom:oh @atom:ca @atom:oh + @angle:o-ca-o @atom:o @atom:ca @atom:o + @angle:os-ca-os @atom:os @atom:ca @atom:os + @angle:p2-ca-p2 @atom:p2 @atom:ca @atom:p2 + @angle:p3-ca-p3 @atom:p3 @atom:ca @atom:p3 + @angle:p5-ca-p5 @atom:p5 @atom:ca @atom:p5 + @angle:s4-ca-s4 @atom:s4 @atom:ca @atom:s4 + @angle:s6-ca-s6 @atom:s6 @atom:ca @atom:s6 + @angle:sh-ca-sh @atom:sh @atom:ca @atom:sh + @angle:s-ca-s @atom:s @atom:ca @atom:s + @angle:ss-ca-ss @atom:ss @atom:ca @atom:ss + @angle:br-c-br @atom:br @atom:c @atom:br + @angle:br-c-c3 @atom:br @atom:c @atom:c3 + @angle:br-c-o @atom:br @atom:c @atom:o + @angle:c1-c-c1 @atom:c1 @atom:c @atom:c1 + @angle:c1-c-o @atom:c1 @atom:c @atom:o + @angle:c2-c-c2 @atom:c2 @atom:c @atom:c2 + @angle:c2-c-ha @atom:c2 @atom:c @atom:ha + @angle:c2-c-o @atom:c2 @atom:c @atom:o + @angle:c2-c-s @atom:c2 @atom:c @atom:s + @angle:c3-c-c3 @atom:c3 @atom:c @atom:c3 + @angle:c3-c-ca @atom:c3 @atom:c @atom:ca + @angle:c3-c-cc @atom:c3 @atom:c @atom:cc + @angle:c3-c-cd @atom:c3 @atom:c @atom:cd + @angle:c3-c-ce @atom:c3 @atom:c @atom:ce + @angle:c3-c-cf @atom:c3 @atom:c @atom:cf + @angle:c3-c-cg @atom:c3 @atom:c @atom:cg + @angle:c3-c-ch @atom:c3 @atom:c @atom:ch + @angle:c3-c-cl @atom:c3 @atom:c @atom:cl + @angle:c3-c-f @atom:c3 @atom:c @atom:f + @angle:c3-c-h4 @atom:c3 @atom:c @atom:h4 + @angle:c3-c-ha @atom:c3 @atom:c @atom:ha + @angle:c3-c-i @atom:c3 @atom:c @atom:i + @angle:c3-c-n2 @atom:c3 @atom:c @atom:n2 + @angle:c3-c-n4 @atom:c3 @atom:c @atom:n4 + @angle:c3-c-n @atom:c3 @atom:c @atom:n + @angle:c3-c-ne @atom:c3 @atom:c @atom:ne + @angle:c3-c-nf @atom:c3 @atom:c @atom:nf + @angle:c3-c-o @atom:c3 @atom:c @atom:o + @angle:c3-c-oh @atom:c3 @atom:c @atom:oh + @angle:c3-c-os @atom:c3 @atom:c @atom:os + @angle:c3-c-p3 @atom:c3 @atom:c @atom:p3 + @angle:c3-c-p5 @atom:c3 @atom:c @atom:p5 + @angle:c3-c-pe @atom:c3 @atom:c @atom:pe + @angle:c3-c-pf @atom:c3 @atom:c @atom:pf + @angle:c3-c-px @atom:c3 @atom:c @atom:px + @angle:c3-c-py @atom:c3 @atom:c @atom:py + @angle:c3-c-s4 @atom:c3 @atom:c @atom:s4 + @angle:c3-c-s6 @atom:c3 @atom:c @atom:s6 + @angle:c3-c-s @atom:c3 @atom:c @atom:s + @angle:c3-c-sh @atom:c3 @atom:c @atom:sh + @angle:c3-c-ss @atom:c3 @atom:c @atom:ss + @angle:c3-c-sx @atom:c3 @atom:c @atom:sx + @angle:c3-c-sy @atom:c3 @atom:c @atom:sy + @angle:ca-c-ca @atom:ca @atom:c @atom:ca + @angle:ca-c-cc @atom:ca @atom:c @atom:cc + @angle:ca-c-cd @atom:ca @atom:c @atom:cd + @angle:ca-c-ce @atom:ca @atom:c @atom:ce + @angle:ca-c-cf @atom:ca @atom:c @atom:cf + @angle:ca-c-h4 @atom:ca @atom:c @atom:h4 + @angle:ca-c-ha @atom:ca @atom:c @atom:ha + @angle:ca-c-n @atom:ca @atom:c @atom:n + @angle:ca-c-ne @atom:ca @atom:c @atom:ne + @angle:ca-c-o @atom:ca @atom:c @atom:o + @angle:ca-c-oh @atom:ca @atom:c @atom:oh + @angle:ca-c-os @atom:ca @atom:c @atom:os + @angle:ca-c-s @atom:ca @atom:c @atom:s + @angle:ca-c-sh @atom:ca @atom:c @atom:sh + @angle:ca-c-ss @atom:ca @atom:c @atom:ss + @angle:br-cc-c @atom:br @atom:cc @atom:c + @angle:br-cc-cc @atom:br @atom:cc @atom:cc + @angle:br-cc-cd @atom:br @atom:cc @atom:cd + @angle:br-cc-na @atom:br @atom:cc @atom:na + @angle:c2-cc-c3 @atom:c2 @atom:cc @atom:c3 + @angle:c2-cc-ca @atom:c2 @atom:cc @atom:ca + @angle:c2-cc-cc @atom:c2 @atom:cc @atom:cc + @angle:c2-cc-cd @atom:c2 @atom:cc @atom:cd + @angle:c2-cc-ha @atom:c2 @atom:cc @atom:ha + @angle:c2-cc-n @atom:c2 @atom:cc @atom:n + @angle:c2-cc-os @atom:c2 @atom:cc @atom:os + @angle:c-c-c3 @atom:c @atom:c @atom:c3 + @angle:c3-cc-ca @atom:c3 @atom:cc @atom:ca + @angle:c3-cc-cc @atom:c3 @atom:cc @atom:cc + @angle:c3-cc-cd @atom:c3 @atom:cc @atom:cd + @angle:c3-cc-cf @atom:c3 @atom:cc @atom:cf + @angle:c3-cc-ha @atom:c3 @atom:cc @atom:ha + @angle:c3-cc-n2 @atom:c3 @atom:cc @atom:n2 + @angle:c3-cc-n @atom:c3 @atom:cc @atom:n + @angle:c3-cc-na @atom:c3 @atom:cc @atom:na + @angle:c3-cc-nc @atom:c3 @atom:cc @atom:nc + @angle:c3-cc-nd @atom:c3 @atom:cc @atom:nd + @angle:c3-cc-os @atom:c3 @atom:cc @atom:os + @angle:c3-cc-ss @atom:c3 @atom:cc @atom:ss + @angle:c-c-c @atom:c @atom:c @atom:c + @angle:c-c-ca @atom:c @atom:c @atom:ca + @angle:ca-cc-cc @atom:ca @atom:cc @atom:cc + @angle:ca-cc-cd @atom:ca @atom:cc @atom:cd + @angle:ca-cc-ce @atom:ca @atom:cc @atom:ce + @angle:ca-cc-h4 @atom:ca @atom:cc @atom:h4 + @angle:ca-cc-ha @atom:ca @atom:cc @atom:ha + @angle:ca-cc-n @atom:ca @atom:cc @atom:n + @angle:ca-cc-nc @atom:ca @atom:cc @atom:nc + @angle:ca-cc-nd @atom:ca @atom:cc @atom:nd + @angle:ca-cc-nh @atom:ca @atom:cc @atom:nh + @angle:ca-cc-oh @atom:ca @atom:cc @atom:oh + @angle:ca-cc-os @atom:ca @atom:cc @atom:os + @angle:ca-cc-ss @atom:ca @atom:cc @atom:ss + @angle:c-cc-c2 @atom:c @atom:cc @atom:c2 + @angle:c-cc-c3 @atom:c @atom:cc @atom:c3 + @angle:c-cc-c @atom:c @atom:cc @atom:c + @angle:c-c-cc @atom:c @atom:c @atom:cc + @angle:c-cc-ca @atom:c @atom:cc @atom:ca + @angle:c-cc-cc @atom:c @atom:cc @atom:cc + @angle:cc-c-cc @atom:cc @atom:c @atom:cc + @angle:cc-cc-cc @atom:cc @atom:cc @atom:cc + @angle:cc-cc-cd @atom:cc @atom:cc @atom:cd + @angle:cc-cc-ce @atom:cc @atom:cc @atom:ce + @angle:cc-cc-cf @atom:cc @atom:cc @atom:cf + @angle:cc-cc-cg @atom:cc @atom:cc @atom:cg + @angle:c-cc-cd @atom:c @atom:cc @atom:cd + @angle:cc-c-cd @atom:cc @atom:c @atom:cd + @angle:c-cc-ce @atom:c @atom:cc @atom:ce + @angle:cc-c-ce @atom:cc @atom:c @atom:ce + @angle:cc-cc-f @atom:cc @atom:cc @atom:f + @angle:c-cc-cg @atom:c @atom:cc @atom:cg + @angle:cc-cc-h4 @atom:cc @atom:cc @atom:h4 + @angle:cc-cc-ha @atom:cc @atom:cc @atom:ha + @angle:c-cc-cl @atom:c @atom:cc @atom:cl + @angle:cc-cc-n2 @atom:cc @atom:cc @atom:n2 + @angle:cc-cc-n @atom:cc @atom:cc @atom:n + @angle:cc-cc-na @atom:cc @atom:cc @atom:na + @angle:cc-cc-nc @atom:cc @atom:cc @atom:nc + @angle:cc-cc-nd @atom:cc @atom:cc @atom:nd + @angle:cc-cc-nh @atom:cc @atom:cc @atom:nh + @angle:cc-cc-oh @atom:cc @atom:cc @atom:oh + @angle:cc-cc-os @atom:cc @atom:cc @atom:os + @angle:cc-cc-pd @atom:cc @atom:cc @atom:pd + @angle:cc-cc-ss @atom:cc @atom:cc @atom:ss + @angle:cc-cc-sy @atom:cc @atom:cc @atom:sy + @angle:c-c-cd @atom:c @atom:c @atom:cd + @angle:cd-cc-cd @atom:cd @atom:cc @atom:cd + @angle:cd-cc-ce @atom:cd @atom:cc @atom:ce + @angle:cd-cc-cl @atom:cd @atom:cc @atom:cl + @angle:cd-cc-f @atom:cd @atom:cc @atom:f + @angle:cd-cc-h4 @atom:cd @atom:cc @atom:h4 + @angle:cd-cc-ha @atom:cd @atom:cc @atom:ha + @angle:cd-cc-n @atom:cd @atom:cc @atom:n + @angle:cd-cc-na @atom:cd @atom:cc @atom:na + @angle:cd-cc-nc @atom:cd @atom:cc @atom:nc + @angle:cd-cc-nh @atom:cd @atom:cc @atom:nh + @angle:cd-cc-no @atom:cd @atom:cc @atom:no + @angle:cd-cc-oh @atom:cd @atom:cc @atom:oh + @angle:cd-cc-os @atom:cd @atom:cc @atom:os + @angle:cd-cc-ss @atom:cd @atom:cc @atom:ss + @angle:cd-cc-sy @atom:cd @atom:cc @atom:sy + @angle:ce-cc-na @atom:ce @atom:cc @atom:na + @angle:ce-cc-nc @atom:ce @atom:cc @atom:nc + @angle:ce-cc-nd @atom:ce @atom:cc @atom:nd + @angle:ce-cc-os @atom:ce @atom:cc @atom:os + @angle:ce-cc-ss @atom:ce @atom:cc @atom:ss + @angle:c-cc-f @atom:c @atom:cc @atom:f + @angle:cg-cc-na @atom:cg @atom:cc @atom:na + @angle:cg-cc-ss @atom:cg @atom:cc @atom:ss + @angle:cc-c-h4 @atom:cc @atom:c @atom:h4 + @angle:c-cc-ha @atom:c @atom:cc @atom:ha + @angle:cl-cc-na @atom:cl @atom:cc @atom:na + @angle:cl-cc-nd @atom:cl @atom:cc @atom:nd + @angle:cl-cc-ss @atom:cl @atom:cc @atom:ss + @angle:c-cc-n2 @atom:c @atom:cc @atom:n2 + @angle:c-cc-n @atom:c @atom:cc @atom:n + @angle:cc-c-n @atom:cc @atom:c @atom:n + @angle:c-cc-nc @atom:c @atom:cc @atom:nc + @angle:cc-c-nd @atom:cc @atom:c @atom:nd + @angle:c-cc-nd @atom:c @atom:cc @atom:nd + @angle:c-cc-ne @atom:c @atom:cc @atom:ne + @angle:cc-c-o @atom:cc @atom:c @atom:o + @angle:c-cc-oh @atom:c @atom:cc @atom:oh + @angle:cc-c-oh @atom:cc @atom:c @atom:oh + @angle:c-cc-os @atom:c @atom:cc @atom:os + @angle:cc-c-os @atom:cc @atom:c @atom:os + @angle:cc-c-s @atom:cc @atom:c @atom:s + @angle:cc-c-ss @atom:cc @atom:c @atom:ss + @angle:cx-cc-nd @atom:cx @atom:cc @atom:nd + @angle:cx-cc-os @atom:cx @atom:cc @atom:os + @angle:cd-c-cd @atom:cd @atom:c @atom:cd + @angle:cd-c-cx @atom:cd @atom:c @atom:cx + @angle:cd-c-n @atom:cd @atom:c @atom:n + @angle:cd-c-nc @atom:cd @atom:c @atom:nc + @angle:cd-c-nd @atom:cd @atom:c @atom:nd + @angle:cd-c-o @atom:cd @atom:c @atom:o + @angle:cd-c-oh @atom:cd @atom:c @atom:oh + @angle:cd-c-os @atom:cd @atom:c @atom:os + @angle:ce-c-ce @atom:ce @atom:c @atom:ce + @angle:ce-c-cf @atom:ce @atom:c @atom:cf + @angle:ce-c-cx @atom:ce @atom:c @atom:cx + @angle:ce-c-h4 @atom:ce @atom:c @atom:h4 + @angle:ce-c-ha @atom:ce @atom:c @atom:ha + @angle:ce-c-n @atom:ce @atom:c @atom:n + @angle:ce-c-o @atom:ce @atom:c @atom:o + @angle:ce-c-oh @atom:ce @atom:c @atom:oh + @angle:ce-c-os @atom:ce @atom:c @atom:os + @angle:ce-c-s @atom:ce @atom:c @atom:s + @angle:ce-c-ss @atom:ce @atom:c @atom:ss + @angle:cf-c-cf @atom:cf @atom:c @atom:cf + @angle:cf-c-ha @atom:cf @atom:c @atom:ha + @angle:cf-c-n @atom:cf @atom:c @atom:n + @angle:cf-c-o @atom:cf @atom:c @atom:o + @angle:cf-c-oh @atom:cf @atom:c @atom:oh + @angle:cf-c-os @atom:cf @atom:c @atom:os + @angle:cf-c-s @atom:cf @atom:c @atom:s + @angle:cg-c-cg @atom:cg @atom:c @atom:cg + @angle:cg-c-ha @atom:cg @atom:c @atom:ha + @angle:cg-c-o @atom:cg @atom:c @atom:o + @angle:c-c-h4 @atom:c @atom:c @atom:h4 + @angle:h4-cc-n @atom:h4 @atom:cc @atom:n + @angle:h4-cc-na @atom:h4 @atom:cc @atom:na + @angle:h4-cc-nc @atom:h4 @atom:cc @atom:nc + @angle:h4-cc-nd @atom:h4 @atom:cc @atom:nd + @angle:h4-cc-os @atom:h4 @atom:cc @atom:os + @angle:h4-cc-ss @atom:h4 @atom:cc @atom:ss + @angle:h5-cc-n @atom:h5 @atom:cc @atom:n + @angle:h5-cc-na @atom:h5 @atom:cc @atom:na + @angle:h5-cc-nc @atom:h5 @atom:cc @atom:nc + @angle:h5-cc-nd @atom:h5 @atom:cc @atom:nd + @angle:h5-cc-os @atom:h5 @atom:cc @atom:os + @angle:h5-cc-ss @atom:h5 @atom:cc @atom:ss + @angle:c-c-ha @atom:c @atom:c @atom:ha + @angle:ha-cc-na @atom:ha @atom:cc @atom:na + @angle:ha-cc-nc @atom:ha @atom:cc @atom:nc + @angle:ha-cc-nd @atom:ha @atom:cc @atom:nd + @angle:ha-cc-os @atom:ha @atom:cc @atom:os + @angle:ha-cc-pd @atom:ha @atom:cc @atom:pd + @angle:ha-cc-ss @atom:ha @atom:cc @atom:ss + @angle:ch-c-ch @atom:ch @atom:c @atom:ch + @angle:ch-c-ha @atom:ch @atom:c @atom:ha + @angle:ch-c-o @atom:ch @atom:c @atom:o + @angle:cl-c-cl @atom:cl @atom:c @atom:cl + @angle:cl-c-f @atom:cl @atom:c @atom:f + @angle:cl-c-ha @atom:cl @atom:c @atom:ha + @angle:cl-c-o @atom:cl @atom:c @atom:o + @angle:cl-c-s @atom:cl @atom:c @atom:s + @angle:c-c-n @atom:c @atom:c @atom:n + @angle:na-cc-nc @atom:na @atom:cc @atom:nc + @angle:na-cc-nd @atom:na @atom:cc @atom:nd + @angle:na-cc-no @atom:na @atom:cc @atom:no + @angle:na-cc-oh @atom:na @atom:cc @atom:oh + @angle:na-cc-sx @atom:na @atom:cc @atom:sx + @angle:na-cc-sy @atom:na @atom:cc @atom:sy + @angle:nc-cc-nd @atom:nc @atom:cc @atom:nd + @angle:nc-cc-nh @atom:nc @atom:cc @atom:nh + @angle:nc-cc-no @atom:nc @atom:cc @atom:no + @angle:nc-cc-ss @atom:nc @atom:cc @atom:ss + @angle:nd-cc-nd @atom:nd @atom:cc @atom:nd + @angle:nd-cc-ne @atom:nd @atom:cc @atom:ne + @angle:nd-cc-nh @atom:nd @atom:cc @atom:nh + @angle:nd-cc-no @atom:nd @atom:cc @atom:no + @angle:nd-cc-oh @atom:nd @atom:cc @atom:oh + @angle:nd-cc-os @atom:nd @atom:cc @atom:os + @angle:nd-cc-sh @atom:nd @atom:cc @atom:sh + @angle:nd-cc-ss @atom:nd @atom:cc @atom:ss + @angle:nd-cc-sx @atom:nd @atom:cc @atom:sx + @angle:nd-cc-sy @atom:nd @atom:cc @atom:sy + @angle:ne-cc-ss @atom:ne @atom:cc @atom:ss + @angle:nh-cc-nh @atom:nh @atom:cc @atom:nh + @angle:nh-cc-os @atom:nh @atom:cc @atom:os + @angle:nh-cc-ss @atom:nh @atom:cc @atom:ss + @angle:n-cc-n2 @atom:n @atom:cc @atom:n2 + @angle:n-cc-na @atom:n @atom:cc @atom:na + @angle:n-cc-nc @atom:n @atom:cc @atom:nc + @angle:n-cc-nd @atom:n @atom:cc @atom:nd + @angle:n-cc-nh @atom:n @atom:cc @atom:nh + @angle:no-cc-os @atom:no @atom:cc @atom:os + @angle:no-cc-ss @atom:no @atom:cc @atom:ss + @angle:n-cc-ss @atom:n @atom:cc @atom:ss + @angle:c-c-o @atom:c @atom:c @atom:o + @angle:c-c-oh @atom:c @atom:c @atom:oh + @angle:c-c-os @atom:c @atom:c @atom:os + @angle:os-cc-ss @atom:os @atom:cc @atom:ss + @angle:ss-cc-ss @atom:ss @atom:cc @atom:ss + @angle:ss-cc-sy @atom:ss @atom:cc @atom:sy + @angle:cx-c-cx @atom:cx @atom:c @atom:cx + @angle:cx-c-n @atom:cx @atom:c @atom:n + @angle:cx-c-o @atom:cx @atom:c @atom:o + @angle:cx-c-oh @atom:cx @atom:c @atom:oh + @angle:cx-c-os @atom:cx @atom:c @atom:os + @angle:cy-c-cy @atom:cy @atom:c @atom:cy + @angle:cy-c-n @atom:cy @atom:c @atom:n + @angle:cy-c-o @atom:cy @atom:c @atom:o + @angle:cy-c-oh @atom:cy @atom:c @atom:oh + @angle:cy-c-os @atom:cy @atom:c @atom:os + @angle:c2-cd-c3 @atom:c2 @atom:cd @atom:c3 + @angle:c2-cd-ca @atom:c2 @atom:cd @atom:ca + @angle:c2-cd-cc @atom:c2 @atom:cd @atom:cc + @angle:c2-cd-cd @atom:c2 @atom:cd @atom:cd + @angle:c2-cd-ha @atom:c2 @atom:cd @atom:ha + @angle:c2-cd-n @atom:c2 @atom:cd @atom:n + @angle:c2-cd-os @atom:c2 @atom:cd @atom:os + @angle:c3-cd-ca @atom:c3 @atom:cd @atom:ca + @angle:c3-cd-cc @atom:c3 @atom:cd @atom:cc + @angle:c3-cd-cd @atom:c3 @atom:cd @atom:cd + @angle:c3-cd-ce @atom:c3 @atom:cd @atom:ce + @angle:c3-cd-ha @atom:c3 @atom:cd @atom:ha + @angle:c3-cd-n2 @atom:c3 @atom:cd @atom:n2 + @angle:c3-cd-n @atom:c3 @atom:cd @atom:n + @angle:c3-cd-na @atom:c3 @atom:cd @atom:na + @angle:c3-cd-nc @atom:c3 @atom:cd @atom:nc + @angle:c3-cd-nd @atom:c3 @atom:cd @atom:nd + @angle:c3-cd-os @atom:c3 @atom:cd @atom:os + @angle:c3-cd-ss @atom:c3 @atom:cd @atom:ss + @angle:ca-cd-cc @atom:ca @atom:cd @atom:cc + @angle:ca-cd-cd @atom:ca @atom:cd @atom:cd + @angle:ca-cd-ce @atom:ca @atom:cd @atom:ce + @angle:ca-cd-h4 @atom:ca @atom:cd @atom:h4 + @angle:ca-cd-ha @atom:ca @atom:cd @atom:ha + @angle:ca-cd-n @atom:ca @atom:cd @atom:n + @angle:ca-cd-na @atom:ca @atom:cd @atom:na + @angle:ca-cd-nc @atom:ca @atom:cd @atom:nc + @angle:ca-cd-nd @atom:ca @atom:cd @atom:nd + @angle:ca-cd-oh @atom:ca @atom:cd @atom:oh + @angle:ca-cd-os @atom:ca @atom:cd @atom:os + @angle:ca-cd-ss @atom:ca @atom:cd @atom:ss + @angle:c-cd-c2 @atom:c @atom:cd @atom:c2 + @angle:c-cd-c3 @atom:c @atom:cd @atom:c3 + @angle:c-cd-c @atom:c @atom:cd @atom:c + @angle:c-cd-ca @atom:c @atom:cd @atom:ca + @angle:c-cd-cc @atom:c @atom:cd @atom:cc + @angle:cc-cd-cc @atom:cc @atom:cd @atom:cc + @angle:cc-cd-cd @atom:cc @atom:cd @atom:cd + @angle:cc-cd-cf @atom:cc @atom:cd @atom:cf + @angle:cc-cd-ch @atom:cc @atom:cd @atom:ch + @angle:cc-cd-cl @atom:cc @atom:cd @atom:cl + @angle:cc-cd-cy @atom:cc @atom:cd @atom:cy + @angle:c-cd-cd @atom:c @atom:cd @atom:cd + @angle:c-cd-cf @atom:c @atom:cd @atom:cf + @angle:cc-cd-h4 @atom:cc @atom:cd @atom:h4 + @angle:cc-cd-ha @atom:cc @atom:cd @atom:ha + @angle:c-cd-cl @atom:c @atom:cd @atom:cl + @angle:cc-cd-n @atom:cc @atom:cd @atom:n + @angle:cc-cd-na @atom:cc @atom:cd @atom:na + @angle:cc-cd-nc @atom:cc @atom:cd @atom:nc + @angle:cc-cd-nd @atom:cc @atom:cd @atom:nd + @angle:cc-cd-nh @atom:cc @atom:cd @atom:nh + @angle:cc-cd-oh @atom:cc @atom:cd @atom:oh + @angle:cc-cd-os @atom:cc @atom:cd @atom:os + @angle:cc-cd-ss @atom:cc @atom:cd @atom:ss + @angle:cc-cd-sy @atom:cc @atom:cd @atom:sy + @angle:cd-cd-cd @atom:cd @atom:cd @atom:cd + @angle:cd-cd-ce @atom:cd @atom:cd @atom:ce + @angle:cd-cd-cf @atom:cd @atom:cd @atom:cf + @angle:cd-cd-ch @atom:cd @atom:cd @atom:ch + @angle:cd-cd-cy @atom:cd @atom:cd @atom:cy + @angle:cd-cd-h4 @atom:cd @atom:cd @atom:h4 + @angle:cd-cd-ha @atom:cd @atom:cd @atom:ha + @angle:cd-cd-n2 @atom:cd @atom:cd @atom:n2 + @angle:cd-cd-n @atom:cd @atom:cd @atom:n + @angle:cd-cd-na @atom:cd @atom:cd @atom:na + @angle:cd-cd-nc @atom:cd @atom:cd @atom:nc + @angle:cd-cd-nd @atom:cd @atom:cd @atom:nd + @angle:cd-cd-nh @atom:cd @atom:cd @atom:nh + @angle:cd-cd-oh @atom:cd @atom:cd @atom:oh + @angle:cd-cd-os @atom:cd @atom:cd @atom:os + @angle:cd-cd-pc @atom:cd @atom:cd @atom:pc + @angle:cd-cd-ss @atom:cd @atom:cd @atom:ss + @angle:ce-cd-nd @atom:ce @atom:cd @atom:nd + @angle:cf-cd-na @atom:cf @atom:cd @atom:na + @angle:cf-cd-nc @atom:cf @atom:cd @atom:nc + @angle:cf-cd-nd @atom:cf @atom:cd @atom:nd + @angle:cf-cd-os @atom:cf @atom:cd @atom:os + @angle:cf-cd-ss @atom:cf @atom:cd @atom:ss + @angle:c-cd-h4 @atom:c @atom:cd @atom:h4 + @angle:c-cd-ha @atom:c @atom:cd @atom:ha + @angle:cl-cd-nc @atom:cl @atom:cd @atom:nc + @angle:c-cd-n2 @atom:c @atom:cd @atom:n2 + @angle:c-cd-n @atom:c @atom:cd @atom:n + @angle:c-cd-nc @atom:c @atom:cd @atom:nc + @angle:c-cd-nd @atom:c @atom:cd @atom:nd + @angle:c-cd-oh @atom:c @atom:cd @atom:oh + @angle:c-cd-os @atom:c @atom:cd @atom:os + @angle:h4-cd-n @atom:h4 @atom:cd @atom:n + @angle:h4-cd-na @atom:h4 @atom:cd @atom:na + @angle:h4-cd-nc @atom:h4 @atom:cd @atom:nc + @angle:h4-cd-nd @atom:h4 @atom:cd @atom:nd + @angle:h4-cd-os @atom:h4 @atom:cd @atom:os + @angle:h4-cd-ss @atom:h4 @atom:cd @atom:ss + @angle:h5-cd-n @atom:h5 @atom:cd @atom:n + @angle:h5-cd-na @atom:h5 @atom:cd @atom:na + @angle:h5-cd-nc @atom:h5 @atom:cd @atom:nc + @angle:h5-cd-nd @atom:h5 @atom:cd @atom:nd + @angle:h5-cd-os @atom:h5 @atom:cd @atom:os + @angle:h5-cd-ss @atom:h5 @atom:cd @atom:ss + @angle:ha-cd-na @atom:ha @atom:cd @atom:na + @angle:ha-cd-nc @atom:ha @atom:cd @atom:nc + @angle:ha-cd-nd @atom:ha @atom:cd @atom:nd + @angle:ha-cd-os @atom:ha @atom:cd @atom:os + @angle:ha-cd-pc @atom:ha @atom:cd @atom:pc + @angle:ha-cd-ss @atom:ha @atom:cd @atom:ss + @angle:na-cd-nc @atom:na @atom:cd @atom:nc + @angle:na-cd-nd @atom:na @atom:cd @atom:nd + @angle:na-cd-nh @atom:na @atom:cd @atom:nh + @angle:na-cd-ss @atom:na @atom:cd @atom:ss + @angle:nc-cd-nd @atom:nc @atom:cd @atom:nd + @angle:nc-cd-nh @atom:nc @atom:cd @atom:nh + @angle:nc-cd-oh @atom:nc @atom:cd @atom:oh + @angle:nc-cd-os @atom:nc @atom:cd @atom:os + @angle:nc-cd-ss @atom:nc @atom:cd @atom:ss + @angle:nd-cd-nd @atom:nd @atom:cd @atom:nd + @angle:nd-cd-nh @atom:nd @atom:cd @atom:nh + @angle:nd-cd-ss @atom:nd @atom:cd @atom:ss + @angle:nh-cd-nh @atom:nh @atom:cd @atom:nh + @angle:nh-cd-os @atom:nh @atom:cd @atom:os + @angle:nh-cd-ss @atom:nh @atom:cd @atom:ss + @angle:n-cd-na @atom:n @atom:cd @atom:na + @angle:n-cd-nc @atom:n @atom:cd @atom:nc + @angle:n-cd-nd @atom:n @atom:cd @atom:nd + @angle:n-cd-nh @atom:n @atom:cd @atom:nh + @angle:n-cd-ss @atom:n @atom:cd @atom:ss + @angle:oh-cd-os @atom:oh @atom:cd @atom:os + @angle:os-cd-ss @atom:os @atom:cd @atom:ss + @angle:ss-cd-ss @atom:ss @atom:cd @atom:ss + @angle:ss-cd-sy @atom:ss @atom:cd @atom:sy + @angle:c2-ce-c3 @atom:c2 @atom:ce @atom:c3 + @angle:c2-ce-ca @atom:c2 @atom:ce @atom:ca + @angle:c2-ce-cc @atom:c2 @atom:ce @atom:cc + @angle:c2-ce-ce @atom:c2 @atom:ce @atom:ce + @angle:c2-ce-cg @atom:c2 @atom:ce @atom:cg + @angle:c2-ce-cl @atom:c2 @atom:ce @atom:cl + @angle:c2-ce-h4 @atom:c2 @atom:ce @atom:h4 + @angle:c2-ce-ha @atom:c2 @atom:ce @atom:ha + @angle:c2-ce-n1 @atom:c2 @atom:ce @atom:n1 + @angle:c2-ce-n2 @atom:c2 @atom:ce @atom:n2 + @angle:c2-ce-na @atom:c2 @atom:ce @atom:na + @angle:c2-ce-ne @atom:c2 @atom:ce @atom:ne + @angle:c2-ce-oh @atom:c2 @atom:ce @atom:oh + @angle:c2-ce-p2 @atom:c2 @atom:ce @atom:p2 + @angle:c2-ce-pe @atom:c2 @atom:ce @atom:pe + @angle:c2-ce-px @atom:c2 @atom:ce @atom:px + @angle:c2-ce-py @atom:c2 @atom:ce @atom:py + @angle:c2-ce-sx @atom:c2 @atom:ce @atom:sx + @angle:c2-ce-sy @atom:c2 @atom:ce @atom:sy + @angle:c3-ce-ca @atom:c3 @atom:ce @atom:ca + @angle:c3-ce-cc @atom:c3 @atom:ce @atom:cc + @angle:c3-ce-ce @atom:c3 @atom:ce @atom:ce + @angle:c3-ce-cf @atom:c3 @atom:ce @atom:cf + @angle:c3-ce-cg @atom:c3 @atom:ce @atom:cg + @angle:c3-ce-n2 @atom:c3 @atom:ce @atom:n2 + @angle:c3-ce-nf @atom:c3 @atom:ce @atom:nf + @angle:c3-ce-nh @atom:c3 @atom:ce @atom:nh + @angle:ca-ce-ca @atom:ca @atom:ce @atom:ca + @angle:ca-ce-cc @atom:ca @atom:ce @atom:cc + @angle:ca-ce-ce @atom:ca @atom:ce @atom:ce + @angle:ca-ce-cf @atom:ca @atom:ce @atom:cf + @angle:ca-ce-cl @atom:ca @atom:ce @atom:cl + @angle:ca-ce-h4 @atom:ca @atom:ce @atom:h4 + @angle:ca-ce-ha @atom:ca @atom:ce @atom:ha + @angle:ca-ce-n2 @atom:ca @atom:ce @atom:n2 + @angle:ca-ce-nf @atom:ca @atom:ce @atom:nf + @angle:ca-ce-nh @atom:ca @atom:ce @atom:nh + @angle:ca-ce-oh @atom:ca @atom:ce @atom:oh + @angle:ca-ce-os @atom:ca @atom:ce @atom:os + @angle:ca-ce-ss @atom:ca @atom:ce @atom:ss + @angle:c-ce-c2 @atom:c @atom:ce @atom:c2 + @angle:c-ce-c3 @atom:c @atom:ce @atom:c3 + @angle:c-ce-c @atom:c @atom:ce @atom:c + @angle:c-ce-ca @atom:c @atom:ce @atom:ca + @angle:cc-ce-cd @atom:cc @atom:ce @atom:cd + @angle:cc-ce-cf @atom:cc @atom:ce @atom:cf + @angle:c-ce-cd @atom:c @atom:ce @atom:cd + @angle:c-ce-ce @atom:c @atom:ce @atom:ce + @angle:c-ce-cf @atom:c @atom:ce @atom:cf + @angle:c-ce-cg @atom:c @atom:ce @atom:cg + @angle:cc-ce-h4 @atom:cc @atom:ce @atom:h4 + @angle:cc-ce-ha @atom:cc @atom:ce @atom:ha + @angle:c-ce-cl @atom:c @atom:ce @atom:cl + @angle:cc-ce-n2 @atom:cc @atom:ce @atom:n2 + @angle:cc-ce-nh @atom:cc @atom:ce @atom:nh + @angle:c-ce-cy @atom:c @atom:ce @atom:cy + @angle:cd-ce-ce @atom:cd @atom:ce @atom:ce + @angle:cd-ce-ha @atom:cd @atom:ce @atom:ha + @angle:ce-ce-ce @atom:ce @atom:ce @atom:ce + @angle:ce-ce-cf @atom:ce @atom:ce @atom:cf + @angle:ce-ce-cl @atom:ce @atom:ce @atom:cl + @angle:ce-ce-h4 @atom:ce @atom:ce @atom:h4 + @angle:ce-ce-ha @atom:ce @atom:ce @atom:ha + @angle:ce-ce-n1 @atom:ce @atom:ce @atom:n1 + @angle:ce-ce-n2 @atom:ce @atom:ce @atom:n2 + @angle:ce-ce-oh @atom:ce @atom:ce @atom:oh + @angle:cf-ce-cg @atom:cf @atom:ce @atom:cg + @angle:cf-ce-cy @atom:cf @atom:ce @atom:cy + @angle:cf-ce-h4 @atom:cf @atom:ce @atom:h4 + @angle:cf-ce-ha @atom:cf @atom:ce @atom:ha + @angle:cf-ce-n1 @atom:cf @atom:ce @atom:n1 + @angle:cf-ce-n @atom:cf @atom:ce @atom:n + @angle:cf-ce-nh @atom:cf @atom:ce @atom:nh + @angle:cf-ce-oh @atom:cf @atom:ce @atom:oh + @angle:cg-ce-cg @atom:cg @atom:ce @atom:cg + @angle:cg-ce-ha @atom:cg @atom:ce @atom:ha + @angle:cg-ce-n1 @atom:cg @atom:ce @atom:n1 + @angle:cg-ce-n2 @atom:cg @atom:ce @atom:n2 + @angle:c-ce-ha @atom:c @atom:ce @atom:ha + @angle:c-ce-n @atom:c @atom:ce @atom:n + @angle:c-ce-nh @atom:c @atom:ce @atom:nh + @angle:c-ce-oh @atom:c @atom:ce @atom:oh + @angle:c-ce-os @atom:c @atom:ce @atom:os + @angle:h4-ce-n1 @atom:h4 @atom:ce @atom:n1 + @angle:h4-ce-n2 @atom:h4 @atom:ce @atom:n2 + @angle:h4-ce-ne @atom:h4 @atom:ce @atom:ne + @angle:ha-ce-n1 @atom:ha @atom:ce @atom:n1 + @angle:ha-ce-n2 @atom:ha @atom:ce @atom:n2 + @angle:ha-ce-ne @atom:ha @atom:ce @atom:ne + @angle:ha-ce-nh @atom:ha @atom:ce @atom:nh + @angle:ha-ce-p2 @atom:ha @atom:ce @atom:p2 + @angle:ha-ce-pe @atom:ha @atom:ce @atom:pe + @angle:ha-ce-px @atom:ha @atom:ce @atom:px + @angle:ha-ce-py @atom:ha @atom:ce @atom:py + @angle:ha-ce-sx @atom:ha @atom:ce @atom:sx + @angle:ha-ce-sy @atom:ha @atom:ce @atom:sy + @angle:n2-ce-nh @atom:n2 @atom:ce @atom:nh + @angle:n2-ce-os @atom:n2 @atom:ce @atom:os + @angle:n2-ce-ss @atom:n2 @atom:ce @atom:ss + @angle:ne-ce-ne @atom:ne @atom:ce @atom:ne + @angle:ne-ce-nh @atom:ne @atom:ce @atom:nh + @angle:nf-ce-nh @atom:nf @atom:ce @atom:nh + @angle:pe-ce-pe @atom:pe @atom:ce @atom:pe + @angle:py-ce-py @atom:py @atom:ce @atom:py + @angle:sx-ce-sx @atom:sx @atom:ce @atom:sx + @angle:sy-ce-sy @atom:sy @atom:ce @atom:sy + @angle:c2-cf-c3 @atom:c2 @atom:cf @atom:c3 + @angle:c2-cf-ca @atom:c2 @atom:cf @atom:ca + @angle:c2-cf-cd @atom:c2 @atom:cf @atom:cd + @angle:c2-cf-cf @atom:c2 @atom:cf @atom:cf + @angle:c2-cf-ch @atom:c2 @atom:cf @atom:ch + @angle:c2-cf-ha @atom:c2 @atom:cf @atom:ha + @angle:c2-cf-n2 @atom:c2 @atom:cf @atom:n2 + @angle:c2-cf-nf @atom:c2 @atom:cf @atom:nf + @angle:c2-cf-p2 @atom:c2 @atom:cf @atom:p2 + @angle:c2-cf-pf @atom:c2 @atom:cf @atom:pf + @angle:c2-cf-px @atom:c2 @atom:cf @atom:px + @angle:c2-cf-py @atom:c2 @atom:cf @atom:py + @angle:c2-cf-sx @atom:c2 @atom:cf @atom:sx + @angle:c2-cf-sy @atom:c2 @atom:cf @atom:sy + @angle:c3-cf-ca @atom:c3 @atom:cf @atom:ca + @angle:c3-cf-cd @atom:c3 @atom:cf @atom:cd + @angle:c3-cf-ce @atom:c3 @atom:cf @atom:ce + @angle:c3-cf-cf @atom:c3 @atom:cf @atom:cf + @angle:c3-cf-n2 @atom:c3 @atom:cf @atom:n2 + @angle:ca-cf-ca @atom:ca @atom:cf @atom:ca + @angle:ca-cf-cc @atom:ca @atom:cf @atom:cc + @angle:ca-cf-cd @atom:ca @atom:cf @atom:cd + @angle:ca-cf-ce @atom:ca @atom:cf @atom:ce + @angle:ca-cf-ha @atom:ca @atom:cf @atom:ha + @angle:ca-cf-n2 @atom:ca @atom:cf @atom:n2 + @angle:ca-cf-ne @atom:ca @atom:cf @atom:ne + @angle:ca-cf-oh @atom:ca @atom:cf @atom:oh + @angle:c-cf-c2 @atom:c @atom:cf @atom:c2 + @angle:c-cf-c3 @atom:c @atom:cf @atom:c3 + @angle:c-cf-c @atom:c @atom:cf @atom:c + @angle:c-cf-cc @atom:c @atom:cf @atom:cc + @angle:cc-cf-cf @atom:cc @atom:cf @atom:cf + @angle:c-cf-cd @atom:c @atom:cf @atom:cd + @angle:c-cf-ce @atom:c @atom:cf @atom:ce + @angle:cc-cf-ha @atom:cc @atom:cf @atom:ha + @angle:cd-cf-ce @atom:cd @atom:cf @atom:ce + @angle:cd-cf-ha @atom:cd @atom:cf @atom:ha + @angle:cd-cf-n2 @atom:cd @atom:cf @atom:n2 + @angle:ce-cf-cf @atom:ce @atom:cf @atom:cf + @angle:ce-cf-ch @atom:ce @atom:cf @atom:ch + @angle:ce-cf-ha @atom:ce @atom:cf @atom:ha + @angle:ce-cf-n @atom:ce @atom:cf @atom:n + @angle:ce-cf-oh @atom:ce @atom:cf @atom:oh + @angle:cf-cf-cf @atom:cf @atom:cf @atom:cf + @angle:cf-cf-h4 @atom:cf @atom:cf @atom:h4 + @angle:cf-cf-ha @atom:cf @atom:cf @atom:ha + @angle:cf-cf-n1 @atom:cf @atom:cf @atom:n1 + @angle:cf-cf-n2 @atom:cf @atom:cf @atom:n2 + @angle:c-cf-ha @atom:c @atom:cf @atom:ha + @angle:ch-cf-ch @atom:ch @atom:cf @atom:ch + @angle:ch-cf-ha @atom:ch @atom:cf @atom:ha + @angle:ch-cf-n1 @atom:ch @atom:cf @atom:n1 + @angle:c-cf-n2 @atom:c @atom:cf @atom:n2 + @angle:c-cf-n @atom:c @atom:cf @atom:n + @angle:c-cf-nh @atom:c @atom:cf @atom:nh + @angle:f-c-f @atom:f @atom:c @atom:f + @angle:h4-cf-n2 @atom:h4 @atom:cf @atom:n2 + @angle:h4-cf-ne @atom:h4 @atom:cf @atom:ne + @angle:ha-cf-n1 @atom:ha @atom:cf @atom:n1 + @angle:ha-cf-n2 @atom:ha @atom:cf @atom:n2 + @angle:ha-cf-nf @atom:ha @atom:cf @atom:nf + @angle:ha-cf-nh @atom:ha @atom:cf @atom:nh + @angle:ha-cf-p2 @atom:ha @atom:cf @atom:p2 + @angle:ha-cf-pf @atom:ha @atom:cf @atom:pf + @angle:ha-cf-px @atom:ha @atom:cf @atom:px + @angle:ha-cf-py @atom:ha @atom:cf @atom:py + @angle:ha-cf-sx @atom:ha @atom:cf @atom:sx + @angle:ha-cf-sy @atom:ha @atom:cf @atom:sy + @angle:n2-cf-nh @atom:n2 @atom:cf @atom:nh + @angle:nf-cf-nf @atom:nf @atom:cf @atom:nf + @angle:f-c-o @atom:f @atom:c @atom:o + @angle:pf-cf-pf @atom:pf @atom:cf @atom:pf + @angle:py-cf-py @atom:py @atom:cf @atom:py + @angle:f-c-s @atom:f @atom:c @atom:s + @angle:sx-cf-sx @atom:sx @atom:cf @atom:sx + @angle:sy-cf-sy @atom:sy @atom:cf @atom:sy + @angle:c1-cg-ca @atom:c1 @atom:cg @atom:ca + @angle:c1-cg-cc @atom:c1 @atom:cg @atom:cc + @angle:c1-cg-ce @atom:c1 @atom:cg @atom:ce + @angle:c1-cg-cg @atom:c1 @atom:cg @atom:cg + @angle:c1-cg-ne @atom:c1 @atom:cg @atom:ne + @angle:c1-cg-pe @atom:c1 @atom:cg @atom:pe + @angle:ca-cg-ch @atom:ca @atom:cg @atom:ch + @angle:ca-cg-n1 @atom:ca @atom:cg @atom:n1 + @angle:c-cg-c1 @atom:c @atom:cg @atom:c1 + @angle:cc-cg-n1 @atom:cc @atom:cg @atom:n1 + @angle:ce-cg-ch @atom:ce @atom:cg @atom:ch + @angle:ce-cg-n1 @atom:ce @atom:cg @atom:n1 + @angle:n1-cg-ne @atom:n1 @atom:cg @atom:ne + @angle:h4-c-o @atom:h4 @atom:c @atom:o + @angle:h5-c-n @atom:h5 @atom:c @atom:n + @angle:h5-c-o @atom:h5 @atom:c @atom:o + @angle:ha-c-ha @atom:ha @atom:c @atom:ha + @angle:ha-c-i @atom:ha @atom:c @atom:i + @angle:ha-c-n @atom:ha @atom:c @atom:n + @angle:ha-c-o @atom:ha @atom:c @atom:o + @angle:ha-c-oh @atom:ha @atom:c @atom:oh + @angle:ha-c-os @atom:ha @atom:c @atom:os + @angle:ha-c-s @atom:ha @atom:c @atom:s + @angle:c1-ch-ca @atom:c1 @atom:ch @atom:ca + @angle:c1-ch-cf @atom:c1 @atom:ch @atom:cf + @angle:c1-ch-ch @atom:c1 @atom:ch @atom:ch + @angle:c1-ch-nf @atom:c1 @atom:ch @atom:nf + @angle:c1-ch-pf @atom:c1 @atom:ch @atom:pf + @angle:ca-ch-cg @atom:ca @atom:ch @atom:cg + @angle:ca-ch-n1 @atom:ca @atom:ch @atom:n1 + @angle:c-ch-c1 @atom:c @atom:ch @atom:c1 + @angle:cd-ch-n1 @atom:cd @atom:ch @atom:n1 + @angle:cf-ch-cg @atom:cf @atom:ch @atom:cg + @angle:cf-ch-n1 @atom:cf @atom:ch @atom:n1 + @angle:cg-ch-ch @atom:cg @atom:ch @atom:ch + @angle:n1-ch-nf @atom:n1 @atom:ch @atom:nf + @angle:i-c-i @atom:i @atom:c @atom:i + @angle:i-c-o @atom:i @atom:c @atom:o + @angle:f-cl-f @atom:f @atom:cl @atom:f + @angle:n2-c-n2 @atom:n2 @atom:c @atom:n2 + @angle:n2-c-o @atom:n2 @atom:c @atom:o + @angle:n4-c-n4 @atom:n4 @atom:c @atom:n4 + @angle:n4-c-o @atom:n4 @atom:c @atom:o + @angle:nc-c-o @atom:nc @atom:c @atom:o + @angle:nd-c-o @atom:nd @atom:c @atom:o + @angle:ne-c-ne @atom:ne @atom:c @atom:ne + @angle:ne-c-o @atom:ne @atom:c @atom:o + @angle:nf-c-nf @atom:nf @atom:c @atom:nf + @angle:nf-c-o @atom:nf @atom:c @atom:o + @angle:n-c-n @atom:n @atom:c @atom:n + @angle:n-c-nc @atom:n @atom:c @atom:nc + @angle:n-c-nd @atom:n @atom:c @atom:nd + @angle:n-c-ne @atom:n @atom:c @atom:ne + @angle:n-c-o @atom:n @atom:c @atom:o + @angle:n-c-oh @atom:n @atom:c @atom:oh + @angle:no-c-no @atom:no @atom:c @atom:no + @angle:no-c-o @atom:no @atom:c @atom:o + @angle:n-c-os @atom:n @atom:c @atom:os + @angle:n-c-s @atom:n @atom:c @atom:s + @angle:n-c-sh @atom:n @atom:c @atom:sh + @angle:n-c-ss @atom:n @atom:c @atom:ss + @angle:oh-c-oh @atom:oh @atom:c @atom:oh + @angle:oh-c-s @atom:oh @atom:c @atom:s + @angle:o-c-o @atom:o @atom:c @atom:o + @angle:o-c-oh @atom:o @atom:c @atom:oh + @angle:o-c-os @atom:o @atom:c @atom:os + @angle:o-c-p2 @atom:o @atom:c @atom:p2 + @angle:o-c-p3 @atom:o @atom:c @atom:p3 + @angle:o-c-p5 @atom:o @atom:c @atom:p5 + @angle:o-c-pe @atom:o @atom:c @atom:pe + @angle:o-c-pf @atom:o @atom:c @atom:pf + @angle:o-c-px @atom:o @atom:c @atom:px + @angle:o-c-py @atom:o @atom:c @atom:py + @angle:o-c-s4 @atom:o @atom:c @atom:s4 + @angle:o-c-s6 @atom:o @atom:c @atom:s6 + @angle:o-c-s @atom:o @atom:c @atom:s + @angle:o-c-sh @atom:o @atom:c @atom:sh + @angle:os-c-os @atom:os @atom:c @atom:os + @angle:o-c-ss @atom:o @atom:c @atom:ss + @angle:os-c-s @atom:os @atom:c @atom:s + @angle:os-c-ss @atom:os @atom:c @atom:ss + @angle:o-c-sx @atom:o @atom:c @atom:sx + @angle:o-c-sy @atom:o @atom:c @atom:sy + @angle:p2-c-p2 @atom:p2 @atom:c @atom:p2 + @angle:p3-c-p3 @atom:p3 @atom:c @atom:p3 + @angle:p3-c-py @atom:p3 @atom:c @atom:py + @angle:p5-c-p5 @atom:p5 @atom:c @atom:p5 + @angle:ca-cp-ca @atom:ca @atom:cp @atom:ca + @angle:ca-cp-cp @atom:ca @atom:cp @atom:cp + @angle:ca-cp-na @atom:ca @atom:cp @atom:na + @angle:ca-cp-nb @atom:ca @atom:cp @atom:nb + @angle:cp-cp-cp @atom:cp @atom:cp @atom:cp + @angle:cp-cp-cq @atom:cp @atom:cp @atom:cq + @angle:cp-cp-nb @atom:cp @atom:cp @atom:nb + @angle:pe-c-pe @atom:pe @atom:c @atom:pe + @angle:pf-c-pf @atom:pf @atom:c @atom:pf + @angle:nb-cp-nb @atom:nb @atom:cp @atom:nb + @angle:py-c-py @atom:py @atom:c @atom:py + @angle:ca-cq-ca @atom:ca @atom:cq @atom:ca + @angle:ca-cq-cq @atom:ca @atom:cq @atom:cq + @angle:ca-cq-nb @atom:ca @atom:cq @atom:nb + @angle:cp-cq-cq @atom:cp @atom:cq @atom:cq + @angle:cq-cq-cq @atom:cq @atom:cq @atom:cq + @angle:cq-cq-nb @atom:cq @atom:cq @atom:nb + @angle:s4-c-s4 @atom:s4 @atom:c @atom:s4 + @angle:s6-c-s6 @atom:s6 @atom:c @atom:s6 + @angle:sh-c-sh @atom:sh @atom:c @atom:sh + @angle:s-c-s @atom:s @atom:c @atom:s + @angle:s-c-sh @atom:s @atom:c @atom:sh + @angle:s-c-ss @atom:s @atom:c @atom:ss + @angle:ss-c-ss @atom:ss @atom:c @atom:ss + @angle:sx-c-sx @atom:sx @atom:c @atom:sx + @angle:sy-c-sy @atom:sy @atom:c @atom:sy + @angle:c2-cu-cx @atom:c2 @atom:cu @atom:cx + @angle:c-cu-cu @atom:c @atom:cu @atom:cu + @angle:cu-cu-cx @atom:cu @atom:cu @atom:cx + @angle:cu-cu-ha @atom:cu @atom:cu @atom:ha + @angle:cv-cv-cy @atom:cv @atom:cv @atom:cy + @angle:cv-cv-ha @atom:cv @atom:cv @atom:ha + @angle:cx-cv-cx @atom:cx @atom:cv @atom:cx + @angle:cy-cv-ha @atom:cy @atom:cv @atom:ha + @angle:c1-cx-cx @atom:c1 @atom:cx @atom:cx + @angle:c2-cx-cx @atom:c2 @atom:cx @atom:cx + @angle:c2-cx-h1 @atom:c2 @atom:cx @atom:h1 + @angle:c2-cx-hc @atom:c2 @atom:cx @atom:hc + @angle:c2-cx-os @atom:c2 @atom:cx @atom:os + @angle:c3-cx-c3 @atom:c3 @atom:cx @atom:c3 + @angle:c3-cx-cx @atom:c3 @atom:cx @atom:cx + @angle:c3-cx-h1 @atom:c3 @atom:cx @atom:h1 + @angle:c3-cx-hc @atom:c3 @atom:cx @atom:hc + @angle:c3-cx-n3 @atom:c3 @atom:cx @atom:n3 + @angle:c3-cx-os @atom:c3 @atom:cx @atom:os + @angle:ca-cx-cx @atom:ca @atom:cx @atom:cx + @angle:ca-cx-h1 @atom:ca @atom:cx @atom:h1 + @angle:ca-cx-hc @atom:ca @atom:cx @atom:hc + @angle:ca-cx-oh @atom:ca @atom:cx @atom:oh + @angle:ca-cx-os @atom:ca @atom:cx @atom:os + @angle:c-cx-c3 @atom:c @atom:cx @atom:c3 + @angle:cc-cx-cx @atom:cc @atom:cx @atom:cx + @angle:cc-cx-hc @atom:cc @atom:cx @atom:hc + @angle:c-cx-cx @atom:c @atom:cx @atom:cx + @angle:cd-cx-cx @atom:cd @atom:cx @atom:cx + @angle:c-cx-h1 @atom:c @atom:cx @atom:h1 + @angle:c-cx-hc @atom:c @atom:cx @atom:hc + @angle:cl-cx-cl @atom:cl @atom:cx @atom:cl + @angle:cl-cx-cx @atom:cl @atom:cx @atom:cx + @angle:cl-cx-h1 @atom:cl @atom:cx @atom:h1 + @angle:cl-cx-hc @atom:cl @atom:cx @atom:hc + @angle:c-cx-os @atom:c @atom:cx @atom:os + @angle:cu-cx-cu @atom:cu @atom:cx @atom:cu + @angle:cu-cx-cx @atom:cu @atom:cx @atom:cx + @angle:cu-cx-hc @atom:cu @atom:cx @atom:hc + @angle:cx-cx-cx @atom:cx @atom:cx @atom:cx + @angle:cx-cx-cy @atom:cx @atom:cx @atom:cy + @angle:cx-cx-f @atom:cx @atom:cx @atom:f + @angle:cx-cx-h1 @atom:cx @atom:cx @atom:h1 + @angle:cx-cx-hc @atom:cx @atom:cx @atom:hc + @angle:cx-cx-hx @atom:cx @atom:cx @atom:hx + @angle:cx-cx-n3 @atom:cx @atom:cx @atom:n3 + @angle:cx-cx-na @atom:cx @atom:cx @atom:na + @angle:cx-cx-nh @atom:cx @atom:cx @atom:nh + @angle:cx-cx-os @atom:cx @atom:cx @atom:os + @angle:cy-cx-hc @atom:cy @atom:cx @atom:hc + @angle:f-cx-f @atom:f @atom:cx @atom:f + @angle:f-cx-h1 @atom:f @atom:cx @atom:h1 + @angle:f-cx-hc @atom:f @atom:cx @atom:hc + @angle:h1-cx-h1 @atom:h1 @atom:cx @atom:h1 + @angle:h1-cx-n3 @atom:h1 @atom:cx @atom:n3 + @angle:h1-cx-n @atom:h1 @atom:cx @atom:n + @angle:h1-cx-na @atom:h1 @atom:cx @atom:na + @angle:h1-cx-nh @atom:h1 @atom:cx @atom:nh + @angle:h1-cx-os @atom:h1 @atom:cx @atom:os + @angle:h2-cx-h2 @atom:h2 @atom:cx @atom:h2 + @angle:h2-cx-n2 @atom:h2 @atom:cx @atom:n2 + @angle:hc-cx-hc @atom:hc @atom:cx @atom:hc + @angle:hc-cx-os @atom:hc @atom:cx @atom:os + @angle:hx-cx-n4 @atom:hx @atom:cx @atom:n4 + @angle:n2-cx-n2 @atom:n2 @atom:cx @atom:n2 + @angle:n-cx-oh @atom:n @atom:cx @atom:oh + @angle:n-cx-os @atom:n @atom:cx @atom:os + @angle:oh-cx-oh @atom:oh @atom:cx @atom:oh + @angle:oh-cx-os @atom:oh @atom:cx @atom:os + @angle:os-cx-os @atom:os @atom:cx @atom:os + @angle:c2-cy-cy @atom:c2 @atom:cy @atom:cy + @angle:c3-cy-c3 @atom:c3 @atom:cy @atom:c3 + @angle:c3-cy-cy @atom:c3 @atom:cy @atom:cy + @angle:c3-cy-h1 @atom:c3 @atom:cy @atom:h1 + @angle:c3-cy-hc @atom:c3 @atom:cy @atom:hc + @angle:c3-cy-n3 @atom:c3 @atom:cy @atom:n3 + @angle:c3-cy-n @atom:c3 @atom:cy @atom:n + @angle:c3-cy-os @atom:c3 @atom:cy @atom:os + @angle:c-cy-c3 @atom:c @atom:cy @atom:c3 + @angle:cc-cy-cy @atom:cc @atom:cy @atom:cy + @angle:c-cy-cy @atom:c @atom:cy @atom:cy + @angle:cd-cy-cy @atom:cd @atom:cy @atom:cy + @angle:ce-cy-h2 @atom:ce @atom:cy @atom:h2 + @angle:ce-cy-n @atom:ce @atom:cy @atom:n + @angle:ce-cy-ss @atom:ce @atom:cy @atom:ss + @angle:c-cy-h1 @atom:c @atom:cy @atom:h1 + @angle:c-cy-hc @atom:c @atom:cy @atom:hc + @angle:cl-cy-cy @atom:cl @atom:cy @atom:cy + @angle:cl-cy-h1 @atom:cl @atom:cy @atom:h1 + @angle:cl-cy-hc @atom:cl @atom:cy @atom:hc + @angle:c-cy-n @atom:c @atom:cy @atom:n + @angle:c-cy-os @atom:c @atom:cy @atom:os + @angle:cv-cy-cy @atom:cv @atom:cy @atom:cy + @angle:cv-cy-hc @atom:cv @atom:cy @atom:hc + @angle:cx-cy-cy @atom:cx @atom:cy @atom:cy + @angle:cx-cy-hc @atom:cx @atom:cy @atom:hc + @angle:cy-cy-cy @atom:cy @atom:cy @atom:cy + @angle:cy-cy-f @atom:cy @atom:cy @atom:f + @angle:cy-cy-h1 @atom:cy @atom:cy @atom:h1 + @angle:cy-cy-h2 @atom:cy @atom:cy @atom:h2 + @angle:cy-cy-hc @atom:cy @atom:cy @atom:hc + @angle:cy-cy-n3 @atom:cy @atom:cy @atom:n3 + @angle:cy-cy-n @atom:cy @atom:cy @atom:n + @angle:cy-cy-na @atom:cy @atom:cy @atom:na + @angle:cy-cy-oh @atom:cy @atom:cy @atom:oh + @angle:cy-cy-os @atom:cy @atom:cy @atom:os + @angle:cy-cy-s6 @atom:cy @atom:cy @atom:s6 + @angle:cy-cy-ss @atom:cy @atom:cy @atom:ss + @angle:h1-cy-h1 @atom:h1 @atom:cy @atom:h1 + @angle:h1-cy-n3 @atom:h1 @atom:cy @atom:n3 + @angle:h1-cy-n @atom:h1 @atom:cy @atom:n + @angle:h1-cy-oh @atom:h1 @atom:cy @atom:oh + @angle:h1-cy-os @atom:h1 @atom:cy @atom:os + @angle:h1-cy-s6 @atom:h1 @atom:cy @atom:s6 + @angle:h2-cy-n @atom:h2 @atom:cy @atom:n + @angle:h2-cy-os @atom:h2 @atom:cy @atom:os + @angle:h2-cy-s6 @atom:h2 @atom:cy @atom:s6 + @angle:h2-cy-ss @atom:h2 @atom:cy @atom:ss + @angle:hc-cy-hc @atom:hc @atom:cy @atom:hc + @angle:n-cy-os @atom:n @atom:cy @atom:os + @angle:n-cy-s6 @atom:n @atom:cy @atom:s6 + @angle:n-cy-ss @atom:n @atom:cy @atom:ss + @angle:nh-cz-nh @atom:nh @atom:cz @atom:nh + @angle:br-n1-c1 @atom:br @atom:n1 @atom:c1 + @angle:c1-n1-c1 @atom:c1 @atom:n1 @atom:c1 + @angle:c1-n1-c2 @atom:c1 @atom:n1 @atom:c2 + @angle:c1-n1-c3 @atom:c1 @atom:n1 @atom:c3 + @angle:c1-n1-ca @atom:c1 @atom:n1 @atom:ca + @angle:c1-n1-cl @atom:c1 @atom:n1 @atom:cl + @angle:c1-n1-f @atom:c1 @atom:n1 @atom:f + @angle:c1-n1-hn @atom:c1 @atom:n1 @atom:hn + @angle:c1-n1-i @atom:c1 @atom:n1 @atom:i + @angle:c1-n1-n1 @atom:c1 @atom:n1 @atom:n1 + @angle:c1-n1-n2 @atom:c1 @atom:n1 @atom:n2 + @angle:c1-n1-n3 @atom:c1 @atom:n1 @atom:n3 + @angle:c1-n1-n4 @atom:c1 @atom:n1 @atom:n4 + @angle:c1-n1-na @atom:c1 @atom:n1 @atom:na + @angle:c1-n1-nh @atom:c1 @atom:n1 @atom:nh + @angle:c1-n1-o @atom:c1 @atom:n1 @atom:o + @angle:c1-n1-oh @atom:c1 @atom:n1 @atom:oh + @angle:c1-n1-os @atom:c1 @atom:n1 @atom:os + @angle:c1-n1-p2 @atom:c1 @atom:n1 @atom:p2 + @angle:c1-n1-p3 @atom:c1 @atom:n1 @atom:p3 + @angle:c1-n1-p4 @atom:c1 @atom:n1 @atom:p4 + @angle:c1-n1-p5 @atom:c1 @atom:n1 @atom:p5 + @angle:c1-n1-s2 @atom:c1 @atom:n1 @atom:s2 + @angle:c1-n1-s4 @atom:c1 @atom:n1 @atom:s4 + @angle:c1-n1-s @atom:c1 @atom:n1 @atom:s + @angle:c1-n1-s6 @atom:c1 @atom:n1 @atom:s6 + @angle:c1-n1-sh @atom:c1 @atom:n1 @atom:sh + @angle:c1-n1-ss @atom:c1 @atom:n1 @atom:ss + @angle:c2-n1-n1 @atom:c2 @atom:n1 @atom:n1 + @angle:c2-n1-o @atom:c2 @atom:n1 @atom:o + @angle:c2-n1-s @atom:c2 @atom:n1 @atom:s + @angle:c3-n1-n1 @atom:c3 @atom:n1 @atom:n1 + @angle:ca-n1-n1 @atom:ca @atom:n1 @atom:n1 + @angle:ce-n1-o @atom:ce @atom:n1 @atom:o + @angle:ce-n1-s @atom:ce @atom:n1 @atom:s + @angle:cf-n1-o @atom:cf @atom:n1 @atom:o + @angle:cf-n1-s @atom:cf @atom:n1 @atom:s + @angle:cl-n1-n1 @atom:cl @atom:n1 @atom:n1 + @angle:f-n1-n1 @atom:f @atom:n1 @atom:n1 + @angle:hn-n1-n1 @atom:hn @atom:n1 @atom:n1 + @angle:i-n1-n1 @atom:i @atom:n1 @atom:n1 + @angle:n1-n1-n1 @atom:n1 @atom:n1 @atom:n1 + @angle:n1-n1-n2 @atom:n1 @atom:n1 @atom:n2 + @angle:n1-n1-n3 @atom:n1 @atom:n1 @atom:n3 + @angle:n1-n1-n4 @atom:n1 @atom:n1 @atom:n4 + @angle:n1-n1-na @atom:n1 @atom:n1 @atom:na + @angle:n1-n1-nh @atom:n1 @atom:n1 @atom:nh + @angle:n1-n1-o @atom:n1 @atom:n1 @atom:o + @angle:n1-n1-oh @atom:n1 @atom:n1 @atom:oh + @angle:n1-n1-os @atom:n1 @atom:n1 @atom:os + @angle:n1-n1-p2 @atom:n1 @atom:n1 @atom:p2 + @angle:n1-n1-p3 @atom:n1 @atom:n1 @atom:p3 + @angle:n1-n1-s @atom:n1 @atom:n1 @atom:s + @angle:n1-n1-sh @atom:n1 @atom:n1 @atom:sh + @angle:n1-n1-ss @atom:n1 @atom:n1 @atom:ss + @angle:o-n1-p2 @atom:o @atom:n1 @atom:p2 + @angle:p2-n1-s @atom:p2 @atom:n1 @atom:s + @angle:br-n2-br @atom:br @atom:n2 @atom:br + @angle:br-n2-c2 @atom:br @atom:n2 @atom:c2 + @angle:br-n2-n2 @atom:br @atom:n2 @atom:n2 + @angle:br-n2-o @atom:br @atom:n2 @atom:o + @angle:br-n2-p2 @atom:br @atom:n2 @atom:p2 + @angle:br-n2-s @atom:br @atom:n2 @atom:s + @angle:c1-n2-c1 @atom:c1 @atom:n2 @atom:c1 + @angle:c1-n2-c3 @atom:c1 @atom:n2 @atom:c3 + @angle:c1-n2-cl @atom:c1 @atom:n2 @atom:cl + @angle:c1-n2-hn @atom:c1 @atom:n2 @atom:hn + @angle:c1-n2-n2 @atom:c1 @atom:n2 @atom:n2 + @angle:c1-n2-o @atom:c1 @atom:n2 @atom:o + @angle:c1-n2-p2 @atom:c1 @atom:n2 @atom:p2 + @angle:c1-n2-s @atom:c1 @atom:n2 @atom:s + @angle:c2-n2-c2 @atom:c2 @atom:n2 @atom:c2 + @angle:c2-n2-c3 @atom:c2 @atom:n2 @atom:c3 + @angle:c2-n2-ca @atom:c2 @atom:n2 @atom:ca + @angle:c2-n2-cl @atom:c2 @atom:n2 @atom:cl + @angle:c2-n2-f @atom:c2 @atom:n2 @atom:f + @angle:c2-n2-hn @atom:c2 @atom:n2 @atom:hn + @angle:c2-n2-i @atom:c2 @atom:n2 @atom:i + @angle:c2-n2-n1 @atom:c2 @atom:n2 @atom:n1 + @angle:c2-n2-n2 @atom:c2 @atom:n2 @atom:n2 + @angle:c2-n2-n3 @atom:c2 @atom:n2 @atom:n3 + @angle:c2-n2-n4 @atom:c2 @atom:n2 @atom:n4 + @angle:c2-n2-n @atom:c2 @atom:n2 @atom:n + @angle:c2-n2-na @atom:c2 @atom:n2 @atom:na + @angle:c2-n2-nh @atom:c2 @atom:n2 @atom:nh + @angle:c2-n2-no @atom:c2 @atom:n2 @atom:no + @angle:c2-n2-o @atom:c2 @atom:n2 @atom:o + @angle:c2-n2-oh @atom:c2 @atom:n2 @atom:oh + @angle:c2-n2-os @atom:c2 @atom:n2 @atom:os + @angle:c2-n2-p2 @atom:c2 @atom:n2 @atom:p2 + @angle:c2-n2-p3 @atom:c2 @atom:n2 @atom:p3 + @angle:c2-n2-p4 @atom:c2 @atom:n2 @atom:p4 + @angle:c2-n2-s4 @atom:c2 @atom:n2 @atom:s4 + @angle:c2-n2-s6 @atom:c2 @atom:n2 @atom:s6 + @angle:c2-n2-s @atom:c2 @atom:n2 @atom:s + @angle:c2-n2-sh @atom:c2 @atom:n2 @atom:sh + @angle:c2-n2-ss @atom:c2 @atom:n2 @atom:ss + @angle:c3-n2-c3 @atom:c3 @atom:n2 @atom:c3 + @angle:c3-n2-ca @atom:c3 @atom:n2 @atom:ca + @angle:c3-n2-ce @atom:c3 @atom:n2 @atom:ce + @angle:c3-n2-cf @atom:c3 @atom:n2 @atom:cf + @angle:c3-n2-hn @atom:c3 @atom:n2 @atom:hn + @angle:c3-n2-n1 @atom:c3 @atom:n2 @atom:n1 + @angle:c3-n2-n2 @atom:c3 @atom:n2 @atom:n2 + @angle:c3-n2-nh @atom:c3 @atom:n2 @atom:nh + @angle:c3-n2-o @atom:c3 @atom:n2 @atom:o + @angle:c3-n2-p2 @atom:c3 @atom:n2 @atom:p2 + @angle:c3-n2-s6 @atom:c3 @atom:n2 @atom:s6 + @angle:c3-n2-s @atom:c3 @atom:n2 @atom:s + @angle:ca-n2-ca @atom:ca @atom:n2 @atom:ca + @angle:ca-n2-hn @atom:ca @atom:n2 @atom:hn + @angle:ca-n2-n2 @atom:ca @atom:n2 @atom:n2 + @angle:ca-n2-o @atom:ca @atom:n2 @atom:o + @angle:ca-n2-p2 @atom:ca @atom:n2 @atom:p2 + @angle:ca-n2-s @atom:ca @atom:n2 @atom:s + @angle:c-n2-c2 @atom:c @atom:n2 @atom:c2 + @angle:c-n2-c @atom:c @atom:n2 @atom:c + @angle:c-n2-ca @atom:c @atom:n2 @atom:ca + @angle:cc-n2-cl @atom:cc @atom:n2 @atom:cl + @angle:cc-n2-hn @atom:cc @atom:n2 @atom:hn + @angle:cc-n2-na @atom:cc @atom:n2 @atom:na + @angle:cc-n2-nh @atom:cc @atom:n2 @atom:nh + @angle:cd-n2-cl @atom:cd @atom:n2 @atom:cl + @angle:cd-n2-hn @atom:cd @atom:n2 @atom:hn + @angle:ce-n2-hn @atom:ce @atom:n2 @atom:hn + @angle:ce-n2-n @atom:ce @atom:n2 @atom:n + @angle:ce-n2-nh @atom:ce @atom:n2 @atom:nh + @angle:ce-n2-o @atom:ce @atom:n2 @atom:o + @angle:ce-n2-oh @atom:ce @atom:n2 @atom:oh + @angle:ce-n2-os @atom:ce @atom:n2 @atom:os + @angle:ce-n2-s @atom:ce @atom:n2 @atom:s + @angle:cf-n2-hn @atom:cf @atom:n2 @atom:hn + @angle:cf-n2-n @atom:cf @atom:n2 @atom:n + @angle:cf-n2-nh @atom:cf @atom:n2 @atom:nh + @angle:cf-n2-o @atom:cf @atom:n2 @atom:o + @angle:cf-n2-oh @atom:cf @atom:n2 @atom:oh + @angle:cf-n2-os @atom:cf @atom:n2 @atom:os + @angle:cf-n2-s @atom:cf @atom:n2 @atom:s + @angle:cl-n2-n1 @atom:cl @atom:n2 @atom:n1 + @angle:cl-n2-n2 @atom:cl @atom:n2 @atom:n2 + @angle:cl-n2-o @atom:cl @atom:n2 @atom:o + @angle:cl-n2-p2 @atom:cl @atom:n2 @atom:p2 + @angle:cl-n2-s @atom:cl @atom:n2 @atom:s + @angle:cx-n2-n2 @atom:cx @atom:n2 @atom:n2 + @angle:f-n2-n2 @atom:f @atom:n2 @atom:n2 + @angle:f-n2-o @atom:f @atom:n2 @atom:o + @angle:f-n2-p2 @atom:f @atom:n2 @atom:p2 + @angle:f-n2-s @atom:f @atom:n2 @atom:s + @angle:hn-n2-hn @atom:hn @atom:n2 @atom:hn + @angle:hn-n2-n1 @atom:hn @atom:n2 @atom:n1 + @angle:hn-n2-n2 @atom:hn @atom:n2 @atom:n2 + @angle:hn-n2-ne @atom:hn @atom:n2 @atom:ne + @angle:hn-n2-nf @atom:hn @atom:n2 @atom:nf + @angle:hn-n2-o @atom:hn @atom:n2 @atom:o + @angle:hn-n2-p2 @atom:hn @atom:n2 @atom:p2 + @angle:hn-n2-p4 @atom:hn @atom:n2 @atom:p4 + @angle:hn-n2-p5 @atom:hn @atom:n2 @atom:p5 + @angle:hn-n2-pe @atom:hn @atom:n2 @atom:pe + @angle:hn-n2-pf @atom:hn @atom:n2 @atom:pf + @angle:hn-n2-s2 @atom:hn @atom:n2 @atom:s2 + @angle:hn-n2-s4 @atom:hn @atom:n2 @atom:s4 + @angle:hn-n2-s @atom:hn @atom:n2 @atom:s + @angle:hn-n2-s6 @atom:hn @atom:n2 @atom:s6 + @angle:i-n2-n2 @atom:i @atom:n2 @atom:n2 + @angle:i-n2-o @atom:i @atom:n2 @atom:o + @angle:i-n2-p2 @atom:i @atom:n2 @atom:p2 + @angle:i-n2-s @atom:i @atom:n2 @atom:s + @angle:n1-n2-n1 @atom:n1 @atom:n2 @atom:n1 + @angle:n2-n2-n1 @atom:n2 @atom:n2 @atom:n1 + @angle:n2-n2-n2 @atom:n2 @atom:n2 @atom:n2 + @angle:n2-n2-n3 @atom:n2 @atom:n2 @atom:n3 + @angle:n2-n2-n4 @atom:n2 @atom:n2 @atom:n4 + @angle:n2-n2-na @atom:n2 @atom:n2 @atom:na + @angle:n2-n2-nh @atom:n2 @atom:n2 @atom:nh + @angle:n2-n2-no @atom:n2 @atom:n2 @atom:no + @angle:n2-n2-o @atom:n2 @atom:n2 @atom:o + @angle:n2-n2-oh @atom:n2 @atom:n2 @atom:oh + @angle:n2-n2-os @atom:n2 @atom:n2 @atom:os + @angle:n2-n2-p2 @atom:n2 @atom:n2 @atom:p2 + @angle:n2-n2-p3 @atom:n2 @atom:n2 @atom:p3 + @angle:n2-n2-p4 @atom:n2 @atom:n2 @atom:p4 + @angle:n2-n2-p5 @atom:n2 @atom:n2 @atom:p5 + @angle:n2-n2-s4 @atom:n2 @atom:n2 @atom:s4 + @angle:n2-n2-s6 @atom:n2 @atom:n2 @atom:s6 + @angle:n2-n2-s @atom:n2 @atom:n2 @atom:s + @angle:n2-n2-sh @atom:n2 @atom:n2 @atom:sh + @angle:n2-n2-ss @atom:n2 @atom:n2 @atom:ss + @angle:n3-n2-n3 @atom:n3 @atom:n2 @atom:n3 + @angle:n3-n2-o @atom:n3 @atom:n2 @atom:o + @angle:n3-n2-p2 @atom:n3 @atom:n2 @atom:p2 + @angle:n3-n2-s @atom:n3 @atom:n2 @atom:s + @angle:n4-n2-n4 @atom:n4 @atom:n2 @atom:n4 + @angle:n4-n2-o @atom:n4 @atom:n2 @atom:o + @angle:n4-n2-p2 @atom:n4 @atom:n2 @atom:p2 + @angle:n4-n2-s @atom:n4 @atom:n2 @atom:s + @angle:na-n2-na @atom:na @atom:n2 @atom:na + @angle:na-n2-o @atom:na @atom:n2 @atom:o + @angle:na-n2-p2 @atom:na @atom:n2 @atom:p2 + @angle:na-n2-s @atom:na @atom:n2 @atom:s + @angle:ne-n2-nh @atom:ne @atom:n2 @atom:nh + @angle:ne-n2-o @atom:ne @atom:n2 @atom:o + @angle:ne-n2-s @atom:ne @atom:n2 @atom:s + @angle:nf-n2-nh @atom:nf @atom:n2 @atom:nh + @angle:nf-n2-o @atom:nf @atom:n2 @atom:o + @angle:nf-n2-s @atom:nf @atom:n2 @atom:s + @angle:nh-n2-nh @atom:nh @atom:n2 @atom:nh + @angle:nh-n2-o @atom:nh @atom:n2 @atom:o + @angle:nh-n2-p2 @atom:nh @atom:n2 @atom:p2 + @angle:nh-n2-s @atom:nh @atom:n2 @atom:s + @angle:n-n2-n2 @atom:n @atom:n2 @atom:n2 + @angle:n-n2-o @atom:n @atom:n2 @atom:o + @angle:no-n2-no @atom:no @atom:n2 @atom:no + @angle:no-n2-o @atom:no @atom:n2 @atom:o + @angle:no-n2-p2 @atom:no @atom:n2 @atom:p2 + @angle:n-n2-p2 @atom:n @atom:n2 @atom:p2 + @angle:n-n2-s @atom:n @atom:n2 @atom:s + @angle:oh-n2-oh @atom:oh @atom:n2 @atom:oh + @angle:oh-n2-p2 @atom:oh @atom:n2 @atom:p2 + @angle:oh-n2-s @atom:oh @atom:n2 @atom:s + @angle:o-n2-o @atom:o @atom:n2 @atom:o + @angle:o-n2-oh @atom:o @atom:n2 @atom:oh + @angle:o-n2-os @atom:o @atom:n2 @atom:os + @angle:o-n2-p2 @atom:o @atom:n2 @atom:p2 + @angle:o-n2-p3 @atom:o @atom:n2 @atom:p3 + @angle:o-n2-p4 @atom:o @atom:n2 @atom:p4 + @angle:o-n2-p5 @atom:o @atom:n2 @atom:p5 + @angle:o-n2-pe @atom:o @atom:n2 @atom:pe + @angle:o-n2-pf @atom:o @atom:n2 @atom:pf + @angle:o-n2-s4 @atom:o @atom:n2 @atom:s4 + @angle:o-n2-s6 @atom:o @atom:n2 @atom:s6 + @angle:o-n2-s @atom:o @atom:n2 @atom:s + @angle:o-n2-sh @atom:o @atom:n2 @atom:sh + @angle:os-n2-os @atom:os @atom:n2 @atom:os + @angle:os-n2-p2 @atom:os @atom:n2 @atom:p2 + @angle:o-n2-ss @atom:o @atom:n2 @atom:ss + @angle:os-n2-s @atom:os @atom:n2 @atom:s + @angle:p2-n2-p2 @atom:p2 @atom:n2 @atom:p2 + @angle:p2-n2-p3 @atom:p2 @atom:n2 @atom:p3 + @angle:p2-n2-p4 @atom:p2 @atom:n2 @atom:p4 + @angle:p2-n2-p5 @atom:p2 @atom:n2 @atom:p5 + @angle:p2-n2-s4 @atom:p2 @atom:n2 @atom:s4 + @angle:p2-n2-s6 @atom:p2 @atom:n2 @atom:s6 + @angle:p2-n2-s @atom:p2 @atom:n2 @atom:s + @angle:p2-n2-sh @atom:p2 @atom:n2 @atom:sh + @angle:p2-n2-ss @atom:p2 @atom:n2 @atom:ss + @angle:p3-n2-p3 @atom:p3 @atom:n2 @atom:p3 + @angle:p3-n2-s @atom:p3 @atom:n2 @atom:s + @angle:p4-n2-s @atom:p4 @atom:n2 @atom:s + @angle:p5-n2-p5 @atom:p5 @atom:n2 @atom:p5 + @angle:p5-n2-s @atom:p5 @atom:n2 @atom:s + @angle:pe-n2-s @atom:pe @atom:n2 @atom:s + @angle:pf-n2-s @atom:pf @atom:n2 @atom:s + @angle:s4-n2-s4 @atom:s4 @atom:n2 @atom:s4 + @angle:s4-n2-s6 @atom:s4 @atom:n2 @atom:s6 + @angle:s6-n2-s6 @atom:s6 @atom:n2 @atom:s6 + @angle:sh-n2-sh @atom:sh @atom:n2 @atom:sh + @angle:sh-n2-ss @atom:sh @atom:n2 @atom:ss + @angle:s-n2-s @atom:s @atom:n2 @atom:s + @angle:s-n2-s4 @atom:s @atom:n2 @atom:s4 + @angle:s-n2-s6 @atom:s @atom:n2 @atom:s6 + @angle:s-n2-sh @atom:s @atom:n2 @atom:sh + @angle:s-n2-ss @atom:s @atom:n2 @atom:ss + @angle:ss-n2-ss @atom:ss @atom:n2 @atom:ss + @angle:br-n3-br @atom:br @atom:n3 @atom:br + @angle:br-n3-c3 @atom:br @atom:n3 @atom:c3 + @angle:c1-n3-c1 @atom:c1 @atom:n3 @atom:c1 + @angle:c1-n3-f @atom:c1 @atom:n3 @atom:f + @angle:c1-n3-hn @atom:c1 @atom:n3 @atom:hn + @angle:c1-n3-o @atom:c1 @atom:n3 @atom:o + @angle:c2-n3-c2 @atom:c2 @atom:n3 @atom:c2 + @angle:c2-n3-hn @atom:c2 @atom:n3 @atom:hn + @angle:c3-n3-c3 @atom:c3 @atom:n3 @atom:c3 + @angle:c3-n3-cl @atom:c3 @atom:n3 @atom:cl + @angle:c3-n3-cx @atom:c3 @atom:n3 @atom:cx + @angle:c3-n3-cy @atom:c3 @atom:n3 @atom:cy + @angle:c3-n3-f @atom:c3 @atom:n3 @atom:f + @angle:c3-n3-hn @atom:c3 @atom:n3 @atom:hn + @angle:c3-n3-i @atom:c3 @atom:n3 @atom:i + @angle:c3-n3-n2 @atom:c3 @atom:n3 @atom:n2 + @angle:c3-n3-n3 @atom:c3 @atom:n3 @atom:n3 + @angle:c3-n3-n4 @atom:c3 @atom:n3 @atom:n4 + @angle:c3-n3-n @atom:c3 @atom:n3 @atom:n + @angle:c3-n3-nh @atom:c3 @atom:n3 @atom:nh + @angle:c3-n3-no @atom:c3 @atom:n3 @atom:no + @angle:c3-n3-o @atom:c3 @atom:n3 @atom:o + @angle:c3-n3-oh @atom:c3 @atom:n3 @atom:oh + @angle:c3-n3-os @atom:c3 @atom:n3 @atom:os + @angle:c3-n3-p3 @atom:c3 @atom:n3 @atom:p3 + @angle:c3-n3-p5 @atom:c3 @atom:n3 @atom:p5 + @angle:c3-n3-s4 @atom:c3 @atom:n3 @atom:s4 + @angle:c3-n3-s6 @atom:c3 @atom:n3 @atom:s6 + @angle:c3-n3-s @atom:c3 @atom:n3 @atom:s + @angle:c3-n3-sh @atom:c3 @atom:n3 @atom:sh + @angle:c3-n3-ss @atom:c3 @atom:n3 @atom:ss + @angle:c3-n3-sy @atom:c3 @atom:n3 @atom:sy + @angle:cl-n3-cl @atom:cl @atom:n3 @atom:cl + @angle:cl-n3-hn @atom:cl @atom:n3 @atom:hn + @angle:cl-n3-n3 @atom:cl @atom:n3 @atom:n3 + @angle:cx-n3-cx @atom:cx @atom:n3 @atom:cx + @angle:cx-n3-hn @atom:cx @atom:n3 @atom:hn + @angle:cx-n3-p5 @atom:cx @atom:n3 @atom:p5 + @angle:cx-n3-py @atom:cx @atom:n3 @atom:py + @angle:cy-n3-cy @atom:cy @atom:n3 @atom:cy + @angle:cy-n3-hn @atom:cy @atom:n3 @atom:hn + @angle:f-n3-f @atom:f @atom:n3 @atom:f + @angle:f-n3-hn @atom:f @atom:n3 @atom:hn + @angle:hn-n3-hn @atom:hn @atom:n3 @atom:hn + @angle:hn-n3-i @atom:hn @atom:n3 @atom:i + @angle:hn-n3-n1 @atom:hn @atom:n3 @atom:n1 + @angle:hn-n3-n2 @atom:hn @atom:n3 @atom:n2 + @angle:hn-n3-n3 @atom:hn @atom:n3 @atom:n3 + @angle:hn-n3-n4 @atom:hn @atom:n3 @atom:n4 + @angle:hn-n3-n @atom:hn @atom:n3 @atom:n + @angle:hn-n3-na @atom:hn @atom:n3 @atom:na + @angle:hn-n3-nh @atom:hn @atom:n3 @atom:nh + @angle:hn-n3-no @atom:hn @atom:n3 @atom:no + @angle:hn-n3-o @atom:hn @atom:n3 @atom:o + @angle:hn-n3-oh @atom:hn @atom:n3 @atom:oh + @angle:hn-n3-os @atom:hn @atom:n3 @atom:os + @angle:hn-n3-p2 @atom:hn @atom:n3 @atom:p2 + @angle:hn-n3-p3 @atom:hn @atom:n3 @atom:p3 + @angle:hn-n3-p4 @atom:hn @atom:n3 @atom:p4 + @angle:hn-n3-p5 @atom:hn @atom:n3 @atom:p5 + @angle:hn-n3-s4 @atom:hn @atom:n3 @atom:s4 + @angle:hn-n3-s @atom:hn @atom:n3 @atom:s + @angle:hn-n3-s6 @atom:hn @atom:n3 @atom:s6 + @angle:hn-n3-sh @atom:hn @atom:n3 @atom:sh + @angle:hn-n3-ss @atom:hn @atom:n3 @atom:ss + @angle:hn-n3-sy @atom:hn @atom:n3 @atom:sy + @angle:i-n3-i @atom:i @atom:n3 @atom:i + @angle:n1-n3-n1 @atom:n1 @atom:n3 @atom:n1 + @angle:n2-n3-n2 @atom:n2 @atom:n3 @atom:n2 + @angle:n2-n3-o @atom:n2 @atom:n3 @atom:o + @angle:n3-n3-n3 @atom:n3 @atom:n3 @atom:n3 + @angle:n4-n3-n4 @atom:n4 @atom:n3 @atom:n4 + @angle:n4-n3-nh @atom:n4 @atom:n3 @atom:nh + @angle:na-n3-na @atom:na @atom:n3 @atom:na + @angle:nh-n3-nh @atom:nh @atom:n3 @atom:nh + @angle:n-n3-n @atom:n @atom:n3 @atom:n + @angle:no-n3-no @atom:no @atom:n3 @atom:no + @angle:oh-n3-oh @atom:oh @atom:n3 @atom:oh + @angle:o-n3-o @atom:o @atom:n3 @atom:o + @angle:o-n3-p2 @atom:o @atom:n3 @atom:p2 + @angle:o-n3-p4 @atom:o @atom:n3 @atom:p4 + @angle:o-n3-s4 @atom:o @atom:n3 @atom:s4 + @angle:o-n3-s6 @atom:o @atom:n3 @atom:s6 + @angle:o-n3-s @atom:o @atom:n3 @atom:s + @angle:os-n3-os @atom:os @atom:n3 @atom:os + @angle:p2-n3-p2 @atom:p2 @atom:n3 @atom:p2 + @angle:p3-n3-p3 @atom:p3 @atom:n3 @atom:p3 + @angle:p4-n3-p4 @atom:p4 @atom:n3 @atom:p4 + @angle:p5-n3-p5 @atom:p5 @atom:n3 @atom:p5 + @angle:s4-n3-s4 @atom:s4 @atom:n3 @atom:s4 + @angle:s4-n3-s6 @atom:s4 @atom:n3 @atom:s6 + @angle:s6-n3-s6 @atom:s6 @atom:n3 @atom:s6 + @angle:sh-n3-sh @atom:sh @atom:n3 @atom:sh + @angle:sh-n3-ss @atom:sh @atom:n3 @atom:ss + @angle:s-n3-s @atom:s @atom:n3 @atom:s + @angle:ss-n3-ss @atom:ss @atom:n3 @atom:ss + @angle:br-n4-br @atom:br @atom:n4 @atom:br + @angle:br-n4-hn @atom:br @atom:n4 @atom:hn + @angle:c1-n4-c1 @atom:c1 @atom:n4 @atom:c1 + @angle:c1-n4-hn @atom:c1 @atom:n4 @atom:hn + @angle:c2-n4-c2 @atom:c2 @atom:n4 @atom:c2 + @angle:c2-n4-c3 @atom:c2 @atom:n4 @atom:c3 + @angle:c2-n4-hn @atom:c2 @atom:n4 @atom:hn + @angle:c3-n4-c3 @atom:c3 @atom:n4 @atom:c3 + @angle:c3-n4-ca @atom:c3 @atom:n4 @atom:ca + @angle:c3-n4-cc @atom:c3 @atom:n4 @atom:cc + @angle:c3-n4-cl @atom:c3 @atom:n4 @atom:cl + @angle:c3-n4-hn @atom:c3 @atom:n4 @atom:hn + @angle:c3-n4-n3 @atom:c3 @atom:n4 @atom:n3 + @angle:c3-n4-n4 @atom:c3 @atom:n4 @atom:n4 + @angle:c3-n4-n @atom:c3 @atom:n4 @atom:n + @angle:c3-n4-nh @atom:c3 @atom:n4 @atom:nh + @angle:c3-n4-no @atom:c3 @atom:n4 @atom:no + @angle:c3-n4-o @atom:c3 @atom:n4 @atom:o + @angle:c3-n4-oh @atom:c3 @atom:n4 @atom:oh + @angle:c3-n4-os @atom:c3 @atom:n4 @atom:os + @angle:c3-n4-p2 @atom:c3 @atom:n4 @atom:p2 + @angle:c3-n4-p3 @atom:c3 @atom:n4 @atom:p3 + @angle:c3-n4-p5 @atom:c3 @atom:n4 @atom:p5 + @angle:c3-n4-s4 @atom:c3 @atom:n4 @atom:s4 + @angle:c3-n4-s6 @atom:c3 @atom:n4 @atom:s6 + @angle:c3-n4-s @atom:c3 @atom:n4 @atom:s + @angle:c3-n4-sh @atom:c3 @atom:n4 @atom:sh + @angle:c3-n4-ss @atom:c3 @atom:n4 @atom:ss + @angle:ca-n4-ca @atom:ca @atom:n4 @atom:ca + @angle:ca-n4-hn @atom:ca @atom:n4 @atom:hn + @angle:c-n4-c @atom:c @atom:n4 @atom:c + @angle:c-n4-hn @atom:c @atom:n4 @atom:hn + @angle:cl-n4-cl @atom:cl @atom:n4 @atom:cl + @angle:cl-n4-hn @atom:cl @atom:n4 @atom:hn + @angle:f-n4-f @atom:f @atom:n4 @atom:f + @angle:f-n4-hn @atom:f @atom:n4 @atom:hn + @angle:hn-n4-hn @atom:hn @atom:n4 @atom:hn + @angle:hn-n4-i @atom:hn @atom:n4 @atom:i + @angle:hn-n4-n1 @atom:hn @atom:n4 @atom:n1 + @angle:hn-n4-n2 @atom:hn @atom:n4 @atom:n2 + @angle:hn-n4-n3 @atom:hn @atom:n4 @atom:n3 + @angle:hn-n4-n4 @atom:hn @atom:n4 @atom:n4 + @angle:hn-n4-n @atom:hn @atom:n4 @atom:n + @angle:hn-n4-na @atom:hn @atom:n4 @atom:na + @angle:hn-n4-nh @atom:hn @atom:n4 @atom:nh + @angle:hn-n4-no @atom:hn @atom:n4 @atom:no + @angle:hn-n4-o @atom:hn @atom:n4 @atom:o + @angle:hn-n4-oh @atom:hn @atom:n4 @atom:oh + @angle:hn-n4-os @atom:hn @atom:n4 @atom:os + @angle:hn-n4-p2 @atom:hn @atom:n4 @atom:p2 + @angle:hn-n4-p3 @atom:hn @atom:n4 @atom:p3 + @angle:hn-n4-p4 @atom:hn @atom:n4 @atom:p4 + @angle:hn-n4-p5 @atom:hn @atom:n4 @atom:p5 + @angle:hn-n4-py @atom:hn @atom:n4 @atom:py + @angle:hn-n4-s4 @atom:hn @atom:n4 @atom:s4 + @angle:hn-n4-s @atom:hn @atom:n4 @atom:s + @angle:hn-n4-s6 @atom:hn @atom:n4 @atom:s6 + @angle:hn-n4-sh @atom:hn @atom:n4 @atom:sh + @angle:hn-n4-ss @atom:hn @atom:n4 @atom:ss + @angle:i-n4-i @atom:i @atom:n4 @atom:i + @angle:n1-n4-n1 @atom:n1 @atom:n4 @atom:n1 + @angle:n2-n4-n2 @atom:n2 @atom:n4 @atom:n2 + @angle:n3-n4-n3 @atom:n3 @atom:n4 @atom:n3 + @angle:n4-n4-n4 @atom:n4 @atom:n4 @atom:n4 + @angle:na-n4-na @atom:na @atom:n4 @atom:na + @angle:nh-n4-nh @atom:nh @atom:n4 @atom:nh + @angle:n-n4-n @atom:n @atom:n4 @atom:n + @angle:oh-n4-oh @atom:oh @atom:n4 @atom:oh + @angle:o-n4-o @atom:o @atom:n4 @atom:o + @angle:os-n4-os @atom:os @atom:n4 @atom:os + @angle:p2-n4-p2 @atom:p2 @atom:n4 @atom:p2 + @angle:p3-n4-p3 @atom:p3 @atom:n4 @atom:p3 + @angle:p5-n4-p5 @atom:p5 @atom:n4 @atom:p5 + @angle:py-n4-py @atom:py @atom:n4 @atom:py + @angle:s4-n4-s4 @atom:s4 @atom:n4 @atom:s4 + @angle:s6-n4-s6 @atom:s6 @atom:n4 @atom:s6 + @angle:sh-n4-sh @atom:sh @atom:n4 @atom:sh + @angle:s-n4-s @atom:s @atom:n4 @atom:s + @angle:ss-n4-ss @atom:ss @atom:n4 @atom:ss + @angle:br-na-br @atom:br @atom:na @atom:br + @angle:br-na-c2 @atom:br @atom:na @atom:c2 + @angle:br-na-ca @atom:br @atom:na @atom:ca + @angle:br-na-cc @atom:br @atom:na @atom:cc + @angle:br-na-cd @atom:br @atom:na @atom:cd + @angle:br-na-nc @atom:br @atom:na @atom:nc + @angle:br-na-nd @atom:br @atom:na @atom:nd + @angle:br-na-os @atom:br @atom:na @atom:os + @angle:br-na-p2 @atom:br @atom:na @atom:p2 + @angle:br-na-pc @atom:br @atom:na @atom:pc + @angle:br-na-pd @atom:br @atom:na @atom:pd + @angle:br-na-ss @atom:br @atom:na @atom:ss + @angle:c1-na-c1 @atom:c1 @atom:na @atom:c1 + @angle:c1-na-c2 @atom:c1 @atom:na @atom:c2 + @angle:c1-na-ca @atom:c1 @atom:na @atom:ca + @angle:c1-na-cc @atom:c1 @atom:na @atom:cc + @angle:c1-na-cd @atom:c1 @atom:na @atom:cd + @angle:c1-na-nc @atom:c1 @atom:na @atom:nc + @angle:c1-na-nd @atom:c1 @atom:na @atom:nd + @angle:c1-na-os @atom:c1 @atom:na @atom:os + @angle:c1-na-p2 @atom:c1 @atom:na @atom:p2 + @angle:c1-na-pc @atom:c1 @atom:na @atom:pc + @angle:c1-na-pd @atom:c1 @atom:na @atom:pd + @angle:c1-na-ss @atom:c1 @atom:na @atom:ss + @angle:c2-na-c2 @atom:c2 @atom:na @atom:c2 + @angle:c2-na-c3 @atom:c2 @atom:na @atom:c3 + @angle:c2-na-ca @atom:c2 @atom:na @atom:ca + @angle:c2-na-cc @atom:c2 @atom:na @atom:cc + @angle:c2-na-cd @atom:c2 @atom:na @atom:cd + @angle:c2-na-cl @atom:c2 @atom:na @atom:cl + @angle:c2-na-f @atom:c2 @atom:na @atom:f + @angle:c2-na-hn @atom:c2 @atom:na @atom:hn + @angle:c2-na-i @atom:c2 @atom:na @atom:i + @angle:c2-na-n1 @atom:c2 @atom:na @atom:n1 + @angle:c2-na-n2 @atom:c2 @atom:na @atom:n2 + @angle:c2-na-n3 @atom:c2 @atom:na @atom:n3 + @angle:c2-na-n4 @atom:c2 @atom:na @atom:n4 + @angle:c2-na-n @atom:c2 @atom:na @atom:n + @angle:c2-na-na @atom:c2 @atom:na @atom:na + @angle:c2-na-nc @atom:c2 @atom:na @atom:nc + @angle:c2-na-nd @atom:c2 @atom:na @atom:nd + @angle:c2-na-nh @atom:c2 @atom:na @atom:nh + @angle:c2-na-no @atom:c2 @atom:na @atom:no + @angle:c2-na-o @atom:c2 @atom:na @atom:o + @angle:c2-na-oh @atom:c2 @atom:na @atom:oh + @angle:c2-na-os @atom:c2 @atom:na @atom:os + @angle:c2-na-p2 @atom:c2 @atom:na @atom:p2 + @angle:c2-na-p3 @atom:c2 @atom:na @atom:p3 + @angle:c2-na-p4 @atom:c2 @atom:na @atom:p4 + @angle:c2-na-p5 @atom:c2 @atom:na @atom:p5 + @angle:c2-na-pc @atom:c2 @atom:na @atom:pc + @angle:c2-na-pd @atom:c2 @atom:na @atom:pd + @angle:c2-na-s4 @atom:c2 @atom:na @atom:s4 + @angle:c2-na-s6 @atom:c2 @atom:na @atom:s6 + @angle:c2-na-s @atom:c2 @atom:na @atom:s + @angle:c2-na-sh @atom:c2 @atom:na @atom:sh + @angle:c2-na-ss @atom:c2 @atom:na @atom:ss + @angle:c3-na-c3 @atom:c3 @atom:na @atom:c3 + @angle:c3-na-ca @atom:c3 @atom:na @atom:ca + @angle:c3-na-cc @atom:c3 @atom:na @atom:cc + @angle:c3-na-cd @atom:c3 @atom:na @atom:cd + @angle:c3-na-cp @atom:c3 @atom:na @atom:cp + @angle:c3-na-n2 @atom:c3 @atom:na @atom:n2 + @angle:c3-na-n @atom:c3 @atom:na @atom:n + @angle:c3-na-nc @atom:c3 @atom:na @atom:nc + @angle:c3-na-nd @atom:c3 @atom:na @atom:nd + @angle:c3-na-os @atom:c3 @atom:na @atom:os + @angle:c3-na-p2 @atom:c3 @atom:na @atom:p2 + @angle:c3-na-pc @atom:c3 @atom:na @atom:pc + @angle:c3-na-pd @atom:c3 @atom:na @atom:pd + @angle:c3-na-sh @atom:c3 @atom:na @atom:sh + @angle:c3-na-ss @atom:c3 @atom:na @atom:ss + @angle:ca-na-ca @atom:ca @atom:na @atom:ca + @angle:ca-na-cc @atom:ca @atom:na @atom:cc + @angle:ca-na-cd @atom:ca @atom:na @atom:cd + @angle:ca-na-cl @atom:ca @atom:na @atom:cl + @angle:ca-na-cp @atom:ca @atom:na @atom:cp + @angle:ca-na-cx @atom:ca @atom:na @atom:cx + @angle:ca-na-f @atom:ca @atom:na @atom:f + @angle:ca-na-hn @atom:ca @atom:na @atom:hn + @angle:ca-na-i @atom:ca @atom:na @atom:i + @angle:ca-na-n2 @atom:ca @atom:na @atom:n2 + @angle:ca-na-n4 @atom:ca @atom:na @atom:n4 + @angle:ca-na-n @atom:ca @atom:na @atom:n + @angle:ca-na-na @atom:ca @atom:na @atom:na + @angle:ca-na-nb @atom:ca @atom:na @atom:nb + @angle:ca-na-nc @atom:ca @atom:na @atom:nc + @angle:ca-na-nd @atom:ca @atom:na @atom:nd + @angle:ca-na-nh @atom:ca @atom:na @atom:nh + @angle:ca-na-o @atom:ca @atom:na @atom:o + @angle:ca-na-oh @atom:ca @atom:na @atom:oh + @angle:ca-na-os @atom:ca @atom:na @atom:os + @angle:ca-na-p2 @atom:ca @atom:na @atom:p2 + @angle:ca-na-p3 @atom:ca @atom:na @atom:p3 + @angle:ca-na-p4 @atom:ca @atom:na @atom:p4 + @angle:ca-na-p5 @atom:ca @atom:na @atom:p5 + @angle:ca-na-pc @atom:ca @atom:na @atom:pc + @angle:ca-na-pd @atom:ca @atom:na @atom:pd + @angle:ca-na-py @atom:ca @atom:na @atom:py + @angle:ca-na-s4 @atom:ca @atom:na @atom:s4 + @angle:ca-na-s6 @atom:ca @atom:na @atom:s6 + @angle:ca-na-s @atom:ca @atom:na @atom:s + @angle:ca-na-sh @atom:ca @atom:na @atom:sh + @angle:ca-na-ss @atom:ca @atom:na @atom:ss + @angle:cc-na-cc @atom:cc @atom:na @atom:cc + @angle:cc-na-cd @atom:cc @atom:na @atom:cd + @angle:cc-na-ce @atom:cc @atom:na @atom:ce + @angle:cc-na-cl @atom:cc @atom:na @atom:cl + @angle:cc-na-f @atom:cc @atom:na @atom:f + @angle:cc-na-hn @atom:cc @atom:na @atom:hn + @angle:cc-na-i @atom:cc @atom:na @atom:i + @angle:cc-na-n2 @atom:cc @atom:na @atom:n2 + @angle:cc-na-n4 @atom:cc @atom:na @atom:n4 + @angle:cc-na-n @atom:cc @atom:na @atom:n + @angle:cc-na-na @atom:cc @atom:na @atom:na + @angle:cc-na-nc @atom:cc @atom:na @atom:nc + @angle:cc-na-nd @atom:cc @atom:na @atom:nd + @angle:cc-na-nh @atom:cc @atom:na @atom:nh + @angle:cc-na-no @atom:cc @atom:na @atom:no + @angle:cc-na-o @atom:cc @atom:na @atom:o + @angle:cc-na-oh @atom:cc @atom:na @atom:oh + @angle:cc-na-os @atom:cc @atom:na @atom:os + @angle:cc-na-p2 @atom:cc @atom:na @atom:p2 + @angle:cc-na-p3 @atom:cc @atom:na @atom:p3 + @angle:cc-na-p4 @atom:cc @atom:na @atom:p4 + @angle:cc-na-p5 @atom:cc @atom:na @atom:p5 + @angle:cc-na-s4 @atom:cc @atom:na @atom:s4 + @angle:cc-na-s6 @atom:cc @atom:na @atom:s6 + @angle:cc-na-s @atom:cc @atom:na @atom:s + @angle:cc-na-sh @atom:cc @atom:na @atom:sh + @angle:cc-na-ss @atom:cc @atom:na @atom:ss + @angle:cd-na-cd @atom:cd @atom:na @atom:cd + @angle:cd-na-cl @atom:cd @atom:na @atom:cl + @angle:cd-na-f @atom:cd @atom:na @atom:f + @angle:cd-na-hn @atom:cd @atom:na @atom:hn + @angle:cd-na-i @atom:cd @atom:na @atom:i + @angle:cd-na-n2 @atom:cd @atom:na @atom:n2 + @angle:cd-na-n4 @atom:cd @atom:na @atom:n4 + @angle:cd-na-n @atom:cd @atom:na @atom:n + @angle:cd-na-na @atom:cd @atom:na @atom:na + @angle:cd-na-nc @atom:cd @atom:na @atom:nc + @angle:cd-na-nd @atom:cd @atom:na @atom:nd + @angle:cd-na-nh @atom:cd @atom:na @atom:nh + @angle:cd-na-no @atom:cd @atom:na @atom:no + @angle:cd-na-o @atom:cd @atom:na @atom:o + @angle:cd-na-oh @atom:cd @atom:na @atom:oh + @angle:cd-na-os @atom:cd @atom:na @atom:os + @angle:cd-na-p2 @atom:cd @atom:na @atom:p2 + @angle:cd-na-p3 @atom:cd @atom:na @atom:p3 + @angle:cd-na-p4 @atom:cd @atom:na @atom:p4 + @angle:cd-na-p5 @atom:cd @atom:na @atom:p5 + @angle:cd-na-s4 @atom:cd @atom:na @atom:s4 + @angle:cd-na-s6 @atom:cd @atom:na @atom:s6 + @angle:cd-na-s @atom:cd @atom:na @atom:s + @angle:cd-na-sh @atom:cd @atom:na @atom:sh + @angle:cd-na-ss @atom:cd @atom:na @atom:ss + @angle:cl-na-cl @atom:cl @atom:na @atom:cl + @angle:cl-na-nc @atom:cl @atom:na @atom:nc + @angle:cl-na-nd @atom:cl @atom:na @atom:nd + @angle:cl-na-os @atom:cl @atom:na @atom:os + @angle:cl-na-p2 @atom:cl @atom:na @atom:p2 + @angle:cl-na-pc @atom:cl @atom:na @atom:pc + @angle:cl-na-pd @atom:cl @atom:na @atom:pd + @angle:cl-na-ss @atom:cl @atom:na @atom:ss + @angle:f-na-f @atom:f @atom:na @atom:f + @angle:f-na-nc @atom:f @atom:na @atom:nc + @angle:f-na-nd @atom:f @atom:na @atom:nd + @angle:f-na-os @atom:f @atom:na @atom:os + @angle:f-na-p2 @atom:f @atom:na @atom:p2 + @angle:f-na-pc @atom:f @atom:na @atom:pc + @angle:f-na-pd @atom:f @atom:na @atom:pd + @angle:f-na-ss @atom:f @atom:na @atom:ss + @angle:hn-na-hn @atom:hn @atom:na @atom:hn + @angle:hn-na-n @atom:hn @atom:na @atom:n + @angle:hn-na-nc @atom:hn @atom:na @atom:nc + @angle:hn-na-nd @atom:hn @atom:na @atom:nd + @angle:hn-na-os @atom:hn @atom:na @atom:os + @angle:hn-na-p2 @atom:hn @atom:na @atom:p2 + @angle:hn-na-pc @atom:hn @atom:na @atom:pc + @angle:hn-na-pd @atom:hn @atom:na @atom:pd + @angle:hn-na-ss @atom:hn @atom:na @atom:ss + @angle:i-na-i @atom:i @atom:na @atom:i + @angle:i-na-nc @atom:i @atom:na @atom:nc + @angle:i-na-nd @atom:i @atom:na @atom:nd + @angle:i-na-os @atom:i @atom:na @atom:os + @angle:i-na-p2 @atom:i @atom:na @atom:p2 + @angle:i-na-pc @atom:i @atom:na @atom:pc + @angle:i-na-pd @atom:i @atom:na @atom:pd + @angle:i-na-ss @atom:i @atom:na @atom:ss + @angle:n2-na-n2 @atom:n2 @atom:na @atom:n2 + @angle:n2-na-nc @atom:n2 @atom:na @atom:nc + @angle:n2-na-nd @atom:n2 @atom:na @atom:nd + @angle:n2-na-os @atom:n2 @atom:na @atom:os + @angle:n2-na-p2 @atom:n2 @atom:na @atom:p2 + @angle:n2-na-pc @atom:n2 @atom:na @atom:pc + @angle:n2-na-pd @atom:n2 @atom:na @atom:pd + @angle:n2-na-ss @atom:n2 @atom:na @atom:ss + @angle:n3-na-n3 @atom:n3 @atom:na @atom:n3 + @angle:n4-na-n4 @atom:n4 @atom:na @atom:n4 + @angle:n4-na-nc @atom:n4 @atom:na @atom:nc + @angle:n4-na-nd @atom:n4 @atom:na @atom:nd + @angle:n4-na-os @atom:n4 @atom:na @atom:os + @angle:n4-na-p2 @atom:n4 @atom:na @atom:p2 + @angle:n4-na-pc @atom:n4 @atom:na @atom:pc + @angle:n4-na-pd @atom:n4 @atom:na @atom:pd + @angle:na-na-na @atom:na @atom:na @atom:na + @angle:na-na-nc @atom:na @atom:na @atom:nc + @angle:na-na-nd @atom:na @atom:na @atom:nd + @angle:na-na-os @atom:na @atom:na @atom:os + @angle:na-na-p2 @atom:na @atom:na @atom:p2 + @angle:na-na-pc @atom:na @atom:na @atom:pc + @angle:na-na-pd @atom:na @atom:na @atom:pd + @angle:na-na-ss @atom:na @atom:na @atom:ss + @angle:nc-na-nc @atom:nc @atom:na @atom:nc + @angle:nc-na-nd @atom:nc @atom:na @atom:nd + @angle:nc-na-nh @atom:nc @atom:na @atom:nh + @angle:nc-na-no @atom:nc @atom:na @atom:no + @angle:nc-na-o @atom:nc @atom:na @atom:o + @angle:nc-na-oh @atom:nc @atom:na @atom:oh + @angle:nc-na-os @atom:nc @atom:na @atom:os + @angle:nc-na-p2 @atom:nc @atom:na @atom:p2 + @angle:nc-na-p3 @atom:nc @atom:na @atom:p3 + @angle:nc-na-p4 @atom:nc @atom:na @atom:p4 + @angle:nc-na-p5 @atom:nc @atom:na @atom:p5 + @angle:nc-na-pc @atom:nc @atom:na @atom:pc + @angle:nc-na-s4 @atom:nc @atom:na @atom:s4 + @angle:nc-na-s6 @atom:nc @atom:na @atom:s6 + @angle:nc-na-s @atom:nc @atom:na @atom:s + @angle:nc-na-sh @atom:nc @atom:na @atom:sh + @angle:nc-na-ss @atom:nc @atom:na @atom:ss + @angle:nd-na-nd @atom:nd @atom:na @atom:nd + @angle:nd-na-nh @atom:nd @atom:na @atom:nh + @angle:nd-na-no @atom:nd @atom:na @atom:no + @angle:nd-na-o @atom:nd @atom:na @atom:o + @angle:nd-na-oh @atom:nd @atom:na @atom:oh + @angle:nd-na-os @atom:nd @atom:na @atom:os + @angle:nd-na-p2 @atom:nd @atom:na @atom:p2 + @angle:nd-na-p3 @atom:nd @atom:na @atom:p3 + @angle:nd-na-p4 @atom:nd @atom:na @atom:p4 + @angle:nd-na-p5 @atom:nd @atom:na @atom:p5 + @angle:nd-na-pd @atom:nd @atom:na @atom:pd + @angle:nd-na-s4 @atom:nd @atom:na @atom:s4 + @angle:nd-na-s6 @atom:nd @atom:na @atom:s6 + @angle:nd-na-s @atom:nd @atom:na @atom:s + @angle:nd-na-sh @atom:nd @atom:na @atom:sh + @angle:nd-na-ss @atom:nd @atom:na @atom:ss + @angle:nh-na-nh @atom:nh @atom:na @atom:nh + @angle:nh-na-os @atom:nh @atom:na @atom:os + @angle:nh-na-p2 @atom:nh @atom:na @atom:p2 + @angle:nh-na-pc @atom:nh @atom:na @atom:pc + @angle:nh-na-pd @atom:nh @atom:na @atom:pd + @angle:nh-na-ss @atom:nh @atom:na @atom:ss + @angle:n-na-n @atom:n @atom:na @atom:n + @angle:n-na-nc @atom:n @atom:na @atom:nc + @angle:n-na-nd @atom:n @atom:na @atom:nd + @angle:no-na-no @atom:no @atom:na @atom:no + @angle:no-na-os @atom:no @atom:na @atom:os + @angle:no-na-pc @atom:no @atom:na @atom:pc + @angle:no-na-pd @atom:no @atom:na @atom:pd + @angle:n-na-os @atom:n @atom:na @atom:os + @angle:no-na-ss @atom:no @atom:na @atom:ss + @angle:n-na-p2 @atom:n @atom:na @atom:p2 + @angle:n-na-pc @atom:n @atom:na @atom:pc + @angle:n-na-pd @atom:n @atom:na @atom:pd + @angle:n-na-ss @atom:n @atom:na @atom:ss + @angle:oh-na-oh @atom:oh @atom:na @atom:oh + @angle:oh-na-p2 @atom:oh @atom:na @atom:p2 + @angle:oh-na-pc @atom:oh @atom:na @atom:pc + @angle:oh-na-pd @atom:oh @atom:na @atom:pd + @angle:oh-na-ss @atom:oh @atom:na @atom:ss + @angle:o-na-o @atom:o @atom:na @atom:o + @angle:o-na-os @atom:o @atom:na @atom:os + @angle:o-na-p2 @atom:o @atom:na @atom:p2 + @angle:o-na-pc @atom:o @atom:na @atom:pc + @angle:o-na-pd @atom:o @atom:na @atom:pd + @angle:os-na-os @atom:os @atom:na @atom:os + @angle:os-na-p2 @atom:os @atom:na @atom:p2 + @angle:os-na-p3 @atom:os @atom:na @atom:p3 + @angle:os-na-p5 @atom:os @atom:na @atom:p5 + @angle:os-na-pc @atom:os @atom:na @atom:pc + @angle:os-na-pd @atom:os @atom:na @atom:pd + @angle:os-na-s4 @atom:os @atom:na @atom:s4 + @angle:os-na-s6 @atom:os @atom:na @atom:s6 + @angle:os-na-ss @atom:os @atom:na @atom:ss + @angle:p2-na-p2 @atom:p2 @atom:na @atom:p2 + @angle:p2-na-p3 @atom:p2 @atom:na @atom:p3 + @angle:p2-na-p5 @atom:p2 @atom:na @atom:p5 + @angle:p2-na-pc @atom:p2 @atom:na @atom:pc + @angle:p2-na-pd @atom:p2 @atom:na @atom:pd + @angle:p2-na-s4 @atom:p2 @atom:na @atom:s4 + @angle:p2-na-s6 @atom:p2 @atom:na @atom:s6 + @angle:p2-na-s @atom:p2 @atom:na @atom:s + @angle:p2-na-sh @atom:p2 @atom:na @atom:sh + @angle:p2-na-ss @atom:p2 @atom:na @atom:ss + @angle:p3-na-p3 @atom:p3 @atom:na @atom:p3 + @angle:p3-na-pc @atom:p3 @atom:na @atom:pc + @angle:p3-na-pd @atom:p3 @atom:na @atom:pd + @angle:p5-na-p5 @atom:p5 @atom:na @atom:p5 + @angle:p5-na-pc @atom:p5 @atom:na @atom:pc + @angle:p5-na-pd @atom:p5 @atom:na @atom:pd + @angle:p5-na-ss @atom:p5 @atom:na @atom:ss + @angle:pc-na-pc @atom:pc @atom:na @atom:pc + @angle:pc-na-s4 @atom:pc @atom:na @atom:s4 + @angle:pc-na-s6 @atom:pc @atom:na @atom:s6 + @angle:pc-na-s @atom:pc @atom:na @atom:s + @angle:pc-na-sh @atom:pc @atom:na @atom:sh + @angle:pc-na-ss @atom:pc @atom:na @atom:ss + @angle:pd-na-pd @atom:pd @atom:na @atom:pd + @angle:pd-na-s4 @atom:pd @atom:na @atom:s4 + @angle:pd-na-s6 @atom:pd @atom:na @atom:s6 + @angle:pd-na-s @atom:pd @atom:na @atom:s + @angle:pd-na-sh @atom:pd @atom:na @atom:sh + @angle:pd-na-ss @atom:pd @atom:na @atom:ss + @angle:py-na-py @atom:py @atom:na @atom:py + @angle:s4-na-s4 @atom:s4 @atom:na @atom:s4 + @angle:s4-na-s6 @atom:s4 @atom:na @atom:s6 + @angle:s4-na-ss @atom:s4 @atom:na @atom:ss + @angle:s6-na-s6 @atom:s6 @atom:na @atom:s6 + @angle:s6-na-ss @atom:s6 @atom:na @atom:ss + @angle:sh-na-sh @atom:sh @atom:na @atom:sh + @angle:sh-na-ss @atom:sh @atom:na @atom:ss + @angle:s-na-s @atom:s @atom:na @atom:s + @angle:s-na-ss @atom:s @atom:na @atom:ss + @angle:ss-na-ss @atom:ss @atom:na @atom:ss + @angle:sy-na-sy @atom:sy @atom:na @atom:sy + @angle:ca-nb-ca @atom:ca @atom:nb @atom:ca + @angle:ca-nb-cp @atom:ca @atom:nb @atom:cp + @angle:ca-nb-cq @atom:ca @atom:nb @atom:cq + @angle:ca-nb-nb @atom:ca @atom:nb @atom:nb + @angle:cp-nb-nb @atom:cp @atom:nb @atom:nb + @angle:nb-nb-nb @atom:nb @atom:nb @atom:nb + @angle:br-n-br @atom:br @atom:n @atom:br + @angle:br-n-c @atom:br @atom:n @atom:c + @angle:br-n-ca @atom:br @atom:n @atom:ca + @angle:br-n-cc @atom:br @atom:n @atom:cc + @angle:br-n-cd @atom:br @atom:n @atom:cd + @angle:c1-n-c1 @atom:c1 @atom:n @atom:c1 + @angle:c1-n-ca @atom:c1 @atom:n @atom:ca + @angle:c1-n-cc @atom:c1 @atom:n @atom:cc + @angle:c1-n-cd @atom:c1 @atom:n @atom:cd + @angle:c2-n-c2 @atom:c2 @atom:n @atom:c2 + @angle:c2-n-c3 @atom:c2 @atom:n @atom:c3 + @angle:c2-n-ca @atom:c2 @atom:n @atom:ca + @angle:c2-n-cc @atom:c2 @atom:n @atom:cc + @angle:c2-n-cd @atom:c2 @atom:n @atom:cd + @angle:c2-n-hn @atom:c2 @atom:n @atom:hn + @angle:c3-n-c3 @atom:c3 @atom:n @atom:c3 + @angle:c3-n-ca @atom:c3 @atom:n @atom:ca + @angle:c3-n-cc @atom:c3 @atom:n @atom:cc + @angle:c3-n-cd @atom:c3 @atom:n @atom:cd + @angle:c3-n-cy @atom:c3 @atom:n @atom:cy + @angle:c3-n-hn @atom:c3 @atom:n @atom:hn + @angle:c3-n-n2 @atom:c3 @atom:n @atom:n2 + @angle:c3-n-n @atom:c3 @atom:n @atom:n + @angle:c3-n-nc @atom:c3 @atom:n @atom:nc + @angle:c3-n-nd @atom:c3 @atom:n @atom:nd + @angle:c3-n-oh @atom:c3 @atom:n @atom:oh + @angle:c3-n-os @atom:c3 @atom:n @atom:os + @angle:c3-n-sy @atom:c3 @atom:n @atom:sy + @angle:ca-n-ca @atom:ca @atom:n @atom:ca + @angle:ca-n-cc @atom:ca @atom:n @atom:cc + @angle:ca-n-cd @atom:ca @atom:n @atom:cd + @angle:ca-n-cl @atom:ca @atom:n @atom:cl + @angle:ca-n-f @atom:ca @atom:n @atom:f + @angle:ca-n-hn @atom:ca @atom:n @atom:hn + @angle:ca-n-i @atom:ca @atom:n @atom:i + @angle:ca-n-n2 @atom:ca @atom:n @atom:n2 + @angle:ca-n-n4 @atom:ca @atom:n @atom:n4 + @angle:ca-n-n @atom:ca @atom:n @atom:n + @angle:ca-n-na @atom:ca @atom:n @atom:na + @angle:ca-n-nc @atom:ca @atom:n @atom:nc + @angle:ca-n-nd @atom:ca @atom:n @atom:nd + @angle:ca-n-nh @atom:ca @atom:n @atom:nh + @angle:ca-n-p2 @atom:ca @atom:n @atom:p2 + @angle:ca-n-p3 @atom:ca @atom:n @atom:p3 + @angle:ca-n-s4 @atom:ca @atom:n @atom:s4 + @angle:ca-n-s6 @atom:ca @atom:n @atom:s6 + @angle:ca-n-ss @atom:ca @atom:n @atom:ss + @angle:c-n-c1 @atom:c @atom:n @atom:c1 + @angle:c-n-c2 @atom:c @atom:n @atom:c2 + @angle:c-n-c3 @atom:c @atom:n @atom:c3 + @angle:c3-nc-cd @atom:c3 @atom:nc @atom:cd + @angle:c-n-c @atom:c @atom:n @atom:c + @angle:c-n-ca @atom:c @atom:n @atom:ca + @angle:ca-nc-ca @atom:ca @atom:nc @atom:ca + @angle:ca-nc-cd @atom:ca @atom:nc @atom:cd + @angle:ca-nc-n @atom:ca @atom:nc @atom:n + @angle:ca-nc-na @atom:ca @atom:nc @atom:na + @angle:ca-nc-os @atom:ca @atom:nc @atom:os + @angle:ca-nc-ss @atom:ca @atom:nc @atom:ss + @angle:c-n-cc @atom:c @atom:n @atom:cc + @angle:c-nc-ca @atom:c @atom:nc @atom:ca + @angle:cc-n-cc @atom:cc @atom:n @atom:cc + @angle:cc-nc-cc @atom:cc @atom:nc @atom:cc + @angle:cc-nc-cd @atom:cc @atom:nc @atom:cd + @angle:c-nc-cd @atom:c @atom:nc @atom:cd + @angle:cc-n-cl @atom:cc @atom:n @atom:cl + @angle:cc-nc-na @atom:cc @atom:nc @atom:na + @angle:cc-nc-nd @atom:cc @atom:nc @atom:nd + @angle:c-n-cd @atom:c @atom:n @atom:cd + @angle:cd-nc-cd @atom:cd @atom:nc @atom:cd + @angle:cd-nc-n @atom:cd @atom:nc @atom:n + @angle:cd-nc-na @atom:cd @atom:nc @atom:na + @angle:cd-nc-nc @atom:cd @atom:nc @atom:nc + @angle:cd-nc-os @atom:cd @atom:nc @atom:os + @angle:cd-nc-ss @atom:cd @atom:nc @atom:ss + @angle:c-n-ce @atom:c @atom:n @atom:ce + @angle:cc-n-f @atom:cc @atom:n @atom:f + @angle:cc-n-hn @atom:cc @atom:n @atom:hn + @angle:cc-n-i @atom:cc @atom:n @atom:i + @angle:c-n-cl @atom:c @atom:n @atom:cl + @angle:cc-n-n2 @atom:cc @atom:n @atom:n2 + @angle:cc-n-n @atom:cc @atom:n @atom:n + @angle:cc-n-na @atom:cc @atom:n @atom:na + @angle:cc-n-nc @atom:cc @atom:n @atom:nc + @angle:cc-n-nh @atom:cc @atom:n @atom:nh + @angle:cc-n-no @atom:cc @atom:n @atom:no + @angle:cc-n-o @atom:cc @atom:n @atom:o + @angle:cc-n-oh @atom:cc @atom:n @atom:oh + @angle:cc-n-os @atom:cc @atom:n @atom:os + @angle:cc-n-p2 @atom:cc @atom:n @atom:p2 + @angle:cc-n-p3 @atom:cc @atom:n @atom:p3 + @angle:cc-n-p5 @atom:cc @atom:n @atom:p5 + @angle:cc-n-s4 @atom:cc @atom:n @atom:s4 + @angle:cc-n-s6 @atom:cc @atom:n @atom:s6 + @angle:cc-n-s @atom:cc @atom:n @atom:s + @angle:cc-n-sh @atom:cc @atom:n @atom:sh + @angle:cc-n-ss @atom:cc @atom:n @atom:ss + @angle:c-n-cx @atom:c @atom:n @atom:cx + @angle:c-n-cy @atom:c @atom:n @atom:cy + @angle:cd-n-cd @atom:cd @atom:n @atom:cd + @angle:cd-n-cl @atom:cd @atom:n @atom:cl + @angle:cd-n-f @atom:cd @atom:n @atom:f + @angle:cd-n-hn @atom:cd @atom:n @atom:hn + @angle:cd-n-i @atom:cd @atom:n @atom:i + @angle:cd-n-n2 @atom:cd @atom:n @atom:n2 + @angle:cd-n-n @atom:cd @atom:n @atom:n + @angle:cd-n-na @atom:cd @atom:n @atom:na + @angle:cd-n-nd @atom:cd @atom:n @atom:nd + @angle:cd-n-nh @atom:cd @atom:n @atom:nh + @angle:cd-n-no @atom:cd @atom:n @atom:no + @angle:cd-n-o @atom:cd @atom:n @atom:o + @angle:cd-n-oh @atom:cd @atom:n @atom:oh + @angle:cd-n-os @atom:cd @atom:n @atom:os + @angle:cd-n-p2 @atom:cd @atom:n @atom:p2 + @angle:cd-n-p3 @atom:cd @atom:n @atom:p3 + @angle:cd-n-p5 @atom:cd @atom:n @atom:p5 + @angle:cd-n-s4 @atom:cd @atom:n @atom:s4 + @angle:cd-n-s6 @atom:cd @atom:n @atom:s6 + @angle:cd-n-s @atom:cd @atom:n @atom:s + @angle:cd-n-sh @atom:cd @atom:n @atom:sh + @angle:cd-n-ss @atom:cd @atom:n @atom:ss + @angle:ce-n-cy @atom:ce @atom:n @atom:cy + @angle:c-n-f @atom:c @atom:n @atom:f + @angle:cf-n-cy @atom:cf @atom:n @atom:cy + @angle:c-n-hn @atom:c @atom:n @atom:hn + @angle:c-n-i @atom:c @atom:n @atom:i + @angle:cl-n-cl @atom:cl @atom:n @atom:cl + @angle:c-n-n2 @atom:c @atom:n @atom:n2 + @angle:c-n-n3 @atom:c @atom:n @atom:n3 + @angle:c-n-n4 @atom:c @atom:n @atom:n4 + @angle:c-n-n @atom:c @atom:n @atom:n + @angle:c-n-na @atom:c @atom:n @atom:na + @angle:na-nc-nd @atom:na @atom:nc @atom:nd + @angle:c-n-nc @atom:c @atom:n @atom:nc + @angle:nc-nc-nd @atom:nc @atom:nc @atom:nd + @angle:c-n-nd @atom:c @atom:n @atom:nd + @angle:nd-nc-os @atom:nd @atom:nc @atom:os + @angle:c-n-nh @atom:c @atom:n @atom:nh + @angle:c-n-no @atom:c @atom:n @atom:no + @angle:c-n-o @atom:c @atom:n @atom:o + @angle:c-n-oh @atom:c @atom:n @atom:oh + @angle:c-n-os @atom:c @atom:n @atom:os + @angle:c-n-p2 @atom:c @atom:n @atom:p2 + @angle:c-n-p3 @atom:c @atom:n @atom:p3 + @angle:c-n-p4 @atom:c @atom:n @atom:p4 + @angle:c-n-p5 @atom:c @atom:n @atom:p5 + @angle:c-n-pc @atom:c @atom:n @atom:pc + @angle:c-n-pd @atom:c @atom:n @atom:pd + @angle:c-n-s4 @atom:c @atom:n @atom:s4 + @angle:c-n-s6 @atom:c @atom:n @atom:s6 + @angle:c-n-s @atom:c @atom:n @atom:s + @angle:c-n-sh @atom:c @atom:n @atom:sh + @angle:c-n-ss @atom:c @atom:n @atom:ss + @angle:c-n-sy @atom:c @atom:n @atom:sy + @angle:cx-n-hn @atom:cx @atom:n @atom:hn + @angle:cx-n-os @atom:cx @atom:n @atom:os + @angle:cy-n-hn @atom:cy @atom:n @atom:hn + @angle:c3-nd-cc @atom:c3 @atom:nd @atom:cc + @angle:ca-nd-ca @atom:ca @atom:nd @atom:ca + @angle:ca-nd-cc @atom:ca @atom:nd @atom:cc + @angle:ca-nd-n @atom:ca @atom:nd @atom:n + @angle:ca-nd-na @atom:ca @atom:nd @atom:na + @angle:ca-nd-nc @atom:ca @atom:nd @atom:nc + @angle:ca-nd-os @atom:ca @atom:nd @atom:os + @angle:ca-nd-ss @atom:ca @atom:nd @atom:ss + @angle:c-nd-ca @atom:c @atom:nd @atom:ca + @angle:c-nd-cc @atom:c @atom:nd @atom:cc + @angle:cc-nd-cc @atom:cc @atom:nd @atom:cc + @angle:cc-nd-cd @atom:cc @atom:nd @atom:cd + @angle:cc-nd-n @atom:cc @atom:nd @atom:n + @angle:cc-nd-na @atom:cc @atom:nd @atom:na + @angle:cc-nd-nd @atom:cc @atom:nd @atom:nd + @angle:cc-nd-os @atom:cc @atom:nd @atom:os + @angle:cc-nd-ss @atom:cc @atom:nd @atom:ss + @angle:cd-nd-cd @atom:cd @atom:nd @atom:cd + @angle:cd-nd-na @atom:cd @atom:nd @atom:na + @angle:cd-nd-nc @atom:cd @atom:nd @atom:nc + @angle:na-nd-nc @atom:na @atom:nd @atom:nc + @angle:nc-nd-nd @atom:nc @atom:nd @atom:nd + @angle:nc-nd-os @atom:nc @atom:nd @atom:os + @angle:c1-ne-ca @atom:c1 @atom:ne @atom:ca + @angle:c1-ne-cg @atom:c1 @atom:ne @atom:cg + @angle:c2-ne-ca @atom:c2 @atom:ne @atom:ca + @angle:c2-ne-ce @atom:c2 @atom:ne @atom:ce + @angle:c2-ne-cg @atom:c2 @atom:ne @atom:cg + @angle:c2-ne-n2 @atom:c2 @atom:ne @atom:n2 + @angle:c2-ne-ne @atom:c2 @atom:ne @atom:ne + @angle:c2-ne-p2 @atom:c2 @atom:ne @atom:p2 + @angle:c2-ne-pe @atom:c2 @atom:ne @atom:pe + @angle:c2-ne-px @atom:c2 @atom:ne @atom:px + @angle:c2-ne-py @atom:c2 @atom:ne @atom:py + @angle:c2-ne-sx @atom:c2 @atom:ne @atom:sx + @angle:c2-ne-sy @atom:c2 @atom:ne @atom:sy + @angle:ca-ne-cf @atom:ca @atom:ne @atom:cf + @angle:ca-ne-n2 @atom:ca @atom:ne @atom:n2 + @angle:ca-ne-nf @atom:ca @atom:ne @atom:nf + @angle:ca-ne-o @atom:ca @atom:ne @atom:o + @angle:ca-ne-p2 @atom:ca @atom:ne @atom:p2 + @angle:ca-ne-s @atom:ca @atom:ne @atom:s + @angle:c-ne-c2 @atom:c @atom:ne @atom:c2 + @angle:ce-ne-n2 @atom:ce @atom:ne @atom:n2 + @angle:ce-ne-o @atom:ce @atom:ne @atom:o + @angle:ce-ne-p2 @atom:ce @atom:ne @atom:p2 + @angle:ce-ne-s @atom:ce @atom:ne @atom:s + @angle:cg-ne-n1 @atom:cg @atom:ne @atom:n1 + @angle:cg-ne-n2 @atom:cg @atom:ne @atom:n2 + @angle:cg-ne-o @atom:cg @atom:ne @atom:o + @angle:cg-ne-p2 @atom:cg @atom:ne @atom:p2 + @angle:cg-ne-s @atom:cg @atom:ne @atom:s + @angle:c-ne-sy @atom:c @atom:ne @atom:sy + @angle:n2-ne-n2 @atom:n2 @atom:ne @atom:n2 + @angle:n2-ne-ne @atom:n2 @atom:ne @atom:ne + @angle:n2-ne-o @atom:n2 @atom:ne @atom:o + @angle:n2-ne-p2 @atom:n2 @atom:ne @atom:p2 + @angle:n2-ne-pe @atom:n2 @atom:ne @atom:pe + @angle:n2-ne-px @atom:n2 @atom:ne @atom:px + @angle:n2-ne-py @atom:n2 @atom:ne @atom:py + @angle:n2-ne-s @atom:n2 @atom:ne @atom:s + @angle:n2-ne-sx @atom:n2 @atom:ne @atom:sx + @angle:n2-ne-sy @atom:n2 @atom:ne @atom:sy + @angle:ne-ne-o @atom:ne @atom:ne @atom:o + @angle:ne-ne-p2 @atom:ne @atom:ne @atom:p2 + @angle:ne-ne-s @atom:ne @atom:ne @atom:s + @angle:o-ne-o @atom:o @atom:ne @atom:o + @angle:o-ne-pe @atom:o @atom:ne @atom:pe + @angle:o-ne-px @atom:o @atom:ne @atom:px + @angle:o-ne-py @atom:o @atom:ne @atom:py + @angle:o-ne-s @atom:o @atom:ne @atom:s + @angle:o-ne-sx @atom:o @atom:ne @atom:sx + @angle:o-ne-sy @atom:o @atom:ne @atom:sy + @angle:p2-ne-pe @atom:p2 @atom:ne @atom:pe + @angle:p2-ne-px @atom:p2 @atom:ne @atom:px + @angle:p2-ne-py @atom:p2 @atom:ne @atom:py + @angle:p2-ne-sx @atom:p2 @atom:ne @atom:sx + @angle:p2-ne-sy @atom:p2 @atom:ne @atom:sy + @angle:pe-ne-s @atom:pe @atom:ne @atom:s + @angle:px-ne-s @atom:px @atom:ne @atom:s + @angle:py-ne-s @atom:py @atom:ne @atom:s + @angle:s-ne-s @atom:s @atom:ne @atom:s + @angle:s-ne-sx @atom:s @atom:ne @atom:sx + @angle:s-ne-sy @atom:s @atom:ne @atom:sy + @angle:c1-nf-ca @atom:c1 @atom:nf @atom:ca + @angle:c1-nf-ch @atom:c1 @atom:nf @atom:ch + @angle:c2-nf-ca @atom:c2 @atom:nf @atom:ca + @angle:c2-nf-cf @atom:c2 @atom:nf @atom:cf + @angle:c2-nf-n2 @atom:c2 @atom:nf @atom:n2 + @angle:c2-nf-nf @atom:c2 @atom:nf @atom:nf + @angle:c2-nf-p2 @atom:c2 @atom:nf @atom:p2 + @angle:c2-nf-pf @atom:c2 @atom:nf @atom:pf + @angle:c2-nf-px @atom:c2 @atom:nf @atom:px + @angle:c2-nf-py @atom:c2 @atom:nf @atom:py + @angle:c2-nf-sx @atom:c2 @atom:nf @atom:sx + @angle:c2-nf-sy @atom:c2 @atom:nf @atom:sy + @angle:ca-nf-ce @atom:ca @atom:nf @atom:ce + @angle:ca-nf-n2 @atom:ca @atom:nf @atom:n2 + @angle:ca-nf-ne @atom:ca @atom:nf @atom:ne + @angle:ca-nf-o @atom:ca @atom:nf @atom:o + @angle:ca-nf-p2 @atom:ca @atom:nf @atom:p2 + @angle:ca-nf-s @atom:ca @atom:nf @atom:s + @angle:c-nf-c2 @atom:c @atom:nf @atom:c2 + @angle:cf-nf-n2 @atom:cf @atom:nf @atom:n2 + @angle:cf-nf-o @atom:cf @atom:nf @atom:o + @angle:cf-nf-p2 @atom:cf @atom:nf @atom:p2 + @angle:cf-nf-s @atom:cf @atom:nf @atom:s + @angle:ch-nf-n1 @atom:ch @atom:nf @atom:n1 + @angle:ch-nf-n2 @atom:ch @atom:nf @atom:n2 + @angle:ch-nf-o @atom:ch @atom:nf @atom:o + @angle:ch-nf-p2 @atom:ch @atom:nf @atom:p2 + @angle:ch-nf-s @atom:ch @atom:nf @atom:s + @angle:f-n-f @atom:f @atom:n @atom:f + @angle:n2-nf-n2 @atom:n2 @atom:nf @atom:n2 + @angle:n2-nf-nf @atom:n2 @atom:nf @atom:nf + @angle:n2-nf-o @atom:n2 @atom:nf @atom:o + @angle:n2-nf-p2 @atom:n2 @atom:nf @atom:p2 + @angle:n2-nf-pf @atom:n2 @atom:nf @atom:pf + @angle:n2-nf-px @atom:n2 @atom:nf @atom:px + @angle:n2-nf-py @atom:n2 @atom:nf @atom:py + @angle:n2-nf-s @atom:n2 @atom:nf @atom:s + @angle:n2-nf-sx @atom:n2 @atom:nf @atom:sx + @angle:n2-nf-sy @atom:n2 @atom:nf @atom:sy + @angle:nf-nf-o @atom:nf @atom:nf @atom:o + @angle:nf-nf-p2 @atom:nf @atom:nf @atom:p2 + @angle:nf-nf-s @atom:nf @atom:nf @atom:s + @angle:o-nf-o @atom:o @atom:nf @atom:o + @angle:o-nf-pf @atom:o @atom:nf @atom:pf + @angle:o-nf-px @atom:o @atom:nf @atom:px + @angle:o-nf-py @atom:o @atom:nf @atom:py + @angle:o-nf-s @atom:o @atom:nf @atom:s + @angle:o-nf-sx @atom:o @atom:nf @atom:sx + @angle:o-nf-sy @atom:o @atom:nf @atom:sy + @angle:p2-nf-pf @atom:p2 @atom:nf @atom:pf + @angle:p2-nf-px @atom:p2 @atom:nf @atom:px + @angle:p2-nf-py @atom:p2 @atom:nf @atom:py + @angle:p2-nf-sx @atom:p2 @atom:nf @atom:sx + @angle:p2-nf-sy @atom:p2 @atom:nf @atom:sy + @angle:pf-nf-s @atom:pf @atom:nf @atom:s + @angle:px-nf-s @atom:px @atom:nf @atom:s + @angle:py-nf-s @atom:py @atom:nf @atom:s + @angle:s-nf-s @atom:s @atom:nf @atom:s + @angle:s-nf-sx @atom:s @atom:nf @atom:sx + @angle:s-nf-sy @atom:s @atom:nf @atom:sy + @angle:br-nh-br @atom:br @atom:nh @atom:br + @angle:br-nh-ca @atom:br @atom:nh @atom:ca + @angle:br-nh-hn @atom:br @atom:nh @atom:hn + @angle:c1-nh-c1 @atom:c1 @atom:nh @atom:c1 + @angle:c1-nh-c2 @atom:c1 @atom:nh @atom:c2 + @angle:c1-nh-ca @atom:c1 @atom:nh @atom:ca + @angle:c1-nh-hn @atom:c1 @atom:nh @atom:hn + @angle:c2-nh-c2 @atom:c2 @atom:nh @atom:c2 + @angle:c2-nh-c3 @atom:c2 @atom:nh @atom:c3 + @angle:c2-nh-ca @atom:c2 @atom:nh @atom:ca + @angle:c2-nh-cc @atom:c2 @atom:nh @atom:cc + @angle:c2-nh-cd @atom:c2 @atom:nh @atom:cd + @angle:c2-nh-cx @atom:c2 @atom:nh @atom:cx + @angle:c2-nh-hn @atom:c2 @atom:nh @atom:hn + @angle:c2-nh-n2 @atom:c2 @atom:nh @atom:n2 + @angle:c2-nh-n3 @atom:c2 @atom:nh @atom:n3 + @angle:c2-nh-no @atom:c2 @atom:nh @atom:no + @angle:c2-nh-oh @atom:c2 @atom:nh @atom:oh + @angle:c2-nh-os @atom:c2 @atom:nh @atom:os + @angle:c2-nh-sy @atom:c2 @atom:nh @atom:sy + @angle:c3-nh-c3 @atom:c3 @atom:nh @atom:c3 + @angle:c3-nh-ca @atom:c3 @atom:nh @atom:ca + @angle:c3-nh-cc @atom:c3 @atom:nh @atom:cc + @angle:c3-nh-cd @atom:c3 @atom:nh @atom:cd + @angle:c3-nh-cf @atom:c3 @atom:nh @atom:cf + @angle:c3-nh-cz @atom:c3 @atom:nh @atom:cz + @angle:c3-nh-hn @atom:c3 @atom:nh @atom:hn + @angle:c3-nh-n2 @atom:c3 @atom:nh @atom:n2 + @angle:c3-nh-n @atom:c3 @atom:nh @atom:n + @angle:c3-nh-na @atom:c3 @atom:nh @atom:na + @angle:c3-nh-p2 @atom:c3 @atom:nh @atom:p2 + @angle:c3-nh-sy @atom:c3 @atom:nh @atom:sy + @angle:ca-nh-ca @atom:ca @atom:nh @atom:ca + @angle:ca-nh-cc @atom:ca @atom:nh @atom:cc + @angle:ca-nh-cd @atom:ca @atom:nh @atom:cd + @angle:ca-nh-cl @atom:ca @atom:nh @atom:cl + @angle:ca-nh-cx @atom:ca @atom:nh @atom:cx + @angle:ca-nh-f @atom:ca @atom:nh @atom:f + @angle:ca-nh-hn @atom:ca @atom:nh @atom:hn + @angle:ca-nh-i @atom:ca @atom:nh @atom:i + @angle:ca-nh-n1 @atom:ca @atom:nh @atom:n1 + @angle:ca-nh-n2 @atom:ca @atom:nh @atom:n2 + @angle:ca-nh-n3 @atom:ca @atom:nh @atom:n3 + @angle:ca-nh-n4 @atom:ca @atom:nh @atom:n4 + @angle:ca-nh-n @atom:ca @atom:nh @atom:n + @angle:ca-nh-na @atom:ca @atom:nh @atom:na + @angle:ca-nh-nh @atom:ca @atom:nh @atom:nh + @angle:ca-nh-no @atom:ca @atom:nh @atom:no + @angle:ca-nh-o @atom:ca @atom:nh @atom:o + @angle:ca-nh-oh @atom:ca @atom:nh @atom:oh + @angle:ca-nh-os @atom:ca @atom:nh @atom:os + @angle:ca-nh-p2 @atom:ca @atom:nh @atom:p2 + @angle:ca-nh-p3 @atom:ca @atom:nh @atom:p3 + @angle:ca-nh-p4 @atom:ca @atom:nh @atom:p4 + @angle:ca-nh-p5 @atom:ca @atom:nh @atom:p5 + @angle:ca-nh-s4 @atom:ca @atom:nh @atom:s4 + @angle:ca-nh-s6 @atom:ca @atom:nh @atom:s6 + @angle:ca-nh-s @atom:ca @atom:nh @atom:s + @angle:ca-nh-sh @atom:ca @atom:nh @atom:sh + @angle:ca-nh-ss @atom:ca @atom:nh @atom:ss + @angle:ca-nh-sy @atom:ca @atom:nh @atom:sy + @angle:cc-nh-cx @atom:cc @atom:nh @atom:cx + @angle:cc-nh-hn @atom:cc @atom:nh @atom:hn + @angle:cc-nh-n2 @atom:cc @atom:nh @atom:n2 + @angle:cc-nh-sy @atom:cc @atom:nh @atom:sy + @angle:cd-nh-cx @atom:cd @atom:nh @atom:cx + @angle:cd-nh-hn @atom:cd @atom:nh @atom:hn + @angle:ce-nh-hn @atom:ce @atom:nh @atom:hn + @angle:ce-nh-o @atom:ce @atom:nh @atom:o + @angle:ce-nh-sy @atom:ce @atom:nh @atom:sy + @angle:cf-nh-hn @atom:cf @atom:nh @atom:hn + @angle:cf-nh-o @atom:cf @atom:nh @atom:o + @angle:cl-nh-cl @atom:cl @atom:nh @atom:cl + @angle:cl-nh-hn @atom:cl @atom:nh @atom:hn + @angle:cx-nh-cx @atom:cx @atom:nh @atom:cx + @angle:cx-nh-hn @atom:cx @atom:nh @atom:hn + @angle:cz-nh-hn @atom:cz @atom:nh @atom:hn + @angle:f-nh-f @atom:f @atom:nh @atom:f + @angle:f-nh-hn @atom:f @atom:nh @atom:hn + @angle:hn-nh-hn @atom:hn @atom:nh @atom:hn + @angle:hn-nh-i @atom:hn @atom:nh @atom:i + @angle:hn-nh-n1 @atom:hn @atom:nh @atom:n1 + @angle:hn-nh-n2 @atom:hn @atom:nh @atom:n2 + @angle:hn-nh-n3 @atom:hn @atom:nh @atom:n3 + @angle:hn-nh-n4 @atom:hn @atom:nh @atom:n4 + @angle:hn-nh-n @atom:hn @atom:nh @atom:n + @angle:hn-nh-na @atom:hn @atom:nh @atom:na + @angle:hn-nh-nh @atom:hn @atom:nh @atom:nh + @angle:hn-nh-no @atom:hn @atom:nh @atom:no + @angle:hn-nh-o @atom:hn @atom:nh @atom:o + @angle:hn-nh-oh @atom:hn @atom:nh @atom:oh + @angle:hn-nh-os @atom:hn @atom:nh @atom:os + @angle:hn-nh-p2 @atom:hn @atom:nh @atom:p2 + @angle:hn-nh-p3 @atom:hn @atom:nh @atom:p3 + @angle:hn-nh-p4 @atom:hn @atom:nh @atom:p4 + @angle:hn-nh-p5 @atom:hn @atom:nh @atom:p5 + @angle:hn-nh-s4 @atom:hn @atom:nh @atom:s4 + @angle:hn-nh-s @atom:hn @atom:nh @atom:s + @angle:hn-nh-s6 @atom:hn @atom:nh @atom:s6 + @angle:hn-nh-sh @atom:hn @atom:nh @atom:sh + @angle:hn-nh-ss @atom:hn @atom:nh @atom:ss + @angle:hn-nh-sy @atom:hn @atom:nh @atom:sy + @angle:i-nh-i @atom:i @atom:nh @atom:i + @angle:n1-nh-n1 @atom:n1 @atom:nh @atom:n1 + @angle:n2-nh-n2 @atom:n2 @atom:nh @atom:n2 + @angle:n2-nh-n3 @atom:n2 @atom:nh @atom:n3 + @angle:n2-nh-o @atom:n2 @atom:nh @atom:o + @angle:n3-nh-n3 @atom:n3 @atom:nh @atom:n3 + @angle:n4-nh-n4 @atom:n4 @atom:nh @atom:n4 + @angle:na-nh-na @atom:na @atom:nh @atom:na + @angle:hn-n-hn @atom:hn @atom:n @atom:hn + @angle:nh-nh-nh @atom:nh @atom:nh @atom:nh + @angle:hn-n-i @atom:hn @atom:n @atom:i + @angle:hn-n-n2 @atom:hn @atom:n @atom:n2 + @angle:hn-n-n3 @atom:hn @atom:n @atom:n3 + @angle:hn-n-n4 @atom:hn @atom:n @atom:n4 + @angle:hn-n-n @atom:hn @atom:n @atom:n + @angle:hn-n-na @atom:hn @atom:n @atom:na + @angle:hn-n-nc @atom:hn @atom:n @atom:nc + @angle:hn-n-nh @atom:hn @atom:n @atom:nh + @angle:hn-n-no @atom:hn @atom:n @atom:no + @angle:hn-n-o @atom:hn @atom:n @atom:o + @angle:n-nh-o @atom:n @atom:nh @atom:o + @angle:hn-n-oh @atom:hn @atom:n @atom:oh + @angle:no-nh-no @atom:no @atom:nh @atom:no + @angle:hn-n-os @atom:hn @atom:n @atom:os + @angle:hn-n-p2 @atom:hn @atom:n @atom:p2 + @angle:hn-n-p3 @atom:hn @atom:n @atom:p3 + @angle:hn-n-p4 @atom:hn @atom:n @atom:p4 + @angle:hn-n-p5 @atom:hn @atom:n @atom:p5 + @angle:hn-n-s4 @atom:hn @atom:n @atom:s4 + @angle:hn-n-s @atom:hn @atom:n @atom:s + @angle:hn-n-s6 @atom:hn @atom:n @atom:s6 + @angle:hn-n-sh @atom:hn @atom:n @atom:sh + @angle:hn-n-ss @atom:hn @atom:n @atom:ss + @angle:hn-n-sy @atom:hn @atom:n @atom:sy + @angle:oh-nh-oh @atom:oh @atom:nh @atom:oh + @angle:o-nh-o @atom:o @atom:nh @atom:o + @angle:os-nh-os @atom:os @atom:nh @atom:os + @angle:p2-nh-p2 @atom:p2 @atom:nh @atom:p2 + @angle:p3-nh-p3 @atom:p3 @atom:nh @atom:p3 + @angle:p5-nh-p5 @atom:p5 @atom:nh @atom:p5 + @angle:s4-nh-s4 @atom:s4 @atom:nh @atom:s4 + @angle:s6-nh-s6 @atom:s6 @atom:nh @atom:s6 + @angle:sh-nh-sh @atom:sh @atom:nh @atom:sh + @angle:s-nh-s @atom:s @atom:nh @atom:s + @angle:ss-nh-ss @atom:ss @atom:nh @atom:ss + @angle:i-n-i @atom:i @atom:n @atom:i + @angle:n2-n-n2 @atom:n2 @atom:n @atom:n2 + @angle:n3-n-n3 @atom:n3 @atom:n @atom:n3 + @angle:n4-n-n4 @atom:n4 @atom:n @atom:n4 + @angle:na-n-na @atom:na @atom:n @atom:na + @angle:nc-n-nc @atom:nc @atom:n @atom:nc + @angle:nc-n-p2 @atom:nc @atom:n @atom:p2 + @angle:nc-n-pc @atom:nc @atom:n @atom:pc + @angle:nd-n-nd @atom:nd @atom:n @atom:nd + @angle:nd-n-p2 @atom:nd @atom:n @atom:p2 + @angle:nd-n-pd @atom:nd @atom:n @atom:pd + @angle:nh-n-nh @atom:nh @atom:n @atom:nh + @angle:n-n-n @atom:n @atom:n @atom:n + @angle:no-n-no @atom:no @atom:n @atom:no + @angle:br-no-o @atom:br @atom:no @atom:o + @angle:c1-no-o @atom:c1 @atom:no @atom:o + @angle:c2-no-o @atom:c2 @atom:no @atom:o + @angle:c3-no-o @atom:c3 @atom:no @atom:o + @angle:ca-no-o @atom:ca @atom:no @atom:o + @angle:cc-no-o @atom:cc @atom:no @atom:o + @angle:cl-no-o @atom:cl @atom:no @atom:o + @angle:c-no-o @atom:c @atom:no @atom:o + @angle:hn-no-o @atom:hn @atom:no @atom:o + @angle:oh-n-oh @atom:oh @atom:n @atom:oh + @angle:i-no-o @atom:i @atom:no @atom:o + @angle:n1-no-o @atom:n1 @atom:no @atom:o + @angle:n2-no-o @atom:n2 @atom:no @atom:o + @angle:n3-no-o @atom:n3 @atom:no @atom:o + @angle:n4-no-o @atom:n4 @atom:no @atom:o + @angle:na-no-o @atom:na @atom:no @atom:o + @angle:nh-no-o @atom:nh @atom:no @atom:o + @angle:n-no-o @atom:n @atom:no @atom:o + @angle:no-no-o @atom:no @atom:no @atom:o + @angle:o-n-o @atom:o @atom:n @atom:o + @angle:o-no-o @atom:o @atom:no @atom:o + @angle:o-no-oh @atom:o @atom:no @atom:oh + @angle:o-no-os @atom:o @atom:no @atom:os + @angle:o-no-p2 @atom:o @atom:no @atom:p2 + @angle:o-no-p3 @atom:o @atom:no @atom:p3 + @angle:o-no-p4 @atom:o @atom:no @atom:p4 + @angle:o-no-p5 @atom:o @atom:no @atom:p5 + @angle:o-no-s4 @atom:o @atom:no @atom:s4 + @angle:o-no-s6 @atom:o @atom:no @atom:s6 + @angle:o-no-s @atom:o @atom:no @atom:s + @angle:o-no-sh @atom:o @atom:no @atom:sh + @angle:o-no-ss @atom:o @atom:no @atom:ss + @angle:os-n-os @atom:os @atom:n @atom:os + @angle:p2-n-p2 @atom:p2 @atom:n @atom:p2 + @angle:p3-n-p3 @atom:p3 @atom:n @atom:p3 + @angle:p4-n-p4 @atom:p4 @atom:n @atom:p4 + @angle:p5-n-p5 @atom:p5 @atom:n @atom:p5 + @angle:pc-n-pc @atom:pc @atom:n @atom:pc + @angle:pd-n-pd @atom:pd @atom:n @atom:pd + @angle:s4-n-s4 @atom:s4 @atom:n @atom:s4 + @angle:s6-n-s6 @atom:s6 @atom:n @atom:s6 + @angle:sh-n-sh @atom:sh @atom:n @atom:sh + @angle:s-n-s @atom:s @atom:n @atom:s + @angle:ss-n-ss @atom:ss @atom:n @atom:ss + @angle:br-oh-ho @atom:br @atom:oh @atom:ho + @angle:c1-oh-ho @atom:c1 @atom:oh @atom:ho + @angle:c2-oh-ho @atom:c2 @atom:oh @atom:ho + @angle:c3-oh-ho @atom:c3 @atom:oh @atom:ho + @angle:ca-oh-ho @atom:ca @atom:oh @atom:ho + @angle:cc-oh-ho @atom:cc @atom:oh @atom:ho + @angle:cd-oh-ho @atom:cd @atom:oh @atom:ho + @angle:ce-oh-ho @atom:ce @atom:oh @atom:ho + @angle:cf-oh-ho @atom:cf @atom:oh @atom:ho + @angle:c-oh-ho @atom:c @atom:oh @atom:ho + @angle:cl-oh-ho @atom:cl @atom:oh @atom:ho + @angle:cx-oh-ho @atom:cx @atom:oh @atom:ho + @angle:cy-oh-ho @atom:cy @atom:oh @atom:ho + @angle:f-oh-ho @atom:f @atom:oh @atom:ho + @angle:ho-oh-ho @atom:ho @atom:oh @atom:ho + @angle:ho-oh-i @atom:ho @atom:oh @atom:i + @angle:ho-oh-n1 @atom:ho @atom:oh @atom:n1 + @angle:ho-oh-n2 @atom:ho @atom:oh @atom:n2 + @angle:ho-oh-n3 @atom:ho @atom:oh @atom:n3 + @angle:ho-oh-n4 @atom:ho @atom:oh @atom:n4 + @angle:ho-oh-n @atom:ho @atom:oh @atom:n + @angle:ho-oh-na @atom:ho @atom:oh @atom:na + @angle:ho-oh-nh @atom:ho @atom:oh @atom:nh + @angle:ho-oh-no @atom:ho @atom:oh @atom:no + @angle:ho-oh-o @atom:ho @atom:oh @atom:o + @angle:ho-oh-oh @atom:ho @atom:oh @atom:oh + @angle:ho-oh-os @atom:ho @atom:oh @atom:os + @angle:ho-oh-p2 @atom:ho @atom:oh @atom:p2 + @angle:ho-oh-p3 @atom:ho @atom:oh @atom:p3 + @angle:ho-oh-p4 @atom:ho @atom:oh @atom:p4 + @angle:ho-oh-p5 @atom:ho @atom:oh @atom:p5 + @angle:ho-oh-py @atom:ho @atom:oh @atom:py + @angle:ho-oh-s4 @atom:ho @atom:oh @atom:s4 + @angle:ho-oh-s @atom:ho @atom:oh @atom:s + @angle:ho-oh-s6 @atom:ho @atom:oh @atom:s6 + @angle:ho-oh-sh @atom:ho @atom:oh @atom:sh + @angle:ho-oh-ss @atom:ho @atom:oh @atom:ss + @angle:ho-oh-sy @atom:ho @atom:oh @atom:sy + @angle:br-os-br @atom:br @atom:os @atom:br + @angle:c1-os-c1 @atom:c1 @atom:os @atom:c1 + @angle:c1-os-c3 @atom:c1 @atom:os @atom:c3 + @angle:c2-os-c2 @atom:c2 @atom:os @atom:c2 + @angle:c2-os-c3 @atom:c2 @atom:os @atom:c3 + @angle:c2-os-ca @atom:c2 @atom:os @atom:ca + @angle:c2-os-n2 @atom:c2 @atom:os @atom:n2 + @angle:c2-os-na @atom:c2 @atom:os @atom:na + @angle:c2-os-os @atom:c2 @atom:os @atom:os + @angle:c2-os-p5 @atom:c2 @atom:os @atom:p5 + @angle:c2-os-ss @atom:c2 @atom:os @atom:ss + @angle:c3-os-c3 @atom:c3 @atom:os @atom:c3 + @angle:c3-os-ca @atom:c3 @atom:os @atom:ca + @angle:c3-os-cc @atom:c3 @atom:os @atom:cc + @angle:c3-os-cd @atom:c3 @atom:os @atom:cd + @angle:c3-os-ce @atom:c3 @atom:os @atom:ce + @angle:c3-os-cf @atom:c3 @atom:os @atom:cf + @angle:c3-os-cl @atom:c3 @atom:os @atom:cl + @angle:c3-os-cy @atom:c3 @atom:os @atom:cy + @angle:c3-os-i @atom:c3 @atom:os @atom:i + @angle:c3-os-n1 @atom:c3 @atom:os @atom:n1 + @angle:c3-os-n2 @atom:c3 @atom:os @atom:n2 + @angle:c3-os-n3 @atom:c3 @atom:os @atom:n3 + @angle:c3-os-n4 @atom:c3 @atom:os @atom:n4 + @angle:c3-os-n @atom:c3 @atom:os @atom:n + @angle:c3-os-na @atom:c3 @atom:os @atom:na + @angle:c3-os-nc @atom:c3 @atom:os @atom:nc + @angle:c3-os-nd @atom:c3 @atom:os @atom:nd + @angle:c3-os-nh @atom:c3 @atom:os @atom:nh + @angle:c3-os-no @atom:c3 @atom:os @atom:no + @angle:c3-os-o @atom:c3 @atom:os @atom:o + @angle:c3-os-oh @atom:c3 @atom:os @atom:oh + @angle:c3-os-os @atom:c3 @atom:os @atom:os + @angle:c3-os-p2 @atom:c3 @atom:os @atom:p2 + @angle:c3-os-p3 @atom:c3 @atom:os @atom:p3 + @angle:c3-os-p4 @atom:c3 @atom:os @atom:p4 + @angle:c3-os-p5 @atom:c3 @atom:os @atom:p5 + @angle:c3-os-py @atom:c3 @atom:os @atom:py + @angle:c3-os-s4 @atom:c3 @atom:os @atom:s4 + @angle:c3-os-s6 @atom:c3 @atom:os @atom:s6 + @angle:c3-os-s @atom:c3 @atom:os @atom:s + @angle:c3-os-sh @atom:c3 @atom:os @atom:sh + @angle:c3-os-ss @atom:c3 @atom:os @atom:ss + @angle:ca-os-ca @atom:ca @atom:os @atom:ca + @angle:ca-os-cc @atom:ca @atom:os @atom:cc + @angle:ca-os-cd @atom:ca @atom:os @atom:cd + @angle:ca-os-n3 @atom:ca @atom:os @atom:n3 + @angle:ca-os-na @atom:ca @atom:os @atom:na + @angle:ca-os-nc @atom:ca @atom:os @atom:nc + @angle:ca-os-nd @atom:ca @atom:os @atom:nd + @angle:ca-os-p5 @atom:ca @atom:os @atom:p5 + @angle:ca-os-s6 @atom:ca @atom:os @atom:s6 + @angle:c-os-c2 @atom:c @atom:os @atom:c2 + @angle:c-os-c3 @atom:c @atom:os @atom:c3 + @angle:c-os-c @atom:c @atom:os @atom:c + @angle:c-os-ca @atom:c @atom:os @atom:ca + @angle:c-os-cc @atom:c @atom:os @atom:cc + @angle:cc-os-cc @atom:cc @atom:os @atom:cc + @angle:cc-os-cd @atom:cc @atom:os @atom:cd + @angle:c-os-cd @atom:c @atom:os @atom:cd + @angle:cc-os-na @atom:cc @atom:os @atom:na + @angle:cc-os-nc @atom:cc @atom:os @atom:nc + @angle:cc-os-os @atom:cc @atom:os @atom:os + @angle:cc-os-ss @atom:cc @atom:os @atom:ss + @angle:c-os-cy @atom:c @atom:os @atom:cy + @angle:cd-os-cd @atom:cd @atom:os @atom:cd + @angle:cd-os-na @atom:cd @atom:os @atom:na + @angle:cd-os-nd @atom:cd @atom:os @atom:nd + @angle:cd-os-os @atom:cd @atom:os @atom:os + @angle:cd-os-ss @atom:cd @atom:os @atom:ss + @angle:cl-os-cl @atom:cl @atom:os @atom:cl + @angle:c-os-n2 @atom:c @atom:os @atom:n2 + @angle:c-os-n @atom:c @atom:os @atom:n + @angle:c-os-oh @atom:c @atom:os @atom:oh + @angle:c-os-os @atom:c @atom:os @atom:os + @angle:c-os-p5 @atom:c @atom:os @atom:p5 + @angle:c-os-sy @atom:c @atom:os @atom:sy + @angle:cx-os-cx @atom:cx @atom:os @atom:cx + @angle:cx-os-n @atom:cx @atom:os @atom:n + @angle:cx-os-os @atom:cx @atom:os @atom:os + @angle:cy-os-cy @atom:cy @atom:os @atom:cy + @angle:f-os-f @atom:f @atom:os @atom:f + @angle:f-os-os @atom:f @atom:os @atom:os + @angle:i-os-i @atom:i @atom:os @atom:i + @angle:n1-os-n1 @atom:n1 @atom:os @atom:n1 + @angle:n2-os-n2 @atom:n2 @atom:os @atom:n2 + @angle:n2-os-s6 @atom:n2 @atom:os @atom:s6 + @angle:n3-os-n3 @atom:n3 @atom:os @atom:n3 + @angle:n4-os-n4 @atom:n4 @atom:os @atom:n4 + @angle:na-os-na @atom:na @atom:os @atom:na + @angle:na-os-ss @atom:na @atom:os @atom:ss + @angle:nc-os-nc @atom:nc @atom:os @atom:nc + @angle:nc-os-ss @atom:nc @atom:os @atom:ss + @angle:nd-os-nd @atom:nd @atom:os @atom:nd + @angle:nd-os-ss @atom:nd @atom:os @atom:ss + @angle:nh-os-nh @atom:nh @atom:os @atom:nh + @angle:n-os-n @atom:n @atom:os @atom:n + @angle:no-os-no @atom:no @atom:os @atom:no + @angle:n-os-s6 @atom:n @atom:os @atom:s6 + @angle:o-os-o @atom:o @atom:os @atom:o + @angle:p2-os-p2 @atom:p2 @atom:os @atom:p2 + @angle:p2-os-p5 @atom:p2 @atom:os @atom:p5 + @angle:p3-os-p3 @atom:p3 @atom:os @atom:p3 + @angle:p3-os-py @atom:p3 @atom:os @atom:py + @angle:p5-os-p5 @atom:p5 @atom:os @atom:p5 + @angle:s4-os-s4 @atom:s4 @atom:os @atom:s4 + @angle:s6-os-s6 @atom:s6 @atom:os @atom:s6 + @angle:sh-os-sh @atom:sh @atom:os @atom:sh + @angle:s-os-s @atom:s @atom:os @atom:s + @angle:ss-os-ss @atom:ss @atom:os @atom:ss + @angle:br-p2-br @atom:br @atom:p2 @atom:br + @angle:br-p2-c2 @atom:br @atom:p2 @atom:c2 + @angle:br-p2-n2 @atom:br @atom:p2 @atom:n2 + @angle:br-p2-o @atom:br @atom:p2 @atom:o + @angle:br-p2-p2 @atom:br @atom:p2 @atom:p2 + @angle:br-p2-s @atom:br @atom:p2 @atom:s + @angle:c1-p2-c1 @atom:c1 @atom:p2 @atom:c1 + @angle:c1-p2-c2 @atom:c1 @atom:p2 @atom:c2 + @angle:c1-p2-n2 @atom:c1 @atom:p2 @atom:n2 + @angle:c1-p2-o @atom:c1 @atom:p2 @atom:o + @angle:c1-p2-p2 @atom:c1 @atom:p2 @atom:p2 + @angle:c1-p2-s @atom:c1 @atom:p2 @atom:s + @angle:c2-p2-c2 @atom:c2 @atom:p2 @atom:c2 + @angle:c2-p2-c3 @atom:c2 @atom:p2 @atom:c3 + @angle:c2-p2-ca @atom:c2 @atom:p2 @atom:ca + @angle:c2-p2-cl @atom:c2 @atom:p2 @atom:cl + @angle:c2-p2-f @atom:c2 @atom:p2 @atom:f + @angle:c2-p2-hp @atom:c2 @atom:p2 @atom:hp + @angle:c2-p2-i @atom:c2 @atom:p2 @atom:i + @angle:c2-p2-n2 @atom:c2 @atom:p2 @atom:n2 + @angle:c2-p2-n3 @atom:c2 @atom:p2 @atom:n3 + @angle:c2-p2-n4 @atom:c2 @atom:p2 @atom:n4 + @angle:c2-p2-n @atom:c2 @atom:p2 @atom:n + @angle:c2-p2-na @atom:c2 @atom:p2 @atom:na + @angle:c2-p2-nh @atom:c2 @atom:p2 @atom:nh + @angle:c2-p2-no @atom:c2 @atom:p2 @atom:no + @angle:c2-p2-o @atom:c2 @atom:p2 @atom:o + @angle:c2-p2-oh @atom:c2 @atom:p2 @atom:oh + @angle:c2-p2-os @atom:c2 @atom:p2 @atom:os + @angle:c2-p2-p2 @atom:c2 @atom:p2 @atom:p2 + @angle:c2-p2-p3 @atom:c2 @atom:p2 @atom:p3 + @angle:c2-p2-p4 @atom:c2 @atom:p2 @atom:p4 + @angle:c2-p2-p5 @atom:c2 @atom:p2 @atom:p5 + @angle:c2-p2-s4 @atom:c2 @atom:p2 @atom:s4 + @angle:c2-p2-s6 @atom:c2 @atom:p2 @atom:s6 + @angle:c2-p2-s @atom:c2 @atom:p2 @atom:s + @angle:c2-p2-sh @atom:c2 @atom:p2 @atom:sh + @angle:c2-p2-ss @atom:c2 @atom:p2 @atom:ss + @angle:c3-p2-c3 @atom:c3 @atom:p2 @atom:c3 + @angle:c3-p2-n2 @atom:c3 @atom:p2 @atom:n2 + @angle:c3-p2-o @atom:c3 @atom:p2 @atom:o + @angle:c3-p2-os @atom:c3 @atom:p2 @atom:os + @angle:c3-p2-p2 @atom:c3 @atom:p2 @atom:p2 + @angle:c3-p2-s @atom:c3 @atom:p2 @atom:s + @angle:ca-p2-ca @atom:ca @atom:p2 @atom:ca + @angle:ca-p2-n2 @atom:ca @atom:p2 @atom:n2 + @angle:ca-p2-n @atom:ca @atom:p2 @atom:n + @angle:ca-p2-na @atom:ca @atom:p2 @atom:na + @angle:ca-p2-o @atom:ca @atom:p2 @atom:o + @angle:ca-p2-s @atom:ca @atom:p2 @atom:s + @angle:c-p2-c2 @atom:c @atom:p2 @atom:c2 + @angle:c-p2-c @atom:c @atom:p2 @atom:c + @angle:ce-p2-o @atom:ce @atom:p2 @atom:o + @angle:ce-p2-s @atom:ce @atom:p2 @atom:s + @angle:cf-p2-o @atom:cf @atom:p2 @atom:o + @angle:cf-p2-s @atom:cf @atom:p2 @atom:s + @angle:cl-p2-cl @atom:cl @atom:p2 @atom:cl + @angle:cl-p2-n2 @atom:cl @atom:p2 @atom:n2 + @angle:cl-p2-o @atom:cl @atom:p2 @atom:o + @angle:cl-p2-p2 @atom:cl @atom:p2 @atom:p2 + @angle:cl-p2-s @atom:cl @atom:p2 @atom:s + @angle:f-p2-f @atom:f @atom:p2 @atom:f + @angle:f-p2-n2 @atom:f @atom:p2 @atom:n2 + @angle:f-p2-o @atom:f @atom:p2 @atom:o + @angle:f-p2-p2 @atom:f @atom:p2 @atom:p2 + @angle:f-p2-s @atom:f @atom:p2 @atom:s + @angle:hp-p2-hp @atom:hp @atom:p2 @atom:hp + @angle:hp-p2-n1 @atom:hp @atom:p2 @atom:n1 + @angle:hp-p2-n2 @atom:hp @atom:p2 @atom:n2 + @angle:hp-p2-ne @atom:hp @atom:p2 @atom:ne + @angle:hp-p2-nf @atom:hp @atom:p2 @atom:nf + @angle:hp-p2-o @atom:hp @atom:p2 @atom:o + @angle:hp-p2-p2 @atom:hp @atom:p2 @atom:p2 + @angle:hp-p2-p4 @atom:hp @atom:p2 @atom:p4 + @angle:hp-p2-p5 @atom:hp @atom:p2 @atom:p5 + @angle:hp-p2-pe @atom:hp @atom:p2 @atom:pe + @angle:hp-p2-pf @atom:hp @atom:p2 @atom:pf + @angle:hp-p2-s4 @atom:hp @atom:p2 @atom:s4 + @angle:hp-p2-s @atom:hp @atom:p2 @atom:s + @angle:hp-p2-s6 @atom:hp @atom:p2 @atom:s6 + @angle:i-p2-i @atom:i @atom:p2 @atom:i + @angle:i-p2-n2 @atom:i @atom:p2 @atom:n2 + @angle:i-p2-o @atom:i @atom:p2 @atom:o + @angle:i-p2-p2 @atom:i @atom:p2 @atom:p2 + @angle:i-p2-s @atom:i @atom:p2 @atom:s + @angle:n1-p2-n1 @atom:n1 @atom:p2 @atom:n1 + @angle:n2-p2-n2 @atom:n2 @atom:p2 @atom:n2 + @angle:n2-p2-n3 @atom:n2 @atom:p2 @atom:n3 + @angle:n2-p2-n4 @atom:n2 @atom:p2 @atom:n4 + @angle:n2-p2-na @atom:n2 @atom:p2 @atom:na + @angle:n2-p2-nh @atom:n2 @atom:p2 @atom:nh + @angle:n2-p2-no @atom:n2 @atom:p2 @atom:no + @angle:n2-p2-o @atom:n2 @atom:p2 @atom:o + @angle:n2-p2-oh @atom:n2 @atom:p2 @atom:oh + @angle:n2-p2-os @atom:n2 @atom:p2 @atom:os + @angle:n2-p2-p3 @atom:n2 @atom:p2 @atom:p3 + @angle:n2-p2-p4 @atom:n2 @atom:p2 @atom:p4 + @angle:n2-p2-p5 @atom:n2 @atom:p2 @atom:p5 + @angle:n2-p2-s4 @atom:n2 @atom:p2 @atom:s4 + @angle:n2-p2-s6 @atom:n2 @atom:p2 @atom:s6 + @angle:n2-p2-s @atom:n2 @atom:p2 @atom:s + @angle:n2-p2-sh @atom:n2 @atom:p2 @atom:sh + @angle:n2-p2-ss @atom:n2 @atom:p2 @atom:ss + @angle:n3-p2-n3 @atom:n3 @atom:p2 @atom:n3 + @angle:n3-p2-o @atom:n3 @atom:p2 @atom:o + @angle:n3-p2-p2 @atom:n3 @atom:p2 @atom:p2 + @angle:n3-p2-s @atom:n3 @atom:p2 @atom:s + @angle:n4-p2-n4 @atom:n4 @atom:p2 @atom:n4 + @angle:n4-p2-o @atom:n4 @atom:p2 @atom:o + @angle:n4-p2-p2 @atom:n4 @atom:p2 @atom:p2 + @angle:n4-p2-s @atom:n4 @atom:p2 @atom:s + @angle:na-p2-na @atom:na @atom:p2 @atom:na + @angle:na-p2-o @atom:na @atom:p2 @atom:o + @angle:na-p2-s @atom:na @atom:p2 @atom:s + @angle:ne-p2-o @atom:ne @atom:p2 @atom:o + @angle:ne-p2-s @atom:ne @atom:p2 @atom:s + @angle:nf-p2-o @atom:nf @atom:p2 @atom:o + @angle:nf-p2-s @atom:nf @atom:p2 @atom:s + @angle:nh-p2-nh @atom:nh @atom:p2 @atom:nh + @angle:nh-p2-o @atom:nh @atom:p2 @atom:o + @angle:nh-p2-p2 @atom:nh @atom:p2 @atom:p2 + @angle:nh-p2-s @atom:nh @atom:p2 @atom:s + @angle:n-p2-n2 @atom:n @atom:p2 @atom:n2 + @angle:n-p2-o @atom:n @atom:p2 @atom:o + @angle:no-p2-no @atom:no @atom:p2 @atom:no + @angle:no-p2-o @atom:no @atom:p2 @atom:o + @angle:no-p2-p2 @atom:no @atom:p2 @atom:p2 + @angle:no-p2-s @atom:no @atom:p2 @atom:s + @angle:n-p2-p2 @atom:n @atom:p2 @atom:p2 + @angle:n-p2-s @atom:n @atom:p2 @atom:s + @angle:oh-p2-oh @atom:oh @atom:p2 @atom:oh + @angle:oh-p2-p2 @atom:oh @atom:p2 @atom:p2 + @angle:oh-p2-s @atom:oh @atom:p2 @atom:s + @angle:o-p2-o @atom:o @atom:p2 @atom:o + @angle:o-p2-oh @atom:o @atom:p2 @atom:oh + @angle:o-p2-os @atom:o @atom:p2 @atom:os + @angle:o-p2-p2 @atom:o @atom:p2 @atom:p2 + @angle:o-p2-p3 @atom:o @atom:p2 @atom:p3 + @angle:o-p2-p4 @atom:o @atom:p2 @atom:p4 + @angle:o-p2-p5 @atom:o @atom:p2 @atom:p5 + @angle:o-p2-pe @atom:o @atom:p2 @atom:pe + @angle:o-p2-pf @atom:o @atom:p2 @atom:pf + @angle:o-p2-s4 @atom:o @atom:p2 @atom:s4 + @angle:o-p2-s6 @atom:o @atom:p2 @atom:s6 + @angle:o-p2-s @atom:o @atom:p2 @atom:s + @angle:o-p2-sh @atom:o @atom:p2 @atom:sh + @angle:os-p2-os @atom:os @atom:p2 @atom:os + @angle:os-p2-p2 @atom:os @atom:p2 @atom:p2 + @angle:o-p2-ss @atom:o @atom:p2 @atom:ss + @angle:os-p2-s @atom:os @atom:p2 @atom:s + @angle:p2-p2-n2 @atom:p2 @atom:p2 @atom:n2 + @angle:p2-p2-p3 @atom:p2 @atom:p2 @atom:p3 + @angle:p2-p2-p4 @atom:p2 @atom:p2 @atom:p4 + @angle:p2-p2-p5 @atom:p2 @atom:p2 @atom:p5 + @angle:p2-p2-s4 @atom:p2 @atom:p2 @atom:s4 + @angle:p2-p2-s6 @atom:p2 @atom:p2 @atom:s6 + @angle:p2-p2-s @atom:p2 @atom:p2 @atom:s + @angle:p2-p2-sh @atom:p2 @atom:p2 @atom:sh + @angle:p3-p2-p3 @atom:p3 @atom:p2 @atom:p3 + @angle:p3-p2-s @atom:p3 @atom:p2 @atom:s + @angle:p4-p2-s @atom:p4 @atom:p2 @atom:s + @angle:p5-p2-p5 @atom:p5 @atom:p2 @atom:p5 + @angle:p5-p2-s @atom:p5 @atom:p2 @atom:s + @angle:pe-p2-s @atom:pe @atom:p2 @atom:s + @angle:pf-p2-s @atom:pf @atom:p2 @atom:s + @angle:s4-p2-s4 @atom:s4 @atom:p2 @atom:s4 + @angle:s6-p2-s6 @atom:s6 @atom:p2 @atom:s6 + @angle:sh-p2-sh @atom:sh @atom:p2 @atom:sh + @angle:s-p2-s @atom:s @atom:p2 @atom:s + @angle:s-p2-s4 @atom:s @atom:p2 @atom:s4 + @angle:s-p2-s6 @atom:s @atom:p2 @atom:s6 + @angle:s-p2-sh @atom:s @atom:p2 @atom:sh + @angle:s-p2-ss @atom:s @atom:p2 @atom:ss + @angle:ss-p2-ss @atom:ss @atom:p2 @atom:ss + @angle:br-p3-br @atom:br @atom:p3 @atom:br + @angle:br-p3-hp @atom:br @atom:p3 @atom:hp + @angle:c1-p3-c1 @atom:c1 @atom:p3 @atom:c1 + @angle:c1-p3-f @atom:c1 @atom:p3 @atom:f + @angle:c1-p3-hp @atom:c1 @atom:p3 @atom:hp + @angle:c2-p3-c2 @atom:c2 @atom:p3 @atom:c2 + @angle:c2-p3-hp @atom:c2 @atom:p3 @atom:hp + @angle:c3-p3-c3 @atom:c3 @atom:p3 @atom:c3 + @angle:c3-p3-ca @atom:c3 @atom:p3 @atom:ca + @angle:c3-p3-cl @atom:c3 @atom:p3 @atom:cl + @angle:c3-p3-f @atom:c3 @atom:p3 @atom:f + @angle:c3-p3-hp @atom:c3 @atom:p3 @atom:hp + @angle:c3-p3-n2 @atom:c3 @atom:p3 @atom:n2 + @angle:c3-p3-n3 @atom:c3 @atom:p3 @atom:n3 + @angle:c3-p3-n4 @atom:c3 @atom:p3 @atom:n4 + @angle:c3-p3-n @atom:c3 @atom:p3 @atom:n + @angle:c3-p3-na @atom:c3 @atom:p3 @atom:na + @angle:c3-p3-nh @atom:c3 @atom:p3 @atom:nh + @angle:c3-p3-no @atom:c3 @atom:p3 @atom:no + @angle:c3-p3-o @atom:c3 @atom:p3 @atom:o + @angle:c3-p3-oh @atom:c3 @atom:p3 @atom:oh + @angle:c3-p3-os @atom:c3 @atom:p3 @atom:os + @angle:c3-p3-p3 @atom:c3 @atom:p3 @atom:p3 + @angle:c3-p3-p5 @atom:c3 @atom:p3 @atom:p5 + @angle:c3-p3-s4 @atom:c3 @atom:p3 @atom:s4 + @angle:c3-p3-s6 @atom:c3 @atom:p3 @atom:s6 + @angle:c3-p3-sh @atom:c3 @atom:p3 @atom:sh + @angle:c3-p3-ss @atom:c3 @atom:p3 @atom:ss + @angle:ca-p3-ca @atom:ca @atom:p3 @atom:ca + @angle:ca-p3-hp @atom:ca @atom:p3 @atom:hp + @angle:c-p3-c3 @atom:c @atom:p3 @atom:c3 + @angle:c-p3-c @atom:c @atom:p3 @atom:c + @angle:c-p3-hp @atom:c @atom:p3 @atom:hp + @angle:cl-p3-cl @atom:cl @atom:p3 @atom:cl + @angle:cl-p3-f @atom:cl @atom:p3 @atom:f + @angle:cl-p3-hp @atom:cl @atom:p3 @atom:hp + @angle:c-p3-os @atom:c @atom:p3 @atom:os + @angle:cx-p3-hp @atom:cx @atom:p3 @atom:hp + @angle:f-p3-f @atom:f @atom:p3 @atom:f + @angle:f-p3-hp @atom:f @atom:p3 @atom:hp + @angle:f-p3-n3 @atom:f @atom:p3 @atom:n3 + @angle:f-p3-os @atom:f @atom:p3 @atom:os + @angle:f-p3-p3 @atom:f @atom:p3 @atom:p3 + @angle:hp-p3-hp @atom:hp @atom:p3 @atom:hp + @angle:hp-p3-i @atom:hp @atom:p3 @atom:i + @angle:hp-p3-n1 @atom:hp @atom:p3 @atom:n1 + @angle:hp-p3-n2 @atom:hp @atom:p3 @atom:n2 + @angle:hp-p3-n3 @atom:hp @atom:p3 @atom:n3 + @angle:hp-p3-n4 @atom:hp @atom:p3 @atom:n4 + @angle:hp-p3-n @atom:hp @atom:p3 @atom:n + @angle:hp-p3-na @atom:hp @atom:p3 @atom:na + @angle:hp-p3-nh @atom:hp @atom:p3 @atom:nh + @angle:hp-p3-no @atom:hp @atom:p3 @atom:no + @angle:hp-p3-o @atom:hp @atom:p3 @atom:o + @angle:hp-p3-oh @atom:hp @atom:p3 @atom:oh + @angle:hp-p3-os @atom:hp @atom:p3 @atom:os + @angle:hp-p3-p2 @atom:hp @atom:p3 @atom:p2 + @angle:hp-p3-p3 @atom:hp @atom:p3 @atom:p3 + @angle:hp-p3-p4 @atom:hp @atom:p3 @atom:p4 + @angle:hp-p3-p5 @atom:hp @atom:p3 @atom:p5 + @angle:hp-p3-s4 @atom:hp @atom:p3 @atom:s4 + @angle:hp-p3-s6 @atom:hp @atom:p3 @atom:s6 + @angle:hp-p3-sh @atom:hp @atom:p3 @atom:sh + @angle:hp-p3-ss @atom:hp @atom:p3 @atom:ss + @angle:i-p3-i @atom:i @atom:p3 @atom:i + @angle:n1-p3-n1 @atom:n1 @atom:p3 @atom:n1 + @angle:n2-p3-n2 @atom:n2 @atom:p3 @atom:n2 + @angle:n3-p3-n3 @atom:n3 @atom:p3 @atom:n3 + @angle:n3-p3-o @atom:n3 @atom:p3 @atom:o + @angle:n3-p3-oh @atom:n3 @atom:p3 @atom:oh + @angle:n4-p3-n4 @atom:n4 @atom:p3 @atom:n4 + @angle:na-p3-na @atom:na @atom:p3 @atom:na + @angle:nh-p3-nh @atom:nh @atom:p3 @atom:nh + @angle:n-p3-n @atom:n @atom:p3 @atom:n + @angle:n-p3-o @atom:n @atom:p3 @atom:o + @angle:no-p3-no @atom:no @atom:p3 @atom:no + @angle:oh-p3-oh @atom:oh @atom:p3 @atom:oh + @angle:o-p3-o @atom:o @atom:p3 @atom:o + @angle:o-p3-p3 @atom:o @atom:p3 @atom:p3 + @angle:o-p3-p5 @atom:o @atom:p3 @atom:p5 + @angle:o-p3-s4 @atom:o @atom:p3 @atom:s4 + @angle:o-p3-s6 @atom:o @atom:p3 @atom:s6 + @angle:os-p3-os @atom:os @atom:p3 @atom:os + @angle:p2-p3-p2 @atom:p2 @atom:p3 @atom:p2 + @angle:p3-p3-p3 @atom:p3 @atom:p3 @atom:p3 + @angle:p4-p3-p4 @atom:p4 @atom:p3 @atom:p4 + @angle:p5-p3-p5 @atom:p5 @atom:p3 @atom:p5 + @angle:s4-p3-s4 @atom:s4 @atom:p3 @atom:s4 + @angle:s6-p3-s6 @atom:s6 @atom:p3 @atom:s6 + @angle:sh-p3-sh @atom:sh @atom:p3 @atom:sh + @angle:s-p3-s @atom:s @atom:p3 @atom:s + @angle:ss-p3-ss @atom:ss @atom:p3 @atom:ss + @angle:br-p4-br @atom:br @atom:p4 @atom:br + @angle:br-p4-o @atom:br @atom:p4 @atom:o + @angle:c2-p4-c2 @atom:c2 @atom:p4 @atom:c2 + @angle:c2-p4-hp @atom:c2 @atom:p4 @atom:hp + @angle:c2-p4-o @atom:c2 @atom:p4 @atom:o + @angle:c3-p4-c3 @atom:c3 @atom:p4 @atom:c3 + @angle:c3-p4-n2 @atom:c3 @atom:p4 @atom:n2 + @angle:c3-p4-n3 @atom:c3 @atom:p4 @atom:n3 + @angle:c3-p4-n4 @atom:c3 @atom:p4 @atom:n4 + @angle:c3-p4-n @atom:c3 @atom:p4 @atom:n + @angle:c3-p4-na @atom:c3 @atom:p4 @atom:na + @angle:c3-p4-nh @atom:c3 @atom:p4 @atom:nh + @angle:c3-p4-no @atom:c3 @atom:p4 @atom:no + @angle:c3-p4-o @atom:c3 @atom:p4 @atom:o + @angle:c3-p4-oh @atom:c3 @atom:p4 @atom:oh + @angle:c3-p4-os @atom:c3 @atom:p4 @atom:os + @angle:c3-p4-p2 @atom:c3 @atom:p4 @atom:p2 + @angle:c3-p4-p3 @atom:c3 @atom:p4 @atom:p3 + @angle:c3-p4-p4 @atom:c3 @atom:p4 @atom:p4 + @angle:c3-p4-p5 @atom:c3 @atom:p4 @atom:p5 + @angle:c3-p4-sh @atom:c3 @atom:p4 @atom:sh + @angle:c3-p4-ss @atom:c3 @atom:p4 @atom:ss + @angle:ca-p4-ca @atom:ca @atom:p4 @atom:ca + @angle:ca-p4-o @atom:ca @atom:p4 @atom:o + @angle:cl-p4-cl @atom:cl @atom:p4 @atom:cl + @angle:cl-p4-o @atom:cl @atom:p4 @atom:o + @angle:hp-p4-hp @atom:hp @atom:p4 @atom:hp + @angle:hp-p4-n1 @atom:hp @atom:p4 @atom:n1 + @angle:hp-p4-o @atom:hp @atom:p4 @atom:o + @angle:hp-p4-p3 @atom:hp @atom:p4 @atom:p3 + @angle:hp-p4-s @atom:hp @atom:p4 @atom:s + @angle:i-p4-i @atom:i @atom:p4 @atom:i + @angle:i-p4-o @atom:i @atom:p4 @atom:o + @angle:n1-p4-n1 @atom:n1 @atom:p4 @atom:n1 + @angle:n1-p4-o @atom:n1 @atom:p4 @atom:o + @angle:n2-p4-n2 @atom:n2 @atom:p4 @atom:n2 + @angle:n2-p4-o @atom:n2 @atom:p4 @atom:o + @angle:n3-p4-o @atom:n3 @atom:p4 @atom:o + @angle:n4-p4-o @atom:n4 @atom:p4 @atom:o + @angle:na-p4-o @atom:na @atom:p4 @atom:o + @angle:nh-p4-nh @atom:nh @atom:p4 @atom:nh + @angle:nh-p4-o @atom:nh @atom:p4 @atom:o + @angle:n-p4-o @atom:n @atom:p4 @atom:o + @angle:no-p4-o @atom:no @atom:p4 @atom:o + @angle:oh-p4-oh @atom:oh @atom:p4 @atom:oh + @angle:o-p4-o @atom:o @atom:p4 @atom:o + @angle:o-p4-oh @atom:o @atom:p4 @atom:oh + @angle:o-p4-os @atom:o @atom:p4 @atom:os + @angle:o-p4-p2 @atom:o @atom:p4 @atom:p2 + @angle:o-p4-p3 @atom:o @atom:p4 @atom:p3 + @angle:o-p4-p4 @atom:o @atom:p4 @atom:p4 + @angle:o-p4-p5 @atom:o @atom:p4 @atom:p5 + @angle:o-p4-s4 @atom:o @atom:p4 @atom:s4 + @angle:o-p4-s6 @atom:o @atom:p4 @atom:s6 + @angle:o-p4-s @atom:o @atom:p4 @atom:s + @angle:o-p4-sh @atom:o @atom:p4 @atom:sh + @angle:os-p4-os @atom:os @atom:p4 @atom:os + @angle:o-p4-ss @atom:o @atom:p4 @atom:ss + @angle:p2-p4-p2 @atom:p2 @atom:p4 @atom:p2 + @angle:p3-p4-p3 @atom:p3 @atom:p4 @atom:p3 + @angle:p4-p4-p4 @atom:p4 @atom:p4 @atom:p4 + @angle:p5-p4-p5 @atom:p5 @atom:p4 @atom:p5 + @angle:s4-p4-s4 @atom:s4 @atom:p4 @atom:s4 + @angle:s6-p4-s6 @atom:s6 @atom:p4 @atom:s6 + @angle:sh-p4-sh @atom:sh @atom:p4 @atom:sh + @angle:s-p4-s @atom:s @atom:p4 @atom:s + @angle:ss-p4-ss @atom:ss @atom:p4 @atom:ss + @angle:br-p5-br @atom:br @atom:p5 @atom:br + @angle:br-p5-o @atom:br @atom:p5 @atom:o + @angle:br-p5-oh @atom:br @atom:p5 @atom:oh + @angle:c1-p5-c1 @atom:c1 @atom:p5 @atom:c1 + @angle:c1-p5-o @atom:c1 @atom:p5 @atom:o + @angle:c1-p5-oh @atom:c1 @atom:p5 @atom:oh + @angle:c2-p5-c2 @atom:c2 @atom:p5 @atom:c2 + @angle:c2-p5-o @atom:c2 @atom:p5 @atom:o + @angle:c2-p5-oh @atom:c2 @atom:p5 @atom:oh + @angle:c2-p5-os @atom:c2 @atom:p5 @atom:os + @angle:c3-p5-c3 @atom:c3 @atom:p5 @atom:c3 + @angle:c3-p5-hp @atom:c3 @atom:p5 @atom:hp + @angle:c3-p5-n3 @atom:c3 @atom:p5 @atom:n3 + @angle:c3-p5-o @atom:c3 @atom:p5 @atom:o + @angle:c3-p5-oh @atom:c3 @atom:p5 @atom:oh + @angle:c3-p5-os @atom:c3 @atom:p5 @atom:os + @angle:c3-p5-p4 @atom:c3 @atom:p5 @atom:p4 + @angle:c3-p5-s @atom:c3 @atom:p5 @atom:s + @angle:c3-p5-ss @atom:c3 @atom:p5 @atom:ss + @angle:ca-p5-ca @atom:ca @atom:p5 @atom:ca + @angle:ca-p5-o @atom:ca @atom:p5 @atom:o + @angle:ca-p5-oh @atom:ca @atom:p5 @atom:oh + @angle:ca-p5-os @atom:ca @atom:p5 @atom:os + @angle:c-p5-c @atom:c @atom:p5 @atom:c + @angle:cl-p5-cl @atom:cl @atom:p5 @atom:cl + @angle:cl-p5-o @atom:cl @atom:p5 @atom:o + @angle:cl-p5-oh @atom:cl @atom:p5 @atom:oh + @angle:c-p5-o @atom:c @atom:p5 @atom:o + @angle:c-p5-oh @atom:c @atom:p5 @atom:oh + @angle:f-p5-f @atom:f @atom:p5 @atom:f + @angle:f-p5-o @atom:f @atom:p5 @atom:o + @angle:f-p5-oh @atom:f @atom:p5 @atom:oh + @angle:f-p5-os @atom:f @atom:p5 @atom:os + @angle:f-p5-s @atom:f @atom:p5 @atom:s + @angle:hp-p5-hp @atom:hp @atom:p5 @atom:hp + @angle:hp-p5-n1 @atom:hp @atom:p5 @atom:n1 + @angle:hp-p5-o @atom:hp @atom:p5 @atom:o + @angle:hp-p5-oh @atom:hp @atom:p5 @atom:oh + @angle:hp-p5-s @atom:hp @atom:p5 @atom:s + @angle:i-p5-i @atom:i @atom:p5 @atom:i + @angle:i-p5-o @atom:i @atom:p5 @atom:o + @angle:i-p5-oh @atom:i @atom:p5 @atom:oh + @angle:n1-p5-n1 @atom:n1 @atom:p5 @atom:n1 + @angle:n1-p5-o @atom:n1 @atom:p5 @atom:o + @angle:n2-p5-n2 @atom:n2 @atom:p5 @atom:n2 + @angle:n2-p5-o @atom:n2 @atom:p5 @atom:o + @angle:n2-p5-oh @atom:n2 @atom:p5 @atom:oh + @angle:n3-p5-n3 @atom:n3 @atom:p5 @atom:n3 + @angle:n3-p5-nh @atom:n3 @atom:p5 @atom:nh + @angle:n3-p5-o @atom:n3 @atom:p5 @atom:o + @angle:n3-p5-oh @atom:n3 @atom:p5 @atom:oh + @angle:n3-p5-os @atom:n3 @atom:p5 @atom:os + @angle:n3-p5-s @atom:n3 @atom:p5 @atom:s + @angle:n4-p5-n4 @atom:n4 @atom:p5 @atom:n4 + @angle:n4-p5-o @atom:n4 @atom:p5 @atom:o + @angle:n4-p5-oh @atom:n4 @atom:p5 @atom:oh + @angle:n4-p5-os @atom:n4 @atom:p5 @atom:os + @angle:na-p5-na @atom:na @atom:p5 @atom:na + @angle:na-p5-o @atom:na @atom:p5 @atom:o + @angle:na-p5-oh @atom:na @atom:p5 @atom:oh + @angle:na-p5-os @atom:na @atom:p5 @atom:os + @angle:nh-p5-nh @atom:nh @atom:p5 @atom:nh + @angle:nh-p5-o @atom:nh @atom:p5 @atom:o + @angle:nh-p5-oh @atom:nh @atom:p5 @atom:oh + @angle:nh-p5-os @atom:nh @atom:p5 @atom:os + @angle:n-p5-n3 @atom:n @atom:p5 @atom:n3 + @angle:n-p5-n @atom:n @atom:p5 @atom:n + @angle:n-p5-o @atom:n @atom:p5 @atom:o + @angle:n-p5-oh @atom:n @atom:p5 @atom:oh + @angle:no-p5-no @atom:no @atom:p5 @atom:no + @angle:no-p5-o @atom:no @atom:p5 @atom:o + @angle:no-p5-oh @atom:no @atom:p5 @atom:oh + @angle:no-p5-os @atom:no @atom:p5 @atom:os + @angle:n-p5-os @atom:n @atom:p5 @atom:os + @angle:oh-p5-oh @atom:oh @atom:p5 @atom:oh + @angle:oh-p5-os @atom:oh @atom:p5 @atom:os + @angle:oh-p5-p2 @atom:oh @atom:p5 @atom:p2 + @angle:oh-p5-p3 @atom:oh @atom:p5 @atom:p3 + @angle:oh-p5-p4 @atom:oh @atom:p5 @atom:p4 + @angle:oh-p5-p5 @atom:oh @atom:p5 @atom:p5 + @angle:oh-p5-s4 @atom:oh @atom:p5 @atom:s4 + @angle:oh-p5-s6 @atom:oh @atom:p5 @atom:s6 + @angle:oh-p5-s @atom:oh @atom:p5 @atom:s + @angle:oh-p5-sh @atom:oh @atom:p5 @atom:sh + @angle:oh-p5-ss @atom:oh @atom:p5 @atom:ss + @angle:o-p5-o @atom:o @atom:p5 @atom:o + @angle:o-p5-oh @atom:o @atom:p5 @atom:oh + @angle:o-p5-os @atom:o @atom:p5 @atom:os + @angle:o-p5-p2 @atom:o @atom:p5 @atom:p2 + @angle:o-p5-p3 @atom:o @atom:p5 @atom:p3 + @angle:o-p5-p4 @atom:o @atom:p5 @atom:p4 + @angle:o-p5-p5 @atom:o @atom:p5 @atom:p5 + @angle:o-p5-s4 @atom:o @atom:p5 @atom:s4 + @angle:o-p5-s6 @atom:o @atom:p5 @atom:s6 + @angle:o-p5-s @atom:o @atom:p5 @atom:s + @angle:o-p5-sh @atom:o @atom:p5 @atom:sh + @angle:os-p5-os @atom:os @atom:p5 @atom:os + @angle:os-p5-p3 @atom:os @atom:p5 @atom:p3 + @angle:os-p5-p5 @atom:os @atom:p5 @atom:p5 + @angle:os-p5-s4 @atom:os @atom:p5 @atom:s4 + @angle:os-p5-s6 @atom:os @atom:p5 @atom:s6 + @angle:o-p5-ss @atom:o @atom:p5 @atom:ss + @angle:os-p5-s @atom:os @atom:p5 @atom:s + @angle:os-p5-sh @atom:os @atom:p5 @atom:sh + @angle:os-p5-ss @atom:os @atom:p5 @atom:ss + @angle:p2-p5-p2 @atom:p2 @atom:p5 @atom:p2 + @angle:p3-p5-p3 @atom:p3 @atom:p5 @atom:p3 + @angle:p4-p5-p4 @atom:p4 @atom:p5 @atom:p4 + @angle:p5-p5-p5 @atom:p5 @atom:p5 @atom:p5 + @angle:s6-p5-s6 @atom:s6 @atom:p5 @atom:s6 + @angle:sh-p5-sh @atom:sh @atom:p5 @atom:sh + @angle:sh-p5-ss @atom:sh @atom:p5 @atom:ss + @angle:s-p5-s @atom:s @atom:p5 @atom:s + @angle:ss-p5-ss @atom:ss @atom:p5 @atom:ss + @angle:cd-pc-n @atom:cd @atom:pc @atom:n + @angle:cd-pc-na @atom:cd @atom:pc @atom:na + @angle:cc-pd-n @atom:cc @atom:pd @atom:n + @angle:cc-pd-na @atom:cc @atom:pd @atom:na + @angle:c2-pe-ca @atom:c2 @atom:pe @atom:ca + @angle:c2-pe-ce @atom:c2 @atom:pe @atom:ce + @angle:c2-pe-cg @atom:c2 @atom:pe @atom:cg + @angle:c2-pe-n2 @atom:c2 @atom:pe @atom:n2 + @angle:c2-pe-ne @atom:c2 @atom:pe @atom:ne + @angle:c2-pe-o @atom:c2 @atom:pe @atom:o + @angle:c2-pe-p2 @atom:c2 @atom:pe @atom:p2 + @angle:c2-pe-pe @atom:c2 @atom:pe @atom:pe + @angle:c2-pe-px @atom:c2 @atom:pe @atom:px + @angle:c2-pe-py @atom:c2 @atom:pe @atom:py + @angle:c2-pe-s @atom:c2 @atom:pe @atom:s + @angle:c2-pe-sx @atom:c2 @atom:pe @atom:sx + @angle:c2-pe-sy @atom:c2 @atom:pe @atom:sy + @angle:ca-pe-n2 @atom:ca @atom:pe @atom:n2 + @angle:ca-pe-o @atom:ca @atom:pe @atom:o + @angle:ca-pe-p2 @atom:ca @atom:pe @atom:p2 + @angle:ca-pe-pf @atom:ca @atom:pe @atom:pf + @angle:ca-pe-s @atom:ca @atom:pe @atom:s + @angle:c-pe-c2 @atom:c @atom:pe @atom:c2 + @angle:ce-pe-n2 @atom:ce @atom:pe @atom:n2 + @angle:ce-pe-o @atom:ce @atom:pe @atom:o + @angle:ce-pe-p2 @atom:ce @atom:pe @atom:p2 + @angle:ce-pe-s @atom:ce @atom:pe @atom:s + @angle:cg-pe-n2 @atom:cg @atom:pe @atom:n2 + @angle:cg-pe-o @atom:cg @atom:pe @atom:o + @angle:cg-pe-p2 @atom:cg @atom:pe @atom:p2 + @angle:cg-pe-s @atom:cg @atom:pe @atom:s + @angle:n2-pe-n2 @atom:n2 @atom:pe @atom:n2 + @angle:n2-pe-ne @atom:n2 @atom:pe @atom:ne + @angle:n2-pe-o @atom:n2 @atom:pe @atom:o + @angle:n2-pe-p2 @atom:n2 @atom:pe @atom:p2 + @angle:n2-pe-pe @atom:n2 @atom:pe @atom:pe + @angle:n2-pe-px @atom:n2 @atom:pe @atom:px + @angle:n2-pe-py @atom:n2 @atom:pe @atom:py + @angle:n2-pe-s @atom:n2 @atom:pe @atom:s + @angle:n2-pe-sx @atom:n2 @atom:pe @atom:sx + @angle:n2-pe-sy @atom:n2 @atom:pe @atom:sy + @angle:ne-pe-o @atom:ne @atom:pe @atom:o + @angle:ne-pe-p2 @atom:ne @atom:pe @atom:p2 + @angle:ne-pe-s @atom:ne @atom:pe @atom:s + @angle:o-pe-o @atom:o @atom:pe @atom:o + @angle:o-pe-p2 @atom:o @atom:pe @atom:p2 + @angle:o-pe-pe @atom:o @atom:pe @atom:pe + @angle:o-pe-px @atom:o @atom:pe @atom:px + @angle:o-pe-py @atom:o @atom:pe @atom:py + @angle:o-pe-s @atom:o @atom:pe @atom:s + @angle:o-pe-sx @atom:o @atom:pe @atom:sx + @angle:o-pe-sy @atom:o @atom:pe @atom:sy + @angle:p2-pe-pe @atom:p2 @atom:pe @atom:pe + @angle:p2-pe-px @atom:p2 @atom:pe @atom:px + @angle:p2-pe-py @atom:p2 @atom:pe @atom:py + @angle:p2-pe-s @atom:p2 @atom:pe @atom:s + @angle:p2-pe-sx @atom:p2 @atom:pe @atom:sx + @angle:p2-pe-sy @atom:p2 @atom:pe @atom:sy + @angle:pe-pe-s @atom:pe @atom:pe @atom:s + @angle:px-pe-s @atom:px @atom:pe @atom:s + @angle:py-pe-s @atom:py @atom:pe @atom:s + @angle:s-pe-s @atom:s @atom:pe @atom:s + @angle:s-pe-sx @atom:s @atom:pe @atom:sx + @angle:s-pe-sy @atom:s @atom:pe @atom:sy + @angle:c2-pf-ca @atom:c2 @atom:pf @atom:ca + @angle:c2-pf-cf @atom:c2 @atom:pf @atom:cf + @angle:c2-pf-ch @atom:c2 @atom:pf @atom:ch + @angle:c2-pf-n2 @atom:c2 @atom:pf @atom:n2 + @angle:c2-pf-nf @atom:c2 @atom:pf @atom:nf + @angle:c2-pf-o @atom:c2 @atom:pf @atom:o + @angle:c2-pf-p2 @atom:c2 @atom:pf @atom:p2 + @angle:c2-pf-pf @atom:c2 @atom:pf @atom:pf + @angle:c2-pf-px @atom:c2 @atom:pf @atom:px + @angle:c2-pf-py @atom:c2 @atom:pf @atom:py + @angle:c2-pf-s @atom:c2 @atom:pf @atom:s + @angle:c2-pf-sx @atom:c2 @atom:pf @atom:sx + @angle:c2-pf-sy @atom:c2 @atom:pf @atom:sy + @angle:ca-pf-n2 @atom:ca @atom:pf @atom:n2 + @angle:ca-pf-o @atom:ca @atom:pf @atom:o + @angle:ca-pf-p2 @atom:ca @atom:pf @atom:p2 + @angle:ca-pf-pe @atom:ca @atom:pf @atom:pe + @angle:ca-pf-s @atom:ca @atom:pf @atom:s + @angle:c-pf-c2 @atom:c @atom:pf @atom:c2 + @angle:cf-pf-n2 @atom:cf @atom:pf @atom:n2 + @angle:cf-pf-o @atom:cf @atom:pf @atom:o + @angle:cf-pf-p2 @atom:cf @atom:pf @atom:p2 + @angle:cf-pf-s @atom:cf @atom:pf @atom:s + @angle:ch-pf-n2 @atom:ch @atom:pf @atom:n2 + @angle:ch-pf-o @atom:ch @atom:pf @atom:o + @angle:ch-pf-p2 @atom:ch @atom:pf @atom:p2 + @angle:ch-pf-s @atom:ch @atom:pf @atom:s + @angle:n2-pf-n2 @atom:n2 @atom:pf @atom:n2 + @angle:n2-pf-nf @atom:n2 @atom:pf @atom:nf + @angle:n2-pf-o @atom:n2 @atom:pf @atom:o + @angle:n2-pf-p2 @atom:n2 @atom:pf @atom:p2 + @angle:n2-pf-pf @atom:n2 @atom:pf @atom:pf + @angle:n2-pf-px @atom:n2 @atom:pf @atom:px + @angle:n2-pf-py @atom:n2 @atom:pf @atom:py + @angle:n2-pf-s @atom:n2 @atom:pf @atom:s + @angle:n2-pf-sx @atom:n2 @atom:pf @atom:sx + @angle:n2-pf-sy @atom:n2 @atom:pf @atom:sy + @angle:nf-pf-o @atom:nf @atom:pf @atom:o + @angle:nf-pf-p2 @atom:nf @atom:pf @atom:p2 + @angle:nf-pf-s @atom:nf @atom:pf @atom:s + @angle:o-pf-o @atom:o @atom:pf @atom:o + @angle:o-pf-p2 @atom:o @atom:pf @atom:p2 + @angle:o-pf-pf @atom:o @atom:pf @atom:pf + @angle:o-pf-px @atom:o @atom:pf @atom:px + @angle:o-pf-py @atom:o @atom:pf @atom:py + @angle:o-pf-s @atom:o @atom:pf @atom:s + @angle:o-pf-sx @atom:o @atom:pf @atom:sx + @angle:o-pf-sy @atom:o @atom:pf @atom:sy + @angle:p2-pf-pf @atom:p2 @atom:pf @atom:pf + @angle:p2-pf-px @atom:p2 @atom:pf @atom:px + @angle:p2-pf-py @atom:p2 @atom:pf @atom:py + @angle:p2-pf-s @atom:p2 @atom:pf @atom:s + @angle:p2-pf-sx @atom:p2 @atom:pf @atom:sx + @angle:p2-pf-sy @atom:p2 @atom:pf @atom:sy + @angle:pf-pf-s @atom:pf @atom:pf @atom:s + @angle:px-pf-s @atom:px @atom:pf @atom:s + @angle:py-pf-s @atom:py @atom:pf @atom:s + @angle:s-pf-s @atom:s @atom:pf @atom:s + @angle:s-pf-sx @atom:s @atom:pf @atom:sx + @angle:s-pf-sy @atom:s @atom:pf @atom:sy + @angle:c3-px-ca @atom:c3 @atom:px @atom:ca + @angle:c3-px-ce @atom:c3 @atom:px @atom:ce + @angle:c3-px-cf @atom:c3 @atom:px @atom:cf + @angle:c3-px-ne @atom:c3 @atom:px @atom:ne + @angle:c3-px-nf @atom:c3 @atom:px @atom:nf + @angle:c3-px-o @atom:c3 @atom:px @atom:o + @angle:c3-px-pe @atom:c3 @atom:px @atom:pe + @angle:c3-px-pf @atom:c3 @atom:px @atom:pf + @angle:c3-px-py @atom:c3 @atom:px @atom:py + @angle:c3-px-sx @atom:c3 @atom:px @atom:sx + @angle:c3-px-sy @atom:c3 @atom:px @atom:sy + @angle:ca-px-ca @atom:ca @atom:px @atom:ca + @angle:ca-px-o @atom:ca @atom:px @atom:o + @angle:c-px-c3 @atom:c @atom:px @atom:c3 + @angle:ce-px-ce @atom:ce @atom:px @atom:ce + @angle:ce-px-o @atom:ce @atom:px @atom:o + @angle:cf-px-cf @atom:cf @atom:px @atom:cf + @angle:cf-px-o @atom:cf @atom:px @atom:o + @angle:c-px-o @atom:c @atom:px @atom:o + @angle:ne-px-ne @atom:ne @atom:px @atom:ne + @angle:ne-px-o @atom:ne @atom:px @atom:o + @angle:nf-px-nf @atom:nf @atom:px @atom:nf + @angle:nf-px-o @atom:nf @atom:px @atom:o + @angle:o-px-pe @atom:o @atom:px @atom:pe + @angle:o-px-pf @atom:o @atom:px @atom:pf + @angle:o-px-py @atom:o @atom:px @atom:py + @angle:o-px-sx @atom:o @atom:px @atom:sx + @angle:o-px-sy @atom:o @atom:px @atom:sy + @angle:pe-px-pe @atom:pe @atom:px @atom:pe + @angle:pf-px-pf @atom:pf @atom:px @atom:pf + @angle:py-px-py @atom:py @atom:px @atom:py + @angle:sx-px-sx @atom:sx @atom:px @atom:sx + @angle:sy-px-sy @atom:sy @atom:px @atom:sy + @angle:c3-py-n4 @atom:c3 @atom:py @atom:n4 + @angle:c3-py-na @atom:c3 @atom:py @atom:na + @angle:c3-py-o @atom:c3 @atom:py @atom:o + @angle:c3-py-oh @atom:c3 @atom:py @atom:oh + @angle:c3-py-os @atom:c3 @atom:py @atom:os + @angle:c3-py-px @atom:c3 @atom:py @atom:px + @angle:c3-py-py @atom:c3 @atom:py @atom:py + @angle:c3-py-sx @atom:c3 @atom:py @atom:sx + @angle:ca-py-ca @atom:ca @atom:py @atom:ca + @angle:ca-py-o @atom:ca @atom:py @atom:o + @angle:ca-py-oh @atom:ca @atom:py @atom:oh + @angle:ca-py-os @atom:ca @atom:py @atom:os + @angle:c-py-c3 @atom:c @atom:py @atom:c3 + @angle:c-py-c @atom:c @atom:py @atom:c + @angle:ce-py-ce @atom:ce @atom:py @atom:ce + @angle:ce-py-o @atom:ce @atom:py @atom:o + @angle:ce-py-oh @atom:ce @atom:py @atom:oh + @angle:ce-py-os @atom:ce @atom:py @atom:os + @angle:cf-py-cf @atom:cf @atom:py @atom:cf + @angle:cf-py-o @atom:cf @atom:py @atom:o + @angle:cf-py-oh @atom:cf @atom:py @atom:oh + @angle:cf-py-os @atom:cf @atom:py @atom:os + @angle:c-py-o @atom:c @atom:py @atom:o + @angle:c-py-oh @atom:c @atom:py @atom:oh + @angle:c-py-os @atom:c @atom:py @atom:os + @angle:n3-py-ne @atom:n3 @atom:py @atom:ne + @angle:n4-py-o @atom:n4 @atom:py @atom:o + @angle:n4-py-py @atom:n4 @atom:py @atom:py + @angle:na-py-o @atom:na @atom:py @atom:o + @angle:na-py-py @atom:na @atom:py @atom:py + @angle:ne-py-ne @atom:ne @atom:py @atom:ne + @angle:ne-py-o @atom:ne @atom:py @atom:o + @angle:ne-py-oh @atom:ne @atom:py @atom:oh + @angle:ne-py-os @atom:ne @atom:py @atom:os + @angle:nf-py-nf @atom:nf @atom:py @atom:nf + @angle:nf-py-o @atom:nf @atom:py @atom:o + @angle:nf-py-oh @atom:nf @atom:py @atom:oh + @angle:nf-py-os @atom:nf @atom:py @atom:os + @angle:oh-py-oh @atom:oh @atom:py @atom:oh + @angle:oh-py-pe @atom:oh @atom:py @atom:pe + @angle:oh-py-pf @atom:oh @atom:py @atom:pf + @angle:oh-py-px @atom:oh @atom:py @atom:px + @angle:oh-py-py @atom:oh @atom:py @atom:py + @angle:oh-py-sx @atom:oh @atom:py @atom:sx + @angle:oh-py-sy @atom:oh @atom:py @atom:sy + @angle:o-py-oh @atom:o @atom:py @atom:oh + @angle:o-py-os @atom:o @atom:py @atom:os + @angle:o-py-pe @atom:o @atom:py @atom:pe + @angle:o-py-pf @atom:o @atom:py @atom:pf + @angle:o-py-px @atom:o @atom:py @atom:px + @angle:o-py-py @atom:o @atom:py @atom:py + @angle:os-py-os @atom:os @atom:py @atom:os + @angle:os-py-py @atom:os @atom:py @atom:py + @angle:os-py-sx @atom:os @atom:py @atom:sx + @angle:os-py-sy @atom:os @atom:py @atom:sy + @angle:o-py-sx @atom:o @atom:py @atom:sx + @angle:o-py-sy @atom:o @atom:py @atom:sy + @angle:pe-py-pe @atom:pe @atom:py @atom:pe + @angle:pf-py-pf @atom:pf @atom:py @atom:pf + @angle:py-py-py @atom:py @atom:py @atom:py + @angle:py-py-sx @atom:py @atom:py @atom:sx + @angle:sy-py-sy @atom:sy @atom:py @atom:sy + @angle:c1-s2-o @atom:c1 @atom:s2 @atom:o + @angle:c2-s2-n2 @atom:c2 @atom:s2 @atom:n2 + @angle:c2-s2-o @atom:c2 @atom:s2 @atom:o + @angle:cl-s2-n1 @atom:cl @atom:s2 @atom:n1 + @angle:f-s2-n1 @atom:f @atom:s2 @atom:n1 + @angle:n1-s2-o @atom:n1 @atom:s2 @atom:o + @angle:n2-s2-o @atom:n2 @atom:s2 @atom:o + @angle:o-s2-o @atom:o @atom:s2 @atom:o + @angle:o-s2-s @atom:o @atom:s2 @atom:s + @angle:s-s2-s @atom:s @atom:s2 @atom:s + @angle:br-s4-br @atom:br @atom:s4 @atom:br + @angle:br-s4-c3 @atom:br @atom:s4 @atom:c3 + @angle:br-s4-o @atom:br @atom:s4 @atom:o + @angle:c1-s4-c1 @atom:c1 @atom:s4 @atom:c1 + @angle:c1-s4-o @atom:c1 @atom:s4 @atom:o + @angle:c2-s4-c2 @atom:c2 @atom:s4 @atom:c2 + @angle:c2-s4-c3 @atom:c2 @atom:s4 @atom:c3 + @angle:c2-s4-o @atom:c2 @atom:s4 @atom:o + @angle:c3-s4-c3 @atom:c3 @atom:s4 @atom:c3 + @angle:c3-s4-ca @atom:c3 @atom:s4 @atom:ca + @angle:c3-s4-f @atom:c3 @atom:s4 @atom:f + @angle:c3-s4-hs @atom:c3 @atom:s4 @atom:hs + @angle:c3-s4-i @atom:c3 @atom:s4 @atom:i + @angle:c3-s4-n2 @atom:c3 @atom:s4 @atom:n2 + @angle:c3-s4-n3 @atom:c3 @atom:s4 @atom:n3 + @angle:c3-s4-n @atom:c3 @atom:s4 @atom:n + @angle:c3-s4-n4 @atom:c3 @atom:s4 @atom:n4 + @angle:c3-s4-na @atom:c3 @atom:s4 @atom:na + @angle:c3-s4-nh @atom:c3 @atom:s4 @atom:nh + @angle:c3-s4-no @atom:c3 @atom:s4 @atom:no + @angle:c3-s4-o @atom:c3 @atom:s4 @atom:o + @angle:c3-s4-oh @atom:c3 @atom:s4 @atom:oh + @angle:c3-s4-os @atom:c3 @atom:s4 @atom:os + @angle:c3-s4-p2 @atom:c3 @atom:s4 @atom:p2 + @angle:c3-s4-p3 @atom:c3 @atom:s4 @atom:p3 + @angle:c3-s4-p4 @atom:c3 @atom:s4 @atom:p4 + @angle:c3-s4-p5 @atom:c3 @atom:s4 @atom:p5 + @angle:c3-s4-s4 @atom:c3 @atom:s4 @atom:s4 + @angle:c3-s4-s @atom:c3 @atom:s4 @atom:s + @angle:c3-s4-s6 @atom:c3 @atom:s4 @atom:s6 + @angle:c3-s4-sh @atom:c3 @atom:s4 @atom:sh + @angle:c3-s4-ss @atom:c3 @atom:s4 @atom:ss + @angle:ca-s4-ca @atom:ca @atom:s4 @atom:ca + @angle:ca-s4-o @atom:ca @atom:s4 @atom:o + @angle:c-s4-c3 @atom:c @atom:s4 @atom:c3 + @angle:c-s4-c @atom:c @atom:s4 @atom:c + @angle:cl-s4-cl @atom:cl @atom:s4 @atom:cl + @angle:cl-s4-o @atom:cl @atom:s4 @atom:o + @angle:c-s4-o @atom:c @atom:s4 @atom:o + @angle:cx-s4-cx @atom:cx @atom:s4 @atom:cx + @angle:cx-s4-o @atom:cx @atom:s4 @atom:o + @angle:f-s4-f @atom:f @atom:s4 @atom:f + @angle:f-s4-o @atom:f @atom:s4 @atom:o + @angle:f-s4-s @atom:f @atom:s4 @atom:s + @angle:hs-s4-hs @atom:hs @atom:s4 @atom:hs + @angle:hs-s4-n1 @atom:hs @atom:s4 @atom:n1 + @angle:hs-s4-o @atom:hs @atom:s4 @atom:o + @angle:i-s4-i @atom:i @atom:s4 @atom:i + @angle:i-s4-o @atom:i @atom:s4 @atom:o + @angle:n1-s4-n1 @atom:n1 @atom:s4 @atom:n1 + @angle:n1-s4-o @atom:n1 @atom:s4 @atom:o + @angle:n2-s4-n2 @atom:n2 @atom:s4 @atom:n2 + @angle:n2-s4-o @atom:n2 @atom:s4 @atom:o + @angle:n3-s4-n3 @atom:n3 @atom:s4 @atom:n3 + @angle:n3-s4-o @atom:n3 @atom:s4 @atom:o + @angle:n4-s4-n4 @atom:n4 @atom:s4 @atom:n4 + @angle:n4-s4-o @atom:n4 @atom:s4 @atom:o + @angle:na-s4-na @atom:na @atom:s4 @atom:na + @angle:na-s4-o @atom:na @atom:s4 @atom:o + @angle:nh-s4-nh @atom:nh @atom:s4 @atom:nh + @angle:nh-s4-o @atom:nh @atom:s4 @atom:o + @angle:n-s4-n @atom:n @atom:s4 @atom:n + @angle:n-s4-o @atom:n @atom:s4 @atom:o + @angle:no-s4-no @atom:no @atom:s4 @atom:no + @angle:no-s4-o @atom:no @atom:s4 @atom:o + @angle:oh-s4-oh @atom:oh @atom:s4 @atom:oh + @angle:o-s4-o @atom:o @atom:s4 @atom:o + @angle:o-s4-oh @atom:o @atom:s4 @atom:oh + @angle:o-s4-os @atom:o @atom:s4 @atom:os + @angle:o-s4-p2 @atom:o @atom:s4 @atom:p2 + @angle:o-s4-p3 @atom:o @atom:s4 @atom:p3 + @angle:o-s4-p4 @atom:o @atom:s4 @atom:p4 + @angle:o-s4-p5 @atom:o @atom:s4 @atom:p5 + @angle:o-s4-s4 @atom:o @atom:s4 @atom:s4 + @angle:o-s4-s @atom:o @atom:s4 @atom:s + @angle:o-s4-s6 @atom:o @atom:s4 @atom:s6 + @angle:o-s4-sh @atom:o @atom:s4 @atom:sh + @angle:os-s4-os @atom:os @atom:s4 @atom:os + @angle:o-s4-ss @atom:o @atom:s4 @atom:ss + @angle:p2-s4-p2 @atom:p2 @atom:s4 @atom:p2 + @angle:p3-s4-p3 @atom:p3 @atom:s4 @atom:p3 + @angle:p5-s4-p5 @atom:p5 @atom:s4 @atom:p5 + @angle:s4-s4-s4 @atom:s4 @atom:s4 @atom:s4 + @angle:s4-s4-s6 @atom:s4 @atom:s4 @atom:s6 + @angle:s6-s4-s6 @atom:s6 @atom:s4 @atom:s6 + @angle:sh-s4-sh @atom:sh @atom:s4 @atom:sh + @angle:sh-s4-ss @atom:sh @atom:s4 @atom:ss + @angle:s-s4-s @atom:s @atom:s4 @atom:s + @angle:ss-s4-ss @atom:ss @atom:s4 @atom:ss + @angle:br-s6-br @atom:br @atom:s6 @atom:br + @angle:br-s6-c3 @atom:br @atom:s6 @atom:c3 + @angle:br-s6-f @atom:br @atom:s6 @atom:f + @angle:br-s6-o @atom:br @atom:s6 @atom:o + @angle:c1-s6-c1 @atom:c1 @atom:s6 @atom:c1 + @angle:c1-s6-o @atom:c1 @atom:s6 @atom:o + @angle:c2-s6-c2 @atom:c2 @atom:s6 @atom:c2 + @angle:c2-s6-c3 @atom:c2 @atom:s6 @atom:c3 + @angle:c2-s6-o @atom:c2 @atom:s6 @atom:o + @angle:c3-s6-c3 @atom:c3 @atom:s6 @atom:c3 + @angle:c3-s6-ca @atom:c3 @atom:s6 @atom:ca + @angle:c3-s6-cy @atom:c3 @atom:s6 @atom:cy + @angle:c3-s6-f @atom:c3 @atom:s6 @atom:f + @angle:c3-s6-hs @atom:c3 @atom:s6 @atom:hs + @angle:c3-s6-i @atom:c3 @atom:s6 @atom:i + @angle:c3-s6-n2 @atom:c3 @atom:s6 @atom:n2 + @angle:c3-s6-n3 @atom:c3 @atom:s6 @atom:n3 + @angle:c3-s6-n @atom:c3 @atom:s6 @atom:n + @angle:c3-s6-n4 @atom:c3 @atom:s6 @atom:n4 + @angle:c3-s6-na @atom:c3 @atom:s6 @atom:na + @angle:c3-s6-nh @atom:c3 @atom:s6 @atom:nh + @angle:c3-s6-no @atom:c3 @atom:s6 @atom:no + @angle:c3-s6-o @atom:c3 @atom:s6 @atom:o + @angle:c3-s6-oh @atom:c3 @atom:s6 @atom:oh + @angle:c3-s6-os @atom:c3 @atom:s6 @atom:os + @angle:c3-s6-p2 @atom:c3 @atom:s6 @atom:p2 + @angle:c3-s6-p3 @atom:c3 @atom:s6 @atom:p3 + @angle:c3-s6-p4 @atom:c3 @atom:s6 @atom:p4 + @angle:c3-s6-p5 @atom:c3 @atom:s6 @atom:p5 + @angle:c3-s6-s4 @atom:c3 @atom:s6 @atom:s4 + @angle:c3-s6-s @atom:c3 @atom:s6 @atom:s + @angle:c3-s6-s6 @atom:c3 @atom:s6 @atom:s6 + @angle:c3-s6-sh @atom:c3 @atom:s6 @atom:sh + @angle:c3-s6-ss @atom:c3 @atom:s6 @atom:ss + @angle:ca-s6-ca @atom:ca @atom:s6 @atom:ca + @angle:ca-s6-o @atom:ca @atom:s6 @atom:o + @angle:c-s6-c3 @atom:c @atom:s6 @atom:c3 + @angle:c-s6-c @atom:c @atom:s6 @atom:c + @angle:cc-s6-o @atom:cc @atom:s6 @atom:o + @angle:cl-s6-cl @atom:cl @atom:s6 @atom:cl + @angle:cl-s6-f @atom:cl @atom:s6 @atom:f + @angle:cl-s6-o @atom:cl @atom:s6 @atom:o + @angle:c-s6-o @atom:c @atom:s6 @atom:o + @angle:c-s6-os @atom:c @atom:s6 @atom:os + @angle:cx-s6-cx @atom:cx @atom:s6 @atom:cx + @angle:cy-s6-o @atom:cy @atom:s6 @atom:o + @angle:f-s6-f @atom:f @atom:s6 @atom:f + @angle:f-s6-o @atom:f @atom:s6 @atom:o + @angle:hs-s6-hs @atom:hs @atom:s6 @atom:hs + @angle:hs-s6-n1 @atom:hs @atom:s6 @atom:n1 + @angle:hs-s6-o @atom:hs @atom:s6 @atom:o + @angle:i-s6-i @atom:i @atom:s6 @atom:i + @angle:i-s6-o @atom:i @atom:s6 @atom:o + @angle:n1-s6-n1 @atom:n1 @atom:s6 @atom:n1 + @angle:n1-s6-o @atom:n1 @atom:s6 @atom:o + @angle:n2-s6-n2 @atom:n2 @atom:s6 @atom:n2 + @angle:n2-s6-o @atom:n2 @atom:s6 @atom:o + @angle:n2-s6-oh @atom:n2 @atom:s6 @atom:oh + @angle:n2-s6-os @atom:n2 @atom:s6 @atom:os + @angle:n3-s6-n3 @atom:n3 @atom:s6 @atom:n3 + @angle:n3-s6-o @atom:n3 @atom:s6 @atom:o + @angle:n3-s6-os @atom:n3 @atom:s6 @atom:os + @angle:n4-s6-n4 @atom:n4 @atom:s6 @atom:n4 + @angle:n4-s6-o @atom:n4 @atom:s6 @atom:o + @angle:na-s6-na @atom:na @atom:s6 @atom:na + @angle:na-s6-o @atom:na @atom:s6 @atom:o + @angle:nh-s6-nh @atom:nh @atom:s6 @atom:nh + @angle:nh-s6-o @atom:nh @atom:s6 @atom:o + @angle:n-s6-n @atom:n @atom:s6 @atom:n + @angle:n-s6-o @atom:n @atom:s6 @atom:o + @angle:no-s6-no @atom:no @atom:s6 @atom:no + @angle:no-s6-o @atom:no @atom:s6 @atom:o + @angle:n-s6-os @atom:n @atom:s6 @atom:os + @angle:oh-s6-oh @atom:oh @atom:s6 @atom:oh + @angle:oh-s6-os @atom:oh @atom:s6 @atom:os + @angle:oh-s6-p2 @atom:oh @atom:s6 @atom:p2 + @angle:o-s6-o @atom:o @atom:s6 @atom:o + @angle:o-s6-oh @atom:o @atom:s6 @atom:oh + @angle:o-s6-os @atom:o @atom:s6 @atom:os + @angle:o-s6-p2 @atom:o @atom:s6 @atom:p2 + @angle:o-s6-p3 @atom:o @atom:s6 @atom:p3 + @angle:o-s6-p4 @atom:o @atom:s6 @atom:p4 + @angle:o-s6-p5 @atom:o @atom:s6 @atom:p5 + @angle:o-s6-s4 @atom:o @atom:s6 @atom:s4 + @angle:o-s6-s @atom:o @atom:s6 @atom:s + @angle:o-s6-s6 @atom:o @atom:s6 @atom:s6 + @angle:o-s6-sh @atom:o @atom:s6 @atom:sh + @angle:os-s6-os @atom:os @atom:s6 @atom:os + @angle:o-s6-ss @atom:o @atom:s6 @atom:ss + @angle:p3-s6-p3 @atom:p3 @atom:s6 @atom:p3 + @angle:p5-s6-p5 @atom:p5 @atom:s6 @atom:p5 + @angle:s4-s6-s4 @atom:s4 @atom:s6 @atom:s4 + @angle:s4-s6-s6 @atom:s4 @atom:s6 @atom:s6 + @angle:s6-s6-s6 @atom:s6 @atom:s6 @atom:s6 + @angle:sh-s6-sh @atom:sh @atom:s6 @atom:sh + @angle:sh-s6-ss @atom:sh @atom:s6 @atom:ss + @angle:s-s6-s @atom:s @atom:s6 @atom:s + @angle:ss-s6-ss @atom:ss @atom:s6 @atom:ss + @angle:br-sh-hs @atom:br @atom:sh @atom:hs + @angle:c1-sh-hs @atom:c1 @atom:sh @atom:hs + @angle:c2-sh-hs @atom:c2 @atom:sh @atom:hs + @angle:c3-sh-hs @atom:c3 @atom:sh @atom:hs + @angle:ca-sh-hs @atom:ca @atom:sh @atom:hs + @angle:cc-sh-hs @atom:cc @atom:sh @atom:hs + @angle:c-sh-hs @atom:c @atom:sh @atom:hs + @angle:f-sh-hs @atom:f @atom:sh @atom:hs + @angle:hs-sh-hs @atom:hs @atom:sh @atom:hs + @angle:hs-sh-i @atom:hs @atom:sh @atom:i + @angle:hs-sh-n1 @atom:hs @atom:sh @atom:n1 + @angle:hs-sh-n2 @atom:hs @atom:sh @atom:n2 + @angle:hs-sh-n @atom:hs @atom:sh @atom:n + @angle:hs-sh-n3 @atom:hs @atom:sh @atom:n3 + @angle:hs-sh-n4 @atom:hs @atom:sh @atom:n4 + @angle:hs-sh-na @atom:hs @atom:sh @atom:na + @angle:hs-sh-nh @atom:hs @atom:sh @atom:nh + @angle:hs-sh-no @atom:hs @atom:sh @atom:no + @angle:hs-sh-o @atom:hs @atom:sh @atom:o + @angle:hs-sh-oh @atom:hs @atom:sh @atom:oh + @angle:hs-sh-os @atom:hs @atom:sh @atom:os + @angle:hs-sh-p2 @atom:hs @atom:sh @atom:p2 + @angle:hs-sh-p3 @atom:hs @atom:sh @atom:p3 + @angle:hs-sh-p4 @atom:hs @atom:sh @atom:p4 + @angle:hs-sh-p5 @atom:hs @atom:sh @atom:p5 + @angle:hs-sh-s @atom:hs @atom:sh @atom:s + @angle:hs-sh-s4 @atom:hs @atom:sh @atom:s4 + @angle:hs-sh-s6 @atom:hs @atom:sh @atom:s6 + @angle:hs-sh-sh @atom:hs @atom:sh @atom:sh + @angle:hs-sh-ss @atom:hs @atom:sh @atom:ss + @angle:br-ss-br @atom:br @atom:ss @atom:br + @angle:br-ss-c3 @atom:br @atom:ss @atom:c3 + @angle:c1-ss-c1 @atom:c1 @atom:ss @atom:c1 + @angle:c1-ss-c3 @atom:c1 @atom:ss @atom:c3 + @angle:c2-ss-c2 @atom:c2 @atom:ss @atom:c2 + @angle:c2-ss-c3 @atom:c2 @atom:ss @atom:c3 + @angle:c2-ss-cy @atom:c2 @atom:ss @atom:cy + @angle:c2-ss-n2 @atom:c2 @atom:ss @atom:n2 + @angle:c2-ss-na @atom:c2 @atom:ss @atom:na + @angle:c2-ss-os @atom:c2 @atom:ss @atom:os + @angle:c2-ss-ss @atom:c2 @atom:ss @atom:ss + @angle:c3-ss-c3 @atom:c3 @atom:ss @atom:c3 + @angle:c3-ss-ca @atom:c3 @atom:ss @atom:ca + @angle:c3-ss-cc @atom:c3 @atom:ss @atom:cc + @angle:c3-ss-cd @atom:c3 @atom:ss @atom:cd + @angle:c3-ss-cl @atom:c3 @atom:ss @atom:cl + @angle:c3-ss-cy @atom:c3 @atom:ss @atom:cy + @angle:c3-ss-f @atom:c3 @atom:ss @atom:f + @angle:c3-ss-i @atom:c3 @atom:ss @atom:i + @angle:c3-ss-n1 @atom:c3 @atom:ss @atom:n1 + @angle:c3-ss-n2 @atom:c3 @atom:ss @atom:n2 + @angle:c3-ss-n3 @atom:c3 @atom:ss @atom:n3 + @angle:c3-ss-n @atom:c3 @atom:ss @atom:n + @angle:c3-ss-n4 @atom:c3 @atom:ss @atom:n4 + @angle:c3-ss-na @atom:c3 @atom:ss @atom:na + @angle:c3-ss-nh @atom:c3 @atom:ss @atom:nh + @angle:c3-ss-no @atom:c3 @atom:ss @atom:no + @angle:c3-ss-o @atom:c3 @atom:ss @atom:o + @angle:c3-ss-oh @atom:c3 @atom:ss @atom:oh + @angle:c3-ss-os @atom:c3 @atom:ss @atom:os + @angle:c3-ss-p2 @atom:c3 @atom:ss @atom:p2 + @angle:c3-ss-p3 @atom:c3 @atom:ss @atom:p3 + @angle:c3-ss-p4 @atom:c3 @atom:ss @atom:p4 + @angle:c3-ss-p5 @atom:c3 @atom:ss @atom:p5 + @angle:c3-ss-s4 @atom:c3 @atom:ss @atom:s4 + @angle:c3-ss-s @atom:c3 @atom:ss @atom:s + @angle:c3-ss-s6 @atom:c3 @atom:ss @atom:s6 + @angle:c3-ss-sh @atom:c3 @atom:ss @atom:sh + @angle:c3-ss-ss @atom:c3 @atom:ss @atom:ss + @angle:ca-ss-ca @atom:ca @atom:ss @atom:ca + @angle:ca-ss-cc @atom:ca @atom:ss @atom:cc + @angle:ca-ss-cd @atom:ca @atom:ss @atom:cd + @angle:ca-ss-cl @atom:ca @atom:ss @atom:cl + @angle:ca-ss-n @atom:ca @atom:ss @atom:n + @angle:ca-ss-na @atom:ca @atom:ss @atom:na + @angle:ca-ss-nc @atom:ca @atom:ss @atom:nc + @angle:ca-ss-nd @atom:ca @atom:ss @atom:nd + @angle:ca-ss-ss @atom:ca @atom:ss @atom:ss + @angle:c-ss-c2 @atom:c @atom:ss @atom:c2 + @angle:c-ss-c3 @atom:c @atom:ss @atom:c3 + @angle:c-ss-c @atom:c @atom:ss @atom:c + @angle:c-ss-cc @atom:c @atom:ss @atom:cc + @angle:cc-ss-cc @atom:cc @atom:ss @atom:cc + @angle:cc-ss-cd @atom:cc @atom:ss @atom:cd + @angle:cc-ss-n @atom:cc @atom:ss @atom:n + @angle:cc-ss-na @atom:cc @atom:ss @atom:na + @angle:cc-ss-nc @atom:cc @atom:ss @atom:nc + @angle:cc-ss-os @atom:cc @atom:ss @atom:os + @angle:cc-ss-ss @atom:cc @atom:ss @atom:ss + @angle:cd-ss-cd @atom:cd @atom:ss @atom:cd + @angle:cd-ss-n @atom:cd @atom:ss @atom:n + @angle:cd-ss-na @atom:cd @atom:ss @atom:na + @angle:cd-ss-nd @atom:cd @atom:ss @atom:nd + @angle:cd-ss-os @atom:cd @atom:ss @atom:os + @angle:cd-ss-ss @atom:cd @atom:ss @atom:ss + @angle:cl-ss-cl @atom:cl @atom:ss @atom:cl + @angle:cx-ss-cx @atom:cx @atom:ss @atom:cx + @angle:f-ss-f @atom:f @atom:ss @atom:f + @angle:f-ss-ss @atom:f @atom:ss @atom:ss + @angle:i-ss-i @atom:i @atom:ss @atom:i + @angle:n1-ss-n1 @atom:n1 @atom:ss @atom:n1 + @angle:n2-ss-n2 @atom:n2 @atom:ss @atom:n2 + @angle:n3-ss-n3 @atom:n3 @atom:ss @atom:n3 + @angle:n4-ss-n4 @atom:n4 @atom:ss @atom:n4 + @angle:na-ss-na @atom:na @atom:ss @atom:na + @angle:nc-ss-nc @atom:nc @atom:ss @atom:nc + @angle:nd-ss-nd @atom:nd @atom:ss @atom:nd + @angle:nh-ss-nh @atom:nh @atom:ss @atom:nh + @angle:n-ss-n @atom:n @atom:ss @atom:n + @angle:no-ss-no @atom:no @atom:ss @atom:no + @angle:oh-ss-oh @atom:oh @atom:ss @atom:oh + @angle:o-ss-o @atom:o @atom:ss @atom:o + @angle:o-ss-p5 @atom:o @atom:ss @atom:p5 + @angle:o-ss-s6 @atom:o @atom:ss @atom:s6 + @angle:os-ss-os @atom:os @atom:ss @atom:os + @angle:o-ss-ss @atom:o @atom:ss @atom:ss + @angle:p2-ss-p2 @atom:p2 @atom:ss @atom:p2 + @angle:p3-ss-p3 @atom:p3 @atom:ss @atom:p3 + @angle:p5-ss-p5 @atom:p5 @atom:ss @atom:p5 + @angle:s4-ss-s4 @atom:s4 @atom:ss @atom:s4 + @angle:s4-ss-s6 @atom:s4 @atom:ss @atom:s6 + @angle:s6-ss-s6 @atom:s6 @atom:ss @atom:s6 + @angle:sh-ss-sh @atom:sh @atom:ss @atom:sh + @angle:sh-ss-ss @atom:sh @atom:ss @atom:ss + @angle:s-ss-s @atom:s @atom:ss @atom:s + @angle:ss-ss-ss @atom:ss @atom:ss @atom:ss + @angle:c3-sx-ca @atom:c3 @atom:sx @atom:ca + @angle:c3-sx-cc @atom:c3 @atom:sx @atom:cc + @angle:c3-sx-ce @atom:c3 @atom:sx @atom:ce + @angle:c3-sx-cf @atom:c3 @atom:sx @atom:cf + @angle:c3-sx-ne @atom:c3 @atom:sx @atom:ne + @angle:c3-sx-nf @atom:c3 @atom:sx @atom:nf + @angle:c3-sx-o @atom:c3 @atom:sx @atom:o + @angle:c3-sx-pe @atom:c3 @atom:sx @atom:pe + @angle:c3-sx-pf @atom:c3 @atom:sx @atom:pf + @angle:c3-sx-px @atom:c3 @atom:sx @atom:px + @angle:c3-sx-py @atom:c3 @atom:sx @atom:py + @angle:c3-sx-sx @atom:c3 @atom:sx @atom:sx + @angle:c3-sx-sy @atom:c3 @atom:sx @atom:sy + @angle:ca-sx-ca @atom:ca @atom:sx @atom:ca + @angle:ca-sx-o @atom:ca @atom:sx @atom:o + @angle:c-sx-c3 @atom:c @atom:sx @atom:c3 + @angle:c-sx-c @atom:c @atom:sx @atom:c + @angle:cc-sx-o @atom:cc @atom:sx @atom:o + @angle:ce-sx-ce @atom:ce @atom:sx @atom:ce + @angle:ce-sx-o @atom:ce @atom:sx @atom:o + @angle:cf-sx-cf @atom:cf @atom:sx @atom:cf + @angle:cf-sx-o @atom:cf @atom:sx @atom:o + @angle:c-sx-o @atom:c @atom:sx @atom:o + @angle:ne-sx-ne @atom:ne @atom:sx @atom:ne + @angle:ne-sx-o @atom:ne @atom:sx @atom:o + @angle:nf-sx-nf @atom:nf @atom:sx @atom:nf + @angle:nf-sx-o @atom:nf @atom:sx @atom:o + @angle:o-sx-pe @atom:o @atom:sx @atom:pe + @angle:o-sx-pf @atom:o @atom:sx @atom:pf + @angle:o-sx-px @atom:o @atom:sx @atom:px + @angle:o-sx-py @atom:o @atom:sx @atom:py + @angle:o-sx-sx @atom:o @atom:sx @atom:sx + @angle:o-sx-sy @atom:o @atom:sx @atom:sy + @angle:pe-sx-pe @atom:pe @atom:sx @atom:pe + @angle:pf-sx-pf @atom:pf @atom:sx @atom:pf + @angle:py-sx-py @atom:py @atom:sx @atom:py + @angle:sx-sx-sx @atom:sx @atom:sx @atom:sx + @angle:sy-sx-sy @atom:sy @atom:sx @atom:sy + @angle:c3-sy-ca @atom:c3 @atom:sy @atom:ca + @angle:c3-sy-cc @atom:c3 @atom:sy @atom:cc + @angle:c3-sy-ce @atom:c3 @atom:sy @atom:ce + @angle:c3-sy-cf @atom:c3 @atom:sy @atom:cf + @angle:c3-sy-ne @atom:c3 @atom:sy @atom:ne + @angle:c3-sy-nf @atom:c3 @atom:sy @atom:nf + @angle:c3-sy-o @atom:c3 @atom:sy @atom:o + @angle:c3-sy-pe @atom:c3 @atom:sy @atom:pe + @angle:c3-sy-pf @atom:c3 @atom:sy @atom:pf + @angle:c3-sy-px @atom:c3 @atom:sy @atom:px + @angle:c3-sy-py @atom:c3 @atom:sy @atom:py + @angle:c3-sy-sx @atom:c3 @atom:sy @atom:sx + @angle:c3-sy-sy @atom:c3 @atom:sy @atom:sy + @angle:ca-sy-ca @atom:ca @atom:sy @atom:ca + @angle:ca-sy-cc @atom:ca @atom:sy @atom:cc + @angle:ca-sy-n3 @atom:ca @atom:sy @atom:n3 + @angle:ca-sy-n @atom:ca @atom:sy @atom:n + @angle:ca-sy-ne @atom:ca @atom:sy @atom:ne + @angle:ca-sy-nh @atom:ca @atom:sy @atom:nh + @angle:ca-sy-o @atom:ca @atom:sy @atom:o + @angle:ca-sy-oh @atom:ca @atom:sy @atom:oh + @angle:ca-sy-os @atom:ca @atom:sy @atom:os + @angle:c-sy-c3 @atom:c @atom:sy @atom:c3 + @angle:c-sy-c @atom:c @atom:sy @atom:c + @angle:cc-sy-n3 @atom:cc @atom:sy @atom:n3 + @angle:cc-sy-o @atom:cc @atom:sy @atom:o + @angle:cd-sy-n3 @atom:cd @atom:sy @atom:n3 + @angle:cd-sy-nh @atom:cd @atom:sy @atom:nh + @angle:cd-sy-o @atom:cd @atom:sy @atom:o + @angle:ce-sy-ce @atom:ce @atom:sy @atom:ce + @angle:ce-sy-o @atom:ce @atom:sy @atom:o + @angle:cf-sy-cf @atom:cf @atom:sy @atom:cf + @angle:cf-sy-o @atom:cf @atom:sy @atom:o + @angle:c-sy-o @atom:c @atom:sy @atom:o + @angle:n2-sy-o @atom:n2 @atom:sy @atom:o + @angle:n3-sy-ne @atom:n3 @atom:sy @atom:ne + @angle:n3-sy-o @atom:n3 @atom:sy @atom:o + @angle:na-sy-na @atom:na @atom:sy @atom:na + @angle:nc-sy-nc @atom:nc @atom:sy @atom:nc + @angle:nd-sy-nd @atom:nd @atom:sy @atom:nd + @angle:ne-sy-ne @atom:ne @atom:sy @atom:ne + @angle:ne-sy-o @atom:ne @atom:sy @atom:o + @angle:nf-sy-nf @atom:nf @atom:sy @atom:nf + @angle:nf-sy-o @atom:nf @atom:sy @atom:o + @angle:nh-sy-o @atom:nh @atom:sy @atom:o + @angle:n-sy-o @atom:n @atom:sy @atom:o + @angle:o-sy-o @atom:o @atom:sy @atom:o + @angle:o-sy-oh @atom:o @atom:sy @atom:oh + @angle:o-sy-os @atom:o @atom:sy @atom:os + @angle:o-sy-pe @atom:o @atom:sy @atom:pe + @angle:o-sy-pf @atom:o @atom:sy @atom:pf + @angle:o-sy-px @atom:o @atom:sy @atom:px + @angle:o-sy-py @atom:o @atom:sy @atom:py + @angle:o-sy-sx @atom:o @atom:sy @atom:sx + @angle:o-sy-sy @atom:o @atom:sy @atom:sy + @angle:py-sy-py @atom:py @atom:sy @atom:py + @angle:sx-sy-sx @atom:sx @atom:sy @atom:sx + @angle:sy-sy-sy @atom:sy @atom:sy @atom:sy + @angle:c2-c1-cf @atom:c2 @atom:c1 @atom:cf + @angle:c3-c1-ch @atom:c3 @atom:c1 @atom:ch + @angle:nf-c1-s @atom:nf @atom:c1 @atom:s + @angle:br-c2-cf @atom:br @atom:c2 @atom:cf + @angle:cd-c2-h4 @atom:cd @atom:c2 @atom:h4 + @angle:cd-c2-nh @atom:cd @atom:c2 @atom:nh + @angle:cd-c2-o @atom:cd @atom:c2 @atom:o + @angle:cf-c2-cl @atom:cf @atom:c2 @atom:cl + @angle:cf-c2-h4 @atom:cf @atom:c2 @atom:h4 + @angle:cf-c2-na @atom:cf @atom:c2 @atom:na + @angle:cf-c2-nh @atom:cf @atom:c2 @atom:nh + @angle:cf-c2-no @atom:cf @atom:c2 @atom:no + @angle:cf-c2-o @atom:cf @atom:c2 @atom:o + @angle:cf-c2-oh @atom:cf @atom:c2 @atom:oh + @angle:cf-c2-os @atom:cf @atom:c2 @atom:os + @angle:h4-c2-nf @atom:h4 @atom:c2 @atom:nf + @angle:h5-c2-nf @atom:h5 @atom:c2 @atom:nf + @angle:nf-c2-os @atom:nf @atom:c2 @atom:os + @angle:nf-c2-ss @atom:nf @atom:c2 @atom:ss + @angle:n-c2-nf @atom:n @atom:c2 @atom:nf + @angle:ca-c3-cf @atom:ca @atom:c3 @atom:cf + @angle:cd-c3-cx @atom:cd @atom:c3 @atom:cx + @angle:c-c3-cf @atom:c @atom:c3 @atom:cf + @angle:cd-c3-hx @atom:cd @atom:c3 @atom:hx + @angle:cd-c3-n2 @atom:cd @atom:c3 @atom:n2 + @angle:cd-c3-n4 @atom:cd @atom:c3 @atom:n4 + @angle:cd-c3-na @atom:cd @atom:c3 @atom:na + @angle:cd-c3-p5 @atom:cd @atom:c3 @atom:p5 + @angle:cf-c3-cf @atom:cf @atom:c3 @atom:cf + @angle:cf-c3-n @atom:cf @atom:c3 @atom:n + @angle:cf-c3-oh @atom:cf @atom:c3 @atom:oh + @angle:cf-c3-os @atom:cf @atom:c3 @atom:os + @angle:cf-c3-ss @atom:cf @atom:c3 @atom:ss + @angle:cd-ca-cq @atom:cd @atom:ca @atom:cq + @angle:cf-ca-na @atom:cf @atom:ca @atom:na + @angle:ch-ca-cq @atom:ch @atom:ca @atom:cq + @angle:cl-ca-cq @atom:cl @atom:ca @atom:cq + @angle:cq-ca-f @atom:cq @atom:ca @atom:f + @angle:cq-ca-h4 @atom:cq @atom:ca @atom:h4 + @angle:cq-ca-na @atom:cq @atom:ca @atom:na + @angle:cq-ca-nb @atom:cq @atom:ca @atom:nb + @angle:cq-ca-nh @atom:cq @atom:ca @atom:nh + @angle:cq-ca-oh @atom:cq @atom:ca @atom:oh + @angle:cq-ca-ss @atom:cq @atom:ca @atom:ss + @angle:ca-c-nf @atom:ca @atom:c @atom:nf + @angle:br-cd-c @atom:br @atom:cd @atom:c + @angle:br-cd-cd @atom:br @atom:cd @atom:cd + @angle:br-cd-cc @atom:br @atom:cd @atom:cc + @angle:br-cd-na @atom:br @atom:cd @atom:na + @angle:ca-cd-cf @atom:ca @atom:cd @atom:cf + @angle:ca-cd-nh @atom:ca @atom:cd @atom:nh + @angle:cd-c-cf @atom:cd @atom:c @atom:cf + @angle:cd-cd-f @atom:cd @atom:cd @atom:f + @angle:c-cd-ch @atom:c @atom:cd @atom:ch + @angle:cd-cd-sy @atom:cd @atom:cd @atom:sy + @angle:cc-cd-f @atom:cc @atom:cd @atom:f + @angle:cc-cd-no @atom:cc @atom:cd @atom:no + @angle:c-cd-f @atom:c @atom:cd @atom:f + @angle:ch-cd-na @atom:ch @atom:cd @atom:na + @angle:ch-cd-ss @atom:ch @atom:cd @atom:ss + @angle:cd-c-h4 @atom:cd @atom:c @atom:h4 + @angle:cl-cd-na @atom:cl @atom:cd @atom:na + @angle:cl-cd-ss @atom:cl @atom:cd @atom:ss + @angle:c-cd-nf @atom:c @atom:cd @atom:nf + @angle:cd-c-s @atom:cd @atom:c @atom:s + @angle:cd-c-ss @atom:cd @atom:c @atom:ss + @angle:cx-cd-nc @atom:cx @atom:cd @atom:nc + @angle:cx-cd-os @atom:cx @atom:cd @atom:os + @angle:cc-c-cx @atom:cc @atom:c @atom:cx + @angle:cc-c-nc @atom:cc @atom:c @atom:nc + @angle:cf-c-cx @atom:cf @atom:c @atom:cx + @angle:cf-c-h4 @atom:cf @atom:c @atom:h4 + @angle:cf-c-ss @atom:cf @atom:c @atom:ss + @angle:na-cd-no @atom:na @atom:cd @atom:no + @angle:na-cd-oh @atom:na @atom:cd @atom:oh + @angle:na-cd-sx @atom:na @atom:cd @atom:sx + @angle:na-cd-sy @atom:na @atom:cd @atom:sy + @angle:nd-cd-no @atom:nd @atom:cd @atom:no + @angle:nc-cd-nc @atom:nc @atom:cd @atom:nc + @angle:nc-cd-nf @atom:nc @atom:cd @atom:nf + @angle:nc-cd-no @atom:nc @atom:cd @atom:no + @angle:nc-cd-sh @atom:nc @atom:cd @atom:sh + @angle:nc-cd-sx @atom:nc @atom:cd @atom:sx + @angle:nc-cd-sy @atom:nc @atom:cd @atom:sy + @angle:nf-cd-ss @atom:nf @atom:cd @atom:ss + @angle:n-cd-n2 @atom:n @atom:cd @atom:n2 + @angle:no-cd-os @atom:no @atom:cd @atom:os + @angle:no-cd-ss @atom:no @atom:cd @atom:ss + @angle:ca-cc-cf @atom:ca @atom:cc @atom:cf + @angle:ca-cc-na @atom:ca @atom:cc @atom:na + @angle:cd-cc-cg @atom:cd @atom:cc @atom:cg + @angle:cd-cc-cy @atom:cd @atom:cc @atom:cy + @angle:cd-cc-nd @atom:cd @atom:cc @atom:nd + @angle:cc-cc-cy @atom:cc @atom:cc @atom:cy + @angle:cf-cc-nc @atom:cf @atom:cc @atom:nc + @angle:c-cc-h4 @atom:c @atom:cc @atom:h4 + @angle:na-cc-nh @atom:na @atom:cc @atom:nh + @angle:na-cc-ss @atom:na @atom:cc @atom:ss + @angle:nc-cc-nc @atom:nc @atom:cc @atom:nc + @angle:oh-cc-os @atom:oh @atom:cc @atom:os + @angle:c2-cf-cl @atom:c2 @atom:cf @atom:cl + @angle:c2-cf-h4 @atom:c2 @atom:cf @atom:h4 + @angle:c2-cf-n1 @atom:c2 @atom:cf @atom:n1 + @angle:c2-cf-na @atom:c2 @atom:cf @atom:na + @angle:c2-cf-oh @atom:c2 @atom:cf @atom:oh + @angle:c3-cf-ch @atom:c3 @atom:cf @atom:ch + @angle:c3-cf-ne @atom:c3 @atom:cf @atom:ne + @angle:c3-cf-nh @atom:c3 @atom:cf @atom:nh + @angle:ca-cf-cf @atom:ca @atom:cf @atom:cf + @angle:ca-cf-cl @atom:ca @atom:cf @atom:cl + @angle:ca-cf-h4 @atom:ca @atom:cf @atom:h4 + @angle:ca-cf-nh @atom:ca @atom:cf @atom:nh + @angle:ca-cf-os @atom:ca @atom:cf @atom:os + @angle:ca-cf-ss @atom:ca @atom:cf @atom:ss + @angle:c-cf-ca @atom:c @atom:cf @atom:ca + @angle:cd-cf-cc @atom:cd @atom:cf @atom:cc + @angle:c-cf-cf @atom:c @atom:cf @atom:cf + @angle:c-cf-ch @atom:c @atom:cf @atom:ch + @angle:cd-cf-h4 @atom:cd @atom:cf @atom:h4 + @angle:c-cf-cl @atom:c @atom:cf @atom:cl + @angle:cd-cf-nh @atom:cd @atom:cf @atom:nh + @angle:c-cf-cy @atom:c @atom:cf @atom:cy + @angle:cf-cf-cl @atom:cf @atom:cf @atom:cl + @angle:cf-cf-oh @atom:cf @atom:cf @atom:oh + @angle:ce-cf-cy @atom:ce @atom:cf @atom:cy + @angle:ce-cf-h4 @atom:ce @atom:cf @atom:h4 + @angle:ce-cf-n1 @atom:ce @atom:cf @atom:n1 + @angle:ce-cf-nh @atom:ce @atom:cf @atom:nh + @angle:ch-cf-n2 @atom:ch @atom:cf @atom:n2 + @angle:c-cf-oh @atom:c @atom:cf @atom:oh + @angle:c-cf-os @atom:c @atom:cf @atom:os + @angle:h4-cf-n1 @atom:h4 @atom:cf @atom:n1 + @angle:h4-cf-nf @atom:h4 @atom:cf @atom:nf + @angle:n2-cf-os @atom:n2 @atom:cf @atom:os + @angle:n2-cf-ss @atom:n2 @atom:cf @atom:ss + @angle:nf-cf-nh @atom:nf @atom:cf @atom:nh + @angle:ne-cf-nh @atom:ne @atom:cf @atom:nh + @angle:ca-ce-cd @atom:ca @atom:ce @atom:cd + @angle:c-ce-cc @atom:c @atom:ce @atom:cc + @angle:c-ce-n2 @atom:c @atom:ce @atom:n2 + @angle:h4-ce-nf @atom:h4 @atom:ce @atom:nf + @angle:c1-ch-cd @atom:c1 @atom:ch @atom:cd + @angle:ch-cg-cg @atom:ch @atom:cg @atom:cg + @angle:n-c-nf @atom:n @atom:c @atom:nf + @angle:ca-cq-na @atom:ca @atom:cq @atom:na + @angle:nb-cq-nb @atom:nb @atom:cq @atom:nb + @angle:cd-cx-hc @atom:cd @atom:cx @atom:hc + @angle:cf-cy-h2 @atom:cf @atom:cy @atom:h2 + @angle:cf-cy-n @atom:cf @atom:cy @atom:n + @angle:cf-cy-ss @atom:cf @atom:cy @atom:ss + @angle:cd-n2-na @atom:cd @atom:n2 @atom:na + @angle:cd-n2-nh @atom:cd @atom:n2 @atom:nh + @angle:c3-n4-cd @atom:c3 @atom:n4 @atom:cd + @angle:c3-na-cq @atom:c3 @atom:na @atom:cq + @angle:ca-na-cq @atom:ca @atom:na @atom:cq + @angle:cd-na-cf @atom:cd @atom:na @atom:cf + @angle:cq-nb-nb @atom:cq @atom:nb @atom:nb + @angle:c-n-cf @atom:c @atom:n @atom:cf + @angle:ca-nc-nd @atom:ca @atom:nc @atom:nd + @angle:c2-nf-ch @atom:c2 @atom:nf @atom:ch + @angle:c-nf-sy @atom:c @atom:nf @atom:sy + @angle:c3-nh-ce @atom:c3 @atom:nh @atom:ce + @angle:cd-nh-n2 @atom:cd @atom:nh @atom:n2 + @angle:cd-nh-sy @atom:cd @atom:nh @atom:sy + @angle:cf-nh-sy @atom:cf @atom:nh @atom:sy + @angle:hn-n-nd @atom:hn @atom:n @atom:nd + @angle:cd-no-o @atom:cd @atom:no @atom:o + @angle:n3-py-nf @atom:n3 @atom:py @atom:nf + @angle:cd-s6-o @atom:cd @atom:s6 @atom:o + @angle:cd-sh-hs @atom:cd @atom:sh @atom:hs + @angle:c-ss-cd @atom:c @atom:ss @atom:cd + @angle:c3-sx-cd @atom:c3 @atom:sx @atom:cd + @angle:cd-sx-o @atom:cd @atom:sx @atom:o + @angle:c3-sy-cd @atom:c3 @atom:sy @atom:cd + @angle:ca-sy-cd @atom:ca @atom:sy @atom:cd + @angle:ca-sy-nf @atom:ca @atom:sy @atom:nf + @angle:cc-sy-nh @atom:cc @atom:sy @atom:nh + @angle:n3-sy-nf @atom:n3 @atom:sy @atom:nf + @angle:cl-py-ne @atom:cl @atom:py @atom:ne + @angle:ce-ce-nh @atom:ce @atom:ce @atom:nh + @angle:cp-ca-os @atom:cp @atom:ca @atom:os + @angle:ca-cc-ca @atom:ca @atom:cc @atom:ca + @angle:h1-c3-i @atom:h1 @atom:c3 @atom:i + @angle:h4-c2-h4 @atom:h4 @atom:c2 @atom:h4 + @angle:c-ss-ss @atom:c @atom:ss @atom:ss + @angle:f-py-ne @atom:f @atom:py @atom:ne + @angle:ca-nh-ce @atom:ca @atom:nh @atom:ce + @angle:ce-cx-cx @atom:ce @atom:cx @atom:cx + @angle:py-ne-py @atom:py @atom:ne @atom:py + @angle:c-cd-ss @atom:c @atom:cd @atom:ss + @angle:s-p5-ss @atom:s @atom:p5 @atom:ss + @angle:cx-c3-nh @atom:cx @atom:c3 @atom:nh + @angle:cc-cc-cl @atom:cc @atom:cc @atom:cl + @angle:cd-na-cx @atom:cd @atom:na @atom:cx + @angle:h1-cy-nh @atom:h1 @atom:cy @atom:nh + @angle:h5-c-os @atom:h5 @atom:c @atom:os + @angle:c2-c3-n4 @atom:c2 @atom:c3 @atom:n4 + @angle:c2-cx-c3 @atom:c2 @atom:cx @atom:c3 + @angle:c3-c2-cx @atom:c3 @atom:c2 @atom:cx + @angle:br-cx-cx @atom:br @atom:cx @atom:cx + @angle:cc-cf-ch @atom:cc @atom:cf @atom:ch + @angle:c3-c3-sx @atom:c3 @atom:c3 @atom:sx + @angle:ca-cy-hc @atom:ca @atom:cy @atom:hc + @angle:cx-c1-n1 @atom:cx @atom:c1 @atom:n1 + @angle:cl-py-cl @atom:cl @atom:py @atom:cl + @angle:c2-ce-cx @atom:c2 @atom:ce @atom:cx + @angle:c3-c-cx @atom:c3 @atom:c @atom:cx + @angle:cf-cc-os @atom:cf @atom:cc @atom:os + @angle:cd-cd-cl @atom:cd @atom:cd @atom:cl + @angle:c3-py-ca @atom:c3 @atom:py @atom:ca + @angle:c3-c3-py @atom:c3 @atom:c3 @atom:py + @angle:c3-py-s @atom:c3 @atom:py @atom:s + @angle:ca-c-cx @atom:ca @atom:c @atom:cx + @angle:ce-ce-os @atom:ce @atom:ce @atom:os + @angle:c3-n4-cx @atom:c3 @atom:n4 @atom:cx + @angle:h4-ce-sy @atom:h4 @atom:ce @atom:sy + @angle:hx-cy-n4 @atom:hx @atom:cy @atom:n4 + @angle:cy-no-o @atom:cy @atom:no @atom:o + @angle:cc-cd-cx @atom:cc @atom:cd @atom:cx + @angle:ca-nb-na @atom:ca @atom:nb @atom:na + @angle:cl-c3-cy @atom:cl @atom:c3 @atom:cy + @angle:f-c2-h4 @atom:f @atom:c2 @atom:h4 + @angle:ca-py-s @atom:ca @atom:py @atom:s + @angle:cl-c3-cx @atom:cl @atom:c3 @atom:cx + @angle:ca-nh-cy @atom:ca @atom:nh @atom:cy + @angle:cy-cy-no @atom:cy @atom:cy @atom:no + @angle:ce-n1-n1 @atom:ce @atom:n1 @atom:n1 + @angle:cy-cy-hx @atom:cy @atom:cy @atom:hx + @angle:ce-n-hn @atom:ce @atom:n @atom:hn + @angle:c3-cx-cu @atom:c3 @atom:cx @atom:cu + @angle:cf-cf-ne @atom:cf @atom:cf @atom:ne + @angle:f-p5-na @atom:f @atom:p5 @atom:na + @angle:h4-ce-nh @atom:h4 @atom:ce @atom:nh + @angle:ne-c-s @atom:ne @atom:c @atom:s + @angle:ca-os-py @atom:ca @atom:os @atom:py + @angle:cf-ce-cl @atom:cf @atom:ce @atom:cl + @angle:cy-cy-n4 @atom:cy @atom:cy @atom:n4 + @angle:na-cc-sh @atom:na @atom:cc @atom:sh + @angle:nb-na-o @atom:nb @atom:na @atom:o + @angle:c-cx-n3 @atom:c @atom:cx @atom:n3 + @angle:cd-cy-hc @atom:cd @atom:cy @atom:hc + @angle:f-c3-no @atom:f @atom:c3 @atom:no + @angle:ce-cd-na @atom:ce @atom:cd @atom:na + @angle:cq-cp-cq @atom:cq @atom:cp @atom:cq + @angle:os-py-s @atom:os @atom:py @atom:s + @angle:c-c3-cy @atom:c @atom:c3 @atom:cy + @angle:cy-c2-ha @atom:cy @atom:c2 @atom:ha + @angle:cp-cq-cp @atom:cp @atom:cq @atom:cp + @angle:cx-cu-cx @atom:cx @atom:cu @atom:cx + @angle:cu-c2-ha @atom:cu @atom:c2 @atom:ha + @angle:cd-ce-cg @atom:cd @atom:ce @atom:cg + @angle:cf-ne-ne @atom:cf @atom:ne @atom:ne + @angle:c3-c2-no @atom:c3 @atom:c2 @atom:no + @angle:f-cy-f @atom:f @atom:cy @atom:f + @angle:c2-cy-hc @atom:c2 @atom:cy @atom:hc + @angle:c3-c2-cy @atom:c3 @atom:c2 @atom:cy + @angle:c-ce-h4 @atom:c @atom:ce @atom:h4 + @angle:cf-cc-n @atom:cf @atom:cc @atom:n + @angle:cd-cc-i @atom:cd @atom:cc @atom:i + @angle:ce-cf-cl @atom:ce @atom:cf @atom:cl + @angle:cl-c3-p5 @atom:cl @atom:c3 @atom:p5 + @angle:c2-c3-no @atom:c2 @atom:c3 @atom:no + @angle:ce-nf-nf @atom:ce @atom:nf @atom:nf + @angle:c1-c3-cx @atom:c1 @atom:c3 @atom:cx + @angle:ce-c3-h2 @atom:ce @atom:c3 @atom:h2 + @angle:na-cd-na @atom:na @atom:cd @atom:na + @angle:cx-cx-n4 @atom:cx @atom:cx @atom:n4 + @angle:c1-cx-hc @atom:c1 @atom:cx @atom:hc + @angle:cg-ca-nb @atom:cg @atom:ca @atom:nb + @angle:ce-c2-f @atom:ce @atom:c2 @atom:f + @angle:cp-ca-cq @atom:cp @atom:ca @atom:cq + @angle:cl-py-nf @atom:cl @atom:py @atom:nf + @angle:ca-c3-cy @atom:ca @atom:c3 @atom:cy + @angle:ch-cd-nd @atom:ch @atom:cd @atom:nd + @angle:h1-cy-ss @atom:h1 @atom:cy @atom:ss + @angle:h5-cc-n2 @atom:h5 @atom:cc @atom:n2 + @angle:cc-na-cy @atom:cc @atom:na @atom:cy + @angle:c-c3-no @atom:c @atom:c3 @atom:no + @angle:c3-py-c3 @atom:c3 @atom:py @atom:c3 + @angle:hx-c3-n3 @atom:hx @atom:c3 @atom:n3 + @angle:cf-cf-nh @atom:cf @atom:cf @atom:nh + @angle:c3-n3-py @atom:c3 @atom:n3 @atom:py + @angle:h5-c2-os @atom:h5 @atom:c2 @atom:os + @angle:cc-c3-ce @atom:cc @atom:c3 @atom:ce + @angle:n4-c3-p5 @atom:n4 @atom:c3 @atom:p5 + @angle:ne-cd-ss @atom:ne @atom:cd @atom:ss + @angle:na-cd-ne @atom:na @atom:cd @atom:ne + @angle:cl-c3-h3 @atom:cl @atom:c3 @atom:h3 + @angle:h5-c-s @atom:h5 @atom:c @atom:s + @angle:cf-ce-ss @atom:cf @atom:ce @atom:ss + @angle:c3-c2-f @atom:c3 @atom:c2 @atom:f + @angle:h4-c2-oh @atom:h4 @atom:c2 @atom:oh + @angle:ne-ce-nf @atom:ne @atom:ce @atom:nf + @angle:cc-n-cd @atom:cc @atom:n @atom:cd + @angle:f-py-f @atom:f @atom:py @atom:f + @angle:n-cc-os @atom:n @atom:cc @atom:os + @angle:cq-cp-nb @atom:cq @atom:cp @atom:nb + @angle:c-c-s @atom:c @atom:c @atom:s + @angle:cf-ce-os @atom:cf @atom:ce @atom:os + @angle:br-ce-c2 @atom:br @atom:ce @atom:c2 + @angle:cp-nb-na @atom:cp @atom:nb @atom:na + @angle:n-s6-oh @atom:n @atom:s6 @atom:oh + @angle:cd-c3-h2 @atom:cd @atom:c3 @atom:h2 + @angle:nb-ca-sy @atom:nb @atom:ca @atom:sy + @angle:na-sy-o @atom:na @atom:sy @atom:o + @angle:hx-cx-hx @atom:hx @atom:cx @atom:hx + @angle:cd-cf-ne @atom:cd @atom:cf @atom:ne + @angle:h5-c-oh @atom:h5 @atom:c @atom:oh + @angle:cy-n-cy @atom:cy @atom:n @atom:cy + @angle:br-c3-no @atom:br @atom:c3 @atom:no + @angle:c2-ss-s4 @atom:c2 @atom:ss @atom:s4 + @angle:c3-nh-o @atom:c3 @atom:nh @atom:o + @angle:br-cc-ss @atom:br @atom:cc @atom:ss + @angle:c-ce-ss @atom:c @atom:ce @atom:ss + @angle:c3-n-n3 @atom:c3 @atom:n @atom:n3 + @angle:h5-ca-na @atom:h5 @atom:ca @atom:na + @angle:n2-nh-oh @atom:n2 @atom:nh @atom:oh + @angle:c2-c3-p5 @atom:c2 @atom:c3 @atom:p5 + @angle:c3-cx-nh @atom:c3 @atom:cx @atom:nh + @angle:c2-cc-ss @atom:c2 @atom:cc @atom:ss + @angle:c-ca-na @atom:c @atom:ca @atom:na + @angle:cl-c2-n2 @atom:cl @atom:c2 @atom:n2 + @angle:n2-s4-ne @atom:n2 @atom:s4 @atom:ne + @angle:nc-c-s @atom:nc @atom:c @atom:s + @angle:o-sy-ss @atom:o @atom:sy @atom:ss + @angle:c2-ce-ss @atom:c2 @atom:ce @atom:ss + @angle:c3-cx-ca @atom:c3 @atom:cx @atom:ca + @angle:cc-cc-nf @atom:cc @atom:cc @atom:nf + @angle:ca-nd-cd @atom:ca @atom:nd @atom:cd + @angle:cc-n2-oh @atom:cc @atom:n2 @atom:oh + @angle:ca-os-sy @atom:ca @atom:os @atom:sy + @angle:hx-c3-p5 @atom:hx @atom:c3 @atom:p5 + @angle:ca-ce-n @atom:ca @atom:ce @atom:n + @angle:h4-ce-sx @atom:h4 @atom:ce @atom:sx + @angle:c3-ce-ne @atom:c3 @atom:ce @atom:ne + @angle:c1-n1-ce @atom:c1 @atom:n1 @atom:ce + @angle:c3-n2-cd @atom:c3 @atom:n2 @atom:cd + @angle:cc-c3-h2 @atom:cc @atom:c3 @atom:h2 + @angle:ca-ce-cg @atom:ca @atom:ce @atom:cg + @angle:c2-cc-na @atom:c2 @atom:cc @atom:na + @angle:ca-c3-s4 @atom:ca @atom:c3 @atom:s4 + @angle:n2-cf-nf @atom:n2 @atom:cf @atom:nf + @angle:ce-cf-ss @atom:ce @atom:cf @atom:ss + @angle:c3-cx-ss @atom:c3 @atom:cx @atom:ss + @angle:nh-ce-nh @atom:nh @atom:ce @atom:nh + @angle:cd-c-ne @atom:cd @atom:c @atom:ne + @angle:na-c3-ss @atom:na @atom:c3 @atom:ss + @angle:cf-cf-os @atom:cf @atom:cf @atom:os + @angle:cx-c3-h2 @atom:cx @atom:c3 @atom:h2 + @angle:cv-ss-cy @atom:cv @atom:ss @atom:cy + @angle:ss-cy-ss @atom:ss @atom:cy @atom:ss + @angle:ce-cx-os @atom:ce @atom:cx @atom:os + @angle:nb-ca-ne @atom:nb @atom:ca @atom:ne + @angle:br-ca-nb @atom:br @atom:ca @atom:nb + @angle:c3-nh-os @atom:c3 @atom:nh @atom:os + @angle:c2-nh-p5 @atom:c2 @atom:nh @atom:p5 + @angle:br-ca-cp @atom:br @atom:ca @atom:cp + @angle:cc-ce-cc @atom:cc @atom:ce @atom:cc + @angle:c3-nh-s6 @atom:c3 @atom:nh @atom:s6 + @angle:cx-c3-na @atom:cx @atom:c3 @atom:na + @angle:ca-os-p3 @atom:ca @atom:os @atom:p3 + @angle:ce-cf-sy @atom:ce @atom:cf @atom:sy + @angle:ca-n2-n1 @atom:ca @atom:n2 @atom:n1 + @angle:cd-cd-no @atom:cd @atom:cd @atom:no + @angle:na-n2-os @atom:na @atom:n2 @atom:os + @angle:ce-c3-f @atom:ce @atom:c3 @atom:f + @angle:cx-cc-na @atom:cx @atom:cc @atom:na + @angle:n-n2-na @atom:n @atom:n2 @atom:na + @angle:c3-cf-cc @atom:c3 @atom:cf @atom:cc + @angle:ca-na-cy @atom:ca @atom:na @atom:cy + @angle:h1-c3-py @atom:h1 @atom:c3 @atom:py + @angle:cy-s6-cy @atom:cy @atom:s6 @atom:cy + @angle:ce-ce-s4 @atom:ce @atom:ce @atom:s4 + @angle:c3-p3-cy @atom:c3 @atom:p3 @atom:cy + @angle:h2-cx-os @atom:h2 @atom:cx @atom:os + @angle:c-c-ce @atom:c @atom:c @atom:ce + @angle:ce-cy-h1 @atom:ce @atom:cy @atom:h1 + @angle:cx-c3-ss @atom:cx @atom:c3 @atom:ss + @angle:cg-ce-ss @atom:cg @atom:ce @atom:ss + @angle:br-cy-cy @atom:br @atom:cy @atom:cy + @angle:c-cy-cl @atom:c @atom:cy @atom:cl + @angle:c-cx-n @atom:c @atom:cx @atom:n + @angle:br-c3-f @atom:br @atom:c3 @atom:f + @angle:c3-n4-cy @atom:c3 @atom:n4 @atom:cy + @angle:ce-cv-ss @atom:ce @atom:cv @atom:ss + @angle:cc-cd-i @atom:cc @atom:cd @atom:i + @angle:c2-ss-ca @atom:c2 @atom:ss @atom:ca + @angle:c-cx-ce @atom:c @atom:cx @atom:ce + @angle:cy-nh-cy @atom:cy @atom:nh @atom:cy + @angle:cx-c-h4 @atom:cx @atom:c @atom:h4 + @angle:c-n4-c3 @atom:c @atom:n4 @atom:c3 + @angle:f-cy-py @atom:f @atom:cy @atom:py + @angle:n2-c3-ss @atom:n2 @atom:c3 @atom:ss + @angle:c3-ss-cf @atom:c3 @atom:ss @atom:cf + @angle:ce-cy-hc @atom:ce @atom:cy @atom:hc + @angle:br-cc-nc @atom:br @atom:cc @atom:nc + @angle:h3-c3-n @atom:h3 @atom:c3 @atom:n + @angle:ca-ne-cd @atom:ca @atom:ne @atom:cd + @angle:cx-n-cy @atom:cx @atom:n @atom:cy + @angle:cl-c3-s4 @atom:cl @atom:c3 @atom:s4 + @angle:cp-cq-nb @atom:cp @atom:cq @atom:nb + @angle:cc-cd-o @atom:cc @atom:cd @atom:o + @angle:hx-cy-hx @atom:hx @atom:cy @atom:hx + @angle:cc-na-sy @atom:cc @atom:na @atom:sy + @angle:h1-cy-na @atom:h1 @atom:cy @atom:na + @angle:h4-cf-sy @atom:h4 @atom:cf @atom:sy + @angle:c-p5-c3 @atom:c @atom:p5 @atom:c3 + @angle:ca-c-nc @atom:ca @atom:c @atom:nc + @angle:c3-os-sy @atom:c3 @atom:os @atom:sy + @angle:cd-ne-sy @atom:cd @atom:ne @atom:sy + @angle:cx-ca-nb @atom:cx @atom:ca @atom:nb + @angle:nc-ss-ss @atom:nc @atom:ss @atom:ss + @angle:hp-p5-os @atom:hp @atom:p5 @atom:os + @angle:ca-n-oh @atom:ca @atom:n @atom:oh + @angle:c3-s6-ne @atom:c3 @atom:s6 @atom:ne + @angle:c1-cx-h1 @atom:c1 @atom:cx @atom:h1 + @angle:na-c3-oh @atom:na @atom:c3 @atom:oh + @angle:n-nc-nd @atom:n @atom:nc @atom:nd + @angle:c3-na-nb @atom:c3 @atom:na @atom:nb + @angle:ne-c-os @atom:ne @atom:c @atom:os + @angle:br-ce-ce @atom:br @atom:ce @atom:ce + @angle:cc-c2-oh @atom:cc @atom:c2 @atom:oh + @angle:c1-cx-os @atom:c1 @atom:cx @atom:os + @angle:nc-cc-os @atom:nc @atom:cc @atom:os + @angle:br-ce-cf @atom:br @atom:ce @atom:cf + @angle:cy-c3-f @atom:cy @atom:c3 @atom:f + @angle:h5-ce-ne @atom:h5 @atom:ce @atom:ne + @angle:n3-py-n3 @atom:n3 @atom:py @atom:n3 + @angle:br-cc-ca @atom:br @atom:cc @atom:ca + @angle:f-c3-na @atom:f @atom:c3 @atom:na + @angle:cc-c3-s4 @atom:cc @atom:c3 @atom:s4 + @angle:ce-cf-sx @atom:ce @atom:cf @atom:sx + @angle:cc-cc-i @atom:cc @atom:cc @atom:i + @angle:c-cg-ch @atom:c @atom:cg @atom:ch + @angle:ce-c3-hx @atom:ce @atom:c3 @atom:hx + @angle:cd-na-cy @atom:cd @atom:na @atom:cy + @angle:br-c3-c2 @atom:br @atom:c3 @atom:c2 + @angle:ce-ce-cg @atom:ce @atom:ce @atom:cg + @angle:cl-cd-nd @atom:cl @atom:cd @atom:nd + @angle:n-ca-na @atom:n @atom:ca @atom:na + @angle:cx-cd-nd @atom:cx @atom:cd @atom:nd + @angle:cl-p5-os @atom:cl @atom:p5 @atom:os + @angle:cx-ss-cy @atom:cx @atom:ss @atom:cy + @angle:cc-cg-ch @atom:cc @atom:cg @atom:ch + @angle:cc-sy-oh @atom:cc @atom:sy @atom:oh + @angle:cq-ca-os @atom:cq @atom:ca @atom:os + @angle:ca-cd-ca @atom:ca @atom:cd @atom:ca + @angle:f-py-nf @atom:f @atom:py @atom:nf + @angle:ca-nh-cf @atom:ca @atom:nh @atom:cf + @angle:cf-cx-cx @atom:cf @atom:cx @atom:cx + @angle:py-nf-py @atom:py @atom:nf @atom:py + @angle:c-cc-ss @atom:c @atom:cc @atom:ss + @angle:cc-na-cx @atom:cc @atom:na @atom:cx + @angle:c2-cf-cx @atom:c2 @atom:cf @atom:cx + @angle:ce-cd-os @atom:ce @atom:cd @atom:os + @angle:cd-cc-cx @atom:cd @atom:cc @atom:cx + @angle:cf-n1-n1 @atom:cf @atom:n1 @atom:n1 + @angle:cf-n-hn @atom:cf @atom:n @atom:hn + @angle:ce-ce-nf @atom:ce @atom:ce @atom:nf + @angle:cf-no-o @atom:cf @atom:no @atom:o + @angle:h4-cf-nh @atom:h4 @atom:cf @atom:nh + @angle:nf-c-s @atom:nf @atom:c @atom:s + @angle:na-cd-sh @atom:na @atom:cd @atom:sh + @angle:cc-cy-hc @atom:cc @atom:cy @atom:hc + @angle:cf-cc-na @atom:cf @atom:cc @atom:na + @angle:c-cf-h4 @atom:c @atom:cf @atom:h4 + @angle:ce-cd-n @atom:ce @atom:cd @atom:n + @angle:cf-c3-h2 @atom:cf @atom:c3 @atom:h2 + @angle:na-cc-na @atom:na @atom:cc @atom:na + @angle:ch-ca-nb @atom:ch @atom:ca @atom:nb + @angle:cf-c2-f @atom:cf @atom:c2 @atom:f + @angle:cg-cc-nc @atom:cg @atom:cc @atom:nc + @angle:h5-cd-n2 @atom:h5 @atom:cd @atom:n2 + @angle:cd-c3-cf @atom:cd @atom:c3 @atom:cf + @angle:nf-cc-ss @atom:nf @atom:cc @atom:ss + @angle:na-cc-nf @atom:na @atom:cc @atom:nf + @angle:nf-cf-ne @atom:nf @atom:cf @atom:ne + @angle:n-cd-os @atom:n @atom:cd @atom:os + @angle:ce-cf-os @atom:ce @atom:cf @atom:os + @angle:br-cf-c2 @atom:br @atom:cf @atom:c2 + @angle:cq-nb-na @atom:cq @atom:nb @atom:na + @angle:cc-ce-nf @atom:cc @atom:ce @atom:nf + @angle:cf-s4-ss @atom:cf @atom:s4 @atom:ss + @angle:br-cd-ss @atom:br @atom:cd @atom:ss + @angle:c-cf-ss @atom:c @atom:cf @atom:ss + @angle:c2-cd-ss @atom:c2 @atom:cd @atom:ss + @angle:n2-s4-nf @atom:n2 @atom:s4 @atom:nf + @angle:nd-c-s @atom:nd @atom:c @atom:s + @angle:c2-cf-ss @atom:c2 @atom:cf @atom:ss + @angle:cd-cd-ne @atom:cd @atom:cd @atom:ne + @angle:ca-nc-cc @atom:ca @atom:nc @atom:cc + @angle:cd-n2-oh @atom:cd @atom:n2 @atom:oh + @angle:ca-cf-n @atom:ca @atom:cf @atom:n + @angle:h4-cf-sx @atom:h4 @atom:cf @atom:sx + @angle:c3-cf-nf @atom:c3 @atom:cf @atom:nf + @angle:c1-n1-cf @atom:c1 @atom:n1 @atom:cf + @angle:c3-n2-cc @atom:c3 @atom:n2 @atom:cc + @angle:ca-cf-ch @atom:ca @atom:cf @atom:ch + @angle:c2-cd-na @atom:c2 @atom:cd @atom:na + @angle:n2-ce-ne @atom:n2 @atom:ce @atom:ne + @angle:nh-cf-nh @atom:nh @atom:cf @atom:nh + @angle:cc-c-nf @atom:cc @atom:c @atom:nf + @angle:cf-cx-os @atom:cf @atom:cx @atom:os + @angle:nb-ca-nf @atom:nb @atom:ca @atom:nf + @angle:br-ca-cq @atom:br @atom:ca @atom:cq + @angle:cd-cf-cd @atom:cd @atom:cf @atom:cd + @angle:cf-ce-sy @atom:cf @atom:ce @atom:sy + @angle:cc-cc-no @atom:cc @atom:cc @atom:no + @angle:cf-c3-f @atom:cf @atom:c3 @atom:f + @angle:cx-cd-na @atom:cx @atom:cd @atom:na + @angle:c3-ce-cd @atom:c3 @atom:ce @atom:cd + @angle:cf-cf-s4 @atom:cf @atom:cf @atom:s4 + @angle:c-c-cf @atom:c @atom:c @atom:cf + @angle:cf-cy-h1 @atom:cf @atom:cy @atom:h1 + @angle:ch-cf-ss @atom:ch @atom:cf @atom:ss + @angle:cf-cv-ss @atom:cf @atom:cv @atom:ss + @angle:c-cx-cf @atom:c @atom:cx @atom:cf + @angle:c3-ss-ce @atom:c3 @atom:ss @atom:ce + @angle:cf-cy-hc @atom:cf @atom:cy @atom:hc + @angle:br-cd-nd @atom:br @atom:cd @atom:nd + @angle:ca-nf-cc @atom:ca @atom:nf @atom:cc + @angle:cd-cc-o @atom:cd @atom:cc @atom:o + @angle:cd-na-sy @atom:cd @atom:na @atom:sy + @angle:ca-c-nd @atom:ca @atom:c @atom:nd + @angle:cc-nf-sy @atom:cc @atom:nf @atom:sy + @angle:nd-ss-ss @atom:nd @atom:ss @atom:ss + @angle:c3-s6-nf @atom:c3 @atom:s6 @atom:nf + @angle:n-nd-nc @atom:n @atom:nd @atom:nc + @angle:nf-c-os @atom:nf @atom:c @atom:os + @angle:br-cf-cf @atom:br @atom:cf @atom:cf + @angle:cd-c2-oh @atom:cd @atom:c2 @atom:oh + @angle:nd-cd-os @atom:nd @atom:cd @atom:os + @angle:br-cf-ce @atom:br @atom:cf @atom:ce + @angle:h5-cf-nf @atom:h5 @atom:cf @atom:nf + @angle:br-cd-ca @atom:br @atom:cd @atom:ca + @angle:cd-c3-s4 @atom:cd @atom:c3 @atom:s4 + @angle:cf-ce-sx @atom:cf @atom:ce @atom:sx + @angle:cd-cd-i @atom:cd @atom:cd @atom:i + @angle:c-ch-cg @atom:c @atom:ch @atom:cg + @angle:cf-c3-hx @atom:cf @atom:c3 @atom:hx + @angle:cf-cf-ch @atom:cf @atom:cf @atom:ch + @angle:cl-cc-nc @atom:cl @atom:cc @atom:nc + @angle:cx-cc-nc @atom:cx @atom:cc @atom:nc + @angle:cd-ch-cg @atom:cd @atom:ch @atom:cg + @angle:cd-sy-oh @atom:cd @atom:sy @atom:oh + } # (end of Angles By Type) + + write_once("In Settings") { + dihedral_coeff @dihedral:X-c-c-X fourier 1 0.3 2 180.0 + dihedral_coeff @dihedral:X-c-c1-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c-cg-X fourier 1 0.0 2 180.0 # same as X-c-c1-X + dihedral_coeff @dihedral:X-c-ch-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c-c2-X fourier 1 2.175 2 180.0 # intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-c-cu-X fourier 1 2.175 2 180.0 # intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-c-cv-X fourier 1 2.175 2 180.0 # intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-c-ce-X fourier 1 2.175 2 180.0 # intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-c-cf-X fourier 1 2.175 2 180.0 # intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-c-c3-X fourier 1 0.0 2 180.0 # JCC, 7, (1986), 230 + dihedral_coeff @dihedral:X-c-cx-X fourier 1 0.0 2 180.0 # JCC, 7, (1986), 230 + dihedral_coeff @dihedral:X-c-cy-X fourier 1 0.0 2 180.0 # JCC, 7, (1986), 230 + dihedral_coeff @dihedral:X-c-ca-X fourier 1 1.0 2 180.0 # optimized by Junmei Wang, Jan-2013 + dihedral_coeff @dihedral:X-c-cc-X fourier 1 2.875 2 180.0 # statistic value + dihedral_coeff @dihedral:X-c-cd-X fourier 1 2.875 2 180.0 # statistic value + dihedral_coeff @dihedral:X-c-n-X fourier 1 2.5 2 180.0 # AA,NMA (no c-n3, c-n4, c-nh) + dihedral_coeff @dihedral:X-c-n2-X fourier 1 4.15 2 180.0 # double bond, same as X-c2-n2-X + dihedral_coeff @dihedral:X-c-nc-X fourier 1 4.0 2 180.0 # same as X-C-NC-X + dihedral_coeff @dihedral:X-c-nd-X fourier 1 4.0 2 180.0 # same as X-C-NC-X + dihedral_coeff @dihedral:X-c-ne-X fourier 1 0.2 2 180.0 # single bond + dihedral_coeff @dihedral:X-c-nf-X fourier 1 0.2 2 180.0 # single bond + dihedral_coeff @dihedral:X-c-na-X fourier 2 1.45 2 180.0 0.35 4 180.0 + dihedral_coeff @dihedral:X-c-no-X fourier 1 0.45 2 180.0 + dihedral_coeff @dihedral:X-c-oh-X fourier 1 2.3 2 180.0 # Junmei et al, 1999 + dihedral_coeff @dihedral:X-c-os-X fourier 1 2.7 2 180.0 # Junmei et al, 1999 + dihedral_coeff @dihedral:X-c-p2-X fourier 1 6.65 2 180.0 # double bond, same as X-c2-p2-X + dihedral_coeff @dihedral:X-c-pc-X fourier 1 2.0 2 180.0 # estimated + dihedral_coeff @dihedral:X-c-pd-X fourier 1 2.0 2 180.0 # estimated + dihedral_coeff @dihedral:X-c-pe-X fourier 1 0.0 2 180.0 # single bond + dihedral_coeff @dihedral:X-c-pf-X fourier 1 0.0 2 180.0 # single bond + dihedral_coeff @dihedral:X-c-p3-X fourier 1 1.55 2 180.0 + dihedral_coeff @dihedral:X-c-p4-X fourier 1 1.35 2 180.0 + dihedral_coeff @dihedral:X-c-px-X fourier 1 1.35 2 180.0 + dihedral_coeff @dihedral:X-c-p5-X fourier 1 1.0 2 0.0 + dihedral_coeff @dihedral:X-c-py-X fourier 1 1.0 2 0.0 + dihedral_coeff @dihedral:X-c-sh-X fourier 1 2.25 2 180.0 + dihedral_coeff @dihedral:X-c-ss-X fourier 1 3.1 2 180.0 + dihedral_coeff @dihedral:X-c-s4-X fourier 1 0.2 2 180.0 + dihedral_coeff @dihedral:X-c-sx-X fourier 1 0.2 2 180.0 + dihedral_coeff @dihedral:X-c-s6-X fourier 1 0.5 2 0.0 + dihedral_coeff @dihedral:X-c-sy-X fourier 1 0.5 2 0.0 + dihedral_coeff @dihedral:X-c1-c1-X fourier 1 0.0 2 180.0 # for both triple and single bonds + dihedral_coeff @dihedral:X-c1-cg-X fourier 1 0.0 2 180.0 # for both triple and single bonds + dihedral_coeff @dihedral:X-c1-ch-X fourier 1 0.0 2 180.0 # for both triple and single bonds + dihedral_coeff @dihedral:X-cg-cg-X fourier 1 0.0 2 180.0 # for both triple and single bonds + dihedral_coeff @dihedral:X-ch-ch-X fourier 1 0.0 2 180.0 # for both triple and single bonds + dihedral_coeff @dihedral:X-cg-ch-X fourier 1 0.0 2 180.0 # for both triple and single bonds + dihedral_coeff @dihedral:X-c1-c2-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-c3-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-ca-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-cc-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-cd-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-ce-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-cf-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-cu-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-cv-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-cx-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-cy-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-n-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-n2-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-n3-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-n4-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-na-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-nb-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-nc-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-nd-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-ne-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-nf-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-nh-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-no-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-oh-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-os-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-p2-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-pb-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-pc-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-pd-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-pe-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-pf-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-p3-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-p4-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-px-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-p5-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-py-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-s2-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-sh-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-ss-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-s4-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-sx-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-s6-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c1-sy-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-c2-c2-X fourier 1 6.65 2 180.0 # c2=c2 double bond, intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-c2-ce-X fourier 1 6.65 2 180.0 # c2=c2 double bond, intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-c2-cf-X fourier 1 6.65 2 180.0 # c2=c2 double bond, intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-ce-cf-X fourier 1 6.65 2 180.0 # c2=c2 double bond, intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-ce-ce-X fourier 1 1.0 2 180.0 # c2-c2 single bond, parm99 + dihedral_coeff @dihedral:X-cf-cf-X fourier 1 1.0 2 180.0 # c2-c2 single bond, parm99 + dihedral_coeff @dihedral:X-cc-cd-X fourier 1 4.0 2 180.0 # statistic value of parm94 + dihedral_coeff @dihedral:X-cc-cc-X fourier 1 4.0 2 180.0 # statistic value of parm94 + dihedral_coeff @dihedral:X-cd-cd-X fourier 1 4.0 2 180.0 # statistic value of parm94 + dihedral_coeff @dihedral:X-c2-c3-X fourier 1 0.0 2 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c2-ca-X fourier 1 0.7 2 180.0 # optimized by Junmei Wang, March 2013 + dihedral_coeff @dihedral:X-c2-n-X fourier 1 0.65 2 180.0 + dihedral_coeff @dihedral:X-c2-n2-X fourier 1 4.15 2 180.0 # double bond, parm99 + dihedral_coeff @dihedral:X-c2-ne-X fourier 1 4.15 2 180.0 # double bond, parm99 + dihedral_coeff @dihedral:X-c2-nf-X fourier 1 4.15 2 180.0 # double bond, parm99 + dihedral_coeff @dihedral:X-ce-ne-X fourier 1 0.8 2 180.0 # single bond + dihedral_coeff @dihedral:X-cf-nf-X fourier 1 0.8 2 180.0 # single bond + dihedral_coeff @dihedral:X-c2-nc-X fourier 1 4.75 2 180.0 # statistic value from parm94 + dihedral_coeff @dihedral:X-c2-nd-X fourier 1 4.75 2 180.0 # statistic value from parm94 + dihedral_coeff @dihedral:X-cc-nd-X fourier 1 4.75 2 180.0 # statistic value from parm94 + dihedral_coeff @dihedral:X-cd-nc-X fourier 1 4.75 2 180.0 # statistiv value from parm94 + dihedral_coeff @dihedral:X-cc-nc-X fourier 1 4.75 2 180.0 # statistic value from parm94 + dihedral_coeff @dihedral:X-cd-nd-X fourier 1 4.75 2 180.0 # statistiv value from parm94 + dihedral_coeff @dihedral:X-c2-n3-X fourier 1 0.3 2 180.0 # intrpol. + dihedral_coeff @dihedral:X-c2-n4-X fourier 1 0.0 3 180.0 # intrpol. + dihedral_coeff @dihedral:X-c2-na-X fourier 1 0.625 2 180.0 + dihedral_coeff @dihedral:X-cc-na-X fourier 1 1.7 2 180.0 # statistic value from parm94 + dihedral_coeff @dihedral:X-cd-na-X fourier 1 1.7 2 180.0 # statistic value from parm94 + dihedral_coeff @dihedral:X-c2-nh-X fourier 1 0.675 2 180.0 + dihedral_coeff @dihedral:X-c2-no-X fourier 1 0.75 2 180.0 + dihedral_coeff @dihedral:X-c2-oh-X fourier 1 1.05 2 180.0 # parm99 + dihedral_coeff @dihedral:X-c2-os-X fourier 1 1.05 2 180.0 # parm99 + dihedral_coeff @dihedral:X-c2-p2-X fourier 1 6.65 2 180.0 # double bond + dihedral_coeff @dihedral:X-c2-pe-X fourier 1 6.65 2 180.0 # double bond + dihedral_coeff @dihedral:X-c2-pf-X fourier 1 6.65 2 180.0 # double bond + dihedral_coeff @dihedral:X-ce-pf-X fourier 1 6.65 2 180.0 # double bond + dihedral_coeff @dihedral:X-ce-pe-X fourier 1 0.95 2 180.0 # single bond + dihedral_coeff @dihedral:X-cf-pf-X fourier 1 0.95 2 180.0 # single bond + dihedral_coeff @dihedral:X-c2-pc-X fourier 1 4.75 2 180.0 # estimated + dihedral_coeff @dihedral:X-c2-pd-X fourier 1 4.75 2 180.0 # estimated + dihedral_coeff @dihedral:X-cc-pc-X fourier 1 4.75 2 180.0 # estimated + dihedral_coeff @dihedral:X-cc-pd-X fourier 1 4.75 2 180.0 # estimated + dihedral_coeff @dihedral:X-cd-pc-X fourier 1 4.75 2 180.0 # estimated + dihedral_coeff @dihedral:X-cd-pd-X fourier 1 4.75 2 180.0 # estimated + dihedral_coeff @dihedral:X-c2-p3-X fourier 1 0.45 2 180.0 + dihedral_coeff @dihedral:X-c2-p4-X fourier 1 6.65 2 180.0 # c2=p4 double bond !!! + dihedral_coeff @dihedral:X-ce-p4-X fourier 1 6.65 2 180.0 # c2=p4 double bond !!! + dihedral_coeff @dihedral:X-cf-p4-X fourier 1 6.65 2 180.0 # c2=p4 double bond !!! + dihedral_coeff @dihedral:X-c2-px-X fourier 1 0.325 2 0.0 + dihedral_coeff @dihedral:X-ce-px-X fourier 1 0.325 2 0.0 + dihedral_coeff @dihedral:X-cf-px-X fourier 1 0.325 2 0.0 + dihedral_coeff @dihedral:X-c2-p5-X fourier 1 6.65 2 180.0 # c2=p5 double bond !!! + dihedral_coeff @dihedral:X-ce-p5-X fourier 1 6.65 2 180.0 # c2=p5 double bond !!! + dihedral_coeff @dihedral:X-cf-p5-X fourier 1 6.65 2 180.0 # c2=p5 double bond !!! + dihedral_coeff @dihedral:X-c2-py-X fourier 1 1.43333333333 2 180.0 + dihedral_coeff @dihedral:X-ce-py-X fourier 1 1.43333333333 2 180.0 + dihedral_coeff @dihedral:X-cf-py-X fourier 1 1.43333333333 2 180.0 + dihedral_coeff @dihedral:X-c2-sh-X fourier 1 0.5 2 180.0 + dihedral_coeff @dihedral:X-c2-ss-X fourier 1 1.1 2 180.0 + dihedral_coeff @dihedral:X-c2-s4-X fourier 1 6.65 2 180.0 # c2=s4 double bond !!! + dihedral_coeff @dihedral:X-ce-s4-X fourier 1 6.65 2 180.0 # c2=s4 double bond !!! + dihedral_coeff @dihedral:X-cf-s4-X fourier 1 6.65 2 180.0 # c2=s4 double bond !!! + dihedral_coeff @dihedral:X-c2-sx-X fourier 1 0.6 2 0.0 + dihedral_coeff @dihedral:X-ce-sx-X fourier 1 0.6 2 0.0 + dihedral_coeff @dihedral:X-cf-sx-X fourier 1 0.6 2 0.0 + dihedral_coeff @dihedral:X-c2-s6-X fourier 1 6.65 2 180.0 # c2=s6 double bond !!! + dihedral_coeff @dihedral:X-ce-s6-X fourier 1 6.65 2 180.0 # c2=s6 double bond !!! + dihedral_coeff @dihedral:X-cf-s6-X fourier 1 6.65 2 180.0 # c2=s6 double bond !!! + dihedral_coeff @dihedral:X-c2-sy-X fourier 1 1.26666666667 2 180.0 + dihedral_coeff @dihedral:X-ce-sy-X fourier 1 1.26666666667 2 180.0 + dihedral_coeff @dihedral:X-cf-sy-X fourier 1 1.26666666667 2 180.0 + dihedral_coeff @dihedral:X-c3-c3-X fourier 1 0.155555555556 3 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-cx-cx-X fourier 1 0.155555555556 3 0.0 # same as X-c3-c3-X + dihedral_coeff @dihedral:X-cy-cy-X fourier 1 0.155555555556 3 0.0 # same as X-c3-c3-X + dihedral_coeff @dihedral:X-c3-ca-X fourier 1 0.0 2 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-n-X fourier 1 0.0 2 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-cx-n-X fourier 1 0.0 2 0.0 # same as X-c3-n-X + dihedral_coeff @dihedral:X-cy-n-X fourier 1 0.0 2 0.0 # same as X-c3-n-X + dihedral_coeff @dihedral:X-c3-n2-X fourier 1 0.0 3 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-ne-X fourier 1 0.0 3 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-nf-X fourier 1 0.0 3 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-n3-X fourier 1 0.3 3 0.0 # Junmei et al, 1999 + dihedral_coeff @dihedral:X-c3-n4-X fourier 1 0.155555555556 3 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-na-X fourier 1 0.0 2 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-nh-X fourier 1 0.0 2 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-no-X fourier 1 0.0 2 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-oh-X fourier 1 0.166666666667 3 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-os-X fourier 1 0.383333333333 3 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-p2-X fourier 1 0.266666666667 2 180.0 + dihedral_coeff @dihedral:X-c3-pe-X fourier 1 0.266666666667 2 180.0 + dihedral_coeff @dihedral:X-c3-pf-X fourier 1 0.266666666667 2 180.0 + dihedral_coeff @dihedral:X-c3-p3-X fourier 1 0.133333333333 3 0.0 + dihedral_coeff @dihedral:X-c3-p4-X fourier 1 0.133333333333 3 0.0 + dihedral_coeff @dihedral:X-c3-px-X fourier 1 0.133333333333 3 0.0 + dihedral_coeff @dihedral:X-c3-p5-X fourier 1 0.0222222222222 3 0.0 + dihedral_coeff @dihedral:X-c3-py-X fourier 1 0.0222222222222 3 0.0 + dihedral_coeff @dihedral:X-c3-sh-X fourier 1 0.25 3 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-ss-X fourier 1 0.333333333333 3 0.0 # JCC,7,(1986),230 + dihedral_coeff @dihedral:X-c3-s4-X fourier 1 0.2 3 0.0 + dihedral_coeff @dihedral:X-c3-sx-X fourier 1 0.2 3 0.0 + dihedral_coeff @dihedral:X-c3-s6-X fourier 1 0.144444444444 3 0.0 + dihedral_coeff @dihedral:X-c3-sy-X fourier 1 0.144444444444 3 0.0 + dihedral_coeff @dihedral:X-c3-cc-X fourier 1 0.0 3 0.0 # same as X-c3-ca-X + dihedral_coeff @dihedral:X-c3-cd-X fourier 1 0.0 3 0.0 # same as X-c3-ca-X + dihedral_coeff @dihedral:X-ca-ca-X fourier 1 3.625 2 180.0 # intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-ca-cp-X fourier 1 3.625 2 180.0 # intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-ca-cq-X fourier 1 3.625 2 180.0 # intrpol.bsd.on C6H6 + dihedral_coeff @dihedral:X-cp-cp-X fourier 1 1.0 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-cq-cq-X fourier 1 1.0 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-ca-n-X fourier 1 0.45 2 180.0 + dihedral_coeff @dihedral:X-ca-n2-X fourier 1 0.0 3 180.0 + dihedral_coeff @dihedral:X-ca-ne-X fourier 1 0.0 3 180.0 + dihedral_coeff @dihedral:X-ca-nf-X fourier 1 0.0 3 180.0 + dihedral_coeff @dihedral:X-ca-n4-X fourier 1 1.75 2 0.0 + dihedral_coeff @dihedral:X-ca-na-X fourier 1 0.3 2 180.0 + dihedral_coeff @dihedral:X-ca-nb-X fourier 1 4.8 2 180.0 # same as X-CA-NC-X + dihedral_coeff @dihedral:X-ca-nc-X fourier 1 4.8 2 180.0 # same as X-CA-NC-X + dihedral_coeff @dihedral:X-ca-nd-X fourier 1 4.8 2 180.0 # same as X-CA-NC-X + dihedral_coeff @dihedral:X-ca-nh-X fourier 1 1.05 2 180.0 + dihedral_coeff @dihedral:X-cc-nh-X fourier 1 1.05 2 180.0 # same as X-ca-nh-X + dihedral_coeff @dihedral:X-cd-nh-X fourier 1 1.05 2 180.0 # same as X-ca-nh-X + dihedral_coeff @dihedral:X-ca-no-X fourier 1 0.6 2 180.0 + dihedral_coeff @dihedral:X-ca-oh-X fourier 1 0.9 2 180.0 # Junmei et al, 99 + dihedral_coeff @dihedral:X-ca-os-X fourier 1 0.9 2 180.0 # same as X-ca-oh-X + dihedral_coeff @dihedral:X-ca-p2-X fourier 1 0.6 2 180.0 + dihedral_coeff @dihedral:X-ca-pe-X fourier 1 0.6 2 180.0 # same as X-ca-p2-X + dihedral_coeff @dihedral:X-ca-pf-X fourier 1 0.6 2 180.0 # same as X-ca-p2-X + dihedral_coeff @dihedral:X-ca-pc-X fourier 1 4.8 2 180.0 # estimated, intrpol + dihedral_coeff @dihedral:X-ca-pd-X fourier 1 4.8 2 180.0 # estimated, intrpol + dihedral_coeff @dihedral:X-ca-p3-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-ca-p4-X fourier 1 0.525 2 180.0 + dihedral_coeff @dihedral:X-ca-px-X fourier 1 0.525 2 180.0 # estimated, same as X-ca-p4-X + dihedral_coeff @dihedral:X-ca-p5-X fourier 1 1.46666666667 2 180.0 + dihedral_coeff @dihedral:X-ca-py-X fourier 1 1.46666666667 2 180.0 # estimated, same as X-ca-p5-X + dihedral_coeff @dihedral:X-ca-sh-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-ca-ss-X fourier 1 0.4 2 180.0 + dihedral_coeff @dihedral:X-ca-s4-X fourier 1 0.3 2 0.0 + dihedral_coeff @dihedral:X-ca-sx-X fourier 1 0.3 2 0.0 # estimated, same as X-ca-s4-X + dihedral_coeff @dihedral:X-ca-s6-X fourier 1 1.3 2 180.0 + dihedral_coeff @dihedral:X-ca-sy-X fourier 1 1.3 2 180.0 # estimated, same as X-ca-s6-X + dihedral_coeff @dihedral:X-n-cc-X fourier 1 1.65 2 180.0 # statistic value from parm94 + dihedral_coeff @dihedral:X-n-cd-X fourier 1 1.65 2 180.0 # statistic value from parm94 + dihedral_coeff @dihedral:X-n-n-X fourier 1 1.15 2 0.0 + dihedral_coeff @dihedral:X-n-n2-X fourier 1 0.4 2 0.0 + dihedral_coeff @dihedral:X-n-ne-X fourier 1 0.4 2 0.0 + dihedral_coeff @dihedral:X-n-nf-X fourier 1 0.4 2 0.0 + dihedral_coeff @dihedral:X-n-n3-X fourier 1 1.075 2 0.0 + dihedral_coeff @dihedral:X-n-n4-X fourier 1 0.95 2 0.0 + dihedral_coeff @dihedral:X-n-na-X fourier 1 0.7 2 0.0 + dihedral_coeff @dihedral:X-n-nc-X fourier 1 4.8 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-n-nd-X fourier 1 4.8 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-n-nh-X fourier 1 1.1 2 0.0 + dihedral_coeff @dihedral:X-n-no-X fourier 1 1.375 2 180.0 + dihedral_coeff @dihedral:X-n-oh-X fourier 1 1.5 2 0.0 + dihedral_coeff @dihedral:X-n-os-X fourier 1 1.1 2 0.0 + dihedral_coeff @dihedral:X-n-p2-X fourier 1 1.0 2 180.0 + dihedral_coeff @dihedral:X-n-pe-X fourier 1 1.0 2 180.0 + dihedral_coeff @dihedral:X-n-pf-X fourier 1 1.0 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-n-pc-X fourier 1 4.8 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-n-pd-X fourier 1 4.8 2 180.0 + dihedral_coeff @dihedral:X-n-p3-X fourier 1 2.25 2 0.0 + dihedral_coeff @dihedral:X-n-p4-X fourier 1 0.325 2 0.0 + dihedral_coeff @dihedral:X-n-px-X fourier 1 0.325 2 0.0 + dihedral_coeff @dihedral:X-n-p5-X fourier 1 2.2 2 180.0 + dihedral_coeff @dihedral:X-n-py-X fourier 1 2.2 2 180.0 + dihedral_coeff @dihedral:X-n-sh-X fourier 1 1.1 2 0.0 + dihedral_coeff @dihedral:X-n-ss-X fourier 1 1.5 2 0.0 + dihedral_coeff @dihedral:X-n-s4-X fourier 1 1.5 3 0.0 + dihedral_coeff @dihedral:X-n-sx-X fourier 1 1.5 3 0.0 + dihedral_coeff @dihedral:X-n-s6-X fourier 1 1.1 2 180.0 + dihedral_coeff @dihedral:X-n-sy-X fourier 1 1.1 2 180.0 + dihedral_coeff @dihedral:X-n1-c2-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-c3-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-ca-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-cc-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-cd-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-ce-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-cf-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-cu-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-cv-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-cx-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-cy-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-n-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-n1-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-n2-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-n3-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-n4-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-na-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-nb-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-nc-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-nd-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-ne-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-nf-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-nh-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-no-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-oh-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-os-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-p2-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-pb-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-pc-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-pd-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-pe-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-pf-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-p3-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-p4-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-px-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-p5-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-py-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-s2-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-sh-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-ss-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-s4-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-sx-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-s6-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n1-sy-X fourier 1 0.0 2 180.0 + dihedral_coeff @dihedral:X-n2-n2-X fourier 2 3.0 2 180.0 2.8 1 0.0 # double bond + dihedral_coeff @dihedral:X-n2-ne-X fourier 2 3.0 2 180.0 2.8 1 0.0 # double bond + dihedral_coeff @dihedral:X-n2-nf-X fourier 2 3.0 2 180.0 2.8 1 0.0 # double bond + dihedral_coeff @dihedral:X-ne-nf-X fourier 2 3.0 2 180.0 2.8 1 0.0 # double bond + dihedral_coeff @dihedral:X-ne-ne-X fourier 1 1.2 2 180.0 # single bond, intrpol + dihedral_coeff @dihedral:X-nf-nf-X fourier 1 1.2 2 180.0 # single bond, intrpol + dihedral_coeff @dihedral:X-nc-nc-X fourier 1 4.0 2 180.0 # estimated, intrpol + dihedral_coeff @dihedral:X-nd-nd-X fourier 1 4.0 2 180.0 # estimated, intrpol + dihedral_coeff @dihedral:X-nc-nd-X fourier 1 4.0 2 180.0 # estimated, intrpol + dihedral_coeff @dihedral:X-n2-nc-X fourier 2 3.0 2 180.0 2.8 1 0.0 # same as X-n2-n2-X + dihedral_coeff @dihedral:X-n2-nd-X fourier 2 3.0 2 180.0 2.8 1 0.0 # same as X-n2-n2-X + dihedral_coeff @dihedral:X-n2-n3-X fourier 1 6.1 2 180.0 + dihedral_coeff @dihedral:X-ne-n3-X fourier 1 6.1 2 180.0 + dihedral_coeff @dihedral:X-nf-n3-X fourier 1 6.1 2 180.0 + dihedral_coeff @dihedral:X-n2-n4-X fourier 1 8.0 2 180.0 + dihedral_coeff @dihedral:X-ne-n4-X fourier 1 8.0 2 180.0 + dihedral_coeff @dihedral:X-nf-n4-X fourier 1 8.0 2 180.0 + dihedral_coeff @dihedral:X-n2-na-X fourier 1 1.7 2 180.0 + dihedral_coeff @dihedral:X-ne-na-X fourier 1 1.7 2 180.0 + dihedral_coeff @dihedral:X-nf-na-X fourier 1 1.7 2 180.0 + dihedral_coeff @dihedral:X-na-nc-X fourier 1 4.8 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-na-nd-X fourier 1 4.8 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-n2-nh-X fourier 1 2.8 2 180.0 + dihedral_coeff @dihedral:X-ne-nh-X fourier 1 2.8 2 180.0 + dihedral_coeff @dihedral:X-nf-nh-X fourier 1 2.8 2 180.0 + dihedral_coeff @dihedral:X-n2-no-X fourier 1 0.75 2 180.0 + dihedral_coeff @dihedral:X-ne-no-X fourier 1 0.75 2 180.0 + dihedral_coeff @dihedral:X-nf-no-X fourier 1 0.75 2 180.0 + dihedral_coeff @dihedral:X-n2-oh-X fourier 1 3.2 2 180.0 + dihedral_coeff @dihedral:X-ne-oh-X fourier 1 3.2 2 180.0 + dihedral_coeff @dihedral:X-nf-oh-X fourier 1 3.2 2 180.0 + dihedral_coeff @dihedral:X-n2-os-X fourier 1 3.0 2 180.0 + dihedral_coeff @dihedral:X-ne-os-X fourier 1 3.0 2 180.0 + dihedral_coeff @dihedral:X-nf-os-X fourier 1 3.0 2 180.0 + dihedral_coeff @dihedral:X-nc-os-X fourier 1 4.8 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-nc-ss-X fourier 1 4.8 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-n2-p2-X fourier 1 5.4 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-n2-pe-X fourier 1 5.4 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-n2-pf-X fourier 1 5.4 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-ne-pf-X fourier 1 5.4 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-n2-pc-X fourier 1 5.4 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-n2-pd-X fourier 1 5.4 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-nc-p2-X fourier 1 5.4 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-nd-p2-X fourier 1 5.4 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-nc-pc-X fourier 1 6.6 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-nd-pd-X fourier 1 6.6 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-nd-pc-X fourier 1 6.6 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-nc-pd-X fourier 1 6.6 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-ne-pe-X fourier 1 0.6 1 0.0 # single bond + dihedral_coeff @dihedral:X-nf-pf-X fourier 1 0.6 1 0.0 # single bond + dihedral_coeff @dihedral:X-n2-p3-X fourier 1 2.1 2 180.0 + dihedral_coeff @dihedral:X-n2-p4-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-ne-p4-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-nf-p4-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-n2-p5-X fourier 1 6.66666666667 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-ne-p5-X fourier 1 1.0 3 180.0 + dihedral_coeff @dihedral:X-nf-p5-X fourier 1 1.0 3 180.0 + dihedral_coeff @dihedral:X-ne-px-X fourier 1 1.0 3 180.0 + dihedral_coeff @dihedral:X-nf-px-X fourier 1 1.0 3 180.0 + dihedral_coeff @dihedral:X-n2-sh-X fourier 1 2.1 2 180.0 + dihedral_coeff @dihedral:X-ne-sh-X fourier 1 2.1 2 180.0 + dihedral_coeff @dihedral:X-nf-sh-X fourier 1 2.1 2 180.0 + dihedral_coeff @dihedral:X-n2-ss-X fourier 2 2.8 2 180.0 1.3 1 180.0 + dihedral_coeff @dihedral:X-ne-ss-X fourier 2 2.8 2 180.0 1.3 1 180.0 + dihedral_coeff @dihedral:X-nf-ss-X fourier 2 2.8 2 180.0 1.3 1 180.0 + dihedral_coeff @dihedral:X-n2-s4-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-ne-sx-X fourier 1 1.5 3 180.0 + dihedral_coeff @dihedral:X-nf-sx-X fourier 1 1.5 3 180.0 + dihedral_coeff @dihedral:X-n2-s6-X fourier 1 6.66666666667 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-ne-sy-X fourier 2 0.5 3 180.0 6.8 1 180.0 + dihedral_coeff @dihedral:X-nf-sy-X fourier 2 0.5 3 180.0 6.8 1 180.0 + dihedral_coeff @dihedral:X-n3-n3-X fourier 1 2.25 2 0.0 + dihedral_coeff @dihedral:X-n3-n4-X fourier 1 0.25 3 0.0 + dihedral_coeff @dihedral:X-n3-na-X fourier 1 1.6 2 0.0 + dihedral_coeff @dihedral:X-n3-nh-X fourier 1 1.9 2 0.0 + dihedral_coeff @dihedral:X-n3-no-X fourier 1 4.0 2 180.0 + dihedral_coeff @dihedral:X-n3-oh-X fourier 1 2.2 2 0.0 + dihedral_coeff @dihedral:X-n3-os-X fourier 1 1.8 2 0.0 + dihedral_coeff @dihedral:X-n3-p2-X fourier 1 3.2 2 180.0 + dihedral_coeff @dihedral:X-n3-pe-X fourier 1 3.2 2 180.0 + dihedral_coeff @dihedral:X-n3-pf-X fourier 1 3.2 2 180.0 + dihedral_coeff @dihedral:X-n3-p3-X fourier 1 2.35 2 0.0 + dihedral_coeff @dihedral:X-n3-p4-X fourier 1 2.1 2 180.0 + dihedral_coeff @dihedral:X-n3-px-X fourier 1 2.1 2 180.0 + dihedral_coeff @dihedral:X-n3-p5-X fourier 1 3.0 2 180.0 + dihedral_coeff @dihedral:X-n3-py-X fourier 1 3.0 2 180.0 + dihedral_coeff @dihedral:X-n3-sh-X fourier 1 3.1 2 0.0 + dihedral_coeff @dihedral:X-n3-ss-X fourier 1 2.6 2 0.0 + dihedral_coeff @dihedral:X-n3-s4-X fourier 1 3.75 2 0.0 + dihedral_coeff @dihedral:X-n3-sx-X fourier 1 3.75 2 0.0 + dihedral_coeff @dihedral:X-n3-s6-X fourier 1 3.13333333333 2 0.0 + dihedral_coeff @dihedral:X-n3-sy-X fourier 1 3.13333333333 2 0.0 + dihedral_coeff @dihedral:X-n4-n4-X fourier 1 0.188888888889 3 0.0 + dihedral_coeff @dihedral:X-n4-na-X fourier 1 0.233333333333 3 0.0 + dihedral_coeff @dihedral:X-n4-nh-X fourier 1 0.183333333333 3 0.0 + dihedral_coeff @dihedral:X-n4-no-X fourier 1 0.0833333333333 3 180.0 + dihedral_coeff @dihedral:X-n4-oh-X fourier 1 0.333333333333 3 0.0 + dihedral_coeff @dihedral:X-n4-os-X fourier 1 0.566666666667 3 0.0 + dihedral_coeff @dihedral:X-n4-p2-X fourier 1 0.166666666667 3 180.0 + dihedral_coeff @dihedral:X-n4-pe-X fourier 1 0.166666666667 3 180.0 + dihedral_coeff @dihedral:X-n4-pf-X fourier 1 0.166666666667 3 180.0 + dihedral_coeff @dihedral:X-n4-p3-X fourier 1 0.15 3 0.0 + dihedral_coeff @dihedral:X-n4-p4-X fourier 1 0.05 3 0.0 + dihedral_coeff @dihedral:X-n4-px-X fourier 1 0.05 3 0.0 + dihedral_coeff @dihedral:X-n4-p5-X fourier 1 0.0888888888889 3 0.0 + dihedral_coeff @dihedral:X-n4-py-X fourier 1 0.0888888888889 3 0.0 + dihedral_coeff @dihedral:X-n4-sh-X fourier 1 0.666666666667 3 0.0 + dihedral_coeff @dihedral:X-n4-ss-X fourier 1 0.333333333333 3 0.0 + dihedral_coeff @dihedral:X-n4-s4-X fourier 1 0.283333333333 3 0.0 + dihedral_coeff @dihedral:X-n4-sx-X fourier 1 0.283333333333 3 0.0 + dihedral_coeff @dihedral:X-n4-s6-X fourier 1 0.133333333333 3 0.0 + dihedral_coeff @dihedral:X-n4-sy-X fourier 1 0.133333333333 3 0.0 + dihedral_coeff @dihedral:X-na-na-X fourier 1 0.9 2 0.0 + dihedral_coeff @dihedral:X-na-nh-X fourier 1 1.2 2 0.0 + dihedral_coeff @dihedral:X-na-no-X fourier 1 6.0 2 180.0 + dihedral_coeff @dihedral:X-na-oh-X fourier 1 1.0 2 0.0 + dihedral_coeff @dihedral:X-na-os-X fourier 1 0.65 2 0.0 + dihedral_coeff @dihedral:X-na-p2-X fourier 1 1.0 2 180.0 + dihedral_coeff @dihedral:X-na-pe-X fourier 1 1.0 2 180.0 + dihedral_coeff @dihedral:X-na-pf-X fourier 1 1.0 2 180.0 + dihedral_coeff @dihedral:X-na-p3-X fourier 1 1.45 2 0.0 + dihedral_coeff @dihedral:X-na-p4-X fourier 1 1.1 3 0.0 + dihedral_coeff @dihedral:X-na-px-X fourier 1 1.1 3 0.0 + dihedral_coeff @dihedral:X-na-p5-X fourier 1 0.833333333333 2 180.0 + dihedral_coeff @dihedral:X-na-py-X fourier 1 0.833333333333 2 180.0 + dihedral_coeff @dihedral:X-na-sh-X fourier 1 1.8 2 0.0 + dihedral_coeff @dihedral:X-na-ss-X fourier 1 7.8 2 0.0 + dihedral_coeff @dihedral:X-na-s4-X fourier 1 1.05 2 0.0 + dihedral_coeff @dihedral:X-na-sx-X fourier 1 1.05 2 0.0 + dihedral_coeff @dihedral:X-na-s6-X fourier 1 3.66666666667 2 180.0 + dihedral_coeff @dihedral:X-na-sy-X fourier 1 3.66666666667 2 180.0 + dihedral_coeff @dihedral:X-nh-nh-X fourier 1 1.8 3 180.0 + dihedral_coeff @dihedral:X-nh-no-X fourier 1 2.55 2 180.0 + dihedral_coeff @dihedral:X-nh-oh-X fourier 1 1.5 2 0.0 + dihedral_coeff @dihedral:X-nh-os-X fourier 1 1.5 1 0.0 + dihedral_coeff @dihedral:X-nh-p2-X fourier 1 1.4 2 180.0 + dihedral_coeff @dihedral:X-nh-pe-X fourier 1 1.4 2 180.0 + dihedral_coeff @dihedral:X-nh-pf-X fourier 1 1.4 2 180.0 + dihedral_coeff @dihedral:X-nh-p3-X fourier 1 2.35 2 0.0 + dihedral_coeff @dihedral:X-nh-p4-X fourier 1 1.175 3 0.0 + dihedral_coeff @dihedral:X-nh-px-X fourier 1 1.175 3 0.0 + dihedral_coeff @dihedral:X-nh-p5-X fourier 1 0.8 2 0.0 + dihedral_coeff @dihedral:X-nh-py-X fourier 1 0.8 2 0.0 + dihedral_coeff @dihedral:X-nh-sh-X fourier 1 1.6 2 0.0 + dihedral_coeff @dihedral:X-nh-ss-X fourier 1 2.1 2 0.0 + dihedral_coeff @dihedral:X-nh-s4-X fourier 2 0.75 2 0.0 0.1 3 180.0 + dihedral_coeff @dihedral:X-nh-sx-X fourier 2 0.75 2 0.0 0.1 3 180.0 + dihedral_coeff @dihedral:X-nh-s6-X fourier 1 0.1 2 180.0 + dihedral_coeff @dihedral:X-nh-sy-X fourier 1 0.1 2 180.0 + dihedral_coeff @dihedral:X-no-no-X fourier 2 0.4 4 180.0 1.8 2 180.0 + dihedral_coeff @dihedral:X-no-oh-X fourier 1 3.9 2 180.0 + dihedral_coeff @dihedral:X-no-os-X fourier 1 3.0 2 180.0 + dihedral_coeff @dihedral:X-no-p2-X fourier 1 0.3 2 180.0 + dihedral_coeff @dihedral:X-no-pe-X fourier 1 0.3 2 180.0 + dihedral_coeff @dihedral:X-no-pf-X fourier 1 0.3 2 180.0 + dihedral_coeff @dihedral:X-no-p3-X fourier 1 1.9 2 180.0 + dihedral_coeff @dihedral:X-no-p4-X fourier 1 0.575 2 180.0 + dihedral_coeff @dihedral:X-no-px-X fourier 1 0.575 2 180.0 + dihedral_coeff @dihedral:X-no-p5-X fourier 2 2.4 2 0.0 0.4 3 0.0 + dihedral_coeff @dihedral:X-no-py-X fourier 2 2.4 2 0.0 0.4 3 0.0 + dihedral_coeff @dihedral:X-no-sh-X fourier 1 2.3 2 180.0 + dihedral_coeff @dihedral:X-no-ss-X fourier 1 2.7 2 180.0 + dihedral_coeff @dihedral:X-no-s4-X fourier 1 2.6 2 180.0 + dihedral_coeff @dihedral:X-no-sx-X fourier 1 2.6 2 180.0 + dihedral_coeff @dihedral:X-no-s6-X fourier 1 0.333333333333 2 0.0 + dihedral_coeff @dihedral:X-no-sy-X fourier 1 0.333333333333 2 0.0 + dihedral_coeff @dihedral:X-oh-oh-X fourier 1 1.6 2 0.0 + dihedral_coeff @dihedral:X-oh-os-X fourier 1 1.6 2 0.0 + dihedral_coeff @dihedral:X-oh-p2-X fourier 1 1.5 2 180.0 + dihedral_coeff @dihedral:X-oh-pe-X fourier 1 1.5 2 180.0 + dihedral_coeff @dihedral:X-oh-pf-X fourier 1 1.5 2 180.0 + dihedral_coeff @dihedral:X-oh-p3-X fourier 1 0.4 3 180.0 + dihedral_coeff @dihedral:X-oh-p4-X fourier 1 0.7 1 0.0 + dihedral_coeff @dihedral:X-oh-px-X fourier 1 0.7 1 0.0 + dihedral_coeff @dihedral:X-oh-p5-X fourier 1 0.533333333333 3 0.0 + dihedral_coeff @dihedral:X-oh-py-X fourier 1 0.533333333333 3 0.0 + dihedral_coeff @dihedral:X-oh-sh-X fourier 1 2.4 2 0.0 + dihedral_coeff @dihedral:X-oh-ss-X fourier 1 2.4 2 0.0 + dihedral_coeff @dihedral:X-oh-s4-X fourier 1 5.0 1 0.0 + dihedral_coeff @dihedral:X-oh-sx-X fourier 1 5.0 1 0.0 + dihedral_coeff @dihedral:X-oh-s6-X fourier 1 9.5 1 180.0 + dihedral_coeff @dihedral:X-oh-sy-X fourier 1 9.5 1 180.0 + dihedral_coeff @dihedral:X-os-os-X fourier 1 1.0 1 0.0 + dihedral_coeff @dihedral:X-os-ss-X fourier 1 2.2 2 0.0 + dihedral_coeff @dihedral:X-os-sh-X fourier 1 1.8 2 0.0 + dihedral_coeff @dihedral:X-os-s4-X fourier 1 1.65 3 0.0 + dihedral_coeff @dihedral:X-os-sx-X fourier 1 1.65 3 0.0 + dihedral_coeff @dihedral:X-os-s6-X fourier 1 1.2 2 180.0 + dihedral_coeff @dihedral:X-os-sy-X fourier 1 1.2 2 180.0 + dihedral_coeff @dihedral:X-os-p2-X fourier 2 3.0 2 180.0 2.0 1 180.0 + dihedral_coeff @dihedral:X-os-pe-X fourier 2 3.0 2 180.0 2.0 1 180.0 + dihedral_coeff @dihedral:X-os-pf-X fourier 2 3.0 2 180.0 2.0 1 180.0 + dihedral_coeff @dihedral:X-os-p3-X fourier 1 2.2 2 0.0 + dihedral_coeff @dihedral:X-os-p4-X fourier 1 1.05 2 180.0 + dihedral_coeff @dihedral:X-os-px-X fourier 1 1.05 2 180.0 + dihedral_coeff @dihedral:X-os-p5-X fourier 1 0.8 2 0.0 + dihedral_coeff @dihedral:X-os-py-X fourier 1 0.8 2 0.0 + dihedral_coeff @dihedral:X-p2-p2-X fourier 1 6.6 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-p2-pe-X fourier 1 6.6 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-p2-pf-X fourier 1 6.6 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-p2-pc-X fourier 1 6.6 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-p2-pd-X fourier 1 6.6 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-pe-pe-X fourier 1 1.2 2 180.0 # single bond + dihedral_coeff @dihedral:X-pf-pf-X fourier 1 1.2 2 180.0 # single bond + dihedral_coeff @dihedral:X-pc-pc-X fourier 1 7.2 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-pd-pd-X fourier 1 7.2 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-pc-pd-X fourier 1 7.2 2 180.0 # estimated, intrpol. + dihedral_coeff @dihedral:X-p2-p3-X fourier 1 1.2 1 0.0 + dihedral_coeff @dihedral:X-pe-p3-X fourier 1 1.2 1 0.0 + dihedral_coeff @dihedral:X-pf-p3-X fourier 1 1.2 1 0.0 + dihedral_coeff @dihedral:X-p2-p4-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-pe-px-X fourier 1 2.45 2 0.0 + dihedral_coeff @dihedral:X-pf-px-X fourier 1 2.45 2 0.0 + dihedral_coeff @dihedral:X-p2-p5-X fourier 1 6.66666666667 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-pe-py-X fourier 1 1.9 1 0.0 + dihedral_coeff @dihedral:X-pf-py-X fourier 1 1.9 1 0.0 + dihedral_coeff @dihedral:X-p2-sh-X fourier 1 1.4 2 180.0 + dihedral_coeff @dihedral:X-pe-sh-X fourier 1 1.4 2 180.0 + dihedral_coeff @dihedral:X-pf-sh-X fourier 1 1.4 2 180.0 + dihedral_coeff @dihedral:X-p2-ss-X fourier 1 1.4 2 180.0 + dihedral_coeff @dihedral:X-pe-ss-X fourier 1 1.4 2 180.0 + dihedral_coeff @dihedral:X-pf-ss-X fourier 1 1.4 2 180.0 + dihedral_coeff @dihedral:X-p2-s4-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-pe-sx-X fourier 1 1.5 2 0.0 + dihedral_coeff @dihedral:X-pf-sx-X fourier 1 1.5 2 0.0 + dihedral_coeff @dihedral:X-p2-s6-X fourier 1 6.66666666667 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-pe-sy-X fourier 1 0.4 3 180.0 + dihedral_coeff @dihedral:X-pf-sy-X fourier 1 0.4 3 180.0 + dihedral_coeff @dihedral:X-p3-p3-X fourier 1 0.5 3 0.0 + dihedral_coeff @dihedral:X-p3-p4-X fourier 1 0.9 1 0.0 + dihedral_coeff @dihedral:X-p3-px-X fourier 1 0.9 1 0.0 + dihedral_coeff @dihedral:X-p3-p5-X fourier 1 1.83333333333 2 180.0 + dihedral_coeff @dihedral:X-p3-py-X fourier 1 1.83333333333 2 180.0 + dihedral_coeff @dihedral:X-p3-sh-X fourier 1 4.6 2 0.0 + dihedral_coeff @dihedral:X-p3-ss-X fourier 1 1.15 3 0.0 + dihedral_coeff @dihedral:X-p3-s4-X fourier 1 3.85 2 0.0 + dihedral_coeff @dihedral:X-p3-sx-X fourier 1 3.85 2 0.0 + dihedral_coeff @dihedral:X-p3-s6-X fourier 1 0.266666666667 3 0.0 + dihedral_coeff @dihedral:X-p3-sy-X fourier 1 0.266666666667 3 0.0 + dihedral_coeff @dihedral:X-p4-p4-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-px-px-X fourier 1 1.45 2 180.0 + dihedral_coeff @dihedral:X-p4-p5-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-px-py-X fourier 1 0.316666666667 2 180.0 + dihedral_coeff @dihedral:X-p4-s4-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-px-sx-X fourier 1 0.85 1 0.0 + dihedral_coeff @dihedral:X-p4-s6-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-px-sy-X fourier 1 0.116666666667 3 0.0 + dihedral_coeff @dihedral:X-p4-sh-X fourier 1 0.25 1 180.0 + dihedral_coeff @dihedral:X-px-sh-X fourier 1 0.25 1 180.0 + dihedral_coeff @dihedral:X-p4-ss-X fourier 1 0.6 2 180.0 + dihedral_coeff @dihedral:X-px-ss-X fourier 1 0.6 2 180.0 + dihedral_coeff @dihedral:X-p5-p5-X fourier 1 6.66666666667 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-py-py-X fourier 1 0.6 2 0.0 + dihedral_coeff @dihedral:X-p5-sh-X fourier 1 0.3 3 0.0 + dihedral_coeff @dihedral:X-py-sh-X fourier 1 0.3 3 0.0 + dihedral_coeff @dihedral:X-p5-ss-X fourier 1 3.8 2 180.0 + dihedral_coeff @dihedral:X-py-ss-X fourier 1 3.8 2 180.0 + dihedral_coeff @dihedral:X-p5-s4-X fourier 1 6.66666666667 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-py-sx-X fourier 1 0.266666666667 3 0.0 + dihedral_coeff @dihedral:X-p5-s6-X fourier 1 6.66666666667 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-py-sy-X fourier 1 0.277777777778 3 0.0 + dihedral_coeff @dihedral:X-sh-sh-X fourier 1 5.6 3 0.0 + dihedral_coeff @dihedral:X-sh-ss-X fourier 1 5.3 3 0.0 + dihedral_coeff @dihedral:X-sh-s4-X fourier 1 0.7 3 0.0 + dihedral_coeff @dihedral:X-sh-sx-X fourier 1 0.7 3 0.0 + dihedral_coeff @dihedral:X-sh-s6-X fourier 1 4.66666666667 2 180.0 + dihedral_coeff @dihedral:X-sh-sy-X fourier 1 4.66666666667 2 180.0 + dihedral_coeff @dihedral:X-ss-ss-X fourier 1 0.0 3 0.0 + dihedral_coeff @dihedral:X-ss-s4-X fourier 1 0.3 3 0.0 + dihedral_coeff @dihedral:X-ss-sx-X fourier 1 0.3 3 0.0 + dihedral_coeff @dihedral:X-ss-s6-X fourier 1 3.06666666667 2 180.0 + dihedral_coeff @dihedral:X-ss-sy-X fourier 1 3.06666666667 2 180.0 + dihedral_coeff @dihedral:X-s4-s4-X fourier 1 6.65 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-sx-sx-X fourier 1 0.625 3 0.0 + dihedral_coeff @dihedral:X-s4-s6-X fourier 1 6.66666666667 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-sx-sy-X fourier 1 4.33333333333 2 180.0 + dihedral_coeff @dihedral:X-s6-s6-X fourier 1 6.66666666667 2 180.0 # estimated !!! + dihedral_coeff @dihedral:X-sy-sy-X fourier 1 0.155555555556 2 180.0 + dihedral_coeff @dihedral:X-cf-pe-X fourier 1 6.65 2 180.0 # NEW + dihedral_coeff @dihedral:X-nd-os-X fourier 1 4.8 2 180.0 # NEW + dihedral_coeff @dihedral:X-nd-ss-X fourier 1 4.8 2 180.0 # NEW + dihedral_coeff @dihedral:X-nf-pe-X fourier 1 5.4 2 180.0 # NEW + dihedral_coeff @dihedral:c2-ne-p5-o fourier 2 0.0 3 0.0 2.3 1 0.0 # TorType=1 + dihedral_coeff @dihedral:c2-nf-p5-o fourier 2 0.0 3 0.0 2.3 1 0.0 # TorType=1 + dihedral_coeff @dihedral:ce-ne-p5-o fourier 2 0.0 3 0.0 2.3 1 0.0 # TorType=1 + dihedral_coeff @dihedral:ce-nf-p5-o fourier 2 0.0 3 0.0 2.3 1 0.0 # TorType=1 + dihedral_coeff @dihedral:cf-ne-p5-o fourier 2 0.0 3 0.0 2.3 1 0.0 # TorType=1 + dihedral_coeff @dihedral:cf-nf-p5-o fourier 2 0.0 3 0.0 2.3 1 0.0 # TorType=1 + dihedral_coeff @dihedral:hn-n-c-o fourier 2 2.5 2 180.0 2.0 1 0.0 # JCC,7,(1986),230 TorType=1 + dihedral_coeff @dihedral:c3-n3-p5-o fourier 2 3.0 2 180.0 2.3 3 0.0 # TorType=1 + dihedral_coeff @dihedral:oh-p5-os-c3 fourier 2 0.25 3 0.0 1.2 2 0.0 # JCC,7,(1986),230 TorType=1 + dihedral_coeff @dihedral:h1-c3-c-o fourier 2 0.8 1 0.0 0.08 3 180.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:ho-oh-c-o fourier 2 2.3 2 180.0 1.9 1 0.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:c2-c2-c-o fourier 2 2.175 2 180.0 0.3 3 0.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:c3-c3-os-c fourier 2 0.383 3 0.0 0.8 1 180.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:c3-os-c3-na fourier 2 0.383 3 0.0 0.65 2 0.0 # parm98.dat, TC,PC,PAK TorType=1 + dihedral_coeff @dihedral:o-c-os-c3 fourier 2 2.7 2 180.0 1.4 1 180.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:os-c3-na-c2 fourier 2 0.0 2 0.0 2.5 1 0.0 # parm98, TC,PC,PAK TorType=1 + dihedral_coeff @dihedral:h1-c3-c3-os fourier 2 0.0 3 0.0 0.25 1 0.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:h1-c3-c3-oh fourier 2 0.0 3 0.0 0.25 1 0.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:h1-c3-c3-f fourier 2 0.0 3 0.0 0.19 1 0.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:h1-c3-c3-cl fourier 2 0.0 3 0.0 0.25 1 0.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:h1-c3-c3-br fourier 2 0.0 3 0.0 0.55 1 0.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:hc-c3-c3-os fourier 2 0.0 3 0.0 0.25 1 0.0 # Junmei et al, 1999 TorType=1 + dihedral_coeff @dihedral:c3-n4-c3-ca fourier 2 0.156 3 0.0 0.7 2 0.0 # Junmei, 2015 TorType=1 + dihedral_coeff @dihedral:oh-c3-c3-n4 fourier 2 0.144 3 0.0 1.3 2 0.0 # Junmei, 2015 TorType=1 + dihedral_coeff @dihedral:c3-c3-n4-c3 fourier 1 0.156 3 0.0 # Junmei, 2015 TorType=1 + dihedral_coeff @dihedral:c3-c-os-p5 fourier 2 2.7 2 180.0 2.0 1 180.0 # Junmei, 2015 TorType=1 + dihedral_coeff @dihedral:c-os-p5-o fourier 3 0.8 2 0.0 1.1 1 0.0 0.5 3 180.0 # Junmei, 2015 TorType=1 + dihedral_coeff @dihedral:c3-c3-os-p5 fourier 2 0.383 3 0.0 3.95 1 180.0 # Junmei, 2015 TorType=1 + dihedral_coeff @dihedral:c3-os-p5-o fourier 2 0.8 2 0.0 0.55 3 0.0 # Junmei, 2015 TorType=1 + dihedral_coeff @dihedral:ca-ca-os-p5 fourier 1 1.75 2 180.0 # Junmei, 2015 TorType=1 + dihedral_coeff @dihedral:ca-os-p5-o fourier 2 0.8 2 180.0 0.1 3 0.0 # Junmei, 2015 TorType=1 + dihedral_coeff @dihedral:br-c3-c3-br fourier 2 0.5 3 0.0 1.82 1 0.0 # m9 GA AUE=0.9626 RMSE=1.1958 TorType=2 + dihedral_coeff @dihedral:c-n-c2-c2 fourier 2 1.57 2 180.0 1.53 1 180.0 # c25 GA AUE=0.3367 RMSE=0.3900 TorType=2 + dihedral_coeff @dihedral:c3-ss-c2-c2 fourier 2 1.28 2 180.0 1.2 3 180.0 # c39 GA AUE=0.3908 RMSE=0.4760 TorType=2 + dihedral_coeff @dihedral:c3-c2-c2-c3 fourier 2 5.29 2 180.0 0.4 1 180.0 # c22 GA AUE=2.0091 RMSE=3.0745 TorType=2 + dihedral_coeff @dihedral:c3-c3-c3-c3 fourier 3 0.13 3 0.0 0.29 2 180.0 0.11 1 0.0 # c42 GA AUE=0.2975 RMSE=0.3306 TorType=2 + dihedral_coeff @dihedral:n-c-c3-c3 fourier 2 0.0 4 180.0 0.71 2 180.0 # p20 GA AUE=0.5445 RMSE=0.7015 TorType=2 + dihedral_coeff @dihedral:c3-os-c3-c3 fourier 2 0.24 3 0.0 0.16 2 0.0 # p29 GA AUE=0.4256 RMSE=0.5201 TorType=2 + dihedral_coeff @dihedral:ca-nh-n3-c3 fourier 1 1.12 2 0.0 # c115 SS AUE=2.2848 RMSE=2.9445 TorType=2 + dihedral_coeff @dihedral:hs-sh-ss-c3 fourier 2 1.6 3 0.0 2.81 2 0.0 # c223 GA AUE=0.7163 RMSE=0.8348 TorType=2 + dihedral_coeff @dihedral:ho-oh-nh-ca fourier 2 1.43 1 0.0 0.5 2 0.0 # c156 GA AUE=0.4441 RMSE=0.5406 TorType=2 + dihedral_coeff @dihedral:cl-c3-c3-cl fourier 2 0.5 3 0.0 0.93 1 0.0 # m8 GA AUE=0.9322 RMSE=1.0556 TorType=2 + dihedral_coeff @dihedral:c-n-c3-c3 fourier 3 0.1 4 180.0 0.17 3 0.0 1.02 1 180.0 # p19 GA AUE=0.2882 RMSE=0.4031 TorType=2 + dihedral_coeff @dihedral:c2-p2-n-c fourier 2 1.48 2 180.0 2.15 1 180.0 # c88 GA AUE=0.5049 RMSE=0.6214 TorType=2 + dihedral_coeff @dihedral:f-c3-c3-f fourier 2 1.0 3 0.0 0.64 1 180.0 # m7 GA AUE=1.3130 RMSE=1.6963 TorType=2 + dihedral_coeff @dihedral:hc-c3-c2-c2 fourier 2 0.36 3 180.0 1.47 1 0.0 # c23 GA AUE=0.0738 RMSE=0.0893 TorType=2 + dihedral_coeff @dihedral:hc-c3-c3-br fourier 2 0.21 3 0.0 0.08 1 0.0 # m5 GA AUE=0.2036 RMSE=0.2389 TorType=2 + dihedral_coeff @dihedral:hc-c3-c3-c3 fourier 1 0.08 3 0.0 # m2 SS AUE=0.2468 RMSE=0.2989 TorType=2 + dihedral_coeff @dihedral:hc-c3-c3-cl fourier 2 0.22 3 0.0 0.25 1 180.0 # m4 GA AUE=0.1732 RMSE=0.2055 TorType=2 + dihedral_coeff @dihedral:hc-c3-c3-f fourier 2 0.22 3 0.0 1.97 1 180.0 # m3 GA AUE=0.0868 RMSE=0.1021 TorType=2 + dihedral_coeff @dihedral:hc-c3-c3-hc fourier 1 0.12 3 0.0 # m1 SS AUE=0.2420 RMSE=0.2944 TorType=2 + dihedral_coeff @dihedral:hc-c3-c3-oh fourier 2 0.18 3 0.0 0.51 1 0.0 # m11 GA AUE=0.1021 RMSE=0.1307 TorType=2 + dihedral_coeff @dihedral:n-c-c3-n fourier 2 0.1 1 180.0 2.12 2 180.0 # p17 GA AUE=0.9129 RMSE=1.0401 TorType=2 + dihedral_coeff @dihedral:oh-c3-c3-os fourier 3 1.01 3 0.0 0.0 2 0.0 0.02 1 180.0 # suger5ring,suger6ring GA AUE=0.6597 RMSE=0.8978 TorType=2 + dihedral_coeff @dihedral:os-p5-os-c3 fourier 2 0.0 3 0.0 2.61 2 0.0 # c191 GA AUE=0.2324 RMSE=0.3542 TorType=2 + dihedral_coeff @dihedral:c3-n-c-c3 fourier 2 0.26 2 180.0 0.5 1 0.0 # c5 GA AUE=0.9706 RMSE=1.2796 TorType=2 + dihedral_coeff @dihedral:c3-os-c-c3 fourier 3 1.58 1 180.0 3.18 2 180.0 0.73 3 0.0 # c13 GA AUE=0.2469 RMSE=0.2990 TorType=2 + dihedral_coeff @dihedral:hs-sh-c-c3 fourier 2 1.08 2 180.0 1.92 1 180.0 # c18 GA AUE=0.2126 RMSE=0.3029 TorType=2 + dihedral_coeff @dihedral:os-c3-os-c3 fourier 3 0.0 3 180.0 1.24 2 0.0 0.97 1 180.0 # cococ,lactose2,t12 GA AUE=0.8913 RMSE=1.4261 TorType=2 + dihedral_coeff @dihedral:c3-ss-ss-c3 fourier 2 3.15 2 0.0 0.89 3 0.0 # c226,p2 GA AUE=0.4785 RMSE=0.5249 TorType=2 + dihedral_coeff @dihedral:o-c-c3-hc fourier 2 0.83 1 0.0 0.04 3 180.0 # CH3COO,CH3COOH GA AUE=0.0144 RMSE=0.0193 TorType=2 + dihedral_coeff @dihedral:ho-oh-c3-c3 fourier 1 0.0 3 0.0 # m19 SS AUE=0.1539 RMSE=0.2110 TorType=2 + dihedral_coeff @dihedral:oh-c3-c3-oh fourier 2 0.9 3 0.0 1.13 2 0.0 # p5,ch2oh2 GA AUE=0.9894 RMSE=1.1930 TorType=2 + dihedral_coeff @dihedral:os-c3-c3-os fourier 3 0.0 3 0.0 0.0 2 180.0 0.17 1 180.0 # p28,suger5ring,suger6ring,coccoc GA AUE=1.1750 RMSE=1.6708 TorType=2 + dihedral_coeff @dihedral:c1-c1-c3-c1 fourier 1 0.0 2 0.0 # t5 SS AUE=0.0048 RMSE=0.0058 TorType=3 + dihedral_coeff @dihedral:c2-c2-c3-c2 fourier 1 0.112 2 0.0 # t4 SS AUE=0.5917 RMSE=0.7276 TorType=3 + dihedral_coeff @dihedral:c2-ce-ca-ca fourier 1 0.505 2 180.0 # add6f SS AUE=0.2273 RMSE=0.3302 TorType=3 + dihedral_coeff @dihedral:c2-ce-ce-c3 fourier 1 0.5 2 180.0 # set1_2 SS AUE=0.6541 RMSE=0.8643 TorType=3 + dihedral_coeff @dihedral:c2-cf-cd-cc fourier 1 0.5 2 180.0 # add6d SS AUE=0.3708 RMSE=0.4956 TorType=3 + dihedral_coeff @dihedral:c2-n2-c3-n2 fourier 2 1.57 2 180.0 2.73 1 180.0 # t14 GA AUE=1.3428 RMSE=1.6221 TorType=3 + dihedral_coeff @dihedral:c2-n2-na-cd fourier 1 1.575 2 180.0 # c99 SS AUE=0.2455 RMSE=0.3271 TorType=3 + dihedral_coeff @dihedral:c2-n2-n-c fourier 1 2.79 1 180.0 # c80 SS AUE=2.1704 RMSE=2.7351 TorType=3 + dihedral_coeff @dihedral:c2-n2-nh-c2 fourier 1 1.2 2 0.0 # set3_6 SS AUE=1.7161 RMSE=2.4147 TorType=3 + dihedral_coeff @dihedral:c2-ne-ca-ca fourier 1 0.495 3 0.0 # c63 SS AUE=1.1301 RMSE=1.4142 TorType=3 + dihedral_coeff @dihedral:c2-ne-ce-c2 fourier 1 0.17 2 180.0 # c26 SS AUE=0.7462 RMSE=0.9083 TorType=3 + dihedral_coeff @dihedral:c2-ne-ce-c3 fourier 1 0.82 2 0.0 # set1_6 SS AUE=0.2966 RMSE=0.4200 TorType=3 + dihedral_coeff @dihedral:c2-nh-c2-c2 fourier 1 0.98 2 180.0 # set3_2 SS AUE=0.5762 RMSE=0.7682 TorType=3 + dihedral_coeff @dihedral:c2-nh-c2-c3 fourier 1 3.14 2 180.0 # set3_26 SS AUE=0.5612 RMSE=0.7360 TorType=3 + dihedral_coeff @dihedral:c2-nh-c3-h1 fourier 1 0.4 3 0.0 # set3_3 SS AUE=0.2455 RMSE=0.3092 TorType=3 + dihedral_coeff @dihedral:c2-nh-ca-ca fourier 1 0.55 2 180.0 # set3_4 SS AUE=0.8992 RMSE=1.3720 TorType=3 + dihedral_coeff @dihedral:c2-nh-nh-c2 fourier 1 2.93 3 0.0 # set3_24 SS AUE=2.3906 RMSE=3.0117 TorType=3 + dihedral_coeff @dihedral:c2-p2-c3-p2 fourier 1 2.07 1 180.0 # t18 SS AUE=0.4761 RMSE=0.6635 TorType=3 + dihedral_coeff @dihedral:c2-p2-n4-hn fourier 1 0.0 3 180.0 # c133 SS AUE=0.2623 RMSE=0.3265 TorType=3 + dihedral_coeff @dihedral:c2-p2-na-cc fourier 1 1.83 2 180.0 # c146 SS AUE=0.3236 RMSE=0.3673 TorType=3 + dihedral_coeff @dihedral:c2-p2-nh-c2 fourier 1 1.33 2 180.0 # set3_14 SS AUE=0.4660 RMSE=0.7730 TorType=3 + dihedral_coeff @dihedral:c2-p2-nh-c3 fourier 1 2.4 2 180.0 # c119 SS AUE=1.0662 RMSE=1.4725 TorType=3 + dihedral_coeff @dihedral:c2-p2-nh-ca fourier 1 1.88 1 180.0 # c158 SS AUE=1.5854 RMSE=1.8810 TorType=3 + dihedral_coeff @dihedral:c2-pe-ca-ca fourier 1 1.065 2 180.0 # c71 SS AUE=0.2838 RMSE=0.3291 TorType=3 + dihedral_coeff @dihedral:c2-pe-ce-c2 fourier 1 0.825 2 180.0 # c34 SS AUE=0.3082 RMSE=0.3467 TorType=3 + dihedral_coeff @dihedral:c2-pe-ce-c3 fourier 1 3.64 1 180.0 # set1_14 SS AUE=0.2869 RMSE=0.3329 TorType=3 + dihedral_coeff @dihedral:c2-pe-ne-c2 fourier 1 0.29 1 0.0 # c104 SS AUE=0.4118 RMSE=0.5379 TorType=3 + dihedral_coeff @dihedral:c2-pe-pe-c2 fourier 1 0.68 2 180.0 # c196 SS AUE=0.2486 RMSE=0.3241 TorType=3 + dihedral_coeff @dihedral:c3-c2-nh-ca fourier 2 1.16 2 180.0 1.88 1 0.0 # set1_10 GA AUE=0.3625 RMSE=0.5970 TorType=3 + dihedral_coeff @dihedral:c3-c3-c3-hc fourier 1 0.08 3 0.0 # t2 SS AUE=0.2507 RMSE=0.3027 TorType=3 + dihedral_coeff @dihedral:c3-c3-cc-ca fourier 1 0.082 3 0.0 # p3 SS AUE=0.4586 RMSE=0.5633 TorType=3 + dihedral_coeff @dihedral:c3-c3-n-c fourier 3 0.65 4 180.0 0.03 3 180.0 2.26 1 0.0 # sialic2 GA AUE=1.1541 RMSE=1.2847 TorType=3 + dihedral_coeff @dihedral:c3-c-c3-c3 fourier 1 0.332 2 180.0 # p10 SS AUE=0.3226 RMSE=0.4401 TorType=3 + dihedral_coeff @dihedral:c3-c-ce-c3 fourier 1 4.11 2 0.0 # set3_25 SS AUE=0.6933 RMSE=1.1187 TorType=3 + dihedral_coeff @dihedral:c3-ce-ce-c3 fourier 1 0.5 2 180.0 # set3_22 SS AUE=1.0809 RMSE=1.3455 TorType=3 + dihedral_coeff @dihedral:c3-n2-c2-c3 fourier 1 10.37 2 180.0 # c7 SS AUE=1.1629 RMSE=1.3902 TorType=3 + dihedral_coeff @dihedral:c3-n3-n3-c3 fourier 1 2.31 2 0.0 # c112 SS AUE=0.8815 RMSE=1.0390 TorType=3 + dihedral_coeff @dihedral:c3-n3-nh-c2 fourier 1 1.355 2 0.0 # set3_7 SS AUE=1.4104 RMSE=1.6750 TorType=3 + dihedral_coeff @dihedral:c3-n4-ca-ca fourier 1 1.495 2 0.0 # c65 SS AUE=0.2872 RMSE=0.3575 TorType=3 + dihedral_coeff @dihedral:c3-n4-n4-c3 fourier 1 0.244 3 0.0 # c127 SS AUE=0.6207 RMSE=0.7993 TorType=3 + dihedral_coeff @dihedral:c3-nh-c2-c2 fourier 2 0.95 2 180.0 1.12 3 180.0 # c27 GA AUE=0.7690 RMSE=1.0440 TorType=3 + dihedral_coeff @dihedral:c3-nh-c2-c3 fourier 1 2.495 2 180.0 # set1_7 SS AUE=0.8853 RMSE=1.2321 TorType=3 + dihedral_coeff @dihedral:c3-os-c2-c2 fourier 2 2.52 2 180.0 2.0 1 180.0 # c33 GA AUE=0.9155 RMSE=1.0796 TorType=3 + dihedral_coeff @dihedral:c3-os-c2-c3 fourier 1 4.79 2 180.0 # set1_13 SS AUE=0.9973 RMSE=1.5097 TorType=3 + dihedral_coeff @dihedral:c3-os-c3-h1 fourier 1 0.337 3 0.0 # c52 SS AUE=0.2706 RMSE=0.3300 TorType=3 + dihedral_coeff @dihedral:c3-os-ca-ca fourier 1 1.61 2 180.0 # c70 SS AUE=0.3151 RMSE=0.3580 TorType=3 + dihedral_coeff @dihedral:c3-os-n2-c2 fourier 2 2.2 2 180.0 0.9 3 180.0 # c103 SS AUE=1.2430 RMSE=1.4817 TorType=3 + dihedral_coeff @dihedral:c3-os-n3-c3 fourier 1 0.84 2 0.0 # c118 SS AUE=0.7374 RMSE=0.9683 TorType=3 + dihedral_coeff @dihedral:c3-os-n4-c3 fourier 1 0.62 3 180.0 # c132 SS AUE=0.8090 RMSE=0.9444 TorType=3 + dihedral_coeff @dihedral:c3-os-na-cc fourier 1 0.19 2 0.0 # c145 SS AUE=0.2720 RMSE=0.3305 TorType=3 + dihedral_coeff @dihedral:c3-os-n-c fourier 1 0.42 2 0.0 # c87 SS AUE=0.3019 RMSE=0.3567 TorType=3 + dihedral_coeff @dihedral:c3-os-nh-c2 fourier 1 1.15 1 0.0 # set3_13 SS AUE=0.9655 RMSE=1.1845 TorType=3 + dihedral_coeff @dihedral:c3-os-nh-ca fourier 1 0.5 1 0.0 # c157 SS AUE=0.8647 RMSE=1.0585 TorType=3 + dihedral_coeff @dihedral:c3-os-no-o fourier 1 2.515 2 180.0 # c168 SS AUE=0.3706 RMSE=0.4248 TorType=3 + dihedral_coeff @dihedral:c3-os-oh-ho fourier 1 1.01 2 0.0 # c178 SS AUE=0.2810 RMSE=0.3796 TorType=3 + dihedral_coeff @dihedral:c3-os-os-c3 fourier 1 0.38 1 0.0 # c187 SS AUE=0.4838 RMSE=0.6593 TorType=3 + dihedral_coeff @dihedral:c3-os-p2-c2 fourier 2 2.94 2 180.0 1.85 1 180.0 # c188 GA AUE=0.3661 RMSE=0.4565 TorType=3 + dihedral_coeff @dihedral:c3-p3-c2-c2 fourier 1 0.297 2 0.0 # c35 SS AUE=1.0902 RMSE=1.4763 TorType=3 + dihedral_coeff @dihedral:c3-p3-c2-c3 fourier 1 0.95 2 180.0 # set1_15 SS AUE=0.4182 RMSE=0.4905 TorType=3 + dihedral_coeff @dihedral:c3-p3-ca-ca fourier 1 0.177 2 180.0 # c72 SS AUE=0.2797 RMSE=0.3319 TorType=3 + dihedral_coeff @dihedral:c3-p3-n2-c2 fourier 1 5.0 2 180.0 # c105 SS AUE=0.8649 RMSE=1.0889 TorType=3 + dihedral_coeff @dihedral:c3-p3-n3-c3 fourier 1 2.85 2 0.0 # c120 SS AUE=0.8776 RMSE=1.2067 TorType=3 + dihedral_coeff @dihedral:c3-p3-n4-c3 fourier 1 0.067 3 0.0 # c134 SS AUE=0.1760 RMSE=0.2433 TorType=3 + dihedral_coeff @dihedral:c3-p3-na-cc fourier 1 1.025 2 0.0 # c147 SS AUE=0.2741 RMSE=0.3331 TorType=3 + dihedral_coeff @dihedral:c3-p3-n-c fourier 1 1.83 2 0.0 # c89 SS AUE=0.9690 RMSE=1.3708 TorType=3 + dihedral_coeff @dihedral:c3-p3-nh-c2 fourier 1 1.85 2 0.0 # set3_15 SS AUE=0.8611 RMSE=0.9832 TorType=3 + dihedral_coeff @dihedral:c3-p3-no-o fourier 1 1.4 2 180.0 # c170 SS AUE=0.5082 RMSE=0.5728 TorType=3 + dihedral_coeff @dihedral:c3-p3-oh-ho fourier 1 0.24 3 180.0 # c180 SS AUE=0.9983 RMSE=1.2838 TorType=3 + dihedral_coeff @dihedral:c3-p3-p2-c2 fourier 1 0.2 1 0.0 # c197 SS AUE=0.5014 RMSE=0.7016 TorType=3 + dihedral_coeff @dihedral:c3-p3-p3-c3 fourier 1 0.375 3 0.0 # c204 SS AUE=0.8032 RMSE=0.9405 TorType=3 + dihedral_coeff @dihedral:c3-p4-n3-c3 fourier 1 1.778 2 180.0 # c121 SS AUE=1.1246 RMSE=1.4091 TorType=3 + dihedral_coeff @dihedral:c3-p4-n4-hn fourier 1 0.005 3 0.0 # c135 SS AUE=0.2627 RMSE=0.3254 TorType=3 + dihedral_coeff @dihedral:c3-p4-na-cc fourier 2 1.0 3 0.0 0.64 2 180.0 # c148 GA AUE=0.9954 RMSE=1.1119 TorType=3 + dihedral_coeff @dihedral:c3-p4-nh-c2 fourier 1 0.9 1 0.0 # set3_16 SS AUE=1.0315 RMSE=1.1976 TorType=3 + dihedral_coeff @dihedral:c3-p4-nh-ca fourier 2 0.0 3 180.0 0.84 2 180.0 # c160 GA AUE=1.0676 RMSE=1.4622 TorType=3 + dihedral_coeff @dihedral:c3-p4-os-c3 fourier 1 0.6 2 180.0 # c190 SS AUE=0.5663 RMSE=0.6640 TorType=3 + dihedral_coeff @dihedral:c3-p4-p3-c3 fourier 1 1.4 1 0.0 # c205 SS AUE=0.7593 RMSE=0.9141 TorType=3 + dihedral_coeff @dihedral:c3-px-ca-ca fourier 1 0.432 2 180.0 # c73 SS AUE=0.4755 RMSE=0.6108 TorType=3 + dihedral_coeff @dihedral:c3-px-c-c3 fourier 2 0.0 2 0.0 0.58 1 180.0 # c16 GA AUE=1.0361 RMSE=1.3175 TorType=3 + dihedral_coeff @dihedral:c3-px-ce-c2 fourier 1 1.13 2 0.0 # c36 SS AUE=1.2444 RMSE=1.6024 TorType=3 + dihedral_coeff @dihedral:c3-px-ce-c3 fourier 1 0.81 2 180.0 # set1_16 SS AUE=0.9969 RMSE=1.2788 TorType=3 + dihedral_coeff @dihedral:c3-px-ne-c2 fourier 2 0.61 3 0.0 1.44 1 0.0 # c106 GA AUE=1.6606 RMSE=2.1207 TorType=3 + dihedral_coeff @dihedral:c3-px-pe-c2 fourier 1 1.565 2 0.0 # c198 SS AUE=1.0967 RMSE=1.2917 TorType=3 + dihedral_coeff @dihedral:c3-s4-c3-h1 fourier 1 0.117 3 0.0 # c59 SS AUE=0.2210 RMSE=0.2792 TorType=3 + dihedral_coeff @dihedral:c3-s4-n3-c3 fourier 1 3.1 2 0.0 # c125 SS AUE=1.3654 RMSE=1.8896 TorType=3 + dihedral_coeff @dihedral:c3-s4-n4-c3 fourier 1 0.2 3 0.0 # c139 SS AUE=0.7713 RMSE=0.9400 TorType=3 + dihedral_coeff @dihedral:c3-s4-na-cc fourier 1 0.55 2 0.0 # c152 SS AUE=0.5159 RMSE=0.7408 TorType=3 + dihedral_coeff @dihedral:c3-s4-nh-c2 fourier 3 0.235 2 180.0 0.5 3 0.0 1.302 1 0.0 # set3_20 GA AUE=1.5742 RMSE=1.9736 TorType=3 + dihedral_coeff @dihedral:c3-s4-no-o fourier 1 1.13 2 180.0 # c175 SS AUE=0.7753 RMSE=0.8760 TorType=3 + dihedral_coeff @dihedral:c3-s4-oh-ho fourier 1 0.0 1 180.0 # c185 SS AUE=1.7272 RMSE=2.1061 TorType=3 + dihedral_coeff @dihedral:c3-s4-os-c3 fourier 1 1.31 1 180.0 # c194 SS AUE=0.9618 RMSE=1.1506 TorType=3 + dihedral_coeff @dihedral:c3-s4-p3-c3 fourier 1 2.22 2 0.0 # c209 SS AUE=1.9189 RMSE=2.5861 TorType=3 + dihedral_coeff @dihedral:c3-s4-sh-hs fourier 2 0.0 3 0.0 0.56 2 180.0 # c224 GA AUE=1.1511 RMSE=1.3863 TorType=3 + dihedral_coeff @dihedral:c3-s4-ss-c3 fourier 1 0.05 3 0.0 # c227 SS AUE=0.7707 RMSE=0.9378 TorType=3 + dihedral_coeff @dihedral:c3-s6-c3-h1 fourier 1 0.089 3 0.0 # c60 SS AUE=0.0648 RMSE=0.0808 TorType=3 + dihedral_coeff @dihedral:c3-s6-n3-c3 fourier 1 3.61 2 0.0 # c126 SS AUE=1.8933 RMSE=2.6424 TorType=3 + dihedral_coeff @dihedral:c3-s6-n4-c3 fourier 1 1.47 1 0.0 # c140 SS AUE=0.2994 RMSE=0.3260 TorType=3 + dihedral_coeff @dihedral:c3-s6-na-cc fourier 1 3.938 2 180.0 # c153 SS AUE=0.8118 RMSE=1.0393 TorType=3 + dihedral_coeff @dihedral:c3-s6-n-c fourier 1 0.768 2 180.0 # c95 SS AUE=0.4645 RMSE=0.6488 TorType=3 + dihedral_coeff @dihedral:c3-s6-nh-c2 fourier 1 0.667 2 0.0 # set3_21 SS AUE=1.6191 RMSE=2.2150 TorType=3 + dihedral_coeff @dihedral:c3-s6-no-o fourier 1 0.348 2 0.0 # c176 SS AUE=0.2701 RMSE=0.3306 TorType=3 + dihedral_coeff @dihedral:c3-s6-oh-ho fourier 1 11.69 1 180.0 # c186 SS AUE=0.6401 RMSE=0.8081 TorType=3 + dihedral_coeff @dihedral:c3-s6-os-c3 fourier 1 0.533 2 180.0 # c195 SS AUE=0.9691 RMSE=1.1571 TorType=3 + dihedral_coeff @dihedral:c3-s6-p3-c3 fourier 1 0.183 3 0.0 # c210 SS AUE=0.5556 RMSE=0.6476 TorType=3 + dihedral_coeff @dihedral:c3-s6-sh-hs fourier 1 4.317 2 180.0 # c225 SS AUE=1.0170 RMSE=1.0970 TorType=3 + dihedral_coeff @dihedral:c3-s6-ss-c3 fourier 1 2.4 2 180.0 # c228 SS AUE=0.8201 RMSE=1.0146 TorType=3 + dihedral_coeff @dihedral:c3-ss-c2-c3 fourier 1 2.025 2 180.0 # set1_19 SS AUE=0.5269 RMSE=0.6098 TorType=3 + dihedral_coeff @dihedral:c3-ss-c3-c3 fourier 1 0.167 3 0.0 # p9 SS AUE=0.4614 RMSE=0.5750 TorType=3 + dihedral_coeff @dihedral:c3-ss-c3-h1 fourier 1 0.22 3 0.0 # c58 SS AUE=0.2551 RMSE=0.3303 TorType=3 + dihedral_coeff @dihedral:c3-ss-ca-ca fourier 1 0.75 2 180.0 # c76 SS AUE=0.2509 RMSE=0.3297 TorType=3 + dihedral_coeff @dihedral:c3-ss-n2-c2 fourier 2 1.35 2 180.0 1.38 1 180.0 # c109 GA AUE=0.6324 RMSE=0.7825 TorType=3 + dihedral_coeff @dihedral:c3-ss-n3-c3 fourier 1 2.68 2 0.0 # c124 SS AUE=1.0072 RMSE=1.2488 TorType=3 + dihedral_coeff @dihedral:c3-ss-n4-c3 fourier 1 0.39 3 0.0 # c138 SS AUE=0.3868 RMSE=0.4909 TorType=3 + dihedral_coeff @dihedral:c3-ss-n-c fourier 1 0.5 2 0.0 # c93 SS AUE=0.5560 RMSE=0.7560 TorType=3 + dihedral_coeff @dihedral:c3-ss-nh-c2 fourier 1 1.1 2 0.0 # set3_19 SS AUE=0.9372 RMSE=1.1240 TorType=3 + dihedral_coeff @dihedral:c3-ss-no-o fourier 1 2.295 2 180.0 # c174 SS AUE=0.3406 RMSE=0.3839 TorType=3 + dihedral_coeff @dihedral:c3-ss-oh-ho fourier 1 2.13 2 0.0 # c184 SS AUE=0.2806 RMSE=0.3277 TorType=3 + dihedral_coeff @dihedral:c3-ss-os-c3 fourier 1 1.74 2 0.0 # c193 SS AUE=0.5504 RMSE=0.6616 TorType=3 + dihedral_coeff @dihedral:c3-ss-p2-c2 fourier 1 2.97 2 180.0 # c201 SS AUE=0.8463 RMSE=1.2678 TorType=3 + dihedral_coeff @dihedral:c3-ss-p3-c3 fourier 1 3.75 2 0.0 # c208 SS AUE=0.5096 RMSE=0.5972 TorType=3 + dihedral_coeff @dihedral:c3-ss-p4-c3 fourier 1 0.57 2 180.0 # c214 SS AUE=0.7214 RMSE=0.9325 TorType=3 + dihedral_coeff @dihedral:c3-sx-ca-ca fourier 1 0.64 2 0.0 # c77 SS AUE=0.6566 RMSE=0.8245 TorType=3 + dihedral_coeff @dihedral:c3-sx-ce-c2 fourier 2 1.46 2 0.0 1.5 3 180.0 # c40 GA AUE=1.8189 RMSE=2.2140 TorType=3 + dihedral_coeff @dihedral:c3-sx-ce-c3 fourier 3 1.5 3 0.0 4.16 2 0.0 3.1 1 180.0 # set1_20 GA AUE=2.1436 RMSE=3.2053 TorType=3 + dihedral_coeff @dihedral:c3-sx-ne-c2 fourier 2 1.0 3 180.0 1.9 1 180.0 # c110 GA AUE=1.5150 RMSE=1.7663 TorType=3 + dihedral_coeff @dihedral:c3-sx-pe-c2 fourier 1 4.19 2 0.0 # c202 SS AUE=2.6033 RMSE=3.2866 TorType=3 + dihedral_coeff @dihedral:c3-sx-px-c3 fourier 1 2.67 1 0.0 # c215 SS AUE=0.8306 RMSE=1.0179 TorType=3 + dihedral_coeff @dihedral:c3-sx-sx-c3 fourier 1 2.92 1 0.0 # c229 SS AUE=2.7179 RMSE=3.6787 TorType=3 + dihedral_coeff @dihedral:c3-sx-sy-c3 fourier 1 4.94 2 180.0 # c230 SS AUE=1.7022 RMSE=1.9951 TorType=3 + dihedral_coeff @dihedral:c3-sy-ca-ca fourier 1 1.22 2 180.0 # c78 SS AUE=0.2941 RMSE=0.3313 TorType=3 + dihedral_coeff @dihedral:c3-sy-ce-c2 fourier 1 0.935 2 180.0 # c41 SS AUE=0.9708 RMSE=1.2822 TorType=3 + dihedral_coeff @dihedral:c3-sy-ce-c3 fourier 3 0.64 3 0.0 0.333 2 180.0 1.04 1 180.0 # set1_21 GA AUE=0.6383 RMSE=0.7388 TorType=3 + dihedral_coeff @dihedral:c3-sy-ne-c2 fourier 2 0.34 3 180.0 7.467 1 180.0 # c111 GA AUE=0.2248 RMSE=0.3231 TorType=3 + dihedral_coeff @dihedral:c3-sy-pe-c2 fourier 1 0.237 3 180.0 # c203 SS AUE=0.3743 RMSE=0.4294 TorType=3 + dihedral_coeff @dihedral:c3-sy-px-c3 fourier 1 0.062 3 0.0 # c216 SS AUE=0.6353 RMSE=0.7537 TorType=3 + dihedral_coeff @dihedral:c3-sy-sy-c3 fourier 1 0.378 2 0.0 # c231 SS AUE=1.1799 RMSE=1.3634 TorType=3 + dihedral_coeff @dihedral:ca-c3-c3-c fourier 1 0.1 3 0.0 # p22 SS AUE=0.8008 RMSE=1.0051 TorType=3 + dihedral_coeff @dihedral:ca-c3-c3-n fourier 1 0.21 3 0.0 # p16 SS AUE=0.6330 RMSE=0.8053 TorType=3 + dihedral_coeff @dihedral:ca-ca-c3-ca fourier 1 0.0 2 180.0 # t1 SS AUE=0.1988 RMSE=0.2606 TorType=3 + dihedral_coeff @dihedral:ca-ca-ce-c2 fourier 1 0.618 2 180.0 # c24 SS AUE=0.2364 RMSE=0.3330 TorType=3 + dihedral_coeff @dihedral:ca-ca-ce-c3 fourier 1 0.54 2 180.0 # set1_4 SS AUE=0.2602 RMSE=0.3333 TorType=3 + dihedral_coeff @dihedral:ca-ca-os-c fourier 1 0.65 2 180.0 # t35b SS AUE=0.2491 RMSE=0.3333 TorType=3 + dihedral_coeff @dihedral:ca-cf-ce-ca fourier 1 8.51 2 180.0 # add6b SS AUE=4.0000 RMSE=5.4296 TorType=3 + dihedral_coeff @dihedral:ca-c-os-c3 fourier 1 2.685 2 180.0 # t36b SS AUE=1.2217 RMSE=1.4489 TorType=3 + dihedral_coeff @dihedral:ca-cp-cp-ca fourier 1 0.795 2 180.0 # c61 SS AUE=0.2914 RMSE=0.3303 TorType=3 + dihedral_coeff @dihedral:ca-nh-c2-c2 fourier 1 1.92 1 180.0 # c30 SS AUE=0.8599 RMSE=1.1406 TorType=3 + dihedral_coeff @dihedral:ca-nh-n2-c2 fourier 3 1.37 3 180.0 2.0 2 0.0 0.0 1 180.0 # c100 GA AUE=2.0208 RMSE=2.4869 TorType=3 + dihedral_coeff @dihedral:ca-nh-n4-c3 fourier 1 0.1 3 0.0 # c129 SS AUE=1.1901 RMSE=1.4071 TorType=3 + dihedral_coeff @dihedral:ca-nh-na-cd fourier 1 0.7 2 0.0 # c142 SS AUE=0.5118 RMSE=0.8838 TorType=3 + dihedral_coeff @dihedral:ca-nh-n-c fourier 1 0.605 2 0.0 # c84 SS AUE=1.2184 RMSE=1.3197 TorType=3 + dihedral_coeff @dihedral:ca-nh-nh-c2 fourier 1 1.49 3 0.0 # set3_10 SS AUE=2.7548 RMSE=3.5233 TorType=3 + dihedral_coeff @dihedral:ca-nh-nh-ca fourier 1 4.59 1 0.0 # c154 SS AUE=3.6427 RMSE=5.6136 TorType=3 + dihedral_coeff @dihedral:ca-nh-no-o fourier 1 0.62 2 180.0 # c155 SS AUE=1.3263 RMSE=1.9039 TorType=3 + dihedral_coeff @dihedral:ca-nh-p3-c3 fourier 2 1.94 2 180.0 0.54 3 0.0 # c159 GA AUE=0.8724 RMSE=1.1678 TorType=3 + dihedral_coeff @dihedral:ca-nh-p5-os fourier 1 0.467 2 0.0 # c161 SS AUE=0.8323 RMSE=0.9798 TorType=3 + dihedral_coeff @dihedral:ca-nh-s4-c3 fourier 2 1.245 2 0.0 0.225 3 0.0 # c164 GA AUE=1.5450 RMSE=1.8592 TorType=3 + dihedral_coeff @dihedral:ca-nh-s6-c3 fourier 1 1.93 3 0.0 # c165 SS AUE=0.7711 RMSE=0.9257 TorType=3 + dihedral_coeff @dihedral:ca-nh-ss-c3 fourier 2 1.29 2 180.0 1.19 1 180.0 # c163 GA AUE=0.9564 RMSE=1.5597 TorType=3 + dihedral_coeff @dihedral:ca-nh-sy-ca fourier 2 0.1 2 180.0 0.99 3 0.0 # add6a SS AUE=0.6854 RMSE=0.9512 TorType=3 + dihedral_coeff @dihedral:ca-os-c-o fourier 1 1.275 2 180.0 # t35a SS AUE=1.2481 RMSE=1.5211 TorType=3 + dihedral_coeff @dihedral:c-c3-c3-n fourier 1 0.21 3 0.0 # p26 SS AUE=1.0437 RMSE=1.3000 TorType=3 + dihedral_coeff @dihedral:c-c3-n-c fourier 2 0.39 2 180.0 0.64 1 0.0 # p18 GA AUE=0.4030 RMSE=0.5768 TorType=3 + dihedral_coeff @dihedral:cc-na-c2-c2 fourier 1 0.728 2 180.0 # c29 SS AUE=0.2592 RMSE=0.3329 TorType=3 + dihedral_coeff @dihedral:cc-na-c2-c3 fourier 1 1.125 2 180.0 # set1_9 SS AUE=0.3784 RMSE=0.4839 TorType=3 + dihedral_coeff @dihedral:cc-na-ca-ca fourier 1 0.603 2 180.0 # c66 SS AUE=0.2705 RMSE=0.3328 TorType=3 + dihedral_coeff @dihedral:cc-na-na-cd fourier 1 0.4 2 0.0 # c141 SS AUE=0.5320 RMSE=0.6402 TorType=3 + dihedral_coeff @dihedral:cc-na-nh-c2 fourier 1 0.7 2 0.0 # set3_9 SS AUE=0.7727 RMSE=0.9375 TorType=3 + dihedral_coeff @dihedral:cc-n-c-c3 fourier 1 0.5 2 180.0 # set2_9 SS AUE=0.2224 RMSE=0.3240 TorType=3 + dihedral_coeff @dihedral:cd-cc-c3-c3 fourier 1 0.157 3 180.0 # p1 SS AUE=0.2727 RMSE=0.3320 TorType=3 + dihedral_coeff @dihedral:cd-na-c3-na fourier 1 0.023 2 0.0 # t16 SS AUE=0.2606 RMSE=0.3332 TorType=3 + dihedral_coeff @dihedral:c-n-c2-c3 fourier 1 1.51 1 180.0 # set1_5 SS AUE=0.6699 RMSE=0.8754 TorType=3 + dihedral_coeff @dihedral:c-n-c3-n fourier 1 2.08 2 0.0 # t17 SS AUE=0.8425 RMSE=1.0798 TorType=3 + dihedral_coeff @dihedral:c-n-ca-ca fourier 1 0.95 2 180.0 # c62 SS AUE=0.8788 RMSE=0.9694 TorType=3 + dihedral_coeff @dihedral:c-n-n-c fourier 2 3.0 2 180.0 2.49 1 0.0 # c79 GA AUE=1.1290 RMSE=1.3734 TorType=3 + dihedral_coeff @dihedral:c-n-nh-c2 fourier 1 0.6 2 0.0 # set3_5 SS AUE=0.7968 RMSE=0.8909 TorType=3 + dihedral_coeff @dihedral:c-os-c-c3 fourier 1 1.98 1 180.0 # set3_29 SS AUE=0.2568 RMSE=0.3303 TorType=3 + dihedral_coeff @dihedral:cz-nh-c3-c3 fourier 1 0.248 2 180.0 # p11 SS AUE=0.2819 RMSE=0.3532 TorType=3 + dihedral_coeff @dihedral:h1-c3-n2-c2 fourier 1 0.165 3 180.0 # c45 SS AUE=0.6984 RMSE=0.9045 TorType=3 + dihedral_coeff @dihedral:h1-c3-n3-c3 fourier 1 0.225 3 0.0 # c46 SS AUE=0.2936 RMSE=0.3481 TorType=3 + dihedral_coeff @dihedral:h1-c3-na-cc fourier 1 0.0 2 180.0 # c48 SS AUE=0.0685 RMSE=0.0813 TorType=3 + dihedral_coeff @dihedral:h1-c3-n-c fourier 1 0.0 2 180.0 # c44 SS AUE=0.1670 RMSE=0.1874 TorType=3 + dihedral_coeff @dihedral:h1-c3-nh-ca fourier 1 0.332 2 0.0 # c49 SS AUE=1.0901 RMSE=1.3252 TorType=3 + dihedral_coeff @dihedral:h1-c3-no-o fourier 1 0.0 2 180.0 # c50 SS AUE=0.0210 RMSE=0.0225 TorType=3 + dihedral_coeff @dihedral:h1-c3-os-p5 fourier 1 0.217 3 0.0 # c56 SS AUE=0.3987 RMSE=0.4985 TorType=3 + dihedral_coeff @dihedral:hc-c3-c2-c3 fourier 1 0.31 2 0.0 # set1_3 SS AUE=0.6796 RMSE=0.8466 TorType=3 + dihedral_coeff @dihedral:hc-c3-c3-i fourier 1 0.21 3 0.0 # m6 SS AUE=0.3234 RMSE=0.3857 TorType=3 + dihedral_coeff @dihedral:hc-c3-c3-n3 fourier 1 0.1 3 0.0 # m12 SS AUE=0.1396 RMSE=0.1646 TorType=3 + dihedral_coeff @dihedral:hc-c3-ca-ca fourier 1 0.0 2 180.0 # c43 SS AUE=0.0203 RMSE=0.0347 TorType=3 + dihedral_coeff @dihedral:hc-c3-p2-c2 fourier 1 0.933 2 180.0 # c53 SS AUE=0.3657 RMSE=0.4529 TorType=3 + dihedral_coeff @dihedral:hc-c3-p3-c3 fourier 1 0.145 3 0.0 # c54 SS AUE=0.2605 RMSE=0.3289 TorType=3 + dihedral_coeff @dihedral:hc-c3-p4-c3 fourier 1 0.05 3 0.0 # c55 SS AUE=0.1589 RMSE=0.2005 TorType=3 + dihedral_coeff @dihedral:hn-n3-c3-c3 fourier 1 0.217 3 0.0 # m20 SS AUE=0.7039 RMSE=0.8271 TorType=3 + dihedral_coeff @dihedral:hn-n4-c2-c2 fourier 1 0.082 3 180.0 # c28 SS AUE=0.6341 RMSE=0.7948 TorType=3 + dihedral_coeff @dihedral:hn-n4-c2-c3 fourier 1 0.087 3 0.0 # set1_8 SS AUE=0.2828 RMSE=0.3296 TorType=3 + dihedral_coeff @dihedral:hn-n4-c3-hx fourier 1 0.109 3 0.0 # c47 SS AUE=0.2716 RMSE=0.3296 TorType=3 + dihedral_coeff @dihedral:hn-n4-n2-c2 fourier 1 8.663 2 180.0 # c98 SS AUE=0.3876 RMSE=0.4783 TorType=3 + dihedral_coeff @dihedral:hn-n4-n3-c3 fourier 1 0.188 3 0.0 # c113 SS AUE=0.3464 RMSE=0.4155 TorType=3 + dihedral_coeff @dihedral:hn-n4-na-cd fourier 1 0.15 3 0.0 # c128 SS AUE=0.1276 RMSE=0.1509 TorType=3 + dihedral_coeff @dihedral:hn-n4-n-c fourier 1 1.445 2 0.0 # c82 SS AUE=0.4066 RMSE=0.5885 TorType=3 + dihedral_coeff @dihedral:hn-n4-nh-c2 fourier 1 0.213 3 0.0 # set3_8 SS AUE=0.2620 RMSE=0.3316 TorType=3 + dihedral_coeff @dihedral:hn-nh-na-cd fourier 1 0.802 2 0.0 # c114 SS AUE=0.2869 RMSE=0.3676 TorType=3 + dihedral_coeff @dihedral:ho-oh-c2-c2 fourier 1 1.12 2 180.0 # c32 SS AUE=0.2661 RMSE=0.3303 TorType=3 + dihedral_coeff @dihedral:ho-oh-c2-c3 fourier 1 1.51 1 180.0 # set1_12 SS AUE=1.5331 RMSE=1.7625 TorType=3 + dihedral_coeff @dihedral:ho-oh-c3-h1 fourier 1 0.113 3 0.0 # c51 SS AUE=0.2631 RMSE=0.3230 TorType=3 + dihedral_coeff @dihedral:ho-oh-ca-ca fourier 1 0.835 2 180.0 # c69 SS AUE=0.2718 RMSE=0.3256 TorType=3 + dihedral_coeff @dihedral:ho-oh-n2-c2 fourier 1 2.37 2 180.0 # c102 SS AUE=0.3163 RMSE=0.3944 TorType=3 + dihedral_coeff @dihedral:ho-oh-n3-c3 fourier 1 1.23 2 0.0 # c117 SS AUE=0.7804 RMSE=0.9479 TorType=3 + dihedral_coeff @dihedral:ho-oh-n4-c3 fourier 1 0.34 3 0.0 # c131 SS AUE=0.4375 RMSE=0.5350 TorType=3 + dihedral_coeff @dihedral:ho-oh-na-cc fourier 1 0.44 2 0.0 # c144 SS AUE=0.2865 RMSE=0.3255 TorType=3 + dihedral_coeff @dihedral:ho-oh-nh-c2 fourier 1 0.85 2 0.0 # set3_12 SS AUE=0.6311 RMSE=0.7217 TorType=3 + dihedral_coeff @dihedral:ho-oh-no-o fourier 1 1.36 2 180.0 # c167 SS AUE=0.2872 RMSE=0.3226 TorType=3 + dihedral_coeff @dihedral:ho-oh-oh-ho fourier 1 1.21 2 0.0 # c177 SS AUE=0.6716 RMSE=0.7402 TorType=3 + dihedral_coeff @dihedral:ho-oh-p2-c2 fourier 1 1.41 2 180.0 # c179 SS AUE=0.6083 RMSE=0.8611 TorType=3 + dihedral_coeff @dihedral:ho-oh-p4-c3 fourier 1 0.83 1 180.0 # c181 SS AUE=0.8966 RMSE=1.0772 TorType=3 + dihedral_coeff @dihedral:ho-oh-p5-o fourier 1 0.367 3 0.0 # c182 SS AUE=0.8891 RMSE=1.0397 TorType=3 + dihedral_coeff @dihedral:hs-sh-c2-c2 fourier 1 0.64 2 180.0 # c38 SS AUE=0.5356 RMSE=0.6146 TorType=3 + dihedral_coeff @dihedral:hs-sh-c2-c3 fourier 1 1.46 1 180.0 # set1_18 SS AUE=1.6292 RMSE=1.8635 TorType=3 + dihedral_coeff @dihedral:hs-sh-c3-h1 fourier 1 0.143 3 0.0 # c57 SS AUE=0.2676 RMSE=0.3251 TorType=3 + dihedral_coeff @dihedral:hs-sh-ca-ca fourier 1 0.105 2 180.0 # c75 SS AUE=0.2588 RMSE=0.3299 TorType=3 + dihedral_coeff @dihedral:hs-sh-n2-c2 fourier 1 1.91 2 180.0 # c108 SS AUE=0.5066 RMSE=0.9568 TorType=3 + dihedral_coeff @dihedral:hs-sh-n3-c3 fourier 1 3.34 2 0.0 # c123 SS AUE=1.0521 RMSE=1.3809 TorType=3 + dihedral_coeff @dihedral:hs-sh-n4-c3 fourier 1 0.5 3 0.0 # c137 SS AUE=1.0514 RMSE=1.3202 TorType=3 + dihedral_coeff @dihedral:hs-sh-na-cc fourier 1 1.255 2 0.0 # c150 SS AUE=0.2920 RMSE=0.3622 TorType=3 + dihedral_coeff @dihedral:hs-sh-nh-c2 fourier 1 0.795 2 0.0 # set3_18 SS AUE=1.0130 RMSE=1.2554 TorType=3 + dihedral_coeff @dihedral:hs-sh-no-o fourier 1 1.3 2 180.0 # c173 SS AUE=0.2229 RMSE=0.2551 TorType=3 + dihedral_coeff @dihedral:hs-sh-oh-ho fourier 1 2.01 2 0.0 # c183 SS AUE=0.2853 RMSE=0.3308 TorType=3 + dihedral_coeff @dihedral:hs-sh-os-c3 fourier 1 1.85 2 0.0 # c192 SS AUE=0.4441 RMSE=0.5536 TorType=3 + dihedral_coeff @dihedral:hs-sh-p2-c2 fourier 1 0.89 2 180.0 # c200 SS AUE=0.2562 RMSE=0.3521 TorType=3 + dihedral_coeff @dihedral:hs-sh-p3-c3 fourier 1 3.6 2 0.0 # c207 SS AUE=0.5012 RMSE=0.6062 TorType=3 + dihedral_coeff @dihedral:hs-sh-p4-c3 fourier 1 0.585 1 180.0 # c213 SS AUE=1.2130 RMSE=1.4705 TorType=3 + dihedral_coeff @dihedral:hs-sh-p5-os fourier 2 2.89 2 0.0 1.29 1 0.0 # c218 GA AUE=0.8635 RMSE=1.2959 TorType=3 + dihedral_coeff @dihedral:hs-sh-sh-hs fourier 1 2.64 2 0.0 # c222 SS AUE=0.2962 RMSE=0.3759 TorType=3 + dihedral_coeff @dihedral:n2-c2-c3-c2 fourier 1 0.558 2 180.0 # t9 SS AUE=0.7685 RMSE=0.9760 TorType=3 + dihedral_coeff @dihedral:n3-c3-c3-c3 fourier 1 0.21 3 0.0 # p8 SS AUE=0.4096 RMSE=0.5005 TorType=3 + dihedral_coeff @dihedral:n3-c3-c3-ca fourier 1 0.1 3 0.0 # m16 SS AUE=0.8325 RMSE=1.0411 TorType=3 + dihedral_coeff @dihedral:n3-c3-n3-hn fourier 1 1.75 2 0.0 # t13 SS AUE=0.6939 RMSE=0.8306 TorType=3 + dihedral_coeff @dihedral:n4-c3-c3-c3 fourier 1 0.21 3 0.0 # p12 SS AUE=0.5399 RMSE=0.6216 TorType=3 + dihedral_coeff @dihedral:n4-c3-n4-hn fourier 1 0.1 3 0.0 # t26 SS AUE=0.0245 RMSE=0.0373 TorType=3 + dihedral_coeff @dihedral:n-c3-c3-c3 fourier 1 0.1 3 0.0 # p23 SS AUE=0.2641 RMSE=0.3317 TorType=3 + dihedral_coeff @dihedral:nh-c3-c3-c3 fourier 1 0.21 3 0.0 # p13 SS AUE=0.8361 RMSE=0.9491 TorType=3 + dihedral_coeff @dihedral:o-c-c3-c3 fourier 1 0.27 2 180.0 # p14 SS AUE=0.2361 RMSE=0.3321 TorType=3 + dihedral_coeff @dihedral:oh-c3-c3-c3 fourier 1 0.21 3 0.0 # p7 SS AUE=0.6517 RMSE=0.7713 TorType=3 + dihedral_coeff @dihedral:oh-c3-c3-c fourier 1 0.21 3 0.0 # p25 SS AUE=0.3653 RMSE=0.6406 TorType=3 + dihedral_coeff @dihedral:oh-c3-c3-n fourier 1 0.101 3 0.0 # p24 SS AUE=0.9998 RMSE=1.2475 TorType=3 + dihedral_coeff @dihedral:oh-c3-oh-ho fourier 1 1.57 2 0.0 # t11 SS AUE=0.6180 RMSE=0.8544 TorType=3 + dihedral_coeff @dihedral:o-no-c2-c2 fourier 1 0.398 2 180.0 # c31 SS AUE=0.2143 RMSE=0.3292 TorType=3 + dihedral_coeff @dihedral:o-no-c2-c3 fourier 1 0.66 2 180.0 # set1_11 SS AUE=0.2915 RMSE=0.3323 TorType=3 + dihedral_coeff @dihedral:o-no-c3-no fourier 1 5.02 2 180.0 # t15 SS AUE=0.7609 RMSE=0.9238 TorType=3 + dihedral_coeff @dihedral:o-no-ca-ca fourier 1 0.7 2 180.0 # c68 SS AUE=0.2638 RMSE=0.3293 TorType=3 + dihedral_coeff @dihedral:o-no-cd-cc fourier 1 1.075 2 180.0 # add6e SS AUE=0.2138 RMSE=0.3290 TorType=3 + dihedral_coeff @dihedral:o-no-n2-c2 fourier 1 1.03 2 180.0 # c101 SS AUE=0.3306 RMSE=0.4189 TorType=3 + dihedral_coeff @dihedral:o-no-n3-c3 fourier 1 2.17 2 180.0 # c116 SS AUE=2.5004 RMSE=3.2115 TorType=3 + dihedral_coeff @dihedral:o-no-n4-c3 fourier 1 1.25 2 180.0 # c130 SS AUE=0.1901 RMSE=0.4144 TorType=3 + dihedral_coeff @dihedral:o-no-na-cc fourier 1 1.09 2 180.0 # c143 SS AUE=0.5033 RMSE=0.6912 TorType=3 + dihedral_coeff @dihedral:o-no-nh-c2 fourier 1 0.0 2 180.0 # set3_11 SS AUE=2.0620 RMSE=2.8356 TorType=3 + dihedral_coeff @dihedral:o-no-no-o fourier 2 0.15 4 180.0 1.45 2 180.0 # c166 GA AUE=0.3903 RMSE=0.4419 TorType=3 + dihedral_coeff @dihedral:o-no-p2-c2 fourier 1 0.99 2 180.0 # c169 SS AUE=0.2765 RMSE=0.3321 TorType=3 + dihedral_coeff @dihedral:o-no-p4-c3 fourier 1 0.502 2 180.0 # c171 SS AUE=0.3449 RMSE=0.3960 TorType=3 + dihedral_coeff @dihedral:o-py-ne-c2 fourier 2 0.9 3 180.0 2.46 1 0.0 # c107 GA AUE=0.4990 RMSE=0.6000 TorType=3 + dihedral_coeff @dihedral:o-s4-c3-s4 fourier 1 1.34 1 180.0 # t25 SS AUE=1.1411 RMSE=1.4982 TorType=3 + dihedral_coeff @dihedral:o-s6-c3-s6 fourier 1 0.092 3 0.0 # t24 SS AUE=0.4257 RMSE=0.4949 TorType=3 + dihedral_coeff @dihedral:os-c-c3-c fourier 2 2.0 2 180.0 1.85 1 180.0 # t42 GA AUE=0.4321 RMSE=0.5299 TorType=3 + dihedral_coeff @dihedral:os-p3-os-c3 fourier 1 2.04 2 0.0 # c189 SS AUE=1.0926 RMSE=1.3514 TorType=3 + dihedral_coeff @dihedral:os-p5-n3-c3 fourier 1 5.0 2 180.0 # c122 SS AUE=2.8241 RMSE=3.6042 TorType=3 + dihedral_coeff @dihedral:os-p5-n4-c3 fourier 1 0.143 3 0.0 # c136 SS AUE=0.4630 RMSE=0.6433 TorType=3 + dihedral_coeff @dihedral:os-p5-na-cc fourier 1 2.18 2 180.0 # c149 SS AUE=0.6556 RMSE=0.9113 TorType=3 + dihedral_coeff @dihedral:os-p5-nh-c2 fourier 1 0.5 2 0.0 # set3_17 SS AUE=0.9578 RMSE=1.1771 TorType=3 + dihedral_coeff @dihedral:os-p5-no-o fourier 2 2.733 2 0.0 0.317 3 0.0 # c172 GA AUE=0.6484 RMSE=0.8206 TorType=3 + dihedral_coeff @dihedral:os-p5-p3-c3 fourier 1 2.005 2 180.0 # c206 SS AUE=1.1482 RMSE=1.4324 TorType=3 + dihedral_coeff @dihedral:os-p5-ss-c3 fourier 1 4.467 2 180.0 # c219 SS AUE=0.9050 RMSE=1.1227 TorType=3 + dihedral_coeff @dihedral:os-py-ca-ca fourier 1 1.8 2 180.0 # c74 SS AUE=0.8528 RMSE=1.0796 TorType=3 + dihedral_coeff @dihedral:os-py-ce-c2 fourier 1 1.767 2 180.0 # c37 SS AUE=0.8275 RMSE=1.0644 TorType=3 + dihedral_coeff @dihedral:os-py-ce-c3 fourier 1 4.2 2 180.0 # set1_17 SS AUE=0.9222 RMSE=1.1571 TorType=3 + dihedral_coeff @dihedral:os-py-pe-c2 fourier 1 2.567 1 0.0 # c199 SS AUE=0.6931 RMSE=0.8807 TorType=3 + dihedral_coeff @dihedral:os-py-py-c3 fourier 1 0.386 2 0.0 # c212 SS AUE=0.6618 RMSE=0.8385 TorType=3 + dihedral_coeff @dihedral:os-py-py-os fourier 1 0.387 2 0.0 # c217 SS AUE=0.6636 RMSE=1.0913 TorType=3 + dihedral_coeff @dihedral:os-py-sx-c3 fourier 1 0.348 3 0.0 # c220 SS AUE=0.6436 RMSE=0.8137 TorType=3 + dihedral_coeff @dihedral:os-py-sy-c3 fourier 2 2.86 2 0.0 0.38 1 0.0 # c221 GA AUE=1.1694 RMSE=1.4143 TorType=3 + dihedral_coeff @dihedral:p3-c3-p3-hp fourier 1 0.215 3 0.0 # t19 SS AUE=1.0811 RMSE=1.2418 TorType=3 + dihedral_coeff @dihedral:s-c-c3-c fourier 1 0.332 2 180.0 # t10 SS AUE=0.9021 RMSE=1.2368 TorType=3 + dihedral_coeff @dihedral:sh-c3-c3-n fourier 1 0.21 3 0.0 # p4 SS AUE=1.1296 RMSE=1.3941 TorType=3 + dihedral_coeff @dihedral:sh-c3-sh-hs fourier 1 0.083 3 0.0 # t22 SS AUE=0.4554 RMSE=0.5406 TorType=3 + dihedral_coeff @dihedral:ss-c3-ss-c3 fourier 1 0.497 3 0.0 # t23 SS AUE=0.5714 RMSE=0.8553 TorType=3 + dihedral_coeff @dihedral:c3-c3-ca-ca fourier 1 0.245 2 180.0 # m15,m17 SS AUE=0.2499 RMSE=0.3414 TorType=3 + dihedral_coeff @dihedral:c3-c3-c-o fourier 3 0.03 2 180.0 0.55 3 180.0 0.74 1 0.0 # sialic1,t37,t41 GA AUE=0.7374 RMSE=0.9897 TorType=3 + dihedral_coeff @dihedral:c3-c3-os-c3 fourier 3 0.91 3 0.0 1.0 2 0.0 0.0 1 0.0 # lactose1,ccoc GA AUE=1.5236 RMSE=2.4206 TorType=3 + dihedral_coeff @dihedral:ca-ca-c-o fourier 1 0.5225 2 180.0 # phcooh,t36a SS AUE=0.2702 RMSE=0.3317 TorType=3 + dihedral_coeff @dihedral:o-c-c3-c fourier 2 1.36 1 0.0 0.18 3 180.0 # t6,t7,t8 GA AUE=0.3790 RMSE=0.4991 TorType=3 + dihedral_coeff @dihedral:os-c3-c-o fourier 3 0.63 2 180.0 1.0 3 180.0 0.08 1 0.0 # iduronic2,t39,t40 GA AUE=1.0545 RMSE=1.4852 TorType=3 + dihedral_coeff @dihedral:c2-ce-cs-c3 fourier 1 2.18 2 0.0 # set2_2 SS AUE=0.8412 RMSE=1.0280 TorType=3 + dihedral_coeff @dihedral:c2-ce-c-c3 fourier 1 2.97 2 0.0 # c2 SS AUE=0.5377 RMSE=0.6518 TorType=3 + dihedral_coeff @dihedral:c2-ce-ce-c2 fourier 1 0.5 2 180.0 # c232,t3 SS AUE=0.7154 RMSE=0.9564 TorType=3 + dihedral_coeff @dihedral:c2-n-c-c3 fourier 1 0.77 1 180.0 # set3_1 SS AUE=1.1124 RMSE=1.4578 TorType=3 + dihedral_coeff @dihedral:c2-n-cs-c3 fourier 1 2.833 2 180.0 # set3_27 SS AUE=0.3805 RMSE=0.4661 TorType=3 + dihedral_coeff @dihedral:c2-ne-c-c3 fourier 1 2.08 1 180.0 # c6 SS AUE=0.4876 RMSE=0.8222 TorType=3 + dihedral_coeff @dihedral:c2-ne-cs-c3 fourier 1 4.67 1 180.0 # set2_6 SS AUE=1.2531 RMSE=1.5945 TorType=3 + dihedral_coeff @dihedral:c2-pe-c-c3 fourier 1 1.75 1 180.0 # c14 SS AUE=1.0447 RMSE=1.2490 TorType=3 + dihedral_coeff @dihedral:c2-pe-cs-c3 fourier 1 2.96 1 180.0 # set2_14 SS AUE=0.8598 RMSE=1.0604 TorType=3 + dihedral_coeff @dihedral:c3-cs-cs-c3 fourier 1 0.455 2 180.0 # set3_23 SS AUE=0.7278 RMSE=1.0389 TorType=3 + dihedral_coeff @dihedral:c3-c-c-c3 fourier 1 0.512 2 180.0 # c1 SS AUE=0.2443 RMSE=0.3313 TorType=3 + dihedral_coeff @dihedral:c3-c-cs-c3 fourier 1 0.8 2 180.0 # set2_1 SS AUE=1.0068 RMSE=1.3922 TorType=3 + dihedral_coeff @dihedral:c3-c-n-ca fourier 2 0.75 2 180.0 0.5 3 0.0 # c10 GA AUE=1.0418 RMSE=1.1578 TorType=3 + dihedral_coeff @dihedral:c3-cs-n-ca fourier 1 3.913 2 180.0 # set2_10 SS AUE=1.3234 RMSE=1.7703 TorType=3 + dihedral_coeff @dihedral:c3-n7-c3-c3 fourier 2 0.02 3 180.0 0.05 2 0.0 # m13 GA AUE=0.3404 RMSE=0.4405 TorType=3 + dihedral_coeff @dihedral:c3-n3-c3-c3 fourier 2 0.58 3 0.0 0.28 2 180.0 # m14 GA AUE=0.4298 RMSE=0.5205 TorType=3 + dihedral_coeff @dihedral:c3-n-cs-c3 fourier 2 2.0 2 180.0 2.31 1 0.0 # set2_7 GA AUE=0.7571 RMSE=0.9582 TorType=3 + dihedral_coeff @dihedral:c3-nu-ca-ca fourier 1 0.55 2 180.0 # c67 SS AUE=0.5825 RMSE=0.8345 TorType=3 + dihedral_coeff @dihedral:c3-nh-ca-ca fourier 1 0.733 2 180.0 # c64 SS AUE=0.6264 RMSE=0.7797 TorType=3 + dihedral_coeff @dihedral:c3-os-cs-c3 fourier 3 0.12 1 0.0 3.47 2 180.0 0.73 3 0.0 # set2_13 GA AUE=0.2180 RMSE=0.2948 TorType=3 + dihedral_coeff @dihedral:c3-p3-c-c3 fourier 1 1.538 2 180.0 # c15 SS AUE=0.3737 RMSE=0.4391 TorType=3 + dihedral_coeff @dihedral:c3-p3-cs-c3 fourier 1 2.05 2 180.0 # set2_15 SS AUE=0.4669 RMSE=0.6407 TorType=3 + dihedral_coeff @dihedral:c3-ss-c-c3 fourier 1 2.1 2 180.0 # c19 SS AUE=0.9147 RMSE=1.1012 TorType=3 + dihedral_coeff @dihedral:c3-ss-cs-c3 fourier 1 3.585 2 180.0 # set2_19 SS AUE=0.3546 RMSE=0.4561 TorType=3 + dihedral_coeff @dihedral:c3-sx-c-c3 fourier 2 0.95 2 0.0 1.46 1 180.0 # c20 GA AUE=1.4077 RMSE=1.8160 TorType=3 + dihedral_coeff @dihedral:c3-sx-cs-c3 fourier 2 0.0 2 180.0 0.82 1 180.0 # set2_20 GA AUE=1.3014 RMSE=1.5331 TorType=3 + dihedral_coeff @dihedral:c3-sy-cs-c3 fourier 1 0.167 2 0.0 # set2_21 SS AUE=0.4320 RMSE=0.5527 TorType=3 + dihedral_coeff @dihedral:c3-sy-c-c3 fourier 1 0.833 2 0.0 # c21 SS AUE=1.1437 RMSE=1.4496 TorType=3 + dihedral_coeff @dihedral:ca-ca-c-c3 fourier 1 0.552 2 180.0 # c4 SS AUE=0.2254 RMSE=0.3313 TorType=3 + dihedral_coeff @dihedral:ca-ca-cs-c3 fourier 1 0.63 2 180.0 # set2_4 SS AUE=0.2690 RMSE=0.3277 TorType=3 + dihedral_coeff @dihedral:c-c3-c3-c3 fourier 1 0.1 3 0.0 # p15,p21 SS AUE=0.6594 RMSE=0.8092 TorType=3 + dihedral_coeff @dihedral:c-n-cs-c3 fourier 1 0.57 2 0.0 # set2_5 SS AUE=1.0844 RMSE=1.5574 TorType=3 + dihedral_coeff @dihedral:c-n-c-c3 fourier 2 0.0 2 180.0 1.72 1 180.0 # set3_28 GA AUE=1.6503 RMSE=2.2241 TorType=3 + dihedral_coeff @dihedral:hc-c3-c-c3 fourier 1 0.0 2 0.0 # c3 SS AUE=0.0845 RMSE=0.1001 TorType=3 + dihedral_coeff @dihedral:hc-c3-cs-c3 fourier 1 0.665 2 0.0 # set2_3 SS AUE=0.5619 RMSE=0.7242 TorType=3 + dihedral_coeff @dihedral:hn-n4-c-c3 fourier 2 1.025 2 180.0 0.365 4 180.0 # c8 GA AUE=0.2852 RMSE=0.3192 TorType=3 + dihedral_coeff @dihedral:hn-n4-cs-c3 fourier 2 0.95 2 180.0 0.745 4 0.0 # set2_8 GA AUE=0.7027 RMSE=0.8556 TorType=3 + dihedral_coeff @dihedral:ho-oh-c-c3 fourier 1 1.78 2 180.0 # c12 SS AUE=0.3293 RMSE=0.3814 TorType=3 + dihedral_coeff @dihedral:ho-oh-cs-c3 fourier 1 2.92 2 180.0 # set2_12 SS AUE=0.3286 RMSE=0.4081 TorType=3 + dihedral_coeff @dihedral:hs-sh-cs-c3 fourier 2 2.69 2 180.0 1.39 1 180.0 # set2_18 GA AUE=0.2516 RMSE=0.2978 TorType=3 + dihedral_coeff @dihedral:o-n-c-c3 fourier 1 0.37 2 180.0 # c11 SS AUE=0.3392 RMSE=0.4173 TorType=3 + dihedral_coeff @dihedral:o-n-cs-c3 fourier 1 0.52 2 0.0 # set2_11 SS AUE=0.2859 RMSE=0.3263 TorType=3 + dihedral_coeff @dihedral:o-p5-c3-p5 fourier 2 2.59 2 180.0 3.17 1 0.0 # t20 GA AUE=1.4330 RMSE=1.6847 TorType=3 + dihedral_coeff @dihedral:os-py-c-c3 fourier 1 2.37 2 0.0 # c17 SS AUE=1.1966 RMSE=1.4736 TorType=3 + dihedral_coeff @dihedral:os-py-cs-c3 fourier 1 0.5 2 0.0 # set2_17 SS AUE=0.8458 RMSE=1.0943 TorType=3 + } # (end of dihedral_coeffs) + + write_once("Data Dihedrals By Type") { + @dihedral:X-c-c-X @atom:* @atom:c @atom:c @atom:* + @dihedral:X-c-c1-X @atom:* @atom:c @atom:c1 @atom:* + @dihedral:X-c-cg-X @atom:* @atom:c @atom:cg @atom:* + @dihedral:X-c-ch-X @atom:* @atom:c @atom:ch @atom:* + @dihedral:X-c-c2-X @atom:* @atom:c @atom:c2 @atom:* + @dihedral:X-c-cu-X @atom:* @atom:c @atom:cu @atom:* + @dihedral:X-c-cv-X @atom:* @atom:c @atom:cv @atom:* + @dihedral:X-c-ce-X @atom:* @atom:c @atom:ce @atom:* + @dihedral:X-c-cf-X @atom:* @atom:c @atom:cf @atom:* + @dihedral:X-c-c3-X @atom:* @atom:c @atom:c3 @atom:* + @dihedral:X-c-cx-X @atom:* @atom:c @atom:cx @atom:* + @dihedral:X-c-cy-X @atom:* @atom:c @atom:cy @atom:* + @dihedral:X-c-ca-X @atom:* @atom:c @atom:ca @atom:* + @dihedral:X-c-cc-X @atom:* @atom:c @atom:cc @atom:* + @dihedral:X-c-cd-X @atom:* @atom:c @atom:cd @atom:* + @dihedral:X-c-n-X @atom:* @atom:c @atom:n @atom:* + @dihedral:X-c-n2-X @atom:* @atom:c @atom:n2 @atom:* + @dihedral:X-c-nc-X @atom:* @atom:c @atom:nc @atom:* + @dihedral:X-c-nd-X @atom:* @atom:c @atom:nd @atom:* + @dihedral:X-c-ne-X @atom:* @atom:c @atom:ne @atom:* + @dihedral:X-c-nf-X @atom:* @atom:c @atom:nf @atom:* + @dihedral:X-c-na-X @atom:* @atom:c @atom:na @atom:* + @dihedral:X-c-na-X @atom:* @atom:c @atom:na @atom:* + @dihedral:X-c-no-X @atom:* @atom:c @atom:no @atom:* + @dihedral:X-c-oh-X @atom:* @atom:c @atom:oh @atom:* + @dihedral:X-c-os-X @atom:* @atom:c @atom:os @atom:* + @dihedral:X-c-p2-X @atom:* @atom:c @atom:p2 @atom:* + @dihedral:X-c-pc-X @atom:* @atom:c @atom:pc @atom:* + @dihedral:X-c-pd-X @atom:* @atom:c @atom:pd @atom:* + @dihedral:X-c-pe-X @atom:* @atom:c @atom:pe @atom:* + @dihedral:X-c-pf-X @atom:* @atom:c @atom:pf @atom:* + @dihedral:X-c-p3-X @atom:* @atom:c @atom:p3 @atom:* + @dihedral:X-c-p4-X @atom:* @atom:c @atom:p4 @atom:* + @dihedral:X-c-px-X @atom:* @atom:c @atom:px @atom:* + @dihedral:X-c-p5-X @atom:* @atom:c @atom:p5 @atom:* + @dihedral:X-c-py-X @atom:* @atom:c @atom:py @atom:* + @dihedral:X-c-sh-X @atom:* @atom:c @atom:sh @atom:* + @dihedral:X-c-ss-X @atom:* @atom:c @atom:ss @atom:* + @dihedral:X-c-s4-X @atom:* @atom:c @atom:s4 @atom:* + @dihedral:X-c-sx-X @atom:* @atom:c @atom:sx @atom:* + @dihedral:X-c-s6-X @atom:* @atom:c @atom:s6 @atom:* + @dihedral:X-c-sy-X @atom:* @atom:c @atom:sy @atom:* + @dihedral:X-c1-c1-X @atom:* @atom:c1 @atom:c1 @atom:* + @dihedral:X-c1-cg-X @atom:* @atom:c1 @atom:cg @atom:* + @dihedral:X-c1-ch-X @atom:* @atom:c1 @atom:ch @atom:* + @dihedral:X-cg-cg-X @atom:* @atom:cg @atom:cg @atom:* + @dihedral:X-ch-ch-X @atom:* @atom:ch @atom:ch @atom:* + @dihedral:X-cg-ch-X @atom:* @atom:cg @atom:ch @atom:* + @dihedral:X-c1-c2-X @atom:* @atom:c1 @atom:c2 @atom:* + @dihedral:X-c1-c3-X @atom:* @atom:c1 @atom:c3 @atom:* + @dihedral:X-c1-ca-X @atom:* @atom:c1 @atom:ca @atom:* + @dihedral:X-c1-cc-X @atom:* @atom:c1 @atom:cc @atom:* + @dihedral:X-c1-cd-X @atom:* @atom:c1 @atom:cd @atom:* + @dihedral:X-c1-ce-X @atom:* @atom:c1 @atom:ce @atom:* + @dihedral:X-c1-cf-X @atom:* @atom:c1 @atom:cf @atom:* + @dihedral:X-c1-cu-X @atom:* @atom:c1 @atom:cu @atom:* + @dihedral:X-c1-cv-X @atom:* @atom:c1 @atom:cv @atom:* + @dihedral:X-c1-cx-X @atom:* @atom:c1 @atom:cx @atom:* + @dihedral:X-c1-cy-X @atom:* @atom:c1 @atom:cy @atom:* + @dihedral:X-c1-n-X @atom:* @atom:c1 @atom:n @atom:* + @dihedral:X-c1-n2-X @atom:* @atom:c1 @atom:n2 @atom:* + @dihedral:X-c1-n3-X @atom:* @atom:c1 @atom:n3 @atom:* + @dihedral:X-c1-n4-X @atom:* @atom:c1 @atom:n4 @atom:* + @dihedral:X-c1-na-X @atom:* @atom:c1 @atom:na @atom:* + @dihedral:X-c1-nb-X @atom:* @atom:c1 @atom:nb @atom:* + @dihedral:X-c1-nc-X @atom:* @atom:c1 @atom:nc @atom:* + @dihedral:X-c1-nd-X @atom:* @atom:c1 @atom:nd @atom:* + @dihedral:X-c1-ne-X @atom:* @atom:c1 @atom:ne @atom:* + @dihedral:X-c1-nf-X @atom:* @atom:c1 @atom:nf @atom:* + @dihedral:X-c1-nh-X @atom:* @atom:c1 @atom:nh @atom:* + @dihedral:X-c1-no-X @atom:* @atom:c1 @atom:no @atom:* + @dihedral:X-c1-oh-X @atom:* @atom:c1 @atom:oh @atom:* + @dihedral:X-c1-os-X @atom:* @atom:c1 @atom:os @atom:* + @dihedral:X-c1-p2-X @atom:* @atom:c1 @atom:p2 @atom:* + @dihedral:X-c1-pb-X @atom:* @atom:c1 @atom:pb @atom:* + @dihedral:X-c1-pc-X @atom:* @atom:c1 @atom:pc @atom:* + @dihedral:X-c1-pd-X @atom:* @atom:c1 @atom:pd @atom:* + @dihedral:X-c1-pe-X @atom:* @atom:c1 @atom:pe @atom:* + @dihedral:X-c1-pf-X @atom:* @atom:c1 @atom:pf @atom:* + @dihedral:X-c1-p3-X @atom:* @atom:c1 @atom:p3 @atom:* + @dihedral:X-c1-p4-X @atom:* @atom:c1 @atom:p4 @atom:* + @dihedral:X-c1-px-X @atom:* @atom:c1 @atom:px @atom:* + @dihedral:X-c1-p5-X @atom:* @atom:c1 @atom:p5 @atom:* + @dihedral:X-c1-py-X @atom:* @atom:c1 @atom:py @atom:* + @dihedral:X-c1-s2-X @atom:* @atom:c1 @atom:s2 @atom:* + @dihedral:X-c1-sh-X @atom:* @atom:c1 @atom:sh @atom:* + @dihedral:X-c1-ss-X @atom:* @atom:c1 @atom:ss @atom:* + @dihedral:X-c1-s4-X @atom:* @atom:c1 @atom:s4 @atom:* + @dihedral:X-c1-sx-X @atom:* @atom:c1 @atom:sx @atom:* + @dihedral:X-c1-s6-X @atom:* @atom:c1 @atom:s6 @atom:* + @dihedral:X-c1-sy-X @atom:* @atom:c1 @atom:sy @atom:* + @dihedral:X-c2-c2-X @atom:* @atom:c2 @atom:c2 @atom:* + @dihedral:X-c2-ce-X @atom:* @atom:c2 @atom:ce @atom:* + @dihedral:X-c2-cf-X @atom:* @atom:c2 @atom:cf @atom:* + @dihedral:X-ce-cf-X @atom:* @atom:ce @atom:cf @atom:* + @dihedral:X-ce-ce-X @atom:* @atom:ce @atom:ce @atom:* + @dihedral:X-cf-cf-X @atom:* @atom:cf @atom:cf @atom:* + @dihedral:X-cc-cd-X @atom:* @atom:cc @atom:cd @atom:* + @dihedral:X-cc-cc-X @atom:* @atom:cc @atom:cc @atom:* + @dihedral:X-cd-cd-X @atom:* @atom:cd @atom:cd @atom:* + @dihedral:X-c2-c3-X @atom:* @atom:c2 @atom:c3 @atom:* + @dihedral:X-c2-ca-X @atom:* @atom:c2 @atom:ca @atom:* + @dihedral:X-c2-n-X @atom:* @atom:c2 @atom:n @atom:* + @dihedral:X-c2-n2-X @atom:* @atom:c2 @atom:n2 @atom:* + @dihedral:X-c2-ne-X @atom:* @atom:c2 @atom:ne @atom:* + @dihedral:X-c2-nf-X @atom:* @atom:c2 @atom:nf @atom:* + @dihedral:X-ce-ne-X @atom:* @atom:ce @atom:ne @atom:* + @dihedral:X-cf-nf-X @atom:* @atom:cf @atom:nf @atom:* + @dihedral:X-c2-nc-X @atom:* @atom:c2 @atom:nc @atom:* + @dihedral:X-c2-nd-X @atom:* @atom:c2 @atom:nd @atom:* + @dihedral:X-cc-nd-X @atom:* @atom:cc @atom:nd @atom:* + @dihedral:X-cd-nc-X @atom:* @atom:cd @atom:nc @atom:* + @dihedral:X-cc-nc-X @atom:* @atom:cc @atom:nc @atom:* + @dihedral:X-cd-nd-X @atom:* @atom:cd @atom:nd @atom:* + @dihedral:X-c2-n3-X @atom:* @atom:c2 @atom:n3 @atom:* + @dihedral:X-c2-n4-X @atom:* @atom:c2 @atom:n4 @atom:* + @dihedral:X-c2-na-X @atom:* @atom:c2 @atom:na @atom:* + @dihedral:X-cc-na-X @atom:* @atom:cc @atom:na @atom:* + @dihedral:X-cd-na-X @atom:* @atom:cd @atom:na @atom:* + @dihedral:X-c2-nh-X @atom:* @atom:c2 @atom:nh @atom:* + @dihedral:X-c2-no-X @atom:* @atom:c2 @atom:no @atom:* + @dihedral:X-c2-oh-X @atom:* @atom:c2 @atom:oh @atom:* + @dihedral:X-c2-os-X @atom:* @atom:c2 @atom:os @atom:* + @dihedral:X-c2-p2-X @atom:* @atom:c2 @atom:p2 @atom:* + @dihedral:X-c2-pe-X @atom:* @atom:c2 @atom:pe @atom:* + @dihedral:X-c2-pf-X @atom:* @atom:c2 @atom:pf @atom:* + @dihedral:X-ce-pf-X @atom:* @atom:ce @atom:pf @atom:* + @dihedral:X-ce-pe-X @atom:* @atom:ce @atom:pe @atom:* + @dihedral:X-cf-pf-X @atom:* @atom:cf @atom:pf @atom:* + @dihedral:X-c2-pc-X @atom:* @atom:c2 @atom:pc @atom:* + @dihedral:X-c2-pd-X @atom:* @atom:c2 @atom:pd @atom:* + @dihedral:X-cc-pc-X @atom:* @atom:cc @atom:pc @atom:* + @dihedral:X-cc-pd-X @atom:* @atom:cc @atom:pd @atom:* + @dihedral:X-cd-pc-X @atom:* @atom:cd @atom:pc @atom:* + @dihedral:X-cd-pd-X @atom:* @atom:cd @atom:pd @atom:* + @dihedral:X-c2-p3-X @atom:* @atom:c2 @atom:p3 @atom:* + @dihedral:X-c2-p4-X @atom:* @atom:c2 @atom:p4 @atom:* + @dihedral:X-ce-p4-X @atom:* @atom:ce @atom:p4 @atom:* + @dihedral:X-cf-p4-X @atom:* @atom:cf @atom:p4 @atom:* + @dihedral:X-c2-px-X @atom:* @atom:c2 @atom:px @atom:* + @dihedral:X-ce-px-X @atom:* @atom:ce @atom:px @atom:* + @dihedral:X-cf-px-X @atom:* @atom:cf @atom:px @atom:* + @dihedral:X-c2-p5-X @atom:* @atom:c2 @atom:p5 @atom:* + @dihedral:X-ce-p5-X @atom:* @atom:ce @atom:p5 @atom:* + @dihedral:X-cf-p5-X @atom:* @atom:cf @atom:p5 @atom:* + @dihedral:X-c2-py-X @atom:* @atom:c2 @atom:py @atom:* + @dihedral:X-ce-py-X @atom:* @atom:ce @atom:py @atom:* + @dihedral:X-cf-py-X @atom:* @atom:cf @atom:py @atom:* + @dihedral:X-c2-sh-X @atom:* @atom:c2 @atom:sh @atom:* + @dihedral:X-c2-ss-X @atom:* @atom:c2 @atom:ss @atom:* + @dihedral:X-c2-s4-X @atom:* @atom:c2 @atom:s4 @atom:* + @dihedral:X-ce-s4-X @atom:* @atom:ce @atom:s4 @atom:* + @dihedral:X-cf-s4-X @atom:* @atom:cf @atom:s4 @atom:* + @dihedral:X-c2-sx-X @atom:* @atom:c2 @atom:sx @atom:* + @dihedral:X-ce-sx-X @atom:* @atom:ce @atom:sx @atom:* + @dihedral:X-cf-sx-X @atom:* @atom:cf @atom:sx @atom:* + @dihedral:X-c2-s6-X @atom:* @atom:c2 @atom:s6 @atom:* + @dihedral:X-ce-s6-X @atom:* @atom:ce @atom:s6 @atom:* + @dihedral:X-cf-s6-X @atom:* @atom:cf @atom:s6 @atom:* + @dihedral:X-c2-sy-X @atom:* @atom:c2 @atom:sy @atom:* + @dihedral:X-ce-sy-X @atom:* @atom:ce @atom:sy @atom:* + @dihedral:X-cf-sy-X @atom:* @atom:cf @atom:sy @atom:* + @dihedral:X-c3-c3-X @atom:* @atom:c3 @atom:c3 @atom:* + @dihedral:X-cx-cx-X @atom:* @atom:cx @atom:cx @atom:* + @dihedral:X-cy-cy-X @atom:* @atom:cy @atom:cy @atom:* + @dihedral:X-c3-ca-X @atom:* @atom:c3 @atom:ca @atom:* + @dihedral:X-c3-n-X @atom:* @atom:c3 @atom:n @atom:* + @dihedral:X-cx-n-X @atom:* @atom:cx @atom:n @atom:* + @dihedral:X-cy-n-X @atom:* @atom:cy @atom:n @atom:* + @dihedral:X-c3-n2-X @atom:* @atom:c3 @atom:n2 @atom:* + @dihedral:X-c3-ne-X @atom:* @atom:c3 @atom:ne @atom:* + @dihedral:X-c3-nf-X @atom:* @atom:c3 @atom:nf @atom:* + @dihedral:X-c3-n3-X @atom:* @atom:c3 @atom:n3 @atom:* + @dihedral:X-c3-n4-X @atom:* @atom:c3 @atom:n4 @atom:* + @dihedral:X-c3-na-X @atom:* @atom:c3 @atom:na @atom:* + @dihedral:X-c3-nh-X @atom:* @atom:c3 @atom:nh @atom:* + @dihedral:X-c3-no-X @atom:* @atom:c3 @atom:no @atom:* + @dihedral:X-c3-oh-X @atom:* @atom:c3 @atom:oh @atom:* + @dihedral:X-c3-os-X @atom:* @atom:c3 @atom:os @atom:* + @dihedral:X-c3-p2-X @atom:* @atom:c3 @atom:p2 @atom:* + @dihedral:X-c3-pe-X @atom:* @atom:c3 @atom:pe @atom:* + @dihedral:X-c3-pf-X @atom:* @atom:c3 @atom:pf @atom:* + @dihedral:X-c3-p3-X @atom:* @atom:c3 @atom:p3 @atom:* + @dihedral:X-c3-p4-X @atom:* @atom:c3 @atom:p4 @atom:* + @dihedral:X-c3-px-X @atom:* @atom:c3 @atom:px @atom:* + @dihedral:X-c3-p5-X @atom:* @atom:c3 @atom:p5 @atom:* + @dihedral:X-c3-py-X @atom:* @atom:c3 @atom:py @atom:* + @dihedral:X-c3-sh-X @atom:* @atom:c3 @atom:sh @atom:* + @dihedral:X-c3-ss-X @atom:* @atom:c3 @atom:ss @atom:* + @dihedral:X-c3-s4-X @atom:* @atom:c3 @atom:s4 @atom:* + @dihedral:X-c3-sx-X @atom:* @atom:c3 @atom:sx @atom:* + @dihedral:X-c3-s6-X @atom:* @atom:c3 @atom:s6 @atom:* + @dihedral:X-c3-sy-X @atom:* @atom:c3 @atom:sy @atom:* + @dihedral:X-c3-cc-X @atom:* @atom:c3 @atom:cc @atom:* + @dihedral:X-c3-cd-X @atom:* @atom:c3 @atom:cd @atom:* + @dihedral:X-ca-ca-X @atom:* @atom:ca @atom:ca @atom:* + @dihedral:X-ca-cp-X @atom:* @atom:ca @atom:cp @atom:* + @dihedral:X-ca-cq-X @atom:* @atom:ca @atom:cq @atom:* + @dihedral:X-cp-cp-X @atom:* @atom:cp @atom:cp @atom:* + @dihedral:X-cq-cq-X @atom:* @atom:cq @atom:cq @atom:* + @dihedral:X-ca-n-X @atom:* @atom:ca @atom:n @atom:* + @dihedral:X-ca-n2-X @atom:* @atom:ca @atom:n2 @atom:* + @dihedral:X-ca-ne-X @atom:* @atom:ca @atom:ne @atom:* + @dihedral:X-ca-nf-X @atom:* @atom:ca @atom:nf @atom:* + @dihedral:X-ca-n4-X @atom:* @atom:ca @atom:n4 @atom:* + @dihedral:X-ca-na-X @atom:* @atom:ca @atom:na @atom:* + @dihedral:X-ca-nb-X @atom:* @atom:ca @atom:nb @atom:* + @dihedral:X-ca-nc-X @atom:* @atom:ca @atom:nc @atom:* + @dihedral:X-ca-nd-X @atom:* @atom:ca @atom:nd @atom:* + @dihedral:X-ca-nh-X @atom:* @atom:ca @atom:nh @atom:* + @dihedral:X-cc-nh-X @atom:* @atom:cc @atom:nh @atom:* + @dihedral:X-cd-nh-X @atom:* @atom:cd @atom:nh @atom:* + @dihedral:X-ca-no-X @atom:* @atom:ca @atom:no @atom:* + @dihedral:X-ca-oh-X @atom:* @atom:ca @atom:oh @atom:* + @dihedral:X-ca-os-X @atom:* @atom:ca @atom:os @atom:* + @dihedral:X-ca-p2-X @atom:* @atom:ca @atom:p2 @atom:* + @dihedral:X-ca-pe-X @atom:* @atom:ca @atom:pe @atom:* + @dihedral:X-ca-pf-X @atom:* @atom:ca @atom:pf @atom:* + @dihedral:X-ca-pc-X @atom:* @atom:ca @atom:pc @atom:* + @dihedral:X-ca-pd-X @atom:* @atom:ca @atom:pd @atom:* + @dihedral:X-ca-p3-X @atom:* @atom:ca @atom:p3 @atom:* + @dihedral:X-ca-p4-X @atom:* @atom:ca @atom:p4 @atom:* + @dihedral:X-ca-px-X @atom:* @atom:ca @atom:px @atom:* + @dihedral:X-ca-p5-X @atom:* @atom:ca @atom:p5 @atom:* + @dihedral:X-ca-py-X @atom:* @atom:ca @atom:py @atom:* + @dihedral:X-ca-sh-X @atom:* @atom:ca @atom:sh @atom:* + @dihedral:X-ca-ss-X @atom:* @atom:ca @atom:ss @atom:* + @dihedral:X-ca-s4-X @atom:* @atom:ca @atom:s4 @atom:* + @dihedral:X-ca-sx-X @atom:* @atom:ca @atom:sx @atom:* + @dihedral:X-ca-s6-X @atom:* @atom:ca @atom:s6 @atom:* + @dihedral:X-ca-sy-X @atom:* @atom:ca @atom:sy @atom:* + @dihedral:X-n-cc-X @atom:* @atom:n @atom:cc @atom:* + @dihedral:X-n-cd-X @atom:* @atom:n @atom:cd @atom:* + @dihedral:X-n-n-X @atom:* @atom:n @atom:n @atom:* + @dihedral:X-n-n2-X @atom:* @atom:n @atom:n2 @atom:* + @dihedral:X-n-ne-X @atom:* @atom:n @atom:ne @atom:* + @dihedral:X-n-nf-X @atom:* @atom:n @atom:nf @atom:* + @dihedral:X-n-n3-X @atom:* @atom:n @atom:n3 @atom:* + @dihedral:X-n-n4-X @atom:* @atom:n @atom:n4 @atom:* + @dihedral:X-n-na-X @atom:* @atom:n @atom:na @atom:* + @dihedral:X-n-nc-X @atom:* @atom:n @atom:nc @atom:* + @dihedral:X-n-nd-X @atom:* @atom:n @atom:nd @atom:* + @dihedral:X-n-nh-X @atom:* @atom:n @atom:nh @atom:* + @dihedral:X-n-no-X @atom:* @atom:n @atom:no @atom:* + @dihedral:X-n-oh-X @atom:* @atom:n @atom:oh @atom:* + @dihedral:X-n-os-X @atom:* @atom:n @atom:os @atom:* + @dihedral:X-n-p2-X @atom:* @atom:n @atom:p2 @atom:* + @dihedral:X-n-pe-X @atom:* @atom:n @atom:pe @atom:* + @dihedral:X-n-pf-X @atom:* @atom:n @atom:pf @atom:* + @dihedral:X-n-pc-X @atom:* @atom:n @atom:pc @atom:* + @dihedral:X-n-pd-X @atom:* @atom:n @atom:pd @atom:* + @dihedral:X-n-p3-X @atom:* @atom:n @atom:p3 @atom:* + @dihedral:X-n-p4-X @atom:* @atom:n @atom:p4 @atom:* + @dihedral:X-n-px-X @atom:* @atom:n @atom:px @atom:* + @dihedral:X-n-p5-X @atom:* @atom:n @atom:p5 @atom:* + @dihedral:X-n-py-X @atom:* @atom:n @atom:py @atom:* + @dihedral:X-n-sh-X @atom:* @atom:n @atom:sh @atom:* + @dihedral:X-n-ss-X @atom:* @atom:n @atom:ss @atom:* + @dihedral:X-n-s4-X @atom:* @atom:n @atom:s4 @atom:* + @dihedral:X-n-sx-X @atom:* @atom:n @atom:sx @atom:* + @dihedral:X-n-s6-X @atom:* @atom:n @atom:s6 @atom:* + @dihedral:X-n-sy-X @atom:* @atom:n @atom:sy @atom:* + @dihedral:X-n1-c2-X @atom:* @atom:n1 @atom:c2 @atom:* + @dihedral:X-n1-c3-X @atom:* @atom:n1 @atom:c3 @atom:* + @dihedral:X-n1-ca-X @atom:* @atom:n1 @atom:ca @atom:* + @dihedral:X-n1-cc-X @atom:* @atom:n1 @atom:cc @atom:* + @dihedral:X-n1-cd-X @atom:* @atom:n1 @atom:cd @atom:* + @dihedral:X-n1-ce-X @atom:* @atom:n1 @atom:ce @atom:* + @dihedral:X-n1-cf-X @atom:* @atom:n1 @atom:cf @atom:* + @dihedral:X-n1-cu-X @atom:* @atom:n1 @atom:cu @atom:* + @dihedral:X-n1-cv-X @atom:* @atom:n1 @atom:cv @atom:* + @dihedral:X-n1-cx-X @atom:* @atom:n1 @atom:cx @atom:* + @dihedral:X-n1-cy-X @atom:* @atom:n1 @atom:cy @atom:* + @dihedral:X-n1-n-X @atom:* @atom:n1 @atom:n @atom:* + @dihedral:X-n1-n1-X @atom:* @atom:n1 @atom:n1 @atom:* + @dihedral:X-n1-n2-X @atom:* @atom:n1 @atom:n2 @atom:* + @dihedral:X-n1-n3-X @atom:* @atom:n1 @atom:n3 @atom:* + @dihedral:X-n1-n4-X @atom:* @atom:n1 @atom:n4 @atom:* + @dihedral:X-n1-na-X @atom:* @atom:n1 @atom:na @atom:* + @dihedral:X-n1-nb-X @atom:* @atom:n1 @atom:nb @atom:* + @dihedral:X-n1-nc-X @atom:* @atom:n1 @atom:nc @atom:* + @dihedral:X-n1-nd-X @atom:* @atom:n1 @atom:nd @atom:* + @dihedral:X-n1-ne-X @atom:* @atom:n1 @atom:ne @atom:* + @dihedral:X-n1-nf-X @atom:* @atom:n1 @atom:nf @atom:* + @dihedral:X-n1-nh-X @atom:* @atom:n1 @atom:nh @atom:* + @dihedral:X-n1-no-X @atom:* @atom:n1 @atom:no @atom:* + @dihedral:X-n1-oh-X @atom:* @atom:n1 @atom:oh @atom:* + @dihedral:X-n1-os-X @atom:* @atom:n1 @atom:os @atom:* + @dihedral:X-n1-p2-X @atom:* @atom:n1 @atom:p2 @atom:* + @dihedral:X-n1-pb-X @atom:* @atom:n1 @atom:pb @atom:* + @dihedral:X-n1-pc-X @atom:* @atom:n1 @atom:pc @atom:* + @dihedral:X-n1-pd-X @atom:* @atom:n1 @atom:pd @atom:* + @dihedral:X-n1-pe-X @atom:* @atom:n1 @atom:pe @atom:* + @dihedral:X-n1-pf-X @atom:* @atom:n1 @atom:pf @atom:* + @dihedral:X-n1-p3-X @atom:* @atom:n1 @atom:p3 @atom:* + @dihedral:X-n1-p4-X @atom:* @atom:n1 @atom:p4 @atom:* + @dihedral:X-n1-px-X @atom:* @atom:n1 @atom:px @atom:* + @dihedral:X-n1-p5-X @atom:* @atom:n1 @atom:p5 @atom:* + @dihedral:X-n1-py-X @atom:* @atom:n1 @atom:py @atom:* + @dihedral:X-n1-s2-X @atom:* @atom:n1 @atom:s2 @atom:* + @dihedral:X-n1-sh-X @atom:* @atom:n1 @atom:sh @atom:* + @dihedral:X-n1-ss-X @atom:* @atom:n1 @atom:ss @atom:* + @dihedral:X-n1-s4-X @atom:* @atom:n1 @atom:s4 @atom:* + @dihedral:X-n1-sx-X @atom:* @atom:n1 @atom:sx @atom:* + @dihedral:X-n1-s6-X @atom:* @atom:n1 @atom:s6 @atom:* + @dihedral:X-n1-sy-X @atom:* @atom:n1 @atom:sy @atom:* + @dihedral:X-n2-n2-X @atom:* @atom:n2 @atom:n2 @atom:* + @dihedral:X-n2-n2-X @atom:* @atom:n2 @atom:n2 @atom:* + @dihedral:X-n2-ne-X @atom:* @atom:n2 @atom:ne @atom:* + @dihedral:X-n2-ne-X @atom:* @atom:n2 @atom:ne @atom:* + @dihedral:X-n2-nf-X @atom:* @atom:n2 @atom:nf @atom:* + @dihedral:X-n2-nf-X @atom:* @atom:n2 @atom:nf @atom:* + @dihedral:X-ne-nf-X @atom:* @atom:ne @atom:nf @atom:* + @dihedral:X-ne-nf-X @atom:* @atom:ne @atom:nf @atom:* + @dihedral:X-ne-ne-X @atom:* @atom:ne @atom:ne @atom:* + @dihedral:X-nf-nf-X @atom:* @atom:nf @atom:nf @atom:* + @dihedral:X-nc-nc-X @atom:* @atom:nc @atom:nc @atom:* + @dihedral:X-nd-nd-X @atom:* @atom:nd @atom:nd @atom:* + @dihedral:X-nc-nd-X @atom:* @atom:nc @atom:nd @atom:* + @dihedral:X-n2-nc-X @atom:* @atom:n2 @atom:nc @atom:* + @dihedral:X-n2-nc-X @atom:* @atom:n2 @atom:nc @atom:* + @dihedral:X-n2-nd-X @atom:* @atom:n2 @atom:nd @atom:* + @dihedral:X-n2-nd-X @atom:* @atom:n2 @atom:nd @atom:* + @dihedral:X-n2-n3-X @atom:* @atom:n2 @atom:n3 @atom:* + @dihedral:X-ne-n3-X @atom:* @atom:ne @atom:n3 @atom:* + @dihedral:X-nf-n3-X @atom:* @atom:nf @atom:n3 @atom:* + @dihedral:X-n2-n4-X @atom:* @atom:n2 @atom:n4 @atom:* + @dihedral:X-ne-n4-X @atom:* @atom:ne @atom:n4 @atom:* + @dihedral:X-nf-n4-X @atom:* @atom:nf @atom:n4 @atom:* + @dihedral:X-n2-na-X @atom:* @atom:n2 @atom:na @atom:* + @dihedral:X-ne-na-X @atom:* @atom:ne @atom:na @atom:* + @dihedral:X-nf-na-X @atom:* @atom:nf @atom:na @atom:* + @dihedral:X-na-nc-X @atom:* @atom:na @atom:nc @atom:* + @dihedral:X-na-nd-X @atom:* @atom:na @atom:nd @atom:* + @dihedral:X-n2-nh-X @atom:* @atom:n2 @atom:nh @atom:* + @dihedral:X-ne-nh-X @atom:* @atom:ne @atom:nh @atom:* + @dihedral:X-nf-nh-X @atom:* @atom:nf @atom:nh @atom:* + @dihedral:X-n2-no-X @atom:* @atom:n2 @atom:no @atom:* + @dihedral:X-ne-no-X @atom:* @atom:ne @atom:no @atom:* + @dihedral:X-nf-no-X @atom:* @atom:nf @atom:no @atom:* + @dihedral:X-n2-oh-X @atom:* @atom:n2 @atom:oh @atom:* + @dihedral:X-ne-oh-X @atom:* @atom:ne @atom:oh @atom:* + @dihedral:X-nf-oh-X @atom:* @atom:nf @atom:oh @atom:* + @dihedral:X-n2-os-X @atom:* @atom:n2 @atom:os @atom:* + @dihedral:X-ne-os-X @atom:* @atom:ne @atom:os @atom:* + @dihedral:X-nf-os-X @atom:* @atom:nf @atom:os @atom:* + @dihedral:X-nc-os-X @atom:* @atom:nc @atom:os @atom:* + @dihedral:X-nc-ss-X @atom:* @atom:nc @atom:ss @atom:* + @dihedral:X-n2-p2-X @atom:* @atom:n2 @atom:p2 @atom:* + @dihedral:X-n2-pe-X @atom:* @atom:n2 @atom:pe @atom:* + @dihedral:X-n2-pf-X @atom:* @atom:n2 @atom:pf @atom:* + @dihedral:X-ne-pf-X @atom:* @atom:ne @atom:pf @atom:* + @dihedral:X-n2-pc-X @atom:* @atom:n2 @atom:pc @atom:* + @dihedral:X-n2-pd-X @atom:* @atom:n2 @atom:pd @atom:* + @dihedral:X-nc-p2-X @atom:* @atom:nc @atom:p2 @atom:* + @dihedral:X-nd-p2-X @atom:* @atom:nd @atom:p2 @atom:* + @dihedral:X-nc-pc-X @atom:* @atom:nc @atom:pc @atom:* + @dihedral:X-nd-pd-X @atom:* @atom:nd @atom:pd @atom:* + @dihedral:X-nd-pc-X @atom:* @atom:nd @atom:pc @atom:* + @dihedral:X-nc-pd-X @atom:* @atom:nc @atom:pd @atom:* + @dihedral:X-ne-pe-X @atom:* @atom:ne @atom:pe @atom:* + @dihedral:X-nf-pf-X @atom:* @atom:nf @atom:pf @atom:* + @dihedral:X-n2-p3-X @atom:* @atom:n2 @atom:p3 @atom:* + @dihedral:X-n2-p4-X @atom:* @atom:n2 @atom:p4 @atom:* + @dihedral:X-ne-p4-X @atom:* @atom:ne @atom:p4 @atom:* + @dihedral:X-nf-p4-X @atom:* @atom:nf @atom:p4 @atom:* + @dihedral:X-n2-p5-X @atom:* @atom:n2 @atom:p5 @atom:* + @dihedral:X-ne-p5-X @atom:* @atom:ne @atom:p5 @atom:* + @dihedral:X-nf-p5-X @atom:* @atom:nf @atom:p5 @atom:* + @dihedral:X-ne-px-X @atom:* @atom:ne @atom:px @atom:* + @dihedral:X-nf-px-X @atom:* @atom:nf @atom:px @atom:* + @dihedral:X-n2-sh-X @atom:* @atom:n2 @atom:sh @atom:* + @dihedral:X-ne-sh-X @atom:* @atom:ne @atom:sh @atom:* + @dihedral:X-nf-sh-X @atom:* @atom:nf @atom:sh @atom:* + @dihedral:X-n2-ss-X @atom:* @atom:n2 @atom:ss @atom:* + @dihedral:X-n2-ss-X @atom:* @atom:n2 @atom:ss @atom:* + @dihedral:X-ne-ss-X @atom:* @atom:ne @atom:ss @atom:* + @dihedral:X-ne-ss-X @atom:* @atom:ne @atom:ss @atom:* + @dihedral:X-nf-ss-X @atom:* @atom:nf @atom:ss @atom:* + @dihedral:X-nf-ss-X @atom:* @atom:nf @atom:ss @atom:* + @dihedral:X-n2-s4-X @atom:* @atom:n2 @atom:s4 @atom:* + @dihedral:X-ne-sx-X @atom:* @atom:ne @atom:sx @atom:* + @dihedral:X-nf-sx-X @atom:* @atom:nf @atom:sx @atom:* + @dihedral:X-n2-s6-X @atom:* @atom:n2 @atom:s6 @atom:* + @dihedral:X-ne-sy-X @atom:* @atom:ne @atom:sy @atom:* + @dihedral:X-ne-sy-X @atom:* @atom:ne @atom:sy @atom:* + @dihedral:X-nf-sy-X @atom:* @atom:nf @atom:sy @atom:* + @dihedral:X-nf-sy-X @atom:* @atom:nf @atom:sy @atom:* + @dihedral:X-n3-n3-X @atom:* @atom:n3 @atom:n3 @atom:* + @dihedral:X-n3-n4-X @atom:* @atom:n3 @atom:n4 @atom:* + @dihedral:X-n3-na-X @atom:* @atom:n3 @atom:na @atom:* + @dihedral:X-n3-nh-X @atom:* @atom:n3 @atom:nh @atom:* + @dihedral:X-n3-no-X @atom:* @atom:n3 @atom:no @atom:* + @dihedral:X-n3-oh-X @atom:* @atom:n3 @atom:oh @atom:* + @dihedral:X-n3-os-X @atom:* @atom:n3 @atom:os @atom:* + @dihedral:X-n3-p2-X @atom:* @atom:n3 @atom:p2 @atom:* + @dihedral:X-n3-pe-X @atom:* @atom:n3 @atom:pe @atom:* + @dihedral:X-n3-pf-X @atom:* @atom:n3 @atom:pf @atom:* + @dihedral:X-n3-p3-X @atom:* @atom:n3 @atom:p3 @atom:* + @dihedral:X-n3-p4-X @atom:* @atom:n3 @atom:p4 @atom:* + @dihedral:X-n3-px-X @atom:* @atom:n3 @atom:px @atom:* + @dihedral:X-n3-p5-X @atom:* @atom:n3 @atom:p5 @atom:* + @dihedral:X-n3-py-X @atom:* @atom:n3 @atom:py @atom:* + @dihedral:X-n3-sh-X @atom:* @atom:n3 @atom:sh @atom:* + @dihedral:X-n3-ss-X @atom:* @atom:n3 @atom:ss @atom:* + @dihedral:X-n3-s4-X @atom:* @atom:n3 @atom:s4 @atom:* + @dihedral:X-n3-sx-X @atom:* @atom:n3 @atom:sx @atom:* + @dihedral:X-n3-s6-X @atom:* @atom:n3 @atom:s6 @atom:* + @dihedral:X-n3-sy-X @atom:* @atom:n3 @atom:sy @atom:* + @dihedral:X-n4-n4-X @atom:* @atom:n4 @atom:n4 @atom:* + @dihedral:X-n4-na-X @atom:* @atom:n4 @atom:na @atom:* + @dihedral:X-n4-nh-X @atom:* @atom:n4 @atom:nh @atom:* + @dihedral:X-n4-no-X @atom:* @atom:n4 @atom:no @atom:* + @dihedral:X-n4-oh-X @atom:* @atom:n4 @atom:oh @atom:* + @dihedral:X-n4-os-X @atom:* @atom:n4 @atom:os @atom:* + @dihedral:X-n4-p2-X @atom:* @atom:n4 @atom:p2 @atom:* + @dihedral:X-n4-pe-X @atom:* @atom:n4 @atom:pe @atom:* + @dihedral:X-n4-pf-X @atom:* @atom:n4 @atom:pf @atom:* + @dihedral:X-n4-p3-X @atom:* @atom:n4 @atom:p3 @atom:* + @dihedral:X-n4-p4-X @atom:* @atom:n4 @atom:p4 @atom:* + @dihedral:X-n4-px-X @atom:* @atom:n4 @atom:px @atom:* + @dihedral:X-n4-p5-X @atom:* @atom:n4 @atom:p5 @atom:* + @dihedral:X-n4-py-X @atom:* @atom:n4 @atom:py @atom:* + @dihedral:X-n4-sh-X @atom:* @atom:n4 @atom:sh @atom:* + @dihedral:X-n4-ss-X @atom:* @atom:n4 @atom:ss @atom:* + @dihedral:X-n4-s4-X @atom:* @atom:n4 @atom:s4 @atom:* + @dihedral:X-n4-sx-X @atom:* @atom:n4 @atom:sx @atom:* + @dihedral:X-n4-s6-X @atom:* @atom:n4 @atom:s6 @atom:* + @dihedral:X-n4-sy-X @atom:* @atom:n4 @atom:sy @atom:* + @dihedral:X-na-na-X @atom:* @atom:na @atom:na @atom:* + @dihedral:X-na-nh-X @atom:* @atom:na @atom:nh @atom:* + @dihedral:X-na-no-X @atom:* @atom:na @atom:no @atom:* + @dihedral:X-na-oh-X @atom:* @atom:na @atom:oh @atom:* + @dihedral:X-na-os-X @atom:* @atom:na @atom:os @atom:* + @dihedral:X-na-p2-X @atom:* @atom:na @atom:p2 @atom:* + @dihedral:X-na-pe-X @atom:* @atom:na @atom:pe @atom:* + @dihedral:X-na-pf-X @atom:* @atom:na @atom:pf @atom:* + @dihedral:X-na-p3-X @atom:* @atom:na @atom:p3 @atom:* + @dihedral:X-na-p4-X @atom:* @atom:na @atom:p4 @atom:* + @dihedral:X-na-px-X @atom:* @atom:na @atom:px @atom:* + @dihedral:X-na-p5-X @atom:* @atom:na @atom:p5 @atom:* + @dihedral:X-na-py-X @atom:* @atom:na @atom:py @atom:* + @dihedral:X-na-sh-X @atom:* @atom:na @atom:sh @atom:* + @dihedral:X-na-ss-X @atom:* @atom:na @atom:ss @atom:* + @dihedral:X-na-s4-X @atom:* @atom:na @atom:s4 @atom:* + @dihedral:X-na-sx-X @atom:* @atom:na @atom:sx @atom:* + @dihedral:X-na-s6-X @atom:* @atom:na @atom:s6 @atom:* + @dihedral:X-na-sy-X @atom:* @atom:na @atom:sy @atom:* + @dihedral:X-nh-nh-X @atom:* @atom:nh @atom:nh @atom:* + @dihedral:X-nh-no-X @atom:* @atom:nh @atom:no @atom:* + @dihedral:X-nh-oh-X @atom:* @atom:nh @atom:oh @atom:* + @dihedral:X-nh-os-X @atom:* @atom:nh @atom:os @atom:* + @dihedral:X-nh-p2-X @atom:* @atom:nh @atom:p2 @atom:* + @dihedral:X-nh-pe-X @atom:* @atom:nh @atom:pe @atom:* + @dihedral:X-nh-pf-X @atom:* @atom:nh @atom:pf @atom:* + @dihedral:X-nh-p3-X @atom:* @atom:nh @atom:p3 @atom:* + @dihedral:X-nh-p4-X @atom:* @atom:nh @atom:p4 @atom:* + @dihedral:X-nh-px-X @atom:* @atom:nh @atom:px @atom:* + @dihedral:X-nh-p5-X @atom:* @atom:nh @atom:p5 @atom:* + @dihedral:X-nh-py-X @atom:* @atom:nh @atom:py @atom:* + @dihedral:X-nh-sh-X @atom:* @atom:nh @atom:sh @atom:* + @dihedral:X-nh-ss-X @atom:* @atom:nh @atom:ss @atom:* + @dihedral:X-nh-s4-X @atom:* @atom:nh @atom:s4 @atom:* + @dihedral:X-nh-s4-X @atom:* @atom:nh @atom:s4 @atom:* + @dihedral:X-nh-sx-X @atom:* @atom:nh @atom:sx @atom:* + @dihedral:X-nh-sx-X @atom:* @atom:nh @atom:sx @atom:* + @dihedral:X-nh-s6-X @atom:* @atom:nh @atom:s6 @atom:* + @dihedral:X-nh-sy-X @atom:* @atom:nh @atom:sy @atom:* + @dihedral:X-no-no-X @atom:* @atom:no @atom:no @atom:* + @dihedral:X-no-no-X @atom:* @atom:no @atom:no @atom:* + @dihedral:X-no-oh-X @atom:* @atom:no @atom:oh @atom:* + @dihedral:X-no-os-X @atom:* @atom:no @atom:os @atom:* + @dihedral:X-no-p2-X @atom:* @atom:no @atom:p2 @atom:* + @dihedral:X-no-pe-X @atom:* @atom:no @atom:pe @atom:* + @dihedral:X-no-pf-X @atom:* @atom:no @atom:pf @atom:* + @dihedral:X-no-p3-X @atom:* @atom:no @atom:p3 @atom:* + @dihedral:X-no-p4-X @atom:* @atom:no @atom:p4 @atom:* + @dihedral:X-no-px-X @atom:* @atom:no @atom:px @atom:* + @dihedral:X-no-p5-X @atom:* @atom:no @atom:p5 @atom:* + @dihedral:X-no-p5-X @atom:* @atom:no @atom:p5 @atom:* + @dihedral:X-no-py-X @atom:* @atom:no @atom:py @atom:* + @dihedral:X-no-py-X @atom:* @atom:no @atom:py @atom:* + @dihedral:X-no-sh-X @atom:* @atom:no @atom:sh @atom:* + @dihedral:X-no-ss-X @atom:* @atom:no @atom:ss @atom:* + @dihedral:X-no-s4-X @atom:* @atom:no @atom:s4 @atom:* + @dihedral:X-no-sx-X @atom:* @atom:no @atom:sx @atom:* + @dihedral:X-no-s6-X @atom:* @atom:no @atom:s6 @atom:* + @dihedral:X-no-sy-X @atom:* @atom:no @atom:sy @atom:* + @dihedral:X-oh-oh-X @atom:* @atom:oh @atom:oh @atom:* + @dihedral:X-oh-os-X @atom:* @atom:oh @atom:os @atom:* + @dihedral:X-oh-p2-X @atom:* @atom:oh @atom:p2 @atom:* + @dihedral:X-oh-pe-X @atom:* @atom:oh @atom:pe @atom:* + @dihedral:X-oh-pf-X @atom:* @atom:oh @atom:pf @atom:* + @dihedral:X-oh-p3-X @atom:* @atom:oh @atom:p3 @atom:* + @dihedral:X-oh-p4-X @atom:* @atom:oh @atom:p4 @atom:* + @dihedral:X-oh-px-X @atom:* @atom:oh @atom:px @atom:* + @dihedral:X-oh-p5-X @atom:* @atom:oh @atom:p5 @atom:* + @dihedral:X-oh-py-X @atom:* @atom:oh @atom:py @atom:* + @dihedral:X-oh-sh-X @atom:* @atom:oh @atom:sh @atom:* + @dihedral:X-oh-ss-X @atom:* @atom:oh @atom:ss @atom:* + @dihedral:X-oh-s4-X @atom:* @atom:oh @atom:s4 @atom:* + @dihedral:X-oh-sx-X @atom:* @atom:oh @atom:sx @atom:* + @dihedral:X-oh-s6-X @atom:* @atom:oh @atom:s6 @atom:* + @dihedral:X-oh-sy-X @atom:* @atom:oh @atom:sy @atom:* + @dihedral:X-os-os-X @atom:* @atom:os @atom:os @atom:* + @dihedral:X-os-ss-X @atom:* @atom:os @atom:ss @atom:* + @dihedral:X-os-sh-X @atom:* @atom:os @atom:sh @atom:* + @dihedral:X-os-s4-X @atom:* @atom:os @atom:s4 @atom:* + @dihedral:X-os-sx-X @atom:* @atom:os @atom:sx @atom:* + @dihedral:X-os-s6-X @atom:* @atom:os @atom:s6 @atom:* + @dihedral:X-os-sy-X @atom:* @atom:os @atom:sy @atom:* + @dihedral:X-os-p2-X @atom:* @atom:os @atom:p2 @atom:* + @dihedral:X-os-p2-X @atom:* @atom:os @atom:p2 @atom:* + @dihedral:X-os-pe-X @atom:* @atom:os @atom:pe @atom:* + @dihedral:X-os-pe-X @atom:* @atom:os @atom:pe @atom:* + @dihedral:X-os-pf-X @atom:* @atom:os @atom:pf @atom:* + @dihedral:X-os-pf-X @atom:* @atom:os @atom:pf @atom:* + @dihedral:X-os-p3-X @atom:* @atom:os @atom:p3 @atom:* + @dihedral:X-os-p4-X @atom:* @atom:os @atom:p4 @atom:* + @dihedral:X-os-px-X @atom:* @atom:os @atom:px @atom:* + @dihedral:X-os-p5-X @atom:* @atom:os @atom:p5 @atom:* + @dihedral:X-os-py-X @atom:* @atom:os @atom:py @atom:* + @dihedral:X-p2-p2-X @atom:* @atom:p2 @atom:p2 @atom:* + @dihedral:X-p2-pe-X @atom:* @atom:p2 @atom:pe @atom:* + @dihedral:X-p2-pf-X @atom:* @atom:p2 @atom:pf @atom:* + @dihedral:X-p2-pc-X @atom:* @atom:p2 @atom:pc @atom:* + @dihedral:X-p2-pd-X @atom:* @atom:p2 @atom:pd @atom:* + @dihedral:X-pe-pe-X @atom:* @atom:pe @atom:pe @atom:* + @dihedral:X-pf-pf-X @atom:* @atom:pf @atom:pf @atom:* + @dihedral:X-pc-pc-X @atom:* @atom:pc @atom:pc @atom:* + @dihedral:X-pd-pd-X @atom:* @atom:pd @atom:pd @atom:* + @dihedral:X-pc-pd-X @atom:* @atom:pc @atom:pd @atom:* + @dihedral:X-p2-p3-X @atom:* @atom:p2 @atom:p3 @atom:* + @dihedral:X-pe-p3-X @atom:* @atom:pe @atom:p3 @atom:* + @dihedral:X-pf-p3-X @atom:* @atom:pf @atom:p3 @atom:* + @dihedral:X-p2-p4-X @atom:* @atom:p2 @atom:p4 @atom:* + @dihedral:X-pe-px-X @atom:* @atom:pe @atom:px @atom:* + @dihedral:X-pf-px-X @atom:* @atom:pf @atom:px @atom:* + @dihedral:X-p2-p5-X @atom:* @atom:p2 @atom:p5 @atom:* + @dihedral:X-pe-py-X @atom:* @atom:pe @atom:py @atom:* + @dihedral:X-pf-py-X @atom:* @atom:pf @atom:py @atom:* + @dihedral:X-p2-sh-X @atom:* @atom:p2 @atom:sh @atom:* + @dihedral:X-pe-sh-X @atom:* @atom:pe @atom:sh @atom:* + @dihedral:X-pf-sh-X @atom:* @atom:pf @atom:sh @atom:* + @dihedral:X-p2-ss-X @atom:* @atom:p2 @atom:ss @atom:* + @dihedral:X-pe-ss-X @atom:* @atom:pe @atom:ss @atom:* + @dihedral:X-pf-ss-X @atom:* @atom:pf @atom:ss @atom:* + @dihedral:X-p2-s4-X @atom:* @atom:p2 @atom:s4 @atom:* + @dihedral:X-pe-sx-X @atom:* @atom:pe @atom:sx @atom:* + @dihedral:X-pf-sx-X @atom:* @atom:pf @atom:sx @atom:* + @dihedral:X-p2-s6-X @atom:* @atom:p2 @atom:s6 @atom:* + @dihedral:X-pe-sy-X @atom:* @atom:pe @atom:sy @atom:* + @dihedral:X-pf-sy-X @atom:* @atom:pf @atom:sy @atom:* + @dihedral:X-p3-p3-X @atom:* @atom:p3 @atom:p3 @atom:* + @dihedral:X-p3-p4-X @atom:* @atom:p3 @atom:p4 @atom:* + @dihedral:X-p3-px-X @atom:* @atom:p3 @atom:px @atom:* + @dihedral:X-p3-p5-X @atom:* @atom:p3 @atom:p5 @atom:* + @dihedral:X-p3-py-X @atom:* @atom:p3 @atom:py @atom:* + @dihedral:X-p3-sh-X @atom:* @atom:p3 @atom:sh @atom:* + @dihedral:X-p3-ss-X @atom:* @atom:p3 @atom:ss @atom:* + @dihedral:X-p3-s4-X @atom:* @atom:p3 @atom:s4 @atom:* + @dihedral:X-p3-sx-X @atom:* @atom:p3 @atom:sx @atom:* + @dihedral:X-p3-s6-X @atom:* @atom:p3 @atom:s6 @atom:* + @dihedral:X-p3-sy-X @atom:* @atom:p3 @atom:sy @atom:* + @dihedral:X-p4-p4-X @atom:* @atom:p4 @atom:p4 @atom:* + @dihedral:X-px-px-X @atom:* @atom:px @atom:px @atom:* + @dihedral:X-p4-p5-X @atom:* @atom:p4 @atom:p5 @atom:* + @dihedral:X-px-py-X @atom:* @atom:px @atom:py @atom:* + @dihedral:X-p4-s4-X @atom:* @atom:p4 @atom:s4 @atom:* + @dihedral:X-px-sx-X @atom:* @atom:px @atom:sx @atom:* + @dihedral:X-p4-s6-X @atom:* @atom:p4 @atom:s6 @atom:* + @dihedral:X-px-sy-X @atom:* @atom:px @atom:sy @atom:* + @dihedral:X-p4-sh-X @atom:* @atom:p4 @atom:sh @atom:* + @dihedral:X-px-sh-X @atom:* @atom:px @atom:sh @atom:* + @dihedral:X-p4-ss-X @atom:* @atom:p4 @atom:ss @atom:* + @dihedral:X-px-ss-X @atom:* @atom:px @atom:ss @atom:* + @dihedral:X-p5-p5-X @atom:* @atom:p5 @atom:p5 @atom:* + @dihedral:X-py-py-X @atom:* @atom:py @atom:py @atom:* + @dihedral:X-p5-sh-X @atom:* @atom:p5 @atom:sh @atom:* + @dihedral:X-py-sh-X @atom:* @atom:py @atom:sh @atom:* + @dihedral:X-p5-ss-X @atom:* @atom:p5 @atom:ss @atom:* + @dihedral:X-py-ss-X @atom:* @atom:py @atom:ss @atom:* + @dihedral:X-p5-s4-X @atom:* @atom:p5 @atom:s4 @atom:* + @dihedral:X-py-sx-X @atom:* @atom:py @atom:sx @atom:* + @dihedral:X-p5-s6-X @atom:* @atom:p5 @atom:s6 @atom:* + @dihedral:X-py-sy-X @atom:* @atom:py @atom:sy @atom:* + @dihedral:X-sh-sh-X @atom:* @atom:sh @atom:sh @atom:* + @dihedral:X-sh-ss-X @atom:* @atom:sh @atom:ss @atom:* + @dihedral:X-sh-s4-X @atom:* @atom:sh @atom:s4 @atom:* + @dihedral:X-sh-sx-X @atom:* @atom:sh @atom:sx @atom:* + @dihedral:X-sh-s6-X @atom:* @atom:sh @atom:s6 @atom:* + @dihedral:X-sh-sy-X @atom:* @atom:sh @atom:sy @atom:* + @dihedral:X-ss-ss-X @atom:* @atom:ss @atom:ss @atom:* + @dihedral:X-ss-s4-X @atom:* @atom:ss @atom:s4 @atom:* + @dihedral:X-ss-sx-X @atom:* @atom:ss @atom:sx @atom:* + @dihedral:X-ss-s6-X @atom:* @atom:ss @atom:s6 @atom:* + @dihedral:X-ss-sy-X @atom:* @atom:ss @atom:sy @atom:* + @dihedral:X-s4-s4-X @atom:* @atom:s4 @atom:s4 @atom:* + @dihedral:X-sx-sx-X @atom:* @atom:sx @atom:sx @atom:* + @dihedral:X-s4-s6-X @atom:* @atom:s4 @atom:s6 @atom:* + @dihedral:X-sx-sy-X @atom:* @atom:sx @atom:sy @atom:* + @dihedral:X-s6-s6-X @atom:* @atom:s6 @atom:s6 @atom:* + @dihedral:X-sy-sy-X @atom:* @atom:sy @atom:sy @atom:* + @dihedral:X-cf-pe-X @atom:* @atom:cf @atom:pe @atom:* + @dihedral:X-nd-os-X @atom:* @atom:nd @atom:os @atom:* + @dihedral:X-nd-ss-X @atom:* @atom:nd @atom:ss @atom:* + @dihedral:X-nf-pe-X @atom:* @atom:nf @atom:pe @atom:* + @dihedral:c2-ne-p5-o @atom:c2 @atom:ne @atom:p5 @atom:o + @dihedral:c2-ne-p5-o @atom:c2 @atom:ne @atom:p5 @atom:o + @dihedral:c2-nf-p5-o @atom:c2 @atom:nf @atom:p5 @atom:o + @dihedral:c2-nf-p5-o @atom:c2 @atom:nf @atom:p5 @atom:o + @dihedral:ce-ne-p5-o @atom:ce @atom:ne @atom:p5 @atom:o + @dihedral:ce-ne-p5-o @atom:ce @atom:ne @atom:p5 @atom:o + @dihedral:ce-nf-p5-o @atom:ce @atom:nf @atom:p5 @atom:o + @dihedral:ce-nf-p5-o @atom:ce @atom:nf @atom:p5 @atom:o + @dihedral:cf-ne-p5-o @atom:cf @atom:ne @atom:p5 @atom:o + @dihedral:cf-ne-p5-o @atom:cf @atom:ne @atom:p5 @atom:o + @dihedral:cf-nf-p5-o @atom:cf @atom:nf @atom:p5 @atom:o + @dihedral:cf-nf-p5-o @atom:cf @atom:nf @atom:p5 @atom:o + @dihedral:hn-n-c-o @atom:hn @atom:n @atom:c @atom:o + @dihedral:hn-n-c-o @atom:hn @atom:n @atom:c @atom:o + @dihedral:c3-n3-p5-o @atom:c3 @atom:n3 @atom:p5 @atom:o + @dihedral:c3-n3-p5-o @atom:c3 @atom:n3 @atom:p5 @atom:o + @dihedral:oh-p5-os-c3 @atom:oh @atom:p5 @atom:os @atom:c3 + @dihedral:oh-p5-os-c3 @atom:oh @atom:p5 @atom:os @atom:c3 + @dihedral:h1-c3-c-o @atom:h1 @atom:c3 @atom:c @atom:o + @dihedral:h1-c3-c-o @atom:h1 @atom:c3 @atom:c @atom:o + @dihedral:ho-oh-c-o @atom:ho @atom:oh @atom:c @atom:o + @dihedral:ho-oh-c-o @atom:ho @atom:oh @atom:c @atom:o + @dihedral:c2-c2-c-o @atom:c2 @atom:c2 @atom:c @atom:o + @dihedral:c2-c2-c-o @atom:c2 @atom:c2 @atom:c @atom:o + @dihedral:c3-c3-os-c @atom:c3 @atom:c3 @atom:os @atom:c + @dihedral:c3-c3-os-c @atom:c3 @atom:c3 @atom:os @atom:c + @dihedral:c3-os-c3-na @atom:c3 @atom:os @atom:c3 @atom:na + @dihedral:c3-os-c3-na @atom:c3 @atom:os @atom:c3 @atom:na + @dihedral:o-c-os-c3 @atom:o @atom:c @atom:os @atom:c3 + @dihedral:o-c-os-c3 @atom:o @atom:c @atom:os @atom:c3 + @dihedral:os-c3-na-c2 @atom:os @atom:c3 @atom:na @atom:c2 + @dihedral:os-c3-na-c2 @atom:os @atom:c3 @atom:na @atom:c2 + @dihedral:h1-c3-c3-os @atom:h1 @atom:c3 @atom:c3 @atom:os + @dihedral:h1-c3-c3-os @atom:h1 @atom:c3 @atom:c3 @atom:os + @dihedral:h1-c3-c3-oh @atom:h1 @atom:c3 @atom:c3 @atom:oh + @dihedral:h1-c3-c3-oh @atom:h1 @atom:c3 @atom:c3 @atom:oh + @dihedral:h1-c3-c3-f @atom:h1 @atom:c3 @atom:c3 @atom:f + @dihedral:h1-c3-c3-f @atom:h1 @atom:c3 @atom:c3 @atom:f + @dihedral:h1-c3-c3-cl @atom:h1 @atom:c3 @atom:c3 @atom:cl + @dihedral:h1-c3-c3-cl @atom:h1 @atom:c3 @atom:c3 @atom:cl + @dihedral:h1-c3-c3-br @atom:h1 @atom:c3 @atom:c3 @atom:br + @dihedral:h1-c3-c3-br @atom:h1 @atom:c3 @atom:c3 @atom:br + @dihedral:hc-c3-c3-os @atom:hc @atom:c3 @atom:c3 @atom:os + @dihedral:hc-c3-c3-os @atom:hc @atom:c3 @atom:c3 @atom:os + @dihedral:c3-n4-c3-ca @atom:c3 @atom:n4 @atom:c3 @atom:ca + @dihedral:c3-n4-c3-ca @atom:c3 @atom:n4 @atom:c3 @atom:ca + @dihedral:oh-c3-c3-n4 @atom:oh @atom:c3 @atom:c3 @atom:n4 + @dihedral:oh-c3-c3-n4 @atom:oh @atom:c3 @atom:c3 @atom:n4 + @dihedral:c3-c3-n4-c3 @atom:c3 @atom:c3 @atom:n4 @atom:c3 + @dihedral:c3-c-os-p5 @atom:c3 @atom:c @atom:os @atom:p5 + @dihedral:c3-c-os-p5 @atom:c3 @atom:c @atom:os @atom:p5 + @dihedral:c-os-p5-o @atom:c @atom:os @atom:p5 @atom:o + @dihedral:c-os-p5-o @atom:c @atom:os @atom:p5 @atom:o + @dihedral:c-os-p5-o @atom:c @atom:os @atom:p5 @atom:o + @dihedral:c3-c3-os-p5 @atom:c3 @atom:c3 @atom:os @atom:p5 + @dihedral:c3-c3-os-p5 @atom:c3 @atom:c3 @atom:os @atom:p5 + @dihedral:c3-os-p5-o @atom:c3 @atom:os @atom:p5 @atom:o + @dihedral:c3-os-p5-o @atom:c3 @atom:os @atom:p5 @atom:o + @dihedral:ca-ca-os-p5 @atom:ca @atom:ca @atom:os @atom:p5 + @dihedral:ca-os-p5-o @atom:ca @atom:os @atom:p5 @atom:o + @dihedral:ca-os-p5-o @atom:ca @atom:os @atom:p5 @atom:o + @dihedral:br-c3-c3-br @atom:br @atom:c3 @atom:c3 @atom:br + @dihedral:br-c3-c3-br @atom:br @atom:c3 @atom:c3 @atom:br + @dihedral:c-n-c2-c2 @atom:c @atom:n @atom:c2 @atom:c2 + @dihedral:c-n-c2-c2 @atom:c @atom:n @atom:c2 @atom:c2 + @dihedral:c3-ss-c2-c2 @atom:c3 @atom:ss @atom:c2 @atom:c2 + @dihedral:c3-ss-c2-c2 @atom:c3 @atom:ss @atom:c2 @atom:c2 + @dihedral:c3-c2-c2-c3 @atom:c3 @atom:c2 @atom:c2 @atom:c3 + @dihedral:c3-c2-c2-c3 @atom:c3 @atom:c2 @atom:c2 @atom:c3 + @dihedral:c3-c3-c3-c3 @atom:c3 @atom:c3 @atom:c3 @atom:c3 + @dihedral:c3-c3-c3-c3 @atom:c3 @atom:c3 @atom:c3 @atom:c3 + @dihedral:c3-c3-c3-c3 @atom:c3 @atom:c3 @atom:c3 @atom:c3 + @dihedral:n-c-c3-c3 @atom:n @atom:c @atom:c3 @atom:c3 + @dihedral:n-c-c3-c3 @atom:n @atom:c @atom:c3 @atom:c3 + @dihedral:c3-os-c3-c3 @atom:c3 @atom:os @atom:c3 @atom:c3 + @dihedral:c3-os-c3-c3 @atom:c3 @atom:os @atom:c3 @atom:c3 + @dihedral:ca-nh-n3-c3 @atom:ca @atom:nh @atom:n3 @atom:c3 + @dihedral:hs-sh-ss-c3 @atom:hs @atom:sh @atom:ss @atom:c3 + @dihedral:hs-sh-ss-c3 @atom:hs @atom:sh @atom:ss @atom:c3 + @dihedral:ho-oh-nh-ca @atom:ho @atom:oh @atom:nh @atom:ca + @dihedral:ho-oh-nh-ca @atom:ho @atom:oh @atom:nh @atom:ca + @dihedral:cl-c3-c3-cl @atom:cl @atom:c3 @atom:c3 @atom:cl + @dihedral:cl-c3-c3-cl @atom:cl @atom:c3 @atom:c3 @atom:cl + @dihedral:c-n-c3-c3 @atom:c @atom:n @atom:c3 @atom:c3 + @dihedral:c-n-c3-c3 @atom:c @atom:n @atom:c3 @atom:c3 + @dihedral:c-n-c3-c3 @atom:c @atom:n @atom:c3 @atom:c3 + @dihedral:c2-p2-n-c @atom:c2 @atom:p2 @atom:n @atom:c + @dihedral:c2-p2-n-c @atom:c2 @atom:p2 @atom:n @atom:c + @dihedral:f-c3-c3-f @atom:f @atom:c3 @atom:c3 @atom:f + @dihedral:f-c3-c3-f @atom:f @atom:c3 @atom:c3 @atom:f + @dihedral:hc-c3-c2-c2 @atom:hc @atom:c3 @atom:c2 @atom:c2 + @dihedral:hc-c3-c2-c2 @atom:hc @atom:c3 @atom:c2 @atom:c2 + @dihedral:hc-c3-c3-br @atom:hc @atom:c3 @atom:c3 @atom:br + @dihedral:hc-c3-c3-br @atom:hc @atom:c3 @atom:c3 @atom:br + @dihedral:hc-c3-c3-c3 @atom:hc @atom:c3 @atom:c3 @atom:c3 + @dihedral:hc-c3-c3-cl @atom:hc @atom:c3 @atom:c3 @atom:cl + @dihedral:hc-c3-c3-cl @atom:hc @atom:c3 @atom:c3 @atom:cl + @dihedral:hc-c3-c3-f @atom:hc @atom:c3 @atom:c3 @atom:f + @dihedral:hc-c3-c3-f @atom:hc @atom:c3 @atom:c3 @atom:f + @dihedral:hc-c3-c3-hc @atom:hc @atom:c3 @atom:c3 @atom:hc + @dihedral:hc-c3-c3-oh @atom:hc @atom:c3 @atom:c3 @atom:oh + @dihedral:hc-c3-c3-oh @atom:hc @atom:c3 @atom:c3 @atom:oh + @dihedral:n-c-c3-n @atom:n @atom:c @atom:c3 @atom:n + @dihedral:n-c-c3-n @atom:n @atom:c @atom:c3 @atom:n + @dihedral:oh-c3-c3-os @atom:oh @atom:c3 @atom:c3 @atom:os + @dihedral:oh-c3-c3-os @atom:oh @atom:c3 @atom:c3 @atom:os + @dihedral:oh-c3-c3-os @atom:oh @atom:c3 @atom:c3 @atom:os + @dihedral:os-p5-os-c3 @atom:os @atom:p5 @atom:os @atom:c3 + @dihedral:os-p5-os-c3 @atom:os @atom:p5 @atom:os @atom:c3 + @dihedral:c3-n-c-c3 @atom:c3 @atom:n @atom:c @atom:c3 + @dihedral:c3-n-c-c3 @atom:c3 @atom:n @atom:c @atom:c3 + @dihedral:c3-os-c-c3 @atom:c3 @atom:os @atom:c @atom:c3 + @dihedral:c3-os-c-c3 @atom:c3 @atom:os @atom:c @atom:c3 + @dihedral:c3-os-c-c3 @atom:c3 @atom:os @atom:c @atom:c3 + @dihedral:hs-sh-c-c3 @atom:hs @atom:sh @atom:c @atom:c3 + @dihedral:hs-sh-c-c3 @atom:hs @atom:sh @atom:c @atom:c3 + @dihedral:os-c3-os-c3 @atom:os @atom:c3 @atom:os @atom:c3 + @dihedral:os-c3-os-c3 @atom:os @atom:c3 @atom:os @atom:c3 + @dihedral:os-c3-os-c3 @atom:os @atom:c3 @atom:os @atom:c3 + @dihedral:c3-ss-ss-c3 @atom:c3 @atom:ss @atom:ss @atom:c3 + @dihedral:c3-ss-ss-c3 @atom:c3 @atom:ss @atom:ss @atom:c3 + @dihedral:o-c-c3-hc @atom:o @atom:c @atom:c3 @atom:hc + @dihedral:o-c-c3-hc @atom:o @atom:c @atom:c3 @atom:hc + @dihedral:ho-oh-c3-c3 @atom:ho @atom:oh @atom:c3 @atom:c3 + @dihedral:oh-c3-c3-oh @atom:oh @atom:c3 @atom:c3 @atom:oh + @dihedral:oh-c3-c3-oh @atom:oh @atom:c3 @atom:c3 @atom:oh + @dihedral:os-c3-c3-os @atom:os @atom:c3 @atom:c3 @atom:os + @dihedral:os-c3-c3-os @atom:os @atom:c3 @atom:c3 @atom:os + @dihedral:os-c3-c3-os @atom:os @atom:c3 @atom:c3 @atom:os + @dihedral:c1-c1-c3-c1 @atom:c1 @atom:c1 @atom:c3 @atom:c1 + @dihedral:c2-c2-c3-c2 @atom:c2 @atom:c2 @atom:c3 @atom:c2 + @dihedral:c2-ce-ca-ca @atom:c2 @atom:ce @atom:ca @atom:ca + @dihedral:c2-ce-ce-c3 @atom:c2 @atom:ce @atom:ce @atom:c3 + @dihedral:c2-cf-cd-cc @atom:c2 @atom:cf @atom:cd @atom:cc + @dihedral:c2-n2-c3-n2 @atom:c2 @atom:n2 @atom:c3 @atom:n2 + @dihedral:c2-n2-c3-n2 @atom:c2 @atom:n2 @atom:c3 @atom:n2 + @dihedral:c2-n2-na-cd @atom:c2 @atom:n2 @atom:na @atom:cd + @dihedral:c2-n2-n-c @atom:c2 @atom:n2 @atom:n @atom:c + @dihedral:c2-n2-nh-c2 @atom:c2 @atom:n2 @atom:nh @atom:c2 + @dihedral:c2-ne-ca-ca @atom:c2 @atom:ne @atom:ca @atom:ca + @dihedral:c2-ne-ce-c2 @atom:c2 @atom:ne @atom:ce @atom:c2 + @dihedral:c2-ne-ce-c3 @atom:c2 @atom:ne @atom:ce @atom:c3 + @dihedral:c2-nh-c2-c2 @atom:c2 @atom:nh @atom:c2 @atom:c2 + @dihedral:c2-nh-c2-c3 @atom:c2 @atom:nh @atom:c2 @atom:c3 + @dihedral:c2-nh-c3-h1 @atom:c2 @atom:nh @atom:c3 @atom:h1 + @dihedral:c2-nh-ca-ca @atom:c2 @atom:nh @atom:ca @atom:ca + @dihedral:c2-nh-nh-c2 @atom:c2 @atom:nh @atom:nh @atom:c2 + @dihedral:c2-p2-c3-p2 @atom:c2 @atom:p2 @atom:c3 @atom:p2 + @dihedral:c2-p2-n4-hn @atom:c2 @atom:p2 @atom:n4 @atom:hn + @dihedral:c2-p2-na-cc @atom:c2 @atom:p2 @atom:na @atom:cc + @dihedral:c2-p2-nh-c2 @atom:c2 @atom:p2 @atom:nh @atom:c2 + @dihedral:c2-p2-nh-c3 @atom:c2 @atom:p2 @atom:nh @atom:c3 + @dihedral:c2-p2-nh-ca @atom:c2 @atom:p2 @atom:nh @atom:ca + @dihedral:c2-pe-ca-ca @atom:c2 @atom:pe @atom:ca @atom:ca + @dihedral:c2-pe-ce-c2 @atom:c2 @atom:pe @atom:ce @atom:c2 + @dihedral:c2-pe-ce-c3 @atom:c2 @atom:pe @atom:ce @atom:c3 + @dihedral:c2-pe-ne-c2 @atom:c2 @atom:pe @atom:ne @atom:c2 + @dihedral:c2-pe-pe-c2 @atom:c2 @atom:pe @atom:pe @atom:c2 + @dihedral:c3-c2-nh-ca @atom:c3 @atom:c2 @atom:nh @atom:ca + @dihedral:c3-c2-nh-ca @atom:c3 @atom:c2 @atom:nh @atom:ca + @dihedral:c3-c3-c3-hc @atom:c3 @atom:c3 @atom:c3 @atom:hc + @dihedral:c3-c3-cc-ca @atom:c3 @atom:c3 @atom:cc @atom:ca + @dihedral:c3-c3-n-c @atom:c3 @atom:c3 @atom:n @atom:c + @dihedral:c3-c3-n-c @atom:c3 @atom:c3 @atom:n @atom:c + @dihedral:c3-c3-n-c @atom:c3 @atom:c3 @atom:n @atom:c + @dihedral:c3-c-c3-c3 @atom:c3 @atom:c @atom:c3 @atom:c3 + @dihedral:c3-c-ce-c3 @atom:c3 @atom:c @atom:ce @atom:c3 + @dihedral:c3-ce-ce-c3 @atom:c3 @atom:ce @atom:ce @atom:c3 + @dihedral:c3-n2-c2-c3 @atom:c3 @atom:n2 @atom:c2 @atom:c3 + @dihedral:c3-n3-n3-c3 @atom:c3 @atom:n3 @atom:n3 @atom:c3 + @dihedral:c3-n3-nh-c2 @atom:c3 @atom:n3 @atom:nh @atom:c2 + @dihedral:c3-n4-ca-ca @atom:c3 @atom:n4 @atom:ca @atom:ca + @dihedral:c3-n4-n4-c3 @atom:c3 @atom:n4 @atom:n4 @atom:c3 + @dihedral:c3-nh-c2-c2 @atom:c3 @atom:nh @atom:c2 @atom:c2 + @dihedral:c3-nh-c2-c2 @atom:c3 @atom:nh @atom:c2 @atom:c2 + @dihedral:c3-nh-c2-c3 @atom:c3 @atom:nh @atom:c2 @atom:c3 + @dihedral:c3-os-c2-c2 @atom:c3 @atom:os @atom:c2 @atom:c2 + @dihedral:c3-os-c2-c2 @atom:c3 @atom:os @atom:c2 @atom:c2 + @dihedral:c3-os-c2-c3 @atom:c3 @atom:os @atom:c2 @atom:c3 + @dihedral:c3-os-c3-h1 @atom:c3 @atom:os @atom:c3 @atom:h1 + @dihedral:c3-os-ca-ca @atom:c3 @atom:os @atom:ca @atom:ca + @dihedral:c3-os-n2-c2 @atom:c3 @atom:os @atom:n2 @atom:c2 + @dihedral:c3-os-n2-c2 @atom:c3 @atom:os @atom:n2 @atom:c2 + @dihedral:c3-os-n3-c3 @atom:c3 @atom:os @atom:n3 @atom:c3 + @dihedral:c3-os-n4-c3 @atom:c3 @atom:os @atom:n4 @atom:c3 + @dihedral:c3-os-na-cc @atom:c3 @atom:os @atom:na @atom:cc + @dihedral:c3-os-n-c @atom:c3 @atom:os @atom:n @atom:c + @dihedral:c3-os-nh-c2 @atom:c3 @atom:os @atom:nh @atom:c2 + @dihedral:c3-os-nh-ca @atom:c3 @atom:os @atom:nh @atom:ca + @dihedral:c3-os-no-o @atom:c3 @atom:os @atom:no @atom:o + @dihedral:c3-os-oh-ho @atom:c3 @atom:os @atom:oh @atom:ho + @dihedral:c3-os-os-c3 @atom:c3 @atom:os @atom:os @atom:c3 + @dihedral:c3-os-p2-c2 @atom:c3 @atom:os @atom:p2 @atom:c2 + @dihedral:c3-os-p2-c2 @atom:c3 @atom:os @atom:p2 @atom:c2 + @dihedral:c3-p3-c2-c2 @atom:c3 @atom:p3 @atom:c2 @atom:c2 + @dihedral:c3-p3-c2-c3 @atom:c3 @atom:p3 @atom:c2 @atom:c3 + @dihedral:c3-p3-ca-ca @atom:c3 @atom:p3 @atom:ca @atom:ca + @dihedral:c3-p3-n2-c2 @atom:c3 @atom:p3 @atom:n2 @atom:c2 + @dihedral:c3-p3-n3-c3 @atom:c3 @atom:p3 @atom:n3 @atom:c3 + @dihedral:c3-p3-n4-c3 @atom:c3 @atom:p3 @atom:n4 @atom:c3 + @dihedral:c3-p3-na-cc @atom:c3 @atom:p3 @atom:na @atom:cc + @dihedral:c3-p3-n-c @atom:c3 @atom:p3 @atom:n @atom:c + @dihedral:c3-p3-nh-c2 @atom:c3 @atom:p3 @atom:nh @atom:c2 + @dihedral:c3-p3-no-o @atom:c3 @atom:p3 @atom:no @atom:o + @dihedral:c3-p3-oh-ho @atom:c3 @atom:p3 @atom:oh @atom:ho + @dihedral:c3-p3-p2-c2 @atom:c3 @atom:p3 @atom:p2 @atom:c2 + @dihedral:c3-p3-p3-c3 @atom:c3 @atom:p3 @atom:p3 @atom:c3 + @dihedral:c3-p4-n3-c3 @atom:c3 @atom:p4 @atom:n3 @atom:c3 + @dihedral:c3-p4-n4-hn @atom:c3 @atom:p4 @atom:n4 @atom:hn + @dihedral:c3-p4-na-cc @atom:c3 @atom:p4 @atom:na @atom:cc + @dihedral:c3-p4-na-cc @atom:c3 @atom:p4 @atom:na @atom:cc + @dihedral:c3-p4-nh-c2 @atom:c3 @atom:p4 @atom:nh @atom:c2 + @dihedral:c3-p4-nh-ca @atom:c3 @atom:p4 @atom:nh @atom:ca + @dihedral:c3-p4-nh-ca @atom:c3 @atom:p4 @atom:nh @atom:ca + @dihedral:c3-p4-os-c3 @atom:c3 @atom:p4 @atom:os @atom:c3 + @dihedral:c3-p4-p3-c3 @atom:c3 @atom:p4 @atom:p3 @atom:c3 + @dihedral:c3-px-ca-ca @atom:c3 @atom:px @atom:ca @atom:ca + @dihedral:c3-px-c-c3 @atom:c3 @atom:px @atom:c @atom:c3 + @dihedral:c3-px-c-c3 @atom:c3 @atom:px @atom:c @atom:c3 + @dihedral:c3-px-ce-c2 @atom:c3 @atom:px @atom:ce @atom:c2 + @dihedral:c3-px-ce-c3 @atom:c3 @atom:px @atom:ce @atom:c3 + @dihedral:c3-px-ne-c2 @atom:c3 @atom:px @atom:ne @atom:c2 + @dihedral:c3-px-ne-c2 @atom:c3 @atom:px @atom:ne @atom:c2 + @dihedral:c3-px-pe-c2 @atom:c3 @atom:px @atom:pe @atom:c2 + @dihedral:c3-s4-c3-h1 @atom:c3 @atom:s4 @atom:c3 @atom:h1 + @dihedral:c3-s4-n3-c3 @atom:c3 @atom:s4 @atom:n3 @atom:c3 + @dihedral:c3-s4-n4-c3 @atom:c3 @atom:s4 @atom:n4 @atom:c3 + @dihedral:c3-s4-na-cc @atom:c3 @atom:s4 @atom:na @atom:cc + @dihedral:c3-s4-nh-c2 @atom:c3 @atom:s4 @atom:nh @atom:c2 + @dihedral:c3-s4-nh-c2 @atom:c3 @atom:s4 @atom:nh @atom:c2 + @dihedral:c3-s4-nh-c2 @atom:c3 @atom:s4 @atom:nh @atom:c2 + @dihedral:c3-s4-no-o @atom:c3 @atom:s4 @atom:no @atom:o + @dihedral:c3-s4-oh-ho @atom:c3 @atom:s4 @atom:oh @atom:ho + @dihedral:c3-s4-os-c3 @atom:c3 @atom:s4 @atom:os @atom:c3 + @dihedral:c3-s4-p3-c3 @atom:c3 @atom:s4 @atom:p3 @atom:c3 + @dihedral:c3-s4-sh-hs @atom:c3 @atom:s4 @atom:sh @atom:hs + @dihedral:c3-s4-sh-hs @atom:c3 @atom:s4 @atom:sh @atom:hs + @dihedral:c3-s4-ss-c3 @atom:c3 @atom:s4 @atom:ss @atom:c3 + @dihedral:c3-s6-c3-h1 @atom:c3 @atom:s6 @atom:c3 @atom:h1 + @dihedral:c3-s6-n3-c3 @atom:c3 @atom:s6 @atom:n3 @atom:c3 + @dihedral:c3-s6-n4-c3 @atom:c3 @atom:s6 @atom:n4 @atom:c3 + @dihedral:c3-s6-na-cc @atom:c3 @atom:s6 @atom:na @atom:cc + @dihedral:c3-s6-n-c @atom:c3 @atom:s6 @atom:n @atom:c + @dihedral:c3-s6-nh-c2 @atom:c3 @atom:s6 @atom:nh @atom:c2 + @dihedral:c3-s6-no-o @atom:c3 @atom:s6 @atom:no @atom:o + @dihedral:c3-s6-oh-ho @atom:c3 @atom:s6 @atom:oh @atom:ho + @dihedral:c3-s6-os-c3 @atom:c3 @atom:s6 @atom:os @atom:c3 + @dihedral:c3-s6-p3-c3 @atom:c3 @atom:s6 @atom:p3 @atom:c3 + @dihedral:c3-s6-sh-hs @atom:c3 @atom:s6 @atom:sh @atom:hs + @dihedral:c3-s6-ss-c3 @atom:c3 @atom:s6 @atom:ss @atom:c3 + @dihedral:c3-ss-c2-c3 @atom:c3 @atom:ss @atom:c2 @atom:c3 + @dihedral:c3-ss-c3-c3 @atom:c3 @atom:ss @atom:c3 @atom:c3 + @dihedral:c3-ss-c3-h1 @atom:c3 @atom:ss @atom:c3 @atom:h1 + @dihedral:c3-ss-ca-ca @atom:c3 @atom:ss @atom:ca @atom:ca + @dihedral:c3-ss-n2-c2 @atom:c3 @atom:ss @atom:n2 @atom:c2 + @dihedral:c3-ss-n2-c2 @atom:c3 @atom:ss @atom:n2 @atom:c2 + @dihedral:c3-ss-n3-c3 @atom:c3 @atom:ss @atom:n3 @atom:c3 + @dihedral:c3-ss-n4-c3 @atom:c3 @atom:ss @atom:n4 @atom:c3 + @dihedral:c3-ss-n-c @atom:c3 @atom:ss @atom:n @atom:c + @dihedral:c3-ss-nh-c2 @atom:c3 @atom:ss @atom:nh @atom:c2 + @dihedral:c3-ss-no-o @atom:c3 @atom:ss @atom:no @atom:o + @dihedral:c3-ss-oh-ho @atom:c3 @atom:ss @atom:oh @atom:ho + @dihedral:c3-ss-os-c3 @atom:c3 @atom:ss @atom:os @atom:c3 + @dihedral:c3-ss-p2-c2 @atom:c3 @atom:ss @atom:p2 @atom:c2 + @dihedral:c3-ss-p3-c3 @atom:c3 @atom:ss @atom:p3 @atom:c3 + @dihedral:c3-ss-p4-c3 @atom:c3 @atom:ss @atom:p4 @atom:c3 + @dihedral:c3-sx-ca-ca @atom:c3 @atom:sx @atom:ca @atom:ca + @dihedral:c3-sx-ce-c2 @atom:c3 @atom:sx @atom:ce @atom:c2 + @dihedral:c3-sx-ce-c2 @atom:c3 @atom:sx @atom:ce @atom:c2 + @dihedral:c3-sx-ce-c3 @atom:c3 @atom:sx @atom:ce @atom:c3 + @dihedral:c3-sx-ce-c3 @atom:c3 @atom:sx @atom:ce @atom:c3 + @dihedral:c3-sx-ce-c3 @atom:c3 @atom:sx @atom:ce @atom:c3 + @dihedral:c3-sx-ne-c2 @atom:c3 @atom:sx @atom:ne @atom:c2 + @dihedral:c3-sx-ne-c2 @atom:c3 @atom:sx @atom:ne @atom:c2 + @dihedral:c3-sx-pe-c2 @atom:c3 @atom:sx @atom:pe @atom:c2 + @dihedral:c3-sx-px-c3 @atom:c3 @atom:sx @atom:px @atom:c3 + @dihedral:c3-sx-sx-c3 @atom:c3 @atom:sx @atom:sx @atom:c3 + @dihedral:c3-sx-sy-c3 @atom:c3 @atom:sx @atom:sy @atom:c3 + @dihedral:c3-sy-ca-ca @atom:c3 @atom:sy @atom:ca @atom:ca + @dihedral:c3-sy-ce-c2 @atom:c3 @atom:sy @atom:ce @atom:c2 + @dihedral:c3-sy-ce-c3 @atom:c3 @atom:sy @atom:ce @atom:c3 + @dihedral:c3-sy-ce-c3 @atom:c3 @atom:sy @atom:ce @atom:c3 + @dihedral:c3-sy-ce-c3 @atom:c3 @atom:sy @atom:ce @atom:c3 + @dihedral:c3-sy-ne-c2 @atom:c3 @atom:sy @atom:ne @atom:c2 + @dihedral:c3-sy-ne-c2 @atom:c3 @atom:sy @atom:ne @atom:c2 + @dihedral:c3-sy-pe-c2 @atom:c3 @atom:sy @atom:pe @atom:c2 + @dihedral:c3-sy-px-c3 @atom:c3 @atom:sy @atom:px @atom:c3 + @dihedral:c3-sy-sy-c3 @atom:c3 @atom:sy @atom:sy @atom:c3 + @dihedral:ca-c3-c3-c @atom:ca @atom:c3 @atom:c3 @atom:c + @dihedral:ca-c3-c3-n @atom:ca @atom:c3 @atom:c3 @atom:n + @dihedral:ca-ca-c3-ca @atom:ca @atom:ca @atom:c3 @atom:ca + @dihedral:ca-ca-ce-c2 @atom:ca @atom:ca @atom:ce @atom:c2 + @dihedral:ca-ca-ce-c3 @atom:ca @atom:ca @atom:ce @atom:c3 + @dihedral:ca-ca-os-c @atom:ca @atom:ca @atom:os @atom:c + @dihedral:ca-cf-ce-ca @atom:ca @atom:cf @atom:ce @atom:ca + @dihedral:ca-c-os-c3 @atom:ca @atom:c @atom:os @atom:c3 + @dihedral:ca-cp-cp-ca @atom:ca @atom:cp @atom:cp @atom:ca + @dihedral:ca-nh-c2-c2 @atom:ca @atom:nh @atom:c2 @atom:c2 + @dihedral:ca-nh-n2-c2 @atom:ca @atom:nh @atom:n2 @atom:c2 + @dihedral:ca-nh-n2-c2 @atom:ca @atom:nh @atom:n2 @atom:c2 + @dihedral:ca-nh-n2-c2 @atom:ca @atom:nh @atom:n2 @atom:c2 + @dihedral:ca-nh-n4-c3 @atom:ca @atom:nh @atom:n4 @atom:c3 + @dihedral:ca-nh-na-cd @atom:ca @atom:nh @atom:na @atom:cd + @dihedral:ca-nh-n-c @atom:ca @atom:nh @atom:n @atom:c + @dihedral:ca-nh-nh-c2 @atom:ca @atom:nh @atom:nh @atom:c2 + @dihedral:ca-nh-nh-ca @atom:ca @atom:nh @atom:nh @atom:ca + @dihedral:ca-nh-no-o @atom:ca @atom:nh @atom:no @atom:o + @dihedral:ca-nh-p3-c3 @atom:ca @atom:nh @atom:p3 @atom:c3 + @dihedral:ca-nh-p3-c3 @atom:ca @atom:nh @atom:p3 @atom:c3 + @dihedral:ca-nh-p5-os @atom:ca @atom:nh @atom:p5 @atom:os + @dihedral:ca-nh-s4-c3 @atom:ca @atom:nh @atom:s4 @atom:c3 + @dihedral:ca-nh-s4-c3 @atom:ca @atom:nh @atom:s4 @atom:c3 + @dihedral:ca-nh-s6-c3 @atom:ca @atom:nh @atom:s6 @atom:c3 + @dihedral:ca-nh-ss-c3 @atom:ca @atom:nh @atom:ss @atom:c3 + @dihedral:ca-nh-ss-c3 @atom:ca @atom:nh @atom:ss @atom:c3 + @dihedral:ca-nh-sy-ca @atom:ca @atom:nh @atom:sy @atom:ca + @dihedral:ca-nh-sy-ca @atom:ca @atom:nh @atom:sy @atom:ca + @dihedral:ca-os-c-o @atom:ca @atom:os @atom:c @atom:o + @dihedral:c-c3-c3-n @atom:c @atom:c3 @atom:c3 @atom:n + @dihedral:c-c3-n-c @atom:c @atom:c3 @atom:n @atom:c + @dihedral:c-c3-n-c @atom:c @atom:c3 @atom:n @atom:c + @dihedral:cc-na-c2-c2 @atom:cc @atom:na @atom:c2 @atom:c2 + @dihedral:cc-na-c2-c3 @atom:cc @atom:na @atom:c2 @atom:c3 + @dihedral:cc-na-ca-ca @atom:cc @atom:na @atom:ca @atom:ca + @dihedral:cc-na-na-cd @atom:cc @atom:na @atom:na @atom:cd + @dihedral:cc-na-nh-c2 @atom:cc @atom:na @atom:nh @atom:c2 + @dihedral:cc-n-c-c3 @atom:cc @atom:n @atom:c @atom:c3 + @dihedral:cd-cc-c3-c3 @atom:cd @atom:cc @atom:c3 @atom:c3 + @dihedral:cd-na-c3-na @atom:cd @atom:na @atom:c3 @atom:na + @dihedral:c-n-c2-c3 @atom:c @atom:n @atom:c2 @atom:c3 + @dihedral:c-n-c3-n @atom:c @atom:n @atom:c3 @atom:n + @dihedral:c-n-ca-ca @atom:c @atom:n @atom:ca @atom:ca + @dihedral:c-n-n-c @atom:c @atom:n @atom:n @atom:c + @dihedral:c-n-n-c @atom:c @atom:n @atom:n @atom:c + @dihedral:c-n-nh-c2 @atom:c @atom:n @atom:nh @atom:c2 + @dihedral:c-os-c-c3 @atom:c @atom:os @atom:c @atom:c3 + @dihedral:cz-nh-c3-c3 @atom:cz @atom:nh @atom:c3 @atom:c3 + @dihedral:h1-c3-n2-c2 @atom:h1 @atom:c3 @atom:n2 @atom:c2 + @dihedral:h1-c3-n3-c3 @atom:h1 @atom:c3 @atom:n3 @atom:c3 + @dihedral:h1-c3-na-cc @atom:h1 @atom:c3 @atom:na @atom:cc + @dihedral:h1-c3-n-c @atom:h1 @atom:c3 @atom:n @atom:c + @dihedral:h1-c3-nh-ca @atom:h1 @atom:c3 @atom:nh @atom:ca + @dihedral:h1-c3-no-o @atom:h1 @atom:c3 @atom:no @atom:o + @dihedral:h1-c3-os-p5 @atom:h1 @atom:c3 @atom:os @atom:p5 + @dihedral:hc-c3-c2-c3 @atom:hc @atom:c3 @atom:c2 @atom:c3 + @dihedral:hc-c3-c3-i @atom:hc @atom:c3 @atom:c3 @atom:i + @dihedral:hc-c3-c3-n3 @atom:hc @atom:c3 @atom:c3 @atom:n3 + @dihedral:hc-c3-ca-ca @atom:hc @atom:c3 @atom:ca @atom:ca + @dihedral:hc-c3-p2-c2 @atom:hc @atom:c3 @atom:p2 @atom:c2 + @dihedral:hc-c3-p3-c3 @atom:hc @atom:c3 @atom:p3 @atom:c3 + @dihedral:hc-c3-p4-c3 @atom:hc @atom:c3 @atom:p4 @atom:c3 + @dihedral:hn-n3-c3-c3 @atom:hn @atom:n3 @atom:c3 @atom:c3 + @dihedral:hn-n4-c2-c2 @atom:hn @atom:n4 @atom:c2 @atom:c2 + @dihedral:hn-n4-c2-c3 @atom:hn @atom:n4 @atom:c2 @atom:c3 + @dihedral:hn-n4-c3-hx @atom:hn @atom:n4 @atom:c3 @atom:hx + @dihedral:hn-n4-n2-c2 @atom:hn @atom:n4 @atom:n2 @atom:c2 + @dihedral:hn-n4-n3-c3 @atom:hn @atom:n4 @atom:n3 @atom:c3 + @dihedral:hn-n4-na-cd @atom:hn @atom:n4 @atom:na @atom:cd + @dihedral:hn-n4-n-c @atom:hn @atom:n4 @atom:n @atom:c + @dihedral:hn-n4-nh-c2 @atom:hn @atom:n4 @atom:nh @atom:c2 + @dihedral:hn-nh-na-cd @atom:hn @atom:nh @atom:na @atom:cd + @dihedral:ho-oh-c2-c2 @atom:ho @atom:oh @atom:c2 @atom:c2 + @dihedral:ho-oh-c2-c3 @atom:ho @atom:oh @atom:c2 @atom:c3 + @dihedral:ho-oh-c3-h1 @atom:ho @atom:oh @atom:c3 @atom:h1 + @dihedral:ho-oh-ca-ca @atom:ho @atom:oh @atom:ca @atom:ca + @dihedral:ho-oh-n2-c2 @atom:ho @atom:oh @atom:n2 @atom:c2 + @dihedral:ho-oh-n3-c3 @atom:ho @atom:oh @atom:n3 @atom:c3 + @dihedral:ho-oh-n4-c3 @atom:ho @atom:oh @atom:n4 @atom:c3 + @dihedral:ho-oh-na-cc @atom:ho @atom:oh @atom:na @atom:cc + @dihedral:ho-oh-nh-c2 @atom:ho @atom:oh @atom:nh @atom:c2 + @dihedral:ho-oh-no-o @atom:ho @atom:oh @atom:no @atom:o + @dihedral:ho-oh-oh-ho @atom:ho @atom:oh @atom:oh @atom:ho + @dihedral:ho-oh-p2-c2 @atom:ho @atom:oh @atom:p2 @atom:c2 + @dihedral:ho-oh-p4-c3 @atom:ho @atom:oh @atom:p4 @atom:c3 + @dihedral:ho-oh-p5-o @atom:ho @atom:oh @atom:p5 @atom:o + @dihedral:hs-sh-c2-c2 @atom:hs @atom:sh @atom:c2 @atom:c2 + @dihedral:hs-sh-c2-c3 @atom:hs @atom:sh @atom:c2 @atom:c3 + @dihedral:hs-sh-c3-h1 @atom:hs @atom:sh @atom:c3 @atom:h1 + @dihedral:hs-sh-ca-ca @atom:hs @atom:sh @atom:ca @atom:ca + @dihedral:hs-sh-n2-c2 @atom:hs @atom:sh @atom:n2 @atom:c2 + @dihedral:hs-sh-n3-c3 @atom:hs @atom:sh @atom:n3 @atom:c3 + @dihedral:hs-sh-n4-c3 @atom:hs @atom:sh @atom:n4 @atom:c3 + @dihedral:hs-sh-na-cc @atom:hs @atom:sh @atom:na @atom:cc + @dihedral:hs-sh-nh-c2 @atom:hs @atom:sh @atom:nh @atom:c2 + @dihedral:hs-sh-no-o @atom:hs @atom:sh @atom:no @atom:o + @dihedral:hs-sh-oh-ho @atom:hs @atom:sh @atom:oh @atom:ho + @dihedral:hs-sh-os-c3 @atom:hs @atom:sh @atom:os @atom:c3 + @dihedral:hs-sh-p2-c2 @atom:hs @atom:sh @atom:p2 @atom:c2 + @dihedral:hs-sh-p3-c3 @atom:hs @atom:sh @atom:p3 @atom:c3 + @dihedral:hs-sh-p4-c3 @atom:hs @atom:sh @atom:p4 @atom:c3 + @dihedral:hs-sh-p5-os @atom:hs @atom:sh @atom:p5 @atom:os + @dihedral:hs-sh-p5-os @atom:hs @atom:sh @atom:p5 @atom:os + @dihedral:hs-sh-sh-hs @atom:hs @atom:sh @atom:sh @atom:hs + @dihedral:n2-c2-c3-c2 @atom:n2 @atom:c2 @atom:c3 @atom:c2 + @dihedral:n3-c3-c3-c3 @atom:n3 @atom:c3 @atom:c3 @atom:c3 + @dihedral:n3-c3-c3-ca @atom:n3 @atom:c3 @atom:c3 @atom:ca + @dihedral:n3-c3-n3-hn @atom:n3 @atom:c3 @atom:n3 @atom:hn + @dihedral:n4-c3-c3-c3 @atom:n4 @atom:c3 @atom:c3 @atom:c3 + @dihedral:n4-c3-n4-hn @atom:n4 @atom:c3 @atom:n4 @atom:hn + @dihedral:n-c3-c3-c3 @atom:n @atom:c3 @atom:c3 @atom:c3 + @dihedral:nh-c3-c3-c3 @atom:nh @atom:c3 @atom:c3 @atom:c3 + @dihedral:o-c-c3-c3 @atom:o @atom:c @atom:c3 @atom:c3 + @dihedral:oh-c3-c3-c3 @atom:oh @atom:c3 @atom:c3 @atom:c3 + @dihedral:oh-c3-c3-c @atom:oh @atom:c3 @atom:c3 @atom:c + @dihedral:oh-c3-c3-n @atom:oh @atom:c3 @atom:c3 @atom:n + @dihedral:oh-c3-oh-ho @atom:oh @atom:c3 @atom:oh @atom:ho + @dihedral:o-no-c2-c2 @atom:o @atom:no @atom:c2 @atom:c2 + @dihedral:o-no-c2-c3 @atom:o @atom:no @atom:c2 @atom:c3 + @dihedral:o-no-c3-no @atom:o @atom:no @atom:c3 @atom:no + @dihedral:o-no-ca-ca @atom:o @atom:no @atom:ca @atom:ca + @dihedral:o-no-cd-cc @atom:o @atom:no @atom:cd @atom:cc + @dihedral:o-no-n2-c2 @atom:o @atom:no @atom:n2 @atom:c2 + @dihedral:o-no-n3-c3 @atom:o @atom:no @atom:n3 @atom:c3 + @dihedral:o-no-n4-c3 @atom:o @atom:no @atom:n4 @atom:c3 + @dihedral:o-no-na-cc @atom:o @atom:no @atom:na @atom:cc + @dihedral:o-no-nh-c2 @atom:o @atom:no @atom:nh @atom:c2 + @dihedral:o-no-no-o @atom:o @atom:no @atom:no @atom:o + @dihedral:o-no-no-o @atom:o @atom:no @atom:no @atom:o + @dihedral:o-no-p2-c2 @atom:o @atom:no @atom:p2 @atom:c2 + @dihedral:o-no-p4-c3 @atom:o @atom:no @atom:p4 @atom:c3 + @dihedral:o-py-ne-c2 @atom:o @atom:py @atom:ne @atom:c2 + @dihedral:o-py-ne-c2 @atom:o @atom:py @atom:ne @atom:c2 + @dihedral:o-s4-c3-s4 @atom:o @atom:s4 @atom:c3 @atom:s4 + @dihedral:o-s6-c3-s6 @atom:o @atom:s6 @atom:c3 @atom:s6 + @dihedral:os-c-c3-c @atom:os @atom:c @atom:c3 @atom:c + @dihedral:os-c-c3-c @atom:os @atom:c @atom:c3 @atom:c + @dihedral:os-p3-os-c3 @atom:os @atom:p3 @atom:os @atom:c3 + @dihedral:os-p5-n3-c3 @atom:os @atom:p5 @atom:n3 @atom:c3 + @dihedral:os-p5-n4-c3 @atom:os @atom:p5 @atom:n4 @atom:c3 + @dihedral:os-p5-na-cc @atom:os @atom:p5 @atom:na @atom:cc + @dihedral:os-p5-nh-c2 @atom:os @atom:p5 @atom:nh @atom:c2 + @dihedral:os-p5-no-o @atom:os @atom:p5 @atom:no @atom:o + @dihedral:os-p5-no-o @atom:os @atom:p5 @atom:no @atom:o + @dihedral:os-p5-p3-c3 @atom:os @atom:p5 @atom:p3 @atom:c3 + @dihedral:os-p5-ss-c3 @atom:os @atom:p5 @atom:ss @atom:c3 + @dihedral:os-py-ca-ca @atom:os @atom:py @atom:ca @atom:ca + @dihedral:os-py-ce-c2 @atom:os @atom:py @atom:ce @atom:c2 + @dihedral:os-py-ce-c3 @atom:os @atom:py @atom:ce @atom:c3 + @dihedral:os-py-pe-c2 @atom:os @atom:py @atom:pe @atom:c2 + @dihedral:os-py-py-c3 @atom:os @atom:py @atom:py @atom:c3 + @dihedral:os-py-py-os @atom:os @atom:py @atom:py @atom:os + @dihedral:os-py-sx-c3 @atom:os @atom:py @atom:sx @atom:c3 + @dihedral:os-py-sy-c3 @atom:os @atom:py @atom:sy @atom:c3 + @dihedral:os-py-sy-c3 @atom:os @atom:py @atom:sy @atom:c3 + @dihedral:p3-c3-p3-hp @atom:p3 @atom:c3 @atom:p3 @atom:hp + @dihedral:s-c-c3-c @atom:s @atom:c @atom:c3 @atom:c + @dihedral:sh-c3-c3-n @atom:sh @atom:c3 @atom:c3 @atom:n + @dihedral:sh-c3-sh-hs @atom:sh @atom:c3 @atom:sh @atom:hs + @dihedral:ss-c3-ss-c3 @atom:ss @atom:c3 @atom:ss @atom:c3 + @dihedral:c3-c3-ca-ca @atom:c3 @atom:c3 @atom:ca @atom:ca + @dihedral:c3-c3-c-o @atom:c3 @atom:c3 @atom:c @atom:o + @dihedral:c3-c3-c-o @atom:c3 @atom:c3 @atom:c @atom:o + @dihedral:c3-c3-c-o @atom:c3 @atom:c3 @atom:c @atom:o + @dihedral:c3-c3-os-c3 @atom:c3 @atom:c3 @atom:os @atom:c3 + @dihedral:c3-c3-os-c3 @atom:c3 @atom:c3 @atom:os @atom:c3 + @dihedral:c3-c3-os-c3 @atom:c3 @atom:c3 @atom:os @atom:c3 + @dihedral:ca-ca-c-o @atom:ca @atom:ca @atom:c @atom:o + @dihedral:o-c-c3-c @atom:o @atom:c @atom:c3 @atom:c + @dihedral:o-c-c3-c @atom:o @atom:c @atom:c3 @atom:c + @dihedral:os-c3-c-o @atom:os @atom:c3 @atom:c @atom:o + @dihedral:os-c3-c-o @atom:os @atom:c3 @atom:c @atom:o + @dihedral:os-c3-c-o @atom:os @atom:c3 @atom:c @atom:o + @dihedral:c2-ce-cs-c3 @atom:c2 @atom:ce @atom:cs @atom:c3 + @dihedral:c2-ce-c-c3 @atom:c2 @atom:ce @atom:c @atom:c3 + @dihedral:c2-ce-ce-c2 @atom:c2 @atom:ce @atom:ce @atom:c2 + @dihedral:c2-n-c-c3 @atom:c2 @atom:n @atom:c @atom:c3 + @dihedral:c2-n-cs-c3 @atom:c2 @atom:n @atom:cs @atom:c3 + @dihedral:c2-ne-c-c3 @atom:c2 @atom:ne @atom:c @atom:c3 + @dihedral:c2-ne-cs-c3 @atom:c2 @atom:ne @atom:cs @atom:c3 + @dihedral:c2-pe-c-c3 @atom:c2 @atom:pe @atom:c @atom:c3 + @dihedral:c2-pe-cs-c3 @atom:c2 @atom:pe @atom:cs @atom:c3 + @dihedral:c3-cs-cs-c3 @atom:c3 @atom:cs @atom:cs @atom:c3 + @dihedral:c3-c-c-c3 @atom:c3 @atom:c @atom:c @atom:c3 + @dihedral:c3-c-cs-c3 @atom:c3 @atom:c @atom:cs @atom:c3 + @dihedral:c3-c-n-ca @atom:c3 @atom:c @atom:n @atom:ca + @dihedral:c3-c-n-ca @atom:c3 @atom:c @atom:n @atom:ca + @dihedral:c3-cs-n-ca @atom:c3 @atom:cs @atom:n @atom:ca + @dihedral:c3-n7-c3-c3 @atom:c3 @atom:n7 @atom:c3 @atom:c3 + @dihedral:c3-n7-c3-c3 @atom:c3 @atom:n7 @atom:c3 @atom:c3 + @dihedral:c3-n3-c3-c3 @atom:c3 @atom:n3 @atom:c3 @atom:c3 + @dihedral:c3-n3-c3-c3 @atom:c3 @atom:n3 @atom:c3 @atom:c3 + @dihedral:c3-n-cs-c3 @atom:c3 @atom:n @atom:cs @atom:c3 + @dihedral:c3-n-cs-c3 @atom:c3 @atom:n @atom:cs @atom:c3 + @dihedral:c3-nu-ca-ca @atom:c3 @atom:nu @atom:ca @atom:ca + @dihedral:c3-nh-ca-ca @atom:c3 @atom:nh @atom:ca @atom:ca + @dihedral:c3-os-cs-c3 @atom:c3 @atom:os @atom:cs @atom:c3 + @dihedral:c3-os-cs-c3 @atom:c3 @atom:os @atom:cs @atom:c3 + @dihedral:c3-os-cs-c3 @atom:c3 @atom:os @atom:cs @atom:c3 + @dihedral:c3-p3-c-c3 @atom:c3 @atom:p3 @atom:c @atom:c3 + @dihedral:c3-p3-cs-c3 @atom:c3 @atom:p3 @atom:cs @atom:c3 + @dihedral:c3-ss-c-c3 @atom:c3 @atom:ss @atom:c @atom:c3 + @dihedral:c3-ss-cs-c3 @atom:c3 @atom:ss @atom:cs @atom:c3 + @dihedral:c3-sx-c-c3 @atom:c3 @atom:sx @atom:c @atom:c3 + @dihedral:c3-sx-c-c3 @atom:c3 @atom:sx @atom:c @atom:c3 + @dihedral:c3-sx-cs-c3 @atom:c3 @atom:sx @atom:cs @atom:c3 + @dihedral:c3-sx-cs-c3 @atom:c3 @atom:sx @atom:cs @atom:c3 + @dihedral:c3-sy-cs-c3 @atom:c3 @atom:sy @atom:cs @atom:c3 + @dihedral:c3-sy-c-c3 @atom:c3 @atom:sy @atom:c @atom:c3 + @dihedral:ca-ca-c-c3 @atom:ca @atom:ca @atom:c @atom:c3 + @dihedral:ca-ca-cs-c3 @atom:ca @atom:ca @atom:cs @atom:c3 + @dihedral:c-c3-c3-c3 @atom:c @atom:c3 @atom:c3 @atom:c3 + @dihedral:c-n-cs-c3 @atom:c @atom:n @atom:cs @atom:c3 + @dihedral:c-n-c-c3 @atom:c @atom:n @atom:c @atom:c3 + @dihedral:c-n-c-c3 @atom:c @atom:n @atom:c @atom:c3 + @dihedral:hc-c3-c-c3 @atom:hc @atom:c3 @atom:c @atom:c3 + @dihedral:hc-c3-cs-c3 @atom:hc @atom:c3 @atom:cs @atom:c3 + @dihedral:hn-n4-c-c3 @atom:hn @atom:n4 @atom:c @atom:c3 + @dihedral:hn-n4-c-c3 @atom:hn @atom:n4 @atom:c @atom:c3 + @dihedral:hn-n4-cs-c3 @atom:hn @atom:n4 @atom:cs @atom:c3 + @dihedral:hn-n4-cs-c3 @atom:hn @atom:n4 @atom:cs @atom:c3 + @dihedral:ho-oh-c-c3 @atom:ho @atom:oh @atom:c @atom:c3 + @dihedral:ho-oh-cs-c3 @atom:ho @atom:oh @atom:cs @atom:c3 + @dihedral:hs-sh-cs-c3 @atom:hs @atom:sh @atom:cs @atom:c3 + @dihedral:hs-sh-cs-c3 @atom:hs @atom:sh @atom:cs @atom:c3 + @dihedral:o-n-c-c3 @atom:o @atom:n @atom:c @atom:c3 + @dihedral:o-n-cs-c3 @atom:o @atom:n @atom:cs @atom:c3 + @dihedral:o-p5-c3-p5 @atom:o @atom:p5 @atom:c3 @atom:p5 + @dihedral:o-p5-c3-p5 @atom:o @atom:p5 @atom:c3 @atom:p5 + @dihedral:os-py-c-c3 @atom:os @atom:py @atom:c @atom:c3 + @dihedral:os-py-cs-c3 @atom:os @atom:py @atom:cs @atom:c3 + } # (end of Dihedrals By Type) + + write_once("In Settings") { + improper_coeff @improper:X-o-c-o cvff 1.1 -1 2 # JCC,7,(1986),230 + improper_coeff @improper:X-X-c-o cvff 10.5 -1 2 # JCC,7,(1986),230 + improper_coeff @improper:X-X-ca-ha cvff 1.1 -1 2 # bsd.on C6H6 nmodes + improper_coeff @improper:X-X-n-hn cvff 1.1 -1 2 # JCC,7,(1986),230 + improper_coeff @improper:X-X-n2-hn cvff 1.1 -1 2 # JCC,7,(1986),230 + improper_coeff @improper:X-X-na-hn cvff 1.1 -1 2 # JCC,7,(1986),230 + improper_coeff @improper:X-c3-n-c3 cvff 1.1 -1 2 # JCC,7,(1986),230 + improper_coeff @improper:X-n2-ca-n2 cvff 10.5 -1 2 # JCC,7,(1986),230 + improper_coeff @improper:c-c2-c2-c3 cvff 1.1 -1 2 # dac guess, 9/94 + improper_coeff @improper:c-ca-ca-c3 cvff 1.1 -1 2 # dac guess, 9/94 + improper_coeff @improper:c-c3-n-hn cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:c-c3-n-o cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:c2-c2-na-c3 cvff 1.1 -1 2 + improper_coeff @improper:c2-c-c2-c3 cvff 1.1 -1 2 + improper_coeff @improper:c2-c3-c2-hc cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:c2-c3-ca-hc cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:c2-hc-c-o cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:c3-o-c-oh cvff 1.1 -1 2 + improper_coeff @improper:c3-c2-c2-n2 cvff 1.1 -1 2 + improper_coeff @improper:c3-c2-c2-na cvff 1.1 -1 2 + improper_coeff @improper:c3-ca-ca-n2 cvff 1.1 -1 2 + improper_coeff @improper:c3-ca-ca-na cvff 1.1 -1 2 + improper_coeff @improper:ca-ca-ca-c2 cvff 1.1 -1 2 + improper_coeff @improper:ca-ca-ca-c3 cvff 1.1 -1 2 + improper_coeff @improper:ca-ca-ca-f cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:ca-ca-ca-cl cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:ca-ca-ca-br cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:ca-ca-ca-i cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:ca-ca-c-oh cvff 1.1 -1 2 # (not used in tyr!) + improper_coeff @improper:ca-ca-na-c3 cvff 1.1 -1 2 + improper_coeff @improper:ca-c-ca-c3 cvff 1.1 -1 2 + improper_coeff @improper:ca-hc-c-o cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:ca-n2-ca-n2 cvff 1.1 -1 2 # dac, 10/94 + improper_coeff @improper:hc-o-c-oh cvff 1.1 -1 2 # Junmei et al.1999 + improper_coeff @improper:hc-o-c-os cvff 1.1 -1 2 + improper_coeff @improper:n2-c2-ca-n2 cvff 1.1 -1 2 # dac guess, 9/94 + improper_coeff @improper:n2-ca-ca-n2 cvff 1.1 -1 2 # dac guess, 9/94 + improper_coeff @improper:na-n2-ca-n2 cvff 1.1 -1 2 # dac, 10/94 + } # (end of improper_coeffs) + + write_once("Data Impropers By Type (gaff_imp.py)") { + @improper:X-o-c-o @atom:* @atom:o @atom:c @atom:o + @improper:X-X-c-o @atom:* @atom:* @atom:c @atom:o + @improper:X-X-ca-ha @atom:* @atom:* @atom:ca @atom:ha + @improper:X-X-n-hn @atom:* @atom:* @atom:n @atom:hn + @improper:X-X-n2-hn @atom:* @atom:* @atom:n2 @atom:hn + @improper:X-X-na-hn @atom:* @atom:* @atom:na @atom:hn + @improper:X-c3-n-c3 @atom:* @atom:c3 @atom:n @atom:c3 + @improper:X-n2-ca-n2 @atom:* @atom:n2 @atom:ca @atom:n2 + @improper:c-c2-c2-c3 @atom:c @atom:c2 @atom:c2 @atom:c3 + @improper:c-ca-ca-c3 @atom:c @atom:ca @atom:ca @atom:c3 + @improper:c-c3-n-hn @atom:c @atom:c3 @atom:n @atom:hn + @improper:c-c3-n-o @atom:c @atom:c3 @atom:n @atom:o + @improper:c2-c2-na-c3 @atom:c2 @atom:c2 @atom:na @atom:c3 + @improper:c2-c-c2-c3 @atom:c2 @atom:c @atom:c2 @atom:c3 + @improper:c2-c3-c2-hc @atom:c2 @atom:c3 @atom:c2 @atom:hc + @improper:c2-c3-ca-hc @atom:c2 @atom:c3 @atom:ca @atom:hc + @improper:c2-hc-c-o @atom:c2 @atom:hc @atom:c @atom:o + @improper:c3-o-c-oh @atom:c3 @atom:o @atom:c @atom:oh + @improper:c3-c2-c2-n2 @atom:c3 @atom:c2 @atom:c2 @atom:n2 + @improper:c3-c2-c2-na @atom:c3 @atom:c2 @atom:c2 @atom:na + @improper:c3-ca-ca-n2 @atom:c3 @atom:ca @atom:ca @atom:n2 + @improper:c3-ca-ca-na @atom:c3 @atom:ca @atom:ca @atom:na + @improper:ca-ca-ca-c2 @atom:ca @atom:ca @atom:ca @atom:c2 + @improper:ca-ca-ca-c3 @atom:ca @atom:ca @atom:ca @atom:c3 + @improper:ca-ca-ca-f @atom:ca @atom:ca @atom:ca @atom:f + @improper:ca-ca-ca-cl @atom:ca @atom:ca @atom:ca @atom:cl + @improper:ca-ca-ca-br @atom:ca @atom:ca @atom:ca @atom:br + @improper:ca-ca-ca-i @atom:ca @atom:ca @atom:ca @atom:i + @improper:ca-ca-c-oh @atom:ca @atom:ca @atom:c @atom:oh + @improper:ca-ca-na-c3 @atom:ca @atom:ca @atom:na @atom:c3 + @improper:ca-c-ca-c3 @atom:ca @atom:c @atom:ca @atom:c3 + @improper:ca-hc-c-o @atom:ca @atom:hc @atom:c @atom:o + @improper:ca-n2-ca-n2 @atom:ca @atom:n2 @atom:ca @atom:n2 + @improper:hc-o-c-oh @atom:hc @atom:o @atom:c @atom:oh + @improper:hc-o-c-os @atom:hc @atom:o @atom:c @atom:os + @improper:n2-c2-ca-n2 @atom:n2 @atom:c2 @atom:ca @atom:n2 + @improper:n2-ca-ca-n2 @atom:n2 @atom:ca @atom:ca @atom:n2 + @improper:na-n2-ca-n2 @atom:na @atom:n2 @atom:ca @atom:n2 + } # (end of Impropers By Type) + + + write_once("In Init") { + # Default styles and settings for AMBER based force-fields: + units real + atom_style full + bond_style hybrid harmonic + angle_style hybrid harmonic + dihedral_style hybrid fourier + improper_style hybrid cvff + pair_style hybrid lj/charmm/coul/long 9.0 10.0 10.0 + kspace_style pppm 0.0001 + + # NOTE: If you do not want to use long-range coulombic forces, + # comment out the two lines above and uncomment this line: + # pair_style hybrid lj/charmm/coul/charmm 9.0 10.0 + + pair_modify mix arithmetic + special_bonds amber + } + +} + + diff --git a/tools/moltemplate/moltemplate/force_fields/loplsaa.lt b/tools/moltemplate/moltemplate/force_fields/loplsaa.lt index 0c9614632c..017411a75f 100644 --- a/tools/moltemplate/moltemplate/force_fields/loplsaa.lt +++ b/tools/moltemplate/moltemplate/force_fields/loplsaa.lt @@ -1,17 +1,17 @@ -########################################################################### -## Extra OPLSAA parameters and atom types for long hydrocarbon chains ## -## SOURCE: Sui, Pluhackova, Böckmann, J.Chem.Theory.Comp (2012), 8, 1459 ## -## CREDIT: Sebastian Echeverri (file format conversion) ## -########################################################################### +############################################################################ +## Extra OPLSAA parameters and atom types for long hydrocarbon chains ## +## SOURCES: Sui, Pluhackova, Böckmann, J.Chem.Theory.Comp (2012), 8(4), 1459 +## Pluhackova,...,Böckmann, J.Phys.Chem.B (2015), 119(49), 15287 ## +## CREDIT: Sebastian Echeverri (file format conversion) ## +############################################################################ # This file was generated using: -# tinkerparm2lt.py -name LOPLSAA -file loplsaa_ext.prm -dihedral-style opls -# (and then edited manually to make sure the -# bond, angle, and improper interactions for these atoms -# remain unchanged) +# tinkerparm2lt.py -name OPLSAA -file loplsaa_ext.prm -dihedral-style opls -zeropad 3 +# (...and then EDITED manually to make sure the default bond, angle, +# and improper interactions for these atoms remain unchanged) -import "oplsaa.lt" # <-- Load the ordinary OPLS parameters - # We will extend and override them below +import "oplsaa.lt" # <-- Load the ordinary OPLS parameters first + # We will augment and override them below @@ -22,12 +22,20 @@ OPLSAA { write_once("In Charges") { set type @atom:80L charge -0.222 # "Alkane CH3- (LOPLS CT_CH3)" set type @atom:81L charge -0.148 # "Alkane -CH2- (LOPLS CT_CH2)" + set type @atom:81LL charge 0.19 # "Alkane -CH2- (LOPLS ALT)" set type @atom:85LCH3 charge 0.074 # "Alkane H-C CH3 (LOPLS HC_CH3)" set type @atom:85LCH2 charge 0.074 # "Alkane H-C CH2 (LOPLS HC_CH2)" set type @atom:87L charge -0.16 # "Alkene RH-C= (LOPLS CM_CH)" set type @atom:89L charge 0.16 # "Alkene H-C= (LOPLS HC_CH)" set type @atom:86L charge 0.0 # "Alkene R2-C= (LOPLS)" set type @atom:88L charge -0.23 # "Alkene H2-C= (LOPLS)" + set type @atom:96L charge -0.683 # "Alcohol -OH (LOPLS)" + set type @atom:97L charge 0.418 # "Alcohol -OH (LOPLS)" + set type @atom:111L charge -0.7 # "Diol -OH (LOPLS)" + set type @atom:112L charge 0.435 # "Diol -OH (LOPLS)" + set type @atom:113L charge -0.73 # "Triol -OH (LOPLS)" + set type @atom:114L charge 0.465 # "Triol -OH (LOPLS)" + set type @atom:118L charge 0.06 # "Diol & Triol H-COH (LOPLS)" set type @atom:169L charge 0.005 # "Chloroalkene Cl-CH= (LOPLS)" set type @atom:266L charge -0.07 # "Uracil & Thymine C5 (LOPLS)" set type @atom:267L charge 0.08 # "Uracil & Thymine C6 (LOPLS)" @@ -37,9 +45,14 @@ OPLSAA { set type @atom:325L charge 0.1 # "CytosineH+ C6 (LOPLS)" set type @atom:340L charge 0.18 # "Trifluorothymine CF3- (LOPLS)" set type @atom:342L charge 0.12 # "Chloroalkene Cl2-C= (LOPLS)" + set type @atom:406L charge 0.75 # "Ester -COOR (LOPLS)" + set type @atom:407L charge -0.55 # "Ester C=O (LOPLS)" + set type @atom:408L charge -0.45 # "Ester CO-O-R (LOPLS)" set type @atom:458L charge -0.03 # "Vinyl Ether =CH-OR (LOPLS)" set type @atom:459L charge 0.085 # "Vinyl Ether =CR-OR (LOPLS)" set type @atom:649L charge -0.344 # "Cl..CH3..Cl- Sn2 TS (LOPLS)" + set type @atom:718L charge 0.06 # "Propylene Carbonate CH2 (LOPLS)" + set type @atom:718LL charge 0.03 # "Propylene Carbonate CH2 (LOPLS ALT)" set type @atom:900L charge -0.25 # "Allene/Ketene H2C=C=X (LOPLS)" set type @atom:901L charge -0.1 # "Allene/Ketene HRC=C=X (LOPLS)" set type @atom:902L charge 0.05 # "Allene/Ketene R2C=C=X (LOPLS)" @@ -49,12 +62,20 @@ OPLSAA { write_once("Data Masses") { @atom:80L 12.011 @atom:81L 12.011 + @atom:81LL 12.011 @atom:85LCH3 1.008 @atom:85LCH2 1.008 @atom:87L 12.011 @atom:89L 1.008 @atom:86L 12.011 @atom:88L 12.011 + @atom:96L 15.999 + @atom:97L 1.008 + @atom:111L 15.999 + @atom:112L 1.008 + @atom:113L 15.999 + @atom:114L 1.008 + @atom:118L 1.008 @atom:169L 12.011 @atom:266L 12.011 @atom:267L 12.011 @@ -64,66 +85,113 @@ OPLSAA { @atom:325L 12.011 @atom:340L 12.011 @atom:342L 12.011 + @atom:406L 12.011 + @atom:407L 15.999 + @atom:408L 15.999 @atom:458L 12.011 @atom:459L 12.011 @atom:649L 12.011 + @atom:718L 1.008 + @atom:718LL 1.008 @atom:900L 12.011 @atom:901L 12.011 @atom:902L 12.011 } #(end of atom masses) - # ------- force-field-IDs for bonded interaction lookup ------- - # (First append the "force-field-ID" to the atom type name. - # Later use these expanded names for force-field lookup.) - replace{ @atom:80L @atom:80L_b13_a13_d13L_i13 } - replace{ @atom:81L @atom:81L_b13_a13_d13L_i13 } - replace{ @atom:85LCH3 @atom:85LCH3_b46_a46_d46_i46 } - replace{ @atom:85LCH2 @atom:85LCH2_b46_a46_d46_i46 } - replace{ @atom:87L @atom:87L_b47_a47_d47L_i47 } - replace{ @atom:89L @atom:89L_b46_a46_d46_i46 } - replace{ @atom:86L @atom:86L_b47_a47_d47L_i47 } - replace{ @atom:88L @atom:88L_b47_a47_d47L_i47 } - replace{ @atom:169L @atom:169L_b47_a47_d47L_i47 } - replace{ @atom:266L @atom:266L_b47_a47_d47L_i47 } - replace{ @atom:267L @atom:267L_b47_a47_d47L_i47 } - replace{ @atom:280L @atom:280L_b47_a47_d47L_i47 } - replace{ @atom:281L @atom:281L_b47_a47_d47L_i47 } - replace{ @atom:324L @atom:324L_b47_a47_d47L_i47 } - replace{ @atom:325L @atom:325L_b47_a47_d47L_i47 } - replace{ @atom:340L @atom:340L_b47_a47_d47L_i47 } - replace{ @atom:342L @atom:342L_b47_a47_d47L_i47 } - replace{ @atom:458L @atom:458L_b47_a47_d47L_i47 } - replace{ @atom:459L @atom:459L_b47_a47_d47L_i47 } - replace{ @atom:649L @atom:649L_b47_a47_d47L_i47 } - replace{ @atom:900L @atom:900L_b47_a47_d47L_i47 } - replace{ @atom:901L @atom:901L_b47_a47_d47L_i47 } - replace{ @atom:902L @atom:902L_b47_a47_d47L_i47 } - #(end of force-field-IDs) + + # ---------- EQUIVALENCE CATEGORIES for bonded interaction lookup ---------- + # Each type of atom has a separate ID used for looking up bond parameters + # and a separate ID for looking up 3-body angle interaction parameters + # and a separate ID for looking up 4-body dihedral interaction parameters + # and a separate ID for looking up 4-body improper interaction parameters + # The complete @atom type name includes ALL of these ID numbers. There's + # no need to force the end-user to type the complete name of each atom. + # The "replace" command used below informs moltemplate that the short + # @atom names we have been using abovee are equivalent to the complete + # @atom names used below: + + replace{ @atom:80L @atom:80L_b013_a013_d013L_i013 } + replace{ @atom:81L @atom:81L_b013_a013_d013L_i013 } + replace{ @atom:81LL @atom:81LL_b013_a013_d013LL_i013 } + replace{ @atom:85LCH3 @atom:85LCH3_b046_a046_d046_i046 } + replace{ @atom:85LCH2 @atom:85LCH2_b046_a046_d046_i046 } + replace{ @atom:87L @atom:87L_b047_a047_d047L_i047 } + replace{ @atom:89L @atom:89L_b046_a046_d046_i046 } + replace{ @atom:86L @atom:86L_b047_a047_d047L_i047 } + replace{ @atom:88L @atom:88L_b047_a047_d047L_i047 } + replace{ @atom:96L @atom:96L_b005_a005_d005L_i005 } + replace{ @atom:97L @atom:97L_b007_a007_d007L_i007 } + replace{ @atom:111L @atom:111L_b005_a005_d005L_i005 } + replace{ @atom:112L @atom:112L_b007_a007_d007L_i007 } + replace{ @atom:113L @atom:113L_b005_a005_d005L_i005 } + replace{ @atom:114L @atom:114L_b007_a007_d007L_i007 } + replace{ @atom:118L @atom:118L_b046_a046_d046L_i046 } + replace{ @atom:169L @atom:169L_b047_a047_d047L_i047 } + replace{ @atom:266L @atom:266L_b047_a047_d047L_i047 } + replace{ @atom:267L @atom:267L_b047_a047_d047L_i047 } + replace{ @atom:280L @atom:280L_b047_a047_d047L_i047 } + replace{ @atom:281L @atom:281L_b047_a047_d047L_i047 } + replace{ @atom:324L @atom:324L_b047_a047_d047L_i047 } + replace{ @atom:325L @atom:325L_b047_a047_d047L_i047 } + replace{ @atom:340L @atom:340L_b047_a047_d047L_i047 } + replace{ @atom:342L @atom:342L_b047_a047_d047L_i047 } + replace{ @atom:406L @atom:406L_b003_a003_d003L_i003 } + replace{ @atom:407L @atom:407L_b004_a004_d004L_i004 } + replace{ @atom:408L @atom:408L_b020_a020_d020L_i020 } + replace{ @atom:458L @atom:458L_b047_a047_d047L_i047 } + replace{ @atom:459L @atom:459L_b047_a047_d047L_i047 } + replace{ @atom:649L @atom:649L_b047_a047_d047L_i047 } + replace{ @atom:718L @atom:718L_b046_a046_d046L_i046 } + replace{ @atom:718LL @atom:718LL_b046_a046_d046L_i046 } + replace{ @atom:900L @atom:900L_b047_a047_d047L_i047 } + replace{ @atom:901L @atom:901L_b047_a047_d047L_i047 } + replace{ @atom:902L @atom:902L_b047_a047_d047L_i047 } + + + + + # --------------- Non-Bonded interactions: --------------------- + # http://lammps.sandia.gov/doc/pair_lj.html + # Syntax: + # pair_coeff AtomType1 AtomType2 parameters... write_once("In Settings") { - pair_coeff @atom:80L_b13_a13_d13L_i13 @atom:80L_b13_a13_d13L_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:81L_b13_a13_d13L_i13 @atom:81L_b13_a13_d13L_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:85LCH3_b46_a46_d46_i46 @atom:85LCH3_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:85LCH2_b46_a46_d46_i46 @atom:85LCH2_b46_a46_d46_i46 lj/cut/coul/long 0.026290630975 2.5 - pair_coeff @atom:87L_b47_a47_d47L_i47 @atom:87L_b47_a47_d47L_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:89L_b46_a46_d46_i46 @atom:89L_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:86L_b47_a47_d47L_i47 @atom:86L_b47_a47_d47L_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:88L_b47_a47_d47L_i47 @atom:88L_b47_a47_d47L_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:169L_b47_a47_d47L_i47 @atom:169L_b47_a47_d47L_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:266L_b47_a47_d47L_i47 @atom:266L_b47_a47_d47L_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:267L_b47_a47_d47L_i47 @atom:267L_b47_a47_d47L_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:280L_b47_a47_d47L_i47 @atom:280L_b47_a47_d47L_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:281L_b47_a47_d47L_i47 @atom:281L_b47_a47_d47L_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:324L_b47_a47_d47L_i47 @atom:324L_b47_a47_d47L_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:325L_b47_a47_d47L_i47 @atom:325L_b47_a47_d47L_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:340L_b47_a47_d47L_i47 @atom:340L_b47_a47_d47L_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:342L_b47_a47_d47L_i47 @atom:342L_b47_a47_d47L_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:458L_b47_a47_d47L_i47 @atom:458L_b47_a47_d47L_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:459L_b47_a47_d47L_i47 @atom:459L_b47_a47_d47L_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:649L_b47_a47_d47L_i47 @atom:649L_b47_a47_d47L_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:900L_b47_a47_d47L_i47 @atom:900L_b47_a47_d47L_i47 lj/cut/coul/long 0.086 3.3 - pair_coeff @atom:901L_b47_a47_d47L_i47 @atom:901L_b47_a47_d47L_i47 lj/cut/coul/long 0.086 3.3 - pair_coeff @atom:902L_b47_a47_d47L_i47 @atom:902L_b47_a47_d47L_i47 lj/cut/coul/long 0.086 3.3 + pair_coeff @atom:80L_b013_a013_d013L_i013 @atom:80L_b013_a013_d013L_i013 0.066 3.5 + pair_coeff @atom:81L_b013_a013_d013L_i013 @atom:81L_b013_a013_d013L_i013 0.066 3.5 + pair_coeff @atom:81LL_b013_a013_d013LL_i013 @atom:81LL_b013_a013_d013LL_i013 0.066 0.35 + pair_coeff @atom:85LCH3_b046_a046_d046_i046 @atom:85LCH3_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:85LCH2_b046_a046_d046_i046 @atom:85LCH2_b046_a046_d046_i046 0.026290630975 2.5 + pair_coeff @atom:87L_b047_a047_d047L_i047 @atom:87L_b047_a047_d047L_i047 0.076 3.55 + pair_coeff @atom:89L_b046_a046_d046_i046 @atom:89L_b046_a046_d046_i046 0.03 2.42 + pair_coeff @atom:86L_b047_a047_d047L_i047 @atom:86L_b047_a047_d047L_i047 0.076 3.55 + pair_coeff @atom:88L_b047_a047_d047L_i047 @atom:88L_b047_a047_d047L_i047 0.076 3.55 + pair_coeff @atom:96L_b005_a005_d005L_i005 @atom:96L_b005_a005_d005L_i005 0.17 0.312 + pair_coeff @atom:97L_b007_a007_d007L_i007 @atom:97L_b007_a007_d007L_i007 0.0 0.0 + pair_coeff @atom:111L_b005_a005_d005L_i005 @atom:111L_b005_a005_d005L_i005 0.17 0.307 + pair_coeff @atom:112L_b007_a007_d007L_i007 @atom:112L_b007_a007_d007L_i007 0.0 0.0 + pair_coeff @atom:113L_b005_a005_d005L_i005 @atom:113L_b005_a005_d005L_i005 0.17 0.307 + pair_coeff @atom:114L_b007_a007_d007L_i007 @atom:114L_b007_a007_d007L_i007 0.0 0.0 + pair_coeff @atom:118L_b046_a046_d046L_i046 @atom:118L_b046_a046_d046L_i046 0.03 0.25 + pair_coeff @atom:169L_b047_a047_d047L_i047 @atom:169L_b047_a047_d047L_i047 0.076 3.55 + pair_coeff @atom:266L_b047_a047_d047L_i047 @atom:266L_b047_a047_d047L_i047 0.08 3.5 + pair_coeff @atom:267L_b047_a047_d047L_i047 @atom:267L_b047_a047_d047L_i047 0.08 3.5 + pair_coeff @atom:280L_b047_a047_d047L_i047 @atom:280L_b047_a047_d047L_i047 0.08 3.5 + pair_coeff @atom:281L_b047_a047_d047L_i047 @atom:281L_b047_a047_d047L_i047 0.08 3.5 + pair_coeff @atom:324L_b047_a047_d047L_i047 @atom:324L_b047_a047_d047L_i047 0.08 3.5 + pair_coeff @atom:325L_b047_a047_d047L_i047 @atom:325L_b047_a047_d047L_i047 0.08 3.5 + pair_coeff @atom:340L_b047_a047_d047L_i047 @atom:340L_b047_a047_d047L_i047 0.08 3.5 + pair_coeff @atom:342L_b047_a047_d047L_i047 @atom:342L_b047_a047_d047L_i047 0.076 3.55 + pair_coeff @atom:406L_b003_a003_d003L_i003 @atom:406L_b003_a003_d003L_i003 0.105 0.31875 + pair_coeff @atom:407L_b004_a004_d004L_i004 @atom:407L_b004_a004_d004L_i004 0.168 0.3108 + pair_coeff @atom:408L_b020_a020_d020L_i020 @atom:408L_b020_a020_d020L_i020 0.17 0.255 + pair_coeff @atom:458L_b047_a047_d047L_i047 @atom:458L_b047_a047_d047L_i047 0.076 3.55 + pair_coeff @atom:459L_b047_a047_d047L_i047 @atom:459L_b047_a047_d047L_i047 0.076 3.55 + pair_coeff @atom:649L_b047_a047_d047L_i047 @atom:649L_b047_a047_d047L_i047 0.076 3.55 + pair_coeff @atom:718L_b046_a046_d046L_i046 @atom:718L_b046_a046_d046L_i046 0.15 0.242 + pair_coeff @atom:718LL_b046_a046_d046L_i046 @atom:718LL_b046_a046_d046L_i046 0.15 0.242 + pair_coeff @atom:900L_b047_a047_d047L_i047 @atom:900L_b047_a047_d047L_i047 0.086 3.3 + pair_coeff @atom:901L_b047_a047_d047L_i047 @atom:901L_b047_a047_d047L_i047 0.086 3.3 + pair_coeff @atom:902L_b047_a047_d047L_i047 @atom:902L_b047_a047_d047L_i047 0.086 3.3 } #(end of pair_coeffs) @@ -135,499 +203,69 @@ OPLSAA { # Dihedral parameters for some of these atoms are modified: + # ----------- Dihedral Interactions: ------------ + # http://lammps.sandia.gov/doc/dihedral_opls.html + # Syntax: + # dihedral_coeff DihedralTypeName parameters... + write_once("In Settings") { - dihedral_coeff @dihedral:13L-13L-13L-13L opls 0.6446926386 -0.2143420172 0.1782194073 0.0 - dihedral_coeff @dihedral:X-47L-47L-X opls 0.0 12.2502629063 0.0 0.0 - dihedral_coeff @dihedral:47L-47L-13L-13L opls -0.8050121893 0.3218905354 -0.1032768881 0.0 - dihedral_coeff @dihedral:13L-13L-13L-47L opls 0.4821902486 0.1343683078 0.1777461759 0.0 + dihedral_coeff @dihedral:013L_013L_013L_013L 0.6446926386 -0.2143420172 0.1782194073 0.0 + dihedral_coeff @dihedral:X_047L_047L_X 0.0 12.2502629063 0.0 0.0 + dihedral_coeff @dihedral:047L_047L_013L_013L -0.8050121893 0.3218905354 -0.1032768881 0.0 + dihedral_coeff @dihedral:013L_013L_013L_047L 0.4821902486 0.1343683078 0.1777461759 0.0 + dihedral_coeff @dihedral:046L_013LL_005L_007L 0.00962596 -0.0145554 0.381091 0.0 + dihedral_coeff @dihedral:046L_013LL_013LL_005L 0.0143774 0.033021 0.26687 0.0 + dihedral_coeff @dihedral:013LL_013LL_005L_007L -0.675785 -0.0160421 0.373199 0.0 + dihedral_coeff @dihedral:013LL_013LL_013LL_005L 1.31261 -0.266307 0.637867 0.0 + dihedral_coeff @dihedral:005L_013LL_013LL_005L 2.69106 -0.849706 0.725731 0.0 + dihedral_coeff @dihedral:013LL_003L_020L_013LL 3.11923 5.73771 0.0 0.0 + dihedral_coeff @dihedral:013LL_020L_003L_004L 0.0 5.73772 0.0 0.0 + dihedral_coeff @dihedral:046L_013LL_003L_020L -0.00742471 0.00217734 0.111803 0.0 + dihedral_coeff @dihedral:003L_020L_013LL_013LL -1.7354 -1.24844 0.623897 0.0 + dihedral_coeff @dihedral:046L_013LL_013LL_020L 0.0113337 0.0236209 0.429747 0.0 + dihedral_coeff @dihedral:013LL_013LL_003L_020L 0.884988 -0.626905 -0.493344 0.0 + dihedral_coeff @dihedral:013LL_013LL_003L_004L -0.276019 1.23685 -0.670745 0.0 + dihedral_coeff @dihedral:003L_013LL_013LL_046L -0.0021152 0.0173542 -0.295208 0.0 + dihedral_coeff @dihedral:003L_013LL_013LL_013LL -2.30738 -0.627326 0.621951 0.0 + dihedral_coeff @dihedral:013LL_013LL_013LL_020L 2.25871 -1.02408 1.0071 0.0 + dihedral_coeff @dihedral:020L_013LL_013LL_020L 4.66787 -2.62698 1.3248 0.0 + dihedral_coeff @dihedral:005L_013LL_013LL_020L 5.03208 -2.37742 1.23809 0.0 } #(end of dihedral_coeffs) - - # First we must slightly loosen the requirements to generate dihedrals - # involving atom types d13 or d47. We want the same rules to apply - # for atoms of type d13L and d47L. To cover both of these cases, - # I replaced "d13_" with "d13*_" in the lines below: - # (Later I will add the custom dihedrals for these atom types.) + # Rules for creating dihedral interactions according to atom type: + # DihedralTypeName AtomType1 AtomType2 AtomType3 AtomType4 + # (* = wildcard) write_once("Data Dihedrals By Type") { - @dihedral:2-2-2-13 @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d13*_i* - @dihedral:2-2-13-2 @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d2_i* - @dihedral:4-3-3-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-3-3-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-3-3-24 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* - @dihedral:13-3-3-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d46_i* - @dihedral:13-3-5-7 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d7_i* - @dihedral:1-3-13-13 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:1-3-13-46 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:3-3-13-46 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:4-3-13-X @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:* - @dihedral:4-3-13-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:4-3-13-21 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d21_i* - @dihedral:4-3-13-44 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* - @dihedral:4-3-13-24 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* - @dihedral:4-3-13-46 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:4-3-13-48 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* - @dihedral:5-3-13-13 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:5-3-13-44 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* - @dihedral:5-3-13-46 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:13-3-13-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-3-13-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:20-3-13-13 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:20-3-13-46 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:21-3-13-13 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:21-3-13-46 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:24-3-13-13 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:24-3-13-21 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d21_i* - @dihedral:24-3-13-24 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* - @dihedral:24-3-13-46 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:46-3-13-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-3-13-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:48-3-13-46 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:52-3-13-13 @atom:*_b*_a*_d52_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:52-3-13-44 @atom:*_b*_a*_d52_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* - @dihedral:52-3-13-46 @atom:*_b*_a*_d52_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:65-3-13-13 @atom:*_b*_a*_d65_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:65-3-13-46 @atom:*_b*_a*_d65_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:107-3-13-46 @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:4-3-20-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-3-20-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-3-20-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* - @dihedral:24-3-20-13 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-3-20-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* - @dihedral:48-3-20-13 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* - @dihedral:3-3-24-13 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* - @dihedral:4-3-24-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* - @dihedral:4-3-24-47 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d47*_i* - @dihedral:5-3-24-13 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-3-24-5 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d5_i* - @dihedral:13-3-24-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-3-24-45 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:13-3-24-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* - @dihedral:20-3-24-13 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* - @dihedral:24-3-24-13 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-3-24-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* - @dihedral:47-3-24-45 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:X-3-47-13 @atom:* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* - @dihedral:4-3-47-46 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:4-3-47-47 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:5-3-47-47 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:24-3-47-46 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:24-3-47-47 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:107-3-47-46 @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:107-3-47-47 @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:13-3-48-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:X-3-50-13 @atom:* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d13*_i* - @dihedral:4-3-50-47 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47*_i* - @dihedral:5-3-50-47 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47*_i* - @dihedral:13-3-50-47 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47*_i* - @dihedral:13-3-56-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d56_i* @atom:* - @dihedral:13-3-56-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d13*_i* - @dihedral:4-3-107-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-3-107-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d13*_i* - @dihedral:7-5-13-2 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d2_i* - @dihedral:7-5-13-6 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d6_i* - @dihedral:7-5-13-13 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:7-5-13-46 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:7-5-13-47 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* - @dihedral:7-5-13-48 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* - @dihedral:7-5-13-50 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* - @dihedral:7-5-44-13 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13*_i* - @dihedral:7-5-47-47 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:7-5-79-13 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d13*_i* - @dihedral:X-13-13-3 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* - @dihedral:X-13-13-13 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:X-13-13-24 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* - @dihedral:1-13-13-1 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d1_i* - @dihedral:1-13-13-5 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d5_i* - @dihedral:1-13-13-13 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:1-13-13-46 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:3-13-13-3 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d3_i* - @dihedral:3-13-13-5 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d5_i* - @dihedral:3-13-13-13 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:3-13-13-15 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d15_i* - @dihedral:3-13-13-16 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* - @dihedral:3-13-13-24 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* - @dihedral:3-13-13-46 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:3-13-13-48 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* - @dihedral:3-13-13-80 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d80_i* - @dihedral:5-13-13-5 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d5_i* - @dihedral:5-13-13-13 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:5-13-13-20 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* - @dihedral:5-13-13-44 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* - @dihedral:5-13-13-24 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* - @dihedral:5-13-13-46 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:13-13-13-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-13-15 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d15_i* - @dihedral:13-13-13-16 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* - @dihedral:13-13-13-19 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d19_i* - @dihedral:13-13-13-21 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d21_i* - @dihedral:13-13-13-44 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* - @dihedral:13-13-13-24 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* - @dihedral:13-13-13-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:13-13-13-51 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d51_i* - @dihedral:13-13-13-53 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* - @dihedral:13-13-13-65 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d65_i* - @dihedral:13-13-13-66 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d66_i* - @dihedral:13-13-13-79 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d79_i* - @dihedral:13-13-13-107 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d107_i* - @dihedral:13-13-13-108 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d108_i* - @dihedral:15-13-13-46 @atom:*_b*_a*_d15_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:16-13-13-46 @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:19-13-13-46 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:20-13-13-20 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* - @dihedral:20-13-13-46 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:21-13-13-21 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d21_i* - @dihedral:21-13-13-44 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* - @dihedral:21-13-13-46 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:44-13-13-44 @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* - @dihedral:44-13-13-46 @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:44-13-13-48 @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* - @dihedral:24-13-13-46 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:24-13-13-48 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* - @dihedral:24-13-13-80 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d80_i* - @dihedral:46-13-13-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d46_i* - @dihedral:46-13-13-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* - @dihedral:46-13-13-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* - @dihedral:46-13-13-51 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d51_i* - @dihedral:46-13-13-53 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* - @dihedral:46-13-13-55 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d55_i* - @dihedral:46-13-13-59 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d59_i* - @dihedral:46-13-13-62 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d62_i* - @dihedral:46-13-13-65 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d65_i* - @dihedral:46-13-13-66 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d66_i* - @dihedral:46-13-13-79 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d79_i* - @dihedral:46-13-13-80 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d80_i* - @dihedral:46-13-13-82 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d82_i* - @dihedral:46-13-13-83 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d83_i* - @dihedral:46-13-13-84 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d84_i* - @dihedral:46-13-13-87 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d87_i* - @dihedral:46-13-13-88 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d88_i* - @dihedral:46-13-13-102 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d102_i* - @dihedral:46-13-13-104 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d104_i* - @dihedral:46-13-13-107 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d107_i* - @dihedral:46-13-13-108 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d108_i* - @dihedral:46-13-13-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d109_i* - @dihedral:48-13-13-53 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* - @dihedral:108-13-13-108 @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d108_i* - @dihedral:13-13-15-17 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d15_i* @atom:*_b*_a*_d17_i* - @dihedral:46-13-15-17 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d15_i* @atom:*_b*_a*_d17_i* - @dihedral:13-13-16-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-16-16 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d16_i* - @dihedral:46-13-16-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-16-16 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d16_i* - @dihedral:46-13-16-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d48_i* - @dihedral:X-13-18-19 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d19_i* - @dihedral:46-13-18-19 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d19_i* - @dihedral:X-13-19-18 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d18_i* - @dihedral:X-13-19-19 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* - @dihedral:13-13-19-19 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* - @dihedral:46-13-19-19 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* - @dihedral:X-13-20-13 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* - @dihedral:56-13-20-13 @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* - @dihedral:57-13-20-13 @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-20-3 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* - @dihedral:13-13-20-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-20-64 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d64_i* - @dihedral:46-13-20-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:* - @dihedral:46-13-20-3 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* - @dihedral:46-13-20-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47*_i* - @dihedral:46-13-20-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* - @dihedral:46-13-20-51 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d51_i* - @dihedral:46-13-20-64 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d64_i* - @dihedral:13-13-44-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-44-45 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-44-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-44-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-44-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d48_i* - @dihedral:X-13-24-45 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:3-13-24-3 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* - @dihedral:3-13-24-13 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* - @dihedral:3-13-24-45 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:13-13-24-3 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* - @dihedral:13-13-24-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-24-45 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:13-13-24-59 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d59_i* - @dihedral:13-13-24-79 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d79_i* - @dihedral:13-13-24-91 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d91_i* - @dihedral:46-13-24-3 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* - @dihedral:46-13-24-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-24-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-24-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* - @dihedral:46-13-24-79 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d79_i* - @dihedral:48-13-24-59 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d59_i* - @dihedral:X-13-47-13 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* - @dihedral:X-13-47-46 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:X-13-47-47 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:X-13-47-50 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* - @dihedral:1-13-47-47 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:13-13-47-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-47-47 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:13-13-47-50 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* - @dihedral:46-13-47-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-47-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:46-13-47-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:46-13-47-50 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* - @dihedral:46-13-47-110 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d110_i* - @dihedral:47-13-47-13 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* - @dihedral:47-13-47-46 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:X-13-48-48 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:1-13-48-48 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-48-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-48-56 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* - @dihedral:21-13-48-48 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:46-13-48-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:64-13-48-48 @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:65-13-48-48 @atom:*_b*_a*_d65_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:X-13-50-47 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47*_i* - @dihedral:13-13-50-50 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* - @dihedral:46-13-50-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47*_i* - @dihedral:46-13-50-50 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* - @dihedral:46-13-50-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* - @dihedral:13-13-51-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d51_i* @atom:* - @dihedral:13-13-51-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d46_i* - @dihedral:46-13-51-20 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d20_i* - @dihedral:13-13-53-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-53-45 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-53-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-53-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-53-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d48_i* - @dihedral:46-13-53-54 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d54_i* - @dihedral:13-13-55-45 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d45_i* - @dihedral:13-13-55-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-55-54 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d54_i* - @dihedral:46-13-55-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-55-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-55-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-56-18 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d18_i* - @dihedral:X-13-57-X @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d57_i* @atom:* - @dihedral:13-13-57-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d57_i* @atom:* - @dihedral:13-13-57-62 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d62_i* - @dihedral:13-13-57-82 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d82_i* - @dihedral:20-13-57-X @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d57_i* @atom:* - @dihedral:20-13-57-62 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d62_i* - @dihedral:20-13-57-82 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d82_i* - @dihedral:13-13-59-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d59_i* @atom:* - @dihedral:13-13-59-56 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d59_i* @atom:*_b*_a*_d56_i* - @dihedral:46-13-59-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d59_i* @atom:* - @dihedral:13-13-62-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d62_i* @atom:* - @dihedral:46-13-62-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d62_i* @atom:* - @dihedral:46-13-64-20 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d20_i* - @dihedral:46-13-64-52 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d52_i* - @dihedral:48-13-64-20 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d20_i* - @dihedral:48-13-64-52 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d52_i* - @dihedral:X-13-79-23 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d23_i* - @dihedral:X-13-79-24 @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d24_i* - @dihedral:13-13-79-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-79-23 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d23_i* - @dihedral:46-13-79-5 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d5_i* - @dihedral:46-13-79-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-79-23 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d23_i* - @dihedral:46-13-79-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-80-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d80_i* @atom:* - @dihedral:13-13-80-60 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d80_i* @atom:*_b*_a*_d60_i* - @dihedral:13-13-80-84 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d80_i* @atom:*_b*_a*_d84_i* - @dihedral:46-13-80-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d80_i* @atom:* - @dihedral:46-13-80-60 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d80_i* @atom:*_b*_a*_d60_i* - @dihedral:46-13-80-84 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d80_i* @atom:*_b*_a*_d84_i* - @dihedral:13-13-82-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d82_i* @atom:* - @dihedral:46-13-82-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d82_i* @atom:* - @dihedral:13-13-83-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d83_i* @atom:* - @dihedral:46-13-83-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d83_i* @atom:* - @dihedral:1-13-84-X @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:13-13-84-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:13-13-84-57 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d57_i* - @dihedral:21-13-84-X @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:46-13-84-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:1-13-87-X @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:13-13-87-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:21-13-87-X @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:46-13-87-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:13-13-88-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:46-13-88-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:X-13-90-X @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d90_i* @atom:* - @dihedral:46-13-90-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d90_i* @atom:* - @dihedral:46-13-91-91 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* - @dihedral:13-13-95-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d95_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-95-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d95_i* @atom:*_b*_a*_d46_i* - @dihedral:13-13-102-103 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d102_i* @atom:*_b*_a*_d103_i* - @dihedral:46-13-102-103 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d102_i* @atom:*_b*_a*_d103_i* - @dihedral:13-13-104-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d104_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-104-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d104_i* @atom:*_b*_a*_d13*_i* - @dihedral:X-13-105-X @atom:* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d105_i* @atom:* - @dihedral:13-13-105-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d105_i* @atom:* - @dihedral:13-13-105-62 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d105_i* @atom:*_b*_a*_d62_i* - @dihedral:13-13-105-82 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d105_i* @atom:*_b*_a*_d82_i* - @dihedral:20-13-105-X @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d105_i* @atom:* - @dihedral:20-13-105-62 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d105_i* @atom:*_b*_a*_d62_i* - @dihedral:20-13-105-82 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d105_i* @atom:*_b*_a*_d82_i* - @dihedral:3-13-107-13 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-107-3 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d3_i* - @dihedral:13-13-107-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-107-3 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d3_i* - @dihedral:46-13-107-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-107-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-108-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-13-108-45 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-108-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-108-20 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d20_i* - @dihedral:46-13-108-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d45_i* - @dihedral:13-13-109-109 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:46-13-109-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-13-109-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d46_i* - @dihedral:46-13-109-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:13-16-16-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-16-48-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-16-48-56 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* - @dihedral:13-16-59-56 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d59_i* @atom:*_b*_a*_d56_i* - @dihedral:18-18-56-13 @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-19-19-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-19-19-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d46_i* - @dihedral:13-19-19-47 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47*_i* - @dihedral:13-19-19-109 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d109_i* - @dihedral:46-19-19-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47*_i* - @dihedral:19-19-47-13 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* - @dihedral:19-19-47-46 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:19-19-47-47 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:13-20-44-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-20-44-45 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d45_i* - @dihedral:13-20-47-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-20-47-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:13-20-47-47 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* - @dihedral:13-20-47-50 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* - @dihedral:13-20-48-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-20-48-56 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* - @dihedral:13-20-51-5 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d5_i* - @dihedral:13-20-51-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-20-51-20 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d20_i* - @dihedral:13-20-51-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d46_i* - @dihedral:13-20-56-3 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d3_i* - @dihedral:13-20-59-56 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d59_i* @atom:*_b*_a*_d56_i* - @dihedral:13-20-64-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-20-64-52 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d52_i* - @dihedral:108-20-108-13 @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-44-44-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-44-44-45 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d45_i* - @dihedral:13-44-48-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-24-48-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-24-79-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d48_i* - @dihedral:13-24-82-61 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:47-24-86-48 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:47-24-86-56 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d56_i* - @dihedral:47-46-47-13 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* - @dihedral:47-46-47-46 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:X-47-47-X @atom:* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:* - @dihedral:X-47-47-19 @atom:* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d19_i* - @dihedral:3-47-47-24 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d24_i* - @dihedral:3-47-47-46 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:5-47-47-13 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* - @dihedral:5-47-47-46 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:13-47-47-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-47-47-19 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d19_i* - @dihedral:13-47-47-20 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d20_i* - @dihedral:13-47-47-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:19-47-47-46 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:20-47-47-46 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:21-47-47-21 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d21_i* - @dihedral:21-47-47-46 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:46-47-47-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d46_i* - @dihedral:46-47-47-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d48_i* - @dihedral:13-47-48-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:46-47-48-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:46-47-48-56 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* - @dihedral:47-47-48-48 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-47-50-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-47-50-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d46_i* - @dihedral:13-47-50-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d48_i* - @dihedral:13-47-50-50 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* - @dihedral:13-47-50-109 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* - @dihedral:24-47-50-3 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d3_i* - @dihedral:46-47-50-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d13*_i* - @dihedral:46-47-50-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d46_i* - @dihedral:46-47-50-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d48_i* - @dihedral:46-47-50-50 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* - @dihedral:46-47-50-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* - @dihedral:X-47-84-X @atom:* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:X-47-86-48 @atom:* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:3-47-86-86 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d86_i* - @dihedral:49-47-86-X @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d86_i* @atom:* - @dihedral:49-47-86-24 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d24_i* - @dihedral:X-47-87-X @atom:* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:X-47-88-X @atom:* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:13-47-110-47 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d110_i* @atom:*_b*_a*_d47*_i* - @dihedral:46-47-110-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d110_i* @atom:*_b*_a*_d47*_i* - @dihedral:X-48-48-13 @atom:* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-48-48-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-48-48-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-48-48-49 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d49_i* - @dihedral:13-48-48-50 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d50_i* - @dihedral:47-48-48-49 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d49_i* - @dihedral:48-48-50-47 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47*_i* - @dihedral:56-48-50-47 @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47*_i* - @dihedral:48-48-53-13 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13*_i* - @dihedral:55-48-55-13 @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d13*_i* - @dihedral:48-48-79-13 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d13*_i* - @dihedral:56-48-101-13 @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d101_i* @atom:*_b*_a*_d13*_i* - @dihedral:48-48-109-13 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-50-50-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-50-50-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d46_i* - @dihedral:13-50-50-47 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47*_i* - @dihedral:46-50-50-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47*_i* - @dihedral:47-50-50-47 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47*_i* - @dihedral:13-50-109-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-50-109-109 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:46-50-109-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13*_i* - @dihedral:47-50-109-13 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13*_i* - @dihedral:47-50-109-46 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d46_i* - @dihedral:47-50-109-109 @atom:*_b*_a*_d47*_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:13-53-82-61 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:13-56-56-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-56-56-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* - @dihedral:4-89-90-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d13*_i* - @dihedral:91-89-90-13 @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-91-91-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-91-91-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d46_i* - @dihedral:13-109-109-13 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13*_i* - @dihedral:13-109-109-46 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d46_i* - @dihedral:13-109-109-48 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d48_i* - @dihedral:13-109-109-50 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d50_i* - @dihedral:13-109-109-109 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:24-3-13-53 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* - @dihedral:52-3-13-24 @atom:*_b*_a*_d52_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d24_i* - @dihedral:3-13-13-53 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* - @dihedral:3-13-13-83 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d83_i* - @dihedral:3-13-13-84 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d84_i* - @dihedral:3-13-13-85 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d85_i* - @dihedral:5-13-13-53 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* - @dihedral:15-13-13-53 @atom:*_b*_a*_d15_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* - @dihedral:16-13-13-53 @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* - @dihedral:13-13-13-55 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d55_i* - @dihedral:24-13-13-83 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d83_i* - @dihedral:53-13-13-83 @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d83_i* - @dihedral:24-13-13-84 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d84_i* - @dihedral:53-13-13-84 @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d84_i* - @dihedral:24-13-13-85 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d85_i* - @dihedral:46-13-13-85 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d85_i* - @dihedral:53-13-13-85 @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d85_i* - @dihedral:3-13-53-13 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13*_i* - @dihedral:3-13-53-54 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d54_i* - @dihedral:13-13-53-54 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d54_i* - @dihedral:46-13-55-54 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d54_i* - @dihedral:13-13-85-X @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d85_i* @atom:* - @dihedral:13-13-85-57 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d85_i* @atom:*_b*_a*_d57_i* - @dihedral:46-13-85-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d85_i* @atom:* - @dihedral:13-13-13-20 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d20_i* - @dihedral:13-13-13-47 @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d13*_i* @atom:*_b*_a*_d47*_i* + @dihedral:013L_013L_013L_013L @atom:*_b*_a*_d013L_i* @atom:*_b*_a*_d013L_i* @atom:*_b*_a*_d013L_i* @atom:*_b*_a*_d013L_i* + @dihedral:X_047L_047L_X @atom:* @atom:*_b*_a*_d047L_i* @atom:*_b*_a*_d047L_i* @atom:* + @dihedral:047L_047L_013L_013L @atom:*_b*_a*_d047L_i* @atom:*_b*_a*_d047L_i* @atom:*_b*_a*_d013L_i* @atom:*_b*_a*_d013L_i* + @dihedral:013L_013L_013L_047L @atom:*_b*_a*_d013L_i* @atom:*_b*_a*_d013L_i* @atom:*_b*_a*_d013L_i* @atom:*_b*_a*_d047L_i* + @dihedral:046L_013LL_005L_007L @atom:*_b*_a*_d046L_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d005L_i* @atom:*_b*_a*_d007L_i* + @dihedral:046L_013LL_013LL_005L @atom:*_b*_a*_d046L_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d005L_i* + @dihedral:013LL_013LL_005L_007L @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d005L_i* @atom:*_b*_a*_d007L_i* + @dihedral:013LL_013LL_013LL_005L @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d005L_i* + @dihedral:005L_013LL_013LL_005L @atom:*_b*_a*_d005L_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d005L_i* + @dihedral:013LL_003L_020L_013LL @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d003L_i* @atom:*_b*_a*_d020L_i* @atom:*_b*_a*_d013LL_i* + @dihedral:013LL_020L_003L_004L @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d020L_i* @atom:*_b*_a*_d003L_i* @atom:*_b*_a*_d004L_i* + @dihedral:046L_013LL_003L_020L @atom:*_b*_a*_d046L_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d003L_i* @atom:*_b*_a*_d020L_i* + @dihedral:003L_020L_013LL_013LL @atom:*_b*_a*_d003L_i* @atom:*_b*_a*_d020L_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* + @dihedral:046L_013LL_013LL_020L @atom:*_b*_a*_d046L_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d020L_i* + @dihedral:013LL_013LL_003L_020L @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d003L_i* @atom:*_b*_a*_d020L_i* + @dihedral:013LL_013LL_003L_004L @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d003L_i* @atom:*_b*_a*_d004L_i* + @dihedral:003L_013LL_013LL_046L @atom:*_b*_a*_d003L_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d046L_i* + @dihedral:003L_013LL_013LL_013LL @atom:*_b*_a*_d003L_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* + @dihedral:013LL_013LL_013LL_020L @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d020L_i* + @dihedral:020L_013LL_013LL_020L @atom:*_b*_a*_d020L_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d020L_i* + @dihedral:005L_013LL_013LL_020L @atom:*_b*_a*_d005L_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d013LL_i* @atom:*_b*_a*_d020L_i* } #(end of dihedrals by type) - # New dihedrals which have been customized: - # (These will override the rules above) + # ----------- New Dihedral Interactions: ------------ + # http://lammps.sandia.gov/doc/dihedral_opls.html + # Syntax: + # dihedral_coeff DihedralTypeName parameters... - write_once("Data Dihedrals By Type") { - @dihedral:13L-13L-13L-13L @atom:*_b*_a*_d13L_i* @atom:*_b*_a*_d13L_i* @atom:*_b*_a*_d13L_i* @atom:*_b*_a*_d13L_i* - @dihedral:X-47L-47L-X @atom:* @atom:*_b*_a*_d47L_i* @atom:*_b*_a*_d47L_i* @atom:* - @dihedral:47L-47L-13L-13L @atom:*_b*_a*_d47L_i* @atom:*_b*_a*_d47L_i* @atom:*_b*_a*_d13L_i* @atom:*_b*_a*_d13L_i* - @dihedral:13L-13L-13L-47L @atom:*_b*_a*_d13L_i* @atom:*_b*_a*_d13L_i* @atom:*_b*_a*_d13L_i* @atom:*_b*_a*_d47L_i* - } #(end of dihedrals by type) -} # end of additional parameters appended to the "OPLSAA" object +} # OPLSAA + diff --git a/tools/moltemplate/moltemplate/force_fields/martini.lt b/tools/moltemplate/moltemplate/force_fields/martini.lt index 3279e55dbc..9304de004a 100644 --- a/tools/moltemplate/moltemplate/force_fields/martini.lt +++ b/tools/moltemplate/moltemplate/force_fields/martini.lt @@ -1,13 +1,25 @@ # Autogenerated by EMC 2 LT tool v0.1 on 2017-06-28 # # cd martini/ -# ./emcprm2lt.py martini.prm lipids.prm cholesterol.prm --bond-style=harmonic --angle-style=cosine/squared --pair-style=lj/gromacs/coul/gromacs --name=martini +# emcprm2lt.py martini.prm lipids.prm cholesterol.prm --bond-style=harmonic --angle-style=cosine/squared --pair-style=lj/gromacs/coul/gromacs --name=martini # mv -f martini.lt ../ # +# For details see the "README.txt" file (located in "force_fields/martini/") +# +# (Note: The rigid bond constraints used original MARTINI model for +# cholesterol have been replaced by stiff but flexible bonds. +# There is a trade-off between increasing the stiffness of the bonds, and +# using larger time steps. To alter the stiffness of the bonds, and edit +# the "ITEM BOND" section of the "cholesterol.prm", edit the "k" parameters +# (3rd column, for the "S..." entries), and run "emcprm2lt.py" again.) +# # Adapted from EMC by Pieter J. in 't Veld # Originally written as, FFNAME:MARTINI STYLE:COARSE VERSION:V2.0 on Feb 2014 +# "emcprm2lt.py" was written by David Stelter. + MARTINI { + write_once("Data Masses") { @atom:BP4 72.000000 # BP4 @atom:C1 72.000000 # C1 @@ -2210,4 +2222,6 @@ MARTINI { pair_style hybrid lj/gromacs/coul/gromacs 9.000000 12.000000 special_bonds lj/coul 0.0 0.0 0.0 } # end init + } # MARTINI + diff --git a/tools/moltemplate/moltemplate/force_fields/martini/emcprm2lt.py b/tools/moltemplate/moltemplate/force_fields/martini/emcprm2lt.py deleted file mode 100755 index 81ed2358aa..0000000000 --- a/tools/moltemplate/moltemplate/force_fields/martini/emcprm2lt.py +++ /dev/null @@ -1,580 +0,0 @@ -#!/usr/bin/python - -import os, sys, getopt -import datetime - -__version__ = 0.1 - -#################### UNITS #################### -# Only used with --units flag -econv = 1.0 # Additional Factor for unit conversion if needed (energies) -lconv = 1.0 # Additional Factor for unit conversion if neededa (lengths) -dconv = 1.0 # Additional Factor for unit conversion if neededa (densities) -############################################### - -print('\nEMC 2 LT conversion tool: v%s\n' % __version__) - -def helpme(): - print 'Help for the EMC 2 LT conversion tool\n' - print 'Input takes a list of files in EMC .prm format to be read.' - print 'Additional styles (bond, angle, etc) can be modified via the',\ - 'command line. Any valid LAMMPS style can be used.\n' - print 'Styles include:' - print '--pair-style=' - print '--bond-style=' - print '--angle-style=' - print '--dihedral-style=' - print '--improper-style=\n' - print 'Default styles are lj/cut/coul/long, harmonic, harmonic, harmonic,',\ - 'harmonic \n' - print 'Other commands:' - print '--name= provides basename for output file if desired\n' - print '--units flag for manual units (no parameter needed)\n' - print 'Usage example:' - print 'emcprm2lt.py file1 file2 --bond-style=harmonic --angle-style=harmonic' - print '' - -def Abort(): - print 'Aborting...' - sys.exit() - -def WriteInit(): -# Write generic LAMMPS settings, likely need additional on a per-ff basis - foutput.write(' write_once("In Init") {\n') - foutput.write(' # Warning: This is a very generic "In Init" section, further\n') - foutput.write(' # modification prior to any simulation is extremely likely\n') - foutput.write(' units real\n') - foutput.write(' atom_style full\n') - foutput.write(' bond_style hybrid %s\n' % bstyle) - if angle_flag: - foutput.write(' angle_style hybrid %s\n' % astyle) - if torsion_flag: - foutput.write(' dihedral_style hybrid %s\n' % dstyle) - if improp_flag: - foutput.write(' improper_style hybrid %s\n' % istyle) - foutput.write(' pair_style hybrid %s %f %f\n' % (pstyle, - float(inner[0])*lconv, float(cutoff[0])*lconv)) - if pair14[0] == 'OFF': - foutput.write(' special_bonds lj/coul 0.0 0.0 0.0\n') - else: - print 'Warning: special_bonds needed, add to "In Init" section\n' - foutput.write(' } # end init\n') - -def Units(length_flag, energy_flag, density_flag): -# Check flags for all units, determine what conversions are needed, hard-coded for LAMMPS 'real' - print 'Attempting to auto-convert units... This should always be double-checked',\ - ' especially for unique potential styles' - global lconv; global econv; global dconv - if length_flag: - print 'Warning: length scale does not match LAMMPS real units, attempting conversion to angstroms' - if length[0] == 'NANOMETER': - lconv = 10.0 - print ' nanometer -> angstrom' - elif length[0] == 'MICROMETER': - lconv = 10000.0 - print ' micrometer -> angstrom' - elif length[0] == 'METER': - lconv = 10000000000.0 - print ' meter -> angstrom' - else: - print 'Length units NOT converted' - if energy_flag: - print 'Warning: energy units do not match LAMMPS real units, attempting conversion to kcal/mol' - if energy[0] == 'KJ/MOL': - econv = 0.239006 - print ' kj/mol -> kcal/mol' - elif energy[0] == 'J/MOL': - econv = 0.000239006 - print ' j/mol -> kcal/mol' - elif energy[0] == 'CAL/MOL': - econv = 0.001 - print ' cal/mol -> kcal/mol' - else: - print 'Energy units NOT converted' - if density_flag: - print 'Warning: density units do not match LAMMPS real units, attempting conversion to gram/cm^3' - if density[0] == 'KG/M^3': - dconv = 0.001 - print ' kg/m^3 -> g/cm^3' - else: - print 'Density units NOT converted' - return lconv, econv, dconv - -def ChkPotential(manual_flag, angle_flag, torsion_flag, improp_flag): -# Check type of potential, determine type of unit conversion is necessary - global beconv - if angle_flag: - global aeconv - if torsion_flag: - global deconv - if improp_flag: - global ieconv - if manual_flag == False: - # Chk bond potential - if bstyle == '' or bstyle == 'harmonic': - beconv = econv / (2*pow(lconv,2)) - else: - print 'Cannot find bond potential type, use manual units' - Abort() - if angle_flag: - if astyle == '' or astyle == 'harmonic': - aeconv = econv - elif astyle == 'cosine/squared': - aeconv = econv / 2 - else: - print 'Cannot find angle potential type, use manual units' - Abort() - # torsion and improper not implemented fully - elif torsion_flag: - if dstyle == '' or dstyle == 'harmonic': - deconv = econv - else: - print 'Cannot find torsion potential type, use manual units' - Abort() - elif improp_flag: - if istyle == '' or istyle == 'harmonic': - ieconv = econv - else: - print 'Cannot find improper potential type, use manual units' - Abort() - else: - # Modify as needed - print 'Warning: Manual units used, set potential conversion units in script' - beconv = 1 - if angle_flag: - aeconv = 1 - if torsion_flag: - deconv = 1 - if improp_flag: - ieconv = 1 - - -### Parse input ### -if len(sys.argv) == 1: - helpme() - sys.exit() -manual_units = False # Turned on via command line -args = list(sys.argv[1:]) -myopts, args = getopt.gnu_getopt(args, 'fh', ['pair-style=', 'bond-style=', 'angle-style=', - 'dihedral-style=', 'improper-style=', 'name=', 'units']) -filenames = list(args) -pstyle = ''; bstyle = ''; astyle = ''; dstyle = ''; istyle = '' -name = '' -for opt, arg in myopts: - if opt in ('-f'): - filenames = arg - elif opt in ('--pair-style'): - pstyle = arg - elif opt in ('--bond-style'): - bstyle = arg - elif opt in ('--angle-style'): - astyle = arg - elif opt in ('--dihedral-style'): - dstyle = arg - elif opt in ('--improper-style'): - istyle = arg - elif opt in ('--name'): - name = arg - elif opt in ('--units'): - manual_units = True - print 'Manual units enabled, modify python script accordingly' - elif opt in ('-h', '--help'): - helpme() - sys.exit() - -### Check input filenames, make sure they exist ### -print 'Converting: ' -for i in range(len(filenames)): - if os.path.isfile(filenames[i]): - print '', filenames[i] - else: - print 'invalid filename:', filenames[i] - Abort() -print 'from EMC .prm to moltemplate .lt format\n' - -### Open all files ### -f = [open(fname, 'r') for fname in filenames] - -### All these settings from DEFINE should be list of fixed size ### -ffname = [[] for i in range(len(f))] -fftype = [[] for i in range(len(f))] -version = [[] for i in range(len(f))] -created1 = [[] for i in range(len(f))] -created2 = [[] for i in range(len(f))] -length = [[] for i in range(len(f))] -energy = [[] for i in range(len(f))] -density = [[] for i in range(len(f))] -mix = [[] for i in range(len(f))] -nbonded = [[] for i in range(len(f))] -inner = [[] for i in range(len(f))] -cutoff = [[] for i in range(len(f))] -pair14 = [[] for i in range(len(f))] -angle_def = [[] for i in range(len(f))] -torsion_def = [[] for i in range(len(f))] -improp_def = [[] for i in range(len(f))] # not all prm have this - -### Parse DEFINE section, save info for each file ### -for i in range(len(f)): - grab = False - for line in f[i]: - if line.strip() == 'ITEM DEFINE': - grab = True - elif line.strip() == 'ITEM END': - grab = False - elif grab: - if line.startswith('FFNAME'): - ffname[i] = line.split()[1].strip() - if line.startswith('FFTYPE'): - fftype[i] = line.split()[1].strip() - if line.startswith('VERSION'): - version[i] = line.split()[1].strip() - if line.startswith('CREATED'): - created1[i] = line.split()[1].strip() - created2[i] = line.split()[2].strip() - if line.startswith('LENGTH'): - length[i] = line.split()[1].strip() - if line.startswith('ENERGY'): - energy[i] = line.split()[1].strip() - if line.startswith('DENSITY'): - density[i] = line.split()[1].strip() - if line.startswith('MIX'): - mix[i] = line.split()[1].strip() - if line.startswith('NBONDED'): - nbonded[i] = line.split()[1].strip() - if line.startswith('INNER'): - inner[i] = line.split()[1].strip() - if line.startswith('CUTOFF'): - cutoff[i] = line.split()[1].strip() - if line.startswith('PAIR14'): - pair14[i] = line.split()[1].strip() - if line.startswith('ANGLE'): - angle_def[i] = line.split()[1].strip() - if line.startswith('TORSION'): - torsion_def[i] = line.split()[1].strip() - if line.startswith('IMPROP'): - improp_def[i] = line.split()[1].strip() - -### Sanity Checks ### -for i in range(len(f)): - for j in range(len(f)): - if ffname[j] != ffname[i]: - print 'force field files do not match' - Abort() - if length[j] != length[i]: - print 'units not identical between files' - Abort() - if energy[j] != energy[i]: - print 'units not identical between files' - Abort() - if density[j] != density[i]: - print 'units not identical between files' - Abort() - if inner[j] != inner[i]: - print 'inner cutoff not identical between files' - Abort() - if cutoff[j] != cutoff[i]: - print 'cutoff not identical between files' - Abort() - if pair14[j] != pair14[i]: - print '1-4 pair interaction not consistent between files' - Abort() - -### Check if sections exist in PRM file ### -angle_flag = False; torsion_flag = False; improp_flag = False -for i in range(len(f)): - if angle_def[i] == 'WARN': - angle_flag = True - if torsion_def[i] == 'WARN': - torsion_flag = True - if improp_def[i] == 'WARN': - improp_flag = True - -### Check which units to use, trip convert flags ### -length_flag = False; energy_flag = False; density_flag = False -if length[0] != 'ANGSTROM': - length_flag = True -if energy[0] != 'KCAL/MOL': - energy_flag = True -if density[0] != 'G/CC': - density_flag = True -if manual_units == True: - length_flag = False - energy_flag = False - density_flag = False -Units(length_flag, energy_flag, density_flag) - -### Read Whole File, save to lists ### -# Non-crucial sections include -# BONDS, ANGLE, TORSION, IMPROP, NONBOND -# Read all sections every time, only output sections when flags tripped -f = [open(fname, 'r') for fname in filenames] -masses = []; nonbond = []; bond = []; angle = []; torsion = []; improp = [] -equiv = [] -for i in range(len(f)): - MASS = False - NONBOND = False - BOND = False - ANGLE = False - TORSION = False - IMPROP = False - EQUIV = False - for line in f[i]: - if line.strip() == 'ITEM MASS': - MASS = True - elif line.strip() == 'ITEM END': - MASS = False - elif MASS: - if not line.startswith('#'): - if not line.startswith('\n'): - masses.append(line.strip().split()) - if line.strip() == 'ITEM NONBOND': - NONBOND = True - elif line.strip() == 'ITEM END': - NONBOND = False - elif NONBOND: - if not line.startswith('#'): - if not line.startswith('\n'): - nonbond.append(line.strip().split()) - if line.strip() == 'ITEM BOND': - BOND = True - elif line.strip() == 'ITEM END': - BOND = False - elif BOND: - if not line.startswith('#'): - if not line.startswith('\n'): - bond.append(line.strip().split()) - if line.strip() == 'ITEM ANGLE': - ANGLE = True - elif line.strip() == 'ITEM END': - ANGLE = False - elif ANGLE: - if not line.startswith('#'): - if not line.startswith('\n'): - angle.append(line.strip().split()) - if line.strip() == 'ITEM TORSION': - TORSION = True - elif line.strip() == 'ITEM END': - TORSION = False - elif TORSION: - if not line.startswith('#'): - if not line.startswith('\n'): - torsion.append(line.strip().split()) - if line.strip() == 'ITEM IMPROP': - IMPROP = True - elif line.strip() == 'ITEM END': - IMPROP = False - elif IMPROP: - if not line.startswith('#'): - if not line.startswith('\n'): - improp.append(line.strip().split()) - if line.strip() == 'ITEM EQUIVALENCE': - EQUIV = True - elif line.strip() == 'ITEM END': - EQUIV = False - elif EQUIV: - if not line.startswith('#'): - if not line.startswith('\n'): - equiv.append(line.strip().split()) -### Close prm files ### -for fname in f: - fname.close() - -### Sanity checks before writing LT files ### -# Check Equiv -for i in range(len(equiv)): - for j in range(len(equiv)): - if (equiv[i][0] == equiv[j][0]) and (equiv[i] != equiv[j]): - print 'Error: Identical atom types with different equivalences' - Abort() -# Check Masses -for i in range(len(masses)): - for j in range(len(masses)): - if (masses[i][0] == masses[j][0]) and (masses[i][1] != masses[j][1]): - print 'Error: Identical types with different mass' - Abort() -# Check Nonbond -for i in range(len(nonbond)): - for j in range(len(nonbond)): - if (nonbond[i][0] == nonbond[j][0]) and (nonbond[i][1] == nonbond[j][1]) and ((nonbond[i][2] != nonbond[j][2]) or (nonbond[i][3] != nonbond[j][3])): - print 'Error: Identical types with different pair-interactions' - Abort() - -### Remove double equivalences ### -for i in range(len(equiv)): - once = True - for j in range(len(equiv)): - if (equiv[i][0] == equiv[j][0]) and once: - once = False - elif (equiv[i][0] == equiv[j][0]): - equiv[j][1] = None - equiv[j][2] = 'duplicate' - if len(equiv[i]) != 6: - print 'Warning: Incorrect equivalence formatting for type %s' % equiv[i][0],\ - 'skipping type, topology may not be complete' - equiv[i][1] = None - equiv[i][2] = 'invalid_format' - -### Check Potential Styles and Set Units ### -ChkPotential(manual_units, angle_flag, torsion_flag, improp_flag) - -### Set output LT file ### -fname = 'ff_output.lt' -if name == '': - fname = ffname[0] + '.lt' -else: - fname = name + '.lt' -foutput = open(fname, 'w') - -### Output to LT format ### -foutput.write('# Autogenerated by EMC 2 LT tool v%s on %s\n' % (__version__, str(datetime.date.today()))) -foutput.write('#\n# ') -for i in range(len(sys.argv)): - foutput.write('%s ' % sys.argv[i]) -foutput.write('\n') -foutput.write('#\n') -foutput.write('# Adapted from EMC by Pieter J. in \'t Veld\n') -foutput.write('# Originally written as, FFNAME:%s STYLE:%s VERSION:%s on %s %s\n' % - (ffname[0], fftype[0], version[0], created1[0], created2[0])) -foutput.write('\n') -foutput.write('%s {\n' % ffname[0]) - -# Charges not necessary? emc file assign charges in smiles, which would -# be in the per-molecule files created by moltemplate user... not here - -### Mass Info ### -foutput.write(' write_once("Data Masses") {\n') -for i in range(len(masses)): - if equiv[i][1] != None: - foutput.write(' @atom:%s %f # %s\n' % - (masses[i][0], float(masses[i][1]), masses[i][0])) -foutput.write(' } # end of atom masses\n\n') - -### Equiv Info ### -# Write Equivalence -foutput.write(' # ----- EQUIVALENCE CATEGORIES for bonded interaction lookup -----\n') -for i in range(len(equiv)): - if equiv[i][1] != None: - foutput.write(' replace{ @atom:%s @atom:%s_b%s_a%s_d%s_i%s}\n' % - (equiv[i][0], equiv[i][0], equiv[i][2], equiv[i][3], equiv[i][4], equiv[i][5])) -foutput.write(' # END EQUIVALENCE\n\n') - -### Nonbonded Info ### -if pstyle == '': - print 'Warning: no non-bonded potential provided, assuming lj/cut/coul/long' - pstyle = 'lj/cut/coul/long' -foutput.write(' write_once("In Settings") {\n') -foutput.write(' # ----- Non-Bonded interactions -----\n') -# Add new types from equivalence -for i in range(len(equiv)): - once = True - for j in range(len(nonbond)): - # Get terms for new types - if (equiv[i][0] != equiv[i][1]) and (equiv[i][1] == nonbond[j][0]): - if not equiv[i][1] == nonbond[j][1]: - line = '%s %s %s %s' % (equiv[i][0], nonbond[j][1], nonbond[j][2], nonbond[j][3]) - nonbond.append(line.split()) - if once: - once = False - line = '%s %s %s %s' % (equiv[i][0], equiv[i][0], nonbond[j][2], nonbond[j][3]) - nonbond.append(line.split()) - if (equiv[i][0] != equiv[i][1]) and (equiv[i][1] == nonbond[j][1]): - line = '%s %s %s %s' % (equiv[i][0], nonbond[j][0], nonbond[j][2], nonbond[j][3]) - if line.split() != nonbond[-1]: - nonbond.append(line.split()) -for i in range(len(nonbond)): - atom1name = None - atom2name = None - # Cross Terms + Diagonal, normal - for j in range(len(equiv)): - if nonbond[i][0] == equiv[j][0]: - atom1name = '%s_b%s_a%s_d%s_i%s' % (nonbond[i][0], equiv[j][2], equiv[j][3], equiv[j][4], equiv[j][5]) - if nonbond[i][1] == equiv[j][0]: - atom2name = '%s_b%s_a%s_d%s_i%s' % (nonbond[i][1], equiv[j][2], equiv[j][3], equiv[j][4], equiv[j][5]) - #foutput.write(' pair_coeff @atom:%s @atom:%s %s %f %f' % - # (nonbond[i][0], nonbond[i][1], pstyle, float(nonbond[i][2])*econv, float(nonbond[i][2])*lconv)) - foutput.write(' pair_coeff @atom:%s @atom:%s %s %f %f' % - (atom1name, atom2name, pstyle, float(nonbond[i][3])*econv, float(nonbond[i][2])*lconv)) - foutput.write(' # %s-%s\n' % (nonbond[i][0], nonbond[i][1])) -foutput.write(' } # end of nonbonded parameters\n\n') - -### Bond Info ### -if bstyle == '': - print 'Warning: no bond potential provided, assuming harmonic' - bstyle == 'harmonic' -foutput.write(' write_once("In Settings") {\n') -foutput.write(' # ----- Bonds -----\n') -for i in range(len(bond)): - foutput.write(' bond_coeff @bond:%s-%s %s %f %f' % - (bond[i][0], bond[i][1], bstyle, float(bond[i][2])*beconv, float(bond[i][3])*lconv)) - foutput.write(' # %s-%s\n' % (bond[i][0], bond[i][1])) -foutput.write(' }\n\n') -foutput.write(' write_once("Data Bonds By Type") {\n') -for i in range(len(bond)): - foutput.write(' @bond:%s-%s @atom:*_b%s_a*_d*_i* @atom:*_b%s_a*_d*_i*\n' % - (bond[i][0], bond[i][1], bond[i][0], bond[i][1])) -foutput.write(' } # end of bonds\n\n') - -### Angle Info ### -if angle_flag: - if astyle == '': - print 'Warning: no angle potential provided, assuming harmonic' - astyle == 'harmonic' - foutput.write(' write_once("In Settings") {\n') - foutput.write(' # ----- Angles -----\n') - for i in range(len(angle)): - foutput.write(' angle_coeff @angle:%s-%s-%s %s %f %f' % - (angle[i][0], angle[i][1], angle[i][2], astyle, float(angle[i][3])*aeconv, float(angle[i][4]))) - foutput.write(' # %s-%s-%s\n' % (angle[i][0], angle[i][1], angle[i][2])) - foutput.write(' }\n\n') - foutput.write(' write_once("Data Angles By Type") {\n') - for i in range(len(angle)): - foutput.write(' @angle:%s-%s-%s @atom:*_b*_a%s_d*_i* @atom:*_b*_a%s_d*_i* @atom:*_b*_a%s_d*_i*\n' % - (angle[i][0], angle[i][1], angle[i][2], angle[i][0], angle[i][1], angle[i][2])) - foutput.write(' } # end of angles\n\n') - -### Torsion/Dihedral Info ###a -# Incomplete -if torsion_flag: - if dstyle == '': - print 'Warning: no dihedral/torsion potential provided, assuming harmonic' - dstyle == 'harmonic' - foutput.write(' write_once("In Settings") {\n') - foutput.write(' # ----- Dihedrals -----\n') - for i in range(len(torsion)): - foutput.write(' dihedral_coeff @dihedral:%s-%s-%s-%s %s %f %f %f %f\n' % - (torsion[i][0], torsion[i][1], torsion[i][2], torsion[i][3], dstyle, float(torsion[i][4])*deconv, float(torsion[i][5]), float(torsion[i][6]))) - foutput.write(' }\n\n') - foutput.write(' write_once("Data Dihedrals By Type") {\n') - for i in range(len(torsion)): - foutput.write(' @dihedral:%s-%s-%s-%s @atom:*_b*_a*_d%s_i* @atom:*_b*_a*_d%s_i* @atom:*_b*_a*_d%s_i* @atom:*_b*_a*_d%s_i*' % - (torsion[i][0], torsion[i][1], torsion[i][2], torsion[i][3], torsion[i][0], torsion[i][1], torsion[i][2], torsion[i][3])) - foutput.write(' } # end of dihedrals\n\n') - -### Improper Info ### -# Incomplete -ieconv = econv # improper coeff conversion -if improp_flag: - if istyle == '': - print 'Warning: no improper potential provided, assuming harmonic' - istyle == 'harmonic' - foutput.write(' write_once("In Settings") {\n') - foutput.write(' # ----- Impropers -----\n') - # As discussed, a check for convention of impropers is probably needed here - for i in range(len(improp)): - foutput.write(' improper_coeff @improper:%s-%s-%s-%s %s %f %f\n' % - (improp[i][0], improp[i][1], improp[i][2], improp[i][3], istyle, - float(improp[i][4]), float(improp[i][5]))) - foutput.write(' }\n\n') - foutput.write(' write_once("Data Impropers By Type") {\n') - for i in range(len(improp)): - foutput.write(' @improper:%s-%s-%s-%s @atom:*_b*_a*_d*_i%s @atom:*_b*_a*_d*_i%s @atom:*_b*_a*_d*_i%s @atom:*_b*_a*_d*_i%s' % - (improp[i][0], improp[i][1], improp[i][2], improp[i][3], improp[i][0], improp[i][1], improp[i][2], improp[i][3])) - foutput.write(' } # end of impropers\n\n') - -### Initialization Info ### -print 'Warning: Attempting to write generic "In Init" section,',\ - 'further modification after this script is extremely likely' -WriteInit() - -foutput.write('} # %s\n' % ffname[0]) -sys.exit() diff --git a/tools/moltemplate/moltemplate/force_fields/martini_original_format/README.txt b/tools/moltemplate/moltemplate/force_fields/martini_original_format/README.txt new file mode 100644 index 0000000000..2e20697a43 --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/martini_original_format/README.txt @@ -0,0 +1,42 @@ +The files in this directory are used to create the "martini.lt" file +(containing MARTINI force field parameters for moltemplate). +These .PRM files are distributed with "EMC" written by Pieter J. in 't Veld. +The original MARTINI files are distributed at http://cgmartini.nl + +Conversion from EMC (.PRM) format to moltemplate (.LT) format was +done using the "emcprm2lt.py" script written by David Stelter. +Here is an example how to use the emcprm2lt.py script: + +emcprm2lt.py martini.prm lipids.prm cholesterol.prm --bond-style=harmonic --angle-style=cosine/squared --pair-style=lj/gromacs/coul/gromacs --name=martini + +This will generate a file named "martini.lt" which (in this example) +only includes the force field parameters for lipids and cholestrol. +Later you can define new molecules in moltemplate using: + +import "martini.lt" +NewMolecule inherits MARTINI { + write("Data Atoms") {...atom coordinates and types go here...} + write("Data Bond List") {...list of bonds goes here...} +} + +See "DOPC.lt" in /examples/coarse_grained/MARTINI_examples/ for more details. + +(Note: The rigid bond constraints used for cholesterol in the original MARTINI + model for cholesterol have been replaced by stiff but flexible bonds. + There is a trade-off between increasing the stiffness of the bonds + and using larger time steps. To alter the stiffness of the bonds + edit the "ITEM BOND" section of the "cholesterol.prm", edit the "k" + parameters (3rd column, for the "S..." entries, and run "emcprm2lt.py" again.) + +---- Credits: ---- +emcprm2lt.py was written by David Stelter +EMC was written by Pieter J. in 't Veld +MARTINI was created by S.J. Marrink and coworkers (http://cgmartini.nl) + +---- additional citation request ---- + +Since we borrowed force field parameters from files distributed with EMC, +if you use files generated by "emcprm2lt.py", please also cite the EMC paper: +P. J. in ‘t Veld and G. C. Rutledge, Macromolecules 2003, 36, 7358 + + diff --git a/tools/moltemplate/moltemplate/force_fields/martini/aminoacids.prm b/tools/moltemplate/moltemplate/force_fields/martini_original_format/aminoacids.prm similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/martini/aminoacids.prm rename to tools/moltemplate/moltemplate/force_fields/martini_original_format/aminoacids.prm diff --git a/tools/moltemplate/moltemplate/force_fields/martini/cholesterol.prm b/tools/moltemplate/moltemplate/force_fields/martini_original_format/cholesterol.prm similarity index 98% rename from tools/moltemplate/moltemplate/force_fields/martini/cholesterol.prm rename to tools/moltemplate/moltemplate/force_fields/martini_original_format/cholesterol.prm index 7d78eed759..f9b4f7b8d0 100644 --- a/tools/moltemplate/moltemplate/force_fields/martini/cholesterol.prm +++ b/tools/moltemplate/moltemplate/force_fields/martini_original_format/cholesterol.prm @@ -78,6 +78,7 @@ SP12 SP1 SP12 SP12 SP12 SP12 ITEM END # Bond parameters +# To change the bond stiffness, edit the "k" parameter ITEM BOND diff --git a/tools/moltemplate/moltemplate/force_fields/martini/lipids.prm b/tools/moltemplate/moltemplate/force_fields/martini_original_format/lipids.prm similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/martini/lipids.prm rename to tools/moltemplate/moltemplate/force_fields/martini_original_format/lipids.prm diff --git a/tools/moltemplate/moltemplate/force_fields/martini/martini.prm b/tools/moltemplate/moltemplate/force_fields/martini_original_format/martini.prm similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/martini/martini.prm rename to tools/moltemplate/moltemplate/force_fields/martini_original_format/martini.prm diff --git a/tools/moltemplate/moltemplate/force_fields/martini/polymers.prm b/tools/moltemplate/moltemplate/force_fields/martini_original_format/polymers.prm similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/martini/polymers.prm rename to tools/moltemplate/moltemplate/force_fields/martini_original_format/polymers.prm diff --git a/tools/moltemplate/moltemplate/force_fields/martini/sugars.prm b/tools/moltemplate/moltemplate/force_fields/martini_original_format/sugars.prm similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/martini/sugars.prm rename to tools/moltemplate/moltemplate/force_fields/martini_original_format/sugars.prm diff --git a/tools/moltemplate/moltemplate/force_fields/oplsaa.lt b/tools/moltemplate/moltemplate/force_fields/oplsaa.lt index 92b2628df5..7bb69a7445 100644 --- a/tools/moltemplate/moltemplate/force_fields/oplsaa.lt +++ b/tools/moltemplate/moltemplate/force_fields/oplsaa.lt @@ -1,6 +1,18 @@ -# This file contains OPLSAA parameters and rules for creating -# angle, dihedral, and improper interactions according to OPLSAA conventions. -# These parameters are taken from those distributed with BOSS Version 4.8. +# This file contains OPLSAA parameters and rules for creating angle, dihedral, +# and improper interactions according to OPLSAA conventions, taken from +# "OPLS All-Atom Parameters for Organic Molecules, Ions, +# Peptides & Nucleic Acids, July 2008" and distributed with BOSS Version 4.8. +# This file was generated automatically using this script: +# +# tinkerparm2lt.py -name OPLSAA -file oplsaa.prm -dihedral-style opls -zeropad 3 +# +# The "oplsaa.prm" file was downloaded on 2018-6-15 from the TINKER website +# https://dasher.wustl.edu/tinker/distribution/params/oplsaa.prm +# (Corrections to imrpopers were added by David Huang (adelaide.edu.au)) +# (Additional conversion details are explained at the end of this file.) +# Urey-Bradley parameters are not included, and a quadratic energy function +# is used (rather than a cosine) for the improper interactions (in order +# to take advantage of available GPU acceleration in LAMMPS at this time). # # USAGE: You can create molecules using this force-field this way: # @@ -13,6 +25,8 @@ # } # } # +# You can omit the atom charge in your molecule definition. +# (Partial charges will be assigned later according to the force field rules.) # Responsibility for choosing the atom types (eg "@atom:88", "@atom:89") falls # on the user. You must select the type of each atom in the molecule carefully # by looking at the description in the "In Charges" section of this file @@ -23,7 +37,6 @@ - OPLSAA { # Below we will use lammps "set" command to assign atom charges @@ -1860,912 +1873,912 @@ OPLSAA { # @atom names we have been using abovee are equivalent to the complete # @atom names used below: - replace{ @atom:1 @atom:1_b1_a1_d1_i1 } - replace{ @atom:2 @atom:2_b2_a2_d2_i2 } - replace{ @atom:3 @atom:3_b3_a3_d3_i3 } - replace{ @atom:4 @atom:4_b4_a4_d4_i4 } - replace{ @atom:5 @atom:5_b5_a5_d5_i5 } - replace{ @atom:6 @atom:6_b6_a6_d6_i6 } - replace{ @atom:7 @atom:7_b7_a7_d7_i7 } - replace{ @atom:8 @atom:8_b8_a8_d8_i8 } - replace{ @atom:9 @atom:9_b6_a6_d6_i6 } - replace{ @atom:10 @atom:10_b6_a6_d6_i6 } - replace{ @atom:11 @atom:11_b6_a6_d6_i6 } - replace{ @atom:12 @atom:12_b6_a6_d6_i6 } - replace{ @atom:13 @atom:13_b2_a2_d2_i2 } - replace{ @atom:14 @atom:14_b9_a9_d9_i9 } - replace{ @atom:15 @atom:15_b10_a10_d10_i10 } - replace{ @atom:16 @atom:16_b11_a11_d11_i11 } - replace{ @atom:17 @atom:17_b12_a12_d12_i12 } - replace{ @atom:18 @atom:18_b13_a13_d13_i13 } - replace{ @atom:19 @atom:19_b14_a14_d14_i14 } - replace{ @atom:20 @atom:20_b5_a5_d5_i5 } - replace{ @atom:21 @atom:21_b7_a7_d7_i7 } - replace{ @atom:22 @atom:22_b6_a6_d6_i6 } - replace{ @atom:23 @atom:23_b2_a2_d2_i2 } - replace{ @atom:24 @atom:24_b15_a15_d15_i15 } - replace{ @atom:25 @atom:25_b15_a15_d15_i15 } - replace{ @atom:26 @atom:26_b16_a16_d16_i16 } - replace{ @atom:27 @atom:27_b16_a16_d16_i16 } - replace{ @atom:28 @atom:28_b17_a17_d17_i17 } - replace{ @atom:29 @atom:29_b17_a17_d17_i17 } - replace{ @atom:30 @atom:30_b6_a6_d6_i6 } - replace{ @atom:31 @atom:31_b2_a2_d2_i2 } - replace{ @atom:32 @atom:32_b6_a6_d6_i6 } - replace{ @atom:33 @atom:33_b2_a2_d2_i2 } - replace{ @atom:34 @atom:34_b6_a6_d6_i6 } - replace{ @atom:35 @atom:35_b2_a2_d2_i2 } - replace{ @atom:36 @atom:36_b18_a18_d18_i18 } - replace{ @atom:37 @atom:37_b19_a19_d19_i19 } - replace{ @atom:38 @atom:38_b6_a6_d6_i6 } - replace{ @atom:39 @atom:39_b10_a10_d10_i10 } - replace{ @atom:40 @atom:40_b13_a13_d13_i13 } - replace{ @atom:41 @atom:41_b20_a20_d20_i20 } - replace{ @atom:42 @atom:42_b6_a6_d6_i6 } - replace{ @atom:43 @atom:43_b2_a2_d2_i2 } - replace{ @atom:44 @atom:44_b2_a2_d2_i2 } - replace{ @atom:45 @atom:45_b21_a21_d21_i21 } - replace{ @atom:46 @atom:46_b10_a10_d10_i10 } - replace{ @atom:47 @atom:47_b21_a21_d21_i21 } - replace{ @atom:48 @atom:48_b13_a13_d13_i13 } - replace{ @atom:49 @atom:49_b21_a21_d21_i21 } - replace{ @atom:50 @atom:50_b22_a22_d22_i22 } - replace{ @atom:51 @atom:51_b23_a23_d23_i23 } - replace{ @atom:52 @atom:52_b6_a6_d6_i6 } - replace{ @atom:53 @atom:53_b4_a4_d4_i4 } - replace{ @atom:54 @atom:54_b24_a24_d24_i24 } - replace{ @atom:55 @atom:55_b3_a3_d3_i3 } - replace{ @atom:56 @atom:56_b6_a6_d6_i6 } - replace{ @atom:57 @atom:57_b25_a25_d25_i25 } - replace{ @atom:58 @atom:58_b26_a26_d26_i26 } - replace{ @atom:59 @atom:59_b27_a27_d27_i27 } - replace{ @atom:60 @atom:60_b28_a28_d28_i28 } - replace{ @atom:61 @atom:61_b29_a29_d29_i29 } - replace{ @atom:62 @atom:62_b30_a30_d30_i30 } - replace{ @atom:63 @atom:63_b31_a31_d31_i31 } - replace{ @atom:64 @atom:64_b32_a32_d32_i32 } - replace{ @atom:65 @atom:65_b31_a31_d31_i31 } - replace{ @atom:66 @atom:66_b32_a32_d32_i32 } - replace{ @atom:67 @atom:67_b33_a33_d33_i33 } - replace{ @atom:68 @atom:68_b34_a34_d34_i34 } - replace{ @atom:69 @atom:69_b35_a35_d35_i35 } - replace{ @atom:70 @atom:70_b36_a36_d36_i36 } - replace{ @atom:71 @atom:71_b37_a37_d37_i37 } - replace{ @atom:72 @atom:72_b38_a38_d38_i38 } - replace{ @atom:73 @atom:73_b39_a39_d39_i39 } - replace{ @atom:74 @atom:74_b40_a40_d40_i40 } - replace{ @atom:75 @atom:75_b41_a41_d41_i41 } - replace{ @atom:76 @atom:76_b42_a42_d42_i42 } - replace{ @atom:77 @atom:77_b43_a43_d43_i43 } - replace{ @atom:78 @atom:78_b44_a44_d44_i44 } - replace{ @atom:79 @atom:79_b45_a45_d45_i45 } - replace{ @atom:80 @atom:80_b13_a13_d13_i13 } - replace{ @atom:81 @atom:81_b13_a13_d13_i13 } - replace{ @atom:82 @atom:82_b13_a13_d13_i13 } - replace{ @atom:83 @atom:83_b13_a13_d13_i13 } - replace{ @atom:84 @atom:84_b13_a13_d13_i13 } - replace{ @atom:85 @atom:85_b46_a46_d46_i46 } - replace{ @atom:86 @atom:86_b47_a47_d47_i47 } - replace{ @atom:87 @atom:87_b47_a47_d47_i47 } - replace{ @atom:88 @atom:88_b47_a47_d47_i47 } - replace{ @atom:89 @atom:89_b46_a46_d46_i46 } - replace{ @atom:90 @atom:90_b48_a48_d48_i48 } - replace{ @atom:91 @atom:91_b49_a49_d49_i49 } - replace{ @atom:92 @atom:92_b48_a48_d48_i48 } - replace{ @atom:93 @atom:93_b13_a13_d13_i13 } - replace{ @atom:94 @atom:94_b13_a13_d13_i13 } - replace{ @atom:95 @atom:95_b50_a50_d50_i50 } - replace{ @atom:96 @atom:96_b5_a5_d5_i5 } - replace{ @atom:97 @atom:97_b7_a7_d7_i7 } - replace{ @atom:98 @atom:98_b46_a46_d46_i46 } - replace{ @atom:99 @atom:99_b13_a13_d13_i13 } - replace{ @atom:100 @atom:100_b13_a13_d13_i13 } - replace{ @atom:101 @atom:101_b13_a13_d13_i13 } - replace{ @atom:102 @atom:102_b13_a13_d13_i13 } - replace{ @atom:103 @atom:103_b13_a13_d13_i13 } - replace{ @atom:104 @atom:104_b5_a5_d5_i5 } - replace{ @atom:105 @atom:105_b7_a7_d7_i7 } - replace{ @atom:106 @atom:106_b1_a1_d1_i1 } - replace{ @atom:107 @atom:107_b46_a46_d46_i46 } - replace{ @atom:108 @atom:108_b48_a48_d48_i48 } - replace{ @atom:109 @atom:109_b5_a5_d5_i5 } - replace{ @atom:110 @atom:110_b7_a7_d7_i7 } - replace{ @atom:111 @atom:111_b5_a5_d5_i5 } - replace{ @atom:112 @atom:112_b7_a7_d7_i7 } - replace{ @atom:113 @atom:113_b5_a5_d5_i5 } - replace{ @atom:114 @atom:114_b7_a7_d7_i7 } - replace{ @atom:115 @atom:115_b13_a13_d13_i13 } - replace{ @atom:116 @atom:116_b13_a13_d13_i13 } - replace{ @atom:117 @atom:117_b13_a13_d13_i13 } - replace{ @atom:118 @atom:118_b46_a46_d46_i46 } - replace{ @atom:119 @atom:119_b20_a20_d20_i20 } - replace{ @atom:120 @atom:120_b50_a50_d50_i50 } - replace{ @atom:121 @atom:121_b20_a20_d20_i20 } - replace{ @atom:122 @atom:122_b20_a20_d20_i20 } - replace{ @atom:123 @atom:123_b13_a13_d13_i13 } - replace{ @atom:124 @atom:124_b13_a13_d13_i13 } - replace{ @atom:125 @atom:125_b13_a13_d13_i13 } - replace{ @atom:126 @atom:126_b13_a13_d13_i13 } - replace{ @atom:127 @atom:127_b46_a46_d46_i46 } - replace{ @atom:128 @atom:128_b20_a20_d20_i20 } - replace{ @atom:129 @atom:129_b5_a5_d5_i5 } - replace{ @atom:130 @atom:130_b7_a7_d7_i7 } - replace{ @atom:131 @atom:131_b51_a51_d51_i51 } - replace{ @atom:132 @atom:132_b46_a46_d46_i46 } - replace{ @atom:133 @atom:133_b51_a51_d51_i51 } - replace{ @atom:134 @atom:134_b46_a46_d46_i46 } - replace{ @atom:135 @atom:135_b51_a51_d51_i51 } - replace{ @atom:136 @atom:136_b46_a46_d46_i46 } - replace{ @atom:137 @atom:137_b51_a51_d51_i51 } - replace{ @atom:138 @atom:138_b46_a46_d46_i46 } - replace{ @atom:139 @atom:139_b51_a51_d51_i51 } - replace{ @atom:140 @atom:140_b51_a51_d51_i51 } - replace{ @atom:141 @atom:141_b48_a48_d48_i48 } - replace{ @atom:142 @atom:142_b15_a15_d15_i15 } - replace{ @atom:143 @atom:143_b15_a15_d15_i15 } - replace{ @atom:144 @atom:144_b16_a16_d16_i16 } - replace{ @atom:145 @atom:145_b16_a16_d16_i16 } - replace{ @atom:146 @atom:146_b17_a17_d17_i17 } - replace{ @atom:147 @atom:147_b17_a17_d17_i17 } - replace{ @atom:148 @atom:148_b13_a13_d13_i13 } - replace{ @atom:149 @atom:149_b13_a13_d13_i13 } - replace{ @atom:150 @atom:150_b13_a13_d13_i13 } - replace{ @atom:151 @atom:151_b13_a13_d13_i13 } - replace{ @atom:152 @atom:152_b13_a13_d13_i13 } - replace{ @atom:153 @atom:153_b13_a13_d13_i13 } - replace{ @atom:154 @atom:154_b13_a13_d13_i13 } - replace{ @atom:155 @atom:155_b13_a13_d13_i13 } - replace{ @atom:156 @atom:156_b13_a13_d13_i13 } - replace{ @atom:157 @atom:157_b13_a13_d13_i13 } - replace{ @atom:158 @atom:158_b13_a13_d13_i13 } - replace{ @atom:159 @atom:159_b13_a13_d13_i13 } - replace{ @atom:160 @atom:160_b13_a13_d13_i13 } - replace{ @atom:161 @atom:161_b13_a13_d13_i13 } - replace{ @atom:162 @atom:162_b13_a13_d13_i13 } - replace{ @atom:163 @atom:163_b48_a48_d48_i48 } - replace{ @atom:164 @atom:164_b16_a16_d16_i16 } - replace{ @atom:165 @atom:165_b13_a13_d13_i13 } - replace{ @atom:166 @atom:166_b13_a13_d13_i13 } - replace{ @atom:167 @atom:167_b13_a13_d13_i13 } - replace{ @atom:168 @atom:168_b21_a21_d21_i21 } - replace{ @atom:169 @atom:169_b47_a47_d47_i47 } - replace{ @atom:170 @atom:170_b48_a48_d48_i48 } - replace{ @atom:171 @atom:171_b13_a13_d13_i13 } - replace{ @atom:172 @atom:172_b13_a13_d13_i13 } - replace{ @atom:173 @atom:173_b3_a3_d3_i3 } - replace{ @atom:174 @atom:174_b3_a3_d3_i3 } - replace{ @atom:175 @atom:175_b3_a3_d3_i3 } - replace{ @atom:176 @atom:176_b3_a3_d3_i3 } - replace{ @atom:177 @atom:177_b3_a3_d3_i3 } - replace{ @atom:178 @atom:178_b4_a4_d4_i4 } - replace{ @atom:179 @atom:179_b24_a24_d24_i24 } - replace{ @atom:180 @atom:180_b24_a24_d24_i24 } - replace{ @atom:181 @atom:181_b24_a24_d24_i24 } - replace{ @atom:182 @atom:182_b45_a45_d45_i45 } - replace{ @atom:183 @atom:183_b45_a45_d45_i45 } - replace{ @atom:184 @atom:184_b13_a13_d13_i13 } - replace{ @atom:185 @atom:185_b13_a13_d13_i13 } - replace{ @atom:186 @atom:186_b13_a13_d13_i13 } - replace{ @atom:187 @atom:187_b13_a13_d13_i13 } - replace{ @atom:188 @atom:188_b13_a13_d13_i13 } - replace{ @atom:189 @atom:189_b3_a3_d3_i3 } - replace{ @atom:190 @atom:190_b4_a4_d4_i4 } - replace{ @atom:191 @atom:191_b24_a24_d24_i24 } - replace{ @atom:192 @atom:192_b45_a45_d45_i45 } - replace{ @atom:193 @atom:193_b24_a24_d24_i24 } - replace{ @atom:194 @atom:194_b3_a3_d3_i3 } - replace{ @atom:195 @atom:195_b4_a4_d4_i4 } - replace{ @atom:196 @atom:196_b45_a45_d45_i45 } - replace{ @atom:197 @atom:197_b46_a46_d46_i46 } - replace{ @atom:198 @atom:198_b13_a13_d13_i13 } - replace{ @atom:199 @atom:199_b13_a13_d13_i13 } - replace{ @atom:200 @atom:200_b13_a13_d13_i13 } - replace{ @atom:201 @atom:201_b13_a13_d13_i13 } - replace{ @atom:202 @atom:202_b48_a48_d48_i48 } - replace{ @atom:203 @atom:203_b19_a19_d19_i19 } - replace{ @atom:204 @atom:204_b18_a18_d18_i18 } - replace{ @atom:205 @atom:205_b48_a48_d48_i48 } - replace{ @atom:206 @atom:206_b21_a21_d21_i21 } - replace{ @atom:207 @atom:207_b24_a24_d24_i24 } - replace{ @atom:208 @atom:208_b48_a48_d48_i48 } - replace{ @atom:209 @atom:209_b3_a3_d3_i3 } - replace{ @atom:210 @atom:210_b4_a4_d4_i4 } - replace{ @atom:211 @atom:211_b5_a5_d5_i5 } - replace{ @atom:212 @atom:212_b7_a7_d7_i7 } - replace{ @atom:213 @atom:213_b3_a3_d3_i3 } - replace{ @atom:214 @atom:214_b52_a52_d52_i52 } - replace{ @atom:215 @atom:215_b13_a13_d13_i13 } - replace{ @atom:216 @atom:216_b13_a13_d13_i13 } - replace{ @atom:217 @atom:217_b13_a13_d13_i13 } - replace{ @atom:218 @atom:218_b13_a13_d13_i13 } - replace{ @atom:219 @atom:219_b3_a3_d3_i3 } - replace{ @atom:220 @atom:220_b4_a4_d4_i4 } - replace{ @atom:221 @atom:221_b46_a46_d46_i46 } - replace{ @atom:222 @atom:222_b3_a3_d3_i3 } - replace{ @atom:223 @atom:223_b4_a4_d4_i4 } - replace{ @atom:224 @atom:224_b46_a46_d46_i46 } - replace{ @atom:225 @atom:225_b13_a13_d13_i13 } - replace{ @atom:226 @atom:226_b13_a13_d13_i13 } - replace{ @atom:227 @atom:227_b13_a13_d13_i13 } - replace{ @atom:228 @atom:228_b13_a13_d13_i13 } - replace{ @atom:229 @atom:229_b53_a53_d53_i53 } - replace{ @atom:230 @atom:230_b53_a53_d53_i53 } - replace{ @atom:231 @atom:231_b53_a53_d53_i53 } - replace{ @atom:232 @atom:232_b54_a54_d54_i54 } - replace{ @atom:233 @atom:233_b54_a54_d54_i54 } - replace{ @atom:234 @atom:234_b13_a13_d13_i13 } - replace{ @atom:235 @atom:235_b13_a13_d13_i13 } - replace{ @atom:236 @atom:236_b13_a13_d13_i13 } - replace{ @atom:237 @atom:237_b13_a13_d13_i13 } - replace{ @atom:238 @atom:238_b13_a13_d13_i13 } - replace{ @atom:239 @atom:239_b13_a13_d13_i13 } - replace{ @atom:240 @atom:240_b13_a13_d13_i13 } - replace{ @atom:241 @atom:241_b13_a13_d13_i13 } - replace{ @atom:242 @atom:242_b13_a13_d13_i13 } - replace{ @atom:243 @atom:243_b55_a55_d55_i55 } - replace{ @atom:244 @atom:244_b54_a54_d54_i54 } - replace{ @atom:245 @atom:245_b48_a48_d48_i48 } - replace{ @atom:246 @atom:246_b55_a55_d55_i55 } - replace{ @atom:247 @atom:247_b54_a54_d54_i54 } - replace{ @atom:248 @atom:248_b13_a13_d13_i13 } - replace{ @atom:249 @atom:249_b13_a13_d13_i13 } - replace{ @atom:250 @atom:250_b13_a13_d13_i13 } - replace{ @atom:251 @atom:251_b13_a13_d13_i13 } - replace{ @atom:252 @atom:252_b53_a53_d53_i53 } - replace{ @atom:253 @atom:253_b54_a54_d54_i54 } - replace{ @atom:254 @atom:254_b56_a56_d56_i56 } - replace{ @atom:255 @atom:255_b48_a48_d48_i48 } - replace{ @atom:256 @atom:256_b55_a55_d55_i55 } - replace{ @atom:257 @atom:257_b45_a45_d45_i45 } - replace{ @atom:258 @atom:258_b48_a48_d48_i48 } - replace{ @atom:259 @atom:259_b49_a49_d49_i49 } - replace{ @atom:260 @atom:260_b48_a48_d48_i48 } - replace{ @atom:261 @atom:261_b49_a49_d49_i49 } - replace{ @atom:262 @atom:262_b57_a57_d57_i57 } - replace{ @atom:263 @atom:263_b3_a3_d3_i3 } - replace{ @atom:264 @atom:264_b57_a57_d57_i57 } - replace{ @atom:265 @atom:265_b3_a3_d3_i3 } - replace{ @atom:266 @atom:266_b47_a47_d47_i47 } - replace{ @atom:267 @atom:267_b47_a47_d47_i47 } - replace{ @atom:268 @atom:268_b45_a45_d45_i45 } - replace{ @atom:269 @atom:269_b4_a4_d4_i4 } - replace{ @atom:270 @atom:270_b45_a45_d45_i45 } - replace{ @atom:271 @atom:271_b4_a4_d4_i4 } - replace{ @atom:272 @atom:272_b46_a46_d46_i46 } - replace{ @atom:273 @atom:273_b46_a46_d46_i46 } - replace{ @atom:274 @atom:274_b13_a13_d13_i13 } - replace{ @atom:275 @atom:275_b46_a46_d46_i46 } - replace{ @atom:276 @atom:276_b57_a57_d57_i57 } - replace{ @atom:277 @atom:277_b3_a3_d3_i3 } - replace{ @atom:278 @atom:278_b56_a56_d56_i56 } - replace{ @atom:279 @atom:279_b48_a48_d48_i48 } - replace{ @atom:280 @atom:280_b47_a47_d47_i47 } - replace{ @atom:281 @atom:281_b47_a47_d47_i47 } - replace{ @atom:282 @atom:282_b45_a45_d45_i45 } - replace{ @atom:283 @atom:283_b4_a4_d4_i4 } - replace{ @atom:284 @atom:284_b55_a55_d55_i55 } - replace{ @atom:285 @atom:285_b45_a45_d45_i45 } - replace{ @atom:286 @atom:286_b45_a45_d45_i45 } - replace{ @atom:287 @atom:287_b46_a46_d46_i46 } - replace{ @atom:288 @atom:288_b58_a58_d58_i58 } - replace{ @atom:289 @atom:289_b56_a56_d56_i56 } - replace{ @atom:290 @atom:290_b59_a59_d59_i59 } - replace{ @atom:291 @atom:291_b56_a56_d56_i56 } - replace{ @atom:292 @atom:292_b60_a60_d60_i60 } - replace{ @atom:293 @atom:293_b60_a60_d60_i60 } - replace{ @atom:294 @atom:294_b48_a48_d48_i48 } - replace{ @atom:295 @atom:295_b61_a61_d61_i61 } - replace{ @atom:296 @atom:296_b62_a62_d62_i62 } - replace{ @atom:297 @atom:297_b57_a57_d57_i57 } - replace{ @atom:298 @atom:298_b63_a63_d63_i63 } - replace{ @atom:299 @atom:299_b55_a55_d55_i55 } - replace{ @atom:300 @atom:300_b45_a45_d45_i45 } - replace{ @atom:301 @atom:301_b45_a45_d45_i45 } - replace{ @atom:302 @atom:302_b63_a63_d63_i63 } - replace{ @atom:303 @atom:303_b45_a45_d45_i45 } - replace{ @atom:304 @atom:304_b57_a57_d57_i57 } - replace{ @atom:305 @atom:305_b48_a48_d48_i48 } - replace{ @atom:306 @atom:306_b56_a56_d56_i56 } - replace{ @atom:307 @atom:307_b60_a60_d60_i60 } - replace{ @atom:308 @atom:308_b60_a60_d60_i60 } - replace{ @atom:309 @atom:309_b3_a3_d3_i3 } - replace{ @atom:310 @atom:310_b45_a45_d45_i45 } - replace{ @atom:311 @atom:311_b55_a55_d55_i55 } - replace{ @atom:312 @atom:312_b45_a45_d45_i45 } - replace{ @atom:313 @atom:313_b4_a4_d4_i4 } - replace{ @atom:314 @atom:314_b13_a13_d13_i13 } - replace{ @atom:315 @atom:315_b46_a46_d46_i46 } - replace{ @atom:316 @atom:316_b13_a13_d13_i13 } - replace{ @atom:317 @atom:317_b46_a46_d46_i46 } - replace{ @atom:318 @atom:318_b13_a13_d13_i13 } - replace{ @atom:319 @atom:319_b46_a46_d46_i46 } - replace{ @atom:320 @atom:320_b57_a57_d57_i57 } - replace{ @atom:321 @atom:321_b3_a3_d3_i3 } - replace{ @atom:322 @atom:322_b57_a57_d57_i57 } - replace{ @atom:323 @atom:323_b48_a48_d48_i48 } - replace{ @atom:324 @atom:324_b47_a47_d47_i47 } - replace{ @atom:325 @atom:325_b47_a47_d47_i47 } - replace{ @atom:326 @atom:326_b45_a45_d45_i45 } - replace{ @atom:327 @atom:327_b4_a4_d4_i4 } - replace{ @atom:328 @atom:328_b45_a45_d45_i45 } - replace{ @atom:329 @atom:329_b55_a55_d55_i55 } - replace{ @atom:330 @atom:330_b45_a45_d45_i45 } - replace{ @atom:331 @atom:331_b45_a45_d45_i45 } - replace{ @atom:332 @atom:332_b49_a49_d49_i49 } - replace{ @atom:333 @atom:333_b58_a58_d58_i58 } - replace{ @atom:334 @atom:334_b13_a13_d13_i13 } - replace{ @atom:335 @atom:335_b46_a46_d46_i46 } - replace{ @atom:336 @atom:336_b64_a64_d64_i64 } - replace{ @atom:337 @atom:337_b52_a52_d52_i52 } - replace{ @atom:338 @atom:338_b20_a20_d20_i20 } - replace{ @atom:339 @atom:339_b13_a13_d13_i13 } - replace{ @atom:340 @atom:340_b47_a47_d47_i47 } - replace{ @atom:341 @atom:341_b21_a21_d21_i21 } - replace{ @atom:342 @atom:342_b47_a47_d47_i47 } - replace{ @atom:343 @atom:343_b1_a1_d1_i1 } - replace{ @atom:344 @atom:344_b21_a21_d21_i21 } - replace{ @atom:345 @atom:345_b65_a65_d65_i65 } - replace{ @atom:346 @atom:346_b66_a66_d66_i66 } - replace{ @atom:347 @atom:347_b67_a67_d67_i67 } - replace{ @atom:348 @atom:348_b68_a68_d68_i68 } - replace{ @atom:349 @atom:349_b69_a69_d69_i69 } - replace{ @atom:350 @atom:350_b70_a70_d70_i70 } - replace{ @atom:351 @atom:351_b71_a71_d71_i71 } - replace{ @atom:352 @atom:352_b72_a72_d72_i72 } - replace{ @atom:353 @atom:353_b73_a73_d73_i73 } - replace{ @atom:354 @atom:354_b74_a74_d74_i74 } - replace{ @atom:355 @atom:355_b75_a75_d75_i75 } - replace{ @atom:356 @atom:356_b76_a76_d76_i76 } - replace{ @atom:357 @atom:357_b6_a6_d6_i6 } - replace{ @atom:358 @atom:358_b46_a46_d46_i46 } - replace{ @atom:359 @atom:359_b15_a15_d15_i15 } - replace{ @atom:360 @atom:360_b6_a6_d6_i6 } - replace{ @atom:361 @atom:361_b46_a46_d46_i46 } - replace{ @atom:362 @atom:362_b5_a5_d5_i5 } - replace{ @atom:363 @atom:363_b13_a13_d13_i13 } - replace{ @atom:364 @atom:364_b46_a46_d46_i46 } - replace{ @atom:365 @atom:365_b19_a19_d19_i19 } - replace{ @atom:366 @atom:366_b18_a18_d18_i18 } - replace{ @atom:367 @atom:367_b6_a6_d6_i6 } - replace{ @atom:368 @atom:368_b46_a46_d46_i46 } - replace{ @atom:369 @atom:369_b53_a53_d53_i53 } - replace{ @atom:370 @atom:370_b45_a45_d45_i45 } - replace{ @atom:371 @atom:371_b6_a6_d6_i6 } - replace{ @atom:372 @atom:372_b46_a46_d46_i46 } - replace{ @atom:373 @atom:373_b13_a13_d13_i13 } - replace{ @atom:374 @atom:374_b46_a46_d46_i46 } - replace{ @atom:375 @atom:375_b33_a33_d33_i33 } - replace{ @atom:376 @atom:376_b5_a5_d5_i5 } - replace{ @atom:377 @atom:377_b7_a7_d7_i7 } - replace{ @atom:378 @atom:378_b77_a77_d77_i77 } - replace{ @atom:379 @atom:379_b78_a78_d78_i78 } - replace{ @atom:380 @atom:380_b20_a20_d20_i20 } - replace{ @atom:381 @atom:381_b64_a64_d64_i64 } - replace{ @atom:382 @atom:382_b52_a52_d52_i52 } - replace{ @atom:383 @atom:383_b20_a20_d20_i20 } - replace{ @atom:384 @atom:384_b13_a13_d13_i13 } - replace{ @atom:385 @atom:385_b46_a46_d46_i46 } - replace{ @atom:386 @atom:386_b64_a64_d64_i64 } - replace{ @atom:387 @atom:387_b52_a52_d52_i52 } - replace{ @atom:388 @atom:388_b20_a20_d20_i20 } - replace{ @atom:389 @atom:389_b13_a13_d13_i13 } - replace{ @atom:390 @atom:390_b46_a46_d46_i46 } - replace{ @atom:391 @atom:391_b64_a64_d64_i64 } - replace{ @atom:392 @atom:392_b52_a52_d52_i52 } - replace{ @atom:393 @atom:393_b20_a20_d20_i20 } - replace{ @atom:394 @atom:394_b13_a13_d13_i13 } - replace{ @atom:395 @atom:395_b46_a46_d46_i46 } - replace{ @atom:396 @atom:396_b13_a13_d13_i13 } - replace{ @atom:397 @atom:397_b46_a46_d46_i46 } - replace{ @atom:398 @atom:398_b48_a48_d48_i48 } - replace{ @atom:399 @atom:399_b13_a13_d13_i13 } - replace{ @atom:400 @atom:400_b46_a46_d46_i46 } - replace{ @atom:401 @atom:401_b48_a48_d48_i48 } - replace{ @atom:402 @atom:402_b13_a13_d13_i13 } - replace{ @atom:403 @atom:403_b46_a46_d46_i46 } - replace{ @atom:404 @atom:404_b48_a48_d48_i48 } - replace{ @atom:405 @atom:405_b13_a13_d13_i13 } - replace{ @atom:406 @atom:406_b3_a3_d3_i3 } - replace{ @atom:407 @atom:407_b4_a4_d4_i4 } - replace{ @atom:408 @atom:408_b20_a20_d20_i20 } - replace{ @atom:409 @atom:409_b13_a13_d13_i13 } - replace{ @atom:410 @atom:410_b46_a46_d46_i46 } - replace{ @atom:411 @atom:411_b3_a3_d3_i3 } - replace{ @atom:412 @atom:412_b3_a3_d3_i3 } - replace{ @atom:413 @atom:413_b48_a48_d48_i48 } - replace{ @atom:414 @atom:414_b20_a20_d20_i20 } - replace{ @atom:415 @atom:415_b79_a79_d79_i79 } - replace{ @atom:416 @atom:416_b23_a23_d23_i23 } - replace{ @atom:417 @atom:417_b13_a13_d13_i13 } - replace{ @atom:418 @atom:418_b46_a46_d46_i46 } - replace{ @atom:419 @atom:419_b24_a24_d24_i24 } - replace{ @atom:420 @atom:420_b45_a45_d45_i45 } - replace{ @atom:421 @atom:421_b24_a24_d24_i24 } - replace{ @atom:422 @atom:422_b45_a45_d45_i45 } - replace{ @atom:423 @atom:423_b13_a13_d13_i13 } - replace{ @atom:424 @atom:424_b46_a46_d46_i46 } - replace{ @atom:425 @atom:425_b13_a13_d13_i13 } - replace{ @atom:426 @atom:426_b46_a46_d46_i46 } - replace{ @atom:427 @atom:427_b13_a13_d13_i13 } - replace{ @atom:428 @atom:428_b46_a46_d46_i46 } - replace{ @atom:429 @atom:429_b48_a48_d48_i48 } - replace{ @atom:430 @atom:430_b48_a48_d48_i48 } - replace{ @atom:431 @atom:431_b13_a13_d13_i13 } - replace{ @atom:432 @atom:432_b13_a13_d13_i13 } - replace{ @atom:433 @atom:433_b13_a13_d13_i13 } - replace{ @atom:434 @atom:434_b79_a79_d79_i79 } - replace{ @atom:435 @atom:435_b23_a23_d23_i23 } - replace{ @atom:436 @atom:436_b22_a22_d22_i22 } - replace{ @atom:437 @atom:437_b22_a22_d22_i22 } - replace{ @atom:438 @atom:438_b23_a23_d23_i23 } - replace{ @atom:439 @atom:439_b13_a13_d13_i13 } - replace{ @atom:440 @atom:440_b13_a13_d13_i13 } - replace{ @atom:441 @atom:441_b80_a80_d80_i80 } - replace{ @atom:442 @atom:442_b60_a60_d60_i60 } - replace{ @atom:443 @atom:443_b81_a81_d81_i81 } - replace{ @atom:444 @atom:444_b57_a57_d57_i57 } - replace{ @atom:445 @atom:445_b45_a45_d45_i45 } - replace{ @atom:446 @atom:446_b13_a13_d13_i13 } - replace{ @atom:447 @atom:447_b82_a82_d82_i82 } - replace{ @atom:448 @atom:448_b83_a83_d83_i83 } - replace{ @atom:449 @atom:449_b84_a84_d84_i84 } - replace{ @atom:450 @atom:450_b82_a82_d82_i82 } - replace{ @atom:451 @atom:451_b85_a85_d85_i85 } - replace{ @atom:452 @atom:452_b61_a61_d61_i61 } - replace{ @atom:453 @atom:453_b57_a57_d57_i57 } - replace{ @atom:454 @atom:454_b45_a45_d45_i45 } - replace{ @atom:455 @atom:455_b84_a84_d84_i84 } - replace{ @atom:456 @atom:456_b13_a13_d13_i13 } - replace{ @atom:457 @atom:457_b13_a13_d13_i13 } - replace{ @atom:458 @atom:458_b47_a47_d47_i47 } - replace{ @atom:459 @atom:459_b47_a47_d47_i47 } - replace{ @atom:460 @atom:460_b86_a86_d86_i86 } - replace{ @atom:461 @atom:461_b56_a56_d56_i56 } - replace{ @atom:462 @atom:462_b48_a48_d48_i48 } - replace{ @atom:463 @atom:463_b48_a48_d48_i48 } - replace{ @atom:464 @atom:464_b48_a48_d48_i48 } - replace{ @atom:465 @atom:465_b49_a49_d49_i49 } - replace{ @atom:466 @atom:466_b49_a49_d49_i49 } - replace{ @atom:467 @atom:467_b49_a49_d49_i49 } - replace{ @atom:468 @atom:468_b56_a56_d56_i56 } - replace{ @atom:469 @atom:469_b48_a48_d48_i48 } - replace{ @atom:470 @atom:470_b49_a49_d49_i49 } - replace{ @atom:471 @atom:471_b56_a56_d56_i56 } - replace{ @atom:472 @atom:472_b59_a59_d59_i59 } - replace{ @atom:473 @atom:473_b48_a48_d48_i48 } - replace{ @atom:474 @atom:474_b48_a48_d48_i48 } - replace{ @atom:475 @atom:475_b49_a49_d49_i49 } - replace{ @atom:476 @atom:476_b49_a49_d49_i49 } - replace{ @atom:477 @atom:477_b49_a49_d49_i49 } - replace{ @atom:478 @atom:478_b56_a56_d56_i56 } - replace{ @atom:479 @atom:479_b48_a48_d48_i48 } - replace{ @atom:480 @atom:480_b48_a48_d48_i48 } - replace{ @atom:481 @atom:481_b49_a49_d49_i49 } - replace{ @atom:482 @atom:482_b49_a49_d49_i49 } - replace{ @atom:483 @atom:483_b57_a57_d57_i57 } - replace{ @atom:484 @atom:484_b84_a84_d84_i84 } - replace{ @atom:485 @atom:485_b87_a87_d87_i87 } - replace{ @atom:486 @atom:486_b45_a45_d45_i45 } - replace{ @atom:487 @atom:487_b49_a49_d49_i49 } - replace{ @atom:488 @atom:488_b49_a49_d49_i49 } - replace{ @atom:489 @atom:489_b57_a57_d57_i57 } - replace{ @atom:490 @atom:490_b61_a61_d61_i61 } - replace{ @atom:491 @atom:491_b88_a88_d88_i88 } - replace{ @atom:492 @atom:492_b87_a87_d87_i87 } - replace{ @atom:493 @atom:493_b84_a84_d84_i84 } - replace{ @atom:494 @atom:494_b45_a45_d45_i45 } - replace{ @atom:495 @atom:495_b49_a49_d49_i49 } - replace{ @atom:496 @atom:496_b49_a49_d49_i49 } - replace{ @atom:497 @atom:497_b49_a49_d49_i49 } - replace{ @atom:498 @atom:498_b57_a57_d57_i57 } - replace{ @atom:499 @atom:499_b82_a82_d82_i82 } - replace{ @atom:500 @atom:500_b61_a61_d61_i61 } - replace{ @atom:501 @atom:501_b83_a83_d83_i83 } - replace{ @atom:502 @atom:502_b84_a84_d84_i84 } - replace{ @atom:503 @atom:503_b45_a45_d45_i45 } - replace{ @atom:504 @atom:504_b49_a49_d49_i49 } - replace{ @atom:505 @atom:505_b49_a49_d49_i49 } - replace{ @atom:506 @atom:506_b49_a49_d49_i49 } - replace{ @atom:507 @atom:507_b20_a20_d20_i20 } - replace{ @atom:508 @atom:508_b84_a84_d84_i84 } - replace{ @atom:509 @atom:509_b87_a87_d87_i87 } - replace{ @atom:510 @atom:510_b49_a49_d49_i49 } - replace{ @atom:511 @atom:511_b49_a49_d49_i49 } - replace{ @atom:512 @atom:512_b20_a20_d20_i20 } - replace{ @atom:513 @atom:513_b82_a82_d82_i82 } - replace{ @atom:514 @atom:514_b61_a61_d61_i61 } - replace{ @atom:515 @atom:515_b83_a83_d83_i83 } - replace{ @atom:516 @atom:516_b84_a84_d84_i84 } - replace{ @atom:517 @atom:517_b49_a49_d49_i49 } - replace{ @atom:518 @atom:518_b49_a49_d49_i49 } - replace{ @atom:519 @atom:519_b49_a49_d49_i49 } - replace{ @atom:520 @atom:520_b20_a20_d20_i20 } - replace{ @atom:521 @atom:521_b61_a61_d61_i61 } - replace{ @atom:522 @atom:522_b88_a88_d88_i88 } - replace{ @atom:523 @atom:523_b87_a87_d87_i87 } - replace{ @atom:524 @atom:524_b84_a84_d84_i84 } - replace{ @atom:525 @atom:525_b49_a49_d49_i49 } - replace{ @atom:526 @atom:526_b49_a49_d49_i49 } - replace{ @atom:527 @atom:527_b49_a49_d49_i49 } - replace{ @atom:528 @atom:528_b57_a57_d57_i57 } - replace{ @atom:529 @atom:529_b84_a84_d84_i84 } - replace{ @atom:530 @atom:530_b87_a87_d87_i87 } - replace{ @atom:531 @atom:531_b48_a48_d48_i48 } - replace{ @atom:532 @atom:532_b48_a48_d48_i48 } - replace{ @atom:533 @atom:533_b48_a48_d48_i48 } - replace{ @atom:534 @atom:534_b48_a48_d48_i48 } - replace{ @atom:535 @atom:535_b81_a81_d81_i81 } - replace{ @atom:536 @atom:536_b60_a60_d60_i60 } - replace{ @atom:537 @atom:537_b45_a45_d45_i45 } - replace{ @atom:538 @atom:538_b49_a49_d49_i49 } - replace{ @atom:539 @atom:539_b49_a49_d49_i49 } - replace{ @atom:540 @atom:540_b49_a49_d49_i49 } - replace{ @atom:541 @atom:541_b49_a49_d49_i49 } - replace{ @atom:542 @atom:542_b49_a49_d49_i49 } - replace{ @atom:543 @atom:543_b49_a49_d49_i49 } - replace{ @atom:544 @atom:544_b56_a56_d56_i56 } - replace{ @atom:545 @atom:545_b48_a48_d48_i48 } - replace{ @atom:546 @atom:546_b48_a48_d48_i48 } - replace{ @atom:547 @atom:547_b48_a48_d48_i48 } - replace{ @atom:548 @atom:548_b48_a48_d48_i48 } - replace{ @atom:549 @atom:549_b48_a48_d48_i48 } - replace{ @atom:550 @atom:550_b48_a48_d48_i48 } - replace{ @atom:551 @atom:551_b48_a48_d48_i48 } - replace{ @atom:552 @atom:552_b48_a48_d48_i48 } - replace{ @atom:553 @atom:553_b48_a48_d48_i48 } - replace{ @atom:554 @atom:554_b49_a49_d49_i49 } - replace{ @atom:555 @atom:555_b49_a49_d49_i49 } - replace{ @atom:556 @atom:556_b49_a49_d49_i49 } - replace{ @atom:557 @atom:557_b49_a49_d49_i49 } - replace{ @atom:558 @atom:558_b49_a49_d49_i49 } - replace{ @atom:559 @atom:559_b49_a49_d49_i49 } - replace{ @atom:560 @atom:560_b49_a49_d49_i49 } - replace{ @atom:561 @atom:561_b56_a56_d56_i56 } - replace{ @atom:562 @atom:562_b59_a59_d59_i59 } - replace{ @atom:563 @atom:563_b56_a56_d56_i56 } - replace{ @atom:564 @atom:564_b60_a60_d60_i60 } - replace{ @atom:565 @atom:565_b60_a60_d60_i60 } - replace{ @atom:566 @atom:566_b48_a48_d48_i48 } - replace{ @atom:567 @atom:567_b61_a61_d61_i61 } - replace{ @atom:568 @atom:568_b62_a62_d62_i62 } - replace{ @atom:569 @atom:569_b57_a57_d57_i57 } - replace{ @atom:570 @atom:570_b49_a49_d49_i49 } - replace{ @atom:571 @atom:571_b49_a49_d49_i49 } - replace{ @atom:572 @atom:572_b49_a49_d49_i49 } - replace{ @atom:573 @atom:573_b45_a45_d45_i45 } - replace{ @atom:574 @atom:574_b16_a16_d16_i16 } - replace{ @atom:575 @atom:575_b82_a82_d82_i82 } - replace{ @atom:576 @atom:576_b61_a61_d61_i61 } - replace{ @atom:577 @atom:577_b83_a83_d83_i83 } - replace{ @atom:578 @atom:578_b84_a84_d84_i84 } - replace{ @atom:579 @atom:579_b49_a49_d49_i49 } - replace{ @atom:580 @atom:580_b49_a49_d49_i49 } - replace{ @atom:581 @atom:581_b49_a49_d49_i49 } - replace{ @atom:582 @atom:582_b56_a56_d56_i56 } - replace{ @atom:583 @atom:583_b59_a59_d59_i59 } - replace{ @atom:584 @atom:584_b49_a49_d49_i49 } - replace{ @atom:585 @atom:585_b48_a48_d48_i48 } - replace{ @atom:586 @atom:586_b13_a13_d13_i13 } - replace{ @atom:587 @atom:587_b56_a56_d56_i56 } - replace{ @atom:588 @atom:588_b48_a48_d48_i48 } - replace{ @atom:589 @atom:589_b48_a48_d48_i48 } - replace{ @atom:590 @atom:590_b48_a48_d48_i48 } - replace{ @atom:591 @atom:591_b48_a48_d48_i48 } - replace{ @atom:592 @atom:592_b48_a48_d48_i48 } - replace{ @atom:593 @atom:593_b48_a48_d48_i48 } - replace{ @atom:594 @atom:594_b49_a49_d49_i49 } - replace{ @atom:595 @atom:595_b49_a49_d49_i49 } - replace{ @atom:596 @atom:596_b49_a49_d49_i49 } - replace{ @atom:597 @atom:597_b49_a49_d49_i49 } - replace{ @atom:598 @atom:598_b57_a57_d57_i57 } - replace{ @atom:599 @atom:599_b82_a82_d82_i82 } - replace{ @atom:600 @atom:600_b61_a61_d61_i61 } - replace{ @atom:601 @atom:601_b83_a83_d83_i83 } - replace{ @atom:602 @atom:602_b84_a84_d84_i84 } - replace{ @atom:603 @atom:603_b13_a13_d13_i13 } - replace{ @atom:604 @atom:604_b49_a49_d49_i49 } - replace{ @atom:605 @atom:605_b49_a49_d49_i49 } - replace{ @atom:606 @atom:606_b49_a49_d49_i49 } - replace{ @atom:607 @atom:607_b46_a46_d46_i46 } - replace{ @atom:608 @atom:608_b13_a13_d13_i13 } - replace{ @atom:609 @atom:609_b13_a13_d13_i13 } - replace{ @atom:610 @atom:610_b13_a13_d13_i13 } - replace{ @atom:611 @atom:611_b13_a13_d13_i13 } - replace{ @atom:612 @atom:612_b13_a13_d13_i13 } - replace{ @atom:613 @atom:613_b13_a13_d13_i13 } - replace{ @atom:614 @atom:614_b13_a13_d13_i13 } - replace{ @atom:615 @atom:615_b13_a13_d13_i13 } - replace{ @atom:616 @atom:616_b13_a13_d13_i13 } - replace{ @atom:617 @atom:617_b13_a13_d13_i13 } - replace{ @atom:618 @atom:618_b13_a13_d13_i13 } - replace{ @atom:619 @atom:619_b13_a13_d13_i13 } - replace{ @atom:620 @atom:620_b13_a13_d13_i13 } - replace{ @atom:621 @atom:621_b13_a13_d13_i13 } - replace{ @atom:622 @atom:622_b13_a13_d13_i13 } - replace{ @atom:623 @atom:623_b15_a15_d15_i15 } - replace{ @atom:624 @atom:624_b17_a17_d17_i17 } - replace{ @atom:625 @atom:625_b48_a48_d48_i48 } - replace{ @atom:626 @atom:626_b89_a89_d89_i89 } - replace{ @atom:627 @atom:627_b90_a90_d90_i90 } - replace{ @atom:628 @atom:628_b91_a91_d91_i91 } - replace{ @atom:629 @atom:629_b91_a91_d91_i91 } - replace{ @atom:630 @atom:630_b13_a13_d13_i13 } - replace{ @atom:631 @atom:631_b86_a86_d86_i86 } - replace{ @atom:632 @atom:632_b86_a86_d86_i86 } - replace{ @atom:633 @atom:633_b86_a86_d86_i86 } - replace{ @atom:634 @atom:634_b86_a86_d86_i86 } - replace{ @atom:635 @atom:635_b86_a86_d86_i86 } - replace{ @atom:636 @atom:636_b86_a86_d86_i86 } - replace{ @atom:637 @atom:637_b16_a16_d16_i16 } - replace{ @atom:638 @atom:638_b92_a92_d92_i92 } - replace{ @atom:639 @atom:639_b93_a93_d93_i93 } - replace{ @atom:640 @atom:640_b94_a94_d94_i94 } - replace{ @atom:641 @atom:641_b95_a95_d95_i95 } - replace{ @atom:642 @atom:642_b13_a13_d13_i13 } - replace{ @atom:643 @atom:643_b46_a46_d46_i46 } - replace{ @atom:644 @atom:644_b96_a96_d96_i96 } - replace{ @atom:645 @atom:645_b97_a97_d97_i97 } - replace{ @atom:646 @atom:646_b98_a98_d98_i98 } - replace{ @atom:647 @atom:647_b99_a99_d99_i99 } + replace{ @atom:1 @atom:1_b001_a001_d001_i001 } + replace{ @atom:2 @atom:2_b002_a002_d002_i002 } + replace{ @atom:3 @atom:3_b003_a003_d003_i003 } + replace{ @atom:4 @atom:4_b004_a004_d004_i004 } + replace{ @atom:5 @atom:5_b005_a005_d005_i005 } + replace{ @atom:6 @atom:6_b006_a006_d006_i006 } + replace{ @atom:7 @atom:7_b007_a007_d007_i007 } + replace{ @atom:8 @atom:8_b008_a008_d008_i008 } + replace{ @atom:9 @atom:9_b006_a006_d006_i006 } + replace{ @atom:10 @atom:10_b006_a006_d006_i006 } + replace{ @atom:11 @atom:11_b006_a006_d006_i006 } + replace{ @atom:12 @atom:12_b006_a006_d006_i006 } + replace{ @atom:13 @atom:13_b002_a002_d002_i002 } + replace{ @atom:14 @atom:14_b009_a009_d009_i009 } + replace{ @atom:15 @atom:15_b010_a010_d010_i010 } + replace{ @atom:16 @atom:16_b011_a011_d011_i011 } + replace{ @atom:17 @atom:17_b012_a012_d012_i012 } + replace{ @atom:18 @atom:18_b013_a013_d013_i013 } + replace{ @atom:19 @atom:19_b014_a014_d014_i014 } + replace{ @atom:20 @atom:20_b005_a005_d005_i005 } + replace{ @atom:21 @atom:21_b007_a007_d007_i007 } + replace{ @atom:22 @atom:22_b006_a006_d006_i006 } + replace{ @atom:23 @atom:23_b002_a002_d002_i002 } + replace{ @atom:24 @atom:24_b015_a015_d015_i015 } + replace{ @atom:25 @atom:25_b015_a015_d015_i015 } + replace{ @atom:26 @atom:26_b016_a016_d016_i016 } + replace{ @atom:27 @atom:27_b016_a016_d016_i016 } + replace{ @atom:28 @atom:28_b017_a017_d017_i017 } + replace{ @atom:29 @atom:29_b017_a017_d017_i017 } + replace{ @atom:30 @atom:30_b006_a006_d006_i006 } + replace{ @atom:31 @atom:31_b002_a002_d002_i002 } + replace{ @atom:32 @atom:32_b006_a006_d006_i006 } + replace{ @atom:33 @atom:33_b002_a002_d002_i002 } + replace{ @atom:34 @atom:34_b006_a006_d006_i006 } + replace{ @atom:35 @atom:35_b002_a002_d002_i002 } + replace{ @atom:36 @atom:36_b018_a018_d018_i018 } + replace{ @atom:37 @atom:37_b019_a019_d019_i019 } + replace{ @atom:38 @atom:38_b006_a006_d006_i006 } + replace{ @atom:39 @atom:39_b010_a010_d010_i010 } + replace{ @atom:40 @atom:40_b013_a013_d013_i013 } + replace{ @atom:41 @atom:41_b020_a020_d020_i020 } + replace{ @atom:42 @atom:42_b006_a006_d006_i006 } + replace{ @atom:43 @atom:43_b002_a002_d002_i002 } + replace{ @atom:44 @atom:44_b002_a002_d002_i002 } + replace{ @atom:45 @atom:45_b021_a021_d021_i021 } + replace{ @atom:46 @atom:46_b010_a010_d010_i010 } + replace{ @atom:47 @atom:47_b021_a021_d021_i021 } + replace{ @atom:48 @atom:48_b013_a013_d013_i013 } + replace{ @atom:49 @atom:49_b021_a021_d021_i021 } + replace{ @atom:50 @atom:50_b022_a022_d022_i022 } + replace{ @atom:51 @atom:51_b023_a023_d023_i023 } + replace{ @atom:52 @atom:52_b006_a006_d006_i006 } + replace{ @atom:53 @atom:53_b004_a004_d004_i004 } + replace{ @atom:54 @atom:54_b024_a024_d024_i024 } + replace{ @atom:55 @atom:55_b003_a003_d003_i003 } + replace{ @atom:56 @atom:56_b006_a006_d006_i006 } + replace{ @atom:57 @atom:57_b025_a025_d025_i025 } + replace{ @atom:58 @atom:58_b026_a026_d026_i026 } + replace{ @atom:59 @atom:59_b027_a027_d027_i027 } + replace{ @atom:60 @atom:60_b028_a028_d028_i028 } + replace{ @atom:61 @atom:61_b029_a029_d029_i029 } + replace{ @atom:62 @atom:62_b030_a030_d030_i030 } + replace{ @atom:63 @atom:63_b031_a031_d031_i031 } + replace{ @atom:64 @atom:64_b032_a032_d032_i032 } + replace{ @atom:65 @atom:65_b031_a031_d031_i031 } + replace{ @atom:66 @atom:66_b032_a032_d032_i032 } + replace{ @atom:67 @atom:67_b033_a033_d033_i033 } + replace{ @atom:68 @atom:68_b034_a034_d034_i034 } + replace{ @atom:69 @atom:69_b035_a035_d035_i035 } + replace{ @atom:70 @atom:70_b036_a036_d036_i036 } + replace{ @atom:71 @atom:71_b037_a037_d037_i037 } + replace{ @atom:72 @atom:72_b038_a038_d038_i038 } + replace{ @atom:73 @atom:73_b039_a039_d039_i039 } + replace{ @atom:74 @atom:74_b040_a040_d040_i040 } + replace{ @atom:75 @atom:75_b041_a041_d041_i041 } + replace{ @atom:76 @atom:76_b042_a042_d042_i042 } + replace{ @atom:77 @atom:77_b043_a043_d043_i043 } + replace{ @atom:78 @atom:78_b044_a044_d044_i044 } + replace{ @atom:79 @atom:79_b045_a045_d045_i045 } + replace{ @atom:80 @atom:80_b013_a013_d013_i013 } + replace{ @atom:81 @atom:81_b013_a013_d013_i013 } + replace{ @atom:82 @atom:82_b013_a013_d013_i013 } + replace{ @atom:83 @atom:83_b013_a013_d013_i013 } + replace{ @atom:84 @atom:84_b013_a013_d013_i013 } + replace{ @atom:85 @atom:85_b046_a046_d046_i046 } + replace{ @atom:86 @atom:86_b047_a047_d047_i047 } + replace{ @atom:87 @atom:87_b047_a047_d047_i047 } + replace{ @atom:88 @atom:88_b047_a047_d047_i047 } + replace{ @atom:89 @atom:89_b046_a046_d046_i046 } + replace{ @atom:90 @atom:90_b048_a048_d048_i048 } + replace{ @atom:91 @atom:91_b049_a049_d049_i049 } + replace{ @atom:92 @atom:92_b048_a048_d048_i048 } + replace{ @atom:93 @atom:93_b013_a013_d013_i013 } + replace{ @atom:94 @atom:94_b013_a013_d013_i013 } + replace{ @atom:95 @atom:95_b050_a050_d050_i050 } + replace{ @atom:96 @atom:96_b005_a005_d005_i005 } + replace{ @atom:97 @atom:97_b007_a007_d007_i007 } + replace{ @atom:98 @atom:98_b046_a046_d046_i046 } + replace{ @atom:99 @atom:99_b013_a013_d013_i013 } + replace{ @atom:100 @atom:100_b013_a013_d013_i013 } + replace{ @atom:101 @atom:101_b013_a013_d013_i013 } + replace{ @atom:102 @atom:102_b013_a013_d013_i013 } + replace{ @atom:103 @atom:103_b013_a013_d013_i013 } + replace{ @atom:104 @atom:104_b005_a005_d005_i005 } + replace{ @atom:105 @atom:105_b007_a007_d007_i007 } + replace{ @atom:106 @atom:106_b001_a001_d001_i001 } + replace{ @atom:107 @atom:107_b046_a046_d046_i046 } + replace{ @atom:108 @atom:108_b048_a048_d048_i048 } + replace{ @atom:109 @atom:109_b005_a005_d005_i005 } + replace{ @atom:110 @atom:110_b007_a007_d007_i007 } + replace{ @atom:111 @atom:111_b005_a005_d005_i005 } + replace{ @atom:112 @atom:112_b007_a007_d007_i007 } + replace{ @atom:113 @atom:113_b005_a005_d005_i005 } + replace{ @atom:114 @atom:114_b007_a007_d007_i007 } + replace{ @atom:115 @atom:115_b013_a013_d013_i013 } + replace{ @atom:116 @atom:116_b013_a013_d013_i013 } + replace{ @atom:117 @atom:117_b013_a013_d013_i013 } + replace{ @atom:118 @atom:118_b046_a046_d046_i046 } + replace{ @atom:119 @atom:119_b020_a020_d020_i020 } + replace{ @atom:120 @atom:120_b050_a050_d050_i050 } + replace{ @atom:121 @atom:121_b020_a020_d020_i020 } + replace{ @atom:122 @atom:122_b020_a020_d020_i020 } + replace{ @atom:123 @atom:123_b013_a013_d013_i013 } + replace{ @atom:124 @atom:124_b013_a013_d013_i013 } + replace{ @atom:125 @atom:125_b013_a013_d013_i013 } + replace{ @atom:126 @atom:126_b013_a013_d013_i013 } + replace{ @atom:127 @atom:127_b046_a046_d046_i046 } + replace{ @atom:128 @atom:128_b020_a020_d020_i020 } + replace{ @atom:129 @atom:129_b005_a005_d005_i005 } + replace{ @atom:130 @atom:130_b007_a007_d007_i007 } + replace{ @atom:131 @atom:131_b051_a051_d051_i051 } + replace{ @atom:132 @atom:132_b046_a046_d046_i046 } + replace{ @atom:133 @atom:133_b051_a051_d051_i051 } + replace{ @atom:134 @atom:134_b046_a046_d046_i046 } + replace{ @atom:135 @atom:135_b051_a051_d051_i051 } + replace{ @atom:136 @atom:136_b046_a046_d046_i046 } + replace{ @atom:137 @atom:137_b051_a051_d051_i051 } + replace{ @atom:138 @atom:138_b046_a046_d046_i046 } + replace{ @atom:139 @atom:139_b051_a051_d051_i051 } + replace{ @atom:140 @atom:140_b051_a051_d051_i051 } + replace{ @atom:141 @atom:141_b048_a048_d048_i048 } + replace{ @atom:142 @atom:142_b015_a015_d015_i015 } + replace{ @atom:143 @atom:143_b015_a015_d015_i015 } + replace{ @atom:144 @atom:144_b016_a016_d016_i016 } + replace{ @atom:145 @atom:145_b016_a016_d016_i016 } + replace{ @atom:146 @atom:146_b017_a017_d017_i017 } + replace{ @atom:147 @atom:147_b017_a017_d017_i017 } + replace{ @atom:148 @atom:148_b013_a013_d013_i013 } + replace{ @atom:149 @atom:149_b013_a013_d013_i013 } + replace{ @atom:150 @atom:150_b013_a013_d013_i013 } + replace{ @atom:151 @atom:151_b013_a013_d013_i013 } + replace{ @atom:152 @atom:152_b013_a013_d013_i013 } + replace{ @atom:153 @atom:153_b013_a013_d013_i013 } + replace{ @atom:154 @atom:154_b013_a013_d013_i013 } + replace{ @atom:155 @atom:155_b013_a013_d013_i013 } + replace{ @atom:156 @atom:156_b013_a013_d013_i013 } + replace{ @atom:157 @atom:157_b013_a013_d013_i013 } + replace{ @atom:158 @atom:158_b013_a013_d013_i013 } + replace{ @atom:159 @atom:159_b013_a013_d013_i013 } + replace{ @atom:160 @atom:160_b013_a013_d013_i013 } + replace{ @atom:161 @atom:161_b013_a013_d013_i013 } + replace{ @atom:162 @atom:162_b013_a013_d013_i013 } + replace{ @atom:163 @atom:163_b048_a048_d048_i048 } + replace{ @atom:164 @atom:164_b016_a016_d016_i016 } + replace{ @atom:165 @atom:165_b013_a013_d013_i013 } + replace{ @atom:166 @atom:166_b013_a013_d013_i013 } + replace{ @atom:167 @atom:167_b013_a013_d013_i013 } + replace{ @atom:168 @atom:168_b021_a021_d021_i021 } + replace{ @atom:169 @atom:169_b047_a047_d047_i047 } + replace{ @atom:170 @atom:170_b048_a048_d048_i048 } + replace{ @atom:171 @atom:171_b013_a013_d013_i013 } + replace{ @atom:172 @atom:172_b013_a013_d013_i013 } + replace{ @atom:173 @atom:173_b003_a003_d003_i003 } + replace{ @atom:174 @atom:174_b003_a003_d003_i003 } + replace{ @atom:175 @atom:175_b003_a003_d003_i003 } + replace{ @atom:176 @atom:176_b003_a003_d003_i003 } + replace{ @atom:177 @atom:177_b003_a003_d003_i003 } + replace{ @atom:178 @atom:178_b004_a004_d004_i004 } + replace{ @atom:179 @atom:179_b024_a024_d024_i024 } + replace{ @atom:180 @atom:180_b024_a024_d024_i024 } + replace{ @atom:181 @atom:181_b024_a024_d024_i024 } + replace{ @atom:182 @atom:182_b045_a045_d045_i045 } + replace{ @atom:183 @atom:183_b045_a045_d045_i045 } + replace{ @atom:184 @atom:184_b013_a013_d013_i013 } + replace{ @atom:185 @atom:185_b013_a013_d013_i013 } + replace{ @atom:186 @atom:186_b013_a013_d013_i013 } + replace{ @atom:187 @atom:187_b013_a013_d013_i013 } + replace{ @atom:188 @atom:188_b013_a013_d013_i013 } + replace{ @atom:189 @atom:189_b003_a003_d003_i003 } + replace{ @atom:190 @atom:190_b004_a004_d004_i004 } + replace{ @atom:191 @atom:191_b024_a024_d024_i024 } + replace{ @atom:192 @atom:192_b045_a045_d045_i045 } + replace{ @atom:193 @atom:193_b024_a024_d024_i024 } + replace{ @atom:194 @atom:194_b003_a003_d003_i003 } + replace{ @atom:195 @atom:195_b004_a004_d004_i004 } + replace{ @atom:196 @atom:196_b045_a045_d045_i045 } + replace{ @atom:197 @atom:197_b046_a046_d046_i046 } + replace{ @atom:198 @atom:198_b013_a013_d013_i013 } + replace{ @atom:199 @atom:199_b013_a013_d013_i013 } + replace{ @atom:200 @atom:200_b013_a013_d013_i013 } + replace{ @atom:201 @atom:201_b013_a013_d013_i013 } + replace{ @atom:202 @atom:202_b048_a048_d048_i048 } + replace{ @atom:203 @atom:203_b019_a019_d019_i019 } + replace{ @atom:204 @atom:204_b018_a018_d018_i018 } + replace{ @atom:205 @atom:205_b048_a048_d048_i048 } + replace{ @atom:206 @atom:206_b021_a021_d021_i021 } + replace{ @atom:207 @atom:207_b024_a024_d024_i024 } + replace{ @atom:208 @atom:208_b048_a048_d048_i048 } + replace{ @atom:209 @atom:209_b003_a003_d003_i003 } + replace{ @atom:210 @atom:210_b004_a004_d004_i004 } + replace{ @atom:211 @atom:211_b005_a005_d005_i005 } + replace{ @atom:212 @atom:212_b007_a007_d007_i007 } + replace{ @atom:213 @atom:213_b003_a003_d003_i003 } + replace{ @atom:214 @atom:214_b052_a052_d052_i052 } + replace{ @atom:215 @atom:215_b013_a013_d013_i013 } + replace{ @atom:216 @atom:216_b013_a013_d013_i013 } + replace{ @atom:217 @atom:217_b013_a013_d013_i013 } + replace{ @atom:218 @atom:218_b013_a013_d013_i013 } + replace{ @atom:219 @atom:219_b003_a003_d003_i003 } + replace{ @atom:220 @atom:220_b004_a004_d004_i004 } + replace{ @atom:221 @atom:221_b046_a046_d046_i046 } + replace{ @atom:222 @atom:222_b003_a003_d003_i003 } + replace{ @atom:223 @atom:223_b004_a004_d004_i004 } + replace{ @atom:224 @atom:224_b046_a046_d046_i046 } + replace{ @atom:225 @atom:225_b013_a013_d013_i013 } + replace{ @atom:226 @atom:226_b013_a013_d013_i013 } + replace{ @atom:227 @atom:227_b013_a013_d013_i013 } + replace{ @atom:228 @atom:228_b013_a013_d013_i013 } + replace{ @atom:229 @atom:229_b053_a053_d053_i053 } + replace{ @atom:230 @atom:230_b053_a053_d053_i053 } + replace{ @atom:231 @atom:231_b053_a053_d053_i053 } + replace{ @atom:232 @atom:232_b054_a054_d054_i054 } + replace{ @atom:233 @atom:233_b054_a054_d054_i054 } + replace{ @atom:234 @atom:234_b013_a013_d013_i013 } + replace{ @atom:235 @atom:235_b013_a013_d013_i013 } + replace{ @atom:236 @atom:236_b013_a013_d013_i013 } + replace{ @atom:237 @atom:237_b013_a013_d013_i013 } + replace{ @atom:238 @atom:238_b013_a013_d013_i013 } + replace{ @atom:239 @atom:239_b013_a013_d013_i013 } + replace{ @atom:240 @atom:240_b013_a013_d013_i013 } + replace{ @atom:241 @atom:241_b013_a013_d013_i013 } + replace{ @atom:242 @atom:242_b013_a013_d013_i013 } + replace{ @atom:243 @atom:243_b055_a055_d055_i055 } + replace{ @atom:244 @atom:244_b054_a054_d054_i054 } + replace{ @atom:245 @atom:245_b048_a048_d048_i048 } + replace{ @atom:246 @atom:246_b055_a055_d055_i055 } + replace{ @atom:247 @atom:247_b054_a054_d054_i054 } + replace{ @atom:248 @atom:248_b013_a013_d013_i013 } + replace{ @atom:249 @atom:249_b013_a013_d013_i013 } + replace{ @atom:250 @atom:250_b013_a013_d013_i013 } + replace{ @atom:251 @atom:251_b013_a013_d013_i013 } + replace{ @atom:252 @atom:252_b053_a053_d053_i053 } + replace{ @atom:253 @atom:253_b054_a054_d054_i054 } + replace{ @atom:254 @atom:254_b056_a056_d056_i056 } + replace{ @atom:255 @atom:255_b048_a048_d048_i048 } + replace{ @atom:256 @atom:256_b055_a055_d055_i055 } + replace{ @atom:257 @atom:257_b045_a045_d045_i045 } + replace{ @atom:258 @atom:258_b048_a048_d048_i048 } + replace{ @atom:259 @atom:259_b049_a049_d049_i049 } + replace{ @atom:260 @atom:260_b048_a048_d048_i048 } + replace{ @atom:261 @atom:261_b049_a049_d049_i049 } + replace{ @atom:262 @atom:262_b057_a057_d057_i057 } + replace{ @atom:263 @atom:263_b003_a003_d003_i003 } + replace{ @atom:264 @atom:264_b057_a057_d057_i057 } + replace{ @atom:265 @atom:265_b003_a003_d003_i003 } + replace{ @atom:266 @atom:266_b047_a047_d047_i047 } + replace{ @atom:267 @atom:267_b047_a047_d047_i047 } + replace{ @atom:268 @atom:268_b045_a045_d045_i045 } + replace{ @atom:269 @atom:269_b004_a004_d004_i004 } + replace{ @atom:270 @atom:270_b045_a045_d045_i045 } + replace{ @atom:271 @atom:271_b004_a004_d004_i004 } + replace{ @atom:272 @atom:272_b046_a046_d046_i046 } + replace{ @atom:273 @atom:273_b046_a046_d046_i046 } + replace{ @atom:274 @atom:274_b013_a013_d013_i013 } + replace{ @atom:275 @atom:275_b046_a046_d046_i046 } + replace{ @atom:276 @atom:276_b057_a057_d057_i057 } + replace{ @atom:277 @atom:277_b003_a003_d003_i003 } + replace{ @atom:278 @atom:278_b056_a056_d056_i056 } + replace{ @atom:279 @atom:279_b048_a048_d048_i048 } + replace{ @atom:280 @atom:280_b047_a047_d047_i047 } + replace{ @atom:281 @atom:281_b047_a047_d047_i047 } + replace{ @atom:282 @atom:282_b045_a045_d045_i045 } + replace{ @atom:283 @atom:283_b004_a004_d004_i004 } + replace{ @atom:284 @atom:284_b055_a055_d055_i055 } + replace{ @atom:285 @atom:285_b045_a045_d045_i045 } + replace{ @atom:286 @atom:286_b045_a045_d045_i045 } + replace{ @atom:287 @atom:287_b046_a046_d046_i046 } + replace{ @atom:288 @atom:288_b058_a058_d058_i058 } + replace{ @atom:289 @atom:289_b056_a056_d056_i056 } + replace{ @atom:290 @atom:290_b059_a059_d059_i059 } + replace{ @atom:291 @atom:291_b056_a056_d056_i056 } + replace{ @atom:292 @atom:292_b060_a060_d060_i060 } + replace{ @atom:293 @atom:293_b060_a060_d060_i060 } + replace{ @atom:294 @atom:294_b048_a048_d048_i048 } + replace{ @atom:295 @atom:295_b061_a061_d061_i061 } + replace{ @atom:296 @atom:296_b062_a062_d062_i062 } + replace{ @atom:297 @atom:297_b057_a057_d057_i057 } + replace{ @atom:298 @atom:298_b063_a063_d063_i063 } + replace{ @atom:299 @atom:299_b055_a055_d055_i055 } + replace{ @atom:300 @atom:300_b045_a045_d045_i045 } + replace{ @atom:301 @atom:301_b045_a045_d045_i045 } + replace{ @atom:302 @atom:302_b063_a063_d063_i063 } + replace{ @atom:303 @atom:303_b045_a045_d045_i045 } + replace{ @atom:304 @atom:304_b057_a057_d057_i057 } + replace{ @atom:305 @atom:305_b048_a048_d048_i048 } + replace{ @atom:306 @atom:306_b056_a056_d056_i056 } + replace{ @atom:307 @atom:307_b060_a060_d060_i060 } + replace{ @atom:308 @atom:308_b060_a060_d060_i060 } + replace{ @atom:309 @atom:309_b003_a003_d003_i003 } + replace{ @atom:310 @atom:310_b045_a045_d045_i045 } + replace{ @atom:311 @atom:311_b055_a055_d055_i055 } + replace{ @atom:312 @atom:312_b045_a045_d045_i045 } + replace{ @atom:313 @atom:313_b004_a004_d004_i004 } + replace{ @atom:314 @atom:314_b013_a013_d013_i013 } + replace{ @atom:315 @atom:315_b046_a046_d046_i046 } + replace{ @atom:316 @atom:316_b013_a013_d013_i013 } + replace{ @atom:317 @atom:317_b046_a046_d046_i046 } + replace{ @atom:318 @atom:318_b013_a013_d013_i013 } + replace{ @atom:319 @atom:319_b046_a046_d046_i046 } + replace{ @atom:320 @atom:320_b057_a057_d057_i057 } + replace{ @atom:321 @atom:321_b003_a003_d003_i003 } + replace{ @atom:322 @atom:322_b057_a057_d057_i057 } + replace{ @atom:323 @atom:323_b048_a048_d048_i048 } + replace{ @atom:324 @atom:324_b047_a047_d047_i047 } + replace{ @atom:325 @atom:325_b047_a047_d047_i047 } + replace{ @atom:326 @atom:326_b045_a045_d045_i045 } + replace{ @atom:327 @atom:327_b004_a004_d004_i004 } + replace{ @atom:328 @atom:328_b045_a045_d045_i045 } + replace{ @atom:329 @atom:329_b055_a055_d055_i055 } + replace{ @atom:330 @atom:330_b045_a045_d045_i045 } + replace{ @atom:331 @atom:331_b045_a045_d045_i045 } + replace{ @atom:332 @atom:332_b049_a049_d049_i049 } + replace{ @atom:333 @atom:333_b058_a058_d058_i058 } + replace{ @atom:334 @atom:334_b013_a013_d013_i013 } + replace{ @atom:335 @atom:335_b046_a046_d046_i046 } + replace{ @atom:336 @atom:336_b064_a064_d064_i064 } + replace{ @atom:337 @atom:337_b052_a052_d052_i052 } + replace{ @atom:338 @atom:338_b020_a020_d020_i020 } + replace{ @atom:339 @atom:339_b013_a013_d013_i013 } + replace{ @atom:340 @atom:340_b047_a047_d047_i047 } + replace{ @atom:341 @atom:341_b021_a021_d021_i021 } + replace{ @atom:342 @atom:342_b047_a047_d047_i047 } + replace{ @atom:343 @atom:343_b001_a001_d001_i001 } + replace{ @atom:344 @atom:344_b021_a021_d021_i021 } + replace{ @atom:345 @atom:345_b065_a065_d065_i065 } + replace{ @atom:346 @atom:346_b066_a066_d066_i066 } + replace{ @atom:347 @atom:347_b067_a067_d067_i067 } + replace{ @atom:348 @atom:348_b068_a068_d068_i068 } + replace{ @atom:349 @atom:349_b069_a069_d069_i069 } + replace{ @atom:350 @atom:350_b070_a070_d070_i070 } + replace{ @atom:351 @atom:351_b071_a071_d071_i071 } + replace{ @atom:352 @atom:352_b072_a072_d072_i072 } + replace{ @atom:353 @atom:353_b073_a073_d073_i073 } + replace{ @atom:354 @atom:354_b074_a074_d074_i074 } + replace{ @atom:355 @atom:355_b075_a075_d075_i075 } + replace{ @atom:356 @atom:356_b076_a076_d076_i076 } + replace{ @atom:357 @atom:357_b006_a006_d006_i006 } + replace{ @atom:358 @atom:358_b046_a046_d046_i046 } + replace{ @atom:359 @atom:359_b015_a015_d015_i015 } + replace{ @atom:360 @atom:360_b006_a006_d006_i006 } + replace{ @atom:361 @atom:361_b046_a046_d046_i046 } + replace{ @atom:362 @atom:362_b005_a005_d005_i005 } + replace{ @atom:363 @atom:363_b013_a013_d013_i013 } + replace{ @atom:364 @atom:364_b046_a046_d046_i046 } + replace{ @atom:365 @atom:365_b019_a019_d019_i019 } + replace{ @atom:366 @atom:366_b018_a018_d018_i018 } + replace{ @atom:367 @atom:367_b006_a006_d006_i006 } + replace{ @atom:368 @atom:368_b046_a046_d046_i046 } + replace{ @atom:369 @atom:369_b053_a053_d053_i053 } + replace{ @atom:370 @atom:370_b045_a045_d045_i045 } + replace{ @atom:371 @atom:371_b006_a006_d006_i006 } + replace{ @atom:372 @atom:372_b046_a046_d046_i046 } + replace{ @atom:373 @atom:373_b013_a013_d013_i013 } + replace{ @atom:374 @atom:374_b046_a046_d046_i046 } + replace{ @atom:375 @atom:375_b033_a033_d033_i033 } + replace{ @atom:376 @atom:376_b005_a005_d005_i005 } + replace{ @atom:377 @atom:377_b007_a007_d007_i007 } + replace{ @atom:378 @atom:378_b077_a077_d077_i077 } + replace{ @atom:379 @atom:379_b078_a078_d078_i078 } + replace{ @atom:380 @atom:380_b020_a020_d020_i020 } + replace{ @atom:381 @atom:381_b064_a064_d064_i064 } + replace{ @atom:382 @atom:382_b052_a052_d052_i052 } + replace{ @atom:383 @atom:383_b020_a020_d020_i020 } + replace{ @atom:384 @atom:384_b013_a013_d013_i013 } + replace{ @atom:385 @atom:385_b046_a046_d046_i046 } + replace{ @atom:386 @atom:386_b064_a064_d064_i064 } + replace{ @atom:387 @atom:387_b052_a052_d052_i052 } + replace{ @atom:388 @atom:388_b020_a020_d020_i020 } + replace{ @atom:389 @atom:389_b013_a013_d013_i013 } + replace{ @atom:390 @atom:390_b046_a046_d046_i046 } + replace{ @atom:391 @atom:391_b064_a064_d064_i064 } + replace{ @atom:392 @atom:392_b052_a052_d052_i052 } + replace{ @atom:393 @atom:393_b020_a020_d020_i020 } + replace{ @atom:394 @atom:394_b013_a013_d013_i013 } + replace{ @atom:395 @atom:395_b046_a046_d046_i046 } + replace{ @atom:396 @atom:396_b013_a013_d013_i013 } + replace{ @atom:397 @atom:397_b046_a046_d046_i046 } + replace{ @atom:398 @atom:398_b048_a048_d048_i048 } + replace{ @atom:399 @atom:399_b013_a013_d013_i013 } + replace{ @atom:400 @atom:400_b046_a046_d046_i046 } + replace{ @atom:401 @atom:401_b048_a048_d048_i048 } + replace{ @atom:402 @atom:402_b013_a013_d013_i013 } + replace{ @atom:403 @atom:403_b046_a046_d046_i046 } + replace{ @atom:404 @atom:404_b048_a048_d048_i048 } + replace{ @atom:405 @atom:405_b013_a013_d013_i013 } + replace{ @atom:406 @atom:406_b003_a003_d003_i003 } + replace{ @atom:407 @atom:407_b004_a004_d004_i004 } + replace{ @atom:408 @atom:408_b020_a020_d020_i020 } + replace{ @atom:409 @atom:409_b013_a013_d013_i013 } + replace{ @atom:410 @atom:410_b046_a046_d046_i046 } + replace{ @atom:411 @atom:411_b003_a003_d003_i003 } + replace{ @atom:412 @atom:412_b003_a003_d003_i003 } + replace{ @atom:413 @atom:413_b048_a048_d048_i048 } + replace{ @atom:414 @atom:414_b020_a020_d020_i020 } + replace{ @atom:415 @atom:415_b079_a079_d079_i079 } + replace{ @atom:416 @atom:416_b023_a023_d023_i023 } + replace{ @atom:417 @atom:417_b013_a013_d013_i013 } + replace{ @atom:418 @atom:418_b046_a046_d046_i046 } + replace{ @atom:419 @atom:419_b024_a024_d024_i024 } + replace{ @atom:420 @atom:420_b045_a045_d045_i045 } + replace{ @atom:421 @atom:421_b024_a024_d024_i024 } + replace{ @atom:422 @atom:422_b045_a045_d045_i045 } + replace{ @atom:423 @atom:423_b013_a013_d013_i013 } + replace{ @atom:424 @atom:424_b046_a046_d046_i046 } + replace{ @atom:425 @atom:425_b013_a013_d013_i013 } + replace{ @atom:426 @atom:426_b046_a046_d046_i046 } + replace{ @atom:427 @atom:427_b013_a013_d013_i013 } + replace{ @atom:428 @atom:428_b046_a046_d046_i046 } + replace{ @atom:429 @atom:429_b048_a048_d048_i048 } + replace{ @atom:430 @atom:430_b048_a048_d048_i048 } + replace{ @atom:431 @atom:431_b013_a013_d013_i013 } + replace{ @atom:432 @atom:432_b013_a013_d013_i013 } + replace{ @atom:433 @atom:433_b013_a013_d013_i013 } + replace{ @atom:434 @atom:434_b079_a079_d079_i079 } + replace{ @atom:435 @atom:435_b023_a023_d023_i023 } + replace{ @atom:436 @atom:436_b022_a022_d022_i022 } + replace{ @atom:437 @atom:437_b022_a022_d022_i022 } + replace{ @atom:438 @atom:438_b023_a023_d023_i023 } + replace{ @atom:439 @atom:439_b013_a013_d013_i013 } + replace{ @atom:440 @atom:440_b013_a013_d013_i013 } + replace{ @atom:441 @atom:441_b080_a080_d080_i080 } + replace{ @atom:442 @atom:442_b060_a060_d060_i060 } + replace{ @atom:443 @atom:443_b081_a081_d081_i081 } + replace{ @atom:444 @atom:444_b057_a057_d057_i057 } + replace{ @atom:445 @atom:445_b045_a045_d045_i045 } + replace{ @atom:446 @atom:446_b013_a013_d013_i013 } + replace{ @atom:447 @atom:447_b082_a082_d082_i082 } + replace{ @atom:448 @atom:448_b083_a083_d083_i083 } + replace{ @atom:449 @atom:449_b084_a084_d084_i084 } + replace{ @atom:450 @atom:450_b082_a082_d082_i082 } + replace{ @atom:451 @atom:451_b085_a085_d085_i085 } + replace{ @atom:452 @atom:452_b061_a061_d061_i061 } + replace{ @atom:453 @atom:453_b057_a057_d057_i057 } + replace{ @atom:454 @atom:454_b045_a045_d045_i045 } + replace{ @atom:455 @atom:455_b084_a084_d084_i084 } + replace{ @atom:456 @atom:456_b013_a013_d013_i013 } + replace{ @atom:457 @atom:457_b013_a013_d013_i013 } + replace{ @atom:458 @atom:458_b047_a047_d047_i047 } + replace{ @atom:459 @atom:459_b047_a047_d047_i047 } + replace{ @atom:460 @atom:460_b086_a086_d086_i086 } + replace{ @atom:461 @atom:461_b056_a056_d056_i056 } + replace{ @atom:462 @atom:462_b048_a048_d048_i048 } + replace{ @atom:463 @atom:463_b048_a048_d048_i048 } + replace{ @atom:464 @atom:464_b048_a048_d048_i048 } + replace{ @atom:465 @atom:465_b049_a049_d049_i049 } + replace{ @atom:466 @atom:466_b049_a049_d049_i049 } + replace{ @atom:467 @atom:467_b049_a049_d049_i049 } + replace{ @atom:468 @atom:468_b056_a056_d056_i056 } + replace{ @atom:469 @atom:469_b048_a048_d048_i048 } + replace{ @atom:470 @atom:470_b049_a049_d049_i049 } + replace{ @atom:471 @atom:471_b056_a056_d056_i056 } + replace{ @atom:472 @atom:472_b059_a059_d059_i059 } + replace{ @atom:473 @atom:473_b048_a048_d048_i048 } + replace{ @atom:474 @atom:474_b048_a048_d048_i048 } + replace{ @atom:475 @atom:475_b049_a049_d049_i049 } + replace{ @atom:476 @atom:476_b049_a049_d049_i049 } + replace{ @atom:477 @atom:477_b049_a049_d049_i049 } + replace{ @atom:478 @atom:478_b056_a056_d056_i056 } + replace{ @atom:479 @atom:479_b048_a048_d048_i048 } + replace{ @atom:480 @atom:480_b048_a048_d048_i048 } + replace{ @atom:481 @atom:481_b049_a049_d049_i049 } + replace{ @atom:482 @atom:482_b049_a049_d049_i049 } + replace{ @atom:483 @atom:483_b057_a057_d057_i057 } + replace{ @atom:484 @atom:484_b084_a084_d084_i084 } + replace{ @atom:485 @atom:485_b087_a087_d087_i087 } + replace{ @atom:486 @atom:486_b045_a045_d045_i045 } + replace{ @atom:487 @atom:487_b049_a049_d049_i049 } + replace{ @atom:488 @atom:488_b049_a049_d049_i049 } + replace{ @atom:489 @atom:489_b057_a057_d057_i057 } + replace{ @atom:490 @atom:490_b061_a061_d061_i061 } + replace{ @atom:491 @atom:491_b088_a088_d088_i088 } + replace{ @atom:492 @atom:492_b087_a087_d087_i087 } + replace{ @atom:493 @atom:493_b084_a084_d084_i084 } + replace{ @atom:494 @atom:494_b045_a045_d045_i045 } + replace{ @atom:495 @atom:495_b049_a049_d049_i049 } + replace{ @atom:496 @atom:496_b049_a049_d049_i049 } + replace{ @atom:497 @atom:497_b049_a049_d049_i049 } + replace{ @atom:498 @atom:498_b057_a057_d057_i057 } + replace{ @atom:499 @atom:499_b082_a082_d082_i082 } + replace{ @atom:500 @atom:500_b061_a061_d061_i061 } + replace{ @atom:501 @atom:501_b083_a083_d083_i083 } + replace{ @atom:502 @atom:502_b084_a084_d084_i084 } + replace{ @atom:503 @atom:503_b045_a045_d045_i045 } + replace{ @atom:504 @atom:504_b049_a049_d049_i049 } + replace{ @atom:505 @atom:505_b049_a049_d049_i049 } + replace{ @atom:506 @atom:506_b049_a049_d049_i049 } + replace{ @atom:507 @atom:507_b020_a020_d020_i020 } + replace{ @atom:508 @atom:508_b084_a084_d084_i084 } + replace{ @atom:509 @atom:509_b087_a087_d087_i087 } + replace{ @atom:510 @atom:510_b049_a049_d049_i049 } + replace{ @atom:511 @atom:511_b049_a049_d049_i049 } + replace{ @atom:512 @atom:512_b020_a020_d020_i020 } + replace{ @atom:513 @atom:513_b082_a082_d082_i082 } + replace{ @atom:514 @atom:514_b061_a061_d061_i061 } + replace{ @atom:515 @atom:515_b083_a083_d083_i083 } + replace{ @atom:516 @atom:516_b084_a084_d084_i084 } + replace{ @atom:517 @atom:517_b049_a049_d049_i049 } + replace{ @atom:518 @atom:518_b049_a049_d049_i049 } + replace{ @atom:519 @atom:519_b049_a049_d049_i049 } + replace{ @atom:520 @atom:520_b020_a020_d020_i020 } + replace{ @atom:521 @atom:521_b061_a061_d061_i061 } + replace{ @atom:522 @atom:522_b088_a088_d088_i088 } + replace{ @atom:523 @atom:523_b087_a087_d087_i087 } + replace{ @atom:524 @atom:524_b084_a084_d084_i084 } + replace{ @atom:525 @atom:525_b049_a049_d049_i049 } + replace{ @atom:526 @atom:526_b049_a049_d049_i049 } + replace{ @atom:527 @atom:527_b049_a049_d049_i049 } + replace{ @atom:528 @atom:528_b057_a057_d057_i057 } + replace{ @atom:529 @atom:529_b084_a084_d084_i084 } + replace{ @atom:530 @atom:530_b087_a087_d087_i087 } + replace{ @atom:531 @atom:531_b048_a048_d048_i048 } + replace{ @atom:532 @atom:532_b048_a048_d048_i048 } + replace{ @atom:533 @atom:533_b048_a048_d048_i048 } + replace{ @atom:534 @atom:534_b048_a048_d048_i048 } + replace{ @atom:535 @atom:535_b081_a081_d081_i081 } + replace{ @atom:536 @atom:536_b060_a060_d060_i060 } + replace{ @atom:537 @atom:537_b045_a045_d045_i045 } + replace{ @atom:538 @atom:538_b049_a049_d049_i049 } + replace{ @atom:539 @atom:539_b049_a049_d049_i049 } + replace{ @atom:540 @atom:540_b049_a049_d049_i049 } + replace{ @atom:541 @atom:541_b049_a049_d049_i049 } + replace{ @atom:542 @atom:542_b049_a049_d049_i049 } + replace{ @atom:543 @atom:543_b049_a049_d049_i049 } + replace{ @atom:544 @atom:544_b056_a056_d056_i056 } + replace{ @atom:545 @atom:545_b048_a048_d048_i048 } + replace{ @atom:546 @atom:546_b048_a048_d048_i048 } + replace{ @atom:547 @atom:547_b048_a048_d048_i048 } + replace{ @atom:548 @atom:548_b048_a048_d048_i048 } + replace{ @atom:549 @atom:549_b048_a048_d048_i048 } + replace{ @atom:550 @atom:550_b048_a048_d048_i048 } + replace{ @atom:551 @atom:551_b048_a048_d048_i048 } + replace{ @atom:552 @atom:552_b048_a048_d048_i048 } + replace{ @atom:553 @atom:553_b048_a048_d048_i048 } + replace{ @atom:554 @atom:554_b049_a049_d049_i049 } + replace{ @atom:555 @atom:555_b049_a049_d049_i049 } + replace{ @atom:556 @atom:556_b049_a049_d049_i049 } + replace{ @atom:557 @atom:557_b049_a049_d049_i049 } + replace{ @atom:558 @atom:558_b049_a049_d049_i049 } + replace{ @atom:559 @atom:559_b049_a049_d049_i049 } + replace{ @atom:560 @atom:560_b049_a049_d049_i049 } + replace{ @atom:561 @atom:561_b056_a056_d056_i056 } + replace{ @atom:562 @atom:562_b059_a059_d059_i059 } + replace{ @atom:563 @atom:563_b056_a056_d056_i056 } + replace{ @atom:564 @atom:564_b060_a060_d060_i060 } + replace{ @atom:565 @atom:565_b060_a060_d060_i060 } + replace{ @atom:566 @atom:566_b048_a048_d048_i048 } + replace{ @atom:567 @atom:567_b061_a061_d061_i061 } + replace{ @atom:568 @atom:568_b062_a062_d062_i062 } + replace{ @atom:569 @atom:569_b057_a057_d057_i057 } + replace{ @atom:570 @atom:570_b049_a049_d049_i049 } + replace{ @atom:571 @atom:571_b049_a049_d049_i049 } + replace{ @atom:572 @atom:572_b049_a049_d049_i049 } + replace{ @atom:573 @atom:573_b045_a045_d045_i045 } + replace{ @atom:574 @atom:574_b016_a016_d016_i016 } + replace{ @atom:575 @atom:575_b082_a082_d082_i082 } + replace{ @atom:576 @atom:576_b061_a061_d061_i061 } + replace{ @atom:577 @atom:577_b083_a083_d083_i083 } + replace{ @atom:578 @atom:578_b084_a084_d084_i084 } + replace{ @atom:579 @atom:579_b049_a049_d049_i049 } + replace{ @atom:580 @atom:580_b049_a049_d049_i049 } + replace{ @atom:581 @atom:581_b049_a049_d049_i049 } + replace{ @atom:582 @atom:582_b056_a056_d056_i056 } + replace{ @atom:583 @atom:583_b059_a059_d059_i059 } + replace{ @atom:584 @atom:584_b049_a049_d049_i049 } + replace{ @atom:585 @atom:585_b048_a048_d048_i048 } + replace{ @atom:586 @atom:586_b013_a013_d013_i013 } + replace{ @atom:587 @atom:587_b056_a056_d056_i056 } + replace{ @atom:588 @atom:588_b048_a048_d048_i048 } + replace{ @atom:589 @atom:589_b048_a048_d048_i048 } + replace{ @atom:590 @atom:590_b048_a048_d048_i048 } + replace{ @atom:591 @atom:591_b048_a048_d048_i048 } + replace{ @atom:592 @atom:592_b048_a048_d048_i048 } + replace{ @atom:593 @atom:593_b048_a048_d048_i048 } + replace{ @atom:594 @atom:594_b049_a049_d049_i049 } + replace{ @atom:595 @atom:595_b049_a049_d049_i049 } + replace{ @atom:596 @atom:596_b049_a049_d049_i049 } + replace{ @atom:597 @atom:597_b049_a049_d049_i049 } + replace{ @atom:598 @atom:598_b057_a057_d057_i057 } + replace{ @atom:599 @atom:599_b082_a082_d082_i082 } + replace{ @atom:600 @atom:600_b061_a061_d061_i061 } + replace{ @atom:601 @atom:601_b083_a083_d083_i083 } + replace{ @atom:602 @atom:602_b084_a084_d084_i084 } + replace{ @atom:603 @atom:603_b013_a013_d013_i013 } + replace{ @atom:604 @atom:604_b049_a049_d049_i049 } + replace{ @atom:605 @atom:605_b049_a049_d049_i049 } + replace{ @atom:606 @atom:606_b049_a049_d049_i049 } + replace{ @atom:607 @atom:607_b046_a046_d046_i046 } + replace{ @atom:608 @atom:608_b013_a013_d013_i013 } + replace{ @atom:609 @atom:609_b013_a013_d013_i013 } + replace{ @atom:610 @atom:610_b013_a013_d013_i013 } + replace{ @atom:611 @atom:611_b013_a013_d013_i013 } + replace{ @atom:612 @atom:612_b013_a013_d013_i013 } + replace{ @atom:613 @atom:613_b013_a013_d013_i013 } + replace{ @atom:614 @atom:614_b013_a013_d013_i013 } + replace{ @atom:615 @atom:615_b013_a013_d013_i013 } + replace{ @atom:616 @atom:616_b013_a013_d013_i013 } + replace{ @atom:617 @atom:617_b013_a013_d013_i013 } + replace{ @atom:618 @atom:618_b013_a013_d013_i013 } + replace{ @atom:619 @atom:619_b013_a013_d013_i013 } + replace{ @atom:620 @atom:620_b013_a013_d013_i013 } + replace{ @atom:621 @atom:621_b013_a013_d013_i013 } + replace{ @atom:622 @atom:622_b013_a013_d013_i013 } + replace{ @atom:623 @atom:623_b015_a015_d015_i015 } + replace{ @atom:624 @atom:624_b017_a017_d017_i017 } + replace{ @atom:625 @atom:625_b048_a048_d048_i048 } + replace{ @atom:626 @atom:626_b089_a089_d089_i089 } + replace{ @atom:627 @atom:627_b090_a090_d090_i090 } + replace{ @atom:628 @atom:628_b091_a091_d091_i091 } + replace{ @atom:629 @atom:629_b091_a091_d091_i091 } + replace{ @atom:630 @atom:630_b013_a013_d013_i013 } + replace{ @atom:631 @atom:631_b086_a086_d086_i086 } + replace{ @atom:632 @atom:632_b086_a086_d086_i086 } + replace{ @atom:633 @atom:633_b086_a086_d086_i086 } + replace{ @atom:634 @atom:634_b086_a086_d086_i086 } + replace{ @atom:635 @atom:635_b086_a086_d086_i086 } + replace{ @atom:636 @atom:636_b086_a086_d086_i086 } + replace{ @atom:637 @atom:637_b016_a016_d016_i016 } + replace{ @atom:638 @atom:638_b092_a092_d092_i092 } + replace{ @atom:639 @atom:639_b093_a093_d093_i093 } + replace{ @atom:640 @atom:640_b094_a094_d094_i094 } + replace{ @atom:641 @atom:641_b095_a095_d095_i095 } + replace{ @atom:642 @atom:642_b013_a013_d013_i013 } + replace{ @atom:643 @atom:643_b046_a046_d046_i046 } + replace{ @atom:644 @atom:644_b096_a096_d096_i096 } + replace{ @atom:645 @atom:645_b097_a097_d097_i097 } + replace{ @atom:646 @atom:646_b098_a098_d098_i098 } + replace{ @atom:647 @atom:647_b099_a099_d099_i099 } replace{ @atom:648 @atom:648_b100_a100_d100_i100 } - replace{ @atom:649 @atom:649_b47_a47_d47_i47 } - replace{ @atom:650 @atom:650_b21_a21_d21_i21 } - replace{ @atom:651 @atom:651_b46_a46_d46_i46 } - replace{ @atom:652 @atom:652_b91_a91_d91_i91 } - replace{ @atom:653 @atom:653_b91_a91_d91_i91 } - replace{ @atom:654 @atom:654_b91_a91_d91_i91 } - replace{ @atom:655 @atom:655_b48_a48_d48_i48 } - replace{ @atom:656 @atom:656_b49_a49_d49_i49 } - replace{ @atom:657 @atom:657_b48_a48_d48_i48 } - replace{ @atom:658 @atom:658_b49_a49_d49_i49 } - replace{ @atom:659 @atom:659_b48_a48_d48_i48 } - replace{ @atom:660 @atom:660_b1_a1_d1_i1 } - replace{ @atom:661 @atom:661_b48_a48_d48_i48 } - replace{ @atom:662 @atom:662_b1_a1_d1_i1 } - replace{ @atom:663 @atom:663_b65_a65_d65_i65 } - replace{ @atom:664 @atom:664_b2_a2_d2_i2 } - replace{ @atom:665 @atom:665_b48_a48_d48_i48 } - replace{ @atom:666 @atom:666_b13_a13_d13_i13 } - replace{ @atom:667 @atom:667_b1_a1_d1_i1 } - replace{ @atom:668 @atom:668_b48_a48_d48_i48 } - replace{ @atom:669 @atom:669_b1_a1_d1_i1 } - replace{ @atom:670 @atom:670_b48_a48_d48_i48 } - replace{ @atom:671 @atom:671_b65_a65_d65_i65 } - replace{ @atom:672 @atom:672_b48_a48_d48_i48 } - replace{ @atom:673 @atom:673_b66_a66_d66_i66 } - replace{ @atom:674 @atom:674_b91_a91_d91_i91 } - replace{ @atom:675 @atom:675_b15_a15_d15_i15 } - replace{ @atom:676 @atom:676_b48_a48_d48_i48 } - replace{ @atom:677 @atom:677_b48_a48_d48_i48 } - replace{ @atom:678 @atom:678_b48_a48_d48_i48 } - replace{ @atom:679 @atom:679_b48_a48_d48_i48 } - replace{ @atom:680 @atom:680_b48_a48_d48_i48 } - replace{ @atom:681 @atom:681_b49_a49_d49_i49 } - replace{ @atom:682 @atom:682_b49_a49_d49_i49 } - replace{ @atom:683 @atom:683_b48_a48_d48_i48 } - replace{ @atom:684 @atom:684_b55_a55_d55_i55 } - replace{ @atom:685 @atom:685_b45_a45_d45_i45 } - replace{ @atom:686 @atom:686_b45_a45_d45_i45 } - replace{ @atom:687 @atom:687_b49_a49_d49_i49 } - replace{ @atom:688 @atom:688_b13_a13_d13_i13 } - replace{ @atom:689 @atom:689_b13_a13_d13_i13 } + replace{ @atom:649 @atom:649_b047_a047_d047_i047 } + replace{ @atom:650 @atom:650_b021_a021_d021_i021 } + replace{ @atom:651 @atom:651_b046_a046_d046_i046 } + replace{ @atom:652 @atom:652_b091_a091_d091_i091 } + replace{ @atom:653 @atom:653_b091_a091_d091_i091 } + replace{ @atom:654 @atom:654_b091_a091_d091_i091 } + replace{ @atom:655 @atom:655_b048_a048_d048_i048 } + replace{ @atom:656 @atom:656_b049_a049_d049_i049 } + replace{ @atom:657 @atom:657_b048_a048_d048_i048 } + replace{ @atom:658 @atom:658_b049_a049_d049_i049 } + replace{ @atom:659 @atom:659_b048_a048_d048_i048 } + replace{ @atom:660 @atom:660_b001_a001_d001_i001 } + replace{ @atom:661 @atom:661_b048_a048_d048_i048 } + replace{ @atom:662 @atom:662_b001_a001_d001_i001 } + replace{ @atom:663 @atom:663_b065_a065_d065_i065 } + replace{ @atom:664 @atom:664_b002_a002_d002_i002 } + replace{ @atom:665 @atom:665_b048_a048_d048_i048 } + replace{ @atom:666 @atom:666_b013_a013_d013_i013 } + replace{ @atom:667 @atom:667_b001_a001_d001_i001 } + replace{ @atom:668 @atom:668_b048_a048_d048_i048 } + replace{ @atom:669 @atom:669_b001_a001_d001_i001 } + replace{ @atom:670 @atom:670_b048_a048_d048_i048 } + replace{ @atom:671 @atom:671_b065_a065_d065_i065 } + replace{ @atom:672 @atom:672_b048_a048_d048_i048 } + replace{ @atom:673 @atom:673_b066_a066_d066_i066 } + replace{ @atom:674 @atom:674_b091_a091_d091_i091 } + replace{ @atom:675 @atom:675_b015_a015_d015_i015 } + replace{ @atom:676 @atom:676_b048_a048_d048_i048 } + replace{ @atom:677 @atom:677_b048_a048_d048_i048 } + replace{ @atom:678 @atom:678_b048_a048_d048_i048 } + replace{ @atom:679 @atom:679_b048_a048_d048_i048 } + replace{ @atom:680 @atom:680_b048_a048_d048_i048 } + replace{ @atom:681 @atom:681_b049_a049_d049_i049 } + replace{ @atom:682 @atom:682_b049_a049_d049_i049 } + replace{ @atom:683 @atom:683_b048_a048_d048_i048 } + replace{ @atom:684 @atom:684_b055_a055_d055_i055 } + replace{ @atom:685 @atom:685_b045_a045_d045_i045 } + replace{ @atom:686 @atom:686_b045_a045_d045_i045 } + replace{ @atom:687 @atom:687_b049_a049_d049_i049 } + replace{ @atom:688 @atom:688_b013_a013_d013_i013 } + replace{ @atom:689 @atom:689_b013_a013_d013_i013 } replace{ @atom:690 @atom:690_b101_a101_d101_i101 } - replace{ @atom:691 @atom:691_b56_a56_d56_i56 } + replace{ @atom:691 @atom:691_b056_a056_d056_i056 } replace{ @atom:692 @atom:692_b101_a101_d101_i101 } - replace{ @atom:693 @atom:693_b48_a48_d48_i48 } - replace{ @atom:694 @atom:694_b18_a18_d18_i18 } - replace{ @atom:695 @atom:695_b19_a19_d19_i19 } - replace{ @atom:696 @atom:696_b13_a13_d13_i13 } - replace{ @atom:697 @atom:697_b13_a13_d13_i13 } - replace{ @atom:698 @atom:698_b13_a13_d13_i13 } - replace{ @atom:699 @atom:699_b13_a13_d13_i13 } - replace{ @atom:700 @atom:700_b46_a46_d46_i46 } + replace{ @atom:693 @atom:693_b048_a048_d048_i048 } + replace{ @atom:694 @atom:694_b018_a018_d018_i018 } + replace{ @atom:695 @atom:695_b019_a019_d019_i019 } + replace{ @atom:696 @atom:696_b013_a013_d013_i013 } + replace{ @atom:697 @atom:697_b013_a013_d013_i013 } + replace{ @atom:698 @atom:698_b013_a013_d013_i013 } + replace{ @atom:699 @atom:699_b013_a013_d013_i013 } + replace{ @atom:700 @atom:700_b046_a046_d046_i046 } replace{ @atom:701 @atom:701_b102_a102_d102_i102 } replace{ @atom:702 @atom:702_b103_a103_d103_i103 } - replace{ @atom:703 @atom:703_b13_a13_d13_i13 } - replace{ @atom:704 @atom:704_b46_a46_d46_i46 } - replace{ @atom:705 @atom:705_b13_a13_d13_i13 } - replace{ @atom:706 @atom:706_b13_a13_d13_i13 } - replace{ @atom:707 @atom:707_b13_a13_d13_i13 } + replace{ @atom:703 @atom:703_b013_a013_d013_i013 } + replace{ @atom:704 @atom:704_b046_a046_d046_i046 } + replace{ @atom:705 @atom:705_b013_a013_d013_i013 } + replace{ @atom:706 @atom:706_b013_a013_d013_i013 } + replace{ @atom:707 @atom:707_b013_a013_d013_i013 } replace{ @atom:708 @atom:708_b102_a102_d102_i102 } - replace{ @atom:709 @atom:709_b48_a48_d48_i48 } - replace{ @atom:710 @atom:710_b13_a13_d13_i13 } - replace{ @atom:711 @atom:711_b56_a56_d56_i56 } - replace{ @atom:712 @atom:712_b4_a4_d4_i4 } - replace{ @atom:713 @atom:713_b3_a3_d3_i3 } - replace{ @atom:714 @atom:714_b20_a20_d20_i20 } - replace{ @atom:715 @atom:715_b13_a13_d13_i13 } - replace{ @atom:716 @atom:716_b13_a13_d13_i13 } - replace{ @atom:717 @atom:717_b13_a13_d13_i13 } - replace{ @atom:718 @atom:718_b46_a46_d46_i46 } - replace{ @atom:719 @atom:719_b46_a46_d46_i46 } - replace{ @atom:720 @atom:720_b46_a46_d46_i46 } - replace{ @atom:721 @atom:721_b20_a20_d20_i20 } + replace{ @atom:709 @atom:709_b048_a048_d048_i048 } + replace{ @atom:710 @atom:710_b013_a013_d013_i013 } + replace{ @atom:711 @atom:711_b056_a056_d056_i056 } + replace{ @atom:712 @atom:712_b004_a004_d004_i004 } + replace{ @atom:713 @atom:713_b003_a003_d003_i003 } + replace{ @atom:714 @atom:714_b020_a020_d020_i020 } + replace{ @atom:715 @atom:715_b013_a013_d013_i013 } + replace{ @atom:716 @atom:716_b013_a013_d013_i013 } + replace{ @atom:717 @atom:717_b013_a013_d013_i013 } + replace{ @atom:718 @atom:718_b046_a046_d046_i046 } + replace{ @atom:719 @atom:719_b046_a046_d046_i046 } + replace{ @atom:720 @atom:720_b046_a046_d046_i046 } + replace{ @atom:721 @atom:721_b020_a020_d020_i020 } replace{ @atom:722 @atom:722_b104_a104_d104_i104 } - replace{ @atom:723 @atom:723_b13_a13_d13_i13 } - replace{ @atom:724 @atom:724_b13_a13_d13_i13 } - replace{ @atom:725 @atom:725_b46_a46_d46_i46 } - replace{ @atom:726 @atom:726_b64_a64_d64_i64 } - replace{ @atom:727 @atom:727_b1_a1_d1_i1 } - replace{ @atom:728 @atom:728_b24_a24_d24_i24 } - replace{ @atom:729 @atom:729_b4_a4_d4_i4 } - replace{ @atom:730 @atom:730_b44_a44_d44_i44 } - replace{ @atom:731 @atom:731_b44_a44_d44_i44 } - replace{ @atom:732 @atom:732_b44_a44_d44_i44 } - replace{ @atom:733 @atom:733_b13_a13_d13_i13 } - replace{ @atom:734 @atom:734_b13_a13_d13_i13 } - replace{ @atom:735 @atom:735_b13_a13_d13_i13 } - replace{ @atom:736 @atom:736_b13_a13_d13_i13 } - replace{ @atom:737 @atom:737_b13_a13_d13_i13 } - replace{ @atom:738 @atom:738_b13_a13_d13_i13 } - replace{ @atom:739 @atom:739_b45_a45_d45_i45 } - replace{ @atom:740 @atom:740_b45_a45_d45_i45 } - replace{ @atom:741 @atom:741_b46_a46_d46_i46 } - replace{ @atom:742 @atom:742_b13_a13_d13_i13 } - replace{ @atom:743 @atom:743_b13_a13_d13_i13 } - replace{ @atom:744 @atom:744_b13_a13_d13_i13 } - replace{ @atom:745 @atom:745_b13_a13_d13_i13 } - replace{ @atom:746 @atom:746_b48_a48_d48_i48 } - replace{ @atom:747 @atom:747_b48_a48_d48_i48 } - replace{ @atom:748 @atom:748_b48_a48_d48_i48 } - replace{ @atom:749 @atom:749_b13_a13_d13_i13 } - replace{ @atom:750 @atom:750_b13_a13_d13_i13 } - replace{ @atom:751 @atom:751_b13_a13_d13_i13 } - replace{ @atom:752 @atom:752_b13_a13_d13_i13 } - replace{ @atom:753 @atom:753_b13_a13_d13_i13 } - replace{ @atom:754 @atom:754_b13_a13_d13_i13 } - replace{ @atom:755 @atom:755_b19_a19_d19_i19 } - replace{ @atom:756 @atom:756_b46_a46_d46_i46 } - replace{ @atom:757 @atom:757_b19_a19_d19_i19 } - replace{ @atom:758 @atom:758_b19_a19_d19_i19 } - replace{ @atom:759 @atom:759_b19_a19_d19_i19 } - replace{ @atom:760 @atom:760_b46_a46_d46_i46 } - replace{ @atom:761 @atom:761_b51_a51_d51_i51 } - replace{ @atom:762 @atom:762_b51_a51_d51_i51 } - replace{ @atom:763 @atom:763_b51_a51_d51_i51 } - replace{ @atom:764 @atom:764_b5_a5_d5_i5 } - replace{ @atom:765 @atom:765_b7_a7_d7_i7 } + replace{ @atom:723 @atom:723_b013_a013_d013_i013 } + replace{ @atom:724 @atom:724_b013_a013_d013_i013 } + replace{ @atom:725 @atom:725_b046_a046_d046_i046 } + replace{ @atom:726 @atom:726_b064_a064_d064_i064 } + replace{ @atom:727 @atom:727_b001_a001_d001_i001 } + replace{ @atom:728 @atom:728_b024_a024_d024_i024 } + replace{ @atom:729 @atom:729_b004_a004_d004_i004 } + replace{ @atom:730 @atom:730_b044_a044_d044_i044 } + replace{ @atom:731 @atom:731_b044_a044_d044_i044 } + replace{ @atom:732 @atom:732_b044_a044_d044_i044 } + replace{ @atom:733 @atom:733_b013_a013_d013_i013 } + replace{ @atom:734 @atom:734_b013_a013_d013_i013 } + replace{ @atom:735 @atom:735_b013_a013_d013_i013 } + replace{ @atom:736 @atom:736_b013_a013_d013_i013 } + replace{ @atom:737 @atom:737_b013_a013_d013_i013 } + replace{ @atom:738 @atom:738_b013_a013_d013_i013 } + replace{ @atom:739 @atom:739_b045_a045_d045_i045 } + replace{ @atom:740 @atom:740_b045_a045_d045_i045 } + replace{ @atom:741 @atom:741_b046_a046_d046_i046 } + replace{ @atom:742 @atom:742_b013_a013_d013_i013 } + replace{ @atom:743 @atom:743_b013_a013_d013_i013 } + replace{ @atom:744 @atom:744_b013_a013_d013_i013 } + replace{ @atom:745 @atom:745_b013_a013_d013_i013 } + replace{ @atom:746 @atom:746_b048_a048_d048_i048 } + replace{ @atom:747 @atom:747_b048_a048_d048_i048 } + replace{ @atom:748 @atom:748_b048_a048_d048_i048 } + replace{ @atom:749 @atom:749_b013_a013_d013_i013 } + replace{ @atom:750 @atom:750_b013_a013_d013_i013 } + replace{ @atom:751 @atom:751_b013_a013_d013_i013 } + replace{ @atom:752 @atom:752_b013_a013_d013_i013 } + replace{ @atom:753 @atom:753_b013_a013_d013_i013 } + replace{ @atom:754 @atom:754_b013_a013_d013_i013 } + replace{ @atom:755 @atom:755_b019_a019_d019_i019 } + replace{ @atom:756 @atom:756_b046_a046_d046_i046 } + replace{ @atom:757 @atom:757_b019_a019_d019_i019 } + replace{ @atom:758 @atom:758_b019_a019_d019_i019 } + replace{ @atom:759 @atom:759_b019_a019_d019_i019 } + replace{ @atom:760 @atom:760_b046_a046_d046_i046 } + replace{ @atom:761 @atom:761_b051_a051_d051_i051 } + replace{ @atom:762 @atom:762_b051_a051_d051_i051 } + replace{ @atom:763 @atom:763_b051_a051_d051_i051 } + replace{ @atom:764 @atom:764_b005_a005_d005_i005 } + replace{ @atom:765 @atom:765_b007_a007_d007_i007 } replace{ @atom:766 @atom:766_b105_a105_d105_i105 } replace{ @atom:767 @atom:767_b105_a105_d105_i105 } replace{ @atom:768 @atom:768_b105_a105_d105_i105 } - replace{ @atom:769 @atom:769_b19_a19_d19_i19 } - replace{ @atom:770 @atom:770_b53_a53_d53_i53 } - replace{ @atom:771 @atom:771_b54_a54_d54_i54 } - replace{ @atom:772 @atom:772_b13_a13_d13_i13 } - replace{ @atom:773 @atom:773_b13_a13_d13_i13 } - replace{ @atom:774 @atom:774_b13_a13_d13_i13 } - replace{ @atom:775 @atom:775_b13_a13_d13_i13 } - replace{ @atom:776 @atom:776_b84_a84_d84_i84 } - replace{ @atom:777 @atom:777_b87_a87_d87_i87 } - replace{ @atom:778 @atom:778_b86_a86_d86_i86 } - replace{ @atom:779 @atom:779_b86_a86_d86_i86 } - replace{ @atom:780 @atom:780_b46_a46_d46_i46 } - replace{ @atom:781 @atom:781_b13_a13_d13_i13 } - replace{ @atom:782 @atom:782_b3_a3_d3_i3 } - replace{ @atom:783 @atom:783_b53_a53_d53_i53 } - replace{ @atom:784 @atom:784_b52_a52_d52_i52 } - replace{ @atom:785 @atom:785_b54_a54_d54_i54 } - replace{ @atom:786 @atom:786_b1_a1_d1_i1 } - replace{ @atom:787 @atom:787_b13_a13_d13_i13 } - replace{ @atom:788 @atom:788_b46_a46_d46_i46 } - replace{ @atom:789 @atom:789_b13_a13_d13_i13 } - replace{ @atom:790 @atom:790_b13_a13_d13_i13 } - replace{ @atom:791 @atom:791_b13_a13_d13_i13 } - replace{ @atom:792 @atom:792_b13_a13_d13_i13 } - replace{ @atom:793 @atom:793_b13_a13_d13_i13 } - replace{ @atom:794 @atom:794_b13_a13_d13_i13 } - replace{ @atom:795 @atom:795_b1_a1_d1_i1 } - replace{ @atom:796 @atom:796_b13_a13_d13_i13 } - replace{ @atom:797 @atom:797_b46_a46_d46_i46 } - replace{ @atom:798 @atom:798_b13_a13_d13_i13 } - replace{ @atom:799 @atom:799_b13_a13_d13_i13 } - replace{ @atom:800 @atom:800_b21_a21_d21_i21 } - replace{ @atom:801 @atom:801_b13_a13_d13_i13 } - replace{ @atom:802 @atom:802_b46_a46_d46_i46 } - replace{ @atom:803 @atom:803_b13_a13_d13_i13 } - replace{ @atom:804 @atom:804_b13_a13_d13_i13 } - replace{ @atom:805 @atom:805_b65_a65_d65_i65 } - replace{ @atom:806 @atom:806_b13_a13_d13_i13 } - replace{ @atom:807 @atom:807_b46_a46_d46_i46 } - replace{ @atom:808 @atom:808_b13_a13_d13_i13 } - replace{ @atom:809 @atom:809_b13_a13_d13_i13 } - replace{ @atom:810 @atom:810_b1_a1_d1_i1 } - replace{ @atom:811 @atom:811_b21_a21_d21_i21 } - replace{ @atom:812 @atom:812_b65_a65_d65_i65 } - replace{ @atom:813 @atom:813_b48_a48_d48_i48 } - replace{ @atom:814 @atom:814_b20_a20_d20_i20 } - replace{ @atom:815 @atom:815_b13_a13_d13_i13 } - replace{ @atom:816 @atom:816_b1_a1_d1_i1 } - replace{ @atom:817 @atom:817_b24_a24_d24_i24 } - replace{ @atom:818 @atom:818_b48_a48_d48_i48 } - replace{ @atom:819 @atom:819_b13_a13_d13_i13 } - replace{ @atom:820 @atom:820_b3_a3_d3_i3 } - replace{ @atom:821 @atom:821_b3_a3_d3_i3 } - replace{ @atom:822 @atom:822_b4_a4_d4_i4 } - replace{ @atom:823 @atom:823_b24_a24_d24_i24 } - replace{ @atom:824 @atom:824_b45_a45_d45_i45 } - replace{ @atom:825 @atom:825_b5_a5_d5_i5 } - replace{ @atom:826 @atom:826_b7_a7_d7_i7 } - replace{ @atom:827 @atom:827_b13_a13_d13_i13 } - replace{ @atom:828 @atom:828_b13_a13_d13_i13 } - replace{ @atom:829 @atom:829_b86_a86_d86_i86 } - replace{ @atom:830 @atom:830_b86_a86_d86_i86 } - replace{ @atom:831 @atom:831_b86_a86_d86_i86 } - replace{ @atom:832 @atom:832_b86_a86_d86_i86 } - replace{ @atom:833 @atom:833_b48_a48_d48_i48 } + replace{ @atom:769 @atom:769_b019_a019_d019_i019 } + replace{ @atom:770 @atom:770_b053_a053_d053_i053 } + replace{ @atom:771 @atom:771_b054_a054_d054_i054 } + replace{ @atom:772 @atom:772_b013_a013_d013_i013 } + replace{ @atom:773 @atom:773_b013_a013_d013_i013 } + replace{ @atom:774 @atom:774_b013_a013_d013_i013 } + replace{ @atom:775 @atom:775_b013_a013_d013_i013 } + replace{ @atom:776 @atom:776_b084_a084_d084_i084 } + replace{ @atom:777 @atom:777_b087_a087_d087_i087 } + replace{ @atom:778 @atom:778_b086_a086_d086_i086 } + replace{ @atom:779 @atom:779_b086_a086_d086_i086 } + replace{ @atom:780 @atom:780_b046_a046_d046_i046 } + replace{ @atom:781 @atom:781_b013_a013_d013_i013 } + replace{ @atom:782 @atom:782_b003_a003_d003_i003 } + replace{ @atom:783 @atom:783_b053_a053_d053_i053 } + replace{ @atom:784 @atom:784_b052_a052_d052_i052 } + replace{ @atom:785 @atom:785_b054_a054_d054_i054 } + replace{ @atom:786 @atom:786_b001_a001_d001_i001 } + replace{ @atom:787 @atom:787_b013_a013_d013_i013 } + replace{ @atom:788 @atom:788_b046_a046_d046_i046 } + replace{ @atom:789 @atom:789_b013_a013_d013_i013 } + replace{ @atom:790 @atom:790_b013_a013_d013_i013 } + replace{ @atom:791 @atom:791_b013_a013_d013_i013 } + replace{ @atom:792 @atom:792_b013_a013_d013_i013 } + replace{ @atom:793 @atom:793_b013_a013_d013_i013 } + replace{ @atom:794 @atom:794_b013_a013_d013_i013 } + replace{ @atom:795 @atom:795_b001_a001_d001_i001 } + replace{ @atom:796 @atom:796_b013_a013_d013_i013 } + replace{ @atom:797 @atom:797_b046_a046_d046_i046 } + replace{ @atom:798 @atom:798_b013_a013_d013_i013 } + replace{ @atom:799 @atom:799_b013_a013_d013_i013 } + replace{ @atom:800 @atom:800_b021_a021_d021_i021 } + replace{ @atom:801 @atom:801_b013_a013_d013_i013 } + replace{ @atom:802 @atom:802_b046_a046_d046_i046 } + replace{ @atom:803 @atom:803_b013_a013_d013_i013 } + replace{ @atom:804 @atom:804_b013_a013_d013_i013 } + replace{ @atom:805 @atom:805_b065_a065_d065_i065 } + replace{ @atom:806 @atom:806_b013_a013_d013_i013 } + replace{ @atom:807 @atom:807_b046_a046_d046_i046 } + replace{ @atom:808 @atom:808_b013_a013_d013_i013 } + replace{ @atom:809 @atom:809_b013_a013_d013_i013 } + replace{ @atom:810 @atom:810_b001_a001_d001_i001 } + replace{ @atom:811 @atom:811_b021_a021_d021_i021 } + replace{ @atom:812 @atom:812_b065_a065_d065_i065 } + replace{ @atom:813 @atom:813_b048_a048_d048_i048 } + replace{ @atom:814 @atom:814_b020_a020_d020_i020 } + replace{ @atom:815 @atom:815_b013_a013_d013_i013 } + replace{ @atom:816 @atom:816_b001_a001_d001_i001 } + replace{ @atom:817 @atom:817_b024_a024_d024_i024 } + replace{ @atom:818 @atom:818_b048_a048_d048_i048 } + replace{ @atom:819 @atom:819_b013_a013_d013_i013 } + replace{ @atom:820 @atom:820_b003_a003_d003_i003 } + replace{ @atom:821 @atom:821_b003_a003_d003_i003 } + replace{ @atom:822 @atom:822_b004_a004_d004_i004 } + replace{ @atom:823 @atom:823_b024_a024_d024_i024 } + replace{ @atom:824 @atom:824_b045_a045_d045_i045 } + replace{ @atom:825 @atom:825_b005_a005_d005_i005 } + replace{ @atom:826 @atom:826_b007_a007_d007_i007 } + replace{ @atom:827 @atom:827_b013_a013_d013_i013 } + replace{ @atom:828 @atom:828_b013_a013_d013_i013 } + replace{ @atom:829 @atom:829_b086_a086_d086_i086 } + replace{ @atom:830 @atom:830_b086_a086_d086_i086 } + replace{ @atom:831 @atom:831_b086_a086_d086_i086 } + replace{ @atom:832 @atom:832_b086_a086_d086_i086 } + replace{ @atom:833 @atom:833_b048_a048_d048_i048 } replace{ @atom:834 @atom:834_b106_a106_d106_i106 } - replace{ @atom:835 @atom:835_b13_a13_d13_i13 } - replace{ @atom:836 @atom:836_b13_a13_d13_i13 } - replace{ @atom:837 @atom:837_b13_a13_d13_i13 } - replace{ @atom:838 @atom:838_b66_a66_d66_i66 } - replace{ @atom:839 @atom:839_b46_a46_d46_i46 } - replace{ @atom:840 @atom:840_b24_a24_d24_i24 } - replace{ @atom:841 @atom:841_b48_a48_d48_i48 } - replace{ @atom:842 @atom:842_b48_a48_d48_i48 } - replace{ @atom:843 @atom:843_b24_a24_d24_i24 } - replace{ @atom:844 @atom:844_b48_a48_d48_i48 } - replace{ @atom:845 @atom:845_b3_a3_d3_i3 } - replace{ @atom:846 @atom:846_b4_a4_d4_i4 } + replace{ @atom:835 @atom:835_b013_a013_d013_i013 } + replace{ @atom:836 @atom:836_b013_a013_d013_i013 } + replace{ @atom:837 @atom:837_b013_a013_d013_i013 } + replace{ @atom:838 @atom:838_b066_a066_d066_i066 } + replace{ @atom:839 @atom:839_b046_a046_d046_i046 } + replace{ @atom:840 @atom:840_b024_a024_d024_i024 } + replace{ @atom:841 @atom:841_b048_a048_d048_i048 } + replace{ @atom:842 @atom:842_b048_a048_d048_i048 } + replace{ @atom:843 @atom:843_b024_a024_d024_i024 } + replace{ @atom:844 @atom:844_b048_a048_d048_i048 } + replace{ @atom:845 @atom:845_b003_a003_d003_i003 } + replace{ @atom:846 @atom:846_b004_a004_d004_i004 } replace{ @atom:847 @atom:847_b107_a107_d107_i107 } - replace{ @atom:848 @atom:848_b13_a13_d13_i13 } - replace{ @atom:849 @atom:849_b13_a13_d13_i13 } - replace{ @atom:850 @atom:850_b13_a13_d13_i13 } - replace{ @atom:851 @atom:851_b13_a13_d13_i13 } - replace{ @atom:852 @atom:852_b46_a46_d46_i46 } - replace{ @atom:853 @atom:853_b3_a3_d3_i3 } - replace{ @atom:854 @atom:854_b4_a4_d4_i4 } - replace{ @atom:855 @atom:855_b46_a46_d46_i46 } - replace{ @atom:856 @atom:856_b13_a13_d13_i13 } - replace{ @atom:857 @atom:857_b13_a13_d13_i13 } - replace{ @atom:858 @atom:858_b13_a13_d13_i13 } - replace{ @atom:859 @atom:859_b13_a13_d13_i13 } - replace{ @atom:860 @atom:860_b13_a13_d13_i13 } - replace{ @atom:861 @atom:861_b13_a13_d13_i13 } - replace{ @atom:862 @atom:862_b13_a13_d13_i13 } - replace{ @atom:863 @atom:863_b13_a13_d13_i13 } - replace{ @atom:864 @atom:864_b13_a13_d13_i13 } - replace{ @atom:865 @atom:865_b13_a13_d13_i13 } + replace{ @atom:848 @atom:848_b013_a013_d013_i013 } + replace{ @atom:849 @atom:849_b013_a013_d013_i013 } + replace{ @atom:850 @atom:850_b013_a013_d013_i013 } + replace{ @atom:851 @atom:851_b013_a013_d013_i013 } + replace{ @atom:852 @atom:852_b046_a046_d046_i046 } + replace{ @atom:853 @atom:853_b003_a003_d003_i003 } + replace{ @atom:854 @atom:854_b004_a004_d004_i004 } + replace{ @atom:855 @atom:855_b046_a046_d046_i046 } + replace{ @atom:856 @atom:856_b013_a013_d013_i013 } + replace{ @atom:857 @atom:857_b013_a013_d013_i013 } + replace{ @atom:858 @atom:858_b013_a013_d013_i013 } + replace{ @atom:859 @atom:859_b013_a013_d013_i013 } + replace{ @atom:860 @atom:860_b013_a013_d013_i013 } + replace{ @atom:861 @atom:861_b013_a013_d013_i013 } + replace{ @atom:862 @atom:862_b013_a013_d013_i013 } + replace{ @atom:863 @atom:863_b013_a013_d013_i013 } + replace{ @atom:864 @atom:864_b013_a013_d013_i013 } + replace{ @atom:865 @atom:865_b013_a013_d013_i013 } replace{ @atom:866 @atom:866_b108_a108_d108_i108 } replace{ @atom:867 @atom:867_b108_a108_d108_i108 } replace{ @atom:868 @atom:868_b108_a108_d108_i108 } replace{ @atom:869 @atom:869_b108_a108_d108_i108 } - replace{ @atom:870 @atom:870_b45_a45_d45_i45 } - replace{ @atom:871 @atom:871_b13_a13_d13_i13 } - replace{ @atom:872 @atom:872_b13_a13_d13_i13 } - replace{ @atom:873 @atom:873_b13_a13_d13_i13 } - replace{ @atom:874 @atom:874_b13_a13_d13_i13 } - replace{ @atom:875 @atom:875_b1_a1_d1_i1 } - replace{ @atom:876 @atom:876_b21_a21_d21_i21 } - replace{ @atom:877 @atom:877_b65_a65_d65_i65 } - replace{ @atom:878 @atom:878_b66_a66_d66_i66 } - replace{ @atom:879 @atom:879_b68_a68_d68_i68 } - replace{ @atom:880 @atom:880_b69_a69_d69_i69 } - replace{ @atom:881 @atom:881_b70_a70_d70_i70 } - replace{ @atom:882 @atom:882_b71_a71_d71_i71 } - replace{ @atom:883 @atom:883_b72_a72_d72_i72 } - replace{ @atom:884 @atom:884_b73_a73_d73_i73 } - replace{ @atom:885 @atom:885_b74_a74_d74_i74 } - replace{ @atom:886 @atom:886_b75_a75_d75_i75 } - replace{ @atom:887 @atom:887_b76_a76_d76_i76 } - replace{ @atom:888 @atom:888_b13_a13_d13_i13 } - replace{ @atom:889 @atom:889_b13_a13_d13_i13 } - replace{ @atom:890 @atom:890_b13_a13_d13_i13 } - replace{ @atom:891 @atom:891_b13_a13_d13_i13 } - replace{ @atom:892 @atom:892_b46_a46_d46_i46 } - replace{ @atom:893 @atom:893_b53_a53_d53_i53 } - replace{ @atom:894 @atom:894_b48_a48_d48_i48 } - replace{ @atom:895 @atom:895_b53_a53_d53_i53 } - replace{ @atom:896 @atom:896_b48_a48_d48_i48 } + replace{ @atom:870 @atom:870_b045_a045_d045_i045 } + replace{ @atom:871 @atom:871_b013_a013_d013_i013 } + replace{ @atom:872 @atom:872_b013_a013_d013_i013 } + replace{ @atom:873 @atom:873_b013_a013_d013_i013 } + replace{ @atom:874 @atom:874_b013_a013_d013_i013 } + replace{ @atom:875 @atom:875_b001_a001_d001_i001 } + replace{ @atom:876 @atom:876_b021_a021_d021_i021 } + replace{ @atom:877 @atom:877_b065_a065_d065_i065 } + replace{ @atom:878 @atom:878_b066_a066_d066_i066 } + replace{ @atom:879 @atom:879_b068_a068_d068_i068 } + replace{ @atom:880 @atom:880_b069_a069_d069_i069 } + replace{ @atom:881 @atom:881_b070_a070_d070_i070 } + replace{ @atom:882 @atom:882_b071_a071_d071_i071 } + replace{ @atom:883 @atom:883_b072_a072_d072_i072 } + replace{ @atom:884 @atom:884_b073_a073_d073_i073 } + replace{ @atom:885 @atom:885_b074_a074_d074_i074 } + replace{ @atom:886 @atom:886_b075_a075_d075_i075 } + replace{ @atom:887 @atom:887_b076_a076_d076_i076 } + replace{ @atom:888 @atom:888_b013_a013_d013_i013 } + replace{ @atom:889 @atom:889_b013_a013_d013_i013 } + replace{ @atom:890 @atom:890_b013_a013_d013_i013 } + replace{ @atom:891 @atom:891_b013_a013_d013_i013 } + replace{ @atom:892 @atom:892_b046_a046_d046_i046 } + replace{ @atom:893 @atom:893_b053_a053_d053_i053 } + replace{ @atom:894 @atom:894_b048_a048_d048_i048 } + replace{ @atom:895 @atom:895_b053_a053_d053_i053 } + replace{ @atom:896 @atom:896_b048_a048_d048_i048 } replace{ @atom:897 @atom:897_b109_a109_d109_i109 } replace{ @atom:898 @atom:898_b109_a109_d109_i109 } - replace{ @atom:899 @atom:899_b46_a46_d46_i46 } - replace{ @atom:900 @atom:900_b47_a47_d47_i47 } - replace{ @atom:901 @atom:901_b47_a47_d47_i47 } - replace{ @atom:902 @atom:902_b47_a47_d47_i47 } + replace{ @atom:899 @atom:899_b046_a046_d046_i046 } + replace{ @atom:900 @atom:900_b047_a047_d047_i047 } + replace{ @atom:901 @atom:901_b047_a047_d047_i047 } + replace{ @atom:902 @atom:902_b047_a047_d047_i047 } replace{ @atom:903 @atom:903_b110_a110_d110_i110 } replace{ @atom:904 @atom:904_b110_a110_d110_i110 } - replace{ @atom:905 @atom:905_b4_a4_d4_i4 } - replace{ @atom:906 @atom:906_b13_a13_d13_i13 } + replace{ @atom:905 @atom:905_b004_a004_d004_i004 } + replace{ @atom:906 @atom:906_b013_a013_d013_i013 } @@ -2773,915 +2786,915 @@ OPLSAA { # --------------- Non-Bonded interactions: --------------------- # http://lammps.sandia.gov/doc/pair_lj.html # Syntax: - # pair_coeff AtomType1 AtomType2 pair_style_name parameters... + # pair_coeff AtomType1 AtomType2 parameters... write_once("In Settings") { - pair_coeff @atom:1_b1_a1_d1_i1 @atom:1_b1_a1_d1_i1 lj/cut/coul/long 0.061 2.94 - pair_coeff @atom:2_b2_a2_d2_i2 @atom:2_b2_a2_d2_i2 lj/cut/coul/long 0.118 3.905 - pair_coeff @atom:3_b3_a3_d3_i3 @atom:3_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:4_b4_a4_d4_i4 @atom:4_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:5_b5_a5_d5_i5 @atom:5_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.0 - pair_coeff @atom:6_b6_a6_d6_i6 @atom:6_b6_a6_d6_i6 lj/cut/coul/long 0.16 3.91 - pair_coeff @atom:7_b7_a7_d7_i7 @atom:7_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:8_b8_a8_d8_i8 @atom:8_b8_a8_d8_i8 lj/cut/coul/long 0.294 3.73 - pair_coeff @atom:9_b6_a6_d6_i6 @atom:9_b6_a6_d6_i6 lj/cut/coul/long 0.207 3.775 - pair_coeff @atom:10_b6_a6_d6_i6 @atom:10_b6_a6_d6_i6 lj/cut/coul/long 0.175 3.905 - pair_coeff @atom:11_b6_a6_d6_i6 @atom:11_b6_a6_d6_i6 lj/cut/coul/long 0.16 3.91 - pair_coeff @atom:12_b6_a6_d6_i6 @atom:12_b6_a6_d6_i6 lj/cut/coul/long 0.145 3.96 - pair_coeff @atom:13_b2_a2_d2_i2 @atom:13_b2_a2_d2_i2 lj/cut/coul/long 0.118 3.905 - pair_coeff @atom:14_b9_a9_d9_i9 @atom:14_b9_a9_d9_i9 lj/cut/coul/long 0.14 3.85 - pair_coeff @atom:15_b10_a10_d10_i10 @atom:15_b10_a10_d10_i10 lj/cut/coul/long 0.08 3.85 - pair_coeff @atom:16_b11_a11_d11_i11 @atom:16_b11_a11_d11_i11 lj/cut/coul/long 0.115 3.8 - pair_coeff @atom:17_b12_a12_d12_i12 @atom:17_b12_a12_d12_i12 lj/cut/coul/long 0.11 3.75 - pair_coeff @atom:18_b13_a13_d13_i13 @atom:18_b13_a13_d13_i13 lj/cut/coul/long 0.05 3.8 - pair_coeff @atom:19_b14_a14_d14_i14 @atom:19_b14_a14_d14_i14 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:20_b5_a5_d5_i5 @atom:20_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.07 - pair_coeff @atom:21_b7_a7_d7_i7 @atom:21_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:22_b6_a6_d6_i6 @atom:22_b6_a6_d6_i6 lj/cut/coul/long 0.207 3.775 - pair_coeff @atom:23_b2_a2_d2_i2 @atom:23_b2_a2_d2_i2 lj/cut/coul/long 0.118 3.905 - pair_coeff @atom:24_b15_a15_d15_i15 @atom:24_b15_a15_d15_i15 lj/cut/coul/long 0.25 3.7 - pair_coeff @atom:25_b15_a15_d15_i15 @atom:25_b15_a15_d15_i15 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:26_b16_a16_d16_i16 @atom:26_b16_a16_d16_i16 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:27_b16_a16_d16_i16 @atom:27_b16_a16_d16_i16 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:28_b17_a17_d17_i17 @atom:28_b17_a17_d17_i17 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:29_b17_a17_d17_i17 @atom:29_b17_a17_d17_i17 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:30_b6_a6_d6_i6 @atom:30_b6_a6_d6_i6 lj/cut/coul/long 0.207 3.775 - pair_coeff @atom:31_b2_a2_d2_i2 @atom:31_b2_a2_d2_i2 lj/cut/coul/long 0.118 3.905 - pair_coeff @atom:32_b6_a6_d6_i6 @atom:32_b6_a6_d6_i6 lj/cut/coul/long 0.17 3.8 - pair_coeff @atom:33_b2_a2_d2_i2 @atom:33_b2_a2_d2_i2 lj/cut/coul/long 0.118 3.8 - pair_coeff @atom:34_b6_a6_d6_i6 @atom:34_b6_a6_d6_i6 lj/cut/coul/long 0.17 3.8 - pair_coeff @atom:35_b2_a2_d2_i2 @atom:35_b2_a2_d2_i2 lj/cut/coul/long 0.118 3.8 - pair_coeff @atom:36_b18_a18_d18_i18 @atom:36_b18_a18_d18_i18 lj/cut/coul/long 0.17 3.2 - pair_coeff @atom:37_b19_a19_d19_i19 @atom:37_b19_a19_d19_i19 lj/cut/coul/long 0.15 3.65 - pair_coeff @atom:38_b6_a6_d6_i6 @atom:38_b6_a6_d6_i6 lj/cut/coul/long 0.207 3.775 - pair_coeff @atom:39_b10_a10_d10_i10 @atom:39_b10_a10_d10_i10 lj/cut/coul/long 0.08 3.85 - pair_coeff @atom:40_b13_a13_d13_i13 @atom:40_b13_a13_d13_i13 lj/cut/coul/long 0.05 3.8 - pair_coeff @atom:41_b20_a20_d20_i20 @atom:41_b20_a20_d20_i20 lj/cut/coul/long 0.17 3.0 - pair_coeff @atom:42_b6_a6_d6_i6 @atom:42_b6_a6_d6_i6 lj/cut/coul/long 0.17 3.8 - pair_coeff @atom:43_b2_a2_d2_i2 @atom:43_b2_a2_d2_i2 lj/cut/coul/long 0.118 3.8 - pair_coeff @atom:44_b2_a2_d2_i2 @atom:44_b2_a2_d2_i2 lj/cut/coul/long 0.118 3.8 - pair_coeff @atom:45_b21_a21_d21_i21 @atom:45_b21_a21_d21_i21 lj/cut/coul/long 0.3 3.4 - pair_coeff @atom:46_b10_a10_d10_i10 @atom:46_b10_a10_d10_i10 lj/cut/coul/long 0.08 3.8 - pair_coeff @atom:47_b21_a21_d21_i21 @atom:47_b21_a21_d21_i21 lj/cut/coul/long 0.3 3.47 - pair_coeff @atom:48_b13_a13_d13_i13 @atom:48_b13_a13_d13_i13 lj/cut/coul/long 0.05 3.8 - pair_coeff @atom:49_b21_a21_d21_i21 @atom:49_b21_a21_d21_i21 lj/cut/coul/long 0.266 3.47 - pair_coeff @atom:50_b22_a22_d22_i22 @atom:50_b22_a22_d22_i22 lj/cut/coul/long 0.395 3.56 - pair_coeff @atom:51_b23_a23_d23_i23 @atom:51_b23_a23_d23_i23 lj/cut/coul/long 0.28 2.93 - pair_coeff @atom:52_b6_a6_d6_i6 @atom:52_b6_a6_d6_i6 lj/cut/coul/long 0.16 3.81 - pair_coeff @atom:53_b4_a4_d4_i4 @atom:53_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:54_b24_a24_d24_i24 @atom:54_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:55_b3_a3_d3_i3 @atom:55_b3_a3_d3_i3 lj/cut/coul/long 0.115 3.8 - pair_coeff @atom:56_b6_a6_d6_i6 @atom:56_b6_a6_d6_i6 lj/cut/coul/long 0.17 3.8 - pair_coeff @atom:57_b25_a25_d25_i25 @atom:57_b25_a25_d25_i25 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:58_b26_a26_d26_i26 @atom:58_b26_a26_d26_i26 lj/cut/coul/long 0.02 2.556 - pair_coeff @atom:59_b27_a27_d27_i27 @atom:59_b27_a27_d27_i27 lj/cut/coul/long 0.069 2.78 - pair_coeff @atom:60_b28_a28_d28_i28 @atom:60_b28_a28_d28_i28 lj/cut/coul/long 0.2339 3.401 - pair_coeff @atom:61_b29_a29_d29_i29 @atom:61_b29_a29_d29_i29 lj/cut/coul/long 0.317 3.624 - pair_coeff @atom:62_b30_a30_d30_i30 @atom:62_b30_a30_d30_i30 lj/cut/coul/long 0.433 3.935 - pair_coeff @atom:63_b31_a31_d31_i31 @atom:63_b31_a31_d31_i31 lj/cut/coul/long 0.1521 3.15061 - pair_coeff @atom:64_b32_a32_d32_i32 @atom:64_b32_a32_d32_i32 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:65_b31_a31_d31_i31 @atom:65_b31_a31_d31_i31 lj/cut/coul/long 0.155 3.15365 - pair_coeff @atom:66_b32_a32_d32_i32 @atom:66_b32_a32_d32_i32 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:67_b33_a33_d33_i33 @atom:67_b33_a33_d33_i33 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:68_b34_a34_d34_i34 @atom:68_b34_a34_d34_i34 lj/cut/coul/long 0.15 3.176 - pair_coeff @atom:69_b35_a35_d35_i35 @atom:69_b35_a35_d35_i35 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:70_b36_a36_d36_i36 @atom:70_b36_a36_d36_i36 lj/cut/coul/long 0.1 3.27 - pair_coeff @atom:71_b37_a37_d37_i37 @atom:71_b37_a37_d37_i37 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:72_b38_a38_d38_i38 @atom:72_b38_a38_d38_i38 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:73_b39_a39_d39_i39 @atom:73_b39_a39_d39_i39 lj/cut/coul/long 0.16 3.12 - pair_coeff @atom:74_b40_a40_d40_i40 @atom:74_b40_a40_d40_i40 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:75_b41_a41_d41_i41 @atom:75_b41_a41_d41_i41 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:76_b42_a42_d42_i42 @atom:76_b42_a42_d42_i42 lj/cut/coul/long 0.1554 3.16557 - pair_coeff @atom:77_b43_a43_d43_i43 @atom:77_b43_a43_d43_i43 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:78_b44_a44_d44_i44 @atom:78_b44_a44_d44_i44 lj/cut/coul/long 0.17 3.42 - pair_coeff @atom:79_b45_a45_d45_i45 @atom:79_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:80_b13_a13_d13_i13 @atom:80_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:81_b13_a13_d13_i13 @atom:81_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:82_b13_a13_d13_i13 @atom:82_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:83_b13_a13_d13_i13 @atom:83_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:84_b13_a13_d13_i13 @atom:84_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:85_b46_a46_d46_i46 @atom:85_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:86_b47_a47_d47_i47 @atom:86_b47_a47_d47_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:87_b47_a47_d47_i47 @atom:87_b47_a47_d47_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:88_b47_a47_d47_i47 @atom:88_b47_a47_d47_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:89_b46_a46_d46_i46 @atom:89_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:90_b48_a48_d48_i48 @atom:90_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:91_b49_a49_d49_i49 @atom:91_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:92_b48_a48_d48_i48 @atom:92_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:93_b13_a13_d13_i13 @atom:93_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:94_b13_a13_d13_i13 @atom:94_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:95_b50_a50_d50_i50 @atom:95_b50_a50_d50_i50 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:96_b5_a5_d5_i5 @atom:96_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.12 - pair_coeff @atom:97_b7_a7_d7_i7 @atom:97_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:98_b46_a46_d46_i46 @atom:98_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:99_b13_a13_d13_i13 @atom:99_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:100_b13_a13_d13_i13 @atom:100_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:101_b13_a13_d13_i13 @atom:101_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:102_b13_a13_d13_i13 @atom:102_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:103_b13_a13_d13_i13 @atom:103_b13_a13_d13_i13 lj/cut/coul/long 0.062 3.25 - pair_coeff @atom:104_b5_a5_d5_i5 @atom:104_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.07 - pair_coeff @atom:105_b7_a7_d7_i7 @atom:105_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:106_b1_a1_d1_i1 @atom:106_b1_a1_d1_i1 lj/cut/coul/long 0.061 2.94 - pair_coeff @atom:107_b46_a46_d46_i46 @atom:107_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:108_b48_a48_d48_i48 @atom:108_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:109_b5_a5_d5_i5 @atom:109_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.07 - pair_coeff @atom:110_b7_a7_d7_i7 @atom:110_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:111_b5_a5_d5_i5 @atom:111_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.07 - pair_coeff @atom:112_b7_a7_d7_i7 @atom:112_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:113_b5_a5_d5_i5 @atom:113_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.07 - pair_coeff @atom:114_b7_a7_d7_i7 @atom:114_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:115_b13_a13_d13_i13 @atom:115_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:116_b13_a13_d13_i13 @atom:116_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:117_b13_a13_d13_i13 @atom:117_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:118_b46_a46_d46_i46 @atom:118_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:119_b20_a20_d20_i20 @atom:119_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:120_b50_a50_d50_i50 @atom:120_b50_a50_d50_i50 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:121_b20_a20_d20_i20 @atom:121_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:122_b20_a20_d20_i20 @atom:122_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:123_b13_a13_d13_i13 @atom:123_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:124_b13_a13_d13_i13 @atom:124_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:125_b13_a13_d13_i13 @atom:125_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:126_b13_a13_d13_i13 @atom:126_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:127_b46_a46_d46_i46 @atom:127_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:128_b20_a20_d20_i20 @atom:128_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:129_b5_a5_d5_i5 @atom:129_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.07 - pair_coeff @atom:130_b7_a7_d7_i7 @atom:130_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:131_b51_a51_d51_i51 @atom:131_b51_a51_d51_i51 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:132_b46_a46_d46_i46 @atom:132_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:133_b51_a51_d51_i51 @atom:133_b51_a51_d51_i51 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:134_b46_a46_d46_i46 @atom:134_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:135_b51_a51_d51_i51 @atom:135_b51_a51_d51_i51 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:136_b46_a46_d46_i46 @atom:136_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:137_b51_a51_d51_i51 @atom:137_b51_a51_d51_i51 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:138_b46_a46_d46_i46 @atom:138_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:139_b51_a51_d51_i51 @atom:139_b51_a51_d51_i51 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:140_b51_a51_d51_i51 @atom:140_b51_a51_d51_i51 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:141_b48_a48_d48_i48 @atom:141_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:142_b15_a15_d15_i15 @atom:142_b15_a15_d15_i15 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:143_b15_a15_d15_i15 @atom:143_b15_a15_d15_i15 lj/cut/coul/long 0.25 3.7 - pair_coeff @atom:144_b16_a16_d16_i16 @atom:144_b16_a16_d16_i16 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:145_b16_a16_d16_i16 @atom:145_b16_a16_d16_i16 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:146_b17_a17_d17_i17 @atom:146_b17_a17_d17_i17 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:147_b17_a17_d17_i17 @atom:147_b17_a17_d17_i17 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:148_b13_a13_d13_i13 @atom:148_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:149_b13_a13_d13_i13 @atom:149_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:150_b13_a13_d13_i13 @atom:150_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:151_b13_a13_d13_i13 @atom:151_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:152_b13_a13_d13_i13 @atom:152_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:153_b13_a13_d13_i13 @atom:153_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:154_b13_a13_d13_i13 @atom:154_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:155_b13_a13_d13_i13 @atom:155_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:156_b13_a13_d13_i13 @atom:156_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:157_b13_a13_d13_i13 @atom:157_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:158_b13_a13_d13_i13 @atom:158_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:159_b13_a13_d13_i13 @atom:159_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:160_b13_a13_d13_i13 @atom:160_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:161_b13_a13_d13_i13 @atom:161_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:162_b13_a13_d13_i13 @atom:162_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:163_b48_a48_d48_i48 @atom:163_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:164_b16_a16_d16_i16 @atom:164_b16_a16_d16_i16 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:165_b13_a13_d13_i13 @atom:165_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:166_b13_a13_d13_i13 @atom:166_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:167_b13_a13_d13_i13 @atom:167_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:168_b21_a21_d21_i21 @atom:168_b21_a21_d21_i21 lj/cut/coul/long 0.3 3.4 - pair_coeff @atom:169_b47_a47_d47_i47 @atom:169_b47_a47_d47_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:170_b48_a48_d48_i48 @atom:170_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:171_b13_a13_d13_i13 @atom:171_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:172_b13_a13_d13_i13 @atom:172_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:173_b3_a3_d3_i3 @atom:173_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:174_b3_a3_d3_i3 @atom:174_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:175_b3_a3_d3_i3 @atom:175_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:176_b3_a3_d3_i3 @atom:176_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:177_b3_a3_d3_i3 @atom:177_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:178_b4_a4_d4_i4 @atom:178_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:179_b24_a24_d24_i24 @atom:179_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:180_b24_a24_d24_i24 @atom:180_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:181_b24_a24_d24_i24 @atom:181_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:182_b45_a45_d45_i45 @atom:182_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:183_b45_a45_d45_i45 @atom:183_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:184_b13_a13_d13_i13 @atom:184_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:185_b13_a13_d13_i13 @atom:185_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:186_b13_a13_d13_i13 @atom:186_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:187_b13_a13_d13_i13 @atom:187_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:188_b13_a13_d13_i13 @atom:188_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:189_b3_a3_d3_i3 @atom:189_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:190_b4_a4_d4_i4 @atom:190_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:191_b24_a24_d24_i24 @atom:191_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:192_b45_a45_d45_i45 @atom:192_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:193_b24_a24_d24_i24 @atom:193_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:194_b3_a3_d3_i3 @atom:194_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:195_b4_a4_d4_i4 @atom:195_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:196_b45_a45_d45_i45 @atom:196_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:197_b46_a46_d46_i46 @atom:197_b46_a46_d46_i46 lj/cut/coul/long 0.02 2.5 - pair_coeff @atom:198_b13_a13_d13_i13 @atom:198_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:199_b13_a13_d13_i13 @atom:199_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:200_b13_a13_d13_i13 @atom:200_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:201_b13_a13_d13_i13 @atom:201_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:202_b48_a48_d48_i48 @atom:202_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:203_b19_a19_d19_i19 @atom:203_b19_a19_d19_i19 lj/cut/coul/long 0.15 3.65 - pair_coeff @atom:204_b18_a18_d18_i18 @atom:204_b18_a18_d18_i18 lj/cut/coul/long 0.17 3.2 - pair_coeff @atom:205_b48_a48_d48_i48 @atom:205_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:206_b21_a21_d21_i21 @atom:206_b21_a21_d21_i21 lj/cut/coul/long 0.3 3.4 - pair_coeff @atom:207_b24_a24_d24_i24 @atom:207_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:208_b48_a48_d48_i48 @atom:208_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:209_b3_a3_d3_i3 @atom:209_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:210_b4_a4_d4_i4 @atom:210_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:211_b5_a5_d5_i5 @atom:211_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.0 - pair_coeff @atom:212_b7_a7_d7_i7 @atom:212_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:213_b3_a3_d3_i3 @atom:213_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:214_b52_a52_d52_i52 @atom:214_b52_a52_d52_i52 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:215_b13_a13_d13_i13 @atom:215_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:216_b13_a13_d13_i13 @atom:216_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:217_b13_a13_d13_i13 @atom:217_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:218_b13_a13_d13_i13 @atom:218_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:219_b3_a3_d3_i3 @atom:219_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:220_b4_a4_d4_i4 @atom:220_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:221_b46_a46_d46_i46 @atom:221_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.42 - pair_coeff @atom:222_b3_a3_d3_i3 @atom:222_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:223_b4_a4_d4_i4 @atom:223_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:224_b46_a46_d46_i46 @atom:224_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.42 - pair_coeff @atom:225_b13_a13_d13_i13 @atom:225_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:226_b13_a13_d13_i13 @atom:226_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:227_b13_a13_d13_i13 @atom:227_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:228_b13_a13_d13_i13 @atom:228_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:229_b53_a53_d53_i53 @atom:229_b53_a53_d53_i53 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:230_b53_a53_d53_i53 @atom:230_b53_a53_d53_i53 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:231_b53_a53_d53_i53 @atom:231_b53_a53_d53_i53 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:232_b54_a54_d54_i54 @atom:232_b54_a54_d54_i54 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:233_b54_a54_d54_i54 @atom:233_b54_a54_d54_i54 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:234_b13_a13_d13_i13 @atom:234_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:235_b13_a13_d13_i13 @atom:235_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:236_b13_a13_d13_i13 @atom:236_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:237_b13_a13_d13_i13 @atom:237_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:238_b13_a13_d13_i13 @atom:238_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:239_b13_a13_d13_i13 @atom:239_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:240_b13_a13_d13_i13 @atom:240_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:241_b13_a13_d13_i13 @atom:241_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:242_b13_a13_d13_i13 @atom:242_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:243_b55_a55_d55_i55 @atom:243_b55_a55_d55_i55 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:244_b54_a54_d54_i54 @atom:244_b54_a54_d54_i54 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:245_b48_a48_d48_i48 @atom:245_b48_a48_d48_i48 lj/cut/coul/long 0.05 3.55 - pair_coeff @atom:246_b55_a55_d55_i55 @atom:246_b55_a55_d55_i55 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:247_b54_a54_d54_i54 @atom:247_b54_a54_d54_i54 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:248_b13_a13_d13_i13 @atom:248_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:249_b13_a13_d13_i13 @atom:249_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:250_b13_a13_d13_i13 @atom:250_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:251_b13_a13_d13_i13 @atom:251_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:252_b53_a53_d53_i53 @atom:252_b53_a53_d53_i53 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:253_b54_a54_d54_i54 @atom:253_b54_a54_d54_i54 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:254_b56_a56_d56_i56 @atom:254_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:255_b48_a48_d48_i48 @atom:255_b48_a48_d48_i48 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:256_b55_a55_d55_i55 @atom:256_b55_a55_d55_i55 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:257_b45_a45_d45_i45 @atom:257_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:258_b48_a48_d48_i48 @atom:258_b48_a48_d48_i48 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:259_b49_a49_d49_i49 @atom:259_b49_a49_d49_i49 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:260_b48_a48_d48_i48 @atom:260_b48_a48_d48_i48 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:261_b49_a49_d49_i49 @atom:261_b49_a49_d49_i49 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:262_b57_a57_d57_i57 @atom:262_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:263_b3_a3_d3_i3 @atom:263_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:264_b57_a57_d57_i57 @atom:264_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:265_b3_a3_d3_i3 @atom:265_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:266_b47_a47_d47_i47 @atom:266_b47_a47_d47_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:267_b47_a47_d47_i47 @atom:267_b47_a47_d47_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:268_b45_a45_d45_i45 @atom:268_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:269_b4_a4_d4_i4 @atom:269_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:270_b45_a45_d45_i45 @atom:270_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:271_b4_a4_d4_i4 @atom:271_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:272_b46_a46_d46_i46 @atom:272_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:273_b46_a46_d46_i46 @atom:273_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:274_b13_a13_d13_i13 @atom:274_b13_a13_d13_i13 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:275_b46_a46_d46_i46 @atom:275_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:276_b57_a57_d57_i57 @atom:276_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:277_b3_a3_d3_i3 @atom:277_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:278_b56_a56_d56_i56 @atom:278_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:279_b48_a48_d48_i48 @atom:279_b48_a48_d48_i48 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:280_b47_a47_d47_i47 @atom:280_b47_a47_d47_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:281_b47_a47_d47_i47 @atom:281_b47_a47_d47_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:282_b45_a45_d45_i45 @atom:282_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:283_b4_a4_d4_i4 @atom:283_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:284_b55_a55_d55_i55 @atom:284_b55_a55_d55_i55 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:285_b45_a45_d45_i45 @atom:285_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:286_b45_a45_d45_i45 @atom:286_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:287_b46_a46_d46_i46 @atom:287_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:288_b58_a58_d58_i58 @atom:288_b58_a58_d58_i58 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:289_b56_a56_d56_i56 @atom:289_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:290_b59_a59_d59_i59 @atom:290_b59_a59_d59_i59 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:291_b56_a56_d56_i56 @atom:291_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:292_b60_a60_d60_i60 @atom:292_b60_a60_d60_i60 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:293_b60_a60_d60_i60 @atom:293_b60_a60_d60_i60 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:294_b48_a48_d48_i48 @atom:294_b48_a48_d48_i48 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:295_b61_a61_d61_i61 @atom:295_b61_a61_d61_i61 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:296_b62_a62_d62_i62 @atom:296_b62_a62_d62_i62 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:297_b57_a57_d57_i57 @atom:297_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:298_b63_a63_d63_i63 @atom:298_b63_a63_d63_i63 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:299_b55_a55_d55_i55 @atom:299_b55_a55_d55_i55 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:300_b45_a45_d45_i45 @atom:300_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:301_b45_a45_d45_i45 @atom:301_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:302_b63_a63_d63_i63 @atom:302_b63_a63_d63_i63 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:303_b45_a45_d45_i45 @atom:303_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:304_b57_a57_d57_i57 @atom:304_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:305_b48_a48_d48_i48 @atom:305_b48_a48_d48_i48 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:306_b56_a56_d56_i56 @atom:306_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:307_b60_a60_d60_i60 @atom:307_b60_a60_d60_i60 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:308_b60_a60_d60_i60 @atom:308_b60_a60_d60_i60 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:309_b3_a3_d3_i3 @atom:309_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:310_b45_a45_d45_i45 @atom:310_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:311_b55_a55_d55_i55 @atom:311_b55_a55_d55_i55 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:312_b45_a45_d45_i45 @atom:312_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:313_b4_a4_d4_i4 @atom:313_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:314_b13_a13_d13_i13 @atom:314_b13_a13_d13_i13 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:315_b46_a46_d46_i46 @atom:315_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:316_b13_a13_d13_i13 @atom:316_b13_a13_d13_i13 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:317_b46_a46_d46_i46 @atom:317_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:318_b13_a13_d13_i13 @atom:318_b13_a13_d13_i13 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:319_b46_a46_d46_i46 @atom:319_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:320_b57_a57_d57_i57 @atom:320_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:321_b3_a3_d3_i3 @atom:321_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:322_b57_a57_d57_i57 @atom:322_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:323_b48_a48_d48_i48 @atom:323_b48_a48_d48_i48 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:324_b47_a47_d47_i47 @atom:324_b47_a47_d47_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:325_b47_a47_d47_i47 @atom:325_b47_a47_d47_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:326_b45_a45_d45_i45 @atom:326_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:327_b4_a4_d4_i4 @atom:327_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:328_b45_a45_d45_i45 @atom:328_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:329_b55_a55_d55_i55 @atom:329_b55_a55_d55_i55 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:330_b45_a45_d45_i45 @atom:330_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:331_b45_a45_d45_i45 @atom:331_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:332_b49_a49_d49_i49 @atom:332_b49_a49_d49_i49 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:333_b58_a58_d58_i58 @atom:333_b58_a58_d58_i58 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:334_b13_a13_d13_i13 @atom:334_b13_a13_d13_i13 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:335_b46_a46_d46_i46 @atom:335_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:336_b64_a64_d64_i64 @atom:336_b64_a64_d64_i64 lj/cut/coul/long 0.2 3.74 - pair_coeff @atom:337_b52_a52_d52_i52 @atom:337_b52_a52_d52_i52 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:338_b20_a20_d20_i20 @atom:338_b20_a20_d20_i20 lj/cut/coul/long 0.17 3.0 - pair_coeff @atom:339_b13_a13_d13_i13 @atom:339_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.55 - pair_coeff @atom:340_b47_a47_d47_i47 @atom:340_b47_a47_d47_i47 lj/cut/coul/long 0.08 3.5 - pair_coeff @atom:341_b21_a21_d21_i21 @atom:341_b21_a21_d21_i21 lj/cut/coul/long 0.3 3.4 - pair_coeff @atom:342_b47_a47_d47_i47 @atom:342_b47_a47_d47_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:343_b1_a1_d1_i1 @atom:343_b1_a1_d1_i1 lj/cut/coul/long 0.71 3.05 - pair_coeff @atom:344_b21_a21_d21_i21 @atom:344_b21_a21_d21_i21 lj/cut/coul/long 0.71 4.02 - pair_coeff @atom:345_b65_a65_d65_i65 @atom:345_b65_a65_d65_i65 lj/cut/coul/long 0.71 4.28 - pair_coeff @atom:346_b66_a66_d66_i66 @atom:346_b66_a66_d66_i66 lj/cut/coul/long 0.71 4.81 - pair_coeff @atom:347_b67_a67_d67_i67 @atom:347_b67_a67_d67_i67 lj/cut/coul/long 0.0005 5.34 - pair_coeff @atom:348_b68_a68_d68_i68 @atom:348_b68_a68_d68_i68 lj/cut/coul/long 0.0005 2.87 - pair_coeff @atom:349_b69_a69_d69_i69 @atom:349_b69_a69_d69_i69 lj/cut/coul/long 0.0005 4.07 - pair_coeff @atom:350_b70_a70_d70_i70 @atom:350_b70_a70_d70_i70 lj/cut/coul/long 0.0005 5.17 - pair_coeff @atom:351_b71_a71_d71_i71 @atom:351_b71_a71_d71_i71 lj/cut/coul/long 0.0005 5.6 - pair_coeff @atom:352_b72_a72_d72_i72 @atom:352_b72_a72_d72_i72 lj/cut/coul/long 0.0005 6.2 - pair_coeff @atom:353_b73_a73_d73_i73 @atom:353_b73_a73_d73_i73 lj/cut/coul/long 0.875044 1.644471 - pair_coeff @atom:354_b74_a74_d74_i74 @atom:354_b74_a74_d74_i74 lj/cut/coul/long 0.449657 2.412031 - pair_coeff @atom:355_b75_a75_d75_i75 @atom:355_b75_a75_d75_i75 lj/cut/coul/long 0.118226 3.102688 - pair_coeff @atom:356_b76_a76_d76_i76 @atom:356_b76_a76_d76_i76 lj/cut/coul/long 0.047096 3.81661 - pair_coeff @atom:357_b6_a6_d6_i6 @atom:357_b6_a6_d6_i6 lj/cut/coul/long 0.3 4.2 - pair_coeff @atom:358_b46_a46_d46_i46 @atom:358_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:359_b15_a15_d15_i15 @atom:359_b15_a15_d15_i15 lj/cut/coul/long 0.5 4.25 - pair_coeff @atom:360_b6_a6_d6_i6 @atom:360_b6_a6_d6_i6 lj/cut/coul/long 0.3 4.2 - pair_coeff @atom:361_b46_a46_d46_i46 @atom:361_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:362_b5_a5_d5_i5 @atom:362_b5_a5_d5_i5 lj/cut/coul/long 0.25 3.15 - pair_coeff @atom:363_b13_a13_d13_i13 @atom:363_b13_a13_d13_i13 lj/cut/coul/long 0.3 4.2 - pair_coeff @atom:364_b46_a46_d46_i46 @atom:364_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:365_b19_a19_d19_i19 @atom:365_b19_a19_d19_i19 lj/cut/coul/long 0.15 3.65 - pair_coeff @atom:366_b18_a18_d18_i18 @atom:366_b18_a18_d18_i18 lj/cut/coul/long 0.25 3.4 - pair_coeff @atom:367_b6_a6_d6_i6 @atom:367_b6_a6_d6_i6 lj/cut/coul/long 0.3 4.2 - pair_coeff @atom:368_b46_a46_d46_i46 @atom:368_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:369_b53_a53_d53_i53 @atom:369_b53_a53_d53_i53 lj/cut/coul/long 0.25 3.4 - pair_coeff @atom:370_b45_a45_d45_i45 @atom:370_b45_a45_d45_i45 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:371_b6_a6_d6_i6 @atom:371_b6_a6_d6_i6 lj/cut/coul/long 0.3 4.2 - pair_coeff @atom:372_b46_a46_d46_i46 @atom:372_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:373_b13_a13_d13_i13 @atom:373_b13_a13_d13_i13 lj/cut/coul/long 0.3 4.2 - pair_coeff @atom:374_b46_a46_d46_i46 @atom:374_b46_a46_d46_i46 lj/cut/coul/long 0.05 2.5 - pair_coeff @atom:375_b33_a33_d33_i33 @atom:375_b33_a33_d33_i33 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:376_b5_a5_d5_i5 @atom:376_b5_a5_d5_i5 lj/cut/coul/long 0.25 3.2 - pair_coeff @atom:377_b7_a7_d7_i7 @atom:377_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:378_b77_a77_d77_i77 @atom:378_b77_a77_d77_i77 lj/cut/coul/long 0.4 2.81524 - pair_coeff @atom:379_b78_a78_d78_i78 @atom:379_b78_a78_d78_i78 lj/cut/coul/long 0.2 3.11815 - pair_coeff @atom:380_b20_a20_d20_i20 @atom:380_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:381_b64_a64_d64_i64 @atom:381_b64_a64_d64_i64 lj/cut/coul/long 0.2 3.74 - pair_coeff @atom:382_b52_a52_d52_i52 @atom:382_b52_a52_d52_i52 lj/cut/coul/long 0.2 3.15 - pair_coeff @atom:383_b20_a20_d20_i20 @atom:383_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:384_b13_a13_d13_i13 @atom:384_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:385_b46_a46_d46_i46 @atom:385_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:386_b64_a64_d64_i64 @atom:386_b64_a64_d64_i64 lj/cut/coul/long 0.2 3.74 - pair_coeff @atom:387_b52_a52_d52_i52 @atom:387_b52_a52_d52_i52 lj/cut/coul/long 0.2 3.15 - pair_coeff @atom:388_b20_a20_d20_i20 @atom:388_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:389_b13_a13_d13_i13 @atom:389_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:390_b46_a46_d46_i46 @atom:390_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:391_b64_a64_d64_i64 @atom:391_b64_a64_d64_i64 lj/cut/coul/long 0.2 3.74 - pair_coeff @atom:392_b52_a52_d52_i52 @atom:392_b52_a52_d52_i52 lj/cut/coul/long 0.2 3.15 - pair_coeff @atom:393_b20_a20_d20_i20 @atom:393_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:394_b13_a13_d13_i13 @atom:394_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:395_b46_a46_d46_i46 @atom:395_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:396_b13_a13_d13_i13 @atom:396_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:397_b46_a46_d46_i46 @atom:397_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:398_b48_a48_d48_i48 @atom:398_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:399_b13_a13_d13_i13 @atom:399_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:400_b46_a46_d46_i46 @atom:400_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:401_b48_a48_d48_i48 @atom:401_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:402_b13_a13_d13_i13 @atom:402_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:403_b46_a46_d46_i46 @atom:403_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:404_b48_a48_d48_i48 @atom:404_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:405_b13_a13_d13_i13 @atom:405_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:406_b3_a3_d3_i3 @atom:406_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:407_b4_a4_d4_i4 @atom:407_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:408_b20_a20_d20_i20 @atom:408_b20_a20_d20_i20 lj/cut/coul/long 0.17 3.0 - pair_coeff @atom:409_b13_a13_d13_i13 @atom:409_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:410_b46_a46_d46_i46 @atom:410_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.42 - pair_coeff @atom:411_b3_a3_d3_i3 @atom:411_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:412_b3_a3_d3_i3 @atom:412_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:413_b48_a48_d48_i48 @atom:413_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:414_b20_a20_d20_i20 @atom:414_b20_a20_d20_i20 lj/cut/coul/long 0.17 3.0 - pair_coeff @atom:415_b79_a79_d79_i79 @atom:415_b79_a79_d79_i79 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:416_b23_a23_d23_i23 @atom:416_b23_a23_d23_i23 lj/cut/coul/long 0.17 2.96 - pair_coeff @atom:417_b13_a13_d13_i13 @atom:417_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:418_b46_a46_d46_i46 @atom:418_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:419_b24_a24_d24_i24 @atom:419_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:420_b45_a45_d45_i45 @atom:420_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:421_b24_a24_d24_i24 @atom:421_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:422_b45_a45_d45_i45 @atom:422_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:423_b13_a13_d13_i13 @atom:423_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:424_b46_a46_d46_i46 @atom:424_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:425_b13_a13_d13_i13 @atom:425_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:426_b46_a46_d46_i46 @atom:426_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:427_b13_a13_d13_i13 @atom:427_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:428_b46_a46_d46_i46 @atom:428_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:429_b48_a48_d48_i48 @atom:429_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:430_b48_a48_d48_i48 @atom:430_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:431_b13_a13_d13_i13 @atom:431_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:432_b13_a13_d13_i13 @atom:432_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:433_b13_a13_d13_i13 @atom:433_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:434_b79_a79_d79_i79 @atom:434_b79_a79_d79_i79 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:435_b23_a23_d23_i23 @atom:435_b23_a23_d23_i23 lj/cut/coul/long 0.17 2.96 - pair_coeff @atom:436_b22_a22_d22_i22 @atom:436_b22_a22_d22_i22 lj/cut/coul/long 0.395 3.56 - pair_coeff @atom:437_b22_a22_d22_i22 @atom:437_b22_a22_d22_i22 lj/cut/coul/long 0.395 3.56 - pair_coeff @atom:438_b23_a23_d23_i23 @atom:438_b23_a23_d23_i23 lj/cut/coul/long 0.28 2.93 - pair_coeff @atom:439_b13_a13_d13_i13 @atom:439_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:440_b13_a13_d13_i13 @atom:440_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:441_b80_a80_d80_i80 @atom:441_b80_a80_d80_i80 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:442_b60_a60_d60_i60 @atom:442_b60_a60_d60_i60 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:443_b81_a81_d81_i81 @atom:443_b81_a81_d81_i81 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:444_b57_a57_d57_i57 @atom:444_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:445_b45_a45_d45_i45 @atom:445_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:446_b13_a13_d13_i13 @atom:446_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:447_b82_a82_d82_i82 @atom:447_b82_a82_d82_i82 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:448_b83_a83_d83_i83 @atom:448_b83_a83_d83_i83 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:449_b84_a84_d84_i84 @atom:449_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:450_b82_a82_d82_i82 @atom:450_b82_a82_d82_i82 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:451_b85_a85_d85_i85 @atom:451_b85_a85_d85_i85 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:452_b61_a61_d61_i61 @atom:452_b61_a61_d61_i61 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:453_b57_a57_d57_i57 @atom:453_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:454_b45_a45_d45_i45 @atom:454_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:455_b84_a84_d84_i84 @atom:455_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:456_b13_a13_d13_i13 @atom:456_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:457_b13_a13_d13_i13 @atom:457_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:458_b47_a47_d47_i47 @atom:458_b47_a47_d47_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:459_b47_a47_d47_i47 @atom:459_b47_a47_d47_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:460_b86_a86_d86_i86 @atom:460_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:461_b56_a56_d56_i56 @atom:461_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:462_b48_a48_d48_i48 @atom:462_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:463_b48_a48_d48_i48 @atom:463_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:464_b48_a48_d48_i48 @atom:464_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:465_b49_a49_d49_i49 @atom:465_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:466_b49_a49_d49_i49 @atom:466_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:467_b49_a49_d49_i49 @atom:467_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:468_b56_a56_d56_i56 @atom:468_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:469_b48_a48_d48_i48 @atom:469_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:470_b49_a49_d49_i49 @atom:470_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:471_b56_a56_d56_i56 @atom:471_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:472_b59_a59_d59_i59 @atom:472_b59_a59_d59_i59 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:473_b48_a48_d48_i48 @atom:473_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:474_b48_a48_d48_i48 @atom:474_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:475_b49_a49_d49_i49 @atom:475_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:476_b49_a49_d49_i49 @atom:476_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:477_b49_a49_d49_i49 @atom:477_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:478_b56_a56_d56_i56 @atom:478_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:479_b48_a48_d48_i48 @atom:479_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:480_b48_a48_d48_i48 @atom:480_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:481_b49_a49_d49_i49 @atom:481_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:482_b49_a49_d49_i49 @atom:482_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:483_b57_a57_d57_i57 @atom:483_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:484_b84_a84_d84_i84 @atom:484_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:485_b87_a87_d87_i87 @atom:485_b87_a87_d87_i87 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:486_b45_a45_d45_i45 @atom:486_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:487_b49_a49_d49_i49 @atom:487_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:488_b49_a49_d49_i49 @atom:488_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:489_b57_a57_d57_i57 @atom:489_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:490_b61_a61_d61_i61 @atom:490_b61_a61_d61_i61 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:491_b88_a88_d88_i88 @atom:491_b88_a88_d88_i88 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:492_b87_a87_d87_i87 @atom:492_b87_a87_d87_i87 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:493_b84_a84_d84_i84 @atom:493_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:494_b45_a45_d45_i45 @atom:494_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:495_b49_a49_d49_i49 @atom:495_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:496_b49_a49_d49_i49 @atom:496_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:497_b49_a49_d49_i49 @atom:497_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:498_b57_a57_d57_i57 @atom:498_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:499_b82_a82_d82_i82 @atom:499_b82_a82_d82_i82 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:500_b61_a61_d61_i61 @atom:500_b61_a61_d61_i61 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:501_b83_a83_d83_i83 @atom:501_b83_a83_d83_i83 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:502_b84_a84_d84_i84 @atom:502_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:503_b45_a45_d45_i45 @atom:503_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:504_b49_a49_d49_i49 @atom:504_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:505_b49_a49_d49_i49 @atom:505_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:506_b49_a49_d49_i49 @atom:506_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:507_b20_a20_d20_i20 @atom:507_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:508_b84_a84_d84_i84 @atom:508_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:509_b87_a87_d87_i87 @atom:509_b87_a87_d87_i87 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:510_b49_a49_d49_i49 @atom:510_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:511_b49_a49_d49_i49 @atom:511_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:512_b20_a20_d20_i20 @atom:512_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:513_b82_a82_d82_i82 @atom:513_b82_a82_d82_i82 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:514_b61_a61_d61_i61 @atom:514_b61_a61_d61_i61 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:515_b83_a83_d83_i83 @atom:515_b83_a83_d83_i83 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:516_b84_a84_d84_i84 @atom:516_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:517_b49_a49_d49_i49 @atom:517_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:518_b49_a49_d49_i49 @atom:518_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:519_b49_a49_d49_i49 @atom:519_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:520_b20_a20_d20_i20 @atom:520_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:521_b61_a61_d61_i61 @atom:521_b61_a61_d61_i61 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:522_b88_a88_d88_i88 @atom:522_b88_a88_d88_i88 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:523_b87_a87_d87_i87 @atom:523_b87_a87_d87_i87 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:524_b84_a84_d84_i84 @atom:524_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:525_b49_a49_d49_i49 @atom:525_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:526_b49_a49_d49_i49 @atom:526_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:527_b49_a49_d49_i49 @atom:527_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:528_b57_a57_d57_i57 @atom:528_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:529_b84_a84_d84_i84 @atom:529_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:530_b87_a87_d87_i87 @atom:530_b87_a87_d87_i87 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:531_b48_a48_d48_i48 @atom:531_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:532_b48_a48_d48_i48 @atom:532_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:533_b48_a48_d48_i48 @atom:533_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:534_b48_a48_d48_i48 @atom:534_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:535_b81_a81_d81_i81 @atom:535_b81_a81_d81_i81 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:536_b60_a60_d60_i60 @atom:536_b60_a60_d60_i60 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:537_b45_a45_d45_i45 @atom:537_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:538_b49_a49_d49_i49 @atom:538_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:539_b49_a49_d49_i49 @atom:539_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:540_b49_a49_d49_i49 @atom:540_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:541_b49_a49_d49_i49 @atom:541_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:542_b49_a49_d49_i49 @atom:542_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:543_b49_a49_d49_i49 @atom:543_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:544_b56_a56_d56_i56 @atom:544_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:545_b48_a48_d48_i48 @atom:545_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:546_b48_a48_d48_i48 @atom:546_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:547_b48_a48_d48_i48 @atom:547_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:548_b48_a48_d48_i48 @atom:548_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:549_b48_a48_d48_i48 @atom:549_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:550_b48_a48_d48_i48 @atom:550_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:551_b48_a48_d48_i48 @atom:551_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:552_b48_a48_d48_i48 @atom:552_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:553_b48_a48_d48_i48 @atom:553_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:554_b49_a49_d49_i49 @atom:554_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:555_b49_a49_d49_i49 @atom:555_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:556_b49_a49_d49_i49 @atom:556_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:557_b49_a49_d49_i49 @atom:557_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:558_b49_a49_d49_i49 @atom:558_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:559_b49_a49_d49_i49 @atom:559_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:560_b49_a49_d49_i49 @atom:560_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:561_b56_a56_d56_i56 @atom:561_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:562_b59_a59_d59_i59 @atom:562_b59_a59_d59_i59 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:563_b56_a56_d56_i56 @atom:563_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:564_b60_a60_d60_i60 @atom:564_b60_a60_d60_i60 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:565_b60_a60_d60_i60 @atom:565_b60_a60_d60_i60 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:566_b48_a48_d48_i48 @atom:566_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:567_b61_a61_d61_i61 @atom:567_b61_a61_d61_i61 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:568_b62_a62_d62_i62 @atom:568_b62_a62_d62_i62 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:569_b57_a57_d57_i57 @atom:569_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:570_b49_a49_d49_i49 @atom:570_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:571_b49_a49_d49_i49 @atom:571_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:572_b49_a49_d49_i49 @atom:572_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:573_b45_a45_d45_i45 @atom:573_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:574_b16_a16_d16_i16 @atom:574_b16_a16_d16_i16 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:575_b82_a82_d82_i82 @atom:575_b82_a82_d82_i82 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:576_b61_a61_d61_i61 @atom:576_b61_a61_d61_i61 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:577_b83_a83_d83_i83 @atom:577_b83_a83_d83_i83 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:578_b84_a84_d84_i84 @atom:578_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:579_b49_a49_d49_i49 @atom:579_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:580_b49_a49_d49_i49 @atom:580_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:581_b49_a49_d49_i49 @atom:581_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:582_b56_a56_d56_i56 @atom:582_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:583_b59_a59_d59_i59 @atom:583_b59_a59_d59_i59 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:584_b49_a49_d49_i49 @atom:584_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:585_b48_a48_d48_i48 @atom:585_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:586_b13_a13_d13_i13 @atom:586_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:587_b56_a56_d56_i56 @atom:587_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:588_b48_a48_d48_i48 @atom:588_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:589_b48_a48_d48_i48 @atom:589_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:590_b48_a48_d48_i48 @atom:590_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:591_b48_a48_d48_i48 @atom:591_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:592_b48_a48_d48_i48 @atom:592_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:593_b48_a48_d48_i48 @atom:593_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:594_b49_a49_d49_i49 @atom:594_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:595_b49_a49_d49_i49 @atom:595_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:596_b49_a49_d49_i49 @atom:596_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:597_b49_a49_d49_i49 @atom:597_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:598_b57_a57_d57_i57 @atom:598_b57_a57_d57_i57 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:599_b82_a82_d82_i82 @atom:599_b82_a82_d82_i82 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:600_b61_a61_d61_i61 @atom:600_b61_a61_d61_i61 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:601_b83_a83_d83_i83 @atom:601_b83_a83_d83_i83 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:602_b84_a84_d84_i84 @atom:602_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:603_b13_a13_d13_i13 @atom:603_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:604_b49_a49_d49_i49 @atom:604_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:605_b49_a49_d49_i49 @atom:605_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:606_b49_a49_d49_i49 @atom:606_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:607_b46_a46_d46_i46 @atom:607_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:608_b13_a13_d13_i13 @atom:608_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:609_b13_a13_d13_i13 @atom:609_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:610_b13_a13_d13_i13 @atom:610_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:611_b13_a13_d13_i13 @atom:611_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:612_b13_a13_d13_i13 @atom:612_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:613_b13_a13_d13_i13 @atom:613_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:614_b13_a13_d13_i13 @atom:614_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:615_b13_a13_d13_i13 @atom:615_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:616_b13_a13_d13_i13 @atom:616_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:617_b13_a13_d13_i13 @atom:617_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:618_b13_a13_d13_i13 @atom:618_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:619_b13_a13_d13_i13 @atom:619_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:620_b13_a13_d13_i13 @atom:620_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:621_b13_a13_d13_i13 @atom:621_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:622_b13_a13_d13_i13 @atom:622_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:623_b15_a15_d15_i15 @atom:623_b15_a15_d15_i15 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:624_b17_a17_d17_i17 @atom:624_b17_a17_d17_i17 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:625_b48_a48_d48_i48 @atom:625_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:626_b89_a89_d89_i89 @atom:626_b89_a89_d89_i89 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:627_b90_a90_d90_i90 @atom:627_b90_a90_d90_i90 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:628_b91_a91_d91_i91 @atom:628_b91_a91_d91_i91 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:629_b91_a91_d91_i91 @atom:629_b91_a91_d91_i91 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:630_b13_a13_d13_i13 @atom:630_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:631_b86_a86_d86_i86 @atom:631_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:632_b86_a86_d86_i86 @atom:632_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:633_b86_a86_d86_i86 @atom:633_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:634_b86_a86_d86_i86 @atom:634_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:635_b86_a86_d86_i86 @atom:635_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:636_b86_a86_d86_i86 @atom:636_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:637_b16_a16_d16_i16 @atom:637_b16_a16_d16_i16 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:638_b92_a92_d92_i92 @atom:638_b92_a92_d92_i92 lj/cut/coul/long 0.054 3.473 - pair_coeff @atom:639_b93_a93_d93_i93 @atom:639_b93_a93_d93_i93 lj/cut/coul/long 0.05 3.3 - pair_coeff @atom:640_b94_a94_d94_i94 @atom:640_b94_a94_d94_i94 lj/cut/coul/long 0.05 3.3 - pair_coeff @atom:641_b95_a95_d95_i95 @atom:641_b95_a95_d95_i95 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:642_b13_a13_d13_i13 @atom:642_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:643_b46_a46_d46_i46 @atom:643_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:644_b96_a96_d96_i96 @atom:644_b96_a96_d96_i96 lj/cut/coul/long 0.06 3.75 - pair_coeff @atom:645_b97_a97_d97_i97 @atom:645_b97_a97_d97_i97 lj/cut/coul/long 0.054 3.473 - pair_coeff @atom:646_b98_a98_d98_i98 @atom:646_b98_a98_d98_i98 lj/cut/coul/long 0.05 3.3 - pair_coeff @atom:647_b99_a99_d99_i99 @atom:647_b99_a99_d99_i99 lj/cut/coul/long 0.05 3.3 - pair_coeff @atom:648_b100_a100_d100_i100 @atom:648_b100_a100_d100_i100 lj/cut/coul/long 0.04 2.95 - pair_coeff @atom:649_b47_a47_d47_i47 @atom:649_b47_a47_d47_i47 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:650_b21_a21_d21_i21 @atom:650_b21_a21_d21_i21 lj/cut/coul/long 0.3 3.4 - pair_coeff @atom:651_b46_a46_d46_i46 @atom:651_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:652_b91_a91_d91_i91 @atom:652_b91_a91_d91_i91 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:653_b91_a91_d91_i91 @atom:653_b91_a91_d91_i91 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:654_b91_a91_d91_i91 @atom:654_b91_a91_d91_i91 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:655_b48_a48_d48_i48 @atom:655_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:656_b49_a49_d49_i49 @atom:656_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:657_b48_a48_d48_i48 @atom:657_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:658_b49_a49_d49_i49 @atom:658_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:659_b48_a48_d48_i48 @atom:659_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:660_b1_a1_d1_i1 @atom:660_b1_a1_d1_i1 lj/cut/coul/long 0.061 2.85 - pair_coeff @atom:661_b48_a48_d48_i48 @atom:661_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:662_b1_a1_d1_i1 @atom:662_b1_a1_d1_i1 lj/cut/coul/long 0.061 2.85 - pair_coeff @atom:663_b65_a65_d65_i65 @atom:663_b65_a65_d65_i65 lj/cut/coul/long 0.47 3.47 - pair_coeff @atom:664_b2_a2_d2_i2 @atom:664_b2_a2_d2_i2 lj/cut/coul/long 0.118 3.905 - pair_coeff @atom:665_b48_a48_d48_i48 @atom:665_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:666_b13_a13_d13_i13 @atom:666_b13_a13_d13_i13 lj/cut/coul/long 0.062 3.25 - pair_coeff @atom:667_b1_a1_d1_i1 @atom:667_b1_a1_d1_i1 lj/cut/coul/long 0.061 2.94 - pair_coeff @atom:668_b48_a48_d48_i48 @atom:668_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:669_b1_a1_d1_i1 @atom:669_b1_a1_d1_i1 lj/cut/coul/long 0.061 2.85 - pair_coeff @atom:670_b48_a48_d48_i48 @atom:670_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:671_b65_a65_d65_i65 @atom:671_b65_a65_d65_i65 lj/cut/coul/long 0.47 3.47 - pair_coeff @atom:672_b48_a48_d48_i48 @atom:672_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:673_b66_a66_d66_i66 @atom:673_b66_a66_d66_i66 lj/cut/coul/long 0.6 3.75 - pair_coeff @atom:674_b91_a91_d91_i91 @atom:674_b91_a91_d91_i91 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:675_b15_a15_d15_i15 @atom:675_b15_a15_d15_i15 lj/cut/coul/long 0.25 3.55 - pair_coeff @atom:676_b48_a48_d48_i48 @atom:676_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:677_b48_a48_d48_i48 @atom:677_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:678_b48_a48_d48_i48 @atom:678_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:679_b48_a48_d48_i48 @atom:679_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:680_b48_a48_d48_i48 @atom:680_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:681_b49_a49_d49_i49 @atom:681_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:682_b49_a49_d49_i49 @atom:682_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:683_b48_a48_d48_i48 @atom:683_b48_a48_d48_i48 lj/cut/coul/long 0.05 3.55 - pair_coeff @atom:684_b55_a55_d55_i55 @atom:684_b55_a55_d55_i55 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:685_b45_a45_d45_i45 @atom:685_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:686_b45_a45_d45_i45 @atom:686_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:687_b49_a49_d49_i49 @atom:687_b49_a49_d49_i49 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:688_b13_a13_d13_i13 @atom:688_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:689_b13_a13_d13_i13 @atom:689_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:690_b101_a101_d101_i101 @atom:690_b101_a101_d101_i101 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:691_b56_a56_d56_i56 @atom:691_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:692_b101_a101_d101_i101 @atom:692_b101_a101_d101_i101 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:693_b48_a48_d48_i48 @atom:693_b48_a48_d48_i48 lj/cut/coul/long 0.05 3.55 - pair_coeff @atom:694_b18_a18_d18_i18 @atom:694_b18_a18_d18_i18 lj/cut/coul/long 0.17 3.2 - pair_coeff @atom:695_b19_a19_d19_i19 @atom:695_b19_a19_d19_i19 lj/cut/coul/long 0.066 3.3 - pair_coeff @atom:696_b13_a13_d13_i13 @atom:696_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.3 - pair_coeff @atom:697_b13_a13_d13_i13 @atom:697_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.3 - pair_coeff @atom:698_b13_a13_d13_i13 @atom:698_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.3 - pair_coeff @atom:699_b13_a13_d13_i13 @atom:699_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.3 - pair_coeff @atom:700_b46_a46_d46_i46 @atom:700_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.5 - pair_coeff @atom:701_b102_a102_d102_i102 @atom:701_b102_a102_d102_i102 lj/cut/coul/long 0.12 3.25 - pair_coeff @atom:702_b103_a103_d103_i103 @atom:702_b103_a103_d103_i103 lj/cut/coul/long 0.17 2.96 - pair_coeff @atom:703_b13_a13_d13_i13 @atom:703_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:704_b46_a46_d46_i46 @atom:704_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.5 - pair_coeff @atom:705_b13_a13_d13_i13 @atom:705_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:706_b13_a13_d13_i13 @atom:706_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:707_b13_a13_d13_i13 @atom:707_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:708_b102_a102_d102_i102 @atom:708_b102_a102_d102_i102 lj/cut/coul/long 0.12 3.25 - pair_coeff @atom:709_b48_a48_d48_i48 @atom:709_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:710_b13_a13_d13_i13 @atom:710_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.3 - pair_coeff @atom:711_b56_a56_d56_i56 @atom:711_b56_a56_d56_i56 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:712_b4_a4_d4_i4 @atom:712_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:713_b3_a3_d3_i3 @atom:713_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:714_b20_a20_d20_i20 @atom:714_b20_a20_d20_i20 lj/cut/coul/long 0.17 3.0 - pair_coeff @atom:715_b13_a13_d13_i13 @atom:715_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:716_b13_a13_d13_i13 @atom:716_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:717_b13_a13_d13_i13 @atom:717_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:718_b46_a46_d46_i46 @atom:718_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.42 - pair_coeff @atom:719_b46_a46_d46_i46 @atom:719_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.42 - pair_coeff @atom:720_b46_a46_d46_i46 @atom:720_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.42 - pair_coeff @atom:721_b20_a20_d20_i20 @atom:721_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:722_b104_a104_d104_i104 @atom:722_b104_a104_d104_i104 lj/cut/coul/long 0.2 3.74 - pair_coeff @atom:723_b13_a13_d13_i13 @atom:723_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:724_b13_a13_d13_i13 @atom:724_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:725_b46_a46_d46_i46 @atom:725_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:726_b64_a64_d64_i64 @atom:726_b64_a64_d64_i64 lj/cut/coul/long 0.2 3.74 - pair_coeff @atom:727_b1_a1_d1_i1 @atom:727_b1_a1_d1_i1 lj/cut/coul/long 0.061 3.1181 - pair_coeff @atom:728_b24_a24_d24_i24 @atom:728_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.15 - pair_coeff @atom:729_b4_a4_d4_i4 @atom:729_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.86 - pair_coeff @atom:730_b44_a44_d44_i44 @atom:730_b44_a44_d44_i44 lj/cut/coul/long 0.17 3.3 - pair_coeff @atom:731_b44_a44_d44_i44 @atom:731_b44_a44_d44_i44 lj/cut/coul/long 0.17 3.3 - pair_coeff @atom:732_b44_a44_d44_i44 @atom:732_b44_a44_d44_i44 lj/cut/coul/long 0.17 3.3 - pair_coeff @atom:733_b13_a13_d13_i13 @atom:733_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:734_b13_a13_d13_i13 @atom:734_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:735_b13_a13_d13_i13 @atom:735_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:736_b13_a13_d13_i13 @atom:736_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:737_b13_a13_d13_i13 @atom:737_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:738_b13_a13_d13_i13 @atom:738_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:739_b45_a45_d45_i45 @atom:739_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:740_b45_a45_d45_i45 @atom:740_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:741_b46_a46_d46_i46 @atom:741_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.5 - pair_coeff @atom:742_b13_a13_d13_i13 @atom:742_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:743_b13_a13_d13_i13 @atom:743_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:744_b13_a13_d13_i13 @atom:744_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:745_b13_a13_d13_i13 @atom:745_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:746_b48_a48_d48_i48 @atom:746_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:747_b48_a48_d48_i48 @atom:747_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:748_b48_a48_d48_i48 @atom:748_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:749_b13_a13_d13_i13 @atom:749_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:750_b13_a13_d13_i13 @atom:750_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:751_b13_a13_d13_i13 @atom:751_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:752_b13_a13_d13_i13 @atom:752_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:753_b13_a13_d13_i13 @atom:753_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:754_b13_a13_d13_i13 @atom:754_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:755_b19_a19_d19_i19 @atom:755_b19_a19_d19_i19 lj/cut/coul/long 0.086 3.3 - pair_coeff @atom:756_b46_a46_d46_i46 @atom:756_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.42 - pair_coeff @atom:757_b19_a19_d19_i19 @atom:757_b19_a19_d19_i19 lj/cut/coul/long 0.21 3.3 - pair_coeff @atom:758_b19_a19_d19_i19 @atom:758_b19_a19_d19_i19 lj/cut/coul/long 0.135 3.3 - pair_coeff @atom:759_b19_a19_d19_i19 @atom:759_b19_a19_d19_i19 lj/cut/coul/long 0.1 3.3 - pair_coeff @atom:760_b46_a46_d46_i46 @atom:760_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.5 - pair_coeff @atom:761_b51_a51_d51_i51 @atom:761_b51_a51_d51_i51 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:762_b51_a51_d51_i51 @atom:762_b51_a51_d51_i51 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:763_b51_a51_d51_i51 @atom:763_b51_a51_d51_i51 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:764_b5_a5_d5_i5 @atom:764_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.12 - pair_coeff @atom:765_b7_a7_d7_i7 @atom:765_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:766_b105_a105_d105_i105 @atom:766_b105_a105_d105_i105 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:767_b105_a105_d105_i105 @atom:767_b105_a105_d105_i105 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:768_b105_a105_d105_i105 @atom:768_b105_a105_d105_i105 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:769_b19_a19_d19_i19 @atom:769_b19_a19_d19_i19 lj/cut/coul/long 0.21 3.3 - pair_coeff @atom:770_b53_a53_d53_i53 @atom:770_b53_a53_d53_i53 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:771_b54_a54_d54_i54 @atom:771_b54_a54_d54_i54 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:772_b13_a13_d13_i13 @atom:772_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:773_b13_a13_d13_i13 @atom:773_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:774_b13_a13_d13_i13 @atom:774_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:775_b13_a13_d13_i13 @atom:775_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:776_b84_a84_d84_i84 @atom:776_b84_a84_d84_i84 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:777_b87_a87_d87_i87 @atom:777_b87_a87_d87_i87 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:778_b86_a86_d86_i86 @atom:778_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:779_b86_a86_d86_i86 @atom:779_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:780_b46_a46_d46_i46 @atom:780_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:781_b13_a13_d13_i13 @atom:781_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:782_b3_a3_d3_i3 @atom:782_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:783_b53_a53_d53_i53 @atom:783_b53_a53_d53_i53 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:784_b52_a52_d52_i52 @atom:784_b52_a52_d52_i52 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:785_b54_a54_d54_i54 @atom:785_b54_a54_d54_i54 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:786_b1_a1_d1_i1 @atom:786_b1_a1_d1_i1 lj/cut/coul/long 0.061 2.94 - pair_coeff @atom:787_b13_a13_d13_i13 @atom:787_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:788_b46_a46_d46_i46 @atom:788_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:789_b13_a13_d13_i13 @atom:789_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:790_b13_a13_d13_i13 @atom:790_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:791_b13_a13_d13_i13 @atom:791_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:792_b13_a13_d13_i13 @atom:792_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:793_b13_a13_d13_i13 @atom:793_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:794_b13_a13_d13_i13 @atom:794_b13_a13_d13_i13 lj/cut/coul/long 0.097 3.5 - pair_coeff @atom:795_b1_a1_d1_i1 @atom:795_b1_a1_d1_i1 lj/cut/coul/long 0.053 2.95 - pair_coeff @atom:796_b13_a13_d13_i13 @atom:796_b13_a13_d13_i13 lj/cut/coul/long 0.062 3.25 - pair_coeff @atom:797_b46_a46_d46_i46 @atom:797_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:798_b13_a13_d13_i13 @atom:798_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:799_b13_a13_d13_i13 @atom:799_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:800_b21_a21_d21_i21 @atom:800_b21_a21_d21_i21 lj/cut/coul/long 0.3 3.4 - pair_coeff @atom:801_b13_a13_d13_i13 @atom:801_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:802_b46_a46_d46_i46 @atom:802_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:803_b13_a13_d13_i13 @atom:803_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:804_b13_a13_d13_i13 @atom:804_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:805_b65_a65_d65_i65 @atom:805_b65_a65_d65_i65 lj/cut/coul/long 0.47 3.47 - pair_coeff @atom:806_b13_a13_d13_i13 @atom:806_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:807_b46_a46_d46_i46 @atom:807_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:808_b13_a13_d13_i13 @atom:808_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:809_b13_a13_d13_i13 @atom:809_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:810_b1_a1_d1_i1 @atom:810_b1_a1_d1_i1 lj/cut/coul/long 0.061 2.94 - pair_coeff @atom:811_b21_a21_d21_i21 @atom:811_b21_a21_d21_i21 lj/cut/coul/long 0.3 3.4 - pair_coeff @atom:812_b65_a65_d65_i65 @atom:812_b65_a65_d65_i65 lj/cut/coul/long 0.47 3.47 - pair_coeff @atom:813_b48_a48_d48_i48 @atom:813_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:814_b20_a20_d20_i20 @atom:814_b20_a20_d20_i20 lj/cut/coul/long 0.14 2.9 - pair_coeff @atom:815_b13_a13_d13_i13 @atom:815_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:816_b1_a1_d1_i1 @atom:816_b1_a1_d1_i1 lj/cut/coul/long 0.06 2.9 - pair_coeff @atom:817_b24_a24_d24_i24 @atom:817_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:818_b48_a48_d48_i48 @atom:818_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:819_b13_a13_d13_i13 @atom:819_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:820_b3_a3_d3_i3 @atom:820_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:821_b3_a3_d3_i3 @atom:821_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:822_b4_a4_d4_i4 @atom:822_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:823_b24_a24_d24_i24 @atom:823_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:824_b45_a45_d45_i45 @atom:824_b45_a45_d45_i45 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:825_b5_a5_d5_i5 @atom:825_b5_a5_d5_i5 lj/cut/coul/long 0.17 3.12 - pair_coeff @atom:826_b7_a7_d7_i7 @atom:826_b7_a7_d7_i7 lj/cut/coul/long 0.0 0.0 - pair_coeff @atom:827_b13_a13_d13_i13 @atom:827_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:828_b13_a13_d13_i13 @atom:828_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:829_b86_a86_d86_i86 @atom:829_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:830_b86_a86_d86_i86 @atom:830_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:831_b86_a86_d86_i86 @atom:831_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:832_b86_a86_d86_i86 @atom:832_b86_a86_d86_i86 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:833_b48_a48_d48_i48 @atom:833_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:834_b106_a106_d106_i106 @atom:834_b106_a106_d106_i106 lj/cut/coul/long 0.0125 1.96 - pair_coeff @atom:835_b13_a13_d13_i13 @atom:835_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:836_b13_a13_d13_i13 @atom:836_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:837_b13_a13_d13_i13 @atom:837_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:838_b66_a66_d66_i66 @atom:838_b66_a66_d66_i66 lj/cut/coul/long 0.6 3.75 - pair_coeff @atom:839_b46_a46_d46_i46 @atom:839_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:840_b24_a24_d24_i24 @atom:840_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:841_b48_a48_d48_i48 @atom:841_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:842_b48_a48_d48_i48 @atom:842_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:843_b24_a24_d24_i24 @atom:843_b24_a24_d24_i24 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:844_b48_a48_d48_i48 @atom:844_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:845_b3_a3_d3_i3 @atom:845_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:846_b4_a4_d4_i4 @atom:846_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:847_b107_a107_d107_i107 @atom:847_b107_a107_d107_i107 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:848_b13_a13_d13_i13 @atom:848_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:849_b13_a13_d13_i13 @atom:849_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:850_b13_a13_d13_i13 @atom:850_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:851_b13_a13_d13_i13 @atom:851_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:852_b46_a46_d46_i46 @atom:852_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.42 - pair_coeff @atom:853_b3_a3_d3_i3 @atom:853_b3_a3_d3_i3 lj/cut/coul/long 0.105 3.75 - pair_coeff @atom:854_b4_a4_d4_i4 @atom:854_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:855_b46_a46_d46_i46 @atom:855_b46_a46_d46_i46 lj/cut/coul/long 0.015 2.42 - pair_coeff @atom:856_b13_a13_d13_i13 @atom:856_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:857_b13_a13_d13_i13 @atom:857_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:858_b13_a13_d13_i13 @atom:858_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:859_b13_a13_d13_i13 @atom:859_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:860_b13_a13_d13_i13 @atom:860_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:861_b13_a13_d13_i13 @atom:861_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:862_b13_a13_d13_i13 @atom:862_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:863_b13_a13_d13_i13 @atom:863_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:864_b13_a13_d13_i13 @atom:864_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:865_b13_a13_d13_i13 @atom:865_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:866_b108_a108_d108_i108 @atom:866_b108_a108_d108_i108 lj/cut/coul/long 0.1 4.0 - pair_coeff @atom:867_b108_a108_d108_i108 @atom:867_b108_a108_d108_i108 lj/cut/coul/long 0.1 4.0 - pair_coeff @atom:868_b108_a108_d108_i108 @atom:868_b108_a108_d108_i108 lj/cut/coul/long 0.1 4.0 - pair_coeff @atom:869_b108_a108_d108_i108 @atom:869_b108_a108_d108_i108 lj/cut/coul/long 0.1 4.0 - pair_coeff @atom:870_b45_a45_d45_i45 @atom:870_b45_a45_d45_i45 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:871_b13_a13_d13_i13 @atom:871_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:872_b13_a13_d13_i13 @atom:872_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:873_b13_a13_d13_i13 @atom:873_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:874_b13_a13_d13_i13 @atom:874_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:875_b1_a1_d1_i1 @atom:875_b1_a1_d1_i1 lj/cut/coul/long 0.72 3.08 - pair_coeff @atom:876_b21_a21_d21_i21 @atom:876_b21_a21_d21_i21 lj/cut/coul/long 0.11779 4.18 - pair_coeff @atom:877_b65_a65_d65_i65 @atom:877_b65_a65_d65_i65 lj/cut/coul/long 0.09 4.51 - pair_coeff @atom:878_b66_a66_d66_i66 @atom:878_b66_a66_d66_i66 lj/cut/coul/long 0.07 5.15 - pair_coeff @atom:879_b68_a68_d68_i68 @atom:879_b68_a68_d68_i68 lj/cut/coul/long 0.018279 2.7 - pair_coeff @atom:880_b69_a69_d69_i69 @atom:880_b69_a69_d69_i69 lj/cut/coul/long 0.002772 3.35 - pair_coeff @atom:881_b70_a70_d70_i70 @atom:881_b70_a70_d70_i70 lj/cut/coul/long 0.000328 4.06 - pair_coeff @atom:882_b71_a71_d71_i71 @atom:882_b71_a71_d71_i71 lj/cut/coul/long 0.000171 4.32 - pair_coeff @atom:883_b72_a72_d72_i72 @atom:883_b72_a72_d72_i72 lj/cut/coul/long 8.1e-05 4.82 - pair_coeff @atom:884_b73_a73_d73_i73 @atom:884_b73_a73_d73_i73 lj/cut/coul/long 0.875044 2.91 - pair_coeff @atom:885_b74_a74_d74_i74 @atom:885_b74_a74_d74_i74 lj/cut/coul/long 0.449657 3.47 - pair_coeff @atom:886_b75_a75_d75_i75 @atom:886_b75_a75_d75_i75 lj/cut/coul/long 0.118226 3.82 - pair_coeff @atom:887_b76_a76_d76_i76 @atom:887_b76_a76_d76_i76 lj/cut/coul/long 0.047096 4.18 - pair_coeff @atom:888_b13_a13_d13_i13 @atom:888_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:889_b13_a13_d13_i13 @atom:889_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:890_b13_a13_d13_i13 @atom:890_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:891_b13_a13_d13_i13 @atom:891_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 - pair_coeff @atom:892_b46_a46_d46_i46 @atom:892_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.5 - pair_coeff @atom:893_b53_a53_d53_i53 @atom:893_b53_a53_d53_i53 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:894_b48_a48_d48_i48 @atom:894_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:895_b53_a53_d53_i53 @atom:895_b53_a53_d53_i53 lj/cut/coul/long 0.17 3.25 - pair_coeff @atom:896_b48_a48_d48_i48 @atom:896_b48_a48_d48_i48 lj/cut/coul/long 0.07 3.55 - pair_coeff @atom:897_b109_a109_d109_i109 @atom:897_b109_a109_d109_i109 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:898_b109_a109_d109_i109 @atom:898_b109_a109_d109_i109 lj/cut/coul/long 0.076 3.55 - pair_coeff @atom:899_b46_a46_d46_i46 @atom:899_b46_a46_d46_i46 lj/cut/coul/long 0.03 2.42 - pair_coeff @atom:900_b47_a47_d47_i47 @atom:900_b47_a47_d47_i47 lj/cut/coul/long 0.086 3.3 - pair_coeff @atom:901_b47_a47_d47_i47 @atom:901_b47_a47_d47_i47 lj/cut/coul/long 0.086 3.3 - pair_coeff @atom:902_b47_a47_d47_i47 @atom:902_b47_a47_d47_i47 lj/cut/coul/long 0.086 3.3 - pair_coeff @atom:903_b110_a110_d110_i110 @atom:903_b110_a110_d110_i110 lj/cut/coul/long 0.086 3.3 - pair_coeff @atom:904_b110_a110_d110_i110 @atom:904_b110_a110_d110_i110 lj/cut/coul/long 0.086 3.3 - pair_coeff @atom:905_b4_a4_d4_i4 @atom:905_b4_a4_d4_i4 lj/cut/coul/long 0.21 2.96 - pair_coeff @atom:906_b13_a13_d13_i13 @atom:906_b13_a13_d13_i13 lj/cut/coul/long 0.066 3.5 + pair_coeff @atom:1_b001_a001_d001_i001 @atom:1_b001_a001_d001_i001 0.061 2.94 + pair_coeff @atom:2_b002_a002_d002_i002 @atom:2_b002_a002_d002_i002 0.118 3.905 + pair_coeff @atom:3_b003_a003_d003_i003 @atom:3_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:4_b004_a004_d004_i004 @atom:4_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:5_b005_a005_d005_i005 @atom:5_b005_a005_d005_i005 0.17 3.0 + pair_coeff @atom:6_b006_a006_d006_i006 @atom:6_b006_a006_d006_i006 0.16 3.91 + pair_coeff @atom:7_b007_a007_d007_i007 @atom:7_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:8_b008_a008_d008_i008 @atom:8_b008_a008_d008_i008 0.294 3.73 + pair_coeff @atom:9_b006_a006_d006_i006 @atom:9_b006_a006_d006_i006 0.207 3.775 + pair_coeff @atom:10_b006_a006_d006_i006 @atom:10_b006_a006_d006_i006 0.175 3.905 + pair_coeff @atom:11_b006_a006_d006_i006 @atom:11_b006_a006_d006_i006 0.16 3.91 + pair_coeff @atom:12_b006_a006_d006_i006 @atom:12_b006_a006_d006_i006 0.145 3.96 + pair_coeff @atom:13_b002_a002_d002_i002 @atom:13_b002_a002_d002_i002 0.118 3.905 + pair_coeff @atom:14_b009_a009_d009_i009 @atom:14_b009_a009_d009_i009 0.14 3.85 + pair_coeff @atom:15_b010_a010_d010_i010 @atom:15_b010_a010_d010_i010 0.08 3.85 + pair_coeff @atom:16_b011_a011_d011_i011 @atom:16_b011_a011_d011_i011 0.115 3.8 + pair_coeff @atom:17_b012_a012_d012_i012 @atom:17_b012_a012_d012_i012 0.11 3.75 + pair_coeff @atom:18_b013_a013_d013_i013 @atom:18_b013_a013_d013_i013 0.05 3.8 + pair_coeff @atom:19_b014_a014_d014_i014 @atom:19_b014_a014_d014_i014 0.105 3.75 + pair_coeff @atom:20_b005_a005_d005_i005 @atom:20_b005_a005_d005_i005 0.17 3.07 + pair_coeff @atom:21_b007_a007_d007_i007 @atom:21_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:22_b006_a006_d006_i006 @atom:22_b006_a006_d006_i006 0.207 3.775 + pair_coeff @atom:23_b002_a002_d002_i002 @atom:23_b002_a002_d002_i002 0.118 3.905 + pair_coeff @atom:24_b015_a015_d015_i015 @atom:24_b015_a015_d015_i015 0.25 3.7 + pair_coeff @atom:25_b015_a015_d015_i015 @atom:25_b015_a015_d015_i015 0.25 3.55 + pair_coeff @atom:26_b016_a016_d016_i016 @atom:26_b016_a016_d016_i016 0.25 3.55 + pair_coeff @atom:27_b016_a016_d016_i016 @atom:27_b016_a016_d016_i016 0.25 3.55 + pair_coeff @atom:28_b017_a017_d017_i017 @atom:28_b017_a017_d017_i017 0.0 0.0 + pair_coeff @atom:29_b017_a017_d017_i017 @atom:29_b017_a017_d017_i017 0.0 0.0 + pair_coeff @atom:30_b006_a006_d006_i006 @atom:30_b006_a006_d006_i006 0.207 3.775 + pair_coeff @atom:31_b002_a002_d002_i002 @atom:31_b002_a002_d002_i002 0.118 3.905 + pair_coeff @atom:32_b006_a006_d006_i006 @atom:32_b006_a006_d006_i006 0.17 3.8 + pair_coeff @atom:33_b002_a002_d002_i002 @atom:33_b002_a002_d002_i002 0.118 3.8 + pair_coeff @atom:34_b006_a006_d006_i006 @atom:34_b006_a006_d006_i006 0.17 3.8 + pair_coeff @atom:35_b002_a002_d002_i002 @atom:35_b002_a002_d002_i002 0.118 3.8 + pair_coeff @atom:36_b018_a018_d018_i018 @atom:36_b018_a018_d018_i018 0.17 3.2 + pair_coeff @atom:37_b019_a019_d019_i019 @atom:37_b019_a019_d019_i019 0.15 3.65 + pair_coeff @atom:38_b006_a006_d006_i006 @atom:38_b006_a006_d006_i006 0.207 3.775 + pair_coeff @atom:39_b010_a010_d010_i010 @atom:39_b010_a010_d010_i010 0.08 3.85 + pair_coeff @atom:40_b013_a013_d013_i013 @atom:40_b013_a013_d013_i013 0.05 3.8 + pair_coeff @atom:41_b020_a020_d020_i020 @atom:41_b020_a020_d020_i020 0.17 3.0 + pair_coeff @atom:42_b006_a006_d006_i006 @atom:42_b006_a006_d006_i006 0.17 3.8 + pair_coeff @atom:43_b002_a002_d002_i002 @atom:43_b002_a002_d002_i002 0.118 3.8 + pair_coeff @atom:44_b002_a002_d002_i002 @atom:44_b002_a002_d002_i002 0.118 3.8 + pair_coeff @atom:45_b021_a021_d021_i021 @atom:45_b021_a021_d021_i021 0.3 3.4 + pair_coeff @atom:46_b010_a010_d010_i010 @atom:46_b010_a010_d010_i010 0.08 3.8 + pair_coeff @atom:47_b021_a021_d021_i021 @atom:47_b021_a021_d021_i021 0.3 3.47 + pair_coeff @atom:48_b013_a013_d013_i013 @atom:48_b013_a013_d013_i013 0.05 3.8 + pair_coeff @atom:49_b021_a021_d021_i021 @atom:49_b021_a021_d021_i021 0.266 3.47 + pair_coeff @atom:50_b022_a022_d022_i022 @atom:50_b022_a022_d022_i022 0.395 3.56 + pair_coeff @atom:51_b023_a023_d023_i023 @atom:51_b023_a023_d023_i023 0.28 2.93 + pair_coeff @atom:52_b006_a006_d006_i006 @atom:52_b006_a006_d006_i006 0.16 3.81 + pair_coeff @atom:53_b004_a004_d004_i004 @atom:53_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:54_b024_a024_d024_i024 @atom:54_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:55_b003_a003_d003_i003 @atom:55_b003_a003_d003_i003 0.115 3.8 + pair_coeff @atom:56_b006_a006_d006_i006 @atom:56_b006_a006_d006_i006 0.17 3.8 + pair_coeff @atom:57_b025_a025_d025_i025 @atom:57_b025_a025_d025_i025 0.0 0.0 + pair_coeff @atom:58_b026_a026_d026_i026 @atom:58_b026_a026_d026_i026 0.02 2.556 + pair_coeff @atom:59_b027_a027_d027_i027 @atom:59_b027_a027_d027_i027 0.069 2.78 + pair_coeff @atom:60_b028_a028_d028_i028 @atom:60_b028_a028_d028_i028 0.2339 3.401 + pair_coeff @atom:61_b029_a029_d029_i029 @atom:61_b029_a029_d029_i029 0.317 3.624 + pair_coeff @atom:62_b030_a030_d030_i030 @atom:62_b030_a030_d030_i030 0.433 3.935 + pair_coeff @atom:63_b031_a031_d031_i031 @atom:63_b031_a031_d031_i031 0.1521 3.15061 + pair_coeff @atom:64_b032_a032_d032_i032 @atom:64_b032_a032_d032_i032 0.0 0.0 + pair_coeff @atom:65_b031_a031_d031_i031 @atom:65_b031_a031_d031_i031 0.155 3.15365 + pair_coeff @atom:66_b032_a032_d032_i032 @atom:66_b032_a032_d032_i032 0.0 0.0 + pair_coeff @atom:67_b033_a033_d033_i033 @atom:67_b033_a033_d033_i033 0.0 0.0 + pair_coeff @atom:68_b034_a034_d034_i034 @atom:68_b034_a034_d034_i034 0.15 3.176 + pair_coeff @atom:69_b035_a035_d035_i035 @atom:69_b035_a035_d035_i035 0.0 0.0 + pair_coeff @atom:70_b036_a036_d036_i036 @atom:70_b036_a036_d036_i036 0.1 3.27 + pair_coeff @atom:71_b037_a037_d037_i037 @atom:71_b037_a037_d037_i037 0.0 0.0 + pair_coeff @atom:72_b038_a038_d038_i038 @atom:72_b038_a038_d038_i038 0.0 0.0 + pair_coeff @atom:73_b039_a039_d039_i039 @atom:73_b039_a039_d039_i039 0.16 3.12 + pair_coeff @atom:74_b040_a040_d040_i040 @atom:74_b040_a040_d040_i040 0.0 0.0 + pair_coeff @atom:75_b041_a041_d041_i041 @atom:75_b041_a041_d041_i041 0.0 0.0 + pair_coeff @atom:76_b042_a042_d042_i042 @atom:76_b042_a042_d042_i042 0.1554 3.16557 + pair_coeff @atom:77_b043_a043_d043_i043 @atom:77_b043_a043_d043_i043 0.0 0.0 + pair_coeff @atom:78_b044_a044_d044_i044 @atom:78_b044_a044_d044_i044 0.17 3.42 + pair_coeff @atom:79_b045_a045_d045_i045 @atom:79_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:80_b013_a013_d013_i013 @atom:80_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:81_b013_a013_d013_i013 @atom:81_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:82_b013_a013_d013_i013 @atom:82_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:83_b013_a013_d013_i013 @atom:83_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:84_b013_a013_d013_i013 @atom:84_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:85_b046_a046_d046_i046 @atom:85_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:86_b047_a047_d047_i047 @atom:86_b047_a047_d047_i047 0.076 3.55 + pair_coeff @atom:87_b047_a047_d047_i047 @atom:87_b047_a047_d047_i047 0.076 3.55 + pair_coeff @atom:88_b047_a047_d047_i047 @atom:88_b047_a047_d047_i047 0.076 3.55 + pair_coeff @atom:89_b046_a046_d046_i046 @atom:89_b046_a046_d046_i046 0.03 2.42 + pair_coeff @atom:90_b048_a048_d048_i048 @atom:90_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:91_b049_a049_d049_i049 @atom:91_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:92_b048_a048_d048_i048 @atom:92_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:93_b013_a013_d013_i013 @atom:93_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:94_b013_a013_d013_i013 @atom:94_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:95_b050_a050_d050_i050 @atom:95_b050_a050_d050_i050 0.076 3.55 + pair_coeff @atom:96_b005_a005_d005_i005 @atom:96_b005_a005_d005_i005 0.17 3.12 + pair_coeff @atom:97_b007_a007_d007_i007 @atom:97_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:98_b046_a046_d046_i046 @atom:98_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:99_b013_a013_d013_i013 @atom:99_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:100_b013_a013_d013_i013 @atom:100_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:101_b013_a013_d013_i013 @atom:101_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:102_b013_a013_d013_i013 @atom:102_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:103_b013_a013_d013_i013 @atom:103_b013_a013_d013_i013 0.062 3.25 + pair_coeff @atom:104_b005_a005_d005_i005 @atom:104_b005_a005_d005_i005 0.17 3.07 + pair_coeff @atom:105_b007_a007_d007_i007 @atom:105_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:106_b001_a001_d001_i001 @atom:106_b001_a001_d001_i001 0.061 2.94 + pair_coeff @atom:107_b046_a046_d046_i046 @atom:107_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:108_b048_a048_d048_i048 @atom:108_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:109_b005_a005_d005_i005 @atom:109_b005_a005_d005_i005 0.17 3.07 + pair_coeff @atom:110_b007_a007_d007_i007 @atom:110_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:111_b005_a005_d005_i005 @atom:111_b005_a005_d005_i005 0.17 3.07 + pair_coeff @atom:112_b007_a007_d007_i007 @atom:112_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:113_b005_a005_d005_i005 @atom:113_b005_a005_d005_i005 0.17 3.07 + pair_coeff @atom:114_b007_a007_d007_i007 @atom:114_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:115_b013_a013_d013_i013 @atom:115_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:116_b013_a013_d013_i013 @atom:116_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:117_b013_a013_d013_i013 @atom:117_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:118_b046_a046_d046_i046 @atom:118_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:119_b020_a020_d020_i020 @atom:119_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:120_b050_a050_d050_i050 @atom:120_b050_a050_d050_i050 0.076 3.55 + pair_coeff @atom:121_b020_a020_d020_i020 @atom:121_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:122_b020_a020_d020_i020 @atom:122_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:123_b013_a013_d013_i013 @atom:123_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:124_b013_a013_d013_i013 @atom:124_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:125_b013_a013_d013_i013 @atom:125_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:126_b013_a013_d013_i013 @atom:126_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:127_b046_a046_d046_i046 @atom:127_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:128_b020_a020_d020_i020 @atom:128_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:129_b005_a005_d005_i005 @atom:129_b005_a005_d005_i005 0.17 3.07 + pair_coeff @atom:130_b007_a007_d007_i007 @atom:130_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:131_b051_a051_d051_i051 @atom:131_b051_a051_d051_i051 0.066 3.5 + pair_coeff @atom:132_b046_a046_d046_i046 @atom:132_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:133_b051_a051_d051_i051 @atom:133_b051_a051_d051_i051 0.066 3.5 + pair_coeff @atom:134_b046_a046_d046_i046 @atom:134_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:135_b051_a051_d051_i051 @atom:135_b051_a051_d051_i051 0.066 3.5 + pair_coeff @atom:136_b046_a046_d046_i046 @atom:136_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:137_b051_a051_d051_i051 @atom:137_b051_a051_d051_i051 0.066 3.5 + pair_coeff @atom:138_b046_a046_d046_i046 @atom:138_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:139_b051_a051_d051_i051 @atom:139_b051_a051_d051_i051 0.066 3.5 + pair_coeff @atom:140_b051_a051_d051_i051 @atom:140_b051_a051_d051_i051 0.066 3.5 + pair_coeff @atom:141_b048_a048_d048_i048 @atom:141_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:142_b015_a015_d015_i015 @atom:142_b015_a015_d015_i015 0.25 3.55 + pair_coeff @atom:143_b015_a015_d015_i015 @atom:143_b015_a015_d015_i015 0.25 3.7 + pair_coeff @atom:144_b016_a016_d016_i016 @atom:144_b016_a016_d016_i016 0.25 3.55 + pair_coeff @atom:145_b016_a016_d016_i016 @atom:145_b016_a016_d016_i016 0.25 3.55 + pair_coeff @atom:146_b017_a017_d017_i017 @atom:146_b017_a017_d017_i017 0.0 0.0 + pair_coeff @atom:147_b017_a017_d017_i017 @atom:147_b017_a017_d017_i017 0.0 0.0 + pair_coeff @atom:148_b013_a013_d013_i013 @atom:148_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:149_b013_a013_d013_i013 @atom:149_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:150_b013_a013_d013_i013 @atom:150_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:151_b013_a013_d013_i013 @atom:151_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:152_b013_a013_d013_i013 @atom:152_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:153_b013_a013_d013_i013 @atom:153_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:154_b013_a013_d013_i013 @atom:154_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:155_b013_a013_d013_i013 @atom:155_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:156_b013_a013_d013_i013 @atom:156_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:157_b013_a013_d013_i013 @atom:157_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:158_b013_a013_d013_i013 @atom:158_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:159_b013_a013_d013_i013 @atom:159_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:160_b013_a013_d013_i013 @atom:160_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:161_b013_a013_d013_i013 @atom:161_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:162_b013_a013_d013_i013 @atom:162_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:163_b048_a048_d048_i048 @atom:163_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:164_b016_a016_d016_i016 @atom:164_b016_a016_d016_i016 0.25 3.55 + pair_coeff @atom:165_b013_a013_d013_i013 @atom:165_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:166_b013_a013_d013_i013 @atom:166_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:167_b013_a013_d013_i013 @atom:167_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:168_b021_a021_d021_i021 @atom:168_b021_a021_d021_i021 0.3 3.4 + pair_coeff @atom:169_b047_a047_d047_i047 @atom:169_b047_a047_d047_i047 0.076 3.55 + pair_coeff @atom:170_b048_a048_d048_i048 @atom:170_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:171_b013_a013_d013_i013 @atom:171_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:172_b013_a013_d013_i013 @atom:172_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:173_b003_a003_d003_i003 @atom:173_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:174_b003_a003_d003_i003 @atom:174_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:175_b003_a003_d003_i003 @atom:175_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:176_b003_a003_d003_i003 @atom:176_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:177_b003_a003_d003_i003 @atom:177_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:178_b004_a004_d004_i004 @atom:178_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:179_b024_a024_d024_i024 @atom:179_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:180_b024_a024_d024_i024 @atom:180_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:181_b024_a024_d024_i024 @atom:181_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:182_b045_a045_d045_i045 @atom:182_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:183_b045_a045_d045_i045 @atom:183_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:184_b013_a013_d013_i013 @atom:184_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:185_b013_a013_d013_i013 @atom:185_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:186_b013_a013_d013_i013 @atom:186_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:187_b013_a013_d013_i013 @atom:187_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:188_b013_a013_d013_i013 @atom:188_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:189_b003_a003_d003_i003 @atom:189_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:190_b004_a004_d004_i004 @atom:190_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:191_b024_a024_d024_i024 @atom:191_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:192_b045_a045_d045_i045 @atom:192_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:193_b024_a024_d024_i024 @atom:193_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:194_b003_a003_d003_i003 @atom:194_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:195_b004_a004_d004_i004 @atom:195_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:196_b045_a045_d045_i045 @atom:196_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:197_b046_a046_d046_i046 @atom:197_b046_a046_d046_i046 0.02 2.5 + pair_coeff @atom:198_b013_a013_d013_i013 @atom:198_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:199_b013_a013_d013_i013 @atom:199_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:200_b013_a013_d013_i013 @atom:200_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:201_b013_a013_d013_i013 @atom:201_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:202_b048_a048_d048_i048 @atom:202_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:203_b019_a019_d019_i019 @atom:203_b019_a019_d019_i019 0.15 3.65 + pair_coeff @atom:204_b018_a018_d018_i018 @atom:204_b018_a018_d018_i018 0.17 3.2 + pair_coeff @atom:205_b048_a048_d048_i048 @atom:205_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:206_b021_a021_d021_i021 @atom:206_b021_a021_d021_i021 0.3 3.4 + pair_coeff @atom:207_b024_a024_d024_i024 @atom:207_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:208_b048_a048_d048_i048 @atom:208_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:209_b003_a003_d003_i003 @atom:209_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:210_b004_a004_d004_i004 @atom:210_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:211_b005_a005_d005_i005 @atom:211_b005_a005_d005_i005 0.17 3.0 + pair_coeff @atom:212_b007_a007_d007_i007 @atom:212_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:213_b003_a003_d003_i003 @atom:213_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:214_b052_a052_d052_i052 @atom:214_b052_a052_d052_i052 0.21 2.96 + pair_coeff @atom:215_b013_a013_d013_i013 @atom:215_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:216_b013_a013_d013_i013 @atom:216_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:217_b013_a013_d013_i013 @atom:217_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:218_b013_a013_d013_i013 @atom:218_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:219_b003_a003_d003_i003 @atom:219_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:220_b004_a004_d004_i004 @atom:220_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:221_b046_a046_d046_i046 @atom:221_b046_a046_d046_i046 0.015 2.42 + pair_coeff @atom:222_b003_a003_d003_i003 @atom:222_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:223_b004_a004_d004_i004 @atom:223_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:224_b046_a046_d046_i046 @atom:224_b046_a046_d046_i046 0.015 2.42 + pair_coeff @atom:225_b013_a013_d013_i013 @atom:225_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:226_b013_a013_d013_i013 @atom:226_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:227_b013_a013_d013_i013 @atom:227_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:228_b013_a013_d013_i013 @atom:228_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:229_b053_a053_d053_i053 @atom:229_b053_a053_d053_i053 0.17 3.25 + pair_coeff @atom:230_b053_a053_d053_i053 @atom:230_b053_a053_d053_i053 0.17 3.25 + pair_coeff @atom:231_b053_a053_d053_i053 @atom:231_b053_a053_d053_i053 0.17 3.25 + pair_coeff @atom:232_b054_a054_d054_i054 @atom:232_b054_a054_d054_i054 0.0 0.0 + pair_coeff @atom:233_b054_a054_d054_i054 @atom:233_b054_a054_d054_i054 0.0 0.0 + pair_coeff @atom:234_b013_a013_d013_i013 @atom:234_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:235_b013_a013_d013_i013 @atom:235_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:236_b013_a013_d013_i013 @atom:236_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:237_b013_a013_d013_i013 @atom:237_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:238_b013_a013_d013_i013 @atom:238_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:239_b013_a013_d013_i013 @atom:239_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:240_b013_a013_d013_i013 @atom:240_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:241_b013_a013_d013_i013 @atom:241_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:242_b013_a013_d013_i013 @atom:242_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:243_b055_a055_d055_i055 @atom:243_b055_a055_d055_i055 0.17 3.25 + pair_coeff @atom:244_b054_a054_d054_i054 @atom:244_b054_a054_d054_i054 0.0 0.0 + pair_coeff @atom:245_b048_a048_d048_i048 @atom:245_b048_a048_d048_i048 0.05 3.55 + pair_coeff @atom:246_b055_a055_d055_i055 @atom:246_b055_a055_d055_i055 0.17 3.25 + pair_coeff @atom:247_b054_a054_d054_i054 @atom:247_b054_a054_d054_i054 0.0 0.0 + pair_coeff @atom:248_b013_a013_d013_i013 @atom:248_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:249_b013_a013_d013_i013 @atom:249_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:250_b013_a013_d013_i013 @atom:250_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:251_b013_a013_d013_i013 @atom:251_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:252_b053_a053_d053_i053 @atom:252_b053_a053_d053_i053 0.17 3.25 + pair_coeff @atom:253_b054_a054_d054_i054 @atom:253_b054_a054_d054_i054 0.0 0.0 + pair_coeff @atom:254_b056_a056_d056_i056 @atom:254_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:255_b048_a048_d048_i048 @atom:255_b048_a048_d048_i048 0.08 3.5 + pair_coeff @atom:256_b055_a055_d055_i055 @atom:256_b055_a055_d055_i055 0.17 3.25 + pair_coeff @atom:257_b045_a045_d045_i045 @atom:257_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:258_b048_a048_d048_i048 @atom:258_b048_a048_d048_i048 0.08 3.5 + pair_coeff @atom:259_b049_a049_d049_i049 @atom:259_b049_a049_d049_i049 0.05 2.5 + pair_coeff @atom:260_b048_a048_d048_i048 @atom:260_b048_a048_d048_i048 0.08 3.5 + pair_coeff @atom:261_b049_a049_d049_i049 @atom:261_b049_a049_d049_i049 0.05 2.5 + pair_coeff @atom:262_b057_a057_d057_i057 @atom:262_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:263_b003_a003_d003_i003 @atom:263_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:264_b057_a057_d057_i057 @atom:264_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:265_b003_a003_d003_i003 @atom:265_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:266_b047_a047_d047_i047 @atom:266_b047_a047_d047_i047 0.08 3.5 + pair_coeff @atom:267_b047_a047_d047_i047 @atom:267_b047_a047_d047_i047 0.08 3.5 + pair_coeff @atom:268_b045_a045_d045_i045 @atom:268_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:269_b004_a004_d004_i004 @atom:269_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:270_b045_a045_d045_i045 @atom:270_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:271_b004_a004_d004_i004 @atom:271_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:272_b046_a046_d046_i046 @atom:272_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:273_b046_a046_d046_i046 @atom:273_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:274_b013_a013_d013_i013 @atom:274_b013_a013_d013_i013 0.08 3.5 + pair_coeff @atom:275_b046_a046_d046_i046 @atom:275_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:276_b057_a057_d057_i057 @atom:276_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:277_b003_a003_d003_i003 @atom:277_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:278_b056_a056_d056_i056 @atom:278_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:279_b048_a048_d048_i048 @atom:279_b048_a048_d048_i048 0.08 3.5 + pair_coeff @atom:280_b047_a047_d047_i047 @atom:280_b047_a047_d047_i047 0.08 3.5 + pair_coeff @atom:281_b047_a047_d047_i047 @atom:281_b047_a047_d047_i047 0.08 3.5 + pair_coeff @atom:282_b045_a045_d045_i045 @atom:282_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:283_b004_a004_d004_i004 @atom:283_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:284_b055_a055_d055_i055 @atom:284_b055_a055_d055_i055 0.17 3.25 + pair_coeff @atom:285_b045_a045_d045_i045 @atom:285_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:286_b045_a045_d045_i045 @atom:286_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:287_b046_a046_d046_i046 @atom:287_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:288_b058_a058_d058_i058 @atom:288_b058_a058_d058_i058 0.05 2.5 + pair_coeff @atom:289_b056_a056_d056_i056 @atom:289_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:290_b059_a059_d059_i059 @atom:290_b059_a059_d059_i059 0.08 3.5 + pair_coeff @atom:291_b056_a056_d056_i056 @atom:291_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:292_b060_a060_d060_i060 @atom:292_b060_a060_d060_i060 0.08 3.5 + pair_coeff @atom:293_b060_a060_d060_i060 @atom:293_b060_a060_d060_i060 0.08 3.5 + pair_coeff @atom:294_b048_a048_d048_i048 @atom:294_b048_a048_d048_i048 0.08 3.5 + pair_coeff @atom:295_b061_a061_d061_i061 @atom:295_b061_a061_d061_i061 0.17 3.25 + pair_coeff @atom:296_b062_a062_d062_i062 @atom:296_b062_a062_d062_i062 0.08 3.5 + pair_coeff @atom:297_b057_a057_d057_i057 @atom:297_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:298_b063_a063_d063_i063 @atom:298_b063_a063_d063_i063 0.05 2.5 + pair_coeff @atom:299_b055_a055_d055_i055 @atom:299_b055_a055_d055_i055 0.17 3.25 + pair_coeff @atom:300_b045_a045_d045_i045 @atom:300_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:301_b045_a045_d045_i045 @atom:301_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:302_b063_a063_d063_i063 @atom:302_b063_a063_d063_i063 0.05 2.5 + pair_coeff @atom:303_b045_a045_d045_i045 @atom:303_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:304_b057_a057_d057_i057 @atom:304_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:305_b048_a048_d048_i048 @atom:305_b048_a048_d048_i048 0.08 3.5 + pair_coeff @atom:306_b056_a056_d056_i056 @atom:306_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:307_b060_a060_d060_i060 @atom:307_b060_a060_d060_i060 0.08 3.5 + pair_coeff @atom:308_b060_a060_d060_i060 @atom:308_b060_a060_d060_i060 0.08 3.5 + pair_coeff @atom:309_b003_a003_d003_i003 @atom:309_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:310_b045_a045_d045_i045 @atom:310_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:311_b055_a055_d055_i055 @atom:311_b055_a055_d055_i055 0.17 3.25 + pair_coeff @atom:312_b045_a045_d045_i045 @atom:312_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:313_b004_a004_d004_i004 @atom:313_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:314_b013_a013_d013_i013 @atom:314_b013_a013_d013_i013 0.08 3.5 + pair_coeff @atom:315_b046_a046_d046_i046 @atom:315_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:316_b013_a013_d013_i013 @atom:316_b013_a013_d013_i013 0.08 3.5 + pair_coeff @atom:317_b046_a046_d046_i046 @atom:317_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:318_b013_a013_d013_i013 @atom:318_b013_a013_d013_i013 0.08 3.5 + pair_coeff @atom:319_b046_a046_d046_i046 @atom:319_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:320_b057_a057_d057_i057 @atom:320_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:321_b003_a003_d003_i003 @atom:321_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:322_b057_a057_d057_i057 @atom:322_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:323_b048_a048_d048_i048 @atom:323_b048_a048_d048_i048 0.08 3.5 + pair_coeff @atom:324_b047_a047_d047_i047 @atom:324_b047_a047_d047_i047 0.08 3.5 + pair_coeff @atom:325_b047_a047_d047_i047 @atom:325_b047_a047_d047_i047 0.08 3.5 + pair_coeff @atom:326_b045_a045_d045_i045 @atom:326_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:327_b004_a004_d004_i004 @atom:327_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:328_b045_a045_d045_i045 @atom:328_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:329_b055_a055_d055_i055 @atom:329_b055_a055_d055_i055 0.17 3.25 + pair_coeff @atom:330_b045_a045_d045_i045 @atom:330_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:331_b045_a045_d045_i045 @atom:331_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:332_b049_a049_d049_i049 @atom:332_b049_a049_d049_i049 0.05 2.5 + pair_coeff @atom:333_b058_a058_d058_i058 @atom:333_b058_a058_d058_i058 0.05 2.5 + pair_coeff @atom:334_b013_a013_d013_i013 @atom:334_b013_a013_d013_i013 0.08 3.5 + pair_coeff @atom:335_b046_a046_d046_i046 @atom:335_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:336_b064_a064_d064_i064 @atom:336_b064_a064_d064_i064 0.2 3.74 + pair_coeff @atom:337_b052_a052_d052_i052 @atom:337_b052_a052_d052_i052 0.21 2.96 + pair_coeff @atom:338_b020_a020_d020_i020 @atom:338_b020_a020_d020_i020 0.17 3.0 + pair_coeff @atom:339_b013_a013_d013_i013 @atom:339_b013_a013_d013_i013 0.066 3.55 + pair_coeff @atom:340_b047_a047_d047_i047 @atom:340_b047_a047_d047_i047 0.08 3.5 + pair_coeff @atom:341_b021_a021_d021_i021 @atom:341_b021_a021_d021_i021 0.3 3.4 + pair_coeff @atom:342_b047_a047_d047_i047 @atom:342_b047_a047_d047_i047 0.076 3.55 + pair_coeff @atom:343_b001_a001_d001_i001 @atom:343_b001_a001_d001_i001 0.71 3.05 + pair_coeff @atom:344_b021_a021_d021_i021 @atom:344_b021_a021_d021_i021 0.71 4.02 + pair_coeff @atom:345_b065_a065_d065_i065 @atom:345_b065_a065_d065_i065 0.71 4.28 + pair_coeff @atom:346_b066_a066_d066_i066 @atom:346_b066_a066_d066_i066 0.71 4.81 + pair_coeff @atom:347_b067_a067_d067_i067 @atom:347_b067_a067_d067_i067 0.0005 5.34 + pair_coeff @atom:348_b068_a068_d068_i068 @atom:348_b068_a068_d068_i068 0.0005 2.87 + pair_coeff @atom:349_b069_a069_d069_i069 @atom:349_b069_a069_d069_i069 0.0005 4.07 + pair_coeff @atom:350_b070_a070_d070_i070 @atom:350_b070_a070_d070_i070 0.0005 5.17 + pair_coeff @atom:351_b071_a071_d071_i071 @atom:351_b071_a071_d071_i071 0.0005 5.6 + pair_coeff @atom:352_b072_a072_d072_i072 @atom:352_b072_a072_d072_i072 0.0005 6.2 + pair_coeff @atom:353_b073_a073_d073_i073 @atom:353_b073_a073_d073_i073 0.875044 1.644471 + pair_coeff @atom:354_b074_a074_d074_i074 @atom:354_b074_a074_d074_i074 0.449657 2.412031 + pair_coeff @atom:355_b075_a075_d075_i075 @atom:355_b075_a075_d075_i075 0.118226 3.102688 + pair_coeff @atom:356_b076_a076_d076_i076 @atom:356_b076_a076_d076_i076 0.047096 3.81661 + pair_coeff @atom:357_b006_a006_d006_i006 @atom:357_b006_a006_d006_i006 0.3 4.2 + pair_coeff @atom:358_b046_a046_d046_i046 @atom:358_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:359_b015_a015_d015_i015 @atom:359_b015_a015_d015_i015 0.5 4.25 + pair_coeff @atom:360_b006_a006_d006_i006 @atom:360_b006_a006_d006_i006 0.3 4.2 + pair_coeff @atom:361_b046_a046_d046_i046 @atom:361_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:362_b005_a005_d005_i005 @atom:362_b005_a005_d005_i005 0.25 3.15 + pair_coeff @atom:363_b013_a013_d013_i013 @atom:363_b013_a013_d013_i013 0.3 4.2 + pair_coeff @atom:364_b046_a046_d046_i046 @atom:364_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:365_b019_a019_d019_i019 @atom:365_b019_a019_d019_i019 0.15 3.65 + pair_coeff @atom:366_b018_a018_d018_i018 @atom:366_b018_a018_d018_i018 0.25 3.4 + pair_coeff @atom:367_b006_a006_d006_i006 @atom:367_b006_a006_d006_i006 0.3 4.2 + pair_coeff @atom:368_b046_a046_d046_i046 @atom:368_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:369_b053_a053_d053_i053 @atom:369_b053_a053_d053_i053 0.25 3.4 + pair_coeff @atom:370_b045_a045_d045_i045 @atom:370_b045_a045_d045_i045 0.05 2.5 + pair_coeff @atom:371_b006_a006_d006_i006 @atom:371_b006_a006_d006_i006 0.3 4.2 + pair_coeff @atom:372_b046_a046_d046_i046 @atom:372_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:373_b013_a013_d013_i013 @atom:373_b013_a013_d013_i013 0.3 4.2 + pair_coeff @atom:374_b046_a046_d046_i046 @atom:374_b046_a046_d046_i046 0.05 2.5 + pair_coeff @atom:375_b033_a033_d033_i033 @atom:375_b033_a033_d033_i033 0.0 0.0 + pair_coeff @atom:376_b005_a005_d005_i005 @atom:376_b005_a005_d005_i005 0.25 3.2 + pair_coeff @atom:377_b007_a007_d007_i007 @atom:377_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:378_b077_a077_d077_i077 @atom:378_b077_a077_d077_i077 0.4 2.81524 + pair_coeff @atom:379_b078_a078_d078_i078 @atom:379_b078_a078_d078_i078 0.2 3.11815 + pair_coeff @atom:380_b020_a020_d020_i020 @atom:380_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:381_b064_a064_d064_i064 @atom:381_b064_a064_d064_i064 0.2 3.74 + pair_coeff @atom:382_b052_a052_d052_i052 @atom:382_b052_a052_d052_i052 0.2 3.15 + pair_coeff @atom:383_b020_a020_d020_i020 @atom:383_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:384_b013_a013_d013_i013 @atom:384_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:385_b046_a046_d046_i046 @atom:385_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:386_b064_a064_d064_i064 @atom:386_b064_a064_d064_i064 0.2 3.74 + pair_coeff @atom:387_b052_a052_d052_i052 @atom:387_b052_a052_d052_i052 0.2 3.15 + pair_coeff @atom:388_b020_a020_d020_i020 @atom:388_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:389_b013_a013_d013_i013 @atom:389_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:390_b046_a046_d046_i046 @atom:390_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:391_b064_a064_d064_i064 @atom:391_b064_a064_d064_i064 0.2 3.74 + pair_coeff @atom:392_b052_a052_d052_i052 @atom:392_b052_a052_d052_i052 0.2 3.15 + pair_coeff @atom:393_b020_a020_d020_i020 @atom:393_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:394_b013_a013_d013_i013 @atom:394_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:395_b046_a046_d046_i046 @atom:395_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:396_b013_a013_d013_i013 @atom:396_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:397_b046_a046_d046_i046 @atom:397_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:398_b048_a048_d048_i048 @atom:398_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:399_b013_a013_d013_i013 @atom:399_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:400_b046_a046_d046_i046 @atom:400_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:401_b048_a048_d048_i048 @atom:401_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:402_b013_a013_d013_i013 @atom:402_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:403_b046_a046_d046_i046 @atom:403_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:404_b048_a048_d048_i048 @atom:404_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:405_b013_a013_d013_i013 @atom:405_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:406_b003_a003_d003_i003 @atom:406_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:407_b004_a004_d004_i004 @atom:407_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:408_b020_a020_d020_i020 @atom:408_b020_a020_d020_i020 0.17 3.0 + pair_coeff @atom:409_b013_a013_d013_i013 @atom:409_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:410_b046_a046_d046_i046 @atom:410_b046_a046_d046_i046 0.015 2.42 + pair_coeff @atom:411_b003_a003_d003_i003 @atom:411_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:412_b003_a003_d003_i003 @atom:412_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:413_b048_a048_d048_i048 @atom:413_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:414_b020_a020_d020_i020 @atom:414_b020_a020_d020_i020 0.17 3.0 + pair_coeff @atom:415_b079_a079_d079_i079 @atom:415_b079_a079_d079_i079 0.25 3.55 + pair_coeff @atom:416_b023_a023_d023_i023 @atom:416_b023_a023_d023_i023 0.17 2.96 + pair_coeff @atom:417_b013_a013_d013_i013 @atom:417_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:418_b046_a046_d046_i046 @atom:418_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:419_b024_a024_d024_i024 @atom:419_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:420_b045_a045_d045_i045 @atom:420_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:421_b024_a024_d024_i024 @atom:421_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:422_b045_a045_d045_i045 @atom:422_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:423_b013_a013_d013_i013 @atom:423_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:424_b046_a046_d046_i046 @atom:424_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:425_b013_a013_d013_i013 @atom:425_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:426_b046_a046_d046_i046 @atom:426_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:427_b013_a013_d013_i013 @atom:427_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:428_b046_a046_d046_i046 @atom:428_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:429_b048_a048_d048_i048 @atom:429_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:430_b048_a048_d048_i048 @atom:430_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:431_b013_a013_d013_i013 @atom:431_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:432_b013_a013_d013_i013 @atom:432_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:433_b013_a013_d013_i013 @atom:433_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:434_b079_a079_d079_i079 @atom:434_b079_a079_d079_i079 0.25 3.55 + pair_coeff @atom:435_b023_a023_d023_i023 @atom:435_b023_a023_d023_i023 0.17 2.96 + pair_coeff @atom:436_b022_a022_d022_i022 @atom:436_b022_a022_d022_i022 0.395 3.56 + pair_coeff @atom:437_b022_a022_d022_i022 @atom:437_b022_a022_d022_i022 0.395 3.56 + pair_coeff @atom:438_b023_a023_d023_i023 @atom:438_b023_a023_d023_i023 0.28 2.93 + pair_coeff @atom:439_b013_a013_d013_i013 @atom:439_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:440_b013_a013_d013_i013 @atom:440_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:441_b080_a080_d080_i080 @atom:441_b080_a080_d080_i080 0.07 3.55 + pair_coeff @atom:442_b060_a060_d060_i060 @atom:442_b060_a060_d060_i060 0.07 3.55 + pair_coeff @atom:443_b081_a081_d081_i081 @atom:443_b081_a081_d081_i081 0.07 3.55 + pair_coeff @atom:444_b057_a057_d057_i057 @atom:444_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:445_b045_a045_d045_i045 @atom:445_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:446_b013_a013_d013_i013 @atom:446_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:447_b082_a082_d082_i082 @atom:447_b082_a082_d082_i082 0.07 3.55 + pair_coeff @atom:448_b083_a083_d083_i083 @atom:448_b083_a083_d083_i083 0.07 3.55 + pair_coeff @atom:449_b084_a084_d084_i084 @atom:449_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:450_b082_a082_d082_i082 @atom:450_b082_a082_d082_i082 0.07 3.55 + pair_coeff @atom:451_b085_a085_d085_i085 @atom:451_b085_a085_d085_i085 0.07 3.55 + pair_coeff @atom:452_b061_a061_d061_i061 @atom:452_b061_a061_d061_i061 0.17 3.25 + pair_coeff @atom:453_b057_a057_d057_i057 @atom:453_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:454_b045_a045_d045_i045 @atom:454_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:455_b084_a084_d084_i084 @atom:455_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:456_b013_a013_d013_i013 @atom:456_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:457_b013_a013_d013_i013 @atom:457_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:458_b047_a047_d047_i047 @atom:458_b047_a047_d047_i047 0.076 3.55 + pair_coeff @atom:459_b047_a047_d047_i047 @atom:459_b047_a047_d047_i047 0.076 3.55 + pair_coeff @atom:460_b086_a086_d086_i086 @atom:460_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:461_b056_a056_d056_i056 @atom:461_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:462_b048_a048_d048_i048 @atom:462_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:463_b048_a048_d048_i048 @atom:463_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:464_b048_a048_d048_i048 @atom:464_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:465_b049_a049_d049_i049 @atom:465_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:466_b049_a049_d049_i049 @atom:466_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:467_b049_a049_d049_i049 @atom:467_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:468_b056_a056_d056_i056 @atom:468_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:469_b048_a048_d048_i048 @atom:469_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:470_b049_a049_d049_i049 @atom:470_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:471_b056_a056_d056_i056 @atom:471_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:472_b059_a059_d059_i059 @atom:472_b059_a059_d059_i059 0.07 3.55 + pair_coeff @atom:473_b048_a048_d048_i048 @atom:473_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:474_b048_a048_d048_i048 @atom:474_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:475_b049_a049_d049_i049 @atom:475_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:476_b049_a049_d049_i049 @atom:476_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:477_b049_a049_d049_i049 @atom:477_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:478_b056_a056_d056_i056 @atom:478_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:479_b048_a048_d048_i048 @atom:479_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:480_b048_a048_d048_i048 @atom:480_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:481_b049_a049_d049_i049 @atom:481_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:482_b049_a049_d049_i049 @atom:482_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:483_b057_a057_d057_i057 @atom:483_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:484_b084_a084_d084_i084 @atom:484_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:485_b087_a087_d087_i087 @atom:485_b087_a087_d087_i087 0.07 3.55 + pair_coeff @atom:486_b045_a045_d045_i045 @atom:486_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:487_b049_a049_d049_i049 @atom:487_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:488_b049_a049_d049_i049 @atom:488_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:489_b057_a057_d057_i057 @atom:489_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:490_b061_a061_d061_i061 @atom:490_b061_a061_d061_i061 0.17 3.25 + pair_coeff @atom:491_b088_a088_d088_i088 @atom:491_b088_a088_d088_i088 0.07 3.55 + pair_coeff @atom:492_b087_a087_d087_i087 @atom:492_b087_a087_d087_i087 0.07 3.55 + pair_coeff @atom:493_b084_a084_d084_i084 @atom:493_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:494_b045_a045_d045_i045 @atom:494_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:495_b049_a049_d049_i049 @atom:495_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:496_b049_a049_d049_i049 @atom:496_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:497_b049_a049_d049_i049 @atom:497_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:498_b057_a057_d057_i057 @atom:498_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:499_b082_a082_d082_i082 @atom:499_b082_a082_d082_i082 0.07 3.55 + pair_coeff @atom:500_b061_a061_d061_i061 @atom:500_b061_a061_d061_i061 0.17 3.25 + pair_coeff @atom:501_b083_a083_d083_i083 @atom:501_b083_a083_d083_i083 0.07 3.55 + pair_coeff @atom:502_b084_a084_d084_i084 @atom:502_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:503_b045_a045_d045_i045 @atom:503_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:504_b049_a049_d049_i049 @atom:504_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:505_b049_a049_d049_i049 @atom:505_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:506_b049_a049_d049_i049 @atom:506_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:507_b020_a020_d020_i020 @atom:507_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:508_b084_a084_d084_i084 @atom:508_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:509_b087_a087_d087_i087 @atom:509_b087_a087_d087_i087 0.076 3.55 + pair_coeff @atom:510_b049_a049_d049_i049 @atom:510_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:511_b049_a049_d049_i049 @atom:511_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:512_b020_a020_d020_i020 @atom:512_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:513_b082_a082_d082_i082 @atom:513_b082_a082_d082_i082 0.07 3.55 + pair_coeff @atom:514_b061_a061_d061_i061 @atom:514_b061_a061_d061_i061 0.17 3.25 + pair_coeff @atom:515_b083_a083_d083_i083 @atom:515_b083_a083_d083_i083 0.07 3.55 + pair_coeff @atom:516_b084_a084_d084_i084 @atom:516_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:517_b049_a049_d049_i049 @atom:517_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:518_b049_a049_d049_i049 @atom:518_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:519_b049_a049_d049_i049 @atom:519_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:520_b020_a020_d020_i020 @atom:520_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:521_b061_a061_d061_i061 @atom:521_b061_a061_d061_i061 0.17 3.25 + pair_coeff @atom:522_b088_a088_d088_i088 @atom:522_b088_a088_d088_i088 0.07 3.55 + pair_coeff @atom:523_b087_a087_d087_i087 @atom:523_b087_a087_d087_i087 0.07 3.55 + pair_coeff @atom:524_b084_a084_d084_i084 @atom:524_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:525_b049_a049_d049_i049 @atom:525_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:526_b049_a049_d049_i049 @atom:526_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:527_b049_a049_d049_i049 @atom:527_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:528_b057_a057_d057_i057 @atom:528_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:529_b084_a084_d084_i084 @atom:529_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:530_b087_a087_d087_i087 @atom:530_b087_a087_d087_i087 0.07 3.55 + pair_coeff @atom:531_b048_a048_d048_i048 @atom:531_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:532_b048_a048_d048_i048 @atom:532_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:533_b048_a048_d048_i048 @atom:533_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:534_b048_a048_d048_i048 @atom:534_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:535_b081_a081_d081_i081 @atom:535_b081_a081_d081_i081 0.07 3.55 + pair_coeff @atom:536_b060_a060_d060_i060 @atom:536_b060_a060_d060_i060 0.07 3.55 + pair_coeff @atom:537_b045_a045_d045_i045 @atom:537_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:538_b049_a049_d049_i049 @atom:538_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:539_b049_a049_d049_i049 @atom:539_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:540_b049_a049_d049_i049 @atom:540_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:541_b049_a049_d049_i049 @atom:541_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:542_b049_a049_d049_i049 @atom:542_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:543_b049_a049_d049_i049 @atom:543_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:544_b056_a056_d056_i056 @atom:544_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:545_b048_a048_d048_i048 @atom:545_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:546_b048_a048_d048_i048 @atom:546_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:547_b048_a048_d048_i048 @atom:547_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:548_b048_a048_d048_i048 @atom:548_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:549_b048_a048_d048_i048 @atom:549_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:550_b048_a048_d048_i048 @atom:550_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:551_b048_a048_d048_i048 @atom:551_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:552_b048_a048_d048_i048 @atom:552_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:553_b048_a048_d048_i048 @atom:553_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:554_b049_a049_d049_i049 @atom:554_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:555_b049_a049_d049_i049 @atom:555_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:556_b049_a049_d049_i049 @atom:556_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:557_b049_a049_d049_i049 @atom:557_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:558_b049_a049_d049_i049 @atom:558_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:559_b049_a049_d049_i049 @atom:559_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:560_b049_a049_d049_i049 @atom:560_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:561_b056_a056_d056_i056 @atom:561_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:562_b059_a059_d059_i059 @atom:562_b059_a059_d059_i059 0.07 3.55 + pair_coeff @atom:563_b056_a056_d056_i056 @atom:563_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:564_b060_a060_d060_i060 @atom:564_b060_a060_d060_i060 0.07 3.55 + pair_coeff @atom:565_b060_a060_d060_i060 @atom:565_b060_a060_d060_i060 0.07 3.55 + pair_coeff @atom:566_b048_a048_d048_i048 @atom:566_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:567_b061_a061_d061_i061 @atom:567_b061_a061_d061_i061 0.17 3.25 + pair_coeff @atom:568_b062_a062_d062_i062 @atom:568_b062_a062_d062_i062 0.07 3.55 + pair_coeff @atom:569_b057_a057_d057_i057 @atom:569_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:570_b049_a049_d049_i049 @atom:570_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:571_b049_a049_d049_i049 @atom:571_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:572_b049_a049_d049_i049 @atom:572_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:573_b045_a045_d045_i045 @atom:573_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:574_b016_a016_d016_i016 @atom:574_b016_a016_d016_i016 0.25 3.55 + pair_coeff @atom:575_b082_a082_d082_i082 @atom:575_b082_a082_d082_i082 0.07 3.55 + pair_coeff @atom:576_b061_a061_d061_i061 @atom:576_b061_a061_d061_i061 0.17 3.25 + pair_coeff @atom:577_b083_a083_d083_i083 @atom:577_b083_a083_d083_i083 0.07 3.55 + pair_coeff @atom:578_b084_a084_d084_i084 @atom:578_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:579_b049_a049_d049_i049 @atom:579_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:580_b049_a049_d049_i049 @atom:580_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:581_b049_a049_d049_i049 @atom:581_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:582_b056_a056_d056_i056 @atom:582_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:583_b059_a059_d059_i059 @atom:583_b059_a059_d059_i059 0.07 3.55 + pair_coeff @atom:584_b049_a049_d049_i049 @atom:584_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:585_b048_a048_d048_i048 @atom:585_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:586_b013_a013_d013_i013 @atom:586_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:587_b056_a056_d056_i056 @atom:587_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:588_b048_a048_d048_i048 @atom:588_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:589_b048_a048_d048_i048 @atom:589_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:590_b048_a048_d048_i048 @atom:590_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:591_b048_a048_d048_i048 @atom:591_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:592_b048_a048_d048_i048 @atom:592_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:593_b048_a048_d048_i048 @atom:593_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:594_b049_a049_d049_i049 @atom:594_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:595_b049_a049_d049_i049 @atom:595_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:596_b049_a049_d049_i049 @atom:596_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:597_b049_a049_d049_i049 @atom:597_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:598_b057_a057_d057_i057 @atom:598_b057_a057_d057_i057 0.17 3.25 + pair_coeff @atom:599_b082_a082_d082_i082 @atom:599_b082_a082_d082_i082 0.07 3.55 + pair_coeff @atom:600_b061_a061_d061_i061 @atom:600_b061_a061_d061_i061 0.17 3.25 + pair_coeff @atom:601_b083_a083_d083_i083 @atom:601_b083_a083_d083_i083 0.07 3.55 + pair_coeff @atom:602_b084_a084_d084_i084 @atom:602_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:603_b013_a013_d013_i013 @atom:603_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:604_b049_a049_d049_i049 @atom:604_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:605_b049_a049_d049_i049 @atom:605_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:606_b049_a049_d049_i049 @atom:606_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:607_b046_a046_d046_i046 @atom:607_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:608_b013_a013_d013_i013 @atom:608_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:609_b013_a013_d013_i013 @atom:609_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:610_b013_a013_d013_i013 @atom:610_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:611_b013_a013_d013_i013 @atom:611_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:612_b013_a013_d013_i013 @atom:612_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:613_b013_a013_d013_i013 @atom:613_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:614_b013_a013_d013_i013 @atom:614_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:615_b013_a013_d013_i013 @atom:615_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:616_b013_a013_d013_i013 @atom:616_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:617_b013_a013_d013_i013 @atom:617_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:618_b013_a013_d013_i013 @atom:618_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:619_b013_a013_d013_i013 @atom:619_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:620_b013_a013_d013_i013 @atom:620_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:621_b013_a013_d013_i013 @atom:621_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:622_b013_a013_d013_i013 @atom:622_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:623_b015_a015_d015_i015 @atom:623_b015_a015_d015_i015 0.25 3.55 + pair_coeff @atom:624_b017_a017_d017_i017 @atom:624_b017_a017_d017_i017 0.0 0.0 + pair_coeff @atom:625_b048_a048_d048_i048 @atom:625_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:626_b089_a089_d089_i089 @atom:626_b089_a089_d089_i089 0.105 3.75 + pair_coeff @atom:627_b090_a090_d090_i090 @atom:627_b090_a090_d090_i090 0.17 3.25 + pair_coeff @atom:628_b091_a091_d091_i091 @atom:628_b091_a091_d091_i091 0.066 3.5 + pair_coeff @atom:629_b091_a091_d091_i091 @atom:629_b091_a091_d091_i091 0.066 3.5 + pair_coeff @atom:630_b013_a013_d013_i013 @atom:630_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:631_b086_a086_d086_i086 @atom:631_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:632_b086_a086_d086_i086 @atom:632_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:633_b086_a086_d086_i086 @atom:633_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:634_b086_a086_d086_i086 @atom:634_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:635_b086_a086_d086_i086 @atom:635_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:636_b086_a086_d086_i086 @atom:636_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:637_b016_a016_d016_i016 @atom:637_b016_a016_d016_i016 0.25 3.55 + pair_coeff @atom:638_b092_a092_d092_i092 @atom:638_b092_a092_d092_i092 0.054 3.473 + pair_coeff @atom:639_b093_a093_d093_i093 @atom:639_b093_a093_d093_i093 0.05 3.3 + pair_coeff @atom:640_b094_a094_d094_i094 @atom:640_b094_a094_d094_i094 0.05 3.3 + pair_coeff @atom:641_b095_a095_d095_i095 @atom:641_b095_a095_d095_i095 0.076 3.55 + pair_coeff @atom:642_b013_a013_d013_i013 @atom:642_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:643_b046_a046_d046_i046 @atom:643_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:644_b096_a096_d096_i096 @atom:644_b096_a096_d096_i096 0.06 3.75 + pair_coeff @atom:645_b097_a097_d097_i097 @atom:645_b097_a097_d097_i097 0.054 3.473 + pair_coeff @atom:646_b098_a098_d098_i098 @atom:646_b098_a098_d098_i098 0.05 3.3 + pair_coeff @atom:647_b099_a099_d099_i099 @atom:647_b099_a099_d099_i099 0.05 3.3 + pair_coeff @atom:648_b100_a100_d100_i100 @atom:648_b100_a100_d100_i100 0.04 2.95 + pair_coeff @atom:649_b047_a047_d047_i047 @atom:649_b047_a047_d047_i047 0.076 3.55 + pair_coeff @atom:650_b021_a021_d021_i021 @atom:650_b021_a021_d021_i021 0.3 3.4 + pair_coeff @atom:651_b046_a046_d046_i046 @atom:651_b046_a046_d046_i046 0.03 2.42 + pair_coeff @atom:652_b091_a091_d091_i091 @atom:652_b091_a091_d091_i091 0.066 3.5 + pair_coeff @atom:653_b091_a091_d091_i091 @atom:653_b091_a091_d091_i091 0.066 3.5 + pair_coeff @atom:654_b091_a091_d091_i091 @atom:654_b091_a091_d091_i091 0.066 3.5 + pair_coeff @atom:655_b048_a048_d048_i048 @atom:655_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:656_b049_a049_d049_i049 @atom:656_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:657_b048_a048_d048_i048 @atom:657_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:658_b049_a049_d049_i049 @atom:658_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:659_b048_a048_d048_i048 @atom:659_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:660_b001_a001_d001_i001 @atom:660_b001_a001_d001_i001 0.061 2.85 + pair_coeff @atom:661_b048_a048_d048_i048 @atom:661_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:662_b001_a001_d001_i001 @atom:662_b001_a001_d001_i001 0.061 2.85 + pair_coeff @atom:663_b065_a065_d065_i065 @atom:663_b065_a065_d065_i065 0.47 3.47 + pair_coeff @atom:664_b002_a002_d002_i002 @atom:664_b002_a002_d002_i002 0.118 3.905 + pair_coeff @atom:665_b048_a048_d048_i048 @atom:665_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:666_b013_a013_d013_i013 @atom:666_b013_a013_d013_i013 0.062 3.25 + pair_coeff @atom:667_b001_a001_d001_i001 @atom:667_b001_a001_d001_i001 0.061 2.94 + pair_coeff @atom:668_b048_a048_d048_i048 @atom:668_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:669_b001_a001_d001_i001 @atom:669_b001_a001_d001_i001 0.061 2.85 + pair_coeff @atom:670_b048_a048_d048_i048 @atom:670_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:671_b065_a065_d065_i065 @atom:671_b065_a065_d065_i065 0.47 3.47 + pair_coeff @atom:672_b048_a048_d048_i048 @atom:672_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:673_b066_a066_d066_i066 @atom:673_b066_a066_d066_i066 0.6 3.75 + pair_coeff @atom:674_b091_a091_d091_i091 @atom:674_b091_a091_d091_i091 0.066 3.5 + pair_coeff @atom:675_b015_a015_d015_i015 @atom:675_b015_a015_d015_i015 0.25 3.55 + pair_coeff @atom:676_b048_a048_d048_i048 @atom:676_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:677_b048_a048_d048_i048 @atom:677_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:678_b048_a048_d048_i048 @atom:678_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:679_b048_a048_d048_i048 @atom:679_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:680_b048_a048_d048_i048 @atom:680_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:681_b049_a049_d049_i049 @atom:681_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:682_b049_a049_d049_i049 @atom:682_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:683_b048_a048_d048_i048 @atom:683_b048_a048_d048_i048 0.05 3.55 + pair_coeff @atom:684_b055_a055_d055_i055 @atom:684_b055_a055_d055_i055 0.17 3.25 + pair_coeff @atom:685_b045_a045_d045_i045 @atom:685_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:686_b045_a045_d045_i045 @atom:686_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:687_b049_a049_d049_i049 @atom:687_b049_a049_d049_i049 0.03 2.42 + pair_coeff @atom:688_b013_a013_d013_i013 @atom:688_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:689_b013_a013_d013_i013 @atom:689_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:690_b101_a101_d101_i101 @atom:690_b101_a101_d101_i101 0.17 3.25 + pair_coeff @atom:691_b056_a056_d056_i056 @atom:691_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:692_b101_a101_d101_i101 @atom:692_b101_a101_d101_i101 0.17 3.25 + pair_coeff @atom:693_b048_a048_d048_i048 @atom:693_b048_a048_d048_i048 0.05 3.55 + pair_coeff @atom:694_b018_a018_d018_i018 @atom:694_b018_a018_d018_i018 0.17 3.2 + pair_coeff @atom:695_b019_a019_d019_i019 @atom:695_b019_a019_d019_i019 0.066 3.3 + pair_coeff @atom:696_b013_a013_d013_i013 @atom:696_b013_a013_d013_i013 0.066 3.3 + pair_coeff @atom:697_b013_a013_d013_i013 @atom:697_b013_a013_d013_i013 0.066 3.3 + pair_coeff @atom:698_b013_a013_d013_i013 @atom:698_b013_a013_d013_i013 0.066 3.3 + pair_coeff @atom:699_b013_a013_d013_i013 @atom:699_b013_a013_d013_i013 0.066 3.3 + pair_coeff @atom:700_b046_a046_d046_i046 @atom:700_b046_a046_d046_i046 0.015 2.5 + pair_coeff @atom:701_b102_a102_d102_i102 @atom:701_b102_a102_d102_i102 0.12 3.25 + pair_coeff @atom:702_b103_a103_d103_i103 @atom:702_b103_a103_d103_i103 0.17 2.96 + pair_coeff @atom:703_b013_a013_d013_i013 @atom:703_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:704_b046_a046_d046_i046 @atom:704_b046_a046_d046_i046 0.015 2.5 + pair_coeff @atom:705_b013_a013_d013_i013 @atom:705_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:706_b013_a013_d013_i013 @atom:706_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:707_b013_a013_d013_i013 @atom:707_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:708_b102_a102_d102_i102 @atom:708_b102_a102_d102_i102 0.12 3.25 + pair_coeff @atom:709_b048_a048_d048_i048 @atom:709_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:710_b013_a013_d013_i013 @atom:710_b013_a013_d013_i013 0.066 3.3 + pair_coeff @atom:711_b056_a056_d056_i056 @atom:711_b056_a056_d056_i056 0.17 3.25 + pair_coeff @atom:712_b004_a004_d004_i004 @atom:712_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:713_b003_a003_d003_i003 @atom:713_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:714_b020_a020_d020_i020 @atom:714_b020_a020_d020_i020 0.17 3.0 + pair_coeff @atom:715_b013_a013_d013_i013 @atom:715_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:716_b013_a013_d013_i013 @atom:716_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:717_b013_a013_d013_i013 @atom:717_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:718_b046_a046_d046_i046 @atom:718_b046_a046_d046_i046 0.015 2.42 + pair_coeff @atom:719_b046_a046_d046_i046 @atom:719_b046_a046_d046_i046 0.015 2.42 + pair_coeff @atom:720_b046_a046_d046_i046 @atom:720_b046_a046_d046_i046 0.015 2.42 + pair_coeff @atom:721_b020_a020_d020_i020 @atom:721_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:722_b104_a104_d104_i104 @atom:722_b104_a104_d104_i104 0.2 3.74 + pair_coeff @atom:723_b013_a013_d013_i013 @atom:723_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:724_b013_a013_d013_i013 @atom:724_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:725_b046_a046_d046_i046 @atom:725_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:726_b064_a064_d064_i064 @atom:726_b064_a064_d064_i064 0.2 3.74 + pair_coeff @atom:727_b001_a001_d001_i001 @atom:727_b001_a001_d001_i001 0.061 3.1181 + pair_coeff @atom:728_b024_a024_d024_i024 @atom:728_b024_a024_d024_i024 0.17 3.15 + pair_coeff @atom:729_b004_a004_d004_i004 @atom:729_b004_a004_d004_i004 0.21 2.86 + pair_coeff @atom:730_b044_a044_d044_i044 @atom:730_b044_a044_d044_i044 0.17 3.3 + pair_coeff @atom:731_b044_a044_d044_i044 @atom:731_b044_a044_d044_i044 0.17 3.3 + pair_coeff @atom:732_b044_a044_d044_i044 @atom:732_b044_a044_d044_i044 0.17 3.3 + pair_coeff @atom:733_b013_a013_d013_i013 @atom:733_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:734_b013_a013_d013_i013 @atom:734_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:735_b013_a013_d013_i013 @atom:735_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:736_b013_a013_d013_i013 @atom:736_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:737_b013_a013_d013_i013 @atom:737_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:738_b013_a013_d013_i013 @atom:738_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:739_b045_a045_d045_i045 @atom:739_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:740_b045_a045_d045_i045 @atom:740_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:741_b046_a046_d046_i046 @atom:741_b046_a046_d046_i046 0.015 2.5 + pair_coeff @atom:742_b013_a013_d013_i013 @atom:742_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:743_b013_a013_d013_i013 @atom:743_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:744_b013_a013_d013_i013 @atom:744_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:745_b013_a013_d013_i013 @atom:745_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:746_b048_a048_d048_i048 @atom:746_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:747_b048_a048_d048_i048 @atom:747_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:748_b048_a048_d048_i048 @atom:748_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:749_b013_a013_d013_i013 @atom:749_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:750_b013_a013_d013_i013 @atom:750_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:751_b013_a013_d013_i013 @atom:751_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:752_b013_a013_d013_i013 @atom:752_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:753_b013_a013_d013_i013 @atom:753_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:754_b013_a013_d013_i013 @atom:754_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:755_b019_a019_d019_i019 @atom:755_b019_a019_d019_i019 0.086 3.3 + pair_coeff @atom:756_b046_a046_d046_i046 @atom:756_b046_a046_d046_i046 0.015 2.42 + pair_coeff @atom:757_b019_a019_d019_i019 @atom:757_b019_a019_d019_i019 0.21 3.3 + pair_coeff @atom:758_b019_a019_d019_i019 @atom:758_b019_a019_d019_i019 0.135 3.3 + pair_coeff @atom:759_b019_a019_d019_i019 @atom:759_b019_a019_d019_i019 0.1 3.3 + pair_coeff @atom:760_b046_a046_d046_i046 @atom:760_b046_a046_d046_i046 0.015 2.5 + pair_coeff @atom:761_b051_a051_d051_i051 @atom:761_b051_a051_d051_i051 0.066 3.5 + pair_coeff @atom:762_b051_a051_d051_i051 @atom:762_b051_a051_d051_i051 0.066 3.5 + pair_coeff @atom:763_b051_a051_d051_i051 @atom:763_b051_a051_d051_i051 0.066 3.5 + pair_coeff @atom:764_b005_a005_d005_i005 @atom:764_b005_a005_d005_i005 0.17 3.12 + pair_coeff @atom:765_b007_a007_d007_i007 @atom:765_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:766_b105_a105_d105_i105 @atom:766_b105_a105_d105_i105 0.17 3.25 + pair_coeff @atom:767_b105_a105_d105_i105 @atom:767_b105_a105_d105_i105 0.17 3.25 + pair_coeff @atom:768_b105_a105_d105_i105 @atom:768_b105_a105_d105_i105 0.17 3.25 + pair_coeff @atom:769_b019_a019_d019_i019 @atom:769_b019_a019_d019_i019 0.21 3.3 + pair_coeff @atom:770_b053_a053_d053_i053 @atom:770_b053_a053_d053_i053 0.17 3.25 + pair_coeff @atom:771_b054_a054_d054_i054 @atom:771_b054_a054_d054_i054 0.0 0.0 + pair_coeff @atom:772_b013_a013_d013_i013 @atom:772_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:773_b013_a013_d013_i013 @atom:773_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:774_b013_a013_d013_i013 @atom:774_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:775_b013_a013_d013_i013 @atom:775_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:776_b084_a084_d084_i084 @atom:776_b084_a084_d084_i084 0.07 3.55 + pair_coeff @atom:777_b087_a087_d087_i087 @atom:777_b087_a087_d087_i087 0.076 3.55 + pair_coeff @atom:778_b086_a086_d086_i086 @atom:778_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:779_b086_a086_d086_i086 @atom:779_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:780_b046_a046_d046_i046 @atom:780_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:781_b013_a013_d013_i013 @atom:781_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:782_b003_a003_d003_i003 @atom:782_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:783_b053_a053_d053_i053 @atom:783_b053_a053_d053_i053 0.17 3.25 + pair_coeff @atom:784_b052_a052_d052_i052 @atom:784_b052_a052_d052_i052 0.21 2.96 + pair_coeff @atom:785_b054_a054_d054_i054 @atom:785_b054_a054_d054_i054 0.0 0.0 + pair_coeff @atom:786_b001_a001_d001_i001 @atom:786_b001_a001_d001_i001 0.061 2.94 + pair_coeff @atom:787_b013_a013_d013_i013 @atom:787_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:788_b046_a046_d046_i046 @atom:788_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:789_b013_a013_d013_i013 @atom:789_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:790_b013_a013_d013_i013 @atom:790_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:791_b013_a013_d013_i013 @atom:791_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:792_b013_a013_d013_i013 @atom:792_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:793_b013_a013_d013_i013 @atom:793_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:794_b013_a013_d013_i013 @atom:794_b013_a013_d013_i013 0.097 3.5 + pair_coeff @atom:795_b001_a001_d001_i001 @atom:795_b001_a001_d001_i001 0.053 2.95 + pair_coeff @atom:796_b013_a013_d013_i013 @atom:796_b013_a013_d013_i013 0.062 3.25 + pair_coeff @atom:797_b046_a046_d046_i046 @atom:797_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:798_b013_a013_d013_i013 @atom:798_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:799_b013_a013_d013_i013 @atom:799_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:800_b021_a021_d021_i021 @atom:800_b021_a021_d021_i021 0.3 3.4 + pair_coeff @atom:801_b013_a013_d013_i013 @atom:801_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:802_b046_a046_d046_i046 @atom:802_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:803_b013_a013_d013_i013 @atom:803_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:804_b013_a013_d013_i013 @atom:804_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:805_b065_a065_d065_i065 @atom:805_b065_a065_d065_i065 0.47 3.47 + pair_coeff @atom:806_b013_a013_d013_i013 @atom:806_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:807_b046_a046_d046_i046 @atom:807_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:808_b013_a013_d013_i013 @atom:808_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:809_b013_a013_d013_i013 @atom:809_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:810_b001_a001_d001_i001 @atom:810_b001_a001_d001_i001 0.061 2.94 + pair_coeff @atom:811_b021_a021_d021_i021 @atom:811_b021_a021_d021_i021 0.3 3.4 + pair_coeff @atom:812_b065_a065_d065_i065 @atom:812_b065_a065_d065_i065 0.47 3.47 + pair_coeff @atom:813_b048_a048_d048_i048 @atom:813_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:814_b020_a020_d020_i020 @atom:814_b020_a020_d020_i020 0.14 2.9 + pair_coeff @atom:815_b013_a013_d013_i013 @atom:815_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:816_b001_a001_d001_i001 @atom:816_b001_a001_d001_i001 0.06 2.9 + pair_coeff @atom:817_b024_a024_d024_i024 @atom:817_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:818_b048_a048_d048_i048 @atom:818_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:819_b013_a013_d013_i013 @atom:819_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:820_b003_a003_d003_i003 @atom:820_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:821_b003_a003_d003_i003 @atom:821_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:822_b004_a004_d004_i004 @atom:822_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:823_b024_a024_d024_i024 @atom:823_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:824_b045_a045_d045_i045 @atom:824_b045_a045_d045_i045 0.0 0.0 + pair_coeff @atom:825_b005_a005_d005_i005 @atom:825_b005_a005_d005_i005 0.17 3.12 + pair_coeff @atom:826_b007_a007_d007_i007 @atom:826_b007_a007_d007_i007 0.0 0.0 + pair_coeff @atom:827_b013_a013_d013_i013 @atom:827_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:828_b013_a013_d013_i013 @atom:828_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:829_b086_a086_d086_i086 @atom:829_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:830_b086_a086_d086_i086 @atom:830_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:831_b086_a086_d086_i086 @atom:831_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:832_b086_a086_d086_i086 @atom:832_b086_a086_d086_i086 0.07 3.55 + pair_coeff @atom:833_b048_a048_d048_i048 @atom:833_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:834_b106_a106_d106_i106 @atom:834_b106_a106_d106_i106 0.0125 1.96 + pair_coeff @atom:835_b013_a013_d013_i013 @atom:835_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:836_b013_a013_d013_i013 @atom:836_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:837_b013_a013_d013_i013 @atom:837_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:838_b066_a066_d066_i066 @atom:838_b066_a066_d066_i066 0.6 3.75 + pair_coeff @atom:839_b046_a046_d046_i046 @atom:839_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:840_b024_a024_d024_i024 @atom:840_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:841_b048_a048_d048_i048 @atom:841_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:842_b048_a048_d048_i048 @atom:842_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:843_b024_a024_d024_i024 @atom:843_b024_a024_d024_i024 0.17 3.25 + pair_coeff @atom:844_b048_a048_d048_i048 @atom:844_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:845_b003_a003_d003_i003 @atom:845_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:846_b004_a004_d004_i004 @atom:846_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:847_b107_a107_d107_i107 @atom:847_b107_a107_d107_i107 0.17 3.25 + pair_coeff @atom:848_b013_a013_d013_i013 @atom:848_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:849_b013_a013_d013_i013 @atom:849_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:850_b013_a013_d013_i013 @atom:850_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:851_b013_a013_d013_i013 @atom:851_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:852_b046_a046_d046_i046 @atom:852_b046_a046_d046_i046 0.015 2.42 + pair_coeff @atom:853_b003_a003_d003_i003 @atom:853_b003_a003_d003_i003 0.105 3.75 + pair_coeff @atom:854_b004_a004_d004_i004 @atom:854_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:855_b046_a046_d046_i046 @atom:855_b046_a046_d046_i046 0.015 2.42 + pair_coeff @atom:856_b013_a013_d013_i013 @atom:856_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:857_b013_a013_d013_i013 @atom:857_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:858_b013_a013_d013_i013 @atom:858_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:859_b013_a013_d013_i013 @atom:859_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:860_b013_a013_d013_i013 @atom:860_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:861_b013_a013_d013_i013 @atom:861_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:862_b013_a013_d013_i013 @atom:862_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:863_b013_a013_d013_i013 @atom:863_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:864_b013_a013_d013_i013 @atom:864_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:865_b013_a013_d013_i013 @atom:865_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:866_b108_a108_d108_i108 @atom:866_b108_a108_d108_i108 0.1 4.0 + pair_coeff @atom:867_b108_a108_d108_i108 @atom:867_b108_a108_d108_i108 0.1 4.0 + pair_coeff @atom:868_b108_a108_d108_i108 @atom:868_b108_a108_d108_i108 0.1 4.0 + pair_coeff @atom:869_b108_a108_d108_i108 @atom:869_b108_a108_d108_i108 0.1 4.0 + pair_coeff @atom:870_b045_a045_d045_i045 @atom:870_b045_a045_d045_i045 0.03 2.5 + pair_coeff @atom:871_b013_a013_d013_i013 @atom:871_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:872_b013_a013_d013_i013 @atom:872_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:873_b013_a013_d013_i013 @atom:873_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:874_b013_a013_d013_i013 @atom:874_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:875_b001_a001_d001_i001 @atom:875_b001_a001_d001_i001 0.72 3.08 + pair_coeff @atom:876_b021_a021_d021_i021 @atom:876_b021_a021_d021_i021 0.11779 4.18 + pair_coeff @atom:877_b065_a065_d065_i065 @atom:877_b065_a065_d065_i065 0.09 4.51 + pair_coeff @atom:878_b066_a066_d066_i066 @atom:878_b066_a066_d066_i066 0.07 5.15 + pair_coeff @atom:879_b068_a068_d068_i068 @atom:879_b068_a068_d068_i068 0.018279 2.7 + pair_coeff @atom:880_b069_a069_d069_i069 @atom:880_b069_a069_d069_i069 0.002772 3.35 + pair_coeff @atom:881_b070_a070_d070_i070 @atom:881_b070_a070_d070_i070 0.000328 4.06 + pair_coeff @atom:882_b071_a071_d071_i071 @atom:882_b071_a071_d071_i071 0.000171 4.32 + pair_coeff @atom:883_b072_a072_d072_i072 @atom:883_b072_a072_d072_i072 8.1e-05 4.82 + pair_coeff @atom:884_b073_a073_d073_i073 @atom:884_b073_a073_d073_i073 0.875044 2.91 + pair_coeff @atom:885_b074_a074_d074_i074 @atom:885_b074_a074_d074_i074 0.449657 3.47 + pair_coeff @atom:886_b075_a075_d075_i075 @atom:886_b075_a075_d075_i075 0.118226 3.82 + pair_coeff @atom:887_b076_a076_d076_i076 @atom:887_b076_a076_d076_i076 0.047096 4.18 + pair_coeff @atom:888_b013_a013_d013_i013 @atom:888_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:889_b013_a013_d013_i013 @atom:889_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:890_b013_a013_d013_i013 @atom:890_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:891_b013_a013_d013_i013 @atom:891_b013_a013_d013_i013 0.066 3.5 + pair_coeff @atom:892_b046_a046_d046_i046 @atom:892_b046_a046_d046_i046 0.03 2.5 + pair_coeff @atom:893_b053_a053_d053_i053 @atom:893_b053_a053_d053_i053 0.17 3.25 + pair_coeff @atom:894_b048_a048_d048_i048 @atom:894_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:895_b053_a053_d053_i053 @atom:895_b053_a053_d053_i053 0.17 3.25 + pair_coeff @atom:896_b048_a048_d048_i048 @atom:896_b048_a048_d048_i048 0.07 3.55 + pair_coeff @atom:897_b109_a109_d109_i109 @atom:897_b109_a109_d109_i109 0.076 3.55 + pair_coeff @atom:898_b109_a109_d109_i109 @atom:898_b109_a109_d109_i109 0.076 3.55 + pair_coeff @atom:899_b046_a046_d046_i046 @atom:899_b046_a046_d046_i046 0.03 2.42 + pair_coeff @atom:900_b047_a047_d047_i047 @atom:900_b047_a047_d047_i047 0.086 3.3 + pair_coeff @atom:901_b047_a047_d047_i047 @atom:901_b047_a047_d047_i047 0.086 3.3 + pair_coeff @atom:902_b047_a047_d047_i047 @atom:902_b047_a047_d047_i047 0.086 3.3 + pair_coeff @atom:903_b110_a110_d110_i110 @atom:903_b110_a110_d110_i110 0.086 3.3 + pair_coeff @atom:904_b110_a110_d110_i110 @atom:904_b110_a110_d110_i110 0.086 3.3 + pair_coeff @atom:905_b004_a004_d004_i004 @atom:905_b004_a004_d004_i004 0.21 2.96 + pair_coeff @atom:906_b013_a013_d013_i013 @atom:906_b013_a013_d013_i013 0.066 3.5 } #(end of pair_coeffs) @@ -3689,388 +3702,388 @@ OPLSAA { # ------- Bonded Interactions: ------- # http://lammps.sandia.gov/doc/bond_harmonic.html # Syntax: - # bond_coeff BondTypeName BondStyle parameters... + # bond_coeff BondTypeName parameters... write_once("In Settings") { - bond_coeff @bond:1-2 harmonic 367.0 1.38 - bond_coeff @bond:1-3 harmonic 420.0 1.357 - bond_coeff @bond:1-13 harmonic 367.0 1.36 - bond_coeff @bond:1-19 harmonic 450.0 1.279 - bond_coeff @bond:1-25 harmonic 300.0 0.3 - bond_coeff @bond:1-47 harmonic 420.0 1.34 - bond_coeff @bond:1-48 harmonic 420.0 1.354 - bond_coeff @bond:1-82 harmonic 420.0 1.354 - bond_coeff @bond:1-83 harmonic 420.0 1.354 - bond_coeff @bond:1-84 harmonic 420.0 1.354 - bond_coeff @bond:1-87 harmonic 420.0 1.354 - bond_coeff @bond:1-88 harmonic 420.0 1.354 - bond_coeff @bond:1-108 harmonic 461.0 1.57 - bond_coeff @bond:2-2 harmonic 260.0 1.526 - bond_coeff @bond:2-3 harmonic 317.0 1.522 - bond_coeff @bond:2-5 harmonic 386.0 1.425 - bond_coeff @bond:2-6 harmonic 260.0 1.526 - bond_coeff @bond:2-10 harmonic 260.0 1.526 - bond_coeff @bond:2-11 harmonic 317.0 1.5 - bond_coeff @bond:2-12 harmonic 317.0 1.51 - bond_coeff @bond:2-13 harmonic 260.0 1.526 - bond_coeff @bond:2-14 harmonic 317.0 1.5 - bond_coeff @bond:2-15 harmonic 222.0 1.81 - bond_coeff @bond:2-16 harmonic 222.0 1.81 - bond_coeff @bond:2-20 harmonic 320.0 1.425 - bond_coeff @bond:2-24 harmonic 337.0 1.449 - bond_coeff @bond:2-44 harmonic 382.0 1.448 - bond_coeff @bond:2-48 harmonic 317.0 1.51 - bond_coeff @bond:2-51 harmonic 260.0 1.526 - bond_coeff @bond:2-53 harmonic 367.0 1.471 - bond_coeff @bond:2-55 harmonic 337.0 1.463 - bond_coeff @bond:2-80 harmonic 317.0 1.495 - bond_coeff @bond:3-3 harmonic 350.0 1.51 - bond_coeff @bond:3-4 harmonic 570.0 1.229 - bond_coeff @bond:3-5 harmonic 450.0 1.364 - bond_coeff @bond:3-6 harmonic 317.0 1.522 - bond_coeff @bond:3-10 harmonic 317.0 1.522 - bond_coeff @bond:3-12 harmonic 469.0 1.4 - bond_coeff @bond:3-13 harmonic 317.0 1.522 - bond_coeff @bond:3-19 harmonic 400.0 1.444 - bond_coeff @bond:3-20 harmonic 214.0 1.327 - bond_coeff @bond:3-21 harmonic 300.0 1.79 - bond_coeff @bond:3-24 harmonic 490.0 1.335 - bond_coeff @bond:3-44 harmonic 317.0 1.522 - bond_coeff @bond:3-46 harmonic 340.0 1.09 - bond_coeff @bond:3-47 harmonic 410.0 1.444 - bond_coeff @bond:3-48 harmonic 400.0 1.49 - bond_coeff @bond:3-50 harmonic 385.0 1.46 - bond_coeff @bond:3-52 harmonic 656.0 1.25 - bond_coeff @bond:3-56 harmonic 457.0 1.358 - bond_coeff @bond:3-57 harmonic 418.0 1.388 - bond_coeff @bond:3-60 harmonic 447.0 1.419 - bond_coeff @bond:3-65 harmonic 300.0 1.98 - bond_coeff @bond:3-84 harmonic 400.0 1.49 - bond_coeff @bond:3-86 harmonic 385.0 1.46 - bond_coeff @bond:3-105 harmonic 424.0 1.383 - bond_coeff @bond:3-107 harmonic 490.0 1.335 - bond_coeff @bond:4-25 harmonic 553.0 0.3 - bond_coeff @bond:4-64 harmonic 525.0 1.48 - bond_coeff @bond:4-89 harmonic 570.0 1.229 - bond_coeff @bond:4-110 harmonic 700.0 1.171 - bond_coeff @bond:5-6 harmonic 386.0 1.425 - bond_coeff @bond:5-7 harmonic 553.0 0.945 - bond_coeff @bond:5-10 harmonic 386.0 1.425 - bond_coeff @bond:5-13 harmonic 320.0 1.41 - bond_coeff @bond:5-20 harmonic 250.0 1.47 - bond_coeff @bond:5-24 harmonic 400.0 1.38 - bond_coeff @bond:5-25 harmonic 340.0 0.3 - bond_coeff @bond:5-44 harmonic 320.0 1.45 - bond_coeff @bond:5-47 harmonic 450.0 1.37 - bond_coeff @bond:5-48 harmonic 450.0 1.364 - bond_coeff @bond:5-51 harmonic 320.0 1.38 - bond_coeff @bond:5-64 harmonic 230.0 1.61 - bond_coeff @bond:5-79 harmonic 450.0 1.67 - bond_coeff @bond:5-106 harmonic 94.0 1.8 - bond_coeff @bond:5-108 harmonic 374.0 1.64 - bond_coeff @bond:6-6 harmonic 260.0 1.526 - bond_coeff @bond:6-10 harmonic 260.0 1.526 - bond_coeff @bond:6-11 harmonic 317.0 1.5 - bond_coeff @bond:6-13 harmonic 260.0 1.526 - bond_coeff @bond:6-14 harmonic 317.0 1.5 - bond_coeff @bond:6-15 harmonic 222.0 1.81 - bond_coeff @bond:6-16 harmonic 222.0 1.81 - bond_coeff @bond:6-20 harmonic 320.0 1.425 - bond_coeff @bond:6-24 harmonic 337.0 1.449 - bond_coeff @bond:6-44 harmonic 382.0 1.448 - bond_coeff @bond:6-47 harmonic 317.0 1.51 - bond_coeff @bond:6-51 harmonic 260.0 1.526 - bond_coeff @bond:6-53 harmonic 367.0 1.471 - bond_coeff @bond:6-55 harmonic 337.0 1.463 - bond_coeff @bond:6-79 harmonic 222.0 1.81 - bond_coeff @bond:6-105 harmonic 337.0 1.475 - bond_coeff @bond:7-20 harmonic 553.0 0.945 - bond_coeff @bond:7-25 harmonic 340.0 0.1 - bond_coeff @bond:9-9 harmonic 530.0 1.34 - bond_coeff @bond:9-11 harmonic 530.0 1.34 - bond_coeff @bond:9-14 harmonic 530.0 1.34 - bond_coeff @bond:10-10 harmonic 260.0 1.526 - bond_coeff @bond:10-11 harmonic 317.0 1.5 - bond_coeff @bond:10-14 harmonic 317.0 1.5 - bond_coeff @bond:10-20 harmonic 320.0 1.425 - bond_coeff @bond:10-24 harmonic 337.0 1.449 - bond_coeff @bond:10-44 harmonic 382.0 1.448 - bond_coeff @bond:10-105 harmonic 337.0 1.475 - bond_coeff @bond:11-11 harmonic 530.0 1.34 - bond_coeff @bond:11-13 harmonic 317.0 1.5 - bond_coeff @bond:11-14 harmonic 530.0 1.34 - bond_coeff @bond:11-79 harmonic 222.0 1.76 - bond_coeff @bond:12-12 harmonic 469.0 1.4 - bond_coeff @bond:12-48 harmonic 469.0 1.4 - bond_coeff @bond:12-60 harmonic 469.0 1.4 - bond_coeff @bond:12-81 harmonic 469.0 1.4 - bond_coeff @bond:13-13 harmonic 268.0 1.529 - bond_coeff @bond:13-14 harmonic 317.0 1.5 - bond_coeff @bond:13-15 harmonic 222.0 1.81 - bond_coeff @bond:13-16 harmonic 222.0 1.81 - bond_coeff @bond:13-18 harmonic 390.0 1.43 - bond_coeff @bond:13-19 harmonic 390.0 1.47 - bond_coeff @bond:13-20 harmonic 320.0 1.41 - bond_coeff @bond:13-21 harmonic 245.0 1.781 - bond_coeff @bond:13-22 harmonic 340.0 1.79 - bond_coeff @bond:13-24 harmonic 337.0 1.449 - bond_coeff @bond:13-25 harmonic 340.0 0.3 - bond_coeff @bond:13-44 harmonic 382.0 1.448 - bond_coeff @bond:13-46 harmonic 340.0 1.09 - bond_coeff @bond:13-47 harmonic 317.0 1.51 - bond_coeff @bond:13-48 harmonic 317.0 1.51 - bond_coeff @bond:13-50 harmonic 317.0 1.51 - bond_coeff @bond:13-51 harmonic 268.0 1.529 - bond_coeff @bond:13-53 harmonic 367.0 1.471 - bond_coeff @bond:13-55 harmonic 337.0 1.463 - bond_coeff @bond:13-56 harmonic 337.0 1.449 - bond_coeff @bond:13-57 harmonic 337.0 1.475 - bond_coeff @bond:13-60 harmonic 317.0 1.51 - bond_coeff @bond:13-64 harmonic 212.0 1.843 - bond_coeff @bond:13-65 harmonic 245.0 1.945 - bond_coeff @bond:13-66 harmonic 200.0 2.19 - bond_coeff @bond:13-79 harmonic 340.0 1.77 - bond_coeff @bond:13-80 harmonic 317.0 1.495 - bond_coeff @bond:13-83 harmonic 317.0 1.504 - bond_coeff @bond:13-84 harmonic 317.0 1.504 - bond_coeff @bond:13-85 harmonic 317.0 1.504 - bond_coeff @bond:13-87 harmonic 317.0 1.495 - bond_coeff @bond:13-90 harmonic 337.0 1.449 - bond_coeff @bond:13-91 harmonic 280.0 1.51 - bond_coeff @bond:13-95 harmonic 532.8 1.46 - bond_coeff @bond:13-101 harmonic 382.0 1.448 - bond_coeff @bond:13-102 harmonic 375.0 1.49 - bond_coeff @bond:13-104 harmonic 212.0 1.82 - bond_coeff @bond:13-105 harmonic 337.0 1.475 - bond_coeff @bond:13-107 harmonic 337.0 1.449 - bond_coeff @bond:13-108 harmonic 187.0 1.86 - bond_coeff @bond:13-109 harmonic 317.0 1.51 - bond_coeff @bond:14-14 harmonic 530.0 1.34 - bond_coeff @bond:15-17 harmonic 274.0 1.336 - bond_coeff @bond:15-48 harmonic 250.0 1.74 - bond_coeff @bond:16-16 harmonic 166.0 2.038 - bond_coeff @bond:16-19 harmonic 300.0 1.685 - bond_coeff @bond:16-24 harmonic 250.0 1.73 - bond_coeff @bond:16-25 harmonic 340.0 0.5 - bond_coeff @bond:16-47 harmonic 250.0 1.76 - bond_coeff @bond:16-48 harmonic 250.0 1.76 - bond_coeff @bond:16-61 harmonic 250.0 1.73 - bond_coeff @bond:16-82 harmonic 250.0 1.76 - bond_coeff @bond:16-84 harmonic 250.0 1.74 - bond_coeff @bond:16-91 harmonic 222.0 1.81 - bond_coeff @bond:16-108 harmonic 144.0 2.15 - bond_coeff @bond:17-25 harmonic 340.0 0.1 - bond_coeff @bond:18-18 harmonic 550.0 1.12 - bond_coeff @bond:18-19 harmonic 650.0 1.157 - bond_coeff @bond:18-48 harmonic 400.0 1.41 - bond_coeff @bond:18-56 harmonic 550.0 1.24 - bond_coeff @bond:19-19 harmonic 1150.0 1.21 - bond_coeff @bond:19-21 harmonic 330.0 1.637 - bond_coeff @bond:19-46 harmonic 420.0 1.08 - bond_coeff @bond:19-47 harmonic 400.0 1.426 - bond_coeff @bond:19-48 harmonic 400.0 1.451 - bond_coeff @bond:19-50 harmonic 400.0 1.426 - bond_coeff @bond:19-65 harmonic 330.0 1.784 - bond_coeff @bond:19-88 harmonic 400.0 1.451 - bond_coeff @bond:19-91 harmonic 400.0 1.451 - bond_coeff @bond:20-20 harmonic 250.0 1.47 - bond_coeff @bond:20-21 harmonic 200.0 1.69 - bond_coeff @bond:20-24 harmonic 320.0 1.45 - bond_coeff @bond:20-25 harmonic 340.0 0.3 - bond_coeff @bond:20-44 harmonic 320.0 1.45 - bond_coeff @bond:20-47 harmonic 450.0 1.37 - bond_coeff @bond:20-48 harmonic 450.0 1.364 - bond_coeff @bond:20-51 harmonic 320.0 1.38 - bond_coeff @bond:20-60 harmonic 340.0 1.36 - bond_coeff @bond:20-61 harmonic 462.0 1.399 - bond_coeff @bond:20-64 harmonic 230.0 1.61 - bond_coeff @bond:20-82 harmonic 462.0 1.357 - bond_coeff @bond:20-84 harmonic 340.0 1.36 - bond_coeff @bond:20-108 harmonic 374.0 1.64 - bond_coeff @bond:21-25 harmonic 300.0 0.3 - bond_coeff @bond:21-47 harmonic 300.0 1.725 - bond_coeff @bond:21-48 harmonic 300.0 1.725 - bond_coeff @bond:21-82 harmonic 300.0 1.725 - bond_coeff @bond:21-83 harmonic 300.0 1.725 - bond_coeff @bond:21-84 harmonic 300.0 1.725 - bond_coeff @bond:21-87 harmonic 300.0 1.725 - bond_coeff @bond:21-88 harmonic 300.0 1.725 - bond_coeff @bond:21-108 harmonic 223.0 2.02 - bond_coeff @bond:22-23 harmonic 700.0 1.53 - bond_coeff @bond:22-25 harmonic 340.0 0.5 - bond_coeff @bond:23-25 harmonic 340.0 0.3 - bond_coeff @bond:23-79 harmonic 700.0 1.44 - bond_coeff @bond:24-25 harmonic 367.0 0.3 - bond_coeff @bond:24-45 harmonic 434.0 1.01 - bond_coeff @bond:24-48 harmonic 427.0 1.381 - bond_coeff @bond:24-59 harmonic 427.0 1.381 - bond_coeff @bond:24-79 harmonic 434.0 1.67 - bond_coeff @bond:24-84 harmonic 427.0 1.381 - bond_coeff @bond:24-88 harmonic 427.0 1.381 - bond_coeff @bond:24-91 harmonic 337.0 1.449 - bond_coeff @bond:24-103 harmonic 500.0 1.27 - bond_coeff @bond:24-106 harmonic 40.0 2.05 - bond_coeff @bond:25-25 harmonic 340.0 0.3 - bond_coeff @bond:25-44 harmonic 340.0 0.3 - bond_coeff @bond:25-45 harmonic 340.0 0.1 - bond_coeff @bond:25-46 harmonic 340.0 0.3 - bond_coeff @bond:25-47 harmonic 340.0 0.3 - bond_coeff @bond:25-48 harmonic 367.0 0.3 - bond_coeff @bond:25-49 harmonic 340.0 0.3 - bond_coeff @bond:25-53 harmonic 340.0 0.3 - bond_coeff @bond:25-56 harmonic 367.0 0.3 - bond_coeff @bond:25-61 harmonic 367.0 0.3 - bond_coeff @bond:25-65 harmonic 300.0 0.3 - bond_coeff @bond:25-103 harmonic 340.0 0.1 - bond_coeff @bond:31-32 harmonic 600.0 0.9572 - bond_coeff @bond:31-33 harmonic 900.0 0.15 - bond_coeff @bond:31-106 harmonic 40.0 2.05 - bond_coeff @bond:34-35 harmonic 529.6 0.9572 - bond_coeff @bond:36-37 harmonic 600.0 0.9572 - bond_coeff @bond:36-38 harmonic 900.0 0.175 - bond_coeff @bond:39-40 harmonic 600.0 0.9572 - bond_coeff @bond:39-41 harmonic 900.0 0.7 - bond_coeff @bond:42-43 harmonic 600.0 1.0 - bond_coeff @bond:44-44 harmonic 350.0 1.445 - bond_coeff @bond:44-45 harmonic 434.0 1.01 - bond_coeff @bond:44-48 harmonic 481.0 1.34 - bond_coeff @bond:44-79 harmonic 340.0 1.77 - bond_coeff @bond:44-91 harmonic 382.0 1.448 - bond_coeff @bond:44-108 harmonic 266.0 1.74 - bond_coeff @bond:45-53 harmonic 434.0 1.01 - bond_coeff @bond:45-55 harmonic 434.0 1.01 - bond_coeff @bond:45-56 harmonic 434.0 1.01 - bond_coeff @bond:45-57 harmonic 434.0 1.01 - bond_coeff @bond:45-101 harmonic 434.0 1.01 - bond_coeff @bond:45-105 harmonic 434.0 1.01 - bond_coeff @bond:45-108 harmonic 166.0 1.48 - bond_coeff @bond:46-47 harmonic 340.0 1.08 - bond_coeff @bond:46-50 harmonic 340.0 1.08 - bond_coeff @bond:46-51 harmonic 340.0 1.09 - bond_coeff @bond:46-80 harmonic 340.0 1.08 - bond_coeff @bond:46-91 harmonic 340.0 1.088 - bond_coeff @bond:46-95 harmonic 532.8 1.084 - bond_coeff @bond:46-108 harmonic 166.0 1.48 - bond_coeff @bond:46-109 harmonic 340.0 1.08 - bond_coeff @bond:47-47 harmonic 549.0 1.34 - bond_coeff @bond:47-48 harmonic 427.0 1.433 - bond_coeff @bond:47-50 harmonic 549.0 1.34 - bond_coeff @bond:47-57 harmonic 448.0 1.365 - bond_coeff @bond:47-58 harmonic 367.0 1.08 - bond_coeff @bond:47-65 harmonic 300.0 1.9 - bond_coeff @bond:47-66 harmonic 250.0 2.08 - bond_coeff @bond:47-86 harmonic 385.0 1.46 - bond_coeff @bond:47-91 harmonic 317.0 1.51 - bond_coeff @bond:47-105 harmonic 448.0 1.365 - bond_coeff @bond:47-110 harmonic 700.0 1.305 - bond_coeff @bond:48-48 harmonic 469.0 1.4 - bond_coeff @bond:48-49 harmonic 367.0 1.08 - bond_coeff @bond:48-50 harmonic 427.0 1.433 - bond_coeff @bond:48-53 harmonic 400.0 1.45 - bond_coeff @bond:48-55 harmonic 481.0 1.34 - bond_coeff @bond:48-56 harmonic 483.0 1.339 - bond_coeff @bond:48-57 harmonic 427.0 1.381 - bond_coeff @bond:48-60 harmonic 469.0 1.404 - bond_coeff @bond:48-61 harmonic 414.0 1.391 - bond_coeff @bond:48-64 harmonic 220.0 1.78 - bond_coeff @bond:48-65 harmonic 300.0 1.87 - bond_coeff @bond:48-66 harmonic 250.0 2.08 - bond_coeff @bond:48-79 harmonic 340.0 1.77 - bond_coeff @bond:48-81 harmonic 469.0 1.4 - bond_coeff @bond:48-84 harmonic 546.0 1.367 - bond_coeff @bond:48-86 harmonic 469.0 1.4 - bond_coeff @bond:48-88 harmonic 469.0 1.421 - bond_coeff @bond:48-91 harmonic 317.0 1.49 - bond_coeff @bond:48-101 harmonic 382.0 1.385 - bond_coeff @bond:48-102 harmonic 400.0 1.46 - bond_coeff @bond:48-109 harmonic 427.0 1.433 - bond_coeff @bond:49-59 harmonic 367.0 1.08 - bond_coeff @bond:49-62 harmonic 340.0 1.08 - bond_coeff @bond:49-82 harmonic 367.0 1.08 - bond_coeff @bond:49-83 harmonic 367.0 1.08 - bond_coeff @bond:49-84 harmonic 367.0 1.08 - bond_coeff @bond:49-85 harmonic 367.0 1.08 - bond_coeff @bond:49-87 harmonic 367.0 1.08 - bond_coeff @bond:49-88 harmonic 367.0 1.08 - bond_coeff @bond:50-50 harmonic 385.0 1.46 - bond_coeff @bond:50-56 harmonic 457.0 1.29 - bond_coeff @bond:50-84 harmonic 549.0 1.365 - bond_coeff @bond:50-109 harmonic 385.0 1.46 - bond_coeff @bond:51-105 harmonic 337.0 1.475 - bond_coeff @bond:52-64 harmonic 525.0 1.48 - bond_coeff @bond:53-54 harmonic 434.0 1.01 - bond_coeff @bond:54-55 harmonic 434.0 1.01 - bond_coeff @bond:55-59 harmonic 481.0 1.34 - bond_coeff @bond:55-82 harmonic 481.0 1.34 - bond_coeff @bond:56-56 harmonic 500.0 1.32 - bond_coeff @bond:56-59 harmonic 502.0 1.324 - bond_coeff @bond:56-60 harmonic 461.0 1.354 - bond_coeff @bond:56-82 harmonic 461.0 1.354 - bond_coeff @bond:56-86 harmonic 483.0 1.339 - bond_coeff @bond:56-103 harmonic 550.0 1.21 - bond_coeff @bond:56-109 harmonic 457.0 1.29 - bond_coeff @bond:57-60 harmonic 436.0 1.374 - bond_coeff @bond:57-61 harmonic 400.0 1.349 - bond_coeff @bond:57-62 harmonic 440.0 1.371 - bond_coeff @bond:57-81 harmonic 428.0 1.38 - bond_coeff @bond:57-82 harmonic 477.0 1.343 - bond_coeff @bond:57-84 harmonic 427.0 1.381 - bond_coeff @bond:57-85 harmonic 427.0 1.381 - bond_coeff @bond:57-86 harmonic 385.0 1.44 - bond_coeff @bond:58-83 harmonic 367.0 1.08 - bond_coeff @bond:58-84 harmonic 367.0 1.08 - bond_coeff @bond:59-63 harmonic 367.0 1.08 - bond_coeff @bond:60-60 harmonic 520.0 1.37 - bond_coeff @bond:60-61 harmonic 414.0 1.391 - bond_coeff @bond:60-80 harmonic 388.0 1.459 - bond_coeff @bond:60-81 harmonic 447.0 1.419 - bond_coeff @bond:60-87 harmonic 469.0 1.424 - bond_coeff @bond:60-105 harmonic 436.0 1.374 - bond_coeff @bond:61-61 harmonic 400.0 1.28 - bond_coeff @bond:61-62 harmonic 529.0 1.304 - bond_coeff @bond:61-82 harmonic 488.0 1.335 - bond_coeff @bond:61-83 harmonic 410.0 1.394 - bond_coeff @bond:61-84 harmonic 410.0 1.394 - bond_coeff @bond:61-88 harmonic 410.0 1.32 - bond_coeff @bond:62-63 harmonic 367.0 1.08 - bond_coeff @bond:62-105 harmonic 440.0 1.371 - bond_coeff @bond:63-82 harmonic 367.0 1.08 - bond_coeff @bond:64-108 harmonic 108.0 2.25 - bond_coeff @bond:65-82 harmonic 300.0 1.87 - bond_coeff @bond:65-83 harmonic 300.0 1.87 - bond_coeff @bond:65-84 harmonic 300.0 1.87 - bond_coeff @bond:65-87 harmonic 300.0 1.87 - bond_coeff @bond:65-88 harmonic 300.0 1.87 - bond_coeff @bond:65-108 harmonic 151.0 2.19 - bond_coeff @bond:66-82 harmonic 250.0 2.08 - bond_coeff @bond:66-83 harmonic 250.0 2.08 - bond_coeff @bond:66-84 harmonic 250.0 2.08 - bond_coeff @bond:66-87 harmonic 250.0 2.08 - bond_coeff @bond:66-88 harmonic 250.0 2.08 - bond_coeff @bond:66-108 harmonic 108.0 2.44 - bond_coeff @bond:77-78 harmonic 500.0 1.8 - bond_coeff @bond:80-84 harmonic 546.0 1.352 - bond_coeff @bond:82-86 harmonic 385.0 1.46 - bond_coeff @bond:82-87 harmonic 520.0 1.37 - bond_coeff @bond:83-84 harmonic 520.0 1.37 - bond_coeff @bond:83-86 harmonic 385.0 1.46 - bond_coeff @bond:84-84 harmonic 512.0 1.375 - bond_coeff @bond:84-86 harmonic 385.0 1.46 - bond_coeff @bond:84-87 harmonic 546.0 1.367 - bond_coeff @bond:84-88 harmonic 520.0 1.37 - bond_coeff @bond:85-85 harmonic 520.0 1.37 - bond_coeff @bond:86-86 harmonic 385.0 1.46 - bond_coeff @bond:86-87 harmonic 385.0 1.46 - bond_coeff @bond:86-88 harmonic 385.0 1.46 - bond_coeff @bond:87-87 harmonic 469.0 1.424 - bond_coeff @bond:87-88 harmonic 469.0 1.424 - bond_coeff @bond:89-90 harmonic 490.0 1.335 - bond_coeff @bond:89-91 harmonic 317.0 1.522 - bond_coeff @bond:90-91 harmonic 337.0 1.449 - bond_coeff @bond:91-91 harmonic 260.0 1.52 - bond_coeff @bond:102-103 harmonic 550.0 1.225 - bond_coeff @bond:108-108 harmonic 94.0 2.32 - bond_coeff @bond:109-109 harmonic 549.0 1.345 + bond_coeff @bond:001_002 367.0 1.38 + bond_coeff @bond:001_003 420.0 1.357 + bond_coeff @bond:001_013 367.0 1.36 + bond_coeff @bond:001_019 450.0 1.279 + bond_coeff @bond:001_025 300.0 0.3 + bond_coeff @bond:001_047 420.0 1.34 + bond_coeff @bond:001_048 420.0 1.354 + bond_coeff @bond:001_082 420.0 1.354 + bond_coeff @bond:001_083 420.0 1.354 + bond_coeff @bond:001_084 420.0 1.354 + bond_coeff @bond:001_087 420.0 1.354 + bond_coeff @bond:001_088 420.0 1.354 + bond_coeff @bond:001_108 461.0 1.57 + bond_coeff @bond:002_002 260.0 1.526 + bond_coeff @bond:002_003 317.0 1.522 + bond_coeff @bond:002_005 386.0 1.425 + bond_coeff @bond:002_006 260.0 1.526 + bond_coeff @bond:002_010 260.0 1.526 + bond_coeff @bond:002_011 317.0 1.5 + bond_coeff @bond:002_012 317.0 1.51 + bond_coeff @bond:002_013 260.0 1.526 + bond_coeff @bond:002_014 317.0 1.5 + bond_coeff @bond:002_015 222.0 1.81 + bond_coeff @bond:002_016 222.0 1.81 + bond_coeff @bond:002_020 320.0 1.425 + bond_coeff @bond:002_024 337.0 1.449 + bond_coeff @bond:002_044 382.0 1.448 + bond_coeff @bond:002_048 317.0 1.51 + bond_coeff @bond:002_051 260.0 1.526 + bond_coeff @bond:002_053 367.0 1.471 + bond_coeff @bond:002_055 337.0 1.463 + bond_coeff @bond:002_080 317.0 1.495 + bond_coeff @bond:003_003 350.0 1.51 + bond_coeff @bond:003_004 570.0 1.229 + bond_coeff @bond:003_005 450.0 1.364 + bond_coeff @bond:003_006 317.0 1.522 + bond_coeff @bond:003_010 317.0 1.522 + bond_coeff @bond:003_012 469.0 1.4 + bond_coeff @bond:003_013 317.0 1.522 + bond_coeff @bond:003_019 400.0 1.444 + bond_coeff @bond:003_020 214.0 1.327 + bond_coeff @bond:003_021 300.0 1.79 + bond_coeff @bond:003_024 490.0 1.335 + bond_coeff @bond:003_044 317.0 1.522 + bond_coeff @bond:003_046 340.0 1.09 + bond_coeff @bond:003_047 410.0 1.444 + bond_coeff @bond:003_048 400.0 1.49 + bond_coeff @bond:003_050 385.0 1.46 + bond_coeff @bond:003_052 656.0 1.25 + bond_coeff @bond:003_056 457.0 1.358 + bond_coeff @bond:003_057 418.0 1.388 + bond_coeff @bond:003_060 447.0 1.419 + bond_coeff @bond:003_065 300.0 1.98 + bond_coeff @bond:003_084 400.0 1.49 + bond_coeff @bond:003_086 385.0 1.46 + bond_coeff @bond:003_105 424.0 1.383 + bond_coeff @bond:003_107 490.0 1.335 + bond_coeff @bond:004_025 553.0 0.3 + bond_coeff @bond:004_064 525.0 1.48 + bond_coeff @bond:004_089 570.0 1.229 + bond_coeff @bond:004_110 700.0 1.171 + bond_coeff @bond:005_006 386.0 1.425 + bond_coeff @bond:005_007 553.0 0.945 + bond_coeff @bond:005_010 386.0 1.425 + bond_coeff @bond:005_013 320.0 1.41 + bond_coeff @bond:005_020 250.0 1.47 + bond_coeff @bond:005_024 400.0 1.38 + bond_coeff @bond:005_025 340.0 0.3 + bond_coeff @bond:005_044 320.0 1.45 + bond_coeff @bond:005_047 450.0 1.37 + bond_coeff @bond:005_048 450.0 1.364 + bond_coeff @bond:005_051 320.0 1.38 + bond_coeff @bond:005_064 230.0 1.61 + bond_coeff @bond:005_079 450.0 1.67 + bond_coeff @bond:005_106 94.0 1.8 + bond_coeff @bond:005_108 374.0 1.64 + bond_coeff @bond:006_006 260.0 1.526 + bond_coeff @bond:006_010 260.0 1.526 + bond_coeff @bond:006_011 317.0 1.5 + bond_coeff @bond:006_013 260.0 1.526 + bond_coeff @bond:006_014 317.0 1.5 + bond_coeff @bond:006_015 222.0 1.81 + bond_coeff @bond:006_016 222.0 1.81 + bond_coeff @bond:006_020 320.0 1.425 + bond_coeff @bond:006_024 337.0 1.449 + bond_coeff @bond:006_044 382.0 1.448 + bond_coeff @bond:006_047 317.0 1.51 + bond_coeff @bond:006_051 260.0 1.526 + bond_coeff @bond:006_053 367.0 1.471 + bond_coeff @bond:006_055 337.0 1.463 + bond_coeff @bond:006_079 222.0 1.81 + bond_coeff @bond:006_105 337.0 1.475 + bond_coeff @bond:007_020 553.0 0.945 + bond_coeff @bond:007_025 340.0 0.1 + bond_coeff @bond:009_009 530.0 1.34 + bond_coeff @bond:009_011 530.0 1.34 + bond_coeff @bond:009_014 530.0 1.34 + bond_coeff @bond:010_010 260.0 1.526 + bond_coeff @bond:010_011 317.0 1.5 + bond_coeff @bond:010_014 317.0 1.5 + bond_coeff @bond:010_020 320.0 1.425 + bond_coeff @bond:010_024 337.0 1.449 + bond_coeff @bond:010_044 382.0 1.448 + bond_coeff @bond:010_105 337.0 1.475 + bond_coeff @bond:011_011 530.0 1.34 + bond_coeff @bond:011_013 317.0 1.5 + bond_coeff @bond:011_014 530.0 1.34 + bond_coeff @bond:011_079 222.0 1.76 + bond_coeff @bond:012_012 469.0 1.4 + bond_coeff @bond:012_048 469.0 1.4 + bond_coeff @bond:012_060 469.0 1.4 + bond_coeff @bond:012_081 469.0 1.4 + bond_coeff @bond:013_013 268.0 1.529 + bond_coeff @bond:013_014 317.0 1.5 + bond_coeff @bond:013_015 222.0 1.81 + bond_coeff @bond:013_016 222.0 1.81 + bond_coeff @bond:013_018 390.0 1.43 + bond_coeff @bond:013_019 390.0 1.47 + bond_coeff @bond:013_020 320.0 1.41 + bond_coeff @bond:013_021 245.0 1.781 + bond_coeff @bond:013_022 340.0 1.79 + bond_coeff @bond:013_024 337.0 1.449 + bond_coeff @bond:013_025 340.0 0.3 + bond_coeff @bond:013_044 382.0 1.448 + bond_coeff @bond:013_046 340.0 1.09 + bond_coeff @bond:013_047 317.0 1.51 + bond_coeff @bond:013_048 317.0 1.51 + bond_coeff @bond:013_050 317.0 1.51 + bond_coeff @bond:013_051 268.0 1.529 + bond_coeff @bond:013_053 367.0 1.471 + bond_coeff @bond:013_055 337.0 1.463 + bond_coeff @bond:013_056 337.0 1.449 + bond_coeff @bond:013_057 337.0 1.475 + bond_coeff @bond:013_060 317.0 1.51 + bond_coeff @bond:013_064 212.0 1.843 + bond_coeff @bond:013_065 245.0 1.945 + bond_coeff @bond:013_066 200.0 2.19 + bond_coeff @bond:013_079 340.0 1.77 + bond_coeff @bond:013_080 317.0 1.495 + bond_coeff @bond:013_083 317.0 1.504 + bond_coeff @bond:013_084 317.0 1.504 + bond_coeff @bond:013_085 317.0 1.504 + bond_coeff @bond:013_087 317.0 1.495 + bond_coeff @bond:013_090 337.0 1.449 + bond_coeff @bond:013_091 280.0 1.51 + bond_coeff @bond:013_095 532.8 1.46 + bond_coeff @bond:013_101 382.0 1.448 + bond_coeff @bond:013_102 375.0 1.49 + bond_coeff @bond:013_104 212.0 1.82 + bond_coeff @bond:013_105 337.0 1.475 + bond_coeff @bond:013_107 337.0 1.449 + bond_coeff @bond:013_108 187.0 1.86 + bond_coeff @bond:013_109 317.0 1.51 + bond_coeff @bond:014_014 530.0 1.34 + bond_coeff @bond:015_017 274.0 1.336 + bond_coeff @bond:015_048 250.0 1.74 + bond_coeff @bond:016_016 166.0 2.038 + bond_coeff @bond:016_019 300.0 1.685 + bond_coeff @bond:016_024 250.0 1.73 + bond_coeff @bond:016_025 340.0 0.5 + bond_coeff @bond:016_047 250.0 1.76 + bond_coeff @bond:016_048 250.0 1.76 + bond_coeff @bond:016_061 250.0 1.73 + bond_coeff @bond:016_082 250.0 1.76 + bond_coeff @bond:016_084 250.0 1.74 + bond_coeff @bond:016_091 222.0 1.81 + bond_coeff @bond:016_108 144.0 2.15 + bond_coeff @bond:017_025 340.0 0.1 + bond_coeff @bond:018_018 550.0 1.12 + bond_coeff @bond:018_019 650.0 1.157 + bond_coeff @bond:018_048 400.0 1.41 + bond_coeff @bond:018_056 550.0 1.24 + bond_coeff @bond:019_019 1150.0 1.21 + bond_coeff @bond:019_021 330.0 1.637 + bond_coeff @bond:019_046 420.0 1.08 + bond_coeff @bond:019_047 400.0 1.426 + bond_coeff @bond:019_048 400.0 1.451 + bond_coeff @bond:019_050 400.0 1.426 + bond_coeff @bond:019_065 330.0 1.784 + bond_coeff @bond:019_088 400.0 1.451 + bond_coeff @bond:019_091 400.0 1.451 + bond_coeff @bond:020_020 250.0 1.47 + bond_coeff @bond:020_021 200.0 1.69 + bond_coeff @bond:020_024 320.0 1.45 + bond_coeff @bond:020_025 340.0 0.3 + bond_coeff @bond:020_044 320.0 1.45 + bond_coeff @bond:020_047 450.0 1.37 + bond_coeff @bond:020_048 450.0 1.364 + bond_coeff @bond:020_051 320.0 1.38 + bond_coeff @bond:020_060 340.0 1.36 + bond_coeff @bond:020_061 462.0 1.399 + bond_coeff @bond:020_064 230.0 1.61 + bond_coeff @bond:020_082 462.0 1.357 + bond_coeff @bond:020_084 340.0 1.36 + bond_coeff @bond:020_108 374.0 1.64 + bond_coeff @bond:021_025 300.0 0.3 + bond_coeff @bond:021_047 300.0 1.725 + bond_coeff @bond:021_048 300.0 1.725 + bond_coeff @bond:021_082 300.0 1.725 + bond_coeff @bond:021_083 300.0 1.725 + bond_coeff @bond:021_084 300.0 1.725 + bond_coeff @bond:021_087 300.0 1.725 + bond_coeff @bond:021_088 300.0 1.725 + bond_coeff @bond:021_108 223.0 2.02 + bond_coeff @bond:022_023 700.0 1.53 + bond_coeff @bond:022_025 340.0 0.5 + bond_coeff @bond:023_025 340.0 0.3 + bond_coeff @bond:023_079 700.0 1.44 + bond_coeff @bond:024_025 367.0 0.3 + bond_coeff @bond:024_045 434.0 1.01 + bond_coeff @bond:024_048 427.0 1.381 + bond_coeff @bond:024_059 427.0 1.381 + bond_coeff @bond:024_079 434.0 1.67 + bond_coeff @bond:024_084 427.0 1.381 + bond_coeff @bond:024_088 427.0 1.381 + bond_coeff @bond:024_091 337.0 1.449 + bond_coeff @bond:024_103 500.0 1.27 + bond_coeff @bond:024_106 40.0 2.05 + bond_coeff @bond:025_025 340.0 0.3 + bond_coeff @bond:025_044 340.0 0.3 + bond_coeff @bond:025_045 340.0 0.1 + bond_coeff @bond:025_046 340.0 0.3 + bond_coeff @bond:025_047 340.0 0.3 + bond_coeff @bond:025_048 367.0 0.3 + bond_coeff @bond:025_049 340.0 0.3 + bond_coeff @bond:025_053 340.0 0.3 + bond_coeff @bond:025_056 367.0 0.3 + bond_coeff @bond:025_061 367.0 0.3 + bond_coeff @bond:025_065 300.0 0.3 + bond_coeff @bond:025_103 340.0 0.1 + bond_coeff @bond:031_032 600.0 0.9572 + bond_coeff @bond:031_033 900.0 0.15 + bond_coeff @bond:031_106 40.0 2.05 + bond_coeff @bond:034_035 529.6 0.9572 + bond_coeff @bond:036_037 600.0 0.9572 + bond_coeff @bond:036_038 900.0 0.175 + bond_coeff @bond:039_040 600.0 0.9572 + bond_coeff @bond:039_041 900.0 0.7 + bond_coeff @bond:042_043 600.0 1.0 + bond_coeff @bond:044_044 350.0 1.445 + bond_coeff @bond:044_045 434.0 1.01 + bond_coeff @bond:044_048 481.0 1.34 + bond_coeff @bond:044_079 340.0 1.77 + bond_coeff @bond:044_091 382.0 1.448 + bond_coeff @bond:044_108 266.0 1.74 + bond_coeff @bond:045_053 434.0 1.01 + bond_coeff @bond:045_055 434.0 1.01 + bond_coeff @bond:045_056 434.0 1.01 + bond_coeff @bond:045_057 434.0 1.01 + bond_coeff @bond:045_101 434.0 1.01 + bond_coeff @bond:045_105 434.0 1.01 + bond_coeff @bond:045_108 166.0 1.48 + bond_coeff @bond:046_047 340.0 1.08 + bond_coeff @bond:046_050 340.0 1.08 + bond_coeff @bond:046_051 340.0 1.09 + bond_coeff @bond:046_080 340.0 1.08 + bond_coeff @bond:046_091 340.0 1.088 + bond_coeff @bond:046_095 532.8 1.084 + bond_coeff @bond:046_108 166.0 1.48 + bond_coeff @bond:046_109 340.0 1.08 + bond_coeff @bond:047_047 549.0 1.34 + bond_coeff @bond:047_048 427.0 1.433 + bond_coeff @bond:047_050 549.0 1.34 + bond_coeff @bond:047_057 448.0 1.365 + bond_coeff @bond:047_058 367.0 1.08 + bond_coeff @bond:047_065 300.0 1.9 + bond_coeff @bond:047_066 250.0 2.08 + bond_coeff @bond:047_086 385.0 1.46 + bond_coeff @bond:047_091 317.0 1.51 + bond_coeff @bond:047_105 448.0 1.365 + bond_coeff @bond:047_110 700.0 1.305 + bond_coeff @bond:048_048 469.0 1.4 + bond_coeff @bond:048_049 367.0 1.08 + bond_coeff @bond:048_050 427.0 1.433 + bond_coeff @bond:048_053 400.0 1.45 + bond_coeff @bond:048_055 481.0 1.34 + bond_coeff @bond:048_056 483.0 1.339 + bond_coeff @bond:048_057 427.0 1.381 + bond_coeff @bond:048_060 469.0 1.404 + bond_coeff @bond:048_061 414.0 1.391 + bond_coeff @bond:048_064 220.0 1.78 + bond_coeff @bond:048_065 300.0 1.87 + bond_coeff @bond:048_066 250.0 2.08 + bond_coeff @bond:048_079 340.0 1.77 + bond_coeff @bond:048_081 469.0 1.4 + bond_coeff @bond:048_084 546.0 1.367 + bond_coeff @bond:048_086 469.0 1.4 + bond_coeff @bond:048_088 469.0 1.421 + bond_coeff @bond:048_091 317.0 1.49 + bond_coeff @bond:048_101 382.0 1.385 + bond_coeff @bond:048_102 400.0 1.46 + bond_coeff @bond:048_109 427.0 1.433 + bond_coeff @bond:049_059 367.0 1.08 + bond_coeff @bond:049_062 340.0 1.08 + bond_coeff @bond:049_082 367.0 1.08 + bond_coeff @bond:049_083 367.0 1.08 + bond_coeff @bond:049_084 367.0 1.08 + bond_coeff @bond:049_085 367.0 1.08 + bond_coeff @bond:049_087 367.0 1.08 + bond_coeff @bond:049_088 367.0 1.08 + bond_coeff @bond:050_050 385.0 1.46 + bond_coeff @bond:050_056 457.0 1.29 + bond_coeff @bond:050_084 549.0 1.365 + bond_coeff @bond:050_109 385.0 1.46 + bond_coeff @bond:051_105 337.0 1.475 + bond_coeff @bond:052_064 525.0 1.48 + bond_coeff @bond:053_054 434.0 1.01 + bond_coeff @bond:054_055 434.0 1.01 + bond_coeff @bond:055_059 481.0 1.34 + bond_coeff @bond:055_082 481.0 1.34 + bond_coeff @bond:056_056 500.0 1.32 + bond_coeff @bond:056_059 502.0 1.324 + bond_coeff @bond:056_060 461.0 1.354 + bond_coeff @bond:056_082 461.0 1.354 + bond_coeff @bond:056_086 483.0 1.339 + bond_coeff @bond:056_103 550.0 1.21 + bond_coeff @bond:056_109 457.0 1.29 + bond_coeff @bond:057_060 436.0 1.374 + bond_coeff @bond:057_061 400.0 1.349 + bond_coeff @bond:057_062 440.0 1.371 + bond_coeff @bond:057_081 428.0 1.38 + bond_coeff @bond:057_082 477.0 1.343 + bond_coeff @bond:057_084 427.0 1.381 + bond_coeff @bond:057_085 427.0 1.381 + bond_coeff @bond:057_086 385.0 1.44 + bond_coeff @bond:058_083 367.0 1.08 + bond_coeff @bond:058_084 367.0 1.08 + bond_coeff @bond:059_063 367.0 1.08 + bond_coeff @bond:060_060 520.0 1.37 + bond_coeff @bond:060_061 414.0 1.391 + bond_coeff @bond:060_080 388.0 1.459 + bond_coeff @bond:060_081 447.0 1.419 + bond_coeff @bond:060_087 469.0 1.424 + bond_coeff @bond:060_105 436.0 1.374 + bond_coeff @bond:061_061 400.0 1.28 + bond_coeff @bond:061_062 529.0 1.304 + bond_coeff @bond:061_082 488.0 1.335 + bond_coeff @bond:061_083 410.0 1.394 + bond_coeff @bond:061_084 410.0 1.394 + bond_coeff @bond:061_088 410.0 1.32 + bond_coeff @bond:062_063 367.0 1.08 + bond_coeff @bond:062_105 440.0 1.371 + bond_coeff @bond:063_082 367.0 1.08 + bond_coeff @bond:064_108 108.0 2.25 + bond_coeff @bond:065_082 300.0 1.87 + bond_coeff @bond:065_083 300.0 1.87 + bond_coeff @bond:065_084 300.0 1.87 + bond_coeff @bond:065_087 300.0 1.87 + bond_coeff @bond:065_088 300.0 1.87 + bond_coeff @bond:065_108 151.0 2.19 + bond_coeff @bond:066_082 250.0 2.08 + bond_coeff @bond:066_083 250.0 2.08 + bond_coeff @bond:066_084 250.0 2.08 + bond_coeff @bond:066_087 250.0 2.08 + bond_coeff @bond:066_088 250.0 2.08 + bond_coeff @bond:066_108 108.0 2.44 + bond_coeff @bond:077_078 500.0 1.8 + bond_coeff @bond:080_084 546.0 1.352 + bond_coeff @bond:082_086 385.0 1.46 + bond_coeff @bond:082_087 520.0 1.37 + bond_coeff @bond:083_084 520.0 1.37 + bond_coeff @bond:083_086 385.0 1.46 + bond_coeff @bond:084_084 512.0 1.375 + bond_coeff @bond:084_086 385.0 1.46 + bond_coeff @bond:084_087 546.0 1.367 + bond_coeff @bond:084_088 520.0 1.37 + bond_coeff @bond:085_085 520.0 1.37 + bond_coeff @bond:086_086 385.0 1.46 + bond_coeff @bond:086_087 385.0 1.46 + bond_coeff @bond:086_088 385.0 1.46 + bond_coeff @bond:087_087 469.0 1.424 + bond_coeff @bond:087_088 469.0 1.424 + bond_coeff @bond:089_090 490.0 1.335 + bond_coeff @bond:089_091 317.0 1.522 + bond_coeff @bond:090_091 337.0 1.449 + bond_coeff @bond:091_091 260.0 1.52 + bond_coeff @bond:102_103 550.0 1.225 + bond_coeff @bond:108_108 94.0 2.32 + bond_coeff @bond:109_109 549.0 1.345 } #(end of bond_coeffs) # Rules for assigning bond types by atom type: @@ -4078,385 +4091,385 @@ OPLSAA { # (* = wildcard) write_once("Data Bonds By Type") { - @bond:1-2 @atom:*_b1_a*_d*_i* @atom:*_b2_a*_d*_i* - @bond:1-3 @atom:*_b1_a*_d*_i* @atom:*_b3_a*_d*_i* - @bond:1-13 @atom:*_b1_a*_d*_i* @atom:*_b13_a*_d*_i* - @bond:1-19 @atom:*_b1_a*_d*_i* @atom:*_b19_a*_d*_i* - @bond:1-25 @atom:*_b1_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:1-47 @atom:*_b1_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:1-48 @atom:*_b1_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:1-82 @atom:*_b1_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:1-83 @atom:*_b1_a*_d*_i* @atom:*_b83_a*_d*_i* - @bond:1-84 @atom:*_b1_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:1-87 @atom:*_b1_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:1-88 @atom:*_b1_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:1-108 @atom:*_b1_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:2-2 @atom:*_b2_a*_d*_i* @atom:*_b2_a*_d*_i* - @bond:2-3 @atom:*_b2_a*_d*_i* @atom:*_b3_a*_d*_i* - @bond:2-5 @atom:*_b2_a*_d*_i* @atom:*_b5_a*_d*_i* - @bond:2-6 @atom:*_b2_a*_d*_i* @atom:*_b6_a*_d*_i* - @bond:2-10 @atom:*_b2_a*_d*_i* @atom:*_b10_a*_d*_i* - @bond:2-11 @atom:*_b2_a*_d*_i* @atom:*_b11_a*_d*_i* - @bond:2-12 @atom:*_b2_a*_d*_i* @atom:*_b12_a*_d*_i* - @bond:2-13 @atom:*_b2_a*_d*_i* @atom:*_b13_a*_d*_i* - @bond:2-14 @atom:*_b2_a*_d*_i* @atom:*_b14_a*_d*_i* - @bond:2-15 @atom:*_b2_a*_d*_i* @atom:*_b15_a*_d*_i* - @bond:2-16 @atom:*_b2_a*_d*_i* @atom:*_b16_a*_d*_i* - @bond:2-20 @atom:*_b2_a*_d*_i* @atom:*_b20_a*_d*_i* - @bond:2-24 @atom:*_b2_a*_d*_i* @atom:*_b24_a*_d*_i* - @bond:2-44 @atom:*_b2_a*_d*_i* @atom:*_b44_a*_d*_i* - @bond:2-48 @atom:*_b2_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:2-51 @atom:*_b2_a*_d*_i* @atom:*_b51_a*_d*_i* - @bond:2-53 @atom:*_b2_a*_d*_i* @atom:*_b53_a*_d*_i* - @bond:2-55 @atom:*_b2_a*_d*_i* @atom:*_b55_a*_d*_i* - @bond:2-80 @atom:*_b2_a*_d*_i* @atom:*_b80_a*_d*_i* - @bond:3-3 @atom:*_b3_a*_d*_i* @atom:*_b3_a*_d*_i* - @bond:3-4 @atom:*_b3_a*_d*_i* @atom:*_b4_a*_d*_i* - @bond:3-5 @atom:*_b3_a*_d*_i* @atom:*_b5_a*_d*_i* - @bond:3-6 @atom:*_b3_a*_d*_i* @atom:*_b6_a*_d*_i* - @bond:3-10 @atom:*_b3_a*_d*_i* @atom:*_b10_a*_d*_i* - @bond:3-12 @atom:*_b3_a*_d*_i* @atom:*_b12_a*_d*_i* - @bond:3-13 @atom:*_b3_a*_d*_i* @atom:*_b13_a*_d*_i* - @bond:3-19 @atom:*_b3_a*_d*_i* @atom:*_b19_a*_d*_i* - @bond:3-20 @atom:*_b3_a*_d*_i* @atom:*_b20_a*_d*_i* - @bond:3-21 @atom:*_b3_a*_d*_i* @atom:*_b21_a*_d*_i* - @bond:3-24 @atom:*_b3_a*_d*_i* @atom:*_b24_a*_d*_i* - @bond:3-44 @atom:*_b3_a*_d*_i* @atom:*_b44_a*_d*_i* - @bond:3-46 @atom:*_b3_a*_d*_i* @atom:*_b46_a*_d*_i* - @bond:3-47 @atom:*_b3_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:3-48 @atom:*_b3_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:3-50 @atom:*_b3_a*_d*_i* @atom:*_b50_a*_d*_i* - @bond:3-52 @atom:*_b3_a*_d*_i* @atom:*_b52_a*_d*_i* - @bond:3-56 @atom:*_b3_a*_d*_i* @atom:*_b56_a*_d*_i* - @bond:3-57 @atom:*_b3_a*_d*_i* @atom:*_b57_a*_d*_i* - @bond:3-60 @atom:*_b3_a*_d*_i* @atom:*_b60_a*_d*_i* - @bond:3-65 @atom:*_b3_a*_d*_i* @atom:*_b65_a*_d*_i* - @bond:3-84 @atom:*_b3_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:3-86 @atom:*_b3_a*_d*_i* @atom:*_b86_a*_d*_i* - @bond:3-105 @atom:*_b3_a*_d*_i* @atom:*_b105_a*_d*_i* - @bond:3-107 @atom:*_b3_a*_d*_i* @atom:*_b107_a*_d*_i* - @bond:4-25 @atom:*_b4_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:4-64 @atom:*_b4_a*_d*_i* @atom:*_b64_a*_d*_i* - @bond:4-89 @atom:*_b4_a*_d*_i* @atom:*_b89_a*_d*_i* - @bond:4-110 @atom:*_b4_a*_d*_i* @atom:*_b110_a*_d*_i* - @bond:5-6 @atom:*_b5_a*_d*_i* @atom:*_b6_a*_d*_i* - @bond:5-7 @atom:*_b5_a*_d*_i* @atom:*_b7_a*_d*_i* - @bond:5-10 @atom:*_b5_a*_d*_i* @atom:*_b10_a*_d*_i* - @bond:5-13 @atom:*_b5_a*_d*_i* @atom:*_b13_a*_d*_i* - @bond:5-20 @atom:*_b5_a*_d*_i* @atom:*_b20_a*_d*_i* - @bond:5-24 @atom:*_b5_a*_d*_i* @atom:*_b24_a*_d*_i* - @bond:5-25 @atom:*_b5_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:5-44 @atom:*_b5_a*_d*_i* @atom:*_b44_a*_d*_i* - @bond:5-47 @atom:*_b5_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:5-48 @atom:*_b5_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:5-51 @atom:*_b5_a*_d*_i* @atom:*_b51_a*_d*_i* - @bond:5-64 @atom:*_b5_a*_d*_i* @atom:*_b64_a*_d*_i* - @bond:5-79 @atom:*_b5_a*_d*_i* @atom:*_b79_a*_d*_i* - @bond:5-106 @atom:*_b5_a*_d*_i* @atom:*_b106_a*_d*_i* - @bond:5-108 @atom:*_b5_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:6-6 @atom:*_b6_a*_d*_i* @atom:*_b6_a*_d*_i* - @bond:6-10 @atom:*_b6_a*_d*_i* @atom:*_b10_a*_d*_i* - @bond:6-11 @atom:*_b6_a*_d*_i* @atom:*_b11_a*_d*_i* - @bond:6-13 @atom:*_b6_a*_d*_i* @atom:*_b13_a*_d*_i* - @bond:6-14 @atom:*_b6_a*_d*_i* @atom:*_b14_a*_d*_i* - @bond:6-15 @atom:*_b6_a*_d*_i* @atom:*_b15_a*_d*_i* - @bond:6-16 @atom:*_b6_a*_d*_i* @atom:*_b16_a*_d*_i* - @bond:6-20 @atom:*_b6_a*_d*_i* @atom:*_b20_a*_d*_i* - @bond:6-24 @atom:*_b6_a*_d*_i* @atom:*_b24_a*_d*_i* - @bond:6-44 @atom:*_b6_a*_d*_i* @atom:*_b44_a*_d*_i* - @bond:6-47 @atom:*_b6_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:6-51 @atom:*_b6_a*_d*_i* @atom:*_b51_a*_d*_i* - @bond:6-53 @atom:*_b6_a*_d*_i* @atom:*_b53_a*_d*_i* - @bond:6-55 @atom:*_b6_a*_d*_i* @atom:*_b55_a*_d*_i* - @bond:6-79 @atom:*_b6_a*_d*_i* @atom:*_b79_a*_d*_i* - @bond:6-105 @atom:*_b6_a*_d*_i* @atom:*_b105_a*_d*_i* - @bond:7-20 @atom:*_b7_a*_d*_i* @atom:*_b20_a*_d*_i* - @bond:7-25 @atom:*_b7_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:9-9 @atom:*_b9_a*_d*_i* @atom:*_b9_a*_d*_i* - @bond:9-11 @atom:*_b9_a*_d*_i* @atom:*_b11_a*_d*_i* - @bond:9-14 @atom:*_b9_a*_d*_i* @atom:*_b14_a*_d*_i* - @bond:10-10 @atom:*_b10_a*_d*_i* @atom:*_b10_a*_d*_i* - @bond:10-11 @atom:*_b10_a*_d*_i* @atom:*_b11_a*_d*_i* - @bond:10-14 @atom:*_b10_a*_d*_i* @atom:*_b14_a*_d*_i* - @bond:10-20 @atom:*_b10_a*_d*_i* @atom:*_b20_a*_d*_i* - @bond:10-24 @atom:*_b10_a*_d*_i* @atom:*_b24_a*_d*_i* - @bond:10-44 @atom:*_b10_a*_d*_i* @atom:*_b44_a*_d*_i* - @bond:10-105 @atom:*_b10_a*_d*_i* @atom:*_b105_a*_d*_i* - @bond:11-11 @atom:*_b11_a*_d*_i* @atom:*_b11_a*_d*_i* - @bond:11-13 @atom:*_b11_a*_d*_i* @atom:*_b13_a*_d*_i* - @bond:11-14 @atom:*_b11_a*_d*_i* @atom:*_b14_a*_d*_i* - @bond:11-79 @atom:*_b11_a*_d*_i* @atom:*_b79_a*_d*_i* - @bond:12-12 @atom:*_b12_a*_d*_i* @atom:*_b12_a*_d*_i* - @bond:12-48 @atom:*_b12_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:12-60 @atom:*_b12_a*_d*_i* @atom:*_b60_a*_d*_i* - @bond:12-81 @atom:*_b12_a*_d*_i* @atom:*_b81_a*_d*_i* - @bond:13-13 @atom:*_b13_a*_d*_i* @atom:*_b13_a*_d*_i* - @bond:13-14 @atom:*_b13_a*_d*_i* @atom:*_b14_a*_d*_i* - @bond:13-15 @atom:*_b13_a*_d*_i* @atom:*_b15_a*_d*_i* - @bond:13-16 @atom:*_b13_a*_d*_i* @atom:*_b16_a*_d*_i* - @bond:13-18 @atom:*_b13_a*_d*_i* @atom:*_b18_a*_d*_i* - @bond:13-19 @atom:*_b13_a*_d*_i* @atom:*_b19_a*_d*_i* - @bond:13-20 @atom:*_b13_a*_d*_i* @atom:*_b20_a*_d*_i* - @bond:13-21 @atom:*_b13_a*_d*_i* @atom:*_b21_a*_d*_i* - @bond:13-22 @atom:*_b13_a*_d*_i* @atom:*_b22_a*_d*_i* - @bond:13-24 @atom:*_b13_a*_d*_i* @atom:*_b24_a*_d*_i* - @bond:13-25 @atom:*_b13_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:13-44 @atom:*_b13_a*_d*_i* @atom:*_b44_a*_d*_i* - @bond:13-46 @atom:*_b13_a*_d*_i* @atom:*_b46_a*_d*_i* - @bond:13-47 @atom:*_b13_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:13-48 @atom:*_b13_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:13-50 @atom:*_b13_a*_d*_i* @atom:*_b50_a*_d*_i* - @bond:13-51 @atom:*_b13_a*_d*_i* @atom:*_b51_a*_d*_i* - @bond:13-53 @atom:*_b13_a*_d*_i* @atom:*_b53_a*_d*_i* - @bond:13-55 @atom:*_b13_a*_d*_i* @atom:*_b55_a*_d*_i* - @bond:13-56 @atom:*_b13_a*_d*_i* @atom:*_b56_a*_d*_i* - @bond:13-57 @atom:*_b13_a*_d*_i* @atom:*_b57_a*_d*_i* - @bond:13-60 @atom:*_b13_a*_d*_i* @atom:*_b60_a*_d*_i* - @bond:13-64 @atom:*_b13_a*_d*_i* @atom:*_b64_a*_d*_i* - @bond:13-65 @atom:*_b13_a*_d*_i* @atom:*_b65_a*_d*_i* - @bond:13-66 @atom:*_b13_a*_d*_i* @atom:*_b66_a*_d*_i* - @bond:13-79 @atom:*_b13_a*_d*_i* @atom:*_b79_a*_d*_i* - @bond:13-80 @atom:*_b13_a*_d*_i* @atom:*_b80_a*_d*_i* - @bond:13-83 @atom:*_b13_a*_d*_i* @atom:*_b83_a*_d*_i* - @bond:13-84 @atom:*_b13_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:13-85 @atom:*_b13_a*_d*_i* @atom:*_b85_a*_d*_i* - @bond:13-87 @atom:*_b13_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:13-90 @atom:*_b13_a*_d*_i* @atom:*_b90_a*_d*_i* - @bond:13-91 @atom:*_b13_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:13-95 @atom:*_b13_a*_d*_i* @atom:*_b95_a*_d*_i* - @bond:13-101 @atom:*_b13_a*_d*_i* @atom:*_b101_a*_d*_i* - @bond:13-102 @atom:*_b13_a*_d*_i* @atom:*_b102_a*_d*_i* - @bond:13-104 @atom:*_b13_a*_d*_i* @atom:*_b104_a*_d*_i* - @bond:13-105 @atom:*_b13_a*_d*_i* @atom:*_b105_a*_d*_i* - @bond:13-107 @atom:*_b13_a*_d*_i* @atom:*_b107_a*_d*_i* - @bond:13-108 @atom:*_b13_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:13-109 @atom:*_b13_a*_d*_i* @atom:*_b109_a*_d*_i* - @bond:14-14 @atom:*_b14_a*_d*_i* @atom:*_b14_a*_d*_i* - @bond:15-17 @atom:*_b15_a*_d*_i* @atom:*_b17_a*_d*_i* - @bond:15-48 @atom:*_b15_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:16-16 @atom:*_b16_a*_d*_i* @atom:*_b16_a*_d*_i* - @bond:16-19 @atom:*_b16_a*_d*_i* @atom:*_b19_a*_d*_i* - @bond:16-24 @atom:*_b16_a*_d*_i* @atom:*_b24_a*_d*_i* - @bond:16-25 @atom:*_b16_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:16-47 @atom:*_b16_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:16-48 @atom:*_b16_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:16-61 @atom:*_b16_a*_d*_i* @atom:*_b61_a*_d*_i* - @bond:16-82 @atom:*_b16_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:16-84 @atom:*_b16_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:16-91 @atom:*_b16_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:16-108 @atom:*_b16_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:17-25 @atom:*_b17_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:18-18 @atom:*_b18_a*_d*_i* @atom:*_b18_a*_d*_i* - @bond:18-19 @atom:*_b18_a*_d*_i* @atom:*_b19_a*_d*_i* - @bond:18-48 @atom:*_b18_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:18-56 @atom:*_b18_a*_d*_i* @atom:*_b56_a*_d*_i* - @bond:19-19 @atom:*_b19_a*_d*_i* @atom:*_b19_a*_d*_i* - @bond:19-21 @atom:*_b19_a*_d*_i* @atom:*_b21_a*_d*_i* - @bond:19-46 @atom:*_b19_a*_d*_i* @atom:*_b46_a*_d*_i* - @bond:19-47 @atom:*_b19_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:19-48 @atom:*_b19_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:19-50 @atom:*_b19_a*_d*_i* @atom:*_b50_a*_d*_i* - @bond:19-65 @atom:*_b19_a*_d*_i* @atom:*_b65_a*_d*_i* - @bond:19-88 @atom:*_b19_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:19-91 @atom:*_b19_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:20-20 @atom:*_b20_a*_d*_i* @atom:*_b20_a*_d*_i* - @bond:20-21 @atom:*_b20_a*_d*_i* @atom:*_b21_a*_d*_i* - @bond:20-24 @atom:*_b20_a*_d*_i* @atom:*_b24_a*_d*_i* - @bond:20-25 @atom:*_b20_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:20-44 @atom:*_b20_a*_d*_i* @atom:*_b44_a*_d*_i* - @bond:20-47 @atom:*_b20_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:20-48 @atom:*_b20_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:20-51 @atom:*_b20_a*_d*_i* @atom:*_b51_a*_d*_i* - @bond:20-60 @atom:*_b20_a*_d*_i* @atom:*_b60_a*_d*_i* - @bond:20-61 @atom:*_b20_a*_d*_i* @atom:*_b61_a*_d*_i* - @bond:20-64 @atom:*_b20_a*_d*_i* @atom:*_b64_a*_d*_i* - @bond:20-82 @atom:*_b20_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:20-84 @atom:*_b20_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:20-108 @atom:*_b20_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:21-25 @atom:*_b21_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:21-47 @atom:*_b21_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:21-48 @atom:*_b21_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:21-82 @atom:*_b21_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:21-83 @atom:*_b21_a*_d*_i* @atom:*_b83_a*_d*_i* - @bond:21-84 @atom:*_b21_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:21-87 @atom:*_b21_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:21-88 @atom:*_b21_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:21-108 @atom:*_b21_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:22-23 @atom:*_b22_a*_d*_i* @atom:*_b23_a*_d*_i* - @bond:22-25 @atom:*_b22_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:23-25 @atom:*_b23_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:23-79 @atom:*_b23_a*_d*_i* @atom:*_b79_a*_d*_i* - @bond:24-25 @atom:*_b24_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:24-45 @atom:*_b24_a*_d*_i* @atom:*_b45_a*_d*_i* - @bond:24-48 @atom:*_b24_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:24-59 @atom:*_b24_a*_d*_i* @atom:*_b59_a*_d*_i* - @bond:24-79 @atom:*_b24_a*_d*_i* @atom:*_b79_a*_d*_i* - @bond:24-84 @atom:*_b24_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:24-88 @atom:*_b24_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:24-91 @atom:*_b24_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:24-103 @atom:*_b24_a*_d*_i* @atom:*_b103_a*_d*_i* - @bond:24-106 @atom:*_b24_a*_d*_i* @atom:*_b106_a*_d*_i* - @bond:25-25 @atom:*_b25_a*_d*_i* @atom:*_b25_a*_d*_i* - @bond:25-44 @atom:*_b25_a*_d*_i* @atom:*_b44_a*_d*_i* - @bond:25-45 @atom:*_b25_a*_d*_i* @atom:*_b45_a*_d*_i* - @bond:25-46 @atom:*_b25_a*_d*_i* @atom:*_b46_a*_d*_i* - @bond:25-47 @atom:*_b25_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:25-48 @atom:*_b25_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:25-49 @atom:*_b25_a*_d*_i* @atom:*_b49_a*_d*_i* - @bond:25-53 @atom:*_b25_a*_d*_i* @atom:*_b53_a*_d*_i* - @bond:25-56 @atom:*_b25_a*_d*_i* @atom:*_b56_a*_d*_i* - @bond:25-61 @atom:*_b25_a*_d*_i* @atom:*_b61_a*_d*_i* - @bond:25-65 @atom:*_b25_a*_d*_i* @atom:*_b65_a*_d*_i* - @bond:25-103 @atom:*_b25_a*_d*_i* @atom:*_b103_a*_d*_i* - @bond:31-32 @atom:*_b31_a*_d*_i* @atom:*_b32_a*_d*_i* - @bond:31-33 @atom:*_b31_a*_d*_i* @atom:*_b33_a*_d*_i* - @bond:31-106 @atom:*_b31_a*_d*_i* @atom:*_b106_a*_d*_i* - @bond:34-35 @atom:*_b34_a*_d*_i* @atom:*_b35_a*_d*_i* - @bond:36-37 @atom:*_b36_a*_d*_i* @atom:*_b37_a*_d*_i* - @bond:36-38 @atom:*_b36_a*_d*_i* @atom:*_b38_a*_d*_i* - @bond:39-40 @atom:*_b39_a*_d*_i* @atom:*_b40_a*_d*_i* - @bond:39-41 @atom:*_b39_a*_d*_i* @atom:*_b41_a*_d*_i* - @bond:42-43 @atom:*_b42_a*_d*_i* @atom:*_b43_a*_d*_i* - @bond:44-44 @atom:*_b44_a*_d*_i* @atom:*_b44_a*_d*_i* - @bond:44-45 @atom:*_b44_a*_d*_i* @atom:*_b45_a*_d*_i* - @bond:44-48 @atom:*_b44_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:44-79 @atom:*_b44_a*_d*_i* @atom:*_b79_a*_d*_i* - @bond:44-91 @atom:*_b44_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:44-108 @atom:*_b44_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:45-53 @atom:*_b45_a*_d*_i* @atom:*_b53_a*_d*_i* - @bond:45-55 @atom:*_b45_a*_d*_i* @atom:*_b55_a*_d*_i* - @bond:45-56 @atom:*_b45_a*_d*_i* @atom:*_b56_a*_d*_i* - @bond:45-57 @atom:*_b45_a*_d*_i* @atom:*_b57_a*_d*_i* - @bond:45-101 @atom:*_b45_a*_d*_i* @atom:*_b101_a*_d*_i* - @bond:45-105 @atom:*_b45_a*_d*_i* @atom:*_b105_a*_d*_i* - @bond:45-108 @atom:*_b45_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:46-47 @atom:*_b46_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:46-50 @atom:*_b46_a*_d*_i* @atom:*_b50_a*_d*_i* - @bond:46-51 @atom:*_b46_a*_d*_i* @atom:*_b51_a*_d*_i* - @bond:46-80 @atom:*_b46_a*_d*_i* @atom:*_b80_a*_d*_i* - @bond:46-91 @atom:*_b46_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:46-95 @atom:*_b46_a*_d*_i* @atom:*_b95_a*_d*_i* - @bond:46-108 @atom:*_b46_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:46-109 @atom:*_b46_a*_d*_i* @atom:*_b109_a*_d*_i* - @bond:47-47 @atom:*_b47_a*_d*_i* @atom:*_b47_a*_d*_i* - @bond:47-48 @atom:*_b47_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:47-50 @atom:*_b47_a*_d*_i* @atom:*_b50_a*_d*_i* - @bond:47-57 @atom:*_b47_a*_d*_i* @atom:*_b57_a*_d*_i* - @bond:47-58 @atom:*_b47_a*_d*_i* @atom:*_b58_a*_d*_i* - @bond:47-65 @atom:*_b47_a*_d*_i* @atom:*_b65_a*_d*_i* - @bond:47-66 @atom:*_b47_a*_d*_i* @atom:*_b66_a*_d*_i* - @bond:47-86 @atom:*_b47_a*_d*_i* @atom:*_b86_a*_d*_i* - @bond:47-91 @atom:*_b47_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:47-105 @atom:*_b47_a*_d*_i* @atom:*_b105_a*_d*_i* - @bond:47-110 @atom:*_b47_a*_d*_i* @atom:*_b110_a*_d*_i* - @bond:48-48 @atom:*_b48_a*_d*_i* @atom:*_b48_a*_d*_i* - @bond:48-49 @atom:*_b48_a*_d*_i* @atom:*_b49_a*_d*_i* - @bond:48-50 @atom:*_b48_a*_d*_i* @atom:*_b50_a*_d*_i* - @bond:48-53 @atom:*_b48_a*_d*_i* @atom:*_b53_a*_d*_i* - @bond:48-55 @atom:*_b48_a*_d*_i* @atom:*_b55_a*_d*_i* - @bond:48-56 @atom:*_b48_a*_d*_i* @atom:*_b56_a*_d*_i* - @bond:48-57 @atom:*_b48_a*_d*_i* @atom:*_b57_a*_d*_i* - @bond:48-60 @atom:*_b48_a*_d*_i* @atom:*_b60_a*_d*_i* - @bond:48-61 @atom:*_b48_a*_d*_i* @atom:*_b61_a*_d*_i* - @bond:48-64 @atom:*_b48_a*_d*_i* @atom:*_b64_a*_d*_i* - @bond:48-65 @atom:*_b48_a*_d*_i* @atom:*_b65_a*_d*_i* - @bond:48-66 @atom:*_b48_a*_d*_i* @atom:*_b66_a*_d*_i* - @bond:48-79 @atom:*_b48_a*_d*_i* @atom:*_b79_a*_d*_i* - @bond:48-81 @atom:*_b48_a*_d*_i* @atom:*_b81_a*_d*_i* - @bond:48-84 @atom:*_b48_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:48-86 @atom:*_b48_a*_d*_i* @atom:*_b86_a*_d*_i* - @bond:48-88 @atom:*_b48_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:48-91 @atom:*_b48_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:48-101 @atom:*_b48_a*_d*_i* @atom:*_b101_a*_d*_i* - @bond:48-102 @atom:*_b48_a*_d*_i* @atom:*_b102_a*_d*_i* - @bond:48-109 @atom:*_b48_a*_d*_i* @atom:*_b109_a*_d*_i* - @bond:49-59 @atom:*_b49_a*_d*_i* @atom:*_b59_a*_d*_i* - @bond:49-62 @atom:*_b49_a*_d*_i* @atom:*_b62_a*_d*_i* - @bond:49-82 @atom:*_b49_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:49-83 @atom:*_b49_a*_d*_i* @atom:*_b83_a*_d*_i* - @bond:49-84 @atom:*_b49_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:49-85 @atom:*_b49_a*_d*_i* @atom:*_b85_a*_d*_i* - @bond:49-87 @atom:*_b49_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:49-88 @atom:*_b49_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:50-50 @atom:*_b50_a*_d*_i* @atom:*_b50_a*_d*_i* - @bond:50-56 @atom:*_b50_a*_d*_i* @atom:*_b56_a*_d*_i* - @bond:50-84 @atom:*_b50_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:50-109 @atom:*_b50_a*_d*_i* @atom:*_b109_a*_d*_i* - @bond:51-105 @atom:*_b51_a*_d*_i* @atom:*_b105_a*_d*_i* - @bond:52-64 @atom:*_b52_a*_d*_i* @atom:*_b64_a*_d*_i* - @bond:53-54 @atom:*_b53_a*_d*_i* @atom:*_b54_a*_d*_i* - @bond:54-55 @atom:*_b54_a*_d*_i* @atom:*_b55_a*_d*_i* - @bond:55-59 @atom:*_b55_a*_d*_i* @atom:*_b59_a*_d*_i* - @bond:55-82 @atom:*_b55_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:56-56 @atom:*_b56_a*_d*_i* @atom:*_b56_a*_d*_i* - @bond:56-59 @atom:*_b56_a*_d*_i* @atom:*_b59_a*_d*_i* - @bond:56-60 @atom:*_b56_a*_d*_i* @atom:*_b60_a*_d*_i* - @bond:56-82 @atom:*_b56_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:56-86 @atom:*_b56_a*_d*_i* @atom:*_b86_a*_d*_i* - @bond:56-103 @atom:*_b56_a*_d*_i* @atom:*_b103_a*_d*_i* - @bond:56-109 @atom:*_b56_a*_d*_i* @atom:*_b109_a*_d*_i* - @bond:57-60 @atom:*_b57_a*_d*_i* @atom:*_b60_a*_d*_i* - @bond:57-61 @atom:*_b57_a*_d*_i* @atom:*_b61_a*_d*_i* - @bond:57-62 @atom:*_b57_a*_d*_i* @atom:*_b62_a*_d*_i* - @bond:57-81 @atom:*_b57_a*_d*_i* @atom:*_b81_a*_d*_i* - @bond:57-82 @atom:*_b57_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:57-84 @atom:*_b57_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:57-85 @atom:*_b57_a*_d*_i* @atom:*_b85_a*_d*_i* - @bond:57-86 @atom:*_b57_a*_d*_i* @atom:*_b86_a*_d*_i* - @bond:58-83 @atom:*_b58_a*_d*_i* @atom:*_b83_a*_d*_i* - @bond:58-84 @atom:*_b58_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:59-63 @atom:*_b59_a*_d*_i* @atom:*_b63_a*_d*_i* - @bond:60-60 @atom:*_b60_a*_d*_i* @atom:*_b60_a*_d*_i* - @bond:60-61 @atom:*_b60_a*_d*_i* @atom:*_b61_a*_d*_i* - @bond:60-80 @atom:*_b60_a*_d*_i* @atom:*_b80_a*_d*_i* - @bond:60-81 @atom:*_b60_a*_d*_i* @atom:*_b81_a*_d*_i* - @bond:60-87 @atom:*_b60_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:60-105 @atom:*_b60_a*_d*_i* @atom:*_b105_a*_d*_i* - @bond:61-61 @atom:*_b61_a*_d*_i* @atom:*_b61_a*_d*_i* - @bond:61-62 @atom:*_b61_a*_d*_i* @atom:*_b62_a*_d*_i* - @bond:61-82 @atom:*_b61_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:61-83 @atom:*_b61_a*_d*_i* @atom:*_b83_a*_d*_i* - @bond:61-84 @atom:*_b61_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:61-88 @atom:*_b61_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:62-63 @atom:*_b62_a*_d*_i* @atom:*_b63_a*_d*_i* - @bond:62-105 @atom:*_b62_a*_d*_i* @atom:*_b105_a*_d*_i* - @bond:63-82 @atom:*_b63_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:64-108 @atom:*_b64_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:65-82 @atom:*_b65_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:65-83 @atom:*_b65_a*_d*_i* @atom:*_b83_a*_d*_i* - @bond:65-84 @atom:*_b65_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:65-87 @atom:*_b65_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:65-88 @atom:*_b65_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:65-108 @atom:*_b65_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:66-82 @atom:*_b66_a*_d*_i* @atom:*_b82_a*_d*_i* - @bond:66-83 @atom:*_b66_a*_d*_i* @atom:*_b83_a*_d*_i* - @bond:66-84 @atom:*_b66_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:66-87 @atom:*_b66_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:66-88 @atom:*_b66_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:66-108 @atom:*_b66_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:77-78 @atom:*_b77_a*_d*_i* @atom:*_b78_a*_d*_i* - @bond:80-84 @atom:*_b80_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:82-86 @atom:*_b82_a*_d*_i* @atom:*_b86_a*_d*_i* - @bond:82-87 @atom:*_b82_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:83-84 @atom:*_b83_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:83-86 @atom:*_b83_a*_d*_i* @atom:*_b86_a*_d*_i* - @bond:84-84 @atom:*_b84_a*_d*_i* @atom:*_b84_a*_d*_i* - @bond:84-86 @atom:*_b84_a*_d*_i* @atom:*_b86_a*_d*_i* - @bond:84-87 @atom:*_b84_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:84-88 @atom:*_b84_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:85-85 @atom:*_b85_a*_d*_i* @atom:*_b85_a*_d*_i* - @bond:86-86 @atom:*_b86_a*_d*_i* @atom:*_b86_a*_d*_i* - @bond:86-87 @atom:*_b86_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:86-88 @atom:*_b86_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:87-87 @atom:*_b87_a*_d*_i* @atom:*_b87_a*_d*_i* - @bond:87-88 @atom:*_b87_a*_d*_i* @atom:*_b88_a*_d*_i* - @bond:89-90 @atom:*_b89_a*_d*_i* @atom:*_b90_a*_d*_i* - @bond:89-91 @atom:*_b89_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:90-91 @atom:*_b90_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:91-91 @atom:*_b91_a*_d*_i* @atom:*_b91_a*_d*_i* - @bond:102-103 @atom:*_b102_a*_d*_i* @atom:*_b103_a*_d*_i* - @bond:108-108 @atom:*_b108_a*_d*_i* @atom:*_b108_a*_d*_i* - @bond:109-109 @atom:*_b109_a*_d*_i* @atom:*_b109_a*_d*_i* + @bond:001_002 @atom:*_b001*_a*_d*_i* @atom:*_b002*_a*_d*_i* + @bond:001_003 @atom:*_b001*_a*_d*_i* @atom:*_b003*_a*_d*_i* + @bond:001_013 @atom:*_b001*_a*_d*_i* @atom:*_b013*_a*_d*_i* + @bond:001_019 @atom:*_b001*_a*_d*_i* @atom:*_b019*_a*_d*_i* + @bond:001_025 @atom:*_b001*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:001_047 @atom:*_b001*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:001_048 @atom:*_b001*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:001_082 @atom:*_b001*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:001_083 @atom:*_b001*_a*_d*_i* @atom:*_b083*_a*_d*_i* + @bond:001_084 @atom:*_b001*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:001_087 @atom:*_b001*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:001_088 @atom:*_b001*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:001_108 @atom:*_b001*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:002_002 @atom:*_b002*_a*_d*_i* @atom:*_b002*_a*_d*_i* + @bond:002_003 @atom:*_b002*_a*_d*_i* @atom:*_b003*_a*_d*_i* + @bond:002_005 @atom:*_b002*_a*_d*_i* @atom:*_b005*_a*_d*_i* + @bond:002_006 @atom:*_b002*_a*_d*_i* @atom:*_b006*_a*_d*_i* + @bond:002_010 @atom:*_b002*_a*_d*_i* @atom:*_b010*_a*_d*_i* + @bond:002_011 @atom:*_b002*_a*_d*_i* @atom:*_b011*_a*_d*_i* + @bond:002_012 @atom:*_b002*_a*_d*_i* @atom:*_b012*_a*_d*_i* + @bond:002_013 @atom:*_b002*_a*_d*_i* @atom:*_b013*_a*_d*_i* + @bond:002_014 @atom:*_b002*_a*_d*_i* @atom:*_b014*_a*_d*_i* + @bond:002_015 @atom:*_b002*_a*_d*_i* @atom:*_b015*_a*_d*_i* + @bond:002_016 @atom:*_b002*_a*_d*_i* @atom:*_b016*_a*_d*_i* + @bond:002_020 @atom:*_b002*_a*_d*_i* @atom:*_b020*_a*_d*_i* + @bond:002_024 @atom:*_b002*_a*_d*_i* @atom:*_b024*_a*_d*_i* + @bond:002_044 @atom:*_b002*_a*_d*_i* @atom:*_b044*_a*_d*_i* + @bond:002_048 @atom:*_b002*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:002_051 @atom:*_b002*_a*_d*_i* @atom:*_b051*_a*_d*_i* + @bond:002_053 @atom:*_b002*_a*_d*_i* @atom:*_b053*_a*_d*_i* + @bond:002_055 @atom:*_b002*_a*_d*_i* @atom:*_b055*_a*_d*_i* + @bond:002_080 @atom:*_b002*_a*_d*_i* @atom:*_b080*_a*_d*_i* + @bond:003_003 @atom:*_b003*_a*_d*_i* @atom:*_b003*_a*_d*_i* + @bond:003_004 @atom:*_b003*_a*_d*_i* @atom:*_b004*_a*_d*_i* + @bond:003_005 @atom:*_b003*_a*_d*_i* @atom:*_b005*_a*_d*_i* + @bond:003_006 @atom:*_b003*_a*_d*_i* @atom:*_b006*_a*_d*_i* + @bond:003_010 @atom:*_b003*_a*_d*_i* @atom:*_b010*_a*_d*_i* + @bond:003_012 @atom:*_b003*_a*_d*_i* @atom:*_b012*_a*_d*_i* + @bond:003_013 @atom:*_b003*_a*_d*_i* @atom:*_b013*_a*_d*_i* + @bond:003_019 @atom:*_b003*_a*_d*_i* @atom:*_b019*_a*_d*_i* + @bond:003_020 @atom:*_b003*_a*_d*_i* @atom:*_b020*_a*_d*_i* + @bond:003_021 @atom:*_b003*_a*_d*_i* @atom:*_b021*_a*_d*_i* + @bond:003_024 @atom:*_b003*_a*_d*_i* @atom:*_b024*_a*_d*_i* + @bond:003_044 @atom:*_b003*_a*_d*_i* @atom:*_b044*_a*_d*_i* + @bond:003_046 @atom:*_b003*_a*_d*_i* @atom:*_b046*_a*_d*_i* + @bond:003_047 @atom:*_b003*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:003_048 @atom:*_b003*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:003_050 @atom:*_b003*_a*_d*_i* @atom:*_b050*_a*_d*_i* + @bond:003_052 @atom:*_b003*_a*_d*_i* @atom:*_b052*_a*_d*_i* + @bond:003_056 @atom:*_b003*_a*_d*_i* @atom:*_b056*_a*_d*_i* + @bond:003_057 @atom:*_b003*_a*_d*_i* @atom:*_b057*_a*_d*_i* + @bond:003_060 @atom:*_b003*_a*_d*_i* @atom:*_b060*_a*_d*_i* + @bond:003_065 @atom:*_b003*_a*_d*_i* @atom:*_b065*_a*_d*_i* + @bond:003_084 @atom:*_b003*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:003_086 @atom:*_b003*_a*_d*_i* @atom:*_b086*_a*_d*_i* + @bond:003_105 @atom:*_b003*_a*_d*_i* @atom:*_b105*_a*_d*_i* + @bond:003_107 @atom:*_b003*_a*_d*_i* @atom:*_b107*_a*_d*_i* + @bond:004_025 @atom:*_b004*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:004_064 @atom:*_b004*_a*_d*_i* @atom:*_b064*_a*_d*_i* + @bond:004_089 @atom:*_b004*_a*_d*_i* @atom:*_b089*_a*_d*_i* + @bond:004_110 @atom:*_b004*_a*_d*_i* @atom:*_b110*_a*_d*_i* + @bond:005_006 @atom:*_b005*_a*_d*_i* @atom:*_b006*_a*_d*_i* + @bond:005_007 @atom:*_b005*_a*_d*_i* @atom:*_b007*_a*_d*_i* + @bond:005_010 @atom:*_b005*_a*_d*_i* @atom:*_b010*_a*_d*_i* + @bond:005_013 @atom:*_b005*_a*_d*_i* @atom:*_b013*_a*_d*_i* + @bond:005_020 @atom:*_b005*_a*_d*_i* @atom:*_b020*_a*_d*_i* + @bond:005_024 @atom:*_b005*_a*_d*_i* @atom:*_b024*_a*_d*_i* + @bond:005_025 @atom:*_b005*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:005_044 @atom:*_b005*_a*_d*_i* @atom:*_b044*_a*_d*_i* + @bond:005_047 @atom:*_b005*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:005_048 @atom:*_b005*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:005_051 @atom:*_b005*_a*_d*_i* @atom:*_b051*_a*_d*_i* + @bond:005_064 @atom:*_b005*_a*_d*_i* @atom:*_b064*_a*_d*_i* + @bond:005_079 @atom:*_b005*_a*_d*_i* @atom:*_b079*_a*_d*_i* + @bond:005_106 @atom:*_b005*_a*_d*_i* @atom:*_b106*_a*_d*_i* + @bond:005_108 @atom:*_b005*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:006_006 @atom:*_b006*_a*_d*_i* @atom:*_b006*_a*_d*_i* + @bond:006_010 @atom:*_b006*_a*_d*_i* @atom:*_b010*_a*_d*_i* + @bond:006_011 @atom:*_b006*_a*_d*_i* @atom:*_b011*_a*_d*_i* + @bond:006_013 @atom:*_b006*_a*_d*_i* @atom:*_b013*_a*_d*_i* + @bond:006_014 @atom:*_b006*_a*_d*_i* @atom:*_b014*_a*_d*_i* + @bond:006_015 @atom:*_b006*_a*_d*_i* @atom:*_b015*_a*_d*_i* + @bond:006_016 @atom:*_b006*_a*_d*_i* @atom:*_b016*_a*_d*_i* + @bond:006_020 @atom:*_b006*_a*_d*_i* @atom:*_b020*_a*_d*_i* + @bond:006_024 @atom:*_b006*_a*_d*_i* @atom:*_b024*_a*_d*_i* + @bond:006_044 @atom:*_b006*_a*_d*_i* @atom:*_b044*_a*_d*_i* + @bond:006_047 @atom:*_b006*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:006_051 @atom:*_b006*_a*_d*_i* @atom:*_b051*_a*_d*_i* + @bond:006_053 @atom:*_b006*_a*_d*_i* @atom:*_b053*_a*_d*_i* + @bond:006_055 @atom:*_b006*_a*_d*_i* @atom:*_b055*_a*_d*_i* + @bond:006_079 @atom:*_b006*_a*_d*_i* @atom:*_b079*_a*_d*_i* + @bond:006_105 @atom:*_b006*_a*_d*_i* @atom:*_b105*_a*_d*_i* + @bond:007_020 @atom:*_b007*_a*_d*_i* @atom:*_b020*_a*_d*_i* + @bond:007_025 @atom:*_b007*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:009_009 @atom:*_b009*_a*_d*_i* @atom:*_b009*_a*_d*_i* + @bond:009_011 @atom:*_b009*_a*_d*_i* @atom:*_b011*_a*_d*_i* + @bond:009_014 @atom:*_b009*_a*_d*_i* @atom:*_b014*_a*_d*_i* + @bond:010_010 @atom:*_b010*_a*_d*_i* @atom:*_b010*_a*_d*_i* + @bond:010_011 @atom:*_b010*_a*_d*_i* @atom:*_b011*_a*_d*_i* + @bond:010_014 @atom:*_b010*_a*_d*_i* @atom:*_b014*_a*_d*_i* + @bond:010_020 @atom:*_b010*_a*_d*_i* @atom:*_b020*_a*_d*_i* + @bond:010_024 @atom:*_b010*_a*_d*_i* @atom:*_b024*_a*_d*_i* + @bond:010_044 @atom:*_b010*_a*_d*_i* @atom:*_b044*_a*_d*_i* + @bond:010_105 @atom:*_b010*_a*_d*_i* @atom:*_b105*_a*_d*_i* + @bond:011_011 @atom:*_b011*_a*_d*_i* @atom:*_b011*_a*_d*_i* + @bond:011_013 @atom:*_b011*_a*_d*_i* @atom:*_b013*_a*_d*_i* + @bond:011_014 @atom:*_b011*_a*_d*_i* @atom:*_b014*_a*_d*_i* + @bond:011_079 @atom:*_b011*_a*_d*_i* @atom:*_b079*_a*_d*_i* + @bond:012_012 @atom:*_b012*_a*_d*_i* @atom:*_b012*_a*_d*_i* + @bond:012_048 @atom:*_b012*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:012_060 @atom:*_b012*_a*_d*_i* @atom:*_b060*_a*_d*_i* + @bond:012_081 @atom:*_b012*_a*_d*_i* @atom:*_b081*_a*_d*_i* + @bond:013_013 @atom:*_b013*_a*_d*_i* @atom:*_b013*_a*_d*_i* + @bond:013_014 @atom:*_b013*_a*_d*_i* @atom:*_b014*_a*_d*_i* + @bond:013_015 @atom:*_b013*_a*_d*_i* @atom:*_b015*_a*_d*_i* + @bond:013_016 @atom:*_b013*_a*_d*_i* @atom:*_b016*_a*_d*_i* + @bond:013_018 @atom:*_b013*_a*_d*_i* @atom:*_b018*_a*_d*_i* + @bond:013_019 @atom:*_b013*_a*_d*_i* @atom:*_b019*_a*_d*_i* + @bond:013_020 @atom:*_b013*_a*_d*_i* @atom:*_b020*_a*_d*_i* + @bond:013_021 @atom:*_b013*_a*_d*_i* @atom:*_b021*_a*_d*_i* + @bond:013_022 @atom:*_b013*_a*_d*_i* @atom:*_b022*_a*_d*_i* + @bond:013_024 @atom:*_b013*_a*_d*_i* @atom:*_b024*_a*_d*_i* + @bond:013_025 @atom:*_b013*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:013_044 @atom:*_b013*_a*_d*_i* @atom:*_b044*_a*_d*_i* + @bond:013_046 @atom:*_b013*_a*_d*_i* @atom:*_b046*_a*_d*_i* + @bond:013_047 @atom:*_b013*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:013_048 @atom:*_b013*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:013_050 @atom:*_b013*_a*_d*_i* @atom:*_b050*_a*_d*_i* + @bond:013_051 @atom:*_b013*_a*_d*_i* @atom:*_b051*_a*_d*_i* + @bond:013_053 @atom:*_b013*_a*_d*_i* @atom:*_b053*_a*_d*_i* + @bond:013_055 @atom:*_b013*_a*_d*_i* @atom:*_b055*_a*_d*_i* + @bond:013_056 @atom:*_b013*_a*_d*_i* @atom:*_b056*_a*_d*_i* + @bond:013_057 @atom:*_b013*_a*_d*_i* @atom:*_b057*_a*_d*_i* + @bond:013_060 @atom:*_b013*_a*_d*_i* @atom:*_b060*_a*_d*_i* + @bond:013_064 @atom:*_b013*_a*_d*_i* @atom:*_b064*_a*_d*_i* + @bond:013_065 @atom:*_b013*_a*_d*_i* @atom:*_b065*_a*_d*_i* + @bond:013_066 @atom:*_b013*_a*_d*_i* @atom:*_b066*_a*_d*_i* + @bond:013_079 @atom:*_b013*_a*_d*_i* @atom:*_b079*_a*_d*_i* + @bond:013_080 @atom:*_b013*_a*_d*_i* @atom:*_b080*_a*_d*_i* + @bond:013_083 @atom:*_b013*_a*_d*_i* @atom:*_b083*_a*_d*_i* + @bond:013_084 @atom:*_b013*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:013_085 @atom:*_b013*_a*_d*_i* @atom:*_b085*_a*_d*_i* + @bond:013_087 @atom:*_b013*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:013_090 @atom:*_b013*_a*_d*_i* @atom:*_b090*_a*_d*_i* + @bond:013_091 @atom:*_b013*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:013_095 @atom:*_b013*_a*_d*_i* @atom:*_b095*_a*_d*_i* + @bond:013_101 @atom:*_b013*_a*_d*_i* @atom:*_b101*_a*_d*_i* + @bond:013_102 @atom:*_b013*_a*_d*_i* @atom:*_b102*_a*_d*_i* + @bond:013_104 @atom:*_b013*_a*_d*_i* @atom:*_b104*_a*_d*_i* + @bond:013_105 @atom:*_b013*_a*_d*_i* @atom:*_b105*_a*_d*_i* + @bond:013_107 @atom:*_b013*_a*_d*_i* @atom:*_b107*_a*_d*_i* + @bond:013_108 @atom:*_b013*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:013_109 @atom:*_b013*_a*_d*_i* @atom:*_b109*_a*_d*_i* + @bond:014_014 @atom:*_b014*_a*_d*_i* @atom:*_b014*_a*_d*_i* + @bond:015_017 @atom:*_b015*_a*_d*_i* @atom:*_b017*_a*_d*_i* + @bond:015_048 @atom:*_b015*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:016_016 @atom:*_b016*_a*_d*_i* @atom:*_b016*_a*_d*_i* + @bond:016_019 @atom:*_b016*_a*_d*_i* @atom:*_b019*_a*_d*_i* + @bond:016_024 @atom:*_b016*_a*_d*_i* @atom:*_b024*_a*_d*_i* + @bond:016_025 @atom:*_b016*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:016_047 @atom:*_b016*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:016_048 @atom:*_b016*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:016_061 @atom:*_b016*_a*_d*_i* @atom:*_b061*_a*_d*_i* + @bond:016_082 @atom:*_b016*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:016_084 @atom:*_b016*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:016_091 @atom:*_b016*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:016_108 @atom:*_b016*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:017_025 @atom:*_b017*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:018_018 @atom:*_b018*_a*_d*_i* @atom:*_b018*_a*_d*_i* + @bond:018_019 @atom:*_b018*_a*_d*_i* @atom:*_b019*_a*_d*_i* + @bond:018_048 @atom:*_b018*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:018_056 @atom:*_b018*_a*_d*_i* @atom:*_b056*_a*_d*_i* + @bond:019_019 @atom:*_b019*_a*_d*_i* @atom:*_b019*_a*_d*_i* + @bond:019_021 @atom:*_b019*_a*_d*_i* @atom:*_b021*_a*_d*_i* + @bond:019_046 @atom:*_b019*_a*_d*_i* @atom:*_b046*_a*_d*_i* + @bond:019_047 @atom:*_b019*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:019_048 @atom:*_b019*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:019_050 @atom:*_b019*_a*_d*_i* @atom:*_b050*_a*_d*_i* + @bond:019_065 @atom:*_b019*_a*_d*_i* @atom:*_b065*_a*_d*_i* + @bond:019_088 @atom:*_b019*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:019_091 @atom:*_b019*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:020_020 @atom:*_b020*_a*_d*_i* @atom:*_b020*_a*_d*_i* + @bond:020_021 @atom:*_b020*_a*_d*_i* @atom:*_b021*_a*_d*_i* + @bond:020_024 @atom:*_b020*_a*_d*_i* @atom:*_b024*_a*_d*_i* + @bond:020_025 @atom:*_b020*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:020_044 @atom:*_b020*_a*_d*_i* @atom:*_b044*_a*_d*_i* + @bond:020_047 @atom:*_b020*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:020_048 @atom:*_b020*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:020_051 @atom:*_b020*_a*_d*_i* @atom:*_b051*_a*_d*_i* + @bond:020_060 @atom:*_b020*_a*_d*_i* @atom:*_b060*_a*_d*_i* + @bond:020_061 @atom:*_b020*_a*_d*_i* @atom:*_b061*_a*_d*_i* + @bond:020_064 @atom:*_b020*_a*_d*_i* @atom:*_b064*_a*_d*_i* + @bond:020_082 @atom:*_b020*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:020_084 @atom:*_b020*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:020_108 @atom:*_b020*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:021_025 @atom:*_b021*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:021_047 @atom:*_b021*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:021_048 @atom:*_b021*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:021_082 @atom:*_b021*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:021_083 @atom:*_b021*_a*_d*_i* @atom:*_b083*_a*_d*_i* + @bond:021_084 @atom:*_b021*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:021_087 @atom:*_b021*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:021_088 @atom:*_b021*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:021_108 @atom:*_b021*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:022_023 @atom:*_b022*_a*_d*_i* @atom:*_b023*_a*_d*_i* + @bond:022_025 @atom:*_b022*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:023_025 @atom:*_b023*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:023_079 @atom:*_b023*_a*_d*_i* @atom:*_b079*_a*_d*_i* + @bond:024_025 @atom:*_b024*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:024_045 @atom:*_b024*_a*_d*_i* @atom:*_b045*_a*_d*_i* + @bond:024_048 @atom:*_b024*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:024_059 @atom:*_b024*_a*_d*_i* @atom:*_b059*_a*_d*_i* + @bond:024_079 @atom:*_b024*_a*_d*_i* @atom:*_b079*_a*_d*_i* + @bond:024_084 @atom:*_b024*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:024_088 @atom:*_b024*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:024_091 @atom:*_b024*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:024_103 @atom:*_b024*_a*_d*_i* @atom:*_b103*_a*_d*_i* + @bond:024_106 @atom:*_b024*_a*_d*_i* @atom:*_b106*_a*_d*_i* + @bond:025_025 @atom:*_b025*_a*_d*_i* @atom:*_b025*_a*_d*_i* + @bond:025_044 @atom:*_b025*_a*_d*_i* @atom:*_b044*_a*_d*_i* + @bond:025_045 @atom:*_b025*_a*_d*_i* @atom:*_b045*_a*_d*_i* + @bond:025_046 @atom:*_b025*_a*_d*_i* @atom:*_b046*_a*_d*_i* + @bond:025_047 @atom:*_b025*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:025_048 @atom:*_b025*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:025_049 @atom:*_b025*_a*_d*_i* @atom:*_b049*_a*_d*_i* + @bond:025_053 @atom:*_b025*_a*_d*_i* @atom:*_b053*_a*_d*_i* + @bond:025_056 @atom:*_b025*_a*_d*_i* @atom:*_b056*_a*_d*_i* + @bond:025_061 @atom:*_b025*_a*_d*_i* @atom:*_b061*_a*_d*_i* + @bond:025_065 @atom:*_b025*_a*_d*_i* @atom:*_b065*_a*_d*_i* + @bond:025_103 @atom:*_b025*_a*_d*_i* @atom:*_b103*_a*_d*_i* + @bond:031_032 @atom:*_b031*_a*_d*_i* @atom:*_b032*_a*_d*_i* + @bond:031_033 @atom:*_b031*_a*_d*_i* @atom:*_b033*_a*_d*_i* + @bond:031_106 @atom:*_b031*_a*_d*_i* @atom:*_b106*_a*_d*_i* + @bond:034_035 @atom:*_b034*_a*_d*_i* @atom:*_b035*_a*_d*_i* + @bond:036_037 @atom:*_b036*_a*_d*_i* @atom:*_b037*_a*_d*_i* + @bond:036_038 @atom:*_b036*_a*_d*_i* @atom:*_b038*_a*_d*_i* + @bond:039_040 @atom:*_b039*_a*_d*_i* @atom:*_b040*_a*_d*_i* + @bond:039_041 @atom:*_b039*_a*_d*_i* @atom:*_b041*_a*_d*_i* + @bond:042_043 @atom:*_b042*_a*_d*_i* @atom:*_b043*_a*_d*_i* + @bond:044_044 @atom:*_b044*_a*_d*_i* @atom:*_b044*_a*_d*_i* + @bond:044_045 @atom:*_b044*_a*_d*_i* @atom:*_b045*_a*_d*_i* + @bond:044_048 @atom:*_b044*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:044_079 @atom:*_b044*_a*_d*_i* @atom:*_b079*_a*_d*_i* + @bond:044_091 @atom:*_b044*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:044_108 @atom:*_b044*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:045_053 @atom:*_b045*_a*_d*_i* @atom:*_b053*_a*_d*_i* + @bond:045_055 @atom:*_b045*_a*_d*_i* @atom:*_b055*_a*_d*_i* + @bond:045_056 @atom:*_b045*_a*_d*_i* @atom:*_b056*_a*_d*_i* + @bond:045_057 @atom:*_b045*_a*_d*_i* @atom:*_b057*_a*_d*_i* + @bond:045_101 @atom:*_b045*_a*_d*_i* @atom:*_b101*_a*_d*_i* + @bond:045_105 @atom:*_b045*_a*_d*_i* @atom:*_b105*_a*_d*_i* + @bond:045_108 @atom:*_b045*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:046_047 @atom:*_b046*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:046_050 @atom:*_b046*_a*_d*_i* @atom:*_b050*_a*_d*_i* + @bond:046_051 @atom:*_b046*_a*_d*_i* @atom:*_b051*_a*_d*_i* + @bond:046_080 @atom:*_b046*_a*_d*_i* @atom:*_b080*_a*_d*_i* + @bond:046_091 @atom:*_b046*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:046_095 @atom:*_b046*_a*_d*_i* @atom:*_b095*_a*_d*_i* + @bond:046_108 @atom:*_b046*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:046_109 @atom:*_b046*_a*_d*_i* @atom:*_b109*_a*_d*_i* + @bond:047_047 @atom:*_b047*_a*_d*_i* @atom:*_b047*_a*_d*_i* + @bond:047_048 @atom:*_b047*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:047_050 @atom:*_b047*_a*_d*_i* @atom:*_b050*_a*_d*_i* + @bond:047_057 @atom:*_b047*_a*_d*_i* @atom:*_b057*_a*_d*_i* + @bond:047_058 @atom:*_b047*_a*_d*_i* @atom:*_b058*_a*_d*_i* + @bond:047_065 @atom:*_b047*_a*_d*_i* @atom:*_b065*_a*_d*_i* + @bond:047_066 @atom:*_b047*_a*_d*_i* @atom:*_b066*_a*_d*_i* + @bond:047_086 @atom:*_b047*_a*_d*_i* @atom:*_b086*_a*_d*_i* + @bond:047_091 @atom:*_b047*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:047_105 @atom:*_b047*_a*_d*_i* @atom:*_b105*_a*_d*_i* + @bond:047_110 @atom:*_b047*_a*_d*_i* @atom:*_b110*_a*_d*_i* + @bond:048_048 @atom:*_b048*_a*_d*_i* @atom:*_b048*_a*_d*_i* + @bond:048_049 @atom:*_b048*_a*_d*_i* @atom:*_b049*_a*_d*_i* + @bond:048_050 @atom:*_b048*_a*_d*_i* @atom:*_b050*_a*_d*_i* + @bond:048_053 @atom:*_b048*_a*_d*_i* @atom:*_b053*_a*_d*_i* + @bond:048_055 @atom:*_b048*_a*_d*_i* @atom:*_b055*_a*_d*_i* + @bond:048_056 @atom:*_b048*_a*_d*_i* @atom:*_b056*_a*_d*_i* + @bond:048_057 @atom:*_b048*_a*_d*_i* @atom:*_b057*_a*_d*_i* + @bond:048_060 @atom:*_b048*_a*_d*_i* @atom:*_b060*_a*_d*_i* + @bond:048_061 @atom:*_b048*_a*_d*_i* @atom:*_b061*_a*_d*_i* + @bond:048_064 @atom:*_b048*_a*_d*_i* @atom:*_b064*_a*_d*_i* + @bond:048_065 @atom:*_b048*_a*_d*_i* @atom:*_b065*_a*_d*_i* + @bond:048_066 @atom:*_b048*_a*_d*_i* @atom:*_b066*_a*_d*_i* + @bond:048_079 @atom:*_b048*_a*_d*_i* @atom:*_b079*_a*_d*_i* + @bond:048_081 @atom:*_b048*_a*_d*_i* @atom:*_b081*_a*_d*_i* + @bond:048_084 @atom:*_b048*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:048_086 @atom:*_b048*_a*_d*_i* @atom:*_b086*_a*_d*_i* + @bond:048_088 @atom:*_b048*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:048_091 @atom:*_b048*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:048_101 @atom:*_b048*_a*_d*_i* @atom:*_b101*_a*_d*_i* + @bond:048_102 @atom:*_b048*_a*_d*_i* @atom:*_b102*_a*_d*_i* + @bond:048_109 @atom:*_b048*_a*_d*_i* @atom:*_b109*_a*_d*_i* + @bond:049_059 @atom:*_b049*_a*_d*_i* @atom:*_b059*_a*_d*_i* + @bond:049_062 @atom:*_b049*_a*_d*_i* @atom:*_b062*_a*_d*_i* + @bond:049_082 @atom:*_b049*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:049_083 @atom:*_b049*_a*_d*_i* @atom:*_b083*_a*_d*_i* + @bond:049_084 @atom:*_b049*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:049_085 @atom:*_b049*_a*_d*_i* @atom:*_b085*_a*_d*_i* + @bond:049_087 @atom:*_b049*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:049_088 @atom:*_b049*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:050_050 @atom:*_b050*_a*_d*_i* @atom:*_b050*_a*_d*_i* + @bond:050_056 @atom:*_b050*_a*_d*_i* @atom:*_b056*_a*_d*_i* + @bond:050_084 @atom:*_b050*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:050_109 @atom:*_b050*_a*_d*_i* @atom:*_b109*_a*_d*_i* + @bond:051_105 @atom:*_b051*_a*_d*_i* @atom:*_b105*_a*_d*_i* + @bond:052_064 @atom:*_b052*_a*_d*_i* @atom:*_b064*_a*_d*_i* + @bond:053_054 @atom:*_b053*_a*_d*_i* @atom:*_b054*_a*_d*_i* + @bond:054_055 @atom:*_b054*_a*_d*_i* @atom:*_b055*_a*_d*_i* + @bond:055_059 @atom:*_b055*_a*_d*_i* @atom:*_b059*_a*_d*_i* + @bond:055_082 @atom:*_b055*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:056_056 @atom:*_b056*_a*_d*_i* @atom:*_b056*_a*_d*_i* + @bond:056_059 @atom:*_b056*_a*_d*_i* @atom:*_b059*_a*_d*_i* + @bond:056_060 @atom:*_b056*_a*_d*_i* @atom:*_b060*_a*_d*_i* + @bond:056_082 @atom:*_b056*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:056_086 @atom:*_b056*_a*_d*_i* @atom:*_b086*_a*_d*_i* + @bond:056_103 @atom:*_b056*_a*_d*_i* @atom:*_b103*_a*_d*_i* + @bond:056_109 @atom:*_b056*_a*_d*_i* @atom:*_b109*_a*_d*_i* + @bond:057_060 @atom:*_b057*_a*_d*_i* @atom:*_b060*_a*_d*_i* + @bond:057_061 @atom:*_b057*_a*_d*_i* @atom:*_b061*_a*_d*_i* + @bond:057_062 @atom:*_b057*_a*_d*_i* @atom:*_b062*_a*_d*_i* + @bond:057_081 @atom:*_b057*_a*_d*_i* @atom:*_b081*_a*_d*_i* + @bond:057_082 @atom:*_b057*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:057_084 @atom:*_b057*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:057_085 @atom:*_b057*_a*_d*_i* @atom:*_b085*_a*_d*_i* + @bond:057_086 @atom:*_b057*_a*_d*_i* @atom:*_b086*_a*_d*_i* + @bond:058_083 @atom:*_b058*_a*_d*_i* @atom:*_b083*_a*_d*_i* + @bond:058_084 @atom:*_b058*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:059_063 @atom:*_b059*_a*_d*_i* @atom:*_b063*_a*_d*_i* + @bond:060_060 @atom:*_b060*_a*_d*_i* @atom:*_b060*_a*_d*_i* + @bond:060_061 @atom:*_b060*_a*_d*_i* @atom:*_b061*_a*_d*_i* + @bond:060_080 @atom:*_b060*_a*_d*_i* @atom:*_b080*_a*_d*_i* + @bond:060_081 @atom:*_b060*_a*_d*_i* @atom:*_b081*_a*_d*_i* + @bond:060_087 @atom:*_b060*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:060_105 @atom:*_b060*_a*_d*_i* @atom:*_b105*_a*_d*_i* + @bond:061_061 @atom:*_b061*_a*_d*_i* @atom:*_b061*_a*_d*_i* + @bond:061_062 @atom:*_b061*_a*_d*_i* @atom:*_b062*_a*_d*_i* + @bond:061_082 @atom:*_b061*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:061_083 @atom:*_b061*_a*_d*_i* @atom:*_b083*_a*_d*_i* + @bond:061_084 @atom:*_b061*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:061_088 @atom:*_b061*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:062_063 @atom:*_b062*_a*_d*_i* @atom:*_b063*_a*_d*_i* + @bond:062_105 @atom:*_b062*_a*_d*_i* @atom:*_b105*_a*_d*_i* + @bond:063_082 @atom:*_b063*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:064_108 @atom:*_b064*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:065_082 @atom:*_b065*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:065_083 @atom:*_b065*_a*_d*_i* @atom:*_b083*_a*_d*_i* + @bond:065_084 @atom:*_b065*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:065_087 @atom:*_b065*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:065_088 @atom:*_b065*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:065_108 @atom:*_b065*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:066_082 @atom:*_b066*_a*_d*_i* @atom:*_b082*_a*_d*_i* + @bond:066_083 @atom:*_b066*_a*_d*_i* @atom:*_b083*_a*_d*_i* + @bond:066_084 @atom:*_b066*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:066_087 @atom:*_b066*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:066_088 @atom:*_b066*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:066_108 @atom:*_b066*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:077_078 @atom:*_b077*_a*_d*_i* @atom:*_b078*_a*_d*_i* + @bond:080_084 @atom:*_b080*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:082_086 @atom:*_b082*_a*_d*_i* @atom:*_b086*_a*_d*_i* + @bond:082_087 @atom:*_b082*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:083_084 @atom:*_b083*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:083_086 @atom:*_b083*_a*_d*_i* @atom:*_b086*_a*_d*_i* + @bond:084_084 @atom:*_b084*_a*_d*_i* @atom:*_b084*_a*_d*_i* + @bond:084_086 @atom:*_b084*_a*_d*_i* @atom:*_b086*_a*_d*_i* + @bond:084_087 @atom:*_b084*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:084_088 @atom:*_b084*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:085_085 @atom:*_b085*_a*_d*_i* @atom:*_b085*_a*_d*_i* + @bond:086_086 @atom:*_b086*_a*_d*_i* @atom:*_b086*_a*_d*_i* + @bond:086_087 @atom:*_b086*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:086_088 @atom:*_b086*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:087_087 @atom:*_b087*_a*_d*_i* @atom:*_b087*_a*_d*_i* + @bond:087_088 @atom:*_b087*_a*_d*_i* @atom:*_b088*_a*_d*_i* + @bond:089_090 @atom:*_b089*_a*_d*_i* @atom:*_b090*_a*_d*_i* + @bond:089_091 @atom:*_b089*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:090_091 @atom:*_b090*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:091_091 @atom:*_b091*_a*_d*_i* @atom:*_b091*_a*_d*_i* + @bond:102_103 @atom:*_b102*_a*_d*_i* @atom:*_b103*_a*_d*_i* + @bond:108_108 @atom:*_b108*_a*_d*_i* @atom:*_b108*_a*_d*_i* + @bond:109_109 @atom:*_b109*_a*_d*_i* @atom:*_b109*_a*_d*_i* } #(end of bonds by type) @@ -4465,1026 +4478,1026 @@ OPLSAA { # ------- Angle Interactions: ------- # http://lammps.sandia.gov/doc/angle_harmonic.html # Syntax: - # angle_coeff AngleTypeName AngleStyle parameters... + # angle_coeff AngleTypeName parameters... write_once("In Settings") { - angle_coeff @angle:25-1-25 harmonic 33.0 109.47 - angle_coeff @angle:1-2-2 harmonic 50.0 109.5 - angle_coeff @angle:2-2-2 harmonic 63.0 112.4 - angle_coeff @angle:2-2-3 harmonic 63.0 112.4 - angle_coeff @angle:2-2-5 harmonic 80.0 109.5 - angle_coeff @angle:2-2-6 harmonic 63.0 112.4 - angle_coeff @angle:6-2-6 harmonic 63.0 112.4 - angle_coeff @angle:5-2-6 harmonic 80.0 109.5 - angle_coeff @angle:2-2-10 harmonic 63.0 112.4 - angle_coeff @angle:3-2-10 harmonic 63.0 112.4 - angle_coeff @angle:6-2-10 harmonic 63.0 112.4 - angle_coeff @angle:10-2-10 harmonic 63.0 112.4 - angle_coeff @angle:5-2-10 harmonic 80.0 109.5 - angle_coeff @angle:10-2-12 harmonic 63.0 114.0 - angle_coeff @angle:6-2-13 harmonic 63.0 112.4 - angle_coeff @angle:10-2-15 harmonic 50.0 108.6 - angle_coeff @angle:2-2-16 harmonic 50.0 114.7 - angle_coeff @angle:10-2-16 harmonic 50.0 114.7 - angle_coeff @angle:2-2-20 harmonic 80.0 109.5 - angle_coeff @angle:6-2-20 harmonic 80.0 109.5 - angle_coeff @angle:10-2-20 harmonic 80.0 109.5 - angle_coeff @angle:3-2-24 harmonic 80.0 110.3 - angle_coeff @angle:2-2-24 harmonic 80.0 111.2 - angle_coeff @angle:2-2-44 harmonic 56.2 109.47 - angle_coeff @angle:6-2-44 harmonic 56.2 109.47 - angle_coeff @angle:10-2-44 harmonic 56.2 109.47 - angle_coeff @angle:13-2-44 harmonic 56.2 109.47 - angle_coeff @angle:3-2-44 harmonic 80.0 111.2 - angle_coeff @angle:2-2-48 harmonic 63.0 112.4 - angle_coeff @angle:10-2-48 harmonic 63.0 114.0 - angle_coeff @angle:2-2-51 harmonic 63.0 112.4 - angle_coeff @angle:6-2-51 harmonic 63.0 112.4 - angle_coeff @angle:2-2-53 harmonic 80.0 111.2 - angle_coeff @angle:2-2-55 harmonic 80.0 111.2 - angle_coeff @angle:10-2-80 harmonic 63.0 115.6 - angle_coeff @angle:2-3-4 harmonic 80.0 120.4 - angle_coeff @angle:1-3-4 harmonic 80.0 121.0 - angle_coeff @angle:3-3-4 harmonic 80.0 121.4 - angle_coeff @angle:4-3-4 harmonic 80.0 126.0 - angle_coeff @angle:4-3-5 harmonic 80.0 121.0 - angle_coeff @angle:4-3-6 harmonic 80.0 120.4 - angle_coeff @angle:5-3-10 harmonic 70.0 115.0 - angle_coeff @angle:4-3-10 harmonic 80.0 120.4 - angle_coeff @angle:5-3-12 harmonic 70.0 120.0 - angle_coeff @angle:12-3-12 harmonic 85.0 120.0 - angle_coeff @angle:5-3-13 harmonic 70.0 108.0 - angle_coeff @angle:13-3-13 harmonic 70.0 116.0 - angle_coeff @angle:1-3-13 harmonic 80.0 111.0 - angle_coeff @angle:3-3-13 harmonic 80.0 117.2 - angle_coeff @angle:4-3-13 harmonic 80.0 120.4 - angle_coeff @angle:10-3-20 harmonic 81.0 111.4 - angle_coeff @angle:13-3-20 harmonic 81.0 111.4 - angle_coeff @angle:4-3-20 harmonic 83.0 123.4 - angle_coeff @angle:13-3-21 harmonic 75.0 109.0 - angle_coeff @angle:4-3-21 harmonic 75.0 119.0 - angle_coeff @angle:24-3-24 harmonic 70.0 114.2 - angle_coeff @angle:2-3-24 harmonic 70.0 116.6 - angle_coeff @angle:3-3-24 harmonic 70.0 116.6 - angle_coeff @angle:6-3-24 harmonic 70.0 116.6 - angle_coeff @angle:10-3-24 harmonic 70.0 116.6 - angle_coeff @angle:13-3-24 harmonic 70.0 116.6 - angle_coeff @angle:4-3-24 harmonic 80.0 122.9 - angle_coeff @angle:20-3-24 harmonic 81.0 111.4 - angle_coeff @angle:13-3-44 harmonic 70.0 116.0 - angle_coeff @angle:4-3-44 harmonic 80.0 120.4 - angle_coeff @angle:13-3-46 harmonic 35.0 115.0 - angle_coeff @angle:46-3-46 harmonic 35.0 115.0 - angle_coeff @angle:4-3-46 harmonic 35.0 123.0 - angle_coeff @angle:24-3-46 harmonic 40.0 114.0 - angle_coeff @angle:5-3-46 harmonic 40.0 115.0 - angle_coeff @angle:20-3-46 harmonic 40.0 115.0 - angle_coeff @angle:24-3-47 harmonic 70.0 115.5 - angle_coeff @angle:4-3-47 harmonic 80.0 125.3 - angle_coeff @angle:46-3-48 harmonic 35.0 115.0 - angle_coeff @angle:24-3-48 harmonic 70.0 115.5 - angle_coeff @angle:13-3-48 harmonic 70.0 116.0 - angle_coeff @angle:5-3-48 harmonic 70.0 120.0 - angle_coeff @angle:4-3-48 harmonic 80.0 120.4 - angle_coeff @angle:20-3-48 harmonic 81.0 111.4 - angle_coeff @angle:48-3-48 harmonic 85.0 120.0 - angle_coeff @angle:13-3-50 harmonic 70.0 116.0 - angle_coeff @angle:46-3-50 harmonic 80.0 116.0 - angle_coeff @angle:4-3-50 harmonic 80.0 124.0 - angle_coeff @angle:10-3-52 harmonic 65.0 117.0 - angle_coeff @angle:2-3-52 harmonic 70.0 117.0 - angle_coeff @angle:6-3-52 harmonic 70.0 117.0 - angle_coeff @angle:13-3-52 harmonic 70.0 117.0 - angle_coeff @angle:48-3-52 harmonic 70.0 117.0 - angle_coeff @angle:4-3-52 harmonic 80.0 126.0 - angle_coeff @angle:52-3-52 harmonic 80.0 126.0 - angle_coeff @angle:46-3-56 harmonic 35.0 122.0 - angle_coeff @angle:4-3-56 harmonic 80.0 122.5 - angle_coeff @angle:47-3-57 harmonic 70.0 114.1 - angle_coeff @angle:56-3-57 harmonic 70.0 118.6 - angle_coeff @angle:57-3-57 harmonic 70.0 118.6 - angle_coeff @angle:4-3-57 harmonic 80.0 120.6 - angle_coeff @angle:24-3-60 harmonic 70.0 111.3 - angle_coeff @angle:57-3-60 harmonic 70.0 111.3 - angle_coeff @angle:4-3-60 harmonic 80.0 128.8 - angle_coeff @angle:13-3-65 harmonic 75.0 109.0 - angle_coeff @angle:4-3-65 harmonic 75.0 119.0 - angle_coeff @angle:44-3-84 harmonic 70.0 116.0 - angle_coeff @angle:4-3-84 harmonic 80.0 120.4 - angle_coeff @angle:4-3-87 harmonic 80.0 128.2 - angle_coeff @angle:57-3-105 harmonic 70.0 115.4 - angle_coeff @angle:56-3-105 harmonic 70.0 118.6 - angle_coeff @angle:4-3-105 harmonic 80.0 120.9 - angle_coeff @angle:13-3-107 harmonic 70.0 116.6 - angle_coeff @angle:4-3-107 harmonic 80.0 122.9 - angle_coeff @angle:25-4-25 harmonic 10.0 117.0 - angle_coeff @angle:3-4-25 harmonic 35.0 113.0 - angle_coeff @angle:3-5-7 harmonic 35.0 113.0 - angle_coeff @angle:2-5-7 harmonic 55.0 108.5 - angle_coeff @angle:6-5-7 harmonic 55.0 108.5 - angle_coeff @angle:7-5-10 harmonic 55.0 108.5 - angle_coeff @angle:7-5-13 harmonic 55.0 108.5 - angle_coeff @angle:7-5-24 harmonic 49.0 105.4 - angle_coeff @angle:25-5-25 harmonic 5.0 109.47 - angle_coeff @angle:7-5-25 harmonic 10.0 109.47 - angle_coeff @angle:13-5-25 harmonic 10.0 109.47 - angle_coeff @angle:7-5-47 harmonic 35.0 109.0 - angle_coeff @angle:25-5-48 harmonic 10.0 109.47 - angle_coeff @angle:7-5-48 harmonic 35.0 113.0 - angle_coeff @angle:7-5-51 harmonic 55.0 108.5 - angle_coeff @angle:7-5-64 harmonic 55.0 108.5 - angle_coeff @angle:13-5-64 harmonic 100.0 120.5 - angle_coeff @angle:7-5-79 harmonic 74.0 110.0 - angle_coeff @angle:7-5-106 harmonic 100.0 126.0 - angle_coeff @angle:5-7-25 harmonic 10.0 109.47 - angle_coeff @angle:25-7-25 harmonic 33.0 109.47 - angle_coeff @angle:2-10-2 harmonic 63.0 112.4 - angle_coeff @angle:2-10-3 harmonic 63.0 111.1 - angle_coeff @angle:2-10-5 harmonic 80.0 109.5 - angle_coeff @angle:3-10-6 harmonic 63.0 111.1 - angle_coeff @angle:6-10-6 harmonic 63.0 111.5 - angle_coeff @angle:2-10-6 harmonic 63.0 112.4 - angle_coeff @angle:5-10-6 harmonic 80.0 109.5 - angle_coeff @angle:3-10-10 harmonic 63.0 111.1 - angle_coeff @angle:2-10-10 harmonic 63.0 111.5 - angle_coeff @angle:6-10-10 harmonic 63.0 111.5 - angle_coeff @angle:10-10-10 harmonic 63.0 111.5 - angle_coeff @angle:5-10-10 harmonic 80.0 109.5 - angle_coeff @angle:2-10-20 harmonic 80.0 109.5 - angle_coeff @angle:6-10-20 harmonic 80.0 109.5 - angle_coeff @angle:10-10-20 harmonic 80.0 109.5 - angle_coeff @angle:3-10-24 harmonic 63.0 110.1 - angle_coeff @angle:6-10-24 harmonic 80.0 109.5 - angle_coeff @angle:2-10-24 harmonic 80.0 109.7 - angle_coeff @angle:10-10-24 harmonic 80.0 109.7 - angle_coeff @angle:2-10-44 harmonic 56.2 109.47 - angle_coeff @angle:6-10-44 harmonic 56.2 109.47 - angle_coeff @angle:10-10-44 harmonic 56.2 109.47 - angle_coeff @angle:13-10-44 harmonic 56.2 109.47 - angle_coeff @angle:3-10-44 harmonic 80.0 109.7 - angle_coeff @angle:2-10-48 harmonic 63.0 112.4 - angle_coeff @angle:20-10-48 harmonic 80.0 109.5 - angle_coeff @angle:2-10-105 harmonic 80.0 109.5 - angle_coeff @angle:10-10-105 harmonic 80.0 109.5 - angle_coeff @angle:20-10-105 harmonic 80.0 109.5 - angle_coeff @angle:2-11-2 harmonic 70.0 124.0 - angle_coeff @angle:2-11-6 harmonic 70.0 124.0 - angle_coeff @angle:6-11-6 harmonic 70.0 124.0 - angle_coeff @angle:2-11-9 harmonic 70.0 118.0 - angle_coeff @angle:6-11-9 harmonic 70.0 118.0 - angle_coeff @angle:9-11-10 harmonic 70.0 118.0 - angle_coeff @angle:2-11-10 harmonic 70.0 124.0 - angle_coeff @angle:6-11-10 harmonic 70.0 124.0 - angle_coeff @angle:10-11-10 harmonic 70.0 124.0 - angle_coeff @angle:2-11-11 harmonic 70.0 118.0 - angle_coeff @angle:6-11-11 harmonic 70.0 118.0 - angle_coeff @angle:9-11-11 harmonic 70.0 118.0 - angle_coeff @angle:10-11-11 harmonic 70.0 118.0 - angle_coeff @angle:11-11-11 harmonic 70.0 118.0 - angle_coeff @angle:9-11-13 harmonic 70.0 118.0 - angle_coeff @angle:11-11-13 harmonic 70.0 118.0 - angle_coeff @angle:2-11-13 harmonic 70.0 124.0 - angle_coeff @angle:6-11-13 harmonic 70.0 124.0 - angle_coeff @angle:10-11-13 harmonic 70.0 124.0 - angle_coeff @angle:13-11-13 harmonic 70.0 124.0 - angle_coeff @angle:9-11-14 harmonic 70.0 118.0 - angle_coeff @angle:11-11-14 harmonic 70.0 118.0 - angle_coeff @angle:9-11-79 harmonic 70.0 118.0 - angle_coeff @angle:2-12-12 harmonic 70.0 120.0 - angle_coeff @angle:3-12-12 harmonic 85.0 120.0 - angle_coeff @angle:12-12-12 harmonic 85.0 120.0 - angle_coeff @angle:12-12-48 harmonic 85.0 120.0 - angle_coeff @angle:12-12-60 harmonic 85.0 120.0 - angle_coeff @angle:12-12-81 harmonic 85.0 120.0 - angle_coeff @angle:1-13-1 harmonic 77.0 109.1 - angle_coeff @angle:2-13-2 harmonic 40.0 109.5 - angle_coeff @angle:1-13-3 harmonic 50.0 109.5 - angle_coeff @angle:2-13-3 harmonic 63.0 111.1 - angle_coeff @angle:3-13-3 harmonic 63.0 111.1 - angle_coeff @angle:2-13-6 harmonic 40.0 109.5 - angle_coeff @angle:6-13-6 harmonic 40.0 109.5 - angle_coeff @angle:3-13-6 harmonic 63.0 109.5 - angle_coeff @angle:1-13-13 harmonic 50.0 109.5 - angle_coeff @angle:5-13-13 harmonic 50.0 109.5 - angle_coeff @angle:13-13-13 harmonic 58.35 112.7 - angle_coeff @angle:3-13-13 harmonic 63.0 111.1 - angle_coeff @angle:13-13-15 harmonic 50.0 108.6 - angle_coeff @angle:13-13-16 harmonic 50.0 114.7 - angle_coeff @angle:13-13-19 harmonic 58.35 112.7 - angle_coeff @angle:3-13-20 harmonic 50.0 109.5 - angle_coeff @angle:13-13-20 harmonic 50.0 109.5 - angle_coeff @angle:3-13-21 harmonic 69.0 109.8 - angle_coeff @angle:13-13-21 harmonic 69.0 109.8 - angle_coeff @angle:21-13-21 harmonic 78.0 111.7 - angle_coeff @angle:13-13-22 harmonic 50.0 108.6 - angle_coeff @angle:20-13-24 harmonic 50.0 109.5 - angle_coeff @angle:3-13-24 harmonic 63.0 110.1 - angle_coeff @angle:2-13-24 harmonic 80.0 109.7 - angle_coeff @angle:13-13-24 harmonic 80.0 109.7 - angle_coeff @angle:16-13-44 harmonic 50.0 114.7 - angle_coeff @angle:2-13-44 harmonic 56.2 109.47 - angle_coeff @angle:6-13-44 harmonic 56.2 109.47 - angle_coeff @angle:10-13-44 harmonic 56.2 109.47 - angle_coeff @angle:13-13-44 harmonic 56.2 109.47 - angle_coeff @angle:3-13-44 harmonic 80.0 111.2 - angle_coeff @angle:46-13-46 harmonic 33.0 107.8 - angle_coeff @angle:18-13-46 harmonic 35.0 108.5 - angle_coeff @angle:19-13-46 harmonic 35.0 108.5 - angle_coeff @angle:2-13-46 harmonic 35.0 109.5 - angle_coeff @angle:3-13-46 harmonic 35.0 109.5 - angle_coeff @angle:5-13-46 harmonic 35.0 109.5 - angle_coeff @angle:15-13-46 harmonic 35.0 109.5 - angle_coeff @angle:16-13-46 harmonic 35.0 109.5 - angle_coeff @angle:20-13-46 harmonic 35.0 109.5 - angle_coeff @angle:22-13-46 harmonic 35.0 109.5 - angle_coeff @angle:24-13-46 harmonic 35.0 109.5 - angle_coeff @angle:44-13-46 harmonic 35.0 109.5 - angle_coeff @angle:13-13-46 harmonic 37.5 110.7 - angle_coeff @angle:1-13-46 harmonic 40.0 107.0 - angle_coeff @angle:21-13-46 harmonic 51.0 107.6 - angle_coeff @angle:46-13-47 harmonic 35.0 109.5 - angle_coeff @angle:1-13-47 harmonic 50.0 109.5 - angle_coeff @angle:13-13-47 harmonic 63.0 111.1 - angle_coeff @angle:47-13-47 harmonic 63.0 112.4 - angle_coeff @angle:46-13-48 harmonic 35.0 109.5 - angle_coeff @angle:47-13-48 harmonic 40.0 109.5 - angle_coeff @angle:48-13-48 harmonic 40.0 109.5 - angle_coeff @angle:1-13-48 harmonic 50.0 109.5 - angle_coeff @angle:5-13-48 harmonic 50.0 109.5 - angle_coeff @angle:20-13-48 harmonic 50.0 109.5 - angle_coeff @angle:16-13-48 harmonic 50.0 114.7 - angle_coeff @angle:3-13-48 harmonic 63.0 112.0 - angle_coeff @angle:2-13-48 harmonic 63.0 114.0 - angle_coeff @angle:13-13-48 harmonic 63.0 114.0 - angle_coeff @angle:44-13-48 harmonic 80.0 111.2 - angle_coeff @angle:46-13-50 harmonic 35.0 109.5 - angle_coeff @angle:46-13-51 harmonic 37.5 110.7 - angle_coeff @angle:5-13-51 harmonic 50.0 109.5 - angle_coeff @angle:13-13-51 harmonic 58.35 112.7 - angle_coeff @angle:46-13-53 harmonic 35.0 109.5 - angle_coeff @angle:3-13-53 harmonic 80.0 111.2 - angle_coeff @angle:13-13-53 harmonic 80.0 111.2 - angle_coeff @angle:46-13-55 harmonic 35.0 109.5 - angle_coeff @angle:13-13-55 harmonic 80.0 111.2 - angle_coeff @angle:46-13-56 harmonic 35.0 109.5 - angle_coeff @angle:3-13-56 harmonic 63.0 110.1 - angle_coeff @angle:13-13-56 harmonic 65.0 109.0 - angle_coeff @angle:46-13-57 harmonic 35.0 109.5 - angle_coeff @angle:48-13-57 harmonic 80.0 111.2 - angle_coeff @angle:46-13-60 harmonic 35.0 109.5 - angle_coeff @angle:13-13-60 harmonic 63.0 114.0 - angle_coeff @angle:46-13-64 harmonic 41.0 109.5 - angle_coeff @angle:13-13-64 harmonic 43.0 109.5 - angle_coeff @angle:48-13-64 harmonic 43.0 109.5 - angle_coeff @angle:46-13-65 harmonic 51.0 107.6 - angle_coeff @angle:3-13-65 harmonic 69.0 109.8 - angle_coeff @angle:13-13-65 harmonic 69.0 110.0 - angle_coeff @angle:48-13-65 harmonic 69.0 110.0 - angle_coeff @angle:65-13-65 harmonic 78.0 111.7 - angle_coeff @angle:46-13-66 harmonic 75.0 111.0 - angle_coeff @angle:13-13-66 harmonic 75.0 112.0 - angle_coeff @angle:46-13-79 harmonic 35.0 109.5 - angle_coeff @angle:13-13-79 harmonic 50.0 108.6 - angle_coeff @angle:1-13-79 harmonic 50.0 109.5 - angle_coeff @angle:46-13-80 harmonic 35.0 109.5 - angle_coeff @angle:13-13-80 harmonic 63.0 115.6 - angle_coeff @angle:46-13-83 harmonic 35.0 109.5 - angle_coeff @angle:13-13-83 harmonic 63.0 114.0 - angle_coeff @angle:46-13-84 harmonic 35.0 109.5 - angle_coeff @angle:16-13-84 harmonic 50.0 114.7 - angle_coeff @angle:13-13-84 harmonic 63.0 114.0 - angle_coeff @angle:46-13-85 harmonic 35.0 109.5 - angle_coeff @angle:13-13-85 harmonic 63.0 114.0 - angle_coeff @angle:46-13-87 harmonic 35.0 109.5 - angle_coeff @angle:13-13-87 harmonic 63.0 115.6 - angle_coeff @angle:46-13-90 harmonic 35.0 109.5 - angle_coeff @angle:13-13-90 harmonic 80.0 110.0 - angle_coeff @angle:3-13-90 harmonic 80.0 113.0 - angle_coeff @angle:46-13-91 harmonic 37.5 110.7 - angle_coeff @angle:46-13-95 harmonic 35.0 105.0 - angle_coeff @angle:13-13-95 harmonic 63.0 105.0 - angle_coeff @angle:46-13-101 harmonic 35.0 109.5 - angle_coeff @angle:13-13-101 harmonic 80.0 111.2 - angle_coeff @angle:46-13-102 harmonic 35.0 105.0 - angle_coeff @angle:13-13-102 harmonic 63.0 111.1 - angle_coeff @angle:46-13-104 harmonic 41.0 109.5 - angle_coeff @angle:13-13-104 harmonic 43.0 109.5 - angle_coeff @angle:46-13-105 harmonic 35.0 109.5 - angle_coeff @angle:13-13-105 harmonic 50.0 109.5 - angle_coeff @angle:20-13-105 harmonic 50.0 109.5 - angle_coeff @angle:46-13-107 harmonic 35.0 109.5 - angle_coeff @angle:13-13-107 harmonic 80.0 109.7 - angle_coeff @angle:46-13-108 harmonic 35.0 109.5 - angle_coeff @angle:13-13-108 harmonic 60.0 112.0 - angle_coeff @angle:2-14-2 harmonic 70.0 124.0 - angle_coeff @angle:2-14-6 harmonic 70.0 124.0 - angle_coeff @angle:6-14-6 harmonic 70.0 124.0 - angle_coeff @angle:2-14-9 harmonic 70.0 118.0 - angle_coeff @angle:6-14-9 harmonic 70.0 118.0 - angle_coeff @angle:9-14-10 harmonic 70.0 118.0 - angle_coeff @angle:2-14-10 harmonic 70.0 124.0 - angle_coeff @angle:6-14-10 harmonic 70.0 124.0 - angle_coeff @angle:10-14-10 harmonic 70.0 124.0 - angle_coeff @angle:2-14-11 harmonic 70.0 118.0 - angle_coeff @angle:6-14-11 harmonic 70.0 118.0 - angle_coeff @angle:9-14-11 harmonic 70.0 118.0 - angle_coeff @angle:10-14-11 harmonic 70.0 118.0 - angle_coeff @angle:11-14-11 harmonic 70.0 118.0 - angle_coeff @angle:9-14-13 harmonic 70.0 118.0 - angle_coeff @angle:11-14-13 harmonic 70.0 118.0 - angle_coeff @angle:2-14-13 harmonic 70.0 124.0 - angle_coeff @angle:6-14-13 harmonic 70.0 124.0 - angle_coeff @angle:10-14-13 harmonic 70.0 124.0 - angle_coeff @angle:13-14-13 harmonic 70.0 124.0 - angle_coeff @angle:2-14-14 harmonic 70.0 118.0 - angle_coeff @angle:6-14-14 harmonic 70.0 118.0 - angle_coeff @angle:9-14-14 harmonic 70.0 118.0 - angle_coeff @angle:10-14-14 harmonic 70.0 118.0 - angle_coeff @angle:11-14-14 harmonic 70.0 118.0 - angle_coeff @angle:13-14-14 harmonic 70.0 118.0 - angle_coeff @angle:14-14-14 harmonic 70.0 118.0 - angle_coeff @angle:17-15-17 harmonic 35.0 92.07 - angle_coeff @angle:2-15-17 harmonic 44.0 96.0 - angle_coeff @angle:6-15-17 harmonic 44.0 96.0 - angle_coeff @angle:13-15-17 harmonic 44.0 96.0 - angle_coeff @angle:25-15-25 harmonic 5.0 109.47 - angle_coeff @angle:13-15-25 harmonic 10.0 109.47 - angle_coeff @angle:33-15-33 harmonic 10.0 160.0 - angle_coeff @angle:2-15-33 harmonic 150.0 96.7 - angle_coeff @angle:6-15-33 harmonic 150.0 96.7 - angle_coeff @angle:13-15-33 harmonic 150.0 96.7 - angle_coeff @angle:17-15-33 harmonic 150.0 96.7 - angle_coeff @angle:17-15-48 harmonic 50.0 96.0 - angle_coeff @angle:2-16-6 harmonic 62.0 98.9 - angle_coeff @angle:13-16-13 harmonic 62.0 98.9 - angle_coeff @angle:2-16-16 harmonic 68.0 103.7 - angle_coeff @angle:6-16-16 harmonic 68.0 103.7 - angle_coeff @angle:13-16-16 harmonic 68.0 103.7 - angle_coeff @angle:13-16-19 harmonic 65.0 100.0 - angle_coeff @angle:25-16-25 harmonic 5.0 109.47 - angle_coeff @angle:13-16-25 harmonic 10.0 109.47 - angle_coeff @angle:33-16-33 harmonic 10.0 160.0 - angle_coeff @angle:2-16-33 harmonic 150.0 96.7 - angle_coeff @angle:6-16-33 harmonic 150.0 96.7 - angle_coeff @angle:13-16-33 harmonic 150.0 96.7 - angle_coeff @angle:16-16-33 harmonic 150.0 96.7 - angle_coeff @angle:13-16-48 harmonic 62.0 104.2 - angle_coeff @angle:47-16-48 harmonic 62.0 104.2 - angle_coeff @angle:24-16-60 harmonic 74.0 92.4 - angle_coeff @angle:25-16-61 harmonic 10.0 130.0 - angle_coeff @angle:25-16-82 harmonic 10.0 130.0 - angle_coeff @angle:60-16-82 harmonic 74.0 97.0 - angle_coeff @angle:25-16-84 harmonic 10.0 130.0 - angle_coeff @angle:82-16-84 harmonic 74.0 90.0 - angle_coeff @angle:60-16-84 harmonic 74.0 97.0 - angle_coeff @angle:84-16-84 harmonic 74.0 97.0 - angle_coeff @angle:13-16-91 harmonic 62.0 94.0 - angle_coeff @angle:15-17-25 harmonic 10.0 109.47 - angle_coeff @angle:25-17-25 harmonic 33.0 109.47 - angle_coeff @angle:13-18-19 harmonic 150.0 180.0 - angle_coeff @angle:19-18-48 harmonic 170.0 180.0 - angle_coeff @angle:18-18-56 harmonic 100.0 180.0 - angle_coeff @angle:13-19-18 harmonic 150.0 180.0 - angle_coeff @angle:16-19-19 harmonic 140.0 180.0 - angle_coeff @angle:13-19-19 harmonic 150.0 180.0 - angle_coeff @angle:18-19-25 harmonic 10.0 90.0 - angle_coeff @angle:19-19-46 harmonic 112.0 180.0 - angle_coeff @angle:18-19-47 harmonic 150.0 180.0 - angle_coeff @angle:19-19-47 harmonic 160.0 180.0 - angle_coeff @angle:18-19-48 harmonic 150.0 180.0 - angle_coeff @angle:19-19-48 harmonic 160.0 180.0 - angle_coeff @angle:19-19-50 harmonic 160.0 180.0 - angle_coeff @angle:18-19-55 harmonic 150.0 180.0 - angle_coeff @angle:18-19-88 harmonic 150.0 180.0 - angle_coeff @angle:2-20-2 harmonic 100.0 111.8 - angle_coeff @angle:2-20-3 harmonic 83.0 116.9 - angle_coeff @angle:3-20-6 harmonic 83.0 116.9 - angle_coeff @angle:2-20-6 harmonic 100.0 111.8 - angle_coeff @angle:2-20-7 harmonic 55.0 108.5 - angle_coeff @angle:7-20-10 harmonic 55.0 108.5 - angle_coeff @angle:3-20-10 harmonic 83.0 116.9 - angle_coeff @angle:10-20-10 harmonic 100.0 111.8 - angle_coeff @angle:13-20-13 harmonic 60.0 109.5 - angle_coeff @angle:3-20-13 harmonic 83.0 116.9 - angle_coeff @angle:25-20-25 harmonic 5.0 109.47 - angle_coeff @angle:13-20-25 harmonic 10.0 109.47 - angle_coeff @angle:13-20-47 harmonic 75.0 111.0 - angle_coeff @angle:25-20-48 harmonic 10.0 109.47 - angle_coeff @angle:13-20-48 harmonic 75.0 111.0 - angle_coeff @angle:47-20-48 harmonic 75.0 111.0 - angle_coeff @angle:48-20-48 harmonic 75.0 111.0 - angle_coeff @angle:3-20-48 harmonic 83.0 116.9 - angle_coeff @angle:2-20-48 harmonic 100.0 111.8 - angle_coeff @angle:13-20-51 harmonic 60.0 109.5 - angle_coeff @angle:2-20-51 harmonic 100.0 113.0 - angle_coeff @angle:6-20-51 harmonic 100.0 113.0 - angle_coeff @angle:10-20-51 harmonic 100.0 113.0 - angle_coeff @angle:24-20-60 harmonic 70.0 104.5 - angle_coeff @angle:25-20-61 harmonic 10.0 125.0 - angle_coeff @angle:2-20-64 harmonic 100.0 120.5 - angle_coeff @angle:6-20-64 harmonic 100.0 120.5 - angle_coeff @angle:10-20-64 harmonic 100.0 120.5 - angle_coeff @angle:13-20-64 harmonic 100.0 120.5 - angle_coeff @angle:48-20-64 harmonic 100.0 120.5 - angle_coeff @angle:64-20-64 harmonic 100.0 120.5 - angle_coeff @angle:25-20-82 harmonic 10.0 125.0 - angle_coeff @angle:60-20-82 harmonic 70.0 106.5 - angle_coeff @angle:82-20-82 harmonic 70.0 107.0 - angle_coeff @angle:25-20-84 harmonic 10.0 125.0 - angle_coeff @angle:82-20-84 harmonic 70.0 104.0 - angle_coeff @angle:60-20-84 harmonic 70.0 106.5 - angle_coeff @angle:84-20-84 harmonic 70.0 106.5 - angle_coeff @angle:61-20-84 harmonic 70.0 108.9 - angle_coeff @angle:108-20-108 harmonic 20.0 145.0 - angle_coeff @angle:13-20-108 harmonic 40.0 130.0 - angle_coeff @angle:25-21-25 harmonic 33.0 109.47 - angle_coeff @angle:13-22-13 harmonic 62.0 96.0 - angle_coeff @angle:13-22-23 harmonic 74.0 107.0 - angle_coeff @angle:23-22-25 harmonic 10.0 90.0 - angle_coeff @angle:2-24-3 harmonic 50.0 121.9 - angle_coeff @angle:3-24-3 harmonic 70.0 126.4 - angle_coeff @angle:3-24-5 harmonic 46.0 115.7 - angle_coeff @angle:2-24-6 harmonic 50.0 121.9 - angle_coeff @angle:3-24-6 harmonic 50.0 121.9 - angle_coeff @angle:2-24-10 harmonic 50.0 118.0 - angle_coeff @angle:3-24-10 harmonic 50.0 121.9 - angle_coeff @angle:13-24-13 harmonic 50.0 118.0 - angle_coeff @angle:3-24-13 harmonic 50.0 121.9 - angle_coeff @angle:3-24-16 harmonic 70.0 112.0 - angle_coeff @angle:3-24-20 harmonic 70.0 108.6 - angle_coeff @angle:3-24-25 harmonic 10.0 109.5 - angle_coeff @angle:25-24-45 harmonic 10.0 100.0 - angle_coeff @angle:5-24-45 harmonic 35.0 110.2 - angle_coeff @angle:3-24-45 harmonic 35.0 119.8 - angle_coeff @angle:45-24-45 harmonic 35.0 120.0 - angle_coeff @angle:2-24-45 harmonic 38.0 118.4 - angle_coeff @angle:6-24-45 harmonic 38.0 118.4 - angle_coeff @angle:10-24-45 harmonic 38.0 118.4 - angle_coeff @angle:13-24-45 harmonic 38.0 118.4 - angle_coeff @angle:45-24-48 harmonic 35.0 119.8 - angle_coeff @angle:13-24-48 harmonic 50.0 118.0 - angle_coeff @angle:3-24-48 harmonic 50.0 121.9 - angle_coeff @angle:48-24-48 harmonic 70.0 118.0 - angle_coeff @angle:54-24-54 harmonic 35.0 120.0 - angle_coeff @angle:45-24-59 harmonic 35.0 118.0 - angle_coeff @angle:3-24-59 harmonic 70.0 125.2 - angle_coeff @angle:13-24-79 harmonic 50.0 120.0 - angle_coeff @angle:45-24-79 harmonic 100.0 111.0 - angle_coeff @angle:45-24-84 harmonic 35.0 119.8 - angle_coeff @angle:48-24-84 harmonic 70.0 118.0 - angle_coeff @angle:16-24-86 harmonic 70.0 117.0 - angle_coeff @angle:45-24-87 harmonic 35.0 119.8 - angle_coeff @angle:48-24-87 harmonic 70.0 118.0 - angle_coeff @angle:45-24-88 harmonic 35.0 119.8 - angle_coeff @angle:48-24-88 harmonic 70.0 118.0 - angle_coeff @angle:45-24-91 harmonic 40.0 113.0 - angle_coeff @angle:3-24-91 harmonic 55.0 128.0 - angle_coeff @angle:48-24-103 harmonic 70.0 121.0 - angle_coeff @angle:3-24-106 harmonic 20.0 126.0 - angle_coeff @angle:25-25-25 harmonic 33.0 109.47 - angle_coeff @angle:32-31-32 harmonic 75.0 104.52 - angle_coeff @angle:32-31-33 harmonic 50.0 52.26 - angle_coeff @angle:35-34-35 harmonic 34.05 104.52 - angle_coeff @angle:37-36-37 harmonic 75.0 109.5 - angle_coeff @angle:37-36-38 harmonic 50.0 54.75 - angle_coeff @angle:40-39-40 harmonic 75.0 104.52 - angle_coeff @angle:41-39-41 harmonic 50.0 109.47 - angle_coeff @angle:40-39-41 harmonic 50.0 110.6948 - angle_coeff @angle:43-42-43 harmonic 75.0 109.47 - angle_coeff @angle:2-44-2 harmonic 51.8 107.2 - angle_coeff @angle:2-44-6 harmonic 51.8 107.2 - angle_coeff @angle:6-44-6 harmonic 51.8 107.2 - angle_coeff @angle:2-44-10 harmonic 51.8 107.2 - angle_coeff @angle:6-44-10 harmonic 51.8 107.2 - angle_coeff @angle:10-44-10 harmonic 51.8 107.2 - angle_coeff @angle:2-44-13 harmonic 51.8 107.2 - angle_coeff @angle:6-44-13 harmonic 51.8 107.2 - angle_coeff @angle:10-44-13 harmonic 51.8 107.2 - angle_coeff @angle:13-44-13 harmonic 51.8 107.2 - angle_coeff @angle:3-44-13 harmonic 63.0 111.1 - angle_coeff @angle:25-44-45 harmonic 10.0 100.0 - angle_coeff @angle:13-44-45 harmonic 35.0 109.5 - angle_coeff @angle:2-44-45 harmonic 43.2 108.1 - angle_coeff @angle:6-44-45 harmonic 43.2 108.1 - angle_coeff @angle:10-44-45 harmonic 43.2 108.1 - angle_coeff @angle:45-44-45 harmonic 43.6 106.4 - angle_coeff @angle:25-44-48 harmonic 10.0 109.5 - angle_coeff @angle:45-44-48 harmonic 35.0 116.0 - angle_coeff @angle:13-44-48 harmonic 50.0 116.0 - angle_coeff @angle:48-44-48 harmonic 50.0 116.0 - angle_coeff @angle:3-44-48 harmonic 63.0 112.0 - angle_coeff @angle:45-44-79 harmonic 35.0 115.0 - angle_coeff @angle:13-44-79 harmonic 50.0 108.6 - angle_coeff @angle:48-44-79 harmonic 50.0 108.6 - angle_coeff @angle:48-44-91 harmonic 50.0 109.5 - angle_coeff @angle:25-45-25 harmonic 33.0 109.47 - angle_coeff @angle:25-45-44 harmonic 10.0 109.5 - angle_coeff @angle:25-46-25 harmonic 33.0 109.47 - angle_coeff @angle:13-46-25 harmonic 37.5 109.47 - angle_coeff @angle:1-47-1 harmonic 80.0 108.0 - angle_coeff @angle:1-47-3 harmonic 80.0 121.5 - angle_coeff @angle:3-47-6 harmonic 85.0 119.7 - angle_coeff @angle:3-47-13 harmonic 70.0 119.7 - angle_coeff @angle:13-47-13 harmonic 70.0 130.0 - angle_coeff @angle:25-47-46 harmonic 10.0 90.0 - angle_coeff @angle:20-47-46 harmonic 35.0 114.5 - angle_coeff @angle:13-47-46 harmonic 35.0 117.0 - angle_coeff @angle:46-47-46 harmonic 35.0 117.0 - angle_coeff @angle:3-47-46 harmonic 35.0 119.7 - angle_coeff @angle:19-47-46 harmonic 35.0 120.0 - angle_coeff @angle:1-47-46 harmonic 50.0 112.0 - angle_coeff @angle:21-47-46 harmonic 60.0 114.0 - angle_coeff @angle:25-47-47 harmonic 2.0 90.0 - angle_coeff @angle:46-47-47 harmonic 35.0 120.0 - angle_coeff @angle:5-47-47 harmonic 70.0 123.0 - angle_coeff @angle:20-47-47 harmonic 70.0 123.0 - angle_coeff @angle:13-47-47 harmonic 70.0 124.0 - angle_coeff @angle:19-47-47 harmonic 70.0 124.0 - angle_coeff @angle:21-47-47 harmonic 75.0 121.5 - angle_coeff @angle:1-47-47 harmonic 80.0 121.5 - angle_coeff @angle:16-47-47 harmonic 85.0 119.4 - angle_coeff @angle:3-47-47 harmonic 85.0 120.7 - angle_coeff @angle:46-47-48 harmonic 35.0 123.3 - angle_coeff @angle:47-47-48 harmonic 85.0 117.0 - angle_coeff @angle:13-47-48 harmonic 85.0 119.7 - angle_coeff @angle:25-47-50 harmonic 2.0 90.0 - angle_coeff @angle:46-47-50 harmonic 35.0 120.0 - angle_coeff @angle:5-47-50 harmonic 70.0 123.0 - angle_coeff @angle:20-47-50 harmonic 70.0 123.0 - angle_coeff @angle:13-47-50 harmonic 70.0 124.0 - angle_coeff @angle:46-47-57 harmonic 35.0 119.1 - angle_coeff @angle:13-47-57 harmonic 70.0 120.0 - angle_coeff @angle:20-47-57 harmonic 70.0 120.0 - angle_coeff @angle:47-47-57 harmonic 70.0 121.2 - angle_coeff @angle:16-47-57 harmonic 85.0 119.4 - angle_coeff @angle:57-47-58 harmonic 35.0 119.1 - angle_coeff @angle:47-47-58 harmonic 35.0 119.7 - angle_coeff @angle:46-47-65 harmonic 60.0 114.0 - angle_coeff @angle:47-47-65 harmonic 75.0 120.0 - angle_coeff @angle:46-47-91 harmonic 35.0 135.0 - angle_coeff @angle:3-47-91 harmonic 70.0 119.7 - angle_coeff @angle:47-47-91 harmonic 70.0 124.0 - angle_coeff @angle:46-47-105 harmonic 35.0 119.1 - angle_coeff @angle:58-47-105 harmonic 35.0 119.1 - angle_coeff @angle:13-47-105 harmonic 70.0 120.0 - angle_coeff @angle:20-47-105 harmonic 70.0 120.0 - angle_coeff @angle:47-47-105 harmonic 70.0 121.2 - angle_coeff @angle:16-47-105 harmonic 85.0 119.4 - angle_coeff @angle:46-47-110 harmonic 40.0 121.0 - angle_coeff @angle:13-47-110 harmonic 80.0 122.0 - angle_coeff @angle:48-47-110 harmonic 80.0 122.0 - angle_coeff @angle:1-47-110 harmonic 80.0 125.0 - angle_coeff @angle:2-48-12 harmonic 70.0 120.0 - angle_coeff @angle:12-48-12 harmonic 85.0 120.0 - angle_coeff @angle:3-48-13 harmonic 70.0 119.7 - angle_coeff @angle:25-48-48 harmonic 10.0 90.0 - angle_coeff @angle:48-48-48 harmonic 63.0 120.0 - angle_coeff @angle:2-48-48 harmonic 70.0 120.0 - angle_coeff @angle:5-48-48 harmonic 70.0 120.0 - angle_coeff @angle:10-48-48 harmonic 70.0 120.0 - angle_coeff @angle:13-48-48 harmonic 70.0 120.0 - angle_coeff @angle:15-48-48 harmonic 70.0 120.0 - angle_coeff @angle:19-48-48 harmonic 70.0 120.0 - angle_coeff @angle:20-48-48 harmonic 70.0 120.0 - angle_coeff @angle:24-48-48 harmonic 70.0 120.0 - angle_coeff @angle:44-48-48 harmonic 70.0 120.0 - angle_coeff @angle:47-48-48 harmonic 70.0 124.0 - angle_coeff @angle:21-48-48 harmonic 75.0 120.0 - angle_coeff @angle:1-48-48 harmonic 80.0 120.0 - angle_coeff @angle:18-48-48 harmonic 80.0 120.0 - angle_coeff @angle:16-48-48 harmonic 85.0 119.4 - angle_coeff @angle:3-48-48 harmonic 85.0 120.0 - angle_coeff @angle:25-48-49 harmonic 2.0 90.0 - angle_coeff @angle:24-48-49 harmonic 35.0 119.1 - angle_coeff @angle:3-48-49 harmonic 35.0 120.0 - angle_coeff @angle:48-48-49 harmonic 35.0 120.0 - angle_coeff @angle:48-48-50 harmonic 70.0 124.0 - angle_coeff @angle:48-48-53 harmonic 70.0 120.0 - angle_coeff @angle:55-48-55 harmonic 70.0 120.0 - angle_coeff @angle:47-48-55 harmonic 70.0 120.1 - angle_coeff @angle:48-48-55 harmonic 70.0 120.1 - angle_coeff @angle:49-48-56 harmonic 35.0 116.0 - angle_coeff @angle:13-48-56 harmonic 70.0 116.0 - angle_coeff @angle:44-48-56 harmonic 70.0 116.0 - angle_coeff @angle:55-48-56 harmonic 70.0 119.3 - angle_coeff @angle:5-48-56 harmonic 70.0 120.0 - angle_coeff @angle:47-48-56 harmonic 70.0 121.5 - angle_coeff @angle:50-48-56 harmonic 70.0 121.5 - angle_coeff @angle:48-48-56 harmonic 70.0 124.0 - angle_coeff @angle:21-48-56 harmonic 75.0 120.0 - angle_coeff @angle:49-48-57 harmonic 35.0 120.0 - angle_coeff @angle:48-48-57 harmonic 70.0 108.7 - angle_coeff @angle:55-48-57 harmonic 70.0 116.0 - angle_coeff @angle:13-48-57 harmonic 70.0 120.0 - angle_coeff @angle:47-48-57 harmonic 70.0 121.5 - angle_coeff @angle:56-48-57 harmonic 70.0 123.3 - angle_coeff @angle:49-48-60 harmonic 35.0 120.0 - angle_coeff @angle:48-48-60 harmonic 63.0 120.0 - angle_coeff @angle:57-48-60 harmonic 70.0 108.7 - angle_coeff @angle:56-48-60 harmonic 70.0 117.3 - angle_coeff @angle:55-48-60 harmonic 70.0 123.5 - angle_coeff @angle:2-48-60 harmonic 70.0 128.6 - angle_coeff @angle:13-48-60 harmonic 70.0 128.6 - angle_coeff @angle:49-48-61 harmonic 35.0 119.1 - angle_coeff @angle:48-48-61 harmonic 70.0 108.7 - angle_coeff @angle:57-48-61 harmonic 70.0 123.3 - angle_coeff @angle:48-48-64 harmonic 85.0 119.4 - angle_coeff @angle:48-48-65 harmonic 75.0 120.0 - angle_coeff @angle:48-48-66 harmonic 75.0 120.0 - angle_coeff @angle:48-48-79 harmonic 85.0 119.4 - angle_coeff @angle:49-48-81 harmonic 35.0 120.0 - angle_coeff @angle:48-48-81 harmonic 85.0 120.0 - angle_coeff @angle:49-48-84 harmonic 35.0 126.9 - angle_coeff @angle:60-48-84 harmonic 63.0 106.4 - angle_coeff @angle:48-48-84 harmonic 70.0 107.4 - angle_coeff @angle:49-48-86 harmonic 35.0 120.0 - angle_coeff @angle:48-48-86 harmonic 63.0 120.0 - angle_coeff @angle:56-48-86 harmonic 70.0 124.0 - angle_coeff @angle:49-48-88 harmonic 35.0 128.2 - angle_coeff @angle:101-48-101 harmonic 70.0 111.8 - angle_coeff @angle:56-48-101 harmonic 70.0 124.1 - angle_coeff @angle:48-48-102 harmonic 85.0 120.0 - angle_coeff @angle:48-48-109 harmonic 70.0 124.0 - angle_coeff @angle:25-50-46 harmonic 10.0 90.0 - angle_coeff @angle:19-50-46 harmonic 35.0 120.0 - angle_coeff @angle:25-50-47 harmonic 2.0 90.0 - angle_coeff @angle:46-50-47 harmonic 35.0 120.0 - angle_coeff @angle:3-50-47 harmonic 70.0 118.7 - angle_coeff @angle:13-50-47 harmonic 70.0 124.0 - angle_coeff @angle:46-50-48 harmonic 35.0 123.3 - angle_coeff @angle:47-50-48 harmonic 85.0 117.0 - angle_coeff @angle:25-50-50 harmonic 2.0 90.0 - angle_coeff @angle:46-50-50 harmonic 35.0 120.0 - angle_coeff @angle:13-50-50 harmonic 70.0 124.0 - angle_coeff @angle:47-50-50 harmonic 70.0 124.0 - angle_coeff @angle:50-50-84 harmonic 35.0 106.0 - angle_coeff @angle:46-50-84 harmonic 35.0 122.0 - angle_coeff @angle:46-50-109 harmonic 35.0 120.0 - angle_coeff @angle:13-50-109 harmonic 70.0 124.0 - angle_coeff @angle:47-50-109 harmonic 70.0 124.0 - angle_coeff @angle:6-51-6 harmonic 40.0 109.5 - angle_coeff @angle:5-51-13 harmonic 50.0 109.5 - angle_coeff @angle:13-51-20 harmonic 50.0 109.5 - angle_coeff @angle:2-51-20 harmonic 80.0 109.5 - angle_coeff @angle:6-51-20 harmonic 80.0 109.5 - angle_coeff @angle:5-51-20 harmonic 92.6 111.55 - angle_coeff @angle:20-51-20 harmonic 92.6 111.55 - angle_coeff @angle:46-51-46 harmonic 33.0 109.5 - angle_coeff @angle:5-51-46 harmonic 35.0 109.5 - angle_coeff @angle:20-51-46 harmonic 35.0 109.5 - angle_coeff @angle:13-51-46 harmonic 37.5 110.7 - angle_coeff @angle:46-51-105 harmonic 35.0 109.5 - angle_coeff @angle:13-51-105 harmonic 50.0 109.5 - angle_coeff @angle:20-51-105 harmonic 50.0 109.5 - angle_coeff @angle:13-53-13 harmonic 50.0 113.0 - angle_coeff @angle:13-53-25 harmonic 10.0 100.0 - angle_coeff @angle:45-53-45 harmonic 43.6 109.5 - angle_coeff @angle:25-53-48 harmonic 10.0 100.0 - angle_coeff @angle:13-53-48 harmonic 55.0 114.0 - angle_coeff @angle:2-53-54 harmonic 35.0 109.5 - angle_coeff @angle:6-53-54 harmonic 35.0 109.5 - angle_coeff @angle:13-53-54 harmonic 35.0 109.5 - angle_coeff @angle:48-53-54 harmonic 35.0 109.5 - angle_coeff @angle:54-53-54 harmonic 35.0 109.5 - angle_coeff @angle:25-53-82 harmonic 10.0 100.0 - angle_coeff @angle:13-55-13 harmonic 50.0 118.0 - angle_coeff @angle:45-55-45 harmonic 35.0 113.0 - angle_coeff @angle:13-55-45 harmonic 35.0 118.4 - angle_coeff @angle:45-55-48 harmonic 35.0 120.0 - angle_coeff @angle:2-55-48 harmonic 50.0 123.2 - angle_coeff @angle:6-55-48 harmonic 50.0 123.2 - angle_coeff @angle:13-55-48 harmonic 50.0 123.2 - angle_coeff @angle:2-55-54 harmonic 35.0 118.4 - angle_coeff @angle:13-55-54 harmonic 35.0 118.4 - angle_coeff @angle:48-55-54 harmonic 35.0 120.0 - angle_coeff @angle:54-55-54 harmonic 35.0 120.0 - angle_coeff @angle:45-55-59 harmonic 35.0 120.0 - angle_coeff @angle:3-56-13 harmonic 70.0 120.5 - angle_coeff @angle:13-56-18 harmonic 70.0 120.0 - angle_coeff @angle:25-56-48 harmonic 5.0 120.0 - angle_coeff @angle:45-56-48 harmonic 35.0 113.0 - angle_coeff @angle:13-56-48 harmonic 50.0 118.0 - angle_coeff @angle:48-56-48 harmonic 70.0 117.0 - angle_coeff @angle:3-56-48 harmonic 70.0 120.5 - angle_coeff @angle:13-56-56 harmonic 70.0 117.0 - angle_coeff @angle:48-56-56 harmonic 70.0 117.0 - angle_coeff @angle:25-56-59 harmonic 5.0 119.8 - angle_coeff @angle:48-56-59 harmonic 70.0 118.6 - angle_coeff @angle:59-56-59 harmonic 70.0 118.6 - angle_coeff @angle:59-56-60 harmonic 70.0 111.0 - angle_coeff @angle:48-56-60 harmonic 70.0 112.2 - angle_coeff @angle:59-56-82 harmonic 70.0 111.0 - angle_coeff @angle:48-56-86 harmonic 70.0 117.0 - angle_coeff @angle:13-56-103 harmonic 70.0 114.0 - angle_coeff @angle:3-57-3 harmonic 70.0 126.4 - angle_coeff @angle:3-57-45 harmonic 35.0 116.8 - angle_coeff @angle:45-57-47 harmonic 35.0 119.2 - angle_coeff @angle:3-57-47 harmonic 70.0 121.6 - angle_coeff @angle:45-57-48 harmonic 35.0 118.0 - angle_coeff @angle:3-57-48 harmonic 70.0 125.2 - angle_coeff @angle:48-57-48 harmonic 70.0 125.2 - angle_coeff @angle:45-57-60 harmonic 30.0 125.8 - angle_coeff @angle:13-57-60 harmonic 70.0 125.8 - angle_coeff @angle:60-57-61 harmonic 56.0 113.1 - angle_coeff @angle:45-57-61 harmonic 56.0 118.4 - angle_coeff @angle:13-57-61 harmonic 70.0 118.4 - angle_coeff @angle:48-57-61 harmonic 70.0 118.4 - angle_coeff @angle:45-57-62 harmonic 30.0 128.8 - angle_coeff @angle:60-57-62 harmonic 70.0 105.4 - angle_coeff @angle:48-57-62 harmonic 70.0 109.8 - angle_coeff @angle:13-57-62 harmonic 70.0 128.8 - angle_coeff @angle:45-57-81 harmonic 35.0 123.1 - angle_coeff @angle:45-57-82 harmonic 35.0 120.0 - angle_coeff @angle:61-57-82 harmonic 56.0 113.1 - angle_coeff @angle:60-57-82 harmonic 70.0 109.8 - angle_coeff @angle:45-57-84 harmonic 35.0 120.0 - angle_coeff @angle:61-57-84 harmonic 56.0 113.1 - angle_coeff @angle:60-57-84 harmonic 70.0 109.8 - angle_coeff @angle:82-57-84 harmonic 70.0 109.8 - angle_coeff @angle:84-57-84 harmonic 70.0 109.8 - angle_coeff @angle:81-57-84 harmonic 70.0 111.6 - angle_coeff @angle:45-57-85 harmonic 35.0 120.0 - angle_coeff @angle:82-57-85 harmonic 70.0 109.8 - angle_coeff @angle:24-59-55 harmonic 70.0 116.0 - angle_coeff @angle:49-59-56 harmonic 35.0 115.45 - angle_coeff @angle:13-59-56 harmonic 70.0 115.5 - angle_coeff @angle:55-59-56 harmonic 70.0 119.3 - angle_coeff @angle:24-59-56 harmonic 70.0 123.3 - angle_coeff @angle:56-59-56 harmonic 70.0 129.1 - angle_coeff @angle:56-59-63 harmonic 35.0 115.45 - angle_coeff @angle:13-60-48 harmonic 70.0 120.0 - angle_coeff @angle:48-60-48 harmonic 85.0 134.9 - angle_coeff @angle:56-60-57 harmonic 70.0 126.2 - angle_coeff @angle:57-60-60 harmonic 70.0 106.2 - angle_coeff @angle:20-60-60 harmonic 70.0 110.6 - angle_coeff @angle:16-60-60 harmonic 70.0 111.0 - angle_coeff @angle:13-60-60 harmonic 70.0 120.0 - angle_coeff @angle:24-60-60 harmonic 70.0 127.7 - angle_coeff @angle:56-60-60 harmonic 70.0 127.7 - angle_coeff @angle:48-60-60 harmonic 85.0 117.3 - angle_coeff @angle:3-60-60 harmonic 85.0 119.2 - angle_coeff @angle:60-60-61 harmonic 70.0 111.0 - angle_coeff @angle:24-60-61 harmonic 70.0 126.2 - angle_coeff @angle:3-60-61 harmonic 70.0 130.0 - angle_coeff @angle:48-60-61 harmonic 70.0 132.4 - angle_coeff @angle:12-60-80 harmonic 85.0 134.9 - angle_coeff @angle:48-60-80 harmonic 85.0 134.9 - angle_coeff @angle:80-60-81 harmonic 85.0 108.8 - angle_coeff @angle:12-60-81 harmonic 85.0 116.2 - angle_coeff @angle:48-60-81 harmonic 85.0 116.2 - angle_coeff @angle:3-60-84 harmonic 70.0 130.0 - angle_coeff @angle:60-60-87 harmonic 70.0 107.3 - angle_coeff @angle:57-60-87 harmonic 70.0 107.7 - angle_coeff @angle:81-60-87 harmonic 85.0 108.8 - angle_coeff @angle:12-60-87 harmonic 85.0 134.9 - angle_coeff @angle:48-60-87 harmonic 85.0 134.9 - angle_coeff @angle:60-60-105 harmonic 70.0 106.2 - angle_coeff @angle:56-60-105 harmonic 70.0 126.2 - angle_coeff @angle:48-61-48 harmonic 70.0 125.2 - angle_coeff @angle:25-61-57 harmonic 10.0 125.0 - angle_coeff @angle:25-61-61 harmonic 10.0 125.0 - angle_coeff @angle:60-61-62 harmonic 70.0 103.8 - angle_coeff @angle:25-61-82 harmonic 10.0 125.0 - angle_coeff @angle:61-61-82 harmonic 70.0 109.0 - angle_coeff @angle:60-61-82 harmonic 70.0 110.0 - angle_coeff @angle:82-61-83 harmonic 70.0 110.0 - angle_coeff @angle:57-61-84 harmonic 70.0 104.1 - angle_coeff @angle:82-61-84 harmonic 70.0 110.0 - angle_coeff @angle:57-61-88 harmonic 70.0 104.1 - angle_coeff @angle:20-61-88 harmonic 70.0 105.3 - angle_coeff @angle:49-62-57 harmonic 35.0 120.0 - angle_coeff @angle:49-62-61 harmonic 35.0 120.0 - angle_coeff @angle:57-62-61 harmonic 70.0 113.9 - angle_coeff @angle:57-62-63 harmonic 35.0 123.05 - angle_coeff @angle:61-62-63 harmonic 35.0 123.05 - angle_coeff @angle:49-62-105 harmonic 35.0 120.0 - angle_coeff @angle:63-62-105 harmonic 35.0 123.05 - angle_coeff @angle:61-62-105 harmonic 70.0 113.9 - angle_coeff @angle:5-64-5 harmonic 45.0 102.6 - angle_coeff @angle:4-64-5 harmonic 100.0 108.23 - angle_coeff @angle:4-64-13 harmonic 45.0 109.5 - angle_coeff @angle:5-64-20 harmonic 45.0 102.6 - angle_coeff @angle:20-64-20 harmonic 45.0 102.6 - angle_coeff @angle:13-64-20 harmonic 45.0 109.5 - angle_coeff @angle:4-64-20 harmonic 100.0 108.23 - angle_coeff @angle:4-64-48 harmonic 45.0 109.5 - angle_coeff @angle:5-64-48 harmonic 45.0 109.5 - angle_coeff @angle:20-64-48 harmonic 45.0 109.5 - angle_coeff @angle:5-64-52 harmonic 45.0 108.23 - angle_coeff @angle:13-64-52 harmonic 45.0 109.5 - angle_coeff @angle:20-64-52 harmonic 100.0 108.23 - angle_coeff @angle:52-64-52 harmonic 140.0 119.9 - angle_coeff @angle:25-65-25 harmonic 33.0 109.47 - angle_coeff @angle:25-66-25 harmonic 33.0 109.47 - angle_coeff @angle:78-77-78 harmonic 150.0 180.0 - angle_coeff @angle:6-79-11 harmonic 62.0 98.9 - angle_coeff @angle:13-79-13 harmonic 62.0 102.0 - angle_coeff @angle:5-79-13 harmonic 75.0 96.4 - angle_coeff @angle:5-79-23 harmonic 74.0 108.7 - angle_coeff @angle:13-79-23 harmonic 74.0 108.9 - angle_coeff @angle:23-79-23 harmonic 104.0 119.0 - angle_coeff @angle:13-79-24 harmonic 100.0 103.0 - angle_coeff @angle:23-79-24 harmonic 120.0 107.0 - angle_coeff @angle:13-79-44 harmonic 62.0 102.0 - angle_coeff @angle:23-79-44 harmonic 74.0 108.9 - angle_coeff @angle:13-79-48 harmonic 62.0 102.0 - angle_coeff @angle:23-79-48 harmonic 74.0 107.2 - angle_coeff @angle:5-79-48 harmonic 75.0 96.4 - angle_coeff @angle:24-79-48 harmonic 100.0 103.0 - angle_coeff @angle:13-79-82 harmonic 62.0 102.0 - angle_coeff @angle:46-80-60 harmonic 35.0 126.8 - angle_coeff @angle:2-80-60 harmonic 70.0 128.6 - angle_coeff @angle:13-80-60 harmonic 70.0 128.6 - angle_coeff @angle:46-80-84 harmonic 35.0 126.8 - angle_coeff @angle:2-80-84 harmonic 70.0 125.0 - angle_coeff @angle:13-80-84 harmonic 70.0 125.0 - angle_coeff @angle:60-80-84 harmonic 85.0 106.4 - angle_coeff @angle:12-81-57 harmonic 70.0 132.8 - angle_coeff @angle:48-81-57 harmonic 70.0 132.8 - angle_coeff @angle:57-81-60 harmonic 70.0 104.4 - angle_coeff @angle:12-81-60 harmonic 85.0 122.7 - angle_coeff @angle:48-81-60 harmonic 85.0 122.7 - angle_coeff @angle:13-82-16 harmonic 70.0 125.0 - angle_coeff @angle:16-82-24 harmonic 70.0 125.0 - angle_coeff @angle:16-82-44 harmonic 70.0 120.2 - angle_coeff @angle:20-82-49 harmonic 35.0 117.0 - angle_coeff @angle:16-82-49 harmonic 35.0 125.0 - angle_coeff @angle:49-82-57 harmonic 35.0 120.0 - angle_coeff @angle:57-82-57 harmonic 70.0 120.0 - angle_coeff @angle:13-82-57 harmonic 70.0 125.0 - angle_coeff @angle:48-82-57 harmonic 70.0 125.0 - angle_coeff @angle:56-82-57 harmonic 70.0 126.2 - angle_coeff @angle:49-82-61 harmonic 35.0 120.0 - angle_coeff @angle:16-82-61 harmonic 70.0 115.0 - angle_coeff @angle:20-82-61 harmonic 70.0 115.0 - angle_coeff @angle:57-82-61 harmonic 70.0 120.0 - angle_coeff @angle:13-82-61 harmonic 70.0 125.0 - angle_coeff @angle:44-82-61 harmonic 70.0 126.1 - angle_coeff @angle:24-82-61 harmonic 70.0 126.2 - angle_coeff @angle:57-82-79 harmonic 70.0 120.0 - angle_coeff @angle:61-82-79 harmonic 70.0 120.0 - angle_coeff @angle:20-82-86 harmonic 70.0 122.0 - angle_coeff @angle:61-82-86 harmonic 70.0 130.0 - angle_coeff @angle:57-82-87 harmonic 70.0 106.2 - angle_coeff @angle:56-82-87 harmonic 70.0 127.7 - angle_coeff @angle:49-83-61 harmonic 35.0 120.0 - angle_coeff @angle:48-83-61 harmonic 70.0 111.0 - angle_coeff @angle:13-83-61 harmonic 70.0 124.5 - angle_coeff @angle:49-83-84 harmonic 35.0 128.2 - angle_coeff @angle:61-83-84 harmonic 70.0 111.0 - angle_coeff @angle:13-83-84 harmonic 70.0 130.7 - angle_coeff @angle:13-84-16 harmonic 70.0 125.0 - angle_coeff @angle:13-84-20 harmonic 70.0 121.6 - angle_coeff @angle:16-84-24 harmonic 70.0 125.0 - angle_coeff @angle:20-84-49 harmonic 35.0 113.4 - angle_coeff @angle:16-84-49 harmonic 35.0 125.0 - angle_coeff @angle:48-84-49 harmonic 35.0 130.7 - angle_coeff @angle:49-84-50 harmonic 35.0 130.7 - angle_coeff @angle:20-84-50 harmonic 70.0 110.0 - angle_coeff @angle:49-84-57 harmonic 35.0 121.6 - angle_coeff @angle:13-84-57 harmonic 70.0 121.6 - angle_coeff @angle:48-84-57 harmonic 70.0 121.6 - angle_coeff @angle:3-84-57 harmonic 85.0 120.0 - angle_coeff @angle:57-84-58 harmonic 35.0 120.0 - angle_coeff @angle:13-84-61 harmonic 70.0 118.9 - angle_coeff @angle:49-84-80 harmonic 35.0 120.0 - angle_coeff @angle:57-84-80 harmonic 70.0 108.7 - angle_coeff @angle:49-84-83 harmonic 35.0 130.7 - angle_coeff @angle:57-84-83 harmonic 70.0 106.3 - angle_coeff @angle:20-84-83 harmonic 70.0 108.0 - angle_coeff @angle:16-84-83 harmonic 70.0 111.0 - angle_coeff @angle:13-84-83 harmonic 70.0 130.7 - angle_coeff @angle:13-84-84 harmonic 70.0 120.0 - angle_coeff @angle:57-84-84 harmonic 70.0 120.0 - angle_coeff @angle:61-84-84 harmonic 70.0 120.0 - angle_coeff @angle:20-84-86 harmonic 70.0 121.6 - angle_coeff @angle:57-84-86 harmonic 70.0 121.6 - angle_coeff @angle:49-84-87 harmonic 35.0 132.1 - angle_coeff @angle:57-84-87 harmonic 70.0 107.7 - angle_coeff @angle:20-84-87 harmonic 70.0 110.6 - angle_coeff @angle:16-84-87 harmonic 70.0 111.0 - angle_coeff @angle:61-84-87 harmonic 70.0 111.9 - angle_coeff @angle:13-84-87 harmonic 70.0 132.1 - angle_coeff @angle:48-84-87 harmonic 70.0 132.1 - angle_coeff @angle:86-84-87 harmonic 70.0 132.1 - angle_coeff @angle:3-84-87 harmonic 85.0 120.0 - angle_coeff @angle:49-85-57 harmonic 35.0 120.0 - angle_coeff @angle:13-85-57 harmonic 70.0 121.6 - angle_coeff @angle:49-85-85 harmonic 35.0 130.7 - angle_coeff @angle:57-85-85 harmonic 70.0 106.3 - angle_coeff @angle:13-85-85 harmonic 70.0 130.7 - angle_coeff @angle:48-86-48 harmonic 63.0 120.0 - angle_coeff @angle:48-86-56 harmonic 70.0 124.0 - angle_coeff @angle:48-86-82 harmonic 63.0 120.0 - angle_coeff @angle:48-86-83 harmonic 63.0 120.0 - angle_coeff @angle:48-86-84 harmonic 63.0 120.0 - angle_coeff @angle:48-86-86 harmonic 63.0 120.0 - angle_coeff @angle:56-86-86 harmonic 70.0 124.0 - angle_coeff @angle:48-86-87 harmonic 63.0 120.0 - angle_coeff @angle:48-86-88 harmonic 63.0 120.0 - angle_coeff @angle:49-87-60 harmonic 35.0 120.0 - angle_coeff @angle:46-87-60 harmonic 35.0 126.8 - angle_coeff @angle:13-87-60 harmonic 70.0 128.6 - angle_coeff @angle:49-87-84 harmonic 35.0 125.7 - angle_coeff @angle:46-87-84 harmonic 35.0 126.8 - angle_coeff @angle:84-87-84 harmonic 70.0 103.8 - angle_coeff @angle:82-87-84 harmonic 70.0 110.4 - angle_coeff @angle:2-87-84 harmonic 70.0 125.0 - angle_coeff @angle:13-87-84 harmonic 70.0 125.0 - angle_coeff @angle:3-87-84 harmonic 70.0 130.0 - angle_coeff @angle:60-87-84 harmonic 85.0 106.4 - angle_coeff @angle:84-87-86 harmonic 70.0 125.7 - angle_coeff @angle:49-87-87 harmonic 35.0 127.5 - angle_coeff @angle:60-87-87 harmonic 70.0 107.3 - angle_coeff @angle:84-87-87 harmonic 70.0 107.3 - angle_coeff @angle:86-87-87 harmonic 70.0 127.5 - angle_coeff @angle:84-87-88 harmonic 70.0 103.8 - angle_coeff @angle:48-88-49 harmonic 35.0 128.6 - angle_coeff @angle:49-88-61 harmonic 35.0 118.9 - angle_coeff @angle:13-88-61 harmonic 70.0 118.9 - angle_coeff @angle:19-88-61 harmonic 70.0 118.9 - angle_coeff @angle:61-88-87 harmonic 70.0 111.9 - angle_coeff @angle:4-89-90 harmonic 80.0 134.0 - angle_coeff @angle:90-89-91 harmonic 70.0 91.0 - angle_coeff @angle:4-89-91 harmonic 80.0 134.0 - angle_coeff @angle:13-90-89 harmonic 55.0 127.0 - angle_coeff @angle:89-90-91 harmonic 50.0 94.0 - angle_coeff @angle:13-90-91 harmonic 50.0 126.0 - angle_coeff @angle:24-91-46 harmonic 35.0 108.0 - angle_coeff @angle:13-91-46 harmonic 35.0 114.3 - angle_coeff @angle:44-91-46 harmonic 35.0 114.3 - angle_coeff @angle:46-91-46 harmonic 35.0 114.3 - angle_coeff @angle:16-91-46 harmonic 37.5 108.0 - angle_coeff @angle:46-91-47 harmonic 35.0 109.5 - angle_coeff @angle:46-91-89 harmonic 37.5 110.0 - angle_coeff @angle:24-91-89 harmonic 70.0 117.0 - angle_coeff @angle:46-91-90 harmonic 35.0 111.0 - angle_coeff @angle:16-91-90 harmonic 55.0 109.0 - angle_coeff @angle:91-91-91 harmonic 30.0 79.2 - angle_coeff @angle:13-91-91 harmonic 37.5 117.2 - angle_coeff @angle:44-91-91 harmonic 37.5 117.2 - angle_coeff @angle:46-91-91 harmonic 37.5 117.2 - angle_coeff @angle:24-91-91 harmonic 37.5 126.0 - angle_coeff @angle:16-91-91 harmonic 55.0 128.0 - angle_coeff @angle:89-91-91 harmonic 63.0 85.0 - angle_coeff @angle:47-91-91 harmonic 63.0 114.0 - angle_coeff @angle:90-91-91 harmonic 80.0 89.0 - angle_coeff @angle:13-95-13 harmonic 172.8 120.0 - angle_coeff @angle:13-95-46 harmonic 144.0 120.0 - angle_coeff @angle:13-101-45 harmonic 35.0 109.5 - angle_coeff @angle:45-101-45 harmonic 43.6 106.4 - angle_coeff @angle:45-101-48 harmonic 50.0 112.5 - angle_coeff @angle:13-101-48 harmonic 50.0 120.5 - angle_coeff @angle:13-102-103 harmonic 80.0 117.5 - angle_coeff @angle:48-102-103 harmonic 80.0 117.5 - angle_coeff @angle:103-102-103 harmonic 80.0 125.0 - angle_coeff @angle:25-103-25 harmonic 10.0 109.5 - angle_coeff @angle:25-103-102 harmonic 10.0 109.5 - angle_coeff @angle:13-104-13 harmonic 45.0 109.5 - angle_coeff @angle:3-105-10 harmonic 70.0 117.6 - angle_coeff @angle:3-105-13 harmonic 70.0 117.6 - angle_coeff @angle:3-105-45 harmonic 35.0 119.2 - angle_coeff @angle:45-105-47 harmonic 35.0 119.2 - angle_coeff @angle:13-105-47 harmonic 70.0 121.2 - angle_coeff @angle:3-105-47 harmonic 70.0 121.6 - angle_coeff @angle:3-105-51 harmonic 70.0 117.6 - angle_coeff @angle:47-105-51 harmonic 70.0 121.2 - angle_coeff @angle:45-105-60 harmonic 30.0 125.8 - angle_coeff @angle:6-105-60 harmonic 70.0 125.8 - angle_coeff @angle:10-105-60 harmonic 70.0 125.8 - angle_coeff @angle:13-105-60 harmonic 70.0 125.8 - angle_coeff @angle:51-105-60 harmonic 70.0 125.8 - angle_coeff @angle:45-105-62 harmonic 30.0 128.8 - angle_coeff @angle:60-105-62 harmonic 70.0 105.4 - angle_coeff @angle:6-105-62 harmonic 70.0 128.8 - angle_coeff @angle:10-105-62 harmonic 70.0 128.8 - angle_coeff @angle:13-105-62 harmonic 70.0 128.8 - angle_coeff @angle:51-105-62 harmonic 70.0 128.8 - angle_coeff @angle:4-106-24 harmonic 20.0 109.5 - angle_coeff @angle:24-106-24 harmonic 20.0 109.5 - angle_coeff @angle:13-107-13 harmonic 50.0 118.0 - angle_coeff @angle:3-107-13 harmonic 50.0 121.9 - angle_coeff @angle:1-108-13 harmonic 35.0 110.5 - angle_coeff @angle:13-108-13 harmonic 60.0 110.0 - angle_coeff @angle:13-108-20 harmonic 60.0 100.0 - angle_coeff @angle:20-108-20 harmonic 60.0 110.0 - angle_coeff @angle:13-108-21 harmonic 35.0 110.5 - angle_coeff @angle:45-108-45 harmonic 35.0 109.5 - angle_coeff @angle:13-108-45 harmonic 35.0 110.5 - angle_coeff @angle:46-108-46 harmonic 35.0 109.5 - angle_coeff @angle:13-108-46 harmonic 35.0 110.5 - angle_coeff @angle:13-108-65 harmonic 35.0 110.5 - angle_coeff @angle:13-108-66 harmonic 35.0 110.5 - angle_coeff @angle:13-108-108 harmonic 50.0 112.0 - angle_coeff @angle:46-109-48 harmonic 35.0 123.3 - angle_coeff @angle:46-109-50 harmonic 35.0 120.0 - angle_coeff @angle:13-109-50 harmonic 70.0 124.0 - angle_coeff @angle:46-109-109 harmonic 35.0 120.0 - angle_coeff @angle:13-109-109 harmonic 70.0 124.0 - angle_coeff @angle:50-109-109 harmonic 70.0 124.0 - angle_coeff @angle:48-109-109 harmonic 85.0 117.0 - angle_coeff @angle:4-110-47 harmonic 160.0 180.0 - angle_coeff @angle:47-110-47 harmonic 160.0 180.0 + angle_coeff @angle:025_001_025 33.0 109.47 + angle_coeff @angle:001_002_002 50.0 109.5 + angle_coeff @angle:002_002_002 63.0 112.4 + angle_coeff @angle:002_002_003 63.0 112.4 + angle_coeff @angle:002_002_005 80.0 109.5 + angle_coeff @angle:002_002_006 63.0 112.4 + angle_coeff @angle:006_002_006 63.0 112.4 + angle_coeff @angle:005_002_006 80.0 109.5 + angle_coeff @angle:002_002_010 63.0 112.4 + angle_coeff @angle:003_002_010 63.0 112.4 + angle_coeff @angle:006_002_010 63.0 112.4 + angle_coeff @angle:010_002_010 63.0 112.4 + angle_coeff @angle:005_002_010 80.0 109.5 + angle_coeff @angle:010_002_012 63.0 114.0 + angle_coeff @angle:006_002_013 63.0 112.4 + angle_coeff @angle:010_002_015 50.0 108.6 + angle_coeff @angle:002_002_016 50.0 114.7 + angle_coeff @angle:010_002_016 50.0 114.7 + angle_coeff @angle:002_002_020 80.0 109.5 + angle_coeff @angle:006_002_020 80.0 109.5 + angle_coeff @angle:010_002_020 80.0 109.5 + angle_coeff @angle:003_002_024 80.0 110.3 + angle_coeff @angle:002_002_024 80.0 111.2 + angle_coeff @angle:002_002_044 56.2 109.47 + angle_coeff @angle:006_002_044 56.2 109.47 + angle_coeff @angle:010_002_044 56.2 109.47 + angle_coeff @angle:013_002_044 56.2 109.47 + angle_coeff @angle:003_002_044 80.0 111.2 + angle_coeff @angle:002_002_048 63.0 112.4 + angle_coeff @angle:010_002_048 63.0 114.0 + angle_coeff @angle:002_002_051 63.0 112.4 + angle_coeff @angle:006_002_051 63.0 112.4 + angle_coeff @angle:002_002_053 80.0 111.2 + angle_coeff @angle:002_002_055 80.0 111.2 + angle_coeff @angle:010_002_080 63.0 115.6 + angle_coeff @angle:002_003_004 80.0 120.4 + angle_coeff @angle:001_003_004 80.0 121.0 + angle_coeff @angle:003_003_004 80.0 121.4 + angle_coeff @angle:004_003_004 80.0 126.0 + angle_coeff @angle:004_003_005 80.0 121.0 + angle_coeff @angle:004_003_006 80.0 120.4 + angle_coeff @angle:005_003_010 70.0 115.0 + angle_coeff @angle:004_003_010 80.0 120.4 + angle_coeff @angle:005_003_012 70.0 120.0 + angle_coeff @angle:012_003_012 85.0 120.0 + angle_coeff @angle:005_003_013 70.0 108.0 + angle_coeff @angle:013_003_013 70.0 116.0 + angle_coeff @angle:001_003_013 80.0 111.0 + angle_coeff @angle:003_003_013 80.0 117.2 + angle_coeff @angle:004_003_013 80.0 120.4 + angle_coeff @angle:010_003_020 81.0 111.4 + angle_coeff @angle:013_003_020 81.0 111.4 + angle_coeff @angle:004_003_020 83.0 123.4 + angle_coeff @angle:013_003_021 75.0 109.0 + angle_coeff @angle:004_003_021 75.0 119.0 + angle_coeff @angle:024_003_024 70.0 114.2 + angle_coeff @angle:002_003_024 70.0 116.6 + angle_coeff @angle:003_003_024 70.0 116.6 + angle_coeff @angle:006_003_024 70.0 116.6 + angle_coeff @angle:010_003_024 70.0 116.6 + angle_coeff @angle:013_003_024 70.0 116.6 + angle_coeff @angle:004_003_024 80.0 122.9 + angle_coeff @angle:020_003_024 81.0 111.4 + angle_coeff @angle:013_003_044 70.0 116.0 + angle_coeff @angle:004_003_044 80.0 120.4 + angle_coeff @angle:013_003_046 35.0 115.0 + angle_coeff @angle:046_003_046 35.0 115.0 + angle_coeff @angle:004_003_046 35.0 123.0 + angle_coeff @angle:024_003_046 40.0 114.0 + angle_coeff @angle:005_003_046 40.0 115.0 + angle_coeff @angle:020_003_046 40.0 115.0 + angle_coeff @angle:024_003_047 70.0 115.5 + angle_coeff @angle:004_003_047 80.0 125.3 + angle_coeff @angle:046_003_048 35.0 115.0 + angle_coeff @angle:024_003_048 70.0 115.5 + angle_coeff @angle:013_003_048 70.0 116.0 + angle_coeff @angle:005_003_048 70.0 120.0 + angle_coeff @angle:004_003_048 80.0 120.4 + angle_coeff @angle:020_003_048 81.0 111.4 + angle_coeff @angle:048_003_048 85.0 120.0 + angle_coeff @angle:013_003_050 70.0 116.0 + angle_coeff @angle:046_003_050 80.0 116.0 + angle_coeff @angle:004_003_050 80.0 124.0 + angle_coeff @angle:010_003_052 65.0 117.0 + angle_coeff @angle:002_003_052 70.0 117.0 + angle_coeff @angle:006_003_052 70.0 117.0 + angle_coeff @angle:013_003_052 70.0 117.0 + angle_coeff @angle:048_003_052 70.0 117.0 + angle_coeff @angle:004_003_052 80.0 126.0 + angle_coeff @angle:052_003_052 80.0 126.0 + angle_coeff @angle:046_003_056 35.0 122.0 + angle_coeff @angle:004_003_056 80.0 122.5 + angle_coeff @angle:047_003_057 70.0 114.1 + angle_coeff @angle:056_003_057 70.0 118.6 + angle_coeff @angle:057_003_057 70.0 118.6 + angle_coeff @angle:004_003_057 80.0 120.6 + angle_coeff @angle:024_003_060 70.0 111.3 + angle_coeff @angle:057_003_060 70.0 111.3 + angle_coeff @angle:004_003_060 80.0 128.8 + angle_coeff @angle:013_003_065 75.0 109.0 + angle_coeff @angle:004_003_065 75.0 119.0 + angle_coeff @angle:044_003_084 70.0 116.0 + angle_coeff @angle:004_003_084 80.0 120.4 + angle_coeff @angle:004_003_087 80.0 128.2 + angle_coeff @angle:057_003_105 70.0 115.4 + angle_coeff @angle:056_003_105 70.0 118.6 + angle_coeff @angle:004_003_105 80.0 120.9 + angle_coeff @angle:013_003_107 70.0 116.6 + angle_coeff @angle:004_003_107 80.0 122.9 + angle_coeff @angle:025_004_025 10.0 117.0 + angle_coeff @angle:003_004_025 35.0 113.0 + angle_coeff @angle:003_005_007 35.0 113.0 + angle_coeff @angle:002_005_007 55.0 108.5 + angle_coeff @angle:006_005_007 55.0 108.5 + angle_coeff @angle:007_005_010 55.0 108.5 + angle_coeff @angle:007_005_013 55.0 108.5 + angle_coeff @angle:007_005_024 49.0 105.4 + angle_coeff @angle:025_005_025 5.0 109.47 + angle_coeff @angle:007_005_025 10.0 109.47 + angle_coeff @angle:013_005_025 10.0 109.47 + angle_coeff @angle:007_005_047 35.0 109.0 + angle_coeff @angle:025_005_048 10.0 109.47 + angle_coeff @angle:007_005_048 35.0 113.0 + angle_coeff @angle:007_005_051 55.0 108.5 + angle_coeff @angle:007_005_064 55.0 108.5 + angle_coeff @angle:013_005_064 100.0 120.5 + angle_coeff @angle:007_005_079 74.0 110.0 + angle_coeff @angle:007_005_106 100.0 126.0 + angle_coeff @angle:005_007_025 10.0 109.47 + angle_coeff @angle:025_007_025 33.0 109.47 + angle_coeff @angle:002_010_002 63.0 112.4 + angle_coeff @angle:002_010_003 63.0 111.1 + angle_coeff @angle:002_010_005 80.0 109.5 + angle_coeff @angle:003_010_006 63.0 111.1 + angle_coeff @angle:006_010_006 63.0 111.5 + angle_coeff @angle:002_010_006 63.0 112.4 + angle_coeff @angle:005_010_006 80.0 109.5 + angle_coeff @angle:003_010_010 63.0 111.1 + angle_coeff @angle:002_010_010 63.0 111.5 + angle_coeff @angle:006_010_010 63.0 111.5 + angle_coeff @angle:010_010_010 63.0 111.5 + angle_coeff @angle:005_010_010 80.0 109.5 + angle_coeff @angle:002_010_020 80.0 109.5 + angle_coeff @angle:006_010_020 80.0 109.5 + angle_coeff @angle:010_010_020 80.0 109.5 + angle_coeff @angle:003_010_024 63.0 110.1 + angle_coeff @angle:006_010_024 80.0 109.5 + angle_coeff @angle:002_010_024 80.0 109.7 + angle_coeff @angle:010_010_024 80.0 109.7 + angle_coeff @angle:002_010_044 56.2 109.47 + angle_coeff @angle:006_010_044 56.2 109.47 + angle_coeff @angle:010_010_044 56.2 109.47 + angle_coeff @angle:013_010_044 56.2 109.47 + angle_coeff @angle:003_010_044 80.0 109.7 + angle_coeff @angle:002_010_048 63.0 112.4 + angle_coeff @angle:020_010_048 80.0 109.5 + angle_coeff @angle:002_010_105 80.0 109.5 + angle_coeff @angle:010_010_105 80.0 109.5 + angle_coeff @angle:020_010_105 80.0 109.5 + angle_coeff @angle:002_011_002 70.0 124.0 + angle_coeff @angle:002_011_006 70.0 124.0 + angle_coeff @angle:006_011_006 70.0 124.0 + angle_coeff @angle:002_011_009 70.0 118.0 + angle_coeff @angle:006_011_009 70.0 118.0 + angle_coeff @angle:009_011_010 70.0 118.0 + angle_coeff @angle:002_011_010 70.0 124.0 + angle_coeff @angle:006_011_010 70.0 124.0 + angle_coeff @angle:010_011_010 70.0 124.0 + angle_coeff @angle:002_011_011 70.0 118.0 + angle_coeff @angle:006_011_011 70.0 118.0 + angle_coeff @angle:009_011_011 70.0 118.0 + angle_coeff @angle:010_011_011 70.0 118.0 + angle_coeff @angle:011_011_011 70.0 118.0 + angle_coeff @angle:009_011_013 70.0 118.0 + angle_coeff @angle:011_011_013 70.0 118.0 + angle_coeff @angle:002_011_013 70.0 124.0 + angle_coeff @angle:006_011_013 70.0 124.0 + angle_coeff @angle:010_011_013 70.0 124.0 + angle_coeff @angle:013_011_013 70.0 124.0 + angle_coeff @angle:009_011_014 70.0 118.0 + angle_coeff @angle:011_011_014 70.0 118.0 + angle_coeff @angle:009_011_079 70.0 118.0 + angle_coeff @angle:002_012_012 70.0 120.0 + angle_coeff @angle:003_012_012 85.0 120.0 + angle_coeff @angle:012_012_012 85.0 120.0 + angle_coeff @angle:012_012_048 85.0 120.0 + angle_coeff @angle:012_012_060 85.0 120.0 + angle_coeff @angle:012_012_081 85.0 120.0 + angle_coeff @angle:001_013_001 77.0 109.1 + angle_coeff @angle:002_013_002 40.0 109.5 + angle_coeff @angle:001_013_003 50.0 109.5 + angle_coeff @angle:002_013_003 63.0 111.1 + angle_coeff @angle:003_013_003 63.0 111.1 + angle_coeff @angle:002_013_006 40.0 109.5 + angle_coeff @angle:006_013_006 40.0 109.5 + angle_coeff @angle:003_013_006 63.0 109.5 + angle_coeff @angle:001_013_013 50.0 109.5 + angle_coeff @angle:005_013_013 50.0 109.5 + angle_coeff @angle:013_013_013 58.35 112.7 + angle_coeff @angle:003_013_013 63.0 111.1 + angle_coeff @angle:013_013_015 50.0 108.6 + angle_coeff @angle:013_013_016 50.0 114.7 + angle_coeff @angle:013_013_019 58.35 112.7 + angle_coeff @angle:003_013_020 50.0 109.5 + angle_coeff @angle:013_013_020 50.0 109.5 + angle_coeff @angle:003_013_021 69.0 109.8 + angle_coeff @angle:013_013_021 69.0 109.8 + angle_coeff @angle:021_013_021 78.0 111.7 + angle_coeff @angle:013_013_022 50.0 108.6 + angle_coeff @angle:020_013_024 50.0 109.5 + angle_coeff @angle:003_013_024 63.0 110.1 + angle_coeff @angle:002_013_024 80.0 109.7 + angle_coeff @angle:013_013_024 80.0 109.7 + angle_coeff @angle:016_013_044 50.0 114.7 + angle_coeff @angle:002_013_044 56.2 109.47 + angle_coeff @angle:006_013_044 56.2 109.47 + angle_coeff @angle:010_013_044 56.2 109.47 + angle_coeff @angle:013_013_044 56.2 109.47 + angle_coeff @angle:003_013_044 80.0 111.2 + angle_coeff @angle:046_013_046 33.0 107.8 + angle_coeff @angle:018_013_046 35.0 108.5 + angle_coeff @angle:019_013_046 35.0 108.5 + angle_coeff @angle:002_013_046 35.0 109.5 + angle_coeff @angle:003_013_046 35.0 109.5 + angle_coeff @angle:005_013_046 35.0 109.5 + angle_coeff @angle:015_013_046 35.0 109.5 + angle_coeff @angle:016_013_046 35.0 109.5 + angle_coeff @angle:020_013_046 35.0 109.5 + angle_coeff @angle:022_013_046 35.0 109.5 + angle_coeff @angle:024_013_046 35.0 109.5 + angle_coeff @angle:044_013_046 35.0 109.5 + angle_coeff @angle:013_013_046 37.5 110.7 + angle_coeff @angle:001_013_046 40.0 107.0 + angle_coeff @angle:021_013_046 51.0 107.6 + angle_coeff @angle:046_013_047 35.0 109.5 + angle_coeff @angle:001_013_047 50.0 109.5 + angle_coeff @angle:013_013_047 63.0 111.1 + angle_coeff @angle:047_013_047 63.0 112.4 + angle_coeff @angle:046_013_048 35.0 109.5 + angle_coeff @angle:047_013_048 40.0 109.5 + angle_coeff @angle:048_013_048 40.0 109.5 + angle_coeff @angle:001_013_048 50.0 109.5 + angle_coeff @angle:005_013_048 50.0 109.5 + angle_coeff @angle:020_013_048 50.0 109.5 + angle_coeff @angle:016_013_048 50.0 114.7 + angle_coeff @angle:003_013_048 63.0 112.0 + angle_coeff @angle:002_013_048 63.0 114.0 + angle_coeff @angle:013_013_048 63.0 114.0 + angle_coeff @angle:044_013_048 80.0 111.2 + angle_coeff @angle:046_013_050 35.0 109.5 + angle_coeff @angle:046_013_051 37.5 110.7 + angle_coeff @angle:005_013_051 50.0 109.5 + angle_coeff @angle:013_013_051 58.35 112.7 + angle_coeff @angle:046_013_053 35.0 109.5 + angle_coeff @angle:003_013_053 80.0 111.2 + angle_coeff @angle:013_013_053 80.0 111.2 + angle_coeff @angle:046_013_055 35.0 109.5 + angle_coeff @angle:013_013_055 80.0 111.2 + angle_coeff @angle:046_013_056 35.0 109.5 + angle_coeff @angle:003_013_056 63.0 110.1 + angle_coeff @angle:013_013_056 65.0 109.0 + angle_coeff @angle:046_013_057 35.0 109.5 + angle_coeff @angle:048_013_057 80.0 111.2 + angle_coeff @angle:046_013_060 35.0 109.5 + angle_coeff @angle:013_013_060 63.0 114.0 + angle_coeff @angle:046_013_064 41.0 109.5 + angle_coeff @angle:013_013_064 43.0 109.5 + angle_coeff @angle:048_013_064 43.0 109.5 + angle_coeff @angle:046_013_065 51.0 107.6 + angle_coeff @angle:003_013_065 69.0 109.8 + angle_coeff @angle:013_013_065 69.0 110.0 + angle_coeff @angle:048_013_065 69.0 110.0 + angle_coeff @angle:065_013_065 78.0 111.7 + angle_coeff @angle:046_013_066 75.0 111.0 + angle_coeff @angle:013_013_066 75.0 112.0 + angle_coeff @angle:046_013_079 35.0 109.5 + angle_coeff @angle:013_013_079 50.0 108.6 + angle_coeff @angle:001_013_079 50.0 109.5 + angle_coeff @angle:046_013_080 35.0 109.5 + angle_coeff @angle:013_013_080 63.0 115.6 + angle_coeff @angle:046_013_083 35.0 109.5 + angle_coeff @angle:013_013_083 63.0 114.0 + angle_coeff @angle:046_013_084 35.0 109.5 + angle_coeff @angle:016_013_084 50.0 114.7 + angle_coeff @angle:013_013_084 63.0 114.0 + angle_coeff @angle:046_013_085 35.0 109.5 + angle_coeff @angle:013_013_085 63.0 114.0 + angle_coeff @angle:046_013_087 35.0 109.5 + angle_coeff @angle:013_013_087 63.0 115.6 + angle_coeff @angle:046_013_090 35.0 109.5 + angle_coeff @angle:013_013_090 80.0 110.0 + angle_coeff @angle:003_013_090 80.0 113.0 + angle_coeff @angle:046_013_091 37.5 110.7 + angle_coeff @angle:046_013_095 35.0 105.0 + angle_coeff @angle:013_013_095 63.0 105.0 + angle_coeff @angle:046_013_101 35.0 109.5 + angle_coeff @angle:013_013_101 80.0 111.2 + angle_coeff @angle:046_013_102 35.0 105.0 + angle_coeff @angle:013_013_102 63.0 111.1 + angle_coeff @angle:046_013_104 41.0 109.5 + angle_coeff @angle:013_013_104 43.0 109.5 + angle_coeff @angle:046_013_105 35.0 109.5 + angle_coeff @angle:013_013_105 50.0 109.5 + angle_coeff @angle:020_013_105 50.0 109.5 + angle_coeff @angle:046_013_107 35.0 109.5 + angle_coeff @angle:013_013_107 80.0 109.7 + angle_coeff @angle:046_013_108 35.0 109.5 + angle_coeff @angle:013_013_108 60.0 112.0 + angle_coeff @angle:002_014_002 70.0 124.0 + angle_coeff @angle:002_014_006 70.0 124.0 + angle_coeff @angle:006_014_006 70.0 124.0 + angle_coeff @angle:002_014_009 70.0 118.0 + angle_coeff @angle:006_014_009 70.0 118.0 + angle_coeff @angle:009_014_010 70.0 118.0 + angle_coeff @angle:002_014_010 70.0 124.0 + angle_coeff @angle:006_014_010 70.0 124.0 + angle_coeff @angle:010_014_010 70.0 124.0 + angle_coeff @angle:002_014_011 70.0 118.0 + angle_coeff @angle:006_014_011 70.0 118.0 + angle_coeff @angle:009_014_011 70.0 118.0 + angle_coeff @angle:010_014_011 70.0 118.0 + angle_coeff @angle:011_014_011 70.0 118.0 + angle_coeff @angle:009_014_013 70.0 118.0 + angle_coeff @angle:011_014_013 70.0 118.0 + angle_coeff @angle:002_014_013 70.0 124.0 + angle_coeff @angle:006_014_013 70.0 124.0 + angle_coeff @angle:010_014_013 70.0 124.0 + angle_coeff @angle:013_014_013 70.0 124.0 + angle_coeff @angle:002_014_014 70.0 118.0 + angle_coeff @angle:006_014_014 70.0 118.0 + angle_coeff @angle:009_014_014 70.0 118.0 + angle_coeff @angle:010_014_014 70.0 118.0 + angle_coeff @angle:011_014_014 70.0 118.0 + angle_coeff @angle:013_014_014 70.0 118.0 + angle_coeff @angle:014_014_014 70.0 118.0 + angle_coeff @angle:017_015_017 35.0 92.07 + angle_coeff @angle:002_015_017 44.0 96.0 + angle_coeff @angle:006_015_017 44.0 96.0 + angle_coeff @angle:013_015_017 44.0 96.0 + angle_coeff @angle:025_015_025 5.0 109.47 + angle_coeff @angle:013_015_025 10.0 109.47 + angle_coeff @angle:033_015_033 10.0 160.0 + angle_coeff @angle:002_015_033 150.0 96.7 + angle_coeff @angle:006_015_033 150.0 96.7 + angle_coeff @angle:013_015_033 150.0 96.7 + angle_coeff @angle:017_015_033 150.0 96.7 + angle_coeff @angle:017_015_048 50.0 96.0 + angle_coeff @angle:002_016_006 62.0 98.9 + angle_coeff @angle:013_016_013 62.0 98.9 + angle_coeff @angle:002_016_016 68.0 103.7 + angle_coeff @angle:006_016_016 68.0 103.7 + angle_coeff @angle:013_016_016 68.0 103.7 + angle_coeff @angle:013_016_019 65.0 100.0 + angle_coeff @angle:025_016_025 5.0 109.47 + angle_coeff @angle:013_016_025 10.0 109.47 + angle_coeff @angle:033_016_033 10.0 160.0 + angle_coeff @angle:002_016_033 150.0 96.7 + angle_coeff @angle:006_016_033 150.0 96.7 + angle_coeff @angle:013_016_033 150.0 96.7 + angle_coeff @angle:016_016_033 150.0 96.7 + angle_coeff @angle:013_016_048 62.0 104.2 + angle_coeff @angle:047_016_048 62.0 104.2 + angle_coeff @angle:024_016_060 74.0 92.4 + angle_coeff @angle:025_016_061 10.0 130.0 + angle_coeff @angle:025_016_082 10.0 130.0 + angle_coeff @angle:060_016_082 74.0 97.0 + angle_coeff @angle:025_016_084 10.0 130.0 + angle_coeff @angle:082_016_084 74.0 90.0 + angle_coeff @angle:060_016_084 74.0 97.0 + angle_coeff @angle:084_016_084 74.0 97.0 + angle_coeff @angle:013_016_091 62.0 94.0 + angle_coeff @angle:015_017_025 10.0 109.47 + angle_coeff @angle:025_017_025 33.0 109.47 + angle_coeff @angle:013_018_019 150.0 180.0 + angle_coeff @angle:019_018_048 170.0 180.0 + angle_coeff @angle:018_018_056 100.0 180.0 + angle_coeff @angle:013_019_018 150.0 180.0 + angle_coeff @angle:016_019_019 140.0 180.0 + angle_coeff @angle:013_019_019 150.0 180.0 + angle_coeff @angle:018_019_025 10.0 90.0 + angle_coeff @angle:019_019_046 112.0 180.0 + angle_coeff @angle:018_019_047 150.0 180.0 + angle_coeff @angle:019_019_047 160.0 180.0 + angle_coeff @angle:018_019_048 150.0 180.0 + angle_coeff @angle:019_019_048 160.0 180.0 + angle_coeff @angle:019_019_050 160.0 180.0 + angle_coeff @angle:018_019_055 150.0 180.0 + angle_coeff @angle:018_019_088 150.0 180.0 + angle_coeff @angle:002_020_002 100.0 111.8 + angle_coeff @angle:002_020_003 83.0 116.9 + angle_coeff @angle:003_020_006 83.0 116.9 + angle_coeff @angle:002_020_006 100.0 111.8 + angle_coeff @angle:002_020_007 55.0 108.5 + angle_coeff @angle:007_020_010 55.0 108.5 + angle_coeff @angle:003_020_010 83.0 116.9 + angle_coeff @angle:010_020_010 100.0 111.8 + angle_coeff @angle:013_020_013 60.0 109.5 + angle_coeff @angle:003_020_013 83.0 116.9 + angle_coeff @angle:025_020_025 5.0 109.47 + angle_coeff @angle:013_020_025 10.0 109.47 + angle_coeff @angle:013_020_047 75.0 111.0 + angle_coeff @angle:025_020_048 10.0 109.47 + angle_coeff @angle:013_020_048 75.0 111.0 + angle_coeff @angle:047_020_048 75.0 111.0 + angle_coeff @angle:048_020_048 75.0 111.0 + angle_coeff @angle:003_020_048 83.0 116.9 + angle_coeff @angle:002_020_048 100.0 111.8 + angle_coeff @angle:013_020_051 60.0 109.5 + angle_coeff @angle:002_020_051 100.0 113.0 + angle_coeff @angle:006_020_051 100.0 113.0 + angle_coeff @angle:010_020_051 100.0 113.0 + angle_coeff @angle:024_020_060 70.0 104.5 + angle_coeff @angle:025_020_061 10.0 125.0 + angle_coeff @angle:002_020_064 100.0 120.5 + angle_coeff @angle:006_020_064 100.0 120.5 + angle_coeff @angle:010_020_064 100.0 120.5 + angle_coeff @angle:013_020_064 100.0 120.5 + angle_coeff @angle:048_020_064 100.0 120.5 + angle_coeff @angle:064_020_064 100.0 120.5 + angle_coeff @angle:025_020_082 10.0 125.0 + angle_coeff @angle:060_020_082 70.0 106.5 + angle_coeff @angle:082_020_082 70.0 107.0 + angle_coeff @angle:025_020_084 10.0 125.0 + angle_coeff @angle:082_020_084 70.0 104.0 + angle_coeff @angle:060_020_084 70.0 106.5 + angle_coeff @angle:084_020_084 70.0 106.5 + angle_coeff @angle:061_020_084 70.0 108.9 + angle_coeff @angle:108_020_108 20.0 145.0 + angle_coeff @angle:013_020_108 40.0 130.0 + angle_coeff @angle:025_021_025 33.0 109.47 + angle_coeff @angle:013_022_013 62.0 96.0 + angle_coeff @angle:013_022_023 74.0 107.0 + angle_coeff @angle:023_022_025 10.0 90.0 + angle_coeff @angle:002_024_003 50.0 121.9 + angle_coeff @angle:003_024_003 70.0 126.4 + angle_coeff @angle:003_024_005 46.0 115.7 + angle_coeff @angle:002_024_006 50.0 121.9 + angle_coeff @angle:003_024_006 50.0 121.9 + angle_coeff @angle:002_024_010 50.0 118.0 + angle_coeff @angle:003_024_010 50.0 121.9 + angle_coeff @angle:013_024_013 50.0 118.0 + angle_coeff @angle:003_024_013 50.0 121.9 + angle_coeff @angle:003_024_016 70.0 112.0 + angle_coeff @angle:003_024_020 70.0 108.6 + angle_coeff @angle:003_024_025 10.0 109.5 + angle_coeff @angle:025_024_045 10.0 100.0 + angle_coeff @angle:005_024_045 35.0 110.2 + angle_coeff @angle:003_024_045 35.0 119.8 + angle_coeff @angle:045_024_045 35.0 120.0 + angle_coeff @angle:002_024_045 38.0 118.4 + angle_coeff @angle:006_024_045 38.0 118.4 + angle_coeff @angle:010_024_045 38.0 118.4 + angle_coeff @angle:013_024_045 38.0 118.4 + angle_coeff @angle:045_024_048 35.0 119.8 + angle_coeff @angle:013_024_048 50.0 118.0 + angle_coeff @angle:003_024_048 50.0 121.9 + angle_coeff @angle:048_024_048 70.0 118.0 + angle_coeff @angle:054_024_054 35.0 120.0 + angle_coeff @angle:045_024_059 35.0 118.0 + angle_coeff @angle:003_024_059 70.0 125.2 + angle_coeff @angle:013_024_079 50.0 120.0 + angle_coeff @angle:045_024_079 100.0 111.0 + angle_coeff @angle:045_024_084 35.0 119.8 + angle_coeff @angle:048_024_084 70.0 118.0 + angle_coeff @angle:016_024_086 70.0 117.0 + angle_coeff @angle:045_024_087 35.0 119.8 + angle_coeff @angle:048_024_087 70.0 118.0 + angle_coeff @angle:045_024_088 35.0 119.8 + angle_coeff @angle:048_024_088 70.0 118.0 + angle_coeff @angle:045_024_091 40.0 113.0 + angle_coeff @angle:003_024_091 55.0 128.0 + angle_coeff @angle:048_024_103 70.0 121.0 + angle_coeff @angle:003_024_106 20.0 126.0 + angle_coeff @angle:025_025_025 33.0 109.47 + angle_coeff @angle:032_031_032 75.0 104.52 + angle_coeff @angle:032_031_033 50.0 52.26 + angle_coeff @angle:035_034_035 34.05 104.52 + angle_coeff @angle:037_036_037 75.0 109.5 + angle_coeff @angle:037_036_038 50.0 54.75 + angle_coeff @angle:040_039_040 75.0 104.52 + angle_coeff @angle:041_039_041 50.0 109.47 + angle_coeff @angle:040_039_041 50.0 110.6948 + angle_coeff @angle:043_042_043 75.0 109.47 + angle_coeff @angle:002_044_002 51.8 107.2 + angle_coeff @angle:002_044_006 51.8 107.2 + angle_coeff @angle:006_044_006 51.8 107.2 + angle_coeff @angle:002_044_010 51.8 107.2 + angle_coeff @angle:006_044_010 51.8 107.2 + angle_coeff @angle:010_044_010 51.8 107.2 + angle_coeff @angle:002_044_013 51.8 107.2 + angle_coeff @angle:006_044_013 51.8 107.2 + angle_coeff @angle:010_044_013 51.8 107.2 + angle_coeff @angle:013_044_013 51.8 107.2 + angle_coeff @angle:003_044_013 63.0 111.1 + angle_coeff @angle:025_044_045 10.0 100.0 + angle_coeff @angle:013_044_045 35.0 109.5 + angle_coeff @angle:002_044_045 43.2 108.1 + angle_coeff @angle:006_044_045 43.2 108.1 + angle_coeff @angle:010_044_045 43.2 108.1 + angle_coeff @angle:045_044_045 43.6 106.4 + angle_coeff @angle:025_044_048 10.0 109.5 + angle_coeff @angle:045_044_048 35.0 116.0 + angle_coeff @angle:013_044_048 50.0 116.0 + angle_coeff @angle:048_044_048 50.0 116.0 + angle_coeff @angle:003_044_048 63.0 112.0 + angle_coeff @angle:045_044_079 35.0 115.0 + angle_coeff @angle:013_044_079 50.0 108.6 + angle_coeff @angle:048_044_079 50.0 108.6 + angle_coeff @angle:048_044_091 50.0 109.5 + angle_coeff @angle:025_045_025 33.0 109.47 + angle_coeff @angle:025_045_044 10.0 109.5 + angle_coeff @angle:025_046_025 33.0 109.47 + angle_coeff @angle:013_046_025 37.5 109.47 + angle_coeff @angle:001_047_001 80.0 108.0 + angle_coeff @angle:001_047_003 80.0 121.5 + angle_coeff @angle:003_047_006 85.0 119.7 + angle_coeff @angle:003_047_013 70.0 119.7 + angle_coeff @angle:013_047_013 70.0 130.0 + angle_coeff @angle:025_047_046 10.0 90.0 + angle_coeff @angle:020_047_046 35.0 114.5 + angle_coeff @angle:013_047_046 35.0 117.0 + angle_coeff @angle:046_047_046 35.0 117.0 + angle_coeff @angle:003_047_046 35.0 119.7 + angle_coeff @angle:019_047_046 35.0 120.0 + angle_coeff @angle:001_047_046 50.0 112.0 + angle_coeff @angle:021_047_046 60.0 114.0 + angle_coeff @angle:025_047_047 2.0 90.0 + angle_coeff @angle:046_047_047 35.0 120.0 + angle_coeff @angle:005_047_047 70.0 123.0 + angle_coeff @angle:020_047_047 70.0 123.0 + angle_coeff @angle:013_047_047 70.0 124.0 + angle_coeff @angle:019_047_047 70.0 124.0 + angle_coeff @angle:021_047_047 75.0 121.5 + angle_coeff @angle:001_047_047 80.0 121.5 + angle_coeff @angle:016_047_047 85.0 119.4 + angle_coeff @angle:003_047_047 85.0 120.7 + angle_coeff @angle:046_047_048 35.0 123.3 + angle_coeff @angle:047_047_048 85.0 117.0 + angle_coeff @angle:013_047_048 85.0 119.7 + angle_coeff @angle:025_047_050 2.0 90.0 + angle_coeff @angle:046_047_050 35.0 120.0 + angle_coeff @angle:005_047_050 70.0 123.0 + angle_coeff @angle:020_047_050 70.0 123.0 + angle_coeff @angle:013_047_050 70.0 124.0 + angle_coeff @angle:046_047_057 35.0 119.1 + angle_coeff @angle:013_047_057 70.0 120.0 + angle_coeff @angle:020_047_057 70.0 120.0 + angle_coeff @angle:047_047_057 70.0 121.2 + angle_coeff @angle:016_047_057 85.0 119.4 + angle_coeff @angle:057_047_058 35.0 119.1 + angle_coeff @angle:047_047_058 35.0 119.7 + angle_coeff @angle:046_047_065 60.0 114.0 + angle_coeff @angle:047_047_065 75.0 120.0 + angle_coeff @angle:046_047_091 35.0 135.0 + angle_coeff @angle:003_047_091 70.0 119.7 + angle_coeff @angle:047_047_091 70.0 124.0 + angle_coeff @angle:046_047_105 35.0 119.1 + angle_coeff @angle:058_047_105 35.0 119.1 + angle_coeff @angle:013_047_105 70.0 120.0 + angle_coeff @angle:020_047_105 70.0 120.0 + angle_coeff @angle:047_047_105 70.0 121.2 + angle_coeff @angle:016_047_105 85.0 119.4 + angle_coeff @angle:046_047_110 40.0 121.0 + angle_coeff @angle:013_047_110 80.0 122.0 + angle_coeff @angle:048_047_110 80.0 122.0 + angle_coeff @angle:001_047_110 80.0 125.0 + angle_coeff @angle:002_048_012 70.0 120.0 + angle_coeff @angle:012_048_012 85.0 120.0 + angle_coeff @angle:003_048_013 70.0 119.7 + angle_coeff @angle:025_048_048 10.0 90.0 + angle_coeff @angle:048_048_048 63.0 120.0 + angle_coeff @angle:002_048_048 70.0 120.0 + angle_coeff @angle:005_048_048 70.0 120.0 + angle_coeff @angle:010_048_048 70.0 120.0 + angle_coeff @angle:013_048_048 70.0 120.0 + angle_coeff @angle:015_048_048 70.0 120.0 + angle_coeff @angle:019_048_048 70.0 120.0 + angle_coeff @angle:020_048_048 70.0 120.0 + angle_coeff @angle:024_048_048 70.0 120.0 + angle_coeff @angle:044_048_048 70.0 120.0 + angle_coeff @angle:047_048_048 70.0 124.0 + angle_coeff @angle:021_048_048 75.0 120.0 + angle_coeff @angle:001_048_048 80.0 120.0 + angle_coeff @angle:018_048_048 80.0 120.0 + angle_coeff @angle:016_048_048 85.0 119.4 + angle_coeff @angle:003_048_048 85.0 120.0 + angle_coeff @angle:025_048_049 2.0 90.0 + angle_coeff @angle:024_048_049 35.0 119.1 + angle_coeff @angle:003_048_049 35.0 120.0 + angle_coeff @angle:048_048_049 35.0 120.0 + angle_coeff @angle:048_048_050 70.0 124.0 + angle_coeff @angle:048_048_053 70.0 120.0 + angle_coeff @angle:055_048_055 70.0 120.0 + angle_coeff @angle:047_048_055 70.0 120.1 + angle_coeff @angle:048_048_055 70.0 120.1 + angle_coeff @angle:049_048_056 35.0 116.0 + angle_coeff @angle:013_048_056 70.0 116.0 + angle_coeff @angle:044_048_056 70.0 116.0 + angle_coeff @angle:055_048_056 70.0 119.3 + angle_coeff @angle:005_048_056 70.0 120.0 + angle_coeff @angle:047_048_056 70.0 121.5 + angle_coeff @angle:050_048_056 70.0 121.5 + angle_coeff @angle:048_048_056 70.0 124.0 + angle_coeff @angle:021_048_056 75.0 120.0 + angle_coeff @angle:049_048_057 35.0 120.0 + angle_coeff @angle:048_048_057 70.0 108.7 + angle_coeff @angle:055_048_057 70.0 116.0 + angle_coeff @angle:013_048_057 70.0 120.0 + angle_coeff @angle:047_048_057 70.0 121.5 + angle_coeff @angle:056_048_057 70.0 123.3 + angle_coeff @angle:049_048_060 35.0 120.0 + angle_coeff @angle:048_048_060 63.0 120.0 + angle_coeff @angle:057_048_060 70.0 108.7 + angle_coeff @angle:056_048_060 70.0 117.3 + angle_coeff @angle:055_048_060 70.0 123.5 + angle_coeff @angle:002_048_060 70.0 128.6 + angle_coeff @angle:013_048_060 70.0 128.6 + angle_coeff @angle:049_048_061 35.0 119.1 + angle_coeff @angle:048_048_061 70.0 108.7 + angle_coeff @angle:057_048_061 70.0 123.3 + angle_coeff @angle:048_048_064 85.0 119.4 + angle_coeff @angle:048_048_065 75.0 120.0 + angle_coeff @angle:048_048_066 75.0 120.0 + angle_coeff @angle:048_048_079 85.0 119.4 + angle_coeff @angle:049_048_081 35.0 120.0 + angle_coeff @angle:048_048_081 85.0 120.0 + angle_coeff @angle:049_048_084 35.0 126.9 + angle_coeff @angle:060_048_084 63.0 106.4 + angle_coeff @angle:048_048_084 70.0 107.4 + angle_coeff @angle:049_048_086 35.0 120.0 + angle_coeff @angle:048_048_086 63.0 120.0 + angle_coeff @angle:056_048_086 70.0 124.0 + angle_coeff @angle:049_048_088 35.0 128.2 + angle_coeff @angle:101_048_101 70.0 111.8 + angle_coeff @angle:056_048_101 70.0 124.1 + angle_coeff @angle:048_048_102 85.0 120.0 + angle_coeff @angle:048_048_109 70.0 124.0 + angle_coeff @angle:025_050_046 10.0 90.0 + angle_coeff @angle:019_050_046 35.0 120.0 + angle_coeff @angle:025_050_047 2.0 90.0 + angle_coeff @angle:046_050_047 35.0 120.0 + angle_coeff @angle:003_050_047 70.0 118.7 + angle_coeff @angle:013_050_047 70.0 124.0 + angle_coeff @angle:046_050_048 35.0 123.3 + angle_coeff @angle:047_050_048 85.0 117.0 + angle_coeff @angle:025_050_050 2.0 90.0 + angle_coeff @angle:046_050_050 35.0 120.0 + angle_coeff @angle:013_050_050 70.0 124.0 + angle_coeff @angle:047_050_050 70.0 124.0 + angle_coeff @angle:050_050_084 35.0 106.0 + angle_coeff @angle:046_050_084 35.0 122.0 + angle_coeff @angle:046_050_109 35.0 120.0 + angle_coeff @angle:013_050_109 70.0 124.0 + angle_coeff @angle:047_050_109 70.0 124.0 + angle_coeff @angle:006_051_006 40.0 109.5 + angle_coeff @angle:005_051_013 50.0 109.5 + angle_coeff @angle:013_051_020 50.0 109.5 + angle_coeff @angle:002_051_020 80.0 109.5 + angle_coeff @angle:006_051_020 80.0 109.5 + angle_coeff @angle:005_051_020 92.6 111.55 + angle_coeff @angle:020_051_020 92.6 111.55 + angle_coeff @angle:046_051_046 33.0 109.5 + angle_coeff @angle:005_051_046 35.0 109.5 + angle_coeff @angle:020_051_046 35.0 109.5 + angle_coeff @angle:013_051_046 37.5 110.7 + angle_coeff @angle:046_051_105 35.0 109.5 + angle_coeff @angle:013_051_105 50.0 109.5 + angle_coeff @angle:020_051_105 50.0 109.5 + angle_coeff @angle:013_053_013 50.0 113.0 + angle_coeff @angle:013_053_025 10.0 100.0 + angle_coeff @angle:045_053_045 43.6 109.5 + angle_coeff @angle:025_053_048 10.0 100.0 + angle_coeff @angle:013_053_048 55.0 114.0 + angle_coeff @angle:002_053_054 35.0 109.5 + angle_coeff @angle:006_053_054 35.0 109.5 + angle_coeff @angle:013_053_054 35.0 109.5 + angle_coeff @angle:048_053_054 35.0 109.5 + angle_coeff @angle:054_053_054 35.0 109.5 + angle_coeff @angle:025_053_082 10.0 100.0 + angle_coeff @angle:013_055_013 50.0 118.0 + angle_coeff @angle:045_055_045 35.0 113.0 + angle_coeff @angle:013_055_045 35.0 118.4 + angle_coeff @angle:045_055_048 35.0 120.0 + angle_coeff @angle:002_055_048 50.0 123.2 + angle_coeff @angle:006_055_048 50.0 123.2 + angle_coeff @angle:013_055_048 50.0 123.2 + angle_coeff @angle:002_055_054 35.0 118.4 + angle_coeff @angle:013_055_054 35.0 118.4 + angle_coeff @angle:048_055_054 35.0 120.0 + angle_coeff @angle:054_055_054 35.0 120.0 + angle_coeff @angle:045_055_059 35.0 120.0 + angle_coeff @angle:003_056_013 70.0 120.5 + angle_coeff @angle:013_056_018 70.0 120.0 + angle_coeff @angle:025_056_048 5.0 120.0 + angle_coeff @angle:045_056_048 35.0 113.0 + angle_coeff @angle:013_056_048 50.0 118.0 + angle_coeff @angle:048_056_048 70.0 117.0 + angle_coeff @angle:003_056_048 70.0 120.5 + angle_coeff @angle:013_056_056 70.0 117.0 + angle_coeff @angle:048_056_056 70.0 117.0 + angle_coeff @angle:025_056_059 5.0 119.8 + angle_coeff @angle:048_056_059 70.0 118.6 + angle_coeff @angle:059_056_059 70.0 118.6 + angle_coeff @angle:059_056_060 70.0 111.0 + angle_coeff @angle:048_056_060 70.0 112.2 + angle_coeff @angle:059_056_082 70.0 111.0 + angle_coeff @angle:048_056_086 70.0 117.0 + angle_coeff @angle:013_056_103 70.0 114.0 + angle_coeff @angle:003_057_003 70.0 126.4 + angle_coeff @angle:003_057_045 35.0 116.8 + angle_coeff @angle:045_057_047 35.0 119.2 + angle_coeff @angle:003_057_047 70.0 121.6 + angle_coeff @angle:045_057_048 35.0 118.0 + angle_coeff @angle:003_057_048 70.0 125.2 + angle_coeff @angle:048_057_048 70.0 125.2 + angle_coeff @angle:045_057_060 30.0 125.8 + angle_coeff @angle:013_057_060 70.0 125.8 + angle_coeff @angle:060_057_061 56.0 113.1 + angle_coeff @angle:045_057_061 56.0 118.4 + angle_coeff @angle:013_057_061 70.0 118.4 + angle_coeff @angle:048_057_061 70.0 118.4 + angle_coeff @angle:045_057_062 30.0 128.8 + angle_coeff @angle:060_057_062 70.0 105.4 + angle_coeff @angle:048_057_062 70.0 109.8 + angle_coeff @angle:013_057_062 70.0 128.8 + angle_coeff @angle:045_057_081 35.0 123.1 + angle_coeff @angle:045_057_082 35.0 120.0 + angle_coeff @angle:061_057_082 56.0 113.1 + angle_coeff @angle:060_057_082 70.0 109.8 + angle_coeff @angle:045_057_084 35.0 120.0 + angle_coeff @angle:061_057_084 56.0 113.1 + angle_coeff @angle:060_057_084 70.0 109.8 + angle_coeff @angle:082_057_084 70.0 109.8 + angle_coeff @angle:084_057_084 70.0 109.8 + angle_coeff @angle:081_057_084 70.0 111.6 + angle_coeff @angle:045_057_085 35.0 120.0 + angle_coeff @angle:082_057_085 70.0 109.8 + angle_coeff @angle:024_059_055 70.0 116.0 + angle_coeff @angle:049_059_056 35.0 115.45 + angle_coeff @angle:013_059_056 70.0 115.5 + angle_coeff @angle:055_059_056 70.0 119.3 + angle_coeff @angle:024_059_056 70.0 123.3 + angle_coeff @angle:056_059_056 70.0 129.1 + angle_coeff @angle:056_059_063 35.0 115.45 + angle_coeff @angle:013_060_048 70.0 120.0 + angle_coeff @angle:048_060_048 85.0 134.9 + angle_coeff @angle:056_060_057 70.0 126.2 + angle_coeff @angle:057_060_060 70.0 106.2 + angle_coeff @angle:020_060_060 70.0 110.6 + angle_coeff @angle:016_060_060 70.0 111.0 + angle_coeff @angle:013_060_060 70.0 120.0 + angle_coeff @angle:024_060_060 70.0 127.7 + angle_coeff @angle:056_060_060 70.0 127.7 + angle_coeff @angle:048_060_060 85.0 117.3 + angle_coeff @angle:003_060_060 85.0 119.2 + angle_coeff @angle:060_060_061 70.0 111.0 + angle_coeff @angle:024_060_061 70.0 126.2 + angle_coeff @angle:003_060_061 70.0 130.0 + angle_coeff @angle:048_060_061 70.0 132.4 + angle_coeff @angle:012_060_080 85.0 134.9 + angle_coeff @angle:048_060_080 85.0 134.9 + angle_coeff @angle:080_060_081 85.0 108.8 + angle_coeff @angle:012_060_081 85.0 116.2 + angle_coeff @angle:048_060_081 85.0 116.2 + angle_coeff @angle:003_060_084 70.0 130.0 + angle_coeff @angle:060_060_087 70.0 107.3 + angle_coeff @angle:057_060_087 70.0 107.7 + angle_coeff @angle:081_060_087 85.0 108.8 + angle_coeff @angle:012_060_087 85.0 134.9 + angle_coeff @angle:048_060_087 85.0 134.9 + angle_coeff @angle:060_060_105 70.0 106.2 + angle_coeff @angle:056_060_105 70.0 126.2 + angle_coeff @angle:048_061_048 70.0 125.2 + angle_coeff @angle:025_061_057 10.0 125.0 + angle_coeff @angle:025_061_061 10.0 125.0 + angle_coeff @angle:060_061_062 70.0 103.8 + angle_coeff @angle:025_061_082 10.0 125.0 + angle_coeff @angle:061_061_082 70.0 109.0 + angle_coeff @angle:060_061_082 70.0 110.0 + angle_coeff @angle:082_061_083 70.0 110.0 + angle_coeff @angle:057_061_084 70.0 104.1 + angle_coeff @angle:082_061_084 70.0 110.0 + angle_coeff @angle:057_061_088 70.0 104.1 + angle_coeff @angle:020_061_088 70.0 105.3 + angle_coeff @angle:049_062_057 35.0 120.0 + angle_coeff @angle:049_062_061 35.0 120.0 + angle_coeff @angle:057_062_061 70.0 113.9 + angle_coeff @angle:057_062_063 35.0 123.05 + angle_coeff @angle:061_062_063 35.0 123.05 + angle_coeff @angle:049_062_105 35.0 120.0 + angle_coeff @angle:063_062_105 35.0 123.05 + angle_coeff @angle:061_062_105 70.0 113.9 + angle_coeff @angle:005_064_005 45.0 102.6 + angle_coeff @angle:004_064_005 100.0 108.23 + angle_coeff @angle:004_064_013 45.0 109.5 + angle_coeff @angle:005_064_020 45.0 102.6 + angle_coeff @angle:020_064_020 45.0 102.6 + angle_coeff @angle:013_064_020 45.0 109.5 + angle_coeff @angle:004_064_020 100.0 108.23 + angle_coeff @angle:004_064_048 45.0 109.5 + angle_coeff @angle:005_064_048 45.0 109.5 + angle_coeff @angle:020_064_048 45.0 109.5 + angle_coeff @angle:005_064_052 45.0 108.23 + angle_coeff @angle:013_064_052 45.0 109.5 + angle_coeff @angle:020_064_052 100.0 108.23 + angle_coeff @angle:052_064_052 140.0 119.9 + angle_coeff @angle:025_065_025 33.0 109.47 + angle_coeff @angle:025_066_025 33.0 109.47 + angle_coeff @angle:078_077_078 150.0 180.0 + angle_coeff @angle:006_079_011 62.0 98.9 + angle_coeff @angle:013_079_013 62.0 102.0 + angle_coeff @angle:005_079_013 75.0 96.4 + angle_coeff @angle:005_079_023 74.0 108.7 + angle_coeff @angle:013_079_023 74.0 108.9 + angle_coeff @angle:023_079_023 104.0 119.0 + angle_coeff @angle:013_079_024 100.0 103.0 + angle_coeff @angle:023_079_024 120.0 107.0 + angle_coeff @angle:013_079_044 62.0 102.0 + angle_coeff @angle:023_079_044 74.0 108.9 + angle_coeff @angle:013_079_048 62.0 102.0 + angle_coeff @angle:023_079_048 74.0 107.2 + angle_coeff @angle:005_079_048 75.0 96.4 + angle_coeff @angle:024_079_048 100.0 103.0 + angle_coeff @angle:013_079_082 62.0 102.0 + angle_coeff @angle:046_080_060 35.0 126.8 + angle_coeff @angle:002_080_060 70.0 128.6 + angle_coeff @angle:013_080_060 70.0 128.6 + angle_coeff @angle:046_080_084 35.0 126.8 + angle_coeff @angle:002_080_084 70.0 125.0 + angle_coeff @angle:013_080_084 70.0 125.0 + angle_coeff @angle:060_080_084 85.0 106.4 + angle_coeff @angle:012_081_057 70.0 132.8 + angle_coeff @angle:048_081_057 70.0 132.8 + angle_coeff @angle:057_081_060 70.0 104.4 + angle_coeff @angle:012_081_060 85.0 122.7 + angle_coeff @angle:048_081_060 85.0 122.7 + angle_coeff @angle:013_082_016 70.0 125.0 + angle_coeff @angle:016_082_024 70.0 125.0 + angle_coeff @angle:016_082_044 70.0 120.2 + angle_coeff @angle:020_082_049 35.0 117.0 + angle_coeff @angle:016_082_049 35.0 125.0 + angle_coeff @angle:049_082_057 35.0 120.0 + angle_coeff @angle:057_082_057 70.0 120.0 + angle_coeff @angle:013_082_057 70.0 125.0 + angle_coeff @angle:048_082_057 70.0 125.0 + angle_coeff @angle:056_082_057 70.0 126.2 + angle_coeff @angle:049_082_061 35.0 120.0 + angle_coeff @angle:016_082_061 70.0 115.0 + angle_coeff @angle:020_082_061 70.0 115.0 + angle_coeff @angle:057_082_061 70.0 120.0 + angle_coeff @angle:013_082_061 70.0 125.0 + angle_coeff @angle:044_082_061 70.0 126.1 + angle_coeff @angle:024_082_061 70.0 126.2 + angle_coeff @angle:057_082_079 70.0 120.0 + angle_coeff @angle:061_082_079 70.0 120.0 + angle_coeff @angle:020_082_086 70.0 122.0 + angle_coeff @angle:061_082_086 70.0 130.0 + angle_coeff @angle:057_082_087 70.0 106.2 + angle_coeff @angle:056_082_087 70.0 127.7 + angle_coeff @angle:049_083_061 35.0 120.0 + angle_coeff @angle:048_083_061 70.0 111.0 + angle_coeff @angle:013_083_061 70.0 124.5 + angle_coeff @angle:049_083_084 35.0 128.2 + angle_coeff @angle:061_083_084 70.0 111.0 + angle_coeff @angle:013_083_084 70.0 130.7 + angle_coeff @angle:013_084_016 70.0 125.0 + angle_coeff @angle:013_084_020 70.0 121.6 + angle_coeff @angle:016_084_024 70.0 125.0 + angle_coeff @angle:020_084_049 35.0 113.4 + angle_coeff @angle:016_084_049 35.0 125.0 + angle_coeff @angle:048_084_049 35.0 130.7 + angle_coeff @angle:049_084_050 35.0 130.7 + angle_coeff @angle:020_084_050 70.0 110.0 + angle_coeff @angle:049_084_057 35.0 121.6 + angle_coeff @angle:013_084_057 70.0 121.6 + angle_coeff @angle:048_084_057 70.0 121.6 + angle_coeff @angle:003_084_057 85.0 120.0 + angle_coeff @angle:057_084_058 35.0 120.0 + angle_coeff @angle:013_084_061 70.0 118.9 + angle_coeff @angle:049_084_080 35.0 120.0 + angle_coeff @angle:057_084_080 70.0 108.7 + angle_coeff @angle:049_084_083 35.0 130.7 + angle_coeff @angle:057_084_083 70.0 106.3 + angle_coeff @angle:020_084_083 70.0 108.0 + angle_coeff @angle:016_084_083 70.0 111.0 + angle_coeff @angle:013_084_083 70.0 130.7 + angle_coeff @angle:013_084_084 70.0 120.0 + angle_coeff @angle:057_084_084 70.0 120.0 + angle_coeff @angle:061_084_084 70.0 120.0 + angle_coeff @angle:020_084_086 70.0 121.6 + angle_coeff @angle:057_084_086 70.0 121.6 + angle_coeff @angle:049_084_087 35.0 132.1 + angle_coeff @angle:057_084_087 70.0 107.7 + angle_coeff @angle:020_084_087 70.0 110.6 + angle_coeff @angle:016_084_087 70.0 111.0 + angle_coeff @angle:061_084_087 70.0 111.9 + angle_coeff @angle:013_084_087 70.0 132.1 + angle_coeff @angle:048_084_087 70.0 132.1 + angle_coeff @angle:086_084_087 70.0 132.1 + angle_coeff @angle:003_084_087 85.0 120.0 + angle_coeff @angle:049_085_057 35.0 120.0 + angle_coeff @angle:013_085_057 70.0 121.6 + angle_coeff @angle:049_085_085 35.0 130.7 + angle_coeff @angle:057_085_085 70.0 106.3 + angle_coeff @angle:013_085_085 70.0 130.7 + angle_coeff @angle:048_086_048 63.0 120.0 + angle_coeff @angle:048_086_056 70.0 124.0 + angle_coeff @angle:048_086_082 63.0 120.0 + angle_coeff @angle:048_086_083 63.0 120.0 + angle_coeff @angle:048_086_084 63.0 120.0 + angle_coeff @angle:048_086_086 63.0 120.0 + angle_coeff @angle:056_086_086 70.0 124.0 + angle_coeff @angle:048_086_087 63.0 120.0 + angle_coeff @angle:048_086_088 63.0 120.0 + angle_coeff @angle:049_087_060 35.0 120.0 + angle_coeff @angle:046_087_060 35.0 126.8 + angle_coeff @angle:013_087_060 70.0 128.6 + angle_coeff @angle:049_087_084 35.0 125.7 + angle_coeff @angle:046_087_084 35.0 126.8 + angle_coeff @angle:084_087_084 70.0 103.8 + angle_coeff @angle:082_087_084 70.0 110.4 + angle_coeff @angle:002_087_084 70.0 125.0 + angle_coeff @angle:013_087_084 70.0 125.0 + angle_coeff @angle:003_087_084 70.0 130.0 + angle_coeff @angle:060_087_084 85.0 106.4 + angle_coeff @angle:084_087_086 70.0 125.7 + angle_coeff @angle:049_087_087 35.0 127.5 + angle_coeff @angle:060_087_087 70.0 107.3 + angle_coeff @angle:084_087_087 70.0 107.3 + angle_coeff @angle:086_087_087 70.0 127.5 + angle_coeff @angle:084_087_088 70.0 103.8 + angle_coeff @angle:048_088_049 35.0 128.6 + angle_coeff @angle:049_088_061 35.0 118.9 + angle_coeff @angle:013_088_061 70.0 118.9 + angle_coeff @angle:019_088_061 70.0 118.9 + angle_coeff @angle:061_088_087 70.0 111.9 + angle_coeff @angle:004_089_090 80.0 134.0 + angle_coeff @angle:090_089_091 70.0 91.0 + angle_coeff @angle:004_089_091 80.0 134.0 + angle_coeff @angle:013_090_089 55.0 127.0 + angle_coeff @angle:089_090_091 50.0 94.0 + angle_coeff @angle:013_090_091 50.0 126.0 + angle_coeff @angle:024_091_046 35.0 108.0 + angle_coeff @angle:013_091_046 35.0 114.3 + angle_coeff @angle:044_091_046 35.0 114.3 + angle_coeff @angle:046_091_046 35.0 114.3 + angle_coeff @angle:016_091_046 37.5 108.0 + angle_coeff @angle:046_091_047 35.0 109.5 + angle_coeff @angle:046_091_089 37.5 110.0 + angle_coeff @angle:024_091_089 70.0 117.0 + angle_coeff @angle:046_091_090 35.0 111.0 + angle_coeff @angle:016_091_090 55.0 109.0 + angle_coeff @angle:091_091_091 30.0 79.2 + angle_coeff @angle:013_091_091 37.5 117.2 + angle_coeff @angle:044_091_091 37.5 117.2 + angle_coeff @angle:046_091_091 37.5 117.2 + angle_coeff @angle:024_091_091 37.5 126.0 + angle_coeff @angle:016_091_091 55.0 128.0 + angle_coeff @angle:089_091_091 63.0 85.0 + angle_coeff @angle:047_091_091 63.0 114.0 + angle_coeff @angle:090_091_091 80.0 89.0 + angle_coeff @angle:013_095_013 172.8 120.0 + angle_coeff @angle:013_095_046 144.0 120.0 + angle_coeff @angle:013_101_045 35.0 109.5 + angle_coeff @angle:045_101_045 43.6 106.4 + angle_coeff @angle:045_101_048 50.0 112.5 + angle_coeff @angle:013_101_048 50.0 120.5 + angle_coeff @angle:013_102_103 80.0 117.5 + angle_coeff @angle:048_102_103 80.0 117.5 + angle_coeff @angle:103_102_103 80.0 125.0 + angle_coeff @angle:025_103_025 10.0 109.5 + angle_coeff @angle:025_103_102 10.0 109.5 + angle_coeff @angle:013_104_013 45.0 109.5 + angle_coeff @angle:003_105_010 70.0 117.6 + angle_coeff @angle:003_105_013 70.0 117.6 + angle_coeff @angle:003_105_045 35.0 119.2 + angle_coeff @angle:045_105_047 35.0 119.2 + angle_coeff @angle:013_105_047 70.0 121.2 + angle_coeff @angle:003_105_047 70.0 121.6 + angle_coeff @angle:003_105_051 70.0 117.6 + angle_coeff @angle:047_105_051 70.0 121.2 + angle_coeff @angle:045_105_060 30.0 125.8 + angle_coeff @angle:006_105_060 70.0 125.8 + angle_coeff @angle:010_105_060 70.0 125.8 + angle_coeff @angle:013_105_060 70.0 125.8 + angle_coeff @angle:051_105_060 70.0 125.8 + angle_coeff @angle:045_105_062 30.0 128.8 + angle_coeff @angle:060_105_062 70.0 105.4 + angle_coeff @angle:006_105_062 70.0 128.8 + angle_coeff @angle:010_105_062 70.0 128.8 + angle_coeff @angle:013_105_062 70.0 128.8 + angle_coeff @angle:051_105_062 70.0 128.8 + angle_coeff @angle:004_106_024 20.0 109.5 + angle_coeff @angle:024_106_024 20.0 109.5 + angle_coeff @angle:013_107_013 50.0 118.0 + angle_coeff @angle:003_107_013 50.0 121.9 + angle_coeff @angle:001_108_013 35.0 110.5 + angle_coeff @angle:013_108_013 60.0 110.0 + angle_coeff @angle:013_108_020 60.0 100.0 + angle_coeff @angle:020_108_020 60.0 110.0 + angle_coeff @angle:013_108_021 35.0 110.5 + angle_coeff @angle:045_108_045 35.0 109.5 + angle_coeff @angle:013_108_045 35.0 110.5 + angle_coeff @angle:046_108_046 35.0 109.5 + angle_coeff @angle:013_108_046 35.0 110.5 + angle_coeff @angle:013_108_065 35.0 110.5 + angle_coeff @angle:013_108_066 35.0 110.5 + angle_coeff @angle:013_108_108 50.0 112.0 + angle_coeff @angle:046_109_048 35.0 123.3 + angle_coeff @angle:046_109_050 35.0 120.0 + angle_coeff @angle:013_109_050 70.0 124.0 + angle_coeff @angle:046_109_109 35.0 120.0 + angle_coeff @angle:013_109_109 70.0 124.0 + angle_coeff @angle:050_109_109 70.0 124.0 + angle_coeff @angle:048_109_109 85.0 117.0 + angle_coeff @angle:004_110_047 160.0 180.0 + angle_coeff @angle:047_110_047 160.0 180.0 } #(end of angle_coeffs) # Rules for creating angle interactions according to atom type: @@ -5492,1023 +5505,1023 @@ OPLSAA { # (* = wildcard) write_once("Data Angles By Type") { - @angle:25-1-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a1_d*_i* @atom:*_b*_a25_d*_i* - @angle:1-2-2 @atom:*_b*_a1_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* - @angle:2-2-2 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* - @angle:2-2-3 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a3_d*_i* - @angle:2-2-5 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a5_d*_i* - @angle:2-2-6 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a6_d*_i* - @angle:6-2-6 @atom:*_b*_a6_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a6_d*_i* - @angle:5-2-6 @atom:*_b*_a5_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a6_d*_i* - @angle:2-2-10 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* - @angle:3-2-10 @atom:*_b*_a3_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* - @angle:6-2-10 @atom:*_b*_a6_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* - @angle:10-2-10 @atom:*_b*_a10_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* - @angle:5-2-10 @atom:*_b*_a5_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* - @angle:10-2-12 @atom:*_b*_a10_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a12_d*_i* - @angle:6-2-13 @atom:*_b*_a6_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a13_d*_i* - @angle:10-2-15 @atom:*_b*_a10_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a15_d*_i* - @angle:2-2-16 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a16_d*_i* - @angle:10-2-16 @atom:*_b*_a10_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a16_d*_i* - @angle:2-2-20 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a20_d*_i* - @angle:6-2-20 @atom:*_b*_a6_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a20_d*_i* - @angle:10-2-20 @atom:*_b*_a10_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a20_d*_i* - @angle:3-2-24 @atom:*_b*_a3_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a24_d*_i* - @angle:2-2-24 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a24_d*_i* - @angle:2-2-44 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a44_d*_i* - @angle:6-2-44 @atom:*_b*_a6_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a44_d*_i* - @angle:10-2-44 @atom:*_b*_a10_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a44_d*_i* - @angle:13-2-44 @atom:*_b*_a13_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a44_d*_i* - @angle:3-2-44 @atom:*_b*_a3_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a44_d*_i* - @angle:2-2-48 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a48_d*_i* - @angle:10-2-48 @atom:*_b*_a10_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a48_d*_i* - @angle:2-2-51 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a51_d*_i* - @angle:6-2-51 @atom:*_b*_a6_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a51_d*_i* - @angle:2-2-53 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a53_d*_i* - @angle:2-2-55 @atom:*_b*_a2_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a55_d*_i* - @angle:10-2-80 @atom:*_b*_a10_d*_i* @atom:*_b*_a2_d*_i* @atom:*_b*_a80_d*_i* - @angle:2-3-4 @atom:*_b*_a2_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a4_d*_i* - @angle:1-3-4 @atom:*_b*_a1_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a4_d*_i* - @angle:3-3-4 @atom:*_b*_a3_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a4_d*_i* - @angle:4-3-4 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a4_d*_i* - @angle:4-3-5 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a5_d*_i* - @angle:4-3-6 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a6_d*_i* - @angle:5-3-10 @atom:*_b*_a5_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a10_d*_i* - @angle:4-3-10 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a10_d*_i* - @angle:5-3-12 @atom:*_b*_a5_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a12_d*_i* - @angle:12-3-12 @atom:*_b*_a12_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a12_d*_i* - @angle:5-3-13 @atom:*_b*_a5_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-3-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* - @angle:1-3-13 @atom:*_b*_a1_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* - @angle:3-3-13 @atom:*_b*_a3_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* - @angle:4-3-13 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* - @angle:10-3-20 @atom:*_b*_a10_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a20_d*_i* - @angle:13-3-20 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a20_d*_i* - @angle:4-3-20 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a20_d*_i* - @angle:13-3-21 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a21_d*_i* - @angle:4-3-21 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a21_d*_i* - @angle:24-3-24 @atom:*_b*_a24_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* - @angle:2-3-24 @atom:*_b*_a2_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* - @angle:3-3-24 @atom:*_b*_a3_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* - @angle:6-3-24 @atom:*_b*_a6_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* - @angle:10-3-24 @atom:*_b*_a10_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* - @angle:13-3-24 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* - @angle:4-3-24 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* - @angle:20-3-24 @atom:*_b*_a20_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* - @angle:13-3-44 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a44_d*_i* - @angle:4-3-44 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a44_d*_i* - @angle:13-3-46 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a46_d*_i* - @angle:46-3-46 @atom:*_b*_a46_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a46_d*_i* - @angle:4-3-46 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a46_d*_i* - @angle:24-3-46 @atom:*_b*_a24_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a46_d*_i* - @angle:5-3-46 @atom:*_b*_a5_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a46_d*_i* - @angle:20-3-46 @atom:*_b*_a20_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a46_d*_i* - @angle:24-3-47 @atom:*_b*_a24_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a47_d*_i* - @angle:4-3-47 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a47_d*_i* - @angle:46-3-48 @atom:*_b*_a46_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a48_d*_i* - @angle:24-3-48 @atom:*_b*_a24_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-3-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a48_d*_i* - @angle:5-3-48 @atom:*_b*_a5_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a48_d*_i* - @angle:4-3-48 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a48_d*_i* - @angle:20-3-48 @atom:*_b*_a20_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a48_d*_i* - @angle:48-3-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-3-50 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a50_d*_i* - @angle:46-3-50 @atom:*_b*_a46_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a50_d*_i* - @angle:4-3-50 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a50_d*_i* - @angle:10-3-52 @atom:*_b*_a10_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a52_d*_i* - @angle:2-3-52 @atom:*_b*_a2_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a52_d*_i* - @angle:6-3-52 @atom:*_b*_a6_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a52_d*_i* - @angle:13-3-52 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a52_d*_i* - @angle:48-3-52 @atom:*_b*_a48_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a52_d*_i* - @angle:4-3-52 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a52_d*_i* - @angle:52-3-52 @atom:*_b*_a52_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a52_d*_i* - @angle:46-3-56 @atom:*_b*_a46_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a56_d*_i* - @angle:4-3-56 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a56_d*_i* - @angle:47-3-57 @atom:*_b*_a47_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a57_d*_i* - @angle:56-3-57 @atom:*_b*_a56_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a57_d*_i* - @angle:57-3-57 @atom:*_b*_a57_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a57_d*_i* - @angle:4-3-57 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a57_d*_i* - @angle:24-3-60 @atom:*_b*_a24_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a60_d*_i* - @angle:57-3-60 @atom:*_b*_a57_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a60_d*_i* - @angle:4-3-60 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a60_d*_i* - @angle:13-3-65 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a65_d*_i* - @angle:4-3-65 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a65_d*_i* - @angle:44-3-84 @atom:*_b*_a44_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a84_d*_i* - @angle:4-3-84 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a84_d*_i* - @angle:4-3-87 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a87_d*_i* - @angle:57-3-105 @atom:*_b*_a57_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a105_d*_i* - @angle:56-3-105 @atom:*_b*_a56_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a105_d*_i* - @angle:4-3-105 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a105_d*_i* - @angle:13-3-107 @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a107_d*_i* - @angle:4-3-107 @atom:*_b*_a4_d*_i* @atom:*_b*_a3_d*_i* @atom:*_b*_a107_d*_i* - @angle:25-4-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a4_d*_i* @atom:*_b*_a25_d*_i* - @angle:3-4-25 @atom:*_b*_a3_d*_i* @atom:*_b*_a4_d*_i* @atom:*_b*_a25_d*_i* - @angle:3-5-7 @atom:*_b*_a3_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a7_d*_i* - @angle:2-5-7 @atom:*_b*_a2_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a7_d*_i* - @angle:6-5-7 @atom:*_b*_a6_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a7_d*_i* - @angle:7-5-10 @atom:*_b*_a7_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a10_d*_i* - @angle:7-5-13 @atom:*_b*_a7_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a13_d*_i* - @angle:7-5-24 @atom:*_b*_a7_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a24_d*_i* - @angle:25-5-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a25_d*_i* - @angle:7-5-25 @atom:*_b*_a7_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a25_d*_i* - @angle:13-5-25 @atom:*_b*_a13_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a25_d*_i* - @angle:7-5-47 @atom:*_b*_a7_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a47_d*_i* - @angle:25-5-48 @atom:*_b*_a25_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a48_d*_i* - @angle:7-5-48 @atom:*_b*_a7_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a48_d*_i* - @angle:7-5-51 @atom:*_b*_a7_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a51_d*_i* - @angle:7-5-64 @atom:*_b*_a7_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a64_d*_i* - @angle:13-5-64 @atom:*_b*_a13_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a64_d*_i* - @angle:7-5-79 @atom:*_b*_a7_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a79_d*_i* - @angle:7-5-106 @atom:*_b*_a7_d*_i* @atom:*_b*_a5_d*_i* @atom:*_b*_a106_d*_i* - @angle:5-7-25 @atom:*_b*_a5_d*_i* @atom:*_b*_a7_d*_i* @atom:*_b*_a25_d*_i* - @angle:25-7-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a7_d*_i* @atom:*_b*_a25_d*_i* - @angle:2-10-2 @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a2_d*_i* - @angle:2-10-3 @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a3_d*_i* - @angle:2-10-5 @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a5_d*_i* - @angle:3-10-6 @atom:*_b*_a3_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a6_d*_i* - @angle:6-10-6 @atom:*_b*_a6_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a6_d*_i* - @angle:2-10-6 @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a6_d*_i* - @angle:5-10-6 @atom:*_b*_a5_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a6_d*_i* - @angle:3-10-10 @atom:*_b*_a3_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a10_d*_i* - @angle:2-10-10 @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a10_d*_i* - @angle:6-10-10 @atom:*_b*_a6_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a10_d*_i* - @angle:10-10-10 @atom:*_b*_a10_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a10_d*_i* - @angle:5-10-10 @atom:*_b*_a5_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a10_d*_i* - @angle:2-10-20 @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a20_d*_i* - @angle:6-10-20 @atom:*_b*_a6_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a20_d*_i* - @angle:10-10-20 @atom:*_b*_a10_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a20_d*_i* - @angle:3-10-24 @atom:*_b*_a3_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a24_d*_i* - @angle:6-10-24 @atom:*_b*_a6_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a24_d*_i* - @angle:2-10-24 @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a24_d*_i* - @angle:10-10-24 @atom:*_b*_a10_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a24_d*_i* - @angle:2-10-44 @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a44_d*_i* - @angle:6-10-44 @atom:*_b*_a6_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a44_d*_i* - @angle:10-10-44 @atom:*_b*_a10_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a44_d*_i* - @angle:13-10-44 @atom:*_b*_a13_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a44_d*_i* - @angle:3-10-44 @atom:*_b*_a3_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a44_d*_i* - @angle:2-10-48 @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a48_d*_i* - @angle:20-10-48 @atom:*_b*_a20_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a48_d*_i* - @angle:2-10-105 @atom:*_b*_a2_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a105_d*_i* - @angle:10-10-105 @atom:*_b*_a10_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a105_d*_i* - @angle:20-10-105 @atom:*_b*_a20_d*_i* @atom:*_b*_a10_d*_i* @atom:*_b*_a105_d*_i* - @angle:2-11-2 @atom:*_b*_a2_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a2_d*_i* - @angle:2-11-6 @atom:*_b*_a2_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a6_d*_i* - @angle:6-11-6 @atom:*_b*_a6_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a6_d*_i* - @angle:2-11-9 @atom:*_b*_a2_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a9_d*_i* - @angle:6-11-9 @atom:*_b*_a6_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a9_d*_i* - @angle:9-11-10 @atom:*_b*_a9_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a10_d*_i* - @angle:2-11-10 @atom:*_b*_a2_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a10_d*_i* - @angle:6-11-10 @atom:*_b*_a6_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a10_d*_i* - @angle:10-11-10 @atom:*_b*_a10_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a10_d*_i* - @angle:2-11-11 @atom:*_b*_a2_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a11_d*_i* - @angle:6-11-11 @atom:*_b*_a6_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a11_d*_i* - @angle:9-11-11 @atom:*_b*_a9_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a11_d*_i* - @angle:10-11-11 @atom:*_b*_a10_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a11_d*_i* - @angle:11-11-11 @atom:*_b*_a11_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a11_d*_i* - @angle:9-11-13 @atom:*_b*_a9_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a13_d*_i* - @angle:11-11-13 @atom:*_b*_a11_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a13_d*_i* - @angle:2-11-13 @atom:*_b*_a2_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a13_d*_i* - @angle:6-11-13 @atom:*_b*_a6_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a13_d*_i* - @angle:10-11-13 @atom:*_b*_a10_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-11-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a13_d*_i* - @angle:9-11-14 @atom:*_b*_a9_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a14_d*_i* - @angle:11-11-14 @atom:*_b*_a11_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a14_d*_i* - @angle:9-11-79 @atom:*_b*_a9_d*_i* @atom:*_b*_a11_d*_i* @atom:*_b*_a79_d*_i* - @angle:2-12-12 @atom:*_b*_a2_d*_i* @atom:*_b*_a12_d*_i* @atom:*_b*_a12_d*_i* - @angle:3-12-12 @atom:*_b*_a3_d*_i* @atom:*_b*_a12_d*_i* @atom:*_b*_a12_d*_i* - @angle:12-12-12 @atom:*_b*_a12_d*_i* @atom:*_b*_a12_d*_i* @atom:*_b*_a12_d*_i* - @angle:12-12-48 @atom:*_b*_a12_d*_i* @atom:*_b*_a12_d*_i* @atom:*_b*_a48_d*_i* - @angle:12-12-60 @atom:*_b*_a12_d*_i* @atom:*_b*_a12_d*_i* @atom:*_b*_a60_d*_i* - @angle:12-12-81 @atom:*_b*_a12_d*_i* @atom:*_b*_a12_d*_i* @atom:*_b*_a81_d*_i* - @angle:1-13-1 @atom:*_b*_a1_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a1_d*_i* - @angle:2-13-2 @atom:*_b*_a2_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a2_d*_i* - @angle:1-13-3 @atom:*_b*_a1_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* - @angle:2-13-3 @atom:*_b*_a2_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* - @angle:3-13-3 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a3_d*_i* - @angle:2-13-6 @atom:*_b*_a2_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a6_d*_i* - @angle:6-13-6 @atom:*_b*_a6_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a6_d*_i* - @angle:3-13-6 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a6_d*_i* - @angle:1-13-13 @atom:*_b*_a1_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* - @angle:5-13-13 @atom:*_b*_a5_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-13-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* - @angle:3-13-13 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-13-15 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a15_d*_i* - @angle:13-13-16 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a16_d*_i* - @angle:13-13-19 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a19_d*_i* - @angle:3-13-20 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a20_d*_i* - @angle:13-13-20 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a20_d*_i* - @angle:3-13-21 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a21_d*_i* - @angle:13-13-21 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a21_d*_i* - @angle:21-13-21 @atom:*_b*_a21_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a21_d*_i* - @angle:13-13-22 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a22_d*_i* - @angle:20-13-24 @atom:*_b*_a20_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a24_d*_i* - @angle:3-13-24 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a24_d*_i* - @angle:2-13-24 @atom:*_b*_a2_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a24_d*_i* - @angle:13-13-24 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a24_d*_i* - @angle:16-13-44 @atom:*_b*_a16_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a44_d*_i* - @angle:2-13-44 @atom:*_b*_a2_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a44_d*_i* - @angle:6-13-44 @atom:*_b*_a6_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a44_d*_i* - @angle:10-13-44 @atom:*_b*_a10_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a44_d*_i* - @angle:13-13-44 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a44_d*_i* - @angle:3-13-44 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a44_d*_i* - @angle:46-13-46 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:18-13-46 @atom:*_b*_a18_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:19-13-46 @atom:*_b*_a19_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:2-13-46 @atom:*_b*_a2_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:3-13-46 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:5-13-46 @atom:*_b*_a5_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:15-13-46 @atom:*_b*_a15_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:16-13-46 @atom:*_b*_a16_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:20-13-46 @atom:*_b*_a20_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:22-13-46 @atom:*_b*_a22_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:24-13-46 @atom:*_b*_a24_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:44-13-46 @atom:*_b*_a44_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:13-13-46 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:1-13-46 @atom:*_b*_a1_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:21-13-46 @atom:*_b*_a21_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* - @angle:46-13-47 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* - @angle:1-13-47 @atom:*_b*_a1_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* - @angle:13-13-47 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* - @angle:47-13-47 @atom:*_b*_a47_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* - @angle:46-13-48 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:47-13-48 @atom:*_b*_a47_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:48-13-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:1-13-48 @atom:*_b*_a1_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:5-13-48 @atom:*_b*_a5_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:20-13-48 @atom:*_b*_a20_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:16-13-48 @atom:*_b*_a16_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:3-13-48 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:2-13-48 @atom:*_b*_a2_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-13-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:44-13-48 @atom:*_b*_a44_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* - @angle:46-13-50 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a50_d*_i* - @angle:46-13-51 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a51_d*_i* - @angle:5-13-51 @atom:*_b*_a5_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a51_d*_i* - @angle:13-13-51 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a51_d*_i* - @angle:46-13-53 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a53_d*_i* - @angle:3-13-53 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a53_d*_i* - @angle:13-13-53 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a53_d*_i* - @angle:46-13-55 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a55_d*_i* - @angle:13-13-55 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a55_d*_i* - @angle:46-13-56 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a56_d*_i* - @angle:3-13-56 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a56_d*_i* - @angle:13-13-56 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a56_d*_i* - @angle:46-13-57 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a57_d*_i* - @angle:48-13-57 @atom:*_b*_a48_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a57_d*_i* - @angle:46-13-60 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a60_d*_i* - @angle:13-13-60 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a60_d*_i* - @angle:46-13-64 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a64_d*_i* - @angle:13-13-64 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a64_d*_i* - @angle:48-13-64 @atom:*_b*_a48_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a64_d*_i* - @angle:46-13-65 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a65_d*_i* - @angle:3-13-65 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a65_d*_i* - @angle:13-13-65 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a65_d*_i* - @angle:48-13-65 @atom:*_b*_a48_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a65_d*_i* - @angle:65-13-65 @atom:*_b*_a65_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a65_d*_i* - @angle:46-13-66 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a66_d*_i* - @angle:13-13-66 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a66_d*_i* - @angle:46-13-79 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a79_d*_i* - @angle:13-13-79 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a79_d*_i* - @angle:1-13-79 @atom:*_b*_a1_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a79_d*_i* - @angle:46-13-80 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a80_d*_i* - @angle:13-13-80 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a80_d*_i* - @angle:46-13-83 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a83_d*_i* - @angle:13-13-83 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a83_d*_i* - @angle:46-13-84 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a84_d*_i* - @angle:16-13-84 @atom:*_b*_a16_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a84_d*_i* - @angle:13-13-84 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a84_d*_i* - @angle:46-13-85 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a85_d*_i* - @angle:13-13-85 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a85_d*_i* - @angle:46-13-87 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a87_d*_i* - @angle:13-13-87 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a87_d*_i* - @angle:46-13-90 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a90_d*_i* - @angle:13-13-90 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a90_d*_i* - @angle:3-13-90 @atom:*_b*_a3_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a90_d*_i* - @angle:46-13-91 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a91_d*_i* - @angle:46-13-95 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a95_d*_i* - @angle:13-13-95 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a95_d*_i* - @angle:46-13-101 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a101_d*_i* - @angle:13-13-101 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a101_d*_i* - @angle:46-13-102 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a102_d*_i* - @angle:13-13-102 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a102_d*_i* - @angle:46-13-104 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a104_d*_i* - @angle:13-13-104 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a104_d*_i* - @angle:46-13-105 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a105_d*_i* - @angle:13-13-105 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a105_d*_i* - @angle:20-13-105 @atom:*_b*_a20_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a105_d*_i* - @angle:46-13-107 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a107_d*_i* - @angle:13-13-107 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a107_d*_i* - @angle:46-13-108 @atom:*_b*_a46_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a108_d*_i* - @angle:13-13-108 @atom:*_b*_a13_d*_i* @atom:*_b*_a13_d*_i* @atom:*_b*_a108_d*_i* - @angle:2-14-2 @atom:*_b*_a2_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a2_d*_i* - @angle:2-14-6 @atom:*_b*_a2_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a6_d*_i* - @angle:6-14-6 @atom:*_b*_a6_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a6_d*_i* - @angle:2-14-9 @atom:*_b*_a2_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a9_d*_i* - @angle:6-14-9 @atom:*_b*_a6_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a9_d*_i* - @angle:9-14-10 @atom:*_b*_a9_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a10_d*_i* - @angle:2-14-10 @atom:*_b*_a2_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a10_d*_i* - @angle:6-14-10 @atom:*_b*_a6_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a10_d*_i* - @angle:10-14-10 @atom:*_b*_a10_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a10_d*_i* - @angle:2-14-11 @atom:*_b*_a2_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a11_d*_i* - @angle:6-14-11 @atom:*_b*_a6_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a11_d*_i* - @angle:9-14-11 @atom:*_b*_a9_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a11_d*_i* - @angle:10-14-11 @atom:*_b*_a10_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a11_d*_i* - @angle:11-14-11 @atom:*_b*_a11_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a11_d*_i* - @angle:9-14-13 @atom:*_b*_a9_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a13_d*_i* - @angle:11-14-13 @atom:*_b*_a11_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a13_d*_i* - @angle:2-14-13 @atom:*_b*_a2_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a13_d*_i* - @angle:6-14-13 @atom:*_b*_a6_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a13_d*_i* - @angle:10-14-13 @atom:*_b*_a10_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-14-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a13_d*_i* - @angle:2-14-14 @atom:*_b*_a2_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a14_d*_i* - @angle:6-14-14 @atom:*_b*_a6_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a14_d*_i* - @angle:9-14-14 @atom:*_b*_a9_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a14_d*_i* - @angle:10-14-14 @atom:*_b*_a10_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a14_d*_i* - @angle:11-14-14 @atom:*_b*_a11_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a14_d*_i* - @angle:13-14-14 @atom:*_b*_a13_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a14_d*_i* - @angle:14-14-14 @atom:*_b*_a14_d*_i* @atom:*_b*_a14_d*_i* @atom:*_b*_a14_d*_i* - @angle:17-15-17 @atom:*_b*_a17_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a17_d*_i* - @angle:2-15-17 @atom:*_b*_a2_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a17_d*_i* - @angle:6-15-17 @atom:*_b*_a6_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a17_d*_i* - @angle:13-15-17 @atom:*_b*_a13_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a17_d*_i* - @angle:25-15-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a25_d*_i* - @angle:13-15-25 @atom:*_b*_a13_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a25_d*_i* - @angle:33-15-33 @atom:*_b*_a33_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a33_d*_i* - @angle:2-15-33 @atom:*_b*_a2_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a33_d*_i* - @angle:6-15-33 @atom:*_b*_a6_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a33_d*_i* - @angle:13-15-33 @atom:*_b*_a13_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a33_d*_i* - @angle:17-15-33 @atom:*_b*_a17_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a33_d*_i* - @angle:17-15-48 @atom:*_b*_a17_d*_i* @atom:*_b*_a15_d*_i* @atom:*_b*_a48_d*_i* - @angle:2-16-6 @atom:*_b*_a2_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a6_d*_i* - @angle:13-16-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a13_d*_i* - @angle:2-16-16 @atom:*_b*_a2_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a16_d*_i* - @angle:6-16-16 @atom:*_b*_a6_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a16_d*_i* - @angle:13-16-16 @atom:*_b*_a13_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a16_d*_i* - @angle:13-16-19 @atom:*_b*_a13_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a19_d*_i* - @angle:25-16-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a25_d*_i* - @angle:13-16-25 @atom:*_b*_a13_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a25_d*_i* - @angle:33-16-33 @atom:*_b*_a33_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a33_d*_i* - @angle:2-16-33 @atom:*_b*_a2_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a33_d*_i* - @angle:6-16-33 @atom:*_b*_a6_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a33_d*_i* - @angle:13-16-33 @atom:*_b*_a13_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a33_d*_i* - @angle:16-16-33 @atom:*_b*_a16_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a33_d*_i* - @angle:13-16-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a48_d*_i* - @angle:47-16-48 @atom:*_b*_a47_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a48_d*_i* - @angle:24-16-60 @atom:*_b*_a24_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a60_d*_i* - @angle:25-16-61 @atom:*_b*_a25_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a61_d*_i* - @angle:25-16-82 @atom:*_b*_a25_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a82_d*_i* - @angle:60-16-82 @atom:*_b*_a60_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a82_d*_i* - @angle:25-16-84 @atom:*_b*_a25_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a84_d*_i* - @angle:82-16-84 @atom:*_b*_a82_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a84_d*_i* - @angle:60-16-84 @atom:*_b*_a60_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a84_d*_i* - @angle:84-16-84 @atom:*_b*_a84_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a84_d*_i* - @angle:13-16-91 @atom:*_b*_a13_d*_i* @atom:*_b*_a16_d*_i* @atom:*_b*_a91_d*_i* - @angle:15-17-25 @atom:*_b*_a15_d*_i* @atom:*_b*_a17_d*_i* @atom:*_b*_a25_d*_i* - @angle:25-17-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a17_d*_i* @atom:*_b*_a25_d*_i* - @angle:13-18-19 @atom:*_b*_a13_d*_i* @atom:*_b*_a18_d*_i* @atom:*_b*_a19_d*_i* - @angle:19-18-48 @atom:*_b*_a19_d*_i* @atom:*_b*_a18_d*_i* @atom:*_b*_a48_d*_i* - @angle:18-18-56 @atom:*_b*_a18_d*_i* @atom:*_b*_a18_d*_i* @atom:*_b*_a56_d*_i* - @angle:13-19-18 @atom:*_b*_a13_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a18_d*_i* - @angle:16-19-19 @atom:*_b*_a16_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a19_d*_i* - @angle:13-19-19 @atom:*_b*_a13_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a19_d*_i* - @angle:18-19-25 @atom:*_b*_a18_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a25_d*_i* - @angle:19-19-46 @atom:*_b*_a19_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a46_d*_i* - @angle:18-19-47 @atom:*_b*_a18_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a47_d*_i* - @angle:19-19-47 @atom:*_b*_a19_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a47_d*_i* - @angle:18-19-48 @atom:*_b*_a18_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a48_d*_i* - @angle:19-19-48 @atom:*_b*_a19_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a48_d*_i* - @angle:19-19-50 @atom:*_b*_a19_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a50_d*_i* - @angle:18-19-55 @atom:*_b*_a18_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a55_d*_i* - @angle:18-19-88 @atom:*_b*_a18_d*_i* @atom:*_b*_a19_d*_i* @atom:*_b*_a88_d*_i* - @angle:2-20-2 @atom:*_b*_a2_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a2_d*_i* - @angle:2-20-3 @atom:*_b*_a2_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a3_d*_i* - @angle:3-20-6 @atom:*_b*_a3_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a6_d*_i* - @angle:2-20-6 @atom:*_b*_a2_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a6_d*_i* - @angle:2-20-7 @atom:*_b*_a2_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a7_d*_i* - @angle:7-20-10 @atom:*_b*_a7_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a10_d*_i* - @angle:3-20-10 @atom:*_b*_a3_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a10_d*_i* - @angle:10-20-10 @atom:*_b*_a10_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a10_d*_i* - @angle:13-20-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a13_d*_i* - @angle:3-20-13 @atom:*_b*_a3_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a13_d*_i* - @angle:25-20-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a25_d*_i* - @angle:13-20-25 @atom:*_b*_a13_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a25_d*_i* - @angle:13-20-47 @atom:*_b*_a13_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a47_d*_i* - @angle:25-20-48 @atom:*_b*_a25_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-20-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a48_d*_i* - @angle:47-20-48 @atom:*_b*_a47_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a48_d*_i* - @angle:48-20-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a48_d*_i* - @angle:3-20-48 @atom:*_b*_a3_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a48_d*_i* - @angle:2-20-48 @atom:*_b*_a2_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-20-51 @atom:*_b*_a13_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a51_d*_i* - @angle:2-20-51 @atom:*_b*_a2_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a51_d*_i* - @angle:6-20-51 @atom:*_b*_a6_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a51_d*_i* - @angle:10-20-51 @atom:*_b*_a10_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a51_d*_i* - @angle:24-20-60 @atom:*_b*_a24_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a60_d*_i* - @angle:25-20-61 @atom:*_b*_a25_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a61_d*_i* - @angle:2-20-64 @atom:*_b*_a2_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a64_d*_i* - @angle:6-20-64 @atom:*_b*_a6_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a64_d*_i* - @angle:10-20-64 @atom:*_b*_a10_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a64_d*_i* - @angle:13-20-64 @atom:*_b*_a13_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a64_d*_i* - @angle:48-20-64 @atom:*_b*_a48_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a64_d*_i* - @angle:64-20-64 @atom:*_b*_a64_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a64_d*_i* - @angle:25-20-82 @atom:*_b*_a25_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a82_d*_i* - @angle:60-20-82 @atom:*_b*_a60_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a82_d*_i* - @angle:82-20-82 @atom:*_b*_a82_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a82_d*_i* - @angle:25-20-84 @atom:*_b*_a25_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a84_d*_i* - @angle:82-20-84 @atom:*_b*_a82_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a84_d*_i* - @angle:60-20-84 @atom:*_b*_a60_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a84_d*_i* - @angle:84-20-84 @atom:*_b*_a84_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a84_d*_i* - @angle:61-20-84 @atom:*_b*_a61_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a84_d*_i* - @angle:108-20-108 @atom:*_b*_a108_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a108_d*_i* - @angle:13-20-108 @atom:*_b*_a13_d*_i* @atom:*_b*_a20_d*_i* @atom:*_b*_a108_d*_i* - @angle:25-21-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a21_d*_i* @atom:*_b*_a25_d*_i* - @angle:13-22-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a22_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-22-23 @atom:*_b*_a13_d*_i* @atom:*_b*_a22_d*_i* @atom:*_b*_a23_d*_i* - @angle:23-22-25 @atom:*_b*_a23_d*_i* @atom:*_b*_a22_d*_i* @atom:*_b*_a25_d*_i* - @angle:2-24-3 @atom:*_b*_a2_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a3_d*_i* - @angle:3-24-3 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a3_d*_i* - @angle:3-24-5 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a5_d*_i* - @angle:2-24-6 @atom:*_b*_a2_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a6_d*_i* - @angle:3-24-6 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a6_d*_i* - @angle:2-24-10 @atom:*_b*_a2_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a10_d*_i* - @angle:3-24-10 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a10_d*_i* - @angle:13-24-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a13_d*_i* - @angle:3-24-13 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a13_d*_i* - @angle:3-24-16 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a16_d*_i* - @angle:3-24-20 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a20_d*_i* - @angle:3-24-25 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a25_d*_i* - @angle:25-24-45 @atom:*_b*_a25_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a45_d*_i* - @angle:5-24-45 @atom:*_b*_a5_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a45_d*_i* - @angle:3-24-45 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a45_d*_i* - @angle:45-24-45 @atom:*_b*_a45_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a45_d*_i* - @angle:2-24-45 @atom:*_b*_a2_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a45_d*_i* - @angle:6-24-45 @atom:*_b*_a6_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a45_d*_i* - @angle:10-24-45 @atom:*_b*_a10_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a45_d*_i* - @angle:13-24-45 @atom:*_b*_a13_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a45_d*_i* - @angle:45-24-48 @atom:*_b*_a45_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-24-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a48_d*_i* - @angle:3-24-48 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a48_d*_i* - @angle:48-24-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a48_d*_i* - @angle:54-24-54 @atom:*_b*_a54_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a54_d*_i* - @angle:45-24-59 @atom:*_b*_a45_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a59_d*_i* - @angle:3-24-59 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a59_d*_i* - @angle:13-24-79 @atom:*_b*_a13_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a79_d*_i* - @angle:45-24-79 @atom:*_b*_a45_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a79_d*_i* - @angle:45-24-84 @atom:*_b*_a45_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a84_d*_i* - @angle:48-24-84 @atom:*_b*_a48_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a84_d*_i* - @angle:16-24-86 @atom:*_b*_a16_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a86_d*_i* - @angle:45-24-87 @atom:*_b*_a45_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a87_d*_i* - @angle:48-24-87 @atom:*_b*_a48_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a87_d*_i* - @angle:45-24-88 @atom:*_b*_a45_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a88_d*_i* - @angle:48-24-88 @atom:*_b*_a48_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a88_d*_i* - @angle:45-24-91 @atom:*_b*_a45_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a91_d*_i* - @angle:3-24-91 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a91_d*_i* - @angle:48-24-103 @atom:*_b*_a48_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a103_d*_i* - @angle:3-24-106 @atom:*_b*_a3_d*_i* @atom:*_b*_a24_d*_i* @atom:*_b*_a106_d*_i* - @angle:25-25-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a25_d*_i* @atom:*_b*_a25_d*_i* - @angle:32-31-32 @atom:*_b*_a32_d*_i* @atom:*_b*_a31_d*_i* @atom:*_b*_a32_d*_i* - @angle:32-31-33 @atom:*_b*_a32_d*_i* @atom:*_b*_a31_d*_i* @atom:*_b*_a33_d*_i* - @angle:35-34-35 @atom:*_b*_a35_d*_i* @atom:*_b*_a34_d*_i* @atom:*_b*_a35_d*_i* - @angle:37-36-37 @atom:*_b*_a37_d*_i* @atom:*_b*_a36_d*_i* @atom:*_b*_a37_d*_i* - @angle:37-36-38 @atom:*_b*_a37_d*_i* @atom:*_b*_a36_d*_i* @atom:*_b*_a38_d*_i* - @angle:40-39-40 @atom:*_b*_a40_d*_i* @atom:*_b*_a39_d*_i* @atom:*_b*_a40_d*_i* - @angle:41-39-41 @atom:*_b*_a41_d*_i* @atom:*_b*_a39_d*_i* @atom:*_b*_a41_d*_i* - @angle:40-39-41 @atom:*_b*_a40_d*_i* @atom:*_b*_a39_d*_i* @atom:*_b*_a41_d*_i* - @angle:43-42-43 @atom:*_b*_a43_d*_i* @atom:*_b*_a42_d*_i* @atom:*_b*_a43_d*_i* - @angle:2-44-2 @atom:*_b*_a2_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a2_d*_i* - @angle:2-44-6 @atom:*_b*_a2_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a6_d*_i* - @angle:6-44-6 @atom:*_b*_a6_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a6_d*_i* - @angle:2-44-10 @atom:*_b*_a2_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a10_d*_i* - @angle:6-44-10 @atom:*_b*_a6_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a10_d*_i* - @angle:10-44-10 @atom:*_b*_a10_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a10_d*_i* - @angle:2-44-13 @atom:*_b*_a2_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a13_d*_i* - @angle:6-44-13 @atom:*_b*_a6_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a13_d*_i* - @angle:10-44-13 @atom:*_b*_a10_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-44-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a13_d*_i* - @angle:3-44-13 @atom:*_b*_a3_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a13_d*_i* - @angle:25-44-45 @atom:*_b*_a25_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a45_d*_i* - @angle:13-44-45 @atom:*_b*_a13_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a45_d*_i* - @angle:2-44-45 @atom:*_b*_a2_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a45_d*_i* - @angle:6-44-45 @atom:*_b*_a6_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a45_d*_i* - @angle:10-44-45 @atom:*_b*_a10_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a45_d*_i* - @angle:45-44-45 @atom:*_b*_a45_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a45_d*_i* - @angle:25-44-48 @atom:*_b*_a25_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a48_d*_i* - @angle:45-44-48 @atom:*_b*_a45_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-44-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a48_d*_i* - @angle:48-44-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a48_d*_i* - @angle:3-44-48 @atom:*_b*_a3_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a48_d*_i* - @angle:45-44-79 @atom:*_b*_a45_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a79_d*_i* - @angle:13-44-79 @atom:*_b*_a13_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a79_d*_i* - @angle:48-44-79 @atom:*_b*_a48_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a79_d*_i* - @angle:48-44-91 @atom:*_b*_a48_d*_i* @atom:*_b*_a44_d*_i* @atom:*_b*_a91_d*_i* - @angle:25-45-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a45_d*_i* @atom:*_b*_a25_d*_i* - @angle:25-45-44 @atom:*_b*_a25_d*_i* @atom:*_b*_a45_d*_i* @atom:*_b*_a44_d*_i* - @angle:25-46-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a46_d*_i* @atom:*_b*_a25_d*_i* - @angle:13-46-25 @atom:*_b*_a13_d*_i* @atom:*_b*_a46_d*_i* @atom:*_b*_a25_d*_i* - @angle:1-47-1 @atom:*_b*_a1_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a1_d*_i* - @angle:1-47-3 @atom:*_b*_a1_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a3_d*_i* - @angle:3-47-6 @atom:*_b*_a3_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a6_d*_i* - @angle:3-47-13 @atom:*_b*_a3_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-47-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a13_d*_i* - @angle:25-47-46 @atom:*_b*_a25_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a46_d*_i* - @angle:20-47-46 @atom:*_b*_a20_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a46_d*_i* - @angle:13-47-46 @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a46_d*_i* - @angle:46-47-46 @atom:*_b*_a46_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a46_d*_i* - @angle:3-47-46 @atom:*_b*_a3_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a46_d*_i* - @angle:19-47-46 @atom:*_b*_a19_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a46_d*_i* - @angle:1-47-46 @atom:*_b*_a1_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a46_d*_i* - @angle:21-47-46 @atom:*_b*_a21_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a46_d*_i* - @angle:25-47-47 @atom:*_b*_a25_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* - @angle:46-47-47 @atom:*_b*_a46_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* - @angle:5-47-47 @atom:*_b*_a5_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* - @angle:20-47-47 @atom:*_b*_a20_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* - @angle:13-47-47 @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* - @angle:19-47-47 @atom:*_b*_a19_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* - @angle:21-47-47 @atom:*_b*_a21_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* - @angle:1-47-47 @atom:*_b*_a1_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* - @angle:16-47-47 @atom:*_b*_a16_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* - @angle:3-47-47 @atom:*_b*_a3_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* - @angle:46-47-48 @atom:*_b*_a46_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a48_d*_i* - @angle:47-47-48 @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-47-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a48_d*_i* - @angle:25-47-50 @atom:*_b*_a25_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a50_d*_i* - @angle:46-47-50 @atom:*_b*_a46_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a50_d*_i* - @angle:5-47-50 @atom:*_b*_a5_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a50_d*_i* - @angle:20-47-50 @atom:*_b*_a20_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a50_d*_i* - @angle:13-47-50 @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a50_d*_i* - @angle:46-47-57 @atom:*_b*_a46_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a57_d*_i* - @angle:13-47-57 @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a57_d*_i* - @angle:20-47-57 @atom:*_b*_a20_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a57_d*_i* - @angle:47-47-57 @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a57_d*_i* - @angle:16-47-57 @atom:*_b*_a16_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a57_d*_i* - @angle:57-47-58 @atom:*_b*_a57_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a58_d*_i* - @angle:47-47-58 @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a58_d*_i* - @angle:46-47-65 @atom:*_b*_a46_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a65_d*_i* - @angle:47-47-65 @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a65_d*_i* - @angle:46-47-91 @atom:*_b*_a46_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a91_d*_i* - @angle:3-47-91 @atom:*_b*_a3_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a91_d*_i* - @angle:47-47-91 @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a91_d*_i* - @angle:46-47-105 @atom:*_b*_a46_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a105_d*_i* - @angle:58-47-105 @atom:*_b*_a58_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a105_d*_i* - @angle:13-47-105 @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a105_d*_i* - @angle:20-47-105 @atom:*_b*_a20_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a105_d*_i* - @angle:47-47-105 @atom:*_b*_a47_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a105_d*_i* - @angle:16-47-105 @atom:*_b*_a16_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a105_d*_i* - @angle:46-47-110 @atom:*_b*_a46_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a110_d*_i* - @angle:13-47-110 @atom:*_b*_a13_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a110_d*_i* - @angle:48-47-110 @atom:*_b*_a48_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a110_d*_i* - @angle:1-47-110 @atom:*_b*_a1_d*_i* @atom:*_b*_a47_d*_i* @atom:*_b*_a110_d*_i* - @angle:2-48-12 @atom:*_b*_a2_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a12_d*_i* - @angle:12-48-12 @atom:*_b*_a12_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a12_d*_i* - @angle:3-48-13 @atom:*_b*_a3_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a13_d*_i* - @angle:25-48-48 @atom:*_b*_a25_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:48-48-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:2-48-48 @atom:*_b*_a2_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:5-48-48 @atom:*_b*_a5_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:10-48-48 @atom:*_b*_a10_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-48-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:15-48-48 @atom:*_b*_a15_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:19-48-48 @atom:*_b*_a19_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:20-48-48 @atom:*_b*_a20_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:24-48-48 @atom:*_b*_a24_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:44-48-48 @atom:*_b*_a44_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:47-48-48 @atom:*_b*_a47_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:21-48-48 @atom:*_b*_a21_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:1-48-48 @atom:*_b*_a1_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:18-48-48 @atom:*_b*_a18_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:16-48-48 @atom:*_b*_a16_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:3-48-48 @atom:*_b*_a3_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* - @angle:25-48-49 @atom:*_b*_a25_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a49_d*_i* - @angle:24-48-49 @atom:*_b*_a24_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a49_d*_i* - @angle:3-48-49 @atom:*_b*_a3_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a49_d*_i* - @angle:48-48-49 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a49_d*_i* - @angle:48-48-50 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a50_d*_i* - @angle:48-48-53 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a53_d*_i* - @angle:55-48-55 @atom:*_b*_a55_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a55_d*_i* - @angle:47-48-55 @atom:*_b*_a47_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a55_d*_i* - @angle:48-48-55 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a55_d*_i* - @angle:49-48-56 @atom:*_b*_a49_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* - @angle:13-48-56 @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* - @angle:44-48-56 @atom:*_b*_a44_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* - @angle:55-48-56 @atom:*_b*_a55_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* - @angle:5-48-56 @atom:*_b*_a5_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* - @angle:47-48-56 @atom:*_b*_a47_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* - @angle:50-48-56 @atom:*_b*_a50_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* - @angle:48-48-56 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* - @angle:21-48-56 @atom:*_b*_a21_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* - @angle:49-48-57 @atom:*_b*_a49_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a57_d*_i* - @angle:48-48-57 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a57_d*_i* - @angle:55-48-57 @atom:*_b*_a55_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a57_d*_i* - @angle:13-48-57 @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a57_d*_i* - @angle:47-48-57 @atom:*_b*_a47_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a57_d*_i* - @angle:56-48-57 @atom:*_b*_a56_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a57_d*_i* - @angle:49-48-60 @atom:*_b*_a49_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* - @angle:48-48-60 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* - @angle:57-48-60 @atom:*_b*_a57_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* - @angle:56-48-60 @atom:*_b*_a56_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* - @angle:55-48-60 @atom:*_b*_a55_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* - @angle:2-48-60 @atom:*_b*_a2_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* - @angle:13-48-60 @atom:*_b*_a13_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* - @angle:49-48-61 @atom:*_b*_a49_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a61_d*_i* - @angle:48-48-61 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a61_d*_i* - @angle:57-48-61 @atom:*_b*_a57_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a61_d*_i* - @angle:48-48-64 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a64_d*_i* - @angle:48-48-65 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a65_d*_i* - @angle:48-48-66 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a66_d*_i* - @angle:48-48-79 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a79_d*_i* - @angle:49-48-81 @atom:*_b*_a49_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a81_d*_i* - @angle:48-48-81 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a81_d*_i* - @angle:49-48-84 @atom:*_b*_a49_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a84_d*_i* - @angle:60-48-84 @atom:*_b*_a60_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a84_d*_i* - @angle:48-48-84 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a84_d*_i* - @angle:49-48-86 @atom:*_b*_a49_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* - @angle:48-48-86 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* - @angle:56-48-86 @atom:*_b*_a56_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* - @angle:49-48-88 @atom:*_b*_a49_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a88_d*_i* - @angle:101-48-101 @atom:*_b*_a101_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a101_d*_i* - @angle:56-48-101 @atom:*_b*_a56_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a101_d*_i* - @angle:48-48-102 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a102_d*_i* - @angle:48-48-109 @atom:*_b*_a48_d*_i* @atom:*_b*_a48_d*_i* @atom:*_b*_a109_d*_i* - @angle:25-50-46 @atom:*_b*_a25_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a46_d*_i* - @angle:19-50-46 @atom:*_b*_a19_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a46_d*_i* - @angle:25-50-47 @atom:*_b*_a25_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a47_d*_i* - @angle:46-50-47 @atom:*_b*_a46_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a47_d*_i* - @angle:3-50-47 @atom:*_b*_a3_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a47_d*_i* - @angle:13-50-47 @atom:*_b*_a13_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a47_d*_i* - @angle:46-50-48 @atom:*_b*_a46_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a48_d*_i* - @angle:47-50-48 @atom:*_b*_a47_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a48_d*_i* - @angle:25-50-50 @atom:*_b*_a25_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a50_d*_i* - @angle:46-50-50 @atom:*_b*_a46_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a50_d*_i* - @angle:13-50-50 @atom:*_b*_a13_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a50_d*_i* - @angle:47-50-50 @atom:*_b*_a47_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a50_d*_i* - @angle:50-50-84 @atom:*_b*_a50_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a84_d*_i* - @angle:46-50-84 @atom:*_b*_a46_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a84_d*_i* - @angle:46-50-109 @atom:*_b*_a46_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a109_d*_i* - @angle:13-50-109 @atom:*_b*_a13_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a109_d*_i* - @angle:47-50-109 @atom:*_b*_a47_d*_i* @atom:*_b*_a50_d*_i* @atom:*_b*_a109_d*_i* - @angle:6-51-6 @atom:*_b*_a6_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a6_d*_i* - @angle:5-51-13 @atom:*_b*_a5_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-51-20 @atom:*_b*_a13_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a20_d*_i* - @angle:2-51-20 @atom:*_b*_a2_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a20_d*_i* - @angle:6-51-20 @atom:*_b*_a6_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a20_d*_i* - @angle:5-51-20 @atom:*_b*_a5_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a20_d*_i* - @angle:20-51-20 @atom:*_b*_a20_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a20_d*_i* - @angle:46-51-46 @atom:*_b*_a46_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a46_d*_i* - @angle:5-51-46 @atom:*_b*_a5_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a46_d*_i* - @angle:20-51-46 @atom:*_b*_a20_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a46_d*_i* - @angle:13-51-46 @atom:*_b*_a13_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a46_d*_i* - @angle:46-51-105 @atom:*_b*_a46_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a105_d*_i* - @angle:13-51-105 @atom:*_b*_a13_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a105_d*_i* - @angle:20-51-105 @atom:*_b*_a20_d*_i* @atom:*_b*_a51_d*_i* @atom:*_b*_a105_d*_i* - @angle:13-53-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-53-25 @atom:*_b*_a13_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a25_d*_i* - @angle:45-53-45 @atom:*_b*_a45_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a45_d*_i* - @angle:25-53-48 @atom:*_b*_a25_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-53-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a48_d*_i* - @angle:2-53-54 @atom:*_b*_a2_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a54_d*_i* - @angle:6-53-54 @atom:*_b*_a6_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a54_d*_i* - @angle:13-53-54 @atom:*_b*_a13_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a54_d*_i* - @angle:48-53-54 @atom:*_b*_a48_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a54_d*_i* - @angle:54-53-54 @atom:*_b*_a54_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a54_d*_i* - @angle:25-53-82 @atom:*_b*_a25_d*_i* @atom:*_b*_a53_d*_i* @atom:*_b*_a82_d*_i* - @angle:13-55-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a13_d*_i* - @angle:45-55-45 @atom:*_b*_a45_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a45_d*_i* - @angle:13-55-45 @atom:*_b*_a13_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a45_d*_i* - @angle:45-55-48 @atom:*_b*_a45_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a48_d*_i* - @angle:2-55-48 @atom:*_b*_a2_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a48_d*_i* - @angle:6-55-48 @atom:*_b*_a6_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-55-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a48_d*_i* - @angle:2-55-54 @atom:*_b*_a2_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a54_d*_i* - @angle:13-55-54 @atom:*_b*_a13_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a54_d*_i* - @angle:48-55-54 @atom:*_b*_a48_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a54_d*_i* - @angle:54-55-54 @atom:*_b*_a54_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a54_d*_i* - @angle:45-55-59 @atom:*_b*_a45_d*_i* @atom:*_b*_a55_d*_i* @atom:*_b*_a59_d*_i* - @angle:3-56-13 @atom:*_b*_a3_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-56-18 @atom:*_b*_a13_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a18_d*_i* - @angle:25-56-48 @atom:*_b*_a25_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a48_d*_i* - @angle:45-56-48 @atom:*_b*_a45_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-56-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a48_d*_i* - @angle:48-56-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a48_d*_i* - @angle:3-56-48 @atom:*_b*_a3_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-56-56 @atom:*_b*_a13_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a56_d*_i* - @angle:48-56-56 @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a56_d*_i* - @angle:25-56-59 @atom:*_b*_a25_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a59_d*_i* - @angle:48-56-59 @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a59_d*_i* - @angle:59-56-59 @atom:*_b*_a59_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a59_d*_i* - @angle:59-56-60 @atom:*_b*_a59_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a60_d*_i* - @angle:48-56-60 @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a60_d*_i* - @angle:59-56-82 @atom:*_b*_a59_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a82_d*_i* - @angle:48-56-86 @atom:*_b*_a48_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a86_d*_i* - @angle:13-56-103 @atom:*_b*_a13_d*_i* @atom:*_b*_a56_d*_i* @atom:*_b*_a103_d*_i* - @angle:3-57-3 @atom:*_b*_a3_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a3_d*_i* - @angle:3-57-45 @atom:*_b*_a3_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a45_d*_i* - @angle:45-57-47 @atom:*_b*_a45_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a47_d*_i* - @angle:3-57-47 @atom:*_b*_a3_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a47_d*_i* - @angle:45-57-48 @atom:*_b*_a45_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a48_d*_i* - @angle:3-57-48 @atom:*_b*_a3_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a48_d*_i* - @angle:48-57-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a48_d*_i* - @angle:45-57-60 @atom:*_b*_a45_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a60_d*_i* - @angle:13-57-60 @atom:*_b*_a13_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a60_d*_i* - @angle:60-57-61 @atom:*_b*_a60_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a61_d*_i* - @angle:45-57-61 @atom:*_b*_a45_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a61_d*_i* - @angle:13-57-61 @atom:*_b*_a13_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a61_d*_i* - @angle:48-57-61 @atom:*_b*_a48_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a61_d*_i* - @angle:45-57-62 @atom:*_b*_a45_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a62_d*_i* - @angle:60-57-62 @atom:*_b*_a60_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a62_d*_i* - @angle:48-57-62 @atom:*_b*_a48_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a62_d*_i* - @angle:13-57-62 @atom:*_b*_a13_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a62_d*_i* - @angle:45-57-81 @atom:*_b*_a45_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a81_d*_i* - @angle:45-57-82 @atom:*_b*_a45_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a82_d*_i* - @angle:61-57-82 @atom:*_b*_a61_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a82_d*_i* - @angle:60-57-82 @atom:*_b*_a60_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a82_d*_i* - @angle:45-57-84 @atom:*_b*_a45_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* - @angle:61-57-84 @atom:*_b*_a61_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* - @angle:60-57-84 @atom:*_b*_a60_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* - @angle:82-57-84 @atom:*_b*_a82_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* - @angle:84-57-84 @atom:*_b*_a84_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* - @angle:81-57-84 @atom:*_b*_a81_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* - @angle:45-57-85 @atom:*_b*_a45_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a85_d*_i* - @angle:82-57-85 @atom:*_b*_a82_d*_i* @atom:*_b*_a57_d*_i* @atom:*_b*_a85_d*_i* - @angle:24-59-55 @atom:*_b*_a24_d*_i* @atom:*_b*_a59_d*_i* @atom:*_b*_a55_d*_i* - @angle:49-59-56 @atom:*_b*_a49_d*_i* @atom:*_b*_a59_d*_i* @atom:*_b*_a56_d*_i* - @angle:13-59-56 @atom:*_b*_a13_d*_i* @atom:*_b*_a59_d*_i* @atom:*_b*_a56_d*_i* - @angle:55-59-56 @atom:*_b*_a55_d*_i* @atom:*_b*_a59_d*_i* @atom:*_b*_a56_d*_i* - @angle:24-59-56 @atom:*_b*_a24_d*_i* @atom:*_b*_a59_d*_i* @atom:*_b*_a56_d*_i* - @angle:56-59-56 @atom:*_b*_a56_d*_i* @atom:*_b*_a59_d*_i* @atom:*_b*_a56_d*_i* - @angle:56-59-63 @atom:*_b*_a56_d*_i* @atom:*_b*_a59_d*_i* @atom:*_b*_a63_d*_i* - @angle:13-60-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a48_d*_i* - @angle:48-60-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a48_d*_i* - @angle:56-60-57 @atom:*_b*_a56_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a57_d*_i* - @angle:57-60-60 @atom:*_b*_a57_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* - @angle:20-60-60 @atom:*_b*_a20_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* - @angle:16-60-60 @atom:*_b*_a16_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* - @angle:13-60-60 @atom:*_b*_a13_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* - @angle:24-60-60 @atom:*_b*_a24_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* - @angle:56-60-60 @atom:*_b*_a56_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* - @angle:48-60-60 @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* - @angle:3-60-60 @atom:*_b*_a3_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* - @angle:60-60-61 @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a61_d*_i* - @angle:24-60-61 @atom:*_b*_a24_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a61_d*_i* - @angle:3-60-61 @atom:*_b*_a3_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a61_d*_i* - @angle:48-60-61 @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a61_d*_i* - @angle:12-60-80 @atom:*_b*_a12_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a80_d*_i* - @angle:48-60-80 @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a80_d*_i* - @angle:80-60-81 @atom:*_b*_a80_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a81_d*_i* - @angle:12-60-81 @atom:*_b*_a12_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a81_d*_i* - @angle:48-60-81 @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a81_d*_i* - @angle:3-60-84 @atom:*_b*_a3_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a84_d*_i* - @angle:60-60-87 @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a87_d*_i* - @angle:57-60-87 @atom:*_b*_a57_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a87_d*_i* - @angle:81-60-87 @atom:*_b*_a81_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a87_d*_i* - @angle:12-60-87 @atom:*_b*_a12_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a87_d*_i* - @angle:48-60-87 @atom:*_b*_a48_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a87_d*_i* - @angle:60-60-105 @atom:*_b*_a60_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a105_d*_i* - @angle:56-60-105 @atom:*_b*_a56_d*_i* @atom:*_b*_a60_d*_i* @atom:*_b*_a105_d*_i* - @angle:48-61-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a48_d*_i* - @angle:25-61-57 @atom:*_b*_a25_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a57_d*_i* - @angle:25-61-61 @atom:*_b*_a25_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a61_d*_i* - @angle:60-61-62 @atom:*_b*_a60_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a62_d*_i* - @angle:25-61-82 @atom:*_b*_a25_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a82_d*_i* - @angle:61-61-82 @atom:*_b*_a61_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a82_d*_i* - @angle:60-61-82 @atom:*_b*_a60_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a82_d*_i* - @angle:82-61-83 @atom:*_b*_a82_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a83_d*_i* - @angle:57-61-84 @atom:*_b*_a57_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a84_d*_i* - @angle:82-61-84 @atom:*_b*_a82_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a84_d*_i* - @angle:57-61-88 @atom:*_b*_a57_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a88_d*_i* - @angle:20-61-88 @atom:*_b*_a20_d*_i* @atom:*_b*_a61_d*_i* @atom:*_b*_a88_d*_i* - @angle:49-62-57 @atom:*_b*_a49_d*_i* @atom:*_b*_a62_d*_i* @atom:*_b*_a57_d*_i* - @angle:49-62-61 @atom:*_b*_a49_d*_i* @atom:*_b*_a62_d*_i* @atom:*_b*_a61_d*_i* - @angle:57-62-61 @atom:*_b*_a57_d*_i* @atom:*_b*_a62_d*_i* @atom:*_b*_a61_d*_i* - @angle:57-62-63 @atom:*_b*_a57_d*_i* @atom:*_b*_a62_d*_i* @atom:*_b*_a63_d*_i* - @angle:61-62-63 @atom:*_b*_a61_d*_i* @atom:*_b*_a62_d*_i* @atom:*_b*_a63_d*_i* - @angle:49-62-105 @atom:*_b*_a49_d*_i* @atom:*_b*_a62_d*_i* @atom:*_b*_a105_d*_i* - @angle:63-62-105 @atom:*_b*_a63_d*_i* @atom:*_b*_a62_d*_i* @atom:*_b*_a105_d*_i* - @angle:61-62-105 @atom:*_b*_a61_d*_i* @atom:*_b*_a62_d*_i* @atom:*_b*_a105_d*_i* - @angle:5-64-5 @atom:*_b*_a5_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a5_d*_i* - @angle:4-64-5 @atom:*_b*_a4_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a5_d*_i* - @angle:4-64-13 @atom:*_b*_a4_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a13_d*_i* - @angle:5-64-20 @atom:*_b*_a5_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a20_d*_i* - @angle:20-64-20 @atom:*_b*_a20_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a20_d*_i* - @angle:13-64-20 @atom:*_b*_a13_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a20_d*_i* - @angle:4-64-20 @atom:*_b*_a4_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a20_d*_i* - @angle:4-64-48 @atom:*_b*_a4_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a48_d*_i* - @angle:5-64-48 @atom:*_b*_a5_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a48_d*_i* - @angle:20-64-48 @atom:*_b*_a20_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a48_d*_i* - @angle:5-64-52 @atom:*_b*_a5_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a52_d*_i* - @angle:13-64-52 @atom:*_b*_a13_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a52_d*_i* - @angle:20-64-52 @atom:*_b*_a20_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a52_d*_i* - @angle:52-64-52 @atom:*_b*_a52_d*_i* @atom:*_b*_a64_d*_i* @atom:*_b*_a52_d*_i* - @angle:25-65-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a65_d*_i* @atom:*_b*_a25_d*_i* - @angle:25-66-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a66_d*_i* @atom:*_b*_a25_d*_i* - @angle:78-77-78 @atom:*_b*_a78_d*_i* @atom:*_b*_a77_d*_i* @atom:*_b*_a78_d*_i* - @angle:6-79-11 @atom:*_b*_a6_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a11_d*_i* - @angle:13-79-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a13_d*_i* - @angle:5-79-13 @atom:*_b*_a5_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a13_d*_i* - @angle:5-79-23 @atom:*_b*_a5_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a23_d*_i* - @angle:13-79-23 @atom:*_b*_a13_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a23_d*_i* - @angle:23-79-23 @atom:*_b*_a23_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a23_d*_i* - @angle:13-79-24 @atom:*_b*_a13_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a24_d*_i* - @angle:23-79-24 @atom:*_b*_a23_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a24_d*_i* - @angle:13-79-44 @atom:*_b*_a13_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a44_d*_i* - @angle:23-79-44 @atom:*_b*_a23_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a44_d*_i* - @angle:13-79-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a48_d*_i* - @angle:23-79-48 @atom:*_b*_a23_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a48_d*_i* - @angle:5-79-48 @atom:*_b*_a5_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a48_d*_i* - @angle:24-79-48 @atom:*_b*_a24_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-79-82 @atom:*_b*_a13_d*_i* @atom:*_b*_a79_d*_i* @atom:*_b*_a82_d*_i* - @angle:46-80-60 @atom:*_b*_a46_d*_i* @atom:*_b*_a80_d*_i* @atom:*_b*_a60_d*_i* - @angle:2-80-60 @atom:*_b*_a2_d*_i* @atom:*_b*_a80_d*_i* @atom:*_b*_a60_d*_i* - @angle:13-80-60 @atom:*_b*_a13_d*_i* @atom:*_b*_a80_d*_i* @atom:*_b*_a60_d*_i* - @angle:46-80-84 @atom:*_b*_a46_d*_i* @atom:*_b*_a80_d*_i* @atom:*_b*_a84_d*_i* - @angle:2-80-84 @atom:*_b*_a2_d*_i* @atom:*_b*_a80_d*_i* @atom:*_b*_a84_d*_i* - @angle:13-80-84 @atom:*_b*_a13_d*_i* @atom:*_b*_a80_d*_i* @atom:*_b*_a84_d*_i* - @angle:60-80-84 @atom:*_b*_a60_d*_i* @atom:*_b*_a80_d*_i* @atom:*_b*_a84_d*_i* - @angle:12-81-57 @atom:*_b*_a12_d*_i* @atom:*_b*_a81_d*_i* @atom:*_b*_a57_d*_i* - @angle:48-81-57 @atom:*_b*_a48_d*_i* @atom:*_b*_a81_d*_i* @atom:*_b*_a57_d*_i* - @angle:57-81-60 @atom:*_b*_a57_d*_i* @atom:*_b*_a81_d*_i* @atom:*_b*_a60_d*_i* - @angle:12-81-60 @atom:*_b*_a12_d*_i* @atom:*_b*_a81_d*_i* @atom:*_b*_a60_d*_i* - @angle:48-81-60 @atom:*_b*_a48_d*_i* @atom:*_b*_a81_d*_i* @atom:*_b*_a60_d*_i* - @angle:13-82-16 @atom:*_b*_a13_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a16_d*_i* - @angle:16-82-24 @atom:*_b*_a16_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a24_d*_i* - @angle:16-82-44 @atom:*_b*_a16_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a44_d*_i* - @angle:20-82-49 @atom:*_b*_a20_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a49_d*_i* - @angle:16-82-49 @atom:*_b*_a16_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a49_d*_i* - @angle:49-82-57 @atom:*_b*_a49_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a57_d*_i* - @angle:57-82-57 @atom:*_b*_a57_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a57_d*_i* - @angle:13-82-57 @atom:*_b*_a13_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a57_d*_i* - @angle:48-82-57 @atom:*_b*_a48_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a57_d*_i* - @angle:56-82-57 @atom:*_b*_a56_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a57_d*_i* - @angle:49-82-61 @atom:*_b*_a49_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a61_d*_i* - @angle:16-82-61 @atom:*_b*_a16_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a61_d*_i* - @angle:20-82-61 @atom:*_b*_a20_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a61_d*_i* - @angle:57-82-61 @atom:*_b*_a57_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a61_d*_i* - @angle:13-82-61 @atom:*_b*_a13_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a61_d*_i* - @angle:44-82-61 @atom:*_b*_a44_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a61_d*_i* - @angle:24-82-61 @atom:*_b*_a24_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a61_d*_i* - @angle:57-82-79 @atom:*_b*_a57_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a79_d*_i* - @angle:61-82-79 @atom:*_b*_a61_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a79_d*_i* - @angle:20-82-86 @atom:*_b*_a20_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a86_d*_i* - @angle:61-82-86 @atom:*_b*_a61_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a86_d*_i* - @angle:57-82-87 @atom:*_b*_a57_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a87_d*_i* - @angle:56-82-87 @atom:*_b*_a56_d*_i* @atom:*_b*_a82_d*_i* @atom:*_b*_a87_d*_i* - @angle:49-83-61 @atom:*_b*_a49_d*_i* @atom:*_b*_a83_d*_i* @atom:*_b*_a61_d*_i* - @angle:48-83-61 @atom:*_b*_a48_d*_i* @atom:*_b*_a83_d*_i* @atom:*_b*_a61_d*_i* - @angle:13-83-61 @atom:*_b*_a13_d*_i* @atom:*_b*_a83_d*_i* @atom:*_b*_a61_d*_i* - @angle:49-83-84 @atom:*_b*_a49_d*_i* @atom:*_b*_a83_d*_i* @atom:*_b*_a84_d*_i* - @angle:61-83-84 @atom:*_b*_a61_d*_i* @atom:*_b*_a83_d*_i* @atom:*_b*_a84_d*_i* - @angle:13-83-84 @atom:*_b*_a13_d*_i* @atom:*_b*_a83_d*_i* @atom:*_b*_a84_d*_i* - @angle:13-84-16 @atom:*_b*_a13_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a16_d*_i* - @angle:13-84-20 @atom:*_b*_a13_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a20_d*_i* - @angle:16-84-24 @atom:*_b*_a16_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a24_d*_i* - @angle:20-84-49 @atom:*_b*_a20_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a49_d*_i* - @angle:16-84-49 @atom:*_b*_a16_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a49_d*_i* - @angle:48-84-49 @atom:*_b*_a48_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a49_d*_i* - @angle:49-84-50 @atom:*_b*_a49_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a50_d*_i* - @angle:20-84-50 @atom:*_b*_a20_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a50_d*_i* - @angle:49-84-57 @atom:*_b*_a49_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a57_d*_i* - @angle:13-84-57 @atom:*_b*_a13_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a57_d*_i* - @angle:48-84-57 @atom:*_b*_a48_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a57_d*_i* - @angle:3-84-57 @atom:*_b*_a3_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a57_d*_i* - @angle:57-84-58 @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a58_d*_i* - @angle:13-84-61 @atom:*_b*_a13_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a61_d*_i* - @angle:49-84-80 @atom:*_b*_a49_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a80_d*_i* - @angle:57-84-80 @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a80_d*_i* - @angle:49-84-83 @atom:*_b*_a49_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a83_d*_i* - @angle:57-84-83 @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a83_d*_i* - @angle:20-84-83 @atom:*_b*_a20_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a83_d*_i* - @angle:16-84-83 @atom:*_b*_a16_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a83_d*_i* - @angle:13-84-83 @atom:*_b*_a13_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a83_d*_i* - @angle:13-84-84 @atom:*_b*_a13_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a84_d*_i* - @angle:57-84-84 @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a84_d*_i* - @angle:61-84-84 @atom:*_b*_a61_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a84_d*_i* - @angle:20-84-86 @atom:*_b*_a20_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a86_d*_i* - @angle:57-84-86 @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a86_d*_i* - @angle:49-84-87 @atom:*_b*_a49_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* - @angle:57-84-87 @atom:*_b*_a57_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* - @angle:20-84-87 @atom:*_b*_a20_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* - @angle:16-84-87 @atom:*_b*_a16_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* - @angle:61-84-87 @atom:*_b*_a61_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* - @angle:13-84-87 @atom:*_b*_a13_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* - @angle:48-84-87 @atom:*_b*_a48_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* - @angle:86-84-87 @atom:*_b*_a86_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* - @angle:3-84-87 @atom:*_b*_a3_d*_i* @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* - @angle:49-85-57 @atom:*_b*_a49_d*_i* @atom:*_b*_a85_d*_i* @atom:*_b*_a57_d*_i* - @angle:13-85-57 @atom:*_b*_a13_d*_i* @atom:*_b*_a85_d*_i* @atom:*_b*_a57_d*_i* - @angle:49-85-85 @atom:*_b*_a49_d*_i* @atom:*_b*_a85_d*_i* @atom:*_b*_a85_d*_i* - @angle:57-85-85 @atom:*_b*_a57_d*_i* @atom:*_b*_a85_d*_i* @atom:*_b*_a85_d*_i* - @angle:13-85-85 @atom:*_b*_a13_d*_i* @atom:*_b*_a85_d*_i* @atom:*_b*_a85_d*_i* - @angle:48-86-48 @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* @atom:*_b*_a48_d*_i* - @angle:48-86-56 @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* @atom:*_b*_a56_d*_i* - @angle:48-86-82 @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* @atom:*_b*_a82_d*_i* - @angle:48-86-83 @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* @atom:*_b*_a83_d*_i* - @angle:48-86-84 @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* @atom:*_b*_a84_d*_i* - @angle:48-86-86 @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* @atom:*_b*_a86_d*_i* - @angle:56-86-86 @atom:*_b*_a56_d*_i* @atom:*_b*_a86_d*_i* @atom:*_b*_a86_d*_i* - @angle:48-86-87 @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* @atom:*_b*_a87_d*_i* - @angle:48-86-88 @atom:*_b*_a48_d*_i* @atom:*_b*_a86_d*_i* @atom:*_b*_a88_d*_i* - @angle:49-87-60 @atom:*_b*_a49_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a60_d*_i* - @angle:46-87-60 @atom:*_b*_a46_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a60_d*_i* - @angle:13-87-60 @atom:*_b*_a13_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a60_d*_i* - @angle:49-87-84 @atom:*_b*_a49_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a84_d*_i* - @angle:46-87-84 @atom:*_b*_a46_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a84_d*_i* - @angle:84-87-84 @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a84_d*_i* - @angle:82-87-84 @atom:*_b*_a82_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a84_d*_i* - @angle:2-87-84 @atom:*_b*_a2_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a84_d*_i* - @angle:13-87-84 @atom:*_b*_a13_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a84_d*_i* - @angle:3-87-84 @atom:*_b*_a3_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a84_d*_i* - @angle:60-87-84 @atom:*_b*_a60_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a84_d*_i* - @angle:84-87-86 @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a86_d*_i* - @angle:49-87-87 @atom:*_b*_a49_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a87_d*_i* - @angle:60-87-87 @atom:*_b*_a60_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a87_d*_i* - @angle:84-87-87 @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a87_d*_i* - @angle:86-87-87 @atom:*_b*_a86_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a87_d*_i* - @angle:84-87-88 @atom:*_b*_a84_d*_i* @atom:*_b*_a87_d*_i* @atom:*_b*_a88_d*_i* - @angle:48-88-49 @atom:*_b*_a48_d*_i* @atom:*_b*_a88_d*_i* @atom:*_b*_a49_d*_i* - @angle:49-88-61 @atom:*_b*_a49_d*_i* @atom:*_b*_a88_d*_i* @atom:*_b*_a61_d*_i* - @angle:13-88-61 @atom:*_b*_a13_d*_i* @atom:*_b*_a88_d*_i* @atom:*_b*_a61_d*_i* - @angle:19-88-61 @atom:*_b*_a19_d*_i* @atom:*_b*_a88_d*_i* @atom:*_b*_a61_d*_i* - @angle:61-88-87 @atom:*_b*_a61_d*_i* @atom:*_b*_a88_d*_i* @atom:*_b*_a87_d*_i* - @angle:4-89-90 @atom:*_b*_a4_d*_i* @atom:*_b*_a89_d*_i* @atom:*_b*_a90_d*_i* - @angle:90-89-91 @atom:*_b*_a90_d*_i* @atom:*_b*_a89_d*_i* @atom:*_b*_a91_d*_i* - @angle:4-89-91 @atom:*_b*_a4_d*_i* @atom:*_b*_a89_d*_i* @atom:*_b*_a91_d*_i* - @angle:13-90-89 @atom:*_b*_a13_d*_i* @atom:*_b*_a90_d*_i* @atom:*_b*_a89_d*_i* - @angle:89-90-91 @atom:*_b*_a89_d*_i* @atom:*_b*_a90_d*_i* @atom:*_b*_a91_d*_i* - @angle:13-90-91 @atom:*_b*_a13_d*_i* @atom:*_b*_a90_d*_i* @atom:*_b*_a91_d*_i* - @angle:24-91-46 @atom:*_b*_a24_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a46_d*_i* - @angle:13-91-46 @atom:*_b*_a13_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a46_d*_i* - @angle:44-91-46 @atom:*_b*_a44_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a46_d*_i* - @angle:46-91-46 @atom:*_b*_a46_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a46_d*_i* - @angle:16-91-46 @atom:*_b*_a16_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a46_d*_i* - @angle:46-91-47 @atom:*_b*_a46_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a47_d*_i* - @angle:46-91-89 @atom:*_b*_a46_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a89_d*_i* - @angle:24-91-89 @atom:*_b*_a24_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a89_d*_i* - @angle:46-91-90 @atom:*_b*_a46_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a90_d*_i* - @angle:16-91-90 @atom:*_b*_a16_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a90_d*_i* - @angle:91-91-91 @atom:*_b*_a91_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a91_d*_i* - @angle:13-91-91 @atom:*_b*_a13_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a91_d*_i* - @angle:44-91-91 @atom:*_b*_a44_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a91_d*_i* - @angle:46-91-91 @atom:*_b*_a46_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a91_d*_i* - @angle:24-91-91 @atom:*_b*_a24_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a91_d*_i* - @angle:16-91-91 @atom:*_b*_a16_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a91_d*_i* - @angle:89-91-91 @atom:*_b*_a89_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a91_d*_i* - @angle:47-91-91 @atom:*_b*_a47_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a91_d*_i* - @angle:90-91-91 @atom:*_b*_a90_d*_i* @atom:*_b*_a91_d*_i* @atom:*_b*_a91_d*_i* - @angle:13-95-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a95_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-95-46 @atom:*_b*_a13_d*_i* @atom:*_b*_a95_d*_i* @atom:*_b*_a46_d*_i* - @angle:13-101-45 @atom:*_b*_a13_d*_i* @atom:*_b*_a101_d*_i* @atom:*_b*_a45_d*_i* - @angle:45-101-45 @atom:*_b*_a45_d*_i* @atom:*_b*_a101_d*_i* @atom:*_b*_a45_d*_i* - @angle:45-101-48 @atom:*_b*_a45_d*_i* @atom:*_b*_a101_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-101-48 @atom:*_b*_a13_d*_i* @atom:*_b*_a101_d*_i* @atom:*_b*_a48_d*_i* - @angle:13-102-103 @atom:*_b*_a13_d*_i* @atom:*_b*_a102_d*_i* @atom:*_b*_a103_d*_i* - @angle:48-102-103 @atom:*_b*_a48_d*_i* @atom:*_b*_a102_d*_i* @atom:*_b*_a103_d*_i* - @angle:103-102-103 @atom:*_b*_a103_d*_i* @atom:*_b*_a102_d*_i* @atom:*_b*_a103_d*_i* - @angle:25-103-25 @atom:*_b*_a25_d*_i* @atom:*_b*_a103_d*_i* @atom:*_b*_a25_d*_i* - @angle:25-103-102 @atom:*_b*_a25_d*_i* @atom:*_b*_a103_d*_i* @atom:*_b*_a102_d*_i* - @angle:13-104-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a104_d*_i* @atom:*_b*_a13_d*_i* - @angle:3-105-10 @atom:*_b*_a3_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a10_d*_i* - @angle:3-105-13 @atom:*_b*_a3_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a13_d*_i* - @angle:3-105-45 @atom:*_b*_a3_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a45_d*_i* - @angle:45-105-47 @atom:*_b*_a45_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a47_d*_i* - @angle:13-105-47 @atom:*_b*_a13_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a47_d*_i* - @angle:3-105-47 @atom:*_b*_a3_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a47_d*_i* - @angle:3-105-51 @atom:*_b*_a3_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a51_d*_i* - @angle:47-105-51 @atom:*_b*_a47_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a51_d*_i* - @angle:45-105-60 @atom:*_b*_a45_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a60_d*_i* - @angle:6-105-60 @atom:*_b*_a6_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a60_d*_i* - @angle:10-105-60 @atom:*_b*_a10_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a60_d*_i* - @angle:13-105-60 @atom:*_b*_a13_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a60_d*_i* - @angle:51-105-60 @atom:*_b*_a51_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a60_d*_i* - @angle:45-105-62 @atom:*_b*_a45_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a62_d*_i* - @angle:60-105-62 @atom:*_b*_a60_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a62_d*_i* - @angle:6-105-62 @atom:*_b*_a6_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a62_d*_i* - @angle:10-105-62 @atom:*_b*_a10_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a62_d*_i* - @angle:13-105-62 @atom:*_b*_a13_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a62_d*_i* - @angle:51-105-62 @atom:*_b*_a51_d*_i* @atom:*_b*_a105_d*_i* @atom:*_b*_a62_d*_i* - @angle:4-106-24 @atom:*_b*_a4_d*_i* @atom:*_b*_a106_d*_i* @atom:*_b*_a24_d*_i* - @angle:24-106-24 @atom:*_b*_a24_d*_i* @atom:*_b*_a106_d*_i* @atom:*_b*_a24_d*_i* - @angle:13-107-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a107_d*_i* @atom:*_b*_a13_d*_i* - @angle:3-107-13 @atom:*_b*_a3_d*_i* @atom:*_b*_a107_d*_i* @atom:*_b*_a13_d*_i* - @angle:1-108-13 @atom:*_b*_a1_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-108-13 @atom:*_b*_a13_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a13_d*_i* - @angle:13-108-20 @atom:*_b*_a13_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a20_d*_i* - @angle:20-108-20 @atom:*_b*_a20_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a20_d*_i* - @angle:13-108-21 @atom:*_b*_a13_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a21_d*_i* - @angle:45-108-45 @atom:*_b*_a45_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a45_d*_i* - @angle:13-108-45 @atom:*_b*_a13_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a45_d*_i* - @angle:46-108-46 @atom:*_b*_a46_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a46_d*_i* - @angle:13-108-46 @atom:*_b*_a13_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a46_d*_i* - @angle:13-108-65 @atom:*_b*_a13_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a65_d*_i* - @angle:13-108-66 @atom:*_b*_a13_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a66_d*_i* - @angle:13-108-108 @atom:*_b*_a13_d*_i* @atom:*_b*_a108_d*_i* @atom:*_b*_a108_d*_i* - @angle:46-109-48 @atom:*_b*_a46_d*_i* @atom:*_b*_a109_d*_i* @atom:*_b*_a48_d*_i* - @angle:46-109-50 @atom:*_b*_a46_d*_i* @atom:*_b*_a109_d*_i* @atom:*_b*_a50_d*_i* - @angle:13-109-50 @atom:*_b*_a13_d*_i* @atom:*_b*_a109_d*_i* @atom:*_b*_a50_d*_i* - @angle:46-109-109 @atom:*_b*_a46_d*_i* @atom:*_b*_a109_d*_i* @atom:*_b*_a109_d*_i* - @angle:13-109-109 @atom:*_b*_a13_d*_i* @atom:*_b*_a109_d*_i* @atom:*_b*_a109_d*_i* - @angle:50-109-109 @atom:*_b*_a50_d*_i* @atom:*_b*_a109_d*_i* @atom:*_b*_a109_d*_i* - @angle:48-109-109 @atom:*_b*_a48_d*_i* @atom:*_b*_a109_d*_i* @atom:*_b*_a109_d*_i* - @angle:4-110-47 @atom:*_b*_a4_d*_i* @atom:*_b*_a110_d*_i* @atom:*_b*_a47_d*_i* - @angle:47-110-47 @atom:*_b*_a47_d*_i* @atom:*_b*_a110_d*_i* @atom:*_b*_a47_d*_i* + @angle:025_001_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a001*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:001_002_002 @atom:*_b*_a001*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* + @angle:002_002_002 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* + @angle:002_002_003 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a003*_d*_i* + @angle:002_002_005 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a005*_d*_i* + @angle:002_002_006 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:006_002_006 @atom:*_b*_a006*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:005_002_006 @atom:*_b*_a005*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:002_002_010 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:003_002_010 @atom:*_b*_a003*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:006_002_010 @atom:*_b*_a006*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:010_002_010 @atom:*_b*_a010*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:005_002_010 @atom:*_b*_a005*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:010_002_012 @atom:*_b*_a010*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a012*_d*_i* + @angle:006_002_013 @atom:*_b*_a006*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:010_002_015 @atom:*_b*_a010*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a015*_d*_i* + @angle:002_002_016 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a016*_d*_i* + @angle:010_002_016 @atom:*_b*_a010*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a016*_d*_i* + @angle:002_002_020 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:006_002_020 @atom:*_b*_a006*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:010_002_020 @atom:*_b*_a010*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:003_002_024 @atom:*_b*_a003*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:002_002_024 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:002_002_044 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:006_002_044 @atom:*_b*_a006*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:010_002_044 @atom:*_b*_a010*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:013_002_044 @atom:*_b*_a013*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:003_002_044 @atom:*_b*_a003*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:002_002_048 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:010_002_048 @atom:*_b*_a010*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:002_002_051 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:006_002_051 @atom:*_b*_a006*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:002_002_053 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a053*_d*_i* + @angle:002_002_055 @atom:*_b*_a002*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a055*_d*_i* + @angle:010_002_080 @atom:*_b*_a010*_d*_i* @atom:*_b*_a002*_d*_i* @atom:*_b*_a080*_d*_i* + @angle:002_003_004 @atom:*_b*_a002*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a004*_d*_i* + @angle:001_003_004 @atom:*_b*_a001*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a004*_d*_i* + @angle:003_003_004 @atom:*_b*_a003*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a004*_d*_i* + @angle:004_003_004 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a004*_d*_i* + @angle:004_003_005 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a005*_d*_i* + @angle:004_003_006 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:005_003_010 @atom:*_b*_a005*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:004_003_010 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:005_003_012 @atom:*_b*_a005*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a012*_d*_i* + @angle:012_003_012 @atom:*_b*_a012*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a012*_d*_i* + @angle:005_003_013 @atom:*_b*_a005*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_003_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:001_003_013 @atom:*_b*_a001*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:003_003_013 @atom:*_b*_a003*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:004_003_013 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:010_003_020 @atom:*_b*_a010*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:013_003_020 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:004_003_020 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:013_003_021 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a021*_d*_i* + @angle:004_003_021 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a021*_d*_i* + @angle:024_003_024 @atom:*_b*_a024*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:002_003_024 @atom:*_b*_a002*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:003_003_024 @atom:*_b*_a003*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:006_003_024 @atom:*_b*_a006*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:010_003_024 @atom:*_b*_a010*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:013_003_024 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:004_003_024 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:020_003_024 @atom:*_b*_a020*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:013_003_044 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:004_003_044 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:013_003_046 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:046_003_046 @atom:*_b*_a046*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:004_003_046 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:024_003_046 @atom:*_b*_a024*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:005_003_046 @atom:*_b*_a005*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:020_003_046 @atom:*_b*_a020*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:024_003_047 @atom:*_b*_a024*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:004_003_047 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:046_003_048 @atom:*_b*_a046*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:024_003_048 @atom:*_b*_a024*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_003_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:005_003_048 @atom:*_b*_a005*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:004_003_048 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:020_003_048 @atom:*_b*_a020*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:048_003_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_003_050 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:046_003_050 @atom:*_b*_a046*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:004_003_050 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:010_003_052 @atom:*_b*_a010*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:002_003_052 @atom:*_b*_a002*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:006_003_052 @atom:*_b*_a006*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:013_003_052 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:048_003_052 @atom:*_b*_a048*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:004_003_052 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:052_003_052 @atom:*_b*_a052*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:046_003_056 @atom:*_b*_a046*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:004_003_056 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:047_003_057 @atom:*_b*_a047*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:056_003_057 @atom:*_b*_a056*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:057_003_057 @atom:*_b*_a057*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:004_003_057 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:024_003_060 @atom:*_b*_a024*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:057_003_060 @atom:*_b*_a057*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:004_003_060 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:013_003_065 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:004_003_065 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:044_003_084 @atom:*_b*_a044*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:004_003_084 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:004_003_087 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:057_003_105 @atom:*_b*_a057*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:056_003_105 @atom:*_b*_a056*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:004_003_105 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:013_003_107 @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a107*_d*_i* + @angle:004_003_107 @atom:*_b*_a004*_d*_i* @atom:*_b*_a003*_d*_i* @atom:*_b*_a107*_d*_i* + @angle:025_004_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a004*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:003_004_025 @atom:*_b*_a003*_d*_i* @atom:*_b*_a004*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:003_005_007 @atom:*_b*_a003*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a007*_d*_i* + @angle:002_005_007 @atom:*_b*_a002*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a007*_d*_i* + @angle:006_005_007 @atom:*_b*_a006*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a007*_d*_i* + @angle:007_005_010 @atom:*_b*_a007*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:007_005_013 @atom:*_b*_a007*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:007_005_024 @atom:*_b*_a007*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:025_005_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:007_005_025 @atom:*_b*_a007*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:013_005_025 @atom:*_b*_a013*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:007_005_047 @atom:*_b*_a007*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:025_005_048 @atom:*_b*_a025*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:007_005_048 @atom:*_b*_a007*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:007_005_051 @atom:*_b*_a007*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:007_005_064 @atom:*_b*_a007*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:013_005_064 @atom:*_b*_a013*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:007_005_079 @atom:*_b*_a007*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:007_005_106 @atom:*_b*_a007*_d*_i* @atom:*_b*_a005*_d*_i* @atom:*_b*_a106*_d*_i* + @angle:005_007_025 @atom:*_b*_a005*_d*_i* @atom:*_b*_a007*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:025_007_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a007*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:002_010_002 @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a002*_d*_i* + @angle:002_010_003 @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a003*_d*_i* + @angle:002_010_005 @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a005*_d*_i* + @angle:003_010_006 @atom:*_b*_a003*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:006_010_006 @atom:*_b*_a006*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:002_010_006 @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:005_010_006 @atom:*_b*_a005*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:003_010_010 @atom:*_b*_a003*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:002_010_010 @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:006_010_010 @atom:*_b*_a006*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:010_010_010 @atom:*_b*_a010*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:005_010_010 @atom:*_b*_a005*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:002_010_020 @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:006_010_020 @atom:*_b*_a006*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:010_010_020 @atom:*_b*_a010*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:003_010_024 @atom:*_b*_a003*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:006_010_024 @atom:*_b*_a006*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:002_010_024 @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:010_010_024 @atom:*_b*_a010*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:002_010_044 @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:006_010_044 @atom:*_b*_a006*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:010_010_044 @atom:*_b*_a010*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:013_010_044 @atom:*_b*_a013*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:003_010_044 @atom:*_b*_a003*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:002_010_048 @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:020_010_048 @atom:*_b*_a020*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:002_010_105 @atom:*_b*_a002*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:010_010_105 @atom:*_b*_a010*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:020_010_105 @atom:*_b*_a020*_d*_i* @atom:*_b*_a010*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:002_011_002 @atom:*_b*_a002*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a002*_d*_i* + @angle:002_011_006 @atom:*_b*_a002*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:006_011_006 @atom:*_b*_a006*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:002_011_009 @atom:*_b*_a002*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a009*_d*_i* + @angle:006_011_009 @atom:*_b*_a006*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a009*_d*_i* + @angle:009_011_010 @atom:*_b*_a009*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:002_011_010 @atom:*_b*_a002*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:006_011_010 @atom:*_b*_a006*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:010_011_010 @atom:*_b*_a010*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:002_011_011 @atom:*_b*_a002*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:006_011_011 @atom:*_b*_a006*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:009_011_011 @atom:*_b*_a009*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:010_011_011 @atom:*_b*_a010*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:011_011_011 @atom:*_b*_a011*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:009_011_013 @atom:*_b*_a009*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:011_011_013 @atom:*_b*_a011*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:002_011_013 @atom:*_b*_a002*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:006_011_013 @atom:*_b*_a006*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:010_011_013 @atom:*_b*_a010*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_011_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:009_011_014 @atom:*_b*_a009*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a014*_d*_i* + @angle:011_011_014 @atom:*_b*_a011*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a014*_d*_i* + @angle:009_011_079 @atom:*_b*_a009*_d*_i* @atom:*_b*_a011*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:002_012_012 @atom:*_b*_a002*_d*_i* @atom:*_b*_a012*_d*_i* @atom:*_b*_a012*_d*_i* + @angle:003_012_012 @atom:*_b*_a003*_d*_i* @atom:*_b*_a012*_d*_i* @atom:*_b*_a012*_d*_i* + @angle:012_012_012 @atom:*_b*_a012*_d*_i* @atom:*_b*_a012*_d*_i* @atom:*_b*_a012*_d*_i* + @angle:012_012_048 @atom:*_b*_a012*_d*_i* @atom:*_b*_a012*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:012_012_060 @atom:*_b*_a012*_d*_i* @atom:*_b*_a012*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:012_012_081 @atom:*_b*_a012*_d*_i* @atom:*_b*_a012*_d*_i* @atom:*_b*_a081*_d*_i* + @angle:001_013_001 @atom:*_b*_a001*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a001*_d*_i* + @angle:002_013_002 @atom:*_b*_a002*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a002*_d*_i* + @angle:001_013_003 @atom:*_b*_a001*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* + @angle:002_013_003 @atom:*_b*_a002*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* + @angle:003_013_003 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a003*_d*_i* + @angle:002_013_006 @atom:*_b*_a002*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:006_013_006 @atom:*_b*_a006*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:003_013_006 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:001_013_013 @atom:*_b*_a001*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:005_013_013 @atom:*_b*_a005*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_013_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:003_013_013 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_013_015 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a015*_d*_i* + @angle:013_013_016 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a016*_d*_i* + @angle:013_013_019 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a019*_d*_i* + @angle:003_013_020 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:013_013_020 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:003_013_021 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a021*_d*_i* + @angle:013_013_021 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a021*_d*_i* + @angle:021_013_021 @atom:*_b*_a021*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a021*_d*_i* + @angle:013_013_022 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a022*_d*_i* + @angle:020_013_024 @atom:*_b*_a020*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:003_013_024 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:002_013_024 @atom:*_b*_a002*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:013_013_024 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:016_013_044 @atom:*_b*_a016*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:002_013_044 @atom:*_b*_a002*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:006_013_044 @atom:*_b*_a006*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:010_013_044 @atom:*_b*_a010*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:013_013_044 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:003_013_044 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:046_013_046 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:018_013_046 @atom:*_b*_a018*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:019_013_046 @atom:*_b*_a019*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:002_013_046 @atom:*_b*_a002*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:003_013_046 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:005_013_046 @atom:*_b*_a005*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:015_013_046 @atom:*_b*_a015*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:016_013_046 @atom:*_b*_a016*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:020_013_046 @atom:*_b*_a020*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:022_013_046 @atom:*_b*_a022*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:024_013_046 @atom:*_b*_a024*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:044_013_046 @atom:*_b*_a044*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:013_013_046 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:001_013_046 @atom:*_b*_a001*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:021_013_046 @atom:*_b*_a021*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:046_013_047 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:001_013_047 @atom:*_b*_a001*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:013_013_047 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:047_013_047 @atom:*_b*_a047*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:046_013_048 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:047_013_048 @atom:*_b*_a047*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:048_013_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:001_013_048 @atom:*_b*_a001*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:005_013_048 @atom:*_b*_a005*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:020_013_048 @atom:*_b*_a020*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:016_013_048 @atom:*_b*_a016*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:003_013_048 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:002_013_048 @atom:*_b*_a002*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_013_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:044_013_048 @atom:*_b*_a044*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:046_013_050 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:046_013_051 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:005_013_051 @atom:*_b*_a005*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:013_013_051 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:046_013_053 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a053*_d*_i* + @angle:003_013_053 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a053*_d*_i* + @angle:013_013_053 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a053*_d*_i* + @angle:046_013_055 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a055*_d*_i* + @angle:013_013_055 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a055*_d*_i* + @angle:046_013_056 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:003_013_056 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:013_013_056 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:046_013_057 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:048_013_057 @atom:*_b*_a048*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:046_013_060 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:013_013_060 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:046_013_064 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:013_013_064 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:048_013_064 @atom:*_b*_a048*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:046_013_065 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:003_013_065 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:013_013_065 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:048_013_065 @atom:*_b*_a048*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:065_013_065 @atom:*_b*_a065*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:046_013_066 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a066*_d*_i* + @angle:013_013_066 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a066*_d*_i* + @angle:046_013_079 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:013_013_079 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:001_013_079 @atom:*_b*_a001*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:046_013_080 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a080*_d*_i* + @angle:013_013_080 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a080*_d*_i* + @angle:046_013_083 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a083*_d*_i* + @angle:013_013_083 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a083*_d*_i* + @angle:046_013_084 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:016_013_084 @atom:*_b*_a016*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:013_013_084 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:046_013_085 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a085*_d*_i* + @angle:013_013_085 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a085*_d*_i* + @angle:046_013_087 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:013_013_087 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:046_013_090 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a090*_d*_i* + @angle:013_013_090 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a090*_d*_i* + @angle:003_013_090 @atom:*_b*_a003*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a090*_d*_i* + @angle:046_013_091 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:046_013_095 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a095*_d*_i* + @angle:013_013_095 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a095*_d*_i* + @angle:046_013_101 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a101*_d*_i* + @angle:013_013_101 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a101*_d*_i* + @angle:046_013_102 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a102*_d*_i* + @angle:013_013_102 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a102*_d*_i* + @angle:046_013_104 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a104*_d*_i* + @angle:013_013_104 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a104*_d*_i* + @angle:046_013_105 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:013_013_105 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:020_013_105 @atom:*_b*_a020*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:046_013_107 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a107*_d*_i* + @angle:013_013_107 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a107*_d*_i* + @angle:046_013_108 @atom:*_b*_a046*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a108*_d*_i* + @angle:013_013_108 @atom:*_b*_a013*_d*_i* @atom:*_b*_a013*_d*_i* @atom:*_b*_a108*_d*_i* + @angle:002_014_002 @atom:*_b*_a002*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a002*_d*_i* + @angle:002_014_006 @atom:*_b*_a002*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:006_014_006 @atom:*_b*_a006*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:002_014_009 @atom:*_b*_a002*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a009*_d*_i* + @angle:006_014_009 @atom:*_b*_a006*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a009*_d*_i* + @angle:009_014_010 @atom:*_b*_a009*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:002_014_010 @atom:*_b*_a002*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:006_014_010 @atom:*_b*_a006*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:010_014_010 @atom:*_b*_a010*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:002_014_011 @atom:*_b*_a002*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:006_014_011 @atom:*_b*_a006*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:009_014_011 @atom:*_b*_a009*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:010_014_011 @atom:*_b*_a010*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:011_014_011 @atom:*_b*_a011*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:009_014_013 @atom:*_b*_a009*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:011_014_013 @atom:*_b*_a011*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:002_014_013 @atom:*_b*_a002*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:006_014_013 @atom:*_b*_a006*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:010_014_013 @atom:*_b*_a010*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_014_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:002_014_014 @atom:*_b*_a002*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a014*_d*_i* + @angle:006_014_014 @atom:*_b*_a006*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a014*_d*_i* + @angle:009_014_014 @atom:*_b*_a009*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a014*_d*_i* + @angle:010_014_014 @atom:*_b*_a010*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a014*_d*_i* + @angle:011_014_014 @atom:*_b*_a011*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a014*_d*_i* + @angle:013_014_014 @atom:*_b*_a013*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a014*_d*_i* + @angle:014_014_014 @atom:*_b*_a014*_d*_i* @atom:*_b*_a014*_d*_i* @atom:*_b*_a014*_d*_i* + @angle:017_015_017 @atom:*_b*_a017*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a017*_d*_i* + @angle:002_015_017 @atom:*_b*_a002*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a017*_d*_i* + @angle:006_015_017 @atom:*_b*_a006*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a017*_d*_i* + @angle:013_015_017 @atom:*_b*_a013*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a017*_d*_i* + @angle:025_015_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:013_015_025 @atom:*_b*_a013*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:033_015_033 @atom:*_b*_a033*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:002_015_033 @atom:*_b*_a002*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:006_015_033 @atom:*_b*_a006*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:013_015_033 @atom:*_b*_a013*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:017_015_033 @atom:*_b*_a017*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:017_015_048 @atom:*_b*_a017*_d*_i* @atom:*_b*_a015*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:002_016_006 @atom:*_b*_a002*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:013_016_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:002_016_016 @atom:*_b*_a002*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a016*_d*_i* + @angle:006_016_016 @atom:*_b*_a006*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a016*_d*_i* + @angle:013_016_016 @atom:*_b*_a013*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a016*_d*_i* + @angle:013_016_019 @atom:*_b*_a013*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a019*_d*_i* + @angle:025_016_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:013_016_025 @atom:*_b*_a013*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:033_016_033 @atom:*_b*_a033*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:002_016_033 @atom:*_b*_a002*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:006_016_033 @atom:*_b*_a006*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:013_016_033 @atom:*_b*_a013*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:016_016_033 @atom:*_b*_a016*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:013_016_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:047_016_048 @atom:*_b*_a047*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:024_016_060 @atom:*_b*_a024*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:025_016_061 @atom:*_b*_a025*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:025_016_082 @atom:*_b*_a025*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:060_016_082 @atom:*_b*_a060*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:025_016_084 @atom:*_b*_a025*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:082_016_084 @atom:*_b*_a082*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:060_016_084 @atom:*_b*_a060*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:084_016_084 @atom:*_b*_a084*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:013_016_091 @atom:*_b*_a013*_d*_i* @atom:*_b*_a016*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:015_017_025 @atom:*_b*_a015*_d*_i* @atom:*_b*_a017*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:025_017_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a017*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:013_018_019 @atom:*_b*_a013*_d*_i* @atom:*_b*_a018*_d*_i* @atom:*_b*_a019*_d*_i* + @angle:019_018_048 @atom:*_b*_a019*_d*_i* @atom:*_b*_a018*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:018_018_056 @atom:*_b*_a018*_d*_i* @atom:*_b*_a018*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:013_019_018 @atom:*_b*_a013*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a018*_d*_i* + @angle:016_019_019 @atom:*_b*_a016*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a019*_d*_i* + @angle:013_019_019 @atom:*_b*_a013*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a019*_d*_i* + @angle:018_019_025 @atom:*_b*_a018*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:019_019_046 @atom:*_b*_a019*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:018_019_047 @atom:*_b*_a018*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:019_019_047 @atom:*_b*_a019*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:018_019_048 @atom:*_b*_a018*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:019_019_048 @atom:*_b*_a019*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:019_019_050 @atom:*_b*_a019*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:018_019_055 @atom:*_b*_a018*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a055*_d*_i* + @angle:018_019_088 @atom:*_b*_a018*_d*_i* @atom:*_b*_a019*_d*_i* @atom:*_b*_a088*_d*_i* + @angle:002_020_002 @atom:*_b*_a002*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a002*_d*_i* + @angle:002_020_003 @atom:*_b*_a002*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a003*_d*_i* + @angle:003_020_006 @atom:*_b*_a003*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:002_020_006 @atom:*_b*_a002*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:002_020_007 @atom:*_b*_a002*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a007*_d*_i* + @angle:007_020_010 @atom:*_b*_a007*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:003_020_010 @atom:*_b*_a003*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:010_020_010 @atom:*_b*_a010*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:013_020_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:003_020_013 @atom:*_b*_a003*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:025_020_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:013_020_025 @atom:*_b*_a013*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:013_020_047 @atom:*_b*_a013*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:025_020_048 @atom:*_b*_a025*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_020_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:047_020_048 @atom:*_b*_a047*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:048_020_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:003_020_048 @atom:*_b*_a003*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:002_020_048 @atom:*_b*_a002*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_020_051 @atom:*_b*_a013*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:002_020_051 @atom:*_b*_a002*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:006_020_051 @atom:*_b*_a006*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:010_020_051 @atom:*_b*_a010*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:024_020_060 @atom:*_b*_a024*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:025_020_061 @atom:*_b*_a025*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:002_020_064 @atom:*_b*_a002*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:006_020_064 @atom:*_b*_a006*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:010_020_064 @atom:*_b*_a010*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:013_020_064 @atom:*_b*_a013*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:048_020_064 @atom:*_b*_a048*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:064_020_064 @atom:*_b*_a064*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:025_020_082 @atom:*_b*_a025*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:060_020_082 @atom:*_b*_a060*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:082_020_082 @atom:*_b*_a082*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:025_020_084 @atom:*_b*_a025*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:082_020_084 @atom:*_b*_a082*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:060_020_084 @atom:*_b*_a060*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:084_020_084 @atom:*_b*_a084*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:061_020_084 @atom:*_b*_a061*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:108_020_108 @atom:*_b*_a108*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a108*_d*_i* + @angle:013_020_108 @atom:*_b*_a013*_d*_i* @atom:*_b*_a020*_d*_i* @atom:*_b*_a108*_d*_i* + @angle:025_021_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a021*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:013_022_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a022*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_022_023 @atom:*_b*_a013*_d*_i* @atom:*_b*_a022*_d*_i* @atom:*_b*_a023*_d*_i* + @angle:023_022_025 @atom:*_b*_a023*_d*_i* @atom:*_b*_a022*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:002_024_003 @atom:*_b*_a002*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a003*_d*_i* + @angle:003_024_003 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a003*_d*_i* + @angle:003_024_005 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a005*_d*_i* + @angle:002_024_006 @atom:*_b*_a002*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:003_024_006 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:002_024_010 @atom:*_b*_a002*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:003_024_010 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:013_024_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:003_024_013 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:003_024_016 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a016*_d*_i* + @angle:003_024_020 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:003_024_025 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:025_024_045 @atom:*_b*_a025*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:005_024_045 @atom:*_b*_a005*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:003_024_045 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:045_024_045 @atom:*_b*_a045*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:002_024_045 @atom:*_b*_a002*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:006_024_045 @atom:*_b*_a006*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:010_024_045 @atom:*_b*_a010*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:013_024_045 @atom:*_b*_a013*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:045_024_048 @atom:*_b*_a045*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_024_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:003_024_048 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:048_024_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:054_024_054 @atom:*_b*_a054*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a054*_d*_i* + @angle:045_024_059 @atom:*_b*_a045*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a059*_d*_i* + @angle:003_024_059 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a059*_d*_i* + @angle:013_024_079 @atom:*_b*_a013*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:045_024_079 @atom:*_b*_a045*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:045_024_084 @atom:*_b*_a045*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:048_024_084 @atom:*_b*_a048*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:016_024_086 @atom:*_b*_a016*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:045_024_087 @atom:*_b*_a045*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:048_024_087 @atom:*_b*_a048*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:045_024_088 @atom:*_b*_a045*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a088*_d*_i* + @angle:048_024_088 @atom:*_b*_a048*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a088*_d*_i* + @angle:045_024_091 @atom:*_b*_a045*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:003_024_091 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:048_024_103 @atom:*_b*_a048*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a103*_d*_i* + @angle:003_024_106 @atom:*_b*_a003*_d*_i* @atom:*_b*_a024*_d*_i* @atom:*_b*_a106*_d*_i* + @angle:025_025_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a025*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:032_031_032 @atom:*_b*_a032*_d*_i* @atom:*_b*_a031*_d*_i* @atom:*_b*_a032*_d*_i* + @angle:032_031_033 @atom:*_b*_a032*_d*_i* @atom:*_b*_a031*_d*_i* @atom:*_b*_a033*_d*_i* + @angle:035_034_035 @atom:*_b*_a035*_d*_i* @atom:*_b*_a034*_d*_i* @atom:*_b*_a035*_d*_i* + @angle:037_036_037 @atom:*_b*_a037*_d*_i* @atom:*_b*_a036*_d*_i* @atom:*_b*_a037*_d*_i* + @angle:037_036_038 @atom:*_b*_a037*_d*_i* @atom:*_b*_a036*_d*_i* @atom:*_b*_a038*_d*_i* + @angle:040_039_040 @atom:*_b*_a040*_d*_i* @atom:*_b*_a039*_d*_i* @atom:*_b*_a040*_d*_i* + @angle:041_039_041 @atom:*_b*_a041*_d*_i* @atom:*_b*_a039*_d*_i* @atom:*_b*_a041*_d*_i* + @angle:040_039_041 @atom:*_b*_a040*_d*_i* @atom:*_b*_a039*_d*_i* @atom:*_b*_a041*_d*_i* + @angle:043_042_043 @atom:*_b*_a043*_d*_i* @atom:*_b*_a042*_d*_i* @atom:*_b*_a043*_d*_i* + @angle:002_044_002 @atom:*_b*_a002*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a002*_d*_i* + @angle:002_044_006 @atom:*_b*_a002*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:006_044_006 @atom:*_b*_a006*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:002_044_010 @atom:*_b*_a002*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:006_044_010 @atom:*_b*_a006*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:010_044_010 @atom:*_b*_a010*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:002_044_013 @atom:*_b*_a002*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:006_044_013 @atom:*_b*_a006*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:010_044_013 @atom:*_b*_a010*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_044_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:003_044_013 @atom:*_b*_a003*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:025_044_045 @atom:*_b*_a025*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:013_044_045 @atom:*_b*_a013*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:002_044_045 @atom:*_b*_a002*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:006_044_045 @atom:*_b*_a006*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:010_044_045 @atom:*_b*_a010*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:045_044_045 @atom:*_b*_a045*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:025_044_048 @atom:*_b*_a025*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:045_044_048 @atom:*_b*_a045*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_044_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:048_044_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:003_044_048 @atom:*_b*_a003*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:045_044_079 @atom:*_b*_a045*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:013_044_079 @atom:*_b*_a013*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:048_044_079 @atom:*_b*_a048*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:048_044_091 @atom:*_b*_a048*_d*_i* @atom:*_b*_a044*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:025_045_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a045*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:025_045_044 @atom:*_b*_a025*_d*_i* @atom:*_b*_a045*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:025_046_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a046*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:013_046_025 @atom:*_b*_a013*_d*_i* @atom:*_b*_a046*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:001_047_001 @atom:*_b*_a001*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a001*_d*_i* + @angle:001_047_003 @atom:*_b*_a001*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a003*_d*_i* + @angle:003_047_006 @atom:*_b*_a003*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:003_047_013 @atom:*_b*_a003*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_047_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:025_047_046 @atom:*_b*_a025*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:020_047_046 @atom:*_b*_a020*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:013_047_046 @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:046_047_046 @atom:*_b*_a046*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:003_047_046 @atom:*_b*_a003*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:019_047_046 @atom:*_b*_a019*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:001_047_046 @atom:*_b*_a001*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:021_047_046 @atom:*_b*_a021*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:025_047_047 @atom:*_b*_a025*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:046_047_047 @atom:*_b*_a046*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:005_047_047 @atom:*_b*_a005*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:020_047_047 @atom:*_b*_a020*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:013_047_047 @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:019_047_047 @atom:*_b*_a019*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:021_047_047 @atom:*_b*_a021*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:001_047_047 @atom:*_b*_a001*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:016_047_047 @atom:*_b*_a016*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:003_047_047 @atom:*_b*_a003*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:046_047_048 @atom:*_b*_a046*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:047_047_048 @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_047_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:025_047_050 @atom:*_b*_a025*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:046_047_050 @atom:*_b*_a046*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:005_047_050 @atom:*_b*_a005*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:020_047_050 @atom:*_b*_a020*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:013_047_050 @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:046_047_057 @atom:*_b*_a046*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:013_047_057 @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:020_047_057 @atom:*_b*_a020*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:047_047_057 @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:016_047_057 @atom:*_b*_a016*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:057_047_058 @atom:*_b*_a057*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a058*_d*_i* + @angle:047_047_058 @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a058*_d*_i* + @angle:046_047_065 @atom:*_b*_a046*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:047_047_065 @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:046_047_091 @atom:*_b*_a046*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:003_047_091 @atom:*_b*_a003*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:047_047_091 @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:046_047_105 @atom:*_b*_a046*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:058_047_105 @atom:*_b*_a058*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:013_047_105 @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:020_047_105 @atom:*_b*_a020*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:047_047_105 @atom:*_b*_a047*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:016_047_105 @atom:*_b*_a016*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:046_047_110 @atom:*_b*_a046*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a110*_d*_i* + @angle:013_047_110 @atom:*_b*_a013*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a110*_d*_i* + @angle:048_047_110 @atom:*_b*_a048*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a110*_d*_i* + @angle:001_047_110 @atom:*_b*_a001*_d*_i* @atom:*_b*_a047*_d*_i* @atom:*_b*_a110*_d*_i* + @angle:002_048_012 @atom:*_b*_a002*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a012*_d*_i* + @angle:012_048_012 @atom:*_b*_a012*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a012*_d*_i* + @angle:003_048_013 @atom:*_b*_a003*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:025_048_048 @atom:*_b*_a025*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:048_048_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:002_048_048 @atom:*_b*_a002*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:005_048_048 @atom:*_b*_a005*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:010_048_048 @atom:*_b*_a010*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_048_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:015_048_048 @atom:*_b*_a015*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:019_048_048 @atom:*_b*_a019*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:020_048_048 @atom:*_b*_a020*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:024_048_048 @atom:*_b*_a024*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:044_048_048 @atom:*_b*_a044*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:047_048_048 @atom:*_b*_a047*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:021_048_048 @atom:*_b*_a021*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:001_048_048 @atom:*_b*_a001*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:018_048_048 @atom:*_b*_a018*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:016_048_048 @atom:*_b*_a016*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:003_048_048 @atom:*_b*_a003*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:025_048_049 @atom:*_b*_a025*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a049*_d*_i* + @angle:024_048_049 @atom:*_b*_a024*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a049*_d*_i* + @angle:003_048_049 @atom:*_b*_a003*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a049*_d*_i* + @angle:048_048_049 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a049*_d*_i* + @angle:048_048_050 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:048_048_053 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a053*_d*_i* + @angle:055_048_055 @atom:*_b*_a055*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a055*_d*_i* + @angle:047_048_055 @atom:*_b*_a047*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a055*_d*_i* + @angle:048_048_055 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a055*_d*_i* + @angle:049_048_056 @atom:*_b*_a049*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:013_048_056 @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:044_048_056 @atom:*_b*_a044*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:055_048_056 @atom:*_b*_a055*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:005_048_056 @atom:*_b*_a005*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:047_048_056 @atom:*_b*_a047*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:050_048_056 @atom:*_b*_a050*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:048_048_056 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:021_048_056 @atom:*_b*_a021*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:049_048_057 @atom:*_b*_a049*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:048_048_057 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:055_048_057 @atom:*_b*_a055*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:013_048_057 @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:047_048_057 @atom:*_b*_a047*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:056_048_057 @atom:*_b*_a056*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:049_048_060 @atom:*_b*_a049*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:048_048_060 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:057_048_060 @atom:*_b*_a057*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:056_048_060 @atom:*_b*_a056*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:055_048_060 @atom:*_b*_a055*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:002_048_060 @atom:*_b*_a002*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:013_048_060 @atom:*_b*_a013*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:049_048_061 @atom:*_b*_a049*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:048_048_061 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:057_048_061 @atom:*_b*_a057*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:048_048_064 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a064*_d*_i* + @angle:048_048_065 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:048_048_066 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a066*_d*_i* + @angle:048_048_079 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:049_048_081 @atom:*_b*_a049*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a081*_d*_i* + @angle:048_048_081 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a081*_d*_i* + @angle:049_048_084 @atom:*_b*_a049*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:060_048_084 @atom:*_b*_a060*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:048_048_084 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:049_048_086 @atom:*_b*_a049*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:048_048_086 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:056_048_086 @atom:*_b*_a056*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:049_048_088 @atom:*_b*_a049*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a088*_d*_i* + @angle:101_048_101 @atom:*_b*_a101*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a101*_d*_i* + @angle:056_048_101 @atom:*_b*_a056*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a101*_d*_i* + @angle:048_048_102 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a102*_d*_i* + @angle:048_048_109 @atom:*_b*_a048*_d*_i* @atom:*_b*_a048*_d*_i* @atom:*_b*_a109*_d*_i* + @angle:025_050_046 @atom:*_b*_a025*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:019_050_046 @atom:*_b*_a019*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:025_050_047 @atom:*_b*_a025*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:046_050_047 @atom:*_b*_a046*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:003_050_047 @atom:*_b*_a003*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:013_050_047 @atom:*_b*_a013*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:046_050_048 @atom:*_b*_a046*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:047_050_048 @atom:*_b*_a047*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:025_050_050 @atom:*_b*_a025*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:046_050_050 @atom:*_b*_a046*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:013_050_050 @atom:*_b*_a013*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:047_050_050 @atom:*_b*_a047*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:050_050_084 @atom:*_b*_a050*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:046_050_084 @atom:*_b*_a046*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:046_050_109 @atom:*_b*_a046*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a109*_d*_i* + @angle:013_050_109 @atom:*_b*_a013*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a109*_d*_i* + @angle:047_050_109 @atom:*_b*_a047*_d*_i* @atom:*_b*_a050*_d*_i* @atom:*_b*_a109*_d*_i* + @angle:006_051_006 @atom:*_b*_a006*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a006*_d*_i* + @angle:005_051_013 @atom:*_b*_a005*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_051_020 @atom:*_b*_a013*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:002_051_020 @atom:*_b*_a002*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:006_051_020 @atom:*_b*_a006*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:005_051_020 @atom:*_b*_a005*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:020_051_020 @atom:*_b*_a020*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:046_051_046 @atom:*_b*_a046*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:005_051_046 @atom:*_b*_a005*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:020_051_046 @atom:*_b*_a020*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:013_051_046 @atom:*_b*_a013*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:046_051_105 @atom:*_b*_a046*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:013_051_105 @atom:*_b*_a013*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:020_051_105 @atom:*_b*_a020*_d*_i* @atom:*_b*_a051*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:013_053_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_053_025 @atom:*_b*_a013*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:045_053_045 @atom:*_b*_a045*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:025_053_048 @atom:*_b*_a025*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_053_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:002_053_054 @atom:*_b*_a002*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a054*_d*_i* + @angle:006_053_054 @atom:*_b*_a006*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a054*_d*_i* + @angle:013_053_054 @atom:*_b*_a013*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a054*_d*_i* + @angle:048_053_054 @atom:*_b*_a048*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a054*_d*_i* + @angle:054_053_054 @atom:*_b*_a054*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a054*_d*_i* + @angle:025_053_082 @atom:*_b*_a025*_d*_i* @atom:*_b*_a053*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:013_055_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:045_055_045 @atom:*_b*_a045*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:013_055_045 @atom:*_b*_a013*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:045_055_048 @atom:*_b*_a045*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:002_055_048 @atom:*_b*_a002*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:006_055_048 @atom:*_b*_a006*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_055_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:002_055_054 @atom:*_b*_a002*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a054*_d*_i* + @angle:013_055_054 @atom:*_b*_a013*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a054*_d*_i* + @angle:048_055_054 @atom:*_b*_a048*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a054*_d*_i* + @angle:054_055_054 @atom:*_b*_a054*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a054*_d*_i* + @angle:045_055_059 @atom:*_b*_a045*_d*_i* @atom:*_b*_a055*_d*_i* @atom:*_b*_a059*_d*_i* + @angle:003_056_013 @atom:*_b*_a003*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_056_018 @atom:*_b*_a013*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a018*_d*_i* + @angle:025_056_048 @atom:*_b*_a025*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:045_056_048 @atom:*_b*_a045*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_056_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:048_056_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:003_056_048 @atom:*_b*_a003*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_056_056 @atom:*_b*_a013*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:048_056_056 @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:025_056_059 @atom:*_b*_a025*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a059*_d*_i* + @angle:048_056_059 @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a059*_d*_i* + @angle:059_056_059 @atom:*_b*_a059*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a059*_d*_i* + @angle:059_056_060 @atom:*_b*_a059*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:048_056_060 @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:059_056_082 @atom:*_b*_a059*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:048_056_086 @atom:*_b*_a048*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:013_056_103 @atom:*_b*_a013*_d*_i* @atom:*_b*_a056*_d*_i* @atom:*_b*_a103*_d*_i* + @angle:003_057_003 @atom:*_b*_a003*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a003*_d*_i* + @angle:003_057_045 @atom:*_b*_a003*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:045_057_047 @atom:*_b*_a045*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:003_057_047 @atom:*_b*_a003*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:045_057_048 @atom:*_b*_a045*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:003_057_048 @atom:*_b*_a003*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:048_057_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:045_057_060 @atom:*_b*_a045*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:013_057_060 @atom:*_b*_a013*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:060_057_061 @atom:*_b*_a060*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:045_057_061 @atom:*_b*_a045*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:013_057_061 @atom:*_b*_a013*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:048_057_061 @atom:*_b*_a048*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:045_057_062 @atom:*_b*_a045*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:060_057_062 @atom:*_b*_a060*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:048_057_062 @atom:*_b*_a048*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:013_057_062 @atom:*_b*_a013*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:045_057_081 @atom:*_b*_a045*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a081*_d*_i* + @angle:045_057_082 @atom:*_b*_a045*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:061_057_082 @atom:*_b*_a061*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:060_057_082 @atom:*_b*_a060*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:045_057_084 @atom:*_b*_a045*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:061_057_084 @atom:*_b*_a061*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:060_057_084 @atom:*_b*_a060*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:082_057_084 @atom:*_b*_a082*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:084_057_084 @atom:*_b*_a084*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:081_057_084 @atom:*_b*_a081*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:045_057_085 @atom:*_b*_a045*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a085*_d*_i* + @angle:082_057_085 @atom:*_b*_a082*_d*_i* @atom:*_b*_a057*_d*_i* @atom:*_b*_a085*_d*_i* + @angle:024_059_055 @atom:*_b*_a024*_d*_i* @atom:*_b*_a059*_d*_i* @atom:*_b*_a055*_d*_i* + @angle:049_059_056 @atom:*_b*_a049*_d*_i* @atom:*_b*_a059*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:013_059_056 @atom:*_b*_a013*_d*_i* @atom:*_b*_a059*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:055_059_056 @atom:*_b*_a055*_d*_i* @atom:*_b*_a059*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:024_059_056 @atom:*_b*_a024*_d*_i* @atom:*_b*_a059*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:056_059_056 @atom:*_b*_a056*_d*_i* @atom:*_b*_a059*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:056_059_063 @atom:*_b*_a056*_d*_i* @atom:*_b*_a059*_d*_i* @atom:*_b*_a063*_d*_i* + @angle:013_060_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:048_060_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:056_060_057 @atom:*_b*_a056*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:057_060_060 @atom:*_b*_a057*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:020_060_060 @atom:*_b*_a020*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:016_060_060 @atom:*_b*_a016*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:013_060_060 @atom:*_b*_a013*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:024_060_060 @atom:*_b*_a024*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:056_060_060 @atom:*_b*_a056*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:048_060_060 @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:003_060_060 @atom:*_b*_a003*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:060_060_061 @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:024_060_061 @atom:*_b*_a024*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:003_060_061 @atom:*_b*_a003*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:048_060_061 @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:012_060_080 @atom:*_b*_a012*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a080*_d*_i* + @angle:048_060_080 @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a080*_d*_i* + @angle:080_060_081 @atom:*_b*_a080*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a081*_d*_i* + @angle:012_060_081 @atom:*_b*_a012*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a081*_d*_i* + @angle:048_060_081 @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a081*_d*_i* + @angle:003_060_084 @atom:*_b*_a003*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:060_060_087 @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:057_060_087 @atom:*_b*_a057*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:081_060_087 @atom:*_b*_a081*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:012_060_087 @atom:*_b*_a012*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:048_060_087 @atom:*_b*_a048*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:060_060_105 @atom:*_b*_a060*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:056_060_105 @atom:*_b*_a056*_d*_i* @atom:*_b*_a060*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:048_061_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:025_061_057 @atom:*_b*_a025*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:025_061_061 @atom:*_b*_a025*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:060_061_062 @atom:*_b*_a060*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:025_061_082 @atom:*_b*_a025*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:061_061_082 @atom:*_b*_a061*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:060_061_082 @atom:*_b*_a060*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:082_061_083 @atom:*_b*_a082*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a083*_d*_i* + @angle:057_061_084 @atom:*_b*_a057*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:082_061_084 @atom:*_b*_a082*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:057_061_088 @atom:*_b*_a057*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a088*_d*_i* + @angle:020_061_088 @atom:*_b*_a020*_d*_i* @atom:*_b*_a061*_d*_i* @atom:*_b*_a088*_d*_i* + @angle:049_062_057 @atom:*_b*_a049*_d*_i* @atom:*_b*_a062*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:049_062_061 @atom:*_b*_a049*_d*_i* @atom:*_b*_a062*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:057_062_061 @atom:*_b*_a057*_d*_i* @atom:*_b*_a062*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:057_062_063 @atom:*_b*_a057*_d*_i* @atom:*_b*_a062*_d*_i* @atom:*_b*_a063*_d*_i* + @angle:061_062_063 @atom:*_b*_a061*_d*_i* @atom:*_b*_a062*_d*_i* @atom:*_b*_a063*_d*_i* + @angle:049_062_105 @atom:*_b*_a049*_d*_i* @atom:*_b*_a062*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:063_062_105 @atom:*_b*_a063*_d*_i* @atom:*_b*_a062*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:061_062_105 @atom:*_b*_a061*_d*_i* @atom:*_b*_a062*_d*_i* @atom:*_b*_a105*_d*_i* + @angle:005_064_005 @atom:*_b*_a005*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a005*_d*_i* + @angle:004_064_005 @atom:*_b*_a004*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a005*_d*_i* + @angle:004_064_013 @atom:*_b*_a004*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:005_064_020 @atom:*_b*_a005*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:020_064_020 @atom:*_b*_a020*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:013_064_020 @atom:*_b*_a013*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:004_064_020 @atom:*_b*_a004*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:004_064_048 @atom:*_b*_a004*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:005_064_048 @atom:*_b*_a005*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:020_064_048 @atom:*_b*_a020*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:005_064_052 @atom:*_b*_a005*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:013_064_052 @atom:*_b*_a013*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:020_064_052 @atom:*_b*_a020*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:052_064_052 @atom:*_b*_a052*_d*_i* @atom:*_b*_a064*_d*_i* @atom:*_b*_a052*_d*_i* + @angle:025_065_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a065*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:025_066_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a066*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:078_077_078 @atom:*_b*_a078*_d*_i* @atom:*_b*_a077*_d*_i* @atom:*_b*_a078*_d*_i* + @angle:006_079_011 @atom:*_b*_a006*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a011*_d*_i* + @angle:013_079_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:005_079_013 @atom:*_b*_a005*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:005_079_023 @atom:*_b*_a005*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a023*_d*_i* + @angle:013_079_023 @atom:*_b*_a013*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a023*_d*_i* + @angle:023_079_023 @atom:*_b*_a023*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a023*_d*_i* + @angle:013_079_024 @atom:*_b*_a013*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:023_079_024 @atom:*_b*_a023*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:013_079_044 @atom:*_b*_a013*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:023_079_044 @atom:*_b*_a023*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:013_079_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:023_079_048 @atom:*_b*_a023*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:005_079_048 @atom:*_b*_a005*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:024_079_048 @atom:*_b*_a024*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_079_082 @atom:*_b*_a013*_d*_i* @atom:*_b*_a079*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:046_080_060 @atom:*_b*_a046*_d*_i* @atom:*_b*_a080*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:002_080_060 @atom:*_b*_a002*_d*_i* @atom:*_b*_a080*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:013_080_060 @atom:*_b*_a013*_d*_i* @atom:*_b*_a080*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:046_080_084 @atom:*_b*_a046*_d*_i* @atom:*_b*_a080*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:002_080_084 @atom:*_b*_a002*_d*_i* @atom:*_b*_a080*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:013_080_084 @atom:*_b*_a013*_d*_i* @atom:*_b*_a080*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:060_080_084 @atom:*_b*_a060*_d*_i* @atom:*_b*_a080*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:012_081_057 @atom:*_b*_a012*_d*_i* @atom:*_b*_a081*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:048_081_057 @atom:*_b*_a048*_d*_i* @atom:*_b*_a081*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:057_081_060 @atom:*_b*_a057*_d*_i* @atom:*_b*_a081*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:012_081_060 @atom:*_b*_a012*_d*_i* @atom:*_b*_a081*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:048_081_060 @atom:*_b*_a048*_d*_i* @atom:*_b*_a081*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:013_082_016 @atom:*_b*_a013*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a016*_d*_i* + @angle:016_082_024 @atom:*_b*_a016*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:016_082_044 @atom:*_b*_a016*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a044*_d*_i* + @angle:020_082_049 @atom:*_b*_a020*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a049*_d*_i* + @angle:016_082_049 @atom:*_b*_a016*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a049*_d*_i* + @angle:049_082_057 @atom:*_b*_a049*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:057_082_057 @atom:*_b*_a057*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:013_082_057 @atom:*_b*_a013*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:048_082_057 @atom:*_b*_a048*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:056_082_057 @atom:*_b*_a056*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:049_082_061 @atom:*_b*_a049*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:016_082_061 @atom:*_b*_a016*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:020_082_061 @atom:*_b*_a020*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:057_082_061 @atom:*_b*_a057*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:013_082_061 @atom:*_b*_a013*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:044_082_061 @atom:*_b*_a044*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:024_082_061 @atom:*_b*_a024*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:057_082_079 @atom:*_b*_a057*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:061_082_079 @atom:*_b*_a061*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a079*_d*_i* + @angle:020_082_086 @atom:*_b*_a020*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:061_082_086 @atom:*_b*_a061*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:057_082_087 @atom:*_b*_a057*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:056_082_087 @atom:*_b*_a056*_d*_i* @atom:*_b*_a082*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:049_083_061 @atom:*_b*_a049*_d*_i* @atom:*_b*_a083*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:048_083_061 @atom:*_b*_a048*_d*_i* @atom:*_b*_a083*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:013_083_061 @atom:*_b*_a013*_d*_i* @atom:*_b*_a083*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:049_083_084 @atom:*_b*_a049*_d*_i* @atom:*_b*_a083*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:061_083_084 @atom:*_b*_a061*_d*_i* @atom:*_b*_a083*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:013_083_084 @atom:*_b*_a013*_d*_i* @atom:*_b*_a083*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:013_084_016 @atom:*_b*_a013*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a016*_d*_i* + @angle:013_084_020 @atom:*_b*_a013*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:016_084_024 @atom:*_b*_a016*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:020_084_049 @atom:*_b*_a020*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a049*_d*_i* + @angle:016_084_049 @atom:*_b*_a016*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a049*_d*_i* + @angle:048_084_049 @atom:*_b*_a048*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a049*_d*_i* + @angle:049_084_050 @atom:*_b*_a049*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:020_084_050 @atom:*_b*_a020*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:049_084_057 @atom:*_b*_a049*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:013_084_057 @atom:*_b*_a013*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:048_084_057 @atom:*_b*_a048*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:003_084_057 @atom:*_b*_a003*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:057_084_058 @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a058*_d*_i* + @angle:013_084_061 @atom:*_b*_a013*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:049_084_080 @atom:*_b*_a049*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a080*_d*_i* + @angle:057_084_080 @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a080*_d*_i* + @angle:049_084_083 @atom:*_b*_a049*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a083*_d*_i* + @angle:057_084_083 @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a083*_d*_i* + @angle:020_084_083 @atom:*_b*_a020*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a083*_d*_i* + @angle:016_084_083 @atom:*_b*_a016*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a083*_d*_i* + @angle:013_084_083 @atom:*_b*_a013*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a083*_d*_i* + @angle:013_084_084 @atom:*_b*_a013*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:057_084_084 @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:061_084_084 @atom:*_b*_a061*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:020_084_086 @atom:*_b*_a020*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:057_084_086 @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:049_084_087 @atom:*_b*_a049*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:057_084_087 @atom:*_b*_a057*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:020_084_087 @atom:*_b*_a020*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:016_084_087 @atom:*_b*_a016*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:061_084_087 @atom:*_b*_a061*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:013_084_087 @atom:*_b*_a013*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:048_084_087 @atom:*_b*_a048*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:086_084_087 @atom:*_b*_a086*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:003_084_087 @atom:*_b*_a003*_d*_i* @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:049_085_057 @atom:*_b*_a049*_d*_i* @atom:*_b*_a085*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:013_085_057 @atom:*_b*_a013*_d*_i* @atom:*_b*_a085*_d*_i* @atom:*_b*_a057*_d*_i* + @angle:049_085_085 @atom:*_b*_a049*_d*_i* @atom:*_b*_a085*_d*_i* @atom:*_b*_a085*_d*_i* + @angle:057_085_085 @atom:*_b*_a057*_d*_i* @atom:*_b*_a085*_d*_i* @atom:*_b*_a085*_d*_i* + @angle:013_085_085 @atom:*_b*_a013*_d*_i* @atom:*_b*_a085*_d*_i* @atom:*_b*_a085*_d*_i* + @angle:048_086_048 @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:048_086_056 @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* @atom:*_b*_a056*_d*_i* + @angle:048_086_082 @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* @atom:*_b*_a082*_d*_i* + @angle:048_086_083 @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* @atom:*_b*_a083*_d*_i* + @angle:048_086_084 @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:048_086_086 @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:056_086_086 @atom:*_b*_a056*_d*_i* @atom:*_b*_a086*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:048_086_087 @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:048_086_088 @atom:*_b*_a048*_d*_i* @atom:*_b*_a086*_d*_i* @atom:*_b*_a088*_d*_i* + @angle:049_087_060 @atom:*_b*_a049*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:046_087_060 @atom:*_b*_a046*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:013_087_060 @atom:*_b*_a013*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:049_087_084 @atom:*_b*_a049*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:046_087_084 @atom:*_b*_a046*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:084_087_084 @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:082_087_084 @atom:*_b*_a082*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:002_087_084 @atom:*_b*_a002*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:013_087_084 @atom:*_b*_a013*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:003_087_084 @atom:*_b*_a003*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:060_087_084 @atom:*_b*_a060*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a084*_d*_i* + @angle:084_087_086 @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a086*_d*_i* + @angle:049_087_087 @atom:*_b*_a049*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:060_087_087 @atom:*_b*_a060*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:084_087_087 @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:086_087_087 @atom:*_b*_a086*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:084_087_088 @atom:*_b*_a084*_d*_i* @atom:*_b*_a087*_d*_i* @atom:*_b*_a088*_d*_i* + @angle:048_088_049 @atom:*_b*_a048*_d*_i* @atom:*_b*_a088*_d*_i* @atom:*_b*_a049*_d*_i* + @angle:049_088_061 @atom:*_b*_a049*_d*_i* @atom:*_b*_a088*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:013_088_061 @atom:*_b*_a013*_d*_i* @atom:*_b*_a088*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:019_088_061 @atom:*_b*_a019*_d*_i* @atom:*_b*_a088*_d*_i* @atom:*_b*_a061*_d*_i* + @angle:061_088_087 @atom:*_b*_a061*_d*_i* @atom:*_b*_a088*_d*_i* @atom:*_b*_a087*_d*_i* + @angle:004_089_090 @atom:*_b*_a004*_d*_i* @atom:*_b*_a089*_d*_i* @atom:*_b*_a090*_d*_i* + @angle:090_089_091 @atom:*_b*_a090*_d*_i* @atom:*_b*_a089*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:004_089_091 @atom:*_b*_a004*_d*_i* @atom:*_b*_a089*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:013_090_089 @atom:*_b*_a013*_d*_i* @atom:*_b*_a090*_d*_i* @atom:*_b*_a089*_d*_i* + @angle:089_090_091 @atom:*_b*_a089*_d*_i* @atom:*_b*_a090*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:013_090_091 @atom:*_b*_a013*_d*_i* @atom:*_b*_a090*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:024_091_046 @atom:*_b*_a024*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:013_091_046 @atom:*_b*_a013*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:044_091_046 @atom:*_b*_a044*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:046_091_046 @atom:*_b*_a046*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:016_091_046 @atom:*_b*_a016*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:046_091_047 @atom:*_b*_a046*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:046_091_089 @atom:*_b*_a046*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a089*_d*_i* + @angle:024_091_089 @atom:*_b*_a024*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a089*_d*_i* + @angle:046_091_090 @atom:*_b*_a046*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a090*_d*_i* + @angle:016_091_090 @atom:*_b*_a016*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a090*_d*_i* + @angle:091_091_091 @atom:*_b*_a091*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:013_091_091 @atom:*_b*_a013*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:044_091_091 @atom:*_b*_a044*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:046_091_091 @atom:*_b*_a046*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:024_091_091 @atom:*_b*_a024*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:016_091_091 @atom:*_b*_a016*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:089_091_091 @atom:*_b*_a089*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:047_091_091 @atom:*_b*_a047*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:090_091_091 @atom:*_b*_a090*_d*_i* @atom:*_b*_a091*_d*_i* @atom:*_b*_a091*_d*_i* + @angle:013_095_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a095*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_095_046 @atom:*_b*_a013*_d*_i* @atom:*_b*_a095*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:013_101_045 @atom:*_b*_a013*_d*_i* @atom:*_b*_a101*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:045_101_045 @atom:*_b*_a045*_d*_i* @atom:*_b*_a101*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:045_101_048 @atom:*_b*_a045*_d*_i* @atom:*_b*_a101*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_101_048 @atom:*_b*_a013*_d*_i* @atom:*_b*_a101*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:013_102_103 @atom:*_b*_a013*_d*_i* @atom:*_b*_a102*_d*_i* @atom:*_b*_a103*_d*_i* + @angle:048_102_103 @atom:*_b*_a048*_d*_i* @atom:*_b*_a102*_d*_i* @atom:*_b*_a103*_d*_i* + @angle:103_102_103 @atom:*_b*_a103*_d*_i* @atom:*_b*_a102*_d*_i* @atom:*_b*_a103*_d*_i* + @angle:025_103_025 @atom:*_b*_a025*_d*_i* @atom:*_b*_a103*_d*_i* @atom:*_b*_a025*_d*_i* + @angle:025_103_102 @atom:*_b*_a025*_d*_i* @atom:*_b*_a103*_d*_i* @atom:*_b*_a102*_d*_i* + @angle:013_104_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a104*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:003_105_010 @atom:*_b*_a003*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a010*_d*_i* + @angle:003_105_013 @atom:*_b*_a003*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:003_105_045 @atom:*_b*_a003*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:045_105_047 @atom:*_b*_a045*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:013_105_047 @atom:*_b*_a013*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:003_105_047 @atom:*_b*_a003*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:003_105_051 @atom:*_b*_a003*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:047_105_051 @atom:*_b*_a047*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a051*_d*_i* + @angle:045_105_060 @atom:*_b*_a045*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:006_105_060 @atom:*_b*_a006*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:010_105_060 @atom:*_b*_a010*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:013_105_060 @atom:*_b*_a013*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:051_105_060 @atom:*_b*_a051*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a060*_d*_i* + @angle:045_105_062 @atom:*_b*_a045*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:060_105_062 @atom:*_b*_a060*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:006_105_062 @atom:*_b*_a006*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:010_105_062 @atom:*_b*_a010*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:013_105_062 @atom:*_b*_a013*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:051_105_062 @atom:*_b*_a051*_d*_i* @atom:*_b*_a105*_d*_i* @atom:*_b*_a062*_d*_i* + @angle:004_106_024 @atom:*_b*_a004*_d*_i* @atom:*_b*_a106*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:024_106_024 @atom:*_b*_a024*_d*_i* @atom:*_b*_a106*_d*_i* @atom:*_b*_a024*_d*_i* + @angle:013_107_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a107*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:003_107_013 @atom:*_b*_a003*_d*_i* @atom:*_b*_a107*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:001_108_013 @atom:*_b*_a001*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_108_013 @atom:*_b*_a013*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a013*_d*_i* + @angle:013_108_020 @atom:*_b*_a013*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:020_108_020 @atom:*_b*_a020*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a020*_d*_i* + @angle:013_108_021 @atom:*_b*_a013*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a021*_d*_i* + @angle:045_108_045 @atom:*_b*_a045*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:013_108_045 @atom:*_b*_a013*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a045*_d*_i* + @angle:046_108_046 @atom:*_b*_a046*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:013_108_046 @atom:*_b*_a013*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a046*_d*_i* + @angle:013_108_065 @atom:*_b*_a013*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a065*_d*_i* + @angle:013_108_066 @atom:*_b*_a013*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a066*_d*_i* + @angle:013_108_108 @atom:*_b*_a013*_d*_i* @atom:*_b*_a108*_d*_i* @atom:*_b*_a108*_d*_i* + @angle:046_109_048 @atom:*_b*_a046*_d*_i* @atom:*_b*_a109*_d*_i* @atom:*_b*_a048*_d*_i* + @angle:046_109_050 @atom:*_b*_a046*_d*_i* @atom:*_b*_a109*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:013_109_050 @atom:*_b*_a013*_d*_i* @atom:*_b*_a109*_d*_i* @atom:*_b*_a050*_d*_i* + @angle:046_109_109 @atom:*_b*_a046*_d*_i* @atom:*_b*_a109*_d*_i* @atom:*_b*_a109*_d*_i* + @angle:013_109_109 @atom:*_b*_a013*_d*_i* @atom:*_b*_a109*_d*_i* @atom:*_b*_a109*_d*_i* + @angle:050_109_109 @atom:*_b*_a050*_d*_i* @atom:*_b*_a109*_d*_i* @atom:*_b*_a109*_d*_i* + @angle:048_109_109 @atom:*_b*_a048*_d*_i* @atom:*_b*_a109*_d*_i* @atom:*_b*_a109*_d*_i* + @angle:004_110_047 @atom:*_b*_a004*_d*_i* @atom:*_b*_a110*_d*_i* @atom:*_b*_a047*_d*_i* + @angle:047_110_047 @atom:*_b*_a047*_d*_i* @atom:*_b*_a110*_d*_i* @atom:*_b*_a047*_d*_i* } #(end of angles by type) @@ -6517,809 +6530,809 @@ OPLSAA { # ----------- Dihedral Interactions: ------------ # http://lammps.sandia.gov/doc/dihedral_opls.html # Syntax: - # dihedral_coeff DihedralTypeName DihedralStyle parameters... + # dihedral_coeff DihedralTypeName parameters... write_once("In Settings") { - dihedral_coeff @dihedral:X-2-2-2 opls -2.5 1.25 3.1 0.0 - dihedral_coeff @dihedral:X-2-2-6 opls -2.5 1.25 3.1 0.0 - dihedral_coeff @dihedral:1-2-2-2 opls -2.0 0.7 3.0 0.0 - dihedral_coeff @dihedral:1-2-2-6 opls -2.0 0.7 3.0 0.0 - dihedral_coeff @dihedral:2-2-2-2 opls -3.4 1.25 3.1 0.0 - dihedral_coeff @dihedral:2-2-2-6 opls -3.4 1.25 3.1 0.0 - dihedral_coeff @dihedral:2-2-2-10 opls -3.4 1.25 3.1 0.0 - dihedral_coeff @dihedral:2-2-2-13 opls -3.4 1.25 3.1 0.0 - dihedral_coeff @dihedral:2-2-2-65 opls -2.0 0.5 3.25 0.0 - dihedral_coeff @dihedral:6-2-2-6 opls -3.4 1.25 3.1 0.0 - dihedral_coeff @dihedral:6-2-2-65 opls -2.0 0.5 3.25 0.0 - dihedral_coeff @dihedral:10-2-2-10 opls -3.4 1.25 3.1 0.0 - dihedral_coeff @dihedral:2-2-5-7 opls 0.3 0.0 1.3 0.0 - dihedral_coeff @dihedral:6-2-5-7 opls 0.3 0.0 1.3 0.0 - dihedral_coeff @dihedral:10-2-5-7 opls 0.3 0.0 1.3 0.0 - dihedral_coeff @dihedral:X-2-10-2 opls -2.5 1.25 3.1 0.0 - dihedral_coeff @dihedral:2-2-10-2 opls -3.4 1.25 3.1 0.0 - dihedral_coeff @dihedral:2-2-13-2 opls -3.4 1.25 3.1 0.0 - dihedral_coeff @dihedral:6-2-20-2 opls -7.4 3.0 1.8 0.0 - dihedral_coeff @dihedral:6-2-20-6 opls -8.4 3.0 1.8 0.0 - dihedral_coeff @dihedral:4-3-3-4 opls 1.6 3.2 0.0 0.0 - dihedral_coeff @dihedral:4-3-3-13 opls 0.0 0.5 0.0 0.0 - dihedral_coeff @dihedral:4-3-3-24 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-3-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-3-3-13 opls 0.7 -1.5 0.0 0.0 - dihedral_coeff @dihedral:13-3-3-24 opls -0.5 0.2 0.0 0.0 - dihedral_coeff @dihedral:13-3-3-46 opls 0.8 -0.76 0.0 0.0 - dihedral_coeff @dihedral:24-3-3-46 opls -0.9 0.3 0.0 0.0 - dihedral_coeff @dihedral:46-3-3-46 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:3-3-5-7 opls 3.0 5.5 0.0 0.0 - dihedral_coeff @dihedral:4-3-5-7 opls 0.0 5.0 0.0 0.0 - dihedral_coeff @dihedral:13-3-5-7 opls 1.5 5.5 0.0 0.0 - dihedral_coeff @dihedral:24-3-5-7 opls -2.0 5.0 0.0 0.0 - dihedral_coeff @dihedral:46-3-5-7 opls 1.5 5.5 0.0 0.0 - dihedral_coeff @dihedral:48-3-5-7 opls 4.0 5.0 0.0 0.0 - dihedral_coeff @dihedral:1-3-13-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:1-3-13-46 opls 0.0 0.0 0.36 0.0 - dihedral_coeff @dihedral:3-3-13-46 opls 0.0 0.0 0.085 0.0 - dihedral_coeff @dihedral:4-3-13-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-13-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-13-21 opls -0.65 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-13-44 opls 0.0 0.82 0.0 0.0 - dihedral_coeff @dihedral:4-3-13-24 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-13-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-13-48 opls 0.0 0.546 0.0 0.0 - dihedral_coeff @dihedral:5-3-13-13 opls 0.0 1.412 0.0 0.0 - dihedral_coeff @dihedral:5-3-13-44 opls 5.26 0.82 0.0 0.0 - dihedral_coeff @dihedral:5-3-13-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-3-13-13 opls 1.454 -0.144 -0.775 0.0 - dihedral_coeff @dihedral:13-3-13-46 opls 0.0 0.0 0.275 0.0 - dihedral_coeff @dihedral:20-3-13-13 opls 0.0 0.0 -0.553 0.0 - dihedral_coeff @dihedral:20-3-13-46 opls 0.0 0.0 0.132 0.0 - dihedral_coeff @dihedral:21-3-13-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:21-3-13-46 opls 0.0 0.0 0.36 0.0 - dihedral_coeff @dihedral:24-3-13-13 opls 1.173 0.189 -1.2 0.0 - dihedral_coeff @dihedral:24-3-13-21 opls 0.65 0.0 0.0 0.0 - dihedral_coeff @dihedral:24-3-13-24 opls 1.816 1.222 1.581 0.0 - dihedral_coeff @dihedral:24-3-13-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-3-13-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-3-13-46 opls 0.0 0.0 0.36 0.0 - dihedral_coeff @dihedral:48-3-13-46 opls 0.0 0.0 0.275 0.0 - dihedral_coeff @dihedral:52-3-13-13 opls 0.0 0.82 0.0 0.0 - dihedral_coeff @dihedral:52-3-13-44 opls 0.0 0.82 0.0 0.0 - dihedral_coeff @dihedral:52-3-13-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:65-3-13-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:65-3-13-46 opls 0.0 0.0 0.36 0.0 - dihedral_coeff @dihedral:107-3-13-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-20-13 opls 0.0 5.124 0.0 0.0 - dihedral_coeff @dihedral:4-3-20-48 opls 0.0 5.0 0.0 0.0 - dihedral_coeff @dihedral:13-3-20-13 opls 4.669 5.124 0.0 0.0 - dihedral_coeff @dihedral:13-3-20-48 opls 1.5 5.0 0.0 0.0 - dihedral_coeff @dihedral:24-3-20-13 opls -2.0 5.0 0.0 0.0 - dihedral_coeff @dihedral:46-3-20-13 opls 4.669 5.124 0.0 0.0 - dihedral_coeff @dihedral:48-3-20-13 opls 4.0 5.0 0.0 0.0 - dihedral_coeff @dihedral:3-3-24-13 opls 0.4 4.9 0.0 0.0 - dihedral_coeff @dihedral:3-3-24-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:4-3-24-5 opls 0.0 6.603 0.0 0.0 - dihedral_coeff @dihedral:4-3-24-13 opls 0.0 6.089 0.0 0.0 - dihedral_coeff @dihedral:4-3-24-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:4-3-24-47 opls 0.0 6.089 0.0 0.0 - dihedral_coeff @dihedral:4-3-24-48 opls 0.0 6.089 0.0 0.0 - dihedral_coeff @dihedral:4-3-24-91 opls 0.0 6.089 0.0 0.0 - dihedral_coeff @dihedral:5-3-24-13 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:5-3-24-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:13-3-24-5 opls 4.542 6.603 1.045 0.0 - dihedral_coeff @dihedral:13-3-24-13 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:13-3-24-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:13-3-24-48 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:20-3-24-13 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:20-3-24-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:24-3-24-3 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:24-3-24-13 opls 4.6 0.0 0.0 0.0 - dihedral_coeff @dihedral:24-3-24-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:46-3-24-13 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:46-3-24-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:47-3-24-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:48-3-24-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:48-3-24-48 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:48-3-24-84 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:48-3-24-87 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:84-3-24-48 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:84-3-24-84 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:84-3-24-87 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:87-3-24-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:87-3-24-48 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:87-3-24-84 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:87-3-24-87 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:X-3-47-13 opls 0.9 0.23 -0.505 0.0 - dihedral_coeff @dihedral:4-3-47-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-47-47 opls 2.5 6.0 0.0 0.0 - dihedral_coeff @dihedral:5-3-47-47 opls 3.2 -3.0 0.0 0.0 - dihedral_coeff @dihedral:24-3-47-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:24-3-47-47 opls 2.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:107-3-47-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:107-3-47-47 opls 2.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:5-3-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:13-3-48-48 opls 0.0 0.2 0.0 0.0 - dihedral_coeff @dihedral:20-3-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:24-3-48-48 opls 0.0 1.1 0.0 0.0 - dihedral_coeff @dihedral:46-3-48-48 opls 0.0 0.2 0.0 0.0 - dihedral_coeff @dihedral:X-3-50-13 opls 0.9 0.23 -0.505 0.0 - dihedral_coeff @dihedral:4-3-50-47 opls 2.5 6.0 0.0 0.0 - dihedral_coeff @dihedral:5-3-50-47 opls 3.2 -3.0 0.0 0.0 - dihedral_coeff @dihedral:13-3-50-47 opls 0.8 -3.0 0.0 0.0 - dihedral_coeff @dihedral:13-3-56-X opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-3-56-13 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-3-56-X opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-3-56-45 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:X-3-60-X opls 0.0 7.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-60-X opls 0.0 7.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-82-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-82-57 opls 2.0 1.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-82-61 opls 0.0 1.0 0.0 0.0 - dihedral_coeff @dihedral:82-3-82-57 opls -2.0 1.0 0.0 0.0 - dihedral_coeff @dihedral:82-3-82-61 opls 0.0 1.0 0.0 0.0 - dihedral_coeff @dihedral:4-3-84-20 opls -0.75 1.5 0.0 0.0 - dihedral_coeff @dihedral:4-3-84-87 opls 0.75 1.5 0.0 0.0 - dihedral_coeff @dihedral:84-3-84-20 opls 0.0 1.5 0.0 0.0 - dihedral_coeff @dihedral:84-3-84-87 opls 0.0 1.5 0.0 0.0 - dihedral_coeff @dihedral:48-3-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-3-87-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:4-3-87-84 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:4-3-87-87 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:24-3-87-84 opls 0.0 1.1 0.0 0.0 - dihedral_coeff @dihedral:24-3-87-87 opls 0.0 1.1 0.0 0.0 - dihedral_coeff @dihedral:4-3-107-13 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:13-3-107-13 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:4-3-109-109 opls 2.5 6.0 0.0 0.0 - dihedral_coeff @dihedral:5-3-109-109 opls 3.2 -3.0 0.0 0.0 - dihedral_coeff @dihedral:X-4-106-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:7-5-10-2 opls 0.3 0.0 0.5 0.0 - dihedral_coeff @dihedral:7-5-10-6 opls 0.3 0.0 0.5 0.0 - dihedral_coeff @dihedral:7-5-13-2 opls 0.0 0.0 0.2 0.0 - dihedral_coeff @dihedral:7-5-13-6 opls 0.0 0.0 0.2 0.0 - dihedral_coeff @dihedral:7-5-13-13 opls -0.356 -0.174 0.492 0.0 - dihedral_coeff @dihedral:7-5-13-46 opls 0.0 0.0 0.352 0.0 - dihedral_coeff @dihedral:7-5-13-47 opls -0.9 0.0 0.0 0.0 - dihedral_coeff @dihedral:7-5-13-48 opls -0.9 0.0 0.0 0.0 - dihedral_coeff @dihedral:7-5-13-50 opls -0.9 0.0 0.0 0.0 - dihedral_coeff @dihedral:7-5-44-13 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:7-5-44-45 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:7-5-24-3 opls 5.519 -6.7 0.581 0.0 - dihedral_coeff @dihedral:7-5-24-45 opls 2.722 -5.154 0.0 0.0 - dihedral_coeff @dihedral:7-5-47-47 opls 0.0 1.682 0.0 0.0 - dihedral_coeff @dihedral:7-5-48-48 opls 0.0 1.682 0.0 0.0 - dihedral_coeff @dihedral:7-5-51-20 opls -1.257 -1.806 0.003 0.0 - dihedral_coeff @dihedral:7-5-56-3 opls 3.0 3.0 0.0 0.0 - dihedral_coeff @dihedral:7-5-64-4 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:7-5-64-5 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:7-5-79-13 opls -0.75 0.0 0.0 0.0 - dihedral_coeff @dihedral:7-5-79-23 opls 0.75 0.0 0.0 0.0 - dihedral_coeff @dihedral:7-5-79-48 opls 2.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-13-13-3 opls -4.344 -1.714 0.0 0.0 - dihedral_coeff @dihedral:X-13-13-13 opls 1.711 -0.5 0.663 0.0 - dihedral_coeff @dihedral:X-13-13-24 opls 1.428 0.086 0.029 0.0 - dihedral_coeff @dihedral:1-13-13-1 opls -2.5 0.0 0.25 0.0 - dihedral_coeff @dihedral:1-13-13-5 opls 0.0 0.0 0.54 0.0 - dihedral_coeff @dihedral:1-13-13-13 opls 0.3 -0.4 0.4 0.0 - dihedral_coeff @dihedral:1-13-13-46 opls 0.0 0.0 0.4 0.0 - dihedral_coeff @dihedral:3-13-13-3 opls -0.55 0.0 1.0 0.0 - dihedral_coeff @dihedral:3-13-13-5 opls -6.18 0.0 0.0 0.0 - dihedral_coeff @dihedral:3-13-13-13 opls -2.06 -0.313 0.315 0.0 - dihedral_coeff @dihedral:3-13-13-15 opls -4.344 -1.714 0.0 0.0 - dihedral_coeff @dihedral:3-13-13-16 opls -4.344 -1.714 0.0 0.0 - dihedral_coeff @dihedral:3-13-13-24 opls -9.0 2.0 0.8 0.0 - dihedral_coeff @dihedral:3-13-13-46 opls 0.0 0.0 -0.1 0.0 - dihedral_coeff @dihedral:3-13-13-48 opls -1.697 -0.456 0.585 0.0 - dihedral_coeff @dihedral:3-13-13-80 opls -1.697 -0.456 0.585 0.0 - dihedral_coeff @dihedral:5-13-13-5 opls 9.508 0.0 0.0 0.0 - dihedral_coeff @dihedral:5-13-13-13 opls -1.552 0.0 0.0 0.0 - dihedral_coeff @dihedral:5-13-13-20 opls 4.319 0.0 0.0 0.0 - dihedral_coeff @dihedral:5-13-13-44 opls 8.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:5-13-13-24 opls 6.28 -1.467 2.03 0.0 - dihedral_coeff @dihedral:5-13-13-46 opls 0.0 0.0 0.468 0.0 - dihedral_coeff @dihedral:13-13-13-13 opls 1.3 -0.05 0.2 0.0 - dihedral_coeff @dihedral:13-13-13-15 opls 1.262 -0.198 0.465 0.0 - dihedral_coeff @dihedral:13-13-13-16 opls 2.619 -0.62 0.258 0.0 - dihedral_coeff @dihedral:13-13-13-19 opls 0.0 -0.65 0.0 0.0 - dihedral_coeff @dihedral:13-13-13-21 opls 0.0 0.0 0.4 0.0 - dihedral_coeff @dihedral:13-13-13-44 opls 2.392 -0.674 0.55 0.0 - dihedral_coeff @dihedral:13-13-13-24 opls 0.845 -0.962 0.713 0.0 - dihedral_coeff @dihedral:13-13-13-46 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:13-13-13-51 opls 1.3 -0.05 0.2 0.0 - dihedral_coeff @dihedral:13-13-13-53 opls 2.732 -0.229 0.485 0.0 - dihedral_coeff @dihedral:13-13-13-65 opls 0.0 0.0 0.4 0.0 - dihedral_coeff @dihedral:13-13-13-66 opls 0.0 0.0 0.4 0.0 - dihedral_coeff @dihedral:13-13-13-79 opls 1.262 -0.198 0.465 0.0 - dihedral_coeff @dihedral:13-13-13-107 opls 1.964 0.0 0.659 0.0 - dihedral_coeff @dihedral:13-13-13-108 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:15-13-13-46 opls 0.0 0.0 0.452 0.0 - dihedral_coeff @dihedral:16-13-13-46 opls 0.0 0.0 0.452 0.0 - dihedral_coeff @dihedral:19-13-13-46 opls 0.0 0.0 0.366 0.0 - dihedral_coeff @dihedral:20-13-13-20 opls -0.55 0.0 0.0 0.0 - dihedral_coeff @dihedral:20-13-13-46 opls 0.0 0.0 0.468 0.0 - dihedral_coeff @dihedral:21-13-13-21 opls -0.25 0.0 0.0 0.0 - dihedral_coeff @dihedral:21-13-13-44 opls 2.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:21-13-13-46 opls 0.0 0.0 0.4 0.0 - dihedral_coeff @dihedral:44-13-13-44 opls 11.035 -0.968 0.27 0.0 - dihedral_coeff @dihedral:44-13-13-46 opls -1.013 -0.709 0.473 0.0 - dihedral_coeff @dihedral:44-13-13-48 opls -0.8 0.0 0.0 0.0 - dihedral_coeff @dihedral:24-13-13-46 opls 0.0 0.0 0.464 0.0 - dihedral_coeff @dihedral:24-13-13-48 opls 0.845 -0.962 0.713 0.0 - dihedral_coeff @dihedral:24-13-13-80 opls 0.845 -0.962 0.713 0.0 - dihedral_coeff @dihedral:46-13-13-46 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:46-13-13-47 opls 0.0 0.0 0.366 0.0 - dihedral_coeff @dihedral:46-13-13-48 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:46-13-13-51 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:46-13-13-53 opls 0.0 0.0 0.384 0.0 - dihedral_coeff @dihedral:46-13-13-55 opls 0.0 0.0 -0.582 0.0 - dihedral_coeff @dihedral:46-13-13-59 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:46-13-13-62 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:46-13-13-65 opls 0.0 0.0 0.4 0.0 - dihedral_coeff @dihedral:46-13-13-66 opls 0.0 0.0 0.4 0.0 - dihedral_coeff @dihedral:46-13-13-79 opls 0.0 0.0 0.452 0.0 - dihedral_coeff @dihedral:46-13-13-80 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:46-13-13-82 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:46-13-13-83 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:46-13-13-84 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:46-13-13-87 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:46-13-13-88 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:46-13-13-102 opls 0.0 0.0 -0.225 0.0 - dihedral_coeff @dihedral:46-13-13-104 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:46-13-13-107 opls 0.0 0.0 0.464 0.0 - dihedral_coeff @dihedral:46-13-13-108 opls 0.0 0.0 0.45 0.0 - dihedral_coeff @dihedral:46-13-13-109 opls 0.0 0.0 0.366 0.0 - dihedral_coeff @dihedral:48-13-13-53 opls 1.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:108-13-13-108 opls 5.2 -0.5 0.0 0.0 - dihedral_coeff @dihedral:13-13-15-17 opls -0.759 -0.282 0.68 0.0 - dihedral_coeff @dihedral:46-13-15-17 opls 0.0 0.0 0.48 0.0 - dihedral_coeff @dihedral:13-13-16-13 opls 0.925 -0.576 0.677 0.0 - dihedral_coeff @dihedral:13-13-16-16 opls 1.941 -0.836 0.935 0.0 - dihedral_coeff @dihedral:46-13-16-13 opls 0.0 0.0 0.647 0.0 - dihedral_coeff @dihedral:46-13-16-16 opls 0.0 0.0 0.558 0.0 - dihedral_coeff @dihedral:46-13-16-48 opls 0.0 0.0 0.647 0.0 - dihedral_coeff @dihedral:X-13-18-19 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-18-19 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-13-19-18 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-13-19-19 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-19-19 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-19-19 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-13-20-13 opls -0.521 -2.018 1.996 0.0 - dihedral_coeff @dihedral:56-13-20-13 opls -0.5 -1.5 1.0 0.0 - dihedral_coeff @dihedral:57-13-20-13 opls -0.5 -1.5 1.0 0.0 - dihedral_coeff @dihedral:13-13-20-3 opls -1.22 -0.126 0.422 0.0 - dihedral_coeff @dihedral:13-13-20-13 opls 0.65 -0.25 0.67 0.0 - dihedral_coeff @dihedral:13-13-20-64 opls -1.42 -0.62 0.1 0.0 - dihedral_coeff @dihedral:46-13-20-X opls 0.0 0.0 0.76 0.0 - dihedral_coeff @dihedral:46-13-20-3 opls 0.0 0.0 0.198 0.0 - dihedral_coeff @dihedral:46-13-20-47 opls 0.0 0.0 0.76 0.0 - dihedral_coeff @dihedral:46-13-20-48 opls 0.0 0.0 0.76 0.0 - dihedral_coeff @dihedral:46-13-20-51 opls 0.0 0.0 0.76 0.0 - dihedral_coeff @dihedral:46-13-20-64 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:X-13-24-45 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:3-13-24-3 opls -2.365 0.912 -0.85 0.0 - dihedral_coeff @dihedral:3-13-24-13 opls -1.737 1.251 -3.501 0.0 - dihedral_coeff @dihedral:3-13-24-45 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-24-3 opls 0.0 0.462 0.0 0.0 - dihedral_coeff @dihedral:13-13-24-13 opls 4.753 -0.734 0.0 0.0 - dihedral_coeff @dihedral:13-13-24-45 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-24-59 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-24-79 opls 2.929 -2.533 0.497 0.0 - dihedral_coeff @dihedral:13-13-24-91 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:46-13-24-3 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-24-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-24-45 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-24-48 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-24-79 opls 1.362 -1.457 0.149 0.0 - dihedral_coeff @dihedral:48-13-24-59 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-44-13 opls 0.416 -0.128 0.695 0.0 - dihedral_coeff @dihedral:13-13-44-45 opls -0.19 -0.417 0.418 0.0 - dihedral_coeff @dihedral:46-13-44-13 opls 0.0 0.0 0.56 0.0 - dihedral_coeff @dihedral:46-13-44-45 opls 0.0 0.0 0.4 0.0 - dihedral_coeff @dihedral:46-13-44-48 opls 0.0 0.0 0.56 0.0 - dihedral_coeff @dihedral:X-13-47-13 opls 1.711 -0.5 0.663 0.0 - dihedral_coeff @dihedral:X-13-47-46 opls 0.0 0.0 0.468 0.0 - dihedral_coeff @dihedral:X-13-47-47 opls 0.5 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-13-47-50 opls 0.5 0.0 0.0 0.0 - dihedral_coeff @dihedral:1-13-47-47 opls 0.5 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-47-13 opls 2.817 -0.169 0.543 0.0 - dihedral_coeff @dihedral:13-13-47-47 opls 0.346 0.405 -0.904 0.0 - dihedral_coeff @dihedral:13-13-47-50 opls 0.346 0.405 -0.904 0.0 - dihedral_coeff @dihedral:46-13-47-13 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:46-13-47-46 opls 0.0 0.0 0.318 0.0 - dihedral_coeff @dihedral:46-13-47-47 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:46-13-47-50 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:46-13-47-110 opls 0.0 0.0 -0.25 0.0 - dihedral_coeff @dihedral:47-13-47-13 opls 0.0 -8.0 0.0 0.0 - dihedral_coeff @dihedral:47-13-47-46 opls 0.0 -8.0 0.0 0.0 - dihedral_coeff @dihedral:X-13-48-48 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:1-13-48-48 opls 0.0 0.45 0.0 0.0 - dihedral_coeff @dihedral:13-13-48-48 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-48-56 opls -0.5 0.5 -0.5 0.0 - dihedral_coeff @dihedral:21-13-48-48 opls 0.0 -0.4 0.0 0.0 - dihedral_coeff @dihedral:46-13-48-48 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:64-13-48-48 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:65-13-48-48 opls 0.0 0.0 0.4 0.0 - dihedral_coeff @dihedral:X-13-50-47 opls 0.5 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-50-50 opls 0.346 0.405 -0.904 0.0 - dihedral_coeff @dihedral:46-13-50-47 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:46-13-50-50 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:46-13-50-109 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:13-13-51-X opls 1.711 -0.5 0.663 0.0 - dihedral_coeff @dihedral:13-13-51-46 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:46-13-51-20 opls 0.0 0.0 0.468 0.0 - dihedral_coeff @dihedral:13-13-53-13 opls 1.438 -0.124 0.264 0.0 - dihedral_coeff @dihedral:13-13-53-45 opls 0.0 0.0 0.347 0.0 - dihedral_coeff @dihedral:46-13-53-13 opls 0.0 0.0 0.302 0.0 - dihedral_coeff @dihedral:46-13-53-45 opls 0.0 0.0 0.261 0.0 - dihedral_coeff @dihedral:46-13-53-48 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:46-13-53-54 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:13-13-55-45 opls -0.19 -0.417 0.418 0.0 - dihedral_coeff @dihedral:13-13-55-48 opls 1.829 0.243 -0.498 0.0 - dihedral_coeff @dihedral:13-13-55-54 opls -0.19 -0.417 0.418 0.0 - dihedral_coeff @dihedral:46-13-55-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-55-45 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-55-48 opls 0.0 0.0 0.177 0.0 - dihedral_coeff @dihedral:13-13-56-18 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-13-57-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-57-X opls 1.0 -0.35 0.0 0.0 - dihedral_coeff @dihedral:13-13-57-62 opls 2.756 -0.872 -3.68 0.0 - dihedral_coeff @dihedral:13-13-57-82 opls -1.0 -0.35 0.0 0.0 - dihedral_coeff @dihedral:20-13-57-X opls 1.5 -1.5 0.0 0.0 - dihedral_coeff @dihedral:20-13-57-62 opls -1.5 -1.5 0.0 0.0 - dihedral_coeff @dihedral:20-13-57-82 opls -1.5 -1.5 0.0 0.0 - dihedral_coeff @dihedral:13-13-59-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-59-56 opls 0.0 0.5 -0.5 0.0 - dihedral_coeff @dihedral:46-13-59-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-62-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-62-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-64-20 opls 0.0 0.0 0.25 0.0 - dihedral_coeff @dihedral:46-13-64-52 opls 0.0 0.0 0.25 0.0 - dihedral_coeff @dihedral:48-13-64-20 opls 2.25 0.0 0.0 0.0 - dihedral_coeff @dihedral:48-13-64-52 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-13-79-23 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-13-79-24 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-79-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-79-23 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-79-5 opls 0.0 0.0 0.35 0.0 - dihedral_coeff @dihedral:46-13-79-13 opls 0.0 0.0 0.35 0.0 - dihedral_coeff @dihedral:46-13-79-23 opls 0.0 0.0 0.35 0.0 - dihedral_coeff @dihedral:46-13-79-48 opls 0.0 0.0 0.35 0.0 - dihedral_coeff @dihedral:13-13-80-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-80-60 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-80-84 opls -0.714 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-80-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-80-60 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-80-84 opls 0.0 0.0 -0.48 0.0 - dihedral_coeff @dihedral:13-13-82-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-82-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-83-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-83-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:1-13-84-X opls 0.0 0.45 0.0 0.0 - dihedral_coeff @dihedral:13-13-84-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-84-57 opls 1.7 -0.6 0.0 0.0 - dihedral_coeff @dihedral:21-13-84-X opls 0.0 -0.4 0.0 0.0 - dihedral_coeff @dihedral:46-13-84-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:1-13-87-X opls 0.0 0.45 0.0 0.0 - dihedral_coeff @dihedral:13-13-87-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:21-13-87-X opls 0.0 -0.4 0.0 0.0 - dihedral_coeff @dihedral:46-13-87-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-88-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-88-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-13-90-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-90-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-91-91 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:13-13-95-13 opls 0.0 -1.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-95-46 opls 0.0 -1.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-102-103 opls 0.0 0.4 0.0 0.0 - dihedral_coeff @dihedral:46-13-102-103 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-104-13 opls 1.0 -0.5 0.5 0.0 - dihedral_coeff @dihedral:46-13-104-13 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:X-13-105-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-105-X opls 1.0 -0.35 0.0 0.0 - dihedral_coeff @dihedral:13-13-105-62 opls -1.0 -0.35 0.0 0.0 - dihedral_coeff @dihedral:13-13-105-82 opls -1.0 -0.35 0.0 0.0 - dihedral_coeff @dihedral:20-13-105-X opls 1.5 -1.5 0.0 0.0 - dihedral_coeff @dihedral:20-13-105-62 opls 3.132 -1.491 2.744 0.0 - dihedral_coeff @dihedral:20-13-105-82 opls -1.5 -1.5 0.0 0.0 - dihedral_coeff @dihedral:3-13-107-13 opls -1.737 1.251 -3.501 0.0 - dihedral_coeff @dihedral:13-13-107-3 opls -1.396 -0.427 0.0 0.0 - dihedral_coeff @dihedral:13-13-107-13 opls 4.753 -0.734 0.0 0.0 - dihedral_coeff @dihedral:46-13-107-3 opls 0.0 0.0 -0.139 0.0 - dihedral_coeff @dihedral:46-13-107-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-107-48 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-108-13 opls 1.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-108-45 opls 0.0 0.0 0.26 0.0 - dihedral_coeff @dihedral:46-13-108-13 opls 0.0 0.0 0.18 0.0 - dihedral_coeff @dihedral:46-13-108-20 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-13-108-45 opls 0.0 0.0 0.18 0.0 - dihedral_coeff @dihedral:13-13-109-109 opls 0.346 0.405 -0.904 0.0 - dihedral_coeff @dihedral:46-13-109-13 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:46-13-109-46 opls 0.0 0.0 0.318 0.0 - dihedral_coeff @dihedral:46-13-109-109 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:17-15-48-X opls 0.0 1.1 0.0 0.0 - dihedral_coeff @dihedral:17-15-48-48 opls 0.0 1.1 0.0 0.0 - dihedral_coeff @dihedral:13-16-16-13 opls 0.0 -7.414 1.705 0.0 - dihedral_coeff @dihedral:13-16-48-48 opls 0.0 0.6 0.0 0.0 - dihedral_coeff @dihedral:13-16-48-56 opls 1.6 5.1 0.0 0.0 - dihedral_coeff @dihedral:13-16-59-56 opls 0.0 4.8 0.0 0.0 - dihedral_coeff @dihedral:84-16-82-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:84-16-82-61 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:82-16-84-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:82-16-84-83 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:82-16-84-88 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-16-91-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:19-18-48-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:19-18-48-48 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:18-18-56-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:18-18-56-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-19-19-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-19-19-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-19-19-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-19-19-47 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-19-19-109 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-19-19-47 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-19-19-109 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:19-19-47-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:19-19-47-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:19-19-47-47 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-20-44-13 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:13-20-44-45 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:13-20-47-13 opls 0.65 -0.25 0.67 0.0 - dihedral_coeff @dihedral:13-20-47-46 opls 0.0 0.0 0.76 0.0 - dihedral_coeff @dihedral:13-20-47-47 opls -3.5 3.0 0.0 0.0 - dihedral_coeff @dihedral:13-20-47-50 opls -3.5 3.0 0.0 0.0 - dihedral_coeff @dihedral:3-20-48-48 opls 0.0 2.5 0.0 0.0 - dihedral_coeff @dihedral:13-20-48-48 opls 0.0 3.0 0.0 0.0 - dihedral_coeff @dihedral:13-20-48-56 opls 0.4 5.5 0.0 0.0 - dihedral_coeff @dihedral:64-20-48-48 opls 0.0 2.99 0.0 0.0 - dihedral_coeff @dihedral:13-20-51-5 opls -0.375 -1.358 0.004 0.0 - dihedral_coeff @dihedral:13-20-51-13 opls 0.65 -0.25 0.67 0.0 - dihedral_coeff @dihedral:13-20-51-20 opls -0.375 -1.358 0.004 0.0 - dihedral_coeff @dihedral:13-20-51-46 opls 0.0 0.0 0.76 0.0 - dihedral_coeff @dihedral:13-20-56-3 opls 3.0 3.0 0.0 0.0 - dihedral_coeff @dihedral:13-20-59-56 opls 0.0 5.2 0.0 0.0 - dihedral_coeff @dihedral:X-20-64-52 opls 0.0 0.0 0.562 0.0 - dihedral_coeff @dihedral:13-20-64-13 opls 3.5 -3.3 1.5 0.0 - dihedral_coeff @dihedral:13-20-64-52 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:48-20-64-4 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:84-20-82-61 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:82-20-84-88 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:84-20-84-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:84-20-84-87 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:108-20-108-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:108-20-108-20 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-24-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:3-24-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:13-24-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:45-24-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:59-24-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:82-24-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:84-24-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:X-24-59-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-24-59-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:45-24-59-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-24-60-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-24-79-23 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-24-79-48 opls 2.074 -2.966 2.473 0.0 - dihedral_coeff @dihedral:45-24-79-48 opls 1.671 -4.901 0.669 0.0 - dihedral_coeff @dihedral:13-24-82-61 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:45-24-82-16 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:45-24-82-20 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:45-24-82-61 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:48-24-82-16 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:48-24-82-20 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:48-24-82-61 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:X-24-84-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:3-24-84-84 opls 0.0 3.0 0.0 0.0 - dihedral_coeff @dihedral:45-24-84-16 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:45-24-84-20 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:48-24-84-16 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:48-24-84-20 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:3-24-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:3-24-86-56 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:3-24-86-86 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:47-24-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:47-24-86-56 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-24-87-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-24-88-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:3-24-91-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:3-24-91-89 opls -1.396 -0.427 0.0 0.0 - dihedral_coeff @dihedral:3-24-91-91 opls -1.396 -0.427 0.0 0.0 - dihedral_coeff @dihedral:45-24-91-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:45-24-91-89 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:45-24-91-91 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-24-106-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-44-44-13 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:13-44-44-45 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:45-44-44-45 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:13-44-48-48 opls -7.582 3.431 3.198 0.0 - dihedral_coeff @dihedral:45-44-48-48 opls 0.0 2.03 0.0 0.0 - dihedral_coeff @dihedral:59-44-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:82-44-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:84-44-48-48 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:45-44-82-16 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:45-44-82-61 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:48-44-82-16 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:48-44-82-61 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:47-46-47-13 opls 0.0 -8.0 0.0 0.0 - dihedral_coeff @dihedral:47-46-47-46 opls 0.0 -8.0 0.0 0.0 - dihedral_coeff @dihedral:X-47-47-X opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:X-47-47-19 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:3-47-47-24 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:3-47-47-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:5-47-47-13 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:5-47-47-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-47-47-13 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-47-47-19 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-47-47-20 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-47-47-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:19-47-47-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:20-47-47-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:21-47-47-21 opls -1.6 14.0 0.0 0.0 - dihedral_coeff @dihedral:21-47-47-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-47-47-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-47-47-48 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-47-48-48 opls 0.205 -0.531 0.0 0.0 - dihedral_coeff @dihedral:46-47-48-48 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:46-47-48-56 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:47-47-48-48 opls 1.241 3.353 -0.286 0.0 - dihedral_coeff @dihedral:13-47-50-13 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-47-50-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-47-50-48 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-47-50-50 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-47-50-109 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:24-47-50-3 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-47-50-13 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-47-50-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-47-50-48 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-47-50-50 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-47-50-109 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:X-47-84-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-47-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:3-47-86-86 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-47-86-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-47-86-24 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-47-87-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-47-88-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:13-47-110-47 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-47-110-47 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-48-48-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-48-48-13 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-48-48-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-48-48-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:1-48-48-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:1-48-48-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:13-48-48-13 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:13-48-48-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:13-48-48-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:13-48-48-50 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:21-48-48-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:21-48-48-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:44-48-48-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:47-48-48-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-48-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-48-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-48-50 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-48-55 opls 0.0 1.62 0.0 -0.44 - dihedral_coeff @dihedral:48-48-48-60 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-48-65 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-48-66 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-48-86 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-48-109 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-48-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-48-50 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-48-60 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-48-65 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-48-66 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-48-86 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-48-109 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:56-48-48-86 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-50-46 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:48-48-50-47 opls 1.241 3.353 -0.286 0.0 - dihedral_coeff @dihedral:56-48-50-46 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:56-48-50-47 opls 1.241 3.353 -0.286 0.0 - dihedral_coeff @dihedral:48-48-53-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:48-48-53-54 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-48-55-45 opls 0.0 2.03 0.0 0.0 - dihedral_coeff @dihedral:48-48-55-45 opls 0.0 3.9 0.0 0.0 - dihedral_coeff @dihedral:55-48-55-13 opls 0.0 7.936 0.0 0.0 - dihedral_coeff @dihedral:55-48-55-45 opls 0.0 3.9 0.0 0.0 - dihedral_coeff @dihedral:60-48-55-45 opls 0.0 2.03 0.0 0.0 - dihedral_coeff @dihedral:X-48-56-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-56-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-56-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-48-60-X opls 0.0 7.0 0.0 0.0 - dihedral_coeff @dihedral:X-48-79-23 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:48-48-79-13 opls 0.0 -0.9 0.0 0.0 - dihedral_coeff @dihedral:48-48-79-24 opls 1.656 -0.768 -0.117 0.0 - dihedral_coeff @dihedral:48-48-86-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-86-56 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-48-86-86 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-86-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-86-56 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-86-86 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:56-48-86-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:56-48-86-86 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-48-88-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:56-48-101-13 opls 0.0 3.651 0.0 0.0 - dihedral_coeff @dihedral:48-48-102-103 opls 0.0 1.15 0.0 0.0 - dihedral_coeff @dihedral:48-48-109-13 opls 0.205 -0.531 0.0 0.0 - dihedral_coeff @dihedral:48-48-109-46 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:48-48-109-109 opls 1.241 3.353 -0.286 0.0 - dihedral_coeff @dihedral:X-50-50-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:3-50-50-3 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:13-50-50-13 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:13-50-50-46 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:13-50-50-47 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:46-50-50-46 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:46-50-50-47 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:47-50-50-47 opls 1.423 4.055 0.858 0.0 - dihedral_coeff @dihedral:13-50-109-13 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:13-50-109-109 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:46-50-109-13 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:46-50-109-46 opls 0.0 0.0 0.3 0.0 - dihedral_coeff @dihedral:46-50-109-109 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:47-50-109-13 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:47-50-109-46 opls 0.0 0.0 -0.372 0.0 - dihedral_coeff @dihedral:47-50-109-109 opls 1.423 4.055 0.858 0.0 - dihedral_coeff @dihedral:13-53-82-61 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:48-53-82-61 opls 0.0 2.1 0.0 0.0 - dihedral_coeff @dihedral:45-55-59-X opls 0.0 2.03 0.0 0.0 - dihedral_coeff @dihedral:13-56-56-13 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:13-56-56-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-56-56-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-56-59-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-56-59-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-56-60-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-56-62-X opls 0.0 10.0 0.0 0.0 - dihedral_coeff @dihedral:X-56-82-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-56-86-48 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-56-86-86 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-57-60-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:45-57-60-X opls 0.0 5.0 0.0 0.0 - dihedral_coeff @dihedral:X-57-61-X opls 0.0 10.0 0.0 0.0 - dihedral_coeff @dihedral:X-57-62-X opls 0.0 10.0 0.0 0.0 - dihedral_coeff @dihedral:X-57-81-X opls 0.0 3.05 0.0 0.0 - dihedral_coeff @dihedral:X-57-82-X opls 0.0 4.65 0.0 0.0 - dihedral_coeff @dihedral:X-57-82-49 opls 0.0 10.0 0.0 0.0 - dihedral_coeff @dihedral:45-57-82-X opls 0.0 5.0 0.0 0.0 - dihedral_coeff @dihedral:X-57-84-X opls 0.0 2.8 0.0 0.0 - dihedral_coeff @dihedral:45-57-84-X opls 0.0 5.0 0.0 0.0 - dihedral_coeff @dihedral:61-57-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:84-57-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-60-60-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-60-61-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-60-80-X opls 0.0 3.35 0.0 0.0 - dihedral_coeff @dihedral:X-60-81-X opls 0.0 6.0 0.0 0.0 - dihedral_coeff @dihedral:X-60-87-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-60-87-84 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:60-60-87-84 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-61-61-X opls 0.0 10.0 0.0 0.0 - dihedral_coeff @dihedral:X-61-62-X opls 0.0 10.0 0.0 0.0 - dihedral_coeff @dihedral:X-61-82-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-61-82-49 opls 0.0 10.0 0.0 0.0 - dihedral_coeff @dihedral:83-61-82-16 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:88-61-82-16 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:88-61-82-20 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-61-83-X opls 0.0 4.8 0.0 0.0 - dihedral_coeff @dihedral:82-61-83-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:82-61-83-84 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-61-84-X opls 0.0 10.0 0.0 0.0 - dihedral_coeff @dihedral:X-61-88-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:82-61-88-84 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-80-84-X opls 0.0 13.05 0.0 0.0 - dihedral_coeff @dihedral:X-82-84-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:16-82-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:20-82-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:57-82-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:61-82-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-82-87-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-83-84-X opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:X-83-84-49 opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:49-83-84-X opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:49-83-84-16 opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:49-83-84-49 opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:61-83-84-16 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:61-83-84-20 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:61-83-84-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-83-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:61-83-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:61-83-87-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:84-83-87-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-84-84-X opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:X-84-84-49 opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:16-84-84-49 opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:49-84-84-49 opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:X-84-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:16-84-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:20-84-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:57-84-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-84-87-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-84-87-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-84-87-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-84-88-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:16-84-88-49 opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:16-84-88-61 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:20-84-88-61 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-84-88-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:49-84-88-61 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:48-86-86-48 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:48-86-86-56 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:48-86-87-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:48-86-88-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:48-86-88-61 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:56-86-88-X opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-87-87-20 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-87-87-57 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:X-87-87-87 opls 0.0 2.17 0.0 0.0 - dihedral_coeff @dihedral:49-87-87-49 opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:4-89-90-13 opls 0.0 6.089 0.0 0.0 - dihedral_coeff @dihedral:4-89-90-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:4-89-90-48 opls 0.0 6.089 0.0 0.0 - dihedral_coeff @dihedral:4-89-90-91 opls 0.0 20.0 0.0 0.0 - dihedral_coeff @dihedral:91-89-90-13 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:91-89-90-45 opls 0.0 4.9 0.0 0.0 - dihedral_coeff @dihedral:91-89-90-48 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:91-89-90-91 opls 2.3 6.089 0.0 0.0 - dihedral_coeff @dihedral:X-89-91-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-89-91-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:4-89-91-91 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:90-89-91-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:90-89-91-91 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-90-91-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-90-91-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-90-91-91 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-91-91-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-91-91-24 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-91-91-13 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-91-91-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-91-91-46 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:46-91-91-91 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:91-91-91-91 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:X-109-109-X opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-109-109-13 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-109-109-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-109-109-48 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-109-109-50 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:13-109-109-109 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-109-109-46 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-109-109-48 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-109-109-50 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:46-109-109-109 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:48-109-109-48 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:48-109-109-50 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:48-109-109-109 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:50-109-109-50 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:50-109-109-109 opls 0.0 14.0 0.0 0.0 - dihedral_coeff @dihedral:109-109-109-109 opls 1.423 4.055 0.858 0.0 - dihedral_coeff @dihedral:24-3-13-53 opls 1.816 1.222 1.581 0.0 - dihedral_coeff @dihedral:52-3-13-24 opls 0.0 0.82 0.0 0.0 - dihedral_coeff @dihedral:3-13-13-53 opls 1.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:3-13-13-83 opls -1.697 -0.456 0.585 0.0 - dihedral_coeff @dihedral:3-13-13-84 opls -1.697 -0.456 0.585 0.0 - dihedral_coeff @dihedral:3-13-13-85 opls -1.697 -0.456 0.585 0.0 - dihedral_coeff @dihedral:5-13-13-53 opls 6.28 -1.467 2.03 0.0 - dihedral_coeff @dihedral:15-13-13-53 opls 1.428 0.086 0.029 0.0 - dihedral_coeff @dihedral:16-13-13-53 opls 1.428 0.086 0.029 0.0 - dihedral_coeff @dihedral:13-13-13-55 opls 2.732 -0.229 0.485 0.0 - dihedral_coeff @dihedral:24-13-13-83 opls 0.845 -0.962 0.713 0.0 - dihedral_coeff @dihedral:53-13-13-83 opls 1.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:24-13-13-84 opls 0.845 -0.962 0.713 0.0 - dihedral_coeff @dihedral:53-13-13-84 opls 1.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:24-13-13-85 opls 0.845 -0.962 0.713 0.0 - dihedral_coeff @dihedral:46-13-13-85 opls 0.0 0.0 0.462 0.0 - dihedral_coeff @dihedral:53-13-13-85 opls 1.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:3-13-53-13 opls 1.438 -0.124 0.264 0.0 - dihedral_coeff @dihedral:3-13-53-54 opls 0.0 0.0 0.347 0.0 - dihedral_coeff @dihedral:13-13-53-54 opls 0.0 0.0 0.347 0.0 - dihedral_coeff @dihedral:46-13-55-54 opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-85-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:13-13-85-57 opls 1.7 -0.6 0.0 0.0 - dihedral_coeff @dihedral:46-13-85-X opls 0.0 0.0 0.0 0.0 - dihedral_coeff @dihedral:55-48-55-54 opls 0.0 3.9 0.0 0.0 - dihedral_coeff @dihedral:X-48-81-X opls 0.0 7.25 0.0 0.0 - dihedral_coeff @dihedral:X-57-85-X opls 0.0 5.0 0.0 0.0 - dihedral_coeff @dihedral:X-85-85-X opls 0.0 10.75 0.0 0.0 - dihedral_coeff @dihedral:13-13-13-20 opls 1.3 -0.05 0.2 0.0 - dihedral_coeff @dihedral:13-13-13-47 opls 1.3 -0.05 0.2 0.0 + dihedral_coeff @dihedral:X_002_002_002 -2.5 1.25 3.1 0.0 + dihedral_coeff @dihedral:X_002_002_006 -2.5 1.25 3.1 0.0 + dihedral_coeff @dihedral:001_002_002_002 -2.0 0.7 3.0 0.0 + dihedral_coeff @dihedral:001_002_002_006 -2.0 0.7 3.0 0.0 + dihedral_coeff @dihedral:002_002_002_002 -3.4 1.25 3.1 0.0 + dihedral_coeff @dihedral:002_002_002_006 -3.4 1.25 3.1 0.0 + dihedral_coeff @dihedral:002_002_002_010 -3.4 1.25 3.1 0.0 + dihedral_coeff @dihedral:002_002_002_013 -3.4 1.25 3.1 0.0 + dihedral_coeff @dihedral:002_002_002_065 -2.0 0.5 3.25 0.0 + dihedral_coeff @dihedral:006_002_002_006 -3.4 1.25 3.1 0.0 + dihedral_coeff @dihedral:006_002_002_065 -2.0 0.5 3.25 0.0 + dihedral_coeff @dihedral:010_002_002_010 -3.4 1.25 3.1 0.0 + dihedral_coeff @dihedral:002_002_005_007 0.3 0.0 1.3 0.0 + dihedral_coeff @dihedral:006_002_005_007 0.3 0.0 1.3 0.0 + dihedral_coeff @dihedral:010_002_005_007 0.3 0.0 1.3 0.0 + dihedral_coeff @dihedral:X_002_010_002 -2.5 1.25 3.1 0.0 + dihedral_coeff @dihedral:002_002_010_002 -3.4 1.25 3.1 0.0 + dihedral_coeff @dihedral:002_002_013_002 -3.4 1.25 3.1 0.0 + dihedral_coeff @dihedral:006_002_020_002 -7.4 3.0 1.8 0.0 + dihedral_coeff @dihedral:006_002_020_006 -8.4 3.0 1.8 0.0 + dihedral_coeff @dihedral:004_003_003_004 1.6 3.2 0.0 0.0 + dihedral_coeff @dihedral:004_003_003_013 0.0 0.5 0.0 0.0 + dihedral_coeff @dihedral:004_003_003_024 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_003_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_003_003_013 0.7 -1.5 0.0 0.0 + dihedral_coeff @dihedral:013_003_003_024 -0.5 0.2 0.0 0.0 + dihedral_coeff @dihedral:013_003_003_046 0.8 -0.76 0.0 0.0 + dihedral_coeff @dihedral:024_003_003_046 -0.9 0.3 0.0 0.0 + dihedral_coeff @dihedral:046_003_003_046 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:003_003_005_007 3.0 5.5 0.0 0.0 + dihedral_coeff @dihedral:004_003_005_007 0.0 5.0 0.0 0.0 + dihedral_coeff @dihedral:013_003_005_007 1.5 5.5 0.0 0.0 + dihedral_coeff @dihedral:024_003_005_007 -2.0 5.0 0.0 0.0 + dihedral_coeff @dihedral:046_003_005_007 1.5 5.5 0.0 0.0 + dihedral_coeff @dihedral:048_003_005_007 4.0 5.0 0.0 0.0 + dihedral_coeff @dihedral:001_003_013_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:001_003_013_046 0.0 0.0 0.36 0.0 + dihedral_coeff @dihedral:003_003_013_046 0.0 0.0 0.085 0.0 + dihedral_coeff @dihedral:004_003_013_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_013_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_013_021 -0.65 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_013_044 0.0 0.82 0.0 0.0 + dihedral_coeff @dihedral:004_003_013_024 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_013_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_013_048 0.0 0.546 0.0 0.0 + dihedral_coeff @dihedral:005_003_013_013 0.0 1.412 0.0 0.0 + dihedral_coeff @dihedral:005_003_013_044 5.26 0.82 0.0 0.0 + dihedral_coeff @dihedral:005_003_013_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_003_013_013 1.454 -0.144 -0.775 0.0 + dihedral_coeff @dihedral:013_003_013_046 0.0 0.0 0.275 0.0 + dihedral_coeff @dihedral:020_003_013_013 0.0 0.0 -0.553 0.0 + dihedral_coeff @dihedral:020_003_013_046 0.0 0.0 0.132 0.0 + dihedral_coeff @dihedral:021_003_013_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:021_003_013_046 0.0 0.0 0.36 0.0 + dihedral_coeff @dihedral:024_003_013_013 1.173 0.189 -1.2 0.0 + dihedral_coeff @dihedral:024_003_013_021 0.65 0.0 0.0 0.0 + dihedral_coeff @dihedral:024_003_013_024 1.816 1.222 1.581 0.0 + dihedral_coeff @dihedral:024_003_013_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_003_013_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_003_013_046 0.0 0.0 0.36 0.0 + dihedral_coeff @dihedral:048_003_013_046 0.0 0.0 0.275 0.0 + dihedral_coeff @dihedral:052_003_013_013 0.0 0.82 0.0 0.0 + dihedral_coeff @dihedral:052_003_013_044 0.0 0.82 0.0 0.0 + dihedral_coeff @dihedral:052_003_013_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:065_003_013_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:065_003_013_046 0.0 0.0 0.36 0.0 + dihedral_coeff @dihedral:107_003_013_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_020_013 0.0 5.124 0.0 0.0 + dihedral_coeff @dihedral:004_003_020_048 0.0 5.0 0.0 0.0 + dihedral_coeff @dihedral:013_003_020_013 4.669 5.124 0.0 0.0 + dihedral_coeff @dihedral:013_003_020_048 1.5 5.0 0.0 0.0 + dihedral_coeff @dihedral:024_003_020_013 -2.0 5.0 0.0 0.0 + dihedral_coeff @dihedral:046_003_020_013 4.669 5.124 0.0 0.0 + dihedral_coeff @dihedral:048_003_020_013 4.0 5.0 0.0 0.0 + dihedral_coeff @dihedral:003_003_024_013 0.4 4.9 0.0 0.0 + dihedral_coeff @dihedral:003_003_024_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:004_003_024_005 0.0 6.603 0.0 0.0 + dihedral_coeff @dihedral:004_003_024_013 0.0 6.089 0.0 0.0 + dihedral_coeff @dihedral:004_003_024_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:004_003_024_047 0.0 6.089 0.0 0.0 + dihedral_coeff @dihedral:004_003_024_048 0.0 6.089 0.0 0.0 + dihedral_coeff @dihedral:004_003_024_091 0.0 6.089 0.0 0.0 + dihedral_coeff @dihedral:005_003_024_013 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:005_003_024_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:013_003_024_005 4.542 6.603 1.045 0.0 + dihedral_coeff @dihedral:013_003_024_013 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:013_003_024_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:013_003_024_048 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:020_003_024_013 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:020_003_024_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:024_003_024_003 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:024_003_024_013 4.6 0.0 0.0 0.0 + dihedral_coeff @dihedral:024_003_024_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:046_003_024_013 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:046_003_024_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:047_003_024_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:048_003_024_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:048_003_024_048 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:048_003_024_084 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:048_003_024_087 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:084_003_024_048 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:084_003_024_084 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:084_003_024_087 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:087_003_024_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:087_003_024_048 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:087_003_024_084 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:087_003_024_087 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:X_003_047_013 0.9 0.23 -0.505 0.0 + dihedral_coeff @dihedral:004_003_047_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_047_047 2.5 6.0 0.0 0.0 + dihedral_coeff @dihedral:005_003_047_047 3.2 -3.0 0.0 0.0 + dihedral_coeff @dihedral:024_003_047_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:024_003_047_047 2.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:107_003_047_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:107_003_047_047 2.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:005_003_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:013_003_048_048 0.0 0.2 0.0 0.0 + dihedral_coeff @dihedral:020_003_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:024_003_048_048 0.0 1.1 0.0 0.0 + dihedral_coeff @dihedral:046_003_048_048 0.0 0.2 0.0 0.0 + dihedral_coeff @dihedral:X_003_050_013 0.9 0.23 -0.505 0.0 + dihedral_coeff @dihedral:004_003_050_047 2.5 6.0 0.0 0.0 + dihedral_coeff @dihedral:005_003_050_047 3.2 -3.0 0.0 0.0 + dihedral_coeff @dihedral:013_003_050_047 0.8 -3.0 0.0 0.0 + dihedral_coeff @dihedral:013_003_056_X 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_003_056_013 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_003_056_X 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_003_056_045 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:X_003_060_X 0.0 7.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_060_X 0.0 7.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_082_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_082_057 2.0 1.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_082_061 0.0 1.0 0.0 0.0 + dihedral_coeff @dihedral:082_003_082_057 -2.0 1.0 0.0 0.0 + dihedral_coeff @dihedral:082_003_082_061 0.0 1.0 0.0 0.0 + dihedral_coeff @dihedral:004_003_084_020 -0.75 1.5 0.0 0.0 + dihedral_coeff @dihedral:004_003_084_087 0.75 1.5 0.0 0.0 + dihedral_coeff @dihedral:084_003_084_020 0.0 1.5 0.0 0.0 + dihedral_coeff @dihedral:084_003_084_087 0.0 1.5 0.0 0.0 + dihedral_coeff @dihedral:048_003_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_003_087_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:004_003_087_084 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:004_003_087_087 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:024_003_087_084 0.0 1.1 0.0 0.0 + dihedral_coeff @dihedral:024_003_087_087 0.0 1.1 0.0 0.0 + dihedral_coeff @dihedral:004_003_107_013 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:013_003_107_013 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:004_003_109_109 2.5 6.0 0.0 0.0 + dihedral_coeff @dihedral:005_003_109_109 3.2 -3.0 0.0 0.0 + dihedral_coeff @dihedral:X_004_106_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:007_005_010_002 0.3 0.0 0.5 0.0 + dihedral_coeff @dihedral:007_005_010_006 0.3 0.0 0.5 0.0 + dihedral_coeff @dihedral:007_005_013_002 0.0 0.0 0.2 0.0 + dihedral_coeff @dihedral:007_005_013_006 0.0 0.0 0.2 0.0 + dihedral_coeff @dihedral:007_005_013_013 -0.356 -0.174 0.492 0.0 + dihedral_coeff @dihedral:007_005_013_046 0.0 0.0 0.352 0.0 + dihedral_coeff @dihedral:007_005_013_047 -0.9 0.0 0.0 0.0 + dihedral_coeff @dihedral:007_005_013_048 -0.9 0.0 0.0 0.0 + dihedral_coeff @dihedral:007_005_013_050 -0.9 0.0 0.0 0.0 + dihedral_coeff @dihedral:007_005_044_013 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:007_005_044_045 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:007_005_024_003 5.519 -6.7 0.581 0.0 + dihedral_coeff @dihedral:007_005_024_045 2.722 -5.154 0.0 0.0 + dihedral_coeff @dihedral:007_005_047_047 0.0 1.682 0.0 0.0 + dihedral_coeff @dihedral:007_005_048_048 0.0 1.682 0.0 0.0 + dihedral_coeff @dihedral:007_005_051_020 -1.257 -1.806 0.003 0.0 + dihedral_coeff @dihedral:007_005_056_003 3.0 3.0 0.0 0.0 + dihedral_coeff @dihedral:007_005_064_004 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:007_005_064_005 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:007_005_079_013 -0.75 0.0 0.0 0.0 + dihedral_coeff @dihedral:007_005_079_023 0.75 0.0 0.0 0.0 + dihedral_coeff @dihedral:007_005_079_048 2.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_013_013_003 -4.344 -1.714 0.0 0.0 + dihedral_coeff @dihedral:X_013_013_013 1.711 -0.5 0.663 0.0 + dihedral_coeff @dihedral:X_013_013_024 1.428 0.086 0.029 0.0 + dihedral_coeff @dihedral:001_013_013_001 -2.5 0.0 0.25 0.0 + dihedral_coeff @dihedral:001_013_013_005 0.0 0.0 0.54 0.0 + dihedral_coeff @dihedral:001_013_013_013 0.3 -0.4 0.4 0.0 + dihedral_coeff @dihedral:001_013_013_046 0.0 0.0 0.4 0.0 + dihedral_coeff @dihedral:003_013_013_003 -0.55 0.0 1.0 0.0 + dihedral_coeff @dihedral:003_013_013_005 -6.18 0.0 0.0 0.0 + dihedral_coeff @dihedral:003_013_013_013 -2.06 -0.313 0.315 0.0 + dihedral_coeff @dihedral:003_013_013_015 -4.344 -1.714 0.0 0.0 + dihedral_coeff @dihedral:003_013_013_016 -4.344 -1.714 0.0 0.0 + dihedral_coeff @dihedral:003_013_013_024 -9.0 2.0 0.8 0.0 + dihedral_coeff @dihedral:003_013_013_046 0.0 0.0 -0.1 0.0 + dihedral_coeff @dihedral:003_013_013_048 -1.697 -0.456 0.585 0.0 + dihedral_coeff @dihedral:003_013_013_080 -1.697 -0.456 0.585 0.0 + dihedral_coeff @dihedral:005_013_013_005 9.508 0.0 0.0 0.0 + dihedral_coeff @dihedral:005_013_013_013 -1.552 0.0 0.0 0.0 + dihedral_coeff @dihedral:005_013_013_020 4.319 0.0 0.0 0.0 + dihedral_coeff @dihedral:005_013_013_044 8.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:005_013_013_024 6.28 -1.467 2.03 0.0 + dihedral_coeff @dihedral:005_013_013_046 0.0 0.0 0.468 0.0 + dihedral_coeff @dihedral:013_013_013_013 1.3 -0.05 0.2 0.0 + dihedral_coeff @dihedral:013_013_013_015 1.262 -0.198 0.465 0.0 + dihedral_coeff @dihedral:013_013_013_016 2.619 -0.62 0.258 0.0 + dihedral_coeff @dihedral:013_013_013_019 0.0 -0.65 0.0 0.0 + dihedral_coeff @dihedral:013_013_013_021 0.0 0.0 0.4 0.0 + dihedral_coeff @dihedral:013_013_013_044 2.392 -0.674 0.55 0.0 + dihedral_coeff @dihedral:013_013_013_024 0.845 -0.962 0.713 0.0 + dihedral_coeff @dihedral:013_013_013_046 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:013_013_013_051 1.3 -0.05 0.2 0.0 + dihedral_coeff @dihedral:013_013_013_053 2.732 -0.229 0.485 0.0 + dihedral_coeff @dihedral:013_013_013_065 0.0 0.0 0.4 0.0 + dihedral_coeff @dihedral:013_013_013_066 0.0 0.0 0.4 0.0 + dihedral_coeff @dihedral:013_013_013_079 1.262 -0.198 0.465 0.0 + dihedral_coeff @dihedral:013_013_013_107 1.964 0.0 0.659 0.0 + dihedral_coeff @dihedral:013_013_013_108 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:015_013_013_046 0.0 0.0 0.452 0.0 + dihedral_coeff @dihedral:016_013_013_046 0.0 0.0 0.452 0.0 + dihedral_coeff @dihedral:019_013_013_046 0.0 0.0 0.366 0.0 + dihedral_coeff @dihedral:020_013_013_020 -0.55 0.0 0.0 0.0 + dihedral_coeff @dihedral:020_013_013_046 0.0 0.0 0.468 0.0 + dihedral_coeff @dihedral:021_013_013_021 -0.25 0.0 0.0 0.0 + dihedral_coeff @dihedral:021_013_013_044 2.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:021_013_013_046 0.0 0.0 0.4 0.0 + dihedral_coeff @dihedral:044_013_013_044 11.035 -0.968 0.27 0.0 + dihedral_coeff @dihedral:044_013_013_046 -1.013 -0.709 0.473 0.0 + dihedral_coeff @dihedral:044_013_013_048 -0.8 0.0 0.0 0.0 + dihedral_coeff @dihedral:024_013_013_046 0.0 0.0 0.464 0.0 + dihedral_coeff @dihedral:024_013_013_048 0.845 -0.962 0.713 0.0 + dihedral_coeff @dihedral:024_013_013_080 0.845 -0.962 0.713 0.0 + dihedral_coeff @dihedral:046_013_013_046 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:046_013_013_047 0.0 0.0 0.366 0.0 + dihedral_coeff @dihedral:046_013_013_048 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:046_013_013_051 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:046_013_013_053 0.0 0.0 0.384 0.0 + dihedral_coeff @dihedral:046_013_013_055 0.0 0.0 -0.582 0.0 + dihedral_coeff @dihedral:046_013_013_059 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:046_013_013_062 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:046_013_013_065 0.0 0.0 0.4 0.0 + dihedral_coeff @dihedral:046_013_013_066 0.0 0.0 0.4 0.0 + dihedral_coeff @dihedral:046_013_013_079 0.0 0.0 0.452 0.0 + dihedral_coeff @dihedral:046_013_013_080 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:046_013_013_082 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:046_013_013_083 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:046_013_013_084 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:046_013_013_087 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:046_013_013_088 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:046_013_013_102 0.0 0.0 -0.225 0.0 + dihedral_coeff @dihedral:046_013_013_104 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:046_013_013_107 0.0 0.0 0.464 0.0 + dihedral_coeff @dihedral:046_013_013_108 0.0 0.0 0.45 0.0 + dihedral_coeff @dihedral:046_013_013_109 0.0 0.0 0.366 0.0 + dihedral_coeff @dihedral:048_013_013_053 1.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:108_013_013_108 5.2 -0.5 0.0 0.0 + dihedral_coeff @dihedral:013_013_015_017 -0.759 -0.282 0.68 0.0 + dihedral_coeff @dihedral:046_013_015_017 0.0 0.0 0.48 0.0 + dihedral_coeff @dihedral:013_013_016_013 0.925 -0.576 0.677 0.0 + dihedral_coeff @dihedral:013_013_016_016 1.941 -0.836 0.935 0.0 + dihedral_coeff @dihedral:046_013_016_013 0.0 0.0 0.647 0.0 + dihedral_coeff @dihedral:046_013_016_016 0.0 0.0 0.558 0.0 + dihedral_coeff @dihedral:046_013_016_048 0.0 0.0 0.647 0.0 + dihedral_coeff @dihedral:X_013_018_019 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_018_019 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_013_019_018 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_013_019_019 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_019_019 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_019_019 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_013_020_013 -0.521 -2.018 1.996 0.0 + dihedral_coeff @dihedral:056_013_020_013 -0.5 -1.5 1.0 0.0 + dihedral_coeff @dihedral:057_013_020_013 -0.5 -1.5 1.0 0.0 + dihedral_coeff @dihedral:013_013_020_003 -1.22 -0.126 0.422 0.0 + dihedral_coeff @dihedral:013_013_020_013 0.65 -0.25 0.67 0.0 + dihedral_coeff @dihedral:013_013_020_064 -1.42 -0.62 0.1 0.0 + dihedral_coeff @dihedral:046_013_020_X 0.0 0.0 0.76 0.0 + dihedral_coeff @dihedral:046_013_020_003 0.0 0.0 0.198 0.0 + dihedral_coeff @dihedral:046_013_020_047 0.0 0.0 0.76 0.0 + dihedral_coeff @dihedral:046_013_020_048 0.0 0.0 0.76 0.0 + dihedral_coeff @dihedral:046_013_020_051 0.0 0.0 0.76 0.0 + dihedral_coeff @dihedral:046_013_020_064 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:X_013_024_045 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:003_013_024_003 -2.365 0.912 -0.85 0.0 + dihedral_coeff @dihedral:003_013_024_013 -1.737 1.251 -3.501 0.0 + dihedral_coeff @dihedral:003_013_024_045 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_024_003 0.0 0.462 0.0 0.0 + dihedral_coeff @dihedral:013_013_024_013 4.753 -0.734 0.0 0.0 + dihedral_coeff @dihedral:013_013_024_045 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_024_059 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_024_079 2.929 -2.533 0.497 0.0 + dihedral_coeff @dihedral:013_013_024_091 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:046_013_024_003 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_024_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_024_045 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_024_048 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_024_079 1.362 -1.457 0.149 0.0 + dihedral_coeff @dihedral:048_013_024_059 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_044_013 0.416 -0.128 0.695 0.0 + dihedral_coeff @dihedral:013_013_044_045 -0.19 -0.417 0.418 0.0 + dihedral_coeff @dihedral:046_013_044_013 0.0 0.0 0.56 0.0 + dihedral_coeff @dihedral:046_013_044_045 0.0 0.0 0.4 0.0 + dihedral_coeff @dihedral:046_013_044_048 0.0 0.0 0.56 0.0 + dihedral_coeff @dihedral:X_013_047_013 1.711 -0.5 0.663 0.0 + dihedral_coeff @dihedral:X_013_047_046 0.0 0.0 0.468 0.0 + dihedral_coeff @dihedral:X_013_047_047 0.5 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_013_047_050 0.5 0.0 0.0 0.0 + dihedral_coeff @dihedral:001_013_047_047 0.5 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_047_013 2.817 -0.169 0.543 0.0 + dihedral_coeff @dihedral:013_013_047_047 0.346 0.405 -0.904 0.0 + dihedral_coeff @dihedral:013_013_047_050 0.346 0.405 -0.904 0.0 + dihedral_coeff @dihedral:046_013_047_013 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:046_013_047_046 0.0 0.0 0.318 0.0 + dihedral_coeff @dihedral:046_013_047_047 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:046_013_047_050 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:046_013_047_110 0.0 0.0 -0.25 0.0 + dihedral_coeff @dihedral:047_013_047_013 0.0 -8.0 0.0 0.0 + dihedral_coeff @dihedral:047_013_047_046 0.0 -8.0 0.0 0.0 + dihedral_coeff @dihedral:X_013_048_048 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:001_013_048_048 0.0 0.45 0.0 0.0 + dihedral_coeff @dihedral:013_013_048_048 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_048_056 -0.5 0.5 -0.5 0.0 + dihedral_coeff @dihedral:021_013_048_048 0.0 -0.4 0.0 0.0 + dihedral_coeff @dihedral:046_013_048_048 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:064_013_048_048 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:065_013_048_048 0.0 0.0 0.4 0.0 + dihedral_coeff @dihedral:X_013_050_047 0.5 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_050_050 0.346 0.405 -0.904 0.0 + dihedral_coeff @dihedral:046_013_050_047 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:046_013_050_050 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:046_013_050_109 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:013_013_051_X 1.711 -0.5 0.663 0.0 + dihedral_coeff @dihedral:013_013_051_046 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:046_013_051_020 0.0 0.0 0.468 0.0 + dihedral_coeff @dihedral:013_013_053_013 1.438 -0.124 0.264 0.0 + dihedral_coeff @dihedral:013_013_053_045 0.0 0.0 0.347 0.0 + dihedral_coeff @dihedral:046_013_053_013 0.0 0.0 0.302 0.0 + dihedral_coeff @dihedral:046_013_053_045 0.0 0.0 0.261 0.0 + dihedral_coeff @dihedral:046_013_053_048 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:046_013_053_054 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:013_013_055_045 -0.19 -0.417 0.418 0.0 + dihedral_coeff @dihedral:013_013_055_048 1.829 0.243 -0.498 0.0 + dihedral_coeff @dihedral:013_013_055_054 -0.19 -0.417 0.418 0.0 + dihedral_coeff @dihedral:046_013_055_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_055_045 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_055_048 0.0 0.0 0.177 0.0 + dihedral_coeff @dihedral:013_013_056_018 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_013_057_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_057_X 1.0 -0.35 0.0 0.0 + dihedral_coeff @dihedral:013_013_057_062 2.756 -0.872 -3.68 0.0 + dihedral_coeff @dihedral:013_013_057_082 -1.0 -0.35 0.0 0.0 + dihedral_coeff @dihedral:020_013_057_X 1.5 -1.5 0.0 0.0 + dihedral_coeff @dihedral:020_013_057_062 -1.5 -1.5 0.0 0.0 + dihedral_coeff @dihedral:020_013_057_082 -1.5 -1.5 0.0 0.0 + dihedral_coeff @dihedral:013_013_059_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_059_056 0.0 0.5 -0.5 0.0 + dihedral_coeff @dihedral:046_013_059_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_062_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_062_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_064_020 0.0 0.0 0.25 0.0 + dihedral_coeff @dihedral:046_013_064_052 0.0 0.0 0.25 0.0 + dihedral_coeff @dihedral:048_013_064_020 2.25 0.0 0.0 0.0 + dihedral_coeff @dihedral:048_013_064_052 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_013_079_023 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_013_079_024 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_079_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_079_023 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_079_005 0.0 0.0 0.35 0.0 + dihedral_coeff @dihedral:046_013_079_013 0.0 0.0 0.35 0.0 + dihedral_coeff @dihedral:046_013_079_023 0.0 0.0 0.35 0.0 + dihedral_coeff @dihedral:046_013_079_048 0.0 0.0 0.35 0.0 + dihedral_coeff @dihedral:013_013_080_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_080_060 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_080_084 -0.714 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_080_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_080_060 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_080_084 0.0 0.0 -0.48 0.0 + dihedral_coeff @dihedral:013_013_082_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_082_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_083_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_083_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:001_013_084_X 0.0 0.45 0.0 0.0 + dihedral_coeff @dihedral:013_013_084_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_084_057 1.7 -0.6 0.0 0.0 + dihedral_coeff @dihedral:021_013_084_X 0.0 -0.4 0.0 0.0 + dihedral_coeff @dihedral:046_013_084_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:001_013_087_X 0.0 0.45 0.0 0.0 + dihedral_coeff @dihedral:013_013_087_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:021_013_087_X 0.0 -0.4 0.0 0.0 + dihedral_coeff @dihedral:046_013_087_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_088_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_088_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_013_090_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_090_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_091_091 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:013_013_095_013 0.0 -1.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_095_046 0.0 -1.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_102_103 0.0 0.4 0.0 0.0 + dihedral_coeff @dihedral:046_013_102_103 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_104_013 1.0 -0.5 0.5 0.0 + dihedral_coeff @dihedral:046_013_104_013 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:X_013_105_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_105_X 1.0 -0.35 0.0 0.0 + dihedral_coeff @dihedral:013_013_105_062 -1.0 -0.35 0.0 0.0 + dihedral_coeff @dihedral:013_013_105_082 -1.0 -0.35 0.0 0.0 + dihedral_coeff @dihedral:020_013_105_X 1.5 -1.5 0.0 0.0 + dihedral_coeff @dihedral:020_013_105_062 3.132 -1.491 2.744 0.0 + dihedral_coeff @dihedral:020_013_105_082 -1.5 -1.5 0.0 0.0 + dihedral_coeff @dihedral:003_013_107_013 -1.737 1.251 -3.501 0.0 + dihedral_coeff @dihedral:013_013_107_003 -1.396 -0.427 0.0 0.0 + dihedral_coeff @dihedral:013_013_107_013 4.753 -0.734 0.0 0.0 + dihedral_coeff @dihedral:046_013_107_003 0.0 0.0 -0.139 0.0 + dihedral_coeff @dihedral:046_013_107_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_107_048 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_108_013 1.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_108_045 0.0 0.0 0.26 0.0 + dihedral_coeff @dihedral:046_013_108_013 0.0 0.0 0.18 0.0 + dihedral_coeff @dihedral:046_013_108_020 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_013_108_045 0.0 0.0 0.18 0.0 + dihedral_coeff @dihedral:013_013_109_109 0.346 0.405 -0.904 0.0 + dihedral_coeff @dihedral:046_013_109_013 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:046_013_109_046 0.0 0.0 0.318 0.0 + dihedral_coeff @dihedral:046_013_109_109 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:017_015_048_X 0.0 1.1 0.0 0.0 + dihedral_coeff @dihedral:017_015_048_048 0.0 1.1 0.0 0.0 + dihedral_coeff @dihedral:013_016_016_013 0.0 -7.414 1.705 0.0 + dihedral_coeff @dihedral:013_016_048_048 0.0 0.6 0.0 0.0 + dihedral_coeff @dihedral:013_016_048_056 1.6 5.1 0.0 0.0 + dihedral_coeff @dihedral:013_016_059_056 0.0 4.8 0.0 0.0 + dihedral_coeff @dihedral:084_016_082_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:084_016_082_061 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:082_016_084_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:082_016_084_083 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:082_016_084_088 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_016_091_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:019_018_048_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:019_018_048_048 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:018_018_056_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:018_018_056_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_019_019_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_019_019_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_019_019_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_019_019_047 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_019_019_109 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_019_019_047 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_019_019_109 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:019_019_047_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:019_019_047_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:019_019_047_047 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_020_044_013 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:013_020_044_045 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:013_020_047_013 0.65 -0.25 0.67 0.0 + dihedral_coeff @dihedral:013_020_047_046 0.0 0.0 0.76 0.0 + dihedral_coeff @dihedral:013_020_047_047 -3.5 3.0 0.0 0.0 + dihedral_coeff @dihedral:013_020_047_050 -3.5 3.0 0.0 0.0 + dihedral_coeff @dihedral:003_020_048_048 0.0 2.5 0.0 0.0 + dihedral_coeff @dihedral:013_020_048_048 0.0 3.0 0.0 0.0 + dihedral_coeff @dihedral:013_020_048_056 0.4 5.5 0.0 0.0 + dihedral_coeff @dihedral:064_020_048_048 0.0 2.99 0.0 0.0 + dihedral_coeff @dihedral:013_020_051_005 -0.375 -1.358 0.004 0.0 + dihedral_coeff @dihedral:013_020_051_013 0.65 -0.25 0.67 0.0 + dihedral_coeff @dihedral:013_020_051_020 -0.375 -1.358 0.004 0.0 + dihedral_coeff @dihedral:013_020_051_046 0.0 0.0 0.76 0.0 + dihedral_coeff @dihedral:013_020_056_003 3.0 3.0 0.0 0.0 + dihedral_coeff @dihedral:013_020_059_056 0.0 5.2 0.0 0.0 + dihedral_coeff @dihedral:X_020_064_052 0.0 0.0 0.562 0.0 + dihedral_coeff @dihedral:013_020_064_013 3.5 -3.3 1.5 0.0 + dihedral_coeff @dihedral:013_020_064_052 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:048_020_064_004 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:084_020_082_061 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:082_020_084_088 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:084_020_084_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:084_020_084_087 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:108_020_108_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:108_020_108_020 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_024_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:003_024_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:013_024_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:045_024_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:059_024_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:082_024_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:084_024_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:X_024_059_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_024_059_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:045_024_059_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_024_060_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_024_079_023 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_024_079_048 2.074 -2.966 2.473 0.0 + dihedral_coeff @dihedral:045_024_079_048 1.671 -4.901 0.669 0.0 + dihedral_coeff @dihedral:013_024_082_061 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:045_024_082_016 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:045_024_082_020 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:045_024_082_061 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:048_024_082_016 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:048_024_082_020 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:048_024_082_061 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:X_024_084_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:003_024_084_084 0.0 3.0 0.0 0.0 + dihedral_coeff @dihedral:045_024_084_016 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:045_024_084_020 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:048_024_084_016 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:048_024_084_020 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:003_024_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:003_024_086_056 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:003_024_086_086 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:047_024_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:047_024_086_056 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_024_087_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_024_088_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:003_024_091_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:003_024_091_089 -1.396 -0.427 0.0 0.0 + dihedral_coeff @dihedral:003_024_091_091 -1.396 -0.427 0.0 0.0 + dihedral_coeff @dihedral:045_024_091_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:045_024_091_089 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:045_024_091_091 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_024_106_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_044_044_013 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:013_044_044_045 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:045_044_044_045 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:013_044_048_048 -7.582 3.431 3.198 0.0 + dihedral_coeff @dihedral:045_044_048_048 0.0 2.03 0.0 0.0 + dihedral_coeff @dihedral:059_044_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:082_044_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:084_044_048_048 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:045_044_082_016 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:045_044_082_061 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:048_044_082_016 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:048_044_082_061 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:047_046_047_013 0.0 -8.0 0.0 0.0 + dihedral_coeff @dihedral:047_046_047_046 0.0 -8.0 0.0 0.0 + dihedral_coeff @dihedral:X_047_047_X 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:X_047_047_019 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:003_047_047_024 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:003_047_047_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:005_047_047_013 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:005_047_047_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_047_047_013 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_047_047_019 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_047_047_020 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_047_047_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:019_047_047_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:020_047_047_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:021_047_047_021 -1.6 14.0 0.0 0.0 + dihedral_coeff @dihedral:021_047_047_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_047_047_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_047_047_048 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_047_048_048 0.205 -0.531 0.0 0.0 + dihedral_coeff @dihedral:046_047_048_048 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:046_047_048_056 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:047_047_048_048 1.241 3.353 -0.286 0.0 + dihedral_coeff @dihedral:013_047_050_013 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_047_050_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_047_050_048 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_047_050_050 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_047_050_109 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:024_047_050_003 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_047_050_013 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_047_050_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_047_050_048 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_047_050_050 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_047_050_109 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:X_047_084_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_047_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:003_047_086_086 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_047_086_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_047_086_024 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_047_087_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_047_088_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:013_047_110_047 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_047_110_047 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_048_048_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_048_048_013 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_048_048_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_048_048_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:001_048_048_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:001_048_048_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:013_048_048_013 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:013_048_048_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:013_048_048_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:013_048_048_050 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:021_048_048_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:021_048_048_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:044_048_048_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:047_048_048_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_048_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_048_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_048_050 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_048_055 0.0 1.62 0.0 -0.44 + dihedral_coeff @dihedral:048_048_048_060 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_048_065 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_048_066 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_048_086 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_048_109 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_048_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_048_050 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_048_060 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_048_065 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_048_066 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_048_086 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_048_109 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:056_048_048_086 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_050_046 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:048_048_050_047 1.241 3.353 -0.286 0.0 + dihedral_coeff @dihedral:056_048_050_046 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:056_048_050_047 1.241 3.353 -0.286 0.0 + dihedral_coeff @dihedral:048_048_053_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:048_048_053_054 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_048_055_045 0.0 2.03 0.0 0.0 + dihedral_coeff @dihedral:048_048_055_045 0.0 3.9 0.0 0.0 + dihedral_coeff @dihedral:055_048_055_013 0.0 7.936 0.0 0.0 + dihedral_coeff @dihedral:055_048_055_045 0.0 3.9 0.0 0.0 + dihedral_coeff @dihedral:060_048_055_045 0.0 2.03 0.0 0.0 + dihedral_coeff @dihedral:X_048_056_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_056_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_056_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_048_060_X 0.0 7.0 0.0 0.0 + dihedral_coeff @dihedral:X_048_079_023 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:048_048_079_013 0.0 -0.9 0.0 0.0 + dihedral_coeff @dihedral:048_048_079_024 1.656 -0.768 -0.117 0.0 + dihedral_coeff @dihedral:048_048_086_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_086_056 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_048_086_086 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_086_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_086_056 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_086_086 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:056_048_086_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:056_048_086_086 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_048_088_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:056_048_101_013 0.0 3.651 0.0 0.0 + dihedral_coeff @dihedral:048_048_102_103 0.0 1.15 0.0 0.0 + dihedral_coeff @dihedral:048_048_109_013 0.205 -0.531 0.0 0.0 + dihedral_coeff @dihedral:048_048_109_046 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:048_048_109_109 1.241 3.353 -0.286 0.0 + dihedral_coeff @dihedral:X_050_050_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:003_050_050_003 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:013_050_050_013 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:013_050_050_046 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:013_050_050_047 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:046_050_050_046 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:046_050_050_047 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:047_050_050_047 1.423 4.055 0.858 0.0 + dihedral_coeff @dihedral:013_050_109_013 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:013_050_109_109 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:046_050_109_013 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:046_050_109_046 0.0 0.0 0.3 0.0 + dihedral_coeff @dihedral:046_050_109_109 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:047_050_109_013 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:047_050_109_046 0.0 0.0 -0.372 0.0 + dihedral_coeff @dihedral:047_050_109_109 1.423 4.055 0.858 0.0 + dihedral_coeff @dihedral:013_053_082_061 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:048_053_082_061 0.0 2.1 0.0 0.0 + dihedral_coeff @dihedral:045_055_059_X 0.0 2.03 0.0 0.0 + dihedral_coeff @dihedral:013_056_056_013 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:013_056_056_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_056_056_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_056_059_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_056_059_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_056_060_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_056_062_X 0.0 10.0 0.0 0.0 + dihedral_coeff @dihedral:X_056_082_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_056_086_048 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_056_086_086 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_057_060_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:045_057_060_X 0.0 5.0 0.0 0.0 + dihedral_coeff @dihedral:X_057_061_X 0.0 10.0 0.0 0.0 + dihedral_coeff @dihedral:X_057_062_X 0.0 10.0 0.0 0.0 + dihedral_coeff @dihedral:X_057_081_X 0.0 3.05 0.0 0.0 + dihedral_coeff @dihedral:X_057_082_X 0.0 4.65 0.0 0.0 + dihedral_coeff @dihedral:X_057_082_049 0.0 10.0 0.0 0.0 + dihedral_coeff @dihedral:045_057_082_X 0.0 5.0 0.0 0.0 + dihedral_coeff @dihedral:X_057_084_X 0.0 2.8 0.0 0.0 + dihedral_coeff @dihedral:045_057_084_X 0.0 5.0 0.0 0.0 + dihedral_coeff @dihedral:061_057_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:084_057_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_060_060_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_060_061_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_060_080_X 0.0 3.35 0.0 0.0 + dihedral_coeff @dihedral:X_060_081_X 0.0 6.0 0.0 0.0 + dihedral_coeff @dihedral:X_060_087_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_060_087_084 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:060_060_087_084 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_061_061_X 0.0 10.0 0.0 0.0 + dihedral_coeff @dihedral:X_061_062_X 0.0 10.0 0.0 0.0 + dihedral_coeff @dihedral:X_061_082_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_061_082_049 0.0 10.0 0.0 0.0 + dihedral_coeff @dihedral:083_061_082_016 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:088_061_082_016 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:088_061_082_020 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_061_083_X 0.0 4.8 0.0 0.0 + dihedral_coeff @dihedral:082_061_083_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:082_061_083_084 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_061_084_X 0.0 10.0 0.0 0.0 + dihedral_coeff @dihedral:X_061_088_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:082_061_088_084 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_080_084_X 0.0 13.05 0.0 0.0 + dihedral_coeff @dihedral:X_082_084_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:016_082_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:020_082_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:057_082_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:061_082_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_082_087_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_083_084_X 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:X_083_084_049 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:049_083_084_X 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:049_083_084_016 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:049_083_084_049 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:061_083_084_016 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:061_083_084_020 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:061_083_084_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_083_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:061_083_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:061_083_087_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:084_083_087_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_084_084_X 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:X_084_084_049 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:016_084_084_049 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:049_084_084_049 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:X_084_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:016_084_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:020_084_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:057_084_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_084_087_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_084_087_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_084_087_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_084_088_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:016_084_088_049 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:016_084_088_061 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:020_084_088_061 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_084_088_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:049_084_088_061 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:048_086_086_048 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:048_086_086_056 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:048_086_087_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:048_086_088_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:048_086_088_061 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:056_086_088_X 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_087_087_020 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_087_087_057 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:X_087_087_087 0.0 2.17 0.0 0.0 + dihedral_coeff @dihedral:049_087_087_049 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:004_089_090_013 0.0 6.089 0.0 0.0 + dihedral_coeff @dihedral:004_089_090_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:004_089_090_048 0.0 6.089 0.0 0.0 + dihedral_coeff @dihedral:004_089_090_091 0.0 20.0 0.0 0.0 + dihedral_coeff @dihedral:091_089_090_013 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:091_089_090_045 0.0 4.9 0.0 0.0 + dihedral_coeff @dihedral:091_089_090_048 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:091_089_090_091 2.3 6.089 0.0 0.0 + dihedral_coeff @dihedral:X_089_091_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_089_091_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:004_089_091_091 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:090_089_091_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:090_089_091_091 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_090_091_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_090_091_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_090_091_091 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_091_091_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_091_091_024 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_091_091_013 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_091_091_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_091_091_046 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:046_091_091_091 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:091_091_091_091 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:X_109_109_X 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_109_109_013 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_109_109_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_109_109_048 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_109_109_050 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:013_109_109_109 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_109_109_046 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_109_109_048 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_109_109_050 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:046_109_109_109 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:048_109_109_048 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:048_109_109_050 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:048_109_109_109 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:050_109_109_050 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:050_109_109_109 0.0 14.0 0.0 0.0 + dihedral_coeff @dihedral:109_109_109_109 1.423 4.055 0.858 0.0 + dihedral_coeff @dihedral:024_003_013_053 1.816 1.222 1.581 0.0 + dihedral_coeff @dihedral:052_003_013_024 0.0 0.82 0.0 0.0 + dihedral_coeff @dihedral:003_013_013_053 1.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:003_013_013_083 -1.697 -0.456 0.585 0.0 + dihedral_coeff @dihedral:003_013_013_084 -1.697 -0.456 0.585 0.0 + dihedral_coeff @dihedral:003_013_013_085 -1.697 -0.456 0.585 0.0 + dihedral_coeff @dihedral:005_013_013_053 6.28 -1.467 2.03 0.0 + dihedral_coeff @dihedral:015_013_013_053 1.428 0.086 0.029 0.0 + dihedral_coeff @dihedral:016_013_013_053 1.428 0.086 0.029 0.0 + dihedral_coeff @dihedral:013_013_013_055 2.732 -0.229 0.485 0.0 + dihedral_coeff @dihedral:024_013_013_083 0.845 -0.962 0.713 0.0 + dihedral_coeff @dihedral:053_013_013_083 1.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:024_013_013_084 0.845 -0.962 0.713 0.0 + dihedral_coeff @dihedral:053_013_013_084 1.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:024_013_013_085 0.845 -0.962 0.713 0.0 + dihedral_coeff @dihedral:046_013_013_085 0.0 0.0 0.462 0.0 + dihedral_coeff @dihedral:053_013_013_085 1.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:003_013_053_013 1.438 -0.124 0.264 0.0 + dihedral_coeff @dihedral:003_013_053_054 0.0 0.0 0.347 0.0 + dihedral_coeff @dihedral:013_013_053_054 0.0 0.0 0.347 0.0 + dihedral_coeff @dihedral:046_013_055_054 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_085_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:013_013_085_057 1.7 -0.6 0.0 0.0 + dihedral_coeff @dihedral:046_013_085_X 0.0 0.0 0.0 0.0 + dihedral_coeff @dihedral:055_048_055_054 0.0 3.9 0.0 0.0 + dihedral_coeff @dihedral:X_048_081_X 0.0 7.25 0.0 0.0 + dihedral_coeff @dihedral:X_057_085_X 0.0 5.0 0.0 0.0 + dihedral_coeff @dihedral:X_085_085_X 0.0 10.75 0.0 0.0 + dihedral_coeff @dihedral:013_013_013_020 1.3 -0.05 0.2 0.0 + dihedral_coeff @dihedral:013_013_013_047 1.3 -0.05 0.2 0.0 } #(end of dihedral_coeffs) # Rules for creating dihedral interactions according to atom type: @@ -7327,806 +7340,806 @@ OPLSAA { # (* = wildcard) write_once("Data Dihedrals By Type") { - @dihedral:X-2-2-2 @atom:* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* - @dihedral:X-2-2-6 @atom:* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d6_i* - @dihedral:1-2-2-2 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* - @dihedral:1-2-2-6 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d6_i* - @dihedral:2-2-2-2 @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* - @dihedral:2-2-2-6 @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d6_i* - @dihedral:2-2-2-10 @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d10_i* - @dihedral:2-2-2-13 @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d13_i* - @dihedral:2-2-2-65 @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d65_i* - @dihedral:6-2-2-6 @atom:*_b*_a*_d6_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d6_i* - @dihedral:6-2-2-65 @atom:*_b*_a*_d6_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d65_i* - @dihedral:10-2-2-10 @atom:*_b*_a*_d10_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d10_i* - @dihedral:2-2-5-7 @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d7_i* - @dihedral:6-2-5-7 @atom:*_b*_a*_d6_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d7_i* - @dihedral:10-2-5-7 @atom:*_b*_a*_d10_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d7_i* - @dihedral:X-2-10-2 @atom:* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d10_i* @atom:*_b*_a*_d2_i* - @dihedral:2-2-10-2 @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d10_i* @atom:*_b*_a*_d2_i* - @dihedral:2-2-13-2 @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d2_i* - @dihedral:6-2-20-2 @atom:*_b*_a*_d6_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d2_i* - @dihedral:6-2-20-6 @atom:*_b*_a*_d6_i* @atom:*_b*_a*_d2_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d6_i* - @dihedral:4-3-3-4 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d4_i* - @dihedral:4-3-3-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* - @dihedral:4-3-3-24 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* - @dihedral:4-3-3-46 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d46_i* - @dihedral:13-3-3-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* - @dihedral:13-3-3-24 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* - @dihedral:13-3-3-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d46_i* - @dihedral:24-3-3-46 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d46_i* - @dihedral:46-3-3-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d46_i* - @dihedral:3-3-5-7 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d7_i* - @dihedral:4-3-5-7 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d7_i* - @dihedral:13-3-5-7 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d7_i* - @dihedral:24-3-5-7 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d7_i* - @dihedral:46-3-5-7 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d7_i* - @dihedral:48-3-5-7 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d7_i* - @dihedral:1-3-13-13 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:1-3-13-46 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:3-3-13-46 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:4-3-13-X @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:* - @dihedral:4-3-13-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:4-3-13-21 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d21_i* - @dihedral:4-3-13-44 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* - @dihedral:4-3-13-24 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* - @dihedral:4-3-13-46 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:4-3-13-48 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* - @dihedral:5-3-13-13 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:5-3-13-44 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* - @dihedral:5-3-13-46 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:13-3-13-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:13-3-13-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:20-3-13-13 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:20-3-13-46 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:21-3-13-13 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:21-3-13-46 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:24-3-13-13 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:24-3-13-21 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d21_i* - @dihedral:24-3-13-24 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* - @dihedral:24-3-13-46 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:46-3-13-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:46-3-13-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:48-3-13-46 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:52-3-13-13 @atom:*_b*_a*_d52_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:52-3-13-44 @atom:*_b*_a*_d52_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* - @dihedral:52-3-13-46 @atom:*_b*_a*_d52_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:65-3-13-13 @atom:*_b*_a*_d65_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:65-3-13-46 @atom:*_b*_a*_d65_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:107-3-13-46 @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:4-3-20-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* - @dihedral:4-3-20-48 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* - @dihedral:13-3-20-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* - @dihedral:13-3-20-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* - @dihedral:24-3-20-13 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* - @dihedral:46-3-20-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* - @dihedral:48-3-20-13 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* - @dihedral:3-3-24-13 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* - @dihedral:3-3-24-45 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:4-3-24-5 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d5_i* - @dihedral:4-3-24-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* - @dihedral:4-3-24-45 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:4-3-24-47 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d47_i* - @dihedral:4-3-24-48 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* - @dihedral:4-3-24-91 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d91_i* - @dihedral:5-3-24-13 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* - @dihedral:5-3-24-45 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:13-3-24-5 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d5_i* - @dihedral:13-3-24-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* - @dihedral:13-3-24-45 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:13-3-24-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* - @dihedral:20-3-24-13 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* - @dihedral:20-3-24-45 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:24-3-24-3 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* - @dihedral:24-3-24-13 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* - @dihedral:24-3-24-45 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:46-3-24-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* - @dihedral:46-3-24-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:47-3-24-45 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:48-3-24-45 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:48-3-24-48 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* - @dihedral:48-3-24-84 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d84_i* - @dihedral:48-3-24-87 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d87_i* - @dihedral:84-3-24-48 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* - @dihedral:84-3-24-84 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d84_i* - @dihedral:84-3-24-87 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d87_i* - @dihedral:87-3-24-45 @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:87-3-24-48 @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* - @dihedral:87-3-24-84 @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d84_i* - @dihedral:87-3-24-87 @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d87_i* - @dihedral:X-3-47-13 @atom:* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* - @dihedral:4-3-47-46 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:4-3-47-47 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:5-3-47-47 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:24-3-47-46 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:24-3-47-47 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:107-3-47-46 @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:107-3-47-47 @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:4-3-48-48 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:5-3-48-48 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-3-48-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:20-3-48-48 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:24-3-48-48 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:46-3-48-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:X-3-50-13 @atom:* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d13_i* - @dihedral:4-3-50-47 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47_i* - @dihedral:5-3-50-47 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47_i* - @dihedral:13-3-50-47 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47_i* - @dihedral:13-3-56-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d56_i* @atom:* - @dihedral:13-3-56-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d13_i* - @dihedral:46-3-56-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d56_i* @atom:* - @dihedral:46-3-56-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d45_i* - @dihedral:X-3-60-X @atom:* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d60_i* @atom:* - @dihedral:4-3-60-X @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d60_i* @atom:* - @dihedral:4-3-82-X @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d82_i* @atom:* - @dihedral:4-3-82-57 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d57_i* - @dihedral:4-3-82-61 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:82-3-82-57 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d57_i* - @dihedral:82-3-82-61 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:4-3-84-20 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d20_i* - @dihedral:4-3-84-87 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d87_i* - @dihedral:84-3-84-20 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d20_i* - @dihedral:84-3-84-87 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d87_i* - @dihedral:48-3-86-48 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:X-3-87-X @atom:* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:4-3-87-84 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d84_i* - @dihedral:4-3-87-87 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d87_i* - @dihedral:24-3-87-84 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d84_i* - @dihedral:24-3-87-87 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d87_i* - @dihedral:4-3-107-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d13_i* - @dihedral:13-3-107-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d13_i* - @dihedral:4-3-109-109 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:5-3-109-109 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:X-4-106-X @atom:* @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d106_i* @atom:* - @dihedral:7-5-10-2 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d10_i* @atom:*_b*_a*_d2_i* - @dihedral:7-5-10-6 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d10_i* @atom:*_b*_a*_d6_i* - @dihedral:7-5-13-2 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d2_i* - @dihedral:7-5-13-6 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d6_i* - @dihedral:7-5-13-13 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:7-5-13-46 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:7-5-13-47 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* - @dihedral:7-5-13-48 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* - @dihedral:7-5-13-50 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* - @dihedral:7-5-44-13 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13_i* - @dihedral:7-5-44-45 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d45_i* - @dihedral:7-5-24-3 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* - @dihedral:7-5-24-45 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:7-5-47-47 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:7-5-48-48 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:7-5-51-20 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d20_i* - @dihedral:7-5-56-3 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d3_i* - @dihedral:7-5-64-4 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d4_i* - @dihedral:7-5-64-5 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d5_i* - @dihedral:7-5-79-13 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d13_i* - @dihedral:7-5-79-23 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d23_i* - @dihedral:7-5-79-48 @atom:*_b*_a*_d7_i* @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d48_i* - @dihedral:X-13-13-3 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* - @dihedral:X-13-13-13 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:X-13-13-24 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* - @dihedral:1-13-13-1 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d1_i* - @dihedral:1-13-13-5 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d5_i* - @dihedral:1-13-13-13 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:1-13-13-46 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:3-13-13-3 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d3_i* - @dihedral:3-13-13-5 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d5_i* - @dihedral:3-13-13-13 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:3-13-13-15 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d15_i* - @dihedral:3-13-13-16 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* - @dihedral:3-13-13-24 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* - @dihedral:3-13-13-46 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:3-13-13-48 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* - @dihedral:3-13-13-80 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d80_i* - @dihedral:5-13-13-5 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d5_i* - @dihedral:5-13-13-13 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:5-13-13-20 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* - @dihedral:5-13-13-44 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* - @dihedral:5-13-13-24 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* - @dihedral:5-13-13-46 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:13-13-13-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-13-15 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d15_i* - @dihedral:13-13-13-16 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* - @dihedral:13-13-13-19 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d19_i* - @dihedral:13-13-13-21 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d21_i* - @dihedral:13-13-13-44 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* - @dihedral:13-13-13-24 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* - @dihedral:13-13-13-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:13-13-13-51 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d51_i* - @dihedral:13-13-13-53 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* - @dihedral:13-13-13-65 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d65_i* - @dihedral:13-13-13-66 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d66_i* - @dihedral:13-13-13-79 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d79_i* - @dihedral:13-13-13-107 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d107_i* - @dihedral:13-13-13-108 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d108_i* - @dihedral:15-13-13-46 @atom:*_b*_a*_d15_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:16-13-13-46 @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:19-13-13-46 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:20-13-13-20 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* - @dihedral:20-13-13-46 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:21-13-13-21 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d21_i* - @dihedral:21-13-13-44 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* - @dihedral:21-13-13-46 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:44-13-13-44 @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* - @dihedral:44-13-13-46 @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:44-13-13-48 @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* - @dihedral:24-13-13-46 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:24-13-13-48 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* - @dihedral:24-13-13-80 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d80_i* - @dihedral:46-13-13-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d46_i* - @dihedral:46-13-13-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* - @dihedral:46-13-13-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* - @dihedral:46-13-13-51 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d51_i* - @dihedral:46-13-13-53 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* - @dihedral:46-13-13-55 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d55_i* - @dihedral:46-13-13-59 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d59_i* - @dihedral:46-13-13-62 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d62_i* - @dihedral:46-13-13-65 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d65_i* - @dihedral:46-13-13-66 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d66_i* - @dihedral:46-13-13-79 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d79_i* - @dihedral:46-13-13-80 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d80_i* - @dihedral:46-13-13-82 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d82_i* - @dihedral:46-13-13-83 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d83_i* - @dihedral:46-13-13-84 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d84_i* - @dihedral:46-13-13-87 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d87_i* - @dihedral:46-13-13-88 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d88_i* - @dihedral:46-13-13-102 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d102_i* - @dihedral:46-13-13-104 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d104_i* - @dihedral:46-13-13-107 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d107_i* - @dihedral:46-13-13-108 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d108_i* - @dihedral:46-13-13-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d109_i* - @dihedral:48-13-13-53 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* - @dihedral:108-13-13-108 @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d108_i* - @dihedral:13-13-15-17 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d15_i* @atom:*_b*_a*_d17_i* - @dihedral:46-13-15-17 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d15_i* @atom:*_b*_a*_d17_i* - @dihedral:13-13-16-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-16-16 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d16_i* - @dihedral:46-13-16-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-16-16 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d16_i* - @dihedral:46-13-16-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d48_i* - @dihedral:X-13-18-19 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d19_i* - @dihedral:46-13-18-19 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d19_i* - @dihedral:X-13-19-18 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d18_i* - @dihedral:X-13-19-19 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* - @dihedral:13-13-19-19 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* - @dihedral:46-13-19-19 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* - @dihedral:X-13-20-13 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* - @dihedral:56-13-20-13 @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* - @dihedral:57-13-20-13 @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-20-3 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* - @dihedral:13-13-20-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-20-64 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d64_i* - @dihedral:46-13-20-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:* - @dihedral:46-13-20-3 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d3_i* - @dihedral:46-13-20-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47_i* - @dihedral:46-13-20-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* - @dihedral:46-13-20-51 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d51_i* - @dihedral:46-13-20-64 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d64_i* - @dihedral:X-13-24-45 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:3-13-24-3 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* - @dihedral:3-13-24-13 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* - @dihedral:3-13-24-45 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:13-13-24-3 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* - @dihedral:13-13-24-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-24-45 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:13-13-24-59 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d59_i* - @dihedral:13-13-24-79 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d79_i* - @dihedral:13-13-24-91 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d91_i* - @dihedral:46-13-24-3 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* - @dihedral:46-13-24-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-24-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-24-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* - @dihedral:46-13-24-79 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d79_i* - @dihedral:48-13-24-59 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d59_i* - @dihedral:13-13-44-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-44-45 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-44-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-44-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-44-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d48_i* - @dihedral:X-13-47-13 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* - @dihedral:X-13-47-46 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:X-13-47-47 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:X-13-47-50 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* - @dihedral:1-13-47-47 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:13-13-47-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-47-47 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:13-13-47-50 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* - @dihedral:46-13-47-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-47-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:46-13-47-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:46-13-47-50 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* - @dihedral:46-13-47-110 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d110_i* - @dihedral:47-13-47-13 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* - @dihedral:47-13-47-46 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:X-13-48-48 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:1-13-48-48 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-48-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-48-56 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* - @dihedral:21-13-48-48 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:46-13-48-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:64-13-48-48 @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:65-13-48-48 @atom:*_b*_a*_d65_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:X-13-50-47 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47_i* - @dihedral:13-13-50-50 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* - @dihedral:46-13-50-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47_i* - @dihedral:46-13-50-50 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* - @dihedral:46-13-50-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* - @dihedral:13-13-51-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d51_i* @atom:* - @dihedral:13-13-51-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d46_i* - @dihedral:46-13-51-20 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d20_i* - @dihedral:13-13-53-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-53-45 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-53-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-53-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-53-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d48_i* - @dihedral:46-13-53-54 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d54_i* - @dihedral:13-13-55-45 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d45_i* - @dihedral:13-13-55-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-55-54 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d54_i* - @dihedral:46-13-55-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-55-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-55-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-56-18 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d18_i* - @dihedral:X-13-57-X @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d57_i* @atom:* - @dihedral:13-13-57-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d57_i* @atom:* - @dihedral:13-13-57-62 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d62_i* - @dihedral:13-13-57-82 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d82_i* - @dihedral:20-13-57-X @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d57_i* @atom:* - @dihedral:20-13-57-62 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d62_i* - @dihedral:20-13-57-82 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d82_i* - @dihedral:13-13-59-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d59_i* @atom:* - @dihedral:13-13-59-56 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d59_i* @atom:*_b*_a*_d56_i* - @dihedral:46-13-59-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d59_i* @atom:* - @dihedral:13-13-62-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d62_i* @atom:* - @dihedral:46-13-62-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d62_i* @atom:* - @dihedral:46-13-64-20 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d20_i* - @dihedral:46-13-64-52 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d52_i* - @dihedral:48-13-64-20 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d20_i* - @dihedral:48-13-64-52 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d52_i* - @dihedral:X-13-79-23 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d23_i* - @dihedral:X-13-79-24 @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d24_i* - @dihedral:13-13-79-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-79-23 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d23_i* - @dihedral:46-13-79-5 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d5_i* - @dihedral:46-13-79-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-79-23 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d23_i* - @dihedral:46-13-79-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-80-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d80_i* @atom:* - @dihedral:13-13-80-60 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d80_i* @atom:*_b*_a*_d60_i* - @dihedral:13-13-80-84 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d80_i* @atom:*_b*_a*_d84_i* - @dihedral:46-13-80-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d80_i* @atom:* - @dihedral:46-13-80-60 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d80_i* @atom:*_b*_a*_d60_i* - @dihedral:46-13-80-84 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d80_i* @atom:*_b*_a*_d84_i* - @dihedral:13-13-82-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d82_i* @atom:* - @dihedral:46-13-82-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d82_i* @atom:* - @dihedral:13-13-83-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d83_i* @atom:* - @dihedral:46-13-83-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d83_i* @atom:* - @dihedral:1-13-84-X @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:13-13-84-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:13-13-84-57 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d57_i* - @dihedral:21-13-84-X @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:46-13-84-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:1-13-87-X @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:13-13-87-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:21-13-87-X @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:46-13-87-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:13-13-88-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:46-13-88-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:X-13-90-X @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d90_i* @atom:* - @dihedral:46-13-90-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d90_i* @atom:* - @dihedral:46-13-91-91 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* - @dihedral:13-13-95-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d95_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-95-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d95_i* @atom:*_b*_a*_d46_i* - @dihedral:13-13-102-103 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d102_i* @atom:*_b*_a*_d103_i* - @dihedral:46-13-102-103 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d102_i* @atom:*_b*_a*_d103_i* - @dihedral:13-13-104-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d104_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-104-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d104_i* @atom:*_b*_a*_d13_i* - @dihedral:X-13-105-X @atom:* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d105_i* @atom:* - @dihedral:13-13-105-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d105_i* @atom:* - @dihedral:13-13-105-62 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d105_i* @atom:*_b*_a*_d62_i* - @dihedral:13-13-105-82 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d105_i* @atom:*_b*_a*_d82_i* - @dihedral:20-13-105-X @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d105_i* @atom:* - @dihedral:20-13-105-62 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d105_i* @atom:*_b*_a*_d62_i* - @dihedral:20-13-105-82 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d105_i* @atom:*_b*_a*_d82_i* - @dihedral:3-13-107-13 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-107-3 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d3_i* - @dihedral:13-13-107-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-107-3 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d3_i* - @dihedral:46-13-107-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-107-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d107_i* @atom:*_b*_a*_d48_i* - @dihedral:13-13-108-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d13_i* - @dihedral:13-13-108-45 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d45_i* - @dihedral:46-13-108-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-108-20 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d20_i* - @dihedral:46-13-108-45 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d45_i* - @dihedral:13-13-109-109 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:46-13-109-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13_i* - @dihedral:46-13-109-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d46_i* - @dihedral:46-13-109-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:17-15-48-X @atom:*_b*_a*_d17_i* @atom:*_b*_a*_d15_i* @atom:*_b*_a*_d48_i* @atom:* - @dihedral:17-15-48-48 @atom:*_b*_a*_d17_i* @atom:*_b*_a*_d15_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-16-16-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d13_i* - @dihedral:13-16-48-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-16-48-56 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* - @dihedral:13-16-59-56 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d59_i* @atom:*_b*_a*_d56_i* - @dihedral:84-16-82-X @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d82_i* @atom:* - @dihedral:84-16-82-61 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:82-16-84-49 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d49_i* - @dihedral:82-16-84-83 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d83_i* - @dihedral:82-16-84-88 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d88_i* - @dihedral:X-16-91-X @atom:* @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d91_i* @atom:* - @dihedral:19-18-48-X @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d48_i* @atom:* - @dihedral:19-18-48-48 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:18-18-56-13 @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d13_i* - @dihedral:18-18-56-46 @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d18_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d46_i* - @dihedral:X-19-19-X @atom:* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:* - @dihedral:13-19-19-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d13_i* - @dihedral:13-19-19-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d46_i* - @dihedral:13-19-19-47 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47_i* - @dihedral:13-19-19-109 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d109_i* - @dihedral:46-19-19-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47_i* - @dihedral:46-19-19-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d109_i* - @dihedral:19-19-47-13 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* - @dihedral:19-19-47-46 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:19-19-47-47 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:13-20-44-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13_i* - @dihedral:13-20-44-45 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d45_i* - @dihedral:13-20-47-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* - @dihedral:13-20-47-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:13-20-47-47 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* - @dihedral:13-20-47-50 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* - @dihedral:3-20-48-48 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-20-48-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-20-48-56 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* - @dihedral:64-20-48-48 @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-20-51-5 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d5_i* - @dihedral:13-20-51-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d13_i* - @dihedral:13-20-51-20 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d20_i* - @dihedral:13-20-51-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d51_i* @atom:*_b*_a*_d46_i* - @dihedral:13-20-56-3 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d3_i* - @dihedral:13-20-59-56 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d59_i* @atom:*_b*_a*_d56_i* - @dihedral:X-20-64-52 @atom:* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d52_i* - @dihedral:13-20-64-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d13_i* - @dihedral:13-20-64-52 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d52_i* - @dihedral:48-20-64-4 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d64_i* @atom:*_b*_a*_d4_i* - @dihedral:84-20-82-61 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:82-20-84-88 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d88_i* - @dihedral:84-20-84-49 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d49_i* - @dihedral:84-20-84-87 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d87_i* - @dihedral:108-20-108-13 @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d13_i* - @dihedral:108-20-108-20 @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d108_i* @atom:*_b*_a*_d20_i* - @dihedral:X-24-48-48 @atom:* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:3-24-48-48 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-24-48-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:45-24-48-48 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:59-24-48-48 @atom:*_b*_a*_d59_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:82-24-48-48 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:84-24-48-48 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:X-24-59-X @atom:* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d59_i* @atom:* - @dihedral:X-24-59-49 @atom:* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d59_i* @atom:*_b*_a*_d49_i* - @dihedral:45-24-59-X @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d59_i* @atom:* - @dihedral:X-24-60-X @atom:* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d60_i* @atom:* - @dihedral:X-24-79-23 @atom:* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d23_i* - @dihedral:13-24-79-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d48_i* - @dihedral:45-24-79-48 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d48_i* - @dihedral:13-24-82-61 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:45-24-82-16 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d16_i* - @dihedral:45-24-82-20 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d20_i* - @dihedral:45-24-82-61 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:48-24-82-16 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d16_i* - @dihedral:48-24-82-20 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d20_i* - @dihedral:48-24-82-61 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:X-24-84-X @atom:* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:3-24-84-84 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d84_i* - @dihedral:45-24-84-16 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d16_i* - @dihedral:45-24-84-20 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d20_i* - @dihedral:48-24-84-16 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d16_i* - @dihedral:48-24-84-20 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d20_i* - @dihedral:3-24-86-48 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:3-24-86-56 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d56_i* - @dihedral:3-24-86-86 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d86_i* - @dihedral:47-24-86-48 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:47-24-86-56 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d56_i* - @dihedral:X-24-87-X @atom:* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:X-24-88-X @atom:* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:3-24-91-46 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d46_i* - @dihedral:3-24-91-89 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d89_i* - @dihedral:3-24-91-91 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* - @dihedral:45-24-91-46 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d46_i* - @dihedral:45-24-91-89 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d89_i* - @dihedral:45-24-91-91 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* - @dihedral:X-24-106-X @atom:* @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d106_i* @atom:* - @dihedral:13-44-44-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d13_i* - @dihedral:13-44-44-45 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d45_i* - @dihedral:45-44-44-45 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d45_i* - @dihedral:13-44-48-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:45-44-48-48 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:59-44-48-48 @atom:*_b*_a*_d59_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:82-44-48-48 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:84-44-48-48 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:45-44-82-16 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d16_i* - @dihedral:45-44-82-61 @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:48-44-82-16 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d16_i* - @dihedral:48-44-82-61 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:47-46-47-13 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* - @dihedral:47-46-47-46 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:X-47-47-X @atom:* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:* - @dihedral:X-47-47-19 @atom:* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d19_i* - @dihedral:3-47-47-24 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d24_i* - @dihedral:3-47-47-46 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:5-47-47-13 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* - @dihedral:5-47-47-46 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:13-47-47-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d13_i* - @dihedral:13-47-47-19 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d19_i* - @dihedral:13-47-47-20 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d20_i* - @dihedral:13-47-47-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:19-47-47-46 @atom:*_b*_a*_d19_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:20-47-47-46 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:21-47-47-21 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d21_i* - @dihedral:21-47-47-46 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:46-47-47-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d46_i* - @dihedral:46-47-47-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d48_i* - @dihedral:13-47-48-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:46-47-48-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:46-47-48-56 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* - @dihedral:47-47-48-48 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-47-50-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d13_i* - @dihedral:13-47-50-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d46_i* - @dihedral:13-47-50-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d48_i* - @dihedral:13-47-50-50 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* - @dihedral:13-47-50-109 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* - @dihedral:24-47-50-3 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d3_i* - @dihedral:46-47-50-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d13_i* - @dihedral:46-47-50-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d46_i* - @dihedral:46-47-50-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d48_i* - @dihedral:46-47-50-50 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* - @dihedral:46-47-50-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* - @dihedral:X-47-84-X @atom:* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:X-47-86-48 @atom:* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:3-47-86-86 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d86_i* - @dihedral:49-47-86-X @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d86_i* @atom:* - @dihedral:49-47-86-24 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d24_i* - @dihedral:X-47-87-X @atom:* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:X-47-88-X @atom:* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:13-47-110-47 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d110_i* @atom:*_b*_a*_d47_i* - @dihedral:46-47-110-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d110_i* @atom:*_b*_a*_d47_i* - @dihedral:X-48-48-X @atom:* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:* - @dihedral:X-48-48-13 @atom:* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13_i* - @dihedral:X-48-48-48 @atom:* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:X-48-48-49 @atom:* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d49_i* - @dihedral:1-48-48-48 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:1-48-48-49 @atom:*_b*_a*_d1_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d49_i* - @dihedral:13-48-48-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d13_i* - @dihedral:13-48-48-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:13-48-48-49 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d49_i* - @dihedral:13-48-48-50 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d50_i* - @dihedral:21-48-48-48 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:21-48-48-49 @atom:*_b*_a*_d21_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d49_i* - @dihedral:44-48-48-49 @atom:*_b*_a*_d44_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d49_i* - @dihedral:47-48-48-49 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d49_i* - @dihedral:48-48-48-48 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* - @dihedral:48-48-48-49 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d49_i* - @dihedral:48-48-48-50 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d50_i* - @dihedral:48-48-48-55 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d55_i* - @dihedral:48-48-48-60 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d60_i* - @dihedral:48-48-48-65 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d65_i* - @dihedral:48-48-48-66 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d66_i* - @dihedral:48-48-48-86 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* - @dihedral:48-48-48-109 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d109_i* - @dihedral:49-48-48-49 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d49_i* - @dihedral:49-48-48-50 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d50_i* - @dihedral:49-48-48-60 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d60_i* - @dihedral:49-48-48-65 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d65_i* - @dihedral:49-48-48-66 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d66_i* - @dihedral:49-48-48-86 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* - @dihedral:49-48-48-109 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d109_i* - @dihedral:56-48-48-86 @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* - @dihedral:48-48-50-46 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d46_i* - @dihedral:48-48-50-47 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47_i* - @dihedral:56-48-50-46 @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d46_i* - @dihedral:56-48-50-47 @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47_i* - @dihedral:48-48-53-13 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13_i* - @dihedral:48-48-53-54 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d54_i* - @dihedral:X-48-55-45 @atom:* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d45_i* - @dihedral:48-48-55-45 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d45_i* - @dihedral:55-48-55-13 @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d13_i* - @dihedral:55-48-55-45 @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d45_i* - @dihedral:60-48-55-45 @atom:*_b*_a*_d60_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d45_i* - @dihedral:X-48-56-X @atom:* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* @atom:* - @dihedral:48-48-56-48 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* - @dihedral:49-48-56-48 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* - @dihedral:X-48-60-X @atom:* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d60_i* @atom:* - @dihedral:X-48-79-23 @atom:* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d23_i* - @dihedral:48-48-79-13 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d13_i* - @dihedral:48-48-79-24 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d79_i* @atom:*_b*_a*_d24_i* - @dihedral:48-48-86-48 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:48-48-86-56 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d56_i* - @dihedral:48-48-86-86 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d86_i* - @dihedral:49-48-86-48 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:49-48-86-56 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d56_i* - @dihedral:49-48-86-86 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d86_i* - @dihedral:56-48-86-48 @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:56-48-86-86 @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d86_i* - @dihedral:49-48-88-49 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d88_i* @atom:*_b*_a*_d49_i* - @dihedral:56-48-101-13 @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d101_i* @atom:*_b*_a*_d13_i* - @dihedral:48-48-102-103 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d102_i* @atom:*_b*_a*_d103_i* - @dihedral:48-48-109-13 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13_i* - @dihedral:48-48-109-46 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d46_i* - @dihedral:48-48-109-109 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:X-50-50-49 @atom:* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d49_i* - @dihedral:3-50-50-3 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d3_i* - @dihedral:13-50-50-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d13_i* - @dihedral:13-50-50-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d46_i* - @dihedral:13-50-50-47 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47_i* - @dihedral:46-50-50-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d46_i* - @dihedral:46-50-50-47 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47_i* - @dihedral:47-50-50-47 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d47_i* - @dihedral:13-50-109-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13_i* - @dihedral:13-50-109-109 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:46-50-109-13 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13_i* - @dihedral:46-50-109-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d46_i* - @dihedral:46-50-109-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:47-50-109-13 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13_i* - @dihedral:47-50-109-46 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d46_i* - @dihedral:47-50-109-109 @atom:*_b*_a*_d47_i* @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:13-53-82-61 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:48-53-82-61 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* - @dihedral:45-55-59-X @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d59_i* @atom:* - @dihedral:13-56-56-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d13_i* - @dihedral:13-56-56-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* - @dihedral:48-56-56-48 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d48_i* - @dihedral:X-56-59-X @atom:* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d59_i* @atom:* - @dihedral:X-56-59-49 @atom:* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d59_i* @atom:*_b*_a*_d49_i* - @dihedral:X-56-60-X @atom:* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d60_i* @atom:* - @dihedral:X-56-62-X @atom:* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d62_i* @atom:* - @dihedral:X-56-82-X @atom:* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d82_i* @atom:* - @dihedral:48-56-86-48 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:48-56-86-86 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d86_i* - @dihedral:X-57-60-X @atom:* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d60_i* @atom:* - @dihedral:45-57-60-X @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d60_i* @atom:* - @dihedral:X-57-61-X @atom:* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d61_i* @atom:* - @dihedral:X-57-62-X @atom:* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d62_i* @atom:* - @dihedral:X-57-81-X @atom:* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d81_i* @atom:* - @dihedral:X-57-82-X @atom:* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d82_i* @atom:* - @dihedral:X-57-82-49 @atom:* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d49_i* - @dihedral:45-57-82-X @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d82_i* @atom:* - @dihedral:X-57-84-X @atom:* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:45-57-84-X @atom:*_b*_a*_d45_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:61-57-86-48 @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:84-57-86-48 @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:X-60-60-X @atom:* @atom:*_b*_a*_d60_i* @atom:*_b*_a*_d60_i* @atom:* - @dihedral:X-60-61-X @atom:* @atom:*_b*_a*_d60_i* @atom:*_b*_a*_d61_i* @atom:* - @dihedral:X-60-80-X @atom:* @atom:*_b*_a*_d60_i* @atom:*_b*_a*_d80_i* @atom:* - @dihedral:X-60-81-X @atom:* @atom:*_b*_a*_d60_i* @atom:*_b*_a*_d81_i* @atom:* - @dihedral:X-60-87-X @atom:* @atom:*_b*_a*_d60_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:48-60-87-84 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d60_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d84_i* - @dihedral:60-60-87-84 @atom:*_b*_a*_d60_i* @atom:*_b*_a*_d60_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d84_i* - @dihedral:X-61-61-X @atom:* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d61_i* @atom:* - @dihedral:X-61-62-X @atom:* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d62_i* @atom:* - @dihedral:X-61-82-X @atom:* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d82_i* @atom:* - @dihedral:X-61-82-49 @atom:* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d49_i* - @dihedral:83-61-82-16 @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d16_i* - @dihedral:88-61-82-16 @atom:*_b*_a*_d88_i* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d16_i* - @dihedral:88-61-82-20 @atom:*_b*_a*_d88_i* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d20_i* - @dihedral:X-61-83-X @atom:* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d83_i* @atom:* - @dihedral:82-61-83-49 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d49_i* - @dihedral:82-61-83-84 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d84_i* - @dihedral:X-61-84-X @atom:* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:X-61-88-X @atom:* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:82-61-88-84 @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d88_i* @atom:*_b*_a*_d84_i* - @dihedral:X-80-84-X @atom:* @atom:*_b*_a*_d80_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:X-82-84-X @atom:* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:16-82-86-48 @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:20-82-86-48 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:57-82-86-48 @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:61-82-86-48 @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:X-82-87-X @atom:* @atom:*_b*_a*_d82_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:X-83-84-X @atom:* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:X-83-84-49 @atom:* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d49_i* - @dihedral:49-83-84-X @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:49-83-84-16 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d16_i* - @dihedral:49-83-84-49 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d49_i* - @dihedral:61-83-84-16 @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d16_i* - @dihedral:61-83-84-20 @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d20_i* - @dihedral:61-83-84-49 @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d49_i* - @dihedral:X-83-86-48 @atom:* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:61-83-86-48 @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:61-83-87-X @atom:*_b*_a*_d61_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:84-83-87-X @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d83_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:X-84-84-X @atom:* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d84_i* @atom:* - @dihedral:X-84-84-49 @atom:* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d49_i* - @dihedral:16-84-84-49 @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d49_i* - @dihedral:49-84-84-49 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d49_i* - @dihedral:X-84-86-48 @atom:* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:16-84-86-48 @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:20-84-86-48 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:57-84-86-48 @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:X-84-87-X @atom:* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:X-84-87-49 @atom:* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d49_i* - @dihedral:49-84-87-49 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d49_i* - @dihedral:X-84-88-49 @atom:* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d88_i* @atom:*_b*_a*_d49_i* - @dihedral:16-84-88-49 @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d88_i* @atom:*_b*_a*_d49_i* - @dihedral:16-84-88-61 @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d88_i* @atom:*_b*_a*_d61_i* - @dihedral:20-84-88-61 @atom:*_b*_a*_d20_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d88_i* @atom:*_b*_a*_d61_i* - @dihedral:49-84-88-X @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:49-84-88-61 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d84_i* @atom:*_b*_a*_d88_i* @atom:*_b*_a*_d61_i* - @dihedral:48-86-86-48 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d48_i* - @dihedral:48-86-86-56 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d56_i* - @dihedral:48-86-87-X @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d87_i* @atom:* - @dihedral:48-86-88-X @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:48-86-88-61 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d88_i* @atom:*_b*_a*_d61_i* - @dihedral:56-86-88-X @atom:*_b*_a*_d56_i* @atom:*_b*_a*_d86_i* @atom:*_b*_a*_d88_i* @atom:* - @dihedral:X-87-87-20 @atom:* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d20_i* - @dihedral:X-87-87-57 @atom:* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d57_i* - @dihedral:X-87-87-87 @atom:* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d87_i* - @dihedral:49-87-87-49 @atom:*_b*_a*_d49_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d87_i* @atom:*_b*_a*_d49_i* - @dihedral:4-89-90-13 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d13_i* - @dihedral:4-89-90-45 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d45_i* - @dihedral:4-89-90-48 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d48_i* - @dihedral:4-89-90-91 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d91_i* - @dihedral:91-89-90-13 @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d13_i* - @dihedral:91-89-90-45 @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d45_i* - @dihedral:91-89-90-48 @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d48_i* - @dihedral:91-89-90-91 @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d91_i* - @dihedral:X-89-91-X @atom:* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d91_i* @atom:* - @dihedral:4-89-91-46 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d46_i* - @dihedral:4-89-91-91 @atom:*_b*_a*_d4_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* - @dihedral:90-89-91-46 @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d46_i* - @dihedral:90-89-91-91 @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d89_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* - @dihedral:X-90-91-X @atom:* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d91_i* @atom:* - @dihedral:X-90-91-46 @atom:* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d46_i* - @dihedral:X-90-91-91 @atom:* @atom:*_b*_a*_d90_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* - @dihedral:X-91-91-X @atom:* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* @atom:* - @dihedral:X-91-91-24 @atom:* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d24_i* - @dihedral:13-91-91-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d13_i* - @dihedral:13-91-91-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d46_i* - @dihedral:46-91-91-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d46_i* - @dihedral:46-91-91-91 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* - @dihedral:91-91-91-91 @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* @atom:*_b*_a*_d91_i* - @dihedral:X-109-109-X @atom:* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:* - @dihedral:13-109-109-13 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d13_i* - @dihedral:13-109-109-46 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d46_i* - @dihedral:13-109-109-48 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d48_i* - @dihedral:13-109-109-50 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d50_i* - @dihedral:13-109-109-109 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:46-109-109-46 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d46_i* - @dihedral:46-109-109-48 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d48_i* - @dihedral:46-109-109-50 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d50_i* - @dihedral:46-109-109-109 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:48-109-109-48 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d48_i* - @dihedral:48-109-109-50 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d50_i* - @dihedral:48-109-109-109 @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:50-109-109-50 @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d50_i* - @dihedral:50-109-109-109 @atom:*_b*_a*_d50_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:109-109-109-109 @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* @atom:*_b*_a*_d109_i* - @dihedral:24-3-13-53 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* - @dihedral:52-3-13-24 @atom:*_b*_a*_d52_i* @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d24_i* - @dihedral:3-13-13-53 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* - @dihedral:3-13-13-83 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d83_i* - @dihedral:3-13-13-84 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d84_i* - @dihedral:3-13-13-85 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d85_i* - @dihedral:5-13-13-53 @atom:*_b*_a*_d5_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* - @dihedral:15-13-13-53 @atom:*_b*_a*_d15_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* - @dihedral:16-13-13-53 @atom:*_b*_a*_d16_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* - @dihedral:13-13-13-55 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d55_i* - @dihedral:24-13-13-83 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d83_i* - @dihedral:53-13-13-83 @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d83_i* - @dihedral:24-13-13-84 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d84_i* - @dihedral:53-13-13-84 @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d84_i* - @dihedral:24-13-13-85 @atom:*_b*_a*_d24_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d85_i* - @dihedral:46-13-13-85 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d85_i* - @dihedral:53-13-13-85 @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d85_i* - @dihedral:3-13-53-13 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d13_i* - @dihedral:3-13-53-54 @atom:*_b*_a*_d3_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d54_i* - @dihedral:13-13-53-54 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d53_i* @atom:*_b*_a*_d54_i* - @dihedral:46-13-55-54 @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d54_i* - @dihedral:13-13-85-X @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d85_i* @atom:* - @dihedral:13-13-85-57 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d85_i* @atom:*_b*_a*_d57_i* - @dihedral:46-13-85-X @atom:*_b*_a*_d46_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d85_i* @atom:* - @dihedral:55-48-55-54 @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d55_i* @atom:*_b*_a*_d54_i* - @dihedral:X-48-81-X @atom:* @atom:*_b*_a*_d48_i* @atom:*_b*_a*_d81_i* @atom:* - @dihedral:X-57-85-X @atom:* @atom:*_b*_a*_d57_i* @atom:*_b*_a*_d85_i* @atom:* - @dihedral:X-85-85-X @atom:* @atom:*_b*_a*_d85_i* @atom:*_b*_a*_d85_i* @atom:* - @dihedral:13-13-13-20 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d20_i* - @dihedral:13-13-13-47 @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d13_i* @atom:*_b*_a*_d47_i* + @dihedral:X_002_002_002 @atom:* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* + @dihedral:X_002_002_006 @atom:* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d006*_i* + @dihedral:001_002_002_002 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* + @dihedral:001_002_002_006 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d006*_i* + @dihedral:002_002_002_002 @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* + @dihedral:002_002_002_006 @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d006*_i* + @dihedral:002_002_002_010 @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d010*_i* + @dihedral:002_002_002_013 @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d013*_i* + @dihedral:002_002_002_065 @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d065*_i* + @dihedral:006_002_002_006 @atom:*_b*_a*_d006*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d006*_i* + @dihedral:006_002_002_065 @atom:*_b*_a*_d006*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d065*_i* + @dihedral:010_002_002_010 @atom:*_b*_a*_d010*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d010*_i* + @dihedral:002_002_005_007 @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d007*_i* + @dihedral:006_002_005_007 @atom:*_b*_a*_d006*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d007*_i* + @dihedral:010_002_005_007 @atom:*_b*_a*_d010*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d007*_i* + @dihedral:X_002_010_002 @atom:* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d010*_i* @atom:*_b*_a*_d002*_i* + @dihedral:002_002_010_002 @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d010*_i* @atom:*_b*_a*_d002*_i* + @dihedral:002_002_013_002 @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d002*_i* + @dihedral:006_002_020_002 @atom:*_b*_a*_d006*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d002*_i* + @dihedral:006_002_020_006 @atom:*_b*_a*_d006*_i* @atom:*_b*_a*_d002*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d006*_i* + @dihedral:004_003_003_004 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d004*_i* + @dihedral:004_003_003_013 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* + @dihedral:004_003_003_024 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* + @dihedral:004_003_003_046 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_003_003_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_003_003_024 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* + @dihedral:013_003_003_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d046*_i* + @dihedral:024_003_003_046 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_003_003_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d046*_i* + @dihedral:003_003_005_007 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d007*_i* + @dihedral:004_003_005_007 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d007*_i* + @dihedral:013_003_005_007 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d007*_i* + @dihedral:024_003_005_007 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d007*_i* + @dihedral:046_003_005_007 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d007*_i* + @dihedral:048_003_005_007 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d007*_i* + @dihedral:001_003_013_013 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:001_003_013_046 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:003_003_013_046 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:004_003_013_X @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:* + @dihedral:004_003_013_013 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:004_003_013_021 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d021*_i* + @dihedral:004_003_013_044 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* + @dihedral:004_003_013_024 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* + @dihedral:004_003_013_046 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:004_003_013_048 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* + @dihedral:005_003_013_013 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:005_003_013_044 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* + @dihedral:005_003_013_046 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_003_013_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_003_013_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:020_003_013_013 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:020_003_013_046 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:021_003_013_013 @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:021_003_013_046 @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:024_003_013_013 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:024_003_013_021 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d021*_i* + @dihedral:024_003_013_024 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* + @dihedral:024_003_013_046 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_003_013_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_003_013_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:048_003_013_046 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:052_003_013_013 @atom:*_b*_a*_d052*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:052_003_013_044 @atom:*_b*_a*_d052*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* + @dihedral:052_003_013_046 @atom:*_b*_a*_d052*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:065_003_013_013 @atom:*_b*_a*_d065*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:065_003_013_046 @atom:*_b*_a*_d065*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:107_003_013_046 @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:004_003_020_013 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* + @dihedral:004_003_020_048 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_003_020_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_003_020_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d048*_i* + @dihedral:024_003_020_013 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_003_020_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* + @dihedral:048_003_020_013 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* + @dihedral:003_003_024_013 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* + @dihedral:003_003_024_045 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:004_003_024_005 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d005*_i* + @dihedral:004_003_024_013 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* + @dihedral:004_003_024_045 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:004_003_024_047 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d047*_i* + @dihedral:004_003_024_048 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* + @dihedral:004_003_024_091 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d091*_i* + @dihedral:005_003_024_013 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* + @dihedral:005_003_024_045 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:013_003_024_005 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d005*_i* + @dihedral:013_003_024_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_003_024_045 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:013_003_024_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* + @dihedral:020_003_024_013 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* + @dihedral:020_003_024_045 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:024_003_024_003 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* + @dihedral:024_003_024_013 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* + @dihedral:024_003_024_045 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:046_003_024_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_003_024_045 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:047_003_024_045 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:048_003_024_045 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:048_003_024_048 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* + @dihedral:048_003_024_084 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d084*_i* + @dihedral:048_003_024_087 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d087*_i* + @dihedral:084_003_024_048 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* + @dihedral:084_003_024_084 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d084*_i* + @dihedral:084_003_024_087 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d087*_i* + @dihedral:087_003_024_045 @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:087_003_024_048 @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* + @dihedral:087_003_024_084 @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d084*_i* + @dihedral:087_003_024_087 @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d087*_i* + @dihedral:X_003_047_013 @atom:* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* + @dihedral:004_003_047_046 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:004_003_047_047 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:005_003_047_047 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:024_003_047_046 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:024_003_047_047 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:107_003_047_046 @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:107_003_047_047 @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:004_003_048_048 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:005_003_048_048 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_003_048_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:020_003_048_048 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:024_003_048_048 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:046_003_048_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_003_050_013 @atom:* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d013*_i* + @dihedral:004_003_050_047 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d047*_i* + @dihedral:005_003_050_047 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d047*_i* + @dihedral:013_003_050_047 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d047*_i* + @dihedral:013_003_056_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d056*_i* @atom:* + @dihedral:013_003_056_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_003_056_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d056*_i* @atom:* + @dihedral:046_003_056_045 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d045*_i* + @dihedral:X_003_060_X @atom:* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d060*_i* @atom:* + @dihedral:004_003_060_X @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d060*_i* @atom:* + @dihedral:004_003_082_X @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d082*_i* @atom:* + @dihedral:004_003_082_057 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d057*_i* + @dihedral:004_003_082_061 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:082_003_082_057 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d057*_i* + @dihedral:082_003_082_061 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:004_003_084_020 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d020*_i* + @dihedral:004_003_084_087 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d087*_i* + @dihedral:084_003_084_020 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d020*_i* + @dihedral:084_003_084_087 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d087*_i* + @dihedral:048_003_086_048 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_003_087_X @atom:* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:004_003_087_084 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d084*_i* + @dihedral:004_003_087_087 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d087*_i* + @dihedral:024_003_087_084 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d084*_i* + @dihedral:024_003_087_087 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d087*_i* + @dihedral:004_003_107_013 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_003_107_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d013*_i* + @dihedral:004_003_109_109 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:005_003_109_109 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:X_004_106_X @atom:* @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d106*_i* @atom:* + @dihedral:007_005_010_002 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d010*_i* @atom:*_b*_a*_d002*_i* + @dihedral:007_005_010_006 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d010*_i* @atom:*_b*_a*_d006*_i* + @dihedral:007_005_013_002 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d002*_i* + @dihedral:007_005_013_006 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d006*_i* + @dihedral:007_005_013_013 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:007_005_013_046 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:007_005_013_047 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* + @dihedral:007_005_013_048 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* + @dihedral:007_005_013_050 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* + @dihedral:007_005_044_013 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d013*_i* + @dihedral:007_005_044_045 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d045*_i* + @dihedral:007_005_024_003 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* + @dihedral:007_005_024_045 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:007_005_047_047 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:007_005_048_048 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:007_005_051_020 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d051*_i* @atom:*_b*_a*_d020*_i* + @dihedral:007_005_056_003 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d003*_i* + @dihedral:007_005_064_004 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d004*_i* + @dihedral:007_005_064_005 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d005*_i* + @dihedral:007_005_079_013 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d013*_i* + @dihedral:007_005_079_023 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d023*_i* + @dihedral:007_005_079_048 @atom:*_b*_a*_d007*_i* @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_013_013_003 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* + @dihedral:X_013_013_013 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:X_013_013_024 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* + @dihedral:001_013_013_001 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d001*_i* + @dihedral:001_013_013_005 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d005*_i* + @dihedral:001_013_013_013 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:001_013_013_046 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:003_013_013_003 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d003*_i* + @dihedral:003_013_013_005 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d005*_i* + @dihedral:003_013_013_013 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:003_013_013_015 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d015*_i* + @dihedral:003_013_013_016 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* + @dihedral:003_013_013_024 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* + @dihedral:003_013_013_046 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:003_013_013_048 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* + @dihedral:003_013_013_080 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d080*_i* + @dihedral:005_013_013_005 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d005*_i* + @dihedral:005_013_013_013 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:005_013_013_020 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* + @dihedral:005_013_013_044 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* + @dihedral:005_013_013_024 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* + @dihedral:005_013_013_046 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_013_013_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_013_015 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d015*_i* + @dihedral:013_013_013_016 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* + @dihedral:013_013_013_019 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d019*_i* + @dihedral:013_013_013_021 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d021*_i* + @dihedral:013_013_013_044 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* + @dihedral:013_013_013_024 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* + @dihedral:013_013_013_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_013_013_051 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d051*_i* + @dihedral:013_013_013_053 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* + @dihedral:013_013_013_065 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d065*_i* + @dihedral:013_013_013_066 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d066*_i* + @dihedral:013_013_013_079 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d079*_i* + @dihedral:013_013_013_107 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d107*_i* + @dihedral:013_013_013_108 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d108*_i* + @dihedral:015_013_013_046 @atom:*_b*_a*_d015*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:016_013_013_046 @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:019_013_013_046 @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:020_013_013_020 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* + @dihedral:020_013_013_046 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:021_013_013_021 @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d021*_i* + @dihedral:021_013_013_044 @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* + @dihedral:021_013_013_046 @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:044_013_013_044 @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* + @dihedral:044_013_013_046 @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:044_013_013_048 @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* + @dihedral:024_013_013_046 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:024_013_013_048 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* + @dihedral:024_013_013_080 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d080*_i* + @dihedral:046_013_013_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_013_013_047 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* + @dihedral:046_013_013_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* + @dihedral:046_013_013_051 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d051*_i* + @dihedral:046_013_013_053 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* + @dihedral:046_013_013_055 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d055*_i* + @dihedral:046_013_013_059 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d059*_i* + @dihedral:046_013_013_062 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d062*_i* + @dihedral:046_013_013_065 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d065*_i* + @dihedral:046_013_013_066 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d066*_i* + @dihedral:046_013_013_079 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d079*_i* + @dihedral:046_013_013_080 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d080*_i* + @dihedral:046_013_013_082 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d082*_i* + @dihedral:046_013_013_083 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d083*_i* + @dihedral:046_013_013_084 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d084*_i* + @dihedral:046_013_013_087 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d087*_i* + @dihedral:046_013_013_088 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d088*_i* + @dihedral:046_013_013_102 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d102*_i* + @dihedral:046_013_013_104 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d104*_i* + @dihedral:046_013_013_107 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d107*_i* + @dihedral:046_013_013_108 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d108*_i* + @dihedral:046_013_013_109 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d109*_i* + @dihedral:048_013_013_053 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* + @dihedral:108_013_013_108 @atom:*_b*_a*_d108*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d108*_i* + @dihedral:013_013_015_017 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d015*_i* @atom:*_b*_a*_d017*_i* + @dihedral:046_013_015_017 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d015*_i* @atom:*_b*_a*_d017*_i* + @dihedral:013_013_016_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_016_016 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d016*_i* + @dihedral:046_013_016_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_016_016 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d016*_i* + @dihedral:046_013_016_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_013_018_019 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d018*_i* @atom:*_b*_a*_d019*_i* + @dihedral:046_013_018_019 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d018*_i* @atom:*_b*_a*_d019*_i* + @dihedral:X_013_019_018 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d018*_i* + @dihedral:X_013_019_019 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* + @dihedral:013_013_019_019 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* + @dihedral:046_013_019_019 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* + @dihedral:X_013_020_013 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* + @dihedral:056_013_020_013 @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* + @dihedral:057_013_020_013 @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_020_003 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d003*_i* + @dihedral:013_013_020_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_020_064 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d064*_i* + @dihedral:046_013_020_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:* + @dihedral:046_013_020_003 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d003*_i* + @dihedral:046_013_020_047 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d047*_i* + @dihedral:046_013_020_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d048*_i* + @dihedral:046_013_020_051 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d051*_i* + @dihedral:046_013_020_064 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d064*_i* + @dihedral:X_013_024_045 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:003_013_024_003 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* + @dihedral:003_013_024_013 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* + @dihedral:003_013_024_045 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:013_013_024_003 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* + @dihedral:013_013_024_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_024_045 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:013_013_024_059 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d059*_i* + @dihedral:013_013_024_079 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d079*_i* + @dihedral:013_013_024_091 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d091*_i* + @dihedral:046_013_024_003 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* + @dihedral:046_013_024_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_024_045 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d045*_i* + @dihedral:046_013_024_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* + @dihedral:046_013_024_079 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d079*_i* + @dihedral:048_013_024_059 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d059*_i* + @dihedral:013_013_044_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_044_045 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d045*_i* + @dihedral:046_013_044_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_044_045 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d045*_i* + @dihedral:046_013_044_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_013_047_013 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* + @dihedral:X_013_047_046 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:X_013_047_047 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:X_013_047_050 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* + @dihedral:001_013_047_047 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:013_013_047_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_047_047 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:013_013_047_050 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* + @dihedral:046_013_047_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_047_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_013_047_047 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:046_013_047_050 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* + @dihedral:046_013_047_110 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d110*_i* + @dihedral:047_013_047_013 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* + @dihedral:047_013_047_046 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:X_013_048_048 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:001_013_048_048 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_013_048_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_013_048_056 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d056*_i* + @dihedral:021_013_048_048 @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:046_013_048_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:064_013_048_048 @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:065_013_048_048 @atom:*_b*_a*_d065*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_013_050_047 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d047*_i* + @dihedral:013_013_050_050 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* + @dihedral:046_013_050_047 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d047*_i* + @dihedral:046_013_050_050 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* + @dihedral:046_013_050_109 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* + @dihedral:013_013_051_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d051*_i* @atom:* + @dihedral:013_013_051_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d051*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_013_051_020 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d051*_i* @atom:*_b*_a*_d020*_i* + @dihedral:013_013_053_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_053_045 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d045*_i* + @dihedral:046_013_053_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_053_045 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d045*_i* + @dihedral:046_013_053_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d048*_i* + @dihedral:046_013_053_054 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d054*_i* + @dihedral:013_013_055_045 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d045*_i* + @dihedral:013_013_055_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_013_055_054 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d054*_i* + @dihedral:046_013_055_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_055_045 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d045*_i* + @dihedral:046_013_055_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_013_056_018 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d018*_i* + @dihedral:X_013_057_X @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d057*_i* @atom:* + @dihedral:013_013_057_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d057*_i* @atom:* + @dihedral:013_013_057_062 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d062*_i* + @dihedral:013_013_057_082 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d082*_i* + @dihedral:020_013_057_X @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d057*_i* @atom:* + @dihedral:020_013_057_062 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d062*_i* + @dihedral:020_013_057_082 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d082*_i* + @dihedral:013_013_059_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d059*_i* @atom:* + @dihedral:013_013_059_056 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d059*_i* @atom:*_b*_a*_d056*_i* + @dihedral:046_013_059_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d059*_i* @atom:* + @dihedral:013_013_062_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d062*_i* @atom:* + @dihedral:046_013_062_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d062*_i* @atom:* + @dihedral:046_013_064_020 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d020*_i* + @dihedral:046_013_064_052 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d052*_i* + @dihedral:048_013_064_020 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d020*_i* + @dihedral:048_013_064_052 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d052*_i* + @dihedral:X_013_079_023 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d023*_i* + @dihedral:X_013_079_024 @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d024*_i* + @dihedral:013_013_079_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_079_023 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d023*_i* + @dihedral:046_013_079_005 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d005*_i* + @dihedral:046_013_079_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_079_023 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d023*_i* + @dihedral:046_013_079_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_013_080_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d080*_i* @atom:* + @dihedral:013_013_080_060 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d080*_i* @atom:*_b*_a*_d060*_i* + @dihedral:013_013_080_084 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d080*_i* @atom:*_b*_a*_d084*_i* + @dihedral:046_013_080_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d080*_i* @atom:* + @dihedral:046_013_080_060 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d080*_i* @atom:*_b*_a*_d060*_i* + @dihedral:046_013_080_084 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d080*_i* @atom:*_b*_a*_d084*_i* + @dihedral:013_013_082_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d082*_i* @atom:* + @dihedral:046_013_082_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d082*_i* @atom:* + @dihedral:013_013_083_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d083*_i* @atom:* + @dihedral:046_013_083_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d083*_i* @atom:* + @dihedral:001_013_084_X @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:013_013_084_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:013_013_084_057 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d057*_i* + @dihedral:021_013_084_X @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:046_013_084_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:001_013_087_X @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:013_013_087_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:021_013_087_X @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:046_013_087_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:013_013_088_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d088*_i* @atom:* + @dihedral:046_013_088_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d088*_i* @atom:* + @dihedral:X_013_090_X @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d090*_i* @atom:* + @dihedral:046_013_090_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d090*_i* @atom:* + @dihedral:046_013_091_091 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* + @dihedral:013_013_095_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d095*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_095_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d095*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_013_102_103 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d102*_i* @atom:*_b*_a*_d103*_i* + @dihedral:046_013_102_103 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d102*_i* @atom:*_b*_a*_d103*_i* + @dihedral:013_013_104_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d104*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_104_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d104*_i* @atom:*_b*_a*_d013*_i* + @dihedral:X_013_105_X @atom:* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d105*_i* @atom:* + @dihedral:013_013_105_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d105*_i* @atom:* + @dihedral:013_013_105_062 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d105*_i* @atom:*_b*_a*_d062*_i* + @dihedral:013_013_105_082 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d105*_i* @atom:*_b*_a*_d082*_i* + @dihedral:020_013_105_X @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d105*_i* @atom:* + @dihedral:020_013_105_062 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d105*_i* @atom:*_b*_a*_d062*_i* + @dihedral:020_013_105_082 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d105*_i* @atom:*_b*_a*_d082*_i* + @dihedral:003_013_107_013 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_107_003 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d003*_i* + @dihedral:013_013_107_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_107_003 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d003*_i* + @dihedral:046_013_107_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_107_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d107*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_013_108_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d108*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_013_108_045 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d108*_i* @atom:*_b*_a*_d045*_i* + @dihedral:046_013_108_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d108*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_108_020 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d108*_i* @atom:*_b*_a*_d020*_i* + @dihedral:046_013_108_045 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d108*_i* @atom:*_b*_a*_d045*_i* + @dihedral:013_013_109_109 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:046_013_109_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_013_109_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_013_109_109 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:017_015_048_X @atom:*_b*_a*_d017*_i* @atom:*_b*_a*_d015*_i* @atom:*_b*_a*_d048*_i* @atom:* + @dihedral:017_015_048_048 @atom:*_b*_a*_d017*_i* @atom:*_b*_a*_d015*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_016_016_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_016_048_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_016_048_056 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d056*_i* + @dihedral:013_016_059_056 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d059*_i* @atom:*_b*_a*_d056*_i* + @dihedral:084_016_082_X @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d082*_i* @atom:* + @dihedral:084_016_082_061 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:082_016_084_049 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d049*_i* + @dihedral:082_016_084_083 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d083*_i* + @dihedral:082_016_084_088 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d088*_i* + @dihedral:X_016_091_X @atom:* @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d091*_i* @atom:* + @dihedral:019_018_048_X @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d018*_i* @atom:*_b*_a*_d048*_i* @atom:* + @dihedral:019_018_048_048 @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d018*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:018_018_056_013 @atom:*_b*_a*_d018*_i* @atom:*_b*_a*_d018*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d013*_i* + @dihedral:018_018_056_046 @atom:*_b*_a*_d018*_i* @atom:*_b*_a*_d018*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d046*_i* + @dihedral:X_019_019_X @atom:* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* @atom:* + @dihedral:013_019_019_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_019_019_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_019_019_047 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d047*_i* + @dihedral:013_019_019_109 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d109*_i* + @dihedral:046_019_019_047 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d047*_i* + @dihedral:046_019_019_109 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d109*_i* + @dihedral:019_019_047_013 @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* + @dihedral:019_019_047_046 @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:019_019_047_047 @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:013_020_044_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_020_044_045 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d045*_i* + @dihedral:013_020_047_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_020_047_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_020_047_047 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* + @dihedral:013_020_047_050 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* + @dihedral:003_020_048_048 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_020_048_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_020_048_056 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d056*_i* + @dihedral:064_020_048_048 @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_020_051_005 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d051*_i* @atom:*_b*_a*_d005*_i* + @dihedral:013_020_051_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d051*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_020_051_020 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d051*_i* @atom:*_b*_a*_d020*_i* + @dihedral:013_020_051_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d051*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_020_056_003 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d003*_i* + @dihedral:013_020_059_056 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d059*_i* @atom:*_b*_a*_d056*_i* + @dihedral:X_020_064_052 @atom:* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d052*_i* + @dihedral:013_020_064_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_020_064_052 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d052*_i* + @dihedral:048_020_064_004 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d064*_i* @atom:*_b*_a*_d004*_i* + @dihedral:084_020_082_061 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:082_020_084_088 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d088*_i* + @dihedral:084_020_084_049 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d049*_i* + @dihedral:084_020_084_087 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d087*_i* + @dihedral:108_020_108_013 @atom:*_b*_a*_d108*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d108*_i* @atom:*_b*_a*_d013*_i* + @dihedral:108_020_108_020 @atom:*_b*_a*_d108*_i* @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d108*_i* @atom:*_b*_a*_d020*_i* + @dihedral:X_024_048_048 @atom:* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:003_024_048_048 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_024_048_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:045_024_048_048 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:059_024_048_048 @atom:*_b*_a*_d059*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:082_024_048_048 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:084_024_048_048 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_024_059_X @atom:* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d059*_i* @atom:* + @dihedral:X_024_059_049 @atom:* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d059*_i* @atom:*_b*_a*_d049*_i* + @dihedral:045_024_059_X @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d059*_i* @atom:* + @dihedral:X_024_060_X @atom:* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d060*_i* @atom:* + @dihedral:X_024_079_023 @atom:* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d023*_i* + @dihedral:013_024_079_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d048*_i* + @dihedral:045_024_079_048 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_024_082_061 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:045_024_082_016 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d016*_i* + @dihedral:045_024_082_020 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d020*_i* + @dihedral:045_024_082_061 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:048_024_082_016 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d016*_i* + @dihedral:048_024_082_020 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d020*_i* + @dihedral:048_024_082_061 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:X_024_084_X @atom:* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:003_024_084_084 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d084*_i* + @dihedral:045_024_084_016 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d016*_i* + @dihedral:045_024_084_020 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d020*_i* + @dihedral:048_024_084_016 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d016*_i* + @dihedral:048_024_084_020 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d020*_i* + @dihedral:003_024_086_048 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:003_024_086_056 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d056*_i* + @dihedral:003_024_086_086 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d086*_i* + @dihedral:047_024_086_048 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:047_024_086_056 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d056*_i* + @dihedral:X_024_087_X @atom:* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:X_024_088_X @atom:* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d088*_i* @atom:* + @dihedral:003_024_091_046 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d046*_i* + @dihedral:003_024_091_089 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d089*_i* + @dihedral:003_024_091_091 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* + @dihedral:045_024_091_046 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d046*_i* + @dihedral:045_024_091_089 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d089*_i* + @dihedral:045_024_091_091 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* + @dihedral:X_024_106_X @atom:* @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d106*_i* @atom:* + @dihedral:013_044_044_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_044_044_045 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d045*_i* + @dihedral:045_044_044_045 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d045*_i* + @dihedral:013_044_048_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:045_044_048_048 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:059_044_048_048 @atom:*_b*_a*_d059*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:082_044_048_048 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:084_044_048_048 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:045_044_082_016 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d016*_i* + @dihedral:045_044_082_061 @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:048_044_082_016 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d016*_i* + @dihedral:048_044_082_061 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:047_046_047_013 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* + @dihedral:047_046_047_046 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:X_047_047_X @atom:* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:* + @dihedral:X_047_047_019 @atom:* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d019*_i* + @dihedral:003_047_047_024 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d024*_i* + @dihedral:003_047_047_046 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:005_047_047_013 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* + @dihedral:005_047_047_046 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_047_047_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_047_047_019 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d019*_i* + @dihedral:013_047_047_020 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d020*_i* + @dihedral:013_047_047_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:019_047_047_046 @atom:*_b*_a*_d019*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:020_047_047_046 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:021_047_047_021 @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d021*_i* + @dihedral:021_047_047_046 @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_047_047_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_047_047_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_047_048_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:046_047_048_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:046_047_048_056 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d056*_i* + @dihedral:047_047_048_048 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_047_050_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_047_050_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_047_050_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_047_050_050 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* + @dihedral:013_047_050_109 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* + @dihedral:024_047_050_003 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d003*_i* + @dihedral:046_047_050_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_047_050_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_047_050_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d048*_i* + @dihedral:046_047_050_050 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* + @dihedral:046_047_050_109 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* + @dihedral:X_047_084_X @atom:* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:X_047_086_048 @atom:* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:003_047_086_086 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d086*_i* + @dihedral:049_047_086_X @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d086*_i* @atom:* + @dihedral:049_047_086_024 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d024*_i* + @dihedral:X_047_087_X @atom:* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:X_047_088_X @atom:* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d088*_i* @atom:* + @dihedral:013_047_110_047 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d110*_i* @atom:*_b*_a*_d047*_i* + @dihedral:046_047_110_047 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d110*_i* @atom:*_b*_a*_d047*_i* + @dihedral:X_048_048_X @atom:* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:* + @dihedral:X_048_048_013 @atom:* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d013*_i* + @dihedral:X_048_048_048 @atom:* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_048_048_049 @atom:* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d049*_i* + @dihedral:001_048_048_048 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:001_048_048_049 @atom:*_b*_a*_d001*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d049*_i* + @dihedral:013_048_048_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_048_048_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_048_048_049 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d049*_i* + @dihedral:013_048_048_050 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d050*_i* + @dihedral:021_048_048_048 @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:021_048_048_049 @atom:*_b*_a*_d021*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d049*_i* + @dihedral:044_048_048_049 @atom:*_b*_a*_d044*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d049*_i* + @dihedral:047_048_048_049 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d049*_i* + @dihedral:048_048_048_048 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* + @dihedral:048_048_048_049 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d049*_i* + @dihedral:048_048_048_050 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d050*_i* + @dihedral:048_048_048_055 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d055*_i* + @dihedral:048_048_048_060 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d060*_i* + @dihedral:048_048_048_065 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d065*_i* + @dihedral:048_048_048_066 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d066*_i* + @dihedral:048_048_048_086 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* + @dihedral:048_048_048_109 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d109*_i* + @dihedral:049_048_048_049 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d049*_i* + @dihedral:049_048_048_050 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d050*_i* + @dihedral:049_048_048_060 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d060*_i* + @dihedral:049_048_048_065 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d065*_i* + @dihedral:049_048_048_066 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d066*_i* + @dihedral:049_048_048_086 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* + @dihedral:049_048_048_109 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d109*_i* + @dihedral:056_048_048_086 @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* + @dihedral:048_048_050_046 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d046*_i* + @dihedral:048_048_050_047 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d047*_i* + @dihedral:056_048_050_046 @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d046*_i* + @dihedral:056_048_050_047 @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d047*_i* + @dihedral:048_048_053_013 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d013*_i* + @dihedral:048_048_053_054 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d054*_i* + @dihedral:X_048_055_045 @atom:* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d045*_i* + @dihedral:048_048_055_045 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d045*_i* + @dihedral:055_048_055_013 @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d013*_i* + @dihedral:055_048_055_045 @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d045*_i* + @dihedral:060_048_055_045 @atom:*_b*_a*_d060*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d045*_i* + @dihedral:X_048_056_X @atom:* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d056*_i* @atom:* + @dihedral:048_048_056_048 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d048*_i* + @dihedral:049_048_056_048 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_048_060_X @atom:* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d060*_i* @atom:* + @dihedral:X_048_079_023 @atom:* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d023*_i* + @dihedral:048_048_079_013 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d013*_i* + @dihedral:048_048_079_024 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d079*_i* @atom:*_b*_a*_d024*_i* + @dihedral:048_048_086_048 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:048_048_086_056 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d056*_i* + @dihedral:048_048_086_086 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d086*_i* + @dihedral:049_048_086_048 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:049_048_086_056 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d056*_i* + @dihedral:049_048_086_086 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d086*_i* + @dihedral:056_048_086_048 @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:056_048_086_086 @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d086*_i* + @dihedral:049_048_088_049 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d088*_i* @atom:*_b*_a*_d049*_i* + @dihedral:056_048_101_013 @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d101*_i* @atom:*_b*_a*_d013*_i* + @dihedral:048_048_102_103 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d102*_i* @atom:*_b*_a*_d103*_i* + @dihedral:048_048_109_013 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d013*_i* + @dihedral:048_048_109_046 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d046*_i* + @dihedral:048_048_109_109 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:X_050_050_049 @atom:* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d049*_i* + @dihedral:003_050_050_003 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d003*_i* + @dihedral:013_050_050_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_050_050_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_050_050_047 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d047*_i* + @dihedral:046_050_050_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_050_050_047 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d047*_i* + @dihedral:047_050_050_047 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d047*_i* + @dihedral:013_050_109_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_050_109_109 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:046_050_109_013 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d013*_i* + @dihedral:046_050_109_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_050_109_109 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:047_050_109_013 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d013*_i* + @dihedral:047_050_109_046 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d046*_i* + @dihedral:047_050_109_109 @atom:*_b*_a*_d047*_i* @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:013_053_082_061 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:048_053_082_061 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* + @dihedral:045_055_059_X @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d059*_i* @atom:* + @dihedral:013_056_056_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_056_056_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d048*_i* + @dihedral:048_056_056_048 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_056_059_X @atom:* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d059*_i* @atom:* + @dihedral:X_056_059_049 @atom:* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d059*_i* @atom:*_b*_a*_d049*_i* + @dihedral:X_056_060_X @atom:* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d060*_i* @atom:* + @dihedral:X_056_062_X @atom:* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d062*_i* @atom:* + @dihedral:X_056_082_X @atom:* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d082*_i* @atom:* + @dihedral:048_056_086_048 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:048_056_086_086 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d086*_i* + @dihedral:X_057_060_X @atom:* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d060*_i* @atom:* + @dihedral:045_057_060_X @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d060*_i* @atom:* + @dihedral:X_057_061_X @atom:* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d061*_i* @atom:* + @dihedral:X_057_062_X @atom:* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d062*_i* @atom:* + @dihedral:X_057_081_X @atom:* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d081*_i* @atom:* + @dihedral:X_057_082_X @atom:* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d082*_i* @atom:* + @dihedral:X_057_082_049 @atom:* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d049*_i* + @dihedral:045_057_082_X @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d082*_i* @atom:* + @dihedral:X_057_084_X @atom:* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:045_057_084_X @atom:*_b*_a*_d045*_i* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:061_057_086_048 @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:084_057_086_048 @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_060_060_X @atom:* @atom:*_b*_a*_d060*_i* @atom:*_b*_a*_d060*_i* @atom:* + @dihedral:X_060_061_X @atom:* @atom:*_b*_a*_d060*_i* @atom:*_b*_a*_d061*_i* @atom:* + @dihedral:X_060_080_X @atom:* @atom:*_b*_a*_d060*_i* @atom:*_b*_a*_d080*_i* @atom:* + @dihedral:X_060_081_X @atom:* @atom:*_b*_a*_d060*_i* @atom:*_b*_a*_d081*_i* @atom:* + @dihedral:X_060_087_X @atom:* @atom:*_b*_a*_d060*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:048_060_087_084 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d060*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d084*_i* + @dihedral:060_060_087_084 @atom:*_b*_a*_d060*_i* @atom:*_b*_a*_d060*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d084*_i* + @dihedral:X_061_061_X @atom:* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d061*_i* @atom:* + @dihedral:X_061_062_X @atom:* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d062*_i* @atom:* + @dihedral:X_061_082_X @atom:* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d082*_i* @atom:* + @dihedral:X_061_082_049 @atom:* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d049*_i* + @dihedral:083_061_082_016 @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d016*_i* + @dihedral:088_061_082_016 @atom:*_b*_a*_d088*_i* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d016*_i* + @dihedral:088_061_082_020 @atom:*_b*_a*_d088*_i* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d020*_i* + @dihedral:X_061_083_X @atom:* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d083*_i* @atom:* + @dihedral:082_061_083_049 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d049*_i* + @dihedral:082_061_083_084 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d084*_i* + @dihedral:X_061_084_X @atom:* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:X_061_088_X @atom:* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d088*_i* @atom:* + @dihedral:082_061_088_084 @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d088*_i* @atom:*_b*_a*_d084*_i* + @dihedral:X_080_084_X @atom:* @atom:*_b*_a*_d080*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:X_082_084_X @atom:* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:016_082_086_048 @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:020_082_086_048 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:057_082_086_048 @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:061_082_086_048 @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_082_087_X @atom:* @atom:*_b*_a*_d082*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:X_083_084_X @atom:* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:X_083_084_049 @atom:* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d049*_i* + @dihedral:049_083_084_X @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:049_083_084_016 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d016*_i* + @dihedral:049_083_084_049 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d049*_i* + @dihedral:061_083_084_016 @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d016*_i* + @dihedral:061_083_084_020 @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d020*_i* + @dihedral:061_083_084_049 @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d049*_i* + @dihedral:X_083_086_048 @atom:* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:061_083_086_048 @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:061_083_087_X @atom:*_b*_a*_d061*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:084_083_087_X @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d083*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:X_084_084_X @atom:* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d084*_i* @atom:* + @dihedral:X_084_084_049 @atom:* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d049*_i* + @dihedral:016_084_084_049 @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d049*_i* + @dihedral:049_084_084_049 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d049*_i* + @dihedral:X_084_086_048 @atom:* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:016_084_086_048 @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:020_084_086_048 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:057_084_086_048 @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:X_084_087_X @atom:* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:X_084_087_049 @atom:* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d049*_i* + @dihedral:049_084_087_049 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d049*_i* + @dihedral:X_084_088_049 @atom:* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d088*_i* @atom:*_b*_a*_d049*_i* + @dihedral:016_084_088_049 @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d088*_i* @atom:*_b*_a*_d049*_i* + @dihedral:016_084_088_061 @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d088*_i* @atom:*_b*_a*_d061*_i* + @dihedral:020_084_088_061 @atom:*_b*_a*_d020*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d088*_i* @atom:*_b*_a*_d061*_i* + @dihedral:049_084_088_X @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d088*_i* @atom:* + @dihedral:049_084_088_061 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d084*_i* @atom:*_b*_a*_d088*_i* @atom:*_b*_a*_d061*_i* + @dihedral:048_086_086_048 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d048*_i* + @dihedral:048_086_086_056 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d056*_i* + @dihedral:048_086_087_X @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d087*_i* @atom:* + @dihedral:048_086_088_X @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d088*_i* @atom:* + @dihedral:048_086_088_061 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d088*_i* @atom:*_b*_a*_d061*_i* + @dihedral:056_086_088_X @atom:*_b*_a*_d056*_i* @atom:*_b*_a*_d086*_i* @atom:*_b*_a*_d088*_i* @atom:* + @dihedral:X_087_087_020 @atom:* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d020*_i* + @dihedral:X_087_087_057 @atom:* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d057*_i* + @dihedral:X_087_087_087 @atom:* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d087*_i* + @dihedral:049_087_087_049 @atom:*_b*_a*_d049*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d087*_i* @atom:*_b*_a*_d049*_i* + @dihedral:004_089_090_013 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d013*_i* + @dihedral:004_089_090_045 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d045*_i* + @dihedral:004_089_090_048 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d048*_i* + @dihedral:004_089_090_091 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d091*_i* + @dihedral:091_089_090_013 @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d013*_i* + @dihedral:091_089_090_045 @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d045*_i* + @dihedral:091_089_090_048 @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d048*_i* + @dihedral:091_089_090_091 @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d091*_i* + @dihedral:X_089_091_X @atom:* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d091*_i* @atom:* + @dihedral:004_089_091_046 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d046*_i* + @dihedral:004_089_091_091 @atom:*_b*_a*_d004*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* + @dihedral:090_089_091_046 @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d046*_i* + @dihedral:090_089_091_091 @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d089*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* + @dihedral:X_090_091_X @atom:* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d091*_i* @atom:* + @dihedral:X_090_091_046 @atom:* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d046*_i* + @dihedral:X_090_091_091 @atom:* @atom:*_b*_a*_d090*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* + @dihedral:X_091_091_X @atom:* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* @atom:* + @dihedral:X_091_091_024 @atom:* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d024*_i* + @dihedral:013_091_091_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_091_091_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_091_091_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_091_091_091 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* + @dihedral:091_091_091_091 @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* @atom:*_b*_a*_d091*_i* + @dihedral:X_109_109_X @atom:* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:* + @dihedral:013_109_109_013 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d013*_i* + @dihedral:013_109_109_046 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d046*_i* + @dihedral:013_109_109_048 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d048*_i* + @dihedral:013_109_109_050 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d050*_i* + @dihedral:013_109_109_109 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:046_109_109_046 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d046*_i* + @dihedral:046_109_109_048 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d048*_i* + @dihedral:046_109_109_050 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d050*_i* + @dihedral:046_109_109_109 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:048_109_109_048 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d048*_i* + @dihedral:048_109_109_050 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d050*_i* + @dihedral:048_109_109_109 @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:050_109_109_050 @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d050*_i* + @dihedral:050_109_109_109 @atom:*_b*_a*_d050*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:109_109_109_109 @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* @atom:*_b*_a*_d109*_i* + @dihedral:024_003_013_053 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* + @dihedral:052_003_013_024 @atom:*_b*_a*_d052*_i* @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d024*_i* + @dihedral:003_013_013_053 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* + @dihedral:003_013_013_083 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d083*_i* + @dihedral:003_013_013_084 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d084*_i* + @dihedral:003_013_013_085 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d085*_i* + @dihedral:005_013_013_053 @atom:*_b*_a*_d005*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* + @dihedral:015_013_013_053 @atom:*_b*_a*_d015*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* + @dihedral:016_013_013_053 @atom:*_b*_a*_d016*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* + @dihedral:013_013_013_055 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d055*_i* + @dihedral:024_013_013_083 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d083*_i* + @dihedral:053_013_013_083 @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d083*_i* + @dihedral:024_013_013_084 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d084*_i* + @dihedral:053_013_013_084 @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d084*_i* + @dihedral:024_013_013_085 @atom:*_b*_a*_d024*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d085*_i* + @dihedral:046_013_013_085 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d085*_i* + @dihedral:053_013_013_085 @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d085*_i* + @dihedral:003_013_053_013 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d013*_i* + @dihedral:003_013_053_054 @atom:*_b*_a*_d003*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d054*_i* + @dihedral:013_013_053_054 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d053*_i* @atom:*_b*_a*_d054*_i* + @dihedral:046_013_055_054 @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d054*_i* + @dihedral:013_013_085_X @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d085*_i* @atom:* + @dihedral:013_013_085_057 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d085*_i* @atom:*_b*_a*_d057*_i* + @dihedral:046_013_085_X @atom:*_b*_a*_d046*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d085*_i* @atom:* + @dihedral:055_048_055_054 @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d055*_i* @atom:*_b*_a*_d054*_i* + @dihedral:X_048_081_X @atom:* @atom:*_b*_a*_d048*_i* @atom:*_b*_a*_d081*_i* @atom:* + @dihedral:X_057_085_X @atom:* @atom:*_b*_a*_d057*_i* @atom:*_b*_a*_d085*_i* @atom:* + @dihedral:X_085_085_X @atom:* @atom:*_b*_a*_d085*_i* @atom:*_b*_a*_d085*_i* @atom:* + @dihedral:013_013_013_020 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d020*_i* + @dihedral:013_013_013_047 @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d013*_i* @atom:*_b*_a*_d047*_i* } #(end of dihedrals by type) @@ -8135,25 +8148,61 @@ OPLSAA { # ---------- Improper Interactions: ---------- # http://lammps.sandia.gov/doc/improper_harmonic.html # Syntax: - # improper_coeff ImproperTypeName ImproperStyle parameters + # improper_coeff ImproperTypeName parameters write_once("In Settings") { - improper_coeff @improper:X-X-3-4 harmonic 10.5 180.0 - improper_coeff @improper:X-X-3-52 harmonic 10.5 180.0 - improper_coeff @improper:X-X-24-X harmonic 2.5 180.0 - improper_coeff @improper:X-X-47-X harmonic 15.0 180.0 - improper_coeff @improper:X-X-48-X harmonic 2.5 180.0 + # The following force field parameters were converted from + # the tinker parameter file (oplsaa.prm) and then edited by hand: + # Thanks to David Huang (adelaide.edu.au) for the corrections: + + improper_coeff @improper:X_X_003_004 10.5 180.0 # (moltemplate) + # <==> "imptors 0 0 3 4 21.000 180.0 2" in oplsaa.prm (tinker) + # <==> "define improper_O_C_X_Y 180.0 43.93200 2" in oplsaa.ff (gromacs) + + improper_coeff @improper:X_X_003_052 10.5 180.0 # (moltemplate) + # <==> "imptors 0 0 3 52 21.000 180.0 2" in oplsaa.prm (tinker) + # <==> "define improper_O_C_X_Y 180.0 43.93200 2" in oplsaa.ff (gromacs) + + improper_coeff @improper:X_X_024_X 1.0 180.0 # (moltemplate) + # <==> "imptors 0 0 24 0 5.000 180.0 2" in oplsaa.prm (tinker) - INCORRECT? + # <==> "define improper_Z_N_X_Y 180.0 4.18400 2" in oplsaa.ff (gromacs) + + improper_coeff @improper:X_X_047_X 15.0 180.0 # (moltemplate) + # <==> "imptors 0 0 47 0 30.000 180.0 2" in oplsaa.prm (tinker) + # <==> "define improper_Z_CM_X_Y 180.0 62.76000 2" in oplsaa.ff (gromacs) + + improper_coeff @improper:X_X_048_X 1.1 180.0 # (moltemplate) + # <==> "imptors 0 0 48 0 5.000 180.0 2" in oplsaa.prm (tinker) - INCORRECT? + # <==> "define improper_Z_CA_X_Y 180.0 4.60240 2" in oplsaa.ff (gromacs) + + improper_coeff @improper:055_055_X_055 10.5 180.0 + # <==> "define improper_N2_X_N2_N2 180.0 43.93200" in oplsaa.ff (gromacs) + # <==> no corresponding line found in oplsaa.prm (tinker) + + # --- As of 2017-9-13, I am unsure if I should add this rule: ---- + # The gromacs file for oplsaa include the following line: + # "define improper_X_NO_ON_NO 180.0 43.93200" in oplsaa.ff (gromacs) + # but there is no corresponding line found in oplsaa.prm (tinker) + # and there is no corresponding line from opls-a.prm (emc (BASF)) + # I'm not sure what the "NO" and "ON" correspond to. If I had to guess, + # the corresponding moltemplate line might be one of these two choices: + # improper_coeff @improper:X_103_102_102 10.5 180.0 ? + # improper_coeff @improper:X_102_103_103 10.5 180.0 ? + # but I'd prefer to leave this out. + } #(end of improper_coeffs) - # Rules for creating dihedral interactions according to atom type: + + # Rules for creating improper interactions according to atom type: # ImproperTypeName AtomType1 AtomType2 AtomType3 AtomType4 # (* = wildcard) write_once("Data Impropers By Type (opls_imp.py)") { - @improper:X-X-3-4 @atom:* @atom:* @atom:*_b*_a*_d*_i3 @atom:*_b*_a*_d*_i4 - @improper:X-X-3-52 @atom:* @atom:* @atom:*_b*_a*_d*_i3 @atom:*_b*_a*_d*_i52 - @improper:X-X-24-X @atom:* @atom:* @atom:*_b*_a*_d*_i24 @atom:* - @improper:X-X-47-X @atom:* @atom:* @atom:*_b*_a*_d*_i47 @atom:* - @improper:X-X-48-X @atom:* @atom:* @atom:*_b*_a*_d*_i48 @atom:* + @improper:X_X_003_004 @atom:* @atom:* @atom:*_b*_a*_d*_i003* @atom:*_b*_a*_d*_i004* + @improper:X_X_003_052 @atom:* @atom:* @atom:*_b*_a*_d*_i003* @atom:*_b*_a*_d*_i052* + @improper:X_X_024_X @atom:* @atom:* @atom:*_b*_a*_d*_i024* @atom:* + @improper:X_X_047_X @atom:* @atom:* @atom:*_b*_a*_d*_i047* @atom:* + @improper:X_X_048_X @atom:* @atom:* @atom:*_b*_a*_d*_i048* @atom:* + @improper:055_055_X_055 @atom:*_b*_a*_d*_i55 @atom:*_b*_a*_d*_i55 @atom:* @atom:*_b*_a*_d*_i55 } #(end of impropers by type) @@ -8961,11 +9010,11 @@ OPLSAA { write_once("In Init") { units real atom_style full - bond_style hybrid harmonic - angle_style hybrid harmonic - dihedral_style hybrid opls - improper_style hybrid harmonic - pair_style hybrid lj/cut/coul/long 10.0 10.0 + bond_style harmonic + angle_style harmonic + dihedral_style opls + improper_style harmonic + pair_style lj/cut/coul/long 10.0 10.0 pair_modify mix geometric special_bonds lj/coul 0.0 0.0 0.5 kspace_style pppm 0.0001 @@ -8985,34 +9034,3 @@ OPLSAA { } # OPLSAA - - - - -############################### NOTES #################################### -# -# This file was generated (on 2017-7-18) using this script: -# -# tinkerparm2lt.py -name OPLSAA -file oplsaa.prm -dihedral-style opls -# -# The oplsaa.prm file was downloaded from the TINKER website -# https://dasher.wustl.edu/tinker/distribution/params/oplsaa.prm -# (You can build a smaller version of this file by editing the oplsaa.prm -# file and deleting the lines beginning with "atom" that you don't need, -# and subsequently running tinkerparm2lt.py on the new file. This can -# help reduce the number of atom types, which can help with visualization, -# and in some cases may also improve performance.) -# -# The following 1-2, 1-3, and 1-4 weighting parameters were ASSUMED: -# special_bonds lj/coul 0.0 0.0 0.5 -# (See http://lammps.sandia.gov/doc/special_bonds.html for details) -# -# WARNING: All Urey-Bradley interactions have been IGNORED including: -# ffid1 ffid2 ffid3 K r0 -# ureybrad 35 34 35 38.25 1.5537 -# -# WARNING: Many of these atoms are UNITED-ATOM (UA) atoms (#1-56). This means -# the hydrogen atoms have been absorbed into the heavy atoms, and the -# force-field modified accordingly. (Hopefully, moltemplate will -# complain if you attempt to bond these atoms to hydrogen atoms.) -########################################################################## diff --git a/tools/moltemplate/moltemplate/force_fields/oplsaa/AUTHOR.txt b/tools/moltemplate/moltemplate/force_fields/oplsaa/AUTHOR.txt deleted file mode 100644 index a3e9f3ee78..0000000000 --- a/tools/moltemplate/moltemplate/force_fields/oplsaa/AUTHOR.txt +++ /dev/null @@ -1,2 +0,0 @@ -OPLSAA force-field conversion tools provided by -Jason Lambert, Sebastian Echeverri, and Andrew Jewett diff --git a/tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/AUTHOR.txt b/tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/AUTHOR.txt new file mode 100644 index 0000000000..5874b5926b --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/AUTHOR.txt @@ -0,0 +1,7 @@ + +OPLSAA force-field conversion tools provided by +Jason Lambert and Andrew Jewett. + +LOPLSAA force-field conversion provided by Sebastian Echeverri. + + diff --git a/tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/README.txt b/tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/README.txt new file mode 100644 index 0000000000..2412c4aa7d --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/README.txt @@ -0,0 +1,10 @@ +The "oplsaa.lt" file contains force field parameters which we found in the +"oplsaa.prm" file which is distributed with TINKER. +Jay Ponder, (the author of TINKER) preferred that we do not distribute +that file with moltemplate. However you can download that file here: + +https://dasher.wustl.edu/tinker/distribution/params/oplsaa.prm + +This directory does contain other files ("loplsaa.prm") containing additional +force field parameters that modify the original OPLSAA force field. + diff --git a/tools/moltemplate/moltemplate/force_fields/oplsaa/loplsaa_ext.prm b/tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/loplsaa_ext.prm similarity index 52% rename from tools/moltemplate/moltemplate/force_fields/oplsaa/loplsaa_ext.prm rename to tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/loplsaa_ext.prm index ff0e3e445c..bf89d9a341 100644 --- a/tools/moltemplate/moltemplate/force_fields/oplsaa/loplsaa_ext.prm +++ b/tools/moltemplate/moltemplate/force_fields/oplsaa_original_format/loplsaa_ext.prm @@ -1,19 +1,28 @@ - ########################################################################### - ## Extra OPLSAA parameters and atom types for long hydrocarbon chains ## - ## SOURCE: Sui, Pluhackova, Böckmann, J.Chem.Theory.Comp (2012), 8, 1459 ## - ## CREDIT: Sebastian Echeverri (file format conversion) ## - ########################################################################### - ## This file was used with "tinkerparm2lt.py" to create "loplsaa.lt" ## - ########################################################################### + ############################################################################ + ## Extra OPLSAA parameters and atom types for long hydrocarbon chains ## + ## SOURCES: Sui, Pluhackova, Böckmann, J.Chem.Theory.Comp (2012), 8(4), 1459 + ## Pluhackova,...,Böckmann, J.Phys.Chem.B (2015), 119(49), 15287 ## + ## CREDIT: Sebastian Echeverri (file format conversion) ## + ############################################################################ + ## This file was used with "tinkerparm2lt.py" to create "loplsaa.lt" ## + ############################################################################ atom 80L 13L CT "Alkane CH3- (LOPLS CT_CH3)" 6 12.011 4 atom 81L 13L CT "Alkane -CH2- (LOPLS CT_CH2)" 6 12.011 4 +atom 81LL 13LL CT "Alkane -CH2- (LOPLS ALT)" 6 12.011 4 atom 85LCH3 46 HC "Alkane H-C CH3 (LOPLS HC_CH3)" 1 1.008 1 atom 85LCH2 46 HC "Alkane H-C CH2 (LOPLS HC_CH2)" 1 1.008 1 atom 87L 47L CM "Alkene RH-C= (LOPLS CM_CH)" 6 12.011 3 atom 89L 46 HC "Alkene H-C= (LOPLS HC_CH)" 1 1.008 1 atom 86L 47L CM "Alkene R2-C= (LOPLS)" 6 12.011 3 atom 88L 47L CM "Alkene H2-C= (LOPLS)" 6 12.011 3 +atom 96L 5L OH "Alcohol -OH (LOPLS)" 8 15.999 2 +atom 97L 7L HO "Alcohol -OH (LOPLS)" 1 1.008 1 +atom 111L 5L OH "Diol -OH (LOPLS)" 8 15.999 2 +atom 112L 7L HO "Diol -OH (LOPLS)" 1 1.008 1 +atom 113L 5L OH "Triol -OH (LOPLS)" 8 15.999 2 +atom 114L 7L HO "Triol -OH (LOPLS)" 1 1.008 1 +atom 118L 46L HC "Diol & Triol H-COH (LOPLS)" 1 1.008 1 atom 169L 47L CM "Chloroalkene Cl-CH= (LOPLS)" 6 12.011 3 atom 266L 47L CM "Uracil & Thymine C5 (LOPLS)" 6 12.011 3 atom 267L 47L CM "Uracil & Thymine C6 (LOPLS)" 6 12.011 3 @@ -23,21 +32,36 @@ atom 324L 47L CM "CytosineH+ C5 (LOPLS)" 6 12.011 3 atom 325L 47L CM "CytosineH+ C6 (LOPLS)" 6 12.011 3 atom 340L 47L CM "Trifluorothymine CF3- (LOPLS)" 6 12.011 4 atom 342L 47L CM "Chloroalkene Cl2-C= (LOPLS)" 6 12.011 3 +atom 406L 3L C_2 "Ester -COOR (LOPLS)" 6 12.011 3 +atom 407L 4L O_2 "Ester C=O (LOPLS)" 8 15.999 1 +atom 408L 20L OS "Ester CO-O-R (LOPLS)" 8 15.999 2 atom 458L 47L CM "Vinyl Ether =CH-OR (LOPLS)" 6 12.011 3 atom 459L 47L CM "Vinyl Ether =CR-OR (LOPLS)" 6 12.011 3 atom 649L 47L CM "Cl..CH3..Cl- Sn2 TS (LOPLS)" 6 12.011 5 +atom 718L 46L HC "Propylene Carbonate CH2 (LOPLS)" 1 1.008 1 +atom 718LL 46L HC "Propylene Carbonate CH2 (LOPLS ALT)" 1 1.008 1 atom 900L 47L CM "Allene/Ketene H2C=C=X (LOPLS)" 6 12.011 3 atom 901L 47L CM "Allene/Ketene HRC=C=X (LOPLS)" 6 12.011 3 atom 902L 47L CM "Allene/Ketene R2C=C=X (LOPLS)" 6 12.011 3 +###################### + vdw 80L 3.5000 0.0660 vdw 81L 3.5000 0.0660 +vdw 81LL 0.3500 0.0660 vdw 85LCH3 2.5000 0.0300 vdw 85LCH2 2.5000 0.026290630975 vdw 87L 3.5500 0.0760 vdw 89L 2.4200 0.0300 vdw 86L 3.5500 0.0760 vdw 88L 3.5500 0.0760 +vdw 96L 0.3120 0.1700 +vdw 97L 0.0000 0.0000 +vdw 111L 0.3070 0.1700 +vdw 112L 0.0000 0.0000 +vdw 113L 0.3070 0.1700 +vdw 114L 0.0000 0.0000 +vdw 118L 0.2500 0.0300 vdw 169L 3.5500 0.0760 vdw 266L 3.5000 0.0800 vdw 267L 3.5000 0.0800 @@ -47,13 +71,21 @@ vdw 324L 3.5000 0.0800 vdw 325L 3.5000 0.0800 vdw 340L 3.5000 0.0800 vdw 342L 3.5500 0.0760 +vdw 406L 0.31875 0.1050 +vdw 407L 0.3108 0.1680 +vdw 408L 0.2550 0.1700 vdw 458L 3.5500 0.0760 vdw 459L 3.5500 0.0760 vdw 649L 3.5500 0.0760 +vdw 718L 0.2420 0.1500 +vdw 718LL 0.2420 0.1500 vdw 900L 3.3000 0.0860 vdw 901L 3.3000 0.0860 vdw 902L 3.3000 0.0860 +###################### + + # New torsion angle parameters # Taken from table 2 of # Sui, Pluhackova, Böckmann, J.Chem.Theory.Comp (2012), 8, 1459 @@ -62,14 +94,42 @@ torsion 0 47L 47L 0 0.0 0 1 12.2502629063 180 2 0.0 torsion 47L 47L 13L 13L -0.8050121893 0 1 0.3218905354 180 2 -0.1032768881 0 3 0 180 4 # offset V0=-0.3574832696 torsion 13L 13L 13L 47L 0.4821902486 0 1 0.1343683078 180 2 0.1777461759 0 3 0 180 4 # offset V0=0.4405726577 +###################### +torsion 46L 13LL 5L 7L 0.00962596 0 1 -0.0145554 180 2 0.381091 0 3 0 180 4 # offset V0=0.00133126 +torsion 46L 13LL 13LL 5L 0.0143774 0 1 0.033021 180 2 0.26687 0 3 0 180 4 # offset V0=-0.0291993 +torsion 13LL 13LL 5L 7L -0.675785 0 1 -0.0160421 180 2 0.373199 0 3 0 180 4 # offset V0=-0.0225884 +torsion 13LL 13LL 13LL 5L 1.31261 0 1 -0.266307 180 2 0.637867 0 3 0 180 4 # offset V0=0.00224187 +torsion 5L 13LL 13LL 5L 2.69106 0 1 -0.849706 180 2 0.725731 0 3 0 180 4 # offset V0=-0.3326 +torsion 13LL 3L 20L 13LL 3.11923 0 1 5.73771 180 2 0.0 0 3 0 180 4 # offset V0=0.493475 +torsion 13LL 20L 3L 4L 0.0 0 1 5.73772 180 2 0.0 0 3 0 180 4 # offset V0=-0.28142 +torsion 46L 13LL 3L 20L -0.00742471 0 1 0.00217734 180 2 0.111803 0 3 0 180 4 # offset V0=-0.012512 +torsion 3L 20L 13LL 13LL -1.7354 0 1 -1.24844 180 2 0.623897 0 3 0 180 4 # offset V0=0.11706 +torsion 46L 13LL 13LL 20L 0.0113337 0 1 0.0236209 180 2 0.429747 0 3 0 180 4 # offset V0=-0.0255306 +torsion 13LL 13LL 3L 20L 0.884988 0 1 -0.626905 180 2 -0.493344 0 3 0 180 4 # offset V0=-0.0195172 +torsion 13LL 13LL 3L 4L -0.276019 0 1 1.23685 180 2 -0.670745 0 3 0 180 4 # offset V0=-0.0322467 +torsion 3L 13LL 13LL 46L -0.0021152 0 1 0.0173542 180 2 -0.295208 0 3 0 180 4 # offset V0=-0.0433963 +torsion 3L 13LL 13LL 13LL -2.30738 0 1 -0.627326 180 2 0.621951 0 3 0 180 4 # offset V0=0.0323566 +torsion 13LL 13LL 13LL 20L 2.25871 0 1 -1.02408 180 2 1.0071 0 3 0 180 4 # offset V0=0.0297084 +torsion 20L 13LL 13LL 20L 4.66787 0 1 -2.62698 180 2 1.3248 0 3 0 180 4 # offset V0=-1.48385 +torsion 5L 13LL 13LL 20L 5.03208 0 1 -2.37742 180 2 1.23809 0 3 0 180 4 # offset V0=0.223141 +###################### + charge 80L -0.222 #"Alkane CH3- (LOPLS)" "CT_CH3" 3.50 0.0660 charge 81L -0.148 #"Alkane -CH2- (LOPLS)" "CT_CH2" 3.50 0.0660 +charge 81LL 0.19 charge 85LCH3 0.074 #"Alkane H-C CH3 (LOPLS)" "HC_CH3" 2.50 0.0300 charge 85LCH2 0.074 #"Alkane H-C CH2 (LOPLS)" "HC_CH2" 2.50 0.0263 charge 87L -0.160 #"Alkene RH-C= (LOPLS)" "CM_CH" 3.55 0.0760 charge 89L 0.160 #"Alkene H-C= (LOPLS)" "HC_CH" 2.42 0.0300 charge 86L 0.0000 charge 88L -0.2300 +charge 96L -0.683 +charge 97L 0.418 +charge 111L -0.7 +charge 112L 0.435 +charge 113L -0.73 +charge 114L 0.465 +charge 118L 0.06 charge 169L 0.0050 charge 266L -0.0700 charge 267L 0.0800 @@ -79,9 +139,15 @@ charge 324L -0.0600 charge 325L 0.1000 charge 340L 0.1800 charge 342L 0.1200 +charge 406L 0.75 +charge 407L -0.55 +charge 408L -0.45 charge 458L -0.0300 charge 459L 0.0850 charge 649L -0.3440 +charge 718L 0.06 +charge 718LL 0.03 charge 900L -0.2500 charge 901L -0.1000 charge 902L 0.0500 + diff --git a/tools/moltemplate/moltemplate/force_fields/sdk/SDK_lipid+chol.lt b/tools/moltemplate/moltemplate/force_fields/sdk.lt similarity index 98% rename from tools/moltemplate/moltemplate/force_fields/sdk/SDK_lipid+chol.lt rename to tools/moltemplate/moltemplate/force_fields/sdk.lt index f610085113..8207614282 100644 --- a/tools/moltemplate/moltemplate/force_fields/sdk/SDK_lipid+chol.lt +++ b/tools/moltemplate/moltemplate/force_fields/sdk.lt @@ -1,11 +1,21 @@ # Autogenerated by EMC 2 LT tool v0.2 on 2017-06-29 # -# ./emcprm2lt.py --pair-style=lj/sdk/coul/long --bond-style=harmonic --angle-style=sdk sdk_lipids.prm sdk_cholesterol.prm --name=SDK_lipid+chol --units +# cd sdk/ +# emcprm2lt.py --pair-style=lj/sdk/coul/long --bond-style=harmonic --angle-style=sdk sdk_lipids.prm sdk_cholesterol.prm --name=sdk --units +# mv -f sdk.lt ../ +# +# This file contains force field parameters for lipids and cholesterol from: +# Shinoda et al. J. Phys. Chem. B, Vol. 114, No. 20, 2010 +# MacDermaid et al. J. Chem. Phys, 143(24), 243144, 2015 +# For details see the "README.txt" file (located in "force_fields/sdk/") # # Adapted from EMC by Pieter J. in 't Veld # Originally written as, FFNAME:SDK STYLE:COARSE VERSION:1.0 on Oct 2014 +# "emcprm2lt.py" was written by David Stelter. + SDK { + write_once("Data Masses") { @atom:CM 42.080400 # CM @atom:CMD2 26.037800 # CMD2 @@ -420,4 +430,6 @@ SDK { pair_style hybrid lj/sdk/coul/long 9.000000 12.000000 special_bonds lj/coul 0.0 0.0 0.0 } # end init + } # SDK + diff --git a/tools/moltemplate/moltemplate/force_fields/sdk/README.txt b/tools/moltemplate/moltemplate/force_fields/sdk/README.txt deleted file mode 100644 index 6ca9e8f98f..0000000000 --- a/tools/moltemplate/moltemplate/force_fields/sdk/README.txt +++ /dev/null @@ -1,63 +0,0 @@ -README! - -v0.2 - -This is only part of the SDK force field and is to be used for lipids only. Only parameters from: - -Shinoda et al. J. Phys. Chem. B, Vol. 114, No. 20, 2010 -http://dx.doi.org/10.1021/jp9107206 - -are used. - -NOTE: We extracted the parameters from that publication from the files -distributed with the "EMC" tool. If you use these files, please also cite: -P. J. in ‘t Veld and G. C. Rutledge, Macromolecules 2003, 36, 7358. - - -This works for any topology built using the following types: - -Name Structure Charge -NC -CH2CH2-N-(CH3)3 +1 -NH -CH2CH2-NH3 +1 -PH -PO4- -1 -PHE -PO4- (PE lipid) -1 -GL -CH2CH-CH2- -EST1 -CH2CO2- -EST2 -H2CO2- -CMD2 -HC=CH- (cis) -CM -CH2CH2CH2- -CT CH3CH2CH2- -CT2 CH3CH2- -W (H2O)3 - -This coarse-grainng allows for design of a wide variety of lipids. - -NEW! in v0.2: - SDK Cholesterol model has been added! Using parameters from: - -MacDermaid et al. J. Chem. Phys, 143(24), 243144, 2015 -http://dx.doi.org/10.1063/1.4937153 - -are used. The following types are defined specifically for cholesterol: - -Name Structure Location -C2T -CH-(CH3)2 Tail -CM2 -CH2-CH2- Tail -CM2R -CH2-CH2- Ring A -CMDB -CH2-C=CH- Ring A/B -CMB -CH2-CH-CH- Ring B/C -CMR -CH-CH2-CH2- Ring B/C -CMR5 -CH2-CH2-CH- Ring D -CTB -CH2-CH-CH3- Tail -CTBA -C-CH3 Ring A/B -CTBB -C-CH3 Ring C/D -OAB -CH-OH Ring A - -See the provided reference for details on the CG cholesterol topology. -A 5-10 timestep is used when using cholesterol. - -Several limiations, due to missing parameters: --use of cholesterol with type "NH" is not possible. --use of cholesterol with type "PHE" is not possible. - ---- diff --git a/tools/moltemplate/moltemplate/force_fields/sdk_original_format/README.txt b/tools/moltemplate/moltemplate/force_fields/sdk_original_format/README.txt new file mode 100644 index 0000000000..eb2eed836d --- /dev/null +++ b/tools/moltemplate/moltemplate/force_fields/sdk_original_format/README.txt @@ -0,0 +1,84 @@ +The files in this directory are used to create the "sdk.lt" file +(containing SDK force field parameters for moltemplate). +These .PRM files are distributed with "EMC" written by Pieter J. in 't Veld. + +Conversion from EMC (.PRM) format to moltemplate (.LT) format was +done using the "emcprm2lt.py" script written by David Stelter. +Here is an example how to use the emcprm2lt.py script: + +emcprm2lt.py --pair-style=lj/sdk/coul/long --bond-style=harmonic --angle-style=sdk sdk_lipids.prm sdk_cholesterol.prm --name=SDK_lipid+chol --units + +This will generate a file named "sdk.lt" which (in this example) +only includes the force field parameters for lipids and cholestrol. +Later you can define new molecules in moltemplate using: + +import "sdk.lt" +NewMolecule inherits SDK { + write("Data Atoms") {...atom coordinates and types go here...} + write("Data Bond List") {...list of bonds goes here...} +} + +This is only part of the SDK force field and is to be used for lipids +and cholesterol only. Lipid parameters were taken from: + +Shinoda et al. J. Phys. Chem. B, Vol. 114, No. 20, 2010 +http://dx.doi.org/10.1021/jp9107206 + +Cholesterol parameters were taken from: +MacDermaid et al. J. Chem. Phys, 143(24), 243144, 2015 +http://dx.doi.org/10.1063/1.4937153 + +You can define lipids with any topology built using the following types: + +Name Structure Charge +NC -CH2CH2-N-(CH3)3 +1 +NH -CH2CH2-NH3 +1 +PH -PO4- -1 +PHE -PO4- (PE lipid) -1 +GL -CH2CH-CH2- +EST1 -CH2CO2- +EST2 -H2CO2- +CMD2 -HC=CH- (cis) +CM -CH2CH2CH2- +CT CH3CH2CH2- +CT2 CH3CH2- +W (H2O)3 + +This coarse-grainng allows for design of a wide variety of lipids. + +The following types are defined specifically for cholesterol: + +Name Structure Location +C2T -CH-(CH3)2 Tail +CM2 -CH2-CH2- Tail +CM2R -CH2-CH2- Ring A +CMDB -CH2-C=CH- Ring A/B +CMB -CH2-CH-CH- Ring B/C +CMR -CH-CH2-CH2- Ring B/C +CMR5 -CH2-CH2-CH- Ring D +CTB -CH2-CH-CH3- Tail +CTBA -C-CH3 Ring A/B +CTBB -C-CH3 Ring C/D +OAB -CH-OH Ring A + +See the provided reference for details on the CG cholesterol topology. +A 5.0-10.0 timestep is used when using cholesterol. + +Several limiations, due to missing parameters: +-use of cholesterol with type "NH" is not possible. +-use of cholesterol with type "PHE" is not possible. + +---- Credits: ---- + +emcprm2lt.py was written by David Stelter +EMC was written by Pieter J. in 't Veld +SDK was created by Shinoda, DeVane, Klein, J.Phys.Chem.B, Vol. 114, No. 20, 2010 + +---- additional citation request ---- + +Since we borrowed force field parameters from files distributed with EMC, +if you use files generated by "emcprm2lt.py", please also cite the EMC paper: +P. J. in ‘t Veld and G. C. Rutledge, Macromolecules 2003, 36, 7358 + + + diff --git a/tools/moltemplate/moltemplate/force_fields/sdk/SDK_lipidONLY.lt b/tools/moltemplate/moltemplate/force_fields/sdk_original_format/SDK_lipidONLY.lt similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/sdk/SDK_lipidONLY.lt rename to tools/moltemplate/moltemplate/force_fields/sdk_original_format/SDK_lipidONLY.lt diff --git a/tools/moltemplate/moltemplate/force_fields/sdk/sdk_cholesterol.prm b/tools/moltemplate/moltemplate/force_fields/sdk_original_format/sdk_cholesterol.prm similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/sdk/sdk_cholesterol.prm rename to tools/moltemplate/moltemplate/force_fields/sdk_original_format/sdk_cholesterol.prm diff --git a/tools/moltemplate/moltemplate/force_fields/sdk/sdk_lipids.prm b/tools/moltemplate/moltemplate/force_fields/sdk_original_format/sdk_lipids.prm similarity index 100% rename from tools/moltemplate/moltemplate/force_fields/sdk/sdk_lipids.prm rename to tools/moltemplate/moltemplate/force_fields/sdk_original_format/sdk_lipids.prm diff --git a/tools/moltemplate/moltemplate/genpoly_lt.py b/tools/moltemplate/moltemplate/genpoly_lt.py index 2c4014e5db..9d8ec84608 100755 --- a/tools/moltemplate/moltemplate/genpoly_lt.py +++ b/tools/moltemplate/moltemplate/genpoly_lt.py @@ -256,7 +256,7 @@ class GPSettings(object): if i + 1 >= len(argv): raise InputError('Error: ' + argv[i] + ' flag should be followed ' + 'by 3 numbers separated by commas (no spaces)\n') - self.direction_orig = map(float, argv[i + 1].split(',')) + self.direction_orig = list(map(float, argv[i + 1].split(','))) del(argv[i:i + 2]) elif argv[i].lower() == '-circular': if i + 1 >= len(argv): @@ -294,7 +294,7 @@ class GPSettings(object): if i + 1 >= len(argv): raise InputError('Error: ' + argv[i] + ' flag should be followed ' + 'by 3 numbers separated by commas (no spaces)\n') - self.box_padding = map(float, argv[i + 1].split(',')) + self.box_padding = list(map(float, argv[i + 1].split(','))) if len(self.box_padding) == 1: self.box_padding = self.box_padding * 3 del(argv[i:i + 2]) @@ -340,7 +340,7 @@ class WrapPeriodic(object): @classmethod def Wrap(obj, i, N): - if i / N != 0: + if i // N != 0: obj.bounds_err = True return i % N @@ -384,7 +384,7 @@ class GenPoly(object): for i in range(0, len(lines)): tokens = lines[i].strip().split() if (len(tokens) == 3): - coords.append(map(float, tokens)) + coords.append(list(map(float, tokens))) self.N = len(coords) if self.N < 2: diff --git a/tools/moltemplate/moltemplate/ltemplify.py b/tools/moltemplate/moltemplate/ltemplify.py index 753d9b3ad0..2fa20b0d05 100755 --- a/tools/moltemplate/moltemplate/ltemplify.py +++ b/tools/moltemplate/moltemplate/ltemplify.py @@ -2,7 +2,6 @@ # -*- coding: utf-8 -*- # Author: Andrew Jewett (jewett.aij at g mail) -# http://www.chem.ucsb.edu/~sheagroup # License: 3-clause BSD License (See LICENSE.TXT) # Copyright (c) 2012, Regents of the University of California # All rights reserved. @@ -31,14 +30,14 @@ import sys try: from .ttree_lex import * from .lttree_styles import * -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from ttree_lex import * from lttree_styles import * g_program_name = __file__.split('/')[-1] # = 'ltemplify.py' -g_version_str = '0.53.1' -g_date_str = '2017-6-08' +g_version_str = '0.54.0' +g_date_str = '2017-10-03' def Intify(s): if s.isdigit(): @@ -1279,7 +1278,7 @@ def main(): atomtype_i_str = tokens[0] if '*' in atomtype_i_str: raise InputError('PROBLEM near or before ' + ErrorLeader(infile, lineno) + '\n' - ' As of 2015-8, moltemplate forbids use of the "\*\" wildcard\n' + ' As of 2017-10, moltemplate forbids use of the "\*\" wildcard\n' ' character in the \"Pair Coeffs\" section.\n') else: i = int(atomtype_i_str) @@ -1308,7 +1307,7 @@ def main(): atomtype_j_str = tokens[1] if (('*' in atomtype_i_str) or ('*' in atomtype_j_str)): raise InputError('PROBLEM near or before ' + ErrorLeader(infile, lineno) + '\n' - ' As of 2015-8, moltemplate forbids use of the "\*\" wildcard\n' + ' As of 2017-10, moltemplate forbids use of the "\*\" wildcard\n' ' character in the \"PairIJ Coeffs\" section.\n') else: i = int(atomtype_i_str) @@ -1828,8 +1827,11 @@ def main(): else: i_a = i_b = Intify(atomtype_i_str) + assert((type(i_a) is int) and (type(i_b) is int)) + i_a_final = None i_b_final = None + for i in range(i_a, i_b + 1): if ((i in needed_atomtypes) or (min_sel_atomtype <= i)): i_a_final = i @@ -2615,7 +2617,7 @@ def main(): # ' --groups-- Attempting to parse \"group\" commands.\n' # ' This may cause '+g_program_name+' to crash.\n' # ' If so, comment out all group commands in your input script(s), and\n' - # ' try again. (And please report the error. -Andrew 2014-10-30)\n') + # ' try again. (And please report the error. -Andrew 2017-10)\n') i_line = 0 groups_needed = set(['all']) @@ -2885,9 +2887,9 @@ def main(): for i in range(atomids_lo, atomids_hi+1): if i in needed_atomids: l_new_set_commands.append((' ' * indent) + - tokens[0:2].join(' ')+' '+ + ' '.join(tokens[0:2])+' '+ str(i) + ' ' + - tokens[3:].join(' ')) + ' '.join(tokens[3:])) elif tokens[1] == 'mol': pattern = tokens[2].split('*') if pattern[0] == '': @@ -2903,9 +2905,9 @@ def main(): molids_hi = min(int(pattern[1]), max_needed_molid) for i in range(molids_lo, molids_hi+1): if i in needed_molids: - l_new_set_commands.append(tokens[0:2].join(' ')+' '+ + l_new_set_commands.append(' '.join(tokens[0:2])+' '+ str(i) + ' ' + - tokens[3:].join(' ')) + ' '.join(tokens[3:])) elif tokens[0] == 'group': group_name = tokens[2] if group_name in groups_needed: @@ -3480,7 +3482,7 @@ def main(): # sys.stderr.write('######################################################\n' # 'WARNING: One or more \"group\" commands appear to refer to relevant atoms.\n' # ' Please check to make sure that the group(s) generated by\n' - # ' '+g_program_name+' contain the correct atoms. (-Andrew 2014-10-30)\n' + # ' '+g_program_name+' contain the correct atoms. (-Andrew 2017-10)\n' # '######################################################\n') assert(non_empty_output) @@ -3575,7 +3577,7 @@ def main(): ' Please look over the resulting LT file and check for errors.\n' ' Convert any remaining atom, bond, angle, dihedral, or improper id\n' ' or type numbers to the corresponding $ or @-style counter variables.\n' - ' Feel free to report any bugs you find. (-Andrew Jewett 2015-8-02)\n') + ' Feel free to report any bugs you find. (-Andrew Jewett 2017-10)\n') except (ValueError, InputError) as err: diff --git a/tools/moltemplate/moltemplate/lttree.py b/tools/moltemplate/moltemplate/lttree.py index 168a60ecc3..9d5ee07ac2 100755 --- a/tools/moltemplate/moltemplate/lttree.py +++ b/tools/moltemplate/moltemplate/lttree.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # Author: Andrew Jewett (jewett.aij at g mail) +# http://www.moltemplate.org # http://www.chem.ucsb.edu/~sheagroup # License: 3-clause BSD License (See LICENSE.TXT) # Copyright (c) 2011, Regents of the University of California @@ -28,8 +29,8 @@ Additional LAMMPS-specific features may be added in the future. """ g_program_name = __file__.split('/')[-1] # ='lttree.py' -g_date_str = '2017-4-11' -g_version_str = '0.76.0' +g_date_str = '2018-3-15' +g_version_str = '0.77.0' import sys @@ -45,10 +46,22 @@ try: from .ttree_lex import InputError, TextBlock, DeleteLinesWithBadVars, \ TemplateLexer from .lttree_styles import AtomStyle2ColNames, ColNames2AidAtypeMolid, \ - ColNames2Coords, ColNames2Vects, data_atoms, data_masses + ColNames2Coords, ColNames2Vects, \ + data_atoms, data_prefix, data_masses, \ + data_velocities, data_ellipsoids, data_triangles, data_lines, \ + data_pair_coeffs, data_bond_coeffs, data_angle_coeffs, \ + data_dihedral_coeffs, data_improper_coeffs, data_bondbond_coeffs, \ + data_bondangle_coeffs, data_middlebondtorsion_coeffs, \ + data_endbondtorsion_coeffs, data_angletorsion_coeffs, \ + data_angleangletorsion_coeffs, data_bondbond13_coeffs, \ + data_angleangle_coeffs, data_bonds_by_type, data_angles_by_type, \ + data_dihedrals_by_type, data_impropers_by_type, \ + data_bonds, data_bond_list, data_angles, data_dihedrals, data_impropers, \ + data_boundary, data_pbc, data_prefix_no_space, in_init, in_settings, \ + in_prefix from .ttree_matrix_stack import AffineTransform, MultiAffineStack, \ LinTransform -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from ttree import * from ttree_lex import * @@ -332,6 +345,60 @@ def TransformAtomText(text, matrix, settings): return '\n'.join(lines) + +def TransformEllipsoidText(text, matrix, settings): + """ Apply the transformation matrix to the quaternions represented + by the last four numbers on each line. + The \"matrix\" stores the aggregate sum of combined transformations + to be applied and the rotational part of this matrix + must be converted to a quaternion. + + """ + + #sys.stderr.write('matrix_stack.M = \n'+ MatToStr(matrix) + '\n') + + lines = text.split('\n') + + for i in range(0, len(lines)): + line_orig = lines[i] + ic = line_orig.find('#') + if ic != -1: + line = line_orig[:ic] + comment = ' ' + line_orig[ic:].rstrip('\n') + else: + line = line_orig.rstrip('\n') + comment = '' + + columns = line.split() + + if len(columns) != 0: + if len(columns) != 8: + raise InputError('Error (lttree.py): Expected 7 numbers' + + ' instead of ' + + str(len(columns)) + + '\nline:\n' + + line + + ' in each line of the ellipsoids\" section.\n"') + q_orig = [float(columns[-4]), + float(columns[-3]), + float(columns[-2]), + float(columns[-1])] + + qRot = [0.0, 0.0, 0.0, 0.0] + Matrix2Quaternion(matrix, qRot) + + q_new = [0.0, 0.0, 0.0, 0.0] + MultQuat(q_new, qRot, q_orig) + + columns[-4] = str(q_new[0]) + columns[-3] = str(q_new[1]) + columns[-2] = str(q_new[2]) + columns[-1] = str(q_new[3]) + lines[i] = ' '.join(columns) + comment + return '\n'.join(lines) + + + def CalcCM(text_Atoms, text_Masses=None, settings=None): @@ -487,8 +554,8 @@ def _ExecCommands(command_list, transform_block += '.' + transform transform = transform.split('(')[0] if ((transform == 'movecm') or - (transform == 'rotcm') or - (transform == 'scalecm')): + (transform == 'rotcm') or + (transform == 'scalecm')): break transform_blocks.append(transform_block) @@ -553,6 +620,8 @@ def _ExecCommands(command_list, # before passing them on to the caller. if command.filename == data_atoms: text = TransformAtomText(text, matrix_stack.M, settings) + if command.filename == data_ellipsoids: + text = TransformEllipsoidText(text, matrix_stack.M, settings) files_content[command.filename].append(text) @@ -599,6 +668,9 @@ def _ExecCommands(command_list, files_content[data_atoms] = \ TransformAtomText(files_content[data_atoms], matrix_stack.M, settings) + files_content[data_ellipsoids] = \ + TransformEllipsoidText(files_content[data_ellipsoids], + matrix_stack.M, settings) for ppcommand in postprocessing_commands: matrix_stack.Pop(which_stack=command.context_node) diff --git a/tools/moltemplate/moltemplate/lttree_check.py b/tools/moltemplate/moltemplate/lttree_check.py index 10daa89be2..5fb5b6f6ce 100755 --- a/tools/moltemplate/moltemplate/lttree_check.py +++ b/tools/moltemplate/moltemplate/lttree_check.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # Author: Andrew Jewett (jewett.aij at g mail) +# http://www.moltemplate.org # http://www.chem.ucsb.edu/~sheagroup # License: 3-clause BSD License (See LICENSE.TXT) # Copyright (c) 2011, Regents of the University of California @@ -45,7 +46,7 @@ the files generated by lttree.py or moltemplate.sh. import sys try: - from .ttree_lex import RemoveOuterQuotes, HasWildCard, InputError, \ + from .ttree_lex import RemoveOuterQuotes, HasWildcard, InputError, \ ErrorLeader, TextBlock, VarRef, TemplateLexer, \ ExtractCatName, TableFromTemplate from .ttree import BasicUISettings, BasicUIParseArgs, EraseTemplateFiles, \ @@ -68,7 +69,7 @@ try: from .lttree import LttreeSettings, LttreeParseArgs from .ttree_matrix_stack import AffineTransform, MultiAffineStack, \ LinTransform -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from ttree_lex import * from ttree import * @@ -80,7 +81,7 @@ except (SystemError, ValueError): try: from .ttree import StaticObj, WriteFileCommand, DescrToCatLeafPtkns, \ AssignStaticVarPtrs, FindReplacementVarPairs, ReplaceVars -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from ttree import * from lttree import * @@ -93,8 +94,8 @@ if sys.version < '2.6': g_program_name = __file__.split('/')[-1] # = 'lttree_check.py' -g_version_str = '0.78.0' -g_date_str = '2017-4-11' +g_version_str = '0.80.1' +g_date_str = '2017-10-01' # g_no_check_msg = \ @@ -904,6 +905,7 @@ def CheckSyntaxCheap(lex): def CheckSyntaxStatic(context_node, root_node, atom_column_names, + allow_wildcards, data_pair_coeffs_defined, data_bond_coeffs_defined, data_angle_coeffs_defined, @@ -936,6 +938,7 @@ def CheckSyntaxStatic(context_node, elif (filename.find(in_prefix) == 0): # if filename begins with "In " CheckInFileSyntax(command.tmpl_list, root_node, + allow_wildcards, in_pair_coeffs_defined, in_bond_coeffs_defined, in_angle_coeffs_defined, @@ -1337,15 +1340,18 @@ def CheckSyntaxStatic(context_node, elif (isinstance(entry, VarRef) and ('*' in entry.descr_str)): compound_wildcard = True - if compound_wildcard: + if compound_wildcard and (not allow_wildcards): raise InputError('--- Paranoid checking: ---\n' ' Possible error near ' + ErrorLeader(entry.srcloc.infile, entry.srcloc.lineno) + '\n' 'The wildcard symbol, \"*\", is not recommended within \"' + filename + '\".\n' 'It is safer to specify the parameters for each type explicitly.\n' - 'You CAN use \"*\" wildcards, but you must disable syntax checking. To get\n' - 'past this error message, run moltemplate.sh using the \"-nocheck\" option.\n') + 'To get past this error message, run moltemplate.sh with the \"-allow-wildcards\"\n' + 'argument. If not all of the @atom,@bond,@angle,@dihedral,@improper types are\n' + 'included in the a*b range of values, then MAKE SURE that these types are\n' + 'assigned to connsecutively increasing integer values by first defining them in\n' + 'that order, or if that fails, by using the \"-a\" to assign the values manually\n') if filename == 'Data Bond Coeffs': # Commenting the next line out. We did this already: @@ -1641,6 +1647,7 @@ def CheckSyntaxStatic(context_node, CheckSyntaxStatic(child, root_node, atom_column_names, + allow_wildcards, data_pair_coeffs_defined, data_bond_coeffs_defined, data_angle_coeffs_defined, @@ -1656,6 +1663,7 @@ def CheckSyntaxStatic(context_node, def CheckInFileSyntax(tmpl_list, root_node, + allow_wildcards, pair_coeffs_defined, bond_coeffs_defined, angle_coeffs_defined, @@ -1700,7 +1708,7 @@ def CheckInFileSyntax(tmpl_list, elif (isinstance(entry, VarRef) and ('*' in entry.descr_str)): compound_wildcard = True - if compound_wildcard: + if compound_wildcard and (not allow_wildcards): raise InputError('---- Paranoid checking: ---\n' ' Possible error near ' + ErrorLeader(entry.srcloc.infile, @@ -1708,8 +1716,11 @@ def CheckInFileSyntax(tmpl_list, 'The wildcard symbol, \"*\", is not recommended within a \"' + table[i][0].text + '\".\n' 'command. It is safer to specify the parameters for each bond type explicitly.\n' - 'You CAN use \"*\" wildcards, but you must disable syntax checking. To get\n' - 'past this error message, run moltemplate.sh using the \"-nocheck\" option.\n') + 'To get past this error message, run moltemplate.sh with the \"-allow-wildcards\"\n' + 'argument. If not all of the @bond,@angle,@dihedral,@improper types are included\n' + 'in the range, then MAKE SURE these @bond,@angle,@dihedral,@improper types are\n' + 'assigned to connsecutively increasing integer values by first defining them in\n' + 'that order, or if that fails, by using the \"-a\" to assign the values manually\n') if ((isinstance(table[i][0], TextBlock)) and ((table[i][0].text.lower() == 'bondcoeff') or @@ -1857,9 +1868,9 @@ def CheckInFileSyntax(tmpl_list, if len(table[i]) > 2: # if not, deal with error later if ((isinstance(table[i][1], TextBlock) and - (table[i][1].text == '*')) and - (isinstance(table[i][1], TextBlock) and - (table[i][1].text == '*'))): + (table[i][1].text == '*')) and #'* *' <--BUG? + (isinstance(table[i][1], TextBlock) and # <--BUG? + (table[i][1].text == '*'))): # <--BUG? pair_coeffs_defined.add(('*', '*')) else: compound_wildcard = False @@ -1889,21 +1900,24 @@ def CheckInFileSyntax(tmpl_list, ('*' in entry.descr_str)): compound_wildcard = True - if compound_wildcard: + if compound_wildcard and (not allow_wildcards): raise InputError('---- Paranoid checking: ---\n' ' Possible error near ' + ErrorLeader(entry.srcloc.infile, entry.srcloc.lineno) + '\n' 'The wildcard symbol, \"*\", is not recommended within a \"pair_coeff\" command.\n' 'It is safer to specify the parameters for each bond type explicitly.\n' - 'You CAN use \"*\" wildcards, but you must disable syntax checking. To get\n' - 'past this error message, run moltemplate.sh using the \"-nocheck\" option.\n') + 'To get past this error message, run moltemplate.sh with the \"-allow-wildcards\"\n' + 'argument. If not all of the @atom types are included in the range, then\n' + 'MAKE SURE the relevant @atom types in the * range are assigned to\n' + 'connsecutively increasing integer values by first defining them in that\n' + 'order, or if that fails, by using the \"-a\" to assign the values manually.\n') if ((len(table[i]) > 2) and - (isinstance(table[i][1], TextBlock) and - (table[i][1].text == '*')) and - (isinstance(table[i][2], TextBlock) and - (table[i][2].text == '*'))): + ((isinstance(table[i][1], TextBlock) and + (table[i][1].text == '*')) or + (isinstance(table[i][2], TextBlock) and + (table[i][2].text == '*')))): pass # we dealt with this case earlier elif (not ((len(table[i]) > 2) and @@ -1941,7 +1955,21 @@ def LttreeCheckParseArgs(argv, settings, main=False, show_warnings=True): if len(argv) == 1: raise InputError('Error: This program requires at least one argument\n' ' the name of a file containing ttree template commands\n') - elif len(argv) == 2: + settings.allow_wildcards = True + i = 1 + while i < len(argv): + if argv[i].lower() in ('-allow-wildcards', '-allowwildcards'): + settings.allow_wildcards = True + del argv[i:i+1] + elif argv[i].lower() in ('-forbid-wildcards', '-forbidwildcards'): + settings.allow_wildcards = False + del argv[i:i+1] + else: + i += 1 + #(perhaps later I'll add some additional argumets) + + # The only argument left should be the system.lt file we want to read: + if len(argv) == 2: try: # Parse text from the file named argv[1] settings.lex.infile = argv[1] @@ -1951,8 +1979,6 @@ def LttreeCheckParseArgs(argv, settings, main=False, show_warnings=True): ' \"' + argv[1] + '\"\n' ' for reading.\n') sys.exit(1) - del(argv[1:2]) - else: # if there are more than 2 remaining arguments, problem_args = ['\"' + arg + '\"' for arg in argv[1:]] @@ -2045,6 +2071,7 @@ def main(): CheckSyntaxStatic(static_tree_root, static_tree_root, settings.column_names, + settings.allow_wildcards, data_pair_coeffs_defined, data_bond_coeffs_defined, data_angle_coeffs_defined, @@ -2060,6 +2087,7 @@ def main(): CheckSyntaxStatic(static_tree_root, static_tree_root, settings.column_names, + settings.allow_wildcards, data_pair_coeffs_defined, data_bond_coeffs_defined, data_angle_coeffs_defined, @@ -2089,12 +2117,20 @@ def main(): else: bond_coeffs_defined = in_bond_coeffs_defined + bond_types_have_wildcards = False bond_bindings = static_tree_root.categories['bond'].bindings for nd, bond_binding in bond_bindings.items(): if not nd.IsDeleted(): + has_wildcard = HasWildcard(bond_binding.full_name) + if has_wildcard: + bond_types_have_wildcards = True + for nd, bond_binding in bond_bindings.items(): + if not nd.IsDeleted(): + #has_wildcard = HasWildcard(bond_binding.full_name) if ((not (bond_binding in bond_coeffs_defined)) and - (not HasWildCard(bond_binding.full_name)) and - (not ('*' in bond_coeffs_defined))): + #(not has_wildcard) and + (not bond_types_have_wildcards) and + (not ('*' in bond_coeffs_defined))): raise InputError('---------------------------------------------------------------------\n' + ' Syntax error: Missing bond coeff.\n\n' + ' No coeffs for the \"' + bond_binding.full_name + '\" bond type have been\n' + @@ -2108,7 +2144,7 @@ def main(): if 'angle' in static_tree_root.categories: if ((len(data_angle_coeffs_defined) > 0) and - (len(in_angle_coeffs_defined) > 0)): + (len(in_angle_coeffs_defined) > 0)): raise InputError('---------------------------------------------------------------------\n' + ' Syntax error: You can EITHER use \"angle_coeff\" commands\n' + ' OR you can have a \"Data Angle Coeffs\" section.\n' + @@ -2122,12 +2158,20 @@ def main(): else: angle_coeffs_defined = in_angle_coeffs_defined + angle_types_have_wildcards = False angle_bindings = static_tree_root.categories['angle'].bindings for nd, angle_binding in angle_bindings.items(): if not nd.IsDeleted(): + has_wildcard = HasWildcard(angle_binding.full_name) + if has_wildcard: + angle_types_have_wildcards = True + for nd, angle_binding in angle_bindings.items(): + if not nd.IsDeleted(): + #has_wildcard = HasWildcard(angle_binding.full_name) if ((not (angle_binding in angle_coeffs_defined)) and - #(not HasWildCard(angle_binding.full_name)) and - (not ('*' in angle_coeffs_defined))): + #(not has_wildcard)) and + (not angle_types_have_wildcards) and + (not ('*' in angle_coeffs_defined))): raise InputError('---------------------------------------------------------------------\n' + ' Syntax error: Missing angle coeff.\n\n' + ' No coeffs for the \"' + angle_binding.full_name + '\" angle type have been\n' + @@ -2142,7 +2186,7 @@ def main(): #sys.stderr.write('dihedral_bindings = '+str(dihedral_bindings)+'\n') if ((len(data_dihedral_coeffs_defined) > 0) and - (len(in_dihedral_coeffs_defined) > 0)): + (len(in_dihedral_coeffs_defined) > 0)): raise InputError('---------------------------------------------------------------------\n' + ' Syntax error: You can EITHER use \"dihedral_coeff\" commands\n' + ' OR you can have a \"Data Dihedral Coeffs\" section.\n' + @@ -2156,13 +2200,21 @@ def main(): else: dihedral_coeffs_defined = in_dihedral_coeffs_defined + dihedral_types_have_wildcards = False dihedral_bindings = static_tree_root.categories[ 'dihedral'].bindings for nd, dihedral_binding in dihedral_bindings.items(): if not nd.IsDeleted(): + has_wildcard = HasWildcard(dihedral_binding.full_name) + if has_wildcard: + dihedral_types_have_wildcards = True + for nd, dihedral_binding in dihedral_bindings.items(): + if not nd.IsDeleted(): + #has_wildcard = HasWildcard(dihedral_binding.full_name) if ((not (dihedral_binding in dihedral_coeffs_defined)) and - #(not HasWildCard(dihedral_binding.full_name)) and - (not ('*' in dihedral_coeffs_defined))): + #(not has_wildcard) and + (not dihedral_types_have_wildcards) and + (not ('*' in dihedral_coeffs_defined))): raise InputError('---------------------------------------------------------------------\n' + ' Syntax error: Missing dihedral coeff.\n\n' + ' No coeffs for the \"' + dihedral_binding.full_name + '\" dihedral type have been\n' + @@ -2190,13 +2242,21 @@ def main(): else: improper_coeffs_defined = in_improper_coeffs_defined + improper_types_have_wildcards = False improper_bindings = static_tree_root.categories[ 'improper'].bindings for nd, improper_binding in improper_bindings.items(): if not nd.IsDeleted(): + has_wildcard = HasWildcard(improper_binding.full_name) + if has_wildcard: + improper_types_have_wildcards = True + for nd, improper_binding in improper_bindings.items(): + if not nd.IsDeleted(): + #has_wildcard = HasWildcard(improper_binding.full_name) if ((not (improper_binding in improper_coeffs_defined)) and - #(not HasWildCard(improper_binding.full_name)) and - (not ('*' in improper_coeffs_defined))): + #(not has_wildcard) and + (not improper_types_have_wildcards) and + (not ('*' in improper_coeffs_defined))): raise InputError('---------------------------------------------------------------------\n' + ' Syntax error: Missing improper coeff.\n\n' + ' No coeffs for the \"' + improper_binding.full_name + '\" improper type have been\n' + @@ -2210,7 +2270,7 @@ def main(): if 'atom' in static_tree_root.categories: if ((len(data_pair_coeffs_defined) > 0) and - (len(in_pair_coeffs_defined) > 0)): + (len(in_pair_coeffs_defined) > 0)): raise InputError('---------------------------------------------------------------------\n' + ' Syntax error: You can EITHER use \"pair_coeff\" commands\n' + ' OR you can have a \"Data Pair Coeffs\" section.\n' + @@ -2225,13 +2285,21 @@ def main(): else: pair_coeffs_defined = in_pair_coeffs_defined + atom_types_have_wildcards = False atom_bindings = static_tree_root.categories['atom'].bindings for nd, atom_binding in atom_bindings.items(): if not nd.IsDeleted(): + has_wildcard = HasWildcard(atom_binding.full_name) + if has_wildcard: + atom_types_have_wildcards = True + for nd, atom_binding in atom_bindings.items(): + if not nd.IsDeleted(): + #has_wildcard = HasWildcard(atom_binding.full_name) if ((not ((atom_binding, atom_binding) in pair_coeffs_defined)) and - (not HasWildCard(atom_binding.full_name)) and + #(not has_wildcard) and + (not atom_types_have_wildcards) and (not (('*', '*') in pair_coeffs_defined)) and (not (atom_binding.nptr.cat_name, atom_binding.nptr.cat_node, diff --git a/tools/moltemplate/moltemplate/lttree_postprocess.py b/tools/moltemplate/moltemplate/lttree_postprocess.py index 1bb985361f..41eb8ed858 100755 --- a/tools/moltemplate/moltemplate/lttree_postprocess.py +++ b/tools/moltemplate/moltemplate/lttree_postprocess.py @@ -16,14 +16,14 @@ import sys try: from .lttree_styles import * from .ttree_lex import ExtractCatName -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from lttree_styles import * from ttree_lex import ExtractCatName g_program_name = __file__.split('/')[-1] # = 'lttree_postprocess.py' -g_version_str = '0.5.0' -g_date_str = '2016-12-21' +g_version_str = '0.5.1' +g_date_str = '2017-8-23' def main(): atom_style = 'full' diff --git a/tools/moltemplate/moltemplate/lttree_styles.py b/tools/moltemplate/moltemplate/lttree_styles.py index adeb1de749..5691aaddf6 100644 --- a/tools/moltemplate/moltemplate/lttree_styles.py +++ b/tools/moltemplate/moltemplate/lttree_styles.py @@ -2,6 +2,7 @@ # -*- coding: utf-8 -*- # Author: Andrew Jewett (jewett.aij at g mail) +# http://www.moltemplate.org # http://www.chem.ucsb.edu/~sheagroup # License: 3-clause BSD License (See LICENSE.TXT) # Copyright (c) 2012, Regents of the University of California @@ -9,7 +10,7 @@ try: from .ttree_lex import InputError -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from ttree_lex import InputError diff --git a/tools/moltemplate/moltemplate/nbody_Angles.py b/tools/moltemplate/moltemplate/nbody_Angles.py index e6b2fbff1f..9cc5456b01 100644 --- a/tools/moltemplate/moltemplate/nbody_Angles.py +++ b/tools/moltemplate/moltemplate/nbody_Angles.py @@ -1,6 +1,6 @@ try: from .nbody_graph_search import Ugraph -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from nbody_graph_search import Ugraph diff --git a/tools/moltemplate/moltemplate/nbody_Bonds.py b/tools/moltemplate/moltemplate/nbody_Bonds.py index c11c3e60e2..64c82700b7 100644 --- a/tools/moltemplate/moltemplate/nbody_Bonds.py +++ b/tools/moltemplate/moltemplate/nbody_Bonds.py @@ -1,6 +1,6 @@ try: from .nbody_graph_search import Ugraph -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from nbody_graph_search import Ugraph diff --git a/tools/moltemplate/moltemplate/nbody_Dihedrals.py b/tools/moltemplate/moltemplate/nbody_Dihedrals.py index 9197db9143..86fbdd3414 100644 --- a/tools/moltemplate/moltemplate/nbody_Dihedrals.py +++ b/tools/moltemplate/moltemplate/nbody_Dihedrals.py @@ -1,6 +1,6 @@ try: from .nbody_graph_search import Ugraph -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from nbody_graph_search import Ugraph diff --git a/tools/moltemplate/moltemplate/nbody_Impropers.py b/tools/moltemplate/moltemplate/nbody_Impropers.py index 6b48d9aa19..bbb88bd37f 100644 --- a/tools/moltemplate/moltemplate/nbody_Impropers.py +++ b/tools/moltemplate/moltemplate/nbody_Impropers.py @@ -1,6 +1,6 @@ try: from .nbody_graph_search import Ugraph -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from nbody_graph_search import Ugraph diff --git a/tools/moltemplate/moltemplate/nbody_alt_symmetry/cenIflipJK.py b/tools/moltemplate/moltemplate/nbody_alt_symmetry/cenIflipJK.py new file mode 100644 index 0000000000..d4b7d22b2e --- /dev/null +++ b/tools/moltemplate/moltemplate/nbody_alt_symmetry/cenIflipJK.py @@ -0,0 +1,61 @@ +try: + from ..nbody_graph_search import Ugraph +except: + # not installed as a module + from nbody_graph_search import Ugraph + +# To find 4-body "improper" interactions, +# (by default, most of the time), we would use this subgraph: +# 3 +# * 1st bond connects atoms 0 and 1 +# | => 2nd bond connects atoms 0 and 2 +# _.*._ 3rd bond connects atoms 0 and 3 +# *' 0 `* +# 1 2 +# + +bond_pattern = Ugraph([(0,1), (0,2), (0,3)]) +# (Ugraph atom indices begin at 0, not 1) + + +def canonical_order(match): + """ + When searching for atoms with matching bond patterns GraphMatcher + often returns redundant results. We must define a "canonical_order" + function which sorts the atoms and bonds in a way which is consistent + with the type of N-body interaction being considered. + The atoms (and bonds) in a candidate match are rearranged by the + canonical_order(). Then the re-ordered list of atom and bond ids is + tested against the list of atom/bond ids in the matches-found-so-far, + before it is added to the list of interactions found so far. + (For example, it does not make sense to define a separate 4-body improper- + angle interaction between atoms 0, 1, 2, 3 AND 0, 2, 1, 3. + The "improper angle" is often defined as the angle between planes formed + by atoms 0,1,2 & 1,2,3. Alternately, it may instead be defined as the + angle between the 0,1,2 plane and atom 3. Either way, this angle does + not change when swapping the middle pair of atoms (1 and 2) + (except for a change of sign, which does not matter since the energy functions + used are typically sign invariant. Furthermore, neither of OUTER pair of atoms + are the central atom. There are 3!=6 ways of ordering the remaining 3 atoms.) + Consequently it does not make sense to define a separate 4-body improper- + interaction between atoms 0,1,2,3 AS WELL AS between 0,2,1,3. + So we sort the atoms and bonds so that the first atom has a always has + a lower atomID than the last atom. (Later we will check to see if we + have already defined an interaction between these 4 atoms. If not then + we create a new one.) + + """ + atom0 = match[0][0] + atom1 = match[0][1] + atom2 = match[0][2] + atom3 = match[0][3] + # match[1][0:2] contains the ID numbers for the 3 bonds + bond0 = match[1][0] + bond1 = match[1][1] + bond2 = match[1][2] + if atom1 <= atom2: + #return ((atom0,atom1,atom2,atom3), (bond0, bond1, bond2)) + # But this is the same thing as: + return match + else: + return ((atom0,atom2,atom1,atom3), (bond1, bond0, bond2)) diff --git a/tools/moltemplate/moltemplate/nbody_alt_symmetry/cenJflipIL.py b/tools/moltemplate/moltemplate/nbody_alt_symmetry/cenJflipIL.py new file mode 100644 index 0000000000..b00a2afda8 --- /dev/null +++ b/tools/moltemplate/moltemplate/nbody_alt_symmetry/cenJflipIL.py @@ -0,0 +1,68 @@ +try: + from ..nbody_graph_search import Ugraph +except: + # not installed as a module + from nbody_graph_search import Ugraph + +# To find 4-body "improper" interactions, +# (by default, most of the time), we would use this subgraph: +# 0 +# * 1st bond connects atoms 1 and 0 +# | => 2nd bond connects atoms 1 and 2 +# _.*._ 3rd bond connects atoms 1 and 3 +# *' 1 `* +# 2 3 +# +# In OPLS, the central atom is the second atom ("1"). +# This differs from other force-fields. +# We take this detail into account in the line below: + +bond_pattern = Ugraph([(1,0), (1,2), (1,3)]) + +# As with other force-fields, the improper-angle is the angle between the planes +# defined by the first three atoms (0,1,2) and last three atoms (1,2,3). +# (This is implemented in LAMMPS using an improper_style which requires +# that the atoms in the interaction will be listed in this order: 0,1,2,3.) + +def canonical_order(match): + """ + Before defining a new interaction, we must check to see if an + interaction between these same 4 atoms has already been created + (perhaps listed in a different, but equivalent order). + If we don't check for this this, we will create many unnecessary redundant + interactions (which can slow down he simulation). + To avoid this, I define a "canonical_order" function which sorts the atoms + and bonds in a way which is consistent with the symmetry of the interaction + being generated... Later the re-ordered list of atom and bond ids will be + tested against the list of atom/bond ids in the matches-found-so-far, + before it is added to the list of interactions found so far. Note that + the energy of an improper interactions is a function of the improper angle. + The "improper angle" is often defined as the angle between planes formed + by atoms 0,1,2 & 1,2,3. (Alternately, it is sometimes defined as the + angle between the 0,1,2 plane and atom 3.) + This angle does not change when swapping the OUTER pair of atoms (0 and 3) + (except for a change of sign, which does not matter since the energy functions + used are typically sign invariant. Furthermore, neither of OUTER pair of atoms + are the central atom. There are 3!=6 ways of ordering the remaining 3 atoms.) + Consequently it does not make sense to define a separate 4-body improper- + interaction between atoms 0,1,2,3 AS WELL AS between 3,1,2,0. + So we sort the atoms and bonds so that the first atom has a always has + a lower atomID than the last atom. (Later we will check to see if we + have already defined an interaction between these 4 atoms. If not then + we create a new one.) + + """ + atom0 = match[0][0] + atom1 = match[0][1] + atom2 = match[0][2] + atom3 = match[0][3] + # match[1][0:2] contains the ID numbers for the 3 bonds + bond0 = match[1][0] + bond1 = match[1][1] + bond2 = match[1][2] + if atom0 <= atom3: + #return ((atom0,atom1,atom2,atom3), (bond0, bond1, bond2)) + # But this is the same thing as: + return match + else: + return ((atom3,atom1,atom2,atom0), (bond2,bond1,bond0)) diff --git a/tools/moltemplate/moltemplate/nbody_by_type.py b/tools/moltemplate/moltemplate/nbody_by_type.py index 65b51064c8..1d73b23fb9 100755 --- a/tools/moltemplate/moltemplate/nbody_by_type.py +++ b/tools/moltemplate/moltemplate/nbody_by_type.py @@ -169,7 +169,7 @@ try: from .nbody_by_type_lib import GenInteractions_str from .ttree_lex import * from .lttree_styles import AtomStyle2ColNames, ColNames2AidAtypeMolid -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): from extract_lammps_data import * from nbody_by_type_lib import GenInteractions_str from ttree_lex import * @@ -373,7 +373,7 @@ def GenInteractions_files(lines_data, try: g = importlib.import_module(name, pkg) break - except (SystemError, ImportError): + except (ImportError, SystemError, ValueError): pass if g is None: @@ -513,7 +513,7 @@ def main(): ' (See nbody_Dihedrals.py for example.)\n') bond_pattern_module_name = argv[i + 1] # If the file name ends in ".py", then strip off this suffix. - # For some reason, the next line does not work: + # The next line does not work. Too lazy to care why. # bond_pattern_module_name=bond_pattern_module_name.rstrip('.py') # Do this instead pc = bond_pattern_module_name.rfind('.py') @@ -578,8 +578,8 @@ def main(): ' (The actual problem may be earlier in the argument list.)\n') if ((section_name == '') or - (section_name_bytype == '') or - (bond_pattern_module_name == '')): + (section_name_bytype == '') or + (bond_pattern_module_name == '')): raise InputError('Syntax Error(' + g_program_name + '):\n\n' ' You have not defined the following arguments:\n' ' -section name\n' diff --git a/tools/moltemplate/moltemplate/nbody_by_type_lib.py b/tools/moltemplate/moltemplate/nbody_by_type_lib.py index b8011a80d5..da5a3b0452 100644 --- a/tools/moltemplate/moltemplate/nbody_by_type_lib.py +++ b/tools/moltemplate/moltemplate/nbody_by_type_lib.py @@ -30,7 +30,7 @@ from collections import defaultdict try: from .nbody_graph_search import Ugraph, GraphMatcher from .ttree_lex import MatchesPattern, MatchesAll, InputError -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from nbody_graph_search import Ugraph, GraphMatcher from ttree_lex import MatchesPattern, MatchesAll, InputError diff --git a/tools/moltemplate/moltemplate/nbody_fix_ttree_assignments.py b/tools/moltemplate/moltemplate/nbody_fix_ttree_assignments.py index a975eb1b79..d92cc87904 100755 --- a/tools/moltemplate/moltemplate/nbody_fix_ttree_assignments.py +++ b/tools/moltemplate/moltemplate/nbody_fix_ttree_assignments.py @@ -46,7 +46,7 @@ import sys try: from .ttree_lex import SplitQuotedString, InputError -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from ttree_lex import * diff --git a/tools/moltemplate/moltemplate/nbody_reorder_atoms.py b/tools/moltemplate/moltemplate/nbody_reorder_atoms.py index 53a51a38c4..85b8b4e510 100755 --- a/tools/moltemplate/moltemplate/nbody_reorder_atoms.py +++ b/tools/moltemplate/moltemplate/nbody_reorder_atoms.py @@ -63,7 +63,7 @@ def main(): # defines g.bond_pattern, g.canonical_order g = importlib.import_module(name, pkg) break - except (SystemError, ImportError): + except (ImportError, SystemError, ValueError): pass if g is None: diff --git a/tools/moltemplate/moltemplate/postprocess_coeffs.py b/tools/moltemplate/moltemplate/postprocess_coeffs.py new file mode 100755 index 0000000000..439f6dc9c1 --- /dev/null +++ b/tools/moltemplate/moltemplate/postprocess_coeffs.py @@ -0,0 +1,287 @@ +#!/usr/bin/env python + +man_page_text = """ +Usage (example): + +postprocess_coeffs.py ttree_assignments.txt < file.template > file_new.template + +Moltemplate users would like to be able to use commands with wildcards like: + bond_coeff @bond:*/A/* harmonic 533.7 120.0 + pair_coeff @atom:A* @atom:B* lj/cut 0.35 2.7 +as shorthand for specifying force field parameters for multiple atom&bond types: + bond_coeff @bond:a/A/c harmonic 533.7 120.0 + bond_coeff @bond:b/A/d harmonic 533.7 120.0 + pair_coeff @atom:A* @atom:B* lj/cut 0.35 2.7 + pair_coeff @atom:A @atom:B lj/cut 0.35 2.7 + pair_coeff @atom:A1 @atom:B1 lj/cut 0.35 2.7 + pair_coeff @atom:A1 @atom:B2 lj/cut 0.35 2.7 + pair_coeff @atom:A2 @atom:B1 lj/cut 0.35 2.7 + pair_coeff @atom:A2 @atom:B2 lj/cut 0.35 2.7 + : : : : : : +However LAMMPS does not interpret the * character this way. +Hence, this script will replace the line with the * wildcards above with the +lines text that follow above. This script also works for bond_coeff, +angle_coeff, dihedral_coeff, and improper_coeff commands (expanding wildcard +characters appearing in @bond, @angle, @dihedral, and @improper variables). + +This program expects an argument (ttree_assignments.txt) which has a list of all +of the atom types (and bond_types, and angle_types...) which have been defined +and it will substitute those variable names in place of the wildcard expressions +(The ttree_assignments.txt file is a 2-column file variables in the 1st column, + and their integer values in the 2nd column. The 2nd column is ignored.) + +The resulting list of commands with explicit variable names will be +printed to the standard-out. + +""" + + +import sys +import gc + +try: + from .ttree import ExtractFormattingCommands + from .ttree_lex import * + +except (ImportError, SystemError, ValueError): + # not installed as a package + from ttree import ExtractFormattingCommands + from ttree_lex import * + + +g_filename = __file__.split('/')[-1] +g_module_name = g_filename +if g_filename.rfind('.py') != -1: + g_module_name = g_filename[:g_filename.rfind('.py')] +g_date_str = '2018-6-09' +g_version_str = '0.2.0' +g_program_name = g_filename +#sys.stderr.write(g_program_name+' v'+g_version_str+' '+g_date_str+' ') + + +def ExtractVarName(text): + """ Read a string like 'atom:A ' or '{/atom:A B/C/../D }ABC ' + and return ('','@atom:A',' ') or ('{','atom:A B/C/../D ','}ABC') + These are 3-tuples containing the portion of the text containing + only the variable's name (assumed to be within the text), + ...in addition to the text on either side of the variable name. + """ + i_begin = 0 + escape = '\'' + lparen = '{' + rparen = '}' + escaped = False + commenters = '#' + whitespace = ' \t\r\f\n' + terminators = whitespace + commenters + # Ideally, perhaps I should lookup these values from ttree_lex.TtreeLex to + # make sure I am being consistent, instead of re-defining them in this file. + #while ((i_begin < len(text)) and + # (text[i_begin] in whitespace)): + # i_begin += 1 + in_paren = text[i_begin:i_begin+1] == lparen + if in_paren: + terminators = rparen + i_begin += 1 + i_end = i_begin + while ((i_end < len(text)) and + (text[i_end] not in terminators)): + i_end += 1 + return (text[0: i_begin], + text[i_begin:i_end], + text[i_end:]) + + + +def main(): + try: + if (len(sys.argv) != 2): + raise InputError('Error running \"' + g_program_name + '\"\n' + ' Typical usage:\n' + ' postprocess_coeffs.py ttree_assignments.txt < file.template > file.rendered\n' + '\n' + ' Missing argument.\n' + ' Expected the name of a 2-column file containing\n' + ' variable names and their bindings (values).\n' + ' (This is likely a programmer error.\n' + ' This script was not intended to be run by end users.)\n') + + bindings_filename = sys.argv[1] + f = open(bindings_filename) + atom_types = set([]) + bond_types = set([]) + angle_types = set([]) + dihedral_types = set([]) + improper_types = set([]) + + #BasicUIReadBindingsStream(assignments, f, bindings_filename) + + # The line above is robust but it uses far too much memory. + # This for loop below works for most cases. + for line in f: + #tokens = lines.strip().split() + # like split but handles quotes + tokens = SplitQuotedString(line.strip()) + if len(tokens) < 2: + continue + if tokens[0].find('@') != 0: + continue + if tokens[0][2:].find('atom') == 0: + atom_types.add(tokens[0][1:]) + elif tokens[0][2:].find('bond') == 0: + bond_types.add(tokens[0][1:]) + elif tokens[0][2:].find('angle') == 0: + angle_types.add(tokens[0][1:]) + elif tokens[0][2:].find('dihedral') == 0: + dihedral_types.add(tokens[0][1:]) + elif tokens[0][2:].find('improper') == 0: + improper_types.add(tokens[0][1:]) + + f.close() + gc.collect() + + lex = LineLex(sys.stdin, '__standard_input_for_postprocess_coeffs__') + #lex = LineLex(open('deleteme.template', 'r'), '__standard_input_for_postprocess_coeffs_') + lex.commenters = '' #(don't attempt to skip over comments) + lex.line_extend_chars += '&' #(because LAMMPS interprets '&' as '\') + + while True: + line_orig = lex.ReadLine() + #sys.stderr.write('line_orig = \"'+str(line_orig)+'\"\n') + if (not line_orig) or (line_orig == ''): + break + tokens = line_orig.strip().split('@') + + if ((len(tokens) >= 2) and + (tokens[0].find('bond_coeff') == 0) and + #does this token contain '*' or '?' + HasWildcard(tokens[1]) and + (tokens[1][0:1] != '{')): #(don't pattern match * in {})?' + left_paren, typepattern, text_after = ExtractVarName(tokens[1]) + for btype in bond_types: + if MatchesPattern(btype, typepattern): + #assert(left_paren == '') + tokens[1] = btype + text_after + sys.stdout.write('@'.join(tokens) + '\n') + + elif ((len(tokens) >= 2) and + (tokens[0].find('angle_coeff') == 0) and + #does this token contain '*' or '?' + HasWildcard(tokens[1]) and + (tokens[1][0:1] != '{')): + left_paren, typepattern, text_after = ExtractVarName(tokens[1]) + for antype in angle_types: + if MatchesPattern(antype, typepattern): + #assert(left_paren == '') + tokens[1] = antype + text_after + sys.stdout.write('@'.join(tokens) + '\n') + + elif ((len(tokens) >= 2) and + (tokens[0].find('dihedral_coeff') == 0) and + #does this token contain '*' or '?' + HasWildcard(tokens[1]) and + (tokens[1][0:1] != '{')): #(don't pattern match * in {}) + left_paren, typepattern, text_after = ExtractVarName(tokens[1]) + for dtype in dihedral_types: + if MatchesPattern(dtype, typepattern): + #assert(left_paren == '') + tokens[1] = dtype + text_after + sys.stdout.write('@'.join(tokens) + '\n') + + elif ((len(tokens) >= 2) and + (tokens[0].find('improper_coeff') == 0) and + #does this token contain '*' or '?' + HasWildcard(tokens[1]) and + (tokens[1][0:1] != '{')): #(don't pattern match * in {}) + left_paren, typepattern, text_after = ExtractVarName(tokens[1]) + for itype in improper_types: + if MatchesPattern(itype, typepattern): + #assert(left_paren == '') + tokens[1] = itype + text_after + sys.stdout.write('@'.join(tokens) + '\n') + + #elif ((len(tokens) >= 3) and + # (tokens[0].find('pair_coeff') == 0) and + # (HasWildcard(tokens[1]) or HasWildcard(tokens[2]))): + elif ((len(tokens) >= 2) and + (tokens[0].find('pair_coeff') == 0)): + # First deal with cases with only one @variable, such as: + # pair_coeff @atom:A* * ... + # pair_coeff * @atom:A* ... + # (We don't deal with cases like "* *" because LAMMPS interprets + # these in a special way: manybody pair_styles use "* *") + if len(tokens) == 2: + if tokens[0].rstrip()[-1:] == '*': + tokens[0] = tokens[0].rstrip()[:-1] + tokens.insert(1, '/atom:* ') + else: + ic = tokens[1].find(' * ') + tokens.append('/atom:* '+tokens[1][ic+3:]) + tokens[1] = tokens[1][:ic]+' ' + + assert(len(tokens) >= 3) + left_paren1,typepattern1,text_after1=ExtractVarName(tokens[1]) + + # Then deal with cases like this: + # pair_coeff @{/atom:r1}*@{/atom:r3} @{/atom:r4}*@{/atom:r6} + # In this case we should be using ' ' as the delimeter, not '@' + # to separate the two arguments from eachother, since + # @{/atom:r1}*@{/atom:r3} is the first argument, and + # @{/atom:r4}*@{/atom:r6} is the second argument + + # Check: Were there any whitespace characters in the text + # separating token[1] from token[2]? + if ((left_paren1 == '{') and + (len(SplitQuotedString(text_after1)) == 1)): + # If not, then tokens[1] and tokens[2] are both part of + # the 1st argument. + tokens[1] = tokens[1]+'@'+tokens[2] + left_paren1 = '' + text_after1 = '' + typepattern1 = tokens[1] + del tokens[2] + + left_paren2,typepattern2,text_after2=ExtractVarName(tokens[2]) + # Check: Were there any whitespace characters in the text + # separating token[2] from what follows? + if ((len(tokens) > 3) and + (len(SplitQuotedString(text_after2)) == 1)): + # If not, then tokens[2] and tokens[3] are both part of + # the 2nd argument. + tokens[2] = tokens[2]+'@'+tokens[3] + left_paren2 = '' + text_after2 = '' + typepattern2 = tokens[2] + del tokens[3] + if (HasWildcard(tokens[1]) and + (tokens[1][0:1] != '{')): #(don't pattern match * in {}) + atom_types1 = atom_types + else: + atom_types1 = set([typepattern1]) + if (HasWildcard(tokens[2]) and + (tokens[2][0:1] != '{')): #(don't pattern match * in {}) + atom_types2 = atom_types + else: + atom_types2 = set([typepattern2]) + for atype1 in atom_types1: + #sys.stderr.write('atype1 = \"'+str(atype1)+'\"\n') + if MatchesPattern(atype1, typepattern1): + #assert(left_paren1 == '') + tokens[1] = left_paren1 + atype1 + text_after1 + for atype2 in atom_types2: + #sys.stderr.write(' atype2 = \"'+str(atype2)+'\"\n') + if MatchesPattern(atype2, typepattern2): + #assert(left_paren2 == '') + tokens[2] = left_paren2 + atype2 + text_after2 + sys.stdout.write('@'.join(tokens) + '\n') + else: + sys.stdout.write(line_orig) + + except (ValueError, InputError) as err: + sys.stderr.write('\n' + str(err) + '\n') + sys.exit(-1) + + return + +if __name__ == '__main__': + main() diff --git a/tools/moltemplate/moltemplate/postprocess_input_script.py b/tools/moltemplate/moltemplate/postprocess_input_script.py index b23f4e955f..f237502e57 100755 --- a/tools/moltemplate/moltemplate/postprocess_input_script.py +++ b/tools/moltemplate/moltemplate/postprocess_input_script.py @@ -1,4 +1,8 @@ #!/usr/bin/env python +# Author: Andrew Jewett (jewett.aij at g mail) +# License: 3-clause BSD License (See LICENSE.TXT) +# Copyright (c) 2017, California Institute of Technology +# All rights reserved. """ Reorder the integer arguments to the commands in a LAMMPS input diff --git a/tools/moltemplate/moltemplate/raw2data.py b/tools/moltemplate/moltemplate/raw2data.py index 8f029ee018..b39208a33f 100755 --- a/tools/moltemplate/moltemplate/raw2data.py +++ b/tools/moltemplate/moltemplate/raw2data.py @@ -1,17 +1,21 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import sys, io + try: from .dump2data import * -except: + from .extract_lammps_data import lammps_data_sections +except (ImportError, SystemError, ValueError): # not installed as a package from dump2data import * + from extract_lammps_data import lammps_data_sections g_program_name = 'raw2data.py' g_date_str = '2016-12-21' g_version_str = 'v0.44.0' -####### Main Code Below: ####### + ####### Main Code Below: ####### def main(): sys.stderr.write(g_program_name + ' ' + g_version_str + ' ' + g_date_str) sys.stderr.write('\n') @@ -21,12 +25,64 @@ def main(): misc_settings = MiscSettings() misc_settings.multi = False + # First process any arguments which are specific to "raw2data.py" + # (and remove them before passing them to dump2data.ParseArgs()) + sort_data_file_by_atom_id = False + argv = [arg for arg in sys.argv] + i = 1 + while i < len(argv): + if argv[i].lower() == '-ignore-atom-id': + sort_data_file_by_atom_id = True + del argv[i:i+1] + if argv[i].lower() == '-sort': + sort_data_file_by_atom_id = False + del argv[i:i+1] + else: + i += 1 + #(perhaps later I'll add some additional argumets) + warning_strings = [] - ParseArgs(sys.argv, + ParseArgs(argv, misc_settings, data_settings, warning_strings) + frame_atom_order = [] + + # The atoms in the "Atoms" section of the data file might be out + # of order. Extract the text from that section, and figure out the + # atom-ID assigned to each atom (number in the first column). + # Then assign the these atom-ID numbers to entries in the + # coordinates list (frame_coords) in the same order. We want the + # lines of text in the coordinate file to pasted to the end of + # the lines of text in the "Atoms" section of the data file + # in the same order, regardless of the atom-ID numbers in that file. + # Counterintuitively, the only way to do that is to assign the same + # atom-ID numbers to the coordinate list in frame_coords". So we + # have to extract those numbers from the data file. + in_atoms_section = False + num_blank_lines = 0 + for line in data_settings.contents: + ic = line.find('#') + line = line[:ic] #(this also removes the newline character) + tokens = line.strip().split() + if line.strip() == 'Atoms': + in_atoms_section = True + elif line.strip() in lammps_data_sections: + in_atoms_section = False + elif in_atoms_section: + if len(tokens) > 0: + if sort_data_file_by_atom_id: + atomid = tokens[0] + frame_atom_order.append(atomid) + #sys.stderr.write('atomid=\"'+str(atomid)+'\"\n') + else: + frame_atom_order.append(str(len(frame_atom_order)+1)) + else: + num_blank_lines += 1 + if num_blank_lines > 1: + in_atoms_section = False + frame_coords = defaultdict(list) frame_coords_ixiyiz = defaultdict(list) frame_vects = defaultdict(list) @@ -48,8 +104,8 @@ def main(): finished_reading_frame = False read_last_frame = False - #in_coord_file = open('tmp_atom_coords.dat','r') in_coord_file = sys.stdin + #in_coord_file = open('tmp_atom_coords.dat','r') read_last_frame = False while True: @@ -61,11 +117,13 @@ def main(): if line == '': # if EOF break + #frame_vects = defaultdict(list) frame_coords = defaultdict(list) while line.strip() != '': n_crds = len(frame_coords) #sys.stdout.write("n_crds="+str(n_crds)+": \""+line.strip()+"\"\n") - frame_coords[str(n_crds + 1)] = line.split() + frame_coords[frame_atom_order[n_crds]] = line.split() + #frame_vects[frame_atom_order[n_crds]] = ['0.0','0.0','0.0'] line = in_coord_file.readline() # Check to see if there are any blank lines at this location in the file @@ -91,6 +149,7 @@ def main(): None, misc_settings, data_settings, + None, frame_natoms, frame_coords, frame_coords_ixiyiz, diff --git a/tools/moltemplate/moltemplate/scripts/cleanup_moltemplate.sh b/tools/moltemplate/moltemplate/scripts/cleanup_moltemplate.sh index e5375674ae..5ffce30739 100755 --- a/tools/moltemplate/moltemplate/scripts/cleanup_moltemplate.sh +++ b/tools/moltemplate/moltemplate/scripts/cleanup_moltemplate.sh @@ -1,3 +1,5 @@ +#!/usr/bin/env bash + # cleanup_moltemplate.sh # This script attempts to remove irrelevant information from LAMMPS # input scripts and data files (such as extra, unneeded atom types @@ -71,16 +73,29 @@ moltemplate.sh system.lt # This will create: "system.data" "system.in.init" "system.in.settings." - # That's it. The new "system.data" and system.in.* files should + # That's it. The new "system.data" and system.in.settings files should # be ready to run in LAMMPS. + # Special case: "set" commands + # Typically "set type" or "set atom" commands are used to assign atom charge + # If there is a "system.in.charges" file, then it contains these commands + # however the atom type numbers will be wrong, so we must rewrite it. + # Replace it with the corresponding commands from the system.in.settings + # (whose atom type numbers are correct) + if [ -f "../system.in.charges" ]; then + awk '{ if ((NF >= 5) && ($1 == "set") && ($4 == "charge")) print $0}' \ + < system.in.settings > system.in.charges + # There is no need to remove these lines from "system.in.settings", + # (because there's no harm to invoke the "set" command twice) + # ...but if you want to do that, try using a command similar to: + #sed '/set type/,+1 d' < system.in.settings > system.in.settings.tmp + #mv -f system.in.settings.tmp system.in.settings + fi + + # Now move the system.data and system.in.* files to their original location: mv -f system.data system.in.* ../ cd ../ - grep "set type" system.in.settings > system.in.charges - # now remove these lines from system.in.settings - sed '/set type/,+1 d' < system.in.settings > system.in.settings.tmp - mv -f system.in.settings.tmp system.in.settings # Finally, delete all of the temporary files we generated rm -rf new_lt_file_TMP diff --git a/tools/moltemplate/moltemplate/scripts/emoltemplate.sh b/tools/moltemplate/moltemplate/scripts/emoltemplate.sh index eaba9c4960..e72d2d9e29 100755 --- a/tools/moltemplate/moltemplate/scripts/emoltemplate.sh +++ b/tools/moltemplate/moltemplate/scripts/emoltemplate.sh @@ -10,8 +10,8 @@ # All rights reserved. G_PROGRAM_NAME="emoltemplate.sh" -G_VERSION="1.0.5" -G_DATE="2017-2-01" +G_VERSION="1.1.0" +G_DATE="2018-6-26" echo "${G_PROGRAM_NAME} v${G_VERSION} ${G_DATE}" >&2 echo "" >&2 @@ -37,7 +37,6 @@ PY_SCR_DIR=`dirname "$0"` if [ ! -s "${PY_SCR_DIR}/ttree.py" ]; then PY_SCR_DIR="$PY_SCR_DIR/.." fi -MOLTEMPLATE_SCRIPT_DIR="$SCRIPT_DIR/../moltemplate/src" MSG_BAD_INSTALL=$(cat < "${data_atoms}.template.minimal"; then exit 4 @@ -599,7 +598,7 @@ if [ -s "${data_bond_list}.template" ]; then echo "Looking up bond types according to atom type" >&2 #-- Generate a file containing bondid bondtype atomid1 atomid2 -- - if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/bonds_by_type.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/bonds_by_type.py" \ -atom-style "id type" \ -atoms "${data_atoms}.template.minimal" \ -bond-list "${data_bond_list}.template.minimal" \ @@ -641,7 +640,7 @@ if [ -s "${data_bond_list}.template" ]; then ## The next 2 lines extract the variable names from data_new.template.tmp ## and instert them into the appropriate place in ttree_assignments.txt ## (renumbering the relevant variable-assignments to avoid clashes). - #if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/nbody_fix_ttree_assignments.py" \ + #if ! $PYTHON_COMMAND "${PY_SCR_DIR}/nbody_fix_ttree_assignments.py" \ # '/bond' gen_bonds.template.tmp \ # < ttree_assignments.txt \ # > ttree_assignments.tmp; then @@ -659,7 +658,7 @@ if [ -s "${data_bond_list}.template" ]; then # names present in the .template file. (We want to convert the file from # a .template format into an ordinary (numeric) LAMMPS data-section format.) - if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/ttree_render.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/ttree_render.py" \ ttree_assignments.txt \ < "${data_bonds}.template" \ > "$data_bonds"; then @@ -695,10 +694,10 @@ for FILE in "$data_angles_by_type"*.template; do SUBGRAPH_SCRIPT="nbody_Angles.py" else echo "(using the rules in \"$SUBGRAPH_SCRIPT\")" >&2 - #if [ ! -s "${MOLTEMPLATE_SCRIPT_DIR}/nbody_alt_symmetry/$SUBGRAPH_SCRIPT" ]; then + #if [ ! -s "${PY_SCR_DIR}/nbody_alt_symmetry/$SUBGRAPH_SCRIPT" ]; then # echo "Error: File \"$SUBGRAPH_SCRIPT\" not found.\n" >&2 # echo " It should be located in this directory:\n" >&2 - # echo " ${MOLTEMPLATE_SCRIPT_DIR}/nbody_alt_symmetry/\n" >&2 + # echo " ${PY_SCR_DIR}/nbody_alt_symmetry/\n" >&2 # exit 4 #fi fi @@ -708,7 +707,7 @@ for FILE in "$data_angles_by_type"*.template; do # The first step is to strip out the espresso-specific junk from each # section so we end up with a simple multi-column file containing only # the symbols we care about (which identify atom ids, atom and bond types) - if ! $PYTHON_COMMAND "${SCRIPT_DIR}/extract_espresso_atom_types.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/extract_espresso_atom_types.py" \ < "${data_atoms}.template" \ > "${data_atoms}.template.minimal"; then exit 4 @@ -721,7 +720,7 @@ for FILE in "$data_angles_by_type"*.template; do < "${data_bonds}.template" \ > "${data_bonds}.template.minimal" - if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/nbody_by_type.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/nbody_by_type.py" \ -subgraph "${SUBGRAPH_SCRIPT}" \ -section "Angles" \ -sectionbytype "Angles By Type" \ @@ -767,7 +766,7 @@ for FILE in "$data_angles_by_type"*.template; do ## The next 2 lines extract the variable names from data_new.template.tmp ## and instert them into the appropriate place in ttree_assignments.txt ## (renumbering the relevant variable-assignments to avoid clashes). - #if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/nbody_fix_ttree_assignments.py" \ + #if ! $PYTHON_COMMAND "${PY_SCR_DIR}/nbody_fix_ttree_assignments.py" \ # '/angle' gen_angles.template.tmp \ # < ttree_assignments.txt \ # > ttree_assignments.tmp; then @@ -781,7 +780,7 @@ for FILE in "$data_angles_by_type"*.template; do # names present in the .template file. (We want to convert the file from # a .template format into an ordinary (numeric) LAMMPS data-section format) - if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/ttree_render.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/ttree_render.py" \ ttree_assignments.txt \ < "$data_angles.template" \ > "$data_angles"; then @@ -815,10 +814,10 @@ for FILE in "$data_dihedrals_by_type"*.template; do SUBGRAPH_SCRIPT="nbody_Dihedrals.py" else echo "(using the rules in \"$SUBGRAPH_SCRIPT\")" >&2 - #if [ ! -s "${MOLTEMPLATE_SCRIPT_DIR}/nbody_alt_symmetry/$SUBGRAPH_SCRIPT" ]; then + #if [ ! -s "${PY_SCR_DIR}/nbody_alt_symmetry/$SUBGRAPH_SCRIPT" ]; then # echo "Error: File \"$SUBGRAPH_SCRIPT\" not found.\n" >&2 # echo " It should be located in this directory:\n" >&2 - # echo " ${MOLTEMPLATE_SCRIPT_DIR}/nbody_alt_symmetry/\n" >&2 + # echo " ${PY_SCR_DIR}/nbody_alt_symmetry/\n" >&2 # exit 4 #fi fi @@ -828,7 +827,7 @@ for FILE in "$data_dihedrals_by_type"*.template; do # The first step is to strip out the espresso-specific junk from each # section so we end up with a simple multi-column file containing only # the symbols we care about (which identify atom ids, atom and bond types) - if ! $PYTHON_COMMAND "${SCRIPT_DIR}/extract_espresso_atom_types.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/extract_espresso_atom_types.py" \ < "${data_atoms}.template" \ > "${data_atoms}.template.minimal"; then exit 4 @@ -841,7 +840,7 @@ for FILE in "$data_dihedrals_by_type"*.template; do < "${data_bonds}.template" \ > "${data_bonds}.template.minimal" - if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/nbody_by_type.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/nbody_by_type.py" \ -subgraph "${SUBGRAPH_SCRIPT}" \ -section "Dihedrals" \ -sectionbytype "Dihedrals By Type" \ @@ -887,7 +886,7 @@ for FILE in "$data_dihedrals_by_type"*.template; do ## The next 2 lines extract the variable names from data_new.template.tmp ## and instert them into the appropriate place in ttree_assignments.txt ## (renumbering the relevant variable-assignments to avoid clashes). - #if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/nbody_fix_ttree_assignments.py" \ + #if ! $PYTHON_COMMAND "${PY_SCR_DIR}/nbody_fix_ttree_assignments.py" \ # '/dihedral' gen_dihedrals.template.tmp \ # < ttree_assignments.txt \ # > ttree_assignments.tmp; then @@ -901,7 +900,7 @@ for FILE in "$data_dihedrals_by_type"*.template; do # names present in the .template file. (We want to convert the file from # a .template format into an ordinary (numeric) LAMMPS data-section format) - if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/ttree_render.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/ttree_render.py" \ ttree_assignments.txt \ < "$data_dihedrals.template" \ > "$data_dihedrals"; then @@ -938,10 +937,10 @@ for FILE in "$data_impropers_by_type"*.template; do SUBGRAPH_SCRIPT="nbody_Impropers.py" else echo "(using the rules in \"$SUBGRAPH_SCRIPT\")" >&2 - #if [ ! -s "${MOLTEMPLATE_SCRIPT_DIR}/nbody_alt_symmetry/$SUBGRAPH_SCRIPT" ]; then + #if [ ! -s "${PY_SCR_DIR}/nbody_alt_symmetry/$SUBGRAPH_SCRIPT" ]; then # echo "Error: File \"$SUBGRAPH_SCRIPT\" not found.\n" >&2 # echo " It should be located in this directory:\n" >&2 - # echo " ${MOLTEMPLATE_SCRIPT_DIR}/nbody_alt_symmetry/\n" >&2 + # echo " ${PY_SCR_DIR}/nbody_alt_symmetry/\n" >&2 # exit 4 #fi fi @@ -951,7 +950,7 @@ for FILE in "$data_impropers_by_type"*.template; do # The first step is to strip out the espresso-specific junk from each # section so we end up with a simple multi-column file containing only # the symbols we care about (which identify atom ids, atom and bond types) - if ! $PYTHON_COMMAND "${SCRIPT_DIR}/extract_espresso_atom_types.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/extract_espresso_atom_types.py" \ < "${data_atoms}.template" \ > "${data_atoms}.template.minimal"; then exit 4 @@ -964,7 +963,7 @@ for FILE in "$data_impropers_by_type"*.template; do < "${data_bonds}.template" \ > "${data_bonds}.template.minimal" - if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/nbody_by_type.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/nbody_by_type.py" \ -subgraph "${SUBGRAPH_SCRIPT}" \ -section "Impropers" \ -sectionbytype "Impropers By Type" \ @@ -1012,7 +1011,7 @@ for FILE in "$data_impropers_by_type"*.template; do ## The next 2 lines extract the variable names from data_new.template.tmp ## and instert them into the appropriate place in ttree_assignments.txt ## (renumbering the relevant variable-assignments to avoid clashes). - #if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/nbody_fix_ttree_assignments.py" \ + #if ! $PYTHON_COMMAND "${PY_SCR_DIR}/nbody_fix_ttree_assignments.py" \ # '/improper' gen_impropers.template.tmp \ # < ttree_assignments.txt \ # > ttree_assignments.tmp; then @@ -1026,7 +1025,7 @@ for FILE in "$data_impropers_by_type"*.template; do # names present in the .template file. (We want to convert the file from # a .template format into an ordinary (numeric) LAMMPS data-section format) - if ! $PYTHON_COMMAND "${MOLTEMPLATE_SCRIPT_DIR}/ttree_render.py" \ + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/ttree_render.py" \ ttree_assignments.txt \ < "$data_impropers.template" \ > "$data_impropers"; then @@ -1216,7 +1215,6 @@ if [ -s "$data_atoms" ]; then cat "$data_atoms" >> "$OUT_FILE_TCL" fi - if [ -s "$tmp_atom_coords" ]; then rm -f "$OUT_FILE_COORDS" awk 'BEGIN{natom=0} {if (NF>=3) {print "part " natom " pos " $1 " " $2 " " $3; natom++}}' < "$tmp_atom_coords" >> "$OUT_FILE_TCL" diff --git a/tools/moltemplate/moltemplate/scripts/moltemplate.sh b/tools/moltemplate/moltemplate/scripts/moltemplate.sh index 870ab9c8cc..5e7fd2321c 100755 --- a/tools/moltemplate/moltemplate/scripts/moltemplate.sh +++ b/tools/moltemplate/moltemplate/scripts/moltemplate.sh @@ -3,15 +3,14 @@ # # Author: Andrew Jewett (jewett.aij at g mail) # http://www.moltemplate.org -# http://jensenlab.caltech.edu # http://www.chem.ucsb.edu/~sheagroup # License: 3-clause BSD License (See LICENSE.txt) # Copyright (c) 2012, Regents of the University of California # All rights reserved. G_PROGRAM_NAME="moltemplate.sh" -G_VERSION="2.3.7" -G_DATE="2017-8-22" +G_VERSION="2.8.6" +G_DATE="2018-6-27" echo "${G_PROGRAM_NAME} v${G_VERSION} ${G_DATE}" >&2 echo "" >&2 @@ -223,6 +222,7 @@ $data_bonds_by_type* ${data_angles_by_type}* ${data_dihedrals_by_type}* ${data_impropers_by_type}* +$data_charge_by_bond $in_init $in_settings EOF @@ -395,6 +395,20 @@ while [ "$i" -lt "$ARGC" ]; do # Disable syntax checking by undefining LTTREE_CHECK_COMMAND unset LTTREE_CHECK_COMMAND unset LTTREE_POSTPROCESS_COMMAND + elif [ "$A" = "-allow-wildcards" ]; then + # Disable syntax checking by undefining LTTREE_CHECK_COMMAND + if [ -z "$LTTREE_CHECK_ARGS" ]; then + LTTREE_CHECK_ARGS="\"$A\"" + else + LTTREE_CHECK_ARGS="${LTTREE_CHECK_ARGS} \"$A\"" + fi + elif [ "$A" = "-forbid-wildcards" ]; then + # Disable syntax checking by undefining LTTREE_CHECK_COMMAND + if [ -z "$LTTREE_CHECK_ARGS" ]; then + LTTREE_CHECK_ARGS="\"$A\"" + else + LTTREE_CHECK_ARGS="${LTTREE_CHECK_ARGS} \"$A\"" + fi elif [ "$A" = "-checkff" ]; then # Disable syntax checking by undefining LTTREE_CHECK_COMMAND CHECKFF="$A" @@ -529,11 +543,23 @@ while [ "$i" -lt "$ARGC" ]; do fi #echo " (extracting coordinates from \"$PDB_FILE\")" >&2 if grep -q '^ATOM \|^HETATM' "$PDB_FILE"; then + # Extract the coordinates from the PDB file: + + # COMMENTING OUT ("pdbsort.py") + # I used to sort the PDB file by (ChainID,SeqNum,InsertCode) + # and then extract the coordinates from the file. + # This turned out to be inconvenient for users. Instead + # just read the coordinates in the order they appear in the file. + # OLD CODE: # Extract the coords from the "ATOM" records in the PDB file - if ! $PYTHON_COMMAND "${PY_SCR_DIR}/pdbsort.py" < "$PDB_FILE" \ - | awk '/^ATOM |^HETATM/{print substr($0,31,8)" "substr($0,39,8)" "substr($0,47,8)}' > "$tmp_atom_coords"; then - ERR_INTERNAL - fi + #if ! $PYTHON_COMMAND "${PY_SCR_DIR}/pdbsort.py" < "$PDB_FILE" \ + # | awk '/^ATOM |^HETATM/{print substr($0,31,8)" "substr($0,39,8)" "substr($0,47,8)}' > "$tmp_atom_coords"; then + # ERR_INTERNAL + #fi + # NEW CODE (USE THIS INSTEAD): + awk '/^ATOM |^HETATM/{print substr($0,31,8)" "substr($0,39,8)" "substr($0,47,8)}' \ + < "$PDB_FILE" \ + > "$tmp_atom_coords" else echo "$SYNTAX_MSG" >&2 echo "-----------------------" >&2 @@ -681,6 +707,7 @@ fi + OUT_FILE_INPUT_SCRIPT="${OUT_FILE_BASE}.in" OUT_FILE_INIT="${OUT_FILE_BASE}.in.init" OUT_FILE_SETTINGS="${OUT_FILE_BASE}.in.settings" @@ -701,16 +728,14 @@ rm -f "$OUT_FILE_INPUT_SCRIPT" "$OUT_FILE_INIT" "$OUT_FILE_SETTINGS" "$OUT_FILE_ - # If checking is not disabled, then first check for common spelling errors. if [ -n "$LTTREE_CHECK_COMMAND" ]; then - if ! eval $LTTREE_CHECK_COMMAND $TTREE_ARGS; then + if ! eval $LTTREE_CHECK_COMMAND $TTREE_ARGS $LTTREE_CHECK_ARGS; then exit 1 fi fi - # --- Run ttree. --- # # 3, 2, 1, ... @@ -926,11 +951,12 @@ fi - +FILE_angles_by_type1="" +FILE_angles_by_type2="" #for FILE in "$data_angles_by_type"*.template; do IFS_BACKUP="$IFS" IFS=$(echo -en "\n\b") -for FILE in `ls -v "$data_angles_by_type"*.template`; do +for FILE in `ls -v "$data_angles_by_type"*.template 2> /dev/null`; do if [ ! -s "$FILE" ] || [ ! -s "$data_bonds" ]; then break; # This handles with the special cases that occur when @@ -964,6 +990,9 @@ for FILE in `ls -v "$data_angles_by_type"*.template`; do # fi fi + FILE_angles_by_type2="$FILE_angles_by_type1" + FILE_angles_by_type1="$FILE" + #-- Generate a file containing the list of interactions on separate lines -- if ! $PYTHON_COMMAND "${PY_SCR_DIR}/nbody_by_type.py" \ -subgraph "${SUBGRAPH_SCRIPT}" \ @@ -1033,7 +1062,7 @@ FILE_dihedrals_by_type2="" #for FILE in "$data_dihedrals_by_type"*.template; do IFS_BACKUP="$IFS" IFS=$(echo -en "\n\b") -for FILE in `ls -v "$data_dihedrals_by_type"*.template`; do +for FILE in `ls -v "$data_dihedrals_by_type"*.template 2> /dev/null`; do if [ ! -s "$FILE" ] || [ ! -s "$data_bonds" ]; then break; # This handles with the special cases that occur when @@ -1067,7 +1096,7 @@ for FILE in `ls -v "$data_dihedrals_by_type"*.template`; do # fi fi - FILE_dihedrals_by_type2="$FILE_impropers_by_type1" + FILE_dihedrals_by_type2="$FILE_dihedrals_by_type1" FILE_dihedrals_by_type1="$FILE" #-- Generate a file containing the list of interactions on separate lines -- @@ -1138,7 +1167,7 @@ FILE_impropers_by_type2="" #for FILE in "$data_impropers_by_type"*.template; do IFS_BACKUP="$IFS" IFS=$(echo -en "\n\b") -for FILE in `ls -v "$data_impropers_by_type"*.template`; do +for FILE in `ls -v "$data_impropers_by_type"*.template 2> /dev/null`; do if [ ! -s "$FILE" ] || [ ! -s "$data_bonds" ]; then break; # This handles with the special cases that occur when @@ -1238,6 +1267,39 @@ IFS="$IFS_BACKUP" +# Deal with wildcard characters ('*', '?') in "_coeff" commands +# appearing in any LAMMPS input scripts generated by moltemplate. +# Replace them with explicit variable names. Do this before rendering +#if [ -s "${in_settings}.template" ]; then +echo "expanding wildcards in \"_coeff\" commands" >&2 +#ls "${in_prefix}"*.template 2> /dev/null | while read file_name; do +for file_name in "${in_prefix}"*.template; do + + # invoking "postprocess_coeffs.py" can be very slow, so only do it if the + # file contains both _coeff commands and wildcards *,? on the same line: + if ! awk '{if (match($1,/'_coeff/') && match($0,/'[*,?]/')) exit 1}' < "$file_name"; then + + echo "expanding wildcards in \"_coeff\" commands in \"$file_name\"" >&2 + if ! eval $PYTHON_COMMAND "${PY_SCR_DIR}/postprocess_coeffs.py" ttree_assignments.txt < "$file_name" > "${file_name}.tmp"; then + ERR_INTERNAL + fi + + mv -f "${file_name}.tmp" "$file_name" + # Now reassign integers to these variables + bn=`basename "$file_name" .template` + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/ttree_render.py" \ + ttree_assignments.txt \ + < "$file_name" \ + > "$bn"; then + exit 6 + fi + fi +done +#fi + + + + if [ -n "$LTTREE_POSTPROCESS_COMMAND" ]; then echo "" >&2 @@ -1335,9 +1397,34 @@ if [ -s "${data_angles}" ]; then ERR_INTERNAL fi mv -f "${data_angles}.tmp" "${data_angles}" + + if [ ! -z $FILE_angles_by_type2 ]; then + MSG_MULTIPLE_ANGLE_RULES=$(cat <&2 + fi fi + + if [ -s "${data_dihedrals}" ]; then SUBGRAPH_SCRIPT="nbody_Dihedrals.py" if [ -n "$SUBGRAPH_SCRIPT_DIHEDRALS" ]; then @@ -1460,7 +1547,6 @@ fi - # ------------------ Charge By Bond ---------------------- # Assign atom partial charges according to who they are bonded to @@ -1508,7 +1594,6 @@ fi - # ------------------------------------------------------- rm -f "$OUT_FILE_DATA" @@ -1528,6 +1613,9 @@ NIMPROPERS="0" if [ -s "${data_atoms}" ]; then NATOMS=`awk 'END{print NR}' < "${data_atoms}"` fi +if [ -s "${data_ellipsoids}" ]; then + NELLIPSOIDS=`awk 'END{print NR}' < "${data_ellipsoids}"` +fi if [ -s "${data_bonds}" ]; then NBONDS=`awk 'END{print NR}' < "${data_bonds}"` fi @@ -1545,6 +1633,9 @@ fi echo "LAMMPS Description" > "$OUT_FILE_DATA" echo "" >> "$OUT_FILE_DATA" echo " $NATOMS atoms" >> "$OUT_FILE_DATA" +if [ -n "$NELLIPSOIDS" ]; then + echo " $NATOMS ellipsoids" >> "$OUT_FILE_DATA" +fi if [ -n "$NBONDS" ]; then echo " $NBONDS bonds" >> "$OUT_FILE_DATA" fi @@ -1716,6 +1807,9 @@ fi echo "" >> "$OUT_FILE_DATA" + + + if [ -s "$data_masses" ]; then echo "Masses" >> "$OUT_FILE_DATA" echo "" >> "$OUT_FILE_DATA" @@ -1746,6 +1840,7 @@ if [ -n "$PAIR_COEFFS_IN_DATA" ]; then fi + if [ -s "$data_bond_coeffs" ]; then echo "Bond Coeffs" >> "$OUT_FILE_DATA" echo "" >> "$OUT_FILE_DATA" @@ -1992,7 +2087,7 @@ if [ -s "$tmp_atom_coords" ]; then # Copy the coordinates in $tmp_atom_coords into $OUT_FILE_DATA rm -f "$OUT_FILE_COORDS" - if ! eval $PYTHON_COMMAND "${PY_SCR_DIR}/raw2data.py" $ATOM_STYLE_ARG "$OUT_FILE_DATA" < "$tmp_atom_coords" > "$OUT_FILE_COORDS"; then + if ! eval $PYTHON_COMMAND "${PY_SCR_DIR}/raw2data.py -ignore-atom-id " $ATOM_STYLE_ARG "$OUT_FILE_DATA" < "$tmp_atom_coords" > "$OUT_FILE_COORDS"; then ERR_INTERNAL fi mv -f "$OUT_FILE_COORDS" "$OUT_FILE_DATA" @@ -2022,6 +2117,7 @@ fi + # ############## CLEAN UP ################ # A lot of files have been created along the way. @@ -2058,11 +2154,13 @@ IFS=$OIFS + # ############## DEAL WITH CUSTOM NON-STANDARD SECTIONS ################ # N_data_prefix=`expr length "$data_prefix"` <-- not posix compliant. AVOID N_data_prefix=${#data_prefix} #<-- works even if $data_prefix contains spaces +#for file_name in "${data_prefix}"*; do ls "${data_prefix}"* 2> /dev/null | while read file_name; do #If using bash: #SECTION_NAME="${file_name:$N_data_prefix}" @@ -2080,6 +2178,7 @@ ls "${data_prefix}"* 2> /dev/null | while read file_name; do mv -f "$file_name" output_ttree/ done + if [ -e "$data_prefix_no_space" ]; then echo "" >> "$OUT_FILE_DATA" @@ -2098,33 +2197,37 @@ if [ -e "$OUT_FILE_DATA" ]; then fi + + + #N_in_prefix=`expr length "$in_prefix"` <-- not posix compliant. AVOID. N_in_prefix=${#in_prefix} #<-- works even if $in_prefix contains spaces +#for file_name in "${in_prefix}"*; do ls "${in_prefix}"* 2> /dev/null | while read file_name; do #If using bash: #SECTION_NAME="${file_name:$N_in_prefix}" #If using sh: #SECTION_NAME=`expr substr "$file_name" $(($N_in_prefix+1)) 1000000` <-- not posix compliant. AVOID SECTION_NAME=`echo "" | awk "END{print substr(\"$file_name\",$((N_in_prefix+1)),1000000)}"` - FILE_SUFFIX=`echo "$SECTION_NAME" | awk '{print tolower($0)}'` + #FILE_SUFFIX=`echo "$SECTION_NAME" | awk '{print tolower($0)}'` + FILE_SUFFIX=`echo "$SECTION_NAME" | awk '{print tolower($0)}'|sed 's/ /./g'` # Create a new section in the lammps input script # matching the portion of the name of # the file after the in_prefix. - echo "" >> $OUT_FILE_INPUT_SCRIPT + echo "" >> "$OUT_FILE_INPUT_SCRIPT" echo "# ----------------- $SECTION_NAME Section -----------------" >> $OUT_FILE_INPUT_SCRIPT - cp -f "$file_name" ${OUT_FILE_INPUT_SCRIPT}.${FILE_SUFFIX} + cp -f "$file_name" "${OUT_FILE_INPUT_SCRIPT}.${FILE_SUFFIX}" - echo "" >> $OUT_FILE_INPUT_SCRIPT + echo "" >> "$OUT_FILE_INPUT_SCRIPT" echo "include \"${OUT_FILE_INPUT_SCRIPT}.${FILE_SUFFIX}\"" >> $OUT_FILE_INPUT_SCRIPT - echo "" >> $OUT_FILE_INPUT_SCRIPT - + echo "" >> "$OUT_FILE_INPUT_SCRIPT" mv -f "$file_name" output_ttree/ done if [ -e "$in_prefix_no_space" ]; then - echo "" >> $OUT_FILE_INPUT_SCRIPT - cat "$in_prefix_no_space" >> $OUT_FILE_INPUT_SCRIPT - echo "" >> $OUT_FILE_INPUT_SCRIPT + echo "" >> "$OUT_FILE_INPUT_SCRIPT" + cat "$in_prefix_no_space" >> "$OUT_FILE_INPUT_SCRIPT" + echo "" >> "$OUT_FILE_INPUT_SCRIPT" mv -f "$in_prefix_no_space" output_ttree/ fi @@ -2145,6 +2248,7 @@ for file_name in "$OUT_FILE_INIT" "$OUT_FILE_INPUT_SCRIPT" "$OUT_FILE_SETTINGS"; ERR_INTERNAL fi echo "" >&2 + mv -f "$file_name.tmp" "$file_name" #cat "$file_name" >> input_scripts_so_far.tmp #dos2unix < "$file_name" >> input_scripts_so_far.tmp @@ -2174,13 +2278,24 @@ for file_name in "$OUT_FILE_INIT" "$OUT_FILE_INPUT_SCRIPT" "$OUT_FILE_SETTINGS"; done -ls "${in_prefix}"* 2> /dev/null | while read file_name; do +# Process any custom input script files created by the user afterwards +#ls "${OUT_FILE_INPUT_SCRIPT}"* 2> /dev/null | while read file_name; do +for file_name in "${OUT_FILE_INPUT_SCRIPT}."*; do + if [ "$file_name" = "$OUT_FILE_INIT" ] || [ $file_name = "$OUT_FILE_INPUT_SCRIPT" ] || [ $file_name = "$OUT_FILE_SETTINGS" ]; then + continue + fi + if [[ "$file_name" == *.tmp ]]; then + continue + fi + if [[ "$file_name" == *.template ]]; then + continue + fi echo "postprocessing file \"$file_name\"" >&2 - if ! $PYTHON_COMMAND "${PY_SCR_DIR}/postprocess_input_script.py" input_scripts_so_far.tmp < "$file_name" > "$file_name".tmp; then + if ! $PYTHON_COMMAND "${PY_SCR_DIR}/postprocess_input_script.py" input_scripts_so_far.tmp < "$file_name" > "$file_name.tmp"; then ERR_INTERNAL fi echo "" >&2 - mv "$file_name".tmp "$file_name" + mv "$file_name.tmp" "$file_name" cat "$file_name" >> input_scripts_so_far.tmp done @@ -2188,6 +2303,7 @@ rm -f input_scripts_so_far.tmp + # ############ Optional: Add a fake run section as an example ############ diff --git a/tools/moltemplate/moltemplate/ttree.py b/tools/moltemplate/moltemplate/ttree.py index a68ada9f75..89777f3bdc 100755 --- a/tools/moltemplate/moltemplate/ttree.py +++ b/tools/moltemplate/moltemplate/ttree.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Authors: Andrew Jewett (jewett.aij at g mail) +# Author: Andrew Jewett (jewett.aij at g mail) # http://www.moltemplate.org # http://www.chem.ucsb.edu/~sheagroup # License: 3-clause BSD License (See LICENSE.TXT) @@ -64,10 +64,10 @@ except NameError: # in words or tokens parsed by TtreeShlex. Otherwise it is identical to shlex. try: from .ttree_lex import TtreeShlex, SplitQuotedString, EscCharStrToChar, \ - SafelyEncodeString, RemoveOuterQuotes, MaxLenStr, HasWildCard, \ + SafelyEncodeString, RemoveOuterQuotes, MaxLenStr, HasWildcard, \ InputError, ErrorLeader, OSrcLoc, TextBlock, VarRef, VarBinding, \ TemplateLexer -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from ttree_lex import * @@ -1519,7 +1519,7 @@ def DescrToCatLeafNodes(descr_str, elif (create_missing_nodes and ((i_last_ptkn == len(leaf_ptkns) - 1) or - HasWildCard('/'.join(leaf_ptkns)))): + HasWildcard('/'.join(leaf_ptkns)))): # elif (create_missing_nodes and # (i_last_ptkn == len(leaf_ptkns)-1)): @@ -1951,9 +1951,9 @@ class StaticObj(object): break if ((cmd_token == 'write') or - (cmd_token == 'write_once') or - (cmd_token == 'create_var') or - (cmd_token == 'replace')): + (cmd_token == 'write_once') or + (cmd_token == 'create_var') or + (cmd_token == 'replace')): open_paren = lex.get_token() #print('Parse(): open_paren=\"'+open_paren+'\"') @@ -1980,7 +1980,14 @@ class StaticObj(object): tmpl_filename = None # This means: define the template without attaching # a file name to it. (IE., don't write the contents - # of what's enclosed in the curly brackets { } to a file.) + # of what's enclosed in the curly brackets { } to a file. + # Why? + # "create_var" commands are implemented as "write() {...}" + # commands (containing one or more variables) which + # never get written to a file or the terminal. Parsing + # the contents of the curly brackets defines the variables + # inside in the same way as parsing the text inside an + # ordinary "write() {...}" command. if (cmd_token == 'replace'): tmpl_filename = "ttree_replacements.txt" @@ -4259,7 +4266,7 @@ def AutoAssignVals(cat_node, # category counter without incrementing it. var_binding.value = str(cat.counter.query()) - elif HasWildCard(var_binding.full_name): + elif HasWildcard(var_binding.full_name): # -- The wildcard hack --- # Variables containing * or ? characters in their names # are not allowed. These are not variables, but patterns @@ -4634,7 +4641,7 @@ def WriteVarBindingsFile(node): # Now omit variables whos names contain "*" or "?" # (these are actually not variables, but wildcard patterns) - if not HasWildCard(var_binding.full_name): + if not HasWildcard(var_binding.full_name): if len(var_binding.refs) > 0: usage_example = ' #' +\ ErrorLeader(var_binding.refs[0].srcloc.infile, diff --git a/tools/moltemplate/moltemplate/ttree_lex.py b/tools/moltemplate/moltemplate/ttree_lex.py index e29d4bc35b..e93ca5bbd2 100644 --- a/tools/moltemplate/moltemplate/ttree_lex.py +++ b/tools/moltemplate/moltemplate/ttree_lex.py @@ -1,6 +1,7 @@ # -*- coding: iso-8859-1 -*- - +### -*- coding: utf-8 -*- # Author: Andrew Jewett (jewett.aij at g mail) +# http://www.moltemplate.org # http://www.chem.ucsb.edu/~sheagroup # License: 3-clause BSD License (See LICENSE.TXT) # Copyright (c) 2012, Regents of the University of California @@ -43,7 +44,8 @@ __all__ = ["TtreeShlex", "SafelyEncodeString", "RemoveOuterQuotes", "MaxLenStr", - "HasWildCard", + "HasWildcard", + "MatchesPattern", #"IsRegex", "InputError", "ErrorLeader", @@ -93,6 +95,10 @@ class TtreeShlex(object): self.commenters = '#' self.wordchars = ('abcdfeghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_') + #if self.posix: + # self.wordchars += ('ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ' + # 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ') + if self.posix: self.wordchars += ('��������������������������������' '������������������������������') @@ -650,7 +656,7 @@ def MaxLenStr(s1, s2): # """ # return (len(pat)>=2) and (pat[0]=='/') and (pat[-1] == '/') -def HasWildCard(pat): +def HasWildcard(pat): """ Returns true if a string (pat) contains a '*' or '?' character. @@ -658,7 +664,7 @@ def HasWildCard(pat): return (pat.find('*') != -1) or (pat.find('?') != -1) -# def HasWildCard(pat): +# def HasWildcard(pat): # """ # Returns true if a string (pat) contains a non-backslash-protected # * or ? character. @@ -693,7 +699,7 @@ def MatchesPattern(s, pattern): # return False # new code: # uses precompiled regular expressions (See "pattern.search" below) - if HasWildCard(pattern): + if HasWildcard(pattern): if not fnmatch.fnmatchcase(s, pattern): return False elif s != pattern: @@ -1194,7 +1200,10 @@ def SplitTemplate(ltmpl, delim, delete_blanks=False): token_ltmpl = [] i = 0 while i < len(ltmpl): + entry = ltmpl[i] + #sys.stderr.write('ltmpl['+str(i)+'] = '+str(entry)+'\n') + if isinstance(entry, TextBlock): # if hasattr(entry, 'text'): prev_src_loc = entry.srcloc diff --git a/tools/moltemplate/moltemplate/ttree_matrix_stack.py b/tools/moltemplate/moltemplate/ttree_matrix_stack.py index 9c45fdc480..ba69cf7de7 100644 --- a/tools/moltemplate/moltemplate/ttree_matrix_stack.py +++ b/tools/moltemplate/moltemplate/ttree_matrix_stack.py @@ -1,4 +1,5 @@ # Author: Andrew Jewett (jewett.aij@gmail.com) +# http://www.moltemplate.org # http://www.chem.ucsb.edu/~sheagroup # License: 3-clause BSD License (See LICENSE.TXT) # Copyright (c) 2012, Regents of the University of California @@ -8,12 +9,19 @@ import random, math from collections import deque from array import array +#try: +# from StringIO import StringIO +#except ImportError: +# from io import StringIO + try: from .ttree_lex import InputError, ErrorLeader, OSrcLoc -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from ttree_lex import InputError, ErrorLeader, OSrcLoc + + def MultMat(dest, A, B): """ Multiply two matrices together. Store result in "dest". @@ -27,6 +35,21 @@ def MultMat(dest, A, B): for k in range(0, K): dest[i][j] += A[i][k] * B[k][j] +def Transpose(M): + return [ [M[j][i] for j in range(0, len(M))] + for i in range(0, len(M[0])) ] + + +def TransposeInPlace(M): + N = len(M) + for i in range(0, N): + for j in range(0, i): + M_ij = M[i][j] + M_ji = M[j][i] + M[i][j] = M_ji + M[j][i] = M_ij + + def MatToStr(M): strs = [] @@ -381,6 +404,51 @@ class AffineStack(object): AffineCompose(Mtmp, moveCentBack, Mdest) CopyMat(Mdest, Mtmp) + elif ((transform_str.find('quat(') == 0) or + (transform_str.find('quatT(') == 0)): + i_paren_close = transform_str.find(')') + if i_paren_close == -1: + i_paren_close = len(transform_str) + args = transform_str[5:i_paren_close].split(',') + center_v = None + if (len(args) == 7): + center_v = [float(args[4]), float(args[5]), float(args[6])] + elif (len(args) != 4): + raise InputError('Error near ' + ErrorLeader(src_loc.infile, src_loc.lineno) + ':\n' + ' Invalid command: \"' + transform_str + '\"\n' + ' This command requires either 4 or 7 numerical arguments. Either:\n' + ' rot(angle, axisX, axisY, axiZ) or \n' + ' rot(angle, axisX, axisY, axiZ, centerX, centerY, centerZ)') + M[0][3] = 0.0 # RotMatAXYZ() only modifies 3x3 submatrix of M + M[1][3] = 0.0 # The remaining final column must be zeroed by hand + M[2][3] = 0.0 + q = (float(args[0]), + float(args[1]), + float(args[2]), + float(args[3])) + Quaternion2Matrix(q, M) + if (transform_str.find('quatT(') == 0): + TransposeInPlace(M) + if (center_v == None): + AffineCompose(Mtmp, M, Mdest) + CopyMat(Mdest, Mtmp) + else: + # Move "center_v" to the origin + moveCentToOrig = [[1.0, 0.0, 0.0, -center_v[0]], + [0.0, 1.0, 0.0, -center_v[1]], + [0.0, 0.0, 1.0, -center_v[2]]] + AffineCompose(Mtmp, moveCentToOrig, Mdest) + CopyMat(Mdest, Mtmp) + # Rotate the coordinates (relative to the origin) + AffineCompose(Mtmp, M, Mdest) # M is the rotation matrix + CopyMat(Mdest, Mtmp) + # Move the origin back to center_v + moveCentBack = [[1.0, 0.0, 0.0, center_v[0]], + [0.0, 1.0, 0.0, center_v[1]], + [0.0, 0.0, 1.0, center_v[2]]] + AffineCompose(Mtmp, moveCentBack, Mdest) + CopyMat(Mdest, Mtmp) + # # elif transform_str.find('rotcm(') == 0: # # assert(xcm != None) # # i_paren_close = transform_str.find(')') @@ -585,6 +653,34 @@ class AffineStack(object): # # AffineCompose(Mtmp, moveCmBack, Mdest) # # CopyMat(Mdest, Mtmp) + #elif transform_str.find('read_xyz(') == 0: + # i_paren_close = transform_str.find(')') + # if i_paren_close == -1: + # i_paren_close = len(transform_str) + # args = transform_str[4:i_paren_close].split(',') + # if (len(args) != 1): + # raise InputError('Error near ' + ErrorLeader(src_loc.infile, src_loc.lineno) + ':\n' + # ' Invalid command: \"' + transform_str + '\"\n' + # ' This command expects the name of a file in XYZ format.\n') + # file_name = args[0] + # if (not file_name in coord_files): + # f = open(file_name, 'r') + # f.close() + # f.readline() # skip the first 2 lines + # f.readline() # of an .xyz file (header) + # for line in f: + # tokens = line.split() + # if (len(tokens) != 3) and (len(tokens) != 0): + # raise InputError('Error near ' + ErrorLeader(src_loc.infile, src_loc.lineno) + ':\n' + # ' Invalid command: \"' + transform_str + '\"\n' + # ' This command expects the name of a file in XYZ format.\n') + # crds.append((float(tokens[0]), + # float(tokens[1]), + # float(tokens[2])) + # self.coord_files[file_name] = crds + # else: + # crds = self.coord_files[file_name] + else: raise InputError('Error near ' + ErrorLeader(src_loc.infile, src_loc.lineno) + ':\n' ' Unknown transformation command: \"' + transform_str + '\"\n') @@ -601,6 +697,7 @@ class MultiAffineStack(object): self.stacks = None self.M = None self.error_if_substack_empty = False + self.coord_files = {} self.Clear() def Clear(self): @@ -610,6 +707,7 @@ class MultiAffineStack(object): self.stacks = deque([]) self.M = self.tot_stack.M self.error_if_substack_empty = False + self.coord_files = {} def _Update(self): self.tot_stack.Clear() @@ -793,6 +891,70 @@ def RotMatAXYZ(dest, angle, axis_x, axis_y, axis_z): # RotMatAXYZ(r, 90.0, 0.0, 0.0, 1.0) +def Quaternion2Matrix(q, M): + "convert a quaternion (q) to a 3x3 rotation matrix (M)""" + + M[0][0] = (q[0]*q[0])-(q[1]*q[1])-(q[2]*q[2])+(q[3]*q[3]) + M[1][1] = -(q[0]*q[0])+(q[1]*q[1])-(q[2]*q[2])+(q[3]*q[3]) + M[2][2] = -(q[0]*q[0])-(q[1]*q[1])+(q[2]*q[2])+(q[3]*q[3]) + M[0][1] = 2*(q[0]*q[1] - q[2]*q[3]); + M[1][0] = 2*(q[0]*q[1] + q[2]*q[3]); + M[1][2] = 2*(q[1]*q[2] - q[0]*q[3]); + M[2][1] = 2*(q[1]*q[2] + q[0]*q[3]); + M[0][2] = 2*(q[0]*q[2] + q[1]*q[3]); + M[2][0] = 2*(q[0]*q[2] - q[1]*q[3]); + + + +def Matrix2Quaternion(M, q): + """convert a 3x3 rotation matrix (M) to a quaternion (q) + http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/ + """ + tr = M[0][0] + M[1][1] + M[2][2] + if tr > 0: + S = math.sqrt(tr+1.0) * 2 # S=4*qw + qw = 0.25 * S + qx = (M[2][1] - M[1][2]) / S + qy = (M[0][2] - M[2][0]) / S + qz = (M[1][0] - M[0][1]) / S + elif (M[0][0] > M[1][1]) and (M[0][0] > M[2][2]): + S = math.sqrt(1.0 + M[0][0] - M[1][1] - M[2][2]) * 2 # S=4*qx + qw = (M[2][1] - M[1][2]) / S + qx = 0.25 * S + qy = (M[0][1] + M[1][0]) / S + qz = (M[0][2] + M[2][0]) / S + elif (M[1][1] > M[2][2]): + S = math.sqrt(1.0 + M[1][1] - M[0][0] - M[2][2]) * 2 # S=4*qy + qw = (M[0][2] - M[2][0]) / S + qx = (M[0][1] + M[1][0]) / S + qy = 0.25 * S + qz = (M[1][2] + M[2][1]) / S + else: + S = math.sqrt(1.0 + M[2][2] - M[0][0] - M[1][1]) * 2 # S=4*qz + qw = (M[1][0] - M[0][1]) / S + qx = (M[0][2] + M[2][0]) / S + qy = (M[1][2] + M[2][1]) / S + qz = 0.25 * S + q[0] = qw + q[1] = qx + q[2] = qy + q[3] = qz + + +def MultQuat(dest, q1, q2): + """ multiply 2 quaternions and store the result in "qdest" + (q1[0] + i*q1[1] + j*q1[2] + k*q1[3]) + * + (q2[0] + i*q2[1] + j*q3[2] + k*q3[3]) + https://en.wikipedia.org/wiki/Quaternion#Hamilton_product + """ + dest[0] = q1[0]*q2[0] - q1[1]*q2[1] - q1[2]*q2[2] - q1[3]*q2[3] + dest[1] = q1[0]*q2[1] + q1[1]*q2[0] + q1[2]*q2[3] - q1[3]*q2[2] + dest[2] = q1[0]*q2[2] - q1[1]*q2[3] + q1[2]*q2[0] + q1[3]*q2[1] + dest[3] = q1[0]*q2[3] + q1[1]*q2[2] - q1[2]*q2[1] + q1[3]*q2[0] + + + def CrossProd(dest, A, B): dest[0] = (A[1] * B[2] - B[1] * A[2]) dest[1] = (A[2] * B[0] - B[2] * A[0]) diff --git a/tools/moltemplate/moltemplate/ttree_render.py b/tools/moltemplate/moltemplate/ttree_render.py index f59a04aeb5..15b26a2e70 100755 --- a/tools/moltemplate/moltemplate/ttree_render.py +++ b/tools/moltemplate/moltemplate/ttree_render.py @@ -21,7 +21,7 @@ import gc try: from .ttree import ExtractFormattingCommands from .ttree_lex import SplitQuotedString, InputError, TemplateLexer -except (SystemError, ValueError): +except (ImportError, SystemError, ValueError): # not installed as a package from ttree import ExtractFormattingCommands from ttree_lex import SplitQuotedString, InputError, TemplateLexer @@ -31,11 +31,14 @@ g_filename = __file__.split('/')[-1] g_module_name = g_filename if g_filename.rfind('.py') != -1: g_module_name = g_filename[:g_filename.rfind('.py')] -g_date_str = '2016-12-21' -g_version_str = '0.2.0' +g_date_str = '2017-11-04' +g_version_str = '0.2.2' g_program_name = g_filename #sys.stderr.write(g_program_name+' v'+g_version_str+' '+g_date_str+' ') + + + def main(): try: if (len(sys.argv) != 2): @@ -79,21 +82,43 @@ def main(): assert(isinstance(entry, str)) if ((len(entry) > 1) and (entry[0] in lex.var_delim)): + + if ((len(entry) >= 3) and + (entry[1] == '{') and + (entry[-1] == '}')): + entry = entry[0] + entry[2:-1] + if '.' in entry: ic = entry.find('.') var_name = entry[:ic] var_suffix = entry[ic:] + if not var_suffix[0:7] in ('.ljust(', '.rjust('): + var_name = entry + var_suffix = '' else: var_name = entry var_suffix = '' - var_name = entry if var_name not in assignments: - raise(InputError('Error(' + g_program_name + ')' - #' at '+ErrorLeader(var_ref.src_loc.infile, - # var_ref.src_loc.lineno)+ - ' unknown variable:\n' - ' \"' + var_name + '\"\n')) + #COMMENTING OUT: + #raise(InputError('Error(' + g_program_name + ')' + # #' at '+ErrorLeader(var_ref.src_loc.infile, + # # var_ref.src_loc.lineno)+ + # ' unknown variable:\n' + # ' \"' + var_name + '\"\n')) + # ...actually don't raise an error message: + # Actually there are some legitimate reaons this could occur. + # Some users want to put LAMMPS-style variables in the + # write_once() {...} text blocks in their moltemplate files. + # Variables in both LAMMPS and moltemplate contain $ characters, + # and this script gets confused. Better to just ignore it + # when this happens instead of printing an error message. + # Just leave the text alone and print the variable name. + # + # Do this by substituting the variable's name as it's value: + + var_value = var_name + else: var_value = assignments[var_name] diff --git a/tools/moltemplate/setup.py b/tools/moltemplate/setup.py index 30e835de0c..925850a49e 100644 --- a/tools/moltemplate/setup.py +++ b/tools/moltemplate/setup.py @@ -4,7 +4,12 @@ setup( name='moltemplate', - packages=['moltemplate', 'moltemplate/nbody_alt_symmetry'], + packages=['moltemplate', + 'moltemplate.nbody_alt_symmetry'], + + package_dir={'moltemplate': 'moltemplate'}, #.py files are in "moltemplate/" + + package_data={'moltemplate': ['force_fields/*.lt']}, #.lt files are in "moltemplate/force_fields/" description='A general cross-platform text-based molecule builder for LAMMPS', @@ -14,9 +19,9 @@ setup( url='https://github.com/jewettaij/moltemplate', - download_url='https://github.com/jewettaij/moltemplate/archive/v2.3.7.zip', + download_url='https://github.com/jewettaij/moltemplate/archive/v2.8.6.zip', - version='2.3.7', + version='2.8.6', keywords=['simulation', 'LAMMPS', 'molecule editor', 'molecule builder', 'ESPResSo'], @@ -32,7 +37,13 @@ setup( 'License :: OSI Approved :: BSD License', 'Operating System :: MacOS :: MacOS X', 'Operating System :: POSIX :: Linux', - 'Operating System :: Microsoft :: Windows'], + 'Operating System :: Microsoft :: Windows', + 'Programming Language :: Python', + 'Programming Language :: Unix Shell', + 'Topic :: Scientific/Engineering :: Chemistry', + 'Topic :: Scientific/Engineering :: Physics', + 'Topic :: Multimedia :: Graphics :: 3D Modeling', + 'Intended Audience :: Science/Research'], scripts=['moltemplate/scripts/moltemplate.sh', 'moltemplate/scripts/cleanup_moltemplate.sh', @@ -58,13 +69,13 @@ setup( 'nbody_reorder_atoms.py=moltemplate.nbody_reorder_atoms:main', 'pdbsort.py=moltemplate.pdbsort:main', 'postprocess_input_script.py=moltemplate.postprocess_input_script:main', + 'postprocess_coeffs.py=moltemplate.postprocess_coeffs:main', 'raw2data.py=moltemplate.raw2data:main', 'remove_duplicate_atoms.py=moltemplate.remove_duplicate_atoms:main', 'remove_duplicates_nbody.py=moltemplate.remove_duplicates_nbody:main', 'renumber_DATA_first_column.py=moltemplate.renumber_DATA_first_column:main']}, - package_data={'moltemplate': ['force_fields/*.lt']}, - # install_requires=['numpy', 'scipy', 'biopython'], + # install_requires=['numpy', 'scipy'], setup_requires=['pytest-runner'], tests_require=['pytest'], zip_safe=True, From 0df8587c18f30633fea7c95522f807f447ccd059 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 28 Jun 2018 11:13:51 -0600 Subject: [PATCH 216/675] cmake: make GPU_ARCH free form --- cmake/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3cc25ac861..e4eccb978e 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -704,8 +704,7 @@ if(PKG_GPU) endif() option(CUDPP_OPT "Enable CUDPP_OPT" ON) - set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM architecture") - set_property(CACHE GPU_ARCH PROPERTY STRINGS sm_10 sm_20 sm_30 sm_60) + set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM architecture (e.g. sm_60)") file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/*.cu) list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu) From 4d629872d82e2ee5bc80015fa0cbc2dc85becc97 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 28 Jun 2018 14:05:25 -0400 Subject: [PATCH 217/675] CMake preset docs wording --- cmake/README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cmake/README.md b/cmake/README.md index 462afcacb2..5419063f6d 100644 --- a/cmake/README.md +++ b/cmake/README.md @@ -162,12 +162,13 @@ file, there is another way of defining "presets" to compile LAMMPS in a certain way. A preset is a regular CMake script file that can use constructs such as -variables, lists and for-loops to manipulate configuration options. Options -must be set with the `CACHE` and `FORCE` flag to ensure they are considered. +variables, lists and for-loops to manipulate configuration options and create +an [*initial cache*](https://cmake.org/cmake/help/v3.12/manual/cmake.1.html). +Options must be set with the `CACHE` and `FORCE` flag to ensure they are +considered even during a second cmake run. -Such a file can then be passed to cmake via the `-C` flag to initialize the -cache. Several examples of such presets can be found in the `cmake/presets` -folder. +Such a file can then be passed to cmake via the `-C` flag. Several examples of +presets can be found in the `cmake/presets` folder. ```bash # build LAMMPS with all "standard" packages which don't use libraries and enable GPU package From 206d349d5ba002845d7604499c873ead6127fce9 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 28 Jun 2018 14:16:56 -0400 Subject: [PATCH 218/675] Simplify DetectBuildSystemConflict CMake utility --- cmake/Modules/StyleHeaderUtils.cmake | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/cmake/Modules/StyleHeaderUtils.cmake b/cmake/Modules/StyleHeaderUtils.cmake index 2def9ebc88..ea3bea3b51 100644 --- a/cmake/Modules/StyleHeaderUtils.cmake +++ b/cmake/Modules/StyleHeaderUtils.cmake @@ -154,13 +154,9 @@ function(GenerateStyleHeaders output_path) endfunction(GenerateStyleHeaders) function(DetectBuildSystemConflict lammps_src_dir) - math(EXPR N "${ARGC}-1") - - if(N GREATER 0) - math(EXPR ARG_END "${ARGC}-1") - - foreach(IDX RANGE 1 ${ARG_END}) - list(GET ARGV ${IDX} SRC_FILE) + if(ARGC GREATER 1) + list(REMOVE_AT ARGV 0) + foreach(SRC_FILE ${ARGV}) get_filename_component(FILENAME ${SRC_FILE} NAME) if(EXISTS ${lammps_src_dir}/${FILENAME}) message(FATAL_ERROR "\n########################################################################\n" From e0dc53ab3f3cf6fc40edaad25987402ffdfcf039 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 28 Jun 2018 14:22:37 -0400 Subject: [PATCH 219/675] Simplify CreateStyleHeader CMake utility --- cmake/Modules/StyleHeaderUtils.cmake | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/cmake/Modules/StyleHeaderUtils.cmake b/cmake/Modules/StyleHeaderUtils.cmake index ea3bea3b51..29ea372597 100644 --- a/cmake/Modules/StyleHeaderUtils.cmake +++ b/cmake/Modules/StyleHeaderUtils.cmake @@ -45,14 +45,10 @@ function(FindStyleHeadersExt path style_class extension headers sources) endfunction(FindStyleHeadersExt) function(CreateStyleHeader path filename) - math(EXPR N "${ARGC}-2") - set(temp "") - if(N GREATER 0) - math(EXPR ARG_END "${ARGC}-1") - - foreach(IDX RANGE 2 ${ARG_END}) - list(GET ARGV ${IDX} FNAME) + if(ARGC GREATER 2) + list(REMOVE_AT ARGV 0 1) + foreach(FNAME ${ARGV}) get_filename_component(FNAME ${FNAME} NAME) set(temp "${temp}#include \"${FNAME}\"\n") endforeach() From 946bca82c5893715c2313ebaf6996c7db63b4bee Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 29 Jun 2018 00:56:35 -0400 Subject: [PATCH 220/675] add options to support GNU gcc sanitizers --- cmake/CMakeLists.txt | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 122521d2f6..5d2c27a65c 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -11,7 +11,7 @@ get_filename_component(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE) -#To not conflict with old Makefile build system, we build everything here +# To avoid conflicts with the conventional Makefile build system, we build everything here file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp) file(GLOB LMP_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp) list(REMOVE_ITEM LIB_SOURCES ${LMP_SOURCES}) @@ -52,9 +52,24 @@ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict") endif() -option(ENABLE_COVERAGE "Enable code coverage" OFF) -if(ENABLE_COVERAGE) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") +# GNU compiler features +if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + option(ENABLE_COVERAGE "Enable code coverage" OFF) + if(ENABLE_COVERAGE) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") + endif() + option(ENABLE_SANITIZE_ADDRESS "Enable address sanitizer" OFF) + if(ENABLE_SANITIZE_ADDRESS) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") + endif() + option(ENABLE_SANITIZE_UNDEFINED "Enable undefined behavior sanitizer" OFF) + if(ENABLE_SANITIZE_UNDEFINED) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined") + endif() + option(ENABLE_SANITIZE_THREAD "Enable thread sanitizer" OFF) + if(ENABLE_SANITIZE_THREAD) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread") + endif() endif() ######################################################################## From ad4720ef00d20a04ae5bc4f069fd87e9d4e4455f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 29 Jun 2018 01:00:20 -0400 Subject: [PATCH 221/675] make various compiler instrumentation flags "advanced" options --- cmake/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 5d2c27a65c..f9acc29dfa 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -55,18 +55,22 @@ endif() # GNU compiler features if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") option(ENABLE_COVERAGE "Enable code coverage" OFF) + mark_as_advanced(ENABLE_COVERAGE) if(ENABLE_COVERAGE) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") endif() option(ENABLE_SANITIZE_ADDRESS "Enable address sanitizer" OFF) + mark_as_advanced(ENABLE_SANITIZE_ADDRESS) if(ENABLE_SANITIZE_ADDRESS) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") endif() option(ENABLE_SANITIZE_UNDEFINED "Enable undefined behavior sanitizer" OFF) + mark_as_advanced(ENABLE_SANITIZE_UNDEFINED) if(ENABLE_SANITIZE_UNDEFINED) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined") endif() option(ENABLE_SANITIZE_THREAD "Enable thread sanitizer" OFF) + mark_as_advanced(ENABLE_SANITIZE_THREAD) if(ENABLE_SANITIZE_THREAD) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread") endif() From 4f9c0456e6c4ed2d83a6330491794a2c9eb1e249 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 29 Jun 2018 01:22:26 -0400 Subject: [PATCH 222/675] eliminate variable length arrays from compute entropy/atom --- src/USER-MISC/compute_entropy_atom.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/USER-MISC/compute_entropy_atom.cpp b/src/USER-MISC/compute_entropy_atom.cpp index a2e6765c83..7e0f346684 100644 --- a/src/USER-MISC/compute_entropy_atom.cpp +++ b/src/USER-MISC/compute_entropy_atom.cpp @@ -163,7 +163,8 @@ void ComputeEntropyAtom::compute_peratom() int i,j,ii,jj,inum,jnum; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *ilist,*jlist,*numneigh,**firstneigh; - double rbin[nbin], rbinsq[nbin]; + double *rbin = new double[nbin]; + double *rbinsq = new double[nbin]; invoked_peratom = update->ntimestep; @@ -235,7 +236,7 @@ void ComputeEntropyAtom::compute_peratom() // loop over list of all neighbors within force cutoff // initialize gofr - double gofr[nbin]; + double *gofr = new double[nbin]; for(int k=0;k Date: Fri, 29 Jun 2018 01:22:35 -0400 Subject: [PATCH 223/675] remove unused class member --- src/USER-MISC/compute_entropy_atom.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/USER-MISC/compute_entropy_atom.h b/src/USER-MISC/compute_entropy_atom.h index c8ea19ae76..c09a6e791c 100644 --- a/src/USER-MISC/compute_entropy_atom.h +++ b/src/USER-MISC/compute_entropy_atom.h @@ -41,7 +41,6 @@ class ComputeEntropyAtom : public Compute { double cutsq, cutsq2; double deltar; int deltabin; - double invNormConstantBase; int avg_flag; int local_flag; }; From 75a39680392099ecfcdc300c961ae904ca8da09c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 29 Jun 2018 06:48:11 -0400 Subject: [PATCH 224/675] multiple small tweaks to compute entropy/atom - improve error detection and messages - avoid sigma/cutoff to be zero (and thus division by zero) - move new/delete of temporary storage outside of loop --- src/USER-MISC/compute_entropy_atom.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/USER-MISC/compute_entropy_atom.cpp b/src/USER-MISC/compute_entropy_atom.cpp index 7e0f346684..922f2aaf5e 100644 --- a/src/USER-MISC/compute_entropy_atom.cpp +++ b/src/USER-MISC/compute_entropy_atom.cpp @@ -59,11 +59,11 @@ ComputeEntropyAtom(LAMMPS *lmp, int narg, char **arg) : // the g(r) sigma = force->numeric(FLERR,arg[3]); - if (sigma < 0.0) error->all(FLERR,"Illegal compute entropy/atom" - " command; negative sigma"); + if (sigma <= 0.0) error->all(FLERR,"Illegal compute entropy/atom" + " command; sigma must be positive"); cutoff = force->numeric(FLERR,arg[4]); - if (cutoff < 0.0) error->all(FLERR,"Illegal compute entropy/atom" - " command; negative cutoff"); + if (cutoff <= 0.0) error->all(FLERR,"Illegal compute entropy/atom" + " command; cutoff must be positive"); avg_flag = 0; local_flag = 0; @@ -121,7 +121,7 @@ ComputeEntropyAtom::~ComputeEntropyAtom() void ComputeEntropyAtom::init() { if (force->pair == NULL) - error->all(FLERR,"Compute centro/atom requires a pair style be" + error->all(FLERR,"Compute entropy/atom requires a pair style be" " defined"); if ( (cutoff+cutoff2) > (force->pair->cutforce + neighbor->skin) ) @@ -208,6 +208,8 @@ void ComputeEntropyAtom::compute_peratom() double **x = atom->x; int *mask = atom->mask; + double *gofr = new double[nbin]; + double *integrand = new double[nbin]; for (ii = 0; ii < inum; ii++) { i = ilist[ii]; @@ -236,7 +238,6 @@ void ComputeEntropyAtom::compute_peratom() // loop over list of all neighbors within force cutoff // initialize gofr - double *gofr = new double[nbin]; for(int k=0;k Date: Fri, 29 Jun 2018 08:06:51 -0600 Subject: [PATCH 225/675] new ARM makefiles, also some doc tweaks --- doc/src/Section_howto.txt | 1 - doc/src/atom_style.txt | 2 +- doc/src/fix_rigid.txt | 24 ++-- .../Makefile.aarch64_arm_openmpi_armpl | 121 ++++++++++++++++++ .../Makefile.aarch64_arm_serial_armpl | 120 +++++++++++++++++ .../Makefile.aarch64_g++_openmpi_armpl | 121 ++++++++++++++++++ .../Makefile.aarch64_g++_serial_armpl | 120 +++++++++++++++++ src/dump_custom.cpp | 2 +- 8 files changed, 495 insertions(+), 16 deletions(-) create mode 100644 src/MAKE/MACHINES/Makefile.aarch64_arm_openmpi_armpl create mode 100644 src/MAKE/MACHINES/Makefile.aarch64_arm_serial_armpl create mode 100644 src/MAKE/MACHINES/Makefile.aarch64_g++_openmpi_armpl create mode 100644 src/MAKE/MACHINES/Makefile.aarch64_g++_serial_armpl diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt index 9e6e9f8665..7d1b82f4f6 100644 --- a/doc/src/Section_howto.txt +++ b/doc/src/Section_howto.txt @@ -2954,7 +2954,6 @@ property/atom"_compute_property_atom.html. It enables to output all the per atom magnetic quantities. Typically, the orientation of a given magnetic spin, or the magnetic force acting on this spin. - :line :line diff --git a/doc/src/atom_style.txt b/doc/src/atom_style.txt index 7ad4e1a88a..5421e467aa 100644 --- a/doc/src/atom_style.txt +++ b/doc/src/atom_style.txt @@ -15,7 +15,7 @@ atom_style style args :pre style = {angle} or {atomic} or {body} or {bond} or {charge} or {dipole} or \ {dpd} or {edpd} or {mdpd} or {tdpd} or {electron} or {ellipsoid} or \ {full} or {line} or {meso} or {molecular} or {peri} or {smd} or \ - {sphere} or {tri} or {template} or {hybrid} or {spin} :ulb,l + {sphere} or {spin} or {tri} or {template} or {hybrid} :ulb,l args = none for any style except the following {body} args = bstyle bstyle-args bstyle = style of body particles diff --git a/doc/src/fix_rigid.txt b/doc/src/fix_rigid.txt index ec7ed4f2b1..8d803ac6da 100644 --- a/doc/src/fix_rigid.txt +++ b/doc/src/fix_rigid.txt @@ -241,19 +241,17 @@ molecule ID = 0) surrounding rigid bodies, this may not be what you want. Thus you should be careful to use a fix group that only includes atoms you want to be part of rigid bodies. -Bodystyle {custom} is similar to bodystyle {molecule}, however some -custom properties are used to group atoms into rigid bodies. The -special case for molecule/body ID = 0 is not available. Possible -custom properties are an integer property associated with atoms through -"fix property/atom"_fix_property_atom.html or an atom style variable -or an atomfile style variable. For the latter two, the variable value -will be rounded to an integer and then rigid bodies defined from -those values. - -For bodystyle {group}, each of the listed groups is treated as a -separate rigid body. Only atoms that are also in the fix group are -included in each rigid body. This option is only allowed for the -{rigid} styles. +Bodystyle {custom} is similar to bodystyle {molecule} except that it +is more flexible in using other per-atom properties to define the sets +of atoms that form rigid bodies. An integer vector defined by the +"fix property/atom"_fix_property_atom.txt command can be used. Or an +"atom-style or atomfile-style variable"_variable.html can be used; the +floating-point value produced by the variable is rounded to an +integer. As with bondstyle {molecule}, each set of atoms in the fix +groups with the same integer value is treated as a different rigid +body. Since fix property/atom vectors and atom-style variables +produce values for all atoms, you should be careful to use a fix group +that only includes atoms you want to be part of rigid bodies. NOTE: To compute the initial center-of-mass position and other properties of each rigid body, the image flags for each atom in the diff --git a/src/MAKE/MACHINES/Makefile.aarch64_arm_openmpi_armpl b/src/MAKE/MACHINES/Makefile.aarch64_arm_openmpi_armpl new file mode 100644 index 0000000000..0f5087618b --- /dev/null +++ b/src/MAKE/MACHINES/Makefile.aarch64_arm_openmpi_armpl @@ -0,0 +1,121 @@ +# g++_openmpi = OpenMPI with compiler set to GNU g++ + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +#export OMPI_CXX = armclang++ +CC = mpicxx +CCFLAGS = -O3 -mcpu=native +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = mpicxx +LINKFLAGS = -g -O +LIB = +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_FFTW +FFT_PATH = -L$(ARMPL_LIBRARIES) +FFT_LIB = -larmpl_lp64 + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) +EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) +EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +depend : fastdep.exe $(SRC) + @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 + +fastdep.exe: ../DEPEND/fastdep.c + cc -O -o $@ $< + +sinclude .depend diff --git a/src/MAKE/MACHINES/Makefile.aarch64_arm_serial_armpl b/src/MAKE/MACHINES/Makefile.aarch64_arm_serial_armpl new file mode 100644 index 0000000000..c303a97e17 --- /dev/null +++ b/src/MAKE/MACHINES/Makefile.aarch64_arm_serial_armpl @@ -0,0 +1,120 @@ +# arm_serial = Arm armclang compiler, no MPI + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = armclang++ +CCFLAGS = -O3 -mcpu=native +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = armclang++ +LINKFLAGS = -g -O +LIB = +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -I../STUBS +MPI_PATH = -L../STUBS +MPI_LIB = -lmpi_stubs + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_FFTW +FFT_PATH = -L$(ARMPL_LIBRARIES) +FFT_LIB = -larmpl_lp64 + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) +EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) +EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +depend : fastdep.exe $(SRC) + @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 + +fastdep.exe: ../DEPEND/fastdep.c + cc -O -o $@ $< + +sinclude .depend diff --git a/src/MAKE/MACHINES/Makefile.aarch64_g++_openmpi_armpl b/src/MAKE/MACHINES/Makefile.aarch64_g++_openmpi_armpl new file mode 100644 index 0000000000..b3cc1f48a3 --- /dev/null +++ b/src/MAKE/MACHINES/Makefile.aarch64_g++_openmpi_armpl @@ -0,0 +1,121 @@ +# g++_openmpi = OpenMPI with compiler set to GNU g++ + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +export OMPI_CXX = g++ +CC = mpicxx +CCFLAGS = -O3 -march=native -mcpu=native +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = mpicxx +LINKFLAGS = -O +LIB = +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_FFTW +FFT_PATH = -L$(ARMPL_LIBRARIES) +FFT_LIB = -larmpl_lp64 + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) +EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) +EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +depend : fastdep.exe $(SRC) + @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 + +fastdep.exe: ../DEPEND/fastdep.c + cc -O -o $@ $< + +sinclude .depend diff --git a/src/MAKE/MACHINES/Makefile.aarch64_g++_serial_armpl b/src/MAKE/MACHINES/Makefile.aarch64_g++_serial_armpl new file mode 100644 index 0000000000..45c0bb162b --- /dev/null +++ b/src/MAKE/MACHINES/Makefile.aarch64_g++_serial_armpl @@ -0,0 +1,120 @@ +# g++_serial = GNU g++ compiler, no MPI + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = g++ +CCFLAGS = -O3 -march=native -mcpu=native +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = g++ +LINKFLAGS = -O +LIB = +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -I../STUBS +MPI_PATH = -L../STUBS +MPI_LIB = -lmpi_stubs + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_FFTW +FFT_PATH = -L$(ARMPL_LIBRARIES) +FFT_LIB = -larmpl_lp64 + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) +EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) +EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu $(EXTRA_CPP_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +depend : fastdep.exe $(SRC) + @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 + +fastdep.exe: ../DEPEND/fastdep.c + cc -O -o $@ $< + +sinclude .depend diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index af2e34b022..4c3950c099 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -244,7 +244,7 @@ DumpCustom::~DumpCustom() for (int i = 1; i <= ntypes; i++) delete [] typenames[i]; delete [] typenames; - if(vformat) { + if (vformat) { for (int i = 0; i < size_one; i++) delete [] vformat[i]; delete [] vformat; } From e08ccd0a7c62b71fa8cb8f3cd4f54b83ca2ed7de Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Fri, 29 Jun 2018 11:58:27 -0400 Subject: [PATCH 226/675] Forgot to include change in fix_enforce2d to access fixlist in kokkos port. --- src/fix_enforce2d.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fix_enforce2d.h b/src/fix_enforce2d.h index cdead78f6a..a3f79309dc 100644 --- a/src/fix_enforce2d.h +++ b/src/fix_enforce2d.h @@ -36,7 +36,7 @@ class FixEnforce2D : public Fix { void post_force_respa(int, int, int); void min_post_force(int); - private: + protected: int nfixlist; class Fix **flist; }; From b819018084385988591b1b9dd2e736ffd005d0a1 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 29 Jun 2018 15:31:15 -0400 Subject: [PATCH 227/675] Revert change to CMakeLists.txt which only works with 3.9+ --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index f9acc29dfa..bf57398c71 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -941,7 +941,7 @@ endforeach() string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE) get_directory_property(CPPFLAGS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS) include(FeatureSummary) -feature_summary(DEFAULT_DESCRIPTION WHAT PACKAGES_FOUND) +feature_summary(DESCRIPTION "The following packages have been found:" WHAT PACKAGES_FOUND) message(STATUS "<<< Build configuration >>> Build type ${CMAKE_BUILD_TYPE} Install path ${CMAKE_INSTALL_PREFIX} From a8b7153f4ed1a2b6286e00be0f93a5d5e487acc4 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 29 Jun 2018 16:00:08 -0400 Subject: [PATCH 228/675] Fixes issue #975 --- src/PYTHON/python_impl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PYTHON/python_impl.cpp b/src/PYTHON/python_impl.cpp index 9f018ad602..cc5edaf3f5 100644 --- a/src/PYTHON/python_impl.cpp +++ b/src/PYTHON/python_impl.cpp @@ -344,7 +344,7 @@ void PythonImpl::invoke_function(int ifunc, char *result) } else if (otype == DOUBLE) { sprintf(result,"%.15g",PyFloat_AsDouble(pValue)); } else if (otype == STRING) { - char *pystr = PY_STRING_AS_STRING(pValue); + const char *pystr = PY_STRING_AS_STRING(pValue); if (pfuncs[ifunc].longstr) strncpy(pfuncs[ifunc].longstr,pystr,pfuncs[ifunc].length_longstr); else strncpy(result,pystr,VALUELENGTH-1); From d2dd76e6555d5d4c609f31e782743ea51dd04606 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 29 Jun 2018 14:56:27 -0600 Subject: [PATCH 229/675] added SPIN package to Section_packages doc --- doc/src/Section_howto.txt | 15 ++++++++------- doc/src/Section_packages.txt | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt index 7d1b82f4f6..2784858f02 100644 --- a/doc/src/Section_howto.txt +++ b/doc/src/Section_howto.txt @@ -2911,14 +2911,15 @@ too close, which can cause numerical issues. 6.28 Magnetic spins :link(howto_28),h4 -The magnetic spin simualtions are enabled by the SPIN package, whose -implementation is detailed in "Tranchida"_#Tranchida7. +Classical magnetic spin simualtions can be performed via the SPIN +package. The algrorithmic and implementation details are described in +"Tranchida"_#Tranchida7. -The model representents the simulation of atomic magnetic spins coupled -to lattice vibrations. The dynamics of those magnetic spins can be used -to simulate a broad range a phenomena related to magneto-elasticity, or -or to study the influence of defects on the magnetic properties of -materials. +The model representents the simulation of atomic magnetic spins +coupled to lattice vibrations. The dynamics of those magnetic spins +can be used to simulate a broad range a phenomena related to +magneto-elasticity, or or to study the influence of defects on the +magnetic properties of materials. The magnetic spins are interacting with each others and with the lattice via pair interactions. Typically, the magnetic exchange diff --git a/doc/src/Section_packages.txt b/doc/src/Section_packages.txt index e9387fe35f..7c762fc055 100644 --- a/doc/src/Section_packages.txt +++ b/doc/src/Section_packages.txt @@ -114,6 +114,7 @@ Package, Description, Doc page, Example, Library "RIGID"_#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, - "SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, - "SNAP"_#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, - +"SPIN"_#SPIN, magnetic atomic spin dynamics, "Section 6.6.28"_Section_howto.html#howto_28, SPIN, - "SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - "VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l) @@ -1415,6 +1416,38 @@ examples/snap :ul :line +SPIN package :link(SNAP),h4 + +[Contents:] + +Model atomic magnetic spins classically, coupled to atoms moving in +the usual manner via MD. Various pair, fix, and compute styles. + +[Author:] Julian Tranchida (Sandia). + +[Install or un-install:] + +make yes-spin +make machine :pre + +make no-spin +make machine :pre + +[Supporting info:] + +src/SPIN: filenames -> commands +"Section 6.28"_Section_howto.html#howto_28 +"pair_style spin/dmi"_pair_spin_dmi.html +"pair_style spin/exchange"_pair_spin_exchange.html +"pair_style spin/magelec"_pair_spin_magelec.html +"pair_style spin/neel"_pair_spin_neel.html +"fix nve/spin"_fix_nve_spin.html +"fix precession/spin"_fix_precession_spin.html +"compute spin"_compute_spin.html +examples/SPIN :ul + +:line + SRD package :link(SRD),h4 [Contents:] From bf9646cbbecc78fc73b56ea7a18b5ff99bf3e052 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 29 Jun 2018 15:08:19 -0600 Subject: [PATCH 230/675] fix glitch in ABIVERSION in fix latte --- src/LATTE/fix_latte.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LATTE/fix_latte.cpp b/src/LATTE/fix_latte.cpp index 168692db9f..18502dd013 100644 --- a/src/LATTE/fix_latte.cpp +++ b/src/LATTE/fix_latte.cpp @@ -48,7 +48,7 @@ extern "C" { // a meaningful error messages, as they can cause // difficult to debug crashes or memory corruption. -#define ABIVERSION 20180622 +#define LATTE_ABIVERSION 20180622 #define INVOKED_PERATOM 8 /* ---------------------------------------------------------------------- */ From ea35235ca023e7eac69a4c273c9c0dffc59b4e14 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 29 Jun 2018 16:12:25 -0600 Subject: [PATCH 231/675] couple more doc tweaks - sigh --- README | 3 +-- doc/src/Section_packages.txt | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/README b/README index 3a4a865eb5..784b1cb13e 100644 --- a/README +++ b/README @@ -25,8 +25,7 @@ The LAMMPS distribution includes the following files and directories: README this file LICENSE the GNU General Public License (GPL) bench benchmark problems -cmake cmake buildsystem -couple code coupling examples using LAMMPS as a library +cmake CMake build system doc documentation examples simple test problems lib libraries LAMMPS can be linked with diff --git a/doc/src/Section_packages.txt b/doc/src/Section_packages.txt index 7c762fc055..218866e271 100644 --- a/doc/src/Section_packages.txt +++ b/doc/src/Section_packages.txt @@ -1416,7 +1416,7 @@ examples/snap :ul :line -SPIN package :link(SNAP),h4 +SPIN package :link(SPIN),h4 [Contents:] From 43ffee980d314d33f20dbf13cec45bfb639a6e96 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 29 Jun 2018 19:07:14 -0400 Subject: [PATCH 232/675] fix typo in python module --- python/lammps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/lammps.py b/python/lammps.py index 7576138f1a..e7d703e12a 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -236,7 +236,7 @@ class lammps(object): if cmd: cmd = cmd.encode() self.lib.lammps_command(self.lmp,cmd) - if self.uses_exceptions and self.lib.lammps_has_error(self.lmp): + if self.has_exceptions and self.lib.lammps_has_error(self.lmp): sb = create_string_buffer(100) error_type = self.lib.lammps_get_last_error_message(self.lmp, sb, 100) error_msg = sb.value.decode().strip() From a52ddf8759f0863cc179d860ca791dd4e8599d99 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Sat, 30 Jun 2018 08:03:24 -0600 Subject: [PATCH 233/675] patch 29Jun18 --- doc/src/Manual.txt | 4 ++-- src/version.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index e302b061e3..e34ec8d5ba 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ LAMMPS Users Manual - + @@ -19,7 +19,7 @@ :line LAMMPS Documentation :c,h1 -22 Jun 2018 version :c,h2 +29 Jun 2018 version :c,h2 Version info: :h3 diff --git a/src/version.h b/src/version.h index 04baa25f12..2833430def 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "22 Jun 2018" +#define LAMMPS_VERSION "29 Jun 2018" From 7260bb58e18f968d0f4aae9a0a668b591cbc82a1 Mon Sep 17 00:00:00 2001 From: Sergey Lishchuk Date: Wed, 4 Jul 2018 11:03:30 +0100 Subject: [PATCH 234/675] Added Axilrod-Teller manybody potential --- doc/src/Eqs/pair_atm.jpg | Bin 0 -> 5474 bytes doc/src/Eqs/pair_atm.tex | 9 ++ doc/src/pair_atm.txt | 85 ++++++++++ examples/in.atm | 29 ++++ src/MANYBODY/pair_atm.cpp | 317 ++++++++++++++++++++++++++++++++++++++ src/MANYBODY/pair_atm.h | 76 +++++++++ 6 files changed, 516 insertions(+) create mode 100644 doc/src/Eqs/pair_atm.jpg create mode 100644 doc/src/Eqs/pair_atm.tex create mode 100644 doc/src/pair_atm.txt create mode 100644 examples/in.atm create mode 100644 src/MANYBODY/pair_atm.cpp create mode 100644 src/MANYBODY/pair_atm.h diff --git a/doc/src/Eqs/pair_atm.jpg b/doc/src/Eqs/pair_atm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d2e6d704e930c2def4801301c928998f7542f54b GIT binary patch literal 5474 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 curoff^3. Virtual cutoff distance based on a user defined +tolerance tol is not used. + +The Axilrod-Teller-Muto potential file must contain entries for all the +elements listed in the pair_coeff command. It can also contain +entries for additional elements not being used in a particular +simulation; LAMMPS ignores those entries. + +For a single-element simulation, only a single entry is required +(e.g. 1 1 1). For a two-element simulation, the file must contain 4 +entries (eg. 1 1 1, 1 1 2, 1 2 2, 2 2 2), that +specify ATM parameters for all combinations of the two elements +interacting in three-body configurations. Thus for 3 elements, 10 +entries would be required, etc. + +:line + +[Shift, table, tail correction, rRESPA info]: + +This pair style does not support the "pair_modify"_pair_modify.html +shift, table, and tail options. + +This pair style can only be used via the {pair} keyword of the +"run_style respa"_run_style.html command. It does not support the +{inner}, {middle}, {outer} keywords. + +:line + +[Restrictions:] + +This pair style is part of the MANYBODY package. It is only enabled +if LAMMPS was built with that package. See +the "Making LAMMPS"_Section_start.html#start_3 section for more info. + +[Related commands:] + +"pair_coeff"_pair_coeff.html + +[Default:] none + +:line + +:link(Axilrod) +[(Axilrod)] +Axilrod and Teller, J Chem Phys, 11, 299 (1943); +Muto, Nippon Sugaku Butsuri Gakkwaishi 17, 629 (1943). diff --git a/examples/in.atm b/examples/in.atm new file mode 100644 index 0000000000..0f3760baf9 --- /dev/null +++ b/examples/in.atm @@ -0,0 +1,29 @@ +variable x index 1 +variable y index 1 +variable z index 1 + +variable xx equal 10*$x +variable yy equal 10*$y +variable zz equal 10*$z + +units lj +atom_style atomic + +lattice fcc 0.65 +region box block 0 ${xx} 0 ${yy} 0 ${zz} +create_box 1 box +create_atoms 1 box + +pair_style hybrid/overlay lj/cut 4.5 atm 2.5 +pair_coeff * * lj/cut 1.0 1.0 +pair_coeff * * atm * 0.072 + +mass * 1.0 +velocity all create 1.033 12345678 loop geom + +fix 1 all nvt temp 1.033 1.033 0.05 + +timestep 0.002 +thermo 1 + +run 50 diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp new file mode 100644 index 0000000000..0286c3ed1e --- /dev/null +++ b/src/MANYBODY/pair_atm.cpp @@ -0,0 +1,317 @@ +/* ---------------------------------------------------------------------- + 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: Sergey Lishchuk +------------------------------------------------------------------------- */ + +#include "pair_atm.h" + +#include + +#include "atom.h" +#include "citeme.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "neighbor.h" + +using namespace LAMMPS_NS; + +static const char cite_atm_package[] = + "ATM package:\n\n" + "@Article{Lishchuk:2012:164501,\n" + " author = {S. V. Lishchuk},\n" + " title = {Role of three-body interactions in formation of bulk viscosity in liquid argon},\n" + " journal = {J.~Chem.~Phys.},\n" + " year = 2012,\n" + " volume = 136,\n" + " pages = {164501}\n" + "}\n\n"; + +/* ---------------------------------------------------------------------- */ + +PairATM::PairATM(LAMMPS *lmp) : Pair(lmp) +{ + if (lmp->citeme) lmp->citeme->add(cite_atm_package); + + single_enable = 0; + restartinfo = 0; + one_coeff = 1; + manybody_flag = 1; +} + +/* ---------------------------------------------------------------------- + check if allocated, since class can be destructed when incomplete +------------------------------------------------------------------------- */ + +PairATM::~PairATM() +{ + if (copymode) return; + if (allocated) { + memory->destroy(nu); + memory->destroy(setflag); + memory->destroy(cutsq); + } +} + +/* ---------------------------------------------------------------------- + workhorse routine that computes pairwise interactions +------------------------------------------------------------------------- */ + +void PairATM::compute(int eflag, int vflag) +{ + int i,j,k,ii,jj,kk,inum,jnum,jnumm1; + double xi,yi,zi,evdwl; + double rij2,rik2,rjk2,r6; + double rij[3],rik[3],rjk[3],fj[3],fk[3]; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = 0; + + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xi = x[i][0]; + yi = x[i][1]; + zi = x[i][2]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + jnumm1 = jnum - 1; + + for (jj = 0; jj < jnumm1; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + rij[0] = x[j][0] - xi; + rij[1] = x[j][1] - yi; + rij[2] = x[j][2] - zi; + rij2 = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + + for (kk = jj+1; kk < jnum; kk++) { + k = jlist[kk]; + k &= NEIGHMASK; + + rik[0] = x[k][0] - xi; + rik[1] = x[k][1] - yi; + rik[2] = x[k][2] - zi; + rik2 = rik[0]*rik[0] + rik[1]*rik[1] + rik[2]*rik[2]; + + rjk[0] = x[k][0] - x[j][0]; + rjk[1] = x[k][1] - x[j][1]; + rjk[2] = x[k][2] - x[j][2]; + rjk2 = rjk[0]*rjk[0] + rjk[1]*rjk[1] + rjk[2]*rjk[2]; + + r6 = rij2*rik2*rjk2; + if (r6 > cut_sixth) continue; + + interaction_ddd(nu[type[i]][type[j]][type[k]], + r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); + + f[i][0] -= fj[0] + fk[0]; + f[i][1] -= fj[1] + fk[1]; + f[i][2] -= fj[2] + fk[2]; + f[j][0] += fj[0]; + f[j][1] += fj[1]; + f[j][2] += fj[2]; + f[k][0] += fk[0]; + f[k][1] += fk[1]; + f[k][2] += fk[2]; + + if (evflag) ev_tally3(i,j,k,evdwl,0.0,fj,fk,rij,rik); + } + } + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + reads the input script line with arguments you define +------------------------------------------------------------------------- */ + +void PairATM::settings(int narg, char **arg) +{ + if (narg != 1) error->all(FLERR,"Illegal pair_style command"); + cut_global = force->numeric(FLERR,arg[0]); +} + +/* ---------------------------------------------------------------------- + set coefficients for one i,j,k type triplet +------------------------------------------------------------------------- */ + +void PairATM::coeff(int narg, char **arg) +{ + if (narg != 4) + error->all(FLERR,"Incorrect args for pair coefficients"); + if (!allocated) allocate(); + + int ilo,ihi,jlo,jhi,klo,khi; + force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); + force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); + force->bounds(FLERR,arg[2],atom->ntypes,klo,khi); + + double nu_one = force->numeric(FLERR,arg[3]); + + cut_sixth = cut_global*cut_global; + cut_sixth = cut_sixth*cut_sixth*cut_sixth; + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j<=jhi; j++) { + for (int k = MAX(klo,j); k<=khi; k++) { + nu[i][j][k] = nu[i][k][j] = + nu[j][i][k] = nu[j][k][i] = + nu[k][i][j] = nu[k][j][i] = nu_one; + count++; + } + setflag[i][j] = 1; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairATM::init_style() +{ + // need a full neighbor list + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->half = 0; + neighbor->requests[irequest]->full = 1; +} + +/* ---------------------------------------------------------------------- + perform initialization for one i,j type pair +------------------------------------------------------------------------- */ + +double PairATM::init_one(int i, int j) +{ + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + return cut_global; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairATM::write_restart(FILE *fp) +{ + write_restart_settings(fp); + + int i,j,k; + 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]) for (k = i; k <= atom->ntypes; k++) fwrite(&nu[i][j][k],sizeof(double),1,fp); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairATM::read_restart(FILE *fp) +{ + read_restart_settings(fp); + allocate(); + + int i,j,k; + 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]) for (k = i; k <= atom->ntypes; k++) { + if (me == 0) fread(&nu[i][j][k],sizeof(double),1,fp); + MPI_Bcast(&nu[i][j][k],1,MPI_DOUBLE,0,world); + } + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairATM::write_restart_settings(FILE *fp) +{ + fwrite(&cut_global,sizeof(double),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairATM::read_restart_settings(FILE *fp) +{ + int me = comm->me; + if (me == 0) fread(&cut_global,sizeof(double),1,fp); + MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); +} + +/* ---------------------------------------------------------------------- */ + +void PairATM::allocate() +{ + allocated = 1; + int n = atom->ntypes; + memory->create(nu,n+1,n+1,n+1,"pair:a"); + memory->create(setflag,n+1,n+1,"pair:setflag"); + memory->create(cutsq,n+1,n+1,"pair:cutsq"); +} + +/* ---------------------------------------------------------------------- + Axilrod-Teller-Muto (dipole-dipole-dipole) potential +------------------------------------------------------------------------- */ + +void PairATM::interaction_ddd(double nu, + double r6, double rij2, double rik2, double rjk2, + double *rij, double *rik, double *rjk, + double *fj, double *fk, int eflag, double &eng) +{ + double r5inv,rri,rrj,rrk,rrr; + r5inv = nu / (r6*r6*sqrt(r6)); + rri = rik[0]*rij[0] + rik[1]*rij[1] + rik[2]*rij[2]; + rrj = rij[0]*rjk[0] + rij[1]*rjk[1] + rij[2]*rjk[2]; + rrk = rjk[0]*rik[0] + rjk[1]*rik[1] + rjk[2]*rik[2]; + rrr = 5.0*rri*rrj*rrk; + for (int i=0; i<3; i++) { + fj[i] = rrj*(rrk - rri)*rik[i] + - (rrk*rri - rjk2*rik2 + rrr/rij2)*rij[i] + + (rrk*rri - rik2*rij2 + rrr/rjk2)*rjk[i]; + fj[i] *= 3.0*r5inv; + fk[i] = rrk*(rri + rrj)*rij[i] + + (rri*rrj + rik2*rij2 - rrr/rjk2)*rjk[i] + + (rri*rrj + rij2*rjk2 - rrr/rik2)*rik[i]; + fk[i] *= 3.0*r5inv; + } + if (eflag) eng = (r6 - 0.6*rrr)*r5inv; +} diff --git a/src/MANYBODY/pair_atm.h b/src/MANYBODY/pair_atm.h new file mode 100644 index 0000000000..b5bfc64010 --- /dev/null +++ b/src/MANYBODY/pair_atm.h @@ -0,0 +1,76 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Sergey Lishchuk +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS + +PairStyle(atm,PairATM) + +#else + +#ifndef LMP_PAIR_ATM_H +#define LMP_PAIR_ATM_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairATM : public Pair { + public: + PairATM(class LAMMPS *); + virtual ~PairATM(); + virtual void compute(int, int); + void settings(int, char **); + virtual void coeff(int, char **); + virtual void init_style(); + virtual double init_one(int, int); + void write_restart(FILE *); + void read_restart(FILE *); + void write_restart_settings(FILE *); + void read_restart_settings(FILE *); + + protected: + double cut_global, cut_sixth; + double ***nu; + + protected: + virtual void allocate(); + void interaction_ddd(double, double, double, double, double, double *, double *, double *, double *, double *, int, double &); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Illegal pair_style 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: All pair coeffs are not set + +All pair coefficients must be set in the data file or by the +pair_coeff command before running a simulation. + +*/ From 24405217d04153ba8eaf9d204d595e0a428cb6f7 Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Thu, 5 Jul 2018 11:20:27 -0400 Subject: [PATCH 235/675] Updated Install.sh in KOKKOS. --- src/KOKKOS/Install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index c6fab2a1b1..08c7468a49 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -93,6 +93,8 @@ action domain_kokkos.cpp action domain_kokkos.h action fix_deform_kokkos.cpp action fix_deform_kokkos.h +action fix_enforce2d_kokkos.cpp +action fix_enforce2d_kokkos.h action fix_eos_table_rx_kokkos.cpp fix_eos_table_rx.cpp action fix_eos_table_rx_kokkos.h fix_eos_table_rx.h action fix_langevin_kokkos.cpp From db75232957d5964f07df7dc6d1f774ca089fc3b8 Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Fri, 6 Jul 2018 11:31:48 -0400 Subject: [PATCH 236/675] Removed debug print and comment. --- src/KOKKOS/fix_enforce2d_kokkos.cpp | 4 ---- src/KOKKOS/fix_enforce2d_kokkos.h | 1 - 2 files changed, 5 deletions(-) diff --git a/src/KOKKOS/fix_enforce2d_kokkos.cpp b/src/KOKKOS/fix_enforce2d_kokkos.cpp index da33455978..f2c313b2fe 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.cpp +++ b/src/KOKKOS/fix_enforce2d_kokkos.cpp @@ -44,10 +44,6 @@ FixEnforce2DKokkos::FixEnforce2DKokkos(LAMMPS *lmp, int narg, char * template void FixEnforce2DKokkos::setup(int vflag) { - if( comm->me == 0 ){ - fprintf(screen, "omega, angmom and torque flags are %d, %d, %d\n", - atomKK->omega_flag, atomKK->angmom_flag, atomKK->torque_flag ); - } post_force(vflag); } diff --git a/src/KOKKOS/fix_enforce2d_kokkos.h b/src/KOKKOS/fix_enforce2d_kokkos.h index d8a13d281f..ae8183acf1 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.h +++ b/src/KOKKOS/fix_enforce2d_kokkos.h @@ -67,7 +67,6 @@ struct FixEnforce2DKokkosPostForceFunctor { KOKKOS_INLINE_FUNCTION void operator()(const int i) const { - // c.template? Really C++? c.template post_force_item (i); } }; From 0c1dcfb617e9b0f4aeb3a38919d14b20ab09b357 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Fri, 6 Jul 2018 17:06:37 -0600 Subject: [PATCH 237/675] Favor copymode instead of cleanup_copy --- src/KOKKOS/fix_enforce2d_kokkos.cpp | 11 ++--------- src/KOKKOS/fix_enforce2d_kokkos.h | 3 +-- src/fix_enforce2d.cpp | 2 ++ 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/KOKKOS/fix_enforce2d_kokkos.cpp b/src/KOKKOS/fix_enforce2d_kokkos.cpp index f2c313b2fe..33aa39e2f6 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.cpp +++ b/src/KOKKOS/fix_enforce2d_kokkos.cpp @@ -77,6 +77,7 @@ void FixEnforce2DKokkos::post_force(int vflag) if( atomKK->angmom_flag ) flag_mask |= 2; if( atomKK->torque_flag ) flag_mask |= 4; + copymode = 1; switch( flag_mask ){ case 0:{ FixEnforce2DKokkosPostForceFunctor functor(this); @@ -121,7 +122,7 @@ void FixEnforce2DKokkos::post_force(int vflag) default: error->all(FLERR, "flag_mask outside of what it should be"); } - + copymode = 0; // Probably sync here again? atomKK->sync(execution_space,datamask_read); @@ -159,14 +160,6 @@ void FixEnforce2DKokkos::post_force_item( int i ) const } -template -void FixEnforce2DKokkos::cleanup_copy() -{ - id = style = NULL; - vatom = NULL; -} - - namespace LAMMPS_NS { template class FixEnforce2DKokkos; #ifdef KOKKOS_HAVE_CUDA diff --git a/src/KOKKOS/fix_enforce2d_kokkos.h b/src/KOKKOS/fix_enforce2d_kokkos.h index ae8183acf1..1ed3cf3ef8 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.h +++ b/src/KOKKOS/fix_enforce2d_kokkos.h @@ -33,7 +33,6 @@ class FixEnforce2DKokkos : public FixEnforce2D { FixEnforce2DKokkos(class LAMMPS *, int, char **); // ~FixEnforce2DKokkos() {} // void init(); - void cleanup_copy(); void setup(int); void post_force(int); @@ -63,7 +62,7 @@ struct FixEnforce2DKokkosPostForceFunctor { FixEnforce2DKokkos c; FixEnforce2DKokkosPostForceFunctor(FixEnforce2DKokkos* c_ptr): - c(*c_ptr) {c.cleanup_copy();}; + c(*c_ptr) {}; KOKKOS_INLINE_FUNCTION void operator()(const int i) const { diff --git a/src/fix_enforce2d.cpp b/src/fix_enforce2d.cpp index 4ffd2ca7ac..791a52c50c 100644 --- a/src/fix_enforce2d.cpp +++ b/src/fix_enforce2d.cpp @@ -38,6 +38,8 @@ FixEnforce2D::FixEnforce2D(LAMMPS *lmp, int narg, char **arg) : FixEnforce2D::~FixEnforce2D() { + if (copymode) return; + delete [] flist; } From b259de95d27d1b5828379351a995bfb77aa098b5 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 9 Jul 2018 13:00:52 -0600 Subject: [PATCH 238/675] fix for ScaFaCoS library --- cmake/CMakeLists.txt | 13 +- examples/scafacos/data.NaCl | 25 ++ examples/scafacos/in.scafacos | 22 ++ src/SCAFACOS/Install.sh | 67 +++++ src/SCAFACOS/fix_scafacos.cpp | 488 ++++++++++++++++++++++++++++++++++ src/SCAFACOS/fix_scafacos.h | 164 ++++++++++++ 6 files changed, 776 insertions(+), 3 deletions(-) create mode 100644 examples/scafacos/data.NaCl create mode 100644 examples/scafacos/in.scafacos create mode 100755 src/SCAFACOS/Install.sh create mode 100644 src/SCAFACOS/fix_scafacos.cpp create mode 100644 src/SCAFACOS/fix_scafacos.h diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 8bc079fd85..a335a441da 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -119,7 +119,7 @@ option(ENABLE_ALL "Build all default packages" OFF) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SNAP SRD) -set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE +set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE SCAFACOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC @@ -150,11 +150,11 @@ pkg_depends(CORESHELL KSPACE) ###################################################### # packages with special compiler needs or external libs ###################################################### -if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE) +if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE OR PKG_SCAFACOS) enable_language(Fortran) endif() -if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM) +if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM OR PKG_SCAFACOS) enable_language(C) endif() @@ -313,6 +313,13 @@ if(PKG_LATTE) list(APPEND LAMMPS_LINK_LIBS ${LATTE_LIBRARIES} ${LAPACK_LIBRARIES}) endif() +if(PKG_SCAFACOS) + FIND_PACKAGE(PkgConfig) + PKG_CHECK_MODULES(SCAFACOS scafacos) + include_directories(${SCAFACOS_INCLUDE_DIRS}) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_LDFLAGS}) +endif() + if(PKG_USER-MOLFILE) add_library(molfile INTERFACE) target_include_directories(molfile INTERFACE ${LAMMPS_LIB_SOURCE_DIR}/molfile) diff --git a/examples/scafacos/data.NaCl b/examples/scafacos/data.NaCl new file mode 100644 index 0000000000..1a599b957d --- /dev/null +++ b/examples/scafacos/data.NaCl @@ -0,0 +1,25 @@ + LAMMPS Description + + 8 atoms + + 2 atom types + + 0.0000000000000000 2.000000000000000 xlo xhi + 0.0000000000000000 2.000000000000000 ylo yhi + 0.0000000000000000 2.000000000000000 zlo zhi + + Masses + + 1 22.98976928 + 2 35.45 + + Atoms + + 1 1 1 1.0 0.0 0.0 0.0 + 2 1 2 -1.0 1.0 0.0 0.0 + 3 1 2 -1.0 0.0 1.0 0.0 + 4 1 1 1.0 1.0 1.0 0.0 + 5 1 2 -1.0 0.0 0.0 1.0 + 6 1 1 1.0 1.0 0.0 1.0 + 7 1 1 1.0 0.0 1.0 1.0 + 8 1 2 -1.0 1.0 1.0 1.0 diff --git a/examples/scafacos/in.scafacos b/examples/scafacos/in.scafacos new file mode 100644 index 0000000000..a2849583f5 --- /dev/null +++ b/examples/scafacos/in.scafacos @@ -0,0 +1,22 @@ +# Point dipoles in a 2d box + +units lj +atom_style full + +read_data data.NaCl + +# need both mass settings due to hybrid atom style + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all scafacos fmm + +timestep 0.005 + +run 100 diff --git a/src/SCAFACOS/Install.sh b/src/SCAFACOS/Install.sh new file mode 100755 index 0000000000..ace610050b --- /dev/null +++ b/src/SCAFACOS/Install.sh @@ -0,0 +1,67 @@ +# Install/unInstall package files in LAMMPS +# mode = 0/1/2 for uninstall/install/update + +mode=$1 + +# enforce using portable C locale +LC_ALL=C +export LC_ALL + +# arg1 = file, arg2 = file it depends on + +action () { + if (test $mode = 0) then + rm -f ../$1 + elif (! cmp -s $1 ../$1) then + if (test -z "$2" || test -e ../$2) then + cp $1 .. + if (test $mode = 2) then + echo " updating src/$1" + fi + fi + elif (test -n "$2") then + if (test ! -e ../$2) then + rm -f ../$1 + fi + fi +} + +# all package files with no dependencies + +for file in *.cpp *.h; do + test -f ${file} && action $file +done + +# edit 2 Makefile.package files to include/exclude package info + +if (test $1 = 1) then + + if (test -e ../Makefile.package) then + sed -i -e 's/[^ \t]*scafacos[^ \t]* //' ../Makefile.package + sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/scafacos/includelink |' ../Makefile.package + sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/scafacos/liblink |' ../Makefile.package + #sed -i -e 's|^PKG_LIB =[ \t]*|&-lscafacos |' ../Makefile.package + sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(scafacos_SYSINC) |' ../Makefile.package + sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(scafacos_SYSLIB) |' ../Makefile.package + sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(scafacos_SYSPATH) |' ../Makefile.package + fi + + if (test -e ../Makefile.package.settings) then + sed -i -e '/^include.*scafacos.*$/d' ../Makefile.package.settings + # multiline form needed for BSD sed on Macs + sed -i -e '4 i \ +include ..\/..\/lib\/scafacos\/Makefile.lammps +' ../Makefile.package.settings + fi + +elif (test $1 = 0) then + + if (test -e ../Makefile.package) then + sed -i -e 's/[^ \t]*scafacos[^ \t]* //' ../Makefile.package + fi + + if (test -e ../Makefile.package.settings) then + sed -i -e '/^include.*scafacos.*$/d' ../Makefile.package.settings + fi + +fi diff --git a/src/SCAFACOS/fix_scafacos.cpp b/src/SCAFACOS/fix_scafacos.cpp new file mode 100644 index 0000000000..f888747047 --- /dev/null +++ b/src/SCAFACOS/fix_scafacos.cpp @@ -0,0 +1,488 @@ +/* ---------------------------------------------------------------------- + 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: Rene Halver (JSC) +------------------------------------------------------------------------- */ + +#include +#include +#include "fix_scafacos.h" +#include "atom.h" +#include "comm.h" +#include "update.h" +#include "neighbor.h" +#include "domain.h" +#include "force.h" +#include "pair.h" +#include "modify.h" +#include "compute.h" +#include "memory.h" +#include "error.h" + +// ScaFaCoS library +#include +#include +#include +#include "fcs.h" +#include "universe.h" + +using namespace LAMMPS_NS; +using namespace FixConst; + +#define INVOKED_PERATOM 8 + +/* ---------------------------------------------------------------------- */ + +FixScafacos::FixScafacos(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg) +{ + // form of fix string: + // fix <#> scafacos [ tolerance ] + + + if (narg < 4) error->all(FLERR,"Illegal fix scafacos command"); + + // read method from fix input + method = arg[3]; + // check if fmm method was chosen + fmm_chosen = !strcmp(method.c_str(),"fmm"); + + int arg_index = 4; + + tolerance_set = false; + + while(arg_index < narg) + { + // check if tolerance option is set + if (strcmp(arg[arg_index],"tolerance") == 0) + { + tolerance_set = true; + ++arg_index; + if (strcmp(arg[arg_index],"energy") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; + else if (strcmp(arg[arg_index],"energy_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_ENERGY_REL; + else if (strcmp(arg[arg_index],"field") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_FIELD; + else if (strcmp(arg[arg_index],"field_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_FIELD_REL; + else if (strcmp(arg[arg_index],"potential") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL; + else if (strcmp(arg[arg_index],"potential_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL_REL; + else + error->all(FLERR,"Illegal fix scafacos command"); + ++arg_index; + tolerance_value = atof(arg[arg_index]); + ++arg_index; + } + else + error->all(FLERR,"Illegal fix scafacos command"); + } +} + +/* ---------------------------------------------------------------------- */ + +FixScafacos::~FixScafacos() +{ + memory->destroy(pot); + memory->destroy(field); +} + +/* ---------------------------------------------------------------------- */ + +int FixScafacos::setmask() +{ + int mask = 0; + //mask |= INITIAL_INTEGRATE; + //mask |= FINAL_INTEGRATE; + mask |= PRE_REVERSE; + mask |= POST_FORCE; + mask |= MIN_POST_FORCE; + mask |= THERMO_ENERGY; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixScafacos::init() +{ + // error checks + + if (domain->dimension == 2) + error->all(FLERR,"Fix scafacos requires 3d problem"); + + rank = comm->me; + + int nlocal = 0; + int proc_grid[3] = {comm->procgrid[0], comm->procgrid[1], comm->procgrid[2]}; + int myloc[3] = {comm->myloc[0], comm->myloc[1], comm->myloc[2]}; + + // call ScaFaCoS init + // TODO: check if universe->uworld is a good idea for computations + result = fcs_init(&fcs,method.c_str(),universe->uworld); + if (!check_result(result, rank)) return; + + setup_handle(); + + nlocal = atom -> nlocal; + // get particle data + x = &atom->x[0][0]; + q = atom->q; + + if (tolerance_set) + { + result = fcs_set_tolerance(fcs,tolerance_type,tolerance_value); + if (!check_result(result, rank)) return; + } + + // print out parameters within handle + if (rank == 0) fcs_print_parameters(fcs); + + // call the tuning routine (needs to be redone, if critical system parameters should change) + result = fcs_tune(fcs,nlocal,x,q); + if (!check_result(result, rank)) return; + + // allocate arrays larger in order to avoid fast reallocation due to fluctuations + local_array_size = (int)(1.25 * (double)nlocal); + + // allocate new result arrays + memory->create(pot,local_array_size,"scafacos:potential"); + memory->create(field,local_array_size*3,"scafacos:field"); + + // set result vectors to zero + for ( int i = 0; i < local_array_size; ++i) + { + pot[i] = 0.0; + field[3*i] = field[3*i+1] = field[3*i+2] = 0.0; + } +} + +/* ---------------------------------------------------------------------- */ + +void FixScafacos::init_list(int id, NeighList *ptr) +{ +} + +/* ---------------------------------------------------------------------- */ + +void FixScafacos::setup(int vflag) +{ + post_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixScafacos::min_setup(int vflag) +{ + post_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixScafacos::setup_pre_reverse(int eflag, int vflag) +{ + pre_reverse(eflag,vflag); +} + +/* ---------------------------------------------------------------------- + integrate electronic degrees of freedom +------------------------------------------------------------------------- */ + +void FixScafacos::initial_integrate(int vflag) {} + +/* ---------------------------------------------------------------------- + store eflag, so can use it in post_force to tally per-atom energies +------------------------------------------------------------------------- */ + +void FixScafacos::pre_reverse(int eflag, int vflag) +{ + int eflag_caller = eflag; +} + +/* ---------------------------------------------------------------------- */ + +void FixScafacos::post_force(int vflag) +{ + + int nlocal; + + nlocal = atom->nlocal; + x = &atom->x[0][0]; + q = atom->q; + + // check if box has changed since the last call of fcs_tune, if yes, call fcs_tune + if (box_has_changed()) + { + setup_handle(); + // print out parameters within handle + if (rank == 0) + { + std::cout << " updated ScaFaCoS handle: " << std::endl; + fcs_print_parameters(fcs); + } + // call the tuning routine (needs to be redone, if critical system parameters should change) + result = fcs_tune(fcs,nlocal,x,q); + if (!check_result(result, rank)) return; + } + + /* + if (fmm_chosen && phantom_particle) + for (int i = 0; i < nlocal; ++i) + { + std::cout << rank << " " << i << " " << x[3*i] << " " << x[3*i+1] << " " << x[3*i+2] << " " << q[i] << std::endl; + } + */ + + // check if arrays for potentials and field are still large enough for the number of particles on process + if (nlocal > local_array_size) + { + // allocate arrays larger in order to avoid fast reallocation due to fluctuations + local_array_size = (int)(1.25 * (double)nlocal); + + // destroy old result arrays + memory->destroy(pot); + memory->destroy(field); + + // allocate result arrays + memory->create(pot,local_array_size,"scafacos:potential"); + memory->create(field,3*local_array_size,"scafacos:field"); + + } + + // set result vectors to zero + for ( int i = 0; i < nlocal; ++i) + { + pot[i] = 0.0; + field[3*i] = field[3*i+1] = field[3*i+2] = 0.0; + } + + // compute Coulomb + fcs_run(fcs, nlocal, x, q, field, pot); + if(!check_result(result,rank)) return; + + double E_coul_loc = 0.0; + // no reduction required (?) + //double E_coul = 0.0; + + for (int i = 0; i < atom->nlocal; ++i) + { + //std::cout << atom->f[i][0] << " " << field[3*i] << " " << q[i] << std::endl; + atom->f[i][0] += field[3*i] * q[i]; + atom->f[i][1] += field[3*i+1] * q[i]; + atom->f[i][2] += field[3*i+2] * q[i]; + E_coul_loc += 0.5 * q[i] * pot[i]; + } + + // not required (?) + // MPI_ALLREDUCE(&E_coul_loc, &E_coul, 1, MPI_DOUBLE, MPI_SUM, universe->uworld); + + force->pair->eng_coul += E_coul_loc; + +} + +/* ---------------------------------------------------------------------- */ + +void FixScafacos::min_post_force(int vflag) +{ + post_force(vflag); +} + +/* ---------------------------------------------------------------------- + integrate electronic degrees of freedom +------------------------------------------------------------------------- */ + +void FixScafacos::final_integrate() {} + +/* ---------------------------------------------------------------------- */ + +void FixScafacos::reset_dt() +{ + //dtv = update->dt; + //dtf = 0.5 * update->dt * force->ftm2v; +} + +/* ---------------------------------------------------------------------- + DFTB energy from LATTE +------------------------------------------------------------------------- */ + +double FixScafacos::compute_scalar() +{ +} + +/* ---------------------------------------------------------------------- + memory usage of local arrays +------------------------------------------------------------------------- */ + +double FixScafacos::memory_usage() +{ + double bytes = 0.0; + bytes += local_array_size * sizeof(double); + bytes += local_array_size * 3 * sizeof(double); + return bytes; +} + +/* ---------------------------------------------------------------------- + setup of ScaFaCoS handle with common parameters +------------------------------------------------------------------------- */ +void FixScafacos::setup_handle() +{ + // store periodicity + periodicity[0] = domain->xperiodic; + periodicity[1] = domain->yperiodic; + periodicity[2] = domain->zperiodic; + + // store offset of the system + offset[0] = domain->boundary[0][0]; + offset[1] = domain->boundary[1][0]; + offset[2] = domain->boundary[2][0]; + + // calculate box vectors + box_x[0] = domain->prd[0]; + box_x[1] = box_x[2] = 0.0; + + box_y[1] = domain->prd[1]; + box_y[0] = box_y[2] = 0.0; + + box_z[2] = domain->prd[2]; + box_z[1] = box_z[0] = 0.0; + + total_particles = atom->natoms; + + // TODO: for now disable short-range calculations within LAMMPS + near_field_flag = 0; + + // enter all parameters required to ScaFaCoS handle + result = fcs_set_box_a(fcs, box_x); + if (!check_result(result, rank)) return; + + result = fcs_set_box_b(fcs, box_y); + if (!check_result(result, rank)) return; + + result = fcs_set_box_c(fcs, box_z); + if (!check_result(result, rank)) return; + + result = fcs_set_box_origin(fcs, offset); + if (!check_result(result, rank)) return; + + result = fcs_set_periodicity(fcs, periodicity); + if (!check_result(result, rank)) return; + + result = fcs_set_near_field_flag(fcs, near_field_flag); + if (!check_result(result, rank)) return; + + result = fcs_set_total_particles(fcs, atom->natoms); + if (!check_result(result, rank)) return; +} + +/* ---------------------------------------------------------------------- + check if box parameters changed, requiring a new call to fcs_tune +------------------------------------------------------------------------- */ +bool FixScafacos::box_has_changed() +{ + bool changed = false; + + double n_periodicity[3]; + double n_offset[3]; + double n_box_x[3]; + double n_box_y[3]; + double n_box_z[3]; + + int n_total_particles; + + // store periodicity + n_periodicity[0] = domain->xperiodic; + n_periodicity[1] = domain->yperiodic; + n_periodicity[2] = domain->zperiodic; + + // store offset of the system + n_offset[0] = domain->boundary[0][0]; + n_offset[1] = domain->boundary[1][0]; + n_offset[2] = domain->boundary[2][0]; + + // calculate box vectors + n_box_x[0] = domain->prd[0]; + n_box_x[1] = n_box_x[2] = 0.0; + + n_box_y[1] = domain->prd[1]; + n_box_y[0] = n_box_y[2] = 0.0; + + n_box_z[2] = domain->prd[2]; + n_box_z[1] = n_box_z[0] = 0.0; + + n_total_particles = atom->natoms; + + changed = changed || + ( n_periodicity[0] != periodicity[0] ) || + ( n_periodicity[1] != periodicity[1] ) || + ( n_periodicity[2] != periodicity[2] ) || + ( n_offset[0] != offset[0] ) || + ( n_offset[1] != offset[1] ) || + ( n_offset[2] != offset[2] ) || + ( n_box_x[0] != box_x[0] ) || + ( n_box_x[1] != box_x[1] ) || + ( n_box_x[2] != box_x[2] ) || + ( n_box_y[0] != box_y[0] ) || + ( n_box_y[1] != box_y[1] ) || + ( n_box_y[2] != box_y[2] ) || + ( n_box_z[0] != box_z[0] ) || + ( n_box_z[1] != box_z[1] ) || + ( n_box_z[2] != box_z[2] ) || + ( n_total_particles != total_particles ); +/* + if (changed) + { + std::cout << rank << " " << "n_per_x : per_x" << n_periodicity[0] << " " << periodicity[0] << std::endl; + std::cout << rank << " " << "n_per_y : per_y" << n_periodicity[1] << " " << periodicity[1] << std::endl; + std::cout << rank << " " << "n_per_z : per_z" << n_periodicity[2] << " " << periodicity[2] << std::endl; + std::cout << rank << " " << "n_off_x : off_x" << n_offset[0] << " " << offset[0] << std::endl; + std::cout << rank << " " << "n_off_y : off_y" << n_offset[1] << " " << offset[1] << std::endl; + std::cout << rank << " " << "n_off_z : off_z" << n_offset[2] << " " << offset[2] << std::endl; + std::cout << rank << " " << "n_bx_x : bx_x" << n_box_x[0] << " " << box_x[0] << std::endl; + std::cout << rank << " " << "n_bx_y : bx_y" << n_box_x[1] << " " << box_x[1] << std::endl; + std::cout << rank << " " << "n_bx_z : bx_z" << n_box_x[2] << " " << box_x[2] << std::endl; + std::cout << rank << " " << "n_by_x : by_x" << n_box_y[0] << " " << box_y[0] << std::endl; + std::cout << rank << " " << "n_by_y : by_y" << n_box_y[1] << " " << box_y[1] << std::endl; + std::cout << rank << " " << "n_by_z : by_z" << n_box_y[2] << " " << box_y[2] << std::endl; + std::cout << rank << " " << "n_bz_x : bz_x" << n_box_z[0] << " " << box_z[0] << std::endl; + std::cout << rank << " " << "n_bz_y : bz_y" << n_box_z[1] << " " << box_z[1] << std::endl; + std::cout << rank << " " << "n_bz_z : bz_z" << n_box_z[2] << " " << box_z[2] << std::endl; + std::cout << rank << " " << "n_total : total" << n_total_particles << " " << total_particles << std::endl; + } +*/ + return changed; +} + + + +/* ---------------------------------------------------------------------- + check of ScaFaCoS result +------------------------------------------------------------------------- */ +bool FixScafacos::check_result(FCSResult result, int comm_rank) +{ + if (result) + { + std::cout << "ScaFaCoS ERROR: Caught error on task " << comm_rank << "!" << std::endl; + std::string err_msg; + std::stringstream ss; + + ss << fcs_result_get_function(result) << "\n" << fcs_result_get_message(result) << "\n"; + err_msg = ss.str(); + + error -> all(FLERR, err_msg.c_str()); + fcs_result_destroy(result); + } + return true; +} + diff --git a/src/SCAFACOS/fix_scafacos.h b/src/SCAFACOS/fix_scafacos.h new file mode 100644 index 0000000000..ffd4a94d32 --- /dev/null +++ b/src/SCAFACOS/fix_scafacos.h @@ -0,0 +1,164 @@ +/* -*- 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 FIX_CLASS + +FixStyle(scafacos,FixScafacos) + +#else + +#ifndef LMP_FIX_SCAFACOS_H +#define LMP_FIX_SCAFACOS_H + +#include "fix.h" +#include "fcs.h" +#include + +namespace LAMMPS_NS { + +class FixScafacos : public Fix { + public: + FixScafacos(class LAMMPS *, int, char **); + virtual ~FixScafacos(); + int setmask(); + void init(); + void init_list(int, NeighList*); + void setup(int); + void min_setup(int); + void setup_pre_reverse(int, int); + void initial_integrate(int); + void pre_reverse(int, int); + void post_force(int); + void min_post_force(int); + void final_integrate(); + void reset_dt(); + double compute_scalar(); + double memory_usage(); + + protected: + std::string method; + + // MPI rank + int rank; + + // source arrays for positions and charges + double *x, *q; + // result arrays for potentials and field + double *pot, *field; + + // box vectors for each dimension + fcs_float box_x[3], box_y[3], box_z[3]; + // offset of the box from the origin + fcs_float offset[3]; + + // periodicity of the system + fcs_int periodicity[3]; + + // ScaFaCoS handle + FCS fcs; + + // ScaFaCoS result variable + FCSResult result; + + // function to check results + bool check_result(FCSResult, int); + + // function to set up handle with common parameters + void setup_handle(); + + // function to check if the box parameters changed, so that a new tuning step is required + bool box_has_changed(); + + // store total number of particles (to check if tune needs to be called again) + fcs_int total_particles; + + // store number of local particles (to be able to readjust the size of result arrays, when needed) + int local_array_size; + + // should the near field calculations be computed by LAMMPS? + fcs_int near_field_flag; + + // type of accuracy chosen (if customized) + fcs_int tolerance_type; + + // value of tolerance + fcs_float tolerance_value; + + // is tolerance set? + bool tolerance_set; + + // check if fmm is chosen (ghost particles, since the implementation needs at least 1 particle on each process!) + bool fmm_chosen; + + // FMM: fmm particle array size + int fmm_array_size; +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Must use units metal with fix latte command + +UNDOCUMENTED + +E: Fix latte currently runs only in serial + +UNDOCUMENTED + +E: LAMMPS is linked against incompatible LATTE library + +UNDOCUMENTED + +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: Fix latte does not yet support a LAMMPS calculation of a Coulomb potential + +UNDOCUMENTED + +E: Could not find fix latte compute ID + +UNDOCUMENTED + +E: Fix latte compute ID does not compute pe/atom + +UNDOCUMENTED + +E: Fix latte requires 3d problem + +UNDOCUMENTED + +E: Fix latte cannot compute Coulomb potential + +UNDOCUMENTED + +E: Fix latte requires 3d simulation + +UNDOCUMENTED + +W: Fix latte should come after all other integration fixes + +UNDOCUMENTED + +E: Internal LATTE problem + +UNDOCUMENTED + +*/ From 400ae7226765d17234fb2e2c57191e2fc5b21fb8 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 9 Jul 2018 13:18:28 -0600 Subject: [PATCH 239/675] added tolerance to the example --- examples/scafacos/in.scafacos | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/scafacos/in.scafacos b/examples/scafacos/in.scafacos index a2849583f5..2a7e830110 100644 --- a/examples/scafacos/in.scafacos +++ b/examples/scafacos/in.scafacos @@ -5,8 +5,6 @@ atom_style full read_data data.NaCl -# need both mass settings due to hybrid atom style - velocity all set 0.0 0.0 0.0 mom no pair_style zero 1.0 @@ -15,7 +13,8 @@ pair_coeff * * neighbor 1.0 bin neigh_modify delay 0 -fix 1 all scafacos fmm +# using the fmm solver with a tolerance in energy of 10^-3 +fix 1 all scafacos fmm energy 0.001 timestep 0.005 From 4743bb3c30c207b1a9b51ed821e5b96ceb9c4080 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 9 Jul 2018 13:35:46 -0600 Subject: [PATCH 240/675] rename of the ScaFaCoS package --- cmake/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index a335a441da..de3f54b9e1 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -119,7 +119,7 @@ option(ENABLE_ALL "Build all default packages" OFF) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SNAP SRD) -set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE SCAFACOS +set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-SCAFACOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC @@ -150,11 +150,11 @@ pkg_depends(CORESHELL KSPACE) ###################################################### # packages with special compiler needs or external libs ###################################################### -if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE OR PKG_SCAFACOS) +if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE OR PKG_USER-SCAFACOS) enable_language(Fortran) endif() -if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM OR PKG_SCAFACOS) +if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM OR PKG_USER-SCAFACOS) enable_language(C) endif() From dbfea0e6170c4a894fa65a086503b33c9944cc4c Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 9 Jul 2018 13:53:31 -0600 Subject: [PATCH 241/675] update folder structure to comply to LAMMPS contribution rules --- cmake/CMakeLists.txt | 2 +- src/{SCAFACOS => USER-SCAFACOS}/Install.sh | 0 src/{SCAFACOS => USER-SCAFACOS}/fix_scafacos.cpp | 0 src/{SCAFACOS => USER-SCAFACOS}/fix_scafacos.h | 0 4 files changed, 1 insertion(+), 1 deletion(-) rename src/{SCAFACOS => USER-SCAFACOS}/Install.sh (100%) rename src/{SCAFACOS => USER-SCAFACOS}/fix_scafacos.cpp (100%) rename src/{SCAFACOS => USER-SCAFACOS}/fix_scafacos.h (100%) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 05e4964e0b..afb93b9d1b 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -348,7 +348,7 @@ if(PKG_LATTE) list(APPEND LAMMPS_LINK_LIBS ${LATTE_LIBRARIES} ${LAPACK_LIBRARIES}) endif() -if(PKG_SCAFACOS) +if(PKG_USER-SCAFACOS) FIND_PACKAGE(PkgConfig) PKG_CHECK_MODULES(SCAFACOS scafacos) include_directories(${SCAFACOS_INCLUDE_DIRS}) diff --git a/src/SCAFACOS/Install.sh b/src/USER-SCAFACOS/Install.sh similarity index 100% rename from src/SCAFACOS/Install.sh rename to src/USER-SCAFACOS/Install.sh diff --git a/src/SCAFACOS/fix_scafacos.cpp b/src/USER-SCAFACOS/fix_scafacos.cpp similarity index 100% rename from src/SCAFACOS/fix_scafacos.cpp rename to src/USER-SCAFACOS/fix_scafacos.cpp diff --git a/src/SCAFACOS/fix_scafacos.h b/src/USER-SCAFACOS/fix_scafacos.h similarity index 100% rename from src/SCAFACOS/fix_scafacos.h rename to src/USER-SCAFACOS/fix_scafacos.h From 4c4d8372e45ca2ca16dab99b32a34fd8e8e94ecf Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 9 Jul 2018 14:01:06 -0600 Subject: [PATCH 242/675] removed C++ std::cout I/O and replaced it with printf --- src/USER-SCAFACOS/fix_scafacos.cpp | 52 ++++++++++++++++-------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/src/USER-SCAFACOS/fix_scafacos.cpp b/src/USER-SCAFACOS/fix_scafacos.cpp index f888747047..40d2556cdd 100644 --- a/src/USER-SCAFACOS/fix_scafacos.cpp +++ b/src/USER-SCAFACOS/fix_scafacos.cpp @@ -31,7 +31,6 @@ #include "error.h" // ScaFaCoS library -#include #include #include #include "fcs.h" @@ -67,28 +66,28 @@ FixScafacos::FixScafacos(LAMMPS *lmp, int narg, char **arg) : // check if tolerance option is set if (strcmp(arg[arg_index],"tolerance") == 0) { - tolerance_set = true; - ++arg_index; - if (strcmp(arg[arg_index],"energy") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; - else if (strcmp(arg[arg_index],"energy_rel") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_ENERGY_REL; - else if (strcmp(arg[arg_index],"field") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_FIELD; - else if (strcmp(arg[arg_index],"field_rel") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_FIELD_REL; - else if (strcmp(arg[arg_index],"potential") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL; - else if (strcmp(arg[arg_index],"potential_rel") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL_REL; - else - error->all(FLERR,"Illegal fix scafacos command"); - ++arg_index; - tolerance_value = atof(arg[arg_index]); - ++arg_index; + tolerance_set = true; + ++arg_index; + if (strcmp(arg[arg_index],"energy") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; + else if (strcmp(arg[arg_index],"energy_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_ENERGY_REL; + else if (strcmp(arg[arg_index],"field") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_FIELD; + else if (strcmp(arg[arg_index],"field_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_FIELD_REL; + else if (strcmp(arg[arg_index],"potential") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL; + else if (strcmp(arg[arg_index],"potential_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL_REL; + else + error->all(FLERR,"Illegal fix scafacos command"); + ++arg_index; + tolerance_value = atof(arg[arg_index]); + ++arg_index; } else - error->all(FLERR,"Illegal fix scafacos command"); + error->all(FLERR,"Illegal fix scafacos command"); } } @@ -226,12 +225,14 @@ void FixScafacos::post_force(int vflag) if (box_has_changed()) { setup_handle(); - // print out parameters within handle + // print out parameters within handle TODO: should be done in C style + /* if (rank == 0) { - std::cout << " updated ScaFaCoS handle: " << std::endl; - fcs_print_parameters(fcs); + std::cout << " updated ScaFaCoS handle: " << std::endl; + fcs_print_parameters(fcs); } + */ // call the tuning routine (needs to be redone, if critical system parameters should change) result = fcs_tune(fcs,nlocal,x,q); if (!check_result(result, rank)) return; @@ -473,7 +474,8 @@ bool FixScafacos::check_result(FCSResult result, int comm_rank) { if (result) { - std::cout << "ScaFaCoS ERROR: Caught error on task " << comm_rank << "!" << std::endl; + printf("ScaFaCoS Error: Caught error on task %d.\n", comm_rank); + //std::cout << "ScaFaCoS ERROR: Caught error on task " << comm_rank << "!" << std::endl; std::string err_msg; std::stringstream ss; From dd38318f5f01e7efe1aeee229b89f0b113508f50 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 9 Jul 2018 14:12:06 -0600 Subject: [PATCH 243/675] adjustments to indention and line lengths (<=80 now) --- src/USER-SCAFACOS/fix_scafacos.cpp | 118 ++++++++++------------------- 1 file changed, 41 insertions(+), 77 deletions(-) diff --git a/src/USER-SCAFACOS/fix_scafacos.cpp b/src/USER-SCAFACOS/fix_scafacos.cpp index 40d2556cdd..6b89348a16 100644 --- a/src/USER-SCAFACOS/fix_scafacos.cpp +++ b/src/USER-SCAFACOS/fix_scafacos.cpp @@ -54,8 +54,6 @@ FixScafacos::FixScafacos(LAMMPS *lmp, int narg, char **arg) : // read method from fix input method = arg[3]; - // check if fmm method was chosen - fmm_chosen = !strcmp(method.c_str(),"fmm"); int arg_index = 4; @@ -149,23 +147,18 @@ void FixScafacos::init() // print out parameters within handle if (rank == 0) fcs_print_parameters(fcs); - // call the tuning routine (needs to be redone, if critical system parameters should change) + // call the tuning routine (needs to be redone, if critical system + // parameters should change) result = fcs_tune(fcs,nlocal,x,q); if (!check_result(result, rank)) return; - // allocate arrays larger in order to avoid fast reallocation due to fluctuations + // allocate arrays larger in order to avoid fast + // reallocation due to fluctuations local_array_size = (int)(1.25 * (double)nlocal); // allocate new result arrays memory->create(pot,local_array_size,"scafacos:potential"); memory->create(field,local_array_size*3,"scafacos:field"); - - // set result vectors to zero - for ( int i = 0; i < local_array_size; ++i) - { - pot[i] = 0.0; - field[3*i] = field[3*i+1] = field[3*i+2] = 0.0; - } } /* ---------------------------------------------------------------------- */ @@ -221,10 +214,12 @@ void FixScafacos::post_force(int vflag) x = &atom->x[0][0]; q = atom->q; - // check if box has changed since the last call of fcs_tune, if yes, call fcs_tune + // check if box has changed since the last call of fcs_tune, + // if it has, call fcs_tune if (box_has_changed()) { setup_handle(); + // print out parameters within handle TODO: should be done in C style /* if (rank == 0) @@ -233,23 +228,19 @@ void FixScafacos::post_force(int vflag) fcs_print_parameters(fcs); } */ - // call the tuning routine (needs to be redone, if critical system parameters should change) + + // call the tuning routine (needs to be redone, if critical + // system parameters should change) result = fcs_tune(fcs,nlocal,x,q); if (!check_result(result, rank)) return; } - /* - if (fmm_chosen && phantom_particle) - for (int i = 0; i < nlocal; ++i) - { - std::cout << rank << " " << i << " " << x[3*i] << " " << x[3*i+1] << " " << x[3*i+2] << " " << q[i] << std::endl; - } - */ - - // check if arrays for potentials and field are still large enough for the number of particles on process + // check if arrays for potentials and field are still large enough + // for the number of particles on process if (nlocal > local_array_size) { - // allocate arrays larger in order to avoid fast reallocation due to fluctuations + // allocate arrays larger in order to avoid fast + // reallocation due to fluctuations local_array_size = (int)(1.25 * (double)nlocal); // destroy old result arrays @@ -274,8 +265,6 @@ void FixScafacos::post_force(int vflag) if(!check_result(result,rank)) return; double E_coul_loc = 0.0; - // no reduction required (?) - //double E_coul = 0.0; for (int i = 0; i < atom->nlocal; ++i) { @@ -286,9 +275,6 @@ void FixScafacos::post_force(int vflag) E_coul_loc += 0.5 * q[i] * pot[i]; } - // not required (?) - // MPI_ALLREDUCE(&E_coul_loc, &E_coul, 1, MPI_DOUBLE, MPI_SUM, universe->uworld); - force->pair->eng_coul += E_coul_loc; } @@ -392,39 +378,39 @@ void FixScafacos::setup_handle() ------------------------------------------------------------------------- */ bool FixScafacos::box_has_changed() { - bool changed = false; + bool changed = false; - double n_periodicity[3]; - double n_offset[3]; - double n_box_x[3]; - double n_box_y[3]; - double n_box_z[3]; + double n_periodicity[3]; + double n_offset[3]; + double n_box_x[3]; + double n_box_y[3]; + double n_box_z[3]; - int n_total_particles; + int n_total_particles; - // store periodicity - n_periodicity[0] = domain->xperiodic; - n_periodicity[1] = domain->yperiodic; - n_periodicity[2] = domain->zperiodic; + // store periodicity + n_periodicity[0] = domain->xperiodic; + n_periodicity[1] = domain->yperiodic; + n_periodicity[2] = domain->zperiodic; - // store offset of the system - n_offset[0] = domain->boundary[0][0]; - n_offset[1] = domain->boundary[1][0]; - n_offset[2] = domain->boundary[2][0]; + // store offset of the system + n_offset[0] = domain->boundary[0][0]; + n_offset[1] = domain->boundary[1][0]; + n_offset[2] = domain->boundary[2][0]; - // calculate box vectors - n_box_x[0] = domain->prd[0]; - n_box_x[1] = n_box_x[2] = 0.0; + // calculate box vectors + n_box_x[0] = domain->prd[0]; + n_box_x[1] = n_box_x[2] = 0.0; - n_box_y[1] = domain->prd[1]; - n_box_y[0] = n_box_y[2] = 0.0; + n_box_y[1] = domain->prd[1]; + n_box_y[0] = n_box_y[2] = 0.0; - n_box_z[2] = domain->prd[2]; - n_box_z[1] = n_box_z[0] = 0.0; + n_box_z[2] = domain->prd[2]; + n_box_z[1] = n_box_z[0] = 0.0; - n_total_particles = atom->natoms; + n_total_particles = atom->natoms; - changed = changed || + changed = changed || ( n_periodicity[0] != periodicity[0] ) || ( n_periodicity[1] != periodicity[1] ) || ( n_periodicity[2] != periodicity[2] ) || @@ -441,28 +427,7 @@ bool FixScafacos::box_has_changed() ( n_box_z[1] != box_z[1] ) || ( n_box_z[2] != box_z[2] ) || ( n_total_particles != total_particles ); -/* - if (changed) - { - std::cout << rank << " " << "n_per_x : per_x" << n_periodicity[0] << " " << periodicity[0] << std::endl; - std::cout << rank << " " << "n_per_y : per_y" << n_periodicity[1] << " " << periodicity[1] << std::endl; - std::cout << rank << " " << "n_per_z : per_z" << n_periodicity[2] << " " << periodicity[2] << std::endl; - std::cout << rank << " " << "n_off_x : off_x" << n_offset[0] << " " << offset[0] << std::endl; - std::cout << rank << " " << "n_off_y : off_y" << n_offset[1] << " " << offset[1] << std::endl; - std::cout << rank << " " << "n_off_z : off_z" << n_offset[2] << " " << offset[2] << std::endl; - std::cout << rank << " " << "n_bx_x : bx_x" << n_box_x[0] << " " << box_x[0] << std::endl; - std::cout << rank << " " << "n_bx_y : bx_y" << n_box_x[1] << " " << box_x[1] << std::endl; - std::cout << rank << " " << "n_bx_z : bx_z" << n_box_x[2] << " " << box_x[2] << std::endl; - std::cout << rank << " " << "n_by_x : by_x" << n_box_y[0] << " " << box_y[0] << std::endl; - std::cout << rank << " " << "n_by_y : by_y" << n_box_y[1] << " " << box_y[1] << std::endl; - std::cout << rank << " " << "n_by_z : by_z" << n_box_y[2] << " " << box_y[2] << std::endl; - std::cout << rank << " " << "n_bz_x : bz_x" << n_box_z[0] << " " << box_z[0] << std::endl; - std::cout << rank << " " << "n_bz_y : bz_y" << n_box_z[1] << " " << box_z[1] << std::endl; - std::cout << rank << " " << "n_bz_z : bz_z" << n_box_z[2] << " " << box_z[2] << std::endl; - std::cout << rank << " " << "n_total : total" << n_total_particles << " " << total_particles << std::endl; - } -*/ - return changed; + return changed; } @@ -475,11 +440,11 @@ bool FixScafacos::check_result(FCSResult result, int comm_rank) if (result) { printf("ScaFaCoS Error: Caught error on task %d.\n", comm_rank); - //std::cout << "ScaFaCoS ERROR: Caught error on task " << comm_rank << "!" << std::endl; std::string err_msg; std::stringstream ss; - ss << fcs_result_get_function(result) << "\n" << fcs_result_get_message(result) << "\n"; + ss << fcs_result_get_function(result) << "\n" + << fcs_result_get_message(result) << "\n"; err_msg = ss.str(); error -> all(FLERR, err_msg.c_str()); @@ -487,4 +452,3 @@ bool FixScafacos::check_result(FCSResult result, int comm_rank) } return true; } - From 3a824b3a4b402f5b3d48f334111e1f66bd2e9415 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 9 Jul 2018 14:16:46 -0600 Subject: [PATCH 244/675] mods to Sergey's files --- doc/src/pair_atm.html | 91 +++++++++++++++++++++++++++ doc/src/pair_atm.txt | 95 +++++++++++++++++++++++----- examples/README | 1 + examples/{ => atm}/in.atm | 6 +- examples/atm/log.9Jul18.atm.g++.1 | 100 ++++++++++++++++++++++++++++++ examples/atm/log.9Jul18.atm.g++.4 | 100 ++++++++++++++++++++++++++++++ src/MANYBODY/pair_atm.cpp | 10 +-- src/MANYBODY/pair_atm.h | 10 +-- 8 files changed, 383 insertions(+), 30 deletions(-) create mode 100644 doc/src/pair_atm.html rename examples/{ => atm}/in.atm (88%) create mode 100644 examples/atm/log.9Jul18.atm.g++.1 create mode 100644 examples/atm/log.9Jul18.atm.g++.4 diff --git a/doc/src/pair_atm.html b/doc/src/pair_atm.html new file mode 100644 index 0000000000..df8e6099cf --- /dev/null +++ b/doc/src/pair_atm.html @@ -0,0 +1,91 @@ + +

LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands +
+ + + + + + +
+ +

pair_style atm command +

+

Syntax: +

+
pair_style atm args = cutoff 
+
+

Examples: +

+
pair_style 2.5
+pair_coeff * * * 0.072 
+
+
pair_style	hybrid/overlay lj/cut 6.5 atm 2.5
+pair_coeff	* * lj/cut 1.0 1.0
+pair_coeff	* * atm * 0.072 
+
+

Description: +

+

The atm style computes a 3-body Axilrod-Teller-Muto +potential for the energy E of a system of atoms as +

+
+
+

where r12, r23 and r31 are the distances between the atoms, +gamma1 is included by the sides r12 and r31 +with similar definitions for gamma2 and gamma3, +nu is the three-body interaction strength (energy times distance^9 units). +

+

The atm is typically used in compination with some two-body potential +using hybrid/overlay style as in an example above. +

+

The calculations are not undertaken if the distances between atoms satisfy +r12 r23 r31 > curoff^3. Virtual cutoff distance based on a user defined +tolerance tol is not used. +

+

The Axilrod-Teller-Muto potential file must contain entries for all the +elements listed in the pair_coeff command. It can also contain +entries for additional elements not being used in a particular +simulation; LAMMPS ignores those entries. +

+

For a single-element simulation, only a single entry is required +(e.g. 1 1 1). For a two-element simulation, the file must contain 4 +entries (eg. 1 1 1, 1 1 2, 1 2 2, 2 2 2), that +specify ATM parameters for all combinations of the two elements +interacting in three-body configurations. Thus for 3 elements, 10 +entries would be required, etc. +

+
+ +

Shift, table, tail correction, rRESPA info: +

+

This pair style does not support the pair_modify +shift, table, and tail options. +

+

This pair style can only be used via the pair keyword of the +run_style respa command. It does not support the +inner, middle, outer keywords. +

+
+ +

Restrictions: +

+

This pair style is part of the MANYBODY package. It is only enabled +if LAMMPS was built with that package. See +the Making LAMMPS section for more info. +

+

Related commands: +

+

pair_coeff +

+

Default: none +

+
+ + + +

(Axilrod) +Axilrod and Teller, J Chem Phys, 11, 299 (1943); +Muto, Nippon Sugaku Butsuri Gakkwaishi 17, 629 (1943). +

+ diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index 48260c161a..786400b626 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -10,16 +10,18 @@ pair_style atm command :h3 [Syntax:] -pair_style atm args = cutoff :pre +pair_style atm cutoff :pre + +cutoff = global cutoff for 3-body interactions (distance units) :ul [Examples:] pair_style 2.5 pair_coeff * * * 0.072 :pre -pair_style hybrid/overlay lj/cut 6.5 atm 2.5 -pair_coeff * * lj/cut 1.0 1.0 -pair_coeff * * atm * 0.072 :pre +pair_style hybrid/overlay lj/cut 6.5 atm 2.5 +pair_coeff * * lj/cut 1.0 1.0 +pair_coeff * * atm * 0.072 :pre [Description:] @@ -28,18 +30,60 @@ potential for the energy E of a system of atoms as :c,image(Eqs/pair_atm.jpg) -where r12, r23 and r31 are the distances between the atoms, -gamma1 is included by the sides r12 and r31 -with similar definitions for gamma2 and gamma3, -nu is the three-body interaction strength (energy times distance^9 units). +where r12, r23 and r31 are the distances between pairs of atoms, +gamma1 is the angle ???, gamma2 is the angle ???, gamma3 is the angle +???, and nu is the three-body interaction strength. +A diagram of the 3 atoms might help here. -The {atm} is typically used in compination with some two-body potential -using "hybrid/overlay"_pair_hybrid.html style as in an example above. +The {atm} potential is typically used in combination with a two-body +potential using the "pair_style hybrid/overlay"_pair_hybrid.html +command as in the example above. +-------------------- + +The rest of this section needs some work to make things more clear. + +You need to explain exactly how the cutoff is used. + +I don't think this is true: The calculations are not undertaken if the distances between atoms satisfy -r12 r23 r31 > curoff^3. Virtual cutoff distance based on a user defined +r12 r23 r31 > cutoff^3. + +If r12 > cutoff+skin, then that pair of atoms is not in +the neighbor list, regardless of what r23 and r31 are, +so how can it be computed? + +What does this line mean? +Virtual cutoff distance based on a user defined tolerance tol is not used. +You must explain exactly what the user needs to put +in the input script to model single element and multi-element +systems. + +You refer to an ATM potential file, but I don't think there is +such a thing. There is no code in pair_atm.cpp that reads +a file. Isn't it all pair_coeff commands? In LAMMPS lingo, +potential files are the files in the potentials dir. +There is no such thing for ATM, right? + +What is the geometry of i,j,k interactions - you don't explain it. +Which one is the central atom? + +You say all the K values for a particular I,J must be specified. +I don't see where the code checks for this. + +This is the way to word the explation of the per-pair values required: + +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 restart files read by the +"read_restart"_read_restart.html commands: + +?? explain what K is and what are the allowed values +nu (energy/distance^9 units) :ul + +Again: what file are you talking about? The Axilrod-Teller-Muto potential file must contain entries for all the elements listed in the pair_coeff command. It can also contain entries for additional elements not being used in a particular @@ -52,12 +96,29 @@ specify ATM parameters for all combinations of the two elements interacting in three-body configurations. Thus for 3 elements, 10 entries would be required, etc. +I think a better syntax for the pair coeff command might be this: + +pair_coeff I J v1 v2 ... vN + +when 1,2,...N are the number of atom types defined. +Then there be one pair_coeff command for each type pair, +the same syntax as all other potentials in LAMMPS use. + +Note that you refer to "elements", but the pair coeff command +knows nothing about elements. Only atom types. There +could be 10 atom types that all map to the same chemical +element. + :line -[Shift, table, tail correction, rRESPA info]: +[Mixing, shift, table, tail correction, restart, rRESPA info]: -This pair style does not support the "pair_modify"_pair_modify.html -shift, table, and tail options. +This pair styles do not support the "pair_modify"_pair_modify.html +mix, shift, table, and tail options. + +This pair style writes its information to "binary restart +files"_restart.html, so pair_style and pair_coeff commands do not need +to be specified in an input script that reads a restart file. This pair style can only be used via the {pair} keyword of the "run_style respa"_run_style.html command. It does not support the @@ -68,8 +129,8 @@ This pair style can only be used via the {pair} keyword of the [Restrictions:] This pair style is part of the MANYBODY package. It is only enabled -if LAMMPS was built with that package. See -the "Making LAMMPS"_Section_start.html#start_3 section for more info. +if LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. [Related commands:] @@ -82,4 +143,4 @@ the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Axilrod) [(Axilrod)] Axilrod and Teller, J Chem Phys, 11, 299 (1943); -Muto, Nippon Sugaku Butsuri Gakkwaishi 17, 629 (1943). +Muto, Nippon, Sugaku, Butsuri, Gakkwaishi 17, 629 (1943). diff --git a/examples/README b/examples/README index a8dfe63d92..d6c946725f 100644 --- a/examples/README +++ b/examples/README @@ -59,6 +59,7 @@ sub-directories: accelerate: use of all the various accelerator packages airebo: polyethylene with AIREBO potential +atm: Axilrod-Teller-Muto potential balance: dynamic load balancing, 2d system body: body particles, 2d system cmap: CMAP 5-body contributions to CHARMM force field diff --git a/examples/in.atm b/examples/atm/in.atm similarity index 88% rename from examples/in.atm rename to examples/atm/in.atm index 0f3760baf9..52576c04c9 100644 --- a/examples/in.atm +++ b/examples/atm/in.atm @@ -1,3 +1,5 @@ +# Axilrod-Teller-Muto potential example + variable x index 1 variable y index 1 variable z index 1 @@ -24,6 +26,6 @@ velocity all create 1.033 12345678 loop geom fix 1 all nvt temp 1.033 1.033 0.05 timestep 0.002 -thermo 1 +thermo 5 -run 50 +run 25 diff --git a/examples/atm/log.9Jul18.atm.g++.1 b/examples/atm/log.9Jul18.atm.g++.1 new file mode 100644 index 0000000000..27ba23e3a9 --- /dev/null +++ b/examples/atm/log.9Jul18.atm.g++.1 @@ -0,0 +1,100 @@ +LAMMPS (29 Jun 2018) +# Axilrod-Teller-Muto potential example + +variable x index 1 +variable y index 1 +variable z index 1 + +variable xx equal 10*$x +variable xx equal 10*1 +variable yy equal 10*$y +variable yy equal 10*1 +variable zz equal 10*$z +variable zz equal 10*1 + +units lj +atom_style atomic + +lattice fcc 0.65 +Lattice spacing in x,y,z = 1.83252 1.83252 1.83252 +region box block 0 ${xx} 0 ${yy} 0 ${zz} +region box block 0 10 0 ${yy} 0 ${zz} +region box block 0 10 0 10 0 ${zz} +region box block 0 10 0 10 0 10 +create_box 1 box +Created orthogonal box = (0 0 0) to (18.3252 18.3252 18.3252) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 4000 atoms + Time spent = 0.00120211 secs + +pair_style hybrid/overlay lj/cut 4.5 atm 2.5 +pair_coeff * * lj/cut 1.0 1.0 +pair_coeff * * atm * 0.072 + +mass * 1.0 +velocity all create 1.033 12345678 loop geom + +fix 1 all nvt temp 1.033 1.033 0.05 + +timestep 0.002 +thermo 5 + +run 25 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.8 + ghost atom cutoff = 4.8 + binsize = 2.4, bins = 8 8 8 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair lj/cut, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair atm, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 11.47 | 11.47 | 11.47 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.033 -4.5929584 0 -3.0438458 -3.6506231 + 5 1.0335109 -4.5924034 0 -3.0425247 -3.6376817 + 10 1.0347484 -4.5941952 0 -3.0424606 -3.6032204 + 15 1.0357954 -4.5962409 0 -3.0429363 -3.5421887 + 20 1.0350606 -4.595891 0 -3.0436883 -3.4478779 + 25 1.0301813 -4.5896962 0 -3.0448107 -3.3111695 +Loop time of 34.5602 on 1 procs for 25 steps with 4000 atoms + +Performance: 124.999 tau/day, 0.723 timesteps/s +100.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 34.556 | 34.556 | 34.556 | 0.0 | 99.99 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.001323 | 0.001323 | 0.001323 | 0.0 | 0.00 +Output | 0.00018287 | 0.00018287 | 0.00018287 | 0.0 | 0.00 +Modify | 0.0016184 | 0.0016184 | 0.0016184 | 0.0 | 0.00 +Other | | 0.0006311 | | | 0.00 + +Nlocal: 4000 ave 4000 max 4000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 10895 ave 10895 max 10895 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 640000 ave 640000 max 640000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 1.28e+06 ave 1.28e+06 max 1.28e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 1280000 +Ave neighs/atom = 320 +Neighbor list builds = 0 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:36 diff --git a/examples/atm/log.9Jul18.atm.g++.4 b/examples/atm/log.9Jul18.atm.g++.4 new file mode 100644 index 0000000000..300f82d581 --- /dev/null +++ b/examples/atm/log.9Jul18.atm.g++.4 @@ -0,0 +1,100 @@ +LAMMPS (29 Jun 2018) +# Axilrod-Teller-Muto potential example + +variable x index 1 +variable y index 1 +variable z index 1 + +variable xx equal 10*$x +variable xx equal 10*1 +variable yy equal 10*$y +variable yy equal 10*1 +variable zz equal 10*$z +variable zz equal 10*1 + +units lj +atom_style atomic + +lattice fcc 0.65 +Lattice spacing in x,y,z = 1.83252 1.83252 1.83252 +region box block 0 ${xx} 0 ${yy} 0 ${zz} +region box block 0 10 0 ${yy} 0 ${zz} +region box block 0 10 0 10 0 ${zz} +region box block 0 10 0 10 0 10 +create_box 1 box +Created orthogonal box = (0 0 0) to (18.3252 18.3252 18.3252) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 4000 atoms + Time spent = 0.000735998 secs + +pair_style hybrid/overlay lj/cut 4.5 atm 2.5 +pair_coeff * * lj/cut 1.0 1.0 +pair_coeff * * atm * 0.072 + +mass * 1.0 +velocity all create 1.033 12345678 loop geom + +fix 1 all nvt temp 1.033 1.033 0.05 + +timestep 0.002 +thermo 5 + +run 25 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.8 + ghost atom cutoff = 4.8 + binsize = 2.4, bins = 8 8 8 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair lj/cut, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair atm, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.532 | 5.532 | 5.532 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.033 -4.5929584 0 -3.0438458 -3.6506231 + 5 1.0335109 -4.5924034 0 -3.0425247 -3.6376817 + 10 1.0347484 -4.5941952 0 -3.0424606 -3.6032204 + 15 1.0357954 -4.5962409 0 -3.0429363 -3.5421887 + 20 1.0350606 -4.595891 0 -3.0436883 -3.4478779 + 25 1.0301813 -4.5896962 0 -3.0448107 -3.3111695 +Loop time of 10.061 on 4 procs for 25 steps with 4000 atoms + +Performance: 429.382 tau/day, 2.485 timesteps/s +100.0% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 9.8393 | 9.9439 | 10.008 | 2.0 | 98.84 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.052154 | 0.11613 | 0.22077 | 18.7 | 1.15 +Output | 7.2241e-05 | 8.2552e-05 | 0.00011158 | 0.0 | 0.00 +Modify | 0.00053763 | 0.00055265 | 0.00056624 | 0.0 | 0.01 +Other | | 0.0002971 | | | 0.00 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 5835 ave 5835 max 5835 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 160000 ave 160000 max 160000 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 320000 ave 320000 max 320000 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 1280000 +Ave neighs/atom = 320 +Neighbor list builds = 0 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:10 diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index 0286c3ed1e..03c523eefe 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -49,8 +49,8 @@ PairATM::PairATM(LAMMPS *lmp) : Pair(lmp) if (lmp->citeme) lmp->citeme->add(cite_atm_package); single_enable = 0; - restartinfo = 0; - one_coeff = 1; + //restartinfo = 1; // it does save restart info, correct? + //one_coeff = 0; // it does not only use * *, correct? manybody_flag = 1; } @@ -129,7 +129,7 @@ void PairATM::compute(int eflag, int vflag) if (r6 > cut_sixth) continue; interaction_ddd(nu[type[i]][type[j]][type[k]], - r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); + r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); f[i][0] -= fj[0] + fk[0]; f[i][1] -= fj[1] + fk[1]; @@ -229,7 +229,9 @@ void PairATM::write_restart(FILE *fp) 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]) for (k = i; k <= atom->ntypes; k++) fwrite(&nu[i][j][k],sizeof(double),1,fp); + if (setflag[i][j]) + for (k = i; k <= atom->ntypes; k++) + fwrite(&nu[i][j][k],sizeof(double),1,fp); } } } diff --git a/src/MANYBODY/pair_atm.h b/src/MANYBODY/pair_atm.h index b5bfc64010..45a6cda344 100644 --- a/src/MANYBODY/pair_atm.h +++ b/src/MANYBODY/pair_atm.h @@ -11,10 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ---------------------------------------------------------------------- - Contributing author: Sergey Lishchuk -------------------------------------------------------------------------- */ - #ifdef PAIR_CLASS PairStyle(atm,PairATM) @@ -46,9 +42,9 @@ class PairATM : public Pair { double cut_global, cut_sixth; double ***nu; - protected: - virtual void allocate(); - void interaction_ddd(double, double, double, double, double, double *, double *, double *, double *, double *, int, double &); + void allocate(); + void interaction_ddd(double, double, double, double, double, double *, + double *, double *, double *, double *, int, double &); }; } From 75ec0a6a990ae6eec59ca7fa80c8cff14d561495 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 9 Jul 2018 14:17:21 -0600 Subject: [PATCH 245/675] remove HTML file --- doc/src/pair_atm.html | 91 ------------------------------------------- 1 file changed, 91 deletions(-) delete mode 100644 doc/src/pair_atm.html diff --git a/doc/src/pair_atm.html b/doc/src/pair_atm.html deleted file mode 100644 index df8e6099cf..0000000000 --- a/doc/src/pair_atm.html +++ /dev/null @@ -1,91 +0,0 @@ - -
LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands -
- - - - - - -
- -

pair_style atm command -

-

Syntax: -

-
pair_style atm args = cutoff 
-
-

Examples: -

-
pair_style 2.5
-pair_coeff * * * 0.072 
-
-
pair_style	hybrid/overlay lj/cut 6.5 atm 2.5
-pair_coeff	* * lj/cut 1.0 1.0
-pair_coeff	* * atm * 0.072 
-
-

Description: -

-

The atm style computes a 3-body Axilrod-Teller-Muto -potential for the energy E of a system of atoms as -

-
-
-

where r12, r23 and r31 are the distances between the atoms, -gamma1 is included by the sides r12 and r31 -with similar definitions for gamma2 and gamma3, -nu is the three-body interaction strength (energy times distance^9 units). -

-

The atm is typically used in compination with some two-body potential -using hybrid/overlay style as in an example above. -

-

The calculations are not undertaken if the distances between atoms satisfy -r12 r23 r31 > curoff^3. Virtual cutoff distance based on a user defined -tolerance tol is not used. -

-

The Axilrod-Teller-Muto potential file must contain entries for all the -elements listed in the pair_coeff command. It can also contain -entries for additional elements not being used in a particular -simulation; LAMMPS ignores those entries. -

-

For a single-element simulation, only a single entry is required -(e.g. 1 1 1). For a two-element simulation, the file must contain 4 -entries (eg. 1 1 1, 1 1 2, 1 2 2, 2 2 2), that -specify ATM parameters for all combinations of the two elements -interacting in three-body configurations. Thus for 3 elements, 10 -entries would be required, etc. -

-
- -

Shift, table, tail correction, rRESPA info: -

-

This pair style does not support the pair_modify -shift, table, and tail options. -

-

This pair style can only be used via the pair keyword of the -run_style respa command. It does not support the -inner, middle, outer keywords. -

-
- -

Restrictions: -

-

This pair style is part of the MANYBODY package. It is only enabled -if LAMMPS was built with that package. See -the Making LAMMPS section for more info. -

-

Related commands: -

-

pair_coeff -

-

Default: none -

-
- - - -

(Axilrod) -Axilrod and Teller, J Chem Phys, 11, 299 (1943); -Muto, Nippon Sugaku Butsuri Gakkwaishi 17, 629 (1943). -

- From ee98d026dcbf8b0884b012b06a744b4a807777e9 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 9 Jul 2018 14:28:25 -0600 Subject: [PATCH 246/675] preliminary documentation added (to be improved) --- doc/src/fix_scafacos.txt | 44 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 doc/src/fix_scafacos.txt diff --git a/doc/src/fix_scafacos.txt b/doc/src/fix_scafacos.txt new file mode 100644 index 0000000000..1a65ed0c5e --- /dev/null +++ b/doc/src/fix_scafacos.txt @@ -0,0 +1,44 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +fix scafacos command :h3 + +[Syntax:] + +fix ID group-ID scafacos solver tol_type tolerance :pre + +ID, group-ID are documented in "fix"_fix.html command +scafacos = style name of this fix command +solver = NULL or name of solver for electro-statics computation :ul +tol_type = NULL or one of (energy, energy_rel, field, field_rel, potential, potential_rel) +tolerance = only of tol_type is given, value of tolerance + +[Examples:] + +fix 1 all scafacos fmm +fix 1 all scafacos p3m field 0.001 + +[Description:] + +This fix style is a wrapper for the Coulomb solver library ScaFaCoS, +which provides a selection of different solvers for the compuation +of electro-static interaction. If you download and build ScaFaCoS, +it can be called as libray by LAMMPS via this fix, which allows the +selection of a solver as well as setting the tolerance of a chosen +parameter (if compatible with the chosen solver). + +ScaFaCoS was developed by a consortium of German research facilities +with a BMBF (German Ministry of Science and Education) funded project +in 2009-2012. Participants of the consortium were the Universities of +Bonn, Chemnitz, Stuttgart, and Wuppertal as well as the +Forschungszentrum Juelich. + +The library is available at "http://scafacos.de" or can be cloned +from the git-repository "git://github.com/scafacos/scafacos.git". + +:line From 13338bf8cbfb7fcb047a43b39b49d6506b7e6e48 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 9 Jul 2018 16:15:15 -0600 Subject: [PATCH 247/675] small changes to Trung body files --- doc/src/body.txt | 162 ++++++++++---- doc/src/fix_wall_body_polygon.txt | 56 ++--- doc/src/fix_wall_body_polyhedron.txt | 39 ++-- doc/src/pair_body_rounded_polygon.txt | 91 +++++--- doc/src/pair_body_rounded_polyhedron.txt | 91 ++++++-- examples/body/in.cubes | 6 +- examples/body/in.pour3d | 2 +- examples/body/in.squares | 7 +- examples/body/in.wall2d | 7 +- examples/body/log.9Jul18.body.cubes.g++.1 | 125 +++++++++++ examples/body/log.9Jul18.body.cubes.g++.4 | 125 +++++++++++ examples/body/log.9Jul18.body.pour3d.g++.1 | 138 ++++++++++++ examples/body/log.9Jul18.body.squares.g++.1 | 221 +++++++++++++++++++ examples/body/log.9Jul18.body.squares.g++.4 | 221 +++++++++++++++++++ examples/body/log.9Jul18.body.wall2d.g++.1 | 223 ++++++++++++++++++++ examples/body/log.9Jul18.body.wall2d.g++.4 | 223 ++++++++++++++++++++ src/BODY/body_rounded_polygon.cpp | 4 +- src/BODY/body_rounded_polyhedron.cpp | 9 +- src/BODY/fix_wall_body_polygon.cpp | 7 +- src/BODY/fix_wall_body_polyhedron.cpp | 7 +- src/BODY/pair_body_rounded_polygon.cpp | 36 ++-- src/BODY/pair_body_rounded_polyhedron.cpp | 28 ++- 22 files changed, 1646 insertions(+), 182 deletions(-) create mode 100644 examples/body/log.9Jul18.body.cubes.g++.1 create mode 100644 examples/body/log.9Jul18.body.cubes.g++.4 create mode 100644 examples/body/log.9Jul18.body.pour3d.g++.1 create mode 100644 examples/body/log.9Jul18.body.squares.g++.1 create mode 100644 examples/body/log.9Jul18.body.squares.g++.4 create mode 100644 examples/body/log.9Jul18.body.wall2d.g++.1 create mode 100644 examples/body/log.9Jul18.body.wall2d.g++.4 diff --git a/doc/src/body.txt b/doc/src/body.txt index e936f5409c..c272f48ad1 100644 --- a/doc/src/body.txt +++ b/doc/src/body.txt @@ -36,7 +36,7 @@ thus how they can be used to compute pairwise body/body or bond/non-body (point particle) interactions. More details of each style are described below. -We hope to add more styles in the future. See "Section +More styles ma be added in the future. See "Section 10.12"_Section_modify.html#mod_12 for details on how to add a new body style to the code. @@ -59,7 +59,7 @@ the simple particles. By contrast, when body particles are used, LAMMPS treats an entire body as a single particle for purposes of computing pairwise interactions, building neighbor lists, migrating particles between -processors, outputting particles to a dump file, etc. This means that +processors, output of particles to a dump file, etc. This means that interactions between pairs of bodies or between a body and non-body (point) particle need to be encoded in an appropriate pair style. If such a pair style were to mimic the "fix rigid"_fix_rigid.html model, @@ -70,17 +70,20 @@ single body/body interaction was computed. Thus it only makes sense to use body particles and develop such a pair style, when particle/particle interactions are more complex than what the "fix rigid"_fix_rigid.html command can already calculate. For -example, if particles have one or more of the following attributes: +example, consider particles with one or more of the following +attributes: represented by a surface mesh represented by a collection of geometric entities (e.g. planes + spheres) deformable internal stress that induces fragmentation :ul -then the interaction between pairs of particles is likely to be more -complex than the summation of simple sub-particle interactions. An -example is contact or frictional forces between particles with planar -surfaces that inter-penetrate. +For these models, the interaction between pairs of particles is likely +to be more complex than the summation of simple pairwise interactions. +An example is contact or frictional forces between particles with +planar surfaces that inter-penetrate. Likewise, the body particle may +store internal state, such as a stress tensor used to compute a +fracture criterion. These are additional LAMMPS commands that can be used with body particles of different styles @@ -128,7 +131,9 @@ x1 y1 z1 ... xN yN zN :pre -N is the number of sub-particles in the body particle. M = 6 + 3*N. +where M = 6 + 3*N, and N is the number of sub-particles in the body +particle. + The integer line has a single value N. The floating point line(s) list 6 moments of inertia followed by the coordinates of the N sub-particles (x1 to zN) as 3N values. These values can be listed on @@ -173,13 +178,18 @@ The {bflag2} argument is ignored. [Specifics of body style rounded/polygon:] -The {rounded/polygon} body style represents body particles as -a polygon with a variable number N of vertices, which can only be -used for 2d models. Special cases for N = 1 (spheres) and N = 2 -(rods) are also included. One example use of this body style is for 2d -discrete element models, as described in "Fraige"_#Fraige. Similar to -body style {nparticle}, the atom_style body command for this body -style takes two additional arguments: +The {rounded/polygon} body style represents body particles as a 2d +polygon with a variable number of N vertices. This style can only be +used for 2d models; see the "boundary"_boundary.html command. + +NOTE: include a diagram of a a rounded polygon body particle + +Special cases for N = 1 (spheres) and N = 2 (rods) are also included. +One use of this body style is for 2d discrete element models, as +described in "Fraige"_#Fraige. + +Similar to body style {nparticle}, the atom_style body command for +this body style takes two additional arguments: atom_style body rounded/polygon Nmin Nmax Nmin = minimum # of vertices in any body in the system @@ -201,14 +211,19 @@ xN yN zN i j j k k ... diameter :pre -N is the number of vertices in the body particle. M = 6 + 3*N + 2*N + -1. The integer line has a single value N. The floating point line(s) +where M = 6 + 3*N + 2*N + 1, and N is the number of vertices in the +body particle. + +The integer line has a single value N. The floating point line(s) list 6 moments of inertia followed by the coordinates of the N -vertices (x1 to zN) as 3N values, followed by 2N vertex indices -corresponding to the end points of the N edges, followed by a single -diameter value = the rounded diameter of the vertices. -These floating-point values can be listed on as many lines as you -wish; see the "read_data"_read_data.html command for more details. +vertices (x1 to zN) as 3N values (with z = 0.0 for each), followed by +2N vertex indices corresponding to the end points of the N edges, +followed by a single diameter value = the rounded diameter of the +circle that surrounds each vertex. These floating-point values can be +listed on as many lines as you wish; see the +"read_data"_read_data.html command for more details. + +NOTE: can the diameter value be different for each body particle? The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the values consistent with the current orientation of the rigid body @@ -220,8 +235,10 @@ from the center-of-mass of the body particle. The center-of-mass position of the particle is specified by the x,y,z values in the {Atoms} section of the data file. -For example, the following information would specify a square -particles whose edge length is sqrt(2): +For example, the following information would specify a square particle +whose edge length is sqrt(2): + +NOTE: oriented how? 3 1 27 4 @@ -238,18 +255,31 @@ particles whose edge length is sqrt(2): The "pair_style body/rounded/polygon"_pair_body_rounded_polygon.html command can be used with this body style to compute body/body -interactions. +interactions. The "fix wall/body/polygon"_fix_wall_body_polygon.html +command can be used with this body style to compute the interaction of +body particles with a wall. :line [Specifics of body style rounded/polyhedron:] -The {rounded/polyhedron} body style represents body particles as -a polyhedron with N vertices, E edges and F faces. +The {rounded/polyhedron} body style represents body particles as a 3d +polyhedron with a variable number of N vertices, E edges and F faces. +This style can only be used for 3d models; see the +"boundary"_boundary.html command. + +NOTE: include a diagram of a a rounded polyhedron body particle + Special cases for N = 1 (spheres) and N = 2 (rods) are also valid. -This body style is for 3d discrete element models, as described in "Wang"_#Wang. -Similar to body style {rounded/polygon}, the atom_style body command for this body -style takes two additional arguments: + +NOTE: can 2d objects also be specified as a special case, e.g. a +triangle? + +This body style is for 3d discrete element models, as described in +"Wang"_#Wang. + +Similar to body style {rounded/polygon}, the atom_style body command +for this body style takes two additional arguments: atom_style body rounded/polyhedron Nmin Nmax Nmin = minimum # of vertices in any body in the system @@ -278,18 +308,57 @@ xN yN zN 1 2 3 4 diameter :pre -N is the number of vertices in the body particle. M = 6 + 3*N + 2*E -+ 4*F + 1. The integer line has three values: number of vertices (N), -number of edges (E) and number of faces (F). The floating point line(s) -list 6 moments of inertia followed by the coordinates of the N -vertices (x1 to zN) as 3N values, followed by 2N vertex indices -corresponding to the end points of the E edges, 4*F vertex indices defining F faces. -The last value is the radius value = the rounded diameter of the vertices. -These floating-point values can be listed on as many lines as you -wish; see the "read_data"_read_data.html command for more details. -Because the maxmimum vertices per face is hard-coded to be 4 (i.e. quadrilaterals), -faces with more than 4 vertices need to be split into triangles or quadrilaterals. -For triangular faces, the last index should be set to -1. +where M = 6 + 3*N + 2*E + 4*F + 1, and N is the number of vertices in +the body particle, E = number of edges, F = number of faces. + +The integer line has three values: number of vertices (N), number of +edges (E) and number of faces (F). The floating point line(s) list 6 +moments of inertia followed by the coordinates of the N vertices (x1 +to zN) as 3N values, followed by 2N vertex indices corresponding to +the end points of the E edges, then 4*F vertex indices defining F +faces. The last value is the radius value = the rounded diameter of +the sphere that surrounds each vertex. These floating-point values +can be listed on as many lines as you wish; see the +"read_data"_read_data.html command for more details. Because the +maxmimum vertices per face is hard-coded to be 4 +(i.e. quadrilaterals), faces with more than 4 vertices need to be +split into triangles or quadrilaterals. For triangular faces, the +last vertex index should be set to -1. + +NOTE: is there some right-hand rule for the ordering of the 4 vertices +within each face? + +NOTE: can the diameter value be different for each body particle? + +The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the +values consistent with the current orientation of the rigid body +around its center of mass. The values are with respect to the +simulation box XYZ axes, not with respect to the principal axes of the +rigid body itself. LAMMPS performs the latter calculation internally. +The coordinates of each vertex are specified as its x,y,z displacement +from the center-of-mass of the body particle. The center-of-mass +position of the particle is specified by the x,y,z values in the +{Atoms} section of the data file. + +For example, the following information would specify a cubic particle +whose edge length is 1.0: + +NOTE: oriented how? + +NOTE: fill in these values correctly + +3 1 27 +4 +1 1 4 0 0 0 +-0.7071 -0.7071 0 +-0.7071 0.7071 0 +0.7071 0.7071 0 +0.7071 -0.7071 0 +0 1 +1 2 +2 3 +3 0 +1.0 :pre :line @@ -309,9 +378,9 @@ current COM and orientation of the body particle. For images created by the "dump image"_dump_image.html command, if the {body} keyword is set, then each body particle is drawn as a polygon -consisting of N line segments. Note that the line segments -are drawn between the N vertices, which does not correspond exactly to -the physical extent of the body (because the "pair_style +consisting of N line segments. Note that the line segments are drawn +between the N vertices, which does not correspond exactly to the +physical extent of the body (because the "pair_style rounded/polygon"_pair_body_rounded_polygon.html defines finite-size spheres at those point and the line segments between the spheres are tangent to the spheres). The drawn diameter of each line segment is @@ -325,4 +394,5 @@ determined by the {bflag1} parameter for the {body} keyword. The Particuology, 6, 455 (2008). :link(Wang) -[(Wang)] J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular Matter, 13, 1 (2011). +[(Wang)] J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular +Matter, 13, 1 (2011). diff --git a/doc/src/fix_wall_body_polygon.txt b/doc/src/fix_wall_body_polygon.txt index 00d23c207c..4ba16b56c7 100644 --- a/doc/src/fix_wall_body_polygon.txt +++ b/doc/src/fix_wall_body_polygon.txt @@ -14,9 +14,9 @@ fix ID group-ID wall/body/polygon k_n c_n c_t wallstyle args keyword values ... ID, group-ID are documented in "fix"_fix.html command :ulb,l wall/body/polygon = style name of this fix command :l -k_n = normal repulsion strength (force/distance units or pressure units - see discussion below) :l -c_n = normal damping coefficient (force/distance units or pressure units - see discussion below) :l -c_t = tangential damping coefficient (force/distance units or pressure units - see discussion below) :l +k_n = normal repulsion strength (force/distance or pressure units) :l +c_n = normal damping coefficient (force/distance or pressure units) :l +c_t = tangential damping coefficient (force/distance or pressure units) :l wallstyle = {xplane} or {yplane} or {zplane} or {zcylinder} :l args = list of arguments for a particular style :l {xplane} or {yplane} args = lo hi @@ -37,34 +37,37 @@ fix 1 all wall/body/polygon 1000.0 20.0 5.0 xplane -10.0 10.0 [Description:] -Bound the simulation domain of systems of body particles of style -body/rounded/polygon with wall(s). All particles in the group interact -with the wall when they are close enough to touch it. -The nature of the interaction between the wall and the polygons is -the same as that between the polygons themselves, which is similar to the Hookean potential. +This fix is for use with 2d models of body particles of style +{rounded/polygon}. It bounds the simulation domain with wall(s). All +particles in the group interact with the wall when they are close +enough to touch it. The nature of the interaction between the wall +and the polygon particles is the same as that between the polygon +particles themselves, which is similar to a Hookean potential. See +"Section 6.14"_Section_howto.html#howto_14 of the manual and the +"body"_body.html doc page for more details on using body particles. -This fix is designed for use with the "body/rounded/polygon" body style, -which is specified as an argument to the "atom-style body" command. -The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as those specified with the -"pair_style body/rounded/polygon"_pair_body_rounded_polygon.html commands. +The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as +those specified with the "pair_style +body/rounded/polygon"_pair_body_rounded_polygon.html command. -The {wallstyle} can be planar or cylindrical. The 3 planar options +The {wallstyle} can be planar or cylindrical. The 2 planar options specify a pair of walls in a dimension. Wall positions are given by {lo} and {hi}. Either of the values can be specified as NULL if a single wall is desired. For a {zcylinder} wallstyle, the cylinder's axis is at x = y = 0.0, and the radius of the cylinder is specified. -Optionally, the wall can be moving, if the {wiggle} keyword is appended. +Optionally, the wall can be moving, if the {wiggle} keyword is +appended. For the {wiggle} keyword, the wall oscillates sinusoidally, similar to -the oscillations of particles which can be specified by the -"fix move"_fix_move.html command. This is useful in packing -simulations of particles. The arguments to the {wiggle} -keyword specify a dimension for the motion, as well as it's -{amplitude} and {period}. Note that if the dimension is in the plane -of the wall, this is effectively a shearing motion. If the dimension -is perpendicular to the wall, it is more of a shaking motion. A -{zcylinder} wall can only be wiggled in the z dimension. +the oscillations of particles which can be specified by the "fix +move"_fix_move.html command. This is useful in packing simulations of +particles. The arguments to the {wiggle} keyword specify a dimension +for the motion, as well as it's {amplitude} and {period}. Note that +if the dimension is in the plane of the wall, this is effectively a +shearing motion. If the dimension is perpendicular to the wall, it is +more of a shaking motion. A {zcylinder} wall can only be wiggled in +the z dimension. Each timestep, the position of a wiggled wall in the appropriate {dim} is set according to this equation: @@ -87,14 +90,15 @@ minimization"_minimize.html. [Restrictions:] -This fix is part of the BODY package. It is only enabled if -LAMMPS was built with that package. See the "Making +This fix is part of the BODY package. It is only enabled if LAMMPS +was built with that package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. -Any dimension (xyz) that has a wall must be non-periodic. +Any dimension (xy) that has a wall must be non-periodic. [Related commands:] -"pair_style body/rounded/polygon"_pair_body_rounded_polygon.html +"atom_style body"_atom_style.html, "pair_style +body/rounded/polygon"_pair_body_rounded_polygon.html [Default:] none diff --git a/doc/src/fix_wall_body_polyhedron.txt b/doc/src/fix_wall_body_polyhedron.txt index a1eef4df07..c937cbdbbc 100644 --- a/doc/src/fix_wall_body_polyhedron.txt +++ b/doc/src/fix_wall_body_polyhedron.txt @@ -37,16 +37,18 @@ fix 1 all wall/body/polyhedron 1000.0 20.0 5.0 xplane -10.0 10.0 [Description:] -Bound the simulation domain of systems of body particles of style -body/rounded/polyhedron with wall(s). All particles in the group interact -with the wall when they are close enough to touch it. -The nature of the interaction between the wall and the polygons is -the same as that between the polygons themselves, which is similar to the Hookean potential. +This fix is for use with 3d models of body particles of style +{rounded/polyhedron}. It bounds the simulation domain with wall(s). +All particles in the group interact with the wall when they are close +enough to touch it. The nature of the interaction between the wall +and the polygon particles is the same as that between the polygon +particles themselves, which is similar to a Hookean potential. See +"Section 6.14"_Section_howto.html#howto_14 of the manual and the +"body"_body.html doc page for more details on using body particles. -This fix is designed for use with the "body/rounded/polyhedron" body style, -which is specified as an argument to the "atom-style body" command. -The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as those specified with the -"pair_style body/rounded/polyhedron"_pair_body_rounded_polygon.html commands. +The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as +those specified with the "pair_style +body/rounded/polyhedron"_pair_body_rounded_polyhedron.html command. The {wallstyle} can be planar or cylindrical. The 3 planar options specify a pair of walls in a dimension. Wall positions are given by @@ -57,14 +59,14 @@ axis is at x = y = 0.0, and the radius of the cylinder is specified. Optionally, the wall can be moving, if the {wiggle} keyword is appended. For the {wiggle} keyword, the wall oscillates sinusoidally, similar to -the oscillations of particles which can be specified by the -"fix move"_fix_move.html command. This is useful in packing -simulations of particles. The arguments to the {wiggle} -keyword specify a dimension for the motion, as well as it's -{amplitude} and {period}. Note that if the dimension is in the plane -of the wall, this is effectively a shearing motion. If the dimension -is perpendicular to the wall, it is more of a shaking motion. A -{zcylinder} wall can only be wiggled in the z dimension. +the oscillations of particles which can be specified by the "fix +move"_fix_move.html command. This is useful in packing simulations of +particles. The arguments to the {wiggle} keyword specify a dimension +for the motion, as well as it's {amplitude} and {period}. Note that +if the dimension is in the plane of the wall, this is effectively a +shearing motion. If the dimension is perpendicular to the wall, it is +more of a shaking motion. A {zcylinder} wall can only be wiggled in +the z dimension. Each timestep, the position of a wiggled wall in the appropriate {dim} is set according to this equation: @@ -95,6 +97,7 @@ Any dimension (xyz) that has a wall must be non-periodic. [Related commands:] -"pair_style body/rounded/polyhedron"_pair_body_rounded_polygon.html +"atom_style body"_atom_style.html, "pair_style +body/rounded/polyhedron"_pair_body_rounded_polyhedron.html [Default:] none diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index 00896b4c7b..15817f10f8 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -16,7 +16,9 @@ c_n = normal damping coefficient c_t = tangential damping coefficient mu = normal friction coefficient during gross sliding delta_ua = multiple contact scaling factor -cutoff = global sepration cutoff for interactions (distance units), see below for definition :pre +cutoff = global separation cutoff for interactions (distance units), see below for definition :pre + +NOTE: what does gross sliding mean? [Examples:] @@ -26,36 +28,77 @@ pair_coeff 1 1 100.0 1.0 :pre [Description:] -Style {body/rounded/polygon} is for use with body particles and calculates pairwise +Style {body/rounded/polygon} is for use with 2d models of body +particles of style {rounded/polygon}. It calculates pairwise body/body interactions as well as interactions between body and -point-particles. See "Section 6.14"_Section_howto.html#howto_14 -of the manual and the "body"_body.html doc page for more details on -using body particles. +point-particles. See "Section 6.14"_Section_howto.html#howto_14 of +the manual and the "body"_body.html doc page for more details on using +body particles. -This pair style is designed for use with the "body/rounded/polygon" body style, -which is specified as an argument to the "atom-style body" command. -See the "body/rounded/polygon"_body.html doc page for more details about the body -styles LAMMPS supports. The pairwise interaction between the rounded polygons is described -in "Fraige"_#Fraige, where the polygons are rounded at the vertices and edges -by circles of diameter a. This is a version of discrete element models (DEM) -with multiple contact points. +This pairwise interaction between rounded polygons is described in +"Fraige"_#Fraige, where a polygon does not have sharp corners, but is +rounded at its vertices by circles centered on each vertex with a +specified diameter. The edges of the polygon are defined bewteen +pairs of adjacent vertices. The circle diameter for each polygon is +specified in the data file read by the "read data"_read_data.html +command. This is a 2d discrete element model (DEM) which allows for +multiple contact points. -Because the polygons can have different rounded diameters, the cutoff specified in -the pair style command is for the surface separation between two interacting entities -(e.g. vertex-vertex, vertex-edge or edge-edge) excluding their rounded diameters, -i.e. separation = center-center distance - (rounded diameter of entity i + rounded diameter of entity j)/2. -The interaction forces and energies are also defined with respect to the rounded surface separation, -instead of center-center distance. +Note that when two particles interact, the effective surface of each +polygon particle is displaced outward from each of its vertices and +edges by half its circle diameter. The interaction forces and +energies bewteen two particles are defined with respect to the +separation of their respective rounded surfaces, not by the separation +of the vertices and edges themselves. -For style {body/rounded/polygon}, 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: +This means that the specified cutoff in the pair_style command should +be large enough to encompass the center-to-center distance between two +particles (at any orientation) which would produce a surface-surface +overlap. For example, consider two square particles with edge length += 1.0 and circle diameter 0.2. The maximum distance of one polygon's +surface from its center is not sqrt(2)/2, but (sqrt(2)+0.1)/2. Thus +the cutoff distance should be sqrt(2) + 0.1, since the surfaces of two +particles that far apart could be touching. + +NOTE: Do we need a diagram of 2 overlapping polygon particles that +explains how contact is defined? Do we need an equation(s) that +explain what the params in pair style and coeff mean, for damping and +spring constants? Or do we just want to reference the paper for that? + +NOTE: say something about no frictional history ? + +The following coefficients must be defined for each pair of atom types +via the "pair_coeff"_pair_coeff.html command as in the examples above, +or in the data file read by the "read_data"_read_data.html command: k_n (energy/distance^2 units) k_na (energy/distance^2 units) :ul +[Mixing, shift, table, tail correction, restart, rRESPA info]: + +This pair style does not support the "pair_modify"_pair_modify.html +mix, shift, table, and tail options. + +This pair style does not write its information to "binary restart +files"_restart.html. Thus, you need to re-specify the pair_style and +pair_coeff commands in an input script that reads a restart file. + +This pair style can only be used via the {pair} keyword of the +"run_style respa"_run_style.html command. It does not support the +{inner}, {middle}, {outer} keywords. + +[Restrictions:] + +These pair styles are part of the BODY package. They are only enabled +if LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +NOTE: is there a newton on or off requirement for using this pair style? +If so, say something like this: + +This pair style requires the "newton"_newton.html setting to be "on" +for pair interactions. + [Related commands:] "pair_coeff"_pair_coeff.html @@ -65,5 +108,3 @@ k_na (energy/distance^2 units) :ul :link(Fraige) [(Fraige)] F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds, Particuology, 6, 455 (2008). - - diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index 9a5c20ddb6..29fa90d2cf 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -18,6 +18,8 @@ mu = normal friction coefficient during gross sliding delta_ua = multiple contact scaling factor cutoff = global sepration cutoff for interactions (distance units), see below for definition :pre +NOTE: what does gross sliding mean? + [Examples:] pair_style body/rounded/polyhedron 20.0 5.0 0.0 1.0 0.5 @@ -26,36 +28,78 @@ pair_coeff 1 1 100.0 1.0 :pre [Description:] -Style {body/rounded/polyhedron} is for use with body particles and calculates pairwise +Style {body/rounded/polygon} is for use with 3d models of body +particles of style {rounded/polyhedron}. It calculates pairwise body/body interactions as well as interactions between body and -point-particles. See "Section 6.14"_Section_howto.html#howto_14 -of the manual and the "body"_body.html doc page for more details on -using body particles. +point-particles. See "Section 6.14"_Section_howto.html#howto_14 of +the manual and the "body"_body.html doc page for more details on using +body particles. -This pair style is designed for use with the "body/rounded/polyhedron" body style, -which is specified as an argument to the "atom-style body" command. -See the "body/rounded/polyhedron"_body.html doc page for more details about the body -styles LAMMPS supports. The pairwise interaction between the rounded polygons is described -in "Wang"_#Wang, where the polygons are rounded at the vertices and edges -by circles of diameter a. This is a version of discrete element models (DEM) -with multiple contact points. +This pairwise interaction between rounded polyhedra is described in +"Wang"_#Wang, where a polyhedron does not have sharp corners and +edges, but is rounded at its vertices and edges by spheres centered on +each vertex with a specified diameter. The edges if the polyhedron +are defined bewteen pairs of adjacent vertices. Its faces are defined +by a loop of edges. The sphere diameter for each polygon is specified +in the data file read by the "read data"_read_data.html command. This +is a discrete element model (DEM) which allows for multiple contact +points. -Because the polygons can have different rounded diameters, the cutoff specified in -the pair style command is for the surface separation between two interacting entities -(e.g. vertex-vertex, vertex-edge, vertex-face and edge-edge) excluding their rounded diameters, -i.e. separation = center-center distance - (rounded diameter of entity i + rounded diameter of entity j)/2. -The interaction forces and energies are also defined with respect to the rounded surface separation, -instead of center-center distance. +Note that when two particles interaact, the effective surface of each +polyhedron particle is displaced outward from each of its vertices, +edges, and faces by half its sphere diameter. The interaction forces +and energies bewteen two particles are defined with respect to the +separation of their respective rounded surfaces, not by the separation +of the vertices, edges, and faces themselves. -For style {body/rounded/polyhedron}, 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: +This means that the specified cutoff in the pair_style command should +be large enough to encompass the center-to-center distance between two +particles (at any orientation) which would produce a surface-surface +overlap. For example, consider two cubic particles with edge length = +1.0 and sphere diameter 0.2. The maximum distance of one polygon's +surface from its center is not sqrt(3)/2, but (sqrt(3)+0.1)/2. Thus +the cutoff distance should be sqrt(3) + 0.1, since the surfaces of two +particles that far apart could be touching. + +NOTE: Do we need a diagram of 2 overlapping polyhedron particles that +explains how contact is defined? Do we need an equation(s) that +explain what the params in pair style and coeff mean, for damping and +spring constants? Or do we just want to reference the paper for that? + +NOTE: say something about no frictional history ? + +The following coefficients must be defined for each pair of atom types +via the "pair_coeff"_pair_coeff.html command as in the examples above, +or in the data file read by the "read_data"_read_data.html command: k_n (energy/distance^2 units) k_na (energy/distance^2 units) :ul +[Mixing, shift, table, tail correction, restart, rRESPA info]: + +This pair style does not support the "pair_modify"_pair_modify.html +mix, shift, table, and tail options. + +This pair style does not write its information to "binary restart +files"_restart.html. Thus, you need to re-specify the pair_style and +pair_coeff commands in an input script that reads a restart file. + +This pair style can only be used via the {pair} keyword of the +"run_style respa"_run_style.html command. It does not support the +{inner}, {middle}, {outer} keywords. + +[Restrictions:] + +These pair styles are part of the BODY package. They are only enabled +if LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +NOTE: is there a newton on or off requirement for using this pair style? +If so, say something like this: + +This pair style requires the "newton"_newton.html setting to be "on" +for pair interactions. + [Related commands:] "pair_coeff"_pair_coeff.html @@ -63,5 +107,6 @@ k_na (energy/distance^2 units) :ul [Default:] none :link(Wang) -[(Wang)] J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular Matter, 13, 1 (2011). +[(Wang)] J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular +Matter, 13, 1 (2011). diff --git a/examples/body/in.cubes b/examples/body/in.cubes index 3aeaa70af9..a22599fe96 100644 --- a/examples/body/in.cubes +++ b/examples/body/in.cubes @@ -38,11 +38,11 @@ fix 1 all nvt/body temp 1.2 1.2 0.1 compute p2 all pressure 1_temp -compute 1 all body/local id 1 2 3 -dump 1 all local 1000 dump.* index c_1[1] c_1[2] c_1[3] c_1[4] +#compute 1 all body/local id 1 2 3 +#dump 1 all local 1000 dump.* index c_1[1] c_1[2] c_1[3] c_1[4] #dump 2 all image 1000 image.*.jpg type type & -# zoom 1.5 adiam 1.5 body yes 0 0 view 60 15 +# zoom 1.5 adiam 1.5 body type 0 0 view 60 15 #dump_modify 2 pad 6 thermo_style custom step ke pe etotal c_p2 c_1_temp diff --git a/examples/body/in.pour3d b/examples/body/in.pour3d index 290f2052c8..bcba950e59 100644 --- a/examples/body/in.pour3d +++ b/examples/body/in.pour3d @@ -49,7 +49,7 @@ thermo_style custom step atoms ke pe etotal press thermo 1000 #dump 2 all image 500 image.*.jpg type type & -# zoom 1.5 adiam 1.5 body yes 0 0 view 75 15 +# zoom 1.5 adiam 1.5 body type 0 0 view 75 15 #dump_modify 2 pad 6 run ${steps} diff --git a/examples/body/in.squares b/examples/body/in.squares index f771c15381..3b05b5cead 100755 --- a/examples/body/in.squares +++ b/examples/body/in.squares @@ -42,13 +42,14 @@ fix 1 all npt/body temp $T $T 1.0 x 0.001 $P 1.0 & fix 2 all enforce2d -compute 1 all body/local id 1 2 3 -dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] +#compute 1 all body/local id 1 2 3 +#dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] thermo_style custom step ke pe etotal press thermo 1000 -#dump 2 all image 10000 image.*.jpg type type zoom 2.0 adiam 1.5 body yes 0 0 +#dump 2 all image 10000 image.*.jpg type type zoom 2.0 & +# adiam 1.5 body type 0 0 #dump_modify 2 pad 6 run ${steps} diff --git a/examples/body/in.wall2d b/examples/body/in.wall2d index 19788a9dcd..04e7f31cb6 100755 --- a/examples/body/in.wall2d +++ b/examples/body/in.wall2d @@ -44,13 +44,14 @@ fix 1 all npt/body temp $T $T 1.0 x 0.001 $P 1.0 fixedpoint 0 0 0 fix 2 all enforce2d fix 3 all wall/body/polygon 2000 50 50 yplane 0.0 48.0 -compute 1 all body/local id 1 2 3 -dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] +#compute 1 all body/local id 1 2 3 +#dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] thermo_style custom step ke pe etotal press thermo 1000 -#dump 2 all image 10000 image.*.jpg type type zoom 2.0 adiam 1.5 body yes 0 0 +#dump 2 all image 10000 image.*.jpg type type zoom 2.0 & +# adiam 1.5 body type 0 0 #dump_modify 2 pad 6 run ${steps} diff --git a/examples/body/log.9Jul18.body.cubes.g++.1 b/examples/body/log.9Jul18.body.cubes.g++.1 new file mode 100644 index 0000000000..c9a799c0b5 --- /dev/null +++ b/examples/body/log.9Jul18.body.cubes.g++.1 @@ -0,0 +1,125 @@ +LAMMPS (29 Jun 2018) +# 3d rounded cubes + +variable r index 3 +variable steps index 10000 + +units lj +dimension 3 + +atom_style body rounded/polyhedron 1 10 + +read_data data.cubes + orthogonal box = (0 0 0) to (6 6 6) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 2 atoms + 2 bodies + +replicate $r $r $r +replicate 3 $r $r +replicate 3 3 $r +replicate 3 3 3 + orthogonal box = (0 0 0) to (18 18 18) + 1 by 1 by 1 MPI processor grid + 54 atoms + Time spent = 0.000217915 secs + +velocity all create 1.2 187287 dist gaussian mom yes rot yes + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 1 +variable c_n equal 20 +variable c_t equal 5 +variable mu equal 0 +variable A_ua equal 1 + +pair_style body/rounded/polyhedron ${c_n} ${c_t} ${mu} ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 ${c_t} ${mu} ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 5 ${mu} ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 5 0 ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 5 0 1 ${cut_inner} +pair_style body/rounded/polyhedron 20 5 0 1 0.5 +pair_coeff * * ${k_n} ${k_na} +pair_coeff * * 100 ${k_na} +pair_coeff * * 100 1 + +comm_modify vel yes + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +#fix 1 all nve/body +fix 1 all nvt/body temp 1.2 1.2 0.1 +#fix 1 all npt/body temp 1.2 1.2 0.1 iso 0.002 0.02 1.0 + +compute p2 all pressure 1_temp + +#compute 1 all body/local id 1 2 3 +#dump 1 all local 1000 dump.* index c_1[1] c_1[2] c_1[3] c_1[4] + +#dump 2 all image 1000 image.*.jpg type type # zoom 1.5 adiam 1.5 body type 0 0 view 60 15 +#dump_modify 2 pad 6 + +thermo_style custom step ke pe etotal c_p2 c_1_temp + +thermo 1000 + +run ${steps} +run 10000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 3.9641 + ghost atom cutoff = 3.9641 + binsize = 1.98205, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair body/rounded/polyhedron, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.952 | 4.952 | 4.952 Mbytes +Step KinEng PotEng TotEng c_p2 c_1_temp + 0 1.7666667 0 1.7666667 0.01090535 0.59439252 + 1000 3.1462962 0.17392649 3.3202227 0.02361912 1.1654694 + 2000 2.9311648 0.13836102 3.0695258 0.021748224 1.1950624 + 3000 3.090491 0.16511199 3.255603 0.018691142 1.23672 + 4000 2.7401565 0.17792155 2.9180781 0.015093853 1.1180839 + 5000 3.0880849 0.17587085 3.2639557 0.030563042 1.2831154 + 6000 3.2180776 0.19732251 3.4154001 0.028338151 1.258839 + 7000 2.9514882 0.25088882 3.202377 0.025296925 1.1746326 + 8000 3.0101226 0.28825968 3.2983823 0.027273454 1.2138056 + 9000 3.0164253 0.1901733 3.2065986 0.033228915 1.3095914 + 10000 2.3780401 0.34082434 2.7188644 0.031838531 1.0208679 +Loop time of 38.5686 on 1 procs for 10000 steps with 54 atoms + +Performance: 22401.653 tau/day, 259.278 timesteps/s +100.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 38.426 | 38.426 | 38.426 | 0.0 | 99.63 +Neigh | 0.0043154 | 0.0043154 | 0.0043154 | 0.0 | 0.01 +Comm | 0.047616 | 0.047616 | 0.047616 | 0.0 | 0.12 +Output | 0.00017595 | 0.00017595 | 0.00017595 | 0.0 | 0.00 +Modify | 0.082948 | 0.082948 | 0.082948 | 0.0 | 0.22 +Other | | 0.007761 | | | 0.02 + +Nlocal: 54 ave 54 max 54 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 96 ave 96 max 96 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 100 ave 100 max 100 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 100 +Ave neighs/atom = 1.85185 +Neighbor list builds = 268 +Dangerous builds = 0 + +Total wall time: 0:00:38 diff --git a/examples/body/log.9Jul18.body.cubes.g++.4 b/examples/body/log.9Jul18.body.cubes.g++.4 new file mode 100644 index 0000000000..e2407e9725 --- /dev/null +++ b/examples/body/log.9Jul18.body.cubes.g++.4 @@ -0,0 +1,125 @@ +LAMMPS (29 Jun 2018) +# 3d rounded cubes + +variable r index 3 +variable steps index 10000 + +units lj +dimension 3 + +atom_style body rounded/polyhedron 1 10 + +read_data data.cubes + orthogonal box = (0 0 0) to (6 6 6) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 2 atoms + 2 bodies + +replicate $r $r $r +replicate 3 $r $r +replicate 3 3 $r +replicate 3 3 3 + orthogonal box = (0 0 0) to (18 18 18) + 1 by 2 by 2 MPI processor grid + 54 atoms + Time spent = 0.00103807 secs + +velocity all create 1.2 187287 dist gaussian mom yes rot yes + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 1 +variable c_n equal 20 +variable c_t equal 5 +variable mu equal 0 +variable A_ua equal 1 + +pair_style body/rounded/polyhedron ${c_n} ${c_t} ${mu} ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 ${c_t} ${mu} ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 5 ${mu} ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 5 0 ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 5 0 1 ${cut_inner} +pair_style body/rounded/polyhedron 20 5 0 1 0.5 +pair_coeff * * ${k_n} ${k_na} +pair_coeff * * 100 ${k_na} +pair_coeff * * 100 1 + +comm_modify vel yes + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +#fix 1 all nve/body +fix 1 all nvt/body temp 1.2 1.2 0.1 +#fix 1 all npt/body temp 1.2 1.2 0.1 iso 0.002 0.02 1.0 + +compute p2 all pressure 1_temp + +#compute 1 all body/local id 1 2 3 +#dump 1 all local 1000 dump.* index c_1[1] c_1[2] c_1[3] c_1[4] + +#dump 2 all image 1000 image.*.jpg type type # zoom 1.5 adiam 1.5 body type 0 0 view 60 15 +#dump_modify 2 pad 6 + +thermo_style custom step ke pe etotal c_p2 c_1_temp + +thermo 1000 + +run ${steps} +run 10000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 3.9641 + ghost atom cutoff = 3.9641 + binsize = 1.98205, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair body/rounded/polyhedron, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.879 | 5.068 | 5.256 Mbytes +Step KinEng PotEng TotEng c_p2 c_1_temp + 0 1.7666667 0 1.7666667 0.01090535 0.59439252 + 1000 3.1462962 0.17392649 3.3202227 0.02361912 1.1654694 + 2000 2.9311648 0.13836102 3.0695258 0.021748224 1.1950624 + 3000 3.090491 0.16511199 3.255603 0.018691142 1.23672 + 4000 2.7401565 0.17792155 2.9180781 0.015093853 1.1180839 + 5000 3.0880849 0.17587085 3.2639557 0.030563042 1.2831154 + 6000 3.2180776 0.19732251 3.4154001 0.028338151 1.258839 + 7000 2.9514882 0.25088882 3.202377 0.025296925 1.1746326 + 8000 3.0101226 0.28825968 3.2983823 0.027273454 1.2138056 + 9000 3.0164253 0.1901733 3.2065986 0.033228915 1.3095914 + 10000 2.3780401 0.34082434 2.7188644 0.031838531 1.0208679 +Loop time of 20.5306 on 4 procs for 10000 steps with 54 atoms + +Performance: 42083.509 tau/day, 487.078 timesteps/s +100.0% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 7.5288 | 10.878 | 19.952 | 159.0 | 52.98 +Neigh | 0.0014424 | 0.0016552 | 0.0021195 | 0.7 | 0.01 +Comm | 0.50623 | 9.5805 | 12.93 | 169.4 | 46.66 +Output | 0.00011921 | 0.00014341 | 0.00021386 | 0.0 | 0.00 +Modify | 0.044663 | 0.047684 | 0.05382 | 1.6 | 0.23 +Other | | 0.023 | | | 0.11 + +Nlocal: 13.5 ave 17 max 9 min +Histogram: 1 0 0 1 0 0 0 0 1 1 +Nghost: 63.5 ave 68 max 58 min +Histogram: 1 0 0 1 0 0 0 0 0 2 +Neighs: 25 ave 38 max 6 min +Histogram: 1 0 0 0 0 1 0 0 1 1 + +Total # of neighbors = 100 +Ave neighs/atom = 1.85185 +Neighbor list builds = 268 +Dangerous builds = 0 + +Total wall time: 0:00:20 diff --git a/examples/body/log.9Jul18.body.pour3d.g++.1 b/examples/body/log.9Jul18.body.pour3d.g++.1 new file mode 100644 index 0000000000..213dd2e18f --- /dev/null +++ b/examples/body/log.9Jul18.body.pour3d.g++.1 @@ -0,0 +1,138 @@ +LAMMPS (29 Jun 2018) +# pouring 3d rounded polyhedron bodies + +variable steps index 6000 + +units lj +boundary p p fm +comm_modify vel yes + +atom_style body rounded/polyhedron 1 8 +atom_modify map array + +region reg block 0 50 0 50 0 50 units box +create_box 4 reg +Created orthogonal box = (0 0 0) to (50 50 50) + 1 by 1 by 1 MPI processor grid + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 5 +variable c_n equal 20 +variable c_t equal 5 +variable mu equal 0 +variable A_ua equal 1 + +pair_style body/rounded/polyhedron ${c_n} ${c_t} ${mu} ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 ${c_t} ${mu} ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 5 ${mu} ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 5 0 ${A_ua} ${cut_inner} +pair_style body/rounded/polyhedron 20 5 0 1 ${cut_inner} +pair_style body/rounded/polyhedron 20 5 0 1 0.5 +pair_coeff * * ${k_n} ${k_na} +pair_coeff * * 100 ${k_na} +pair_coeff * * 100 5 + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +fix 1 all nve/body +fix 2 all gravity 1.0 spherical 0.0 -180.0 + +molecule object molecule.cube molecule.tetra toff 1 molecule.rod3d toff 2 molecule.point3d toff 3 +Read molecule object: + 1 atoms with max type 1 + 0 bonds with max type 0 + 0 angles with max type 0 + 0 dihedrals with max type 0 + 0 impropers with max type 0 +Read molecule object: + 1 atoms with max type 2 + 0 bonds with max type 0 + 0 angles with max type 0 + 0 dihedrals with max type 0 + 0 impropers with max type 0 +Read molecule object: + 1 atoms with max type 3 + 0 bonds with max type 0 + 0 angles with max type 0 + 0 dihedrals with max type 0 + 0 impropers with max type 0 +Read molecule object: + 1 atoms with max type 4 + 0 bonds with max type 0 + 0 angles with max type 0 + 0 dihedrals with max type 0 + 0 impropers with max type 0 + +region slab block 5 45 5 45 25 35 units box +fix ins all pour 500 0 4767548 vol 0.4 10 region slab mol object molfrac 0.25 0.25 0.25 0.25 +Particle insertion: 134 every 4472 steps, 500 by step 13417 + +fix 4 all wall/body/polyhedron 2000 50 50 zplane 0.0 NULL + +#compute 1 all body/local type 1 2 3 +#dump 1 all local 1000 dump.polyhedron index c_1[1] c_1[2] c_1[3] c_1[4] +#dump 10 all custom 1000 tmp.dump id type x y z radius + +thermo_style custom step atoms ke pe etotal press + +thermo 1000 + +#dump 2 all image 500 image.*.jpg type type # zoom 1.5 adiam 1.5 body type 0 0 view 75 15 +#dump_modify 2 pad 6 + +run ${steps} +run 6000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5 + ghost atom cutoff = 5 + binsize = 2.5, bins = 20 20 20 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair body/rounded/polyhedron, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 0.5065 | 0.5065 | 0.5065 Mbytes +Step Atoms KinEng PotEng TotEng Press + 0 0 -0 0 0 0 + 1000 134 -0 0.00083010524 0.00083010524 -2.1515152e-06 + 2000 134 -0 -0.00069962476 -0.00069962476 -1.4170663e-08 + 3000 134 -0 -0.00069962687 -0.00069962687 -4.1478181e-11 + 4000 134 -0 -0.00069962687 -0.00069962687 -1.2141026e-13 + 5000 268 -0 0.014969705 0.014969705 3.0797164e-05 + 6000 268 -0 0.042467887 0.042467887 0.00056148005 +Loop time of 0.634737 on 1 procs for 6000 steps with 268 atoms + +Performance: 816716.196 tau/day, 9452.734 timesteps/s +100.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.41391 | 0.41391 | 0.41391 | 0.0 | 65.21 +Neigh | 0.010547 | 0.010547 | 0.010547 | 0.0 | 1.66 +Comm | 0.0030921 | 0.0030921 | 0.0030921 | 0.0 | 0.49 +Output | 0.00011492 | 0.00011492 | 0.00011492 | 0.0 | 0.02 +Modify | 0.19736 | 0.19736 | 0.19736 | 0.0 | 31.09 +Other | | 0.009719 | | | 1.53 + +Nlocal: 268 ave 268 max 268 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 3 ave 3 max 3 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 68 ave 68 max 68 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 68 +Ave neighs/atom = 0.253731 +Neighbor list builds = 168 +Dangerous builds = 0 + + +Total wall time: 0:00:00 diff --git a/examples/body/log.9Jul18.body.squares.g++.1 b/examples/body/log.9Jul18.body.squares.g++.1 new file mode 100644 index 0000000000..7b539797bd --- /dev/null +++ b/examples/body/log.9Jul18.body.squares.g++.1 @@ -0,0 +1,221 @@ +LAMMPS (29 Jun 2018) +# 2d rounded polygon bodies + +variable r index 4 +variable steps index 100000 +variable T index 0.5 +variable P index 0.1 +variable seed index 980411 + +units lj +dimension 2 + +atom_style body rounded/polygon 1 6 +atom_modify map array +read_data data.squares + orthogonal box = (0 0 -0.5) to (12 12 0.5) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 2 atoms + 2 bodies + +replicate $r $r 1 +replicate 4 $r 1 +replicate 4 4 1 + orthogonal box = (0 0 -0.5) to (48 48 0.5) + 1 by 1 by 1 MPI processor grid + 32 atoms + Time spent = 0.00020504 secs + +velocity all create $T ${seed} dist gaussian mom yes rot yes +velocity all create 0.5 ${seed} dist gaussian mom yes rot yes +velocity all create 0.5 980411 dist gaussian mom yes rot yes + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 2 +variable c_n equal 1 +variable c_t equal 1 +variable mu equal 0.1 +variable delta_ua equal 0.5 + +pair_style body/rounded/polygon ${c_n} ${c_t} ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 1 ${c_t} ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 1 1 ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 1 1 0.1 ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 1 1 0.1 0.5 ${cut_inner} +pair_style body/rounded/polygon 1 1 0.1 0.5 0.5 +pair_coeff * * ${k_n} ${k_na} +pair_coeff * * 100 ${k_na} +pair_coeff * * 100 2 + +comm_modify vel yes + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +#fix 1 all nve/body +#fix 1 all nvt/body temp $T $T 1.0 +fix 1 all npt/body temp $T $T 1.0 x 0.001 $P 1.0 y 0.001 $P 1.0 couple xy fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 $T 1.0 x 0.001 $P 1.0 y 0.001 $P 1.0 couple xy fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 0.5 1.0 x 0.001 $P 1.0 y 0.001 $P 1.0 couple xy fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 0.5 1.0 x 0.001 0.1 1.0 y 0.001 $P 1.0 couple xy fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 0.5 1.0 x 0.001 0.1 1.0 y 0.001 0.1 1.0 couple xy fixedpoint 0 0 0 + +fix 2 all enforce2d + +#compute 1 all body/local id 1 2 3 +#dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] + +thermo_style custom step ke pe etotal press +thermo 1000 + +#dump 2 all image 10000 image.*.jpg type type zoom 2.0 # adiam 1.5 body type 0 0 +#dump_modify 2 pad 6 + +run ${steps} +run 100000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.15685 + ghost atom cutoff = 6.15685 + binsize = 3.07843, bins = 16 16 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair body/rounded/polygon, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/2d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.781 | 4.781 | 4.781 Mbytes +Step KinEng PotEng TotEng Press + 0 0.484375 0.25 0.734375 0.0067274306 + 1000 0.39423376 0.0017918048 0.39602557 0.0021941612 + 2000 0.42284177 0.01346585 0.43630762 0.0029377883 + 3000 0.58154405 0.011321689 0.59286574 0.003667871 + 4000 0.73518304 0.034603175 0.76978621 0.0018689207 + 5000 0.84367476 0.025292163 0.86896692 0.0089161373 + 6000 0.70803236 0.0085631016 0.71659546 0.0045552895 + 7000 0.56206452 0.10453031 0.66659483 0.010255161 + 8000 0.64538994 0.088817673 0.73420761 0.0037633655 + 9000 0.90540819 0.063696004 0.96910419 0.0077673359 + 10000 0.68632042 0.093265016 0.77958544 0.0057864838 + 11000 0.59118074 0.025654748 0.61683549 0.012518759 + 12000 0.67522767 0.038176401 0.71340407 0.01741153 + 13000 0.7644843 0.10429844 0.86878274 0.013161339 + 14000 0.56152694 0.067836655 0.62936359 0.016852121 + 15000 0.41895506 0.019513348 0.43846841 0.015225695 + 16000 0.55799421 0.1564559 0.71445011 0.011703561 + 17000 0.59391964 0.034450221 0.62836986 0.026215002 + 18000 0.75911858 0.030885726 0.7900043 0.018396366 + 19000 0.64417995 0.12110912 0.76528907 0.010247952 + 20000 0.57751435 0.16965651 0.74717086 0.023392323 + 21000 0.7613368 0.13405354 0.89539034 0.021498982 + 22000 0.57676692 0.18011879 0.75688571 0.024469161 + 23000 0.54043723 0.11842026 0.65885749 0.019799067 + 24000 0.62276061 0.038967924 0.66172853 0.019080086 + 25000 0.53157536 0.11651937 0.64809473 0.017019298 + 26000 0.72213293 0.039012448 0.76114538 0.015434904 + 27000 0.62157832 0.13697494 0.75855326 0.028711011 + 28000 0.41323738 0.16301101 0.57624839 0.041792632 + 29000 0.45774328 0.17569066 0.63343394 0.019975231 + 30000 0.78901796 0.099791386 0.88880934 0.024116947 + 31000 0.85205397 0.11977547 0.97182945 0.026667489 + 32000 0.37137095 0.1232622 0.49463315 0.00087637364 + 33000 0.26860871 0.26056381 0.52917252 0.036110517 + 34000 0.3018636 0.21336905 0.51523265 0.040315549 + 35000 0.39915129 0.28245957 0.68161085 0.034876856 + 36000 0.25761236 0.2352705 0.49288286 0.022772767 + 37000 0.1071233 0.31692858 0.42405188 0.017994666 + 38000 0.083729577 0.28473145 0.36846103 -0.0045370431 + 39000 0.070355565 0.26682083 0.33717639 0.017921556 + 40000 0.075894079 0.20077896 0.27667304 0.014873186 + 41000 0.05891028 0.15989064 0.21880092 0.025547873 + 42000 0.1225107 0.16583605 0.28834675 0.038842785 + 43000 0.17049189 0.14323991 0.3137318 0.029550161 + 44000 0.26823939 0.15208257 0.42032196 0.028113612 + 45000 0.10172203 0.1729706 0.27469264 -0.013769913 + 46000 0.14841355 0.19085074 0.33926429 -0.00073741985 + 47000 0.27654927 0.19097937 0.46752864 0.04021431 + 48000 0.53432331 0.080769923 0.61509323 0.029932845 + 49000 0.69111634 0.13064951 0.82176585 0.028985406 + 50000 0.24520806 0.18317453 0.42838258 0.05179746 + 51000 0.23541368 0.14281364 0.37822732 0.071884238 + 52000 0.25464996 0.095730242 0.3503802 0.034488204 + 53000 0.53677633 0.1058745 0.64265084 0.059932498 + 54000 0.32970921 0.27979128 0.60950049 0.062869716 + 55000 0.49094054 0.096735015 0.58767556 0.04728005 + 56000 0.54398249 0.2216472 0.76562969 0.056712022 + 57000 0.60869068 0.2338422 0.84253288 0.077143302 + 58000 0.72175509 0.18687368 0.90862877 0.019357656 + 59000 0.79442757 0.092502981 0.88693055 0.066882632 + 60000 0.6810555 0.077699385 0.75875488 0.095975173 + 61000 0.63178834 0.05071143 0.68249977 0.043586668 + 62000 0.76589344 0.044615704 0.81050914 0.085718411 + 63000 0.84815889 0.030527848 0.87868674 0.053072795 + 64000 0.7309043 0.051938637 0.78284294 0.058887766 + 65000 0.62498816 0.034474465 0.65946262 0.068446407 + 66000 0.69817494 0.068546004 0.76672094 0.062634433 + 67000 0.86444275 0.010184259 0.87462701 0.073635055 + 68000 0.77820319 0.0079319524 0.78613515 0.090330925 + 69000 0.56938919 0.0092629332 0.57865213 0.061838729 + 70000 0.61870712 0.010047381 0.6287545 0.066501338 + 71000 0.71651803 0.0088366199 0.72535465 0.079136316 + 72000 0.76278925 0.008828151 0.77161741 0.063672771 + 73000 0.75447428 0.0083985526 0.76287283 0.078256913 + 74000 0.66185251 0.0091910052 0.67104351 0.069840511 + 75000 0.58458829 0.0097671568 0.59435544 0.076123422 + 76000 0.7487564 0.0100022 0.7587586 0.076171741 + 77000 0.89505465 0.009250681 0.90430533 0.074921699 + 78000 0.73738164 0.0092029279 0.74658457 0.078835344 + 79000 0.65735281 0.010099528 0.66745233 0.077940627 + 80000 0.70247542 0.010306464 0.71278189 0.079560093 + 81000 0.74839505 0.010199092 0.75859415 0.080835104 + 82000 0.75193767 0.010274058 0.76221173 0.081086684 + 83000 0.71392598 0.010495573 0.72442156 0.082746145 + 84000 0.58498928 0.011027388 0.59601667 0.08356465 + 85000 0.59022869 0.011729474 0.60195817 0.084519397 + 86000 0.81753578 0.011208964 0.82874475 0.085490261 + 87000 0.83480682 0.010542579 0.8453494 0.086268527 + 88000 0.67322538 0.011170734 0.68439611 0.08751623 + 89000 0.62637389 0.012033316 0.6384072 0.088548094 + 90000 0.92828557 0.011750388 0.94003596 0.089199823 + 91000 0.96072564 0.010324509 0.97105015 0.090204803 + 92000 0.72105071 0.011484152 0.73253486 0.09140819 + 93000 0.65762527 0.012558219 0.67018349 0.092453474 + 94000 0.73991591 0.01261909 0.752535 0.093373477 + 95000 0.91791653 0.011980455 0.92989699 0.094182136 + 96000 0.76562561 0.011807085 0.7774327 0.095323684 + 97000 0.57292104 0.013610205 0.58653124 0.096505977 + 98000 0.68141076 0.013863204 0.69527396 0.097380069 + 99000 0.82390969 0.013002341 0.83691203 0.098235926 + 100000 0.77639728 0.012989342 0.78938662 0.099274147 +Loop time of 3.88899 on 1 procs for 100000 steps with 32 atoms + +Performance: 2221655.884 tau/day, 25713.610 timesteps/s +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.056 | 3.056 | 3.056 | 0.0 | 78.58 +Neigh | 0.0051048 | 0.0051048 | 0.0051048 | 0.0 | 0.13 +Comm | 0.091444 | 0.091444 | 0.091444 | 0.0 | 2.35 +Output | 0.0011995 | 0.0011995 | 0.0011995 | 0.0 | 0.03 +Modify | 0.69909 | 0.69909 | 0.69909 | 0.0 | 17.98 +Other | | 0.03616 | | | 0.93 + +Nlocal: 32 ave 32 max 32 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 21 ave 21 max 21 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 57 ave 57 max 57 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 57 +Ave neighs/atom = 1.78125 +Neighbor list builds = 1445 +Dangerous builds = 0 +Total wall time: 0:00:03 diff --git a/examples/body/log.9Jul18.body.squares.g++.4 b/examples/body/log.9Jul18.body.squares.g++.4 new file mode 100644 index 0000000000..56d7734b7b --- /dev/null +++ b/examples/body/log.9Jul18.body.squares.g++.4 @@ -0,0 +1,221 @@ +LAMMPS (29 Jun 2018) +# 2d rounded polygon bodies + +variable r index 4 +variable steps index 100000 +variable T index 0.5 +variable P index 0.1 +variable seed index 980411 + +units lj +dimension 2 + +atom_style body rounded/polygon 1 6 +atom_modify map array +read_data data.squares + orthogonal box = (0 0 -0.5) to (12 12 0.5) + 2 by 2 by 1 MPI processor grid + reading atoms ... + 2 atoms + 2 bodies + +replicate $r $r 1 +replicate 4 $r 1 +replicate 4 4 1 + orthogonal box = (0 0 -0.5) to (48 48 0.5) + 2 by 2 by 1 MPI processor grid + 32 atoms + Time spent = 0.000324011 secs + +velocity all create $T ${seed} dist gaussian mom yes rot yes +velocity all create 0.5 ${seed} dist gaussian mom yes rot yes +velocity all create 0.5 980411 dist gaussian mom yes rot yes + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 2 +variable c_n equal 1 +variable c_t equal 1 +variable mu equal 0.1 +variable delta_ua equal 0.5 + +pair_style body/rounded/polygon ${c_n} ${c_t} ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 1 ${c_t} ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 1 1 ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 1 1 0.1 ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 1 1 0.1 0.5 ${cut_inner} +pair_style body/rounded/polygon 1 1 0.1 0.5 0.5 +pair_coeff * * ${k_n} ${k_na} +pair_coeff * * 100 ${k_na} +pair_coeff * * 100 2 + +comm_modify vel yes + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +#fix 1 all nve/body +#fix 1 all nvt/body temp $T $T 1.0 +fix 1 all npt/body temp $T $T 1.0 x 0.001 $P 1.0 y 0.001 $P 1.0 couple xy fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 $T 1.0 x 0.001 $P 1.0 y 0.001 $P 1.0 couple xy fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 0.5 1.0 x 0.001 $P 1.0 y 0.001 $P 1.0 couple xy fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 0.5 1.0 x 0.001 0.1 1.0 y 0.001 $P 1.0 couple xy fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 0.5 1.0 x 0.001 0.1 1.0 y 0.001 0.1 1.0 couple xy fixedpoint 0 0 0 + +fix 2 all enforce2d + +#compute 1 all body/local id 1 2 3 +#dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] + +thermo_style custom step ke pe etotal press +thermo 1000 + +#dump 2 all image 10000 image.*.jpg type type zoom 2.0 # adiam 1.5 body type 0 0 +#dump_modify 2 pad 6 + +run ${steps} +run 100000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.15685 + ghost atom cutoff = 6.15685 + binsize = 3.07843, bins = 16 16 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair body/rounded/polygon, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/2d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.774 | 4.774 | 4.774 Mbytes +Step KinEng PotEng TotEng Press + 0 0.484375 0.25 0.734375 0.0067274306 + 1000 0.39423376 0.0017918048 0.39602557 0.0021941612 + 2000 0.42284177 0.01346585 0.43630762 0.0029377883 + 3000 0.58154405 0.011321689 0.59286574 0.003667871 + 4000 0.73518304 0.034603175 0.76978621 0.0018689207 + 5000 0.84367476 0.025292163 0.86896692 0.0089161373 + 6000 0.70803236 0.0085631016 0.71659546 0.0045552895 + 7000 0.56206452 0.10453031 0.66659483 0.010255161 + 8000 0.64538994 0.088817673 0.73420761 0.0037633655 + 9000 0.90540819 0.063696004 0.96910419 0.0077673359 + 10000 0.68632042 0.093265016 0.77958544 0.0057864837 + 11000 0.59118074 0.025654748 0.61683549 0.012518759 + 12000 0.67522767 0.038176401 0.71340407 0.01741153 + 13000 0.7644843 0.10429844 0.86878274 0.013161339 + 14000 0.56152694 0.067836656 0.6293636 0.016852113 + 15000 0.41895505 0.019513353 0.43846841 0.015225696 + 16000 0.55799443 0.15645637 0.7144508 0.011703646 + 17000 0.59385248 0.03451986 0.62837234 0.025482966 + 18000 0.75902169 0.031103586 0.79012527 0.018263354 + 19000 0.64266826 0.12535314 0.76802141 0.014884119 + 20000 0.57836261 0.16581188 0.74417449 0.024667165 + 21000 0.78281936 0.11877527 0.90159464 -0.0090089213 + 22000 0.5312006 0.13300874 0.66420934 0.025797278 + 23000 0.56458861 0.084369128 0.64895774 0.024630917 + 24000 0.65126875 0.06122992 0.71249867 0.034377198 + 25000 0.55173441 0.15694886 0.70868327 0.021634086 + 26000 0.59121615 0.17071182 0.76192797 0.024758366 + 27000 0.6394843 0.17442949 0.81391378 0.034919937 + 28000 0.31144221 0.41243036 0.72387256 0.074115225 + 29000 0.13516917 0.3075419 0.44271107 0.023861298 + 30000 0.14094934 0.24407203 0.38502137 0.037030438 + 31000 0.26313749 0.087395422 0.35053291 0.042347005 + 32000 0.51602457 0.063012079 0.57903664 0.018550299 + 33000 0.55628829 0.200213 0.75650129 0.026507686 + 34000 0.97399408 0.082504517 1.0564986 0.037889878 + 35000 0.64710533 0.17662002 0.82372535 0.058295508 + 36000 0.45769083 0.08241194 0.54010277 0.014957415 + 37000 0.72850105 0.053874061 0.78237512 0.037194593 + 38000 0.44177995 0.28939498 0.73117493 0.045194029 + 39000 0.46828451 0.077630686 0.54591519 0.089849009 + 40000 0.46786451 0.092828423 0.56069294 0.028042052 + 41000 0.71861856 0.097085715 0.81570427 0.036473296 + 42000 0.74121021 0.10553127 0.84674148 0.054058843 + 43000 0.62945489 0.12770673 0.75716161 0.047267994 + 44000 0.49900638 0.085150056 0.58415644 0.054798793 + 45000 0.70199572 0.063415877 0.7654116 0.038363546 + 46000 0.49513142 0.10649384 0.60162526 0.059392561 + 47000 0.3858898 0.079458749 0.46534855 0.051825764 + 48000 0.62585854 0.028585902 0.65444444 0.054074424 + 49000 0.65934482 0.51865062 1.1779954 -0.035272836 + 50000 0.5420438 0.082056756 0.62410056 0.031187494 + 51000 0.36685223 0.14224019 0.50909241 0.073790397 + 52000 0.19044627 0.15368389 0.34413016 0.059034266 + 53000 0.26847678 0.075693324 0.3441701 0.032276915 + 54000 0.3593711 0.19034549 0.54971659 0.070827883 + 55000 0.21659198 0.1929074 0.40949939 0.035916364 + 56000 0.28242715 0.12313241 0.40555956 0.062083926 + 57000 0.34067475 0.14711992 0.48779467 0.059321458 + 58000 0.4842796 0.16143425 0.64571385 0.059048247 + 59000 0.84438871 0.076546849 0.92093556 0.048046901 + 60000 0.92794849 0.054331626 0.98228012 0.058392272 + 61000 0.6916736 0.076168342 0.76784194 0.058654987 + 62000 0.63317965 0.094506389 0.72768604 0.061044719 + 63000 0.63317266 0.038785593 0.67195825 0.097236147 + 64000 0.81696668 0.121811 0.93877769 0.064935373 + 65000 0.82644758 0.25188344 1.078331 0.093352359 + 66000 0.64975019 0.17930857 0.82905876 0.058805254 + 67000 0.63487678 0.16877059 0.80364737 0.070254696 + 68000 0.79140717 0.11631004 0.9077172 0.064646394 + 69000 0.85687272 0.057835331 0.91470805 0.071057291 + 70000 0.67785976 0.040686768 0.71854653 0.074687222 + 71000 0.60594577 0.032193155 0.63813893 0.069349268 + 72000 0.77586745 0.024068533 0.79993598 0.083394193 + 73000 0.88877625 0.025746326 0.91452258 0.081511105 + 74000 0.73507888 0.036574786 0.77165367 0.075360233 + 75000 0.68787782 0.042098622 0.72997644 0.068651098 + 76000 0.72515745 0.04360868 0.76876613 0.069594624 + 77000 0.77580944 0.041826702 0.81763614 0.071937144 + 78000 0.76640394 0.039285046 0.80568899 0.074274921 + 79000 0.62504309 0.039593585 0.66463667 0.076443295 + 80000 0.60001642 0.043468215 0.64348464 0.094547719 + 81000 0.82175037 0.045608873 0.86735924 0.080186295 + 82000 0.85783276 0.042692576 0.90052534 0.081576548 + 83000 0.71367707 0.042172193 0.75584926 0.08256625 + 84000 0.68532406 0.044724759 0.73004882 0.083672013 + 85000 0.72576789 0.046982462 0.77275035 0.084789331 + 86000 0.75597701 0.04765086 0.80362787 0.085758056 + 87000 0.74190598 0.047629096 0.78953507 0.086679976 + 88000 0.60967704 0.049906172 0.65958321 0.085526191 + 89000 0.54490288 0.054768238 0.59967112 0.090604027 + 90000 0.75398341 0.057153453 0.81113686 0.091900858 + 91000 0.84577472 0.052753512 0.89852823 0.091913909 + 92000 0.7176235 0.050677427 0.76830093 0.092032507 + 93000 0.61699446 0.054097013 0.67109147 0.092071275 + 94000 0.76330752 0.057398618 0.82070614 0.092435043 + 95000 0.98754458 0.053801311 1.0413459 0.093526707 + 96000 0.7405897 0.052135628 0.79272533 0.095011929 + 97000 0.65587599 0.057011962 0.71288795 0.096692123 + 98000 0.72345634 0.060700171 0.78415651 0.097510345 + 99000 0.88283624 0.061795247 0.94463149 0.09799633 + 100000 0.86303812 0.058912988 0.92195111 0.09892993 +Loop time of 2.80074 on 4 procs for 100000 steps with 32 atoms + +Performance: 3084895.573 tau/day, 35704.810 timesteps/s +99.9% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.81169 | 0.89466 | 0.97669 | 8.4 | 31.94 +Neigh | 0.0017524 | 0.0018129 | 0.0018773 | 0.1 | 0.06 +Comm | 0.91307 | 0.99193 | 1.0691 | 7.3 | 35.42 +Output | 0.00076914 | 0.00093722 | 0.0013936 | 0.0 | 0.03 +Modify | 0.75335 | 0.75779 | 0.76346 | 0.4 | 27.06 +Other | | 0.1536 | | | 5.48 + +Nlocal: 8 ave 10 max 4 min +Histogram: 1 0 0 0 0 0 1 0 0 2 +Nghost: 17.25 ave 19 max 15 min +Histogram: 1 0 1 0 0 0 0 0 0 2 +Neighs: 13.5 ave 21 max 5 min +Histogram: 1 0 0 0 1 0 1 0 0 1 + +Total # of neighbors = 54 +Ave neighs/atom = 1.6875 +Neighbor list builds = 1443 +Dangerous builds = 0 +Total wall time: 0:00:02 diff --git a/examples/body/log.9Jul18.body.wall2d.g++.1 b/examples/body/log.9Jul18.body.wall2d.g++.1 new file mode 100644 index 0000000000..f22c366380 --- /dev/null +++ b/examples/body/log.9Jul18.body.wall2d.g++.1 @@ -0,0 +1,223 @@ +LAMMPS (29 Jun 2018) +# 2d rounded polygon bodies + +variable r index 4 +variable steps index 100000 +variable T index 0.5 +variable P index 0.1 +variable seed index 980411 + +units lj +dimension 2 + +atom_style body rounded/polygon 1 6 +atom_modify map array +read_data data.squares + orthogonal box = (0 0 -0.5) to (12 12 0.5) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 2 atoms + 2 bodies + +replicate $r $r 1 +replicate 4 $r 1 +replicate 4 4 1 + orthogonal box = (0 0 -0.5) to (48 48 0.5) + 1 by 1 by 1 MPI processor grid + 32 atoms + Time spent = 0.00029707 secs + +velocity all create $T ${seed} dist gaussian mom yes rot yes +velocity all create 0.5 ${seed} dist gaussian mom yes rot yes +velocity all create 0.5 980411 dist gaussian mom yes rot yes + +change_box all boundary p f p + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 2 +variable c_n equal 0.1 +variable c_t equal 0.1 +variable mu equal 0.1 +variable delta_ua equal 0.5 + +pair_style body/rounded/polygon ${c_n} ${c_t} ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 0.1 ${c_t} ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 0.1 0.1 ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 0.1 0.1 0.1 ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 0.1 0.1 0.1 0.5 ${cut_inner} +pair_style body/rounded/polygon 0.1 0.1 0.1 0.5 0.5 +pair_coeff * * ${k_n} ${k_na} +pair_coeff * * 100 ${k_na} +pair_coeff * * 100 2 + +comm_modify vel yes + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +#fix 1 all nve/body +#fix 1 all nvt/body temp $T $T 1.0 +fix 1 all npt/body temp $T $T 1.0 x 0.001 $P 1.0 fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 $T 1.0 x 0.001 $P 1.0 fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 0.5 1.0 x 0.001 $P 1.0 fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 0.5 1.0 x 0.001 0.1 1.0 fixedpoint 0 0 0 + +fix 2 all enforce2d +fix 3 all wall/body/polygon 2000 50 50 yplane 0.0 48.0 + +#compute 1 all body/local id 1 2 3 +#dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] + +thermo_style custom step ke pe etotal press +thermo 1000 + +#dump 2 all image 10000 image.*.jpg type type zoom 2.0 # adiam 1.5 body type 0 0 +#dump_modify 2 pad 6 + +run ${steps} +run 100000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.15685 + ghost atom cutoff = 6.15685 + binsize = 3.07843, bins = 16 16 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair body/rounded/polygon, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/2d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.771 | 4.771 | 4.771 Mbytes +Step KinEng PotEng TotEng Press + 0 0.484375 0.25 0.734375 0.0067274306 + 1000 0.49241101 0.0031318767 0.49554289 0.017768281 + 2000 0.56118632 0.0026068888 0.56379321 0.003410416 + 3000 0.75565115 0.025578366 0.78122951 0.0071862988 + 4000 0.72298647 0.093150646 0.81613712 0.003190158 + 5000 0.51684166 0.049164868 0.56600653 0.0096960168 + 6000 0.56627905 0.048132853 0.6144119 0.020733586 + 7000 0.58122129 0.018223718 0.59944501 0.0038160759 + 8000 0.64297977 0.025934821 0.66891459 0.0041091784 + 9000 0.41748404 0.0077890042 0.42527305 0.0039270065 + 10000 0.35738377 0.078487805 0.43587158 3.9079782e-05 + 11000 0.41529308 0.13619284 0.55148592 -0.0067482285 + 12000 0.43274718 0.071315497 0.50406268 0.007006378 + 13000 0.4748331 0.069904647 0.54473775 0.0010384372 + 14000 0.6287791 0.12721033 0.75598943 0.0047792448 + 15000 0.4692413 0.12344005 0.59268136 0.018033616 + 16000 0.43157074 0.14306789 0.57463862 0.042356676 + 17000 0.53085999 0.22126296 0.75212294 0.027509646 + 18000 0.52688968 0.13225282 0.6591425 0.0021558013 + 19000 0.55032328 0.12513047 0.67545375 0.025036251 + 20000 0.48465097 0.1431055 0.62775647 0.017193781 + 21000 0.53166734 0.21928574 0.75095307 0.011564317 + 22000 0.62177353 0.09296159 0.71473512 0.017660922 + 23000 0.6972939 0.12434123 0.82163514 0.024432327 + 24000 0.42767372 0.22152311 0.64919684 -0.013712449 + 25000 0.4816037 0.19272865 0.67433236 0.052386055 + 26000 0.72642579 0.19697046 0.92339625 0.020407694 + 27000 0.39649144 0.15058326 0.5470747 0.023705766 + 28000 0.44896324 0.18500106 0.6339643 -0.0089410286 + 29000 0.5565759 0.11085772 0.66743362 0.048437166 + 30000 0.58173584 0.21773281 0.79946865 0.0057357773 + 31000 0.49199415 0.23601982 0.72801397 0.046744152 + 32000 0.55665496 0.20542161 0.76207658 -0.0038756805 + 33000 0.62730739 0.24460524 0.87191263 0.045330682 + 34000 0.58107044 0.16395278 0.74502322 -0.0049496051 + 35000 0.56838849 0.21842922 0.78681771 0.0062086036 + 36000 0.45910273 0.28464172 0.74374445 -0.011700747 + 37000 0.37092037 0.27646862 0.647389 0.022305679 + 38000 0.7278047 0.30674438 1.0345491 0.07698342 + 39000 0.5132923 0.27395066 0.78724295 0.026898634 + 40000 0.62348649 0.24424644 0.86773293 0.039403899 + 41000 0.3658401 0.15512326 0.52096337 0.022559003 + 42000 0.4912253 0.35712978 0.84835508 -0.010336341 + 43000 0.70225957 0.36314638 1.0654059 0.004148866 + 44000 0.56958157 0.25488927 0.82447084 0.067537066 + 45000 0.45854352 0.30149439 0.76003791 -0.017002401 + 46000 0.62787247 0.34567995 0.97355242 0.11894801 + 47000 0.61348914 0.29378625 0.90727539 0.067873976 + 48000 0.71301829 0.34135284 1.0543711 0.021077736 + 49000 0.53520804 0.30593196 0.84113999 0.0059257647 + 50000 0.44966403 0.35370793 0.80337195 0.0020395669 + 51000 0.5236113 0.32296924 0.84658054 -0.051011506 + 52000 0.53905573 0.351771 0.89082672 0.013720106 + 53000 0.55978158 0.41293947 0.97272106 0.068558589 + 54000 0.52170459 0.2718066 0.7935112 0.0093138985 + 55000 0.61078876 0.43353897 1.0443277 0.045377392 + 56000 0.51300655 0.33182278 0.84482933 -0.018418487 + 57000 0.54882822 0.38380093 0.93262915 0.10249946 + 58000 0.72106212 0.45361279 1.1746749 0.030313481 + 59000 0.55871447 0.63823029 1.1969448 0.019079703 + 60000 0.49395192 0.58283102 1.0767829 0.0179349 + 61000 0.45991079 0.62540573 1.0853165 0.074398804 + 62000 0.4655788 0.60862262 1.0742014 0.11472976 + 63000 0.55634524 0.63069255 1.1870378 -0.0025676135 + 64000 0.57688903 0.45435264 1.0312417 0.0083813852 + 65000 0.57168922 0.42217005 0.99385927 0.044931269 + 66000 0.6206044 0.46727538 1.0878798 0.019686229 + 67000 0.61037155 0.41840109 1.0287726 0.0195109 + 68000 0.63848598 0.41305347 1.0515395 0.072940144 + 69000 0.49244916 0.3834095 0.87585866 0.07963677 + 70000 0.41847062 0.51907975 0.93755037 0.18447904 + 71000 0.45198986 0.52973709 0.98172695 0.078419371 + 72000 0.47064262 0.37808165 0.84872427 -0.00046308054 + 73000 0.6690143 0.37549359 1.0445079 0.061208432 + 74000 0.60444955 0.33779636 0.94224592 -0.068840321 + 75000 0.61762382 0.3916421 1.0092659 0.16253292 + 76000 0.63657961 0.50277989 1.1393595 0.013857508 + 77000 0.52524028 0.43597896 0.96121924 -0.03296482 + 78000 0.43803533 0.33172284 0.76975817 0.078763029 + 79000 0.67156089 0.55272177 1.2242827 0.080822223 + 80000 0.68678238 0.46061627 1.1473987 0.0027036992 + 81000 0.64956678 0.44959229 1.0991591 0.11201483 + 82000 0.51060477 0.43508342 0.9456882 0.028000608 + 83000 0.59550548 0.69026083 1.2857663 -0.0015809004 + 84000 0.64222145 0.38768816 1.0299096 0.014153173 + 85000 0.7661229 0.43445261 1.2005755 0.048034534 + 86000 0.60025257 0.53027929 1.1305319 0.0056865157 + 87000 0.46220939 0.47470035 0.93690974 0.075311946 + 88000 0.54123847 0.62899839 1.1702369 0.13260162 + 89000 0.61212272 0.6114241 1.2235468 0.033284822 + 90000 0.63924773 0.6916249 1.3308726 0.045088296 + 91000 0.49316865 0.51037033 1.003539 0.023203598 + 92000 0.57572123 0.43496319 1.0106844 0.297092 + 93000 0.65187559 0.56815972 1.2200353 0.1538215 + 94000 0.64107331 0.58948521 1.2305585 0.031117778 + 95000 0.64584158 0.6364688 1.2823104 0.096154676 + 96000 0.60509093 0.601487 1.2065779 0.03457172 + 97000 0.68837218 0.77974186 1.468114 0.17801164 + 98000 0.62725266 0.64137144 1.2686241 0.17449001 + 99000 0.46861221 0.67000291 1.1386151 0.2429588 + 100000 0.5879119 0.7140612 1.3019731 0.064634257 +Loop time of 2.50594 on 1 procs for 100000 steps with 32 atoms + +Performance: 3447804.126 tau/day, 39905.140 timesteps/s +100.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.5639 | 1.5639 | 1.5639 | 0.0 | 62.41 +Neigh | 0.0086911 | 0.0086911 | 0.0086911 | 0.0 | 0.35 +Comm | 0.058926 | 0.058926 | 0.058926 | 0.0 | 2.35 +Output | 0.0012379 | 0.0012379 | 0.0012379 | 0.0 | 0.05 +Modify | 0.83537 | 0.83537 | 0.83537 | 0.0 | 33.34 +Other | | 0.03781 | | | 1.51 + +Nlocal: 32 ave 32 max 32 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 20 ave 20 max 20 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 57 ave 57 max 57 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 57 +Ave neighs/atom = 1.78125 +Neighbor list builds = 2705 +Dangerous builds = 0 +Total wall time: 0:00:02 diff --git a/examples/body/log.9Jul18.body.wall2d.g++.4 b/examples/body/log.9Jul18.body.wall2d.g++.4 new file mode 100644 index 0000000000..7239fd4dcd --- /dev/null +++ b/examples/body/log.9Jul18.body.wall2d.g++.4 @@ -0,0 +1,223 @@ +LAMMPS (29 Jun 2018) +# 2d rounded polygon bodies + +variable r index 4 +variable steps index 100000 +variable T index 0.5 +variable P index 0.1 +variable seed index 980411 + +units lj +dimension 2 + +atom_style body rounded/polygon 1 6 +atom_modify map array +read_data data.squares + orthogonal box = (0 0 -0.5) to (12 12 0.5) + 2 by 2 by 1 MPI processor grid + reading atoms ... + 2 atoms + 2 bodies + +replicate $r $r 1 +replicate 4 $r 1 +replicate 4 4 1 + orthogonal box = (0 0 -0.5) to (48 48 0.5) + 2 by 2 by 1 MPI processor grid + 32 atoms + Time spent = 0.000386 secs + +velocity all create $T ${seed} dist gaussian mom yes rot yes +velocity all create 0.5 ${seed} dist gaussian mom yes rot yes +velocity all create 0.5 980411 dist gaussian mom yes rot yes + +change_box all boundary p f p + +variable cut_inner equal 0.5 +variable k_n equal 100 +variable k_na equal 2 +variable c_n equal 0.1 +variable c_t equal 0.1 +variable mu equal 0.1 +variable delta_ua equal 0.5 + +pair_style body/rounded/polygon ${c_n} ${c_t} ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 0.1 ${c_t} ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 0.1 0.1 ${mu} ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 0.1 0.1 0.1 ${delta_ua} ${cut_inner} +pair_style body/rounded/polygon 0.1 0.1 0.1 0.5 ${cut_inner} +pair_style body/rounded/polygon 0.1 0.1 0.1 0.5 0.5 +pair_coeff * * ${k_n} ${k_na} +pair_coeff * * 100 ${k_na} +pair_coeff * * 100 2 + +comm_modify vel yes + +neighbor 0.5 bin +neigh_modify every 1 delay 0 check yes + +timestep 0.001 + +#fix 1 all nve/body +#fix 1 all nvt/body temp $T $T 1.0 +fix 1 all npt/body temp $T $T 1.0 x 0.001 $P 1.0 fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 $T 1.0 x 0.001 $P 1.0 fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 0.5 1.0 x 0.001 $P 1.0 fixedpoint 0 0 0 +fix 1 all npt/body temp 0.5 0.5 1.0 x 0.001 0.1 1.0 fixedpoint 0 0 0 + +fix 2 all enforce2d +fix 3 all wall/body/polygon 2000 50 50 yplane 0.0 48.0 + +#compute 1 all body/local id 1 2 3 +#dump 1 all local 100000 dump.polygon.* index c_1[1] c_1[2] c_1[3] c_1[4] + +thermo_style custom step ke pe etotal press +thermo 1000 + +#dump 2 all image 10000 image.*.jpg type type zoom 2.0 # adiam 1.5 body type 0 0 +#dump_modify 2 pad 6 + +run ${steps} +run 100000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.15685 + ghost atom cutoff = 6.15685 + binsize = 3.07843, bins = 16 16 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair body/rounded/polygon, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/2d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.773 | 4.773 | 4.773 Mbytes +Step KinEng PotEng TotEng Press + 0 0.484375 0.25 0.734375 0.0067274306 + 1000 0.49241101 0.0031318767 0.49554289 0.017768281 + 2000 0.56118632 0.0026068888 0.56379321 0.003410416 + 3000 0.75565115 0.025578366 0.78122951 0.0071862988 + 4000 0.72298647 0.093150646 0.81613712 0.003190158 + 5000 0.51684166 0.049164868 0.56600653 0.0096960168 + 6000 0.56627905 0.048132853 0.6144119 0.020733586 + 7000 0.58122129 0.018223718 0.59944501 0.0038160759 + 8000 0.64297977 0.025934821 0.66891459 0.0041091784 + 9000 0.41748404 0.0077890042 0.42527305 0.0039270065 + 10000 0.35738377 0.078487805 0.43587158 3.9079865e-05 + 11000 0.41529307 0.13619284 0.55148591 -0.0067482285 + 12000 0.43274718 0.071315527 0.50406271 0.007006369 + 13000 0.4748324 0.069905666 0.54473807 0.0010385254 + 14000 0.62603727 0.098905625 0.7249429 0.0048876764 + 15000 0.44512086 0.10415235 0.54927321 0.01902062 + 16000 0.47460177 0.18053316 0.65513493 0.045013976 + 17000 0.52742676 0.10110706 0.62853382 0.013615471 + 18000 0.46111734 0.096118795 0.55723613 0.0073676834 + 19000 0.59668439 0.13652292 0.73320731 0.029403553 + 20000 0.46840192 0.11611719 0.58451911 -0.00034412499 + 21000 0.53550533 0.096457461 0.6319628 0.0019785732 + 22000 0.46599715 0.13206373 0.59806087 0.031970672 + 23000 0.49280776 0.20404726 0.69685501 0.03657433 + 24000 0.60901688 0.18255214 0.79156902 0.044955017 + 25000 0.47345185 0.13671357 0.61016542 0.020313539 + 26000 0.47653832 0.12448225 0.60102057 0.01878099 + 27000 0.50008212 0.24740634 0.74748845 0.021862639 + 28000 0.41627204 0.2519463 0.66821834 0.054683701 + 29000 0.55608273 0.23100212 0.78708485 -0.0043318497 + 30000 0.53884537 0.3001584 0.83900377 -0.012838186 + 31000 0.53036238 0.2300328 0.76039518 -0.0061688449 + 32000 0.42666792 0.20536256 0.63203048 0.045305282 + 33000 0.62908185 0.1652033 0.79428515 0.0072777588 + 34000 0.47028154 0.388736 0.85901754 0.04332288 + 35000 0.54602322 0.2775624 0.82358562 0.02898206 + 36000 0.59860544 0.21824655 0.81685199 0.0025936194 + 37000 0.62467827 0.11983499 0.74451326 0.050052743 + 38000 0.72594229 0.36584781 1.0917901 0.04280621 + 39000 0.51129656 0.23859043 0.74988699 0.050817447 + 40000 0.53263836 0.24212889 0.77476725 0.036245922 + 41000 0.50288088 0.36668283 0.86956371 0.018381415 + 42000 0.46653688 0.21974887 0.68628574 0.012661062 + 43000 0.61738785 0.32131037 0.93869821 0.012709433 + 44000 0.56603903 0.26515554 0.83119457 0.03315102 + 45000 0.56231638 0.32111693 0.88343331 0.06079756 + 46000 0.7096208 0.2570131 0.96663391 0.048770468 + 47000 0.588755 0.1880748 0.7768298 0.035962604 + 48000 0.56296339 0.25783519 0.82079858 0.053019928 + 49000 0.419885 0.42328618 0.84317118 0.038105269 + 50000 0.63073351 0.41426285 1.0449964 0.0015271048 + 51000 0.59357935 0.184222 0.77780136 0.015996218 + 52000 0.60608471 0.36247533 0.96856003 0.10984665 + 53000 0.5227842 0.27686739 0.79965159 0.02761699 + 54000 0.39435923 0.34197355 0.73633278 0.061183263 + 55000 0.46748455 0.34230903 0.80979358 0.077441382 + 56000 0.59819827 0.29212061 0.89031889 0.043772353 + 57000 0.61682559 0.32788566 0.94471124 0.03992069 + 58000 0.52702478 0.24891506 0.77593984 0.058480883 + 59000 0.66925719 0.4109031 1.0801603 0.072434423 + 60000 0.66807714 0.39233068 1.0604078 0.082370324 + 61000 0.5724275 0.43308567 1.0055132 0.0072945426 + 62000 0.49433556 0.38453743 0.87887299 0.0036097443 + 63000 0.57575143 0.54067119 1.1164226 0.073339638 + 64000 0.68045383 0.38246533 1.0629192 0.025314593 + 65000 0.59843527 0.42928622 1.0277215 -0.030096445 + 66000 0.60274797 0.50186417 1.1046121 0.069797184 + 67000 0.47450407 0.52689807 1.0014021 0.008758012 + 68000 0.5514135 0.64113187 1.1925454 0.093863314 + 69000 0.52008074 0.45749565 0.97757639 -0.066061381 + 70000 0.69042662 0.50416006 1.1945867 0.014128617 + 71000 0.63925854 0.35153425 0.9907928 -0.01134957 + 72000 0.52088835 0.47626986 0.99715821 0.10198133 + 73000 0.46333852 0.5515537 1.0148922 0.00060582772 + 74000 0.53481418 0.50409531 1.0389095 0.00919451 + 75000 0.67182749 0.50380162 1.1756291 0.043301985 + 76000 0.70492289 0.4112122 1.1161351 0.14880484 + 77000 0.59781817 0.50197661 1.0997948 -0.057111711 + 78000 0.51677429 0.4348232 0.95159749 -0.0074619446 + 79000 0.50663297 0.55000424 1.0566372 0.0052071216 + 80000 0.59392006 0.48394003 1.0778601 -0.018990234 + 81000 0.66323593 0.40358336 1.0668193 -0.02961345 + 82000 0.61596979 0.49177944 1.1077492 0.1314853 + 83000 0.63917554 0.61656584 1.2557414 0.11908351 + 84000 0.49305291 0.46161646 0.95466937 0.033558488 + 85000 0.52552044 0.54250555 1.068026 0.13015174 + 86000 0.55140914 0.38924725 0.94065638 0.047412499 + 87000 0.60952504 0.52603688 1.1355619 0.039230066 + 88000 0.50119735 0.547539 1.0487364 0.019659933 + 89000 0.40331401 0.50331134 0.90662535 -0.056906034 + 90000 0.47067839 0.51306911 0.9837475 0.11918166 + 91000 0.45564995 0.38693455 0.8425845 0.12040045 + 92000 0.64163032 0.34232532 0.98395564 0.0057051641 + 93000 0.70375593 0.53646186 1.2402178 0.16044241 + 94000 0.53378112 0.51971406 1.0534952 0.11389004 + 95000 0.47055342 0.50396004 0.97451346 0.079424215 + 96000 0.59543473 0.40204536 0.99748009 0.096813093 + 97000 0.64821917 0.50051728 1.1487365 0.054071312 + 98000 0.55723937 0.4945909 1.0518303 0.047316424 + 99000 0.56044424 0.50773312 1.0681774 0.0149959 + 100000 0.68254229 0.32704484 1.0095871 0.0069212661 +Loop time of 2.20043 on 4 procs for 100000 steps with 32 atoms + +Performance: 3926501.701 tau/day, 45445.622 timesteps/s +100.0% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.41008 | 0.41366 | 0.41719 | 0.4 | 18.80 +Neigh | 0.0027823 | 0.0030481 | 0.0034747 | 0.5 | 0.14 +Comm | 0.74581 | 0.7675 | 0.78684 | 2.0 | 34.88 +Output | 0.00082111 | 0.0010884 | 0.0016899 | 1.1 | 0.05 +Modify | 0.83828 | 0.85329 | 0.86656 | 1.4 | 38.78 +Other | | 0.1618 | | | 7.36 + +Nlocal: 8 ave 9 max 7 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 12.75 ave 14 max 12 min +Histogram: 2 0 0 0 0 1 0 0 0 1 +Neighs: 11 ave 19 max 5 min +Histogram: 1 0 0 2 0 0 0 0 0 1 + +Total # of neighbors = 44 +Ave neighs/atom = 1.375 +Neighbor list builds = 2663 +Dangerous builds = 0 +Total wall time: 0:00:02 diff --git a/src/BODY/body_rounded_polygon.cpp b/src/BODY/body_rounded_polygon.cpp index d848a8fa95..1e232f0f3f 100644 --- a/src/BODY/body_rounded_polygon.cpp +++ b/src/BODY/body_rounded_polygon.cpp @@ -114,7 +114,7 @@ double BodyRoundedPolygon::enclosing_radius(struct AtomVecBody::Bonus *bonus) int nvertices = bonus->ivalue[0]; if (nvertices == 1 || nvertices == 2) return *(bonus->dvalue+3*nsub(bonus)+2); - return *(bonus->dvalue+3*nsub(bonus)+2*nsub(bonus)); + return *(bonus->dvalue + 3*nsub(bonus) + 2*nsub(bonus)); } /* ---------------------------------------------------------------------- */ @@ -124,7 +124,7 @@ double BodyRoundedPolygon::rounded_radius(struct AtomVecBody::Bonus *bonus) int nvertices = bonus->ivalue[0]; if (nvertices == 1 || nvertices == 2) return *(bonus->dvalue+3*nsub(bonus)+2+1); - return *(bonus->dvalue+3*nsub(bonus)+2*nsub(bonus)+1); + return *(bonus->dvalue + 3*nsub(bonus) + 2*nsub(bonus)+1); } /* ---------------------------------------------------------------------- */ diff --git a/src/BODY/body_rounded_polyhedron.cpp b/src/BODY/body_rounded_polyhedron.cpp index a26b6d0cbd..fb0be7c1be 100644 --- a/src/BODY/body_rounded_polyhedron.cpp +++ b/src/BODY/body_rounded_polyhedron.cpp @@ -132,7 +132,8 @@ double BodyRoundedPolyhedron::enclosing_radius(struct AtomVecBody::Bonus *bonus) int nvertices = bonus->ivalue[0]; if (nvertices == 1 || nvertices == 2) return *(bonus->dvalue+3*nsub(bonus)+2); - return *(bonus->dvalue+3*nsub(bonus)+2*nedges(bonus)+MAX_FACE_SIZE*nfaces(bonus)); + return *(bonus->dvalue+3*nsub(bonus) + 2*nedges(bonus) + + MAX_FACE_SIZE*nfaces(bonus)); } /* ---------------------------------------------------------------------- */ @@ -142,7 +143,8 @@ double BodyRoundedPolyhedron::rounded_radius(struct AtomVecBody::Bonus *bonus) int nvertices = bonus->ivalue[0]; if (nvertices == 1 || nvertices == 2) return *(bonus->dvalue+3*nsub(bonus)+2+1); - return *(bonus->dvalue+3*nsub(bonus)+2*nedges(bonus)+MAX_FACE_SIZE*nfaces(bonus)+1); + return *(bonus->dvalue+3*nsub(bonus) + 2*nedges(bonus) + + MAX_FACE_SIZE*nfaces(bonus)+1); } /* ---------------------------------------------------------------------- */ @@ -205,7 +207,8 @@ void BodyRoundedPolyhedron::data_body(int ibonus, int ninteger, int ndouble, // nsub == 1 || nsub == 2 || nsub == 3: // 6 for inertia + 3*nsub for vertex coords + 1 for rounded radius // nsub > 3: - // 6 for inertia + 3*nsub for vertex coords + 2*nsub for edges + 3*nfaces + 1 for rounded radius + // 6 for inertia + 3*nsub for vertex coords + 2*nsub for edges + + // 3*nfaces + 1 for rounded radius int nedges,nentries; if (nsub == 1 || nsub == 2) { diff --git a/src/BODY/fix_wall_body_polygon.cpp b/src/BODY/fix_wall_body_polygon.cpp index 72a60b22d0..5ec5a7cca8 100644 --- a/src/BODY/fix_wall_body_polygon.cpp +++ b/src/BODY/fix_wall_body_polygon.cpp @@ -58,7 +58,8 @@ FixWallBodyPolygon::FixWallBodyPolygon(LAMMPS *lmp, int narg, char **arg) : if (narg < 7) error->all(FLERR,"Illegal fix wall/body/polygon command"); if (!atom->body_flag) - error->all(FLERR,"Fix wall/body/polygon requires atom style body/rounded/polygon"); + error->all(FLERR,"Fix wall/body/polygon requires " + "atom style body/rounded/polygon"); restart_peratom = 1; create_attribute = 1; @@ -182,7 +183,8 @@ void FixWallBodyPolygon::init() if (!avec) error->all(FLERR,"Pair body/rounded/polygon requires atom style body"); if (strcmp(avec->bptr->style,"rounded/polygon") != 0) - error->all(FLERR,"Pair body/rounded/polygon requires body style rounded/polygon"); + error->all(FLERR,"Pair body/rounded/polygon requires " + "body style rounded/polygon"); bptr = (BodyRoundedPolygon *) avec->bptr; // set pairstyle from body/polygonular pair style @@ -828,4 +830,3 @@ void FixWallBodyPolygon::distance(const double* x2, const double* x1, + (x2[1] - x1[1]) * (x2[1] - x1[1]) + (x2[2] - x1[2]) * (x2[2] - x1[2])); } - diff --git a/src/BODY/fix_wall_body_polyhedron.cpp b/src/BODY/fix_wall_body_polyhedron.cpp index 879289ea42..17e9f0b8b5 100644 --- a/src/BODY/fix_wall_body_polyhedron.cpp +++ b/src/BODY/fix_wall_body_polyhedron.cpp @@ -58,7 +58,8 @@ FixWallBodyPolyhedron::FixWallBodyPolyhedron(LAMMPS *lmp, int narg, char **arg) if (narg < 7) error->all(FLERR,"Illegal fix wall/body/polyhedron command"); if (!atom->body_flag) - error->all(FLERR,"Fix wall/body/polyhedron requires atom style body/rounded/polyhedron"); + error->all(FLERR,"Fix wall/body/polyhedron requires " + "atom style body/rounded/polyhedron"); restart_peratom = 1; create_attribute = 1; @@ -189,7 +190,8 @@ void FixWallBodyPolyhedron::init() if (!avec) error->all(FLERR,"Pair body/rounded/polyhedron requires atom style body"); if (strcmp(avec->bptr->style,"rounded/polyhedron") != 0) - error->all(FLERR,"Pair body/rounded/polyhedron requires body style rounded/polyhedron"); + error->all(FLERR,"Pair body/rounded/polyhedron requires " + "body style rounded/polyhedron"); bptr = (BodyRoundedPolyhedron *) avec->bptr; // set pairstyle from body/polyhedronular pair style @@ -941,4 +943,3 @@ void FixWallBodyPolyhedron::distance(const double* x2, const double* x1, + (x2[1] - x1[1]) * (x2[1] - x1[1]) + (x2[2] - x1[2]) * (x2[2] - x1[2])); } - diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp index 22300091ae..c4c09fd677 100644 --- a/src/BODY/pair_body_rounded_polygon.cpp +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -276,8 +276,10 @@ void PairBodyRoundedPolygon::compute(int eflag, int vflag) // scale the force at both contacts - contact_forces(contact_list[m], j_a, x, v, angmom, f, torque, evdwl, facc); - contact_forces(contact_list[n], j_a, x, v, angmom, f, torque, evdwl, facc); + contact_forces(contact_list[m], j_a, x, v, angmom, f, torque, + evdwl, facc); + contact_forces(contact_list[n], j_a, x, v, angmom, f, torque, + evdwl, facc); done = 1; #ifdef _POLYGON_DEBUG @@ -285,16 +287,18 @@ void PairBodyRoundedPolygon::compute(int eflag, int vflag) m, n, delta_a, j_a); printf(" %d: vertex %d of body %d and edge %d of body %d; " "xv = %f %f %f; xe = %f %f %f\n", - m, contact_list[m].vertex, contact_list[m].ibody, - contact_list[m].edge, contact_list[m].jbody, - contact_list[m].xv[0], contact_list[m].xv[1], contact_list[m].xv[2], - contact_list[m].xe[0], contact_list[m].xe[1], contact_list[m].xe[2]); + m, contact_list[m].vertex, contact_list[m].ibody, + contact_list[m].edge, contact_list[m].jbody, + contact_list[m].xv[0], contact_list[m].xv[1], + contact_list[m].xv[2], contact_list[m].xe[0], + contact_list[m].xe[1], contact_list[m].xe[2]); printf(" %d: vertex %d of body %d and edge %d of body %d; " "xv = %f %f %f; xe = %f %f %f\n", - n, contact_list[n].vertex, contact_list[n].ibody, - contact_list[n].edge, contact_list[n].jbody, - contact_list[n].xv[0], contact_list[n].xv[1], contact_list[n].xv[2], - contact_list[n].xe[0], contact_list[n].xe[1], contact_list[n].xe[2]); + n, contact_list[n].vertex, contact_list[n].ibody, + contact_list[n].edge, contact_list[n].jbody, + contact_list[n].xv[0], contact_list[n].xv[1], + contact_list[n].xv[2], contact_list[n].xe[0], + contact_list[n].xe[1], contact_list[n].xe[2]); #endif break; @@ -417,13 +421,16 @@ void PairBodyRoundedPolygon::coeff(int narg, char **arg) void PairBodyRoundedPolygon::init_style() { avec = (AtomVecBody *) atom->style_match("body"); - if (!avec) error->all(FLERR,"Pair body/rounded/polygon requires atom style body"); + if (!avec) + error->all(FLERR,"Pair body/rounded/polygon requires atom style body"); if (strcmp(avec->bptr->style,"rounded/polygon") != 0) - error->all(FLERR,"Pair body/rounded/polygon requires body style rounded/polygon"); + error->all(FLERR,"Pair body/rounded/polygon requires " + "body style rounded/polygon"); bptr = (BodyRoundedPolygon *) avec->bptr; if (comm->ghost_velocity == 0) - error->all(FLERR,"Pair body/rounded/polygon requires ghost atoms store velocity"); + error->all(FLERR,"Pair body/rounded/polygon requires " + "ghost atoms store velocity"); neighbor->request(this); @@ -850,7 +857,8 @@ int PairBodyRoundedPolygon::vertex_against_edge(int i, int j, #ifdef _CONVEX_POLYGON // done with the edges from body j, - // given that vertex ni interacts with only one vertex from one edge of body j + // given that vertex ni interacts with only one vertex + // from one edge of body j break; #endif diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index 96307a0ab1..0d73d249b9 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -393,13 +393,16 @@ void PairBodyRoundedPolyhedron::coeff(int narg, char **arg) void PairBodyRoundedPolyhedron::init_style() { avec = (AtomVecBody *) atom->style_match("body"); - if (!avec) error->all(FLERR,"Pair body/rounded/polyhedron requires atom style body"); + if (!avec) error->all(FLERR,"Pair body/rounded/polyhedron requires " + "atom style body"); if (strcmp(avec->bptr->style,"rounded/polyhedron") != 0) - error->all(FLERR,"Pair body/rounded/polyhedron requires body style rounded/polyhedron"); + error->all(FLERR,"Pair body/rounded/polyhedron requires " + "body style rounded/polyhedron"); bptr = (BodyRoundedPolyhedron *) avec->bptr; if (comm->ghost_velocity == 0) - error->all(FLERR,"Pair body/rounded/polyhedron requires ghost atoms store velocity"); + error->all(FLERR,"Pair body/rounded/polyhedron requires " + "ghost atoms store velocity"); neighbor->request(this); @@ -788,7 +791,8 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, fn[1] = -c_n * vn2; fn[2] = -c_n * vn3; - // tangential friction term at contact, excluding the tangential deformation term + // tangential friction term at contact, + // excluding the tangential deformation term ft[0] = -c_t * vt1; ft[1] = -c_t * vt2; @@ -997,7 +1001,8 @@ int PairBodyRoundedPolyhedron::edge_against_edge(int ibody, int jbody, // compute the distance between the edge nj to the edge ni #ifdef _POLYHEDRON_DEBUG - printf("Compute interaction between edge %d of body %d with edge %d of body %d:\n", + printf("Compute interaction between edge %d of body %d " + "with edge %d of body %d:\n", nj, jbody, ni, ibody); #endif @@ -1055,7 +1060,8 @@ int PairBodyRoundedPolyhedron::edge_against_face(int ibody, int jbody, // compute the distance between the face nj to the edge ni #ifdef _POLYHEDRON_DEBUG - printf("Compute interaction between face %d of body %d with edge %d of body %d:\n", + printf("Compute interaction between face %d of body %d with " + "edge %d of body %d:\n", nj, jbody, ni, ibody); #endif @@ -1293,7 +1299,8 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, xpj2[1] = xmj[1] + discrete[jfirst+npj2][1]; xpj2[2] = xmj[2] + discrete[jfirst+npj2][2]; - // no interaction if two ends of the edge are on the same side with the COM wrt the face + // no interaction if two ends of the edge + // are on the same side with the COM wrt the face if (opposite_sides(n, xi1, xmi, xpj1) == 0 && opposite_sides(n, xi1, xmi, xpj2) == 0) @@ -1305,7 +1312,9 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, int inside1 = 0; int inside2 = 0; - // enum {EF_PARALLEL=0,EF_SAME_SIDE_OF_FACE,EF_INTERSECT_INSIDE,EF_INTERSECT_OUTSIDE}; + // enum {EF_PARALLEL=0,EF_SAME_SIDE_OF_FACE, + // EF_INTERSECT_INSIDE,EF_INTERSECT_OUTSIDE}; + int interact = edge_face_intersect(xi1, xi2, xi3, xpj1, xpj2, hi1, hi2, d1, d2, inside1, inside2); @@ -2310,7 +2319,8 @@ double PairBodyRoundedPolyhedron::contact_separation(const Contact& c1, find the number of unique contacts ------------------------------------------------------------------------- */ -void PairBodyRoundedPolyhedron::find_unique_contacts(Contact* contact_list, int& num_contacts) +void PairBodyRoundedPolyhedron::find_unique_contacts(Contact* contact_list, + int& num_contacts) { int n = num_contacts; for (int i = 0; i < n - 1; i++) { From ad4f61a5ce6abdf69c5cff22dec3d563ead95c35 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 10 Jul 2018 09:07:54 -0400 Subject: [PATCH 248/675] update fatbin makefile for libgpu.a to latest additions --- lib/gpu/Nvidia.makefile_multi | 46 +++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/lib/gpu/Nvidia.makefile_multi b/lib/gpu/Nvidia.makefile_multi index 5fb35cce3c..94cfd4af6b 100644 --- a/lib/gpu/Nvidia.makefile_multi +++ b/lib/gpu/Nvidia.makefile_multi @@ -79,7 +79,10 @@ OBJS = $(OBJ_DIR)/lal_atom.o $(OBJ_DIR)/lal_ans.o \ $(OBJ_DIR)/lal_lj_cubic.o $(OBJ_DIR)/lal_lj_cubic_ext.o \ $(OBJ_DIR)/lal_ufm.o $(OBJ_DIR)/lal_ufm_ext.o \ $(OBJ_DIR)/lal_dipole_long_lj.o $(OBJ_DIR)/lal_dipole_long_lj_ext.o \ - $(OBJ_DIR)/lal_lj_expand_coul_long.o $(OBJ_DIR)/lal_lj_expand_coul_long_ext.o + $(OBJ_DIR)/lal_lj_expand_coul_long.o $(OBJ_DIR)/lal_lj_expand_coul_long_ext.o \ + $(OBJ_DIR)/lal_coul_long_cs.o $(OBJ_DIR)/lal_coul_long_cs_ext.o \ + $(OBJ_DIR)/lal_born_coul_long_cs.o $(OBJ_DIR)/lal_born_coul_long_cs_ext.o \ + $(OBJ_DIR)/lal_born_coul_wolf_cs.o $(OBJ_DIR)/lal_born_coul_wolf_cs_ext.o CBNS = $(OBJ_DIR)/device.cubin $(OBJ_DIR)/device_cubin.h \ $(OBJ_DIR)/atom.cubin $(OBJ_DIR)/atom_cubin.h \ @@ -137,7 +140,10 @@ CBNS = $(OBJ_DIR)/device.cubin $(OBJ_DIR)/device_cubin.h \ $(OBJ_DIR)/lj_cubic.cubin $(OBJ_DIR)/lj_cubic_cubin.h \ $(OBJ_DIR)/ufm.cubin $(OBJ_DIR)/ufm_cubin.h \ $(OBJ_DIR)/dipole_long_lj.cubin $(OBJ_DIR)/dipole_long_lj_cubin.h \ - $(OBJ_DIR)/lj_expand_coul_long.cubin $(OBJ_DIR)/lj_expand_coul_long_cubin.h + $(OBJ_DIR)/lj_expand_coul_long.cubin $(OBJ_DIR)/lj_expand_coul_long_cubin.h \ + $(OBJ_DIR)/coul_long_cs.cubin $(OBJ_DIR)/coul_long_cs_cubin.h \ + $(OBJ_DIR)/born_coul_long_cs.cubin $(OBJ_DIR)/born_coul_long_cs_cubin.h \ + $(OBJ_DIR)/born_coul_wolf_cs.cubin $(OBJ_DIR)/born_coul_wolf_cs_cubin.h all: $(OBJ_DIR) $(GPU_LIB) $(EXECS) @@ -837,6 +843,42 @@ $(OBJ_DIR)/lal_lj_expand_coul_long.o: $(ALL_H) lal_lj_expand_coul_long.h lal_lj_ $(OBJ_DIR)/lal_lj_expand_coul_long_ext.o: $(ALL_H) lal_lj_expand_coul_long.h lal_lj_expand_coul_long_ext.cpp lal_base_charge.h $(CUDR) -o $@ -c lal_lj_expand_coul_long_ext.cpp -I$(OBJ_DIR) +$(OBJ_DIR)/coul_long_cs.cubin: lal_coul_long_cs.cu lal_precision.h lal_preprocessor.h + $(CUDA) --fatbin -DNV_KERNEL -o $@ lal_coul_long_cs.cu + +$(OBJ_DIR)/coul_long_cs_cubin.h: $(OBJ_DIR)/coul_long_cs.cubin $(OBJ_DIR)/coul_long_cs.cubin + $(BIN2C) -c -n coul_long_cs $(OBJ_DIR)/coul_long_cs.cubin > $(OBJ_DIR)/coul_long_cs_cubin.h + +$(OBJ_DIR)/lal_coul_long_cs.o: $(ALL_H) lal_coul_long_cs.h lal_coul_long_cs.cpp $(OBJ_DIR)/coul_long_cs_cubin.h $(OBJ_DIR)/lal_base_charge.o $(OBJ_DIR)/lal_coul_long.o + $(CUDR) -o $@ -c lal_coul_long_cs.cpp -I$(OBJ_DIR) + +$(OBJ_DIR)/lal_coul_long_cs_ext.o: $(ALL_H) lal_coul_long_cs.h lal_coul_long_cs_ext.cpp lal_coul_long.h + $(CUDR) -o $@ -c lal_coul_long_cs_ext.cpp -I$(OBJ_DIR) + +$(OBJ_DIR)/born_coul_long_cs.cubin: lal_born_coul_long_cs.cu lal_precision.h lal_preprocessor.h + $(CUDA) --fatbin -DNV_KERNEL -o $@ lal_born_coul_long_cs.cu + +$(OBJ_DIR)/born_coul_long_cs_cubin.h: $(OBJ_DIR)/born_coul_long_cs.cubin $(OBJ_DIR)/born_coul_long_cs.cubin + $(BIN2C) -c -n born_coul_long_cs $(OBJ_DIR)/born_coul_long_cs.cubin > $(OBJ_DIR)/born_coul_long_cs_cubin.h + +$(OBJ_DIR)/lal_born_coul_long_cs.o: $(ALL_H) lal_born_coul_long_cs.h lal_born_coul_long_cs.cpp $(OBJ_DIR)/born_coul_long_cs_cubin.h $(OBJ_DIR)/lal_base_charge.o $(OBJ_DIR)/lal_born_coul_long.o + $(CUDR) -o $@ -c lal_born_coul_long_cs.cpp -I$(OBJ_DIR) + +$(OBJ_DIR)/lal_born_coul_long_cs_ext.o: $(ALL_H) lal_born_coul_long_cs.h lal_born_coul_long_cs_ext.cpp lal_born_coul_long.h + $(CUDR) -o $@ -c lal_born_coul_long_cs_ext.cpp -I$(OBJ_DIR) + +$(OBJ_DIR)/born_coul_wolf_cs.cubin: lal_born_coul_wolf_cs.cu lal_precision.h lal_preprocessor.h + $(CUDA) --fatbin -DNV_KERNEL -o $@ lal_born_coul_wolf_cs.cu + +$(OBJ_DIR)/born_coul_wolf_cs_cubin.h: $(OBJ_DIR)/born_coul_wolf_cs.cubin $(OBJ_DIR)/born_coul_wolf_cs.cubin + $(BIN2C) -c -n born_coul_wolf_cs $(OBJ_DIR)/born_coul_wolf_cs.cubin > $(OBJ_DIR)/born_coul_wolf_cs_cubin.h + +$(OBJ_DIR)/lal_born_coul_wolf_cs.o: $(ALL_H) lal_born_coul_wolf_cs.h lal_born_coul_wolf_cs.cpp $(OBJ_DIR)/born_coul_wolf_cs_cubin.h $(OBJ_DIR)/lal_base_charge.o $(OBJ_DIR)/lal_born_coul_wolf.o + $(CUDR) -o $@ -c lal_born_coul_wolf_cs.cpp -I$(OBJ_DIR) + +$(OBJ_DIR)/lal_born_coul_wolf_cs_ext.o: $(ALL_H) lal_born_coul_wolf_cs.h lal_born_coul_wolf_cs_ext.cpp lal_born_coul_wolf.h + $(CUDR) -o $@ -c lal_born_coul_wolf_cs_ext.cpp -I$(OBJ_DIR) + $(BIN_DIR)/nvc_get_devices: ./geryon/ucl_get_devices.cpp $(NVD_H) $(CUDR) -o $@ ./geryon/ucl_get_devices.cpp -DUCL_CUDADR $(CUDA_LIB) -lcuda From 199c96f985bae537e7b43dc49b7a41570cf8b905 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 10 Jul 2018 09:22:41 -0400 Subject: [PATCH 249/675] update and clarify the choice of atom ids for angle style dipole (which is not really an angle potential) --- doc/src/angle_dipole.txt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/src/angle_dipole.txt b/doc/src/angle_dipole.txt index d91f260d51..34cc8c153c 100644 --- a/doc/src/angle_dipole.txt +++ b/doc/src/angle_dipole.txt @@ -96,16 +96,17 @@ USER-MISC package. See the "Making LAMMPS"_Section_start.html#start_2_3 section for more info on packages. NOTE: In the "Angles" section of the data file, the atom ID 'j' -corresponding to the dipole to restrain must come before the atom ID -of the reference atom 'i'. A third atom ID 'k' must also be provided, -although 'k' is just a 'dummy' atom which can be any atom; it may be -useful to choose a convention (e.g., 'k'='i') and adhere to it. For -example, if ID=1 for the dipolar atom to restrain, and ID=2 for the -reference atom, the corresponding line in the "Angles" section of the -data file would read: X X 1 2 2 +defining the direction of the dipole vector to restrain must come +before the atom ID of the reference atom 'i'. A third atom ID 'k' must +also be provided to comply with the requirement of a valid angle +definition. This atom ID k should be chosen to be that of an atom +bonded to atom 'i' to avoid errors with "lost angle atoms" when running +in parallel. Since the LAMMPS code checks for valid angle definitions, +cannot use the same atom ID of either 'i' or 'j' (this was allowed +and recommended with older LAMMPS versions). The "newton" command for intramolecular interactions must be "on" -(which is the default). +(which is the default except when using some accelerator packages). This angle style should not be used with SHAKE. From 9d5dc561ca45967c445f472bca92e253bca3d33d Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 9 Jul 2018 10:24:55 -0600 Subject: [PATCH 250/675] Commit1 JT 070918 - created README in examples/SPIN - modified doc/src/set.txt to define 'spin' and 'spin/random' keywords --- doc/src/set.txt | 17 +++++++++++++++++ examples/SPIN/README | 20 ++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 examples/SPIN/README diff --git a/doc/src/set.txt b/doc/src/set.txt index 4757d1c575..d05660dc42 100644 --- a/doc/src/set.txt +++ b/doc/src/set.txt @@ -17,6 +17,7 @@ ID = atom ID range or type range or mol ID range or group ID or region ID :l one or more keyword/value pairs may be appended :l keyword = {type} or {type/fraction} or {mol} or {x} or {y} or {z} or \ {charge} or {dipole} or {dipole/random} or {quat} or \ + {spin} or {spin/random} or {quat} or \ {quat/random} or {diameter} or {shape} or \ {length} or {tri} or {theta} or {theta/random} or \ {angmom} or {omega} or \ @@ -43,6 +44,13 @@ keyword = {type} or {type/fraction} or {mol} or {x} or {y} or {z} or \ {dipole/random} value = seed Dlen seed = random # seed (positive integer) for dipole moment orientations Dlen = magnitude of dipole moment (dipole units) + {spin} values = g x y z + g = magnitude of magnetic spin vector (in Bohr magneton's unit) + x,y,z = orientation of magnetic spin vector + any of x,y,z can be an atom-style variable (see below) + {spin/random} value = seed Dlen + seed = random # seed (positive integer) for magnetic spin orientations + Dlen = magnitude of magnetic spin vector (in Bohr magneton's unit) {quat} values = a b c theta a,b,c = unit vector to rotate particle around via right-hand rule theta = rotation angle (degrees) @@ -232,6 +240,15 @@ the orientation of a particular atom is the same, regardless of how many processors are being used. This keyword does not allow use of an atom-style variable. +Keyword {spin} uses the specified g value to set the magnitude of the +magnetic spin vectors, and the x,y,z values as components of a vector +to set as the orientation of the magnetic spin vectors of the selected +atoms. + +Keyword {spin/random} randomizes the orientation of the magnetic spin +vectors for the selected atoms and sets the magnitude of each to the +specified {Dlen} value. + Keyword {quat} uses the specified values to create a quaternion (4-vector) that represents the orientation of the selected atoms. The particles must define a quaternion for their orientation diff --git a/examples/SPIN/README b/examples/SPIN/README new file mode 100644 index 0000000000..5ad252e7f2 --- /dev/null +++ b/examples/SPIN/README @@ -0,0 +1,20 @@ +This directory contains examples and applications of the SPIN package +===================================================================== + +- the iron, cobalt_hcp, cobalt_fcc and nickel directories provide +examples of spin-lattice calculations. + +- the bfo repository provides an example of spin dynamics calculation +performed on a fixed lattice, and applied to the multiferroic +material bismuth-oxide. + +- the read_restart directory provides examples allowing to write or +read data files, and restart magneto-mechanical simulations. + +- vizualization of the dump files can be achieved using Ovito or +VMD. See the vmd repository for help vizualizing results with VMD. + +** Note, the aim of this repository is mainly to provide users with +examples. Better values and tuning of the magnetic and mechanical +interactions can be achieved for more accurate materials +simulations. ** From ade9b7bfc39ede248fc1d81b7ab93a7019e10daf Mon Sep 17 00:00:00 2001 From: julient31 Date: Mon, 9 Jul 2018 18:07:10 -0600 Subject: [PATCH 251/675] Commit2 JT 070918 - modified the citeme reference (replaced by the JCP one) - same modification in doc and src/SPIN --- doc/src/fix_langevin_spin.txt | 4 ++-- doc/src/fix_nve_spin.txt | 2 +- doc/src/pair_spin_dmi.txt | 2 +- doc/src/pair_spin_exchange.txt | 2 +- doc/src/pair_spin_magelec.txt | 2 +- doc/src/pair_spin_neel.txt | 2 +- src/SPIN/atom_vec_spin.cpp | 6 +++--- src/SPIN/compute_spin.cpp | 6 +++--- src/SPIN/fix_langevin_spin.cpp | 6 +++--- src/SPIN/fix_nve_spin.cpp | 11 ++++++----- src/SPIN/fix_precession_spin.cpp | 6 +++--- src/SPIN/pair_spin.cpp | 6 +++--- src/SPIN/pair_spin_dmi.cpp | 6 +++--- src/SPIN/pair_spin_exchange.cpp | 6 +++--- src/SPIN/pair_spin_magelec.cpp | 12 ++++++------ src/SPIN/pair_spin_neel.cpp | 6 +++--- 16 files changed, 43 insertions(+), 42 deletions(-) diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt index 51f085ebdc..b089cd7f58 100644 --- a/doc/src/fix_langevin_spin.txt +++ b/doc/src/fix_langevin_spin.txt @@ -98,5 +98,5 @@ integration fix (e.g. {fix nve/spin}). [(Mayergoyz)] I.D. Mayergoyz, G. Bertotti, C. Serpico (2009). Elsevier (2009) :link(Tranchida2) -[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, +Journal of Computational Physics, (2018). diff --git a/doc/src/fix_nve_spin.txt b/doc/src/fix_nve_spin.txt index 6ccebcebf6..f4b38c270b 100644 --- a/doc/src/fix_nve_spin.txt +++ b/doc/src/fix_nve_spin.txt @@ -73,4 +73,4 @@ instead of "array" is also valid. :link(Tranchida1) [(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +Journal of Computational Physics, (2018). diff --git a/doc/src/pair_spin_dmi.txt b/doc/src/pair_spin_dmi.txt index 9fe53df18a..24877906f3 100644 --- a/doc/src/pair_spin_dmi.txt +++ b/doc/src/pair_spin_dmi.txt @@ -63,4 +63,4 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Tranchida5) [(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +Journal of Computational Physics, (2018). diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index 97b6d0b34f..ad3357cb5e 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -79,4 +79,4 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Tranchida3) [(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +Journal of Computational Physics, (2018). diff --git a/doc/src/pair_spin_magelec.txt b/doc/src/pair_spin_magelec.txt index 0185a5abb2..8ba24c46af 100644 --- a/doc/src/pair_spin_magelec.txt +++ b/doc/src/pair_spin_magelec.txt @@ -70,4 +70,4 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Tranchida4) [(Tranchida)] Tranchida, Plimpton, Thibaudeau, and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +Journal of Computational Physics, (2018). diff --git a/doc/src/pair_spin_neel.txt b/doc/src/pair_spin_neel.txt index f7c9608a93..8551f8d636 100644 --- a/doc/src/pair_spin_neel.txt +++ b/doc/src/pair_spin_neel.txt @@ -78,4 +78,4 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Tranchida6) [(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +Journal of Computational Physics, (2018). diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 4871fe0c40..51903e5480 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -18,9 +18,9 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 54818a9b70..1d87f4e722 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -16,9 +16,9 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 97b33197ce..402b934723 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -16,9 +16,9 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index d91636af58..353f2cbd83 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -16,9 +16,9 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include @@ -59,8 +59,9 @@ static const char cite_fix_nve_spin[] = "title={Massively parallel symplectic algorithm for coupled magnetic spin " "dynamics and molecular dynamics},\n" "author={Tranchida, J and Plimpton, SJ and Thibaudeau, P and Thompson, AP},\n" - "journal={arXiv preprint arXiv:1801.10233},\n" - "year={2018}\n" + "journal={Journal of Computational Physics},\n" + "year={2018},\n" + "publisher={Elsevier}\n" "}\n\n"; enum{NONE}; diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index eedf0becb7..447139e0ee 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -16,9 +16,9 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index acb7ffe548..d29f31b70a 100644 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -16,9 +16,9 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 07ae684939..0129dec005 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -16,9 +16,9 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 7b05d7337e..5aa5a267b9 100644 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -16,9 +16,9 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index e9e7c1fb3f..79cdc919e8 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -16,9 +16,9 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include @@ -436,9 +436,9 @@ void PairSpinMagelec::compute_magelec_mech(int i, int j, double fi[3], double sp meiy *= ME_mech[itype][jtype]; meiz *= ME_mech[itype][jtype]; - fi[0] = meiy*vz - meiz*vy; - fi[1] = meiz*vx - meix*vz; - fi[2] = meix*vy - meiy*vx; + fi[0] += meiy*vz - meiz*vy; + fi[1] += meiz*vx - meix*vz; + fi[2] += meix*vy - meiy*vx; } diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index d74db638bd..a8d9fe8ffa 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -16,9 +16,9 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include From 792b182cb041dce9c72a7c46ccb473c0c0165a72 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 10 Jul 2018 09:46:08 -0400 Subject: [PATCH 252/675] whitespace cleanup --- src/SPIN/atom_vec_spin.cpp | 6 +++--- src/SPIN/compute_spin.cpp | 4 ++-- src/SPIN/fix_langevin_spin.cpp | 4 ++-- src/SPIN/fix_nve_spin.cpp | 4 ++-- src/SPIN/fix_precession_spin.cpp | 4 ++-- src/SPIN/pair_spin.cpp | 4 ++-- src/SPIN/pair_spin_dmi.cpp | 4 ++-- src/SPIN/pair_spin_exchange.cpp | 4 ++-- src/SPIN/pair_spin_magelec.cpp | 4 ++-- src/SPIN/pair_spin_neel.cpp | 4 ++-- 10 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 51903e5480..276bc34e64 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -18,8 +18,8 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ @@ -54,7 +54,7 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) size_data_atom = 9; size_data_vel = 4; xcol_data = 4; - + atom->sp_flag = 1; } diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 1d87f4e722..b508d0624f 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -16,8 +16,8 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 402b934723..3650651457 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -16,8 +16,8 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 353f2cbd83..415c2352d4 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -16,8 +16,8 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index 447139e0ee..bcdd62413d 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -16,8 +16,8 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index d29f31b70a..b6cf07e60c 100644 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -16,8 +16,8 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 0129dec005..4ea6cfd0cc 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -16,8 +16,8 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 5aa5a267b9..cb2d7424cf 100644 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -16,8 +16,8 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index 79cdc919e8..77bf42159a 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -16,8 +16,8 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index a8d9fe8ffa..05999170eb 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -16,8 +16,8 @@ Aidan Thompson (SNL) Please cite the related publication: - Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). - Massively parallel symplectic algorithm for coupled magnetic spin dynamics + Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). + Massively parallel symplectic algorithm for coupled magnetic spin dynamics and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ From 1ed25d195be0d32caa75f99172dcda48afab95ed Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 10 Jul 2018 09:48:49 -0400 Subject: [PATCH 253/675] convert c-style includes for c-library calls to c++-style --- src/SPIN/atom_vec_spin.cpp | 6 +++--- src/SPIN/compute_spin.cpp | 2 +- src/SPIN/fix_langevin_spin.cpp | 6 +++--- src/SPIN/fix_nve_spin.cpp | 6 +++--- src/SPIN/fix_precession_spin.cpp | 8 ++++---- src/SPIN/pair_spin.cpp | 6 +++--- src/SPIN/pair_spin_dmi.cpp | 6 +++--- src/SPIN/pair_spin_exchange.cpp | 6 +++--- src/SPIN/pair_spin_magelec.cpp | 6 +++--- src/SPIN/pair_spin_neel.cpp | 6 +++--- 10 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 276bc34e64..8b47eff624 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -23,9 +23,9 @@ and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "atom_vec_spin.h" #include "comm.h" diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index b508d0624f..b67f62d53d 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -22,7 +22,7 @@ ------------------------------------------------------------------------- */ #include -#include +#include #include "atom.h" #include "compute_spin.h" #include "domain.h" diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 3650651457..cb34465482 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -22,9 +22,9 @@ ------------------------------------------------------------------------- */ #include -#include -#include -#include +#include +#include +#include #include "atom.h" #include "atom_vec_ellipsoid.h" diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index 415c2352d4..b75f03212a 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -21,9 +21,9 @@ and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "atom_vec.h" diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index bcdd62413d..b908478952 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -21,10 +21,10 @@ and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include -#include +#include +#include +#include +#include #include "atom.h" #include "domain.h" diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index b6cf07e60c..398206b26e 100644 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -21,9 +21,9 @@ and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "comm.h" diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 4ea6cfd0cc..b792969c5d 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -21,9 +21,9 @@ and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "comm.h" diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index cb2d7424cf..1b7b36b6db 100644 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -21,9 +21,9 @@ and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "comm.h" diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index 77bf42159a..315b691d17 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -21,9 +21,9 @@ and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "comm.h" diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 05999170eb..0daafad756 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -21,9 +21,9 @@ and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "comm.h" From 9a70f4a08c6befc96c13e8609ec64709ee700827 Mon Sep 17 00:00:00 2001 From: David Nicholson Date: Tue, 10 Jul 2018 17:10:01 -0400 Subject: [PATCH 254/675] modified UEF_utils to compute inverse change of basis --- src/USER-UEF/uef_utils.cpp | 63 +++++++++++++++++++++++++------------- src/USER-UEF/uef_utils.h | 26 +++++++++++----- 2 files changed, 61 insertions(+), 28 deletions(-) diff --git a/src/USER-UEF/uef_utils.cpp b/src/USER-UEF/uef_utils.cpp index a5498d605f..df418c755b 100644 --- a/src/USER-UEF/uef_utils.cpp +++ b/src/USER-UEF/uef_utils.cpp @@ -177,7 +177,9 @@ bool UEFBox::reduce() // further reduce the box using greedy reduction and check // if it changed from the last step using the change of basis // matrices r and r0 - greedy(l,r); + int ri[3][3]; + greedy(l,r,ri); + mul_m2(r,ri); rotation_matrix(rot,lrot, l); return !mat_same(r,r0); } @@ -195,7 +197,8 @@ void UEFBox::set_strain(const double ex, const double ey) l[k][1] = eps*l0[k][1]; l[k][2] = eps*l0[k][2]; } - greedy(l,r); + int ri[3][3]; + greedy(l,r,ri); rotation_matrix(rot,lrot, l); } @@ -245,28 +248,31 @@ void rotation_matrix(double q[3][3], double r[3][3], const double m[3][3]) //sort columns in order of increasing length -void col_sort(double b[3][3],int r[3][3]) +void col_sort(double b[3][3],int r[3][3],int ri[3][3]) { if (col_prod(b,0,0)>col_prod(b,1,1)) { col_swap(b,0,1); col_swap(r,0,1); + col_swap(ri,0,1); } if (col_prod(b,0,0)>col_prod(b,2,2)) { col_swap(b,0,2); col_swap(r,0,2); + col_swap(ri,0,2); } if (col_prod(b,1,1)>col_prod(b,2,2)) { col_swap(b,1,2); col_swap(r,1,2); + col_swap(ri,1,2); } } // 1-2 reduction (Graham-Schmidt) -void red12(double b[3][3],int r[3][3]) +void red12(double b[3][3],int r[3][3],int ri[3][3]) { int y = round(col_prod(b,0,1)/col_prod(b,0,0)); b[0][1] -= y*b[0][0]; @@ -276,16 +282,21 @@ void red12(double b[3][3],int r[3][3]) r[0][1] -= y*r[0][0]; r[1][1] -= y*r[1][0]; r[2][1] -= y*r[2][0]; + + ri[0][0] += y*ri[0][1]; + ri[1][0] += y*ri[1][1]; + ri[2][0] += y*ri[2][1]; if (col_prod(b,1,1) < col_prod(b,0,0)) { col_swap(b,0,1); col_swap(r,0,1); - red12(b,r); + col_swap(ri,0,1); + red12(b,r,ri); } } // The Semaev condition for a 3-reduced basis -void red3(double b[3][3], int r[3][3]) +void red3(double b[3][3], int r[3][3], int ri[3][3]) { double b11 = col_prod(b,0,0); double b22 = col_prod(b,1,1); @@ -326,41 +337,51 @@ void red3(double b[3][3], int r[3][3]) r[0][2] += x1*r[0][0] + x2*r[0][1]; r[1][2] += x1*r[1][0] + x2*r[1][1]; r[2][2] += x1*r[2][0] + x2*r[2][1]; - greedy_recurse(b,r); // note the recursion step is here + + ri[0][0] += -x1*ri[0][2]; + ri[1][0] += -x1*ri[1][2]; + ri[2][0] += -x1*ri[2][2]; + ri[0][1] += -x2*ri[0][2]; + ri[1][1] += -x2*ri[1][2]; + ri[2][1] += -x2*ri[2][2]; + greedy_recurse(b,r,ri); // note the recursion step is here } } // the meat of the greedy reduction algorithm -void greedy_recurse(double b[3][3], int r[3][3]) +void greedy_recurse(double b[3][3], int r[3][3], int ri[3][3]) { - col_sort(b,r); - red12(b,r); - red3(b,r); // recursive caller + col_sort(b,r,ri); + red12(b,r,ri); + red3(b,r,ri); // recursive caller } // set r (change of basis) to be identity then reduce basis and make it unique -void greedy(double b[3][3],int r[3][3]) +void greedy(double b[3][3],int r[3][3],int ri[3][3]) { r[0][1]=r[0][2]=r[1][0]=r[1][2]=r[2][0]=r[2][1]=0; r[0][0]=r[1][1]=r[2][2]=1; - greedy_recurse(b,r); - make_unique(b,r); + ri[0][1]=ri[0][2]=ri[1][0]=ri[1][2]=ri[2][0]=ri[2][1]=0; + ri[0][0]=ri[1][1]=ri[2][2]=1; + greedy_recurse(b,r,ri); + make_unique(b,r,ri); + transpose(ri); } // A reduced basis isn't unique. This procedure will make it // "more" unique. Degenerate cases are possible, but unlikely // with floating point math. -void make_unique(double b[3][3], int r[3][3]) +void make_unique(double b[3][3], int r[3][3], int ri[3][3]) { if (fabs(b[0][0]) < fabs(b[0][1])) - { col_swap(b,0,1); col_swap(r,0,1); } + { col_swap(b,0,1); col_swap(r,0,1); col_swap(ri,0,1); } if (fabs(b[0][0]) < fabs(b[0][2])) - { col_swap(b,0,2); col_swap(r,0,2); } + { col_swap(b,0,2); col_swap(r,0,2); col_swap(ri,0,2); } if (fabs(b[1][1]) < fabs(b[1][2])) - { col_swap(b,1,2); col_swap(r,1,2); } + { col_swap(b,1,2); col_swap(r,1,2); col_swap(ri,1,2); } - if (b[0][0] < 0){ neg_col(b,0); neg_col(r,0); } - if (b[1][1] < 0){ neg_col(b,1); neg_col(r,1); } - if (det(b) < 0){ neg_col(b,2); neg_col(r,2); } + if (b[0][0] < 0){ neg_col(b,0); neg_col(r,0); neg_col(ri,0); } + if (b[1][1] < 0){ neg_col(b,1); neg_col(r,1); neg_col(ri,1); } + if (det(b) < 0){ neg_col(b,2); neg_col(r,2); neg_col(ri,2); } } }} diff --git a/src/USER-UEF/uef_utils.h b/src/USER-UEF/uef_utils.h index a16f6fff1a..d5b0d6453b 100644 --- a/src/USER-UEF/uef_utils.h +++ b/src/USER-UEF/uef_utils.h @@ -30,7 +30,6 @@ class UEFBox private: double l0[3][3]; // initial basis double w1[3],w2[3], winv[3][3]; // omega1 and omega2 (spectra of automorphisms) - //double edot[3], delta[2]; double theta[2]; double l[3][3], rot[3][3], lrot[3][3]; int r[3][3],a1[3][3],a2[3][3],a1i[3][3],a2i[3][3]; @@ -38,12 +37,12 @@ class UEFBox // lattice reduction routines -void greedy(double[3][3],int[3][3]); -void col_sort(double[3][3],int[3][3]); -void red12(double[3][3],int[3][3]); -void greedy_recurse(double[3][3],int[3][3]); -void red3(double [3][3],int r[3][3]); -void make_unique(double[3][3],int[3][3]); +void greedy(double[3][3],int[3][3],int[3][3]); +void col_sort(double[3][3],int[3][3],int[3][3]); +void red12(double[3][3],int[3][3],int[3][3]); +void greedy_recurse(double[3][3],int[3][3],int[3][3]); +void red3(double [3][3],int r[3][3],int[3][3]); +void make_unique(double[3][3],int[3][3],int[3][3]); void rotation_matrix(double[3][3],double[3][3],const double [3][3]); // A few utility functions for 3x3 arrays @@ -100,6 +99,19 @@ bool mat_same(T x1[3][3], T x2[3][3]) return v; } +template +void transpose(T m[3][3]) +{ + T t[3][3]; + for (int k=0;k<3;k++) + for (int j=k+1;j<3;j++) + { + T x = m[k][j]; + m[k][j] = m[j][k]; + m[j][k] = x; + } +} + template void mul_m1(T m1[3][3], const T m2[3][3]) { From 5124c9e9937049b252167eb2d790f358c61d3934 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Tue, 10 Jul 2018 16:53:26 -0500 Subject: [PATCH 255/675] Fixed bugs in body rounded/polydedra for correct size_border --- src/BODY/body_rounded_polyhedron.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/BODY/body_rounded_polyhedron.cpp b/src/BODY/body_rounded_polyhedron.cpp index fb0be7c1be..6a9b97ae23 100644 --- a/src/BODY/body_rounded_polyhedron.cpp +++ b/src/BODY/body_rounded_polyhedron.cpp @@ -48,13 +48,13 @@ BodyRoundedPolyhedron::BodyRoundedPolyhedron(LAMMPS *lmp, int narg, char **arg) size_forward = 0; - // 1 integer for number of vertices, + // 3 integers: 1 for no. of vertices, 1 for no. of edges, 1 for no. of faces // 3*nmax doubles for vertex coordinates + 2*nmax doubles for edge ends + // (MAX_FACE_SIZE+1)*nmax for faces // 1 double for the enclosing radius // 1 double for the rounded radius - size_border = 1 + 3*nmax + 2*nmax + MAX_FACE_SIZE*nmax + 1 + 1; + size_border = 3 + 3*nmax + 2*nmax + MAX_FACE_SIZE*nmax + 1 + 1; // NOTE: need to set appropriate nnbin param for dcp @@ -159,7 +159,7 @@ int BodyRoundedPolyhedron::pack_border_body(AtomVecBody::Bonus *bonus, double *b buf[2] = nfac; int ndouble; if (nsub == 1 || nsub == 2) ndouble = 3*nsub+2+MAX_FACE_SIZE*nfac+1+1; - else ndouble = 3*nsub+2*nedges(bonus)+MAX_FACE_SIZE*nfac+1+1; + else ndouble = 3*nsub+2*ned+MAX_FACE_SIZE*nfac+1+1; memcpy(&buf[3],bonus->dvalue,ndouble*sizeof(double)); return 3+ndouble; } @@ -177,7 +177,7 @@ int BodyRoundedPolyhedron::unpack_border_body(AtomVecBody::Bonus *bonus, bonus->ivalue[2] = nfac; int ndouble; if (nsub == 1 || nsub == 2) ndouble = 3*nsub+2+MAX_FACE_SIZE*nfac+1+1; - else ndouble = 3*nsub+2*nedges(bonus)+MAX_FACE_SIZE*nfac+1+1; + else ndouble = 3*nsub+2*ned+MAX_FACE_SIZE*nfac+1+1; memcpy(bonus->dvalue,&buf[3],ndouble*sizeof(double)); return 3+ndouble; } From c3bf7d0971749c330e1f1cae2f53d57872199851 Mon Sep 17 00:00:00 2001 From: David Nicholson Date: Tue, 10 Jul 2018 19:02:31 -0400 Subject: [PATCH 256/675] added an interface for the inverse c.o.b. matrix to UEF_utils --- src/USER-UEF/uef_utils.cpp | 29 ++++++++++++++++++++++++----- src/USER-UEF/uef_utils.h | 17 +++++++++-------- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/src/USER-UEF/uef_utils.cpp b/src/USER-UEF/uef_utils.cpp index df418c755b..66164c2647 100644 --- a/src/USER-UEF/uef_utils.cpp +++ b/src/USER-UEF/uef_utils.cpp @@ -55,6 +55,7 @@ UEFBox::UEFBox() { l[k][j] = l0[k][j]; r[j][k]=(j==k); + ri[j][k]=(j==k); } // get the initial rotation and upper triangular matrix @@ -119,6 +120,14 @@ void UEFBox::get_rot(double x[3][3]) x[k][j]=rot[k][j]; } +// get inverse change of basis matrix +void UEFBox::get_inverse_cob(double x[3][3]) +{ + for (int k=0;k<3;k++) + for (int j=0;j<3;j++) + x[k][j]=ri[k][j]; +} + // diagonal, incompressible deformation void UEFBox::step_deform(const double ex, const double ey) { @@ -167,26 +176,37 @@ bool UEFBox::reduce() if (f2 < 0) for (int k=0;k<-f2;k++) mul_m2 (a2i,r0); // robust reduction to the box defined by Dobson + double lc[3][3]; for (int k=0;k<3;k++) { double eps = exp(theta[0]*w1[k]+theta[1]*w2[k]); l[k][0] = eps*l0[k][0]; l[k][1] = eps*l0[k][1]; l[k][2] = eps*l0[k][2]; + lc[k][0] = eps*l0[k][0]; + lc[k][1] = eps*l0[k][1]; + lc[k][2] = eps*l0[k][2]; } + // further reduce the box using greedy reduction and check // if it changed from the last step using the change of basis // matrices r and r0 - int ri[3][3]; + greedy(l,r,ri); - mul_m2(r,ri); + + // multiplying the inverse by the old change of basis matrix gives + // the inverse of the transformation itself (should be identity if + // no reduction takes place). This is used for image flags only. + + mul_m1(ri,r0); + rotation_matrix(rot,lrot, l); return !mat_same(r,r0); } void UEFBox::set_strain(const double ex, const double ey) { - theta[0] =winv[0][0]*ex + winv[0][1]*ey; - theta[1] =winv[1][0]*ex + winv[1][1]*ey; + theta[0] = winv[0][0]*ex + winv[0][1]*ey; + theta[1] = winv[1][0]*ex + winv[1][1]*ey; theta[0] -= round(theta[0]); theta[1] -= round(theta[1]); @@ -197,7 +217,6 @@ void UEFBox::set_strain(const double ex, const double ey) l[k][1] = eps*l0[k][1]; l[k][2] = eps*l0[k][2]; } - int ri[3][3]; greedy(l,r,ri); rotation_matrix(rot,lrot, l); } diff --git a/src/USER-UEF/uef_utils.h b/src/USER-UEF/uef_utils.h index d5b0d6453b..ccfa0f0181 100644 --- a/src/USER-UEF/uef_utils.h +++ b/src/USER-UEF/uef_utils.h @@ -27,12 +27,13 @@ class UEFBox bool reduce(); void get_box(double[3][3], double); void get_rot(double[3][3]); + void get_inverse_cob(double[3][3]); private: double l0[3][3]; // initial basis - double w1[3],w2[3], winv[3][3]; // omega1 and omega2 (spectra of automorphisms) + double w1[3],w2[3],winv[3][3];//omega1 and omega2 (spectra of automorphisms) double theta[2]; double l[3][3], rot[3][3], lrot[3][3]; - int r[3][3],a1[3][3],a2[3][3],a1i[3][3],a2i[3][3]; + int r[3][3],ri[3][3],a1[3][3],a2[3][3],a1i[3][3],a2i[3][3]; }; @@ -112,10 +113,10 @@ void transpose(T m[3][3]) } } -template -void mul_m1(T m1[3][3], const T m2[3][3]) +template +void mul_m1(T1 m1[3][3], const T2 m2[3][3]) { - T t[3][3]; + T1 t[3][3]; for (int k=0;k<3;k++) for (int j=0;j<3;j++) t[k][j]=m1[k][j]; @@ -125,10 +126,10 @@ void mul_m1(T m1[3][3], const T m2[3][3]) m1[k][j] = t[k][0]*m2[0][j] + t[k][1]*m2[1][j] + t[k][2]*m2[2][j]; } -template -void mul_m2(const T m1[3][3], T m2[3][3]) +template +void mul_m2(const T1 m1[3][3], T2 m2[3][3]) { - T t[3][3]; + T2 t[3][3]; for (int k=0;k<3;k++) for (int j=0;j<3;j++) t[k][j]=m2[k][j]; From eaf3d1ea9eaa755000d36bb192c36499dda6aa1b Mon Sep 17 00:00:00 2001 From: David Nicholson Date: Tue, 10 Jul 2018 19:38:18 -0400 Subject: [PATCH 257/675] added an image flag update a la domain->image_flip() to FixNHUef::pre_exchange() --- src/USER-UEF/fix_nh_uef.cpp | 20 ++++++++++++++++++-- src/USER-UEF/uef_utils.cpp | 2 +- src/USER-UEF/uef_utils.h | 2 +- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/USER-UEF/fix_nh_uef.cpp b/src/USER-UEF/fix_nh_uef.cpp index cd0b2ba268..bfa4549286 100644 --- a/src/USER-UEF/fix_nh_uef.cpp +++ b/src/USER-UEF/fix_nh_uef.cpp @@ -536,10 +536,26 @@ void FixNHUef::pre_exchange() rotate_x(rot); rotate_f(rot); - // put all atoms in the new box - double **x = atom->x; + // this is a generalization of what is done in domain->image_flip(...) + int ri[3][3]; + uefbox->get_inverse_cob(ri); imageint *image = atom->image; int nlocal = atom->nlocal; + for (int i=0; i> IMGBITS & IMGMASK) - IMGMAX; + iold[2] = (image[i] >> IMG2BITS) - IMGMAX; + inew[0] = ri[0][0]*iold[0] + ri[0][1]*iold[1] + ri[0][2]*iold[2]; + inew[1] = ri[1][0]*iold[0] + ri[1][1]*iold[1] + ri[1][2]*iold[2]; + inew[2] = ri[2][0]*iold[0] + ri[2][1]*iold[1] + ri[2][2]*iold[2]; + image[i] = ((imageint) (inew[0] + IMGMAX) & IMGMASK) | + (((imageint) (inew[1] + IMGMAX) & IMGMASK) << IMGBITS) | + (((imageint) (inew[2] + IMGMAX) & IMGMASK) << IMG2BITS); + } + + // put all atoms in the new box + double **x = atom->x; for (int i=0; iremap(x[i],image[i]); // move atoms to the right processors diff --git a/src/USER-UEF/uef_utils.cpp b/src/USER-UEF/uef_utils.cpp index 66164c2647..3210a675c6 100644 --- a/src/USER-UEF/uef_utils.cpp +++ b/src/USER-UEF/uef_utils.cpp @@ -121,7 +121,7 @@ void UEFBox::get_rot(double x[3][3]) } // get inverse change of basis matrix -void UEFBox::get_inverse_cob(double x[3][3]) +void UEFBox::get_inverse_cob(int x[3][3]) { for (int k=0;k<3;k++) for (int j=0;j<3;j++) diff --git a/src/USER-UEF/uef_utils.h b/src/USER-UEF/uef_utils.h index ccfa0f0181..314c7cf55f 100644 --- a/src/USER-UEF/uef_utils.h +++ b/src/USER-UEF/uef_utils.h @@ -27,7 +27,7 @@ class UEFBox bool reduce(); void get_box(double[3][3], double); void get_rot(double[3][3]); - void get_inverse_cob(double[3][3]); + void get_inverse_cob(int[3][3]); private: double l0[3][3]; // initial basis double w1[3],w2[3],winv[3][3];//omega1 and omega2 (spectra of automorphisms) From 930215a4b138d4da4a2e8812be772811cd66d132 Mon Sep 17 00:00:00 2001 From: David Nicholson Date: Tue, 10 Jul 2018 23:10:04 -0400 Subject: [PATCH 258/675] superfluous code removal and formatting changes --- src/USER-UEF/uef_utils.cpp | 189 +++++++++++++++++++++++-------------- src/USER-UEF/uef_utils.h | 9 +- 2 files changed, 120 insertions(+), 78 deletions(-) diff --git a/src/USER-UEF/uef_utils.cpp b/src/USER-UEF/uef_utils.cpp index 3210a675c6..a2e6cb291e 100644 --- a/src/USER-UEF/uef_utils.cpp +++ b/src/USER-UEF/uef_utils.cpp @@ -30,48 +30,54 @@ namespace LAMMPS_NS { UEFBox::UEFBox() { + // initial box (also an inverse eigenvector matrix of automorphisms) + double x = 0.327985277605681; double y = 0.591009048506103; double z = 0.736976229099578; l0[0][0]= z; l0[0][1]= y; l0[0][2]= x; l0[1][0]=-x; l0[1][1]= z; l0[1][2]=-y; l0[2][0]=-y; l0[2][1]= x; l0[2][2]= z; + // spectra of the two automorpisms (log of eigenvalues) + w1[0]=-1.177725211523360; w1[1]=-0.441448620566067; w1[2]= 1.619173832089425; w2[0]= w1[1]; w2[1]= w1[2]; w2[2]= w1[0]; + // initialize theta // strain = w1 * theta1 + w2 * theta2 + theta[0]=theta[1]=0; - //set up the initial box l and change of basis matrix r + for (int k=0;k<3;k++) - for (int j=0;j<3;j++) - { + for (int j=0;j<3;j++) { l[k][j] = l0[k][j]; r[j][k]=(j==k); ri[j][k]=(j==k); } // get the initial rotation and upper triangular matrix + rotation_matrix(rot, lrot ,l); // this is just a way to calculate the automorphisms // themselves, which play a minor role in the calculations // it's overkill, but only called once + double t1[3][3]; double t1i[3][3]; double t2[3][3]; double t2i[3][3]; double l0t[3][3]; for (int k=0; k<3; ++k) - for (int j=0; j<3; ++j) - { + for (int j=0; j<3; ++j) { t1[k][j] = exp(w1[k])*l0[k][j]; t1i[k][j] = exp(-w1[k])*l0[k][j]; t2[k][j] = exp(w2[k])*l0[k][j]; @@ -83,8 +89,7 @@ UEFBox::UEFBox() mul_m2(l0t,t2); mul_m2(l0t,t2i); for (int k=0; k<3; ++k) - for (int j=0; j<3; ++j) - { + for (int j=0; j<3; ++j) { a1[k][j] = round(t1[k][j]); a1i[k][j] = round(t1i[k][j]); a2[k][j] = round(t2[k][j]); @@ -93,6 +98,7 @@ UEFBox::UEFBox() // winv used to transform between // strain increments and theta increments + winv[0][0] = w2[1]; winv[0][1] = -w2[0]; winv[1][0] = -w1[1]; @@ -103,7 +109,9 @@ UEFBox::UEFBox() winv[k][j] /= d; } -// get volume-correct r basis in: basis*cbrt(vol) = q*r +/* ---------------------------------------------------------------------- + get volume-correct r basis in: basis*cbrt(vol) = q*r +------------------------------------------------------------------------- */ void UEFBox::get_box(double x[3][3], double v) { v = cbrtf(v); @@ -112,7 +120,9 @@ void UEFBox::get_box(double x[3][3], double v) x[k][j] = lrot[k][j]*v; } -// get rotation matrix q in: basis = q*r +/* ---------------------------------------------------------------------- + get rotation matrix q in: basis = q*r +------------------------------------------------------------------------- */ void UEFBox::get_rot(double x[3][3]) { for (int k=0;k<3;k++) @@ -120,7 +130,9 @@ void UEFBox::get_rot(double x[3][3]) x[k][j]=rot[k][j]; } -// get inverse change of basis matrix +/* ---------------------------------------------------------------------- + get inverse change of basis matrix +------------------------------------------------------------------------- */ void UEFBox::get_inverse_cob(int x[3][3]) { for (int k=0;k<3;k++) @@ -128,20 +140,22 @@ void UEFBox::get_inverse_cob(int x[3][3]) x[k][j]=ri[k][j]; } -// diagonal, incompressible deformation +/* ---------------------------------------------------------------------- + apply diagonal, incompressible deformation +------------------------------------------------------------------------- */ void UEFBox::step_deform(const double ex, const double ey) { // increment theta values used in the reduction + theta[0] +=winv[0][0]*ex + winv[0][1]*ey; theta[1] +=winv[1][0]*ex + winv[1][1]*ey; - // deformation of the box. reduce() needs to - // be called regularly or calculation will become - // unstable + // deformation of the box. reduce() needs to be called regularly or + // calculation will become unstable + double eps[3]; eps[0]=ex; eps[1] = ey; eps[2] = -ex-ey; - for (int k=0;k<3;k++) - { + for (int k=0;k<3;k++) { eps[k] = exp(eps[k]); l[k][0] = eps[k]*l[k][0]; l[k][1] = eps[k]*l[k][1]; @@ -149,43 +163,43 @@ void UEFBox::step_deform(const double ex, const double ey) } rotation_matrix(rot,lrot, l); } -// reuduce the current basis + +/* ---------------------------------------------------------------------- + reduce the current basis +------------------------------------------------------------------------- */ bool UEFBox::reduce() { - // determine how many times to apply the automorphisms - // and find new theta values + // determine how many times to apply the automorphisms and find new theta + // values + int f1 = round(theta[0]); int f2 = round(theta[1]); theta[0] -= f1; theta[1] -= f2; - // store old change or basis matrix to determine if it - // changes + // store old change or basis matrix to determine if it changes + int r0[3][3]; for (int k=0;k<3;k++) for (int j=0;j<3;j++) r0[k][j]=r[k][j]; - // this modifies the old change basis matrix to - // handle the case where the automorphism transforms - // the box but the reduced basis doesn't change + // this modifies the old change basis matrix to handle the case where the + // automorphism transforms the box but the reduced basis doesn't change // (r0 should still equal r at the end) + if (f1 > 0) for (int k=0;k 0) for (int k=0;k (-q)*m = (-r) will hold row-wise + if (r[0][0] < 0){ neg_row(q,0); neg_row(r,0); } if (r[1][1] < 0){ neg_row(q,1); neg_row(r,1); } if (r[2][2] < 0){ neg_row(q,2); neg_row(r,2); } } - - -//sort columns in order of increasing length +/* ---------------------------------------------------------------------- + sort columns of b in order of increasing length + mimic column operations on ri and r +------------------------------------------------------------------------- */ void col_sort(double b[3][3],int r[3][3],int ri[3][3]) { - if (col_prod(b,0,0)>col_prod(b,1,1)) - { + if (col_prod(b,0,0)>col_prod(b,1,1)) { col_swap(b,0,1); col_swap(r,0,1); col_swap(ri,0,1); } - if (col_prod(b,0,0)>col_prod(b,2,2)) - { + if (col_prod(b,0,0)>col_prod(b,2,2)) { col_swap(b,0,2); col_swap(r,0,2); col_swap(ri,0,2); } - if (col_prod(b,1,1)>col_prod(b,2,2)) - { + if (col_prod(b,1,1)>col_prod(b,2,2)) { col_swap(b,1,2); col_swap(r,1,2); col_swap(ri,1,2); } } - -// 1-2 reduction (Graham-Schmidt) +/* ---------------------------------------------------------------------- + 1-2 reduction (Graham-Schmidt) +------------------------------------------------------------------------- */ void red12(double b[3][3],int r[3][3],int ri[3][3]) { int y = round(col_prod(b,0,1)/col_prod(b,0,0)); @@ -305,8 +322,8 @@ void red12(double b[3][3],int r[3][3],int ri[3][3]) ri[0][0] += y*ri[0][1]; ri[1][0] += y*ri[1][1]; ri[2][0] += y*ri[2][1]; - if (col_prod(b,1,1) < col_prod(b,0,0)) - { + + if (col_prod(b,1,1) < col_prod(b,0,0)) { col_swap(b,0,1); col_swap(r,0,1); col_swap(ri,0,1); @@ -314,7 +331,9 @@ void red12(double b[3][3],int r[3][3],int ri[3][3]) } } -// The Semaev condition for a 3-reduced basis +/* ---------------------------------------------------------------------- + Apply the Semaev condition for a 3-reduced basis +------------------------------------------------------------------------- */ void red3(double b[3][3], int r[3][3], int ri[3][3]) { double b11 = col_prod(b,0,0); @@ -334,29 +353,25 @@ void red3(double b[3][3], int r[3][3], int ri[3][3]) x1v[0] = floor(y1); x1v[1] = x1v[0]+1; x2v[0] = floor(y2); x2v[1] = x2v[0]+1; for (int k=0;k<2;k++) - for (int j=0;j<2;j++) - { + for (int j=0;j<2;j++) { double a[3]; a[0] = b[0][2] + x1v[k]*b[0][0] + x2v[j]*b[0][1]; a[1] = b[1][2] + x1v[k]*b[1][0] + x2v[j]*b[1][1]; a[2] = b[2][2] + x1v[k]*b[2][0] + x2v[j]*b[2][1]; double val=a[0]*a[0]+a[1]*a[1]+a[2]*a[2]; - if (val T col_prod(T x[3][3], int c1, int c2) { @@ -56,8 +57,7 @@ T col_prod(T x[3][3], int c1, int c2) template void col_swap(T x[3][3], int c1, int c2) { - for (int k=0;k<3;k++) - { + for (int k=0;k<3;k++) { T t = x[k][c2]; x[k][c2]=x[k][c1]; x[k][c1]=t; @@ -105,8 +105,7 @@ void transpose(T m[3][3]) { T t[3][3]; for (int k=0;k<3;k++) - for (int j=k+1;j<3;j++) - { + for (int j=k+1;j<3;j++) { T x = m[k][j]; m[k][j] = m[j][k]; m[j][k] = x; From c3a32dde123042fb5bf21ec96a5c1635e0f23661 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Wed, 11 Jul 2018 00:21:49 -0500 Subject: [PATCH 259/675] Updated doc/body.txt for body rounded/polygon and rounded/polyhedron --- doc/src/body.txt | 77 +++++++++++++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 31 deletions(-) diff --git a/doc/src/body.txt b/doc/src/body.txt index c272f48ad1..0e64e6ad5b 100644 --- a/doc/src/body.txt +++ b/doc/src/body.txt @@ -36,7 +36,7 @@ thus how they can be used to compute pairwise body/body or bond/non-body (point particle) interactions. More details of each style are described below. -More styles ma be added in the future. See "Section +More styles may be added in the future. See "Section 10.12"_Section_modify.html#mod_12 for details on how to add a new body style to the code. @@ -182,7 +182,7 @@ The {rounded/polygon} body style represents body particles as a 2d polygon with a variable number of N vertices. This style can only be used for 2d models; see the "boundary"_boundary.html command. -NOTE: include a diagram of a a rounded polygon body particle +NOTE: include a diagram of a rounded polygon body particle Special cases for N = 1 (spheres) and N = 2 (rods) are also included. One use of this body style is for 2d discrete element models, as @@ -219,12 +219,11 @@ list 6 moments of inertia followed by the coordinates of the N vertices (x1 to zN) as 3N values (with z = 0.0 for each), followed by 2N vertex indices corresponding to the end points of the N edges, followed by a single diameter value = the rounded diameter of the -circle that surrounds each vertex. These floating-point values can be +circle that surrounds each vertex. The diameter value can be different +for each body particle. These floating-point values can be listed on as many lines as you wish; see the "read_data"_read_data.html command for more details. -NOTE: can the diameter value be different for each body particle? - The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the values consistent with the current orientation of the rigid body around its center of mass. The values are with respect to the @@ -236,9 +235,9 @@ position of the particle is specified by the x,y,z values in the {Atoms} section of the data file. For example, the following information would specify a square particle -whose edge length is sqrt(2): - -NOTE: oriented how? +whose edge length is sqrt(2) and rounded diameter is 1.0 in length unit +and initial orientation is determined from the 6 moments of inertia +(ixx iyy izz ixy ixz iyz): 3 1 27 4 @@ -268,13 +267,13 @@ polyhedron with a variable number of N vertices, E edges and F faces. This style can only be used for 3d models; see the "boundary"_boundary.html command. -NOTE: include a diagram of a a rounded polyhedron body particle +NOTE: include a diagram of a rounded polyhedron body particle + +NOTE: 2d objects can also be specified as a special case, e.g. +for a triangle, N = 3, E = 3 and F = 1. Special cases for N = 1 (spheres) and N = 2 (rods) are also valid. -NOTE: can 2d objects also be specified as a special case, e.g. a -triangle? - This body style is for 3d discrete element models, as described in "Wang"_#Wang. @@ -316,8 +315,9 @@ edges (E) and number of faces (F). The floating point line(s) list 6 moments of inertia followed by the coordinates of the N vertices (x1 to zN) as 3N values, followed by 2N vertex indices corresponding to the end points of the E edges, then 4*F vertex indices defining F -faces. The last value is the radius value = the rounded diameter of -the sphere that surrounds each vertex. These floating-point values +faces. The last value is the diameter value = the rounded diameter of +the sphere that surrounds each vertex. The diameter value can be different +for each body particle. These floating-point values can be listed on as many lines as you wish; see the "read_data"_read_data.html command for more details. Because the maxmimum vertices per face is hard-coded to be 4 @@ -325,10 +325,9 @@ maxmimum vertices per face is hard-coded to be 4 split into triangles or quadrilaterals. For triangular faces, the last vertex index should be set to -1. -NOTE: is there some right-hand rule for the ordering of the 4 vertices -within each face? - -NOTE: can the diameter value be different for each body particle? +The ordering of the 4 vertices within a face should follow +the right-hand rule so that the normal vector of the face points +outwards from the center of mass. The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the values consistent with the current orientation of the rigid body @@ -341,24 +340,40 @@ position of the particle is specified by the x,y,z values in the {Atoms} section of the data file. For example, the following information would specify a cubic particle -whose edge length is 1.0: +whose edge length is 2.0 and rounded diameter is 0.5 in length unit +and initial orientation is determined from the 6 moments of inertia +(ixx iyy izz ixy ixz iyz): -NOTE: oriented how? - -NOTE: fill in these values correctly - -3 1 27 -4 -1 1 4 0 0 0 --0.7071 -0.7071 0 --0.7071 0.7071 0 -0.7071 0.7071 0 -0.7071 -0.7071 0 +1 3 79 +8 12 6 +0.667 0.667 0.667 0 0 0 +1 1 1 +1 -1 1 +-1 -1 1 +-1 1 1 +1 1 -1 +1 -1 -1 +-1 -1 -1 +-1 1 -1 0 1 1 2 2 3 3 0 -1.0 :pre +4 5 +5 6 +6 7 +7 4 +0 4 +1 5 +2 6 +3 7 +0 1 2 3 +4 5 6 7 +0 1 5 4 +1 2 6 5 +2 3 7 6 +3 0 4 7 +0.5 :pre :line From 1f1447c3ac3f919d6c4c34d03e2a0df99b39fdad Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 11 Jul 2018 07:22:47 -0400 Subject: [PATCH 260/675] need to update exclusions with the new atom IDs in case of molecular systems --- src/reset_ids.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/reset_ids.cpp b/src/reset_ids.cpp index 8a33cd535b..fd898bd3ab 100644 --- a/src/reset_ids.cpp +++ b/src/reset_ids.cpp @@ -16,6 +16,7 @@ #include "atom_vec.h" #include "domain.h" #include "comm.h" +#include "special.h" #include "memory.h" #include "error.h" @@ -44,7 +45,7 @@ void ResetIDs::command(int narg, char **arg) } // create an atom map if one doesn't exist already - + int mapflag = 0; if (atom->map_style == 0) { mapflag = 1; @@ -93,7 +94,7 @@ void ResetIDs::command(int narg, char **arg) // forward_comm_array acquires new IDs for ghost atoms double **newIDs; - memory->create(newIDs,nall,1,"reset_ids:newIDs"); + memory->create(newIDs,nall,1,"reset_ids:newIDs"); for (int i = 0; i < nlocal; i++) { newIDs[i][0] = tag[i]; @@ -105,7 +106,7 @@ void ResetIDs::command(int narg, char **arg) // loop over bonds, angles, etc and reset IDs in stored topology arrays // only necessary for molecular = 1, not molecular = 2 // badcount = atom IDs that could not be found - + int badcount = 0; if (atom->molecular == 1) { @@ -232,8 +233,15 @@ void ResetIDs::command(int narg, char **arg) atom->map_init(); atom->map_set(); + // need to update exclusions with new atom IDs + + if (atom->molecular == 1) { + Special special(lmp); + special.build(); + } + // delete temporary atom map - + if (mapflag) { atom->map_delete(); atom->map_style = 0; From acdc240cdd3e056c3d105b27582387351bc76aca Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 11 Jul 2018 08:42:28 -0600 Subject: [PATCH 261/675] better rRESPA doc page, also a new Makefile.theta --- doc/src/run_style.txt | 61 ++++++++++---- src/MAKE/MACHINES/Makefile.theta | 133 +++++++++++++++++++++++++++++++ 2 files changed, 178 insertions(+), 16 deletions(-) create mode 100644 src/MAKE/MACHINES/Makefile.theta diff --git a/doc/src/run_style.txt b/doc/src/run_style.txt index ba836a07dd..3240344a45 100644 --- a/doc/src/run_style.txt +++ b/doc/src/run_style.txt @@ -138,13 +138,19 @@ iterations of level 1 for a single iteration of level 2, N2 is the iterations of level 2 per iteration of level 3, etc. N-1 looping parameters must be specified. -The "timestep"_timestep.html command sets the timestep for the -outermost rRESPA level. Thus if the example command above for a -4-level rRESPA had an outer timestep of 4.0 fmsec, the inner timestep -would be 8x smaller or 0.5 fmsec. All other LAMMPS commands that -specify number of timesteps (e.g. "neigh_modify"_neigh_modify.html -parameters, "dump"_dump.html every N timesteps, etc) refer to the -outermost timesteps. +Thus with a 4-level respa setting of "2 2 2" for the 3 loop factors, +you could choose to have bond interactions computed 8x per large +timestep, angle interactions computed 4x, pair interactions computed +2x, and long-range interactions once per large timestep. + +The "timestep"_timestep.html command sets the large timestep for the +outermost rRESPA level. Thus if the 3 loop factors are "2 2 2" for +4-level rRESPA, and the outer timestep is set to 4.0 fmsec, then the +inner timestep would be 8x smaller or 0.5 fmsec. All other LAMMPS +commands that specify number of timesteps (e.g. "thermo"_thermo.html +for thermo output every N steps, "neigh_modify +delay/every"_neigh_modify.html parameters, "dump"_dump.html every N +steps, etc) refer to the outermost timesteps. The rRESPA keywords enable you to specify at what level of the hierarchy various forces will be computed. If not specified, the @@ -238,12 +244,24 @@ roughly a 1.5 fold speedup over the {verlet} style with SHAKE and a For non-biomolecular simulations, the {respa} style can be advantageous if there is a clear separation of time scales - fast and -slow modes in the simulation. Even a LJ system can benefit from -rRESPA if the interactions are divided by the inner, middle and outer -keywords. A 2-fold or more speedup can be obtained while maintaining -good energy conservation. In real units, for a pure LJ fluid at -liquid density, with a sigma of 3.0 angstroms, and epsilon of 0.1 -Kcal/mol, the following settings seem to work well: +slow modes in the simulation. For example, a system of slowly-moving +charged polymer chains could be setup as follows: + +timestep 4.0 +run_style respa 2 8 :pre + +This is two-level rRESPA with an 8x difference between the short and +long timesteps. The bonds, angles, dihedrals will be computed every +0.5 fs (assuming real units), while the pair and kspace interactions +will be computed once every 4 fs. These are the default settings for +each kind of interaction, so no additional keywords are necessary. + +Even a LJ system can benefit from rRESPA if the interactions are +divided by the inner, middle and outer keywords. A 2-fold or more +speedup can be obtained while maintaining good energy conservation. +In real units, for a pure LJ fluid at liquid density, with a sigma of +3.0 angstroms, and epsilon of 0.1 Kcal/mol, the following settings +seem to work well: timestep 36.0 run_style respa 3 3 4 inner 1 3.0 4.0 middle 2 6.0 7.0 outer 3 :pre @@ -271,9 +289,9 @@ more instructions on how to use the accelerated styles effectively. [Restrictions:] The {verlet/split} style can only be used if LAMMPS was built with the -REPLICA package. Correspondingly the {respa/omp} style is available only -if the USER-OMP package was included. See the "Making LAMMPS"_Section_start.html#start_3 -section for more info on packages. +REPLICA package. Correspondingly the {respa/omp} style is available +only if the USER-OMP package was included. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info on packages. Whenever using rRESPA, the user should experiment with trade-offs in speed and accuracy for their system, and verify that they are @@ -287,6 +305,17 @@ conserving energy to adequate precision. run_style verlet :pre +For run_style respa, the default assignment of interactions +to rRESPA levels is as follows: + +bond forces = level 1 (innermost loop) +angle forces = same level as bond forces +dihedral forces = same level as angle forces +improper forces = same level as dihedral forces +pair forces = leven N (outermost level) +kspace forces = same level as pair forces +inner, middle, outer forces = no default :ul + :line :link(Tuckerman3) diff --git a/src/MAKE/MACHINES/Makefile.theta b/src/MAKE/MACHINES/Makefile.theta new file mode 100644 index 0000000000..cad5a03b42 --- /dev/null +++ b/src/MAKE/MACHINES/Makefile.theta @@ -0,0 +1,133 @@ +# knl = Flags for Knights Landing Xeon Phi Processor,Intel Compiler/MPI,MKL FFT +# module load perftools-base perftools +# make theta -j 8 +# pat_build -g mpi -u ./lmp_theta + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = CC -mkl +#OPTFLAGS = -O0 +OPTFLAGS = -xMIC-AVX512 -O3 -fp-model fast=2 -no-prec-div -qoverride-limits +CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -qno-offload \ + -fno-alias -ansi-alias -restrict $(OPTFLAGS) +#CCFLAGS += -DLMP_INTEL_NO_TBB +#CCFLAGS += -DLAMMPS_BIGBIG +#CCFLAGS += -D_USE_PAPI +#CCFLAGS += -D_USE_CRAYPAT_API +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = $(CC) +LINKFLAGS = -g -qopenmp $(OPTFLAGS) +LINKFLAGS += -dynamic +LIB = +#LIB += -L${TBBROOT}/lib/intel64/gcc4.7 -ltbbmalloc +LIB += -ltbbmalloc +#LIB += /soft/debuggers/forge-7.0-2017-02-16/lib/64/libdmallocthcxx.a -zmuldefs +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP #-DLAMMPS_JPEG + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_MKL -DFFT_SINGLE +FFT_PATH = +FFT_LIB = -L$(MKLROOT)/lib/intel64/ -Wl,--start-group -lmkl_intel_ilp64 \ + -lmkl_intel_thread -lmkl_core -Wl,--end-group + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +depend : fastdep.exe $(SRC) + @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 + +fastdep.exe: ../DEPEND/fastdep.c + icc -O -o $@ $< + +sinclude .depend From 5d133214258d317ec80b8599eb24e007823732bf Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 11 Jul 2018 12:15:50 -0600 Subject: [PATCH 262/675] Standardize suffix paragraph in fix_enforce2d.txt --- doc/src/fix_enforce2d.txt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/doc/src/fix_enforce2d.txt b/doc/src/fix_enforce2d.txt index 01840254b6..4bbf41d25d 100644 --- a/doc/src/fix_enforce2d.txt +++ b/doc/src/fix_enforce2d.txt @@ -28,12 +28,13 @@ not move from their initial z coordinate. :line -Styles with a suffix are functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, -depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed in "Section 5"_Section_accelerate.html +of the manual. The accelerated styles take the same arguments and +should produce the same results, except for round-off and precision +issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if From 71f699123374944f5620b2fb2b1b18104e7b7346 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 11 Jul 2018 12:39:04 -0600 Subject: [PATCH 263/675] Small tweaks to fix_enforce2d_kokkos --- src/KOKKOS/fix_enforce2d_kokkos.cpp | 14 +++++++------- src/KOKKOS/fix_enforce2d_kokkos.h | 15 ++------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/KOKKOS/fix_enforce2d_kokkos.cpp b/src/KOKKOS/fix_enforce2d_kokkos.cpp index 33aa39e2f6..26075b269c 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.cpp +++ b/src/KOKKOS/fix_enforce2d_kokkos.cpp @@ -34,7 +34,7 @@ FixEnforce2DKokkos::FixEnforce2DKokkos(LAMMPS *lmp, int narg, char * execution_space = ExecutionSpaceFromDevice::space; datamask_read = V_MASK | F_MASK | OMEGA_MASK | MASK_MASK - | TORQUE_MASK | ANGMOM_MASK; // | */ // MASK_MASK; + | TORQUE_MASK | ANGMOM_MASK; datamask_modify = V_MASK | F_MASK | OMEGA_MASK | TORQUE_MASK | ANGMOM_MASK; @@ -52,7 +52,6 @@ template void FixEnforce2DKokkos::post_force(int vflag) { atomKK->sync(execution_space,datamask_read); - atomKK->modified(execution_space,datamask_modify); v = atomKK->k_v.view(); f = atomKK->k_f.view(); @@ -120,16 +119,18 @@ void FixEnforce2DKokkos::post_force(int vflag) break; } default: - error->all(FLERR, "flag_mask outside of what it should be"); + error->all(FLERR, "Flag in fix_enforce2d_kokkos outside of what it should be"); } copymode = 0; - // Probably sync here again? - atomKK->sync(execution_space,datamask_read); atomKK->modified(execution_space,datamask_modify); - for (int m = 0; m < nfixlist; m++) + for (int m = 0; m < nfixlist; m++) { + atomKK->sync(flist[m]->execution_space,flist[m]->datamask_read); flist[m]->enforce2d(); + atomKK->modified(flist[m]->execution_space,flist[m]->datamask_modify); + } + } @@ -138,7 +139,6 @@ template void FixEnforce2DKokkos::post_force_item( int i ) const { if (mask[i] & groupbit){ - // x(i,2) = 0; // Enforce2d does not set x[2] to zero either... :/ v(i,2) = 0.0; f(i,2) = 0.0; diff --git a/src/KOKKOS/fix_enforce2d_kokkos.h b/src/KOKKOS/fix_enforce2d_kokkos.h index 1ed3cf3ef8..520a58de04 100644 --- a/src/KOKKOS/fix_enforce2d_kokkos.h +++ b/src/KOKKOS/fix_enforce2d_kokkos.h @@ -32,7 +32,6 @@ class FixEnforce2DKokkos : public FixEnforce2D { public: FixEnforce2DKokkos(class LAMMPS *, int, char **); // ~FixEnforce2DKokkos() {} - // void init(); void setup(int); void post_force(int); @@ -78,18 +77,8 @@ struct FixEnforce2DKokkosPostForceFunctor { /* ERROR/WARNING messages: -E: Illegal ... command +E: Flag in fix_enforce2d_kokkos outside of what it should be -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: Cannot use fix enforce2d with 3d simulation - -Self-explanatory. - -E: Fix enforce2d must be defined after fix %s - -UNDOCUMENTED +LAMMPS developer-only error. */ From aa705f6122cf08da89538aaa81aae0d7f691f178 Mon Sep 17 00:00:00 2001 From: Marshall McDonnell Date: Wed, 11 Jul 2018 15:59:48 -0400 Subject: [PATCH 264/675] Added tail correction to fix gcmc --- src/MC/fix_gcmc.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/MC/fix_gcmc.cpp b/src/MC/fix_gcmc.cpp index 6221e6d52c..b40ce6a1b3 100644 --- a/src/MC/fix_gcmc.cpp +++ b/src/MC/fix_gcmc.cpp @@ -1589,6 +1589,7 @@ void FixGCMC::attempt_atomic_deletion_full() } } if (force->kspace) force->kspace->qsum_qsq(); + if (force->pair->tail_flag) force->pair->reinit(); double energy_after = energy_full(); if (random_equal->uniform() < @@ -1607,6 +1608,7 @@ void FixGCMC::attempt_atomic_deletion_full() if (q_flag) atom->q[i] = q_tmp; } if (force->kspace) force->kspace->qsum_qsq(); + if (force->pair->tail_flag) force->pair->reinit(); energy_stored = energy_before; } update_gas_atoms_list(); @@ -1700,6 +1702,7 @@ void FixGCMC::attempt_atomic_insertion_full() comm->borders(); if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); if (force->kspace) force->kspace->qsum_qsq(); + if (force->pair->tail_flag) force->pair->reinit(); double energy_after = energy_full(); if (energy_after < MAXENERGYTEST && @@ -1712,6 +1715,7 @@ void FixGCMC::attempt_atomic_insertion_full() atom->natoms--; if (proc_flag) atom->nlocal--; if (force->kspace) force->kspace->qsum_qsq(); + if (force->pair->tail_flag) force->pair->reinit(); energy_stored = energy_before; } update_gas_atoms_list(); @@ -1949,6 +1953,7 @@ void FixGCMC::attempt_molecule_deletion_full() } } if (force->kspace) force->kspace->qsum_qsq(); + if (force->pair->tail_flag) force->pair->reinit(); double energy_after = energy_full(); // energy_before corrected by energy_intra @@ -1981,6 +1986,7 @@ void FixGCMC::attempt_molecule_deletion_full() } } if (force->kspace) force->kspace->qsum_qsq(); + if (force->pair->tail_flag) force->pair->reinit(); } update_gas_atoms_list(); delete[] tmpmask; @@ -2151,6 +2157,7 @@ void FixGCMC::attempt_molecule_insertion_full() comm->borders(); if (triclinic) domain->lamda2x(atom->nlocal+atom->nghost); if (force->kspace) force->kspace->qsum_qsq(); + if (force->pair->tail_flag) force->pair->reinit(); double energy_after = energy_full(); // energy_after corrected by energy_intra @@ -2181,6 +2188,7 @@ void FixGCMC::attempt_molecule_insertion_full() } else i++; } if (force->kspace) force->kspace->qsum_qsq(); + if (force->pair->tail_flag) force->pair->reinit(); } update_gas_atoms_list(); } From 88d3233b66e68f54ac91cf4e3b3d4905d84d55e8 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Wed, 11 Jul 2018 14:02:30 -0600 Subject: [PATCH 265/675] replaced printf with fprintf as requested --- src/USER-SCAFACOS/fix_scafacos.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/USER-SCAFACOS/fix_scafacos.cpp b/src/USER-SCAFACOS/fix_scafacos.cpp index 6b89348a16..9446e3b60c 100644 --- a/src/USER-SCAFACOS/fix_scafacos.cpp +++ b/src/USER-SCAFACOS/fix_scafacos.cpp @@ -439,7 +439,7 @@ bool FixScafacos::check_result(FCSResult result, int comm_rank) { if (result) { - printf("ScaFaCoS Error: Caught error on task %d.\n", comm_rank); + fprintf(stdout,"ScaFaCoS Error: Caught error on task %d.\n", comm_rank); std::string err_msg; std::stringstream ss; @@ -447,7 +447,7 @@ bool FixScafacos::check_result(FCSResult result, int comm_rank) << fcs_result_get_message(result) << "\n"; err_msg = ss.str(); - error -> all(FLERR, err_msg.c_str()); + error -> one(FLERR, err_msg.c_str()); fcs_result_destroy(result); } return true; From 8cca44ae4541568df4a3dda4da902eabcb4a6138 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Wed, 11 Jul 2018 14:02:51 -0600 Subject: [PATCH 266/675] removed wrong error messages --- src/USER-SCAFACOS/fix_scafacos.h | 50 -------------------------------- 1 file changed, 50 deletions(-) diff --git a/src/USER-SCAFACOS/fix_scafacos.h b/src/USER-SCAFACOS/fix_scafacos.h index ffd4a94d32..c48f4d8388 100644 --- a/src/USER-SCAFACOS/fix_scafacos.h +++ b/src/USER-SCAFACOS/fix_scafacos.h @@ -111,54 +111,4 @@ class FixScafacos : public Fix { /* ERROR/WARNING messages: -E: Must use units metal with fix latte command - -UNDOCUMENTED - -E: Fix latte currently runs only in serial - -UNDOCUMENTED - -E: LAMMPS is linked against incompatible LATTE library - -UNDOCUMENTED - -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: Fix latte does not yet support a LAMMPS calculation of a Coulomb potential - -UNDOCUMENTED - -E: Could not find fix latte compute ID - -UNDOCUMENTED - -E: Fix latte compute ID does not compute pe/atom - -UNDOCUMENTED - -E: Fix latte requires 3d problem - -UNDOCUMENTED - -E: Fix latte cannot compute Coulomb potential - -UNDOCUMENTED - -E: Fix latte requires 3d simulation - -UNDOCUMENTED - -W: Fix latte should come after all other integration fixes - -UNDOCUMENTED - -E: Internal LATTE problem - -UNDOCUMENTED - */ From b31f0245d0abeea2cc851a07bf11e280abe65730 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 11 Jul 2018 15:55:16 -0600 Subject: [PATCH 267/675] 2 small bug fixes to load balancing --- doc/src/run_style.txt | 16 +++++++++++----- src/balance.cpp | 6 +++++- src/fix_balance.cpp | 13 ++++++++++--- src/fix_store.cpp | 2 -- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/doc/src/run_style.txt b/doc/src/run_style.txt index 3240344a45..7717ede86f 100644 --- a/doc/src/run_style.txt +++ b/doc/src/run_style.txt @@ -173,11 +173,17 @@ have their force go ramped to 0.0 so the overlap with the next regime compute forces for all pairs from 5.0 outward, with those from 5.0 to 6.0 having their value ramped in an inverse manner. -Only some pair potentials support the use of the {inner} and {middle} -and {outer} keywords. If not, only the {pair} keyword can be used -with that pair style, meaning all pairwise forces are computed at the -same rRESPA level. See the doc pages for individual pair styles for -details.i +Note that you can use {inner} and {outer} without using {middle} to +split the pairwise computations into two portions instead of three. +Unless you are using a very long pairwise cutoff, a 2-way split is +often faster than a 3-way split, since it avoids too much duplicate +computation of pairwise interactions near the intermediate cutoffs. + +Also note that only a few pair potentials support the use of the +{inner} and {middle} and {outer} keywords. If not, only the {pair} +keyword can be used with that pair style, meaning all pairwise forces +are computed at the same rRESPA level. See the doc pages for +individual pair styles for details. Another option for using pair potentials with rRESPA is with the {hybrid} keyword, which requires the use of the "pair_style hybrid or diff --git a/src/balance.cpp b/src/balance.cpp index 86deb55b47..7dd13e8766 100644 --- a/src/balance.cpp +++ b/src/balance.cpp @@ -350,13 +350,13 @@ void Balance::command(int narg, char **arg) domain->set_local_box(); // move particles to new processors via irregular() + // set disable = 0, so weights migrate with atoms for imbfinal calculation if (domain->triclinic) domain->x2lamda(atom->nlocal); Irregular *irregular = new Irregular(lmp); if (wtflag) fixstore->disable = 0; if (style == BISECTION) irregular->migrate_atoms(1,1,rcb->sendproc); else irregular->migrate_atoms(1); - if (wtflag) fixstore->disable = 1; delete irregular; if (domain->triclinic) domain->lamda2x(atom->nlocal); @@ -377,9 +377,11 @@ void Balance::command(int narg, char **arg) } // imbfinal = final imbalance + // set disable = 1, so weights no longer migrate with atoms double maxfinal; double imbfinal = imbalance_factor(maxfinal); + if (wtflag) fixstore->disable = 1; // stats output @@ -540,6 +542,8 @@ void Balance::weight_storage(char *prefix) fixstore = (FixStore *) modify->fix[modify->nfix-1]; } else fixstore = (FixStore *) modify->fix[ifix]; + // do not carry weights with atoms during normal atom migration + fixstore->disable = 1; if (prefix) delete [] fixargs[0]; diff --git a/src/fix_balance.cpp b/src/fix_balance.cpp index b2f545c73f..e748e0ae31 100644 --- a/src/fix_balance.cpp +++ b/src/fix_balance.cpp @@ -114,6 +114,7 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) : if (nevery) force_reneighbor = 1; lastbalance = -1; + next_reneighbor = -1; // compute initial outputs @@ -248,6 +249,10 @@ void FixBalance::pre_neighbor() if (!pending) return; imbfinal = balance->imbalance_factor(maxloadperproc); pending = 0; + + // set disable = 1, so weights no longer migrate with atoms + + if (wtflag) balance->fixstore->disable = 1; } /* ---------------------------------------------------------------------- @@ -275,21 +280,23 @@ void FixBalance::rebalance() // reset proc sub-domains // check and warn if any proc's subbox is smaller than neigh skin - // since may lead to lost atoms in exchange() + // since may lead to lost atoms in comm->exchange() if (domain->triclinic) domain->set_lamda_box(); domain->set_local_box(); domain->subbox_too_small_check(neighbor->skin); // move atoms to new processors via irregular() - // only needed if migrate_check() says an atom moves to far + // for non-RCB only needed if migrate_check() says an atom moves too far // else allow caller's comm->exchange() to do it + // set disable = 0, so weights migrate with atoms + // important to delay disable = 1 until after pre_neighbor imbfinal calc + // b/c atoms may migrate again in comm->exchange() if (domain->triclinic) domain->x2lamda(atom->nlocal); if (wtflag) balance->fixstore->disable = 0; if (lbstyle == BISECTION) irregular->migrate_atoms(0,1,sendproc); else if (irregular->migrate_check()) irregular->migrate_atoms(); - if (wtflag) balance->fixstore->disable = 1; if (domain->triclinic) domain->lamda2x(atom->nlocal); // invoke KSpace setup_grid() to adjust to new proc sub-domains diff --git a/src/fix_store.cpp b/src/fix_store.cpp index 3b1f3dca77..350e120972 100644 --- a/src/fix_store.cpp +++ b/src/fix_store.cpp @@ -154,8 +154,6 @@ void FixStore::reset_global(int nrow_caller, int ncol_caller) if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); else memory->create(astore,nrow,ncol,"fix/store:astore"); memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); - - // printf("AAA HOW GET HERE\n"); } /* ---------------------------------------------------------------------- From 4ac47ba0372385431cadf37d68b890dbcdc1bf6e Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 12 Jul 2018 07:27:11 -0600 Subject: [PATCH 268/675] cmake/README.md: fix GPU_ARCH options --- cmake/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmake/README.md b/cmake/README.md index 5419063f6d..bafd440a64 100644 --- a/cmake/README.md +++ b/cmake/README.md @@ -1421,11 +1421,11 @@ target API. CUDA SM architecture targeted by GPU package
-
sm20 (Fermi)
-
sm30 (Kepler)
-
sm50 (Maxwell)
-
sm60 (Pascal)
-
sm70 (Volta)
+
sm_20 (Fermi)
+
sm_30 (Kepler)
+
sm_50 (Maxwell)
+
sm_60 (Pascal)
+
sm_70 (Volta)
From 21f749243a9e93da42a77a522af5801740c7daef Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Thu, 12 Jul 2018 10:21:06 -0500 Subject: [PATCH 269/675] Required newton on for pair styles body rounded/polygon and rounded/polyhedron --- doc/src/pair_body_rounded_polygon.txt | 3 --- doc/src/pair_body_rounded_polyhedron.txt | 3 --- src/BODY/pair_body_rounded_polygon.cpp | 4 ++++ src/BODY/pair_body_rounded_polyhedron.cpp | 4 ++++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index 15817f10f8..5ef4a9104b 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -93,9 +93,6 @@ These pair styles are part of the BODY package. They are only enabled if LAMMPS was built with that package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. -NOTE: is there a newton on or off requirement for using this pair style? -If so, say something like this: - This pair style requires the "newton"_newton.html setting to be "on" for pair interactions. diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index 29fa90d2cf..81c69fdd62 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -94,9 +94,6 @@ These pair styles are part of the BODY package. They are only enabled if LAMMPS was built with that package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. -NOTE: is there a newton on or off requirement for using this pair style? -If so, say something like this: - This pair style requires the "newton"_newton.html setting to be "on" for pair interactions. diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp index c4c09fd677..14ef70f476 100644 --- a/src/BODY/pair_body_rounded_polygon.cpp +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -428,6 +428,10 @@ void PairBodyRoundedPolygon::init_style() "body style rounded/polygon"); bptr = (BodyRoundedPolygon *) avec->bptr; + if (force->newton_pair == 0) + error->all(FLERR,"Pair style body/rounded/polygon requires " + "newton pair on"); + if (comm->ghost_velocity == 0) error->all(FLERR,"Pair body/rounded/polygon requires " "ghost atoms store velocity"); diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index 0d73d249b9..2ff209d609 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -400,6 +400,10 @@ void PairBodyRoundedPolyhedron::init_style() "body style rounded/polyhedron"); bptr = (BodyRoundedPolyhedron *) avec->bptr; + if (force->newton_pair == 0) + error->all(FLERR,"Pair style body/rounded/polyhedron requires " + "newton pair on"); + if (comm->ghost_velocity == 0) error->all(FLERR,"Pair body/rounded/polyhedron requires " "ghost atoms store velocity"); From 85511a4db8297dbc43c0d3eb6b69c47d48767a4c Mon Sep 17 00:00:00 2001 From: HaoZeke Date: Fri, 13 Jul 2018 00:44:03 +0530 Subject: [PATCH 270/675] docs: Fix sneaky unicode character Fixes the `pdf` target of the `Makefile`. --- doc/src/Developer/developer.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Developer/developer.tex b/doc/src/Developer/developer.tex index 9d9a93a53d..8852f44168 100644 --- a/doc/src/Developer/developer.tex +++ b/doc/src/Developer/developer.tex @@ -476,7 +476,7 @@ is the name of the class. This code allows LAMMPS to find your fix when it parses input script. In addition, your fix header must be included in the file "style\_fix.h". In case if you use LAMMPS make, this file is generated automatically - all files starting with prefix -fix\_ are included, so call your header the same way. Otherwise, donÕt +fix\_ are included, so call your header the same way. Otherwise, don't forget to add your include into "style\_fix.h". Let's write a simple fix which will print average velocity at the end From 16381a52b14aeeb47cc6eb0e2897019bc9c4a4df Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Thu, 12 Jul 2018 20:22:38 -0600 Subject: [PATCH 271/675] Fix crash in ReaxFF on GPUs --- src/KOKKOS/pair_reaxc_kokkos.cpp | 9 +++++---- src/KOKKOS/pair_reaxc_kokkos.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index bb9f8ab417..e2e2e6f6de 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -343,6 +343,7 @@ void PairReaxCKokkos::init_md() swa = control->nonb_low; swb = control->nonb_cut; + enobondsflag = control->enobondsflag; if (fabs(swa) > 0.01 ) error->warning(FLERR,"Warning: non-zero lower Taper-radius cutoff"); @@ -2272,12 +2273,12 @@ void PairReaxCKokkos::operator()(PairReaxComputeMulti2 0 || control->enobondsflag) + if (numbonds > 0 || enobondsflag) e_lp = p_lp2 * d_Delta_lp[i] * inv_expvd2; const F_FLOAT dElp = p_lp2 * inv_expvd2 + 75.0 * p_lp2 * d_Delta_lp[i] * expvd2 * inv_expvd2*inv_expvd2; const F_FLOAT CElp = dElp * d_dDelta_lp[i]; - if (numbonds > 0 || control->enobondsflag) + if (numbonds > 0 || enobondsflag) a_CdDelta[i] += CElp; if (eflag) ev.ereax[0] += e_lp; @@ -2314,7 +2315,7 @@ void PairReaxCKokkos::operator()(PairReaxComputeMulti2 0 || control->enobondsflag) + if (numbonds > 0 || enobondsflag) e_un = -p_ovun5 * (1.0 - exp_ovun6) * inv_exp_ovun2n * inv_exp_ovun8; if (eflag) ev.ereax[2] += e_un; @@ -2334,7 +2335,7 @@ void PairReaxCKokkos::operator()(PairReaxComputeMulti2 0 || control->enobondsflag) + if (numbonds > 0 || enobondsflag) a_CdDelta[i] += CEunder3; const int j_start = d_bo_first[i]; diff --git a/src/KOKKOS/pair_reaxc_kokkos.h b/src/KOKKOS/pair_reaxc_kokkos.h index 5175e274a8..5c96d44618 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.h +++ b/src/KOKKOS/pair_reaxc_kokkos.h @@ -427,7 +427,7 @@ class PairReaxCKokkos : public PairReaxC { friend void pair_virial_fdotr_compute(PairReaxCKokkos*); - int bocnt,hbcnt; + int bocnt,hbcnt,enobondsflag; typedef LR_lookup_table_kk LR_lookup_table_kk_DT; From d4f8940ff2367f81b0ae806ec3cd057cc69c6614 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Fri, 13 Jul 2018 07:40:06 -0600 Subject: [PATCH 272/675] Update command doc page for Kokkos enforce2d --- doc/src/Section_commands.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index 3dabdbeaa1..cc9757a88e 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -571,7 +571,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "dt/reset"_fix_dt_reset.html, "efield"_fix_efield.html, "ehex"_fix_ehex.html, -"enforce2d"_fix_enforce2d.html, +"enforce2d (k)"_fix_enforce2d.html, "evaporate"_fix_evaporate.html, "external"_fix_external.html, "freeze"_fix_freeze.html, From cdf091f228651c291aa02e9a585d708073c47756 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Fri, 13 Jul 2018 08:37:29 -0600 Subject: [PATCH 273/675] fixed an error in the scafacos example (added missing keyword tolerance) --- examples/scafacos/in.scafacos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/scafacos/in.scafacos b/examples/scafacos/in.scafacos index 2a7e830110..ae6b8e0193 100644 --- a/examples/scafacos/in.scafacos +++ b/examples/scafacos/in.scafacos @@ -14,7 +14,7 @@ neighbor 1.0 bin neigh_modify delay 0 # using the fmm solver with a tolerance in energy of 10^-3 -fix 1 all scafacos fmm energy 0.001 +fix 1 all scafacos fmm tolerance energy 0.001 timestep 0.005 From 6cfdcd1000360cbd1e53f319e9b51e2040505e4f Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Fri, 13 Jul 2018 08:49:47 -0600 Subject: [PATCH 274/675] removed custom error message, information is added to error->one() call --- src/USER-SCAFACOS/fix_scafacos.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/USER-SCAFACOS/fix_scafacos.cpp b/src/USER-SCAFACOS/fix_scafacos.cpp index 9446e3b60c..f82b80dd5f 100644 --- a/src/USER-SCAFACOS/fix_scafacos.cpp +++ b/src/USER-SCAFACOS/fix_scafacos.cpp @@ -439,7 +439,6 @@ bool FixScafacos::check_result(FCSResult result, int comm_rank) { if (result) { - fprintf(stdout,"ScaFaCoS Error: Caught error on task %d.\n", comm_rank); std::string err_msg; std::stringstream ss; @@ -447,7 +446,7 @@ bool FixScafacos::check_result(FCSResult result, int comm_rank) << fcs_result_get_message(result) << "\n"; err_msg = ss.str(); - error -> one(FLERR, err_msg.c_str()); + error->one(FLERR, err_msg.c_str()); fcs_result_destroy(result); } return true; From bf5fbc92dfb2178ef620bb03876817da43a2be4d Mon Sep 17 00:00:00 2001 From: Sergey Lishchuk Date: Fri, 13 Jul 2018 20:18:53 +0100 Subject: [PATCH 275/675] Updated documentation and source --- doc/src/JPG/pair_atm_dia.jpg | Bin 0 -> 31541 bytes doc/src/angle_dipole.txt | 17 ++-- doc/src/fix_langevin_spin.txt | 4 +- doc/src/fix_nve_spin.txt | 2 +- doc/src/pair_atm.txt | 131 +++++++++++++++++++++++------- doc/src/pair_spin_dmi.txt | 2 +- doc/src/pair_spin_exchange.txt | 2 +- doc/src/pair_spin_magelec.txt | 2 +- doc/src/pair_spin_neel.txt | 2 +- doc/src/run_style.txt | 77 +++++++++++++----- doc/src/set.txt | 17 ++++ examples/SPIN/README | 20 +++++ lib/gpu/Nvidia.makefile_multi | 46 ++++++++++- src/MAKE/MACHINES/Makefile.theta | 133 +++++++++++++++++++++++++++++++ src/MANYBODY/pair_atm.cpp | 21 +++-- src/MANYBODY/pair_atm.h | 10 +-- src/SPIN/atom_vec_spin.cpp | 10 +-- src/SPIN/compute_spin.cpp | 4 +- src/SPIN/fix_langevin_spin.cpp | 8 +- src/SPIN/fix_nve_spin.cpp | 13 +-- src/SPIN/fix_precession_spin.cpp | 10 +-- src/SPIN/pair_spin.cpp | 8 +- src/SPIN/pair_spin_dmi.cpp | 8 +- src/SPIN/pair_spin_exchange.cpp | 8 +- src/SPIN/pair_spin_magelec.cpp | 14 ++-- src/SPIN/pair_spin_neel.cpp | 8 +- src/balance.cpp | 6 +- src/fix_balance.cpp | 13 ++- src/fix_store.cpp | 2 - src/reset_ids.cpp | 16 +++- 30 files changed, 480 insertions(+), 134 deletions(-) create mode 100644 doc/src/JPG/pair_atm_dia.jpg create mode 100644 examples/SPIN/README create mode 100644 src/MAKE/MACHINES/Makefile.theta diff --git a/doc/src/JPG/pair_atm_dia.jpg b/doc/src/JPG/pair_atm_dia.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fd8edc5e676ee9973dd4ca1aced98b641c4157c7 GIT binary patch literal 31541 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 literal 0 HcmV?d00001 diff --git a/doc/src/angle_dipole.txt b/doc/src/angle_dipole.txt index d91f260d51..34cc8c153c 100644 --- a/doc/src/angle_dipole.txt +++ b/doc/src/angle_dipole.txt @@ -96,16 +96,17 @@ USER-MISC package. See the "Making LAMMPS"_Section_start.html#start_2_3 section for more info on packages. NOTE: In the "Angles" section of the data file, the atom ID 'j' -corresponding to the dipole to restrain must come before the atom ID -of the reference atom 'i'. A third atom ID 'k' must also be provided, -although 'k' is just a 'dummy' atom which can be any atom; it may be -useful to choose a convention (e.g., 'k'='i') and adhere to it. For -example, if ID=1 for the dipolar atom to restrain, and ID=2 for the -reference atom, the corresponding line in the "Angles" section of the -data file would read: X X 1 2 2 +defining the direction of the dipole vector to restrain must come +before the atom ID of the reference atom 'i'. A third atom ID 'k' must +also be provided to comply with the requirement of a valid angle +definition. This atom ID k should be chosen to be that of an atom +bonded to atom 'i' to avoid errors with "lost angle atoms" when running +in parallel. Since the LAMMPS code checks for valid angle definitions, +cannot use the same atom ID of either 'i' or 'j' (this was allowed +and recommended with older LAMMPS versions). The "newton" command for intramolecular interactions must be "on" -(which is the default). +(which is the default except when using some accelerator packages). This angle style should not be used with SHAKE. diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt index 51f085ebdc..b089cd7f58 100644 --- a/doc/src/fix_langevin_spin.txt +++ b/doc/src/fix_langevin_spin.txt @@ -98,5 +98,5 @@ integration fix (e.g. {fix nve/spin}). [(Mayergoyz)] I.D. Mayergoyz, G. Bertotti, C. Serpico (2009). Elsevier (2009) :link(Tranchida2) -[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, +Journal of Computational Physics, (2018). diff --git a/doc/src/fix_nve_spin.txt b/doc/src/fix_nve_spin.txt index 6ccebcebf6..f4b38c270b 100644 --- a/doc/src/fix_nve_spin.txt +++ b/doc/src/fix_nve_spin.txt @@ -73,4 +73,4 @@ instead of "array" is also valid. :link(Tranchida1) [(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +Journal of Computational Physics, (2018). diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index 48260c161a..01bbfa7a78 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -10,16 +10,21 @@ pair_style atm command :h3 [Syntax:] -pair_style atm args = cutoff :pre +pair_style atm cutoff :pre + +cutoff = global cutoff for 3-body interactions (distance units) :ul [Examples:] pair_style 2.5 pair_coeff * * * 0.072 :pre -pair_style hybrid/overlay lj/cut 6.5 atm 2.5 -pair_coeff * * lj/cut 1.0 1.0 -pair_coeff * * atm * 0.072 :pre +pair_style hybrid/overlay lj/cut 6.5 atm 2.5 +pair_coeff * * lj/cut 1.0 1.0 +pair_coeff 1 1 atm 1 0.064 +pair_coeff 1 1 atm 2 0.080 +pair_coeff 1 2 atm 2 0.100 +pair_coeff 2 2 atm 2 0.125 :pre [Description:] @@ -28,36 +33,104 @@ potential for the energy E of a system of atoms as :c,image(Eqs/pair_atm.jpg) -where r12, r23 and r31 are the distances between the atoms, -gamma1 is included by the sides r12 and r31 -with similar definitions for gamma2 and gamma3, -nu is the three-body interaction strength (energy times distance^9 units). +where nu is the three-body interaction strength, +and the distances between pairs of atoms r12, r23 and r31 +and the angles gamma1, gamma2 and gamma3 +are shown at the diagram: -The {atm} is typically used in compination with some two-body potential -using "hybrid/overlay"_pair_hybrid.html style as in an example above. +:c,image(JPG/pair_atm_dia.jpg) -The calculations are not undertaken if the distances between atoms satisfy -r12 r23 r31 > curoff^3. Virtual cutoff distance based on a user defined -tolerance tol is not used. +There is no \"central\" atom, the interaction is symmetric with respect +to permutation of atom types. -The Axilrod-Teller-Muto potential file must contain entries for all the -elements listed in the pair_coeff command. It can also contain -entries for additional elements not being used in a particular -simulation; LAMMPS ignores those entries. +The {atm} potential is typically used in combination with a two-body +potential using the "pair_style hybrid/overlay"_pair_hybrid.html +command as in the example above. -For a single-element simulation, only a single entry is required -(e.g. 1 1 1). For a two-element simulation, the file must contain 4 -entries (eg. 1 1 1, 1 1 2, 1 2 2, 2 2 2), that -specify ATM parameters for all combinations of the two elements -interacting in three-body configurations. Thus for 3 elements, 10 -entries would be required, etc. +The potential is calculated if all three atoms are in the +"neighbor list"_neighbor.html +and the distances between atoms satisfy r12 r23 r31 > cutoff^3. + +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 restart files read by the +"read_restart"_read_restart.html commands: + +K - the type of the third atom +nu (energy/distance^9 units) :ul + +For a single-atom type simulation, only a single entry is required, eg + +pair_coeff 1 1 1 nu :pre + +where all three atoms are of type 1. +For a two-atom type simulation, more pair_coeff commands can be used. +ATM interaction is symmetric with respect to permutation of atoms, +it is necessary to provide pair_coeff command for one permutation. +For example, the command + +pair_coeff 1 1 2 nu :pre + +also implies + +pair_coeff 1 2 1 nu +pair_coeff 2 1 1 nu :pre + +Thus, to specify all ATM interactions between two atom types (eg 1 and 2) +it is sufficient to provide four pair_coeff commands, eg: + +pair_coeff 1 1 1 nu1 +pair_coeff 1 1 2 nu2 +pair_coeff 1 2 2 nu3 +pair_coeff 2 2 2 nu4 :pre + +For 3 atom types, 10 pair_coeff commands +(eg 111, 112, 113, 122, 123, 133, 222, 223, 233, 333) +will describe all possible ATM interactions, etc. +It is not necessary to provide the pair_coeff commands for interactions +of all combinations of atom types: if some combination is not defined then +there is no ATM interaction for this combination and all its permutations. + +-------------------- + +[Steve:] + +I think a better syntax for the pair coeff command might be this: + +pair_coeff I J v1 v2 ... vN + +when 1,2,...N are the number of atom types defined. +Then there be one pair_coeff command for each type pair, +the same syntax as all other potentials in LAMMPS use. + +[Sergey:] + +The reason for my original pair_coeff command syntax is that +I would like to reserve further arguments for possible extension of +ATM potential in LAMMPS to further terms in the multipole expansion of +many-body dispersion interaction. +For example, the next term would be dipole-dipole-quadrupole, it may be +activated if the next argument of pair_coeff is present +without breaking backward compatibility. + +Also, the command you propose +(i) will not account that the value of nu for different permutations +of atom types is the same, and +(ii) will make the numbering of atom types messy since there is +no requirement to supply the values of nu for all triplets. + +-------------------- :line -[Shift, table, tail correction, rRESPA info]: +[Mixing, shift, table, tail correction, restart, rRESPA info]: -This pair style does not support the "pair_modify"_pair_modify.html -shift, table, and tail options. +This pair styles do not support the "pair_modify"_pair_modify.html +mix, shift, table, and tail options. + +This pair style writes its information to "binary restart +files"_restart.html, so pair_style and pair_coeff commands do not need +to be specified in an input script that reads a restart file. This pair style can only be used via the {pair} keyword of the "run_style respa"_run_style.html command. It does not support the @@ -68,8 +141,8 @@ This pair style can only be used via the {pair} keyword of the [Restrictions:] This pair style is part of the MANYBODY package. It is only enabled -if LAMMPS was built with that package. See -the "Making LAMMPS"_Section_start.html#start_3 section for more info. +if LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. [Related commands:] @@ -82,4 +155,4 @@ the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Axilrod) [(Axilrod)] Axilrod and Teller, J Chem Phys, 11, 299 (1943); -Muto, Nippon Sugaku Butsuri Gakkwaishi 17, 629 (1943). +Muto, Nippon Sugaku-Buturigakkwaishi 17, 629 (1943). diff --git a/doc/src/pair_spin_dmi.txt b/doc/src/pair_spin_dmi.txt index 9fe53df18a..24877906f3 100644 --- a/doc/src/pair_spin_dmi.txt +++ b/doc/src/pair_spin_dmi.txt @@ -63,4 +63,4 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Tranchida5) [(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +Journal of Computational Physics, (2018). diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index 97b6d0b34f..ad3357cb5e 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -79,4 +79,4 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Tranchida3) [(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +Journal of Computational Physics, (2018). diff --git a/doc/src/pair_spin_magelec.txt b/doc/src/pair_spin_magelec.txt index 0185a5abb2..8ba24c46af 100644 --- a/doc/src/pair_spin_magelec.txt +++ b/doc/src/pair_spin_magelec.txt @@ -70,4 +70,4 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Tranchida4) [(Tranchida)] Tranchida, Plimpton, Thibaudeau, and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +Journal of Computational Physics, (2018). diff --git a/doc/src/pair_spin_neel.txt b/doc/src/pair_spin_neel.txt index f7c9608a93..8551f8d636 100644 --- a/doc/src/pair_spin_neel.txt +++ b/doc/src/pair_spin_neel.txt @@ -78,4 +78,4 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :link(Tranchida6) [(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). +Journal of Computational Physics, (2018). diff --git a/doc/src/run_style.txt b/doc/src/run_style.txt index ba836a07dd..7717ede86f 100644 --- a/doc/src/run_style.txt +++ b/doc/src/run_style.txt @@ -138,13 +138,19 @@ iterations of level 1 for a single iteration of level 2, N2 is the iterations of level 2 per iteration of level 3, etc. N-1 looping parameters must be specified. -The "timestep"_timestep.html command sets the timestep for the -outermost rRESPA level. Thus if the example command above for a -4-level rRESPA had an outer timestep of 4.0 fmsec, the inner timestep -would be 8x smaller or 0.5 fmsec. All other LAMMPS commands that -specify number of timesteps (e.g. "neigh_modify"_neigh_modify.html -parameters, "dump"_dump.html every N timesteps, etc) refer to the -outermost timesteps. +Thus with a 4-level respa setting of "2 2 2" for the 3 loop factors, +you could choose to have bond interactions computed 8x per large +timestep, angle interactions computed 4x, pair interactions computed +2x, and long-range interactions once per large timestep. + +The "timestep"_timestep.html command sets the large timestep for the +outermost rRESPA level. Thus if the 3 loop factors are "2 2 2" for +4-level rRESPA, and the outer timestep is set to 4.0 fmsec, then the +inner timestep would be 8x smaller or 0.5 fmsec. All other LAMMPS +commands that specify number of timesteps (e.g. "thermo"_thermo.html +for thermo output every N steps, "neigh_modify +delay/every"_neigh_modify.html parameters, "dump"_dump.html every N +steps, etc) refer to the outermost timesteps. The rRESPA keywords enable you to specify at what level of the hierarchy various forces will be computed. If not specified, the @@ -167,11 +173,17 @@ have their force go ramped to 0.0 so the overlap with the next regime compute forces for all pairs from 5.0 outward, with those from 5.0 to 6.0 having their value ramped in an inverse manner. -Only some pair potentials support the use of the {inner} and {middle} -and {outer} keywords. If not, only the {pair} keyword can be used -with that pair style, meaning all pairwise forces are computed at the -same rRESPA level. See the doc pages for individual pair styles for -details.i +Note that you can use {inner} and {outer} without using {middle} to +split the pairwise computations into two portions instead of three. +Unless you are using a very long pairwise cutoff, a 2-way split is +often faster than a 3-way split, since it avoids too much duplicate +computation of pairwise interactions near the intermediate cutoffs. + +Also note that only a few pair potentials support the use of the +{inner} and {middle} and {outer} keywords. If not, only the {pair} +keyword can be used with that pair style, meaning all pairwise forces +are computed at the same rRESPA level. See the doc pages for +individual pair styles for details. Another option for using pair potentials with rRESPA is with the {hybrid} keyword, which requires the use of the "pair_style hybrid or @@ -238,12 +250,24 @@ roughly a 1.5 fold speedup over the {verlet} style with SHAKE and a For non-biomolecular simulations, the {respa} style can be advantageous if there is a clear separation of time scales - fast and -slow modes in the simulation. Even a LJ system can benefit from -rRESPA if the interactions are divided by the inner, middle and outer -keywords. A 2-fold or more speedup can be obtained while maintaining -good energy conservation. In real units, for a pure LJ fluid at -liquid density, with a sigma of 3.0 angstroms, and epsilon of 0.1 -Kcal/mol, the following settings seem to work well: +slow modes in the simulation. For example, a system of slowly-moving +charged polymer chains could be setup as follows: + +timestep 4.0 +run_style respa 2 8 :pre + +This is two-level rRESPA with an 8x difference between the short and +long timesteps. The bonds, angles, dihedrals will be computed every +0.5 fs (assuming real units), while the pair and kspace interactions +will be computed once every 4 fs. These are the default settings for +each kind of interaction, so no additional keywords are necessary. + +Even a LJ system can benefit from rRESPA if the interactions are +divided by the inner, middle and outer keywords. A 2-fold or more +speedup can be obtained while maintaining good energy conservation. +In real units, for a pure LJ fluid at liquid density, with a sigma of +3.0 angstroms, and epsilon of 0.1 Kcal/mol, the following settings +seem to work well: timestep 36.0 run_style respa 3 3 4 inner 1 3.0 4.0 middle 2 6.0 7.0 outer 3 :pre @@ -271,9 +295,9 @@ more instructions on how to use the accelerated styles effectively. [Restrictions:] The {verlet/split} style can only be used if LAMMPS was built with the -REPLICA package. Correspondingly the {respa/omp} style is available only -if the USER-OMP package was included. See the "Making LAMMPS"_Section_start.html#start_3 -section for more info on packages. +REPLICA package. Correspondingly the {respa/omp} style is available +only if the USER-OMP package was included. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info on packages. Whenever using rRESPA, the user should experiment with trade-offs in speed and accuracy for their system, and verify that they are @@ -287,6 +311,17 @@ conserving energy to adequate precision. run_style verlet :pre +For run_style respa, the default assignment of interactions +to rRESPA levels is as follows: + +bond forces = level 1 (innermost loop) +angle forces = same level as bond forces +dihedral forces = same level as angle forces +improper forces = same level as dihedral forces +pair forces = leven N (outermost level) +kspace forces = same level as pair forces +inner, middle, outer forces = no default :ul + :line :link(Tuckerman3) diff --git a/doc/src/set.txt b/doc/src/set.txt index 4757d1c575..d05660dc42 100644 --- a/doc/src/set.txt +++ b/doc/src/set.txt @@ -17,6 +17,7 @@ ID = atom ID range or type range or mol ID range or group ID or region ID :l one or more keyword/value pairs may be appended :l keyword = {type} or {type/fraction} or {mol} or {x} or {y} or {z} or \ {charge} or {dipole} or {dipole/random} or {quat} or \ + {spin} or {spin/random} or {quat} or \ {quat/random} or {diameter} or {shape} or \ {length} or {tri} or {theta} or {theta/random} or \ {angmom} or {omega} or \ @@ -43,6 +44,13 @@ keyword = {type} or {type/fraction} or {mol} or {x} or {y} or {z} or \ {dipole/random} value = seed Dlen seed = random # seed (positive integer) for dipole moment orientations Dlen = magnitude of dipole moment (dipole units) + {spin} values = g x y z + g = magnitude of magnetic spin vector (in Bohr magneton's unit) + x,y,z = orientation of magnetic spin vector + any of x,y,z can be an atom-style variable (see below) + {spin/random} value = seed Dlen + seed = random # seed (positive integer) for magnetic spin orientations + Dlen = magnitude of magnetic spin vector (in Bohr magneton's unit) {quat} values = a b c theta a,b,c = unit vector to rotate particle around via right-hand rule theta = rotation angle (degrees) @@ -232,6 +240,15 @@ the orientation of a particular atom is the same, regardless of how many processors are being used. This keyword does not allow use of an atom-style variable. +Keyword {spin} uses the specified g value to set the magnitude of the +magnetic spin vectors, and the x,y,z values as components of a vector +to set as the orientation of the magnetic spin vectors of the selected +atoms. + +Keyword {spin/random} randomizes the orientation of the magnetic spin +vectors for the selected atoms and sets the magnitude of each to the +specified {Dlen} value. + Keyword {quat} uses the specified values to create a quaternion (4-vector) that represents the orientation of the selected atoms. The particles must define a quaternion for their orientation diff --git a/examples/SPIN/README b/examples/SPIN/README new file mode 100644 index 0000000000..5ad252e7f2 --- /dev/null +++ b/examples/SPIN/README @@ -0,0 +1,20 @@ +This directory contains examples and applications of the SPIN package +===================================================================== + +- the iron, cobalt_hcp, cobalt_fcc and nickel directories provide +examples of spin-lattice calculations. + +- the bfo repository provides an example of spin dynamics calculation +performed on a fixed lattice, and applied to the multiferroic +material bismuth-oxide. + +- the read_restart directory provides examples allowing to write or +read data files, and restart magneto-mechanical simulations. + +- vizualization of the dump files can be achieved using Ovito or +VMD. See the vmd repository for help vizualizing results with VMD. + +** Note, the aim of this repository is mainly to provide users with +examples. Better values and tuning of the magnetic and mechanical +interactions can be achieved for more accurate materials +simulations. ** diff --git a/lib/gpu/Nvidia.makefile_multi b/lib/gpu/Nvidia.makefile_multi index 5fb35cce3c..94cfd4af6b 100644 --- a/lib/gpu/Nvidia.makefile_multi +++ b/lib/gpu/Nvidia.makefile_multi @@ -79,7 +79,10 @@ OBJS = $(OBJ_DIR)/lal_atom.o $(OBJ_DIR)/lal_ans.o \ $(OBJ_DIR)/lal_lj_cubic.o $(OBJ_DIR)/lal_lj_cubic_ext.o \ $(OBJ_DIR)/lal_ufm.o $(OBJ_DIR)/lal_ufm_ext.o \ $(OBJ_DIR)/lal_dipole_long_lj.o $(OBJ_DIR)/lal_dipole_long_lj_ext.o \ - $(OBJ_DIR)/lal_lj_expand_coul_long.o $(OBJ_DIR)/lal_lj_expand_coul_long_ext.o + $(OBJ_DIR)/lal_lj_expand_coul_long.o $(OBJ_DIR)/lal_lj_expand_coul_long_ext.o \ + $(OBJ_DIR)/lal_coul_long_cs.o $(OBJ_DIR)/lal_coul_long_cs_ext.o \ + $(OBJ_DIR)/lal_born_coul_long_cs.o $(OBJ_DIR)/lal_born_coul_long_cs_ext.o \ + $(OBJ_DIR)/lal_born_coul_wolf_cs.o $(OBJ_DIR)/lal_born_coul_wolf_cs_ext.o CBNS = $(OBJ_DIR)/device.cubin $(OBJ_DIR)/device_cubin.h \ $(OBJ_DIR)/atom.cubin $(OBJ_DIR)/atom_cubin.h \ @@ -137,7 +140,10 @@ CBNS = $(OBJ_DIR)/device.cubin $(OBJ_DIR)/device_cubin.h \ $(OBJ_DIR)/lj_cubic.cubin $(OBJ_DIR)/lj_cubic_cubin.h \ $(OBJ_DIR)/ufm.cubin $(OBJ_DIR)/ufm_cubin.h \ $(OBJ_DIR)/dipole_long_lj.cubin $(OBJ_DIR)/dipole_long_lj_cubin.h \ - $(OBJ_DIR)/lj_expand_coul_long.cubin $(OBJ_DIR)/lj_expand_coul_long_cubin.h + $(OBJ_DIR)/lj_expand_coul_long.cubin $(OBJ_DIR)/lj_expand_coul_long_cubin.h \ + $(OBJ_DIR)/coul_long_cs.cubin $(OBJ_DIR)/coul_long_cs_cubin.h \ + $(OBJ_DIR)/born_coul_long_cs.cubin $(OBJ_DIR)/born_coul_long_cs_cubin.h \ + $(OBJ_DIR)/born_coul_wolf_cs.cubin $(OBJ_DIR)/born_coul_wolf_cs_cubin.h all: $(OBJ_DIR) $(GPU_LIB) $(EXECS) @@ -837,6 +843,42 @@ $(OBJ_DIR)/lal_lj_expand_coul_long.o: $(ALL_H) lal_lj_expand_coul_long.h lal_lj_ $(OBJ_DIR)/lal_lj_expand_coul_long_ext.o: $(ALL_H) lal_lj_expand_coul_long.h lal_lj_expand_coul_long_ext.cpp lal_base_charge.h $(CUDR) -o $@ -c lal_lj_expand_coul_long_ext.cpp -I$(OBJ_DIR) +$(OBJ_DIR)/coul_long_cs.cubin: lal_coul_long_cs.cu lal_precision.h lal_preprocessor.h + $(CUDA) --fatbin -DNV_KERNEL -o $@ lal_coul_long_cs.cu + +$(OBJ_DIR)/coul_long_cs_cubin.h: $(OBJ_DIR)/coul_long_cs.cubin $(OBJ_DIR)/coul_long_cs.cubin + $(BIN2C) -c -n coul_long_cs $(OBJ_DIR)/coul_long_cs.cubin > $(OBJ_DIR)/coul_long_cs_cubin.h + +$(OBJ_DIR)/lal_coul_long_cs.o: $(ALL_H) lal_coul_long_cs.h lal_coul_long_cs.cpp $(OBJ_DIR)/coul_long_cs_cubin.h $(OBJ_DIR)/lal_base_charge.o $(OBJ_DIR)/lal_coul_long.o + $(CUDR) -o $@ -c lal_coul_long_cs.cpp -I$(OBJ_DIR) + +$(OBJ_DIR)/lal_coul_long_cs_ext.o: $(ALL_H) lal_coul_long_cs.h lal_coul_long_cs_ext.cpp lal_coul_long.h + $(CUDR) -o $@ -c lal_coul_long_cs_ext.cpp -I$(OBJ_DIR) + +$(OBJ_DIR)/born_coul_long_cs.cubin: lal_born_coul_long_cs.cu lal_precision.h lal_preprocessor.h + $(CUDA) --fatbin -DNV_KERNEL -o $@ lal_born_coul_long_cs.cu + +$(OBJ_DIR)/born_coul_long_cs_cubin.h: $(OBJ_DIR)/born_coul_long_cs.cubin $(OBJ_DIR)/born_coul_long_cs.cubin + $(BIN2C) -c -n born_coul_long_cs $(OBJ_DIR)/born_coul_long_cs.cubin > $(OBJ_DIR)/born_coul_long_cs_cubin.h + +$(OBJ_DIR)/lal_born_coul_long_cs.o: $(ALL_H) lal_born_coul_long_cs.h lal_born_coul_long_cs.cpp $(OBJ_DIR)/born_coul_long_cs_cubin.h $(OBJ_DIR)/lal_base_charge.o $(OBJ_DIR)/lal_born_coul_long.o + $(CUDR) -o $@ -c lal_born_coul_long_cs.cpp -I$(OBJ_DIR) + +$(OBJ_DIR)/lal_born_coul_long_cs_ext.o: $(ALL_H) lal_born_coul_long_cs.h lal_born_coul_long_cs_ext.cpp lal_born_coul_long.h + $(CUDR) -o $@ -c lal_born_coul_long_cs_ext.cpp -I$(OBJ_DIR) + +$(OBJ_DIR)/born_coul_wolf_cs.cubin: lal_born_coul_wolf_cs.cu lal_precision.h lal_preprocessor.h + $(CUDA) --fatbin -DNV_KERNEL -o $@ lal_born_coul_wolf_cs.cu + +$(OBJ_DIR)/born_coul_wolf_cs_cubin.h: $(OBJ_DIR)/born_coul_wolf_cs.cubin $(OBJ_DIR)/born_coul_wolf_cs.cubin + $(BIN2C) -c -n born_coul_wolf_cs $(OBJ_DIR)/born_coul_wolf_cs.cubin > $(OBJ_DIR)/born_coul_wolf_cs_cubin.h + +$(OBJ_DIR)/lal_born_coul_wolf_cs.o: $(ALL_H) lal_born_coul_wolf_cs.h lal_born_coul_wolf_cs.cpp $(OBJ_DIR)/born_coul_wolf_cs_cubin.h $(OBJ_DIR)/lal_base_charge.o $(OBJ_DIR)/lal_born_coul_wolf.o + $(CUDR) -o $@ -c lal_born_coul_wolf_cs.cpp -I$(OBJ_DIR) + +$(OBJ_DIR)/lal_born_coul_wolf_cs_ext.o: $(ALL_H) lal_born_coul_wolf_cs.h lal_born_coul_wolf_cs_ext.cpp lal_born_coul_wolf.h + $(CUDR) -o $@ -c lal_born_coul_wolf_cs_ext.cpp -I$(OBJ_DIR) + $(BIN_DIR)/nvc_get_devices: ./geryon/ucl_get_devices.cpp $(NVD_H) $(CUDR) -o $@ ./geryon/ucl_get_devices.cpp -DUCL_CUDADR $(CUDA_LIB) -lcuda diff --git a/src/MAKE/MACHINES/Makefile.theta b/src/MAKE/MACHINES/Makefile.theta new file mode 100644 index 0000000000..cad5a03b42 --- /dev/null +++ b/src/MAKE/MACHINES/Makefile.theta @@ -0,0 +1,133 @@ +# knl = Flags for Knights Landing Xeon Phi Processor,Intel Compiler/MPI,MKL FFT +# module load perftools-base perftools +# make theta -j 8 +# pat_build -g mpi -u ./lmp_theta + +SHELL = /bin/sh + +# --------------------------------------------------------------------- +# compiler/linker settings +# specify flags and libraries needed for your compiler + +CC = CC -mkl +#OPTFLAGS = -O0 +OPTFLAGS = -xMIC-AVX512 -O3 -fp-model fast=2 -no-prec-div -qoverride-limits +CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -qno-offload \ + -fno-alias -ansi-alias -restrict $(OPTFLAGS) +#CCFLAGS += -DLMP_INTEL_NO_TBB +#CCFLAGS += -DLAMMPS_BIGBIG +#CCFLAGS += -D_USE_PAPI +#CCFLAGS += -D_USE_CRAYPAT_API +SHFLAGS = -fPIC +DEPFLAGS = -M + +LINK = $(CC) +LINKFLAGS = -g -qopenmp $(OPTFLAGS) +LINKFLAGS += -dynamic +LIB = +#LIB += -L${TBBROOT}/lib/intel64/gcc4.7 -ltbbmalloc +LIB += -ltbbmalloc +#LIB += /soft/debuggers/forge-7.0-2017-02-16/lib/64/libdmallocthcxx.a -zmuldefs +SIZE = size + +ARCHIVE = ar +ARFLAGS = -rc +SHLIBFLAGS = -shared + +# --------------------------------------------------------------------- +# LAMMPS-specific settings, all OPTIONAL +# specify settings for LAMMPS features you will use +# if you change any -D setting, do full re-compile after "make clean" + +# LAMMPS ifdef settings +# see possible settings in Section 2.2 (step 4) of manual + +LMP_INC = -DLAMMPS_GZIP #-DLAMMPS_JPEG + +# MPI library +# see discussion in Section 2.2 (step 5) of manual +# MPI wrapper compiler/linker can provide this info +# can point to dummy MPI library in src/STUBS as in Makefile.serial +# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts +# INC = path for mpi.h, MPI compiler settings +# PATH = path for MPI library +# LIB = name of MPI library + +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = +MPI_LIB = + +# FFT library +# see discussion in Section 2.2 (step 6) of manaul +# can be left blank to use provided KISS FFT library +# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings +# PATH = path for FFT library +# LIB = name of FFT library + +FFT_INC = -DFFT_MKL -DFFT_SINGLE +FFT_PATH = +FFT_LIB = -L$(MKLROOT)/lib/intel64/ -Wl,--start-group -lmkl_intel_ilp64 \ + -lmkl_intel_thread -lmkl_core -Wl,--end-group + +# JPEG and/or PNG library +# see discussion in Section 2.2 (step 7) of manual +# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC +# INC = path(s) for jpeglib.h and/or png.h +# PATH = path(s) for JPEG library and/or PNG library +# LIB = name(s) of JPEG library and/or PNG library + +JPG_INC = +JPG_PATH = +JPG_LIB = + +# --------------------------------------------------------------------- +# build rules and dependencies +# do not edit this section + +include Makefile.package.settings +include Makefile.package + +EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) +EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) +EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) + +# Path to src files + +vpath %.cpp .. +vpath %.h .. + +# Link target + +$(EXE): $(OBJ) + $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) + $(SIZE) $(EXE) + +# Library targets + +lib: $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) + +shlib: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + +# Compilation rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +%.d:%.cpp + $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ + +%.o:%.cu + $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< + +# Individual dependencies + +depend : fastdep.exe $(SRC) + @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 + +fastdep.exe: ../DEPEND/fastdep.c + icc -O -o $@ $< + +sinclude .depend diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index 0286c3ed1e..0db076acd0 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -49,8 +49,8 @@ PairATM::PairATM(LAMMPS *lmp) : Pair(lmp) if (lmp->citeme) lmp->citeme->add(cite_atm_package); single_enable = 0; - restartinfo = 0; - one_coeff = 1; + restartinfo = 1; + one_coeff = 0; manybody_flag = 1; } @@ -78,6 +78,7 @@ void PairATM::compute(int eflag, int vflag) double xi,yi,zi,evdwl; double rij2,rik2,rjk2,r6; double rij[3],rik[3],rjk[3],fj[3],fk[3]; + double nu_local; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = 0.0; @@ -128,8 +129,10 @@ void PairATM::compute(int eflag, int vflag) r6 = rij2*rik2*rjk2; if (r6 > cut_sixth) continue; - interaction_ddd(nu[type[i]][type[j]][type[k]], - r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); + nu_local = nu[type[i]][type[j]][type[k]]; + if (nu_local == 0.0) continue; + interaction_ddd(nu_local, + r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); f[i][0] -= fj[0] + fk[0]; f[i][1] -= fj[1] + fk[1]; @@ -169,6 +172,12 @@ void PairATM::coeff(int narg, char **arg) error->all(FLERR,"Incorrect args for pair coefficients"); if (!allocated) allocate(); + int n = atom->ntypes; + for (int i = 0; i <= n; i++) + for (int j = 0; j <= n; j++) + for (int k = 0; k <= n; k++) + nu[i][j][k] = 0.0; + int ilo,ihi,jlo,jhi,klo,khi; force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); @@ -229,7 +238,9 @@ void PairATM::write_restart(FILE *fp) 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]) for (k = i; k <= atom->ntypes; k++) fwrite(&nu[i][j][k],sizeof(double),1,fp); + if (setflag[i][j]) + for (k = i; k <= atom->ntypes; k++) + fwrite(&nu[i][j][k],sizeof(double),1,fp); } } } diff --git a/src/MANYBODY/pair_atm.h b/src/MANYBODY/pair_atm.h index b5bfc64010..45a6cda344 100644 --- a/src/MANYBODY/pair_atm.h +++ b/src/MANYBODY/pair_atm.h @@ -11,10 +11,6 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -/* ---------------------------------------------------------------------- - Contributing author: Sergey Lishchuk -------------------------------------------------------------------------- */ - #ifdef PAIR_CLASS PairStyle(atm,PairATM) @@ -46,9 +42,9 @@ class PairATM : public Pair { double cut_global, cut_sixth; double ***nu; - protected: - virtual void allocate(); - void interaction_ddd(double, double, double, double, double, double *, double *, double *, double *, double *, int, double &); + void allocate(); + void interaction_ddd(double, double, double, double, double, double *, + double *, double *, double *, double *, int, double &); }; } diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 4871fe0c40..8b47eff624 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -20,12 +20,12 @@ Please cite the related publication: Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "atom_vec_spin.h" #include "comm.h" @@ -54,7 +54,7 @@ AtomVecSpin::AtomVecSpin(LAMMPS *lmp) : AtomVec(lmp) size_data_atom = 9; size_data_vel = 4; xcol_data = 4; - + atom->sp_flag = 1; } diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 54818a9b70..b67f62d53d 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -18,11 +18,11 @@ Please cite the related publication: Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include -#include +#include #include "atom.h" #include "compute_spin.h" #include "domain.h" diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index 97b33197ce..cb34465482 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -18,13 +18,13 @@ Please cite the related publication: Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ #include -#include -#include -#include +#include +#include +#include #include "atom.h" #include "atom_vec_ellipsoid.h" diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index d91636af58..b75f03212a 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -18,12 +18,12 @@ Please cite the related publication: Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "atom_vec.h" @@ -59,8 +59,9 @@ static const char cite_fix_nve_spin[] = "title={Massively parallel symplectic algorithm for coupled magnetic spin " "dynamics and molecular dynamics},\n" "author={Tranchida, J and Plimpton, SJ and Thibaudeau, P and Thompson, AP},\n" - "journal={arXiv preprint arXiv:1801.10233},\n" - "year={2018}\n" + "journal={Journal of Computational Physics},\n" + "year={2018},\n" + "publisher={Elsevier}\n" "}\n\n"; enum{NONE}; diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index eedf0becb7..b908478952 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -18,13 +18,13 @@ Please cite the related publication: Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include -#include +#include +#include +#include +#include #include "atom.h" #include "domain.h" diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index acb7ffe548..398206b26e 100644 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -18,12 +18,12 @@ Please cite the related publication: Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "comm.h" diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 07ae684939..b792969c5d 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -18,12 +18,12 @@ Please cite the related publication: Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "comm.h" diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 7b05d7337e..1b7b36b6db 100644 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -18,12 +18,12 @@ Please cite the related publication: Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "comm.h" diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index e9e7c1fb3f..315b691d17 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -18,12 +18,12 @@ Please cite the related publication: Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "comm.h" @@ -436,9 +436,9 @@ void PairSpinMagelec::compute_magelec_mech(int i, int j, double fi[3], double sp meiy *= ME_mech[itype][jtype]; meiz *= ME_mech[itype][jtype]; - fi[0] = meiy*vz - meiz*vy; - fi[1] = meiz*vx - meix*vz; - fi[2] = meix*vy - meiy*vx; + fi[0] += meiy*vz - meiz*vy; + fi[1] += meiz*vx - meix*vz; + fi[2] += meix*vy - meiy*vx; } diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index d74db638bd..0daafad756 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -18,12 +18,12 @@ Please cite the related publication: Tranchida, J., Plimpton, S. J., Thibaudeau, P., & Thompson, A. P. (2018). Massively parallel symplectic algorithm for coupled magnetic spin dynamics - and molecular dynamics. arXiv preprint arXiv:1801.10233. + and molecular dynamics. Journal of Computational Physics. ------------------------------------------------------------------------- */ -#include -#include -#include +#include +#include +#include #include "atom.h" #include "comm.h" diff --git a/src/balance.cpp b/src/balance.cpp index 86deb55b47..7dd13e8766 100644 --- a/src/balance.cpp +++ b/src/balance.cpp @@ -350,13 +350,13 @@ void Balance::command(int narg, char **arg) domain->set_local_box(); // move particles to new processors via irregular() + // set disable = 0, so weights migrate with atoms for imbfinal calculation if (domain->triclinic) domain->x2lamda(atom->nlocal); Irregular *irregular = new Irregular(lmp); if (wtflag) fixstore->disable = 0; if (style == BISECTION) irregular->migrate_atoms(1,1,rcb->sendproc); else irregular->migrate_atoms(1); - if (wtflag) fixstore->disable = 1; delete irregular; if (domain->triclinic) domain->lamda2x(atom->nlocal); @@ -377,9 +377,11 @@ void Balance::command(int narg, char **arg) } // imbfinal = final imbalance + // set disable = 1, so weights no longer migrate with atoms double maxfinal; double imbfinal = imbalance_factor(maxfinal); + if (wtflag) fixstore->disable = 1; // stats output @@ -540,6 +542,8 @@ void Balance::weight_storage(char *prefix) fixstore = (FixStore *) modify->fix[modify->nfix-1]; } else fixstore = (FixStore *) modify->fix[ifix]; + // do not carry weights with atoms during normal atom migration + fixstore->disable = 1; if (prefix) delete [] fixargs[0]; diff --git a/src/fix_balance.cpp b/src/fix_balance.cpp index b2f545c73f..e748e0ae31 100644 --- a/src/fix_balance.cpp +++ b/src/fix_balance.cpp @@ -114,6 +114,7 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) : if (nevery) force_reneighbor = 1; lastbalance = -1; + next_reneighbor = -1; // compute initial outputs @@ -248,6 +249,10 @@ void FixBalance::pre_neighbor() if (!pending) return; imbfinal = balance->imbalance_factor(maxloadperproc); pending = 0; + + // set disable = 1, so weights no longer migrate with atoms + + if (wtflag) balance->fixstore->disable = 1; } /* ---------------------------------------------------------------------- @@ -275,21 +280,23 @@ void FixBalance::rebalance() // reset proc sub-domains // check and warn if any proc's subbox is smaller than neigh skin - // since may lead to lost atoms in exchange() + // since may lead to lost atoms in comm->exchange() if (domain->triclinic) domain->set_lamda_box(); domain->set_local_box(); domain->subbox_too_small_check(neighbor->skin); // move atoms to new processors via irregular() - // only needed if migrate_check() says an atom moves to far + // for non-RCB only needed if migrate_check() says an atom moves too far // else allow caller's comm->exchange() to do it + // set disable = 0, so weights migrate with atoms + // important to delay disable = 1 until after pre_neighbor imbfinal calc + // b/c atoms may migrate again in comm->exchange() if (domain->triclinic) domain->x2lamda(atom->nlocal); if (wtflag) balance->fixstore->disable = 0; if (lbstyle == BISECTION) irregular->migrate_atoms(0,1,sendproc); else if (irregular->migrate_check()) irregular->migrate_atoms(); - if (wtflag) balance->fixstore->disable = 1; if (domain->triclinic) domain->lamda2x(atom->nlocal); // invoke KSpace setup_grid() to adjust to new proc sub-domains diff --git a/src/fix_store.cpp b/src/fix_store.cpp index 3b1f3dca77..350e120972 100644 --- a/src/fix_store.cpp +++ b/src/fix_store.cpp @@ -154,8 +154,6 @@ void FixStore::reset_global(int nrow_caller, int ncol_caller) if (vecflag) memory->create(vstore,nrow,"fix/store:vstore"); else memory->create(astore,nrow,ncol,"fix/store:astore"); memory->create(rbuf,nrow*ncol+2,"fix/store:rbuf"); - - // printf("AAA HOW GET HERE\n"); } /* ---------------------------------------------------------------------- diff --git a/src/reset_ids.cpp b/src/reset_ids.cpp index 8a33cd535b..fd898bd3ab 100644 --- a/src/reset_ids.cpp +++ b/src/reset_ids.cpp @@ -16,6 +16,7 @@ #include "atom_vec.h" #include "domain.h" #include "comm.h" +#include "special.h" #include "memory.h" #include "error.h" @@ -44,7 +45,7 @@ void ResetIDs::command(int narg, char **arg) } // create an atom map if one doesn't exist already - + int mapflag = 0; if (atom->map_style == 0) { mapflag = 1; @@ -93,7 +94,7 @@ void ResetIDs::command(int narg, char **arg) // forward_comm_array acquires new IDs for ghost atoms double **newIDs; - memory->create(newIDs,nall,1,"reset_ids:newIDs"); + memory->create(newIDs,nall,1,"reset_ids:newIDs"); for (int i = 0; i < nlocal; i++) { newIDs[i][0] = tag[i]; @@ -105,7 +106,7 @@ void ResetIDs::command(int narg, char **arg) // loop over bonds, angles, etc and reset IDs in stored topology arrays // only necessary for molecular = 1, not molecular = 2 // badcount = atom IDs that could not be found - + int badcount = 0; if (atom->molecular == 1) { @@ -232,8 +233,15 @@ void ResetIDs::command(int narg, char **arg) atom->map_init(); atom->map_set(); + // need to update exclusions with new atom IDs + + if (atom->molecular == 1) { + Special special(lmp); + special.build(); + } + // delete temporary atom map - + if (mapflag) { atom->map_delete(); atom->map_style = 0; From 8447d8dd9199555d136f6dd92d389f07cc03d320 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Fri, 13 Jul 2018 14:34:50 -0500 Subject: [PATCH 276/675] Updated doc pages for pair body rounded/polygon and rounded/polyhedra --- doc/src/pair_body_rounded_polygon.txt | 16 +++++++++++----- doc/src/pair_body_rounded_polyhedron.txt | 20 +++++++++++++------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index 5ef4a9104b..55bd8e51d4 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -18,8 +18,6 @@ mu = normal friction coefficient during gross sliding delta_ua = multiple contact scaling factor cutoff = global separation cutoff for interactions (distance units), see below for definition :pre -NOTE: what does gross sliding mean? - [Examples:] pair_style body/rounded/polygon 20.0 5.0 0.0 1.0 0.5 @@ -38,7 +36,7 @@ body particles. This pairwise interaction between rounded polygons is described in "Fraige"_#Fraige, where a polygon does not have sharp corners, but is rounded at its vertices by circles centered on each vertex with a -specified diameter. The edges of the polygon are defined bewteen +specified diameter. The edges of the polygon are defined between pairs of adjacent vertices. The circle diameter for each polygon is specified in the data file read by the "read data"_read_data.html command. This is a 2d discrete element model (DEM) which allows for @@ -47,7 +45,7 @@ multiple contact points. Note that when two particles interact, the effective surface of each polygon particle is displaced outward from each of its vertices and edges by half its circle diameter. The interaction forces and -energies bewteen two particles are defined with respect to the +energies between two particles are defined with respect to the separation of their respective rounded surfaces, not by the separation of the vertices and edges themselves. @@ -65,7 +63,15 @@ explains how contact is defined? Do we need an equation(s) that explain what the params in pair style and coeff mean, for damping and spring constants? Or do we just want to reference the paper for that? -NOTE: say something about no frictional history ? +In "Fraige"_#Fraige, the tangential friction force between two particles +that are in contact is modeled differently prior to gross sliding +(i.e. static friction) and during gross-sliding (kinetic friction). +The latter takes place when the tangential deformation exceeds +the Coulomb frictional limit. In the current implementation, however, +we do not take into account frictional history, i.e. we do not keep track +of how many time steps the two particles have been in contact +nor calculate the tangential deformation. We assume that gross sliding +takes place right when two particles are in contact. The following coefficients must be defined for each pair of atom types via the "pair_coeff"_pair_coeff.html command as in the examples above, diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index 81c69fdd62..5f43ebee63 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -16,9 +16,7 @@ c_n = normal damping coefficient c_t = tangential damping coefficient mu = normal friction coefficient during gross sliding delta_ua = multiple contact scaling factor -cutoff = global sepration cutoff for interactions (distance units), see below for definition :pre - -NOTE: what does gross sliding mean? +cutoff = global separation cutoff for interactions (distance units), see below for definition :pre [Examples:] @@ -39,16 +37,16 @@ This pairwise interaction between rounded polyhedra is described in "Wang"_#Wang, where a polyhedron does not have sharp corners and edges, but is rounded at its vertices and edges by spheres centered on each vertex with a specified diameter. The edges if the polyhedron -are defined bewteen pairs of adjacent vertices. Its faces are defined +are defined between pairs of adjacent vertices. Its faces are defined by a loop of edges. The sphere diameter for each polygon is specified in the data file read by the "read data"_read_data.html command. This is a discrete element model (DEM) which allows for multiple contact points. -Note that when two particles interaact, the effective surface of each +Note that when two particles interact, the effective surface of each polyhedron particle is displaced outward from each of its vertices, edges, and faces by half its sphere diameter. The interaction forces -and energies bewteen two particles are defined with respect to the +and energies between two particles are defined with respect to the separation of their respective rounded surfaces, not by the separation of the vertices, edges, and faces themselves. @@ -66,7 +64,15 @@ explains how contact is defined? Do we need an equation(s) that explain what the params in pair style and coeff mean, for damping and spring constants? Or do we just want to reference the paper for that? -NOTE: say something about no frictional history ? +In "Wang"_#Wang, the tangential friction force between two particles +that are in contact is modeled differently prior to gross sliding +(i.e. static friction) and during gross-sliding (kinetic friction). +The latter takes place when the tangential deformation exceeds +the Coulomb frictional limit. In the current implementation, however, +we do not take into account frictional history, i.e. we do not keep track +of how many time steps the two particles have been in contact +nor calculate the tangential deformation. We assume that gross sliding +takes place right when two particles are in contact. The following coefficients must be defined for each pair of atom types via the "pair_coeff"_pair_coeff.html command as in the examples above, From eeaf90722775d57e12a5505d84bd27358c902918 Mon Sep 17 00:00:00 2001 From: sergeylishchuk Date: Fri, 13 Jul 2018 21:36:40 +0100 Subject: [PATCH 277/675] Resolved merge conflict. --- doc/src/pair_atm.txt | 67 --------------------------------------- src/MANYBODY/pair_atm.cpp | 9 ------ 2 files changed, 76 deletions(-) diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index a79641c6c2..96e002f2f8 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -21,14 +21,10 @@ pair_coeff * * * 0.072 :pre pair_style hybrid/overlay lj/cut 6.5 atm 2.5 pair_coeff * * lj/cut 1.0 1.0 -<<<<<<< HEAD pair_coeff 1 1 atm 1 0.064 pair_coeff 1 1 atm 2 0.080 pair_coeff 1 2 atm 2 0.100 pair_coeff 2 2 atm 2 0.125 :pre -======= -pair_coeff * * atm * 0.072 :pre ->>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495 [Description:] @@ -37,7 +33,6 @@ potential for the energy E of a system of atoms as :c,image(Eqs/pair_atm.jpg) -<<<<<<< HEAD where nu is the three-body interaction strength, and the distances between pairs of atoms r12, r23 and r31 and the angles gamma1, gamma2 and gamma3 @@ -47,18 +42,11 @@ are shown at the diagram: There is no \"central\" atom, the interaction is symmetric with respect to permutation of atom types. -======= -where r12, r23 and r31 are the distances between pairs of atoms, -gamma1 is the angle ???, gamma2 is the angle ???, gamma3 is the angle -???, and nu is the three-body interaction strength. -A diagram of the 3 atoms might help here. ->>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495 The {atm} potential is typically used in combination with a two-body potential using the "pair_style hybrid/overlay"_pair_hybrid.html command as in the example above. -<<<<<<< HEAD The potential is calculated if all three atoms are in the "neighbor list"_neighbor.html and the distances between atoms satisfy r12 r23 r31 > cutoff^3. @@ -90,57 +78,6 @@ pair_coeff 2 1 1 nu :pre Thus, to specify all ATM interactions between two atom types (eg 1 and 2) it is sufficient to provide four pair_coeff commands, eg: -======= --------------------- - -The rest of this section needs some work to make things more clear. - -You need to explain exactly how the cutoff is used. - -I don't think this is true: -The calculations are not undertaken if the distances between atoms satisfy -r12 r23 r31 > cutoff^3. - -If r12 > cutoff+skin, then that pair of atoms is not in -the neighbor list, regardless of what r23 and r31 are, -so how can it be computed? - -What does this line mean? -Virtual cutoff distance based on a user defined -tolerance tol is not used. - -You must explain exactly what the user needs to put -in the input script to model single element and multi-element -systems. - -You refer to an ATM potential file, but I don't think there is -such a thing. There is no code in pair_atm.cpp that reads -a file. Isn't it all pair_coeff commands? In LAMMPS lingo, -potential files are the files in the potentials dir. -There is no such thing for ATM, right? - -What is the geometry of i,j,k interactions - you don't explain it. -Which one is the central atom? - -You say all the K values for a particular I,J must be specified. -I don't see where the code checks for this. - -This is the way to word the explation of the per-pair values required: - -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 restart files read by the -"read_restart"_read_restart.html commands: - -?? explain what K is and what are the allowed values -nu (energy/distance^9 units) :ul - -Again: what file are you talking about? -The Axilrod-Teller-Muto potential file must contain entries for all the -elements listed in the pair_coeff command. It can also contain -entries for additional elements not being used in a particular -simulation; LAMMPS ignores those entries. ->>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495 pair_coeff 1 1 1 nu1 pair_coeff 1 1 2 nu2 @@ -231,8 +168,4 @@ LAMMPS"_Section_start.html#start_3 section for more info. :link(Axilrod) [(Axilrod)] Axilrod and Teller, J Chem Phys, 11, 299 (1943); -<<<<<<< HEAD Muto, Nippon Sugaku-Buturigakkwaishi 17, 629 (1943). -======= -Muto, Nippon, Sugaku, Butsuri, Gakkwaishi 17, 629 (1943). ->>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495 diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index a9731a46d8..0db076acd0 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -49,13 +49,8 @@ PairATM::PairATM(LAMMPS *lmp) : Pair(lmp) if (lmp->citeme) lmp->citeme->add(cite_atm_package); single_enable = 0; -<<<<<<< HEAD restartinfo = 1; one_coeff = 0; -======= - //restartinfo = 1; // it does save restart info, correct? - //one_coeff = 0; // it does not only use * *, correct? ->>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495 manybody_flag = 1; } @@ -134,13 +129,9 @@ void PairATM::compute(int eflag, int vflag) r6 = rij2*rik2*rjk2; if (r6 > cut_sixth) continue; -<<<<<<< HEAD nu_local = nu[type[i]][type[j]][type[k]]; if (nu_local == 0.0) continue; interaction_ddd(nu_local, -======= - interaction_ddd(nu[type[i]][type[j]][type[k]], ->>>>>>> 75ec0a6a990ae6eec59ca7fa80c8cff14d561495 r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); f[i][0] -= fj[0] + fk[0]; From e7f4e059cf1d552d9d809f48d26ff7ee4778f996 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 13 Jul 2018 16:46:06 -0600 Subject: [PATCH 278/675] convert to KSspace style rather than fix --- examples/scafacos/in.scafacos | 25 ++- lib/scafacos/Install.py | 168 ++++++++++++++++ src/Makefile | 4 +- src/USER-SCAFACOS/Install.sh | 21 +- src/USER-SCAFACOS/fix_scafacos.cpp | 7 +- src/USER-SCAFACOS/fix_scafacos.h | 50 +++++ src/USER-SCAFACOS/scafacos.cpp | 308 +++++++++++++++++++++++++++++ src/USER-SCAFACOS/scafacos.h | 69 +++++++ 8 files changed, 626 insertions(+), 26 deletions(-) create mode 100644 lib/scafacos/Install.py create mode 100644 src/USER-SCAFACOS/scafacos.cpp create mode 100644 src/USER-SCAFACOS/scafacos.h diff --git a/examples/scafacos/in.scafacos b/examples/scafacos/in.scafacos index ae6b8e0193..f9b6733eef 100644 --- a/examples/scafacos/in.scafacos +++ b/examples/scafacos/in.scafacos @@ -5,17 +5,32 @@ atom_style full read_data data.NaCl -velocity all set 0.0 0.0 0.0 mom no +replicate 8 8 8 -pair_style zero 1.0 -pair_coeff * * +velocity all create 1.5 49893 neighbor 1.0 bin neigh_modify delay 0 -# using the fmm solver with a tolerance in energy of 10^-3 -fix 1 all scafacos fmm tolerance energy 0.001 +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p3m tolerance field 0.001 timestep 0.005 +thermo 10 run 100 diff --git a/lib/scafacos/Install.py b/lib/scafacos/Install.py new file mode 100644 index 0000000000..5d4ca7e96a --- /dev/null +++ b/lib/scafacos/Install.py @@ -0,0 +1,168 @@ +#!/usr/bin/env python + +# Install.py tool to download, unpack, build, and link to the Scafacos library +# used to automate the steps described in the README file in this dir + +from __future__ import print_function +import sys,os,re,subprocess + +# help message + +help = """ +Syntax from src dir: make lib-scafacos args="-b" + or: make lib-scafacos args="-p /usr/local/scafacos" +Syntax from lib dir: python Install.py -b + or: python Install.py -p /usr/local/scafacos + +specify zero or more options, order does not matter + + -b = download and build the Scafacos library + -p = specify folder of existing Scafacos installation + + always creates includelink, liblink to Scafacos dirs + +Example: + +make lib-scafacos args="-b" # download/build in lib/scafacos/scafacos +make lib-scafacos args="-p $HOME/scafacos" # use existing Scafacos installation in $HOME +""" + +# settings + +#version = "voro++-0.4.6" +#url = "http://math.lbl.gov/voro++/download/dir/%s.tar.gz" % version + +# print error message or help + +def error(str=None): + if not str: print(help) + else: print("ERROR",str) + sys.exit() + +# expand to full path name +# process leading '~' or relative path + +def fullpath(path): + return os.path.abspath(os.path.expanduser(path)) + +def which(program): + def is_exe(fpath): + return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + + fpath, fname = os.path.split(program) + if fpath: + if is_exe(program): + return program + else: + for path in os.environ["PATH"].split(os.pathsep): + path = path.strip('"') + exe_file = os.path.join(path, program) + if is_exe(exe_file): + return exe_file + + return None + +def geturl(url,fname): + success = False + + if which('curl') != None: + cmd = 'curl -L -o "%s" %s' % (fname,url) + try: + subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) + success = True + except subprocess.CalledProcessError as e: + print("Calling curl failed with: %s" % e.output.decode('UTF-8')) + + if not success and which('wget') != None: + cmd = 'wget -O "%s" %s' % (fname,url) + try: + subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) + success = True + except subprocess.CalledProcessError as e: + print("Calling wget failed with: %s" % e.output.decode('UTF-8')) + + if not success: + error("Failed to download source code with 'curl' or 'wget'") + return + +# parse args + +args = sys.argv[1:] +nargs = len(args) +#if nargs == 0: error() + +homepath = "." + +buildflag = False +pathflag = False +linkflag = True + +iarg = 0 +while iarg < nargs: + if args[iarg] == "-v": + if iarg+2 > nargs: error() + version = args[iarg+1] + iarg += 2 + elif args[iarg] == "-p": + if iarg+2 > nargs: error() + scafacospath = fullpath(args[iarg+1]) + pathflag = True + iarg += 2 + elif args[iarg] == "-b": + buildflag = True + iarg += 1 + else: error() + +homepath = fullpath(homepath) +#homedir = "%s/%s" % (homepath,version) +homedir = homepath + +if (pathflag): + if not os.path.isdir(scafacospath): error("Scafacos path does not exist") + homedir =scafacospath + +if (buildflag and pathflag): + error("Cannot use -b and -p flag at the same time") + +#if (not buildflag and not pathflag): +# error("Have to use either -b or -p flag") + +# download and unpack Scafacos tarball + +if buildflag: + print("Downloading Scafacos ...") + geturl(url,"%s/%s.tar.gz" % (homepath,version)) + + print("Unpacking Voro++ tarball ...") + if os.path.exists("%s/%s" % (homepath,version)): + cmd = 'rm -rf "%s/%s"' % (homepath,version) + subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) + cmd = 'cd "%s"; tar -xzvf %s.tar.gz' % (homepath,version) + subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) + os.remove("%s/%s.tar.gz" % (homepath,version)) + if os.path.basename(homedir) != version: + if os.path.exists(homedir): + cmd = 'rm -rf "%s"' % homedir + subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) + os.rename("%s/%s" % (homepath,version),homedir) + +# build Scafacos + +if buildflag: + print("Building Scafacos ...") + cmd = 'cd "%s"; make CXX=g++ CFLAGS="-fPIC -O3"' % homedir + txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) + print(txt.decode('UTF-8')) + +# create 2 links in lib/scafacos to Scafacos include/lib dirs + +if linkflag: + print("Creating links to Scafacos include and lib files") + if os.path.isfile("includelink") or os.path.islink("includelink"): + os.remove("includelink") + if os.path.isfile("liblink") or os.path.islink("liblink"): + os.remove("liblink") + cmd = 'ln -s "scafacos/include" includelink' + subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) + cmd = 'ln -s "scafacos/lib" liblink' + subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) diff --git a/src/Makefile b/src/Makefile index 948d203cfe..5ca5e7ddc6 100644 --- a/src/Makefile +++ b/src/Makefile @@ -62,8 +62,8 @@ PACKUSER = user-atc user-awpmd user-bocs user-cgdna user-cgsdk user-colvars \ user-intel user-lb user-manifold user-meamc user-meso \ user-mgpt user-misc user-mofff user-molfile \ user-netcdf user-omp user-phonon user-qmmm user-qtb \ - user-quip user-reaxc user-smd user-smtbq user-sph user-tally \ - user-uef user-vtk + user-quip user-reaxc user-scafacos user-smd user-smtbq \ + user-sph user-tally user-uef user-vtk PACKLIB = compress gpu kim kokkos latte meam mpiio mscg poems \ python reax voronoi \ diff --git a/src/USER-SCAFACOS/Install.sh b/src/USER-SCAFACOS/Install.sh index ace610050b..964212fc51 100755 --- a/src/USER-SCAFACOS/Install.sh +++ b/src/USER-SCAFACOS/Install.sh @@ -37,31 +37,18 @@ done if (test $1 = 1) then if (test -e ../Makefile.package) then + sed -i -e 's/`.*scafacos.*` //' ../Makefile.package sed -i -e 's/[^ \t]*scafacos[^ \t]* //' ../Makefile.package sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/scafacos/includelink |' ../Makefile.package sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/scafacos/liblink |' ../Makefile.package - #sed -i -e 's|^PKG_LIB =[ \t]*|&-lscafacos |' ../Makefile.package - sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(scafacos_SYSINC) |' ../Makefile.package - sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(scafacos_SYSLIB) |' ../Makefile.package - sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(scafacos_SYSPATH) |' ../Makefile.package - fi - - if (test -e ../Makefile.package.settings) then - sed -i -e '/^include.*scafacos.*$/d' ../Makefile.package.settings - # multiline form needed for BSD sed on Macs - sed -i -e '4 i \ -include ..\/..\/lib\/scafacos\/Makefile.lammps -' ../Makefile.package.settings + sed -i -e 's%^PKG_LIB =[ \t]*%&`grep Libs: ../../lib/scafacos/liblink/pkgconfig/scafacos.pc | cut -d " " -f 2-` %' ../Makefile.package fi elif (test $1 = 0) then - if (test -e ../Makefile.package) then + if (test -e ../Makefile.package) then + sed -i -e 's/`.*scafacos.*` //' ../Makefile.package sed -i -e 's/[^ \t]*scafacos[^ \t]* //' ../Makefile.package fi - if (test -e ../Makefile.package.settings) then - sed -i -e '/^include.*scafacos.*$/d' ../Makefile.package.settings - fi - fi diff --git a/src/USER-SCAFACOS/fix_scafacos.cpp b/src/USER-SCAFACOS/fix_scafacos.cpp index f82b80dd5f..08aebb9f22 100644 --- a/src/USER-SCAFACOS/fix_scafacos.cpp +++ b/src/USER-SCAFACOS/fix_scafacos.cpp @@ -17,6 +17,7 @@ #include #include +#include #include "fix_scafacos.h" #include "atom.h" #include "comm.h" @@ -81,7 +82,7 @@ FixScafacos::FixScafacos(LAMMPS *lmp, int narg, char **arg) : else error->all(FLERR,"Illegal fix scafacos command"); ++arg_index; - tolerance_value = atof(arg[arg_index]); + tolerance_value = atof(arg[arg_index]); ++arg_index; } else @@ -439,6 +440,7 @@ bool FixScafacos::check_result(FCSResult result, int comm_rank) { if (result) { + printf("ScaFaCoS Error: Caught error on task %d.\n", comm_rank); std::string err_msg; std::stringstream ss; @@ -446,8 +448,9 @@ bool FixScafacos::check_result(FCSResult result, int comm_rank) << fcs_result_get_message(result) << "\n"; err_msg = ss.str(); - error->one(FLERR, err_msg.c_str()); + error -> all(FLERR, err_msg.c_str()); fcs_result_destroy(result); } return true; } + diff --git a/src/USER-SCAFACOS/fix_scafacos.h b/src/USER-SCAFACOS/fix_scafacos.h index c48f4d8388..ffd4a94d32 100644 --- a/src/USER-SCAFACOS/fix_scafacos.h +++ b/src/USER-SCAFACOS/fix_scafacos.h @@ -111,4 +111,54 @@ class FixScafacos : public Fix { /* ERROR/WARNING messages: +E: Must use units metal with fix latte command + +UNDOCUMENTED + +E: Fix latte currently runs only in serial + +UNDOCUMENTED + +E: LAMMPS is linked against incompatible LATTE library + +UNDOCUMENTED + +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: Fix latte does not yet support a LAMMPS calculation of a Coulomb potential + +UNDOCUMENTED + +E: Could not find fix latte compute ID + +UNDOCUMENTED + +E: Fix latte compute ID does not compute pe/atom + +UNDOCUMENTED + +E: Fix latte requires 3d problem + +UNDOCUMENTED + +E: Fix latte cannot compute Coulomb potential + +UNDOCUMENTED + +E: Fix latte requires 3d simulation + +UNDOCUMENTED + +W: Fix latte should come after all other integration fixes + +UNDOCUMENTED + +E: Internal LATTE problem + +UNDOCUMENTED + */ diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp new file mode 100644 index 0000000000..89c67b828b --- /dev/null +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -0,0 +1,308 @@ +/* ---------------------------------------------------------------------- + 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: Rene Halver (JSC) +------------------------------------------------------------------------- */ + +#include +#include +#include +#include "scafacos.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "force.h" +#include "memory.h" +#include "error.h" + +// ScaFaCoS library + +#include +#include +#include "fcs.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +Scafacos::Scafacos(LAMMPS *lmp, int narg, char **arg) : KSpace(lmp, narg, arg) +{ + if (narg < 2) error->all(FLERR,"Illegal scafacos command"); + + int n = strlen(arg[0]) + 1; + method = new char[n]; + strcpy(method,arg[0]); + + // additional args + + int tflag = 0; + + int iarg = 1; + while (iarg < narg) { + if (strcmp(arg[iarg],"tolerance") == 0) { + if (iarg+3 > narg) error->all(FLERR,"Illegal scafacos command"); + tflag = 1; + if (strcmp(arg[iarg+1],"energy") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; + else if (strcmp(arg[iarg+1],"energy_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_ENERGY_REL; + else if (strcmp(arg[iarg+1],"field") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_FIELD; + else if (strcmp(arg[iarg+1],"field_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_FIELD_REL; + else if (strcmp(arg[iarg+1],"potential") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL; + else if (strcmp(arg[iarg+1],"potential_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL_REL; + else error->all(FLERR,"Illegal scafacos command"); + tolerance = force->numeric(FLERR,arg[iarg+2]); + iarg += 3; + } else error->all(FLERR,"Illegal scafacos command"); + } + + if (!tflag) error->all(FLERR,"Must set tolerance in scafacos command"); + + // initializations + + me = comm->me; + initialized = 0; + + maxatom = 0; + epot = NULL; + efield = NULL; +} + +/* ---------------------------------------------------------------------- */ + +Scafacos::~Scafacos() +{ + delete [] method; + + memory->destroy(epot); + memory->destroy(efield); + + // NOTE: any clean-up call to ScaFaCoS needed? +} + +/* ---------------------------------------------------------------------- */ + +void Scafacos::init() +{ + // error checks + // NOTE: allow triclinic at some point + + if (domain->dimension == 2) + error->all(FLERR,"Cannot use ScaFaCoS with 2d simulation"); + + if (domain->triclinic) + error->all(FLERR,"Cannot use ScaFaCoS with triclinic domain yet"); + + // one-time initialization of ScaFaCoS + + if (!initialized) { + result = fcs_init(&fcs,method,world); + check_result(result); + + setup_handle(); + + result = fcs_set_tolerance(fcs,tolerance_type,tolerance); + check_result(result); + + if (me == 0) fcs_print_parameters(fcs); + + double **x = atom->x; + double *q = atom->q; + int nlocal = atom->nlocal; + + result = fcs_tune(fcs,nlocal,&x[0][0],q); + } + + initialized = 1; +} + +/* ---------------------------------------------------------------------- */ + +void Scafacos::setup() {} + +/* ---------------------------------------------------------------------- */ + +void Scafacos::compute(int eflag, int vflag) +{ + double **x = atom->x; + double *q = atom->q; + int nlocal = atom->nlocal; + + // if simluation box has changed, call fcs_tune() + + if (box_has_changed()) { + printf("AAA\n"); + setup_handle(); + result = fcs_tune(fcs,nlocal,&x[0][0],q); + check_result(result); + } + + // grow epot & efield if necessary + + if (nlocal > maxatom) { + memory->destroy(epot); + memory->destroy(efield); + maxatom = atom->nmax; + memory->create(epot,maxatom,"scafacos:epot"); + memory->create(efield,maxatom,3,"scafacos:efield"); + + } + + // initialize epot & efield + // NOTE: is this necessary? + + for (int i = 0; i < nlocal; i++) { + epot[i] = 0.0; + efield[i][0] = efield[i][1] = efield[i][2] = 0.0; + } + + // ScaFaCoS calculation of full Coulombics + + result = fcs_run(fcs,nlocal,&x[0][0],q,&efield[0][0],epot); + check_result(result); + + // apply Efield to each particle + // accumulate total energy + + double **f = atom->f; + + double qone; + double myeng = 0.0; + + for (int i = 0; i < nlocal; i++) { + qone = q[i]; + f[i][0] += qone * efield[i][0]; + f[i][1] += qone * efield[i][1]; + f[i][2] += qone * efield[i][2]; + myeng += 0.5 * qone * epot[i]; + } + + MPI_Allreduce(&myeng,&energy,1,MPI_DOUBLE,MPI_SUM,world); +} + +/* ---------------------------------------------------------------------- + memory usage of local arrays +------------------------------------------------------------------------- */ + +double Scafacos::memory_usage() +{ + double bytes = 0.0; + bytes += maxatom * sizeof(double); + bytes += 3*maxatom * sizeof(double); + return bytes; +} + +/* ---------------------------------------------------------------------- + setup of ScaFaCoS handle with common parameters +------------------------------------------------------------------------- */ + +void Scafacos::setup_handle() +{ + // store simulation box params + // NOTE: this assumes orthogonal box + // NOTE: total particles may not be a 4-byte int + // NOTE: what does SCFCS mean by offset? + // it's an integer flag in LAMMPS + + old_periodicity[0] = domain->xperiodic; + old_periodicity[1] = domain->yperiodic; + old_periodicity[2] = domain->zperiodic; + + old_offset[0] = domain->boundary[0][0]; + old_offset[1] = domain->boundary[1][0]; + old_offset[2] = domain->boundary[2][0]; + + old_box_x[0] = domain->prd[0]; + old_box_x[1] = old_box_x[2] = 0.0; + old_box_y[1] = domain->prd[1]; + old_box_y[0] = old_box_y[2] = 0.0; + old_box_z[2] = domain->prd[2]; + old_box_z[1] = old_box_z[0] = 0.0; + + old_natoms = atom->natoms; + + // set all required ScaFaCoS params + + result = fcs_set_box_a(fcs,old_box_x); + check_result(result); + + result = fcs_set_box_b(fcs,old_box_y); + check_result(result); + + result = fcs_set_box_c(fcs,old_box_z); + check_result(result); + + result = fcs_set_box_origin(fcs,old_offset); + check_result(result); + + result = fcs_set_periodicity(fcs,old_periodicity); + check_result(result); + + result = fcs_set_total_particles(fcs,old_natoms); + check_result(result); + + // NOTE: for now disable short-range calculations within LAMMPS + + int near_field_flag = 0; + result = fcs_set_near_field_flag(fcs,near_field_flag); + check_result(result); +} + +/* ---------------------------------------------------------------------- + check if box parameters changed, requiring a new call to fcs_tune +------------------------------------------------------------------------- */ + +bool Scafacos::box_has_changed() +{ + int *periodicity = domain->periodicity; + double *prd = domain->prd; + + bool changed = + (periodicity[0] != old_periodicity[0]) || + (periodicity[1] != old_periodicity[1]) || + (periodicity[2] != old_periodicity[2]) || + (domain->boundary[0][0] != old_offset[0]) || + (domain->boundary[1][0] != old_offset[1]) || + (domain->boundary[2][0] != old_offset[2]) || + (prd[0] != old_box_x[0]) || + (prd[1] != old_box_y[1]) || + (prd[2] != old_box_z[2]) || + (atom->natoms != old_natoms); + + return changed; +} + +/* ---------------------------------------------------------------------- + check ScaFaCoS result for error condition + NOTE: will all procs have same error? +------------------------------------------------------------------------- */ + +void Scafacos::check_result(FCSResult result) +{ + if (!result) return; + + std::stringstream ss; + ss << "ScaFaCoS: " << fcs_result_get_function(result) << "\n" + << fcs_result_get_message(result) << "\n"; + fcs_result_destroy(result); + std::string err_msg = ss.str(); + const char *str = err_msg.c_str(); + + error->one(FLERR,str); +} + diff --git a/src/USER-SCAFACOS/scafacos.h b/src/USER-SCAFACOS/scafacos.h new file mode 100644 index 0000000000..33911ee9fd --- /dev/null +++ b/src/USER-SCAFACOS/scafacos.h @@ -0,0 +1,69 @@ +/* -*- 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 KSPACE_CLASS + +KSpaceStyle(scafacos,Scafacos) + +#else + +#ifndef LMP_SCAFACOS_H +#define LMP_SCAFACOS_H + +#include "kspace.h" +#include "fcs.h" + +namespace LAMMPS_NS { + +class Scafacos : public KSpace { + public: + Scafacos(class LAMMPS *, int, char **); + ~Scafacos(); + void init(); + void setup(); + void compute(int, int); + double memory_usage(); + + private: + int me; + + char *method; + double tolerance; + double *epot,**efield; + int tolerance_type; + int initialized,maxatom; + + FCS fcs; // ScaFaCoS handle + FCSResult result; // result for each ScaFaCoS call + + // simulation state: box, natoms + // so ScaFaCoS can detect if changes, e.g. for NPT + + fcs_float old_box_x[3],old_box_y[3],old_box_z[3]; + fcs_float old_offset[3]; + fcs_int old_periodicity[3]; + fcs_int old_natoms; + + void check_result(FCSResult); + void setup_handle(); + bool box_has_changed(); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +*/ From d00eaef070f6d8500831f5893ec2de6dfa5041b9 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 13 Jul 2018 23:05:44 -0400 Subject: [PATCH 279/675] Allow 'set' command to change atom velocities --- python/lammps.py | 11 +++++++++++ src/set.cpp | 26 +++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/python/lammps.py b/python/lammps.py index e7d703e12a..2f4ffb642e 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -708,6 +708,12 @@ class Atom(object): self.lmp.eval("vy[%d]" % self.index), self.lmp.eval("vz[%d]" % self.index)) + @velocity.setter + def velocity(self, value): + self.lmp.set("atom", self.index, "vx", value[0]) + self.lmp.set("atom", self.index, "vy", value[1]) + self.lmp.set("atom", self.index, "vz", value[2]) + @property def force(self): return (self.lmp.eval("fx[%d]" % self.index), @@ -738,6 +744,11 @@ class Atom2D(Atom): return (self.lmp.eval("vx[%d]" % self.index), self.lmp.eval("vy[%d]" % self.index)) + @velocity.setter + def velocity(self, value): + self.lmp.set("atom", self.index, "vx", value[0]) + self.lmp.set("atom", self.index, "vy", value[1]) + @property def force(self): return (self.lmp.eval("fx[%d]" % self.index), diff --git a/src/set.cpp b/src/set.cpp index 0294f93e5d..7eca4e9a9c 100644 --- a/src/set.cpp +++ b/src/set.cpp @@ -48,7 +48,7 @@ enum{TYPE,TYPE_FRACTION,MOLECULE,X,Y,Z,CHARGE,MASS,SHAPE,LENGTH,TRI, THETA,THETA_RANDOM,ANGMOM,OMEGA, DIAMETER,DENSITY,VOLUME,IMAGE,BOND,ANGLE,DIHEDRAL,IMPROPER, MESO_E,MESO_CV,MESO_RHO,EDPD_TEMP,EDPD_CV,CC,SMD_MASS_DENSITY, - SMD_CONTACT_RADIUS,DPDTHETA,INAME,DNAME}; + SMD_CONTACT_RADIUS,DPDTHETA,INAME,DNAME,VX,VY,VZ}; #define BIG INT_MAX @@ -141,6 +141,27 @@ void Set::command(int narg, char **arg) set(Z); iarg += 2; + } else if (strcmp(arg[iarg],"vx") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); + if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); + else dvalue = force->numeric(FLERR,arg[iarg+1]); + set(VX); + iarg += 2; + + } else if (strcmp(arg[iarg],"vy") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); + if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); + else dvalue = force->numeric(FLERR,arg[iarg+1]); + set(VY); + iarg += 2; + + } else if (strcmp(arg[iarg],"vz") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); + if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); + else dvalue = force->numeric(FLERR,arg[iarg+1]); + set(VZ); + iarg += 2; + } else if (strcmp(arg[iarg],"charge") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal set command"); if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) varparse(arg[iarg+1],1); @@ -732,6 +753,9 @@ void Set::set(int keyword) else if (keyword == X) atom->x[i][0] = dvalue; else if (keyword == Y) atom->x[i][1] = dvalue; else if (keyword == Z) atom->x[i][2] = dvalue; + else if (keyword == VX) atom->v[i][0] = dvalue; + else if (keyword == VY) atom->v[i][1] = dvalue; + else if (keyword == VZ) atom->v[i][2] = dvalue; else if (keyword == CHARGE) atom->q[i] = dvalue; else if (keyword == MASS) { if (dvalue <= 0.0) error->one(FLERR,"Invalid mass in set command"); From aa3d3213c914144d0873c572363522f108ce1cb6 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 13 Jul 2018 23:06:42 -0400 Subject: [PATCH 280/675] Update set command documentation --- doc/src/set.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/src/set.txt b/doc/src/set.txt index d05660dc42..d2235d5c32 100644 --- a/doc/src/set.txt +++ b/doc/src/set.txt @@ -36,6 +36,8 @@ keyword = {type} or {type/fraction} or {mol} or {x} or {y} or {z} or \ value can be an atom-style variable (see below) {x},{y},{z} value = atom coordinate (distance units) value can be an atom-style variable (see below) + {vx},{vy},{vz} value = atom velocity (velocity units) + value can be an atom-style variable (see below) {charge} value = atomic charge (charge units) value can be an atom-style variable (see below) {dipole} values = x y z @@ -127,6 +129,7 @@ set type 3 charge 0.5 set type 1*3 charge 0.5 set atom * charge v_atomfile set atom 100*200 x 0.5 y 1.0 +set atom 100 vx 0.0 vy 0.0 vz -1.0 set atom 1492 type 3 :pre [Description:] @@ -225,7 +228,8 @@ IDs. Keywords {x}, {y}, {z}, and {charge} set the coordinates or charge of all selected atoms. For {charge}, the "atom style"_atom_style.html -being used must support the use of atomic charge. +being used must support the use of atomic charge. Keywords {vx}, {vy}, +and {vz} set the velocities of all selected atoms. Keyword {dipole} uses the specified x,y,z values as components of a vector to set as the orientation of the dipole moment vectors of the From f7d551eb5400580899cde3d2dfa9c325729bbcbc Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sun, 15 Jul 2018 08:27:55 -0500 Subject: [PATCH 281/675] Added a figure illustrating pair body rounded/polygon and rounded/polyhedron --- doc/src/JPG/pair_body_rounded.png | Bin 0 -> 650896 bytes doc/src/pair_body_rounded_polygon.txt | 2 ++ doc/src/pair_body_rounded_polyhedron.txt | 2 ++ 3 files changed, 4 insertions(+) create mode 100644 doc/src/JPG/pair_body_rounded.png diff --git a/doc/src/JPG/pair_body_rounded.png b/doc/src/JPG/pair_body_rounded.png new file mode 100644 index 0000000000000000000000000000000000000000..709105ca325764adb567f123a8797ca4f76c581e GIT binary patch literal 650896 zcmeFZg;$kb*FAgy5d;)aIt7&O6eJWlASKcuB`w`uDj^c0fOK~&p>&8yhe(5fNOyOA z>)h}A{uAH$UE_JY4-5|Hy7pc%=Uj91?%7k>n>Z9W2n6D$+!JY41OlrCfw=J(8y&u5 zEbWI2|G{vUlvBsX#-5y2{)<4|MaW4%R`*C=pK|vh8lGt0;p0n^$GLG=0F91W{w1py z8fF3dn^2+^B(~UHB_ei@28W!Y5ErzS(9Ab)h%gPeRb%M&!yidTC(@|8^_{gh*V?)L zU>v`fG=Fr#kTx~WXMtbWoh;m+?D?KPhX_9XzpI(%YdYoseevpyKK$1Ie(_2wZ~*Op zUps_wi~Qfu+#;00`rp^hbS=yO_w5JLWYqun`Ym=A#{a(lOJL;kf8VD1f4}_yEzAD| z!~ajBMGq$A0PgOi;Ig3{@tqc@$nHA z6Wcora42?2QAaI3voTSNGxMW_x2=M@PJ-r7pFVvb5z*kb@!ZB{y+pUl*aUUW{rmTC zZtl+Q+u=>Y*>$R_s=t5#*4tJ_N2KTf;_n?D9c^!K@9+OC{qDA(pC1|;+U0*2ynrts z|99P2h{eOf!MXL{g@d!Zw^y;*Sh3v2!8Ohy^@j>>{jX3I1#g| zW8XksEQXEsxt28rGftaU!fapsP*oS<`I=h>0Rj=Eo+JN>RijY7#%aN7xG*RvNTcMr06TlJ&&h6K;Y5$JyOX5I z-UzBB&I`0GGb7x#4q{bPCHyascjnq7X(b&0wZaSktBa%K<70GN76hUL-@w4Y$jIoc z^=PS1#o`Zq2`U;IgRfQ^N`vKn_)-W|!F+TH>wq4en(DVcRwniK7WD&%zkk06z%OJX zhZeyNn=5+0{UdT(qt4BimNxB;9jbJ{G7jYy+0}4y*-sVoK3pHKu%Btnl8wyG%_VUO zgI`Mbf;WN2YdM1{)gx0SOD2Lspb(bxaTPY|6L}=bs697Z-`$Zo-wq%Yi+uNvWqA>P zr{q@S*{1c_7bAE>qJXt#m7TtZ25v19-h&9`ZCUQPL&|0Fr_uN9aAVSaea!J>cj1j4 zvBusj!KGf_PI57Kxr@nsaE*~eS zU3V-8y!TJJSvUNS-4ajuiT5$gD*qBJQh6j-a}?sf`E@S-3HCtss#o6h;qQx0dHP~h zH^(b1W?O>RMn5ad$+4tghX!nl9IS+=kd>CMw40g`396l1K^M#u2^>XjFBx_g!(^#p zQ={?E(4S$XX%8GT(o2nh-fKHQqQT8J|&RWFF@U9!0&N2)2j2A_g>L?9z;uG7(dT$8K zmAUTU+au}zFdgz~enA!;;lPz(vRqgwBBFb?(@x94z_8IsL{2`QC5vA%ZgcIAtG-YY zlq_KehAii$zRu20$&g>aesz6fgO6^63^D79**Q2+f~uqR-=&~X=X>TRFE9W6`Ew{B z@B%I;CntDqjJh(*c(%mf)@NBhUmGcbsGrDHqO^$mZ~0%{4ZkH@Ec>ap)c@jOR4wo6 zRF%Eq_itSvZ{L@{hJ_W!sW0;2!2@RIe3zBqP;5}8=6^11?CqnYqrJVo-CbVv!32{L zw>cuW0C@L|xbLY8)DmA`U%sYVcpEvN`Izne>Tr?uaG{wH#qR7|+P2o#{mrR5&64MC zb1UZ(n6Lgdi+I`Xx5!4)=zp~uUi;icLq^8D`SjyA7aS<(5P%qZ@+# z)I-HO&XD~mK!o4 z7AhoEz%~r{Fbk_M*Racp$-LbkBST<8R^u$k%jTd(L^u_61oiH9V*Zby0&og!Ow;gb@!Q+5-TB+dM1?^ z2cgi&$1uVa zEbGGOJiWY5+af5TT2WC`+j9+Ue$M+TWNQHP7la^*Y~apYd8NfvR7# zo;Iu6X5j=KV)?&oZ>e7viMq%W26qi#y!fvqhm))2Dkh*?qMivMB-?t^pYQrMH2S^8 z-Xu}aUD(jQjS`44>!Ey=3iDnH0W0;A=U<oSw}zLba2 zQBi>ehQ0?H5MVaEwPZncE-S|FWh1b?eaXTVc2l({qh5$tMP@~$XXktUr0m)bknKHO zy$O7ImV>zoRSGP+-)t<`RWqgEg8F%`RY*b2L`#m`5zBTQ;{r5YMN!wTq z|D~|(d#aUzthZA*zCJ#%mzw3KojqJSyFDRwo=#|pphU+PY4D@)sOuyzVNY9va5ozH z{V&feEc(CMO`Uc!rSaRDIPK94PKb>%)_Cmvdv}KkQp|1nR|cxn<>f88Mnk?`oUVPw zrxqFNjB!LgL}-8{UzgZ-6w!5XgudX!nSyN zdrvCy+L5d1;+JepUm1iv2z^<9IANV6Xj@*VaCLcM=(#{#cV*hmq!xmHAA#8EXDdiJ zTYx?S;W?qwwhcvK8v4E4TIG9bi^h)CzLcPWrZ9iOG4oEfZncVWpY!7#R7)3eS#Exf z;VGihpqe9Z-*n+N)95Rp#8#h2i@IgKpT2K395}kuMfTD!wr79*2)=oCvXr*>&sT|2 zZDZnVn#aF)*Kbk`mFiEL^4@44oW1$pslztiJcpCA36->yaKCL5or-H5O1$ zzkmPkX0otJMSzAN<8^n7O?OyqiM{0o8?F$?`Bm5GXmg55G5*8PMnV1Hg|f3FidYhg zshlsTF~t)6Ymw@s2hmK*P#|DK8?f+c6qS^E!-9j}zU_zng{W<`#DV|}H zzNB$eYmltR5usYC<;Gt^j#inXqlZ2hk0lnd@EZuVoKN}C$4^lS=!Ct0Zvej{_$DQEDt5|- zhK7iO{r>tmA3y()SKSo(vSdgL<)fkg!Rx&s6Vs-dnO<|pdRRr-G-70 zw-rIg(^CBz1%DnnN|7~af4T96M$F5l;{zR34o8iP>FH@e>YGCaYVgPr9ODiCe^fk= zn()PNkHW2Waqiu_=W{r20hpl4b1#=5Q#nn1t}Vj3QUN-DB$Y6IAhTL-PqpJ5d~6by zEf%6W*wye0EcnV`9wq4)i{8ZHLJhX07Maf$DRd3$1*#3+N2t$w@giNR?EI8;{$26a z4dFg>bNzLw=a36C)s9)XYWV=$`cocOInK3}780QD-AHBmtx*R_#rXNO_g2GR-$TGF zoCRM1ivsZWgFC!9KM$4p{RurLF|pR@NAPfwmj7-i6QDRj!HL#?Lben86V{(~wuZkL z{ivGuV!L-QP?-ktM^jO;r|Ifq3;yRH%K=Sf3_d?DE^cZU7Jdd=8&vr7e_>oAtQZ#A zxw%k7U7@N2izq5urQ$Jeg?m|=n=?7mu)BosO5PbZTkLgMvEIlRbS|N z!;o(GzY<%xwNDCCM&z-uut2b#LF=-?@%HwXm63ret~SV@G!=n`d@)UrAX2R@{j6PP z423&kFa@7h+y^$yEwUe=Qfg}I$cYqo-(v8`b+hquGf3E;j*brBAbip7X81G;{+A!l z3gKoDL^#(*Los2=F3+}_cG@W2;@G=Ml$HBQ4LmXc;b&xI;H~JlggENnu77S{$;p^= zzMK_F!mj-{KlNzFzX>{e0^6u-O5HWY-87wBb9WdOj~A2d*JF2fcE+n6O(3w#^V@$v zba*^;ALvyr^u>PhGj@2kI1S50LAUiW|Esf^k+4Q5t81vc(ZK5r4Pg(qRZ&raH9Tv& zI&0EvL_)`ajD=Vvr=qeEYfm6Fu^YSCUvFy!B=`rCb!bSv?ttHFs3YXd^Op(7`s)b)n*cgMtcJ(z)rE7xb6BG{5Jc4aB~a z{&y3W6WManIJGw&&}4sngS{<>U(|GU>21e)w6n7U@mH)4JCf z@OuE3R*`1!rh)6)h(N7Y9hO6q7Zq~#qksb5l+){RkM)g>i`{N6dk8h?$I$kKOC>ls zY@u;NGAJl25@}x4SwF{z9c~u;FqHG8tX0v(*chIo94h{wp%Ey|kdMHGI|u4ar>;Nv zk#K;#*)|+z-*{p^Qmg|E?2C>4uk`Pk$S|tm52>k}v$G$uZek%!e=^1<3V&5_aM)fR z$V&6S^ps7>-5b^Un4rY!xfaej@{_%wAH}O)4rIcuFPNkK#-jCcfY5?UENm}?$^dty zY8?GfGAg_2`V*ja!p@6|@7D@|JSPh~d+je15)gdw^h&v(6{f@*)kEp1{63d+!nCi< z#(z2Et%1+ZPu(iJ6j4uA?Af)oI)_2*fk=WEJl?(#jFii?eP+y495M4|mXwZ!RimWb=B>44=#L+WbFbyBwXs{K0Oj!#d; z4~EpB_=>x4>M1HJ_DwIq4nd{;40RIL)_L$b>KW`p#+Q-3F)V6~Pm|;4rYRwC?k%UAOfE6M8=|2PfGD$4nzy`*| z%rCcp;Da#Y^)r+h5ExKETle7YAOvOVHxl@s?lFi1V1v!UdP1L z`9|=<)dGMm1iV{6E)<@r25=D!s|9(v%4wTROH9X3XwAg8Z{KcvPhDrxPqP*QZ}J1h0ht?6k%hs9Wm@G5RaKuk%fs9IGlceQESl=2+i^V=&i=KfT>7;x zn}2FRG!!1Y06pdm@GT&~8!aM;P|>y5*#|P+#(jcs8v_Fav$OBf1(vR<%Il8;PJwpH zeq{5`-@vy=R7I@m(hPz4^O&sROL?*?Y8AQaw_6}`ou0|Pe7Wp@xtAtOJFa^F~!8h^pJHtPdN>G`GOK9T6#yhIJN={v@}tl0`jdtEfMVQXdODvjXm7u@&>iQ#^84q{l4}Te<0@GwJwTI8 z)zybi_LjKxstKs6eF67FQH1OG*h5yQ0u;`)G(+expv1Mbw9t6`eGQlkf?kZBy{EmM zDNN{o-z`Lkb>IMQ6_le~fPN6C!ednsQ9x*TuAhu#pqaN3i;T?tO|oySG5T>`_C6*5 zOK$sVQKiA+CbQieh)3VZM%lfgmQYfzP@JuG1fT>w0~Ov9=&=y0m#`fcex22Xk+TgCyG2%0Qd7lUSBF3)H1{ij zP%qLf**!Yy?;b&WG++^k2Wc?WQX+o=NP{ikS+l6TajCmG^i;cGUq=nRZGmqH=P#82id#x? z*P9kabXcf%rTLv&qL{Og{UxLePOY#c_Uys}F$u{CP+3@Z5MYU2oDm4*9ix586%a9K zfluFZTOTSI1QH9mt2ceGItf4@1m-z#RY`1o{74Xkw4?swqAw#p_zIGyM&yN&aGd@P zz-Omq(F%)e*{d9*iCpnG8h?bRO#r_KF1KRZ^KajfjZgbCMj7{Q+4JdM?t_ z(|v5|aXO&X82BCx15z|~Zx0Cx!NetT;Jw~_)2z?KE(9n_<;wwhWa!#BrLMvQfaWu# z-in{CSAbGDGRg6-{@R^z1mY=!wq}Q7n)t=AmLZ@8SR1`s7nU1yp&9%8`#|piVh@?u z9d!OfiSB@5fB~ExABXs-s-Zt}G;i%yQ&qK_X-q*n0R8g)mHwERP19$sqzb+gu3#1C zG;9G>4DvaJq9f_og&s-TwL6C@*BYD zH9&#Zcp%?)pur+`o}cW!#UqcJYM}8uo`qIc4fm35$`Q=&%tYM~1r6cM|LVwpe993hIf^=P=#1`V+9Ez+$dI~$o(+0hZ#>T&NG0scBsEb@P5vO4 z0410L)ZA@bEokm&+i{3 zcSgeA%d^1SYn>Ll)-`!Ocjs^1VVp6UH5z*@3X6j{D04Kq$uxt)R^Lp6)y94_1nDIN?fQb@(K8{QRubBa4 zAS?tZyI<1*_&68_4opn}(n0A)0+xYA>N9`=4!8xfw2$Qfr$wzS#vnYTp_{2t2A!%a}Kz5h4~o zZM=j4u{!}z2V#O7gxwpv5Z#x9xxK$Kq$a=F0;qXhg^BpP;Gg%EVsL_jmN|Z24b# z0|wP0>h=k|#(oRBwafA^=&DQZH}LSzK~REyo2|DdMwq(6R)X|4|HATZ@{OB2I5&8L zG`Bg)*9o7gUc>alyvAH8HxQV~{5zX@r_)PPQbsaLSWpmhL#_YZ@yy00vBTiG+GxIB z&F%*}sq1)T&kEHG*h3wyDG)?L($A-~K;@5SR6=RDHX8!aLSbirdnn$c7G%$J2YsA^ z`^6*Jc#uwCy59ZTxHQ*Ikmt1Js35NjELyXs=~%U0w62Bkti-edsswX8mzuM z$e%T%o)eXUs}U`Ut${sNoL^}7jcTDM^jG$W(9$PrR#vAq&MSG!c~s{dC%-c0rLdxn zIZe3+E$tw+-PcAqczMfVdM3!FGs4|n)dsi<%}DdecqK9?CPl>c6sT6pjMiW!)K}5N zF%!=b5h50l#y5wHMxilN5o6!Fb-7yf8D?Z0x@2t_%)kmB@OW(hh1xh_!=+XF2gP?A zeLOWZgah6%gl58M5`gU%FpIve;q=D=uy5ZdCnw8;>_{IOguHvVGShSgl98TnN#{KZ z!ENhZm%q^w=&KT&cjmWP0y$e#UR4v+5-`&71`?Pfhg~Y35jhII`YJwjR8b%;u-+K%Q7P=c^=YY3^K&j90!*~oX7 z_p^v+`vfxXvZ`I9hW@^*Lj~g#))0^|S>*My?w%2~q6-ZME$(1*>Y;P;6KoZj=>_4E z1_uXID4z(UG23MV?4_sYG^l?$t_lGIy+plKFJX?Z{KdOMl-vQ(p;yx_4$=h}b>bIX z#Atb|b50Ckq0sPfm)U#!yholcFAd8N`0giFfn|pKM!^$HO(G>$@=*1lOzeXAPc9l- zL9E0X)`TniLz@Ci9U5VM;Ini_L zd(4!?Py0!dtHJ)A6;DxRltv2@EP%#mKo280M&4S#SwuXeBA{^QY8x#B7zMFlX59`$ zMHGj(rwGbihgl}D*b1E=s4@quaP!u!Z&bA5KHv3H(VpEK$MfZAuLY?L3ja393z8vG z_Z2vGzp=yR?AaWg$y{4nROmI|@evK<`U80a)6u%E#)ppor2SqX^f>A0jQ%#i2K?aa z6rxQ1CgN6vDp*OZ$0uTma+CLIv-4(;qFLsn% z{m`Z&HR5Ui%{q1?N4nP8A8%p9K}8LZOZ7Wl`5$nhjpOW(@hY=-@z~sxHAhiio`To3 z1IjsSgl2;IpQS@*AcZ3ypm^?mcfyds0 zwK-7_Ke`yTu5CRvCzTADxs~H{INZzCSnasFzwzhFn;O`2FUS|VzyiP+6^bAHX7fG| zPZ@ObagioZm`DP3FcSUNxh(1ao?ZJ&^75$Z>L#@aznEA9+!czHD2+%Um?x+X;$@j=0Qr1)J($P;<_ zE~Wd^1{2*}SopNhFEc0_&5@-4wvNAYDkk#p##1T;C`)3D#0~Bsd5BuP#S)i)D3s;sf;E-u`>&wjL51 zO7Xzq?phxPvnCLlX%I0%c)(d|`L|!v@ftQOl2WMeWEaIZ0Ah4#*dl5`HL8Yr(|m4l z^CR1_U*%ac>g@Ux%k&%98n34Pgtl!vT{(#?@8HC#UZ#kO4Za^Y|C*)lf_&+o${IT4 znjv4Ies~e{#b>zJbp7R-KRAM_!u>qvblHq&b#ZJL4_y>5*e^X{?6Fu=a6v+1Ws0uEXP_NY(N6o zLxg60P_sT@3r`*_%Ls4M#T9COE-hSzp+gEgEj4vYV&VkIU!u0euUa_Q`1a=K=Rs-a z&?&#yeh|l;(IC+Hd%|^i;v476nzbi`?DtK78?C^9`Cl@bB|GXc%k#M>i&yLSWI~^* zX9Q{0x}b{Yi9yQiw~HHAatXBpWR4N zyTg``Fqv8ZQ&Ta%z8(Z~1b-jED2i&51|2>WOgZ%^hDIl~2{avAD3SUP#NE2`YEBP` zH6ZmXwWVvPfDrAcYKQYx7&KfztPppkw9|O61JG&<{n|GMGdPn-G0g@qS9CT6RcB@- zj44oq`YPMW*os6YMjq2`Uqe5dk;U;BTwJ|DA2-oWcL}~)pB-$d)oMkmPK&Ru@Kr@e zZ#*sP&j=3>H-texumcf~?H55f#8CbJ`8Xu6$RnOHJD8N~R)bLhz*h>b4j4hqVEO=JTXxgzf^7n(_whU?;7jWM#C8NI1`88&rwHSjwyC%QOQ;jDZg`L@=>8*1sSEjcJXn25EQM1wH;Xj3* zfB)bY28u0z+LLCp>nX-YCTe8lp)fWrM%XE}+EQ}5^C;2uz4{2MnM%gl0Q(#A+Y`lJVtTVgNdcM5+UU z1T-`g3i{}7oB5vS4#&Uf%+S#{bsituU6X(f0p-0=vqS`p27nd2$3yO8|IcIfFmZT* zLCOXkIeQCn>^i%xca*hxf8-Z-#f6AQB`1p-wFH7=XVQjN*eRRm%aS{GI`?y6kH&XCi<)+aSb79#%=m};skQG9eU5&ys$Cmy;HS!p>4z22g#h4;uZY)J!53U}!O2?`0^ zH${enbb1$wY=kT{0}B<9DmJ^rPmo&kDRM`Xej#amORH^4Li(4RG&D320n{*@2Y6}I zD1BWGGKJ{lSp^Pe9m6&RpfIh}XP5wn5HchelXv6*5qx;+Xl`m6PAehK!qR#Bxv`2k z!mf{3qyz?1VCJGCrWCM>Sy&_wk`ZKqjlfA;@Q*tzywLQ=GT1f<6&y9t1$x0AGLrEi^!VmI^ z>VdyeM7?83YTyF;!PZAUOzmkV_~f>xXmmrZ3Rt6m}|FS_!*9 z4_cTJ#pL>vfUznlrTn)a&%iY5o7JZMy9|XOH80&nqBa}X=(l6r$b)EEYif~aFmivP z99R0-59kI2e^6jxIHk}gq@>`D!Jq~*5hFANGqWN?uf)j34D{}nA3s3w%1LjUVd1B-^U?AY7P!FpcuAkV0 z9SXcPj^*3XUy}GOqw+S;o>j9$gRkpm;`d{H@q=_YAb^NY(HvRTBUNQ!e#iW0v7C~2 zrs21Jg|6B}wHrk_35-d_F6kj0Yvd!%)8zR9nGWCL^vXZbUWy9GRI*R&6O|O2Pe9yA$1C zz0!`RCyo%hd@wrcY%uSM=Yju=+LFDJoIO2QgQi+m7xIxo>@3EhEIm=(6{<=mu0CO* zdbS+tO5r~iQ#&R#QXbU-=n48lZK9I#*-_?tHrlo8tKEb;?Y|;AS85V74M05uoCmFD z_{WbQyvP4|SrJ5cgWsQUfHOPeEe#}(TkbZ>v*)p6Tq{>iIVV)GCL-|^VfR%21Of)! ztqmDB%>CV$=168eGZE z*f$m%@d}S=Ih!ej3p_zd>F}`e@nlf0p1s1(S}KBu*AF6kXA3arqGuUz7Fbg5<9z6y z@9n_^kB=a@Lw#%r5f2tXERP(wA(7Mr7uF{&19EYnW6;`gYgL#VsqPcP)Pq*SuRi({ zyY9DjsO6ltq_0{`Aisk&8Bar}Eu{kI(anPsNok zkRCWuB2gkyZ&KW!FPE=-2=}TO)$5&driWPQh}k@9ztBP3fD%>=>Ku5Rzzy@SB@qqL z#}JRhASzG7)9H1x6K2Xyca5#f;=x2Eft^@)n@L*>Z zX!>N6f73w`03{#rB7y-ATwjVaq3A|~63EQq-3Ry{9?X)79OU}Nx1=?3Lw_?(7}fnPq}Qm(#DRsM-W-qGlPEOy>>SiBHqh8e zac7O?T-jNz-t|9Mu{dEGwi@1bHL?ch9XLUCpoqkB=mH5D4idmXB!5TnUbVKis>9?= zKwvnbB@M*Rxk!oBQ6+RIDft>;v-sl2cLfDU##8~TDJ2Pl8IIKE2ZBg<ldtl5TB7YSByoXXlbByyW!R*@i~MbkYzsdqpa*Dq!*o^1+(vEX<*LJswHm64AnwCG7FIM9bM6 zufudPqPbK9PhTZl@`;#`%UaXc1=D;<73;>;jFcRbK#yEx^N1}z z4YVZhs`B^03zmAo%r^p)Qiz$pcpe5$PEKbuMkVxD);yGAY009V1g_r(9zsauwbaL_Vy?*$N z2s!Gip#f&mRPW6i_ELlnba`DEY{f_1BEnMbLY0drCWAm?p0b~5%))p-xArE*|e*Jo8^fjc`dIl2_DqP#|!)y8bo`o^E*PWMFS zz(E(B25{b^{0xlVT|grDYQzvPl;oi?`FnYKj{ANEe*}X}_!rKeyLT}Aj;U8`4N$WM z(n7u@ZlgDM<zVrzPjDa6iKZcg#MiWRDuGBtha^irI=qrM(IMM>p z$Yp;OgpIy5iL|s0G=$NxePQ7#5Ob8Z1_ojYTGk=q;rmBNq?&{{*ApDDVn4_NOQ!W& zrn7Jp1`P|$&L2i^Vm!NBj1|xpDh)jNYxJ48`Va5RbDTtVVkDttQ*;ZG=U)?RgF)$^ zi+!R39G2ctZZ@dMDjG-+Y>iP3XoK_`N~`8b=HHcWNX-M*l+^K|zhs_xH^~e9h+DzJF9oX6eU8G1x3vCsX z1UY~zG*bg@K+4F7=#2eP^ZE9zw&`;mL9Gs93-&SSH4zJ8uC+~iQK~p|eCk9>I7&El z>U23D%<0rMgu?35wh!3Ixm-lXvyKvUt9~n|){42FVw%)(_DEtYMK^eVdg#J@e#U_> zV6WNoH3C|)H#l;wMoTZiR|>x0x^GSh=5N)#?FTk?_)T61R^W+-(SdJ2HE@k;%R$B@ zjc+x?xOUd?y^FJ>s&O(B5<#D1hc)$*^I)|3iXPABfazeAwhnG$nD*yGjUF+3vWk8* z1Y!dWSbio%0qQLUHP4_5>k(RLNQid5M_F{xRB`VC&*%U^H}eO$$y3v!h({Ki(d z-y6_L_XO?ZOVroD*!dcGZS?bF5r}G-odpL5R(~@`FpER;FM&P-XF&kePF2i<-Kg5{ z!t1-(BC}|A43x%Am<@vO5M^M_fWb0|&N2VoK!SSSdMLd0M9+%~3 zkMXF30%LwZSSwV?YJ;K$&g6#*t40d+ac}GxUeRx+wv(G=BHl6(!3x8CyC)$E&V7I~ z*0*+uU?u?R$eA~oGcf*Y;KHmsk$oH)_>q|Uq(j@?Wj-WyR^Wo_6Zw^u%k#v|WevK( z4~hPAkvt{}DZ*+?gE?>@?5z4r5U>H@YS0)KU?8in&4(bu>XGS}QtblV03h!$^?s3h z!7dzjfRjfxM^w!0>wU)Dw^_*Kh?80H5yCH=MR_!hzdW5sCvy9r10P#rVJ9ai087XF zx3=*Igdgoi(gzWQdNKW6$cj9{BR3ea`<|+=(DcDfl@v^ApsE_hCKh(%(dky=jn$SM zel%Qj*`i5id6yfTq)990RSDo-qewGF(Dpe@>5nar9&4c^1j$qviCGpPXdpq;W-3g< z#t7O1oY>^BPG9g{Ly%UmFIyaGWNIOH-yD>o_6#I0Wd(&IaF8_lU8H(0lEVSaH3s~O zqG#3GA|n8NQ(<(H`k&|kg-Ca^v*RrZdWRZ-bNE5`(&BF(elM>s&DPJ4ghm>q#Z|V< zhX!0V!WurRY<&MwR&{B>QmLeHRiL){S!49!+SbqF{7^-$ptr7mG`J==fBy_C{mD2{ z{J8MO$07|ma2dk5Mdm#fIR!;xk{2Q!dv4Xmpazsx5E2#?JEt4GDS1GQ zT_dYC^Q(>7h4h4TcU9-#ZscM((9Mk*Q#r$vfg6%B@Bwf#INONQ6d*Ifov2{6#N`d{&y|D5h2?rYc^PN9p`QPI%9 zj%B%3PiSmYaOLriwrco%v+k|c@Bzs`nwc=h>_Q-ObU9IU+0Z~%n+@n%O-?I+?G3nE zJiS?>J}_w2r1$ez5CH@+9IL^>#a)|jsM{kyK}***3Vmsi0E=AoxzVfN7_6@FEcn>i z9d8-YPJTQn1cBTcOp^dr@o(LlE;9j>I+pWqwCY&134J)21_T$5V;QO4<>vnKKfZp# zo=377W}u@~S~>&A@{XkfXCwTQlLCyOu&JvGaJ%?Ihff*TA8eg9v>wJgI`tM%G0ElI z`!)5*t9E_texczOFSW=u3f*L3X$54}rQkx!(C1YNro1)D{6+q<#XU+sb3<{bd*cfc z_TX^^V|25Et5EkeaWl9s_sLBkIXZa*cI{XZ{2c6K&!5J){vUS20K zen^Huul9q}rvL0bQqn{aT4hwqg7(wN!jOX@VPOv){yw@C#Bt!!fPEyWRo2Zu7slYt>!PAD_JV;8+nG&fVSI02CfV<8 zatgYa7D;0Fs_n0I%KBvZ7fIWxTQlc>tus0*#^(7-50x5`PO5@rK)rW*n+I zNHNJQaL`G14sGf-4yg%a(80SGV1R*BiXf~AgSiC`S?Q9(aoA4>?@vbM5y-fMoh5Jv zIja{#e!6K%UdO>jsu+08VyfjL7kI-WBddzLr0j8tR8_l_B`$_K23(YnJ_$5jxFP8R z6FB=KSX4iC%{+FPJ5Ht}n$zWDYdIZGwj6Ic0w_Uq@>MgE=J8V((s2h+cEDbRI=B-n z@Pvb%`li^eSN{UIy;8LsyuR}N1pNpOaD5z&K-+!uF$17?w`Fu(+$caf0yxo8vkgKF z9QNhJHbLtU=;moJUv7cXCQwP^D%9aDl(&ERR?x=-4n6Pyg0alm{4?-IGW=zS*OIIp z92?+ub1UEWzPfP}dz(n|<(sQryI!w1HI6=lHwxtF0t@9bo(xVof1+x&Q16~ebd@jG zyKEkpSPiGv=MsU}zQG*@;^79e<;@X;Zg8|kol1MdnrlfQYj9K+*0SWkE`_Q+tDkNw* z^}$6rHJcx*K}AU9x6HImRN{eA^-`*LpBF9`Es+7Zz4PHPqF7i?ULNJzM+CD=cFenX z@3tC_Qll3vdT}%=@sNcSV0BDS49dKbp>SUcn=Ts;(H=Hk`C7LAdYSREkkdISLH46L zlDI7pL;u>TX9Sh*PJg~v8t2U-t?p6GjizoJL6m=YK$g~axbRa>ds%XlW9k2H!i>*e z1m90^o~r@VS>uR38+_gJM1=@K2%5^IuK*8^Bb1*u6ODxqjAqR6jOU=!FZQLtsoBH- z!B^S_wlj?lpSNb_WRe!B5Jwiy-J@Y#jmtd-s2HmtLFZVhbr^{h< zb+qtHRVONt%djlh>i-*n^`mKK_e1ySUGO`jfH&j=jLl+WW6f>m^>7~z$Z&Tb0Q{U+ zECY>T#2i=u77oi=LdN?|5ol`oczFEA26{Z`epAs zo$CmYZ1;Ma7V~=`$chr`*y89dA{hXXiDKU0`0fiRDJI=E*4#>ct?((EbMvWIU}o#| z?XCXC^B27gC8@#(KedE<&FKQUlYWMN5(*-ysUg`tGIc;UCDF=Y7x`stIA3uj(LUI< zF4=5&qhEJ@1)REP2W#$7ER|D41Ox>&x#_4Meav+TcP;_zl~(?<+0>ut=;&ZmV2ZZ( z=1#w>y-TE<+PME4bsB`0gFn8-j7`T)JEm?lK%F~gi?F_tSG8>rL|D0Q1U>p*tx zfE0>XV!gsuN`Bx7wurtMDk>GX>Gn@SnFM0){xX}I74%WjJ;baua*912dbw=@(@c@W zeJc<1C6`qPwu+6djKo=+ zbz@)%Oko*;39j)nGlh-htZElng~75U0Y*^pzx@IBkgt-(+x`o!Sz~>=8;M7aR0Sn1 znZ>*_^LqLhaE-RTrS)4@l(XmBIn-SUdZ9DW^8JB=itEZ&k=Ru0j9r3Sp8eISb*75Q z*;YF4-1}<*Q-(nYGROk;0qfPuP>cTIRAB-B>?pR;yKsmn8FWc)ZEa9q;5_C$2y4ws z1Ty^`No4;32_=sgfu89(NR|E<)!(2cC5pIOfm&GcB%qID3E?!C8m3d`CKQ?qZm5X_ zWBAhqQZz!>9^E4M)m%)qUhGMLWOZM7=5B_X4X=*4F3bl2+ki?e3hr!<=amjlv2+L`l6x8s zXlt*%fS{mUeZ}2Lin*}SnAdAP-r+ZwnD&hu+wff8o<{$mFoH#Xi-nmnI|fEqHJ*Fs zBR>@x2LS+HTx=+NU;AqZc3&O%0}^1%_lEQ6Lw%PjT>05%sa+Cxyqaz0ScvY6>Br)V zdF<5+@2wdbflfW#*~^+WZvPR+OfcX~BtlN^&h?HDa@kIia0N03rjRUZL;FAp@GzKA zR@UnC!Fq-M*nJH>HscJ=l5CR0uo%Ewo@r;4=O5}Evn@z@BdS}W38%cvz@=-8EFmDu)`|G%%92B`v6x-=P=iegkrJxPG*3ILMxL+`!}s%Br1H(_c%KX1Jie@>ki9jsKETk-fIo7#L^Y=i z<$MMTsAJdhB^7VB>j>jjee0LOPsu&YzrmnUi$f$Q^Q8OO6Ks#vY;mf$m(VZM8qRKo z7j|7D{Q7*OC7)n(WFu|}fT*GU^36>)C24(q@5iCPO>MPxx_=WAOHb+R>tjkINheE} z@sZls^elgeJ;ElClg}PtjsXGYlP?W0`>_u|jZH}cp_=0qVs;Q<%LY{9jI%GZ* zDr!mv^K+i~M0<=jxC=NT)t}4q^F@ErRLs`Vlb&a!%jDEwy_nmwb=zDOu{8EkY;d4w z(56j@jRhxQWKMRrA`}A9Ax5jcRn1;m5sLp}p}8i}%Zj6AK}33znI-wK0X)C^cD>sY@|%;mQ{ z+}kk;k{&A2O?j*}O6j8%y}2}+QJ5rj!}_<|Gu<$579*9siv2ZvsuVt^jVcVx?-$ZP zxMjct28TP~DC)JN6f^`YMN9Q#26_msuAUzDIvu!w|KnM#IJSHtc{FvVp5m{ZwnQFK z9gB;LK~I+7Bt`^A!68L|untc5!|}l7CBsa5HkKK9_v8-4W7Ic+ce7CyP;EKgWd^4pWh zWQXMJetr{gbDKOgv}jc~i?L+vE~C+!J5qX6^5FYFlR*pW^BQ!kK0Gq+zwk#N8h5+c zcGfUoC8B%kKCXa6uudk+(nA#%%5mL6d)ETFw;b#B7tO$A0&}ljIEPwV{Vx>I-krj~ zXw5o6WP|$oKofw&7JhL2OmXlYmC@a7eUI6or-{B`e?^7Y14{Z`s4NfPW!xFaijG>9 zW}#Q=(Imb_Pk)%a&Rti`q8K%hl_<(xF1Kf{d6QKCzWZ(F59|z}6^4=}PGeQCx{6v&tRF2Pj zFs7OB$X#|S*GG(Uor!KA!f>bW(urRfJ1jc z;x_R8-cN}rqz)ViXfq2kz3+E0CW_Z17a3<;|>5dEg1#8ZA3cG ztRfZv)0Sm82n)xJIwAuI%x_vtOG}>~Zsh_JA%2azVxj*Xfu8a@}aC!uML?C$D9{e2!FqF38*B|yaeZciDg z2DeEUPD2Ire8=(;HErHrWyx$=)HOjEt<1JwlS~y$J~!k)0JGJ3ITi&iy=3f8D+6zVCCK-}!#8 z>vMfR@5@%AR2@M!&K$s+T~&SlKsn)UOf$6SFn4}{dF7g zZ6-dsqT!V^L96w41Cv4tTpGWFC`iBzP;G8fDn0JxXG8_Ig=yeRkcO50dJ3D_Mk@ZpD^mw|y}an%%LpW1(wN_BdwomkRr=l_L_;N{5# zCRiXaX6y>5?&*GsKgZp>r4?095)_Dn>urBNgGJPvxo=%0+V@g^t0a~V@?^QFit{lg zfBd~`0SL5$0+haPP{6^op>ZWI)v(6FzQqmR!vr528lS#Wq*vjv`4F$+s`UOg_}ReV z)35ZcEGI><6cwjsE})n{m_*i~X0hmhVltX$aL=L6*YRtA3wqR4%whgK`(}!~*IR}n z1!rtkRNLk}o2Y!vq^X}$6W80CnaX#&_BCIEgGpkMh0z##l8NW^2<9sYqdY#oI44f* zfPz5dqE@dlD@w5Af?r>2lL-7*h49CS6y%>9!U;l{*VN7AE*3LREi>5f<_5S zS@A?95XZJ*_;t6%ndCGBr#VXWS^lH`Z?DLkoliT$Ue0+ii;5mYuR$y1U<}i-mnZ!Y zfqE3;rMqsUE=wEteu~IN?IpE}5dLHE zWP-Nf6iqAf-z&DDWp1CU6kc&T|y@IX`cfp<+x4x-(jxT1;^J>;|t@ zztYcAdS?C1rzuO2+5QWs^WN6%1?CD}E%?MudO4s+Q=8L8*A{GYPD6zNJqh|KIV{=! z>P9B7We?=fHfZFS{TVli8rdxM5TR+ zKHT`m%wrJFdX0Omwj?7tEIxuvX**mX(RgSs!V;>n@B7t1=Z(!6g|0tW8iK}g3QXS6 za6E$nW08PjQ@uU&a-wsXXyDj&+?u+H&W-PY5i^4ki}@SdI2mwXsApa7IT_i|jx|Q_RN8>tftt zdX+f#NuM&(piIYDkdTEV)#vLQ)sw-DGcUCAxP3WI@kdS5ChJFeN*(p53ruScvT^a7 z!y@Zjj(O{|BWLPyDS`!CCKls+CszF!J?8)JL%ACgm7ZGA zGU{Dtcn$76atPC6-hzZjcs>oIHJ1ndE&pT63^9B*3pSZt6X70Dc1iS*Di!f}VAl5CmQ;(o;OVdMY zEc-J=h*qr~G>DYlV9fJ8-dh2kU={@AQ2kd(wo*b3yd!+BGcYvIL0q5h9UnsD&0!t8 zn3&H@qgRxWK>MBel?g+#gnelyT^yuMEVYA#-Bf_6`|El;>0XW+em@KI`Osek>w;*D zP)(8r!QR43G70OOpDql2{5mIlDx$;koEL~a?4_179cv^Hr}F9i>Z`7_&A0?sNY`W;r)SC5ERjV%AL5>FG4)8aT4iA1&9Z}5U=TT6dJ^rF5UXKm}+;+{8^^63X|OW zHQnqcUUY-;YF;YUw43Xc5L?thlHao(PF|})@`F$SRbWCrnYF#A7BVE`|s` zt7p$@wSIGY_q(>gu$Gj+8jCU^Y4NrU-FovbB>wrFZ(wk8pdEK#SV$aBa;>A^{rh2IN`q`7UM z+%m+hR7Q1$N8+=uuMn~R?tOFE)=cJ8XdN^yu)AYDcO?`auG61XMTZ-!rysg;%gUO| z{#7``-2%qzDZ@ZFxUCkezy2mgD9ciu*&Q)_O~`|%LULfZ_XoW+U6L2PSm=W>lm@Wi zf`$4~%WuAypZ%~9lIv8)%6K_quNf`{WdPW+t7}Kk3djdya9c9&T|=A_$3jPRF;lcE z|LSA5er^P}ETKTJirtq`0UImc=cpBxt6`)M$V%LaNldsTGs_(v6Dfbhr3&HQm=`m$ zjRB470Nhc=5Ui&x+bQ2Fz8Wz3@hxq9V4G-?Xtx5eDZ?To_Zvi{?dec(nC_jtQKz6e zxq|rjH~t#g5s2xhf~~7}G*Y3}7PeU`#i2)B4ju^bfT0gm$0tpWT3k$x!a?EaxEO}K z{g&SKup}c>e!f`VZdJpP)slw{f=n)_wM-43ZYN*Git6`6ap!$f^XdRl0@yTvNPN%K z+&c+Y;X;%`X)V0=XqAC#`WOB+x}b!c3IknT!tSg|-?|Xep=IWOL_|bDtl9mEU^d7H z;l_3;cLLrVD|AkeSn6W7zzv&b_k>9PUR={9bDel4bcb>I)U_ZSbwO|E4WB_n{kWty z2RZx=;=!uJpF+us*A3#$x;TUcW=iYZJx!}xR+VS>Ix6;{dxE;f9gNZ5P(=ah5XZ{| zp}~ZC{$Qy3&HhKDm#cAWkYRBpwTF;PEKY5xNM;JO#E30<+|`cSq?pg`YA~3beS#@A_Dq0 zJTk%b1hzd!Q)M-^&Oz*_H!^WdVECSHR|UiK>uX3ve0Z{TZ_=;Q?aWT5@X#Sy^O%T8 zZj(KxB*hRWE2bf|;kdoT<2MwO!&=g42J`Ym<=m>sn@G7SUGel#;|``U`g-lJT`f%$ zR0YnQ0tAxXkP+AHuX+l$u zgx^6H0EfZvrKPveyL%MABCa5m@1T~`T>BxOD~AS02B18yMNq@k8Ro>bx&&3P4olLL zX+j1;C^gcgxfC#j;lsh_>OQm+@~e!c2-R(n)}SouG~g3z@}Qmo`-qzUkrW0019kd*?X0sg2Mwlt13g@jYD@uZ8jBqZhwhleyqw@JMxYN??k}@(L z@FabiEqp7s7l;KGKN33;TNz-R-vQ}zWDdmxurysJ5Pysgb{_Z zba^LJJoz@JSdn~0t+bdU>|Ncn+bqN+MYP^`{d$v_ZnKL>K3@8@4{R^8xfr+zp?Tqi zrxjpnCNK*7>}`$6AB19r4JtSo5+}`IyFp10^7ghh#^etsC$HeE8q-%0>@$O|th*Ux zX%_F^{#BAEN46wHDc6IUkgZS~F*geb888;-axE_+)-pXGstlU;SlEZ={J1@A+?$qZ zy84Ha)fm_IrhIOKZik9aLx`xZ`#mVXP6KKZdBEB#Pu>5Jr~3*H0X+OdV71ze*){r?9vU5?wg#(&vtTioMwJ2ZD;h5p*zfRkStmbTlJho z=J9V&#b>9U8lf2~?yBZxb6c74;!!>4=8GG2l(uWZ0!#bSh2@gt#q+~wFLI1zsE?r2 z#C$j5mNjg#ozQB9&|J$J3Jv|a0dBkMxK0z%(Wa-5Bv3`& zZgHd|n@%TI3+79-hC%KgY9Bvu=ZkWxGJSNq{GG-nZv4VyooIV(%xG(7dOuc*v2*ms z(udp+pdkHQfX5wNt65clLI)@(n!6&mS*7#ax`my3*Db;{UkR{b$tH#B%Uv(3(z2%Z zSZ}R28NA|^hnVZTo^JGt@I+d3B>hr8?`YUiN}7?73jj&u8xq>7?qbp1O*#VKl2h$$ zB-L&8UM99Lzc_it?<>0`b$@wm6&DtMUtaF+Bh7of$}|JRpT36UzgJzmFNBQdh>jTF z<*LxV$|t1y`uX{Q>W%dc5o>RkZx*x4>=}`l-lV5vI9w2#I|!k2(66wHoOS+4Blk6* zjIJXq|NdO%sM@IQQ}_yE3OCUTu70-n>+>9LR^}`&Ls+d`YguL{j=Lh>IyNncf{=kP z$ymhy?**WlN6j<5j$%~6VvP$0-)y_mw>(_;H8n9stv=b#F!}*27&MjI$x~`wPE0&b%VbtP0)0#*1Rm@cEaf0+8{Z>D;U= zIzGM%aNv_R3I=Op^cFUnmT+1x`{Ld>Rw#SikRR!j7qAs)1+ zE+w@{rXpo@a4Q#Vc98 z{rkYT2J|52*MC^@Pu5bvM)B3xr+~NfNq_9^x)cqe0K~sSxJ9KGpMlDe#vf6zP`}m8 z#AkJ4YQHx3?qxPbJuy!aMcR-`koLn+3P0bo4)ntJcQ4OuuDrTYcjG--E)A=Sn6XAn z>}PfzH}aP+xTdhgLL6|yk~&mSDJCIFdA#^#Oc~;jq|dOhSM8@$_%VPW>>1E5WY$Q@1p~B6Y>Xmh|o|$hpB(izKhs+&HAd|8rD-KIn}k#!+v%B zxh~gU)CW17C$seB_Fok<@7DcP{h*eLwz%@Lh`ETu`MqZ;lNoPl_g%x-8SkO2`A|$}gc8@nY^MO0LBSgj2#kV^!W!IRAXXI_EW~fi|7cUW+ zgQPtL!IpG>44NEd-YkXhh8MFJXQok!Fk6_Knp$692eVicMsyI+N3>?b?}r|ShldyR zW*~IfMwNd2(%1zH`wDo2t{mcI3GU#=iF^uopa>B;fAd1FQa7{7$6+X1Vs zK2aOoR1$1#pW5oN5ez64uXR7Qt-cXcTqsjybj`V<{hGgwENZfuBRaH@Le#*LEo{U8Ny%if zfXsMu`W66eiCx)g*;l{Sl4Vb`}S)T%F07i7`H(miHuubGO_ZA} zl=k0zPB1Q8tcIrUGyd(??08=MiyWdK9S9`iv{cKb2Pfxo9#&QOS>WOMB40&ZF2PAL zp>gF^9MqaPBg&!12lzmQ)!fkO-g+jF&qvO9YYlf{{$|UV_fM{LSM>wqn!F#gGf#NT zWZPQ5tqO!i)1l&;JiSynZ0QCb5ODxmVS-NU%F)5zy;NgGRNG{;3IIvWkt8F3*`k;o z`W@Z}caS1cmYJyFXXUmt63-9YRP9~S`UV4wx>?1Eo%(3`=~DAm+U6}#OhsdxS3Kbbr$%TQ0t8}ZVG zAJIYG^0`G^Wk0>BcJXq3qVqGB6%PMAtTBrIqp(kgOjbEy%}GK%;Ez)ZGU?5@Ps7fD z&Q%!=sZ|-hO39cLkBiYkPjl$blpaxO64Lo_Yw?nS4Lew@LH~wc%dtOJkQ^J$;g-eq>GfO zzo&kSe0HJj3AU-rdu|Y(4p@*VUIS2EC+VuUZgAr_d!gG?@9_hI?gyXsd*Avg%_F8) z@bw4FMh}=(0K9uh(?Hzg>0q`z9LR8gzm16@ zA}3$Au;)kQKUn`{n_=W2zrLUN{1#$ZZDuSEwi5K%N1I&Dnm=8Zx|k?63ygdF_@2;5 zl85})Y6jf0pAYpWPkcyu#atXtQ`fnD+*6p%iQa2Z(PpIDoJntarlg=&OoZe~?V`*_ zeHr6!^c1o}@lLGIN?A>mdl>nzxD2E_oBjHHIt8x_(-(l8feDQP(PYz!Eo};mm9l&g zds+N-lqCugs>o6W_)=M37KHE|31>|~?RZ^{@N2{~;8S~y6Q2-D%L5f5B+klxZOHdf z06EIe`AMrKed<>6kd1uxFZGJV_0+QX_ze>0*)ndyOO-k{KqzjpJ)9yzk!BP8@F zIs7%}6T(O2YX^O>2^+T7CLF>_S7{XB7@Jr=yl#Hm3NC&s(JK4SgJ$wMec*3jFDadCX$q6P61%n9Z&g_4B3 ziZ$qt%N!;a?U0(E|A#3-Zmvp8zd(uyA={lz@#NF;+0eo;dVa`@Ouvhdc@##@S z`g0Fjpvtvg4;ZuSbkGgps-yZC3oAOi94!DN*XqEz@}q#Bx8 zJ)`hX24YwcX!71LkWa6qmSivXD%Xs6EEZs~<#o6bQqM0=a>OQS>i zSu~ZWg|lbWr994-QVI1;NvNg<&SB0If=@XFMF_xC?{INNYY0(ftI$bEaUHf6tX$A9v0U+BYiygv)-eA5iStE3r+*(FVl z4{SW!I~BUELd=X^Y*e;OUIte-m5a^`KIq?VD!r?ntg~0eONCOIylZ$<|HdDx-HCf2 zTh2=sz`0WpDxe5FLrj7WHcH?JVijB_{EFqGMUfr~WGd%aqAWWKEJOgw=#h>shHeFT zT}TIE%&}&FFVR(sG@cFq`b&nO76sPa%PV+km5r7DO~n%C1B%R2j}e7o!@XXw9M9YP zg)Th!H>BSkR=@gz=YQmgg|tzbvCW&Ww6rqwJuz{1h;X_=_k4C2?lzW)PsjAtGl(If!8Q-V_mSRj86 zN1)I~7Prb2Ej#gKG&VMdZ{kXGY{Njl5Q5B&x>u1B!UanDUa`D#__pRVTW^k4QTVwFSFa; zP%m|^|09GTkWy6&@GziQf)N+|H<~-1!KSxbCqQnHCaf3)L;+9DwNh#+zp1TVXcjAT zmd8y&{(G+jmb0^F2$E%{&SE`H4GqO%?u&^eBw{Dj8Vu_yB)6Q}m%jALg=w0}hd8c1 z>D)HqYaPEqr3ta|riT#tZJ<#)9?*J$FCGd9Btt=tZa2W}6Q+hVeFa|u$Ptq?fF^6kshwcPHpVdF zA(7HG916l8ST0HZk4F?r{`4b;aiDeo?LK$jS9~j{f|4@~Vm*Axp(4W?;!LCPuZO6;RR9i%HWC4Us93 zeC4ky@QRlhwbbme|SRyp6iA+owlE?gA?TCk{^&{CL55l$Mob-O6NSyTMVE zus%=5sbL#V9(+pPT+li2ZnC!uxCc~d`psPbw+O8^3U%q;T?EQ}3I6cN7eJ)lDI<@0 zoDqNTqX8Q24Rr@(Ip7x{!`Ej2{CUK*ju?LO>(`>5ZXXb9f-(?6)$nhEeB=Z63n$-& zB@Xc)8#}LRQ6Ud1lIpx%k`nR^<8uq;gC^)?3S3n8Yign`X+23a&9KhSreC+Tq(T;D zFX`I6LvxuXI(KJy;!z)|hgA~U(?-6hJVzlR;$pQC|ELO*a>P=^>e^xK{r6rt? z`R9^f-5PHC-_U~^z*<4f#K><&7AQnK*2EtyFd%yJzQ@WZ*ny>9e0*ok0Q|L(kjAG$ zDD!~;05c=iB<^3ZkEde!z}mKn34a?ajX;bh@B1ZboByo|)P!wBeyOV_ zSeeBI7v|T@^6&Ce$acuehCGQ&X!7c}+30r_da{oCgv!=pFsywNtCer1QscK&hyA|k z`0r(P(OCMcNE>Ii>sI-sPepCV2unUG%+CIM;gkCObbC9|iq`OCc0GHHAiJU|&4bfp!1`ZZ$)XKNQXzmiwxsh3$ouhg*^Fd~i}#n2hefE|{YB zGh6!nTTm)Gxi(R;uE-Lvis=(Aj?Vq9X3ys*f*0=sb300@97}cI=%lEif+MOq5N|{`fOz`4FAw)iw2a@a${u@B%8a( zZ7i~HCU<%E&u(V|vL`fD2OX|hao5a~@sOaPWxk@?3T1wsPs#f*;^Bd2Y7vzfxa4Im zIt)JK_&{v$EBID11+&*uGTfT6dOOO0B`;@LfjA`%Mp#&CsaSO7Z(jV)3`-*(@3X`w z2*lmQ2UmOijH}YI@?8jRa~>OCCn|-@U(Duh5|Q5zj$u%j!bQeXw522|smOKFF~tJiqnSs_YaqixUGnB^mKnFyE|dTe5Uhl27iQugpWM9N zJAlY9bLu3}fY)7TZ_G&^C4iV&r>H;VpAls<`o*oXg_UJ@pn0hZz8WGQ8AI*d0s?$t zz7AL$XkOn9Zkw51r9>I>?M~!|TW2^y`Qf}iZt`mA`KOo9&-OoZHH*K$WYR*)8d>Tv z9%HTM*krp_=YRV6&dJd|W`T&Jwe0MdQln(C1*;4?M(ms@l%Roe#(q$kVo*G42+c~* zd75l(cwSwy+$h2^S;^kgnCc484$rE z>~^n;$7bl=>+9iMu7Sq|)&u!N4{x8%WxSjkdKk3Y7WbHQNSyI>qsH)}{8!qi;@9@X zTer@nUyeYNDAKxmM6^@rE@=?w-uL>;v9|bo<3c=}dIyGRTAGWsQO^71RSl)qZcYt< z!94~@;09348Ld;!3rkD=c7J}zwk_SW)h*&WOr5=Q>8Jxk2* z^dHO}Bv=cE*`6~V2g`mX(u#?Mi@?kc#jENHCM&XO%7CX1=ch-WGhWMJ00GN$GkEBB zuBRs!#zkFGfl|*3U|^fTNY&>Bt0%ZSKb~@8>9B!mZL!)}`1zImD&=n*PD$YoM5@p4 z(kIcFJNy&`F=bxa=d20tPSPi+VeF6I9u{%QeSGF2J-Z+DZfY7+4^h6mw7)^JyFE1e zv&OCAB7+IJSdz9Q27>Hk*i8uK!T)|eJ_;dO44jcXZa6$RIoGN!FjNt1~$H_3AUVfcJ{@!znq{)qP(9fE33TD{K9;1hU(&nx=DLG zHpeY&nLP1NGKOS^l{7YkAw+D9hJ2$$!Qr}lcOGln{|sq4c-k}5G)?O-UM3@V(xXb` z7YueApQU7L%w_=C69VlzssFP{T+c?w@lcAj(?=n|eN99I@J8ixbHC8f8N8WQZLlW#8rJYj%~z{+f}B zE<-k1gc4ITYre+(M+9S`Dw8hjJLmL|KpLO=QS^jB%bzj((wo#&F`%SFMh0*?XApVt zV6Fdvea>2IUVeiffhkini@^+DEDLHCfmbFSEWJxeUGqQ70a(JZUGRzo$h5S~3~Y9Goh*pCM>9Z$ zPV1XHu|%-Ezj3=r*tn9|gT!l;K8W>w<(o$1y8X8_htZP)e^*WY#o|?AGA_p-%Nvwr z5X*F#<}r5atH@RG7q2 z>GJ*z$#azh`pcNZZ21c#pzWRk(CPXHzO?&-1V6AUd~N!m#nfV%#tOLA>qClJbT^ce z;GB(=SE|l?$1srk$p7&?A%% zyFCtW!}L0nRUY?E`QDJX+PG4TRL2|ne_nE02vJQhfNrZ?$gH2Wg~+q z(wwm^j!ih5NMUaJsTQV=a>``4jWBW27JFC&3N@>a0r+BW^%nnwe;x*mWsCi3##0{E zV8iT6?V=kn4-_`D&S{v&tST0p$dxy<(bxOOOfBNrL)?PHWBrV;3Z?@Z5$;X z@sNM=BkBLW0HHSvV!HRv?|r@5=sfPX^jm4STFjHM+3%i$cZS}aJl?{|%W!i&0&`7H zT?W}v0yb1f$nuh7Y_qSqFqn;H~Eu<}JB<#>P_*^i1|aJqEn_ z`h<1neuEjKJ2FeT$fRNPzpk+^n; z*{5_Gqn*trThH$0M2>Ik-z|5C-hbV&)+e3k24)LA@xp6X^?Kp*O}-U1)ySj^!-zni zexLcU+>pq&m*vO#Ukn5J0W)h&pcOzA(C!(Kmb+UC4h)biU}u>OSQfL6|3(=>St$e< zGsg<>ryNgT2CF6T%NpRAgS9j({%32ZU{Os1T^SgwFha0w3b%CuXDR#By#|N8%lUnU z72U8sHH}|Q1*c{4?e)xUN?CNz^^bg%8EHSVD>6!fzw>A=;pb?P97k|?Ug+}@i!|{? zTJh)ibl+YOL|KzMOuUgpcX%Wblgnncm9EqoeObnt+X~3)ejTAbAThE&m*HxfoH|wS zZb2kw4%8i3J)PEPwbg-iy{ZN;Z07B34 z{y^>6e&cTcr|@Dd={`Zo(m~z|V+V!5$7ovB-#_!|jqcNBL_rtaVAIeHxTIpl6IV#B z_kqC{W55uVtbKs&v3zrP2qimD=~7~l@MGb$$nU~!u84qK_Vv0%DiiNY` z2!ExY%@Q@01e~j6yIps1(dd`9$r?@h*|sjR?oWoXoyDp>OzQKeuaIB$A{c`Et`=6! zfsq1;!8SH>$d*74>W-{ivX}>M$SYpU!&1WM;;@*KfXKTrv)=cnjxxlS?BL}?=dBNu zADCIe76lCB67sh2De2g#V`W)Y43y5O8!{WTB$i>x>Vuql_E3N4g`FE>nL00ftmuBu zmiqSuu_D3zTIImd#%AuEEk+~4_lqQ&$MlEp?bXQ>Xhz;VdVT#uo96NhJgGzUuGAFu za*cD7cd>u-kI6+@B18d8yY1aRcDYxb#plfnJ&t08w{$jD1zSpRdf`ny13LVNygbZp zSy$Jbn66AXc}BR8RX`oJ1cFJV!)?46%4=0Y16;#x=$TuPX8|sRDmo0MTPfU>B2JN`4jp`W<$Vc;;@Jx{Ih+(PU7!IO1||kIl zvTXBednwh^8%4lAqj6rkayQYP);TF$4gL75fMC~ycP6YdMzMRdgtaI87yErJG#rDi zr|WUrIh(VOCmG++=Zm-BXqW#T7G`9#5-pLkH#k2GelfB8o>R3!zl1u8k!3P%Z4NgR zW5N_gb?)d^rr^h^pyb)@2r9meRNMbM9W#VZy;Bh1if{_Lnhf8A2{?iQv0!K$^Y(2d zp~f^^Mp?57k(-`O(SetO7+M-a26hm&rT7Tz?uM)0-Nc-Jt|M5o6nuAHg8&ES7(a0J zLGs5L9jMC^%Y=(ePVjCUMDO*B-5Wi1tFOEX`>e*}?+vk*-LDEI(xu zbb2Q4Bk<`i_oZ5=TR;f*TfrucG$ZtOWh7#0r0$=)NV1F_n~#=Y6*j0^;w-VD>--id zwp$Oj$v-tJjPYo8f>M58dCvsv??!OZy_wthEEc=iY(Me!^p`$Zq8LQn3qSwCVh#)F z;?jLic^!r%P z`Vu{3XL$&rgmxL~4mXS=5z>#6ydWD6LO$1#7EI?`z*D^C-tvCN?Q!7;hMH%q)l~BjG;{w@3Wb>^tTKtE(mqdCfz%DruGG2ndQ^j_ zK_VA(r1~>wLte5kJy=hR_8u=adaac7t4n2Q>iezD0$Xc7N^BFu(gprZ+=1dkpmG4* z!-my%D;5EZIglNP`?v0l`Kf|j{v^blp*nqXF#-J)ybsI<=4jL3>S@VhiXIg1bBL+6}{K7{P$Izi0aL9rXa-MwoR#o~0u0tz*;7 zalaT9*+n0_q26ehuGgX@TO1z2bxQ+f_t>ug(8=#28qK)tg+$Ub zvWLgVa6XJO(vP#k?;mJ|xsr;!S=**aMbvBmXDx?o>Zc!9T(whmA8a8C(z?+Wx6Fw& z{b;#PjV62RR(w2uUpoUz;VphhLqSCEL_9j?l8)q5Cs|f26Fp`-8^pC`<*T^3<6dY~ z!QHea1-PIi$h&}8{To&|SCJz+aBo03n??eYpC7vQ99l5pHtDXPu(=sxfhcAkx3)Qw ztjj(hh%i|au?YrA`t`R`9mtRKyetW~dIo2z(DAym!OMpc$A8C4q15&m0=0Z#Tai@mq99m)F^Iw6ICF;H_bMe*( zC)1>K7A*8yZ7GVBvLO^`Gc+lZ<*~w-t*PPtg&UIxb=-ornRT$*2mJq#%+#>8zg^Q5 zZAkG;dJ!|X!73T7gg({S(F8&BQ2Jjhr5l|hQPCfzJd~mQ# z^C!}*`lI!VflK4p&3F;F56(VgY~h$1%Wmg;e(ql!)m(`Lt#Dgwy_9(aalVSXmi5K7 z<9~+Oa*_$me;9rrVilZ+O)v484}_omEm_Vu+zlZRxynxK*ihnbW7 zsu_ntn2`XUBy^v!D`olj?|+TqNJ1S#IKoJssHt6jaJ=AaE9&w)^nZm1^9nvi zaTr(Lt6*98K>84mOyp*F)qZfybN*p}GIo~cGxz9M@R=ZtAe>Rd?gBPfUzN9kZ<7c>Jg_!3MsVk2V4Xv;uS$V>@(4<}yj zRe}OumRw;swcjR(Q+{>=M56_@2Y9MUjVC`WDMuGxiq|hz(>$h~Tkm-!IA*4#U^)kIXcvRn zPd3IDQ1GP}oN6GcK|Gkz6aVQ)#ML_F5At#@sug)o0w=`sjM(n z_Ih$jSyy($oMYW!kBg6dU{jSzE*!dLJ6 zEM@Dp@eH+q?3sKS(T*TuAH7ls zrgNkwTqm&dejl!8NdN<@bS|+%iU4OpSD&pqGm0K zuU9&k>gTHxLK{RA;PM%qok$tnc)d*`$DD2I*S#^aHKzUHTVds#wIP5e41+(2@tZ#xdu2Y77mW0bwTiQJcki0 zOqP+NL6cSx`@?KN1!OU(F!oZIxCaE@e=U>^yKjeT8TA%_ZMvSj#xxyx(q4$ z$gm`phU(u3>lNENE5QvPnv!^J%u%tN{Zy7rW^q;Y428+~VmFxzBUoE07(TPO8Xv9O z`8uN7?0#F2Z%(C;eY|fHIDULXe|RX)L~Jn`Tl)hoDm&@8v)n)LpoKlp<%Ccp&};gx zT*&v;+v-ii3xFx0zHxl5%3<0Yj23X}T7!?5vafK#|GN~8ENvT%4v7_7euYp$)53D1 z?!(35Q=mSc`Hrc=zX_$Kua9xHLoE9VwEghlcthv5VYRq<1%a^KmDKZ|)?f8`RQ7W& z37fusx%@i@KL?pWC^|(ZZo(ArHVCwk*&G1!O^szs^WbdplP!~|#uW3LMMbXWqp;Uj zYV&B!<>F%Nc)#dy>!Q+=MKwh!?99LKx{HB;S=R?;Y~;xIl>*;%=?*r3V@Pf7w6?s> zq?Yh7^?NsS&{DjAD{cFtpRe{@p25qI&poO&OhJ zx!iwhP%$+7?8HgtVT@E6M9g4(dP~g14z`;g6=6}!F|bL4-4>o=&W1h^GhpeZQYQ0; zQuBVv;Xmvb@;Hn$Qu`p}EH5vEgoxYXgvh6}L=Sbdt%quJ1R*kca`!)FK+_5O;kRi) zE-o$@8IoNK!G|_***ewtuT1J6iY+nCUP@Oj!(4RvT_n93 zGA=wk18*(xS`dM%IZ#q`M=xyI%s2Dqh4msM-jNuD9b^>r88A;rOVl%0wGVjUr*}O& z*;p_=KOwcT_Z>99%cjd|*q|@}6+Il`irb(RO!ZPlIAA9%bVY>yO4)$@$AYRqn3<=UMRNFSa|s@m z9i(Hh6>z|)O-hLuQ?h7l3KWM~&=4dga7s?td>LJF>?jSnF#1t;@5Vs6Uto#-v*p`V zn%kl;Qj!IdQ{qFP@BR8Xx-lBv=s)|e{fNQ*58u_loGxTsJch30zSVJNV}(8TvB%%= zengQj`3Uic{mJn0NbkSNW|$p*?#f&7;Bx18rU>&NMG5qU6BED4vpmW>IphajPrknk z`@+D}QNJLkqKk}OJwLhS_;czgPX1$)&j^8oP@#Y#W|9G>=V#2PR}Qta1Y40(($;)r za3caE4C8hNj7i`)V*u-N4J(hD8bV`m9g*!zN*oLOx4^7>UjB^}MnA&8`c-joM-4`f zd9GDI4mawxi z1}A2OXGki*gd!eAT@1|lUPU`M5+MAo4x9OnEK0=npU zeGq)Ze_XsOQoSYz5LbRD47H zT$)I>PC{gNN$0$qjcSRDBeuFUrsQIn_%@jk)DDO^6!p*(>r35W+U zFw}4G;CL7j-wDds z;kK?entIPf_}~H8lteO}R43QNH_sPBJjz?rmbv}Uv7_tBeGVIto+9_7a`_bQD$4H% zk|NKsd6{t0S;PpPV*JMnBiy>re+_j=ohv4^SiHv42*W`%@-+y?pymb0-ktJv;#i_{ z$o+DIa8E5R(<)tK&D1~zE^Xt zzrN>5uV|*{{iSTC649X*S+;!Ejk((GD28*QOBXc~%WrB4aAZyY&!Hq}w|>-XZs ze2*@P{d^&=t=-o6>dEq$w`=Qnw$nE=(w8WJz*hx7geR`9l&4QegoTNGzkYTj$ZC_9 z?_KE)Ev+T++=S$h?(Xga6WTa#nbuDOlVcCp%%)&mT$sh6X84 z?!Uo1m|R!HVDKNSu}d(Ua^-ZgfkvHIS3VLzGKH&vbRtbvUI@1Stl%4o~$lWxBz z3hFceHtRoE)Cpkt5Sjp;=73?RMdTZnqv8Xx$1BeVDdswx3w{GDG2$x30b+~@i8_mi z_-|3MREF6|{VWUP>;HPDRl;A}1%+4nY&$hY=kmP@P+F(!45l)Who<{WzTeWH6oOWM>yqvps*G z5v{_aBKp?Y$NgVlaaxHXXoW%|Bc+nxi5vLpsFU-60~COBc`hEnqk^#m7{vnB9n_JE zO24}S@4(B;i~Tk}stqiXr-`!~Z;4{>B(2}#$MW&<%{@y7Td6s)V8=(sgIrl`uakk= z7mJL8fYq$>X`wK`9JO1n;mcH;p zM!}MSrSpao34+aweN0tPOo0<8Bn+$FKAik~a>eMV((Z))+EdxCsivVwPK`=We*G*a znUL^xb$ctd9Pf8aQKJ(ND&?pT-dmXW4VW~R{*fOg4)L#}$Es8L-Ty&M=ujqq?b&r5FdXtN_d`Cx zgGH+NGvYnrVgZ7rc3AX&WcPz>(W1AT4|ygm{7woY+6Cp7b~}2Ko}EZ-z^`|Th7cPN)n^<_ix#8gMRfEkLfyy5 z=>rc;=(eKBuVQIb@+QRPVQy0PCc%Rx$%pT~HtmmQR{H0gHuHigu*SV}qVzllSuPzW zq*syW2rtRj&@YjPAzLAlUe-D{4A~dzy_vwe0QKK+2tFf6rYyZK>Au*9JEyH!suOk8 z0|Nt36*<6Q7MLa@9r6Z$bkrep{CIKTVxZ%785xkLnEf=wpyJF9J3oU@#`5y=z9S@t zanR90o|XO~qvG5Xu_j34{^EDyYfXZ|V0OtC!y|NLV+C(`dhP=Rt2OX1Fn-(la%nbZ z)TE)?fAu<(1BpgGr7;l&;#_5DwQ?s-k<7=m#zMj5cb)E;O=W(B8><_I3jW4ILyLTr zc;R!fF0kgiO|`w~Bk{PtcBL$0i0*(2LD9Q+xb2Mu-cYV5emnSn4x2Ys&B`Z1i}0xs z|2|A;KHeQGeW5|uP*bxZqj7CW(29`WWjAti?ycv}QYh&TJ=kq;P~}iz*AC|qOP;9e zN^jYf+aZ2=2d}Zgg#4C|juo*wk9o0TjQ*r3T6rS*0C8&S0)Dx^8rOo(*pSO9`MDHp zm3XT+u;vD79`wt&u&|4}Z(o?Zwx-w1G`BM9v+=Y_Jm&_l8$53eT9FuLuqHeJEoJ+= z1ZhmR$=$mXa17uIPmz6GJktKy3}ZSBr+zg9l(GHv(2lW@bZl?^!S;;K?sz zT_C$Zch=e28HYP-Bi+;wZuy|C(-fBR%(~dDVEBO7x$e8LcpLBNWX<%!Q@_KG+21D; zvp*}!56a&mG<3Hc>(xm#2@wJ%6=7OpmCH&rzC&rzNw!x)9+j4pett&t|5||e?mta! z5D&GM7me1g}uv+#kv96jKpe)4iHi zP)5Zu__o+$X-`?9Eo1!=Zp6ylJ0vsEp&rXN<~#Y(wd>FX#B5y zz@=au{o%kzewO*9h*ol{Oy(%zS=>h|=fBvXpmnjYrKPU+_V&a9$5(@y-n^aY?nm<@FV`nxT)LVwy*1Ml>MP+nuVPTEKfIbGowX&t45`N{Yiny93CQc|wSz(` z&)36IMEvZQR$!&{(@R^sY4`WrI#M+f8s_L)!a~X&?c}W1uLo9|GR0+4Wr|2Kup(lJ z3JHc!xO|4eOdJ)*N%uEKM28z2ptQ^P<2koQ`1wMt0#QEk&a=Uiv$o5J-_NR^s?rtt z0A{cFa3)|y;2kb^WruO2+Nb0ihl*^Nmfi&7Varh6gF>do+%B+e~kJI2U zxOwv?*iH_Ad29_*4mTsf^)#DP!^u`IpwcJmoHMaeP)S1h^BCYTkU~9i^G>fjXYp#a z3#%TO!1)pz1w_^&q=JAVAMB z67QPaG2`+t1V@JfN8PvGOJ5ay3Jlv8dh#Eh3XPp}`L{aD)?d~p@6V2mu9r>kegE6Y zYO*rYrsum+rH#&HZa^EJn)SN+Ok8nIf9m|sR-sPsz$3dlO6H54vRSQdIliyG0`7tf zlX_kieZ2S*3q#XpaT7M`W-7;NuJyfz8-d^2UkoP&btvE`7Xw|RGS-oXxyA=j`NH^C z$tUl>(=sQxQ#=L^^Kx1aLyXv-VhcaO>+xbja8}wy%gM?4`JH%wRz{`s;_cHw#r@^W z7yr>}!_#GLZF^)@B$;#y!f}x;-l2d5K_bpmD7FDj{i^|s_13L^4JjqmeBwpB2;s(j z>4KX5E^>tL?iFjbt4fKV+um`sNc&EisH;cR)&F{J{8J;S=u6$`*LNucmsg%S^01{= zmzpwa1h#dg^{Gt7J$n>_@Vxht=eJd(<$hZ@^0kaJWGDHG0b_6!Gf`co9OhnFba}Ed zZe)s;Yo}>ED&Htbl#j#>IJM&17nWAJ<+vkH3o^4gUvR9v#Riko&c%V1;cwt@w1ioijDFQe6YzNZYGm=%n)ZL* z2q}^HHF`r%{-1kL3wqVMUGN|ttwIo{@qi$5f++o|_ffwq6ocE(6wMRe9QWvA+&_Y6UaKvwH zY>0G9!wb(_Q6pAbI&`QXPP+VTDNo8NxAfh+hjJa|V@1t!bHjIFbxVFRi?hF! zV*aaTmFjO^o?iWuldOkuOESXbU!px|U|KPJ)LHAyDWfB5^C+9G7p+dnqsgt=$a0pK zUy~b4;Gg0_%41WM%T4I7XuGxZw|8aC;iHr88E5B)l|2glVh87D@GRz%b_*8I>6Uu# z_nXTnxG++J0@i+Ln(jJsr}?_;)E{5C;NP3z-7xu`pF20}=G8|U9>prHxA8bSI?CA7 zV)%o9e4qB4o^G8w4;Fi&INX$!tpd%eFjE{u;4{rsCT6+l%WUCQQR4S(Z4I5`l$vFr zYkvZ_UQX;{UteQhKAXGbqfOpd1VrQrODBy;@4E*gKhtKJnEQ6q9K-Ks$Q*1wUSIuO zWTLoapvC_Kcj?>IhlbPxR?=sV=@M)Sk6a`_t5!C((sCZOP0ml3%7VL zWG`<(8$zd(M@%kHC;Uq3Zz+uVyXCsiDE(Qi2q`h+Vw~8Sc8!8k#|t(y=(5YoF3Y?j zjWdVdNMLU`i`5z=Td8mnfQn`}8g3%Icf0qDkPdE1IX7{hI1VJ+a0(8AdwS}p^Q0Hw zS<6G}A1|)@i7y-#;5rQI=L=NZmqA+0Eg%Lu#NGx z0E-+=wNRR_weh+@P<5$Hbd->odMGA%);#77B$7wBxU|H`SS)+I(j|5fU>pez+G&yHx&(pjj;Fp;bB_zQ3>taxuvBAjZ ziwbR8%)KC*`WPMYkR6$~^2#AP+=H$bB>7UwLk|XT{cQ?ole@4hB`wW=vEcViYz=UP za38?9r5sEv!6j=1F!P6PoH|ES1x0g9%Y0{MLRBdR{Gz5dzMy-Wb2be$%23JIfMxCC zBJ=w9JcE3=ts&K8!6~9pz<_tRq#UBG8^f51#|NFs z)Va#Q$ti2yM5V9(M&{3W;XU_=D&7DB{=Mztck)W9WjLMsPo1kN963hGJ?+ywo}8Bw zf*%UqCekDcJz7Q6*30v1e*1F?GyP)wy|H*xFw%5EtJSeS^T+GPuxO@po>7N7`d^-u zeEPK5ThIp|a{+qdFJ3DAgsz#)BB?zWa3$bt3_jWaV2(;YvlE|YFDR&Lw{bUL2qVgi zh0l+-(>iQ}_u&Sqw6H$*`Ne}GXwbq<%h6zB0T@naWIE9|m>U9fsn9QXP)TS(K|vXr z6zaq;pelw|i3yZ;hkLHpu)r`m5Th`AM&SYi8jhw#oZ7w@u1V| z@7t)R{NnBer?(m2#rcUkX`MB=W8dMae#18~biIfidqq08=AdZ58Y`f|RO#tq!hF|! zmm_Oyp>G8MD)_SRJaL`gyqSCHo0um#3@oRX81@yJn|-t)A6?YF|JJGB6{NM03AzQm z42ak@KHNp|Z0bSEy2}jH8Mg3yP_9Xf7Sf`H!FC@0U`%Z+-#mCSK{V{Q1xK|Z{Iuhw}Bxj$dX<{ z1IgeA2~o{TWe&Zqg05}ws0rsx^isAIZiL8$mT*XMmh}-%UTSR*hy)x5J=qz$>rUEhzNuw@D z`%m1(Ur@^K#@)m(k;C))_V&3S6NbSe9-OOZVE#t&As4?l{R{O_^=#;gdJsp z#anfW83?~wbEKIqAX*60iFBu0bDJ$#EN8xRW3^1zBrB25m9NrkGF z=*A~iRp%+!Dxn@ZZ~nEXt*rpoFzhSls>D7Lt`l{3C+T=GPA=nuUeFKg6!bEp4HDsM zNxA9@R$-eO@i$J9%~Lq(x3sw2IbS7#P!H$#R9}h;|SZcHLk7ZTKRs}fiF*o0%(H%0FV6+Zc3d#rt5kypa^f$rBq12<7r%SzB!M z(LMn8`QN?~6T3>5i0(K5hcub% z*9k14;5a0LH^c+4;Bve)(HJUYBK?Hn-J-+P|#M0)!PnnTQ+Td;`Z{vViDm9=CBlOn2hMsl@eU&P@%t>e3JE(r?vj+hf z2W3NAFaTos)DW2Z_9bwth-H8iXnsa&T3!!CjNI!w* z5n!XJFsmU>9ve;;>)0*`b5BW0i7uj)Fe8mg7hb8Al#~QPN@Q?w;#Jq2luE9&eHsZ` zITM(2p`oX@R^R*ft@X*jTUAvYu&vj_2oWnnt598aY%moc_wsT)rEk8^%FUSh7zcwq z)5MTn7@L!F=n*nD?jxrckn!G)68--86F+6cTsAZH?bgB^VAR|oK6a}46_i~ul;cT( z6qItK?ylgw7AAV>N<(3GcD6)NdzjS*Cy#-Ou;^o;JkrzCK{f+Bm1*3EiBWRe@xE_? z;RW4{*w#RXHEyN3xK;fb$T4egZ>+C`pAIi3dv3VcBYaLqu$14spx(R?_js|xS;CP{W z#G{y!rN7(H!Ih6<&BO(W5%@b)X6u(VE0HV7YG2lE_!iJ^+MUNNtU1qP9lKoANhk2EPcGE0+o|WZ)4}}_whQa>D;RtLUIkCpT7airz-=zhawN(m zBUaX9o$u16OW+|0iSEF7_IMbdXQn4s@O>3X?FCN-&gn9~hyAh9XI~ogXd3oxDZuTa zGW|qmcH|a00U|6#QO`oe^HN-Zuv?|~^3-y5$}anBZRtTSnN5{tj;wtJ*F4KD&=Ujd zZV1~HWVd0E!Z~Yrw%m&*$Uc+}Hmk5N8-Pf;ut$Ik|83$0TkgY$4~vUV74U$?A>!bo zCFU}9W&=`)ojR}8vU}Uv-N&(Kg%(-H0{X|8APlk*VvZM8+Yt} zAx#fVrF?u^Pc0e@Ec>(6VxZfF-o-Qtjd)oyT!!7Qhm8Ub4E9*swP)>?0f3I-*rkdR z9bf#srKi^gS5#MbcN`_ienItiEnH>j>u=|uBBI^>Jy2&~#gzaC2R-7?@j+N;z}0Tx z98lG=P5nTvg3zk)Hh!!PirMC~JX1;+T<*zD&ot_5!}WmgE2prcmpyM?M#if<*AC$s zv$S~;`ODuBWRsUO^T!CQ^f{~1!-L9a*|#fRzln}+NRac$pk+mPG#UJ90LxDEEplCm zUx^JVLmQp@dG*FKD1~9%*9SzkKwVB~h|NFLZGcT@YirvJJ*_tdSf@FIZ@%hdL$V}@ zuYPli1i5G~qO^5k5!y$6%T+_~+pN&L$F-mS1SmWtdurON%Ocmwzn?Jp;!X=-m6w3D1!x#P-L!_-6@53L!t-HZ z8DIPL4}$q;xkIn|Fci#{W_nPr~ws* zfM%i&6s0rxXm|jrn*PXoZR4X58cn#cKfB=PO>=tevCH-hK!NdmkDM0M>@@B7Dq(Xp zO(MsffjQx--Lm4zALG=5)a7Ga8Na_2GO3i2RpO+Gb5Hr@FS9?-313TIzl#$Ov3KM} zeD2shuEbZ@dwV3Lq<6l$k&m5XJ_Ae40UHHZS2ftoO1CNNrofyMR6%YKh1(mIWQoh` z{Rao$to}W?SU`v-^cl?qyld1-GW;JFu%7Y_z)uu`Js(snzsHDIKZoI>=wB~vI)gcr z)H>_VZ@_R?S089YGM|`!_$rvuQ%vtgwpG0oJ8qW|FIGO-Dxuf@?x+9AH}y$6j3B1hPs<=thO4kdQsV+74xd{Q_5h zNJs>0|2j|BJx%TF>)YAc2_Z!L$q*uB2OvU*5aDMB8qZUYA3p|QN+R2));A*JG}@NX zWHCO126Ins&8D$Y8f`rU{7L;&ic`puOJ^HatNt*GFb)!DA#h>Cy+hB$lyk8qX1JFq^98sGZ|a3> zi`hCm*V?qujV^x#6O_=<{qaC*cY?j&Ke~~m=QL2Ot8`6oD*_UC?`LA&(5i%=pI<8H zYxhL>K0?-)pIj-jO%7hoQAV$KHlCSWCa0V zEdLn}4zT;Sx3d!r<>k~xRYyRu@@qX!2CFGCX7noV0>f^#zf~m*{BW{1t!hj##{`YP z8WQ`Q7@_+s{+OboK2B>&xn`1y6{!D0(m12&$FPh#%>&_0Gb z;)3a?=8+M6#t4LOucK??X?Ri3Z|?A?tkbgc{qWySXbsE)MgeNA%oi_6PCmkhfHUUL zJjY8iMoe?cYNcSUSZD?dE$!chg==7z3mncJ`PmG?9hF%Hy(&IlpVp!|b?=aZf(7`? zfZo`}I65u>`cYX?K>&9~-C2rsLJdt#yle=l^o7OoWh;K_k^~ef1GK5bG#G?f?f0Eg z;TzmHudAfX&t=D)-$_4%GMjE+Z9#rrTqRYfnLxw^Jy0+nUm zN;q{|F~!+J5}22RJ0SD0jhKXF?NUN z^i01WvDA`H{Q%|wgA4QEpFyMwErjYU_qjyyF4F%x0rU3*gKYCsFLX?{!E{m!6l$^2 z?;@m}_Tx{{&?XWiIGx2%{N4${OD}e$W{thng{?DkwHE9B9nSL55zsb&Z`sMYS?&DD z_}$IRPJ`cP8f^)YGYl>VuHZ>n>+yqiflf7_oIQ{G6Nh_h)G;m;3*~=jXLsQA_*?a? zm^|<sTt|Gh7~mrU{hfEl_#KY2OM-8n?eB`Zvxl}5Lj-BWb+{#a;{CyECf%4JQ(lKC8kJMxeyGfegy{9NfW zqq!eD|16KMh1qY907o;i{BTd9Ep)$<&Jc& zTxLMHl`E+8R~__Ocw0j*E>Tev$jE`i31@4LneK+)C!=D)XS@S{KR!MVeksvK05Zi% z?_njNyr_PV?$rt{FVP3xPfb;k?l%+6pWd<-7u$322qWj%D zUs`QStNjrV+$Prf z*Ov^B{iU>g0J9o`_XS!RJfQvvA20{`gj28B+zDf~W4qubY|nKnz6*E^KnY;tf5Vty zhX=pBwpVyjLc#?IVbZXXTEALgy`>%wBa?Yo#Vj30cOOS5C0zx*2e{b@8)xU_kdl$L z?O06Pj9i&SVMr`jQ>S6W;hbOfEez*{<~tYvQ#QN^J#^zuuWMp7nq)|S%|U0b_)d2h zRn~t}YZ0{@KCfvSVr9urEPL+}+igI6K=gIVw!kXAS4qTsP8k3r=t6D9 z%y~Y0;U$=gA1Oa7xn0dhK?EPcU) zuy=2O>uX7hM>+iPFwjyxGGXX7F7}r)b%mg zzaiRz>!D=+;02nby&eye4;3XP2J38q41bR6wgXxR=66@FUS&NuIX8#r0?f?JY`N3| zcWzhFCbLeD2g2)N>kuY@))*4&-H#7F)(lVcl;(Jc;2Ar8$&!+Q-#W~%Oc`ve0YzXG z<<$!ilU)rC!TlcQeup5q-?m}Z=g!Lu)-gX@GHrTYriKjeRyHHV0%B1p`|g~JuV@Il z{j<7!X%cVODBU1N|mD3n$c1x#?-DR6Rf z!tySLro+QSK!a@F`wN8vQ&jTtBf3eQ z$KV1!jSCbwK<924GLn(i6N5AiN(8JLZ+ClF3znmvI7A0Q6bO-egD3w`F}2SO1$Ltc zZWX|$v1p~E@cyjbq(sU#Ufsiw5cm`RP1aZJ4qy@qu=BN}3U20BwRsM2WnAHIz;u>1s5)3`euqZF6%lF`8apF1mdM6rC`@>ObmZ zBKR<(-14HpNhgdpT(bOz91$`xF#!a!0xiaWR7I0$>E1nMzq;JNy#$ERop9(4WoUDr z46hhlKaSDK1H;TVS{w z+lV%L{{>$C-j&WV4ju#Kkah>~0qC1^VyPGP21Xjx4=izZT)@=OhJ2gvo~LByC-_~3 z60{}^#vuq}kJH{nm9JPp>Y3vZN4l%!@#coQHZqDD51E}2Wn8Soi6B;-90^uRpVGCY zVmXVY2_Z!BW)7aagzyqkYDhdaC}Zz??R~LJ`H1aIw|2@E=maW3Lsy?)eigt&lSVG$ zxL;y$-z6p{f)xu`Cdv<(M?8BKgZD}b2nfJ?HPw90z})pLFuU0)Qfm+0VF(Tf7yp!n z?`EeekY`X&E9+{*VJCO!;^6Ge#mLwT4Cx)1`?-={cp2FOd)s4qcg2A<#6MOPBi&D&J;_3sa zGZ;w;7$Ws*oA_!M{5M_yh&v z5OIY<@WO=)P3m}x4*oYVfA}L*edqyD7V2`xo_aU^+iQE0{P~21^MEAq9ybQ?7RDrP zojmmnW6wjOG!8Tb4B-@g{!_{2AhY8G&9_giB z>-}J)bs428_o8pZt?8Wn0|ocZ+q{sqs39}&!9%-gLBt`Q!X|mR-5AD7GI}2%0g%K0 zsI)}0%T7zawc-3h(M3nB!0=?2JHAqjpN~&ywid)Ji(|DXa6g2W2F+cb-wcXj<^;1I z;EV8+?EhViF0r<;{6vI=FbT8@bD>Puac~BBuiB|9(Clj1r?#ErQ37(B?Xr5r;vqn{ zumoYu0$oo1dS(hl-C!AL0g_}WNTJoQWBzwy3pXmB(07?uS5;MAeDANL%Z-Kj%lhw^ z;u=&8V}hSvbUNh4>aZ&Bx`BojM~J%0`bneQ(FHtCIR$5lpPm2-&Z@}F((U{C6TguI z@5^@O?fN%ilVn0JqTheBrptuwlX3N@UN!MMPLcln^lLhXehHE$;iJRk1d;M!;QH_< z@yG^}`{GT+3Q-sDx*odTyEg+!I{2x^O>3u0_X4N@0}ctZu5X=mNga1zLfjazO)o)@ z`T08(zFU8{BB76l)63$z2G73w%yYonU-^a#1qv&RES+Ui+ZFV0S~%m<@JjW+ekF)`Zs^ z`v)V>vv$O8DxlXrnaL;+-2Ha|m?BO76yFlnv-dr}O#aev_8u+sSMw=0uiS=|=;IZ? zlSvDSrdHQG^i-M2jF@0PHJRw5QiqA}Au#XQGsbuR`~xVQVT*{yQ)FPCLXG(C+c#jm zMVK#G)EvSX!P`D9y=8hqsl~R9GHM%2=a4QBdu zhviM;zkmI%uK2hgt-cZ@4LffhU-eXrg0allYji|mBEUsJT!6g7{4+nH46nn@k=rOM z&4HJJH;`|^L1J;%rwYOs*qsLS%HuT@W;nIf)W}gNNFqCB>AV?TgrGHX;<^mes620* zAK$;jC{0Jd5in!W8IpfqY9pRbyASvy91k^6@%fgBTQ~6u2>jE0kuJmc!77plQ>^5% zmmQ1tV%^YKz*`vsQf{3bmT?7KEO-lf&=k;VJcGS)yaE-RUoQ+zz_C=gVQMNk{kk1d z!2Vu1i-j@Lq1fn~hUfNu=7}${qazjG>T=C&Z#hXS{99M(V zZ&@5IW@;yomuNI_sA}{B+pYKrGnC#i2jX$vrAr~Nu<(fXz~EDqf57KS;3?B3f`cmte!igiY}0WeO+f4YsW^II zK<(|Mo>A5l9~(5GNK{zTtK=$AyL#TV#))T$bIhh=#WA^T$l{WLh|!m&{;4GcWkdfJ z378!NCz$wIdpc-|LrWC#DXwr$80S%?@WG5f-tSCyC_}FRR1^Rzi+$dPAr+_!|MWA_s8fv$TAB)6Y#N5OoANkk2(u-)$*3a?BgD?ue2!0;oU(yQ-9A%TdX)rH~uMJqGAU1|D(M`B&D1(Y5SOU&F$Xsd&9Ff_|zggspJbL_?^{Pu&dk}EZ@U;UE zTLkxy#1aAvkC%5xt@u{S1T^?LAf2h5%gjt0s?xgWByng%ic_bywznnwiNf^0g6s{PyYRw9=dt5=X};SD{)N;h5Fd7tqb&E1FgdzyPmEN*ei^WZ-I{@c3xDEb;W<-8|ol%niYDF2E4*7H!}dfWJb2 zbEO%>kUanfEgER!qC?=xZYE2H|M(-W#)eT=@cVuQCq9hsY7R(#(6FVZ4$H`A#lL+% z;Q4u1k7p}(2q_4=5nZ=3Cgj_%hW(Rm51+xJ^%BLck=vBf^OY%GPYKcy26>P`FaK;& zah5Fe=^X*?jpNEA?q>_vfs zkfi&{u%xGM+>{`$Q0!~_#oS|m+cU5gq@j*EUWd6eNMPCB+hg=))V+XdhVRo4<|{$( z0jP0XTji4lNvnF|z=0>k3jNhyj=Du9Ve=s^v77%$91u)=5H*KJy&$*4J-DWPfm>b3Lm=J?4P-ULI2zrB`KivSEzJEZ8jCvH;zmj94FhKLq3cwpNRzzjWqmsntM?cN)Jb#WZ zHeD7rrBG^JNe|QJLfgryit^V6SmJa8;B?J|N!~P>yAe#{jo{S_Ik_t&3Ae3hr5q~J*qnb!ovV+-nj*{qBBr#!zKn9ieA%i z0&Xafq@~#yx?_a;zE)NO9nHxw(EGC{)nBJYZ{|q|bQ1jVS6ZtY(VN`&s0EsLF75`g zzc@`+c(Q(uRxKH_(D%-pfo5mwRnV%_d_}@DHIF1_7Atf;F_p{fn>O6EnyOt-dq{;gIO==U8M_vIy68xw4h+2LnGJ@MF`&5qdny+Y{m=y z&t}PoH8##L;S5%?J4n~9$$21J?+Kv5@Mi&OAyuW?JvhLRKo4ufr8sp|)kGaY<7s}F zB@6mjs7^J7jsK?Tr&%?96-#H`PZR2eBWNyKwvLt%EC( z9b|TKd9T(%S{+1d7JKj8&A;!W{zNnVQh4(RvyM)pat;+)jUX<0S$xNXc?A& z&p@c(_Uh^`=v|&j?(FPo$z5!K+nRJ7$N`iQUOhAts%Lh2Nue1OrC+jz- zRvP72{Wk9NC4h8IJx|6l#iio-ec^vhBJ_I@DyCz{=L;Jjs-w51t~DMoa4FL`4A}#W zOibHQfT8V9ojv&$O?E49Y&Z|PP{E&;Y)OA#*p#F zMGg**;cN}&IQ48lKT&!Jb<+xw{Ez(}WK#5@K{LRyys@?>o;~$D%0cdAQJqBKx5OhK zMc}1q&TjUd5>_M~yWx>j=`h^??_y5xU71*=+yE@!+}7#`4jSHB6)4zf6D5vDcgDt~ z9t%2@?Ss?{;K1`oY629b)Yq~!JYvH#SXfxTfZ9Pl4z2Jo(CBJclHOO?;DHB#tgr9v zNcHC@u&=h-2t*CFRBuYHoT|BrOiuoi0$DMn0vtJghMN8Wped@SKZ}iv-+(f@xOfHR zSnw=Ihlf+LkF%=^;NnS7&>IzHvBta6L`1|}&+QxU!b)Ntij&Chgt)Vdr+LMOeG`W0)HNO+YG(G-6|80|cp}9S?OZ<@4Xr&%z?WzI?edR9+0g zD*)o&jH5QRXnxJb(9?)jLnWY6>jct{l4(!hflu@2@Vbp z3Az90eNsiucL2IwH1;qCa?`=y@FovG%@(nFO z$y@iE#Z`U&TL2N>CldJja{xBM;nL(189%6hbM^@a&M~0tfXfE0!ee)FSCNw_?IBs{ zaxy#TLr8cL(F_`pMtQmZ_?W0=&Yh3^N%iLuXxt=cQlEG3M@)sYS^j+%wfN`|ykXpV3pDq%Sehl!O0y!KRcH z#kU>{0<`nG+^~oKA;`0#t(Ca-t*-9xf6aLsOr@-TS_g|iNCWr|y)BI3!*+Qs`CuQ6 zf=x|KTEt)Id9~7FqNAhR)8z1%2GC@8YP?ON`4Bj{?}IH$tOCt(U27|T9l{3a9Ww+S zH~=79f((~gM2xrFMW(nwP^a^_GbB#Lcpmp-BCY(v&^;$(>585>+C69wh~&NTzYc+d zF+|5jMrwl;TJB)+A~kg+W?z>gZ9O3-DaiwNAY8Dia(>6)!!@%)hc?I+do(T&2%Oeb z(Gd*(fTTg{%MdhBRRBgyk15ZlmP=4y8?~cFKL!8>KBz?Yl-GH5)mFqQe@X2k(nJdN z`)6U0P)8O;kFfY7#7dUP_=2PBUnj+YKUZbG{J$0;Se{=+$O?_%vY06`->am$8BmX1 z%WjnqZp3Uq&T#@Op<_U@H-3ha>R(SV?`J>5cpJdlZBYBc(2SSYNJaEend3VkZAEzz zq{^x|_RSk#(4B)0t4%RKU0&SHx}jQ2*m{7rd;W4Ytyjv02P_Xgy_+krXN2};FxdaXA7T! zVJ`TBtDq?%_;*`Kv%;@Mt_|=Q|FY!49pW9#m(vZJ@FJmHXD)+echNjYUkrZjOl< z;SG>%ju79R$cU+9;p66mk?T3yUajFes5D>z@>KShK&LuOXSYpL;3BWW+%pstz|B5` zTM*z*DT~n>AFpGD6IvrVTs!!t-x#RStoRE;apwmQmS$#VV6f)jKT{APT^%oy;W^db zn?!9L*#|B>P?kW0{sxu~@Jw;99A%kCZ^_jFt_4lDwzjs;_eu}`F$ir0MrCu;t>Qym z9JnIL!=;vd>3+1|b-cvI4)!SCS@uuiP|`&^I4-FC>8<0mam52LBfQ0@XrI z@94W-xKRKQAm>zjiZ6VIpkZ#VY&D<*3R!&VHe9g*{{?-tFYs_MNP-S)`LzOlCQv!7 z!*LKn{4wj0M^MlXpdRTLXU?24zkM68x1E^Cs4akh4Fv6R>d+3=IW`NPDlI7yPt5d& ze-*APsF!?qSFJz=4(G(~I?RW`k)dCkUbN9Id>2&_)F}G(d%;-WysL7GqFNgFXXF#|N!af2999Sx=@64-dnA%eSJF)H}8M zw*fBw%8wrk3kzW;3~Eo{rL)q$LH&3H&74D-X|`TouYRJr0RdMk(*lFGs#l@o3nG3@d%DPU!-v-oyg?c0x^{G>rcR7z@v}ONVZNm2q+ocAI z6JW^i{UIUcam|RaQUeM2XK3dWKfdfdTaf3E@O(?mt>T=>ybR092xs5@sL`U$`y|tm z{)aI&=PhN15RimrRL4`YD2j$3r&V90exFgbPv+ZxQA#8r>I??q5vt_oH6m$rP}Y6a z2U^EoV**{K1P5lbN}+;6`9dSwl0qLt`5x2#jY4I~XTwp313XdK^E^Y<8!2O4t}8Y! zE5kOwhoh3c<^1M;4R2_^IcIYZIuUJkiSs_$v#XS~+jLbh?Dm3^dDL^Eu;;l$*DIBm zD~-~Iy{2XZ{{X@sb?vy$@aj~#b_8@wXC4?sm&;wAt%b)GSZ{;h9CS_(M%sUHdYwDR zY+2GZ!Jvyit|Q|*+(SCjy5U_Qov{rM$tmp3Wdjyf6bm27Y?&>P~`Y*qr=qq~Bx3IA4f0+8}u&TE1>!a5~ z0SN`AltW8NN~3Z>8U;lfK^g?48ww`B zF4;b)=yF*&K6}>1m{m?t;tYYJU2r77A0yT)lYkLkoteR?i2FG$MOn6&Z2Tl;1<%7C zS^hTDx28q>4RJ(YOS}tzZ2-ofaGf3fLDW2a=;z9VS-e0AZ62E|2t-?WFv!zhcBxD; z&}`dxEEMK)U5gqTdvZ)4jY5ZqiyJGjg?uy>N{_sgyl!7RqG4%0`#p<%n|%>r@(K`A zjh|Wl_00EPh8JN?CNd{bm3#Ep4BJ*VWgzh`QEW$OVBjOuq|wZdcZ7ixYuAr%^rzbB z=_MNNKu#?u%`{X_ndTlHFHfP1$_LKuN4&b^+c zwXkMz*&n(Q7tWs>D1x<_=SwRsb%2j3Qv`e<)nY?)Nm@|sGCkIw{gnLjaC!oLX4*zC zb8aXL4x>_2IdO42NNq0TkW33a$X?we#4SLy#q4z0K#2oY;-l?v!%VseSUS%rq(mUmvzW)qdt;5BkM*+hK|F!8UJbGgMW}U@u<3n zM4I&h4-bYWvD#X+&FbjF+v;_@_nds3=gUz3;Y((Ypn^d;u;St20cBpEhF20+ykJ*& zbo3k7-Rx_>7Z;5NC~ZgtrSpxC;0P<7#SP?$LJP79ZgIsFZ^5px^M1zo2Y|lEvdzyaFL*n$LrK_GQv1{rmH*+Op zp#79NGX}Qi+38*tOe_3LEVHy+SqWr}85){1=$nTlDpQ2s!8?k>Z#7CEo)<7g(U$VE zkVbHZ(uWxicyU^qk98`_w<0eg5KpfkEhII*_F9U=6eutgVh?@-P~Q!JsDPs*e7wNS z9HeX-77-LgTUuB|*?O!HceQ(F7+EEK;nF{{910m&BwJM*8LhIX2||R%awEk;4^^wt&MU zi}n_JywIQw34NajuYSCP?*oTIV36foK-7yt59eu>H^t?b5r~&s#)e`x_pVbRfy$$g z@n_VJ;RW445YGg=@>MwQ+1g%3G?|i^3ZLFwc`9WcdxCsIRRAx8i;GKf%4zUDtDxZ6 zee51iDlb^%+MSR*Gz=x10rd=Xy4`>E1NIr{WJBUbd^AE}?@Q7*k9gaB`UJ3XlK_#` ziXz#WtN8c~+LVtLU~nl<@5+hIVT{4rxZUg7)RbgALq{5U15fO@&@-Fn+xo6EH2dCk zF~uu|Ba3V5_^hAAyl8(pTpYn5P0{?C_A|jD`g&|J)duC=O>?`Pd50_Z#*M7_U@Mzj?y!~0`NCwS76th7(aaURw zsDCv#H#g>#M{bP)56Odu7=b|i>VmN|v5&XjHZ!CoCMWY1jjRmR3}<|rpub z)C#SC|CJYSO7k>bN+lxYa2afT?)7gOl6({M(qo1dj`O0()i^pih06El&6~<+FDc&MZh$qv9q%_0JweqdY6hSA?D)ar6F7d0*^SI zWS!Kke4|15H0K4jhKfolB+T*g$T|6>K#%dA#ID-m_Q5+bZ-3qf7_+IlITyD8Gc$GZ zB8+@ras1I^%JrHnHb=D+@$i~n^p6hE*Opoz(oc%ESL7!MrF{k`;_=C{J~<0Tm+5TK z(b+~-efx^%qwC|bX6(296@+^eAH3$H3uri#TisT6B*j(-qbSG=F@WEN9v=oPol}31 zC{e#7ZBq)-jKY38FgaYVMQ`tgt&bXYTM73w85zHcwXD?CE)`NwN~BOME1(yUO$L@( zj0y8*POA&Q7X0TNye4$?GOpvRmXdUXL40%AsnEp1zHlDCuKrpLMQ#B$wzuGTvNK(o zp+02nW0a9_v5bY~d>4~a_N)GMWgO4o(9j~lw6JFXnT+1KtObee-l%0j=>CA_64&A; zC#@T*CYKqO^ZJcIS~lCYez}v>`JuU8az1esr=Ij~ya!!hQzXah5?{T{MEcIu^`3|b zPbxZ@h;1+7W6E6)ALhiaDmbDerB8wlcGBsH-n`OT_%t4?_Eo=2p&p5+_!C0mwc;^!?3$emA>k>i-j8COMnUrKV8-RBiN? zIp8Vq4kDwX$OgR31jx>{MLWOHluK2a#zS6hi5ubfcCs5SH5gFwdXtrc5*+q|Pl5Se z-mB3PK_U#X2**>!bf>q$qVq+u^Y|C@Yb1CO z57pQkpCFlNBhL}_arfPFwQV2J+*=!=>${u$O4urq@%KAqEuMq9Ma)#3{yrQYz?3Fg z_7T{ zeCu55OOhscy=)5y!Q2P3K^5-0I&`Cag%x2a6Zhtu8!yiz?v7tr;u2@99e$O|j=~R= zK&C4@p(4cbb>t`D@hu+Er`Q~kTu z@;;4**PE`l=fHnBGM8*ApvIXR-V%M~QUVDMsFBxbEH?MmsD|!2VF`&EKuFyK&bRyh|hO7f?TUXD8_-=7(gj3vDlTZg6%`Ah zkZ8}LmeULG{|qJ(rOw7}3YI?YLS`ZjA38v@enptkKSz-^=#fxb)yXwZso_fU zcrJ#WggXUNQl@s#U%cpZ1)MWXmMQs@7{o5P-qF$^A^PnoectV1h)!BHibrZ+QB;6G zG5aN3F(S0`g^}5?=5*|Xs{Iew2J~+_Ijp&p_wywvEg@IwuiA*{CpB&pb`8xXJKo-h znxes6h0XK7CrC|8!wh6PdJ8NqZ&T{0%$J5{wqCMV+P;NA$lk!G>`olwoLMPqLH>gq zvR`#v`uV10*YD5Pjw2329|!NoUrx5#W?$DlJA7%PPb4Lt@Xx=$_+gL=7+Fh5c!xF` zDr||@;iZjSSARkd|JH`!AY@Qn{2g!)_YQ9HPc`mb=XF+rI?|BgFS$GBgBOYOm%4cw z4$)r$I|Kp22c8_hG>KiXv*G$G(H73pAf*%#o-rc8)D&hC+34UU+UQ1E`f>puvYrr|CTc>Pc@tsOtK*sYj{eRW%+7l3*NVj z^AEw?>i5`9FSVlBUakWDj?T0%`?VBisMbcmP_VXefn*J*l?Mm zu_zH#x)WOz5du;7(J;ceU$MB-dUc&zTP!G(r@mQ|fieD-t)rInF0Y|b!c-2B8vJK^ zwXgi$**`2oD)Rg^zjLZnL+ufbDNDrDJVg4PiA zhgO~PT>oVHOOyIQ6jz@4a^(QAd-+KGLM%x|l4juKwtbvy(}im#(o8&tccFPsQb95ihz2<(Cb9x^wv= zk`x{&ZadS2qIdT<>u-<1%su?f2GF8tZe#x5mJkWXt5~n{sT7{@82&yulv}aOPpI zI<>cNHvn<0Kxy!nIu9s(Mx#-vx`zdjrIzPx{ce6fydD^q{-vTzM|;Dt-V={aeqp0^ zaYW2>r!-sNC-f0ecLNp@wJ-elCQBeoRebTn{t72WScusb<%_1ROdkaJ5D%krR^MGU zmanFvZ+ffxJdn2AhZ7%5i+o|9uKG?6>-(N=65NSWYvXkN8`u8(hD=^4DgypIAvFy- z&GBS9U+Cn=$D)XL`*raju=-0~o5HcR+H}xY6syo?T1BOzSNXWg?Utc<(B_I&sxiCw zzi0e}E?=*?29t~$A5vsi4RlrWug_Fswata}VEH+zpdhyp^izi*kX9k^eI*OC#2LI% zcS!Wh0HlJ5`1`-DsO=FBvv>=;vUa$Ff<46xvt-%?8R5Lo-P=)^rLBu~7Ny01@%$3E z3AV|glIU~2H&t7!%fe?lWjiX$G5`;mJ(69SFjpW(^4YDwO4sk6UpKz`XDxGb;V1#T z0LoK7HeoJNara;gD@12bBs6&H+D`>t23DeT2}M|M!hPZ{HZ^T*{{voG=KtO!^6x#^ zK`xC|%e%>HK;0hsxRn~|DW^mjxT6V~IETqHbEb_mT~R``*g&Inp+NZUCXJfxI{H6< z{$VGyqeEEK7il&NBeyIpZg6<@6LV!8qKNLWHQ0ne93J#1OWiHg?@GNZ+_e$Nz44$@ zS7N7^gd7U8KNlq+l)JZhbuBc$*m8#4x`;sYH#8@lE|?Bf%Kn1sXO~=2Ez?*n&RZ`u zG{!Gj8mjGcfx``4?|!~iQ!9s-4ZT@^$&bokJ|BbRcJq<9;lVvNH@`8LboYEl7RI^0 zyoO8{n2w~uT??f88+QH7AY}~>4t_Sy8GT1OGDbCX20--Mvz!$fp`ljO5^Xr(VrdZ=`EWm0C2wP6x(TstfguKz{< zd?VoaP!JO{GnsH0J--x4tH(rh710@w#xq8;Q@;{6(?LH%QTrHeEu0hZ>-~J+@`Y}# zaA#s-Bhf({xr@yIf?C)8EzmjypT|WSyUl4bHcos>FI>3G{Yak-Vq`%@m&{TV4Yvrd zglOVZpYa+pL6x3Y(tvCbwkE#)FSGG8{Q2>=Mh$x&feSk~@em>69g#To{+xPZp#rz% z%7haU{-Y;ZAt}FF__?vGzt0NXx3=}Wd<++NLT|2f9lhv)H%Qdnj^DEhU4Nc z2cW{1JyMmgQH76NkO?g=?DC}j4aYAcLA5CKzUEaKl8L0<*PPbyQYBCyPE^H}8LYu1 z`+kLnYOHKsywayw6H51;)o7b1#0fFt&;KR~O9dbjf$>%GF8`fezB?3QbTnPs$9x{~ za5VR@C@ejLG|AHdA8U+L^l`4P_A}L@m!3jtS!Gg~9>yynziU+me|AVG57<_%(6ru- z5a8{2qLw1Zf`nh0Z~ti>-`o?@s?cm`oHRJl`nB7})BU*t z;;kGC$e}>>o~N;!o`d1@F+< zY)01zL^}sABEHht?+*P_e_8EnknL*5)sYWm4pOz84z)gB?j5Q=EU!0z@S-{zh@JftJ?hOlV5kYW%8?B~*A5e72G{W2Y;H zM#vW_sl;{6Q+y4p*0B^@>}i-YI$YM|zwO%4Fcct)f}^YyrhZxfNg0hK_8NP74l!A5 zy)>)gS7~Tz9etGiO)S8;v^~IVEVNJK63kJsa_4z7M^*iKk{=sycVBDGLf^{ac5qO* z`ACL6TjULhB2><@5^u*e-nNcbGz6N6aybb6F5UYneEO}tni9B!z}fT}`uKm@*FFn4 zKY@m68D{@)oLSmxZ?j_XBXyzTh&E=p zN~X%?&82NA(^%6BRAJA2C?>)rP)d39S{2r>cj81&FI|oX#6#wOfzrdj>6L##un2J= z7`f`fcm)8Eg4_T#1d3B(4hoW6P38Ixh6e{&yF`o=lGR74&D3vrOq(B*VV(Ap**;S0 zZ4Sn|8NKSo?yiOL(ndzPIlMMm`X9OB2GeoBiBExy9{ z$p+86!ne)HyeyU~8%NHJif=@d8E)ITYeIR2xp;8<-3DRuor!^AgW#;QSGJWY-5Uq_ z@8cP3y&%hrW}!Q}$e7eR`Qi3CcDWy;lSlG(={HqZ)+T^g>*q4%LHyG}CC9A?gV+6g zzt;4E7!djnorJ;i7FIdB?g*#&jE`7EBo`3|)_i$^E%I;+Hp?3B)L2`7}Pz$t`}p z5x&fUddFr{8*jHc(WeV}L3j}=4jL`Sw< zo8W!p6Rs}6XMc17yj_<3sFJq52><(;YLKh4m8WrC&gg9Ghp^YP^?QLx`iNm;QkbfE7_eJkq=$`LdNf13*$*Py(p))`Y%YHapnUQDx zhXo9pvzf`vu78^{f!+n?DvuC!w5eDl-TlrG#Q)QQ9qu7LB=wQNdgb$=*+U=W-tT7u zcGL8SrFArVZeiES`_E1XC|NgvIO$Wixpn`)-vizYG#H1+3d-c2s%Hrtvb;15yBy~c z@ARbWbdd3+Sxpws!cQfnLMh&KGdy~&ML9*|dtGsWlgx2$OgHCFDkPpv)B}wrsy`%WhaAFWEQd>4;E{>IB zxKDleW4$Q6RE8(*&-3=(|M_hS!})A3n?X^&EaLh^dQdq$#uYU6&Uw}4!ulSj;#)d8 z0(Pt-5PvtyWIGF4j|$AY_OyJ0kMr5fL_!8kvXZaTDt#lJlNk5Ytm;p_adz&(DpAHH z51b?swr>&v!sl?yi#vOM#e>thNIG2)=TnkD?-sF&s&mKzS!RGT>~3jEmlP%3a(BOi zc=(-I056+9*O@Y#2j!&(K(lNy_$d4L^*-dZ;le1e zm)Gg*Y!<8LV*9MkrodJy#>T23z{l^Ip^r-^Eutmt4sP?RP_Y{f_$YcZ!|GVEtOcB# z@Nj0Go65%;ptc6rL+5c|od9jg-kZ$zrG{i$ZZ36B%uPt+sr0zjaPfy1|9Oq)8zv*n zXs(;}mSC5Pk)>ZsL-?2Ob#TJ6Oz2odJ^FjTE^_=^$zVxv+CRp{$1*Pa2w=e7kF*?0 zV`O|vUtWae=@Y+DyZ}W~uJ6~Wx?C5$DY@&}Ig=hI=Ui)RIXF0;_>tTU3Xi^`qz!Q! zbB%g8!e7a=+t6mM{{2(0phM~gvvl+HdNUXNqc74;T9;%PFE#U*{np-@&Cg6Xn&;2r zTzB)%BXj=u2RxsyuxGcrthgQyooILl+~%N#7EcJFiTr-jg@6A7!nXAo*dY$sF&1WY zBIw`%WXvgiieI0q=QSldYbydMGCGjdK&NnL)Fr!)nmwgs{H45#OkCls`Rn~oVas$& zbjb3>XrDJDBpPa8(3r8l-}YP#e-Wx5>V}33A1+=iNBL7kcjf6@ymPmj?FS?I|4Y);k|GT=tVmi`7D*43;HQHD%)?=H~(o|`oi_q2ywxaR+kL~+U7Z+F9nV{cHT|~Mxm38_(ATE8>X`4$cSuP7aKS}K;n7O@=NB~ZD97SqaWfsEw8c;!Q5I%MF^Zzxta*$a)e zy1y}w5aP2%eq4r^$mxFY3xB0uuqt{fa%K3yov<+@Rm%Jtg`JU+4?6$Xne)t3iML;? z4UnZZ%H zw`FshTKibaWO+iIGVY|{i0qClPqI#UiRzr4K|QUb#b?Ny4cOYVyA3VTcX{o6j6d`E z&aJn=zgw^y~J zRJc9;LAF^3i4^&;(eJ0BN7P?K5+KOMp!=D&+o-W~=Z>?|jBXv6Dc@X@h{pT-7NI01 zQ1rnVtpS-XZ7Pt~uZo|J<^_W+=VSZ*cNfgTnHSMDcymUwCCjC&M5F z(=ecqrbTMrf6ww5#U!L9lgJs)3^RJ z@%4qT8m<)#H)vdwZ0j?-Ene2t%=m!uC=LS zqUG>K>m_~LCCbuccmK!7iTW`~(!7i~)-~77jjkuIl@q_wK%xRJcDG+?KN_w|^Fbfo2g&%{86Y)ep;@teayQ`FN+wB3@C zC>3J|SL^V-Dd3y{6X4_6wk*%zW9%I&F)hsq?ym9SGL8iAUU}hEg)zVtl^lA=ZXZ#1 zv|xCY*2q;e}Cm>+Qyq3SxRJx}W1$@`ohC}wpfa0skU#W=1$ zOQT7NP~9B(U*e;o#Q2U`t#}=%0~){XM1*u`)3AT>#-v3~t~Dr~D>?Bca>QrrHCa+V z=iB#QmcO*w$^dspAOG&Fmny-+*GY2ZdbpwX?m>C7KTu6=mokb}vXVT;!B+0i8~yqs z&thI>353VHrJVLwv0nN&-|ePGPCrnYt%o#=lT9YkD4*A6wBK=cX!d$B>UfPYX>YX1 zP1UMt%R8PX5Vbf;LJTvZKDsTq_P2#Vn*msqOV&~xR>D1S*dp5Jg{8T@pTF_!k!#6=1(`nZIgY%8GXC(k1;l z);qOuaPgPa-LB^kUK`J&+PHkMgPQO}6LGpwLi&qpC>0IeZQC0r&Y9Bvo}aE{sasq1 z7N}kiIb8X)z_CknZ)bMXO=I`v)2HTR)&m8f%~)k^|NIV>EFjea#~C2CnuSqKx8P^u%n>^~1A;1=-OF^C1%gIdgd(_bQgnx)UXYG>uccf8K@) z0j`HjTrjocC{CZ!Z9&D3oAIg|c}&h}DdJWpV~ zoQaZ5hugV+?E$7LSEoHzmmJ5*+e2?8`KIG`Klj6522&pt^I&%yDBTE@ zX!X1>a7Fi7^`<4;&D$`DBqAb?k|s!+DR_x1e7seGvdXR#IE!cAnj_C|9?Wq2g3qMU zaIU4kG4Qs2Z1Ar0uKCEDBG6Cd?01R~{(D%eq=KsgIgj}dsp;M(a_M@{r**mUBm=?l z_5~&G3!4t!DZ7yKDDJ$aVl&?1bdV2e!<*cR2Qm?MYefU6cE&?f>nt=+8GC=xQobjy zvXD$Uo?a^?t-Zfmu{ZuRQjzS(!k^~#L&ll6Z@Wy#2(n6YD;~A>=f+#-ks|d>^dP;+ z5PfsB*-80Rs6WhPtonrwL+Q>gBzj#hO;b~^PV@mOlg#cgbS;b7)&B1Q2w2LpHY?B9~HJU99~~ogx3WVrbRGxg5h<+h#e5TK*btj zqN2|+SQ|(KLFd>C(3>bw3g6KJkpQr{91)t%X`qmjka!zS-PbnY>Xo&6MEC2QN*o4C z#A<02-)|~TSCWHB^rP&_ospB7&}Rb;t1gniS{usxUC0DpW7|+(!#ff;^34@RXQBO?pACk;K8}&Fm{(>aTJk06r_Binmq1Uu?X|4ls`}l+%6Pad zak8Bt3Pv7cfmelo8%uyM*P1i) zo`JB}%4#bJ>%!b0h|-wBr0UW3f`XFLx98C*#w*xmJ8>LG0n&W$Y>~fm7#+0F%S3#V zOO&B?|MTFtsPWu$0;uuT6h1AwItECcbz7(caOWgPF>?*y}OtS!boc2C7E3<`dMNkmm^Q z+(r#I*Z8748l*yqc2~+`zD>z*gVZ|+Lfz9wGM^1S{d1E13eG#{Tc6ghXMFQV>Fqh! z*S!7<(2ik;27g-WdNh{x6rk_gn>s5l#+N^tr8`PwiZeqaX>u>c{4 zdYnL`cD&U?aLKSDlSi*T!ghEzL!y ze#3MPhG2J~70lAhM-8e$Iiw<4R zs$!xaTDPXb&#=n^v9c^ztELdZQ+4T#4*gm_@vV%d$gbisTa1-%hUe|_s+rc)BXD25n=C?m4!ZiC}^Sp-R_Uxd;b=-a~8g?CUAMi2GJ(R{J z(jJ_aoB&}AG~?}=Z@7=9E9a4+33$^SFi}L<xMxz%i>zO<#e>If0T{NVh6>&;>AU5 z0{z$^o_H$XM8`b|K#PvDTnjpKaP%8sy2EI0CZWf1M-mH%4jCb2X*T9uESwt>6(yim z}`rKsYc_9&?dKw8H!-AXk;k@n#->k{@S`=71x{~Y}j z=r)k?U1_&No&cY1>pE&<5bMpVQ-%V z`1c9&4OE`)u<{)k8K*2w*Ol4Iv9J!b^SYKLIczL>A@vCtLR2xZ>IT6OGVb3>>+2Af zDo4){&Zt9ME0`tmST)W#VN^_#4M{xlONwCIg2&f=i$>_M9lL-S_2X$(@QXQxAvjQz z1LX|NFc@%$fH({nOwyOOAA<&W1x%~JiFS{X5fk75#l!@7&;bE{aOOtWVG}hC4MvLb zz&X1L3mOJ*$#Ws9R5%(h8Pu3k51!~}Q#0gSK;Xw{t6?~3d<20f#YK5_kfweeO53`S zcm@CF%J&#HW4ZkOBih-Z7Z%U>J2ecR6OvLVSByM8v(n8~9LA1`XVlH;GtA}Ar_~EV zy9)(cQ|s#C_vA1}T2L6_P->BLb3d#>jc~tU-8bHd7o{n)8E`tWKO1+JM}IMYN6x=I zF1XM>VlgMIkaDK=nBe5NT6RzPOKjNJ@SEOBzNzi|B1#Mn&p~x*=hhJNPjl4#!;tb= zzdq6(iJ%9*9!r6G+tioS$Vhp|lm{C1Gb}|l>pHmGG z*c8`c87UC-Ey#hPRH*B5T#~qBI|e}G2L}2spSNCg1Kok3PoMBYjta+BK*l2fB!G;! z+uF2Uf*`Pexb)_G9lm^SB)fh)8EYV&wM@mKj}^XFe}RX~#@;u6z`^*S`=#t;qj(q^ zu=+jC{5pkD{@9OmP1Z#WNapk+mlx3!3`uVs6_hw`Q_DNXG{xtiL`a|*6}3r{A4vwG zxxZZD54~4F&>#2VR;^BkxUsw^kwTx?Rb!cEytE)+ecC|Q%1q_l#Obzy>n`P)yT0~^ zto5#8V;`*yI*D;pg`d5UXLe3>nm5B|6I7L z)7dcTKDgf5gLgzZs_^-r!bBy1&Rl zpaR|80Rc9np=mCX9f$3c$YsR4;;#}6xY_&CyLSW)pzbuxZ}cYI%8yI0&o_>()OPc5 zfk}c6q3>i4vWtzrc`T*bCqH^VH#J;h^Zq3M?R<1yTF3o@)G+L-N8U9q+>q*~6l1e< z_R-H!;UnKbHR{&*+yu>@!M&P@vvHe=)_3PsYEvRCbL^?fz;C%_->9?rP)XpSe(0sX z6No$0*>w1rZ-!2`lwW@~DqcZODtrqycPC~dMm*2}Nu!;s9h=?6X}ek(aZhfd52UdQ zH#zkGWHqwcjiZ@pu=Qh7&YjM3Jz3)D5a@w12YqUMwk=rxkl5HYlh@j+IokE0p%Fzh z-G5CF!>8Ta+^jh)8ocdf!6}@hIb!A^^W!ut=*2vF_})uNWi#Hr*RDSyzWh4_JMIk8 zLGfMRYeA+qW+V*y3YkwLN-(NsTOxCFDsbz6t_zsg-+T$(`DBnMU4Hk$%HRdqZA{TH zaWHBv7cajvSPHZhK{u90y);+>(6TKyIFS}9LNKhm$V_@Dcv@Fk;yS*Tl}Xs2WQoC? z^HLd>qZC`o`Hh8+(mw+nmI+zIuc_EIqaM$8lJ4D6trd#ms@L+l1dR1>h^z9n(4S=S zYUPGI@4Z4#Ir&I6W>G&=@Y9YRlc9O|ix5|@ub!IQ{U4_0yGU(qc9gW@rLH0ULMjW1 zggboGt|tX<1Aa|~R|nll8USxtu)VB*LG8O^}QGtLEJ71p@r8_xBEd_lRm# zCJFCXUxz6M8v$W=qATC)AVwjg?AlH50g@gGf{fQ)_iI5o#0f|=?Vq=@Ik%HSH5N;Y zV3&)wa1r0Q0R_GdR!M&ZvinzH!FoGZ@#;jT7~PX=#7iC=HD zIt|*NJi&IHIg%}fp3S?dYeNmC^xQhh{u|R>v3KC zr#D(AI(UK9QG|qp@#>)FUEhE@&Y=!TW~JvA*>yeD&XBum)TnU(p)qk@Yb}SYPe0aq z*YCl&IrmjfFc$!kMVQyA`6W7?+ronBu+|ptE%q%zHdhpK%P)PlkbTxhY$Oe@sHiwO zSUq&+W2?7UJ-={Sg)2YnniGCWjM20)zaD6g!Fj}}m=2}d^|bHC*L*Hv-vUpZNhZ6Z z6_~>sl05;80Al4H3_RM+McV?(T9T=G{-H0Y<*YQTmKahdqVrKu?f?U~d!vI@#S7sk zNRl?HCFKbNPw;{Zk}MxB9^0$C9Qb~qiyh`T3;&gNb<3ZBv*xGDTsi8n?*VS<>T!Pc zn{(tl(|@@D$R%0nWEwNF%Bi0jSQ5Q#4;UC(DJ%RWWpIxep_BiXGdrLC|Se4#Z4K~?{cd_CQ9BG`0>Lj zQr-j%`OgjK`4gZsnk1^%vGLqTLrKYQCKyUplc7H)qX7|x>+uGlE~2KajEs%|{brWT zMl=>(y><=CzY@b9S|ka(PNOKXIwwd9ft=hRxFH{8MuT)-oEMhrSZ@iN%6(pf39T$D zeNof!LxYkX7_nZ0qZ`t%th6*0P$}D-X@R|b77`jdkXQW8`0@b=$C!ZC$AE_83ajgZ z)Bx*+uO0`$rYHWlsw#}M*xGbLUE(#GU+(6Gv{0{INJSY(KK+s|3Y8en%PJ>$I>K^Y zxOd^?I%6(7Ayq`MA(DlG?PUhN<=6plN(z3UJ3-H`{%A#y9O~3)xa7OTT;{NR0QZ~y zOnwXRbpEdDd?5~fT{_fkr}up4qv4XgWJ}^&mEJF89q;|h6Dy2KqR}xfre{GMWu+Af z?&q1Rt)IAE3ujj?x)#FBpR4PeQaG=WERE$To^Sn!DtosONxWjEK9LLgN7wFpQPoKs zmmdq#7DmA#Ib#8CB=~0ij(DL%QC>~s=KuYo&)%znUMII&5K{sbB-qTt6Ki{zaM`OM zXZ^;?1z?CIsZg;I37wZwjnQ9S53%NK+)yK93?66?_iPoDe=sFlsYce5FbmDg@{joh zZt+3}jb?3^wp|g^LmCbA7tenvtR^c>a4XqaB{lQ3waSTROUzh`v0b(4ctUqXZ8u)C z%;eW$l7;Q27SI}-#Sh1^Bl75y&HV!*3!Ot}Q@OTGfNbKtaq#Ioy%03p|Bknv1NE&4R8mE>^sMZ=6P0 z!|`VAZiE3nTG3YVL9yMg4eOF?Z891!ARm(YzNSxPi zr%v0r6kCQmlBnPI%tI?Hk;e5zj*{)^!T14m#8YGO$RtzB z@UDV4_47z;edJAN=_T!x?$ZT1*ECEg+V!m0-+cl&fChf~S6}!Zoea-WA*q<+UwhTH zM-w)!Uzovuw2#bY%wA-wbBQB`5zZ(O>cyOU|~A85>@Cn?8c2)!fnollN+uaY;DmFAML# z2PpAFk%sGL6P+TCqmJc)SOkw1gxSi=+E*GSdwR`koAh_R%uxxA%|NX5C?? zALp76*Ox0j{=EGKrKKl&?z`F;UU%9Q$BU)sMqB-_eKm!j>*If+H!Yb7868!79;DPs zis|*-RSZ)$exqLs(;EAc6UWK<`5-RO6%9oL=(nG_(5z6FsnP?J%qbSjxxE1CdRi}I6UUPWVP$dDz1 zXb+q!A?x!e;c6c8qYKfzT8#fa&KF6`Zf)NexcS*_rryiP|3>ICBbbWVc8#l#6cUr~ z>y1=Z9o{oBIPd3DVYNULp0TIt^#+tV`p3#H$wYRu^#{Q+8YnL7^9AGfTaiBYe0pT{ zd+|F5s3j<14;QpmS@Z=4Gq!Z_2O1(Ot8gGyzQ50p4L|ad8+LlXAf;j&(U) z&|=d{&^}Az)U@Gp7!+F~)pfQ!++8`UBb1Yl5wM3x%qriM1a2bqK3C+o?@Ok_fbAmK zo1?Y?$E-SB{En&Qz`p49S<*XFS|q_$6GttTsbXQWfv3XEM+UA#G~p}S>^XL?&P2il z9ScMEGt~*RD(<h#-7|LFL$MfpfozFv&>d|Lc`G6A;mLI|Ax0jYx{I@HLW*0 z+S^0vw$5kzpx`(eg`8(*Fjtg|8?rb@v`iC!$#NbFt`cjKWq|_Iw!aJaT~fvP1cv5> zb_ZW8>WyyB37^@+c7Zu}tqs(ds3<2`E{Nj|;6J7hfGySDg427;q5JI$PIGUt@tay& z94FsjUM=5h4~0YOBS$;B&xEfn>j8CJ=*K_@OkF}kqS(d2;c;DX?8z~O zT+3@d8WLL#CyVc^a@r@Em7s75nkCx=!aJ2tn`~HEmls)e0PZ$m3-f6F`t+q$LLrX` z1G1}ziCRdT+$K_4iG$`-80t$8!^TN)#q}Et6*R##ms`7QOLNsiUmh|tCb~{=Hq529 z#Sv~5=O|OLND8OEeylN2XR|^O%uThbWBjb9hN;=bSG2EP0hPy&#{N9{IT2^<+Jo@f z4(7D9-R-t;?l%#Zn=wE04gPmFOTr}5n#*1pCWF=*0nlR?g3#&ggQ~aWTu`Y%;y!ps zY)RCB&bP~?j$k(SS4OlWW5X!KfuIHSCp#U&q&+Wewfob~#zk4*w@oKM!_j_b!)0qk z5PjfQNE<}C5O|c8x6GSYVPkOSl6rD<@qzFDirixQh&kC8H+v_1whwbpe8g2PLx#Bn zN>3|U-bQ29V;Zr?q#Z6YPA69mMFzN{>7%a zCyqtde3@n*#_Qn7bOg+mvY%@p)gyd%AU7yB5KFE|^M=#^#XrLvZ#4_8iYKl1W^`49 zKt5<5lHV-?`#p8uHwrkpr-qZEM6mb$=$BkwLTB|d%dSq`nsMq2-}iUf{kBx8$}chZ z2~Ac?fGe82QRC|+<&#ioY+DNYd2i$JFa1jddbdWC+vRmK1$t-Q-SNqrF7PT;PsFtO zh1Y+s?Ex+go=7lz4mz}H`gVhUe%ZVH>*QBdCj?~}PR^`ejreCkWEd;8KZ5_@cG?}^ zbUj|!BV=7u?O5N?pOO0Baj7GWtyW6uF>;JUsJNJZDy|#6{ z{qj$?`_sns?Vkz3cWd>Fl`Es#u3?dpM?JBpoWnmb=@)?h{wvcz@<3&NZMXnV)~b^g zGfdUN&BrmTVmz1iUY@7zv@#6s?MBQbaXb2&;|-8lobN8lev);rmZfwx(J1kZD!1Z_VLcos3`wS%GYCpteePN!r?4_*n`Jbm#tZqvpgBX z{6gcWOpJgsgGb7}+R0-Ic#ug)?|!TLVHc>gqo5E8Jm;x3YSF?Bb%{pn+~sjKNHoA} zt)r>Q+iA&@)RYIbFR6-DLy7viJhvokRmM1z^WHFrp~c^3tHUL$O~8J}lrN1wz3wJR_Xx4<5k z3%k~(2vXy{G21(R6`I;-=Aa;Ta5hx7_Jclc<@)5@=nyqE<@-)ItLG6H4X?^EEGkeC z-8hGjpQL1XweG`;V2c92NKo<>p+`47E+c(}@7&|YOZ-NU<`hk$`P6w{!e;g0gsm*7 zNsoX?Cun(fZ|ky&-s)HdKYtm&5p(pK)?;>H7<>4+|C(&U@fy z;%=v=g{Ac`Xx)=oP>5UrVJOWK3*8?ojEl{!pxR|OALo_s0q8EKD+%S0OFQqJk}@33e1G9UCmW9~ z%p0vNjzazP@4!x0@VI&t;;QG6vzmRg13VZ4G3663(}NN213D}ijS(>^Ji@NT$GjgpQKSGHD%{dl0^sZJWxDD*U63VW=xL_)r6ri<#q z1KZ8%rs{l?u~O~O7RJCU-c5;Uait?#a3@5(Tb~gi(;d$_sjI1fbo#HIX|(s{a-{&l-9do4 zGDa|BZV)GXdU||Ap4wJeUWvK+AO#sd^Y}}_l<@$|0jQ&>v87EY!=&sGsPNrqeiD!- zilhxvZ>c91(WhN5!Yp5l{p3A%)8m-CM}B0y?9{)#uZVME*7Zt=dWr`c&M$|pwg;+g zRxPmZ7*pi@(7y58B6Phc^m3B8mSsPy=UT(J7E)sQLP1^r75GJf(bkn>xw=jf_ok!Y zp|QnTWrv>^$<$TH4|GJSL6s~_1Baw;XEE?Gie;xW!Egx<64c#>lArJYITSwQy(OIj z8?6#jNO!71?Ykc_Tn9X+GT9a=dt9KfA8u+a1RCfG#I&)6UHg~&h>Pf^i9N(JkL-oha9s<5h&CL&nRyJ zURp$mSJz5`aMTf0SMUnll|DT6A9?tpV@?u2OisLmcIO6cOjB-WKIGECS9__!mpH=I zX5yB5aKez#l3VJvc8fYtGAD#oC}TqG-5!+fbDc z9vOH$X=%m)7rAk7P)f4;uKv_A&10G;gmwpqxiis}vzaQDl5$9X{>mNj`V)fA{f+va z`q~#FdT$WG%DI9h;dPn)x95Z2u5co-hpd+5xqbdh{A3XKuf%`+_y=UuV_9-7<<_tq zPY$;%$xyOlca{x`z}7fk*ux!su!A1u%4c*zcnY9ZS&_`n1YYk}jYp$Lq-IDG?7HWE zbK_^POm{ucOlxl)s24SzH-MS%eLXHL(*Y-a?*z><7@C2caoPOD$&#@vcPY#|vI za6Gr6B)DXLMStU?)P-9L!^QP!$quYzyhgc$M5iOxQ7 z1KzNar=#3|#th-9uxCsApy)HUurkfzx&i3(OdpL1EO;OVKl0?sf`bT3o-F&*iYbc( zxGD1T;q@fCdmV3Xwsu~|PiFK(hAAg_I>8Y(qGh>~UBfmICqNTJEZuE!nKfOec4OTi{S7vzc-w_8PsBOdwyKwtA<-hSE|F+( zA6D#@K(yI3Xv06ly=dcI8T!%>Thbah7J!+7rxHqDj9}TxcQ*=P$%Xm0AO!`5Ym-5! z8AHIF!IKK4m8Ci7Rmw8{dbe&7n@Q(tc8_vsEtAsyo~;oQTP6Pi6;}wA0Eu*WSy(nL zMybT-0G#GoOxOu@V?Hp_L!!X1kA}}D0Hp?AyaylazZVr_w92+0YS`pcn zwF2(f%QrV&>uAZzHZ=Gyyu4eD`t66?tMHLO^Zw|5rlHL%pWlw~;^(}d2D_5q8`ZG? zo%YXwIs>&rMT>Zc0JC%m2*0O7^v5(C$q8WN6i-WnV9K7RrjW5xRBaq7l$`* zjZpbY(v4+r^jGTPU)Qa`O;lBM$V}#S@!+fnv(j03(BFgEn|~Am4gJcek6;o7PX>m? z-PN2tJhpI}fVZWKb(jJz(Mw!oi4@Pp1Dv%%sju2dWTuG_Ox2-c;YdpLtIrPvC}%FXT5nRj7J-!EP0fdz#z$@M10suzKd7JbYLznhWmUWt(sAJQjQ zC#9Bw=K*{^OdDwKsegV>hQ^OReFdU0ux(rBM;%ta>p~0KH%avm&c|MS9GMel)BLTf zg%IdUBfrx#FaQR!X|3$m)Tbb57-Rfodtr=vsmfN zK}zHUzfsnsgbAHtw44~>g~<~%y3lTnF;oZVIv=>gW!)s!#rx}hbARV17i=a_bJzmI zgxLH$(3qfBXlrXDW}DX)O>=(ucs18-LkeUfz@ad>)oWvGd$`3Bd(IT@knFiUf6#hW z%7*lE5378-{I^Fz@Q%gi_;mU!g0&_DlaS_gwC)nvDWdrau>z|eri<$3de=xOJgh@) z>;JU)o$frdSWdkNX;yxI_Vtl+xK{BDY=vo2MWY4;1A`gNS&@8eaSWai5GdQbDT9PZfChOf)ur9dU6!$X4oGl?lwIH2C<2?xzDU#$M*xi>ZO$tAyzI_^zH&Z3CUQ0ri)C?sUlY9T{B&Vk>ncVKiUoxHkvKwDKH4opU5DVx+Hn zrA|3U%SCI9MS~YbM?gTYd+<`fl&^6=*hP2mXTB+Av%^;*`HD}WYwTfBQTvmog*S%k zr-Ye#P49VNv_C-f#OJv>EdM~FI({`fZC;G?g&{}?Xt+8_=~R%DqO6nMJq>?qc7M~G zn#v4cY4FA0y9T?uXX6W}w&|j!))<{?YNi`x+y>|~y>sfhE+*Qn;Ms7oX!Iz~a^tVi zP>8+z0G6!a*bgZ@&M=n>kBG>&viI!>uovl2Jsk(A2F|hygH8fdG~pD=5`eli?ckeb zDEcTm;F=;tqODH1-1 z6RK6Jxd(&mRzjlX#~q!H??_~Gt3fzt&|n%dOYzmUK=HV|@=-44Z?r>Il*W*t}nlMJUV(zMf&HbULPh%?}wgXh(IQu9BL14|_mz)59tVc)Sd2AfD z`_a$JS?63xK>ByJ43#R1w~qBl7J@B^RWzR?fwF~;P0!EeE)a+s#U~(qIKkYX7F)*g zJ^Rr0sr^HSu{G{L5+2w|x7)raxySS6xryE@{ew$DLePf%J!UCnZ=Nugzw1P-y55^z zb)SL~KZe%qKqw+6h7aO3?mNelmS>NrO10r>CdeW5-f~UseIyf6uWQy8#g4doJO3R4 zmrrE0Yd+%~i@`~II!-E?A?koa{-c(5mGTFAb5#?-n+S()H({B!eutHf>R>q;+o;}R z>%5a`eR**XC56+D!|UrM=wkT(Zxl+N8QMOW=D<|}@@6@JF^Xd(BQ0HqNN~8qA`{Q6Eo33&DUs7kS zkyNpkQoUVn2g|diq-E-a;sI&{j{@VFB%XtMdlej-2;7SzgQ!#Q^M&TFe|$BoI)X6~ zXge?{m@PSjsT&%jX^>`#*{D+C2im3br#!okXEu6k2X#7*OBdAwm;G+-heom4BYH8c z`~shXl+7^nHSEjWmZ@2k_h^-rqgb4Cl$Gp%wBug%AOVJ6bPyaIkvD@hi1O=W}HD&&qNg zs6b)l#K^{$KYWvz0tSQ=low7H6YN}jOAmyO*o;R}1tDboYEk?s!To|Nmvd_Bxg^ET z%A>Fl-1Cp3F7C08d*VON@!G!ct0X579DT>%0E+u`nTZ0_gMMR=u<30Skxy(XMgnZL z+#h#KIp8Ih?WTsNFg}W(E7Hvy)T4_HDzxFpAE-19*>5nM`Ve>Oa4~O#e}e&C79k(n zcQq_9cy)mI`0E+ z1PIww%gQ>)R9@VIn(o=d%!az67NztMfq!(aIP?0ahZ zF+JgG^OWkZI{HmrJ49F4!K86~X1Y$F_2JVA&Mb>0vNenI{xLq;)viJ;cdw%5(7L!% zTpVap6Eo|#oXfC?1!%klq!9Sc8_r$ z$HG1GT-jMK?FU}mkiC+-`vtrUJG;BxZaW-E6i^GGNdE(E=B{&n-y&3=Fc#{gTeM1H zB@5@kUc)@N{PUv6*G=;T+uioEu~150{idVVr@oDT=_iHGO>@FEGlpOM4#*G*yw}V> zX0IfZQ3!pmuw|CfQRgpxYhH3dP%8fm_dAESU6z~wtKh!#&0>bj>8j#Su7P7xI&SVF zVRxpl#U-RHYY+RPO71vq%rO!P7IXwG9FLZG9vF{=F2;JQ)z-C|1s<-Au*WS|x7V|% zP-V;e=CfRHo(yc%u#Mo~Y&Oj|47`PU443LdBX&c$X2=k#_nt(v*!6_sAw0vP>^8@3zc^f@MfcqexppcdWKE1) zd>fJIKS+uc!maJ=>=k#rIvy;`bW0=j7(LAQzRu^r`rV%WRf;7L>2SuXrdC~mJ5c&E zP`Ak5*Hi3xZRDtA{S`Qr{3O%uoyYGY4dZ#-&kO~V+8-^d%0^u^L8)j1^ND$(n=YQv zlh()#UTbPuLPMnDB%BIwVLSxn$)8O02fN_64d-QlO@4Xi4n?g`2ZU-`{X%so#zmuT zup!$s<4N+6zLpgMBEknLx71##{m@EO`_0PGrzL%ldqaczv8+88w`irXJ+PSca>ffZ z<^mXSx_7$JiUcFDQu15=Rt#dqlMGjQRY?tbtUV-isAo6c3)Z$&Pn z?}zZ^V-3cXK-YWU+MOwQ9c0CY-;e8;Sk4vc9U@yZg{+&^sbhn+3$5#RFE%Js^7(%_ z9Ae<_uPV(@RC}b-_aY|^_?@LAALR?^ZDYE`>5c1j0U{596&kBT4P9pIuTrWSS4d6e zlyVe7CVpkd=ORsS2dXXDZ+v&(%Q4xb=Os3sbhuCVz5}|E*bB!^0T^H3+-okT_mP2M zPRJGoM49^aKwC6~s`T=XwYHOL{9BV}f-p?#F8=sj+9@GL=*w1JI{O&L?><-4@reMW z0bUSiSf^QJqKJj>a>n3|nZi6yOKYw%$`gkyQmX8goswJlHJ>{O_5%6P5DmrQ2mu1!Wn&q-b8twys>y0qbU z#1u(X8tHyHaTE%*MrJJ-W|(T#e=v%RI@4m0GdG#+*V^y#M>?)^Qgs|aapKs&Ro%FC zpgqnyYXAf030kg>BER$fu>#wG_z?wt_S(F(s9&4YNMskDo8eeW1mXLh2lfIw$H*T)Vs35&hz4bbk;PAUURui_s%L5M=PHFlB@ z(Ns))EGmSJVth5g%=o0}r_?)(gTm08Nn2ZnVs^ow-YM}EE1FGZJYdsasd4|>X8ckV zdxqQXWG^xClY9BocZxX@dU$cten-D+?)DE5GHliU-s;R(rz5#|Gu#|sZv1^?M6+cD zx!1UO^K?$Rg_i4#D&OV(iH<$BN1j7VsXmL+o{Ag3_c(h>nj4SDZH+HU!F>U_9u|qu zeVgYR+%L|X)aG0lB@e$pE2Ly*S(LIlq+2Wo&;!7A{xYL|IfVMfL}vFSgYd!oq}&2& zT0I2Q$tQT}em3*d>1K!{!*t!YgI~=NO3zhQRROY!&+T);eO3T`!7B)5>z9E&iGTwG z%O&H>7lyxo&=%-^_(!(lxz6{SSMcO3XB-mXaEk`=%^Hj*g_aX-ujUX$vG~qviQJr{ z7}3{$hBvB0_N$oBFIlvKVSXjU>%Crl>~EbD$1!^h-mSqjze2Uo-QC@gP9x9Brco}r zK1er_GpFbKd3V=va_>Ai;p|U`exvYqp)gi?g}cLpKyk<4ip9Duw+jxBJ-TtROw&8C zM(f0UquB^qls+&q7Btg?&t}89vJVoQeZ>SbE+o;a_R|v+`klfOf?2gtGWFAwH3jA` z*WDiS?z5`$1S>pOvMbkr zx#`t*(|dIam^1ObrhYbd16ThmmiQescR)|6UiNkXO#)R=&`S6j6Z-l#5InLW#G;N}P znv$$8!GsDBw1~>S5$R>p6}z>f zvU0apPfRv+lc`kOJW{CQpCFrQbNqk1qjnc7=&#bTyk+;Z(L8v=oflg>GE16G%2KsO z&j0zu1*?Cev2Y)J_>$dAWO7GuAtTjU4oajVI&^gB@N|}HmFw(HfptoCn{0BY|4w zOFA;>$*2Bx*Vg<`k3OIB8B2@7u zm|VLR=GB)~2VXY%%x8+zzkeu{J$K>5$EO5^@}x@`YOfKDbm-_Q+)kC%PP8MgovO2I zemD3^HS%t_q&xqNj#aXwdmdkx<5n1R=J&w#WC1zsp&R)G_gwN0YApMv%6HQ$XWxAy zx)tZ^?)x>b>_dX;y5$t`NyWqK9|RW3x0=1|$I?{8gP39HDMnex z0;;Y77Gw`7GS+HV+Rb-=5eHf;46BW|=_p9;p#N4k(%I_#+h3gSkPZy^~8efU$ z)z*V1#-Q;hKGZ1;k_D&OGh-S&k!$T4^zy;M+T)6CTUx4L`)q)6rQ- z8x2_R$tD;Gq#O>?IItd)AyxSx`x=Rq6gSO1$yxg&^Dn`mbdR)TtAP6OA?%YQNLMA>fRX%GgE<`XI`=SjAj;dX9TTzWcguDjhJKE|RHsL+=7dOmr`N$(V; z?2zpk5k)g8Tw117r4xZ1E&zz|r>sc^4qL19WTacW?DeQ1A%I+88hy_y{I1uOf}t*Dl!yalU*b5 zVBb}osd1Yy>>SB$B^ujFk=?2c3?RLp9*0AtK(576s7N!=bzQ}vJe3UpILJ6ej{rZe z6?qY4ju=gUd~M~|(T4B5DogX`)X($mg}lhO8>U-FWgdnnvx$OZWHkfFgTE3ib27^? zPiJ-f$kd57L-aZw8}g;E_k)|k8U6u<$Y;gPTgja1vDkjiXel$aB(HH<|L;ybA272s zx`1OG(nItSHLIBkFdVT0emFfXZRGciJ%1{PbsVs@PKGF}WdfG#iII_tUu38P^REBI zyH#~S_&P}V&9b881pa}IPr2hvVuJ9@a*h1J{sV!BL|g$l(Vrw!Z{l&;dK~{2t+e5~ zxA6N>x&CU|WMz2KZBL=mND&#w4PbH`Xe$UjgarjA?wy{c<85x41oQ7sB zS*~je&BaonT0|@c&qO0Tcim^uPmw5hRZefy^CuVT2^uww9TzDp&bXTBT`Q>(uo=gZ zGcc^Dl=LAE>omX&LP`qjaa}9TiO#=&hrP(F z#>heDSr8(ajwDoou)$mXM*W_F*^}&$=(oIGNqT?c&oEzcL+(_llkOjM@6p zFVivJ>TCRbhsdQTx?gSowzu_qdM2&kCvSKJ+10aGgKfp(tib%F`=|#uz0UCW_}QWR zEzX()zjR4P9qLIJQEDj%4kTeCrXe~L`^IDC{s)!3IUk?rwXGG-r)?xFJ1R>?aK}m` zM2Q2F!6peSuKz4|^kc1QFy-a)hgI???fGwOB#@4{GUoQrZ&YSg9faTIk4=drBcyCc zP8NBs$75l96}tzXk)QI;UG!dOufRV38{%|#DFwqrV!E#X2L^sF4k3aO{XW2APh!y7 zHXR>na0UN7d-1}r{xy^DwJrtuou%e)f^-K;ca8IDjPLQ|gI&T8bVwA0yi}M?>_G7! z6%hzVoYG~BNeQIJM3oKguSivB=|`3G4ivYvk+Iw=>_>g}8@?*#C^j^e8d`P2(!zfmg|LJC+Y|(pGD7oD*AAjZ{f9qn zw=o`OTC$}!MXZIq4(aDt7%ijOpVn+FC%#cfTdev0 ztd+kv|6B~~?=1cP`V*}Cs(gS8X}j$!jeSFF3ji86;A4OJyz|e$!6fp1&MRQ-ReLaL zI_I+W)U*>Y)Ux;6^ERdD^*VjAucvFsYA!+?>`^Fj{G`4%X8O#$-U8o&fR*SVc`Bxs zFV1s|Dqn*H+|S+*VZXateDmdzS6hSZqfw;da$c2(uvWi?!jrbxSZ$Bp%w3DxeDx2^ zk;&$mwDfy+2ZQqyebVxC_tkmPQ5(_3M)~Gr@Y#vv zSon5HE?o)%cIe5%uy??tzvCy*BIA+P`!7)jK%;@^IY;xv*x1M5l`X=0#PLj0iU}r9 zqCj@JJm2!5ej=a6*beQojg6P&^V`)Qi2M7;<)*vN)@pRrN959%hG)%{)3{bs8m!qq z+%uh?$apS-OzwU>rwNz>kRGu!$B2_668M4~`zlS0Bj+3~_bWCC0#*v1^Hy5Cd*Z74 z&djVSFS(Ds;Yv+ghyp23g@Rt>(eK*Xd>+@WyAlI(~ko-mAFJ|v&$-`cxy@v?on9Tnws$w%|uElqZf zpw=NIB<$b<vW-ean^m1dp$A0b4+=%1YOo4I-4}!JSr~oan1bS6|;f!S{cn+1PhQ z(ZeD%8*&vlJFEUu;|Ik;MeFQ1P21tOy|z|a-z{3hsjg5hmF4}-@!=M`oTg(dFy{LJ zqECz=Zl0EeFRya11}K|F(Q&!q>mT>$1~+Jp=zZHe8Ob4c_?Jp&HGHKmp3&x4R>NY2 zIXus>L9B&~^#RlN;`D|LKg+@q#n;B2w3>K9?*cGb__@Vx{sNWxzzlZxZTT()z8bHxN4FQnn03arRH{^l(Mr}s9 z0b5FWmJj>FrSkH_do6o6S;c%-epFr_dYev_Ud%pcm>K7Wt>xfUt5~|UZ9Yj$a4gfT#`G#PHTdm?SRdeB=2OuccE>JK+*6K|JK)TK zq*bh%{D2}0MB+(+xbpjuq+L@UO*690)_B&-7b^Mb|5fr9R&rSXRq_vmDfyBiQ4Yqg z{ZEz?J(X~Ujy|<7ShE)!7u;kNMjF5%06242S}vdp0_TmGCHL-s!`@|-jP>g%nK3&j zT6>)O1zfN*JX!eDuOlI1aP%OuM_Ns|_w?I2&1P*D3H~jU9Xd?HRm=d)sZ?m0+)w+3 zy_wzLNu*SH{A^~8=!~iUCT&I#_Eu-UntmugF#;*>gzC*YUvXJW^0us#TOY2X^mu%* zIOgBUe1C!C>I1~*NN!%avdlk_y1+!ph1HP78%7~u?f6j(kSMBnE-``swjvwOQeqO) zFf?Bj6w+vUzUfGgVLr@}^ntGtME~Z6tt5S<#`g9$_=2%oYyb=)U8>mf$*f)>7FC9F zI{OkO6;!wqE>NZr6#Hha$|{T!G)}$wbHoZ{^_B_rorvboDAdG#gnSqYzWZuMj7+)I zWs^YVxvN*Cf7bosZdN}Mu#{-(N#nf{`8@Pd&yeo^Cz0l5+C=LSpXn zpQ(C*BY?Fgsv-1b+2`q=SaDj;nysC7Gd2+74?uzz_<;?5zr(Knzjv=CBo)LtEEy0Y zg-&P$e~lcN(uwVI=RqZ*=ox`FxdE4^t0dZB=?eRTD-7=<>iwL63SyHxcE1iC&qnQT#qn0bD=~eR z(&fTtPh5yAVZA?<9$~a5sHqwenAK~~?-RpeZquK%DQr*eYTVmSooyao`F%Fa2NjE* z@yaG)i3nJ;J+`ifE+{k`VVtkMPEGn|3Mek{LYQlQ0s#iP??5WmGEsM!z(FwO5m;bR z^1f3nvo;CEz5iB{$ymf0=*X}*1R+CSioN=C?`p;f7{=!4~0k-X1-?r0{$`|pRJOWrwrSI4A zii+r$vIMDzi>(FC-<|W#zD*?3c`H_F%KR!tGZcl*xitHqI#-Z{OH&rv zCvBvpqlJXVY;R}it()p>vD3f1N5y<`IhZ_X@>fIB=BW`)J-L7zpRpMHgq-|z*V`lj zKz94^T?zO{&z%>@JR6cP1I0eyDG?7C7NqS&19l`>u=0 z1V&h|j)zUYxo2H1|TwxvU+7xOEMiFLC+;AscT`?Sxub3ZjWGl-gC}`yjXb>!Liq1I&!Hw zwd7cxrWL*$An-0)Ro7)s)PF6(4fHK&KXXntfihXuYG!|w;Jx^#rPht^Bhm!kv0XDR zuLN(bH+SE=*Ye`3 zc6}ws`TZc&j_s-+r335bN@4{SGljBtGaF^)=%`#7F_D_bk%Hb=nFEPb#BcURhCf)!;8rLQw&+75 zm+)f*t*3(7D90;_Z^}LLIlp{|KS+zTdppCxGDE3jZ;fNDvb@V)g41m6?+W$}ySv^e zBL|V&`(I>D6pPc0I|q%tu=(ihQAL62;GX%F-he94< z?q`qC)KwqSF|$21y+y6W2L;ZPGf)wr9n)lz_28 ztMJ#qrz|7W2g-UclZkA7`R-8(wkhTHiF)~wcrK*!FD*4L{lJR(_9Xip>WDs#Nm>S{@WZis+ zk8e_-$r2)t?^I`?)XyjSv}5Rg^Dhr2=^cWwZ0VsB!)q)AqCQeQe(ZU^ylMgg+{DDv zf}hF{{br}4`FFl2Ib6n%?bifXxBE12+y>~?hf4QV7tbR%N6ug%xWYmu`AzfBUs5Wb zOyV|@B|H`aVl&bNU^<%z&>$!kbOvGt5-U94uy-v*hIrzbn(xBYgH^q3lkM#vQ6i3)^?ZbqU0`umf>`WRgnHx zIAt@dWyKjg3Sz@tFc-*bzy80q`T6a`GXU(j0th$vsey2_p^dqd{9O4T=ViLvX0v$3 z4Bh4QeROHSCxj?7P$&rV@C;d00FM1SM1+vZ!=c(pXYr$6;v8f3r?|!~iK~-=8^_P% zP$7Az9d7P&zh@efZN)E4u^XIuri5zG>!lHa6K5^d?MmIBIj4BgzQB;c3}OW`-6RH6 z#Lh=u0`dmIi=AUvUN!0&N!7@rQRTfv@p03c(ZIHxjeE|`>c~87I}$O2aJOPfAJAo& z$QWI2M?SEIk+Q|~q#wcBrZ-Sv=0-W`>eXb;8BRNH6fx^|+(lJ#$2S{ePz8prAu>Cro^(nx7P8a;?5EM@eL6OSY*aj!2B zy?+yn@c*~~LOSe0HbS0772HFwDhPfB#4&{CCb+aFKB@g4X~D$Ag*9tocf1(29t{^w z(D zF#3_5kS|k6=V?~k43If9;W0lQ;>chB2|NiJxKS$ey%*CqKfLt6(&}dBzf|RN=dP7-Mkj|-#`G9$HAQ)Kk8%PEHoH{l!VV#xNO0^47$MXcUR^^?~OKO zBO+!iO9zpV`YX02EvvX^1`eL7cb+O{s7pHN=#b_3TV zdhGfJf?g((%%EHMFf~m)>v7Bcz0l>P%KrL4&DRk%nHq~xI=tq?jD8@e8oz&8XoYgk zKyj`zLNQI=gR~RuPki`b;j?)_7Frg=Z;zlYkG%a~bCCErs0`JiANthc^89ctUxV+H z8h}3hj+>e%E!Qxq@Fm2>tH7H{>M~XBY`;Aqwp!%f4}lOAO4>V~H;2N}8CO@;IM{V% z&2a`RJw@Eq_73?!3Q;HhWaVcSzXR5hDIa-S_^Vcj@an)6D65f!MOYH z)1rB3W~9PD{yP3qZ=2$l(>HkeC_8dJ%a0jC4F*Ld*Vm*no&XyMrI^Nx-|MmP=3DY7 zdBXLal|DVsR7&kgtkA!7`71U=wnZ08lCXnp^a*U8t)z!)13YC~SYILHdt131*eMi# za?$!XFoPi;C#ET#yO<-SAOQ7F%Su*0BQ2kZw?Jie&#P|oaCY|Wf-Pmk(R`p(KSGtQ zfn4moeq4o6^Za6?CCPOrW_IB=WI}jlkmv1`e2&OeqwfMf4zo#d1+TU@!;yS6(O}X#;Thb;vc| zLsNWQwwIef@x^*>ls4V$g8yLYG|1F;wVKz>R+J=>QoVd2>h;00t*h_A?uoXC++C@o zMB$~y#aAG2jE(kKQ!O^^er*0;+;>FDi&OqjZb&U?lfe=ZH7uIRF7mH2RP^ur( zD=T#F|1k|A01M@-30cfNt2aL`>QlnQxgiN|?Gg8Pshj^DzwVLp|2!deaOdZ_d41v^ zgkSj-8mO`yFZu}Vjr3=ZWom|7OOnOciTS>izYpPZ1~$90rdQ*!WVXl z%_}cKa`Rd{U(02Emm`Eod+DOyhF(`HjquSaXz9lw+sOZ-+(b-W%|b8RVlc>ZJ54V|xY6RTfq zc}Uf{kYX8o zpqO_2g!}B@IewjDr}hxdT*HPKjG6OA(Tq_>o3Fq(-tn%M) zXFPXo@7dcuJ#>vZupq916=-t3fH?84MWEwRB1@e~1=>{LO;0y~sY+3ohv^9Lv zfHE?7HRi0xmLhAjBR|?Xj_|YSv10Gx(Q&e$*)^Y1qBo*9@1>GNnzfZB#r)$Fdp!P| zoS37!eN*UH(1xRj+t`gzSAwHAotljAdoHv>diw{dE27DVU6l_r50VHKASZ1O8gMX@ z^fGx;z>8hmM290g|oqDThUkBrG``_=B`mcSYm+P4%?IF>tkS}13SKUzO z%ychYUJv2xo!Hx%qmXaAr}*%L`{Pqg2|9U@Lq1=>Z0p1=EqFf?LuxjAte7%c+~D-G zds|~JBugfan~sBnBbL3ze;5HHFWug>W_CZB9^tddA&;*d1uSreypl{LdE}}h+@<@k z3Om_IPYh+5+3o{;eDZ(V-r*X>g8<)n9m~G6OWSyvDstf|DBru{{R4bTO7?rkyyETa zz@rt;J>31QPgzBm68B+`L?!?q#R;ZGXx%OFrmef#Dti*2>>kc}R4NSTKN3I3x*>4b z=u^cO_}eFBZIh~KIcC#SoV`ka>chpq-711MYk6B@M8)*-%7(;0y>7E0L}t%}+U=~r zeRt`ZsQNK#^f^}Dfl?=fKkR3nRDWRTC>1RYcwPkfAf>zJw)@TmEK1xL`>IKk+1m~G(&~Pt z5R*^`z($LW&lR_0V>mbr?>`!*1l=JX?(OOSkV@TeQ2M*{}LWB2xAAQ83;-|CJ z$W4>U#-X1iit$NKNYKFWF20u-QBz;CTCZVx{dxn#Wxf0U>6e1Djn_f|xGn`;^RUpq zSd!vPQ7La)ye8E1#E5tIb-PM~z@Oj36!>A!S)~#3#cK*{-wrU}SLt7~aNdi^M{xB- z#uV#L1_!%H3%|(^tH0q?z6isS#_f zlXJAZEavc`F)Kj~_I**?M0NIz@?uAQT}Uzgp=$h1`BT|Ixr0URpRkvG+yq$3+5S-+ z=<)p5Bt4@H!@lXB^HZ;y7k?-Bp|=9PCs*JFz>~Ri_wgS`wPk|?7k2yWbe zXnv%!M|e182A8xiB)E<@Ms?{|IYILY#0^tUHvd_LAhk%XJU>)(`CBEpcx8j9O*T5a zTI6W~k^Xl5+ED`11ywd9a)=t+H@ytWSxU=!j}eG4kr5P9oQ4>#Uh+rn5x>RR#T#|L zx8Fa(;63#&Zscddd&+3QiD(&2cbF`Q-Dg$#C1oCssT1P!`0K`Un2oChV7J5yI_-dh z;MGuuv~4zan`D_1QewleKD^ZYxO9f)#zQWX2r2CP-5-2o=S)0X^;uWLb_21doPKeU zJ}p~0Jk-Ig;)!r~`1Tz%ShE-V-U5_#7{ir6cLduR2f)P2+k`}?sY?HueMHoQLru9> ztxxhb_p4`FJ^FhLOwGFZT=IoyxlCNW6D+by7X5d1;^gK?MGu+wZjt*nQbPGE-^7}i zPtE35#d^BT)(+j3UMpq`r_Agfk!w1?|2|rfKdsgP#VHexGatdd?<`JOFI7DYHJNJ6 z_4V}FtAB-alYfx?iQmT8pw~0Mp4Xew@9z9diETdc5nq;AipQ(d_1c;0l={I+rHzPL zwYX1@|ZO z#ex^TI>t6lFD0KyiyvBgEH@&N`RZ*P?+@2)6K-tAg*@uwpNZa4QNx5CIvF!a&nV)k zE#?4Y=m9`!AVs{GUEE^fx&0{%5YsC@5pXnDvs;ejD7m@{(tN-Q>lV_n8QrT|FXD{@HESc7b~?tE~gqCT^CLhAuP9&5j?vV^RuN2xnHkR+)J#DtuukUR+MT zK6lIMEXU>EWq(-x=^=G*=OKZdujGj77v%t&JMAa*FnYl*S*$-C=ByTc5&iGk953)B znk559&G1ZIjLS;L@_qIY5p!VvJ6zhZ$miaLlaQ1wvGAYzDeLp>zXSIh z*fs-&p$sIyFlAzUqXfL$Jg*KzZcfj^UxL;(AZzZnqAl=g&B>Ne)f-VKR(Kc2j2UA} zKwwm%-XZa>kda1jZPRBy{N0Guj<63Vp}#I>5{mJ`g9ouj`BSvoc5+u29^}`R=urpO zeMaSJ72lUB@Tq6LhbZjqx=;Tc8&<+qHI=UR;5jPk1yF?mF5|n}B-{GGulE9E<;ku) z5{Su0k4uPF9?FhYVOuuJQA8s~A+VDK`7z;@Gmtgc(_(v9?`&yfzJRg8Li zE>DIe2nNqn9bV;)4}`}BJSVEW3ahbrcigp6VNShvRLJG=~Y`0yaHm3G`#}u0$i6#d2iz99Hz{{O`gc&r4T;Ge{GpCe5Jaj zcvFCazV*NyQw;(DVPK!H^cdh((myRhF!zkg<*X4yy29C5VtheFz#WI3J1fSyrF>v~ zLK0Ykh0lVoH;Qx(pX6NZJUiaCwY8NU?UI&$bTXZYP+u6zt0Ux!GC{ScOLK{_JnFd5 zHRhVcyBKwCrZ!`*>d6g5C)iGXjS!IIo|UtLeE4pdu{lmgt%WEZz2J<%?W?y(k_jRC z>Qz0E2$D>@E#6+qc)lib0|7{=it+<%IwUea?wXC2FDf<`N3TRu?B=co@p8gsgD5>> zC*yO>)?uA}Q_IC6_*i0Qj%`#9XMGgUvnnCMz@~Y1{29kc$YEH(d?|&r?7Ud?3!7y_ z+>?b7H@}aoQ$GQ=x!oy5TWYk0n`sDw{Jg}}9k*e^<3ILLx?j<4xg(}FQAM)M?D-bY z3d6pWE(UEymWQE0M0niC9oyk-8F(HOaeK+U8~OP>?Cm90Aj-1&h0?4ny_?AqOxghe zf>8l|thVEwf^S}d?7GkK!_s0?9xY;1ZJQ?5%*{FW7X;5Os;&vCS-*$Y!JBM12o}bb z2$PfH`X^7G^U6p`*>hy+_KQ=D6U3P*{x*MjA;21Meef`O*A>CPs5Zt8u^XF}%qIcDZZql)-Is`|e|Qa&Vxm47`C(6?$i9*@AYjc*!JJJ( z<6G+>n_CVceh`D#?;1u~35Mj!oO}1Qi;aGIQLBDdRDNoiw=}svreoVUV%7%(;b?T(|4rQdvnl&eZA5+Sa9|=r;DfuHR4#{V#_Vc`L zIh;|CBMc#@o$*v1e=YD9mmek<+Fdt}#f|86CWjb)?CUB^J*v$3%O`8KdOF7UqJ8qD8v7=B z(t6O{KHq~iCFS(1j44KaiD(uLe3d%>07dw2MWLx0vGr*1%z)TK?f7B-bO89-I64*!IO6vUos%f?j8a8xXi|sUZ}>`X5@}&xk?D?R!^%|a zPhf5*m$V~$5g|oCuiK_BIQpR&(Qv|s@KaX56?D6sjQ`kXBVPx1dNAFuoVDVr))24L zNo1+xM%|m1%4Ok;LjL07$6FXzQ16q9#S3Ax9!FA?)t>@P6~;wN+_m6#%0 z@eG;GG0D}lexyHOU09_LAXpt{a_Vs7EoeyFiBh3&XLyg4&c{aFDvaL(&ygjrQ+6`b ze#=@JR#(2PbT44?jpV8E42yazcn!(GyN-DcvR16L+yOR@*%80*$-_nk-%qR_TGgh9 zxf%=w=NX-!r3vVbNa#zJma(@EBYAHbr<$4}Fz~}3<;9Amc3b`=6=gt(qGEBpwUfuc zsw4EcOKEhEVSx1md)F<>1!Z^QQ~z8BgWKkpxItDVUs%Ks^dbwR{gGu2rbPw4crQ3? z`>LLRV~7}}rxhJV`MH6a7Bdf45J$g+DxutUqW4T(Uxe0Ew5%aJX{dz8z>jr1QGAZgcIw*D^G*JqQ?6V2EUGjs|Q7De$j+T^+Bo z*578q;vTf9DZY(A5oXA8^5J1wkx|LkA%C8}xKArr1oFDl`mx8srl3&H&I$F=lm4X6 ztF-@25ZuSyM3hu1myO%oP5f( z5*9{rk*gy2X$=yp`;X7Jd#0u7BMdxy45Ir_7qN^t-8Oq7;shLF#qOf#MN9p24VF5p zoh!%3$G?QJzcxKv|Jnz&=@mV>AKQBR+3>=EH_6*Qj4MApiHM1nR8;t;@)V56$iGx# zC3+2)9?|9bmiJB$K00QecLvj#k3M&W8*4+W@l%IgoF?g5kX*Y zH?VT%4NoJI1+mRNX$s#gJ*LkkRo$K%Q*5x=L=6aHuVBcPIEA!hcClJ*I$9eychk+v zMoUym$Q5);3XotiFMD1m|4UQBc<;O&QHBrPZ-^&$T3`<&FuwTjFK0-cc?N+UU_EgM z*0V|9q)SsMF!YMwT1@Yvf2k#FgwV!te$M#y^06GiO&?djQBiRS@I1%Q+;mE#?14P7Sx z`@4IkUN$S~c$zq$LKxqZmTqi`=18y=S}Y3P)uxJY%Bm0n~hey?=Y zr&mc>I$5U6n0)>T-YkRsHTFiJN%Wsyl%s9N<(loj%-NqezycdcR;Lvnpi)Wr=DBWl|YHIi&K?Oq1-ROmFo^37WHvio06L_SH|9Jhn&*bRP!5M^AZzAWT9f!pVT z1WZiN+j%ciG(>?UGHX~UBQY-GEmd{oEiQ3(KZU&OHA#D&Z{w{pE?2g*3 zE+;-@NX0*_r*Gz!?V?mHbP|7(m2E>|Et}f6di@PCKqjN=MY*4w-vs(lBkrCiypR+k zt%yd=7{~Jq-=G|~TcrdG4)XH#dm(jX|Fz7OG%wX?JEUg?{>JTtpv4D%M4FD81r z+0w~xetb)`b~_+nG;=A&f~QayR3jJVFHs{kf|m_jMo8P33s%2Lcr5raIQb5TMe>V% z31TN&IeX=Cu_h_SgHoFB@-{%M6Dx%s~j@GO6Un_=s%TT+u^q)6k_10DLOBdD&R z@RsS|Dg%b~!vMjF5=W_)#h=b+PgHk7-Congji@5oUrvzmtBli9Myo6RH~|-vx0(C; zY@t8giZ=_&0;+RFd2>2#f=ZN(($09OAyH1&?p>yA-}OEQ$YQye#7+Td+E3gYq zeX~>2%bS4{wS+(r%2+aCx(zTwO<#!UCra!MKQ1ji2eOu<0PVrQUQKH@RRa9hW24{` za0SQ4!$WHH`$mW|Azj9$ilDJ`X2~+Ok_dt)FoVNO=6E;ZMq?Mdi^TfO+mVFr(vG;| zqnN|>pWo@=!9h|GhFIL9{-hO0vfMC%F>`hx`|7byj#6c=4^nj$D9&}2WxF{p$4w16 z>u-}H-;Ve9ORyCygt;odFJTtSmo^PvN-ly9c;-U$+M~9SpAqFJ6O>W7MwFFoqm<5ey%^z0D;i*uL7lUpgi>TzqBL4E zVDze-eX8DQR)8*_i#szZ>ZJF#wsh(2LMUxQQhYj&OKn`b=+0t|p!12mai0_6@1-Um zk{|MGeLqkacb4|IyZ$@5#f2hS;<4{M+%)AJT}47>7Zzm7)VgkwFaJ9v9#U-fLU;L~ zkd2HaO=tdB&s8*@yk#r&l3t6Jj?V>)1ZIJLq3z#21!@Hq^(=B6Hur7%#HX@UH`U{q z37O9jm*=HaY@gFzS3}4kdoN@DMPt0u0?AaPNpH7Is{49QTp%v#-oo-rl}5}(1f%2r zgP#5oD1QHZ0S>x62NKELdxc!UPxAP9ul9}2`{clX%!YggbXN9#HpjAYyV%yiILjQ% zRa(N61jzYG5OcQ!C4J#3mou)+Ol~489uOK2B=|m?gP&oxCdwsi7P*b_2`4OnUo1_w zCur)at%W2cAUr8Ve==QPHF`PjQ)`?QS8HbWb`$ra#(K3DPRk)Nh1S8(*2f|-SUlNY zTO;-04A=jZdX@%x!m}==qjZ6{E_A8-pFd5k?bG<%MYqr9rPLa2I5INbAu%}@A`pXTJS)r((Iw~bP?T1^(jWgF*J06OCl`jtXI6;YY z{usJXcKAMsWj6GP>}dTI;%);U(aP1r(!kylc$5u$_QlKJb;?*~s-JOT6Ua>U+PjM;J?+MPy4NdBE6r7p zA4 zSwLkLPy7zeb9-|$)+IJM?cd$u%grC1(B}?dnt4D`Omx~hS@ZE@=|W8e7mC+(Rh)!B z)c21OJ90@aWOLl4rn-Uuzq4AiJ)yKZJzl#U9WcaYT3F`)fQ%AZfA<{PfSj67bZNm@ zTdFOFB_?-uU>z1g=zuRJ4e@t4aDn3E@dXGsWjApQtEk?$O=7JiyM9mEEhCc1B>>oTf9H1wW`?kgozdWXU&1U-~3r`=$XBaC%=+vsJ{oqgf zV&xyZa4}@4E03T!v7clt6$ab=02d7*F+nAM-SmnOi=@731SYSmr_rpFXC&=1pEY%% zYRjeUv9v;PK=UjcQW}E(izq0?_Yl+ZZQ8N-G6BQ)^qTxWZ!?4c{{9kYtN4&l2AA}; z3Ymu;^ibR>d7A2geDM&Q)4RH~=)3Rm^8GeFgbAN~{2QtLWGPRM-f#Hk=5K{jXtQN6h^~vL=apBR} zw%KT~b-l-He}8}ME)sS2zgZ3|-5z5r*I{9~%5NAare&qoa0d9}2zbeGC9 zOM*tw+Wpk>>ZrN>$mNMErd;1IYA;ruTN_%(SEW!~sj_jZe?Xv*+$WXp-l! zS?oE3P0nN0Tv`$}=s>O&fqlCsI<&+-9QM`7t&eH=4_R^%fT1iPvLB$=&r? zC@={P+U=?cA-+|nVHRWKPl!Fo?60N~2 z8M#7(rusLSg(!vVGJynE_{@U{Bbm>lRz-TAlsGtsS{F6x>KZc$D|P! z@=?~!WJpTey!KijgJPZuEj&m|E0pZPIZFMc0c9j6`WzFCx$ zyeZy(rnO)l>;bJI9|43Ic%OgWOlt(0u4+%trb*?*+esENu}1aNq?c|3xZJwMlCctS zA(__ddv&?wp_Z%8Y;(gg1<}b|*mS zD9O`|^Omf<->$@%XY>;jv{MBs$;%GaE)AehJ+4=J@f33$L-f*A|1LUJ@o8gQR#smL zZv^XWA1cJ%F_RK3F34|U*<)I=vR>O1!U=)O5aQCr=tMs6F9`=Tb2@aezkmM@FNAI! zE6aYZv*98I=gN2`-otV7>Ce|8+!ddSz0M-KW8OXhOHbEU(lhfNE$to3AM13r8d&{? zW9nMpyI!~b?g7s;CsXA*Pp_*VtFtGqW@X9obb$&OCo-;E7LLaA+tUVe&rxzpN=g<; z_+PmHAMv}P0wRypA3qjMtTAaKxp?E`bS^h9H^zSn=7SImjAv6AU0%g<)`jY)Rb&zP z&?9(!ElcJmk9SMqx^K9!<8WL(FymDiHwLHcme^X4?=IM-`}D16<=Y;F)l$nWHma#v z90nx%{}^{F;6kA=@-1tHJyLD;I*|ndMaF5;&GXNgOU`CJIfDrIZX*f9q1`sR-`uH? zNDO>=>1q$~PGsGQQU9}-vTPfJ)F9ZT2qx};VHCPn@{1vf*y7$K9M zl0Pd=Az(o(p2+*RFH;R5b&9~_yI>nsX!P6XVAcQdTCAAPj)Yd^jqaP|M!%y3tn15G z4-Y#;^~X{J0&x^lbY zVSI8i>sTG~6h>h#2i!7}lIS}8rKKm{NsOo8d3t$3hiQB!4XxU1Ss%B)uXfwa-8mAY zT0hHLprrJR`G_w#Ts5_N#3_GBhh0Gy9VO3{-!7ye67f>~972}$)Sga%-_XflO-m6X zVsPCC;aS8g75dD-!{B3LvpVo-PG`VpVHW=Zo#mI}zvrJPD*j5oQlT1*OX{+PBMqDw z2MWIau5-V1$xKQX!+6RY9WmvdHGdCs4@DGgxpF$z)-+TIGvZaa(&mESWTfesu)6H8 zq}si5Ddc1#H{-A+w9a~LigQEwB}iU?d0DQXw~a^MrHna^6c>_6ch)lv8wX<(B9FY3l!3xJ7y@%K;P-^ z(I|lmM;o_$zHV-A!PqakvX-b^Sqj}?)d2BhUdNtXC)7+P3&(4&{9@y@>KX;k8lo#B z^Us(bgLjp0zJ#-zoCq->dZG{(1{_Ms_a(y!{W|dl$x^WTvW0U7WX|FLlkA5 z3jy24R_T)t--yAa=MfPm-8whIYW%FX2-5h@P@UhmOCR&b%iest&LOQ*76AnKf7>7w@nmTy}F5jLp0Qa~>ed`*OntovmV zj$FSgol~Th+nU?(282WdiZYkzjAfLSmF4B-ZEbCP+Xr$#Z%VpEJiR{7p&;9O>iB_b zkHulxs&2X|TpC#f)}oOrUrAN6RA-PhiA@s@pcp@$^~^LLjVQnTltd~rWVza>$;~xo znxXmQVTs<+8%DWBwN_tkm_9gLaTYkG+h@$cvQp1umUfeR#KaOk>f zP2+q0`NH|&I#1bZQ8^BBYldM@44Twv8VV5~i$B16}2Q`n!)5!A+$fqQoF zm11%+<-q53-2Xc)*WV9+13zRePU*L}y3gCGE|2lNi9=ajP_x1g8*A{x6HTN*qnZMT zhI-ZC<#$Cctf-i0>Oy#v$C>ai2IU1?M|*oOd!IsJ88{=)^O0!${O9#e#*lc6Cm@(R z_Z9B``4&3jl@G#4RvkZME~cMpz(SQ18U-Wp_!b)HjRy^#tt81>9#$8}y`4Me8I%+G ze|D{|UN&AqOvdA|MaJExh4%bLc3ON7gD&$OoH^QT+IvNY>^?cxq%UY^e=)LO`gFvb zX!Bt2G=lkzIY;i}yQ`yP2JBYfj~b_|u%m15L>yB#&N&{FpZu@K?nfIqPyI;|VSdfJ z*;I@A{Wl$R+kYt>QBU}hqI>ZDW7$>WqxiR&adChoB}w8Ws%6~5_NzHY-iMezN29ek zNFxilxMm+>gil5k(ecbQgXB7iJkLIRN86TAdHVkOaND$%-?yLp346#gH{7qgoK7V@ z@&sddSftRpMAbaiMI4FLt$WT5Iaz0vu=S#(36@CMX9kOz?|k}~+7<6DHjfGA`5)%#fIAxYc|O~1#45&G}q zl_S~QCJ%ikhYOvYD$3*tBNMRb)$>*E#gXi{);Ek52Ve-TCwCBj zpUjrtO1u`lvsNTjlZO5?b>8zFXri{)%G;i2YZY$rlzgM@GKDm!=09@GSBx*i)f%gG zO{JiW{R@>-AEU+TJ7FIQfaaWArEXq^T$A@Pkge+>`H%M9m1`h%6CQU_>&=_;F25(( z8?6c}PN9e39WG%zQWQh;OyIdF15HCzr1EX{M2w-g4wK4Nxb0%F zZ~-6bdA9PL%B%kn?uL})KRK%MP*!>^muqe~ z00{CIv}po~y83h#$@h}OwMAJ=CVqJd3-%%v?WNGIt97SV0BnXlT}W6=u-n}{Y0(D1 zL7a^OC#um#I58St%&>Ou=FW}|WhAnMl3gj4($ZK#B{+NmA)if)nHxI_*=uh!W1^LP zT`>BVrN(L6QGK}qV|$td7Fkm07~M*>W;KO-u{S!zD}AiuTP2e}p?c~o3@(EOv2j@W zY$jG9NZJO*4*|d9FbPT~w{+sUg@wqIGT|>;EF_~d)c-4mr{CNHam4}T*SR%?k!3P~ z^SksF3FUL+&RyXHBYOAv1bguzA+P8?FMR#|GW<1t0?1FnswpLXbd`I@w0yt|F4q#MvegZ-x^>I9ZqeV2qn<~AN*YwQXv zW~uQ?#SX82dFMBetv;yQs8ZYfo=^!~7Mnf0H(dA-CMXQxe7o`tC{5|6La_f-WY~LZ>u?)nn(5nl_EAc*j zmOmKa`YWR$N6%?MTYIl_Ip5Kz_WBz|e#_9@zIzD7kUe?$*N=yzzi_a3E3|>(5}0q- z`}r*-{;A6HIe4W!A??!V&-5$e(Hz6tnyjpwTwGkiNB#rIvO954{(|ow1><@5@Hh{c z2Xn`XE*OEt67(_1K{~%bn)A3fqdO+i4;VLi_^tjP_6lDLbhTYE5 z*9vJM##eSegTO;a!hfhIQ;kjj@7MUE0cmMz{Ds_OcLi&@SG`+}(v{wC6wk(RS#D`; zzDTY#J=mDOd+BHjdm)4z*1TtoBe%caio~`H83U5O*;>vOiVOOkqir;P7#kh!3SN6M z1%_Q#|Lb-s<1ECV)IIwi?*kz)9Y0M;GFYpU8=Mz1RpqUdiVTlnmBGRBt>v}<4T=a5 zrtl`l@YK$deheWijJ2WC3|KFEWOK26O7YhdoNbr}RY)raRpL#Fh>F|j?qSEzq6m>k zLW9IF?x81r^^Yb9%%(X-K)emssm*RAI)o(e;8|z9Qv|wjU~3R(n46h-R2wWK?^QOnv*(C8KvS0X;}L2mauGwt@0!^PgM_CP_*)$S2##nkps(Ok+3 zx%+<12I7SIPq9_OMd7caQK+689%Wq}v_lUug6s_^Q*ImX;^az$yF9ZB9_jP6c3xX$-HaB@BkKE%4?u5 z_d<9=z2*L@npjX&czeqnOTM=Bjh@^asP6q)W)$b=?9WG=bDAwhgIj|?y3wZm?7IAg zvH{C@IQuN2by~ZIKBZm0p{J$0hypRgohmqR1FrX<4fNlG%OR`uw=y85yZsyLrx+|7 zAX534#wuk|Omft=X~$jCA}@EX1y?e&j(KYsNE!SN9SheOe1FH*j*YzdA#GaOjN;?_ z9djvtRFR4gGEy{hio)MsxMUhH5QkfQE$n`0&t=K^VJybo{Y@=5_~MDhBlWntOH^CN z9zWxvMBJ_7lUw8rmhJRN7MYqDOjk_0-7hY?72!or8HU5(HMetgKEUDo0b%HOFVS7# z`;7o@GXog*TJN3q7fr~6$xb}6f?Jo!deWe(>1=yoQsfSmvg{t^25Uh;+*Q8cFHlm( z?YM&w4-M7X@}Hk`%d2azI`+R|@Tt<|XeBpRsX@v>w|-}hy^xx7=&Euns90;^L7C?> zUL+)ZrG)>5{2ZRdC!YQ}FGqXdzHE!%d9=hUbdp=mVZp&)oVvF` z!kx~%wrQ2}PscE$_)Wl+g1p|*Ds|d9OzF=9KU65lA&oG6I6*uHXJ}f0{cDA#(=azI(gm4@J0$E?z{9U$t=kC-xU73}v#) zRl1afQ(+f-Fr|xS^&Z(oNk|+)O!$2fuJ<14zZY`p$&E0%L-JVrAyhuINb)MPy%+AV zeED{mRdJ!JUv>7U{Bpml3X_Ad&ke0#fmnc&w@JtC30Gv2MnN(QTyPz`h^&IFqjMad z_k4FJGAUYBncNd#ePAv~y!%ohJvCLX_c`kPn4LRJDc0^>K~u{r*9iTt40&yEp;S>R zE-BvSs1k)70jIRc=m#1!<*GqyKceL|Xws}$or>M4_YwxL)7`rNUP+fqsir(zdR5Sn zQ8$%*F8eGL&k@g!q+r49?0QQv#~CyrJ|gFYEm)bac`zh{79N=8*-Jt|x2*y*s+3+J zM?Fh5PFX+|K=S|sj1yo+9YEHx1byfAH{!Q|#yzmEPfmF8XM6^B?SU*sbO=6+8f1CG z2Nx+RDX)YISozoRAVmSC!1E*=Vvc-m@kJ>_YfvZB;ciPgd5;ahc0;_JB~yv)Dyt!5 ziFdiv0x00W1V_5_ja`Jp zi-iB%??_UxDwcuB3GauUyabZ7cebN72;w4v1vS_DIo8c<-P@m#$XuWP7(DC_+)#W_ zAbzkebeEIjEL%(o34>L&gHFxyWKU;pR;Y_#N+-E7m4f#foj+_GC$)~+a*5K!cf@|K zoa}haFMadeQ?8sRO(GF%3+Ov@l2~@w3*?RAHc^&o0q4qbd`q7yc82eNARw*s5MJ+N z`U3Wa-cV56axRlN>Ac(C7qjeszL$+!V!fC+^>J`TaL>R7Tt@KgY(ROsTO?kvitgDS z?sxi;I7f7U6ke(8%69G~U^BQYRC1E?*M0P?a(?;e*ILV2$Rwd0QQ!5V2_~VJL*l0q z4WtQ{)*lucrPHPb=pnKM`qk^>ELfz-H#ifXl})4hXoz5-1G)aa=FpeuQV8>e&%pY* zfYzXF5?Ud=(0`h(>0jK=W~*R6<}j2k&fGaO+eE z6XFUh;{j;cirr+U?w09&#@huM34uuzgWtY11x^p6RHN>a_*FWA#k8;_fYb4Fcl;$! zmKfnLX@q478?r+oUM}!#hQy*9CLYhjFlAV8`5wa5@yoxxi^c>b_4u-J%)5P#T93?0 z1F&95|D>HeMxb9~S7Bm=*Uow^?C!SI1QkC#*t{I6v1=bBl}4n{QY9L8C}SrguOEOV zs9&%)ZUtPQR8sYCyYOSQ=>xf)x9us|sPZZ!{`?`dP6I16LGtKF-LNt>DAVHG_LnKu zRDYUaucZFy(KC*8xpV)vJ(4;rka{kZ2=S4w0QH`rC$aEtRu#+nT@2hjC=lJ5FSPw@Qk}^P6yRaeDPF@&V1U@66HX6Y!KIY zx!}zXpE@3<4xMUm|OJI%^OPuM(w)^zV}cZCqrDsU*q$1%(VbAV;G zZlz&YXdRJP$Inw|&WAEc-f7c(x;H-VKB+H-ZoY3%>AbN1)Ux|sa!@gSyyr@1#`|ha z@0)|R%hFU4S$lLrbj8Z25p`dA#TNHsqH+!BG;aO{f8TLC_W-eTd<0861o(tD@FcXV zXve4DRIZgQ{stN?;}5>Vfr_9fx9uuy9GN6l7wiyYRAh9~(a~@h2S5V=ufv4R&*0!- zJYVC3CRrG~?D#s9$kXv>!!PXG?V>Y$gPjjFPYK>v4;>^$B2{a~Y(bT1`GXQ;OV^=yP^ zWhI>C-|SB+BP4AmRFzOW&OIwL^W@*kJB27Bj4?eqa!6z(B^hvBx%%Rd+}%(q#r$&C zf|$dHuN%99EWS%r|0Pxwe*Liv%#^T~BQ`WN0`Wxya-Yt9?;^~&BKMDqDyv2O#-ccE zNxl8bppEG@oCsIi^kW9YXAc7$f>0{F+gRjvyn={#bhOxICV68wYWVpy#z-kumUHWk z>(vBKCJG4LEeH@8W}XT8a4@)CF|(2THTIRkiF-zr@6Y~^B$6nXpzZDR=3_2uY}-Sj zN^q+- zfC9U8sts$;pQ}(mxMFf8M?(xQWw(vM&j7r3di82D0u#A^6;1Z+bAkeRyzpt|aI*e- zC3!dvt088;B)e^%0%;PhuB%c{Fh$#$w{0D6JJ!+o#*y$No)PAWE!b9 z0?Mgic>v{~C*vb6MBHOfESZoA5;a$ikxjp?o`?pjF0;8+Hb~D3dMxshDQcp1B6N!| zjz}aVxIG})5K{=FmlR_Avee3RZ6Zxq7j6p|SDTGV0s(^TeO1cIeqIWz{L^zSot-kd z&8c%%Yj}wWq6m=|HGofH#YGZlh{7^sl0=X@CPwpRwTbn96Z^W`{wtj zQ$a@e6rZJ-$Xz=AIJwlPl}E<~w7{1I3qIH+=9 z_EE=v!!l0&-(Zb~qf!#@Pz(hneQo#h!U*WI*+^YEZiiBppVpDC$4B(mKmz*C%HXT+0oD{vgK;&7)_GhniC|hl9}L*k z54)W;?l(E)*!#YM90>q4SB@^Mq!EZ~myjO6yVvICjOJ1n78VGU?p>0|eBwt6e-tz| z{ffbNt$5HMn0}_CyAY_^ZgOp2YK)HqA2wIxG}i)xfibYHq1JQw3aN~m`ueZ0c%m#v zOV&8@s(OIA{EHeV=yhOdH)%zG5S)U2v}!x270*7ht{bWA6tJ#Wt#B_Xv!y{@2fhUjW$f z?{`c!{7?`T7m&csM1uP?26=XiiaHo}eR)z#Rc^1d zdGdNQ>9QsNkuYjQC=7Z>1+>s=r2OVB^OTzNi15XL4@1$op`d2IdAr#9R=THhL}V0ti&x)n>z zg$n+9_*;W52k@+Rw)CJ+B^rjJ%S|#=$1|B96u6J3Uy!y`&w9U8t`c|Hd#+E2xO-^A zs#>_tLy}<&TilnV4D?I%_d@UgCl4fVSnU2to3I1TZD~`{t2gp z(pWoB$8J0R(yWmhhsBD{JHrds`gzJk$}ro`M4xb@9`EH1w8pGy7iZl{Y-CeTTy(2c zsp9xCjgL}6kT-ydhO*dN(aYY4fV@G@bQUnxM1BR9P33&jSpl^8vqAN3)55;KKJauA zf_0t6BYBCF!)>-CmmXiPVmqImy2!z*6Gu^48Y2ta(W%~qgG0XqQz#>cMoanhk?PD^jU2-FKW(!dceAT%-c-(H>h zLRuflb?+qEeR`X$gry%iWn&90A@(Rs=124>#(uI;_bO3Anz>W>T#d1T1 z=xC1)QSe=+6@NC*?D%kw+3MlBB)E^7AW#v6tDIF6KnSvF#|Yn<6`m zw)#7k;y~q4u6H2jM96&epDl+Ywiy~Ed`Kjir1=0q!TR(vIQw2Rnty(V;12MSz<_fV zK!vFsuoiKJjG*G%=aJ-PxZCq_CeU2EH8Z_h-3Y1L*I4Rq^4){hzCM1a0B2)!c-oQ` zr4-z7=l2&O9&tak2{AvvK97W#mQDq#CsjMrw&mwk3Mb;OUe>6mmu>#V5G!h~tPAGl z$mVA`gKMzU#gTeB(%Ee6Jd0k;l@JY&F$nbB99V#>QCaaPR%TPSMoJov)Qm zm;SoGR3p`om@}jiqeeUvNsVG(HY+TUo$uh<@~ocbjD7!}Vfx*@v45~Qc_f7?x`;1c zLS46YmB{>~H0WLG%hzOU2#TZHI zcd?~L)*oKoKucAqiAwy^KciDJ>tT%DyZ9uix7;Ez@fN@6MzbP1lFi&uv|yr|?iGFf z){g_9^CULFqJWKz%Mf$=r&t!N&WU&#s`X3enc#%LW9lIxtNd?E)YDyIph#de`Ablj zsmb)AOuo!!yY`-xuLUvBIY>1-hB+8N%eqt$7>F(}Yt<_h5 zx)`#2X>>zO5FL^3b1vzIv#~xVktG&LhYWcySs_slKeg^%Oh4%WLG90%#QkZNYtMvL z8)CxkTk2nV?MZ&67LeT0ylUv}dDtzJ5$Fv>Qmk4G8N1Oa%c}mb=JhS7%6&5|j4Kz| zh^AhB!xu1FQ`Xx{*A9SCj<->RB?NC_n_ij&`ZD*n+5$)4U?xU_k#8qRe%xk)*y!tKy!JfvYK^wFUkutEet3(OReWxr>r#zH@Kabu26v>~ zh~GRt;PQo|FlFkA&$v)l$%FMW>y=G5Z(+x+ho&iO;Leg@Bjl~7+H15o~(GrJVr;%I-l=|PC7@EtVP1vH5&J7;=G~Zv$Up<3E3OLfG(sVnaqe_6w6n zw;4w+-R&B4AoMz7D><%hJyBJdEpLvlhwDX558u7XC-be!?5h zqH(8IuC%l?Obc+MAQG8k=)5KCbY0*pss-;jd3MZktKso22z!L;`1ZspkT6MXt$2X- zt=&80YNhk@^>Ut`f1#&vYNB($HWczSdvUjxdRG+Fn2@)op8BJ_#R6#=62)U`6J%F$ zzV+0jRKZG4R7$egqAjW*kV|b)di6}mRN)Q3o7E>R6doFRnKVw_FSlRW43*`7x7^Qg zOlaNp46H_#u;_4XZ>yvPp*`tF2KHWDEIYmkH|Oh?e!fzYo8Jdqm&*aYgePR5UL&X` zyYSyeLDp1IP!LQ;>&#;HcYz;DpgakrA$Sz2Mb63m=(?F$<%HC(a9M)5Y@qMlhHz_W zTZhYIQD1^dwz?w2)xN*N!MdsTWI^&obczq-_gCA{v+;Y)k)~gvCqqJ%ZF_@M1-I## zgLu!2h8fiv+nn>c3f2kC>P9hNM5>EV`%>*4n~Xj?l^w&$MPyZ#_GP})kK0(KP0@z^ z){dz_Az1_~DU!}55X?2P`mHhRI>lM>SQ@=yVj;(w2H=4u{|y&8ui*4~U>)uj02C6i zdjPxWOQI`)hTI0(EVNK5V`&Y%PP5IEhx5Y38SaZ+U&ZURK2Gy9r~@4uW^3DY{3-{$ zu<#VX4e(bP8yib+a(S)F!-P3pcdr!#mLRCkwm@3HdeS3=%+*(uaF~jB?)c%k`(t8w zn0QXITo+RoqU< zZe&xsFclr{WN~-;8;R&j&Lv|WYw6jlYz@<4#hC2`;}GVYQ-FmrlJG`0ui{vyi`v`T zuJL0O>r$@$M!cnXt4;DKLpcf5{QWKokXbeXRsh{g_`WwlT|)yj4PD=NM_yfXYKGne zU!~CHnvOS3>5KT0+C2oB$;nS(8*z_9O;z>#8-^3VlRZCfO^3e8r#5F&er%q7780i&6Rwf+ z`#AxtKhFqX$N<~B3d~$fOZb}Cp0f6~QtfY{U~GVH4HkIe4e1*-*~@-2Sq?g2XJiH$ z#P=v7uAde$hOh7p4fIG?xPwAM(CfK?>vH$%Lp`FaEKT~K34SELsRnC5Vv|L*x~?vC zqhpXQQ=5N|$+Fn8cODc&-q0pPf&t0AD?C#x9u2`w^rMzug2;%sFVD5ulBg`BwFqMT z9O;Ry&8?rX>PT_6Ox6i!u|?QFQbUnvQlHHr3p7)&`}N`Lc3j%TuT)f!Tl% zN9qS1Z=EI!RQ+sJ;pEoqHKz{jZCi7D7%z}H?Q+fY6bV4)2*$6(S8p+!?junZ;KP8o zKNLVtKf$sh*>B#g0MwkuIy@p`vq|!pFJ9lj>`95b-{DUNy!v`MGlRZO!NY2?B43hz z{G{^a(7bf0AtmuqF_x?lrL=SXC%PeplZmZvjpIjsTS}3!u@G)v=s;QYexD7J&wiHH zSm4Rihkhn=_7)V7vQ~&fCRp|hM+;LQj;&zr<=scoEv%!G1~-OnC^D;vZYMf=VlQr; zIiKpcZ#mh@y)yOw$;8avmqI{J8Dc&TDLz$sene+cyU4;`B!m<;y1*%kSfOv=`PVpY zj(aR50onMuT7}zMg~N1xrdmdNdir@mjf(`bWRE)~PrTvzF>%H(kp9+D}ceE!XmF@0h6jd5iA02^u;lq$kBsr=_5x%qM z)N}H@LD~)ukhn5#UX!ZVM!`*G7QsOCw`~aYM)MXpCQkrojXPALxN@=W?%)V@nWMa~ zOmStnH{RpivWK~~03>=VIfXAt=xC0(?^W?8u*bH#f}X|)w)aN|dy>u6hr6RK3f#JW zTX_T3)lWM&UfH%(KKWLAT|>jxxNYkH+?`I~^@v z2iA@_4-c#fd?VIS4Y@Dm@o`xQtPiWIGvr-y>z1tcK9t1Aqa>Cw^Cvv#J7Y2@k9!nm zkFu(|iw?r7E<^6M1W*$}Kv!xzI^VY3_2C-;)j|2X9|)f(WI~Va3wr}Nr8}YGENng{ znK#q)F5XD_u+sk1taZ1`^!Dnby=22u3Fk+z`2EI@7fn=^f+#bnF7iiWV;fi$S4#q_ zO)F*50ntu3Ka4VSpO{ebaKvgBwWgL5=`z<$Ro%cS)hh-!mu_jQw|?IdB(AKm^O*~N zn58UnJ*jz5g|{$oru>(L`&`BNK-+;Q{V-cQIcn2gi=AoIu;x4=UJuy#wgQ=|%}#za zbbWMB!1Je}L?qk82PDJ-=LzQiKkHOP{P#BK6=1)moO>V5#xwxj{7HCS6k<5}9xi~Z z8rU@Ex)x?QzX8Z-b+|CW=jh*RwdAf0Q%Nqk$c~jcf-B6Mh7et<$E$Z(xT+(DZ7ee% z&vtHL24-B}1@ji3{XQu;96VNHYd@jBJ^nIlW3WH9WLi$xZKpPo)h)r8N0&%K!YfZe z|H4IYLsz9Hb1M4vs_TMdU-%V{CL>OyGQS@ULvO&wEB!#r%es6aVlwKopx^UyxYc03 zWBceO@v}4kiAcgPqf=p_PIud7Xi~uWn%sRfjumnFVYD4c$$VgQ< zwe($!^aI~>Yb27+easObx(zrK3@Tu%Hd3(BUuvJwCm=Ch_wKgC6WT(~!r^5r)Xke&)uJa0DJdiMQV+XJXhs>XZ1i&o zGKPMZRg88^8vQn2YX5h+|1oi7lc7%0!t>#Z`(BaH*NJ)$w#lN~N63vz4(SHa4Q(Lv z!gEW4ut(S3w4^wf1F03h1%04U@%6p)A?3ON$-iz$i)p+4KK<2%dK%D6yn|F=UteGN z^6_@0U8;&^ObeMQ~PTO1#-Jj~uh0&hEZd;NFKuumG|fsl4-c zwPOae_1Wu3Y%hLH03l$Z5v;SpT^FwAlLre}wHn538}R6&`8_plr_5 znAQC9-_6$46x2&C8S$ORCHYn4heVoiqnH&Hg{;#8y@M89tC+csDU41bo(0U>Oq-7z zURFL>AFm{ZxITY6|39xhEz!eO#%V0bO6Yf4pF!l3|8v%TsP|e$)mYI9Su(MWsQk-2;F+g5$l<*^0 zy7*M?^7%DI*L`Kt7a&euAG3HcSUNe-pO>pEKkL6;NTWMjP3lI$o{{hD+Va+OV3F{6v+1eTR|d{p)wpSXXgoh6azoC8PM1; zK?@a}ai8ecbQNB{0$P#-sGUZmLP%WCf>v+xxpTS7c)=@R$?rjt112gZ%`5g?IY+&z z@0~~uT{nD2Z?+T#rP`0vJgxQCAE#_JhQUQT9ye}hH~BT?QO!|Fj{@ham)Ta+*G>@$ zeva%36y2!q&+l%>za#JDReK9uOagodF{x~{+h*G?#F7G%Wj>Sd=rXuyheTjOAmmy! zg}O`3VFly5+_$`JWj+8rl0%50%r{)wL6QfkO?rc-L3q-eA6X4(4^R|=QttlE=^BE7 zefAeAfcj%#t^)RZ1qC$iOA|a|ewo#4VfAAM94DTw12g26UwB=HwdYV&((^jVgzyT5 zfS^xmgI$D69JSeQ5npboJsrP#D{34Po>`H__8S#{m+u>R?JwE}vWfrBo5)D&>A;W= zoQl?Uct?Z??+XwNGVjkCN!y4H?Dd6fh9VxZPT3%K%>cg2-M8d;H934gaai#ZFLcE5 znZWL)NHW?8L1QwI0`m=sYd#kg^eDpCk_SvUu4+x4OO}q?$(=67f!bWxuG|cKvbkI) z!D4D|ZntQ-v6@78bEie(gKoJj2URW(hlUzs`<-U3n_Y00JiC@_Fzd5;h+jcLk)Vfa zN9D#fH68Ds-Zu=pqm!7l)W7rb_huFOdE_3k08lGSKTmZ-H*QG6$IVD21mNBTy9z>4 z;x5jAO^HW4j(-6tH}*E`crFwypkxXq!^7LOwav`t${c?JYvZ&zB^8x{Yyabo+7n+6 zS7LHClQZlIe)wfQbds>I#=}Sidv{!;b*&`SRge`bSs_ttW|6Nt^fbc~_rtkgUv|~j zzuqsE`e}k8r8w=OSlYPui_t=b(Q6K@5VYl!W>S>t1zV>dKlC2EM%ZxWKnLY65(0+9 zC}H72xukpe((&)GdBEBx08b1&48jBHB_#vQsb^rHz4=sJ7?$pTcUEXSK+b>I`~J8H z`m06vOXRwbE;HUJnSi4SkXBC+nB&pz>m$Ua1=w+P!z^oNNL8e)^1@W;pD2Ol$=de0 zTI*V`_e!b7Pm{i*Q;UWaV|K|RSmK){>oTz#Z7GV4S7=q>S7qGk^t0Q0x;jrw4k`#~ z^y#L|Fw-W+Fu~j6c#7HG)BHbgmq2d~?AvR1y#K)U(w3CN(uobyj*e>X&EQ~31|^^y z{X)og1f9zt&fL~j+)>-nP$vY;G#^;OL!fjvggPAIYd>0;lNFhO3lzT=-pG>kQ1qix zZiWKHe~wp_d+sVrW@*ZIPGlOhqkyi@{TjwU4WOWDH#D%m(nqpWD6(PFw1;5fR~*Br zc?rRYV@K(i3?6jVuT2->lc-=NiyCK>y(Cf(7yit2HgqKpxIN|_*IF-r=7Ku(#CTCw z_W28UxF&kX2ITAZYPd3)&@1<}h8b_g!}9m`QYzTG`hoKRpxkzw?tXvwlK^zRk=Las zS<#;I`D*um#4E3HN14*@kCn4Y3EeBd)YF>Db7lE;(XMkH?I`&WrRVIs&(C!Us!c)X z7@itXjV^Nd+Tr8%O9pshE6~bflSzR-I?J62jvk6$L)u! z>6wN8y*|T1&9DU!f^asJ{KJQSQ_l&wYyQlne|vbr{j^{KjX=q~shODsWD3C?Xf@Sf z0`BWDwh`OEL|Aa)p?@Iq;E@8b_9#1NSd!EBPN=$UVR}+uaz2B2#X50Gh=Opmru!b{ zzMn=6RW2uzX)FbfPb2clQ~g9d>ti}vy)L@fK_m8-&L92aKY}=OX7ZKAKbt@E%ID)@ zFg*%V znep!L-<7;P@ZyIhD%Vq7lbSWx)5BPku#?@HN#7HwZ}lVOWFMM7!+Y=_7XY<&WPP5| zEKQb>J*_#L(#u7wbQTK079rvrX+l^a4`Pssbn% z06lmkz9kD&{pp1VJDms%a(>b)yi<+ThI#wpeHab8Z&H8>6N<|#mE$<-}AkGUpxI@TXOCuu~n zT}SAbAlOv023f4lING5e&D{Ee0>^y@G<25HL56&$RHyUM@=d{GeeIx8z{^Jf#>+PByeyK(&GLRx}| zv(jPIuJc_@g1Alhem>At@v+=*hPgB>$G8M_N|j)vF*C}u-!M3 z{0o>^tZaA``hG+JHaYDmGq+?!r#MhGIA)97nrp|(&}+?$S~oN4W^P(cuvKvsBO$pp zl>%pkeu-Dd;c=YTL*)($VU!)Jb$kDXGZ^yVyzJLGCq3pp?wW@3`qSL@XS`rcU;otG z()T4HmduTPyLofg|1vb=p9%||k)@>U*2$q^j2HYFWj)Zn3+HQji*JCufgTdyfXy-+ z1(AjShp4vzi*oI{$A?BjLXeiBB&9dR~6%dearKB5`l5V7=kx--?l#mob5a})j zB_t&Nd(QX!{@+~h^~QDHbDVje``&x)wbx#o1lAb}3+rwU$?K75*J(w@o{b<`SS-Nn z8gMOU5Dww>pEHdgkjWf}Drd{Gk&I(b*?v!5T+*fdeNlxc2_yS2>9bu&G zSU4~F38KkBCWc}5ts1+JQ?v8RwVM=9195@`{Tu&1HKesSj2{44-243d@AQ*@Cnu%G zZfTKgMZ**E+F@%{T&AW??xj$#0d5hv#Sys#aT2KcD5ZWPNE_fKWeXoo%{V0f z2(PBuaJI%ao%`%GyJL6%%Tf)+2y!!`pvW_-&%)Wy1I$RVIg!Q}Ym<$SUOx8C3~@Q2 zx)QFiG8!MCD*lGUX4{>pIHG~(Juk=cI_w?jsC`UR++mJNVJW1_7%gMj9#Yu3j zt*x#WGzjI01c4GToqpCs_}XQ5<0Ye@8il2C@P2IZ@bCyH=ozv^d>m^g-=<#toBxhS z0$gYZLdIMePezbKEiCBMWL-m-B58pPsT{RV&)p(K2P-m+|4r&O99+z6*tiH8wpVF` zJwL))_^u%Eds=2}X`{P*oWrtb@Pe`5$hH+zJk@y@)MtvvG+*JLlvXw(R*xa9c#nYi zf`{zCgHyv4rm4cfz<~CB2M@;59Um{Ra>H8KgL#!;;Q))1j-z!e^iP~DU^9dA2ahc* z@*jTc?p_7#Q(IfB_f4mUSTQa&45Sy(rdwKCf_+zyYVGw1Cte>bNZY9U9fEevpPYdv z8As;I7{&(v7zTpB=a8#XIpRA83x0z1p5!YdIZa%oKo9<7W(;QSh&>|Q#HV-pm00Dl zZhgnAzCW!(=)@kO5El(Uav5m)F*MOxJed zm$sJ3jh4kQ{3c4$4h*~m2$*sG==bmME#4nuV`I4(JRinYW9ay@^J|uB7s9aer%#{! zKqLdY;M#?2hvM&^eU#5RO>OdsJ=?b=2>KL0_pZ!}2+>f+Ylat%L`jiiMq@CAk?uUC zW9_P7SHQ%?YE4#9{HRRTgOAvdLESH`uPkPt8A@UEiU+os8Yd2aEKB+lTBj@00UCD# zd6(B}i;M0gh_lkUsH&|!1o_Cn!)-i-M3ysH;MdxJ6D&^7x$Pq7J)rBW zsKQXq(6p9v#iATiJ=Al$MU$mEHsHIPot<4as5q;O%_*96Ua)zKjxG~yg&(#0cz_%P zHl@7#nI9;g_H`+XJ9wzdaXy|Sk{J;m){9(~7BF6ChS-0j>VXKe5N@mBa+ovEB^ zv&Uz}IZE|*p0)b3_y5LRO6W-#4TzmhACd%pzG%RRRv%PkcA9zpCErtb`l>-@8;#a9 zUwOjza{~1|sQ`l?9u0dN@uMBD$q*6Jgwz(8$yxQJ@63_p*2D;kL5V1NRWiq7>8EO~#m<4d0N0kCF2!x}&q6Xg5--BB zOFn%~P-MR+Rhp~%^_m>b=e4z8d>5hvl4l!1DBHgG1@}|4uNU+I;_{H7kc;mMZ9e#a zflP}a_skqr0x+dGHVDx5@ngW8ctOAj2Ec4$US6K-!|^ZoMZ)63!or}H4=c@3>cZ#h zHbWV!ySwuc%b|tzl$fFBO#(A&3Yqh?zdEn!OzaW>>Ms0nFhGV7SzTXWZzlA{BKyL| zxW;BEYOJk+im~eIdK41>O$fgVeq+F0p&j+g-?zx~^=>nXyq(r9$-Px46;S@0UhY-) zJlqArY3Mx8)i2V^*SG4yduAA< z11yp9N;V^jV>sP+a^T<6I}PW1CPTt6@CL^OFWPSqjIp!eYj^b}e;5}Mw&JsFS@S;d zxqafh_dVjhhu_Do;}`z_&arli=n>c{_pqzhEhzj|3eCPR>b6L0-R;f}x6=_%S00e_wDT6xU{<3J#WNN21R18@im&pak)#(0w<(;{&O*m*qir%&x*GeJ`-rKPPVJsg?E({ z6nGvrC7Iq&=pnxk21O4wGw#S=B_>9TvY}>8qJh{b2TRW8))%NeZC-UmP$+bzaEE(EhD=KHvTAsV|n1UKB zZfV!@$yA1BTo-i5{~jD9weq~FCD6Y8f4?7^T;R$~>xNF0a25KiMAXbQJ^UL>Bqs+Z znV6Ws|2H}+O6V3jEp3ziH!l8@ordH@R^{U%=J15GEOU=vKMtWCaNGBR3{BsBlxqyjD9T=TsLq(1CD&bZ{VS zumS?FJN~CNTdWv`N!*)7#V^PTBrSHqc?&{%~WqiVG&*Q z4H;+ks^Ntx4_hAwO0}vO8D2 zj!muAK@g((M{Pxrz*Mfun=pZ{J8v0$$sb%rP^Le|l~c?hR@wenO_cm<=deRtyW3;F ztd-OLD~RHQf)G{&>W%STS~mi$|0h`};uze=!o);(=&P;nj}ZaKzBy5m$t8^-m9w3* zx=~iiN7$C6z4P?mcuqNiiAH{fB|JOx3L;p+< z9Cih)_Z?VG3vUal9GLL0Mpzr*f`-=tA8u2 zp}^|TDH%4WwnD--u_Sk5xuJjHR6pMO$b_c{rLgNY!6%F7oQW19Z=3u-wig*V%V}utaa{|7E3kaFvuh9;N&BcJ8x1FT=Mn2Ex;BLS=dN z^~5aXD21486YqQfbt;}8%jzq zwyqB!Mx{f}{yfa4n{x?UZS;&7z?23A>8n8E?TvoH7$Ico`|#!Gb`mG#a_IlHLLC4K zQgm++Hi<0c6-?|Zh}s2sZx3S^^_p^rBuQ`}!kLYl|33cZ^LSZ0_SLI_Q=idCL$6g6 zUi_V`vnzR^)!;49*{#hb&_nIn(N*Xc9NfXW`fk|9;RQv0a?MW~B~}CygABpixk2=( zd)kSfH~Z*Ob;kz>Dk}Ek86kn-;Hz_Uq6iu4MtNzh+(*6Z*3h7 zr81wSq$H?lVWS7cpt<@dIX|tMZ&#!ZNER_?sWcLjkT6PmJq0fcK_MZ%OlEpKyq7dW z)_r{F`@K6i`@u$I%>LGlJ2vMwgSPZ_dLZ}@u#6^08i6Xn#4u!SS2MVU{BABBo{ZHdH^XQwIM zi3<{(v~S{Na1(3a9)C|KJ$HAdVPyHZ$7xyugDkq;=gQ!LdXd&rGH0096z$!r#|;Xy z`IF3H!Ut8P^u|t?b3d+-V8&kRA4%tz`Aodq92>(yC}8$K$e0oIUrg{VI-F^$*qywz zo;<4DS8=-(ky4t&o@I<2D>O2yFgy^HOLP`m5nN4S`%^pGO1zNjEUG&L2141fN< zt}Yvv0D)fIik(UFQ9yb|Mw8bcbMecMFG;}5=`UCo!-jQLomYwx6U-%kbx;VR=bAV; zHs%8_{lO#(76uQ}aD&bJ8+dLL6B9tx&BKZ$aM*3^hkGaCMf7!hvMLsmLiJ9>j-pKr z4b}3d|Kolt7tdX*DC|#?`i0eFFC<+X&k}-?nHc`rW4~ujA~j!fi`WVVSy#<`kWs~a zM09wc=G=V^Dk`2P!v3LKK+FeWb}V%2nf$4tVKf#wa6B&=Aih5QcC@-MF@`QgNNapz zI|?f+rp|7=#qYh%V8siI(6>RI7qecOq+J`KcwbX0tQiQ~kJ^M-$f+xq6)`)o=Ui4# zudR=&y?XJtkZ_JNYLI{O^!#Y$zhYtmFjIL&1;+Z<@aHl{#d0BS|5Ism3PS+_-q#=2 zD&V*TLK4Wp-Q2rk{_wrx5#MtbUfvy0QJz2}OHn{f5Qbi6J45lH=n{@%Wn*JwWgRcm zBUD*&!8mvolf+GJ5fKpqAnYM@Z=rd?W7L>TOhn|GMg7xca^z|dCaR^FGJ*p&!8}w% zuIJJ6ostFh2YF8r|Md6TUxptc(XDqs&0Q`3X-+PYMyhNX#-FR2vUVuru33%iZdLQb zICecuHU0XXCvA1-9x@g$_lxN?xmG6-`pn@CECk)rEL!^wmr`3EF9>WHKw975ot(_y^ExZ5@x@i|_N;`WVyH5d zPR87TxfFFW1m+ToDStmdo+DBwcESlK)p9D*xr*t-Yk>tAh-)P%nYi*`70eIJNqleI z&KcI7o!TTF^szY|r~~u~dY4oePOEQx4>|e9@UudA;I2OxkFlSrT?p|^O1gkbr`g;v zwi0UuIRgdFed#J z&MPSVyrhiCy6QfM_s>!(S(V=;*#`&$-7S1{vO8VB3&!)g$7Uk4dmK3-zSQ{Ij%gP& zj*gDtW9JHTE9k;KfpQhfGg{26uf96fnEXmCbZnk+cqG!Y}z5lGC!4 zJ02(>uSOyfD;sQPs;oCF$DKSZhc8XMzm4_OnC+S*&wDk$iCJmGi4W?)M&u?i{pBQM zTX3Vh$^RuAGx;gC#f#i(?CaomX1KGa_u%2fS2RLJ8<{VX_)G$9g8xfw+JECJ`t&xb z_)H{y|CTpuLzOIet4pV0&w+N1K*U`QpQ$>bQt($GboG9K5n$y4aLB}K#AkoTl;X(o znF?T-90D@@y^dfocZ)7mSXlV{BSyXb1hHx3fwG~*HP%A{L%b&P$NiB=E5cw5(s*T` zG19hZl+5=&EoZe1{VzP*i;q3{)JdXgMq+|ctid#&tQL5?B1~9wu`qk~*_Q6lUZ+Z9 z<>zMjY$3!%j*wHpoDl8$y{N}rC3?JgXE&qPX;pio?wxHg6;7)*eKGP6i5e>`3X#)x zjp@7@q>W^r7viwmr;)>Fir&E32yGUht}m9s5XJKO`?Hj05Lfp9vREX&w-%81`5><8 zoSd8#js^M-=0{bDbFMJKoEBP44f+XY7M5hiFHBW8&&Jf1l@}+LRC;fp?Ld>xz7ooc zb+255F%tbTqgF8ILUspjYE;2)VCecZ09p;a*k>Ggfzfa+kw$Xy*{ckyBGuUDKvNRe z4K0KW3*dDL1go0p}dw(*rxQ_E7D?_R9-&Hv*XFONhL#Zv=VYR#iPgKV-r!_a+$36}J0| zJs7oC#CLzn5bAUBvVFE9AUF6-+ayIr(LGV1#y%|MCnk1#?=QF7zr0FI%it}pqyLqL zMSJrgF$l>bdp*WN&#Pj!`IhQuzvTN4542U{wY8^y)W#Af z)WVi+sJ*zhaG6#~CGm|>#*ZFdBd@`dAHc@JfxlMa^+Shiq3E&7KJThGTfng)<>MvrZo^>Qpe@J5{UASp4bb40Hm1I2}z*#b0Cl01`BhG8)itOe1TtF5o! zg&DGu?7N^$!e1NuN+_mYs*S+l1fpO`4mNr|1e5F60hsp~ukcntP0zJsyzv^45~ zx6mnomFwd?9-v<{f8GOd$`bkj`n!h{3RJQxw;w)y2r|26 znAU`OEc-wGcRb2(yS(<@o=``0EFZ7t9TZFz3!#N8=l4Jz^swl*yUGE^`I5RirK+t7Ymws4lTS+|rNRzN(n?s3A$L zVdHC^zh&QNNtfF%N!~V@H>R4gae7iHU>0&LZB%!Yghgqmjn-K-VpEEE=|q$mw}QI{E-Mt01gTv%c+f zP}1Doyhg_;XxRt6KOz@W6mZ_<5M?(RdbO19#rc^KwZ-l|eyuVHq6TUgMQWT2Ldan7|Sg6Wr-`G<#frB;D|5cgj7W*?}t6U%FMP zq_goQ%BxRPIgXk%A&ynAl9j``^^@3MHB%UvTCC4xN-W20o{Kth?aXPtP55wiFF=1! zBqx{B$TtVCZ1TQ|hum)WW=?u-!1?Lo;$rugn+5c5e5Z(I`lYz8OpiBJAbVyryrIMA z0s#O_N#S`t?{UrhUoF6=PYP}C0wFFW-c-}CFf5!(1C%B$DmpPdJPc43Do^b~6+iEJ za8#1=KV8}9wbb#^i>!V;V!ZVq###ARO=AH}B3S#zo64CSu^@7*wGF-khvcX0>K&JS zkNcZua$@2&1_nsczaaPq|FKM~E`!Y&&j~icKB=4pv=0GLLEqvQjF!Tcl(hYzcq}Gdarx3Nk-hg7qtUPB*tfb* zvGcceuY`B7M&Kh7-V>Um>2>{?-zg}4nJ;ui+A&Pn2-XyMjmqTLu)Dt3a;NXQ$3!+K zvaO%4PO^VkpU)KRex!-thDnMiZ&>N^J|V79Wa6zbj}wR)5p%gL3VNxBCe0T5}}P3RP= zBtuMtrEM0Pa25Uh{NP5xCF-Dllt_vmUIfeqQ3@=0LAi13=1rxlNvsZNLub8yokYAq z2}?((W}5p32a~Gw!@hJdi%f&zZ11@6-JZ2y}ctNBaq`~XBna` zcvosQQgx^;fJ*ax_6%%N1^stm@5BKt`q*@r_*O2TPyh`{^kl@Irt?k~Grl(N!d)3S zw{W=07#LbDKPP~?tr)^$*+s*hsm^5!o3q`E@I}3z0R7s?msi6P(PS#=9AsVc_>mIw z8`4)AIGYM@#3BnRq^==4&2VmQUP_(U?E8w5UvooXYlhJuyZRXK7hQ!C^a>HRMVR1C z3?^hSO8Lh6En}PYt*0*SS>!V2_SW+lVjV3%jK}VmXm_gwlv+sSk|$H+FeHtak}_cj z4VxCViseFSnGcQZ+;=Kkx*!@(3C+2s0Y@7IZnAQbYLKU9~}jP%N%%2 zZ0+s_9{*m1*XW=R5w8L$KTZ6J1XeATx4Na~JCFJ*v}>n~9ai)7t!Vj_6Mpv7BW{3N z4jKW_(*Bbgcz&3gpT7*RZ{)SO+u9(FENKewBQ9x!IdNndjO#oGkWw_FhC)GnwFQR( zJ+)Ph)Tp=W2qe5o&C^(IXJG&qZm^LOD6L}{%-1h}K*q@Uq?G+8`}$yJpyy~p^LYrD z2KBbq{0LmbJPK-XnHFGJ?rOqThzl?9ExO}@&G|3R*l6z~UUu93k$v6cOsNrBVzS)H zpzYM*Q{VA-ZjXz&qxQ9rc~m*yu3wivxp#4X2z>Ji$8x#0zDf=#n*4WCXof+ z@gL{rOemL=wC&ZE@Pgngdv1*@i_>YT-_o7OJoS)`6AW$9z%{gvfPW0UT?XlZGa&C9 zUVHaOIF3Wy`WDAVOkf2 z9;I@Qt|Fmm7(Mb_ zr6alCOfPg6h(U0wD26vO4I^)3+u&~wzud~{4abWYFL+H_j$tx##xtF~)g*AahggYGQXRm_1TLn1`ouCQoK@aSfktCCj%@xVaB!9qPG`GD!V~ygG6AF`ix8#naWx z(Gr(UOkMudYV>?eiA`MwcnPut7EqkMQ6L#Qv4I+8cGv*3X0#3mI0%3R4gM0+w|J{M z&d<+>^vD?)er<2RtyUiCRT$Rg4lL54YUE1Zcrq+?6+tU(Yqm21sLcUHFQ5(qdN*?b z{R)!YgufYm(e{IfBLp}COlTN@i-bZJ@C@Qh;eDzAF>dZ{(5*?rf_iu-4pt3UMlvvTp6UG{4K;NZBsX-fO0aI48B zh=|aH3)F}(PXMQTw%OC*1(W|xfRG?}st0RFcYt*u3m^>n0*Y#YEVV$}L00S!DuMqy zFa(e!Ujo>aqO{Lul4rSz%_+39@20=Aj^01H3#(O6_SezvefU$TVq`P6Cr-Ma7c*XM z5b@Y*6|g8HqSNkvk15uo=-`h18Ef9g{!bv~(eB>nY3H}sEgvFqiGLpLRy-OTxE_tc z4n|Ps(W~drbbA@N9p!Z(Wp3{BwHWu+`^T+3WdAe_@}W zzx<#Hqt} zcL05Wz_#6+Oj>=!Z{OxmV$X-##dp*x+6dW|GNi%H&lE`&wtjdITk z03X8BKSFoSeoaq;;TK3K(aLMEDk%H@V|^rNvb+Gk3KVN!lSUcu`Xt52KQ3zreH4rl zKGa#efMxaMQdWIbr{6z|^g zUuaWwgK<5KPdoz^2jn*#gptuSph^!oX%K*MX#89{6yvH@m=tP23;>>%cO@izpa=tQ zHkG7XO4^=MN|e{_EbRN`P|KY&o%+$7)}=g&@BwV(2>H%H;Y)&opSh=4H!=Au+P%9Z z+}&pyONamYSADj7H19E2U6GRCYF5s9RP3}Tlp5sg&e@AfdYU8ZvHc_Ge7edeXZzzz z1G_(gF+Kk%WXu&#cm9PfvN&VO9A(Gf3vl{UU6`e%=xs+U!IFTjdw4k8och7vS4B4R zXzLqy;J_7ZZx`s(notaF+PS*!!8?ti7vF;m!=WaA;ByXg6Tr|zBc|NR?j$561_qO$ zn#`QA9xfYx{p6s$oM%Ws-7Wg6w|sPnd8?DUQk8y1M(Hidzzx&DbGBkuR#uqcLO(cw z`H(|sB)#5&fTQ#zuaSZ%3g|0s^|+7oe>$~d_DhukXTq~f1sWIrj`4BbF`|qJ#24U! z+-%wh#U%jO1uVZ313Dd~VcMnIY=C}zeSM+X0DIXgP21;$17&17AVf5~Zzjb5_W^wo zx_Wz!9x%C|%A39hjhCU`ljfVSu|UG__+3$+t*)*vWKTFWPo6v((OGfwoyk!mEm#-_ zFaa&m0KW}iK=oQ}zFYg^q!kA-9RW#xk2TX8S%yG*~e>MRkQaT#A}Tl`DML-n0Iz|U{(u4 z5QJm+_&LGP-QD1LQnOZe=Eu|usTr7Kh+-foE-EYp_8k3TXCHX+tL&Y{+UusYL?(PD zS6wkSsIjEM!U>u^UXsE(HVtJeNjXHrlxWqcWXp7_$bk*lW*Di1!#04%-Kh`73mRAO z@fTba2xBrcrvcg>d$E$lhs6Q4WVbfCeF$HwXi*-#Do_9Za>$Sd<7PItLdYpaT*+`w z#Ghy7oPI?wXZid0Z$Iwax?kdw3}3tnLy&8wx}^#9q3+PI1n=xx-68RZ@9f6%)iQ5D z`~m_4Y|kj|Dz8*vn~}y+TadGba6}|&N^#`Ah)Hs#wm>sJ)YcT_mky~i>_M!T&xLMY zrPpK=NuG-ud3|@AG7g`=mc(7*+FgEzBRBbUC2HJ$8Rq#4Umk~z*EPca%{vCeS$n>< zbu=Rfd=Vh+oZcm%Fs=a-C^$G6k{vcWOkRa0WoKEv?ty|7g>|OXwA;i!)D?kX842S4{aOcfyJ2EhVnUSEy8T17!RzBgeS`&aY5)5 z1`}DZ*GF4nL5DM$+W+d{t5TbS?>U#gZbAu?UwMR;fmANM zLq_=2=G}rD*~+R6em)U`_2x{}K$8pi+rw#fpPK|k9G@}zL=l!bYob& zxIsb$wnr8IuU{MIq9|=6V<11az?Z!fRDzBod7^`drvB!(oyB^gKhm%r(1+m6x{?U=t;muI=}C zdGs8LRg*TBmS?bWz{SPIbr`<2nBCU`$aN5AC(6+-PW|g#HaHM0vW4xmL5>4U%Z}#| z8odk-*s^=~8r`M<9zoxZ&$vNTboD(x6<<-{?S;QJoJT#;m3x2qCnG7#-H`}XhXQE{ zk_4)VypYro4_ji5rKahbn`184R~FKZnra5vOmZi(Edbf?jEgv zW%T}3R|2Icp*C3MR>3W}T`C`mku(|~^2U%-8dyCbnBXlvXz>zA`>uaKVH}X78Vv&i zs8N!KN(K^Ic3*Nkf%1l2;o#u#*45X1SUZ|8L6)gBvH&Nv zNIWoj1PO1E6S|Jor@8jifISEOg8<@Ha4FF zL_{lp6k!?}&#mIuOrsFT3*Xggn4LBPH~>c+9?N%_*?|h~dvEVO=i){JpvDYVEE-r$ z;b5R298eBGXah~|uv&T89nqL5;;cPm@L|_qa1bh6u5YtWid^{QVk~-hRPV)oeeOt1 zoJ8J(d$p00HsdPd9B;P8;FdZ;0w_zWs;UC5fTTd&w?IUL?~yYKh2K80eTYYL z1Ay5&6v1$WV$qW{f;c(BAYpd{9P$4Bd!S$h>Q^}FKYv~ddH!dvmN!s%MX3 z48BgmXt*Oa^SV()icU-U!}v?arm!=UDr~?z2$?>#f+AsbcD5Cwt>P>__M(|am?Rzq zOV9-Gz#c!Ss#iVsppaEf%{A^?Q+mv`HCc5DG{)Zc+0fk;3M=!)l;*t<(9lGzD&R zz?lI;o-Nbkh7bSMT9rd%-Zz^8i$EcOEb{do&&tMP2o5V)Oa(wf=oG0&#Kf4?J7>YG z#o-?LOeW^!Gmb>Ij5SY!xNPaio1o?ZRB3nay5O^eqa;4-l391hxwJ2B4!Q|lIHHd! z!trG=SkDFmd5?L*cbn{nv2dWX*!rU?CyL9zQ?hD^&faLcMfZ=az^}7&udm%vn>d`p zK)Myi8iUM>zf7CS1$1b7>Tdtn_8MnpXV-XrTWf6m$Hc^6sF5@BK0*mMk$;Z_L5iIR z^%1%bo~ka)%ruG@tH&m#q49>g8@eJ-ueE~^1`u4y>FMYk3_}5@!)<^y zd&J2P{iS%F0bfGoD0^uN$Q`H_VYk!M(+s!dzc9`$4L}}_JH*=*S|o6a)F42f+{VJf z5}C~!N)uQHO|m{%u-q0GPrs9fF2{k~0b&OTwVje#Xj3qU8iM}<%-RFcFB0$V>+iRR zW8msqZ9N4uxqo3)I>FR_Ctlu;+D{Dp96^a=V-53JZcm?by!Z>iD^%dw#+SV3gj9y2 zxSYiAYd;ifLI{PR2SJM#C}k9a?vCH(w<#-8hs z%swhUomS$B%roj6PLX&PDe>nX7vi?~<}+vS3i*5YhA@51BnVV_uJ5{}a@xKnB~-fev-)9;1JOw?j`f4Kb~- z7fjM}0pydq{O&y0LPJaYrW(7#G_#!UI9RDr`Eout74;$@H7L0Pd>gWA{y>9)DJ55`0d3vwu zaVnp$YSA^GDWvyd2P=1ABY(8TlC2bW9F(6o$M>oitf^hMWS<4S8@s$8*Y~^u?19AQ zAtf4W|04FA%0os9;cqTd@3vK){BXV0at+g{tcwaGAfmn&Wpn)#HC8`sZhWfHwippN zDt=+X%uSR7Uz@^=L~l-umqJfVOfQ;V{Oe2w1YXVouG9>u{`3IfK=*H;qRZ&5{w+6J z354TRb@xmK2#uzvryaI<`cs2UOyP8@u)0z?NwoB5HQM9X)z>o$+r~8#tTM?@o$SA3 zR1EIF6G^_>U;&G6fhvIyfCxy+W1EA|Z)kOMiM7`8oU#1J@(mehk4XJf6`HM4R-tmc z{gW9#fdn%D9H?mFKj2mBaruOlm#_(zI-W z7qk-EU&8}g=U$BnDvO@wH5t60s&Bq(zoDqGqeZD4hkOZ5-4)|2G4$oWYa>dBevZW1 z`5g3ZK2wZ!e# zHg@y>-sG_jwSk?!E70;V>e0`aeBZn$P28hxh3?ry>|{O07B*`Das;t7)#(}Hj%<5ce zJ%7WN> z7(wA-QwXw?M`V%4PtBs0k#p@;^L4EX0gHK2Y= zTZMXGk6uUE_ILV`Wyj_jr)vf5KQ!1M(J#FX@*gcNEhv673SlkO%EChK>4s$~l*^dW zjJr`{H=zCf{&xQ_%T+TfI=Va1PJwf|edseJGXX+5SZcEc@C0m62C+EOaR=Wuv~bgn zW}XrlG(P@(@2drHb;}8| zCJgobgPK6^#r_HPCd{8mX=U*){ch`W!W3>am=~a3wtgQcxWrc;L=zL4Q2s(G32gR1SwbIvVy*>V@ix`A=ceOr-^qXHDl9Jy9!E!DQ+MVz zD26ByCyGU=Fk?J-R#(Ji7NE}CAB^6>QI2Ch_UZJ$>{+bURowbtEx_AJNyFwH8W)UP zxE6Mwr?w}hcu{juFu^mp?h!?*fYZau!)nFzX#>b{VA}$JeiuNzgLeCBswqIUB5^7- zKMyicgbZmI42$@m{pkg-0F3=2%T>vpRUwkueRt&qP$bs@rw)}fq61B&6VnyZB&bt# zgBLWPgaj=Dt?2{m*|Lw+EyfmlVR5P9uGo@*Wx$8Y@Q` zAh;k*JA%(d#;DGHd{|5ilS&MUOKu5sgd<+UrX( z!#C#i|2Mmw?67m`{k7O!k^3)ZBF2h0Sp+JWnxROiMD|d37GSLRkdIe>hVtwwFb) z!U@Vbs8I~inytW-)zk)Jn61+mgq9R|wTuG1P4*biG6N3(|!{-TC%Q zcsPoF`o`hE(1yATs^T?BBaJVd4UM4D0Z>#= z5lR7(rwbi`W($jpGxful2_Oy(SfNG9XjlLx9YlPvD`K0!^Ru!;pV-9$mO3 zZIm~%uZ;YB{U$#~OZQYkIUR-zc1#m;^H6cSoPwxo8We2{bTU4$hifMHF zu#Cl21#a)nd(}Rb-&oWONwG)6NSB~p4EjLk2-yrQxVnwsCkcpkrlqM@fkPL8L_O?=i6prCP@qB`?KoES%8FasRk*_cWna)u zvgtah;m;E~5y71V$%1`Ms_gs`_g`~dMW%#git`!L&)0M(2Wqfm1a+_?B3$p-_9$S= zxa1iom=Pfyx$qtIz3pbNBao73n?1x4FE)9tWQY=cn6N$y-sEg%=()HZ@A}7Fsm+QA zma&3fqllkGF^&rNUcYOw_^m^*j~whR{tI4TLsL>L-9${5-I0`QJ57y^Xk*19rXOA? z2^j$fS<-?B3v+k%Naf(-?*m!kaD5Y+G$4kFY1P6HOqUB`0MsvdafkYdWbT2#h}zDJr(CkI9acISoIJY;lvz8eU7Bi#Xy zwz_*Gl91B7Wu)?MdoK;93!TJqfhq2<68cbs@Mx*JSFP#M z*!I^IV1Ob95S*FPx+FwFD!RzE0cI3NJW4eAdpXYgQe|UbO3$Bu#*<{}Ss7fAeCU-7|yrifVYv zYwzRwq>v;!LCf$DAB0rs`vx$r4g{}GYU@SpDO<{gLl+vzMJ{=07l4EmoaYg0A0<`_ zHG!6dVK1k-mPW|K{Re=ZYn*3)2umA$OH53RdK--9OQ_`f(DNyaT{vytrA;`98#iu1 z3BJk+5Co19sLYLIWMo{#C^!+&O*lh4);axH`Soi^$9gcWQ*B&rT^C?2OvxL*H-Elq z0E*;2V~$qEKUP1Wwub;C^khzwgd}#oRC)07nR!{j#S&gs+x5Sr3*W=Tc@U)d*CG_s zI52lEnfM5B78mcHS0|Iax`K(YwE8$nc*AFs@bd3J1!hhKqZKO_enbkEO!}xY_<=Q* z<{03So_N|=5$A`z?U`}@-F;y2lWS%88UABGJ_WBuXL(kB&(T@TT76P5X&KeV@P>wn z9`AQZ5wPNV^;}}=Yq047#Sg4b5 zuhN%{Z8rRl6WG z3KjjY5bbSX_y*JlOh_Z~;n*<<+kP3a6#;&g23@P5WilX951fKQN3gM*n^}>%d$$#I z1GfuOXl|-yxc^>|JwaPkr0|*UY;XV5ru_h>6ENI(R|vE<8KI%_0yTKDaeiOiF|B{#-`mYmjwQFO=?)`py3?J$} zK(6&`b0o5n7&S_K1E7qo0J$TGfDmYLH>5G;WZCQ#Zyz7DM?a9;83A8iI!(znPuBk& z92kRr3YsmL!8+Rr#I*CbX3HT1t50F_5C7b&xYv#FwG2 zdD!YxTb)$Btwh{PgbWM?K1Sbu1Gc;~O2YK01%1-x8m(dc;sF#=%S%fuNsz4WDJqt}(d?&!@S^alc0A8DukRX-1)3X;9r=)j z_ECaCgqc<&WUK|mt8mWh`@$D{fLx%n((19D!Zi(*7UV=m@l01oMY~$vkL^+y&p|>7 zE?1Mn8v6PZ5Zr;oH<@`QPg)>33i5e4robP#0dFbk8d?}0J9OjH+woOKs#K1jv?woD zc<##?t!P^MZcR7Z5?RfUot1tc9I75t*?h2W!^D+e>*^^~h$QY;z^tCT#c!stlxg{b zSg6P3thW-c+WFVVl@%MuQ5P8a4a%V0`zlM*s>*c4i4L((pFV|=)IDeTO3*@7RZFlk z&1q=i^WbO6JwAn=%}cn6D%h3bPz0&qqX{-6d* zozZ;E^l!*Q{KESOz;{|(S)~tnL%4-vcgda#!a9Y9#t8WP!HolidL(WUClxxb`)6Cx zrFP4BOZxZLx8FPqQCIT|8*fyr8JFaj1+9?#)Lj%Y+T#lA-y!|izD8+O>xzw#EkKkM zqjwpsZkM6ijCI=z^KbpP*D$6Wd`voZlLApd5DM@KTN~BXtO1h*G5J?rKrArzq zN$G|WL_)d*Nogsin}2`z-hbAbnKesBzc}wcdq1^_K3m7&yVHHlLDwA&pBVKTPcER5 zrCY{M!^gs?HxkymTG~07-C5zxS4&mL#4!!$ks82s$FnuaUJ!lr@9{mNTQ^(n*@@`h zc6_J4+Yt0|Se`_3s+u3Bl47IRM2?~9{?D#suwkjoaf@{|D*)88*X;r71^^tpAMI{( znfX6C74iC;X`Zm|r;K$gZQ6JGv`PT+B@QwF&9Q{*Mr$9B{ARu_?^_Pwy-GW{gIo{IK zTvd&}d9A(1(NEG1?~W1EAf<9hy#iUZEIJ)wDG$lG5uYZ@vuyd0bOonc=c&rGYU+t= zkFUO8lvt@6HHwC{;h4VF$O(w_zspQ&&Z==8EY5FlNTRwk^WQ^n*k)#17mOEuo;N--BT>%x)9V`G8kC2c#Gn<-gd)y12w(CC=pz43s>HD4jlNLR<+gF{tl{ zv%g4+WPpbnV40Xaj}dqPK;lB8gzDUTIClrvmzS%}zTMEuF&7f51@#4LEVZn{|MDQ^ z{UMBOwV>Ju&WN4(g(!+MFa|W2hp-QA{%W#u=a}_#HNpHq^5okD^mjyxbR_GVq$H$- zXt_AL80$2)ns{iRT3pc{$=kestrlcRsZ7jm_MsI&WzAd5 zN(B$0)}2+qrtTlflR07{ZvFh$>5MpQFRlg5P~2qIvD*Ruosoq4ouHWogK(L@++Oxg8!G`BsHfC#+ z&+Tu3Ty?Uq?+^e8?F1cmDI}{5@PXDE zwG12VEK^31lc!g07jIjKJ)nvp#ipmD$!@dY6ap$(&!8AsM)13rxMm25-bzg&!k93| z0uBZow(uQ=KSg;oK}6Q%apAE=>D-PP@HI31GJIPA5|Hq&UuXMC^=Tz%;UDj0Ag%0J z@k@`>siitkBg;4%3|Il%}j-FX`S;C%Bq?GJ&{)2mB2cCa2 zO&6-|g8GwSS#L7=@odeORLyhqBRLi}uM-+2m57A*@4v%g8O*`L4&-U*O@U%EgzF1y zts!5SdsJx9QeVe_0dLFj&1q1L-IyK731MSh_-+v-j{$T8+2R=k^x%OeP!j4vh0Ox& zsq1$M((Ou@MLAkp+Dh!~<`;H7N36Z?p11bYc2j(O@X{6F70B`e_-VY>$)w_eij_MpKZ2G{2dFmeYpZb~LX=E@5B zk^deb0g4f^EKE$`A6U_HgFv!IunMKDwmcLSL2Q@`zn!0&Rv0H+c3eb6vOC z5eUd_NUH%dyE<0RMF9zLNG}-K-r5oe1unRA-~cJ6S(uZ1iw8Ydvza}Wp5W5Ozetfz zr6!W%Vc}It{ZG?jh@#+y(=t2ua*i4VphZ$`yWRZ*x0TLiP5h3SJ6ih5DP3k z4wN@;;OtK!Ab+HhR*pW8GZ-o&np5Q|CsPK!O+oC(aOeKsI5setq=4nbajL2i$i%$6 z7!x|5pA^DXwgc&nP#G*-@3B4P=>!h=7f6{0Ns09ckhzy}6jEl&-;N2fYGXK`q*TbUs zbLj2i@m?D(jP+Fmk<-$|T-|i>SnID^iLUMiS*EU-4tX$#K*DbH>3+Kd(53h@v2;$|NzD?-qs-x(i=POp0pTXr&)5iUZ*2;SI=!nCWp+7{a z1CJ0Zr2C)C?%|e>iaEHO%UWBnh$pBs2Qx+7-1D-OU-(UfS_F10oI)b8e2m3YW44vW z#Y$+DLBq4`Chcq*{sqW{B>c^>d$3_|14MbKRcvM*!6>@?aq@~D2Es}o_kO&BbFR_T z39csq_u&zthPSV*9R4)Z%N_^6%Uw!iSyY27y{=A}VR+*JTo>TXU`=iet(rVUkWHmD z@^e5IXhD_>Ob%pj47U^-I+JsKBA}u)uD$#=KmUuZu%b&LN+h~?Nr$XnBU5FNi@V#R z%1>2ci7B>?0(a8&C|8%OOplWM1&6^>hx}dFVYgxG7S9JPE;`CQpPo~Re2SSw4=EhJ zWbFPR{vn3T(c}M@Syd~PB;vQ7-N{MJ~%mIXq8G&(%=d0iDLtm8!-FO`z6E_ zYl#^dnWkhC*BdI5yr6mTBFy7u6{_Qc`9V=G5sop4fM;6$=QcIqm;fJ)@;BvVXUCbq znc|0fethiJW8^R#>>YcrM^XCU@T_J;O>YG!jx+#<&@YY_1qZvjx}u|_LyD)ZJI<|-Ke0v%o7Gl!25Rxh!+j=4L&)@%(a@rk}qS<JsJS?kC-My{H@{^M$qS-WxTawtLw?8L-t~abjXYi4^rJgdn?io@5rOF2BqWO? zPTt!rdtr;c(uDyDh@oR`?E`esr*&qN3{G&|fb$ z(kbund+X_mx+pAp6Ipb=V9@=}QqlE@0kUBzW=@==<-6agi6n1!5i&=y6AmSh*z&K+ z3OIPR=x>D4&#{(?En=<430pHHGWS!Mzu52+bTZayoM?YD>%CDJLA}9gpedFS%hSmu z*CXA*u*i^KCN!<0I=<=_YzIKuTLt#{XSZ0~4CQ3_4pyP~pmI7mIFt;I;nf?KKMQmX z){w)$FUqVVu{ZVg>sRRIqmq+ttHd8X@PSg@-QE2bHb$sxT3T2rC-I;}D0z+9IXRFK ze=`5ywMrqI`yZJjJR05z;`ECQbazt%^#J{A-<_niG;x4aL4;|+x0tXB*ejPdFG~T_QSeHVa2ybT{or2HF=U?MK-tY=gYm?vm-$WXvDQ1Q!Bf24X zm=DYqptTr@fx3dy7>vq{E~E}o@;u-WiQ}ywB4dEvI8&f;~)lC2M=G)DQSGamZGsQ+=Cu8;d+do-iMOrx>gxTw29SNo6K{a)KRL5#F1Bf~%F zg`Ed~KaHMge8tzf+v4KPmCDcJsy|RC$wz(RxQx4+UQan|*Y|lUP3+aW;(DB>&c${9 zya)Gwoornc*lfkAhjH9jP7@`)U~rbS>AxK}S-%8;4pduhs~aCliHKZxmlQ^>RS)9D z-%fSQ5$cF9%7!K$k`8~Yww0HcgHO((1y&2jnE&nwK?S{5)xrz}0(h3#wzunM{p#5T z{3Byd{_v}Sto5u$fejZ7-K^J-NQ0TtB!~FD^FM>M9TiV_^Clo6QL6csi`YhWQ6d({ z2i^x?U%z&`OQ|W^CHt15NNc!h&UsTWW|BdLDzQYnC{DAW>ksB33rA5nUnjdR*+)S( z878H7J6cic=V3-Q=lwaR;ZV?<(ma$@KDs^~cgH#IlI#?Pby4S1uz zfX;+vde4(o)%#Y#FQ5d2fW7!cUO?jnaF{(?G!zHiJrEmSzYh0v`g$pp=Td{(QivVz zDNB%EUHg})m+Iz_o`7;6(1;0U?7~L~zm23Z9pa2J^-&i%HK>?m;2naBxxQ}uT`eS{ zH=UQGXW${H^Hd+Sjt7aGYtX<0QT=Keafm+#;c& ze?RWuV2Y( z_yuGMu>B>7N=8WhhNMx3T;Dco4<7KdDfbLpz{&bi5Ds&{JBt`1`A;(i;@w+;W?oxc z1A>gq>*ny|PoLy_b(u#C$wi&@j_chhUuu16-WdL3NCDtYkRaVNkg!5`tw4AcntCwCSZ+oR7$Wl%g#ObAKb0SO=~oq^=C@vPo`L`Naq({P3^7l zaBWzSV!R_Hir=~4k+JK#@vGLXBqdknsPbjh>A789RzXc6to}VIfB zQfz-+Te8oAS!c_emAxwpN^$S1+FDQgu{)Uox8yw4|MW!3Dd@)gw?IBS$oCHa{nJ1R zZ0+F&d`GYVKXv_wJOB!|cQe>~>6bV@~SFFd*WUFj;*A79P?O z{IZ(fyr5eg6Fs#IV&!nYEIhjw< zw7NY{;!DjII%?Yu%SR&LF4vR@6|{k&EFZGX=_qM9YWw@)2YFHZ<#~(BEthr)tTiFz=w4rFZ6q zPlDGnQe;uur|EJtxypWm|E^j|4+XhJY}v;z$92kA4W^SKE2>8Y@F;Kn{F1}-`Q|fn zoSa_;70RljvQ+*~6w3{q5ftsVwl+|0 z6nt~0M+>lzWm<1OnuRj*(YF7lbg5l=$dF~ug#frMKx{zCYxXvGg6;-t89Xbx+_kq* zVnAgA7AFZ2k;xX?rG+f&hYi0!v1wn}#l^5arh8#r8DRJeUxu!qNs6dGHE~sv_ft1#@s69StBnR@x8GydvLrBKQZ#IwoDEo9d0StNtnPjfTl5o&`qViXvepxX$G~SukitPP9x-03 zR=%^ZKBul@`l_~GM>!JDtj4>$XzwA(bieYlNS}Co-S`Ta|5V5wv>6hm1 zHMr1zS^SmrZEySrhVNbS;mqjdWed_(E)G-oWH-m-VN6w7YC#qzah~)NvvG*d4Hs1k z&VQ35MKMF@(vK3=9Q@H{P*hdD1Jf8hG~qXv_Bd?Ka)J!CoOR^5g$gY6YpRZ*@kFT` zQ0oJ(uA?Ehlc(5Fd=_Bi)r}}+GaPeRBVaUR=3#4j-&0*Of$KAzJy6Yyp+chE*VIAR zp+Whe6)hm!)WE)7#M8|UC`QO!`3c&ytp+SM!lCFKHls!(r^(%~2_;8vu60Cex-h)- zgpDcUX+%nYuZtQet2b~P@y^^?Vi%6>eHB)17suCl)bpr)!(I8}k0pzO&o{fG;rjb9 zA^{4Tw^2o2(1{$rqYjthv7QEHFo!LZP}c#24SM$u|IP!wj{#NlU%B!Ks3|oXXM-~5>pDI)4c5~=BpSb^ z@LPE$wKq--jjZ-SnvQqb|E2y=yn(jyIL&lD7|WYJX~gnb9ld*BWMtp2O^^G0!jr&p zroxW?H&lh!6Sp$U>BEhGDCb9*)Vnf+0J3TcWmpEWG0d1b=4dzGcw4S4Eumsf(uACh zVYeD#?x#-}SXe1mp8t*EAdw1Z?&=PO5SZW%o`%Y0c$+Zl=T>>?IbwuLs;c%wI{WI6 ze08cuo*VGV};;t($<0D3|mp23lkkx1*vh~D#O9#tkKxM(9e*^X8* z-u?qLS{ov~Ts)l^L^tV;I^4EY%$QsoUJCHv73Xfm1?A)|i*|p91KxMv;<)FZ$CZH_ zd4=}FOlS`SOj5G%w5>4}@QpowrSR((YFdKJ_OOUe(o~9~ImwpzA#dmK$OwEf@k5P; z;9>HFhO1{_N}B;~Q~u0m6_`u-^g(;&RE-HVG|BDT#iiUB$oz5DM%Kl@@3g=Pl|QL~ z`vMNAyPMl$D(>rmclbBPz?BWsuo|~j)e$4`Fv0!%l@vZD?u>*Um@I{bg(0*PKIMM< zs65Lu!f;~!{o z{^E4?*LK9I#Msw*?(!2h0W*U>olN6jA}wOL`;+WGaxfX zU=xA!TxOdLS{w-QlBRz4m6!%`R?ZXZ0gMi%Rn|O#^9n)PAA;k~_^5)YM28iE z-u8~Lb0+J?HRRbFpYdhQT^aDU1B3kT{d-s!F*$1=H7xXNr^;trdX?7K1)^OuN_fBagzNb&W^zoL@9 z2(Hf$p+~hPs7v3M?XXN{n)z)>CMNO}Y=_i9JT@0yS7(Jz3rA5nhF1_ECTRRq?tz3k z2rjhWXf!0r&}`ggVR8(9a2xB+St$kr)H??9dsl-*Ks zGHySqEL4=wEi(KCqL7rP3dUR80ea8hC1{@pc5X7KbnHEc(dLI?37#L4C z2`H4^?RRtKpj+{$`^hOdyGC=`bT!(dJuN)qrXVRwPM%|-@L4P09TZ*-9*1{CtA!K?MXI%?;!{4k6T{T4X zi%*%Nyvh)qs;rb9@)mEyS-wRca;x(mr>D~f?M#%=(RA%+u|;(A)NV(jucTbE z3O|RlA0?Mp-t)W6{ck0rde#5QUURqh>3+%JrDa*ei!SkgFk-61vFvJ7>Y=5YSx04m++z)~NV_@5^e1)=4x3x*aYQwgA zn~$7eIR?HK(hV}**N0)sHL7_|X?*fJ`#S|S+*qj1bX6z^5F7)Y3fgD=7>ID44;E&^ z({ey}!EnIL$L9(`z0hiT6#v*d-lVK_JUubNNpfKnl~c2k#{Hfqrf*f-7@xg6ThBj| z{C0o8^zoAHbksGY$A(KOk8p%_zlPU3SvyVoO{7#F02Dko*XnF{sl*J zM4aHr$&C-^ zp|29cx?eR1JdEKDfgvfDf~_o|_^I37yT6VhM&U=2>BJ3m60WyHVSxfdM4d?>^?^e3 zze~#5Lm5oDh)A$u)I{B$trD8G zct{NkUR>)kfyWxsDI{e<6n1=hw)3mnKL5E;Ly}7dCX)E6Sc-~}@C$?^0DSXny_kql zfhcIRY3_4ht5cK5N!x!G3^7Tv^(960bX~HYbscfoALY@_OX5iOID)<7IWFV_v?VEK z;&J|Txar5yuIF}z3zJ)_GBM?^x9T~KJ=urb;34c!3sP4L`1+d1dx-aG-j5#oL1>uQ zH#Y3Og(ah3f=&$-uS?t85-_L0Y>i@u@9QuFD%&epx#au}ly*ZN8~ptIV;R*1=fbN~ za>c>+IGO6)U66m|0MJ8*&u&O!BDrHGqK*!pKu8lihQVSwu|d1+4E(M_ol zZoMe#2!F0`YjqP%imUJ;f2pket-CLq_V4fc-X$PlNFX;IxKO)MDwROt!lD$8k=*@S zAs~#G;X;=h97>tBUic9ZDM_mN2<=8lX&s09Yn<1aG-DhOtt~AJll9`iG;2^ESQ;~B zy)*kygdD^4^85r|3WP0@V@M@fjx03O;aKq5;!oT|NW?mS0`sr~vTzV0`TP4jOdC23 z#=XOjASJPEzQK#vZLN`TWHmlTbQ0FmaA>n~--_;#XNs0*(eH}5`n_k5&-72?{e6BsN!!Z9ac?agLD-XuDn zq6OsQTA$Dyle<-0A>CKY90&v70|=e zQ)o+>4&!=c`zcTC5DqPpX_Mqj0-V+QLi>AS4dCD8KHMp3Ua-qL!~dpK?@ejmlS6Z0 zHf}s-Rpxw*by?o}%W-(ol#MfUWIUakVM;nt(V+_Y~5_Nl`OFs0CA zVCAOlVseg&mk94lPVaW47u&(RLuA{>1}kQHz;wUg_Fw({MG8Z<3Vq3Wn}`WSo;-iP z2@W;X)=F?C^LECuHM2W>M~}cIAs;DB$=lH$%$X201K>D(^!pg30RfG#DG169Ul`O- z_B1dL-lIWR?+E|>*v?{l^X3s0Ah6W6LI#F6=YV!qH5O8ymU}-x&*>Md0ScUe(hK+! zRNqNY-oK+yEu2VcWevgZ&#wODA+evZA9vdWKz!T9s)pmr|IwA;W^uV+KhPU+c zN5Ia?;5ANi{@@oy>Zz2Nr;D~1otEdZ(Z zTXCZ`3^Hp7U(=y9^B|7Rd(Xte(hrMdK_Hd){+e(KVMQ}g^ zxOxh)eafC-zy-9)z$+aO`Sxf%4p0}sZQ7or`TJji_>s`6CBS^|@Nj#swKcaHh4un- zsWFa?wDE!g(ic`7^YZe7s`b$5&3$ndkUpz!y|X?eXt?9S5)>@F$}nI=lCqAeAC<(! zD@FZyMVY13$nR3Xx}rn=Woo7b&%E+Uys&lnhHxTYmQJz2ANEn*TSQuQ_0#e?FCjGx z!oO6`7I2E+XuH-j6a9Cm`WmYtj4j|huB<}UM9A{y z>^Vh{B(renr?ybvq=;Kyir*KgYXD@?_5CzB`$_Nt`7g`M%L@kJZ^N@d5bAsU3x^bx z6P`Y%!jW|>Jc?UXRNi3SL(R^|#CMV%UhUhsPTWaM5p1oq)j}T_RZ{+4!HJtH|LjN9 z%~XomV16lUy{99&dkwHOlu($_?0Bun)h z1h>TFni|q&HxfK=Er($otf2O1V>p=wfM&>!QaAC<|2sT{P~8;(NI{aBm5|J1`Z_=V zZs*^55>)pAGI6C>sP$gi#dt^n;j&c^h1>t2NnP;tcSh1cTQUh^q9r#HtN#MtsB=B) zKY{q|3~-xLZk1@|_e0A7Kf!>r)_qMf#L9b7rv_z6fR7KbFj~RqNxlNl0c=3rJk)Jv2M`#f}m5($lN_{~bl+X*6QPG;?E&U(;&eT4eB zTbYqD2L~5EEK@4UtN)LES3(z*z@giJS&e}>Gfm-3LeBu>$#|JbMpBZ^oZ3H58OHBV zt|u8*>!^5!MAPjN9Xz;vDr@!T-D=;qs7upA?^cgnUZO(VbN7k%+$j_-G^e8{?NZg_98i8!{x&IQ_!dRXsPNg2!&aIJt@%F>o9-EHH(}l zp)d#O`yarr8*Lw5TqnBm8uEN}X}lFeJM$onCj>cfN>Q zdn!;AUsJ`wrOFWFwwM2AV_unsp%c^7^S@S|SGu55^o_I!kvo%=|nBVUh{BJTo z_^`Q-Lf{sl`(dZqr5Omrz8Y;oyC$^Sx@xe8CPoAf|g{#0{hnfa^k6IlB3U z{XCICAv>*cTm0<2HO;uO{@mWE#Ke=v;fP@6W$b>D z*Q%v&U8MZ>)#PHl{#J;M-!_0t`ZeFdbqfoFIZ84 z()xqC0*_iy`7E_!p3A6*N`xibqZv2DhbT6Qi7;AOB$Z#4$UM6XL@~ikEEK!uIOr}4 zg-MmUl7xRA8VMe)K6YI+Y)!~L@st|u&ZU^mer8B!*}s(g-*%gf6GFdu&{p_Gi4 z4ATi7T?0w|DKvB-gyQyg7rc%2VE$8hMRig{I7hMprW6m=-^B{-fY;?DGT|X1lkhYH zel7;CN;uL0O=nf3k!Kor{vqg5iV!rJ^-8*lFsFKi8bBdONvk0E=?7$k`<(20oX3HL zuX3eRr|gA?*|R63CAT|;V`qd%h_5rr%f9Yn>cnISOs#8VcxYteiyoc0)~@o{(NQ_} zRHi0w94nP@QItW7K_lv0JNEEEYH#^U0i4>GFJF>+%pjr2*EK=!?8&t`-=i6j|L6+-=rSe3%lr6*OmDSmjS3v|;PkzjuaBo{zfunusQ+`Hs;9uVdNv@%Zh^rTJ*I~0mzWAqwHwg_DWDz}ubp1O5`+a54o zS-nCWL-h0;WDJ&X_WM^@SSB&VB2d;+U!xPVv#u-tq<5b0?ZCu0Pwz#=Z;JUQTV~pLX~FQ+ zWt|65h}I!*ha4>W=30r=o|y0pxn5oR7Hi?Ds+`Gvnz|Vg5dq(bEnJ6iB0oQnR8&)& zkl_8=OpM&lPWYLh+!b# z6QQZ>i)t7ygUYcAWn~k~EF$lCwwLwSf1_n)VsT;kkMdeyMH|Ip53D#OjIP*Z;y?d< zAtasOo7?4o8J~9^m+m-*2DKQ)fYOiSWZKY&J2Ki!2Uc*tfB(Ly@@@F>>8Z#1@VD6m zbXHNh*ulz*3eft&zSjddpb#W(tKzTWG_Ve^}pBfyUfzc1JlXKafE2!Y3j@UCCPs_%-Ufw zKWA7SK!inX{QbFmK1)GwJ3D~zN?BRsK?82SsNbTDT=E}KEY1+;H8NZ(^#;pS5I%T; zBx87xfK#fpgbgS_EjU#_K-WW_JwBPXgVEeDP5_M+9o%O+$$Xa2C2rR~Ljvw!-@N7>HZu zgaH9KYTl{s#l;awTr(>ql3e(=yXy^KMOY&l2stAm6A`?Lva%iU=K1f>=bMek71I)s3aVG}SC})w%zX8Q%m)v^(=sPo1nRgU~3g zQn+YNle+eHd74Y0%R<}2do}kvTTk3E(Aoq50|}PZFoY$(aF$<)rVW)s!9o>mr4nRQ z-YE640{3wzwbO%xQ7tPan1gxP*c4RqBdz73HrqXJ0>B&QJJb~dt^a8cM_F)o#V9FY z*3?eEfg915^#GF#(nb<;B9c;T|Fd)jRJ<#o@ZN&9EUn*et>N~=^r@VQF_u2A=QBy4 z2ABYQWx?yCh;G9O?5&`WX%BrV{|!TmfeW^zXt87wn}_3S3SM|TSl+wo$u#Yj8oMj| z)~!^alqY$^0}DK3=ei16cM=n2%j1 z2-_|x%psZ1es-!jWom%P`>lqj`5C4A}^wX%G-UNg} znp#?@@ALbeq}W*V(*!02A?W~KPZypqkU@U>#B`Qk|6HF+prU8=sOWft-C>UZ7v`!V znV!#+{_Od+H}5r_-dR(T{;X*}%xuxdlk#_#p3-0P-1(Ep30l3)NC9k^?;+B+=#Nr1 z!gZ|@Rb<=m3(N(b?zs(!*IINF*<*mNHpVufeYmp>*y#3 zHVznPkMqHO_ovM(s$1TxX9S@S&eW))>8o)GNj+Og0^>HfIusKLTaM4uZQ(jNyomdn z+|soH{EisMquAgKcJ1NoIwq)%lsutXIsW*iX#6$LmsVHFiHT$Vli_~1hd9l*57gDa zZo)<{00p+dPy@X!1cGN7pHJc8*}OzheS3|KU0Zc`MKPyx_IU#;v%!A+!69q2@rOcF z1POXvHUWvvV#2~GS-Qu=6OJwMd~BVK@v$(<*Xxmdy^R+|iE5YWW(_m#2A&UVa$m7w z$fQ!5E1qUzUw4gY$f8UhHvdpy+GDCiSXyXsR%GFHWKSz%Qjr&^q?s0^K)?{Bdf^LP)rxKgb%=z?e&WkkRyGQ4A;J{!qj6PE{6KPc8Gcw{#SBWc!~SEPOS|b7H3Ma|dbi2mEFU&GwKl zyC80}BtRY^X)jo>hd0F4wWA}#ak?hHsHN+0DeOQia-#`rosrA9mqL77uB2gA!ua+P zk48um2mc7>Z-5J?Z>?(lUQczCS^7Tfd81#%oWbQ%=fiG7&-2+k)^h|w4DIzDN%Bm$ z67Mi|nfN$r>+FN%HG)QrY=+2L8|ufJf?H0J!Kl7#(oKxgo=p>Moi!|^QQfH+myGi# zcn%a5Z!Eab#L54$yppXPa$&?mSQWv_JPDc?xH}&n&%fDSzSo)J;CvSOVD-w(Zd6o! z{Q?AhpNL^RF#OTC&!7~J_s>00DPbj_9FN$&gW0UuubHp!X#%f-)m-2bHbF_sSG>q~ zymCy$-FyoFNqu3X)S-cl^-(^{p3GLX(i_o+)cV92x~@8(hh&08AJQ!PIBVzW8_Mr( zi$KX`y{7;d2xz;&<#YnFHF#?tfbRkb%6~7!3fnMzQt4>|4YLpzAUMllF@}&C*~gC| zGoZ)MK1xwGE?w1LLaAV8?Og2I*MZdjL4I*U1?BnFkW`C6po&D){`G8vG)YCxO*WkE?k^X!E@)Y+QSdED`3{m0B?C&IR}<{_$|5GXaUoG zAON_ZR;@t?2iA-{{t@09>DBY`| zHU5)}8xaS0Iv+GTmiULQ_CEbFh94Qh+o@nSebE}`XlbSYLS9lb05GHBzCc{_x(Wxa zR=*2KnljM;+1tATd=6@BHZFHlrjZL_8}o7{Q7w}Kr1}sLio-u28L%PFgo?QQUVrC7 z-V$?MMGy&SJAtI=UMtL|!HZM`$sdIgRYNMrYZ zZi;7*2H^C%at@#^;NV*TTBJAO9`5z)Ulz^#i*)%OM?|EGaC`T>ivJ#YRB{|w>YV-a zrP~kY-wfC3KW-34cLWp028S6YDBR_Xq-fZSk-zfCH7n+P03jfd!ysKkAo-=8^B%Rp z^PgY>E>d&vf`6jOed*5x0L+O7_uvfz3VR!>9?VuymE%7>CQCShpnX*6Sy2o!-$Y^F z3Jf?rz(2N)T6|tYd%yegE>_z&3rovpaOFW@+c*h~IPP-qUf{lk)dhk2bMzq}K3qYI z(F(r~y3wbs4D8*58BZoF?z_sy7ixVTFWqu%UpO&kNIbB*!W4<6BxjNfijSoU?Kw<4 z!oC?$hIqZM3zmGb*mOXL2Q^5(ChT%1g-$a}yO4D*%UlaNC~-K_ZLcw1I8*IspMHBz3bEtMI?bojVUE zw&xO!8+Z2x6jI&Hl$~N0by*b5(5+n^smQ1kut=+pQXX67@U!p+%F9KPf6tOwomUq0 zUZLlm+SQgmcPMhb38=dRh{vbyt+@sip_m6XDmm0k8zKY5?ZBqYt}_YRYtUQ$NOv5?@~=G)9zFdpDnuaP>Sl(YRvQISs#v0Sytpp_D_f zK>~^(*eSM-;(NiJ+CqEUO582}%EV!G^J^ltW2JI)77GkDm_(1bdYP8An!oc#H1+mO zmYVebtl$@~mry5TQ|ViKe-7%l;jW1!?^DBxYp(-BT9iaOfl^EJCU|G8@DCIE2& z0O`Ath-SdYEu*i}7+=%Xf7T5&XQXifs z1hk2qSt$7YxmKik9emzS;M7cF!e+)uxd+#j94wE2!cqdOHpUCJ9@nebF@^^jJPI(& zHvUz?`H|~-CO`vEG(ab47|Pij{ssOE5471Z&4Ggh0t9Fw!D^(+R?9nPxd};)Yly2o z-GGkKx-U@el#dzORQ5`7vYZGgl7JLlfLaZPlU!Ar@(>sKeLv~(X#(?&QM|MVC*u)a zc%2l9mS*95w^?wADlag-^WJV^8cmm^{#$e!ck*%ETRBrCwdxC5j)|fUsi3#T`$=qW zwq2V_KL1-eBle#E<)fzflVcE=WR9$Jij$!`^Zw5e=pqjW0+cir5E+#WiL^Uu*-G+% z(3uhQVnD$FOB9%44rQ>)xfb9sdUvuX?a8gTKoK15%$d|T-*}zrYjbnnJC4IJqSCp) z#L$vNEeSzxM+k_MbtaXS?LZB_O+$0Bo}cj)yk;RwkN5$9K9~}FL1pOGXwosMMQO;w zLX>D3opjUlX1~bwRN)UFCe)HBG-@^08g5?q_B9TqJ(4({qh-U%6vGoaGDz4%*D=(q z`R(CeC6Uqo1U@emtF|EN&Yy|Vw#PsXDz0rPGd|Cg!B!CCYBHgj(Z9e;6L+h}680o{ zSxODT@w*Q;YLw&)uqc@SVf1y$!3;qEdXF?97>GVphzV4l^Dr3BNe9Z&kW{Kw!-QqH z%LSpag~&&bhyL#qoANMD5C3dC{F0C0Pj(69uOIkD_{z`6rbc;hC0FLk``vV1j55}3 z6?bLTc9yL5bsbU(NWTKD%Z*xTBoYJn=44mOAn_*4E89c>R zkb(-#8<1^vmuPKVRi1iUUjJ|nKWgk|qw?b6n)qV6f7fUV8$RmL;p4FEpJ2NM><;=Q zPFP}~-o?!WNkJziIT=^6EnD~Yb^gxEAN?`g+bmmM$pA^YKD(s7rA(#LsB#tsH1o2%qxDf79o zs@*PlR^a|FkAgp~{Qo{Q-)&7Qiq&g2S>_ms;NXhfNWTJi3l*C1tsipO2x~WhMY~`l zfAqht>mB>3mF}J>iL(b;9_@oI7wrR=X?ZstgHwfRv#c^UdC&HengX@3-( zx(f~&86KNP@cRqd{w#PttK+^JimTP4k_3(j6X`ek(FK^EACz!;{Q#A6En9Pn8OhlWb?qi1SbJ1w=R zY;z!pFr#IvHb{CPa0&3a9iY1bV5r`C>;v*uL0CSKyBMG0=bhBb79fz$2mRSK!&t z^*^O&wpn)I_+S8gCB=<>5od{{STjcZ*-%&+MTmjM=!1~18lL>p$lzHZz(6>8pXRTD zA?o`7`~?+Py#_2;H2@cYh$D&5G8E`&UTxww`e*R%OJ2`EOu>*^12hEETt3h~gutXK z(7KEH^>oi^sa~dQwzhn)LgupG^ftzmDiBe`G7(|uvuvHc4*$aEbI>z2Gu!mEU&*kc zZsjenHWLf6b*jSa9~8u+F9&5i>YgPHbMb$b?a2Ph92nyIwBr6V=eqd!P->q4Na788 z%7MHOf>GAhvo>m3i4ivS0&?|8of5g5-G67fK5om)_8JmSA%F`}ibCvB>FIZU`u57A*_Zrq68!n9=+}t6}7;W;tOulZ;PT0+Gmm%4O-l>optUNqDuS{-SYtQbW zxSRZ9&0BZ1*_q9H+?;d!w=F^<=W??6iObVIoE4JUT{jg5<_PvnjAx7rKUs-u%JB5? zTuU>cZpUmisNlQYH=)!a^8*2$iPr+=*De}G_8$sgqT{=n;l(TInUMsnfn)}3o8Xs5 z6-TJ{qY7>){1ra=F|%WHG(_oZdtWQKk4MzVT~vU`5l}FSqNYLGv~A5(k;4E z{&@L@A0oXyOOwgdMd)84&HKw>r7eH{V*`EE4hgXHu#G|`5dHxZW&Gl;@GUeFkf<5M zO$_8D7zV1i(|>)rhK+EA^OBL0T6&O!21_LuE5e$8f*N?^oxXttzO39Heg0T@6_%@5 zc|MYpql)JYy@3``si3S35#@r7y|DKKaQ69tVue4iwJ{JR003Ga2t~gH$OCqep`uV) z?mqnYSaD}|g8F{_-*4}Jt?Tz>=O|8*$;qZF^#rRye#33y)X~pdLFMK9i+43y)I#Xp z1`t=`Z<10Jm(-!te=A-SDO^3XdZHLwz3vVj*JGz+hGn)3s^3i?kfurB&e z4Al9FyGrdxb;Ld)x zXem<=>Q<_1`#qfFW8nt|;aE!Z*PJ1#_;=(__V<3B&=#%9I z#dta9;{*X;H7U}9VdD>lc}40g`|lSNh-=}8am7Tg8AzQ2(DLN$jQZvtY|H(Nflmip z_P$ucuNh$ofClApUS!QEEvTET;9vv259svq@$t`pmD|(3$wzY(t)k?eDj_(n(Tqfl z`b^oMKBcB#a1ErB=d*DTYRp&FZHeu;u_$GmauDB9C~^GW5YHNp3qwmd^fCHsoDUvs zq-9MMKWv9)19n~?c8R#P;)l;=$^J)_BUs@o`hm08W&@4F99retsv`jUQSmNxIPdVh zk7LmS4DDK*APE{Id-UevZv7&l;qZf84?{yk2rB^fZ^I5U&h+BH=k5riE@zO}8>Iur z6#yRrD4vD^7XHkwy0_X^4VPg9JC4Waj%CKARw_lOPb_P<#mkKAQ*29%{npBZL)8Sf zhbLtUIT9`PpD~DfV={NW=Ir9Tp6X(BDpUBX%)XnTL}hgtPA(|0^ryo9iN&!dML6a_ z`=_V%BZd4qn&F+*X-JuGZ*Sk6h4tQ+f})OXNanC0&Xo1@a9*if;ENcA$p-YXfWkM` z+2PEq^YQm}GTzZZ$zlq?k0~rXLecP=cV%IL7i`CXo501`+k(QNpc6cv?oGtPYfewG zbD6%Yu&zo@TEyWHV(yT6a&OJCc z$Ub=QcX2R*+D;`x3ojrmYV@0&&buMNsbIU+J@HLURt*?!Mqx1~;L_|=U=#Re#Em$k z|M605&iLJVBQt0k9;#=}=Vuyr7&*}J0s7tw^$Bu1YhXD+UvsBoOwe0~jq!2VML=X- z(NIxvdhKVVTmK38+2{?no$%|eFI<3@0a&eJy?YRP7F>9&!N}5|Vg~qyjTu4$b%cAH z9SNu$=6avIvOl{0t%OXGufJX(>n4XA5jtG()}tlBC@w%jB!{sW?j|S(5)kZ3 z*C6x$_!c2!bg-5qEq7V|cM5UQ55{J1f2^hZKT1yIAvktn-Dc8aXb3)v$SGRh1^SEP^%8JQU&D=V@pB`bS{tjNlY zGBUo$*?oT=kMAGw{r+~J_kFqESC5?M`99Cr>p70+@jRZBU$OwmB2N#%BoRmw;ayM; z=ethdggQXL&-C-j$38KJMkf4TW!r>DmClzWQMAKM}DFMYMVPVl*@<<@;Zwu5NLk~tqFn7ntbF# zoq!lpHPX9K%`SJ{+XNjO%qR#X^%huP9%$+*S{llT<(KXn9bg{#+EhCv_HA$IdA^Ku za(8yEpL=rY_2YBr&tKvm+q3uj9Sa1TL5x>|8cY~ZFZSI(CfS5nigJJkxR~n7J9;VN1CsaXo-80X)zBXG{oSQ z0TX@%6WMwoG@kk*tH7y5`}GC1)Fg9+d>r4nW%mAGaXk-n!wVdajlT?CkG0SmUvN;b zimXxOyt9)-u&(a$cIxttfz3}+6V{k~h6&;f&iQ02Y$7EOB_t#=xvjpZZGZQjJG8mu zJYO9Rdbapp*z=DDZ1K4}6f*#kL6C~Dd?7S2DGeGVFf^2vUCwVO%Zw>9vs~IwBE94J zH7#@c-6}Xq1gu6V6;^n?0pIOmaP2dxg-(Ae`-e)E87IymOLdad-#vc!H)dc~ zX7BXLSMTzF{xyiN=Szu)|EE4CQV?b~pjWhSDjQ_x3Z#TrMG}1Tg@WwA*N2fvBrCm1 zdsNdD^zJU^Lo6MG)u)QLTYHFQ8GBw>S?Ri5%iC+bvC^ArP{75$r%RBG%vmc&nZr^3 zTSHoAvy*(A7%S^J2h^UB4Lyx-DcvsMm&_;pb8)fY#U&39F{`dEY3&x(c|5kM@wT(g zO0Enfk~Z`^Q;h1g>=u7M_pKjuIA32!QvT(px`1Q5DCoTlH#_*tT4;$KR%2z_L6h$Yx?D} zE;8U1inkLU9*&K_Fp-q_*YEYOha}6Tr#nl2x!wNSmT-Gr^S9)ih0vo9ybBJme()1i^GGf# zS^^dgKtP|dW6OU_u-7R0~Jtg~b>CTz0-a9B!fD znqND*u)&_w7j-iKSnU*~++uDvUSK`L`#2^hGsSDDaUV%Mo0BQ`5)Z`sVnj&t*gZ;g z`Q7Lb1}WWt1_fUXT0ofV^!@0S_y5NQnB8dlXeCnd=LK%-cs||LVfkZ>VhV{H|QrFlDYB}g~ZpkGYmUjkUCK0q`Nvj^L1bVoz5Ku zYG1-s!&Q3r5O z$Vf-Eq2z#ajVFLFRBoAeK4*-$vft#^)31pQ4;uSac@3U~L>%)qf2}C1sUrOR3r8qz zB_|!5Fa0?N*~tCRYkm%xkB2Pq*(fG$(0gylbB5~ekqz;s4d5^-Kk|0&#@d=+S9IZW zA+6vdv^;=WVMeTxqtR|UUjYv`?f~=T6S9oV>gm(DOba(gK5_SvEwe;7+~m9v=;uF4 zV%sIX!N|fgGx3Z>8YCnKK$?8?=n*kP@`U!wk^b1(l{1$=ei%#oamaJ5d?0l1f`!@1 z6O}v$eu23@qiW$m@_{cIadN;zDWoDJ)1 z`sJVAevXS>UR)jk!ZfW$v2!Pp`G7$-_DP>yDhRiV(QzC(%Ghac3nVsQkMg~=gA$%b zs;a@yTI3wb5BZR1bWA$G$=G4&llRG#G4>6-dz_U>+tc4V8exc$pk6B}C3PF{)!#=j zW?UY!(Ale-(IqDIttC+0ErqIt9v&;XaE^SY=#31WkR$2OfA2kT zDD;{vg_-8Y=Yhm8zO@`5?u^-O^4G+i*ra!3_eSh$MQ(1rGZSwYCzK+#%XnLbVn;7Hm;Xu?=49g~}(o zUeH?>b-dK>#Xvf^;H~GnNgs;i_&5~Nr*MRl2S&w8D2jq=%aMWCdf}GyT`4MpofI+? z_?k?XE<{@nK+~ zCniKaikYXK8YdjNz1sr$7z}F7DQJ_iEHw%<##Viv$L}o z3Y{7veH>8RwtAj#)h~vRq>aYtJC@Hx92#}Elhk8kjI++z12S=T}0(Dv!#QmGA zU2h@uGv5EqFsR;hVcJ(@Ky|$5=o%(93$^Hpq+eUgfO-%oWA0IOr zeeTb)I_te@AOZSIf+L;W6U&=eEuaBSzy(Mya^K!aY%1T+;_=G-?d_o zIFthv4YDiNou1RmMz-fpd$0WIeLH)xNSn<5MQ`?}F`bvAMavna7}FKIDAGo&|1x z`f9V!4zW9lU}3pquBiZ6_DB5yPm$!X%b3LeN%9ZjnArD%+%jN8Rny)+`$;n2c78)L z(j4FPB&zzZcoArzYXzqYtk}oTo=yI4${P)s6-mAI_RK|!mW11;@fF`^XAPbk{GoMv ztf!O7IdsgIhmI}USMP~0ZDlfr-rkTS8#ew80kpEY6mnbvOgA^3KIKSXh^-Icpkn(R zptyFrI-Tj9E}dM6h06oIJpev?-K?_pqYA7V8h&tlzmRIG0-z$dsRqisHD-p1mCuwOecNlWHhdlIiIz69^}V>X88ahq1|oB!xNeh zl?F^cH3n5zdUZSrC@ScOh{n;GoP~)uD`6mx)XNI>Zqf(H(Q`&8Zv=;2+#5hRZAGiBxi?O4I&5R7 zJiVv>m8;d?)yIqegx?5mnxaJ@xDeSWs_q;l&tHbD;{dnSD+lsrfnQr{(8J0rGS5$1 z$*=#K$fbnY(_q@-z?Q^k{FImfgmdHsXOh)1O^cg5e!O>E*nvb+Vk({ZURX5w1OAm@ z@1v>!GIKn-w2)Rw>h3ehwrgrS;CZ`oS%!k`e7^jh1_QqWdyQ_P<;WplYhcy{JLTb83>qsq_|q{7;x=fsDdp%agMznZ9BS-UYZdM7^r zwp3(X$Vi;VnCm^{+~{FJ2T${#?O*)_Jcdw>=}^cW8L`MK-tujBnCfa3*@&9=r~42> zgcw7cIjAc+Xk@*vP04k(VD|odfs*&tn1?bacFUnt`p87g!0q}s9;b^mwKv0l6t&tHuU=hBLlX@aIZnV1;lGM9x@Pq#%qLSXH@TNt#NVpT{I#bazfoU8~+QdDVHnok~W}2?{Li zRo8@beox`mMgk>+3$h2443WNdcs%BP`-Z2P_7}mG-(GCF03iCOs~m~7`s(5l!4Q@{ z(}C@CH+vkY0yo*)H;qLOjdN zA{3Mi&rH}jcN1`vP{4J=1ICgHW;%U5KGUZn87Ctes$Sb26m(8tq?PC2%g!7ElTCl_ zqR(E{5Dwj)!4Mf&px7lNMJIRtX=jvY2Um2vtJdxp2X`genjGmdB>AYdG8H4q#%O1P z2Lh0I0#mr$Y`>qu&GrHxhVk@Rf)H>C$#R?7Vx<<{QP3pcnM3?iC!>&Yl059vr0*ao z_^O0HZ>_~Q!>xyocIkTRt&V}V|_Gd5_cY&b0{^~LzqFR7V=#}!w50`63Km`6g1eC#}e2b={Z?kHV z^92XgcSV{P%(b`WJ_&)gl>d7l@xcr_Ij|`M+O(mjMoGK}SOL678*Ns1lzb=)uS_B4ZxbPDke zpoY-f4?6kxZf(;D|Kbv2RG8%&X+lRDT$tKYxAHM!w&X`Pz8FA!?vp2-U}izHLrlK_ zjKp|KyHO468y`2&fA2Q+rDb0Cum`m}Ui}e4QKogY%EV>wRIkL$%hI~9vI8tKY~z1+ zeQefnO%r)YCnp%C5|GGPR)YZIdFqMnBpyd;kq{=l zl7Uc%TNmP{*v7DJniNkWBa5NS15-k18-sww5<8QP7l7qAOQgQk%=!ga&2s5DRW4ZU z1e7hGx$OM?k?m_v~m9reOoN`IImKRekz-)VA@(m8aXE}oyK3_U*cXuW!VWP zFBOjy>LJfmUYMutB9SWI&-4fpxWVz4-kTdeJ&TKrFd;_e9+0Uc4n))V$cS#0341Js?!=*`oo4AE*q#b~@EkhS}gLOlFtP9Dk((8D*5YVB>#L?PN&IYK z=Ui;@GOQL@`28;rs(&uX@k!*ewzh__;5Pe2L8kJwpdfh$S+toDz?LW#(-zBs?rX10MVl{lkjXS<=NwVg1mAsS zVeInd%OEEo{Cjw!r=Fb};g+iR=d@L4OJMt|(Lv*ZvL6Vg#6SxK zM>*}gWvo+QTyUb>w@>TyX|l3LQ^r0h@qkZNrOrwsd0mnV}iajN^0s+Hs)nvyUG2$!*4hgQBYSvflo!{YsIZneI6kpf|f#H`&~KlA{kT( zVd__IA|4>d79Q$CD>5fQAzWj0kUf@O*Goi32Zmy>C3=&DPM&0LIu@fnc)8%NVF*X{vGN#f z2Zp6koX#haU8Lk7A$o*CNk}197_>f&Ps$jro}5#3-SK+$H*A|Kl`arSR7|$MA&sah zlV?@fK?%vrtBm#t)Vh(t+QU{wBf2_mJ32O&N}mwxM-ytPC;obOu)H_Ak_!3v3{d@j z&=g6f7jP<+U7mSI!H8w-OK9=Glam+t;6%WY`k!znvGh3EeysCtd4cN$CXbFr^dYz) z+UKPYyc}BhV4IYR_q&4!9llD_hVloVeesINSi^Sf2!r7kY9R5Z*` zz^2wTG`Q&J0gGCFf8BYOOf-cxfX^3l{cW(}XsWfBmX;2EP|p~q0e*v;iVDxGFGg;C z+Pj_-r>)zv8b4#k5ya<9h}`GO5)WGf9Z~R1=#V^w(rlka8QSVP#%u(;M`*r3GpD3J>l z3p8VWMO6}JB(`xM1*xbiTkt7|Vz^~!?Rjykf$*lqJ`X}t-#8Rp04xPckI0$lT*$4o zp%EJAor|1g3fFaixs^^jD-a8q=~HV?$AHX{vTg5p@9#>y<}v=tW(&5Fn(JLz|zJa%T{Q&7coyc@r=Y`tB;x|0?vJ`sZ51x~Aoht1- zx%nyV1-%rvxcDEe;%)TAhq?;&^ zxJ|ZO!($S+5RpOQPRLX~q|>_K{-w`u?^k2u)lm9z%Lgje*Y#leBc#VTq_uja4<_T^ z9#m<_B@|!1P{?$y>&S#^#KL}(`qh9$)IEq%YZ$#W3{2)1yHnA%?pCN7@OSQ>JM?SI z4b(T~DKnB$$qS=MrG?J!jsezB70Gdc7KP*USnA@RAU0r|&4&{K;7B?74{~Cqb3{^@q-@W^&PXqz15>9*8IZH1`aLd1Z-pNVWH+32WEs7po;#*Bfw_s`%cM8puCzufTy z`6Ve#(zm5gX0t5oeXcaoZ)5+;9hr zdjf*Tf0OyR8rqY(2*l$Bha!IYR37gG)FMcvqI~z#Efq4GgLYEs`oAEeF^|5$=5qg8 z4LVCCzuBF?e{`wcdjFm#VH~kKF#`!yfM0fq_O`=HU@kR+*_kiT3$z{?%W2?tZqIzl z{ZR8do24Bm$7;nbD{6#+ZPuP`^ar8BN(8(m`g^azf{YJ+sD_*mH1Db>UP8?l9b`q3 zKgi$drr)W;ogWqyybc-YyE|yIwNis`XEFTPUL5;3W`dp*_bUjfC}77{nGEb{(%p@V zaqUx>{Dw?YF=S-%fYSx(wK?)wuVofF4czG=2)7s8K>l-ajI21&L+Swf6!7Fkty?*6 z?P8ug0FXW+Fng3aw+$(&j}PhnT@#$q$6$}V+gt3hgWRvtiW}W9I#EZe%0#{d=pp#o zYjk3H^xO!nGM}T~M`C24r8UhJ^)6_fD7V=X$Yr#6VG4zahu4HK+j6@N@i^=+F!rru zaWG*SnC4=giZ||)E80=<9E5q466Rn4ATY8CeOQ6RhZ7L6AfWBfX7CX@&kAisB`Tu| z>l|$=t}w*j;NmlJcjuT$+cOZa@$Z>Yd3ygq{_UR`@#(^6Z$s>9yzX)+=JA{eXhp_E zm?MHu4z2m36WbDkG%t@&CMWgma0B&#|vnGA^iS^H@o9-iaJ1B&;Pny!nzGt>wJP36l&nK47( zR=JR55QyzS*-$XM8WEgFf{`i9)NZpBhfiS z3OkDhrxwD23=BhfnYhcmR&Hc;C`GWO1h=tw+COg-Iy6m^IJ<(v((1q4sAhoOqndh> zk583i9<#uE`rZv&u_#gLg>f2#%}6i;^rMoDUv+v;IALj5g8dCD8Kus zLn#lLvRnHhi8j$CG;&C0z7$yySlwSy!XeaRfHw5}L=zw;Dqgg^az^~Q^Aiqh5Rjp0 zBu@$R_^AyzJ6t?Z@HZRs2NJ0WV~9t%Xg1X$1M0H`=5cM3^Gk+vn{ zUBNp80s|qP81Xw?lwFBx`l<<-$9Nog^@!S+;Ic4)ujIJm5{u7R5a^Q~F9AWByuEF7 ztKk7fN(}%9q{Mc~BgphQ6u$}W#kuEb5e>eWE#Ji~cIwEH${HQuhu;L9!Zd-rZ2lS8 zEGWX_TYt=U4zkpQc(q5a4ylewP6Lavwc?g%sx9=9iQXdyr>8!N>X*L-GVlv)ez_(r zjsE1gY~l*);d|tl5@6B1v$$*8mCE? zPkQc+E*$y-SptC7fw}TBPq+ezq0BI<2e>6HY91p~SJNe)4Oczh?Bhf(lthS58cla7 z9>!(U49ZV(y+KES0OjLxyG*C3*}cslimGe?1Zi#V~&U zCWRFU`01@ln(gri9!458_HB`roi0%bq1(UzR}K3k#%>GX2e4uDj^!jbO*%^mj^R-4 z!pw$5Bo7jo$r41P8b-(BJXPP01dGpr5HSjx5YQ41XD4>@qfs1+Ai5F5YoAm?2M8pE z!sZnEg6Q#sxSUK&OVlDo)(*E%z!#8O3`JK^;2lJGVHq(UlS0Ez9;{StI#Jmmy-U(FFL zQ6TM6eXkY?9u)L<57m;&R6~l}&rX~)tMmmH&&Z9yu@wVa|M9F>2j7VF?i~CA_o~#9 zpq^v@#|2Qq8-Uk!u*iVDB1B|ZGUyz8r#yy(ThjhhJ-&sNg0uY-K@2y<3UD4K3)|YG zr|hkHeD3ph_ZD2%s??d1sTT^S){aaeN|1GM? z<1zgBd=aum;@((X3u6fLiJ>Z0y3!;8dDatMBAFo^Ej5WFk1bcAn{n#Wa#m4)-X$KE zEE=4av|mk(VV|4^VXhG8WA(yO|6LxwS6YX7dva4BiCwqdAv1AAF@&dn@_bTvcQ=xL zz&))*WPI#Y7-@Cb3F@in&OMo@4cBXKZVs8WkHopF?hIa=$7E>&=iN=;4-e1m_I0Rb zmE@OD6&ji;wBfT)|fJ7vI3t+RV zDJ!4Uyp5|7ulA}FR*cWL_oVP|ZCJw?{m1yXukVr0b^!&1&f|Hz&fJof-7UA@Z9jwy zrsD?S7&y@x^!a2{nxHe=M-(QbZ!cQKxMK;uzhUWbKv@|GWeDkO(;-M-{upE0 zR)#uKZJq>%Re&~6wAe%QGlS#jcs|3X3zVcPYht98)n~_^N5x)hgm;e1Ue^S4g)RXB(bjKdPmrRY?6bWW}J^$CN#&e zXiQe3OTJ=tGGlvw;zL&H4Y2io%4{Qy$Vhc9$DO$X;H1z2h!JzCQy2nB4&d;fpWn?A z9T_P?%LFmu86(TwORyjW+H4MA@HHF|3xxUJUB}?6yC$B~g($;)%fZl7q}a@Y=I5_n z%Y0G^N)!-JLK)II>p#ymJ&4qeet5F;YiAE%Ww1)5*IIiDY>~|rHjRO z9>xkjNi(K!i;t{3v;lzyFDlnX@Jpi?#;yP6G1L<8jLmVC+6u4F3wv*P-6dA2KkMyr z#&cu;(&9o~+kIQg;rdxH?NQ*8JL(dXN#i{{!Lkv#Jx))z(#hrOXRVBw?%uU4M(UQ> z&@s|c6Sxs$V!#a{01T+V4F)|+yUlFhe%x8!zibFqWc%PcY zlcq-EF}hP|qV|R*ymA7%n3t zm~`cm*CBCpfQeD<3|hQnW33Nd4b)hRo1&gv)A12!EJ3M`gn3zBW^qt+~LTs z7=mf&aZP3HuAi+IplOiuso5`IWxRmc+cJWtr%IN1FTFAa!DltNj$-s`W#^sYkq z59WD+drGu}mlVdgy8RzXGDJ_8QL;n7>|`b4*ELj}TCDCa8ebgJ0u%xgq}$*-vb*0g zl*Dzsne7D>#7U&G;AFm|mB{K)#c+5v2V55d$gvR-$7=5F6nSE)_veglXC?p-R)~Qa zSw;jYJj@p#l_&YM%1OFeUwH*Gz{N;`vw_d4*eYN+Vfby_4wP#tFK=C+UjX99_~^L- zPdFUyGe#niQr`iKNtw$IQqdC*qKE{q3uArV5dLCzrl(N3xjpgKVuVdVB9C#|GQ7>niWO+d z5q9x$Hu63>hZ$u!6BD%vO zkz)x9-9m@~(3%)arGJU)#XgZ8gUbC7<$#G3Gdfxi?XF%pXica_n`iG=;?Bxy@3)c0 zYTiJge_%ixIRf;?PsaJ<7D!4ILbjgqo#J&34Fm)X)~&f$ulM>769~o5UFuNhO!GH^ zDkD1Hv(>I9*tET9fTP4qnVmE|`|oX1$`jWa;;Eo8ht`#;mm^p`2b@U5F~WhVs<9qZ zxz!L{-8GYpQXov%>9~0!=7TeiwC!gmhfi{qu+8E zz3wJ*&Ckyx4R^nBBk%piwe@u@`7xjXww?)oL^f9z{B`{3zn$VG!@=TMA-2N@M@L7o z!!{7r#HBNMMg1PUX>8mN1sS8NW1pRq+MaN4ex^W^1z3Ms!PX^m0D~E|Y{b zqxpET(du?2U)Mp@{&aa<_CD@;&p85KQDVB06d{VJufDMnw-LWPys4o9n6E9)0czZo zPRp$99h42D8z5JMgxLAlwL07fAwpmNy?D!@=M3lwC^-S%GB7|FMObQ_hmy&?eAXbX z4+FS0$XHoOao;^eOlyUVc5DBQc47}5-D>7M>vZS}p}Gv|+wXw)w=X?LCll@%H*@0D zsdn=HzO&7&){}Qq`K*ySBU-o(_Ls|TjdJwOT(5b|_Al9WlGn3DF0B9hni^5psYnQU z;@+?p)3RUNwBsPKcBacU1QsVdQz$S3xiF|TG5(V<%+VvS{ z$r>3+UXh7h_)io;Opquq@}^6vP8RP!$s2L8XVZvPvWxmDig}nK7$b4Bb(tC_`!;|X zA{lFkL>5VAPs{v*RQ2Pck`WYL;5{y)C|{9*T7ft6VidmAmt+K(S6+!rw9k2{sC-7i z+S=OcOG{K}FR$J!wxA(wGFWn5)>$sB8XPxN%V07lL~S`iSy@l(E!ol&bm#ed&I`a zLh3B5oCcBcL0OIVv{luU#2wXh(a6Qt%Jl-@kXlNnR0`HL0J>HdG?C0x{k=`rauF z(gKkXC~sx=f~29z(~Gc;ESRS&D_d!2cN(_=pIduQn*gH+={X&ANk=w=mtZ4^@ty|a zpD_+p(EKCHB7IuYVOFb2%HiKpT|&GJVb3SXL~rODKin!OC+Fwqm)>jB_IL}yoG_er zPUQ-qztj~G#!+iiSOFCc)I=$+!|@RA8*Sp>W^bDM(gwGk{xHTJ@Dt1<$=_ct7acqo zFJQI>r5C)1k(2+iyzd4?@9|)q%HjH-Sgb*_@Rop72t*NO-5a*k>H$YNI3!j^FqQVV zfsRfmAz}_X2;!hO$1^{LP$ZDg+4VeVXZt$r&yB4P=WX4eKP`s^17fC^KaVbdlH z9tUfMBu-)Xe2Emi49LL2HUk(E7!CsyhtAk%5w#AV#3Mn*V$KMIv4>!xiwZlifj(O~ zAzYXaM}zS8csJ0Qu=6Kj*3<`Hq^1(Rz!iUHFo?xfKkn=}iaG4ZN`MEWQ`n(9uWCXc zc?e81e0=D!^2`=i36!ur5T&BA$ljLb+`V0T(1^TzSNRVSwui}ZxNx7A0{V|2xNk;> zAf2I4BnmEfL+a+UI*Zi>(qX@h9L>#qSST+PK&S83tRp8wQc`|>c>5;$g_HZND-iFZ zV2QCLB{pKF{8WcQosLqX{i~s z_MksiBUgJnNlCPtTmGnG!2SD|0Cyo;ou<4XFOR1#g7M?bshM^u{RKKnllltGQZnAA zguscK#Qb?S^Kn$gngEPUnU5Pj_-n5ZnJsF{)L%wj3q}_9{z4Gr^-}Q_mES(=+6BV0cnSyhv)MN z7jmDyHQG0vlU9JkY@_0pRwO{j_#_YkorS{WI(y#i`h9Su?Y020Ch(=xAJW)MB^#l>_83_r)wbMSq zGv#Wn)Qq9E?I@xk%pNGde$D{l(Nbfaq&Vh*dG6opqbb9>RV2Crmc2kf3wWzH0MeN7 zJ+hfbrN7^d#UVi(04N5Pw$#GDg4Zd}I26IAAPSi<$dtJ&cWI=MF8>6aU!+Tf`iQ_A zGc*-{WE0(g*rtA8&S9E53=igPd;j9ik6&R--E0Oa2a^($Q&M)a#kqfb0MqyYbS%;1 z=FyA?5B{0^Kr=QnLcxaF$(S<)d3wplA}Le27l*QWc|=icuWwDJr-HX@D)i*y9$b_w zi}9iHaqIGV^hv_(ZXjDI?vwm-4KL_5L4b<$oXL$Ip*$LsF+xJhidIn-WNXKDv!|Rt zU_dY8c!D8FXpADJtvv}0J>tm|L68cFX0!!!6|GNZair(i)Waf84y1yyqV( zLf8muYQ$hmcreQOv;5_Yt#Aj8(tm5V9gKIUs5)Ulv1u$Y1JS$}Y&IYo04EIA%B2;3 z3Y}Ll_zVuc?KpcZw!ALw6$v%~<4*Lt|zfi3W8+sFW*|DNfSh+e; z@rLDu@QUHk)lG_9Q7G({qoxFba_)~;^mxJ%9|j#1$!;$E8*Ruo+b!%t%*iZZ`VQGT zRnbipFENu_6CzF3!*?ofJxFYDKDIGAf>pK-NUW#avqBbJU+hV5AI6`G;MoPgS>E;<^Kh`5a6rGJ-by74g|J=y{pW>l(hZ z5SqWZgG8gzTL&9wi7-hxy1_aMV*x<{??98nTXp4ZOSga*^So9)vAd?FK`p>emO`vl zxm%V&7VgUv_yE%X8@3k-%i_NKB=brzh$twE*rJ)juU7&C%`w))YvjoVKuAfy#-gY) zI6RT~LAiV~)c?MZ@9~==P4YEz{6z1pWhb`8Q0to#E%rMtf^XcHijVx1( zl4EDe(|Hs_Jl-c|KSWaxWG>_2KV++$;aXoo=K%`paB=)>3X@u3!s=jcBVx|)HY}Dr zBz@Zpi41n9vA#ajgrQO~toIxJrwCJ#+Ft>|j%kvMq74NzWtl^iC1Czkl zb&V>Vs!KcfT+%?U*#3`&9=$9El77Zu2z*Hdh{qQ%U`5!&@&L8*>jxu=1cM}jYddt2 z&2T7cA^=CZjz||XGczlvN09F$uiUw77pQw|{--J zZv;Kxmrh113gzJD;7G=zk-d*MC1(I|?F}GUe_!A6rt+R2zP?-a!jZ`pI*B*Y+^mP4 zkw*I^Oj2pxXRQS2J|9&MSBaD8HqV{&-in*^+V$b#txg1I;9yrEvP_&xM$L!7JFrH_ zDZ^F3>Y|aDlR;85{1P+_HH=s=&%OV)iC?Ljg(Pu7a)1SCTVa>6vVsDwY#H)U0J3=} z63UrDGsQwhf1b4YM+z`P;>b@3uXZ}3S&V1`!4l94V-~jm>JDHMe#ZI2H138JCc4<^ z6`sh2o&+#NH&OivD9%7NRSM1n)dBvx7TK%sC{n$T>V;?N*h0?Ek$&p{pjc>&rI`T7 zdx`|<6>1`J*}SB8Pw|9lq?Qk#KJ9|beajgdb9Flfafd}jOlit6dM1F15KEWzJnv&! z{4?L2qu%p9v{S_iksvZDW^hsN$N&0r`4Qnw%-LX2%B$}xgG*2XXgUiNlWLWr8pJM;*?z^;#4o0GqtGW|{8Yf8f9h9yU@+3Cxv@XS~z)yp2m8NfEM0bO)rH zxMRzrbtg5Om=(#AiFoh)dEdSpmE)vAUe$eX(sIB@U3^DQb16$F^&@f%SssQ{pVHvkbrLjtF&SnAob8TiJw7M!ysis3SZSfp~mjZXUpY7h^Ld(FVff&`IbBnupd0N4hCG@{uFE90T_gr2GDN9x{wm9oR%Vs-XxBzE zGw;2*+%bd*X!y7Pn(vTLl>;Pi9f?Fe zK_pv74aRfu&JN0$NIH^w2rwa>`v8bLrF}n-jAghUu#541HeKKpmqpDjyp5AmbNA z&2lm$Zj>lnca4-_#We}V#Z@DeeNiHOenj$>*fSaUGQ z*&C6r_0vKhTFZC%m|MBcboA?Ibz&{wLI)m5-R+$i>y(NG>guVkHiduR8uDXkKMF6w zB7E%UdS>u~#ic#r>|LY@K-emf?%{@9S+iIjQ`KG?f23*fKK4oao9l3+YJKmm7@m5Z zRu8BtB)o+k`mg0)IwS&4-V_QvXp8U5mOXb4A5chE*h-VVOsNeqx3lIa-(0r|^bfkagFOKwm_X?BWU(_8Xc(cH-JsJ@Q1Ypz<(Jy|X>6nvXBr}v8KMu12RdWIQ5 zt_KeuOje@NtKV(lma4QliY+H}v)lXidBPD3OCa9_a4}-E&dkH`Yw!!fl<-&?+Ru+%*@x6tD9U{%a;@1m%y?QRPPwU&;&mi$dWv2^e zI&jH9CUxY)X_#OaUrG{Jqhum2$*>M*j_`qW)@I7Y_`XaitSX_v{czMn{W zpm|X<5&0f}wDhB^$toXb1TFt>KCPj#t#daLm^U^L3W^ZSe?kxzYfsFDMIYw(w@zl) zs5Nyzd_jLr)=K@@>w@NOKRT>*ZU6n{WLf(1Y2Qnj>-6UfD6jm2??JoCyMdJZ_W*a| zRxv4OU_u}H5b*|S&78j=r~QhweFcef&KD`cQ>O}$&I8b~M-T}IiQvXsDC$sP-^`$G zHP4VNMIrgDvu|k|$4S-Fy5P$rM%%dC*AbE2#NSmtfpK-KC@Y>RR}(-^24sQ2wQy{z zZ^P@#tN(b!aBC^*BS`DMpK>*X;w+Ma7W3Tk9g!J1cz2=Co*{=gfdXK)f7;I|({tgL z&jX)Q8D(5?W7jjWvy0a^E2Yt-LsLRkHnl1_mM+#-3P&g@O+bIj7{7(LpqC;j4+w5Ck!l>O%WQGP0XJcaY+TCasTE z`@yjOff0zEvFOgT#QJgdN>&X2j?lb&_cuOdT!1-XBYTMq5xU}y^twxfMt$4WzmJX@ zBkl&z0g)xaS3>56G9Qk@71=VpXd0$dZ9$0^0Uu6NtaQzyNXFyT>%K`tpv0?uzjgA}RnAhhQyGn#S$4eIrI@ zMhRZN*LJbr;|KBn&lvr}!k{@IbUtG{vkPg?E;#D_KPy2~QUDkUeVl9EiScF0SP57z zPWl_zU?{ITmJpyO;2AZkj(pFAI_u1@^SU*kKdUG!D_^__v`ZeQ3I~c^_=(gUHGZso z)G?kl`FqHrBM0|GgtJ%`HdNO4iQOq`Iq$kn{m96GbtXjCQ3jI$j*nEq8$OD_7O!{m zdLz2Wu@bS9ii(Pch6eg+ICk#j#`AV`eDxb-bS?n__4Na^w1cy=tl%A@CW;UE&oSb- zl6z^9rjkfTQ7pN!mH_6S_Sf3L%+Bnyu!vYF*KYt=%1G5d`g8^&`W>Mlb`{R`$ z%h|piW8A@C#h6!^{1XeafcY`39SRIlPo4}-)YkT8Ap1leB2K_e7JQ&7o$svYj@1xF zurR%?!;YSGa_Had#o2)z{P?B9U!@Y5dLkesDr%xY1qm3wK5gY+QuQytL@pSHRj#{l z-+IFaqge;;yWr-RfE*e-7%Uk8|WNS|s zx75?AUqjk`=FFMkcyr-sl;W=;!M4&OA7@!lQ6fSl0Eq+?0P1poHi3@%wE7B&**_Ad z{sA{Z=tJX95##@uR>He2Mo->D0JA_&G=PNv_ct^j2#5s`lnf%EL?CZy7*q5Eo^~!3 zs$np!yICZbQMA(z%}=js_=}Ib?veNJMc1koa(BY4AjUu7rFsaDXe$gKi-4&NaACZ! zbUrqF;>ji4r%3w1b=OE;P6O>^Sy$Je^`*7>F4_c?hMj7cZ5%+UYW|Ox`#$N?Z#a#A07--MvqPOpkJ! z|0Xfcu~1*qND}V2LKv-Yi^jiKlUn>}S3Wb2+BiiwgolMC-)ndHT1;r~z@|KVhQ_6bFm`a`Ks|8) zFgnT3J`4m8>-O$jqNfeE)gKKHe{CcH1U|?yfj9OwIDwzy;^O#l>=;o; z1q}?_2VpsW!l|M8$fgiMw*)ixQGR!(P6iKVQ)f6}tI^3prlsKpSHP-HxTRu9`%$JW zj~;_ke)fTjBrdJR>4@L@o?wM6=5%NuZ!>8x!mmSrp~1@K>1wArba?1-x{bv)e7bYz z4mKpx7Ni0Qvhe{w@rU>cq#FmSZJ1PwKmRssmz~JP8LDU-SQuWfT{`vhVi&*LF9Js< zmE9K*Q$IujxTTJ%RJ=R8j>7*!bI>(n#gVGg2Q$Nb+|Kk*To-c{-?U>kVf@;;eC5pT zw7Ah4x_l|3Ba#99i!{Osmv z-qp26hjn7%+5D&Lf|L;c-<9*fKlr;P{`WloV@UqD9R9Z)5HkJGI{bBr|Jx1!+YSHQ z4ga4T0}3`@bOr9~wF|^96VI#M^dKX-H$Ju0qpSM8Ii;Y(a_n^<=j&L}<*{M(`}i;i zAXYK;r)`_7d)x4>KKtxV{R%D&<1Mr_yT0bGuU3&&;#{#e)8V}|XKD7CcrCpIq1f5w zQF{dPrd0P4^2T|(Y;t6@YmEhJ3oT}?Trdhq)=G}+jOW*>ZD`w)6p|ca+1=LG_U5UV z!PDW#pUU1CARhk0WA04y8S59=kzyAws}PTbHusX zJAQE|Tvs)cp6C5?UMhA+XS%th$&F`(E>*864muQToiuafmQ-?Y4|C`gT6%B*fO{?NB`@Qt)Fck0^A?s}fzvHr%Bqyxv)LxwX|d>^8fcv|wg@&o$0C{5$&O zKujVu`%quuHK~x;c(@NAFmF_QR|7Hf5y-|K>V%f7F|Iwx}K$B>0m$7Hn1EBY_z*Wo3%d>P&a85K>omBNTYny947b{|r zJ_L=O3UO7!nZD(;2zV^WB zS%X!ao375&pWoNCCT0f*O?#9+cP@kpH>I~-(ehx~*YCaT@4Y;@Lt3=X-}Dl2j;q4a z*Z<+Rq-Hx6-B6qli6u)t`?En(vKZk!A9vPr!|m;#KH_UWjo!C%E4Z#(afd`)Y~4-% zdZGUP3KKWQM$N|6cAHy!ZFFaAZbm8XEc*v<-n-dF~ZV=WfAZhSiC620PD3Q5Iy)7ydIsLfy z++1;sK!LJ~zMB4(EAzM2qkwnu(_!11j)hFV*Q%aQ%ePaGvrVNOuM@hd{5Y&u=f-an zFd0COcn4UE^{OW-(`Z9-1$8JjQp!YXc0O{gPvOqa(MUSu{`{F;znJ+mzeY>kXrIx~GVzV6!yUGtbY{I}uy)Vl#kFH}F|ylD~v zqR5DYB*^ZMB!1SQK_zxnC06Vg`W*=ZJUUQ_Ppgm5Q7e8Qn;%Todh9m*K+$6?MKfJK z#}g2pd&NHD?g|^NcodHc(&!bs*F1BFE(M=em5z3;gblV#Xt#qoVZ~*RPlRUc{ z1Dj7Mzi8yWX&5KcN3F-}N?`_64K>3h6nlwY$gj8mOmD8lZ@#g-Ygpz!k1BZUJ@Z>` zEJ@W5uosDW!v?P(@HP(&u+~pr4v8Bbv;2vj(EBF69((m0{cxIC{k!3J!UvLcGr{;m z{}A{P0sIFaenQg{(M&>cOdvji7k(+Jg@WzlKawsAG|UffrgYbH?)+-z-$MC(^&nJ& zRIv&Nw;geqY3cq@VyhLbbUw~ofO8_3ueAFb!N3wc1vtNV7G^=i+WIG+r1q-6FOU2q zhpN;d`zA(7sh(4XVmqgUL|I#Zdw+yZi`K$I^k}N*K~QJ_XA*r=o!2ZK9q0aISxN~V zblOT#(Sy&7M&c%8!5k#!!wOj{Q9Q?PF*?3-?!t*5QT{1WZCbbR#Id%gFOH(^Yz!SXs6Z{Z#cwzROiwB}@fHJh zL)zmxW-oTbJsuUrMevY; z8{3siQnG!d<`4{NO!`t*S<+!+H^wL#9##EW%xavwx#{5WwK2w9u-4WR=`0evrpJHQ zn{3>O4mN|t2Pg*XOQ2am)>JVRirFVonqMj#le8?2@HpP9Hf?ge>q-h!dG>x4BTAa4 z3vwF1{|`-H0Tku?eZPtdB7y1@GQ+DjHkswJOfilv4c)(hl6 zyCG5g8c}}-N|Lwq`UdvN0Tr^kueHy)dh>EomsoC94~dmts+ZabR6W`@Jl)<=3W&R_ zbB%F;I$#*qV6^|1pr@l7PgSL+2g}LKz9)j4rd1XmqSbugZ0{$*<^@Iw1t3KP`bAk| zy-^4Q{}!O0TSUFWd2T}tK=@hVjadwhz;B0SX~|0;OpUi@l7!?%Ionmd97undqp{B0;eUn#*b0YGpd z<2m@Yc*5)7@CBf}x<~0mc*sUSbP_L{WwIK)R+1){l`qhQ*)a9=w9=VUl<-Mdz4i;I zz5i#oClNVwTJF;2C=vc5$H#c%*#cu37K3=3l7x>~3||E{h*r*t*Cg@i1+wE@aU8Af zQy`tRA6u0X0>)5+pp_Qg1EqX4PF6!5HbxE{F$3>n!W>xjmPw#;1(^aLFacrSaV*Q@ z-WP1Jl>r-%20~a?tQk6*2P9=nLmwN%@+zz;OaDr>Y{aB;4%AcvG@FpK zR|4d|PvR4TB`j74MlK-(`0@*s#V~R`-6^lrFSFJ;7=v&q{Rg6`MqPBfyb^e-Mc6n* z{!4LaXGikH9Tm0@#@Nbci5^7U#yZO}q{=Z=Y~sWm{28S8fC!nk!~{hz0Y2->4Nxm+ z8EthpRhALKe5D$0Ah1UqTA2bgZzx(gcX9#?-EBZkZUSi5nN`e6Y`y{EqD~A4e-bwXZE4d-+>@Db-e0&{f<(r_Me3G zIMaQ|ho6R!)aej}@g<$*Z z_iH*Gt$y%aNARA-NBIiPI0{n3u`y?FTNs>39nFy8^#_KIU4k%8aqIDz#JT$Hy6#8D z3~}?ROJSll${a&Z@HFlSD{~KsE4F!yZD9O%6CwZTp=Q;}&ggJ$*@!hMWYR@(%rMhf zrg+|}o_unGcJ2Z@lA9tg#}#Kf+v4HwZj`jvONyCm)rg!F$t#k%yrQsD`Sd4S5M|Ax zEXb0z#f4)87pMIBbSc$1q?*A4`hKqBg~V(`YiqD4+isxVKN9c zwfN4uj8xsWu2i*MRF9pTZDlFMb)KG)Onn5RfheydxPZ_-(Qse0{Wrd5U_64dcJCJ% zK7Bx)SXvLeJH5fMQENyq)>PpORF)9^1c&u-*+MlIPOjgK!X$Qt|Axzec)|tfj(Bl| z9Mqx^#=%o-X8@`f|`C1%SIL4m^+JKU-ri3yjjK@NIm78f@#ljcHXB4w^E zxP54E1I2{}8mexn#NB|+=d%x)Wizf$4^F-@{Quwp7U_Ifrcp?SMNEc!4U`;mf-Cx! zw!qDq2mM_QZVm#wPZOsB97pqHZ-P-aK8X}Hf_!BIVpuT{ zZ5C2gIn?aHt9PWspp4>hv8spo3V;9M;%DweGO%Y1?z5(MYPakccL|g8SPPXe`tmfLPp(ahKUHB_ zh#{K~V4HONNcasJRv?FgYr-^8ObH1I=gjeKCY%H}e6o(ct5agq_F5v)35L}h+0qP4 zIaqKxa6JOH=jy=*s7MTvU?gII#E4C9e8RVO@Zb}qd`_Ui;@oBEr%bmhPcF&+<&MdF zyP(Hl&w9Ax^M+``cx&QhWu;|>M*6j1FQ$Esd+dSEZ)#bhSHl|~N@5l#hboDuJEt39 zCVtd%y1CrmzOeJhYy64O8N~8$e5drf9ap8C?S}lD=&F;eq^U5V;p+~JGei3(3jDKu zl4yhv7j_pE5s=n8n_qNDCYiHoLe)nzJ8Yt0IcBq=x z=JneC?YI14g!DMlq|-ei>4(!_7Eib;E0?sbc|PsJb%06K`843!je%GD3_QP*Oh%!m@6u00r_&&@`r8B_R#rDH{gj=;Jf_R7F^z)l_3=|0a5|-0iEFMn6xr;hW>1bq@~lJ3)oTigOjG1XMCHUHa_c2OD#9@`|>@HZu6i#^i@)w%0#J7 zep`vArI_;eg6EQ@hpjnkF{UCAN~Xd;`px8ui_@=*&-U0|_U<71OtNV6-a z&2RKqBie+LiLE>Iu>w-`HAfi=!v=J1fK%WVFL>oE2nJ4}5iJE2A|iPgum&C}tr*fZ zdtEr*1Mt6>^A=%gp>ynnji7jMb-agjUEsATt`bS?enR2+3Q?q!3&NC07S8tdy2`q` zJHt~O=1~h?m6`X&eZN_)oqDxQ%Z0H8KOGn-Ci`B&6ydd~-gEM&Jcyu26?M>{Go`yf zp}oRzKXaKL@rOMZ8i~h-LCRvZPQT;qz4IQZUN@Ed;nufG;XSPH>NQ6@wFh;_@qmV^ z&989$F@Xa8i^=^dTLpax;TKtxc|AjFJGiT$u9<@@DFvM?B;jJfPqNE7)Xc_@H8WHG zMdJ>(svAVR*aNh3Tcp?8nG^=6Fugl>VwertnN*Wnt?G?m(vQw~2U*QcJs(VU;qYlS z56KB$R!hqztwEts*K`-okD6*hS9erFwVH!E73cr2U$$@6p^;kk7>4r!uvuMXC_JB*c?R!~(v zKb=yQyz5(neOt0Z&R-ykD>BT^<{$K&zTYl6jD(ZCoyQ-aM)o!@_Tu@i= zzcX)BBBAP}@@ncG#R*I#WW-K*Q^nmIxzd1#1E4@&!PhpCEQ)1jPeAhw6fQ`qzZjkT zw~@J<(AbJfiGi_-F*K0)E?iBH-Wk4Wv!)QE&q;~;dA)?FUDh@!19@>yzh?H^%CDS) z6lCO@?DZuah!ZuiPQ(cpmJ%WtpV)oO@?-uADIHN?Xg~(-y+X8CBmx^%rN`p#RZ~QQKk=QQu zp_e?InhU;+N|3A>9zKWoBY?-?j>$(HAEG-IzS0}w`MOglaEed1QBy8sHkm)R@thzy z(wAiv{W;Y=w&2Xr;XNwx6?_XFKa}>ptLEwz)K5+HHAEHbGOJr$sYZROuYIP}X};q!ITPH5L<%8w?KQPq?DCO#6zaT$$v`?s3n#8B!vB_mgx zmVf&MUtEZ@NAm>4TE~sZJnSgQu5wuHzY1G|8v?;#b+e7Ng&D6qz=MxqXORpmU6P}0 z$$Zn5VY3kYVW9~pjRnCnQ(Isg(*osKf6aZE({R8268F!SU=jtrNLS0$b}F&>Zu__5 z4Dqes`QO=su4wU8W*^!Kx;J+2%hd^U*Tv{^ORG{PLOuPR&D|qRa;9P9dTr&w$Q5a- zx6unFK8<%!{hh@hW$kAVw{Qea%Y%A+ThscI*I z(sz{)fAydN1W;^kZxw*fWJdq_;h5@sYq}|f806vdRs1i;@v+scWgvm zZijVbb>B|$zlg>ah}RT|8wsF@QOm~dpV3d+(=Q`8ji zH*1MwNwV)R7RPv+CiL1qLOW~jCv-(^DWH>}bLi%$Dp{8Zohci$6@vs;nVMNB1T7gb z{ZEzc+|eBdJ0-%c0wKNjlVUlqJc1;iC8jSc$ISFhZZsbo6!Wz*SPoByjq|%}BtTQ&Xab;-nayoPN{=;XXlRbZf9bm8u{tks*ucx= z%KFy-D_@~A1Fa0nN&s@6S)N&Z`CFsW&7}7Onr~8ACt~L3aydkJRzKDBp(FVohas)( z?CdNb8I)cc#5KlnlxXm#?C!0Gyse70Uf7=4x5UN&P){&0iJ3=E(pUZbeV<2mD84FE zVS$-MrpLoHLnAe2p@j=uxv9CIdfKI`SAF%GzkyxMuYiKsYKQUu+>o5y{_0wX8=KQ7 za#9Cs6REZ}&`W!-I;I_tFG#uq9D2OLc)B4=sb31GPpc?gV6(lVl_%1MLPPqFBwK0u z-S($9iZT083H$deg_9&W$EJ3fJBHRf&LSQ$$idMW%>IoDkD z@1VYQCw<6qMc=cyY;Pv3cgKfw>XE6LBx`K_!UrWrl99~2=!ajkR@k+=wIfmY>6^Rf zctiF^oIa$p<}ayQ5lzs{IdMnv=;`=i{%Cb8F0`YG=lIx5s@PLpjru#`^4RMdbkIty z*Ap=A)f18e#0LfaLekWc8SvUGU!!XR+RJ&Q3iXZKi#$p%@4llfb;D+{dd8;T?bwVE zE6UY9S(ZwsKGn9QmgcvPx`Yz(o{D3vQ%p`hE%{K^bO-U4l3@@E$!zD)8PV&N0<0%C z_md=6GS+xYDV*~M5870{H}MtAulMJnhWR7uQ4DfGUzhLE(M(%4J9B%V=NAcf-N8N2)}$Ymj1psw%r-?UKGz2!EV z?@qC?IfdFTIgWLr`K=zKgHuht#Jf&rXd{Ugl~riBn=$E`=Fb7xOF7n)}U1*(lIgyK^7Vjf9KC3)VzwbUlBxI`Y>j69q{8Y$ctYGf1DE}qsEPkpK7+hGWL$U zH??QG{0(1%dqPq2htvb+6mp$FcLx;|BtK0ku0=}46lhFR#mK;RJ;MEUPLZruShCy# zlW)A~0-qI&{91Av>+pVF<(=>L*V%8X49-f(c!Xr7Xa5zT-wAKZ)W5WjcJH?d^IVGA zcJj`8z00SH-gwkPC1iTs7%d$qql?juJWgFs&$j2Zz_7EcJVcTV&2c3ww5OTPdoAEz z!}aQ4yRgYCVKR&y4L)+|g9aBGm8o@qp=5w%Ax|FTU-}$aFgc->@zq{7&j^BWei|-z?uqoi<@o?9YDxI!e6^gxJp6Y#Mz{IUXK30J3{T`-& z{C%6rw{|_TB4DMsuOmHzjv&<1K3lI@(v%4~dW4Kmk}{6MQzC9vB}7D`j|zFW=H+THrSRas{aE}O z5!QdE;BMMNtEoQ3QzDn8 z#SlzWl3(fg1iMJFGB489yDAZb21tmXm-hFz`PVLJP+PXD&v_=aU+oUF87AmQ5_1f0HJU8NI7v>~26c0aSm!OGvS!k2f7jls zqgA7RzTh@nn{}P$(j@Lo*7sNrbVmV7anklH-2ttiCy8t}tCeM1+7EaUN2`jhwp_o1 zPr-^%a`E#A?#jgs5cwSZS2Q%!;u+D(46#?;(MglhYtoo&3Y*`xkmXk2CbySJbTio6 zOFT_xE<3Lo3cH$>S*yjSvq|$uOS~E=s`HdMc08TlyU66L#pdz;5*>mH&o%htTeP7w zOv3H-y9yckT%JpY$PVU+ax9O*n56-j?|AnIK;Z!x{wq6`;-Q9pA348pDQiH`M6e@< zMWd8PltJkQHefQL*+0Dxnc6&`)QX$!jj#`hct-5nl^G!4BNisV;389nsOGj@qZ>3E zjJ`oH_|@We%98x9xVn=;nMWD94nZ<`%0d@f!->IowdkQwPp@3k{NOHMOw7d}*#tnSqHgG7q&(X7k_idx9G-)D;4=7zNEZZESO$d5ZH8OPpQ_fZANN`@R>i ztB7EtwV`w2@fhi#34Q#fQaqIROHIrpF%!Pm5raGnKicGLCls_8FkQNvuAF}Vknsi< zk0wVj;(pcpzj!JKuewTn&4TkH+a%HJ56w5~ebA zS7p|m^Ox(%=e{En|3qV|FWyW0vhk8J#5=68HV6ELfJToOAi<5oyZ@>B9H6;c(L8X5 zy6udHQ7ibi6d)t~)NUV;qw$K=8B~5(CH+~O!dupNcezvbk3OUoE>-qUccQ~4zI!=i zPF>O3;|EZIk4)_R@fasM9bUOEb^2>mkjeMWfg)?z@^u6PklD|Q0pZcC*~>f<@x}aF zDm;W2F4V%H{{$^{jE4Gn&*!A)v<+7^5DEjKCWfJ6^DQgG!%>*C1}6!Q!uA9F*xwt& zX^4cj4+>3Qfqt%%+CeqzFV~D$0j+xe)xbnwYu5WqDi(%v(5|vS>mif%{us0)!-MV! zm;H)-nxtL3fVL9s+KP!U@xMZ-_gykPBNtwI(fot{$Psd@-xZj% zmf#l?n|oA@y0AlI?E@aVkbk@g1w70IdHkRy{9ykB=olcR8nJGs@&W=80PK_N zsyg_v3+}q0B`Jrd_HSlaRP8{0v>t95usaLv9GpZ6X@xUv7>oo z@Y-;9t*3j8BBsl^=)RMfhJMe>gQQRLFC-_Xu}4q%wuA_osw6b1UA~Vf4fnvQ25)G` zgTq5~lruVpG2m*Q99CohG5Ywen~nI!@9TI@5%3`JXp^&q6O5YTRA6$R!KUt-c_gZY z=Ol>%jX}uzPj7`k0jcmb{hC{g?$p5$q8|(Z9FEcSOlvjcBWg z&1Nj6uIhc|Nv?UhPhq}XJYv&+Xm_~B%~~tvd!@V5bN_w0(x@hX{#U&^_wAQGzV=m3 zT`|m9Is(MU-54nOwwTo9YWjwTgZEC^gWhwJ}p94PTnCeu*jr0WvSrzYD}wGSSxPpKB}TSVAxrO zA#Ru}b}HcGrktzGd9AiOe#`E`LIL>2vT*jt z-!$ThX{rPuA>ITC=iuN#oia0gqCuYU+uaVIqZXf|^#CdHPLUL0``Iyw^QSvgCu88c zg1akOm&MuRR9JPde3|&~`PGCZLy7H>{GmeZ=Fqt6$-KYo<*D3i-9HltBOV404Xmq| znS6a}b39wrXf+O%UjxN3TEbMd`hnc$Rm4kk*2jczQxwf*->^JTN;glWZY+r>Y3{*m zLKzSLv=o8m(M#+Ne@SMpBmQ>tXSf))AX$g8GTwiV!^}>Ah6koPJ)%nmU=mr> z_uA(U{rblPxp74eKjs+?Wm*fsKd=vEA>ax&=9a2r>1;5 z`C5*^$7S*_A0v#?btgAt@q7TVO7MB{Y+)s#`_j+vly$dL#;0w3rd($YU3}J}%A?m3 zB_d;@pZ{QT_;fe_2+y4Jf_wA4v0bVD~ z`FYu@VhLHDSa6n@YmwY322KX@wyroF0;7S{jAk~n8!)7Y5suVWI@vM2^A=EZgW%2w zMqNtD!hC*_YV9S#F8r}qqzh_7?V3J{b5mzFN3+gfHkfsK@oKVJbRg#s@=qcedyOu( zH`1rfD$>9yzjgA_D)Xn#tjq}W*%()`us5bEmEE{0UEg%UHT@p5VZj9vx6byC9Rg>x zZZ29e`IBzognqwMwQ0pXLhGdDoS?FE++35}sJcuTomZRU~ow$Da^H;0}* zXmP`iZo>5fpQiPiHLo?M06O(j+A3}J?WaCTOx7*5(&C19_y1JOoGxtZPr2{*#Cpw| zdXQ*SFx0uoczi3Um`623*1XaXKN(!)v7?w1LO;Ty?SGF1`7-w<)W5d@Z(P3n?ptvB(SYSY3F`gUgr zxkj8-CTRS1#?~u5MKpmmHD#cA4OcQjD-kw;9_He)?ja24#%3JT2D`E5LgfF%ooiIH z#EqYpCmkM#0?1gs3r_@6gtfV;JJn9R>ofj=O`rY7#>taR(-gZczx^ql?FoL?kiYNu zkI@Pp-`6#WBVMwq=MtmNVdNFIjEMFM?Yx$L zUstW3et)U#=7+cCWao;wUtGli@U^epf&%3B$_$zA$emFu&2|_Xi#xt0c34jRb12i?Kdl%8BnX zGfAPhGPS8EHM*_0Xt0nxFCbk4jW)+oxVShn7#zH0;p@DVEO+fDF?D(FtCK+8PX!po zVbg!HD9^xtW*MA6m%UlugP#08w9}DhVw%?TQadrfQt#u#s$bQEZ zJcBQXFU@=U?lWHxE{ISx4@tezJ!Y7-C{8vq_lJYpJt9UV=gK##1J8~lJMUy6p-<*X z|Bi??C;uI(lheztGGFxUDA0E^6}{7%yWyVM2V=kuj>1O^#pdpeqhuT5DHhLlDG68CSOcl+^iu1LYX_&#iumGr*G>_kJj(`=m|>?AYWTsXSN|reD6@ zUgEYF%Q#eXI2o1wgZ2Aq_>H=-f#56ZVsW>&cuppBCf!a9CkE@7YQ?g5XEn0dL~p+* zL{QnBq?|$U2*iBMi!{KnWH1Gns`JbPSoR9`AmE2dUrhizxXDXiDGbbYJ zo7k6sNR2r0%ROVJe{Hxq3VEfgWZYBJb8P%Rop4nM^P@(3q#}1c+Q_U$-!{haem@@c zD{Jgr<1oCV-@M;M=YMBHzB(5@691*YjHQcg#aj+bcmsRq>5IE25)qrXf&Ns~3{|8j zkV!J_?+R7U25|z-Y8z-5SQw2x>EV4ss~o^K5HOFOP@|&|E4oMCw3!A5TKZFTXpfnS z0Hscp-;Rmup{bS3Y2qNK_u<~GnD_dASdD$d-vskIDbq!!t(`i|7Bh{+NjVqdo3h2f zv+xj*?5|n+6`JypF;)d0mzj=Wxx+~k91Gwkewuyh?%~k`7!97C3kA1|#R~%qF<=XkUeW7|iF=>DZ&NNL_M{m-|M(KaMX;Vsu<7mR`<0YfLA6 za(kFoKdxsi=5K`kT~;!B{m9L@{i!R`mPe7Jb-z)TlcQhhM(J533&Bb)G9WhyqQx!aM!Ci@Rj{}q^a^_LV_ z&ULb?`!ke`;)G9u`*{MK7&mA+!e*ZULCzH{i@+zV3C}IyDC}}9{kaVsz@MHcKN~#P zn|h@;Z!LuySPVwWtuO_5pa}t#JFw;}4RbvCHS=LW?_|T_HDi3C)LUyt{hnc>9&e7{ z-BQm2>u_r?g1YDKVdwaSR4qIvStYu9&aDiq7!PtODm#s)S9m8p-)}Ik!?({s z+**mHFDe3NG%m;IAZHC84t}K3+vmqlUv$(PIy*G75yP}~`Zu#GbyIun_3`OiX)>KCl#=Lk* z0IGVk{m&Z-TI$UPUh>;SuRJw2xO z@asNR22(puUl{KBpO~NE0u4{*C-YGi`98e9X3oD{y<8hvdl=B(m`Pxbh5{No?f1D; zH0Uosj)(_i1>Hd1a!JR@@acgeu;!==&(Hw@5Ko8!$}Re}fRRhA(bkduXZ8*i#scw# z?{uT_w^X$A`ZSDVdkY;E53Il3l(4bCjpn_k-_g%G^{Z0EIR=|fpV@-Zn2S>oj`s=V z;B$ZR?E45X-acBvHVK%LJQ-Ys*K2`*fBSS2NUBEI;pawp zzt_IeEnpd(mX+76Kowf}s2>@wPZHxU8n=>j=Z4IozGh@}`{*X|7CCBxkV#OUOi-e? z%J%$yZF7HvgoO8V?a4>)!=5c*Ej#PT_Z{Upg<_>!Leo62=iZX^mQ!y`U<+H8Ap+#5 z19mbC0XPSIg&jO64G@^JZMk{i)O|X?w*PjH7nCOMqrdLd`Pb(3Fw694s2-k4XYw7Y z=doP@4C2jfei)sG|5IOwbG!Fk$Ckcn*PQZqWQR>HRr>@v!fY7#X@rOC+xA0OVAa%R zGDXXN)Lw1A&sX#a@uvdN%xPpUw>|e**fr%>_6kcz6#wvohZocbfR}F03)LavwPQ!p zW1jFexkx1R_J!Rt{iuJvO*lgPTXsxV9?o+{b1RWlh2cj|LW#&@+2KpsR{WzzZyLQAndrkHqnTCa5w2$&^J-}!N+n|d2 z_Y8&SE7cxhc<_W8UB~Bmj2Q+&drzkn_`Flo7XsMQy4UJ$x_I4GzMQ_^9e17Ra=w(p ze|Q?S;S@n!zZ4_8c)2Onyn3Jhy5uR=T-*1`fxDsDVSR1sgPo?ahJh*~*^%1SpirxR zOL_#+Lk&t0TP!BV=U_EoB~Jb;kPow=1D7rzDDEX7&gk;T1J+UlHxah9xGQ}%?xf7D zA80iNkTLWzv$Ip6vc3bKLI?j=M&_X-gIM!2kLmkH@`d@1zX3(psv2FwwNrB9kk8!s zwsNSLJj5R)e?4-PIL-E5t|Kr#EGEnan4ebSzO(#g1EcS8!u|tT78Ao*Ja7IIa1dej zN1drh&6}Bqxaz+w8?LNaTP^SFoL(rL>b`C5dNj!NR1I9V6szt(W<+~zbS<4?_8#-~ z4^)N7E?E@`?@kYU?_#e=?{zR1oceVC!R)S;2VJ>O-9lF7ccmdntZtL%)V?v2;`$v% zpYEp9?ST&^UiN`!>$?@97#1gU>gp9!6waioY3k+p;*iVdZfH0aAi0%ZUb|hWdp{EY zSTJ06BGYdP`dy5*7^K;PZZ%_&Z*E-QiB4ZYy56l*j#=i@2ESYlfb}a zww$L>O2SIOON>KkQU%~7u>6|>Z~#ByzF&Ut__Cc_BgjG$rf8p(cWp9Xapm%A!O8sn zG>p@MY)&3bDSOrX$DSdh-k@{eNqMp)|H)e4E#Iq};c@AAgKiag%$Ct!m`lbPcn@%o zoR!@>-mX4Btf~_$`+R>wN^)x)WleI-bNYAc_~2yF$7}CrZ=oy|;+w`*Cj)2*-B03&7 z(K$BiyL0(lwVH?MqZln-anzPC?`={;ub#_ND2ov9PR=lfDTTh>?4`c3sZWBOx?NYK z?czmF7u%c_Z708urCD+vxVQIalAWx-tCRH9dU5N-P?h%l+mvva6S+LnXU@c~fDqon|w&FJ-^#g>+fi5l2_%UxjT~g?i3F$K)qdi=M>;^113& zDJXvL4x=`tfp_YQpT1Z6edvsqQ#nR(dSWM(b1*XiYGD*~>Wtv^ivjrvy>|<~XY`>&E^>dkU=FPhj?mF@lnmDgP2 zsn1Tgm`c#Cl{wX(GmT4Wbn;8*bv@;=2Ma@u2-AV8knv7$iO2z+1SUS1xtn4RJWVXk0hD zddcHB?}%v@XLNMrHwNKQX|*?dw1qQ~#dY>Kqw7M~WW(2j1sWcmM68=;?UJ8H8g+-Z z$d|<`HG!WlUeN)Du08R5jZ^oUz^xpt8_#)>gmK(zzhJ6Fv;k1Bsfh^*qoiKtmE5gp ze*?Xn1UAa(4+dvO_tSDx1eMpmeX6W86MlPMfXKlU_c%jQPTMSt073FIhm^7uXLgIb zKI504VXZ_fbK~b@FZ-DFR%xQ%yNUN?wc#uK&1%VZS!v;ab?Z_1S9(vQ_p}a?#T6T^ zc-KYniDRSYl_MU1LxHF^SmQ)h8H+SP0AGRC7mK>NE;8%UX zKSRUM3npTVi?8S2f0?ct$Qxc#R#9Pq#U#KOp8#tw@Df)XWcERSS-Pxu@heBhl~<}+ z=j%BU^%)OmYmpZ7pZdQ0|FFDbR#VLL>E}6ThTVA{^H+<-9;;h%AM`$-smB;fi6qWC zmK^L(JyRjLjHuos=eVp7FP}U}_c}`^CwzbDtG5I`@a0Oil1I}e4XDJy@ed5a9aDM5d#m8*_{NXeI41Jg;+U&Mob8PNUYUq^Y1ELQlP3J%VP zsI+~5*25keEg65WI#5k|Mmeyqm=Ep#A^-36A&0!WSeoE1wl zeT56y>7^SNl*NFaa|BCI8ATj?8Giw#8+NWk$5F~``AQ|{x*vb}SZHF^*vbhA04F_h zUF+-XuH3Czj>B&Rv7Kq zJmXe#4)Ifu_rzJ44s?>w0UH8q#}yYbn(qXNa+8HQa|2X4WCE~V6{xAivxk94@fDV@ zEpA`nMQOd9H}?-}62{10wX`MbG&pnPGU7L*hEY;owC6~C?<+5R^ZDrJSJuaWrhi+! z%MY22%sN1BhEUeu`pua3ThM1`+OXpC2U16#LRvkQ&#m0Pt91W8H{vF)z{oy||DL6% zFN%P0U66-G%qdlvo!tU9z(IEUf;}@(_ST&`Gl zjSGmUVg!b$t86M@8uyMnG+j?cL3HZTE6qu@v0K#i^)1)W?^(X8xbj%}$DR@KL~eat zR2XGPfKt#$-V|mlC!eIC2EV@%FYmCtxvXFEILCtXIl-GH2NGk1p$ojLA7}2o5ls;| zx>H#2Hs9Z}R*`sY#YNK1pObrVJvicj_Qlo*l_Co9YT?3}OiLqq2Dtm%mUMWW< zO6=gq@5ei>_Aa)6W}kEXFQ<`zHgWpz7sT{fU8Tf0vp4^wyZ!25w+oo(XPUqAfwDW( z=k$c?F&D{-sv28QdwT|Ng%e`JR(~;=E>cfcvX`&fwmj-%b75awLW$XP(`XV!`Nwic zBe9d}PlkrFuW@|&)pE1m-XZQx(e%QWa3toZQ?R2uo20Ae;cV5?^S|(3RZNsc>?Cn3UpmEP=0-~#w;4Tk;_oC z|8q!tH1CviV_Hm7ZO!&Z<{F>LLwqoUW25l=mHC7J#d|+Q|LyYKbNc%Yym7_i3_Sq0 z!7}Zb-35IH{_=w-uJ^-eD&t6R)o(A&Q}oa0ycn8MsQEdgddF@-^S{8PX01kg?!Q|_ zbpG9-D*G4mJI)?3<_Dw4U#}MtZ(u1AOpo6ul;-h`y~)&K$o}vu|5F|B!&t26Rq0G+ zQ6V#upsC=rlSO-?v`$Vcv8L%8(BqHWlrBZ~>dGcy-;CuBGPn z#iu7Xz(F-#R-|UWKRC=|qujuKM45+J?hF~YgYGY+5gO9imV1C*1{i=&RyeXE-QpPB z&~4NTGCX<$h$}aLCu}=*!`IdEaL%>huabu$kJoOSqr^+5oCSuTM;)b?Jd-9we-7(o zJWI0J|1Z_kU6)%~0V{O$p;Ed4wA4#oDd z&cv~ui56#F*jK^EBVxz*LzL%6_TrgUV@ZZ7D(agxbx$%a%A|~KxIU{=`Bb#KXsm`a zT=W@Mp(*C8sbeNz4CQ=J)iN34^CjZq=Iq&nARX%}Y81;J=UuKlomPnU3k+p2 ze8GDMPYB|96QGU@3kr(-)RXfx+_ds(N9YY`)oRgG7C#P>a@=0o4+Tg#&QM99+|G*2{ z6Q^D)g8V^&kkz^`yOQ+)=QtFfROcKpuLbxut16ATMM;^rw*~_^u-{Y#Z65ou`4l)00P71xo3HwBT}|qG zoU`LzvnZg`FCb{RcEuC(K=Y5h{BV36Rb+SQ*-9z-nmwcCa}E?e@l*r@eP0A=_tTYz z_XnIf9W3(IbaT%Aoih+cm0mhwIqt(az`8InzFmUC>TAaA@AI14eS!B~7av;nh|+z6 z{k@Rz*Vo@|)Bl2VxPYkci?nk>{~}Q@R(r7UspI^2mo->;2}`gbIwT8+iOo-GPslEhr*{TSPQ&=qkoa zs(+-y(9dXso!B6R|KDi;)sWerYL0TsQ4AMf24!uLQ!`g^uWh)&qK4$?Xs7*6QxaH= z1|&T}_^{wVnE%Xb^%cRE2K*vKQ(&=G1@|pdg@2?0%p4qfj{>jpksRqlNeHPR2IMYa zz>W9%QOh`InyPsEUMKSd>OMzc1LA?q!%|AhsR~QGYB6=CVs9;$EIGf1tq`5NH{>}9 zz39%$DZi!umPG0u9@%YpJ)K8BNbXIAo^81 znJk`h7fnq2P$Z#W>$wjjOI=tcWzek)cM^!9Re+6r?vP(xO73ppm!U=sjrEZXExufz zJ*zZ+``M>Y#+sox2ic~x8WnV%PH%E?N)hASR3!bkeS+58z(iOac(0Ix0i1L_IYJ)Q z!2VYFfVcRf;!R55fPj`}{738S({$oY@OcLxC@!6n+jpYQ*`El@)0{h13}aEfDUTT0 zS@{snPkhx!BznM+J*03=c<)|GBXfk+~PX?2<$~pu z=iD&8V>@@TlLq#pKuL>t`v*mEg=A)znFmOrU|PBlp~0#47uVxZ>NyFv$OKZ(M+_nABIVp1Ck5CjTU+VJq6Q(@}IPxQynzniAtn4QGGC zr-$<|Dtc}Dku~QI&e6=VAGPg{{}6qViDpk$SpZ)yyyP1GvcLDa%0vE-3xN3tOD`nh zUjT!XzVM4Zk!HM6LU|%VXX`J$tSEV-Sy9UvZ@XHv*||%mMK&U_PAzq)C{Z`lM(?8$ zTcep5fTGfhxC z+lc)#sM7y`S-eS&9kb*xmS6gqF=FQKegGX)_-Mf=>03i(9u(=~33II!1NJ}a}i&F!h^I>Po*@l4|7m+s-ErKNC&U~?uN ztfPXz6n2_OIRDc$Gc&6-Ff7gilM2wyRRF7MefN{t>em-P@&v+}+h*0D6Th8#7_;Sy zHfh3)>}c~OxR1p-Io1ZcnXGcV@Hr-(P_};&Y z`=OOflVqgpDJR7e`^Qy^#d5NSS>&(_^5$J>i6=o1;>(UhECi%>=H7k5S<4AHa%3ug zI38K;xNc>pwa~2Gye$9tLiF`*Gj{TzjFA7|l(njcT;mvye-hAuuux(MGlwP{Z|egv zfP>dR*iVk%p9Tx>f8Jorn}o7uz)_F*+I7Np8YOxv+fZ)bo7iNdkQWr^CXk%76IqB9 zU0xD#s>6)O*yIy%=`ui}u~7dm!g6)knBxYJ3_R)-SekLlgS~MRJjcPl9L&tEz$FB1 z>1l*)_0pyN5H#+HP{A>|%AXx2C$|~oITyh6=gzuUYp!)$il||f7SW88s6IEPNVvUd z3e^p1uo?FO2QA=OJ~QCXfd&_3d?;APlN-`)CqdqG_)PC7lTMWn?RAfyDs~^5>%O`z zs}6Pa_gWSuuT{3?v|MU9n;K;ogR`Hr{lFllr#oKg%NJ#UX~hgNg^32%MRXu$rj3P9 zY7O6UiW++{gsj?$qttE*bw%=dob;P}{7crF&TD|kyC3|2kJRTVP+3nF^82FjpA{EX zP|kxdRCfn8bl&3s1J6dS?^jK5`##{45ErKlZST{JDi9>Nd&1uK=`qEU2;(@5CLakqDORumEy-s*cea2fGO}>MqIFYJmUz02(i~0#YpgN;*Wx*J}za z=*lybzNCFl$9VYiHiN|gYrOvJ)XPJ5doMF>yG^$W3hokT4tVda&)}sbrgX*NJcIY% zfQd^_{?GbnT78T?oLX*YYzrPtPw-ES9L99aJoIsTV%mG1=+e$nJz z@b-Yp7l1x}*vNv?uPReBi@CwPz5A7*^_u5KzsYf%Kw_-}0q>g3UY!5?+xjvk2CN$p zEFugk<2o=-qV`cOb8xf;C<8pRtMrP1^9*DPO3$Xbi&;j zGn-^*udK{#ud;Xc-XbJ>CnTec%n&JimJzadh$yS5$ll2gk$&&*^ZcIsM^CS(;=13@ zc)!m%?{f@fd`#M380*CgzG6ubyHFTxz!ocB5eW2WxJM5679k3%E8uVb!nFlKFP@s&LC0!D@Y1p$w!=HjhlPp*%nvaY@HE(5^mVl+e9Ex6 zt#Z=hyY(kcG9|s|!}KsH6rM?V*&|j<;Kl@yG<;=(AFnBzN+3lVNP;^v5E}(z`8sC^ z9k~AS%_mn;5@9>`Eq9)>Y>lnHTUA`G!iCuns$OEX*V87>r}A{}L?qpp>}#BHpBNma z%Q>fW1pknJdv!InO!z+5)=$Ah3Yh?hdm=YmtspvA;DmYECYddg3}!c06|soX;S+?? zR9f!46Bkg%sM`4?#_gX^_btcuFLwHq29gqdP1IOvz9=g7@!;Ygn{R%83j3K6GG(k3 zOKUi*M)Zl|Ja1Y#!ow0YKRCN_1nt}r)MeX&4hQkofoWh^h!FE}7gji8xdt~4)X)7H z8=A0LKITZPJ`rKMywXzy>;;e`7K|S$i6EK;;!Vo+iv~eme*#2F#23}1jFMdu*RwUX zyR@Vn#4#0Lt@Cu3sQ+JCvc6zRWgQz)zsuU+1+5RF^o0Setj*fDeSPhaHv}40jPUAe z!Ds1&DF2ojr&^ca5&00AwRAa$^LtACV_nh_o7Ko>yJOzW7rr}NOjNtpv4xjin>DE% zgv(NgT5>Jb-`b>om~lUX3?&G-0+t~if`DwAyg4FGir?`XR~*76>IQyz@Jscj zfuUoBzw}kh%ukPwKmK5+r&A&lU_uSoGEDwJL|nW(mC2ph88TZvMbxwJt-%)EC-H(6 zpRk@jrS-hJd{jX#K>t<#)|cP5k9A+&OFZ>xd8IWx=9sV9E0N#BR)?1;-jjddQ%THO zG}rM}#|ItTvm21ys!L%CSqu>;( z4d1iXfISCyK{yj(<=$ljx)_f5Jt-RV5?`Bm8;h`6NBl!&C|1AZ|5s04crEkVl+V&- znUP%AK?+8=K>QF4-Hzpp3RooI4r&RfGYZvKKjkLIf*n-%_IWrAWk}F3O+RzeoMsEZ6jIYl~{z(4$z3miHq=6<3HefJx%p=xG z`MHhYIS6IOH}F@5U(+Gp{RPGZ+i^j+^j0HVSSGMz=)5QkQ`KJ`Pyqa>?)L8Kn zv8@PHd#9JZ?PN~C+5RyHy4 zQlcsErwgbK&Q;;-oLH#p>xqsoaodR#nF+zy2fy^M-u8<=etVFa^ZKUgK!ntbe9zou zkMhROfMN#Gsd%^ zkP^tW0p_CXZ0?BS@=)Uw0#7J+j4SGac?1722wVw;N{4&DZ&cUCHhUJwp~7fC#}Oy` zM)+@5Xd&G2d4CZ7gY0>wUZWD4ATIbo`QqE@W>p6y46;~Erk``cZ3T(!=5O2{4N6c~ zcXxM(A7;dht)xt;`m58442o^MFU-sKw+(zfx7DriC{29Bcz2%ox#^vStXs>MUDCFl z;b5+}*WDjrL&s;h6tTH(7A&adC3E4!PaI31AdlmqiwfbzE;uE5glb=F^z=_I%Z|KM zsy_cp*-KQ0%Q@~Ac8A9GL|2=OV?48hcTr1J3-OL?nR&k1B-(^Ty+G|``su>Zi};BT z__W|hiS^e9qpYhH?hpv(icNg{`2R_Am(k86rFsRBsROm6AxwxkfJy=Rj^DU($;Epv?%h5RCD3Cix*!#f&eiV zB@iZ=nty#kb(Kw&809vppK`4hBzeYoD2b3`LB_M^>QxPiD^&x;2EL?tw?hSfan}vy z$n!rjJdZIqYS~RH{iN)n&#rk>{dmQtnq)V)&A8&pSN!$$bpXd_;Ijby0Q@3tAYfT4 z%W&Sg`Bn#@Ju!ig(%|XE^sr=l@PC)0bjx|Js}F6h@O!d$<9S5<(gg520G`MR^5)Lv zUN{>|z-knh9WpX+X=!O_n08Q>lJ&CK#yZU53iRa{Y5uDRHRJu!6C8`#BQ%$K*$yaV z;KD+(*1=e`>jkf{@Ln&q&5y73ylc%eMc`Z9ZqPuZIyYG%Wb4H`el-bN4j*jveY+0MU>t z0F;{mUNH=DOl|#wk4{xpHB~2)+;peN+;XE?q2T7StQl^@hpxB}=LT7Kns)CD1`so# z&_`tn??c=ow?21SZKi(~VM7-cPzRkEmG=d%``k#DiHe*q8={($?T#%N1AUHfhRSPE`fCE~3}I-n=ME{2?G~qTd!F zN)cYbl!_lWz9c3?^M!?lP&2c0a#}b04lH{|ae4%?aC5H%E7av40xu-j)NfNIm_SxX zhB>4pT+O+CocWA{S1E8s`|5Z?_O(gj>c^~Rv8N_og2Xmn0t7b=og2O(-5L0KH@(CN0%oH6cM7QSPqF_Tp9PD41h!uk!bn7Ey7*;0)u`!~Z z$rxf>#ZpFvJVD95`dh;XestW8iD@+j*SKhFl`6wB^5+!9XWBNbS()TA5)R0iDT<7N zfq{u>7P8J@Eg%>Y^l+W*e(OG+@=_FvF`}U}z^h~aC*OHPLu`Z@$ESZ3->e^E5E62> zHd-(Xn$XS?FrS2U!?npOreETvy`;?=Itr3&n@stZz4hMsQh{%%UMt6T;<)p~B$Hog zkKnAnt8q6-<~e-$FTvy$*e}r2ejGwinNx9q-8a&Y01AoZw!wc&buo(eA*B%%2J2&i zC(iAa$_n8JzTgXPxbM-jCFbyJXB%cx1^(@UAhi)*@}P%=Dhsw0s9Z?Q-uS#ld}Du1 zA(lnR2?RTTrX|4R%WIBy_Y_qtt&bHHa-mqguAlCA?g+_`sFten{P+mc6`BP1i`NZa0Z1)5ATMN&%$BJWf zvQ+P*$WT=NvsX)7Q-dqHV+52LhXXin#-l^s8w<~27z3mTjxZpLL?uEdpI|fzY}CcY zf>!tWkt6<_xi%Eud=8f7s&txo#PCs2I&IdI|09`cea3qA>K%mCn5?=0MSL~9L&VDs zmOh-4j}j7=xz{VB8ubcwxniYz3szquB&~9Cx6LLKR#tJ|MKagMiA#!!{O%2x+w2-G zD*^I3hi>)!gFXcFHGB`QfMX(8bE)xRDH*10bCUc4TwX*Dg~Lu*RxcDv_%nHlMn<_B z4lLr)(%cmj^6a#a6D^$GWQ}4=tifV&6>KwO0F?Ckn5`TGZ|o%#4 zl@u$ZHvzBIW-LP=G_ugJIzC~41XHKb69L}z3(WtZdR~GD1!c4zy8aOO0zbsFd;2^5 zx_JBV*uKj_IeUUXikDvf0yjZG(wytVKCO2cotuYanlX>VJyRz){iJd-$$L!I_X4Ni zQZh*?o0?9+*FA>DiH_Q}(!72Ht}icI)0iF%t>O|d)g3Dgqu^hK7M%jMYLqRk^6yL! zkG_(I1|_Su`3e3xR7r;7Curcs5b=N|%K7KPZ8JNL0{W;V3!L!nHM*#iJ)(nhea-Om zg^OH_;zh;9kc!|1j|Z+fInTLkI{TLx7;-W*xrpNyno74;4}$}KOnHG7-|CHv*!^&L z!KfJj5V`0{DL0z9jpe;Q#G*sRC#2<$-zC_20%tZNUSSp{qo$sOX9lYp z0GT%DBL0w)YxmEut_+h-i&G!UdxVvLj8X6s`45eKeP2APYtnt^QA}=-|UBM(6kTG>1YHb z5SG=&viY3^ihsAk`Z%k28S}WHcbRm+Hi?v!hC|081XM-pIUolE(9v=8fGrK$R0ynX zgNF`tAOh>_xgR+(R^%Cye{!#xXs>)rcq}W71zBtF)^mVm; zbjDr$bNX?ePmEwzu@#tvfp#V2cgL`k1^gbWk7^C2kLQNldiSv`E8gZ$v(@C+sJ+wI=g=xVDBM$z1DRxDQ*=EY9 zW3}uFg~jN;<4OA(cyMiZk3en+3%wo=>5m1MYhX2lKAXX?NVfula%+BSsH@}G*kl0p ziB#>V@Oq|W5+8e8*cVXk6Pl&dp`EKk{{*+2llF}tVfxDN;cRJrbZ=;Yvk(DerTkn0 z3=7TTzEUjOv735j{l|Uo1?}5W3dwB$9nxZ+*QrAMsMJ3d*`y?)!s)LQusqYbQnq1c z292{1TxnqJhxbC7o{|zV{eh}(yj%Am?w2&mw#L-cOpjtxP|KwegR|(ugTR}u`T3;V zJev9Pewk5KhqN8{+#60I1R;)E;2cs;;R&0oQO_#^(uWLb1EdM(a1}gukQFkIS~d%u zrF(5&CAa1-(yLy{j;CtOQzGZRxbBknlWp5UQ=^&vn!`=&t&0thR<9d*hsKx@d~L>Ypd<+fAo_X=N$!uSIbP{isyUZ zjQ7f4FTJ`+*lcwr`oud3oMzU+e_*E&zGf(JfO=$kPts2?$qnDpWJ>w*NPS#Z)D5AC z;V)5p@`iO*LeM1c?!*`*9%Vk@g7!}wq>1;T_< zJ)@7CD&D6ApwT)4NC)r@BT^uIrF3Z%;hRLzaRB=%#tj=NzhKr801mRH!Acw@H#awMW8a2a58wsxPN;@DZB7-P;lK2e^p5DE z(8djnC1E8wEA0+E`PLEL!+HHDeoiEYn_r9752Z0fS39r6`>M(*5r zVXMa?`jF;RMaWR1|9magTB}(077W5Uj~5R^-wxYw=Xfy@E4+WPt6qyEFM%Twzo1!gTa_eU#5r0@tXyi$6UW?zw7ByjG-mo#C*mPT3=&?eJGR$vx{2#Glc~F=i_2(&0mz6{r&c(~w1|dQnm3m~K!-pMoJFFfaDOl#nXh_511L_+7)l zciX;$4tJ^Yq4zLsW?rLm>~^eQ5wED?1`3U-o|GRL3FD?kSL#lO{D%qCU(>$j>Y8f4 zbQmmP)reA>d&*f#P(^eMVAxo^oOofkEn~6Og<%z-<@&EfLaT z>lYAC4MwGKQE(FU#E{Cv;)IEdo(kQ?cI9#n!zIGi#1|>{!S&^p_kVnxSMjS0GT+9@ z!02>m*!>t&9xeQWAhP|3$_zab6Lrb>3C#3E;pzyrvkbJd_nm$~1iSvHVO3Y|3iu&N z=Jvk1H)Oz{!c;$a(q~{o52AA2*nyJ*WxH#I*KaD<*`C*z$Ss&5K$mTyo{j2styh6g zQ&|~b#DQ>#=+iz|F~A0r&<8;XcLqp%K`#JzQ-ZYqcR`aNOB*zz8E9}BkESLe9@Ct~ zTraRSf0tyXsFSBVjm=fU{|~jE$^1wls|x>B;eC6Wt0@3<#|Z(|w>6T7#hGhXw}fMg zcRzGY2%(tZ18Hy`jnLehO1q-Ey0(=O>1S@7X6QFIT=bYKs*5>;+Kl~hWPwJ$M zJ-X}LSg@r#29+r&dwsXRBRpORb?4HyK<|U6nD)U-BONQ}-*qb`@KyvFP$NP@Ula00 zd?TrD;@+#*=ik(o%#ERcxjDil^(iT<-Jf23|AwaK=15)-V4{IRBu}&7Q@}c-{Fq0gI8bJw@w3;{l=`c9Q4i~d| zK7}s)WrI&~qPjE7IUbA~2C^u`oFEh$Yd}tLlGWMZ};Y)TD{~C+{fPcZ2 z1CG&}1a_4XX(=ra*UEjaxrrpTPTL4-N;Ub5FA5D@Y2*T zn>WwE%^6@?eA{0}*V14uM(IFlr5NI`{9XOV4MZ}Az)Bvop#a{Jy=c>VDh!h&!Ar@i zbYgA~g^GoxGPTJ`bALrUc}58S;%n?y#`tL(K3!aJ1w;RiuF8ek-rvUfO{)6>UoxeOZ1PR2-)NVXRt7 zN=$IBbxa++Ksc*Mml7_xOq7lSct*j<$Um^gPLuqK!@O+&UX9*k2GWgG;LkUT=CG}W zdzO6e2DLnME65ETTw7vLXlBd$8NhhJe*onijA;UNGz;KMBwqz^ksyM-YF_6IB`}=K zvEF4o5!c6w@eK?N0zfB>9M#_%Vgj>*0B(ReVSq}ZmAYg19@8ggv9*f-tdW&FtwfK! zqi~YS)Jg-BIG{W3k}ubDW7giROGIOr%NT)EAHqp5wkSw_yN@(WKs}rb+vF=ff_2#n zUCOjpN`{zVQ{?$d{X2>%#jj%>Gv9rL_Kjxlef?B)qc6P5o{%=%dUMo$0Suk5C!XBu z*f#mXi9UEyNi?<}sYgsIvvP~4<#tw|vMI}3D0z^1T+H|Nk|It+YoA|TrheIEp1@jP zHY1Mz`Cwg$ak`G5_0coz+t2bI+7P&7xsOhc&Nm4UuB~0pStS^HsdD@-Uy#U8SBER1 ztnr4naa?;N;Z?RsMH0ruE25%@aET(kiGo5m!UHhLBP>NkV*o&_6&4NrloSn0^EVa| z4@wv)!$$q^KUE}^ooMiw1;9d(hexAX`&^EGy5#9WQbpoJ1-&1-!vAOn-Car#1rBE$ zwUY`9$2qGev!6dd2iFun>(;5+U4VaOZ-3@1i099QVM{eCb@o5bLyj048?D<){<5vv zOE*yDzq5+^ZVM;{p6t_nuUK+v6pQ&&2^B{e_-Fy!Gu_}}^X~NwVEX@nz~999`E}?@ zxd@8N--%{*U1=$HfotX~l%M}HPjs)ZXO)(gVqoFQz)&1iiz{uxdEcsbbz0Kq^LMbv zF5mHu?d|VujDJi=5O5#bST)Wb4Sn+L(hbEzo@7@&qL&s8l_0(UvT_DO4w!MG*x*J- zW3-DLXxr@P>;8zHQ#X^VG(2ip^JqN$>)-s{wGh;n%zT(K<|}0$Ds^-c+XN`nysm>t zh8~YZ^0`luI1{f(@JwjV+5}SK`H4t|3wL?iA0<{1I@w)~JccR?;G~4ge1&UJs6>H6t^lnSQST-7xX&_`@Gq91;pBWwIQDJrhErVBKpCOS=WfAE57Q|* z)EN$%Gb*;a1?N~;?uD1?;G$Y)9*3z(0x zJ+i47V&t*PjmmT>ME~DA;^;C(i(9x`GjKtA7Z5WQIS;%;R?%o3y@IV4L&D(miB_%!2k?e?^TfsIUNc!aJ z*D`Z@v^@)474TqC@Y7`R)dM^E_TfbkfL%-E$W$~`5sc{zm2PLlaEhazZV_n1w3N=B z#ID`)Z`mb3t|KqUk8;2G$Ren9hvAg{s!EDSV=POg1ZZ+$)kVDIWrRUHs7fDx#AX$W zvX75=m>cwn-`BSDNkHzn)#>5tcBGGYvgJ!Z$f-L^gec$meWAu z(^6BLz{M!60COoq4WXO@c;(os0>Lk7Z17W2NEx z`0Xwzr%aGC$vtZkU4n8~3b^ULxOdw6fi+N<7eMQAPNEM-BAm|fhjoA=p4Do8uqedZ z`=~0I0%ru5Yw7v(e`Yyds+IZiZ&@B(Y)`s+0zKC0!FnpRCPQZJu-@Pwqc+6}?ve9m zB!%NEDl|kCJ_c5Jr9)YyQAstj3p2-nOQX3X`ht48$~PnOFEu@7E?)sPfKsC!7&o$; zji5t8kXis~EiLK&&$Lo07pfy!JD7(jB})6AU=p!kxq>t@a3zCAPt(}g`1gzJOx7%YPM*; zaU?xCc^7h07$m*fkKF>+M(n^08{mxm`vgBFV?K2AVyj=$^HUI-JNw$@cQ@?G^WP>~ zFO1#*l_VVFE2R zLR1}#(Ojz%N1;k;5!neK_#gV?%0bQrXGRuehQRp)?@(i^ z`-(Fr6y~ffgcTaPSC|-FPv^^mUUe6_j$9z&78+bjyX5jEsG0g~A|&WmV*i7bW?O#a z@Gr?bZ)&`j9wfEP)mh`z+m`he-=-KkpIO|U)6&j6O)IHF9Zm7ylZYe(b?VoSu)jz< z%^*c_^F2KZV4>0a+a_|OsVgkI1ZR+(dJ4%huVu}l_Ci9Hfb)U#M%y)2)90Pmy;d4c zqvk`X8Xo??YM9>GiI#9d%joZMt{( z=j~<|(x@QbXW3`rRi%;r$>!gu`HQRB8ONhzCU$?(8P|7Pc*3^@Rh8BYxj(QhaB@B( z;Y?t62D$LDOXF zR}Ba$5M1Rjf2Sd@kHhQ2q_M)KTu>K*#|B33mxT`q^gNh54K)QA-71;o-}dFQF!C zY?N?md-_Zt6qdk%!;dNk0UIEcFH{=We@e6HDbX0Joq&EW+hu(3+SAOt#>q~sdxOvV z4X%x^G85c;&br2g=}M)aj-Kg@Fn`qf^%+-=15r~~7hm4j%Jm58y>XtN z&gA!oV*6;TNal^f8_Vxl^N-eA!MPkbx25u!Yyp}_ICtgYt~vj63ZlsMZK`i>Zvfwf zxFqszP6grSKHU4z9m6cyrL&%Kcp7jR9IcJA2@8`u#Peo&2hAL)JfMp+;)>-duPs4@ z*A{f@q?B5+kl%VFA_!G|hIKG^$(3@Oj&tZV+1S{EsN;UTEGxhqqQ=M!IxoVWrhl@j zdQP{jjQxElsk_zStu(Z@r_lC6R9YCKjDRzh()kzEj=PX>fKc*4zNXOI@(@!vJ5fYo zcGRBtDT7acVn4zJ!IDKp5AdyUvId|-N4@|+wH%KkkA@QTJ;FWT&2gxIE<5YZU~a

v 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 Rg#jD8>#$nFjN?$MP(=SVXSJ5>3+ak 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

nP@ubWZNm5tzG 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 literal 0 HcmV?d00001 diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index 55bd8e51d4..e015dc76df 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -63,6 +63,8 @@ explains how contact is defined? Do we need an equation(s) that explain what the params in pair style and coeff mean, for damping and spring constants? Or do we just want to reference the paper for that? +:c,image(JPG/pair_body_rounded.jpg) + In "Fraige"_#Fraige, the tangential friction force between two particles that are in contact is modeled differently prior to gross sliding (i.e. static friction) and during gross-sliding (kinetic friction). diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index 5f43ebee63..4c48b5c1bf 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -64,6 +64,8 @@ explains how contact is defined? Do we need an equation(s) that explain what the params in pair style and coeff mean, for damping and spring constants? Or do we just want to reference the paper for that? +:c,image(JPG/pair_body_rounded.jpg) + In "Wang"_#Wang, the tangential friction force between two particles that are in contact is modeled differently prior to gross sliding (i.e. static friction) and during gross-sliding (kinetic friction). From 27dc7f3205f5da2c7379ef3141df66546c054557 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Mon, 16 Jul 2018 11:44:45 -0500 Subject: [PATCH 282/675] Added a tex file for the equations of pair rounded/polygon and rounded/polyhedron --- doc/src/Eqs/pair_body_rounded.tex | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 doc/src/Eqs/pair_body_rounded.tex diff --git a/doc/src/Eqs/pair_body_rounded.tex b/doc/src/Eqs/pair_body_rounded.tex new file mode 100644 index 0000000000..54e095340f --- /dev/null +++ b/doc/src/Eqs/pair_body_rounded.tex @@ -0,0 +1,13 @@ +\documentstyle[12pt]{article} + +\begin{document} + +\begin{eqnarray*} + F_n &=& k_n \delta_n - c_n v_n, \qquad \delta_n \le 0 \\ + &=& -k_{na} \delta_n - c_n v_n, \qquad 0 < \delta_n \le r_c \\ + &=& 0 \qquad \qquad \qquad \qquad \delta_n > r_c \\ + F_t &=& \mu k_n \delta_n - c_t v_t, \qquad \delta_n \le 0 \\ + &=& 0 \qquad \qquad \qquad \qquad \delta_n > 0 +\end{eqnarray*} + +\end{document} From d4385ade159f0a2d163ace5fb38328e2d7d8da8e Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 16 Jul 2018 11:22:22 -0600 Subject: [PATCH 283/675] more changes to ATM source and doc file --- doc/src/Section_commands.txt | 3 +- doc/src/pair_atm.txt | 130 +++++++++++++----------------- doc/src/pair_style.txt | 1 + examples/atm/log.9Jul18.atm.g++.1 | 30 +++---- examples/atm/log.9Jul18.atm.g++.4 | 30 +++---- src/MANYBODY/pair_atm.cpp | 101 +++++++++++++---------- 6 files changed, 150 insertions(+), 145 deletions(-) diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index e44595455f..49ade2ca1b 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -582,7 +582,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "dt/reset"_fix_dt_reset.html, "efield"_fix_efield.html, "ehex"_fix_ehex.html, -"enforce2d"_fix_enforce2d.html, +"enforce2d (k)"_fix_enforce2d.html, "evaporate"_fix_evaporate.html, "external"_fix_external.html, "freeze"_fix_freeze.html, @@ -929,6 +929,7 @@ KOKKOS, o = USER-OMP, t = OPT. "adp (o)"_pair_adp.html, "airebo (oi)"_pair_airebo.html, "airebo/morse (oi)"_pair_airebo.html, +"atm"_pair_atm.html, "beck (go)"_pair_beck.html, "body"_pair_body.html, "bop"_pair_bop.html, diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index 96e002f2f8..e442c32814 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -16,7 +16,7 @@ cutoff = global cutoff for 3-body interactions (distance units) :ul [Examples:] -pair_style 2.5 +pair_style atm 2.5 pair_coeff * * * 0.072 :pre pair_style hybrid/overlay lj/cut 6.5 atm 2.5 @@ -33,106 +33,92 @@ potential for the energy E of a system of atoms as :c,image(Eqs/pair_atm.jpg) -where nu is the three-body interaction strength, -and the distances between pairs of atoms r12, r23 and r31 -and the angles gamma1, gamma2 and gamma3 -are shown at the diagram: +where nu is the three-body interaction strength. The distances +between pairs of atoms r12, r23, r31 and the angles gamma1, gamma2, +gamma3 are as shown in this diagram: :c,image(JPG/pair_atm_dia.jpg) -There is no \"central\" atom, the interaction is symmetric with respect -to permutation of atom types. +Note that for the interaction between a triplet of atoms I,J,K, there +is no "central" atom. The interaction is symmetric with respect to +permutation of the three atoms. In fact, it is computed 3 times by +the code with each of I,J,K being atom 1. Thus the nu value must be +the same for all those permutations of the atom types of I,J,K as +discussed below. The {atm} potential is typically used in combination with a two-body potential using the "pair_style hybrid/overlay"_pair_hybrid.html command as in the example above. -The potential is calculated if all three atoms are in the -"neighbor list"_neighbor.html -and the distances between atoms satisfy r12 r23 r31 > cutoff^3. +The potential for a triplet of atom is calculated only if all 3 +distances r12, r23, r31 between the 3 atoms satisfy rIJ < cutoff. 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 restart files read by the "read_restart"_read_restart.html commands: -K - the type of the third atom -nu (energy/distance^9 units) :ul +K = atom type of the third atom (1 to Ntypes) +nu = prefactor (energy/distance^9 units) :ul -For a single-atom type simulation, only a single entry is required, eg +K can be specified in one of two ways. An explicit numeric value can +be used, as in the 2nd example above. J <= K is required. LAMMPS +sets the coefficients for the other 5 symmetric interactions to the +same values. E.g. if I = 1, J = 2, K = 3, then these 6 values are set +to the specified nu: nu123, nu132, nu213, nu231, nu312, nu321. This +enforces the symmetry discussed above. -pair_coeff 1 1 1 nu :pre +A wildcard asterisk can be used for K to set the coefficients for +multiple triplets of atom types. This takes the form "*" or "*n" or +"n*" or "m*n". If N = the number of atom types, then an asterisk with +no numeric values means all types from 1 to N. A leading asterisk +means all types from 1 to n (inclusive). A trailing asterisk means +all types from n to N (inclusive). A middle asterisk means all types +from m to n (inclusive). Note that only type triplets with J <= K are +considered; if asterisks imply type triplets where K < J, they are +ignored. -where all three atoms are of type 1. -For a two-atom type simulation, more pair_coeff commands can be used. -ATM interaction is symmetric with respect to permutation of atoms, -it is necessary to provide pair_coeff command for one permutation. -For example, the command +Note that a pair_coeff command can override a previous setting for the +same I,J,K triplet. For example, these commands set nu for all I,J.K +triplets, then overwrite nu for just the I,J,K = 2,3,4 triplet: -pair_coeff 1 1 2 nu :pre +pair_coeff * * * 0.25 +pair_coeff 2 3 4 0.1 :pre -also implies +Note that for a simulation with a single atom type, only a single +entry is required, e.g. -pair_coeff 1 2 1 nu -pair_coeff 2 1 1 nu :pre +pair_coeff 1 1 1 0.25 :per -Thus, to specify all ATM interactions between two atom types (eg 1 and 2) -it is sufficient to provide four pair_coeff commands, eg: +For a simulation with two atom types, four pair_coeff commands will +specify all possible nu values: pair_coeff 1 1 1 nu1 pair_coeff 1 1 2 nu2 pair_coeff 1 2 2 nu3 pair_coeff 2 2 2 nu4 :pre -For 3 atom types, 10 pair_coeff commands -(eg 111, 112, 113, 122, 123, 133, 222, 223, 233, 333) -will describe all possible ATM interactions, etc. -It is not necessary to provide the pair_coeff commands for interactions -of all combinations of atom types: if some combination is not defined then -there is no ATM interaction for this combination and all its permutations. +For a simulation with three atom types, ten pair_coeff commands will +specify all possible nu values: --------------------- +pair_coeff 1 1 1 nu1 +pair_coeff 1 1 2 nu2 +pair_coeff 1 1 3 nu3 +pair_coeff 1 2 2 nu4 +pair_coeff 1 2 3 nu5 +pair_coeff 1 3 3 nu6 +pair_coeff 2 2 2 nu7 +pair_coeff 2 2 3 nu8 +pair_coeff 2 3 3 nu9 +pair_coeff 3 3 3 nu10 :pre -[Steve:] - -I think a better syntax for the pair coeff command might be this: - -pair_coeff I J v1 v2 ... vN - -when 1,2,...N are the number of atom types defined. -Then there be one pair_coeff command for each type pair, -the same syntax as all other potentials in LAMMPS use. - -[Sergey:] - -The reason for my original pair_coeff command syntax is that -I would like to reserve further arguments for possible extension of -ATM potential in LAMMPS to further terms in the multipole expansion of -many-body dispersion interaction. -For example, the next term would be dipole-dipole-quadrupole, it may be -activated if the next argument of pair_coeff is present -without breaking backward compatibility. - -Also, the command you propose -(i) will not account that the value of nu for different permutations -of atom types is the same, and -(ii) will make the numbering of atom types messy since there is -no requirement to supply the values of nu for all triplets. - --------------------- - -I think a better syntax for the pair coeff command might be this: - -pair_coeff I J v1 v2 ... vN - -when 1,2,...N are the number of atom types defined. -Then there be one pair_coeff command for each type pair, -the same syntax as all other potentials in LAMMPS use. - -Note that you refer to "elements", but the pair coeff command -knows nothing about elements. Only atom types. There -could be 10 atom types that all map to the same chemical -element. +By default the nu value for all triplets is set to 0.0. Thus it is +not required to provide pair_coeff commands that enumerate triplet +interactions for all K types. If some I,J,K combination is not +speficied, then there will be no 3-body ATM interactions for that +combination and all its permutations. However, as with all pair +styles, it is required to specify a pair_coeff command for all I,J +combinations, else an error will result. :line diff --git a/doc/src/pair_style.txt b/doc/src/pair_style.txt index 475761add7..7e29544a70 100644 --- a/doc/src/pair_style.txt +++ b/doc/src/pair_style.txt @@ -103,6 +103,7 @@ in the pair section of "this page"_Section_commands.html#cmd_5. "pair_style adp"_pair_adp.html - angular dependent potential (ADP) of Mishin "pair_style airebo"_pair_airebo.html - AIREBO potential of Stuart "pair_style airebo/morse"_pair_airebo.html - AIREBO with Morse instead of LJ +"pair_style atm"_pair_atm.html - Axilrod-Teller-Muto potential "pair_style beck"_pair_beck.html - Beck potential "pair_style body"_pair_body.html - interactions between body particles "pair_style bop"_pair_bop.html - BOP potential of Pettifor diff --git a/examples/atm/log.9Jul18.atm.g++.1 b/examples/atm/log.9Jul18.atm.g++.1 index 27ba23e3a9..0613533f33 100644 --- a/examples/atm/log.9Jul18.atm.g++.1 +++ b/examples/atm/log.9Jul18.atm.g++.1 @@ -26,7 +26,7 @@ Created orthogonal box = (0 0 0) to (18.3252 18.3252 18.3252) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 4000 atoms - Time spent = 0.00120211 secs + Time spent = 0.00125098 secs pair_style hybrid/overlay lj/cut 4.5 atm 2.5 pair_coeff * * lj/cut 1.0 1.0 @@ -60,26 +60,26 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 11.47 | 11.47 | 11.47 Mbytes Step Temp E_pair E_mol TotEng Press - 0 1.033 -4.5929584 0 -3.0438458 -3.6506231 - 5 1.0335109 -4.5924034 0 -3.0425247 -3.6376817 - 10 1.0347484 -4.5941952 0 -3.0424606 -3.6032204 - 15 1.0357954 -4.5962409 0 -3.0429363 -3.5421887 - 20 1.0350606 -4.595891 0 -3.0436883 -3.4478779 - 25 1.0301813 -4.5896962 0 -3.0448107 -3.3111695 -Loop time of 34.5602 on 1 procs for 25 steps with 4000 atoms + 0 1.033 -4.733482 0 -3.1843694 -3.924644 + 5 1.0335743 -4.7330528 0 -3.1830789 -3.9119065 + 10 1.0349987 -4.7346788 0 -3.1825689 -3.8769962 + 15 1.0362024 -4.7401425 0 -3.1862275 -3.8225106 + 20 1.0352365 -4.7459627 0 -3.1934962 -3.7403572 + 25 1.0295963 -4.7444397 0 -3.2004313 -3.6132651 +Loop time of 27.841 on 1 procs for 25 steps with 4000 atoms -Performance: 124.999 tau/day, 0.723 timesteps/s +Performance: 155.167 tau/day, 0.898 timesteps/s 100.0% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 34.556 | 34.556 | 34.556 | 0.0 | 99.99 +Pair | 27.837 | 27.837 | 27.837 | 0.0 | 99.99 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.001323 | 0.001323 | 0.001323 | 0.0 | 0.00 -Output | 0.00018287 | 0.00018287 | 0.00018287 | 0.0 | 0.00 -Modify | 0.0016184 | 0.0016184 | 0.0016184 | 0.0 | 0.00 -Other | | 0.0006311 | | | 0.00 +Comm | 0.0015321 | 0.0015321 | 0.0015321 | 0.0 | 0.01 +Output | 0.00016594 | 0.00016594 | 0.00016594 | 0.0 | 0.00 +Modify | 0.001785 | 0.001785 | 0.001785 | 0.0 | 0.01 +Other | | 0.0006731 | | | 0.00 Nlocal: 4000 ave 4000 max 4000 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -97,4 +97,4 @@ Dangerous builds = 0 Please see the log.cite file for references relevant to this simulation -Total wall time: 0:00:36 +Total wall time: 0:00:29 diff --git a/examples/atm/log.9Jul18.atm.g++.4 b/examples/atm/log.9Jul18.atm.g++.4 index 300f82d581..5627348fab 100644 --- a/examples/atm/log.9Jul18.atm.g++.4 +++ b/examples/atm/log.9Jul18.atm.g++.4 @@ -26,7 +26,7 @@ Created orthogonal box = (0 0 0) to (18.3252 18.3252 18.3252) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 4000 atoms - Time spent = 0.000735998 secs + Time spent = 0.000769138 secs pair_style hybrid/overlay lj/cut 4.5 atm 2.5 pair_coeff * * lj/cut 1.0 1.0 @@ -60,26 +60,26 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 5.532 | 5.532 | 5.532 Mbytes Step Temp E_pair E_mol TotEng Press - 0 1.033 -4.5929584 0 -3.0438458 -3.6506231 - 5 1.0335109 -4.5924034 0 -3.0425247 -3.6376817 - 10 1.0347484 -4.5941952 0 -3.0424606 -3.6032204 - 15 1.0357954 -4.5962409 0 -3.0429363 -3.5421887 - 20 1.0350606 -4.595891 0 -3.0436883 -3.4478779 - 25 1.0301813 -4.5896962 0 -3.0448107 -3.3111695 -Loop time of 10.061 on 4 procs for 25 steps with 4000 atoms + 0 1.033 -4.733482 0 -3.1843694 -3.924644 + 5 1.0335743 -4.7330528 0 -3.1830789 -3.9119065 + 10 1.0349987 -4.7346788 0 -3.1825689 -3.8769962 + 15 1.0362024 -4.7401425 0 -3.1862275 -3.8225106 + 20 1.0352365 -4.7459627 0 -3.1934962 -3.7403572 + 25 1.0295963 -4.7444397 0 -3.2004313 -3.6132651 +Loop time of 7.22029 on 4 procs for 25 steps with 4000 atoms -Performance: 429.382 tau/day, 2.485 timesteps/s +Performance: 598.314 tau/day, 3.462 timesteps/s 100.0% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 9.8393 | 9.9439 | 10.008 | 2.0 | 98.84 +Pair | 7.1346 | 7.1684 | 7.1863 | 0.8 | 99.28 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.052154 | 0.11613 | 0.22077 | 18.7 | 1.15 -Output | 7.2241e-05 | 8.2552e-05 | 0.00011158 | 0.0 | 0.00 -Modify | 0.00053763 | 0.00055265 | 0.00056624 | 0.0 | 0.01 -Other | | 0.0002971 | | | 0.00 +Comm | 0.032945 | 0.0509 | 0.084664 | 9.1 | 0.70 +Output | 0.00010133 | 0.00011051 | 0.00013804 | 0.0 | 0.00 +Modify | 0.00059557 | 0.00060683 | 0.00061274 | 0.0 | 0.01 +Other | | 0.000318 | | | 0.00 Nlocal: 1000 ave 1000 max 1000 min Histogram: 4 0 0 0 0 0 0 0 0 0 @@ -97,4 +97,4 @@ Dangerous builds = 0 Please see the log.cite file for references relevant to this simulation -Total wall time: 0:00:10 +Total wall time: 0:00:07 diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index 0db076acd0..2ba8912899 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -61,10 +61,12 @@ PairATM::PairATM(LAMMPS *lmp) : Pair(lmp) PairATM::~PairATM() { if (copymode) return; + if (allocated) { - memory->destroy(nu); memory->destroy(setflag); memory->destroy(cutsq); + + memory->destroy(nu); } } @@ -89,6 +91,8 @@ void PairATM::compute(int eflag, int vflag) double **f = atom->f; int *type = atom->type; + double cutoffsq = cut_global*cut_global; + inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -127,10 +131,11 @@ void PairATM::compute(int eflag, int vflag) rjk2 = rjk[0]*rjk[0] + rjk[1]*rjk[1] + rjk[2]*rjk[2]; r6 = rij2*rik2*rjk2; - if (r6 > cut_sixth) continue; + if (r6 > cutoffsq) continue; nu_local = nu[type[i]][type[j]][type[k]]; if (nu_local == 0.0) continue; + interaction_ddd(nu_local, r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); @@ -152,32 +157,50 @@ void PairATM::compute(int eflag, int vflag) if (vflag_fdotr) virial_fdotr_compute(); } +/* ---------------------------------------------------------------------- */ + +void PairATM::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(nu,n+1,n+1,n+1,"pair:nu"); + + // initialize all nu values to 0.0 + + for (int i = 1; i <= n; i++) + for (int j = 1; j <= n; j++) + for (int k = 1; k <= n; k++) + nu[i][j][k] = 0.0; +} + /* ---------------------------------------------------------------------- - reads the input script line with arguments you define + global settings ------------------------------------------------------------------------- */ void PairATM::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); + cut_global = force->numeric(FLERR,arg[0]); } /* ---------------------------------------------------------------------- - set coefficients for one i,j,k type triplet + set coefficients for one I,J,K type triplet ------------------------------------------------------------------------- */ void PairATM::coeff(int narg, char **arg) { - if (narg != 4) - error->all(FLERR,"Incorrect args for pair coefficients"); + if (narg != 4) error->all(FLERR,"Incorrect args for pair coefficients"); if (!allocated) allocate(); - int n = atom->ntypes; - for (int i = 0; i <= n; i++) - for (int j = 0; j <= n; j++) - for (int k = 0; k <= n; k++) - nu[i][j][k] = 0.0; - int ilo,ihi,jlo,jhi,klo,khi; force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); @@ -185,16 +208,11 @@ void PairATM::coeff(int narg, char **arg) double nu_one = force->numeric(FLERR,arg[3]); - cut_sixth = cut_global*cut_global; - cut_sixth = cut_sixth*cut_sixth*cut_sixth; - int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j<=jhi; j++) { for (int k = MAX(klo,j); k<=khi; k++) { - nu[i][j][k] = nu[i][k][j] = - nu[j][i][k] = nu[j][k][i] = - nu[k][i][j] = nu[k][j][i] = nu_one; + nu[i][j][k] = nu_one; count++; } setflag[i][j] = 1; @@ -211,18 +229,28 @@ void PairATM::coeff(int narg, char **arg) void PairATM::init_style() { // need a full neighbor list + int irequest = neighbor->request(this,instance_me); neighbor->requests[irequest]->half = 0; neighbor->requests[irequest]->full = 1; } /* ---------------------------------------------------------------------- - perform initialization for one i,j type pair + init for one i,j type pair and corresponding j,i + also for all k type permutations ------------------------------------------------------------------------- */ double PairATM::init_one(int i, int j) { if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + // set all 6 symmetric permutations of I,J,K types to same nu value + + int ntypes = atom->ntypes; + for (int k = j; k <= ntypes; k++) + nu[i][k][j] = nu[j][i][k] = nu[j][k][i] = nu[k][i][j] = nu[k][j][i] = + nu[i][j][k]; + return cut_global; } @@ -239,7 +267,7 @@ void PairATM::write_restart(FILE *fp) for (j = i; j <= atom->ntypes; j++) { fwrite(&setflag[i][j],sizeof(int),1,fp); if (setflag[i][j]) - for (k = i; k <= atom->ntypes; k++) + for (k = j; k <= atom->ntypes; k++) fwrite(&nu[i][j][k],sizeof(double),1,fp); } } @@ -260,7 +288,7 @@ void PairATM::read_restart(FILE *fp) 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]) for (k = i; k <= atom->ntypes; k++) { + if (setflag[i][j]) for (k = j; k <= atom->ntypes; k++) { if (me == 0) fread(&nu[i][j][k],sizeof(double),1,fp); MPI_Bcast(&nu[i][j][k],1,MPI_DOUBLE,0,world); } @@ -288,25 +316,14 @@ void PairATM::read_restart_settings(FILE *fp) MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); } -/* ---------------------------------------------------------------------- */ - -void PairATM::allocate() -{ - allocated = 1; - int n = atom->ntypes; - memory->create(nu,n+1,n+1,n+1,"pair:a"); - memory->create(setflag,n+1,n+1,"pair:setflag"); - memory->create(cutsq,n+1,n+1,"pair:cutsq"); -} - /* ---------------------------------------------------------------------- Axilrod-Teller-Muto (dipole-dipole-dipole) potential ------------------------------------------------------------------------- */ void PairATM::interaction_ddd(double nu, - double r6, double rij2, double rik2, double rjk2, - double *rij, double *rik, double *rjk, - double *fj, double *fk, int eflag, double &eng) + double r6, double rij2, double rik2, double rjk2, + double *rij, double *rik, double *rjk, + double *fj, double *fk, int eflag, double &eng) { double r5inv,rri,rrj,rrk,rrr; r5inv = nu / (r6*r6*sqrt(r6)); @@ -314,14 +331,14 @@ void PairATM::interaction_ddd(double nu, rrj = rij[0]*rjk[0] + rij[1]*rjk[1] + rij[2]*rjk[2]; rrk = rjk[0]*rik[0] + rjk[1]*rik[1] + rjk[2]*rik[2]; rrr = 5.0*rri*rrj*rrk; - for (int i=0; i<3; i++) { - fj[i] = rrj*(rrk - rri)*rik[i] - - (rrk*rri - rjk2*rik2 + rrr/rij2)*rij[i] - + (rrk*rri - rik2*rij2 + rrr/rjk2)*rjk[i]; + for (int i = 0; i < 3; i++) { + fj[i] = rrj*(rrk - rri)*rik[i] - + (rrk*rri - rjk2*rik2 + rrr/rij2) * rij[i] + + (rrk*rri - rik2*rij2 + rrr/rjk2) * rjk[i]; fj[i] *= 3.0*r5inv; - fk[i] = rrk*(rri + rrj)*rij[i] - + (rri*rrj + rik2*rij2 - rrr/rjk2)*rjk[i] - + (rri*rrj + rij2*rjk2 - rrr/rik2)*rik[i]; + fk[i] = rrk*(rri + rrj)*rij[i] + + (rri*rrj + rik2*rij2 - rrr/rjk2) * rjk[i] + + (rri*rrj + rij2*rjk2 - rrr/rik2) * rik[i]; fk[i] *= 3.0*r5inv; } if (eflag) eng = (r6 - 0.6*rrr)*r5inv; From cfa6e8717d2dfd9c5ec2c93dfafdd88de2d8dfb1 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Mon, 16 Jul 2018 12:45:23 -0500 Subject: [PATCH 284/675] Updated doc pages for pair body rounded/polygon and rounded/polyhedron with equations --- doc/src/Eqs/pair_body_rounded.jpg | Bin 0 -> 146978 bytes doc/src/pair_body_rounded_polygon.txt | 8 ++++---- doc/src/pair_body_rounded_polyhedron.txt | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 doc/src/Eqs/pair_body_rounded.jpg diff --git a/doc/src/Eqs/pair_body_rounded.jpg b/doc/src/Eqs/pair_body_rounded.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e7136ddd20c2acea0e89fa8412497333f15cb541 GIT binary patch literal 146978 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

&mla2Bv-j9_LOV>rgc(FYfl_PM7S)w>bPe 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 Date: Mon, 16 Jul 2018 15:21:52 -0400 Subject: [PATCH 285/675] add support for restarting extra/XXX/per/atom settings in binary restarts --- src/read_restart.cpp | 15 ++++++++++++++- src/write_restart.cpp | 10 +++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/read_restart.cpp b/src/read_restart.cpp index 1164de6faa..7d8e6ca395 100644 --- a/src/read_restart.cpp +++ b/src/read_restart.cpp @@ -62,7 +62,9 @@ enum{VERSION,SMALLINT,TAGINT,BIGINT, MULTIPROC,MPIIO,PROCSPERFILE,PERPROC, IMAGEINT,BOUNDMIN,TIMESTEP, ATOM_ID,ATOM_MAP_STYLE,ATOM_MAP_USER,ATOM_SORTFREQ,ATOM_SORTBIN, - COMM_MODE,COMM_CUTOFF,COMM_VEL,NO_PAIR}; + COMM_MODE,COMM_CUTOFF,COMM_VEL,NO_PAIR, + EXTRA_BOND_PER_ATOM,EXTRA_ANGLE_PER_ATOM,EXTRA_DIHEDRAL_PER_ATOM, + EXTRA_IMPROPER_PER_ATOM,EXTRA_SPECIAL_PER_ATOM}; #define LB_FACTOR 1.1 @@ -914,6 +916,17 @@ void ReadRestart::header(int incompatible) } else if (flag == COMM_VEL) { comm->ghost_velocity = read_int(); + } else if (flag == EXTRA_BOND_PER_ATOM) { + atom->extra_bond_per_atom = read_int(); + } else if (flag == EXTRA_ANGLE_PER_ATOM) { + atom->extra_angle_per_atom = read_int(); + } else if (flag == EXTRA_DIHEDRAL_PER_ATOM) { + atom->extra_dihedral_per_atom = read_int(); + } else if (flag == EXTRA_IMPROPER_PER_ATOM) { + atom->extra_improper_per_atom = read_int(); + } else if (flag == EXTRA_SPECIAL_PER_ATOM) { + force->special_extra = read_int(); + } else error->all(FLERR,"Invalid flag in header section of restart file"); flag = read_int(); diff --git a/src/write_restart.cpp b/src/write_restart.cpp index 69b731870d..1bfbb382a8 100644 --- a/src/write_restart.cpp +++ b/src/write_restart.cpp @@ -61,7 +61,9 @@ enum{VERSION,SMALLINT,TAGINT,BIGINT, MULTIPROC,MPIIO,PROCSPERFILE,PERPROC, IMAGEINT,BOUNDMIN,TIMESTEP, ATOM_ID,ATOM_MAP_STYLE,ATOM_MAP_USER,ATOM_SORTFREQ,ATOM_SORTBIN, - COMM_MODE,COMM_CUTOFF,COMM_VEL,NO_PAIR}; + COMM_MODE,COMM_CUTOFF,COMM_VEL,NO_PAIR, + EXTRA_BOND_PER_ATOM,EXTRA_ANGLE_PER_ATOM,EXTRA_DIHEDRAL_PER_ATOM, + EXTRA_IMPROPER_PER_ATOM,EXTRA_SPECIAL_PER_ATOM}; /* ---------------------------------------------------------------------- */ @@ -527,6 +529,12 @@ void WriteRestart::header() write_double(COMM_CUTOFF,comm->cutghostuser); write_int(COMM_VEL,comm->ghost_velocity); + write_int(EXTRA_BOND_PER_ATOM,atom->extra_bond_per_atom); + write_int(EXTRA_ANGLE_PER_ATOM,atom->extra_angle_per_atom); + write_int(EXTRA_DIHEDRAL_PER_ATOM,atom->extra_dihedral_per_atom); + write_int(EXTRA_IMPROPER_PER_ATOM,atom->extra_improper_per_atom); + write_int(EXTRA_SPECIAL_PER_ATOM,force->special_extra); + // -1 flag signals end of header int flag = -1; From 5abbea360626d02a439daf40309f1b4e13861fff Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 16 Jul 2018 14:52:18 -0600 Subject: [PATCH 286/675] doc file changes/Qs added for body DEM particles --- doc/src/JPG/pair_body_rounded.jpg | Bin 0 -> 35619 bytes doc/src/JPG/pair_body_rounded.png | Bin 650896 -> 0 bytes doc/src/body.txt | 61 ++++++++++++--------- doc/src/pair_body_rounded_polygon.txt | 67 +++++++++++++++-------- doc/src/pair_body_rounded_polyhedron.txt | 34 +++++++++--- 5 files changed, 105 insertions(+), 57 deletions(-) create mode 100644 doc/src/JPG/pair_body_rounded.jpg delete mode 100644 doc/src/JPG/pair_body_rounded.png diff --git a/doc/src/JPG/pair_body_rounded.jpg b/doc/src/JPG/pair_body_rounded.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cd745c44e27e96585be021b3dcca342f686e15e9 GIT binary patch literal 35619 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

nP@ubWZNm5tzG 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 diff --git a/doc/src/body.txt b/doc/src/body.txt index 0e64e6ad5b..be5b3d4edf 100644 --- a/doc/src/body.txt +++ b/doc/src/body.txt @@ -27,9 +27,9 @@ styles supported by LAMMPS are as follows. The name in the first column is used as the {bstyle} argument for the "atom_style body"_atom_style.html command. -{nparticle} | rigid body with N sub-particles | -{rounded/polygon} | 2d polygons with N vertices :tb(c=2,s=|) -{rounded/polyhedron} | 3d polyhedra with N vertices, E edges and F faces :tb(c=2,s=|) +{nparticle} : rigid body with N sub-particles +{rounded/polygon} : 2d polygons with N vertices +{rounded/polyhedron} : 3d polyhedra with N vertices, E edges and F faces :tb(s=:) The body style determines what attributes are stored for each body and thus how they can be used to compute pairwise body/body or @@ -180,11 +180,11 @@ The {bflag2} argument is ignored. The {rounded/polygon} body style represents body particles as a 2d polygon with a variable number of N vertices. This style can only be -used for 2d models; see the "boundary"_boundary.html command. +used for 2d models; see the "boundary"_boundary.html command. See the +"pair_style body/rounded/polygon" doc page for a diagram of two +squares with rounded circles at the vertices. Special cases for N = 1 +(circle) and N = 2 (rod with rounded ends) can also be specified. -NOTE: include a diagram of a rounded polygon body particle - -Special cases for N = 1 (spheres) and N = 2 (rods) are also included. One use of this body style is for 2d discrete element models, as described in "Fraige"_#Fraige. @@ -220,9 +220,9 @@ vertices (x1 to zN) as 3N values (with z = 0.0 for each), followed by 2N vertex indices corresponding to the end points of the N edges, followed by a single diameter value = the rounded diameter of the circle that surrounds each vertex. The diameter value can be different -for each body particle. These floating-point values can be -listed on as many lines as you wish; see the -"read_data"_read_data.html command for more details. +for each body particle. These floating-point values can be listed on +as many lines as you wish; see the "read_data"_read_data.html command +for more details. The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the values consistent with the current orientation of the rigid body @@ -235,9 +235,10 @@ position of the particle is specified by the x,y,z values in the {Atoms} section of the data file. For example, the following information would specify a square particle -whose edge length is sqrt(2) and rounded diameter is 1.0 in length unit -and initial orientation is determined from the 6 moments of inertia -(ixx iyy izz ixy ixz iyz): +whose edge length is sqrt(2) and rounded diameter is 1.0. The +orientation of the square is aligned with the xy coordinate axes which +is consistent with the 6 moments of inertia: ixx iyy izz ixy ixz iyz = +1 1 4 0 0 0. 3 1 27 4 @@ -265,14 +266,14 @@ body particles with a wall. The {rounded/polyhedron} body style represents body particles as a 3d polyhedron with a variable number of N vertices, E edges and F faces. This style can only be used for 3d models; see the -"boundary"_boundary.html command. +"boundary"_boundary.html command. See the "pair_style +body/rounded/polygon" doc page for a diagram of a two 2d squares with +rounded circles at the vertices. A 3d cube with rounded spheres +at the 8 vertices and 12 rounded edges would be similar. -NOTE: include a diagram of a rounded polyhedron body particle - -NOTE: 2d objects can also be specified as a special case, e.g. -for a triangle, N = 3, E = 3 and F = 1. - -Special cases for N = 1 (spheres) and N = 2 (rods) are also valid. +TRUNG: What are the special cases allowed for 3d, if any? Similar to +the N=1 (sphere) and N=2 (rod) special cases for 2d, descibed in +previous section. This body style is for 3d discrete element models, as described in "Wang"_#Wang. @@ -316,9 +317,9 @@ moments of inertia followed by the coordinates of the N vertices (x1 to zN) as 3N values, followed by 2N vertex indices corresponding to the end points of the E edges, then 4*F vertex indices defining F faces. The last value is the diameter value = the rounded diameter of -the sphere that surrounds each vertex. The diameter value can be different -for each body particle. These floating-point values -can be listed on as many lines as you wish; see the +the sphere that surrounds each vertex. The diameter value can be +different for each body particle. These floating-point values can be +listed on as many lines as you wish; see the "read_data"_read_data.html command for more details. Because the maxmimum vertices per face is hard-coded to be 4 (i.e. quadrilaterals), faces with more than 4 vertices need to be @@ -340,9 +341,10 @@ position of the particle is specified by the x,y,z values in the {Atoms} section of the data file. For example, the following information would specify a cubic particle -whose edge length is 2.0 and rounded diameter is 0.5 in length unit -and initial orientation is determined from the 6 moments of inertia -(ixx iyy izz ixy ixz iyz): +whose edge length is 2.0 and rounded diameter is 0.5. +The orientation of the cube is aligned with the xyz coordinate axes +which is consistent with the 6 moments of inertia: ixx iyy izz ixy ixz +iyz = 0.667 0.667 0.667 0 0 0. 1 3 79 8 12 6 @@ -375,6 +377,13 @@ and initial orientation is determined from the 6 moments of inertia 3 0 4 7 0.5 :pre +The "pair_style +body/rounded/polhedron"_pair_body_rounded_polyhedron.html command can +be used with this body style to compute body/body interactions. The +"fix wall/body/polyhedron"_fix_wall_body_polygon.html command can be +used with this body style to compute the interaction of body particles +with a wall. + :line For output purposes via the "compute diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index d611e8ec98..588a7d6ff9 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -28,9 +28,9 @@ pair_coeff 1 1 100.0 1.0 :pre Style {body/rounded/polygon} is for use with 2d models of body particles of style {rounded/polygon}. It calculates pairwise -body/body interactions as well as interactions between body and -point-particles. See "Section 6.14"_Section_howto.html#howto_14 of -the manual and the "body"_body.html doc page for more details on using +body/body interactions as well as interactions between body and point +particles. See "Section 6.14"_Section_howto.html#howto_14 of the +manual and the "body"_body.html doc page for more details on using body particles. This pairwise interaction between rounded polygons is described in @@ -44,36 +44,50 @@ multiple contact points. Note that when two particles interact, the effective surface of each polygon particle is displaced outward from each of its vertices and -edges by half its circle diameter. The interaction forces and -energies between two particles are defined with respect to the -separation of their respective rounded surfaces, not by the separation -of the vertices and edges themselves. +edges by half its circle diameter (as in the diagram below of a gray +and yellow square particle). The interaction forces and energies +between two particles are defined with respect to the separation of +their respective rounded surfaces, not by the separation of the +vertices and edges themselves. This means that the specified cutoff in the pair_style command should be large enough to encompass the center-to-center distance between two -particles (at any orientation) which would produce a surface-surface -overlap. For example, consider two square particles with edge length -= 1.0 and circle diameter 0.2. The maximum distance of one polygon's -surface from its center is not sqrt(2)/2, but (sqrt(2)+0.1)/2. Thus -the cutoff distance should be sqrt(2) + 0.1, since the surfaces of two -particles that far apart could be touching. +particles (at any orientation) which would produce an overlap of the +two surfaces. For example, consider two square particles with edge +length = 1.0 and circle diameter 0.2. The maximum distance of one +polygon's surface from its center is not sqrt(2)/2, but +(sqrt(2)+0.1)/2. Thus the cutoff distance should be sqrt(2) + 0.1, +since the surfaces of two particles that far apart could be touching. -The forces between vertex-vertex, vertex-edge, vertex-face and edge-edge +The forces between vertex-vertex, vertex-edge, and edge-edge overlaps are given by: :c,image(Eqs/pair_body_rounded.jpg) :c,image(JPG/pair_body_rounded.jpg) -In "Fraige"_#Fraige, the tangential friction force between two particles -that are in contact is modeled differently prior to gross sliding -(i.e. static friction) and during gross-sliding (kinetic friction). -The latter takes place when the tangential deformation exceeds -the Coulomb frictional limit. In the current implementation, however, -we do not take into account frictional history, i.e. we do not keep track -of how many time steps the two particles have been in contact -nor calculate the tangential deformation. We assume that gross sliding -takes place right when two particles are in contact. +In "Fraige"_#Fraige, the tangential friction force between two +particles that are in contact is modeled differently prior to gross +sliding (i.e. static friction) and during gross-sliding (kinetic +friction). The latter takes place when the tangential deformation +exceeds the Coulomb frictional limit. In the current implementation, +however, we do not take into account frictional history, i.e. we do +not keep track of how many time steps the two particles have been in +contact nor calculate the tangential deformation. Instead, we assume +that gross sliding takes place as soon as two particles are in +contact. + +TRUNG: The diagram label "cohesive regions" confuses me. Are you +saying there is some distance d for which the force is attractive, +i.e. the particles are cohesive? I think when d > Ri + Rj, since Ri + +Rj is the surface/surface overlap discussed above? If so, then the +discussion above about the specified cutoff is wrong? I.e. you can +specify a large cutoff than the surface/surface overlap to get +cohesive interactions? If so, this should be explained up above. +But an additional confusion is that the specied cutoff (Rc in diagram?) +is a single number, but depedning on the orientiation of the 2 +particles they might have a suface/surface overlap at a much +smaller value of Ri + Rj. So what is Rc then? The following coefficients must be defined for each pair of atom types via the "pair_coeff"_pair_coeff.html command as in the examples above, @@ -82,6 +96,13 @@ or in the data file read by the "read_data"_read_data.html command: k_n (energy/distance^2 units) k_na (energy/distance^2 units) :ul +Effectively, k_n and k_na are the slopes of the red lines in the plot +above for force versus distance, for r < 0 and 0 < r < rc +respectively. TRUNG: is this sentence correct? + +TRUNG: reminder to copy any change in this file +to the pair polyhedron file as well (and vice versa) + [Mixing, shift, table, tail correction, restart, rRESPA info]: This pair style does not support the "pair_modify"_pair_modify.html diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index 52f6294d85..621254bd72 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -33,6 +33,20 @@ point-particles. See "Section 6.14"_Section_howto.html#howto_14 of the manual and the "body"_body.html doc page for more details on using body particles. +TRUNG: I think we need a paragraph here about how body/sphere +interactions are handled. Does this pair style only do body/body but +allow for a body = sphere or rod or some other degenerate case? Or +does this pair style allow you to model a simulation of mixed body and +point particles, where point particles are spheroids. If so, does +this pair style do body/body and body/point, and you use one of the +other granular pair styles to do point/point? I.e. a pair hybrid +model? Or does everything have to be defined as bodies. Actually +this paragraph would make more sense in the body.txt file about how to +create a model that includes non-body particles (spheres). And in +this pair style file just a couple lines about which part of the +interactions this pair style computes. Ditto in the pair body polygon +file. + This pairwise interaction between rounded polyhedra is described in "Wang"_#Wang, where a polyhedron does not have sharp corners and edges, but is rounded at its vertices and edges by spheres centered on @@ -59,8 +73,8 @@ surface from its center is not sqrt(3)/2, but (sqrt(3)+0.1)/2. Thus the cutoff distance should be sqrt(3) + 0.1, since the surfaces of two particles that far apart could be touching. -The forces between vertex-vertex, vertex-edge, vertex-face, edge-edge -and edge-face are given by: +The forces between vertex-vertex, vertex-edge, vertex-face, edge-edge, +and edge-face overlaps are given by: :c,image(Eqs/pair_body_rounded.jpg) @@ -69,12 +83,12 @@ and edge-face are given by: In "Wang"_#Wang, the tangential friction force between two particles that are in contact is modeled differently prior to gross sliding (i.e. static friction) and during gross-sliding (kinetic friction). -The latter takes place when the tangential deformation exceeds -the Coulomb frictional limit. In the current implementation, however, -we do not take into account frictional history, i.e. we do not keep track -of how many time steps the two particles have been in contact -nor calculate the tangential deformation. We assume that gross sliding -takes place right when two particles are in contact. +The latter takes place when the tangential deformation exceeds the +Coulomb frictional limit. In the current implementation, however, we +do not take into account frictional history, i.e. we do not keep track +of how many time steps the two particles have been in contact nor +calculate the tangential deformation. Instead, we assume that gross +sliding takes place as soon as two particles are in contact. The following coefficients must be defined for each pair of atom types via the "pair_coeff"_pair_coeff.html command as in the examples above, @@ -83,6 +97,10 @@ or in the data file read by the "read_data"_read_data.html command: k_n (energy/distance^2 units) k_na (energy/distance^2 units) :ul +Effectively, k_n and k_na are the slopes of the red lines in the plot +above for force versus distance, for r < 0 and 0 < r < rc +respectively. TRUNG: is this sentence correct? + [Mixing, shift, table, tail correction, restart, rRESPA info]: This pair style does not support the "pair_modify"_pair_modify.html From fa73fab5df878b29a3e121cc1655e73e718e3c05 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 16 Jul 2018 18:12:15 -0600 Subject: [PATCH 287/675] patch 16Jul18 --- doc/src/Manual.txt | 4 ++-- src/version.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index e34ec8d5ba..e69797d9ec 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ LAMMPS Users Manual - + @@ -19,7 +19,7 @@ :line LAMMPS Documentation :c,h1 -29 Jun 2018 version :c,h2 +16 Jul 2018 version :c,h2 Version info: :h3 diff --git a/src/version.h b/src/version.h index 2833430def..90a21631d9 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "29 Jun 2018" +#define LAMMPS_VERSION "16 Jul 2018" From d23788831c8833ed78b1bb603ad417e021af98d2 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Tue, 17 Jul 2018 10:54:05 -0500 Subject: [PATCH 288/675] Updated to the doc pages of body rounded/polygon and rounded/polyhedra and the pair style: + added examples for special cases with disks and rods for 2d, and spheres and rods for 3d, + corrected the definition of the cutoff distance in pair style command --- doc/src/body.txt | 38 +++++++++++++++++++- doc/src/pair_body_rounded_polygon.txt | 45 +++++++++++++----------- doc/src/pair_body_rounded_polyhedron.txt | 18 ++++------ 3 files changed, 68 insertions(+), 33 deletions(-) diff --git a/doc/src/body.txt b/doc/src/body.txt index be5b3d4edf..85095f7fb6 100644 --- a/doc/src/body.txt +++ b/doc/src/body.txt @@ -238,7 +238,7 @@ For example, the following information would specify a square particle whose edge length is sqrt(2) and rounded diameter is 1.0. The orientation of the square is aligned with the xy coordinate axes which is consistent with the 6 moments of inertia: ixx iyy izz ixy ixz iyz = -1 1 4 0 0 0. +1 1 4 0 0 0. Note that only Izz matters in 2D simulations. 3 1 27 4 @@ -253,6 +253,24 @@ is consistent with the 6 moments of inertia: ixx iyy izz ixy ixz iyz = 3 0 1.0 :pre +A rod in 2D, whose length is 4.0, mass 1.0, rounded at two ends +by circles of diameter 0.5, is specified as follows: + +1 1 13 +2 +1 1 1.33333 0 0 0 +-2 0 0 +2 0 0 +0.5 :pre + +A disk, whose diameter is 3.0, mass 1.0, is specified as follows: + +1 1 10 +1 +1 1 4.5 0 0 0 +0 0 0 +3.0 :pre + The "pair_style body/rounded/polygon"_pair_body_rounded_polygon.html command can be used with this body style to compute body/body interactions. The "fix wall/body/polygon"_fix_wall_body_polygon.html @@ -377,6 +395,24 @@ iyz = 0.667 0.667 0.667 0 0 0. 3 0 4 7 0.5 :pre +A rod in 3D, whose length is 4.0, mass 1.0 and rounded at two ends +by circles of diameter 0.5, is specified as follows: + +1 1 13 +2 +0 1.33333 1.33333 0 0 0 +-2 0 0 +2 0 0 +0.5 :pre + +A sphere whose diameter is 3.0 and mass 1.0, is specified as follows: + +1 1 10 +1 +0.9 0.9 0.9 0 0 0 +0 0 0 +3.0 :pre + The "pair_style body/rounded/polhedron"_pair_body_rounded_polyhedron.html command can be used with this body style to compute body/body interactions. The diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index 588a7d6ff9..b4135a4065 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -29,9 +29,10 @@ pair_coeff 1 1 100.0 1.0 :pre Style {body/rounded/polygon} is for use with 2d models of body particles of style {rounded/polygon}. It calculates pairwise body/body interactions as well as interactions between body and point -particles. See "Section 6.14"_Section_howto.html#howto_14 of the +particles (modeled as disks with a specified diameter). +See "Section 6.14"_Section_howto.html#howto_14 of the manual and the "body"_body.html doc page for more details on using -body particles. +body rounded/polygon particles. This pairwise interaction between rounded polygons is described in "Fraige"_#Fraige, where a polygon does not have sharp corners, but is @@ -50,14 +51,8 @@ between two particles are defined with respect to the separation of their respective rounded surfaces, not by the separation of the vertices and edges themselves. -This means that the specified cutoff in the pair_style command should -be large enough to encompass the center-to-center distance between two -particles (at any orientation) which would produce an overlap of the -two surfaces. For example, consider two square particles with edge -length = 1.0 and circle diameter 0.2. The maximum distance of one -polygon's surface from its center is not sqrt(2)/2, but -(sqrt(2)+0.1)/2. Thus the cutoff distance should be sqrt(2) + 0.1, -since the surfaces of two particles that far apart could be touching. +This means that the specified cutoff in the pair_style command is +the cutoff distance, r_c, for the surface separation, \delta_n (see figure below). The forces between vertex-vertex, vertex-edge, and edge-edge overlaps are given by: @@ -66,17 +61,6 @@ are given by: :c,image(JPG/pair_body_rounded.jpg) -In "Fraige"_#Fraige, the tangential friction force between two -particles that are in contact is modeled differently prior to gross -sliding (i.e. static friction) and during gross-sliding (kinetic -friction). The latter takes place when the tangential deformation -exceeds the Coulomb frictional limit. In the current implementation, -however, we do not take into account frictional history, i.e. we do -not keep track of how many time steps the two particles have been in -contact nor calculate the tangential deformation. Instead, we assume -that gross sliding takes place as soon as two particles are in -contact. - TRUNG: The diagram label "cohesive regions" confuses me. Are you saying there is some distance d for which the force is attractive, i.e. the particles are cohesive? I think when d > Ri + Rj, since Ri + @@ -89,6 +73,25 @@ is a single number, but depedning on the orientiation of the 2 particles they might have a suface/surface overlap at a much smaller value of Ri + Rj. So what is Rc then? +Note that F_n and F_t are functions of the surface separation +\delta_n = d - (R_i + R_j). +In this model, when (R_i + R_j) < d < (R_i + R_j) + r_c, that is, +0 < \delta_n < r_c, the cohesive region of the two surfaces overlap +and the two surfaces are attractive to each other. + + +In "Fraige"_#Fraige, the tangential friction force between two +particles that are in contact is modeled differently prior to gross +sliding (i.e. static friction) and during gross-sliding (kinetic +friction). The latter takes place when the tangential deformation +exceeds the Coulomb frictional limit. In the current implementation, +however, we do not take into account frictional history, i.e. we do +not keep track of how many time steps the two particles have been in +contact nor calculate the tangential deformation. Instead, we assume +that gross sliding takes place as soon as two particles are in +contact. + + The following coefficients must be defined for each pair of atom types via the "pair_coeff"_pair_coeff.html command as in the examples above, or in the data file read by the "read_data"_read_data.html command: diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index 621254bd72..3f0a2403d0 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -29,9 +29,10 @@ pair_coeff 1 1 100.0 1.0 :pre Style {body/rounded/polygon} is for use with 3d models of body particles of style {rounded/polyhedron}. It calculates pairwise body/body interactions as well as interactions between body and -point-particles. See "Section 6.14"_Section_howto.html#howto_14 of +point-particles (modeled as spheres with a specified diameter). +See "Section 6.14"_Section_howto.html#howto_14 of the manual and the "body"_body.html doc page for more details on using -body particles. +body rounded/polyhedron particles. TRUNG: I think we need a paragraph here about how body/sphere interactions are handled. Does this pair style only do body/body but @@ -47,7 +48,7 @@ this pair style file just a couple lines about which part of the interactions this pair style computes. Ditto in the pair body polygon file. -This pairwise interaction between rounded polyhedra is described in +This pairwise interaction between the rounded polyhedra is described in "Wang"_#Wang, where a polyhedron does not have sharp corners and edges, but is rounded at its vertices and edges by spheres centered on each vertex with a specified diameter. The edges if the polyhedron @@ -57,6 +58,7 @@ in the data file read by the "read data"_read_data.html command. This is a discrete element model (DEM) which allows for multiple contact points. + Note that when two particles interact, the effective surface of each polyhedron particle is displaced outward from each of its vertices, edges, and faces by half its sphere diameter. The interaction forces @@ -64,14 +66,8 @@ and energies between two particles are defined with respect to the separation of their respective rounded surfaces, not by the separation of the vertices, edges, and faces themselves. -This means that the specified cutoff in the pair_style command should -be large enough to encompass the center-to-center distance between two -particles (at any orientation) which would produce a surface-surface -overlap. For example, consider two cubic particles with edge length = -1.0 and sphere diameter 0.2. The maximum distance of one polygon's -surface from its center is not sqrt(3)/2, but (sqrt(3)+0.1)/2. Thus -the cutoff distance should be sqrt(3) + 0.1, since the surfaces of two -particles that far apart could be touching. +This means that the specified cutoff in the pair_style command is +the cutoff distance, r_c, for the surface separation, \delta_n (see figure below). The forces between vertex-vertex, vertex-edge, vertex-face, edge-edge, and edge-face overlaps are given by: From de69e2455102bbeffbadfa7a3a4192036aa72d6d Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Tue, 17 Jul 2018 11:05:32 -0500 Subject: [PATCH 289/675] Added replies to Steve's questions --- doc/src/pair_body_rounded_polygon.txt | 8 +++++--- doc/src/pair_body_rounded_polyhedron.txt | 10 +++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index b4135a4065..ea77fa9247 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -71,7 +71,8 @@ cohesive interactions? If so, this should be explained up above. But an additional confusion is that the specied cutoff (Rc in diagram?) is a single number, but depedning on the orientiation of the 2 particles they might have a suface/surface overlap at a much -smaller value of Ri + Rj. So what is Rc then? +smaller value of Ri + Rj. So what is Rc then? - I added +the following paragraph to address this. Note that F_n and F_t are functions of the surface separation \delta_n = d - (R_i + R_j). @@ -100,8 +101,9 @@ k_n (energy/distance^2 units) k_na (energy/distance^2 units) :ul Effectively, k_n and k_na are the slopes of the red lines in the plot -above for force versus distance, for r < 0 and 0 < r < rc -respectively. TRUNG: is this sentence correct? +above for force versus surface separation, for \delta_n < 0 and 0 < \delta_n < r_c +respectively. (TRUNG: is this sentence correct? - it should read delta_n, +instead of r) TRUNG: reminder to copy any change in this file to the pair polyhedron file as well (and vice versa) diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index 3f0a2403d0..cb4ec00917 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -46,7 +46,10 @@ this paragraph would make more sense in the body.txt file about how to create a model that includes non-body particles (spheres). And in this pair style file just a couple lines about which part of the interactions this pair style computes. Ditto in the pair body polygon -file. +file. - The pair style supports body/sphere and sphere/sphere +given that all the atoms should be of body rounded/polyhedron. +I updated the above paragraph and added examples in body.txt for +specifying the special objects (i.e. spheres and rods). This pairwise interaction between the rounded polyhedra is described in "Wang"_#Wang, where a polyhedron does not have sharp corners and @@ -94,8 +97,9 @@ k_n (energy/distance^2 units) k_na (energy/distance^2 units) :ul Effectively, k_n and k_na are the slopes of the red lines in the plot -above for force versus distance, for r < 0 and 0 < r < rc -respectively. TRUNG: is this sentence correct? +above for force versus surface separation, for \delta_n < 0 and 0 < \delta_n < r_c +respectively. (TRUNG: is this sentence correct? - it should read delta_n, +instead of r) [Mixing, shift, table, tail correction, restart, rRESPA info]: From 843b96e8dd579f7c02cac30948b258186664b0a0 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 18 Jul 2018 08:49:42 -0600 Subject: [PATCH 290/675] more changes to new polygon/hedron docs and command names --- doc/src/Section_commands.txt | 6 +- doc/src/body.txt | 10 ++-- ...{pair_body.txt => pair_body_nparticle.txt} | 10 ++-- doc/src/pair_body_rounded_polygon.txt | 59 ++++++++----------- doc/src/pair_body_rounded_polyhedron.txt | 50 +++++++--------- examples/body/in.body | 2 +- ...{pair_body.cpp => pair_body_nparticle.cpp} | 24 ++++---- .../{pair_body.h => pair_body_nparticle.h} | 12 ++-- 8 files changed, 81 insertions(+), 92 deletions(-) rename doc/src/{pair_body.txt => pair_body_nparticle.txt} (93%) rename src/BODY/{pair_body.cpp => pair_body_nparticle.cpp} (95%) rename src/BODY/{pair_body.h => pair_body_nparticle.h} (90%) diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index 3dabdbeaa1..3b73dee150 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -664,6 +664,8 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "vector"_fix_vector.html, "viscosity"_fix_viscosity.html, "viscous"_fix_viscous.html, +"wall/body/polygon"_fix_wall_body_polygon.html, +"wall/body/polyhedron"_fix_wall_body_polyhedron.html, "wall/colloid"_fix_wall.html, "wall/gran"_fix_wall_gran.html, "wall/gran/region"_fix_wall_gran_region.html, @@ -914,7 +916,9 @@ KOKKOS, o = USER-OMP, t = OPT. "airebo (oi)"_pair_airebo.html, "airebo/morse (oi)"_pair_airebo.html, "beck (go)"_pair_beck.html, -"body"_pair_body.html, +"body/nparticle"_pair_body_nparticle.html, +"body/rounded/polygon"_pair_body_rounded/polygon.html, +"body/rounded/polyhedron"_pair_body_rounded/polyhedron.html, "bop"_pair_bop.html, "born (go)"_pair_born.html, "born/coul/dsf"_pair_born.html, diff --git a/doc/src/body.txt b/doc/src/body.txt index 85095f7fb6..cef40cc643 100644 --- a/doc/src/body.txt +++ b/doc/src/body.txt @@ -286,12 +286,10 @@ polyhedron with a variable number of N vertices, E edges and F faces. This style can only be used for 3d models; see the "boundary"_boundary.html command. See the "pair_style body/rounded/polygon" doc page for a diagram of a two 2d squares with -rounded circles at the vertices. A 3d cube with rounded spheres -at the 8 vertices and 12 rounded edges would be similar. - -TRUNG: What are the special cases allowed for 3d, if any? Similar to -the N=1 (sphere) and N=2 (rod) special cases for 2d, descibed in -previous section. +rounded circles at the vertices. A 3d cube with rounded spheres at +the 8 vertices and 12 rounded edges would be similar. Special cases +for N = 1 (sphere) and N = 2 (rod with rounded ends) can also be +specified. This body style is for 3d discrete element models, as described in "Wang"_#Wang. diff --git a/doc/src/pair_body.txt b/doc/src/pair_body_nparticle.txt similarity index 93% rename from doc/src/pair_body.txt rename to doc/src/pair_body_nparticle.txt index 7899da832b..8c5b6e155d 100644 --- a/doc/src/pair_body.txt +++ b/doc/src/pair_body_nparticle.txt @@ -10,21 +10,21 @@ pair_style body command :h3 [Syntax:] -pair_style body cutoff :pre +pair_style body/nparticle cutoff :pre cutoff = global cutoff for interactions (distance units) [Examples:] -pair_style body 3.0 +pair_style body/nparticle 3.0 pair_coeff * * 1.0 1.0 pair_coeff 1 1 1.0 1.5 2.5 :pre [Description:] -Style {body} is for use with body particles and calculates pairwise -body/body interactions as well as interactions between body and -point-particles. See "Section 6.14"_Section_howto.html#howto_14 +Style {body/nparticle} is for use with body particles and calculates +pairwise body/body interactions as well as interactions between body +and point-particles. See "Section 6.14"_Section_howto.html#howto_14 of the manual and the "body"_body.html doc page for more details on using body particles. diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index ea77fa9247..caaa0746a1 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -28,11 +28,11 @@ pair_coeff 1 1 100.0 1.0 :pre Style {body/rounded/polygon} is for use with 2d models of body particles of style {rounded/polygon}. It calculates pairwise -body/body interactions as well as interactions between body and point -particles (modeled as disks with a specified diameter). -See "Section 6.14"_Section_howto.html#howto_14 of the -manual and the "body"_body.html doc page for more details on using -body rounded/polygon particles. +body/body interactions which can include body particles modeled as +1-vertex circular disks with a specified diameter. See "Section +6.14"_Section_howto.html#howto_14 of the manual and the +"body"_body.html doc page for more details on using body +rounded/polygon particles. This pairwise interaction between rounded polygons is described in "Fraige"_#Fraige, where a polygon does not have sharp corners, but is @@ -51,8 +51,21 @@ between two particles are defined with respect to the separation of their respective rounded surfaces, not by the separation of the vertices and edges themselves. -This means that the specified cutoff in the pair_style command is -the cutoff distance, r_c, for the surface separation, \delta_n (see figure below). +This means that the specified cutoff in the pair_style command is the +cutoff distance, r_c, for the surface separation, \delta_n (see figure +below). This is the distance at which two particles no longer +interact. If r_c is specified as 0.0, then it is a contact-only +interaction. I.e. the two particles must overlap in order to exert a +repulsive force on each other. If r_c > 0.0, then the force between +two particles will be attractive for surface separations from 0 to +r_c, and repulsive once the particles overlap. + +Note that unlike for other pair styles, the specified cutoff is not +the distance between the centers of two particles at which they stop +interacting. This center-to-center distance depends on the shape and +size of the two particles and their relative orientation. LAMMPS +takes that into account when computing the surface separation distance +and applying the r_c cutoff. The forces between vertex-vertex, vertex-edge, and edge-edge overlaps are given by: @@ -61,25 +74,10 @@ are given by: :c,image(JPG/pair_body_rounded.jpg) -TRUNG: The diagram label "cohesive regions" confuses me. Are you -saying there is some distance d for which the force is attractive, -i.e. the particles are cohesive? I think when d > Ri + Rj, since Ri + -Rj is the surface/surface overlap discussed above? If so, then the -discussion above about the specified cutoff is wrong? I.e. you can -specify a large cutoff than the surface/surface overlap to get -cohesive interactions? If so, this should be explained up above. -But an additional confusion is that the specied cutoff (Rc in diagram?) -is a single number, but depedning on the orientiation of the 2 -particles they might have a suface/surface overlap at a much -smaller value of Ri + Rj. So what is Rc then? - I added -the following paragraph to address this. - -Note that F_n and F_t are functions of the surface separation -\delta_n = d - (R_i + R_j). -In this model, when (R_i + R_j) < d < (R_i + R_j) + r_c, that is, -0 < \delta_n < r_c, the cohesive region of the two surfaces overlap -and the two surfaces are attractive to each other. - +Note that F_n and F_t are functions of the surface separation \delta_n += d - (R_i + R_j). In this model, when (R_i + R_j) < d < (R_i + R_j) ++ r_c, that is, 0 < \delta_n < r_c, the cohesive region of the two +surfaces overlap and the two surfaces are attractive to each other. In "Fraige"_#Fraige, the tangential friction force between two particles that are in contact is modeled differently prior to gross @@ -92,7 +90,6 @@ contact nor calculate the tangential deformation. Instead, we assume that gross sliding takes place as soon as two particles are in contact. - The following coefficients must be defined for each pair of atom types via the "pair_coeff"_pair_coeff.html command as in the examples above, or in the data file read by the "read_data"_read_data.html command: @@ -101,12 +98,8 @@ k_n (energy/distance^2 units) k_na (energy/distance^2 units) :ul Effectively, k_n and k_na are the slopes of the red lines in the plot -above for force versus surface separation, for \delta_n < 0 and 0 < \delta_n < r_c -respectively. (TRUNG: is this sentence correct? - it should read delta_n, -instead of r) - -TRUNG: reminder to copy any change in this file -to the pair polyhedron file as well (and vice versa) +above for force versus surface separation, for \delta_n < 0 and 0 < +\delta_n < r_c respectively. [Mixing, shift, table, tail correction, restart, rRESPA info]: diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index cb4ec00917..4a58e0119b 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -28,28 +28,11 @@ pair_coeff 1 1 100.0 1.0 :pre Style {body/rounded/polygon} is for use with 3d models of body particles of style {rounded/polyhedron}. It calculates pairwise -body/body interactions as well as interactions between body and -point-particles (modeled as spheres with a specified diameter). -See "Section 6.14"_Section_howto.html#howto_14 of -the manual and the "body"_body.html doc page for more details on using -body rounded/polyhedron particles. - -TRUNG: I think we need a paragraph here about how body/sphere -interactions are handled. Does this pair style only do body/body but -allow for a body = sphere or rod or some other degenerate case? Or -does this pair style allow you to model a simulation of mixed body and -point particles, where point particles are spheroids. If so, does -this pair style do body/body and body/point, and you use one of the -other granular pair styles to do point/point? I.e. a pair hybrid -model? Or does everything have to be defined as bodies. Actually -this paragraph would make more sense in the body.txt file about how to -create a model that includes non-body particles (spheres). And in -this pair style file just a couple lines about which part of the -interactions this pair style computes. Ditto in the pair body polygon -file. - The pair style supports body/sphere and sphere/sphere -given that all the atoms should be of body rounded/polyhedron. -I updated the above paragraph and added examples in body.txt for -specifying the special objects (i.e. spheres and rods). +body/body interactions which can include body particles modeled as +1-vertex spheres with a specified diameter. See "Section +6.14"_Section_howto.html#howto_14 of the manual and the +"body"_body.html doc page for more details on using body +rounded/polyhedron particles. This pairwise interaction between the rounded polyhedra is described in "Wang"_#Wang, where a polyhedron does not have sharp corners and @@ -61,7 +44,6 @@ in the data file read by the "read data"_read_data.html command. This is a discrete element model (DEM) which allows for multiple contact points. - Note that when two particles interact, the effective surface of each polyhedron particle is displaced outward from each of its vertices, edges, and faces by half its sphere diameter. The interaction forces @@ -69,8 +51,21 @@ and energies between two particles are defined with respect to the separation of their respective rounded surfaces, not by the separation of the vertices, edges, and faces themselves. -This means that the specified cutoff in the pair_style command is -the cutoff distance, r_c, for the surface separation, \delta_n (see figure below). +This means that the specified cutoff in the pair_style command is the +cutoff distance, r_c, for the surface separation, \delta_n (see figure +below). This is the distance at which two particles no longer +interact. If r_c is specified as 0.0, then it is a contact-only +interaction. I.e. the two particles must overlap in order to exert a +repulsive force on each other. If r_c > 0.0, then the force between +two particles will be attractive for surface separations from 0 to +r_c, and repulsive once the particles overlap. + +Note that unlike for other pair styles, the specified cutoff is not +the distance between the centers of two particles at which they stop +interacting. This center-to-center distance depends on the shape and +size of the two particles and their relative orientation. LAMMPS +takes that into account when computing the surface separation distance +and applying the r_c cutoff. The forces between vertex-vertex, vertex-edge, vertex-face, edge-edge, and edge-face overlaps are given by: @@ -97,9 +92,8 @@ k_n (energy/distance^2 units) k_na (energy/distance^2 units) :ul Effectively, k_n and k_na are the slopes of the red lines in the plot -above for force versus surface separation, for \delta_n < 0 and 0 < \delta_n < r_c -respectively. (TRUNG: is this sentence correct? - it should read delta_n, -instead of r) +above for force versus surface separation, for \delta_n < 0 and 0 < +\delta_n < r_c respectively. [Mixing, shift, table, tail correction, restart, rRESPA info]: diff --git a/examples/body/in.body b/examples/body/in.body index 5879ed5e45..815b853154 100644 --- a/examples/body/in.body +++ b/examples/body/in.body @@ -8,7 +8,7 @@ read_data data.body velocity all create 1.44 87287 loop geom -pair_style body 5.0 +pair_style body/nparticle 5.0 pair_coeff * * 1.0 1.0 neighbor 0.5 bin diff --git a/src/BODY/pair_body.cpp b/src/BODY/pair_body_nparticle.cpp similarity index 95% rename from src/BODY/pair_body.cpp rename to src/BODY/pair_body_nparticle.cpp index 8c12c0cf36..80b45beb4e 100644 --- a/src/BODY/pair_body.cpp +++ b/src/BODY/pair_body_nparticle.cpp @@ -15,7 +15,7 @@ #include #include #include -#include "pair_body.h" +#include "pair_body_nparticle.h" #include "math_extra.h" #include "atom.h" #include "atom_vec_body.h" @@ -32,7 +32,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -PairBody::PairBody(LAMMPS *lmp) : Pair(lmp) +PairBodyNparticle::PairBodyNparticle(LAMMPS *lmp) : Pair(lmp) { dmax = nmax = 0; discrete = NULL; @@ -44,7 +44,7 @@ PairBody::PairBody(LAMMPS *lmp) : Pair(lmp) /* ---------------------------------------------------------------------- */ -PairBody::~PairBody() +PairBodyNparticle::~PairBodyNparticle() { memory->destroy(discrete); memory->destroy(dnum); @@ -66,7 +66,7 @@ PairBody::~PairBody() /* ---------------------------------------------------------------------- */ -void PairBody::compute(int eflag, int vflag) +void PairBodyNparticle::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; int ni,nj,npi,npj,ifirst,jfirst; @@ -336,7 +336,7 @@ void PairBody::compute(int eflag, int vflag) allocate all arrays ------------------------------------------------------------------------- */ -void PairBody::allocate() +void PairBodyNparticle::allocate() { allocated = 1; int n = atom->ntypes; @@ -361,7 +361,7 @@ void PairBody::allocate() global settings ------------------------------------------------------------------------- */ -void PairBody::settings(int narg, char **arg) +void PairBodyNparticle::settings(int narg, char **arg) { if (narg != 1) error->all(FLERR,"Illegal pair_style command"); @@ -381,7 +381,7 @@ void PairBody::settings(int narg, char **arg) set coeffs for one or more type pairs ------------------------------------------------------------------------- */ -void PairBody::coeff(int narg, char **arg) +void PairBodyNparticle::coeff(int narg, char **arg) { if (narg < 4 || narg > 5) error->all(FLERR,"Incorrect args for pair coefficients"); @@ -415,12 +415,12 @@ void PairBody::coeff(int narg, char **arg) init specific to this pair style ------------------------------------------------------------------------- */ -void PairBody::init_style() +void PairBodyNparticle::init_style() { avec = (AtomVecBody *) atom->style_match("body"); - if (!avec) error->all(FLERR,"Pair body requires atom style body"); + if (!avec) error->all(FLERR,"Pair body/nparticle requires atom style body"); if (strcmp(avec->bptr->style,"nparticle") != 0) - error->all(FLERR,"Pair body requires body style nparticle"); + error->all(FLERR,"Pair body/nparticle requires body style nparticle"); bptr = (BodyNparticle *) avec->bptr; neighbor->request(this,instance_me); @@ -430,7 +430,7 @@ void PairBody::init_style() init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairBody::init_one(int i, int j) +double PairBodyNparticle::init_one(int i, int j) { if (setflag[i][j] == 0) { epsilon[i][j] = mix_energy(epsilon[i][i],epsilon[j][j], @@ -459,7 +459,7 @@ double PairBody::init_one(int i, int j) store sub-particle space-frame displacements from COM in discrete list ------------------------------------------------------------------------- */ -void PairBody::body2space(int i) +void PairBodyNparticle::body2space(int i) { int ibonus = atom->body[i]; AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; diff --git a/src/BODY/pair_body.h b/src/BODY/pair_body_nparticle.h similarity index 90% rename from src/BODY/pair_body.h rename to src/BODY/pair_body_nparticle.h index 94fbdf34df..9c7d832b64 100644 --- a/src/BODY/pair_body.h +++ b/src/BODY/pair_body_nparticle.h @@ -13,21 +13,21 @@ #ifdef PAIR_CLASS -PairStyle(body,PairBody) +PairStyle(body/nparticle,PairBodyNparticle) #else -#ifndef LMP_PAIR_BODY_H -#define LMP_PAIR_BODY_H +#ifndef LMP_PAIR_BODY_NPARTICLE_H +#define LMP_PAIR_BODY_NPARTICLE_H #include "pair.h" namespace LAMMPS_NS { -class PairBody : public Pair { +class PairBodyNparticle : public Pair { public: - PairBody(class LAMMPS *); - ~PairBody(); + PairBodyNparticle(class LAMMPS *); + ~PairBodyNparticle(); void compute(int, int); void settings(int, char **); void coeff(int, char **); From f9c7fa973b29f17bacc2d5dfd7686f08fd529f8d Mon Sep 17 00:00:00 2001 From: Tim Mattox Date: Wed, 18 Jul 2018 10:41:57 -0500 Subject: [PATCH 291/675] USER-DPD: propagate a minor performance bugfix throughout the DPDE code The fix_shardlow_kokkos.cpp code had already factored out a redundant sqrt() calculation in the innermost loop of ssa_update_dpde(). This changeset propagates an equivilent optimization to: fix_shardlow.cpp pair_dpd_fdt_energy.cpp pair_dpd_fdt_energy_kokkos.cpp The alpha_ij variable was really just an [itype][jtype] lookup parameter, replacing a sqrt() and two multiplies per interacting particle pair by a cached memory read. Even if there isn't much time savings, the code is now consistent across the various versions. --- src/KOKKOS/fix_shardlow_kokkos.cpp | 3 +-- src/KOKKOS/pair_dpd_fdt_energy_kokkos.cpp | 3 ++- src/KOKKOS/pair_dpd_fdt_energy_kokkos.h | 6 +++--- src/USER-DPD/fix_shardlow.cpp | 6 +++--- src/USER-DPD/pair_dpd_fdt_energy.cpp | 10 ++++++++-- src/USER-DPD/pair_dpd_fdt_energy.h | 2 +- 6 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/KOKKOS/fix_shardlow_kokkos.cpp b/src/KOKKOS/fix_shardlow_kokkos.cpp index 70055bf8c9..99e51ebe38 100644 --- a/src/KOKKOS/fix_shardlow_kokkos.cpp +++ b/src/KOKKOS/fix_shardlow_kokkos.cpp @@ -157,7 +157,6 @@ void FixShardlowKokkos::init() k_pairDPDE->k_cutsq.template sync(); d_cutsq = k_pairDPDE->k_cutsq.template view(); - const double boltz2 = 2.0*force->boltz; for (int i = 1; i <= ntypes; i++) { for (int j = i; j <= ntypes; j++) { F_FLOAT cutone = k_pairDPDE->cut[i][j]; @@ -165,7 +164,7 @@ void FixShardlowKokkos::init() else k_params.h_view(i,j).cutinv = FLT_MAX; k_params.h_view(i,j).halfsigma = 0.5*k_pairDPDE->sigma[i][j]; k_params.h_view(i,j).kappa = k_pairDPDE->kappa[i][j]; - k_params.h_view(i,j).alpha = sqrt(boltz2*k_pairDPDE->kappa[i][j]); + k_params.h_view(i,j).alpha = k_pairDPDE->alpha[i][j]; k_params.h_view(j,i) = k_params.h_view(i,j); diff --git a/src/KOKKOS/pair_dpd_fdt_energy_kokkos.cpp b/src/KOKKOS/pair_dpd_fdt_energy_kokkos.cpp index 7ff536f8dd..038d95394a 100644 --- a/src/KOKKOS/pair_dpd_fdt_energy_kokkos.cpp +++ b/src/KOKKOS/pair_dpd_fdt_energy_kokkos.cpp @@ -591,7 +591,7 @@ void PairDPDfdtEnergyKokkos::operator()(TagPairDPDfdtEnergyComputeNo // Compute uCond randnum = rand_gen.normal(); kappa_ij = STACKPARAMS?m_params[itype][jtype].kappa:params(itype,jtype).kappa; - alpha_ij = sqrt(2.0*boltz*kappa_ij); + alpha_ij = STACKPARAMS?m_params[itype][jtype].alpha:params(itype,jtype).alpha; randPair = alpha_ij*wr*randnum*dtinvsqrt; uTmp = kappa_ij*(1.0/dpdTheta[i] - 1.0/dpdTheta[j])*wd; @@ -676,6 +676,7 @@ double PairDPDfdtEnergyKokkos::init_one(int i, int j) k_params.h_view(i,j).a0 = a0[i][j]; k_params.h_view(i,j).sigma = sigma[i][j]; k_params.h_view(i,j).kappa = kappa[i][j]; + k_params.h_view(i,j).alpha = alpha[i][j]; k_params.h_view(j,i) = k_params.h_view(i,j); if(iuMech; double *dpdTheta = atom->dpdTheta; - double *cut_i, *cut2_i, *sigma_i, *kappa_i; + double *cut_i, *cut2_i, *sigma_i, *kappa_i, *alpha_i; double theta_ij_inv, theta_i_inv; - const double boltz2 = 2.0*force->boltz; const double boltz_inv = 1.0/force->boltz; const double ftm2v = force->ftm2v; @@ -389,6 +388,7 @@ while (ct-- > 0) { cut_i = pairDPDE->cut[itype]; sigma_i = pairDPDE->sigma[itype]; kappa_i = pairDPDE->kappa[itype]; + alpha_i = pairDPDE->alpha[itype]; theta_i_inv = 1.0/dpdTheta[i]; const double mass_i = (rmass) ? rmass[i] : mass[itype]; const double massinv_i = 1.0 / mass_i; @@ -448,7 +448,7 @@ while (ct-- > 0) { // Compute uCond double kappa_ij = kappa_i[jtype]; - double alpha_ij = sqrt(boltz2*kappa_ij); + double alpha_ij = alpha_i[jtype]; double del_uCond = alpha_ij*wr*dtsqrt * es_normal(RNGstate); del_uCond += kappa_ij*(theta_i_inv - theta_j_inv)*wdt; diff --git a/src/USER-DPD/pair_dpd_fdt_energy.cpp b/src/USER-DPD/pair_dpd_fdt_energy.cpp index d1f3cceed4..05dc52eac7 100644 --- a/src/USER-DPD/pair_dpd_fdt_energy.cpp +++ b/src/USER-DPD/pair_dpd_fdt_energy.cpp @@ -65,6 +65,7 @@ PairDPDfdtEnergy::~PairDPDfdtEnergy() memory->destroy(a0); memory->destroy(sigma); memory->destroy(kappa); + memory->destroy(alpha); memory->destroy(duCond); memory->destroy(duMech); } @@ -269,7 +270,7 @@ void PairDPDfdtEnergy::compute(int eflag, int vflag) // Compute uCond randnum = random->gaussian(); kappa_ij = kappa[itype][jtype]; - alpha_ij = sqrt(2.0*force->boltz*kappa_ij); + alpha_ij = alpha[itype][jtype]; randPair = alpha_ij*wr*randnum*dtinvsqrt; uTmp = kappa_ij*(1.0/dpdTheta[i] - 1.0/dpdTheta[j])*wd; @@ -322,6 +323,7 @@ void PairDPDfdtEnergy::allocate() memory->create(a0,n+1,n+1,"pair:a0"); memory->create(sigma,n+1,n+1,"pair:sigma"); memory->create(kappa,n+1,n+1,"pair:kappa"); + memory->create(alpha,n+1,n+1,"pair:alpha"); if (!splitFDT_flag) { memory->create(duCond,nlocal+nghost+1,"pair:duCond"); memory->create(duMech,nlocal+nghost+1,"pair:duMech"); @@ -374,11 +376,12 @@ void PairDPDfdtEnergy::coeff(int narg, char **arg) double a0_one = force->numeric(FLERR,arg[2]); double sigma_one = force->numeric(FLERR,arg[3]); double cut_one = cut_global; - double kappa_one; + double kappa_one, alpha_one; a0_is_zero = (a0_one == 0.0); // Typical use with SSA is to set a0 to zero kappa_one = force->numeric(FLERR,arg[4]); + alpha_one = sqrt(2.0*force->boltz*kappa_one); if (narg == 6) cut_one = force->numeric(FLERR,arg[5]); int count = 0; @@ -387,6 +390,7 @@ void PairDPDfdtEnergy::coeff(int narg, char **arg) a0[i][j] = a0_one; sigma[i][j] = sigma_one; kappa[i][j] = kappa_one; + alpha[i][j] = alpha_one; cut[i][j] = cut_one; setflag[i][j] = 1; count++; @@ -435,6 +439,7 @@ double PairDPDfdtEnergy::init_one(int i, int j) a0[j][i] = a0[i][j]; sigma[j][i] = sigma[i][j]; kappa[j][i] = kappa[i][j]; + alpha[j][i] = alpha[i][j]; return cut[i][j]; } @@ -488,6 +493,7 @@ void PairDPDfdtEnergy::read_restart(FILE *fp) MPI_Bcast(&sigma[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&kappa[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); + alpha[i][j] = sqrt(2.0*force->boltz*kappa[i][j]); a0_is_zero = a0_is_zero && (a0[i][j] == 0.0); // verify the zero assumption } } diff --git a/src/USER-DPD/pair_dpd_fdt_energy.h b/src/USER-DPD/pair_dpd_fdt_energy.h index dce39f83f0..e21b48f7bd 100644 --- a/src/USER-DPD/pair_dpd_fdt_energy.h +++ b/src/USER-DPD/pair_dpd_fdt_energy.h @@ -43,7 +43,7 @@ class PairDPDfdtEnergy : public Pair { double **cut; double **a0; - double **sigma,**kappa; + double **sigma,**kappa,**alpha; double *duCond,*duMech; int seed; From dfd40c1b70c04ac3d3a8c24c4a2e0e399aa5168b Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 18 Jul 2018 10:48:29 -0600 Subject: [PATCH 292/675] more doc tweaks --- doc/src/body.txt | 8 ++--- doc/src/lammps.book | 6 ++-- doc/src/pair_body_rounded_polygon.txt | 10 +++--- doc/src/pair_body_rounded_polyhedron.txt | 39 ++++++++++++------------ 4 files changed, 33 insertions(+), 30 deletions(-) diff --git a/doc/src/body.txt b/doc/src/body.txt index cef40cc643..e7baf626f5 100644 --- a/doc/src/body.txt +++ b/doc/src/body.txt @@ -186,7 +186,7 @@ squares with rounded circles at the vertices. Special cases for N = 1 (circle) and N = 2 (rod with rounded ends) can also be specified. One use of this body style is for 2d discrete element models, as -described in "Fraige"_#Fraige. +described in "Fraige"_#body-Fraige. Similar to body style {nparticle}, the atom_style body command for this body style takes two additional arguments: @@ -292,7 +292,7 @@ for N = 1 (sphere) and N = 2 (rod with rounded ends) can also be specified. This body style is for 3d discrete element models, as described in -"Wang"_#Wang. +"Wang"_#body-Wang. Similar to body style {rounded/polygon}, the atom_style body command for this body style takes two additional arguments: @@ -447,10 +447,10 @@ determined by the {bflag1} parameter for the {body} keyword. The :line -:link(Fraige) +:link(body-Fraige) [(Fraige)] F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds, Particuology, 6, 455 (2008). -:link(Wang) +:link(body-Wang) [(Wang)] J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular Matter, 13, 1 (2011). diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 0764c593f7..9c0216412b 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -280,7 +280,8 @@ fix_vector.html fix_viscosity.html fix_viscous.html fix_wall.html -fix_wall_ees.html +fix_wall_body_polygon.html +fix_wall_body_polyhedron.html fix_wall_gran.html fix_wall_gran_region.html fix_wall_piston.html @@ -419,8 +420,9 @@ pair_agni.html pair_airebo.html pair_awpmd.html pair_beck.html -pair_body.html +pair_body_nparticle.html pair_body_rounded_polygon.html +pair_body_rounded_polyhedron.html pair_bop.html pair_born.html pair_brownian.html diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index caaa0746a1..9daeb08e9a 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -35,9 +35,9 @@ body/body interactions which can include body particles modeled as rounded/polygon particles. This pairwise interaction between rounded polygons is described in -"Fraige"_#Fraige, where a polygon does not have sharp corners, but is -rounded at its vertices by circles centered on each vertex with a -specified diameter. The edges of the polygon are defined between +"Fraige"_#pair-Fraige, where a polygon does not have sharp corners, +but is rounded at its vertices by circles centered on each vertex with +a specified diameter. The edges of the polygon are defined between pairs of adjacent vertices. The circle diameter for each polygon is specified in the data file read by the "read data"_read_data.html command. This is a 2d discrete element model (DEM) which allows for @@ -79,7 +79,7 @@ Note that F_n and F_t are functions of the surface separation \delta_n + r_c, that is, 0 < \delta_n < r_c, the cohesive region of the two surfaces overlap and the two surfaces are attractive to each other. -In "Fraige"_#Fraige, the tangential friction force between two +In "Fraige"_#pair-Fraige, the tangential friction force between two particles that are in contact is modeled differently prior to gross sliding (i.e. static friction) and during gross-sliding (kinetic friction). The latter takes place when the tangential deformation @@ -129,6 +129,6 @@ for pair interactions. [Default:] none -:link(Fraige) +:link(pair-Fraige) [(Fraige)] F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds, Particuology, 6, 455 (2008). diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index 4a58e0119b..dc559feaaf 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -34,15 +34,15 @@ body/body interactions which can include body particles modeled as "body"_body.html doc page for more details on using body rounded/polyhedron particles. -This pairwise interaction between the rounded polyhedra is described in -"Wang"_#Wang, where a polyhedron does not have sharp corners and -edges, but is rounded at its vertices and edges by spheres centered on -each vertex with a specified diameter. The edges if the polyhedron -are defined between pairs of adjacent vertices. Its faces are defined -by a loop of edges. The sphere diameter for each polygon is specified -in the data file read by the "read data"_read_data.html command. This -is a discrete element model (DEM) which allows for multiple contact -points. +This pairwise interaction between the rounded polyhedra is described +in "Wang"_#pair-Wang, where a polyhedron does not have sharp corners +and edges, but is rounded at its vertices and edges by spheres +centered on each vertex with a specified diameter. The edges if the +polyhedron are defined between pairs of adjacent vertices. Its faces +are defined by a loop of edges. The sphere diameter for each polygon +is specified in the data file read by the "read data"_read_data.html +command. This is a discrete element model (DEM) which allows for +multiple contact points. Note that when two particles interact, the effective surface of each polyhedron particle is displaced outward from each of its vertices, @@ -74,15 +74,16 @@ and edge-face overlaps are given by: :c,image(JPG/pair_body_rounded.jpg) -In "Wang"_#Wang, the tangential friction force between two particles -that are in contact is modeled differently prior to gross sliding -(i.e. static friction) and during gross-sliding (kinetic friction). -The latter takes place when the tangential deformation exceeds the -Coulomb frictional limit. In the current implementation, however, we -do not take into account frictional history, i.e. we do not keep track -of how many time steps the two particles have been in contact nor -calculate the tangential deformation. Instead, we assume that gross -sliding takes place as soon as two particles are in contact. +In "Wang"_#pair-Wang, the tangential friction force between two +particles that are in contact is modeled differently prior to gross +sliding (i.e. static friction) and during gross-sliding (kinetic +friction). The latter takes place when the tangential deformation +exceeds the Coulomb frictional limit. In the current implementation, +however, we do not take into account frictional history, i.e. we do +not keep track of how many time steps the two particles have been in +contact nor calculate the tangential deformation. Instead, we assume +that gross sliding takes place as soon as two particles are in +contact. The following coefficients must be defined for each pair of atom types via the "pair_coeff"_pair_coeff.html command as in the examples above, @@ -123,7 +124,7 @@ for pair interactions. [Default:] none -:link(Wang) +:link(pair-Wang) [(Wang)] J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular Matter, 13, 1 (2011). From eebd075a1523a6f5d49855d3f73f65651a69c558 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Wed, 18 Jul 2018 11:05:54 -0600 Subject: [PATCH 293/675] added scaling for different units (lj, metal, ...) and storage of atom-wise potentials (eatom / eatom_flag) --- src/USER-SCAFACOS/scafacos.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 89c67b828b..c5efd6a191 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -110,6 +110,10 @@ void Scafacos::init() // one-time initialization of ScaFaCoS + scale = 1.0; + qqrd2e = force->qqrd2e; + //qsum_qsq(); + if (!initialized) { result = fcs_init(&fcs,method,world); check_result(result); @@ -143,10 +147,15 @@ void Scafacos::compute(int eflag, int vflag) double *q = atom->q; int nlocal = atom->nlocal; + const double qscale = qqrd2e * scale; + // if simluation box has changed, call fcs_tune() + if (eflag || vflag) ev_setup(eflag,vflag); + else + eflag_atom = 0; + if (box_has_changed()) { - printf("AAA\n"); setup_handle(); result = fcs_tune(fcs,nlocal,&x[0][0],q); check_result(result); @@ -185,13 +194,21 @@ void Scafacos::compute(int eflag, int vflag) double myeng = 0.0; for (int i = 0; i < nlocal; i++) { - qone = q[i]; + qone = q[i] * qscale; f[i][0] += qone * efield[i][0]; f[i][1] += qone * efield[i][1]; f[i][2] += qone * efield[i][2]; myeng += 0.5 * qone * epot[i]; } + if (eflag_atom) + { + for (int i = 0; i < nlocal; i++) + { + eatom[i] = qscale * epot[i]; + } + } + MPI_Allreduce(&myeng,&energy,1,MPI_DOUBLE,MPI_SUM,world); } From 7d4de932b6945045779ae4e2a867b4e99f898d19 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 18 Jul 2018 13:13:57 -0400 Subject: [PATCH 294/675] reinstate reference to fix wall/ees in lammps.book --- doc/src/lammps.book | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 9c0216412b..56284812f8 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -282,6 +282,7 @@ fix_viscous.html fix_wall.html fix_wall_body_polygon.html fix_wall_body_polyhedron.html +fix_wall_ees.html fix_wall_gran.html fix_wall_gran_region.html fix_wall_piston.html From 1a959a5683accbf9ad8c36198de73b9557d2c5f0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 18 Jul 2018 13:26:45 -0400 Subject: [PATCH 295/675] must add USER-SCAFACOS to PACKLIB variable in Makefile We need "make no-lib" to be correct for automated testing to work, since only known packages with libraries can be successfully compiled through jenkins and other tools. Those scripts usually do "make yes-all no-lib" and then "make yes-XXX" for selected packages where it is known how to build the required libs. --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 5ca5e7ddc6..4e19f43afb 100644 --- a/src/Makefile +++ b/src/Makefile @@ -68,7 +68,7 @@ PACKUSER = user-atc user-awpmd user-bocs user-cgdna user-cgsdk user-colvars \ PACKLIB = compress gpu kim kokkos latte meam mpiio mscg poems \ python reax voronoi \ user-atc user-awpmd user-colvars user-h5md user-lb user-molfile \ - user-netcdf user-qmmm user-quip user-smd user-vtk + user-netcdf user-qmmm user-quip user-scafacos user-smd user-vtk PACKSYS = compress mpiio python user-lb From b0c9fde1dd455194f4ef7767d5790ba022eaa7a9 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 18 Jul 2018 15:32:03 -0600 Subject: [PATCH 296/675] more changes from Steve --- doc/src/Section_packages.txt | 55 +++ doc/src/fix_scafacos.txt | 44 --- doc/src/kspace_modify.txt | 447 +++++++++++++--------- doc/src/kspace_style.txt | 91 ++++- examples/USER/scafacos/README | 10 + examples/{ => USER}/scafacos/data.NaCl | 0 examples/{ => USER}/scafacos/in.scafacos | 0 lib/scafacos/Install.py | 15 +- src/USER-SCAFACOS/README | 5 + src/USER-SCAFACOS/fix_scafacos.cpp | 456 ----------------------- src/USER-SCAFACOS/fix_scafacos.h | 164 -------- src/USER-SCAFACOS/scafacos.cpp | 103 ++--- src/USER-SCAFACOS/scafacos.h | 1 + src/kspace.cpp | 6 +- src/kspace.h | 2 + 15 files changed, 486 insertions(+), 913 deletions(-) delete mode 100644 doc/src/fix_scafacos.txt create mode 100644 examples/USER/scafacos/README rename examples/{ => USER}/scafacos/data.NaCl (100%) rename examples/{ => USER}/scafacos/in.scafacos (100%) create mode 100644 src/USER-SCAFACOS/README delete mode 100644 src/USER-SCAFACOS/fix_scafacos.cpp delete mode 100644 src/USER-SCAFACOS/fix_scafacos.h diff --git a/doc/src/Section_packages.txt b/doc/src/Section_packages.txt index 218866e271..ea03bdb74e 100644 --- a/doc/src/Section_packages.txt +++ b/doc/src/Section_packages.txt @@ -149,6 +149,7 @@ Package, Description, Doc page, Example, Library "USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, - "USER-QUIP"_#USER-QUIP, QUIP/libatoms interface,"pair_style quip"_pair_quip.html, USER/quip, ext "USER-REAXC"_#USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, - +"USER-SCAFACOS"_#USER-SCAFACOS, ScaFaCoS long-range Coulombics,"kspace_style scafacos"_kspace_style.html, USER/scafacos, ext "USER-SMD"_#USER-SMD, smoothed Mach dynamics,"SMD User Guide"_PDF/SMD_LAMMPS_userguide.pdf, USER/smd, ext "USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, - "USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, - @@ -2730,6 +2731,60 @@ examples/reax :ul :line +RENE: check this section + +USER-SCAFACOS package :link(USER-SCAFACOS),h4 + +[Contents:] + +A KSpace style which wraps the "ScaFaCoS Coulomb solver +library"_http://www.scafacos.de. + +To use this package you must have the ScaFaCoS library available on +your system. It is available for download at "http://scafacos.de" or +can be cloned from the git-repository +"git://github.com/scafacos/scafacos.git". + +[Author:] Rene Halver (JSC) wrote the scafacos LAMMPS command. + +ScaFaCoS was developed by a consortium of German research facilities +with a BMBF (German Ministry of Science and Education) funded project +in 2009-2012. Participants of the consortium were the Universities of +Bonn, Chemnitz, Stuttgart, and Wuppertal as well as the +Forschungszentrum Juelich. + +[Install or un-install:] + +Before building LAMMPS with this package, you must first download and +build the ScaFaCoS library. You can do this manually if you prefer; +follow the instructions in lib/scafacos/README. You can also do it in +one step from the lammps/src dir, using a command like these, which +simply invoke the lib/scafacos/Install.py script with the specified +args: + +make lib-scafacos # print help message +make lib-scafacos args="-b" # download and build in lib/scafacos/scafacos- +make lib-voronoi args="-p $HOME/scafacos # use existing ScaFaCoS installation in $HOME/scafacos + +You can then install/un-install the package and build LAMMPS in the +usual manner: + +make yes-user-scafacos +make machine :pre + +make no-user-scafacos +make machine :pre + +[Supporting info:] + +src/USER-SCAFACOS: filenames -> commands +src/USER-SCAFACOS/README +"kspace_style scafacos"_kspace_style.html +"kspace_modify"_kspace_modify.html +examples/USER/scafacos :ul + +:line + USER-SMD package :link(USER-SMD),h4 [Contents:] diff --git a/doc/src/fix_scafacos.txt b/doc/src/fix_scafacos.txt deleted file mode 100644 index 1a65ed0c5e..0000000000 --- a/doc/src/fix_scafacos.txt +++ /dev/null @@ -1,44 +0,0 @@ -"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -fix scafacos command :h3 - -[Syntax:] - -fix ID group-ID scafacos solver tol_type tolerance :pre - -ID, group-ID are documented in "fix"_fix.html command -scafacos = style name of this fix command -solver = NULL or name of solver for electro-statics computation :ul -tol_type = NULL or one of (energy, energy_rel, field, field_rel, potential, potential_rel) -tolerance = only of tol_type is given, value of tolerance - -[Examples:] - -fix 1 all scafacos fmm -fix 1 all scafacos p3m field 0.001 - -[Description:] - -This fix style is a wrapper for the Coulomb solver library ScaFaCoS, -which provides a selection of different solvers for the compuation -of electro-static interaction. If you download and build ScaFaCoS, -it can be called as libray by LAMMPS via this fix, which allows the -selection of a solver as well as setting the tolerance of a chosen -parameter (if compatible with the chosen solver). - -ScaFaCoS was developed by a consortium of German research facilities -with a BMBF (German Ministry of Science and Education) funded project -in 2009-2012. Participants of the consortium were the Universities of -Bonn, Chemnitz, Stuttgart, and Wuppertal as well as the -Forschungszentrum Juelich. - -The library is available at "http://scafacos.de" or can be cloned -from the git-repository "git://github.com/scafacos/scafacos.git". - -:line diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index 6d27bb7076..fbc569306c 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -13,47 +13,51 @@ kspace_modify command :h3 kspace_modify keyword value ... :pre one or more keyword/value pairs may be listed :ulb,l -keyword = {mesh} or {order} or {order/disp} or {mix/disp} or {overlap} or {minorder} or {force} or {gewald} or {gewald/disp} or {slab} or (nozforce} or {compute} or {cutoff/adjust} or {fftbench} or {collective} or {diff} or {kmax/ewald} or {force/disp/real} or {force/disp/kspace} or {splittol} or {disp/auto}:l - {mesh} value = x y z - x,y,z = grid size in each dimension for long-range Coulombics - {mesh/disp} value = x y z - x,y,z = grid size in each dimension for 1/r^6 dispersion - {order} value = N - N = extent of Gaussian for PPPM or MSM mapping of charge to grid - {order/disp} value = N - N = extent of Gaussian for PPPM mapping of dispersion term to grid - {mix/disp} value = {pair} or {geom} or {none} - {overlap} = {yes} or {no} = whether the grid stencil for PPPM is allowed to overlap into more than the nearest-neighbor processor - {minorder} value = M - M = min allowed extent of Gaussian when auto-adjusting to minimize grid communication +keyword = {collective} or {compute} or {cutoff/adjust} or {diff} or {disp/auto} or {fftbench} or {force/disp/kspace} or {force/disp/real} or {force} or {gewald/disp} or {gewald} or {kmax/ewald} or {mesh} or {minorder} or {mix/disp} or {order/disp} or {order} or {overlap} or {scafacos} or {slab} or {splittol} :l + {collective} value = {yes} or {no} + {compute} value = {yes} or {no} + {cutoff/adjust} value = {yes} or {no} + {diff} value = {ad} or {ik} = 2 or 4 FFTs for PPPM in smoothed or non-smoothed mode + {disp/auto} value = yes or no + {fftbench} value = {yes} or {no} + {force/disp/real} value = accuracy (force units) + {force/disp/kspace} value = accuracy (force units) {force} value = accuracy (force units) {gewald} value = rinv (1/distance units) rinv = G-ewald parameter for Coulombics {gewald/disp} value = rinv (1/distance units) rinv = G-ewald parameter for dispersion + {kmax/ewald} value = kx ky kz + kx,ky,kz = number of Ewald sum kspace vectors in each dimension + {mesh} value = x y z + x,y,z = grid size in each dimension for long-range Coulombics + {mesh/disp} value = x y z + x,y,z = grid size in each dimension for 1/r^6 dispersion + {minorder} value = M + M = min allowed extent of Gaussian when auto-adjusting to minimize grid communication + {mix/disp} value = {pair} or {geom} or {none} + {order} value = N + N = extent of Gaussian for PPPM or MSM mapping of charge to grid + {order/disp} value = N + N = extent of Gaussian for PPPM mapping of dispersion term to grid + {overlap} = {yes} or {no} = whether the grid stencil for PPPM is allowed to overlap into more than the nearest-neighbor processor + {pressure/scalar} value = {yes} or {no} + {scafacos} values = option value1 value2 ... + option = {tolerance} + value = {energy} or {energy_rel} or {field} or {field_rel} or {potential} or {potential_rel} {slab} value = volfactor or {nozforce} volfactor = ratio of the total extended volume used in the 2d approximation compared with the volume of the simulation domain {nozforce} turns off kspace forces in the z direction - {compute} value = {yes} or {no} - {cutoff/adjust} value = {yes} or {no} - {pressure/scalar} value = {yes} or {no} - {fftbench} value = {yes} or {no} - {collective} value = {yes} or {no} - {diff} value = {ad} or {ik} = 2 or 4 FFTs for PPPM in smoothed or non-smoothed mode - {kmax/ewald} value = kx ky kz - kx,ky,kz = number of Ewald sum kspace vectors in each dimension - {force/disp/real} value = accuracy (force units) - {force/disp/kspace} value = accuracy (force units) {splittol} value = tol - tol = relative size of two eigenvalues (see discussion below) - {disp/auto} value = yes or no :pre + tol = relative size of two eigenvalues (see discussion below) :pre :ule [Examples:] kspace_modify mesh 24 24 30 order 6 -kspace_modify slab 3.0 :pre +kspace_modify slab 3.0 +kspace_modify scafacos tolerance energy :pre [Description:] @@ -61,6 +65,132 @@ Set parameters used by the kspace solvers defined by the "kspace_style"_kspace_style.html command. Not all parameters are relevant to all kspace styles. +:line + +The {collective} keyword applies only to PPPM. It is set to {no} by +default, except on IBM BlueGene machines. If this option is set to +{yes}, LAMMPS will use MPI collective operations to remap data for +3d-FFT operations instead of the default point-to-point communication. +This is faster on IBM BlueGene machines, and may also be faster on +other machines if they have an efficient implementation of MPI +collective operations and adequate hardware. + +:line + +The {compute} keyword allows Kspace computations to be turned off, +even though a "kspace_style"_kspace_style.html is defined. This is +not useful for running a real simulation, but can be useful for +debugging purposes or for computing only partial forces that do not +include the Kspace contribution. You can also do this by simply not +defining a "kspace_style"_kspace_style.html, but a Kspace-compatible +"pair_style"_pair_style.html requires a kspace style to be defined. +This keyword gives you that option. + +:line + +The {cutoff/adjust} keyword applies only to MSM. If this option is +turned on, the Coulombic cutoff will be automatically adjusted at the +beginning of the run to give the desired estimated error. Other +cutoffs such as LJ will not be affected. If the grid is not set using +the {mesh} command, this command will also attempt to use the optimal +grid that minimizes cost using an estimate given by +"(Hardy)"_#Hardy1. Note that this cost estimate is not exact, somewhat +experimental, and still may not yield the optimal parameters. + +:line + +The {diff} keyword specifies the differentiation scheme used by the +PPPM method to compute forces on particles given electrostatic +potentials on the PPPM mesh. The {ik} approach is the default for +PPPM and is the original formulation used in "(Hockney)"_#Hockney1. It +performs differentiation in Kspace, and uses 3 FFTs to transfer each +component of the computed fields back to real space for total of 4 +FFTs per timestep. + +The analytic differentiation {ad} approach uses only 1 FFT to transfer +information back to real space for a total of 2 FFTs per timestep. It +then performs analytic differentiation on the single quantity to +generate the 3 components of the electric field at each grid point. +This is sometimes referred to as "smoothed" PPPM. This approach +requires a somewhat larger PPPM mesh to achieve the same accuracy as +the {ik} method. Currently, only the {ik} method (default) can be +used for a triclinic simulation cell with PPPM. The {ad} method is +always used for MSM. + +NOTE: Currently, not all PPPM styles support the {ad} option. Support +for those PPPM variants will be added later. + +:line + +The {disp/auto} option controls whether the pppm/disp is allowed to +generate PPPM parameters automatically. If set to {no}, parameters have +to be specified using the {gewald/disp}, {mesh/disp}, +{force/disp/real} or {force/disp/kspace} keywords, or +the code will stop with an error message. When this option is set to +{yes}, the error message will not appear and the simulation will start. +For a typical application, using the automatic parameter generation +will provide simulations that are either inaccurate or slow. Using this +option is thus not recommended. For guidelines on how to obtain good +parameters, see the "How-To"_Section_howto.html#howto_24 discussion. + +:line + +The {fftbench} keyword applies only to PPPM. It is off by default. If +this option is turned on, LAMMPS will perform a short FFT benchmark +computation and report its timings, and will thus finish a some seconds +later than it would if this option were off. + +:line + +The {force/disp/real} and {force/disp/kspace} keywords set the force +accuracy for the real and space computations for the dispersion part +of pppm/disp. As shown in "(Isele-Holder)"_#Isele-Holder1, optimal +performance and accuracy in the results is obtained when these values +are different. + +:line + +The {force} keyword overrides the relative accuracy parameter set by +the "kspace_style"_kspace_style.html command with an absolute +accuracy. The accuracy determines the RMS error in per-atom forces +calculated by the long-range solver and is thus specified in force +units. A negative value for the accuracy setting means to use the +relative accuracy parameter. The accuracy setting is used in +conjunction with the pairwise cutoff to determine the number of +K-space vectors for style {ewald}, the FFT grid size for style +{pppm}, or the real space grid size for style {msm}. + +:line + +The {gewald} keyword sets the value of the Ewald or PPPM G-ewald +parameter for charge as {rinv} in reciprocal distance units. Without +this setting, LAMMPS chooses the parameter automatically as a function +of cutoff, precision, grid spacing, etc. This means it can vary from +one simulation to the next which may not be desirable for matching a +KSpace solver to a pre-tabulated pairwise potential. This setting can +also be useful if Ewald or PPPM fails to choose a good grid spacing +and G-ewald parameter automatically. If the value is set to 0.0, +LAMMPS will choose the G-ewald parameter automatically. MSM does not +use the {gewald} parameter. + +:line + +The {gewald/disp} keyword sets the value of the Ewald or PPPM G-ewald +parameter for dispersion as {rinv} in reciprocal distance units. It +has the same meaning as the {gewald} setting for Coulombics. + +:line + +The {kmax/ewald} keyword sets the number of kspace vectors in each +dimension for kspace style {ewald}. The three values must be positive +integers, or else (0,0,0), which unsets the option. When this option +is not set, the Ewald sum scheme chooses its own kspace vectors, +consistent with the user-specified accuracy and pairwise cutoff. In +any case, if kspace style {ewald} is invoked, the values used are +printed to the screen and the log file at the start of the run. + +:line + The {mesh} keyword sets the grid size for kspace style {pppm} or {msm}. In the case of PPPM, this is the FFT mesh, and each dimension must be factorizable into powers of 2, 3, and 5. In the case of MSM, @@ -70,6 +200,8 @@ or MSM solver chooses its own grid size, consistent with the user-specified accuracy and pairwise cutoff. Values for x,y,z of 0,0,0 unset the option. +:line + The {mesh/disp} keyword sets the grid size for kspace style {pppm/disp}. This is the FFT mesh for long-range dispersion and ach dimension must be factorizable into powers of 2, 3, and 5. When this @@ -77,39 +209,7 @@ option is not set, the PPPM solver chooses its own grid size, consistent with the user-specified accuracy and pairwise cutoff. Values for x,y,z of 0,0,0 unset the option. -The {order} keyword determines how many grid spacings an atom's charge -extends when it is mapped to the grid in kspace style {pppm} or {msm}. -The default for this parameter is 5 for PPPM and 8 for MSM, which -means each charge spans 5 or 8 grid cells in each dimension, -respectively. For the LAMMPS implementation of MSM, the order can -range from 4 to 10 and must be even. For PPPM, the minimum allowed -setting is 2 and the maximum allowed setting is 7. The larger the -value of this parameter, the smaller that LAMMPS will set the grid -size, to achieve the requested accuracy. Conversely, the smaller the -order value, the larger the grid size will be. Note that there is an -inherent trade-off involved: a small grid will lower the cost of FFTs -or MSM direct sum, but a larger order parameter will increase the cost -of interpolating charge/fields to/from the grid. - -The {order/disp} keyword determines how many grid spacings an atom's -dispersion term extends when it is mapped to the grid in kspace style -{pppm/disp}. It has the same meaning as the {order} setting for -Coulombics. - -The {overlap} keyword can be used in conjunction with the {minorder} -keyword with the PPPM styles to adjust the amount of communication -that occurs when values on the FFT grid are exchanged between -processors. This communication is distinct from the communication -inherent in the parallel FFTs themselves, and is required because -processors interpolate charge and field values using grid point values -owned by neighboring processors (i.e. ghost point communication). If -the {overlap} keyword is set to {yes} then this communication is -allowed to extend beyond nearest-neighbor processors, e.g. when using -lots of processors on a small problem. If it is set to {no} then the -communication will be limited to nearest-neighbor processors and the -{order} setting will be reduced if necessary, as explained by the -{minorder} keyword discussion. The {overlap} keyword is always set to -{yes} in MSM. +:line The {minorder} keyword allows LAMMPS to reduce the {order} setting if necessary to keep the communication of ghost grid point limited to @@ -126,6 +226,42 @@ error if the grid communication is non-nearest-neighbor and {overlap} is set to {no}. The {minorder} keyword is not currently supported in MSM. +:line + +The {mix/disp} keyword selects the mixing rule for the dispersion +coefficients. With {pair}, the dispersion coefficients of unlike +types are computed as indicated with "pair_modify"_pair_modify.html. +With {geom}, geometric mixing is enforced on the dispersion +coefficients in the kspace coefficients. When using the arithmetic +mixing rule, this will speed-up the simulations but introduces some +error in the force computations, as shown in "(Wennberg)"_#Wennberg. +With {none}, it is assumed that no mixing rule is +applicable. Splitting of the dispersion coefficients will be performed +as described in "(Isele-Holder)"_#Isele-Holder1. + +This splitting can be influenced with the {splittol} keywords. Only +the eigenvalues that are larger than tol compared to the largest +eigenvalues are included. Using this keywords the original matrix of +dispersion coefficients is approximated. This leads to faster +computations, but the accuracy in the reciprocal space computations of +the dispersion part is decreased. + +:line + +The {order} keyword determines how many grid spacings an atom's charge +extends when it is mapped to the grid in kspace style {pppm} or {msm}. +The default for this parameter is 5 for PPPM and 8 for MSM, which +means each charge spans 5 or 8 grid cells in each dimension, +respectively. For the LAMMPS implementation of MSM, the order can +range from 4 to 10 and must be even. For PPPM, the minimum allowed +setting is 2 and the maximum allowed setting is 7. The larger the +value of this parameter, the smaller that LAMMPS will set the grid +size, to achieve the requested accuracy. Conversely, the smaller the +order value, the larger the grid size will be. Note that there is an +inherent trade-off involved: a small grid will lower the cost of FFTs +or MSM direct sum, but a larger order parameter will increase the cost +of interpolating charge/fields to/from the grid. + The PPPM order parameter may be reset by LAMMPS when it sets up the FFT grid if the implied grid stencil extends beyond the grid cells owned by neighboring processors. Typically this will only occur when @@ -134,30 +270,66 @@ be generated indicating the order parameter is being reduced to allow LAMMPS to run the problem. Automatic adjustment of the order parameter is not supported in MSM. -The {force} keyword overrides the relative accuracy parameter set by -the "kspace_style"_kspace_style.html command with an absolute -accuracy. The accuracy determines the RMS error in per-atom forces -calculated by the long-range solver and is thus specified in force -units. A negative value for the accuracy setting means to use the -relative accuracy parameter. The accuracy setting is used in -conjunction with the pairwise cutoff to determine the number of -K-space vectors for style {ewald}, the FFT grid size for style -{pppm}, or the real space grid size for style {msm}. +:line -The {gewald} keyword sets the value of the Ewald or PPPM G-ewald -parameter for charge as {rinv} in reciprocal distance units. Without -this setting, LAMMPS chooses the parameter automatically as a function -of cutoff, precision, grid spacing, etc. This means it can vary from -one simulation to the next which may not be desirable for matching a -KSpace solver to a pre-tabulated pairwise potential. This setting can -also be useful if Ewald or PPPM fails to choose a good grid spacing -and G-ewald parameter automatically. If the value is set to 0.0, -LAMMPS will choose the G-ewald parameter automatically. MSM does not -use the {gewald} parameter. +The {order/disp} keyword determines how many grid spacings an atom's +dispersion term extends when it is mapped to the grid in kspace style +{pppm/disp}. It has the same meaning as the {order} setting for +Coulombics. -The {gewald/disp} keyword sets the value of the Ewald or PPPM G-ewald -parameter for dispersion as {rinv} in reciprocal distance units. It -has the same meaning as the {gewald} setting for Coulombics. +:line + +The {overlap} keyword can be used in conjunction with the {minorder} +keyword with the PPPM styles to adjust the amount of communication +that occurs when values on the FFT grid are exchanged between +processors. This communication is distinct from the communication +inherent in the parallel FFTs themselves, and is required because +processors interpolate charge and field values using grid point values +owned by neighboring processors (i.e. ghost point communication). If +the {overlap} keyword is set to {yes} then this communication is +allowed to extend beyond nearest-neighbor processors, e.g. when using +lots of processors on a small problem. If it is set to {no} then the +communication will be limited to nearest-neighbor processors and the +{order} setting will be reduced if necessary, as explained by the +{minorder} keyword discussion. The {overlap} keyword is always set to +{yes} in MSM. + +:line + +The {pressure/scalar} keyword applies only to MSM. If this option is +turned on, only the scalar pressure (i.e. (Pxx + Pyy + Pzz)/3.0) will +be computed, which can be used, for example, to run an isotropic barostat. +Computing the full pressure tensor with MSM is expensive, and this option +provides a faster alternative. The scalar pressure is computed using a +relationship between the Coulombic energy and pressure "(Hummer)"_#Hummer +instead of using the virial equation. This option cannot be used to access +individual components of the pressure tensor, to compute per-atom virial, +or with suffix kspace/pair styles of MSM, like OMP or GPU. + +:line + +RENE: check this section + +The {scafacos} keyword is used for settings that are passed to the +ScaFaCoS library when using "kspace_style scafacos"_kspace_style.html. + +The {tolerance} option affects how the {accuracy} specified with +the "kspace_style"_kspace_style.html command is interpreted by ScaFaCoS. +The following values may be used: + +energy = absolute accuracy in total Coulomic energy +energy_rel = relative accuracy in total Coulomic energy +field = absolute accuracy in electric field +field_rel = relative accuracy in electric field +potential = absolute accuracy in total Coulomic potential +potential_rel = relative accuracy in total Coulomic potential + +RENE: which one is closest to what LAMMPS used (see kspace_style +command) - is it "field"? That's why I set it as the default. + +RENE: How is potential different than energy for this ?? + +:line The {slab} keyword allows an Ewald or PPPM solver to be used for a systems that are periodic in x,y but non-periodic in z - a @@ -191,109 +363,11 @@ the "fix efield"_fix_efield.html command, it will not give the correct dielectric constant due to the Yeh/Berkowitz "(Yeh)"_#Yeh correction not being compatible with how "fix efield"_fix_efield.html works. -The {compute} keyword allows Kspace computations to be turned off, -even though a "kspace_style"_kspace_style.html is defined. This is -not useful for running a real simulation, but can be useful for -debugging purposes or for computing only partial forces that do not -include the Kspace contribution. You can also do this by simply not -defining a "kspace_style"_kspace_style.html, but a Kspace-compatible -"pair_style"_pair_style.html requires a kspace style to be defined. -This keyword gives you that option. +:line -The {cutoff/adjust} keyword applies only to MSM. If this option is -turned on, the Coulombic cutoff will be automatically adjusted at the -beginning of the run to give the desired estimated error. Other -cutoffs such as LJ will not be affected. If the grid is not set using -the {mesh} command, this command will also attempt to use the optimal -grid that minimizes cost using an estimate given by -"(Hardy)"_#Hardy1. Note that this cost estimate is not exact, somewhat -experimental, and still may not yield the optimal parameters. +The {splittol} keyword is disussed above with the {mix/disp} keyword. -The {pressure/scalar} keyword applies only to MSM. If this option is -turned on, only the scalar pressure (i.e. (Pxx + Pyy + Pzz)/3.0) will -be computed, which can be used, for example, to run an isotropic barostat. -Computing the full pressure tensor with MSM is expensive, and this option -provides a faster alternative. The scalar pressure is computed using a -relationship between the Coulombic energy and pressure "(Hummer)"_#Hummer -instead of using the virial equation. This option cannot be used to access -individual components of the pressure tensor, to compute per-atom virial, -or with suffix kspace/pair styles of MSM, like OMP or GPU. - -The {fftbench} keyword applies only to PPPM. It is off by default. If -this option is turned on, LAMMPS will perform a short FFT benchmark -computation and report its timings, and will thus finish a some seconds -later than it would if this option were off. - -The {collective} keyword applies only to PPPM. It is set to {no} by -default, except on IBM BlueGene machines. If this option is set to -{yes}, LAMMPS will use MPI collective operations to remap data for -3d-FFT operations instead of the default point-to-point communication. -This is faster on IBM BlueGene machines, and may also be faster on -other machines if they have an efficient implementation of MPI -collective operations and adequate hardware. - -The {diff} keyword specifies the differentiation scheme used by the -PPPM method to compute forces on particles given electrostatic -potentials on the PPPM mesh. The {ik} approach is the default for -PPPM and is the original formulation used in "(Hockney)"_#Hockney1. It -performs differentiation in Kspace, and uses 3 FFTs to transfer each -component of the computed fields back to real space for total of 4 -FFTs per timestep. - -The analytic differentiation {ad} approach uses only 1 FFT to transfer -information back to real space for a total of 2 FFTs per timestep. It -then performs analytic differentiation on the single quantity to -generate the 3 components of the electric field at each grid point. -This is sometimes referred to as "smoothed" PPPM. This approach -requires a somewhat larger PPPM mesh to achieve the same accuracy as -the {ik} method. Currently, only the {ik} method (default) can be -used for a triclinic simulation cell with PPPM. The {ad} method is -always used for MSM. - -NOTE: Currently, not all PPPM styles support the {ad} option. Support -for those PPPM variants will be added later. - -The {kmax/ewald} keyword sets the number of kspace vectors in each -dimension for kspace style {ewald}. The three values must be positive -integers, or else (0,0,0), which unsets the option. When this option -is not set, the Ewald sum scheme chooses its own kspace vectors, -consistent with the user-specified accuracy and pairwise cutoff. In -any case, if kspace style {ewald} is invoked, the values used are -printed to the screen and the log file at the start of the run. - -With the {mix/disp} keyword one can select the mixing rule for the -dispersion coefficients. With {pair}, the dispersion coefficients of -unlike types are computed as indicated with -"pair_modify"_pair_modify.html. With {geom}, geometric mixing is -enforced on the dispersion coefficients in the kspace -coefficients. When using the arithmetic mixing rule, this will -speed-up the simulations but introduces some error in the force -computations, as shown in "(Wennberg)"_#Wennberg. With {none}, it is -assumed that no mixing rule is applicable. Splitting of the dispersion -coefficients will be performed as described in -"(Isele-Holder)"_#Isele-Holder1. This splitting can be influenced with -the {splittol} keywords. Only the eigenvalues that are larger than tol -compared to the largest eigenvalues are included. Using this keywords -the original matrix of dispersion coefficients is approximated. This -leads to faster computations, but the accuracy in the reciprocal space -computations of the dispersion part is decreased. - -The {force/disp/real} and {force/disp/kspace} keywords set the force -accuracy for the real and space computations for the dispersion part -of pppm/disp. As shown in "(Isele-Holder)"_#Isele-Holder1, optimal -performance and accuracy in the results is obtained when these values -are different. - -The {disp/auto} option controls whether the pppm/disp is allowed to -generate PPPM parameters automatically. If set to {no}, parameters have -to be specified using the {gewald/disp}, {mesh/disp}, -{force/disp/real} or {force/disp/kspace} keywords, or -the code will stop with an error message. When this option is set to -{yes}, the error message will not appear and the simulation will start. -For a typical application, using the automatic parameter generation -will provide simulations that are either inaccurate or slow. Using this -option is thus not recommended. For guidelines on how to obtain good -parameters, see the "How-To"_Section_howto.html#howto_24 discussion. +:line [Restrictions:] none @@ -306,10 +380,11 @@ parameters, see the "How-To"_Section_howto.html#howto_24 discussion. The option defaults are mesh = mesh/disp = 0 0 0, order = order/disp = 5 (PPPM), order = 10 (MSM), minorder = 2, overlap = yes, force = -1.0, gewald = gewald/disp = 0.0, slab = 1.0, compute = yes, cutoff/adjust = -yes (MSM), pressure/scalar = yes (MSM), fftbench = no (PPPM), diff = ik -(PPPM), mix/disp = pair, force/disp/real = -1.0, force/disp/kspace = -1.0, -split = 0, tol = 1.0e-6, and disp/auto = no. For pppm/intel, order = -order/disp = 7. +yes (MSM), pressure/scalar = yes (MSM), fftbench = no (PPPM), diff = +ik (PPPM), mix/disp = pair, force/disp/real = -1.0, force/disp/kspace += -1.0, split = 0, tol = 1.0e-6, and disp/auto = no. For pppm/intel, +order = order/disp = 7. For scafacos settings, scafacos tolerance +field. :line diff --git a/doc/src/kspace_style.txt b/doc/src/kspace_style.txt index 4f27c9aa78..e5333489cc 100644 --- a/doc/src/kspace_style.txt +++ b/doc/src/kspace_style.txt @@ -12,7 +12,7 @@ kspace_style command :h3 kspace_style style value :pre -style = {none} or {ewald} or {ewald/disp} or {ewald/omp} or {pppm} or {pppm/cg} or {pppm/disp} or {pppm/tip4p} or {pppm/stagger} or {pppm/disp/tip4p} or {pppm/gpu} or {pppm/kk} or {pppm/omp} or {pppm/cg/omp} or {pppm/tip4p/omp} or {msm} or {msm/cg} or {msm/omp} or {msm/cg/omp} :ulb,l +style = {none} or {ewald} or {ewald/disp} or {ewald/omp} or {pppm} or {pppm/cg} or {pppm/disp} or {pppm/tip4p} or {pppm/stagger} or {pppm/disp/tip4p} or {pppm/gpu} or {pppm/kk} or {pppm/omp} or {pppm/cg/omp} or {pppm/tip4p/omp} or {msm} or {msm/cg} or {msm/omp} or {msm/cg/omp} or {scafacos} :ulb,l {none} value = none {ewald} value = accuracy accuracy = desired relative error in forces @@ -22,7 +22,7 @@ style = {none} or {ewald} or {ewald/disp} or {ewald/omp} or {pppm} or {pppm/cg} accuracy = desired relative error in forces {pppm} value = accuracy accuracy = desired relative error in forces - {pppm/cg} value = accuracy (smallq) + {pppm/cg} values = accuracy (smallq) accuracy = desired relative error in forces smallq = cutoff for charges to be considered (optional) (charge units) {pppm/disp} value = accuracy @@ -56,7 +56,10 @@ style = {none} or {ewald} or {ewald/disp} or {ewald/omp} or {pppm} or {pppm/cg} accuracy = desired relative error in forces {msm/cg/omp} value = accuracy (smallq) accuracy = desired relative error in forces - smallq = cutoff for charges to be considered (optional) (charge units) :pre + smallq = cutoff for charges to be considered (optional) (charge units) + {scafacos} values = method accuracy + method = fmm or p3m or ... RENE + accuracy = desired relative error in forces :pre :ule [Examples:] @@ -64,6 +67,7 @@ style = {none} or {ewald} or {ewald/disp} or {ewald/omp} or {pppm} or {pppm/cg} kspace_style pppm 1.0e-4 kspace_style pppm/cg 1.0e-5 1.0e-6 kspace style msm 1.0e-4 +kspace style scafacos fmm 1.0e-4 kspace_style none :pre [Description:] @@ -210,6 +214,63 @@ pressure simulation with MSM will cause the code to run slower. :line +RENE: edit this section + +The {scafacos} style is a wrapper on the "ScaFaCoS Coulomb solver +library"_http://www.scafacos.de which provides a variety of solver +methods which can be used with LAMMPS. The paper by "(Who)"_#Who2012 +gives an overview of ScaFaCoS. + +ScaFaCoS was developed by a consortium of German research facilities +with a BMBF (German Ministry of Science and Education) funded project +in 2009-2012. Participants of the consortium were the Universities of +Bonn, Chemnitz, Stuttgart, and Wuppertal as well as the +Forschungszentrum Juelich. + +The library is available for download at "http://scafacos.de" or can +be cloned from the git-repository +"git://github.com/scafacos/scafacos.git". + +In order to use this KSpace style, you must download and build the +ScaFaCoS library, then build LAMMPS with the USER-SCAFACOS package +installed package which links LAMMPS to the ScaFaCoS library. +See details on "this page"_Section_packages.html#USER-SCAFACOS. + +NOTE: Unlike other KSpace solvers in LAMMPS, ScaFaCoS computes all +Coulombic interactions, both short- and long-range. Thus you should +NOT use a Coulmbic pair style when using kspace_style scafacos. Thus +the total Coulombic energy (short- and long-range) will be tallied for +"thermodynamic output"_thermo_style.html command as part of the +{elong} keyword; the {ecoul} keyword will be zero. + +NOTE: See the restriction below about use of ScaFaCoS in LAMMPS with +molecular charged systems or the TIP4P water model. + +Unlike other KSpace solvers in LAMMPS, ScaFaCoS computes all +Coulombic interactions, both short- and long-range. Thus you should +NOT use a Coulmbic pair style when using kspace_style scafacos. Thus +the total Coulombic energy (short- and long-range) will be tallied for +"thermodynamic output"_thermo_style.html command as part of the +{elong} keyword; the {ecoul} keyword will be zero. + +The specified {method} determines which ScaFaCoS algorithm is used. +The list of methods shown above are the ScaFaCoS methods currently +available from LAMMPS. + +RENE: explain this accuracy better compared to what +it means for other LAMMPS methods? + +The specified {accuracy} is similar to the accuracy setting for other +LAMMPS KSpace styles, but is passed to ScaFaCoS, which can interpret +it in different ways for different methods it supports. See the +"kspace_modify scafacos accuracy"_kspace_modify.html command for +details. + +The "kspace_modify scafacos"_kspace_modify.html command also explains +all the ScaFaCoS options currently exposed to LAMMPS. + +:line + The specified {accuracy} determines the relative RMS error in per-atom forces calculated by the long-range solver. It is set as a dimensionless number, relative to the force that two unit point @@ -321,12 +382,24 @@ dimensions. The only exception is if the slab option is set with "kspace_modify"_kspace_modify.html, in which case the xy dimensions must be periodic and the z dimension must be non-periodic. +The scafacos KSpace style will only be enabled if LAMMPS is built with +the USER-SCAFACOS package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +The use of ScaFaCos in LAMMPS does not yet support molecular charged +systems where the short-range Coulombic interactions between atoms in +the same bond/angle/dihedral are weighted by the +"special_bonds"_special_bonds.html command. Likewise it does not +support the "TIP4P water style" where a fictitious charge site is +introduced in each water molecule. + [Related commands:] "kspace_modify"_kspace_modify.html, "pair_style lj/cut/coul/long"_pair_lj.html, "pair_style lj/charmm/coul/long"_pair_charmm.html, "pair_style -lj/long/coul/long"_pair_lj_long.html, "pair_style buck/coul/long"_pair_buck.html +lj/long/coul/long"_pair_lj_long.html, "pair_style +buck/coul/long"_pair_buck.html [Default:] @@ -384,5 +457,11 @@ Evaluation of Forces for the Simulation of Biomolecules, University of Illinois at Urbana-Champaign, (2006). :link(Hardy2009) -[(Hardy2)] Hardy, Stone, Schulten, Parallel Computing 35 (2009) -164-177. +[(Hardy2)] Hardy, Stone, Schulten, Parallel Computing, 35, 164-177 +(2009). + +RENE: + +:link(Who2012) +[(Who)] Who, Author2, Author3, J of Long Range Solvers, 35, 164-177 +(2012). diff --git a/examples/USER/scafacos/README b/examples/USER/scafacos/README new file mode 100644 index 0000000000..0ddd19d3ee --- /dev/null +++ b/examples/USER/scafacos/README @@ -0,0 +1,10 @@ +RENE: this dir needs a few short-running examples, +for both 1 and 4 procs, of using different Scafacos methods. +with sample log file outputs - so users can verify +they are running it correctly + +For each input script, there should be files like + +in.scafacos.fmm +log.20Jul18.scafacos.fmm.g++.1 +log.20Jul18.scafacos.fmm.g++.4 diff --git a/examples/scafacos/data.NaCl b/examples/USER/scafacos/data.NaCl similarity index 100% rename from examples/scafacos/data.NaCl rename to examples/USER/scafacos/data.NaCl diff --git a/examples/scafacos/in.scafacos b/examples/USER/scafacos/in.scafacos similarity index 100% rename from examples/scafacos/in.scafacos rename to examples/USER/scafacos/in.scafacos diff --git a/lib/scafacos/Install.py b/lib/scafacos/Install.py index 5d4ca7e96a..1b39335511 100644 --- a/lib/scafacos/Install.py +++ b/lib/scafacos/Install.py @@ -29,7 +29,7 @@ make lib-scafacos args="-p $HOME/scafacos" # use existing Scafacos installation # settings -#version = "voro++-0.4.6" +version = "scafacos-1.0" #url = "http://math.lbl.gov/voro++/download/dir/%s.tar.gz" % version # print error message or help @@ -89,7 +89,6 @@ def geturl(url,fname): args = sys.argv[1:] nargs = len(args) -#if nargs == 0: error() homepath = "." @@ -114,8 +113,7 @@ while iarg < nargs: else: error() homepath = fullpath(homepath) -#homedir = "%s/%s" % (homepath,version) -homedir = homepath +homedir = "%s/%s" % (homepath,version) if (pathflag): if not os.path.isdir(scafacospath): error("Scafacos path does not exist") @@ -124,16 +122,13 @@ if (pathflag): if (buildflag and pathflag): error("Cannot use -b and -p flag at the same time") -#if (not buildflag and not pathflag): -# error("Have to use either -b or -p flag") - # download and unpack Scafacos tarball if buildflag: print("Downloading Scafacos ...") geturl(url,"%s/%s.tar.gz" % (homepath,version)) - print("Unpacking Voro++ tarball ...") + print("Unpacking Scafacos tarball ...") if os.path.exists("%s/%s" % (homepath,version)): cmd = 'rm -rf "%s/%s"' % (homepath,version) subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) @@ -162,7 +157,7 @@ if linkflag: os.remove("includelink") if os.path.isfile("liblink") or os.path.islink("liblink"): os.remove("liblink") - cmd = 'ln -s "scafacos/include" includelink' + cmd = 'ln -s "%s/include" includelink' % homedir subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) - cmd = 'ln -s "scafacos/lib" liblink' + cmd = 'ln -s "%s/lib" liblink' % homedir subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) diff --git a/src/USER-SCAFACOS/README b/src/USER-SCAFACOS/README new file mode 100644 index 0000000000..30534499e4 --- /dev/null +++ b/src/USER-SCAFACOS/README @@ -0,0 +1,5 @@ +RENE: need a short README file - see other examples in the +USER package dirs within src + +give short background on ScaFaCos, authors, contact info +for LAMMPS users to have if needed, citation diff --git a/src/USER-SCAFACOS/fix_scafacos.cpp b/src/USER-SCAFACOS/fix_scafacos.cpp deleted file mode 100644 index 08aebb9f22..0000000000 --- a/src/USER-SCAFACOS/fix_scafacos.cpp +++ /dev/null @@ -1,456 +0,0 @@ -/* ---------------------------------------------------------------------- - 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: Rene Halver (JSC) -------------------------------------------------------------------------- */ - -#include -#include -#include -#include "fix_scafacos.h" -#include "atom.h" -#include "comm.h" -#include "update.h" -#include "neighbor.h" -#include "domain.h" -#include "force.h" -#include "pair.h" -#include "modify.h" -#include "compute.h" -#include "memory.h" -#include "error.h" - -// ScaFaCoS library -#include -#include -#include "fcs.h" -#include "universe.h" - -using namespace LAMMPS_NS; -using namespace FixConst; - -#define INVOKED_PERATOM 8 - -/* ---------------------------------------------------------------------- */ - -FixScafacos::FixScafacos(LAMMPS *lmp, int narg, char **arg) : - Fix(lmp, narg, arg) -{ - // form of fix string: - // fix <#> scafacos [ tolerance ] - - - if (narg < 4) error->all(FLERR,"Illegal fix scafacos command"); - - // read method from fix input - method = arg[3]; - - int arg_index = 4; - - tolerance_set = false; - - while(arg_index < narg) - { - // check if tolerance option is set - if (strcmp(arg[arg_index],"tolerance") == 0) - { - tolerance_set = true; - ++arg_index; - if (strcmp(arg[arg_index],"energy") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; - else if (strcmp(arg[arg_index],"energy_rel") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_ENERGY_REL; - else if (strcmp(arg[arg_index],"field") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_FIELD; - else if (strcmp(arg[arg_index],"field_rel") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_FIELD_REL; - else if (strcmp(arg[arg_index],"potential") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL; - else if (strcmp(arg[arg_index],"potential_rel") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL_REL; - else - error->all(FLERR,"Illegal fix scafacos command"); - ++arg_index; - tolerance_value = atof(arg[arg_index]); - ++arg_index; - } - else - error->all(FLERR,"Illegal fix scafacos command"); - } -} - -/* ---------------------------------------------------------------------- */ - -FixScafacos::~FixScafacos() -{ - memory->destroy(pot); - memory->destroy(field); -} - -/* ---------------------------------------------------------------------- */ - -int FixScafacos::setmask() -{ - int mask = 0; - //mask |= INITIAL_INTEGRATE; - //mask |= FINAL_INTEGRATE; - mask |= PRE_REVERSE; - mask |= POST_FORCE; - mask |= MIN_POST_FORCE; - mask |= THERMO_ENERGY; - return mask; -} - -/* ---------------------------------------------------------------------- */ - -void FixScafacos::init() -{ - // error checks - - if (domain->dimension == 2) - error->all(FLERR,"Fix scafacos requires 3d problem"); - - rank = comm->me; - - int nlocal = 0; - int proc_grid[3] = {comm->procgrid[0], comm->procgrid[1], comm->procgrid[2]}; - int myloc[3] = {comm->myloc[0], comm->myloc[1], comm->myloc[2]}; - - // call ScaFaCoS init - // TODO: check if universe->uworld is a good idea for computations - result = fcs_init(&fcs,method.c_str(),universe->uworld); - if (!check_result(result, rank)) return; - - setup_handle(); - - nlocal = atom -> nlocal; - // get particle data - x = &atom->x[0][0]; - q = atom->q; - - if (tolerance_set) - { - result = fcs_set_tolerance(fcs,tolerance_type,tolerance_value); - if (!check_result(result, rank)) return; - } - - // print out parameters within handle - if (rank == 0) fcs_print_parameters(fcs); - - // call the tuning routine (needs to be redone, if critical system - // parameters should change) - result = fcs_tune(fcs,nlocal,x,q); - if (!check_result(result, rank)) return; - - // allocate arrays larger in order to avoid fast - // reallocation due to fluctuations - local_array_size = (int)(1.25 * (double)nlocal); - - // allocate new result arrays - memory->create(pot,local_array_size,"scafacos:potential"); - memory->create(field,local_array_size*3,"scafacos:field"); -} - -/* ---------------------------------------------------------------------- */ - -void FixScafacos::init_list(int id, NeighList *ptr) -{ -} - -/* ---------------------------------------------------------------------- */ - -void FixScafacos::setup(int vflag) -{ - post_force(vflag); -} - -/* ---------------------------------------------------------------------- */ - -void FixScafacos::min_setup(int vflag) -{ - post_force(vflag); -} - -/* ---------------------------------------------------------------------- */ - -void FixScafacos::setup_pre_reverse(int eflag, int vflag) -{ - pre_reverse(eflag,vflag); -} - -/* ---------------------------------------------------------------------- - integrate electronic degrees of freedom -------------------------------------------------------------------------- */ - -void FixScafacos::initial_integrate(int vflag) {} - -/* ---------------------------------------------------------------------- - store eflag, so can use it in post_force to tally per-atom energies -------------------------------------------------------------------------- */ - -void FixScafacos::pre_reverse(int eflag, int vflag) -{ - int eflag_caller = eflag; -} - -/* ---------------------------------------------------------------------- */ - -void FixScafacos::post_force(int vflag) -{ - - int nlocal; - - nlocal = atom->nlocal; - x = &atom->x[0][0]; - q = atom->q; - - // check if box has changed since the last call of fcs_tune, - // if it has, call fcs_tune - if (box_has_changed()) - { - setup_handle(); - - // print out parameters within handle TODO: should be done in C style - /* - if (rank == 0) - { - std::cout << " updated ScaFaCoS handle: " << std::endl; - fcs_print_parameters(fcs); - } - */ - - // call the tuning routine (needs to be redone, if critical - // system parameters should change) - result = fcs_tune(fcs,nlocal,x,q); - if (!check_result(result, rank)) return; - } - - // check if arrays for potentials and field are still large enough - // for the number of particles on process - if (nlocal > local_array_size) - { - // allocate arrays larger in order to avoid fast - // reallocation due to fluctuations - local_array_size = (int)(1.25 * (double)nlocal); - - // destroy old result arrays - memory->destroy(pot); - memory->destroy(field); - - // allocate result arrays - memory->create(pot,local_array_size,"scafacos:potential"); - memory->create(field,3*local_array_size,"scafacos:field"); - - } - - // set result vectors to zero - for ( int i = 0; i < nlocal; ++i) - { - pot[i] = 0.0; - field[3*i] = field[3*i+1] = field[3*i+2] = 0.0; - } - - // compute Coulomb - fcs_run(fcs, nlocal, x, q, field, pot); - if(!check_result(result,rank)) return; - - double E_coul_loc = 0.0; - - for (int i = 0; i < atom->nlocal; ++i) - { - //std::cout << atom->f[i][0] << " " << field[3*i] << " " << q[i] << std::endl; - atom->f[i][0] += field[3*i] * q[i]; - atom->f[i][1] += field[3*i+1] * q[i]; - atom->f[i][2] += field[3*i+2] * q[i]; - E_coul_loc += 0.5 * q[i] * pot[i]; - } - - force->pair->eng_coul += E_coul_loc; - -} - -/* ---------------------------------------------------------------------- */ - -void FixScafacos::min_post_force(int vflag) -{ - post_force(vflag); -} - -/* ---------------------------------------------------------------------- - integrate electronic degrees of freedom -------------------------------------------------------------------------- */ - -void FixScafacos::final_integrate() {} - -/* ---------------------------------------------------------------------- */ - -void FixScafacos::reset_dt() -{ - //dtv = update->dt; - //dtf = 0.5 * update->dt * force->ftm2v; -} - -/* ---------------------------------------------------------------------- - DFTB energy from LATTE -------------------------------------------------------------------------- */ - -double FixScafacos::compute_scalar() -{ -} - -/* ---------------------------------------------------------------------- - memory usage of local arrays -------------------------------------------------------------------------- */ - -double FixScafacos::memory_usage() -{ - double bytes = 0.0; - bytes += local_array_size * sizeof(double); - bytes += local_array_size * 3 * sizeof(double); - return bytes; -} - -/* ---------------------------------------------------------------------- - setup of ScaFaCoS handle with common parameters -------------------------------------------------------------------------- */ -void FixScafacos::setup_handle() -{ - // store periodicity - periodicity[0] = domain->xperiodic; - periodicity[1] = domain->yperiodic; - periodicity[2] = domain->zperiodic; - - // store offset of the system - offset[0] = domain->boundary[0][0]; - offset[1] = domain->boundary[1][0]; - offset[2] = domain->boundary[2][0]; - - // calculate box vectors - box_x[0] = domain->prd[0]; - box_x[1] = box_x[2] = 0.0; - - box_y[1] = domain->prd[1]; - box_y[0] = box_y[2] = 0.0; - - box_z[2] = domain->prd[2]; - box_z[1] = box_z[0] = 0.0; - - total_particles = atom->natoms; - - // TODO: for now disable short-range calculations within LAMMPS - near_field_flag = 0; - - // enter all parameters required to ScaFaCoS handle - result = fcs_set_box_a(fcs, box_x); - if (!check_result(result, rank)) return; - - result = fcs_set_box_b(fcs, box_y); - if (!check_result(result, rank)) return; - - result = fcs_set_box_c(fcs, box_z); - if (!check_result(result, rank)) return; - - result = fcs_set_box_origin(fcs, offset); - if (!check_result(result, rank)) return; - - result = fcs_set_periodicity(fcs, periodicity); - if (!check_result(result, rank)) return; - - result = fcs_set_near_field_flag(fcs, near_field_flag); - if (!check_result(result, rank)) return; - - result = fcs_set_total_particles(fcs, atom->natoms); - if (!check_result(result, rank)) return; -} - -/* ---------------------------------------------------------------------- - check if box parameters changed, requiring a new call to fcs_tune -------------------------------------------------------------------------- */ -bool FixScafacos::box_has_changed() -{ - bool changed = false; - - double n_periodicity[3]; - double n_offset[3]; - double n_box_x[3]; - double n_box_y[3]; - double n_box_z[3]; - - int n_total_particles; - - // store periodicity - n_periodicity[0] = domain->xperiodic; - n_periodicity[1] = domain->yperiodic; - n_periodicity[2] = domain->zperiodic; - - // store offset of the system - n_offset[0] = domain->boundary[0][0]; - n_offset[1] = domain->boundary[1][0]; - n_offset[2] = domain->boundary[2][0]; - - // calculate box vectors - n_box_x[0] = domain->prd[0]; - n_box_x[1] = n_box_x[2] = 0.0; - - n_box_y[1] = domain->prd[1]; - n_box_y[0] = n_box_y[2] = 0.0; - - n_box_z[2] = domain->prd[2]; - n_box_z[1] = n_box_z[0] = 0.0; - - n_total_particles = atom->natoms; - - changed = changed || - ( n_periodicity[0] != periodicity[0] ) || - ( n_periodicity[1] != periodicity[1] ) || - ( n_periodicity[2] != periodicity[2] ) || - ( n_offset[0] != offset[0] ) || - ( n_offset[1] != offset[1] ) || - ( n_offset[2] != offset[2] ) || - ( n_box_x[0] != box_x[0] ) || - ( n_box_x[1] != box_x[1] ) || - ( n_box_x[2] != box_x[2] ) || - ( n_box_y[0] != box_y[0] ) || - ( n_box_y[1] != box_y[1] ) || - ( n_box_y[2] != box_y[2] ) || - ( n_box_z[0] != box_z[0] ) || - ( n_box_z[1] != box_z[1] ) || - ( n_box_z[2] != box_z[2] ) || - ( n_total_particles != total_particles ); - return changed; -} - - - -/* ---------------------------------------------------------------------- - check of ScaFaCoS result -------------------------------------------------------------------------- */ -bool FixScafacos::check_result(FCSResult result, int comm_rank) -{ - if (result) - { - printf("ScaFaCoS Error: Caught error on task %d.\n", comm_rank); - std::string err_msg; - std::stringstream ss; - - ss << fcs_result_get_function(result) << "\n" - << fcs_result_get_message(result) << "\n"; - err_msg = ss.str(); - - error -> all(FLERR, err_msg.c_str()); - fcs_result_destroy(result); - } - return true; -} - diff --git a/src/USER-SCAFACOS/fix_scafacos.h b/src/USER-SCAFACOS/fix_scafacos.h deleted file mode 100644 index ffd4a94d32..0000000000 --- a/src/USER-SCAFACOS/fix_scafacos.h +++ /dev/null @@ -1,164 +0,0 @@ -/* -*- 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 FIX_CLASS - -FixStyle(scafacos,FixScafacos) - -#else - -#ifndef LMP_FIX_SCAFACOS_H -#define LMP_FIX_SCAFACOS_H - -#include "fix.h" -#include "fcs.h" -#include - -namespace LAMMPS_NS { - -class FixScafacos : public Fix { - public: - FixScafacos(class LAMMPS *, int, char **); - virtual ~FixScafacos(); - int setmask(); - void init(); - void init_list(int, NeighList*); - void setup(int); - void min_setup(int); - void setup_pre_reverse(int, int); - void initial_integrate(int); - void pre_reverse(int, int); - void post_force(int); - void min_post_force(int); - void final_integrate(); - void reset_dt(); - double compute_scalar(); - double memory_usage(); - - protected: - std::string method; - - // MPI rank - int rank; - - // source arrays for positions and charges - double *x, *q; - // result arrays for potentials and field - double *pot, *field; - - // box vectors for each dimension - fcs_float box_x[3], box_y[3], box_z[3]; - // offset of the box from the origin - fcs_float offset[3]; - - // periodicity of the system - fcs_int periodicity[3]; - - // ScaFaCoS handle - FCS fcs; - - // ScaFaCoS result variable - FCSResult result; - - // function to check results - bool check_result(FCSResult, int); - - // function to set up handle with common parameters - void setup_handle(); - - // function to check if the box parameters changed, so that a new tuning step is required - bool box_has_changed(); - - // store total number of particles (to check if tune needs to be called again) - fcs_int total_particles; - - // store number of local particles (to be able to readjust the size of result arrays, when needed) - int local_array_size; - - // should the near field calculations be computed by LAMMPS? - fcs_int near_field_flag; - - // type of accuracy chosen (if customized) - fcs_int tolerance_type; - - // value of tolerance - fcs_float tolerance_value; - - // is tolerance set? - bool tolerance_set; - - // check if fmm is chosen (ghost particles, since the implementation needs at least 1 particle on each process!) - bool fmm_chosen; - - // FMM: fmm particle array size - int fmm_array_size; -}; - -} - -#endif -#endif - -/* ERROR/WARNING messages: - -E: Must use units metal with fix latte command - -UNDOCUMENTED - -E: Fix latte currently runs only in serial - -UNDOCUMENTED - -E: LAMMPS is linked against incompatible LATTE library - -UNDOCUMENTED - -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: Fix latte does not yet support a LAMMPS calculation of a Coulomb potential - -UNDOCUMENTED - -E: Could not find fix latte compute ID - -UNDOCUMENTED - -E: Fix latte compute ID does not compute pe/atom - -UNDOCUMENTED - -E: Fix latte requires 3d problem - -UNDOCUMENTED - -E: Fix latte cannot compute Coulomb potential - -UNDOCUMENTED - -E: Fix latte requires 3d simulation - -UNDOCUMENTED - -W: Fix latte should come after all other integration fixes - -UNDOCUMENTED - -E: Internal LATTE problem - -UNDOCUMENTED - -*/ diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index c5efd6a191..10721b33c8 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -38,40 +38,16 @@ using namespace LAMMPS_NS; Scafacos::Scafacos(LAMMPS *lmp, int narg, char **arg) : KSpace(lmp, narg, arg) { - if (narg < 2) error->all(FLERR,"Illegal scafacos command"); + if (narg != 2) error->all(FLERR,"Illegal scafacos command"); int n = strlen(arg[0]) + 1; method = new char[n]; strcpy(method,arg[0]); + tolerance = force->numeric(FLERR,arg[1]); - // additional args + // optional ScaFaCoS library setting defaults - int tflag = 0; - - int iarg = 1; - while (iarg < narg) { - if (strcmp(arg[iarg],"tolerance") == 0) { - if (iarg+3 > narg) error->all(FLERR,"Illegal scafacos command"); - tflag = 1; - if (strcmp(arg[iarg+1],"energy") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; - else if (strcmp(arg[iarg+1],"energy_rel") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_ENERGY_REL; - else if (strcmp(arg[iarg+1],"field") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_FIELD; - else if (strcmp(arg[iarg+1],"field_rel") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_FIELD_REL; - else if (strcmp(arg[iarg+1],"potential") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL; - else if (strcmp(arg[iarg+1],"potential_rel") == 0) - tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL_REL; - else error->all(FLERR,"Illegal scafacos command"); - tolerance = force->numeric(FLERR,arg[iarg+2]); - iarg += 3; - } else error->all(FLERR,"Illegal scafacos command"); - } - - if (!tflag) error->all(FLERR,"Must set tolerance in scafacos command"); + tolerance_type = FCS_TOLERANCE_TYPE_FIELD; // initializations @@ -92,7 +68,7 @@ Scafacos::~Scafacos() memory->destroy(epot); memory->destroy(efield); - // NOTE: any clean-up call to ScaFaCoS needed? + // RENE: any clean-up/shut-down call to ScaFaCoS needed? } /* ---------------------------------------------------------------------- */ @@ -100,7 +76,6 @@ Scafacos::~Scafacos() void Scafacos::init() { // error checks - // NOTE: allow triclinic at some point if (domain->dimension == 2) error->all(FLERR,"Cannot use ScaFaCoS with 2d simulation"); @@ -108,11 +83,13 @@ void Scafacos::init() if (domain->triclinic) error->all(FLERR,"Cannot use ScaFaCoS with triclinic domain yet"); + if (atom->natoms > INT_MAX && sizeof(fcs_int) != 8) + error->all(FLERR,"Scafacos atom count exceeds 2B"); + // one-time initialization of ScaFaCoS scale = 1.0; qqrd2e = force->qqrd2e; - //qsum_qsq(); if (!initialized) { result = fcs_init(&fcs,method,world); @@ -147,13 +124,14 @@ void Scafacos::compute(int eflag, int vflag) double *q = atom->q; int nlocal = atom->nlocal; + // RENE: why is scale needed? + const double qscale = qqrd2e * scale; - // if simluation box has changed, call fcs_tune() - if (eflag || vflag) ev_setup(eflag,vflag); - else - eflag_atom = 0; + else eflag_atom = 0; + + // if simulation box has changed, call fcs_tune() if (box_has_changed()) { setup_handle(); @@ -173,7 +151,7 @@ void Scafacos::compute(int eflag, int vflag) } // initialize epot & efield - // NOTE: is this necessary? + // RENE: is this necessary? or does Scafacos just set them for (int i = 0; i < nlocal; i++) { epot[i] = 0.0; @@ -201,17 +179,47 @@ void Scafacos::compute(int eflag, int vflag) myeng += 0.5 * qone * epot[i]; } - if (eflag_atom) - { + if (eflag_atom) { for (int i = 0; i < nlocal; i++) - { eatom[i] = qscale * epot[i]; - } } MPI_Allreduce(&myeng,&energy,1,MPI_DOUBLE,MPI_SUM,world); } +/* ---------------------------------------------------------------------- */ + +int Scafacos::modify_param(int narg, char **arg) +{ + // RENE: add any Scafacos options here you want to expose to LAMMPS + // syntax: kspace_modify scafacos keyword value1 value2 ... + // keyword = tolerance + // value1 = energy, energy_rel, etc + // everyone of these should have a default, so user doesn't need to set + + if (strcmp(arg[0],"scafacos") != 0) return 0; + + if (strcmp(arg[1],"tolerance") == 0) { + if (narg < 2) error->all(FLERR,"Illegal kspace_modify command"); + if (strcmp(arg[2],"energy") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; + else if (strcmp(arg[2],"energy_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_ENERGY_REL; + else if (strcmp(arg[2],"field") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_FIELD; + else if (strcmp(arg[2],"field_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_FIELD_REL; + else if (strcmp(arg[2],"potential") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL; + else if (strcmp(arg[2],"potential_rel") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL_REL; + else error->all(FLERR,"Illegal kspace_modify command"); + return 3; + } + + return 0; +} + /* ---------------------------------------------------------------------- memory usage of local arrays ------------------------------------------------------------------------- */ @@ -231,15 +239,14 @@ double Scafacos::memory_usage() void Scafacos::setup_handle() { // store simulation box params - // NOTE: this assumes orthogonal box - // NOTE: total particles may not be a 4-byte int - // NOTE: what does SCFCS mean by offset? - // it's an integer flag in LAMMPS old_periodicity[0] = domain->xperiodic; old_periodicity[1] = domain->yperiodic; old_periodicity[2] = domain->zperiodic; + // RENE: what does SCFCS mean by offset? + // it's an integer flag in LAMMPS, but being stored in a float? + old_offset[0] = domain->boundary[0][0]; old_offset[1] = domain->boundary[1][0]; old_offset[2] = domain->boundary[2][0]; @@ -273,7 +280,9 @@ void Scafacos::setup_handle() result = fcs_set_total_particles(fcs,old_natoms); check_result(result); - // NOTE: for now disable short-range calculations within LAMMPS + // RENE: disable short-range calculations within LAMMPS + // not sure what this is doing + // is this the correct thing to do for now? int near_field_flag = 0; result = fcs_set_near_field_flag(fcs,near_field_flag); @@ -306,7 +315,6 @@ bool Scafacos::box_has_changed() /* ---------------------------------------------------------------------- check ScaFaCoS result for error condition - NOTE: will all procs have same error? ------------------------------------------------------------------------- */ void Scafacos::check_result(FCSResult result) @@ -320,6 +328,9 @@ void Scafacos::check_result(FCSResult result) std::string err_msg = ss.str(); const char *str = err_msg.c_str(); + // RENE: will all procs have same error? + // if so, then should call error->all(FLERR,str) + error->one(FLERR,str); } diff --git a/src/USER-SCAFACOS/scafacos.h b/src/USER-SCAFACOS/scafacos.h index 33911ee9fd..f3708129f1 100644 --- a/src/USER-SCAFACOS/scafacos.h +++ b/src/USER-SCAFACOS/scafacos.h @@ -32,6 +32,7 @@ class Scafacos : public KSpace { void init(); void setup(); void compute(int, int); + int modify_param(int, char **); double memory_usage(); private: diff --git a/src/kspace.cpp b/src/kspace.cpp index fc8b12288b..de96bee8b8 100644 --- a/src/kspace.cpp +++ b/src/kspace.cpp @@ -580,7 +580,11 @@ void KSpace::modify_params(int narg, char **arg) else if (strcmp(arg[iarg+1],"no") == 0) auto_disp_flag = 0; else error->all(FLERR,"Illegal kspace_modify command"); iarg += 2; - } else error->all(FLERR,"Illegal kspace_modify command"); + } else { + int n = modify_param(narg-iarg,&arg[iarg]); + if (n == 0) error->all(FLERR,"Illegal kspace_modify command"); + iarg += n; + } } } diff --git a/src/kspace.h b/src/kspace.h index 28c7bcef2a..c25dc93f45 100644 --- a/src/kspace.h +++ b/src/kspace.h @@ -126,6 +126,8 @@ class KSpace : protected Pointers { virtual int timing(int, double &, double &) {return 0;} virtual int timing_1d(int, double &) {return 0;} virtual int timing_3d(int, double &) {return 0;} + + virtual int modify_param(int, char **) {return 0;} virtual double memory_usage() {return 0.0;} /* ---------------------------------------------------------------------- From a62b65096bbdd10925feb9b08eea10d626b231fe Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 18 Jul 2018 15:48:17 -0600 Subject: [PATCH 297/675] more error checks for Scafacos usage --- lib/scafacos/README | 7 +++++++ src/USER-SCAFACOS/scafacos.cpp | 5 +++++ 2 files changed, 12 insertions(+) create mode 100644 lib/scafacos/README diff --git a/lib/scafacos/README b/lib/scafacos/README new file mode 100644 index 0000000000..bdf167aef1 --- /dev/null +++ b/lib/scafacos/README @@ -0,0 +1,7 @@ +RENE - there needs to be a README like the one +for lib/voronoi/README, explaining how +to grab the correct version of Scafacos. + +And how to build, either via traditional make +and the Install.py script, or via CMake + diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 10721b33c8..fef4b4948f 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -77,6 +77,8 @@ void Scafacos::init() { // error checks + if (!atom->q_flag) error->all(FLERR,"Kspace style requires atom attribute q"); + if (domain->dimension == 2) error->all(FLERR,"Cannot use ScaFaCoS with 2d simulation"); @@ -86,6 +88,9 @@ void Scafacos::init() if (atom->natoms > INT_MAX && sizeof(fcs_int) != 8) error->all(FLERR,"Scafacos atom count exceeds 2B"); + if (atom->molecular > 0) + error->all(FLERR,"Cannot use Scafacos with molecular charged systems yet"); + // one-time initialization of ScaFaCoS scale = 1.0; From 2eb8d779e8bc657a8767c4cad7ab72f20f65955f Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 18 Jul 2018 18:45:40 -0400 Subject: [PATCH 298/675] Fixes a memory leak when using OpenCL The GPU package uses OpenCL events for measuring time. These have to be released to free up memory. I removed the clReleaseEvent() calls in the clear() method because in some cases they don't exist yet and I couldn't find a way to check for a valid event (clRetainEvent didn't work). This at least fixes the massive leak during simulations. See issue #1006 --- lib/gpu/geryon/ocl_timer.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/gpu/geryon/ocl_timer.h b/lib/gpu/geryon/ocl_timer.h index 66b79dcab1..1f56aeb364 100644 --- a/lib/gpu/geryon/ocl_timer.h +++ b/lib/gpu/geryon/ocl_timer.h @@ -49,8 +49,6 @@ class UCL_Timer { inline void clear() { if (_initialized) { CL_DESTRUCT_CALL(clReleaseCommandQueue(_cq)); - clReleaseEvent(start_event); - clReleaseEvent(stop_event); _initialized=false; _total_time=0.0; } @@ -107,6 +105,8 @@ class UCL_Timer { CL_SAFE_CALL(clGetEventProfilingInfo(start_event, CL_PROFILING_COMMAND_END, sizeof(cl_ulong), &tstart, NULL)); + clReleaseEvent(start_event); + clReleaseEvent(stop_event); return (tend-tstart)*t_factor; } From fba165d6b28451d9eca389d77fa3aa0a4ef30dff Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Thu, 19 Jul 2018 11:46:56 -0600 Subject: [PATCH 299/675] changed the files according to remarks by Steve (compare to previous commit) --- src/USER-SCAFACOS/scafacos.cpp | 74 ++++++++++++++++------------------ src/USER-SCAFACOS/scafacos.h | 2 +- 2 files changed, 35 insertions(+), 41 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index fef4b4948f..8779796a54 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -38,16 +38,24 @@ using namespace LAMMPS_NS; Scafacos::Scafacos(LAMMPS *lmp, int narg, char **arg) : KSpace(lmp, narg, arg) { - if (narg != 2) error->all(FLERR,"Illegal scafacos command"); + if (narg > 2) error->all(FLERR,"Illegal scafacos command"); int n = strlen(arg[0]) + 1; method = new char[n]; strcpy(method,arg[0]); - tolerance = force->numeric(FLERR,arg[1]); + // to allow 'kspace scafacos ' with default values + if (narg == 2) + tolerance = force->numeric(FLERR,arg[1]); + else + tolerance = 0.001; // optional ScaFaCoS library setting defaults - - tolerance_type = FCS_TOLERANCE_TYPE_FIELD; + // choose the correct default tolerance type for chosen method + // TODO: needs to be expanded for all solvers, currently mainly used ones + if (strcmp(method,"fmm") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; + else if (strcmp(method,"p3m") == 0 || strcmp(method,"p2nfft") == 0) + tolerance_type = FCS_TOLERANCE_TYPE_FIELD; // initializations @@ -68,7 +76,8 @@ Scafacos::~Scafacos() memory->destroy(epot); memory->destroy(efield); - // RENE: any clean-up/shut-down call to ScaFaCoS needed? + // clean up of the ScaFaCoS handle and internal arrays + fcs_destroy(fcs); } /* ---------------------------------------------------------------------- */ @@ -93,7 +102,6 @@ void Scafacos::init() // one-time initialization of ScaFaCoS - scale = 1.0; qqrd2e = force->qqrd2e; if (!initialized) { @@ -129,9 +137,7 @@ void Scafacos::compute(int eflag, int vflag) double *q = atom->q; int nlocal = atom->nlocal; - // RENE: why is scale needed? - - const double qscale = qqrd2e * scale; + const double qscale = qqrd2e; if (eflag || vflag) ev_setup(eflag,vflag); else eflag_atom = 0; @@ -155,16 +161,6 @@ void Scafacos::compute(int eflag, int vflag) } - // initialize epot & efield - // RENE: is this necessary? or does Scafacos just set them - - for (int i = 0; i < nlocal; i++) { - epot[i] = 0.0; - efield[i][0] = efield[i][1] = efield[i][2] = 0.0; - } - - // ScaFaCoS calculation of full Coulombics - result = fcs_run(fcs,nlocal,&x[0][0],q,&efield[0][0],epot); check_result(result); @@ -196,7 +192,7 @@ void Scafacos::compute(int eflag, int vflag) int Scafacos::modify_param(int narg, char **arg) { - // RENE: add any Scafacos options here you want to expose to LAMMPS + // add any Scafacos options here you want to expose to LAMMPS // syntax: kspace_modify scafacos keyword value1 value2 ... // keyword = tolerance // value1 = energy, energy_rel, etc @@ -245,17 +241,17 @@ void Scafacos::setup_handle() { // store simulation box params + // setup periodicity old_periodicity[0] = domain->xperiodic; old_periodicity[1] = domain->yperiodic; old_periodicity[2] = domain->zperiodic; - // RENE: what does SCFCS mean by offset? - // it's an integer flag in LAMMPS, but being stored in a float? - - old_offset[0] = domain->boundary[0][0]; - old_offset[1] = domain->boundary[1][0]; - old_offset[2] = domain->boundary[2][0]; + // setup box origin (lower left front corner of the system) + old_origin[0] = domain->boundary[0][0]; + old_origin[1] = domain->boundary[1][0]; + old_origin[2] = domain->boundary[2][0]; + // setup box vectors (base vectors of the system box) old_box_x[0] = domain->prd[0]; old_box_x[1] = old_box_x[2] = 0.0; old_box_y[1] = domain->prd[1]; @@ -263,10 +259,10 @@ void Scafacos::setup_handle() old_box_z[2] = domain->prd[2]; old_box_z[1] = old_box_z[0] = 0.0; + // setup number of atoms in the system old_natoms = atom->natoms; - // set all required ScaFaCoS params - + // store parameters to ScaFaCoS handle result = fcs_set_box_a(fcs,old_box_x); check_result(result); @@ -276,7 +272,7 @@ void Scafacos::setup_handle() result = fcs_set_box_c(fcs,old_box_z); check_result(result); - result = fcs_set_box_origin(fcs,old_offset); + result = fcs_set_box_origin(fcs,old_origin); check_result(result); result = fcs_set_periodicity(fcs,old_periodicity); @@ -285,11 +281,12 @@ void Scafacos::setup_handle() result = fcs_set_total_particles(fcs,old_natoms); check_result(result); - // RENE: disable short-range calculations within LAMMPS - // not sure what this is doing - // is this the correct thing to do for now? - - int near_field_flag = 0; + // allow ScaFaCoS to calculate the near field computations for now + // TODO: allow the delegation of the near field computations + // within LAMMPS + // (near_field_flag = 1 -> enables the internal near field calcs + // 0 -> disables the internal near field calcs + int near_field_flag = 1; result = fcs_set_near_field_flag(fcs,near_field_flag); check_result(result); } @@ -307,9 +304,9 @@ bool Scafacos::box_has_changed() (periodicity[0] != old_periodicity[0]) || (periodicity[1] != old_periodicity[1]) || (periodicity[2] != old_periodicity[2]) || - (domain->boundary[0][0] != old_offset[0]) || - (domain->boundary[1][0] != old_offset[1]) || - (domain->boundary[2][0] != old_offset[2]) || + (domain->boundary[0][0] != old_origin[0]) || + (domain->boundary[1][0] != old_origin[1]) || + (domain->boundary[2][0] != old_origin[2]) || (prd[0] != old_box_x[0]) || (prd[1] != old_box_y[1]) || (prd[2] != old_box_z[2]) || @@ -333,9 +330,6 @@ void Scafacos::check_result(FCSResult result) std::string err_msg = ss.str(); const char *str = err_msg.c_str(); - // RENE: will all procs have same error? - // if so, then should call error->all(FLERR,str) - error->one(FLERR,str); } diff --git a/src/USER-SCAFACOS/scafacos.h b/src/USER-SCAFACOS/scafacos.h index f3708129f1..3e549cf64e 100644 --- a/src/USER-SCAFACOS/scafacos.h +++ b/src/USER-SCAFACOS/scafacos.h @@ -51,7 +51,7 @@ class Scafacos : public KSpace { // so ScaFaCoS can detect if changes, e.g. for NPT fcs_float old_box_x[3],old_box_y[3],old_box_z[3]; - fcs_float old_offset[3]; + fcs_float old_origin[3]; fcs_int old_periodicity[3]; fcs_int old_natoms; From 407708dcd294e86cfa676489253691f496a650de Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Fri, 20 Jul 2018 10:38:18 -0600 Subject: [PATCH 300/675] reverted change to kspace call and using domain->boxlo for origin for now --- src/USER-SCAFACOS/scafacos.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 8779796a54..b9390aea47 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -38,16 +38,12 @@ using namespace LAMMPS_NS; Scafacos::Scafacos(LAMMPS *lmp, int narg, char **arg) : KSpace(lmp, narg, arg) { - if (narg > 2) error->all(FLERR,"Illegal scafacos command"); + if (narg != 2) error->all(FLERR,"Illegal scafacos command"); int n = strlen(arg[0]) + 1; method = new char[n]; strcpy(method,arg[0]); - // to allow 'kspace scafacos ' with default values - if (narg == 2) - tolerance = force->numeric(FLERR,arg[1]); - else - tolerance = 0.001; + tolerance = force->numeric(FLERR,arg[1]); // optional ScaFaCoS library setting defaults // choose the correct default tolerance type for chosen method @@ -247,9 +243,9 @@ void Scafacos::setup_handle() old_periodicity[2] = domain->zperiodic; // setup box origin (lower left front corner of the system) - old_origin[0] = domain->boundary[0][0]; - old_origin[1] = domain->boundary[1][0]; - old_origin[2] = domain->boundary[2][0]; + old_origin[0] = domain->boxlo[0]; + old_origin[1] = domain->boxlo[1]; + old_origin[2] = domain->boxlo[2]; // setup box vectors (base vectors of the system box) old_box_x[0] = domain->prd[0]; From 5c934cdb6f111b6dc6b4a115776482e90cb341d1 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Fri, 20 Jul 2018 10:40:29 -0600 Subject: [PATCH 301/675] fixed examples to work with charged molecular restriction and new kspace call format --- examples/USER/scafacos/data.NaCl | 16 ++++++++-------- examples/USER/scafacos/in.scafacos | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/examples/USER/scafacos/data.NaCl b/examples/USER/scafacos/data.NaCl index 1a599b957d..2d804dec95 100644 --- a/examples/USER/scafacos/data.NaCl +++ b/examples/USER/scafacos/data.NaCl @@ -15,11 +15,11 @@ Atoms - 1 1 1 1.0 0.0 0.0 0.0 - 2 1 2 -1.0 1.0 0.0 0.0 - 3 1 2 -1.0 0.0 1.0 0.0 - 4 1 1 1.0 1.0 1.0 0.0 - 5 1 2 -1.0 0.0 0.0 1.0 - 6 1 1 1.0 1.0 0.0 1.0 - 7 1 1 1.0 0.0 1.0 1.0 - 8 1 2 -1.0 1.0 1.0 1.0 + 1 1 1.0 0.0 0.0 0.0 + 2 2 -1.0 1.0 0.0 0.0 + 3 2 -1.0 0.0 1.0 0.0 + 4 1 1.0 1.0 1.0 0.0 + 5 2 -1.0 0.0 0.0 1.0 + 6 1 1.0 1.0 0.0 1.0 + 7 1 1.0 0.0 1.0 1.0 + 8 2 -1.0 1.0 1.0 1.0 diff --git a/examples/USER/scafacos/in.scafacos b/examples/USER/scafacos/in.scafacos index f9b6733eef..9a1f0f321e 100644 --- a/examples/USER/scafacos/in.scafacos +++ b/examples/USER/scafacos/in.scafacos @@ -28,7 +28,8 @@ pair_coeff * * #fix 2 all scafacos p3m tolerance field 0.001 -kspace_style scafacos p3m tolerance field 0.001 +kspace_style scafacos p3m 0.001 +kspace_style scafacos tolerance field timestep 0.005 thermo 10 From 0e0afdeb51b7eefaff3da277d7c4db437dc3e870 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Fri, 20 Jul 2018 10:41:19 -0600 Subject: [PATCH 302/675] fixed typo and removed comment --- doc/src/Section_packages.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/doc/src/Section_packages.txt b/doc/src/Section_packages.txt index ea03bdb74e..18ae1a75e6 100644 --- a/doc/src/Section_packages.txt +++ b/doc/src/Section_packages.txt @@ -2731,8 +2731,6 @@ examples/reax :ul :line -RENE: check this section - USER-SCAFACOS package :link(USER-SCAFACOS),h4 [Contents:] @@ -2764,7 +2762,7 @@ args: make lib-scafacos # print help message make lib-scafacos args="-b" # download and build in lib/scafacos/scafacos- -make lib-voronoi args="-p $HOME/scafacos # use existing ScaFaCoS installation in $HOME/scafacos +make lib-scafacos args="-p $HOME/scafacos # use existing ScaFaCoS installation in $HOME/scafacos You can then install/un-install the package and build LAMMPS in the usual manner: From de8176b4fc0556d758d7c49bea43f92c5006f234 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 20 Jul 2018 14:41:54 -0400 Subject: [PATCH 303/675] various minor OpenCL related fixes and improvements to the GPU package - document previously undocumented OpenCL tune settings - implement OpenCL platform selection through prefixing the device type with the platform id separated by a colon - allow passing custom tune parameters though postfixing the device type with the 13 tuneable parameters separated by commas - remove an extra clear() that would delete device properties structs an cause LAMMPS to output garbage strings --- doc/src/package.txt | 49 +++++++++++++++++++++++++++++++------ lib/gpu/geryon/ocl_device.h | 16 ++++++------ lib/gpu/lal_device.cpp | 26 ++++++++++++++++---- lib/gpu/lal_device.h | 2 +- src/GPU/gpu_extra.h | 3 +++ 5 files changed, 74 insertions(+), 22 deletions(-) diff --git a/doc/src/package.txt b/doc/src/package.txt index 5c698934e8..5fd42f67d3 100644 --- a/doc/src/package.txt +++ b/doc/src/package.txt @@ -33,8 +33,10 @@ args = arguments specific to the style :l last = ID of last GPU to be used on each node {tpa} value = Nthreads Nthreads = # of GPU threads used per atom - {device} value = device_type - device_type = {kepler} or {fermi} or {cypress} or {generic} + {device} value = device_type or platform_id:device_type or platform_id:custom,val1,val2,val3,..,val13 + platform_id = numerical OpenCL platform id (default: -1) + device_type = {kepler} or {fermi} or {cypress} or {intel} or {phi} or {generic} or {custom} + val1,val2,... = custom OpenCL tune parameters (see below for details) {blocksize} value = size size = thread block size for pair force computation {intel} args = NPhi keyword value ... @@ -96,6 +98,9 @@ args = arguments specific to the style :l package gpu 1 package gpu 1 split 0.75 package gpu 2 split -1.0 +package gpu 1 device kepler +package gpu 1 device 2:generic +package gpu 1 device custom,32,4,8,256,11,128,256,128,32,64,8,128,128 package kokkos neigh half comm device package omp 0 neigh no package omp 4 @@ -244,12 +249,40 @@ the value can improve performance. The number of threads per atom must be a power of 2 and currently cannot be greater than 32. The {device} keyword can be used to tune parameters optimized for a -specific accelerator, when using OpenCL. For CUDA, the {device} -keyword is ignored. Currently, the device type is limited to NVIDIA -Kepler, NVIDIA Fermi, AMD Cypress, or a generic device. More devices -may be added later. The default device type can be specified when -building LAMMPS with the GPU library, via settings in the -lib/gpu/Makefile that is used. +specific accelerator and platform when using OpenCL. OpenCL supports +the concept of a [platform], which represents one or more devices that +share the same driver (e.g. there would be a different platform for +GPUs from different vendors or for CPU based accelerator support). +In LAMMPS only one platform can be active at a time and by default +the first platform with an accelerator is selected. This is equivalent +to using a platform ID of -1. The platform ID is a number corresponding +to the output of the ocl_get_devices tool. The platform ID is passed +to the GPU library, by prefixing the {device} keyword with that number +separated by a colon. For CUDA, the {device} keyword is ignored. +Currently, the device tuning support is limited to NVIDIA Kepler, NVIDIA +Fermi, AMD Cypress, Intel x86_64 CPU, Intel Xeon Phi, or a generic device. +More devices may be added later. The default device type can be +specified when building LAMMPS with the GPU library, via setting a +variable in the lib/gpu/Makefile that is used. + +In addition, a device type {custom} is available, which is followed by +13 comma separated numbers, which allows to set those tweakable parameters +from the package command. It can be combined with the (colon separated) +platform id. The individual settings are: + +MEM_THREADS +THREADS_PER_ATOM +THREADS_PER_CHARGE +BLOCK_PAIR +MAX_SHARED_TYPES +BLOCK_NBOR_BUILD +BLOCK_BIO_PAIR +BLOCK_ELLIPSE +WARP_SIZE +PPPM_BLOCK_1D +BLOCK_CELL_2D +BLOCK_CELL_ID +MAX_BIO_SHARED_TYPES :ul The {blocksize} keyword allows you to tweak the number of threads used per thread block. This number should be a multiple of 32 (for GPUs) diff --git a/lib/gpu/geryon/ocl_device.h b/lib/gpu/geryon/ocl_device.h index 2b2367545e..14455e38a5 100644 --- a/lib/gpu/geryon/ocl_device.h +++ b/lib/gpu/geryon/ocl_device.h @@ -165,8 +165,8 @@ class UCL_Device { /// Get the current OpenCL device name inline std::string name() { return name(_device); } /// Get the OpenCL device name - inline std::string name(const int i) - { return std::string(_properties[i].name); } + inline std::string name(const int i) { + return std::string(_properties[i].name); } /// Get a string telling the type of the current device inline std::string device_type_name() { return device_type_name(_device); } @@ -281,7 +281,7 @@ class UCL_Device { inline cl_device_id & cl_device() { return _cl_device; } /// Select the platform that has accelerators - inline void set_platform_accelerator(int pid=-1); + inline int set_platform_accelerator(int pid=-1); private: int _num_platforms; // Number of platforms @@ -324,6 +324,7 @@ UCL_Device::~UCL_Device() { void UCL_Device::clear() { _properties.clear(); + _cl_devices.clear(); if (_device>-1) { for (size_t i=0; i<_cq.size(); i++) { CL_DESTRUCT_CALL(clReleaseCommandQueue(_cq.back())); @@ -520,8 +521,6 @@ int UCL_Device::device_type(const int i) { // Set the CUDA device to the specified device number int UCL_Device::set(int num) { - clear(); - cl_device_id *device_list = new cl_device_id[_num_devices]; cl_uint n; CL_SAFE_CALL(clGetDeviceIDs(_cl_platform,CL_DEVICE_TYPE_ALL,_num_devices, @@ -612,7 +611,7 @@ void UCL_Device::print_all(std::ostream &out) { // Select the platform that is associated with accelerators // if pid < 0, select the first platform -void UCL_Device::set_platform_accelerator(int pid) { +int UCL_Device::set_platform_accelerator(int pid) { if (pid < 0) { int found = 0; for (int n=0; n<_num_platforms; n++) { @@ -625,10 +624,11 @@ void UCL_Device::set_platform_accelerator(int pid) { break; } } - if (found) break; + if (found) return UCL_SUCCESS; } + return UCL_ERROR; } else { - set_platform(pid); + return set_platform(pid); } } diff --git a/lib/gpu/lal_device.cpp b/lib/gpu/lal_device.cpp index 0ea128a5b3..7f54432a74 100644 --- a/lib/gpu/lal_device.cpp +++ b/lib/gpu/lal_device.cpp @@ -34,8 +34,8 @@ using namespace LAMMPS_AL; template DeviceT::Device() : _init_count(0), _device_init(false), - _gpu_mode(GPU_FORCE), _first_device(0), - _last_device(0), _compiled(false) { + _gpu_mode(GPU_FORCE), _first_device(0), + _last_device(0), _platform_id(-1), _compiled(false) { } template @@ -67,6 +67,17 @@ int DeviceT::init_device(MPI_Comm world, MPI_Comm replica, const int first_gpu, _particle_split=p_split; _cell_size=cell_size; _block_pair=block_pair; + // support selecting platform though "package device" keyword. + // "0:generic" will select platform 0 and tune for generic device + // "1:fermi" will select platform 1 and tune for Nvidia Fermi gpu + if (ocl_vendor) { + char *sep = NULL; + if ((sep = strstr(ocl_vendor,":"))) { + *sep = '\0'; + _platform_id = atoi(ocl_vendor); + ocl_vendor = sep+1; + } + } // Get the rank/size within the world MPI_Comm_rank(_comm_world,&_world_me); @@ -135,6 +146,9 @@ int DeviceT::init_device(MPI_Comm world, MPI_Comm replica, const int first_gpu, return -7; #endif + if (gpu->set_platform_accelerator(_platform_id)!=UCL_SUCCESS) + return -12; + if (gpu->set(my_gpu)!=UCL_SUCCESS) return -6; @@ -191,13 +205,15 @@ int DeviceT::set_ocl_params(char *ocl_vendor) { _ocl_vendor_string="-DUSE_OPENCL"; int token_count=0; std::string params[13]; - char *pch = strtok(ocl_vendor,"\" "); + char *pch = strtok(ocl_vendor,","); + pch = strtok(NULL,","); + if (pch == NULL) return -11; while (pch != NULL) { if (token_count==13) return -11; params[token_count]=pch; token_count++; - pch = strtok(NULL,"\" "); + pch = strtok(NULL,","); } _ocl_vendor_string+=" -DMEM_THREADS="+params[0]+ " -DTHREADS_PER_ATOM="+params[1]+ @@ -656,7 +672,7 @@ int DeviceT::compile_kernels() { dev_program=new UCL_Program(*gpu); int success=dev_program->load_string(device,compile_string().c_str()); if (success!=UCL_SUCCESS) - return -4; + return -6; k_zero.set_function(*dev_program,"kernel_zero"); k_info.set_function(*dev_program,"kernel_info"); _compiled=true; diff --git a/lib/gpu/lal_device.h b/lib/gpu/lal_device.h index 95e9f2a430..695b0a62f9 100644 --- a/lib/gpu/lal_device.h +++ b/lib/gpu/lal_device.h @@ -292,7 +292,7 @@ class Device { MPI_Comm _comm_world, _comm_replica, _comm_gpu; int _procs_per_gpu, _gpu_rank, _world_me, _world_size, _replica_me, _replica_size; - int _gpu_mode, _first_device, _last_device, _nthreads; + int _gpu_mode, _first_device, _last_device, _platform_id, _nthreads; double _particle_split; double _cpu_full; double _ptx_arch; diff --git a/src/GPU/gpu_extra.h b/src/GPU/gpu_extra.h index 56a4f15f1b..111d13c563 100644 --- a/src/GPU/gpu_extra.h +++ b/src/GPU/gpu_extra.h @@ -58,6 +58,9 @@ namespace GPU_EXTRA { else if (all_success == -11) error->all(FLERR, "Invalid custom OpenCL parameter string."); + else if (all_success == -12) + error->all(FLERR, + "Invalid OpenCL platform ID."); else error->all(FLERR,"Unknown error in GPU library"); } From 223de57401ff2547715e24b44226eba5599946ed Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 21 Jul 2018 00:14:31 -0500 Subject: [PATCH 304/675] Added set_platform_accelerator() for nvd_device.h for OpenCL compatibility --- lib/gpu/geryon/nvd_device.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/gpu/geryon/nvd_device.h b/lib/gpu/geryon/nvd_device.h index 2d2a751f85..129bdbbdef 100644 --- a/lib/gpu/geryon/nvd_device.h +++ b/lib/gpu/geryon/nvd_device.h @@ -260,6 +260,9 @@ class UCL_Device { /// List all devices along with all properties inline void print_all(std::ostream &out); + /// Select the platform that has accelerators (for compatibility with OpenCL) + inline int set_platform_accelerator(int pid=-1) { return UCL_SUCCESS; } + private: int _device, _num_devices; std::vector _properties; From 01c27194d4de20ab3002091fe20d396495019e66 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 21 Jul 2018 00:18:30 -0500 Subject: [PATCH 305/675] Fixes for lal_neighbor.cpp for get_host() and for time_kernel --- lib/gpu/lal_neighbor.cpp | 4 ++-- lib/gpu/lal_neighbor.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/gpu/lal_neighbor.cpp b/lib/gpu/lal_neighbor.cpp index 04e08c3e9c..d264a933a1 100644 --- a/lib/gpu/lal_neighbor.cpp +++ b/lib/gpu/lal_neighbor.cpp @@ -281,7 +281,7 @@ void Neighbor::get_host(const int inum, int *ilist, int *numj, } UCL_D_Vec acc_view; acc_view.view_offset(inum,dev_nbor,inum*2); - ucl_copy(acc_view,host_acc,true); + ucl_copy(acc_view,host_acc,inum*2,true); UCL_H_Vec host_view; host_view.alloc(_max_atoms,*dev,UCL_READ_WRITE); @@ -364,7 +364,7 @@ void Neighbor::get_host3(const int inum, const int nlist, int *ilist, int *numj, } UCL_D_Vec acc_view; acc_view.view_offset(inum,dev_nbor,inum*2); - ucl_copy(acc_view,host_acc,true); + ucl_copy(acc_view,host_acc,inum*2,true); time_nbor.stop(); if (_use_packing==false) { diff --git a/lib/gpu/lal_neighbor.h b/lib/gpu/lal_neighbor.h index 05168834c6..01f7b02798 100644 --- a/lib/gpu/lal_neighbor.h +++ b/lib/gpu/lal_neighbor.h @@ -110,7 +110,7 @@ class Neighbor { } if (_time_device) { time_nbor.add_to_total(); - time_kernel.add_to_total(); + if (_use_packing==false) time_kernel.add_to_total(); if (_gpu_nbor==2) { time_hybrid1.add_to_total(); time_hybrid2.add_to_total(); From 94da4be922532f15aa159b3fa60e95e81ac89874 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sat, 21 Jul 2018 13:50:10 -0500 Subject: [PATCH 306/675] Fixed bugs for tersoff gpu styles for OpenCL builds --- lib/gpu/lal_tersoff.cpp | 2 +- lib/gpu/lal_tersoff_mod.cpp | 2 +- lib/gpu/lal_tersoff_zbl.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/gpu/lal_tersoff.cpp b/lib/gpu/lal_tersoff.cpp index a63d286d9c..af1e286520 100644 --- a/lib/gpu/lal_tersoff.cpp +++ b/lib/gpu/lal_tersoff.cpp @@ -272,7 +272,7 @@ void TersoffT::loop(const bool _eflag, const bool _vflag, const int evatom) { &map, &elem2param, &_nelements, &_nparams, &_zetaij, &this->nbor->dev_nbor, &this->_nbor_data->begin(), &this->dev_short_nbor, - &_eflag, &this->_ainum, &nbor_pitch, &this->_threads_per_atom); + &eflag, &this->_ainum, &nbor_pitch, &this->_threads_per_atom); ainum=this->ans->inum(); nbor_pitch=this->nbor->nbor_pitch(); diff --git a/lib/gpu/lal_tersoff_mod.cpp b/lib/gpu/lal_tersoff_mod.cpp index c37c07f1a1..dc25fdadff 100644 --- a/lib/gpu/lal_tersoff_mod.cpp +++ b/lib/gpu/lal_tersoff_mod.cpp @@ -272,7 +272,7 @@ void TersoffMT::loop(const bool _eflag, const bool _vflag, const int evatom) { &map, &elem2param, &_nelements, &_nparams, &_zetaij, &this->nbor->dev_nbor, &this->_nbor_data->begin(), &this->dev_short_nbor, - &_eflag, &this->_ainum, &nbor_pitch, &this->_threads_per_atom); + &eflag, &this->_ainum, &nbor_pitch, &this->_threads_per_atom); ainum=this->ans->inum(); nbor_pitch=this->nbor->nbor_pitch(); diff --git a/lib/gpu/lal_tersoff_zbl.cpp b/lib/gpu/lal_tersoff_zbl.cpp index 341f663030..7cd0d9e6b2 100644 --- a/lib/gpu/lal_tersoff_zbl.cpp +++ b/lib/gpu/lal_tersoff_zbl.cpp @@ -297,7 +297,7 @@ void TersoffZT::loop(const bool _eflag, const bool _vflag, const int evatom) { &map, &elem2param, &_nelements, &_nparams, &_zetaij, &this->nbor->dev_nbor, &this->_nbor_data->begin(), &this->dev_short_nbor, - &_eflag, &this->_ainum, &nbor_pitch, &this->_threads_per_atom); + &eflag, &this->_ainum, &nbor_pitch, &this->_threads_per_atom); ainum=this->ans->inum(); nbor_pitch=this->nbor->nbor_pitch(); From d71e037c233fcd5e49bab5d71d472e9db1249e52 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sun, 22 Jul 2018 11:27:14 -0500 Subject: [PATCH 307/675] Renamed dev_acc to dev_ilist for better description and updated the 3-body styles accordingly; also fixed bugs with accessing dev_packed from the three_end kernel of tersoff/mod and tersoff/zbl gpu styles for OpenCL builds --- lib/gpu/lal_neighbor.cpp | 11 ++++++----- lib/gpu/lal_neighbor.h | 2 +- lib/gpu/lal_sw.cpp | 4 ++-- lib/gpu/lal_sw.cu | 12 ++++++------ lib/gpu/lal_tersoff.cpp | 4 ++-- lib/gpu/lal_tersoff.cu | 12 ++++++------ lib/gpu/lal_tersoff_mod.cpp | 4 ++-- lib/gpu/lal_tersoff_mod.cu | 22 +++++++++++----------- lib/gpu/lal_tersoff_zbl.cpp | 4 ++-- lib/gpu/lal_tersoff_zbl.cu | 22 +++++++++++----------- lib/gpu/lal_vashishta.cpp | 4 ++-- lib/gpu/lal_vashishta.cu | 12 ++++++------ 12 files changed, 57 insertions(+), 56 deletions(-) diff --git a/lib/gpu/lal_neighbor.cpp b/lib/gpu/lal_neighbor.cpp index d264a933a1..c6fa1aa560 100644 --- a/lib/gpu/lal_neighbor.cpp +++ b/lib/gpu/lal_neighbor.cpp @@ -127,10 +127,11 @@ void Neighbor::alloc(bool &success) { dev_packed.clear(); success=success && (dev_packed.alloc((_max_nbors+2)*_max_atoms,*dev, _packed_permissions)==UCL_SUCCESS); - dev_acc.clear(); - success=success && (dev_acc.alloc(_max_atoms,*dev, + dev_ilist.clear(); + success=success && (dev_ilist.alloc(_max_atoms,*dev, UCL_READ_WRITE)==UCL_SUCCESS); - _c_bytes+=dev_packed.row_bytes()+dev_acc.row_bytes(); + dev_ilist.clear(); + _c_bytes+=dev_packed.row_bytes()+dev_ilist.row_bytes(); } if (_max_host>0) { nbor_host.clear(); @@ -197,7 +198,7 @@ void Neighbor::clear() { host_packed.clear(); host_acc.clear(); - dev_acc.clear(); + dev_ilist.clear(); dev_nbor.clear(); nbor_host.clear(); dev_packed.clear(); @@ -289,7 +290,7 @@ void Neighbor::get_host(const int inum, int *ilist, int *numj, int i=ilist[ii]; host_view[i] = ii; } - ucl_copy(dev_acc,host_view,true); + ucl_copy(dev_ilist,host_view,true); time_nbor.stop(); diff --git a/lib/gpu/lal_neighbor.h b/lib/gpu/lal_neighbor.h index 01f7b02798..996deaff6d 100644 --- a/lib/gpu/lal_neighbor.h +++ b/lib/gpu/lal_neighbor.h @@ -200,7 +200,7 @@ class Neighbor { /// Host storage for nbor counts (row 1) & accumulated neighbor counts (row2) UCL_H_Vec host_acc; /// Device storage for accessing atom indices from the neighbor list (3-body) - UCL_D_Vec dev_acc; + UCL_D_Vec dev_ilist; // ----------------- Data for GPU Neighbor Calculation --------------- diff --git a/lib/gpu/lal_sw.cpp b/lib/gpu/lal_sw.cpp index 24984e4878..46b6382a60 100644 --- a/lib/gpu/lal_sw.cpp +++ b/lib/gpu/lal_sw.cpp @@ -243,7 +243,7 @@ void SWT::loop(const bool _eflag, const bool _vflag, const int evatom) { this->k_three_end_vatom.run(&this->atom->x, &sw1, &sw2, &sw3, &map, &elem2param, &_nelements, &this->nbor->dev_nbor, &this->_nbor_data->begin(), - &this->nbor->dev_acc, &this->dev_short_nbor, + &this->nbor->dev_ilist, &this->dev_short_nbor, &end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor); @@ -252,7 +252,7 @@ void SWT::loop(const bool _eflag, const bool _vflag, const int evatom) { this->k_three_end.run(&this->atom->x, &sw1, &sw2, &sw3, &map, &elem2param, &_nelements, &this->nbor->dev_nbor, &this->_nbor_data->begin(), - &this->nbor->dev_acc, &this->dev_short_nbor, + &this->nbor->dev_ilist, &this->dev_short_nbor, &end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor); diff --git a/lib/gpu/lal_sw.cu b/lib/gpu/lal_sw.cu index 517de70691..3b6de5a683 100644 --- a/lib/gpu/lal_sw.cu +++ b/lib/gpu/lal_sw.cu @@ -544,7 +544,7 @@ __kernel void k_sw_three_end(const __global numtyp4 *restrict x_, const int nelements, const __global int * dev_nbor, const __global int * dev_packed, - const __global int * dev_acc, + const __global int * dev_ilist, const __global int * dev_short_nbor, __global acctyp4 *restrict ans, __global acctyp *restrict engv, @@ -614,13 +614,13 @@ __kernel void k_sw_three_end(const __global numtyp4 *restrict x_, int nbor_k,numk; if (dev_nbor==dev_packed) { if (gpu_nbor) nbor_k=j+nbor_pitch; - else nbor_k=dev_acc[j]+nbor_pitch; + else nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch+fast_mul(j,t_per_atom-1); k_end=nbor_k+fast_mul(numk/t_per_atom,n_stride)+(numk & (t_per_atom-1)); nbor_k+=offset_k; } else { - nbor_k=dev_acc[j]+nbor_pitch; + nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch; nbor_k=dev_nbor[nbor_k]; @@ -698,7 +698,7 @@ __kernel void k_sw_three_end_vatom(const __global numtyp4 *restrict x_, const int nelements, const __global int * dev_nbor, const __global int * dev_packed, - const __global int * dev_acc, + const __global int * dev_ilist, const __global int * dev_short_nbor, __global acctyp4 *restrict ans, __global acctyp *restrict engv, @@ -768,13 +768,13 @@ __kernel void k_sw_three_end_vatom(const __global numtyp4 *restrict x_, int nbor_k,numk; if (dev_nbor==dev_packed) { if (gpu_nbor) nbor_k=j+nbor_pitch; - else nbor_k=dev_acc[j]+nbor_pitch; + else nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch+fast_mul(j,t_per_atom-1); k_end=nbor_k+fast_mul(numk/t_per_atom,n_stride)+(numk & (t_per_atom-1)); nbor_k+=offset_k; } else { - nbor_k=dev_acc[j]+nbor_pitch; + nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch; nbor_k=dev_nbor[nbor_k]; diff --git a/lib/gpu/lal_tersoff.cpp b/lib/gpu/lal_tersoff.cpp index af1e286520..ef55b98a2d 100644 --- a/lib/gpu/lal_tersoff.cpp +++ b/lib/gpu/lal_tersoff.cpp @@ -311,7 +311,7 @@ void TersoffT::loop(const bool _eflag, const bool _vflag, const int evatom) { this->k_three_end_vatom.run(&this->atom->x, &ts1, &ts2, &ts4, &cutsq, &map, &elem2param, &_nelements, &_nparams, &_zetaij, &this->nbor->dev_nbor, &this->_nbor_data->begin(), - &this->nbor->dev_acc, &this->dev_short_nbor, + &this->nbor->dev_ilist, &this->dev_short_nbor, &end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor); @@ -320,7 +320,7 @@ void TersoffT::loop(const bool _eflag, const bool _vflag, const int evatom) { this->k_three_end.run(&this->atom->x, &ts1, &ts2, &ts4, &cutsq, &map, &elem2param, &_nelements, &_nparams, &_zetaij, &this->nbor->dev_nbor, &this->_nbor_data->begin(), - &this->nbor->dev_acc, &this->dev_short_nbor, + &this->nbor->dev_ilist, &this->dev_short_nbor, &end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor); } diff --git a/lib/gpu/lal_tersoff.cu b/lib/gpu/lal_tersoff.cu index cec0ccc443..836f05660d 100644 --- a/lib/gpu/lal_tersoff.cu +++ b/lib/gpu/lal_tersoff.cu @@ -696,7 +696,7 @@ __kernel void k_tersoff_three_end(const __global numtyp4 *restrict x_, const __global acctyp4 *restrict zetaij, const __global int * dev_nbor, const __global int * dev_packed, - const __global int * dev_acc, + const __global int * dev_ilist, const __global int * dev_short_nbor, __global acctyp4 *restrict ans, __global acctyp *restrict engv, @@ -777,13 +777,13 @@ __kernel void k_tersoff_three_end(const __global numtyp4 *restrict x_, int nbor_k,numk; if (dev_nbor==dev_packed) { if (gpu_nbor) nbor_k=j+nbor_pitch; - else nbor_k=dev_acc[j]+nbor_pitch; + else nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch+fast_mul(j,t_per_atom-1); k_end=nbor_k+fast_mul(numk/t_per_atom,n_stride)+(numk & (t_per_atom-1)); nbor_k+=offset_k; } else { - nbor_k=dev_acc[j]+nbor_pitch; + nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch; nbor_k=dev_nbor[nbor_k]; @@ -941,7 +941,7 @@ __kernel void k_tersoff_three_end_vatom(const __global numtyp4 *restrict x_, const __global acctyp4 *restrict zetaij, const __global int * dev_nbor, const __global int * dev_packed, - const __global int * dev_acc, + const __global int * dev_ilist, const __global int * dev_short_nbor, __global acctyp4 *restrict ans, __global acctyp *restrict engv, @@ -1022,13 +1022,13 @@ __kernel void k_tersoff_three_end_vatom(const __global numtyp4 *restrict x_, int nbor_k,numk; if (dev_nbor==dev_packed) { if (gpu_nbor) nbor_k=j+nbor_pitch; - else nbor_k=dev_acc[j]+nbor_pitch; + else nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch+fast_mul(j,t_per_atom-1); k_end=nbor_k+fast_mul(numk/t_per_atom,n_stride)+(numk & (t_per_atom-1)); nbor_k+=offset_k; } else { - nbor_k=dev_acc[j]+nbor_pitch; + nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch; nbor_k=dev_nbor[nbor_k]; diff --git a/lib/gpu/lal_tersoff_mod.cpp b/lib/gpu/lal_tersoff_mod.cpp index dc25fdadff..3cbb488cab 100644 --- a/lib/gpu/lal_tersoff_mod.cpp +++ b/lib/gpu/lal_tersoff_mod.cpp @@ -311,7 +311,7 @@ void TersoffMT::loop(const bool _eflag, const bool _vflag, const int evatom) { this->k_three_end_vatom.run(&this->atom->x, &ts1, &ts2, &ts4, &ts5, &cutsq, &map, &elem2param, &_nelements, &_nparams, &_zetaij, &this->nbor->dev_nbor, &this->_nbor_data->begin(), - &this->nbor->dev_acc, &this->dev_short_nbor, + &this->nbor->dev_ilist, &this->dev_short_nbor, &end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor); @@ -320,7 +320,7 @@ void TersoffMT::loop(const bool _eflag, const bool _vflag, const int evatom) { this->k_three_end.run(&this->atom->x, &ts1, &ts2, &ts4, &ts5, &cutsq, &map, &elem2param, &_nelements, &_nparams, &_zetaij, &this->nbor->dev_nbor, &this->_nbor_data->begin(), - &this->nbor->dev_acc, &this->dev_short_nbor, + &this->nbor->dev_ilist, &this->dev_short_nbor, &end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor); } diff --git a/lib/gpu/lal_tersoff_mod.cu b/lib/gpu/lal_tersoff_mod.cu index 576359b514..dfb94c4145 100644 --- a/lib/gpu/lal_tersoff_mod.cu +++ b/lib/gpu/lal_tersoff_mod.cu @@ -272,7 +272,7 @@ __kernel void k_tersoff_mod_zeta(const __global numtyp4 *restrict x_, if (iik_three_end_vatom.run(&this->atom->x, &ts1, &ts2, &ts4, &cutsq, &map, &elem2param, &_nelements, &_nparams, &_zetaij, &this->nbor->dev_nbor, &this->_nbor_data->begin(), - &this->nbor->dev_acc, &this->dev_short_nbor, + &this->nbor->dev_ilist, &this->dev_short_nbor, &end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor); @@ -346,7 +346,7 @@ void TersoffZT::loop(const bool _eflag, const bool _vflag, const int evatom) { this->k_three_end.run(&this->atom->x, &ts1, &ts2, &ts4, &cutsq, &map, &elem2param, &_nelements, &_nparams, &_zetaij, &this->nbor->dev_nbor, &this->_nbor_data->begin(), - &this->nbor->dev_acc, &this->dev_short_nbor, + &this->nbor->dev_ilist, &this->dev_short_nbor, &end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor); } diff --git a/lib/gpu/lal_tersoff_zbl.cu b/lib/gpu/lal_tersoff_zbl.cu index e8bb017f59..73ff51c704 100644 --- a/lib/gpu/lal_tersoff_zbl.cu +++ b/lib/gpu/lal_tersoff_zbl.cu @@ -278,7 +278,7 @@ __kernel void k_tersoff_zbl_zeta(const __global numtyp4 *restrict x_, if (iik_three_end_vatom.run(&this->atom->x, ¶m1, ¶m2, ¶m3, ¶m4, ¶m5, &map, &elem2param, &_nelements, &this->nbor->dev_nbor, &this->_nbor_data->begin(), - &this->nbor->dev_acc, &this->dev_short_nbor, + &this->nbor->dev_ilist, &this->dev_short_nbor, &end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor); } else { @@ -286,7 +286,7 @@ void VashishtaT::loop(const bool _eflag, const bool _vflag, const int evatom) { this->k_three_end.run(&this->atom->x, ¶m1, ¶m2, ¶m3, ¶m4, ¶m5, &map, &elem2param, &_nelements, &this->nbor->dev_nbor, &this->_nbor_data->begin(), - &this->nbor->dev_acc, &this->dev_short_nbor, + &this->nbor->dev_ilist, &this->dev_short_nbor, &end_ans->force, &end_ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->_threads_per_atom, &this->_gpu_nbor); } diff --git a/lib/gpu/lal_vashishta.cu b/lib/gpu/lal_vashishta.cu index d2e8bb1496..0da46c3b53 100644 --- a/lib/gpu/lal_vashishta.cu +++ b/lib/gpu/lal_vashishta.cu @@ -554,7 +554,7 @@ __kernel void k_vashishta_three_end(const __global numtyp4 *restrict x_, const int nelements, const __global int * dev_nbor, const __global int * dev_packed, - const __global int * dev_acc, + const __global int * dev_ilist, const __global int * dev_short_nbor, __global acctyp4 *restrict ans, __global acctyp *restrict engv, @@ -623,13 +623,13 @@ __kernel void k_vashishta_three_end(const __global numtyp4 *restrict x_, int nbor_k,numk; if (dev_nbor==dev_packed) { if (gpu_nbor) nbor_k=j+nbor_pitch; - else nbor_k=dev_acc[j]+nbor_pitch; + else nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch+fast_mul(j,t_per_atom-1); k_end=nbor_k+fast_mul(numk/t_per_atom,n_stride)+(numk & (t_per_atom-1)); nbor_k+=offset_k; } else { - nbor_k=dev_acc[j]+nbor_pitch; + nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch; nbor_k=dev_nbor[nbor_k]; @@ -709,7 +709,7 @@ __kernel void k_vashishta_three_end_vatom(const __global numtyp4 *restrict x_, const int nelements, const __global int * dev_nbor, const __global int * dev_packed, - const __global int * dev_acc, + const __global int * dev_ilist, const __global int * dev_short_nbor, __global acctyp4 *restrict ans, __global acctyp *restrict engv, @@ -778,13 +778,13 @@ __kernel void k_vashishta_three_end_vatom(const __global numtyp4 *restrict x_, int nbor_k,numk; if (dev_nbor==dev_packed) { if (gpu_nbor) nbor_k=j+nbor_pitch; - else nbor_k=dev_acc[j]+nbor_pitch; + else nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch+fast_mul(j,t_per_atom-1); k_end=nbor_k+fast_mul(numk/t_per_atom,n_stride)+(numk & (t_per_atom-1)); nbor_k+=offset_k; } else { - nbor_k=dev_acc[j]+nbor_pitch; + nbor_k=dev_ilist[j]+nbor_pitch; numk=dev_nbor[nbor_k]; nbor_k+=nbor_pitch; nbor_k=dev_nbor[nbor_k]; From b612c7ee75662dc3530e0a112063486b0f3d080c Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sun, 22 Jul 2018 13:15:01 -0500 Subject: [PATCH 308/675] Fixed a copy-paste bug in lal_neighbor.cpp for neigh no --- lib/gpu/lal_neighbor.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/gpu/lal_neighbor.cpp b/lib/gpu/lal_neighbor.cpp index c6fa1aa560..3e128bcf57 100644 --- a/lib/gpu/lal_neighbor.cpp +++ b/lib/gpu/lal_neighbor.cpp @@ -130,7 +130,6 @@ void Neighbor::alloc(bool &success) { dev_ilist.clear(); success=success && (dev_ilist.alloc(_max_atoms,*dev, UCL_READ_WRITE)==UCL_SUCCESS); - dev_ilist.clear(); _c_bytes+=dev_packed.row_bytes()+dev_ilist.row_bytes(); } if (_max_host>0) { From 644888d03c495258655518d9cf40f51e79acb033 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sun, 22 Jul 2018 15:12:45 -0500 Subject: [PATCH 309/675] Fixed bugs with time_q and time_quat not calling start() and stop() when _charge and/or _rot in Atom are true for OpenCL builds --- lib/gpu/lal_atom.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/gpu/lal_atom.h b/lib/gpu/lal_atom.h index f6a0b109f2..57880d7ca9 100644 --- a/lib/gpu/lal_atom.h +++ b/lib/gpu/lal_atom.h @@ -322,10 +322,12 @@ class Atom { // Copy charges to device asynchronously inline void add_q_data() { + time_q.start(); if (_q_avail==false) { q.update_device(_nall,true); _q_avail=true; } + time_q.stop(); } // Cast quaternions to write buffer @@ -347,10 +349,12 @@ class Atom { // Copy quaternions to device /** Copies nall()*4 elements **/ inline void add_quat_data() { + time_quat.start(); if (_quat_avail==false) { quat.update_device(_nall*4,true); _quat_avail=true; } + time_quat.stop(); } /// Cast velocities and tags to write buffer From 40dcfa44c9a0f545e9e33432bb06e471a5023de7 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 23 Jul 2018 08:35:40 -0600 Subject: [PATCH 310/675] new checksum for LATTE download --- lib/latte/Install.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/latte/Install.py b/lib/latte/Install.py index e1ed9d4eaa..3b211858dd 100644 --- a/lib/latte/Install.py +++ b/lib/latte/Install.py @@ -40,7 +40,7 @@ version = '1.2.1' checksums = { \ '1.1.0' : '533635721ee222d0ed2925a18fb5b294', \ '1.2.0' : '68bf0db879da5e068a71281020239ae7', \ - '1.2.1' : 'bed76e7e76c545c36dd848a8f1fd35eb' \ + '1.2.1' : '85ac414fdada2d04619c8f936344df14', \ } # print error message or help From 35ffa0a214d25b5a6f6d6bc60563b7e7507b33fe Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 23 Jul 2018 12:36:29 -0400 Subject: [PATCH 311/675] update MD5SUM entry in CMake build system --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index bf57398c71..60a0f5d48f 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -332,7 +332,7 @@ if(PKG_LATTE) include(ExternalProject) ExternalProject_Add(latte_build URL https://github.com/lanl/LATTE/archive/v1.2.1.tar.gz - URL_MD5 bed76e7e76c545c36dd848a8f1fd35eb + URL_MD5 85ac414fdada2d04619c8f936344df14 SOURCE_SUBDIR cmake CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} ) From 2ac3953e17b94bb16f402185eaa8904809aeeb01 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 23 Jul 2018 12:37:05 -0400 Subject: [PATCH 312/675] update src/Purge.list to cleanly remove obsolete files --- src/Purge.list | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Purge.list b/src/Purge.list index 402fc409e6..cd4eb17dab 100644 --- a/src/Purge.list +++ b/src/Purge.list @@ -24,6 +24,9 @@ style_nstencil.h style_ntopo.h # other auto-generated files lmpinstalledpkgs.h +# renamed on 20 July 2018 +pair_body.h +pair_body.cpp # deleted on 4 April 2018 pair_kim_version.h # deleted on 15 December 2017 From 923ae041dcfe0fdebbb146ec9a9b71fa8eba5a55 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 23 Jul 2018 15:52:42 -0400 Subject: [PATCH 313/675] (temporary) workaround for memory leaks with OpenCL and MPI for upcoming stable release --- lib/gpu/lal_device.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/gpu/lal_device.cpp b/lib/gpu/lal_device.cpp index 7f54432a74..6b4d0ab2a5 100644 --- a/lib/gpu/lal_device.cpp +++ b/lib/gpu/lal_device.cpp @@ -130,8 +130,16 @@ int DeviceT::init_device(MPI_Comm world, MPI_Comm replica, const int first_gpu, // Time on the device only if 1 proc per gpu _time_device=true; + +#if 0 + // XXX: the following setting triggers a memory leak with OpenCL and MPI + // setting _time_device=true for all processes doesn't seem to be a + // problem with either (no segfault, no (large) memory leak. + // thus keeping this disabled for now. may need to review later. + // 2018-07-23 if (_procs_per_gpu>1) _time_device=false; +#endif // Set up a per device communicator MPI_Comm_split(node_comm,my_gpu,0,&_comm_gpu); From 2f5598122429ae113b84623c338b5098293aeb07 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 23 Jul 2018 15:58:33 -0600 Subject: [PATCH 314/675] new MESSAGE package for client/server/coupling --- doc/src/Section_commands.txt | 9 +- doc/src/Section_howto.txt | 132 ++- doc/src/Section_packages.txt | 47 ++ doc/src/Section_start.txt | 19 + doc/src/fix_client_md.txt | 105 +++ doc/src/lammps.book | 12 +- doc/src/message.txt | 159 ++++ doc/src/server.txt | 71 ++ doc/src/server_mc.txt | 112 +++ doc/src/server_md.txt | 122 +++ examples/COUPLE/README | 3 + examples/COUPLE/lammps_mc/Makefile | 34 + examples/COUPLE/lammps_mc/README | 106 +++ examples/COUPLE/lammps_mc/in.mc | 7 + examples/COUPLE/lammps_mc/in.mc.server | 36 + .../COUPLE/lammps_mc/log.23Jul18.file.g++.1 | 254 ++++++ .../COUPLE/lammps_mc/log.23Jul18.file.g++.4 | 254 ++++++ .../COUPLE/lammps_mc/log.23Jul18.zmq.g++.1 | 254 ++++++ .../COUPLE/lammps_mc/log.23Jul18.zmq.g++.4 | 254 ++++++ examples/COUPLE/lammps_mc/mc.cpp | 261 ++++++ examples/COUPLE/lammps_mc/mc.h | 40 + examples/COUPLE/lammps_mc/random_park.cpp | 72 ++ examples/COUPLE/lammps_mc/random_park.h | 28 + examples/COUPLE/lammps_vasp/INCAR | 53 ++ examples/COUPLE/lammps_vasp/KPOINTS | 6 + examples/COUPLE/lammps_vasp/POSCAR_W | 11 + examples/COUPLE/lammps_vasp/README | 90 ++ examples/COUPLE/lammps_vasp/data.W | 15 + examples/COUPLE/lammps_vasp/in.client.W | 34 + examples/COUPLE/lammps_vasp/log.client.output | 63 ++ examples/COUPLE/lammps_vasp/vasp_wrap.py | 234 ++++++ examples/README | 1 + examples/message/README | 102 +++ examples/message/in.message | 27 + examples/message/in.message.client | 38 + examples/message/in.message.server | 29 + .../log.23Jul18.message.client.file.g++.1 | 76 ++ .../log.23Jul18.message.client.file.g++.2 | 76 ++ .../log.23Jul18.message.client.mpione.g++.1 | 76 ++ .../log.23Jul18.message.client.mpione.g++.2 | 76 ++ .../log.23Jul18.message.client.mpitwo.g++.1 | 76 ++ .../log.23Jul18.message.client.mpitwo.g++.2 | 76 ++ .../log.23Jul18.message.client.zmq.g++.1 | 76 ++ .../log.23Jul18.message.client.zmq.g++.2 | 76 ++ examples/message/log.23Jul18.message.g++.1 | 83 ++ examples/message/log.23Jul18.message.g++.4 | 83 ++ .../log.23Jul18.message.server.file.g++.1 | 44 + .../log.23Jul18.message.server.file.g++.4 | 44 + .../log.23Jul18.message.server.mpione.g++.1 | 44 + .../log.23Jul18.message.server.mpione.g++.4 | 44 + .../log.23Jul18.message.server.mpitwo.g++.1 | 44 + .../log.23Jul18.message.server.mpitwo.g++.4 | 44 + .../log.23Jul18.message.server.zmq.g++.1 | 44 + .../log.23Jul18.message.server.zmq.g++.4 | 44 + lib/README | 2 + lib/message/Install.py | 118 +++ lib/message/Makefile.lammps.nozmq | 5 + lib/message/Makefile.lammps.zmq | 5 + lib/message/README | 51 ++ lib/message/cslib/LICENSE | 501 ++++++++++++ lib/message/cslib/README | 21 + lib/message/cslib/src/Makefile | 107 +++ lib/message/cslib/src/STUBS_MPI/mpi.h | 95 +++ lib/message/cslib/src/STUBS_ZMQ/zmq.h | 35 + lib/message/cslib/src/cslib.cpp | 768 ++++++++++++++++++ lib/message/cslib/src/cslib.h | 87 ++ lib/message/cslib/src/cslib.py | 362 +++++++++ lib/message/cslib/src/cslib_wrap.cpp | 239 ++++++ lib/message/cslib/src/cslib_wrap.f90 | 147 ++++ lib/message/cslib/src/cslib_wrap.h | 54 ++ lib/message/cslib/src/msg.cpp | 110 +++ lib/message/cslib/src/msg.h | 52 ++ lib/message/cslib/src/msg_file.cpp | 143 ++++ lib/message/cslib/src/msg_file.h | 40 + lib/message/cslib/src/msg_mpi_one.cpp | 82 ++ lib/message/cslib/src/msg_mpi_one.h | 38 + lib/message/cslib/src/msg_mpi_two.cpp | 81 ++ lib/message/cslib/src/msg_mpi_two.h | 35 + lib/message/cslib/src/msg_zmq.cpp | 140 ++++ lib/message/cslib/src/msg_zmq.h | 38 + src/MESSAGE/Install.sh | 67 ++ src/MESSAGE/fix_client_md.cpp | 270 ++++++ src/MESSAGE/fix_client_md.h | 62 ++ src/MESSAGE/message.cpp | 90 ++ src/MESSAGE/message.h | 40 + src/MESSAGE/server.cpp | 50 ++ src/MESSAGE/server.h | 40 + src/MESSAGE/server_mc.cpp | 148 ++++ src/MESSAGE/server_mc.h | 29 + src/MESSAGE/server_md.cpp | 333 ++++++++ src/MESSAGE/server_md.h | 33 + src/Makefile | 6 +- src/atom.cpp | 3 +- src/domain.cpp | 6 +- src/domain.h | 3 +- src/lammps.cpp | 229 ++++-- src/lammps.h | 4 + 97 files changed, 8885 insertions(+), 104 deletions(-) create mode 100644 doc/src/fix_client_md.txt create mode 100644 doc/src/message.txt create mode 100644 doc/src/server.txt create mode 100644 doc/src/server_mc.txt create mode 100644 doc/src/server_md.txt create mode 100644 examples/COUPLE/lammps_mc/Makefile create mode 100644 examples/COUPLE/lammps_mc/README create mode 100644 examples/COUPLE/lammps_mc/in.mc create mode 100644 examples/COUPLE/lammps_mc/in.mc.server create mode 100644 examples/COUPLE/lammps_mc/log.23Jul18.file.g++.1 create mode 100644 examples/COUPLE/lammps_mc/log.23Jul18.file.g++.4 create mode 100644 examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.1 create mode 100644 examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.4 create mode 100644 examples/COUPLE/lammps_mc/mc.cpp create mode 100644 examples/COUPLE/lammps_mc/mc.h create mode 100644 examples/COUPLE/lammps_mc/random_park.cpp create mode 100644 examples/COUPLE/lammps_mc/random_park.h create mode 100644 examples/COUPLE/lammps_vasp/INCAR create mode 100644 examples/COUPLE/lammps_vasp/KPOINTS create mode 100644 examples/COUPLE/lammps_vasp/POSCAR_W create mode 100644 examples/COUPLE/lammps_vasp/README create mode 100644 examples/COUPLE/lammps_vasp/data.W create mode 100644 examples/COUPLE/lammps_vasp/in.client.W create mode 100644 examples/COUPLE/lammps_vasp/log.client.output create mode 100644 examples/COUPLE/lammps_vasp/vasp_wrap.py create mode 100644 examples/message/README create mode 100644 examples/message/in.message create mode 100644 examples/message/in.message.client create mode 100644 examples/message/in.message.server create mode 100644 examples/message/log.23Jul18.message.client.file.g++.1 create mode 100644 examples/message/log.23Jul18.message.client.file.g++.2 create mode 100644 examples/message/log.23Jul18.message.client.mpione.g++.1 create mode 100644 examples/message/log.23Jul18.message.client.mpione.g++.2 create mode 100644 examples/message/log.23Jul18.message.client.mpitwo.g++.1 create mode 100644 examples/message/log.23Jul18.message.client.mpitwo.g++.2 create mode 100644 examples/message/log.23Jul18.message.client.zmq.g++.1 create mode 100644 examples/message/log.23Jul18.message.client.zmq.g++.2 create mode 100644 examples/message/log.23Jul18.message.g++.1 create mode 100644 examples/message/log.23Jul18.message.g++.4 create mode 100644 examples/message/log.23Jul18.message.server.file.g++.1 create mode 100644 examples/message/log.23Jul18.message.server.file.g++.4 create mode 100644 examples/message/log.23Jul18.message.server.mpione.g++.1 create mode 100644 examples/message/log.23Jul18.message.server.mpione.g++.4 create mode 100644 examples/message/log.23Jul18.message.server.mpitwo.g++.1 create mode 100644 examples/message/log.23Jul18.message.server.mpitwo.g++.4 create mode 100644 examples/message/log.23Jul18.message.server.zmq.g++.1 create mode 100644 examples/message/log.23Jul18.message.server.zmq.g++.4 create mode 100644 lib/message/Install.py create mode 100644 lib/message/Makefile.lammps.nozmq create mode 100644 lib/message/Makefile.lammps.zmq create mode 100644 lib/message/README create mode 100644 lib/message/cslib/LICENSE create mode 100644 lib/message/cslib/README create mode 100644 lib/message/cslib/src/Makefile create mode 100644 lib/message/cslib/src/STUBS_MPI/mpi.h create mode 100644 lib/message/cslib/src/STUBS_ZMQ/zmq.h create mode 100644 lib/message/cslib/src/cslib.cpp create mode 100644 lib/message/cslib/src/cslib.h create mode 100644 lib/message/cslib/src/cslib.py create mode 100644 lib/message/cslib/src/cslib_wrap.cpp create mode 100644 lib/message/cslib/src/cslib_wrap.f90 create mode 100644 lib/message/cslib/src/cslib_wrap.h create mode 100644 lib/message/cslib/src/msg.cpp create mode 100644 lib/message/cslib/src/msg.h create mode 100644 lib/message/cslib/src/msg_file.cpp create mode 100644 lib/message/cslib/src/msg_file.h create mode 100644 lib/message/cslib/src/msg_mpi_one.cpp create mode 100644 lib/message/cslib/src/msg_mpi_one.h create mode 100644 lib/message/cslib/src/msg_mpi_two.cpp create mode 100644 lib/message/cslib/src/msg_mpi_two.h create mode 100644 lib/message/cslib/src/msg_zmq.cpp create mode 100644 lib/message/cslib/src/msg_zmq.h create mode 100644 src/MESSAGE/Install.sh create mode 100644 src/MESSAGE/fix_client_md.cpp create mode 100644 src/MESSAGE/fix_client_md.h create mode 100644 src/MESSAGE/message.cpp create mode 100644 src/MESSAGE/message.h create mode 100644 src/MESSAGE/server.cpp create mode 100644 src/MESSAGE/server.h create mode 100644 src/MESSAGE/server_mc.cpp create mode 100644 src/MESSAGE/server_mc.h create mode 100644 src/MESSAGE/server_md.cpp create mode 100644 src/MESSAGE/server_md.h diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index 32308b36cb..ec0c0dc454 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -482,6 +482,7 @@ in the command's documentation. "lattice"_lattice.html, "log"_log.html, "mass"_mass.html, +"message"_message.html, "minimize"_minimize.html, "min_modify"_min_modify.html, "min_style"_min_style.html, @@ -513,6 +514,7 @@ in the command's documentation. "restart"_restart.html, "run"_run.html, "run_style"_run_style.html, +"server"_server.html, "set"_set.html, "shell"_shell.html, "special_bonds"_special_bonds.html, @@ -574,6 +576,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "bond/create"_fix_bond_create.html, "bond/swap"_fix_bond_swap.html, "box/relax"_fix_box_relax.html, +"client/md"_fix_client_md.html, "cmap"_fix_cmap.html, "controller"_fix_controller.html, "deform (k)"_fix_deform.html, @@ -678,8 +681,6 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "vector"_fix_vector.html, "viscosity"_fix_viscosity.html, "viscous"_fix_viscous.html, -"wall/body/polygon"_fix_wall_body_polygon.html, -"wall/body/polyhedron"_fix_wall_body_polyhedron.html, "wall/colloid"_fix_wall.html, "wall/gran"_fix_wall_gran.html, "wall/gran/region"_fix_wall_gran_region.html, @@ -932,9 +933,7 @@ KOKKOS, o = USER-OMP, t = OPT. "airebo (oi)"_pair_airebo.html, "airebo/morse (oi)"_pair_airebo.html, "beck (go)"_pair_beck.html, -"body/nparticle"_pair_body_nparticle.html, -"body/rounded/polygon"_pair_body_rounded/polygon.html, -"body/rounded/polyhedron"_pair_body_rounded/polyhedron.html, +"body"_pair_body.html, "bop"_pair_bop.html, "born (go)"_pair_born.html, "born/coul/dsf"_pair_born.html, diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt index 2784858f02..3a38ccedcb 100644 --- a/doc/src/Section_howto.txt +++ b/doc/src/Section_howto.txt @@ -37,7 +37,8 @@ This section describes how to perform common tasks using LAMMPS. 6.25 "Polarizable models"_#howto_25 6.26 "Adiabatic core/shell model"_#howto_26 6.27 "Drude induced dipoles"_#howto_27 -6.28 "Magnetic spins"_#howto_28 :all(b) +6.28 "Magnetic spins"_#howto_28 +6.29 "Using LAMMPS in client/server mode"_#howto_29 :all(b) The example input scripts included in the LAMMPS distribution and highlighted in "Section 7"_Section_example.html also show how to @@ -663,7 +664,7 @@ atoms and pass those forces to LAMMPS. Or a continuum finite element nodal points, compute a FE solution, and return interpolated forces on MD atoms. -LAMMPS can be coupled to other codes in at least 3 ways. Each has +LAMMPS can be coupled to other codes in at least 4 ways. Each has advantages and disadvantages, which you'll have to think about in the context of your application. @@ -752,7 +753,8 @@ LAMMPS and half to the other code and run both codes simultaneously before syncing them up periodically. Or it might instantiate multiple instances of LAMMPS to perform different calculations. -:line +(4) Couple LAMMPS with another code in a client/server mode. This is +described in a separate "howto section"_#howto_29. 6.11 Visualizing LAMMPS snapshots :link(howto_11),h4 @@ -2955,6 +2957,130 @@ property/atom"_compute_property_atom.html. It enables to output all the per atom magnetic quantities. Typically, the orientation of a given magnetic spin, or the magnetic force acting on this spin. +:line + +6.29 Using LAMMPS in client/server mode :link(howto_29),h4 + +Client/server coupling of two codes is where one code is the "client" +and sends request messages to a "server" code. The server responds to +each request with a reply message. This enables the two codes to work +in tandem to perform a simulation. LAMMPS can act as either a client +or server code. + +Some advantages of client/server coupling are that the two codes run +as stand-alone executables; they are not linked together. Thus +neither code needs to have a library interface. This often makes it +easier to run the two codes on different numbers of processors. If a +message protocol (format and content) is defined for a particular kind +of simulation, then in principle any code that implements the +client-side protocol can be used in tandem with any code that +implements the server-side protocol, without the two codes needing to +know anything more specific about each other. + +A simple example of client/server coupling is where LAMMPS is the +client code performing MD timestepping. Each timestep it sends a +message to a server quantum code containing current coords of all the +atoms. The quantum code computes energy and forces based on the +coords. It returns them as a message to LAMMPS, which completes the +timestep. + +Alternate methods for code coupling with LAMMPS are described in "this +section"_#howto10. + +LAMMPS support for client/server coupling is in its "MESSAGE +package"_Section_package.html#MESSAGE which implements several +commands that enable LAMMPS to act as a client or server, as discussed +below. The MESSAGE package also wraps a client/server library called +CSlib which enables two codes to exchange messages in different ways, +either via files, a socket, or MPI. The CSlib is provided with LAMMPS +in the lib/message dir. It has its own +"website"_http://cslib.sandia.gov (as of Aug 2018) with documentation +and test programs. + +NOTE: For client/server coupling to work between LAMMPS and another +code, the other code also has to use the CSlib. This can sometimes be +done without any modifications to the other code by simply wrapping it +with a Python script that exchanges CSlib messages with LAMMPS and +prepares input for or processes output from the other code. The other +code also has to implement a matching protocol for the format and +content of messages that LAMMPS exchanges with it. + +These are the commands currently in the MESSAGE package for two +protocols, MD and MC (Monte Carlo). New protocols can easily be +defined and added to this directory, where LAMMPS acts as either the +client or server. + +"message"_message.html +"fix client md"_fix_client_md.html = LAMMPS is a client for running MD +"server md"_server_md.html = LAMMPS is a server for computing MD forces +"server mc"_server_mc.html = LAMMPS is a server for computing a Monte Carlo energy + +The server doc files give details of the message protocols +for data that is exchanged bewteen the client and server. + +These example directories illustrate how to use LAMMPS as either a +client or server code: + +examples/message +examples/COUPLE/README +examples/COUPLE/lammps_mc +examples/COUPLE/lammps_vasp :ul + +The examples/message dir couples a client instance of LAMMPS to a +server instance of LAMMPS. + +The lammps_mc dir shows how to couple LAMMPS as a server to a simple +Monte Carlo client code as the driver. + +The lammps_vasp dir shows how to couple LAMMPS as a client code +running MD timestepping to VASP acting as a server providing quantum +DFT forces, thru a Python wrapper script on VASP. + +Here is how to launch a client and server code together for any of the +4 modes of message exchange that the "message"_message.html command +and the CSlib support. Here LAMMPS is used as both the client and +server code. Another code could be subsitituted for either. + +The examples below show launching both codes from the same window (or +batch script), using the "&" character to launch the first code in the +background. For all modes except {mpi/one}, you could also launch the +codes in separate windows on your desktop machine. It does not +matter whether you launch the client or server first. + +In these examples either code can be run on one or more processors. +If running in a non-MPI mode (file or zmq) you can launch a code on a +single processor without using mpirun. + +IMPORTANT: If you run in mpi/two mode, you must launch both codes via +mpirun, even if one or both of them runs on a single processor. This +is so that MPI can figure out how to connect both MPI processes +together to exchange MPI messages between them. + +For message exchange in {file}, {zmq}, or {mpi/two} modes: + +% mpirun -np 1 lmp_mpi -log log.client < in.client & +% mpirun -np 2 lmp_mpi -log log.server < in.server :pre + +% mpirun -np 4 lmp_mpi -log log.client < in.client & +% mpirun -np 1 lmp_mpi -log log.server < in.server :pre + +% mpirun -np 2 lmp_mpi -log log.client < in.client & +% mpirun -np 4 lmp_mpi -log log.server < in.server :pre + +For message exchange in {mpi/one} mode: + +Launch both codes in a single mpirun command: + +mpirun -np 2 lmp_mpi -mpi 2 -in in.message.client -log log.client : -np 4 lmp_mpi -mpi 2 -in in.message.server -log log.server + +The two -np values determine how many procs the client and the server +run on. + +A LAMMPS executable run in this manner must use the -mpi P +command-line option as their first option, where P is the number of +processors the first code in the mpirun command (client or server) is +running on. + :line :line diff --git a/doc/src/Section_packages.txt b/doc/src/Section_packages.txt index 218866e271..a572574fa2 100644 --- a/doc/src/Section_packages.txt +++ b/doc/src/Section_packages.txt @@ -100,6 +100,7 @@ Package, Description, Doc page, Example, Library "MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, - "MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, - "MEAM"_#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int +"MESSAGE"_#MESSAGE, client/server messaging, "message"_message.html, message, int "MISC"_#MISC, miscellanous single-file commands, -, -, - "MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, - "MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, - @@ -879,6 +880,52 @@ examples/meam :ul :line +MESSAGE package :link(MESSAGE),h4 + +[Contents:] + +Commands to use LAMMPS as either a client or server +and couple it to another application. + +[Install or un-install:] + +Before building LAMMPS with this package, you must first build the +CSlib library in lib/message. You can do this manually if you prefer; +follow the instructions in lib/message/README. You can also do it in +one step from the lammps/src dir, using a command like these, which +simply invoke the lib/message/Install.py script with the specified +args: + +make lib-message # print help message +make lib-message args="-m -z" # build with MPI and socket (ZMQ) support +make lib-message args="-s" # build as serial lib with no ZMQ support + +The build should produce two files: lib/message/cslib/src/libmessage.a +and lib/message/Makefile.lammps. The latter is copied from an +existing Makefile.lammps.* and has settings to link with the +open-source ZMQ library if requested in the build. + +You can then install/un-install the package and build LAMMPS in the +usual manner: + +make yes-message +make machine :pre + +make no-message +make machine :pre + +[Supporting info:] + +src/MESSAGE: filenames -> commands +lib/message/README +"message"_message.html +"fix client/md"_fix_client_md.html +"server md"_server_md.html +"server mc"_server_mc.html +examples/message :ul + +:line + MISC package :link(MISC),h4 [Contents:] diff --git a/doc/src/Section_start.txt b/doc/src/Section_start.txt index 7d456171dc..f38339661b 100644 --- a/doc/src/Section_start.txt +++ b/doc/src/Section_start.txt @@ -1204,6 +1204,7 @@ letter abbreviation can be used: -i or -in -k or -kokkos -l or -log +-m or -mpi -nc or -nocite -pk or -package -p or -partition @@ -1351,6 +1352,24 @@ specified file is "none", then no log files are created. Using a "log"_log.html command in the input script will override this setting. Option -plog will override the name of the partition log files file.N. +-mpi P :pre + +If used, this must be the first command-line argument after the LAMMPS +executable name. It is only used when running LAMMPS in client/server +mode with the "mpi/one" mode of messaging provided by the +"message"_message.html command and the CSlib library LAMMPS links with +from the lib/message directory. See the "message"_message.html +command for more details + +In the mpi/one mode of messaging, both executables (the client and the +server) are launched by one mpirun command. P should be specified as +the number of processors (MPI tasks) the first executable is running +on (could be the client or the server code). + +This information is required so that both codes can shrink the +MPI_COMM_WORLD communicator they are part of to the subset of +processors they are actually running on. + -nocite :pre Disable writing the log.cite file which is normally written to list diff --git a/doc/src/fix_client_md.txt b/doc/src/fix_client_md.txt new file mode 100644 index 0000000000..53cd7c36c2 --- /dev/null +++ b/doc/src/fix_client_md.txt @@ -0,0 +1,105 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +fix client/md command :h3 + +[Syntax:] + +fix ID group-ID client/md :pre + +ID, group-ID are documented in "fix"_fix.html command +client/md = style name of this fix command :ul + +[Examples:] + +fix 1 all client/md :pre + +[Description:] + +This fix style enables LAMMPS to run as a "client" code and +communicate each timestep with a separate "server" code to perform an +MD simulation together. + +"This section"_Section_howto.html#howto_29 gives an overview of +client/server coupling of LAMMPS with another code where one code is +the "client" and sends request messages to a "server" code. The +server responds to each request with a reply message. This enables +the two codes to work in tandem to perform a simulation. + +When using this fix, LAMMPS (as the client code) passes the current +coordinates of all particles to the server code each timestep, which +computes their interaction, and returns the energy, forces, and virial +for the interacting particles to LAMMPS, so it can complete the +timestep. + +The server code could be a quantum code, or another classical MD code +which encodes a force field (pair_style in LAMMPS lingo) which LAMMPS +does not have. In the quantum case, this fix is a mechanism for +running {ab initio} MD with quantum forces. + +The group associated with this fix is ignored. + +The protocol for message format and content that LAMMPS exchanges with +the server code is defined on the "server md"_server_md.html doc page. + +Note that when using LAMMPS in this mode, your LAMMPS input script +should not normally contain force field commands, like a +"pair_style"_doc/pair_style.html, "bond_style"_doc/bond_style.html, or +"kspace_style"_kspace_style.html commmand. However it is possible for +a server code to only compute a portion of the full force-field, while +LAMMPS computes the remaining part. Your LAMMPS script can also +specify boundary conditions or force constraints in the usual way, +which will be added to the per-atom forces returned by the server +code. + +See the examples/message dir for example scripts where LAMMPS is both +the "client" and/or "server" code for this kind of client/server MD +simulation. The examples/message/README file explains how to launch +LAMMPS and another code in tandem to perform a coupled simulation. + +:line + +[Restart, fix_modify, output, run start/stop, minimize info:] + +No information about this fix is written to "binary restart +files"_restart.html. + +The "fix_modify"_fix_modify.html {energy} option is supported by this +fix to add the potential energy computed by the server application to +the system's potential energy as part of "thermodynamic +output"_thermo_style.html. + +The "fix_modify"_fix_modify.html {virial} option is supported by this +fix to add the server application's contribution to the system's +virial as part of "thermodynamic output"_thermo_style.html. The +default is {virial yes} + +This fix computes a global scalar which can be accessed by various +"output commands"_Section_howto.html#howto_15. The scalar is the +potential energy discussed above. The scalar value calculated by this +fix is "extensive". + +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. + +[Restrictions:] + +This fix is part of the MESSAGE package. It is only enabled if LAMMPS +was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +A script that uses this command must also use the +"message"_message.html command to setup the messaging protocol with +the other server code. + +[Related commands:] + +"message"_message.html, "server"_server.html + +[Default:] none diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 06f4bf3718..a75f2469ca 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -67,6 +67,7 @@ label.html lattice.html log.html mass.html +message.html min_modify.html min_style.html minimize.html @@ -94,6 +95,9 @@ reset_timestep.html restart.html run.html run_style.html +server.html +server_mc.html +server_md.html set.html shell.html special_bonds.html @@ -140,7 +144,8 @@ fix_bond_break.html fix_bond_create.html fix_bond_react.html fix_bond_swap.html -fix_box_relax.html +fix_box_relax.htmlf +fix_client_md.html fix_cmap.html fix_colvars.html fix_controller.html @@ -283,8 +288,6 @@ fix_vector.html fix_viscosity.html fix_viscous.html fix_wall.html -fix_wall_body_polygon.html -fix_wall_body_polyhedron.html fix_wall_ees.html fix_wall_gran.html fix_wall_gran_region.html @@ -426,9 +429,8 @@ pair_agni.html pair_airebo.html pair_awpmd.html pair_beck.html -pair_body_nparticle.html +pair_body.html pair_body_rounded_polygon.html -pair_body_rounded_polyhedron.html pair_bop.html pair_born.html pair_brownian.html diff --git a/doc/src/message.txt b/doc/src/message.txt new file mode 100644 index 0000000000..bbea48f0f1 --- /dev/null +++ b/doc/src/message.txt @@ -0,0 +1,159 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +message command :h3 + +[Syntax:] + +message which protocol mode arg :pre + +which = {client} or {server} :ulb,l +protocol = {md} or {mc} :l +mode = {file} or {zmq} or {mpi/one} or {mpi/two} :l + {file} arg = filename + filename = file used for message exchanges + {zmq} arg = socket-ID + socket-ID for client = localhost:5555, see description below + socket-ID for server = *:5555, see description below + {mpi/one} arg = none + {mpi/two} arg = filename + filename = file used to establish communication bewteen 2 MPI jobs :pre +:ule + +[Examples:] + +message client md file tmp.couple +message server md file tmp.couple :pre + +message client md zmq localhost:5555 +message server md zmq *:5555 :pre + +message client md mpi/one +message server md mpi/one :pre + +message client md mpi/two tmp.couple +message server md mpi/two tmp.couple :pre + +[Description:] + +Establish a messaging protocol between LAMMPS and another code for the +purpose of client/server coupling. + +"This section"_Section_howto.html#howto_29 gives an overview of +client/server coupling of LAMMPS with another code where one code is +the "client" and sends request messages to a "server" code. The +server responds to each request with a reply message. This enables +the two codes to work in tandem to perform a simulation. + +:line + +The {which} argument defines LAMMPS to be the client or the server. + +:line + +The {protocol} argument defines the format and content of messages +that will be exchanged between the two codes. The current options +are: + +md = run dynamics with another code +mc = perform Monte Carlo moves with another code :ul + +For protocol {md}, LAMMPS can be either a client or server. See the +"server md"_server_md.html doc page for details on the protocol. + +For protocol {mc}, LAMMPS can be the server. See the "server +mc"_server_mc.html doc page for details on the protocol. + +:line + +The {mode} argument specifies how messages are exchanged between the +client and server codes. Both codes must use the same mode and use +consistent parameters. + +For mode {file}, the 2 codes communicate via binary files. They must +use the same filename, which is actually a file prefix. Several files +with that prefix will be created and deleted as a simulation runs. +The filename can include a path. Both codes must be able to access +the path/file in a common filesystem. + +For mode {zmq}, the 2 codes communicate via a socket on the server +code's machine. The client specifies an IP address (IPv4 format) or +the DNS name of the machine the server code is running on, followed by +a 4-digit port ID for the socket, separated by a colon. E.g. + +localhost:5555 # client and server running on same machine +192.168.1.1:5555 # server is 192.168.1.1 +deptbox.uni.edu:5555 # server is deptbox.uni.edu :pre + +The server specifes "*:5555" where "*" represents all available +interfaces on the server's machine, and the port ID must match +what the client specifies. + +NOTE: What are allowed port IDs? + +NOTE: Additional explanation is needed here about how to use the {zmq} +mode on a parallel machine, e.g. a cluster with many nodes. + +For mode {mpi/one}, the 2 codes communicate via MPI and are launched +by the same mpirun command, e.g. with this syntax for OpenMPI: + +mpirun -np 2 lmp_mpi -mpi 2 -in in.client -log log.client : -np 4 othercode args # LAMMPS is client +mpirun -np 2 othercode args : -np 4 lmp_mpi -mpi 2 -in in.server # LAMMPS is server :pre + +Note the use of the "-mpi P" command-line argument with LAMMPS. See +the "command-line args"_Section_start.html#start_6 doc page for +further explanation. + +For mode {mpi/two}, the 2 codes communicate via MPI, but are launched +be 2 separate mpirun commands. The specified {filename} argument is a +file the 2 MPI processes will use to exchange info so that an MPI +inter-communicator can be established to enable the 2 codes to send +MPI messages to each other. Both codes must be able to access the +path/file in a common filesystem. + +:line + +Normally, the message command should be used at the top of a LAMMPS +input script. It performs an initial handshake with the other code to +setup messaging and to verify that both codes are using the same +message protocol and mode. Assuming both codes are launched at +(nearly) the same time, the other code should perform the same kind of +initialization. + +If LAMMPS is the client code, it will begin sending messages when a +LAMMPS client command begins its operation. E.g. for the "fix +client/md"_fix_client_md.html command, it is when a "run"_run.html +command is executed. + +If LAMMPS is the server code, it will begin receiving messages when +the "server"_server.html command is invoked. + +A fix client command will terminate its messaging with the server when +LAMMPS ends, or the fix is deleted via the "unfix"_unfix command. The +server command will terminate its messaging with the client when the +client signals it. Then the remainder of the LAMMPS input script will +be processed. + +If both codes do something similar, this means a new round of +client/server messaging can be initiated after termination by re-using +a 2nd message command in your LAMMPS input script, followed by a new +fix client or server command. + +:line + +[Restrictions:] + +This command is part of the MESSAGE package. It is only enabled if +LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +[Related commands:] + +"server"_server.html, "fix client/md"_fix_client_md.html + +[Default:] none diff --git a/doc/src/server.txt b/doc/src/server.txt new file mode 100644 index 0000000000..ba6daa7fcf --- /dev/null +++ b/doc/src/server.txt @@ -0,0 +1,71 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +server command :h3 + +[Syntax:] + +server protocol :pre + +protocol = {md} or {mc} :ul + +[Examples:] + +server md :pre + +[Description:] + +This command starts LAMMPS running in "server" mode, where it receives +messages from a separate "client" code and responds by sending a reply +message back to the client. The specified {protocol} determines the +format and content of messages LAMMPS expects to receive and how it +responds. + +"This section"_Section_howto.html#howto_29 gives an overview of +client/server coupling of LAMMPS with another code where one code is +the "client" and sends request messages to a "server" code. The +server responds to each request with a reply message. This enables +the two codes to work in tandem to perform a simulation. + +When this command is invoked, LAMMPS will run in server mode in an +endless loop, waiting for messages from the client code. The client +signals when it is done sending messages to LAMMPS, at which point the +loop will exit, and the remainder of the LAMMPS script will be +processed. + +The {protocol} argument defines the format and content of messages +that will be exchanged between the two codes. The current options +are: + +"md"_server_md.html = run dynamics with another code +"mc"_server_mc.html = perform Monte Carlo moves with another code :ul + +For protocol {md}, LAMMPS can be either a client (via the "fix +client/md"_fix_client_md.html command) or server. See the "server +md"_server_md.html doc page for details on the protocol. + +For protocol {mc}, LAMMPS can be the server. See the "server +mc"_server_mc.html doc page for details on the protocol. + +:line + +[Restrictions:] + +This command is part of the MESSAGE package. It is only enabled if +LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +A script that uses this command must also use the +"message"_message.html command to setup the messaging protocol with +the other client code. + +[Related commands:] + +"message"_message.html, "fix client/md"_fix_client_md.html + +[Default:] none diff --git a/doc/src/server_mc.txt b/doc/src/server_mc.txt new file mode 100644 index 0000000000..44335efc95 --- /dev/null +++ b/doc/src/server_mc.txt @@ -0,0 +1,112 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +server mc command :h3 + +[Syntax:] + +server mc :pre + +mc = the protocol argument to the "server"_server.html command + +[Examples:] + +server mc :pre + +[Description:] + +This command starts LAMMPS running in "server" mode, where it will +expect messages from a separate "client" code that match the {mc} +protocol for format and content explained below. For each message +LAMMPS receives it will send a message back to the client. + +"This section"_Section_howto.html#howto_29 gives an overview of +client/server coupling of LAMMPS with another code where one code is +the "client" and sends request messages to a "server" code. The +server responds to each request with a reply message. This enables +the two codes to work in tandem to perform a simulation. + +When this command is invoked, LAMMPS will run in server mode in an +endless loop, waiting for messages from the client code. The client +signals when it is done sending messages to LAMMPS, at which point the +loop will exit, and the remainder of the LAMMPS script will be +processed. + +See an example of how this command is used in +examples/COUPLE/lammps_mc/in.server. + +:line + +When using this command, LAMMPS (as the server code) receives +instructions from a Monte Carlo (MC) driver to displace random atoms, +compute the energy before and after displacement, and run dynamics to +equilibrate the system. + +The MC driver performs the random displacements on random atoms, +accepts or rejects the move in an MC sense, and orchestrates the MD +runs. + +The format and content of the exchanged messages are explained here in +a conceptual sense. Python-style pseudo code for the library calls to +the CSlib is shown, which performs the actual message exchange between +the two codes. See the "CSlib website"_http://cslib.sandia.gov doc +pages for more details on the actual library syntax (as of Aug 2018). +The "cs" object in this pseudo code is an instance of the CSlib that +both the client and server codes store. + +See the src/MESSAGE/server_mc.cpp file for details on how LAMMPS uses +these messages. See the examples/COUPLE/lammmps_mc/mc.cpp file for an +example of how an MC driver code can use these messages. + +Let NATOMS=1, EINIT=2, DISPLACE=3, ACCEPT=4, RUN=5. + +[Client sends one of these kinds of message]: + +cs.send(NATOMS,0) # msgID = 1 with no fields :pre + +cs.send(EINIT,0) # msgID = 2 with no fields :pre + +cs.send(DISPLACE,2) # msgID = 3 with 2 fields +cs.pack(1,1,ID) # 1st field = ID of atom to displace +cs.pack(2,3,xnew) # 2nd field = new xyz coords of displaced atom :pre + +cs.send(ACCEPT,1) # msgID = 4 with 1 field +cs.pack(1,1,flag) # 1st field = accept/reject flag :pre + +cs.send(RUN,1) # msgID = 5 with 1 field +cs.pack(1,1,nsteps) # 1st field = # of timesteps to run MD :pre + +[Server replies]: + +cs.send(NATOMS,1) # msgID = 1 with 1 field +cs.pack(1,1,Natoms) # 1st field = number of atoms :pre + +cs.send(EINIT,2) # msgID = 2 with 2 fields +cs.pack(1,1,poteng) # 1st field = potential energy of system +cs.pack(2,3*Natoms,x) # 2nd field = 3N coords of Natoms :pre + +cs.send(DISPLACE,1) # msgID = 3 with 1 field +cs.pack(1,1,poteng) # 1st field = new potential energy of system :pre + +cs.send(ACCEPT,0) # msgID = 4 with no fields + +cs.send(RUN,0) # msgID = 5 with no fields + +:line + +[Restrictions:] + +This command is part of the MESSAGE package. It is only enabled if +LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +[Related commands:] + +"message"_message.html + +[Default:] none diff --git a/doc/src/server_md.txt b/doc/src/server_md.txt new file mode 100644 index 0000000000..422b207bed --- /dev/null +++ b/doc/src/server_md.txt @@ -0,0 +1,122 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +server md command :h3 + +[Syntax:] + +server md :pre + +md = the protocol argument to the "server"_server.html command + +[Examples:] + +server md :pre + +[Description:] + +This command starts LAMMPS running in "server" mode, where it will +expect messages from a separate "client" code that match the {md} +protocol for format and content explained below. For each message +LAMMPS receives it will send a message back to the client. + +"This section"_Section_howto.html#howto_29 gives an overview of +client/server coupling of LAMMPS with another code where one code is +the "client" and sends request messages to a "server" code. The +server responds to each request with a reply message. This enables +the two codes to work in tandem to perform a simulation. + +When this command is invoked, LAMMPS will run in server mode in an +endless loop, waiting for messages from the client code. The client +signals when it is done sending messages to LAMMPS, at which point the +loop will exit, and the remainder of the LAMMPS script will be +processed. + +See an example of how this command is used in +examples/message/in.message.server. + +:line + +When using this command, LAMMPS (as the server code) receives the +current coordinates of all particles from the client code each +timestep, computes their interaction, and returns the energy, forces, +and virial for the interacting particles to the client code, so it can +complete the timestep. This command could also be used with a client +code that performs energy minimization, using the server to compute +forces and energy each iteration of its minimizer. + +When using the "fix client/md" command, LAMMPS (as the client code) +does the timestepping and receives needed energy, forces, and virial +values from the server code. + +The format and content of the exchanged messages are explained here in +a conceptual sense. Python-style pseudo code for the library calls to +the CSlib is shown, which performs the actual message exchange between +the two codes. See the "CSlib website"_http://cslib.sandia.gov doc +pages for more details on the actual library syntax (as of Aug 2018). +The "cs" object in this pseudo code is an instance of the CSlib that +both the client and server codes store. + +See the src/MESSAGE/server_md.cpp and src/MESSAGE/fix_client_md.cpp +files for details on how LAMMPS uses these messages. See the +examples/COUPLE/lammps_vasp/vasp_wrapper.py file for an example of how +a quantum code (VASP) can use use these messages. + +The following code uses these values, defined as enums in LAMMPS: + +enum{SETUP=1,STEP}; +enum{UNITS=1,DIM,NATOMS,NTYPES,BOXLO,BOXHI,BOXTILT,TYPES,COORDS,CHARGE}; +enum{FORCES=1,ENERGY,VIRIAL}; :pre + +[Client sends 2 kinds of messages]: + +# required fields: NATOMS, NTYPES, BOXLO, BOXHI, TYPES, COORDS +# optional fields: others in 2nd enum above :pre + +cs.send(SETUP,nfields) # msgID with nfields :pre + +cs.pack_string(UNITS,units) # units = "lj", "real", "metal", etc +cs.pack_int(NATOMS,natoms) # total numer of atoms +cs.pack_int(NTYPES,ntypes) # number of atom types +cs.pack(BOXLO,3,boxlo) # 3-vector of lower box bounds +cs.pack(BOXHI,3,boxhi) # 3-vector of upper box bounds +cs.pack(BOXTILT,3,boxtilt) # 3-vector of tilt factors for triclinic boxes +cs.pack(TYPES,natoms,type) # vector of per-atom types +cs.pack(COORDS,3*natoms,x) # vector of 3N atom coords +cs.pack(CHARGE,natoms,q) # vector of per-atom charge :pre + +# required fields: COORDS +# optional fields: BOXLO, BOXHI, BOXTILT :pre + +cs.send(STEP,nfields) # msgID with nfields :pre + +cs.pack_int(NATOMS,natoms) # total numer of atoms +cs.pack_int(NTYPES,ntypes) # number of atom types +cs.pack(BOXLO,3,boxlo) # 3-vector of lower box bounds +cs.pack(BOXTILT,3,boxtilt) # 3-vector of tilt factors for triclinic boxes :pre + +[Server replies to either kind of message]: + +cs.send(msgID,3) # msgID = 1 with 3 fields +cs.pack(FORCES,3*Natoms,f) # vector of 3N forces on atoms +cs.pack(ENERGY,1,poteng) # total potential energy of system +cs.pack(VIRIAL,6,virial) # global virial tensor (6-vector) :pre + +:line + +[Restrictions:] + +This command is part of the MESSAGE package. It is only enabled if +LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +[Related commands:] + +"message"_message.html, "fix client/md"_fix_client_md.html + +[Default:] none diff --git a/examples/COUPLE/README b/examples/COUPLE/README index 83e7463531..2d09ed7d4b 100644 --- a/examples/COUPLE/README +++ b/examples/COUPLE/README @@ -10,6 +10,7 @@ See these sections of the LAMMPS manaul for details: 2.5 Building LAMMPS as a library (doc/Section_start.html#start_5) 6.10 Coupling LAMMPS to other codes (doc/Section_howto.html#howto_10) +6.29 Using LAMMPS in client/server mode (doc/Section_howto.html#howto_29) In all of the examples included here, LAMMPS must first be built as a library. Basically, in the src dir you type one of @@ -33,9 +34,11 @@ These are the sub-directories included in this directory: simple simple example of driver code calling LAMMPS as a lib multiple example of driver code calling multiple instances of LAMMPS +lammps_mc client/server coupling Monte Carlo with LAMMPS MD lammps_quest MD with quantum forces, coupling to Quest DFT code lammps_spparks grain-growth Monte Carlo with strain via MD, coupling to SPPARKS kinetic MC code +lammps_vasp client/server coupling LAMMPS MD with VASP quantum DFT library collection of useful inter-code communication routines fortran a simple wrapper on the LAMMPS library API that can be called from Fortran diff --git a/examples/COUPLE/lammps_mc/Makefile b/examples/COUPLE/lammps_mc/Makefile new file mode 100644 index 0000000000..821eb58134 --- /dev/null +++ b/examples/COUPLE/lammps_mc/Makefile @@ -0,0 +1,34 @@ +# Makefile for MC + +SHELL = /bin/sh + +SRC = mc.cpp random_park.cpp +OBJ = $(SRC:.cpp=.o) + +# change this line for your machine to path for CSlib src dir + +CSLIB = /home/sjplimp/lammps/lib/message/cslib/src + +# compiler/linker settings + +CC = g++ +CCFLAGS = -g -O3 -I$(CSLIB) +LINK = g++ +LINKFLAGS = -g -O -L$(CSLIB) + +# targets + +mc: $(OBJ) +# this line if built the CSlib within lib/message with ZMQ support +# note this is using the serial (no-mpi) version of the CSlib + $(LINK) $(LINKFLAGS) $(OBJ) -lcsnompi -lzmq -o mc +# this line if built the CSlib without ZMQ support +# $(LINK) $(LINKFLAGS) $(OBJ) -lcsnompi -o mc + +clean: + @rm -f *.o mc + +# rules + +%.o:%.cpp + $(CC) $(CCFLAGS) -c $< diff --git a/examples/COUPLE/lammps_mc/README b/examples/COUPLE/lammps_mc/README new file mode 100644 index 0000000000..512f7304de --- /dev/null +++ b/examples/COUPLE/lammps_mc/README @@ -0,0 +1,106 @@ +Sample Monte Carlo (MC) wrapper on LAMMPS via client/server coupling + +See the MESSAGE package (doc/Section_messages.html#MESSAGE) +and Section_howto.html#howto10 for more details on how +client/server coupling works in LAMMPS. + +In this dir, the mc.cpp/h files are a standalone "client" MC code. It +should be run on a single processor, though it could become a parallel +program at some point. LAMMPS is also run as a standalone executable +as a "server" on as many processors as desired using its "server mc" +command; see it's doc page for details. + +Messages are exchanged between MC and LAMMPS via a client/server +library (CSlib), which is included in the LAMMPS distribution in +lib/message. As explained below you can choose to exchange data +between the two programs either via files or sockets (ZMQ). If the MC +program became parallel, data could also be exchanged via MPI. + +The MC code makes simple MC moves, by displacing a single random atom +by a small random amount. It uses LAMMPS to calculate the energy +change, and to run dynamics between MC moves. + +---------------- + +Build LAMMPS and the MC client code + +First, build LAMMPS with its MESSAGE package installed: + +cd lammps/lib/message +python Install.py -m -z # build CSlib with MPI and ZMQ support +cd lammps/src +make yes-message +make mpi + +You can leave off the -z if you do not have ZMQ on your system. + +Next build the MC client code: + +First edit the Makefile in this dir. The CSLIB variable should be the +path to where the LAMMPS lib/message dir is on your system. If you +built the CSlib without ZMQ support you will also need to +comment/uncomment two lines. Then you can just type "make" and you +should get an "mc" executable. + +---------------- + +To run in client/server mode: + +Both the client (MC) and server (LAMMPS) must use the same messaging +mode, namely file or zmq. This is an argument to the MC code; it can +be selected by setting the "mode" variable when you run LAMMPS. The +default mode = file. + +Here we assume LAMMPS was built to run in parallel, and the MESSAGE +package was installed with socket (ZMQ) support. This means either of +the messaging modes can be used and LAMMPS can be run in serial or +parallel. The MC code is always run in serial. + +When you run, the server should print out thermodynamic info +for every MD run it performs (between MC moves). The client +will print nothing until the simulation ends, then it will +print stats about the accepted MC moves. + +The examples below are commands you should use in two different +terminal windows. The order of the two commands (client or server +launch) does not matter. You can run them both in the same window if +you append a "&" character to the first one to run it in the +background. + +-------------- + +File mode of messaging: + +% mpirun -np 1 mc in.mc file tmp.couple +% mpirun -np 1 lmp_mpi -v mode file < in.mc.server + +% mpirun -np 1 mc in.mc file tmp.couple +% mpirun -np 4 lmp_mpi -v mode file < in.mc.server + +ZMQ mode of messaging: + +% mpirun -np 1 mc in.mc zmq localhost:5555 +% mpirun -np 1 lmp_mpi -v mode zmq < in.mc.server + +% mpirun -np 1 mc in.mc zmq localhost:5555 +% mpirun -np 4 lmp_mpi -v mode zmq < in.mc.server + +-------------- + +The input script for the MC program is in.mc. You can edit it to run +longer simulations. + +500 nsteps = total # of steps of MD +100 ndynamics = # of MD steps between MC moves +0.1 delta = displacement size of MC move +1.0 temperature = used in MC Boltzman factor +12345 seed = random number seed + +-------------- + +The problem size that LAMMPS is computing the MC energy for and +running dynamics on is set by the x,y,z variables in the LAMMPS +in.mc.server script. The default size is 500 particles. You can +adjust the size as follows: + +lmp_mpi -v x 10 -v y 10 -v z 20 # 8000 particles diff --git a/examples/COUPLE/lammps_mc/in.mc b/examples/COUPLE/lammps_mc/in.mc new file mode 100644 index 0000000000..85052d09f1 --- /dev/null +++ b/examples/COUPLE/lammps_mc/in.mc @@ -0,0 +1,7 @@ +# MC params + +500 nsteps +100 ndynamics +0.1 delta +1.0 temperature +12345 seed diff --git a/examples/COUPLE/lammps_mc/in.mc.server b/examples/COUPLE/lammps_mc/in.mc.server new file mode 100644 index 0000000000..8b10bb0f7b --- /dev/null +++ b/examples/COUPLE/lammps_mc/in.mc.server @@ -0,0 +1,36 @@ +# 3d Lennard-Jones Monte Carlo server script + +variable mode index file + +if "${mode} == file" then & + "message server mc file tmp.couple" & +elif "${mode} == zmq" & + "message server mc zmq *:5555" & + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +region box block 0 $x 0 $y 0 $z +create_box 1 box +create_atoms 1 box +mass 1 1.0 + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 20 check no + +velocity all create 1.44 87287 loop geom + +fix 1 all nve + +thermo 50 + +server mc diff --git a/examples/COUPLE/lammps_mc/log.23Jul18.file.g++.1 b/examples/COUPLE/lammps_mc/log.23Jul18.file.g++.1 new file mode 100644 index 0000000000..34e016e0c1 --- /dev/null +++ b/examples/COUPLE/lammps_mc/log.23Jul18.file.g++.1 @@ -0,0 +1,254 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones Monte Carlo server script + +variable mode index file + +if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555" +message server mc file tmp.couple +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000633001 secs +mass 1 1.0 + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 20 check no + +velocity all create 1.44 87287 loop geom + +fix 1 all nve + +thermo 50 + +server mc +run 0 +Neighbor list info ... + update every 20 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 +Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms + +52.4% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.907e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19500 ave 19500 max 19500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19500 +Ave neighs/atom = 39 +Neighbor list builds = 0 +Dangerous builds not checked +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 +Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms + +46.6% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.146e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19501 ave 19501 max 19501 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19501 +Ave neighs/atom = 39.002 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 + 50 0.70239211 -5.6763152 0 -4.6248342 0.59544428 + 100 0.7565013 -5.757431 0 -4.6249485 0.21982657 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.7565013 -5.7565768 0 -4.6240944 0.22436405 +Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms + +157.3% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.907e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1939 ave 1939 max 1939 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18757 ave 18757 max 18757 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18757 +Ave neighs/atom = 37.514 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.7565013 -5.757431 0 -4.6249485 0.21982657 + 150 0.76110797 -5.7664315 0 -4.6270529 0.16005254 + 200 0.73505651 -5.7266069 0 -4.6262273 0.34189744 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73505651 -5.7181381 0 -4.6177585 0.37629943 +Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms + +209.7% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 9.537e-07 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1899 ave 1899 max 1899 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18699 ave 18699 max 18699 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18699 +Ave neighs/atom = 37.398 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73505651 -5.7266069 0 -4.6262273 0.34189744 + 250 0.73052476 -5.7206316 0 -4.627036 0.39287516 + 300 0.76300831 -5.7675007 0 -4.6252773 0.16312925 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76300831 -5.768304 0 -4.6260806 0.15954325 +Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms + +314.6% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 9.537e-07 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1903 ave 1903 max 1903 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18715 ave 18715 max 18715 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18715 +Ave neighs/atom = 37.43 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76300831 -5.768304 0 -4.6260806 0.15954325 + 350 0.72993309 -5.7193261 0 -4.6266162 0.3358374 + 400 0.72469448 -5.713463 0 -4.6285954 0.44859547 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.72469448 -5.7077332 0 -4.6228655 0.47669832 +Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms + +314.6% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 9.537e-07 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1899 ave 1899 max 1899 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18683 ave 18683 max 18683 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18683 +Ave neighs/atom = 37.366 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.72469448 -5.713463 0 -4.6285954 0.44859547 + 450 0.75305735 -5.7518283 0 -4.6245015 0.34658587 + 500 0.73092571 -5.7206337 0 -4.6264379 0.43715809 +Total wall time: 0:00:02 diff --git a/examples/COUPLE/lammps_mc/log.23Jul18.file.g++.4 b/examples/COUPLE/lammps_mc/log.23Jul18.file.g++.4 new file mode 100644 index 0000000000..3b73e52595 --- /dev/null +++ b/examples/COUPLE/lammps_mc/log.23Jul18.file.g++.4 @@ -0,0 +1,254 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones Monte Carlo server script + +variable mode index file + +if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555" +message server mc file tmp.couple +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000604868 secs +mass 1 1.0 + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 20 check no + +velocity all create 1.44 87287 loop geom + +fix 1 all nve + +thermo 50 + +server mc +run 0 +Neighbor list info ... + update every 20 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 +Loop time of 3.09944e-06 on 4 procs for 0 steps with 500 atoms + +72.6% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.099e-06 | | |100.00 + +Nlocal: 125 ave 125 max 125 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 1099 ave 1099 max 1099 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 4875 ave 4875 max 4875 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19500 +Ave neighs/atom = 39 +Neighbor list builds = 0 +Dangerous builds not checked +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 +Loop time of 3.33786e-06 on 4 procs for 0 steps with 500 atoms + +119.8% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.338e-06 | | |100.00 + +Nlocal: 125 ave 125 max 125 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 1099 ave 1099 max 1099 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 4875.25 ave 4885 max 4866 min +Histogram: 1 0 0 0 2 0 0 0 0 1 + +Total # of neighbors = 19501 +Ave neighs/atom = 39.002 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 + 50 0.70210225 -5.6759068 0 -4.6248598 0.59609192 + 100 0.75891559 -5.7611234 0 -4.6250267 0.20841608 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.75891559 -5.7609392 0 -4.6248426 0.20981291 +Loop time of 3.51667e-06 on 4 procs for 0 steps with 500 atoms + +113.7% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.517e-06 | | |100.00 + +Nlocal: 125 ave 126 max 124 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 1085.25 ave 1089 max 1079 min +Histogram: 1 0 0 0 0 1 0 0 0 2 +Neighs: 4690.25 ave 4996 max 4401 min +Histogram: 1 0 0 1 0 1 0 0 0 1 + +Total # of neighbors = 18761 +Ave neighs/atom = 37.522 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.75891559 -5.7609392 0 -4.6248426 0.20981291 + 150 0.75437991 -5.7558622 0 -4.6265555 0.20681722 + 200 0.73111257 -5.7193748 0 -4.6248993 0.35230715 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73111257 -5.7143906 0 -4.6199151 0.37126023 +Loop time of 2.92063e-06 on 4 procs for 0 steps with 500 atoms + +119.8% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.921e-06 | | |100.00 + +Nlocal: 125 ave 126 max 123 min +Histogram: 1 0 0 0 0 0 1 0 0 2 +Nghost: 1068.5 ave 1076 max 1063 min +Histogram: 2 0 0 0 0 0 1 0 0 1 +Neighs: 4674.75 ave 4938 max 4419 min +Histogram: 1 0 0 0 1 1 0 0 0 1 + +Total # of neighbors = 18699 +Ave neighs/atom = 37.398 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73111257 -5.7193748 0 -4.6248993 0.35230715 + 250 0.73873144 -5.7312505 0 -4.6253696 0.33061033 + 300 0.76392796 -5.7719207 0 -4.6283206 0.18197874 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76392796 -5.7725589 0 -4.6289588 0.17994628 +Loop time of 3.39746e-06 on 4 procs for 0 steps with 500 atoms + +117.7% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.397e-06 | | |100.00 + +Nlocal: 125 ave 128 max 121 min +Histogram: 1 0 0 0 0 1 0 1 0 1 +Nghost: 1069 ave 1080 max 1055 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Neighs: 4672 ave 4803 max 4600 min +Histogram: 2 0 0 1 0 0 0 0 0 1 + +Total # of neighbors = 18688 +Ave neighs/atom = 37.376 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76392796 -5.7725589 0 -4.6289588 0.17994628 + 350 0.71953041 -5.7041632 0 -4.6270261 0.44866153 + 400 0.7319047 -5.7216051 0 -4.6259438 0.46321355 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.7319047 -5.7158168 0 -4.6201554 0.49192039 +Loop time of 3.39746e-06 on 4 procs for 0 steps with 500 atoms + +117.7% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.397e-06 | | |100.00 + +Nlocal: 125 ave 132 max 118 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 1057.5 ave 1068 max 1049 min +Histogram: 1 0 0 1 1 0 0 0 0 1 +Neighs: 4685.75 ave 5045 max 4229 min +Histogram: 1 0 0 1 0 0 0 0 0 2 + +Total # of neighbors = 18743 +Ave neighs/atom = 37.486 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.7319047 -5.7216051 0 -4.6259438 0.46321355 + 450 0.74503154 -5.7405318 0 -4.6252196 0.33211879 + 500 0.70570501 -5.6824439 0 -4.6260035 0.62020788 +Total wall time: 0:00:02 diff --git a/examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.1 b/examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.1 new file mode 100644 index 0000000000..18af66d587 --- /dev/null +++ b/examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.1 @@ -0,0 +1,254 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones Monte Carlo server script + +variable mode index file + +if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555" +message server mc zmq *:5555 +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000612974 secs +mass 1 1.0 + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 20 check no + +velocity all create 1.44 87287 loop geom + +fix 1 all nve + +thermo 50 + +server mc +run 0 +Neighbor list info ... + update every 20 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 +Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms + +46.6% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.146e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19500 ave 19500 max 19500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19500 +Ave neighs/atom = 39 +Neighbor list builds = 0 +Dangerous builds not checked +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 +Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms + +157.3% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.907e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19501 ave 19501 max 19501 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19501 +Ave neighs/atom = 39.002 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 + 50 0.70239211 -5.6763152 0 -4.6248342 0.59544428 + 100 0.7565013 -5.757431 0 -4.6249485 0.21982657 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.7565013 -5.7565768 0 -4.6240944 0.22436405 +Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms + +209.7% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 9.537e-07 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1939 ave 1939 max 1939 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18757 ave 18757 max 18757 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18757 +Ave neighs/atom = 37.514 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.7565013 -5.757431 0 -4.6249485 0.21982657 + 150 0.76110797 -5.7664315 0 -4.6270529 0.16005254 + 200 0.73505651 -5.7266069 0 -4.6262273 0.34189744 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73505651 -5.7181381 0 -4.6177585 0.37629943 +Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms + +209.7% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 9.537e-07 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1899 ave 1899 max 1899 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18699 ave 18699 max 18699 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18699 +Ave neighs/atom = 37.398 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73505651 -5.7266069 0 -4.6262273 0.34189744 + 250 0.73052476 -5.7206316 0 -4.627036 0.39287516 + 300 0.76300831 -5.7675007 0 -4.6252773 0.16312925 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76300831 -5.768304 0 -4.6260806 0.15954325 +Loop time of 0 on 1 procs for 0 steps with 500 atoms + +0.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 0 | | | 0.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1903 ave 1903 max 1903 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18715 ave 18715 max 18715 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18715 +Ave neighs/atom = 37.43 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76300831 -5.768304 0 -4.6260806 0.15954325 + 350 0.72993309 -5.7193261 0 -4.6266162 0.3358374 + 400 0.72469448 -5.713463 0 -4.6285954 0.44859547 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.72469448 -5.7077332 0 -4.6228655 0.47669832 +Loop time of 0 on 1 procs for 0 steps with 500 atoms + +0.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 0 | | | 0.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1899 ave 1899 max 1899 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18683 ave 18683 max 18683 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18683 +Ave neighs/atom = 37.366 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.72469448 -5.713463 0 -4.6285954 0.44859547 + 450 0.75305735 -5.7518283 0 -4.6245015 0.34658587 + 500 0.73092571 -5.7206337 0 -4.6264379 0.43715809 +Total wall time: 0:00:00 diff --git a/examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.4 b/examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.4 new file mode 100644 index 0000000000..480566635f --- /dev/null +++ b/examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.4 @@ -0,0 +1,254 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones Monte Carlo server script + +variable mode index file + +if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555" +message server mc zmq *:5555 +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000566006 secs +mass 1 1.0 + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 20 check no + +velocity all create 1.44 87287 loop geom + +fix 1 all nve + +thermo 50 + +server mc +run 0 +Neighbor list info ... + update every 20 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 +Loop time of 4.29153e-06 on 4 procs for 0 steps with 500 atoms + +99.0% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 4.292e-06 | | |100.00 + +Nlocal: 125 ave 125 max 125 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 1099 ave 1099 max 1099 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 4875 ave 4875 max 4875 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19500 +Ave neighs/atom = 39 +Neighbor list builds = 0 +Dangerous builds not checked +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 +Loop time of 3.57628e-06 on 4 procs for 0 steps with 500 atoms + +97.9% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.576e-06 | | |100.00 + +Nlocal: 125 ave 125 max 125 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 1099 ave 1099 max 1099 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 4875.25 ave 4885 max 4866 min +Histogram: 1 0 0 0 2 0 0 0 0 1 + +Total # of neighbors = 19501 +Ave neighs/atom = 39.002 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 + 50 0.70210225 -5.6759068 0 -4.6248598 0.59609192 + 100 0.75891559 -5.7611234 0 -4.6250267 0.20841608 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.75891559 -5.7609392 0 -4.6248426 0.20981291 +Loop time of 3.09944e-06 on 4 procs for 0 steps with 500 atoms + +121.0% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.099e-06 | | |100.00 + +Nlocal: 125 ave 126 max 124 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 1085.25 ave 1089 max 1079 min +Histogram: 1 0 0 0 0 1 0 0 0 2 +Neighs: 4690.25 ave 4996 max 4401 min +Histogram: 1 0 0 1 0 1 0 0 0 1 + +Total # of neighbors = 18761 +Ave neighs/atom = 37.522 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.75891559 -5.7609392 0 -4.6248426 0.20981291 + 150 0.75437991 -5.7558622 0 -4.6265555 0.20681722 + 200 0.73111257 -5.7193748 0 -4.6248993 0.35230715 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73111257 -5.7143906 0 -4.6199151 0.37126023 +Loop time of 2.14577e-06 on 4 procs for 0 steps with 500 atoms + +139.8% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.146e-06 | | |100.00 + +Nlocal: 125 ave 126 max 123 min +Histogram: 1 0 0 0 0 0 1 0 0 2 +Nghost: 1068.5 ave 1076 max 1063 min +Histogram: 2 0 0 0 0 0 1 0 0 1 +Neighs: 4674.75 ave 4938 max 4419 min +Histogram: 1 0 0 0 1 1 0 0 0 1 + +Total # of neighbors = 18699 +Ave neighs/atom = 37.398 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73111257 -5.7193748 0 -4.6248993 0.35230715 + 250 0.73873144 -5.7312505 0 -4.6253696 0.33061033 + 300 0.76392796 -5.7719207 0 -4.6283206 0.18197874 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76392796 -5.7725589 0 -4.6289588 0.17994628 +Loop time of 1.90735e-06 on 4 procs for 0 steps with 500 atoms + +157.3% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.907e-06 | | |100.00 + +Nlocal: 125 ave 128 max 121 min +Histogram: 1 0 0 0 0 1 0 1 0 1 +Nghost: 1069 ave 1080 max 1055 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Neighs: 4672 ave 4803 max 4600 min +Histogram: 2 0 0 1 0 0 0 0 0 1 + +Total # of neighbors = 18688 +Ave neighs/atom = 37.376 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76392796 -5.7725589 0 -4.6289588 0.17994628 + 350 0.71953041 -5.7041632 0 -4.6270261 0.44866153 + 400 0.7319047 -5.7216051 0 -4.6259438 0.46321355 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.7319047 -5.7158168 0 -4.6201554 0.49192039 +Loop time of 2.14577e-06 on 4 procs for 0 steps with 500 atoms + +151.5% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.146e-06 | | |100.00 + +Nlocal: 125 ave 132 max 118 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 1057.5 ave 1068 max 1049 min +Histogram: 1 0 0 1 1 0 0 0 0 1 +Neighs: 4685.75 ave 5045 max 4229 min +Histogram: 1 0 0 1 0 0 0 0 0 2 + +Total # of neighbors = 18743 +Ave neighs/atom = 37.486 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.7319047 -5.7216051 0 -4.6259438 0.46321355 + 450 0.74503154 -5.7405318 0 -4.6252196 0.33211879 + 500 0.70570501 -5.6824439 0 -4.6260035 0.62020788 +Total wall time: 0:00:00 diff --git a/examples/COUPLE/lammps_mc/mc.cpp b/examples/COUPLE/lammps_mc/mc.cpp new file mode 100644 index 0000000000..24bb96641d --- /dev/null +++ b/examples/COUPLE/lammps_mc/mc.cpp @@ -0,0 +1,261 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov +------------------------------------------------------------------------- */ + +// MC code used with LAMMPS in client/server mode +// MC is the client, LAMMPS is the server + +// Syntax: mc infile mode modearg +// mode = file, zmq +// modearg = filename for file, localhost:5555 for zmq + +#include +#include +#include +#include + +#include "cslib.h" +using namespace CSLIB_NS; + +#include "mc.h" +#include "random_park.h" + +void error(const char *); +CSlib *cs_create(char *, char *); + +#define MAXLINE 256 + +/* ---------------------------------------------------------------------- */ + +// main program + +int main(int narg, char **arg) +{ + if (narg != 4) { + error("Syntax: mc infile mode modearg"); + exit(1); + } + + // initialize CSlib + + CSlib *cs = cs_create(arg[2],arg[3]); + + // create MC class and perform run + + MC *mc = new MC(arg[1],cs); + mc->run(); + + // final MC stats + + int naccept = mc->naccept; + int nattempt = mc->nattempt; + + printf("------ MC stats ------\n"); + printf("MC attempts = %d\n",nattempt); + printf("MC accepts = %d\n",naccept); + printf("Acceptance ratio = %g\n",1.0*naccept/nattempt); + + // clean up + + delete cs; + delete mc; +} + +/* ---------------------------------------------------------------------- */ + +void error(const char *str) +{ + printf("ERROR: %s\n",str); + exit(1); +} + +/* ---------------------------------------------------------------------- */ + +CSlib *cs_create(char *mode, char *arg) +{ + CSlib *cs = new CSlib(0,mode,arg,NULL); + + // initial handshake to agree on protocol + + cs->send(0,1); + cs->pack_string(1,(char *) "mc"); + + int msgID,nfield; + int *fieldID,*fieldtype,*fieldlen; + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + + return cs; +} + +// ---------------------------------------------------------------------- +// MC class +// ---------------------------------------------------------------------- + +MC::MC(char *mcfile, CSlib *cs_caller) +{ + cs = cs_caller; + + // setup MC params + + options(mcfile); + + // random # generator + + random = new RanPark(seed); +} + +/* ---------------------------------------------------------------------- */ + +MC::~MC() +{ + free(x); + delete random; +} + +/* ---------------------------------------------------------------------- */ + +void MC::run() +{ + int iatom,accept,msgID,nfield; + double pe_initial,pe_final,edelta; + double dx,dy,dz; + double xold[3],xnew[3]; + int *fieldID,*fieldtype,*fieldlen; + + enum{NATOMS=1,EINIT,DISPLACE,ACCEPT,RUN}; + + // one-time request for atom count from MD + // allocate 1d coord buffer + + cs->send(NATOMS,0); + + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + natoms = cs->unpack_int(1); + + x = (double *) malloc(3*natoms*sizeof(double)); + + // loop over MC moves + + naccept = nattempt = 0; + + for (int iloop = 0; iloop < nloop; iloop++) { + + // request current energy from MD + // recv energy, coords from MD + + cs->send(EINIT,0); + + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + pe_initial = cs->unpack_double(1); + double *x = (double *) cs->unpack(2); + + // perform simple MC event + // displace a single atom by random amount + + iatom = (int) natoms*random->uniform(); + xold[0] = x[3*iatom+0]; + xold[1] = x[3*iatom+1]; + xold[2] = x[3*iatom+2]; + + dx = 2.0*delta*random->uniform() - delta; + dy = 2.0*delta*random->uniform() - delta; + dz = 2.0*delta*random->uniform() - delta; + + xnew[0] = xold[0] + dx; + xnew[1] = xold[1] + dx; + xnew[2] = xold[2] + dx; + + // send atom ID and its new coords to MD + // recv new energy + + cs->send(DISPLACE,2); + cs->pack_int(1,iatom+1); + cs->pack(2,4,3,xnew); + + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + pe_final = cs->unpack_double(1); + + // decide whether to accept/reject MC event + + if (pe_final <= pe_initial) accept = 1; + else if (temperature == 0.0) accept = 0; + else if (random->uniform() > + exp(natoms*(pe_initial-pe_final)/temperature)) accept = 0; + else accept = 1; + + nattempt++; + if (accept) naccept++; + + // send accept (1) or reject (0) flag to MD + + cs->send(ACCEPT,1); + cs->pack_int(1,accept); + + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + + // send dynamics timesteps + + cs->send(RUN,1); + cs->pack_int(1,ndynamics); + + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + } + + // send exit message to MD + + cs->send(-1,0); + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); +} + +/* ---------------------------------------------------------------------- */ + +void MC::options(char *filename) +{ + // default params + + nsteps = 0; + ndynamics = 100; + delta = 0.1; + temperature = 1.0; + seed = 12345; + + // read and parse file + + FILE *fp = fopen(filename,"r"); + if (fp == NULL) error("Could not open MC file"); + + char line[MAXLINE]; + char *keyword,*value; + char *eof = fgets(line,MAXLINE,fp); + + while (eof) { + if (line[0] == '#') { // comment line + eof = fgets(line,MAXLINE,fp); + continue; + } + + value = strtok(line," \t\n\r\f"); + if (value == NULL) { // blank line + eof = fgets(line,MAXLINE,fp); + continue; + } + + keyword = strtok(NULL," \t\n\r\f"); + if (keyword == NULL) error("Missing keyword in MC file"); + + if (strcmp(keyword,"nsteps") == 0) nsteps = atoi(value); + else if (strcmp(keyword,"ndynamics") == 0) ndynamics = atoi(value); + else if (strcmp(keyword,"delta") == 0) delta = atof(value); + else if (strcmp(keyword,"temperature") == 0) temperature = atof(value); + else if (strcmp(keyword,"seed") == 0) seed = atoi(value); + else error("Unknown param in MC file"); + + eof = fgets(line,MAXLINE,fp); + } + + // derived params + + nloop = nsteps/ndynamics; +} diff --git a/examples/COUPLE/lammps_mc/mc.h b/examples/COUPLE/lammps_mc/mc.h new file mode 100644 index 0000000000..afeb3d06ab --- /dev/null +++ b/examples/COUPLE/lammps_mc/mc.h @@ -0,0 +1,40 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov +------------------------------------------------------------------------- */ + +#ifndef MC_H +#define MC_H + +/* ---------------------------------------------------------------------- */ + +class MC { + public: + int naccept; // # of accepted MC events + int nattempt; // # of attempted MC events + + MC(char *, class CSlib *); + ~MC(); + void run(); + + private: + int nsteps; // total # of MD steps + int ndynamics; // steps in one short dynamics run + int nloop; // nsteps/ndynamics + int natoms; // # of MD atoms + + double delta; // MC displacement distance + double temperature; // MC temperature for Boltzmann criterion + double *x; // atom coords as 3N 1d vector + double energy; // global potential energy + + int seed; // RNG seed + class RanPark *random; + + class CSlib *cs; // messaging library + + void options(char *); +}; + +#endif diff --git a/examples/COUPLE/lammps_mc/random_park.cpp b/examples/COUPLE/lammps_mc/random_park.cpp new file mode 100644 index 0000000000..61ac18c6c0 --- /dev/null +++ b/examples/COUPLE/lammps_mc/random_park.cpp @@ -0,0 +1,72 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +// Park/Miller RNG + +#include +#include "random_park.h" +//#include "error.h" + +#define IA 16807 +#define IM 2147483647 +#define AM (1.0/IM) +#define IQ 127773 +#define IR 2836 + +/* ---------------------------------------------------------------------- */ + +RanPark::RanPark(int seed_init) +{ + //if (seed_init <= 0) + // error->one(FLERR,"Invalid seed for Park random # generator"); + seed = seed_init; + save = 0; +} + +/* ---------------------------------------------------------------------- + uniform RN +------------------------------------------------------------------------- */ + +double RanPark::uniform() +{ + int k = seed/IQ; + seed = IA*(seed-k*IQ) - IR*k; + if (seed < 0) seed += IM; + double ans = AM*seed; + return ans; +} + +/* ---------------------------------------------------------------------- + gaussian RN +------------------------------------------------------------------------- */ + +double RanPark::gaussian() +{ + double first,v1,v2,rsq,fac; + + if (!save) { + do { + v1 = 2.0*uniform()-1.0; + v2 = 2.0*uniform()-1.0; + rsq = v1*v1 + v2*v2; + } while ((rsq >= 1.0) || (rsq == 0.0)); + fac = sqrt(-2.0*log(rsq)/rsq); + second = v1*fac; + first = v2*fac; + save = 1; + } else { + first = second; + save = 0; + } + return first; +} diff --git a/examples/COUPLE/lammps_mc/random_park.h b/examples/COUPLE/lammps_mc/random_park.h new file mode 100644 index 0000000000..0dc2081768 --- /dev/null +++ b/examples/COUPLE/lammps_mc/random_park.h @@ -0,0 +1,28 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#ifndef RANPARK_H +#define RANPARK_H + +class RanPark { + public: + RanPark(int); + double uniform(); + double gaussian(); + + private: + int seed,save; + double second; +}; + +#endif diff --git a/examples/COUPLE/lammps_vasp/INCAR b/examples/COUPLE/lammps_vasp/INCAR new file mode 100644 index 0000000000..ac2358e5fb --- /dev/null +++ b/examples/COUPLE/lammps_vasp/INCAR @@ -0,0 +1,53 @@ +# Startparameter for this run: + NWRITE = 2 write-flag & timer + PREC = normal normal or accurate (medium, high low for compatibility) + ISTART = 0 job : 0-new 1-cont 2-samecut + ICHARG = 2 charge: 1-file 2-atom 10-const + ISPIN = 1 spin polarized calculation? + LSORBIT = F spin-orbit coupling + INIWAV = 1 electr: 0-lowe 1-rand 2-diag + +# Electronic Relaxation 1 + ENCUT = 600.0 eV #Plane wave energy cutoff + ENINI = 600.0 initial cutoff + NELM = 100; NELMIN= 2; NELMDL= -5 # of ELM steps + EDIFF = 0.1E-05 stopping-criterion for ELM +# Ionic relaxation + EDIFFG = 0.1E-02 stopping-criterion for IOM + NSW = 0 number of steps for IOM + NBLOCK = 1; KBLOCK = 1 inner block; outer block + IBRION = -1 ionic relax: 0-MD 1-quasi-New 2-CG #No ion relaxation with -1 + NFREE = 0 steps in history (QN), initial steepest desc. (CG) + ISIF = 2 stress and relaxation # 2: F-yes Sts-yes RlxIon-yes cellshape-no cellvol-no + IWAVPR = 10 prediction: 0-non 1-charg 2-wave 3-comb # 10: TMPCAR stored in memory rather than file + + POTIM = 0.5000 time-step for ionic-motion + TEBEG = 3500.0; TEEND = 3500.0 temperature during run # Finite Temperature variables if AI-MD is on + SMASS = -3.00 Nose mass-parameter (am) + estimated Nose-frequenzy (Omega) = 0.10E-29 period in steps =****** mass= -0.366E-27a.u. + PSTRESS= 0.0 pullay stress + +# DOS related values: + EMIN = 10.00; EMAX =-10.00 energy-range for DOS + EFERMI = 0.00 + ISMEAR = 0; SIGMA = 0.10 broadening in eV -4-tet -1-fermi 0-gaus + +# Electronic relaxation 2 (details) + IALGO = 48 algorithm + +# Write flags + LWAVE = T write WAVECAR + LCHARG = T write CHGCAR + LVTOT = F write LOCPOT, total local potential + LVHAR = F write LOCPOT, Hartree potential only + LELF = F write electronic localiz. function (ELF) + +# Dipole corrections + LMONO = F monopole corrections only (constant potential shift) + LDIPOL = F correct potential (dipole corrections) + IDIPOL = 0 1-x, 2-y, 3-z, 4-all directions + EPSILON= 1.0000000 bulk dielectric constant + +# Exchange correlation treatment: + GGA = -- GGA type + diff --git a/examples/COUPLE/lammps_vasp/KPOINTS b/examples/COUPLE/lammps_vasp/KPOINTS new file mode 100644 index 0000000000..322509da30 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/KPOINTS @@ -0,0 +1,6 @@ +K-Points + 0 +Monkhorst Pack + 15 15 15 + 0 0 0 + diff --git a/examples/COUPLE/lammps_vasp/POSCAR_W b/examples/COUPLE/lammps_vasp/POSCAR_W new file mode 100644 index 0000000000..aba5df54a0 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/POSCAR_W @@ -0,0 +1,11 @@ +W unit cell +1.0 +3.16 0.00000000 0.00000000 +0.00000000 3.16 0.00000000 +0.00000000 0.00000000 3.16 +W +2 +Direct + 0.00000000 0.00000000 0.00000000 + 0.50000000 0.50000000 0.50000000 + diff --git a/examples/COUPLE/lammps_vasp/README b/examples/COUPLE/lammps_vasp/README new file mode 100644 index 0000000000..3d83ff7dc1 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/README @@ -0,0 +1,90 @@ +Sample LAMMPS MD wrapper on VASP quantum DFT via client/server +coupling + +See the MESSAGE package (doc/Section_messages.html#MESSAGE) and +Section_howto.html#howto10 for more details on how client/server +coupling works in LAMMPS. + +In this dir, the vasp_warp.py is a wrapper on the VASP quantum DFT +code so it can work as a "server" code which LAMMPS drives as a +"client" code to perform ab initio MD. LAMMPS performs the MD +timestepping, sends VASP a current set of coordinates each timestep, +VASP computes forces and energy and virial and returns that info to +LAMMPS. + +Messages are exchanged between MC and LAMMPS via a client/server +library (CSlib), which is included in the LAMMPS distribution in +lib/message. As explained below you can choose to exchange data +between the two programs either via files or sockets (ZMQ). If the +vasp_wrap.py program became parallel, or the CSlib library calls were +integrated into VASP directly, then data could also be exchanged via +MPI. + +---------------- + +Build LAMMPS with its MESSAGE package installed: + +cd lammps/lib/message +python Install.py -m -z # build CSlib with MPI and ZMQ support +cd lammps/src +make yes-message +make mpi + +You can leave off the -z if you do not have ZMQ on your system. + +---------------- + +To run in client/server mode: + +Both the client (LAMMPS) and server (vasp_wrap.py) must use the same +messaging mode, namely file or zmq. This is an argument to the +vasp_wrap.py code; it can be selected by setting the "mode" variable +when you run LAMMPS. The default mode = file. + +Here we assume LAMMPS was built to run in parallel, and the MESSAGE +package was installed with socket (ZMQ) support. This means either of +the messaging modes can be used and LAMMPS can be run in serial or +parallel. The vasp_wrap.py code is always run in serial, but it +launches VASP from Python via an mpirun command which can run VASP +itself in parallel. + +When you run, the server should print out thermodynamic info every +timestep which corresponds to the forces and virial computed by VASP. +VASP will also generate output files each timestep. The vasp_wrapper.py +script could be generalized to archive these. + +The examples below are commands you should use in two different +terminal windows. The order of the two commands (client or server +launch) does not matter. You can run them both in the same window if +you append a "&" character to the first one to run it in the +background. + +-------------- + +File mode of messaging: + +% mpirun -np 1 lmp_mpi -v mode file < in.client.W +% python vasp_wrap.py file POSCAR_W + +% mpirun -np 2 lmp_mpi -v mode file < in.client.W +% python vasp_wrap.py file POSCAR_W + +ZMQ mode of messaging: + +% mpirun -np 1 lmp_mpi -v mode zmq < in.client.W +% python vasp_wrap.py zmq POSCAR_W + +% mpirun -np 2 lmp_mpi -v mode zmq < in.client.W +% python vasp_wrap.py zmq POSCAR_W + +-------------- + +The provided data.W file (for LAMMPS) and POSCAR_W file (for VASP) are +for a simple 2-atom unit cell of bcc tungsten (W). You could +replicate this with LAMMPS to create a larger system. The +vasp_wrap.py script needs to be generalized to create an appropriate +POSCAR_W file for a larger box. + +VASP input file include the sample INCAR and KPOINTS files provided. +A POTCAR file is also needed, which should come from your VASP package +installation. diff --git a/examples/COUPLE/lammps_vasp/data.W b/examples/COUPLE/lammps_vasp/data.W new file mode 100644 index 0000000000..8accd9ca79 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/data.W @@ -0,0 +1,15 @@ +LAMMPS W data file + +2 atoms + +1 atom types + +0.0 3.16 xlo xhi +0.0 3.16 ylo yhi +0.0 3.16 zlo zhi + +Atoms + +1 1 0.000 0.000 0.000 +2 1 1.58 1.58 1.58 + diff --git a/examples/COUPLE/lammps_vasp/in.client.W b/examples/COUPLE/lammps_vasp/in.client.W new file mode 100644 index 0000000000..3eaf99dcbb --- /dev/null +++ b/examples/COUPLE/lammps_vasp/in.client.W @@ -0,0 +1,34 @@ +# small W unit cell for use with VASP + +variable mode index file + +if "${mode} == file" then & + "message client md file tmp.couple" & +elif "${mode} == zmq" & + "message client md zmq localhost:5555" & + +variable x index 1 +variable y index 1 +variable z index 1 + +units metal +atom_style atomic +atom_modify sort 0 0.0 map yes + +read_data data.W +mass 1 183.85 + +replicate $x $y $z + +velocity all create 300.0 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 10 check no + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 1 +run 3 + diff --git a/examples/COUPLE/lammps_vasp/log.client.output b/examples/COUPLE/lammps_vasp/log.client.output new file mode 100644 index 0000000000..de37c7cbaf --- /dev/null +++ b/examples/COUPLE/lammps_vasp/log.client.output @@ -0,0 +1,63 @@ +LAMMPS (20 Apr 2018) +# small W unit cell for use with VASP + +#message client aimd file tmp.couple +message client aimd zmq localhost:5555 +#message client aimd mpi/two tmp.couple +#message client aimd mpi/one tmp.couple + +units real +atom_style atomic +atom_modify sort 0 0.0 map yes + +read_data data.W + orthogonal box = (0 0 0) to (3.16 3.16 3.16) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 2 atoms +mass 1 1.0 + +#velocity all create 300.0 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 10 check no + +fix 1 all nve +fix 2 all message/aimd +fix_modify 2 energy yes + +thermo 1 +run 2 +Per MPI rank memory allocation (min/avg/max) = 1.8 | 1.8 | 1.8 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 0 0 0 -48.069571 -172694.2 + 1 0.063865861 0 0 -48.069381 -172693.93 + 2 0.25546344 0 0 -48.06881 -172693.1 +Loop time of 0.281842 on 1 procs for 2 steps with 2 atoms + +Performance: 0.613 ns/day, 39.145 hours/ns, 7.096 timesteps/s +0.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 3.0994e-06 | 3.0994e-06 | 3.0994e-06 | 0.0 | 0.00 +Output | 8.9169e-05 | 8.9169e-05 | 8.9169e-05 | 0.0 | 0.03 +Modify | 0.28174 | 0.28174 | 0.28174 | 0.0 | 99.97 +Other | | 5.96e-06 | | | 0.00 + +Nlocal: 2 ave 2 max 2 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 7 ave 7 max 7 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 0 +Dangerous builds not checked + +Total wall time: 0:00:06 diff --git a/examples/COUPLE/lammps_vasp/vasp_wrap.py b/examples/COUPLE/lammps_vasp/vasp_wrap.py new file mode 100644 index 0000000000..35955b6adb --- /dev/null +++ b/examples/COUPLE/lammps_vasp/vasp_wrap.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python + +# ---------------------------------------------------------------------- +# LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +# http://lammps.sandia.gov, Sandia National Laboratories +# Steve Plimpton, sjplimp@sandia.gov +# ---------------------------------------------------------------------- + +# Syntax: vasp_wrap.py file/zmq POSCARfile + +# wrapper on VASP to act as server program using CSlib +# receives message with list of coords from client +# creates VASP inputs +# invokes VASP to calculate self-consistent energy of that config +# reads VASP outputs +# sends message with energy, forces, virial to client + +# NOTES: +# check to insure basic VASP input files are in place? +# worry about archiving VASP input/output in special filenames or dirs? +# how to get ordering (by type) of VASP atoms vs LAMMPS atoms +# create one initial permutation vector? +# could make syntax for launching VASP more flexible +# e.g. command-line arg for # of procs + +import sys +import commands +import xml.etree.ElementTree as ET +from cslib import CSlib + +vaspcmd = "srun -N 1 --ntasks-per-node=4 " + \ + "-n 4 /projects/vasp/2017-build/cts1/vasp5.4.4/vasp_tfermi/bin/vasp_std" + +# enums matching FixClientMD class in LAMMPS + +SETUP,STEP = range(1,2+1) +UNITS,DIM,NATOMS,NTYPES,BOXLO,BOXHI,BOXTILT,TYPES,COORDS,CHARGE = range(1,10+1) +FORCES,ENERGY,VIRIAL = range(1,3+1) + +# ------------------------------------- +# functions + +# error message and exit + +def error(txt): + print "ERROR:",txt + sys.exit(1) + +# ------------------------------------- +# read initial VASP POSCAR file to setup problem +# return natoms,ntypes,box + +def vasp_setup(poscar): + + ps = open(poscar,'r').readlines() + + # box size + + words = ps[2].split() + xbox = float(words[0]) + words = ps[3].split() + ybox = float(words[1]) + words = ps[4].split() + zbox = float(words[2]) + box = [xbox,ybox,zbox] + + ntypes = 0 + natoms = 0 + words = ps[6].split() + for word in words: + if word == '#': break + ntypes += 1 + natoms += int(word) + + return natoms,ntypes,box + +# ------------------------------------- +# write a new POSCAR file for VASP + +def poscar_write(poscar,natoms,ntypes,types,coords,box): + + psold = open(poscar,'r').readlines() + psnew = open("POSCAR",'w') + + # header, including box size + + print >>psnew,psold[0], + print >>psnew,psold[1], + print >>psnew,"%g 0.0 0.0" % box[0] + print >>psnew,"0.0 %g 0.0" % box[1] + print >>psnew,"0.0 0.0 %g" % box[2] + print >>psnew,psold[5], + print >>psnew,psold[6], + + # per-atom coords + # grouped by types + + print >>psnew,"Cartesian" + + for itype in range(1,ntypes+1): + for i in range(natoms): + if types[i] != itype: continue + x = coords[3*i+0] + y = coords[3*i+1] + z = coords[3*i+2] + aline = " %g %g %g" % (x,y,z) + print >>psnew,aline + + psnew.close() + +# ------------------------------------- +# read a VASP output vasprun.xml file +# uses ElementTree module +# see https://docs.python.org/2/library/xml.etree.elementtree.html + +def vasprun_read(): + tree = ET.parse('vasprun.xml') + root = tree.getroot() + + #fp = open("vasprun.xml","r") + #root = ET.parse(fp) + + scsteps = root.findall('calculation/scstep') + energy = scsteps[-1].find('energy') + for child in energy: + if child.attrib["name"] == "e_0_energy": + eout = float(child.text) + + fout = [] + sout = [] + + varrays = root.findall('calculation/varray') + for varray in varrays: + if varray.attrib["name"] == "forces": + forces = varray.findall("v") + for line in forces: + fxyz = line.text.split() + fxyz = [float(value) for value in fxyz] + fout += fxyz + if varray.attrib["name"] == "stress": + tensor = varray.findall("v") + stensor = [] + for line in tensor: + sxyz = line.text.split() + sxyz = [float(value) for value in sxyz] + stensor.append(sxyz) + sxx = stensor[0][0] + syy = stensor[1][1] + szz = stensor[2][2] + sxy = 0.5 * (stensor[0][1] + stensor[1][0]) + sxz = 0.5 * (stensor[0][2] + stensor[2][0]) + syz = 0.5 * (stensor[1][2] + stensor[2][1]) + sout = [sxx,syy,szz,sxy,sxz,syz] + + #fp.close() + + return eout,fout,sout + +# ------------------------------------- +# main program + +# command-line args + +if len(sys.argv) != 3: + print "Syntax: python vasp_wrap.py file/zmq POSCARfile" + sys.exit(1) + +mode = sys.argv[1] +poscar_template = sys.argv[2] + +if mode == "file": cs = CSlib(1,mode,"tmp.couple",None) +elif mode == "zmq": cs = CSlib(1,mode,"*:5555",None) +else: + print "Syntax: python vasp_wrap.py file/zmq POSCARfile" + sys.exit(1) + +natoms,ntypes,box = vasp_setup(poscar_template) + +# initial message for MD protocol + +msgID,nfield,fieldID,fieldtype,fieldlen = cs.recv() +if msgID != 0: error("Bad initial client/server handshake") +protocol = cs.unpack_string(1) +if protocol != "md": error("Mismatch in client/server protocol") +cs.send(0,0) + +# endless server loop + +while 1: + + # recv message from client + # msgID = 0 = all-done message + + msgID,nfield,fieldID,fieldtype,fieldlen = cs.recv() + if msgID < 0: break + + # could generalize this to be more like ServerMD class + # allow for box size, atom types, natoms, etc + + # unpack coords from client + # create VASP input + # NOTE: generalize this for general list of atom types + + coords = cs.unpack(COORDS,1) + #types = cs.unpack(2); + types = 2*[1] + + poscar_write(poscar_template,natoms,ntypes,types,coords,box) + + # invoke VASP + + print "Launching VASP ..." + print vaspcmd + out = commands.getoutput(vaspcmd) + print out + + # process VASP output + + energy,forces,virial = vasprun_read() + + # return forces, energy, virial to client + + cs.send(msgID,3); + cs.pack(FORCES,4,3*natoms,forces) + cs.pack_double(ENERGY,energy) + cs.pack(VIRIAL,4,6,virial) + +# final reply to client + +cs.send(0,0) + +# clean-up + +del cs diff --git a/examples/README b/examples/README index a8dfe63d92..599392e6b2 100644 --- a/examples/README +++ b/examples/README @@ -82,6 +82,7 @@ kim: use of potentials in Knowledge Base for Interatomic Models (KIM) latte: use of LATTE density-functional tight-binding quantum code meam: MEAM test for SiC and shear (same as shear examples) melt: rapid melt of 3d LJ system +message: client/server coupling of 2 codes micelle: self-assembly of small lipid-like molecules into 2d bilayers min: energy minimization of 2d LJ melt mscg: parameterize a multi-scale coarse-graining (MSCG) model diff --git a/examples/message/README b/examples/message/README new file mode 100644 index 0000000000..213dbbde51 --- /dev/null +++ b/examples/message/README @@ -0,0 +1,102 @@ +This dir contains scripts that demonstrate how to use LAMMPS as both a +client and server code to run a simple MD simulation. LAMMPS as a +client performs the MD timestepping. LAMMPS as a server provides the +energy and forces between interacting particles. Every timestep the +LAMMPS client sends a message to the LAMMPS server and receives a +response message in return. + +Another code could replace LAMMPS as the client, e.g. another MD code +which wants to use a LAMMPS potential. Another code could replace +LAMMPS as the server, e.g. a quantum code computing quantum forces, so +that ab initio MD could be performed. See an example of the latter in +examples/COUPLE/lammps_vasp. + +See the MESSAGE package (doc/Section_messages.html#MESSAGE) +and Section_howto.html#howto10 for more details on how +client/server coupling works in LAMMPS. + +-------------- + +Note that you can adjust the problem size run by these scripts by +setting "x,y,z" variables when you run LAMMPS. The default problem size +is x = y = z = 5, which is 500 particles. + +lmp_mpi -v x 10 -v y 10 -v z 20 # 8000 particles + +This applies to either in.message or in.message.client + +The client and server script define a "mode" variable +which can be set to file, zmq, mpi/one, or mpi/two, +as illustrated below. + +-------------- + +To run this problem in the traditional way (no client/server coupling) +do one of these: + +% lmp_serial < in.message +% mpirun -np 4 lmp_mpi < in.message + +-------------- + +To run in client/server mode: + +Both the client and server script must use the same messaging mode. +This can be selected by setting the "mode" variable when you run +LAMMPS. The default mode = file. The other options for the mode +variable are zmq, mpione, mpitwo. + +Here we assume LAMMPS was built to run in parallel, and the MESSAGE +package was installed with socket (ZMQ) support. This means any of +the 4 messaging modes can be used. + +The next sections illustrate how to launch LAMMPS twice, once as a +client, once as a server, for each of the messaging modes. + +In all cases, the client should print out thermodynamic info for 50 +steps. The server should print out setup info, print nothing until +the client exits, at which point the server should also exit. + +The examples below show launching LAMMPS twice from the same window +(or batch script), using the "&" character to launch the first time in +the background. For all modes except {mpi/one}, you could also launch +twice in separate windows on your desktop machine. It does not matter +whether you launch the client or server first. + +In these examples either the client or server can be run on one or +more processors. If running in a non-MPI mode (file or zmq) you can +launch LAMMPS on a single processor without using mpirun. + +IMPORTANT: If you run in mpi/two mode, you must launch LAMMPS both +times via mpirun, even if one or both of them runs on a single +processor. This is so that MPI can figure out how to connect both MPI +processes together to exchange MPI messages between them. + +-------------- + +File or ZMQ or mpi/two modes of messaging: + +% mpirun -np 1 lmp_mpi -v mode file -log log.client < in.message.client & +% mpirun -np 2 lmp_mpi -v mode file -log log.server < in.message.server + +% mpirun -np 4 lmp_mpi -v mode zmq -log log.client < in.message.client & +% mpirun -np 1 lmp_mpi -v mode zmq -log log.server < in.message.server + +% mpirun -np 2 lmp_mpi -v mode mpitwo -log log.client < in.message.client & +% mpirun -np 4 lmp_mpi -v mode mpitwo -log log.server < in.message.server + +-------------- + +Mpi/one mode of messaging: + +Launch LAMMPS twice in a single mpirun command: + +mpirun -np 2 lmp_mpi -mpi 2 -in in.message.client -v mode mpione -log log.client : -np 4 lmp_mpi -mpi 2 -in in.message.server -v mode mpione -log log.server + +The two -np values determine how many procs the client and the server +run on. + +A LAMMPS executable run in this manner must use the -mpi P +command-line option as their first option, where P is the number of +processors the first code in the mpirun command (client or server) is +running on. diff --git a/examples/message/in.message b/examples/message/in.message new file mode 100644 index 0000000000..951ff95e3b --- /dev/null +++ b/examples/message/in.message @@ -0,0 +1,27 @@ +# 3d Lennard-Jones melt - no client/server mode + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic + +lattice fcc 0.8442 +region box block 0 $x 0 $y 0 $z +create_box 1 box +create_atoms 1 box +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve + +thermo 10 +run 50 diff --git a/examples/message/in.message.client b/examples/message/in.message.client new file mode 100644 index 0000000000..0c548ef2e5 --- /dev/null +++ b/examples/message/in.message.client @@ -0,0 +1,38 @@ +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then & + "message client md file tmp.couple" & +elif "${mode} == zmq" & + "message client md zmq localhost:5555" & +elif "${mode} == mpione" & + "message client md mpi/one" & +elif "${mode} == mpitwo" & + "message client md mpi/two tmp.couple" + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +region box block 0 $x 0 $y 0 $z +create_box 1 box +create_atoms 1 box +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 diff --git a/examples/message/in.message.server b/examples/message/in.message.server new file mode 100644 index 0000000000..2fedd2ae00 --- /dev/null +++ b/examples/message/in.message.server @@ -0,0 +1,29 @@ +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then & + "message server md file tmp.couple" & +elif "${mode} == zmq" & + "message server md zmq *:5555" & +elif "${mode} == mpione" & + "message server md mpi/one" & +elif "${mode} == mpitwo" & + "message server md mpi/two tmp.couple" + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +region box block 0 1 0 1 0 1 +create_box 1 box +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md diff --git a/examples/message/log.23Jul18.message.client.file.g++.1 b/examples/message/log.23Jul18.message.client.file.g++.1 new file mode 100644 index 0000000000..0e05f6dfd5 --- /dev/null +++ b/examples/message/log.23Jul18.message.client.file.g++.1 @@ -0,0 +1,76 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md file tmp.couple + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.00067687 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.303 | 2.303 | 2.303 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 5.12413 on 1 procs for 50 steps with 500 atoms + +Performance: 4215.352 tau/day, 9.758 timesteps/s +0.1% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 9.7752e-06 | 9.7752e-06 | 9.7752e-06 | 0.0 | 0.00 +Comm | 0.0001719 | 0.0001719 | 0.0001719 | 0.0 | 0.00 +Output | 0.00022697 | 0.00022697 | 0.00022697 | 0.0 | 0.00 +Modify | 5.1232 | 5.1232 | 5.1232 | 0.0 | 99.98 +Other | | 0.0004876 | | | 0.01 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:19 diff --git a/examples/message/log.23Jul18.message.client.file.g++.2 b/examples/message/log.23Jul18.message.client.file.g++.2 new file mode 100644 index 0000000000..959c85439e --- /dev/null +++ b/examples/message/log.23Jul18.message.client.file.g++.2 @@ -0,0 +1,76 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md file tmp.couple + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000554085 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.302 | 2.302 | 2.302 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 5.07392 on 2 procs for 50 steps with 500 atoms + +Performance: 4257.065 tau/day, 9.854 timesteps/s +50.1% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 2.1458e-06 | 4.0531e-06 | 5.9605e-06 | 0.0 | 0.00 +Comm | 0.00022864 | 0.00023806 | 0.00024748 | 0.0 | 0.00 +Output | 0.00020814 | 0.00051165 | 0.00081515 | 0.0 | 0.01 +Modify | 5.0659 | 5.0695 | 5.073 | 0.2 | 99.91 +Other | | 0.003713 | | | 0.07 + +Nlocal: 250 ave 255 max 245 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:07 diff --git a/examples/message/log.23Jul18.message.client.mpione.g++.1 b/examples/message/log.23Jul18.message.client.mpione.g++.1 new file mode 100644 index 0000000000..95a3f99ef5 --- /dev/null +++ b/examples/message/log.23Jul18.message.client.mpione.g++.1 @@ -0,0 +1,76 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/one + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000674009 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.303 | 2.303 | 2.303 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.0424271 on 1 procs for 50 steps with 500 atoms + +Performance: 509109.009 tau/day, 1178.493 timesteps/s +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 8.1062e-06 | 8.1062e-06 | 8.1062e-06 | 0.0 | 0.02 +Comm | 8.2016e-05 | 8.2016e-05 | 8.2016e-05 | 0.0 | 0.19 +Output | 0.00010991 | 0.00010991 | 0.00010991 | 0.0 | 0.26 +Modify | 0.042014 | 0.042014 | 0.042014 | 0.0 | 99.03 +Other | | 0.0002129 | | | 0.50 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.client.mpione.g++.2 b/examples/message/log.23Jul18.message.client.mpione.g++.2 new file mode 100644 index 0000000000..6ba653a2be --- /dev/null +++ b/examples/message/log.23Jul18.message.client.mpione.g++.2 @@ -0,0 +1,76 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/one + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000527859 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.302 | 2.302 | 2.302 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.027467 on 2 procs for 50 steps with 500 atoms + +Performance: 786397.868 tau/day, 1820.365 timesteps/s +99.9% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 4.0531e-06 | 4.1723e-06 | 4.2915e-06 | 0.0 | 0.02 +Comm | 0.00017691 | 0.00018024 | 0.00018358 | 0.0 | 0.66 +Output | 9.3222e-05 | 0.00012612 | 0.00015903 | 0.0 | 0.46 +Modify | 0.026678 | 0.02676 | 0.026841 | 0.0 | 97.42 +Other | | 0.0003968 | | | 1.44 + +Nlocal: 250 ave 255 max 245 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.client.mpitwo.g++.1 b/examples/message/log.23Jul18.message.client.mpitwo.g++.1 new file mode 100644 index 0000000000..3822a0eb35 --- /dev/null +++ b/examples/message/log.23Jul18.message.client.mpitwo.g++.1 @@ -0,0 +1,76 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/two tmp.couple + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000490904 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.303 | 2.303 | 2.303 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.0624809 on 1 procs for 50 steps with 500 atoms + +Performance: 345705.501 tau/day, 800.244 timesteps/s +40.4% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 7.391e-06 | 7.391e-06 | 7.391e-06 | 0.0 | 0.01 +Comm | 8.5831e-05 | 8.5831e-05 | 8.5831e-05 | 0.0 | 0.14 +Output | 0.00011873 | 0.00011873 | 0.00011873 | 0.0 | 0.19 +Modify | 0.062024 | 0.062024 | 0.062024 | 0.0 | 99.27 +Other | | 0.0002449 | | | 0.39 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:07 diff --git a/examples/message/log.23Jul18.message.client.mpitwo.g++.2 b/examples/message/log.23Jul18.message.client.mpitwo.g++.2 new file mode 100644 index 0000000000..058fc9dbf7 --- /dev/null +++ b/examples/message/log.23Jul18.message.client.mpitwo.g++.2 @@ -0,0 +1,76 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/two tmp.couple + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000692129 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.302 | 2.302 | 2.302 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.0186305 on 2 procs for 50 steps with 500 atoms + +Performance: 1159388.887 tau/day, 2683.771 timesteps/s +50.7% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 2.861e-06 | 3.8147e-06 | 4.7684e-06 | 0.0 | 0.02 +Comm | 0.00017023 | 0.00017631 | 0.00018239 | 0.0 | 0.95 +Output | 0.00010896 | 0.00013852 | 0.00016809 | 0.0 | 0.74 +Modify | 0.017709 | 0.017821 | 0.017933 | 0.1 | 95.66 +Other | | 0.0004908 | | | 2.63 + +Nlocal: 250 ave 255 max 245 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:05 diff --git a/examples/message/log.23Jul18.message.client.zmq.g++.1 b/examples/message/log.23Jul18.message.client.zmq.g++.1 new file mode 100644 index 0000000000..d895ee7556 --- /dev/null +++ b/examples/message/log.23Jul18.message.client.zmq.g++.1 @@ -0,0 +1,76 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md zmq localhost:5555 + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000747919 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.303 | 2.303 | 2.303 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.0769799 on 1 procs for 50 steps with 500 atoms + +Performance: 280592.815 tau/day, 649.520 timesteps/s +12.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 6.1989e-06 | 6.1989e-06 | 6.1989e-06 | 0.0 | 0.01 +Comm | 9.5129e-05 | 9.5129e-05 | 9.5129e-05 | 0.0 | 0.12 +Output | 0.00011516 | 0.00011516 | 0.00011516 | 0.0 | 0.15 +Modify | 0.076471 | 0.076471 | 0.076471 | 0.0 | 99.34 +Other | | 0.0002928 | | | 0.38 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:08 diff --git a/examples/message/log.23Jul18.message.client.zmq.g++.2 b/examples/message/log.23Jul18.message.client.zmq.g++.2 new file mode 100644 index 0000000000..4bdb8abecc --- /dev/null +++ b/examples/message/log.23Jul18.message.client.zmq.g++.2 @@ -0,0 +1,76 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md zmq localhost:5555 + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000608921 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.302 | 2.302 | 2.302 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.0453095 on 2 procs for 50 steps with 500 atoms + +Performance: 476720.759 tau/day, 1103.520 timesteps/s +55.6% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 2.1458e-06 | 4.0531e-06 | 5.9605e-06 | 0.0 | 0.01 +Comm | 0.0001595 | 0.00015998 | 0.00016046 | 0.0 | 0.35 +Output | 8.893e-05 | 0.00011587 | 0.00014281 | 0.0 | 0.26 +Modify | 0.044439 | 0.044582 | 0.044724 | 0.1 | 98.39 +Other | | 0.0004481 | | | 0.99 + +Nlocal: 250 ave 255 max 245 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:04 diff --git a/examples/message/log.23Jul18.message.g++.1 b/examples/message/log.23Jul18.message.g++.1 new file mode 100644 index 0000000000..53457c0129 --- /dev/null +++ b/examples/message/log.23Jul18.message.g++.1 @@ -0,0 +1,83 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - no client/server mode + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000540972 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve + +thermo 10 +run 50 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.143 | 3.143 | 3.143 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 + 10 1.1347688 -6.3153532 0 -4.6166043 -2.6072847 + 20 0.628166 -5.5624945 0 -4.62213 1.0186262 + 30 0.73767593 -5.7297655 0 -4.6254647 0.49629637 + 40 0.69517962 -5.6660345 0 -4.6253506 0.69303877 + 50 0.70150496 -5.6761362 0 -4.6259832 0.59551518 +Loop time of 0.037292 on 1 procs for 50 steps with 500 atoms + +Performance: 579212.643 tau/day, 1340.770 timesteps/s +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.028156 | 0.028156 | 0.028156 | 0.0 | 75.50 +Neigh | 0.0069656 | 0.0069656 | 0.0069656 | 0.0 | 18.68 +Comm | 0.0011504 | 0.0011504 | 0.0011504 | 0.0 | 3.08 +Output | 0.00013399 | 0.00013399 | 0.00013399 | 0.0 | 0.36 +Modify | 0.00049257 | 0.00049257 | 0.00049257 | 0.0 | 1.32 +Other | | 0.0003934 | | | 1.05 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1946 ave 1946 max 1946 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18820 ave 18820 max 18820 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18820 +Ave neighs/atom = 37.64 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.g++.4 b/examples/message/log.23Jul18.message.g++.4 new file mode 100644 index 0000000000..09bd755380 --- /dev/null +++ b/examples/message/log.23Jul18.message.g++.4 @@ -0,0 +1,83 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - no client/server mode + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000635862 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve + +thermo 10 +run 50 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.109 | 3.109 | 3.109 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 + 10 1.1347688 -6.3153532 0 -4.6166043 -2.6072847 + 20 0.628166 -5.5624945 0 -4.62213 1.0186262 + 30 0.73767593 -5.7297655 0 -4.6254647 0.49629637 + 40 0.69517962 -5.6660345 0 -4.6253506 0.69303877 + 50 0.70150496 -5.6761362 0 -4.6259832 0.59551518 +Loop time of 0.0152688 on 4 procs for 50 steps with 500 atoms + +Performance: 1414649.236 tau/day, 3274.651 timesteps/s +99.9% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.006639 | 0.007916 | 0.0083909 | 0.8 | 51.84 +Neigh | 0.0015991 | 0.0018443 | 0.0019469 | 0.3 | 12.08 +Comm | 0.0041771 | 0.0047471 | 0.0063298 | 1.3 | 31.09 +Output | 9.6798e-05 | 0.00012475 | 0.00019407 | 0.0 | 0.82 +Modify | 0.00015974 | 0.0001967 | 0.00023103 | 0.0 | 1.29 +Other | | 0.0004399 | | | 2.88 + +Nlocal: 125 ave 128 max 121 min +Histogram: 1 0 0 0 1 0 0 0 1 1 +Nghost: 1091 ave 1094 max 1089 min +Histogram: 1 0 1 0 1 0 0 0 0 1 +Neighs: 4705 ave 4849 max 4648 min +Histogram: 2 1 0 0 0 0 0 0 0 1 + +Total # of neighbors = 18820 +Ave neighs/atom = 37.64 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.server.file.g++.1 b/examples/message/log.23Jul18.message.server.file.g++.1 new file mode 100644 index 0000000000..159332c2b4 --- /dev/null +++ b/examples/message/log.23Jul18.message.server.file.g++.1 @@ -0,0 +1,44 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md file tmp.couple + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 1 by 1 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:05 diff --git a/examples/message/log.23Jul18.message.server.file.g++.4 b/examples/message/log.23Jul18.message.server.file.g++.4 new file mode 100644 index 0000000000..f5ea67196f --- /dev/null +++ b/examples/message/log.23Jul18.message.server.file.g++.4 @@ -0,0 +1,44 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md file tmp.couple + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 2 by 2 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 2 by 2 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:05 diff --git a/examples/message/log.23Jul18.message.server.mpione.g++.1 b/examples/message/log.23Jul18.message.server.mpione.g++.1 new file mode 100644 index 0000000000..245461d4b2 --- /dev/null +++ b/examples/message/log.23Jul18.message.server.mpione.g++.1 @@ -0,0 +1,44 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/one + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 1 by 1 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.server.mpione.g++.4 b/examples/message/log.23Jul18.message.server.mpione.g++.4 new file mode 100644 index 0000000000..d4d9a98189 --- /dev/null +++ b/examples/message/log.23Jul18.message.server.mpione.g++.4 @@ -0,0 +1,44 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/one + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 2 by 2 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 2 by 2 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.server.mpitwo.g++.1 b/examples/message/log.23Jul18.message.server.mpitwo.g++.1 new file mode 100644 index 0000000000..440a03bad7 --- /dev/null +++ b/examples/message/log.23Jul18.message.server.mpitwo.g++.1 @@ -0,0 +1,44 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/two tmp.couple + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 1 by 1 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.server.mpitwo.g++.4 b/examples/message/log.23Jul18.message.server.mpitwo.g++.4 new file mode 100644 index 0000000000..0265bda54c --- /dev/null +++ b/examples/message/log.23Jul18.message.server.mpitwo.g++.4 @@ -0,0 +1,44 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/two tmp.couple + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 2 by 2 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 2 by 2 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.server.zmq.g++.1 b/examples/message/log.23Jul18.message.server.zmq.g++.1 new file mode 100644 index 0000000000..4fa9244bfe --- /dev/null +++ b/examples/message/log.23Jul18.message.server.zmq.g++.1 @@ -0,0 +1,44 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md zmq *:5555 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 1 by 1 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.server.zmq.g++.4 b/examples/message/log.23Jul18.message.server.zmq.g++.4 new file mode 100644 index 0000000000..f094153e83 --- /dev/null +++ b/examples/message/log.23Jul18.message.server.zmq.g++.4 @@ -0,0 +1,44 @@ +LAMMPS (16 Jul 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md zmq *:5555 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 2 by 2 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 2 by 2 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/lib/README b/lib/README index 3c8f46dd0a..12c27b2a39 100644 --- a/lib/README +++ b/lib/README @@ -35,6 +35,8 @@ linalg set of BLAS and LAPACK routines needed by USER-ATC package from Axel Kohlmeyer (Temple U) meam modified embedded atom method (MEAM) potential, MEAM package from Greg Wagner (Sandia) +message client/server communication library via MPI, sockets, files + from Steve Plimpton (Sandia) molfile hooks to VMD molfile plugins, used by the USER-MOLFILE package from Axel Kohlmeyer (Temple U) and the VMD development team mscg hooks to the MSCG library, used by fix_mscg command diff --git a/lib/message/Install.py b/lib/message/Install.py new file mode 100644 index 0000000000..d3f31c986f --- /dev/null +++ b/lib/message/Install.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python + +# Install.py tool to build the CSlib library +# used to automate the steps described in the README file in this dir + +from __future__ import print_function +import sys,os,re,subprocess + +# help message + +help = """ +Syntax from src dir: make lib-message args="-m" + or: make lib-message args="-s -z" +Syntax from lib dir: python Install.py -m + or: python Install.py -s -z + +specify zero or more options, order does not matter + + -m = parallel build of CSlib library + -s = serial build of CSlib library + -z = build CSlib library with ZMQ socket support, default = no ZMQ support + +Example: + +make lib-message args="-m -z" # build parallel CSlib with ZMQ support +make lib-message args="-s" # build serial CSlib with no ZMQ support +""" + +# print error message or help + +def error(str=None): + if not str: print(help) + else: print("ERROR",str) + sys.exit() + +# expand to full path name +# process leading '~' or relative path + +def fullpath(path): + return os.path.abspath(os.path.expanduser(path)) + +def which(program): + def is_exe(fpath): + return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + + fpath, fname = os.path.split(program) + if fpath: + if is_exe(program): + return program + else: + for path in os.environ["PATH"].split(os.pathsep): + path = path.strip('"') + exe_file = os.path.join(path, program) + if is_exe(exe_file): + return exe_file + + return None + +# parse args + +args = sys.argv[1:] +nargs = len(args) +if nargs == 0: error() + +mpiflag = False +serialflag = False +zmqflag = False + +iarg = 0 +while iarg < nargs: + if args[iarg] == "-m": + mpiflag = True + iarg += 1 + elif args[iarg] == "-s": + serialflag = True + iarg += 1 + elif args[iarg] == "-z": + zmqflag = True + iarg += 1 + else: error() + +if (not mpiflag and not serialflag): + error("Must use either -m or -s flag") + +if (mpiflag and serialflag): + error("Cannot use -m and -s flag at the same time") + +# build CSlib +# copy resulting lib to cslib/src/libmessage.a +# copy appropriate Makefile.lammps.* to Makefile.lammps + +print("Building CSlib ...") +srcdir = fullpath("./cslib/src") + +if mpiflag and zmqflag: + cmd = "cd %s; make lib_parallel" % srcdir +elif mpiflag and not zmqflag: + cmd = "cd %s; make lib_parallel zmq=no" % srcdir +elif not mpiflag and zmqflag: + cmd = "cd %s; make lib_serial" % srcdir +elif not mpiflag and not zmqflag: + cmd = "cd %s; make lib_serial zmq=no" % srcdir + +print(cmd) +txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) +print(txt.decode('UTF-8')) + +if mpiflag: cmd = "cd %s; cp libcsmpi.a libmessage.a" % srcdir +else: cmd = "cd %s; cp libcsnompi.a libmessage.a" % srcdir +print(cmd) +txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) +print(txt.decode('UTF-8')) + +if zmqflag: cmd = "cp Makefile.lammps.zmq Makefile.lammps" +else: cmd = "cp Makefile.lammps.nozmq Makefile.lammps" +print(cmd) +txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) +print(txt.decode('UTF-8')) diff --git a/lib/message/Makefile.lammps.nozmq b/lib/message/Makefile.lammps.nozmq new file mode 100644 index 0000000000..1bb10cc988 --- /dev/null +++ b/lib/message/Makefile.lammps.nozmq @@ -0,0 +1,5 @@ +# Settings that the LAMMPS build will import when this package library is used + +message_SYSINC = +message_SYSLIB = +message_SYSPATH = diff --git a/lib/message/Makefile.lammps.zmq b/lib/message/Makefile.lammps.zmq new file mode 100644 index 0000000000..759f2ce04b --- /dev/null +++ b/lib/message/Makefile.lammps.zmq @@ -0,0 +1,5 @@ +# Settings that the LAMMPS build will import when this package library is used + +message_SYSINC = +message_SYSLIB = -lzmq +message_SYSPATH = diff --git a/lib/message/README b/lib/message/README new file mode 100644 index 0000000000..71e46a8286 --- /dev/null +++ b/lib/message/README @@ -0,0 +1,51 @@ +This directory contains the CSlib library which is required +to use the MESSAGE package and its client/server commands +in a LAMMPS input script. + +The CSlib libary is included in the LAMMPS distribution. A fuller +version including documentation and test programs is available at +http:cslib.sandia.gov (by Aug 2018) and was developed by Steve +Plimpton at Sandia National Laboratories. + +You can type "make lib-message" from the src directory to see help on +how to build this library via make commands, or you can do the same +thing by typing "python Install.py" from within this directory, or you +can do it manually by following the instructions below. + +The CSlib can be optionally built with support for sockets using +the open-source ZeroMQ (ZMQ) library. If it is not installed +on your system, it is easy to download and install. + +Go to this website: http://zeromq.org + +----------------- + +Instructions: + +1. Compile CSlib from within cslib/src with one of the following: + % make lib_parallel # build parallel library with ZMQ socket support + % make lib_serial # build serial library with ZMQ support + % make lib_parallel zmq=no # build parallel lib with no ZMQ support + % make lib_serial zmq=no # build serial lib with no ZMQ support + +2. Copy the produced cslib/src/libcsmpi.a or libscnompi.a file to + cslib/src/libmessage.a + +3. Copy either lib/message/Makefile.lammps.zmq or Makefile.lammps.nozmq + to lib/message/Makefile.lammps, depending on whether you + build the library with ZMQ support or not. + If your ZMQ library is not in a place your shell path finds, + you can set the INCLUDE and PATH variables in Makefile.lammps + to point to the dirs where the ZMQ include and library files are. + +----------------- + +When these steps are complete you can build LAMMPS +with the MESSAGAE package installed: + +% cd lammps/src +% make yes-message +% make mpi (or whatever target you wish) + +Note that if you download and unpack a new LAMMPS tarball, you will +need to re-build the CSlib in this dir. diff --git a/lib/message/cslib/LICENSE b/lib/message/cslib/LICENSE new file mode 100644 index 0000000000..41ba9bbcd0 --- /dev/null +++ b/lib/message/cslib/LICENSE @@ -0,0 +1,501 @@ +GNU LESSER GENERAL PUBLIC LICENSE + +Version 2.1, February 1999 + +Copyright (C) 1991, 1999 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom +to share and change it. By contrast, the GNU General Public Licenses +are intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. + +This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + +When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + +To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + +For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + +We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + +To protect each distributor, we want to make it very clear that there +is no warranty for the free library. Also, if the library is modified +by someone else and passed on, the recipients should know that what +they have is not the original version, so that the original author's +reputation will not be affected by problems that might be introduced +by others. + +Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + +Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + +When a program is linked with a library, whether statically or using a +shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + +We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + +For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes a de-facto standard. To achieve this, non-free programs must +be allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + +In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + +Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + +The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). Each +licensee is addressed as "you". + +A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + +The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + +"Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation and installation of the library. + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does and +what the program that uses the Library does. + +1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a +fee. + +2. You may modify your copy or copies of the Library or any portion of +it, thus forming a work based on the Library, and copy and distribute +such modifications or work under the terms of Section 1 above, +provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + +Once this change is made in a given copy, it is irreversible for that +copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + +This option is useful when you wish to copy part of the code of the +Library into a program that is not a library. + +4. You may copy and distribute the Library (or a portion or derivative +of it, under Section 2) in object code or executable form under the +terms of Sections 1 and 2 above provided that you accompany it with +the complete corresponding machine-readable source code, which must be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange. + +If distribution of object code is made by offering access to copy from +a designated place, then offering equivalent access to copy the source +code from the same place satisfies the requirement to distribute the +source code, even though third parties are not compelled to copy the +source along with the object code. + +5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a work, +in isolation, is not a derivative work of the Library, and therefore +falls outside the scope of this License. + +However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. Section +6 states terms for distribution of such executables. + +When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is +not. Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + +If such an object file uses only numerical parameters, data structure +layouts and accessors, and small macros and small inline functions +(ten lines or less in length), then the use of the object file is +unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + +Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section +6. Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + +6. As an exception to the Sections above, you may also combine or link +a "work that uses the Library" with the Library to produce a work +containing portions of the Library, and distribute that work under +terms of your choice, provided that the terms permit modification of +the work for the customer's own use and reverse engineering for +debugging such modifications. + +You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood that + the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at least + three years, to give the same user the materials specified in + Subsection 6a, above, for a charge no more than the cost of + performing this distribution. d) If distribution of the work is + made by offering access to copy from a designated place, offer + equivalent access to copy the above specified materials from the + same place. e) Verify that the user has already received a copy + of these materials or that you have already sent this user a copy. + +For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + +It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + +7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + +8. You may not copy, modify, sublicense, link with, or distribute the +Library except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, link with, or distribute the +Library is void, and will automatically terminate your rights under +this License. However, parties who have received copies, or rights, +from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + +10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted +herein. You are not responsible for enforcing compliance by third +parties with this License. + +11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + +13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. Such +new versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + +14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + +NO WARRANTY + +15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE +LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS +AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF +ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Libraries + +If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + +To apply these terms, attach the following notices to the library. It +is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + +one line to give the library's name and an idea of what it does. +Copyright (C) year name of author + +This library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation; either version 2.1 of the +License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or +your school, if any, to sign a "copyright disclaimer" for the library, +if necessary. Here is a sample; alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright interest in +the library `Frob' (a library for tweaking knobs) written +by James Random Hacker. + +signature of Ty Coon, 1 April 1990 +Ty Coon, President of Vice + +That's all there is to it! diff --git a/lib/message/cslib/README b/lib/message/cslib/README new file mode 100644 index 0000000000..1cc75861c6 --- /dev/null +++ b/lib/message/cslib/README @@ -0,0 +1,21 @@ +This is the July 2018 version of the Client/Server messaging library +(CSlib). Only the source directory and license file are included here +as part of the LAMMPS distribution. The full CSlib distribution, +including documentation and test codes, can be found at the website: +http://cslib.sandia.gov (as of Aug 2018). + +The contact author is + +Steve Plimpton +Sandia National Laboratories +sjplimp@sandia.gov +http://www.sandia.gov/~sjplimp + +The CSlib is distributed as open-source code under the GNU LGPL +license. See the accompanying LICENSE file. + +This directory contains the following: + +README this file +LICENSE GNU LGPL license +src source files for library diff --git a/lib/message/cslib/src/Makefile b/lib/message/cslib/src/Makefile new file mode 100644 index 0000000000..83cf902220 --- /dev/null +++ b/lib/message/cslib/src/Makefile @@ -0,0 +1,107 @@ +# Makefile for CSlib = client/server messaging library +# type "make help" for options + +SHELL = /bin/sh + +# ---------------------------------------- +# should only need to change this section +# compiler/linker settings +# ---------------------------------------- + +CC = g++ +CCFLAGS = -g -O3 -DZMQ_$(ZMQ) -DMPI_$(MPI) +SHFLAGS = -fPIC +ARCHIVE = ar +ARCHFLAGS = -rc +SHLIBFLAGS = -shared + +# files + +LIB = libcsmpi.a +SHLIB = libcsmpi.so +SRC = $(wildcard *.cpp) +INC = $(wildcard *.h) +OBJ = $(SRC:.cpp=.o) + +# build with ZMQ support or not + +zmq = yes +ZMQ = $(shell echo $(zmq) | tr a-z A-Z) + +ifeq ($(ZMQ),YES) + ZMQLIB = -lzmq +else + CCFLAGS += -I./STUBS_ZMQ +endif + +# build with MPI support or not + +mpi = yes +MPI = $(shell echo $(mpi) | tr a-z A-Z) + +ifeq ($(MPI),YES) + CC = mpicxx +else + CCFLAGS += -I./STUBS_MPI + LIB = libcsnompi.a + SHLIB = libcsnompi.so +endif + +# targets + +shlib: shlib_parallel shlib_serial + +lib: lib_parallel lib_serial + +all: shlib lib + +help: + @echo 'make default = shlib' + @echo 'make shlib build 2 shared CSlibs: parallel & serial' + @echo 'make lib build 2 static CSlibs: parallel & serial' + @echo 'make all build 4 CSlibs: shlib and lib' + @echo 'make shlib_parallel build shared parallel CSlib' + @echo 'make shlib_serial build shared serial CSlib' + @echo 'make lib_parallel build static parallel CSlib' + @echo 'make lib_serial build static serial CSlib' + @echo 'make ... zmq=no build w/out ZMQ support' + @echo 'make clean remove all *.o files' + @echo 'make clean-all remove *.o and lib files' + @echo 'make tar create a tarball, 2 levels up' + +shlib_parallel: + $(MAKE) clean + $(MAKE) shared zmq=$(zmq) mpi=yes + +shlib_serial: + $(MAKE) clean + $(MAKE) shared zmq=$(zmq) mpi=no + +lib_parallel: + $(MAKE) clean + $(MAKE) static zmq=$(zmq) mpi=yes + +lib_serial: + $(MAKE) clean + $(MAKE) static zmq=$(zmq) mpi=no + +static: $(OBJ) + $(ARCHIVE) $(ARCHFLAGS) $(LIB) $(OBJ) + +shared: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) -o $(SHLIB) $(OBJ) $(ZMQLIB) + +clean: + @rm -f *.o *.pyc + +clean-all: + @rm -f *.o *.pyc lib*.a lib*.so + +tar: + cd ../..; tar cvf cslib.tar cslib/README cslib/LICENSE \ + cslib/doc cslib/src cslib/test + +# rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) -c $< diff --git a/lib/message/cslib/src/STUBS_MPI/mpi.h b/lib/message/cslib/src/STUBS_MPI/mpi.h new file mode 100644 index 0000000000..fd2dbf8113 --- /dev/null +++ b/lib/message/cslib/src/STUBS_MPI/mpi.h @@ -0,0 +1,95 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +// MPI constants and dummy functions + +#ifndef MPI_DUMMY_H +#define MPI_DUMMY_H + +#include +#include +#include + +namespace CSLIB_NS { + +typedef int MPI_Comm; +typedef int MPI_Fint; +typedef int MPI_Datatype; +typedef int MPI_Status; +typedef int MPI_Op; +typedef int MPI_Info; + +#define MPI_COMM_WORLD 0 +#define MPI_MAX_PORT_NAME 0 +#define MPI_INFO_NULL 0 +#define MPI_INT 1 +#define MPI_LONG_LONG 2 +#define MPI_FLOAT 3 +#define MPI_DOUBLE 4 +#define MPI_CHAR 5 +#define MPI_SUM 0 + +static void MPI_Init(int *, char ***) {} +static MPI_Comm MPI_Comm_f2c(MPI_Comm world) {return world;} +static void MPI_Comm_rank(MPI_Comm, int *) {} +static void MPI_Comm_size(MPI_Comm, int *) {} + +static void MPI_Open_port(MPI_Info, char *) {} +static void MPI_Close_port(const char *) {} +static void MPI_Comm_accept(const char *, MPI_Info, int, + MPI_Comm, MPI_Comm *) {} +static void MPI_Comm_connect(const char *, MPI_Info, int, + MPI_Comm, MPI_Comm *) {} + +static void MPI_Comm_split(MPI_Comm, int, int, MPI_Comm *) {} +static void MPI_Comm_free(MPI_Comm *) {} + +static void MPI_Send(const void *, int, MPI_Datatype, int, int, MPI_Comm) {} +static void MPI_Recv(void *, int, MPI_Datatype, int, int, + MPI_Comm, MPI_Status *) {} + +static void MPI_Allreduce(const void *in, void *out, int, MPI_Datatype type, + MPI_Op op, MPI_Comm) +{ + if (type == MPI_INT) *((int *) out) = *((int *) in); +} +static void MPI_Scan(const void *in, void *out, int, MPI_Datatype intype, + MPI_Op op,MPI_Comm) +{ + if (intype == MPI_INT) *((int *) out) = *((int *) in); +} + +static void MPI_Bcast(void *, int, MPI_Datatype, int, MPI_Comm) {} +static void MPI_Allgather(const void *in, int incount, MPI_Datatype intype, + void *out, int, MPI_Datatype, MPI_Comm) +{ + // assuming incount = 1 + if (intype == MPI_INT) *((int *) out) = *((int *) in); +} +static void MPI_Allgatherv(const void *in, int incount, MPI_Datatype intype, + void *out, const int *, const int *, + MPI_Datatype, MPI_Comm) +{ + if (intype == MPI_INT) memcpy(out,in,incount*sizeof(int)); + else if (intype == MPI_LONG_LONG) memcpy(out,in,incount*sizeof(int64_t)); + else if (intype == MPI_FLOAT) memcpy(out,in,incount*sizeof(float)); + else if (intype == MPI_DOUBLE) memcpy(out,in,incount*sizeof(double)); + else if (intype == MPI_CHAR) memcpy(out,in,incount*sizeof(char)); +} + +static void MPI_Abort(MPI_Comm, int) {exit(1);} +static void MPI_Finalize() {} + +} + +#endif diff --git a/lib/message/cslib/src/STUBS_ZMQ/zmq.h b/lib/message/cslib/src/STUBS_ZMQ/zmq.h new file mode 100644 index 0000000000..af920974cd --- /dev/null +++ b/lib/message/cslib/src/STUBS_ZMQ/zmq.h @@ -0,0 +1,35 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +// ZMQ constants and dummy functions + +#ifndef ZMQ_DUMMY_H +#define ZMQ_DUMMY_H + +namespace CSLIB_NS { + +#define ZMQ_REQ 0 +#define ZMQ_REP 0 + +static void *zmq_ctx_new() {return NULL;} +static void *zmq_connect(void *, char *) {return NULL;} +static int zmq_bind(void *, char *) {return 0;} +static void *zmq_socket(void *,int) {return NULL;} +static void zmq_close(void *) {} +static void zmq_ctx_destroy(void *) {} +static void zmq_send(void *, void *, int, int) {} +static void zmq_recv(void *, void *, int, int) {} + +}; + +#endif diff --git a/lib/message/cslib/src/cslib.cpp b/lib/message/cslib/src/cslib.cpp new file mode 100644 index 0000000000..8b4d27f134 --- /dev/null +++ b/lib/message/cslib/src/cslib.cpp @@ -0,0 +1,768 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include + +#include "cslib.h" +#include "msg_file.h" +#include "msg_zmq.h" +#include "msg_mpi_one.h" +#include "msg_mpi_two.h" + +using namespace CSLIB_NS; + +#define MAXTYPE 5 // # of defined field data types + +/* ---------------------------------------------------------------------- */ + +CSlib::CSlib(int csflag, const char *mode, const void *ptr, const void *pcomm) +{ + if (pcomm) myworld = (uint64_t) *((MPI_Comm *) pcomm); + else myworld = 0; + +#ifdef MPI_NO + if (pcomm) + error_all("constructor(): CSlib invoked with MPI_Comm " + "but built w/out MPI support"); +#endif +#ifdef MPI_YES // NOTE: this could be OK to allow ?? + // would allow a parallel app to invoke CSlib + // in parallel and/or in serial + if (!pcomm) + error_all("constructor(): CSlib invoked w/out MPI_Comm " + "but built with MPI support"); +#endif + + client = server = 0; + if (csflag == 0) client = 1; + else if (csflag == 1) server = 1; + else error_all("constructor(): Invalid client/server arg"); + + if (pcomm == NULL) { + me = 0; + nprocs = 1; + + if (strcmp(mode,"file") == 0) msg = new MsgFile(csflag,ptr); + else if (strcmp(mode,"zmq") == 0) msg = new MsgZMQ(csflag,ptr); + else if (strcmp(mode,"mpi/one") == 0) + error_all("constructor(): No mpi/one mode for serial lib usage"); + else if (strcmp(mode,"mpi/two") == 0) + error_all("constructor(): No mpi/two mode for serial lib usage"); + else error_all("constructor(): Unknown mode"); + + } else if (pcomm) { + MPI_Comm world = (MPI_Comm) myworld; + MPI_Comm_rank(world,&me); + MPI_Comm_size(world,&nprocs); + + if (strcmp(mode,"file") == 0) msg = new MsgFile(csflag,ptr,world); + else if (strcmp(mode,"zmq") == 0) msg = new MsgZMQ(csflag,ptr,world); + else if (strcmp(mode,"mpi/one") == 0) msg = new MsgMPIOne(csflag,ptr,world); + else if (strcmp(mode,"mpi/two") == 0) msg = new MsgMPITwo(csflag,ptr,world); + else error_all("constructor(): Unknown mode"); + } + + maxfield = 0; + fieldID = fieldtype = fieldlen = fieldoffset = NULL; + maxheader = 0; + header = NULL; + maxbuf = 0; + buf = NULL; + + recvcounts = displs = NULL; + maxglobal = 0; + allids = NULL; + maxfieldbytes = 0; + fielddata = NULL; + + pad = "\0\0\0\0\0\0\0"; // just length 7 since will have trailing NULL + + nsend = nrecv = 0; +} + +/* ---------------------------------------------------------------------- */ + +CSlib::~CSlib() +{ + deallocate_fields(); + sfree(header); + sfree(buf); + + sfree(recvcounts); + sfree(displs); + sfree(allids); + sfree(fielddata); + + delete msg; +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::send(int msgID_caller, int nfield_caller) +{ + if (nfield_caller < 0) error_all("send(): Invalid nfield"); + + msgID = msgID_caller; + nfield = nfield_caller; + allocate_fields(); + + fieldcount = 0; + nbuf = 0; + + if (fieldcount == nfield) send_message(); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_int(int id, int value) +{ + pack(id,1,1,&value); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_int64(int id, int64_t value) +{ + pack(id,2,1,&value); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_float(int id, float value) +{ + pack(id,3,1,&value); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_double(int id, double value) +{ + pack(id,4,1,&value); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_string(int id, char *value) +{ + pack(id,5,strlen(value)+1,value); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack(int id, int ftype, int flen, void *data) +{ + if (find_field(id,fieldcount) >= 0) + error_all("pack(): Reuse of field ID"); + if (ftype < 1 || ftype > MAXTYPE) error_all("pack(): Invalid ftype"); + if (flen < 0) error_all("pack(): Invalid flen"); + + fieldID[fieldcount] = id; + fieldtype[fieldcount] = ftype; + fieldlen[fieldcount] = flen; + + int nbytes,nbytesround; + onefield(ftype,flen,nbytes,nbytesround); + + memcpy(&buf[nbuf],data,nbytes); + memcpy(&buf[nbuf+nbytes],pad,nbytesround-nbytes); + nbuf += nbytesround; + + fieldcount++; + if (fieldcount == nfield) send_message(); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_parallel(int id, int ftype, + int nlocal, int *ids, int nper, void *data) +{ + int i,j,k,m; + + if (find_field(id,fieldcount) >= 0) + error_all("pack_parallel(): Reuse of field ID"); + if (ftype < 1 || ftype > MAXTYPE) error_all("pack_parallel(): Invalid ftype"); + if (nlocal < 0) error_all("pack_parallel(): Invalid nlocal"); + if (nper < 1) error_all("pack_parallel(): Invalid nper"); + + MPI_Comm world = (MPI_Comm) myworld; + + // NOTE: check for overflow of maxglobal and flen + + int nglobal; + MPI_Allreduce(&nlocal,&nglobal,1,MPI_INT,MPI_SUM,world); + int flen = nper*nglobal; + + fieldID[fieldcount] = id; + fieldtype[fieldcount] = ftype; + fieldlen[fieldcount] = flen; + + // nlocal datums, each of nper length, from all procs + // final data in buf = datums for all natoms, ordered by ids + + if (recvcounts == NULL) { + recvcounts = (int *) smalloc(nprocs*sizeof(int)); + displs = (int *) smalloc(nprocs*sizeof(int)); + } + + MPI_Allgather(&nlocal,1,MPI_INT,recvcounts,1,MPI_INT,world); + + displs[0] = 0; + for (int iproc = 1; iproc < nprocs; iproc++) + displs[iproc] = displs[iproc-1] + recvcounts[iproc-1]; + + if (ids && nglobal > maxglobal) { + sfree(allids); + maxglobal = nglobal; + // NOTE: maxglobal*sizeof(int) could overflow int + allids = (int *) smalloc(maxglobal*sizeof(int)); + } + + MPI_Allgatherv(ids,nlocal,MPI_INT,allids, + recvcounts,displs,MPI_INT,world); + + int nlocalsize = nper*nlocal; + MPI_Allgather(&nlocalsize,1,MPI_INT,recvcounts,1,MPI_INT,world); + + displs[0] = 0; + for (int iproc = 1; iproc < nprocs; iproc++) + displs[iproc] = displs[iproc-1] + recvcounts[iproc-1]; + + int nbytes,nbytesround; + onefield(ftype,flen,nbytes,nbytesround); + + if (ftype == 1) { + int *alldata; + if (ids) { + if (nbytes > maxfieldbytes) { + sfree(fielddata); + maxfieldbytes = nbytes; + fielddata = (char *) smalloc(maxfieldbytes); + } + alldata = (int *) fielddata; + } else alldata = (int *) &buf[nbuf]; + MPI_Allgatherv(data,nlocalsize,MPI_INT,alldata, + recvcounts,displs,MPI_INT,world); + if (ids) { + int *bufptr = (int *) &buf[nbuf]; + m = 0; + for (i = 0; i < nglobal; i++) { + j = (allids[i]-1) * nper; + if (nper == 1) bufptr[j] = alldata[m++]; + else + for (k = 0; k < nper; k++) + bufptr[j++] = alldata[m++]; + } + } + + } else if (ftype == 2) { + int64_t *alldata; + if (ids) { + if (nbytes > maxfieldbytes) { + sfree(fielddata); + maxfieldbytes = nbytes; + fielddata = (char *) smalloc(maxfieldbytes); + } + alldata = (int64_t *) fielddata; + } else alldata = (int64_t *) &buf[nbuf]; + // NOTE: may be just MPI_LONG on some machines + MPI_Allgatherv(data,nlocalsize,MPI_LONG_LONG,alldata, + recvcounts,displs,MPI_LONG_LONG,world); + if (ids) { + int64_t *bufptr = (int64_t *) &buf[nbuf]; + m = 0; + for (i = 0; i < nglobal; i++) { + j = (allids[i]-1) * nper; + if (nper == 1) bufptr[j] = alldata[m++]; + else + for (k = 0; k < nper; k++) + bufptr[j++] = alldata[m++]; + } + } + + } else if (ftype == 3) { + float *alldata; + if (ids) { + if (nbytes > maxfieldbytes) { + sfree(fielddata); + maxfieldbytes = nbytes; + fielddata = (char *) smalloc(maxfieldbytes); + } + alldata = (float *) fielddata; + } else alldata = (float *) &buf[nbuf]; + MPI_Allgatherv(data,nlocalsize,MPI_FLOAT,alldata, + recvcounts,displs,MPI_FLOAT,world); + if (ids) { + float *bufptr = (float *) &buf[nbuf]; + m = 0; + for (i = 0; i < nglobal; i++) { + j = (allids[i]-1) * nper; + if (nper == 1) bufptr[j] = alldata[m++]; + else + for (k = 0; k < nper; k++) + bufptr[j++] = alldata[m++]; + } + } + + } else if (ftype == 4) { + double *alldata; + if (ids) { + if (nbytes > maxfieldbytes) { + sfree(fielddata); + maxfieldbytes = nbytes; + fielddata = (char *) smalloc(maxfieldbytes); + } + alldata = (double *) fielddata; + } else alldata = (double *) &buf[nbuf]; + MPI_Allgatherv(data,nlocalsize,MPI_DOUBLE,alldata, + recvcounts,displs,MPI_DOUBLE,world); + if (ids) { + double *bufptr = (double *) &buf[nbuf]; + m = 0; + for (i = 0; i < nglobal; i++) { + j = (allids[i]-1) * nper; + if (nper == 1) bufptr[j] = alldata[m++]; + else + for (k = 0; k < nper; k++) + bufptr[j++] = alldata[m++]; + } + } + + /* eventually ftype = BYTE, but not yet + } else if (ftype == 5) { + char *alldata; + if (ids) { + if (nbytes > maxfieldbytes) { + sfree(fielddata); + maxfieldbytes = nbytes; + fielddata = (char *) smalloc(maxfieldbytes); + } + alldata = (char *) fielddata; + } else alldata = (char *) &buf[nbuf]; + MPI_Allgatherv(data,nlocalsize,MPI_CHAR,alldata, + recvcounts,displs,MPI_CHAR,world); + if (ids) { + char *bufptr = (char *) &buf[nbuf]; + m = 0; + for (i = 0; i < nglobal; i++) { + j = (allids[i]-1) * nper; + memcpy(&bufptr[j],&alldata[m],nper); + m += nper; + } + } + */ + } + + memcpy(&buf[nbuf+nbytes],pad,nbytesround-nbytes); + nbuf += nbytesround; + + fieldcount++; + if (fieldcount == nfield) send_message(); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::send_message() +{ + // setup header message + + int m = 0; + header[m++] = msgID; + header[m++] = nfield; + for (int ifield = 0; ifield < nfield; ifield++) { + header[m++] = fieldID[ifield]; + header[m++] = fieldtype[ifield]; + header[m++] = fieldlen[ifield]; + } + + msg->send(nheader,header,nbuf,buf); + nsend++; +} + +/* ---------------------------------------------------------------------- */ + +int CSlib::recv(int &nfield_caller, int *&fieldID_caller, + int *&fieldtype_caller, int *&fieldlen_caller) +{ + msg->recv(maxheader,header,maxbuf,buf); + nrecv++; + + // unpack header message + + int m = 0; + msgID = header[m++]; + nfield = header[m++]; + allocate_fields(); + + int nbytes,nbytesround; + + nbuf = 0; + for (int ifield = 0; ifield < nfield; ifield++) { + fieldID[ifield] = header[m++]; + fieldtype[ifield] = header[m++]; + fieldlen[ifield] = header[m++]; + fieldoffset[ifield] = nbuf; + onefield(fieldtype[ifield],fieldlen[ifield],nbytes,nbytesround); + nbuf += nbytesround; + } + + // return message parameters + + nfield_caller = nfield; + fieldID_caller = fieldID; + fieldtype_caller = fieldtype; + fieldlen_caller = fieldlen; + + return msgID; +} + +/* ---------------------------------------------------------------------- */ + +int CSlib::unpack_int(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_int(): Unknown field ID"); + if (fieldtype[ifield] != 1) error_all("unpack_int(): Mis-match of ftype"); + if (fieldlen[ifield] != 1) error_all("unpack_int(): Flen is not 1"); + + int *ptr = (int *) unpack(id); + return *ptr; +} + +/* ---------------------------------------------------------------------- */ + +int64_t CSlib::unpack_int64(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_int64(): Unknown field ID"); + if (fieldtype[ifield] != 2) error_all("unpack_int64(): Mis-match of ftype"); + if (fieldlen[ifield] != 1) error_all("unpack_int64(): Flen is not 1"); + + int64_t *ptr = (int64_t *) unpack(id); + return *ptr; +} + +/* ---------------------------------------------------------------------- */ + +float CSlib::unpack_float(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_float(): Unknown field ID"); + if (fieldtype[ifield] != 3) error_all("unpack_float(): Mis-match of ftype"); + if (fieldlen[ifield] != 1) error_all("unpack_float(): Flen is not 1"); + + float *ptr = (float *) unpack(id); + return *ptr; +} + +/* ---------------------------------------------------------------------- */ + +double CSlib::unpack_double(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_double(): Unknown field ID"); + if (fieldtype[ifield] != 4) error_all("unpack_double(): Mis-match of ftype"); + if (fieldlen[ifield] != 1) error_all("unpack_double(): Flen is not 1"); + + double *ptr = (double *) unpack(id); + return *ptr; +} + +/* ---------------------------------------------------------------------- */ + +char *CSlib::unpack_string(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_string(): Unknown field ID"); + if (fieldtype[ifield] != 5) error_all("unpack_string(): Mis-match of ftype"); + + char *ptr = (char *) unpack(id); + return ptr; +} + +/* ---------------------------------------------------------------------- */ + +void *CSlib::unpack(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack(): Unknown field ID"); + return &buf[fieldoffset[ifield]]; +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::unpack(int id, void *data) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack(): Unknown field ID"); + + int ftype = fieldtype[ifield]; + int nbytes = fieldlen[ifield]; + if (ftype == 1) nbytes *= sizeof(int); + else if (ftype == 2) nbytes *= sizeof(int64_t); + else if (ftype == 3) nbytes *= sizeof(float); + else if (ftype == 4) nbytes *= sizeof(double); + memcpy(data,&buf[fieldoffset[ifield]],nbytes); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::unpack_parallel(int id, int nlocal, int *ids, int nper, void *data) +{ + int i,j,k,m; + + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_parallel(): Unknown field ID"); + if (nlocal < 0) error_all("unpack_parallel(): Invalid nlocal"); + if (nper < 1) error_all("pack_parallel(): Invalid nper"); + + MPI_Comm world = (MPI_Comm) myworld; + + int upto; + if (!ids) { + MPI_Scan(&nlocal,&upto,1,MPI_INT,MPI_SUM,world); + upto -= nlocal; + } + + if (fieldtype[ifield] == 1) { + int *local = (int *) data; + int *global = (int *) &buf[fieldoffset[ifield]]; + if (!ids) memcpy(local,&global[nper*upto],nper*nlocal*sizeof(int)); + else { + m = 0; + for (i = 0; i < nlocal; i++) { + j = (ids[i]-1) * nper; + if (nper == 1) local[m++] = global[j]; + else + for (k = 0; k < nper; k++) + local[m++] = global[j++]; + } + } + + } else if (fieldtype[ifield] == 2) { + int64_t *local = (int64_t *) data; + int64_t *global = (int64_t *) &buf[fieldoffset[ifield]]; + if (!ids) memcpy(local,&global[nper*upto],nper*nlocal*sizeof(int64_t)); + else { + m = 0; + for (i = 0; i < nlocal; i++) { + j = (ids[i]-1) * nper; + if (nper == 1) local[m++] = global[j]; + else + for (k = 0; k < nper; k++) + local[m++] = global[j++]; + } + } + + } else if (fieldtype[ifield] == 3) { + float *local = (float *) data; + float *global = (float *) &buf[fieldoffset[ifield]]; + if (!ids) memcpy(local,&global[nper*upto],nper*nlocal*sizeof(float)); + else { + m = 0; + for (i = 0; i < nlocal; i++) { + j = (ids[i]-1) * nper; + if (nper == 1) local[m++] = global[j]; + else + for (k = 0; k < nper; k++) + local[m++] = global[j++]; + } + } + + } else if (fieldtype[ifield] == 4) { + double *local = (double *) data; + double *global = (double *) &buf[fieldoffset[ifield]]; + if (!ids) memcpy(local,&global[nper*upto],nper*nlocal*sizeof(double)); + else { + m = 0; + for (i = 0; i < nlocal; i++) { + j = (ids[i]-1) * nper; + if (nper == 1) local[m++] = global[j]; + else + for (k = 0; k < nper; k++) + local[m++] = global[j++]; + } + } + + /* eventually ftype = BYTE, but not yet + } else if (fieldtype[ifield] == 5) { + char *local = (char *) data; + char *global = (char *) &buf[fieldoffset[ifield]]; + if (!ids) memcpy(local,&global[nper*upto],nper*nlocal*sizeof(char)); + else { + m = 0; + for (i = 0; i < nlocal; i++) { + j = (ids[i]-1) * nper; + memcpy(&local[m],&global[j],nper); + m += nper; + } + } + */ + } +} + +/* ---------------------------------------------------------------------- */ + +int CSlib::extract(int flag) +{ + if (flag == 1) return nsend; + if (flag == 2) return nrecv; + error_all("extract(): Invalid flag"); + return 0; +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::onefield(int ftype, int flen, int &nbytes, int &nbytesround) +{ + int64_t bigbytes,bigbytesround; + int64_t biglen = flen; + + if (ftype == 1) bigbytes = biglen * sizeof(int); + else if (ftype == 2) bigbytes = biglen * sizeof(int64_t); + else if (ftype == 3) bigbytes = biglen * sizeof(float); + else if (ftype == 4) bigbytes = biglen * sizeof(double); + else if (ftype == 5) bigbytes = biglen * sizeof(char); + bigbytesround = roundup(bigbytes,8); + + if (nbuf + bigbytesround > INT_MAX) + error_all("pack(): Message size exceeds 32-bit integer limit"); + + nbytes = (int) bigbytes; + nbytesround = (int) bigbytesround; + if (nbuf + nbytesround > maxbuf) { + maxbuf = nbuf + nbytesround; + buf = (char *) srealloc(buf,maxbuf); + } +} + +/* ---------------------------------------------------------------------- */ + +int CSlib::find_field(int id, int n) +{ + int ifield; + for (ifield = 0; ifield < n; ifield++) + if (id == fieldID[ifield]) return ifield; + return -1; +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::allocate_fields() +{ + int64_t bigbytes = (2 + 3*((int64_t) nfield)) * sizeof(int); + if (bigbytes > INT_MAX) + error_all("send(): Message header size exceeds 32-bit integer limit"); + + nheader = 2; + nheader += 3 * nfield; + + if (nfield > maxfield) { + deallocate_fields(); + maxfield = nfield; + fieldID = new int[maxfield]; + fieldtype = new int[maxfield]; + fieldlen = new int[maxfield]; + fieldoffset = new int[maxfield]; + } + + if (nheader > maxheader) { + sfree(header); + maxheader = nheader; + header = (int *) smalloc(maxheader*sizeof(int)); + } +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::deallocate_fields() +{ + delete [] fieldID; + delete [] fieldtype; + delete [] fieldlen; + delete [] fieldoffset; +} + +/* ---------------------------------------------------------------------- */ + +void *CSlib::smalloc(int nbytes) +{ + if (nbytes == 0) return NULL; + void *ptr = malloc(nbytes); + if (ptr == NULL) { + char str[128]; + sprintf(str,"malloc(): Failed to allocate %d bytes",nbytes); + error_one(str); + } + return ptr; +} + +/* ---------------------------------------------------------------------- */ + +void *CSlib::srealloc(void *ptr, int nbytes) +{ + if (nbytes == 0) { + sfree(ptr); + return NULL; + } + + ptr = realloc(ptr,nbytes); + if (ptr == NULL) { + char str[128]; + sprintf(str,"realloc(): Failed to reallocate %d bytes",nbytes); + error_one(str); + } + return ptr; +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::sfree(void *ptr) +{ + if (ptr == NULL) return; + free(ptr); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::error_all(const char *str) +{ + if (me == 0) printf("CSlib ERROR: %s\n",str); + MPI_Comm world = (MPI_Comm) myworld; + MPI_Abort(world,1); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::error_one(const char *str) +{ + printf("CSlib ERROR: %s\n",str); + MPI_Comm world = (MPI_Comm) myworld; + MPI_Abort(world,1); +} + +/* ---------------------------------------------------------------------- + round N up to multiple of nalign and return it + NOTE: see mapreduce/src/keyvalue.cpp for doing this as uint64_t +------------------------------------------------------------------------- */ + +int64_t CSlib::roundup(int64_t n, int nalign) +{ + if (n % nalign == 0) return n; + n = (n/nalign + 1) * nalign; + return n; +} diff --git a/lib/message/cslib/src/cslib.h b/lib/message/cslib/src/cslib.h new file mode 100644 index 0000000000..20d82a2469 --- /dev/null +++ b/lib/message/cslib/src/cslib.h @@ -0,0 +1,87 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef CSLIB_H +#define CSLIB_H + +#include + +namespace CSLIB_NS { + +class CSlib { + public: + int nsend,nrecv; + + CSlib(int, const char *, const void *, const void *); + ~CSlib(); + + void send(int, int); + + void pack_int(int, int); + void pack_int64(int, int64_t); + void pack_float(int, float); + void pack_double(int, double); + void pack_string(int, char *); + void pack(int, int, int, void *); + void pack_parallel(int, int, int, int *, int, void *); + + int recv(int &, int *&, int *&, int *&); + + int unpack_int(int); + int64_t unpack_int64(int); + float unpack_float(int); + double unpack_double(int); + char *unpack_string(int); + void *unpack(int); + void unpack(int, void *); + void unpack_parallel(int, int, int *, int, void *); + + int extract(int); + + private: + uint64_t myworld; // really MPI_Comm, but avoids use of mpi.h in this file + // so apps can include this file w/ no MPI on system + int me,nprocs; + int client,server; + int nfield,maxfield; + int msgID,fieldcount; + int nheader,maxheader; + int nbuf,maxbuf; + int maxglobal,maxfieldbytes; + int *fieldID,*fieldtype,*fieldlen,*fieldoffset; + int *header; + int *recvcounts,*displs; // nprocs size for Allgathers + int *allids; // nglobal size for pack_parallel() + char *buf; // maxbuf size for msg with all fields + char *fielddata; // maxfieldbytes size for one global field + const char *pad; + + class Msg *msg; + + void send_message(); + void onefield(int, int, int &, int &); + int find_field(int, int); + void allocate_fields(); + void deallocate_fields(); + int64_t roundup(int64_t, int); + void *smalloc(int); + void *srealloc(void *, int); + void sfree(void *); + void error_all(const char *); + void error_one(const char *); +}; + +} + +#endif diff --git a/lib/message/cslib/src/cslib.py b/lib/message/cslib/src/cslib.py new file mode 100644 index 0000000000..e2ed78b61b --- /dev/null +++ b/lib/message/cslib/src/cslib.py @@ -0,0 +1,362 @@ +# ------------------------------------------------------------------------ +# CSlib - Client/server library for code coupling +# http://cslib.sandia.gov, Sandia National Laboratories +# Steve Plimpton, sjplimp@sandia.gov +# +# Copyright 2018 National Technology & Engineering Solutions of +# Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with +# NTESS, the U.S. Government retains certain rights in this software. +# This software is distributed under the GNU Lesser General Public +# License (LGPL). +# +# See the README file in the top-level CSlib directory. +# ------------------------------------------------------------------------- + +# Python wrapper on CSlib library via ctypes + +# ctypes and Numpy data types: +# 32-bit int = c_int = np.intc = np.int32 +# 64-bit int = c_longlong = np.int64 +# 32-bit floating point = c_float = np.float32 +# 64-bit floating point = c_double = np.float = np.float64 + +import sys,traceback +from ctypes import * + +# Numpy and mpi4py packages may not exist + +try: + import numpy as np + numpyflag = 1 +except: + numpyflag = 0 + +try: + from mpi4py import MPI + mpi4pyflag = 1 +except: + mpi4pyflag = 0 + +# wrapper class + +class CSlib: + + # instantiate CSlib thru its C-interface + + def __init__(self,csflag,mode,ptr,comm): + + # load libcslib.so + + try: + if comm: self.lib = CDLL("libcsmpi.so",RTLD_GLOBAL) + else: self.lib = CDLL("libcsnompi.so",RTLD_GLOBAL) + except: + etype,value,tb = sys.exc_info() + traceback.print_exception(etype,value,tb) + raise OSError,"Could not load CSlib dynamic library" + + # define ctypes API for each library method + + self.lib.cslib_open.argtypes = [c_int,c_char_p,c_void_p,c_void_p, + POINTER(c_void_p)] + self.lib.cslib_open.restype = None + + self.lib.cslib_close.argtypes = [c_void_p] + self.lib.cslib_close.restype = None + + self.lib.cslib_send.argtypes = [c_void_p,c_int,c_int] + self.lib.cslib_send.restype = None + + self.lib.cslib_pack_int.argtypes = [c_void_p,c_int,c_int] + self.lib.cslib_pack_int.restype = None + + self.lib.cslib_pack_int64.argtypes = [c_void_p,c_int,c_longlong] + self.lib.cslib_pack_int64.restype = None + + self.lib.cslib_pack_float.argtypes = [c_void_p,c_int,c_float] + self.lib.cslib_pack_float.restype = None + + self.lib.cslib_pack_double.argtypes = [c_void_p,c_int,c_double] + self.lib.cslib_pack_double.restype = None + + self.lib.cslib_pack_string.argtypes = [c_void_p,c_int,c_char_p] + self.lib.cslib_pack_string.restype = None + + self.lib.cslib_pack.argtypes = [c_void_p,c_int,c_int,c_int,c_void_p] + self.lib.cslib_pack.restype = None + + self.lib.cslib_pack_parallel.argtypes = [c_void_p,c_int,c_int,c_int, + POINTER(c_int),c_int,c_void_p] + self.lib.cslib_pack_parallel.restype = None + + self.lib.cslib_recv.argtypes = [c_void_p,POINTER(c_int), + POINTER(POINTER(c_int)), + POINTER(POINTER(c_int)), + POINTER(POINTER(c_int))] + self.lib.cslib_recv.restype = c_int + + self.lib.cslib_unpack_int.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack_int.restype = c_int + + self.lib.cslib_unpack_int64.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack_int64.restype = c_longlong + + self.lib.cslib_unpack_float.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack_float.restype = c_float + + self.lib.cslib_unpack_double.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack_double.restype = c_double + + self.lib.cslib_unpack_string.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack_string.restype = c_char_p + + # override return in unpack() + self.lib.cslib_unpack.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack.restype = c_void_p + + self.lib.cslib_unpack_data.argtypes = [c_void_p,c_int,c_void_p] + self.lib.cslib_unpack_data.restype = None + + # override last arg in unpack_parallel() + self.lib.cslib_unpack_parallel.argtypes = [c_void_p,c_int,c_int, + POINTER(c_int),c_int,c_void_p] + self.lib.cslib_unpack_parallel.restype = None + + self.lib.cslib_extract.argtypes = [c_void_p,c_int] + self.lib.cslib_extract.restype = c_int + + # create an instance of CSlib with or w/out MPI communicator + + self.cs = c_void_p() + + if not comm: + self.lib.cslib_open(csflag,mode,ptr,None,byref(self.cs)) + elif not mpi4pyflag: + print "Cannot pass MPI communicator to CSlib w/out mpi4py package" + sys.exit() + else: + address = MPI._addressof(comm) + comm_ptr = c_void_p(address) + if mode == "mpi/one": + address = MPI._addressof(ptr) + ptrcopy = c_void_p(address) + else: ptrcopy = ptr + self.lib.cslib_open(csflag,mode,ptrcopy,comm_ptr,byref(self.cs)) + + # destroy instance of CSlib + + def __del__(self): + if self.cs: self.lib.cslib_close(self.cs) + + def close(self): + self.lib.cslib_close(self.cs) + self.lib = None + + # send a message + + def send(self,msgID,nfield): + self.nfield = nfield + self.lib.cslib_send(self.cs,msgID,nfield) + + # pack one field of message + + def pack_int(self,id,value): + self.lib.cslib_pack_int(self.cs,id,value) + + def pack_int64(self,id,value): + self.lib.cslib_pack_int64(self.cs,id,value) + + def pack_float(self,id,value): + self.lib.cslib_pack_float(self.cs,id,value) + + def pack_double(self,id,value): + self.lib.cslib_pack_double(self.cs,id,value) + + def pack_string(self,id,value): + self.lib.cslib_pack_string(self.cs,id,value) + + def pack(self,id,ftype,flen,data): + cdata = self.data_convert(ftype,flen,data) + self.lib.cslib_pack(self.cs,id,ftype,flen,cdata) + + def pack_parallel(self,id,ftype,nlocal,ids,nper,data): + cids = self.data_convert(1,nlocal,ids) + cdata = self.data_convert(ftype,nper*nlocal,data) + self.lib.cslib_pack_parallel(self.cs,id,ftype,nlocal,cids,nper,cdata) + + # convert input data to a ctypes vector to pass to CSlib + + def data_convert(self,ftype,flen,data): + + # tflag = type of data + # tflag = 1 if data is list or tuple + # tflag = 2 if data is Numpy array + # tflag = 3 if data is ctypes vector + # same usage of tflag as in unpack function + + txttype = str(type(data)) + if "numpy" in txttype: tflag = 2 + elif "c_" in txttype: tflag = 3 + else: tflag = 1 + + # create ctypes vector out of data to pass to lib + # cdata = ctypes vector to return + # NOTE: error check on ftype and tflag everywhere, also flen + + if ftype == 1: + if tflag == 1: cdata = (flen * c_int)(*data) + elif tflag == 2: cdata = data.ctypes.data_as(POINTER(c_int)) + elif tflag == 3: cdata = data + elif ftype == 2: + if tflag == 1: cdata = (flen * c_longlong)(*data) + elif tflag == 2: cdata = data.ctypes.data_as(POINTER(c_longlong)) + elif tflag == 3: cdata = data + elif ftype == 3: + if tflag == 1: cdata = (flen * c_float)(*data) + elif tflag == 2: cdata = data.ctypes.data_as(POINTER(c_float)) + elif tflag == 3: cdata = data + elif ftype == 4: + if tflag == 1: cdata = (flen * c_double)(*data) + elif tflag == 2: cdata = data.ctypes.data_as(POINTER(c_double)) + elif tflag == 3: cdata = data + + return cdata + + # receive a message + + def recv(self): + self.lib.cslib_recv.restype = c_int + nfield = c_int() + fieldID = POINTER(c_int)() + fieldtype = POINTER(c_int)() + fieldlen = POINTER(c_int)() + msgID = self.lib.cslib_recv(self.cs,byref(nfield), + byref(fieldID),byref(fieldtype),byref(fieldlen)) + + # copy returned C args to native Python int and lists + # store them in class so unpack() methods can access the info + + self.nfield = nfield = nfield.value + self.fieldID = fieldID[:nfield] + self.fieldtype = fieldtype[:nfield] + self.fieldlen = fieldlen[:nfield] + + return msgID,self.nfield,self.fieldID,self.fieldtype,self.fieldlen + + # unpack one field of message + # tflag = type of data to return + # 3 = ctypes vector is default, since no conversion required + + def unpack_int(self,id): + return self.lib.cslib_unpack_int(self.cs,id) + + def unpack_int64(self,id): + return self.lib.cslib_unpack_int64(self.cs,id) + + def unpack_float(self,id): + return self.lib.cslib_unpack_float(self.cs,id) + + def unpack_double(self,id): + return self.lib.cslib_unpack_double(self.cs,id) + + def unpack_string(self,id): + return self.lib.cslib_unpack_string(self.cs,id) + + def unpack(self,id,tflag=3): + index = self.fieldID.index(id) + + # reset data type of return so can morph by tflag + # cannot do this for the generic c_void_p returned by CSlib + + if self.fieldtype[index] == 1: + self.lib.cslib_unpack.restype = POINTER(c_int) + elif self.fieldtype[index] == 2: + self.lib.cslib_unpack.restype = POINTER(c_longlong) + elif self.fieldtype[index] == 3: + self.lib.cslib_unpack.restype = POINTER(c_float) + elif self.fieldtype[index] == 4: + self.lib.cslib_unpack.restype = POINTER(c_double) + #elif self.fieldtype[index] == 5: + # self.lib.cslib_unpack.restype = POINTER(c_char) + + cdata = self.lib.cslib_unpack(self.cs,id) + + # tflag = user-requested type of data to return + # tflag = 1 to return data as list + # tflag = 2 to return data as Numpy array + # tflag = 3 to return data as ctypes vector + # same usage of tflag as in pack functions + # tflag = 2,3 should NOT perform a data copy + + if tflag == 1: + data = cdata[:self.fieldlen[index]] + elif tflag == 2: + if numpyflag == 0: + print "Cannot return Numpy array w/out numpy package" + sys.exit() + data = np.ctypeslib.as_array(cdata,shape=(self.fieldlen[index],)) + elif tflag == 3: + data = cdata + + return data + + # handle data array like pack() or unpack_parallel() ?? + + def unpack_data(self,id,tflag=3): + index = self.fieldID.index(id) + + # unpack one field of message in parallel + # tflag = type of data to return + # 3 = ctypes vector is default, since no conversion required + # NOTE: allow direct use of user array (e.g. Numpy), if user provides data arg? + # as opposed to creating this cdata + # does that make any performance difference ? + # e.g. should we allow CSlib to populate an existing Numpy array's memory + + def unpack_parallel(self,id,nlocal,ids,nper,tflag=3): + cids = self.data_convert(1,nlocal,ids) + + # allocate memory for the returned data + # pass cdata ptr to the memory to CSlib unpack_parallel() + # this resets data type of last unpack_parallel() arg + + index = self.fieldID.index(id) + if self.fieldtype[index] == 1: cdata = (nper*nlocal * c_int)() + elif self.fieldtype[index] == 2: cdata = (nlocal*nper * c_longlong)() + elif self.fieldtype[index] == 3: cdata = (nlocal*nper * c_float)() + elif self.fieldtype[index] == 4: cdata = (nlocal*nper * c_double)() + #elif self.fieldtype[index] == 5: cdata = (nlocal*nper * c_char)() + + self.lib.cslib_unpack_parallel(self.cs,id,nlocal,cids,nper,cdata) + + # tflag = user-requested type of data to return + # tflag = 1 to return data as list + # tflag = 2 to return data as Numpy array + # tflag = 3 to return data as ctypes vector + # same usage of tflag as in pack functions + + if tflag == 1: + data = cdata[:nper*nlocal] + elif tflag == 2: + if numpyflag == 0: + print "Cannot return Numpy array w/out numpy package" + sys.exit() + # NOTE: next line gives ctypes warning for fieldtype = 2 = 64-bit int + # not sure why, reported as bug between ctypes and Numpy here: + # https://stackoverflow.com/questions/4964101/pep-3118- + # warning-when-using-ctypes-array-as-numpy-array + # but why not same warning when just using unpack() ?? + # in Python these lines give same warning: + # >>> import ctypes,numpy + # >>> a = (10 * ctypes.c_longlong)() + # >>> b = numpy.ctypeslib.as_array(a) + data = np.ctypeslib.as_array(cdata,shape=(nlocal*nper,)) + elif tflag == 3: + data = cdata + + return data + + # extract a library value + + def extract(self,flag): + return self.lib.cslib_extract(self.cs,flag) diff --git a/lib/message/cslib/src/cslib_wrap.cpp b/lib/message/cslib/src/cslib_wrap.cpp new file mode 100644 index 0000000000..453948f783 --- /dev/null +++ b/lib/message/cslib/src/cslib_wrap.cpp @@ -0,0 +1,239 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +// C style library interface to CSlib class + +#include +#include +#include +#include +#include + +#include "cslib_wrap.h" +#include "cslib.h" + +using namespace CSLIB_NS; + +// ---------------------------------------------------------------------- + +void cslib_open(int csflag, const char *mode, const void *ptr, + const void *pcomm, void **csptr) +{ + CSlib *cs = new CSlib(csflag,mode,ptr,pcomm); + *csptr = (void *) cs; +} + +// ---------------------------------------------------------------------- + +void cslib_open_fortran(int csflag, const char *mode, const char *str, + const void *pcomm, void **csptr) +{ + MPI_Comm ccomm; + void *pccomm = NULL; + + if (pcomm) { + MPI_Fint *fcomm = (MPI_Fint *) pcomm; + ccomm = MPI_Comm_f2c(*fcomm); + pccomm = &ccomm; + } + + CSlib *cs = new CSlib(csflag,mode,str,pccomm); + *csptr = (void *) cs; +} + +// ---------------------------------------------------------------------- + +void cslib_open_fortran_mpi_one(int csflag, const char *mode, + const void *pboth, const void *pcomm, + void **csptr) +{ + MPI_Comm ccomm,cboth; + void *pccomm,*pcboth; + + MPI_Fint *fcomm = (MPI_Fint *) pcomm; + ccomm = MPI_Comm_f2c(*fcomm); + pccomm = &ccomm; + + MPI_Fint *fboth = (MPI_Fint *) pboth; + cboth = MPI_Comm_f2c(*fboth); + pcboth = &cboth; + + CSlib *cs = new CSlib(csflag,mode,pcboth,pccomm); + *csptr = (void *) cs; +} + +// ---------------------------------------------------------------------- + +void cslib_close(void *ptr) +{ + CSlib *cs = (CSlib *) ptr; + delete cs; +} + +// ---------------------------------------------------------------------- + +void cslib_send(void *ptr, int msgID, int nfield) +{ + CSlib *cs = (CSlib *) ptr; + cs->send(msgID,nfield); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_int(void *ptr, int id, int value) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_int(id,value); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_int64(void *ptr, int id, int64_t value) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_int64(id,value); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_float(void *ptr, int id, float value) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_float(id,value); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_double(void *ptr, int id, double value) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_double(id,value); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_string(void *ptr, int id, char *value) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_string(id,value); +} + +// ---------------------------------------------------------------------- + +void cslib_pack(void *ptr, int id, int ftype, int flen, void *data) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack(id,ftype,flen,data); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_parallel(void *ptr, int id, int ftype, + int nlocal, int *ids, int nper, void *data) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_parallel(id,ftype,nlocal,ids,nper,data); +} + +// ---------------------------------------------------------------------- + +int cslib_recv(void *ptr, int *nfield_caller, + int **fieldID_caller, int **fieldtype_caller, + int **fieldlen_caller) +{ + CSlib *cs = (CSlib *) ptr; + + int nfield; + int *fieldID,*fieldtype,*fieldlen; + int msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + + *nfield_caller = nfield; + *fieldID_caller = fieldID; + *fieldtype_caller = fieldtype; + *fieldlen_caller = fieldlen; + + return msgID; +} + +// ---------------------------------------------------------------------- + +int cslib_unpack_int(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack_int(id); +} +// ---------------------------------------------------------------------- + +int64_t cslib_unpack_int64(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack_int64(id); +} + +// ---------------------------------------------------------------------- + +float cslib_unpack_float(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack_float(id); +} + +// ---------------------------------------------------------------------- + +double cslib_unpack_double(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack_double(id); +} + +// ---------------------------------------------------------------------- + +char *cslib_unpack_string(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack_string(id); +} + +// ---------------------------------------------------------------------- + +void *cslib_unpack(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack(id); +} + +// ---------------------------------------------------------------------- + +void cslib_unpack_data(void *ptr, int id, void *data) +{ + CSlib *cs = (CSlib *) ptr; + cs->unpack(id,data); +} + +// ---------------------------------------------------------------------- + +void cslib_unpack_parallel(void *ptr, int id, int nlocal, int *ids, + int nper, void *data) +{ + CSlib *cs = (CSlib *) ptr; + cs->unpack_parallel(id,nlocal,ids,nper,data); +} + +// ---------------------------------------------------------------------- + +int cslib_extract(void *ptr, int flag) +{ + CSlib *cs = (CSlib *) ptr; + return cs->extract(flag); +} diff --git a/lib/message/cslib/src/cslib_wrap.f90 b/lib/message/cslib/src/cslib_wrap.f90 new file mode 100644 index 0000000000..cd2e058b78 --- /dev/null +++ b/lib/message/cslib/src/cslib_wrap.f90 @@ -0,0 +1,147 @@ +! ISO_C_binding wrapper on CSlib C interface + +module cslib_wrap + +interface + subroutine cslib_open_fortran(csflag,mode,str,pcomm,ptr) bind(c) + use iso_c_binding + integer(c_int), value :: csflag + character(c_char) :: mode(*),str(*) + type(c_ptr), value :: pcomm + type(c_ptr) :: ptr + end subroutine cslib_open_fortran + + subroutine cslib_open_fortran_mpi_one(csflag,mode,pboth,pcomm,ptr) bind(c) + use iso_c_binding + integer(c_int), value :: csflag + character(c_char) :: mode(*) + type(c_ptr), value :: pboth,pcomm + type(c_ptr) :: ptr + end subroutine cslib_open_fortran_mpi_one + + subroutine cslib_close(ptr) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + end subroutine cslib_close + + subroutine cslib_send(ptr,msgID,nfield) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: msgID,nfield + end subroutine cslib_send + + subroutine cslib_pack_int(ptr,id,value) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id + integer(c_int), value :: value + end subroutine cslib_pack_int + + subroutine cslib_pack_int64(ptr,id,value) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id + integer(c_int64_t), value :: value + end subroutine cslib_pack_int64 + + subroutine cslib_pack_float(ptr,id,value) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id + real(c_float), value :: value + end subroutine cslib_pack_float + + subroutine cslib_pack_double(ptr,id,value) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id + real(c_double), value :: value + end subroutine cslib_pack_double + + subroutine cslib_pack_string(ptr,id,value) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id + character(c_char) :: value(*) + end subroutine cslib_pack_string + + subroutine cslib_pack(ptr,id,ftype,flen,data) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id,ftype,flen + type(c_ptr), value :: data + end subroutine cslib_pack + + subroutine cslib_pack_parallel(ptr,id,ftype,nlocal,ids,nper,data) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id,ftype,nlocal,nper + type(c_ptr), value :: ids,data + end subroutine cslib_pack_parallel + + function cslib_recv(ptr,nfield,fieldID,fieldtype,fieldlen) bind(c) + use iso_c_binding + integer(c_int) :: cslib_recv + type(c_ptr), value :: ptr + integer(c_int) :: nfield + type(c_ptr) :: fieldID,fieldtype,fieldlen + end function cslib_recv + + function cslib_unpack_int(ptr,id) bind(c) + use iso_c_binding + integer(c_int) :: cslib_unpack_int + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack_int + + function cslib_unpack_int64(ptr,id) bind(c) + use iso_c_binding + integer(c_int64_t) :: cslib_unpack_int64 + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack_int64 + + function cslib_unpack_float(ptr,id) bind(c) + use iso_c_binding + real(c_float) :: cslib_unpack_float + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack_float + + function cslib_unpack_double(ptr,id) bind(c) + use iso_c_binding + real(c_double) :: cslib_unpack_double + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack_double + + function cslib_unpack_string(ptr,id) bind(c) + use iso_c_binding + type(c_ptr) :: cslib_unpack_string + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack_string + + function cslib_unpack(ptr,id) bind(c) + use iso_c_binding + type(c_ptr) :: cslib_unpack + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack + + subroutine cslib_unpack_parallel(ptr,id,nlocal,ids,nper,data) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id,nlocal,nper + type(c_ptr), value :: ids,data + end subroutine cslib_unpack_parallel + + function cslib_extract(ptr,flag) bind(c) + use iso_c_binding + integer(c_int) :: cslib_extract + type(c_ptr), value :: ptr + integer(c_int), value :: flag + end function cslib_extract +end interface + +end module cslib_wrap diff --git a/lib/message/cslib/src/cslib_wrap.h b/lib/message/cslib/src/cslib_wrap.h new file mode 100644 index 0000000000..42d095f452 --- /dev/null +++ b/lib/message/cslib/src/cslib_wrap.h @@ -0,0 +1,54 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +/* C style library interface to CSlib class + ifdefs allow this file to be included in a C program +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +void cslib_open(int, const char *, const void *, const void *, void **); +void cslib_open_fortran(int, const char *, const char *, const void *, void **); +void cslib_open_fortran_mpi_one(int, const char *, const void *, + const void *, void **); +void cslib_close(void *); + +void cslib_send(void *, int, int); + +void cslib_pack_int(void *, int, int); +void cslib_pack_int64(void *, int, int64_t); +void cslib_pack_float(void *, int, float); +void cslib_pack_double(void *, int, double); +void cslib_pack_string(void *, int, char *); +void cslib_pack(void *, int, int, int, void *); +void cslib_pack_parallel(void *, int, int, int, int *, int, void *); + +int cslib_recv(void *, int *, int **, int **, int **); + +int cslib_unpack_int(void *, int); +int64_t cslib_unpack_int64(void *, int); +float cslib_unpack_float(void *, int); +double cslib_unpack_double(void *, int); +char *cslib_unpack_string(void *, int); +void *cslib_unpack(void *, int); +void cslib_unpack_data(void *, int, void *); +void cslib_unpack_parallel(void *, int, int, int *, int, void *); + +int cslib_extract(void *, int); + +#ifdef __cplusplus +} +#endif diff --git a/lib/message/cslib/src/msg.cpp b/lib/message/cslib/src/msg.cpp new file mode 100644 index 0000000000..1ba24d2b48 --- /dev/null +++ b/lib/message/cslib/src/msg.cpp @@ -0,0 +1,110 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include + +#include "msg.h" + +using namespace CSLIB_NS; + +/* ---------------------------------------------------------------------- */ + +Msg::Msg(int csflag, const void *ptr, MPI_Comm cworld) +{ + world = cworld; + MPI_Comm_rank(world,&me); + MPI_Comm_size(world,&nprocs); + + init(csflag); +} + +/* ---------------------------------------------------------------------- */ + +Msg::Msg(int csflag, const void *ptr) +{ + world = 0; + me = 0; + nprocs = 1; + + init(csflag); +} + +/* ---------------------------------------------------------------------- */ + +void Msg::init(int csflag) +{ + client = server = 0; + if (csflag == 0) client = 1; + else if (csflag == 1) server = 1; + + nsend = nrecv = 0; +} + +/* ---------------------------------------------------------------------- */ + +void Msg::allocate(int nheader, int &maxheader, int *&header, + int nbuf, int &maxbuf, char *&buf) +{ + if (nheader > maxheader) { + sfree(header); + maxheader = nheader; + header = (int *) smalloc(maxheader*sizeof(int)); + } + + if (nbuf > maxbuf) { + sfree(buf); + maxbuf = nbuf; + buf = (char *) smalloc(maxbuf*sizeof(char)); + } +} + +/* ---------------------------------------------------------------------- */ + +void *Msg::smalloc(int nbytes) +{ + if (nbytes == 0) return NULL; + void *ptr = (void *) malloc(nbytes); + if (ptr == NULL) { + char str[128]; + sprintf(str,"Failed to allocate %d bytes",nbytes); + } + return ptr; +} + +/* ---------------------------------------------------------------------- */ + +void Msg::sfree(void *ptr) +{ + if (ptr == NULL) return; + free(ptr); +} + +/* ---------------------------------------------------------------------- */ + +void Msg::error_all(const char *str) +{ + if (me == 0) printf("CSlib ERROR: %s\n",str); + MPI_Abort(world,1); +} + +/* ---------------------------------------------------------------------- */ + +void Msg::error_one(const char *str) +{ + printf("CSlib ERROR: %s\n",str); + MPI_Abort(world,1); +} diff --git a/lib/message/cslib/src/msg.h b/lib/message/cslib/src/msg.h new file mode 100644 index 0000000000..48805a0f4f --- /dev/null +++ b/lib/message/cslib/src/msg.h @@ -0,0 +1,52 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef MSG_H +#define MSG_H + +#include + +namespace CSLIB_NS { + +class Msg { + public: + int nsend,nrecv; + MPI_Comm world; + + Msg(int, const void *, MPI_Comm); + Msg(int, const void *); + virtual ~Msg() {} + virtual void send(int, int *, int, char *) = 0; + virtual void recv(int &, int *&, int &, char *&) = 0; + + protected: + int me,nprocs; + int client,server; + + int nfield; + int *fieldID,*fieldtype,*fieldlen; + int lengths[2]; + + void init(int); + void allocate(int, int &, int *&, int, int &, char *&); + void *smalloc(int); + void sfree(void *); + void error_all(const char *); + void error_one(const char *); +}; + + +} + +#endif diff --git a/lib/message/cslib/src/msg_file.cpp b/lib/message/cslib/src/msg_file.cpp new file mode 100644 index 0000000000..31126b8444 --- /dev/null +++ b/lib/message/cslib/src/msg_file.cpp @@ -0,0 +1,143 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include + +#include "msg_file.h" + +using namespace CSLIB_NS; + +#define MAXLINE 256 +#define SLEEP 0.1 // delay in CPU secs to check for message file + +/* ---------------------------------------------------------------------- */ + +MsgFile::MsgFile(int csflag, const void *ptr, MPI_Comm cworld) : + Msg(csflag, ptr, cworld) +{ + char *filename = (char *) ptr; + init(filename); +} + +/* ---------------------------------------------------------------------- */ + +MsgFile::MsgFile(int csflag, const void *ptr) : Msg(csflag, ptr) +{ + char *filename = (char *) ptr; + init(filename); +} + +/* ---------------------------------------------------------------------- */ + +MsgFile::~MsgFile() +{ + delete [] fileroot; +} + +/* ---------------------------------------------------------------------- */ + +void MsgFile::init(char *filename) +{ + int n = strlen(filename) + 1; + fileroot = new char[n]; + strcpy(fileroot,filename); +} + +/* ---------------------------------------------------------------------- */ + +void MsgFile::send(int nheader, int *header, int nbuf, char *buf) +{ + char filename[MAXLINE]; + + lengths[0] = nheader; + lengths[1] = nbuf; + + if (me == 0) { + if (client) sprintf(filename,"%s.%s",fileroot,"client"); + else if (server) sprintf(filename,"%s.%s",fileroot,"server"); + + fp = fopen(filename,"wb"); + if (!fp) error_one("send(): Could not open send message file"); + fwrite(lengths,sizeof(int),2,fp); + fwrite(header,sizeof(int),nheader,fp); + fwrite(buf,1,nbuf,fp); + fclose(fp); + } + + // create empty signal file + + if (me == 0) { + if (client) sprintf(filename,"%s.%s",fileroot,"client.signal"); + else if (server) sprintf(filename,"%s.%s",fileroot,"server.signal"); + fp = fopen(filename,"w"); + fclose(fp); + } +} + +/* ---------------------------------------------------------------------- */ + +void MsgFile::recv(int &maxheader, int *&header, int &maxbuf, char *&buf) +{ + char filename[MAXLINE]; + + // wait until signal file exists to open message file + + if (me == 0) { + if (client) sprintf(filename,"%s.%s",fileroot,"server.signal"); + else if (server) sprintf(filename,"%s.%s",fileroot,"client.signal"); + + int delay = (int) (1000000 * SLEEP); + while (1) { + fp = fopen(filename,"r"); + if (fp) break; + usleep(delay); + } + fclose(fp); + + if (client) sprintf(filename,"%s.%s",fileroot,"server"); + else if (server) sprintf(filename,"%s.%s",fileroot,"client"); + fp = fopen(filename,"rb"); + if (!fp) error_one("recv(): Could not open recv message file"); + } + + // read and broadcast data + + if (me == 0) fread(lengths,sizeof(int),2,fp); + if (nprocs > 1) MPI_Bcast(lengths,2,MPI_INT,0,world); + + int nheader = lengths[0]; + int nbuf = lengths[1]; + allocate(nheader,maxheader,header,nbuf,maxbuf,buf); + + if (me == 0) fread(header,sizeof(int),nheader,fp); + if (nprocs > 1) MPI_Bcast(header,nheader,MPI_INT,0,world); + + if (me == 0) fread(buf,1,nbuf,fp); + if (nprocs > 1) MPI_Bcast(buf,nbuf,MPI_CHAR,0,world); + + // delete both message and signal file + + if (me == 0) { + fclose(fp); + unlink(filename); + if (client) sprintf(filename,"%s.%s",fileroot,"server.signal"); + else if (server) sprintf(filename,"%s.%s",fileroot,"client.signal"); + unlink(filename); + } +} diff --git a/lib/message/cslib/src/msg_file.h b/lib/message/cslib/src/msg_file.h new file mode 100644 index 0000000000..6d7c7017f6 --- /dev/null +++ b/lib/message/cslib/src/msg_file.h @@ -0,0 +1,40 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef MSG_FILE_H +#define MSG_FILE_H + +#include +#include "msg.h" + +namespace CSLIB_NS { + +class MsgFile : public Msg { + public: + MsgFile(int, const void *, MPI_Comm); + MsgFile(int, const void *); + ~MsgFile(); + void send(int, int *, int, char *); + void recv(int &, int *&, int &, char *&); + + private: + char *fileroot; + FILE *fp; + + void init(char *); +}; + +} + +#endif diff --git a/lib/message/cslib/src/msg_mpi_one.cpp b/lib/message/cslib/src/msg_mpi_one.cpp new file mode 100644 index 0000000000..c028961abc --- /dev/null +++ b/lib/message/cslib/src/msg_mpi_one.cpp @@ -0,0 +1,82 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include + +#include "msg_mpi_one.h" + +using namespace CSLIB_NS; + +/* ---------------------------------------------------------------------- */ + +MsgMPIOne::MsgMPIOne(int csflag, const void *ptr, MPI_Comm cworld) : + Msg(csflag, ptr, cworld) +{ + // NOTE: ideally would skip this call if mpi/two + init(ptr); +} + +/* ---------------------------------------------------------------------- */ + +void MsgMPIOne::init(const void *ptr) +{ + MPI_Comm *pbothcomm = (MPI_Comm *) ptr; + bothcomm = *pbothcomm; + + if (client) { + MPI_Comm_size(world,&nprocs); + otherroot = nprocs; + } else if (server) { + otherroot = 0; + } +} + +/* ---------------------------------------------------------------------- */ + +void MsgMPIOne::send(int nheader, int *header, int nbuf, char *buf) +{ + lengths[0] = nheader; + lengths[1] = nbuf; + + if (me == 0) { + MPI_Send(lengths,2,MPI_INT,otherroot,0,bothcomm); + MPI_Send(header,nheader,MPI_INT,otherroot,0,bothcomm); + MPI_Send(buf,nbuf,MPI_CHAR,otherroot,0,bothcomm); + } +} + +/* ---------------------------------------------------------------------- */ + +void MsgMPIOne::recv(int &maxheader, int *&header, int &maxbuf, char *&buf) +{ + MPI_Status status; + + if (me == 0) MPI_Recv(lengths,2,MPI_INT,otherroot,0,bothcomm,&status); + if (nprocs > 1) MPI_Bcast(lengths,2,MPI_INT,0,world); + + int nheader = lengths[0]; + int nbuf = lengths[1]; + allocate(nheader,maxheader,header,nbuf,maxbuf,buf); + + if (me == 0) MPI_Recv(header,nheader,MPI_INT,otherroot,0,bothcomm,&status); + if (nprocs > 1) MPI_Bcast(header,nheader,MPI_INT,0,world); + + if (me == 0) MPI_Recv(buf,nbuf,MPI_CHAR,otherroot,0,bothcomm,&status); + if (nprocs > 1) MPI_Bcast(buf,nbuf,MPI_CHAR,0,world); +} diff --git a/lib/message/cslib/src/msg_mpi_one.h b/lib/message/cslib/src/msg_mpi_one.h new file mode 100644 index 0000000000..8f1b781bc6 --- /dev/null +++ b/lib/message/cslib/src/msg_mpi_one.h @@ -0,0 +1,38 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef MSG_MPI_ONE_H +#define MSG_MPI_ONE_H + +#include "msg.h" + +namespace CSLIB_NS { + +class MsgMPIOne : public Msg { + public: + MsgMPIOne(int, const void *, MPI_Comm); + virtual ~MsgMPIOne() {} + void send(int, int *, int, char *); + void recv(int &, int *&, int &, char *&); + + protected: + MPI_Comm bothcomm; + int otherroot; + + void init(const void *); +}; + +} + +#endif diff --git a/lib/message/cslib/src/msg_mpi_two.cpp b/lib/message/cslib/src/msg_mpi_two.cpp new file mode 100644 index 0000000000..4c8f593939 --- /dev/null +++ b/lib/message/cslib/src/msg_mpi_two.cpp @@ -0,0 +1,81 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include + +#include "msg_mpi_two.h" + +using namespace CSLIB_NS; + +/* ---------------------------------------------------------------------- */ + +MsgMPITwo::MsgMPITwo(int csflag, const void *ptr, MPI_Comm cworld) : + MsgMPIOne(csflag, ptr, cworld) +{ + char *filename = (char *) ptr; + init(filename); +} + +/* ---------------------------------------------------------------------- */ + +MsgMPITwo::~MsgMPITwo() +{ + // free the inter comm that spans both client and server + + MPI_Comm_free(&bothcomm); + MPI_Close_port(port); +} + +/* ---------------------------------------------------------------------- */ + +void MsgMPITwo::init(char *filename) +{ + if (client) { + if (me == 0) { + FILE *fp = NULL; + while (!fp) { + fp = fopen(filename,"r"); + if (!fp) sleep(1); + } + fgets(port,MPI_MAX_PORT_NAME,fp); + //printf("Client port: %s\n",port); + fclose(fp); + } + + MPI_Bcast(port,MPI_MAX_PORT_NAME,MPI_CHAR,0,world); + MPI_Comm_connect(port,MPI_INFO_NULL,0,world,&bothcomm); + //if (me == 0) printf("CLIENT comm connect\n"); + if (me == 0) unlink(filename); + + } else if (server) { + MPI_Open_port(MPI_INFO_NULL,port); + + if (me == 0) { + //printf("Server name: %s\n",port); + FILE *fp = fopen(filename,"w"); + fprintf(fp,"%s",port); + fclose(fp); + } + + MPI_Comm_accept(port,MPI_INFO_NULL,0,world,&bothcomm); + //if (me == 0) printf("SERVER comm accept\n"); + } + + otherroot = 0; +} diff --git a/lib/message/cslib/src/msg_mpi_two.h b/lib/message/cslib/src/msg_mpi_two.h new file mode 100644 index 0000000000..40dd95e7ea --- /dev/null +++ b/lib/message/cslib/src/msg_mpi_two.h @@ -0,0 +1,35 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef MSG_MPI_TWO_H +#define MSG_MPI_TWO_H + +#include "msg_mpi_one.h" + +namespace CSLIB_NS { + +class MsgMPITwo : public MsgMPIOne { + public: + MsgMPITwo(int, const void *, MPI_Comm); + ~MsgMPITwo(); + + private: + char port[MPI_MAX_PORT_NAME]; + + void init(char *); +}; + +} + +#endif diff --git a/lib/message/cslib/src/msg_zmq.cpp b/lib/message/cslib/src/msg_zmq.cpp new file mode 100644 index 0000000000..dcbeedaaa0 --- /dev/null +++ b/lib/message/cslib/src/msg_zmq.cpp @@ -0,0 +1,140 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include + +#include "msg_zmq.h" + +using namespace CSLIB_NS; + +/* ---------------------------------------------------------------------- */ + +MsgZMQ::MsgZMQ(int csflag, const void *ptr, MPI_Comm cworld) : + Msg(csflag, ptr, cworld) +{ + char *port = (char *) ptr; + init(port); +} + +MsgZMQ::MsgZMQ(int csflag, const void *ptr) : Msg(csflag, ptr) +{ + char *port = (char *) ptr; + init(port); +} + +/* ---------------------------------------------------------------------- */ + +MsgZMQ::~MsgZMQ() +{ + if (me == 0) { + zmq_close(socket); + zmq_ctx_destroy(context); + } +} + +/* ---------------------------------------------------------------------- */ + +void MsgZMQ::init(char *port) +{ +#ifdef ZMQ_NO + error_all("constructor(): Library not built with ZMQ support"); +#endif + + if (me == 0) { + int n = strlen(port) + 8; + char *socket_name = new char[n]; + strcpy(socket_name,"tcp://"); + strcat(socket_name,port); + + if (client) { + context = zmq_ctx_new(); + socket = zmq_socket(context,ZMQ_REQ); + zmq_connect(socket,socket_name); + } else if (server) { + context = zmq_ctx_new(); + socket = zmq_socket(context,ZMQ_REP); + int rc = zmq_bind(socket,socket_name); + if (rc) error_one("constructor(): Server could not make socket connection"); + } + + delete [] socket_name; + } +} + +/* ---------------------------------------------------------------------- + client/server sockets (REQ/REP) must follow this protocol: + client sends request (REQ) which server receives + server sends response (REP) which client receives + every exchange is of this form, server cannot initiate a send + thus each ZMQ send below has a following ZMQ recv, except last one + if client calls send(), it will next call recv() + if server calls send(), it will next call recv() from its wait loop + in either case, recv() issues a ZMQ recv to match last ZMQ send here +------------------------------------------------------------------------- */ + +void MsgZMQ::send(int nheader, int *header, int nbuf, char *buf) +{ + lengths[0] = nheader; + lengths[1] = nbuf; + + if (me == 0) { + zmq_send(socket,lengths,2*sizeof(int),0); + zmq_recv(socket,NULL,0,0); + } + + if (me == 0) { + zmq_send(socket,header,nheader*sizeof(int),0); + zmq_recv(socket,NULL,0,0); + } + + if (me == 0) zmq_send(socket,buf,nbuf,0); +} + +/* ---------------------------------------------------------------------- + client/server sockets (REQ/REP) must follow this protocol: + client sends request (REQ) which server receives + server sends response (REP) which client receives + every exchange is of this form, server cannot initiate a send + thus each ZMQ recv below has a following ZMQ send, except last one + if client calls recv(), it will next call send() to ping server again, + if server calls recv(), it will next call send() to respond to client + in either case, send() issues a ZMQ send to match last ZMQ recv here +------------------------------------------------------------------------- */ + +void MsgZMQ::recv(int &maxheader, int *&header, int &maxbuf, char *&buf) +{ + if (me == 0) { + zmq_recv(socket,lengths,2*sizeof(int),0); + zmq_send(socket,NULL,0,0); + } + if (nprocs > 1) MPI_Bcast(lengths,2,MPI_INT,0,world); + + int nheader = lengths[0]; + int nbuf = lengths[1]; + allocate(nheader,maxheader,header,nbuf,maxbuf,buf); + + if (me == 0) { + zmq_recv(socket,header,nheader*sizeof(int),0); + zmq_send(socket,NULL,0,0); + } + if (nprocs > 1) MPI_Bcast(header,nheader,MPI_INT,0,world); + + if (me == 0) zmq_recv(socket,buf,nbuf,0); + if (nprocs > 1) MPI_Bcast(buf,nbuf,MPI_CHAR,0,world); +} diff --git a/lib/message/cslib/src/msg_zmq.h b/lib/message/cslib/src/msg_zmq.h new file mode 100644 index 0000000000..5f6dd7f26b --- /dev/null +++ b/lib/message/cslib/src/msg_zmq.h @@ -0,0 +1,38 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the GNU Lesser General Public + License (LGPL). + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef MSG_ZMQ_H +#define MSG_ZMQ_H + +#include "msg.h" + +namespace CSLIB_NS { + +class MsgZMQ : public Msg { + public: + MsgZMQ(int, const void *, MPI_Comm); + MsgZMQ(int, const void *); + ~MsgZMQ(); + void send(int, int *, int, char *); + void recv(int &, int *&, int &, char *&); + + private: + void *context,*socket; + + void init(char *); +}; + +} + +#endif diff --git a/src/MESSAGE/Install.sh b/src/MESSAGE/Install.sh new file mode 100644 index 0000000000..853dbddcdd --- /dev/null +++ b/src/MESSAGE/Install.sh @@ -0,0 +1,67 @@ +# Install/unInstall package files in LAMMPS +# mode = 0/1/2 for uninstall/install/update + +mode=$1 + +# arg1 = file, arg2 = file it depends on + +# enforce using portable C locale +LC_ALL=C +export LC_ALL + +action () { + if (test $mode = 0) then + rm -f ../$1 + elif (! cmp -s $1 ../$1) then + if (test -z "$2" || test -e ../$2) then + cp $1 .. + if (test $mode = 2) then + echo " updating src/$1" + fi + fi + elif (test -n "$2") then + if (test ! -e ../$2) then + rm -f ../$1 + fi + fi +} + +# all package files with no dependencies + +for file in *.cpp *.h; do + test -f ${file} && action $file +done + +# edit 2 Makefile.package files to include/exclude package info + +if (test $1 = 1) then + + if (test -e ../Makefile.package) then + sed -i -e 's/[^ \t]*message[^ \t]* //' ../Makefile.package + sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/message/cslib/src |' ../Makefile.package + sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/message/cslib/src |' ../Makefile.package + sed -i -e 's|^PKG_LIB =[ \t]*|&-lmessage |' ../Makefile.package + sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(message_SYSINC) |' ../Makefile.package + sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(message_SYSLIB) |' ../Makefile.package + sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(message_SYSPATH) |' ../Makefile.package + fi + + if (test -e ../Makefile.package.settings) then + sed -i -e '/^include.*message.*$/d' ../Makefile.package.settings + # multiline form needed for BSD sed on Macs + sed -i -e '4 i \ +include ..\/..\/lib\/message\/Makefile.lammps +' ../Makefile.package.settings + fi + +elif (test $1 = 0) then + + if (test -e ../Makefile.package) then + sed -i -e 's/[^ \t]*message[^ \t]* //' ../Makefile.package + fi + + if (test -e ../Makefile.package.settings) then + sed -i -e '/^include.*message.*$/d' ../Makefile.package.settings + fi + +fi diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp new file mode 100644 index 0000000000..20b56e031d --- /dev/null +++ b/src/MESSAGE/fix_client_md.cpp @@ -0,0 +1,270 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include "fix_client_md.h" +#include "cslib.h" +#include "atom.h" +#include "domain.h" +#include "memory.h" +#include "error.h" + +#include "comm.h" +#include "update.h" + +using namespace LAMMPS_NS; +using namespace CSLIB_NS; +using namespace FixConst; + +enum{SETUP=1,STEP}; +enum{UNITS=1,DIM,NATOMS,NTYPES,BOXLO,BOXHI,BOXTILT,TYPES,COORDS,CHARGE}; +enum{FORCES=1,ENERGY,VIRIAL}; + +/* ---------------------------------------------------------------------- */ + +FixClientMD::FixClientMD(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg) +{ + if (lmp->clientserver != 1) + error->all(FLERR,"Fix client/md requires LAMMPS be running as a client"); + if (!atom->map_style) error->all(FLERR,"Fix client/md requires atom map"); + + if (sizeof(tagint) != 4) + error->all(FLERR,"Fix client/md requires 4-byte atom IDs"); + + scalar_flag = 1; + global_freq = 1; + extscalar = 1; + virial_flag = 1; + thermo_virial = 1; + + maxatom = 0; + xpbc = NULL; +} + +/* ---------------------------------------------------------------------- */ + +FixClientMD::~FixClientMD() +{ + memory->destroy(xpbc); + + CSlib *cs = (CSlib *) lmp->cslib; + + // all-done message to server + + cs->send(-1,0); + + int nfield; + int *fieldID,*fieldtype,*fieldlen; + int msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + + // clean-up + + delete cs; + lmp->cslib = NULL; +} + +/* ---------------------------------------------------------------------- */ + +int FixClientMD::setmask() +{ + int mask = 0; + mask |= POST_FORCE; + mask |= MIN_POST_FORCE; + mask |= THERMO_ENERGY; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixClientMD::init() +{ + if (3*atom->natoms > INT_MAX) + error->all(FLERR,"Fix client/md max atoms is 1/3 of 2^31"); +} + +/* ---------------------------------------------------------------------- */ + +void FixClientMD::setup(int vflag) +{ + CSlib *cs = (CSlib *) lmp->cslib; + + // required fields: NATOMS, NTYPES, BOXLO, BOXHI, TYPES, COORDS + // optional fields: others in enum above + + int nfields = 6; + if (domain->dimension == 2) nfields++; + if (domain->triclinic) nfields++; + if (atom->q_flag) nfields++; + + cs->send(SETUP,nfields); + + cs->pack_int(NATOMS,atom->natoms); + cs->pack_int(NTYPES,atom->ntypes); + cs->pack(BOXLO,4,3,domain->boxlo); + cs->pack(BOXHI,4,3,domain->boxhi); + cs->pack_parallel(TYPES,1,atom->nlocal,atom->tag,1,atom->type); + pack_coords(); + cs->pack_parallel(COORDS,4,atom->nlocal,atom->tag,3,xpbc); + + if (domain->dimension == 2) cs->pack_int(DIM,domain->dimension); + if (domain->triclinic) { + double boxtilt[3]; + boxtilt[0] = domain->xy; + if (domain->dimension == 3) { + boxtilt[1] = domain->xz; + boxtilt[2] = domain->yz; + } else boxtilt[1] = boxtilt[2] = 0.0; + cs->pack(BOXTILT,4,3,boxtilt); + } + if (atom->q_flag) + cs->pack_parallel(CHARGE,4,atom->nlocal,atom->tag,1,atom->q); + + // receive initial forces, energy, virial + + receive_fev(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixClientMD::min_setup(int vflag) +{ + setup(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixClientMD::post_force(int vflag) +{ + int i,j,m; + + // energy and virial setup + + if (vflag) v_setup(vflag); + else evflag = 0; + + // required fields: COORDS + // optional fields: BOXLO, BOXHI, BOXTILT + + // send coords + + CSlib *cs = (CSlib *) lmp->cslib; + + int nfields = 1; + if (domain->box_change) nfields += 2; + if (domain->box_change && domain->triclinic) nfields++;; + + cs->send(STEP,nfields); + + pack_coords(); + cs->pack_parallel(COORDS,4,atom->nlocal,atom->tag,3,xpbc); + + if (domain->box_change) { + cs->pack(BOXLO,4,3,domain->boxlo); + cs->pack(BOXHI,4,3,domain->boxhi); + if (domain->triclinic) { + double boxtilt[3]; + boxtilt[0] = domain->xy; + if (domain->dimension == 3) { + boxtilt[1] = domain->xz; + boxtilt[2] = domain->yz; + } else boxtilt[1] = boxtilt[2] = 0.0; + cs->pack(BOXTILT,4,3,boxtilt); + } + } + + // recv forces, energy, virial + + receive_fev(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixClientMD::min_post_force(int vflag) +{ + post_force(vflag); +} + +/* ---------------------------------------------------------------------- + potential energy from QM code +------------------------------------------------------------------------- */ + +double FixClientMD::compute_scalar() +{ + return eng; +} + +/* ---------------------------------------------------------------------- + pack local coords into xpbc, enforcing PBC +------------------------------------------------------------------------- */ + +void FixClientMD::pack_coords() +{ + double **x = atom->x; + int nlocal = atom->nlocal; + + if (nlocal > maxatom) { + memory->destroy(xpbc); + maxatom = atom->nmax; + memory->create(xpbc,3*maxatom,"message:xpbc"); + } + + memcpy(xpbc,&x[0][0],3*nlocal*sizeof(double)); + + int j = 0; + for (int i = 0; i < nlocal; i++) { + domain->remap(&xpbc[j]); + j += 3; + } +} + +/* ---------------------------------------------------------------------- + receive message from server with forces, energy, virial +------------------------------------------------------------------------- */ + +void FixClientMD::receive_fev(int vflag) +{ + CSlib *cs = (CSlib *) lmp->cslib; + + int nfield; + int *fieldID,*fieldtype,*fieldlen; + + int msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + + double *forces = (double *) cs->unpack(FORCES); + double **f = atom->f; + int nlocal = atom->nlocal; + bigint natoms = atom->natoms; + int m; + + int j = 0; + for (tagint id = 1; id <= natoms; id++) { + m = atom->map(id); + if (m < 0 || m >= nlocal) j += 3; + else { + f[m][0] += forces[j++]; + f[m][1] += forces[j++]; + f[m][2] += forces[j++]; + } + } + + eng = cs->unpack_double(ENERGY); + + if (vflag) { + double *v = (double *) cs->unpack(VIRIAL); + double invnprocs = 1.0 / comm->nprocs; + for (int i = 0; i < 6; i++) + virial[i] = invnprocs*v[i]; + } +} diff --git a/src/MESSAGE/fix_client_md.h b/src/MESSAGE/fix_client_md.h new file mode 100644 index 0000000000..8e4ec0c6de --- /dev/null +++ b/src/MESSAGE/fix_client_md.h @@ -0,0 +1,62 @@ +/* -*- 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 FIX_CLASS + +FixStyle(client/md,FixClientMD) + +#else + +#ifndef LMP_FIX_CLIENT_MD_H +#define LMP_FIX_CLIENT_MD_H + +#include "fix.h" + +namespace LAMMPS_NS { + +class FixClientMD : public Fix { + public: + FixClientMD(class LAMMPS *, int, char **); + ~FixClientMD(); + int setmask(); + void init(); + void setup(int); + void min_setup(int); + void post_force(int); + void min_post_force(int); + double compute_scalar(); + + private: + void *cslib; + int maxatom; + double eng; + double *xpbc; + + void pack_coords(); + void receive_fev(int ); +}; + +} + +#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. + +*/ diff --git a/src/MESSAGE/message.cpp b/src/MESSAGE/message.cpp new file mode 100644 index 0000000000..67e0a49046 --- /dev/null +++ b/src/MESSAGE/message.cpp @@ -0,0 +1,90 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include "message.h" +#include "error.h" + +// CSlib interface + +#include "cslib.h" + +using namespace LAMMPS_NS; +using namespace CSLIB_NS; + +// customize by adding a new server protocol enum + +enum{MD,MC}; + +/* ---------------------------------------------------------------------- */ + +void Message::command(int narg, char **arg) +{ + if (narg < 3) error->all(FLERR,"Illegal message command"); + + int clientserver; + if (strcmp(arg[0],"client") == 0) clientserver = 1; + else if (strcmp(arg[0],"server") == 0) clientserver = 2; + else error->all(FLERR,"Illegal message command"); + lmp->clientserver = clientserver; + + // customize by adding a new server protocol + + int protocol; + if (strcmp(arg[1],"md") == 0) protocol = MD; + else if (strcmp(arg[1],"mc") == 0) protocol = MC; + else error->all(FLERR,"Unknown message protocol"); + + // instantiate CSlib with chosen communication mode + + if (strcmp(arg[2],"file") == 0 || strcmp(arg[2],"zmq") == 0 || + strcmp(arg[2],"mpi/two") == 0) { + if (narg != 4) error->all(FLERR,"Illegal message command"); + lmp->cslib = new CSlib(clientserver-1,arg[2],arg[3],&world); + + } else if (strcmp(arg[2],"mpi/one") == 0) { + if (narg != 3) error->all(FLERR,"Illegal message command"); + if (!lmp->cscomm) + error->all(FLERR,"Message mpi/one mode, but -mpi cmdline arg not used"); + lmp->cslib = new CSlib(clientserver-1,arg[2],&lmp->cscomm,&world); + + } else error->all(FLERR,"Illegal message command"); + + // perform initial handshake between client and server + // other code being coupled to must perform similar operation + // client sends protocol with msgID = 0 + // server matches it and replies + + CSlib *cs = (CSlib *) lmp->cslib; + + if (clientserver == 1) { + cs->send(0,1); + cs->pack_string(1,arg[1]); + + int nfield; + int *fieldID,*fieldtype,*fieldlen; + int msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + if (msgID != 0) error->one(FLERR,"Bad initial client/server handshake"); + + } else { + int nfield; + int *fieldID,*fieldtype,*fieldlen; + int msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + if (msgID != 0) error->one(FLERR,"Bad initial client/server handshake"); + char *pstr = cs->unpack_string(1); + if (strcmp(pstr,arg[1]) != 0) + error->one(FLERR,"Mismatch in client/server protocol"); + + cs->send(0,0); + } +} diff --git a/src/MESSAGE/message.h b/src/MESSAGE/message.h new file mode 100644 index 0000000000..c384a5a7b7 --- /dev/null +++ b/src/MESSAGE/message.h @@ -0,0 +1,40 @@ +/* -*- 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 COMMAND_CLASS + +CommandStyle(message,Message) + +#else + +#ifndef LMP_MESSAGE_H +#define LMP_MESSAGE_H + +#include "pointers.h" + +namespace LAMMPS_NS { + +class Message : protected Pointers { + public: + Message(class LAMMPS *lmp) : Pointers(lmp) {}; + void command(int, char **); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +*/ diff --git a/src/MESSAGE/server.cpp b/src/MESSAGE/server.cpp new file mode 100644 index 0000000000..cbf769be74 --- /dev/null +++ b/src/MESSAGE/server.cpp @@ -0,0 +1,50 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include "server.h" +#include "error.h" + +// customize by adding a new server protocol include and enum + +#include "server_md.h" +#include "server_mc.h" + +using namespace LAMMPS_NS; + +enum{MD,MC}; + +/* ---------------------------------------------------------------------- */ + +void Server::command(int narg, char **arg) +{ + if (narg != 1) error->all(FLERR,"Illegal server command"); + + if (lmp->clientserver != 2) + error->all(FLERR,"Message command not used to setup LAMMPS as a server"); + + // customize by adding a new server protocol + + int protocol; + if (strcmp(arg[0],"md") == 0) protocol = MD; + else if (strcmp(arg[0],"mc") == 0) protocol = MC; + else error->all(FLERR,"Unknown message protocol"); + + if (protocol == MD) { + ServerMD *server = new ServerMD(lmp); + server->loop(); + } else if (protocol == MC) { + ServerMC *server = new ServerMC(lmp); + server->loop(); + } +} diff --git a/src/MESSAGE/server.h b/src/MESSAGE/server.h new file mode 100644 index 0000000000..579f6ab6f1 --- /dev/null +++ b/src/MESSAGE/server.h @@ -0,0 +1,40 @@ +/* -*- 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 COMMAND_CLASS + +CommandStyle(server,Server) + +#else + +#ifndef LMP_SERVER_H +#define LMP_SERVER_H + +#include "pointers.h" + +namespace LAMMPS_NS { + +class Server : protected Pointers { + public: + Server(class LAMMPS *lmp) : Pointers(lmp) {}; + void command(int, char **); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +*/ diff --git a/src/MESSAGE/server_mc.cpp b/src/MESSAGE/server_mc.cpp new file mode 100644 index 0000000000..8a7344e86b --- /dev/null +++ b/src/MESSAGE/server_mc.cpp @@ -0,0 +1,148 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include "server_mc.h" +#include "atom.h" +#include "update.h" +#include "integrate.h" +#include "input.h" +#include "output.h" +#include "thermo.h" +#include "error.h" + +// CSlib interface + +#include "cslib.h" + +using namespace LAMMPS_NS; +using namespace CSLIB_NS; + +enum{NATOMS=1,EINIT,DISPLACE,ACCEPT,RUN}; + +/* ---------------------------------------------------------------------- */ + +ServerMC::ServerMC(LAMMPS *lmp) : Pointers(lmp) {} + +/* ---------------------------------------------------------------------- */ + +void ServerMC::loop() +{ + int i,j,m; + double xold[3],xnew[3]; + tagint atomid; + + CSlib *cs = (CSlib *) lmp->cslib; + + // require atom map + + if (!atom->map_style) error->all(FLERR,"Server mode requires atom map"); + + // initialize LAMMPS for dynamics + + input->one("run 0"); + + //update->whichflag = 1; + //lmp->init(); + + // loop on messages + // receive a message, process it, send return message if necessary + + int msgID,nfield; + int *fieldID,*fieldtype,*fieldlen; + + while (1) { + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + if (msgID < 0) break; + + if (msgID == NATOMS) { + + cs->send(msgID,1); + cs->pack_int(1,atom->natoms); + + } else if (msgID == EINIT) { + + double dval; + output->thermo->evaluate_keyword((char *) "pe",&dval); + + cs->send(msgID,2); + cs->pack_double(1,dval); + double *coords = NULL; + if (atom->nlocal) coords = &atom->x[0][0]; + cs->pack_parallel(2,4,atom->nlocal,atom->tag,3,coords); + + } else if (msgID == DISPLACE) { + + atomid = cs->unpack_int(1); + double *xnew = (double *) cs->unpack(2); + double **x = atom->x; + + m = atom->map(atomid); + if (m >= 0 && m < atom->nlocal) { + xold[0] = x[m][0]; + xold[1] = x[m][1]; + xold[2] = x[m][2]; + x[m][0] = xnew[0]; + x[m][1] = xnew[1]; + x[m][2] = xnew[2]; + } + + input->one("run 0"); + double dval; + output->thermo->evaluate_keyword((char *) "pe",&dval); + + cs->send(msgID,1); + cs->pack_double(1,dval); + + } else if (msgID == ACCEPT) { + + int accept = cs->unpack_int(1); + double **x = atom->x; + + if (!accept) { + m = atom->map(atomid); + if (m >= 0 && m < atom->nlocal) { + x[m][0] = xold[0]; + x[m][1] = xold[1]; + x[m][2] = xold[2]; + } + } + + cs->send(msgID,0); + + } else if (msgID == RUN) { + + int nsteps = cs->unpack_int(1); + + //input->one("run 100"); + + update->nsteps = nsteps; + update->firststep = update->ntimestep; + update->laststep = update->ntimestep + nsteps; + + update->integrate->setup(1); + update->integrate->run(nsteps); + + cs->send(msgID,0); + + } else error->all(FLERR,"Server received unrecognized message"); + } + + // final reply to client + + cs->send(0,0); + + // clean up + + delete cs; + lmp->cslib = NULL; +} diff --git a/src/MESSAGE/server_mc.h b/src/MESSAGE/server_mc.h new file mode 100644 index 0000000000..d0fb489429 --- /dev/null +++ b/src/MESSAGE/server_mc.h @@ -0,0 +1,29 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +#ifndef LMP_SERVER_MC_H +#define LMP_SERVER_MC_H + +#include "pointers.h" + +namespace LAMMPS_NS { + +class ServerMC : protected Pointers { + public: + ServerMC(class LAMMPS *); + void loop(); +}; + +} + +#endif diff --git a/src/MESSAGE/server_md.cpp b/src/MESSAGE/server_md.cpp new file mode 100644 index 0000000000..88fe1abe5f --- /dev/null +++ b/src/MESSAGE/server_md.cpp @@ -0,0 +1,333 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include "mpi.h" +#include +#include "server_md.h" +#include "atom.h" +#include "atom_vec.h" +#include "update.h" +#include "integrate.h" +#include "kspace.h" +#include "force.h" +#include "pair.h" +#include "neighbor.h" +#include "comm.h" +#include "domain.h" +#include "error.h" + +// CSlib interface + +#include "cslib.h" + +using namespace LAMMPS_NS; +using namespace CSLIB_NS; + +enum{SETUP=1,STEP}; +enum{UNITS=1,DIM,NATOMS,NTYPES,BOXLO,BOXHI,BOXTILT,TYPES,COORDS,CHARGE}; +enum{FORCES=1,ENERGY,VIRIAL}; + +// NOTE: features that could be added to this interface +// allow client to set periodicity vs shrink-wrap +// currently just assume server is same as client +// test that triclinic boxes actually work +// send new box size/shape every step, for NPT client +// unit check between client/server with unit conversion if needed +// option for client to send other per-atom quantities, e.g. rmass +// more precise request of energy/virial (global or peratom) by client +// maybe Verlet should have a single(eflag,vflag) method to more easily comply + +/* ---------------------------------------------------------------------- */ + +ServerMD::ServerMD(LAMMPS *lmp) : Pointers(lmp) +{ + if (domain->box_exist == 0) + error->all(FLERR,"Server command before simulation box is defined"); + + if (!atom->map_style) error->all(FLERR,"Server md mode requires atom map"); + if (atom->tag_enable == 0) error->all(FLERR,"Server md mode requires atom IDs"); + if (sizeof(tagint) != 4) error->all(FLERR,"Server md requires 4-byte atom IDs"); +} + +/* ---------------------------------------------------------------------- */ + +void ServerMD::loop() +{ + int i,j,m; + + // cs = instance of CSlib + + CSlib *cs = (CSlib *) lmp->cslib; + + // counters + + int forcecalls = 0; + int neighcalls = 0; + + // loop on messages + // receive a message, process it, send return message + + int msgID,nfield; + int *fieldID,*fieldtype,*fieldlen; + + while (1) { + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + if (msgID < 0) break; + + // SETUP call at beginning of each run + // required fields: NATOMS, NTYPES, BOXLO, BOXHI, TYPES, COORDS + // optional fields: others in enum above + + if (msgID == SETUP) { + + int natoms = -1; + int ntypes = -1; + double *boxlo = NULL; + double *boxhi = NULL; + double *boxtilt = NULL; + int *types = NULL; + double *coords = NULL; + double *charge = NULL; + + for (int ifield = 0; ifield < nfield; ifield++) { + if (fieldID[ifield] == UNITS) { + char *units = cs->unpack_string(UNITS); + if (strcmp(units,update->unit_style) != 0) + error->all(FLERR,"Server md units mis-match with client"); + } else if (fieldID[ifield] == DIM) { + int dim = cs->unpack_int(DIM); + if (dim != domain->dimension) + error->all(FLERR,"Server md dimension mis-match with client"); + } else if (fieldID[ifield] == NATOMS) { + natoms = cs->unpack_int(NATOMS); + if (3*natoms > INT_MAX) + error->all(FLERR,"Server md max atoms is 1/3 of 2^31"); + } else if (fieldID[ifield] == NTYPES) { + ntypes = cs->unpack_int(NTYPES); + if (ntypes != atom->ntypes) + error->all(FLERR,"Server md ntypes mis-match with client"); + } else if (fieldID[ifield] == BOXLO) { + boxlo = (double *) cs->unpack(BOXLO); + } else if (fieldID[ifield] == BOXHI) { + boxhi = (double *) cs->unpack(BOXHI); + } else if (fieldID[ifield] == BOXTILT) { + boxtilt = (double *) cs->unpack(BOXTILT); + } else if (fieldID[ifield] == TYPES) { + types = (int *) cs->unpack(TYPES); + } else if (fieldID[ifield] == COORDS) { + coords = (double *) cs->unpack(COORDS); + } else if (fieldID[ifield] == CHARGE) { + charge = (double *) cs->unpack(CHARGE); + } else error->all(FLERR,"Server md setup field unknown"); + } + + if (natoms < 0 || ntypes < 0 || !boxlo || !boxhi || !types || !coords) + error->all(FLERR,"Required server md setup field not received"); + + if (charge && atom->q_flag == 0) + error->all(FLERR,"Server md does not define atom attribute q"); + + // reset box, global and local + // reset proc decomposition + + box_change(boxlo,boxhi,boxtilt); + + domain->set_initial_box(); + domain->set_global_box(); + comm->set_proc_grid(); + domain->set_local_box(); + + // clear all atoms + + atom->nlocal = 0; + atom->nghost = 0; + + // add atoms that are in my sub-box + + int nlocal = 0; + for (int i = 0; i < natoms; i++) { + if (!domain->ownatom(i+1,&coords[3*i],NULL,0)) continue; + atom->avec->create_atom(types[i],&coords[3*i]); + atom->tag[nlocal] = i+1; + if (charge) atom->q[nlocal] = charge[i]; + nlocal++; + } + + int ntotal; + MPI_Allreduce(&atom->nlocal,&ntotal,1,MPI_INT,MPI_SUM,world); + if (ntotal != natoms) + error->all(FLERR,"Server md atom cound does not match client"); + + atom->map_init(); + atom->map_set(); + atom->natoms = natoms; + + // perform system setup() for dynamics + // also OK for minimization, since client runs minimizer + // return forces, energy, virial to client + + update->whichflag = 1; + lmp->init(); + update->integrate->setup_minimal(1); + neighcalls++; + forcecalls++; + + send_fev(msgID); + + // STEP call at each timestep of run or minimization + // required fields: COORDS + // optional fields: BOXLO, BOXHI, BOXTILT + + } else if (msgID == STEP) { + + double *boxlo = NULL; + double *boxhi = NULL; + double *boxtilt = NULL; + double *coords = NULL; + + for (int ifield = 0; ifield < nfield; ifield++) { + if (fieldID[ifield] == BOXLO) { + boxlo = (double *) cs->unpack(BOXLO); + } else if (fieldID[ifield] == BOXHI) { + boxhi = (double *) cs->unpack(BOXHI); + } else if (fieldID[ifield] == BOXTILT) { + boxtilt = (double *) cs->unpack(BOXTILT); + } else if (fieldID[ifield] == COORDS) { + coords = (double *) cs->unpack(COORDS); + } else error->all(FLERR,"Server md step field unknown"); + } + + if (!coords) + error->all(FLERR,"Required server md step field not received"); + + // change box size/shape, only if both box lo/hi received + + if (boxlo && boxhi) box_change(boxlo,boxhi,boxtilt); + + // assign received coords to owned atoms + // closest_image() insures xyz matches current server PBC + + double **x = atom->x; + int nlocal = atom->nlocal; + int nall = atom->natoms; + + j = 0; + for (tagint id = 1; id <= nall; id++) { + m = atom->map(id); + if (m < 0 || m >= nlocal) j += 3; + else { + domain->closest_image(x[m],&coords[j],x[m]); + j += 3; + } + } + + // if no need to reneighbor, just ghost comm + // else setup_minimal(1) which includes reneigh + // setup_minimal computes forces for 0 or 1 + + int nflag = neighbor->decide(); + if (nflag == 0) { + comm->forward_comm(); + update->integrate->setup_minimal(0); + } else { + update->integrate->setup_minimal(1); + neighcalls++; + } + + forcecalls++; + + send_fev(msgID); + + } else error->all(FLERR,"Server MD received unrecognized message"); + } + + // final reply to client + + cs->send(0,0); + + // stats + + if (comm->me == 0) { + if (screen) { + fprintf(screen,"Server MD calls = %d\n",forcecalls); + fprintf(screen,"Server MD reneighborings = %d\n",neighcalls); + } + if (logfile) { + fprintf(logfile,"Server MD calls = %d\n",forcecalls); + fprintf(logfile,"Server MD reneighborings %d\n",neighcalls); + } + } + + // clean up + + delete cs; + lmp->cslib = NULL; +} + +/* ---------------------------------------------------------------------- + box change due to received message +------------------------------------------------------------------------- */ + +void ServerMD::box_change(double *boxlo, double *boxhi, double *boxtilt) +{ + domain->boxlo[0] = boxlo[0]; + domain->boxhi[0] = boxhi[0]; + domain->boxlo[1] = boxlo[1]; + domain->boxhi[1] = boxhi[1]; + if (domain->dimension == 3) { + domain->boxlo[2] = boxlo[2]; + domain->boxhi[2] = boxhi[2]; + } + + if (boxtilt) { + if (!domain->triclinic) + error->all(FLERR,"Server md not setup for triclinic box"); + domain->xy = boxtilt[0]; + if (domain->dimension == 3) { + domain->xz = boxtilt[1]; + domain->yz = boxtilt[2]; + } + } +} + +/* ---------------------------------------------------------------------- + send return message with forces, energy, pressure tensor + pressure tensor should be just pair style virial +------------------------------------------------------------------------- */ + +void ServerMD::send_fev(int msgID) +{ + CSlib *cs = (CSlib *) lmp->cslib; + + cs->send(msgID,3); + + double *forces = NULL; + if (atom->nlocal) forces = &atom->f[0][0]; + cs->pack_parallel(FORCES,4,atom->nlocal,atom->tag,3,forces); + + double eng = force->pair->eng_vdwl + force->pair->eng_coul; + double engall; + MPI_Allreduce(&eng,&engall,1,MPI_DOUBLE,MPI_SUM,world); + cs->pack_double(ENERGY,engall); + + double v[6],vall[6]; + for (int i = 0; i < 6; i++) + v[i] = force->pair->virial[i]; + if (force->kspace) + for (int i = 0; i < 6; i++) + v[i] += force->kspace->virial[i]; + + MPI_Allreduce(&v,&vall,6,MPI_DOUBLE,MPI_SUM,world); + cs->pack(VIRIAL,4,6,vall); +} + diff --git a/src/MESSAGE/server_md.h b/src/MESSAGE/server_md.h new file mode 100644 index 0000000000..70134cbff9 --- /dev/null +++ b/src/MESSAGE/server_md.h @@ -0,0 +1,33 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +#ifndef LMP_SERVER_MD_H +#define LMP_SERVER_MD_H + +#include "pointers.h" + +namespace LAMMPS_NS { + +class ServerMD : protected Pointers { + public: + ServerMD(class LAMMPS *); + void loop(); + + private: + void box_change(double *, double *, double *); + void send_fev(int); +}; + +} + +#endif diff --git a/src/Makefile b/src/Makefile index 948d203cfe..b9cabfd67b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -53,7 +53,7 @@ endif # PACKEXT = subset that require an external (downloaded) library PACKAGE = asphere body class2 colloid compress coreshell dipole gpu \ - granular kim kokkos kspace latte manybody mc meam misc \ + granular kim kokkos kspace latte manybody mc meam message misc \ molecule mpiio mscg opt peri poems \ python qeq reax replica rigid shock snap spin srd voronoi @@ -65,14 +65,14 @@ PACKUSER = user-atc user-awpmd user-bocs user-cgdna user-cgsdk user-colvars \ user-quip user-reaxc user-smd user-smtbq user-sph user-tally \ user-uef user-vtk -PACKLIB = compress gpu kim kokkos latte meam mpiio mscg poems \ +PACKLIB = compress gpu kim kokkos latte meam message mpiio mscg poems \ python reax voronoi \ user-atc user-awpmd user-colvars user-h5md user-lb user-molfile \ user-netcdf user-qmmm user-quip user-smd user-vtk PACKSYS = compress mpiio python user-lb -PACKINT = gpu kokkos meam poems reax user-atc user-awpmd user-colvars +PACKINT = gpu kokkos meam message poems reax user-atc user-awpmd user-colvars PACKEXT = kim mscg voronoi \ user-h5md user-molfile user-netcdf user-qmmm user-quip \ diff --git a/src/atom.cpp b/src/atom.cpp index cf4d20a71e..798861364c 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -1533,7 +1533,8 @@ void Atom::set_mass(const char *file, int line, int narg, char **arg) } /* ---------------------------------------------------------------------- - set all masses as read in from restart file + set all masses + called from reading of restart file, also from ServerMD ------------------------------------------------------------------------- */ void Atom::set_mass(double *values) diff --git a/src/domain.cpp b/src/domain.cpp index 4c1d12018b..c00a716613 100644 --- a/src/domain.cpp +++ b/src/domain.cpp @@ -1208,13 +1208,9 @@ int Domain::closest_image(double *pos, int j) /* ---------------------------------------------------------------------- find and return Xj image = periodic image of Xj that is closest to Xi for triclinic, add/subtract tilt factors in other dims as needed - not currently used (Jan 2017): - used to be called by pair TIP4P styles but no longer, - due to use of other closest_image() method ------------------------------------------------------------------------- */ -void Domain::closest_image(const double * const xi, const double * const xj, - double * const xjimage) +void Domain::closest_image(double *xi, double *xj, double *xjimage) { double dx = xj[0] - xi[0]; double dy = xj[1] - xi[1]; diff --git a/src/domain.h b/src/domain.h index 5581f9a45f..ed24116cf4 100644 --- a/src/domain.h +++ b/src/domain.h @@ -116,8 +116,7 @@ class Domain : protected Pointers { void minimum_image_once(double *); int closest_image(int, int); int closest_image(double *, int); - void closest_image(const double * const, const double * const, - double * const); + void closest_image(double *, double *, double *); void remap(double *, imageint &); void remap(double *); void remap_near(double *, double *); diff --git a/src/lammps.cpp b/src/lammps.cpp index df6519f9f4..282250c642 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -47,8 +47,8 @@ #include "accelerator_omp.h" #include "timer.h" #include "python.h" -#include "memory.h" #include "version.h" +#include "memory.h" #include "error.h" #include "lmpinstalledpkgs.h" @@ -73,12 +73,50 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) output = NULL; python = NULL; + clientserver = 0; + cslib = NULL; + cscomm = 0; + screen = NULL; logfile = NULL; infile = NULL; initclock = MPI_Wtime(); + // check if -mpi is first arg + // if so, then 2 apps were launched with one mpirun command + // this means passed communicator (e.g. MPI_COMM_WORLD) is bigger than LAMMPS + // e.g. for client/server coupling with another code + // communicator needs to shrink to be just LAMMPS + // syntax: -mpi P1 means P1 procs for one app, P-P1 procs for second app + // LAMMPS could be either app, based on proc IDs + // do the following: + // perform an MPI_Comm_split() to create a new LAMMPS-only subcomm + // NOTE: assuming other app is doing the same thing, else will hang! + // re-create universe with subcomm + // store full two-app comm in cscomm + // cscomm is used by CSLIB package to exchange messages w/ other app + // eventually should extend to N > 2 apps launched with one mpirun command + + int iarg = 1; + if (narg-iarg >= 2 && (strcmp(arg[iarg],"-mpi") == 0 || + strcmp(arg[iarg],"-m") == 0)) { + int me,nprocs; + MPI_Comm_rank(communicator,&me); + MPI_Comm_size(communicator,&nprocs); + int p1 = atoi(arg[iarg+1]); + if (p1 <= 0 || p1 >= nprocs) + error->universe_all(FLERR,"Invalid command-line argument"); + int which = 0; + if (me >= p1) which = 1; + MPI_Comm subcomm; + MPI_Comm_split(communicator,which,me,&subcomm); + cscomm = communicator; + communicator = subcomm; + delete universe; + universe = new Universe(this,communicator); + } + // parse input switches int inflag = 0; @@ -107,59 +145,30 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) int *pfirst = NULL; int *plast = NULL; - int iarg = 1; + iarg = 1; while (iarg < narg) { - if (strcmp(arg[iarg],"-partition") == 0 || - strcmp(arg[iarg],"-p") == 0) { - universe->existflag = 1; + + if (strcmp(arg[iarg],"-echo") == 0 || + strcmp(arg[iarg],"-e") == 0) { if (iarg+2 > narg) error->universe_all(FLERR,"Invalid command-line argument"); - iarg++; - while (iarg < narg && arg[iarg][0] != '-') { - universe->add_world(arg[iarg]); - iarg++; - } + iarg += 2; + + } else if (strcmp(arg[iarg],"-help") == 0 || + strcmp(arg[iarg],"-h") == 0) { + if (iarg+1 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + helpflag = 1; + citeflag = 0; + iarg += 1; + } else if (strcmp(arg[iarg],"-in") == 0 || strcmp(arg[iarg],"-i") == 0) { if (iarg+2 > narg) error->universe_all(FLERR,"Invalid command-line argument"); inflag = iarg + 1; iarg += 2; - } else if (strcmp(arg[iarg],"-screen") == 0 || - strcmp(arg[iarg],"-sc") == 0) { - if (iarg+2 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - screenflag = iarg + 1; - iarg += 2; - } else if (strcmp(arg[iarg],"-log") == 0 || - strcmp(arg[iarg],"-l") == 0) { - if (iarg+2 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - logflag = iarg + 1; - iarg += 2; - } else if (strcmp(arg[iarg],"-var") == 0 || - strcmp(arg[iarg],"-v") == 0) { - if (iarg+3 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - iarg += 3; - while (iarg < narg && arg[iarg][0] != '-') iarg++; - } else if (strcmp(arg[iarg],"-echo") == 0 || - strcmp(arg[iarg],"-e") == 0) { - if (iarg+2 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - iarg += 2; - } else if (strcmp(arg[iarg],"-pscreen") == 0 || - strcmp(arg[iarg],"-ps") == 0) { - if (iarg+2 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - partscreenflag = iarg + 1; - iarg += 2; - } else if (strcmp(arg[iarg],"-plog") == 0 || - strcmp(arg[iarg],"-pl") == 0) { - if (iarg+2 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - partlogflag = iarg + 1; - iarg += 2; + } else if (strcmp(arg[iarg],"-kokkos") == 0 || strcmp(arg[iarg],"-k") == 0) { if (iarg+2 > narg) @@ -172,6 +181,26 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) kkfirst = iarg; while (iarg < narg && arg[iarg][0] != '-') iarg++; kklast = iarg; + + } else if (strcmp(arg[iarg],"-log") == 0 || + strcmp(arg[iarg],"-l") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + logflag = iarg + 1; + iarg += 2; + + } else if (strcmp(arg[iarg],"-mpi") == 0 || + strcmp(arg[iarg],"-m") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + if (iarg != 1) error->universe_all(FLERR,"Invalid command-line argument"); + iarg += 2; + + } else if (strcmp(arg[iarg],"-nocite") == 0 || + strcmp(arg[iarg],"-nc") == 0) { + citeflag = 0; + iarg++; + } else if (strcmp(arg[iarg],"-package") == 0 || strcmp(arg[iarg],"-pk") == 0) { if (iarg+2 > narg) @@ -188,6 +217,69 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) else break; } plast[npack++] = iarg; + + } else if (strcmp(arg[iarg],"-partition") == 0 || + strcmp(arg[iarg],"-p") == 0) { + universe->existflag = 1; + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + iarg++; + while (iarg < narg && arg[iarg][0] != '-') { + universe->add_world(arg[iarg]); + iarg++; + } + + } else if (strcmp(arg[iarg],"-plog") == 0 || + strcmp(arg[iarg],"-pl") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + partlogflag = iarg + 1; + iarg += 2; + + } else if (strcmp(arg[iarg],"-pscreen") == 0 || + strcmp(arg[iarg],"-ps") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + partscreenflag = iarg + 1; + iarg += 2; + + } else if (strcmp(arg[iarg],"-reorder") == 0 || + strcmp(arg[iarg],"-ro") == 0) { + if (iarg+3 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + if (universe->existflag) + error->universe_all(FLERR,"Cannot use -reorder after -partition"); + universe->reorder(arg[iarg+1],arg[iarg+2]); + iarg += 3; + + } else if (strcmp(arg[iarg],"-restart") == 0 || + strcmp(arg[iarg],"-r") == 0) { + if (iarg+3 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + restartflag = 1; + rfile = arg[iarg+1]; + dfile = arg[iarg+2]; + // check for restart remap flag + if (strcmp(dfile,"remap") == 0) { + if (iarg+4 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + restartremapflag = 1; + dfile = arg[iarg+3]; + iarg++; + } + iarg += 3; + // delimit any extra args for the write_data command + wdfirst = iarg; + while (iarg < narg && arg[iarg][0] != '-') iarg++; + wdlast = iarg; + + } else if (strcmp(arg[iarg],"-screen") == 0 || + strcmp(arg[iarg],"-sc") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + screenflag = iarg + 1; + iarg += 2; + } else if (strcmp(arg[iarg],"-suffix") == 0 || strcmp(arg[iarg],"-sf") == 0) { if (iarg+2 > narg) @@ -213,45 +305,14 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) strcpy(suffix,arg[iarg+1]); iarg += 2; } - } else if (strcmp(arg[iarg],"-reorder") == 0 || - strcmp(arg[iarg],"-ro") == 0) { + + } else if (strcmp(arg[iarg],"-var") == 0 || + strcmp(arg[iarg],"-v") == 0) { if (iarg+3 > narg) error->universe_all(FLERR,"Invalid command-line argument"); - if (universe->existflag) - error->universe_all(FLERR,"Cannot use -reorder after -partition"); - universe->reorder(arg[iarg+1],arg[iarg+2]); iarg += 3; - } else if (strcmp(arg[iarg],"-restart") == 0 || - strcmp(arg[iarg],"-r") == 0) { - if (iarg+3 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - restartflag = 1; - rfile = arg[iarg+1]; - dfile = arg[iarg+2]; - // check for restart remap flag - if (strcmp(dfile,"remap") == 0) { - if (iarg+4 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - restartremapflag = 1; - dfile = arg[iarg+3]; - iarg++; - } - iarg += 3; - // delimit any extra args for the write_data command - wdfirst = iarg; while (iarg < narg && arg[iarg][0] != '-') iarg++; - wdlast = iarg; - } else if (strcmp(arg[iarg],"-nocite") == 0 || - strcmp(arg[iarg],"-nc") == 0) { - citeflag = 0; - iarg++; - } else if (strcmp(arg[iarg],"-help") == 0 || - strcmp(arg[iarg],"-h") == 0) { - if (iarg+1 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - helpflag = 1; - citeflag = 0; - iarg += 1; + } else error->universe_all(FLERR,"Invalid command-line argument"); } @@ -595,6 +656,14 @@ LAMMPS::~LAMMPS() delete [] suffix; delete [] suffix2; + // free the MPI comm created by -mpi command-line arg + // it was passed to universe as if origianl universe world + // may have been split later by partitions, universe will free the splits + // free a copy of uorig here, so check in universe destructor will still work + + MPI_Comm copy = universe->uorig; + if (cscomm) MPI_Comm_free(©); + delete input; delete universe; delete error; diff --git a/src/lammps.h b/src/lammps.h index b2c8673471..5ccef3026e 100644 --- a/src/lammps.h +++ b/src/lammps.h @@ -51,6 +51,10 @@ class LAMMPS { int num_package; // number of cmdline package commands int cite_enable; // 1 if generating log.cite, 0 if disabled + int clientserver; // 0 = neither, 1 = client, 2 = server + void *cslib; // client/server messaging via CSlib + MPI_Comm cscomm; // MPI comm for client+server in mpi/one mode + class KokkosLMP *kokkos; // KOKKOS accelerator class class AtomKokkos *atomKK; // KOKKOS version of Atom class class MemoryKokkos *memoryKK; // KOKKOS version of Memory class From ef3fd1374a1ddc557c78abd8631415234d874db4 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 23 Jul 2018 16:11:18 -0600 Subject: [PATCH 315/675] added kspace_style for internal fmm tuning (for inhomogenous systems) and fixed the call to fcs_set_tolerance --- src/USER-SCAFACOS/scafacos.cpp | 45 ++++++++++++++++++++++++++++------ src/USER-SCAFACOS/scafacos.h | 2 ++ 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index b9390aea47..352a298b86 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -49,7 +49,10 @@ Scafacos::Scafacos(LAMMPS *lmp, int narg, char **arg) : KSpace(lmp, narg, arg) // choose the correct default tolerance type for chosen method // TODO: needs to be expanded for all solvers, currently mainly used ones if (strcmp(method,"fmm") == 0) + { tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; + fmm_tuning_flag = 0; + } else if (strcmp(method,"p3m") == 0 || strcmp(method,"p2nfft") == 0) tolerance_type = FCS_TOLERANCE_TYPE_FIELD; @@ -81,6 +84,8 @@ Scafacos::~Scafacos() void Scafacos::init() { // error checks + if (screen && me == 0) fprintf(screen,"Setting up ScaFaCoS with solver %s ...\n",method); + if (logfile && me == 0) fprintf(logfile,"Setting up ScaFaCoS with solver %s ...\n",method); if (!atom->q_flag) error->all(FLERR,"Kspace style requires atom attribute q"); @@ -106,18 +111,31 @@ void Scafacos::init() setup_handle(); - result = fcs_set_tolerance(fcs,tolerance_type,tolerance); - check_result(result); - + // using other methods lead to termination of the program, + // since they have no tolerance tuning methods + if ( strcmp(method,"fmm") == 0 || + strcmp(method,"p3m") == 0 || + strcmp(method,"p2nfft") == 0 || + strcmp(method,"ewald") == 0) + { + result = fcs_set_tolerance(fcs,tolerance_type,tolerance); + check_result(result); + } if (me == 0) fcs_print_parameters(fcs); double **x = atom->x; double *q = atom->q; int nlocal = atom->nlocal; - result = fcs_tune(fcs,nlocal,&x[0][0],q); - } + if (strcmp(method,"fmm") == 0) + { + if (fmm_tuning_flag == 1) + fcs_fmm_set_internal_tuning(fcs,fmm_tuning_flag); + } + result = fcs_tune(fcs,nlocal,&x[0][0],q); + check_result(result); + } initialized = 1; } @@ -197,7 +215,7 @@ int Scafacos::modify_param(int narg, char **arg) if (strcmp(arg[0],"scafacos") != 0) return 0; if (strcmp(arg[1],"tolerance") == 0) { - if (narg < 2) error->all(FLERR,"Illegal kspace_modify command"); + if (narg < 3) error->all(FLERR,"Illegal kspace_modify command (tolerance)"); if (strcmp(arg[2],"energy") == 0) tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; else if (strcmp(arg[2],"energy_rel") == 0) @@ -210,7 +228,20 @@ int Scafacos::modify_param(int narg, char **arg) tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL; else if (strcmp(arg[2],"potential_rel") == 0) tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL_REL; - else error->all(FLERR,"Illegal kspace_modify command"); + else error->all(FLERR,"Illegal kspace_modify command (tolerance argument)"); + return 3; + } + + // keyword = fmm_inhomogen_tuning + // value1 = 0, 1 + // 0 -> homogenous system (default) + // 1 -> inhomogenous system (more internal tuning is provided (sequential!)) + if (strcmp(arg[1],"fmm_tuning") == 0) + { + if (screen && me == 0) fprintf(screen,"ScaFaCoS setting fmm inhomogen tuning ...%d\n", narg); + if (logfile && me == 0) fprintf(logfile,"ScaFaCoS setting fmm inhomogen tuning ...%d\n", narg); + if (narg < 3) error->all(FLERR,"Illegal kspace_modify command (fmm_tuning)"); + fmm_tuning_flag = atoi(arg[2]); return 3; } diff --git a/src/USER-SCAFACOS/scafacos.h b/src/USER-SCAFACOS/scafacos.h index 3e549cf64e..857036bb7a 100644 --- a/src/USER-SCAFACOS/scafacos.h +++ b/src/USER-SCAFACOS/scafacos.h @@ -44,6 +44,8 @@ class Scafacos : public KSpace { int tolerance_type; int initialized,maxatom; + int fmm_tuning_flag; + FCS fcs; // ScaFaCoS handle FCSResult result; // result for each ScaFaCoS call From a90e019ec7d9315fc359cb5eff01ac941e007921 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 23 Jul 2018 16:13:15 -0600 Subject: [PATCH 316/675] updated ScaFaCoS examples, added open-boundary Hammersley distributed sphere and charged cloud near a charged wall examples --- examples/USER/scafacos/data.NaCl | 50 +- examples/USER/scafacos/data.cloud_wall | 316 +++++ .../USER/scafacos/data.hammersley_shphere | 1016 +++++++++++++++++ examples/USER/scafacos/in.scafacos.cw.ewald | 31 + examples/USER/scafacos/in.scafacos.cw.fmm | 37 + examples/USER/scafacos/in.scafacos.cw.p2nfft | 31 + examples/USER/scafacos/in.scafacos.ewald | 37 + examples/USER/scafacos/in.scafacos.fmm | 37 + .../USER/scafacos/in.scafacos.hsph.direct | 34 + examples/USER/scafacos/in.scafacos.hsph.fmm | 37 + .../USER/scafacos/in.scafacos.hsph.p2nfft | 36 + examples/USER/scafacos/in.scafacos.p2nfft | 37 + .../log.23Jul18.scafacos.cw.g++.ewald.16 | 92 ++ .../log.23Jul18.scafacos.cw.g++.ewald.8 | 92 ++ .../log.23Jul18.scafacos.cw.g++.fmm.1 | 99 ++ .../log.23Jul18.scafacos.cw.g++.fmm.16 | 99 ++ .../log.23Jul18.scafacos.cw.g++.fmm.2 | 99 ++ .../log.23Jul18.scafacos.cw.g++.fmm.4 | 99 ++ .../log.23Jul18.scafacos.cw.g++.fmm.8 | 99 ++ .../log.23Jul18.scafacos.cw.g++.p2nfft.1 | 92 ++ .../log.23Jul18.scafacos.cw.g++.p2nfft.16 | 92 ++ .../log.23Jul18.scafacos.cw.g++.p2nfft.2 | 92 ++ .../log.23Jul18.scafacos.cw.g++.p2nfft.4 | 92 ++ .../log.23Jul18.scafacos.cw.g++.p2nfft.8 | 92 ++ .../log.23Jul18.scafacos.g++.ewald.16 | 102 ++ .../scafacos/log.23Jul18.scafacos.g++.ewald.8 | 102 ++ .../scafacos/log.23Jul18.scafacos.g++.fmm.1 | 102 ++ .../scafacos/log.23Jul18.scafacos.g++.fmm.16 | 102 ++ .../scafacos/log.23Jul18.scafacos.g++.fmm.2 | 102 ++ .../scafacos/log.23Jul18.scafacos.g++.fmm.4 | 102 ++ .../scafacos/log.23Jul18.scafacos.g++.fmm.8 | 102 ++ .../log.23Jul18.scafacos.g++.p2nfft.1 | 102 ++ .../log.23Jul18.scafacos.g++.p2nfft.16 | 102 ++ .../log.23Jul18.scafacos.g++.p2nfft.2 | 102 ++ .../log.23Jul18.scafacos.g++.p2nfft.4 | 102 ++ .../log.23Jul18.scafacos.g++.p2nfft.8 | 102 ++ .../log.23Jul18.scafacos.hsph.g++.direct.1 | 105 ++ .../log.23Jul18.scafacos.hsph.g++.direct.2 | 105 ++ .../log.23Jul18.scafacos.hsph.g++.direct.4 | 105 ++ .../log.23Jul18.scafacos.hsph.g++.direct.8 | 105 ++ .../log.23Jul18.scafacos.hsph.g++.fmm.1 | 109 ++ .../log.23Jul18.scafacos.hsph.g++.fmm.2 | 109 ++ .../log.23Jul18.scafacos.hsph.g++.fmm.4 | 109 ++ .../log.23Jul18.scafacos.hsph.g++.fmm.8 | 109 ++ .../log.23Jul18.scafacos.hsph.g++.p2nfft.1 | 107 ++ .../log.23Jul18.scafacos.hsph.g++.p2nfft.2 | 107 ++ .../log.23Jul18.scafacos.hsph.g++.p2nfft.4 | 107 ++ .../log.23Jul18.scafacos.hsph.g++.p2nfft.8 | 107 ++ 48 files changed, 5321 insertions(+), 25 deletions(-) create mode 100644 examples/USER/scafacos/data.cloud_wall create mode 100644 examples/USER/scafacos/data.hammersley_shphere create mode 100644 examples/USER/scafacos/in.scafacos.cw.ewald create mode 100644 examples/USER/scafacos/in.scafacos.cw.fmm create mode 100644 examples/USER/scafacos/in.scafacos.cw.p2nfft create mode 100644 examples/USER/scafacos/in.scafacos.ewald create mode 100644 examples/USER/scafacos/in.scafacos.fmm create mode 100644 examples/USER/scafacos/in.scafacos.hsph.direct create mode 100644 examples/USER/scafacos/in.scafacos.hsph.fmm create mode 100644 examples/USER/scafacos/in.scafacos.hsph.p2nfft create mode 100644 examples/USER/scafacos/in.scafacos.p2nfft create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.16 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.8 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.1 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.16 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.2 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.4 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.8 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.1 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.16 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.2 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.4 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.8 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.16 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.8 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.1 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.16 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.2 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.4 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.8 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.1 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.16 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.2 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.4 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.8 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.1 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.2 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.4 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.8 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.1 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.2 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.4 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.8 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.1 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.2 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.4 create mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.8 diff --git a/examples/USER/scafacos/data.NaCl b/examples/USER/scafacos/data.NaCl index 2d804dec95..23807e23d5 100644 --- a/examples/USER/scafacos/data.NaCl +++ b/examples/USER/scafacos/data.NaCl @@ -1,25 +1,25 @@ - LAMMPS Description - - 8 atoms - - 2 atom types - - 0.0000000000000000 2.000000000000000 xlo xhi - 0.0000000000000000 2.000000000000000 ylo yhi - 0.0000000000000000 2.000000000000000 zlo zhi - - Masses - - 1 22.98976928 - 2 35.45 - - Atoms - - 1 1 1.0 0.0 0.0 0.0 - 2 2 -1.0 1.0 0.0 0.0 - 3 2 -1.0 0.0 1.0 0.0 - 4 1 1.0 1.0 1.0 0.0 - 5 2 -1.0 0.0 0.0 1.0 - 6 1 1.0 1.0 0.0 1.0 - 7 1 1.0 0.0 1.0 1.0 - 8 2 -1.0 1.0 1.0 1.0 +LAMMPS Description + +8 atoms + +2 atom types + +0 2 xlo xhi +0 2 ylo yhi +0 2 zlo zhi + +Masses + +1 22.98976928 +2 35.45 + +Atoms + +1 2 1 0 0 0 +2 1 -1 1 0 0 +3 1 -1 0 1 0 +4 2 1 1 1 0 +5 1 -1 0 0 1 +6 2 1 1 0 1 +7 2 1 0 1 1 +8 1 -1 1 1 1 diff --git a/examples/USER/scafacos/data.cloud_wall b/examples/USER/scafacos/data.cloud_wall new file mode 100644 index 0000000000..1592ec666a --- /dev/null +++ b/examples/USER/scafacos/data.cloud_wall @@ -0,0 +1,316 @@ +LAMMPS Description + +300 atoms + +1 atom types + +0 10 xlo xhi +0 10 ylo yhi +0 10 zlo zhi + +Masses + +1 1.0 + +Atoms + +1 1 1 0 0 4.5 +2 1 -1 0 0 5.5 +3 1 1 0 1 4.5 +4 1 -1 0 1 5.5 +5 1 1 0 2 4.5 +6 1 -1 0 2 5.5 +7 1 1 0 3 4.5 +8 1 -1 0 3 5.5 +9 1 1 0 4 4.5 +10 1 -1 0 4 5.5 +11 1 1 0 5 4.5 +12 1 -1 0 5 5.5 +13 1 1 0 6 4.5 +14 1 -1 0 6 5.5 +15 1 1 0 7 4.5 +16 1 -1 0 7 5.5 +17 1 1 0 8 4.5 +18 1 -1 0 8 5.5 +19 1 1 0 9 4.5 +20 1 -1 0 9 5.5 +21 1 1 1 0 4.5 +22 1 -1 1 0 5.5 +23 1 1 1 1 4.5 +24 1 -1 1 1 5.5 +25 1 1 1 2 4.5 +26 1 -1 1 2 5.5 +27 1 1 1 3 4.5 +28 1 -1 1 3 5.5 +29 1 1 1 4 4.5 +30 1 -1 1 4 5.5 +31 1 1 1 5 4.5 +32 1 -1 1 5 5.5 +33 1 1 1 6 4.5 +34 1 -1 1 6 5.5 +35 1 1 1 7 4.5 +36 1 -1 1 7 5.5 +37 1 1 1 8 4.5 +38 1 -1 1 8 5.5 +39 1 1 1 9 4.5 +40 1 -1 1 9 5.5 +41 1 1 2 0 4.5 +42 1 -1 2 0 5.5 +43 1 1 2 1 4.5 +44 1 -1 2 1 5.5 +45 1 1 2 2 4.5 +46 1 -1 2 2 5.5 +47 1 1 2 3 4.5 +48 1 -1 2 3 5.5 +49 1 1 2 4 4.5 +50 1 -1 2 4 5.5 +51 1 1 2 5 4.5 +52 1 -1 2 5 5.5 +53 1 1 2 6 4.5 +54 1 -1 2 6 5.5 +55 1 1 2 7 4.5 +56 1 -1 2 7 5.5 +57 1 1 2 8 4.5 +58 1 -1 2 8 5.5 +59 1 1 2 9 4.5 +60 1 -1 2 9 5.5 +61 1 1 3 0 4.5 +62 1 -1 3 0 5.5 +63 1 1 3 1 4.5 +64 1 -1 3 1 5.5 +65 1 1 3 2 4.5 +66 1 -1 3 2 5.5 +67 1 1 3 3 4.5 +68 1 -1 3 3 5.5 +69 1 1 3 4 4.5 +70 1 -1 3 4 5.5 +71 1 1 3 5 4.5 +72 1 -1 3 5 5.5 +73 1 1 3 6 4.5 +74 1 -1 3 6 5.5 +75 1 1 3 7 4.5 +76 1 -1 3 7 5.5 +77 1 1 3 8 4.5 +78 1 -1 3 8 5.5 +79 1 1 3 9 4.5 +80 1 -1 3 9 5.5 +81 1 1 4 0 4.5 +82 1 -1 4 0 5.5 +83 1 1 4 1 4.5 +84 1 -1 4 1 5.5 +85 1 1 4 2 4.5 +86 1 -1 4 2 5.5 +87 1 1 4 3 4.5 +88 1 -1 4 3 5.5 +89 1 1 4 4 4.5 +90 1 -1 4 4 5.5 +91 1 1 4 5 4.5 +92 1 -1 4 5 5.5 +93 1 1 4 6 4.5 +94 1 -1 4 6 5.5 +95 1 1 4 7 4.5 +96 1 -1 4 7 5.5 +97 1 1 4 8 4.5 +98 1 -1 4 8 5.5 +99 1 1 4 9 4.5 +100 1 -1 4 9 5.5 +101 1 1 5 0 4.5 +102 1 -1 5 0 5.5 +103 1 1 5 1 4.5 +104 1 -1 5 1 5.5 +105 1 1 5 2 4.5 +106 1 -1 5 2 5.5 +107 1 1 5 3 4.5 +108 1 -1 5 3 5.5 +109 1 1 5 4 4.5 +110 1 -1 5 4 5.5 +111 1 1 5 5 4.5 +112 1 -1 5 5 5.5 +113 1 1 5 6 4.5 +114 1 -1 5 6 5.5 +115 1 1 5 7 4.5 +116 1 -1 5 7 5.5 +117 1 1 5 8 4.5 +118 1 -1 5 8 5.5 +119 1 1 5 9 4.5 +120 1 -1 5 9 5.5 +121 1 1 6 0 4.5 +122 1 -1 6 0 5.5 +123 1 1 6 1 4.5 +124 1 -1 6 1 5.5 +125 1 1 6 2 4.5 +126 1 -1 6 2 5.5 +127 1 1 6 3 4.5 +128 1 -1 6 3 5.5 +129 1 1 6 4 4.5 +130 1 -1 6 4 5.5 +131 1 1 6 5 4.5 +132 1 -1 6 5 5.5 +133 1 1 6 6 4.5 +134 1 -1 6 6 5.5 +135 1 1 6 7 4.5 +136 1 -1 6 7 5.5 +137 1 1 6 8 4.5 +138 1 -1 6 8 5.5 +139 1 1 6 9 4.5 +140 1 -1 6 9 5.5 +141 1 1 7 0 4.5 +142 1 -1 7 0 5.5 +143 1 1 7 1 4.5 +144 1 -1 7 1 5.5 +145 1 1 7 2 4.5 +146 1 -1 7 2 5.5 +147 1 1 7 3 4.5 +148 1 -1 7 3 5.5 +149 1 1 7 4 4.5 +150 1 -1 7 4 5.5 +151 1 1 7 5 4.5 +152 1 -1 7 5 5.5 +153 1 1 7 6 4.5 +154 1 -1 7 6 5.5 +155 1 1 7 7 4.5 +156 1 -1 7 7 5.5 +157 1 1 7 8 4.5 +158 1 -1 7 8 5.5 +159 1 1 7 9 4.5 +160 1 -1 7 9 5.5 +161 1 1 8 0 4.5 +162 1 -1 8 0 5.5 +163 1 1 8 1 4.5 +164 1 -1 8 1 5.5 +165 1 1 8 2 4.5 +166 1 -1 8 2 5.5 +167 1 1 8 3 4.5 +168 1 -1 8 3 5.5 +169 1 1 8 4 4.5 +170 1 -1 8 4 5.5 +171 1 1 8 5 4.5 +172 1 -1 8 5 5.5 +173 1 1 8 6 4.5 +174 1 -1 8 6 5.5 +175 1 1 8 7 4.5 +176 1 -1 8 7 5.5 +177 1 1 8 8 4.5 +178 1 -1 8 8 5.5 +179 1 1 8 9 4.5 +180 1 -1 8 9 5.5 +181 1 1 9 0 4.5 +182 1 -1 9 0 5.5 +183 1 1 9 1 4.5 +184 1 -1 9 1 5.5 +185 1 1 9 2 4.5 +186 1 -1 9 2 5.5 +187 1 1 9 3 4.5 +188 1 -1 9 3 5.5 +189 1 1 9 4 4.5 +190 1 -1 9 4 5.5 +191 1 1 9 5 4.5 +192 1 -1 9 5 5.5 +193 1 1 9 6 4.5 +194 1 -1 9 6 5.5 +195 1 1 9 7 4.5 +196 1 -1 9 7 5.5 +197 1 1 9 8 4.5 +198 1 -1 9 8 5.5 +199 1 1 9 9 4.5 +200 1 -1 9 9 5.5 +201 1 -1 9.28495 2.13839 8.88019 +202 1 1 4.99281 4.17459 9.83905 +203 1 -1 4.91265 6.89408 2.39989 +204 1 1 4.43647 3.68895 8.86086 +205 1 -1 0.659075 7.07271 0.179131 +206 1 1 7.791 3.40021 0.969703 +207 1 -1 1.18008 3.63874 7.28751 +208 1 1 8.51522 5.24681 6.37702 +209 1 -1 4.24226 9.60726 3.16084 +210 1 1 8.43745 8.23344 9.2883 +211 1 -1 8.48509 8.84988 9.43407 +212 1 1 2.81127 8.9903 0.00909212 +213 1 -1 6.38283 6.20858 9.92482 +214 1 1 4.59962 5.7925 7.52571 +215 1 -1 7.03797 7.09336 8.15957 +216 1 1 6.68103 8.04734 7.95661 +217 1 -1 2.531 8.47145 1.6209 +218 1 1 6.71915 8.79876 9.59581 +219 1 -1 4.96758 0.0381298 0.827927 +220 1 1 9.22955 1.04572 0.84722 +221 1 -1 2.3224 2.57084 8.07306 +222 1 1 1.94283 3.17375 3.92051 +223 1 -1 2.34735 1.91295 1.29127 +224 1 1 3.33928 3.30688 0.892089 +225 1 -1 1.19738 4.40402 8.70835 +226 1 1 7.44541 4.94803 8.28211 +227 1 -1 5.93272 1.18886 1.56518 +228 1 1 8.50709 8.70343 1.24939 +229 1 -1 5.54016 3.38865 8.61698 +230 1 1 9.47644 0.573085 3.05941 +231 1 -1 9.39695 4.46542 1.84205 +232 1 1 3.52268 5.60212 0.333999 +233 1 -1 3.69009 9.40954 6.10446 +234 1 1 3.96836 6.15307 7.57803 +235 1 -1 2.02535 0.0418407 3.21642 +236 1 1 2.97488 8.79711 8.33242 +237 1 -1 2.4122 1.79458 3.04173 +238 1 1 9.72355 3.67773 1.52435 +239 1 -1 8.55216 6.1623 1.53201 +240 1 1 4.98973 2.41459 9.84381 +241 1 -1 8.8901 5.9006 1.97649 +242 1 1 9.09932 2.23783 1.42554 +243 1 -1 6.70722 8.21769 1.21953 +244 1 1 6.83768 0.84508 3.25165 +245 1 -1 0.222115 3.07945 0.51825 +246 1 1 0.503918 9.34932 6.25278 +247 1 -1 0.803159 8.7017 9.46211 +248 1 1 4.88636 5.00147 9.65639 +249 1 -1 1.62258 0.767285 9.63596 +250 1 1 2.70143 3.01111 7.74859 +251 1 -1 4.41574 5.31824 0.538729 +252 1 1 1.64724 5.18097 3.59205 +253 1 -1 2.33672 3.21408 6.6081 +254 1 1 7.46603 1.53668 9.09844 +255 1 -1 3.61269 8.44556 6.99789 +256 1 1 6.95465 6.83045 9.31002 +257 1 -1 5.91831 9.01549 3.4626 +258 1 1 6.56503 8.42229 3.27105 +259 1 -1 4.50822 9.59753 3.47025 +260 1 1 4.17357 5.27384 7.34774 +261 1 -1 7.70968 6.5292 3.54779 +262 1 1 4.7977 4.94239 6.24947 +263 1 -1 9.24016 9.36994 6.71263 +264 1 1 7.36888 8.75922 0.52403 +265 1 -1 9.92895 5.87551 6.21586 +266 1 1 3.86308 6.71601 9.69083 +267 1 -1 8.90048 0.298719 0.573852 +268 1 1 6.58753 6.67768 1.83984 +269 1 -1 8.672 0.367497 2.21864 +270 1 1 3.44519 3.30359 6.52249 +271 1 -1 7.24717 3.25113 3.41567 +272 1 1 9.53447 5.81336 1.79208 +273 1 -1 1.01722 6.42534 0.715 +274 1 1 3.58808 4.92392 7.00979 +275 1 -1 1.21399 3.56951 6.34505 +276 1 1 3.50336 0.942722 2.76989 +277 1 -1 9.45475 6.06299 0.659023 +278 1 1 3.44464 4.03075 6.20179 +279 1 -1 0.949331 5.40183 8.51385 +280 1 1 6.41118 2.62135 2.31132 +281 1 -1 3.58837 9.78355 7.04966 +282 1 1 9.2267 3.19593 2.10384 +283 1 -1 1.83092 2.35627 3.93061 +284 1 1 4.97203 4.92287 1.8049 +285 1 -1 7.4097 4.757 8.604 +286 1 1 0.746575 7.69038 0.89134 +287 1 -1 8.54862 6.59135 2.18888 +288 1 1 2.18747 4.82994 0.761718 +289 1 -1 5.71622 2.51116 6.85522 +290 1 1 6.95554 1.83187 8.31157 +291 1 -1 7.31818 6.60081 2.63208 +292 1 1 0.744495 2.73429 9.86022 +293 1 -1 5.1573 8.70962 2.53418 +294 1 1 2.40385 1.54057 1.9297 +295 1 -1 3.42609 2.25856 2.28437 +296 1 1 6.66173 3.70851 9.70052 +297 1 -1 7.88966 1.4343 8.91223 +298 1 1 3.91118 5.22253 6.29642 +299 1 -1 9.17618 3.98313 9.82158 +300 1 1 4.95424 5.93521 1.3652 diff --git a/examples/USER/scafacos/data.hammersley_shphere b/examples/USER/scafacos/data.hammersley_shphere new file mode 100644 index 0000000000..e0d067adfb --- /dev/null +++ b/examples/USER/scafacos/data.hammersley_shphere @@ -0,0 +1,1016 @@ +LAMMPS Description + +1000 atoms + +1 atom types + +-50.5 51.5 xlo xhi +-50.5 51.5 ylo yhi +-50.5 51.5 zlo zhi + +Masses + +1 1.0 + +Atoms + +1 1 1 0.5 0.5 0 +2 1 1 0.468393 0.5 0.001 +3 1 1 0.5 0.544677 0.002 +4 1 -1 0.5 0.44531 0.003 +5 1 -1 0.544632 0.544632 0.004 +6 1 1 0.450125 0.450125 0.005 +7 1 1 0.445392 0.554608 0.006 +8 1 -1 0.558953 0.441047 0.007 +9 1 -1 0.582303 0.534091 0.008 +10 1 -1 0.412748 0.463859 0.009 +11 1 -1 0.461923 0.591925 0.01 +12 1 -1 0.539915 0.403637 0.011 +13 1 -1 0.541669 0.600597 0.012 +14 1 -1 0.456652 0.395348 0.013 +15 1 -1 0.391453 0.544962 0.014 +16 1 1 0.6123 0.453484 0.015 +17 1 1 0.623064 0.524479 0.016 +18 1 1 0.373213 0.47478 0.017 +19 1 1 0.474063 0.630397 0.018 +20 1 1 0.526635 0.366099 0.019 +21 1 1 0.57778 0.616406 0.02 +22 1 -1 0.42034 0.38078 0.021 +23 1 1 0.378037 0.581493 0.022 +24 1 -1 0.62464 0.416718 0.023 +25 1 1 0.627256 0.585029 0.024 +26 1 1 0.370187 0.413262 0.025 +27 1 1 0.411589 0.632316 0.026 +28 1 -1 0.590049 0.365233 0.027 +29 1 -1 0.532185 0.661803 0.028 +30 1 -1 0.467263 0.335418 0.029 +31 1 1 0.332691 0.53328 0.03 +32 1 -1 0.669987 0.466187 0.031 +33 1 -1 0.675153 0.517251 0.032 +34 1 1 0.322224 0.482491 0.033 +35 1 -1 0.482236 0.680356 0.034 +36 1 1 0.518014 0.317105 0.035 +37 1 -1 0.618181 0.644004 0.036 +38 1 1 0.380251 0.354085 0.037 +39 1 -1 0.352203 0.621294 0.038 +40 1 -1 0.649651 0.377185 0.039 +41 1 -1 0.672821 0.592375 0.04 +42 1 -1 0.325124 0.406527 0.041 +43 1 -1 0.405443 0.676904 0.042 +44 1 1 0.595626 0.321096 0.043 +45 1 -1 0.559536 0.696264 0.044 +46 1 1 0.439823 0.301622 0.045 +47 1 1 0.299535 0.56081 0.046 +48 1 -1 0.702526 0.438564 0.047 +49 1 1 0.704562 0.562053 0.048 +50 1 -1 0.293427 0.437337 0.049 +51 1 1 0.436734 0.70856 0.05 +52 1 -1 0.563862 0.289475 0.051 +53 1 -1 0.604663 0.69581 0.052 +54 1 1 0.394391 0.30242 0.053 +55 1 -1 0.30067 0.606544 0.054 +56 1 -1 0.701061 0.392531 0.055 +57 1 -1 0.677732 0.645861 0.056 +58 1 1 0.320783 0.352921 0.057 +59 1 1 0.351715 0.680686 0.058 +60 1 1 0.649479 0.31786 0.059 +61 1 -1 0.523278 0.736343 0.06 +62 1 1 0.476542 0.261822 0.061 +63 1 -1 0.260006 0.523637 0.062 +64 1 -1 0.741793 0.476185 0.063 +65 1 1 0.744458 0.512009 0.064 +66 1 1 0.253771 0.487904 0.065 +67 1 -1 0.487817 0.747983 0.066 +68 1 1 0.512268 0.250279 0.067 +69 1 -1 0.669062 0.686531 0.068 +70 1 1 0.329791 0.312203 0.069 +71 1 -1 0.310949 0.671346 0.07 +72 1 1 0.690295 0.327527 0.071 +73 1 1 0.73367 0.610518 0.072 +74 1 -1 0.264839 0.388777 0.073 +75 1 1 0.388079 0.736638 0.074 +76 1 -1 0.612614 0.261897 0.075 +77 1 -1 0.589275 0.749507 0.076 +78 1 1 0.410188 0.248992 0.077 +79 1 1 0.247505 0.590344 0.078 +80 1 -1 0.753971 0.409128 0.079 +81 1 1 0.763163 0.565919 0.08 +82 1 -1 0.235341 0.433706 0.081 +83 1 -1 0.433335 0.766142 0.082 +84 1 -1 0.567034 0.232386 0.083 +85 1 1 0.642606 0.737923 0.084 +86 1 -1 0.356626 0.260795 0.085 +87 1 -1 0.259524 0.644136 0.086 +88 1 -1 0.741738 0.355108 0.087 +89 1 -1 0.727545 0.668759 0.088 +90 1 -1 0.271292 0.330378 0.089 +91 1 1 0.329522 0.729863 0.09 +92 1 1 0.671329 0.26899 0.091 +93 1 -1 0.542409 0.785898 0.092 +94 1 -1 0.457385 0.212711 0.093 +95 1 -1 0.21133 0.54282 0.094 +96 1 -1 0.790041 0.456976 0.095 +97 1 -1 0.791403 0.543226 0.096 +98 1 1 0.207246 0.456574 0.097 +99 1 -1 0.456375 0.794097 0.098 +100 1 1 0.543823 0.204571 0.099 +101 1 -1 0.67871 0.740962 0.1 +102 1 -1 0.320499 0.25797 0.101 +103 1 -1 0.256911 0.680287 0.102 +104 1 1 0.744142 0.318932 0.103 +105 1 1 0.761831 0.656935 0.104 +106 1 -1 0.23706 0.3424 0.105 +107 1 -1 0.34174 0.764041 0.106 +108 1 1 0.658916 0.234865 0.107 +109 1 1 0.575416 0.801079 0.108 +110 1 1 0.424278 0.1977 0.109 +111 1 1 0.196487 0.576026 0.11 +112 1 -1 0.804718 0.423672 0.111 +113 1 1 0.796931 0.606244 0.112 +114 1 -1 0.201914 0.393343 0.113 +115 1 1 0.392933 0.799233 0.114 +116 1 -1 0.607475 0.199627 0.115 +117 1 -1 0.636914 0.78948 0.116 +118 1 1 0.362575 0.20944 0.117 +119 1 1 0.208366 0.637933 0.118 +120 1 1 0.792701 0.361563 0.119 +121 1 1 0.740781 0.718231 0.12 +122 1 -1 0.258356 0.280986 0.121 +123 1 1 0.280208 0.742503 0.122 +124 1 -1 0.720565 0.256644 0.123 +125 1 1 0.516172 0.829185 0.124 +126 1 1 0.483772 0.169679 0.125 +127 1 1 0.16855 0.516283 0.126 +128 1 -1 0.832572 0.483662 0.127 +129 1 1 0.833989 0.508199 0.128 +130 1 1 0.164901 0.491774 0.129 +131 1 1 0.491747 0.836202 0.13 +132 1 -1 0.50828 0.162701 0.131 +133 1 1 0.733403 0.745151 0.132 +134 1 -1 0.265849 0.254064 0.133 +135 1 1 0.253284 0.734894 0.134 +136 1 1 0.747492 0.264368 0.135 +137 1 -1 0.813381 0.638912 0.136 +138 1 -1 0.185651 0.360659 0.137 +139 1 1 0.360232 0.815311 0.138 +140 1 1 0.640192 0.183732 0.139 +141 1 1 0.624879 0.823736 0.14 +142 1 -1 0.374749 0.175298 0.141 +143 1 -1 0.174339 0.625621 0.142 +144 1 1 0.826615 0.374011 0.143 +145 1 1 0.842559 0.576924 0.144 +146 1 -1 0.156454 0.422854 0.145 +147 1 1 0.422634 0.844526 0.146 +148 1 1 0.577585 0.154498 0.147 +149 1 1 0.689978 0.800007 0.148 +150 1 1 0.309494 0.199157 0.149 +151 1 -1 0.198327 0.691032 0.15 +152 1 -1 0.802499 0.308445 0.151 +153 1 1 0.79353 0.706727 0.152 +154 1 1 0.20568 0.292716 0.153 +155 1 -1 0.292163 0.795106 0.154 +156 1 1 0.708388 0.204112 0.155 +157 1 1 0.562034 0.857513 0.156 +158 1 -1 0.437804 0.141555 0.157 +159 1 1 0.140629 0.562357 0.158 +160 1 1 0.860292 0.437483 0.159 +161 1 1 0.863849 0.544876 0.16 +162 1 1 0.135233 0.45501 0.161 +163 1 -1 0.454898 0.86568 0.162 +164 1 -1 0.545214 0.133412 0.163 +165 1 1 0.727805 0.791905 0.164 +166 1 -1 0.271638 0.207381 0.165 +167 1 -1 0.206672 0.728916 0.166 +168 1 1 0.794034 0.270533 0.167 +169 1 -1 0.825296 0.684278 0.168 +170 1 1 0.173933 0.315285 0.169 +171 1 1 0.314851 0.826833 0.17 +172 1 1 0.685581 0.172404 0.171 +173 1 1 0.600652 0.86371 0.172 +174 1 1 0.399117 0.135454 0.173 +175 1 -1 0.134623 0.601113 0.174 +176 1 1 0.866203 0.398658 0.175 +177 1 -1 0.861599 0.619456 0.176 +178 1 1 0.137595 0.380277 0.177 +179 1 -1 0.380013 0.863207 0.178 +180 1 1 0.620251 0.135996 0.179 +181 1 1 0.672735 0.843166 0.18 +182 1 1 0.326891 0.156092 0.181 +183 1 -1 0.155354 0.67348 0.182 +184 1 -1 0.84538 0.32615 0.183 +185 1 -1 0.793406 0.753094 0.184 +186 1 -1 0.205978 0.246375 0.185 +187 1 -1 0.245846 0.794635 0.186 +188 1 1 0.75468 0.204756 0.187 +189 1 1 0.528743 0.889654 0.188 +190 1 1 0.471199 0.109552 0.189 +191 1 1 0.108762 0.528859 0.19 +192 1 -1 0.892024 0.471083 0.191 +193 1 -1 0.892806 0.528975 0.192 +194 1 1 0.106416 0.470968 0.193 +195 1 1 0.47091 0.894357 0.194 +196 1 1 0.529146 0.104873 0.195 +197 1 1 0.759289 0.800588 0.196 +198 1 1 0.240212 0.198834 0.197 +199 1 -1 0.198258 0.760284 0.198 +200 1 -1 0.802314 0.239222 0.199 +201 1 -1 0.85729 0.679845 0.2 +202 1 -1 0.142042 0.319819 0.201 +203 1 1 0.319485 0.858623 0.202 +204 1 -1 0.680848 0.140716 0.203 +205 1 -1 0.626404 0.88263 0.204 +206 1 -1 0.373366 0.116674 0.205 +207 1 1 0.115982 0.626862 0.206 +208 1 -1 0.884707 0.37291 0.207 +209 1 -1 0.891174 0.608253 0.208 +210 1 -1 0.108134 0.391556 0.209 +211 1 -1 0.391366 0.892554 0.21 +212 1 -1 0.608824 0.106762 0.211 +213 1 1 0.70146 0.855626 0.212 +214 1 1 0.298194 0.143762 0.213 +215 1 -1 0.143154 0.702151 0.214 +216 1 1 0.857451 0.297506 0.215 +217 1 -1 0.824416 0.753177 0.216 +218 1 1 0.175042 0.2464 0.217 +219 1 -1 0.245979 0.825498 0.218 +220 1 -1 0.75444 0.173965 0.219 +221 1 -1 0.550708 0.911131 0.22 +222 1 1 0.449209 0.0881999 0.221 +223 1 1 0.0875343 0.550873 0.222 +224 1 -1 0.913128 0.449046 0.223 +225 1 1 0.910784 0.571278 0.224 +226 1 1 0.0885655 0.428609 0.225 +227 1 1 0.428497 0.912082 0.226 +228 1 1 0.571615 0.0872745 0.227 +229 1 -1 0.741576 0.843012 0.228 +230 1 1 0.258052 0.15646 0.229 +231 1 -1 0.155934 0.742319 0.23 +232 1 1 0.844589 0.257313 0.231 +233 1 1 0.85662 0.725827 0.232 +234 1 -1 0.142845 0.273834 0.233 +235 1 -1 0.273497 0.857687 0.234 +236 1 -1 0.726838 0.141783 0.235 +237 1 -1 0.593035 0.914305 0.236 +238 1 1 0.406829 0.0850902 0.237 +239 1 1 0.0844883 0.593306 0.238 +240 1 -1 0.91611 0.406559 0.239 +241 1 1 0.898465 0.653705 0.24 +242 1 1 0.100968 0.346076 0.241 +243 1 1 0.345859 0.899595 0.242 +244 1 1 0.654357 0.099844 0.243 +245 1 -1 0.674048 0.892646 0.244 +246 1 1 0.325711 0.10681 0.245 +247 1 -1 0.106269 0.674529 0.246 +248 1 -1 0.894268 0.325233 0.247 +249 1 -1 0.812767 0.797779 0.248 +250 1 1 0.186811 0.201819 0.249 +251 1 1 0.20142 0.813608 0.25 +252 1 1 0.798977 0.185975 0.251 +253 1 1 0.510655 0.93403 0.252 +254 1 -1 0.489331 0.0654 0.253 +255 1 -1 0.0648335 0.510683 0.254 +256 1 -1 0.93573 0.489303 0.255 +257 1 -1 0.936389 0.505356 0.256 +258 1 1 0.0630535 0.494638 0.257 +259 1 -1 0.494631 0.937501 0.258 +260 1 -1 0.505376 0.0619474 0.259 +261 1 1 0.806332 0.813944 0.26 +262 1 1 0.193287 0.185665 0.261 +263 1 -1 0.185277 0.807092 0.262 +264 1 1 0.815109 0.192531 0.263 +265 1 -1 0.905145 0.673671 0.264 +266 1 -1 0.0943645 0.326118 0.265 +267 1 -1 0.325909 0.906124 0.266 +268 1 1 0.674299 0.0933911 0.267 +269 1 -1 0.664463 0.911252 0.268 +270 1 1 0.335343 0.0882633 0.269 +271 1 -1 0.0877809 0.66485 0.27 +272 1 -1 0.912699 0.334958 0.271 +273 1 -1 0.935341 0.592162 0.272 +274 1 -1 0.0641588 0.407732 0.273 +275 1 -1 0.407626 0.936338 0.274 +276 1 -1 0.592478 0.0631673 0.275 +277 1 -1 0.743769 0.874701 0.276 +278 1 -1 0.255958 0.124881 0.277 +279 1 1 0.124464 0.744313 0.278 +280 1 -1 0.87595 0.255418 0.279 +281 1 1 0.87024 0.754013 0.28 +282 1 1 0.129357 0.245711 0.281 +283 1 -1 0.245436 0.871043 0.282 +284 1 1 0.754838 0.128558 0.283 +285 1 1 0.582539 0.943318 0.284 +286 1 -1 0.417373 0.056212 0.285 +287 1 -1 0.0557451 0.582714 0.286 +288 1 -1 0.944719 0.4172 0.287 +289 1 1 0.950072 0.549912 0.288 +290 1 1 0.049464 0.450037 0.289 +291 1 -1 0.449985 0.950997 0.29 +292 1 1 0.550066 0.0485441 0.291 +293 1 -1 0.784113 0.854987 0.292 +294 1 1 0.215602 0.144656 0.293 +295 1 1 0.144302 0.784681 0.294 +296 1 -1 0.85605 0.215037 0.295 +297 1 -1 0.899918 0.720113 0.296 +298 1 1 0.0996916 0.279673 0.297 +299 1 -1 0.279459 0.900696 0.298 +300 1 1 0.720753 0.0989177 0.299 +301 1 -1 0.627634 0.940125 0.3 +302 1 -1 0.372245 0.0594575 0.301 +303 1 -1 0.0590421 0.627875 0.302 +304 1 1 0.941371 0.372005 0.303 +305 1 -1 0.938504 0.638917 0.304 +306 1 -1 0.0610908 0.360954 0.305 +307 1 -1 0.360827 0.939312 0.306 +308 1 1 0.6393 0.0602882 0.307 +309 1 -1 0.712615 0.909794 0.308 +310 1 1 0.287194 0.0898385 0.309 +311 1 -1 0.0894727 0.712996 0.31 +312 1 -1 0.910891 0.286815 0.311 +313 1 1 0.85451 0.798293 0.312 +314 1 -1 0.145181 0.201446 0.313 +315 1 -1 0.201187 0.855127 0.314 +316 1 1 0.79907 0.144568 0.315 +317 1 -1 0.539888 0.963199 0.316 +318 1 1 0.460078 0.0364083 0.317 +319 1 -1 0.0360177 0.539956 0.318 +320 1 1 0.96437 0.460011 0.319 +321 1 -1 0.965598 0.528605 0.32 +322 1 -1 0.0340178 0.471372 0.321 +323 1 1 0.471348 0.966364 0.322 +324 1 -1 0.528675 0.0332573 0.323 +325 1 -1 0.810011 0.850596 0.324 +326 1 -1 0.189741 0.149123 0.325 +327 1 1 0.148844 0.810506 0.326 +328 1 1 0.851433 0.189249 0.327 +329 1 1 0.921914 0.705924 0.328 +330 1 -1 0.0777578 0.293916 0.329 +331 1 -1 0.293757 0.922568 0.33 +332 1 1 0.706401 0.077108 0.331 +333 1 -1 0.653199 0.945316 0.332 +334 1 -1 0.346686 0.054348 0.333 +335 1 -1 0.0540141 0.653429 0.334 +336 1 -1 0.946318 0.346457 0.335 +337 1 1 0.956741 0.620383 0.336 +338 1 1 0.0429248 0.379529 0.337 +339 1 1 0.379441 0.957407 0.338 +340 1 -1 0.620646 0.0422625 0.339 +341 1 1 0.738531 0.909272 0.34 +342 1 -1 0.2613 0.0904377 0.341 +343 1 -1 0.0901489 0.738868 0.342 +344 1 1 0.910138 0.260965 0.343 +345 1 -1 0.878055 0.787643 0.344 +346 1 -1 0.121684 0.212159 0.345 +347 1 -1 0.211963 0.878574 0.346 +348 1 1 0.788233 0.121169 0.347 +349 1 1 0.564106 0.972003 0.348 +350 1 -1 0.435852 0.0276823 0.349 +351 1 -1 0.0273696 0.564191 0.35 +352 1 -1 0.972941 0.435767 0.351 +353 1 -1 0.971529 0.57587 0.352 +354 1 -1 0.028166 0.424081 0.353 +355 1 1 0.424033 0.972137 0.354 +356 1 -1 0.576016 0.0275631 0.355 +357 1 -1 0.780489 0.888059 0.356 +358 1 1 0.219336 0.111698 0.357 +359 1 -1 0.111457 0.780839 0.358 +360 1 1 0.888782 0.218989 0.359 +361 1 1 0.90865 0.751803 0.36 +362 1 1 0.0911022 0.248045 0.361 +363 1 1 0.247893 0.909143 0.362 +364 1 -1 0.752257 0.0906132 0.363 +365 1 -1 0.611173 0.968129 0.364 +366 1 -1 0.388762 0.0315974 0.365 +367 1 -1 0.0313256 0.611303 0.366 +368 1 1 0.968944 0.388633 0.367 +369 1 1 0.952042 0.668029 0.368 +370 1 -1 0.0477021 0.331876 0.369 +371 1 1 0.331782 0.952551 0.37 +372 1 -1 0.668311 0.0471973 0.371 +373 1 -1 0.701276 0.939436 0.372 +374 1 1 0.298614 0.0603244 0.373 +375 1 1 0.0600867 0.701495 0.374 +376 1 -1 0.940149 0.298397 0.375 +377 1 -1 0.854883 0.82967 0.376 +378 1 -1 0.14493 0.170157 0.377 +379 1 -1 0.169985 0.855255 0.378 +380 1 -1 0.830185 0.144561 0.379 +381 1 -1 0.517866 0.985058 0.38 +382 1 1 0.482125 0.0146965 0.381 +383 1 1 0.0144527 0.517884 0.382 +384 1 -1 0.985789 0.482107 0.383 +385 1 1 0.986028 0.517901 0.384 +386 1 1 0.0137344 0.48209 0.385 +387 1 -1 0.482081 0.986501 0.386 +388 1 -1 0.517927 0.0132664 0.387 +389 1 1 0.831653 0.857018 0.388 +390 1 -1 0.168191 0.142814 0.389 +391 1 1 0.142648 0.831963 0.39 +392 1 -1 0.857517 0.167884 0.391 +393 1 1 0.943853 0.7033 0.392 +394 1 1 0.0559471 0.296609 0.393 +395 1 -1 0.296518 0.944251 0.394 +396 1 -1 0.703572 0.0555526 0.395 +397 1 1 0.670399 0.958419 0.396 +398 1 -1 0.329527 0.0413825 0.397 +399 1 -1 0.0411862 0.670546 0.398 +400 1 1 0.959008 0.329382 0.399 +401 1 -1 0.976641 0.613195 0.4 +402 1 -1 0.0231611 0.386758 0.401 +403 1 1 0.386712 0.977034 0.402 +404 1 1 0.613334 0.0227722 0.403 +405 1 1 0.757415 0.917758 0.404 +406 1 1 0.242483 0.0820765 0.405 +407 1 -1 0.0819126 0.757618 0.406 +408 1 -1 0.918249 0.242282 0.407 +409 1 1 0.89831 0.787898 0.408 +410 1 -1 0.101539 0.211993 0.409 +411 1 1 0.211885 0.89861 0.41 +412 1 1 0.788221 0.101243 0.411 +413 1 -1 0.578189 0.985945 0.412 +414 1 -1 0.421783 0.0138796 0.413 +415 1 -1 0.0137062 0.578245 0.414 +416 1 -1 0.986465 0.421727 0.415 +417 1 1 0.988409 0.566334 0.416 +418 1 -1 0.0114227 0.433643 0.417 +419 1 -1 0.433621 0.988743 0.418 +420 1 -1 0.566401 0.0110932 0.419 +421 1 -1 0.798855 0.892792 0.42 +422 1 -1 0.201047 0.10708 0.421 +423 1 1 0.106953 0.799049 0.422 +424 1 1 0.893172 0.200856 0.423 +425 1 1 0.926967 0.748844 0.424 +426 1 -1 0.0729011 0.251079 0.425 +427 1 -1 0.251003 0.927229 0.426 +428 1 -1 0.749071 0.0726425 0.427 +429 1 1 0.626105 0.978449 0.428 +430 1 -1 0.373858 0.0214111 0.429 +431 1 1 0.0212734 0.626178 0.43 +432 1 -1 0.978862 0.373786 0.431 +433 1 -1 0.968411 0.661144 0.432 +434 1 1 0.0314604 0.338812 0.433 +435 1 1 0.338768 0.968666 0.434 +436 1 -1 0.661275 0.0312086 0.435 +437 1 -1 0.717504 0.945641 0.436 +438 1 -1 0.28244 0.0542439 0.437 +439 1 -1 0.0541307 0.717616 0.438 +440 1 1 0.945981 0.28233 0.439 +441 1 1 0.871862 0.828815 0.44 +442 1 -1 0.128049 0.171106 0.441 +443 1 1 0.171028 0.87204 0.442 +444 1 1 0.829049 0.127874 0.443 +445 1 -1 0.530467 0.995919 0.444 +446 1 -1 0.469526 0.00396944 0.445 +447 1 -1 0.00385999 0.530481 0.446 +448 1 1 0.996247 0.469512 0.447 +449 1 -1 0.995455 0.542666 0.448 +450 1 1 0.00444188 0.457325 0.449 +451 1 1 0.457316 0.995659 0.45 +452 1 -1 0.542692 0.00424161 0.451 +453 1 1 0.820429 0.880817 0.452 +454 1 -1 0.17951 0.11911 0.453 +455 1 1 0.119039 0.820551 0.454 +456 1 1 0.881031 0.179391 0.455 +457 1 1 0.942098 0.729376 0.456 +458 1 1 0.0578245 0.270584 0.457 +459 1 -1 0.270544 0.942251 0.458 +460 1 -1 0.729494 0.0576748 0.459 +461 1 1 0.650519 0.975125 0.46 +462 1 1 0.349457 0.0247992 0.461 +463 1 -1 0.0247255 0.650566 0.462 +464 1 -1 0.975346 0.349411 0.463 +465 1 1 0.978969 0.638898 0.464 +466 1 1 0.0209627 0.361082 0.465 +467 1 1 0.361062 0.979104 0.466 +468 1 -1 0.638956 0.0208318 0.467 +469 1 -1 0.740598 0.937137 0.468 +470 1 1 0.259372 0.0628077 0.469 +471 1 -1 0.0627541 0.740658 0.47 +472 1 1 0.937298 0.259314 0.471 +473 1 -1 0.889756 0.811939 0.472 +474 1 1 0.110201 0.188026 0.473 +475 1 1 0.187993 0.88984 0.474 +476 1 1 0.812039 0.11012 0.475 +477 1 1 0.555048 0.996381 0.476 +478 1 1 0.444947 0.00357257 0.477 +479 1 1 0.0035278 0.555058 0.478 +480 1 -1 0.996515 0.444938 0.479 +481 1 1 0.991159 0.591447 0.48 +482 1 1 0.00880229 0.408546 0.481 +483 1 1 0.408539 0.991234 0.482 +484 1 -1 0.591467 0.00873146 0.483 +485 1 1 0.782721 0.912084 0.484 +486 1 1 0.217261 0.0878909 0.485 +487 1 -1 0.087867 0.782755 0.486 +488 1 1 0.912155 0.21723 0.487 +489 1 -1 0.918992 0.772584 0.488 +490 1 1 0.0809891 0.227403 0.489 +491 1 -1 0.227392 0.919029 0.49 +492 1 1 0.772618 0.0809555 0.491 +493 1 -1 0.603542 0.989096 0.492 +494 1 -1 0.396454 0.0108893 0.493 +495 1 -1 0.0108765 0.603548 0.494 +496 1 1 0.989134 0.396449 0.495 +497 1 -1 0.964238 0.685653 0.496 +498 1 1 0.0357553 0.314345 0.497 +499 1 1 0.314343 0.964249 0.498 +500 1 -1 0.685658 0.0357479 0.499 +501 1 1 0.696996 0.959557 0.5 +502 1 -1 0.303004 0.040444 0.501 +503 1 -1 0.0404468 0.696994 0.502 +504 1 -1 0.959549 0.303008 0.503 +505 1 -1 0.857854 0.849177 0.504 +506 1 1 0.142152 0.150829 0.505 +507 1 -1 0.150837 0.85784 0.506 +508 1 -1 0.849154 0.14217 0.507 +509 1 1 0.506135 0.999898 0.508 +510 1 1 0.493865 0.00011865 0.509 +511 1 1 0.000137652 0.506135 0.51 +512 1 -1 0.999841 0.493866 0.511 +513 1 -1 0.999847 0.503067 0.512 +514 1 1 0.000178438 0.496933 0.513 +515 1 1 0.496933 0.999795 0.514 +516 1 -1 0.503067 0.000234459 0.515 +517 1 -1 0.851197 0.855534 0.516 +518 1 1 0.148826 0.14449 0.517 +519 1 1 0.144514 0.85115 0.518 +520 1 1 0.855459 0.148876 0.519 +521 1 -1 0.960388 0.694017 0.52 +522 1 1 0.0396495 0.305999 0.521 +523 1 -1 0.306016 0.960311 0.522 +524 1 -1 0.693967 0.0397307 0.523 +525 1 -1 0.688286 0.962571 0.524 +526 1 1 0.311732 0.0374741 0.525 +527 1 -1 0.0375214 0.688249 0.526 +528 1 1 0.962429 0.311771 0.527 +529 1 -1 0.989016 0.600395 0.528 +530 1 -1 0.0110396 0.399617 0.529 +531 1 1 0.399629 0.988902 0.53 +532 1 -1 0.600359 0.0111574 0.531 +533 1 1 0.774665 0.916576 0.532 +534 1 1 0.225371 0.0834787 0.533 +535 1 -1 0.0835348 0.774592 0.534 +536 1 -1 0.916407 0.225446 0.535 +537 1 -1 0.912948 0.779603 0.536 +538 1 -1 0.0871126 0.220438 0.537 +539 1 1 0.22048 0.912825 0.538 +540 1 1 0.779477 0.0872389 0.539 +541 1 -1 0.594231 0.989408 0.54 +542 1 1 0.405784 0.0106715 0.541 +543 1 -1 0.0107533 0.5942 0.542 +544 1 -1 0.989163 0.405816 0.543 +545 1 1 0.995353 0.551859 0.544 +546 1 1 0.0047358 0.44815 0.545 +547 1 -1 0.44816 0.995173 0.546 +548 1 -1 0.55183 0.00491958 0.547 +549 1 -1 0.813365 0.88665 0.548 +550 1 1 0.186696 0.113426 0.549 +551 1 1 0.113503 0.813241 0.55 +552 1 -1 0.886418 0.186823 0.551 +553 1 1 0.937123 0.737107 0.552 +554 1 -1 0.06297 0.262943 0.553 +555 1 1 0.262995 0.936935 0.554 +556 1 1 0.736953 0.063161 0.555 +557 1 -1 0.641309 0.976336 0.556 +558 1 1 0.358723 0.0237733 0.557 +559 1 1 0.0238843 0.641244 0.558 +560 1 1 0.976003 0.35879 0.559 +561 1 -1 0.97412 0.647005 0.56 +562 1 1 0.0259968 0.353031 0.561 +563 1 -1 0.353067 0.973885 0.562 +564 1 -1 0.646895 0.0262355 0.563 +565 1 1 0.731072 0.938759 0.564 +566 1 -1 0.268989 0.0613556 0.565 +567 1 1 0.0614726 0.73095 0.566 +568 1 1 0.938409 0.269113 0.567 +569 1 -1 0.880979 0.816593 0.568 +570 1 1 0.119128 0.183495 0.569 +571 1 1 0.183585 0.880764 0.57 +572 1 1 0.816324 0.119345 0.571 +573 1 -1 0.545476 0.992695 0.572 +574 1 1 0.454538 0.00745132 0.573 +575 1 1 0.00759931 0.545448 0.574 +576 1 -1 0.992251 0.454565 0.575 +577 1 -1 0.993437 0.527277 0.576 +578 1 1 0.00671769 0.472732 0.577 +579 1 1 0.47274 0.993126 0.578 +580 1 1 0.527251 0.00703308 0.579 +581 1 -1 0.829203 0.86773 0.58 +582 1 1 0.170905 0.132392 0.581 +583 1 -1 0.132515 0.828984 0.582 +584 1 1 0.86736 0.171127 0.583 +585 1 1 0.944269 0.713469 0.584 +586 1 -1 0.0558856 0.286605 0.585 +587 1 -1 0.28668 0.943958 0.586 +588 1 1 0.713244 0.0562003 0.587 +589 1 1 0.662969 0.964432 0.588 +590 1 -1 0.337091 0.0357376 0.589 +591 1 1 0.0359093 0.662849 0.59 +592 1 -1 0.963917 0.337212 0.591 +593 1 1 0.975993 0.622339 0.592 +594 1 -1 0.0241894 0.377708 0.593 +595 1 -1 0.377756 0.975626 0.594 +596 1 -1 0.622197 0.0245602 0.595 +597 1 -1 0.749682 0.922425 0.596 +598 1 1 0.250418 0.0777441 0.597 +599 1 -1 0.0779153 0.74948 0.598 +600 1 1 0.921912 0.250622 0.599 +601 1 1 0.891692 0.794241 0.6 +602 1 1 0.108472 0.205882 0.601 +603 1 -1 0.206007 0.891362 0.602 +604 1 1 0.793867 0.108806 0.603 +605 1 1 0.568791 0.984202 0.604 +606 1 1 0.431239 0.0160094 0.605 +607 1 1 0.0162231 0.568731 0.606 +608 1 1 0.983561 0.4313 0.607 +609 1 1 0.982464 0.574595 0.608 +610 1 1 0.0177556 0.425439 0.609 +611 1 -1 0.425473 0.982023 0.61 +612 1 1 0.574492 0.0182014 0.611 +613 1 -1 0.787874 0.893172 0.612 +614 1 1 0.212262 0.107014 0.613 +615 1 -1 0.107202 0.7876 0.614 +616 1 1 0.892608 0.212539 0.615 +617 1 -1 0.915621 0.752593 0.616 +618 1 -1 0.0845837 0.247532 0.617 +619 1 1 0.247657 0.91521 0.618 +620 1 -1 0.752216 0.0849988 0.619 +621 1 1 0.615048 0.971555 0.62 +622 1 -1 0.385011 0.0286864 0.621 +623 1 -1 0.0289298 0.61493 0.622 +624 1 1 0.970825 0.38513 0.623 +625 1 -1 0.955055 0.665978 0.624 +626 1 1 0.0451863 0.33411 0.625 +627 1 -1 0.334199 0.95457 0.626 +628 1 1 0.665711 0.0456755 0.627 +629 1 1 0.703969 0.938193 0.628 +630 1 -1 0.296143 0.0620486 0.629 +631 1 1 0.0622917 0.703744 0.63 +632 1 1 0.937463 0.296371 0.631 +633 1 -1 0.855338 0.826053 0.632 +634 1 -1 0.144864 0.174132 0.633 +635 1 -1 0.17432 0.854932 0.634 +636 1 -1 0.825491 0.145274 0.635 +637 1 -1 0.52066 0.980705 0.636 +638 1 -1 0.479353 0.0195786 0.637 +639 1 -1 0.0198644 0.520635 0.638 +640 1 -1 0.979848 0.479377 0.639 +641 1 1 0.979774 0.514724 0.64 +642 1 1 0.0205185 0.485285 0.641 +643 1 -1 0.485294 0.979187 0.642 +644 1 -1 0.514697 0.0211107 0.643 +645 1 1 0.828028 0.8488 0.644 +646 1 -1 0.172178 0.15142 0.645 +647 1 1 0.151642 0.827613 0.646 +648 1 -1 0.848135 0.172597 0.647 +649 1 1 0.935425 0.696216 0.648 +650 1 1 0.0648583 0.303912 0.649 +651 1 -1 0.30404 0.934856 0.65 +652 1 -1 0.69583 0.0654317 0.651 +653 1 1 0.668701 0.945462 0.652 +654 1 -1 0.331413 0.0548379 0.653 +655 1 1 0.0551396 0.668473 0.654 +656 1 -1 0.944557 0.331642 0.655 +657 1 1 0.962851 0.606924 0.656 +658 1 1 0.0374699 0.39315 0.657 +659 1 1 0.393225 0.962207 0.658 +660 1 1 0.6067 0.0381189 0.659 +661 1 1 0.750973 0.901762 0.66 +662 1 -1 0.249207 0.0985254 0.661 +663 1 -1 0.0988149 0.750612 0.662 +664 1 -1 0.900894 0.24957 0.663 +665 1 1 0.884501 0.774341 0.664 +666 1 1 0.115783 0.225861 0.665 +667 1 -1 0.226065 0.883932 0.666 +668 1 1 0.77373 0.116356 0.667 +669 1 -1 0.577663 0.964483 0.668 +670 1 -1 0.422396 0.03587 0.669 +671 1 1 0.0362254 0.577544 0.67 +672 1 1 0.963417 0.422516 0.671 +673 1 -1 0.965593 0.560328 0.672 +674 1 -1 0.0347718 0.439719 0.673 +675 1 1 0.439767 0.964861 0.674 +676 1 -1 0.560185 0.0355081 0.675 +677 1 -1 0.785659 0.870706 0.676 +678 1 1 0.214571 0.129593 0.677 +679 1 1 0.129894 0.785197 0.678 +680 1 -1 0.869804 0.215036 0.679 +681 1 -1 0.904456 0.732411 0.68 +682 1 1 0.0958792 0.267782 0.681 +683 1 -1 0.267976 0.903783 0.682 +684 1 -1 0.731829 0.0965569 0.683 +685 1 -1 0.621247 0.948824 0.684 +686 1 1 0.378857 0.051559 0.685 +687 1 -1 0.0519446 0.621039 0.686 +688 1 -1 0.947667 0.379066 0.687 +689 1 -1 0.939026 0.648028 0.688 +690 1 -1 0.06136 0.352102 0.689 +691 1 -1 0.352232 0.938252 0.69 +692 1 1 0.647636 0.0621385 0.691 +693 1 1 0.705036 0.913638 0.692 +694 1 1 0.295149 0.0867361 0.693 +695 1 -1 0.0871122 0.704665 0.694 +696 1 -1 0.91251 0.295523 0.695 +697 1 1 0.846453 0.80258 0.696 +698 1 -1 0.153869 0.197702 0.697 +699 1 1 0.197984 0.845807 0.698 +700 1 1 0.801731 0.154519 0.699 +701 1 1 0.530907 0.957214 0.7 +702 1 -1 0.469123 0.0432226 0.701 +703 1 1 0.0436619 0.530847 0.702 +704 1 1 0.955896 0.469182 0.703 +705 1 -1 0.955039 0.536374 0.704 +706 1 -1 0.0454073 0.463661 0.705 +707 1 1 0.463697 0.954143 0.706 +708 1 1 0.536267 0.0463088 0.707 +709 1 -1 0.794868 0.846105 0.708 +710 1 1 0.20543 0.154244 0.709 +711 1 -1 0.154595 0.794271 0.71 +712 1 1 0.845051 0.20603 0.711 +713 1 1 0.903223 0.706076 0.712 +714 1 1 0.0971952 0.294138 0.713 +715 1 1 0.294353 0.902384 0.714 +716 1 1 0.705431 0.0980386 0.715 +717 1 -1 0.638821 0.929037 0.716 +718 1 -1 0.361327 0.07142 0.717 +719 1 -1 0.0718796 0.638524 0.718 +720 1 1 0.927658 0.361625 0.719 +721 1 1 0.931991 0.622407 0.72 +722 1 1 0.0684813 0.377727 0.721 +723 1 -1 0.377862 0.931043 0.722 +724 1 -1 0.622003 0.0694348 0.723 +725 1 -1 0.717943 0.890288 0.724 +726 1 1 0.282302 0.110151 0.725 +727 1 1 0.110592 0.717452 0.726 +728 1 -1 0.888965 0.282796 0.727 +729 1 -1 0.84912 0.775919 0.728 +730 1 -1 0.151283 0.224399 0.729 +731 1 1 0.22472 0.848311 0.73 +732 1 1 0.774958 0.152096 0.731 +733 1 -1 0.55152 0.939911 0.732 +734 1 -1 0.448542 0.0606106 0.733 +735 1 1 0.0611352 0.551397 0.734 +736 1 1 0.938337 0.448665 0.735 +737 1 1 0.933839 0.578023 0.736 +738 1 1 0.0666893 0.422072 0.737 +739 1 1 0.422167 0.932779 0.738 +740 1 -1 0.577737 0.0677547 0.739 +741 1 1 0.750364 0.860164 0.74 +742 1 -1 0.249949 0.140287 0.741 +743 1 -1 0.14074 0.749736 0.742 +744 1 1 0.858805 0.250581 0.743 +745 1 1 0.867273 0.735743 0.744 +746 1 -1 0.133199 0.26456 0.745 +747 1 -1 0.264865 0.866327 0.746 +748 1 -1 0.734829 0.13415 0.747 +749 1 -1 0.592524 0.924188 0.748 +750 1 1 0.407598 0.0763718 0.749 +751 1 1 0.0769344 0.592279 0.75 +752 1 1 0.9225 0.407844 0.751 +753 1 -1 0.901953 0.657891 0.752 +754 1 1 0.0985912 0.342323 0.753 +755 1 -1 0.342538 0.900861 0.754 +756 1 -1 0.657245 0.099689 0.755 +757 1 -1 0.671636 0.893707 0.756 +758 1 1 0.328603 0.106841 0.757 +759 1 1 0.107392 0.671157 0.758 +760 1 -1 0.892055 0.329085 0.759 +761 1 1 0.807501 0.796384 0.76 +762 1 1 0.192939 0.20404 0.761 +763 1 1 0.204466 0.80662 0.762 +764 1 -1 0.795106 0.193824 0.763 +765 1 -1 0.507816 0.92455 0.764 +766 1 -1 0.492196 0.076073 0.765 +767 1 -1 0.0766996 0.507793 0.766 +768 1 -1 0.922671 0.492219 0.767 +769 1 1 0.922037 0.50777 0.768 +770 1 -1 0.078599 0.492242 0.769 +771 1 1 0.492254 0.920761 0.77 +772 1 1 0.507734 0.0798819 0.771 +773 1 -1 0.791151 0.802072 0.772 +774 1 1 0.2093 0.198396 0.773 +775 1 1 0.198867 0.790246 0.774 +776 1 1 0.80066 0.21021 0.775 +777 1 -1 0.882184 0.666612 0.776 +778 1 1 0.118425 0.333653 0.777 +779 1 1 0.33392 0.880964 0.778 +780 1 -1 0.665812 0.119651 0.779 +781 1 -1 0.651454 0.885567 0.78 +782 1 1 0.348794 0.115064 0.781 +783 1 -1 0.115698 0.650957 0.782 +784 1 -1 0.883665 0.349293 0.783 +785 1 1 0.902061 0.587698 0.784 +786 1 -1 0.098615 0.41245 0.785 +787 1 -1 0.412598 0.900705 0.786 +788 1 -1 0.587253 0.0999777 0.787 +789 1 1 0.720782 0.843964 0.788 +790 1 -1 0.2796 0.15663 0.789 +791 1 1 0.157228 0.720016 0.79 +792 1 -1 0.842172 0.280369 0.791 +793 1 1 0.833266 0.731667 0.792 +794 1 1 0.167326 0.268745 0.793 +795 1 1 0.269159 0.832079 0.794 +796 1 1 0.730425 0.16852 0.795 +797 1 1 0.571327 0.896606 0.796 +798 1 1 0.428803 0.104119 0.797 +799 1 1 0.104847 0.571066 0.798 +800 1 1 0.89442 0.429066 0.799 +801 1 1 0.897285 0.546527 0.8 +802 1 -1 0.103462 0.45356 0.801 +803 1 -1 0.453648 0.895787 0.802 +804 1 1 0.546264 0.104968 0.803 +805 1 1 0.746143 0.811444 0.804 +806 1 -1 0.254333 0.189158 0.805 +807 1 1 0.189764 0.745189 0.806 +808 1 1 0.809628 0.255293 0.807 +809 1 1 0.843889 0.692033 0.808 +810 1 1 0.156796 0.308349 0.809 +811 1 1 0.308734 0.842516 0.81 +812 1 1 0.69088 0.158176 0.811 +813 1 -1 0.606516 0.875913 0.812 +814 1 -1 0.393702 0.124858 0.813 +815 1 1 0.125632 0.606079 0.814 +816 1 1 0.873589 0.394142 0.815 +817 1 1 0.868666 0.619287 0.816 +818 1 -1 0.132112 0.380965 0.817 +819 1 1 0.381218 0.867106 0.818 +820 1 -1 0.618528 0.13368 0.819 +821 1 1 0.674837 0.842099 0.82 +822 1 1 0.325543 0.158644 0.821 +823 1 1 0.159392 0.674075 0.822 +824 1 -1 0.839856 0.326309 0.823 +825 1 -1 0.789881 0.746967 0.824 +826 1 1 0.210768 0.253586 0.825 +827 1 -1 0.254142 0.788579 0.826 +828 1 -1 0.745299 0.212077 0.827 +829 1 1 0.530071 0.87618 0.828 +830 1 1 0.469999 0.124688 0.829 +831 1 1 0.125562 0.529931 0.83 +832 1 1 0.87356 0.470139 0.831 +833 1 1 0.873015 0.525215 0.832 +834 1 -1 0.127873 0.474845 0.833 +835 1 -1 0.474905 0.871233 0.834 +836 1 1 0.525034 0.129665 0.835 +837 1 1 0.74357 0.778887 0.836 +838 1 1 0.257029 0.221799 0.837 +839 1 1 0.222488 0.742369 0.838 +840 1 -1 0.776819 0.258236 0.839 +841 1 -1 0.828467 0.662818 0.84 +842 1 1 0.172367 0.337595 0.841 +843 1 1 0.33801 0.826796 0.842 +844 1 -1 0.661572 0.174047 0.843 +845 1 -1 0.615933 0.843836 0.844 +846 1 -1 0.384371 0.157064 0.845 +847 1 -1 0.15797 0.615324 0.846 +848 1 -1 0.841119 0.384983 0.847 +849 1 -1 0.846597 0.593631 0.848 +850 1 1 0.154342 0.406623 0.849 +851 1 1 0.406878 0.844715 0.85 +852 1 -1 0.592866 0.156234 0.851 +853 1 1 0.676921 0.807888 0.852 +854 1 -1 0.323575 0.192974 0.853 +855 1 -1 0.193841 0.675927 0.854 +856 1 1 0.805288 0.324574 0.855 +857 1 1 0.7781 0.714299 0.856 +858 1 1 0.222705 0.286322 0.857 +859 1 -1 0.286946 0.776485 0.858 +860 1 1 0.712426 0.22433 0.859 +861 1 1 0.544587 0.84411 0.86 +862 1 -1 0.455547 0.156921 0.861 +863 1 1 0.157959 0.544319 0.862 +864 1 1 0.840997 0.455816 0.863 +865 1 1 0.838095 0.55653 0.864 +866 1 1 0.162955 0.443645 0.865 +867 1 1 0.443822 0.835988 0.866 +868 1 -1 0.556 0.165075 0.867 +869 1 -1 0.6966 0.775544 0.868 +870 1 -1 0.304033 0.225344 0.869 +871 1 -1 0.226237 0.69533 0.87 +872 1 -1 0.772865 0.305311 0.871 +873 1 1 0.783348 0.677002 0.872 +874 1 1 0.217599 0.32359 0.873 +875 1 -1 0.324185 0.781448 0.874 +876 1 -1 0.675216 0.219511 0.875 +877 1 -1 0.574184 0.821124 0.876 +878 1 -1 0.426074 0.179991 0.877 +879 1 -1 0.181113 0.573667 0.878 +880 1 -1 0.817759 0.426594 0.879 +881 1 1 0.803899 0.61509 0.88 +882 1 1 0.197198 0.385326 0.881 +883 1 1 0.385744 0.801698 0.882 +884 1 -1 0.613835 0.199413 0.883 +885 1 -1 0.631562 0.791951 0.884 +886 1 1 0.368932 0.209146 0.885 +887 1 1 0.21025 0.630571 0.886 +888 1 -1 0.78864 0.36993 0.887 +889 1 -1 0.729733 0.716052 0.888 +890 1 1 0.271166 0.284793 0.889 +891 1 -1 0.285644 0.727929 0.89 +892 1 1 0.713499 0.272982 0.891 +893 1 1 0.509521 0.810234 0.892 +894 1 -1 0.490518 0.191032 0.893 +895 1 -1 0.192307 0.509443 0.894 +896 1 -1 0.806409 0.490597 0.895 +897 1 1 0.804979 0.513107 0.896 +898 1 1 0.196321 0.486949 0.897 +899 1 -1 0.487005 0.802369 0.898 +900 1 -1 0.512939 0.198949 0.899 +901 1 -1 0.702828 0.721045 0.9 +902 1 -1 0.298077 0.279941 0.901 +903 1 1 0.280934 0.701012 0.902 +904 1 -1 0.718067 0.299905 0.903 +905 1 1 0.767075 0.624318 0.904 +906 1 1 0.234173 0.376263 0.905 +907 1 -1 0.376848 0.764571 0.906 +908 1 -1 0.622563 0.236695 0.907 +909 1 1 0.599038 0.771528 0.908 +910 1 1 0.401448 0.229803 0.909 +911 1 -1 0.231144 0.598063 0.91 +912 1 -1 0.767505 0.40243 0.911 +913 1 -1 0.775222 0.567148 0.912 +914 1 -1 0.226196 0.433198 0.913 +915 1 -1 0.433547 0.772375 0.914 +916 1 -1 0.566102 0.229065 0.915 +917 1 1 0.644063 0.737044 0.916 +918 1 1 0.356719 0.264243 0.917 +919 1 -1 0.265539 0.642493 0.918 +920 1 1 0.733153 0.358301 0.919 +921 1 1 0.718892 0.660269 0.92 +922 1 1 0.282362 0.340649 0.921 +923 1 1 0.341575 0.716374 0.922 +924 1 1 0.657491 0.284901 0.923 +925 1 1 0.540491 0.761886 0.924 +926 1 1 0.459755 0.239702 0.925 +927 1 1 0.241303 0.539998 0.926 +928 1 -1 0.757082 0.460252 0.927 +929 1 1 0.755918 0.536358 0.928 +930 1 1 0.245728 0.463875 0.929 +931 1 -1 0.464111 0.75261 0.93 +932 1 -1 0.53565 0.249066 0.931 +933 1 -1 0.651203 0.70128 0.932 +934 1 -1 0.349833 0.300098 0.933 +935 1 -1 0.301489 0.649122 0.934 +936 1 1 0.697107 0.351933 0.935 +937 1 1 0.7107 0.624538 0.936 +938 1 1 0.290841 0.376373 0.937 +939 1 1 0.377293 0.707603 0.938 +940 1 -1 0.621778 0.293968 0.939 +941 1 1 0.559117 0.730011 0.94 +942 1 1 0.441347 0.271792 0.941 +943 1 1 0.273614 0.558185 0.942 +944 1 -1 0.724545 0.442288 0.943 +945 1 1 0.716953 0.576129 0.944 +946 1 1 0.284879 0.424514 0.945 +947 1 1 0.425164 0.713269 0.946 +948 1 1 0.574179 0.288603 0.947 +949 1 1 0.596159 0.700124 0.948 +950 1 1 0.40472 0.301705 0.949 +951 1 -1 0.303556 0.594391 0.95 +952 1 1 0.694572 0.406509 0.951 +953 1 1 0.659268 0.642582 0.952 +954 1 1 0.342317 0.358837 0.953 +955 1 -1 0.360273 0.656078 0.954 +956 1 -1 0.638272 0.345546 0.955 +957 1 1 0.51132 0.704782 0.956 +958 1 -1 0.488803 0.297452 0.957 +959 1 -1 0.299717 0.511072 0.958 +960 1 1 0.697988 0.489055 0.959 +961 1 1 0.69513 0.51801 0.96 +962 1 -1 0.307224 0.482207 0.961 +963 1 1 0.482427 0.690387 0.962 +964 1 -1 0.517349 0.312037 0.963 +965 1 1 0.619063 0.643276 0.964 +966 1 -1 0.382542 0.358654 0.965 +967 1 -1 0.360616 0.615828 0.966 +968 1 1 0.63739 0.385829 0.967 +969 1 1 0.655724 0.582012 0.968 +970 1 1 0.346649 0.419238 0.969 +971 1 -1 0.42051 0.650935 0.97 +972 1 1 0.578194 0.351525 0.971 +973 1 1 0.548857 0.657572 0.972 +974 1 1 0.451999 0.345188 0.973 +975 1 -1 0.348003 0.547128 0.974 +976 1 1 0.649121 0.453763 0.975 +977 1 -1 0.646729 0.543528 0.976 +978 1 -1 0.356287 0.457366 0.977 +979 1 -1 0.458282 0.640626 0.978 +980 1 1 0.54078 0.362537 0.979 +981 1 -1 0.566752 0.623062 0.98 +982 1 -1 0.434905 0.379993 0.981 +983 1 -1 0.383134 0.563391 0.982 +984 1 -1 0.613631 0.438364 0.983 +985 1 -1 0.59748 0.579004 0.984 +986 1 1 0.405567 0.423466 0.985 +987 1 -1 0.426024 0.591277 0.986 +988 1 -1 0.571322 0.411999 0.987 +989 1 1 0.511337 0.608293 0.988 +990 1 1 0.48914 0.396264 0.989 +991 1 -1 0.401042 0.51036 0.99 +992 1 1 0.593927 0.490167 0.991 +993 1 1 0.587477 0.516843 0.992 +994 1 1 0.418131 0.484237 0.993 +995 1 1 0.485399 0.575834 0.994 +996 1 -1 0.513336 0.430738 0.995 +997 1 -1 0.535388 0.552265 0.996 +998 1 -1 0.469337 0.454714 0.997 +999 1 1 0.463006 0.525048 0.998 +1000 1 -1 0.526172 0.482279 0.999 diff --git a/examples/USER/scafacos/in.scafacos.cw.ewald b/examples/USER/scafacos/in.scafacos.cw.ewald new file mode 100644 index 0000000000..f8444dd01f --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.cw.ewald @@ -0,0 +1,31 @@ + +units lj +atom_style charge + +read_data data.cloud_wall + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 diff --git a/examples/USER/scafacos/in.scafacos.cw.fmm b/examples/USER/scafacos/in.scafacos.cw.fmm new file mode 100644 index 0000000000..24a2739581 --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.cw.fmm @@ -0,0 +1,37 @@ +units lj +atom_style charge + +read_data data.cloud_wall + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 diff --git a/examples/USER/scafacos/in.scafacos.cw.p2nfft b/examples/USER/scafacos/in.scafacos.cw.p2nfft new file mode 100644 index 0000000000..7a2391bc77 --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.cw.p2nfft @@ -0,0 +1,31 @@ + +units lj +atom_style charge + +read_data data.cloud_wall + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 diff --git a/examples/USER/scafacos/in.scafacos.ewald b/examples/USER/scafacos/in.scafacos.ewald new file mode 100644 index 0000000000..6c26c71884 --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.ewald @@ -0,0 +1,37 @@ +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + +replicate 8 8 8 + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 diff --git a/examples/USER/scafacos/in.scafacos.fmm b/examples/USER/scafacos/in.scafacos.fmm new file mode 100644 index 0000000000..18d7464fb8 --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.fmm @@ -0,0 +1,37 @@ +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + +replicate 8 8 8 + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel + +timestep 0.005 +thermo 10 + +run 100 diff --git a/examples/USER/scafacos/in.scafacos.hsph.direct b/examples/USER/scafacos/in.scafacos.hsph.direct new file mode 100644 index 0000000000..60448880ec --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.hsph.direct @@ -0,0 +1,34 @@ +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos direct 0.001 + +timestep 0.005 +thermo 1 +run 20 diff --git a/examples/USER/scafacos/in.scafacos.hsph.fmm b/examples/USER/scafacos/in.scafacos.hsph.fmm new file mode 100644 index 0000000000..515809dbde --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.hsph.fmm @@ -0,0 +1,37 @@ +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 + +timestep 0.005 +thermo 1 + +run 20 diff --git a/examples/USER/scafacos/in.scafacos.hsph.p2nfft b/examples/USER/scafacos/in.scafacos.hsph.p2nfft new file mode 100644 index 0000000000..d690a29e49 --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.hsph.p2nfft @@ -0,0 +1,36 @@ +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance potential + +timestep 0.005 +thermo 1 + +run 20 diff --git a/examples/USER/scafacos/in.scafacos.p2nfft b/examples/USER/scafacos/in.scafacos.p2nfft new file mode 100644 index 0000000000..7fa2ccdd9e --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.p2nfft @@ -0,0 +1,37 @@ +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + +replicate 8 8 8 + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.16 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.16 new file mode 100644 index 0000000000..ffdc7e3a3c --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.16 @@ -0,0 +1,92 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.313 | 3.501 | 3.689 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49647271 0 0.49647271 0 + 10 300 0.061254978 0.014582562 0.44286522 0.02180093 0.46466616 0 + 20 300 0.12240911 0.058693359 0.37869251 0.087746571 0.46643909 0 + 30 300 0.18348265 0.13468789 0.26730177 0.2013584 0.46866017 0 + 40 300 0.24441123 0.50949535 0.083356437 0.76169555 0.84505198 0 + 50 300 0.30493236 1.1731116 -0.055261984 1.7538018 1.6985399 0 + 60 300 0.36615515 1.3589639 -0.33351524 2.031651 1.6981358 0 + 70 300 0.42717433 1.6482648 -0.76570045 2.4641559 1.6984554 0 + 80 300 0.48137259 2.8640899 -2.4038488 4.2818144 1.8779656 0 + 90 300 0.5323379 93.168442 -2.5911448 139.28682 136.69568 0 + 100 300 0.5756321 94.146897 -1.3480439 140.74961 139.40157 0 +Loop time of 0.575655 on 16 procs for 100 steps with 300 atoms + +Performance: 75045.007 tau/day, 173.715 timesteps/s +98.7% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.2159e-05 | 1.739e-05 | 2.3127e-05 | 0.0 | 0.00 +Kspace | 0.57008 | 0.57086 | 0.57137 | 0.1 | 99.17 +Neigh | 0.00025606 | 0.00061357 | 0.001369 | 0.0 | 0.11 +Comm | 0.0023558 | 0.0027267 | 0.003104 | 0.4 | 0.47 +Output | 0.00029898 | 0.00032344 | 0.00037599 | 0.0 | 0.06 +Modify | 8.2493e-05 | 0.00014143 | 0.00021815 | 0.0 | 0.02 +Other | | 0.0009701 | | | 0.17 + +Nlocal: 18.75 ave 39 max 6 min +Histogram: 6 1 1 0 1 2 2 1 1 1 +Nghost: 122.812 ave 195 max 63 min +Histogram: 8 0 0 0 0 0 0 1 3 4 +Neighs: 160.625 ave 598 max 13 min +Histogram: 8 2 1 1 1 0 0 2 0 1 + +Total # of neighbors = 2570 +Ave neighs/atom = 8.56667 +Neighbor list builds = 23 +Dangerous builds = 16 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.8 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.8 new file mode 100644 index 0000000000..52d887f475 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.8 @@ -0,0 +1,92 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.317 | 3.317 | 3.317 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49647271 0 0.49647271 0 + 10 300 0.067519665 0.014718629 0.45088339 0.02200435 0.47288774 0 + 20 300 0.13502312 0.05922597 0.38470912 0.088542825 0.47325194 0 + 30 300 0.20248008 0.13587829 0.27058048 0.20313804 0.47371852 0 + 40 300 0.26985955 0.51353118 0.088432648 0.76772911 0.85616176 0 + 50 300 0.33801103 1.1760001 -0.058088247 1.7581201 1.7000319 0 + 60 300 0.40665984 1.3627885 -0.33736672 2.0373688 1.7000021 0 + 70 300 0.47533679 1.6529365 -0.77082139 2.4711401 1.7003187 0 + 80 300 0.54396391 2.9569837 -2.4624654 4.4206907 1.9582253 0 + 90 300 0.61429667 81.642726 -2.5370215 122.05588 119.51885 0 + 100 300 0.68513632 85.047974 -1.128107 127.14672 126.01861 0 +Loop time of 0.685155 on 8 procs for 100 steps with 300 atoms + +Performance: 63051.442 tau/day, 145.952 timesteps/s +99.7% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.0967e-05 | 1.4216e-05 | 1.8358e-05 | 0.0 | 0.00 +Kspace | 0.67942 | 0.67981 | 0.6803 | 0.0 | 99.22 +Neigh | 0.00073242 | 0.0010653 | 0.0015635 | 0.8 | 0.16 +Comm | 0.0029492 | 0.0031102 | 0.0033047 | 0.2 | 0.45 +Output | 0.00021768 | 0.00023454 | 0.00028443 | 0.0 | 0.03 +Modify | 0.00016046 | 0.00018132 | 0.00019431 | 0.0 | 0.03 +Other | | 0.0007433 | | | 0.11 + +Nlocal: 37.5 ave 46 max 31 min +Histogram: 2 0 0 2 1 0 2 0 0 1 +Nghost: 203.875 ave 212 max 192 min +Histogram: 1 0 1 0 0 2 1 0 0 3 +Neighs: 321.625 ave 599 max 112 min +Histogram: 1 2 0 1 1 0 1 1 0 1 + +Total # of neighbors = 2573 +Ave neighs/atom = 8.57667 +Neighbor list builds = 23 +Dangerous builds = 16 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.1 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.1 new file mode 100644 index 0000000000..47e0be01ce --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.1 @@ -0,0 +1,99 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ...3 + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.34 | 3.34 | 3.34 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49646402 0 0.49646402 0 + 10 300 0.036603451 0.015455559 0.47335833 0.02310606 0.49646439 0 + 20 300 0.073534727 0.06229069 0.40334177 0.093124582 0.49646635 0 + 30 300 0.10984373 0.14310163 0.28254277 0.21393694 0.49647971 0 + 40 300 0.14610171 0.52929788 0.089669015 0.79130033 0.88096934 0 + 50 300 0.18255496 1.1963022 -0.082792461 1.7884718 1.7056794 0 + 60 300 0.2194376 1.3928167 -0.37659239 2.082261 1.7056686 0 + 70 300 0.25588369 1.7069009 -0.84571914 2.5518169 1.7060978 0 + 80 300 0.29101205 15.358343 -3.368063 22.960722 19.592659 0 + 90 300 0.32697225 42.280432 -2.1623864 63.209247 61.04686 0 + 100 300 0.36395645 41.48079 -0.89904529 62.013782 61.114736 0 +Loop time of 0.363968 on 1 procs for 100 steps with 300 atoms + +Performance: 118691.709 tau/day, 274.749 timesteps/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.2875e-05 | 1.2875e-05 | 1.2875e-05 | 0.0 | 0.00 +Kspace | 0.35715 | 0.35715 | 0.35715 | 0.0 | 98.13 +Neigh | 0.0039768 | 0.0039768 | 0.0039768 | 0.0 | 1.09 +Comm | 0.0012023 | 0.0012023 | 0.0012023 | 0.0 | 0.33 +Output | 0.0001502 | 0.0001502 | 0.0001502 | 0.0 | 0.04 +Modify | 0.0009768 | 0.0009768 | 0.0009768 | 0.0 | 0.27 +Other | | 0.0005031 | | | 0.14 + +Nlocal: 300 ave 300 max 300 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 374 ave 374 max 374 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 2459 ave 2459 max 2459 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 2459 +Ave neighs/atom = 8.19667 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.16 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.16 new file mode 100644 index 0000000000..f104355d87 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.16 @@ -0,0 +1,99 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ...3 + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.313 | 3.501 | 3.689 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49646402 0 0.49646402 0 + 10 300 0.018873215 0.015455559 0.47335833 0.02310606 0.49646439 0 + 20 300 0.035197735 0.06229069 0.40334177 0.093124582 0.49646635 0 + 30 300 0.051513195 0.14310163 0.28254277 0.21393694 0.49647971 0 + 40 300 0.067400217 0.52929788 0.089669015 0.79130033 0.88096934 0 + 50 300 0.083569527 1.1963022 -0.082792461 1.7884718 1.7056794 0 + 60 300 0.099931955 1.3928167 -0.37659239 2.082261 1.7056686 0 + 70 300 0.11602688 1.7069009 -0.84571914 2.5518169 1.7060978 0 + 80 300 0.13271379 15.358343 -3.368063 22.960722 19.592659 0 + 90 300 0.15055513 42.280432 -2.1623864 63.209247 61.04686 0 + 100 300 0.16817498 41.48079 -0.89904529 62.013782 61.114736 0 +Loop time of 0.168194 on 16 procs for 100 steps with 300 atoms + +Performance: 256846.586 tau/day, 594.552 timesteps/s +97.7% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.4544e-05 | 2.0206e-05 | 2.6941e-05 | 0.0 | 0.01 +Kspace | 0.16313 | 0.16373 | 0.16423 | 0.1 | 97.34 +Neigh | 0.00016737 | 0.00039591 | 0.00084519 | 0.0 | 0.24 +Comm | 0.0021157 | 0.0026083 | 0.0032525 | 0.7 | 1.55 +Output | 0.00026298 | 0.00030228 | 0.00035977 | 0.0 | 0.18 +Modify | 0.00010705 | 0.00015062 | 0.00020647 | 0.0 | 0.09 +Other | | 0.0009913 | | | 0.59 + +Nlocal: 18.75 ave 36 max 6 min +Histogram: 4 3 1 0 0 1 2 1 2 2 +Nghost: 127 ave 196 max 71 min +Histogram: 8 0 0 0 0 0 0 1 6 1 +Neighs: 153.688 ave 491 max 10 min +Histogram: 8 1 1 1 1 1 0 0 0 3 + +Total # of neighbors = 2459 +Ave neighs/atom = 8.19667 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.2 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.2 new file mode 100644 index 0000000000..43ded2d4da --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.2 @@ -0,0 +1,99 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ...3 + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.354 | 3.354 | 3.355 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49646402 0 0.49646402 0 + 10 300 0.021326542 0.015455559 0.47335833 0.02310606 0.49646439 0 + 20 300 0.043129683 0.06229069 0.40334177 0.093124582 0.49646635 0 + 30 300 0.064425707 0.14310163 0.28254277 0.21393694 0.49647971 0 + 40 300 0.085822344 0.52929788 0.089669015 0.79130033 0.88096934 0 + 50 300 0.10737753 1.1963022 -0.082792461 1.7884718 1.7056794 0 + 60 300 0.12947297 1.3928167 -0.37659239 2.082261 1.7056686 0 + 70 300 0.15108895 1.7069009 -0.84571914 2.5518169 1.7060978 0 + 80 300 0.17378163 15.358343 -3.368063 22.960722 19.592659 0 + 90 300 0.19809985 42.280432 -2.1623864 63.209247 61.04686 0 + 100 300 0.22268319 41.48079 -0.89904529 62.013782 61.114736 0 +Loop time of 0.222696 on 2 procs for 100 steps with 300 atoms + +Performance: 193986.156 tau/day, 449.042 timesteps/s +98.4% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.1683e-05 | 1.5378e-05 | 1.9073e-05 | 0.0 | 0.01 +Kspace | 0.21627 | 0.2168 | 0.21734 | 0.1 | 97.35 +Neigh | 0.0016344 | 0.0021609 | 0.0026875 | 1.1 | 0.97 +Comm | 0.0022857 | 0.0023286 | 0.0023715 | 0.1 | 1.05 +Output | 0.00015521 | 0.00019228 | 0.00022936 | 0.0 | 0.09 +Modify | 0.00052834 | 0.00054049 | 0.00055265 | 0.0 | 0.24 +Other | | 0.0006541 | | | 0.29 + +Nlocal: 150 ave 159 max 141 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 392 ave 395 max 389 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Neighs: 1229.5 ave 1773 max 686 min +Histogram: 1 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 2459 +Ave neighs/atom = 8.19667 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.4 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.4 new file mode 100644 index 0000000000..12c74993e9 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.4 @@ -0,0 +1,99 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ...3 + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.333 | 3.333 | 3.333 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49646402 0 0.49646402 0 + 10 300 0.017563343 0.015455559 0.47335833 0.02310606 0.49646439 0 + 20 300 0.034884214 0.06229069 0.40334177 0.093124582 0.49646635 0 + 30 300 0.052014828 0.14310163 0.28254277 0.21393694 0.49647971 0 + 40 300 0.069101095 0.52929788 0.089669015 0.79130033 0.88096934 0 + 50 300 0.085633039 1.1963022 -0.082792461 1.7884718 1.7056794 0 + 60 300 0.10165119 1.3928167 -0.37659239 2.082261 1.7056686 0 + 70 300 0.11729789 1.7069009 -0.84571914 2.5518169 1.7060978 0 + 80 300 0.1342802 15.358343 -3.368063 22.960722 19.592659 0 + 90 300 0.15266848 42.280432 -2.1623864 63.209247 61.04686 0 + 100 300 0.17004442 41.48079 -0.89904529 62.013782 61.114736 0 +Loop time of 0.170072 on 4 procs for 100 steps with 300 atoms + +Performance: 254010.216 tau/day, 587.987 timesteps/s +98.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.5497e-05 | 1.6868e-05 | 1.9789e-05 | 0.0 | 0.01 +Kspace | 0.16417 | 0.16472 | 0.16507 | 0.1 | 96.86 +Neigh | 0.00082564 | 0.0012031 | 0.0015855 | 0.9 | 0.71 +Comm | 0.0026572 | 0.0029335 | 0.003197 | 0.4 | 1.72 +Output | 0.00019169 | 0.00021791 | 0.00026536 | 0.0 | 0.13 +Modify | 0.00031304 | 0.00032955 | 0.00035334 | 0.0 | 0.19 +Other | | 0.0006474 | | | 0.38 + +Nlocal: 75 ave 81 max 70 min +Histogram: 2 0 0 0 0 0 0 1 0 1 +Nghost: 282.5 ave 290 max 274 min +Histogram: 1 0 0 1 0 0 0 0 1 1 +Neighs: 614.75 ave 981 max 285 min +Histogram: 1 1 0 0 0 0 0 1 0 1 + +Total # of neighbors = 2459 +Ave neighs/atom = 8.19667 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.8 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.8 new file mode 100644 index 0000000000..1fea13cd13 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.8 @@ -0,0 +1,99 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ...3 + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.317 | 3.317 | 3.317 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49646402 0 0.49646402 0 + 10 300 0.016258478 0.015455559 0.47335833 0.02310606 0.49646439 0 + 20 300 0.031442165 0.06229069 0.40334177 0.093124582 0.49646635 0 + 30 300 0.046462774 0.14310163 0.28254277 0.21393694 0.49647971 0 + 40 300 0.061176538 0.52929788 0.089669015 0.79130033 0.88096934 0 + 50 300 0.076244354 1.1963022 -0.082792461 1.7884718 1.7056794 0 + 60 300 0.091396809 1.3928167 -0.37659239 2.082261 1.7056686 0 + 70 300 0.10625911 1.7069009 -0.84571914 2.5518169 1.7060978 0 + 80 300 0.1204896 15.358343 -3.368063 22.960722 19.592659 0 + 90 300 0.13657618 42.280432 -2.1623864 63.209247 61.04686 0 + 100 300 0.15163732 41.48079 -0.89904529 62.013782 61.114736 0 +Loop time of 0.151654 on 8 procs for 100 steps with 300 atoms + +Performance: 284858.554 tau/day, 659.395 timesteps/s +97.7% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.3828e-05 | 1.6987e-05 | 1.955e-05 | 0.0 | 0.01 +Kspace | 0.14633 | 0.14689 | 0.14725 | 0.1 | 96.86 +Neigh | 0.00047135 | 0.00067887 | 0.00094771 | 0.0 | 0.45 +Comm | 0.0027649 | 0.0029218 | 0.0032592 | 0.3 | 1.93 +Output | 0.00022578 | 0.00024724 | 0.00030136 | 0.0 | 0.16 +Modify | 0.00018954 | 0.00021681 | 0.0002358 | 0.0 | 0.14 +Other | | 0.0006794 | | | 0.45 + +Nlocal: 37.5 ave 45 max 31 min +Histogram: 1 1 1 1 1 0 1 0 1 1 +Nghost: 200 ave 209 max 189 min +Histogram: 1 0 0 0 1 4 0 0 0 2 +Neighs: 307.375 ave 514 max 115 min +Histogram: 2 1 0 1 1 0 0 0 1 2 + +Total # of neighbors = 2459 +Ave neighs/atom = 8.19667 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.1 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.1 new file mode 100644 index 0000000000..bd9325dc4b --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.1 @@ -0,0 +1,92 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.34 | 3.34 | 3.34 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49683273 0 0.49683273 0 + 10 300 0.082981586 0.015479312 0.47369009 0.023141571 0.49683166 0 + 20 300 0.16677213 0.062386358 0.40356181 0.093267605 0.49682941 0 + 30 300 0.2506392 0.14331637 0.2825636 0.21425798 0.49682157 0 + 40 300 0.33466673 0.53041843 0.089505208 0.79297556 0.88248077 0 + 50 300 0.41812825 1.1948397 -0.083317439 1.7862853 1.7029679 0 + 60 300 0.50167894 1.3915614 -0.37745551 2.0803842 1.7029287 0 + 70 300 0.58574796 1.7061978 -0.84746071 2.5507657 1.703305 0 + 80 300 0.6700325 20.692093 -3.32971 30.93468 27.60497 0 + 90 300 0.75608635 48.999403 -2.1632167 73.254107 71.090891 0 + 100 300 0.84190726 51.199785 -0.81127924 76.543678 75.732399 0 +Loop time of 0.841921 on 1 procs for 100 steps with 300 atoms + +Performance: 51311.251 tau/day, 118.776 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.1206e-05 | 1.1206e-05 | 1.1206e-05 | 0.0 | 0.00 +Kspace | 0.835 | 0.835 | 0.835 | 0.0 | 99.18 +Neigh | 0.0040102 | 0.0040102 | 0.0040102 | 0.0 | 0.48 +Comm | 0.0012431 | 0.0012431 | 0.0012431 | 0.0 | 0.15 +Output | 0.0001545 | 0.0001545 | 0.0001545 | 0.0 | 0.02 +Modify | 0.0010202 | 0.0010202 | 0.0010202 | 0.0 | 0.12 +Other | | 0.000484 | | | 0.06 + +Nlocal: 300 ave 300 max 300 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 381 ave 381 max 381 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 2461 ave 2461 max 2461 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 2461 +Ave neighs/atom = 8.20333 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.16 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.16 new file mode 100644 index 0000000000..1e385c5fda --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.16 @@ -0,0 +1,92 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.313 | 3.501 | 3.689 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49683273 0 0.49683273 0 + 10 300 0.029647827 0.015479312 0.47369009 0.023141571 0.49683166 0 + 20 300 0.059298515 0.062386358 0.40356181 0.093267605 0.49682941 0 + 30 300 0.088926077 0.14331637 0.2825636 0.21425798 0.49682157 0 + 40 300 0.11850166 0.53041843 0.089505208 0.79297556 0.88248077 0 + 50 300 0.14820433 1.1948397 -0.083317439 1.7862853 1.7029679 0 + 60 300 0.17807317 1.3915614 -0.37745551 2.0803842 1.7029287 0 + 70 300 0.20803642 1.7061978 -0.84746071 2.5507657 1.703305 0 + 80 300 0.23797083 20.692093 -3.32971 30.93468 27.60497 0 + 90 300 0.26835561 48.999403 -2.1632167 73.254107 71.090891 0 + 100 300 0.29766583 51.199785 -0.81127924 76.543678 75.732399 0 +Loop time of 0.297693 on 16 procs for 100 steps with 300 atoms + +Performance: 145116.000 tau/day, 335.917 timesteps/s +98.8% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.1683e-05 | 1.6928e-05 | 2.4557e-05 | 0.0 | 0.01 +Kspace | 0.29245 | 0.29325 | 0.29366 | 0.1 | 98.51 +Neigh | 0.00017214 | 0.00042973 | 0.0010228 | 0.0 | 0.14 +Comm | 0.0021176 | 0.0024613 | 0.0028479 | 0.5 | 0.83 +Output | 0.00028467 | 0.00033538 | 0.00041103 | 0.0 | 0.11 +Modify | 8.893e-05 | 0.00015014 | 0.00027537 | 0.0 | 0.05 +Other | | 0.001048 | | | 0.35 + +Nlocal: 18.75 ave 33 max 6 min +Histogram: 2 6 0 0 0 0 2 1 2 3 +Nghost: 128.875 ave 198 max 71 min +Histogram: 7 1 0 0 0 0 0 1 5 2 +Neighs: 153.812 ave 490 max 14 min +Histogram: 8 0 3 0 1 1 0 0 1 2 + +Total # of neighbors = 2461 +Ave neighs/atom = 8.20333 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.2 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.2 new file mode 100644 index 0000000000..3f54069ffd --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.2 @@ -0,0 +1,92 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.354 | 3.354 | 3.355 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49683273 0 0.49683273 0 + 10 300 0.049199581 0.015479312 0.47369009 0.023141571 0.49683166 0 + 20 300 0.09860301 0.062386358 0.40356181 0.093267605 0.49682941 0 + 30 300 0.14826894 0.14331637 0.2825636 0.21425798 0.49682157 0 + 40 300 0.19769144 0.53041843 0.089505208 0.79297556 0.88248077 0 + 50 300 0.24735355 1.1948397 -0.083317439 1.7862853 1.7029679 0 + 60 300 0.29692888 1.3915614 -0.37745551 2.0803842 1.7029287 0 + 70 300 0.34639764 1.7061978 -0.84746071 2.5507657 1.703305 0 + 80 300 0.39633083 20.692093 -3.32971 30.93468 27.60497 0 + 90 300 0.44779778 48.999403 -2.1632167 73.254107 71.090891 0 + 100 300 0.49988627 51.199785 -0.81127924 76.543678 75.732399 0 +Loop time of 0.499909 on 2 procs for 100 steps with 300 atoms + +Performance: 86415.782 tau/day, 200.037 timesteps/s +99.5% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 9.0599e-06 | 1.3709e-05 | 1.8358e-05 | 0.0 | 0.00 +Kspace | 0.49314 | 0.49365 | 0.49416 | 0.1 | 98.75 +Neigh | 0.0016146 | 0.0021083 | 0.0026021 | 1.1 | 0.42 +Comm | 0.002754 | 0.0028276 | 0.0029013 | 0.1 | 0.57 +Output | 0.00015783 | 0.00019348 | 0.00022912 | 0.0 | 0.04 +Modify | 0.00049257 | 0.00049472 | 0.00049686 | 0.0 | 0.10 +Other | | 0.0006217 | | | 0.12 + +Nlocal: 150 ave 157 max 143 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 399 ave 402 max 396 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Neighs: 1230.5 ave 1756 max 705 min +Histogram: 1 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 2461 +Ave neighs/atom = 8.20333 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.4 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.4 new file mode 100644 index 0000000000..8b94402658 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.4 @@ -0,0 +1,92 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.333 | 3.333 | 3.333 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49683273 0 0.49683273 0 + 10 300 0.031973124 0.015479312 0.47369009 0.023141571 0.49683166 0 + 20 300 0.064628601 0.062386358 0.40356181 0.093267605 0.49682941 0 + 30 300 0.096747875 0.14331637 0.2825636 0.21425798 0.49682157 0 + 40 300 0.12864041 0.53041843 0.089505208 0.79297556 0.88248077 0 + 50 300 0.161134 1.1948397 -0.083317439 1.7862853 1.7029679 0 + 60 300 0.19359422 1.3915614 -0.37745551 2.0803842 1.7029287 0 + 70 300 0.22573543 1.7061978 -0.84746071 2.5507657 1.703305 0 + 80 300 0.25922132 20.692093 -3.32971 30.93468 27.60497 0 + 90 300 0.29452014 48.999403 -2.1632167 73.254107 71.090891 0 + 100 300 0.33031607 51.199785 -0.81127924 76.543678 75.732399 0 +Loop time of 0.330333 on 4 procs for 100 steps with 300 atoms + +Performance: 130777.056 tau/day, 302.725 timesteps/s +99.7% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.0014e-05 | 1.3471e-05 | 1.5497e-05 | 0.0 | 0.00 +Kspace | 0.32504 | 0.3255 | 0.3258 | 0.1 | 98.54 +Neigh | 0.00083303 | 0.0011883 | 0.0015609 | 0.8 | 0.36 +Comm | 0.0024087 | 0.0025436 | 0.0026674 | 0.2 | 0.77 +Output | 0.00017405 | 0.00020278 | 0.00024986 | 0.0 | 0.06 +Modify | 0.00028658 | 0.00031012 | 0.00033331 | 0.0 | 0.09 +Other | | 0.0005748 | | | 0.17 + +Nlocal: 75 ave 81 max 69 min +Histogram: 1 0 0 0 1 1 0 0 0 1 +Nghost: 287 ave 296 max 278 min +Histogram: 1 0 1 0 0 0 0 1 0 1 +Neighs: 615.25 ave 964 max 286 min +Histogram: 1 1 0 0 0 0 0 1 0 1 + +Total # of neighbors = 2461 +Ave neighs/atom = 8.20333 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.8 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.8 new file mode 100644 index 0000000000..3de3c25017 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.8 @@ -0,0 +1,92 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.317 | 3.317 | 3.317 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul + 0 300 0 0 0.49683273 0 0.49683273 0 + 10 300 0.023941755 0.015479312 0.47369009 0.023141571 0.49683166 0 + 20 300 0.047938108 0.062386358 0.40356181 0.093267605 0.49682941 0 + 30 300 0.071953773 0.14331637 0.2825636 0.21425798 0.49682157 0 + 40 300 0.095941782 0.53041843 0.089505208 0.79297556 0.88248077 0 + 50 300 0.12011361 1.1948397 -0.083317439 1.7862853 1.7029679 0 + 60 300 0.14433384 1.3915614 -0.37745551 2.0803842 1.7029287 0 + 70 300 0.16875505 1.7061978 -0.84746071 2.5507657 1.703305 0 + 80 300 0.193331 20.692093 -3.32971 30.93468 27.60497 0 + 90 300 0.21844888 48.999403 -2.1632167 73.254107 71.090891 0 + 100 300 0.24417853 51.199785 -0.81127924 76.543678 75.732399 0 +Loop time of 0.244198 on 8 procs for 100 steps with 300 atoms + +Performance: 176905.349 tau/day, 409.503 timesteps/s +99.7% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 9.7752e-06 | 1.4246e-05 | 1.955e-05 | 0.0 | 0.01 +Kspace | 0.23946 | 0.23972 | 0.24009 | 0.0 | 98.17 +Neigh | 0.00049043 | 0.00071204 | 0.00095773 | 0.0 | 0.29 +Comm | 0.0025063 | 0.0026675 | 0.0027597 | 0.2 | 1.09 +Output | 0.00019646 | 0.00021604 | 0.00026321 | 0.0 | 0.09 +Modify | 0.00017905 | 0.0001913 | 0.00020766 | 0.0 | 0.08 +Other | | 0.0006773 | | | 0.28 + +Nlocal: 37.5 ave 42 max 33 min +Histogram: 2 1 0 1 0 0 1 0 1 2 +Nghost: 202.25 ave 212 max 194 min +Histogram: 1 0 2 1 0 2 0 1 0 1 +Neighs: 307.625 ave 505 max 129 min +Histogram: 3 0 0 1 1 0 0 0 1 2 + +Total # of neighbors = 2461 +Ave neighs/atom = 8.20333 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.16 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.16 new file mode 100644 index 0000000000..f2223064e0 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.16 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 2 by 2 by 4 MPI processor grid + 4096 atoms + Time spent = 0.000503302 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.401 | 3.401 | 3.401 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87413076 0 1.3753199 1.4996338 + 10 1.5001167 -0.84976141 0 1.3998642 1.4997504 + 20 1.5002402 -0.84977464 0 1.4000363 1.499874 + 30 1.5003611 -0.84978325 0 1.4002089 1.4999948 + 40 1.5004736 -0.84977869 0 1.4003823 1.5001073 + 50 1.5005703 -0.8497468 0 1.4005591 1.5002039 + 60 1.5006418 -0.84967646 0 1.4007366 1.5002754 + 70 1.5006785 -0.84955497 0 1.4009132 1.5003121 + 80 1.5006711 -0.849369 0 1.4010881 1.5003047 + 90 1.500611 -0.84910811 0 1.4012589 1.5002446 + 100 1.5004911 -0.84870167 0 1.4014854 1.5001247 +Loop time of 46.4857 on 16 procs for 100 steps with 4096 atoms + +Performance: 929.317 tau/day, 2.151 timesteps/s +99.8% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00023437 | 0.00024788 | 0.00026894 | 0.0 | 0.00 +Kspace | 46.476 | 46.476 | 46.476 | 0.0 | 99.98 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0062859 | 0.0067717 | 0.0072649 | 0.3 | 0.01 +Output | 0.0004127 | 0.00044075 | 0.00050807 | 0.0 | 0.00 +Modify | 0.00099325 | 0.0010343 | 0.0010939 | 0.1 | 0.00 +Other | | 0.001459 | | | 0.00 + +Nlocal: 256 ave 256 max 256 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Nghost: 1265 ave 1265 max 1265 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Neighs: 4096 ave 4096 max 4096 min +Histogram: 16 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:47 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.8 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.8 new file mode 100644 index 0000000000..8d3702a8b3 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.8 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 2 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000281811 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.416 | 3.416 | 3.416 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87413076 0 1.3753199 1.4996338 + 10 1.5001095 -0.85040058 0 1.3992143 1.4997433 + 20 1.5002258 -0.85039456 0 1.3993947 1.4998595 + 30 1.5003395 -0.85038368 0 1.3995761 1.4999732 + 40 1.5004452 -0.85035944 0 1.3997589 1.5000789 + 50 1.5005354 -0.85030783 0 1.3999457 1.500169 + 60 1.5006008 -0.85021779 0 1.4001339 1.5002344 + 70 1.500632 -0.8500769 0 1.4003215 1.5002656 + 80 1.5006197 -0.84987187 0 1.4005081 1.5002533 + 90 1.5005554 -0.84959251 0 1.400691 1.500189 + 100 1.500432 -0.84916846 0 1.4009301 1.5000657 +Loop time of 86.1477 on 8 procs for 100 steps with 4096 atoms + +Performance: 501.464 tau/day, 1.161 timesteps/s +99.9% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.000314 | 0.00033289 | 0.00035048 | 0.0 | 0.00 +Kspace | 86.136 | 86.136 | 86.136 | 0.0 | 99.99 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0069821 | 0.0073864 | 0.0077834 | 0.3 | 0.01 +Output | 0.00038719 | 0.00041264 | 0.00047517 | 0.0 | 0.00 +Modify | 0.0018711 | 0.0019454 | 0.0020905 | 0.1 | 0.00 +Other | | 0.001762 | | | 0.00 + +Nlocal: 512 ave 512 max 512 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Nghost: 1685 ave 1685 max 1685 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Neighs: 8192 ave 8192 max 8192 min +Histogram: 8 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:01:28 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.1 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.1 new file mode 100644 index 0000000000..0749de3832 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.1 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 1 by 1 by 1 MPI processor grid + 4096 atoms + Time spent = 0.000584364 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.723 | 3.723 | 3.723 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87378819 0 1.3756625 1.4996338 + 10 1.5000004 -0.87378882 0 1.3756625 1.4996342 + 20 1.4999998 -0.87378782 0 1.3756625 1.4996336 + 30 1.4999934 -0.87377823 0 1.3756625 1.4996272 + 40 1.4999745 -0.87374997 0 1.3756625 1.4996083 + 50 1.4999347 -0.87369019 0 1.3756625 1.4995685 + 60 1.4998637 -0.87358381 0 1.3756625 1.4994975 + 70 1.4997506 -0.87341428 0 1.3756624 1.4993845 + 80 1.4995842 -0.87316464 0 1.3756624 1.499218 + 90 1.4993536 -0.87281897 0 1.3756624 1.4989876 + 100 1.4990503 -0.87236411 0 1.3756624 1.4986843 +Loop time of 5.26537 on 1 procs for 100 steps with 4096 atoms + +Performance: 8204.550 tau/day, 18.992 timesteps/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0011349 | 0.0011349 | 0.0011349 | 0.0 | 0.02 +Kspace | 5.2375 | 5.2375 | 5.2375 | 0.0 | 99.47 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0090225 | 0.0090225 | 0.0090225 | 0.0 | 0.17 +Output | 0.0004127 | 0.0004127 | 0.0004127 | 0.0 | 0.01 +Modify | 0.012851 | 0.012851 | 0.012851 | 0.0 | 0.24 +Other | | 0.004441 | | | 0.08 + +Nlocal: 4096 ave 4096 max 4096 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 5165 ave 5165 max 5165 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 65536 ave 65536 max 65536 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:06 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.16 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.16 new file mode 100644 index 0000000000..6af26f7b81 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.16 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 2 by 2 by 4 MPI processor grid + 4096 atoms + Time spent = 0.000507593 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.401 | 3.401 | 3.401 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87378819 0 1.3756625 1.4996338 + 10 1.5000004 -0.87378882 0 1.3756625 1.4996342 + 20 1.4999998 -0.87378782 0 1.3756625 1.4996336 + 30 1.4999934 -0.87377823 0 1.3756625 1.4996272 + 40 1.4999745 -0.87374997 0 1.3756625 1.4996083 + 50 1.4999347 -0.87369019 0 1.3756625 1.4995685 + 60 1.4998637 -0.87358381 0 1.3756625 1.4994975 + 70 1.4997506 -0.87341428 0 1.3756624 1.4993845 + 80 1.4995842 -0.87316464 0 1.3756624 1.499218 + 90 1.4993536 -0.87281897 0 1.3756624 1.4989876 + 100 1.4990503 -0.87236411 0 1.3756624 1.4986843 +Loop time of 0.570389 on 16 procs for 100 steps with 4096 atoms + +Performance: 75737.813 tau/day, 175.319 timesteps/s +99.3% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00024104 | 0.00025283 | 0.00029206 | 0.0 | 0.04 +Kspace | 0.56153 | 0.56176 | 0.56189 | 0.0 | 98.49 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0055203 | 0.0057825 | 0.0061858 | 0.2 | 1.01 +Output | 0.00038505 | 0.00040831 | 0.00048184 | 0.0 | 0.07 +Modify | 0.00096965 | 0.00099662 | 0.0010159 | 0.0 | 0.17 +Other | | 0.001192 | | | 0.21 + +Nlocal: 256 ave 256 max 256 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Nghost: 1265 ave 1265 max 1265 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Neighs: 4096 ave 4096 max 4096 min +Histogram: 16 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:03 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.2 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.2 new file mode 100644 index 0000000000..bcc61485ca --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.2 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 1 by 1 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000455141 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.634 | 3.634 | 3.634 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87378819 0 1.3756625 1.4996338 + 10 1.5000004 -0.87378882 0 1.3756625 1.4996342 + 20 1.4999998 -0.87378782 0 1.3756625 1.4996336 + 30 1.4999934 -0.87377823 0 1.3756625 1.4996272 + 40 1.4999745 -0.87374997 0 1.3756625 1.4996083 + 50 1.4999347 -0.87369019 0 1.3756625 1.4995685 + 60 1.4998637 -0.87358381 0 1.3756625 1.4994975 + 70 1.4997506 -0.87341428 0 1.3756624 1.4993845 + 80 1.4995842 -0.87316464 0 1.3756624 1.499218 + 90 1.4993536 -0.87281897 0 1.3756624 1.4989876 + 100 1.4990503 -0.87236411 0 1.3756624 1.4986843 +Loop time of 2.73149 on 2 procs for 100 steps with 4096 atoms + +Performance: 15815.560 tau/day, 36.610 timesteps/s +99.7% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00070763 | 0.00071537 | 0.00072312 | 0.0 | 0.03 +Kspace | 2.7111 | 2.7112 | 2.7112 | 0.0 | 99.26 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0096555 | 0.0097489 | 0.0098424 | 0.1 | 0.36 +Output | 0.00036025 | 0.0003823 | 0.00040436 | 0.0 | 0.01 +Modify | 0.0063472 | 0.0064594 | 0.0065715 | 0.1 | 0.24 +Other | | 0.00299 | | | 0.11 + +Nlocal: 2048 ave 2048 max 2048 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 3685 ave 3685 max 3685 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 32768 ave 32768 max 32768 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:04 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.4 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.4 new file mode 100644 index 0000000000..54e010c8fd --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.4 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 1 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000329494 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.497 | 3.497 | 3.497 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87378819 0 1.3756625 1.4996338 + 10 1.5000004 -0.87378882 0 1.3756625 1.4996342 + 20 1.4999998 -0.87378782 0 1.3756625 1.4996336 + 30 1.4999934 -0.87377823 0 1.3756625 1.4996272 + 40 1.4999745 -0.87374997 0 1.3756625 1.4996083 + 50 1.4999347 -0.87369019 0 1.3756625 1.4995685 + 60 1.4998637 -0.87358381 0 1.3756625 1.4994975 + 70 1.4997506 -0.87341428 0 1.3756624 1.4993845 + 80 1.4995842 -0.87316464 0 1.3756624 1.499218 + 90 1.4993536 -0.87281897 0 1.3756624 1.4989876 + 100 1.4990503 -0.87236411 0 1.3756624 1.4986843 +Loop time of 1.53742 on 4 procs for 100 steps with 4096 atoms + +Performance: 28099.005 tau/day, 65.044 timesteps/s +99.7% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00044894 | 0.00045562 | 0.0004611 | 0.0 | 0.03 +Kspace | 1.5223 | 1.5225 | 1.5225 | 0.0 | 99.03 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0085156 | 0.0086777 | 0.0088782 | 0.1 | 0.56 +Output | 0.00034738 | 0.0003686 | 0.0004015 | 0.0 | 0.02 +Modify | 0.0032606 | 0.0033693 | 0.0034289 | 0.1 | 0.22 +Other | | 0.002084 | | | 0.14 + +Nlocal: 1024 ave 1024 max 1024 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 2525 ave 2525 max 2525 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 16384 ave 16384 max 16384 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:03 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.8 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.8 new file mode 100644 index 0000000000..d5d38d6804 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.8 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 2 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000284672 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.416 | 3.416 | 3.416 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87378819 0 1.3756625 1.4996338 + 10 1.5000004 -0.87378882 0 1.3756625 1.4996342 + 20 1.4999998 -0.87378782 0 1.3756625 1.4996336 + 30 1.4999934 -0.87377823 0 1.3756625 1.4996272 + 40 1.4999745 -0.87374997 0 1.3756625 1.4996083 + 50 1.4999347 -0.87369019 0 1.3756625 1.4995685 + 60 1.4998637 -0.87358381 0 1.3756625 1.4994975 + 70 1.4997506 -0.87341428 0 1.3756624 1.4993845 + 80 1.4995842 -0.87316464 0 1.3756624 1.499218 + 90 1.4993536 -0.87281897 0 1.3756624 1.4989876 + 100 1.4990503 -0.87236411 0 1.3756624 1.4986843 +Loop time of 0.902102 on 8 procs for 100 steps with 4096 atoms + +Performance: 47888.152 tau/day, 110.852 timesteps/s +99.7% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00030732 | 0.00031349 | 0.00032663 | 0.0 | 0.03 +Kspace | 0.89112 | 0.89138 | 0.8916 | 0.0 | 98.81 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0064399 | 0.0066807 | 0.0070164 | 0.2 | 0.74 +Output | 0.00034571 | 0.00036666 | 0.00041723 | 0.0 | 0.04 +Modify | 0.0018673 | 0.0019273 | 0.0020192 | 0.1 | 0.21 +Other | | 0.001431 | | | 0.16 + +Nlocal: 512 ave 512 max 512 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Nghost: 1685 ave 1685 max 1685 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Neighs: 8192 ave 8192 max 8192 min +Histogram: 8 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:02 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.1 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.1 new file mode 100644 index 0000000000..d8b782e41d --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.1 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 1 by 1 by 1 MPI processor grid + 4096 atoms + Time spent = 0.000631332 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.723 | 3.723 | 3.723 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87394226 0 1.3755084 1.4996338 + 10 1.5000144 -0.87365638 0 1.375816 1.4996482 + 20 1.5000284 -0.87366526 0 1.3758281 1.4996622 + 30 1.5000364 -0.87366516 0 1.3758401 1.4996702 + 40 1.5000313 -0.8736496 0 1.375848 1.4996651 + 50 1.5000039 -0.87360069 0 1.3758558 1.4996377 + 60 1.4999432 -0.87350118 0 1.3758644 1.499577 + 70 1.499838 -0.87333517 0 1.3758726 1.4994719 + 80 1.4996772 -0.87308644 0 1.3758801 1.4993111 + 90 1.4994505 -0.87274307 0 1.3758836 1.4990844 + 100 1.4991498 -0.8722911 0 1.3758846 1.4987838 +Loop time of 9.59682 on 1 procs for 100 steps with 4096 atoms + +Performance: 4501.489 tau/day, 10.420 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0011375 | 0.0011375 | 0.0011375 | 0.0 | 0.01 +Kspace | 9.5688 | 9.5688 | 9.5688 | 0.0 | 99.71 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.009017 | 0.009017 | 0.009017 | 0.0 | 0.09 +Output | 0.0004344 | 0.0004344 | 0.0004344 | 0.0 | 0.00 +Modify | 0.012987 | 0.012987 | 0.012987 | 0.0 | 0.14 +Other | | 0.004481 | | | 0.05 + +Nlocal: 4096 ave 4096 max 4096 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 5165 ave 5165 max 5165 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 65536 ave 65536 max 65536 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:10 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.16 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.16 new file mode 100644 index 0000000000..43bcfb6770 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.16 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 2 by 2 by 4 MPI processor grid + 4096 atoms + Time spent = 0.000500917 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.401 | 3.401 | 3.401 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87394226 0 1.3755084 1.4996338 + 10 1.5000144 -0.87365638 0 1.375816 1.4996482 + 20 1.5000284 -0.87366526 0 1.3758281 1.4996622 + 30 1.5000364 -0.87366516 0 1.3758401 1.4996702 + 40 1.5000313 -0.8736496 0 1.375848 1.4996651 + 50 1.5000039 -0.87360069 0 1.3758558 1.4996377 + 60 1.4999432 -0.87350118 0 1.3758644 1.499577 + 70 1.499838 -0.87333517 0 1.3758726 1.4994719 + 80 1.4996772 -0.87308644 0 1.3758801 1.4993111 + 90 1.4994505 -0.87274307 0 1.3758836 1.4990844 + 100 1.4991498 -0.8722911 0 1.3758846 1.4987838 +Loop time of 1.20528 on 16 procs for 100 steps with 4096 atoms + +Performance: 35842.175 tau/day, 82.968 timesteps/s +99.3% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00021839 | 0.00025332 | 0.00029278 | 0.0 | 0.02 +Kspace | 1.1945 | 1.1948 | 1.195 | 0.0 | 99.13 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0066545 | 0.0069329 | 0.0072389 | 0.2 | 0.58 +Output | 0.0003922 | 0.00042732 | 0.00054955 | 0.0 | 0.04 +Modify | 0.0010166 | 0.0011965 | 0.0014412 | 0.3 | 0.10 +Other | | 0.001724 | | | 0.14 + +Nlocal: 256 ave 256 max 256 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Nghost: 1265 ave 1265 max 1265 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Neighs: 4096 ave 4096 max 4096 min +Histogram: 16 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.2 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.2 new file mode 100644 index 0000000000..9f4f44153b --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.2 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 1 by 1 by 2 MPI processor grid + 4096 atoms + Time spent = 0.00044775 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.634 | 3.634 | 3.634 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87394226 0 1.3755084 1.4996338 + 10 1.5000144 -0.87365638 0 1.375816 1.4996482 + 20 1.5000284 -0.87366526 0 1.3758281 1.4996622 + 30 1.5000364 -0.87366516 0 1.3758401 1.4996702 + 40 1.5000313 -0.8736496 0 1.375848 1.4996651 + 50 1.5000039 -0.87360069 0 1.3758558 1.4996377 + 60 1.4999432 -0.87350118 0 1.3758644 1.499577 + 70 1.499838 -0.87333517 0 1.3758726 1.4994719 + 80 1.4996772 -0.87308644 0 1.3758801 1.4993111 + 90 1.4994505 -0.87274307 0 1.3758836 1.4990844 + 100 1.4991498 -0.8722911 0 1.3758846 1.4987838 +Loop time of 5.14681 on 2 procs for 100 steps with 4096 atoms + +Performance: 8393.542 tau/day, 19.429 timesteps/s +99.9% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00070882 | 0.00072873 | 0.00074863 | 0.0 | 0.01 +Kspace | 5.1257 | 5.1258 | 5.1258 | 0.0 | 99.59 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.010188 | 0.010291 | 0.010394 | 0.1 | 0.20 +Output | 0.00042391 | 0.00044322 | 0.00046253 | 0.0 | 0.01 +Modify | 0.0063772 | 0.006551 | 0.0067248 | 0.2 | 0.13 +Other | | 0.003026 | | | 0.06 + +Nlocal: 2048 ave 2048 max 2048 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 3685 ave 3685 max 3685 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 32768 ave 32768 max 32768 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:05 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.4 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.4 new file mode 100644 index 0000000000..d6a78bb193 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.4 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 1 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000317335 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.497 | 3.497 | 3.497 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87394226 0 1.3755084 1.4996338 + 10 1.5000144 -0.87365638 0 1.375816 1.4996482 + 20 1.5000284 -0.87366526 0 1.3758281 1.4996622 + 30 1.5000364 -0.87366516 0 1.3758401 1.4996702 + 40 1.5000313 -0.8736496 0 1.375848 1.4996651 + 50 1.5000039 -0.87360069 0 1.3758558 1.4996377 + 60 1.4999432 -0.87350118 0 1.3758644 1.499577 + 70 1.499838 -0.87333517 0 1.3758726 1.4994719 + 80 1.4996772 -0.87308644 0 1.3758801 1.4993111 + 90 1.4994505 -0.87274307 0 1.3758836 1.4990844 + 100 1.4991498 -0.8722911 0 1.3758846 1.4987838 +Loop time of 2.94274 on 4 procs for 100 steps with 4096 atoms + +Performance: 14680.187 tau/day, 33.982 timesteps/s +99.7% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00048852 | 0.00049287 | 0.00050163 | 0.0 | 0.02 +Kspace | 2.9277 | 2.9279 | 2.928 | 0.0 | 99.49 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0081494 | 0.0083126 | 0.0084655 | 0.1 | 0.28 +Output | 0.00034475 | 0.00040233 | 0.00043464 | 0.0 | 0.01 +Modify | 0.0034239 | 0.0035145 | 0.0036252 | 0.1 | 0.12 +Other | | 0.00216 | | | 0.07 + +Nlocal: 1024 ave 1024 max 1024 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 2525 ave 2525 max 2525 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 16384 ave 16384 max 16384 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:03 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.8 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.8 new file mode 100644 index 0000000000..70716bbcbd --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.8 @@ -0,0 +1,102 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (2 2 2) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (16 16 16) + 2 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000422239 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 16 16 16 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.416 | 3.416 | 3.416 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.87394226 0 1.3755084 1.4996338 + 10 1.5000144 -0.87365638 0 1.375816 1.4996482 + 20 1.5000284 -0.87366526 0 1.3758281 1.4996622 + 30 1.5000364 -0.87366516 0 1.3758401 1.4996702 + 40 1.5000313 -0.8736496 0 1.375848 1.4996651 + 50 1.5000039 -0.87360069 0 1.3758558 1.4996377 + 60 1.4999432 -0.87350118 0 1.3758644 1.499577 + 70 1.499838 -0.87333517 0 1.3758726 1.4994719 + 80 1.4996772 -0.87308644 0 1.3758801 1.4993111 + 90 1.4994505 -0.87274307 0 1.3758836 1.4990844 + 100 1.4991498 -0.8722911 0 1.3758846 1.4987838 +Loop time of 1.75933 on 8 procs for 100 steps with 4096 atoms + +Performance: 24554.819 tau/day, 56.840 timesteps/s +99.4% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00030684 | 0.00031838 | 0.00032926 | 0.0 | 0.02 +Kspace | 1.7474 | 1.7477 | 1.748 | 0.0 | 99.34 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0068667 | 0.0072413 | 0.0075011 | 0.2 | 0.41 +Output | 0.00036955 | 0.00038695 | 0.00044942 | 0.0 | 0.02 +Modify | 0.0018206 | 0.0019438 | 0.0020213 | 0.1 | 0.11 +Other | | 0.001739 | | | 0.10 + +Nlocal: 512 ave 512 max 512 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Nghost: 1685 ave 1685 max 1685 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Neighs: 8192 ave 8192 max 8192 min +Histogram: 8 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 65536 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:02 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.1 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.1 new file mode 100644 index 0000000000..37d12bb37d --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.1 @@ -0,0 +1,105 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos direct 0.001 + +timestep 0.005 +thermo 1 +run 20 +Setting up ScaFaCoS with solver direct ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 10.3 | 10.3 | 10.3 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.00141207 + 1 18.780041 -10.770002 0 17.371889 0.017679155 + 2 65.289192 -11.084705 0 86.751149 0.06146194 + 3 121.92987 -7.0625759 0 175.64933 0.11478234 + 4 185.78164 -5.8777512 0 272.51604 0.17489112 + 5 286.36222 -4.382053 0 424.73173 0.26957567 + 6 481.42206 -4.3095567 0 717.1014 0.4532011 + 7 488.59167 -3.8685194 0 728.2861 0.45995044 + 8 497.85287 -3.0417966 0 742.99073 0.46866874 + 9 499.61615 -3.419003 0 745.2558 0.47032866 + 10 502.63684 -2.8360961 0 750.36521 0.47317227 + 11 504.4846 -2.7628105 0 753.20736 0.47491172 + 12 506.54485 -2.8460356 0 756.21142 0.47685119 + 13 508.27211 -2.730935 0 758.91482 0.4784772 + 14 510.57045 -2.6094877 0 762.48033 0.48064081 + 15 513.14798 -2.7150827 0 766.23717 0.48306726 + 16 515.78124 -2.3961811 0 770.50201 0.48554615 + 17 515.70265 -2.2982683 0 770.48215 0.48547216 + 18 515.7081 -2.1515983 0 770.63699 0.4854773 + 19 515.74906 -2.0581436 0 770.79182 0.48551586 + 20 515.70883 -1.8922577 0 770.89742 0.48547798 +Loop time of 0.52055 on 1 procs for 20 steps with 1000 atoms + +Performance: 16597.836 tau/day, 38.421 timesteps/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00027752 | 0.00027752 | 0.00027752 | 0.0 | 0.05 +Kspace | 0.35879 | 0.35879 | 0.35879 | 0.0 | 68.93 +Neigh | 0.15946 | 0.15946 | 0.15946 | 0.0 | 30.63 +Comm | 0.00024056 | 0.00024056 | 0.00024056 | 0.0 | 0.05 +Output | 0.00034761 | 0.00034761 | 0.00034761 | 0.0 | 0.07 +Modify | 0.00071192 | 0.00071192 | 0.00071192 | 0.0 | 0.14 +Other | | 0.0007269 | | | 0.14 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 247817 ave 247817 max 247817 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.2 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.2 new file mode 100644 index 0000000000..7a22e62bce --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.2 @@ -0,0 +1,105 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos direct 0.001 + +timestep 0.005 +thermo 1 +run 20 +Setting up ScaFaCoS with solver direct ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.48 | 6.861 | 7.243 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.00141207 + 1 18.780041 -10.770002 0 17.371889 0.017679155 + 2 65.289192 -11.084705 0 86.751149 0.06146194 + 3 121.92987 -7.0625759 0 175.64933 0.11478234 + 4 185.78164 -5.8777512 0 272.51604 0.17489112 + 5 286.36222 -4.382053 0 424.73173 0.26957567 + 6 481.42206 -4.3095567 0 717.1014 0.4532011 + 7 488.59167 -3.8685194 0 728.2861 0.45995044 + 8 497.85287 -3.0417966 0 742.99073 0.46866874 + 9 499.61615 -3.419003 0 745.2558 0.47032866 + 10 502.63684 -2.8360961 0 750.36521 0.47317227 + 11 504.4846 -2.7628105 0 753.20736 0.47491172 + 12 506.54485 -2.8460356 0 756.21142 0.47685119 + 13 508.27211 -2.730935 0 758.91482 0.4784772 + 14 510.57045 -2.6094877 0 762.48033 0.48064081 + 15 513.14798 -2.7150827 0 766.23717 0.48306726 + 16 515.78124 -2.3961811 0 770.50201 0.48554615 + 17 515.70265 -2.2982683 0 770.48215 0.48547216 + 18 515.7081 -2.1515983 0 770.63699 0.4854773 + 19 515.74906 -2.0581436 0 770.79182 0.48551586 + 20 515.70883 -1.8922577 0 770.89742 0.48547798 +Loop time of 0.330519 on 2 procs for 20 steps with 1000 atoms + +Performance: 26140.700 tau/day, 60.511 timesteps/s +99.6% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0002749 | 0.00027692 | 0.00027895 | 0.0 | 0.08 +Kspace | 0.21565 | 0.24173 | 0.26782 | 5.3 | 73.14 +Neigh | 0.058644 | 0.084906 | 0.11117 | 9.0 | 25.69 +Comm | 0.002033 | 0.0022832 | 0.0025334 | 0.5 | 0.69 +Output | 0.00035667 | 0.0004549 | 0.00055313 | 0.0 | 0.14 +Modify | 0.0004704 | 0.00050521 | 0.00054002 | 0.0 | 0.15 +Other | | 0.0003613 | | | 0.11 + +Nlocal: 500 ave 516 max 484 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 456.5 ave 475 max 438 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Neighs: 123908 ave 172139 max 75678 min +Histogram: 1 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.4 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.4 new file mode 100644 index 0000000000..51d0f8c47e --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.4 @@ -0,0 +1,105 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos direct 0.001 + +timestep 0.005 +thermo 1 +run 20 +Setting up ScaFaCoS with solver direct ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.837 | 5.123 | 5.6 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.00141207 + 1 18.780041 -10.770002 0 17.371889 0.017679155 + 2 65.289192 -11.084705 0 86.751149 0.06146194 + 3 121.92987 -7.0625759 0 175.64933 0.11478234 + 4 185.78164 -5.8777512 0 272.51604 0.17489112 + 5 286.36222 -4.382053 0 424.73173 0.26957567 + 6 481.42206 -4.3095567 0 717.1014 0.4532011 + 7 488.59167 -3.8685194 0 728.2861 0.45995044 + 8 497.85287 -3.0417966 0 742.99073 0.46866874 + 9 499.61615 -3.419003 0 745.2558 0.47032866 + 10 502.63684 -2.8360961 0 750.36521 0.47317227 + 11 504.4846 -2.7628105 0 753.20736 0.47491172 + 12 506.54485 -2.8460356 0 756.21142 0.47685119 + 13 508.27211 -2.730935 0 758.91482 0.4784772 + 14 510.57045 -2.6094877 0 762.48033 0.48064081 + 15 513.14798 -2.7150827 0 766.23717 0.48306726 + 16 515.78124 -2.3961811 0 770.50201 0.48554615 + 17 515.70265 -2.2982683 0 770.48215 0.48547216 + 18 515.7081 -2.1515983 0 770.63699 0.4854773 + 19 515.74906 -2.0581436 0 770.79182 0.48551586 + 20 515.70883 -1.8922577 0 770.89742 0.48547798 +Loop time of 0.197141 on 4 procs for 20 steps with 1000 atoms + +Performance: 43826.435 tau/day, 101.450 timesteps/s +99.6% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0002718 | 0.00027621 | 0.00028539 | 0.0 | 0.14 +Kspace | 0.12861 | 0.14654 | 0.16542 | 3.7 | 74.33 +Neigh | 0.027906 | 0.046895 | 0.064943 | 6.6 | 23.79 +Comm | 0.0022087 | 0.0024236 | 0.0026295 | 0.4 | 1.23 +Output | 0.0003252 | 0.00044608 | 0.0006001 | 0.0 | 0.23 +Modify | 0.00016618 | 0.0001756 | 0.00018811 | 0.0 | 0.09 +Other | | 0.0003839 | | | 0.19 + +Nlocal: 250 ave 259 max 238 min +Histogram: 1 0 0 1 0 0 0 0 0 2 +Nghost: 672.25 ave 683 max 663 min +Histogram: 2 0 0 0 0 0 0 0 1 1 +Neighs: 61954.2 ave 97157 max 25016 min +Histogram: 1 0 0 1 0 0 1 0 0 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.8 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.8 new file mode 100644 index 0000000000..90119a101b --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.8 @@ -0,0 +1,105 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos direct 0.001 + +timestep 0.005 +thermo 1 +run 20 +Setting up ScaFaCoS with solver direct ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.164 | 4.26 | 4.546 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.00141207 + 1 18.780041 -10.770002 0 17.371889 0.017679155 + 2 65.289192 -11.084705 0 86.751149 0.06146194 + 3 121.92987 -7.0625759 0 175.64933 0.11478234 + 4 185.78164 -5.8777512 0 272.51604 0.17489112 + 5 286.36222 -4.382053 0 424.73173 0.26957567 + 6 481.42206 -4.3095567 0 717.1014 0.4532011 + 7 488.59167 -3.8685194 0 728.2861 0.45995044 + 8 497.85287 -3.0417966 0 742.99073 0.46866874 + 9 499.61615 -3.419003 0 745.2558 0.47032866 + 10 502.63684 -2.8360961 0 750.36521 0.47317227 + 11 504.4846 -2.7628105 0 753.20736 0.47491172 + 12 506.54485 -2.8460356 0 756.21142 0.47685119 + 13 508.27211 -2.730935 0 758.91482 0.4784772 + 14 510.57045 -2.6094877 0 762.48033 0.48064081 + 15 513.14798 -2.7150827 0 766.23717 0.48306726 + 16 515.78124 -2.3961811 0 770.50201 0.48554615 + 17 515.70265 -2.2982683 0 770.48215 0.48547216 + 18 515.7081 -2.1515983 0 770.63699 0.4854773 + 19 515.74906 -2.0581436 0 770.79182 0.48551586 + 20 515.70883 -1.8922577 0 770.89742 0.48547798 +Loop time of 0.107014 on 8 procs for 20 steps with 1000 atoms + +Performance: 80736.875 tau/day, 186.891 timesteps/s +98.8% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00027704 | 0.00029281 | 0.00035691 | 0.0 | 0.27 +Kspace | 0.069458 | 0.07877 | 0.089146 | 2.5 | 73.61 +Neigh | 0.013525 | 0.024156 | 0.033524 | 4.7 | 22.57 +Comm | 0.002552 | 0.0029828 | 0.0033691 | 0.5 | 2.79 +Output | 0.00037909 | 0.00051123 | 0.00070429 | 0.0 | 0.48 +Modify | 8.9645e-05 | 9.5487e-05 | 0.000103 | 0.0 | 0.09 +Other | | 0.0002059 | | | 0.19 + +Nlocal: 125 ave 133 max 113 min +Histogram: 2 0 0 0 0 1 1 0 2 2 +Nghost: 773.625 ave 788 max 764 min +Histogram: 1 1 2 1 1 0 0 0 1 1 +Neighs: 30977.1 ave 50690 max 10447 min +Histogram: 1 1 1 0 1 1 0 0 2 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.1 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.1 new file mode 100644 index 0000000000..432ea72b67 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.1 @@ -0,0 +1,109 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ...3 + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 10.3 | 10.3 | 10.3 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417141 0 1.6235786 0.00141207 + 1 18.780412 -10.770009 0 17.372438 0.017679504 + 2 65.294131 -11.084501 0 86.758754 0.06146659 + 3 121.92555 -7.0612033 0 175.64423 0.11477827 + 4 185.71165 -5.8781334 0 272.41077 0.17482523 + 5 286.28339 -4.3800108 0 424.61565 0.26950146 + 6 481.28097 -4.3052012 0 716.89433 0.45306828 + 7 487.26022 -3.8672741 0 726.29216 0.45869703 + 8 493.65478 -3.0242687 0 736.71742 0.46471675 + 9 495.66203 -3.4336343 0 739.31592 0.46660633 + 10 498.41831 -2.8837072 0 743.99613 0.46920104 + 11 499.20944 -2.7724783 0 745.29287 0.46994579 + 12 500.97345 -2.8281484 0 747.88057 0.4716064 + 13 507.46412 -2.7752775 0 757.65971 0.47771658 + 14 525.35729 -2.5749814 0 784.67292 0.49456085 + 15 563.9578 -2.9982381 0 842.09253 0.5308986 + 16 645.47602 -2.5519203 0 964.69389 0.60763822 + 17 647.09276 -2.2568468 0 967.41166 0.60916019 + 18 647.12596 -2.2791003 0 967.43915 0.60919144 + 19 647.24862 -2.2495226 0 967.65253 0.60930691 + 20 647.51175 -2.0239179 0 968.27244 0.60955462 +Loop time of 0.644143 on 1 procs for 20 steps with 1000 atoms + +Performance: 13413.173 tau/day, 31.049 timesteps/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00027657 | 0.00027657 | 0.00027657 | 0.0 | 0.04 +Kspace | 0.4788 | 0.4788 | 0.4788 | 0.0 | 74.33 +Neigh | 0.16279 | 0.16279 | 0.16279 | 0.0 | 25.27 +Comm | 0.00021696 | 0.00021696 | 0.00021696 | 0.0 | 0.03 +Output | 0.00054836 | 0.00054836 | 0.00054836 | 0.0 | 0.09 +Modify | 0.00075102 | 0.00075102 | 0.00075102 | 0.0 | 0.12 +Other | | 0.000757 | | | 0.12 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 244342 ave 244342 max 244342 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 244342 +Ave neighs/atom = 244.342 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.2 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.2 new file mode 100644 index 0000000000..4d4b1100e3 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.2 @@ -0,0 +1,109 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ...3 + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.48 | 6.861 | 7.243 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417141 0 1.6235786 0.00141207 + 1 18.780412 -10.770009 0 17.372438 0.017679504 + 2 65.294131 -11.084501 0 86.758754 0.06146659 + 3 121.92555 -7.0612033 0 175.64423 0.11477827 + 4 185.71165 -5.8781334 0 272.41077 0.17482523 + 5 286.28339 -4.3800108 0 424.61565 0.26950146 + 6 481.28097 -4.3052012 0 716.89433 0.45306828 + 7 487.26022 -3.8672741 0 726.29216 0.45869703 + 8 493.65478 -3.0242687 0 736.71742 0.46471675 + 9 495.66203 -3.4336343 0 739.31592 0.46660633 + 10 498.41831 -2.8837072 0 743.99613 0.46920104 + 11 499.20944 -2.7724783 0 745.29287 0.46994579 + 12 500.97345 -2.8281484 0 747.88057 0.4716064 + 13 507.46412 -2.7752775 0 757.65971 0.47771658 + 14 525.35729 -2.5749814 0 784.67292 0.49456085 + 15 563.9578 -2.9982381 0 842.09253 0.5308986 + 16 645.47602 -2.5519203 0 964.69389 0.60763822 + 17 647.09276 -2.2568468 0 967.41166 0.60916019 + 18 647.12596 -2.2791003 0 967.43915 0.60919144 + 19 647.24862 -2.2495226 0 967.65253 0.60930691 + 20 647.51175 -2.0239179 0 968.27244 0.60955462 +Loop time of 0.563049 on 2 procs for 20 steps with 1000 atoms + +Performance: 15345.024 tau/day, 35.521 timesteps/s +99.4% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00024986 | 0.00026596 | 0.00028205 | 0.0 | 0.05 +Kspace | 0.45103 | 0.47692 | 0.50281 | 3.7 | 84.70 +Neigh | 0.055771 | 0.081813 | 0.10785 | 9.1 | 14.53 +Comm | 0.0022206 | 0.0024507 | 0.0026808 | 0.5 | 0.44 +Output | 0.00050044 | 0.00061882 | 0.00073719 | 0.0 | 0.11 +Modify | 0.00029945 | 0.00044227 | 0.00058508 | 0.0 | 0.08 +Other | | 0.0005381 | | | 0.10 + +Nlocal: 500 ave 509 max 491 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 455.5 ave 467 max 444 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Neighs: 122171 ave 171834 max 72508 min +Histogram: 1 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 244342 +Ave neighs/atom = 244.342 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.4 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.4 new file mode 100644 index 0000000000..9634a0174b --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.4 @@ -0,0 +1,109 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ...3 + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.837 | 5.123 | 5.6 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417141 0 1.6235786 0.00141207 + 1 18.780412 -10.770009 0 17.372438 0.017679504 + 2 65.294131 -11.084501 0 86.758754 0.06146659 + 3 121.92555 -7.0612033 0 175.64423 0.11477827 + 4 185.71165 -5.8781334 0 272.41077 0.17482523 + 5 286.28339 -4.3800108 0 424.61565 0.26950146 + 6 481.28097 -4.3052012 0 716.89433 0.45306828 + 7 487.26022 -3.8672741 0 726.29216 0.45869703 + 8 493.65478 -3.0242687 0 736.71742 0.46471675 + 9 495.66203 -3.4336343 0 739.31592 0.46660633 + 10 498.41831 -2.8837072 0 743.99613 0.46920104 + 11 499.20944 -2.7724783 0 745.29287 0.46994579 + 12 500.97345 -2.8281484 0 747.88057 0.4716064 + 13 507.46412 -2.7752775 0 757.65971 0.47771658 + 14 525.35729 -2.5749814 0 784.67292 0.49456085 + 15 563.9578 -2.9982381 0 842.09253 0.5308986 + 16 645.47602 -2.5519203 0 964.69389 0.60763822 + 17 647.09276 -2.2568468 0 967.41166 0.60916019 + 18 647.12596 -2.2791003 0 967.43915 0.60919144 + 19 647.24862 -2.2495226 0 967.65253 0.60930691 + 20 647.51175 -2.0239179 0 968.27244 0.60955462 +Loop time of 0.508149 on 4 procs for 20 steps with 1000 atoms + +Performance: 17002.884 tau/day, 39.359 timesteps/s +99.4% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00024509 | 0.00026453 | 0.00028753 | 0.0 | 0.05 +Kspace | 0.43933 | 0.45836 | 0.47734 | 2.2 | 90.20 +Neigh | 0.025956 | 0.045068 | 0.064242 | 7.2 | 8.87 +Comm | 0.002799 | 0.0030612 | 0.0033174 | 0.4 | 0.60 +Output | 0.00047231 | 0.00058293 | 0.00076509 | 0.0 | 0.11 +Modify | 0.00016856 | 0.0002442 | 0.00042009 | 0.0 | 0.05 +Other | | 0.0005655 | | | 0.11 + +Nlocal: 250 ave 259 max 240 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 668.75 ave 679 max 657 min +Histogram: 1 0 0 0 0 1 1 0 0 1 +Neighs: 61085.5 ave 95363 max 24964 min +Histogram: 1 0 0 1 0 0 0 1 0 1 + +Total # of neighbors = 244342 +Ave neighs/atom = 244.342 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.8 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.8 new file mode 100644 index 0000000000..a6a020b031 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.8 @@ -0,0 +1,109 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ...3 + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.164 | 4.26 | 4.546 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417141 0 1.6235786 0.00141207 + 1 18.780412 -10.770009 0 17.372438 0.017679504 + 2 65.294131 -11.084501 0 86.758754 0.06146659 + 3 121.92555 -7.0612033 0 175.64423 0.11477827 + 4 185.71165 -5.8781334 0 272.41077 0.17482523 + 5 286.28339 -4.3800108 0 424.61565 0.26950146 + 6 481.28097 -4.3052012 0 716.89433 0.45306828 + 7 487.26022 -3.8672741 0 726.29216 0.45869703 + 8 493.65478 -3.0242687 0 736.71742 0.46471675 + 9 495.66203 -3.4336343 0 739.31592 0.46660633 + 10 498.41831 -2.8837072 0 743.99613 0.46920104 + 11 499.20944 -2.7724783 0 745.29287 0.46994579 + 12 500.97345 -2.8281484 0 747.88057 0.4716064 + 13 507.46412 -2.7752775 0 757.65971 0.47771658 + 14 525.35729 -2.5749814 0 784.67292 0.49456085 + 15 563.9578 -2.9982381 0 842.09253 0.5308986 + 16 645.47602 -2.5519203 0 964.69389 0.60763822 + 17 647.09276 -2.2568468 0 967.41166 0.60916019 + 18 647.12596 -2.2791003 0 967.43915 0.60919144 + 19 647.24862 -2.2495226 0 967.65253 0.60930691 + 20 647.51175 -2.0239179 0 968.27244 0.60955462 +Loop time of 0.494261 on 8 procs for 20 steps with 1000 atoms + +Performance: 17480.630 tau/day, 40.464 timesteps/s +99.3% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00027752 | 0.00030088 | 0.0003736 | 0.0 | 0.06 +Kspace | 0.45443 | 0.46295 | 0.47316 | 1.0 | 93.67 +Neigh | 0.014408 | 0.02515 | 0.034048 | 4.6 | 5.09 +Comm | 0.0036254 | 0.0041741 | 0.0048032 | 0.6 | 0.84 +Output | 0.00072742 | 0.0009357 | 0.0012984 | 0.0 | 0.19 +Modify | 0.00011778 | 0.00015756 | 0.00019836 | 0.0 | 0.03 +Other | | 0.000589 | | | 0.12 + +Nlocal: 125 ave 137 max 111 min +Histogram: 1 1 0 0 0 2 2 1 0 1 +Nghost: 768.875 ave 788 max 761 min +Histogram: 4 0 2 0 0 0 1 0 0 1 +Neighs: 30542.8 ave 48077 max 10011 min +Histogram: 1 1 1 0 1 1 0 0 0 3 + +Total # of neighbors = 244342 +Ave neighs/atom = 244.342 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.1 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.1 new file mode 100644 index 0000000000..f9192cdfaf --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.1 @@ -0,0 +1,107 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance potential + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 10.3 | 10.3 | 10.3 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.00141207 + 1 18.780041 -10.770002 0 17.371889 0.017679155 + 2 65.289192 -11.084705 0 86.751149 0.06146194 + 3 121.92987 -7.0625759 0 175.64933 0.11478234 + 4 185.78164 -5.8777511 0 272.51603 0.17489112 + 5 286.36221 -4.3820531 0 424.73172 0.26957566 + 6 481.42203 -4.3095567 0 717.10136 0.45320108 + 7 488.59165 -3.8685193 0 728.28607 0.45995042 + 8 497.85288 -3.0417938 0 742.99075 0.46866875 + 9 499.61619 -3.4190063 0 745.25585 0.47032869 + 10 502.63691 -2.8360951 0 750.36531 0.47317234 + 11 504.4847 -2.7628089 0 753.20751 0.47491181 + 12 506.54494 -2.8460319 0 756.21157 0.47685128 + 13 508.2722 -2.7309328 0 758.91497 0.47847729 + 14 510.57053 -2.6094792 0 762.48045 0.48064089 + 15 513.14804 -2.7150819 0 766.23726 0.48306731 + 16 515.78127 -2.3961749 0 770.50206 0.48554618 + 17 515.70267 -2.2982581 0 770.48219 0.48547219 + 18 515.70813 -2.1516075 0 770.63702 0.48547732 + 19 515.74908 -2.0581483 0 770.79185 0.48551588 + 20 515.70881 -1.892235 0 770.89742 0.48547797 +Loop time of 1.34132 on 1 procs for 20 steps with 1000 atoms + +Performance: 6441.409 tau/day, 14.911 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00028849 | 0.00028849 | 0.00028849 | 0.0 | 0.02 +Kspace | 1.1744 | 1.1744 | 1.1744 | 0.0 | 87.56 +Neigh | 0.16435 | 0.16435 | 0.16435 | 0.0 | 12.25 +Comm | 0.00021219 | 0.00021219 | 0.00021219 | 0.0 | 0.02 +Output | 0.00051928 | 0.00051928 | 0.00051928 | 0.0 | 0.04 +Modify | 0.00079513 | 0.00079513 | 0.00079513 | 0.0 | 0.06 +Other | | 0.0007439 | | | 0.06 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 247817 ave 247817 max 247817 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.2 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.2 new file mode 100644 index 0000000000..4db3e28dbf --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.2 @@ -0,0 +1,107 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance potential + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.48 | 6.861 | 7.243 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.00141207 + 1 18.780041 -10.770002 0 17.371889 0.017679155 + 2 65.289192 -11.084705 0 86.751149 0.06146194 + 3 121.92987 -7.0625759 0 175.64933 0.11478234 + 4 185.78164 -5.8777511 0 272.51603 0.17489112 + 5 286.36221 -4.3820531 0 424.73172 0.26957566 + 6 481.42203 -4.3095567 0 717.10136 0.45320108 + 7 488.59165 -3.8685193 0 728.28607 0.45995042 + 8 497.85288 -3.0417938 0 742.99075 0.46866875 + 9 499.61619 -3.4190063 0 745.25585 0.47032869 + 10 502.63691 -2.8360951 0 750.36531 0.47317234 + 11 504.4847 -2.7628089 0 753.20751 0.47491181 + 12 506.54494 -2.8460319 0 756.21157 0.47685128 + 13 508.2722 -2.7309328 0 758.91497 0.47847729 + 14 510.57053 -2.6094792 0 762.48045 0.48064089 + 15 513.14804 -2.7150819 0 766.23726 0.48306731 + 16 515.78127 -2.3961749 0 770.50206 0.48554618 + 17 515.70267 -2.2982581 0 770.48219 0.48547219 + 18 515.70813 -2.1516075 0 770.63702 0.48547732 + 19 515.74908 -2.0581483 0 770.79185 0.48551588 + 20 515.70881 -1.892235 0 770.89742 0.48547797 +Loop time of 0.858675 on 2 procs for 20 steps with 1000 atoms + +Performance: 10062.016 tau/day, 23.292 timesteps/s +100.0% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00026321 | 0.00026667 | 0.00027013 | 0.0 | 0.03 +Kspace | 0.74531 | 0.77182 | 0.79833 | 3.0 | 89.89 +Neigh | 0.055915 | 0.082578 | 0.10924 | 9.3 | 9.62 +Comm | 0.0021703 | 0.002401 | 0.0026317 | 0.5 | 0.28 +Output | 0.00048423 | 0.00061262 | 0.000741 | 0.0 | 0.07 +Modify | 0.00034285 | 0.0004636 | 0.00058436 | 0.0 | 0.05 +Other | | 0.0005329 | | | 0.06 + +Nlocal: 500 ave 516 max 484 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 456.5 ave 475 max 438 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Neighs: 123908 ave 172139 max 75678 min +Histogram: 1 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.4 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.4 new file mode 100644 index 0000000000..3a2d653106 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.4 @@ -0,0 +1,107 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance potential + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.837 | 5.123 | 5.6 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.00141207 + 1 18.780041 -10.770002 0 17.371889 0.017679155 + 2 65.289192 -11.084705 0 86.751149 0.06146194 + 3 121.92987 -7.0625759 0 175.64933 0.11478234 + 4 185.78164 -5.8777511 0 272.51603 0.17489112 + 5 286.36221 -4.3820531 0 424.73172 0.26957566 + 6 481.42203 -4.3095567 0 717.10136 0.45320108 + 7 488.59165 -3.8685193 0 728.28607 0.45995042 + 8 497.85288 -3.0417938 0 742.99075 0.46866875 + 9 499.61619 -3.4190063 0 745.25585 0.47032869 + 10 502.63691 -2.8360951 0 750.36531 0.47317234 + 11 504.4847 -2.7628089 0 753.20751 0.47491181 + 12 506.54494 -2.8460319 0 756.21157 0.47685128 + 13 508.2722 -2.7309328 0 758.91497 0.47847729 + 14 510.57053 -2.6094792 0 762.48045 0.48064089 + 15 513.14804 -2.7150819 0 766.23726 0.48306731 + 16 515.78127 -2.3961749 0 770.50206 0.48554618 + 17 515.70267 -2.2982581 0 770.48219 0.48547219 + 18 515.70813 -2.1516075 0 770.63702 0.48547732 + 19 515.74908 -2.0581483 0 770.79185 0.48551588 + 20 515.70881 -1.892235 0 770.89742 0.48547797 +Loop time of 0.540235 on 4 procs for 20 steps with 1000 atoms + +Performance: 15993.051 tau/day, 37.021 timesteps/s +99.3% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00025725 | 0.00028253 | 0.00031233 | 0.0 | 0.05 +Kspace | 0.47152 | 0.48989 | 0.50709 | 1.9 | 90.68 +Neigh | 0.028196 | 0.045694 | 0.064338 | 6.3 | 8.46 +Comm | 0.0026579 | 0.003028 | 0.0033965 | 0.5 | 0.56 +Output | 0.00049663 | 0.00064254 | 0.00084853 | 0.0 | 0.12 +Modify | 0.00019264 | 0.0002293 | 0.00030923 | 0.0 | 0.04 +Other | | 0.0004709 | | | 0.09 + +Nlocal: 250 ave 259 max 238 min +Histogram: 1 0 0 1 0 0 0 0 0 2 +Nghost: 672.25 ave 683 max 663 min +Histogram: 2 0 0 0 0 0 0 0 1 1 +Neighs: 61954.2 ave 97157 max 25016 min +Histogram: 1 0 0 1 0 0 1 0 0 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.8 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.8 new file mode 100644 index 0000000000..08e68531a9 --- /dev/null +++ b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.8 @@ -0,0 +1,107 @@ +LAMMPS (29 Jun 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance potential + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.164 | 4.26 | 4.546 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.00141207 + 1 18.780041 -10.770002 0 17.371889 0.017679155 + 2 65.289192 -11.084705 0 86.751149 0.06146194 + 3 121.92987 -7.0625759 0 175.64933 0.11478234 + 4 185.78164 -5.8777511 0 272.51603 0.17489112 + 5 286.36221 -4.3820531 0 424.73172 0.26957566 + 6 481.42203 -4.3095567 0 717.10136 0.45320108 + 7 488.59165 -3.8685193 0 728.28607 0.45995042 + 8 497.85288 -3.0417938 0 742.99075 0.46866875 + 9 499.61619 -3.4190063 0 745.25585 0.47032869 + 10 502.63691 -2.8360951 0 750.36531 0.47317234 + 11 504.4847 -2.7628089 0 753.20751 0.47491181 + 12 506.54494 -2.8460319 0 756.21157 0.47685128 + 13 508.2722 -2.7309328 0 758.91497 0.47847729 + 14 510.57053 -2.6094792 0 762.48045 0.48064089 + 15 513.14804 -2.7150819 0 766.23726 0.48306731 + 16 515.78127 -2.3961749 0 770.50206 0.48554618 + 17 515.70267 -2.2982581 0 770.48219 0.48547219 + 18 515.70813 -2.1516075 0 770.63702 0.48547732 + 19 515.74908 -2.0581483 0 770.79185 0.48551588 + 20 515.70881 -1.892235 0 770.89742 0.48547797 +Loop time of 0.317433 on 8 procs for 20 steps with 1000 atoms + +Performance: 27218.342 tau/day, 63.005 timesteps/s +99.6% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00027013 | 0.00028479 | 0.00029206 | 0.0 | 0.09 +Kspace | 0.27742 | 0.28666 | 0.29702 | 1.4 | 90.31 +Neigh | 0.014795 | 0.025382 | 0.03481 | 4.8 | 8.00 +Comm | 0.0034907 | 0.0038758 | 0.0042439 | 0.5 | 1.22 +Output | 0.00055361 | 0.00073573 | 0.0010755 | 0.0 | 0.23 +Modify | 0.00012279 | 0.00014156 | 0.00016165 | 0.0 | 0.04 +Other | | 0.0003535 | | | 0.11 + +Nlocal: 125 ave 133 max 113 min +Histogram: 2 0 0 0 0 1 1 0 2 2 +Nghost: 773.625 ave 788 max 764 min +Histogram: 1 1 2 1 1 0 0 0 1 1 +Neighs: 30977.1 ave 50690 max 10447 min +Histogram: 1 1 1 0 1 1 0 0 2 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 From 1b7af5d93bd77d791a1ae6b3fef6cbb373ea2fcb Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 23 Jul 2018 16:24:16 -0600 Subject: [PATCH 317/675] added the computation of the global virial by ScaFaCoS --- src/USER-SCAFACOS/scafacos.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 352a298b86..e7dbcb4523 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -154,7 +154,11 @@ void Scafacos::compute(int eflag, int vflag) const double qscale = qqrd2e; if (eflag || vflag) ev_setup(eflag,vflag); - else eflag_atom = 0; + else + { + eflag_atom = 0; + vflag_global = 0; + } // if simulation box has changed, call fcs_tune() @@ -175,9 +179,19 @@ void Scafacos::compute(int eflag, int vflag) } + if (vflag_global) + { + fcs_set_compute_virial(fcs,1); + } + result = fcs_run(fcs,nlocal,&x[0][0],q,&efield[0][0],epot); check_result(result); + if (vflag_global) + { + fcs_get_virial(fcs,virial); + } + // apply Efield to each particle // accumulate total energy From ae2d43031bfd2c7b345478091fe3a2b8879b68f0 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 23 Jul 2018 16:25:02 -0600 Subject: [PATCH 318/675] added pressure output, to compare results with global virial (with internal PPPM) --- examples/USER/scafacos/in.scafacos.cw.ewald | 2 +- examples/USER/scafacos/in.scafacos.cw.fmm | 2 +- examples/USER/scafacos/in.scafacos.cw.p2nfft | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/USER/scafacos/in.scafacos.cw.ewald b/examples/USER/scafacos/in.scafacos.cw.ewald index f8444dd01f..55ebd0e7b3 100644 --- a/examples/USER/scafacos/in.scafacos.cw.ewald +++ b/examples/USER/scafacos/in.scafacos.cw.ewald @@ -18,7 +18,7 @@ kspace_modify scafacos tolerance field timestep 0.005 -thermo_style custom step atoms cpu temp pe ke etotal ecoul +thermo_style custom step atoms cpu temp pe ke etotal ecoul press run_style verlet diff --git a/examples/USER/scafacos/in.scafacos.cw.fmm b/examples/USER/scafacos/in.scafacos.cw.fmm index 24a2739581..c63e241d63 100644 --- a/examples/USER/scafacos/in.scafacos.cw.fmm +++ b/examples/USER/scafacos/in.scafacos.cw.fmm @@ -24,7 +24,7 @@ kspace_modify scafacos fmm_tuning 1 timestep 0.005 -thermo_style custom step atoms cpu temp pe ke etotal ecoul +thermo_style custom step atoms cpu temp pe ke etotal ecoul press run_style verlet diff --git a/examples/USER/scafacos/in.scafacos.cw.p2nfft b/examples/USER/scafacos/in.scafacos.cw.p2nfft index 7a2391bc77..96be1b7d3c 100644 --- a/examples/USER/scafacos/in.scafacos.cw.p2nfft +++ b/examples/USER/scafacos/in.scafacos.cw.p2nfft @@ -18,7 +18,7 @@ kspace_modify scafacos tolerance field timestep 0.005 -thermo_style custom step atoms cpu temp pe ke etotal ecoul +thermo_style custom step atoms cpu temp pe ke etotal ecoul press run_style verlet From eee0df45dd1307223ddde73ec74b42feb4729e7f Mon Sep 17 00:00:00 2001 From: Marshall McDonnell Date: Tue, 24 Jul 2018 09:26:06 -0400 Subject: [PATCH 319/675] Updated fix gcmc docs for tail correction note --- doc/src/fix_gcmc.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/fix_gcmc.txt b/doc/src/fix_gcmc.txt index 38f0fb95ce..191bc32b14 100644 --- a/doc/src/fix_gcmc.txt +++ b/doc/src/fix_gcmc.txt @@ -349,7 +349,7 @@ in the context of NVT dynamics. NOTE: If the density of the cell is initially very small or zero, and increases to a much larger density after a period of equilibration, then certain quantities that are only calculated once at the start -(kspace parameters, tail corrections) may no longer be accurate. The +(kspace parameters) may no longer be accurate. The solution is to start a new simulation after the equilibrium density has been reached. From 8495fb62f400762a881e3d256cdb3dc995df5657 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 24 Jul 2018 10:33:12 -0400 Subject: [PATCH 320/675] Add preliminary cmake support --- cmake/CMakeLists.txt | 28 +++++++++++++++++++++++++++- cmake/Modules/FindZMQ.cmake | 8 ++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 cmake/Modules/FindZMQ.cmake diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index bf57398c71..288b8b2476 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -154,7 +154,7 @@ if(ENABLE_TESTING) endif(ENABLE_TESTING) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR - KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SPIN SNAP + KSPACE MANYBODY MC MEAM MISC MOLECULE MESSAGE PERI QEQ REAX REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC @@ -426,6 +426,32 @@ if(PKG_KIM) include_directories(${KIM_INCLUDE_DIRS}) endif() +if(PKG_MESSAGE) + option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF) + file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F + ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp) + add_library(cslib STATIC ${cslib_SOURCES}) + + if(BUILD_MPI) + target_compile_definitions(cslib PRIVATE -DMPI_YES) + else() + target_compile_definitions(cslib PRIVATE -DMPI_NO) + endif() + + if(MESSAGE_ZMQ) + target_compile_definitions(cslib PRIVATE -DZMQ_YES) + find_package(ZMQ REQUIRED) + target_include_directories(cslib PRIVATE ${ZMQ_INCLUDE_DIRS}) + target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES}) + else() + target_compile_definitions(cslib PRIVATE -DZMQ_NO) + target_include_directories(cslib PRIVATE ${LAMMPS_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ) + endif() + + list(APPEND LAMMPS_LINK_LIBS cslib) + include_directories(${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src) +endif() + if(PKG_MSCG) find_package(GSL REQUIRED) option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF) diff --git a/cmake/Modules/FindZMQ.cmake b/cmake/Modules/FindZMQ.cmake new file mode 100644 index 0000000000..608ccda777 --- /dev/null +++ b/cmake/Modules/FindZMQ.cmake @@ -0,0 +1,8 @@ +find_path(ZMQ_INCLUDE_DIR zmq.h) +find_library(ZMQ_LIBRARY NAMES zmq) + +set(ZMQ_LIBRARIES ${ZMQ_LIBRARY}) +set(ZMQ_INCLUDE_DIRS ${ZMQ_INCLUDE_DIR}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(ZMQ DEFAULT_MSG ZMQ_LIBRARY ZMQ_INCLUDE_DIR) From 57ad197b7d2a3e0adeab565f9dc74d84650d9412 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 24 Jul 2018 10:48:06 -0400 Subject: [PATCH 321/675] port nh fixes to KOKKOS --- src/KOKKOS/fix_nh_kokkos.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KOKKOS/fix_nh_kokkos.cpp b/src/KOKKOS/fix_nh_kokkos.cpp index 679690ea82..347177b7f4 100644 --- a/src/KOKKOS/fix_nh_kokkos.cpp +++ b/src/KOKKOS/fix_nh_kokkos.cpp @@ -148,7 +148,7 @@ void FixNHKokkos::setup(int vflag) if (pstat_flag) { double kt = boltz * t_target; - double nkt = atom->natoms * kt; + double nkt = (atom->natoms + 1) * kt; for (int i = 0; i < 3; i++) if (p_flag[i]) From e37ee02eedbfc5ee117caa2e8217f11737270dbf Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 24 Jul 2018 11:19:00 -0400 Subject: [PATCH 322/675] port nh fixes to USER-BOCS package --- src/USER-BOCS/fix_bocs.cpp | 45 +++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/src/USER-BOCS/fix_bocs.cpp b/src/USER-BOCS/fix_bocs.cpp index 37e128f556..7fb8a27110 100644 --- a/src/USER-BOCS/fix_bocs.cpp +++ b/src/USER-BOCS/fix_bocs.cpp @@ -846,7 +846,7 @@ void FixBocs::setup(int vflag) if (pstat_flag) { double kt = boltz * t_target; - double nkt = atom->natoms * kt; + double nkt = (atom->natoms + 1) * kt; for (int i = 0; i < 3; i++) if (p_flag[i]) @@ -1508,7 +1508,7 @@ double FixBocs::compute_scalar() double volume; double energy; double kt = boltz * t_target; - double lkt_press = kt; + double lkt_press = 0.0; int ich; if (dimension == 3) volume = domain->xprd * domain->yprd * domain->zprd; else volume = domain->xprd * domain->yprd; @@ -1539,15 +1539,21 @@ double FixBocs::compute_scalar() // sum is over barostatted dimensions if (pstat_flag) { - for (i = 0; i < 3; i++) - if (p_flag[i]) + for (i = 0; i < 3; i++) { + if (p_flag[i]) { energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i] + p_hydro*(volume-vol0) / (pdim*nktv2p); + lkt_press += kt; + } + } if (pstyle == TRICLINIC) { - for (i = 3; i < 6; i++) - if (p_flag[i]) + for (i = 3; i < 6; i++) { + if (p_flag[i]) { energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i]; + lkt_press += kt; + } + } } // extra contributions from thermostat chain for barostat @@ -1880,15 +1886,14 @@ void FixBocs::nhc_temp_integrate() void FixBocs::nhc_press_integrate() { - int ich,i; + int ich,i,pdof; double expfac,factor_etap,kecurrent; double kt = boltz * t_target; - double lkt_press = kt; // Update masses, to preserve initial freq, if flag set if (omega_mass_flag) { - double nkt = atom->natoms * kt; + double nkt = (atom->natoms + 1) * kt; for (int i = 0; i < 3; i++) if (p_flag[i]) omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); @@ -1912,14 +1917,24 @@ void FixBocs::nhc_press_integrate() } kecurrent = 0.0; - for (i = 0; i < 3; i++) - if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; - - if (pstyle == TRICLINIC) { - for (i = 3; i < 6; i++) - if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + pdof = 0; + for (i = 0; i < 3; i++) { + if (p_flag[i]) { + kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + pdof++; + } } + if (pstyle == TRICLINIC) { + for (i = 3; i < 6; i++) { + if (p_flag[i]) { + kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + pdof++; + } + } + } + + double lkt_press = pdof * kt; etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0]; double ncfac = 1.0/nc_pchain; From 7702114e252d2ab1ab9691668ea400a68b141b38 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 24 Jul 2018 13:11:58 -0400 Subject: [PATCH 323/675] fix typo in pair_atm.txt --- doc/src/pair_atm.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index e442c32814..afe08c2a9b 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -88,7 +88,7 @@ pair_coeff 2 3 4 0.1 :pre Note that for a simulation with a single atom type, only a single entry is required, e.g. -pair_coeff 1 1 1 0.25 :per +pair_coeff 1 1 1 0.25 :pre For a simulation with two atom types, four pair_coeff commands will specify all possible nu values: From b08a2fcd3b997cb3930dfd7fb98d23aa78157a6c Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 24 Jul 2018 11:36:12 -0600 Subject: [PATCH 324/675] mended un-done changes from Git master --- doc/src/Section_commands.txt | 6 +++++- doc/src/lammps.book | 7 +++++-- src/domain.cpp | 1 + 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index ec0c0dc454..433d761a90 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -681,6 +681,8 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "vector"_fix_vector.html, "viscosity"_fix_viscosity.html, "viscous"_fix_viscous.html, +"wall/body/polygon"_fix_wall_body_polygon.html, +"wall/body/polyhedron"_fix_wall_body_polyhedron.html, "wall/colloid"_fix_wall.html, "wall/gran"_fix_wall_gran.html, "wall/gran/region"_fix_wall_gran_region.html, @@ -933,7 +935,9 @@ KOKKOS, o = USER-OMP, t = OPT. "airebo (oi)"_pair_airebo.html, "airebo/morse (oi)"_pair_airebo.html, "beck (go)"_pair_beck.html, -"body"_pair_body.html, +"body/nparticle"_pair_body_nparticle.html, +"body/rounded/polygon"_pair_body_rounded/polygon.html, +"body/rounded/polyhedron"_pair_body_rounded/polyhedron.html, "bop"_pair_bop.html, "born (go)"_pair_born.html, "born/coul/dsf"_pair_born.html, diff --git a/doc/src/lammps.book b/doc/src/lammps.book index a75f2469ca..2d586f195f 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -144,7 +144,7 @@ fix_bond_break.html fix_bond_create.html fix_bond_react.html fix_bond_swap.html -fix_box_relax.htmlf +fix_box_relax.html fix_client_md.html fix_cmap.html fix_colvars.html @@ -288,6 +288,8 @@ fix_vector.html fix_viscosity.html fix_viscous.html fix_wall.html +fix_wall_body_polygon.html +fix_wall_body_polyhedron.html fix_wall_ees.html fix_wall_gran.html fix_wall_gran_region.html @@ -429,8 +431,9 @@ pair_agni.html pair_airebo.html pair_awpmd.html pair_beck.html -pair_body.html +pair_body_nparticle.html pair_body_rounded_polygon.html +pair_body_rounded_polyhedron.html pair_bop.html pair_born.html pair_brownian.html diff --git a/src/domain.cpp b/src/domain.cpp index c00a716613..053959f937 100644 --- a/src/domain.cpp +++ b/src/domain.cpp @@ -1208,6 +1208,7 @@ int Domain::closest_image(double *pos, int j) /* ---------------------------------------------------------------------- find and return Xj image = periodic image of Xj that is closest to Xi for triclinic, add/subtract tilt factors in other dims as needed + called by ServerMD class ------------------------------------------------------------------------- */ void Domain::closest_image(double *xi, double *xj, double *xjimage) From c2c654c87b7979dea6af1ee4cdbb2bce70576ef7 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 24 Jul 2018 11:44:15 -0600 Subject: [PATCH 325/675] CMake additions to new MESSAGE package --- cmake/CMakeLists.txt | 28 +++++++++++++++++++++++++++- cmake/Modules/FindZMQ.cmake | 8 ++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 cmake/Modules/FindZMQ.cmake diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index bf57398c71..288b8b2476 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -154,7 +154,7 @@ if(ENABLE_TESTING) endif(ENABLE_TESTING) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR - KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SPIN SNAP + KSPACE MANYBODY MC MEAM MISC MOLECULE MESSAGE PERI QEQ REAX REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC @@ -426,6 +426,32 @@ if(PKG_KIM) include_directories(${KIM_INCLUDE_DIRS}) endif() +if(PKG_MESSAGE) + option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF) + file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F + ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp) + add_library(cslib STATIC ${cslib_SOURCES}) + + if(BUILD_MPI) + target_compile_definitions(cslib PRIVATE -DMPI_YES) + else() + target_compile_definitions(cslib PRIVATE -DMPI_NO) + endif() + + if(MESSAGE_ZMQ) + target_compile_definitions(cslib PRIVATE -DZMQ_YES) + find_package(ZMQ REQUIRED) + target_include_directories(cslib PRIVATE ${ZMQ_INCLUDE_DIRS}) + target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES}) + else() + target_compile_definitions(cslib PRIVATE -DZMQ_NO) + target_include_directories(cslib PRIVATE ${LAMMPS_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ) + endif() + + list(APPEND LAMMPS_LINK_LIBS cslib) + include_directories(${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src) +endif() + if(PKG_MSCG) find_package(GSL REQUIRED) option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF) diff --git a/cmake/Modules/FindZMQ.cmake b/cmake/Modules/FindZMQ.cmake new file mode 100644 index 0000000000..608ccda777 --- /dev/null +++ b/cmake/Modules/FindZMQ.cmake @@ -0,0 +1,8 @@ +find_path(ZMQ_INCLUDE_DIR zmq.h) +find_library(ZMQ_LIBRARY NAMES zmq) + +set(ZMQ_LIBRARIES ${ZMQ_LIBRARY}) +set(ZMQ_INCLUDE_DIRS ${ZMQ_INCLUDE_DIR}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(ZMQ DEFAULT_MSG ZMQ_LIBRARY ZMQ_INCLUDE_DIR) From ab1cc706cc305ab1bdb54f12efa793a7ba94ae1f Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 24 Jul 2018 11:55:56 -0600 Subject: [PATCH 326/675] change syntax of standard C include files --- examples/COUPLE/lammps_mc/mc.cpp | 13 ++++++------- src/MESSAGE/fix_client_md.cpp | 7 ++++--- src/MESSAGE/message.cpp | 2 +- src/MESSAGE/server.cpp | 2 +- src/MESSAGE/server_md.cpp | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/examples/COUPLE/lammps_mc/mc.cpp b/examples/COUPLE/lammps_mc/mc.cpp index 24bb96641d..e62a786ac8 100644 --- a/examples/COUPLE/lammps_mc/mc.cpp +++ b/examples/COUPLE/lammps_mc/mc.cpp @@ -11,17 +11,16 @@ // mode = file, zmq // modearg = filename for file, localhost:5555 for zmq -#include -#include -#include -#include +#include +#include +#include +#include +#include "mc.h" +#include "random_park.h" #include "cslib.h" using namespace CSLIB_NS; -#include "mc.h" -#include "random_park.h" - void error(const char *); CSlib *cs_create(char *, char *); diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp index 20b56e031d..9ca6df4edc 100644 --- a/src/MESSAGE/fix_client_md.cpp +++ b/src/MESSAGE/fix_client_md.cpp @@ -14,14 +14,15 @@ #include #include #include "fix_client_md.h" -#include "cslib.h" #include "atom.h" +#include "comm.h" #include "domain.h" #include "memory.h" #include "error.h" -#include "comm.h" -#include "update.h" +// CSlib interface + +#include "cslib.h" using namespace LAMMPS_NS; using namespace CSLIB_NS; diff --git a/src/MESSAGE/message.cpp b/src/MESSAGE/message.cpp index 67e0a49046..a6ecf5cd60 100644 --- a/src/MESSAGE/message.cpp +++ b/src/MESSAGE/message.cpp @@ -11,7 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -#include +#include #include "message.h" #include "error.h" diff --git a/src/MESSAGE/server.cpp b/src/MESSAGE/server.cpp index cbf769be74..c8de6de466 100644 --- a/src/MESSAGE/server.cpp +++ b/src/MESSAGE/server.cpp @@ -11,7 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -#include +#include #include "server.h" #include "error.h" diff --git a/src/MESSAGE/server_md.cpp b/src/MESSAGE/server_md.cpp index 88fe1abe5f..9783383553 100644 --- a/src/MESSAGE/server_md.cpp +++ b/src/MESSAGE/server_md.cpp @@ -11,7 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -#include "mpi.h" +#include #include #include "server_md.h" #include "atom.h" From 81abd8bc0a3bc7eec25ce4a1a634e148ea69a05a Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 24 Jul 2018 11:59:44 -0600 Subject: [PATCH 327/675] extended scafacos documentation --- doc/src/kspace_modify.txt | 32 +++++++++++++++++++++++++++----- doc/src/kspace_style.txt | 29 ++++++++++++++++++----------- 2 files changed, 45 insertions(+), 16 deletions(-) diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index fbc569306c..d21bb379e7 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -45,6 +45,8 @@ keyword = {collective} or {compute} or {cutoff/adjust} or {diff} or {disp/auto} {scafacos} values = option value1 value2 ... option = {tolerance} value = {energy} or {energy_rel} or {field} or {field_rel} or {potential} or {potential_rel} + option = {fmm_tuning} + value = {0} or {1} {slab} value = volfactor or {nozforce} volfactor = ratio of the total extended volume used in the 2d approximation compared with the volume of the simulation domain @@ -308,8 +310,6 @@ or with suffix kspace/pair styles of MSM, like OMP or GPU. :line -RENE: check this section - The {scafacos} keyword is used for settings that are passed to the ScaFaCoS library when using "kspace_style scafacos"_kspace_style.html. @@ -324,10 +324,32 @@ field_rel = relative accuracy in electric field potential = absolute accuracy in total Coulomic potential potential_rel = relative accuracy in total Coulomic potential -RENE: which one is closest to what LAMMPS used (see kspace_style -command) - is it "field"? That's why I set it as the default. +Potential and potential_rel impose a tolerance on a per-atom basis, +in comparison to the energy and energy_rel tolerance types, where +the tolerance is computed with regard to the total Coulomic energy +in the system. In comparison to that, the field and field_rel +tolerance types set a tolerance for the field values calculated +within ScaFaCoS. Since the forces are derived from the field +values, it indirectly sets a tolerance for the forces, comparable +to other LAMMPS KSpace styles, see "kspace_style"_kspace_modify.html. +The suffix '_rel' indicates that the tolerance is a relative tolerance, +whereas the other case imposes an absolute tolerance on the given +quantity. -RENE: How is potential different than energy for this ?? +What needs to be taken into account is that not all solvers within +the ScaFaCoS library support all kinds of tolerance types. + +fmm = energy and energy_rel +p2nfft = field (1d-,2d-,3d-periodic systems) or potential (0d-periodic) +ewald = field +direct = has no tolerance tuning + +The {fmm_tuning} option (de-)activates the internal tuning mechanism +for the fmm solver. Since the internal tuning mechanism is sequential, +it can be very time-consuming and usually it is not required for +systems with a homogenous charge distribution. The default of the +setting there for is {0}, disabling the internal tuning. {1} +activates the internal tuning. :line diff --git a/doc/src/kspace_style.txt b/doc/src/kspace_style.txt index e5333489cc..49fb13ac37 100644 --- a/doc/src/kspace_style.txt +++ b/doc/src/kspace_style.txt @@ -58,7 +58,7 @@ style = {none} or {ewald} or {ewald/disp} or {ewald/omp} or {pppm} or {pppm/cg} accuracy = desired relative error in forces smallq = cutoff for charges to be considered (optional) (charge units) {scafacos} values = method accuracy - method = fmm or p3m or ... RENE + method = fmm or p2nfft or ewald or direct accuracy = desired relative error in forces :pre :ule @@ -214,8 +214,6 @@ pressure simulation with MSM will cause the code to run slower. :line -RENE: edit this section - The {scafacos} style is a wrapper on the "ScaFaCoS Coulomb solver library"_http://www.scafacos.de which provides a variety of solver methods which can be used with LAMMPS. The paper by "(Who)"_#Who2012 @@ -255,16 +253,24 @@ the total Coulombic energy (short- and long-range) will be tallied for The specified {method} determines which ScaFaCoS algorithm is used. The list of methods shown above are the ScaFaCoS methods currently -available from LAMMPS. - -RENE: explain this accuracy better compared to what -it means for other LAMMPS methods? +available from LAMMPS. Currently the following solvers are +supported for use with LAMMPS: {fmm} (Fast Multi-Pole method), +{p2nfft} (FFT-based Coulomb solver), {ewald} (Ewald-Summation) +and {direct} (direct summation). The other ScaFaCoS solvers +will be supported later on, but for the time being are +experimental in connection with LAMMPS, e.g. {p3m} (PPPM-method). +Use unsupported methods at your own discretion. To get an overview +about the included solvers, refer to "(Sutmann)"_#Sutmann2013 The specified {accuracy} is similar to the accuracy setting for other LAMMPS KSpace styles, but is passed to ScaFaCoS, which can interpret -it in different ways for different methods it supports. See the -"kspace_modify scafacos accuracy"_kspace_modify.html command for -details. +it in different ways for different methods it supports. +Within the ScaFaCoS library the {accuracy} is treated as a tolerance +level (either absolute or relative) for the chosen quantity, where +the quantity can be either the Columic field values, the per-atom +Columic energy or the total Columic energy. Different solver support +different tolerance types, for more information on that, please +refer to "kspace_modify scafacos accuracy"_kspace_modify.html. The "kspace_modify scafacos"_kspace_modify.html command also explains all the ScaFaCoS options currently exposed to LAMMPS. @@ -460,7 +466,8 @@ Illinois at Urbana-Champaign, (2006). [(Hardy2)] Hardy, Stone, Schulten, Parallel Computing, 35, 164-177 (2009). -RENE: +:link(Sutmann2013) +[(Sutmann)] Sutmann, Arnold, Fahrenberger, et. al., Physical review / E 88(6), 063308 (2013) :link(Who2012) [(Who)] Who, Author2, Author3, J of Long Range Solvers, 35, 164-177 From 1aa8307fa11c3efd5c6683c400f70d9b2ae3c158 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 24 Jul 2018 12:04:23 -0600 Subject: [PATCH 328/675] change CSlib files to BSD license --- lib/message/cslib/LICENSE | 533 ++------------------------ lib/message/cslib/README | 14 +- lib/message/cslib/src/STUBS_MPI/mpi.h | 17 +- lib/message/cslib/src/STUBS_ZMQ/zmq.h | 17 +- lib/message/cslib/src/cslib.cpp | 4 +- lib/message/cslib/src/cslib.h | 4 +- lib/message/cslib/src/cslib_wrap.cpp | 4 +- lib/message/cslib/src/cslib_wrap.h | 4 +- lib/message/cslib/src/msg.cpp | 4 +- lib/message/cslib/src/msg.h | 4 +- lib/message/cslib/src/msg_file.cpp | 4 +- lib/message/cslib/src/msg_file.h | 4 +- lib/message/cslib/src/msg_mpi_one.cpp | 4 +- lib/message/cslib/src/msg_mpi_one.h | 4 +- lib/message/cslib/src/msg_mpi_two.cpp | 4 +- lib/message/cslib/src/msg_mpi_two.h | 4 +- lib/message/cslib/src/msg_zmq.cpp | 4 +- lib/message/cslib/src/msg_zmq.h | 4 +- 18 files changed, 86 insertions(+), 551 deletions(-) diff --git a/lib/message/cslib/LICENSE b/lib/message/cslib/LICENSE index 41ba9bbcd0..7a36e21daf 100644 --- a/lib/message/cslib/LICENSE +++ b/lib/message/cslib/LICENSE @@ -1,501 +1,32 @@ -GNU LESSER GENERAL PUBLIC LICENSE - -Version 2.1, February 1999 - -Copyright (C) 1991, 1999 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -Preamble - -The licenses for most software are designed to take away your freedom -to share and change it. By contrast, the GNU General Public Licenses -are intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. - -This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations -below. - -When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - -To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - -For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - -We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - -To protect each distributor, we want to make it very clear that there -is no warranty for the free library. Also, if the library is modified -by someone else and passed on, the recipients should know that what -they have is not the original version, so that the original author's -reputation will not be affected by problems that might be introduced -by others. - -Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - -Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - -When a program is linked with a library, whether statically or using a -shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - -We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - -For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it -becomes a de-facto standard. To achieve this, non-free programs must -be allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - -In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - -Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - -The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). Each -licensee is addressed as "you". - -A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - -The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - -"Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control -compilation and installation of the library. - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does and -what the program that uses the Library does. - -1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a -fee. - -2. You may modify your copy or copies of the Library or any portion of -it, thus forming a work based on the Library, and copy and distribute -such modifications or work under the terms of Section 1 above, -provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - -3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - -Once this change is made in a given copy, it is irreversible for that -copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - -This option is useful when you wish to copy part of the code of the -Library into a program that is not a library. - -4. You may copy and distribute the Library (or a portion or derivative -of it, under Section 2) in object code or executable form under the -terms of Sections 1 and 2 above provided that you accompany it with -the complete corresponding machine-readable source code, which must be -distributed under the terms of Sections 1 and 2 above on a medium -customarily used for software interchange. - -If distribution of object code is made by offering access to copy from -a designated place, then offering equivalent access to copy the source -code from the same place satisfies the requirement to distribute the -source code, even though third parties are not compelled to copy the -source along with the object code. - -5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a work, -in isolation, is not a derivative work of the Library, and therefore -falls outside the scope of this License. - -However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. Section -6 states terms for distribution of such executables. - -When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is -not. Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - -If such an object file uses only numerical parameters, data structure -layouts and accessors, and small macros and small inline functions -(ten lines or less in length), then the use of the object file is -unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - -Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section -6. Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - -6. As an exception to the Sections above, you may also combine or link -a "work that uses the Library" with the Library to produce a work -containing portions of the Library, and distribute that work under -terms of your choice, provided that the terms permit modification of -the work for the customer's own use and reverse engineering for -debugging such modifications. - -You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood that - the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at least - three years, to give the same user the materials specified in - Subsection 6a, above, for a charge no more than the cost of - performing this distribution. d) If distribution of the work is - made by offering access to copy from a designated place, offer - equivalent access to copy the above specified materials from the - same place. e) Verify that the user has already received a copy - of these materials or that you have already sent this user a copy. - -For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - -It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - -7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - -8. You may not copy, modify, sublicense, link with, or distribute the -Library except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense, link with, or distribute the -Library is void, and will automatically terminate your rights under -this License. However, parties who have received copies, or rights, -from you under this License will not have their licenses terminated so -long as such parties remain in full compliance. - -9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - -10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted -herein. You are not responsible for enforcing compliance by third -parties with this License. - -11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply, and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - -12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - -13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. Such -new versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - -14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - -NO WARRANTY - -15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE -LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS -AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF -ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Libraries - -If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms -of the ordinary General Public License). - -To apply these terms, attach the following notices to the library. It -is safest to attach them to the start of each source file to most -effectively convey the exclusion of warranty; and each file should -have at least the "copyright" line and a pointer to where the full -notice is found. - -one line to give the library's name and an idea of what it does. -Copyright (C) year name of author - -This library is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as -published by the Free Software Foundation; either version 2.1 of the -License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or -your school, if any, to sign a "copyright disclaimer" for the library, -if necessary. Here is a sample; alter the names: - -Yoyodyne, Inc., hereby disclaims all copyright interest in -the library `Frob' (a library for tweaking knobs) written -by James Random Hacker. - -signature of Ty Coon, 1 April 1990 -Ty Coon, President of Vice - -That's all there is to it! +Program: CSlib client/server coupling library + +Copyright 2018 National Technology & Engineering Solutions of Sandia, +LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the +U.S. Government retains certain rights in this software. This +software is distributed under the modified Berkeley Software +Distribution (BSD) License. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of Sandia Corporation nor the names of contributors + to this software may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/message/cslib/README b/lib/message/cslib/README index 1cc75861c6..37f4a97d54 100644 --- a/lib/message/cslib/README +++ b/lib/message/cslib/README @@ -1,7 +1,8 @@ -This is the July 2018 version of the Client/Server messaging library -(CSlib). Only the source directory and license file are included here -as part of the LAMMPS distribution. The full CSlib distribution, -including documentation and test codes, can be found at the website: +This is the the Client/Server messaging library (CSlib). + +Only the source directory and license file are included here as part +of the LAMMPS distribution. The full CSlib distribution, including +documentation and test codes, can be found at the website: http://cslib.sandia.gov (as of Aug 2018). The contact author is @@ -11,8 +12,9 @@ Sandia National Laboratories sjplimp@sandia.gov http://www.sandia.gov/~sjplimp -The CSlib is distributed as open-source code under the GNU LGPL -license. See the accompanying LICENSE file. +The CSlib is distributed as open-source code under the modified +Berkeley Software Distribution (BSD) License. See the accompanying +LICENSE file. This directory contains the following: diff --git a/lib/message/cslib/src/STUBS_MPI/mpi.h b/lib/message/cslib/src/STUBS_MPI/mpi.h index fd2dbf8113..2919e4c3a2 100644 --- a/lib/message/cslib/src/STUBS_MPI/mpi.h +++ b/lib/message/cslib/src/STUBS_MPI/mpi.h @@ -1,14 +1,15 @@ -/* -*- c++ -*- ---------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - http://lammps.sandia.gov, Sandia National Laboratories +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.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. + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. - See the README file in the top-level LAMMPS directory. + See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ // MPI constants and dummy functions diff --git a/lib/message/cslib/src/STUBS_ZMQ/zmq.h b/lib/message/cslib/src/STUBS_ZMQ/zmq.h index af920974cd..2f02eb4035 100644 --- a/lib/message/cslib/src/STUBS_ZMQ/zmq.h +++ b/lib/message/cslib/src/STUBS_ZMQ/zmq.h @@ -1,14 +1,15 @@ -/* -*- c++ -*- ---------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - http://lammps.sandia.gov, Sandia National Laboratories +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.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. + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. - See the README file in the top-level LAMMPS directory. + See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ // ZMQ constants and dummy functions diff --git a/lib/message/cslib/src/cslib.cpp b/lib/message/cslib/src/cslib.cpp index 8b4d27f134..874333607e 100644 --- a/lib/message/cslib/src/cslib.cpp +++ b/lib/message/cslib/src/cslib.cpp @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/cslib.h b/lib/message/cslib/src/cslib.h index 20d82a2469..b4da968026 100644 --- a/lib/message/cslib/src/cslib.h +++ b/lib/message/cslib/src/cslib.h @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/cslib_wrap.cpp b/lib/message/cslib/src/cslib_wrap.cpp index 453948f783..c2d69eaf0d 100644 --- a/lib/message/cslib/src/cslib_wrap.cpp +++ b/lib/message/cslib/src/cslib_wrap.cpp @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/cslib_wrap.h b/lib/message/cslib/src/cslib_wrap.h index 42d095f452..bf7df029c3 100644 --- a/lib/message/cslib/src/cslib_wrap.h +++ b/lib/message/cslib/src/cslib_wrap.h @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/msg.cpp b/lib/message/cslib/src/msg.cpp index 1ba24d2b48..c67e4a5c8c 100644 --- a/lib/message/cslib/src/msg.cpp +++ b/lib/message/cslib/src/msg.cpp @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/msg.h b/lib/message/cslib/src/msg.h index 48805a0f4f..f75942b027 100644 --- a/lib/message/cslib/src/msg.h +++ b/lib/message/cslib/src/msg.h @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/msg_file.cpp b/lib/message/cslib/src/msg_file.cpp index 31126b8444..d97e249fad 100644 --- a/lib/message/cslib/src/msg_file.cpp +++ b/lib/message/cslib/src/msg_file.cpp @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/msg_file.h b/lib/message/cslib/src/msg_file.h index 6d7c7017f6..d6bd802607 100644 --- a/lib/message/cslib/src/msg_file.h +++ b/lib/message/cslib/src/msg_file.h @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/msg_mpi_one.cpp b/lib/message/cslib/src/msg_mpi_one.cpp index c028961abc..db11735b27 100644 --- a/lib/message/cslib/src/msg_mpi_one.cpp +++ b/lib/message/cslib/src/msg_mpi_one.cpp @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/msg_mpi_one.h b/lib/message/cslib/src/msg_mpi_one.h index 8f1b781bc6..4b4140a3f7 100644 --- a/lib/message/cslib/src/msg_mpi_one.h +++ b/lib/message/cslib/src/msg_mpi_one.h @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/msg_mpi_two.cpp b/lib/message/cslib/src/msg_mpi_two.cpp index 4c8f593939..e9a9e87eeb 100644 --- a/lib/message/cslib/src/msg_mpi_two.cpp +++ b/lib/message/cslib/src/msg_mpi_two.cpp @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/msg_mpi_two.h b/lib/message/cslib/src/msg_mpi_two.h index 40dd95e7ea..7b31db5a63 100644 --- a/lib/message/cslib/src/msg_mpi_two.h +++ b/lib/message/cslib/src/msg_mpi_two.h @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/msg_zmq.cpp b/lib/message/cslib/src/msg_zmq.cpp index dcbeedaaa0..c2d408f3a5 100644 --- a/lib/message/cslib/src/msg_zmq.cpp +++ b/lib/message/cslib/src/msg_zmq.cpp @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ diff --git a/lib/message/cslib/src/msg_zmq.h b/lib/message/cslib/src/msg_zmq.h index 5f6dd7f26b..c0621a26ff 100644 --- a/lib/message/cslib/src/msg_zmq.h +++ b/lib/message/cslib/src/msg_zmq.h @@ -6,8 +6,8 @@ Copyright 2018 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software. - This software is distributed under the GNU Lesser General Public - License (LGPL). + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. See the README file in the top-level CSlib directory. ------------------------------------------------------------------------- */ From da1be29278a7a9e623fdd76478cd572a789f77f5 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 24 Jul 2018 14:31:55 -0600 Subject: [PATCH 329/675] 2nd try at incremental doc page reorg, Section_tools --- doc/src/Manual.txt | 4 +- doc/src/Tools.txt | 527 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 529 insertions(+), 2 deletions(-) create mode 100644 doc/src/Tools.txt diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index e69797d9ec..d6d46570c1 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -116,7 +116,7 @@ it gives quick access to documentation for all LAMMPS commands. Section_howto Section_example Section_perf - Section_tools + Tools Section_modify Section_python Section_errors @@ -210,7 +210,7 @@ END_RST --> 6.27 "Drude induced dipoles"_howto_27 :ule,b "Example problems"_Section_example.html :l "Performance & scalability"_Section_perf.html :l -"Additional tools"_Section_tools.html :l +"Auxiliary tools"_Tools.html :l "Modifying & extending LAMMPS"_Section_modify.html :l 10.1 "Atom styles"_mod_1 :ulb,b 10.2 "Bond, angle, dihedral, improper potentials"_mod_2 :b diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt new file mode 100644 index 0000000000..8fc371c4ef --- /dev/null +++ b/doc/src/Tools.txt @@ -0,0 +1,527 @@ +"Previous Section"_Section_perf.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Section_modify.html :c + + + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands.html#comm) + +:line + +Auxiliary tools :h3 + +LAMMPS is designed to be a computational kernel for performing +molecular dynamics computations. Additional pre- and post-processing +steps are often necessary to setup and analyze a simulation. A list +of such tools can be found on the "LAMMPS webpage"_lws at these links: + +"Pre/Post processing"_http://lammps.sandia.gov/prepost.html +"Offsite LAMMPS packages & tools"_http://lammps.sandia.gov/offsite.html +"Pizza.py toolkit"_pizza :ul + +The last link for "Pizza.py"_pizza is a Python-based tool developed at +Sandia which provides tools for doing setup, analysis, plotting, and +visualization for LAMMPS simulations. + +"link(pizza,http://pizza.sandia.gov) +:link(python,http://www.python.org) + +Additional tools included in the LAMMPS distribution are described on +this page. + +Note that many users write their own setup or analysis tools or use +other existing codes and convert their output to a LAMMPS input format +or vice versa. The tools listed here are included in the LAMMPS +distribution as examples of auxiliary tools. Some of them are not +actively supported by the LAMMPS developers, as they were contributed +by LAMMPS users. If you have problems using them, we can direct you +to the authors. + +The source code for each of these codes is in the tools sub-directory +of the LAMMPS distribution. There is a Makefile (which you may need +to edit for your platform) which will build several of the tools which +reside in that directory. Most of them are larger packages in their +own sub-directories with their own Makefiles and/or README files. + +"amber2lmp"_#amber +"binary2txt"_#binary +"ch2lmp"_#charmm +"chain"_#chain +"colvars"_#colvars +"createatoms"_#createatoms +"doxygen"_#doxygen +"drude"_#drude +"eam database"_#eamdb +"eam generate"_#eamgn +"eff"_#eff +"emacs"_#emacs +"fep"_#fep +"i-pi"_#ipi +"ipp"_#ipp +"kate"_#kate +"lmp2arc"_#arc +"lmp2cfg"_#cfg +"matlab"_#matlab +"micelle2d"_#micelle +"moltemplate"_#moltemplate +"msi2lmp"_#msi +"phonon"_#phonon +"polybond"_#polybond +"pymol_asphere"_#pymol +"python"_#pythontools +"reax"_#reax_tool +"smd"_#smd +"vim"_#vim +"xmgrace"_#xmgrace :ul + +:line +:line + +amber2lmp tool :h4,link(amber) + +The amber2lmp sub-directory contains two Python scripts for converting +files back-and-forth between the AMBER MD code and LAMMPS. See the +README file in amber2lmp for more information. + +These tools were written by Keir Novik while he was at Queen Mary +University of London. Keir is no longer there and cannot support +these tools which are out-of-date with respect to the current LAMMPS +version (and maybe with respect to AMBER as well). Since we don't use +these tools at Sandia, you'll need to experiment with them and make +necessary modifications yourself. + +:line + +binary2txt tool :h4,link(binary) + +The file binary2txt.cpp converts one or more binary LAMMPS dump file +into ASCII text files. The syntax for running the tool is + +binary2txt file1 file2 ... :pre + +which creates file1.txt, file2.txt, etc. This tool must be compiled +on a platform that can read the binary file created by a LAMMPS run, +since binary files are not compatible across all platforms. + +:line + +ch2lmp tool :h4,link(charmm) + +The ch2lmp sub-directory contains tools for converting files +back-and-forth between the CHARMM MD code and LAMMPS. + +They are intended to make it easy to use CHARMM as a builder and as a +post-processor for LAMMPS. Using charmm2lammps.pl, you can convert a +PDB file with associated CHARMM info, including CHARMM force field +data, into its LAMMPS equivalent. Support for the CMAP correction of +CHARMM22 and later is available as an option. This tool can also add +solvent water molecules and Na+ or Cl- ions to the system. +Using lammps2pdb.pl you can convert LAMMPS atom dumps into PDB files. + +See the README file in the ch2lmp sub-directory for more information. + +These tools were created by Pieter in't Veld (pjintve at sandia.gov) +and Paul Crozier (pscrozi at sandia.gov) at Sandia. + +CMAP support added and tested by Xiaohu Hu (hux2 at ornl.gov) and +Robert A. Latour (latourr at clemson.edu), David Hyde-Volpe, and +Tigran Abramyan, (Clemson University) and +Chris Lorenz (chris.lorenz at kcl.ac.uk), King's College London. + +:line + +chain tool :h4,link(chain) + +The file chain.f creates a LAMMPS data file containing bead-spring +polymer chains and/or monomer solvent atoms. It uses a text file +containing chain definition parameters as an input. The created +chains and solvent atoms can strongly overlap, so LAMMPS needs to run +the system initially with a "soft" pair potential to un-overlap it. +The syntax for running the tool is + +chain < def.chain > data.file :pre + +See the def.chain or def.chain.ab files in the tools directory for +examples of definition files. This tool was used to create the +system for the "chain benchmark"_Section_perf.html. + +:line + +colvars tools :h4,link(colvars) + +The colvars directory contains a collection of tools for postprocessing +data produced by the colvars collective variable library. +To compile the tools, edit the makefile for your system and run "make". + +Please report problems and issues the colvars library and its tools +at: https://github.com/colvars/colvars/issues + +abf_integrate: + +MC-based integration of multidimensional free energy gradient +Version 20110511 + +Syntax: ./abf_integrate < filename > \[-n < nsteps >\] \[-t < temp >\] \[-m \[0|1\] (metadynamics)\] \[-h < hill_height >\] \[-f < variable_hill_factor >\] :pre + +The LAMMPS interface to the colvars collective variable library, as +well as these tools, were created by Axel Kohlmeyer (akohlmey at +gmail.com) at ICTP, Italy. + +:line + +createatoms tool :h4,link(createatoms) + +The tools/createatoms directory contains a Fortran program called +createAtoms.f which can generate a variety of interesting crystal +structures and geometries and output the resulting list of atom +coordinates in LAMMPS or other formats. + +See the included Manual.pdf for details. + +The tool is authored by Xiaowang Zhou (Sandia), xzhou at sandia.gov. + +:line + +doxygen tool :h4,link(doxygen) + +The tools/doxygen directory contains a shell script called +doxygen.sh which can generate a call graph and API lists using +the "Doxygen software"_http://doxygen.org. + +See the included README file for details. + +The tool is authored by Nandor Tamaskovics, numericalfreedom at googlemail.com. + +:line + +drude tool :h4,link(drude) + +The tools/drude directory contains a Python script called +polarizer.py which can add Drude oscillators to a LAMMPS +data file in the required format. + +See the header of the polarizer.py file for details. + +The tool is authored by Agilio Padua and Alain Dequidt: agilio.padua +at univ-bpclermont.fr, alain.dequidt at univ-bpclermont.fr + +:line + +eam database tool :h4,link(eamdb) + +The tools/eam_database directory contains a Fortran program that will +generate EAM alloy setfl potential files for any combination of 16 +elements: Cu, Ag, Au, Ni, Pd, Pt, Al, Pb, Fe, Mo, Ta, W, Mg, Co, Ti, +Zr. The files can then be used with the "pair_style +eam/alloy"_pair_eam.html command. + +The tool is authored by Xiaowang Zhou (Sandia), xzhou at sandia.gov, +and is based on his paper: + +X. W. Zhou, R. A. Johnson, and H. N. G. Wadley, Phys. Rev. B, 69, +144113 (2004). + +:line + +eam generate tool :h4,link(eamgn) + +The tools/eam_generate directory contains several one-file C programs +that convert an analytic formula into a tabulated "embedded atom +method (EAM)"_pair_eam.html setfl potential file. The potentials they +produce are in the potentials directory, and can be used with the +"pair_style eam/alloy"_pair_eam.html command. + +The source files and potentials were provided by Gerolf Ziegenhain +(gerolf at ziegenhain.com). + +:line + +eff tool :h4,link(eff) + +The tools/eff directory contains various scripts for generating +structures and post-processing output for simulations using the +electron force field (eFF). + +These tools were provided by Andres Jaramillo-Botero at CalTech +(ajaramil at wag.caltech.edu). + +:line + +emacs tool :h4,link(emacs) + +The tools/emacs directory contains a Lips add-on file for Emacs that +enables a lammps-mode for editing of input scripts when using Emacs, +with various highlighting options setup. + +These tools were provided by Aidan Thompson at Sandia +(athomps at sandia.gov). + +:line + +fep tool :h4,link(fep) + +The tools/fep directory contains Python scripts useful for +post-processing results from performing free-energy perturbation +simulations using the USER-FEP package. + +The scripts were contributed by Agilio Padua (Universite Blaise +Pascal Clermont-Ferrand), agilio.padua at univ-bpclermont.fr. + +See README file in the tools/fep directory. + +:line + +i-pi tool :h4,link(ipi) + +The tools/i-pi directory contains a version of the i-PI package, with +all the LAMMPS-unrelated files removed. It is provided so that it can +be used with the "fix ipi"_fix_ipi.html command to perform +path-integral molecular dynamics (PIMD). + +The i-PI package was created and is maintained by Michele Ceriotti, +michele.ceriotti at gmail.com, to interface to a variety of molecular +dynamics codes. + +See the tools/i-pi/manual.pdf file for an overview of i-PI, and the +"fix ipi"_fix_ipi.html doc page for further details on running PIMD +calculations with LAMMPS. + +:line + +ipp tool :h4,link(ipp) + +The tools/ipp directory contains a Perl script ipp which can be used +to facilitate the creation of a complicated file (say, a lammps input +script or tools/createatoms input file) using a template file. + +ipp was created and is maintained by Reese Jones (Sandia), rjones at +sandia.gov. + +See two examples in the tools/ipp directory. One of them is for the +tools/createatoms tool's input file. + +:line + +kate tool :h4,link(kate) + +The file in the tools/kate directory is an add-on to the Kate editor +in the KDE suite that allow syntax highlighting of LAMMPS input +scripts. See the README.txt file for details. + +The file was provided by Alessandro Luigi Sellerio +(alessandro.sellerio at ieni.cnr.it). + +:line + +lmp2arc tool :h4,link(arc) + +The lmp2arc sub-directory contains a tool for converting LAMMPS output +files to the format for Accelrys' Insight MD code (formerly +MSI/Biosym and its Discover MD code). See the README file for more +information. + +This tool was written by John Carpenter (Cray), Michael Peachey +(Cray), and Steve Lustig (Dupont). John is now at the Mayo Clinic +(jec at mayo.edu), but still fields questions about the tool. + +This tool was updated for the current LAMMPS C++ version by Jeff +Greathouse at Sandia (jagreat at sandia.gov). + +:line + +lmp2cfg tool :h4,link(cfg) + +The lmp2cfg sub-directory contains a tool for converting LAMMPS output +files into a series of *.cfg files which can be read into the +"AtomEye"_http://mt.seas.upenn.edu/Archive/Graphics/A visualizer. See +the README file for more information. + +This tool was written by Ara Kooser at Sandia (askoose at sandia.gov). + +:line + +matlab tool :h4,link(matlab) + +The matlab sub-directory contains several "MATLAB"_matlabhome scripts for +post-processing LAMMPS output. The scripts include readers for log +and dump files, a reader for EAM potential files, and a converter that +reads LAMMPS dump files and produces CFG files that can be visualized +with the "AtomEye"_http://mt.seas.upenn.edu/Archive/Graphics/A +visualizer. + +See the README.pdf file for more information. + +These scripts were written by Arun Subramaniyan at Purdue Univ +(asubrama at purdue.edu). + +:link(matlabhome,http://www.mathworks.com) + +:line + +micelle2d tool :h4,link(micelle) + +The file micelle2d.f creates a LAMMPS data file containing short lipid +chains in a monomer solution. It uses a text file containing lipid +definition parameters as an input. The created molecules and solvent +atoms can strongly overlap, so LAMMPS needs to run the system +initially with a "soft" pair potential to un-overlap it. The syntax +for running the tool is + +micelle2d < def.micelle2d > data.file :pre + +See the def.micelle2d file in the tools directory for an example of a +definition file. This tool was used to create the system for the +"micelle example"_Section_example.html. + +:line + +moltemplate tool :h4,link(moltemplate) + +The moltemplate sub-directory contains a Python-based tool for +building molecular systems based on a text-file description, and +creating LAMMPS data files that encode their molecular topology as +lists of bonds, angles, dihedrals, etc. See the README.TXT file for +more information. + +This tool was written by Andrew Jewett (jewett.aij at gmail.com), who +supports it. It has its own WWW page at +"http://moltemplate.org"_http://moltemplate.org. + +:line + +msi2lmp tool :h4,link(msi) + +The msi2lmp sub-directory contains a tool for creating LAMMPS template +input and data files from BIOVIA's Materias Studio files (formerly Accelrys' +Insight MD code, formerly MSI/Biosym and its Discover MD code). + +This tool was written by John Carpenter (Cray), Michael Peachey +(Cray), and Steve Lustig (Dupont). Several people contributed changes +to remove bugs and adapt its output to changes in LAMMPS. + +This tool has several known limitations and is no longer under active +development, so there are no changes except for the occasional bugfix. + +See the README file in the tools/msi2lmp folder for more information. + +:line + +phonon tool :h4,link(phonon) + +The phonon sub-directory contains a post-processing tool useful for +analyzing the output of the "fix phonon"_fix_phonon.html command in +the USER-PHONON package. + +See the README file for instruction on building the tool and what +library it needs. And see the examples/USER/phonon directory +for example problems that can be post-processed with this tool. + +This tool was written by Ling-Ti Kong at Shanghai Jiao Tong +University. + +:line + +polybond tool :h4,link(polybond) + +The polybond sub-directory contains a Python-based tool useful for +performing "programmable polymer bonding". The Python file +lmpsdata.py provides a "Lmpsdata" class with various methods which can +be invoked by a user-written Python script to create data files with +complex bonding topologies. + +See the Manual.pdf for details and example scripts. + +This tool was written by Zachary Kraus at Georgia Tech. + +:line + +pymol_asphere tool :h4,link(pymol) + +The pymol_asphere sub-directory contains a tool for converting a +LAMMPS dump file that contains orientation info for ellipsoidal +particles into an input file for the "PyMol visualization +package"_pymolhome or its "open source variant"_pymolopen. + +:link(pymolhome,http://www.pymol.org) +:link(pymolopen,http://sourceforge.net/scm/?type=svn&group_id=4546) + +Specifically, the tool triangulates the ellipsoids so they can be +viewed as true ellipsoidal particles within PyMol. See the README and +examples directory within pymol_asphere for more information. + +This tool was written by Mike Brown at Sandia. + +:line + +python tool :h4,link(pythontools) + +The python sub-directory contains several Python scripts +that perform common LAMMPS post-processing tasks, such as: + +extract thermodynamic info from a log file as columns of numbers +plot two columns of thermodynamic info from a log file using GnuPlot +sort the snapshots in a dump file by atom ID +convert multiple "NEB"_neb.html dump files into one dump file for viz +convert dump files into XYZ, CFG, or PDB format for viz by other packages :ul + +These are simple scripts built on "Pizza.py"_pizza modules. See the +README for more info on Pizza.py and how to use these scripts. + +:line + +reax tool :h4,link(reax_tool) + +The reax sub-directory contains stand-alond codes that can +post-process the output of the "fix reax/bonds"_fix_reax_bonds.html +command from a LAMMPS simulation using "ReaxFF"_pair_reax.html. See +the README.txt file for more info. + +These tools were written by Aidan Thompson at Sandia. + +:line + +smd tool :h4,link(smd) + +The smd sub-directory contains a C++ file dump2vtk_tris.cpp and +Makefile which can be compiled and used to convert triangle output +files created by the Smooth-Mach Dynamics (USER-SMD) package into a +VTK-compatible unstructured grid file. It could then be read in and +visualized by VTK. + +See the header of dump2vtk.cpp for more details. + +This tool was written by the USER-SMD package author, Georg +Ganzenmuller at the Fraunhofer-Institute for High-Speed Dynamics, +Ernst Mach Institute in Germany (georg.ganzenmueller at emi.fhg.de). + +:line + +vim tool :h4,link(vim) + +The files in the tools/vim directory are add-ons to the VIM editor +that allow easier editing of LAMMPS input scripts. See the README.txt +file for details. + +These files were provided by Gerolf Ziegenhain (gerolf at +ziegenhain.com) + +:line + +xmgrace tool :h4,link(xmgrace) + +The files in the tools/xmgrace directory can be used to plot the +thermodynamic data in LAMMPS log files via the xmgrace plotting +package. There are several tools in the directory that can be used in +post-processing mode. The lammpsplot.cpp file can be compiled and +used to create plots from the current state of a running LAMMPS +simulation. + +See the README file for details. + +These files were provided by Vikas Varshney (vv0210 at gmail.com) From d83d05088fa284a0608d8cace4f7ac0be6d1482b Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 24 Jul 2018 14:33:27 -0600 Subject: [PATCH 330/675] remove replaced file --- doc/src/Section_tools.txt | 520 -------------------------------------- 1 file changed, 520 deletions(-) delete mode 100644 doc/src/Section_tools.txt diff --git a/doc/src/Section_tools.txt b/doc/src/Section_tools.txt deleted file mode 100644 index 7cc07cbec5..0000000000 --- a/doc/src/Section_tools.txt +++ /dev/null @@ -1,520 +0,0 @@ -"Previous Section"_Section_perf.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_modify.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -9. Additional tools :h2 - -LAMMPS is designed to be a computational kernel for performing -molecular dynamics computations. Additional pre- and post-processing -steps are often necessary to setup and analyze a simulation. A -list of such tools can be found on the LAMMPS home page -at "http://lammps.sandia.gov/prepost.html"_http://lammps.sandia.gov/prepost.html - -A few additional tools are provided with the LAMMPS distribution -and are described in this section. - -Our group has also written and released a separate toolkit called -"Pizza.py"_pizza which provides tools for doing setup, analysis, -plotting, and visualization for LAMMPS simulations. Pizza.py is -written in "Python"_python and is available for download from "the -Pizza.py WWW site"_pizza. - -:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) -:link(python,http://www.python.org) - -Note that many users write their own setup or analysis tools or use -other existing codes and convert their output to a LAMMPS input format -or vice versa. The tools listed here are included in the LAMMPS -distribution as examples of auxiliary tools. Some of them are not -actively supported by Sandia, as they were contributed by LAMMPS -users. If you have problems using them, we can direct you to the -authors. - -The source code for each of these codes is in the tools sub-directory -of the LAMMPS distribution. There is a Makefile (which you may need -to edit for your platform) which will build several of the tools which -reside in that directory. Most of them are larger packages in their -own sub-directories with their own Makefiles and/or README files. - -"amber2lmp"_#amber -"binary2txt"_#binary -"ch2lmp"_#charmm -"chain"_#chain -"colvars"_#colvars -"createatoms"_#createatoms -"doxygen"_#doxygen -"drude"_#drude -"eam database"_#eamdb -"eam generate"_#eamgn -"eff"_#eff -"emacs"_#emacs -"fep"_#fep -"i-pi"_#ipi -"ipp"_#ipp -"kate"_#kate -"lmp2arc"_#arc -"lmp2cfg"_#cfg -"matlab"_#matlab -"micelle2d"_#micelle -"moltemplate"_#moltemplate -"msi2lmp"_#msi -"phonon"_#phonon -"polybond"_#polybond -"pymol_asphere"_#pymol -"python"_#pythontools -"reax"_#reax_tool -"smd"_#smd -"vim"_#vim -"xmgrace"_#xmgrace - -:line - -amber2lmp tool :h3,link(amber) - -The amber2lmp sub-directory contains two Python scripts for converting -files back-and-forth between the AMBER MD code and LAMMPS. See the -README file in amber2lmp for more information. - -These tools were written by Keir Novik while he was at Queen Mary -University of London. Keir is no longer there and cannot support -these tools which are out-of-date with respect to the current LAMMPS -version (and maybe with respect to AMBER as well). Since we don't use -these tools at Sandia, you'll need to experiment with them and make -necessary modifications yourself. - -:line - -binary2txt tool :h3,link(binary) - -The file binary2txt.cpp converts one or more binary LAMMPS dump file -into ASCII text files. The syntax for running the tool is - -binary2txt file1 file2 ... :pre - -which creates file1.txt, file2.txt, etc. This tool must be compiled -on a platform that can read the binary file created by a LAMMPS run, -since binary files are not compatible across all platforms. - -:line - -ch2lmp tool :h3,link(charmm) - -The ch2lmp sub-directory contains tools for converting files -back-and-forth between the CHARMM MD code and LAMMPS. - -They are intended to make it easy to use CHARMM as a builder and as a -post-processor for LAMMPS. Using charmm2lammps.pl, you can convert a -PDB file with associated CHARMM info, including CHARMM force field -data, into its LAMMPS equivalent. Support for the CMAP correction of -CHARMM22 and later is available as an option. This tool can also add -solvent water molecules and Na+ or Cl- ions to the system. -Using lammps2pdb.pl you can convert LAMMPS atom dumps into PDB files. - -See the README file in the ch2lmp sub-directory for more information. - -These tools were created by Pieter in't Veld (pjintve at sandia.gov) -and Paul Crozier (pscrozi at sandia.gov) at Sandia. - -CMAP support added and tested by Xiaohu Hu (hux2 at ornl.gov) and -Robert A. Latour (latourr at clemson.edu), David Hyde-Volpe, and -Tigran Abramyan, (Clemson University) and -Chris Lorenz (chris.lorenz at kcl.ac.uk), King's College London. - -:line - -chain tool :h3,link(chain) - -The file chain.f creates a LAMMPS data file containing bead-spring -polymer chains and/or monomer solvent atoms. It uses a text file -containing chain definition parameters as an input. The created -chains and solvent atoms can strongly overlap, so LAMMPS needs to run -the system initially with a "soft" pair potential to un-overlap it. -The syntax for running the tool is - -chain < def.chain > data.file :pre - -See the def.chain or def.chain.ab files in the tools directory for -examples of definition files. This tool was used to create the -system for the "chain benchmark"_Section_perf.html. - -:line - -colvars tools :h3,link(colvars) - -The colvars directory contains a collection of tools for postprocessing -data produced by the colvars collective variable library. -To compile the tools, edit the makefile for your system and run "make". - -Please report problems and issues the colvars library and its tools -at: https://github.com/colvars/colvars/issues - -abf_integrate: - -MC-based integration of multidimensional free energy gradient -Version 20110511 - -Syntax: ./abf_integrate < filename > \[-n < nsteps >\] \[-t < temp >\] \[-m \[0|1\] (metadynamics)\] \[-h < hill_height >\] \[-f < variable_hill_factor >\] :pre - -The LAMMPS interface to the colvars collective variable library, as -well as these tools, were created by Axel Kohlmeyer (akohlmey at -gmail.com) at ICTP, Italy. - -:line - -createatoms tool :h3,link(createatoms) - -The tools/createatoms directory contains a Fortran program called -createAtoms.f which can generate a variety of interesting crystal -structures and geometries and output the resulting list of atom -coordinates in LAMMPS or other formats. - -See the included Manual.pdf for details. - -The tool is authored by Xiaowang Zhou (Sandia), xzhou at sandia.gov. - -:line - -doxygen tool :h3,link(doxygen) - -The tools/doxygen directory contains a shell script called -doxygen.sh which can generate a call graph and API lists using -the "Doxygen software"_http://doxygen.org. - -See the included README file for details. - -The tool is authored by Nandor Tamaskovics, numericalfreedom at googlemail.com. - -:line - -drude tool :h3,link(drude) - -The tools/drude directory contains a Python script called -polarizer.py which can add Drude oscillators to a LAMMPS -data file in the required format. - -See the header of the polarizer.py file for details. - -The tool is authored by Agilio Padua and Alain Dequidt: agilio.padua -at univ-bpclermont.fr, alain.dequidt at univ-bpclermont.fr - -:line - -eam database tool :h3,link(eamdb) - -The tools/eam_database directory contains a Fortran program that will -generate EAM alloy setfl potential files for any combination of 16 -elements: Cu, Ag, Au, Ni, Pd, Pt, Al, Pb, Fe, Mo, Ta, W, Mg, Co, Ti, -Zr. The files can then be used with the "pair_style -eam/alloy"_pair_eam.html command. - -The tool is authored by Xiaowang Zhou (Sandia), xzhou at sandia.gov, -and is based on his paper: - -X. W. Zhou, R. A. Johnson, and H. N. G. Wadley, Phys. Rev. B, 69, -144113 (2004). - -:line - -eam generate tool :h3,link(eamgn) - -The tools/eam_generate directory contains several one-file C programs -that convert an analytic formula into a tabulated "embedded atom -method (EAM)"_pair_eam.html setfl potential file. The potentials they -produce are in the potentials directory, and can be used with the -"pair_style eam/alloy"_pair_eam.html command. - -The source files and potentials were provided by Gerolf Ziegenhain -(gerolf at ziegenhain.com). - -:line - -eff tool :h3,link(eff) - -The tools/eff directory contains various scripts for generating -structures and post-processing output for simulations using the -electron force field (eFF). - -These tools were provided by Andres Jaramillo-Botero at CalTech -(ajaramil at wag.caltech.edu). - -:line - -emacs tool :h3,link(emacs) - -The tools/emacs directory contains a Lips add-on file for Emacs that -enables a lammps-mode for editing of input scripts when using Emacs, -with various highlighting options setup. - -These tools were provided by Aidan Thompson at Sandia -(athomps at sandia.gov). - -:line - -fep tool :h3,link(fep) - -The tools/fep directory contains Python scripts useful for -post-processing results from performing free-energy perturbation -simulations using the USER-FEP package. - -The scripts were contributed by Agilio Padua (Universite Blaise -Pascal Clermont-Ferrand), agilio.padua at univ-bpclermont.fr. - -See README file in the tools/fep directory. - -:line - -i-pi tool :h3,link(ipi) - -The tools/i-pi directory contains a version of the i-PI package, with -all the LAMMPS-unrelated files removed. It is provided so that it can -be used with the "fix ipi"_fix_ipi.html command to perform -path-integral molecular dynamics (PIMD). - -The i-PI package was created and is maintained by Michele Ceriotti, -michele.ceriotti at gmail.com, to interface to a variety of molecular -dynamics codes. - -See the tools/i-pi/manual.pdf file for an overview of i-PI, and the -"fix ipi"_fix_ipi.html doc page for further details on running PIMD -calculations with LAMMPS. - -:line - -ipp tool :h3,link(ipp) - -The tools/ipp directory contains a Perl script ipp which can be used -to facilitate the creation of a complicated file (say, a lammps input -script or tools/createatoms input file) using a template file. - -ipp was created and is maintained by Reese Jones (Sandia), rjones at -sandia.gov. - -See two examples in the tools/ipp directory. One of them is for the -tools/createatoms tool's input file. - -:line - -kate tool :h3,link(kate) - -The file in the tools/kate directory is an add-on to the Kate editor -in the KDE suite that allow syntax highlighting of LAMMPS input -scripts. See the README.txt file for details. - -The file was provided by Alessandro Luigi Sellerio -(alessandro.sellerio at ieni.cnr.it). - -:line - -lmp2arc tool :h3,link(arc) - -The lmp2arc sub-directory contains a tool for converting LAMMPS output -files to the format for Accelrys' Insight MD code (formerly -MSI/Biosym and its Discover MD code). See the README file for more -information. - -This tool was written by John Carpenter (Cray), Michael Peachey -(Cray), and Steve Lustig (Dupont). John is now at the Mayo Clinic -(jec at mayo.edu), but still fields questions about the tool. - -This tool was updated for the current LAMMPS C++ version by Jeff -Greathouse at Sandia (jagreat at sandia.gov). - -:line - -lmp2cfg tool :h3,link(cfg) - -The lmp2cfg sub-directory contains a tool for converting LAMMPS output -files into a series of *.cfg files which can be read into the -"AtomEye"_http://mt.seas.upenn.edu/Archive/Graphics/A visualizer. See -the README file for more information. - -This tool was written by Ara Kooser at Sandia (askoose at sandia.gov). - -:line - -matlab tool :h3,link(matlab) - -The matlab sub-directory contains several "MATLAB"_matlabhome scripts for -post-processing LAMMPS output. The scripts include readers for log -and dump files, a reader for EAM potential files, and a converter that -reads LAMMPS dump files and produces CFG files that can be visualized -with the "AtomEye"_http://mt.seas.upenn.edu/Archive/Graphics/A -visualizer. - -See the README.pdf file for more information. - -These scripts were written by Arun Subramaniyan at Purdue Univ -(asubrama at purdue.edu). - -:link(matlabhome,http://www.mathworks.com) - -:line - -micelle2d tool :h3,link(micelle) - -The file micelle2d.f creates a LAMMPS data file containing short lipid -chains in a monomer solution. It uses a text file containing lipid -definition parameters as an input. The created molecules and solvent -atoms can strongly overlap, so LAMMPS needs to run the system -initially with a "soft" pair potential to un-overlap it. The syntax -for running the tool is - -micelle2d < def.micelle2d > data.file :pre - -See the def.micelle2d file in the tools directory for an example of a -definition file. This tool was used to create the system for the -"micelle example"_Section_example.html. - -:line - -moltemplate tool :h3,link(moltemplate) - -The moltemplate sub-directory contains a Python-based tool for -building molecular systems based on a text-file description, and -creating LAMMPS data files that encode their molecular topology as -lists of bonds, angles, dihedrals, etc. See the README.TXT file for -more information. - -This tool was written by Andrew Jewett (jewett.aij at gmail.com), who -supports it. It has its own WWW page at -"http://moltemplate.org"_http://moltemplate.org. - -:line - -msi2lmp tool :h3,link(msi) - -The msi2lmp sub-directory contains a tool for creating LAMMPS template -input and data files from BIOVIA's Materias Studio files (formerly Accelrys' -Insight MD code, formerly MSI/Biosym and its Discover MD code). - -This tool was written by John Carpenter (Cray), Michael Peachey -(Cray), and Steve Lustig (Dupont). Several people contributed changes -to remove bugs and adapt its output to changes in LAMMPS. - -This tool has several known limitations and is no longer under active -development, so there are no changes except for the occasional bugfix. - -See the README file in the tools/msi2lmp folder for more information. - -:line - -phonon tool :h3,link(phonon) - -The phonon sub-directory contains a post-processing tool useful for -analyzing the output of the "fix phonon"_fix_phonon.html command in -the USER-PHONON package. - -See the README file for instruction on building the tool and what -library it needs. And see the examples/USER/phonon directory -for example problems that can be post-processed with this tool. - -This tool was written by Ling-Ti Kong at Shanghai Jiao Tong -University. - -:line - -polybond tool :h3,link(polybond) - -The polybond sub-directory contains a Python-based tool useful for -performing "programmable polymer bonding". The Python file -lmpsdata.py provides a "Lmpsdata" class with various methods which can -be invoked by a user-written Python script to create data files with -complex bonding topologies. - -See the Manual.pdf for details and example scripts. - -This tool was written by Zachary Kraus at Georgia Tech. - -:line - -pymol_asphere tool :h3,link(pymol) - -The pymol_asphere sub-directory contains a tool for converting a -LAMMPS dump file that contains orientation info for ellipsoidal -particles into an input file for the "PyMol visualization -package"_pymolhome or its "open source variant"_pymolopen. - -:link(pymolhome,http://www.pymol.org) -:link(pymolopen,http://sourceforge.net/scm/?type=svn&group_id=4546) - -Specifically, the tool triangulates the ellipsoids so they can be -viewed as true ellipsoidal particles within PyMol. See the README and -examples directory within pymol_asphere for more information. - -This tool was written by Mike Brown at Sandia. - -:line - -python tool :h3,link(pythontools) - -The python sub-directory contains several Python scripts -that perform common LAMMPS post-processing tasks, such as: - -extract thermodynamic info from a log file as columns of numbers -plot two columns of thermodynamic info from a log file using GnuPlot -sort the snapshots in a dump file by atom ID -convert multiple "NEB"_neb.html dump files into one dump file for viz -convert dump files into XYZ, CFG, or PDB format for viz by other packages :ul - -These are simple scripts built on "Pizza.py"_pizza modules. See the -README for more info on Pizza.py and how to use these scripts. - -:line - -reax tool :h3,link(reax_tool) - -The reax sub-directory contains stand-alond codes that can -post-process the output of the "fix reax/bonds"_fix_reax_bonds.html -command from a LAMMPS simulation using "ReaxFF"_pair_reax.html. See -the README.txt file for more info. - -These tools were written by Aidan Thompson at Sandia. - -:line - -smd tool :h3,link(smd) - -The smd sub-directory contains a C++ file dump2vtk_tris.cpp and -Makefile which can be compiled and used to convert triangle output -files created by the Smooth-Mach Dynamics (USER-SMD) package into a -VTK-compatible unstructured grid file. It could then be read in and -visualized by VTK. - -See the header of dump2vtk.cpp for more details. - -This tool was written by the USER-SMD package author, Georg -Ganzenmuller at the Fraunhofer-Institute for High-Speed Dynamics, -Ernst Mach Institute in Germany (georg.ganzenmueller at emi.fhg.de). - -:line - -vim tool :h3,link(vim) - -The files in the tools/vim directory are add-ons to the VIM editor -that allow easier editing of LAMMPS input scripts. See the README.txt -file for details. - -These files were provided by Gerolf Ziegenhain (gerolf at -ziegenhain.com) - -:line - -xmgrace tool :h3,link(xmgrace) - -The files in the tools/xmgrace directory can be used to plot the -thermodynamic data in LAMMPS log files via the xmgrace plotting -package. There are several tools in the directory that can be used in -post-processing mode. The lammpsplot.cpp file can be compiled and -used to create plots from the current state of a running LAMMPS -simulation. - -See the README file for details. - -These files were provided by Vikas Varshney (vv0210 at gmail.com) - From 8385f5666bef66882a3d5d7aebd41593db0e6900 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 24 Jul 2018 14:43:48 -0600 Subject: [PATCH 331/675] link changes for new Tools.html --- doc/src/Section_howto.txt | 18 +++++++++--------- doc/src/Section_intro.txt | 18 +++++++++--------- doc/src/Section_modify.txt | 4 ++-- doc/src/Section_perf.txt | 4 +++- doc/src/dump.txt | 18 +++++++++--------- 5 files changed, 32 insertions(+), 30 deletions(-) diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt index 2784858f02..a46b29c73b 100644 --- a/doc/src/Section_howto.txt +++ b/doc/src/Section_howto.txt @@ -188,9 +188,9 @@ used in the CHARMM, AMBER, and DREIDING force fields. Setting coefficients is done in the input data file via the "read_data"_read_data.html command or in the input script with commands like "pair_coeff"_pair_coeff.html or -"bond_coeff"_bond_coeff.html. See "Section 9"_Section_tools.html -for additional tools that can use CHARMM or AMBER to assign force -field coefficients and convert their output into LAMMPS input. +"bond_coeff"_bond_coeff.html. See the "Tools"_Tools.html doc page for +additional tools that can use CHARMM or AMBER to assign force field +coefficients and convert their output into LAMMPS input. See "(MacKerell)"_#howto-MacKerell for a description of the CHARMM force field. See "(Cornell)"_#howto-Cornell for a description of the AMBER force @@ -762,12 +762,12 @@ simulations can be visualized (and analyzed) in a variety of ways. LAMMPS snapshots are created by the "dump"_dump.html command which can create files in several formats. The native LAMMPS dump format is a text file (see "dump atom" or "dump custom") which can be visualized -by several popular visualization tools. The "dump image"_dump_image.html -and "dump movie"_dump_image.html styles can output internally rendered -images and convert a sequence of them to a movie during the MD run. -Several programs included with LAMMPS as auxiliary tools can convert -between LAMMPS format files and other formats. -See the "Section 9"_Section_tools.html doc page for details. +by several popular visualization tools. The "dump +image"_dump_image.html and "dump movie"_dump_image.html styles can +output internally rendered images and convert a sequence of them to a +movie during the MD run. Several programs included with LAMMPS as +auxiliary tools can convert between LAMMPS format files and other +formats. See the "Tools"_Tools.html doc page for details. A Python-based toolkit distributed by our group can read native LAMMPS dump files, including custom dump files with additional columns of diff --git a/doc/src/Section_intro.txt b/doc/src/Section_intro.txt index 67293b2ee3..fd1d702d0b 100644 --- a/doc/src/Section_intro.txt +++ b/doc/src/Section_intro.txt @@ -234,8 +234,8 @@ Multi-replica models :h4 Pre- and post-processing :h4 -Various pre- and post-processing serial tools are packaged -with LAMMPS; see these "doc pages"_Section_tools.html. :ulb,l +Various pre- and post-processing serial tools are packaged with +LAMMPS; see the "Tools"_Tools.html doc page for details. :ulb,l Our group has also written and released a separate toolkit called "Pizza.py"_pizza which provides tools for doing setup, analysis, @@ -296,9 +296,9 @@ visualize your MD simulation plot your output data :ul A few tools for pre- and post-processing tasks are provided as part of -the LAMMPS package; they are described in "this -section"_Section_tools.html. However, many people use other codes or -write their own tools for these tasks. +the LAMMPS package; they are described on the "Tools"_Tools.html doc +page. However, many people use other codes or write their own tools +for these tasks. As noted above, our group has also written and released a separate toolkit called "Pizza.py"_pizza which addresses some of the listed @@ -327,8 +327,8 @@ topology information and hundreds of force-field coefficients must typically be specified. We suggest you use a program like "CHARMM"_charmm or "AMBER"_amber or other molecular builders to setup such problems and dump its information to a file. You can then -reformat the file as LAMMPS input. Some of the tools in "this -section"_Section_tools.html can assist in this process. +reformat the file as LAMMPS input. Some of the tools described on the +"Tools"_Tools.html doc page can assist in this process. Similarly, LAMMPS creates output files in a simple format. Most users post-process these files with their own analysis tools or re-format @@ -442,8 +442,8 @@ directory. :l The tools sub-directory of the LAMMPS distribution has various stand-alone codes for pre- and post-processing of LAMMPS data. More -details are given in "Section 9"_Section_tools.html. If you write -a new tool that users will find useful, it can be added to the LAMMPS +details are given on the "Tools"_Tools.html doc page. If you write a +new tool that users will find useful, it can be added to the LAMMPS distribution. :l LAMMPS is designed to be easy to extend with new code for features diff --git a/doc/src/Section_modify.txt b/doc/src/Section_modify.txt index f1d55758c8..6948ac062a 100644 --- a/doc/src/Section_modify.txt +++ b/doc/src/Section_modify.txt @@ -1,5 +1,5 @@ - "Previous Section"_Section_tools.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next + "Previous Section"_Tools.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_python.html :c :link(lws,http://lammps.sandia.gov) diff --git a/doc/src/Section_perf.txt b/doc/src/Section_perf.txt index 9998cb0d9a..56b1d7dd04 100644 --- a/doc/src/Section_perf.txt +++ b/doc/src/Section_perf.txt @@ -1,4 +1,6 @@ -"Previous Section"_Section_example.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_tools.html :c +"Previous Section"_Section_example.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Tools.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/dump.txt b/doc/src/dump.txt index 438ff1d4e0..d130846519 100644 --- a/doc/src/dump.txt +++ b/doc/src/dump.txt @@ -1,4 +1,4 @@ - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -184,10 +184,10 @@ file and in what format. Settings made via the individual values and the file itself. The {atom}, {local}, and {custom} styles create files in a simple text -format that is self-explanatory when viewing a dump file. Many of the -LAMMPS "post-processing tools"_Section_tools.html, including -"Pizza.py"_http://www.sandia.gov/~sjplimp/pizza.html, work with this -format, as does the "rerun"_rerun.html command. +format that is self-explanatory when viewing a dump file. Some of the +LAMMPS post-processing tools described on the "Tools"_Tools.html doc +page, including "Pizza.py"_http://www.sandia.gov/~sjplimp/pizza.html, +work with this format, as does the "rerun"_rerun.html command. For post-processing purposes the {atom}, {local}, and {custom} text files are self-describing in the following sense. @@ -413,10 +413,10 @@ If the filename ends with ".bin", the dump file (or files, if "*" or will be about the same size as a text version, but will typically write out much faster. Of course, when post-processing, you will need to convert it back to text format (see the "binary2txt -tool"_Section_tools.html#binary) or write your own code to read the -binary file. The format of the binary file can be understood by -looking at the tools/binary2txt.cpp file. This option is only -available for the {atom} and {custom} styles. +tool"_Tools.html#binary) or write your own code to read the binary +file. The format of the binary file can be understood by looking at +the tools/binary2txt.cpp file. This option is only available for the +{atom} and {custom} styles. If the filename ends with ".gz", the dump file (or files, if "*" or "%" is also used) is written in gzipped format. A gzipped dump file will From 655bd10db6279c947fba9a32120ca32077eabef5 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 24 Jul 2018 15:20:37 -0600 Subject: [PATCH 332/675] doc changes to 2 files --- doc/src/kspace_modify.txt | 75 ++++++++++++++++++++++++++------------- doc/src/kspace_style.txt | 51 ++++++++++++-------------- 2 files changed, 72 insertions(+), 54 deletions(-) diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index d21bb379e7..c41e9a9336 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -313,43 +313,67 @@ or with suffix kspace/pair styles of MSM, like OMP or GPU. The {scafacos} keyword is used for settings that are passed to the ScaFaCoS library when using "kspace_style scafacos"_kspace_style.html. -The {tolerance} option affects how the {accuracy} specified with -the "kspace_style"_kspace_style.html command is interpreted by ScaFaCoS. +The {tolerance} option affects how the {accuracy} specified with the +"kspace_style"_kspace_style.html command is interpreted by ScaFaCoS. The following values may be used: energy = absolute accuracy in total Coulomic energy energy_rel = relative accuracy in total Coulomic energy -field = absolute accuracy in electric field -field_rel = relative accuracy in electric field potential = absolute accuracy in total Coulomic potential potential_rel = relative accuracy in total Coulomic potential +field = absolute accuracy in electric field +field_rel = relative accuracy in electric field :ul -Potential and potential_rel impose a tolerance on a per-atom basis, -in comparison to the energy and energy_rel tolerance types, where -the tolerance is computed with regard to the total Coulomic energy -in the system. In comparison to that, the field and field_rel -tolerance types set a tolerance for the field values calculated -within ScaFaCoS. Since the forces are derived from the field -values, it indirectly sets a tolerance for the forces, comparable -to other LAMMPS KSpace styles, see "kspace_style"_kspace_modify.html. -The suffix '_rel' indicates that the tolerance is a relative tolerance, -whereas the other case imposes an absolute tolerance on the given +The values with suffix "_rel" indicate the tolerance is a relative +tolerance; the other values impose an absolute tolerance on the given quantity. -What needs to be taken into account is that not all solvers within -the ScaFaCoS library support all kinds of tolerance types. +The energy and energy_rel values, set a tolerance based on the total +Coulomic energy of the system. The potential and potential_rel set a +tolerance based on the per-atom Coulomic energy. The field and +field_rel tolerance types set a tolerance based on the electric field +values computed by ScaFaCoS. Since per-atom forces are derived from +the per-atom electric field, this effectively sets a tolerance on the +forces, simimlar to other LAMMPS KSpace styles, as explained on the +"kspace_style"_kspace_style.html doc page. + +RENE: Can you add some explanation of the difference between relative +and absolute? Something like this (if it's correct). If the total +Coul energy is computed to be -1000.0, then an absolute tolerance of +1.0e-3 means the actual energy is between -999.999 and -1000.001. +Whereas a relative tolerance means it is between -999 and -1001. Thus +an absolute tolerance is generally much more stringent? + +RENE: Also, can you explain more what is the difference between energy +(total) and potential (per-atom)? Which one is more vs less accurate? +Does potential mean that the maximum of any atom's energy error is < +tolerance? I.e. it is a max across all per-atom values? Ditto for +field, since it is computed on a per-atom basis? + +Note that not all ScaFaCoS solvers support all tolerance types. +These are the allowed values for each method: fmm = energy and energy_rel p2nfft = field (1d-,2d-,3d-periodic systems) or potential (0d-periodic) ewald = field -direct = has no tolerance tuning +direct = has no tolerance tuning :ul -The {fmm_tuning} option (de-)activates the internal tuning mechanism -for the fmm solver. Since the internal tuning mechanism is sequential, -it can be very time-consuming and usually it is not required for -systems with a homogenous charge distribution. The default of the -setting there for is {0}, disabling the internal tuning. {1} -activates the internal tuning. +RENE: I think this means that the default tolerance setting +is differnet for different methods. If so, it should +be documented in the above list, i.e. by listing the default +value first. + +RENE: Does the code (LAMMPS or Scafacos) generate an error +if an unsupported tolerance is specified for a method? + +The {fmm_tuning} option is only relevant when using the FMM method. +It activates (value=1) or deactivates (value=0) an internal tuning +mechanism for the FMM solver. The tuning operation runs sequentially +and can be very time-consuming. Usually it is not needed for systems +with a homogenous charge distribution. The default for this option is +therefore {0}. + +RENE: is the tuning a one-time (start-up) operation if enabled? :line @@ -405,8 +429,9 @@ gewald = gewald/disp = 0.0, slab = 1.0, compute = yes, cutoff/adjust = yes (MSM), pressure/scalar = yes (MSM), fftbench = no (PPPM), diff = ik (PPPM), mix/disp = pair, force/disp/real = -1.0, force/disp/kspace = -1.0, split = 0, tol = 1.0e-6, and disp/auto = no. For pppm/intel, -order = order/disp = 7. For scafacos settings, scafacos tolerance -field. +order = order/disp = 7. For scafacos settings, the scafacos tolerance +option depends on the method chosen, as documented above. The +scafacos fmm_tuning default = 0. :line diff --git a/doc/src/kspace_style.txt b/doc/src/kspace_style.txt index 49fb13ac37..742d71ffb8 100644 --- a/doc/src/kspace_style.txt +++ b/doc/src/kspace_style.txt @@ -236,41 +236,34 @@ See details on "this page"_Section_packages.html#USER-SCAFACOS. NOTE: Unlike other KSpace solvers in LAMMPS, ScaFaCoS computes all Coulombic interactions, both short- and long-range. Thus you should -NOT use a Coulmbic pair style when using kspace_style scafacos. Thus -the total Coulombic energy (short- and long-range) will be tallied for -"thermodynamic output"_thermo_style.html command as part of the -{elong} keyword; the {ecoul} keyword will be zero. +NOT use a Coulmbic pair style when using kspace_style scafacos. This +also means the total Coulombic energy (short- and long-range) will be +tallied for "thermodynamic output"_thermo_style.html command as part +of the {elong} keyword; the {ecoul} keyword will be zero. -NOTE: See the restriction below about use of ScaFaCoS in LAMMPS with -molecular charged systems or the TIP4P water model. - -Unlike other KSpace solvers in LAMMPS, ScaFaCoS computes all -Coulombic interactions, both short- and long-range. Thus you should -NOT use a Coulmbic pair style when using kspace_style scafacos. Thus -the total Coulombic energy (short- and long-range) will be tallied for -"thermodynamic output"_thermo_style.html command as part of the -{elong} keyword; the {ecoul} keyword will be zero. +NOTE: See the current restriction below about use of ScaFaCoS in +LAMMPS with molecular charged systems or the TIP4P water model. The specified {method} determines which ScaFaCoS algorithm is used. -The list of methods shown above are the ScaFaCoS methods currently -available from LAMMPS. Currently the following solvers are -supported for use with LAMMPS: {fmm} (Fast Multi-Pole method), -{p2nfft} (FFT-based Coulomb solver), {ewald} (Ewald-Summation) -and {direct} (direct summation). The other ScaFaCoS solvers -will be supported later on, but for the time being are -experimental in connection with LAMMPS, e.g. {p3m} (PPPM-method). -Use unsupported methods at your own discretion. To get an overview -about the included solvers, refer to "(Sutmann)"_#Sutmann2013 +These are the ScaFaCoS methods currently available from LAMMPS: + +{fmm} = Fast Multi-Pole method +{p2nfft} = FFT-based Coulomb solver +{ewald} = Ewald summation +{direct} = direct O(N^2) summation + +We plan to support additional ScaFaCoS solvers from LAMMPS in the +future. For an overview of the included solvers, refer to +"(Sutmann)"_#Sutmann2013 The specified {accuracy} is similar to the accuracy setting for other LAMMPS KSpace styles, but is passed to ScaFaCoS, which can interpret -it in different ways for different methods it supports. -Within the ScaFaCoS library the {accuracy} is treated as a tolerance -level (either absolute or relative) for the chosen quantity, where -the quantity can be either the Columic field values, the per-atom -Columic energy or the total Columic energy. Different solver support -different tolerance types, for more information on that, please -refer to "kspace_modify scafacos accuracy"_kspace_modify.html. +it in different ways for different methods it supports. Within the +ScaFaCoS library the {accuracy} is treated as a tolerance level +(either absolute or relative) for the chosen quantity, where the +quantity can be either the Columic field values, the per-atom Columic +energy or the total Columic energy. To select from these options, see +the "kspace_modify scafacos accuracy"_kspace_modify.html doc page. The "kspace_modify scafacos"_kspace_modify.html command also explains all the ScaFaCoS options currently exposed to LAMMPS. From 8846f97868f24ef75cecf9dd4547640cf8cb06e7 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 24 Jul 2018 15:46:28 -0600 Subject: [PATCH 333/675] explained differences between absolute and relative tolerance more --- doc/src/kspace_modify.txt | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index c41e9a9336..f552f9b9b6 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -326,7 +326,16 @@ field_rel = relative accuracy in electric field :ul The values with suffix "_rel" indicate the tolerance is a relative tolerance; the other values impose an absolute tolerance on the given -quantity. +quantity. Absoulte tolerance in this case means, that for a given +quantity q and a given absolute tolerance of t_a the result should +be between q-t_a and q+t_a. For a relative tolerance t_r the relative +error should not be greater than t_r, i.e. abs(1 - (result/q)) < t_r. +As a consequence of this, the tolerance type should be checked, when +performing computations with a high absolute field / energy. E.g. +if the total energy in the system is 1000000.0 an absolute tolerance +of 1e-3 would mean that the result has to be between 999999.999 and +1000000.001, which would be equivalent to a relative tolerance of +1e-9. The energy and energy_rel values, set a tolerance based on the total Coulomic energy of the system. The potential and potential_rel set a @@ -337,13 +346,6 @@ the per-atom electric field, this effectively sets a tolerance on the forces, simimlar to other LAMMPS KSpace styles, as explained on the "kspace_style"_kspace_style.html doc page. -RENE: Can you add some explanation of the difference between relative -and absolute? Something like this (if it's correct). If the total -Coul energy is computed to be -1000.0, then an absolute tolerance of -1.0e-3 means the actual energy is between -999.999 and -1000.001. -Whereas a relative tolerance means it is between -999 and -1001. Thus -an absolute tolerance is generally much more stringent? - RENE: Also, can you explain more what is the difference between energy (total) and potential (per-atom)? Which one is more vs less accurate? Does potential mean that the maximum of any atom's energy error is < @@ -358,10 +360,9 @@ p2nfft = field (1d-,2d-,3d-periodic systems) or potential (0d-periodic) ewald = field direct = has no tolerance tuning :ul -RENE: I think this means that the default tolerance setting -is differnet for different methods. If so, it should -be documented in the above list, i.e. by listing the default -value first. +If the tolerance type is not changed, the default values for the +tolerance type are the first values in the above list, e.g. energy +is the default tolerance type for the fmm solver. RENE: Does the code (LAMMPS or Scafacos) generate an error if an unsupported tolerance is specified for a method? From 37a0a7b49bb54cedeb475772c7f64b3e83b8153c Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 24 Jul 2018 15:55:48 -0600 Subject: [PATCH 334/675] fixed compilation error --- doc/src/kspace_modify.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index f552f9b9b6..57cff18d7e 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -324,7 +324,7 @@ potential_rel = relative accuracy in total Coulomic potential field = absolute accuracy in electric field field_rel = relative accuracy in electric field :ul -The values with suffix "_rel" indicate the tolerance is a relative +The values with suffix _rel indicate the tolerance is a relative tolerance; the other values impose an absolute tolerance on the given quantity. Absoulte tolerance in this case means, that for a given quantity q and a given absolute tolerance of t_a the result should From a4dbac63d32af5683bf73d49817561c390f6036e Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 24 Jul 2018 17:22:15 -0600 Subject: [PATCH 335/675] more updates to the new MESSAGE package --- examples/COUPLE/lammps_vasp/OUTCAR | 14953 +++++++++++++++++++++ examples/COUPLE/lammps_vasp/README | 48 +- examples/COUPLE/lammps_vasp/vasp_wrap.py | 33 +- lib/message/cslib/src/cslib.py | 4 +- src/MESSAGE/message.cpp | 2 +- src/MESSAGE/server.cpp | 2 +- 6 files changed, 15009 insertions(+), 33 deletions(-) create mode 100644 examples/COUPLE/lammps_vasp/OUTCAR diff --git a/examples/COUPLE/lammps_vasp/OUTCAR b/examples/COUPLE/lammps_vasp/OUTCAR new file mode 100644 index 0000000000..6e8ef736cc --- /dev/null +++ b/examples/COUPLE/lammps_vasp/OUTCAR @@ -0,0 +1,14953 @@ + vasp.5.4.4.18Apr17-6-g9f103f2a35 (build Aug 01 2017 10:32:50) complex + + executed on LinuxIFC date 2017.12.19 15:22:45 + running on 9 total cores + distrk: each k-point on 9 cores, 1 groups + distr: one band on NCORES_PER_BAND= 1 cores, 9 groups + + +-------------------------------------------------------------------------------------------------------- + + + INCAR: + POTCAR: PAW_PBE W_sv_GW 23Mar2010 + POTCAR: PAW_PBE Be_sv_GW 31Mar2010 + + ----------------------------------------------------------------------------- +| | +| W W AA RRRRR N N II N N GGGG !!! | +| W W A A R R NN N II NN N G G !!! | +| W W A A R R N N N II N N N G !!! | +| W WW W AAAAAA RRRRR N N N II N N N G GGG ! | +| WW WW A A R R N NN II N NN G G | +| W W A A R R N N II N N GGGG !!! | +| | +| For optimal performance we recommend to set | +| NCORE= 4 - approx SQRT( number of cores) | +| NCORE specifies how many cores store one orbital (NPAR=cpu/NCORE). | +| This setting can greatly improve the performance of VASP for DFT. | +| The default, NCORE=1 might be grossly inefficient | +| on modern multi-core architectures or massively parallel machines. | +| Do your own testing !!!! | +| Unfortunately you need to use the default for GW and RPA calculations. | +| (for HF NCORE is supported but not extensively tested yet) | +| | + ----------------------------------------------------------------------------- + + POTCAR: PAW_PBE W_sv_GW 23Mar2010 + VRHFIN =W: 5p6s5d + LEXCH = PE + EATOM = 1863.8917 eV, 136.9922 Ry + + TITEL = PAW_PBE W_sv_GW 23Mar2010 + LULTRA = F use ultrasoft PP ? + IUNSCR = 1 unscreen: 0-lin 1-nonlin 2-no + RPACOR = 1.500 partial core radius + POMASS = 183.850; ZVAL = 14.000 mass and valenz + RCORE = 2.300 outmost cutoff radius + RWIGS = 2.600; RWIGS = 1.376 wigner-seitz radius (au A) + ENMAX = 317.132; ENMIN = 237.849 eV + RCLOC = 1.609 cutoff for local pot + LCOR = T correct aug charges + LPAW = T paw PP + EAUG = 807.757 + DEXC = 0.000 + RMAX = 2.349 core radius for proj-oper + RAUG = 1.300 factor for augmentation sphere + RDEP = 2.382 radius for radial grids + RDEPT = 1.832 core radius for aug-charge + + Atomic configuration + 14 entries + n l j E occ. + 1 0 0.50 -69464.1497 2.0000 + 2 0 0.50 -11984.7400 2.0000 + 2 1 1.50 -10478.3405 6.0000 + 3 0 0.50 -2757.5605 2.0000 + 3 1 1.50 -2311.6706 6.0000 + 3 2 2.50 -1799.5973 10.0000 + 4 0 0.50 -566.1609 2.0000 + 4 1 1.50 -419.9482 6.0000 + 4 2 2.50 -234.8191 10.0000 + 4 3 3.50 -29.7363 14.0000 + 5 0 0.50 -75.5905 2.0000 + 5 1 1.50 -39.9756 6.0000 + 5 2 2.50 -2.4479 6.0000 + 5 3 2.50 -1.3606 0.0000 + Description + l E TYP RCUT TYP RCUT + 0 -75.5905419 23 1.500 + 0 -76.9511245 23 1.500 + 0 108.8466080 23 1.500 + 1 -39.9756040 23 1.800 + 1 68.0291300 23 1.800 + 2 -2.4478587 23 2.150 + 2 -0.0030619 23 2.150 + 3 4.0817478 23 2.300 + local pseudopotential read in + partial core-charges read in + partial kinetic energy density read in + kinetic energy density of atom read in + atomic valenz-charges read in + non local Contribution for L= 0 read in + real space projection operators read in + non local Contribution for L= 0 read in + real space projection operators read in + non local Contribution for L= 0 read in + real space projection operators read in + non local Contribution for L= 1 read in + real space projection operators read in + non local Contribution for L= 1 read in + real space projection operators read in + non local Contribution for L= 2 read in + real space projection operators read in + non local Contribution for L= 2 read in + real space projection operators read in + non local Contribution for L= 3 read in + real space projection operators read in + PAW grid and wavefunctions read in + + number of l-projection operators is LMAX = 8 + number of lm-projection operators is LMMAX = 26 + + POTCAR: PAW_PBE Be_sv_GW 31Mar2010 + VRHFIN =Be: s2p0 + LEXCH = PE + EATOM = 390.9322 eV, 28.7327 Ry + + TITEL = PAW_PBE Be_sv_GW 31Mar2010 + LULTRA = F use ultrasoft PP ? + IUNSCR = 0 unscreen: 0-lin 1-nonlin 2-no + RPACOR = 0.000 partial core radius + POMASS = 9.013; ZVAL = 4.000 mass and valenz + RCORE = 1.300 outmost cutoff radius + RWIGS = 1.600; RWIGS = 0.847 wigner-seitz radius (au A) + ENMAX = 537.454; ENMIN = 403.090 eV + RCLOC = 1.007 cutoff for local pot + LCOR = T correct aug charges + LPAW = T paw PP + EAUG = 1293.449 + RMAX = 1.324 core radius for proj-oper + RAUG = 1.300 factor for augmentation sphere + RDEP = 1.364 radius for radial grids + RDEPT = 1.200 core radius for aug-charge + + Atomic configuration + 5 entries + n l j E occ. + 1 0 0.50 -108.8489 2.0000 + 1 0 0.50 -107.4860 0.0000 + 2 1 0.50 -2.9389 2.0000 + 3 2 1.50 -1.3606 0.0000 + 4 3 2.50 -1.3606 0.0000 + Description + l E TYP RCUT TYP RCUT + 0 -108.8489274 23 1.100 + 0 -107.4860254 23 1.100 + 0 95.2407820 23 1.100 + 1 -2.9389331 23 1.300 + 1 15.5352276 23 1.300 + 2 54.4233040 23 1.300 + local pseudopotential read in + kinetic energy density of atom read in + atomic valenz-charges read in + non local Contribution for L= 0 read in + real space projection operators read in + non local Contribution for L= 0 read in + real space projection operators read in + non local Contribution for L= 0 read in + real space projection operators read in + non local Contribution for L= 1 read in + real space projection operators read in + non local Contribution for L= 1 read in + real space projection operators read in + non local Contribution for L= 2 read in + real space projection operators read in + PAW grid and wavefunctions read in + + number of l-projection operators is LMAX = 6 + number of lm-projection operators is LMMAX = 14 + + PAW_PBE W_sv_GW 23Mar2010 : + energy of atom 1 EATOM=-1863.8917 + kinetic energy error for atom= 0.0147 (will be added to EATOM!!) + PAW_PBE Be_sv_GW 31Mar2010 : + energy of atom 2 EATOM= -390.9322 + kinetic energy error for atom= 0.0274 (will be added to EATOM!!) + + + POSCAR: WBe3 L1_2 + positions in direct lattice + No initial velocities read in + exchange correlation table for LEXCH = 8 + RHO(1)= 0.500 N(1) = 2000 + RHO(2)= 100.500 N(2) = 4000 + + + +-------------------------------------------------------------------------------------------------------- + + + ion position nearest neighbor table + 1 0.000 0.000 0.000- 2 2.38 2 2.38 2 2.38 2 2.38 3 2.43 3 2.43 3 2.43 3 2.43 + 4 2.56 4 2.56 4 2.56 4 2.56 + 2 0.000 0.500 0.500- 1 2.38 1 2.38 1 2.38 1 2.38 + 3 0.500 0.000 0.500- 1 2.43 1 2.43 1 2.43 1 2.43 + 4 0.500 0.500 0.000- 1 2.56 1 2.56 1 2.56 1 2.56 + + LATTYP: Found a simple orthorhombic cell. + ALAT = 3.1767810000 + B/A-ratio = 1.1198253830 + C/A-ratio = 1.1551350250 + + Lattice vectors: + + A1 = ( 0.0000000000, 0.0000000000, -3.1767810000) + A2 = ( 0.0000000000, -3.5574400000, 0.0000000000) + A3 = ( -3.6696110000, 0.0000000000, 0.0000000000) + + +Analysis of symmetry for initial positions (statically): +===================================================================== + Subroutine PRICEL returns: + Original cell was already a primitive cell. + + + Routine SETGRP: Setting up the symmetry group for a + simple orthorhombic supercell. + + + Subroutine GETGRP returns: Found 8 space group operations + (whereof 8 operations were pure point group operations) + out of a pool of 8 trial point group operations. + + +The static configuration has the point symmetry D_2h. + + +Analysis of symmetry for dynamics (positions and initial velocities): +===================================================================== + Subroutine PRICEL returns: + Original cell was already a primitive cell. + + + Routine SETGRP: Setting up the symmetry group for a + simple orthorhombic supercell. + + + Subroutine GETGRP returns: Found 8 space group operations + (whereof 8 operations were pure point group operations) + out of a pool of 8 trial point group operations. + + +The dynamic configuration has the point symmetry D_2h. + + + Subroutine INISYM returns: Found 8 space group operations + (whereof 8 operations are pure point group operations), + and found 1 'primitive' translations + + + + KPOINTS: K-Points + +Automatic generation of k-mesh. +Space group operators: + irot det(A) alpha n_x n_y n_z tau_x tau_y tau_z + 1 1.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 2 -1.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 3 1.000000 179.999999 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 4 -1.000000 179.999999 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + 5 1.000000 180.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 + 6 -1.000000 180.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 + 7 1.000000 180.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 + 8 -1.000000 180.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 + + Subroutine IBZKPT returns following result: + =========================================== + + Found 512 irreducible k-points: + + Following reciprocal coordinates: + Coordinates Weight + 0.000000 0.000000 0.000000 1.000000 + 0.066667 0.000000 0.000000 2.000000 + 0.133333 0.000000 0.000000 2.000000 + 0.200000 0.000000 0.000000 2.000000 + 0.266667 0.000000 0.000000 2.000000 + 0.333333 0.000000 0.000000 2.000000 + 0.400000 0.000000 0.000000 2.000000 + 0.466667 0.000000 0.000000 2.000000 + 0.000000 0.066667 0.000000 2.000000 + 0.066667 0.066667 0.000000 4.000000 + 0.133333 0.066667 0.000000 4.000000 + 0.200000 0.066667 0.000000 4.000000 + 0.266667 0.066667 0.000000 4.000000 + 0.333333 0.066667 0.000000 4.000000 + 0.400000 0.066667 0.000000 4.000000 + 0.466667 0.066667 0.000000 4.000000 + 0.000000 0.133333 0.000000 2.000000 + 0.066667 0.133333 0.000000 4.000000 + 0.133333 0.133333 0.000000 4.000000 + 0.200000 0.133333 0.000000 4.000000 + 0.266667 0.133333 0.000000 4.000000 + 0.333333 0.133333 0.000000 4.000000 + 0.400000 0.133333 0.000000 4.000000 + 0.466667 0.133333 0.000000 4.000000 + 0.000000 0.200000 0.000000 2.000000 + 0.066667 0.200000 0.000000 4.000000 + 0.133333 0.200000 0.000000 4.000000 + 0.200000 0.200000 0.000000 4.000000 + 0.266667 0.200000 0.000000 4.000000 + 0.333333 0.200000 0.000000 4.000000 + 0.400000 0.200000 0.000000 4.000000 + 0.466667 0.200000 0.000000 4.000000 + 0.000000 0.266667 0.000000 2.000000 + 0.066667 0.266667 0.000000 4.000000 + 0.133333 0.266667 0.000000 4.000000 + 0.200000 0.266667 0.000000 4.000000 + 0.266667 0.266667 0.000000 4.000000 + 0.333333 0.266667 0.000000 4.000000 + 0.400000 0.266667 0.000000 4.000000 + 0.466667 0.266667 0.000000 4.000000 + 0.000000 0.333333 0.000000 2.000000 + 0.066667 0.333333 0.000000 4.000000 + 0.133333 0.333333 0.000000 4.000000 + 0.200000 0.333333 0.000000 4.000000 + 0.266667 0.333333 0.000000 4.000000 + 0.333333 0.333333 0.000000 4.000000 + 0.400000 0.333333 0.000000 4.000000 + 0.466667 0.333333 0.000000 4.000000 + 0.000000 0.400000 0.000000 2.000000 + 0.066667 0.400000 0.000000 4.000000 + 0.133333 0.400000 0.000000 4.000000 + 0.200000 0.400000 0.000000 4.000000 + 0.266667 0.400000 0.000000 4.000000 + 0.333333 0.400000 0.000000 4.000000 + 0.400000 0.400000 0.000000 4.000000 + 0.466667 0.400000 0.000000 4.000000 + 0.000000 0.466667 0.000000 2.000000 + 0.066667 0.466667 0.000000 4.000000 + 0.133333 0.466667 0.000000 4.000000 + 0.200000 0.466667 0.000000 4.000000 + 0.266667 0.466667 0.000000 4.000000 + 0.333333 0.466667 0.000000 4.000000 + 0.400000 0.466667 0.000000 4.000000 + 0.466667 0.466667 0.000000 4.000000 + 0.000000 0.000000 0.066667 2.000000 + 0.066667 0.000000 0.066667 4.000000 + 0.133333 0.000000 0.066667 4.000000 + 0.200000 0.000000 0.066667 4.000000 + 0.266667 0.000000 0.066667 4.000000 + 0.333333 0.000000 0.066667 4.000000 + 0.400000 0.000000 0.066667 4.000000 + 0.466667 0.000000 0.066667 4.000000 + 0.000000 0.066667 0.066667 4.000000 + 0.066667 0.066667 0.066667 8.000000 + 0.133333 0.066667 0.066667 8.000000 + 0.200000 0.066667 0.066667 8.000000 + 0.266667 0.066667 0.066667 8.000000 + 0.333333 0.066667 0.066667 8.000000 + 0.400000 0.066667 0.066667 8.000000 + 0.466667 0.066667 0.066667 8.000000 + 0.000000 0.133333 0.066667 4.000000 + 0.066667 0.133333 0.066667 8.000000 + 0.133333 0.133333 0.066667 8.000000 + 0.200000 0.133333 0.066667 8.000000 + 0.266667 0.133333 0.066667 8.000000 + 0.333333 0.133333 0.066667 8.000000 + 0.400000 0.133333 0.066667 8.000000 + 0.466667 0.133333 0.066667 8.000000 + 0.000000 0.200000 0.066667 4.000000 + 0.066667 0.200000 0.066667 8.000000 + 0.133333 0.200000 0.066667 8.000000 + 0.200000 0.200000 0.066667 8.000000 + 0.266667 0.200000 0.066667 8.000000 + 0.333333 0.200000 0.066667 8.000000 + 0.400000 0.200000 0.066667 8.000000 + 0.466667 0.200000 0.066667 8.000000 + 0.000000 0.266667 0.066667 4.000000 + 0.066667 0.266667 0.066667 8.000000 + 0.133333 0.266667 0.066667 8.000000 + 0.200000 0.266667 0.066667 8.000000 + 0.266667 0.266667 0.066667 8.000000 + 0.333333 0.266667 0.066667 8.000000 + 0.400000 0.266667 0.066667 8.000000 + 0.466667 0.266667 0.066667 8.000000 + 0.000000 0.333333 0.066667 4.000000 + 0.066667 0.333333 0.066667 8.000000 + 0.133333 0.333333 0.066667 8.000000 + 0.200000 0.333333 0.066667 8.000000 + 0.266667 0.333333 0.066667 8.000000 + 0.333333 0.333333 0.066667 8.000000 + 0.400000 0.333333 0.066667 8.000000 + 0.466667 0.333333 0.066667 8.000000 + 0.000000 0.400000 0.066667 4.000000 + 0.066667 0.400000 0.066667 8.000000 + 0.133333 0.400000 0.066667 8.000000 + 0.200000 0.400000 0.066667 8.000000 + 0.266667 0.400000 0.066667 8.000000 + 0.333333 0.400000 0.066667 8.000000 + 0.400000 0.400000 0.066667 8.000000 + 0.466667 0.400000 0.066667 8.000000 + 0.000000 0.466667 0.066667 4.000000 + 0.066667 0.466667 0.066667 8.000000 + 0.133333 0.466667 0.066667 8.000000 + 0.200000 0.466667 0.066667 8.000000 + 0.266667 0.466667 0.066667 8.000000 + 0.333333 0.466667 0.066667 8.000000 + 0.400000 0.466667 0.066667 8.000000 + 0.466667 0.466667 0.066667 8.000000 + 0.000000 0.000000 0.133333 2.000000 + 0.066667 0.000000 0.133333 4.000000 + 0.133333 0.000000 0.133333 4.000000 + 0.200000 0.000000 0.133333 4.000000 + 0.266667 0.000000 0.133333 4.000000 + 0.333333 0.000000 0.133333 4.000000 + 0.400000 0.000000 0.133333 4.000000 + 0.466667 0.000000 0.133333 4.000000 + 0.000000 0.066667 0.133333 4.000000 + 0.066667 0.066667 0.133333 8.000000 + 0.133333 0.066667 0.133333 8.000000 + 0.200000 0.066667 0.133333 8.000000 + 0.266667 0.066667 0.133333 8.000000 + 0.333333 0.066667 0.133333 8.000000 + 0.400000 0.066667 0.133333 8.000000 + 0.466667 0.066667 0.133333 8.000000 + 0.000000 0.133333 0.133333 4.000000 + 0.066667 0.133333 0.133333 8.000000 + 0.133333 0.133333 0.133333 8.000000 + 0.200000 0.133333 0.133333 8.000000 + 0.266667 0.133333 0.133333 8.000000 + 0.333333 0.133333 0.133333 8.000000 + 0.400000 0.133333 0.133333 8.000000 + 0.466667 0.133333 0.133333 8.000000 + 0.000000 0.200000 0.133333 4.000000 + 0.066667 0.200000 0.133333 8.000000 + 0.133333 0.200000 0.133333 8.000000 + 0.200000 0.200000 0.133333 8.000000 + 0.266667 0.200000 0.133333 8.000000 + 0.333333 0.200000 0.133333 8.000000 + 0.400000 0.200000 0.133333 8.000000 + 0.466667 0.200000 0.133333 8.000000 + 0.000000 0.266667 0.133333 4.000000 + 0.066667 0.266667 0.133333 8.000000 + 0.133333 0.266667 0.133333 8.000000 + 0.200000 0.266667 0.133333 8.000000 + 0.266667 0.266667 0.133333 8.000000 + 0.333333 0.266667 0.133333 8.000000 + 0.400000 0.266667 0.133333 8.000000 + 0.466667 0.266667 0.133333 8.000000 + 0.000000 0.333333 0.133333 4.000000 + 0.066667 0.333333 0.133333 8.000000 + 0.133333 0.333333 0.133333 8.000000 + 0.200000 0.333333 0.133333 8.000000 + 0.266667 0.333333 0.133333 8.000000 + 0.333333 0.333333 0.133333 8.000000 + 0.400000 0.333333 0.133333 8.000000 + 0.466667 0.333333 0.133333 8.000000 + 0.000000 0.400000 0.133333 4.000000 + 0.066667 0.400000 0.133333 8.000000 + 0.133333 0.400000 0.133333 8.000000 + 0.200000 0.400000 0.133333 8.000000 + 0.266667 0.400000 0.133333 8.000000 + 0.333333 0.400000 0.133333 8.000000 + 0.400000 0.400000 0.133333 8.000000 + 0.466667 0.400000 0.133333 8.000000 + 0.000000 0.466667 0.133333 4.000000 + 0.066667 0.466667 0.133333 8.000000 + 0.133333 0.466667 0.133333 8.000000 + 0.200000 0.466667 0.133333 8.000000 + 0.266667 0.466667 0.133333 8.000000 + 0.333333 0.466667 0.133333 8.000000 + 0.400000 0.466667 0.133333 8.000000 + 0.466667 0.466667 0.133333 8.000000 + 0.000000 0.000000 0.200000 2.000000 + 0.066667 0.000000 0.200000 4.000000 + 0.133333 0.000000 0.200000 4.000000 + 0.200000 0.000000 0.200000 4.000000 + 0.266667 0.000000 0.200000 4.000000 + 0.333333 0.000000 0.200000 4.000000 + 0.400000 0.000000 0.200000 4.000000 + 0.466667 0.000000 0.200000 4.000000 + 0.000000 0.066667 0.200000 4.000000 + 0.066667 0.066667 0.200000 8.000000 + 0.133333 0.066667 0.200000 8.000000 + 0.200000 0.066667 0.200000 8.000000 + 0.266667 0.066667 0.200000 8.000000 + 0.333333 0.066667 0.200000 8.000000 + 0.400000 0.066667 0.200000 8.000000 + 0.466667 0.066667 0.200000 8.000000 + 0.000000 0.133333 0.200000 4.000000 + 0.066667 0.133333 0.200000 8.000000 + 0.133333 0.133333 0.200000 8.000000 + 0.200000 0.133333 0.200000 8.000000 + 0.266667 0.133333 0.200000 8.000000 + 0.333333 0.133333 0.200000 8.000000 + 0.400000 0.133333 0.200000 8.000000 + 0.466667 0.133333 0.200000 8.000000 + 0.000000 0.200000 0.200000 4.000000 + 0.066667 0.200000 0.200000 8.000000 + 0.133333 0.200000 0.200000 8.000000 + 0.200000 0.200000 0.200000 8.000000 + 0.266667 0.200000 0.200000 8.000000 + 0.333333 0.200000 0.200000 8.000000 + 0.400000 0.200000 0.200000 8.000000 + 0.466667 0.200000 0.200000 8.000000 + 0.000000 0.266667 0.200000 4.000000 + 0.066667 0.266667 0.200000 8.000000 + 0.133333 0.266667 0.200000 8.000000 + 0.200000 0.266667 0.200000 8.000000 + 0.266667 0.266667 0.200000 8.000000 + 0.333333 0.266667 0.200000 8.000000 + 0.400000 0.266667 0.200000 8.000000 + 0.466667 0.266667 0.200000 8.000000 + 0.000000 0.333333 0.200000 4.000000 + 0.066667 0.333333 0.200000 8.000000 + 0.133333 0.333333 0.200000 8.000000 + 0.200000 0.333333 0.200000 8.000000 + 0.266667 0.333333 0.200000 8.000000 + 0.333333 0.333333 0.200000 8.000000 + 0.400000 0.333333 0.200000 8.000000 + 0.466667 0.333333 0.200000 8.000000 + 0.000000 0.400000 0.200000 4.000000 + 0.066667 0.400000 0.200000 8.000000 + 0.133333 0.400000 0.200000 8.000000 + 0.200000 0.400000 0.200000 8.000000 + 0.266667 0.400000 0.200000 8.000000 + 0.333333 0.400000 0.200000 8.000000 + 0.400000 0.400000 0.200000 8.000000 + 0.466667 0.400000 0.200000 8.000000 + 0.000000 0.466667 0.200000 4.000000 + 0.066667 0.466667 0.200000 8.000000 + 0.133333 0.466667 0.200000 8.000000 + 0.200000 0.466667 0.200000 8.000000 + 0.266667 0.466667 0.200000 8.000000 + 0.333333 0.466667 0.200000 8.000000 + 0.400000 0.466667 0.200000 8.000000 + 0.466667 0.466667 0.200000 8.000000 + 0.000000 0.000000 0.266667 2.000000 + 0.066667 0.000000 0.266667 4.000000 + 0.133333 0.000000 0.266667 4.000000 + 0.200000 0.000000 0.266667 4.000000 + 0.266667 0.000000 0.266667 4.000000 + 0.333333 0.000000 0.266667 4.000000 + 0.400000 0.000000 0.266667 4.000000 + 0.466667 0.000000 0.266667 4.000000 + 0.000000 0.066667 0.266667 4.000000 + 0.066667 0.066667 0.266667 8.000000 + 0.133333 0.066667 0.266667 8.000000 + 0.200000 0.066667 0.266667 8.000000 + 0.266667 0.066667 0.266667 8.000000 + 0.333333 0.066667 0.266667 8.000000 + 0.400000 0.066667 0.266667 8.000000 + 0.466667 0.066667 0.266667 8.000000 + 0.000000 0.133333 0.266667 4.000000 + 0.066667 0.133333 0.266667 8.000000 + 0.133333 0.133333 0.266667 8.000000 + 0.200000 0.133333 0.266667 8.000000 + 0.266667 0.133333 0.266667 8.000000 + 0.333333 0.133333 0.266667 8.000000 + 0.400000 0.133333 0.266667 8.000000 + 0.466667 0.133333 0.266667 8.000000 + 0.000000 0.200000 0.266667 4.000000 + 0.066667 0.200000 0.266667 8.000000 + 0.133333 0.200000 0.266667 8.000000 + 0.200000 0.200000 0.266667 8.000000 + 0.266667 0.200000 0.266667 8.000000 + 0.333333 0.200000 0.266667 8.000000 + 0.400000 0.200000 0.266667 8.000000 + 0.466667 0.200000 0.266667 8.000000 + 0.000000 0.266667 0.266667 4.000000 + 0.066667 0.266667 0.266667 8.000000 + 0.133333 0.266667 0.266667 8.000000 + 0.200000 0.266667 0.266667 8.000000 + 0.266667 0.266667 0.266667 8.000000 + 0.333333 0.266667 0.266667 8.000000 + 0.400000 0.266667 0.266667 8.000000 + 0.466667 0.266667 0.266667 8.000000 + 0.000000 0.333333 0.266667 4.000000 + 0.066667 0.333333 0.266667 8.000000 + 0.133333 0.333333 0.266667 8.000000 + 0.200000 0.333333 0.266667 8.000000 + 0.266667 0.333333 0.266667 8.000000 + 0.333333 0.333333 0.266667 8.000000 + 0.400000 0.333333 0.266667 8.000000 + 0.466667 0.333333 0.266667 8.000000 + 0.000000 0.400000 0.266667 4.000000 + 0.066667 0.400000 0.266667 8.000000 + 0.133333 0.400000 0.266667 8.000000 + 0.200000 0.400000 0.266667 8.000000 + 0.266667 0.400000 0.266667 8.000000 + 0.333333 0.400000 0.266667 8.000000 + 0.400000 0.400000 0.266667 8.000000 + 0.466667 0.400000 0.266667 8.000000 + 0.000000 0.466667 0.266667 4.000000 + 0.066667 0.466667 0.266667 8.000000 + 0.133333 0.466667 0.266667 8.000000 + 0.200000 0.466667 0.266667 8.000000 + 0.266667 0.466667 0.266667 8.000000 + 0.333333 0.466667 0.266667 8.000000 + 0.400000 0.466667 0.266667 8.000000 + 0.466667 0.466667 0.266667 8.000000 + 0.000000 0.000000 0.333333 2.000000 + 0.066667 0.000000 0.333333 4.000000 + 0.133333 0.000000 0.333333 4.000000 + 0.200000 0.000000 0.333333 4.000000 + 0.266667 0.000000 0.333333 4.000000 + 0.333333 0.000000 0.333333 4.000000 + 0.400000 0.000000 0.333333 4.000000 + 0.466667 0.000000 0.333333 4.000000 + 0.000000 0.066667 0.333333 4.000000 + 0.066667 0.066667 0.333333 8.000000 + 0.133333 0.066667 0.333333 8.000000 + 0.200000 0.066667 0.333333 8.000000 + 0.266667 0.066667 0.333333 8.000000 + 0.333333 0.066667 0.333333 8.000000 + 0.400000 0.066667 0.333333 8.000000 + 0.466667 0.066667 0.333333 8.000000 + 0.000000 0.133333 0.333333 4.000000 + 0.066667 0.133333 0.333333 8.000000 + 0.133333 0.133333 0.333333 8.000000 + 0.200000 0.133333 0.333333 8.000000 + 0.266667 0.133333 0.333333 8.000000 + 0.333333 0.133333 0.333333 8.000000 + 0.400000 0.133333 0.333333 8.000000 + 0.466667 0.133333 0.333333 8.000000 + 0.000000 0.200000 0.333333 4.000000 + 0.066667 0.200000 0.333333 8.000000 + 0.133333 0.200000 0.333333 8.000000 + 0.200000 0.200000 0.333333 8.000000 + 0.266667 0.200000 0.333333 8.000000 + 0.333333 0.200000 0.333333 8.000000 + 0.400000 0.200000 0.333333 8.000000 + 0.466667 0.200000 0.333333 8.000000 + 0.000000 0.266667 0.333333 4.000000 + 0.066667 0.266667 0.333333 8.000000 + 0.133333 0.266667 0.333333 8.000000 + 0.200000 0.266667 0.333333 8.000000 + 0.266667 0.266667 0.333333 8.000000 + 0.333333 0.266667 0.333333 8.000000 + 0.400000 0.266667 0.333333 8.000000 + 0.466667 0.266667 0.333333 8.000000 + 0.000000 0.333333 0.333333 4.000000 + 0.066667 0.333333 0.333333 8.000000 + 0.133333 0.333333 0.333333 8.000000 + 0.200000 0.333333 0.333333 8.000000 + 0.266667 0.333333 0.333333 8.000000 + 0.333333 0.333333 0.333333 8.000000 + 0.400000 0.333333 0.333333 8.000000 + 0.466667 0.333333 0.333333 8.000000 + 0.000000 0.400000 0.333333 4.000000 + 0.066667 0.400000 0.333333 8.000000 + 0.133333 0.400000 0.333333 8.000000 + 0.200000 0.400000 0.333333 8.000000 + 0.266667 0.400000 0.333333 8.000000 + 0.333333 0.400000 0.333333 8.000000 + 0.400000 0.400000 0.333333 8.000000 + 0.466667 0.400000 0.333333 8.000000 + 0.000000 0.466667 0.333333 4.000000 + 0.066667 0.466667 0.333333 8.000000 + 0.133333 0.466667 0.333333 8.000000 + 0.200000 0.466667 0.333333 8.000000 + 0.266667 0.466667 0.333333 8.000000 + 0.333333 0.466667 0.333333 8.000000 + 0.400000 0.466667 0.333333 8.000000 + 0.466667 0.466667 0.333333 8.000000 + 0.000000 0.000000 0.400000 2.000000 + 0.066667 0.000000 0.400000 4.000000 + 0.133333 0.000000 0.400000 4.000000 + 0.200000 0.000000 0.400000 4.000000 + 0.266667 0.000000 0.400000 4.000000 + 0.333333 0.000000 0.400000 4.000000 + 0.400000 0.000000 0.400000 4.000000 + 0.466667 0.000000 0.400000 4.000000 + 0.000000 0.066667 0.400000 4.000000 + 0.066667 0.066667 0.400000 8.000000 + 0.133333 0.066667 0.400000 8.000000 + 0.200000 0.066667 0.400000 8.000000 + 0.266667 0.066667 0.400000 8.000000 + 0.333333 0.066667 0.400000 8.000000 + 0.400000 0.066667 0.400000 8.000000 + 0.466667 0.066667 0.400000 8.000000 + 0.000000 0.133333 0.400000 4.000000 + 0.066667 0.133333 0.400000 8.000000 + 0.133333 0.133333 0.400000 8.000000 + 0.200000 0.133333 0.400000 8.000000 + 0.266667 0.133333 0.400000 8.000000 + 0.333333 0.133333 0.400000 8.000000 + 0.400000 0.133333 0.400000 8.000000 + 0.466667 0.133333 0.400000 8.000000 + 0.000000 0.200000 0.400000 4.000000 + 0.066667 0.200000 0.400000 8.000000 + 0.133333 0.200000 0.400000 8.000000 + 0.200000 0.200000 0.400000 8.000000 + 0.266667 0.200000 0.400000 8.000000 + 0.333333 0.200000 0.400000 8.000000 + 0.400000 0.200000 0.400000 8.000000 + 0.466667 0.200000 0.400000 8.000000 + 0.000000 0.266667 0.400000 4.000000 + 0.066667 0.266667 0.400000 8.000000 + 0.133333 0.266667 0.400000 8.000000 + 0.200000 0.266667 0.400000 8.000000 + 0.266667 0.266667 0.400000 8.000000 + 0.333333 0.266667 0.400000 8.000000 + 0.400000 0.266667 0.400000 8.000000 + 0.466667 0.266667 0.400000 8.000000 + 0.000000 0.333333 0.400000 4.000000 + 0.066667 0.333333 0.400000 8.000000 + 0.133333 0.333333 0.400000 8.000000 + 0.200000 0.333333 0.400000 8.000000 + 0.266667 0.333333 0.400000 8.000000 + 0.333333 0.333333 0.400000 8.000000 + 0.400000 0.333333 0.400000 8.000000 + 0.466667 0.333333 0.400000 8.000000 + 0.000000 0.400000 0.400000 4.000000 + 0.066667 0.400000 0.400000 8.000000 + 0.133333 0.400000 0.400000 8.000000 + 0.200000 0.400000 0.400000 8.000000 + 0.266667 0.400000 0.400000 8.000000 + 0.333333 0.400000 0.400000 8.000000 + 0.400000 0.400000 0.400000 8.000000 + 0.466667 0.400000 0.400000 8.000000 + 0.000000 0.466667 0.400000 4.000000 + 0.066667 0.466667 0.400000 8.000000 + 0.133333 0.466667 0.400000 8.000000 + 0.200000 0.466667 0.400000 8.000000 + 0.266667 0.466667 0.400000 8.000000 + 0.333333 0.466667 0.400000 8.000000 + 0.400000 0.466667 0.400000 8.000000 + 0.466667 0.466667 0.400000 8.000000 + 0.000000 0.000000 0.466667 2.000000 + 0.066667 0.000000 0.466667 4.000000 + 0.133333 0.000000 0.466667 4.000000 + 0.200000 0.000000 0.466667 4.000000 + 0.266667 0.000000 0.466667 4.000000 + 0.333333 0.000000 0.466667 4.000000 + 0.400000 0.000000 0.466667 4.000000 + 0.466667 0.000000 0.466667 4.000000 + 0.000000 0.066667 0.466667 4.000000 + 0.066667 0.066667 0.466667 8.000000 + 0.133333 0.066667 0.466667 8.000000 + 0.200000 0.066667 0.466667 8.000000 + 0.266667 0.066667 0.466667 8.000000 + 0.333333 0.066667 0.466667 8.000000 + 0.400000 0.066667 0.466667 8.000000 + 0.466667 0.066667 0.466667 8.000000 + 0.000000 0.133333 0.466667 4.000000 + 0.066667 0.133333 0.466667 8.000000 + 0.133333 0.133333 0.466667 8.000000 + 0.200000 0.133333 0.466667 8.000000 + 0.266667 0.133333 0.466667 8.000000 + 0.333333 0.133333 0.466667 8.000000 + 0.400000 0.133333 0.466667 8.000000 + 0.466667 0.133333 0.466667 8.000000 + 0.000000 0.200000 0.466667 4.000000 + 0.066667 0.200000 0.466667 8.000000 + 0.133333 0.200000 0.466667 8.000000 + 0.200000 0.200000 0.466667 8.000000 + 0.266667 0.200000 0.466667 8.000000 + 0.333333 0.200000 0.466667 8.000000 + 0.400000 0.200000 0.466667 8.000000 + 0.466667 0.200000 0.466667 8.000000 + 0.000000 0.266667 0.466667 4.000000 + 0.066667 0.266667 0.466667 8.000000 + 0.133333 0.266667 0.466667 8.000000 + 0.200000 0.266667 0.466667 8.000000 + 0.266667 0.266667 0.466667 8.000000 + 0.333333 0.266667 0.466667 8.000000 + 0.400000 0.266667 0.466667 8.000000 + 0.466667 0.266667 0.466667 8.000000 + 0.000000 0.333333 0.466667 4.000000 + 0.066667 0.333333 0.466667 8.000000 + 0.133333 0.333333 0.466667 8.000000 + 0.200000 0.333333 0.466667 8.000000 + 0.266667 0.333333 0.466667 8.000000 + 0.333333 0.333333 0.466667 8.000000 + 0.400000 0.333333 0.466667 8.000000 + 0.466667 0.333333 0.466667 8.000000 + 0.000000 0.400000 0.466667 4.000000 + 0.066667 0.400000 0.466667 8.000000 + 0.133333 0.400000 0.466667 8.000000 + 0.200000 0.400000 0.466667 8.000000 + 0.266667 0.400000 0.466667 8.000000 + 0.333333 0.400000 0.466667 8.000000 + 0.400000 0.400000 0.466667 8.000000 + 0.466667 0.400000 0.466667 8.000000 + 0.000000 0.466667 0.466667 4.000000 + 0.066667 0.466667 0.466667 8.000000 + 0.133333 0.466667 0.466667 8.000000 + 0.200000 0.466667 0.466667 8.000000 + 0.266667 0.466667 0.466667 8.000000 + 0.333333 0.466667 0.466667 8.000000 + 0.400000 0.466667 0.466667 8.000000 + 0.466667 0.466667 0.466667 8.000000 + + Following cartesian coordinates: + Coordinates Weight + 0.000000 0.000000 0.000000 1.000000 + 0.018167 0.000000 0.000000 2.000000 + 0.036334 0.000000 0.000000 2.000000 + 0.054502 0.000000 0.000000 2.000000 + 0.072669 0.000000 0.000000 2.000000 + 0.090836 0.000000 0.000000 2.000000 + 0.109003 0.000000 0.000000 2.000000 + 0.127171 0.000000 0.000000 2.000000 + 0.000000 0.018740 0.000000 2.000000 + 0.018167 0.018740 0.000000 4.000000 + 0.036334 0.018740 0.000000 4.000000 + 0.054502 0.018740 0.000000 4.000000 + 0.072669 0.018740 0.000000 4.000000 + 0.090836 0.018740 0.000000 4.000000 + 0.109003 0.018740 0.000000 4.000000 + 0.127171 0.018740 0.000000 4.000000 + 0.000000 0.037480 0.000000 2.000000 + 0.018167 0.037480 0.000000 4.000000 + 0.036334 0.037480 0.000000 4.000000 + 0.054502 0.037480 0.000000 4.000000 + 0.072669 0.037480 0.000000 4.000000 + 0.090836 0.037480 0.000000 4.000000 + 0.109003 0.037480 0.000000 4.000000 + 0.127171 0.037480 0.000000 4.000000 + 0.000000 0.056220 0.000000 2.000000 + 0.018167 0.056220 0.000000 4.000000 + 0.036334 0.056220 0.000000 4.000000 + 0.054502 0.056220 0.000000 4.000000 + 0.072669 0.056220 0.000000 4.000000 + 0.090836 0.056220 0.000000 4.000000 + 0.109003 0.056220 0.000000 4.000000 + 0.127171 0.056220 0.000000 4.000000 + 0.000000 0.074960 0.000000 2.000000 + 0.018167 0.074960 0.000000 4.000000 + 0.036334 0.074960 0.000000 4.000000 + 0.054502 0.074960 0.000000 4.000000 + 0.072669 0.074960 0.000000 4.000000 + 0.090836 0.074960 0.000000 4.000000 + 0.109003 0.074960 0.000000 4.000000 + 0.127171 0.074960 0.000000 4.000000 + 0.000000 0.093700 0.000000 2.000000 + 0.018167 0.093700 0.000000 4.000000 + 0.036334 0.093700 0.000000 4.000000 + 0.054502 0.093700 0.000000 4.000000 + 0.072669 0.093700 0.000000 4.000000 + 0.090836 0.093700 0.000000 4.000000 + 0.109003 0.093700 0.000000 4.000000 + 0.127171 0.093700 0.000000 4.000000 + 0.000000 0.112440 0.000000 2.000000 + 0.018167 0.112440 0.000000 4.000000 + 0.036334 0.112440 0.000000 4.000000 + 0.054502 0.112440 0.000000 4.000000 + 0.072669 0.112440 0.000000 4.000000 + 0.090836 0.112440 0.000000 4.000000 + 0.109003 0.112440 0.000000 4.000000 + 0.127171 0.112440 0.000000 4.000000 + 0.000000 0.131180 0.000000 2.000000 + 0.018167 0.131180 0.000000 4.000000 + 0.036334 0.131180 0.000000 4.000000 + 0.054502 0.131180 0.000000 4.000000 + 0.072669 0.131180 0.000000 4.000000 + 0.090836 0.131180 0.000000 4.000000 + 0.109003 0.131180 0.000000 4.000000 + 0.127171 0.131180 0.000000 4.000000 + 0.000000 0.000000 0.020986 2.000000 + 0.018167 0.000000 0.020986 4.000000 + 0.036334 0.000000 0.020986 4.000000 + 0.054502 0.000000 0.020986 4.000000 + 0.072669 0.000000 0.020986 4.000000 + 0.090836 0.000000 0.020986 4.000000 + 0.109003 0.000000 0.020986 4.000000 + 0.127171 0.000000 0.020986 4.000000 + 0.000000 0.018740 0.020986 4.000000 + 0.018167 0.018740 0.020986 8.000000 + 0.036334 0.018740 0.020986 8.000000 + 0.054502 0.018740 0.020986 8.000000 + 0.072669 0.018740 0.020986 8.000000 + 0.090836 0.018740 0.020986 8.000000 + 0.109003 0.018740 0.020986 8.000000 + 0.127171 0.018740 0.020986 8.000000 + 0.000000 0.037480 0.020986 4.000000 + 0.018167 0.037480 0.020986 8.000000 + 0.036334 0.037480 0.020986 8.000000 + 0.054502 0.037480 0.020986 8.000000 + 0.072669 0.037480 0.020986 8.000000 + 0.090836 0.037480 0.020986 8.000000 + 0.109003 0.037480 0.020986 8.000000 + 0.127171 0.037480 0.020986 8.000000 + 0.000000 0.056220 0.020986 4.000000 + 0.018167 0.056220 0.020986 8.000000 + 0.036334 0.056220 0.020986 8.000000 + 0.054502 0.056220 0.020986 8.000000 + 0.072669 0.056220 0.020986 8.000000 + 0.090836 0.056220 0.020986 8.000000 + 0.109003 0.056220 0.020986 8.000000 + 0.127171 0.056220 0.020986 8.000000 + 0.000000 0.074960 0.020986 4.000000 + 0.018167 0.074960 0.020986 8.000000 + 0.036334 0.074960 0.020986 8.000000 + 0.054502 0.074960 0.020986 8.000000 + 0.072669 0.074960 0.020986 8.000000 + 0.090836 0.074960 0.020986 8.000000 + 0.109003 0.074960 0.020986 8.000000 + 0.127171 0.074960 0.020986 8.000000 + 0.000000 0.093700 0.020986 4.000000 + 0.018167 0.093700 0.020986 8.000000 + 0.036334 0.093700 0.020986 8.000000 + 0.054502 0.093700 0.020986 8.000000 + 0.072669 0.093700 0.020986 8.000000 + 0.090836 0.093700 0.020986 8.000000 + 0.109003 0.093700 0.020986 8.000000 + 0.127171 0.093700 0.020986 8.000000 + 0.000000 0.112440 0.020986 4.000000 + 0.018167 0.112440 0.020986 8.000000 + 0.036334 0.112440 0.020986 8.000000 + 0.054502 0.112440 0.020986 8.000000 + 0.072669 0.112440 0.020986 8.000000 + 0.090836 0.112440 0.020986 8.000000 + 0.109003 0.112440 0.020986 8.000000 + 0.127171 0.112440 0.020986 8.000000 + 0.000000 0.131180 0.020986 4.000000 + 0.018167 0.131180 0.020986 8.000000 + 0.036334 0.131180 0.020986 8.000000 + 0.054502 0.131180 0.020986 8.000000 + 0.072669 0.131180 0.020986 8.000000 + 0.090836 0.131180 0.020986 8.000000 + 0.109003 0.131180 0.020986 8.000000 + 0.127171 0.131180 0.020986 8.000000 + 0.000000 0.000000 0.041971 2.000000 + 0.018167 0.000000 0.041971 4.000000 + 0.036334 0.000000 0.041971 4.000000 + 0.054502 0.000000 0.041971 4.000000 + 0.072669 0.000000 0.041971 4.000000 + 0.090836 0.000000 0.041971 4.000000 + 0.109003 0.000000 0.041971 4.000000 + 0.127171 0.000000 0.041971 4.000000 + 0.000000 0.018740 0.041971 4.000000 + 0.018167 0.018740 0.041971 8.000000 + 0.036334 0.018740 0.041971 8.000000 + 0.054502 0.018740 0.041971 8.000000 + 0.072669 0.018740 0.041971 8.000000 + 0.090836 0.018740 0.041971 8.000000 + 0.109003 0.018740 0.041971 8.000000 + 0.127171 0.018740 0.041971 8.000000 + 0.000000 0.037480 0.041971 4.000000 + 0.018167 0.037480 0.041971 8.000000 + 0.036334 0.037480 0.041971 8.000000 + 0.054502 0.037480 0.041971 8.000000 + 0.072669 0.037480 0.041971 8.000000 + 0.090836 0.037480 0.041971 8.000000 + 0.109003 0.037480 0.041971 8.000000 + 0.127171 0.037480 0.041971 8.000000 + 0.000000 0.056220 0.041971 4.000000 + 0.018167 0.056220 0.041971 8.000000 + 0.036334 0.056220 0.041971 8.000000 + 0.054502 0.056220 0.041971 8.000000 + 0.072669 0.056220 0.041971 8.000000 + 0.090836 0.056220 0.041971 8.000000 + 0.109003 0.056220 0.041971 8.000000 + 0.127171 0.056220 0.041971 8.000000 + 0.000000 0.074960 0.041971 4.000000 + 0.018167 0.074960 0.041971 8.000000 + 0.036334 0.074960 0.041971 8.000000 + 0.054502 0.074960 0.041971 8.000000 + 0.072669 0.074960 0.041971 8.000000 + 0.090836 0.074960 0.041971 8.000000 + 0.109003 0.074960 0.041971 8.000000 + 0.127171 0.074960 0.041971 8.000000 + 0.000000 0.093700 0.041971 4.000000 + 0.018167 0.093700 0.041971 8.000000 + 0.036334 0.093700 0.041971 8.000000 + 0.054502 0.093700 0.041971 8.000000 + 0.072669 0.093700 0.041971 8.000000 + 0.090836 0.093700 0.041971 8.000000 + 0.109003 0.093700 0.041971 8.000000 + 0.127171 0.093700 0.041971 8.000000 + 0.000000 0.112440 0.041971 4.000000 + 0.018167 0.112440 0.041971 8.000000 + 0.036334 0.112440 0.041971 8.000000 + 0.054502 0.112440 0.041971 8.000000 + 0.072669 0.112440 0.041971 8.000000 + 0.090836 0.112440 0.041971 8.000000 + 0.109003 0.112440 0.041971 8.000000 + 0.127171 0.112440 0.041971 8.000000 + 0.000000 0.131180 0.041971 4.000000 + 0.018167 0.131180 0.041971 8.000000 + 0.036334 0.131180 0.041971 8.000000 + 0.054502 0.131180 0.041971 8.000000 + 0.072669 0.131180 0.041971 8.000000 + 0.090836 0.131180 0.041971 8.000000 + 0.109003 0.131180 0.041971 8.000000 + 0.127171 0.131180 0.041971 8.000000 + 0.000000 0.000000 0.062957 2.000000 + 0.018167 0.000000 0.062957 4.000000 + 0.036334 0.000000 0.062957 4.000000 + 0.054502 0.000000 0.062957 4.000000 + 0.072669 0.000000 0.062957 4.000000 + 0.090836 0.000000 0.062957 4.000000 + 0.109003 0.000000 0.062957 4.000000 + 0.127171 0.000000 0.062957 4.000000 + 0.000000 0.018740 0.062957 4.000000 + 0.018167 0.018740 0.062957 8.000000 + 0.036334 0.018740 0.062957 8.000000 + 0.054502 0.018740 0.062957 8.000000 + 0.072669 0.018740 0.062957 8.000000 + 0.090836 0.018740 0.062957 8.000000 + 0.109003 0.018740 0.062957 8.000000 + 0.127171 0.018740 0.062957 8.000000 + 0.000000 0.037480 0.062957 4.000000 + 0.018167 0.037480 0.062957 8.000000 + 0.036334 0.037480 0.062957 8.000000 + 0.054502 0.037480 0.062957 8.000000 + 0.072669 0.037480 0.062957 8.000000 + 0.090836 0.037480 0.062957 8.000000 + 0.109003 0.037480 0.062957 8.000000 + 0.127171 0.037480 0.062957 8.000000 + 0.000000 0.056220 0.062957 4.000000 + 0.018167 0.056220 0.062957 8.000000 + 0.036334 0.056220 0.062957 8.000000 + 0.054502 0.056220 0.062957 8.000000 + 0.072669 0.056220 0.062957 8.000000 + 0.090836 0.056220 0.062957 8.000000 + 0.109003 0.056220 0.062957 8.000000 + 0.127171 0.056220 0.062957 8.000000 + 0.000000 0.074960 0.062957 4.000000 + 0.018167 0.074960 0.062957 8.000000 + 0.036334 0.074960 0.062957 8.000000 + 0.054502 0.074960 0.062957 8.000000 + 0.072669 0.074960 0.062957 8.000000 + 0.090836 0.074960 0.062957 8.000000 + 0.109003 0.074960 0.062957 8.000000 + 0.127171 0.074960 0.062957 8.000000 + 0.000000 0.093700 0.062957 4.000000 + 0.018167 0.093700 0.062957 8.000000 + 0.036334 0.093700 0.062957 8.000000 + 0.054502 0.093700 0.062957 8.000000 + 0.072669 0.093700 0.062957 8.000000 + 0.090836 0.093700 0.062957 8.000000 + 0.109003 0.093700 0.062957 8.000000 + 0.127171 0.093700 0.062957 8.000000 + 0.000000 0.112440 0.062957 4.000000 + 0.018167 0.112440 0.062957 8.000000 + 0.036334 0.112440 0.062957 8.000000 + 0.054502 0.112440 0.062957 8.000000 + 0.072669 0.112440 0.062957 8.000000 + 0.090836 0.112440 0.062957 8.000000 + 0.109003 0.112440 0.062957 8.000000 + 0.127171 0.112440 0.062957 8.000000 + 0.000000 0.131180 0.062957 4.000000 + 0.018167 0.131180 0.062957 8.000000 + 0.036334 0.131180 0.062957 8.000000 + 0.054502 0.131180 0.062957 8.000000 + 0.072669 0.131180 0.062957 8.000000 + 0.090836 0.131180 0.062957 8.000000 + 0.109003 0.131180 0.062957 8.000000 + 0.127171 0.131180 0.062957 8.000000 + 0.000000 0.000000 0.083942 2.000000 + 0.018167 0.000000 0.083942 4.000000 + 0.036334 0.000000 0.083942 4.000000 + 0.054502 0.000000 0.083942 4.000000 + 0.072669 0.000000 0.083942 4.000000 + 0.090836 0.000000 0.083942 4.000000 + 0.109003 0.000000 0.083942 4.000000 + 0.127171 0.000000 0.083942 4.000000 + 0.000000 0.018740 0.083942 4.000000 + 0.018167 0.018740 0.083942 8.000000 + 0.036334 0.018740 0.083942 8.000000 + 0.054502 0.018740 0.083942 8.000000 + 0.072669 0.018740 0.083942 8.000000 + 0.090836 0.018740 0.083942 8.000000 + 0.109003 0.018740 0.083942 8.000000 + 0.127171 0.018740 0.083942 8.000000 + 0.000000 0.037480 0.083942 4.000000 + 0.018167 0.037480 0.083942 8.000000 + 0.036334 0.037480 0.083942 8.000000 + 0.054502 0.037480 0.083942 8.000000 + 0.072669 0.037480 0.083942 8.000000 + 0.090836 0.037480 0.083942 8.000000 + 0.109003 0.037480 0.083942 8.000000 + 0.127171 0.037480 0.083942 8.000000 + 0.000000 0.056220 0.083942 4.000000 + 0.018167 0.056220 0.083942 8.000000 + 0.036334 0.056220 0.083942 8.000000 + 0.054502 0.056220 0.083942 8.000000 + 0.072669 0.056220 0.083942 8.000000 + 0.090836 0.056220 0.083942 8.000000 + 0.109003 0.056220 0.083942 8.000000 + 0.127171 0.056220 0.083942 8.000000 + 0.000000 0.074960 0.083942 4.000000 + 0.018167 0.074960 0.083942 8.000000 + 0.036334 0.074960 0.083942 8.000000 + 0.054502 0.074960 0.083942 8.000000 + 0.072669 0.074960 0.083942 8.000000 + 0.090836 0.074960 0.083942 8.000000 + 0.109003 0.074960 0.083942 8.000000 + 0.127171 0.074960 0.083942 8.000000 + 0.000000 0.093700 0.083942 4.000000 + 0.018167 0.093700 0.083942 8.000000 + 0.036334 0.093700 0.083942 8.000000 + 0.054502 0.093700 0.083942 8.000000 + 0.072669 0.093700 0.083942 8.000000 + 0.090836 0.093700 0.083942 8.000000 + 0.109003 0.093700 0.083942 8.000000 + 0.127171 0.093700 0.083942 8.000000 + 0.000000 0.112440 0.083942 4.000000 + 0.018167 0.112440 0.083942 8.000000 + 0.036334 0.112440 0.083942 8.000000 + 0.054502 0.112440 0.083942 8.000000 + 0.072669 0.112440 0.083942 8.000000 + 0.090836 0.112440 0.083942 8.000000 + 0.109003 0.112440 0.083942 8.000000 + 0.127171 0.112440 0.083942 8.000000 + 0.000000 0.131180 0.083942 4.000000 + 0.018167 0.131180 0.083942 8.000000 + 0.036334 0.131180 0.083942 8.000000 + 0.054502 0.131180 0.083942 8.000000 + 0.072669 0.131180 0.083942 8.000000 + 0.090836 0.131180 0.083942 8.000000 + 0.109003 0.131180 0.083942 8.000000 + 0.127171 0.131180 0.083942 8.000000 + 0.000000 0.000000 0.104928 2.000000 + 0.018167 0.000000 0.104928 4.000000 + 0.036334 0.000000 0.104928 4.000000 + 0.054502 0.000000 0.104928 4.000000 + 0.072669 0.000000 0.104928 4.000000 + 0.090836 0.000000 0.104928 4.000000 + 0.109003 0.000000 0.104928 4.000000 + 0.127171 0.000000 0.104928 4.000000 + 0.000000 0.018740 0.104928 4.000000 + 0.018167 0.018740 0.104928 8.000000 + 0.036334 0.018740 0.104928 8.000000 + 0.054502 0.018740 0.104928 8.000000 + 0.072669 0.018740 0.104928 8.000000 + 0.090836 0.018740 0.104928 8.000000 + 0.109003 0.018740 0.104928 8.000000 + 0.127171 0.018740 0.104928 8.000000 + 0.000000 0.037480 0.104928 4.000000 + 0.018167 0.037480 0.104928 8.000000 + 0.036334 0.037480 0.104928 8.000000 + 0.054502 0.037480 0.104928 8.000000 + 0.072669 0.037480 0.104928 8.000000 + 0.090836 0.037480 0.104928 8.000000 + 0.109003 0.037480 0.104928 8.000000 + 0.127171 0.037480 0.104928 8.000000 + 0.000000 0.056220 0.104928 4.000000 + 0.018167 0.056220 0.104928 8.000000 + 0.036334 0.056220 0.104928 8.000000 + 0.054502 0.056220 0.104928 8.000000 + 0.072669 0.056220 0.104928 8.000000 + 0.090836 0.056220 0.104928 8.000000 + 0.109003 0.056220 0.104928 8.000000 + 0.127171 0.056220 0.104928 8.000000 + 0.000000 0.074960 0.104928 4.000000 + 0.018167 0.074960 0.104928 8.000000 + 0.036334 0.074960 0.104928 8.000000 + 0.054502 0.074960 0.104928 8.000000 + 0.072669 0.074960 0.104928 8.000000 + 0.090836 0.074960 0.104928 8.000000 + 0.109003 0.074960 0.104928 8.000000 + 0.127171 0.074960 0.104928 8.000000 + 0.000000 0.093700 0.104928 4.000000 + 0.018167 0.093700 0.104928 8.000000 + 0.036334 0.093700 0.104928 8.000000 + 0.054502 0.093700 0.104928 8.000000 + 0.072669 0.093700 0.104928 8.000000 + 0.090836 0.093700 0.104928 8.000000 + 0.109003 0.093700 0.104928 8.000000 + 0.127171 0.093700 0.104928 8.000000 + 0.000000 0.112440 0.104928 4.000000 + 0.018167 0.112440 0.104928 8.000000 + 0.036334 0.112440 0.104928 8.000000 + 0.054502 0.112440 0.104928 8.000000 + 0.072669 0.112440 0.104928 8.000000 + 0.090836 0.112440 0.104928 8.000000 + 0.109003 0.112440 0.104928 8.000000 + 0.127171 0.112440 0.104928 8.000000 + 0.000000 0.131180 0.104928 4.000000 + 0.018167 0.131180 0.104928 8.000000 + 0.036334 0.131180 0.104928 8.000000 + 0.054502 0.131180 0.104928 8.000000 + 0.072669 0.131180 0.104928 8.000000 + 0.090836 0.131180 0.104928 8.000000 + 0.109003 0.131180 0.104928 8.000000 + 0.127171 0.131180 0.104928 8.000000 + 0.000000 0.000000 0.125914 2.000000 + 0.018167 0.000000 0.125914 4.000000 + 0.036334 0.000000 0.125914 4.000000 + 0.054502 0.000000 0.125914 4.000000 + 0.072669 0.000000 0.125914 4.000000 + 0.090836 0.000000 0.125914 4.000000 + 0.109003 0.000000 0.125914 4.000000 + 0.127171 0.000000 0.125914 4.000000 + 0.000000 0.018740 0.125914 4.000000 + 0.018167 0.018740 0.125914 8.000000 + 0.036334 0.018740 0.125914 8.000000 + 0.054502 0.018740 0.125914 8.000000 + 0.072669 0.018740 0.125914 8.000000 + 0.090836 0.018740 0.125914 8.000000 + 0.109003 0.018740 0.125914 8.000000 + 0.127171 0.018740 0.125914 8.000000 + 0.000000 0.037480 0.125914 4.000000 + 0.018167 0.037480 0.125914 8.000000 + 0.036334 0.037480 0.125914 8.000000 + 0.054502 0.037480 0.125914 8.000000 + 0.072669 0.037480 0.125914 8.000000 + 0.090836 0.037480 0.125914 8.000000 + 0.109003 0.037480 0.125914 8.000000 + 0.127171 0.037480 0.125914 8.000000 + 0.000000 0.056220 0.125914 4.000000 + 0.018167 0.056220 0.125914 8.000000 + 0.036334 0.056220 0.125914 8.000000 + 0.054502 0.056220 0.125914 8.000000 + 0.072669 0.056220 0.125914 8.000000 + 0.090836 0.056220 0.125914 8.000000 + 0.109003 0.056220 0.125914 8.000000 + 0.127171 0.056220 0.125914 8.000000 + 0.000000 0.074960 0.125914 4.000000 + 0.018167 0.074960 0.125914 8.000000 + 0.036334 0.074960 0.125914 8.000000 + 0.054502 0.074960 0.125914 8.000000 + 0.072669 0.074960 0.125914 8.000000 + 0.090836 0.074960 0.125914 8.000000 + 0.109003 0.074960 0.125914 8.000000 + 0.127171 0.074960 0.125914 8.000000 + 0.000000 0.093700 0.125914 4.000000 + 0.018167 0.093700 0.125914 8.000000 + 0.036334 0.093700 0.125914 8.000000 + 0.054502 0.093700 0.125914 8.000000 + 0.072669 0.093700 0.125914 8.000000 + 0.090836 0.093700 0.125914 8.000000 + 0.109003 0.093700 0.125914 8.000000 + 0.127171 0.093700 0.125914 8.000000 + 0.000000 0.112440 0.125914 4.000000 + 0.018167 0.112440 0.125914 8.000000 + 0.036334 0.112440 0.125914 8.000000 + 0.054502 0.112440 0.125914 8.000000 + 0.072669 0.112440 0.125914 8.000000 + 0.090836 0.112440 0.125914 8.000000 + 0.109003 0.112440 0.125914 8.000000 + 0.127171 0.112440 0.125914 8.000000 + 0.000000 0.131180 0.125914 4.000000 + 0.018167 0.131180 0.125914 8.000000 + 0.036334 0.131180 0.125914 8.000000 + 0.054502 0.131180 0.125914 8.000000 + 0.072669 0.131180 0.125914 8.000000 + 0.090836 0.131180 0.125914 8.000000 + 0.109003 0.131180 0.125914 8.000000 + 0.127171 0.131180 0.125914 8.000000 + 0.000000 0.000000 0.146899 2.000000 + 0.018167 0.000000 0.146899 4.000000 + 0.036334 0.000000 0.146899 4.000000 + 0.054502 0.000000 0.146899 4.000000 + 0.072669 0.000000 0.146899 4.000000 + 0.090836 0.000000 0.146899 4.000000 + 0.109003 0.000000 0.146899 4.000000 + 0.127171 0.000000 0.146899 4.000000 + 0.000000 0.018740 0.146899 4.000000 + 0.018167 0.018740 0.146899 8.000000 + 0.036334 0.018740 0.146899 8.000000 + 0.054502 0.018740 0.146899 8.000000 + 0.072669 0.018740 0.146899 8.000000 + 0.090836 0.018740 0.146899 8.000000 + 0.109003 0.018740 0.146899 8.000000 + 0.127171 0.018740 0.146899 8.000000 + 0.000000 0.037480 0.146899 4.000000 + 0.018167 0.037480 0.146899 8.000000 + 0.036334 0.037480 0.146899 8.000000 + 0.054502 0.037480 0.146899 8.000000 + 0.072669 0.037480 0.146899 8.000000 + 0.090836 0.037480 0.146899 8.000000 + 0.109003 0.037480 0.146899 8.000000 + 0.127171 0.037480 0.146899 8.000000 + 0.000000 0.056220 0.146899 4.000000 + 0.018167 0.056220 0.146899 8.000000 + 0.036334 0.056220 0.146899 8.000000 + 0.054502 0.056220 0.146899 8.000000 + 0.072669 0.056220 0.146899 8.000000 + 0.090836 0.056220 0.146899 8.000000 + 0.109003 0.056220 0.146899 8.000000 + 0.127171 0.056220 0.146899 8.000000 + 0.000000 0.074960 0.146899 4.000000 + 0.018167 0.074960 0.146899 8.000000 + 0.036334 0.074960 0.146899 8.000000 + 0.054502 0.074960 0.146899 8.000000 + 0.072669 0.074960 0.146899 8.000000 + 0.090836 0.074960 0.146899 8.000000 + 0.109003 0.074960 0.146899 8.000000 + 0.127171 0.074960 0.146899 8.000000 + 0.000000 0.093700 0.146899 4.000000 + 0.018167 0.093700 0.146899 8.000000 + 0.036334 0.093700 0.146899 8.000000 + 0.054502 0.093700 0.146899 8.000000 + 0.072669 0.093700 0.146899 8.000000 + 0.090836 0.093700 0.146899 8.000000 + 0.109003 0.093700 0.146899 8.000000 + 0.127171 0.093700 0.146899 8.000000 + 0.000000 0.112440 0.146899 4.000000 + 0.018167 0.112440 0.146899 8.000000 + 0.036334 0.112440 0.146899 8.000000 + 0.054502 0.112440 0.146899 8.000000 + 0.072669 0.112440 0.146899 8.000000 + 0.090836 0.112440 0.146899 8.000000 + 0.109003 0.112440 0.146899 8.000000 + 0.127171 0.112440 0.146899 8.000000 + 0.000000 0.131180 0.146899 4.000000 + 0.018167 0.131180 0.146899 8.000000 + 0.036334 0.131180 0.146899 8.000000 + 0.054502 0.131180 0.146899 8.000000 + 0.072669 0.131180 0.146899 8.000000 + 0.090836 0.131180 0.146899 8.000000 + 0.109003 0.131180 0.146899 8.000000 + 0.127171 0.131180 0.146899 8.000000 + + + +-------------------------------------------------------------------------------------------------------- + + + + + Dimension of arrays: + k-points NKPTS = 512 k-points in BZ NKDIM = 512 number of bands NBANDS= 18 + number of dos NEDOS = 301 number of ions NIONS = 4 + non local maximal LDIM = 8 non local SUM 2l+1 LMDIM = 26 + total plane-waves NPLWV = 11520 + max r-space proj IRMAX = 1 max aug-charges IRDMAX= 9112 + dimension x,y,z NGX = 24 NGY = 24 NGZ = 20 + dimension x,y,z NGXF= 48 NGYF= 48 NGZF= 40 + support grid NGXF= 48 NGYF= 48 NGZF= 40 + ions per type = 1 3 + NGX,Y,Z is equivalent to a cutoff of 10.87, 11.22, 10.47 a.u. + NGXF,Y,Z is equivalent to a cutoff of 21.75, 22.43, 20.93 a.u. + + SYSTEM = unknown system + POSCAR = WBe3 L1_2 + + Startparameter for this run: + NWRITE = 2 write-flag & timer + PREC = normal normal or accurate (medium, high low for compatibility) + ISTART = 0 job : 0-new 1-cont 2-samecut + ICHARG = 2 charge: 1-file 2-atom 10-const + ISPIN = 1 spin polarized calculation? + LNONCOLLINEAR = F non collinear calculations + LSORBIT = F spin-orbit coupling + INIWAV = 1 electr: 0-lowe 1-rand 2-diag + LASPH = F aspherical Exc in radial PAW + METAGGA= F non-selfconsistent MetaGGA calc. + + Electronic Relaxation 1 + ENCUT = 600.0 eV 44.10 Ry 6.64 a.u. 7.33 7.11 6.34*2*pi/ulx,y,z + ENINI = 600.0 initial cutoff + ENAUG = 1293.4 eV augmentation charge cutoff + NELM = 100; NELMIN= 2; NELMDL= -5 # of ELM steps + EDIFF = 0.1E-05 stopping-criterion for ELM + LREAL = F real-space projection + NLSPLINE = F spline interpolate recip. space projectors + LCOMPAT= F compatible to vasp.4.4 + GGA_COMPAT = T GGA compatible to vasp.4.4-vasp.4.6 + LMAXPAW = -100 max onsite density + LMAXMIX = 2 max onsite mixed and CHGCAR + VOSKOWN= 0 Vosko Wilk Nusair interpolation + ROPT = 0.00000 0.00000 + Ionic relaxation + EDIFFG = 0.1E-02 stopping-criterion for IOM + NSW = 0 number of steps for IOM + NBLOCK = 1; KBLOCK = 1 inner block; outer block + IBRION = -1 ionic relax: 0-MD 1-quasi-New 2-CG + NFREE = 0 steps in history (QN), initial steepest desc. (CG) + ISIF = 2 stress and relaxation + IWAVPR = 10 prediction: 0-non 1-charg 2-wave 3-comb + ISYM = 2 0-nonsym 1-usesym 2-fastsym + LCORR = T Harris-Foulkes like correction to forces + + POTIM = 0.5000 time-step for ionic-motion + TEIN = 0.0 initial temperature + TEBEG = 3500.0; TEEND =3500.0 temperature during run + SMASS = -3.00 Nose mass-parameter (am) + estimated Nose-frequenzy (Omega) = 0.10E-29 period in steps =****** mass= -0.308E-27a.u. + SCALEE = 1.0000 scale energy and forces + NPACO = 256; APACO = 16.0 distance and # of slots for P.C. + PSTRESS= 0.0 pullay stress + + Mass of Ions in am + POMASS = 183.85 9.01 + Ionic Valenz + ZVAL = 14.00 4.00 + Atomic Wigner-Seitz radii + RWIGS = -1.00 -1.00 + virtual crystal weights + VCA = 1.00 1.00 + NELECT = 26.0000 total number of electrons + NUPDOWN= -1.0000 fix difference up-down + + DOS related values: + EMIN = 10.00; EMAX =-10.00 energy-range for DOS + EFERMI = 0.00 + ISMEAR = 0; SIGMA = 0.10 broadening in eV -4-tet -1-fermi 0-gaus + + Electronic relaxation 2 (details) + IALGO = 48 algorithm + LDIAG = T sub-space diagonalisation (order eigenvalues) + LSUBROT= F optimize rotation matrix (better conditioning) + TURBO = 0 0=normal 1=particle mesh + IRESTART = 0 0=no restart 2=restart with 2 vectors + NREBOOT = 0 no. of reboots + NMIN = 0 reboot dimension + EREF = 0.00 reference energy to select bands + IMIX = 4 mixing-type and parameters + AMIX = 0.40; BMIX = 1.00 + AMIX_MAG = 1.60; BMIX_MAG = 1.00 + AMIN = 0.10 + WC = 100.; INIMIX= 1; MIXPRE= 1; MAXMIX= -45 + + Intra band minimization: + WEIMIN = 0.0000 energy-eigenvalue tresh-hold + EBREAK = 0.14E-07 absolut break condition + DEPER = 0.30 relativ break condition + + TIME = 0.40 timestep for ELM + + volume/ion in A,a.u. = 10.37 69.97 + Fermi-wavevector in a.u.,A,eV,Ry = 1.401149 2.647788 26.711209 1.963218 + Thomas-Fermi vector in A = 2.524039 + + Write flags + LWAVE = T write WAVECAR + LDOWNSAMPLE = F k-point downsampling of WAVECAR + LCHARG = T write CHGCAR + LVTOT = F write LOCPOT, total local potential + LVHAR = F write LOCPOT, Hartree potential only + LELF = F write electronic localiz. function (ELF) + LORBIT = 0 0 simple, 1 ext, 2 COOP (PROOUT), +10 PAW based schemes + + + Dipole corrections + LMONO = F monopole corrections only (constant potential shift) + LDIPOL = F correct potential (dipole corrections) + IDIPOL = 0 1-x, 2-y, 3-z, 4-all directions + EPSILON= 1.0000000 bulk dielectric constant + + Exchange correlation treatment: + GGA = -- GGA type + LEXCH = 8 internal setting for exchange type + VOSKOWN= 0 Vosko Wilk Nusair interpolation + LHFCALC = F Hartree Fock is set to + LHFONE = F Hartree Fock one center treatment + AEXX = 0.0000 exact exchange contribution + + Linear response parameters + LEPSILON= F determine dielectric tensor + LRPA = F only Hartree local field effects (RPA) + LNABLA = F use nabla operator in PAW spheres + LVEL = F velocity operator in full k-point grid + LINTERFAST= F fast interpolation + KINTER = 0 interpolate to denser k-point grid + CSHIFT =0.1000 complex shift for real part using Kramers Kronig + OMEGAMAX= -1.0 maximum frequency + DEG_THRESHOLD= 0.2000000E-02 threshold for treating states as degnerate + RTIME = -0.100 relaxation time in fs + (WPLASMAI= 0.000 imaginary part of plasma frequency in eV, 0.658/RTIME) + DFIELD = 0.0000000 0.0000000 0.0000000 field for delta impulse in time + + Orbital magnetization related: + ORBITALMAG= F switch on orbital magnetization + LCHIMAG = F perturbation theory with respect to B field + DQ = 0.001000 dq finite difference perturbation B field + LLRAUG = F two centre corrections for induced B field + + + +-------------------------------------------------------------------------------------------------------- + + + Static calculation + charge density and potential will be updated during run + non-spin polarized calculation + RMM-DIIS sequential band-by-band + perform sub-space diagonalisation + before iterative eigenvector-optimisation + modified Broyden-mixing scheme, WC = 100.0 + initial mixing is a Kerker type mixing with AMIX = 0.4000 and BMIX = 1.0000 + Hartree-type preconditioning will be used + using additional bands 5 + reciprocal scheme for non local part + use partial core corrections + calculate Harris-corrections to forces + (improved forces if not selfconsistent) + use gradient corrections + use of overlap-Matrix (Vanderbilt PP) + Gauss-broadening in eV SIGMA = 0.10 + + +-------------------------------------------------------------------------------------------------------- + + + energy-cutoff : 600.00 + volume of cell : 41.47 + direct lattice vectors reciprocal lattice vectors + 3.669611000 0.000000000 0.000000000 0.272508448 0.000000000 0.000000000 + 0.000000000 3.557440000 0.000000000 0.000000000 0.281101016 0.000000000 + 0.000000000 0.000000000 3.176781000 0.000000000 0.000000000 0.314784053 + + length of vectors + 3.669611000 3.557440000 3.176781000 0.272508448 0.281101016 0.314784053 + + + + k-points in units of 2pi/SCALE and weight: K-Points + 0.00000000 0.00000000 0.00000000 0.000 + 0.01816723 0.00000000 0.00000000 0.001 + 0.03633446 0.00000000 0.00000000 0.001 + 0.05450169 0.00000000 0.00000000 0.001 + 0.07266892 0.00000000 0.00000000 0.001 + 0.09083615 0.00000000 0.00000000 0.001 + 0.10900338 0.00000000 0.00000000 0.001 + 0.12717061 0.00000000 0.00000000 0.001 + 0.00000000 0.01874007 0.00000000 0.001 + 0.01816723 0.01874007 0.00000000 0.001 + 0.03633446 0.01874007 0.00000000 0.001 + 0.05450169 0.01874007 0.00000000 0.001 + 0.07266892 0.01874007 0.00000000 0.001 + 0.09083615 0.01874007 0.00000000 0.001 + 0.10900338 0.01874007 0.00000000 0.001 + 0.12717061 0.01874007 0.00000000 0.001 + 0.00000000 0.03748014 0.00000000 0.001 + 0.01816723 0.03748014 0.00000000 0.001 + 0.03633446 0.03748014 0.00000000 0.001 + 0.05450169 0.03748014 0.00000000 0.001 + 0.07266892 0.03748014 0.00000000 0.001 + 0.09083615 0.03748014 0.00000000 0.001 + 0.10900338 0.03748014 0.00000000 0.001 + 0.12717061 0.03748014 0.00000000 0.001 + 0.00000000 0.05622020 0.00000000 0.001 + 0.01816723 0.05622020 0.00000000 0.001 + 0.03633446 0.05622020 0.00000000 0.001 + 0.05450169 0.05622020 0.00000000 0.001 + 0.07266892 0.05622020 0.00000000 0.001 + 0.09083615 0.05622020 0.00000000 0.001 + 0.10900338 0.05622020 0.00000000 0.001 + 0.12717061 0.05622020 0.00000000 0.001 + 0.00000000 0.07496027 0.00000000 0.001 + 0.01816723 0.07496027 0.00000000 0.001 + 0.03633446 0.07496027 0.00000000 0.001 + 0.05450169 0.07496027 0.00000000 0.001 + 0.07266892 0.07496027 0.00000000 0.001 + 0.09083615 0.07496027 0.00000000 0.001 + 0.10900338 0.07496027 0.00000000 0.001 + 0.12717061 0.07496027 0.00000000 0.001 + 0.00000000 0.09370034 0.00000000 0.001 + 0.01816723 0.09370034 0.00000000 0.001 + 0.03633446 0.09370034 0.00000000 0.001 + 0.05450169 0.09370034 0.00000000 0.001 + 0.07266892 0.09370034 0.00000000 0.001 + 0.09083615 0.09370034 0.00000000 0.001 + 0.10900338 0.09370034 0.00000000 0.001 + 0.12717061 0.09370034 0.00000000 0.001 + 0.00000000 0.11244041 0.00000000 0.001 + 0.01816723 0.11244041 0.00000000 0.001 + 0.03633446 0.11244041 0.00000000 0.001 + 0.05450169 0.11244041 0.00000000 0.001 + 0.07266892 0.11244041 0.00000000 0.001 + 0.09083615 0.11244041 0.00000000 0.001 + 0.10900338 0.11244041 0.00000000 0.001 + 0.12717061 0.11244041 0.00000000 0.001 + 0.00000000 0.13118047 0.00000000 0.001 + 0.01816723 0.13118047 0.00000000 0.001 + 0.03633446 0.13118047 0.00000000 0.001 + 0.05450169 0.13118047 0.00000000 0.001 + 0.07266892 0.13118047 0.00000000 0.001 + 0.09083615 0.13118047 0.00000000 0.001 + 0.10900338 0.13118047 0.00000000 0.001 + 0.12717061 0.13118047 0.00000000 0.001 + 0.00000000 0.00000000 0.02098560 0.001 + 0.01816723 0.00000000 0.02098560 0.001 + 0.03633446 0.00000000 0.02098560 0.001 + 0.05450169 0.00000000 0.02098560 0.001 + 0.07266892 0.00000000 0.02098560 0.001 + 0.09083615 0.00000000 0.02098560 0.001 + 0.10900338 0.00000000 0.02098560 0.001 + 0.12717061 0.00000000 0.02098560 0.001 + 0.00000000 0.01874007 0.02098560 0.001 + 0.01816723 0.01874007 0.02098560 0.002 + 0.03633446 0.01874007 0.02098560 0.002 + 0.05450169 0.01874007 0.02098560 0.002 + 0.07266892 0.01874007 0.02098560 0.002 + 0.09083615 0.01874007 0.02098560 0.002 + 0.10900338 0.01874007 0.02098560 0.002 + 0.12717061 0.01874007 0.02098560 0.002 + 0.00000000 0.03748014 0.02098560 0.001 + 0.01816723 0.03748014 0.02098560 0.002 + 0.03633446 0.03748014 0.02098560 0.002 + 0.05450169 0.03748014 0.02098560 0.002 + 0.07266892 0.03748014 0.02098560 0.002 + 0.09083615 0.03748014 0.02098560 0.002 + 0.10900338 0.03748014 0.02098560 0.002 + 0.12717061 0.03748014 0.02098560 0.002 + 0.00000000 0.05622020 0.02098560 0.001 + 0.01816723 0.05622020 0.02098560 0.002 + 0.03633446 0.05622020 0.02098560 0.002 + 0.05450169 0.05622020 0.02098560 0.002 + 0.07266892 0.05622020 0.02098560 0.002 + 0.09083615 0.05622020 0.02098560 0.002 + 0.10900338 0.05622020 0.02098560 0.002 + 0.12717061 0.05622020 0.02098560 0.002 + 0.00000000 0.07496027 0.02098560 0.001 + 0.01816723 0.07496027 0.02098560 0.002 + 0.03633446 0.07496027 0.02098560 0.002 + 0.05450169 0.07496027 0.02098560 0.002 + 0.07266892 0.07496027 0.02098560 0.002 + 0.09083615 0.07496027 0.02098560 0.002 + 0.10900338 0.07496027 0.02098560 0.002 + 0.12717061 0.07496027 0.02098560 0.002 + 0.00000000 0.09370034 0.02098560 0.001 + 0.01816723 0.09370034 0.02098560 0.002 + 0.03633446 0.09370034 0.02098560 0.002 + 0.05450169 0.09370034 0.02098560 0.002 + 0.07266892 0.09370034 0.02098560 0.002 + 0.09083615 0.09370034 0.02098560 0.002 + 0.10900338 0.09370034 0.02098560 0.002 + 0.12717061 0.09370034 0.02098560 0.002 + 0.00000000 0.11244041 0.02098560 0.001 + 0.01816723 0.11244041 0.02098560 0.002 + 0.03633446 0.11244041 0.02098560 0.002 + 0.05450169 0.11244041 0.02098560 0.002 + 0.07266892 0.11244041 0.02098560 0.002 + 0.09083615 0.11244041 0.02098560 0.002 + 0.10900338 0.11244041 0.02098560 0.002 + 0.12717061 0.11244041 0.02098560 0.002 + 0.00000000 0.13118047 0.02098560 0.001 + 0.01816723 0.13118047 0.02098560 0.002 + 0.03633446 0.13118047 0.02098560 0.002 + 0.05450169 0.13118047 0.02098560 0.002 + 0.07266892 0.13118047 0.02098560 0.002 + 0.09083615 0.13118047 0.02098560 0.002 + 0.10900338 0.13118047 0.02098560 0.002 + 0.12717061 0.13118047 0.02098560 0.002 + 0.00000000 0.00000000 0.04197121 0.001 + 0.01816723 0.00000000 0.04197121 0.001 + 0.03633446 0.00000000 0.04197121 0.001 + 0.05450169 0.00000000 0.04197121 0.001 + 0.07266892 0.00000000 0.04197121 0.001 + 0.09083615 0.00000000 0.04197121 0.001 + 0.10900338 0.00000000 0.04197121 0.001 + 0.12717061 0.00000000 0.04197121 0.001 + 0.00000000 0.01874007 0.04197121 0.001 + 0.01816723 0.01874007 0.04197121 0.002 + 0.03633446 0.01874007 0.04197121 0.002 + 0.05450169 0.01874007 0.04197121 0.002 + 0.07266892 0.01874007 0.04197121 0.002 + 0.09083615 0.01874007 0.04197121 0.002 + 0.10900338 0.01874007 0.04197121 0.002 + 0.12717061 0.01874007 0.04197121 0.002 + 0.00000000 0.03748014 0.04197121 0.001 + 0.01816723 0.03748014 0.04197121 0.002 + 0.03633446 0.03748014 0.04197121 0.002 + 0.05450169 0.03748014 0.04197121 0.002 + 0.07266892 0.03748014 0.04197121 0.002 + 0.09083615 0.03748014 0.04197121 0.002 + 0.10900338 0.03748014 0.04197121 0.002 + 0.12717061 0.03748014 0.04197121 0.002 + 0.00000000 0.05622020 0.04197121 0.001 + 0.01816723 0.05622020 0.04197121 0.002 + 0.03633446 0.05622020 0.04197121 0.002 + 0.05450169 0.05622020 0.04197121 0.002 + 0.07266892 0.05622020 0.04197121 0.002 + 0.09083615 0.05622020 0.04197121 0.002 + 0.10900338 0.05622020 0.04197121 0.002 + 0.12717061 0.05622020 0.04197121 0.002 + 0.00000000 0.07496027 0.04197121 0.001 + 0.01816723 0.07496027 0.04197121 0.002 + 0.03633446 0.07496027 0.04197121 0.002 + 0.05450169 0.07496027 0.04197121 0.002 + 0.07266892 0.07496027 0.04197121 0.002 + 0.09083615 0.07496027 0.04197121 0.002 + 0.10900338 0.07496027 0.04197121 0.002 + 0.12717061 0.07496027 0.04197121 0.002 + 0.00000000 0.09370034 0.04197121 0.001 + 0.01816723 0.09370034 0.04197121 0.002 + 0.03633446 0.09370034 0.04197121 0.002 + 0.05450169 0.09370034 0.04197121 0.002 + 0.07266892 0.09370034 0.04197121 0.002 + 0.09083615 0.09370034 0.04197121 0.002 + 0.10900338 0.09370034 0.04197121 0.002 + 0.12717061 0.09370034 0.04197121 0.002 + 0.00000000 0.11244041 0.04197121 0.001 + 0.01816723 0.11244041 0.04197121 0.002 + 0.03633446 0.11244041 0.04197121 0.002 + 0.05450169 0.11244041 0.04197121 0.002 + 0.07266892 0.11244041 0.04197121 0.002 + 0.09083615 0.11244041 0.04197121 0.002 + 0.10900338 0.11244041 0.04197121 0.002 + 0.12717061 0.11244041 0.04197121 0.002 + 0.00000000 0.13118047 0.04197121 0.001 + 0.01816723 0.13118047 0.04197121 0.002 + 0.03633446 0.13118047 0.04197121 0.002 + 0.05450169 0.13118047 0.04197121 0.002 + 0.07266892 0.13118047 0.04197121 0.002 + 0.09083615 0.13118047 0.04197121 0.002 + 0.10900338 0.13118047 0.04197121 0.002 + 0.12717061 0.13118047 0.04197121 0.002 + 0.00000000 0.00000000 0.06295681 0.001 + 0.01816723 0.00000000 0.06295681 0.001 + 0.03633446 0.00000000 0.06295681 0.001 + 0.05450169 0.00000000 0.06295681 0.001 + 0.07266892 0.00000000 0.06295681 0.001 + 0.09083615 0.00000000 0.06295681 0.001 + 0.10900338 0.00000000 0.06295681 0.001 + 0.12717061 0.00000000 0.06295681 0.001 + 0.00000000 0.01874007 0.06295681 0.001 + 0.01816723 0.01874007 0.06295681 0.002 + 0.03633446 0.01874007 0.06295681 0.002 + 0.05450169 0.01874007 0.06295681 0.002 + 0.07266892 0.01874007 0.06295681 0.002 + 0.09083615 0.01874007 0.06295681 0.002 + 0.10900338 0.01874007 0.06295681 0.002 + 0.12717061 0.01874007 0.06295681 0.002 + 0.00000000 0.03748014 0.06295681 0.001 + 0.01816723 0.03748014 0.06295681 0.002 + 0.03633446 0.03748014 0.06295681 0.002 + 0.05450169 0.03748014 0.06295681 0.002 + 0.07266892 0.03748014 0.06295681 0.002 + 0.09083615 0.03748014 0.06295681 0.002 + 0.10900338 0.03748014 0.06295681 0.002 + 0.12717061 0.03748014 0.06295681 0.002 + 0.00000000 0.05622020 0.06295681 0.001 + 0.01816723 0.05622020 0.06295681 0.002 + 0.03633446 0.05622020 0.06295681 0.002 + 0.05450169 0.05622020 0.06295681 0.002 + 0.07266892 0.05622020 0.06295681 0.002 + 0.09083615 0.05622020 0.06295681 0.002 + 0.10900338 0.05622020 0.06295681 0.002 + 0.12717061 0.05622020 0.06295681 0.002 + 0.00000000 0.07496027 0.06295681 0.001 + 0.01816723 0.07496027 0.06295681 0.002 + 0.03633446 0.07496027 0.06295681 0.002 + 0.05450169 0.07496027 0.06295681 0.002 + 0.07266892 0.07496027 0.06295681 0.002 + 0.09083615 0.07496027 0.06295681 0.002 + 0.10900338 0.07496027 0.06295681 0.002 + 0.12717061 0.07496027 0.06295681 0.002 + 0.00000000 0.09370034 0.06295681 0.001 + 0.01816723 0.09370034 0.06295681 0.002 + 0.03633446 0.09370034 0.06295681 0.002 + 0.05450169 0.09370034 0.06295681 0.002 + 0.07266892 0.09370034 0.06295681 0.002 + 0.09083615 0.09370034 0.06295681 0.002 + 0.10900338 0.09370034 0.06295681 0.002 + 0.12717061 0.09370034 0.06295681 0.002 + 0.00000000 0.11244041 0.06295681 0.001 + 0.01816723 0.11244041 0.06295681 0.002 + 0.03633446 0.11244041 0.06295681 0.002 + 0.05450169 0.11244041 0.06295681 0.002 + 0.07266892 0.11244041 0.06295681 0.002 + 0.09083615 0.11244041 0.06295681 0.002 + 0.10900338 0.11244041 0.06295681 0.002 + 0.12717061 0.11244041 0.06295681 0.002 + 0.00000000 0.13118047 0.06295681 0.001 + 0.01816723 0.13118047 0.06295681 0.002 + 0.03633446 0.13118047 0.06295681 0.002 + 0.05450169 0.13118047 0.06295681 0.002 + 0.07266892 0.13118047 0.06295681 0.002 + 0.09083615 0.13118047 0.06295681 0.002 + 0.10900338 0.13118047 0.06295681 0.002 + 0.12717061 0.13118047 0.06295681 0.002 + 0.00000000 0.00000000 0.08394241 0.001 + 0.01816723 0.00000000 0.08394241 0.001 + 0.03633446 0.00000000 0.08394241 0.001 + 0.05450169 0.00000000 0.08394241 0.001 + 0.07266892 0.00000000 0.08394241 0.001 + 0.09083615 0.00000000 0.08394241 0.001 + 0.10900338 0.00000000 0.08394241 0.001 + 0.12717061 0.00000000 0.08394241 0.001 + 0.00000000 0.01874007 0.08394241 0.001 + 0.01816723 0.01874007 0.08394241 0.002 + 0.03633446 0.01874007 0.08394241 0.002 + 0.05450169 0.01874007 0.08394241 0.002 + 0.07266892 0.01874007 0.08394241 0.002 + 0.09083615 0.01874007 0.08394241 0.002 + 0.10900338 0.01874007 0.08394241 0.002 + 0.12717061 0.01874007 0.08394241 0.002 + 0.00000000 0.03748014 0.08394241 0.001 + 0.01816723 0.03748014 0.08394241 0.002 + 0.03633446 0.03748014 0.08394241 0.002 + 0.05450169 0.03748014 0.08394241 0.002 + 0.07266892 0.03748014 0.08394241 0.002 + 0.09083615 0.03748014 0.08394241 0.002 + 0.10900338 0.03748014 0.08394241 0.002 + 0.12717061 0.03748014 0.08394241 0.002 + 0.00000000 0.05622020 0.08394241 0.001 + 0.01816723 0.05622020 0.08394241 0.002 + 0.03633446 0.05622020 0.08394241 0.002 + 0.05450169 0.05622020 0.08394241 0.002 + 0.07266892 0.05622020 0.08394241 0.002 + 0.09083615 0.05622020 0.08394241 0.002 + 0.10900338 0.05622020 0.08394241 0.002 + 0.12717061 0.05622020 0.08394241 0.002 + 0.00000000 0.07496027 0.08394241 0.001 + 0.01816723 0.07496027 0.08394241 0.002 + 0.03633446 0.07496027 0.08394241 0.002 + 0.05450169 0.07496027 0.08394241 0.002 + 0.07266892 0.07496027 0.08394241 0.002 + 0.09083615 0.07496027 0.08394241 0.002 + 0.10900338 0.07496027 0.08394241 0.002 + 0.12717061 0.07496027 0.08394241 0.002 + 0.00000000 0.09370034 0.08394241 0.001 + 0.01816723 0.09370034 0.08394241 0.002 + 0.03633446 0.09370034 0.08394241 0.002 + 0.05450169 0.09370034 0.08394241 0.002 + 0.07266892 0.09370034 0.08394241 0.002 + 0.09083615 0.09370034 0.08394241 0.002 + 0.10900338 0.09370034 0.08394241 0.002 + 0.12717061 0.09370034 0.08394241 0.002 + 0.00000000 0.11244041 0.08394241 0.001 + 0.01816723 0.11244041 0.08394241 0.002 + 0.03633446 0.11244041 0.08394241 0.002 + 0.05450169 0.11244041 0.08394241 0.002 + 0.07266892 0.11244041 0.08394241 0.002 + 0.09083615 0.11244041 0.08394241 0.002 + 0.10900338 0.11244041 0.08394241 0.002 + 0.12717061 0.11244041 0.08394241 0.002 + 0.00000000 0.13118047 0.08394241 0.001 + 0.01816723 0.13118047 0.08394241 0.002 + 0.03633446 0.13118047 0.08394241 0.002 + 0.05450169 0.13118047 0.08394241 0.002 + 0.07266892 0.13118047 0.08394241 0.002 + 0.09083615 0.13118047 0.08394241 0.002 + 0.10900338 0.13118047 0.08394241 0.002 + 0.12717061 0.13118047 0.08394241 0.002 + 0.00000000 0.00000000 0.10492802 0.001 + 0.01816723 0.00000000 0.10492802 0.001 + 0.03633446 0.00000000 0.10492802 0.001 + 0.05450169 0.00000000 0.10492802 0.001 + 0.07266892 0.00000000 0.10492802 0.001 + 0.09083615 0.00000000 0.10492802 0.001 + 0.10900338 0.00000000 0.10492802 0.001 + 0.12717061 0.00000000 0.10492802 0.001 + 0.00000000 0.01874007 0.10492802 0.001 + 0.01816723 0.01874007 0.10492802 0.002 + 0.03633446 0.01874007 0.10492802 0.002 + 0.05450169 0.01874007 0.10492802 0.002 + 0.07266892 0.01874007 0.10492802 0.002 + 0.09083615 0.01874007 0.10492802 0.002 + 0.10900338 0.01874007 0.10492802 0.002 + 0.12717061 0.01874007 0.10492802 0.002 + 0.00000000 0.03748014 0.10492802 0.001 + 0.01816723 0.03748014 0.10492802 0.002 + 0.03633446 0.03748014 0.10492802 0.002 + 0.05450169 0.03748014 0.10492802 0.002 + 0.07266892 0.03748014 0.10492802 0.002 + 0.09083615 0.03748014 0.10492802 0.002 + 0.10900338 0.03748014 0.10492802 0.002 + 0.12717061 0.03748014 0.10492802 0.002 + 0.00000000 0.05622020 0.10492802 0.001 + 0.01816723 0.05622020 0.10492802 0.002 + 0.03633446 0.05622020 0.10492802 0.002 + 0.05450169 0.05622020 0.10492802 0.002 + 0.07266892 0.05622020 0.10492802 0.002 + 0.09083615 0.05622020 0.10492802 0.002 + 0.10900338 0.05622020 0.10492802 0.002 + 0.12717061 0.05622020 0.10492802 0.002 + 0.00000000 0.07496027 0.10492802 0.001 + 0.01816723 0.07496027 0.10492802 0.002 + 0.03633446 0.07496027 0.10492802 0.002 + 0.05450169 0.07496027 0.10492802 0.002 + 0.07266892 0.07496027 0.10492802 0.002 + 0.09083615 0.07496027 0.10492802 0.002 + 0.10900338 0.07496027 0.10492802 0.002 + 0.12717061 0.07496027 0.10492802 0.002 + 0.00000000 0.09370034 0.10492802 0.001 + 0.01816723 0.09370034 0.10492802 0.002 + 0.03633446 0.09370034 0.10492802 0.002 + 0.05450169 0.09370034 0.10492802 0.002 + 0.07266892 0.09370034 0.10492802 0.002 + 0.09083615 0.09370034 0.10492802 0.002 + 0.10900338 0.09370034 0.10492802 0.002 + 0.12717061 0.09370034 0.10492802 0.002 + 0.00000000 0.11244041 0.10492802 0.001 + 0.01816723 0.11244041 0.10492802 0.002 + 0.03633446 0.11244041 0.10492802 0.002 + 0.05450169 0.11244041 0.10492802 0.002 + 0.07266892 0.11244041 0.10492802 0.002 + 0.09083615 0.11244041 0.10492802 0.002 + 0.10900338 0.11244041 0.10492802 0.002 + 0.12717061 0.11244041 0.10492802 0.002 + 0.00000000 0.13118047 0.10492802 0.001 + 0.01816723 0.13118047 0.10492802 0.002 + 0.03633446 0.13118047 0.10492802 0.002 + 0.05450169 0.13118047 0.10492802 0.002 + 0.07266892 0.13118047 0.10492802 0.002 + 0.09083615 0.13118047 0.10492802 0.002 + 0.10900338 0.13118047 0.10492802 0.002 + 0.12717061 0.13118047 0.10492802 0.002 + 0.00000000 0.00000000 0.12591362 0.001 + 0.01816723 0.00000000 0.12591362 0.001 + 0.03633446 0.00000000 0.12591362 0.001 + 0.05450169 0.00000000 0.12591362 0.001 + 0.07266892 0.00000000 0.12591362 0.001 + 0.09083615 0.00000000 0.12591362 0.001 + 0.10900338 0.00000000 0.12591362 0.001 + 0.12717061 0.00000000 0.12591362 0.001 + 0.00000000 0.01874007 0.12591362 0.001 + 0.01816723 0.01874007 0.12591362 0.002 + 0.03633446 0.01874007 0.12591362 0.002 + 0.05450169 0.01874007 0.12591362 0.002 + 0.07266892 0.01874007 0.12591362 0.002 + 0.09083615 0.01874007 0.12591362 0.002 + 0.10900338 0.01874007 0.12591362 0.002 + 0.12717061 0.01874007 0.12591362 0.002 + 0.00000000 0.03748014 0.12591362 0.001 + 0.01816723 0.03748014 0.12591362 0.002 + 0.03633446 0.03748014 0.12591362 0.002 + 0.05450169 0.03748014 0.12591362 0.002 + 0.07266892 0.03748014 0.12591362 0.002 + 0.09083615 0.03748014 0.12591362 0.002 + 0.10900338 0.03748014 0.12591362 0.002 + 0.12717061 0.03748014 0.12591362 0.002 + 0.00000000 0.05622020 0.12591362 0.001 + 0.01816723 0.05622020 0.12591362 0.002 + 0.03633446 0.05622020 0.12591362 0.002 + 0.05450169 0.05622020 0.12591362 0.002 + 0.07266892 0.05622020 0.12591362 0.002 + 0.09083615 0.05622020 0.12591362 0.002 + 0.10900338 0.05622020 0.12591362 0.002 + 0.12717061 0.05622020 0.12591362 0.002 + 0.00000000 0.07496027 0.12591362 0.001 + 0.01816723 0.07496027 0.12591362 0.002 + 0.03633446 0.07496027 0.12591362 0.002 + 0.05450169 0.07496027 0.12591362 0.002 + 0.07266892 0.07496027 0.12591362 0.002 + 0.09083615 0.07496027 0.12591362 0.002 + 0.10900338 0.07496027 0.12591362 0.002 + 0.12717061 0.07496027 0.12591362 0.002 + 0.00000000 0.09370034 0.12591362 0.001 + 0.01816723 0.09370034 0.12591362 0.002 + 0.03633446 0.09370034 0.12591362 0.002 + 0.05450169 0.09370034 0.12591362 0.002 + 0.07266892 0.09370034 0.12591362 0.002 + 0.09083615 0.09370034 0.12591362 0.002 + 0.10900338 0.09370034 0.12591362 0.002 + 0.12717061 0.09370034 0.12591362 0.002 + 0.00000000 0.11244041 0.12591362 0.001 + 0.01816723 0.11244041 0.12591362 0.002 + 0.03633446 0.11244041 0.12591362 0.002 + 0.05450169 0.11244041 0.12591362 0.002 + 0.07266892 0.11244041 0.12591362 0.002 + 0.09083615 0.11244041 0.12591362 0.002 + 0.10900338 0.11244041 0.12591362 0.002 + 0.12717061 0.11244041 0.12591362 0.002 + 0.00000000 0.13118047 0.12591362 0.001 + 0.01816723 0.13118047 0.12591362 0.002 + 0.03633446 0.13118047 0.12591362 0.002 + 0.05450169 0.13118047 0.12591362 0.002 + 0.07266892 0.13118047 0.12591362 0.002 + 0.09083615 0.13118047 0.12591362 0.002 + 0.10900338 0.13118047 0.12591362 0.002 + 0.12717061 0.13118047 0.12591362 0.002 + 0.00000000 0.00000000 0.14689922 0.001 + 0.01816723 0.00000000 0.14689922 0.001 + 0.03633446 0.00000000 0.14689922 0.001 + 0.05450169 0.00000000 0.14689922 0.001 + 0.07266892 0.00000000 0.14689922 0.001 + 0.09083615 0.00000000 0.14689922 0.001 + 0.10900338 0.00000000 0.14689922 0.001 + 0.12717061 0.00000000 0.14689922 0.001 + 0.00000000 0.01874007 0.14689922 0.001 + 0.01816723 0.01874007 0.14689922 0.002 + 0.03633446 0.01874007 0.14689922 0.002 + 0.05450169 0.01874007 0.14689922 0.002 + 0.07266892 0.01874007 0.14689922 0.002 + 0.09083615 0.01874007 0.14689922 0.002 + 0.10900338 0.01874007 0.14689922 0.002 + 0.12717061 0.01874007 0.14689922 0.002 + 0.00000000 0.03748014 0.14689922 0.001 + 0.01816723 0.03748014 0.14689922 0.002 + 0.03633446 0.03748014 0.14689922 0.002 + 0.05450169 0.03748014 0.14689922 0.002 + 0.07266892 0.03748014 0.14689922 0.002 + 0.09083615 0.03748014 0.14689922 0.002 + 0.10900338 0.03748014 0.14689922 0.002 + 0.12717061 0.03748014 0.14689922 0.002 + 0.00000000 0.05622020 0.14689922 0.001 + 0.01816723 0.05622020 0.14689922 0.002 + 0.03633446 0.05622020 0.14689922 0.002 + 0.05450169 0.05622020 0.14689922 0.002 + 0.07266892 0.05622020 0.14689922 0.002 + 0.09083615 0.05622020 0.14689922 0.002 + 0.10900338 0.05622020 0.14689922 0.002 + 0.12717061 0.05622020 0.14689922 0.002 + 0.00000000 0.07496027 0.14689922 0.001 + 0.01816723 0.07496027 0.14689922 0.002 + 0.03633446 0.07496027 0.14689922 0.002 + 0.05450169 0.07496027 0.14689922 0.002 + 0.07266892 0.07496027 0.14689922 0.002 + 0.09083615 0.07496027 0.14689922 0.002 + 0.10900338 0.07496027 0.14689922 0.002 + 0.12717061 0.07496027 0.14689922 0.002 + 0.00000000 0.09370034 0.14689922 0.001 + 0.01816723 0.09370034 0.14689922 0.002 + 0.03633446 0.09370034 0.14689922 0.002 + 0.05450169 0.09370034 0.14689922 0.002 + 0.07266892 0.09370034 0.14689922 0.002 + 0.09083615 0.09370034 0.14689922 0.002 + 0.10900338 0.09370034 0.14689922 0.002 + 0.12717061 0.09370034 0.14689922 0.002 + 0.00000000 0.11244041 0.14689922 0.001 + 0.01816723 0.11244041 0.14689922 0.002 + 0.03633446 0.11244041 0.14689922 0.002 + 0.05450169 0.11244041 0.14689922 0.002 + 0.07266892 0.11244041 0.14689922 0.002 + 0.09083615 0.11244041 0.14689922 0.002 + 0.10900338 0.11244041 0.14689922 0.002 + 0.12717061 0.11244041 0.14689922 0.002 + 0.00000000 0.13118047 0.14689922 0.001 + 0.01816723 0.13118047 0.14689922 0.002 + 0.03633446 0.13118047 0.14689922 0.002 + 0.05450169 0.13118047 0.14689922 0.002 + 0.07266892 0.13118047 0.14689922 0.002 + 0.09083615 0.13118047 0.14689922 0.002 + 0.10900338 0.13118047 0.14689922 0.002 + 0.12717061 0.13118047 0.14689922 0.002 + + k-points in reciprocal lattice and weights: K-Points + 0.00000000 0.00000000 0.00000000 0.000 + 0.06666667 0.00000000 0.00000000 0.001 + 0.13333333 0.00000000 0.00000000 0.001 + 0.20000000 0.00000000 0.00000000 0.001 + 0.26666667 0.00000000 0.00000000 0.001 + 0.33333333 0.00000000 0.00000000 0.001 + 0.40000000 0.00000000 0.00000000 0.001 + 0.46666667 0.00000000 0.00000000 0.001 + 0.00000000 0.06666667 0.00000000 0.001 + 0.06666667 0.06666667 0.00000000 0.001 + 0.13333333 0.06666667 0.00000000 0.001 + 0.20000000 0.06666667 0.00000000 0.001 + 0.26666667 0.06666667 0.00000000 0.001 + 0.33333333 0.06666667 0.00000000 0.001 + 0.40000000 0.06666667 0.00000000 0.001 + 0.46666667 0.06666667 0.00000000 0.001 + 0.00000000 0.13333333 0.00000000 0.001 + 0.06666667 0.13333333 0.00000000 0.001 + 0.13333333 0.13333333 0.00000000 0.001 + 0.20000000 0.13333333 0.00000000 0.001 + 0.26666667 0.13333333 0.00000000 0.001 + 0.33333333 0.13333333 0.00000000 0.001 + 0.40000000 0.13333333 0.00000000 0.001 + 0.46666667 0.13333333 0.00000000 0.001 + 0.00000000 0.20000000 0.00000000 0.001 + 0.06666667 0.20000000 0.00000000 0.001 + 0.13333333 0.20000000 0.00000000 0.001 + 0.20000000 0.20000000 0.00000000 0.001 + 0.26666667 0.20000000 0.00000000 0.001 + 0.33333333 0.20000000 0.00000000 0.001 + 0.40000000 0.20000000 0.00000000 0.001 + 0.46666667 0.20000000 0.00000000 0.001 + 0.00000000 0.26666667 0.00000000 0.001 + 0.06666667 0.26666667 0.00000000 0.001 + 0.13333333 0.26666667 0.00000000 0.001 + 0.20000000 0.26666667 0.00000000 0.001 + 0.26666667 0.26666667 0.00000000 0.001 + 0.33333333 0.26666667 0.00000000 0.001 + 0.40000000 0.26666667 0.00000000 0.001 + 0.46666667 0.26666667 0.00000000 0.001 + 0.00000000 0.33333333 0.00000000 0.001 + 0.06666667 0.33333333 0.00000000 0.001 + 0.13333333 0.33333333 0.00000000 0.001 + 0.20000000 0.33333333 0.00000000 0.001 + 0.26666667 0.33333333 0.00000000 0.001 + 0.33333333 0.33333333 0.00000000 0.001 + 0.40000000 0.33333333 0.00000000 0.001 + 0.46666667 0.33333333 0.00000000 0.001 + 0.00000000 0.40000000 0.00000000 0.001 + 0.06666667 0.40000000 0.00000000 0.001 + 0.13333333 0.40000000 0.00000000 0.001 + 0.20000000 0.40000000 0.00000000 0.001 + 0.26666667 0.40000000 0.00000000 0.001 + 0.33333333 0.40000000 0.00000000 0.001 + 0.40000000 0.40000000 0.00000000 0.001 + 0.46666667 0.40000000 0.00000000 0.001 + 0.00000000 0.46666667 0.00000000 0.001 + 0.06666667 0.46666667 0.00000000 0.001 + 0.13333333 0.46666667 0.00000000 0.001 + 0.20000000 0.46666667 0.00000000 0.001 + 0.26666667 0.46666667 0.00000000 0.001 + 0.33333333 0.46666667 0.00000000 0.001 + 0.40000000 0.46666667 0.00000000 0.001 + 0.46666667 0.46666667 0.00000000 0.001 + 0.00000000 0.00000000 0.06666667 0.001 + 0.06666667 0.00000000 0.06666667 0.001 + 0.13333333 0.00000000 0.06666667 0.001 + 0.20000000 0.00000000 0.06666667 0.001 + 0.26666667 0.00000000 0.06666667 0.001 + 0.33333333 0.00000000 0.06666667 0.001 + 0.40000000 0.00000000 0.06666667 0.001 + 0.46666667 0.00000000 0.06666667 0.001 + 0.00000000 0.06666667 0.06666667 0.001 + 0.06666667 0.06666667 0.06666667 0.002 + 0.13333333 0.06666667 0.06666667 0.002 + 0.20000000 0.06666667 0.06666667 0.002 + 0.26666667 0.06666667 0.06666667 0.002 + 0.33333333 0.06666667 0.06666667 0.002 + 0.40000000 0.06666667 0.06666667 0.002 + 0.46666667 0.06666667 0.06666667 0.002 + 0.00000000 0.13333333 0.06666667 0.001 + 0.06666667 0.13333333 0.06666667 0.002 + 0.13333333 0.13333333 0.06666667 0.002 + 0.20000000 0.13333333 0.06666667 0.002 + 0.26666667 0.13333333 0.06666667 0.002 + 0.33333333 0.13333333 0.06666667 0.002 + 0.40000000 0.13333333 0.06666667 0.002 + 0.46666667 0.13333333 0.06666667 0.002 + 0.00000000 0.20000000 0.06666667 0.001 + 0.06666667 0.20000000 0.06666667 0.002 + 0.13333333 0.20000000 0.06666667 0.002 + 0.20000000 0.20000000 0.06666667 0.002 + 0.26666667 0.20000000 0.06666667 0.002 + 0.33333333 0.20000000 0.06666667 0.002 + 0.40000000 0.20000000 0.06666667 0.002 + 0.46666667 0.20000000 0.06666667 0.002 + 0.00000000 0.26666667 0.06666667 0.001 + 0.06666667 0.26666667 0.06666667 0.002 + 0.13333333 0.26666667 0.06666667 0.002 + 0.20000000 0.26666667 0.06666667 0.002 + 0.26666667 0.26666667 0.06666667 0.002 + 0.33333333 0.26666667 0.06666667 0.002 + 0.40000000 0.26666667 0.06666667 0.002 + 0.46666667 0.26666667 0.06666667 0.002 + 0.00000000 0.33333333 0.06666667 0.001 + 0.06666667 0.33333333 0.06666667 0.002 + 0.13333333 0.33333333 0.06666667 0.002 + 0.20000000 0.33333333 0.06666667 0.002 + 0.26666667 0.33333333 0.06666667 0.002 + 0.33333333 0.33333333 0.06666667 0.002 + 0.40000000 0.33333333 0.06666667 0.002 + 0.46666667 0.33333333 0.06666667 0.002 + 0.00000000 0.40000000 0.06666667 0.001 + 0.06666667 0.40000000 0.06666667 0.002 + 0.13333333 0.40000000 0.06666667 0.002 + 0.20000000 0.40000000 0.06666667 0.002 + 0.26666667 0.40000000 0.06666667 0.002 + 0.33333333 0.40000000 0.06666667 0.002 + 0.40000000 0.40000000 0.06666667 0.002 + 0.46666667 0.40000000 0.06666667 0.002 + 0.00000000 0.46666667 0.06666667 0.001 + 0.06666667 0.46666667 0.06666667 0.002 + 0.13333333 0.46666667 0.06666667 0.002 + 0.20000000 0.46666667 0.06666667 0.002 + 0.26666667 0.46666667 0.06666667 0.002 + 0.33333333 0.46666667 0.06666667 0.002 + 0.40000000 0.46666667 0.06666667 0.002 + 0.46666667 0.46666667 0.06666667 0.002 + 0.00000000 0.00000000 0.13333333 0.001 + 0.06666667 0.00000000 0.13333333 0.001 + 0.13333333 0.00000000 0.13333333 0.001 + 0.20000000 0.00000000 0.13333333 0.001 + 0.26666667 0.00000000 0.13333333 0.001 + 0.33333333 0.00000000 0.13333333 0.001 + 0.40000000 0.00000000 0.13333333 0.001 + 0.46666667 0.00000000 0.13333333 0.001 + 0.00000000 0.06666667 0.13333333 0.001 + 0.06666667 0.06666667 0.13333333 0.002 + 0.13333333 0.06666667 0.13333333 0.002 + 0.20000000 0.06666667 0.13333333 0.002 + 0.26666667 0.06666667 0.13333333 0.002 + 0.33333333 0.06666667 0.13333333 0.002 + 0.40000000 0.06666667 0.13333333 0.002 + 0.46666667 0.06666667 0.13333333 0.002 + 0.00000000 0.13333333 0.13333333 0.001 + 0.06666667 0.13333333 0.13333333 0.002 + 0.13333333 0.13333333 0.13333333 0.002 + 0.20000000 0.13333333 0.13333333 0.002 + 0.26666667 0.13333333 0.13333333 0.002 + 0.33333333 0.13333333 0.13333333 0.002 + 0.40000000 0.13333333 0.13333333 0.002 + 0.46666667 0.13333333 0.13333333 0.002 + 0.00000000 0.20000000 0.13333333 0.001 + 0.06666667 0.20000000 0.13333333 0.002 + 0.13333333 0.20000000 0.13333333 0.002 + 0.20000000 0.20000000 0.13333333 0.002 + 0.26666667 0.20000000 0.13333333 0.002 + 0.33333333 0.20000000 0.13333333 0.002 + 0.40000000 0.20000000 0.13333333 0.002 + 0.46666667 0.20000000 0.13333333 0.002 + 0.00000000 0.26666667 0.13333333 0.001 + 0.06666667 0.26666667 0.13333333 0.002 + 0.13333333 0.26666667 0.13333333 0.002 + 0.20000000 0.26666667 0.13333333 0.002 + 0.26666667 0.26666667 0.13333333 0.002 + 0.33333333 0.26666667 0.13333333 0.002 + 0.40000000 0.26666667 0.13333333 0.002 + 0.46666667 0.26666667 0.13333333 0.002 + 0.00000000 0.33333333 0.13333333 0.001 + 0.06666667 0.33333333 0.13333333 0.002 + 0.13333333 0.33333333 0.13333333 0.002 + 0.20000000 0.33333333 0.13333333 0.002 + 0.26666667 0.33333333 0.13333333 0.002 + 0.33333333 0.33333333 0.13333333 0.002 + 0.40000000 0.33333333 0.13333333 0.002 + 0.46666667 0.33333333 0.13333333 0.002 + 0.00000000 0.40000000 0.13333333 0.001 + 0.06666667 0.40000000 0.13333333 0.002 + 0.13333333 0.40000000 0.13333333 0.002 + 0.20000000 0.40000000 0.13333333 0.002 + 0.26666667 0.40000000 0.13333333 0.002 + 0.33333333 0.40000000 0.13333333 0.002 + 0.40000000 0.40000000 0.13333333 0.002 + 0.46666667 0.40000000 0.13333333 0.002 + 0.00000000 0.46666667 0.13333333 0.001 + 0.06666667 0.46666667 0.13333333 0.002 + 0.13333333 0.46666667 0.13333333 0.002 + 0.20000000 0.46666667 0.13333333 0.002 + 0.26666667 0.46666667 0.13333333 0.002 + 0.33333333 0.46666667 0.13333333 0.002 + 0.40000000 0.46666667 0.13333333 0.002 + 0.46666667 0.46666667 0.13333333 0.002 + 0.00000000 0.00000000 0.20000000 0.001 + 0.06666667 0.00000000 0.20000000 0.001 + 0.13333333 0.00000000 0.20000000 0.001 + 0.20000000 0.00000000 0.20000000 0.001 + 0.26666667 0.00000000 0.20000000 0.001 + 0.33333333 0.00000000 0.20000000 0.001 + 0.40000000 0.00000000 0.20000000 0.001 + 0.46666667 0.00000000 0.20000000 0.001 + 0.00000000 0.06666667 0.20000000 0.001 + 0.06666667 0.06666667 0.20000000 0.002 + 0.13333333 0.06666667 0.20000000 0.002 + 0.20000000 0.06666667 0.20000000 0.002 + 0.26666667 0.06666667 0.20000000 0.002 + 0.33333333 0.06666667 0.20000000 0.002 + 0.40000000 0.06666667 0.20000000 0.002 + 0.46666667 0.06666667 0.20000000 0.002 + 0.00000000 0.13333333 0.20000000 0.001 + 0.06666667 0.13333333 0.20000000 0.002 + 0.13333333 0.13333333 0.20000000 0.002 + 0.20000000 0.13333333 0.20000000 0.002 + 0.26666667 0.13333333 0.20000000 0.002 + 0.33333333 0.13333333 0.20000000 0.002 + 0.40000000 0.13333333 0.20000000 0.002 + 0.46666667 0.13333333 0.20000000 0.002 + 0.00000000 0.20000000 0.20000000 0.001 + 0.06666667 0.20000000 0.20000000 0.002 + 0.13333333 0.20000000 0.20000000 0.002 + 0.20000000 0.20000000 0.20000000 0.002 + 0.26666667 0.20000000 0.20000000 0.002 + 0.33333333 0.20000000 0.20000000 0.002 + 0.40000000 0.20000000 0.20000000 0.002 + 0.46666667 0.20000000 0.20000000 0.002 + 0.00000000 0.26666667 0.20000000 0.001 + 0.06666667 0.26666667 0.20000000 0.002 + 0.13333333 0.26666667 0.20000000 0.002 + 0.20000000 0.26666667 0.20000000 0.002 + 0.26666667 0.26666667 0.20000000 0.002 + 0.33333333 0.26666667 0.20000000 0.002 + 0.40000000 0.26666667 0.20000000 0.002 + 0.46666667 0.26666667 0.20000000 0.002 + 0.00000000 0.33333333 0.20000000 0.001 + 0.06666667 0.33333333 0.20000000 0.002 + 0.13333333 0.33333333 0.20000000 0.002 + 0.20000000 0.33333333 0.20000000 0.002 + 0.26666667 0.33333333 0.20000000 0.002 + 0.33333333 0.33333333 0.20000000 0.002 + 0.40000000 0.33333333 0.20000000 0.002 + 0.46666667 0.33333333 0.20000000 0.002 + 0.00000000 0.40000000 0.20000000 0.001 + 0.06666667 0.40000000 0.20000000 0.002 + 0.13333333 0.40000000 0.20000000 0.002 + 0.20000000 0.40000000 0.20000000 0.002 + 0.26666667 0.40000000 0.20000000 0.002 + 0.33333333 0.40000000 0.20000000 0.002 + 0.40000000 0.40000000 0.20000000 0.002 + 0.46666667 0.40000000 0.20000000 0.002 + 0.00000000 0.46666667 0.20000000 0.001 + 0.06666667 0.46666667 0.20000000 0.002 + 0.13333333 0.46666667 0.20000000 0.002 + 0.20000000 0.46666667 0.20000000 0.002 + 0.26666667 0.46666667 0.20000000 0.002 + 0.33333333 0.46666667 0.20000000 0.002 + 0.40000000 0.46666667 0.20000000 0.002 + 0.46666667 0.46666667 0.20000000 0.002 + 0.00000000 0.00000000 0.26666667 0.001 + 0.06666667 0.00000000 0.26666667 0.001 + 0.13333333 0.00000000 0.26666667 0.001 + 0.20000000 0.00000000 0.26666667 0.001 + 0.26666667 0.00000000 0.26666667 0.001 + 0.33333333 0.00000000 0.26666667 0.001 + 0.40000000 0.00000000 0.26666667 0.001 + 0.46666667 0.00000000 0.26666667 0.001 + 0.00000000 0.06666667 0.26666667 0.001 + 0.06666667 0.06666667 0.26666667 0.002 + 0.13333333 0.06666667 0.26666667 0.002 + 0.20000000 0.06666667 0.26666667 0.002 + 0.26666667 0.06666667 0.26666667 0.002 + 0.33333333 0.06666667 0.26666667 0.002 + 0.40000000 0.06666667 0.26666667 0.002 + 0.46666667 0.06666667 0.26666667 0.002 + 0.00000000 0.13333333 0.26666667 0.001 + 0.06666667 0.13333333 0.26666667 0.002 + 0.13333333 0.13333333 0.26666667 0.002 + 0.20000000 0.13333333 0.26666667 0.002 + 0.26666667 0.13333333 0.26666667 0.002 + 0.33333333 0.13333333 0.26666667 0.002 + 0.40000000 0.13333333 0.26666667 0.002 + 0.46666667 0.13333333 0.26666667 0.002 + 0.00000000 0.20000000 0.26666667 0.001 + 0.06666667 0.20000000 0.26666667 0.002 + 0.13333333 0.20000000 0.26666667 0.002 + 0.20000000 0.20000000 0.26666667 0.002 + 0.26666667 0.20000000 0.26666667 0.002 + 0.33333333 0.20000000 0.26666667 0.002 + 0.40000000 0.20000000 0.26666667 0.002 + 0.46666667 0.20000000 0.26666667 0.002 + 0.00000000 0.26666667 0.26666667 0.001 + 0.06666667 0.26666667 0.26666667 0.002 + 0.13333333 0.26666667 0.26666667 0.002 + 0.20000000 0.26666667 0.26666667 0.002 + 0.26666667 0.26666667 0.26666667 0.002 + 0.33333333 0.26666667 0.26666667 0.002 + 0.40000000 0.26666667 0.26666667 0.002 + 0.46666667 0.26666667 0.26666667 0.002 + 0.00000000 0.33333333 0.26666667 0.001 + 0.06666667 0.33333333 0.26666667 0.002 + 0.13333333 0.33333333 0.26666667 0.002 + 0.20000000 0.33333333 0.26666667 0.002 + 0.26666667 0.33333333 0.26666667 0.002 + 0.33333333 0.33333333 0.26666667 0.002 + 0.40000000 0.33333333 0.26666667 0.002 + 0.46666667 0.33333333 0.26666667 0.002 + 0.00000000 0.40000000 0.26666667 0.001 + 0.06666667 0.40000000 0.26666667 0.002 + 0.13333333 0.40000000 0.26666667 0.002 + 0.20000000 0.40000000 0.26666667 0.002 + 0.26666667 0.40000000 0.26666667 0.002 + 0.33333333 0.40000000 0.26666667 0.002 + 0.40000000 0.40000000 0.26666667 0.002 + 0.46666667 0.40000000 0.26666667 0.002 + 0.00000000 0.46666667 0.26666667 0.001 + 0.06666667 0.46666667 0.26666667 0.002 + 0.13333333 0.46666667 0.26666667 0.002 + 0.20000000 0.46666667 0.26666667 0.002 + 0.26666667 0.46666667 0.26666667 0.002 + 0.33333333 0.46666667 0.26666667 0.002 + 0.40000000 0.46666667 0.26666667 0.002 + 0.46666667 0.46666667 0.26666667 0.002 + 0.00000000 0.00000000 0.33333333 0.001 + 0.06666667 0.00000000 0.33333333 0.001 + 0.13333333 0.00000000 0.33333333 0.001 + 0.20000000 0.00000000 0.33333333 0.001 + 0.26666667 0.00000000 0.33333333 0.001 + 0.33333333 0.00000000 0.33333333 0.001 + 0.40000000 0.00000000 0.33333333 0.001 + 0.46666667 0.00000000 0.33333333 0.001 + 0.00000000 0.06666667 0.33333333 0.001 + 0.06666667 0.06666667 0.33333333 0.002 + 0.13333333 0.06666667 0.33333333 0.002 + 0.20000000 0.06666667 0.33333333 0.002 + 0.26666667 0.06666667 0.33333333 0.002 + 0.33333333 0.06666667 0.33333333 0.002 + 0.40000000 0.06666667 0.33333333 0.002 + 0.46666667 0.06666667 0.33333333 0.002 + 0.00000000 0.13333333 0.33333333 0.001 + 0.06666667 0.13333333 0.33333333 0.002 + 0.13333333 0.13333333 0.33333333 0.002 + 0.20000000 0.13333333 0.33333333 0.002 + 0.26666667 0.13333333 0.33333333 0.002 + 0.33333333 0.13333333 0.33333333 0.002 + 0.40000000 0.13333333 0.33333333 0.002 + 0.46666667 0.13333333 0.33333333 0.002 + 0.00000000 0.20000000 0.33333333 0.001 + 0.06666667 0.20000000 0.33333333 0.002 + 0.13333333 0.20000000 0.33333333 0.002 + 0.20000000 0.20000000 0.33333333 0.002 + 0.26666667 0.20000000 0.33333333 0.002 + 0.33333333 0.20000000 0.33333333 0.002 + 0.40000000 0.20000000 0.33333333 0.002 + 0.46666667 0.20000000 0.33333333 0.002 + 0.00000000 0.26666667 0.33333333 0.001 + 0.06666667 0.26666667 0.33333333 0.002 + 0.13333333 0.26666667 0.33333333 0.002 + 0.20000000 0.26666667 0.33333333 0.002 + 0.26666667 0.26666667 0.33333333 0.002 + 0.33333333 0.26666667 0.33333333 0.002 + 0.40000000 0.26666667 0.33333333 0.002 + 0.46666667 0.26666667 0.33333333 0.002 + 0.00000000 0.33333333 0.33333333 0.001 + 0.06666667 0.33333333 0.33333333 0.002 + 0.13333333 0.33333333 0.33333333 0.002 + 0.20000000 0.33333333 0.33333333 0.002 + 0.26666667 0.33333333 0.33333333 0.002 + 0.33333333 0.33333333 0.33333333 0.002 + 0.40000000 0.33333333 0.33333333 0.002 + 0.46666667 0.33333333 0.33333333 0.002 + 0.00000000 0.40000000 0.33333333 0.001 + 0.06666667 0.40000000 0.33333333 0.002 + 0.13333333 0.40000000 0.33333333 0.002 + 0.20000000 0.40000000 0.33333333 0.002 + 0.26666667 0.40000000 0.33333333 0.002 + 0.33333333 0.40000000 0.33333333 0.002 + 0.40000000 0.40000000 0.33333333 0.002 + 0.46666667 0.40000000 0.33333333 0.002 + 0.00000000 0.46666667 0.33333333 0.001 + 0.06666667 0.46666667 0.33333333 0.002 + 0.13333333 0.46666667 0.33333333 0.002 + 0.20000000 0.46666667 0.33333333 0.002 + 0.26666667 0.46666667 0.33333333 0.002 + 0.33333333 0.46666667 0.33333333 0.002 + 0.40000000 0.46666667 0.33333333 0.002 + 0.46666667 0.46666667 0.33333333 0.002 + 0.00000000 0.00000000 0.40000000 0.001 + 0.06666667 0.00000000 0.40000000 0.001 + 0.13333333 0.00000000 0.40000000 0.001 + 0.20000000 0.00000000 0.40000000 0.001 + 0.26666667 0.00000000 0.40000000 0.001 + 0.33333333 0.00000000 0.40000000 0.001 + 0.40000000 0.00000000 0.40000000 0.001 + 0.46666667 0.00000000 0.40000000 0.001 + 0.00000000 0.06666667 0.40000000 0.001 + 0.06666667 0.06666667 0.40000000 0.002 + 0.13333333 0.06666667 0.40000000 0.002 + 0.20000000 0.06666667 0.40000000 0.002 + 0.26666667 0.06666667 0.40000000 0.002 + 0.33333333 0.06666667 0.40000000 0.002 + 0.40000000 0.06666667 0.40000000 0.002 + 0.46666667 0.06666667 0.40000000 0.002 + 0.00000000 0.13333333 0.40000000 0.001 + 0.06666667 0.13333333 0.40000000 0.002 + 0.13333333 0.13333333 0.40000000 0.002 + 0.20000000 0.13333333 0.40000000 0.002 + 0.26666667 0.13333333 0.40000000 0.002 + 0.33333333 0.13333333 0.40000000 0.002 + 0.40000000 0.13333333 0.40000000 0.002 + 0.46666667 0.13333333 0.40000000 0.002 + 0.00000000 0.20000000 0.40000000 0.001 + 0.06666667 0.20000000 0.40000000 0.002 + 0.13333333 0.20000000 0.40000000 0.002 + 0.20000000 0.20000000 0.40000000 0.002 + 0.26666667 0.20000000 0.40000000 0.002 + 0.33333333 0.20000000 0.40000000 0.002 + 0.40000000 0.20000000 0.40000000 0.002 + 0.46666667 0.20000000 0.40000000 0.002 + 0.00000000 0.26666667 0.40000000 0.001 + 0.06666667 0.26666667 0.40000000 0.002 + 0.13333333 0.26666667 0.40000000 0.002 + 0.20000000 0.26666667 0.40000000 0.002 + 0.26666667 0.26666667 0.40000000 0.002 + 0.33333333 0.26666667 0.40000000 0.002 + 0.40000000 0.26666667 0.40000000 0.002 + 0.46666667 0.26666667 0.40000000 0.002 + 0.00000000 0.33333333 0.40000000 0.001 + 0.06666667 0.33333333 0.40000000 0.002 + 0.13333333 0.33333333 0.40000000 0.002 + 0.20000000 0.33333333 0.40000000 0.002 + 0.26666667 0.33333333 0.40000000 0.002 + 0.33333333 0.33333333 0.40000000 0.002 + 0.40000000 0.33333333 0.40000000 0.002 + 0.46666667 0.33333333 0.40000000 0.002 + 0.00000000 0.40000000 0.40000000 0.001 + 0.06666667 0.40000000 0.40000000 0.002 + 0.13333333 0.40000000 0.40000000 0.002 + 0.20000000 0.40000000 0.40000000 0.002 + 0.26666667 0.40000000 0.40000000 0.002 + 0.33333333 0.40000000 0.40000000 0.002 + 0.40000000 0.40000000 0.40000000 0.002 + 0.46666667 0.40000000 0.40000000 0.002 + 0.00000000 0.46666667 0.40000000 0.001 + 0.06666667 0.46666667 0.40000000 0.002 + 0.13333333 0.46666667 0.40000000 0.002 + 0.20000000 0.46666667 0.40000000 0.002 + 0.26666667 0.46666667 0.40000000 0.002 + 0.33333333 0.46666667 0.40000000 0.002 + 0.40000000 0.46666667 0.40000000 0.002 + 0.46666667 0.46666667 0.40000000 0.002 + 0.00000000 0.00000000 0.46666667 0.001 + 0.06666667 0.00000000 0.46666667 0.001 + 0.13333333 0.00000000 0.46666667 0.001 + 0.20000000 0.00000000 0.46666667 0.001 + 0.26666667 0.00000000 0.46666667 0.001 + 0.33333333 0.00000000 0.46666667 0.001 + 0.40000000 0.00000000 0.46666667 0.001 + 0.46666667 0.00000000 0.46666667 0.001 + 0.00000000 0.06666667 0.46666667 0.001 + 0.06666667 0.06666667 0.46666667 0.002 + 0.13333333 0.06666667 0.46666667 0.002 + 0.20000000 0.06666667 0.46666667 0.002 + 0.26666667 0.06666667 0.46666667 0.002 + 0.33333333 0.06666667 0.46666667 0.002 + 0.40000000 0.06666667 0.46666667 0.002 + 0.46666667 0.06666667 0.46666667 0.002 + 0.00000000 0.13333333 0.46666667 0.001 + 0.06666667 0.13333333 0.46666667 0.002 + 0.13333333 0.13333333 0.46666667 0.002 + 0.20000000 0.13333333 0.46666667 0.002 + 0.26666667 0.13333333 0.46666667 0.002 + 0.33333333 0.13333333 0.46666667 0.002 + 0.40000000 0.13333333 0.46666667 0.002 + 0.46666667 0.13333333 0.46666667 0.002 + 0.00000000 0.20000000 0.46666667 0.001 + 0.06666667 0.20000000 0.46666667 0.002 + 0.13333333 0.20000000 0.46666667 0.002 + 0.20000000 0.20000000 0.46666667 0.002 + 0.26666667 0.20000000 0.46666667 0.002 + 0.33333333 0.20000000 0.46666667 0.002 + 0.40000000 0.20000000 0.46666667 0.002 + 0.46666667 0.20000000 0.46666667 0.002 + 0.00000000 0.26666667 0.46666667 0.001 + 0.06666667 0.26666667 0.46666667 0.002 + 0.13333333 0.26666667 0.46666667 0.002 + 0.20000000 0.26666667 0.46666667 0.002 + 0.26666667 0.26666667 0.46666667 0.002 + 0.33333333 0.26666667 0.46666667 0.002 + 0.40000000 0.26666667 0.46666667 0.002 + 0.46666667 0.26666667 0.46666667 0.002 + 0.00000000 0.33333333 0.46666667 0.001 + 0.06666667 0.33333333 0.46666667 0.002 + 0.13333333 0.33333333 0.46666667 0.002 + 0.20000000 0.33333333 0.46666667 0.002 + 0.26666667 0.33333333 0.46666667 0.002 + 0.33333333 0.33333333 0.46666667 0.002 + 0.40000000 0.33333333 0.46666667 0.002 + 0.46666667 0.33333333 0.46666667 0.002 + 0.00000000 0.40000000 0.46666667 0.001 + 0.06666667 0.40000000 0.46666667 0.002 + 0.13333333 0.40000000 0.46666667 0.002 + 0.20000000 0.40000000 0.46666667 0.002 + 0.26666667 0.40000000 0.46666667 0.002 + 0.33333333 0.40000000 0.46666667 0.002 + 0.40000000 0.40000000 0.46666667 0.002 + 0.46666667 0.40000000 0.46666667 0.002 + 0.00000000 0.46666667 0.46666667 0.001 + 0.06666667 0.46666667 0.46666667 0.002 + 0.13333333 0.46666667 0.46666667 0.002 + 0.20000000 0.46666667 0.46666667 0.002 + 0.26666667 0.46666667 0.46666667 0.002 + 0.33333333 0.46666667 0.46666667 0.002 + 0.40000000 0.46666667 0.46666667 0.002 + 0.46666667 0.46666667 0.46666667 0.002 + + position of ions in fractional coordinates (direct lattice) + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.50000000 0.50000000 + 0.50000000 0.00000000 0.50000000 + 0.50000000 0.50000000 0.00000000 + + position of ions in cartesian coordinates (Angst): + 0.00000000 0.00000000 0.00000000 + 0.00000000 1.77872000 1.58839050 + 1.83480550 0.00000000 1.58839050 + 1.83480550 1.77872000 0.00000000 + + + +-------------------------------------------------------------------------------------------------------- + + + k-point 1 : 0.0000 0.0000 0.0000 plane waves: 1389 + k-point 2 : 0.0667 0.0000 0.0000 plane waves: 1395 + k-point 3 : 0.1333 0.0000 0.0000 plane waves: 1401 + k-point 4 : 0.2000 0.0000 0.0000 plane waves: 1393 + k-point 5 : 0.2667 0.0000 0.0000 plane waves: 1389 + k-point 6 : 0.3333 0.0000 0.0000 plane waves: 1386 + k-point 7 : 0.4000 0.0000 0.0000 plane waves: 1386 + k-point 8 : 0.4667 0.0000 0.0000 plane waves: 1392 + k-point 9 : 0.0000 0.0667 0.0000 plane waves: 1395 + k-point 10 : 0.0667 0.0667 0.0000 plane waves: 1393 + k-point 11 : 0.1333 0.0667 0.0000 plane waves: 1396 + k-point 12 : 0.2000 0.0667 0.0000 plane waves: 1390 + k-point 13 : 0.2667 0.0667 0.0000 plane waves: 1385 + k-point 14 : 0.3333 0.0667 0.0000 plane waves: 1382 + k-point 15 : 0.4000 0.0667 0.0000 plane waves: 1388 + k-point 16 : 0.4667 0.0667 0.0000 plane waves: 1396 + k-point 17 : 0.0000 0.1333 0.0000 plane waves: 1394 + k-point 18 : 0.0667 0.1333 0.0000 plane waves: 1400 + k-point 19 : 0.1333 0.1333 0.0000 plane waves: 1395 + k-point 20 : 0.2000 0.1333 0.0000 plane waves: 1393 + k-point 21 : 0.2667 0.1333 0.0000 plane waves: 1386 + k-point 22 : 0.3333 0.1333 0.0000 plane waves: 1394 + k-point 23 : 0.4000 0.1333 0.0000 plane waves: 1387 + k-point 24 : 0.4667 0.1333 0.0000 plane waves: 1384 + k-point 25 : 0.0000 0.2000 0.0000 plane waves: 1390 + k-point 26 : 0.0667 0.2000 0.0000 plane waves: 1392 + k-point 27 : 0.1333 0.2000 0.0000 plane waves: 1389 + k-point 28 : 0.2000 0.2000 0.0000 plane waves: 1388 + k-point 29 : 0.2667 0.2000 0.0000 plane waves: 1389 + k-point 30 : 0.3333 0.2000 0.0000 plane waves: 1391 + k-point 31 : 0.4000 0.2000 0.0000 plane waves: 1387 + k-point 32 : 0.4667 0.2000 0.0000 plane waves: 1382 + k-point 33 : 0.0000 0.2667 0.0000 plane waves: 1390 + k-point 34 : 0.0667 0.2667 0.0000 plane waves: 1393 + k-point 35 : 0.1333 0.2667 0.0000 plane waves: 1391 + k-point 36 : 0.2000 0.2667 0.0000 plane waves: 1388 + k-point 37 : 0.2667 0.2667 0.0000 plane waves: 1383 + k-point 38 : 0.3333 0.2667 0.0000 plane waves: 1384 + k-point 39 : 0.4000 0.2667 0.0000 plane waves: 1377 + k-point 40 : 0.4667 0.2667 0.0000 plane waves: 1375 + k-point 41 : 0.0000 0.3333 0.0000 plane waves: 1392 + k-point 42 : 0.0667 0.3333 0.0000 plane waves: 1390 + k-point 43 : 0.1333 0.3333 0.0000 plane waves: 1390 + k-point 44 : 0.2000 0.3333 0.0000 plane waves: 1395 + k-point 45 : 0.2667 0.3333 0.0000 plane waves: 1388 + k-point 46 : 0.3333 0.3333 0.0000 plane waves: 1380 + k-point 47 : 0.4000 0.3333 0.0000 plane waves: 1378 + k-point 48 : 0.4667 0.3333 0.0000 plane waves: 1364 + k-point 49 : 0.0000 0.4000 0.0000 plane waves: 1390 + k-point 50 : 0.0667 0.4000 0.0000 plane waves: 1390 + k-point 51 : 0.1333 0.4000 0.0000 plane waves: 1397 + k-point 52 : 0.2000 0.4000 0.0000 plane waves: 1391 + k-point 53 : 0.2667 0.4000 0.0000 plane waves: 1389 + k-point 54 : 0.3333 0.4000 0.0000 plane waves: 1377 + k-point 55 : 0.4000 0.4000 0.0000 plane waves: 1379 + k-point 56 : 0.4667 0.4000 0.0000 plane waves: 1365 + k-point 57 : 0.0000 0.4667 0.0000 plane waves: 1382 + k-point 58 : 0.0667 0.4667 0.0000 plane waves: 1387 + k-point 59 : 0.1333 0.4667 0.0000 plane waves: 1387 + k-point 60 : 0.2000 0.4667 0.0000 plane waves: 1386 + k-point 61 : 0.2667 0.4667 0.0000 plane waves: 1384 + k-point 62 : 0.3333 0.4667 0.0000 plane waves: 1384 + k-point 63 : 0.4000 0.4667 0.0000 plane waves: 1381 + k-point 64 : 0.4667 0.4667 0.0000 plane waves: 1372 + k-point 65 : 0.0000 0.0000 0.0667 plane waves: 1389 + k-point 66 : 0.0667 0.0000 0.0667 plane waves: 1386 + k-point 67 : 0.1333 0.0000 0.0667 plane waves: 1393 + k-point 68 : 0.2000 0.0000 0.0667 plane waves: 1392 + k-point 69 : 0.2667 0.0000 0.0667 plane waves: 1375 + k-point 70 : 0.3333 0.0000 0.0667 plane waves: 1382 + k-point 71 : 0.4000 0.0000 0.0667 plane waves: 1394 + k-point 72 : 0.4667 0.0000 0.0667 plane waves: 1401 + k-point 73 : 0.0000 0.0667 0.0667 plane waves: 1387 + k-point 74 : 0.0667 0.0667 0.0667 plane waves: 1388 + k-point 75 : 0.1333 0.0667 0.0667 plane waves: 1393 + k-point 76 : 0.2000 0.0667 0.0667 plane waves: 1388 + k-point 77 : 0.2667 0.0667 0.0667 plane waves: 1385 + k-point 78 : 0.3333 0.0667 0.0667 plane waves: 1388 + k-point 79 : 0.4000 0.0667 0.0667 plane waves: 1392 + k-point 80 : 0.4667 0.0667 0.0667 plane waves: 1395 + k-point 81 : 0.0000 0.1333 0.0667 plane waves: 1381 + k-point 82 : 0.0667 0.1333 0.0667 plane waves: 1388 + k-point 83 : 0.1333 0.1333 0.0667 plane waves: 1390 + k-point 84 : 0.2000 0.1333 0.0667 plane waves: 1387 + k-point 85 : 0.2667 0.1333 0.0667 plane waves: 1390 + k-point 86 : 0.3333 0.1333 0.0667 plane waves: 1385 + k-point 87 : 0.4000 0.1333 0.0667 plane waves: 1389 + k-point 88 : 0.4667 0.1333 0.0667 plane waves: 1391 + k-point 89 : 0.0000 0.2000 0.0667 plane waves: 1391 + k-point 90 : 0.0667 0.2000 0.0667 plane waves: 1390 + k-point 91 : 0.1333 0.2000 0.0667 plane waves: 1388 + k-point 92 : 0.2000 0.2000 0.0667 plane waves: 1390 + k-point 93 : 0.2667 0.2000 0.0667 plane waves: 1385 + k-point 94 : 0.3333 0.2000 0.0667 plane waves: 1388 + k-point 95 : 0.4000 0.2000 0.0667 plane waves: 1387 + k-point 96 : 0.4667 0.2000 0.0667 plane waves: 1388 + k-point 97 : 0.0000 0.2667 0.0667 plane waves: 1393 + k-point 98 : 0.0667 0.2667 0.0667 plane waves: 1392 + k-point 99 : 0.1333 0.2667 0.0667 plane waves: 1388 + k-point ** : 0.2000 0.2667 0.0667 plane waves: 1387 + k-point ** : 0.2667 0.2667 0.0667 plane waves: 1386 + k-point ** : 0.3333 0.2667 0.0667 plane waves: 1386 + k-point ** : 0.4000 0.2667 0.0667 plane waves: 1382 + k-point ** : 0.4667 0.2667 0.0667 plane waves: 1376 + k-point ** : 0.0000 0.3333 0.0667 plane waves: 1396 + k-point ** : 0.0667 0.3333 0.0667 plane waves: 1394 + k-point ** : 0.1333 0.3333 0.0667 plane waves: 1393 + k-point ** : 0.2000 0.3333 0.0667 plane waves: 1390 + k-point ** : 0.2667 0.3333 0.0667 plane waves: 1387 + k-point ** : 0.3333 0.3333 0.0667 plane waves: 1383 + k-point ** : 0.4000 0.3333 0.0667 plane waves: 1378 + k-point ** : 0.4667 0.3333 0.0667 plane waves: 1373 + k-point ** : 0.0000 0.4000 0.0667 plane waves: 1392 + k-point ** : 0.0667 0.4000 0.0667 plane waves: 1391 + k-point ** : 0.1333 0.4000 0.0667 plane waves: 1391 + k-point ** : 0.2000 0.4000 0.0667 plane waves: 1389 + k-point ** : 0.2667 0.4000 0.0667 plane waves: 1389 + k-point ** : 0.3333 0.4000 0.0667 plane waves: 1384 + k-point ** : 0.4000 0.4000 0.0667 plane waves: 1374 + k-point ** : 0.4667 0.4000 0.0667 plane waves: 1376 + k-point ** : 0.0000 0.4667 0.0667 plane waves: 1390 + k-point ** : 0.0667 0.4667 0.0667 plane waves: 1389 + k-point ** : 0.1333 0.4667 0.0667 plane waves: 1386 + k-point ** : 0.2000 0.4667 0.0667 plane waves: 1387 + k-point ** : 0.2667 0.4667 0.0667 plane waves: 1385 + k-point ** : 0.3333 0.4667 0.0667 plane waves: 1381 + k-point ** : 0.4000 0.4667 0.0667 plane waves: 1374 + k-point ** : 0.4667 0.4667 0.0667 plane waves: 1379 + k-point ** : 0.0000 0.0000 0.1333 plane waves: 1389 + k-point ** : 0.0667 0.0000 0.1333 plane waves: 1382 + k-point ** : 0.1333 0.0000 0.1333 plane waves: 1386 + k-point ** : 0.2000 0.0000 0.1333 plane waves: 1381 + k-point ** : 0.2667 0.0000 0.1333 plane waves: 1378 + k-point ** : 0.3333 0.0000 0.1333 plane waves: 1381 + k-point ** : 0.4000 0.0000 0.1333 plane waves: 1386 + k-point ** : 0.4667 0.0000 0.1333 plane waves: 1400 + k-point ** : 0.0000 0.0667 0.1333 plane waves: 1383 + k-point ** : 0.0667 0.0667 0.1333 plane waves: 1379 + k-point ** : 0.1333 0.0667 0.1333 plane waves: 1388 + k-point ** : 0.2000 0.0667 0.1333 plane waves: 1385 + k-point ** : 0.2667 0.0667 0.1333 plane waves: 1380 + k-point ** : 0.3333 0.0667 0.1333 plane waves: 1382 + k-point ** : 0.4000 0.0667 0.1333 plane waves: 1392 + k-point ** : 0.4667 0.0667 0.1333 plane waves: 1400 + k-point ** : 0.0000 0.1333 0.1333 plane waves: 1378 + k-point ** : 0.0667 0.1333 0.1333 plane waves: 1381 + k-point ** : 0.1333 0.1333 0.1333 plane waves: 1386 + k-point ** : 0.2000 0.1333 0.1333 plane waves: 1386 + k-point ** : 0.2667 0.1333 0.1333 plane waves: 1382 + k-point ** : 0.3333 0.1333 0.1333 plane waves: 1385 + k-point ** : 0.4000 0.1333 0.1333 plane waves: 1390 + k-point ** : 0.4667 0.1333 0.1333 plane waves: 1396 + k-point ** : 0.0000 0.2000 0.1333 plane waves: 1385 + k-point ** : 0.0667 0.2000 0.1333 plane waves: 1383 + k-point ** : 0.1333 0.2000 0.1333 plane waves: 1381 + k-point ** : 0.2000 0.2000 0.1333 plane waves: 1386 + k-point ** : 0.2667 0.2000 0.1333 plane waves: 1386 + k-point ** : 0.3333 0.2000 0.1333 plane waves: 1382 + k-point ** : 0.4000 0.2000 0.1333 plane waves: 1386 + k-point ** : 0.4667 0.2000 0.1333 plane waves: 1383 + k-point ** : 0.0000 0.2667 0.1333 plane waves: 1388 + k-point ** : 0.0667 0.2667 0.1333 plane waves: 1388 + k-point ** : 0.1333 0.2667 0.1333 plane waves: 1386 + k-point ** : 0.2000 0.2667 0.1333 plane waves: 1386 + k-point ** : 0.2667 0.2667 0.1333 plane waves: 1388 + k-point ** : 0.3333 0.2667 0.1333 plane waves: 1385 + k-point ** : 0.4000 0.2667 0.1333 plane waves: 1385 + k-point ** : 0.4667 0.2667 0.1333 plane waves: 1376 + k-point ** : 0.0000 0.3333 0.1333 plane waves: 1392 + k-point ** : 0.0667 0.3333 0.1333 plane waves: 1391 + k-point ** : 0.1333 0.3333 0.1333 plane waves: 1390 + k-point ** : 0.2000 0.3333 0.1333 plane waves: 1389 + k-point ** : 0.2667 0.3333 0.1333 plane waves: 1391 + k-point ** : 0.3333 0.3333 0.1333 plane waves: 1384 + k-point ** : 0.4000 0.3333 0.1333 plane waves: 1376 + k-point ** : 0.4667 0.3333 0.1333 plane waves: 1377 + k-point ** : 0.0000 0.4000 0.1333 plane waves: 1391 + k-point ** : 0.0667 0.4000 0.1333 plane waves: 1391 + k-point ** : 0.1333 0.4000 0.1333 plane waves: 1395 + k-point ** : 0.2000 0.4000 0.1333 plane waves: 1388 + k-point ** : 0.2667 0.4000 0.1333 plane waves: 1388 + k-point ** : 0.3333 0.4000 0.1333 plane waves: 1385 + k-point ** : 0.4000 0.4000 0.1333 plane waves: 1380 + k-point ** : 0.4667 0.4000 0.1333 plane waves: 1380 + k-point ** : 0.0000 0.4667 0.1333 plane waves: 1392 + k-point ** : 0.0667 0.4667 0.1333 plane waves: 1392 + k-point ** : 0.1333 0.4667 0.1333 plane waves: 1395 + k-point ** : 0.2000 0.4667 0.1333 plane waves: 1391 + k-point ** : 0.2667 0.4667 0.1333 plane waves: 1394 + k-point ** : 0.3333 0.4667 0.1333 plane waves: 1388 + k-point ** : 0.4000 0.4667 0.1333 plane waves: 1383 + k-point ** : 0.4667 0.4667 0.1333 plane waves: 1383 + k-point ** : 0.0000 0.0000 0.2000 plane waves: 1377 + k-point ** : 0.0667 0.0000 0.2000 plane waves: 1383 + k-point ** : 0.1333 0.0000 0.2000 plane waves: 1381 + k-point ** : 0.2000 0.0000 0.2000 plane waves: 1379 + k-point ** : 0.2667 0.0000 0.2000 plane waves: 1380 + k-point ** : 0.3333 0.0000 0.2000 plane waves: 1379 + k-point ** : 0.4000 0.0000 0.2000 plane waves: 1385 + k-point ** : 0.4667 0.0000 0.2000 plane waves: 1393 + k-point ** : 0.0000 0.0667 0.2000 plane waves: 1385 + k-point ** : 0.0667 0.0667 0.2000 plane waves: 1384 + k-point ** : 0.1333 0.0667 0.2000 plane waves: 1377 + k-point ** : 0.2000 0.0667 0.2000 plane waves: 1377 + k-point ** : 0.2667 0.0667 0.2000 plane waves: 1380 + k-point ** : 0.3333 0.0667 0.2000 plane waves: 1382 + k-point ** : 0.4000 0.0667 0.2000 plane waves: 1387 + k-point ** : 0.4667 0.0667 0.2000 plane waves: 1394 + k-point ** : 0.0000 0.1333 0.2000 plane waves: 1382 + k-point ** : 0.0667 0.1333 0.2000 plane waves: 1380 + k-point ** : 0.1333 0.1333 0.2000 plane waves: 1386 + k-point ** : 0.2000 0.1333 0.2000 plane waves: 1382 + k-point ** : 0.2667 0.1333 0.2000 plane waves: 1378 + k-point ** : 0.3333 0.1333 0.2000 plane waves: 1379 + k-point ** : 0.4000 0.1333 0.2000 plane waves: 1379 + k-point ** : 0.4667 0.1333 0.2000 plane waves: 1384 + k-point ** : 0.0000 0.2000 0.2000 plane waves: 1380 + k-point ** : 0.0667 0.2000 0.2000 plane waves: 1382 + k-point ** : 0.1333 0.2000 0.2000 plane waves: 1385 + k-point ** : 0.2000 0.2000 0.2000 plane waves: 1387 + k-point ** : 0.2667 0.2000 0.2000 plane waves: 1388 + k-point ** : 0.3333 0.2000 0.2000 plane waves: 1384 + k-point ** : 0.4000 0.2000 0.2000 plane waves: 1379 + k-point ** : 0.4667 0.2000 0.2000 plane waves: 1383 + k-point ** : 0.0000 0.2667 0.2000 plane waves: 1382 + k-point ** : 0.0667 0.2667 0.2000 plane waves: 1386 + k-point ** : 0.1333 0.2667 0.2000 plane waves: 1392 + k-point ** : 0.2000 0.2667 0.2000 plane waves: 1391 + k-point ** : 0.2667 0.2667 0.2000 plane waves: 1388 + k-point ** : 0.3333 0.2667 0.2000 plane waves: 1385 + k-point ** : 0.4000 0.2667 0.2000 plane waves: 1382 + k-point ** : 0.4667 0.2667 0.2000 plane waves: 1373 + k-point ** : 0.0000 0.3333 0.2000 plane waves: 1386 + k-point ** : 0.0667 0.3333 0.2000 plane waves: 1389 + k-point ** : 0.1333 0.3333 0.2000 plane waves: 1384 + k-point ** : 0.2000 0.3333 0.2000 plane waves: 1383 + k-point ** : 0.2667 0.3333 0.2000 plane waves: 1390 + k-point ** : 0.3333 0.3333 0.2000 plane waves: 1383 + k-point ** : 0.4000 0.3333 0.2000 plane waves: 1385 + k-point ** : 0.4667 0.3333 0.2000 plane waves: 1377 + k-point ** : 0.0000 0.4000 0.2000 plane waves: 1395 + k-point ** : 0.0667 0.4000 0.2000 plane waves: 1390 + k-point ** : 0.1333 0.4000 0.2000 plane waves: 1388 + k-point ** : 0.2000 0.4000 0.2000 plane waves: 1386 + k-point ** : 0.2667 0.4000 0.2000 plane waves: 1390 + k-point ** : 0.3333 0.4000 0.2000 plane waves: 1386 + k-point ** : 0.4000 0.4000 0.2000 plane waves: 1384 + k-point ** : 0.4667 0.4000 0.2000 plane waves: 1388 + k-point ** : 0.0000 0.4667 0.2000 plane waves: 1399 + k-point ** : 0.0667 0.4667 0.2000 plane waves: 1388 + k-point ** : 0.1333 0.4667 0.2000 plane waves: 1392 + k-point ** : 0.2000 0.4667 0.2000 plane waves: 1392 + k-point ** : 0.2667 0.4667 0.2000 plane waves: 1387 + k-point ** : 0.3333 0.4667 0.2000 plane waves: 1385 + k-point ** : 0.4000 0.4667 0.2000 plane waves: 1382 + k-point ** : 0.4667 0.4667 0.2000 plane waves: 1388 + k-point ** : 0.0000 0.0000 0.2667 plane waves: 1371 + k-point ** : 0.0667 0.0000 0.2667 plane waves: 1376 + k-point ** : 0.1333 0.0000 0.2667 plane waves: 1383 + k-point ** : 0.2000 0.0000 0.2667 plane waves: 1379 + k-point ** : 0.2667 0.0000 0.2667 plane waves: 1381 + k-point ** : 0.3333 0.0000 0.2667 plane waves: 1378 + k-point ** : 0.4000 0.0000 0.2667 plane waves: 1379 + k-point ** : 0.4667 0.0000 0.2667 plane waves: 1378 + k-point ** : 0.0000 0.0667 0.2667 plane waves: 1379 + k-point ** : 0.0667 0.0667 0.2667 plane waves: 1378 + k-point ** : 0.1333 0.0667 0.2667 plane waves: 1377 + k-point ** : 0.2000 0.0667 0.2667 plane waves: 1378 + k-point ** : 0.2667 0.0667 0.2667 plane waves: 1379 + k-point ** : 0.3333 0.0667 0.2667 plane waves: 1379 + k-point ** : 0.4000 0.0667 0.2667 plane waves: 1382 + k-point ** : 0.4667 0.0667 0.2667 plane waves: 1380 + k-point ** : 0.0000 0.1333 0.2667 plane waves: 1374 + k-point ** : 0.0667 0.1333 0.2667 plane waves: 1377 + k-point ** : 0.1333 0.1333 0.2667 plane waves: 1381 + k-point ** : 0.2000 0.1333 0.2667 plane waves: 1378 + k-point ** : 0.2667 0.1333 0.2667 plane waves: 1380 + k-point ** : 0.3333 0.1333 0.2667 plane waves: 1378 + k-point ** : 0.4000 0.1333 0.2667 plane waves: 1380 + k-point ** : 0.4667 0.1333 0.2667 plane waves: 1383 + k-point ** : 0.0000 0.2000 0.2667 plane waves: 1379 + k-point ** : 0.0667 0.2000 0.2667 plane waves: 1381 + k-point ** : 0.1333 0.2000 0.2667 plane waves: 1390 + k-point ** : 0.2000 0.2000 0.2667 plane waves: 1389 + k-point ** : 0.2667 0.2000 0.2667 plane waves: 1380 + k-point ** : 0.3333 0.2000 0.2667 plane waves: 1379 + k-point ** : 0.4000 0.2000 0.2667 plane waves: 1375 + k-point ** : 0.4667 0.2000 0.2667 plane waves: 1381 + k-point ** : 0.0000 0.2667 0.2667 plane waves: 1385 + k-point ** : 0.0667 0.2667 0.2667 plane waves: 1389 + k-point ** : 0.1333 0.2667 0.2667 plane waves: 1388 + k-point ** : 0.2000 0.2667 0.2667 plane waves: 1390 + k-point ** : 0.2667 0.2667 0.2667 plane waves: 1383 + k-point ** : 0.3333 0.2667 0.2667 plane waves: 1381 + k-point ** : 0.4000 0.2667 0.2667 plane waves: 1376 + k-point ** : 0.4667 0.2667 0.2667 plane waves: 1369 + k-point ** : 0.0000 0.3333 0.2667 plane waves: 1398 + k-point ** : 0.0667 0.3333 0.2667 plane waves: 1389 + k-point ** : 0.1333 0.3333 0.2667 plane waves: 1389 + k-point ** : 0.2000 0.3333 0.2667 plane waves: 1390 + k-point ** : 0.2667 0.3333 0.2667 plane waves: 1386 + k-point ** : 0.3333 0.3333 0.2667 plane waves: 1382 + k-point ** : 0.4000 0.3333 0.2667 plane waves: 1388 + k-point ** : 0.4667 0.3333 0.2667 plane waves: 1382 + k-point ** : 0.0000 0.4000 0.2667 plane waves: 1393 + k-point ** : 0.0667 0.4000 0.2667 plane waves: 1391 + k-point ** : 0.1333 0.4000 0.2667 plane waves: 1385 + k-point ** : 0.2000 0.4000 0.2667 plane waves: 1387 + k-point ** : 0.2667 0.4000 0.2667 plane waves: 1389 + k-point ** : 0.3333 0.4000 0.2667 plane waves: 1388 + k-point ** : 0.4000 0.4000 0.2667 plane waves: 1390 + k-point ** : 0.4667 0.4000 0.2667 plane waves: 1391 + k-point ** : 0.0000 0.4667 0.2667 plane waves: 1398 + k-point ** : 0.0667 0.4667 0.2667 plane waves: 1388 + k-point ** : 0.1333 0.4667 0.2667 plane waves: 1381 + k-point ** : 0.2000 0.4667 0.2667 plane waves: 1382 + k-point ** : 0.2667 0.4667 0.2667 plane waves: 1387 + k-point ** : 0.3333 0.4667 0.2667 plane waves: 1391 + k-point ** : 0.4000 0.4667 0.2667 plane waves: 1391 + k-point ** : 0.4667 0.4667 0.2667 plane waves: 1394 + k-point ** : 0.0000 0.0000 0.3333 plane waves: 1373 + k-point ** : 0.0667 0.0000 0.3333 plane waves: 1378 + k-point ** : 0.1333 0.0000 0.3333 plane waves: 1379 + k-point ** : 0.2000 0.0000 0.3333 plane waves: 1381 + k-point ** : 0.2667 0.0000 0.3333 plane waves: 1382 + k-point ** : 0.3333 0.0000 0.3333 plane waves: 1377 + k-point ** : 0.4000 0.0000 0.3333 plane waves: 1377 + k-point ** : 0.4667 0.0000 0.3333 plane waves: 1366 + k-point ** : 0.0000 0.0667 0.3333 plane waves: 1374 + k-point ** : 0.0667 0.0667 0.3333 plane waves: 1377 + k-point ** : 0.1333 0.0667 0.3333 plane waves: 1379 + k-point ** : 0.2000 0.0667 0.3333 plane waves: 1380 + k-point ** : 0.2667 0.0667 0.3333 plane waves: 1377 + k-point ** : 0.3333 0.0667 0.3333 plane waves: 1370 + k-point ** : 0.4000 0.0667 0.3333 plane waves: 1373 + k-point ** : 0.4667 0.0667 0.3333 plane waves: 1374 + k-point ** : 0.0000 0.1333 0.3333 plane waves: 1375 + k-point ** : 0.0667 0.1333 0.3333 plane waves: 1378 + k-point ** : 0.1333 0.1333 0.3333 plane waves: 1375 + k-point ** : 0.2000 0.1333 0.3333 plane waves: 1377 + k-point ** : 0.2667 0.1333 0.3333 plane waves: 1378 + k-point ** : 0.3333 0.1333 0.3333 plane waves: 1370 + k-point ** : 0.4000 0.1333 0.3333 plane waves: 1374 + k-point ** : 0.4667 0.1333 0.3333 plane waves: 1376 + k-point ** : 0.0000 0.2000 0.3333 plane waves: 1376 + k-point ** : 0.0667 0.2000 0.3333 plane waves: 1379 + k-point ** : 0.1333 0.2000 0.3333 plane waves: 1383 + k-point ** : 0.2000 0.2000 0.3333 plane waves: 1381 + k-point ** : 0.2667 0.2000 0.3333 plane waves: 1374 + k-point ** : 0.3333 0.2000 0.3333 plane waves: 1378 + k-point ** : 0.4000 0.2000 0.3333 plane waves: 1373 + k-point ** : 0.4667 0.2000 0.3333 plane waves: 1376 + k-point ** : 0.0000 0.2667 0.3333 plane waves: 1385 + k-point ** : 0.0667 0.2667 0.3333 plane waves: 1383 + k-point ** : 0.1333 0.2667 0.3333 plane waves: 1388 + k-point ** : 0.2000 0.2667 0.3333 plane waves: 1387 + k-point ** : 0.2667 0.2667 0.3333 plane waves: 1384 + k-point ** : 0.3333 0.2667 0.3333 plane waves: 1379 + k-point ** : 0.4000 0.2667 0.3333 plane waves: 1380 + k-point ** : 0.4667 0.2667 0.3333 plane waves: 1379 + k-point ** : 0.0000 0.3333 0.3333 plane waves: 1381 + k-point ** : 0.0667 0.3333 0.3333 plane waves: 1393 + k-point ** : 0.1333 0.3333 0.3333 plane waves: 1393 + k-point ** : 0.2000 0.3333 0.3333 plane waves: 1386 + k-point ** : 0.2667 0.3333 0.3333 plane waves: 1385 + k-point ** : 0.3333 0.3333 0.3333 plane waves: 1380 + k-point ** : 0.4000 0.3333 0.3333 plane waves: 1381 + k-point ** : 0.4667 0.3333 0.3333 plane waves: 1383 + k-point ** : 0.0000 0.4000 0.3333 plane waves: 1388 + k-point ** : 0.0667 0.4000 0.3333 plane waves: 1385 + k-point ** : 0.1333 0.4000 0.3333 plane waves: 1386 + k-point ** : 0.2000 0.4000 0.3333 plane waves: 1386 + k-point ** : 0.2667 0.4000 0.3333 plane waves: 1385 + k-point ** : 0.3333 0.4000 0.3333 plane waves: 1383 + k-point ** : 0.4000 0.4000 0.3333 plane waves: 1391 + k-point ** : 0.4667 0.4000 0.3333 plane waves: 1389 + k-point ** : 0.0000 0.4667 0.3333 plane waves: 1384 + k-point ** : 0.0667 0.4667 0.3333 plane waves: 1383 + k-point ** : 0.1333 0.4667 0.3333 plane waves: 1381 + k-point ** : 0.2000 0.4667 0.3333 plane waves: 1381 + k-point ** : 0.2667 0.4667 0.3333 plane waves: 1383 + k-point ** : 0.3333 0.4667 0.3333 plane waves: 1386 + k-point ** : 0.4000 0.4667 0.3333 plane waves: 1392 + k-point ** : 0.4667 0.4667 0.3333 plane waves: 1391 + k-point ** : 0.0000 0.0000 0.4000 plane waves: 1382 + k-point ** : 0.0667 0.0000 0.4000 plane waves: 1378 + k-point ** : 0.1333 0.0000 0.4000 plane waves: 1379 + k-point ** : 0.2000 0.0000 0.4000 plane waves: 1376 + k-point ** : 0.2667 0.0000 0.4000 plane waves: 1375 + k-point ** : 0.3333 0.0000 0.4000 plane waves: 1371 + k-point ** : 0.4000 0.0000 0.4000 plane waves: 1373 + k-point ** : 0.4667 0.0000 0.4000 plane waves: 1362 + k-point ** : 0.0000 0.0667 0.4000 plane waves: 1381 + k-point ** : 0.0667 0.0667 0.4000 plane waves: 1378 + k-point ** : 0.1333 0.0667 0.4000 plane waves: 1377 + k-point ** : 0.2000 0.0667 0.4000 plane waves: 1380 + k-point ** : 0.2667 0.0667 0.4000 plane waves: 1374 + k-point ** : 0.3333 0.0667 0.4000 plane waves: 1373 + k-point ** : 0.4000 0.0667 0.4000 plane waves: 1370 + k-point ** : 0.4667 0.0667 0.4000 plane waves: 1369 + k-point ** : 0.0000 0.1333 0.4000 plane waves: 1383 + k-point ** : 0.0667 0.1333 0.4000 plane waves: 1383 + k-point ** : 0.1333 0.1333 0.4000 plane waves: 1375 + k-point ** : 0.2000 0.1333 0.4000 plane waves: 1378 + k-point ** : 0.2667 0.1333 0.4000 plane waves: 1375 + k-point ** : 0.3333 0.1333 0.4000 plane waves: 1373 + k-point ** : 0.4000 0.1333 0.4000 plane waves: 1376 + k-point ** : 0.4667 0.1333 0.4000 plane waves: 1372 + k-point ** : 0.0000 0.2000 0.4000 plane waves: 1382 + k-point ** : 0.0667 0.2000 0.4000 plane waves: 1385 + k-point ** : 0.1333 0.2000 0.4000 plane waves: 1385 + k-point ** : 0.2000 0.2000 0.4000 plane waves: 1378 + k-point ** : 0.2667 0.2000 0.4000 plane waves: 1379 + k-point ** : 0.3333 0.2000 0.4000 plane waves: 1381 + k-point ** : 0.4000 0.2000 0.4000 plane waves: 1379 + k-point ** : 0.4667 0.2000 0.4000 plane waves: 1384 + k-point ** : 0.0000 0.2667 0.4000 plane waves: 1388 + k-point ** : 0.0667 0.2667 0.4000 plane waves: 1380 + k-point ** : 0.1333 0.2667 0.4000 plane waves: 1386 + k-point ** : 0.2000 0.2667 0.4000 plane waves: 1382 + k-point ** : 0.2667 0.2667 0.4000 plane waves: 1382 + k-point ** : 0.3333 0.2667 0.4000 plane waves: 1381 + k-point ** : 0.4000 0.2667 0.4000 plane waves: 1385 + k-point ** : 0.4667 0.2667 0.4000 plane waves: 1385 + k-point ** : 0.0000 0.3333 0.4000 plane waves: 1387 + k-point ** : 0.0667 0.3333 0.4000 plane waves: 1386 + k-point ** : 0.1333 0.3333 0.4000 plane waves: 1384 + k-point ** : 0.2000 0.3333 0.4000 plane waves: 1383 + k-point ** : 0.2667 0.3333 0.4000 plane waves: 1386 + k-point ** : 0.3333 0.3333 0.4000 plane waves: 1389 + k-point ** : 0.4000 0.3333 0.4000 plane waves: 1387 + k-point ** : 0.4667 0.3333 0.4000 plane waves: 1386 + k-point ** : 0.0000 0.4000 0.4000 plane waves: 1392 + k-point ** : 0.0667 0.4000 0.4000 plane waves: 1388 + k-point ** : 0.1333 0.4000 0.4000 plane waves: 1382 + k-point ** : 0.2000 0.4000 0.4000 plane waves: 1381 + k-point ** : 0.2667 0.4000 0.4000 plane waves: 1384 + k-point ** : 0.3333 0.4000 0.4000 plane waves: 1387 + k-point ** : 0.4000 0.4000 0.4000 plane waves: 1387 + k-point ** : 0.4667 0.4000 0.4000 plane waves: 1393 + k-point ** : 0.0000 0.4667 0.4000 plane waves: 1391 + k-point ** : 0.0667 0.4667 0.4000 plane waves: 1384 + k-point ** : 0.1333 0.4667 0.4000 plane waves: 1382 + k-point ** : 0.2000 0.4667 0.4000 plane waves: 1388 + k-point ** : 0.2667 0.4667 0.4000 plane waves: 1388 + k-point ** : 0.3333 0.4667 0.4000 plane waves: 1382 + k-point ** : 0.4000 0.4667 0.4000 plane waves: 1388 + k-point ** : 0.4667 0.4667 0.4000 plane waves: 1390 + k-point ** : 0.0000 0.0000 0.4667 plane waves: 1394 + k-point ** : 0.0667 0.0000 0.4667 plane waves: 1378 + k-point ** : 0.1333 0.0000 0.4667 plane waves: 1374 + k-point ** : 0.2000 0.0000 0.4667 plane waves: 1371 + k-point ** : 0.2667 0.0000 0.4667 plane waves: 1369 + k-point ** : 0.3333 0.0000 0.4667 plane waves: 1371 + k-point ** : 0.4000 0.0000 0.4667 plane waves: 1373 + k-point ** : 0.4667 0.0000 0.4667 plane waves: 1372 + k-point ** : 0.0000 0.0667 0.4667 plane waves: 1381 + k-point ** : 0.0667 0.0667 0.4667 plane waves: 1381 + k-point ** : 0.1333 0.0667 0.4667 plane waves: 1371 + k-point ** : 0.2000 0.0667 0.4667 plane waves: 1375 + k-point ** : 0.2667 0.0667 0.4667 plane waves: 1371 + k-point ** : 0.3333 0.0667 0.4667 plane waves: 1372 + k-point ** : 0.4000 0.0667 0.4667 plane waves: 1373 + k-point ** : 0.4667 0.0667 0.4667 plane waves: 1368 + k-point ** : 0.0000 0.1333 0.4667 plane waves: 1392 + k-point ** : 0.0667 0.1333 0.4667 plane waves: 1383 + k-point ** : 0.1333 0.1333 0.4667 plane waves: 1374 + k-point ** : 0.2000 0.1333 0.4667 plane waves: 1376 + k-point ** : 0.2667 0.1333 0.4667 plane waves: 1375 + k-point ** : 0.3333 0.1333 0.4667 plane waves: 1378 + k-point ** : 0.4000 0.1333 0.4667 plane waves: 1378 + k-point ** : 0.4667 0.1333 0.4667 plane waves: 1377 + k-point ** : 0.0000 0.2000 0.4667 plane waves: 1398 + k-point ** : 0.0667 0.2000 0.4667 plane waves: 1394 + k-point ** : 0.1333 0.2000 0.4667 plane waves: 1384 + k-point ** : 0.2000 0.2000 0.4667 plane waves: 1376 + k-point ** : 0.2667 0.2000 0.4667 plane waves: 1377 + k-point ** : 0.3333 0.2000 0.4667 plane waves: 1380 + k-point ** : 0.4000 0.2000 0.4667 plane waves: 1380 + k-point ** : 0.4667 0.2000 0.4667 plane waves: 1381 + k-point ** : 0.0000 0.2667 0.4667 plane waves: 1386 + k-point ** : 0.0667 0.2667 0.4667 plane waves: 1391 + k-point ** : 0.1333 0.2667 0.4667 plane waves: 1383 + k-point ** : 0.2000 0.2667 0.4667 plane waves: 1385 + k-point ** : 0.2667 0.2667 0.4667 plane waves: 1382 + k-point ** : 0.3333 0.2667 0.4667 plane waves: 1381 + k-point ** : 0.4000 0.2667 0.4667 plane waves: 1387 + k-point ** : 0.4667 0.2667 0.4667 plane waves: 1390 + k-point ** : 0.0000 0.3333 0.4667 plane waves: 1386 + k-point ** : 0.0667 0.3333 0.4667 plane waves: 1382 + k-point ** : 0.1333 0.3333 0.4667 plane waves: 1378 + k-point ** : 0.2000 0.3333 0.4667 plane waves: 1385 + k-point ** : 0.2667 0.3333 0.4667 plane waves: 1386 + k-point ** : 0.3333 0.3333 0.4667 plane waves: 1386 + k-point ** : 0.4000 0.3333 0.4667 plane waves: 1389 + k-point ** : 0.4667 0.3333 0.4667 plane waves: 1392 + k-point ** : 0.0000 0.4000 0.4667 plane waves: 1387 + k-point ** : 0.0667 0.4000 0.4667 plane waves: 1390 + k-point ** : 0.1333 0.4000 0.4667 plane waves: 1383 + k-point ** : 0.2000 0.4000 0.4667 plane waves: 1378 + k-point ** : 0.2667 0.4000 0.4667 plane waves: 1382 + k-point ** : 0.3333 0.4000 0.4667 plane waves: 1385 + k-point ** : 0.4000 0.4000 0.4667 plane waves: 1389 + k-point ** : 0.4667 0.4000 0.4667 plane waves: 1393 + k-point ** : 0.0000 0.4667 0.4667 plane waves: 1380 + k-point ** : 0.0667 0.4667 0.4667 plane waves: 1390 + k-point ** : 0.1333 0.4667 0.4667 plane waves: 1386 + k-point ** : 0.2000 0.4667 0.4667 plane waves: 1386 + k-point ** : 0.2667 0.4667 0.4667 plane waves: 1381 + k-point ** : 0.3333 0.4667 0.4667 plane waves: 1383 + k-point ** : 0.4000 0.4667 0.4667 plane waves: 1388 + k-point ** : 0.4667 0.4667 0.4667 plane waves: 1390 + + maximum and minimum number of plane-waves per node : 1401 1362 + + maximum number of plane-waves: 1401 + maximum index in each direction: + IXMAX= 7 IYMAX= 7 IZMAX= 6 + IXMIN= -7 IYMIN= -7 IZMIN= -6 + + + serial 3D FFT for wavefunctions + parallel 3D FFT for charge: + minimum data exchange during FFTs selected (reduces bandwidth) + + + total amount of memory used by VASP MPI-rank0 355020. kBytes +======================================================================= + + base : 30000. kBytes + nonl-proj : 299130. kBytes + fftplans : 441. kBytes + grid : 1138. kBytes + one-center: 129. kBytes + wavefun : 24182. kBytes + + INWAV: cpu time 0.0001: real time 0.0007 + Broyden mixing: mesh for mixing (old mesh) + NGX = 15 NGY = 15 NGZ = 13 + (NGX = 48 NGY = 48 NGZ = 40) + gives a total of 2925 points + + initial charge density was supplied: + charge density of overlapping atoms calculated + number of electron 26.0000000 magnetization + keeping initial charge density in first step + + +-------------------------------------------------------------------------------------------------------- + + + Maximum index for augmentation-charges 1294 (set IRDMAX) + + +-------------------------------------------------------------------------------------------------------- + + + First call to EWALD: gamma= 0.512 + Maximum number of real-space cells 3x 3x 3 + Maximum number of reciprocal cells 3x 3x 3 + + FEWALD: cpu time 0.0014: real time 0.0014 + + +--------------------------------------- Iteration 1( 1) --------------------------------------- + + + POTLOK: cpu time 0.0000: real time 0.0186 + SETDIJ: cpu time 0.0023: real time 0.0038 + EDDIAG: cpu time 0.8664: real time 0.8695 + RMM-DIIS: cpu time 0.9891: real time 0.9915 + ORTHCH: cpu time 0.0915: real time 0.0917 + DOS: cpu time 0.0040: real time 0.0040 + -------------------------------------------- + LOOP: cpu time 1.9534: real time 1.9792 + + eigenvalue-minimisations : 9216 + total energy-change (2. order) :-0.5752413E+03 (-0.2415436E+04) + number of electron 26.0000000 magnetization + augmentation part 26.0000000 magnetization + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -527.41646070 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 35.33916255 + PAW double counting = 1941.62980019 -1939.43826086 + entropy T*S EENTRO = -0.00530052 + eigenvalues EBANDS = -1293.52360327 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -575.24128006 eV + + energy without entropy = -575.23597954 energy(sigma->0) = -575.23862980 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 2) --------------------------------------- + + + EDDIAG: cpu time 0.8612: real time 0.9058 + RMM-DIIS: cpu time 1.0247: real time 1.0272 + ORTHCH: cpu time 0.0935: real time 0.0937 + DOS: cpu time 0.0037: real time 0.0037 + -------------------------------------------- + LOOP: cpu time 1.9831: real time 2.0305 + + eigenvalue-minimisations : 9216 + total energy-change (2. order) : 0.6776269E+03 (-0.4029736E+03) + number of electron 26.0000000 magnetization + augmentation part 26.0000000 magnetization + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -527.41646070 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 35.33916255 + PAW double counting = 1941.62980019 -1939.43826086 + entropy T*S EENTRO = -0.00481541 + eigenvalues EBANDS = -615.89714414 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = 102.38566418 eV + + energy without entropy = 102.39047960 energy(sigma->0) = 102.38807189 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 3) --------------------------------------- + + + EDDIAG: cpu time 0.8578: real time 0.8850 + RMM-DIIS: cpu time 0.9854: real time 0.9876 + ORTHCH: cpu time 0.0927: real time 0.0950 + DOS: cpu time 0.0039: real time 0.0038 + -------------------------------------------- + LOOP: cpu time 1.9398: real time 1.9715 + + eigenvalue-minimisations : 9216 + total energy-change (2. order) :-0.1313635E+03 (-0.1511722E+03) + number of electron 26.0000000 magnetization + augmentation part 26.0000000 magnetization + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -527.41646070 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 35.33916255 + PAW double counting = 1941.62980019 -1939.43826086 + entropy T*S EENTRO = -0.00684255 + eigenvalues EBANDS = -747.25860832 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -28.97782713 eV + + energy without entropy = -28.97098459 energy(sigma->0) = -28.97440586 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 4) --------------------------------------- + + + EDDIAG: cpu time 0.8663: real time 0.8792 + RMM-DIIS: cpu time 2.9235: real time 2.9296 + ORTHCH: cpu time 0.0974: real time 0.0994 + DOS: cpu time 0.0037: real time 0.0037 + -------------------------------------------- + LOOP: cpu time 3.8909: real time 3.9119 + + eigenvalue-minimisations : 29178 + total energy-change (2. order) :-0.2071636E+02 (-0.8645846E+02) + number of electron 26.0000000 magnetization + augmentation part 26.0000000 magnetization + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -527.41646070 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 35.33916255 + PAW double counting = 1941.62980019 -1939.43826086 + entropy T*S EENTRO = -0.00577549 + eigenvalues EBANDS = -767.97603184 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -49.69418359 eV + + energy without entropy = -49.68840810 energy(sigma->0) = -49.69129585 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 5) --------------------------------------- + + + EDDIAG: cpu time 0.8588: real time 0.8713 + RMM-DIIS: cpu time 3.2869: real time 3.2931 + ORTHCH: cpu time 0.0916: real time 0.0917 + DOS: cpu time 0.0037: real time 0.0037 + CHARGE: cpu time 0.2189: real time 0.2195 + MIXING: cpu time 0.0004: real time 0.0004 + -------------------------------------------- + LOOP: cpu time 4.4603: real time 4.4798 + + eigenvalue-minimisations : 32343 + total energy-change (2. order) :-0.2221706E+01 (-0.1791219E+02) + number of electron 26.0000010 magnetization + augmentation part 1.7185645 magnetization + + Broyden mixing: + rms(total) = 0.99154E+01 rms(broyden)= 0.99154E+01 + rms(prec ) = 0.10501E+02 + weight for this iteration 100.00 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -527.41646070 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 35.33916255 + PAW double counting = 1941.62980019 -1939.43826086 + entropy T*S EENTRO = -0.00286525 + eigenvalues EBANDS = -770.20064788 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -51.91588940 eV + + energy without entropy = -51.91302415 energy(sigma->0) = -51.91445678 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 6) --------------------------------------- + + + POTLOK: cpu time 0.0063: real time 0.0063 + SETDIJ: cpu time 0.0030: real time 0.0030 + EDDIAG: cpu time 0.8572: real time 0.8594 + RMM-DIIS: cpu time 3.1432: real time 3.1501 + ORTHCH: cpu time 0.0945: real time 0.0962 + DOS: cpu time 0.0037: real time 0.0037 + CHARGE: cpu time 0.2174: real time 0.2178 + MIXING: cpu time 0.0010: real time 0.0005 + -------------------------------------------- + LOOP: cpu time 4.3263: real time 4.3370 + + eigenvalue-minimisations : 32157 + total energy-change (2. order) : 0.3557072E+01 (-0.5126209E+01) + number of electron 26.0000010 magnetization + augmentation part 1.7344693 magnetization + + Broyden mixing: + rms(total) = 0.63965E+01 rms(broyden)= 0.63965E+01 + rms(prec ) = 0.64289E+01 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 2.3193 + 2.3193 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -478.34595767 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.69314398 + PAW double counting = 2583.11263522 -2584.59837190 + entropy T*S EENTRO = -0.00315334 + eigenvalues EBANDS = -810.39049628 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.35881744 eV + + energy without entropy = -48.35566410 energy(sigma->0) = -48.35724077 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 7) --------------------------------------- + + + POTLOK: cpu time 0.0086: real time 0.0151 + SETDIJ: cpu time 0.0028: real time 0.0028 + EDDIAG: cpu time 0.8614: real time 0.8634 + RMM-DIIS: cpu time 3.0067: real time 3.0125 + ORTHCH: cpu time 0.0904: real time 0.0906 + DOS: cpu time 0.0038: real time 0.0038 + CHARGE: cpu time 0.2174: real time 0.2189 + MIXING: cpu time 0.0004: real time 0.0004 + -------------------------------------------- + LOOP: cpu time 4.1915: real time 4.2075 + + eigenvalue-minimisations : 31891 + total energy-change (2. order) :-0.1869340E+00 (-0.1169757E+01) + number of electron 26.0000010 magnetization + augmentation part 1.7769450 magnetization + + Broyden mixing: + rms(total) = 0.10740E+01 rms(broyden)= 0.10740E+01 + rms(prec ) = 0.13069E+01 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.5887 + 1.0277 2.1498 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -468.77317788 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.19468253 + PAW double counting = 3317.64592811 -3318.50891194 + entropy T*S EENTRO = -0.00279364 + eigenvalues EBANDS = -820.27486120 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.54575148 eV + + energy without entropy = -48.54295784 energy(sigma->0) = -48.54435466 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 8) --------------------------------------- + + + POTLOK: cpu time 0.0061: real time 0.0062 + SETDIJ: cpu time 0.0027: real time 0.0027 + EDDIAG: cpu time 0.8569: real time 0.8592 + RMM-DIIS: cpu time 3.1012: real time 3.1079 + ORTHCH: cpu time 0.0908: real time 0.0928 + DOS: cpu time 0.0038: real time 0.0038 + CHARGE: cpu time 0.2182: real time 0.2185 + MIXING: cpu time 0.0005: real time 0.0005 + -------------------------------------------- + LOOP: cpu time 4.2803: real time 4.2918 + + eigenvalue-minimisations : 29478 + total energy-change (2. order) : 0.4696527E+00 (-0.1641795E+00) + number of electron 26.0000010 magnetization + augmentation part 1.7495559 magnetization + + Broyden mixing: + rms(total) = 0.94387E+00 rms(broyden)= 0.94387E+00 + rms(prec ) = 0.94566E+00 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.7834 + 1.5400 1.9052 1.9052 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -481.10425992 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.50004761 + PAW double counting = 3311.78596750 -3311.19575724 + entropy T*S EENTRO = -0.00267424 + eigenvalues EBANDS = -809.23280508 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.07609882 eV + + energy without entropy = -48.07342458 energy(sigma->0) = -48.07476170 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 9) --------------------------------------- + + + POTLOK: cpu time 0.0065: real time 0.0165 + SETDIJ: cpu time 0.0029: real time 0.0029 + EDDIAG: cpu time 0.8609: real time 0.8633 + RMM-DIIS: cpu time 2.9123: real time 2.9192 + ORTHCH: cpu time 0.0968: real time 0.0971 + DOS: cpu time 0.0038: real time 0.0038 + CHARGE: cpu time 0.2174: real time 0.2179 + MIXING: cpu time 0.0005: real time 0.0005 + -------------------------------------------- + LOOP: cpu time 4.1010: real time 4.1212 + + eigenvalue-minimisations : 31189 + total energy-change (2. order) :-0.4703762E-01 (-0.5300665E-01) + number of electron 26.0000010 magnetization + augmentation part 1.7619850 magnetization + + Broyden mixing: + rms(total) = 0.37364E+00 rms(broyden)= 0.37364E+00 + rms(prec ) = 0.50262E+00 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.8041 + 2.5350 2.5350 1.0732 1.0732 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -476.54735144 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.37995814 + PAW double counting = 3192.69887022 -3192.42542193 + entropy T*S EENTRO = -0.00286656 + eigenvalues EBANDS = -813.39970742 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.12313644 eV + + energy without entropy = -48.12026988 energy(sigma->0) = -48.12170316 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 10) --------------------------------------- + + + POTLOK: cpu time 0.0062: real time 0.0062 + SETDIJ: cpu time 0.0027: real time 0.0027 + EDDIAG: cpu time 0.8582: real time 0.8613 + RMM-DIIS: cpu time 3.1267: real time 3.1349 + ORTHCH: cpu time 0.0904: real time 0.0905 + DOS: cpu time 0.0037: real time 0.0037 + CHARGE: cpu time 0.2194: real time 0.2197 + MIXING: cpu time 0.0020: real time 0.0015 + -------------------------------------------- + LOOP: cpu time 4.3092: real time 4.3205 + + eigenvalue-minimisations : 29390 + total energy-change (2. order) : 0.2966125E-01 (-0.4742700E-01) + number of electron 26.0000010 magnetization + augmentation part 1.7423041 magnetization + + Broyden mixing: + rms(total) = 0.31849E+00 rms(broyden)= 0.31849E+00 + rms(prec ) = 0.35866E+00 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.5899 + 2.6842 1.6840 1.6840 1.0048 0.8926 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -482.81360439 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.53890578 + PAW double counting = 3121.35646553 -3120.29858400 + entropy T*S EENTRO = -0.00297373 + eigenvalues EBANDS = -808.04706694 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.09347519 eV + + energy without entropy = -48.09050147 energy(sigma->0) = -48.09198833 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 11) --------------------------------------- + + + POTLOK: cpu time 0.0050: real time 0.0156 + SETDIJ: cpu time 0.0028: real time 0.0028 + EDDIAG: cpu time 0.8582: real time 0.8607 +WARNING in EDDRMM: call to ZHEGV failed, returncode = 8 4 2 + RMM-DIIS: cpu time 3.6274: real time 3.6355 + ORTHCH: cpu time 0.0911: real time 0.0912 + DOS: cpu time 0.0038: real time 0.0038 + CHARGE: cpu time 0.2177: real time 0.2182 + MIXING: cpu time 0.0005: real time 0.0005 + -------------------------------------------- + LOOP: cpu time 4.8065: real time 4.8283 + + eigenvalue-minimisations : 29737 + total energy-change (2. order) : 0.2156037E-01 (-0.5977483E-02) + number of electron 26.0000010 magnetization + augmentation part 1.7466636 magnetization + + Broyden mixing: + rms(total) = 0.53781E-01 rms(broyden)= 0.53781E-01 + rms(prec ) = 0.62072E-01 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.3891 + 2.6733 1.7034 1.7034 1.0132 0.8845 0.3572 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -480.78216452 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.47821903 + PAW double counting = 3189.30069522 -3188.42317580 + entropy T*S EENTRO = -0.00299710 + eigenvalues EBANDS = -809.81587419 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.07191482 eV + + energy without entropy = -48.06891772 energy(sigma->0) = -48.07041627 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 12) --------------------------------------- + + + POTLOK: cpu time 0.0062: real time 0.0062 + SETDIJ: cpu time 0.0028: real time 0.0028 + EDDIAG: cpu time 0.8529: real time 0.8567 +WARNING in EDDRMM: call to ZHEGV failed, returncode = 8 4 2 + RMM-DIIS: cpu time 3.4862: real time 3.4923 + ORTHCH: cpu time 0.0915: real time 0.0917 + DOS: cpu time 0.0037: real time 0.0037 + CHARGE: cpu time 0.2184: real time 0.2187 + MIXING: cpu time 0.0006: real time 0.0006 + -------------------------------------------- + LOOP: cpu time 4.6622: real time 4.6726 + + eigenvalue-minimisations : 30551 + total energy-change (2. order) : 0.8869093E-03 (-0.8814040E-03) + number of electron 26.0000010 magnetization + augmentation part 1.7475456 magnetization + + Broyden mixing: + rms(total) = 0.17327E-01 rms(broyden)= 0.17326E-01 + rms(prec ) = 0.19640E-01 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.3147 + 2.6706 1.6701 1.6701 1.0021 0.9039 0.6430 0.6430 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -480.57803071 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.47228286 + PAW double counting = 3197.70507194 -3196.84324057 + entropy T*S EENTRO = -0.00301416 + eigenvalues EBANDS = -809.99747983 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.07102791 eV + + energy without entropy = -48.06801376 energy(sigma->0) = -48.06952083 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 13) --------------------------------------- + + + POTLOK: cpu time 0.0063: real time 0.0063 + SETDIJ: cpu time 0.0028: real time 0.0028 + EDDIAG: cpu time 0.8539: real time 0.8558 + RMM-DIIS: cpu time 3.3017: real time 3.3099 + ORTHCH: cpu time 0.0903: real time 0.0905 + DOS: cpu time 0.0037: real time 0.0037 + CHARGE: cpu time 0.2175: real time 0.2177 + MIXING: cpu time 0.0006: real time 0.0005 + -------------------------------------------- + LOOP: cpu time 4.4767: real time 4.4872 + + eigenvalue-minimisations : 27907 + total energy-change (2. order) :-0.1094469E-03 (-0.1819417E-03) + number of electron 26.0000010 magnetization + augmentation part 1.7473309 magnetization + + Broyden mixing: + rms(total) = 0.41060E-01 rms(broyden)= 0.41060E-01 + rms(prec ) = 0.43597E-01 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.5889 + 2.6762 2.6235 1.8063 1.8063 1.0829 1.0829 0.8167 0.8167 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -480.71544123 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.47703876 + PAW double counting = 3194.30045733 -3193.42429176 + entropy T*S EENTRO = -0.00304443 + eigenvalues EBANDS = -809.87923859 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.07113736 eV + + energy without entropy = -48.06809293 energy(sigma->0) = -48.06961515 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 14) --------------------------------------- + + + POTLOK: cpu time 0.0064: real time 0.0152 + SETDIJ: cpu time 0.0027: real time 0.0027 + EDDIAG: cpu time 0.8625: real time 0.8642 + RMM-DIIS: cpu time 3.4730: real time 3.4807 + ORTHCH: cpu time 0.0958: real time 0.0960 + DOS: cpu time 0.0033: real time 0.0033 + CHARGE: cpu time 0.2181: real time 0.2185 + MIXING: cpu time 0.0006: real time 0.0006 + -------------------------------------------- + LOOP: cpu time 4.6625: real time 4.6814 + + eigenvalue-minimisations : 28867 + total energy-change (2. order) :-0.4802788E-04 (-0.5334102E-04) + number of electron 26.0000010 magnetization + augmentation part 1.7471770 magnetization + + Broyden mixing: + rms(total) = 0.11318E-01 rms(broyden)= 0.11318E-01 + rms(prec ) = 0.20045E-01 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.4879 + 2.6297 2.6297 1.6936 1.3132 1.1879 1.1879 0.9918 0.8785 0.8785 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -480.78948024 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.47969724 + PAW double counting = 3200.45165620 -3199.56117304 + entropy T*S EENTRO = -0.00304439 + eigenvalues EBANDS = -809.82222371 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.07118539 eV + + energy without entropy = -48.06814100 energy(sigma->0) = -48.06966319 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 15) --------------------------------------- + + + POTLOK: cpu time 0.0062: real time 0.0062 + SETDIJ: cpu time 0.0028: real time 0.0028 + EDDIAG: cpu time 0.8568: real time 0.8614 + RMM-DIIS: cpu time 3.2087: real time 3.2162 + ORTHCH: cpu time 0.0943: real time 0.0959 + DOS: cpu time 0.0037: real time 0.0037 + CHARGE: cpu time 0.2176: real time 0.2180 + MIXING: cpu time 0.0006: real time 0.0006 + -------------------------------------------- + LOOP: cpu time 4.3907: real time 4.4048 + + eigenvalue-minimisations : 27375 + total energy-change (2. order) : 0.7992486E-04 (-0.8025044E-04) + number of electron 26.0000010 magnetization + augmentation part 1.7478758 magnetization + + Broyden mixing: + rms(total) = 0.46851E-02 rms(broyden)= 0.46851E-02 + rms(prec ) = 0.51870E-02 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.3579 + 2.7839 2.5249 1.4729 1.4729 1.1537 1.1537 0.9594 0.9133 0.9133 0.2310 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -480.57031732 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.47337481 + PAW double counting = 3205.37333857 -3204.50053139 + entropy T*S EENTRO = -0.00305052 + eigenvalues EBANDS = -810.01730217 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.07110546 eV + + energy without entropy = -48.06805494 energy(sigma->0) = -48.06958020 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 16) --------------------------------------- + + + POTLOK: cpu time 0.0062: real time 0.0169 + SETDIJ: cpu time 0.0029: real time 0.0029 + EDDIAG: cpu time 0.8529: real time 0.8553 + RMM-DIIS: cpu time 2.8952: real time 2.9013 + ORTHCH: cpu time 0.0905: real time 0.0907 + DOS: cpu time 0.0037: real time 0.0037 + CHARGE: cpu time 0.2153: real time 0.2156 + MIXING: cpu time 0.0008: real time 0.0008 + -------------------------------------------- + LOOP: cpu time 4.0684: real time 4.0872 + + eigenvalue-minimisations : 26944 + total energy-change (2. order) : 0.6773008E-05 (-0.9673818E-05) + number of electron 26.0000010 magnetization + augmentation part 1.7479216 magnetization + + Broyden mixing: + rms(total) = 0.39083E-02 rms(broyden)= 0.39083E-02 + rms(prec ) = 0.48812E-02 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.3253 + 2.8948 2.4553 1.5944 1.2157 1.2157 1.0656 1.0656 0.9218 0.9218 0.6138 + 0.6138 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -480.57208370 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.47337122 + PAW double counting = 3205.24324251 -3204.37022275 + entropy T*S EENTRO = -0.00304889 + eigenvalues EBANDS = -810.01573963 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.07109869 eV + + energy without entropy = -48.06804980 energy(sigma->0) = -48.06957425 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 17) --------------------------------------- + + + POTLOK: cpu time 0.0061: real time 0.0061 + SETDIJ: cpu time 0.0027: real time 0.0027 + EDDIAG: cpu time 0.8539: real time 0.8561 + RMM-DIIS: cpu time 2.4896: real time 2.4948 + ORTHCH: cpu time 0.0919: real time 0.0936 + DOS: cpu time 0.0037: real time 0.0037 + CHARGE: cpu time 0.2152: real time 0.2157 + MIXING: cpu time 0.0007: real time 0.0007 + -------------------------------------------- + LOOP: cpu time 3.6630: real time 3.6735 + + eigenvalue-minimisations : 21111 + total energy-change (2. order) :-0.1378648E-06 (-0.3109433E-05) + number of electron 26.0000010 magnetization + augmentation part 1.7479123 magnetization + + Broyden mixing: + rms(total) = 0.28181E-02 rms(broyden)= 0.28181E-02 + rms(prec ) = 0.39149E-02 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.4710 + 2.9079 2.2924 2.2924 1.6621 1.6621 1.2410 1.2410 0.9431 0.9431 0.9557 + 0.9062 0.6049 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -480.57833821 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.47347056 + PAW double counting = 3205.16062297 -3204.28612410 + entropy T*S EENTRO = -0.00305011 + eigenvalues EBANDS = -810.01106249 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.07109883 eV + + energy without entropy = -48.06804872 energy(sigma->0) = -48.06957377 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 18) --------------------------------------- + + + POTLOK: cpu time 0.0113: real time 0.0161 + SETDIJ: cpu time 0.0028: real time 0.0028 + EDDIAG: cpu time 0.8562: real time 0.8582 + RMM-DIIS: cpu time 3.0636: real time 3.0697 + ORTHCH: cpu time 0.0905: real time 0.0907 + DOS: cpu time 0.0036: real time 0.0037 + CHARGE: cpu time 0.2153: real time 0.2157 + MIXING: cpu time 0.0008: real time 0.0008 + -------------------------------------------- + LOOP: cpu time 4.2441: real time 4.2575 + + eigenvalue-minimisations : 25981 + total energy-change (2. order) : 0.2551284E-05 (-0.2256845E-05) + number of electron 26.0000010 magnetization + augmentation part 1.7478071 magnetization + + Broyden mixing: + rms(total) = 0.71135E-03 rms(broyden)= 0.71134E-03 + rms(prec ) = 0.91622E-03 + weight for this iteration 100.00 + + eigenvalues of (default mixing * dielectric matrix) + average eigenvalue GAMMA= 1.4171 + 2.6811 2.5386 1.7609 1.7609 1.7689 1.4591 1.4591 0.8833 0.8833 1.0096 + 0.8463 0.6854 0.6854 + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -480.61644072 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.47429532 + PAW double counting = 3204.55531159 -3203.67482965 + entropy T*S EENTRO = -0.00304973 + eigenvalues EBANDS = -809.97976563 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.07109628 eV + + energy without entropy = -48.06804655 energy(sigma->0) = -48.06957141 + + +-------------------------------------------------------------------------------------------------------- + + + + +--------------------------------------- Iteration 1( 19) --------------------------------------- + + + POTLOK: cpu time 0.0061: real time 0.0061 + SETDIJ: cpu time 0.0028: real time 0.0028 + EDDIAG: cpu time 0.8529: real time 0.8552 + RMM-DIIS: cpu time 2.5286: real time 2.5345 + ORTHCH: cpu time 0.0907: real time 0.0909 + DOS: cpu time 0.0037: real time 0.0037 + -------------------------------------------- + LOOP: cpu time 3.4848: real time 3.4932 + + eigenvalue-minimisations : 18928 + total energy-change (2. order) : 0.3110167E-06 (-0.2199411E-06) + number of electron 26.0000010 magnetization + augmentation part 1.7478071 magnetization + + Free energy of the ion-electron system (eV) + --------------------------------------------------- + alpha Z PSCENC = 131.43308500 + Ewald energy TEWEN = -1959.85115532 + -Hartree energ DENC = -480.61520692 + -exchange EXHF = 0.00000000 + -V(xc)+E(xc) XCENC = 33.47431066 + PAW double counting = 3204.45646866 -3203.57677692 + entropy T*S EENTRO = -0.00304986 + eigenvalues EBANDS = -809.98022412 + atomic energy EATOM = 3036.59145287 + Solvation Ediel_sol = 0.00000000 + --------------------------------------------------- + free energy TOTEN = -48.07109596 eV + + energy without entropy = -48.06804610 energy(sigma->0) = -48.06957103 + + +-------------------------------------------------------------------------------------------------------- + + + + + average (electrostatic) potential at core + the test charge radii are 0.9757 0.6353 + (the norm of the test charge is 1.0000) + 1 -88.4748 2 -52.0480 3 -52.1785 4 -52.6183 + + + + E-fermi : 7.8828 XC(G=0): -12.0496 alpha+bet :-19.6080 + + + k-point 1 : 0.0000 0.0000 0.0000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7478 2.00000 + 5 -30.0216 2.00000 + 6 -29.9884 2.00000 + 7 -29.8113 2.00000 + 8 -2.0041 2.00000 + 9 4.4237 2.00000 + 10 4.8277 2.00000 + 11 6.4981 2.00000 + 12 6.9617 2.00000 + 13 8.1586 0.00010 + 14 8.8821 0.00000 + 15 8.9648 0.00000 + 16 9.0855 0.00000 + 17 13.1593 0.00000 + 18 14.6689 0.00000 + + k-point 2 : 0.0667 0.0000 0.0000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7478 2.00000 + 5 -30.0237 2.00000 + 6 -29.9882 2.00000 + 7 -29.8111 2.00000 + 8 -1.9535 2.00000 + 9 4.3336 2.00000 + 10 4.8001 2.00000 + 11 6.5232 2.00000 + 12 6.7555 2.00000 + 13 8.3862 0.00000 + 14 8.4025 0.00000 + 15 8.9705 0.00000 + 16 9.5855 0.00000 + 17 13.3605 0.00000 + 18 14.6572 0.00000 + + k-point 3 : 0.1333 0.0000 0.0000 + band No. band energies occupation + 1 -91.8814 2.00000 + 2 -91.4262 2.00000 + 3 -91.2911 2.00000 + 4 -65.7477 2.00000 + 5 -30.0297 2.00000 + 6 -29.9877 2.00000 + 7 -29.8105 2.00000 + 8 -1.8058 2.00000 + 9 4.0326 2.00000 + 10 4.7589 2.00000 + 11 6.3613 2.00000 + 12 6.6323 2.00000 + 13 7.8755 1.08202 + 14 8.8446 0.00000 + 15 8.9868 0.00000 + 16 10.1754 0.00000 + 17 14.0117 0.00000 + 18 14.7252 0.00000 + + k-point 4 : 0.2000 0.0000 0.0000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4258 2.00000 + 3 -91.2907 2.00000 + 4 -65.7475 2.00000 + 5 -30.0383 2.00000 + 6 -29.9868 2.00000 + 7 -29.8096 2.00000 + 8 -1.5620 2.00000 + 9 3.5407 2.00000 + 10 4.7314 2.00000 + 11 5.9618 2.00000 + 12 6.8672 2.00000 + 13 7.4063 2.00000 + 14 9.0110 0.00000 + 15 9.3490 0.00000 + 16 10.7563 0.00000 + 17 14.0913 0.00000 + 18 15.1642 0.00000 + + k-point 5 : 0.2667 0.0000 0.0000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7473 2.00000 + 5 -30.0481 2.00000 + 6 -29.9858 2.00000 + 7 -29.8086 2.00000 + 8 -1.2340 2.00000 + 9 2.9354 2.00000 + 10 4.7102 2.00000 + 11 5.6128 2.00000 + 12 7.0130 2.00000 + 13 7.2261 2.00000 + 14 9.0390 0.00000 + 15 9.8394 0.00000 + 16 11.3191 0.00000 + 17 14.0352 0.00000 + 18 15.4144 0.00000 + + k-point 6 : 0.3333 0.0000 0.0000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7471 2.00000 + 5 -30.0576 2.00000 + 6 -29.9848 2.00000 + 7 -29.8076 2.00000 + 8 -0.8326 2.00000 + 9 2.2914 2.00000 + 10 4.6917 2.00000 + 11 5.3376 2.00000 + 12 6.7081 2.00000 + 13 7.6717 1.99716 + 14 9.0662 0.00000 + 15 10.2804 0.00000 + 16 11.8535 0.00000 + 17 13.4527 0.00000 + 18 14.9300 0.00000 + + k-point 7 : 0.4000 0.0000 0.0000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7470 2.00000 + 5 -30.0651 2.00000 + 6 -29.9841 2.00000 + 7 -29.8068 2.00000 + 8 -0.3829 2.00000 + 9 1.6674 2.00000 + 10 4.6772 2.00000 + 11 5.1483 2.00000 + 12 6.5003 2.00000 + 13 8.1260 0.00058 + 14 9.0876 0.00000 + 15 10.6305 0.00000 + 16 12.3305 0.00000 + 17 12.9072 0.00000 + 18 15.1709 0.00000 + + k-point 8 : 0.4667 0.0000 0.0000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7470 2.00000 + 5 -30.0692 2.00000 + 6 -29.9837 2.00000 + 7 -29.8064 2.00000 + 8 0.0259 2.00000 + 9 1.1640 2.00000 + 10 4.6691 2.00000 + 11 5.0521 2.00000 + 12 6.3951 2.00000 + 13 8.4419 0.00000 + 14 9.0994 0.00000 + 15 10.8329 0.00000 + 16 12.5866 0.00000 + 17 12.7497 0.00000 + 18 15.0542 0.00000 + + k-point 9 : 0.0000 0.0667 0.0000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7478 2.00000 + 5 -30.0213 2.00000 + 6 -29.9915 2.00000 + 7 -29.8110 2.00000 + 8 -1.9529 2.00000 + 9 4.3901 2.00000 + 10 4.7755 2.00000 + 11 6.3415 2.00000 + 12 6.9388 2.00000 + 13 8.3265 0.00000 + 14 8.4311 0.00000 + 15 8.8898 0.00000 + 16 9.6264 0.00000 + 17 13.5937 0.00000 + 18 14.7192 0.00000 + + k-point 10 : 0.0667 0.0667 0.0000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4256 2.00000 + 3 -91.2905 2.00000 + 4 -65.7477 2.00000 + 5 -30.0234 2.00000 + 6 -29.9912 2.00000 + 7 -29.8108 2.00000 + 8 -1.9023 2.00000 + 9 4.3246 2.00000 + 10 4.7293 2.00000 + 11 6.2087 2.00000 + 12 6.9819 2.00000 + 13 8.2546 0.00000 + 14 8.4565 0.00000 + 15 8.8007 0.00000 + 16 9.9214 0.00000 + 17 13.6485 0.00000 + 18 14.6504 0.00000 + + k-point 11 : 0.1333 0.0667 0.0000 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7476 2.00000 + 5 -30.0294 2.00000 + 6 -29.9906 2.00000 + 7 -29.8102 2.00000 + 8 -1.7528 2.00000 + 9 4.0516 2.00000 + 10 4.6663 2.00000 + 11 5.9785 2.00000 + 12 7.0276 2.00000 + 13 7.8427 1.42889 + 14 8.7719 0.00000 + 15 8.8056 0.00000 + 16 10.4508 0.00000 + 17 14.3989 0.00000 + 18 15.1127 0.00000 + + k-point 12 : 0.2000 0.0667 0.0000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7474 2.00000 + 5 -30.0379 2.00000 + 6 -29.9898 2.00000 + 7 -29.8093 2.00000 + 8 -1.5097 2.00000 + 9 3.5587 2.00000 + 10 4.6450 2.00000 + 11 5.7408 2.00000 + 12 7.1387 2.00000 + 13 7.4085 2.00000 + 14 8.7921 0.00000 + 15 9.2640 0.00000 + 16 11.0130 0.00000 + 17 14.0760 0.00000 + 18 15.2142 0.00000 + + k-point 13 : 0.2667 0.0667 0.0000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4252 2.00000 + 3 -91.2903 2.00000 + 4 -65.7472 2.00000 + 5 -30.0478 2.00000 + 6 -29.9888 2.00000 + 7 -29.8083 2.00000 + 8 -1.1815 2.00000 + 9 2.9494 2.00000 + 10 4.6412 2.00000 + 11 5.4944 2.00000 + 12 7.0285 2.00000 + 13 7.3926 2.00000 + 14 8.8271 0.00000 + 15 9.7408 0.00000 + 16 11.5692 0.00000 + 17 13.8620 0.00000 + 18 14.8771 0.00000 + + k-point 14 : 0.3333 0.0667 0.0000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7471 2.00000 + 5 -30.0573 2.00000 + 6 -29.9878 2.00000 + 7 -29.8073 2.00000 + 8 -0.7815 2.00000 + 9 2.3062 2.00000 + 10 4.6436 2.00000 + 11 5.2669 2.00000 + 12 6.7293 2.00000 + 13 7.7653 1.90327 + 14 8.8638 0.00000 + 15 10.1806 0.00000 + 16 12.1051 0.00000 + 17 13.3952 0.00000 + 18 14.8765 0.00000 + + k-point 15 : 0.4000 0.0667 0.0000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7470 2.00000 + 5 -30.0648 2.00000 + 6 -29.9871 2.00000 + 7 -29.8065 2.00000 + 8 -0.3310 2.00000 + 9 1.6815 2.00000 + 10 4.6514 2.00000 + 11 5.0908 2.00000 + 12 6.5240 2.00000 + 13 8.1695 0.00005 + 14 8.8934 0.00000 + 15 10.5364 0.00000 + 16 12.5997 0.00000 + 17 12.8998 0.00000 + 18 15.5154 0.00000 + + k-point 16 : 0.4667 0.0667 0.0000 + band No. band energies occupation + 1 -91.8813 2.00000 + 2 -91.4263 2.00000 + 3 -91.2913 2.00000 + 4 -65.7469 2.00000 + 5 -30.0689 2.00000 + 6 -29.9867 2.00000 + 7 -29.8062 2.00000 + 8 0.0847 2.00000 + 9 1.1741 2.00000 + 10 4.6613 2.00000 + 11 4.9916 2.00000 + 12 6.4197 2.00000 + 13 8.4555 0.00000 + 14 8.9099 0.00000 + 15 10.7473 0.00000 + 16 12.4480 0.00000 + 17 12.9600 0.00000 + 18 14.8774 0.00000 + + k-point 17 : 0.0000 0.1333 0.0000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7476 2.00000 + 5 -30.0204 2.00000 + 6 -29.9998 2.00000 + 7 -29.8102 2.00000 + 8 -1.7946 2.00000 + 9 4.2094 2.00000 + 10 4.6772 2.00000 + 11 5.9995 2.00000 + 12 6.9517 2.00000 + 13 7.8739 1.09960 + 14 8.7041 0.00000 + 15 8.9110 0.00000 + 16 10.2112 0.00000 + 17 14.2659 0.00000 + 18 14.8795 0.00000 + + k-point 18 : 0.0667 0.1333 0.0000 + band No. band energies occupation + 1 -91.8814 2.00000 + 2 -91.4263 2.00000 + 3 -91.2912 2.00000 + 4 -65.7476 2.00000 + 5 -30.0226 2.00000 + 6 -29.9996 2.00000 + 7 -29.8099 2.00000 + 8 -1.7450 2.00000 + 9 4.2129 2.00000 + 10 4.5661 2.00000 + 11 5.8355 2.00000 + 12 7.1501 2.00000 + 13 7.8382 1.47145 + 14 8.7026 0.00000 + 15 8.7336 0.00000 + 16 10.4623 0.00000 + 17 13.8631 0.00000 + 18 14.8598 0.00000 + + k-point 19 : 0.1333 0.1333 0.0000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7475 2.00000 + 5 -30.0285 2.00000 + 6 -29.9991 2.00000 + 7 -29.8093 2.00000 + 8 -1.5968 2.00000 + 9 4.0989 2.00000 + 10 4.3522 2.00000 + 11 5.6129 2.00000 + 12 7.4328 2.00000 + 13 7.6870 1.99438 + 14 8.4839 0.00000 + 15 8.7940 0.00000 + 16 10.9754 0.00000 + 17 14.1029 0.00000 + 18 15.2039 0.00000 + + k-point 20 : 0.2000 0.1333 0.0000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7473 2.00000 + 5 -30.0371 2.00000 + 6 -29.9982 2.00000 + 7 -29.8084 2.00000 + 8 -1.3533 2.00000 + 9 3.5980 2.00000 + 10 4.3620 2.00000 + 11 5.4512 2.00000 + 12 7.3952 2.00000 + 13 7.5979 1.99994 + 14 8.3845 0.00000 + 15 9.0910 0.00000 + 16 11.5502 0.00000 + 17 14.7238 0.00000 + 18 15.9954 0.00000 + + k-point 21 : 0.2667 0.1333 0.0000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7471 2.00000 + 5 -30.0470 2.00000 + 6 -29.9972 2.00000 + 7 -29.8074 2.00000 + 8 -1.0273 2.00000 + 9 2.9802 2.00000 + 10 4.4181 2.00000 + 11 5.2968 2.00000 + 12 7.0683 2.00000 + 13 7.7534 1.93270 + 14 8.3858 0.00000 + 15 9.5100 0.00000 + 16 12.1157 0.00000 + 17 13.7017 0.00000 + 18 16.0755 0.00000 + + k-point 22 : 0.3333 0.1333 0.0000 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4260 2.00000 + 3 -91.2911 2.00000 + 4 -65.7470 2.00000 + 5 -30.0566 2.00000 + 6 -29.9963 2.00000 + 7 -29.8065 2.00000 + 8 -0.6301 2.00000 + 9 2.3392 2.00000 + 10 4.4826 2.00000 + 11 5.1281 2.00000 + 12 6.7895 2.00000 + 13 7.9927 0.12001 + 14 8.4203 0.00000 + 15 9.9342 0.00000 + 16 12.6686 0.00000 + 17 14.6904 0.00000 + 18 16.3415 0.00000 + + k-point 23 : 0.4000 0.1333 0.0000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7468 2.00000 + 5 -30.0640 2.00000 + 6 -29.9955 2.00000 + 7 -29.8057 2.00000 + 8 -0.1783 2.00000 + 9 1.7219 2.00000 + 10 4.5543 2.00000 + 11 4.9634 2.00000 + 12 6.5924 2.00000 + 13 8.2811 0.00000 + 14 8.4564 0.00000 + 15 10.2930 0.00000 + 16 12.6655 0.00000 + 17 13.2024 0.00000 + 18 15.4432 0.00000 + + k-point 24 : 0.4667 0.1333 0.0000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7467 2.00000 + 5 -30.0681 2.00000 + 6 -29.9951 2.00000 + 7 -29.8053 2.00000 + 8 0.2566 2.00000 + 9 1.2033 2.00000 + 10 4.6272 2.00000 + 11 4.8360 2.00000 + 12 6.4912 2.00000 + 13 8.4783 0.00000 + 14 8.4935 0.00000 + 15 10.5194 0.00000 + 16 12.2814 0.00000 + 17 13.6544 0.00000 + 18 14.8524 0.00000 + + k-point 25 : 0.0000 0.2000 0.0000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7473 2.00000 + 5 -30.0191 2.00000 + 6 -30.0121 2.00000 + 7 -29.8089 2.00000 + 8 -1.5376 2.00000 + 9 3.7788 2.00000 + 10 4.6305 2.00000 + 11 5.6232 2.00000 + 12 7.1210 2.00000 + 13 7.3732 2.00000 + 14 8.9428 0.00000 + 15 9.1443 0.00000 + 16 10.7771 0.00000 + 17 14.0933 0.00000 + 18 15.6423 0.00000 + + k-point 26 : 0.0667 0.2000 0.0000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7473 2.00000 + 5 -30.0213 2.00000 + 6 -30.0119 2.00000 + 7 -29.8086 2.00000 + 8 -1.4880 2.00000 + 9 3.7961 2.00000 + 10 4.5072 2.00000 + 11 5.5227 2.00000 + 12 7.3126 2.00000 + 13 7.3745 2.00000 + 14 8.7532 0.00000 + 15 9.0824 0.00000 + 16 11.0146 0.00000 + 17 13.9004 0.00000 + 18 15.4021 0.00000 + + k-point 27 : 0.1333 0.2000 0.0000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7472 2.00000 + 5 -30.0271 2.00000 + 6 -30.0113 2.00000 + 7 -29.8080 2.00000 + 8 -1.3394 2.00000 + 9 3.8230 2.00000 + 10 4.1696 2.00000 + 11 5.3756 2.00000 + 12 7.3639 2.00000 + 13 7.6935 1.99258 + 14 8.3844 0.00000 + 15 8.9738 0.00000 + 16 11.5333 0.00000 + 17 14.0395 0.00000 + 18 15.4431 0.00000 + + k-point 28 : 0.2000 0.2000 0.0000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7470 2.00000 + 5 -30.0358 2.00000 + 6 -30.0105 2.00000 + 7 -29.8072 2.00000 + 8 -1.1004 2.00000 + 9 3.5412 2.00000 + 10 4.0159 2.00000 + 11 5.2627 2.00000 + 12 7.2896 2.00000 + 13 7.9988 0.10080 + 14 8.0788 0.00557 + 15 9.0073 0.00000 + 16 12.1244 0.00000 + 17 13.7520 0.00000 + 18 16.7152 0.00000 + + k-point 29 : 0.2667 0.2000 0.0000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7468 2.00000 + 5 -30.0459 2.00000 + 6 -30.0096 2.00000 + 7 -29.8061 2.00000 + 8 -0.7790 2.00000 + 9 2.9721 2.00000 + 10 4.1076 2.00000 + 11 5.1462 2.00000 + 12 7.1030 2.00000 + 13 7.9500 0.34166 + 14 8.1422 0.00024 + 15 9.2822 0.00000 + 16 12.7110 0.00000 + 17 13.3886 0.00000 + 18 15.6710 0.00000 + + k-point 30 : 0.3333 0.2000 0.0000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7467 2.00000 + 5 -30.0554 2.00000 + 6 -30.0087 2.00000 + 7 -29.8053 2.00000 + 8 -0.3863 2.00000 + 9 2.3710 2.00000 + 10 4.2299 2.00000 + 11 5.0035 2.00000 + 12 6.8764 2.00000 + 13 7.9435 0.39079 + 14 8.2650 0.00000 + 15 9.6513 0.00000 + 16 12.8907 0.00000 + 17 13.2663 0.00000 + 18 15.5200 0.00000 + + k-point 31 : 0.4000 0.2000 0.0000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7465 2.00000 + 5 -30.0629 2.00000 + 6 -30.0079 2.00000 + 7 -29.8045 2.00000 + 8 0.0623 2.00000 + 9 1.7821 2.00000 + 10 4.3653 2.00000 + 11 4.8399 2.00000 + 12 6.6971 2.00000 + 13 7.9722 0.20622 + 14 8.4241 0.00000 + 15 9.9878 0.00000 + 16 12.3795 0.00000 + 17 13.7744 0.00000 + 18 15.4918 0.00000 + + k-point 32 : 0.4667 0.2000 0.0000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7464 2.00000 + 5 -30.0669 2.00000 + 6 -30.0075 2.00000 + 7 -29.8040 2.00000 + 8 0.5200 2.00000 + 9 1.2543 2.00000 + 10 4.5122 2.00000 + 11 4.6723 2.00000 + 12 6.6015 2.00000 + 13 7.9946 0.11393 + 14 8.5494 0.00000 + 15 10.2089 0.00000 + 16 12.0275 0.00000 + 17 14.4133 0.00000 + 18 15.6167 0.00000 + + k-point 33 : 0.0000 0.2667 0.0000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2908 2.00000 + 4 -65.7470 2.00000 + 5 -30.0263 2.00000 + 6 -30.0177 2.00000 + 7 -29.8073 2.00000 + 8 -1.1910 2.00000 + 9 3.1811 2.00000 + 10 4.6122 2.00000 + 11 5.2814 2.00000 + 12 6.9503 2.00000 + 13 7.4746 2.00000 + 14 8.9798 0.00000 + 15 9.5814 0.00000 + 16 11.3283 0.00000 + 17 13.6460 0.00000 + 18 15.5948 0.00000 + + k-point 34 : 0.0667 0.2667 0.0000 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7470 2.00000 + 5 -30.0261 2.00000 + 6 -30.0198 2.00000 + 7 -29.8072 2.00000 + 8 -1.1414 2.00000 + 9 3.1889 2.00000 + 10 4.5083 2.00000 + 11 5.2434 2.00000 + 12 6.9639 2.00000 + 13 7.6097 1.99989 + 14 8.7962 0.00000 + 15 9.4992 0.00000 + 16 11.5568 0.00000 + 17 13.6608 0.00000 + 18 15.2250 0.00000 + + k-point 35 : 0.1333 0.2667 0.0000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7469 2.00000 + 5 -30.0257 2.00000 + 6 -30.0255 2.00000 + 7 -29.8066 2.00000 + 8 -0.9957 2.00000 + 9 3.1942 2.00000 + 10 4.2418 2.00000 + 11 5.1757 2.00000 + 12 7.0004 2.00000 + 13 7.9287 0.51588 + 14 8.4011 0.00000 + 15 9.3080 0.00000 + 16 12.0788 0.00000 + 17 13.5578 0.00000 + 18 15.2519 0.00000 + + k-point 36 : 0.2000 0.2667 0.0000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7467 2.00000 + 5 -30.0345 2.00000 + 6 -30.0247 2.00000 + 7 -29.8057 2.00000 + 8 -0.7602 2.00000 + 9 3.1062 2.00000 + 10 3.9790 2.00000 + 11 5.1030 2.00000 + 12 7.0431 2.00000 + 13 7.9901 0.12911 + 14 8.2728 0.00000 + 15 9.1426 0.00000 + 16 12.6730 0.00000 + 17 13.3289 0.00000 + 18 15.7896 0.00000 + + k-point 37 : 0.2667 0.2667 0.0000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7465 2.00000 + 5 -30.0445 2.00000 + 6 -30.0237 2.00000 + 7 -29.8047 2.00000 + 8 -0.4475 2.00000 + 9 2.8028 2.00000 + 10 3.9098 2.00000 + 11 5.0079 2.00000 + 12 7.0489 2.00000 + 13 7.6784 1.99615 + 14 8.4720 0.00000 + 15 9.1821 0.00000 + 16 12.9563 0.00000 + 17 13.5965 0.00000 + 18 17.2388 0.00000 + + k-point 38 : 0.3333 0.2667 0.0000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7463 2.00000 + 5 -30.0541 2.00000 + 6 -30.0228 2.00000 + 7 -29.8038 2.00000 + 8 -0.0679 2.00000 + 9 2.3493 2.00000 + 10 3.9944 2.00000 + 11 4.8777 2.00000 + 12 6.9573 2.00000 + 13 7.5462 2.00000 + 14 8.5230 0.00000 + 15 9.4304 0.00000 + 16 12.4873 0.00000 + 17 13.6262 0.00000 + 18 16.0306 0.00000 + + k-point 39 : 0.4000 0.2667 0.0000 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4246 2.00000 + 3 -91.2897 2.00000 + 4 -65.7461 2.00000 + 5 -30.0615 2.00000 + 6 -30.0221 2.00000 + 7 -29.8030 2.00000 + 8 0.3633 2.00000 + 9 1.8487 2.00000 + 10 4.1415 2.00000 + 11 4.7166 2.00000 + 12 6.8214 2.00000 + 13 7.5399 2.00000 + 14 8.5695 0.00000 + 15 9.7014 0.00000 + 16 12.0422 0.00000 + 17 13.9068 0.00000 + 18 16.1837 0.00000 + + k-point 40 : 0.4667 0.2667 0.0000 + band No. band energies occupation + 1 -91.8795 2.00000 + 2 -91.4245 2.00000 + 3 -91.2895 2.00000 + 4 -65.7461 2.00000 + 5 -30.0656 2.00000 + 6 -30.0217 2.00000 + 7 -29.8026 2.00000 + 8 0.8283 2.00000 + 9 1.3477 2.00000 + 10 4.3004 2.00000 + 11 4.5506 2.00000 + 12 6.7365 2.00000 + 13 7.5567 2.00000 + 14 8.6157 0.00000 + 15 9.8832 0.00000 + 16 11.7458 0.00000 + 17 14.0429 0.00000 + 18 16.0539 0.00000 + + k-point 41 : 0.0000 0.3333 0.0000 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2910 2.00000 + 4 -65.7468 2.00000 + 5 -30.0398 2.00000 + 6 -30.0163 2.00000 + 7 -29.8059 2.00000 + 8 -0.7675 2.00000 + 9 2.5196 2.00000 + 10 4.5999 2.00000 + 11 5.0061 2.00000 + 12 6.6208 2.00000 + 13 7.9708 0.21318 + 14 9.0157 0.00000 + 15 9.9775 0.00000 + 16 11.8614 0.00000 + 17 13.1993 0.00000 + 18 15.3650 0.00000 + + k-point 42 : 0.0667 0.3333 0.0000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7467 2.00000 + 5 -30.0395 2.00000 + 6 -30.0184 2.00000 + 7 -29.8057 2.00000 + 8 -0.7188 2.00000 + 9 2.5262 2.00000 + 10 4.5193 2.00000 + 11 4.9986 2.00000 + 12 6.6392 2.00000 + 13 8.0523 0.01653 + 14 8.8426 0.00000 + 15 9.8894 0.00000 + 16 12.0868 0.00000 + 17 13.1663 0.00000 + 18 16.1220 0.00000 + + k-point 43 : 0.1333 0.3333 0.0000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7466 2.00000 + 5 -30.0390 2.00000 + 6 -30.0243 2.00000 + 7 -29.8052 2.00000 + 8 -0.5758 2.00000 + 9 2.5363 2.00000 + 10 4.3168 2.00000 + 11 4.9744 2.00000 + 12 6.6919 2.00000 + 13 8.2598 0.00000 + 14 8.4520 0.00000 + 15 9.6694 0.00000 + 16 12.6304 0.00000 + 17 13.0732 0.00000 + 18 15.6443 0.00000 + + k-point 44 : 0.2000 0.3333 0.0000 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2911 2.00000 + 4 -65.7465 2.00000 + 5 -30.0382 2.00000 + 6 -30.0332 2.00000 + 7 -29.8043 2.00000 + 8 -0.3483 2.00000 + 9 2.5183 2.00000 + 10 4.0832 2.00000 + 11 4.9265 2.00000 + 12 6.7709 2.00000 + 13 8.0186 0.05476 + 14 8.5126 0.00000 + 15 9.4183 0.00000 + 16 12.8043 0.00000 + 17 13.1910 0.00000 + 18 15.7181 0.00000 + + k-point 45 : 0.2667 0.3333 0.0000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7462 2.00000 + 5 -30.0432 2.00000 + 6 -30.0373 2.00000 + 7 -29.8034 2.00000 + 8 -0.0478 2.00000 + 9 2.4216 2.00000 + 10 3.9190 2.00000 + 11 4.8440 2.00000 + 12 6.8610 2.00000 + 13 7.6333 1.99958 + 14 8.7054 0.00000 + 15 9.2656 0.00000 + 16 12.4562 0.00000 + 17 13.6001 0.00000 + 18 16.2032 0.00000 + + k-point 46 : 0.3333 0.3333 0.0000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7460 2.00000 + 5 -30.0528 2.00000 + 6 -30.0364 2.00000 + 7 -29.8024 2.00000 + 8 0.3045 2.00000 + 9 2.2066 2.00000 + 10 3.8869 2.00000 + 11 4.7195 2.00000 + 12 6.9324 2.00000 + 13 7.3479 2.00000 + 14 8.7335 0.00000 + 15 9.3281 0.00000 + 16 12.0629 0.00000 + 17 13.7569 0.00000 + 18 16.5710 0.00000 + + k-point 47 : 0.4000 0.3333 0.0000 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7459 2.00000 + 5 -30.0602 2.00000 + 6 -30.0357 2.00000 + 7 -29.8017 2.00000 + 8 0.6908 2.00000 + 9 1.8937 2.00000 + 10 3.9664 2.00000 + 11 4.5594 2.00000 + 12 6.9277 2.00000 + 13 7.2186 2.00000 + 14 8.6985 0.00000 + 15 9.4867 0.00000 + 16 11.7099 0.00000 + 17 13.7542 0.00000 + 18 16.7032 0.00000 + + k-point 48 : 0.4667 0.3333 0.0000 + band No. band energies occupation + 1 -91.8786 2.00000 + 2 -91.4236 2.00000 + 3 -91.2886 2.00000 + 4 -65.7457 2.00000 + 5 -30.0642 2.00000 + 6 -30.0352 2.00000 + 7 -29.8012 2.00000 + 8 1.0768 2.00000 + 9 1.5402 2.00000 + 10 4.0958 2.00000 + 11 4.3989 2.00000 + 12 6.8746 2.00000 + 13 7.2086 2.00000 + 14 8.6828 0.00000 + 15 9.6000 0.00000 + 16 11.4903 0.00000 + 17 13.7171 0.00000 + 18 16.6030 0.00000 + + k-point 49 : 0.0000 0.4000 0.0000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7465 2.00000 + 5 -30.0502 2.00000 + 6 -30.0152 2.00000 + 7 -29.8048 2.00000 + 8 -0.2969 2.00000 + 9 1.8722 2.00000 + 10 4.5904 2.00000 + 11 4.8147 2.00000 + 12 6.3956 2.00000 + 13 8.5207 0.00000 + 14 9.0442 0.00000 + 15 10.2923 0.00000 + 16 12.3631 0.00000 + 17 12.6799 0.00000 + 18 15.4633 0.00000 + + k-point 50 : 0.0667 0.4000 0.0000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7465 2.00000 + 5 -30.0501 2.00000 + 6 -30.0173 2.00000 + 7 -29.8046 2.00000 + 8 -0.2476 2.00000 + 9 1.8793 2.00000 + 10 4.5376 2.00000 + 11 4.8080 2.00000 + 12 6.4159 2.00000 + 13 8.5593 0.00000 + 14 8.8804 0.00000 + 15 10.2052 0.00000 + 16 12.5854 0.00000 + 17 12.5895 0.00000 + 18 14.7751 0.00000 + + k-point 51 : 0.1333 0.4000 0.0000 + band No. band energies occupation + 1 -91.8814 2.00000 + 2 -91.4264 2.00000 + 3 -91.2914 2.00000 + 4 -65.7464 2.00000 + 5 -30.0496 2.00000 + 6 -30.0233 2.00000 + 7 -29.8041 2.00000 + 8 -0.1045 2.00000 + 9 1.8964 2.00000 + 10 4.3983 2.00000 + 11 4.7846 2.00000 + 12 6.4746 2.00000 + 13 8.5014 0.00000 + 14 8.6596 0.00000 + 15 9.9796 0.00000 + 16 12.4726 0.00000 + 17 13.1496 0.00000 + 18 15.1815 0.00000 + + k-point 52 : 0.2000 0.4000 0.0000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2908 2.00000 + 4 -65.7462 2.00000 + 5 -30.0487 2.00000 + 6 -30.0321 2.00000 + 7 -29.8032 2.00000 + 8 0.1204 2.00000 + 9 1.9197 2.00000 + 10 4.2177 2.00000 + 11 4.7361 2.00000 + 12 6.5646 2.00000 + 13 8.0702 0.00802 + 14 8.7844 0.00000 + 15 9.6958 0.00000 + 16 12.2586 0.00000 + 17 13.7021 0.00000 + 18 15.4427 0.00000 + + k-point 53 : 0.2667 0.4000 0.0000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7460 2.00000 + 5 -30.0478 2.00000 + 6 -30.0422 2.00000 + 7 -29.8023 2.00000 + 8 0.4035 2.00000 + 9 1.9363 2.00000 + 10 4.0468 2.00000 + 11 4.6515 2.00000 + 12 6.6739 2.00000 + 13 7.6760 1.99654 + 14 8.8822 0.00000 + 15 9.4477 0.00000 + 16 11.9748 0.00000 + 17 13.8742 0.00000 + 18 16.0112 0.00000 + + k-point 54 : 0.3333 0.4000 0.0000 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4248 2.00000 + 3 -91.2897 2.00000 + 4 -65.7458 2.00000 + 5 -30.0517 2.00000 + 6 -30.0469 2.00000 + 7 -29.8013 2.00000 + 8 0.7108 2.00000 + 9 1.9297 2.00000 + 10 3.9336 2.00000 + 11 4.5238 2.00000 + 12 6.7857 2.00000 + 13 7.3592 2.00000 + 14 8.8793 0.00000 + 15 9.3398 0.00000 + 16 11.6821 0.00000 + 17 13.7440 0.00000 + 18 16.5307 0.00000 + + k-point 55 : 0.4000 0.4000 0.0000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7456 2.00000 + 5 -30.0593 2.00000 + 6 -30.0463 2.00000 + 7 -29.8006 2.00000 + 8 0.9965 2.00000 + 9 1.8877 2.00000 + 10 3.9039 2.00000 + 11 4.3616 2.00000 + 12 6.8809 2.00000 + 13 7.1374 2.00000 + 14 8.7963 0.00000 + 15 9.3615 0.00000 + 16 11.4387 0.00000 + 17 13.5583 0.00000 + 18 16.9470 0.00000 + + k-point 56 : 0.4667 0.4000 0.0000 + band No. band energies occupation + 1 -91.8787 2.00000 + 2 -91.4238 2.00000 + 3 -91.2887 2.00000 + 4 -65.7455 2.00000 + 5 -30.0632 2.00000 + 6 -30.0459 2.00000 + 7 -29.8002 2.00000 + 8 1.1916 2.00000 + 9 1.8308 2.00000 + 10 3.9520 2.00000 + 11 4.2094 2.00000 + 12 6.9473 2.00000 + 13 7.0123 2.00000 + 14 8.7381 0.00000 + 15 9.3978 0.00000 + 16 11.2989 0.00000 + 17 13.4437 0.00000 + 18 16.5925 0.00000 + + k-point 57 : 0.0000 0.4667 0.0000 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7463 2.00000 + 5 -30.0559 2.00000 + 6 -30.0145 2.00000 + 7 -29.8042 2.00000 + 8 0.1293 2.00000 + 9 1.3542 2.00000 + 10 4.5849 2.00000 + 11 4.7168 2.00000 + 12 6.2814 2.00000 + 13 8.9385 0.00000 + 14 9.0598 0.00000 + 15 10.4726 0.00000 + 16 12.1850 0.00000 + 17 12.8255 0.00000 + 18 15.1774 0.00000 + + k-point 58 : 0.0667 0.4667 0.0000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7463 2.00000 + 5 -30.0557 2.00000 + 6 -30.0167 2.00000 + 7 -29.8040 2.00000 + 8 0.1836 2.00000 + 9 1.3565 2.00000 + 10 4.5671 2.00000 + 11 4.6874 2.00000 + 12 6.3024 2.00000 + 13 8.9015 0.00000 + 14 8.9469 0.00000 + 15 10.3933 0.00000 + 16 12.1353 0.00000 + 17 13.0125 0.00000 + 18 15.3429 0.00000 + + k-point 59 : 0.1333 0.4667 0.0000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7462 2.00000 + 5 -30.0552 2.00000 + 6 -30.0227 2.00000 + 7 -29.8035 2.00000 + 8 0.3435 2.00000 + 9 1.3655 2.00000 + 10 4.4967 2.00000 + 11 4.6242 2.00000 + 12 6.3631 2.00000 + 13 8.5307 0.00000 + 14 8.9685 0.00000 + 15 10.1791 0.00000 + 16 12.0342 0.00000 + 17 13.5893 0.00000 + 18 16.0045 0.00000 + + k-point 60 : 0.2000 0.4667 0.0000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7460 2.00000 + 5 -30.0544 2.00000 + 6 -30.0315 2.00000 + 7 -29.8026 2.00000 + 8 0.5914 2.00000 + 9 1.3832 2.00000 + 10 4.3674 2.00000 + 11 4.5524 2.00000 + 12 6.4562 2.00000 + 13 8.1044 0.00172 + 14 8.9932 0.00000 + 15 9.8884 0.00000 + 16 11.8622 0.00000 + 17 14.2861 0.00000 + 18 15.0487 0.00000 + + k-point 61 : 0.2667 0.4667 0.0000 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7459 2.00000 + 5 -30.0535 2.00000 + 6 -30.0416 2.00000 + 7 -29.8017 2.00000 + 8 0.8833 2.00000 + 9 1.4308 2.00000 + 10 4.2192 2.00000 + 11 4.4522 2.00000 + 12 6.5696 2.00000 + 13 7.7127 1.98385 + 14 9.0016 0.00000 + 15 9.5963 0.00000 + 16 11.6488 0.00000 + 17 14.0297 0.00000 + 18 15.9577 0.00000 + + k-point 62 : 0.3333 0.4667 0.0000 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7457 2.00000 + 5 -30.0528 2.00000 + 6 -30.0512 2.00000 + 7 -29.8008 2.00000 + 8 1.1157 2.00000 + 9 1.5761 2.00000 + 10 4.0844 2.00000 + 11 4.3103 2.00000 + 12 6.6854 2.00000 + 13 7.3974 2.00000 + 14 8.9559 0.00000 + 15 9.3894 0.00000 + 16 11.4424 0.00000 + 17 13.7001 0.00000 + 18 16.5151 0.00000 + + k-point 63 : 0.4000 0.4667 0.0000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7455 2.00000 + 5 -30.0587 2.00000 + 6 -30.0521 2.00000 + 7 -29.8000 2.00000 + 8 1.2081 2.00000 + 9 1.8399 2.00000 + 10 3.9754 2.00000 + 11 4.1492 2.00000 + 12 6.7823 2.00000 + 13 7.1786 2.00000 + 14 8.8498 0.00000 + 15 9.3109 0.00000 + 16 11.2830 0.00000 + 17 13.4354 0.00000 + 18 16.6304 0.00000 + + k-point 64 : 0.4667 0.4667 0.0000 + band No. band energies occupation + 1 -91.8793 2.00000 + 2 -91.4243 2.00000 + 3 -91.2893 2.00000 + 4 -65.7454 2.00000 + 5 -30.0627 2.00000 + 6 -30.0518 2.00000 + 7 -29.7996 2.00000 + 8 1.2328 2.00000 + 9 2.0507 2.00000 + 10 3.8985 2.00000 + 11 4.0417 2.00000 + 12 6.8389 2.00000 + 13 7.0660 2.00000 + 14 8.7690 0.00000 + 15 9.2970 0.00000 + 16 11.2437 0.00000 + 17 14.1131 0.00000 + 18 18.0681 0.00000 + + k-point 65 : 0.0000 0.0000 0.0667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7474 2.00000 + 5 -30.0205 2.00000 + 6 -29.9874 2.00000 + 7 -29.8211 2.00000 + 8 -1.9380 2.00000 + 9 4.4295 2.00000 + 10 4.8508 2.00000 + 11 6.3792 2.00000 + 12 6.8138 2.00000 + 13 8.1771 0.00003 + 14 8.8386 0.00000 + 15 8.9434 0.00000 + 16 9.0466 0.00000 + 17 13.4689 0.00000 + 18 14.8465 0.00000 + + k-point 66 : 0.0667 0.0000 0.0667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7474 2.00000 + 5 -30.0226 2.00000 + 6 -29.9872 2.00000 + 7 -29.8209 2.00000 + 8 -1.8859 2.00000 + 9 4.3438 2.00000 + 10 4.8274 2.00000 + 11 6.3656 2.00000 + 12 6.6651 2.00000 + 13 8.2366 0.00000 + 14 8.4561 0.00000 + 15 9.1702 0.00000 + 16 9.3749 0.00000 + 17 14.6979 0.00000 + 18 15.1035 0.00000 + + k-point 67 : 0.1333 0.0000 0.0667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7473 2.00000 + 5 -30.0286 2.00000 + 6 -29.9866 2.00000 + 7 -29.8203 2.00000 + 8 -1.7375 2.00000 + 9 4.0528 2.00000 + 10 4.7878 2.00000 + 11 6.3364 2.00000 + 12 6.3830 2.00000 + 13 8.0619 0.01132 + 14 8.3336 0.00000 + 15 9.5014 0.00000 + 16 9.9115 0.00000 + 17 14.1815 0.00000 + 18 14.9183 0.00000 + + k-point 68 : 0.2000 0.0000 0.0667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7471 2.00000 + 5 -30.0372 2.00000 + 6 -29.9857 2.00000 + 7 -29.8195 2.00000 + 8 -1.4939 2.00000 + 9 3.5647 2.00000 + 10 4.7595 2.00000 + 11 5.9723 2.00000 + 12 6.4743 2.00000 + 13 7.7497 1.94010 + 14 8.4147 0.00000 + 15 9.9423 0.00000 + 16 10.4794 0.00000 + 17 14.3282 0.00000 + 18 15.0758 0.00000 + + k-point 69 : 0.2667 0.0000 0.0667 + band No. band energies occupation + 1 -91.8796 2.00000 + 2 -91.4244 2.00000 + 3 -91.2894 2.00000 + 4 -65.7469 2.00000 + 5 -30.0470 2.00000 + 6 -29.9846 2.00000 + 7 -29.8185 2.00000 + 8 -1.1660 2.00000 + 9 2.9634 2.00000 + 10 4.7389 2.00000 + 11 5.6413 2.00000 + 12 6.5416 2.00000 + 13 7.6483 1.99909 + 14 8.4831 0.00000 + 15 10.4090 0.00000 + 16 11.0447 0.00000 + 17 15.0305 0.00000 + 18 15.6832 0.00000 + + k-point 70 : 0.3333 0.0000 0.0667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7468 2.00000 + 5 -30.0566 2.00000 + 6 -29.9837 2.00000 + 7 -29.8176 2.00000 + 8 -0.7654 2.00000 + 9 2.3210 2.00000 + 10 4.7218 2.00000 + 11 5.3752 2.00000 + 12 6.4754 2.00000 + 13 7.8474 1.38302 + 14 8.5405 0.00000 + 15 10.8486 0.00000 + 16 11.5771 0.00000 + 17 13.5613 0.00000 + 18 15.1290 0.00000 + + k-point 71 : 0.4000 0.0000 0.0667 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2911 2.00000 + 4 -65.7467 2.00000 + 5 -30.0642 2.00000 + 6 -29.9830 2.00000 + 7 -29.8168 2.00000 + 8 -0.3160 2.00000 + 9 1.6951 2.00000 + 10 4.7092 2.00000 + 11 5.1905 2.00000 + 12 6.3590 2.00000 + 13 8.1987 0.00001 + 14 8.5831 0.00000 + 15 11.2134 0.00000 + 16 12.0304 0.00000 + 17 12.9684 0.00000 + 18 14.5851 0.00000 + + k-point 72 : 0.4667 0.0000 0.0667 + band No. band energies occupation + 1 -91.8817 2.00000 + 2 -91.4266 2.00000 + 3 -91.2917 2.00000 + 4 -65.7467 2.00000 + 5 -30.0683 2.00000 + 6 -29.9826 2.00000 + 7 -29.8165 2.00000 + 8 0.1015 2.00000 + 9 1.1853 2.00000 + 10 4.7026 2.00000 + 11 5.0962 2.00000 + 12 6.2848 2.00000 + 13 8.4738 0.00000 + 14 8.6059 0.00000 + 15 11.4369 0.00000 + 16 12.3087 0.00000 + 17 12.6173 0.00000 + 18 14.4394 0.00000 + + k-point 73 : 0.0000 0.0667 0.0667 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7474 2.00000 + 5 -30.0202 2.00000 + 6 -29.9904 2.00000 + 7 -29.8208 2.00000 + 8 -1.8853 2.00000 + 9 4.3956 2.00000 + 10 4.8088 2.00000 + 11 6.2602 2.00000 + 12 6.7341 2.00000 + 13 8.1965 0.00001 + 14 8.5252 0.00000 + 15 9.0697 0.00000 + 16 9.4119 0.00000 + 17 13.8616 0.00000 + 18 15.2576 0.00000 + + k-point 74 : 0.0667 0.0667 0.0667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7473 2.00000 + 5 -30.0223 2.00000 + 6 -29.9901 2.00000 + 7 -29.8206 2.00000 + 8 -1.8347 2.00000 + 9 4.3325 2.00000 + 10 4.7685 2.00000 + 11 6.1044 2.00000 + 12 6.8162 2.00000 + 13 7.9710 0.21228 + 14 8.7574 0.00000 + 15 8.9151 0.00000 + 16 9.6966 0.00000 + 17 13.8495 0.00000 + 18 14.8611 0.00000 + + k-point 75 : 0.1333 0.0667 0.0667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7473 2.00000 + 5 -30.0283 2.00000 + 6 -29.9896 2.00000 + 7 -29.8200 2.00000 + 8 -1.6854 2.00000 + 9 4.0715 2.00000 + 10 4.7055 2.00000 + 11 5.8924 2.00000 + 12 6.8149 2.00000 + 13 7.7859 1.82917 + 14 8.5439 0.00000 + 15 9.2979 0.00000 + 16 10.1790 0.00000 + 17 14.4429 0.00000 + 18 14.9450 0.00000 + + k-point 76 : 0.2000 0.0667 0.0667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7471 2.00000 + 5 -30.0369 2.00000 + 6 -29.9887 2.00000 + 7 -29.8192 2.00000 + 8 -1.4415 2.00000 + 9 3.5859 2.00000 + 10 4.6793 2.00000 + 11 5.7131 2.00000 + 12 6.7163 2.00000 + 13 7.7038 1.98863 + 14 8.3889 0.00000 + 15 9.7722 0.00000 + 16 10.7211 0.00000 + 17 14.3964 0.00000 + 18 15.0087 0.00000 + + k-point 77 : 0.2667 0.0667 0.0667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7469 2.00000 + 5 -30.0468 2.00000 + 6 -29.9877 2.00000 + 7 -29.8182 2.00000 + 8 -1.1142 2.00000 + 9 2.9798 2.00000 + 10 4.6736 2.00000 + 11 5.5108 2.00000 + 12 6.6199 2.00000 + 13 7.7221 1.97696 + 14 8.3636 0.00000 + 15 10.2499 0.00000 + 16 11.2691 0.00000 + 17 14.1095 0.00000 + 18 16.1309 0.00000 + + k-point 78 : 0.3333 0.0667 0.0667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7467 2.00000 + 5 -30.0564 2.00000 + 6 -29.9867 2.00000 + 7 -29.8173 2.00000 + 8 -0.7140 2.00000 + 9 2.3366 2.00000 + 10 4.6761 2.00000 + 11 5.3013 2.00000 + 12 6.5008 2.00000 + 13 7.9230 0.56991 + 14 8.3953 0.00000 + 15 10.6940 0.00000 + 16 11.7823 0.00000 + 17 13.5487 0.00000 + 18 15.0697 0.00000 + + k-point 79 : 0.4000 0.0667 0.0667 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7466 2.00000 + 5 -30.0639 2.00000 + 6 -29.9860 2.00000 + 7 -29.8166 2.00000 + 8 -0.2628 2.00000 + 9 1.7117 2.00000 + 10 4.6852 2.00000 + 11 5.1307 2.00000 + 12 6.3817 2.00000 + 13 8.2332 0.00000 + 14 8.4366 0.00000 + 15 11.0609 0.00000 + 16 12.1858 0.00000 + 17 13.0336 0.00000 + 18 14.9369 0.00000 + + k-point 80 : 0.4667 0.0667 0.0667 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4262 2.00000 + 3 -91.2912 2.00000 + 4 -65.7466 2.00000 + 5 -30.0680 2.00000 + 6 -29.9856 2.00000 + 7 -29.8162 2.00000 + 8 0.1614 2.00000 + 9 1.1971 2.00000 + 10 4.6963 2.00000 + 11 5.0329 2.00000 + 12 6.3108 2.00000 + 13 8.4305 0.00000 + 14 8.5088 0.00000 + 15 11.2905 0.00000 + 16 12.2531 0.00000 + 17 13.6523 0.00000 + 18 15.0165 0.00000 + + k-point 81 : 0.0000 0.1333 0.0667 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7472 2.00000 + 5 -30.0193 2.00000 + 6 -29.9987 2.00000 + 7 -29.8199 2.00000 + 8 -1.7259 2.00000 + 9 4.2208 2.00000 + 10 4.7206 2.00000 + 11 5.9736 2.00000 + 12 6.6199 2.00000 + 13 8.1432 0.00023 + 14 8.2436 0.00000 + 15 9.3875 0.00000 + 16 9.9330 0.00000 + 17 14.2783 0.00000 + 18 14.9326 0.00000 + + k-point 82 : 0.0667 0.1333 0.0667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4253 2.00000 + 3 -91.2904 2.00000 + 4 -65.7472 2.00000 + 5 -30.0214 2.00000 + 6 -29.9985 2.00000 + 7 -29.8197 2.00000 + 8 -1.6767 2.00000 + 9 4.2223 2.00000 + 10 4.6204 2.00000 + 11 5.7734 2.00000 + 12 6.8479 2.00000 + 13 7.7918 1.80201 + 14 8.5549 0.00000 + 15 9.2077 0.00000 + 16 10.1836 0.00000 + 17 14.6923 0.00000 + 18 15.0199 0.00000 + + k-point 83 : 0.1333 0.1333 0.0667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4255 2.00000 + 3 -91.2906 2.00000 + 4 -65.7471 2.00000 + 5 -30.0274 2.00000 + 6 -29.9980 2.00000 + 7 -29.8192 2.00000 + 8 -1.5287 2.00000 + 9 4.1177 2.00000 + 10 4.4062 2.00000 + 11 5.5506 2.00000 + 12 7.1483 2.00000 + 13 7.4218 2.00000 + 14 8.7268 0.00000 + 15 9.0973 0.00000 + 16 10.6622 0.00000 + 17 14.4498 0.00000 + 18 15.1810 0.00000 + + k-point 84 : 0.2000 0.1333 0.0667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7469 2.00000 + 5 -30.0361 2.00000 + 6 -29.9971 2.00000 + 7 -29.8183 2.00000 + 8 -1.2856 2.00000 + 9 3.6350 2.00000 + 10 4.3984 2.00000 + 11 5.4250 2.00000 + 12 6.9924 2.00000 + 13 7.5022 2.00000 + 14 8.4908 0.00000 + 15 9.4686 0.00000 + 16 11.2024 0.00000 + 17 14.4000 0.00000 + 18 15.1855 0.00000 + + k-point 85 : 0.2667 0.1333 0.0667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7467 2.00000 + 5 -30.0460 2.00000 + 6 -29.9962 2.00000 + 7 -29.8174 2.00000 + 8 -0.9603 2.00000 + 9 3.0182 2.00000 + 10 4.4522 2.00000 + 11 5.3087 2.00000 + 12 6.7413 2.00000 + 13 7.7217 1.97728 + 14 8.3005 0.00000 + 15 9.9206 0.00000 + 16 11.7328 0.00000 + 17 13.9753 0.00000 + 18 15.3830 0.00000 + + k-point 86 : 0.3333 0.1333 0.0667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7465 2.00000 + 5 -30.0556 2.00000 + 6 -29.9952 2.00000 + 7 -29.8164 2.00000 + 8 -0.5617 2.00000 + 9 2.3790 2.00000 + 10 4.5170 2.00000 + 11 5.1603 2.00000 + 12 6.5656 2.00000 + 13 7.9200 0.59883 + 14 8.2560 0.00000 + 15 10.3547 0.00000 + 16 12.1577 0.00000 + 17 13.5549 0.00000 + 18 17.9977 0.00000 + + k-point 87 : 0.4000 0.1333 0.0667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7464 2.00000 + 5 -30.0631 2.00000 + 6 -29.9945 2.00000 + 7 -29.8157 2.00000 + 8 -0.1093 2.00000 + 9 1.7590 2.00000 + 10 4.5897 2.00000 + 11 5.0004 2.00000 + 12 6.4473 2.00000 + 13 8.0381 0.02804 + 14 8.3802 0.00000 + 15 10.7217 0.00000 + 16 12.2601 0.00000 + 17 13.3666 0.00000 + 18 15.0205 0.00000 + + k-point 88 : 0.4667 0.1333 0.0667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7464 2.00000 + 5 -30.0672 2.00000 + 6 -29.9941 2.00000 + 7 -29.8153 2.00000 + 8 0.3334 2.00000 + 9 1.2318 2.00000 + 10 4.6652 2.00000 + 11 4.8709 2.00000 + 12 6.3846 2.00000 + 13 8.0775 0.00590 + 14 8.5356 0.00000 + 15 10.9631 0.00000 + 16 12.0560 0.00000 + 17 14.6802 0.00000 + 18 15.7986 0.00000 + + k-point 89 : 0.0000 0.2000 0.0667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7470 2.00000 + 5 -30.0181 2.00000 + 6 -30.0111 2.00000 + 7 -29.8187 2.00000 + 8 -1.4695 2.00000 + 9 3.7994 2.00000 + 10 4.6693 2.00000 + 11 5.6325 2.00000 + 12 6.5974 2.00000 + 13 7.8461 1.39567 + 14 8.3061 0.00000 + 15 9.7917 0.00000 + 16 10.4886 0.00000 + 17 14.2428 0.00000 + 18 15.3871 0.00000 + + k-point 90 : 0.0667 0.2000 0.0667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7469 2.00000 + 5 -30.0202 2.00000 + 6 -30.0109 2.00000 + 7 -29.8185 2.00000 + 8 -1.4195 2.00000 + 9 3.8193 2.00000 + 10 4.5504 2.00000 + 11 5.5098 2.00000 + 12 6.7466 2.00000 + 13 7.7637 1.90788 + 14 8.3458 0.00000 + 15 9.6384 0.00000 + 16 10.7162 0.00000 + 17 14.2161 0.00000 + 18 15.3807 0.00000 + + k-point 91 : 0.1333 0.2000 0.0667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7468 2.00000 + 5 -30.0261 2.00000 + 6 -30.0103 2.00000 + 7 -29.8179 2.00000 + 8 -1.2729 2.00000 + 9 3.8625 2.00000 + 10 4.2037 2.00000 + 11 5.3571 2.00000 + 12 6.9709 2.00000 + 13 7.5306 2.00000 + 14 8.5275 0.00000 + 15 9.3693 0.00000 + 16 11.1903 0.00000 + 17 14.9903 0.00000 + 18 31.3493 0.00000 + + k-point 92 : 0.2000 0.2000 0.0667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7467 2.00000 + 5 -30.0349 2.00000 + 6 -30.0095 2.00000 + 7 -29.8171 2.00000 + 8 -1.0337 2.00000 + 9 3.6024 2.00000 + 10 4.0290 2.00000 + 11 5.2643 2.00000 + 12 7.0029 2.00000 + 13 7.3935 2.00000 + 14 8.6571 0.00000 + 15 9.2934 0.00000 + 16 11.7135 0.00000 + 17 14.0675 0.00000 + 18 15.4038 0.00000 + + k-point 93 : 0.2667 0.2000 0.0667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7464 2.00000 + 5 -30.0448 2.00000 + 6 -30.0085 2.00000 + 7 -29.8161 2.00000 + 8 -0.7114 2.00000 + 9 3.0260 2.00000 + 10 4.1301 2.00000 + 11 5.1712 2.00000 + 12 6.8136 2.00000 + 13 7.4784 2.00000 + 14 8.5466 0.00000 + 15 9.5926 0.00000 + 16 12.1469 0.00000 + 17 13.8100 0.00000 + 18 15.8147 0.00000 + + k-point 94 : 0.3333 0.2000 0.0667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7463 2.00000 + 5 -30.0544 2.00000 + 6 -30.0076 2.00000 + 7 -29.8152 2.00000 + 8 -0.3183 2.00000 + 9 2.4223 2.00000 + 10 4.2569 2.00000 + 11 5.0412 2.00000 + 12 6.6493 2.00000 + 13 7.5743 1.99999 + 14 8.4765 0.00000 + 15 9.9779 0.00000 + 16 12.2811 0.00000 + 17 13.6749 0.00000 + 18 15.6480 0.00000 + + k-point 95 : 0.4000 0.2000 0.0667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7461 2.00000 + 5 -30.0619 2.00000 + 6 -30.0069 2.00000 + 7 -29.8145 2.00000 + 8 0.1309 2.00000 + 9 1.8302 2.00000 + 10 4.3950 2.00000 + 11 4.8792 2.00000 + 12 6.5467 2.00000 + 13 7.6338 1.99957 + 14 8.5191 0.00000 + 15 10.3234 0.00000 + 16 12.0332 0.00000 + 17 13.9324 0.00000 + 18 15.8350 0.00000 + + k-point 96 : 0.4667 0.2000 0.0667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7461 2.00000 + 5 -30.0660 2.00000 + 6 -30.0065 2.00000 + 7 -29.8141 2.00000 + 8 0.5962 2.00000 + 9 1.2931 2.00000 + 10 4.5437 2.00000 + 11 4.7091 2.00000 + 12 6.4966 2.00000 + 13 7.6617 1.99823 + 14 8.5908 0.00000 + 15 10.5605 0.00000 + 16 11.7454 0.00000 + 17 14.3195 0.00000 + 18 15.4240 0.00000 + + k-point 97 : 0.0000 0.2667 0.0667 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7467 2.00000 + 5 -30.0253 2.00000 + 6 -30.0166 2.00000 + 7 -29.8173 2.00000 + 8 -1.1232 2.00000 + 9 3.2045 2.00000 + 10 4.6486 2.00000 + 11 5.3096 2.00000 + 12 6.5657 2.00000 + 13 7.8108 1.69159 + 14 8.3758 0.00000 + 15 10.2111 0.00000 + 16 11.0400 0.00000 + 17 13.9258 0.00000 + 18 15.5259 0.00000 + + k-point 98 : 0.0667 0.2667 0.0667 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7466 2.00000 + 5 -30.0251 2.00000 + 6 -30.0187 2.00000 + 7 -29.8171 2.00000 + 8 -1.0740 2.00000 + 9 3.2169 2.00000 + 10 4.5463 2.00000 + 11 5.2645 2.00000 + 12 6.6130 2.00000 + 13 7.8637 1.21244 + 14 8.2993 0.00000 + 15 10.0666 0.00000 + 16 11.2485 0.00000 + 17 13.8793 0.00000 + 18 15.1310 0.00000 + + k-point 99 : 0.1333 0.2667 0.0667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7465 2.00000 + 5 -30.0247 2.00000 + 6 -30.0245 2.00000 + 7 -29.8165 2.00000 + 8 -0.9278 2.00000 + 9 3.2332 2.00000 + 10 4.2746 2.00000 + 11 5.1943 2.00000 + 12 6.7018 2.00000 + 13 7.7714 1.88473 + 14 8.3727 0.00000 + 15 9.7624 0.00000 + 16 11.6929 0.00000 + 17 13.8341 0.00000 + 18 15.2470 0.00000 + + k-point 100 : 0.2000 0.2667 0.0667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7463 2.00000 + 5 -30.0335 2.00000 + 6 -30.0237 2.00000 + 7 -29.8157 2.00000 + 8 -0.6936 2.00000 + 9 3.1651 2.00000 + 10 3.9951 2.00000 + 11 5.1310 2.00000 + 12 6.7693 2.00000 + 13 7.5109 2.00000 + 14 8.6573 0.00000 + 15 9.4680 0.00000 + 16 12.1191 0.00000 + 17 13.7501 0.00000 + 18 16.2199 0.00000 + + k-point 101 : 0.2667 0.2667 0.0667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7461 2.00000 + 5 -30.0435 2.00000 + 6 -30.0228 2.00000 + 7 -29.8147 2.00000 + 8 -0.3808 2.00000 + 9 2.8709 2.00000 + 10 3.9188 2.00000 + 11 5.0470 2.00000 + 12 6.7750 2.00000 + 13 7.3303 2.00000 + 14 8.7957 0.00000 + 15 9.4194 0.00000 + 16 12.2854 0.00000 + 17 15.1004 0.00000 + 18 16.6631 0.00000 + + k-point 102 : 0.3333 0.2667 0.0667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7460 2.00000 + 5 -30.0531 2.00000 + 6 -30.0219 2.00000 + 7 -29.8138 2.00000 + 8 -0.0012 2.00000 + 9 2.4149 2.00000 + 10 4.0086 2.00000 + 11 4.9212 2.00000 + 12 6.7199 2.00000 + 13 7.2772 2.00000 + 14 8.7185 0.00000 + 15 9.6676 0.00000 + 16 12.0399 0.00000 + 17 13.9078 0.00000 + 18 16.1396 0.00000 + + k-point 103 : 0.4000 0.2667 0.0667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7458 2.00000 + 5 -30.0605 2.00000 + 6 -30.0212 2.00000 + 7 -29.8131 2.00000 + 8 0.4304 2.00000 + 9 1.9114 2.00000 + 10 4.1602 2.00000 + 11 4.7577 2.00000 + 12 6.6629 2.00000 + 13 7.2826 2.00000 + 14 8.6633 0.00000 + 15 9.9472 0.00000 + 16 11.6785 0.00000 + 17 15.2726 0.00000 + 18 16.0488 0.00000 + + k-point 104 : 0.4667 0.2667 0.0667 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4247 2.00000 + 3 -91.2897 2.00000 + 4 -65.7457 2.00000 + 5 -30.0646 2.00000 + 6 -30.0207 2.00000 + 7 -29.8127 2.00000 + 8 0.8992 2.00000 + 9 1.4048 2.00000 + 10 4.3197 2.00000 + 11 4.5902 2.00000 + 12 6.6327 2.00000 + 13 7.2942 2.00000 + 14 8.6558 0.00000 + 15 10.1424 0.00000 + 16 11.4034 0.00000 + 17 14.2472 0.00000 + 18 41.7288 0.00000 + + k-point 105 : 0.0000 0.3333 0.0667 + band No. band energies occupation + 1 -91.8814 2.00000 + 2 -91.4263 2.00000 + 3 -91.2913 2.00000 + 4 -65.7464 2.00000 + 5 -30.0388 2.00000 + 6 -30.0152 2.00000 + 7 -29.8160 2.00000 + 8 -0.7011 2.00000 + 9 2.5446 2.00000 + 10 4.6365 2.00000 + 11 5.0441 2.00000 + 12 6.4285 2.00000 + 13 8.1110 0.00125 + 14 8.4422 0.00000 + 15 10.6018 0.00000 + 16 11.5597 0.00000 + 17 13.3506 0.00000 + 18 15.1051 0.00000 + + k-point 106 : 0.0667 0.3333 0.0667 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4261 2.00000 + 3 -91.2911 2.00000 + 4 -65.7464 2.00000 + 5 -30.0386 2.00000 + 6 -30.0173 2.00000 + 7 -29.8158 2.00000 + 8 -0.6526 2.00000 + 9 2.5545 2.00000 + 10 4.5567 2.00000 + 11 5.0344 2.00000 + 12 6.4474 2.00000 + 13 8.1580 0.00010 + 14 8.3450 0.00000 + 15 10.4604 0.00000 + 16 11.7435 0.00000 + 17 13.3794 0.00000 + 18 15.8365 0.00000 + + k-point 107 : 0.1333 0.3333 0.0667 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7462 2.00000 + 5 -30.0381 2.00000 + 6 -30.0233 2.00000 + 7 -29.8152 2.00000 + 8 -0.5089 2.00000 + 9 2.5736 2.00000 + 10 4.3507 2.00000 + 11 5.0102 2.00000 + 12 6.4989 2.00000 + 13 7.9569 0.29451 + 14 8.4473 0.00000 + 15 10.1404 0.00000 + 16 12.0883 0.00000 + 17 13.4032 0.00000 + 18 15.1473 0.00000 + + k-point 108 : 0.2000 0.3333 0.0667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7461 2.00000 + 5 -30.0373 2.00000 + 6 -30.0321 2.00000 + 7 -29.8143 2.00000 + 8 -0.2806 2.00000 + 9 2.5705 2.00000 + 10 4.1067 2.00000 + 11 4.9666 2.00000 + 12 6.5721 2.00000 + 13 7.6198 1.99980 + 14 8.7017 0.00000 + 15 9.7782 0.00000 + 16 12.2391 0.00000 + 17 13.5917 0.00000 + 18 15.4441 0.00000 + + k-point 109 : 0.2667 0.3333 0.0667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7459 2.00000 + 5 -30.0422 2.00000 + 6 -30.0363 2.00000 + 7 -29.8134 2.00000 + 8 0.0188 2.00000 + 9 2.4896 2.00000 + 10 3.9304 2.00000 + 11 4.8876 2.00000 + 12 6.6514 2.00000 + 13 7.3330 2.00000 + 14 8.9105 0.00000 + 15 9.5027 0.00000 + 16 12.0077 0.00000 + 17 14.3536 0.00000 + 18 16.5093 0.00000 + + k-point 110 : 0.3333 0.3333 0.0667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7457 2.00000 + 5 -30.0518 2.00000 + 6 -30.0354 2.00000 + 7 -29.8125 2.00000 + 8 0.3709 2.00000 + 9 2.2835 2.00000 + 10 3.8916 2.00000 + 11 4.7617 2.00000 + 12 6.7183 2.00000 + 13 7.1436 2.00000 + 14 8.9049 0.00000 + 15 9.4941 0.00000 + 16 11.7396 0.00000 + 17 15.6793 0.00000 + 18 16.9345 0.00000 + + k-point 111 : 0.4000 0.3333 0.0667 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7455 2.00000 + 5 -30.0593 2.00000 + 6 -30.0348 2.00000 + 7 -29.8117 2.00000 + 8 0.7545 2.00000 + 9 1.9742 2.00000 + 10 3.9744 2.00000 + 11 4.5954 2.00000 + 12 6.7577 2.00000 + 13 7.0518 2.00000 + 14 8.7886 0.00000 + 15 9.6473 0.00000 + 16 11.3101 0.00000 + 17 14.0340 0.00000 + 18 16.7643 0.00000 + + k-point 112 : 0.4667 0.3333 0.0667 + band No. band energies occupation + 1 -91.8795 2.00000 + 2 -91.4245 2.00000 + 3 -91.2895 2.00000 + 4 -65.7454 2.00000 + 5 -30.0633 2.00000 + 6 -30.0343 2.00000 + 7 -29.8114 2.00000 + 8 1.1319 2.00000 + 9 1.6271 2.00000 + 10 4.1052 2.00000 + 11 4.4298 2.00000 + 12 6.7711 2.00000 + 13 7.0239 2.00000 + 14 8.7206 0.00000 + 15 9.7665 0.00000 + 16 11.0890 0.00000 + 17 13.9788 0.00000 + 18 16.9520 0.00000 + + k-point 113 : 0.0000 0.4000 0.0667 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7462 2.00000 + 5 -30.0493 2.00000 + 6 -30.0141 2.00000 + 7 -29.8149 2.00000 + 8 -0.2288 2.00000 + 9 1.8983 2.00000 + 10 4.6283 2.00000 + 11 4.8575 2.00000 + 12 6.2772 2.00000 + 13 8.4945 0.00000 + 14 8.5804 0.00000 + 15 10.9224 0.00000 + 16 11.9786 0.00000 + 17 12.7899 0.00000 + 18 14.9087 0.00000 + + k-point 114 : 0.0667 0.4000 0.0667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7461 2.00000 + 5 -30.0491 2.00000 + 6 -30.0162 2.00000 + 7 -29.8147 2.00000 + 8 -0.1792 2.00000 + 9 1.9074 2.00000 + 10 4.5762 2.00000 + 11 4.8487 2.00000 + 12 6.2969 2.00000 + 13 8.3585 0.00000 + 14 8.6284 0.00000 + 15 10.7823 0.00000 + 16 12.0806 0.00000 + 17 12.8868 0.00000 + 18 15.2348 0.00000 + + k-point 115 : 0.1333 0.4000 0.0667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7460 2.00000 + 5 -30.0486 2.00000 + 6 -30.0222 2.00000 + 7 -29.8141 2.00000 + 8 -0.0352 2.00000 + 9 1.9332 2.00000 + 10 4.4339 2.00000 + 11 4.8242 2.00000 + 12 6.3536 2.00000 + 13 8.0475 0.01985 + 14 8.7378 0.00000 + 15 10.4554 0.00000 + 16 12.1158 0.00000 + 17 13.2657 0.00000 + 18 14.9000 0.00000 + + k-point 116 : 0.2000 0.4000 0.0667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7458 2.00000 + 5 -30.0478 2.00000 + 6 -30.0311 2.00000 + 7 -29.8133 2.00000 + 8 0.1893 2.00000 + 9 1.9679 2.00000 + 10 4.2451 2.00000 + 11 4.7769 2.00000 + 12 6.4400 2.00000 + 13 7.6916 1.99315 + 14 8.8745 0.00000 + 15 10.0643 0.00000 + 16 11.9241 0.00000 + 17 13.8014 0.00000 + 18 15.2989 0.00000 + + k-point 117 : 0.2667 0.4000 0.0667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7456 2.00000 + 5 -30.0469 2.00000 + 6 -30.0412 2.00000 + 7 -29.8123 2.00000 + 8 0.4706 2.00000 + 9 1.9998 2.00000 + 10 4.0636 2.00000 + 11 4.6916 2.00000 + 12 6.5446 2.00000 + 13 7.3787 2.00000 + 14 8.9926 0.00000 + 15 9.6981 0.00000 + 16 11.6104 0.00000 + 17 14.1038 0.00000 + 18 15.9363 0.00000 + + k-point 118 : 0.3333 0.4000 0.0667 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7454 2.00000 + 5 -30.0508 2.00000 + 6 -30.0460 2.00000 + 7 -29.8114 2.00000 + 8 0.7753 2.00000 + 9 2.0098 2.00000 + 10 3.9391 2.00000 + 11 4.5583 2.00000 + 12 6.6530 2.00000 + 13 7.1493 2.00000 + 14 9.0079 0.00000 + 15 9.4727 0.00000 + 16 11.2802 0.00000 + 17 14.0000 0.00000 + 18 16.5368 0.00000 + + k-point 119 : 0.4000 0.4000 0.0667 + band No. band energies occupation + 1 -91.8795 2.00000 + 2 -91.4245 2.00000 + 3 -91.2895 2.00000 + 4 -65.7452 2.00000 + 5 -30.0583 2.00000 + 6 -30.0454 2.00000 + 7 -29.8107 2.00000 + 8 1.0560 2.00000 + 9 1.9838 2.00000 + 10 3.9064 2.00000 + 11 4.3863 2.00000 + 12 6.7511 2.00000 + 13 7.0039 2.00000 + 14 8.8800 0.00000 + 15 9.4519 0.00000 + 16 11.0055 0.00000 + 17 13.8522 0.00000 + 18 16.8940 0.00000 + + k-point 120 : 0.4667 0.4000 0.0667 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4247 2.00000 + 3 -91.2896 2.00000 + 4 -65.7452 2.00000 + 5 -30.0624 2.00000 + 6 -30.0450 2.00000 + 7 -29.8103 2.00000 + 8 1.2424 2.00000 + 9 1.9383 2.00000 + 10 3.9540 2.00000 + 11 4.2239 2.00000 + 12 6.8299 2.00000 + 13 6.9158 2.00000 + 14 8.7739 0.00000 + 15 9.4832 0.00000 + 16 10.8480 0.00000 + 17 13.7576 0.00000 + 18 16.7488 0.00000 + + k-point 121 : 0.0000 0.4667 0.0667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2908 2.00000 + 4 -65.7460 2.00000 + 5 -30.0550 2.00000 + 6 -30.0134 2.00000 + 7 -29.8143 2.00000 + 8 0.2043 2.00000 + 9 1.3732 2.00000 + 10 4.6240 2.00000 + 11 4.7616 2.00000 + 12 6.1883 2.00000 + 13 8.5233 0.00000 + 14 8.9674 0.00000 + 15 11.1121 0.00000 + 16 12.0071 0.00000 + 17 12.6025 0.00000 + 18 14.7790 0.00000 + + k-point 122 : 0.0667 0.4667 0.0667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4258 2.00000 + 3 -91.2907 2.00000 + 4 -65.7460 2.00000 + 5 -30.0547 2.00000 + 6 -30.0156 2.00000 + 7 -29.8141 2.00000 + 8 0.2601 2.00000 + 9 1.3783 2.00000 + 10 4.6072 2.00000 + 11 4.7289 2.00000 + 12 6.2110 2.00000 + 13 8.3945 0.00000 + 14 8.9806 0.00000 + 15 10.9757 0.00000 + 16 11.9688 0.00000 + 17 12.8374 0.00000 + 18 14.6721 0.00000 + + k-point 123 : 0.1333 0.4667 0.0667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7458 2.00000 + 5 -30.0543 2.00000 + 6 -30.0216 2.00000 + 7 -29.8135 2.00000 + 8 0.4205 2.00000 + 9 1.3934 2.00000 + 10 4.5342 2.00000 + 11 4.6626 2.00000 + 12 6.2753 2.00000 + 13 8.0869 0.00390 + 14 9.0106 0.00000 + 15 10.6601 0.00000 + 16 11.8277 0.00000 + 17 13.4681 0.00000 + 18 14.6325 0.00000 + + k-point 124 : 0.2000 0.4667 0.0667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7457 2.00000 + 5 -30.0535 2.00000 + 6 -30.0305 2.00000 + 7 -29.8127 2.00000 + 8 0.6680 2.00000 + 9 1.4216 2.00000 + 10 4.3948 2.00000 + 11 4.5926 2.00000 + 12 6.3719 2.00000 + 13 7.7299 1.96936 + 14 9.0457 0.00000 + 15 10.2612 0.00000 + 16 11.5905 0.00000 + 17 14.2426 0.00000 + 18 14.7492 0.00000 + + k-point 125 : 0.2667 0.4667 0.0667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7455 2.00000 + 5 -30.0527 2.00000 + 6 -30.0406 2.00000 + 7 -29.8117 2.00000 + 8 0.9557 2.00000 + 9 1.4873 2.00000 + 10 4.2358 2.00000 + 11 4.4908 2.00000 + 12 6.4878 2.00000 + 13 7.4124 2.00000 + 14 9.0712 0.00000 + 15 9.8506 0.00000 + 16 11.3089 0.00000 + 17 14.3846 0.00000 + 18 15.5524 0.00000 + + k-point 126 : 0.3333 0.4667 0.0667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7453 2.00000 + 5 -30.0518 2.00000 + 6 -30.0502 2.00000 + 7 -29.8108 2.00000 + 8 1.1737 2.00000 + 9 1.6621 2.00000 + 10 4.0925 2.00000 + 11 4.3402 2.00000 + 12 6.6061 2.00000 + 13 7.1785 2.00000 + 14 9.0505 0.00000 + 15 9.5155 0.00000 + 16 11.0400 0.00000 + 17 13.9482 0.00000 + 18 16.5775 0.00000 + + k-point 127 : 0.4000 0.4667 0.0667 + band No. band energies occupation + 1 -91.8795 2.00000 + 2 -91.4245 2.00000 + 3 -91.2895 2.00000 + 4 -65.7451 2.00000 + 5 -30.0577 2.00000 + 6 -30.0512 2.00000 + 7 -29.8101 2.00000 + 8 1.2606 2.00000 + 9 1.9475 2.00000 + 10 3.9805 2.00000 + 11 4.1622 2.00000 + 12 6.7058 2.00000 + 13 7.0369 2.00000 + 14 8.9273 0.00000 + 15 9.3617 0.00000 + 16 10.8310 0.00000 + 17 13.7460 0.00000 + 18 17.0707 0.00000 + + k-point 128 : 0.4667 0.4667 0.0667 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4249 2.00000 + 3 -91.2898 2.00000 + 4 -65.7451 2.00000 + 5 -30.0619 2.00000 + 6 -30.0509 2.00000 + 7 -29.8097 2.00000 + 8 1.2859 2.00000 + 9 2.1702 2.00000 + 10 3.8990 2.00000 + 11 4.0390 2.00000 + 12 6.7652 2.00000 + 13 6.9729 2.00000 + 14 8.8041 0.00000 + 15 9.3315 0.00000 + 16 10.7166 0.00000 + 17 13.6320 0.00000 + 18 16.7501 0.00000 + + k-point 129 : 0.0000 0.0000 0.1333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7464 2.00000 + 5 -30.0175 2.00000 + 6 -29.9844 2.00000 + 7 -29.8488 2.00000 + 8 -1.7370 2.00000 + 9 4.4422 2.00000 + 10 4.8585 2.00000 + 11 6.0714 2.00000 + 12 6.4466 2.00000 + 13 8.2302 0.00000 + 14 8.3749 0.00000 + 15 9.1175 0.00000 + 16 9.2619 0.00000 + 17 14.1349 0.00000 + 18 15.4013 0.00000 + + k-point 130 : 0.0667 0.0000 0.1333 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7463 2.00000 + 5 -30.0195 2.00000 + 6 -29.9841 2.00000 + 7 -29.8486 2.00000 + 8 -1.6861 2.00000 + 9 4.3659 2.00000 + 10 4.8534 2.00000 + 11 5.9862 2.00000 + 12 6.3903 2.00000 + 13 8.0854 0.00417 + 14 8.4524 0.00000 + 15 9.1354 0.00000 + 16 9.5120 0.00000 + 17 14.3643 0.00000 + 18 15.3071 0.00000 + + k-point 131 : 0.1333 0.0000 0.1333 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7463 2.00000 + 5 -30.0256 2.00000 + 6 -29.9835 2.00000 + 7 -29.8481 2.00000 + 8 -1.5384 2.00000 + 9 4.0964 2.00000 + 10 4.8387 2.00000 + 11 5.8780 2.00000 + 12 6.2244 2.00000 + 13 7.8814 1.01531 + 14 8.4118 0.00000 + 15 9.4051 0.00000 + 16 10.0237 0.00000 + 17 14.7831 0.00000 + 18 15.5390 0.00000 + + k-point 132 : 0.2000 0.0000 0.1333 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7461 2.00000 + 5 -30.0342 2.00000 + 6 -29.9826 2.00000 + 7 -29.8473 2.00000 + 8 -1.2961 2.00000 + 9 3.6243 2.00000 + 10 4.8224 2.00000 + 11 5.8880 2.00000 + 12 5.9794 2.00000 + 13 7.7697 1.89014 + 14 8.2240 0.00000 + 15 9.9152 0.00000 + 16 10.6017 0.00000 + 17 14.8981 0.00000 + 18 15.7528 0.00000 + + k-point 133 : 0.2667 0.0000 0.1333 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4247 2.00000 + 3 -91.2897 2.00000 + 4 -65.7459 2.00000 + 5 -30.0442 2.00000 + 6 -29.9816 2.00000 + 7 -29.8464 2.00000 + 8 -0.9701 2.00000 + 9 3.0306 2.00000 + 10 4.8098 2.00000 + 11 5.7145 2.00000 + 12 5.9645 2.00000 + 13 7.7405 1.95587 + 14 8.1068 0.00153 + 15 10.4758 0.00000 + 16 11.1795 0.00000 + 17 14.4320 0.00000 + 18 15.4052 0.00000 + + k-point 134 : 0.3333 0.0000 0.1333 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7457 2.00000 + 5 -30.0538 2.00000 + 6 -29.9807 2.00000 + 7 -29.8456 2.00000 + 8 -0.5710 2.00000 + 9 2.3983 2.00000 + 10 4.8012 2.00000 + 11 5.4818 2.00000 + 12 6.0144 2.00000 + 13 7.7545 1.93036 + 14 8.1644 0.00007 + 15 11.0095 0.00000 + 16 11.7243 0.00000 + 17 13.7286 0.00000 + 18 15.7410 0.00000 + + k-point 135 : 0.4000 0.0000 0.1333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7456 2.00000 + 5 -30.0614 2.00000 + 6 -29.9799 2.00000 + 7 -29.8449 2.00000 + 8 -0.1177 2.00000 + 9 1.7781 2.00000 + 10 4.7964 2.00000 + 11 5.3133 2.00000 + 12 6.0112 2.00000 + 13 7.7807 1.85123 + 14 8.3693 0.00000 + 15 11.4739 0.00000 + 16 12.2127 0.00000 + 17 12.9109 0.00000 + 18 14.6649 0.00000 + + k-point 136 : 0.4667 0.0000 0.1333 + band No. band energies occupation + 1 -91.8817 2.00000 + 2 -91.4266 2.00000 + 3 -91.2916 2.00000 + 4 -65.7457 2.00000 + 5 -30.0656 2.00000 + 6 -29.9796 2.00000 + 7 -29.8446 2.00000 + 8 0.3197 2.00000 + 9 1.2526 2.00000 + 10 4.7946 2.00000 + 11 5.2255 2.00000 + 12 5.9923 2.00000 + 13 7.7988 1.76488 + 14 8.5626 0.00000 + 15 11.8394 0.00000 + 16 12.3313 0.00000 + 17 12.5446 0.00000 + 18 14.3190 0.00000 + + k-point 137 : 0.0000 0.0667 0.1333 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7463 2.00000 + 5 -30.0172 2.00000 + 6 -29.9873 2.00000 + 7 -29.8485 2.00000 + 8 -1.6849 2.00000 + 9 4.4076 2.00000 + 10 4.8483 2.00000 + 11 6.0207 2.00000 + 12 6.2826 2.00000 + 13 8.0528 0.01618 + 14 8.5353 0.00000 + 15 9.2108 0.00000 + 16 9.3896 0.00000 + 17 14.3918 0.00000 + 18 15.3197 0.00000 + + k-point 138 : 0.0667 0.0667 0.1333 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4246 2.00000 + 3 -91.2896 2.00000 + 4 -65.7463 2.00000 + 5 -30.0193 2.00000 + 6 -29.9870 2.00000 + 7 -29.8483 2.00000 + 8 -1.6339 2.00000 + 9 4.3516 2.00000 + 10 4.8346 2.00000 + 11 5.7996 2.00000 + 12 6.4178 2.00000 + 13 7.7836 1.83923 + 14 8.8250 0.00000 + 15 9.1722 0.00000 + 16 9.5353 0.00000 + 17 14.5019 0.00000 + 18 15.3716 0.00000 + + k-point 139 : 0.1333 0.0667 0.1333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7462 2.00000 + 5 -30.0253 2.00000 + 6 -29.9865 2.00000 + 7 -29.8478 2.00000 + 8 -1.4861 2.00000 + 9 4.1162 2.00000 + 10 4.7981 2.00000 + 11 5.5891 2.00000 + 12 6.4356 2.00000 + 13 7.5244 2.00000 + 14 8.7710 0.00000 + 15 9.5148 0.00000 + 16 9.9362 0.00000 + 17 15.1352 0.00000 + 18 15.4072 0.00000 + + k-point 140 : 0.2000 0.0667 0.1333 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7460 2.00000 + 5 -30.0340 2.00000 + 6 -29.9857 2.00000 + 7 -29.8470 2.00000 + 8 -1.2446 2.00000 + 9 3.6518 2.00000 + 10 4.7706 2.00000 + 11 5.5402 2.00000 + 12 6.2682 2.00000 + 13 7.4667 2.00000 + 14 8.5007 0.00000 + 15 10.0751 0.00000 + 16 10.4593 0.00000 + 17 14.9293 0.00000 + 18 15.7909 0.00000 + + k-point 141 : 0.2667 0.0667 0.1333 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7458 2.00000 + 5 -30.0439 2.00000 + 6 -29.9846 2.00000 + 7 -29.8461 2.00000 + 8 -0.9180 2.00000 + 9 3.0555 2.00000 + 10 4.7621 2.00000 + 11 5.5144 2.00000 + 12 6.0975 2.00000 + 13 7.5228 2.00000 + 14 8.3066 0.00000 + 15 10.6374 0.00000 + 16 11.0036 0.00000 + 17 14.3882 0.00000 + 18 15.7788 0.00000 + + k-point 142 : 0.3333 0.0667 0.1333 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7457 2.00000 + 5 -30.0536 2.00000 + 6 -29.9837 2.00000 + 7 -29.8453 2.00000 + 8 -0.5188 2.00000 + 9 2.4214 2.00000 + 10 4.7659 2.00000 + 11 5.3939 2.00000 + 12 6.0417 2.00000 + 13 7.5977 1.99994 + 14 8.2829 0.00000 + 15 11.1508 0.00000 + 16 11.5105 0.00000 + 17 13.7183 0.00000 + 18 14.9755 0.00000 + + k-point 143 : 0.4000 0.0667 0.1333 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7456 2.00000 + 5 -30.0611 2.00000 + 6 -29.9830 2.00000 + 7 -29.8447 2.00000 + 8 -0.0651 2.00000 + 9 1.8001 2.00000 + 10 4.7789 2.00000 + 11 5.2458 2.00000 + 12 6.0321 2.00000 + 13 7.6461 1.99918 + 14 8.4238 0.00000 + 15 11.5584 0.00000 + 16 11.9266 0.00000 + 17 13.0831 0.00000 + 18 15.6069 0.00000 + + k-point 144 : 0.4667 0.0667 0.1333 + band No. band energies occupation + 1 -91.8817 2.00000 + 2 -91.4266 2.00000 + 3 -91.2916 2.00000 + 4 -65.7456 2.00000 + 5 -30.0653 2.00000 + 6 -29.9826 2.00000 + 7 -29.8443 2.00000 + 8 0.3795 2.00000 + 9 1.2691 2.00000 + 10 4.7936 2.00000 + 11 5.1515 2.00000 + 12 6.0240 2.00000 + 13 7.6686 1.99754 + 14 8.5805 0.00000 + 15 11.7779 0.00000 + 16 12.1352 0.00000 + 17 12.7618 0.00000 + 18 14.3597 0.00000 + + k-point 145 : 0.0000 0.1333 0.1333 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4246 2.00000 + 3 -91.2897 2.00000 + 4 -65.7461 2.00000 + 5 -30.0163 2.00000 + 6 -29.9957 2.00000 + 7 -29.8477 2.00000 + 8 -1.5268 2.00000 + 9 4.2431 2.00000 + 10 4.8102 2.00000 + 11 5.8696 2.00000 + 12 6.0346 2.00000 + 13 7.8110 1.68997 + 14 8.5785 0.00000 + 15 9.3930 0.00000 + 16 9.9093 0.00000 + 17 14.8181 0.00000 + 18 15.3992 0.00000 + + k-point 146 : 0.0667 0.1333 0.1333 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7461 2.00000 + 5 -30.0184 2.00000 + 6 -29.9955 2.00000 + 7 -29.8475 2.00000 + 8 -1.4775 2.00000 + 9 4.2438 2.00000 + 10 4.7542 2.00000 + 11 5.5293 2.00000 + 12 6.3522 2.00000 + 13 7.5150 2.00000 + 14 8.8801 0.00000 + 15 9.4592 0.00000 + 16 9.8752 0.00000 + 17 15.2792 0.00000 + 18 15.6628 0.00000 + + k-point 147 : 0.1333 0.1333 0.1333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7460 2.00000 + 5 -30.0244 2.00000 + 6 -29.9950 2.00000 + 7 -29.8470 2.00000 + 8 -1.3299 2.00000 + 9 4.1576 2.00000 + 10 4.5679 2.00000 + 11 5.2979 2.00000 + 12 6.6150 2.00000 + 13 7.0904 2.00000 + 14 9.1579 0.00000 + 15 9.5750 0.00000 + 16 10.0825 0.00000 + 17 15.1794 0.00000 + 18 15.4777 0.00000 + + k-point 148 : 0.2000 0.1333 0.1333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7459 2.00000 + 5 -30.0332 2.00000 + 6 -29.9941 2.00000 + 7 -29.8463 2.00000 + 8 -1.0889 2.00000 + 9 3.7247 2.00000 + 10 4.5126 2.00000 + 11 5.2739 2.00000 + 12 6.5053 2.00000 + 13 7.0116 2.00000 + 14 8.9177 0.00000 + 15 10.0553 0.00000 + 16 10.5390 0.00000 + 17 14.9488 0.00000 + 18 15.7735 0.00000 + + k-point 149 : 0.2667 0.1333 0.1333 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7457 2.00000 + 5 -30.0432 2.00000 + 6 -29.9932 2.00000 + 7 -29.8454 2.00000 + 8 -0.7637 2.00000 + 9 3.1184 2.00000 + 10 4.5570 2.00000 + 11 5.2947 2.00000 + 12 6.2309 2.00000 + 13 7.1569 2.00000 + 14 8.6614 0.00000 + 15 10.5778 0.00000 + 16 11.0215 0.00000 + 17 14.3672 0.00000 + 18 16.4135 0.00000 + + k-point 150 : 0.3333 0.1333 0.1333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7455 2.00000 + 5 -30.0528 2.00000 + 6 -29.9922 2.00000 + 7 -29.8445 2.00000 + 8 -0.3665 2.00000 + 9 2.4849 2.00000 + 10 4.6192 2.00000 + 11 5.2403 2.00000 + 12 6.0991 2.00000 + 13 7.2727 2.00000 + 14 8.5350 0.00000 + 15 11.0432 0.00000 + 16 11.4229 0.00000 + 17 13.8722 0.00000 + 18 15.2253 0.00000 + + k-point 151 : 0.4000 0.1333 0.1333 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7454 2.00000 + 5 -30.0603 2.00000 + 6 -29.9915 2.00000 + 7 -29.8439 2.00000 + 8 0.0883 2.00000 + 9 1.8666 2.00000 + 10 4.6927 2.00000 + 11 5.1041 2.00000 + 12 6.0902 2.00000 + 13 7.3348 2.00000 + 14 8.5545 0.00000 + 15 11.3690 0.00000 + 16 11.6761 0.00000 + 17 13.4279 0.00000 + 18 14.9423 0.00000 + + k-point 152 : 0.4667 0.1333 0.1333 + band No. band energies occupation + 1 -91.8813 2.00000 + 2 -91.4263 2.00000 + 3 -91.2913 2.00000 + 4 -65.7454 2.00000 + 5 -30.0645 2.00000 + 6 -29.9911 2.00000 + 7 -29.8436 2.00000 + 8 0.5523 2.00000 + 9 1.3197 2.00000 + 10 4.7737 2.00000 + 11 4.9700 2.00000 + 12 6.1067 2.00000 + 13 7.3584 2.00000 + 14 8.6259 0.00000 + 15 11.4672 0.00000 + 16 11.8083 0.00000 + 17 13.3060 0.00000 + 18 14.7773 0.00000 + + k-point 153 : 0.0000 0.2000 0.1333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7459 2.00000 + 5 -30.0150 2.00000 + 6 -30.0082 2.00000 + 7 -29.8466 2.00000 + 8 -1.2712 2.00000 + 9 3.8438 2.00000 + 10 4.7684 2.00000 + 11 5.6401 2.00000 + 12 5.9574 2.00000 + 13 7.6738 1.99688 + 14 8.3685 0.00000 + 15 9.9037 0.00000 + 16 10.4726 0.00000 + 17 15.0041 0.00000 + 18 15.6011 0.00000 + + k-point 154 : 0.0667 0.2000 0.1333 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7459 2.00000 + 5 -30.0172 2.00000 + 6 -30.0079 2.00000 + 7 -29.8464 2.00000 + 8 -1.2218 2.00000 + 9 3.8708 2.00000 + 10 4.6756 2.00000 + 11 5.4045 2.00000 + 12 6.1889 2.00000 + 13 7.4347 2.00000 + 14 8.5911 0.00000 + 15 10.0325 0.00000 + 16 10.3726 0.00000 + 17 14.9251 0.00000 + 18 15.8940 0.00000 + + k-point 155 : 0.1333 0.2000 0.1333 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7457 2.00000 + 5 -30.0231 2.00000 + 6 -30.0074 2.00000 + 7 -29.8459 2.00000 + 8 -1.0751 2.00000 + 9 3.9445 2.00000 + 10 4.3254 2.00000 + 11 5.2342 2.00000 + 12 6.4457 2.00000 + 13 7.0265 2.00000 + 14 8.9822 0.00000 + 15 9.9608 0.00000 + 16 10.5366 0.00000 + 17 15.3724 0.00000 + 18 16.2209 0.00000 + + k-point 156 : 0.2000 0.2000 0.1333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7456 2.00000 + 5 -30.0320 2.00000 + 6 -30.0066 2.00000 + 7 -29.8451 2.00000 + 8 -0.8371 2.00000 + 9 3.7696 2.00000 + 10 4.0713 2.00000 + 11 5.2102 2.00000 + 12 6.5202 2.00000 + 13 6.7576 2.00000 + 14 9.2256 0.00000 + 15 9.8208 0.00000 + 16 10.9794 0.00000 + 17 14.6872 0.00000 + 18 16.0115 0.00000 + + k-point 157 : 0.2667 0.2000 0.1333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7454 2.00000 + 5 -30.0420 2.00000 + 6 -30.0056 2.00000 + 7 -29.8442 2.00000 + 8 -0.5159 2.00000 + 9 3.1732 2.00000 + 10 4.2009 2.00000 + 11 5.2095 2.00000 + 12 6.2786 2.00000 + 13 6.8561 2.00000 + 14 9.0363 0.00000 + 15 10.1403 0.00000 + 16 11.3532 0.00000 + 17 14.1947 0.00000 + 18 15.7790 0.00000 + + k-point 158 : 0.3333 0.2000 0.1333 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2902 2.00000 + 4 -65.7452 2.00000 + 5 -30.0516 2.00000 + 6 -30.0047 2.00000 + 7 -29.8434 2.00000 + 8 -0.1232 2.00000 + 9 2.5651 2.00000 + 10 4.3406 2.00000 + 11 5.1419 2.00000 + 12 6.1556 2.00000 + 13 6.9535 2.00000 + 14 8.8219 0.00000 + 15 10.5329 0.00000 + 16 11.5193 0.00000 + 17 13.9904 0.00000 + 18 15.7124 0.00000 + + k-point 159 : 0.4000 0.2000 0.1333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7451 2.00000 + 5 -30.0592 2.00000 + 6 -30.0040 2.00000 + 7 -29.8427 2.00000 + 8 0.3259 2.00000 + 9 1.9702 2.00000 + 10 4.4841 2.00000 + 11 4.9917 2.00000 + 12 6.1733 2.00000 + 13 7.0010 2.00000 + 14 8.7133 0.00000 + 15 10.8431 0.00000 + 16 11.4585 0.00000 + 17 13.9770 0.00000 + 18 15.7545 0.00000 + + k-point 160 : 0.4667 0.2000 0.1333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7450 2.00000 + 5 -30.0633 2.00000 + 6 -30.0036 2.00000 + 7 -29.8424 2.00000 + 8 0.8108 2.00000 + 9 1.4140 2.00000 + 10 4.6313 2.00000 + 11 4.8202 2.00000 + 12 6.2227 2.00000 + 13 7.0116 2.00000 + 14 8.6872 0.00000 + 15 11.0198 0.00000 + 16 11.3364 0.00000 + 17 14.1763 0.00000 + 18 15.9685 0.00000 + + k-point 161 : 0.0000 0.2667 0.1333 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7456 2.00000 + 5 -30.0224 2.00000 + 6 -30.0136 2.00000 + 7 -29.8453 2.00000 + 8 -0.9268 2.00000 + 9 3.2623 2.00000 + 10 4.7464 2.00000 + 11 5.3834 2.00000 + 12 5.9960 2.00000 + 13 7.6341 1.99956 + 14 8.2611 0.00000 + 15 10.4569 0.00000 + 16 11.0184 0.00000 + 17 14.2330 0.00000 + 18 15.5535 0.00000 + + k-point 162 : 0.0667 0.2667 0.1333 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7456 2.00000 + 5 -30.0222 2.00000 + 6 -30.0157 2.00000 + 7 -29.8451 2.00000 + 8 -0.8773 2.00000 + 9 3.2832 2.00000 + 10 4.6571 2.00000 + 11 5.2991 2.00000 + 12 6.0714 2.00000 + 13 7.4689 2.00000 + 14 8.4217 0.00000 + 15 10.5908 0.00000 + 16 10.8787 0.00000 + 17 14.2953 0.00000 + 18 16.5961 0.00000 + + k-point 163 : 0.1333 0.2667 0.1333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7455 2.00000 + 5 -30.0218 2.00000 + 6 -30.0216 2.00000 + 7 -29.8446 2.00000 + 8 -0.7317 2.00000 + 9 3.3310 2.00000 + 10 4.3786 2.00000 + 11 5.2110 2.00000 + 12 6.1851 2.00000 + 13 7.1526 2.00000 + 14 8.7615 0.00000 + 15 10.4513 0.00000 + 16 10.9940 0.00000 + 17 14.2699 0.00000 + 18 15.4567 0.00000 + + k-point 164 : 0.2000 0.2667 0.1333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7453 2.00000 + 5 -30.0306 2.00000 + 6 -30.0209 2.00000 + 7 -29.8438 2.00000 + 8 -0.4981 2.00000 + 9 3.3273 2.00000 + 10 4.0470 2.00000 + 11 5.1832 2.00000 + 12 6.2401 2.00000 + 13 6.8777 2.00000 + 14 9.1353 0.00000 + 15 10.0431 0.00000 + 16 11.3235 0.00000 + 17 14.1794 0.00000 + 18 15.5671 0.00000 + + k-point 165 : 0.2667 0.2667 0.1333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7451 2.00000 + 5 -30.0407 2.00000 + 6 -30.0200 2.00000 + 7 -29.8429 2.00000 + 8 -0.1859 2.00000 + 9 3.0693 2.00000 + 10 3.9456 2.00000 + 11 5.1491 2.00000 + 12 6.2051 2.00000 + 13 6.7650 2.00000 + 14 9.2971 0.00000 + 15 9.8622 0.00000 + 16 11.4431 0.00000 + 17 14.0899 0.00000 + 18 16.4426 0.00000 + + k-point 166 : 0.3333 0.2667 0.1333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7449 2.00000 + 5 -30.0503 2.00000 + 6 -30.0191 2.00000 + 7 -29.8421 2.00000 + 8 0.1920 2.00000 + 9 2.6071 2.00000 + 10 4.0528 2.00000 + 11 5.0472 2.00000 + 12 6.1874 2.00000 + 13 6.7639 2.00000 + 14 9.0797 0.00000 + 15 10.0903 0.00000 + 16 11.2974 0.00000 + 17 14.2166 0.00000 + 18 15.6033 0.00000 + + k-point 167 : 0.4000 0.2667 0.1333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7448 2.00000 + 5 -30.0579 2.00000 + 6 -30.0184 2.00000 + 7 -29.8414 2.00000 + 8 0.6211 2.00000 + 9 2.0968 2.00000 + 10 4.2164 2.00000 + 11 4.8791 2.00000 + 12 6.2614 2.00000 + 13 6.7657 2.00000 + 14 8.8662 0.00000 + 15 10.3491 0.00000 + 16 11.0306 0.00000 + 17 14.4108 0.00000 + 18 15.3788 0.00000 + + k-point 168 : 0.4667 0.2667 0.1333 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7447 2.00000 + 5 -30.0620 2.00000 + 6 -30.0180 2.00000 + 7 -29.8411 2.00000 + 8 1.0880 2.00000 + 9 1.5873 2.00000 + 10 4.3747 2.00000 + 11 4.7100 2.00000 + 12 6.3575 2.00000 + 13 6.7421 2.00000 + 14 8.7550 0.00000 + 15 10.5500 0.00000 + 16 10.7906 0.00000 + 17 14.5624 0.00000 + 18 15.1655 0.00000 + + k-point 169 : 0.0000 0.3333 0.1333 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7454 2.00000 + 5 -30.0360 2.00000 + 6 -30.0122 2.00000 + 7 -29.8440 2.00000 + 8 -0.5057 2.00000 + 9 2.6136 2.00000 + 10 4.7370 2.00000 + 11 5.1523 2.00000 + 12 6.0130 2.00000 + 13 7.6494 1.99903 + 14 8.3935 0.00000 + 15 10.9701 0.00000 + 16 11.5187 0.00000 + 17 13.5916 0.00000 + 18 15.0632 0.00000 + + k-point 170 : 0.0667 0.3333 0.1333 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7453 2.00000 + 5 -30.0358 2.00000 + 6 -30.0143 2.00000 + 7 -29.8438 2.00000 + 8 -0.4569 2.00000 + 9 2.6313 2.00000 + 10 4.6641 2.00000 + 11 5.1321 2.00000 + 12 6.0295 2.00000 + 13 7.5280 2.00000 + 14 8.4922 0.00000 + 15 11.0888 0.00000 + 16 11.3355 0.00000 + 17 13.6775 0.00000 + 18 15.0131 0.00000 + + k-point 171 : 0.1333 0.3333 0.1333 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2907 2.00000 + 4 -65.7452 2.00000 + 5 -30.0353 2.00000 + 6 -30.0204 2.00000 + 7 -29.8433 2.00000 + 8 -0.3133 2.00000 + 9 2.6752 2.00000 + 10 4.4540 2.00000 + 11 5.1041 2.00000 + 12 6.0697 2.00000 + 13 7.2554 2.00000 + 14 8.7315 0.00000 + 15 10.8888 0.00000 + 16 11.3448 0.00000 + 17 13.6890 0.00000 + 18 15.8847 0.00000 + + k-point 172 : 0.2000 0.3333 0.1333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7450 2.00000 + 5 -30.0345 2.00000 + 6 -30.0292 2.00000 + 7 -29.8426 2.00000 + 8 -0.0859 2.00000 + 9 2.7166 2.00000 + 10 4.1804 2.00000 + 11 5.0770 2.00000 + 12 6.1163 2.00000 + 13 6.9765 2.00000 + 14 9.0212 0.00000 + 15 10.3917 0.00000 + 16 11.4336 0.00000 + 17 13.9055 0.00000 + 18 15.2813 0.00000 + + k-point 173 : 0.2667 0.3333 0.1333 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7448 2.00000 + 5 -30.0394 2.00000 + 6 -30.0336 2.00000 + 7 -29.8417 2.00000 + 8 0.2123 2.00000 + 9 2.6878 2.00000 + 10 3.9634 2.00000 + 11 5.0147 2.00000 + 12 6.1592 2.00000 + 13 6.7920 2.00000 + 14 9.2662 0.00000 + 15 9.9512 0.00000 + 16 11.2415 0.00000 + 17 14.1593 0.00000 + 18 15.4866 0.00000 + + k-point 174 : 0.3333 0.3333 0.1333 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7446 2.00000 + 5 -30.0491 2.00000 + 6 -30.0327 2.00000 + 7 -29.8408 2.00000 + 8 0.5609 2.00000 + 9 2.5137 2.00000 + 10 3.9070 2.00000 + 11 4.8851 2.00000 + 12 6.2238 2.00000 + 13 6.7173 2.00000 + 14 9.2451 0.00000 + 15 9.8021 0.00000 + 16 10.8954 0.00000 + 17 14.4228 0.00000 + 18 16.8868 0.00000 + + k-point 175 : 0.4000 0.3333 0.1333 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4247 2.00000 + 3 -91.2897 2.00000 + 4 -65.7444 2.00000 + 5 -30.0566 2.00000 + 6 -30.0320 2.00000 + 7 -29.8402 2.00000 + 8 0.9361 2.00000 + 9 2.2131 2.00000 + 10 3.9968 2.00000 + 11 4.7012 2.00000 + 12 6.3401 2.00000 + 13 6.6831 2.00000 + 14 8.9915 0.00000 + 15 9.9352 0.00000 + 16 10.5511 0.00000 + 17 14.6648 0.00000 + 18 16.6490 0.00000 + + k-point 176 : 0.4667 0.3333 0.1333 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7444 2.00000 + 5 -30.0607 2.00000 + 6 -30.0317 2.00000 + 7 -29.8398 2.00000 + 8 1.2854 2.00000 + 9 1.8883 2.00000 + 10 4.1342 2.00000 + 11 4.5244 2.00000 + 12 6.4820 2.00000 + 13 6.6213 2.00000 + 14 8.8197 0.00000 + 15 10.0947 0.00000 + 16 10.2879 0.00000 + 17 14.4258 0.00000 + 18 16.1813 0.00000 + + k-point 177 : 0.0000 0.4000 0.1333 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7451 2.00000 + 5 -30.0466 2.00000 + 6 -30.0111 2.00000 + 7 -29.8430 2.00000 + 8 -0.0307 2.00000 + 9 1.9718 2.00000 + 10 4.7340 2.00000 + 11 4.9824 2.00000 + 12 5.9781 2.00000 + 13 7.6817 1.99554 + 14 8.7276 0.00000 + 15 11.3873 0.00000 + 16 11.9478 0.00000 + 17 12.7854 0.00000 + 18 23.9436 0.00000 + + k-point 178 : 0.0667 0.4000 0.1333 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7451 2.00000 + 5 -30.0464 2.00000 + 6 -30.0132 2.00000 + 7 -29.8428 2.00000 + 8 0.0185 2.00000 + 9 1.9888 2.00000 + 10 4.6859 2.00000 + 11 4.9653 2.00000 + 12 5.9970 2.00000 + 13 7.5729 1.99999 + 14 8.7751 0.00000 + 15 11.4491 0.00000 + 16 11.7029 0.00000 + 17 13.0190 0.00000 + 18 14.7782 0.00000 + + k-point 179 : 0.1333 0.4000 0.1333 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4262 2.00000 + 3 -91.2911 2.00000 + 4 -65.7450 2.00000 + 5 -30.0459 2.00000 + 6 -30.0193 2.00000 + 7 -29.8423 2.00000 + 8 0.1624 2.00000 + 9 2.0359 2.00000 + 10 4.5378 2.00000 + 11 4.9360 2.00000 + 12 6.0484 2.00000 + 13 7.3135 2.00000 + 14 8.8969 0.00000 + 15 11.2099 0.00000 + 16 11.4930 0.00000 + 17 13.3525 0.00000 + 18 14.7482 0.00000 + + k-point 180 : 0.2000 0.4000 0.1333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7448 2.00000 + 5 -30.0451 2.00000 + 6 -30.0282 2.00000 + 7 -29.8416 2.00000 + 8 0.3853 2.00000 + 9 2.1069 2.00000 + 10 4.3253 2.00000 + 11 4.8953 2.00000 + 12 6.1228 2.00000 + 13 7.0290 2.00000 + 14 9.0504 0.00000 + 15 10.6735 0.00000 + 16 11.2840 0.00000 + 17 13.8208 0.00000 + 18 15.4677 0.00000 + + k-point 181 : 0.2667 0.4000 0.1333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7446 2.00000 + 5 -30.0442 2.00000 + 6 -30.0384 2.00000 + 7 -29.8407 2.00000 + 8 0.6619 2.00000 + 9 2.1867 2.00000 + 10 4.1117 2.00000 + 11 4.8111 2.00000 + 12 6.2095 2.00000 + 13 6.8181 2.00000 + 14 9.1919 0.00000 + 15 10.1602 0.00000 + 16 10.8993 0.00000 + 17 15.1026 0.00000 + 18 15.8962 0.00000 + + k-point 182 : 0.3333 0.4000 0.1333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7444 2.00000 + 5 -30.0481 2.00000 + 6 -30.0434 2.00000 + 7 -29.8399 2.00000 + 8 0.9577 2.00000 + 9 2.2499 2.00000 + 10 3.9565 2.00000 + 11 4.6608 2.00000 + 12 6.3079 2.00000 + 13 6.7191 2.00000 + 14 9.2475 0.00000 + 15 9.7542 0.00000 + 16 10.4853 0.00000 + 17 14.4236 0.00000 + 18 15.9769 0.00000 + + k-point 183 : 0.4000 0.4000 0.1333 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2900 2.00000 + 4 -65.7442 2.00000 + 5 -30.0556 2.00000 + 6 -30.0428 2.00000 + 7 -29.8392 2.00000 + 8 1.2239 2.00000 + 9 2.2689 2.00000 + 10 3.9080 2.00000 + 11 4.4598 2.00000 + 12 6.4254 2.00000 + 13 6.6915 2.00000 + 14 9.0705 0.00000 + 15 9.6405 0.00000 + 16 10.1444 0.00000 + 17 14.3430 0.00000 + 18 17.2812 0.00000 + + k-point 184 : 0.4667 0.4000 0.1333 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7442 2.00000 + 5 -30.0598 2.00000 + 6 -30.0424 2.00000 + 7 -29.8388 2.00000 + 8 1.3946 2.00000 + 9 2.2508 2.00000 + 10 3.9615 2.00000 + 11 4.2707 2.00000 + 12 6.5390 2.00000 + 13 6.6669 2.00000 + 14 8.8711 0.00000 + 15 9.6833 0.00000 + 16 9.9342 0.00000 + 17 14.2821 0.00000 + 18 16.8667 0.00000 + + k-point 185 : 0.0000 0.4667 0.1333 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4260 2.00000 + 3 -91.2909 2.00000 + 4 -65.7450 2.00000 + 5 -30.0524 2.00000 + 6 -30.0105 2.00000 + 7 -29.8425 2.00000 + 8 0.4229 2.00000 + 9 1.4332 2.00000 + 10 4.7335 2.00000 + 11 4.8932 2.00000 + 12 5.9406 2.00000 + 13 7.7046 1.98825 + 14 9.0485 0.00000 + 15 11.6113 0.00000 + 16 12.2365 0.00000 + 17 12.4166 0.00000 + 18 14.4069 0.00000 + + k-point 186 : 0.0667 0.4667 0.1333 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4260 2.00000 + 3 -91.2909 2.00000 + 4 -65.7450 2.00000 + 5 -30.0522 2.00000 + 6 -30.0126 2.00000 + 7 -29.8423 2.00000 + 8 0.4791 2.00000 + 9 1.4433 2.00000 + 10 4.7207 2.00000 + 11 4.8490 2.00000 + 12 5.9697 2.00000 + 13 7.5985 1.99994 + 14 9.0623 0.00000 + 15 11.5449 0.00000 + 16 11.9351 0.00000 + 17 12.6346 0.00000 + 18 14.4028 0.00000 + + k-point 187 : 0.1333 0.4667 0.1333 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4262 2.00000 + 3 -91.2911 2.00000 + 4 -65.7449 2.00000 + 5 -30.0517 2.00000 + 6 -30.0187 2.00000 + 7 -29.8418 2.00000 + 8 0.6406 2.00000 + 9 1.4754 2.00000 + 10 4.6393 2.00000 + 11 4.7744 2.00000 + 12 6.0463 2.00000 + 13 7.3409 2.00000 + 14 9.0974 0.00000 + 15 11.2685 0.00000 + 16 11.5426 0.00000 + 17 13.2087 0.00000 + 18 14.4572 0.00000 + + k-point 188 : 0.2000 0.4667 0.1333 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4259 2.00000 + 3 -91.2908 2.00000 + 4 -65.7447 2.00000 + 5 -30.0509 2.00000 + 6 -30.0276 2.00000 + 7 -29.8411 2.00000 + 8 0.8849 2.00000 + 9 1.5379 2.00000 + 10 4.4679 2.00000 + 11 4.7154 2.00000 + 12 6.1524 2.00000 + 13 7.0495 2.00000 + 14 9.1423 0.00000 + 15 10.8507 0.00000 + 16 11.0603 0.00000 + 17 14.0298 0.00000 + 18 14.7766 0.00000 + + k-point 189 : 0.2667 0.4667 0.1333 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2911 2.00000 + 4 -65.7445 2.00000 + 5 -30.0501 2.00000 + 6 -30.0378 2.00000 + 7 -29.8402 2.00000 + 8 1.1502 2.00000 + 9 1.6634 2.00000 + 10 4.2778 2.00000 + 11 4.6118 2.00000 + 12 6.2733 2.00000 + 13 6.8222 2.00000 + 14 9.1840 0.00000 + 15 10.3474 0.00000 + 16 10.5871 0.00000 + 17 14.4557 0.00000 + 18 15.2545 0.00000 + + k-point 190 : 0.3333 0.4667 0.1333 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7443 2.00000 + 5 -30.0493 2.00000 + 6 -30.0475 2.00000 + 7 -29.8393 2.00000 + 8 1.3315 2.00000 + 9 1.9197 2.00000 + 10 4.1103 2.00000 + 11 4.4350 2.00000 + 12 6.3954 2.00000 + 13 6.7111 2.00000 + 14 9.1975 0.00000 + 15 9.8332 0.00000 + 16 10.1952 0.00000 + 17 14.3744 0.00000 + 18 15.8908 0.00000 + + k-point 191 : 0.4000 0.4667 0.1333 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7441 2.00000 + 5 -30.0551 2.00000 + 6 -30.0487 2.00000 + 7 -29.8387 2.00000 + 8 1.4141 2.00000 + 9 2.2587 2.00000 + 10 3.9834 2.00000 + 11 4.2083 2.00000 + 12 6.5037 2.00000 + 13 6.7025 2.00000 + 14 9.0928 0.00000 + 15 9.5006 0.00000 + 16 9.9082 0.00000 + 17 14.2642 0.00000 + 18 16.9205 0.00000 + + k-point 192 : 0.4667 0.4667 0.1333 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7441 2.00000 + 5 -30.0593 2.00000 + 6 -30.0483 2.00000 + 7 -29.8383 2.00000 + 8 1.4457 2.00000 + 9 2.5199 2.00000 + 10 3.9004 2.00000 + 11 4.0331 2.00000 + 12 6.5737 2.00000 + 13 6.7304 2.00000 + 14 8.8995 0.00000 + 15 9.4301 0.00000 + 16 9.7525 0.00000 + 17 14.2685 0.00000 + 18 34.2814 0.00000 + + k-point 193 : 0.0000 0.0000 0.2000 + band No. band energies occupation + 1 -91.8795 2.00000 + 2 -91.4244 2.00000 + 3 -91.2894 2.00000 + 4 -65.7449 2.00000 + 5 -30.0129 2.00000 + 6 -29.9797 2.00000 + 7 -29.8895 2.00000 + 8 -1.4187 2.00000 + 9 4.4601 2.00000 + 10 4.6731 2.00000 + 11 5.6743 2.00000 + 12 5.9932 2.00000 + 13 8.1576 0.00010 + 14 8.3102 0.00000 + 15 9.3878 0.00000 + 16 9.5739 0.00000 + 17 14.6169 0.00000 + 18 15.2950 0.00000 + + k-point 194 : 0.0667 0.0000 0.2000 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2900 2.00000 + 4 -65.7449 2.00000 + 5 -30.0151 2.00000 + 6 -29.9795 2.00000 + 7 -29.8894 2.00000 + 8 -1.3679 2.00000 + 9 4.3898 2.00000 + 10 4.6848 2.00000 + 11 5.5775 2.00000 + 12 5.9882 2.00000 + 13 8.0710 0.00779 + 14 8.3358 0.00000 + 15 9.2963 0.00000 + 16 9.8808 0.00000 + 17 14.7640 0.00000 + 18 15.2851 0.00000 + + k-point 195 : 0.1333 0.0000 0.2000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7447 2.00000 + 5 -30.0211 2.00000 + 6 -29.9789 2.00000 + 7 -29.8889 2.00000 + 8 -1.2205 2.00000 + 9 4.1260 2.00000 + 10 4.7341 2.00000 + 11 5.4333 2.00000 + 12 5.9646 2.00000 + 13 7.6673 1.99769 + 14 8.7032 0.00000 + 15 9.1336 0.00000 + 16 10.4886 0.00000 + 17 14.8840 0.00000 + 18 16.1247 0.00000 + + k-point 196 : 0.2000 0.0000 0.2000 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2897 2.00000 + 4 -65.7446 2.00000 + 5 -30.0299 2.00000 + 6 -29.9782 2.00000 + 7 -29.8882 2.00000 + 8 -0.9808 2.00000 + 9 3.6652 2.00000 + 10 4.7987 2.00000 + 11 5.3993 2.00000 + 12 5.9001 2.00000 + 13 7.3364 2.00000 + 14 8.6839 0.00000 + 15 9.4310 0.00000 + 16 11.1616 0.00000 + 17 14.7250 0.00000 + 18 16.1963 0.00000 + + k-point 197 : 0.2667 0.0000 0.2000 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2899 2.00000 + 4 -65.7444 2.00000 + 5 -30.0400 2.00000 + 6 -29.9771 2.00000 + 7 -29.8874 2.00000 + 8 -0.6587 2.00000 + 9 3.0989 2.00000 + 10 4.8498 2.00000 + 11 5.4590 2.00000 + 12 5.7806 2.00000 + 13 7.1397 2.00000 + 14 8.5209 0.00000 + 15 9.9588 0.00000 + 16 11.8236 0.00000 + 17 14.2014 0.00000 + 18 16.2147 0.00000 + + k-point 198 : 0.3333 0.0000 0.2000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7442 2.00000 + 5 -30.0497 2.00000 + 6 -29.9762 2.00000 + 7 -29.8866 2.00000 + 8 -0.2656 2.00000 + 9 2.4987 2.00000 + 10 4.8835 2.00000 + 11 5.5379 2.00000 + 12 5.6319 2.00000 + 13 7.0597 2.00000 + 14 8.4828 0.00000 + 15 10.4687 0.00000 + 16 12.4416 0.00000 + 17 13.3290 0.00000 + 18 15.1337 0.00000 + + k-point 199 : 0.4000 0.0000 0.2000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7441 2.00000 + 5 -30.0573 2.00000 + 6 -29.9754 2.00000 + 7 -29.8860 2.00000 + 8 0.1849 2.00000 + 9 1.9035 2.00000 + 10 4.9056 2.00000 + 11 5.5030 2.00000 + 12 5.5861 2.00000 + 13 7.0432 2.00000 + 14 8.5758 0.00000 + 15 10.9253 0.00000 + 16 12.5527 0.00000 + 17 13.0088 0.00000 + 18 14.8073 0.00000 + + k-point 200 : 0.4667 0.0000 0.2000 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4261 2.00000 + 3 -91.2912 2.00000 + 4 -65.7441 2.00000 + 5 -30.0615 2.00000 + 6 -29.9750 2.00000 + 7 -29.8857 2.00000 + 8 0.6491 2.00000 + 9 1.3651 2.00000 + 10 4.9176 2.00000 + 11 5.4303 2.00000 + 12 5.6017 2.00000 + 13 7.0458 2.00000 + 14 8.6931 0.00000 + 15 11.3271 0.00000 + 16 11.9366 0.00000 + 17 13.5779 0.00000 + 18 14.3517 0.00000 + + k-point 201 : 0.0000 0.0667 0.2000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7449 2.00000 + 5 -30.0127 2.00000 + 6 -29.9828 2.00000 + 7 -29.8893 2.00000 + 8 -1.3666 2.00000 + 9 4.4223 2.00000 + 10 4.6934 2.00000 + 11 5.6697 2.00000 + 12 5.8285 2.00000 + 13 8.0271 0.04123 + 14 8.3692 0.00000 + 15 9.4509 0.00000 + 16 9.7370 0.00000 + 17 14.9651 0.00000 + 18 15.3421 0.00000 + + k-point 202 : 0.0667 0.0667 0.2000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2901 2.00000 + 4 -65.7448 2.00000 + 5 -30.0148 2.00000 + 6 -29.9826 2.00000 + 7 -29.8892 2.00000 + 8 -1.3163 2.00000 + 9 4.3772 2.00000 + 10 4.7020 2.00000 + 11 5.4537 2.00000 + 12 5.9491 2.00000 + 13 7.7861 1.82833 + 14 8.5756 0.00000 + 15 9.5058 0.00000 + 16 9.8346 0.00000 + 17 15.0595 0.00000 + 18 16.2568 0.00000 + + k-point 203 : 0.1333 0.0667 0.2000 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4246 2.00000 + 3 -91.2896 2.00000 + 4 -65.7447 2.00000 + 5 -30.0208 2.00000 + 6 -29.9819 2.00000 + 7 -29.8886 2.00000 + 8 -1.1678 2.00000 + 9 4.1541 2.00000 + 10 4.7483 2.00000 + 11 5.2311 2.00000 + 12 6.0125 2.00000 + 13 7.4085 2.00000 + 14 8.9608 0.00000 + 15 9.3188 0.00000 + 16 10.3531 0.00000 + 17 15.1264 0.00000 + 18 15.6355 0.00000 + + k-point 204 : 0.2000 0.0667 0.2000 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4247 2.00000 + 3 -91.2897 2.00000 + 4 -65.7445 2.00000 + 5 -30.0296 2.00000 + 6 -29.9811 2.00000 + 7 -29.8879 2.00000 + 8 -0.9290 2.00000 + 9 3.7034 2.00000 + 10 4.8102 2.00000 + 11 5.1970 2.00000 + 12 5.9664 2.00000 + 13 7.1173 2.00000 + 14 8.9157 0.00000 + 15 9.5830 0.00000 + 16 14.0696 0.00000 + 17 15.5381 0.00000 + 18 16.0450 0.00000 + + k-point 205 : 0.2667 0.0667 0.2000 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7443 2.00000 + 5 -30.0398 2.00000 + 6 -29.9802 2.00000 + 7 -29.8871 2.00000 + 8 -0.6068 2.00000 + 9 3.1346 2.00000 + 10 4.8473 2.00000 + 11 5.3098 2.00000 + 12 5.8138 2.00000 + 13 6.9753 2.00000 + 14 8.6937 0.00000 + 15 10.0930 0.00000 + 16 11.5987 0.00000 + 17 14.2851 0.00000 + 18 15.4916 0.00000 + + k-point 206 : 0.3333 0.0667 0.2000 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7442 2.00000 + 5 -30.0495 2.00000 + 6 -29.9792 2.00000 + 7 -29.8864 2.00000 + 8 -0.2132 2.00000 + 9 2.5322 2.00000 + 10 4.8734 2.00000 + 11 5.4530 2.00000 + 12 5.6251 2.00000 + 13 6.9349 2.00000 + 14 8.5950 0.00000 + 15 10.5671 0.00000 + 16 12.1071 0.00000 + 17 13.6101 0.00000 + 18 15.2056 0.00000 + + k-point 207 : 0.4000 0.0667 0.2000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7441 2.00000 + 5 -30.0571 2.00000 + 6 -29.9785 2.00000 + 7 -29.8858 2.00000 + 8 0.2373 2.00000 + 9 1.9361 2.00000 + 10 4.9016 2.00000 + 11 5.4135 2.00000 + 12 5.6118 2.00000 + 13 6.9300 2.00000 + 14 8.6308 0.00000 + 15 10.9545 0.00000 + 16 12.2321 0.00000 + 17 13.3411 0.00000 + 18 14.6028 0.00000 + + k-point 208 : 0.4667 0.0667 0.2000 + band No. band energies occupation + 1 -91.8813 2.00000 + 2 -91.4262 2.00000 + 3 -91.2912 2.00000 + 4 -65.7440 2.00000 + 5 -30.0612 2.00000 + 6 -29.9781 2.00000 + 7 -29.8855 2.00000 + 8 0.7080 2.00000 + 9 1.3914 2.00000 + 10 4.9262 2.00000 + 11 5.3148 2.00000 + 12 5.6677 2.00000 + 13 6.9317 2.00000 + 14 8.7105 0.00000 + 15 11.2069 0.00000 + 16 11.9941 0.00000 + 17 13.6247 0.00000 + 18 14.2566 0.00000 + + k-point 209 : 0.0000 0.1333 0.2000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7447 2.00000 + 5 -30.0118 2.00000 + 6 -29.9913 2.00000 + 7 -29.8886 2.00000 + 8 -1.2087 2.00000 + 9 4.2480 2.00000 + 10 4.7537 2.00000 + 11 5.5479 2.00000 + 12 5.6464 2.00000 + 13 7.5854 1.99997 + 14 8.8369 0.00000 + 15 9.1686 0.00000 + 16 10.3783 0.00000 + 17 15.1703 0.00000 + 18 16.5372 0.00000 + + k-point 210 : 0.0667 0.1333 0.2000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7446 2.00000 + 5 -30.0140 2.00000 + 6 -29.9911 2.00000 + 7 -29.8884 2.00000 + 8 -1.1599 2.00000 + 9 4.2600 2.00000 + 10 4.7624 2.00000 + 11 5.1876 2.00000 + 12 5.8950 2.00000 + 13 7.3708 2.00000 + 14 9.0334 0.00000 + 15 9.3519 0.00000 + 16 10.2679 0.00000 + 17 15.3111 0.00000 + 18 15.6587 0.00000 + + k-point 211 : 0.1333 0.1333 0.2000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7445 2.00000 + 5 -30.0200 2.00000 + 6 -29.9906 2.00000 + 7 -29.8880 2.00000 + 8 -1.0132 2.00000 + 9 4.2030 2.00000 + 10 4.7943 2.00000 + 11 4.8011 2.00000 + 12 6.0641 2.00000 + 13 6.9806 2.00000 + 14 9.4178 0.00000 + 15 9.6455 0.00000 + 16 10.1655 0.00000 + 17 15.5541 0.00000 + 18 16.0175 0.00000 + + k-point 212 : 0.2000 0.1333 0.2000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7444 2.00000 + 5 -30.0289 2.00000 + 6 -29.9897 2.00000 + 7 -29.8872 2.00000 + 8 -0.7738 2.00000 + 9 3.8102 2.00000 + 10 4.7014 2.00000 + 11 4.8920 2.00000 + 12 6.0747 2.00000 + 13 6.6867 2.00000 + 14 9.3773 0.00000 + 15 9.9364 0.00000 + 16 10.5923 0.00000 + 17 15.0458 0.00000 + 18 15.9243 0.00000 + + k-point 213 : 0.2667 0.1333 0.2000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7441 2.00000 + 5 -30.0390 2.00000 + 6 -29.9887 2.00000 + 7 -29.8864 2.00000 + 8 -0.4528 2.00000 + 9 3.2344 2.00000 + 10 4.7338 2.00000 + 11 5.0752 2.00000 + 12 5.8733 2.00000 + 13 6.6224 2.00000 + 14 9.0753 0.00000 + 15 10.3673 0.00000 + 16 11.1413 0.00000 + 17 14.3495 0.00000 + 18 16.6028 0.00000 + + k-point 214 : 0.3333 0.1333 0.2000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7440 2.00000 + 5 -30.0487 2.00000 + 6 -29.9878 2.00000 + 7 -29.8857 2.00000 + 8 -0.0611 2.00000 + 9 2.6291 2.00000 + 10 4.7819 2.00000 + 11 5.2693 2.00000 + 12 5.6458 2.00000 + 13 6.6483 2.00000 + 14 8.8604 0.00000 + 15 10.6806 0.00000 + 16 11.6275 0.00000 + 17 13.8130 0.00000 + 18 15.2714 0.00000 + + k-point 215 : 0.4000 0.1333 0.2000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7438 2.00000 + 5 -30.0563 2.00000 + 6 -29.9871 2.00000 + 7 -29.8850 2.00000 + 8 0.3892 2.00000 + 9 2.0335 2.00000 + 10 4.8463 2.00000 + 11 5.2455 2.00000 + 12 5.6563 2.00000 + 13 6.6606 2.00000 + 14 8.7680 0.00000 + 15 10.8072 0.00000 + 16 11.9897 0.00000 + 17 13.5317 0.00000 + 18 14.8625 0.00000 + + k-point 216 : 0.4667 0.1333 0.2000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7438 2.00000 + 5 -30.0604 2.00000 + 6 -29.9867 2.00000 + 7 -29.8847 2.00000 + 8 0.8747 2.00000 + 9 1.4744 2.00000 + 10 4.9295 2.00000 + 11 5.1004 2.00000 + 12 5.7671 2.00000 + 13 6.6527 2.00000 + 14 8.7570 0.00000 + 15 10.8011 0.00000 + 16 12.1859 0.00000 + 17 13.5593 0.00000 + 18 14.6572 0.00000 + + k-point 217 : 0.0000 0.2000 0.2000 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7444 2.00000 + 5 -30.0105 2.00000 + 6 -30.0038 2.00000 + 7 -29.8876 2.00000 + 8 -0.9548 2.00000 + 9 3.8567 2.00000 + 10 4.8138 2.00000 + 11 5.4323 2.00000 + 12 5.5813 2.00000 + 13 7.2363 2.00000 + 14 8.8397 0.00000 + 15 9.4096 0.00000 + 16 11.0606 0.00000 + 17 14.9041 0.00000 + 18 15.9154 0.00000 + + k-point 218 : 0.0667 0.2000 0.2000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7444 2.00000 + 5 -30.0127 2.00000 + 6 -30.0037 2.00000 + 7 -29.8874 2.00000 + 8 -0.9054 2.00000 + 9 3.8932 2.00000 + 10 4.8113 2.00000 + 11 5.0970 2.00000 + 12 5.8095 2.00000 + 13 7.0569 2.00000 + 14 9.0275 0.00000 + 15 9.5614 0.00000 + 16 10.9012 0.00000 + 17 15.3640 0.00000 + 18 16.2477 0.00000 + + k-point 219 : 0.1333 0.2000 0.2000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7443 2.00000 + 5 -30.0188 2.00000 + 6 -30.0031 2.00000 + 7 -29.8869 2.00000 + 8 -0.7600 2.00000 + 9 3.9970 2.00000 + 10 4.5299 2.00000 + 11 4.9001 2.00000 + 12 6.0104 2.00000 + 13 6.6764 2.00000 + 14 9.4299 0.00000 + 15 9.9366 0.00000 + 16 10.5322 0.00000 + 17 15.0414 0.00000 + 18 15.7405 0.00000 + + k-point 220 : 0.2000 0.2000 0.2000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7441 2.00000 + 5 -30.0277 2.00000 + 6 -30.0023 2.00000 + 7 -29.8862 2.00000 + 8 -0.5239 2.00000 + 9 3.9586 2.00000 + 10 4.1573 2.00000 + 11 4.9630 2.00000 + 12 6.1585 2.00000 + 13 6.2704 2.00000 + 14 9.7369 0.00000 + 15 10.1887 0.00000 + 16 10.4392 0.00000 + 17 14.6116 0.00000 + 18 15.8892 0.00000 + + k-point 221 : 0.2667 0.2000 0.2000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7439 2.00000 + 5 -30.0379 2.00000 + 6 -30.0014 2.00000 + 7 -29.8854 2.00000 + 8 -0.2066 2.00000 + 9 3.3648 2.00000 + 10 4.3281 2.00000 + 11 5.0858 2.00000 + 12 5.8933 2.00000 + 13 6.2876 2.00000 + 14 9.4924 0.00000 + 15 10.3513 0.00000 + 16 10.9098 0.00000 + 17 14.1968 0.00000 + 18 15.6095 0.00000 + + k-point 222 : 0.3333 0.2000 0.2000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7437 2.00000 + 5 -30.0476 2.00000 + 6 -30.0005 2.00000 + 7 -29.8847 2.00000 + 8 0.1788 2.00000 + 9 2.7700 2.00000 + 10 4.4886 2.00000 + 11 5.2214 2.00000 + 12 5.6433 2.00000 + 13 6.3659 2.00000 + 14 9.1667 0.00000 + 15 10.4414 0.00000 + 16 11.3646 0.00000 + 17 13.8896 0.00000 + 18 16.6031 0.00000 + + k-point 223 : 0.4000 0.2000 0.2000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7436 2.00000 + 5 -30.0552 2.00000 + 6 -29.9998 2.00000 + 7 -29.8840 2.00000 + 8 0.6216 2.00000 + 9 2.1905 2.00000 + 10 4.6276 2.00000 + 11 5.1554 2.00000 + 12 5.7004 2.00000 + 13 6.3833 2.00000 + 14 8.9358 0.00000 + 15 10.3679 0.00000 + 16 11.7330 0.00000 + 17 13.7871 0.00000 + 18 15.4993 0.00000 + + k-point 224 : 0.4667 0.2000 0.2000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2905 2.00000 + 4 -65.7435 2.00000 + 5 -30.0593 2.00000 + 6 -29.9994 2.00000 + 7 -29.8837 2.00000 + 8 1.1087 2.00000 + 9 1.6347 2.00000 + 10 4.7486 2.00000 + 11 4.9984 2.00000 + 12 5.8749 2.00000 + 13 6.3442 2.00000 + 14 8.8213 0.00000 + 15 10.2716 0.00000 + 16 11.9440 0.00000 + 17 13.8193 0.00000 + 18 14.8856 0.00000 + + k-point 225 : 0.0000 0.2667 0.2000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2901 2.00000 + 4 -65.7441 2.00000 + 5 -30.0183 2.00000 + 6 -30.0091 2.00000 + 7 -29.8863 2.00000 + 8 -0.6139 2.00000 + 9 3.3047 2.00000 + 10 4.8442 2.00000 + 11 5.4603 2.00000 + 12 5.4868 2.00000 + 13 7.0343 2.00000 + 14 8.6590 0.00000 + 15 9.9415 0.00000 + 16 11.7134 0.00000 + 17 14.2240 0.00000 + 18 15.8795 0.00000 + + k-point 226 : 0.0667 0.2667 0.2000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7441 2.00000 + 5 -30.0181 2.00000 + 6 -30.0113 2.00000 + 7 -29.8862 2.00000 + 8 -0.5649 2.00000 + 9 3.3377 2.00000 + 10 4.8084 2.00000 + 11 5.2074 2.00000 + 12 5.6705 2.00000 + 13 6.9017 2.00000 + 14 8.8064 0.00000 + 15 10.0721 0.00000 + 16 11.5068 0.00000 + 17 14.3145 0.00000 + 18 15.6369 0.00000 + + k-point 227 : 0.1333 0.2667 0.2000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2908 2.00000 + 4 -65.7440 2.00000 + 5 -30.0176 2.00000 + 6 -30.0174 2.00000 + 7 -29.8857 2.00000 + 8 -0.4208 2.00000 + 9 3.4287 2.00000 + 10 4.5635 2.00000 + 11 5.0640 2.00000 + 12 5.7943 2.00000 + 13 6.6030 2.00000 + 14 9.1559 0.00000 + 15 10.3672 0.00000 + 16 11.0498 0.00000 + 17 14.3100 0.00000 + 18 15.6899 0.00000 + + k-point 228 : 0.2000 0.2667 0.2000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7438 2.00000 + 5 -30.0263 2.00000 + 6 -30.0168 2.00000 + 7 -29.8850 2.00000 + 8 -0.1891 2.00000 + 9 3.5310 2.00000 + 10 4.1526 2.00000 + 11 5.0962 2.00000 + 12 5.8378 2.00000 + 13 6.3101 2.00000 + 14 9.5515 0.00000 + 15 10.4117 0.00000 + 16 10.7785 0.00000 + 17 14.0757 0.00000 + 18 16.4690 0.00000 + + k-point 229 : 0.2667 0.2667 0.2000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7436 2.00000 + 5 -30.0365 2.00000 + 6 -30.0159 2.00000 + 7 -29.8842 2.00000 + 8 0.1197 2.00000 + 9 3.3712 2.00000 + 10 3.9854 2.00000 + 11 5.1910 2.00000 + 12 5.7030 2.00000 + 13 6.2124 2.00000 + 14 9.7686 0.00000 + 15 10.0355 0.00000 + 16 10.9145 0.00000 + 17 13.9867 0.00000 + 18 15.9162 0.00000 + + k-point 230 : 0.3333 0.2667 0.2000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7434 2.00000 + 5 -30.0463 2.00000 + 6 -30.0150 2.00000 + 7 -29.8835 2.00000 + 8 0.4894 2.00000 + 9 2.9018 2.00000 + 10 4.1317 2.00000 + 11 5.2339 2.00000 + 12 5.5776 2.00000 + 13 6.2422 2.00000 + 14 9.4373 0.00000 + 15 9.9987 0.00000 + 16 11.0336 0.00000 + 17 14.2044 0.00000 + 18 15.5874 0.00000 + + k-point 231 : 0.4000 0.2667 0.2000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7433 2.00000 + 5 -30.0539 2.00000 + 6 -30.0143 2.00000 + 7 -29.8829 2.00000 + 8 0.9061 2.00000 + 9 2.3921 2.00000 + 10 4.3127 2.00000 + 11 5.0699 2.00000 + 12 5.7376 2.00000 + 13 6.2494 2.00000 + 14 9.0950 0.00000 + 15 9.8623 0.00000 + 16 11.1873 0.00000 + 17 15.0131 0.00000 + 18 17.2295 0.00000 + + k-point 232 : 0.4667 0.2667 0.2000 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4247 2.00000 + 3 -91.2897 2.00000 + 4 -65.7431 2.00000 + 5 -30.0580 2.00000 + 6 -30.0139 2.00000 + 7 -29.8825 2.00000 + 8 1.3392 2.00000 + 9 1.9119 2.00000 + 10 4.4535 2.00000 + 11 4.9101 2.00000 + 12 5.9724 2.00000 + 13 6.1724 2.00000 + 14 8.8920 0.00000 + 15 9.7378 0.00000 + 16 11.2934 0.00000 + 17 14.5094 0.00000 + 18 14.9006 0.00000 + + k-point 233 : 0.0000 0.3333 0.2000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7438 2.00000 + 5 -30.0320 2.00000 + 6 -30.0077 2.00000 + 7 -29.8852 2.00000 + 8 -0.1990 2.00000 + 9 2.6933 2.00000 + 10 4.8622 2.00000 + 11 5.3088 2.00000 + 12 5.5698 2.00000 + 13 6.9576 2.00000 + 14 8.6840 0.00000 + 15 10.4231 0.00000 + 16 12.3103 0.00000 + 17 13.3388 0.00000 + 18 15.0063 0.00000 + + k-point 234 : 0.0667 0.3333 0.2000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7438 2.00000 + 5 -30.0318 2.00000 + 6 -30.0099 2.00000 + 7 -29.8850 2.00000 + 8 -0.1505 2.00000 + 9 2.7229 2.00000 + 10 4.8168 2.00000 + 11 5.2487 2.00000 + 12 5.5888 2.00000 + 13 6.8570 2.00000 + 14 8.7830 0.00000 + 15 10.5162 0.00000 + 16 12.0017 0.00000 + 17 13.5605 0.00000 + 18 14.9311 0.00000 + + k-point 235 : 0.1333 0.3333 0.2000 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2902 2.00000 + 4 -65.7436 2.00000 + 5 -30.0312 2.00000 + 6 -30.0160 2.00000 + 7 -29.8846 2.00000 + 8 -0.0083 2.00000 + 9 2.8063 2.00000 + 10 4.6280 2.00000 + 11 5.1868 2.00000 + 12 5.6156 2.00000 + 13 6.6210 2.00000 + 14 9.0297 0.00000 + 15 10.6548 0.00000 + 16 11.4979 0.00000 + 17 13.6805 0.00000 + 18 16.1680 0.00000 + + k-point 236 : 0.2000 0.3333 0.2000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7435 2.00000 + 5 -30.0305 2.00000 + 6 -30.0249 2.00000 + 7 -29.8838 2.00000 + 8 0.2176 2.00000 + 9 2.9196 2.00000 + 10 4.3150 2.00000 + 11 5.2001 2.00000 + 12 5.6107 2.00000 + 13 6.3844 2.00000 + 14 9.3223 0.00000 + 15 10.4868 0.00000 + 16 11.1488 0.00000 + 17 13.7394 0.00000 + 18 15.2525 0.00000 + + k-point 237 : 0.2667 0.3333 0.2000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7433 2.00000 + 5 -30.0353 2.00000 + 6 -30.0296 2.00000 + 7 -29.8831 2.00000 + 8 0.5095 2.00000 + 9 2.9934 2.00000 + 10 4.0235 2.00000 + 11 5.2081 2.00000 + 12 5.5733 2.00000 + 13 6.2653 2.00000 + 14 9.5540 0.00000 + 15 10.0537 0.00000 + 16 10.8460 0.00000 + 17 14.0317 0.00000 + 18 16.9865 0.00000 + + k-point 238 : 0.3333 0.3333 0.2000 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7431 2.00000 + 5 -30.0450 2.00000 + 6 -30.0288 2.00000 + 7 -29.8823 2.00000 + 8 0.8493 2.00000 + 9 2.8878 2.00000 + 10 3.9281 2.00000 + 11 5.0740 2.00000 + 12 5.6506 2.00000 + 13 6.2584 2.00000 + 14 9.5863 0.00000 + 15 9.6119 0.00000 + 16 10.5896 0.00000 + 17 14.5477 0.00000 + 18 16.1231 0.00000 + + k-point 239 : 0.4000 0.3333 0.2000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7430 2.00000 + 5 -30.0527 2.00000 + 6 -30.0281 2.00000 + 7 -29.8818 2.00000 + 8 1.2065 2.00000 + 9 2.5979 2.00000 + 10 4.0342 2.00000 + 11 4.8601 2.00000 + 12 5.8427 2.00000 + 13 6.2709 2.00000 + 14 9.2185 0.00000 + 15 9.4083 0.00000 + 16 10.5443 0.00000 + 17 14.9799 0.00000 + 18 16.9946 0.00000 + + k-point 240 : 0.4667 0.3333 0.2000 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7429 2.00000 + 5 -30.0568 2.00000 + 6 -30.0277 2.00000 + 7 -29.8814 2.00000 + 8 1.5149 2.00000 + 9 2.3015 2.00000 + 10 4.1783 2.00000 + 11 4.6820 2.00000 + 12 6.0499 2.00000 + 13 6.2287 2.00000 + 14 8.9581 0.00000 + 15 9.2598 0.00000 + 16 10.5742 0.00000 + 17 14.8199 0.00000 + 18 15.4551 0.00000 + + k-point 241 : 0.0000 0.4000 0.2000 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4262 2.00000 + 3 -91.2912 2.00000 + 4 -65.7436 2.00000 + 5 -30.0427 2.00000 + 6 -30.0068 2.00000 + 7 -29.8843 2.00000 + 8 0.2722 2.00000 + 9 2.0800 2.00000 + 10 4.8773 2.00000 + 11 5.1767 2.00000 + 12 5.6077 2.00000 + 13 6.9482 2.00000 + 14 8.9102 0.00000 + 15 10.8202 0.00000 + 16 12.5032 0.00000 + 17 12.8741 0.00000 + 18 14.6540 0.00000 + + k-point 242 : 0.0667 0.4000 0.2000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7436 2.00000 + 5 -30.0425 2.00000 + 6 -30.0088 2.00000 + 7 -29.8842 2.00000 + 8 0.3219 2.00000 + 9 2.1086 2.00000 + 10 4.8435 2.00000 + 11 5.1373 2.00000 + 12 5.6282 2.00000 + 13 6.8548 2.00000 + 14 8.9591 0.00000 + 15 10.8385 0.00000 + 16 12.1616 0.00000 + 17 13.3887 0.00000 + 18 14.7173 0.00000 + + k-point 243 : 0.1333 0.4000 0.2000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7434 2.00000 + 5 -30.0420 2.00000 + 6 -30.0149 2.00000 + 7 -29.8837 2.00000 + 8 0.4637 2.00000 + 9 2.1902 2.00000 + 10 4.6998 2.00000 + 11 5.0929 2.00000 + 12 5.6713 2.00000 + 13 6.6315 2.00000 + 14 9.0845 0.00000 + 15 10.7099 0.00000 + 16 11.8347 0.00000 + 17 13.3260 0.00000 + 18 14.8037 0.00000 + + k-point 244 : 0.2000 0.4000 0.2000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2904 2.00000 + 4 -65.7433 2.00000 + 5 -30.0412 2.00000 + 6 -30.0239 2.00000 + 7 -29.8830 2.00000 + 8 0.6817 2.00000 + 9 2.3190 2.00000 + 10 4.4554 2.00000 + 11 5.0740 2.00000 + 12 5.7125 2.00000 + 13 6.4023 2.00000 + 14 9.2380 0.00000 + 15 10.3235 0.00000 + 16 11.4656 0.00000 + 17 13.6342 0.00000 + 18 15.3546 0.00000 + + k-point 245 : 0.2667 0.4000 0.2000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7431 2.00000 + 5 -30.0404 2.00000 + 6 -30.0342 2.00000 + 7 -29.8822 2.00000 + 8 0.9487 2.00000 + 9 2.4808 2.00000 + 10 4.1899 2.00000 + 11 5.0008 2.00000 + 12 5.7567 2.00000 + 13 6.2838 2.00000 + 14 9.3589 0.00000 + 15 9.8771 0.00000 + 16 10.8863 0.00000 + 17 14.2986 0.00000 + 18 15.7162 0.00000 + + k-point 246 : 0.3333 0.4000 0.2000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2905 2.00000 + 4 -65.7429 2.00000 + 5 -30.0441 2.00000 + 6 -30.0396 2.00000 + 7 -29.8814 2.00000 + 8 1.2299 2.00000 + 9 2.6376 2.00000 + 10 3.9806 2.00000 + 11 4.8199 2.00000 + 12 5.8594 2.00000 + 13 6.2868 2.00000 + 14 9.3046 0.00000 + 15 9.5580 0.00000 + 16 10.2980 0.00000 + 17 14.7255 0.00000 + 18 15.1041 0.00000 + + k-point 247 : 0.4000 0.4000 0.2000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7427 2.00000 + 5 -30.0517 2.00000 + 6 -30.0390 2.00000 + 7 -29.8808 2.00000 + 8 1.4810 2.00000 + 9 2.7241 2.00000 + 10 3.9050 2.00000 + 11 4.5774 2.00000 + 12 6.0293 2.00000 + 13 6.3312 2.00000 + 14 9.0511 0.00000 + 15 9.2924 0.00000 + 16 9.9968 0.00000 + 17 14.8542 0.00000 + 18 17.0014 0.00000 + + k-point 248 : 0.4667 0.4000 0.2000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7427 2.00000 + 5 -30.0559 2.00000 + 6 -30.0387 2.00000 + 7 -29.8806 2.00000 + 8 1.6404 2.00000 + 9 2.7265 2.00000 + 10 3.9706 2.00000 + 11 4.3593 2.00000 + 12 6.1919 2.00000 + 13 6.3459 2.00000 + 14 8.8868 0.00000 + 15 9.0124 0.00000 + 16 9.9580 0.00000 + 17 16.6992 0.00000 + 18 18.2794 0.00000 + + k-point 249 : 0.0000 0.4667 0.2000 + band No. band energies occupation + 1 -91.8816 2.00000 + 2 -91.4266 2.00000 + 3 -91.2915 2.00000 + 4 -65.7435 2.00000 + 5 -30.0485 2.00000 + 6 -30.0062 2.00000 + 7 -29.8839 2.00000 + 8 0.7508 2.00000 + 9 1.5290 2.00000 + 10 4.8872 2.00000 + 11 5.1019 2.00000 + 12 5.6111 2.00000 + 13 6.9563 2.00000 + 14 9.1684 0.00000 + 15 11.0963 0.00000 + 16 11.8845 0.00000 + 17 13.4542 0.00000 + 18 13.9816 0.00000 + + k-point 250 : 0.0667 0.4667 0.2000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7434 2.00000 + 5 -30.0483 2.00000 + 6 -30.0082 2.00000 + 7 -29.8836 2.00000 + 8 0.8074 2.00000 + 9 1.5503 2.00000 + 10 4.8837 2.00000 + 11 5.0282 2.00000 + 12 5.6611 2.00000 + 13 6.8614 2.00000 + 14 9.1821 0.00000 + 15 10.9712 0.00000 + 16 11.9443 0.00000 + 17 13.3175 0.00000 + 18 14.0111 0.00000 + + k-point 251 : 0.1333 0.4667 0.2000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4260 2.00000 + 3 -91.2909 2.00000 + 4 -65.7433 2.00000 + 5 -30.0478 2.00000 + 6 -30.0143 2.00000 + 7 -29.8832 2.00000 + 8 0.9654 2.00000 + 9 1.6153 2.00000 + 10 4.7866 2.00000 + 11 4.9431 2.00000 + 12 5.7637 2.00000 + 13 6.6281 2.00000 + 14 9.2181 0.00000 + 15 10.6031 0.00000 + 16 12.0239 0.00000 + 17 13.2393 0.00000 + 18 14.3926 0.00000 + + k-point 252 : 0.2000 0.4667 0.2000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4260 2.00000 + 3 -91.2909 2.00000 + 4 -65.7432 2.00000 + 5 -30.0471 2.00000 + 6 -30.0234 2.00000 + 7 -29.8825 2.00000 + 8 1.1904 2.00000 + 9 1.7430 2.00000 + 10 4.5650 2.00000 + 11 4.9174 2.00000 + 12 5.8769 2.00000 + 13 6.3717 2.00000 + 14 9.2652 0.00000 + 15 10.1220 0.00000 + 16 11.6464 0.00000 + 17 13.6165 0.00000 + 18 14.7417 0.00000 + + k-point 253 : 0.2667 0.4667 0.2000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2905 2.00000 + 4 -65.7430 2.00000 + 5 -30.0463 2.00000 + 6 -30.0337 2.00000 + 7 -29.8817 2.00000 + 8 1.4108 2.00000 + 9 1.9753 2.00000 + 10 4.3324 2.00000 + 11 4.8220 2.00000 + 12 5.9828 2.00000 + 13 6.2221 2.00000 + 14 9.3061 0.00000 + 15 9.6403 0.00000 + 16 10.9581 0.00000 + 17 14.3215 0.00000 + 18 14.8365 0.00000 + + k-point 254 : 0.3333 0.4667 0.2000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7428 2.00000 + 5 -30.0455 2.00000 + 6 -30.0435 2.00000 + 7 -29.8809 2.00000 + 8 1.5658 2.00000 + 9 2.3279 2.00000 + 10 4.1275 2.00000 + 11 4.6077 2.00000 + 12 6.0847 2.00000 + 13 6.2409 2.00000 + 14 9.1753 0.00000 + 15 9.3638 0.00000 + 16 10.2421 0.00000 + 17 14.7264 0.00000 + 18 15.1864 0.00000 + + k-point 255 : 0.4000 0.4667 0.2000 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7426 2.00000 + 5 -30.0512 2.00000 + 6 -30.0449 2.00000 + 7 -29.8803 2.00000 + 8 1.6627 2.00000 + 9 2.7320 2.00000 + 10 3.9747 2.00000 + 11 4.3124 2.00000 + 12 6.2217 2.00000 + 13 6.3335 2.00000 + 14 8.8577 0.00000 + 15 9.2736 0.00000 + 16 9.7144 0.00000 + 17 14.6891 0.00000 + 18 16.0466 0.00000 + + k-point 256 : 0.4667 0.4667 0.2000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7426 2.00000 + 5 -30.0554 2.00000 + 6 -30.0446 2.00000 + 7 -29.8800 2.00000 + 8 1.7108 2.00000 + 9 3.0627 2.00000 + 10 3.8918 2.00000 + 11 4.0425 2.00000 + 12 6.3299 2.00000 + 13 6.4187 2.00000 + 14 8.6764 0.00000 + 15 9.0361 0.00000 + 16 9.5744 0.00000 + 17 15.1073 0.00000 + 18 16.7779 0.00000 + + k-point 257 : 0.0000 0.0000 0.2667 + band No. band energies occupation + 1 -91.8791 2.00000 + 2 -91.4239 2.00000 + 3 -91.2890 2.00000 + 4 -65.7431 2.00000 + 5 -30.0077 2.00000 + 6 -29.9745 2.00000 + 7 -29.9360 2.00000 + 8 -0.9922 2.00000 + 9 4.1697 2.00000 + 10 4.4791 2.00000 + 11 5.2762 2.00000 + 12 5.5520 2.00000 + 13 8.4050 0.00000 + 14 8.4412 0.00000 + 15 9.7376 0.00000 + 16 9.9653 0.00000 + 17 14.6114 0.00000 + 18 15.5437 0.00000 + + k-point 258 : 0.0667 0.0000 0.2667 + band No. band energies occupation + 1 -91.8795 2.00000 + 2 -91.4244 2.00000 + 3 -91.2894 2.00000 + 4 -65.7431 2.00000 + 5 -30.0099 2.00000 + 6 -29.9743 2.00000 + 7 -29.9359 2.00000 + 8 -0.9433 2.00000 + 9 4.1493 2.00000 + 10 4.4316 2.00000 + 11 5.2543 2.00000 + 12 5.5665 2.00000 + 13 8.1472 0.00018 + 14 8.5627 0.00000 + 15 9.6381 0.00000 + 16 10.2814 0.00000 + 17 14.5670 0.00000 + 18 16.3874 0.00000 + + k-point 259 : 0.1333 0.0000 0.2667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7431 2.00000 + 5 -30.0160 2.00000 + 6 -29.9738 2.00000 + 7 -29.9355 2.00000 + 8 -0.7997 2.00000 + 9 3.9591 2.00000 + 10 4.4276 2.00000 + 11 5.2220 2.00000 + 12 5.6067 2.00000 + 13 7.6690 1.99751 + 14 8.8770 0.00000 + 15 9.3920 0.00000 + 16 10.9261 0.00000 + 17 14.5052 0.00000 + 18 15.8789 0.00000 + + k-point 260 : 0.2000 0.0000 0.2667 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7429 2.00000 + 5 -30.0250 2.00000 + 6 -29.9729 2.00000 + 7 -29.9348 2.00000 + 8 -0.5652 2.00000 + 9 3.5680 2.00000 + 10 4.5355 2.00000 + 11 5.2114 2.00000 + 12 5.6623 2.00000 + 13 7.2067 2.00000 + 14 9.1059 0.00000 + 15 9.2908 0.00000 + 16 11.6363 0.00000 + 17 14.1697 0.00000 + 18 15.7589 0.00000 + + k-point 261 : 0.2667 0.0000 0.2667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7427 2.00000 + 5 -30.0353 2.00000 + 6 -29.9719 2.00000 + 7 -29.9341 2.00000 + 8 -0.2521 2.00000 + 9 3.0868 2.00000 + 10 4.6814 2.00000 + 11 5.2185 2.00000 + 12 5.7142 2.00000 + 13 6.8332 2.00000 + 14 8.8793 0.00000 + 15 9.7265 0.00000 + 16 12.2929 0.00000 + 17 13.5685 0.00000 + 18 16.1058 0.00000 + + k-point 262 : 0.3333 0.0000 0.2667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7425 2.00000 + 5 -30.0450 2.00000 + 6 -29.9710 2.00000 + 7 -29.9334 2.00000 + 8 0.1257 2.00000 + 9 2.5716 2.00000 + 10 4.8261 2.00000 + 11 5.2273 2.00000 + 12 5.7364 2.00000 + 13 6.5820 2.00000 + 14 8.7708 0.00000 + 15 10.1434 0.00000 + 16 12.7927 0.00000 + 17 12.8308 0.00000 + 18 15.4481 0.00000 + + k-point 263 : 0.4000 0.0000 0.2667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7424 2.00000 + 5 -30.0526 2.00000 + 6 -29.9703 2.00000 + 7 -29.9329 2.00000 + 8 0.5574 2.00000 + 9 2.0489 2.00000 + 10 4.9438 2.00000 + 11 5.2220 2.00000 + 12 5.7179 2.00000 + 13 6.4574 2.00000 + 14 8.7837 0.00000 + 15 10.5245 0.00000 + 16 12.1279 0.00000 + 17 13.0743 0.00000 + 18 15.2254 0.00000 + + k-point 264 : 0.4667 0.0000 0.2667 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7423 2.00000 + 5 -30.0568 2.00000 + 6 -29.9699 2.00000 + 7 -29.9325 2.00000 + 8 1.0239 2.00000 + 9 1.5364 2.00000 + 10 5.0194 2.00000 + 11 5.2031 2.00000 + 12 5.6900 2.00000 + 13 6.4177 2.00000 + 14 8.8427 0.00000 + 15 10.8611 0.00000 + 16 11.5754 0.00000 + 17 13.1725 0.00000 + 18 14.7884 0.00000 + + k-point 265 : 0.0000 0.0667 0.2667 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4246 2.00000 + 3 -91.2897 2.00000 + 4 -65.7431 2.00000 + 5 -30.0075 2.00000 + 6 -29.9776 2.00000 + 7 -29.9357 2.00000 + 8 -0.9418 2.00000 + 9 4.1601 2.00000 + 10 4.4633 2.00000 + 11 5.2925 2.00000 + 12 5.4803 2.00000 + 13 8.1369 0.00033 + 14 8.5843 0.00000 + 15 9.8748 0.00000 + 16 14.2706 0.00000 + 17 16.6056 0.00000 + 18 16.6825 0.00000 + + k-point 266 : 0.0667 0.0667 0.2667 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4246 2.00000 + 3 -91.2896 2.00000 + 4 -65.7431 2.00000 + 5 -30.0097 2.00000 + 6 -29.9774 2.00000 + 7 -29.9356 2.00000 + 8 -0.8921 2.00000 + 9 4.1617 2.00000 + 10 4.4064 2.00000 + 11 5.2343 2.00000 + 12 5.5218 2.00000 + 13 7.8744 1.09434 + 14 8.6852 0.00000 + 15 9.8973 0.00000 + 16 10.2230 0.00000 + 17 14.6840 0.00000 + 18 15.1549 0.00000 + + k-point 267 : 0.1333 0.0667 0.2667 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4246 2.00000 + 3 -91.2897 2.00000 + 4 -65.7430 2.00000 + 5 -30.0157 2.00000 + 6 -29.9768 2.00000 + 7 -29.9352 2.00000 + 8 -0.7465 2.00000 + 9 4.0060 2.00000 + 10 4.3910 2.00000 + 11 5.1646 2.00000 + 12 5.5823 2.00000 + 13 7.4453 2.00000 + 14 8.9926 0.00000 + 15 9.6515 0.00000 + 16 10.7842 0.00000 + 17 14.7401 0.00000 + 18 15.9068 0.00000 + + k-point 268 : 0.2000 0.0667 0.2667 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7428 2.00000 + 5 -30.0247 2.00000 + 6 -29.9759 2.00000 + 7 -29.9346 2.00000 + 8 -0.5124 2.00000 + 9 3.6173 2.00000 + 10 4.5175 2.00000 + 11 5.1467 2.00000 + 12 5.6283 2.00000 + 13 7.0241 2.00000 + 14 9.3214 0.00000 + 15 9.4009 0.00000 + 16 11.4365 0.00000 + 17 14.2651 0.00000 + 18 15.7142 0.00000 + + k-point 269 : 0.2667 0.0667 0.2667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7426 2.00000 + 5 -30.0350 2.00000 + 6 -29.9750 2.00000 + 7 -29.9339 2.00000 + 8 -0.2008 2.00000 + 9 3.1352 2.00000 + 10 4.6826 2.00000 + 11 5.1753 2.00000 + 12 5.6422 2.00000 + 13 6.6940 2.00000 + 14 9.0514 0.00000 + 15 9.8080 0.00000 + 16 13.0238 0.00000 + 17 15.4136 0.00000 + 18 16.0797 0.00000 + + k-point 270 : 0.3333 0.0667 0.2667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7424 2.00000 + 5 -30.0447 2.00000 + 6 -29.9741 2.00000 + 7 -29.9332 2.00000 + 8 0.1782 2.00000 + 9 2.6185 2.00000 + 10 4.8334 2.00000 + 11 5.2268 2.00000 + 12 5.6216 2.00000 + 13 6.4836 2.00000 + 14 8.8850 0.00000 + 15 10.1806 0.00000 + 16 12.1773 0.00000 + 17 13.4647 0.00000 + 18 15.3704 0.00000 + + k-point 271 : 0.4000 0.0667 0.2667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7423 2.00000 + 5 -30.0524 2.00000 + 6 -29.9734 2.00000 + 7 -29.9327 2.00000 + 8 0.6080 2.00000 + 9 2.0944 2.00000 + 10 4.9487 2.00000 + 11 5.2360 2.00000 + 12 5.6214 2.00000 + 13 6.3720 2.00000 + 14 8.8398 0.00000 + 15 10.4741 0.00000 + 16 11.9232 0.00000 + 17 13.5675 0.00000 + 18 15.0575 0.00000 + + k-point 272 : 0.4667 0.0667 0.2667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7422 2.00000 + 5 -30.0566 2.00000 + 6 -29.9730 2.00000 + 7 -29.9323 2.00000 + 8 1.0767 2.00000 + 9 1.5797 2.00000 + 10 5.0331 2.00000 + 11 5.1824 2.00000 + 12 5.6559 2.00000 + 13 6.3220 2.00000 + 14 8.8601 0.00000 + 15 10.6497 0.00000 + 16 11.6448 0.00000 + 17 13.4921 0.00000 + 18 14.9068 0.00000 + + k-point 273 : 0.0000 0.1333 0.2667 + band No. band energies occupation + 1 -91.8794 2.00000 + 2 -91.4243 2.00000 + 3 -91.2893 2.00000 + 4 -65.7429 2.00000 + 5 -30.0066 2.00000 + 6 -29.9862 2.00000 + 7 -29.9351 2.00000 + 8 -0.7866 2.00000 + 9 4.0335 2.00000 + 10 4.4889 2.00000 + 11 5.3371 2.00000 + 12 5.3463 2.00000 + 13 7.5604 1.99999 + 14 8.8667 0.00000 + 15 9.5757 0.00000 + 16 10.8119 0.00000 + 17 15.0193 0.00000 + 18 16.5679 0.00000 + + k-point 274 : 0.0667 0.1333 0.2667 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4246 2.00000 + 3 -91.2896 2.00000 + 4 -65.7429 2.00000 + 5 -30.0088 2.00000 + 6 -29.9860 2.00000 + 7 -29.9350 2.00000 + 8 -0.7381 2.00000 + 9 4.0728 2.00000 + 10 4.4246 2.00000 + 11 5.1607 2.00000 + 12 5.4807 2.00000 + 13 7.3825 2.00000 + 14 8.9797 0.00000 + 15 9.7876 0.00000 + 16 10.6899 0.00000 + 17 14.8927 0.00000 + 18 16.0636 0.00000 + + k-point 275 : 0.1333 0.1333 0.2667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7428 2.00000 + 5 -30.0149 2.00000 + 6 -29.9854 2.00000 + 7 -29.9346 2.00000 + 8 -0.5926 2.00000 + 9 4.1214 2.00000 + 10 4.2640 2.00000 + 11 5.0156 2.00000 + 12 5.5704 2.00000 + 13 7.0120 2.00000 + 14 9.2675 0.00000 + 15 10.0834 0.00000 + 16 10.5691 0.00000 + 17 14.8072 0.00000 + 18 15.6699 0.00000 + + k-point 276 : 0.2000 0.1333 0.2667 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4248 2.00000 + 3 -91.2899 2.00000 + 4 -65.7426 2.00000 + 5 -30.0239 2.00000 + 6 -29.9846 2.00000 + 7 -29.9340 2.00000 + 8 -0.3590 2.00000 + 9 3.7621 2.00000 + 10 4.4212 2.00000 + 11 4.9587 2.00000 + 12 5.6136 2.00000 + 13 6.6438 2.00000 + 14 9.6171 0.00000 + 15 9.8168 0.00000 + 16 11.0150 0.00000 + 17 14.3910 0.00000 + 18 16.1444 0.00000 + + k-point 277 : 0.2667 0.1333 0.2667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7424 2.00000 + 5 -30.0342 2.00000 + 6 -29.9837 2.00000 + 7 -29.9333 2.00000 + 8 -0.0480 2.00000 + 9 3.2758 2.00000 + 10 4.6646 2.00000 + 11 4.9722 2.00000 + 12 5.5802 2.00000 + 13 6.3794 2.00000 + 14 9.4388 0.00000 + 15 9.9520 0.00000 + 16 11.4875 0.00000 + 17 13.9130 0.00000 + 18 15.6021 0.00000 + + k-point 278 : 0.3333 0.1333 0.2667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7422 2.00000 + 5 -30.0440 2.00000 + 6 -29.9828 2.00000 + 7 -29.9326 2.00000 + 8 0.3278 2.00000 + 9 2.7560 2.00000 + 10 4.8584 2.00000 + 11 5.1054 2.00000 + 12 5.4544 2.00000 + 13 6.2435 2.00000 + 14 9.1535 0.00000 + 15 10.1417 0.00000 + 16 11.7635 0.00000 + 17 13.9583 0.00000 + 18 15.3074 0.00000 + + k-point 279 : 0.4000 0.1333 0.2667 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7421 2.00000 + 5 -30.0516 2.00000 + 6 -29.9821 2.00000 + 7 -29.9320 2.00000 + 8 0.7545 2.00000 + 9 2.2317 2.00000 + 10 4.9434 2.00000 + 11 5.2715 2.00000 + 12 5.3901 2.00000 + 13 6.1613 2.00000 + 14 8.9788 0.00000 + 15 10.1660 0.00000 + 16 11.8759 0.00000 + 17 14.0401 0.00000 + 18 14.7589 0.00000 + + k-point 280 : 0.4667 0.1333 0.2667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7421 2.00000 + 5 -30.0559 2.00000 + 6 -29.9817 2.00000 + 7 -29.9317 2.00000 + 8 1.2187 2.00000 + 9 1.7187 2.00000 + 10 5.0186 2.00000 + 11 5.1440 2.00000 + 12 5.6004 2.00000 + 13 6.0785 2.00000 + 14 8.9071 0.00000 + 15 10.1124 0.00000 + 16 11.9295 0.00000 + 17 14.1658 0.00000 + 18 14.5853 0.00000 + + k-point 281 : 0.0000 0.2000 0.2667 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7427 2.00000 + 5 -30.0054 2.00000 + 6 -29.9989 2.00000 + 7 -29.9343 2.00000 + 8 -0.5379 2.00000 + 9 3.7030 2.00000 + 10 4.6090 2.00000 + 11 5.2630 2.00000 + 12 5.3959 2.00000 + 13 7.0695 2.00000 + 14 9.0908 0.00000 + 15 9.4357 0.00000 + 16 11.5575 0.00000 + 17 14.3516 0.00000 + 18 16.3601 0.00000 + + k-point 282 : 0.0667 0.2000 0.2667 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7426 2.00000 + 5 -30.0076 2.00000 + 6 -29.9987 2.00000 + 7 -29.9341 2.00000 + 8 -0.4887 2.00000 + 9 3.7492 2.00000 + 10 4.5743 2.00000 + 11 5.0985 2.00000 + 12 5.4857 2.00000 + 13 6.9239 2.00000 + 14 9.2263 0.00000 + 15 9.5939 0.00000 + 16 11.3727 0.00000 + 17 14.7170 0.00000 + 18 16.1538 0.00000 + + k-point 283 : 0.1333 0.2000 0.2667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7426 2.00000 + 5 -30.0138 2.00000 + 6 -29.9982 2.00000 + 7 -29.9337 2.00000 + 8 -0.3455 2.00000 + 9 3.8851 2.00000 + 10 4.3963 2.00000 + 11 4.8981 2.00000 + 12 5.5780 2.00000 + 13 6.6012 2.00000 + 14 9.5131 0.00000 + 15 9.9903 0.00000 + 16 10.9583 0.00000 + 17 15.0569 0.00000 + 18 16.3985 0.00000 + + k-point 284 : 0.2000 0.2000 0.2667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7424 2.00000 + 5 -30.0228 2.00000 + 6 -29.9974 2.00000 + 7 -29.9331 2.00000 + 8 -0.1133 2.00000 + 9 3.9680 2.00000 + 10 4.1423 2.00000 + 11 4.8263 2.00000 + 12 5.6458 2.00000 + 13 6.2595 2.00000 + 14 9.7738 0.00000 + 15 10.2498 0.00000 + 16 10.7319 0.00000 + 17 13.9527 0.00000 + 18 15.3880 0.00000 + + k-point 285 : 0.2667 0.2000 0.2667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7422 2.00000 + 5 -30.0330 2.00000 + 6 -29.9965 2.00000 + 7 -29.9323 2.00000 + 8 0.1946 2.00000 + 9 3.4921 2.00000 + 10 4.4185 2.00000 + 11 4.8251 2.00000 + 12 5.6324 2.00000 + 13 6.0245 2.00000 + 14 9.7715 0.00000 + 15 9.9943 0.00000 + 16 11.1510 0.00000 + 17 13.7014 0.00000 + 18 16.5495 0.00000 + + k-point 286 : 0.3333 0.2000 0.2667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7420 2.00000 + 5 -30.0429 2.00000 + 6 -29.9956 2.00000 + 7 -29.9316 2.00000 + 8 0.5628 2.00000 + 9 2.9731 2.00000 + 10 4.7045 2.00000 + 11 4.9098 2.00000 + 12 5.4759 2.00000 + 13 5.9673 2.00000 + 14 9.4317 0.00000 + 15 9.8472 0.00000 + 16 11.5921 0.00000 + 17 13.6688 0.00000 + 18 15.3116 0.00000 + + k-point 287 : 0.4000 0.2000 0.2667 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7418 2.00000 + 5 -30.0505 2.00000 + 6 -29.9949 2.00000 + 7 -29.9311 2.00000 + 8 0.9775 2.00000 + 9 2.4579 2.00000 + 10 4.7922 2.00000 + 11 5.2187 2.00000 + 12 5.3117 2.00000 + 13 5.9343 2.00000 + 14 9.1395 0.00000 + 15 9.6338 0.00000 + 16 11.9354 0.00000 + 17 13.8117 0.00000 + 18 15.0790 0.00000 + + k-point 288 : 0.4667 0.2000 0.2667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7418 2.00000 + 5 -30.0548 2.00000 + 6 -29.9946 2.00000 + 7 -29.9308 2.00000 + 8 1.4086 2.00000 + 9 1.9761 2.00000 + 10 4.8168 2.00000 + 11 5.2061 2.00000 + 12 5.5597 2.00000 + 13 5.8151 2.00000 + 14 8.9724 0.00000 + 15 9.4790 0.00000 + 16 12.1291 0.00000 + 17 14.1071 0.00000 + 18 15.6601 0.00000 + + k-point 289 : 0.0000 0.2667 0.2667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2903 2.00000 + 4 -65.7424 2.00000 + 5 -30.0135 2.00000 + 6 -30.0040 2.00000 + 7 -29.9332 2.00000 + 8 -0.2065 2.00000 + 9 3.2450 2.00000 + 10 4.7589 2.00000 + 11 5.2488 2.00000 + 12 5.4433 2.00000 + 13 6.6906 2.00000 + 14 8.9578 0.00000 + 15 9.7562 0.00000 + 16 12.2284 0.00000 + 17 13.6467 0.00000 + 18 15.6738 0.00000 + + k-point 290 : 0.0667 0.2667 0.2667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7424 2.00000 + 5 -30.0133 2.00000 + 6 -30.0062 2.00000 + 7 -29.9330 2.00000 + 8 -0.1582 2.00000 + 9 3.2898 2.00000 + 10 4.7575 2.00000 + 11 5.1144 2.00000 + 12 5.4721 2.00000 + 13 6.5804 2.00000 + 14 9.0982 0.00000 + 15 9.8501 0.00000 + 16 11.9458 0.00000 + 17 13.9323 0.00000 + 18 15.6257 0.00000 + + k-point 291 : 0.1333 0.2667 0.2667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7422 2.00000 + 5 -30.0128 2.00000 + 6 -30.0124 2.00000 + 7 -29.9326 2.00000 + 8 -0.0156 2.00000 + 9 3.4223 2.00000 + 10 4.6865 2.00000 + 11 4.8536 2.00000 + 12 5.5334 2.00000 + 13 6.3183 2.00000 + 14 9.4083 0.00000 + 15 10.0693 0.00000 + 16 11.4327 0.00000 + 17 13.8385 0.00000 + 18 15.3753 0.00000 + + k-point 292 : 0.2000 0.2667 0.2667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7421 2.00000 + 5 -30.0214 2.00000 + 6 -30.0120 2.00000 + 7 -29.9320 2.00000 + 8 0.2115 2.00000 + 9 3.6251 2.00000 + 10 4.2944 2.00000 + 11 4.8274 2.00000 + 12 5.6180 2.00000 + 13 6.0093 2.00000 + 14 9.6312 0.00000 + 15 10.2757 0.00000 + 16 11.0215 0.00000 + 17 13.6105 0.00000 + 18 15.5689 0.00000 + + k-point 293 : 0.2667 0.2667 0.2667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7418 2.00000 + 5 -30.0317 2.00000 + 6 -30.0111 2.00000 + 7 -29.9313 2.00000 + 8 0.5117 2.00000 + 9 3.6756 2.00000 + 10 4.0282 2.00000 + 11 4.8696 2.00000 + 12 5.6990 2.00000 + 13 5.7349 2.00000 + 14 9.5362 0.00000 + 15 10.2061 0.00000 + 16 11.0080 0.00000 + 17 13.5324 0.00000 + 18 15.5343 0.00000 + + k-point 294 : 0.3333 0.2667 0.2667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7417 2.00000 + 5 -30.0416 2.00000 + 6 -30.0103 2.00000 + 7 -29.9306 2.00000 + 8 0.8642 2.00000 + 9 3.2318 2.00000 + 10 4.2558 2.00000 + 11 4.9684 2.00000 + 12 5.4836 2.00000 + 13 5.8019 2.00000 + 14 9.2565 0.00000 + 15 9.8056 0.00000 + 16 11.2920 0.00000 + 17 13.6768 0.00000 + 18 15.4872 0.00000 + + k-point 295 : 0.4000 0.2667 0.2667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7415 2.00000 + 5 -30.0493 2.00000 + 6 -30.0096 2.00000 + 7 -29.9300 2.00000 + 8 1.2490 2.00000 + 9 2.7560 2.00000 + 10 4.4489 2.00000 + 11 5.1394 2.00000 + 12 5.3565 2.00000 + 13 5.8359 2.00000 + 14 8.9975 0.00000 + 15 9.3530 0.00000 + 16 11.5665 0.00000 + 17 14.0109 0.00000 + 18 15.4805 0.00000 + + k-point 296 : 0.4667 0.2667 0.2667 + band No. band energies occupation + 1 -91.8796 2.00000 + 2 -91.4245 2.00000 + 3 -91.2895 2.00000 + 4 -65.7414 2.00000 + 5 -30.0535 2.00000 + 6 -30.0091 2.00000 + 7 -29.9298 2.00000 + 8 1.6087 2.00000 + 9 2.3515 2.00000 + 10 4.5288 2.00000 + 11 5.1724 2.00000 + 12 5.4938 2.00000 + 13 5.7819 2.00000 + 14 8.8529 0.00000 + 15 9.0524 0.00000 + 16 11.7104 0.00000 + 17 14.0573 0.00000 + 18 15.0900 0.00000 + + k-point 297 : 0.0000 0.3333 0.2667 + band No. band energies occupation + 1 -91.8814 2.00000 + 2 -91.4264 2.00000 + 3 -91.2914 2.00000 + 4 -65.7422 2.00000 + 5 -30.0274 2.00000 + 6 -30.0027 2.00000 + 7 -29.9322 2.00000 + 8 0.1919 2.00000 + 9 2.7296 2.00000 + 10 4.8887 2.00000 + 11 5.2689 2.00000 + 12 5.4479 2.00000 + 13 6.4571 2.00000 + 14 8.9309 0.00000 + 15 10.1141 0.00000 + 16 12.7287 0.00000 + 17 12.8456 0.00000 + 18 15.3170 0.00000 + + k-point 298 : 0.0667 0.3333 0.2667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7421 2.00000 + 5 -30.0272 2.00000 + 6 -30.0048 2.00000 + 7 -29.9320 2.00000 + 8 0.2409 2.00000 + 9 2.7729 2.00000 + 10 4.8898 2.00000 + 11 5.2223 2.00000 + 12 5.3965 2.00000 + 13 6.3796 2.00000 + 14 9.0274 0.00000 + 15 10.1593 0.00000 + 16 12.1501 0.00000 + 17 13.4325 0.00000 + 18 15.0368 0.00000 + + k-point 299 : 0.1333 0.3333 0.2667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7419 2.00000 + 5 -30.0267 2.00000 + 6 -30.0110 2.00000 + 7 -29.9316 2.00000 + 8 0.3806 2.00000 + 9 2.8996 2.00000 + 10 4.8497 2.00000 + 11 5.0127 2.00000 + 12 5.3985 2.00000 + 13 6.1868 2.00000 + 14 9.2455 0.00000 + 15 10.1860 0.00000 + 16 11.6938 0.00000 + 17 13.6620 0.00000 + 18 14.8455 0.00000 + + k-point 300 : 0.2000 0.3333 0.2667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7418 2.00000 + 5 -30.0259 2.00000 + 6 -30.0201 2.00000 + 7 -29.9310 2.00000 + 8 0.6011 2.00000 + 9 3.0992 2.00000 + 10 4.5252 2.00000 + 11 4.9705 2.00000 + 12 5.4410 2.00000 + 13 5.9674 2.00000 + 14 9.3795 0.00000 + 15 10.0938 0.00000 + 16 11.4215 0.00000 + 17 13.4946 0.00000 + 18 15.3249 0.00000 + + k-point 301 : 0.2667 0.3333 0.2667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7416 2.00000 + 5 -30.0305 2.00000 + 6 -30.0251 2.00000 + 7 -29.9303 2.00000 + 8 0.8844 2.00000 + 9 3.3282 2.00000 + 10 4.1307 2.00000 + 11 4.9976 2.00000 + 12 5.4432 2.00000 + 13 5.8368 2.00000 + 14 9.1709 0.00000 + 15 10.0960 0.00000 + 16 11.0760 0.00000 + 17 13.6019 0.00000 + 18 15.5760 0.00000 + + k-point 302 : 0.3333 0.3333 0.2667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7414 2.00000 + 5 -30.0404 2.00000 + 6 -30.0242 2.00000 + 7 -29.9296 2.00000 + 8 1.2071 2.00000 + 9 3.3733 2.00000 + 10 3.9450 2.00000 + 11 5.0033 2.00000 + 12 5.4115 2.00000 + 13 5.8500 2.00000 + 14 8.8027 0.00000 + 15 9.9189 0.00000 + 16 10.8392 0.00000 + 17 13.9632 0.00000 + 18 15.2363 0.00000 + + k-point 303 : 0.4000 0.3333 0.2667 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7413 2.00000 + 5 -30.0482 2.00000 + 6 -30.0236 2.00000 + 7 -29.9291 2.00000 + 8 1.5374 2.00000 + 9 3.0788 2.00000 + 10 4.0952 2.00000 + 11 4.9405 2.00000 + 12 5.4963 2.00000 + 13 5.8970 2.00000 + 14 8.4845 0.00000 + 15 9.4593 0.00000 + 16 10.8758 0.00000 + 17 14.4053 0.00000 + 18 17.6986 0.00000 + + k-point 304 : 0.4667 0.3333 0.2667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7411 2.00000 + 5 -30.0524 2.00000 + 6 -30.0233 2.00000 + 7 -29.9289 2.00000 + 8 1.8017 2.00000 + 9 2.7984 2.00000 + 10 4.2319 2.00000 + 11 4.8727 2.00000 + 12 5.6545 2.00000 + 13 5.8902 2.00000 + 14 8.3046 0.00000 + 15 9.1174 0.00000 + 16 10.9361 0.00000 + 17 14.6714 0.00000 + 18 15.1061 0.00000 + + k-point 305 : 0.0000 0.4000 0.2667 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2910 2.00000 + 4 -65.7419 2.00000 + 5 -30.0381 2.00000 + 6 -30.0016 2.00000 + 7 -29.9314 2.00000 + 8 0.6438 2.00000 + 9 2.1972 2.00000 + 10 4.9816 2.00000 + 11 5.2821 2.00000 + 12 5.4079 2.00000 + 13 6.3587 2.00000 + 14 9.0891 0.00000 + 15 10.4109 0.00000 + 16 12.0762 0.00000 + 17 12.9720 0.00000 + 18 14.7931 0.00000 + + k-point 306 : 0.0667 0.4000 0.2667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7418 2.00000 + 5 -30.0379 2.00000 + 6 -30.0038 2.00000 + 7 -29.9312 2.00000 + 8 0.6917 2.00000 + 9 2.2385 2.00000 + 10 4.9684 2.00000 + 11 5.2605 2.00000 + 12 5.3795 2.00000 + 13 6.2871 2.00000 + 14 9.1342 0.00000 + 15 10.3626 0.00000 + 16 11.8755 0.00000 + 17 13.5638 0.00000 + 18 14.7415 0.00000 + + k-point 307 : 0.1333 0.4000 0.2667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7417 2.00000 + 5 -30.0374 2.00000 + 6 -30.0100 2.00000 + 7 -29.9308 2.00000 + 8 0.8289 2.00000 + 9 2.3628 2.00000 + 10 4.8680 2.00000 + 11 5.2167 2.00000 + 12 5.3487 2.00000 + 13 6.1151 2.00000 + 14 9.2333 0.00000 + 15 10.1098 0.00000 + 16 11.7864 0.00000 + 17 13.8645 0.00000 + 18 14.5821 0.00000 + + k-point 308 : 0.2000 0.4000 0.2667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7415 2.00000 + 5 -30.0368 2.00000 + 6 -30.0191 2.00000 + 7 -29.9302 2.00000 + 8 1.0385 2.00000 + 9 2.5659 2.00000 + 10 4.6184 2.00000 + 11 5.2494 2.00000 + 12 5.2935 2.00000 + 13 5.9474 2.00000 + 14 9.2299 0.00000 + 15 9.7805 0.00000 + 16 11.7623 0.00000 + 17 14.6669 0.00000 + 18 33.9627 0.00000 + + k-point 309 : 0.2667 0.4000 0.2667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7413 2.00000 + 5 -30.0360 2.00000 + 6 -30.0295 2.00000 + 7 -29.9295 2.00000 + 8 1.2933 2.00000 + 9 2.8351 2.00000 + 10 4.3053 2.00000 + 11 5.1462 2.00000 + 12 5.3500 2.00000 + 13 5.8888 2.00000 + 14 8.8751 0.00000 + 15 9.7440 0.00000 + 16 11.2586 0.00000 + 17 13.7436 0.00000 + 18 15.3267 0.00000 + + k-point 310 : 0.3333 0.4000 0.2667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2908 2.00000 + 4 -65.7412 2.00000 + 5 -30.0394 2.00000 + 6 -30.0352 2.00000 + 7 -29.9289 2.00000 + 8 1.5626 2.00000 + 9 3.1227 2.00000 + 10 4.0176 2.00000 + 11 4.9307 2.00000 + 12 5.5039 2.00000 + 13 5.9329 2.00000 + 14 8.4289 0.00000 + 15 9.7601 0.00000 + 16 10.6018 0.00000 + 17 14.2919 0.00000 + 18 15.0899 0.00000 + + k-point 311 : 0.4000 0.4000 0.2667 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2911 2.00000 + 4 -65.7410 2.00000 + 5 -30.0472 2.00000 + 6 -30.0346 2.00000 + 7 -29.9284 2.00000 + 8 1.8088 2.00000 + 9 3.2901 2.00000 + 10 3.8891 2.00000 + 11 4.7082 2.00000 + 12 5.7010 2.00000 + 13 6.0056 2.00000 + 14 8.0678 0.00887 + 15 9.5108 0.00000 + 16 10.2464 0.00000 + 17 14.9130 0.00000 + 18 15.6767 0.00000 + + k-point 312 : 0.4667 0.4000 0.2667 + band No. band energies occupation + 1 -91.8813 2.00000 + 2 -91.4263 2.00000 + 3 -91.2912 2.00000 + 4 -65.7409 2.00000 + 5 -30.0515 2.00000 + 6 -30.0343 2.00000 + 7 -29.9281 2.00000 + 8 1.9715 2.00000 + 9 3.2549 2.00000 + 10 3.9834 2.00000 + 11 4.5315 2.00000 + 12 5.8883 2.00000 + 13 6.0297 2.00000 + 14 7.8661 1.18669 + 15 9.1689 0.00000 + 16 10.2004 0.00000 + 17 15.0616 0.00000 + 18 32.0644 0.00000 + + k-point 313 : 0.0000 0.4667 0.2667 + band No. band energies occupation + 1 -91.8815 2.00000 + 2 -91.4266 2.00000 + 3 -91.2915 2.00000 + 4 -65.7418 2.00000 + 5 -30.0440 2.00000 + 6 -30.0011 2.00000 + 7 -29.9310 2.00000 + 8 1.1269 2.00000 + 9 1.6721 2.00000 + 10 5.0342 2.00000 + 11 5.2771 2.00000 + 12 5.3683 2.00000 + 13 6.3348 2.00000 + 14 9.3061 0.00000 + 15 10.6059 0.00000 + 16 11.5175 0.00000 + 17 13.0325 0.00000 + 18 14.6615 0.00000 + + k-point 314 : 0.0667 0.4667 0.2667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2907 2.00000 + 4 -65.7417 2.00000 + 5 -30.0438 2.00000 + 6 -30.0032 2.00000 + 7 -29.9308 2.00000 + 8 1.1784 2.00000 + 9 1.7101 2.00000 + 10 5.0365 2.00000 + 11 5.1518 2.00000 + 12 5.4647 2.00000 + 13 6.2520 2.00000 + 14 9.3181 0.00000 + 15 10.4031 0.00000 + 16 11.5903 0.00000 + 17 13.3633 0.00000 + 18 14.5583 0.00000 + + k-point 315 : 0.1333 0.4667 0.2667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4252 2.00000 + 3 -91.2901 2.00000 + 4 -65.7415 2.00000 + 5 -30.0433 2.00000 + 6 -30.0093 2.00000 + 7 -29.9303 2.00000 + 8 1.3163 2.00000 + 9 1.8312 2.00000 + 10 4.8941 2.00000 + 11 5.1190 2.00000 + 12 5.5631 2.00000 + 13 6.0425 2.00000 + 14 9.3454 0.00000 + 15 9.9129 0.00000 + 16 12.0493 0.00000 + 17 13.9108 0.00000 + 18 14.3729 0.00000 + + k-point 316 : 0.2000 0.4667 0.2667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7414 2.00000 + 5 -30.0427 2.00000 + 6 -30.0185 2.00000 + 7 -29.9297 2.00000 + 8 1.5003 2.00000 + 9 2.0569 2.00000 + 10 4.6455 2.00000 + 11 5.1693 2.00000 + 12 5.5995 2.00000 + 13 5.8371 2.00000 + 14 9.2378 0.00000 + 15 9.4800 0.00000 + 16 11.9139 0.00000 + 17 13.5604 0.00000 + 18 14.7551 0.00000 + + k-point 317 : 0.2667 0.4667 0.2667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7412 2.00000 + 5 -30.0419 2.00000 + 6 -30.0289 2.00000 + 7 -29.9291 2.00000 + 8 1.6855 2.00000 + 9 2.3977 2.00000 + 10 4.3844 2.00000 + 11 5.1110 2.00000 + 12 5.5521 2.00000 + 13 5.8491 2.00000 + 14 8.7124 0.00000 + 15 9.4831 0.00000 + 16 11.3760 0.00000 + 17 13.8572 0.00000 + 18 14.9892 0.00000 + + k-point 318 : 0.3333 0.4667 0.2667 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4261 2.00000 + 3 -91.2910 2.00000 + 4 -65.7410 2.00000 + 5 -30.0411 2.00000 + 6 -30.0389 2.00000 + 7 -29.9285 2.00000 + 8 1.8550 2.00000 + 9 2.8180 2.00000 + 10 4.1421 2.00000 + 11 4.8462 2.00000 + 12 5.6803 2.00000 + 13 5.9491 2.00000 + 14 8.2154 0.00000 + 15 9.5095 0.00000 + 16 10.5843 0.00000 + 17 14.5072 0.00000 + 18 15.0778 0.00000 + + k-point 319 : 0.4000 0.4667 0.2667 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4262 2.00000 + 3 -91.2911 2.00000 + 4 -65.7409 2.00000 + 5 -30.0467 2.00000 + 6 -30.0406 2.00000 + 7 -29.9280 2.00000 + 8 1.9950 2.00000 + 9 3.2581 2.00000 + 10 3.9509 2.00000 + 11 4.5226 2.00000 + 12 5.8957 2.00000 + 13 6.0587 2.00000 + 14 7.8278 1.56302 + 15 9.4491 0.00000 + 16 9.9344 0.00000 + 17 15.0260 0.00000 + 18 18.3727 0.00000 + + k-point 320 : 0.4667 0.4667 0.2667 + band No. band energies occupation + 1 -91.8815 2.00000 + 2 -91.4265 2.00000 + 3 -91.2915 2.00000 + 4 -65.7408 2.00000 + 5 -30.0510 2.00000 + 6 -30.0402 2.00000 + 7 -29.9277 2.00000 + 8 2.0780 2.00000 + 9 3.6286 2.00000 + 10 3.8595 2.00000 + 11 4.2059 2.00000 + 12 6.0817 2.00000 + 13 6.1302 2.00000 + 14 7.6065 1.99991 + 15 9.1931 0.00000 + 16 9.7385 0.00000 + 17 15.0476 0.00000 + 18 16.6319 0.00000 + + k-point 321 : 0.0000 0.0000 0.3333 + band No. band energies occupation + 1 -91.8793 2.00000 + 2 -91.4243 2.00000 + 3 -91.2893 2.00000 + 4 -65.7415 2.00000 + 5 -30.0028 2.00000 + 6 -29.9802 2.00000 + 7 -29.9695 2.00000 + 8 -0.4815 2.00000 + 9 3.4597 2.00000 + 10 4.4964 2.00000 + 11 4.9371 2.00000 + 12 5.1831 2.00000 + 13 8.4989 0.00000 + 14 9.1550 0.00000 + 15 10.1399 0.00000 + 16 10.4152 0.00000 + 17 14.2974 0.00000 + 18 14.8308 0.00000 + + k-point 322 : 0.0667 0.0000 0.3333 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2897 2.00000 + 4 -65.7415 2.00000 + 5 -30.0050 2.00000 + 6 -29.9801 2.00000 + 7 -29.9693 2.00000 + 8 -0.4342 2.00000 + 9 3.4391 2.00000 + 10 4.4529 2.00000 + 11 4.9676 2.00000 + 12 5.2040 2.00000 + 13 8.2556 0.00000 + 14 9.2125 0.00000 + 15 10.0413 0.00000 + 16 10.7194 0.00000 + 17 14.2965 0.00000 + 18 15.1176 0.00000 + + k-point 323 : 0.1333 0.0000 0.3333 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7414 2.00000 + 5 -30.0112 2.00000 + 6 -29.9796 2.00000 + 7 -29.9688 2.00000 + 8 -0.2928 2.00000 + 9 3.3540 2.00000 + 10 4.3881 2.00000 + 11 5.0261 2.00000 + 12 5.2648 2.00000 + 13 7.7736 1.87743 + 14 9.3605 0.00000 + 15 9.8023 0.00000 + 16 11.3678 0.00000 + 17 13.9531 0.00000 + 18 14.9554 0.00000 + + k-point 324 : 0.2000 0.0000 0.3333 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7412 2.00000 + 5 -30.0203 2.00000 + 6 -29.9791 2.00000 + 7 -29.9679 2.00000 + 8 -0.0672 2.00000 + 9 3.1662 2.00000 + 10 4.3914 2.00000 + 11 5.0790 2.00000 + 12 5.3596 2.00000 + 13 7.2805 2.00000 + 14 9.4059 0.00000 + 15 9.6783 0.00000 + 16 12.0688 0.00000 + 17 13.4792 0.00000 + 18 15.2550 0.00000 + + k-point 325 : 0.2667 0.0000 0.3333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7411 2.00000 + 5 -30.0306 2.00000 + 6 -29.9785 2.00000 + 7 -29.9670 2.00000 + 8 0.2282 2.00000 + 9 2.8837 2.00000 + 10 4.4758 2.00000 + 11 5.1145 2.00000 + 12 5.4784 2.00000 + 13 6.8477 2.00000 + 14 9.1811 0.00000 + 15 9.8874 0.00000 + 16 12.5970 0.00000 + 17 12.9048 0.00000 + 18 15.2176 0.00000 + + k-point 326 : 0.3333 0.0000 0.3333 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7408 2.00000 + 5 -30.0404 2.00000 + 6 -29.9778 2.00000 + 7 -29.9661 2.00000 + 8 0.5762 2.00000 + 9 2.5428 2.00000 + 10 4.6037 2.00000 + 11 5.1264 2.00000 + 12 5.6095 2.00000 + 13 6.4965 2.00000 + 14 9.0211 0.00000 + 15 10.1220 0.00000 + 16 12.3062 0.00000 + 17 12.7724 0.00000 + 18 15.5499 0.00000 + + k-point 327 : 0.4000 0.0000 0.3333 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7407 2.00000 + 5 -30.0482 2.00000 + 6 -29.9773 2.00000 + 7 -29.9654 2.00000 + 8 0.9542 2.00000 + 9 2.1721 2.00000 + 10 4.7324 2.00000 + 11 5.1121 2.00000 + 12 5.7425 2.00000 + 13 6.2291 2.00000 + 14 8.9691 0.00000 + 15 10.3317 0.00000 + 16 11.7644 0.00000 + 17 12.7021 0.00000 + 18 15.1622 0.00000 + + k-point 328 : 0.4667 0.0000 0.3333 + band No. band energies occupation + 1 -91.8793 2.00000 + 2 -91.4243 2.00000 + 3 -91.2893 2.00000 + 4 -65.7406 2.00000 + 5 -30.0524 2.00000 + 6 -29.9770 2.00000 + 7 -29.9649 2.00000 + 8 1.3325 2.00000 + 9 1.8005 2.00000 + 10 4.8244 2.00000 + 11 5.0841 2.00000 + 12 5.8749 2.00000 + 13 6.0344 2.00000 + 14 8.9800 0.00000 + 15 10.4848 0.00000 + 16 11.3991 0.00000 + 17 12.6194 0.00000 + 18 17.5491 0.00000 + + k-point 329 : 0.0000 0.0667 0.3333 + band No. band energies occupation + 1 -91.8794 2.00000 + 2 -91.4244 2.00000 + 3 -91.2894 2.00000 + 4 -65.7415 2.00000 + 5 -30.0025 2.00000 + 6 -29.9799 2.00000 + 7 -29.9726 2.00000 + 8 -0.4309 2.00000 + 9 3.4495 2.00000 + 10 4.4823 2.00000 + 11 4.9614 2.00000 + 12 5.1769 2.00000 + 13 8.1972 0.00001 + 14 9.2037 0.00000 + 15 10.3016 0.00000 + 16 10.5059 0.00000 + 17 14.3943 0.00000 + 18 15.2824 0.00000 + + k-point 330 : 0.0667 0.0667 0.3333 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4247 2.00000 + 3 -91.2897 2.00000 + 4 -65.7414 2.00000 + 5 -30.0047 2.00000 + 6 -29.9798 2.00000 + 7 -29.9724 2.00000 + 8 -0.3827 2.00000 + 9 3.4372 2.00000 + 10 4.4369 2.00000 + 11 4.9880 2.00000 + 12 5.1943 2.00000 + 13 7.9855 0.14652 + 14 9.2633 0.00000 + 15 10.3201 0.00000 + 16 10.6409 0.00000 + 17 14.3071 0.00000 + 18 15.7382 0.00000 + + k-point 331 : 0.1333 0.0667 0.3333 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7413 2.00000 + 5 -30.0109 2.00000 + 6 -29.9795 2.00000 + 7 -29.9718 2.00000 + 8 -0.2406 2.00000 + 9 3.3744 2.00000 + 10 4.3644 2.00000 + 11 5.0412 2.00000 + 12 5.2443 2.00000 + 13 7.5476 2.00000 + 14 9.4153 0.00000 + 15 10.0599 0.00000 + 16 11.2380 0.00000 + 17 14.8208 0.00000 + 18 16.0819 0.00000 + + k-point 332 : 0.2000 0.0667 0.3333 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7412 2.00000 + 5 -30.0200 2.00000 + 6 -29.9789 2.00000 + 7 -29.9710 2.00000 + 8 -0.0152 2.00000 + 9 3.2090 2.00000 + 10 4.3636 2.00000 + 11 5.0929 2.00000 + 12 5.3207 2.00000 + 13 7.0926 2.00000 + 14 9.5502 0.00000 + 15 9.7938 0.00000 + 16 11.8036 0.00000 + 17 13.5951 0.00000 + 18 14.9192 0.00000 + + k-point 333 : 0.2667 0.0667 0.3333 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7410 2.00000 + 5 -30.0303 2.00000 + 6 -29.9783 2.00000 + 7 -29.9700 2.00000 + 8 0.2806 2.00000 + 9 2.9377 2.00000 + 10 4.4563 2.00000 + 11 5.1302 2.00000 + 12 5.4164 2.00000 + 13 6.6996 2.00000 + 14 9.3444 0.00000 + 15 9.9025 0.00000 + 16 12.0852 0.00000 + 17 13.4362 0.00000 + 18 15.8291 0.00000 + + k-point 334 : 0.3333 0.0667 0.3333 + band No. band energies occupation + 1 -91.8795 2.00000 + 2 -91.4245 2.00000 + 3 -91.2895 2.00000 + 4 -65.7407 2.00000 + 5 -30.0402 2.00000 + 6 -29.9776 2.00000 + 7 -29.9691 2.00000 + 8 0.6271 2.00000 + 9 2.6012 2.00000 + 10 4.5958 2.00000 + 11 5.1415 2.00000 + 12 5.5298 2.00000 + 13 6.3932 2.00000 + 14 9.1313 0.00000 + 15 10.0660 0.00000 + 16 11.8833 0.00000 + 17 13.3141 0.00000 + 18 15.1866 0.00000 + + k-point 335 : 0.4000 0.0667 0.3333 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7406 2.00000 + 5 -30.0479 2.00000 + 6 -29.9771 2.00000 + 7 -29.9684 2.00000 + 8 1.0037 2.00000 + 9 2.2324 2.00000 + 10 4.7288 2.00000 + 11 5.1208 2.00000 + 12 5.6641 2.00000 + 13 6.1656 2.00000 + 14 9.0233 0.00000 + 15 10.1524 0.00000 + 16 11.6108 0.00000 + 17 13.1453 0.00000 + 18 15.2752 0.00000 + + k-point 336 : 0.4667 0.0667 0.3333 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2900 2.00000 + 4 -65.7405 2.00000 + 5 -30.0521 2.00000 + 6 -29.9768 2.00000 + 7 -29.9680 2.00000 + 8 1.3741 2.00000 + 9 1.8670 2.00000 + 10 4.8158 2.00000 + 11 5.0875 2.00000 + 12 5.8147 2.00000 + 13 5.9871 2.00000 + 14 8.9976 0.00000 + 15 10.1607 0.00000 + 16 11.4588 0.00000 + 17 13.0058 0.00000 + 18 15.0515 0.00000 + + k-point 337 : 0.0000 0.1333 0.3333 + band No. band energies occupation + 1 -91.8795 2.00000 + 2 -91.4245 2.00000 + 3 -91.2895 2.00000 + 4 -65.7413 2.00000 + 5 -30.0017 2.00000 + 6 -29.9814 2.00000 + 7 -29.9793 2.00000 + 8 -0.2798 2.00000 + 9 3.3917 2.00000 + 10 4.4650 2.00000 + 11 5.0319 2.00000 + 12 5.1692 2.00000 + 13 7.6464 1.99917 + 14 9.3147 0.00000 + 15 10.0458 0.00000 + 16 11.2372 0.00000 + 17 14.4922 0.00000 + 18 15.3633 0.00000 + + k-point 338 : 0.0667 0.1333 0.3333 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7412 2.00000 + 5 -30.0039 2.00000 + 6 -29.9812 2.00000 + 7 -29.9792 2.00000 + 8 -0.2318 2.00000 + 9 3.4031 2.00000 + 10 4.4148 2.00000 + 11 5.0453 2.00000 + 12 5.1799 2.00000 + 13 7.4709 2.00000 + 14 9.3790 0.00000 + 15 10.2465 0.00000 + 16 11.0981 0.00000 + 17 14.1220 0.00000 + 18 16.8656 0.00000 + + k-point 339 : 0.1333 0.1333 0.3333 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4246 2.00000 + 3 -91.2896 2.00000 + 4 -65.7411 2.00000 + 5 -30.0101 2.00000 + 6 -29.9806 2.00000 + 7 -29.9788 2.00000 + 8 -0.0888 2.00000 + 9 3.4098 2.00000 + 10 4.3128 2.00000 + 11 5.0782 2.00000 + 12 5.2075 2.00000 + 13 7.0931 2.00000 + 14 9.5240 0.00000 + 15 10.5314 0.00000 + 16 10.9313 0.00000 + 17 13.8315 0.00000 + 18 14.9563 0.00000 + + k-point 340 : 0.2000 0.1333 0.3333 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7410 2.00000 + 5 -30.0192 2.00000 + 6 -29.9798 2.00000 + 7 -29.9782 2.00000 + 8 0.1365 2.00000 + 9 3.3258 2.00000 + 10 4.2788 2.00000 + 11 5.1226 2.00000 + 12 5.2385 2.00000 + 13 6.6994 2.00000 + 14 9.6594 0.00000 + 15 10.2232 0.00000 + 16 11.3212 0.00000 + 17 13.9202 0.00000 + 18 16.2795 0.00000 + + k-point 341 : 0.2667 0.1333 0.3333 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7408 2.00000 + 5 -30.0296 2.00000 + 6 -29.9790 2.00000 + 7 -29.9776 2.00000 + 8 0.4308 2.00000 + 9 3.0973 2.00000 + 10 4.3838 2.00000 + 11 5.1738 2.00000 + 12 5.2576 2.00000 + 13 6.3799 2.00000 + 14 9.6051 0.00000 + 15 9.9623 0.00000 + 16 11.5706 0.00000 + 17 13.6078 0.00000 + 18 14.8495 0.00000 + + k-point 342 : 0.3333 0.1333 0.3333 + band No. band energies occupation + 1 -91.8796 2.00000 + 2 -91.4245 2.00000 + 3 -91.2895 2.00000 + 4 -65.7405 2.00000 + 5 -30.0394 2.00000 + 6 -29.9782 2.00000 + 7 -29.9768 2.00000 + 8 0.7749 2.00000 + 9 2.7747 2.00000 + 10 4.5617 2.00000 + 11 5.1803 2.00000 + 12 5.3158 2.00000 + 13 6.1636 2.00000 + 14 9.3464 0.00000 + 15 9.8339 0.00000 + 16 11.6131 0.00000 + 17 13.9966 0.00000 + 18 14.7722 0.00000 + + k-point 343 : 0.4000 0.1333 0.3333 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7404 2.00000 + 5 -30.0472 2.00000 + 6 -29.9775 2.00000 + 7 -29.9763 2.00000 + 8 1.1431 2.00000 + 9 2.4134 2.00000 + 10 4.7126 2.00000 + 11 5.1290 2.00000 + 12 5.4671 2.00000 + 13 6.0157 2.00000 + 14 9.1396 0.00000 + 15 9.6449 0.00000 + 16 11.6446 0.00000 + 17 14.7531 0.00000 + 18 45.4682 0.00000 + + k-point 344 : 0.4667 0.1333 0.3333 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4251 2.00000 + 3 -91.2902 2.00000 + 4 -65.7404 2.00000 + 5 -30.0514 2.00000 + 6 -29.9772 2.00000 + 7 -29.9760 2.00000 + 8 1.4899 2.00000 + 9 2.0701 2.00000 + 10 4.7840 2.00000 + 11 5.0904 2.00000 + 12 5.6669 2.00000 + 13 5.8686 2.00000 + 14 9.0434 0.00000 + 15 9.4853 0.00000 + 16 11.6814 0.00000 + 17 13.7976 0.00000 + 18 15.2308 0.00000 + + k-point 345 : 0.0000 0.2000 0.3333 + band No. band energies occupation + 1 -91.8796 2.00000 + 2 -91.4246 2.00000 + 3 -91.2896 2.00000 + 4 -65.7410 2.00000 + 5 -30.0005 2.00000 + 6 -29.9942 2.00000 + 7 -29.9785 2.00000 + 8 -0.0384 2.00000 + 9 3.2400 2.00000 + 10 4.4989 2.00000 + 11 5.1411 2.00000 + 12 5.1734 2.00000 + 13 7.1079 2.00000 + 14 9.3512 0.00000 + 15 9.8771 0.00000 + 16 11.9958 0.00000 + 17 13.6113 0.00000 + 18 21.7136 0.00000 + + k-point 346 : 0.0667 0.2000 0.3333 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7410 2.00000 + 5 -30.0027 2.00000 + 6 -29.9940 2.00000 + 7 -29.9784 2.00000 + 8 0.0097 2.00000 + 9 3.2752 2.00000 + 10 4.4507 2.00000 + 11 5.1290 2.00000 + 12 5.1813 2.00000 + 13 6.9619 2.00000 + 14 9.4416 0.00000 + 15 10.0172 0.00000 + 16 11.7522 0.00000 + 17 13.6423 0.00000 + 18 14.9614 0.00000 + + k-point 347 : 0.1333 0.2000 0.3333 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7409 2.00000 + 5 -30.0089 2.00000 + 6 -29.9935 2.00000 + 7 -29.9780 2.00000 + 8 0.1509 2.00000 + 9 3.3699 2.00000 + 10 4.3172 2.00000 + 11 5.1057 2.00000 + 12 5.2032 2.00000 + 13 6.6401 2.00000 + 14 9.5752 0.00000 + 15 10.3957 0.00000 + 16 11.2701 0.00000 + 17 13.5268 0.00000 + 18 14.8940 0.00000 + + k-point 348 : 0.2000 0.2000 0.3333 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7407 2.00000 + 5 -30.0180 2.00000 + 6 -29.9927 2.00000 + 7 -29.9775 2.00000 + 8 0.3757 2.00000 + 9 3.4547 2.00000 + 10 4.1789 2.00000 + 11 5.0808 2.00000 + 12 5.2321 2.00000 + 13 6.3094 2.00000 + 14 9.5872 0.00000 + 15 10.6701 0.00000 + 16 10.9785 0.00000 + 17 13.3361 0.00000 + 18 16.3021 0.00000 + + k-point 349 : 0.2667 0.2000 0.3333 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4247 2.00000 + 3 -91.2897 2.00000 + 4 -65.7405 2.00000 + 5 -30.0284 2.00000 + 6 -29.9918 2.00000 + 7 -29.9768 2.00000 + 8 0.6661 2.00000 + 9 3.3528 2.00000 + 10 4.2329 2.00000 + 11 5.0410 2.00000 + 12 5.2587 2.00000 + 13 6.0667 2.00000 + 14 9.4049 0.00000 + 15 10.2926 0.00000 + 16 11.3119 0.00000 + 17 13.8752 0.00000 + 18 38.4800 0.00000 + + k-point 350 : 0.3333 0.2000 0.3333 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7403 2.00000 + 5 -30.0384 2.00000 + 6 -29.9910 2.00000 + 7 -29.9762 2.00000 + 8 1.0012 2.00000 + 9 3.0611 2.00000 + 10 4.4746 2.00000 + 11 4.9804 2.00000 + 12 5.2893 2.00000 + 13 5.9349 2.00000 + 14 9.1205 0.00000 + 15 9.8404 0.00000 + 16 11.5936 0.00000 + 17 13.6823 0.00000 + 18 15.1706 0.00000 + + k-point 351 : 0.4000 0.2000 0.3333 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7401 2.00000 + 5 -30.0461 2.00000 + 6 -29.9903 2.00000 + 7 -29.9758 2.00000 + 8 1.3562 2.00000 + 9 2.7118 2.00000 + 10 4.6771 2.00000 + 11 4.9797 2.00000 + 12 5.3623 2.00000 + 13 5.8533 2.00000 + 14 8.8711 0.00000 + 15 9.4054 0.00000 + 16 11.8042 0.00000 + 17 14.1600 0.00000 + 18 14.8362 0.00000 + + k-point 352 : 0.4667 0.2000 0.3333 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7401 2.00000 + 5 -30.0504 2.00000 + 6 -29.9899 2.00000 + 7 -29.9755 2.00000 + 8 1.6624 2.00000 + 9 2.4033 2.00000 + 10 4.7026 2.00000 + 11 5.0589 2.00000 + 12 5.5288 2.00000 + 13 5.7361 2.00000 + 14 8.7332 0.00000 + 15 9.1257 0.00000 + 16 11.9246 0.00000 + 17 14.4000 0.00000 + 18 14.8474 0.00000 + + k-point 353 : 0.0000 0.2667 0.3333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7407 2.00000 + 5 -30.0089 2.00000 + 6 -29.9991 2.00000 + 7 -29.9776 2.00000 + 8 0.2750 2.00000 + 9 2.9834 2.00000 + 10 4.6018 2.00000 + 11 5.1861 2.00000 + 12 5.2760 2.00000 + 13 6.6473 2.00000 + 14 9.2218 0.00000 + 15 9.9612 0.00000 + 16 12.7917 0.00000 + 17 14.6660 0.00000 + 18 37.0432 0.00000 + + k-point 354 : 0.0667 0.2667 0.3333 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7407 2.00000 + 5 -30.0087 2.00000 + 6 -30.0013 2.00000 + 7 -29.9775 2.00000 + 8 0.3237 2.00000 + 9 3.0324 2.00000 + 10 4.5699 2.00000 + 11 5.1962 2.00000 + 12 5.2285 2.00000 + 13 6.5349 2.00000 + 14 9.3249 0.00000 + 15 10.0206 0.00000 + 16 12.0589 0.00000 + 17 13.6356 0.00000 + 18 16.3395 0.00000 + + k-point 355 : 0.1333 0.2667 0.3333 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7406 2.00000 + 5 -30.0082 2.00000 + 6 -30.0075 2.00000 + 7 -29.9771 2.00000 + 8 0.4629 2.00000 + 9 3.1773 2.00000 + 10 4.4588 2.00000 + 11 5.1107 2.00000 + 12 5.2302 2.00000 + 13 6.2832 2.00000 + 14 9.4510 0.00000 + 15 10.2180 0.00000 + 16 11.5408 0.00000 + 17 13.5178 0.00000 + 18 14.9785 0.00000 + + k-point 356 : 0.2000 0.2667 0.3333 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7404 2.00000 + 5 -30.0167 2.00000 + 6 -30.0075 2.00000 + 7 -29.9766 2.00000 + 8 0.6833 2.00000 + 9 3.4070 2.00000 + 10 4.2516 2.00000 + 11 4.9747 2.00000 + 12 5.2836 2.00000 + 13 6.0299 2.00000 + 14 9.3115 0.00000 + 15 10.5371 0.00000 + 16 11.2041 0.00000 + 17 13.5198 0.00000 + 18 16.1069 0.00000 + + k-point 357 : 0.2667 0.2667 0.3333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2905 2.00000 + 4 -65.7402 2.00000 + 5 -30.0271 2.00000 + 6 -30.0066 2.00000 + 7 -29.9760 2.00000 + 8 0.9662 2.00000 + 9 3.6247 2.00000 + 10 4.0527 2.00000 + 11 4.8364 2.00000 + 12 5.3481 2.00000 + 13 5.8553 2.00000 + 14 8.9510 0.00000 + 15 10.5646 0.00000 + 16 11.1623 0.00000 + 17 13.2954 0.00000 + 18 15.4682 0.00000 + + k-point 358 : 0.3333 0.2667 0.3333 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7400 2.00000 + 5 -30.0371 2.00000 + 6 -30.0058 2.00000 + 7 -29.9754 2.00000 + 8 1.2872 2.00000 + 9 3.4438 2.00000 + 10 4.2743 2.00000 + 11 4.7030 2.00000 + 12 5.4051 2.00000 + 13 5.7716 2.00000 + 14 8.5488 0.00000 + 15 10.0763 0.00000 + 16 11.4481 0.00000 + 17 13.4035 0.00000 + 18 15.3922 0.00000 + + k-point 359 : 0.4000 0.2667 0.3333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7398 2.00000 + 5 -30.0450 2.00000 + 6 -30.0051 2.00000 + 7 -29.9749 2.00000 + 8 1.6159 2.00000 + 9 3.1051 2.00000 + 10 4.5944 2.00000 + 11 4.6676 2.00000 + 12 5.4494 2.00000 + 13 5.7286 2.00000 + 14 8.2204 0.00000 + 15 9.5427 0.00000 + 16 11.6960 0.00000 + 17 13.7216 0.00000 + 18 15.3053 0.00000 + + k-point 360 : 0.4667 0.2667 0.3333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7398 2.00000 + 5 -30.0492 2.00000 + 6 -30.0047 2.00000 + 7 -29.9747 2.00000 + 8 1.8783 2.00000 + 9 2.8300 2.00000 + 10 4.5354 2.00000 + 11 4.9641 2.00000 + 12 5.5125 2.00000 + 13 5.6496 2.00000 + 14 8.0373 0.02884 + 15 9.1984 0.00000 + 16 11.8323 0.00000 + 17 13.9270 0.00000 + 18 15.3527 0.00000 + + k-point 361 : 0.0000 0.3333 0.3333 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4252 2.00000 + 3 -91.2901 2.00000 + 4 -65.7404 2.00000 + 5 -30.0228 2.00000 + 6 -29.9977 2.00000 + 7 -29.9766 2.00000 + 8 0.6424 2.00000 + 9 2.6545 2.00000 + 10 4.7408 2.00000 + 11 5.1925 2.00000 + 12 5.4185 2.00000 + 13 6.2853 2.00000 + 14 9.1528 0.00000 + 15 10.1154 0.00000 + 16 12.2959 0.00000 + 17 12.6644 0.00000 + 18 15.1835 0.00000 + + k-point 362 : 0.0667 0.3333 0.3333 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2910 2.00000 + 4 -65.7404 2.00000 + 5 -30.0228 2.00000 + 6 -30.0000 2.00000 + 7 -29.9766 2.00000 + 8 0.6883 2.00000 + 9 2.7077 2.00000 + 10 4.7264 2.00000 + 11 5.2034 2.00000 + 12 5.3412 2.00000 + 13 6.2150 2.00000 + 14 9.2183 0.00000 + 15 10.0975 0.00000 + 16 11.8514 0.00000 + 17 13.2505 0.00000 + 18 15.4538 0.00000 + + k-point 363 : 0.1333 0.3333 0.3333 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2911 2.00000 + 4 -65.7403 2.00000 + 5 -30.0223 2.00000 + 6 -30.0062 2.00000 + 7 -29.9762 2.00000 + 8 0.8257 2.00000 + 9 2.8686 2.00000 + 10 4.6756 2.00000 + 11 5.1155 2.00000 + 12 5.2552 2.00000 + 13 6.0553 2.00000 + 14 9.2590 0.00000 + 15 10.0607 0.00000 + 16 11.5620 0.00000 + 17 14.3861 0.00000 + 18 15.3778 0.00000 + + k-point 364 : 0.2000 0.3333 0.3333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7401 2.00000 + 5 -30.0215 2.00000 + 6 -30.0154 2.00000 + 7 -29.9757 2.00000 + 8 1.0393 2.00000 + 9 3.1357 2.00000 + 10 4.5429 2.00000 + 11 4.8526 2.00000 + 12 5.3235 2.00000 + 13 5.8912 2.00000 + 14 8.9678 0.00000 + 15 10.1859 0.00000 + 16 11.4775 0.00000 + 17 13.5169 0.00000 + 18 15.2678 0.00000 + + k-point 365 : 0.2667 0.3333 0.3333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7399 2.00000 + 5 -30.0259 2.00000 + 6 -30.0207 2.00000 + 7 -29.9751 2.00000 + 8 1.3079 2.00000 + 9 3.4975 2.00000 + 10 4.2537 2.00000 + 11 4.6695 2.00000 + 12 5.4215 2.00000 + 13 5.7678 2.00000 + 14 8.4790 0.00000 + 15 10.3583 0.00000 + 16 11.2562 0.00000 + 17 13.7957 0.00000 + 18 15.4576 0.00000 + + k-point 366 : 0.3333 0.3333 0.3333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2903 2.00000 + 4 -65.7397 2.00000 + 5 -30.0359 2.00000 + 6 -30.0199 2.00000 + 7 -29.9745 2.00000 + 8 1.6071 2.00000 + 9 3.8504 2.00000 + 10 3.9497 2.00000 + 11 4.5723 2.00000 + 12 5.5290 2.00000 + 13 5.6928 2.00000 + 14 7.9970 0.10628 + 15 10.1882 0.00000 + 16 11.0596 0.00000 + 17 13.6172 0.00000 + 18 15.4580 0.00000 + + k-point 367 : 0.4000 0.3333 0.3333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7395 2.00000 + 5 -30.0438 2.00000 + 6 -30.0193 2.00000 + 7 -29.9740 2.00000 + 8 1.9028 2.00000 + 9 3.5236 2.00000 + 10 4.2368 2.00000 + 11 4.6294 2.00000 + 12 5.6020 2.00000 + 13 5.6607 2.00000 + 14 7.6208 1.99979 + 15 9.6622 0.00000 + 16 11.1234 0.00000 + 17 13.9670 0.00000 + 18 15.5268 0.00000 + + k-point 368 : 0.4667 0.3333 0.3333 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7395 2.00000 + 5 -30.0481 2.00000 + 6 -30.0189 2.00000 + 7 -29.9738 2.00000 + 8 2.1226 2.00000 + 9 3.2739 2.00000 + 10 4.2868 2.00000 + 11 4.8744 2.00000 + 12 5.6116 2.00000 + 13 5.6455 2.00000 + 14 7.4201 2.00000 + 15 9.2695 0.00000 + 16 11.1923 0.00000 + 17 14.0391 0.00000 + 18 15.3789 0.00000 + + k-point 369 : 0.0000 0.4000 0.3333 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7402 2.00000 + 5 -30.0338 2.00000 + 6 -29.9968 2.00000 + 7 -29.9759 2.00000 + 8 1.0386 2.00000 + 9 2.2838 2.00000 + 10 4.8741 2.00000 + 11 5.1768 2.00000 + 12 5.5479 2.00000 + 13 6.0278 2.00000 + 14 9.2474 0.00000 + 15 10.2163 0.00000 + 16 11.7129 0.00000 + 17 12.5232 0.00000 + 18 15.0058 0.00000 + + k-point 370 : 0.0667 0.4000 0.3333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7401 2.00000 + 5 -30.0336 2.00000 + 6 -29.9990 2.00000 + 7 -29.9758 2.00000 + 8 1.0849 2.00000 + 9 2.3392 2.00000 + 10 4.8595 2.00000 + 11 5.1791 2.00000 + 12 5.4792 2.00000 + 13 5.9945 2.00000 + 14 9.2635 0.00000 + 15 10.0727 0.00000 + 16 11.5584 0.00000 + 17 12.9761 0.00000 + 18 14.9006 0.00000 + + k-point 371 : 0.1333 0.4000 0.3333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7400 2.00000 + 5 -30.0331 2.00000 + 6 -30.0052 2.00000 + 7 -29.9755 2.00000 + 8 1.2159 2.00000 + 9 2.5063 2.00000 + 10 4.8118 2.00000 + 11 5.1287 2.00000 + 12 5.3567 2.00000 + 13 5.9132 2.00000 + 14 9.1604 0.00000 + 15 9.8071 0.00000 + 16 11.5723 0.00000 + 17 13.7995 0.00000 + 18 14.5522 0.00000 + + k-point 372 : 0.2000 0.4000 0.3333 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7399 2.00000 + 5 -30.0325 2.00000 + 6 -30.0144 2.00000 + 7 -29.9750 2.00000 + 8 1.4162 2.00000 + 9 2.7831 2.00000 + 10 4.7111 2.00000 + 11 4.9082 2.00000 + 12 5.3719 2.00000 + 13 5.8226 2.00000 + 14 8.6841 0.00000 + 15 9.8145 0.00000 + 16 11.6802 0.00000 + 17 13.7580 0.00000 + 18 15.0949 0.00000 + + k-point 373 : 0.2667 0.4000 0.3333 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7397 2.00000 + 5 -30.0317 2.00000 + 6 -30.0249 2.00000 + 7 -29.9744 2.00000 + 8 1.6606 2.00000 + 9 3.1538 2.00000 + 10 4.4685 2.00000 + 11 4.7356 2.00000 + 12 5.4606 2.00000 + 13 5.7551 2.00000 + 14 8.0965 0.00251 + 15 9.9238 0.00000 + 16 11.4526 0.00000 + 17 13.4892 0.00000 + 18 15.4328 0.00000 + + k-point 374 : 0.3333 0.4000 0.3333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7394 2.00000 + 5 -30.0350 2.00000 + 6 -30.0309 2.00000 + 7 -29.9738 2.00000 + 8 1.9273 2.00000 + 9 3.5628 2.00000 + 10 4.1380 2.00000 + 11 4.6730 2.00000 + 12 5.5708 2.00000 + 13 5.7308 2.00000 + 14 7.5590 2.00000 + 15 9.9659 0.00000 + 16 10.8523 0.00000 + 17 14.1412 0.00000 + 18 15.3603 0.00000 + + k-point 375 : 0.4000 0.4000 0.3333 + band No. band energies occupation + 1 -91.8813 2.00000 + 2 -91.4263 2.00000 + 3 -91.2912 2.00000 + 4 -65.7394 2.00000 + 5 -30.0429 2.00000 + 6 -30.0304 2.00000 + 7 -29.9734 2.00000 + 8 2.1834 2.00000 + 9 3.8283 2.00000 + 10 3.8862 2.00000 + 11 4.7204 2.00000 + 12 5.6527 2.00000 + 13 5.7690 2.00000 + 14 7.1423 2.00000 + 15 9.7054 0.00000 + 16 10.4694 0.00000 + 17 14.5817 0.00000 + 18 17.9482 0.00000 + + k-point 376 : 0.4667 0.4000 0.3333 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4262 2.00000 + 3 -91.2912 2.00000 + 4 -65.7393 2.00000 + 5 -30.0472 2.00000 + 6 -30.0300 2.00000 + 7 -29.9732 2.00000 + 8 2.3655 2.00000 + 9 3.6194 2.00000 + 10 4.0214 2.00000 + 11 4.8461 2.00000 + 12 5.7172 2.00000 + 13 5.7917 2.00000 + 14 6.9188 2.00000 + 15 9.3231 0.00000 + 16 10.4174 0.00000 + 17 14.4421 0.00000 + 18 15.8976 0.00000 + + k-point 377 : 0.0000 0.4667 0.3333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7400 2.00000 + 5 -30.0397 2.00000 + 6 -29.9962 2.00000 + 7 -29.9755 2.00000 + 8 1.4380 2.00000 + 9 1.9003 2.00000 + 10 4.9695 2.00000 + 11 5.1428 2.00000 + 12 5.6423 2.00000 + 13 5.8766 2.00000 + 14 9.4326 0.00000 + 15 10.2038 0.00000 + 16 11.3534 0.00000 + 17 12.4003 0.00000 + 18 15.1798 0.00000 + + k-point 378 : 0.0667 0.4667 0.3333 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7400 2.00000 + 5 -30.0396 2.00000 + 6 -29.9984 2.00000 + 7 -29.9754 2.00000 + 8 1.4775 2.00000 + 9 1.9610 2.00000 + 10 4.9344 2.00000 + 11 5.1436 2.00000 + 12 5.6222 2.00000 + 13 5.8407 2.00000 + 14 9.4328 0.00000 + 15 9.9118 0.00000 + 16 11.4086 0.00000 + 17 12.7786 0.00000 + 18 14.7529 0.00000 + + k-point 379 : 0.1333 0.4667 0.3333 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4253 2.00000 + 3 -91.2902 2.00000 + 4 -65.7399 2.00000 + 5 -30.0391 2.00000 + 6 -30.0046 2.00000 + 7 -29.9751 2.00000 + 8 1.5884 2.00000 + 9 2.1473 2.00000 + 10 4.8263 2.00000 + 11 5.1395 2.00000 + 12 5.5663 2.00000 + 13 5.7671 2.00000 + 14 9.1881 0.00000 + 15 9.5548 0.00000 + 16 11.6103 0.00000 + 17 13.5641 0.00000 + 18 14.7151 0.00000 + + k-point 380 : 0.2000 0.4667 0.3333 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2902 2.00000 + 4 -65.7397 2.00000 + 5 -30.0384 2.00000 + 6 -30.0138 2.00000 + 7 -29.9746 2.00000 + 8 1.7510 2.00000 + 9 2.4554 2.00000 + 10 4.6493 2.00000 + 11 5.1054 2.00000 + 12 5.5016 2.00000 + 13 5.7219 2.00000 + 14 8.5259 0.00000 + 15 9.5738 0.00000 + 16 11.7986 0.00000 + 17 14.0607 0.00000 + 18 14.5081 0.00000 + + k-point 381 : 0.2667 0.4667 0.3333 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2904 2.00000 + 4 -65.7395 2.00000 + 5 -30.0377 2.00000 + 6 -30.0244 2.00000 + 7 -29.9740 2.00000 + 8 1.9503 2.00000 + 9 2.8575 2.00000 + 10 4.4232 2.00000 + 11 5.0190 2.00000 + 12 5.4953 2.00000 + 13 5.7259 2.00000 + 14 7.8787 1.04556 + 15 9.6218 0.00000 + 16 11.5688 0.00000 + 17 13.6440 0.00000 + 18 15.2299 0.00000 + + k-point 382 : 0.3333 0.4667 0.3333 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7393 2.00000 + 5 -30.0369 2.00000 + 6 -30.0345 2.00000 + 7 -29.9735 2.00000 + 8 2.1724 2.00000 + 9 3.2887 2.00000 + 10 4.1759 2.00000 + 11 4.9222 2.00000 + 12 5.5665 2.00000 + 13 5.7737 2.00000 + 14 7.3144 2.00000 + 15 9.6562 0.00000 + 16 10.8484 0.00000 + 17 13.8758 0.00000 + 18 15.6076 0.00000 + + k-point 383 : 0.4000 0.4667 0.3333 + band No. band energies occupation + 1 -91.8813 2.00000 + 2 -91.4263 2.00000 + 3 -91.2913 2.00000 + 4 -65.7392 2.00000 + 5 -30.0424 2.00000 + 6 -30.0364 2.00000 + 7 -29.9731 2.00000 + 8 2.3889 2.00000 + 9 3.6451 2.00000 + 10 3.9430 2.00000 + 11 4.8684 2.00000 + 12 5.6997 2.00000 + 13 5.8611 2.00000 + 14 6.8688 2.00000 + 15 9.6086 0.00000 + 16 10.1393 0.00000 + 17 15.1730 0.00000 + 18 16.3079 0.00000 + + k-point 384 : 0.4667 0.4667 0.3333 + band No. band energies occupation + 1 -91.8813 2.00000 + 2 -91.4263 2.00000 + 3 -91.2913 2.00000 + 4 -65.7391 2.00000 + 5 -30.0467 2.00000 + 6 -30.0360 2.00000 + 7 -29.9728 2.00000 + 8 2.5397 2.00000 + 9 3.7856 2.00000 + 10 3.8326 2.00000 + 11 4.8610 2.00000 + 12 5.8430 2.00000 + 13 5.9453 2.00000 + 14 6.5965 2.00000 + 15 9.3465 0.00000 + 16 9.8978 0.00000 + 17 15.1892 0.00000 + 18 16.2199 0.00000 + + k-point 385 : 0.0000 0.0000 0.4000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2900 2.00000 + 4 -65.7403 2.00000 + 5 -30.0144 2.00000 + 6 -29.9990 2.00000 + 7 -29.9656 2.00000 + 8 0.0785 2.00000 + 9 2.7125 2.00000 + 10 4.5094 2.00000 + 11 4.6940 2.00000 + 12 4.9214 2.00000 + 13 8.5745 0.00000 + 14 10.1269 0.00000 + 15 10.5365 0.00000 + 16 10.8704 0.00000 + 17 13.9768 0.00000 + 18 14.6979 0.00000 + + k-point 386 : 0.0667 0.0000 0.4000 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7402 2.00000 + 5 -30.0143 2.00000 + 6 -30.0012 2.00000 + 7 -29.9654 2.00000 + 8 0.1273 2.00000 + 9 2.6983 2.00000 + 10 4.4779 2.00000 + 11 4.7369 2.00000 + 12 4.9443 2.00000 + 13 8.3529 0.00000 + 14 10.1419 0.00000 + 15 10.4344 0.00000 + 16 11.1645 0.00000 + 17 13.6110 0.00000 + 18 14.5556 0.00000 + + k-point 387 : 0.1333 0.0000 0.4000 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7401 2.00000 + 5 -30.0140 2.00000 + 6 -30.0074 2.00000 + 7 -29.9649 2.00000 + 8 0.2683 2.00000 + 9 2.6518 2.00000 + 10 4.4352 2.00000 + 11 4.8169 2.00000 + 12 5.0107 2.00000 + 13 7.8922 0.89370 + 14 10.1231 0.00000 + 15 10.2307 0.00000 + 16 11.8214 0.00000 + 17 13.2548 0.00000 + 18 14.5906 0.00000 + + k-point 388 : 0.2000 0.0000 0.4000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7399 2.00000 + 5 -30.0165 2.00000 + 6 -30.0135 2.00000 + 7 -29.9640 2.00000 + 8 0.4880 2.00000 + 9 2.5740 2.00000 + 10 4.4223 2.00000 + 11 4.8957 2.00000 + 12 5.1141 2.00000 + 13 7.4082 2.00000 + 14 9.8145 0.00000 + 15 10.2589 0.00000 + 16 12.5295 0.00000 + 17 12.7207 0.00000 + 18 14.5641 0.00000 + + k-point 389 : 0.2667 0.0000 0.4000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7397 2.00000 + 5 -30.0269 2.00000 + 6 -30.0129 2.00000 + 7 -29.9631 2.00000 + 8 0.7614 2.00000 + 9 2.4691 2.00000 + 10 4.4450 2.00000 + 11 4.9606 2.00000 + 12 5.2429 2.00000 + 13 6.9802 2.00000 + 14 9.4992 0.00000 + 15 10.2989 0.00000 + 16 12.2571 0.00000 + 17 12.7704 0.00000 + 18 14.6183 0.00000 + + k-point 390 : 0.3333 0.0000 0.4000 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4247 2.00000 + 3 -91.2897 2.00000 + 4 -65.7395 2.00000 + 5 -30.0369 2.00000 + 6 -30.0123 2.00000 + 7 -29.9621 2.00000 + 8 1.0553 2.00000 + 9 2.3467 2.00000 + 10 4.4910 2.00000 + 11 5.0061 2.00000 + 12 5.3805 2.00000 + 13 6.6366 2.00000 + 14 9.2609 0.00000 + 15 10.3038 0.00000 + 16 11.8735 0.00000 + 17 12.5601 0.00000 + 18 15.5151 0.00000 + + k-point 391 : 0.4000 0.0000 0.4000 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7394 2.00000 + 5 -30.0447 2.00000 + 6 -30.0119 2.00000 + 7 -29.9614 2.00000 + 8 1.3266 2.00000 + 9 2.2198 2.00000 + 10 4.5371 2.00000 + 11 5.0314 2.00000 + 12 5.5048 2.00000 + 13 6.3900 2.00000 + 14 9.1261 0.00000 + 15 10.2612 0.00000 + 16 11.5989 0.00000 + 17 12.2895 0.00000 + 18 15.2894 0.00000 + + k-point 392 : 0.4667 0.0000 0.4000 + band No. band energies occupation + 1 -91.8792 2.00000 + 2 -91.4242 2.00000 + 3 -91.2892 2.00000 + 4 -65.7392 2.00000 + 5 -30.0489 2.00000 + 6 -30.0116 2.00000 + 7 -29.9610 2.00000 + 8 1.5141 2.00000 + 9 2.1185 2.00000 + 10 4.5650 2.00000 + 11 5.0425 2.00000 + 12 5.5850 2.00000 + 13 6.2547 2.00000 + 14 9.0783 0.00000 + 15 10.2059 0.00000 + 16 11.4660 0.00000 + 17 12.1310 0.00000 + 18 14.9984 0.00000 + + k-point 393 : 0.0000 0.0667 0.4000 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7402 2.00000 + 5 -30.0143 2.00000 + 6 -29.9987 2.00000 + 7 -29.9687 2.00000 + 8 0.1308 2.00000 + 9 2.7052 2.00000 + 10 4.5062 2.00000 + 11 4.7211 2.00000 + 12 4.9341 2.00000 + 13 8.2944 0.00000 + 14 10.1322 0.00000 + 15 10.7510 0.00000 + 16 10.8939 0.00000 + 17 14.0685 0.00000 + 18 19.2975 0.00000 + + k-point 394 : 0.0667 0.0667 0.4000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7402 2.00000 + 5 -30.0141 2.00000 + 6 -30.0009 2.00000 + 7 -29.9685 2.00000 + 8 0.1799 2.00000 + 9 2.6961 2.00000 + 10 4.4700 2.00000 + 11 4.7546 2.00000 + 12 4.9662 2.00000 + 13 8.0964 0.00253 + 14 10.1465 0.00000 + 15 10.7223 0.00000 + 16 11.0608 0.00000 + 17 13.4843 0.00000 + 18 14.7098 0.00000 + + k-point 395 : 0.1333 0.0667 0.4000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7400 2.00000 + 5 -30.0138 2.00000 + 6 -30.0071 2.00000 + 7 -29.9680 2.00000 + 8 0.3214 2.00000 + 9 2.6647 2.00000 + 10 4.4164 2.00000 + 11 4.8132 2.00000 + 12 5.0527 2.00000 + 13 7.6707 1.99729 + 14 10.1672 0.00000 + 15 10.4384 0.00000 + 16 11.6127 0.00000 + 17 13.1255 0.00000 + 18 15.0675 0.00000 + + k-point 396 : 0.2000 0.0667 0.4000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7399 2.00000 + 5 -30.0163 2.00000 + 6 -30.0133 2.00000 + 7 -29.9671 2.00000 + 8 0.5403 2.00000 + 9 2.6055 2.00000 + 10 4.3962 2.00000 + 11 4.8703 2.00000 + 12 5.1699 2.00000 + 13 7.2169 2.00000 + 14 9.9996 0.00000 + 15 10.2485 0.00000 + 16 11.9915 0.00000 + 17 13.4963 0.00000 + 18 14.9307 0.00000 + + k-point 397 : 0.2667 0.0667 0.4000 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7397 2.00000 + 5 -30.0266 2.00000 + 6 -30.0127 2.00000 + 7 -29.9662 2.00000 + 8 0.8138 2.00000 + 9 2.5179 2.00000 + 10 4.4217 2.00000 + 11 4.9184 2.00000 + 12 5.2999 2.00000 + 13 6.8210 2.00000 + 14 9.6472 0.00000 + 15 10.2064 0.00000 + 16 11.8412 0.00000 + 17 13.2636 0.00000 + 18 14.4602 0.00000 + + k-point 398 : 0.3333 0.0667 0.4000 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7395 2.00000 + 5 -30.0366 2.00000 + 6 -30.0121 2.00000 + 7 -29.9653 2.00000 + 8 1.1061 2.00000 + 9 2.4089 2.00000 + 10 4.4770 2.00000 + 11 4.9499 2.00000 + 12 5.4309 2.00000 + 13 6.5164 2.00000 + 14 9.3564 0.00000 + 15 10.0920 0.00000 + 16 11.6293 0.00000 + 17 13.0657 0.00000 + 18 15.1621 0.00000 + + k-point 399 : 0.4000 0.0667 0.4000 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4247 2.00000 + 3 -91.2897 2.00000 + 4 -65.7393 2.00000 + 5 -30.0444 2.00000 + 6 -30.0117 2.00000 + 7 -29.9646 2.00000 + 8 1.3737 2.00000 + 9 2.2928 2.00000 + 10 4.5311 2.00000 + 11 4.9651 2.00000 + 12 5.5497 2.00000 + 13 6.3103 2.00000 + 14 9.1728 0.00000 + 15 9.9154 0.00000 + 16 11.5234 0.00000 + 17 12.7770 0.00000 + 18 15.3120 0.00000 + + k-point 400 : 0.4667 0.0667 0.4000 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7392 2.00000 + 5 -30.0487 2.00000 + 6 -30.0114 2.00000 + 7 -29.9642 2.00000 + 8 1.5535 2.00000 + 9 2.2004 2.00000 + 10 4.5595 2.00000 + 11 4.9718 2.00000 + 12 5.6296 2.00000 + 13 6.2011 2.00000 + 14 9.0958 0.00000 + 15 9.7761 0.00000 + 16 11.4975 0.00000 + 17 12.5932 0.00000 + 18 15.0907 0.00000 + + k-point 401 : 0.0000 0.1333 0.4000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7400 2.00000 + 5 -30.0138 2.00000 + 6 -29.9979 2.00000 + 7 -29.9775 2.00000 + 8 0.2825 2.00000 + 9 2.6761 2.00000 + 10 4.5064 2.00000 + 11 4.8000 2.00000 + 12 4.9688 2.00000 + 13 7.7564 1.92606 + 14 10.1137 0.00000 + 15 10.4867 0.00000 + 16 11.6479 0.00000 + 17 13.3919 0.00000 + 18 14.4508 0.00000 + + k-point 402 : 0.0667 0.1333 0.4000 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7400 2.00000 + 5 -30.0137 2.00000 + 6 -30.0001 2.00000 + 7 -29.9773 2.00000 + 8 0.3313 2.00000 + 9 2.6826 2.00000 + 10 4.4604 2.00000 + 11 4.8061 2.00000 + 12 5.0256 2.00000 + 13 7.5867 1.99997 + 14 10.1283 0.00000 + 15 10.6729 0.00000 + 16 11.4680 0.00000 + 17 13.1394 0.00000 + 18 14.3328 0.00000 + + k-point 403 : 0.1333 0.1333 0.4000 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4247 2.00000 + 3 -91.2897 2.00000 + 4 -65.7398 2.00000 + 5 -30.0133 2.00000 + 6 -30.0063 2.00000 + 7 -29.9768 2.00000 + 8 0.4736 2.00000 + 9 2.6942 2.00000 + 10 4.3753 2.00000 + 11 4.8323 2.00000 + 12 5.1415 2.00000 + 13 7.2084 2.00000 + 14 10.1072 0.00000 + 15 10.9314 0.00000 + 16 11.2329 0.00000 + 17 12.9608 0.00000 + 18 14.6853 0.00000 + + k-point 404 : 0.2000 0.1333 0.4000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2900 2.00000 + 4 -65.7397 2.00000 + 5 -30.0155 2.00000 + 6 -30.0128 2.00000 + 7 -29.9760 2.00000 + 8 0.6917 2.00000 + 9 2.6939 2.00000 + 10 4.3211 2.00000 + 11 4.8693 2.00000 + 12 5.2665 2.00000 + 13 6.8005 2.00000 + 14 9.9630 0.00000 + 15 10.5675 0.00000 + 16 11.4806 0.00000 + 17 13.0652 0.00000 + 18 14.4338 0.00000 + + k-point 405 : 0.2667 0.1333 0.4000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7395 2.00000 + 5 -30.0259 2.00000 + 6 -30.0122 2.00000 + 7 -29.9751 2.00000 + 8 0.9628 2.00000 + 9 2.6633 2.00000 + 10 4.3343 2.00000 + 11 4.8939 2.00000 + 12 5.3859 2.00000 + 13 6.4620 2.00000 + 14 9.6578 0.00000 + 15 10.1908 0.00000 + 16 11.5257 0.00000 + 17 13.6164 0.00000 + 18 15.5505 0.00000 + + k-point 406 : 0.3333 0.1333 0.4000 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7393 2.00000 + 5 -30.0359 2.00000 + 6 -30.0116 2.00000 + 7 -29.9742 2.00000 + 8 1.2487 2.00000 + 9 2.5974 2.00000 + 10 4.4087 2.00000 + 11 4.8823 2.00000 + 12 5.5018 2.00000 + 13 6.2380 2.00000 + 14 9.3183 0.00000 + 15 9.7979 0.00000 + 16 11.5299 0.00000 + 17 13.8800 0.00000 + 18 14.6587 0.00000 + + k-point 407 : 0.4000 0.1333 0.4000 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7391 2.00000 + 5 -30.0437 2.00000 + 6 -30.0112 2.00000 + 7 -29.9735 2.00000 + 8 1.5051 2.00000 + 9 2.5119 2.00000 + 10 4.4950 2.00000 + 11 4.8424 2.00000 + 12 5.6205 2.00000 + 13 6.1187 2.00000 + 14 9.0647 0.00000 + 15 9.4200 0.00000 + 16 11.5701 0.00000 + 17 13.6103 0.00000 + 18 15.8073 0.00000 + + k-point 408 : 0.4667 0.1333 0.4000 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7390 2.00000 + 5 -30.0480 2.00000 + 6 -30.0110 2.00000 + 7 -29.9731 2.00000 + 8 1.6705 2.00000 + 9 2.4419 2.00000 + 10 4.5400 2.00000 + 11 4.8182 2.00000 + 12 5.7164 2.00000 + 13 6.0601 2.00000 + 14 8.9498 0.00000 + 15 9.1654 0.00000 + 16 11.6090 0.00000 + 17 13.4604 0.00000 + 18 15.4612 0.00000 + + k-point 409 : 0.0000 0.2000 0.4000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7397 2.00000 + 5 -30.0130 2.00000 + 6 -29.9967 2.00000 + 7 -29.9905 2.00000 + 8 0.5171 2.00000 + 9 2.6203 2.00000 + 10 4.5293 2.00000 + 11 4.9234 2.00000 + 12 5.0169 2.00000 + 13 7.2171 2.00000 + 14 9.9208 0.00000 + 15 10.3388 0.00000 + 16 12.4204 0.00000 + 17 12.7407 0.00000 + 18 14.2892 0.00000 + + k-point 410 : 0.0667 0.2000 0.4000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7397 2.00000 + 5 -30.0129 2.00000 + 6 -29.9989 2.00000 + 7 -29.9903 2.00000 + 8 0.5656 2.00000 + 9 2.6459 2.00000 + 10 4.4784 2.00000 + 11 4.8801 2.00000 + 12 5.1125 2.00000 + 13 7.0689 2.00000 + 14 9.9752 0.00000 + 15 10.4280 0.00000 + 16 12.5187 0.00000 + 17 32.9739 0.00000 + 18 35.7387 0.00000 + + k-point 411 : 0.1333 0.2000 0.4000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7396 2.00000 + 5 -30.0125 2.00000 + 6 -30.0051 2.00000 + 7 -29.9898 2.00000 + 8 0.7061 2.00000 + 9 2.7176 2.00000 + 10 4.3568 2.00000 + 11 4.8822 2.00000 + 12 5.2415 2.00000 + 13 6.7298 2.00000 + 14 9.8871 0.00000 + 15 10.7646 0.00000 + 16 11.4466 0.00000 + 17 14.5915 0.00000 + 18 38.5493 0.00000 + + k-point 412 : 0.2000 0.2000 0.4000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2900 2.00000 + 4 -65.7394 2.00000 + 5 -30.0143 2.00000 + 6 -30.0120 2.00000 + 7 -29.9890 2.00000 + 8 0.9230 2.00000 + 9 2.8144 2.00000 + 10 4.2395 2.00000 + 11 4.9255 2.00000 + 12 5.3419 2.00000 + 13 6.3667 2.00000 + 14 9.5538 0.00000 + 15 11.0084 0.00000 + 16 11.1693 0.00000 + 17 13.0107 0.00000 + 18 14.8133 0.00000 + + k-point 413 : 0.2667 0.2000 0.4000 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7392 2.00000 + 5 -30.0248 2.00000 + 6 -30.0115 2.00000 + 7 -29.9881 2.00000 + 8 1.1884 2.00000 + 9 2.8932 2.00000 + 10 4.1953 2.00000 + 11 4.9555 2.00000 + 12 5.3985 2.00000 + 13 6.1037 2.00000 + 14 9.0980 0.00000 + 15 10.5664 0.00000 + 16 11.4010 0.00000 + 17 13.2814 0.00000 + 18 14.7039 0.00000 + + k-point 414 : 0.3333 0.2000 0.4000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7390 2.00000 + 5 -30.0349 2.00000 + 6 -30.0110 2.00000 + 7 -29.9873 2.00000 + 8 1.4648 2.00000 + 9 2.9108 2.00000 + 10 4.2604 2.00000 + 11 4.8930 2.00000 + 12 5.4670 2.00000 + 13 5.9927 2.00000 + 14 8.6547 0.00000 + 15 10.0335 0.00000 + 16 11.5522 0.00000 + 17 13.8640 0.00000 + 18 14.7888 0.00000 + + k-point 415 : 0.4000 0.2000 0.4000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7389 2.00000 + 5 -30.0427 2.00000 + 6 -30.0105 2.00000 + 7 -29.9866 2.00000 + 8 1.7087 2.00000 + 9 2.8704 2.00000 + 10 4.3914 2.00000 + 11 4.7599 2.00000 + 12 5.6061 2.00000 + 13 5.9584 2.00000 + 14 8.3087 0.00000 + 15 9.5375 0.00000 + 16 11.6648 0.00000 + 17 14.4457 0.00000 + 18 14.7936 0.00000 + + k-point 416 : 0.4667 0.2000 0.4000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7388 2.00000 + 5 -30.0470 2.00000 + 6 -30.0104 2.00000 + 7 -29.9863 2.00000 + 8 1.8594 2.00000 + 9 2.8218 2.00000 + 10 4.4916 2.00000 + 11 4.6640 2.00000 + 12 5.7708 2.00000 + 13 5.9044 2.00000 + 14 8.1176 0.00090 + 15 9.2281 0.00000 + 16 11.7299 0.00000 + 17 14.3458 0.00000 + 18 15.1540 0.00000 + + k-point 417 : 0.0000 0.2667 0.4000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7395 2.00000 + 5 -30.0121 2.00000 + 6 -30.0053 2.00000 + 7 -29.9953 2.00000 + 8 0.8079 2.00000 + 9 2.5334 2.00000 + 10 4.5838 2.00000 + 11 5.0666 2.00000 + 12 5.0783 2.00000 + 13 6.7500 2.00000 + 14 9.6333 0.00000 + 15 10.3108 0.00000 + 16 12.2505 0.00000 + 17 12.6826 0.00000 + 18 14.7554 0.00000 + + k-point 418 : 0.0667 0.2667 0.4000 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7394 2.00000 + 5 -30.0120 2.00000 + 6 -30.0051 2.00000 + 7 -29.9975 2.00000 + 8 0.8563 2.00000 + 9 2.5778 2.00000 + 10 4.5415 2.00000 + 11 4.9542 2.00000 + 12 5.2219 2.00000 + 13 6.6261 2.00000 + 14 9.6800 0.00000 + 15 10.3030 0.00000 + 16 11.8282 0.00000 + 17 13.2292 0.00000 + 18 14.7293 0.00000 + + k-point 419 : 0.1333 0.2667 0.4000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7393 2.00000 + 5 -30.0117 2.00000 + 6 -30.0046 2.00000 + 7 -30.0037 2.00000 + 8 0.9944 2.00000 + 9 2.7079 2.00000 + 10 4.4058 2.00000 + 11 4.9318 2.00000 + 12 5.3400 2.00000 + 13 6.3377 2.00000 + 14 9.5130 0.00000 + 15 10.4672 0.00000 + 16 11.4998 0.00000 + 17 13.8778 0.00000 + 18 18.0925 0.00000 + + k-point 420 : 0.2000 0.2667 0.4000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7391 2.00000 + 5 -30.0130 2.00000 + 6 -30.0112 2.00000 + 7 -30.0039 2.00000 + 8 1.2055 2.00000 + 9 2.9156 2.00000 + 10 4.2276 2.00000 + 11 4.9929 2.00000 + 12 5.3616 2.00000 + 13 6.0549 2.00000 + 14 9.0232 0.00000 + 15 10.8076 0.00000 + 16 11.3166 0.00000 + 17 13.1705 0.00000 + 18 14.8540 0.00000 + + k-point 421 : 0.2667 0.2667 0.4000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7389 2.00000 + 5 -30.0235 2.00000 + 6 -30.0107 2.00000 + 7 -30.0030 2.00000 + 8 1.4620 2.00000 + 9 3.1623 2.00000 + 10 4.0828 2.00000 + 11 5.0864 2.00000 + 12 5.2214 2.00000 + 13 5.9363 2.00000 + 14 8.4563 0.00000 + 15 10.8355 0.00000 + 16 11.2520 0.00000 + 17 13.1419 0.00000 + 18 15.5800 0.00000 + + k-point 422 : 0.3333 0.2667 0.4000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7387 2.00000 + 5 -30.0336 2.00000 + 6 -30.0102 2.00000 + 7 -30.0022 2.00000 + 8 1.7297 2.00000 + 9 3.3337 2.00000 + 10 4.0790 2.00000 + 11 4.9123 2.00000 + 12 5.2921 2.00000 + 13 5.9385 2.00000 + 14 7.9391 0.42621 + 15 10.2850 0.00000 + 16 11.4643 0.00000 + 17 13.4225 0.00000 + 18 15.4710 0.00000 + + k-point 423 : 0.4000 0.2667 0.4000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2909 2.00000 + 4 -65.7386 2.00000 + 5 -30.0415 2.00000 + 6 -30.0098 2.00000 + 7 -30.0016 2.00000 + 8 1.9664 2.00000 + 9 3.3331 2.00000 + 10 4.2564 2.00000 + 11 4.6894 2.00000 + 12 5.4784 2.00000 + 13 5.9482 2.00000 + 14 7.5447 2.00000 + 15 9.6945 0.00000 + 16 11.6252 0.00000 + 17 13.7684 0.00000 + 18 15.1176 0.00000 + + k-point 424 : 0.4667 0.2667 0.4000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7385 2.00000 + 5 -30.0458 2.00000 + 6 -30.0096 2.00000 + 7 -30.0012 2.00000 + 8 2.1159 2.00000 + 9 3.2777 2.00000 + 10 4.4136 2.00000 + 11 4.5730 2.00000 + 12 5.6529 2.00000 + 13 5.9143 2.00000 + 14 7.3340 2.00000 + 15 9.3087 0.00000 + 16 11.7152 0.00000 + 17 14.2992 0.00000 + 18 15.1018 0.00000 + + k-point 425 : 0.0000 0.3333 0.4000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7391 2.00000 + 5 -30.0194 2.00000 + 6 -30.0113 2.00000 + 7 -29.9940 2.00000 + 8 1.1188 2.00000 + 9 2.4225 2.00000 + 10 4.6599 2.00000 + 11 5.1059 2.00000 + 12 5.2458 2.00000 + 13 6.3781 2.00000 + 14 9.4462 0.00000 + 15 10.2515 0.00000 + 16 11.8462 0.00000 + 17 12.3849 0.00000 + 18 15.2872 0.00000 + + k-point 426 : 0.0667 0.3333 0.4000 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7391 2.00000 + 5 -30.0192 2.00000 + 6 -30.0112 2.00000 + 7 -29.9962 2.00000 + 8 1.1663 2.00000 + 9 2.4798 2.00000 + 10 4.6338 2.00000 + 11 5.0065 2.00000 + 12 5.3465 2.00000 + 13 6.2884 2.00000 + 14 9.4413 0.00000 + 15 10.1362 0.00000 + 16 11.5983 0.00000 + 17 12.9221 0.00000 + 18 14.9830 0.00000 + + k-point 427 : 0.1333 0.3333 0.4000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2905 2.00000 + 4 -65.7390 2.00000 + 5 -30.0187 2.00000 + 6 -30.0108 2.00000 + 7 -30.0025 2.00000 + 8 1.2998 2.00000 + 9 2.6535 2.00000 + 10 4.5224 2.00000 + 11 4.9355 2.00000 + 12 5.4403 2.00000 + 13 6.0847 2.00000 + 14 9.1320 0.00000 + 15 10.1355 0.00000 + 16 11.4935 0.00000 + 17 14.1593 0.00000 + 18 15.0031 0.00000 + + k-point 428 : 0.2000 0.3333 0.4000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7388 2.00000 + 5 -30.0181 2.00000 + 6 -30.0118 2.00000 + 7 -30.0103 2.00000 + 8 1.5018 2.00000 + 9 2.9434 2.00000 + 10 4.3332 2.00000 + 11 4.9416 2.00000 + 12 5.4009 2.00000 + 13 5.9358 2.00000 + 14 8.5164 0.00000 + 15 10.3690 0.00000 + 16 11.4796 0.00000 + 17 13.6233 0.00000 + 18 15.4168 0.00000 + + k-point 429 : 0.2667 0.3333 0.4000 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7386 2.00000 + 5 -30.0224 2.00000 + 6 -30.0173 2.00000 + 7 -30.0098 2.00000 + 8 1.7486 2.00000 + 9 3.3382 2.00000 + 10 4.1257 2.00000 + 11 4.9091 2.00000 + 12 5.2805 2.00000 + 13 5.9294 2.00000 + 14 7.8705 1.13750 + 15 10.5822 0.00000 + 16 11.3190 0.00000 + 17 14.4746 0.00000 + 18 15.4084 0.00000 + + k-point 430 : 0.3333 0.3333 0.4000 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4262 2.00000 + 3 -91.2911 2.00000 + 4 -65.7384 2.00000 + 5 -30.0325 2.00000 + 6 -30.0165 2.00000 + 7 -30.0094 2.00000 + 8 2.0137 2.00000 + 9 3.7924 2.00000 + 10 3.9366 2.00000 + 11 4.7182 2.00000 + 12 5.3253 2.00000 + 13 5.9653 2.00000 + 14 7.2969 2.00000 + 15 10.3874 0.00000 + 16 11.1648 0.00000 + 17 13.7918 0.00000 + 18 15.7649 0.00000 + + k-point 431 : 0.4000 0.3333 0.4000 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2910 2.00000 + 4 -65.7383 2.00000 + 5 -30.0404 2.00000 + 6 -30.0159 2.00000 + 7 -30.0090 2.00000 + 8 2.2614 2.00000 + 9 3.7478 2.00000 + 10 4.2324 2.00000 + 11 4.5462 2.00000 + 12 5.4530 2.00000 + 13 5.9817 2.00000 + 14 6.8661 2.00000 + 15 9.8164 0.00000 + 16 11.2354 0.00000 + 17 13.3824 0.00000 + 18 15.4946 0.00000 + + k-point 432 : 0.4667 0.3333 0.4000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2909 2.00000 + 4 -65.7382 2.00000 + 5 -30.0447 2.00000 + 6 -30.0156 2.00000 + 7 -30.0087 2.00000 + 8 2.4276 2.00000 + 9 3.6308 2.00000 + 10 4.3095 2.00000 + 11 4.6704 2.00000 + 12 5.5414 2.00000 + 13 5.9604 2.00000 + 14 6.6554 2.00000 + 15 9.3847 0.00000 + 16 11.2998 0.00000 + 17 13.4998 0.00000 + 18 15.5406 0.00000 + + k-point 433 : 0.0000 0.4000 0.4000 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4262 2.00000 + 3 -91.2911 2.00000 + 4 -65.7389 2.00000 + 5 -30.0304 2.00000 + 6 -30.0107 2.00000 + 7 -29.9930 2.00000 + 8 1.4059 2.00000 + 9 2.2991 2.00000 + 10 4.7303 2.00000 + 11 5.1280 2.00000 + 12 5.4014 2.00000 + 13 6.1085 2.00000 + 14 9.4200 0.00000 + 15 10.1068 0.00000 + 16 11.5735 0.00000 + 17 12.0510 0.00000 + 18 15.2640 0.00000 + + k-point 434 : 0.0667 0.4000 0.4000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2908 2.00000 + 4 -65.7389 2.00000 + 5 -30.0302 2.00000 + 6 -30.0105 2.00000 + 7 -29.9952 2.00000 + 8 1.4496 2.00000 + 9 2.3666 2.00000 + 10 4.7143 2.00000 + 11 5.0343 2.00000 + 12 5.4738 2.00000 + 13 6.0596 2.00000 + 14 9.3470 0.00000 + 15 9.8894 0.00000 + 16 11.4911 0.00000 + 17 12.5501 0.00000 + 18 15.0042 0.00000 + + k-point 435 : 0.1333 0.4000 0.4000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7387 2.00000 + 5 -30.0298 2.00000 + 6 -30.0102 2.00000 + 7 -30.0014 2.00000 + 8 1.5741 2.00000 + 9 2.5692 2.00000 + 10 4.6449 2.00000 + 11 4.8922 2.00000 + 12 5.5587 2.00000 + 13 5.9560 2.00000 + 14 8.8420 0.00000 + 15 9.8198 0.00000 + 16 11.5326 0.00000 + 17 13.4548 0.00000 + 18 15.3070 0.00000 + + k-point 436 : 0.2000 0.4000 0.4000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2903 2.00000 + 4 -65.7385 2.00000 + 5 -30.0291 2.00000 + 6 -30.0108 2.00000 + 7 -30.0097 2.00000 + 8 1.7645 2.00000 + 9 2.9023 2.00000 + 10 4.5006 2.00000 + 11 4.7818 2.00000 + 12 5.5503 2.00000 + 13 5.9099 2.00000 + 14 8.1185 0.00086 + 15 9.9431 0.00000 + 16 11.5982 0.00000 + 17 14.1559 0.00000 + 18 15.5155 0.00000 + + k-point 437 : 0.2667 0.4000 0.4000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7383 2.00000 + 5 -30.0283 2.00000 + 6 -30.0214 2.00000 + 7 -30.0092 2.00000 + 8 2.0055 2.00000 + 9 3.3368 2.00000 + 10 4.3451 2.00000 + 11 4.6481 2.00000 + 12 5.4981 2.00000 + 13 5.9423 2.00000 + 14 7.4143 2.00000 + 15 10.0772 0.00000 + 16 11.5013 0.00000 + 17 14.0698 0.00000 + 18 15.1813 0.00000 + + k-point 438 : 0.3333 0.4000 0.4000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7382 2.00000 + 5 -30.0316 2.00000 + 6 -30.0276 2.00000 + 7 -30.0088 2.00000 + 8 2.2811 2.00000 + 9 3.7459 2.00000 + 10 4.2885 2.00000 + 11 4.4782 2.00000 + 12 5.5123 2.00000 + 13 5.9815 2.00000 + 14 6.7976 2.00000 + 15 10.1223 0.00000 + 16 10.9975 0.00000 + 17 13.3162 0.00000 + 18 35.4508 0.00000 + + k-point 439 : 0.4000 0.4000 0.4000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7380 2.00000 + 5 -30.0395 2.00000 + 6 -30.0270 2.00000 + 7 -30.0084 2.00000 + 8 2.5605 2.00000 + 9 3.8201 2.00000 + 10 4.2232 2.00000 + 11 4.6720 2.00000 + 12 5.5887 2.00000 + 13 5.9853 2.00000 + 14 6.3304 2.00000 + 15 9.8542 0.00000 + 16 10.6312 0.00000 + 17 13.3008 0.00000 + 18 15.9780 0.00000 + + k-point 440 : 0.4667 0.4000 0.4000 + band No. band energies occupation + 1 -91.8815 2.00000 + 2 -91.4265 2.00000 + 3 -91.2915 2.00000 + 4 -65.7380 2.00000 + 5 -30.0439 2.00000 + 6 -30.0268 2.00000 + 7 -30.0082 2.00000 + 8 2.7690 2.00000 + 9 3.7318 2.00000 + 10 4.1082 2.00000 + 11 5.0768 2.00000 + 12 5.5474 2.00000 + 13 5.9652 2.00000 + 14 6.1318 2.00000 + 15 9.4421 0.00000 + 16 10.5773 0.00000 + 17 13.3598 0.00000 + 18 15.6239 0.00000 + + k-point 441 : 0.0000 0.4667 0.4000 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2911 2.00000 + 4 -65.7388 2.00000 + 5 -30.0364 2.00000 + 6 -30.0103 2.00000 + 7 -29.9924 2.00000 + 8 1.6041 2.00000 + 9 2.1949 2.00000 + 10 4.7707 2.00000 + 11 5.1368 2.00000 + 12 5.5104 2.00000 + 13 5.9515 2.00000 + 14 9.5274 0.00000 + 15 9.9063 0.00000 + 16 11.4475 0.00000 + 17 11.8572 0.00000 + 18 14.7311 0.00000 + + k-point 442 : 0.0667 0.4667 0.4000 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2905 2.00000 + 4 -65.7387 2.00000 + 5 -30.0362 2.00000 + 6 -30.0101 2.00000 + 7 -29.9946 2.00000 + 8 1.6419 2.00000 + 9 2.2709 2.00000 + 10 4.7507 2.00000 + 11 5.0499 2.00000 + 12 5.5743 2.00000 + 13 5.9294 2.00000 + 14 9.4032 0.00000 + 15 9.6388 0.00000 + 16 11.4753 0.00000 + 17 12.3145 0.00000 + 18 15.0586 0.00000 + + k-point 443 : 0.1333 0.4667 0.4000 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7386 2.00000 + 5 -30.0358 2.00000 + 6 -30.0099 2.00000 + 7 -30.0009 2.00000 + 8 1.7525 2.00000 + 9 2.4947 2.00000 + 10 4.6872 2.00000 + 11 4.8807 2.00000 + 12 5.6780 2.00000 + 13 5.8786 2.00000 + 14 8.6877 0.00000 + 15 9.6263 0.00000 + 16 11.5761 0.00000 + 17 13.1883 0.00000 + 18 15.0368 0.00000 + + k-point 444 : 0.2000 0.4667 0.4000 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2909 2.00000 + 4 -65.7384 2.00000 + 5 -30.0351 2.00000 + 6 -30.0103 2.00000 + 7 -30.0094 2.00000 + 8 1.9301 2.00000 + 9 2.8492 2.00000 + 10 4.5787 2.00000 + 11 4.7121 2.00000 + 12 5.7281 2.00000 + 13 5.8578 2.00000 + 14 7.8952 0.86080 + 15 9.6755 0.00000 + 16 11.6667 0.00000 + 17 14.3103 0.00000 + 18 38.9176 0.00000 + + k-point 445 : 0.2667 0.4667 0.4000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2909 2.00000 + 4 -65.7382 2.00000 + 5 -30.0344 2.00000 + 6 -30.0209 2.00000 + 7 -30.0089 2.00000 + 8 2.1704 2.00000 + 9 3.2839 2.00000 + 10 4.4368 2.00000 + 11 4.5966 2.00000 + 12 5.6971 2.00000 + 13 5.9055 2.00000 + 14 7.1618 2.00000 + 15 9.7305 0.00000 + 16 11.5519 0.00000 + 17 13.7092 0.00000 + 18 15.1518 0.00000 + + k-point 446 : 0.3333 0.4667 0.4000 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7380 2.00000 + 5 -30.0336 2.00000 + 6 -30.0310 2.00000 + 7 -30.0084 2.00000 + 8 2.4625 2.00000 + 9 3.6552 2.00000 + 10 4.2572 2.00000 + 11 4.6667 2.00000 + 12 5.6659 2.00000 + 13 5.9462 2.00000 + 14 6.5416 2.00000 + 15 9.7701 0.00000 + 16 11.0159 0.00000 + 17 13.7528 0.00000 + 18 15.5596 0.00000 + + k-point 447 : 0.4000 0.4667 0.4000 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7379 2.00000 + 5 -30.0390 2.00000 + 6 -30.0331 2.00000 + 7 -30.0080 2.00000 + 8 2.7831 2.00000 + 9 3.7889 2.00000 + 10 4.0361 2.00000 + 11 5.0350 2.00000 + 12 5.6638 2.00000 + 13 5.9246 2.00000 + 14 6.1048 2.00000 + 15 9.7327 0.00000 + 16 10.2984 0.00000 + 17 13.3147 0.00000 + 18 15.4211 0.00000 + + k-point 448 : 0.4667 0.4667 0.4000 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4262 2.00000 + 3 -91.2912 2.00000 + 4 -65.7378 2.00000 + 5 -30.0434 2.00000 + 6 -30.0328 2.00000 + 7 -30.0078 2.00000 + 8 3.0626 2.00000 + 9 3.7463 2.00000 + 10 3.8683 2.00000 + 11 5.4341 2.00000 + 12 5.6823 2.00000 + 13 5.7756 2.00000 + 14 5.9556 2.00000 + 15 9.4675 0.00000 + 16 10.0217 0.00000 + 17 13.3491 0.00000 + 18 16.1206 0.00000 + + k-point 449 : 0.0000 0.0000 0.4667 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7397 2.00000 + 5 -30.0332 2.00000 + 6 -29.9970 2.00000 + 7 -29.9635 2.00000 + 8 0.5736 2.00000 + 9 2.1119 2.00000 + 10 4.5165 2.00000 + 11 4.5676 2.00000 + 12 4.7863 2.00000 + 13 8.6168 0.00000 + 14 10.8092 0.00000 + 15 11.1222 0.00000 + 16 11.2007 0.00000 + 17 14.0197 0.00000 + 18 39.2698 0.00000 + + k-point 450 : 0.0667 0.0000 0.4667 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7395 2.00000 + 5 -30.0330 2.00000 + 6 -29.9991 2.00000 + 7 -29.9633 2.00000 + 8 0.6291 2.00000 + 9 2.0977 2.00000 + 10 4.5093 2.00000 + 11 4.5944 2.00000 + 12 4.8096 2.00000 + 13 8.4094 0.00000 + 14 10.7035 0.00000 + 15 11.1656 0.00000 + 16 11.6529 0.00000 + 17 14.1405 0.00000 + 18 41.5789 0.00000 + + k-point 451 : 0.1333 0.0000 0.4667 + band No. band energies occupation + 1 -91.8796 2.00000 + 2 -91.4247 2.00000 + 3 -91.2896 2.00000 + 4 -65.7394 2.00000 + 5 -30.0326 2.00000 + 6 -30.0053 2.00000 + 7 -29.9627 2.00000 + 8 0.7865 2.00000 + 9 2.0532 2.00000 + 10 4.5078 2.00000 + 11 4.6507 2.00000 + 12 4.8773 2.00000 + 13 7.9670 0.23363 + 14 10.4342 0.00000 + 15 11.1229 0.00000 + 16 12.2041 0.00000 + 17 12.2648 0.00000 + 18 14.3078 0.00000 + + k-point 452 : 0.2000 0.0000 0.4667 + band No. band energies occupation + 1 -91.8795 2.00000 + 2 -91.4245 2.00000 + 3 -91.2895 2.00000 + 4 -65.7392 2.00000 + 5 -30.0322 2.00000 + 6 -30.0144 2.00000 + 7 -29.9619 2.00000 + 8 1.0275 2.00000 + 9 1.9962 2.00000 + 10 4.5159 2.00000 + 11 4.7211 2.00000 + 12 4.9818 2.00000 + 13 7.4959 2.00000 + 14 10.0943 0.00000 + 15 11.0206 0.00000 + 16 11.8767 0.00000 + 17 13.0219 0.00000 + 18 14.6524 0.00000 + + k-point 453 : 0.2667 0.0000 0.4667 + band No. band energies occupation + 1 -91.8795 2.00000 + 2 -91.4245 2.00000 + 3 -91.2895 2.00000 + 4 -65.7390 2.00000 + 5 -30.0316 2.00000 + 6 -30.0249 2.00000 + 7 -29.9609 2.00000 + 8 1.3090 2.00000 + 9 1.9542 2.00000 + 10 4.5205 2.00000 + 11 4.7985 2.00000 + 12 5.1102 2.00000 + 13 7.0804 2.00000 + 14 9.7491 0.00000 + 15 10.7814 0.00000 + 16 12.7825 0.00000 + 17 14.2666 0.00000 + 18 40.5060 0.00000 + + k-point 454 : 0.3333 0.0000 0.4667 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7388 2.00000 + 5 -30.0349 2.00000 + 6 -30.0311 2.00000 + 7 -29.9600 2.00000 + 8 1.5312 2.00000 + 9 1.9991 2.00000 + 10 4.5052 2.00000 + 11 4.8754 2.00000 + 12 5.2431 2.00000 + 13 6.7527 2.00000 + 14 9.4493 0.00000 + 15 10.4582 0.00000 + 16 11.6293 0.00000 + 17 12.3813 0.00000 + 18 15.5445 0.00000 + + k-point 455 : 0.4000 0.0000 0.4667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7387 2.00000 + 5 -30.0428 2.00000 + 6 -30.0307 2.00000 + 7 -29.9593 2.00000 + 8 1.5968 2.00000 + 9 2.1802 2.00000 + 10 4.4669 2.00000 + 11 4.9394 2.00000 + 12 5.3556 2.00000 + 13 6.5274 2.00000 + 14 9.2375 0.00000 + 15 10.2067 0.00000 + 16 12.0084 0.00000 + 17 14.2385 0.00000 + 18 36.2448 0.00000 + + k-point 456 : 0.4667 0.0000 0.4667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2901 2.00000 + 4 -65.7386 2.00000 + 5 -30.0470 2.00000 + 6 -30.0305 2.00000 + 7 -29.9589 2.00000 + 8 1.5982 2.00000 + 9 2.3352 2.00000 + 10 4.4290 2.00000 + 11 4.9767 2.00000 + 12 5.4211 2.00000 + 13 6.4124 2.00000 + 14 9.1302 0.00000 + 15 10.0506 0.00000 + 16 11.6269 0.00000 + 17 11.8418 0.00000 + 18 15.0676 0.00000 + + k-point 457 : 0.0000 0.0667 0.4667 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7395 2.00000 + 5 -30.0330 2.00000 + 6 -29.9966 2.00000 + 7 -29.9665 2.00000 + 8 0.6330 2.00000 + 9 2.1018 2.00000 + 10 4.5271 2.00000 + 11 4.5956 2.00000 + 12 4.7951 2.00000 + 13 8.3518 0.00000 + 14 11.1089 0.00000 + 15 11.1684 0.00000 + 16 13.7806 0.00000 + 17 14.1363 0.00000 + 18 19.9386 0.00000 + + k-point 458 : 0.0667 0.0667 0.4667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4251 2.00000 + 3 -91.2900 2.00000 + 4 -65.7395 2.00000 + 5 -30.0328 2.00000 + 6 -29.9988 2.00000 + 7 -29.9664 2.00000 + 8 0.6878 2.00000 + 9 2.0898 2.00000 + 10 4.5140 2.00000 + 11 4.6007 2.00000 + 12 4.8434 2.00000 + 13 8.1649 0.00007 + 14 10.9818 0.00000 + 15 11.1274 0.00000 + 16 11.4259 0.00000 + 17 13.4427 0.00000 + 18 14.6883 0.00000 + + k-point 459 : 0.1333 0.0667 0.4667 + band No. band energies occupation + 1 -91.8794 2.00000 + 2 -91.4244 2.00000 + 3 -91.2894 2.00000 + 4 -65.7393 2.00000 + 5 -30.0325 2.00000 + 6 -30.0049 2.00000 + 7 -29.9658 2.00000 + 8 0.8465 2.00000 + 9 2.0591 2.00000 + 10 4.4969 2.00000 + 11 4.6223 2.00000 + 12 4.9548 2.00000 + 13 7.7541 1.93112 + 14 10.6858 0.00000 + 15 11.0717 0.00000 + 16 11.8125 0.00000 + 17 12.3245 0.00000 + 18 14.7406 0.00000 + + k-point 460 : 0.2000 0.0667 0.4667 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2898 2.00000 + 4 -65.7392 2.00000 + 5 -30.0320 2.00000 + 6 -30.0142 2.00000 + 7 -29.9650 2.00000 + 8 1.0875 2.00000 + 9 2.0159 2.00000 + 10 4.4997 2.00000 + 11 4.6561 2.00000 + 12 5.0929 2.00000 + 13 7.3100 2.00000 + 14 10.3059 0.00000 + 15 10.8388 0.00000 + 16 11.7195 0.00000 + 17 13.5031 0.00000 + 18 14.7149 0.00000 + + k-point 461 : 0.2667 0.0667 0.4667 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4247 2.00000 + 3 -91.2896 2.00000 + 4 -65.7389 2.00000 + 5 -30.0315 2.00000 + 6 -30.0246 2.00000 + 7 -29.9641 2.00000 + 8 1.3668 2.00000 + 9 1.9926 2.00000 + 10 4.5154 2.00000 + 11 4.6963 2.00000 + 12 5.2390 2.00000 + 13 6.9228 2.00000 + 14 9.9077 0.00000 + 15 10.4464 0.00000 + 16 11.5965 0.00000 + 17 13.3203 0.00000 + 18 14.3775 0.00000 + + k-point 462 : 0.3333 0.0667 0.4667 + band No. band energies occupation + 1 -91.8799 2.00000 + 2 -91.4249 2.00000 + 3 -91.2899 2.00000 + 4 -65.7388 2.00000 + 5 -30.0347 2.00000 + 6 -30.0310 2.00000 + 7 -29.9632 2.00000 + 8 1.5777 2.00000 + 9 2.0640 2.00000 + 10 4.5124 2.00000 + 11 4.7455 2.00000 + 12 5.3763 2.00000 + 13 6.6315 2.00000 + 14 9.5524 0.00000 + 15 10.0473 0.00000 + 16 12.1279 0.00000 + 17 14.4175 0.00000 + 18 15.1742 0.00000 + + k-point 463 : 0.4000 0.0667 0.4667 + band No. band energies occupation + 1 -91.8801 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7386 2.00000 + 5 -30.0425 2.00000 + 6 -30.0306 2.00000 + 7 -29.9625 2.00000 + 8 1.6379 2.00000 + 9 2.2630 2.00000 + 10 4.4722 2.00000 + 11 4.7995 2.00000 + 12 5.4863 2.00000 + 13 6.4480 2.00000 + 14 9.2884 0.00000 + 15 9.7273 0.00000 + 16 11.6147 0.00000 + 17 12.5272 0.00000 + 18 15.4126 0.00000 + + k-point 464 : 0.4667 0.0667 0.4667 + band No. band energies occupation + 1 -91.8798 2.00000 + 2 -91.4248 2.00000 + 3 -91.2898 2.00000 + 4 -65.7385 2.00000 + 5 -30.0468 2.00000 + 6 -30.0303 2.00000 + 7 -29.9621 2.00000 + 8 1.6405 2.00000 + 9 2.4253 2.00000 + 10 4.4262 2.00000 + 11 4.8365 2.00000 + 12 5.5489 2.00000 + 13 6.3631 2.00000 + 14 9.1487 0.00000 + 15 9.5497 0.00000 + 16 11.6341 0.00000 + 17 12.3538 0.00000 + 18 15.2479 0.00000 + + k-point 465 : 0.0000 0.1333 0.4667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2908 2.00000 + 4 -65.7394 2.00000 + 5 -30.0325 2.00000 + 6 -29.9959 2.00000 + 7 -29.9755 2.00000 + 8 0.8009 2.00000 + 9 2.0701 2.00000 + 10 4.5572 2.00000 + 11 4.6768 2.00000 + 12 4.8227 2.00000 + 13 7.8284 1.55787 + 14 10.7722 0.00000 + 15 11.2548 0.00000 + 16 12.1273 0.00000 + 17 13.8872 0.00000 + 18 19.3208 0.00000 + + k-point 466 : 0.0667 0.1333 0.4667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7393 2.00000 + 5 -30.0324 2.00000 + 6 -29.9980 2.00000 + 7 -29.9752 2.00000 + 8 0.8570 2.00000 + 9 2.0712 2.00000 + 10 4.5273 2.00000 + 11 4.6328 2.00000 + 12 4.9304 2.00000 + 13 7.6670 1.99772 + 14 10.9814 0.00000 + 15 11.0519 0.00000 + 16 11.6948 0.00000 + 17 14.0784 0.00000 + 18 42.2456 0.00000 + + k-point 467 : 0.1333 0.1333 0.4667 + band No. band energies occupation + 1 -91.8797 2.00000 + 2 -91.4247 2.00000 + 3 -91.2896 2.00000 + 4 -65.7391 2.00000 + 5 -30.0320 2.00000 + 6 -30.0042 2.00000 + 7 -29.9747 2.00000 + 8 1.0176 2.00000 + 9 2.0713 2.00000 + 10 4.4474 2.00000 + 11 4.6405 2.00000 + 12 5.1016 2.00000 + 13 7.2990 2.00000 + 14 10.7764 0.00000 + 15 11.1820 0.00000 + 16 11.3580 0.00000 + 17 12.3963 0.00000 + 18 14.3579 0.00000 + + k-point 468 : 0.2000 0.1333 0.4667 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2899 2.00000 + 4 -65.7390 2.00000 + 5 -30.0316 2.00000 + 6 -30.0134 2.00000 + 7 -29.9739 2.00000 + 8 1.2586 2.00000 + 9 2.0756 2.00000 + 10 4.3961 2.00000 + 11 4.6691 2.00000 + 12 5.2775 2.00000 + 13 6.8932 2.00000 + 14 10.2551 0.00000 + 15 10.7808 0.00000 + 16 11.4976 0.00000 + 17 12.8877 0.00000 + 18 15.8667 0.00000 + + k-point 469 : 0.2667 0.1333 0.4667 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7388 2.00000 + 5 -30.0310 2.00000 + 6 -30.0239 2.00000 + 7 -29.9730 2.00000 + 8 1.5255 2.00000 + 9 2.1140 2.00000 + 10 4.3949 2.00000 + 11 4.6822 2.00000 + 12 5.4431 2.00000 + 13 6.5515 2.00000 + 14 9.6939 0.00000 + 15 10.3186 0.00000 + 16 11.5514 0.00000 + 17 13.6887 0.00000 + 18 13.9888 0.00000 + + k-point 470 : 0.3333 0.1333 0.4667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2903 2.00000 + 4 -65.7386 2.00000 + 5 -30.0340 2.00000 + 6 -30.0305 2.00000 + 7 -29.9721 2.00000 + 8 1.7053 2.00000 + 9 2.2618 2.00000 + 10 4.4314 2.00000 + 11 4.6508 2.00000 + 12 5.5873 2.00000 + 13 6.3317 2.00000 + 14 9.2060 0.00000 + 15 9.8463 0.00000 + 16 11.5922 0.00000 + 17 13.7036 0.00000 + 18 15.4834 0.00000 + + k-point 471 : 0.4000 0.1333 0.4667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7384 2.00000 + 5 -30.0418 2.00000 + 6 -30.0301 2.00000 + 7 -29.9715 2.00000 + 8 1.7590 2.00000 + 9 2.5073 2.00000 + 10 4.4571 2.00000 + 11 4.5923 2.00000 + 12 5.6986 2.00000 + 13 6.2426 2.00000 + 14 8.8451 0.00000 + 15 9.4436 0.00000 + 16 11.9279 0.00000 + 17 13.5539 0.00000 + 18 15.7128 0.00000 + + k-point 472 : 0.4667 0.1333 0.4667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7384 2.00000 + 5 -30.0461 2.00000 + 6 -30.0299 2.00000 + 7 -29.9711 2.00000 + 8 1.7660 2.00000 + 9 2.6912 2.00000 + 10 4.4142 2.00000 + 11 4.5895 2.00000 + 12 5.7615 2.00000 + 13 6.2306 2.00000 + 14 8.6509 0.00000 + 15 9.2035 0.00000 + 16 11.6476 0.00000 + 17 14.2805 0.00000 + 18 19.5232 0.00000 + + k-point 473 : 0.0000 0.2000 0.4667 + band No. band energies occupation + 1 -91.8815 2.00000 + 2 -91.4265 2.00000 + 3 -91.2914 2.00000 + 4 -65.7392 2.00000 + 5 -30.0318 2.00000 + 6 -29.9947 2.00000 + 7 -29.9885 2.00000 + 8 1.0577 2.00000 + 9 2.0304 2.00000 + 10 4.6009 2.00000 + 11 4.8033 2.00000 + 12 4.8693 2.00000 + 13 7.2978 2.00000 + 14 10.4120 0.00000 + 15 10.9345 0.00000 + 16 11.8493 0.00000 + 17 12.9361 0.00000 + 18 14.3082 0.00000 + + k-point 474 : 0.0667 0.2000 0.4667 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4262 2.00000 + 3 -91.2911 2.00000 + 4 -65.7391 2.00000 + 5 -30.0317 2.00000 + 6 -29.9968 2.00000 + 7 -29.9883 2.00000 + 8 1.1137 2.00000 + 9 2.0461 2.00000 + 10 4.5591 2.00000 + 11 4.6899 2.00000 + 12 5.0505 2.00000 + 13 7.1547 2.00000 + 14 10.5597 0.00000 + 15 10.7725 0.00000 + 16 11.6641 0.00000 + 17 12.9304 0.00000 + 18 41.7172 0.00000 + + k-point 475 : 0.1333 0.2000 0.4667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2904 2.00000 + 4 -65.7389 2.00000 + 5 -30.0313 2.00000 + 6 -30.0030 2.00000 + 7 -29.9878 2.00000 + 8 1.2740 2.00000 + 9 2.0929 2.00000 + 10 4.4116 2.00000 + 11 4.7042 2.00000 + 12 5.2624 2.00000 + 13 6.8170 2.00000 + 14 10.1893 0.00000 + 15 11.0104 0.00000 + 16 11.7700 0.00000 + 17 13.5929 0.00000 + 18 14.2934 0.00000 + + k-point 476 : 0.2000 0.2000 0.4667 + band No. band energies occupation + 1 -91.8800 2.00000 + 2 -91.4250 2.00000 + 3 -91.2900 2.00000 + 4 -65.7387 2.00000 + 5 -30.0309 2.00000 + 6 -30.0122 2.00000 + 7 -29.9870 2.00000 + 8 1.5073 2.00000 + 9 2.1781 2.00000 + 10 4.2861 2.00000 + 11 4.7582 2.00000 + 12 5.4598 2.00000 + 13 6.4336 2.00000 + 14 9.5343 0.00000 + 15 11.2013 0.00000 + 16 11.3387 0.00000 + 17 13.1060 0.00000 + 18 38.3097 0.00000 + + k-point 477 : 0.2667 0.2000 0.4667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7385 2.00000 + 5 -30.0304 2.00000 + 6 -30.0228 2.00000 + 7 -29.9861 2.00000 + 8 1.7426 2.00000 + 9 2.3312 2.00000 + 10 4.2213 2.00000 + 11 4.7949 2.00000 + 12 5.6281 2.00000 + 13 6.1217 2.00000 + 14 8.8998 0.00000 + 15 10.7235 0.00000 + 16 11.4983 0.00000 + 17 13.3139 0.00000 + 18 14.5418 0.00000 + + k-point 478 : 0.3333 0.2000 0.4667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2905 2.00000 + 4 -65.7383 2.00000 + 5 -30.0329 2.00000 + 6 -30.0299 2.00000 + 7 -29.9853 2.00000 + 8 1.8915 2.00000 + 9 2.5903 2.00000 + 10 4.2222 2.00000 + 11 4.7435 2.00000 + 12 5.7550 2.00000 + 13 5.9846 2.00000 + 14 8.3534 0.00000 + 15 10.1446 0.00000 + 16 11.5765 0.00000 + 17 14.0941 0.00000 + 18 31.5297 0.00000 + + k-point 479 : 0.4000 0.2000 0.4667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7382 2.00000 + 5 -30.0408 2.00000 + 6 -30.0295 2.00000 + 7 -29.9846 2.00000 + 8 1.9545 2.00000 + 9 2.8962 2.00000 + 10 4.2674 2.00000 + 11 4.5842 2.00000 + 12 5.8671 2.00000 + 13 6.0058 2.00000 + 14 7.9444 0.38375 + 15 9.6138 0.00000 + 16 12.3662 0.00000 + 17 14.4968 0.00000 + 18 35.5494 0.00000 + + k-point 480 : 0.4667 0.2000 0.4667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7381 2.00000 + 5 -30.0451 2.00000 + 6 -30.0292 2.00000 + 7 -29.9843 2.00000 + 8 1.9749 2.00000 + 9 3.1170 2.00000 + 10 4.3238 2.00000 + 11 4.4181 2.00000 + 12 5.9578 2.00000 + 13 6.0552 2.00000 + 14 7.7216 1.97739 + 15 9.2780 0.00000 + 16 11.6484 0.00000 + 17 14.1912 0.00000 + 18 15.2729 0.00000 + + k-point 481 : 0.0000 0.2667 0.4667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2906 2.00000 + 4 -65.7387 2.00000 + 5 -30.0309 2.00000 + 6 -30.0033 2.00000 + 7 -29.9932 2.00000 + 8 1.3568 2.00000 + 9 2.0050 2.00000 + 10 4.6470 2.00000 + 11 4.9310 2.00000 + 12 4.9604 2.00000 + 13 6.8399 2.00000 + 14 10.0603 0.00000 + 15 10.6095 0.00000 + 16 11.6789 0.00000 + 17 12.7079 0.00000 + 18 14.2313 0.00000 + + k-point 482 : 0.0667 0.2667 0.4667 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2910 2.00000 + 4 -65.7387 2.00000 + 5 -30.0309 2.00000 + 6 -30.0032 2.00000 + 7 -29.9955 2.00000 + 8 1.4097 2.00000 + 9 2.0396 2.00000 + 10 4.6145 2.00000 + 11 4.7530 2.00000 + 12 5.1891 2.00000 + 13 6.7162 2.00000 + 14 10.1096 0.00000 + 15 10.3876 0.00000 + 16 11.6000 0.00000 + 17 13.1316 0.00000 + 18 37.6273 0.00000 + + k-point 483 : 0.1333 0.2667 0.4667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7386 2.00000 + 5 -30.0305 2.00000 + 6 -30.0027 2.00000 + 7 -30.0017 2.00000 + 8 1.5583 2.00000 + 9 2.1490 2.00000 + 10 4.4268 2.00000 + 11 4.7673 2.00000 + 12 5.4207 2.00000 + 13 6.4119 2.00000 + 14 9.5620 0.00000 + 15 10.6052 0.00000 + 16 11.5431 0.00000 + 17 13.8192 0.00000 + 18 14.7273 0.00000 + + k-point 484 : 0.2000 0.2667 0.4667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4258 2.00000 + 3 -91.2907 2.00000 + 4 -65.7384 2.00000 + 5 -30.0301 2.00000 + 6 -30.0110 2.00000 + 7 -30.0020 2.00000 + 8 1.7596 2.00000 + 9 2.3479 2.00000 + 10 4.2353 2.00000 + 11 4.8561 2.00000 + 12 5.6156 2.00000 + 13 6.0522 2.00000 + 14 8.8319 0.00000 + 15 10.9690 0.00000 + 16 11.4301 0.00000 + 17 13.3676 0.00000 + 18 14.5676 0.00000 + + k-point 485 : 0.2667 0.2667 0.4667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2905 2.00000 + 4 -65.7382 2.00000 + 5 -30.0296 2.00000 + 6 -30.0216 2.00000 + 7 -30.0011 2.00000 + 8 1.9573 2.00000 + 9 2.6478 2.00000 + 10 4.0985 2.00000 + 11 4.9571 2.00000 + 12 5.6139 2.00000 + 13 5.8909 2.00000 + 14 8.1389 0.00029 + 15 10.9883 0.00000 + 16 11.3423 0.00000 + 17 13.7094 0.00000 + 18 15.7553 0.00000 + + k-point 486 : 0.3333 0.2667 0.4667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2906 2.00000 + 4 -65.7380 2.00000 + 5 -30.0317 2.00000 + 6 -30.0291 2.00000 + 7 -30.0003 2.00000 + 8 2.1129 2.00000 + 9 3.0175 2.00000 + 10 4.0379 2.00000 + 11 4.9190 2.00000 + 12 5.5211 2.00000 + 13 5.9990 2.00000 + 14 7.5405 2.00000 + 15 10.3988 0.00000 + 16 11.4577 0.00000 + 17 13.7122 0.00000 + 18 15.9308 0.00000 + + k-point 487 : 0.4000 0.2667 0.4667 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2911 2.00000 + 4 -65.7379 2.00000 + 5 -30.0397 2.00000 + 6 -30.0287 2.00000 + 7 -29.9997 2.00000 + 8 2.2149 2.00000 + 9 3.3832 2.00000 + 10 4.0564 2.00000 + 11 4.6690 2.00000 + 12 5.6796 2.00000 + 13 6.0916 2.00000 + 14 7.0870 2.00000 + 15 9.7752 0.00000 + 16 11.5424 0.00000 + 17 14.3066 0.00000 + 18 15.5761 0.00000 + + k-point 488 : 0.4667 0.2667 0.4667 + band No. band energies occupation + 1 -91.8814 2.00000 + 2 -91.4264 2.00000 + 3 -91.2914 2.00000 + 4 -65.7378 2.00000 + 5 -30.0440 2.00000 + 6 -30.0285 2.00000 + 7 -29.9994 2.00000 + 8 2.2640 2.00000 + 9 3.6435 2.00000 + 10 4.1382 2.00000 + 11 4.4048 2.00000 + 12 5.8558 2.00000 + 13 6.1352 2.00000 + 14 6.8387 2.00000 + 15 9.3618 0.00000 + 16 11.5772 0.00000 + 17 14.3099 0.00000 + 18 14.9653 0.00000 + + k-point 489 : 0.0000 0.3333 0.4667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2907 2.00000 + 4 -65.7384 2.00000 + 5 -30.0302 2.00000 + 6 -30.0174 2.00000 + 7 -29.9919 2.00000 + 8 1.5922 2.00000 + 9 2.0622 2.00000 + 10 4.6783 2.00000 + 11 4.9977 2.00000 + 12 5.1255 2.00000 + 13 6.4823 2.00000 + 14 9.7866 0.00000 + 15 10.2382 0.00000 + 16 11.6423 0.00000 + 17 12.1724 0.00000 + 18 15.1696 0.00000 + + k-point 490 : 0.0667 0.3333 0.4667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7384 2.00000 + 5 -30.0300 2.00000 + 6 -30.0172 2.00000 + 7 -29.9941 2.00000 + 8 1.6356 2.00000 + 9 2.1225 2.00000 + 10 4.6697 2.00000 + 11 4.8109 2.00000 + 12 5.3294 2.00000 + 13 6.3879 2.00000 + 14 9.7035 0.00000 + 15 10.0257 0.00000 + 16 11.6040 0.00000 + 17 12.6587 0.00000 + 18 14.9940 0.00000 + + k-point 491 : 0.1333 0.3333 0.4667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2901 2.00000 + 4 -65.7382 2.00000 + 5 -30.0297 2.00000 + 6 -30.0168 2.00000 + 7 -30.0004 2.00000 + 8 1.7553 2.00000 + 9 2.3064 2.00000 + 10 4.4915 2.00000 + 11 4.7800 2.00000 + 12 5.5639 2.00000 + 13 6.1473 2.00000 + 14 9.0130 0.00000 + 15 10.2004 0.00000 + 16 11.5878 0.00000 + 17 13.4966 0.00000 + 18 14.8358 0.00000 + + k-point 492 : 0.2000 0.3333 0.4667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4258 2.00000 + 3 -91.2907 2.00000 + 4 -65.7381 2.00000 + 5 -30.0293 2.00000 + 6 -30.0162 2.00000 + 7 -30.0097 2.00000 + 8 1.9268 2.00000 + 9 2.6143 2.00000 + 10 4.2587 2.00000 + 11 4.8639 2.00000 + 12 5.7056 2.00000 + 13 5.8972 2.00000 + 14 8.2193 0.00000 + 15 10.4809 0.00000 + 16 11.5381 0.00000 + 17 13.9612 0.00000 + 18 14.5546 0.00000 + + k-point 493 : 0.2667 0.3333 0.4667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2908 2.00000 + 4 -65.7379 2.00000 + 5 -30.0288 2.00000 + 6 -30.0204 2.00000 + 7 -30.0154 2.00000 + 8 2.1305 2.00000 + 9 3.0221 2.00000 + 10 4.0628 2.00000 + 11 5.0039 2.00000 + 12 5.4474 2.00000 + 13 5.9945 2.00000 + 14 7.4712 2.00000 + 15 10.6874 0.00000 + 16 11.3421 0.00000 + 17 13.4783 0.00000 + 18 15.3783 0.00000 + + k-point 494 : 0.3333 0.3333 0.4667 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2909 2.00000 + 4 -65.7377 2.00000 + 5 -30.0306 2.00000 + 6 -30.0283 2.00000 + 7 -30.0147 2.00000 + 8 2.3416 2.00000 + 9 3.4734 2.00000 + 10 3.9279 2.00000 + 11 5.1088 2.00000 + 12 5.2297 2.00000 + 13 6.1260 2.00000 + 14 6.8189 2.00000 + 15 10.4946 0.00000 + 16 11.1842 0.00000 + 17 13.1952 0.00000 + 18 15.7397 0.00000 + + k-point 495 : 0.4000 0.3333 0.4667 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4262 2.00000 + 3 -91.2912 2.00000 + 4 -65.7376 2.00000 + 5 -30.0385 2.00000 + 6 -30.0280 2.00000 + 7 -30.0141 2.00000 + 8 2.5238 2.00000 + 9 3.8199 2.00000 + 10 3.9375 2.00000 + 11 4.8268 2.00000 + 12 5.4778 2.00000 + 13 6.2123 2.00000 + 14 6.3224 2.00000 + 15 9.8991 0.00000 + 16 11.2407 0.00000 + 17 13.1926 0.00000 + 18 15.5369 0.00000 + + k-point 496 : 0.4667 0.3333 0.4667 + band No. band energies occupation + 1 -91.8814 2.00000 + 2 -91.4264 2.00000 + 3 -91.2914 2.00000 + 4 -65.7375 2.00000 + 5 -30.0429 2.00000 + 6 -30.0278 2.00000 + 7 -30.0137 2.00000 + 8 2.6290 2.00000 + 9 3.8380 2.00000 + 10 4.2279 2.00000 + 11 4.5865 2.00000 + 12 5.6574 2.00000 + 13 6.0663 2.00000 + 14 6.2635 2.00000 + 15 9.4409 0.00000 + 16 11.2887 0.00000 + 17 13.2397 0.00000 + 18 15.7505 0.00000 + + k-point 497 : 0.0000 0.4000 0.4667 + band No. band energies occupation + 1 -91.8809 2.00000 + 2 -91.4259 2.00000 + 3 -91.2908 2.00000 + 4 -65.7382 2.00000 + 5 -30.0295 2.00000 + 6 -30.0285 2.00000 + 7 -29.9909 2.00000 + 8 1.6678 2.00000 + 9 2.2476 2.00000 + 10 4.6819 2.00000 + 11 5.0573 2.00000 + 12 5.2677 2.00000 + 13 6.2372 2.00000 + 14 9.6320 0.00000 + 15 9.9258 0.00000 + 16 11.6498 0.00000 + 17 11.7641 0.00000 + 18 15.1177 0.00000 + + k-point 498 : 0.0667 0.4000 0.4667 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2910 2.00000 + 4 -65.7382 2.00000 + 5 -30.0294 2.00000 + 6 -30.0284 2.00000 + 7 -29.9931 2.00000 + 8 1.7064 2.00000 + 9 2.3241 2.00000 + 10 4.6780 2.00000 + 11 4.8714 2.00000 + 12 5.4482 2.00000 + 13 6.1821 2.00000 + 14 9.3944 0.00000 + 15 9.7662 0.00000 + 16 11.6283 0.00000 + 17 12.2592 0.00000 + 18 15.0447 0.00000 + + k-point 499 : 0.1333 0.4000 0.4667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7380 2.00000 + 5 -30.0291 2.00000 + 6 -30.0279 2.00000 + 7 -29.9994 2.00000 + 8 1.8197 2.00000 + 9 2.5512 2.00000 + 10 4.5747 2.00000 + 11 4.7174 2.00000 + 12 5.6795 2.00000 + 13 6.0408 2.00000 + 14 8.5996 0.00000 + 15 9.8664 0.00000 + 16 11.6305 0.00000 + 17 13.1616 0.00000 + 18 14.9422 0.00000 + + k-point 500 : 0.2000 0.4000 0.4667 + band No. band energies occupation + 1 -91.8802 2.00000 + 2 -91.4252 2.00000 + 3 -91.2902 2.00000 + 4 -65.7378 2.00000 + 5 -30.0287 2.00000 + 6 -30.0272 2.00000 + 7 -30.0087 2.00000 + 8 2.0020 2.00000 + 9 2.9149 2.00000 + 10 4.3358 2.00000 + 11 4.7172 2.00000 + 12 5.7999 2.00000 + 13 5.9420 2.00000 + 14 7.7512 1.93725 + 15 10.0198 0.00000 + 16 11.6232 0.00000 + 17 14.2345 0.00000 + 18 15.3681 0.00000 + + k-point 501 : 0.2667 0.4000 0.4667 + band No. band energies occupation + 1 -91.8805 2.00000 + 2 -91.4255 2.00000 + 3 -91.2905 2.00000 + 4 -65.7376 2.00000 + 5 -30.0283 2.00000 + 6 -30.0265 2.00000 + 7 -30.0194 2.00000 + 8 2.2449 2.00000 + 9 3.3771 2.00000 + 10 4.1205 2.00000 + 11 4.7396 2.00000 + 12 5.6457 2.00000 + 13 6.0882 2.00000 + 14 6.9514 2.00000 + 15 10.1586 0.00000 + 16 11.4369 0.00000 + 17 13.6407 0.00000 + 18 15.4695 0.00000 + + k-point 502 : 0.3333 0.4000 0.4667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7374 2.00000 + 5 -30.0297 2.00000 + 6 -30.0278 2.00000 + 7 -30.0258 2.00000 + 8 2.5344 2.00000 + 9 3.8121 2.00000 + 10 3.9855 2.00000 + 11 4.8087 2.00000 + 12 5.5213 2.00000 + 13 6.1981 2.00000 + 14 6.2633 2.00000 + 15 10.2073 0.00000 + 16 11.0454 0.00000 + 17 13.0519 0.00000 + 18 15.5984 0.00000 + + k-point 503 : 0.4000 0.4000 0.4667 + band No. band energies occupation + 1 -91.8811 2.00000 + 2 -91.4261 2.00000 + 3 -91.2911 2.00000 + 4 -65.7373 2.00000 + 5 -30.0377 2.00000 + 6 -30.0274 2.00000 + 7 -30.0252 2.00000 + 8 2.8336 2.00000 + 9 3.8000 2.00000 + 10 4.1712 2.00000 + 11 4.9751 2.00000 + 12 5.5168 2.00000 + 13 5.6776 2.00000 + 14 6.3079 2.00000 + 15 9.9354 0.00000 + 16 10.7127 0.00000 + 17 12.8003 0.00000 + 18 15.8356 0.00000 + + k-point 504 : 0.4667 0.4000 0.4667 + band No. band energies occupation + 1 -91.8814 2.00000 + 2 -91.4264 2.00000 + 3 -91.2914 2.00000 + 4 -65.7372 2.00000 + 5 -30.0421 2.00000 + 6 -30.0272 2.00000 + 7 -30.0249 2.00000 + 8 3.0541 2.00000 + 9 3.7465 2.00000 + 10 4.2239 2.00000 + 11 5.1222 2.00000 + 12 5.2997 2.00000 + 13 5.6922 2.00000 + 14 6.3453 2.00000 + 15 9.5016 0.00000 + 16 10.6605 0.00000 + 17 12.7227 0.00000 + 18 15.5675 0.00000 + + k-point 505 : 0.0000 0.4667 0.4667 + band No. band energies occupation + 1 -91.8803 2.00000 + 2 -91.4253 2.00000 + 3 -91.2903 2.00000 + 4 -65.7380 2.00000 + 5 -30.0345 2.00000 + 6 -30.0292 2.00000 + 7 -29.9902 2.00000 + 8 1.6740 2.00000 + 9 2.4018 2.00000 + 10 4.6707 2.00000 + 11 5.0946 2.00000 + 12 5.3522 2.00000 + 13 6.1117 2.00000 + 14 9.6010 0.00000 + 15 9.7207 0.00000 + 16 11.5419 0.00000 + 17 11.6546 0.00000 + 18 14.9372 0.00000 + + k-point 506 : 0.0667 0.4667 0.4667 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7380 2.00000 + 5 -30.0344 2.00000 + 6 -30.0291 2.00000 + 7 -29.9926 2.00000 + 8 1.7129 2.00000 + 9 2.4847 2.00000 + 10 4.6554 2.00000 + 11 4.9171 2.00000 + 12 5.5191 2.00000 + 13 6.0879 2.00000 + 14 9.2253 0.00000 + 15 9.6369 0.00000 + 16 11.6608 0.00000 + 17 12.0478 0.00000 + 18 14.9557 0.00000 + + k-point 507 : 0.1333 0.4667 0.4667 + band No. band energies occupation + 1 -91.8807 2.00000 + 2 -91.4257 2.00000 + 3 -91.2907 2.00000 + 4 -65.7379 2.00000 + 5 -30.0339 2.00000 + 6 -30.0288 2.00000 + 7 -29.9989 2.00000 + 8 1.8315 2.00000 + 9 2.7302 2.00000 + 10 4.6082 2.00000 + 11 4.6655 2.00000 + 12 5.7492 2.00000 + 13 6.0255 2.00000 + 14 8.3737 0.00000 + 15 9.6738 0.00000 + 16 11.6583 0.00000 + 17 12.9796 0.00000 + 18 15.0184 0.00000 + + k-point 508 : 0.2000 0.4667 0.4667 + band No. band energies occupation + 1 -91.8808 2.00000 + 2 -91.4258 2.00000 + 3 -91.2908 2.00000 + 4 -65.7377 2.00000 + 5 -30.0333 2.00000 + 6 -30.0284 2.00000 + 7 -30.0082 2.00000 + 8 2.0272 2.00000 + 9 3.1247 2.00000 + 10 4.4101 2.00000 + 11 4.5557 2.00000 + 12 5.9249 2.00000 + 13 5.9750 2.00000 + 14 7.4900 2.00000 + 15 9.7287 0.00000 + 16 11.6418 0.00000 + 17 13.9974 0.00000 + 18 15.0437 0.00000 + + k-point 509 : 0.2667 0.4667 0.4667 + band No. band energies occupation + 1 -91.8804 2.00000 + 2 -91.4254 2.00000 + 3 -91.2904 2.00000 + 4 -65.7375 2.00000 + 5 -30.0326 2.00000 + 6 -30.0279 2.00000 + 7 -30.0189 2.00000 + 8 2.2989 2.00000 + 9 3.6250 2.00000 + 10 4.2181 2.00000 + 11 4.4835 2.00000 + 12 5.8518 2.00000 + 13 6.1331 2.00000 + 14 6.6571 2.00000 + 15 9.7868 0.00000 + 16 11.4865 0.00000 + 17 14.5147 0.00000 + 18 15.4164 0.00000 + + k-point 510 : 0.3333 0.4667 0.4667 + band No. band energies occupation + 1 -91.8806 2.00000 + 2 -91.4256 2.00000 + 3 -91.2905 2.00000 + 4 -65.7373 2.00000 + 5 -30.0318 2.00000 + 6 -30.0291 2.00000 + 7 -30.0275 2.00000 + 8 2.6408 2.00000 + 9 3.9091 2.00000 + 10 4.2522 2.00000 + 11 4.5325 2.00000 + 12 5.7034 2.00000 + 13 5.9787 2.00000 + 14 6.2621 2.00000 + 15 9.8299 0.00000 + 16 11.0556 0.00000 + 17 13.0395 0.00000 + 18 15.4657 0.00000 + + k-point 511 : 0.4000 0.4667 0.4667 + band No. band energies occupation + 1 -91.8810 2.00000 + 2 -91.4260 2.00000 + 3 -91.2910 2.00000 + 4 -65.7372 2.00000 + 5 -30.0372 2.00000 + 6 -30.0313 2.00000 + 7 -30.0271 2.00000 + 8 3.0409 2.00000 + 9 3.8298 2.00000 + 10 4.2195 2.00000 + 11 5.0235 2.00000 + 12 5.2301 2.00000 + 13 5.8071 2.00000 + 14 6.3436 2.00000 + 15 9.8006 0.00000 + 16 10.3862 0.00000 + 17 12.6747 0.00000 + 18 15.4656 0.00000 + + k-point 512 : 0.4667 0.4667 0.4667 + band No. band energies occupation + 1 -91.8812 2.00000 + 2 -91.4262 2.00000 + 3 -91.2911 2.00000 + 4 -65.7371 2.00000 + 5 -30.0416 2.00000 + 6 -30.0310 2.00000 + 7 -30.0269 2.00000 + 8 3.4531 2.00000 + 9 3.7372 2.00000 + 10 4.0740 2.00000 + 11 4.7709 2.00000 + 12 5.5707 2.00000 + 13 5.7646 2.00000 + 14 6.3738 2.00000 + 15 9.5306 0.00000 + 16 10.0845 0.00000 + 17 12.5702 0.00000 + 18 15.4251 0.00000 + + +-------------------------------------------------------------------------------------------------------- + + + soft charge-density along one line, spin component 1 + 0 1 2 3 4 5 6 7 8 9 + total charge-density along one line + + pseudopotential strength for first ion, spin component: 1 + 29.271 27.905 24.284 -0.000 -0.000 0.000 0.000 0.000 + 27.905 26.602 23.219 -0.000 -0.000 0.000 0.000 0.000 + 24.284 23.219 11.179 -0.000 -0.000 0.000 -0.000 -0.000 + -0.000 -0.000 -0.000 -15.093 -0.000 0.000 -10.182 0.000 + -0.000 -0.000 -0.000 -0.000 -15.095 0.000 0.000 -10.170 + 0.000 0.000 0.000 0.000 0.000 -15.092 -0.000 -0.000 + 0.000 0.000 -0.000 -10.182 0.000 -0.000 14.343 0.000 + 0.000 0.000 -0.000 0.000 -10.170 -0.000 0.000 14.352 + -0.000 -0.000 0.000 -0.000 -0.000 -10.185 -0.000 -0.000 + -0.000 -0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 + 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 + 0.001 0.001 -0.002 -0.000 0.000 0.000 -0.000 0.000 + -0.000 -0.000 0.000 0.000 0.000 0.000 0.000 -0.000 + -0.000 -0.000 0.001 -0.000 0.000 0.000 -0.000 0.000 + -0.000 -0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 + 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 + 0.002 0.002 -0.003 -0.000 0.000 0.000 -0.000 0.000 + -0.000 -0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 + -0.000 -0.000 0.001 -0.000 0.000 0.000 -0.000 0.000 + -0.000 -0.000 0.000 -0.000 0.000 0.000 -0.001 -0.000 + -0.000 -0.000 0.000 -0.000 0.000 -0.000 0.000 -0.000 + 0.000 0.000 -0.000 -0.004 -0.000 0.000 -0.001 0.000 + 0.000 0.000 -0.000 0.000 -0.003 -0.000 -0.000 0.002 + 0.000 -0.000 0.000 0.000 -0.000 -0.004 -0.000 0.000 + -0.000 -0.000 0.000 0.000 0.001 0.000 -0.000 0.000 + -0.000 -0.000 0.000 -0.000 0.000 0.002 0.000 -0.000 + total augmentation occupancy for first ion, spin component: 1 + 99.947 ******* 0.588 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.192 0.000 0.250 0.000 0.000 +******* 102.736 -0.592 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.235 0.000 -0.260 0.000 -0.000 + 0.588 -0.592 0.003 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.008 0.000 0.002 0.000 0.000 + 0.000 0.000 0.000 2.031 0.000 0.000 0.029 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.000 2.036 0.000 0.000 0.034 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.000 0.000 2.031 0.000 0.000 0.028 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.029 -0.000 0.000 0.015 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.000 0.034 0.000 0.000 0.018 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.000 0.000 0.028 0.000 0.000 0.014 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 3.829 0.000 0.000 -0.000 0.000 -1.514 0.000 + 0.000 -0.000 -0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 4.273 0.000 0.000 0.000 0.000 -1.695 + -1.192 1.235 -0.008 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 3.492 0.000 0.024 0.000 -0.000 + 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.000 0.000 0.000 4.118 0.000 -0.000 0.000 + 0.250 -0.260 0.002 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.024 0.000 3.339 0.000 -0.000 + 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.514 0.000 0.000 -0.000 0.000 0.657 0.000 + 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.695 -0.000 0.000 0.000 0.000 0.735 + 0.498 -0.524 0.003 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.540 0.000 -0.012 0.000 0.000 + 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.636 0.000 0.000 0.000 + -0.105 0.112 -0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.012 0.000 -1.462 0.000 0.000 + 0.000 0.000 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.002 -0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.000 -0.005 0.000 0.000 -0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.000 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 0.000 0.000 0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + + +------------------------ aborting loop because EDIFF is reached ---------------------------------------- + + + CHARGE: cpu time 0.2175: real time 0.2179 + FORLOC: cpu time 0.0005: real time 0.0005 + FORNL : cpu time 0.5624: real time 0.5636 + STRESS: cpu time 4.6134: real time 4.6282 + FORCOR: cpu time 0.0057: real time 0.0064 + FORHAR: cpu time 0.0014: real time 0.0014 + MIXING: cpu time 0.0007: real time 0.0007 + OFIELD: cpu time 0.0000: real time 0.0000 + + FORCE on cell =-STRESS in cart. coord. units (eV): + Direction XX YY ZZ XY YZ ZX + -------------------------------------------------------------------------------------- + Alpha Z 131.43309 131.43309 131.43309 + Ewald -692.66714 -666.25642 -600.92887 0.00000 -0.00000 0.00000 + Hartree 135.39867 151.55448 193.64184 -0.00000 -0.00000 -0.00000 + E(xc) -140.07087 -140.06544 -140.05539 -0.00000 0.00000 0.00000 + Local 156.14173 113.44933 3.98511 0.00000 0.00000 0.00000 + n-local -184.49986 -184.69575 -185.00090 -0.90955 -1.02411 -0.99577 + augment 2.00968 1.96706 1.78410 0.00000 -0.00000 -0.00000 + Kinetic 586.69353 589.41039 597.73423 1.78901 -0.65923 -0.20796 + Fock 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 + ------------------------------------------------------------------------------------- + Total -5.56117 -3.20326 2.59322 0.00000 -0.00000 0.00000 + in kB -214.84834 -123.75353 100.18546 0.00000 -0.00000 0.00000 + external pressure = -79.47 kB Pullay stress = 0.00 kB + + + VOLUME and BASIS-vectors are now : + ----------------------------------------------------------------------------- + energy-cutoff : 600.00 + volume of cell : 41.47 + direct lattice vectors reciprocal lattice vectors + 3.669611000 0.000000000 0.000000000 0.272508448 0.000000000 0.000000000 + 0.000000000 3.557440000 0.000000000 0.000000000 0.281101016 0.000000000 + 0.000000000 0.000000000 3.176781000 0.000000000 0.000000000 0.314784053 + + length of vectors + 3.669611000 3.557440000 3.176781000 0.272508448 0.281101016 0.314784053 + + + FORCES acting on ions + electron-ion (+dipol) ewald-force non-local-force convergence-correction + ----------------------------------------------------------------------------------------------- + -.118E-13 -.390E-14 0.138E-13 -.976E-14 -.123E-13 0.429E-14 -.148E-21 -.385E-22 0.214E-22 0.190E-13 0.402E-13 -.748E-13 + -.203E-14 0.118E-12 -.610E-14 -.126E-14 0.943E-14 -.634E-15 0.135E-24 -.989E-23 -.124E-22 0.125E-13 -.691E-14 0.178E-13 + 0.122E-12 -.521E-14 -.592E-12 0.654E-14 0.177E-15 -.121E-15 0.864E-23 0.363E-22 -.325E-24 -.105E-13 0.354E-14 0.142E-13 + 0.123E-12 -.343E-12 -.754E-12 0.496E-14 0.107E-14 0.499E-15 0.583E-22 -.440E-22 0.929E-22 -.164E-13 -.623E-14 -.585E-14 + ----------------------------------------------------------------------------------------------- + 0.231E-12 -.235E-12 -.134E-11 0.483E-15 -.166E-14 0.404E-14 -.808E-22 -.560E-22 0.102E-21 0.463E-14 0.306E-13 -.486E-13 + + + POSITION TOTAL-FORCE (eV/Angst) + ----------------------------------------------------------------------------------- + 0.00000 0.00000 0.00000 0.000000 -0.000000 -0.000000 + 0.00000 1.77872 1.58839 0.000000 -0.000000 -0.000000 + 1.83481 0.00000 1.58839 -0.000000 -0.000000 0.000000 + 1.83481 1.77872 0.00000 0.000000 0.000000 0.000000 + ----------------------------------------------------------------------------------- + total drift: 0.000000 -0.000000 -0.000000 + + +-------------------------------------------------------------------------------------------------------- + + + + FREE ENERGIE OF THE ION-ELECTRON SYSTEM (eV) + --------------------------------------------------- + free energy TOTEN = -48.07109596 eV + + energy without entropy= -48.06804610 energy(sigma->0) = -48.06957103 + + SIGMA = 0.10000000 + + + +-------------------------------------------------------------------------------------------------------- + + + POTLOK: cpu time 0.0095: real time 0.0103 + + +-------------------------------------------------------------------------------------------------------- + + + writing wavefunctions + LOOP+: cpu time 80.5972: real time 81.1155 + 4ORBIT: cpu time 0.0000: real time 0.0000 + + total amount of memory used by VASP MPI-rank0 355020. kBytes +======================================================================= + + base : 30000. kBytes + nonl-proj : 299130. kBytes + fftplans : 441. kBytes + grid : 1138. kBytes + one-center: 129. kBytes + wavefun : 24182. kBytes + + + + General timing and accounting informations for this job: + ======================================================== + + Total CPU time used (sec): 84.193 + User time (sec): 82.086 + System time (sec): 2.107 + Elapsed time (sec): 85.614 + + Maximum memory used (kb): 339860. + Average memory used (kb): 0. + + Minor page faults: 520341 + Major page faults: 0 + Voluntary context switches: 1787 diff --git a/examples/COUPLE/lammps_vasp/README b/examples/COUPLE/lammps_vasp/README index 3d83ff7dc1..ab347be568 100644 --- a/examples/COUPLE/lammps_vasp/README +++ b/examples/COUPLE/lammps_vasp/README @@ -5,7 +5,7 @@ See the MESSAGE package (doc/Section_messages.html#MESSAGE) and Section_howto.html#howto10 for more details on how client/server coupling works in LAMMPS. -In this dir, the vasp_warp.py is a wrapper on the VASP quantum DFT +In this dir, the vasp_wrap.py is a wrapper on the VASP quantum DFT code so it can work as a "server" code which LAMMPS drives as a "client" code to perform ab initio MD. LAMMPS performs the MD timestepping, sends VASP a current set of coordinates each timestep, @@ -34,6 +34,40 @@ You can leave off the -z if you do not have ZMQ on your system. ---------------- +Prepare to use VASP and the vasp_wrapper.py script + +You can run the vasp_wrap.py script as-is to test that the +coupling between it and LAMMPS is functional. But the as-is +version will not attempt to run VASP. + +To do this, you must edit the 1st vaspcmd line at the top of +vasp_wrapper.py to be the launch command needed to run VASP on your +system. It can be a command to run VASP in serial or in parallel, +e.g. an mpirun command. Then comment out the 2nd vaspcmd line +immediately following it. + +Insure you have the necessary VASP input files in this +directory, suitable for the VASP calculation you want to perform: + +INCAR +KPOINTS +POSCAR_template +POTCAR + +Examples of all but the POTCAR file are provided. As explained below, +POSCAR_W is an input file for a 2-atom unit cell of tungsten and can +be used to test the LAMMPS/VASP coupling. The POTCAR file is a +proprietary VASP file, so use one from your VASP installation. + +Note that the POSCAR_template file should be matched to the LAMMPS +input script (# of atoms and atom types, box size, etc). The provided +POSCAR_W matches in.client.W. + +NOTE: explain how vasp_wrapper.py finds the cslib.py wrapper on the +CSlib to import. + +---------------- + To run in client/server mode: Both the client (LAMMPS) and server (vasp_wrap.py) must use the same @@ -76,15 +110,3 @@ ZMQ mode of messaging: % mpirun -np 2 lmp_mpi -v mode zmq < in.client.W % python vasp_wrap.py zmq POSCAR_W - --------------- - -The provided data.W file (for LAMMPS) and POSCAR_W file (for VASP) are -for a simple 2-atom unit cell of bcc tungsten (W). You could -replicate this with LAMMPS to create a larger system. The -vasp_wrap.py script needs to be generalized to create an appropriate -POSCAR_W file for a larger box. - -VASP input file include the sample INCAR and KPOINTS files provided. -A POTCAR file is also needed, which should come from your VASP package -installation. diff --git a/examples/COUPLE/lammps_vasp/vasp_wrap.py b/examples/COUPLE/lammps_vasp/vasp_wrap.py index 35955b6adb..30d449e31c 100644 --- a/examples/COUPLE/lammps_vasp/vasp_wrap.py +++ b/examples/COUPLE/lammps_vasp/vasp_wrap.py @@ -23,13 +23,15 @@ # could make syntax for launching VASP more flexible # e.g. command-line arg for # of procs -import sys -import commands +import sys,subprocess import xml.etree.ElementTree as ET from cslib import CSlib +# comment out 2nd line once 1st line is correct for your system + vaspcmd = "srun -N 1 --ntasks-per-node=4 " + \ "-n 4 /projects/vasp/2017-build/cts1/vasp5.4.4/vasp_tfermi/bin/vasp_std" +vaspcmd = "touch tmp" # enums matching FixClientMD class in LAMMPS @@ -84,18 +86,18 @@ def poscar_write(poscar,natoms,ntypes,types,coords,box): # header, including box size - print >>psnew,psold[0], - print >>psnew,psold[1], - print >>psnew,"%g 0.0 0.0" % box[0] - print >>psnew,"0.0 %g 0.0" % box[1] - print >>psnew,"0.0 0.0 %g" % box[2] - print >>psnew,psold[5], - print >>psnew,psold[6], + psnew.write(psold[0]) + psnew.write(psold[1]) + psnew.write("%g 0.0 0.0\n" % box[0]) + psnew.write("0.0 %g 0.0\n" % box[1]) + psnew.write("0.0 0.0 %g\n" % box[2]) + psnew.write(psold[5]) + psnew.write(psold[6]) # per-atom coords # grouped by types - - print >>psnew,"Cartesian" + + psnew.write("Cartesian\n") for itype in range(1,ntypes+1): for i in range(natoms): @@ -103,8 +105,8 @@ def poscar_write(poscar,natoms,ntypes,types,coords,box): x = coords[3*i+0] y = coords[3*i+1] z = coords[3*i+2] - aline = " %g %g %g" % (x,y,z) - print >>psnew,aline + aline = " %g %g %g\n" % (x,y,z) + psnew.write(aline) psnew.close() @@ -209,10 +211,9 @@ while 1: # invoke VASP - print "Launching VASP ..." + print "\nLaunching VASP ..." print vaspcmd - out = commands.getoutput(vaspcmd) - print out + subprocess.check_output(vaspcmd,stderr=subprocess.STDOUT,shell=True) # process VASP output diff --git a/lib/message/cslib/src/cslib.py b/lib/message/cslib/src/cslib.py index e2ed78b61b..0ba3516255 100644 --- a/lib/message/cslib/src/cslib.py +++ b/lib/message/cslib/src/cslib.py @@ -6,8 +6,8 @@ # Copyright 2018 National Technology & Engineering Solutions of # Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with # NTESS, the U.S. Government retains certain rights in this software. -# This software is distributed under the GNU Lesser General Public -# License (LGPL). +# This software is distributed under the modified Berkeley Software +# Distribution (BSD) License. # # See the README file in the top-level CSlib directory. # ------------------------------------------------------------------------- diff --git a/src/MESSAGE/message.cpp b/src/MESSAGE/message.cpp index a6ecf5cd60..329ce1fbd9 100644 --- a/src/MESSAGE/message.cpp +++ b/src/MESSAGE/message.cpp @@ -11,7 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -#include +#include #include "message.h" #include "error.h" diff --git a/src/MESSAGE/server.cpp b/src/MESSAGE/server.cpp index c8de6de466..f587fb76df 100644 --- a/src/MESSAGE/server.cpp +++ b/src/MESSAGE/server.cpp @@ -11,7 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ -#include +#include #include "server.h" #include "error.h" From b2c75cc0b90a8b60565f25fabc91e4a96bbc22a8 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 24 Jul 2018 17:29:52 -0600 Subject: [PATCH 336/675] enable LAMMPS/VASP coupling to work w/out using VASP --- examples/COUPLE/lammps_vasp/OUTCAR | 14953 ---------------------- examples/COUPLE/lammps_vasp/README | 10 +- examples/COUPLE/lammps_vasp/vasprun.xml | 12329 ++++++++++++++++++ 3 files changed, 12336 insertions(+), 14956 deletions(-) delete mode 100644 examples/COUPLE/lammps_vasp/OUTCAR create mode 100644 examples/COUPLE/lammps_vasp/vasprun.xml diff --git a/examples/COUPLE/lammps_vasp/OUTCAR b/examples/COUPLE/lammps_vasp/OUTCAR deleted file mode 100644 index 6e8ef736cc..0000000000 --- a/examples/COUPLE/lammps_vasp/OUTCAR +++ /dev/null @@ -1,14953 +0,0 @@ - vasp.5.4.4.18Apr17-6-g9f103f2a35 (build Aug 01 2017 10:32:50) complex - - executed on LinuxIFC date 2017.12.19 15:22:45 - running on 9 total cores - distrk: each k-point on 9 cores, 1 groups - distr: one band on NCORES_PER_BAND= 1 cores, 9 groups - - --------------------------------------------------------------------------------------------------------- - - - INCAR: - POTCAR: PAW_PBE W_sv_GW 23Mar2010 - POTCAR: PAW_PBE Be_sv_GW 31Mar2010 - - ----------------------------------------------------------------------------- -| | -| W W AA RRRRR N N II N N GGGG !!! | -| W W A A R R NN N II NN N G G !!! | -| W W A A R R N N N II N N N G !!! | -| W WW W AAAAAA RRRRR N N N II N N N G GGG ! | -| WW WW A A R R N NN II N NN G G | -| W W A A R R N N II N N GGGG !!! | -| | -| For optimal performance we recommend to set | -| NCORE= 4 - approx SQRT( number of cores) | -| NCORE specifies how many cores store one orbital (NPAR=cpu/NCORE). | -| This setting can greatly improve the performance of VASP for DFT. | -| The default, NCORE=1 might be grossly inefficient | -| on modern multi-core architectures or massively parallel machines. | -| Do your own testing !!!! | -| Unfortunately you need to use the default for GW and RPA calculations. | -| (for HF NCORE is supported but not extensively tested yet) | -| | - ----------------------------------------------------------------------------- - - POTCAR: PAW_PBE W_sv_GW 23Mar2010 - VRHFIN =W: 5p6s5d - LEXCH = PE - EATOM = 1863.8917 eV, 136.9922 Ry - - TITEL = PAW_PBE W_sv_GW 23Mar2010 - LULTRA = F use ultrasoft PP ? - IUNSCR = 1 unscreen: 0-lin 1-nonlin 2-no - RPACOR = 1.500 partial core radius - POMASS = 183.850; ZVAL = 14.000 mass and valenz - RCORE = 2.300 outmost cutoff radius - RWIGS = 2.600; RWIGS = 1.376 wigner-seitz radius (au A) - ENMAX = 317.132; ENMIN = 237.849 eV - RCLOC = 1.609 cutoff for local pot - LCOR = T correct aug charges - LPAW = T paw PP - EAUG = 807.757 - DEXC = 0.000 - RMAX = 2.349 core radius for proj-oper - RAUG = 1.300 factor for augmentation sphere - RDEP = 2.382 radius for radial grids - RDEPT = 1.832 core radius for aug-charge - - Atomic configuration - 14 entries - n l j E occ. - 1 0 0.50 -69464.1497 2.0000 - 2 0 0.50 -11984.7400 2.0000 - 2 1 1.50 -10478.3405 6.0000 - 3 0 0.50 -2757.5605 2.0000 - 3 1 1.50 -2311.6706 6.0000 - 3 2 2.50 -1799.5973 10.0000 - 4 0 0.50 -566.1609 2.0000 - 4 1 1.50 -419.9482 6.0000 - 4 2 2.50 -234.8191 10.0000 - 4 3 3.50 -29.7363 14.0000 - 5 0 0.50 -75.5905 2.0000 - 5 1 1.50 -39.9756 6.0000 - 5 2 2.50 -2.4479 6.0000 - 5 3 2.50 -1.3606 0.0000 - Description - l E TYP RCUT TYP RCUT - 0 -75.5905419 23 1.500 - 0 -76.9511245 23 1.500 - 0 108.8466080 23 1.500 - 1 -39.9756040 23 1.800 - 1 68.0291300 23 1.800 - 2 -2.4478587 23 2.150 - 2 -0.0030619 23 2.150 - 3 4.0817478 23 2.300 - local pseudopotential read in - partial core-charges read in - partial kinetic energy density read in - kinetic energy density of atom read in - atomic valenz-charges read in - non local Contribution for L= 0 read in - real space projection operators read in - non local Contribution for L= 0 read in - real space projection operators read in - non local Contribution for L= 0 read in - real space projection operators read in - non local Contribution for L= 1 read in - real space projection operators read in - non local Contribution for L= 1 read in - real space projection operators read in - non local Contribution for L= 2 read in - real space projection operators read in - non local Contribution for L= 2 read in - real space projection operators read in - non local Contribution for L= 3 read in - real space projection operators read in - PAW grid and wavefunctions read in - - number of l-projection operators is LMAX = 8 - number of lm-projection operators is LMMAX = 26 - - POTCAR: PAW_PBE Be_sv_GW 31Mar2010 - VRHFIN =Be: s2p0 - LEXCH = PE - EATOM = 390.9322 eV, 28.7327 Ry - - TITEL = PAW_PBE Be_sv_GW 31Mar2010 - LULTRA = F use ultrasoft PP ? - IUNSCR = 0 unscreen: 0-lin 1-nonlin 2-no - RPACOR = 0.000 partial core radius - POMASS = 9.013; ZVAL = 4.000 mass and valenz - RCORE = 1.300 outmost cutoff radius - RWIGS = 1.600; RWIGS = 0.847 wigner-seitz radius (au A) - ENMAX = 537.454; ENMIN = 403.090 eV - RCLOC = 1.007 cutoff for local pot - LCOR = T correct aug charges - LPAW = T paw PP - EAUG = 1293.449 - RMAX = 1.324 core radius for proj-oper - RAUG = 1.300 factor for augmentation sphere - RDEP = 1.364 radius for radial grids - RDEPT = 1.200 core radius for aug-charge - - Atomic configuration - 5 entries - n l j E occ. - 1 0 0.50 -108.8489 2.0000 - 1 0 0.50 -107.4860 0.0000 - 2 1 0.50 -2.9389 2.0000 - 3 2 1.50 -1.3606 0.0000 - 4 3 2.50 -1.3606 0.0000 - Description - l E TYP RCUT TYP RCUT - 0 -108.8489274 23 1.100 - 0 -107.4860254 23 1.100 - 0 95.2407820 23 1.100 - 1 -2.9389331 23 1.300 - 1 15.5352276 23 1.300 - 2 54.4233040 23 1.300 - local pseudopotential read in - kinetic energy density of atom read in - atomic valenz-charges read in - non local Contribution for L= 0 read in - real space projection operators read in - non local Contribution for L= 0 read in - real space projection operators read in - non local Contribution for L= 0 read in - real space projection operators read in - non local Contribution for L= 1 read in - real space projection operators read in - non local Contribution for L= 1 read in - real space projection operators read in - non local Contribution for L= 2 read in - real space projection operators read in - PAW grid and wavefunctions read in - - number of l-projection operators is LMAX = 6 - number of lm-projection operators is LMMAX = 14 - - PAW_PBE W_sv_GW 23Mar2010 : - energy of atom 1 EATOM=-1863.8917 - kinetic energy error for atom= 0.0147 (will be added to EATOM!!) - PAW_PBE Be_sv_GW 31Mar2010 : - energy of atom 2 EATOM= -390.9322 - kinetic energy error for atom= 0.0274 (will be added to EATOM!!) - - - POSCAR: WBe3 L1_2 - positions in direct lattice - No initial velocities read in - exchange correlation table for LEXCH = 8 - RHO(1)= 0.500 N(1) = 2000 - RHO(2)= 100.500 N(2) = 4000 - - - --------------------------------------------------------------------------------------------------------- - - - ion position nearest neighbor table - 1 0.000 0.000 0.000- 2 2.38 2 2.38 2 2.38 2 2.38 3 2.43 3 2.43 3 2.43 3 2.43 - 4 2.56 4 2.56 4 2.56 4 2.56 - 2 0.000 0.500 0.500- 1 2.38 1 2.38 1 2.38 1 2.38 - 3 0.500 0.000 0.500- 1 2.43 1 2.43 1 2.43 1 2.43 - 4 0.500 0.500 0.000- 1 2.56 1 2.56 1 2.56 1 2.56 - - LATTYP: Found a simple orthorhombic cell. - ALAT = 3.1767810000 - B/A-ratio = 1.1198253830 - C/A-ratio = 1.1551350250 - - Lattice vectors: - - A1 = ( 0.0000000000, 0.0000000000, -3.1767810000) - A2 = ( 0.0000000000, -3.5574400000, 0.0000000000) - A3 = ( -3.6696110000, 0.0000000000, 0.0000000000) - - -Analysis of symmetry for initial positions (statically): -===================================================================== - Subroutine PRICEL returns: - Original cell was already a primitive cell. - - - Routine SETGRP: Setting up the symmetry group for a - simple orthorhombic supercell. - - - Subroutine GETGRP returns: Found 8 space group operations - (whereof 8 operations were pure point group operations) - out of a pool of 8 trial point group operations. - - -The static configuration has the point symmetry D_2h. - - -Analysis of symmetry for dynamics (positions and initial velocities): -===================================================================== - Subroutine PRICEL returns: - Original cell was already a primitive cell. - - - Routine SETGRP: Setting up the symmetry group for a - simple orthorhombic supercell. - - - Subroutine GETGRP returns: Found 8 space group operations - (whereof 8 operations were pure point group operations) - out of a pool of 8 trial point group operations. - - -The dynamic configuration has the point symmetry D_2h. - - - Subroutine INISYM returns: Found 8 space group operations - (whereof 8 operations are pure point group operations), - and found 1 'primitive' translations - - - - KPOINTS: K-Points - -Automatic generation of k-mesh. -Space group operators: - irot det(A) alpha n_x n_y n_z tau_x tau_y tau_z - 1 1.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 2 -1.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 3 1.000000 179.999999 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 4 -1.000000 179.999999 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - 5 1.000000 180.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 - 6 -1.000000 180.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 - 7 1.000000 180.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 - 8 -1.000000 180.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 - - Subroutine IBZKPT returns following result: - =========================================== - - Found 512 irreducible k-points: - - Following reciprocal coordinates: - Coordinates Weight - 0.000000 0.000000 0.000000 1.000000 - 0.066667 0.000000 0.000000 2.000000 - 0.133333 0.000000 0.000000 2.000000 - 0.200000 0.000000 0.000000 2.000000 - 0.266667 0.000000 0.000000 2.000000 - 0.333333 0.000000 0.000000 2.000000 - 0.400000 0.000000 0.000000 2.000000 - 0.466667 0.000000 0.000000 2.000000 - 0.000000 0.066667 0.000000 2.000000 - 0.066667 0.066667 0.000000 4.000000 - 0.133333 0.066667 0.000000 4.000000 - 0.200000 0.066667 0.000000 4.000000 - 0.266667 0.066667 0.000000 4.000000 - 0.333333 0.066667 0.000000 4.000000 - 0.400000 0.066667 0.000000 4.000000 - 0.466667 0.066667 0.000000 4.000000 - 0.000000 0.133333 0.000000 2.000000 - 0.066667 0.133333 0.000000 4.000000 - 0.133333 0.133333 0.000000 4.000000 - 0.200000 0.133333 0.000000 4.000000 - 0.266667 0.133333 0.000000 4.000000 - 0.333333 0.133333 0.000000 4.000000 - 0.400000 0.133333 0.000000 4.000000 - 0.466667 0.133333 0.000000 4.000000 - 0.000000 0.200000 0.000000 2.000000 - 0.066667 0.200000 0.000000 4.000000 - 0.133333 0.200000 0.000000 4.000000 - 0.200000 0.200000 0.000000 4.000000 - 0.266667 0.200000 0.000000 4.000000 - 0.333333 0.200000 0.000000 4.000000 - 0.400000 0.200000 0.000000 4.000000 - 0.466667 0.200000 0.000000 4.000000 - 0.000000 0.266667 0.000000 2.000000 - 0.066667 0.266667 0.000000 4.000000 - 0.133333 0.266667 0.000000 4.000000 - 0.200000 0.266667 0.000000 4.000000 - 0.266667 0.266667 0.000000 4.000000 - 0.333333 0.266667 0.000000 4.000000 - 0.400000 0.266667 0.000000 4.000000 - 0.466667 0.266667 0.000000 4.000000 - 0.000000 0.333333 0.000000 2.000000 - 0.066667 0.333333 0.000000 4.000000 - 0.133333 0.333333 0.000000 4.000000 - 0.200000 0.333333 0.000000 4.000000 - 0.266667 0.333333 0.000000 4.000000 - 0.333333 0.333333 0.000000 4.000000 - 0.400000 0.333333 0.000000 4.000000 - 0.466667 0.333333 0.000000 4.000000 - 0.000000 0.400000 0.000000 2.000000 - 0.066667 0.400000 0.000000 4.000000 - 0.133333 0.400000 0.000000 4.000000 - 0.200000 0.400000 0.000000 4.000000 - 0.266667 0.400000 0.000000 4.000000 - 0.333333 0.400000 0.000000 4.000000 - 0.400000 0.400000 0.000000 4.000000 - 0.466667 0.400000 0.000000 4.000000 - 0.000000 0.466667 0.000000 2.000000 - 0.066667 0.466667 0.000000 4.000000 - 0.133333 0.466667 0.000000 4.000000 - 0.200000 0.466667 0.000000 4.000000 - 0.266667 0.466667 0.000000 4.000000 - 0.333333 0.466667 0.000000 4.000000 - 0.400000 0.466667 0.000000 4.000000 - 0.466667 0.466667 0.000000 4.000000 - 0.000000 0.000000 0.066667 2.000000 - 0.066667 0.000000 0.066667 4.000000 - 0.133333 0.000000 0.066667 4.000000 - 0.200000 0.000000 0.066667 4.000000 - 0.266667 0.000000 0.066667 4.000000 - 0.333333 0.000000 0.066667 4.000000 - 0.400000 0.000000 0.066667 4.000000 - 0.466667 0.000000 0.066667 4.000000 - 0.000000 0.066667 0.066667 4.000000 - 0.066667 0.066667 0.066667 8.000000 - 0.133333 0.066667 0.066667 8.000000 - 0.200000 0.066667 0.066667 8.000000 - 0.266667 0.066667 0.066667 8.000000 - 0.333333 0.066667 0.066667 8.000000 - 0.400000 0.066667 0.066667 8.000000 - 0.466667 0.066667 0.066667 8.000000 - 0.000000 0.133333 0.066667 4.000000 - 0.066667 0.133333 0.066667 8.000000 - 0.133333 0.133333 0.066667 8.000000 - 0.200000 0.133333 0.066667 8.000000 - 0.266667 0.133333 0.066667 8.000000 - 0.333333 0.133333 0.066667 8.000000 - 0.400000 0.133333 0.066667 8.000000 - 0.466667 0.133333 0.066667 8.000000 - 0.000000 0.200000 0.066667 4.000000 - 0.066667 0.200000 0.066667 8.000000 - 0.133333 0.200000 0.066667 8.000000 - 0.200000 0.200000 0.066667 8.000000 - 0.266667 0.200000 0.066667 8.000000 - 0.333333 0.200000 0.066667 8.000000 - 0.400000 0.200000 0.066667 8.000000 - 0.466667 0.200000 0.066667 8.000000 - 0.000000 0.266667 0.066667 4.000000 - 0.066667 0.266667 0.066667 8.000000 - 0.133333 0.266667 0.066667 8.000000 - 0.200000 0.266667 0.066667 8.000000 - 0.266667 0.266667 0.066667 8.000000 - 0.333333 0.266667 0.066667 8.000000 - 0.400000 0.266667 0.066667 8.000000 - 0.466667 0.266667 0.066667 8.000000 - 0.000000 0.333333 0.066667 4.000000 - 0.066667 0.333333 0.066667 8.000000 - 0.133333 0.333333 0.066667 8.000000 - 0.200000 0.333333 0.066667 8.000000 - 0.266667 0.333333 0.066667 8.000000 - 0.333333 0.333333 0.066667 8.000000 - 0.400000 0.333333 0.066667 8.000000 - 0.466667 0.333333 0.066667 8.000000 - 0.000000 0.400000 0.066667 4.000000 - 0.066667 0.400000 0.066667 8.000000 - 0.133333 0.400000 0.066667 8.000000 - 0.200000 0.400000 0.066667 8.000000 - 0.266667 0.400000 0.066667 8.000000 - 0.333333 0.400000 0.066667 8.000000 - 0.400000 0.400000 0.066667 8.000000 - 0.466667 0.400000 0.066667 8.000000 - 0.000000 0.466667 0.066667 4.000000 - 0.066667 0.466667 0.066667 8.000000 - 0.133333 0.466667 0.066667 8.000000 - 0.200000 0.466667 0.066667 8.000000 - 0.266667 0.466667 0.066667 8.000000 - 0.333333 0.466667 0.066667 8.000000 - 0.400000 0.466667 0.066667 8.000000 - 0.466667 0.466667 0.066667 8.000000 - 0.000000 0.000000 0.133333 2.000000 - 0.066667 0.000000 0.133333 4.000000 - 0.133333 0.000000 0.133333 4.000000 - 0.200000 0.000000 0.133333 4.000000 - 0.266667 0.000000 0.133333 4.000000 - 0.333333 0.000000 0.133333 4.000000 - 0.400000 0.000000 0.133333 4.000000 - 0.466667 0.000000 0.133333 4.000000 - 0.000000 0.066667 0.133333 4.000000 - 0.066667 0.066667 0.133333 8.000000 - 0.133333 0.066667 0.133333 8.000000 - 0.200000 0.066667 0.133333 8.000000 - 0.266667 0.066667 0.133333 8.000000 - 0.333333 0.066667 0.133333 8.000000 - 0.400000 0.066667 0.133333 8.000000 - 0.466667 0.066667 0.133333 8.000000 - 0.000000 0.133333 0.133333 4.000000 - 0.066667 0.133333 0.133333 8.000000 - 0.133333 0.133333 0.133333 8.000000 - 0.200000 0.133333 0.133333 8.000000 - 0.266667 0.133333 0.133333 8.000000 - 0.333333 0.133333 0.133333 8.000000 - 0.400000 0.133333 0.133333 8.000000 - 0.466667 0.133333 0.133333 8.000000 - 0.000000 0.200000 0.133333 4.000000 - 0.066667 0.200000 0.133333 8.000000 - 0.133333 0.200000 0.133333 8.000000 - 0.200000 0.200000 0.133333 8.000000 - 0.266667 0.200000 0.133333 8.000000 - 0.333333 0.200000 0.133333 8.000000 - 0.400000 0.200000 0.133333 8.000000 - 0.466667 0.200000 0.133333 8.000000 - 0.000000 0.266667 0.133333 4.000000 - 0.066667 0.266667 0.133333 8.000000 - 0.133333 0.266667 0.133333 8.000000 - 0.200000 0.266667 0.133333 8.000000 - 0.266667 0.266667 0.133333 8.000000 - 0.333333 0.266667 0.133333 8.000000 - 0.400000 0.266667 0.133333 8.000000 - 0.466667 0.266667 0.133333 8.000000 - 0.000000 0.333333 0.133333 4.000000 - 0.066667 0.333333 0.133333 8.000000 - 0.133333 0.333333 0.133333 8.000000 - 0.200000 0.333333 0.133333 8.000000 - 0.266667 0.333333 0.133333 8.000000 - 0.333333 0.333333 0.133333 8.000000 - 0.400000 0.333333 0.133333 8.000000 - 0.466667 0.333333 0.133333 8.000000 - 0.000000 0.400000 0.133333 4.000000 - 0.066667 0.400000 0.133333 8.000000 - 0.133333 0.400000 0.133333 8.000000 - 0.200000 0.400000 0.133333 8.000000 - 0.266667 0.400000 0.133333 8.000000 - 0.333333 0.400000 0.133333 8.000000 - 0.400000 0.400000 0.133333 8.000000 - 0.466667 0.400000 0.133333 8.000000 - 0.000000 0.466667 0.133333 4.000000 - 0.066667 0.466667 0.133333 8.000000 - 0.133333 0.466667 0.133333 8.000000 - 0.200000 0.466667 0.133333 8.000000 - 0.266667 0.466667 0.133333 8.000000 - 0.333333 0.466667 0.133333 8.000000 - 0.400000 0.466667 0.133333 8.000000 - 0.466667 0.466667 0.133333 8.000000 - 0.000000 0.000000 0.200000 2.000000 - 0.066667 0.000000 0.200000 4.000000 - 0.133333 0.000000 0.200000 4.000000 - 0.200000 0.000000 0.200000 4.000000 - 0.266667 0.000000 0.200000 4.000000 - 0.333333 0.000000 0.200000 4.000000 - 0.400000 0.000000 0.200000 4.000000 - 0.466667 0.000000 0.200000 4.000000 - 0.000000 0.066667 0.200000 4.000000 - 0.066667 0.066667 0.200000 8.000000 - 0.133333 0.066667 0.200000 8.000000 - 0.200000 0.066667 0.200000 8.000000 - 0.266667 0.066667 0.200000 8.000000 - 0.333333 0.066667 0.200000 8.000000 - 0.400000 0.066667 0.200000 8.000000 - 0.466667 0.066667 0.200000 8.000000 - 0.000000 0.133333 0.200000 4.000000 - 0.066667 0.133333 0.200000 8.000000 - 0.133333 0.133333 0.200000 8.000000 - 0.200000 0.133333 0.200000 8.000000 - 0.266667 0.133333 0.200000 8.000000 - 0.333333 0.133333 0.200000 8.000000 - 0.400000 0.133333 0.200000 8.000000 - 0.466667 0.133333 0.200000 8.000000 - 0.000000 0.200000 0.200000 4.000000 - 0.066667 0.200000 0.200000 8.000000 - 0.133333 0.200000 0.200000 8.000000 - 0.200000 0.200000 0.200000 8.000000 - 0.266667 0.200000 0.200000 8.000000 - 0.333333 0.200000 0.200000 8.000000 - 0.400000 0.200000 0.200000 8.000000 - 0.466667 0.200000 0.200000 8.000000 - 0.000000 0.266667 0.200000 4.000000 - 0.066667 0.266667 0.200000 8.000000 - 0.133333 0.266667 0.200000 8.000000 - 0.200000 0.266667 0.200000 8.000000 - 0.266667 0.266667 0.200000 8.000000 - 0.333333 0.266667 0.200000 8.000000 - 0.400000 0.266667 0.200000 8.000000 - 0.466667 0.266667 0.200000 8.000000 - 0.000000 0.333333 0.200000 4.000000 - 0.066667 0.333333 0.200000 8.000000 - 0.133333 0.333333 0.200000 8.000000 - 0.200000 0.333333 0.200000 8.000000 - 0.266667 0.333333 0.200000 8.000000 - 0.333333 0.333333 0.200000 8.000000 - 0.400000 0.333333 0.200000 8.000000 - 0.466667 0.333333 0.200000 8.000000 - 0.000000 0.400000 0.200000 4.000000 - 0.066667 0.400000 0.200000 8.000000 - 0.133333 0.400000 0.200000 8.000000 - 0.200000 0.400000 0.200000 8.000000 - 0.266667 0.400000 0.200000 8.000000 - 0.333333 0.400000 0.200000 8.000000 - 0.400000 0.400000 0.200000 8.000000 - 0.466667 0.400000 0.200000 8.000000 - 0.000000 0.466667 0.200000 4.000000 - 0.066667 0.466667 0.200000 8.000000 - 0.133333 0.466667 0.200000 8.000000 - 0.200000 0.466667 0.200000 8.000000 - 0.266667 0.466667 0.200000 8.000000 - 0.333333 0.466667 0.200000 8.000000 - 0.400000 0.466667 0.200000 8.000000 - 0.466667 0.466667 0.200000 8.000000 - 0.000000 0.000000 0.266667 2.000000 - 0.066667 0.000000 0.266667 4.000000 - 0.133333 0.000000 0.266667 4.000000 - 0.200000 0.000000 0.266667 4.000000 - 0.266667 0.000000 0.266667 4.000000 - 0.333333 0.000000 0.266667 4.000000 - 0.400000 0.000000 0.266667 4.000000 - 0.466667 0.000000 0.266667 4.000000 - 0.000000 0.066667 0.266667 4.000000 - 0.066667 0.066667 0.266667 8.000000 - 0.133333 0.066667 0.266667 8.000000 - 0.200000 0.066667 0.266667 8.000000 - 0.266667 0.066667 0.266667 8.000000 - 0.333333 0.066667 0.266667 8.000000 - 0.400000 0.066667 0.266667 8.000000 - 0.466667 0.066667 0.266667 8.000000 - 0.000000 0.133333 0.266667 4.000000 - 0.066667 0.133333 0.266667 8.000000 - 0.133333 0.133333 0.266667 8.000000 - 0.200000 0.133333 0.266667 8.000000 - 0.266667 0.133333 0.266667 8.000000 - 0.333333 0.133333 0.266667 8.000000 - 0.400000 0.133333 0.266667 8.000000 - 0.466667 0.133333 0.266667 8.000000 - 0.000000 0.200000 0.266667 4.000000 - 0.066667 0.200000 0.266667 8.000000 - 0.133333 0.200000 0.266667 8.000000 - 0.200000 0.200000 0.266667 8.000000 - 0.266667 0.200000 0.266667 8.000000 - 0.333333 0.200000 0.266667 8.000000 - 0.400000 0.200000 0.266667 8.000000 - 0.466667 0.200000 0.266667 8.000000 - 0.000000 0.266667 0.266667 4.000000 - 0.066667 0.266667 0.266667 8.000000 - 0.133333 0.266667 0.266667 8.000000 - 0.200000 0.266667 0.266667 8.000000 - 0.266667 0.266667 0.266667 8.000000 - 0.333333 0.266667 0.266667 8.000000 - 0.400000 0.266667 0.266667 8.000000 - 0.466667 0.266667 0.266667 8.000000 - 0.000000 0.333333 0.266667 4.000000 - 0.066667 0.333333 0.266667 8.000000 - 0.133333 0.333333 0.266667 8.000000 - 0.200000 0.333333 0.266667 8.000000 - 0.266667 0.333333 0.266667 8.000000 - 0.333333 0.333333 0.266667 8.000000 - 0.400000 0.333333 0.266667 8.000000 - 0.466667 0.333333 0.266667 8.000000 - 0.000000 0.400000 0.266667 4.000000 - 0.066667 0.400000 0.266667 8.000000 - 0.133333 0.400000 0.266667 8.000000 - 0.200000 0.400000 0.266667 8.000000 - 0.266667 0.400000 0.266667 8.000000 - 0.333333 0.400000 0.266667 8.000000 - 0.400000 0.400000 0.266667 8.000000 - 0.466667 0.400000 0.266667 8.000000 - 0.000000 0.466667 0.266667 4.000000 - 0.066667 0.466667 0.266667 8.000000 - 0.133333 0.466667 0.266667 8.000000 - 0.200000 0.466667 0.266667 8.000000 - 0.266667 0.466667 0.266667 8.000000 - 0.333333 0.466667 0.266667 8.000000 - 0.400000 0.466667 0.266667 8.000000 - 0.466667 0.466667 0.266667 8.000000 - 0.000000 0.000000 0.333333 2.000000 - 0.066667 0.000000 0.333333 4.000000 - 0.133333 0.000000 0.333333 4.000000 - 0.200000 0.000000 0.333333 4.000000 - 0.266667 0.000000 0.333333 4.000000 - 0.333333 0.000000 0.333333 4.000000 - 0.400000 0.000000 0.333333 4.000000 - 0.466667 0.000000 0.333333 4.000000 - 0.000000 0.066667 0.333333 4.000000 - 0.066667 0.066667 0.333333 8.000000 - 0.133333 0.066667 0.333333 8.000000 - 0.200000 0.066667 0.333333 8.000000 - 0.266667 0.066667 0.333333 8.000000 - 0.333333 0.066667 0.333333 8.000000 - 0.400000 0.066667 0.333333 8.000000 - 0.466667 0.066667 0.333333 8.000000 - 0.000000 0.133333 0.333333 4.000000 - 0.066667 0.133333 0.333333 8.000000 - 0.133333 0.133333 0.333333 8.000000 - 0.200000 0.133333 0.333333 8.000000 - 0.266667 0.133333 0.333333 8.000000 - 0.333333 0.133333 0.333333 8.000000 - 0.400000 0.133333 0.333333 8.000000 - 0.466667 0.133333 0.333333 8.000000 - 0.000000 0.200000 0.333333 4.000000 - 0.066667 0.200000 0.333333 8.000000 - 0.133333 0.200000 0.333333 8.000000 - 0.200000 0.200000 0.333333 8.000000 - 0.266667 0.200000 0.333333 8.000000 - 0.333333 0.200000 0.333333 8.000000 - 0.400000 0.200000 0.333333 8.000000 - 0.466667 0.200000 0.333333 8.000000 - 0.000000 0.266667 0.333333 4.000000 - 0.066667 0.266667 0.333333 8.000000 - 0.133333 0.266667 0.333333 8.000000 - 0.200000 0.266667 0.333333 8.000000 - 0.266667 0.266667 0.333333 8.000000 - 0.333333 0.266667 0.333333 8.000000 - 0.400000 0.266667 0.333333 8.000000 - 0.466667 0.266667 0.333333 8.000000 - 0.000000 0.333333 0.333333 4.000000 - 0.066667 0.333333 0.333333 8.000000 - 0.133333 0.333333 0.333333 8.000000 - 0.200000 0.333333 0.333333 8.000000 - 0.266667 0.333333 0.333333 8.000000 - 0.333333 0.333333 0.333333 8.000000 - 0.400000 0.333333 0.333333 8.000000 - 0.466667 0.333333 0.333333 8.000000 - 0.000000 0.400000 0.333333 4.000000 - 0.066667 0.400000 0.333333 8.000000 - 0.133333 0.400000 0.333333 8.000000 - 0.200000 0.400000 0.333333 8.000000 - 0.266667 0.400000 0.333333 8.000000 - 0.333333 0.400000 0.333333 8.000000 - 0.400000 0.400000 0.333333 8.000000 - 0.466667 0.400000 0.333333 8.000000 - 0.000000 0.466667 0.333333 4.000000 - 0.066667 0.466667 0.333333 8.000000 - 0.133333 0.466667 0.333333 8.000000 - 0.200000 0.466667 0.333333 8.000000 - 0.266667 0.466667 0.333333 8.000000 - 0.333333 0.466667 0.333333 8.000000 - 0.400000 0.466667 0.333333 8.000000 - 0.466667 0.466667 0.333333 8.000000 - 0.000000 0.000000 0.400000 2.000000 - 0.066667 0.000000 0.400000 4.000000 - 0.133333 0.000000 0.400000 4.000000 - 0.200000 0.000000 0.400000 4.000000 - 0.266667 0.000000 0.400000 4.000000 - 0.333333 0.000000 0.400000 4.000000 - 0.400000 0.000000 0.400000 4.000000 - 0.466667 0.000000 0.400000 4.000000 - 0.000000 0.066667 0.400000 4.000000 - 0.066667 0.066667 0.400000 8.000000 - 0.133333 0.066667 0.400000 8.000000 - 0.200000 0.066667 0.400000 8.000000 - 0.266667 0.066667 0.400000 8.000000 - 0.333333 0.066667 0.400000 8.000000 - 0.400000 0.066667 0.400000 8.000000 - 0.466667 0.066667 0.400000 8.000000 - 0.000000 0.133333 0.400000 4.000000 - 0.066667 0.133333 0.400000 8.000000 - 0.133333 0.133333 0.400000 8.000000 - 0.200000 0.133333 0.400000 8.000000 - 0.266667 0.133333 0.400000 8.000000 - 0.333333 0.133333 0.400000 8.000000 - 0.400000 0.133333 0.400000 8.000000 - 0.466667 0.133333 0.400000 8.000000 - 0.000000 0.200000 0.400000 4.000000 - 0.066667 0.200000 0.400000 8.000000 - 0.133333 0.200000 0.400000 8.000000 - 0.200000 0.200000 0.400000 8.000000 - 0.266667 0.200000 0.400000 8.000000 - 0.333333 0.200000 0.400000 8.000000 - 0.400000 0.200000 0.400000 8.000000 - 0.466667 0.200000 0.400000 8.000000 - 0.000000 0.266667 0.400000 4.000000 - 0.066667 0.266667 0.400000 8.000000 - 0.133333 0.266667 0.400000 8.000000 - 0.200000 0.266667 0.400000 8.000000 - 0.266667 0.266667 0.400000 8.000000 - 0.333333 0.266667 0.400000 8.000000 - 0.400000 0.266667 0.400000 8.000000 - 0.466667 0.266667 0.400000 8.000000 - 0.000000 0.333333 0.400000 4.000000 - 0.066667 0.333333 0.400000 8.000000 - 0.133333 0.333333 0.400000 8.000000 - 0.200000 0.333333 0.400000 8.000000 - 0.266667 0.333333 0.400000 8.000000 - 0.333333 0.333333 0.400000 8.000000 - 0.400000 0.333333 0.400000 8.000000 - 0.466667 0.333333 0.400000 8.000000 - 0.000000 0.400000 0.400000 4.000000 - 0.066667 0.400000 0.400000 8.000000 - 0.133333 0.400000 0.400000 8.000000 - 0.200000 0.400000 0.400000 8.000000 - 0.266667 0.400000 0.400000 8.000000 - 0.333333 0.400000 0.400000 8.000000 - 0.400000 0.400000 0.400000 8.000000 - 0.466667 0.400000 0.400000 8.000000 - 0.000000 0.466667 0.400000 4.000000 - 0.066667 0.466667 0.400000 8.000000 - 0.133333 0.466667 0.400000 8.000000 - 0.200000 0.466667 0.400000 8.000000 - 0.266667 0.466667 0.400000 8.000000 - 0.333333 0.466667 0.400000 8.000000 - 0.400000 0.466667 0.400000 8.000000 - 0.466667 0.466667 0.400000 8.000000 - 0.000000 0.000000 0.466667 2.000000 - 0.066667 0.000000 0.466667 4.000000 - 0.133333 0.000000 0.466667 4.000000 - 0.200000 0.000000 0.466667 4.000000 - 0.266667 0.000000 0.466667 4.000000 - 0.333333 0.000000 0.466667 4.000000 - 0.400000 0.000000 0.466667 4.000000 - 0.466667 0.000000 0.466667 4.000000 - 0.000000 0.066667 0.466667 4.000000 - 0.066667 0.066667 0.466667 8.000000 - 0.133333 0.066667 0.466667 8.000000 - 0.200000 0.066667 0.466667 8.000000 - 0.266667 0.066667 0.466667 8.000000 - 0.333333 0.066667 0.466667 8.000000 - 0.400000 0.066667 0.466667 8.000000 - 0.466667 0.066667 0.466667 8.000000 - 0.000000 0.133333 0.466667 4.000000 - 0.066667 0.133333 0.466667 8.000000 - 0.133333 0.133333 0.466667 8.000000 - 0.200000 0.133333 0.466667 8.000000 - 0.266667 0.133333 0.466667 8.000000 - 0.333333 0.133333 0.466667 8.000000 - 0.400000 0.133333 0.466667 8.000000 - 0.466667 0.133333 0.466667 8.000000 - 0.000000 0.200000 0.466667 4.000000 - 0.066667 0.200000 0.466667 8.000000 - 0.133333 0.200000 0.466667 8.000000 - 0.200000 0.200000 0.466667 8.000000 - 0.266667 0.200000 0.466667 8.000000 - 0.333333 0.200000 0.466667 8.000000 - 0.400000 0.200000 0.466667 8.000000 - 0.466667 0.200000 0.466667 8.000000 - 0.000000 0.266667 0.466667 4.000000 - 0.066667 0.266667 0.466667 8.000000 - 0.133333 0.266667 0.466667 8.000000 - 0.200000 0.266667 0.466667 8.000000 - 0.266667 0.266667 0.466667 8.000000 - 0.333333 0.266667 0.466667 8.000000 - 0.400000 0.266667 0.466667 8.000000 - 0.466667 0.266667 0.466667 8.000000 - 0.000000 0.333333 0.466667 4.000000 - 0.066667 0.333333 0.466667 8.000000 - 0.133333 0.333333 0.466667 8.000000 - 0.200000 0.333333 0.466667 8.000000 - 0.266667 0.333333 0.466667 8.000000 - 0.333333 0.333333 0.466667 8.000000 - 0.400000 0.333333 0.466667 8.000000 - 0.466667 0.333333 0.466667 8.000000 - 0.000000 0.400000 0.466667 4.000000 - 0.066667 0.400000 0.466667 8.000000 - 0.133333 0.400000 0.466667 8.000000 - 0.200000 0.400000 0.466667 8.000000 - 0.266667 0.400000 0.466667 8.000000 - 0.333333 0.400000 0.466667 8.000000 - 0.400000 0.400000 0.466667 8.000000 - 0.466667 0.400000 0.466667 8.000000 - 0.000000 0.466667 0.466667 4.000000 - 0.066667 0.466667 0.466667 8.000000 - 0.133333 0.466667 0.466667 8.000000 - 0.200000 0.466667 0.466667 8.000000 - 0.266667 0.466667 0.466667 8.000000 - 0.333333 0.466667 0.466667 8.000000 - 0.400000 0.466667 0.466667 8.000000 - 0.466667 0.466667 0.466667 8.000000 - - Following cartesian coordinates: - Coordinates Weight - 0.000000 0.000000 0.000000 1.000000 - 0.018167 0.000000 0.000000 2.000000 - 0.036334 0.000000 0.000000 2.000000 - 0.054502 0.000000 0.000000 2.000000 - 0.072669 0.000000 0.000000 2.000000 - 0.090836 0.000000 0.000000 2.000000 - 0.109003 0.000000 0.000000 2.000000 - 0.127171 0.000000 0.000000 2.000000 - 0.000000 0.018740 0.000000 2.000000 - 0.018167 0.018740 0.000000 4.000000 - 0.036334 0.018740 0.000000 4.000000 - 0.054502 0.018740 0.000000 4.000000 - 0.072669 0.018740 0.000000 4.000000 - 0.090836 0.018740 0.000000 4.000000 - 0.109003 0.018740 0.000000 4.000000 - 0.127171 0.018740 0.000000 4.000000 - 0.000000 0.037480 0.000000 2.000000 - 0.018167 0.037480 0.000000 4.000000 - 0.036334 0.037480 0.000000 4.000000 - 0.054502 0.037480 0.000000 4.000000 - 0.072669 0.037480 0.000000 4.000000 - 0.090836 0.037480 0.000000 4.000000 - 0.109003 0.037480 0.000000 4.000000 - 0.127171 0.037480 0.000000 4.000000 - 0.000000 0.056220 0.000000 2.000000 - 0.018167 0.056220 0.000000 4.000000 - 0.036334 0.056220 0.000000 4.000000 - 0.054502 0.056220 0.000000 4.000000 - 0.072669 0.056220 0.000000 4.000000 - 0.090836 0.056220 0.000000 4.000000 - 0.109003 0.056220 0.000000 4.000000 - 0.127171 0.056220 0.000000 4.000000 - 0.000000 0.074960 0.000000 2.000000 - 0.018167 0.074960 0.000000 4.000000 - 0.036334 0.074960 0.000000 4.000000 - 0.054502 0.074960 0.000000 4.000000 - 0.072669 0.074960 0.000000 4.000000 - 0.090836 0.074960 0.000000 4.000000 - 0.109003 0.074960 0.000000 4.000000 - 0.127171 0.074960 0.000000 4.000000 - 0.000000 0.093700 0.000000 2.000000 - 0.018167 0.093700 0.000000 4.000000 - 0.036334 0.093700 0.000000 4.000000 - 0.054502 0.093700 0.000000 4.000000 - 0.072669 0.093700 0.000000 4.000000 - 0.090836 0.093700 0.000000 4.000000 - 0.109003 0.093700 0.000000 4.000000 - 0.127171 0.093700 0.000000 4.000000 - 0.000000 0.112440 0.000000 2.000000 - 0.018167 0.112440 0.000000 4.000000 - 0.036334 0.112440 0.000000 4.000000 - 0.054502 0.112440 0.000000 4.000000 - 0.072669 0.112440 0.000000 4.000000 - 0.090836 0.112440 0.000000 4.000000 - 0.109003 0.112440 0.000000 4.000000 - 0.127171 0.112440 0.000000 4.000000 - 0.000000 0.131180 0.000000 2.000000 - 0.018167 0.131180 0.000000 4.000000 - 0.036334 0.131180 0.000000 4.000000 - 0.054502 0.131180 0.000000 4.000000 - 0.072669 0.131180 0.000000 4.000000 - 0.090836 0.131180 0.000000 4.000000 - 0.109003 0.131180 0.000000 4.000000 - 0.127171 0.131180 0.000000 4.000000 - 0.000000 0.000000 0.020986 2.000000 - 0.018167 0.000000 0.020986 4.000000 - 0.036334 0.000000 0.020986 4.000000 - 0.054502 0.000000 0.020986 4.000000 - 0.072669 0.000000 0.020986 4.000000 - 0.090836 0.000000 0.020986 4.000000 - 0.109003 0.000000 0.020986 4.000000 - 0.127171 0.000000 0.020986 4.000000 - 0.000000 0.018740 0.020986 4.000000 - 0.018167 0.018740 0.020986 8.000000 - 0.036334 0.018740 0.020986 8.000000 - 0.054502 0.018740 0.020986 8.000000 - 0.072669 0.018740 0.020986 8.000000 - 0.090836 0.018740 0.020986 8.000000 - 0.109003 0.018740 0.020986 8.000000 - 0.127171 0.018740 0.020986 8.000000 - 0.000000 0.037480 0.020986 4.000000 - 0.018167 0.037480 0.020986 8.000000 - 0.036334 0.037480 0.020986 8.000000 - 0.054502 0.037480 0.020986 8.000000 - 0.072669 0.037480 0.020986 8.000000 - 0.090836 0.037480 0.020986 8.000000 - 0.109003 0.037480 0.020986 8.000000 - 0.127171 0.037480 0.020986 8.000000 - 0.000000 0.056220 0.020986 4.000000 - 0.018167 0.056220 0.020986 8.000000 - 0.036334 0.056220 0.020986 8.000000 - 0.054502 0.056220 0.020986 8.000000 - 0.072669 0.056220 0.020986 8.000000 - 0.090836 0.056220 0.020986 8.000000 - 0.109003 0.056220 0.020986 8.000000 - 0.127171 0.056220 0.020986 8.000000 - 0.000000 0.074960 0.020986 4.000000 - 0.018167 0.074960 0.020986 8.000000 - 0.036334 0.074960 0.020986 8.000000 - 0.054502 0.074960 0.020986 8.000000 - 0.072669 0.074960 0.020986 8.000000 - 0.090836 0.074960 0.020986 8.000000 - 0.109003 0.074960 0.020986 8.000000 - 0.127171 0.074960 0.020986 8.000000 - 0.000000 0.093700 0.020986 4.000000 - 0.018167 0.093700 0.020986 8.000000 - 0.036334 0.093700 0.020986 8.000000 - 0.054502 0.093700 0.020986 8.000000 - 0.072669 0.093700 0.020986 8.000000 - 0.090836 0.093700 0.020986 8.000000 - 0.109003 0.093700 0.020986 8.000000 - 0.127171 0.093700 0.020986 8.000000 - 0.000000 0.112440 0.020986 4.000000 - 0.018167 0.112440 0.020986 8.000000 - 0.036334 0.112440 0.020986 8.000000 - 0.054502 0.112440 0.020986 8.000000 - 0.072669 0.112440 0.020986 8.000000 - 0.090836 0.112440 0.020986 8.000000 - 0.109003 0.112440 0.020986 8.000000 - 0.127171 0.112440 0.020986 8.000000 - 0.000000 0.131180 0.020986 4.000000 - 0.018167 0.131180 0.020986 8.000000 - 0.036334 0.131180 0.020986 8.000000 - 0.054502 0.131180 0.020986 8.000000 - 0.072669 0.131180 0.020986 8.000000 - 0.090836 0.131180 0.020986 8.000000 - 0.109003 0.131180 0.020986 8.000000 - 0.127171 0.131180 0.020986 8.000000 - 0.000000 0.000000 0.041971 2.000000 - 0.018167 0.000000 0.041971 4.000000 - 0.036334 0.000000 0.041971 4.000000 - 0.054502 0.000000 0.041971 4.000000 - 0.072669 0.000000 0.041971 4.000000 - 0.090836 0.000000 0.041971 4.000000 - 0.109003 0.000000 0.041971 4.000000 - 0.127171 0.000000 0.041971 4.000000 - 0.000000 0.018740 0.041971 4.000000 - 0.018167 0.018740 0.041971 8.000000 - 0.036334 0.018740 0.041971 8.000000 - 0.054502 0.018740 0.041971 8.000000 - 0.072669 0.018740 0.041971 8.000000 - 0.090836 0.018740 0.041971 8.000000 - 0.109003 0.018740 0.041971 8.000000 - 0.127171 0.018740 0.041971 8.000000 - 0.000000 0.037480 0.041971 4.000000 - 0.018167 0.037480 0.041971 8.000000 - 0.036334 0.037480 0.041971 8.000000 - 0.054502 0.037480 0.041971 8.000000 - 0.072669 0.037480 0.041971 8.000000 - 0.090836 0.037480 0.041971 8.000000 - 0.109003 0.037480 0.041971 8.000000 - 0.127171 0.037480 0.041971 8.000000 - 0.000000 0.056220 0.041971 4.000000 - 0.018167 0.056220 0.041971 8.000000 - 0.036334 0.056220 0.041971 8.000000 - 0.054502 0.056220 0.041971 8.000000 - 0.072669 0.056220 0.041971 8.000000 - 0.090836 0.056220 0.041971 8.000000 - 0.109003 0.056220 0.041971 8.000000 - 0.127171 0.056220 0.041971 8.000000 - 0.000000 0.074960 0.041971 4.000000 - 0.018167 0.074960 0.041971 8.000000 - 0.036334 0.074960 0.041971 8.000000 - 0.054502 0.074960 0.041971 8.000000 - 0.072669 0.074960 0.041971 8.000000 - 0.090836 0.074960 0.041971 8.000000 - 0.109003 0.074960 0.041971 8.000000 - 0.127171 0.074960 0.041971 8.000000 - 0.000000 0.093700 0.041971 4.000000 - 0.018167 0.093700 0.041971 8.000000 - 0.036334 0.093700 0.041971 8.000000 - 0.054502 0.093700 0.041971 8.000000 - 0.072669 0.093700 0.041971 8.000000 - 0.090836 0.093700 0.041971 8.000000 - 0.109003 0.093700 0.041971 8.000000 - 0.127171 0.093700 0.041971 8.000000 - 0.000000 0.112440 0.041971 4.000000 - 0.018167 0.112440 0.041971 8.000000 - 0.036334 0.112440 0.041971 8.000000 - 0.054502 0.112440 0.041971 8.000000 - 0.072669 0.112440 0.041971 8.000000 - 0.090836 0.112440 0.041971 8.000000 - 0.109003 0.112440 0.041971 8.000000 - 0.127171 0.112440 0.041971 8.000000 - 0.000000 0.131180 0.041971 4.000000 - 0.018167 0.131180 0.041971 8.000000 - 0.036334 0.131180 0.041971 8.000000 - 0.054502 0.131180 0.041971 8.000000 - 0.072669 0.131180 0.041971 8.000000 - 0.090836 0.131180 0.041971 8.000000 - 0.109003 0.131180 0.041971 8.000000 - 0.127171 0.131180 0.041971 8.000000 - 0.000000 0.000000 0.062957 2.000000 - 0.018167 0.000000 0.062957 4.000000 - 0.036334 0.000000 0.062957 4.000000 - 0.054502 0.000000 0.062957 4.000000 - 0.072669 0.000000 0.062957 4.000000 - 0.090836 0.000000 0.062957 4.000000 - 0.109003 0.000000 0.062957 4.000000 - 0.127171 0.000000 0.062957 4.000000 - 0.000000 0.018740 0.062957 4.000000 - 0.018167 0.018740 0.062957 8.000000 - 0.036334 0.018740 0.062957 8.000000 - 0.054502 0.018740 0.062957 8.000000 - 0.072669 0.018740 0.062957 8.000000 - 0.090836 0.018740 0.062957 8.000000 - 0.109003 0.018740 0.062957 8.000000 - 0.127171 0.018740 0.062957 8.000000 - 0.000000 0.037480 0.062957 4.000000 - 0.018167 0.037480 0.062957 8.000000 - 0.036334 0.037480 0.062957 8.000000 - 0.054502 0.037480 0.062957 8.000000 - 0.072669 0.037480 0.062957 8.000000 - 0.090836 0.037480 0.062957 8.000000 - 0.109003 0.037480 0.062957 8.000000 - 0.127171 0.037480 0.062957 8.000000 - 0.000000 0.056220 0.062957 4.000000 - 0.018167 0.056220 0.062957 8.000000 - 0.036334 0.056220 0.062957 8.000000 - 0.054502 0.056220 0.062957 8.000000 - 0.072669 0.056220 0.062957 8.000000 - 0.090836 0.056220 0.062957 8.000000 - 0.109003 0.056220 0.062957 8.000000 - 0.127171 0.056220 0.062957 8.000000 - 0.000000 0.074960 0.062957 4.000000 - 0.018167 0.074960 0.062957 8.000000 - 0.036334 0.074960 0.062957 8.000000 - 0.054502 0.074960 0.062957 8.000000 - 0.072669 0.074960 0.062957 8.000000 - 0.090836 0.074960 0.062957 8.000000 - 0.109003 0.074960 0.062957 8.000000 - 0.127171 0.074960 0.062957 8.000000 - 0.000000 0.093700 0.062957 4.000000 - 0.018167 0.093700 0.062957 8.000000 - 0.036334 0.093700 0.062957 8.000000 - 0.054502 0.093700 0.062957 8.000000 - 0.072669 0.093700 0.062957 8.000000 - 0.090836 0.093700 0.062957 8.000000 - 0.109003 0.093700 0.062957 8.000000 - 0.127171 0.093700 0.062957 8.000000 - 0.000000 0.112440 0.062957 4.000000 - 0.018167 0.112440 0.062957 8.000000 - 0.036334 0.112440 0.062957 8.000000 - 0.054502 0.112440 0.062957 8.000000 - 0.072669 0.112440 0.062957 8.000000 - 0.090836 0.112440 0.062957 8.000000 - 0.109003 0.112440 0.062957 8.000000 - 0.127171 0.112440 0.062957 8.000000 - 0.000000 0.131180 0.062957 4.000000 - 0.018167 0.131180 0.062957 8.000000 - 0.036334 0.131180 0.062957 8.000000 - 0.054502 0.131180 0.062957 8.000000 - 0.072669 0.131180 0.062957 8.000000 - 0.090836 0.131180 0.062957 8.000000 - 0.109003 0.131180 0.062957 8.000000 - 0.127171 0.131180 0.062957 8.000000 - 0.000000 0.000000 0.083942 2.000000 - 0.018167 0.000000 0.083942 4.000000 - 0.036334 0.000000 0.083942 4.000000 - 0.054502 0.000000 0.083942 4.000000 - 0.072669 0.000000 0.083942 4.000000 - 0.090836 0.000000 0.083942 4.000000 - 0.109003 0.000000 0.083942 4.000000 - 0.127171 0.000000 0.083942 4.000000 - 0.000000 0.018740 0.083942 4.000000 - 0.018167 0.018740 0.083942 8.000000 - 0.036334 0.018740 0.083942 8.000000 - 0.054502 0.018740 0.083942 8.000000 - 0.072669 0.018740 0.083942 8.000000 - 0.090836 0.018740 0.083942 8.000000 - 0.109003 0.018740 0.083942 8.000000 - 0.127171 0.018740 0.083942 8.000000 - 0.000000 0.037480 0.083942 4.000000 - 0.018167 0.037480 0.083942 8.000000 - 0.036334 0.037480 0.083942 8.000000 - 0.054502 0.037480 0.083942 8.000000 - 0.072669 0.037480 0.083942 8.000000 - 0.090836 0.037480 0.083942 8.000000 - 0.109003 0.037480 0.083942 8.000000 - 0.127171 0.037480 0.083942 8.000000 - 0.000000 0.056220 0.083942 4.000000 - 0.018167 0.056220 0.083942 8.000000 - 0.036334 0.056220 0.083942 8.000000 - 0.054502 0.056220 0.083942 8.000000 - 0.072669 0.056220 0.083942 8.000000 - 0.090836 0.056220 0.083942 8.000000 - 0.109003 0.056220 0.083942 8.000000 - 0.127171 0.056220 0.083942 8.000000 - 0.000000 0.074960 0.083942 4.000000 - 0.018167 0.074960 0.083942 8.000000 - 0.036334 0.074960 0.083942 8.000000 - 0.054502 0.074960 0.083942 8.000000 - 0.072669 0.074960 0.083942 8.000000 - 0.090836 0.074960 0.083942 8.000000 - 0.109003 0.074960 0.083942 8.000000 - 0.127171 0.074960 0.083942 8.000000 - 0.000000 0.093700 0.083942 4.000000 - 0.018167 0.093700 0.083942 8.000000 - 0.036334 0.093700 0.083942 8.000000 - 0.054502 0.093700 0.083942 8.000000 - 0.072669 0.093700 0.083942 8.000000 - 0.090836 0.093700 0.083942 8.000000 - 0.109003 0.093700 0.083942 8.000000 - 0.127171 0.093700 0.083942 8.000000 - 0.000000 0.112440 0.083942 4.000000 - 0.018167 0.112440 0.083942 8.000000 - 0.036334 0.112440 0.083942 8.000000 - 0.054502 0.112440 0.083942 8.000000 - 0.072669 0.112440 0.083942 8.000000 - 0.090836 0.112440 0.083942 8.000000 - 0.109003 0.112440 0.083942 8.000000 - 0.127171 0.112440 0.083942 8.000000 - 0.000000 0.131180 0.083942 4.000000 - 0.018167 0.131180 0.083942 8.000000 - 0.036334 0.131180 0.083942 8.000000 - 0.054502 0.131180 0.083942 8.000000 - 0.072669 0.131180 0.083942 8.000000 - 0.090836 0.131180 0.083942 8.000000 - 0.109003 0.131180 0.083942 8.000000 - 0.127171 0.131180 0.083942 8.000000 - 0.000000 0.000000 0.104928 2.000000 - 0.018167 0.000000 0.104928 4.000000 - 0.036334 0.000000 0.104928 4.000000 - 0.054502 0.000000 0.104928 4.000000 - 0.072669 0.000000 0.104928 4.000000 - 0.090836 0.000000 0.104928 4.000000 - 0.109003 0.000000 0.104928 4.000000 - 0.127171 0.000000 0.104928 4.000000 - 0.000000 0.018740 0.104928 4.000000 - 0.018167 0.018740 0.104928 8.000000 - 0.036334 0.018740 0.104928 8.000000 - 0.054502 0.018740 0.104928 8.000000 - 0.072669 0.018740 0.104928 8.000000 - 0.090836 0.018740 0.104928 8.000000 - 0.109003 0.018740 0.104928 8.000000 - 0.127171 0.018740 0.104928 8.000000 - 0.000000 0.037480 0.104928 4.000000 - 0.018167 0.037480 0.104928 8.000000 - 0.036334 0.037480 0.104928 8.000000 - 0.054502 0.037480 0.104928 8.000000 - 0.072669 0.037480 0.104928 8.000000 - 0.090836 0.037480 0.104928 8.000000 - 0.109003 0.037480 0.104928 8.000000 - 0.127171 0.037480 0.104928 8.000000 - 0.000000 0.056220 0.104928 4.000000 - 0.018167 0.056220 0.104928 8.000000 - 0.036334 0.056220 0.104928 8.000000 - 0.054502 0.056220 0.104928 8.000000 - 0.072669 0.056220 0.104928 8.000000 - 0.090836 0.056220 0.104928 8.000000 - 0.109003 0.056220 0.104928 8.000000 - 0.127171 0.056220 0.104928 8.000000 - 0.000000 0.074960 0.104928 4.000000 - 0.018167 0.074960 0.104928 8.000000 - 0.036334 0.074960 0.104928 8.000000 - 0.054502 0.074960 0.104928 8.000000 - 0.072669 0.074960 0.104928 8.000000 - 0.090836 0.074960 0.104928 8.000000 - 0.109003 0.074960 0.104928 8.000000 - 0.127171 0.074960 0.104928 8.000000 - 0.000000 0.093700 0.104928 4.000000 - 0.018167 0.093700 0.104928 8.000000 - 0.036334 0.093700 0.104928 8.000000 - 0.054502 0.093700 0.104928 8.000000 - 0.072669 0.093700 0.104928 8.000000 - 0.090836 0.093700 0.104928 8.000000 - 0.109003 0.093700 0.104928 8.000000 - 0.127171 0.093700 0.104928 8.000000 - 0.000000 0.112440 0.104928 4.000000 - 0.018167 0.112440 0.104928 8.000000 - 0.036334 0.112440 0.104928 8.000000 - 0.054502 0.112440 0.104928 8.000000 - 0.072669 0.112440 0.104928 8.000000 - 0.090836 0.112440 0.104928 8.000000 - 0.109003 0.112440 0.104928 8.000000 - 0.127171 0.112440 0.104928 8.000000 - 0.000000 0.131180 0.104928 4.000000 - 0.018167 0.131180 0.104928 8.000000 - 0.036334 0.131180 0.104928 8.000000 - 0.054502 0.131180 0.104928 8.000000 - 0.072669 0.131180 0.104928 8.000000 - 0.090836 0.131180 0.104928 8.000000 - 0.109003 0.131180 0.104928 8.000000 - 0.127171 0.131180 0.104928 8.000000 - 0.000000 0.000000 0.125914 2.000000 - 0.018167 0.000000 0.125914 4.000000 - 0.036334 0.000000 0.125914 4.000000 - 0.054502 0.000000 0.125914 4.000000 - 0.072669 0.000000 0.125914 4.000000 - 0.090836 0.000000 0.125914 4.000000 - 0.109003 0.000000 0.125914 4.000000 - 0.127171 0.000000 0.125914 4.000000 - 0.000000 0.018740 0.125914 4.000000 - 0.018167 0.018740 0.125914 8.000000 - 0.036334 0.018740 0.125914 8.000000 - 0.054502 0.018740 0.125914 8.000000 - 0.072669 0.018740 0.125914 8.000000 - 0.090836 0.018740 0.125914 8.000000 - 0.109003 0.018740 0.125914 8.000000 - 0.127171 0.018740 0.125914 8.000000 - 0.000000 0.037480 0.125914 4.000000 - 0.018167 0.037480 0.125914 8.000000 - 0.036334 0.037480 0.125914 8.000000 - 0.054502 0.037480 0.125914 8.000000 - 0.072669 0.037480 0.125914 8.000000 - 0.090836 0.037480 0.125914 8.000000 - 0.109003 0.037480 0.125914 8.000000 - 0.127171 0.037480 0.125914 8.000000 - 0.000000 0.056220 0.125914 4.000000 - 0.018167 0.056220 0.125914 8.000000 - 0.036334 0.056220 0.125914 8.000000 - 0.054502 0.056220 0.125914 8.000000 - 0.072669 0.056220 0.125914 8.000000 - 0.090836 0.056220 0.125914 8.000000 - 0.109003 0.056220 0.125914 8.000000 - 0.127171 0.056220 0.125914 8.000000 - 0.000000 0.074960 0.125914 4.000000 - 0.018167 0.074960 0.125914 8.000000 - 0.036334 0.074960 0.125914 8.000000 - 0.054502 0.074960 0.125914 8.000000 - 0.072669 0.074960 0.125914 8.000000 - 0.090836 0.074960 0.125914 8.000000 - 0.109003 0.074960 0.125914 8.000000 - 0.127171 0.074960 0.125914 8.000000 - 0.000000 0.093700 0.125914 4.000000 - 0.018167 0.093700 0.125914 8.000000 - 0.036334 0.093700 0.125914 8.000000 - 0.054502 0.093700 0.125914 8.000000 - 0.072669 0.093700 0.125914 8.000000 - 0.090836 0.093700 0.125914 8.000000 - 0.109003 0.093700 0.125914 8.000000 - 0.127171 0.093700 0.125914 8.000000 - 0.000000 0.112440 0.125914 4.000000 - 0.018167 0.112440 0.125914 8.000000 - 0.036334 0.112440 0.125914 8.000000 - 0.054502 0.112440 0.125914 8.000000 - 0.072669 0.112440 0.125914 8.000000 - 0.090836 0.112440 0.125914 8.000000 - 0.109003 0.112440 0.125914 8.000000 - 0.127171 0.112440 0.125914 8.000000 - 0.000000 0.131180 0.125914 4.000000 - 0.018167 0.131180 0.125914 8.000000 - 0.036334 0.131180 0.125914 8.000000 - 0.054502 0.131180 0.125914 8.000000 - 0.072669 0.131180 0.125914 8.000000 - 0.090836 0.131180 0.125914 8.000000 - 0.109003 0.131180 0.125914 8.000000 - 0.127171 0.131180 0.125914 8.000000 - 0.000000 0.000000 0.146899 2.000000 - 0.018167 0.000000 0.146899 4.000000 - 0.036334 0.000000 0.146899 4.000000 - 0.054502 0.000000 0.146899 4.000000 - 0.072669 0.000000 0.146899 4.000000 - 0.090836 0.000000 0.146899 4.000000 - 0.109003 0.000000 0.146899 4.000000 - 0.127171 0.000000 0.146899 4.000000 - 0.000000 0.018740 0.146899 4.000000 - 0.018167 0.018740 0.146899 8.000000 - 0.036334 0.018740 0.146899 8.000000 - 0.054502 0.018740 0.146899 8.000000 - 0.072669 0.018740 0.146899 8.000000 - 0.090836 0.018740 0.146899 8.000000 - 0.109003 0.018740 0.146899 8.000000 - 0.127171 0.018740 0.146899 8.000000 - 0.000000 0.037480 0.146899 4.000000 - 0.018167 0.037480 0.146899 8.000000 - 0.036334 0.037480 0.146899 8.000000 - 0.054502 0.037480 0.146899 8.000000 - 0.072669 0.037480 0.146899 8.000000 - 0.090836 0.037480 0.146899 8.000000 - 0.109003 0.037480 0.146899 8.000000 - 0.127171 0.037480 0.146899 8.000000 - 0.000000 0.056220 0.146899 4.000000 - 0.018167 0.056220 0.146899 8.000000 - 0.036334 0.056220 0.146899 8.000000 - 0.054502 0.056220 0.146899 8.000000 - 0.072669 0.056220 0.146899 8.000000 - 0.090836 0.056220 0.146899 8.000000 - 0.109003 0.056220 0.146899 8.000000 - 0.127171 0.056220 0.146899 8.000000 - 0.000000 0.074960 0.146899 4.000000 - 0.018167 0.074960 0.146899 8.000000 - 0.036334 0.074960 0.146899 8.000000 - 0.054502 0.074960 0.146899 8.000000 - 0.072669 0.074960 0.146899 8.000000 - 0.090836 0.074960 0.146899 8.000000 - 0.109003 0.074960 0.146899 8.000000 - 0.127171 0.074960 0.146899 8.000000 - 0.000000 0.093700 0.146899 4.000000 - 0.018167 0.093700 0.146899 8.000000 - 0.036334 0.093700 0.146899 8.000000 - 0.054502 0.093700 0.146899 8.000000 - 0.072669 0.093700 0.146899 8.000000 - 0.090836 0.093700 0.146899 8.000000 - 0.109003 0.093700 0.146899 8.000000 - 0.127171 0.093700 0.146899 8.000000 - 0.000000 0.112440 0.146899 4.000000 - 0.018167 0.112440 0.146899 8.000000 - 0.036334 0.112440 0.146899 8.000000 - 0.054502 0.112440 0.146899 8.000000 - 0.072669 0.112440 0.146899 8.000000 - 0.090836 0.112440 0.146899 8.000000 - 0.109003 0.112440 0.146899 8.000000 - 0.127171 0.112440 0.146899 8.000000 - 0.000000 0.131180 0.146899 4.000000 - 0.018167 0.131180 0.146899 8.000000 - 0.036334 0.131180 0.146899 8.000000 - 0.054502 0.131180 0.146899 8.000000 - 0.072669 0.131180 0.146899 8.000000 - 0.090836 0.131180 0.146899 8.000000 - 0.109003 0.131180 0.146899 8.000000 - 0.127171 0.131180 0.146899 8.000000 - - - --------------------------------------------------------------------------------------------------------- - - - - - Dimension of arrays: - k-points NKPTS = 512 k-points in BZ NKDIM = 512 number of bands NBANDS= 18 - number of dos NEDOS = 301 number of ions NIONS = 4 - non local maximal LDIM = 8 non local SUM 2l+1 LMDIM = 26 - total plane-waves NPLWV = 11520 - max r-space proj IRMAX = 1 max aug-charges IRDMAX= 9112 - dimension x,y,z NGX = 24 NGY = 24 NGZ = 20 - dimension x,y,z NGXF= 48 NGYF= 48 NGZF= 40 - support grid NGXF= 48 NGYF= 48 NGZF= 40 - ions per type = 1 3 - NGX,Y,Z is equivalent to a cutoff of 10.87, 11.22, 10.47 a.u. - NGXF,Y,Z is equivalent to a cutoff of 21.75, 22.43, 20.93 a.u. - - SYSTEM = unknown system - POSCAR = WBe3 L1_2 - - Startparameter for this run: - NWRITE = 2 write-flag & timer - PREC = normal normal or accurate (medium, high low for compatibility) - ISTART = 0 job : 0-new 1-cont 2-samecut - ICHARG = 2 charge: 1-file 2-atom 10-const - ISPIN = 1 spin polarized calculation? - LNONCOLLINEAR = F non collinear calculations - LSORBIT = F spin-orbit coupling - INIWAV = 1 electr: 0-lowe 1-rand 2-diag - LASPH = F aspherical Exc in radial PAW - METAGGA= F non-selfconsistent MetaGGA calc. - - Electronic Relaxation 1 - ENCUT = 600.0 eV 44.10 Ry 6.64 a.u. 7.33 7.11 6.34*2*pi/ulx,y,z - ENINI = 600.0 initial cutoff - ENAUG = 1293.4 eV augmentation charge cutoff - NELM = 100; NELMIN= 2; NELMDL= -5 # of ELM steps - EDIFF = 0.1E-05 stopping-criterion for ELM - LREAL = F real-space projection - NLSPLINE = F spline interpolate recip. space projectors - LCOMPAT= F compatible to vasp.4.4 - GGA_COMPAT = T GGA compatible to vasp.4.4-vasp.4.6 - LMAXPAW = -100 max onsite density - LMAXMIX = 2 max onsite mixed and CHGCAR - VOSKOWN= 0 Vosko Wilk Nusair interpolation - ROPT = 0.00000 0.00000 - Ionic relaxation - EDIFFG = 0.1E-02 stopping-criterion for IOM - NSW = 0 number of steps for IOM - NBLOCK = 1; KBLOCK = 1 inner block; outer block - IBRION = -1 ionic relax: 0-MD 1-quasi-New 2-CG - NFREE = 0 steps in history (QN), initial steepest desc. (CG) - ISIF = 2 stress and relaxation - IWAVPR = 10 prediction: 0-non 1-charg 2-wave 3-comb - ISYM = 2 0-nonsym 1-usesym 2-fastsym - LCORR = T Harris-Foulkes like correction to forces - - POTIM = 0.5000 time-step for ionic-motion - TEIN = 0.0 initial temperature - TEBEG = 3500.0; TEEND =3500.0 temperature during run - SMASS = -3.00 Nose mass-parameter (am) - estimated Nose-frequenzy (Omega) = 0.10E-29 period in steps =****** mass= -0.308E-27a.u. - SCALEE = 1.0000 scale energy and forces - NPACO = 256; APACO = 16.0 distance and # of slots for P.C. - PSTRESS= 0.0 pullay stress - - Mass of Ions in am - POMASS = 183.85 9.01 - Ionic Valenz - ZVAL = 14.00 4.00 - Atomic Wigner-Seitz radii - RWIGS = -1.00 -1.00 - virtual crystal weights - VCA = 1.00 1.00 - NELECT = 26.0000 total number of electrons - NUPDOWN= -1.0000 fix difference up-down - - DOS related values: - EMIN = 10.00; EMAX =-10.00 energy-range for DOS - EFERMI = 0.00 - ISMEAR = 0; SIGMA = 0.10 broadening in eV -4-tet -1-fermi 0-gaus - - Electronic relaxation 2 (details) - IALGO = 48 algorithm - LDIAG = T sub-space diagonalisation (order eigenvalues) - LSUBROT= F optimize rotation matrix (better conditioning) - TURBO = 0 0=normal 1=particle mesh - IRESTART = 0 0=no restart 2=restart with 2 vectors - NREBOOT = 0 no. of reboots - NMIN = 0 reboot dimension - EREF = 0.00 reference energy to select bands - IMIX = 4 mixing-type and parameters - AMIX = 0.40; BMIX = 1.00 - AMIX_MAG = 1.60; BMIX_MAG = 1.00 - AMIN = 0.10 - WC = 100.; INIMIX= 1; MIXPRE= 1; MAXMIX= -45 - - Intra band minimization: - WEIMIN = 0.0000 energy-eigenvalue tresh-hold - EBREAK = 0.14E-07 absolut break condition - DEPER = 0.30 relativ break condition - - TIME = 0.40 timestep for ELM - - volume/ion in A,a.u. = 10.37 69.97 - Fermi-wavevector in a.u.,A,eV,Ry = 1.401149 2.647788 26.711209 1.963218 - Thomas-Fermi vector in A = 2.524039 - - Write flags - LWAVE = T write WAVECAR - LDOWNSAMPLE = F k-point downsampling of WAVECAR - LCHARG = T write CHGCAR - LVTOT = F write LOCPOT, total local potential - LVHAR = F write LOCPOT, Hartree potential only - LELF = F write electronic localiz. function (ELF) - LORBIT = 0 0 simple, 1 ext, 2 COOP (PROOUT), +10 PAW based schemes - - - Dipole corrections - LMONO = F monopole corrections only (constant potential shift) - LDIPOL = F correct potential (dipole corrections) - IDIPOL = 0 1-x, 2-y, 3-z, 4-all directions - EPSILON= 1.0000000 bulk dielectric constant - - Exchange correlation treatment: - GGA = -- GGA type - LEXCH = 8 internal setting for exchange type - VOSKOWN= 0 Vosko Wilk Nusair interpolation - LHFCALC = F Hartree Fock is set to - LHFONE = F Hartree Fock one center treatment - AEXX = 0.0000 exact exchange contribution - - Linear response parameters - LEPSILON= F determine dielectric tensor - LRPA = F only Hartree local field effects (RPA) - LNABLA = F use nabla operator in PAW spheres - LVEL = F velocity operator in full k-point grid - LINTERFAST= F fast interpolation - KINTER = 0 interpolate to denser k-point grid - CSHIFT =0.1000 complex shift for real part using Kramers Kronig - OMEGAMAX= -1.0 maximum frequency - DEG_THRESHOLD= 0.2000000E-02 threshold for treating states as degnerate - RTIME = -0.100 relaxation time in fs - (WPLASMAI= 0.000 imaginary part of plasma frequency in eV, 0.658/RTIME) - DFIELD = 0.0000000 0.0000000 0.0000000 field for delta impulse in time - - Orbital magnetization related: - ORBITALMAG= F switch on orbital magnetization - LCHIMAG = F perturbation theory with respect to B field - DQ = 0.001000 dq finite difference perturbation B field - LLRAUG = F two centre corrections for induced B field - - - --------------------------------------------------------------------------------------------------------- - - - Static calculation - charge density and potential will be updated during run - non-spin polarized calculation - RMM-DIIS sequential band-by-band - perform sub-space diagonalisation - before iterative eigenvector-optimisation - modified Broyden-mixing scheme, WC = 100.0 - initial mixing is a Kerker type mixing with AMIX = 0.4000 and BMIX = 1.0000 - Hartree-type preconditioning will be used - using additional bands 5 - reciprocal scheme for non local part - use partial core corrections - calculate Harris-corrections to forces - (improved forces if not selfconsistent) - use gradient corrections - use of overlap-Matrix (Vanderbilt PP) - Gauss-broadening in eV SIGMA = 0.10 - - --------------------------------------------------------------------------------------------------------- - - - energy-cutoff : 600.00 - volume of cell : 41.47 - direct lattice vectors reciprocal lattice vectors - 3.669611000 0.000000000 0.000000000 0.272508448 0.000000000 0.000000000 - 0.000000000 3.557440000 0.000000000 0.000000000 0.281101016 0.000000000 - 0.000000000 0.000000000 3.176781000 0.000000000 0.000000000 0.314784053 - - length of vectors - 3.669611000 3.557440000 3.176781000 0.272508448 0.281101016 0.314784053 - - - - k-points in units of 2pi/SCALE and weight: K-Points - 0.00000000 0.00000000 0.00000000 0.000 - 0.01816723 0.00000000 0.00000000 0.001 - 0.03633446 0.00000000 0.00000000 0.001 - 0.05450169 0.00000000 0.00000000 0.001 - 0.07266892 0.00000000 0.00000000 0.001 - 0.09083615 0.00000000 0.00000000 0.001 - 0.10900338 0.00000000 0.00000000 0.001 - 0.12717061 0.00000000 0.00000000 0.001 - 0.00000000 0.01874007 0.00000000 0.001 - 0.01816723 0.01874007 0.00000000 0.001 - 0.03633446 0.01874007 0.00000000 0.001 - 0.05450169 0.01874007 0.00000000 0.001 - 0.07266892 0.01874007 0.00000000 0.001 - 0.09083615 0.01874007 0.00000000 0.001 - 0.10900338 0.01874007 0.00000000 0.001 - 0.12717061 0.01874007 0.00000000 0.001 - 0.00000000 0.03748014 0.00000000 0.001 - 0.01816723 0.03748014 0.00000000 0.001 - 0.03633446 0.03748014 0.00000000 0.001 - 0.05450169 0.03748014 0.00000000 0.001 - 0.07266892 0.03748014 0.00000000 0.001 - 0.09083615 0.03748014 0.00000000 0.001 - 0.10900338 0.03748014 0.00000000 0.001 - 0.12717061 0.03748014 0.00000000 0.001 - 0.00000000 0.05622020 0.00000000 0.001 - 0.01816723 0.05622020 0.00000000 0.001 - 0.03633446 0.05622020 0.00000000 0.001 - 0.05450169 0.05622020 0.00000000 0.001 - 0.07266892 0.05622020 0.00000000 0.001 - 0.09083615 0.05622020 0.00000000 0.001 - 0.10900338 0.05622020 0.00000000 0.001 - 0.12717061 0.05622020 0.00000000 0.001 - 0.00000000 0.07496027 0.00000000 0.001 - 0.01816723 0.07496027 0.00000000 0.001 - 0.03633446 0.07496027 0.00000000 0.001 - 0.05450169 0.07496027 0.00000000 0.001 - 0.07266892 0.07496027 0.00000000 0.001 - 0.09083615 0.07496027 0.00000000 0.001 - 0.10900338 0.07496027 0.00000000 0.001 - 0.12717061 0.07496027 0.00000000 0.001 - 0.00000000 0.09370034 0.00000000 0.001 - 0.01816723 0.09370034 0.00000000 0.001 - 0.03633446 0.09370034 0.00000000 0.001 - 0.05450169 0.09370034 0.00000000 0.001 - 0.07266892 0.09370034 0.00000000 0.001 - 0.09083615 0.09370034 0.00000000 0.001 - 0.10900338 0.09370034 0.00000000 0.001 - 0.12717061 0.09370034 0.00000000 0.001 - 0.00000000 0.11244041 0.00000000 0.001 - 0.01816723 0.11244041 0.00000000 0.001 - 0.03633446 0.11244041 0.00000000 0.001 - 0.05450169 0.11244041 0.00000000 0.001 - 0.07266892 0.11244041 0.00000000 0.001 - 0.09083615 0.11244041 0.00000000 0.001 - 0.10900338 0.11244041 0.00000000 0.001 - 0.12717061 0.11244041 0.00000000 0.001 - 0.00000000 0.13118047 0.00000000 0.001 - 0.01816723 0.13118047 0.00000000 0.001 - 0.03633446 0.13118047 0.00000000 0.001 - 0.05450169 0.13118047 0.00000000 0.001 - 0.07266892 0.13118047 0.00000000 0.001 - 0.09083615 0.13118047 0.00000000 0.001 - 0.10900338 0.13118047 0.00000000 0.001 - 0.12717061 0.13118047 0.00000000 0.001 - 0.00000000 0.00000000 0.02098560 0.001 - 0.01816723 0.00000000 0.02098560 0.001 - 0.03633446 0.00000000 0.02098560 0.001 - 0.05450169 0.00000000 0.02098560 0.001 - 0.07266892 0.00000000 0.02098560 0.001 - 0.09083615 0.00000000 0.02098560 0.001 - 0.10900338 0.00000000 0.02098560 0.001 - 0.12717061 0.00000000 0.02098560 0.001 - 0.00000000 0.01874007 0.02098560 0.001 - 0.01816723 0.01874007 0.02098560 0.002 - 0.03633446 0.01874007 0.02098560 0.002 - 0.05450169 0.01874007 0.02098560 0.002 - 0.07266892 0.01874007 0.02098560 0.002 - 0.09083615 0.01874007 0.02098560 0.002 - 0.10900338 0.01874007 0.02098560 0.002 - 0.12717061 0.01874007 0.02098560 0.002 - 0.00000000 0.03748014 0.02098560 0.001 - 0.01816723 0.03748014 0.02098560 0.002 - 0.03633446 0.03748014 0.02098560 0.002 - 0.05450169 0.03748014 0.02098560 0.002 - 0.07266892 0.03748014 0.02098560 0.002 - 0.09083615 0.03748014 0.02098560 0.002 - 0.10900338 0.03748014 0.02098560 0.002 - 0.12717061 0.03748014 0.02098560 0.002 - 0.00000000 0.05622020 0.02098560 0.001 - 0.01816723 0.05622020 0.02098560 0.002 - 0.03633446 0.05622020 0.02098560 0.002 - 0.05450169 0.05622020 0.02098560 0.002 - 0.07266892 0.05622020 0.02098560 0.002 - 0.09083615 0.05622020 0.02098560 0.002 - 0.10900338 0.05622020 0.02098560 0.002 - 0.12717061 0.05622020 0.02098560 0.002 - 0.00000000 0.07496027 0.02098560 0.001 - 0.01816723 0.07496027 0.02098560 0.002 - 0.03633446 0.07496027 0.02098560 0.002 - 0.05450169 0.07496027 0.02098560 0.002 - 0.07266892 0.07496027 0.02098560 0.002 - 0.09083615 0.07496027 0.02098560 0.002 - 0.10900338 0.07496027 0.02098560 0.002 - 0.12717061 0.07496027 0.02098560 0.002 - 0.00000000 0.09370034 0.02098560 0.001 - 0.01816723 0.09370034 0.02098560 0.002 - 0.03633446 0.09370034 0.02098560 0.002 - 0.05450169 0.09370034 0.02098560 0.002 - 0.07266892 0.09370034 0.02098560 0.002 - 0.09083615 0.09370034 0.02098560 0.002 - 0.10900338 0.09370034 0.02098560 0.002 - 0.12717061 0.09370034 0.02098560 0.002 - 0.00000000 0.11244041 0.02098560 0.001 - 0.01816723 0.11244041 0.02098560 0.002 - 0.03633446 0.11244041 0.02098560 0.002 - 0.05450169 0.11244041 0.02098560 0.002 - 0.07266892 0.11244041 0.02098560 0.002 - 0.09083615 0.11244041 0.02098560 0.002 - 0.10900338 0.11244041 0.02098560 0.002 - 0.12717061 0.11244041 0.02098560 0.002 - 0.00000000 0.13118047 0.02098560 0.001 - 0.01816723 0.13118047 0.02098560 0.002 - 0.03633446 0.13118047 0.02098560 0.002 - 0.05450169 0.13118047 0.02098560 0.002 - 0.07266892 0.13118047 0.02098560 0.002 - 0.09083615 0.13118047 0.02098560 0.002 - 0.10900338 0.13118047 0.02098560 0.002 - 0.12717061 0.13118047 0.02098560 0.002 - 0.00000000 0.00000000 0.04197121 0.001 - 0.01816723 0.00000000 0.04197121 0.001 - 0.03633446 0.00000000 0.04197121 0.001 - 0.05450169 0.00000000 0.04197121 0.001 - 0.07266892 0.00000000 0.04197121 0.001 - 0.09083615 0.00000000 0.04197121 0.001 - 0.10900338 0.00000000 0.04197121 0.001 - 0.12717061 0.00000000 0.04197121 0.001 - 0.00000000 0.01874007 0.04197121 0.001 - 0.01816723 0.01874007 0.04197121 0.002 - 0.03633446 0.01874007 0.04197121 0.002 - 0.05450169 0.01874007 0.04197121 0.002 - 0.07266892 0.01874007 0.04197121 0.002 - 0.09083615 0.01874007 0.04197121 0.002 - 0.10900338 0.01874007 0.04197121 0.002 - 0.12717061 0.01874007 0.04197121 0.002 - 0.00000000 0.03748014 0.04197121 0.001 - 0.01816723 0.03748014 0.04197121 0.002 - 0.03633446 0.03748014 0.04197121 0.002 - 0.05450169 0.03748014 0.04197121 0.002 - 0.07266892 0.03748014 0.04197121 0.002 - 0.09083615 0.03748014 0.04197121 0.002 - 0.10900338 0.03748014 0.04197121 0.002 - 0.12717061 0.03748014 0.04197121 0.002 - 0.00000000 0.05622020 0.04197121 0.001 - 0.01816723 0.05622020 0.04197121 0.002 - 0.03633446 0.05622020 0.04197121 0.002 - 0.05450169 0.05622020 0.04197121 0.002 - 0.07266892 0.05622020 0.04197121 0.002 - 0.09083615 0.05622020 0.04197121 0.002 - 0.10900338 0.05622020 0.04197121 0.002 - 0.12717061 0.05622020 0.04197121 0.002 - 0.00000000 0.07496027 0.04197121 0.001 - 0.01816723 0.07496027 0.04197121 0.002 - 0.03633446 0.07496027 0.04197121 0.002 - 0.05450169 0.07496027 0.04197121 0.002 - 0.07266892 0.07496027 0.04197121 0.002 - 0.09083615 0.07496027 0.04197121 0.002 - 0.10900338 0.07496027 0.04197121 0.002 - 0.12717061 0.07496027 0.04197121 0.002 - 0.00000000 0.09370034 0.04197121 0.001 - 0.01816723 0.09370034 0.04197121 0.002 - 0.03633446 0.09370034 0.04197121 0.002 - 0.05450169 0.09370034 0.04197121 0.002 - 0.07266892 0.09370034 0.04197121 0.002 - 0.09083615 0.09370034 0.04197121 0.002 - 0.10900338 0.09370034 0.04197121 0.002 - 0.12717061 0.09370034 0.04197121 0.002 - 0.00000000 0.11244041 0.04197121 0.001 - 0.01816723 0.11244041 0.04197121 0.002 - 0.03633446 0.11244041 0.04197121 0.002 - 0.05450169 0.11244041 0.04197121 0.002 - 0.07266892 0.11244041 0.04197121 0.002 - 0.09083615 0.11244041 0.04197121 0.002 - 0.10900338 0.11244041 0.04197121 0.002 - 0.12717061 0.11244041 0.04197121 0.002 - 0.00000000 0.13118047 0.04197121 0.001 - 0.01816723 0.13118047 0.04197121 0.002 - 0.03633446 0.13118047 0.04197121 0.002 - 0.05450169 0.13118047 0.04197121 0.002 - 0.07266892 0.13118047 0.04197121 0.002 - 0.09083615 0.13118047 0.04197121 0.002 - 0.10900338 0.13118047 0.04197121 0.002 - 0.12717061 0.13118047 0.04197121 0.002 - 0.00000000 0.00000000 0.06295681 0.001 - 0.01816723 0.00000000 0.06295681 0.001 - 0.03633446 0.00000000 0.06295681 0.001 - 0.05450169 0.00000000 0.06295681 0.001 - 0.07266892 0.00000000 0.06295681 0.001 - 0.09083615 0.00000000 0.06295681 0.001 - 0.10900338 0.00000000 0.06295681 0.001 - 0.12717061 0.00000000 0.06295681 0.001 - 0.00000000 0.01874007 0.06295681 0.001 - 0.01816723 0.01874007 0.06295681 0.002 - 0.03633446 0.01874007 0.06295681 0.002 - 0.05450169 0.01874007 0.06295681 0.002 - 0.07266892 0.01874007 0.06295681 0.002 - 0.09083615 0.01874007 0.06295681 0.002 - 0.10900338 0.01874007 0.06295681 0.002 - 0.12717061 0.01874007 0.06295681 0.002 - 0.00000000 0.03748014 0.06295681 0.001 - 0.01816723 0.03748014 0.06295681 0.002 - 0.03633446 0.03748014 0.06295681 0.002 - 0.05450169 0.03748014 0.06295681 0.002 - 0.07266892 0.03748014 0.06295681 0.002 - 0.09083615 0.03748014 0.06295681 0.002 - 0.10900338 0.03748014 0.06295681 0.002 - 0.12717061 0.03748014 0.06295681 0.002 - 0.00000000 0.05622020 0.06295681 0.001 - 0.01816723 0.05622020 0.06295681 0.002 - 0.03633446 0.05622020 0.06295681 0.002 - 0.05450169 0.05622020 0.06295681 0.002 - 0.07266892 0.05622020 0.06295681 0.002 - 0.09083615 0.05622020 0.06295681 0.002 - 0.10900338 0.05622020 0.06295681 0.002 - 0.12717061 0.05622020 0.06295681 0.002 - 0.00000000 0.07496027 0.06295681 0.001 - 0.01816723 0.07496027 0.06295681 0.002 - 0.03633446 0.07496027 0.06295681 0.002 - 0.05450169 0.07496027 0.06295681 0.002 - 0.07266892 0.07496027 0.06295681 0.002 - 0.09083615 0.07496027 0.06295681 0.002 - 0.10900338 0.07496027 0.06295681 0.002 - 0.12717061 0.07496027 0.06295681 0.002 - 0.00000000 0.09370034 0.06295681 0.001 - 0.01816723 0.09370034 0.06295681 0.002 - 0.03633446 0.09370034 0.06295681 0.002 - 0.05450169 0.09370034 0.06295681 0.002 - 0.07266892 0.09370034 0.06295681 0.002 - 0.09083615 0.09370034 0.06295681 0.002 - 0.10900338 0.09370034 0.06295681 0.002 - 0.12717061 0.09370034 0.06295681 0.002 - 0.00000000 0.11244041 0.06295681 0.001 - 0.01816723 0.11244041 0.06295681 0.002 - 0.03633446 0.11244041 0.06295681 0.002 - 0.05450169 0.11244041 0.06295681 0.002 - 0.07266892 0.11244041 0.06295681 0.002 - 0.09083615 0.11244041 0.06295681 0.002 - 0.10900338 0.11244041 0.06295681 0.002 - 0.12717061 0.11244041 0.06295681 0.002 - 0.00000000 0.13118047 0.06295681 0.001 - 0.01816723 0.13118047 0.06295681 0.002 - 0.03633446 0.13118047 0.06295681 0.002 - 0.05450169 0.13118047 0.06295681 0.002 - 0.07266892 0.13118047 0.06295681 0.002 - 0.09083615 0.13118047 0.06295681 0.002 - 0.10900338 0.13118047 0.06295681 0.002 - 0.12717061 0.13118047 0.06295681 0.002 - 0.00000000 0.00000000 0.08394241 0.001 - 0.01816723 0.00000000 0.08394241 0.001 - 0.03633446 0.00000000 0.08394241 0.001 - 0.05450169 0.00000000 0.08394241 0.001 - 0.07266892 0.00000000 0.08394241 0.001 - 0.09083615 0.00000000 0.08394241 0.001 - 0.10900338 0.00000000 0.08394241 0.001 - 0.12717061 0.00000000 0.08394241 0.001 - 0.00000000 0.01874007 0.08394241 0.001 - 0.01816723 0.01874007 0.08394241 0.002 - 0.03633446 0.01874007 0.08394241 0.002 - 0.05450169 0.01874007 0.08394241 0.002 - 0.07266892 0.01874007 0.08394241 0.002 - 0.09083615 0.01874007 0.08394241 0.002 - 0.10900338 0.01874007 0.08394241 0.002 - 0.12717061 0.01874007 0.08394241 0.002 - 0.00000000 0.03748014 0.08394241 0.001 - 0.01816723 0.03748014 0.08394241 0.002 - 0.03633446 0.03748014 0.08394241 0.002 - 0.05450169 0.03748014 0.08394241 0.002 - 0.07266892 0.03748014 0.08394241 0.002 - 0.09083615 0.03748014 0.08394241 0.002 - 0.10900338 0.03748014 0.08394241 0.002 - 0.12717061 0.03748014 0.08394241 0.002 - 0.00000000 0.05622020 0.08394241 0.001 - 0.01816723 0.05622020 0.08394241 0.002 - 0.03633446 0.05622020 0.08394241 0.002 - 0.05450169 0.05622020 0.08394241 0.002 - 0.07266892 0.05622020 0.08394241 0.002 - 0.09083615 0.05622020 0.08394241 0.002 - 0.10900338 0.05622020 0.08394241 0.002 - 0.12717061 0.05622020 0.08394241 0.002 - 0.00000000 0.07496027 0.08394241 0.001 - 0.01816723 0.07496027 0.08394241 0.002 - 0.03633446 0.07496027 0.08394241 0.002 - 0.05450169 0.07496027 0.08394241 0.002 - 0.07266892 0.07496027 0.08394241 0.002 - 0.09083615 0.07496027 0.08394241 0.002 - 0.10900338 0.07496027 0.08394241 0.002 - 0.12717061 0.07496027 0.08394241 0.002 - 0.00000000 0.09370034 0.08394241 0.001 - 0.01816723 0.09370034 0.08394241 0.002 - 0.03633446 0.09370034 0.08394241 0.002 - 0.05450169 0.09370034 0.08394241 0.002 - 0.07266892 0.09370034 0.08394241 0.002 - 0.09083615 0.09370034 0.08394241 0.002 - 0.10900338 0.09370034 0.08394241 0.002 - 0.12717061 0.09370034 0.08394241 0.002 - 0.00000000 0.11244041 0.08394241 0.001 - 0.01816723 0.11244041 0.08394241 0.002 - 0.03633446 0.11244041 0.08394241 0.002 - 0.05450169 0.11244041 0.08394241 0.002 - 0.07266892 0.11244041 0.08394241 0.002 - 0.09083615 0.11244041 0.08394241 0.002 - 0.10900338 0.11244041 0.08394241 0.002 - 0.12717061 0.11244041 0.08394241 0.002 - 0.00000000 0.13118047 0.08394241 0.001 - 0.01816723 0.13118047 0.08394241 0.002 - 0.03633446 0.13118047 0.08394241 0.002 - 0.05450169 0.13118047 0.08394241 0.002 - 0.07266892 0.13118047 0.08394241 0.002 - 0.09083615 0.13118047 0.08394241 0.002 - 0.10900338 0.13118047 0.08394241 0.002 - 0.12717061 0.13118047 0.08394241 0.002 - 0.00000000 0.00000000 0.10492802 0.001 - 0.01816723 0.00000000 0.10492802 0.001 - 0.03633446 0.00000000 0.10492802 0.001 - 0.05450169 0.00000000 0.10492802 0.001 - 0.07266892 0.00000000 0.10492802 0.001 - 0.09083615 0.00000000 0.10492802 0.001 - 0.10900338 0.00000000 0.10492802 0.001 - 0.12717061 0.00000000 0.10492802 0.001 - 0.00000000 0.01874007 0.10492802 0.001 - 0.01816723 0.01874007 0.10492802 0.002 - 0.03633446 0.01874007 0.10492802 0.002 - 0.05450169 0.01874007 0.10492802 0.002 - 0.07266892 0.01874007 0.10492802 0.002 - 0.09083615 0.01874007 0.10492802 0.002 - 0.10900338 0.01874007 0.10492802 0.002 - 0.12717061 0.01874007 0.10492802 0.002 - 0.00000000 0.03748014 0.10492802 0.001 - 0.01816723 0.03748014 0.10492802 0.002 - 0.03633446 0.03748014 0.10492802 0.002 - 0.05450169 0.03748014 0.10492802 0.002 - 0.07266892 0.03748014 0.10492802 0.002 - 0.09083615 0.03748014 0.10492802 0.002 - 0.10900338 0.03748014 0.10492802 0.002 - 0.12717061 0.03748014 0.10492802 0.002 - 0.00000000 0.05622020 0.10492802 0.001 - 0.01816723 0.05622020 0.10492802 0.002 - 0.03633446 0.05622020 0.10492802 0.002 - 0.05450169 0.05622020 0.10492802 0.002 - 0.07266892 0.05622020 0.10492802 0.002 - 0.09083615 0.05622020 0.10492802 0.002 - 0.10900338 0.05622020 0.10492802 0.002 - 0.12717061 0.05622020 0.10492802 0.002 - 0.00000000 0.07496027 0.10492802 0.001 - 0.01816723 0.07496027 0.10492802 0.002 - 0.03633446 0.07496027 0.10492802 0.002 - 0.05450169 0.07496027 0.10492802 0.002 - 0.07266892 0.07496027 0.10492802 0.002 - 0.09083615 0.07496027 0.10492802 0.002 - 0.10900338 0.07496027 0.10492802 0.002 - 0.12717061 0.07496027 0.10492802 0.002 - 0.00000000 0.09370034 0.10492802 0.001 - 0.01816723 0.09370034 0.10492802 0.002 - 0.03633446 0.09370034 0.10492802 0.002 - 0.05450169 0.09370034 0.10492802 0.002 - 0.07266892 0.09370034 0.10492802 0.002 - 0.09083615 0.09370034 0.10492802 0.002 - 0.10900338 0.09370034 0.10492802 0.002 - 0.12717061 0.09370034 0.10492802 0.002 - 0.00000000 0.11244041 0.10492802 0.001 - 0.01816723 0.11244041 0.10492802 0.002 - 0.03633446 0.11244041 0.10492802 0.002 - 0.05450169 0.11244041 0.10492802 0.002 - 0.07266892 0.11244041 0.10492802 0.002 - 0.09083615 0.11244041 0.10492802 0.002 - 0.10900338 0.11244041 0.10492802 0.002 - 0.12717061 0.11244041 0.10492802 0.002 - 0.00000000 0.13118047 0.10492802 0.001 - 0.01816723 0.13118047 0.10492802 0.002 - 0.03633446 0.13118047 0.10492802 0.002 - 0.05450169 0.13118047 0.10492802 0.002 - 0.07266892 0.13118047 0.10492802 0.002 - 0.09083615 0.13118047 0.10492802 0.002 - 0.10900338 0.13118047 0.10492802 0.002 - 0.12717061 0.13118047 0.10492802 0.002 - 0.00000000 0.00000000 0.12591362 0.001 - 0.01816723 0.00000000 0.12591362 0.001 - 0.03633446 0.00000000 0.12591362 0.001 - 0.05450169 0.00000000 0.12591362 0.001 - 0.07266892 0.00000000 0.12591362 0.001 - 0.09083615 0.00000000 0.12591362 0.001 - 0.10900338 0.00000000 0.12591362 0.001 - 0.12717061 0.00000000 0.12591362 0.001 - 0.00000000 0.01874007 0.12591362 0.001 - 0.01816723 0.01874007 0.12591362 0.002 - 0.03633446 0.01874007 0.12591362 0.002 - 0.05450169 0.01874007 0.12591362 0.002 - 0.07266892 0.01874007 0.12591362 0.002 - 0.09083615 0.01874007 0.12591362 0.002 - 0.10900338 0.01874007 0.12591362 0.002 - 0.12717061 0.01874007 0.12591362 0.002 - 0.00000000 0.03748014 0.12591362 0.001 - 0.01816723 0.03748014 0.12591362 0.002 - 0.03633446 0.03748014 0.12591362 0.002 - 0.05450169 0.03748014 0.12591362 0.002 - 0.07266892 0.03748014 0.12591362 0.002 - 0.09083615 0.03748014 0.12591362 0.002 - 0.10900338 0.03748014 0.12591362 0.002 - 0.12717061 0.03748014 0.12591362 0.002 - 0.00000000 0.05622020 0.12591362 0.001 - 0.01816723 0.05622020 0.12591362 0.002 - 0.03633446 0.05622020 0.12591362 0.002 - 0.05450169 0.05622020 0.12591362 0.002 - 0.07266892 0.05622020 0.12591362 0.002 - 0.09083615 0.05622020 0.12591362 0.002 - 0.10900338 0.05622020 0.12591362 0.002 - 0.12717061 0.05622020 0.12591362 0.002 - 0.00000000 0.07496027 0.12591362 0.001 - 0.01816723 0.07496027 0.12591362 0.002 - 0.03633446 0.07496027 0.12591362 0.002 - 0.05450169 0.07496027 0.12591362 0.002 - 0.07266892 0.07496027 0.12591362 0.002 - 0.09083615 0.07496027 0.12591362 0.002 - 0.10900338 0.07496027 0.12591362 0.002 - 0.12717061 0.07496027 0.12591362 0.002 - 0.00000000 0.09370034 0.12591362 0.001 - 0.01816723 0.09370034 0.12591362 0.002 - 0.03633446 0.09370034 0.12591362 0.002 - 0.05450169 0.09370034 0.12591362 0.002 - 0.07266892 0.09370034 0.12591362 0.002 - 0.09083615 0.09370034 0.12591362 0.002 - 0.10900338 0.09370034 0.12591362 0.002 - 0.12717061 0.09370034 0.12591362 0.002 - 0.00000000 0.11244041 0.12591362 0.001 - 0.01816723 0.11244041 0.12591362 0.002 - 0.03633446 0.11244041 0.12591362 0.002 - 0.05450169 0.11244041 0.12591362 0.002 - 0.07266892 0.11244041 0.12591362 0.002 - 0.09083615 0.11244041 0.12591362 0.002 - 0.10900338 0.11244041 0.12591362 0.002 - 0.12717061 0.11244041 0.12591362 0.002 - 0.00000000 0.13118047 0.12591362 0.001 - 0.01816723 0.13118047 0.12591362 0.002 - 0.03633446 0.13118047 0.12591362 0.002 - 0.05450169 0.13118047 0.12591362 0.002 - 0.07266892 0.13118047 0.12591362 0.002 - 0.09083615 0.13118047 0.12591362 0.002 - 0.10900338 0.13118047 0.12591362 0.002 - 0.12717061 0.13118047 0.12591362 0.002 - 0.00000000 0.00000000 0.14689922 0.001 - 0.01816723 0.00000000 0.14689922 0.001 - 0.03633446 0.00000000 0.14689922 0.001 - 0.05450169 0.00000000 0.14689922 0.001 - 0.07266892 0.00000000 0.14689922 0.001 - 0.09083615 0.00000000 0.14689922 0.001 - 0.10900338 0.00000000 0.14689922 0.001 - 0.12717061 0.00000000 0.14689922 0.001 - 0.00000000 0.01874007 0.14689922 0.001 - 0.01816723 0.01874007 0.14689922 0.002 - 0.03633446 0.01874007 0.14689922 0.002 - 0.05450169 0.01874007 0.14689922 0.002 - 0.07266892 0.01874007 0.14689922 0.002 - 0.09083615 0.01874007 0.14689922 0.002 - 0.10900338 0.01874007 0.14689922 0.002 - 0.12717061 0.01874007 0.14689922 0.002 - 0.00000000 0.03748014 0.14689922 0.001 - 0.01816723 0.03748014 0.14689922 0.002 - 0.03633446 0.03748014 0.14689922 0.002 - 0.05450169 0.03748014 0.14689922 0.002 - 0.07266892 0.03748014 0.14689922 0.002 - 0.09083615 0.03748014 0.14689922 0.002 - 0.10900338 0.03748014 0.14689922 0.002 - 0.12717061 0.03748014 0.14689922 0.002 - 0.00000000 0.05622020 0.14689922 0.001 - 0.01816723 0.05622020 0.14689922 0.002 - 0.03633446 0.05622020 0.14689922 0.002 - 0.05450169 0.05622020 0.14689922 0.002 - 0.07266892 0.05622020 0.14689922 0.002 - 0.09083615 0.05622020 0.14689922 0.002 - 0.10900338 0.05622020 0.14689922 0.002 - 0.12717061 0.05622020 0.14689922 0.002 - 0.00000000 0.07496027 0.14689922 0.001 - 0.01816723 0.07496027 0.14689922 0.002 - 0.03633446 0.07496027 0.14689922 0.002 - 0.05450169 0.07496027 0.14689922 0.002 - 0.07266892 0.07496027 0.14689922 0.002 - 0.09083615 0.07496027 0.14689922 0.002 - 0.10900338 0.07496027 0.14689922 0.002 - 0.12717061 0.07496027 0.14689922 0.002 - 0.00000000 0.09370034 0.14689922 0.001 - 0.01816723 0.09370034 0.14689922 0.002 - 0.03633446 0.09370034 0.14689922 0.002 - 0.05450169 0.09370034 0.14689922 0.002 - 0.07266892 0.09370034 0.14689922 0.002 - 0.09083615 0.09370034 0.14689922 0.002 - 0.10900338 0.09370034 0.14689922 0.002 - 0.12717061 0.09370034 0.14689922 0.002 - 0.00000000 0.11244041 0.14689922 0.001 - 0.01816723 0.11244041 0.14689922 0.002 - 0.03633446 0.11244041 0.14689922 0.002 - 0.05450169 0.11244041 0.14689922 0.002 - 0.07266892 0.11244041 0.14689922 0.002 - 0.09083615 0.11244041 0.14689922 0.002 - 0.10900338 0.11244041 0.14689922 0.002 - 0.12717061 0.11244041 0.14689922 0.002 - 0.00000000 0.13118047 0.14689922 0.001 - 0.01816723 0.13118047 0.14689922 0.002 - 0.03633446 0.13118047 0.14689922 0.002 - 0.05450169 0.13118047 0.14689922 0.002 - 0.07266892 0.13118047 0.14689922 0.002 - 0.09083615 0.13118047 0.14689922 0.002 - 0.10900338 0.13118047 0.14689922 0.002 - 0.12717061 0.13118047 0.14689922 0.002 - - k-points in reciprocal lattice and weights: K-Points - 0.00000000 0.00000000 0.00000000 0.000 - 0.06666667 0.00000000 0.00000000 0.001 - 0.13333333 0.00000000 0.00000000 0.001 - 0.20000000 0.00000000 0.00000000 0.001 - 0.26666667 0.00000000 0.00000000 0.001 - 0.33333333 0.00000000 0.00000000 0.001 - 0.40000000 0.00000000 0.00000000 0.001 - 0.46666667 0.00000000 0.00000000 0.001 - 0.00000000 0.06666667 0.00000000 0.001 - 0.06666667 0.06666667 0.00000000 0.001 - 0.13333333 0.06666667 0.00000000 0.001 - 0.20000000 0.06666667 0.00000000 0.001 - 0.26666667 0.06666667 0.00000000 0.001 - 0.33333333 0.06666667 0.00000000 0.001 - 0.40000000 0.06666667 0.00000000 0.001 - 0.46666667 0.06666667 0.00000000 0.001 - 0.00000000 0.13333333 0.00000000 0.001 - 0.06666667 0.13333333 0.00000000 0.001 - 0.13333333 0.13333333 0.00000000 0.001 - 0.20000000 0.13333333 0.00000000 0.001 - 0.26666667 0.13333333 0.00000000 0.001 - 0.33333333 0.13333333 0.00000000 0.001 - 0.40000000 0.13333333 0.00000000 0.001 - 0.46666667 0.13333333 0.00000000 0.001 - 0.00000000 0.20000000 0.00000000 0.001 - 0.06666667 0.20000000 0.00000000 0.001 - 0.13333333 0.20000000 0.00000000 0.001 - 0.20000000 0.20000000 0.00000000 0.001 - 0.26666667 0.20000000 0.00000000 0.001 - 0.33333333 0.20000000 0.00000000 0.001 - 0.40000000 0.20000000 0.00000000 0.001 - 0.46666667 0.20000000 0.00000000 0.001 - 0.00000000 0.26666667 0.00000000 0.001 - 0.06666667 0.26666667 0.00000000 0.001 - 0.13333333 0.26666667 0.00000000 0.001 - 0.20000000 0.26666667 0.00000000 0.001 - 0.26666667 0.26666667 0.00000000 0.001 - 0.33333333 0.26666667 0.00000000 0.001 - 0.40000000 0.26666667 0.00000000 0.001 - 0.46666667 0.26666667 0.00000000 0.001 - 0.00000000 0.33333333 0.00000000 0.001 - 0.06666667 0.33333333 0.00000000 0.001 - 0.13333333 0.33333333 0.00000000 0.001 - 0.20000000 0.33333333 0.00000000 0.001 - 0.26666667 0.33333333 0.00000000 0.001 - 0.33333333 0.33333333 0.00000000 0.001 - 0.40000000 0.33333333 0.00000000 0.001 - 0.46666667 0.33333333 0.00000000 0.001 - 0.00000000 0.40000000 0.00000000 0.001 - 0.06666667 0.40000000 0.00000000 0.001 - 0.13333333 0.40000000 0.00000000 0.001 - 0.20000000 0.40000000 0.00000000 0.001 - 0.26666667 0.40000000 0.00000000 0.001 - 0.33333333 0.40000000 0.00000000 0.001 - 0.40000000 0.40000000 0.00000000 0.001 - 0.46666667 0.40000000 0.00000000 0.001 - 0.00000000 0.46666667 0.00000000 0.001 - 0.06666667 0.46666667 0.00000000 0.001 - 0.13333333 0.46666667 0.00000000 0.001 - 0.20000000 0.46666667 0.00000000 0.001 - 0.26666667 0.46666667 0.00000000 0.001 - 0.33333333 0.46666667 0.00000000 0.001 - 0.40000000 0.46666667 0.00000000 0.001 - 0.46666667 0.46666667 0.00000000 0.001 - 0.00000000 0.00000000 0.06666667 0.001 - 0.06666667 0.00000000 0.06666667 0.001 - 0.13333333 0.00000000 0.06666667 0.001 - 0.20000000 0.00000000 0.06666667 0.001 - 0.26666667 0.00000000 0.06666667 0.001 - 0.33333333 0.00000000 0.06666667 0.001 - 0.40000000 0.00000000 0.06666667 0.001 - 0.46666667 0.00000000 0.06666667 0.001 - 0.00000000 0.06666667 0.06666667 0.001 - 0.06666667 0.06666667 0.06666667 0.002 - 0.13333333 0.06666667 0.06666667 0.002 - 0.20000000 0.06666667 0.06666667 0.002 - 0.26666667 0.06666667 0.06666667 0.002 - 0.33333333 0.06666667 0.06666667 0.002 - 0.40000000 0.06666667 0.06666667 0.002 - 0.46666667 0.06666667 0.06666667 0.002 - 0.00000000 0.13333333 0.06666667 0.001 - 0.06666667 0.13333333 0.06666667 0.002 - 0.13333333 0.13333333 0.06666667 0.002 - 0.20000000 0.13333333 0.06666667 0.002 - 0.26666667 0.13333333 0.06666667 0.002 - 0.33333333 0.13333333 0.06666667 0.002 - 0.40000000 0.13333333 0.06666667 0.002 - 0.46666667 0.13333333 0.06666667 0.002 - 0.00000000 0.20000000 0.06666667 0.001 - 0.06666667 0.20000000 0.06666667 0.002 - 0.13333333 0.20000000 0.06666667 0.002 - 0.20000000 0.20000000 0.06666667 0.002 - 0.26666667 0.20000000 0.06666667 0.002 - 0.33333333 0.20000000 0.06666667 0.002 - 0.40000000 0.20000000 0.06666667 0.002 - 0.46666667 0.20000000 0.06666667 0.002 - 0.00000000 0.26666667 0.06666667 0.001 - 0.06666667 0.26666667 0.06666667 0.002 - 0.13333333 0.26666667 0.06666667 0.002 - 0.20000000 0.26666667 0.06666667 0.002 - 0.26666667 0.26666667 0.06666667 0.002 - 0.33333333 0.26666667 0.06666667 0.002 - 0.40000000 0.26666667 0.06666667 0.002 - 0.46666667 0.26666667 0.06666667 0.002 - 0.00000000 0.33333333 0.06666667 0.001 - 0.06666667 0.33333333 0.06666667 0.002 - 0.13333333 0.33333333 0.06666667 0.002 - 0.20000000 0.33333333 0.06666667 0.002 - 0.26666667 0.33333333 0.06666667 0.002 - 0.33333333 0.33333333 0.06666667 0.002 - 0.40000000 0.33333333 0.06666667 0.002 - 0.46666667 0.33333333 0.06666667 0.002 - 0.00000000 0.40000000 0.06666667 0.001 - 0.06666667 0.40000000 0.06666667 0.002 - 0.13333333 0.40000000 0.06666667 0.002 - 0.20000000 0.40000000 0.06666667 0.002 - 0.26666667 0.40000000 0.06666667 0.002 - 0.33333333 0.40000000 0.06666667 0.002 - 0.40000000 0.40000000 0.06666667 0.002 - 0.46666667 0.40000000 0.06666667 0.002 - 0.00000000 0.46666667 0.06666667 0.001 - 0.06666667 0.46666667 0.06666667 0.002 - 0.13333333 0.46666667 0.06666667 0.002 - 0.20000000 0.46666667 0.06666667 0.002 - 0.26666667 0.46666667 0.06666667 0.002 - 0.33333333 0.46666667 0.06666667 0.002 - 0.40000000 0.46666667 0.06666667 0.002 - 0.46666667 0.46666667 0.06666667 0.002 - 0.00000000 0.00000000 0.13333333 0.001 - 0.06666667 0.00000000 0.13333333 0.001 - 0.13333333 0.00000000 0.13333333 0.001 - 0.20000000 0.00000000 0.13333333 0.001 - 0.26666667 0.00000000 0.13333333 0.001 - 0.33333333 0.00000000 0.13333333 0.001 - 0.40000000 0.00000000 0.13333333 0.001 - 0.46666667 0.00000000 0.13333333 0.001 - 0.00000000 0.06666667 0.13333333 0.001 - 0.06666667 0.06666667 0.13333333 0.002 - 0.13333333 0.06666667 0.13333333 0.002 - 0.20000000 0.06666667 0.13333333 0.002 - 0.26666667 0.06666667 0.13333333 0.002 - 0.33333333 0.06666667 0.13333333 0.002 - 0.40000000 0.06666667 0.13333333 0.002 - 0.46666667 0.06666667 0.13333333 0.002 - 0.00000000 0.13333333 0.13333333 0.001 - 0.06666667 0.13333333 0.13333333 0.002 - 0.13333333 0.13333333 0.13333333 0.002 - 0.20000000 0.13333333 0.13333333 0.002 - 0.26666667 0.13333333 0.13333333 0.002 - 0.33333333 0.13333333 0.13333333 0.002 - 0.40000000 0.13333333 0.13333333 0.002 - 0.46666667 0.13333333 0.13333333 0.002 - 0.00000000 0.20000000 0.13333333 0.001 - 0.06666667 0.20000000 0.13333333 0.002 - 0.13333333 0.20000000 0.13333333 0.002 - 0.20000000 0.20000000 0.13333333 0.002 - 0.26666667 0.20000000 0.13333333 0.002 - 0.33333333 0.20000000 0.13333333 0.002 - 0.40000000 0.20000000 0.13333333 0.002 - 0.46666667 0.20000000 0.13333333 0.002 - 0.00000000 0.26666667 0.13333333 0.001 - 0.06666667 0.26666667 0.13333333 0.002 - 0.13333333 0.26666667 0.13333333 0.002 - 0.20000000 0.26666667 0.13333333 0.002 - 0.26666667 0.26666667 0.13333333 0.002 - 0.33333333 0.26666667 0.13333333 0.002 - 0.40000000 0.26666667 0.13333333 0.002 - 0.46666667 0.26666667 0.13333333 0.002 - 0.00000000 0.33333333 0.13333333 0.001 - 0.06666667 0.33333333 0.13333333 0.002 - 0.13333333 0.33333333 0.13333333 0.002 - 0.20000000 0.33333333 0.13333333 0.002 - 0.26666667 0.33333333 0.13333333 0.002 - 0.33333333 0.33333333 0.13333333 0.002 - 0.40000000 0.33333333 0.13333333 0.002 - 0.46666667 0.33333333 0.13333333 0.002 - 0.00000000 0.40000000 0.13333333 0.001 - 0.06666667 0.40000000 0.13333333 0.002 - 0.13333333 0.40000000 0.13333333 0.002 - 0.20000000 0.40000000 0.13333333 0.002 - 0.26666667 0.40000000 0.13333333 0.002 - 0.33333333 0.40000000 0.13333333 0.002 - 0.40000000 0.40000000 0.13333333 0.002 - 0.46666667 0.40000000 0.13333333 0.002 - 0.00000000 0.46666667 0.13333333 0.001 - 0.06666667 0.46666667 0.13333333 0.002 - 0.13333333 0.46666667 0.13333333 0.002 - 0.20000000 0.46666667 0.13333333 0.002 - 0.26666667 0.46666667 0.13333333 0.002 - 0.33333333 0.46666667 0.13333333 0.002 - 0.40000000 0.46666667 0.13333333 0.002 - 0.46666667 0.46666667 0.13333333 0.002 - 0.00000000 0.00000000 0.20000000 0.001 - 0.06666667 0.00000000 0.20000000 0.001 - 0.13333333 0.00000000 0.20000000 0.001 - 0.20000000 0.00000000 0.20000000 0.001 - 0.26666667 0.00000000 0.20000000 0.001 - 0.33333333 0.00000000 0.20000000 0.001 - 0.40000000 0.00000000 0.20000000 0.001 - 0.46666667 0.00000000 0.20000000 0.001 - 0.00000000 0.06666667 0.20000000 0.001 - 0.06666667 0.06666667 0.20000000 0.002 - 0.13333333 0.06666667 0.20000000 0.002 - 0.20000000 0.06666667 0.20000000 0.002 - 0.26666667 0.06666667 0.20000000 0.002 - 0.33333333 0.06666667 0.20000000 0.002 - 0.40000000 0.06666667 0.20000000 0.002 - 0.46666667 0.06666667 0.20000000 0.002 - 0.00000000 0.13333333 0.20000000 0.001 - 0.06666667 0.13333333 0.20000000 0.002 - 0.13333333 0.13333333 0.20000000 0.002 - 0.20000000 0.13333333 0.20000000 0.002 - 0.26666667 0.13333333 0.20000000 0.002 - 0.33333333 0.13333333 0.20000000 0.002 - 0.40000000 0.13333333 0.20000000 0.002 - 0.46666667 0.13333333 0.20000000 0.002 - 0.00000000 0.20000000 0.20000000 0.001 - 0.06666667 0.20000000 0.20000000 0.002 - 0.13333333 0.20000000 0.20000000 0.002 - 0.20000000 0.20000000 0.20000000 0.002 - 0.26666667 0.20000000 0.20000000 0.002 - 0.33333333 0.20000000 0.20000000 0.002 - 0.40000000 0.20000000 0.20000000 0.002 - 0.46666667 0.20000000 0.20000000 0.002 - 0.00000000 0.26666667 0.20000000 0.001 - 0.06666667 0.26666667 0.20000000 0.002 - 0.13333333 0.26666667 0.20000000 0.002 - 0.20000000 0.26666667 0.20000000 0.002 - 0.26666667 0.26666667 0.20000000 0.002 - 0.33333333 0.26666667 0.20000000 0.002 - 0.40000000 0.26666667 0.20000000 0.002 - 0.46666667 0.26666667 0.20000000 0.002 - 0.00000000 0.33333333 0.20000000 0.001 - 0.06666667 0.33333333 0.20000000 0.002 - 0.13333333 0.33333333 0.20000000 0.002 - 0.20000000 0.33333333 0.20000000 0.002 - 0.26666667 0.33333333 0.20000000 0.002 - 0.33333333 0.33333333 0.20000000 0.002 - 0.40000000 0.33333333 0.20000000 0.002 - 0.46666667 0.33333333 0.20000000 0.002 - 0.00000000 0.40000000 0.20000000 0.001 - 0.06666667 0.40000000 0.20000000 0.002 - 0.13333333 0.40000000 0.20000000 0.002 - 0.20000000 0.40000000 0.20000000 0.002 - 0.26666667 0.40000000 0.20000000 0.002 - 0.33333333 0.40000000 0.20000000 0.002 - 0.40000000 0.40000000 0.20000000 0.002 - 0.46666667 0.40000000 0.20000000 0.002 - 0.00000000 0.46666667 0.20000000 0.001 - 0.06666667 0.46666667 0.20000000 0.002 - 0.13333333 0.46666667 0.20000000 0.002 - 0.20000000 0.46666667 0.20000000 0.002 - 0.26666667 0.46666667 0.20000000 0.002 - 0.33333333 0.46666667 0.20000000 0.002 - 0.40000000 0.46666667 0.20000000 0.002 - 0.46666667 0.46666667 0.20000000 0.002 - 0.00000000 0.00000000 0.26666667 0.001 - 0.06666667 0.00000000 0.26666667 0.001 - 0.13333333 0.00000000 0.26666667 0.001 - 0.20000000 0.00000000 0.26666667 0.001 - 0.26666667 0.00000000 0.26666667 0.001 - 0.33333333 0.00000000 0.26666667 0.001 - 0.40000000 0.00000000 0.26666667 0.001 - 0.46666667 0.00000000 0.26666667 0.001 - 0.00000000 0.06666667 0.26666667 0.001 - 0.06666667 0.06666667 0.26666667 0.002 - 0.13333333 0.06666667 0.26666667 0.002 - 0.20000000 0.06666667 0.26666667 0.002 - 0.26666667 0.06666667 0.26666667 0.002 - 0.33333333 0.06666667 0.26666667 0.002 - 0.40000000 0.06666667 0.26666667 0.002 - 0.46666667 0.06666667 0.26666667 0.002 - 0.00000000 0.13333333 0.26666667 0.001 - 0.06666667 0.13333333 0.26666667 0.002 - 0.13333333 0.13333333 0.26666667 0.002 - 0.20000000 0.13333333 0.26666667 0.002 - 0.26666667 0.13333333 0.26666667 0.002 - 0.33333333 0.13333333 0.26666667 0.002 - 0.40000000 0.13333333 0.26666667 0.002 - 0.46666667 0.13333333 0.26666667 0.002 - 0.00000000 0.20000000 0.26666667 0.001 - 0.06666667 0.20000000 0.26666667 0.002 - 0.13333333 0.20000000 0.26666667 0.002 - 0.20000000 0.20000000 0.26666667 0.002 - 0.26666667 0.20000000 0.26666667 0.002 - 0.33333333 0.20000000 0.26666667 0.002 - 0.40000000 0.20000000 0.26666667 0.002 - 0.46666667 0.20000000 0.26666667 0.002 - 0.00000000 0.26666667 0.26666667 0.001 - 0.06666667 0.26666667 0.26666667 0.002 - 0.13333333 0.26666667 0.26666667 0.002 - 0.20000000 0.26666667 0.26666667 0.002 - 0.26666667 0.26666667 0.26666667 0.002 - 0.33333333 0.26666667 0.26666667 0.002 - 0.40000000 0.26666667 0.26666667 0.002 - 0.46666667 0.26666667 0.26666667 0.002 - 0.00000000 0.33333333 0.26666667 0.001 - 0.06666667 0.33333333 0.26666667 0.002 - 0.13333333 0.33333333 0.26666667 0.002 - 0.20000000 0.33333333 0.26666667 0.002 - 0.26666667 0.33333333 0.26666667 0.002 - 0.33333333 0.33333333 0.26666667 0.002 - 0.40000000 0.33333333 0.26666667 0.002 - 0.46666667 0.33333333 0.26666667 0.002 - 0.00000000 0.40000000 0.26666667 0.001 - 0.06666667 0.40000000 0.26666667 0.002 - 0.13333333 0.40000000 0.26666667 0.002 - 0.20000000 0.40000000 0.26666667 0.002 - 0.26666667 0.40000000 0.26666667 0.002 - 0.33333333 0.40000000 0.26666667 0.002 - 0.40000000 0.40000000 0.26666667 0.002 - 0.46666667 0.40000000 0.26666667 0.002 - 0.00000000 0.46666667 0.26666667 0.001 - 0.06666667 0.46666667 0.26666667 0.002 - 0.13333333 0.46666667 0.26666667 0.002 - 0.20000000 0.46666667 0.26666667 0.002 - 0.26666667 0.46666667 0.26666667 0.002 - 0.33333333 0.46666667 0.26666667 0.002 - 0.40000000 0.46666667 0.26666667 0.002 - 0.46666667 0.46666667 0.26666667 0.002 - 0.00000000 0.00000000 0.33333333 0.001 - 0.06666667 0.00000000 0.33333333 0.001 - 0.13333333 0.00000000 0.33333333 0.001 - 0.20000000 0.00000000 0.33333333 0.001 - 0.26666667 0.00000000 0.33333333 0.001 - 0.33333333 0.00000000 0.33333333 0.001 - 0.40000000 0.00000000 0.33333333 0.001 - 0.46666667 0.00000000 0.33333333 0.001 - 0.00000000 0.06666667 0.33333333 0.001 - 0.06666667 0.06666667 0.33333333 0.002 - 0.13333333 0.06666667 0.33333333 0.002 - 0.20000000 0.06666667 0.33333333 0.002 - 0.26666667 0.06666667 0.33333333 0.002 - 0.33333333 0.06666667 0.33333333 0.002 - 0.40000000 0.06666667 0.33333333 0.002 - 0.46666667 0.06666667 0.33333333 0.002 - 0.00000000 0.13333333 0.33333333 0.001 - 0.06666667 0.13333333 0.33333333 0.002 - 0.13333333 0.13333333 0.33333333 0.002 - 0.20000000 0.13333333 0.33333333 0.002 - 0.26666667 0.13333333 0.33333333 0.002 - 0.33333333 0.13333333 0.33333333 0.002 - 0.40000000 0.13333333 0.33333333 0.002 - 0.46666667 0.13333333 0.33333333 0.002 - 0.00000000 0.20000000 0.33333333 0.001 - 0.06666667 0.20000000 0.33333333 0.002 - 0.13333333 0.20000000 0.33333333 0.002 - 0.20000000 0.20000000 0.33333333 0.002 - 0.26666667 0.20000000 0.33333333 0.002 - 0.33333333 0.20000000 0.33333333 0.002 - 0.40000000 0.20000000 0.33333333 0.002 - 0.46666667 0.20000000 0.33333333 0.002 - 0.00000000 0.26666667 0.33333333 0.001 - 0.06666667 0.26666667 0.33333333 0.002 - 0.13333333 0.26666667 0.33333333 0.002 - 0.20000000 0.26666667 0.33333333 0.002 - 0.26666667 0.26666667 0.33333333 0.002 - 0.33333333 0.26666667 0.33333333 0.002 - 0.40000000 0.26666667 0.33333333 0.002 - 0.46666667 0.26666667 0.33333333 0.002 - 0.00000000 0.33333333 0.33333333 0.001 - 0.06666667 0.33333333 0.33333333 0.002 - 0.13333333 0.33333333 0.33333333 0.002 - 0.20000000 0.33333333 0.33333333 0.002 - 0.26666667 0.33333333 0.33333333 0.002 - 0.33333333 0.33333333 0.33333333 0.002 - 0.40000000 0.33333333 0.33333333 0.002 - 0.46666667 0.33333333 0.33333333 0.002 - 0.00000000 0.40000000 0.33333333 0.001 - 0.06666667 0.40000000 0.33333333 0.002 - 0.13333333 0.40000000 0.33333333 0.002 - 0.20000000 0.40000000 0.33333333 0.002 - 0.26666667 0.40000000 0.33333333 0.002 - 0.33333333 0.40000000 0.33333333 0.002 - 0.40000000 0.40000000 0.33333333 0.002 - 0.46666667 0.40000000 0.33333333 0.002 - 0.00000000 0.46666667 0.33333333 0.001 - 0.06666667 0.46666667 0.33333333 0.002 - 0.13333333 0.46666667 0.33333333 0.002 - 0.20000000 0.46666667 0.33333333 0.002 - 0.26666667 0.46666667 0.33333333 0.002 - 0.33333333 0.46666667 0.33333333 0.002 - 0.40000000 0.46666667 0.33333333 0.002 - 0.46666667 0.46666667 0.33333333 0.002 - 0.00000000 0.00000000 0.40000000 0.001 - 0.06666667 0.00000000 0.40000000 0.001 - 0.13333333 0.00000000 0.40000000 0.001 - 0.20000000 0.00000000 0.40000000 0.001 - 0.26666667 0.00000000 0.40000000 0.001 - 0.33333333 0.00000000 0.40000000 0.001 - 0.40000000 0.00000000 0.40000000 0.001 - 0.46666667 0.00000000 0.40000000 0.001 - 0.00000000 0.06666667 0.40000000 0.001 - 0.06666667 0.06666667 0.40000000 0.002 - 0.13333333 0.06666667 0.40000000 0.002 - 0.20000000 0.06666667 0.40000000 0.002 - 0.26666667 0.06666667 0.40000000 0.002 - 0.33333333 0.06666667 0.40000000 0.002 - 0.40000000 0.06666667 0.40000000 0.002 - 0.46666667 0.06666667 0.40000000 0.002 - 0.00000000 0.13333333 0.40000000 0.001 - 0.06666667 0.13333333 0.40000000 0.002 - 0.13333333 0.13333333 0.40000000 0.002 - 0.20000000 0.13333333 0.40000000 0.002 - 0.26666667 0.13333333 0.40000000 0.002 - 0.33333333 0.13333333 0.40000000 0.002 - 0.40000000 0.13333333 0.40000000 0.002 - 0.46666667 0.13333333 0.40000000 0.002 - 0.00000000 0.20000000 0.40000000 0.001 - 0.06666667 0.20000000 0.40000000 0.002 - 0.13333333 0.20000000 0.40000000 0.002 - 0.20000000 0.20000000 0.40000000 0.002 - 0.26666667 0.20000000 0.40000000 0.002 - 0.33333333 0.20000000 0.40000000 0.002 - 0.40000000 0.20000000 0.40000000 0.002 - 0.46666667 0.20000000 0.40000000 0.002 - 0.00000000 0.26666667 0.40000000 0.001 - 0.06666667 0.26666667 0.40000000 0.002 - 0.13333333 0.26666667 0.40000000 0.002 - 0.20000000 0.26666667 0.40000000 0.002 - 0.26666667 0.26666667 0.40000000 0.002 - 0.33333333 0.26666667 0.40000000 0.002 - 0.40000000 0.26666667 0.40000000 0.002 - 0.46666667 0.26666667 0.40000000 0.002 - 0.00000000 0.33333333 0.40000000 0.001 - 0.06666667 0.33333333 0.40000000 0.002 - 0.13333333 0.33333333 0.40000000 0.002 - 0.20000000 0.33333333 0.40000000 0.002 - 0.26666667 0.33333333 0.40000000 0.002 - 0.33333333 0.33333333 0.40000000 0.002 - 0.40000000 0.33333333 0.40000000 0.002 - 0.46666667 0.33333333 0.40000000 0.002 - 0.00000000 0.40000000 0.40000000 0.001 - 0.06666667 0.40000000 0.40000000 0.002 - 0.13333333 0.40000000 0.40000000 0.002 - 0.20000000 0.40000000 0.40000000 0.002 - 0.26666667 0.40000000 0.40000000 0.002 - 0.33333333 0.40000000 0.40000000 0.002 - 0.40000000 0.40000000 0.40000000 0.002 - 0.46666667 0.40000000 0.40000000 0.002 - 0.00000000 0.46666667 0.40000000 0.001 - 0.06666667 0.46666667 0.40000000 0.002 - 0.13333333 0.46666667 0.40000000 0.002 - 0.20000000 0.46666667 0.40000000 0.002 - 0.26666667 0.46666667 0.40000000 0.002 - 0.33333333 0.46666667 0.40000000 0.002 - 0.40000000 0.46666667 0.40000000 0.002 - 0.46666667 0.46666667 0.40000000 0.002 - 0.00000000 0.00000000 0.46666667 0.001 - 0.06666667 0.00000000 0.46666667 0.001 - 0.13333333 0.00000000 0.46666667 0.001 - 0.20000000 0.00000000 0.46666667 0.001 - 0.26666667 0.00000000 0.46666667 0.001 - 0.33333333 0.00000000 0.46666667 0.001 - 0.40000000 0.00000000 0.46666667 0.001 - 0.46666667 0.00000000 0.46666667 0.001 - 0.00000000 0.06666667 0.46666667 0.001 - 0.06666667 0.06666667 0.46666667 0.002 - 0.13333333 0.06666667 0.46666667 0.002 - 0.20000000 0.06666667 0.46666667 0.002 - 0.26666667 0.06666667 0.46666667 0.002 - 0.33333333 0.06666667 0.46666667 0.002 - 0.40000000 0.06666667 0.46666667 0.002 - 0.46666667 0.06666667 0.46666667 0.002 - 0.00000000 0.13333333 0.46666667 0.001 - 0.06666667 0.13333333 0.46666667 0.002 - 0.13333333 0.13333333 0.46666667 0.002 - 0.20000000 0.13333333 0.46666667 0.002 - 0.26666667 0.13333333 0.46666667 0.002 - 0.33333333 0.13333333 0.46666667 0.002 - 0.40000000 0.13333333 0.46666667 0.002 - 0.46666667 0.13333333 0.46666667 0.002 - 0.00000000 0.20000000 0.46666667 0.001 - 0.06666667 0.20000000 0.46666667 0.002 - 0.13333333 0.20000000 0.46666667 0.002 - 0.20000000 0.20000000 0.46666667 0.002 - 0.26666667 0.20000000 0.46666667 0.002 - 0.33333333 0.20000000 0.46666667 0.002 - 0.40000000 0.20000000 0.46666667 0.002 - 0.46666667 0.20000000 0.46666667 0.002 - 0.00000000 0.26666667 0.46666667 0.001 - 0.06666667 0.26666667 0.46666667 0.002 - 0.13333333 0.26666667 0.46666667 0.002 - 0.20000000 0.26666667 0.46666667 0.002 - 0.26666667 0.26666667 0.46666667 0.002 - 0.33333333 0.26666667 0.46666667 0.002 - 0.40000000 0.26666667 0.46666667 0.002 - 0.46666667 0.26666667 0.46666667 0.002 - 0.00000000 0.33333333 0.46666667 0.001 - 0.06666667 0.33333333 0.46666667 0.002 - 0.13333333 0.33333333 0.46666667 0.002 - 0.20000000 0.33333333 0.46666667 0.002 - 0.26666667 0.33333333 0.46666667 0.002 - 0.33333333 0.33333333 0.46666667 0.002 - 0.40000000 0.33333333 0.46666667 0.002 - 0.46666667 0.33333333 0.46666667 0.002 - 0.00000000 0.40000000 0.46666667 0.001 - 0.06666667 0.40000000 0.46666667 0.002 - 0.13333333 0.40000000 0.46666667 0.002 - 0.20000000 0.40000000 0.46666667 0.002 - 0.26666667 0.40000000 0.46666667 0.002 - 0.33333333 0.40000000 0.46666667 0.002 - 0.40000000 0.40000000 0.46666667 0.002 - 0.46666667 0.40000000 0.46666667 0.002 - 0.00000000 0.46666667 0.46666667 0.001 - 0.06666667 0.46666667 0.46666667 0.002 - 0.13333333 0.46666667 0.46666667 0.002 - 0.20000000 0.46666667 0.46666667 0.002 - 0.26666667 0.46666667 0.46666667 0.002 - 0.33333333 0.46666667 0.46666667 0.002 - 0.40000000 0.46666667 0.46666667 0.002 - 0.46666667 0.46666667 0.46666667 0.002 - - position of ions in fractional coordinates (direct lattice) - 0.00000000 0.00000000 0.00000000 - 0.00000000 0.50000000 0.50000000 - 0.50000000 0.00000000 0.50000000 - 0.50000000 0.50000000 0.00000000 - - position of ions in cartesian coordinates (Angst): - 0.00000000 0.00000000 0.00000000 - 0.00000000 1.77872000 1.58839050 - 1.83480550 0.00000000 1.58839050 - 1.83480550 1.77872000 0.00000000 - - - --------------------------------------------------------------------------------------------------------- - - - k-point 1 : 0.0000 0.0000 0.0000 plane waves: 1389 - k-point 2 : 0.0667 0.0000 0.0000 plane waves: 1395 - k-point 3 : 0.1333 0.0000 0.0000 plane waves: 1401 - k-point 4 : 0.2000 0.0000 0.0000 plane waves: 1393 - k-point 5 : 0.2667 0.0000 0.0000 plane waves: 1389 - k-point 6 : 0.3333 0.0000 0.0000 plane waves: 1386 - k-point 7 : 0.4000 0.0000 0.0000 plane waves: 1386 - k-point 8 : 0.4667 0.0000 0.0000 plane waves: 1392 - k-point 9 : 0.0000 0.0667 0.0000 plane waves: 1395 - k-point 10 : 0.0667 0.0667 0.0000 plane waves: 1393 - k-point 11 : 0.1333 0.0667 0.0000 plane waves: 1396 - k-point 12 : 0.2000 0.0667 0.0000 plane waves: 1390 - k-point 13 : 0.2667 0.0667 0.0000 plane waves: 1385 - k-point 14 : 0.3333 0.0667 0.0000 plane waves: 1382 - k-point 15 : 0.4000 0.0667 0.0000 plane waves: 1388 - k-point 16 : 0.4667 0.0667 0.0000 plane waves: 1396 - k-point 17 : 0.0000 0.1333 0.0000 plane waves: 1394 - k-point 18 : 0.0667 0.1333 0.0000 plane waves: 1400 - k-point 19 : 0.1333 0.1333 0.0000 plane waves: 1395 - k-point 20 : 0.2000 0.1333 0.0000 plane waves: 1393 - k-point 21 : 0.2667 0.1333 0.0000 plane waves: 1386 - k-point 22 : 0.3333 0.1333 0.0000 plane waves: 1394 - k-point 23 : 0.4000 0.1333 0.0000 plane waves: 1387 - k-point 24 : 0.4667 0.1333 0.0000 plane waves: 1384 - k-point 25 : 0.0000 0.2000 0.0000 plane waves: 1390 - k-point 26 : 0.0667 0.2000 0.0000 plane waves: 1392 - k-point 27 : 0.1333 0.2000 0.0000 plane waves: 1389 - k-point 28 : 0.2000 0.2000 0.0000 plane waves: 1388 - k-point 29 : 0.2667 0.2000 0.0000 plane waves: 1389 - k-point 30 : 0.3333 0.2000 0.0000 plane waves: 1391 - k-point 31 : 0.4000 0.2000 0.0000 plane waves: 1387 - k-point 32 : 0.4667 0.2000 0.0000 plane waves: 1382 - k-point 33 : 0.0000 0.2667 0.0000 plane waves: 1390 - k-point 34 : 0.0667 0.2667 0.0000 plane waves: 1393 - k-point 35 : 0.1333 0.2667 0.0000 plane waves: 1391 - k-point 36 : 0.2000 0.2667 0.0000 plane waves: 1388 - k-point 37 : 0.2667 0.2667 0.0000 plane waves: 1383 - k-point 38 : 0.3333 0.2667 0.0000 plane waves: 1384 - k-point 39 : 0.4000 0.2667 0.0000 plane waves: 1377 - k-point 40 : 0.4667 0.2667 0.0000 plane waves: 1375 - k-point 41 : 0.0000 0.3333 0.0000 plane waves: 1392 - k-point 42 : 0.0667 0.3333 0.0000 plane waves: 1390 - k-point 43 : 0.1333 0.3333 0.0000 plane waves: 1390 - k-point 44 : 0.2000 0.3333 0.0000 plane waves: 1395 - k-point 45 : 0.2667 0.3333 0.0000 plane waves: 1388 - k-point 46 : 0.3333 0.3333 0.0000 plane waves: 1380 - k-point 47 : 0.4000 0.3333 0.0000 plane waves: 1378 - k-point 48 : 0.4667 0.3333 0.0000 plane waves: 1364 - k-point 49 : 0.0000 0.4000 0.0000 plane waves: 1390 - k-point 50 : 0.0667 0.4000 0.0000 plane waves: 1390 - k-point 51 : 0.1333 0.4000 0.0000 plane waves: 1397 - k-point 52 : 0.2000 0.4000 0.0000 plane waves: 1391 - k-point 53 : 0.2667 0.4000 0.0000 plane waves: 1389 - k-point 54 : 0.3333 0.4000 0.0000 plane waves: 1377 - k-point 55 : 0.4000 0.4000 0.0000 plane waves: 1379 - k-point 56 : 0.4667 0.4000 0.0000 plane waves: 1365 - k-point 57 : 0.0000 0.4667 0.0000 plane waves: 1382 - k-point 58 : 0.0667 0.4667 0.0000 plane waves: 1387 - k-point 59 : 0.1333 0.4667 0.0000 plane waves: 1387 - k-point 60 : 0.2000 0.4667 0.0000 plane waves: 1386 - k-point 61 : 0.2667 0.4667 0.0000 plane waves: 1384 - k-point 62 : 0.3333 0.4667 0.0000 plane waves: 1384 - k-point 63 : 0.4000 0.4667 0.0000 plane waves: 1381 - k-point 64 : 0.4667 0.4667 0.0000 plane waves: 1372 - k-point 65 : 0.0000 0.0000 0.0667 plane waves: 1389 - k-point 66 : 0.0667 0.0000 0.0667 plane waves: 1386 - k-point 67 : 0.1333 0.0000 0.0667 plane waves: 1393 - k-point 68 : 0.2000 0.0000 0.0667 plane waves: 1392 - k-point 69 : 0.2667 0.0000 0.0667 plane waves: 1375 - k-point 70 : 0.3333 0.0000 0.0667 plane waves: 1382 - k-point 71 : 0.4000 0.0000 0.0667 plane waves: 1394 - k-point 72 : 0.4667 0.0000 0.0667 plane waves: 1401 - k-point 73 : 0.0000 0.0667 0.0667 plane waves: 1387 - k-point 74 : 0.0667 0.0667 0.0667 plane waves: 1388 - k-point 75 : 0.1333 0.0667 0.0667 plane waves: 1393 - k-point 76 : 0.2000 0.0667 0.0667 plane waves: 1388 - k-point 77 : 0.2667 0.0667 0.0667 plane waves: 1385 - k-point 78 : 0.3333 0.0667 0.0667 plane waves: 1388 - k-point 79 : 0.4000 0.0667 0.0667 plane waves: 1392 - k-point 80 : 0.4667 0.0667 0.0667 plane waves: 1395 - k-point 81 : 0.0000 0.1333 0.0667 plane waves: 1381 - k-point 82 : 0.0667 0.1333 0.0667 plane waves: 1388 - k-point 83 : 0.1333 0.1333 0.0667 plane waves: 1390 - k-point 84 : 0.2000 0.1333 0.0667 plane waves: 1387 - k-point 85 : 0.2667 0.1333 0.0667 plane waves: 1390 - k-point 86 : 0.3333 0.1333 0.0667 plane waves: 1385 - k-point 87 : 0.4000 0.1333 0.0667 plane waves: 1389 - k-point 88 : 0.4667 0.1333 0.0667 plane waves: 1391 - k-point 89 : 0.0000 0.2000 0.0667 plane waves: 1391 - k-point 90 : 0.0667 0.2000 0.0667 plane waves: 1390 - k-point 91 : 0.1333 0.2000 0.0667 plane waves: 1388 - k-point 92 : 0.2000 0.2000 0.0667 plane waves: 1390 - k-point 93 : 0.2667 0.2000 0.0667 plane waves: 1385 - k-point 94 : 0.3333 0.2000 0.0667 plane waves: 1388 - k-point 95 : 0.4000 0.2000 0.0667 plane waves: 1387 - k-point 96 : 0.4667 0.2000 0.0667 plane waves: 1388 - k-point 97 : 0.0000 0.2667 0.0667 plane waves: 1393 - k-point 98 : 0.0667 0.2667 0.0667 plane waves: 1392 - k-point 99 : 0.1333 0.2667 0.0667 plane waves: 1388 - k-point ** : 0.2000 0.2667 0.0667 plane waves: 1387 - k-point ** : 0.2667 0.2667 0.0667 plane waves: 1386 - k-point ** : 0.3333 0.2667 0.0667 plane waves: 1386 - k-point ** : 0.4000 0.2667 0.0667 plane waves: 1382 - k-point ** : 0.4667 0.2667 0.0667 plane waves: 1376 - k-point ** : 0.0000 0.3333 0.0667 plane waves: 1396 - k-point ** : 0.0667 0.3333 0.0667 plane waves: 1394 - k-point ** : 0.1333 0.3333 0.0667 plane waves: 1393 - k-point ** : 0.2000 0.3333 0.0667 plane waves: 1390 - k-point ** : 0.2667 0.3333 0.0667 plane waves: 1387 - k-point ** : 0.3333 0.3333 0.0667 plane waves: 1383 - k-point ** : 0.4000 0.3333 0.0667 plane waves: 1378 - k-point ** : 0.4667 0.3333 0.0667 plane waves: 1373 - k-point ** : 0.0000 0.4000 0.0667 plane waves: 1392 - k-point ** : 0.0667 0.4000 0.0667 plane waves: 1391 - k-point ** : 0.1333 0.4000 0.0667 plane waves: 1391 - k-point ** : 0.2000 0.4000 0.0667 plane waves: 1389 - k-point ** : 0.2667 0.4000 0.0667 plane waves: 1389 - k-point ** : 0.3333 0.4000 0.0667 plane waves: 1384 - k-point ** : 0.4000 0.4000 0.0667 plane waves: 1374 - k-point ** : 0.4667 0.4000 0.0667 plane waves: 1376 - k-point ** : 0.0000 0.4667 0.0667 plane waves: 1390 - k-point ** : 0.0667 0.4667 0.0667 plane waves: 1389 - k-point ** : 0.1333 0.4667 0.0667 plane waves: 1386 - k-point ** : 0.2000 0.4667 0.0667 plane waves: 1387 - k-point ** : 0.2667 0.4667 0.0667 plane waves: 1385 - k-point ** : 0.3333 0.4667 0.0667 plane waves: 1381 - k-point ** : 0.4000 0.4667 0.0667 plane waves: 1374 - k-point ** : 0.4667 0.4667 0.0667 plane waves: 1379 - k-point ** : 0.0000 0.0000 0.1333 plane waves: 1389 - k-point ** : 0.0667 0.0000 0.1333 plane waves: 1382 - k-point ** : 0.1333 0.0000 0.1333 plane waves: 1386 - k-point ** : 0.2000 0.0000 0.1333 plane waves: 1381 - k-point ** : 0.2667 0.0000 0.1333 plane waves: 1378 - k-point ** : 0.3333 0.0000 0.1333 plane waves: 1381 - k-point ** : 0.4000 0.0000 0.1333 plane waves: 1386 - k-point ** : 0.4667 0.0000 0.1333 plane waves: 1400 - k-point ** : 0.0000 0.0667 0.1333 plane waves: 1383 - k-point ** : 0.0667 0.0667 0.1333 plane waves: 1379 - k-point ** : 0.1333 0.0667 0.1333 plane waves: 1388 - k-point ** : 0.2000 0.0667 0.1333 plane waves: 1385 - k-point ** : 0.2667 0.0667 0.1333 plane waves: 1380 - k-point ** : 0.3333 0.0667 0.1333 plane waves: 1382 - k-point ** : 0.4000 0.0667 0.1333 plane waves: 1392 - k-point ** : 0.4667 0.0667 0.1333 plane waves: 1400 - k-point ** : 0.0000 0.1333 0.1333 plane waves: 1378 - k-point ** : 0.0667 0.1333 0.1333 plane waves: 1381 - k-point ** : 0.1333 0.1333 0.1333 plane waves: 1386 - k-point ** : 0.2000 0.1333 0.1333 plane waves: 1386 - k-point ** : 0.2667 0.1333 0.1333 plane waves: 1382 - k-point ** : 0.3333 0.1333 0.1333 plane waves: 1385 - k-point ** : 0.4000 0.1333 0.1333 plane waves: 1390 - k-point ** : 0.4667 0.1333 0.1333 plane waves: 1396 - k-point ** : 0.0000 0.2000 0.1333 plane waves: 1385 - k-point ** : 0.0667 0.2000 0.1333 plane waves: 1383 - k-point ** : 0.1333 0.2000 0.1333 plane waves: 1381 - k-point ** : 0.2000 0.2000 0.1333 plane waves: 1386 - k-point ** : 0.2667 0.2000 0.1333 plane waves: 1386 - k-point ** : 0.3333 0.2000 0.1333 plane waves: 1382 - k-point ** : 0.4000 0.2000 0.1333 plane waves: 1386 - k-point ** : 0.4667 0.2000 0.1333 plane waves: 1383 - k-point ** : 0.0000 0.2667 0.1333 plane waves: 1388 - k-point ** : 0.0667 0.2667 0.1333 plane waves: 1388 - k-point ** : 0.1333 0.2667 0.1333 plane waves: 1386 - k-point ** : 0.2000 0.2667 0.1333 plane waves: 1386 - k-point ** : 0.2667 0.2667 0.1333 plane waves: 1388 - k-point ** : 0.3333 0.2667 0.1333 plane waves: 1385 - k-point ** : 0.4000 0.2667 0.1333 plane waves: 1385 - k-point ** : 0.4667 0.2667 0.1333 plane waves: 1376 - k-point ** : 0.0000 0.3333 0.1333 plane waves: 1392 - k-point ** : 0.0667 0.3333 0.1333 plane waves: 1391 - k-point ** : 0.1333 0.3333 0.1333 plane waves: 1390 - k-point ** : 0.2000 0.3333 0.1333 plane waves: 1389 - k-point ** : 0.2667 0.3333 0.1333 plane waves: 1391 - k-point ** : 0.3333 0.3333 0.1333 plane waves: 1384 - k-point ** : 0.4000 0.3333 0.1333 plane waves: 1376 - k-point ** : 0.4667 0.3333 0.1333 plane waves: 1377 - k-point ** : 0.0000 0.4000 0.1333 plane waves: 1391 - k-point ** : 0.0667 0.4000 0.1333 plane waves: 1391 - k-point ** : 0.1333 0.4000 0.1333 plane waves: 1395 - k-point ** : 0.2000 0.4000 0.1333 plane waves: 1388 - k-point ** : 0.2667 0.4000 0.1333 plane waves: 1388 - k-point ** : 0.3333 0.4000 0.1333 plane waves: 1385 - k-point ** : 0.4000 0.4000 0.1333 plane waves: 1380 - k-point ** : 0.4667 0.4000 0.1333 plane waves: 1380 - k-point ** : 0.0000 0.4667 0.1333 plane waves: 1392 - k-point ** : 0.0667 0.4667 0.1333 plane waves: 1392 - k-point ** : 0.1333 0.4667 0.1333 plane waves: 1395 - k-point ** : 0.2000 0.4667 0.1333 plane waves: 1391 - k-point ** : 0.2667 0.4667 0.1333 plane waves: 1394 - k-point ** : 0.3333 0.4667 0.1333 plane waves: 1388 - k-point ** : 0.4000 0.4667 0.1333 plane waves: 1383 - k-point ** : 0.4667 0.4667 0.1333 plane waves: 1383 - k-point ** : 0.0000 0.0000 0.2000 plane waves: 1377 - k-point ** : 0.0667 0.0000 0.2000 plane waves: 1383 - k-point ** : 0.1333 0.0000 0.2000 plane waves: 1381 - k-point ** : 0.2000 0.0000 0.2000 plane waves: 1379 - k-point ** : 0.2667 0.0000 0.2000 plane waves: 1380 - k-point ** : 0.3333 0.0000 0.2000 plane waves: 1379 - k-point ** : 0.4000 0.0000 0.2000 plane waves: 1385 - k-point ** : 0.4667 0.0000 0.2000 plane waves: 1393 - k-point ** : 0.0000 0.0667 0.2000 plane waves: 1385 - k-point ** : 0.0667 0.0667 0.2000 plane waves: 1384 - k-point ** : 0.1333 0.0667 0.2000 plane waves: 1377 - k-point ** : 0.2000 0.0667 0.2000 plane waves: 1377 - k-point ** : 0.2667 0.0667 0.2000 plane waves: 1380 - k-point ** : 0.3333 0.0667 0.2000 plane waves: 1382 - k-point ** : 0.4000 0.0667 0.2000 plane waves: 1387 - k-point ** : 0.4667 0.0667 0.2000 plane waves: 1394 - k-point ** : 0.0000 0.1333 0.2000 plane waves: 1382 - k-point ** : 0.0667 0.1333 0.2000 plane waves: 1380 - k-point ** : 0.1333 0.1333 0.2000 plane waves: 1386 - k-point ** : 0.2000 0.1333 0.2000 plane waves: 1382 - k-point ** : 0.2667 0.1333 0.2000 plane waves: 1378 - k-point ** : 0.3333 0.1333 0.2000 plane waves: 1379 - k-point ** : 0.4000 0.1333 0.2000 plane waves: 1379 - k-point ** : 0.4667 0.1333 0.2000 plane waves: 1384 - k-point ** : 0.0000 0.2000 0.2000 plane waves: 1380 - k-point ** : 0.0667 0.2000 0.2000 plane waves: 1382 - k-point ** : 0.1333 0.2000 0.2000 plane waves: 1385 - k-point ** : 0.2000 0.2000 0.2000 plane waves: 1387 - k-point ** : 0.2667 0.2000 0.2000 plane waves: 1388 - k-point ** : 0.3333 0.2000 0.2000 plane waves: 1384 - k-point ** : 0.4000 0.2000 0.2000 plane waves: 1379 - k-point ** : 0.4667 0.2000 0.2000 plane waves: 1383 - k-point ** : 0.0000 0.2667 0.2000 plane waves: 1382 - k-point ** : 0.0667 0.2667 0.2000 plane waves: 1386 - k-point ** : 0.1333 0.2667 0.2000 plane waves: 1392 - k-point ** : 0.2000 0.2667 0.2000 plane waves: 1391 - k-point ** : 0.2667 0.2667 0.2000 plane waves: 1388 - k-point ** : 0.3333 0.2667 0.2000 plane waves: 1385 - k-point ** : 0.4000 0.2667 0.2000 plane waves: 1382 - k-point ** : 0.4667 0.2667 0.2000 plane waves: 1373 - k-point ** : 0.0000 0.3333 0.2000 plane waves: 1386 - k-point ** : 0.0667 0.3333 0.2000 plane waves: 1389 - k-point ** : 0.1333 0.3333 0.2000 plane waves: 1384 - k-point ** : 0.2000 0.3333 0.2000 plane waves: 1383 - k-point ** : 0.2667 0.3333 0.2000 plane waves: 1390 - k-point ** : 0.3333 0.3333 0.2000 plane waves: 1383 - k-point ** : 0.4000 0.3333 0.2000 plane waves: 1385 - k-point ** : 0.4667 0.3333 0.2000 plane waves: 1377 - k-point ** : 0.0000 0.4000 0.2000 plane waves: 1395 - k-point ** : 0.0667 0.4000 0.2000 plane waves: 1390 - k-point ** : 0.1333 0.4000 0.2000 plane waves: 1388 - k-point ** : 0.2000 0.4000 0.2000 plane waves: 1386 - k-point ** : 0.2667 0.4000 0.2000 plane waves: 1390 - k-point ** : 0.3333 0.4000 0.2000 plane waves: 1386 - k-point ** : 0.4000 0.4000 0.2000 plane waves: 1384 - k-point ** : 0.4667 0.4000 0.2000 plane waves: 1388 - k-point ** : 0.0000 0.4667 0.2000 plane waves: 1399 - k-point ** : 0.0667 0.4667 0.2000 plane waves: 1388 - k-point ** : 0.1333 0.4667 0.2000 plane waves: 1392 - k-point ** : 0.2000 0.4667 0.2000 plane waves: 1392 - k-point ** : 0.2667 0.4667 0.2000 plane waves: 1387 - k-point ** : 0.3333 0.4667 0.2000 plane waves: 1385 - k-point ** : 0.4000 0.4667 0.2000 plane waves: 1382 - k-point ** : 0.4667 0.4667 0.2000 plane waves: 1388 - k-point ** : 0.0000 0.0000 0.2667 plane waves: 1371 - k-point ** : 0.0667 0.0000 0.2667 plane waves: 1376 - k-point ** : 0.1333 0.0000 0.2667 plane waves: 1383 - k-point ** : 0.2000 0.0000 0.2667 plane waves: 1379 - k-point ** : 0.2667 0.0000 0.2667 plane waves: 1381 - k-point ** : 0.3333 0.0000 0.2667 plane waves: 1378 - k-point ** : 0.4000 0.0000 0.2667 plane waves: 1379 - k-point ** : 0.4667 0.0000 0.2667 plane waves: 1378 - k-point ** : 0.0000 0.0667 0.2667 plane waves: 1379 - k-point ** : 0.0667 0.0667 0.2667 plane waves: 1378 - k-point ** : 0.1333 0.0667 0.2667 plane waves: 1377 - k-point ** : 0.2000 0.0667 0.2667 plane waves: 1378 - k-point ** : 0.2667 0.0667 0.2667 plane waves: 1379 - k-point ** : 0.3333 0.0667 0.2667 plane waves: 1379 - k-point ** : 0.4000 0.0667 0.2667 plane waves: 1382 - k-point ** : 0.4667 0.0667 0.2667 plane waves: 1380 - k-point ** : 0.0000 0.1333 0.2667 plane waves: 1374 - k-point ** : 0.0667 0.1333 0.2667 plane waves: 1377 - k-point ** : 0.1333 0.1333 0.2667 plane waves: 1381 - k-point ** : 0.2000 0.1333 0.2667 plane waves: 1378 - k-point ** : 0.2667 0.1333 0.2667 plane waves: 1380 - k-point ** : 0.3333 0.1333 0.2667 plane waves: 1378 - k-point ** : 0.4000 0.1333 0.2667 plane waves: 1380 - k-point ** : 0.4667 0.1333 0.2667 plane waves: 1383 - k-point ** : 0.0000 0.2000 0.2667 plane waves: 1379 - k-point ** : 0.0667 0.2000 0.2667 plane waves: 1381 - k-point ** : 0.1333 0.2000 0.2667 plane waves: 1390 - k-point ** : 0.2000 0.2000 0.2667 plane waves: 1389 - k-point ** : 0.2667 0.2000 0.2667 plane waves: 1380 - k-point ** : 0.3333 0.2000 0.2667 plane waves: 1379 - k-point ** : 0.4000 0.2000 0.2667 plane waves: 1375 - k-point ** : 0.4667 0.2000 0.2667 plane waves: 1381 - k-point ** : 0.0000 0.2667 0.2667 plane waves: 1385 - k-point ** : 0.0667 0.2667 0.2667 plane waves: 1389 - k-point ** : 0.1333 0.2667 0.2667 plane waves: 1388 - k-point ** : 0.2000 0.2667 0.2667 plane waves: 1390 - k-point ** : 0.2667 0.2667 0.2667 plane waves: 1383 - k-point ** : 0.3333 0.2667 0.2667 plane waves: 1381 - k-point ** : 0.4000 0.2667 0.2667 plane waves: 1376 - k-point ** : 0.4667 0.2667 0.2667 plane waves: 1369 - k-point ** : 0.0000 0.3333 0.2667 plane waves: 1398 - k-point ** : 0.0667 0.3333 0.2667 plane waves: 1389 - k-point ** : 0.1333 0.3333 0.2667 plane waves: 1389 - k-point ** : 0.2000 0.3333 0.2667 plane waves: 1390 - k-point ** : 0.2667 0.3333 0.2667 plane waves: 1386 - k-point ** : 0.3333 0.3333 0.2667 plane waves: 1382 - k-point ** : 0.4000 0.3333 0.2667 plane waves: 1388 - k-point ** : 0.4667 0.3333 0.2667 plane waves: 1382 - k-point ** : 0.0000 0.4000 0.2667 plane waves: 1393 - k-point ** : 0.0667 0.4000 0.2667 plane waves: 1391 - k-point ** : 0.1333 0.4000 0.2667 plane waves: 1385 - k-point ** : 0.2000 0.4000 0.2667 plane waves: 1387 - k-point ** : 0.2667 0.4000 0.2667 plane waves: 1389 - k-point ** : 0.3333 0.4000 0.2667 plane waves: 1388 - k-point ** : 0.4000 0.4000 0.2667 plane waves: 1390 - k-point ** : 0.4667 0.4000 0.2667 plane waves: 1391 - k-point ** : 0.0000 0.4667 0.2667 plane waves: 1398 - k-point ** : 0.0667 0.4667 0.2667 plane waves: 1388 - k-point ** : 0.1333 0.4667 0.2667 plane waves: 1381 - k-point ** : 0.2000 0.4667 0.2667 plane waves: 1382 - k-point ** : 0.2667 0.4667 0.2667 plane waves: 1387 - k-point ** : 0.3333 0.4667 0.2667 plane waves: 1391 - k-point ** : 0.4000 0.4667 0.2667 plane waves: 1391 - k-point ** : 0.4667 0.4667 0.2667 plane waves: 1394 - k-point ** : 0.0000 0.0000 0.3333 plane waves: 1373 - k-point ** : 0.0667 0.0000 0.3333 plane waves: 1378 - k-point ** : 0.1333 0.0000 0.3333 plane waves: 1379 - k-point ** : 0.2000 0.0000 0.3333 plane waves: 1381 - k-point ** : 0.2667 0.0000 0.3333 plane waves: 1382 - k-point ** : 0.3333 0.0000 0.3333 plane waves: 1377 - k-point ** : 0.4000 0.0000 0.3333 plane waves: 1377 - k-point ** : 0.4667 0.0000 0.3333 plane waves: 1366 - k-point ** : 0.0000 0.0667 0.3333 plane waves: 1374 - k-point ** : 0.0667 0.0667 0.3333 plane waves: 1377 - k-point ** : 0.1333 0.0667 0.3333 plane waves: 1379 - k-point ** : 0.2000 0.0667 0.3333 plane waves: 1380 - k-point ** : 0.2667 0.0667 0.3333 plane waves: 1377 - k-point ** : 0.3333 0.0667 0.3333 plane waves: 1370 - k-point ** : 0.4000 0.0667 0.3333 plane waves: 1373 - k-point ** : 0.4667 0.0667 0.3333 plane waves: 1374 - k-point ** : 0.0000 0.1333 0.3333 plane waves: 1375 - k-point ** : 0.0667 0.1333 0.3333 plane waves: 1378 - k-point ** : 0.1333 0.1333 0.3333 plane waves: 1375 - k-point ** : 0.2000 0.1333 0.3333 plane waves: 1377 - k-point ** : 0.2667 0.1333 0.3333 plane waves: 1378 - k-point ** : 0.3333 0.1333 0.3333 plane waves: 1370 - k-point ** : 0.4000 0.1333 0.3333 plane waves: 1374 - k-point ** : 0.4667 0.1333 0.3333 plane waves: 1376 - k-point ** : 0.0000 0.2000 0.3333 plane waves: 1376 - k-point ** : 0.0667 0.2000 0.3333 plane waves: 1379 - k-point ** : 0.1333 0.2000 0.3333 plane waves: 1383 - k-point ** : 0.2000 0.2000 0.3333 plane waves: 1381 - k-point ** : 0.2667 0.2000 0.3333 plane waves: 1374 - k-point ** : 0.3333 0.2000 0.3333 plane waves: 1378 - k-point ** : 0.4000 0.2000 0.3333 plane waves: 1373 - k-point ** : 0.4667 0.2000 0.3333 plane waves: 1376 - k-point ** : 0.0000 0.2667 0.3333 plane waves: 1385 - k-point ** : 0.0667 0.2667 0.3333 plane waves: 1383 - k-point ** : 0.1333 0.2667 0.3333 plane waves: 1388 - k-point ** : 0.2000 0.2667 0.3333 plane waves: 1387 - k-point ** : 0.2667 0.2667 0.3333 plane waves: 1384 - k-point ** : 0.3333 0.2667 0.3333 plane waves: 1379 - k-point ** : 0.4000 0.2667 0.3333 plane waves: 1380 - k-point ** : 0.4667 0.2667 0.3333 plane waves: 1379 - k-point ** : 0.0000 0.3333 0.3333 plane waves: 1381 - k-point ** : 0.0667 0.3333 0.3333 plane waves: 1393 - k-point ** : 0.1333 0.3333 0.3333 plane waves: 1393 - k-point ** : 0.2000 0.3333 0.3333 plane waves: 1386 - k-point ** : 0.2667 0.3333 0.3333 plane waves: 1385 - k-point ** : 0.3333 0.3333 0.3333 plane waves: 1380 - k-point ** : 0.4000 0.3333 0.3333 plane waves: 1381 - k-point ** : 0.4667 0.3333 0.3333 plane waves: 1383 - k-point ** : 0.0000 0.4000 0.3333 plane waves: 1388 - k-point ** : 0.0667 0.4000 0.3333 plane waves: 1385 - k-point ** : 0.1333 0.4000 0.3333 plane waves: 1386 - k-point ** : 0.2000 0.4000 0.3333 plane waves: 1386 - k-point ** : 0.2667 0.4000 0.3333 plane waves: 1385 - k-point ** : 0.3333 0.4000 0.3333 plane waves: 1383 - k-point ** : 0.4000 0.4000 0.3333 plane waves: 1391 - k-point ** : 0.4667 0.4000 0.3333 plane waves: 1389 - k-point ** : 0.0000 0.4667 0.3333 plane waves: 1384 - k-point ** : 0.0667 0.4667 0.3333 plane waves: 1383 - k-point ** : 0.1333 0.4667 0.3333 plane waves: 1381 - k-point ** : 0.2000 0.4667 0.3333 plane waves: 1381 - k-point ** : 0.2667 0.4667 0.3333 plane waves: 1383 - k-point ** : 0.3333 0.4667 0.3333 plane waves: 1386 - k-point ** : 0.4000 0.4667 0.3333 plane waves: 1392 - k-point ** : 0.4667 0.4667 0.3333 plane waves: 1391 - k-point ** : 0.0000 0.0000 0.4000 plane waves: 1382 - k-point ** : 0.0667 0.0000 0.4000 plane waves: 1378 - k-point ** : 0.1333 0.0000 0.4000 plane waves: 1379 - k-point ** : 0.2000 0.0000 0.4000 plane waves: 1376 - k-point ** : 0.2667 0.0000 0.4000 plane waves: 1375 - k-point ** : 0.3333 0.0000 0.4000 plane waves: 1371 - k-point ** : 0.4000 0.0000 0.4000 plane waves: 1373 - k-point ** : 0.4667 0.0000 0.4000 plane waves: 1362 - k-point ** : 0.0000 0.0667 0.4000 plane waves: 1381 - k-point ** : 0.0667 0.0667 0.4000 plane waves: 1378 - k-point ** : 0.1333 0.0667 0.4000 plane waves: 1377 - k-point ** : 0.2000 0.0667 0.4000 plane waves: 1380 - k-point ** : 0.2667 0.0667 0.4000 plane waves: 1374 - k-point ** : 0.3333 0.0667 0.4000 plane waves: 1373 - k-point ** : 0.4000 0.0667 0.4000 plane waves: 1370 - k-point ** : 0.4667 0.0667 0.4000 plane waves: 1369 - k-point ** : 0.0000 0.1333 0.4000 plane waves: 1383 - k-point ** : 0.0667 0.1333 0.4000 plane waves: 1383 - k-point ** : 0.1333 0.1333 0.4000 plane waves: 1375 - k-point ** : 0.2000 0.1333 0.4000 plane waves: 1378 - k-point ** : 0.2667 0.1333 0.4000 plane waves: 1375 - k-point ** : 0.3333 0.1333 0.4000 plane waves: 1373 - k-point ** : 0.4000 0.1333 0.4000 plane waves: 1376 - k-point ** : 0.4667 0.1333 0.4000 plane waves: 1372 - k-point ** : 0.0000 0.2000 0.4000 plane waves: 1382 - k-point ** : 0.0667 0.2000 0.4000 plane waves: 1385 - k-point ** : 0.1333 0.2000 0.4000 plane waves: 1385 - k-point ** : 0.2000 0.2000 0.4000 plane waves: 1378 - k-point ** : 0.2667 0.2000 0.4000 plane waves: 1379 - k-point ** : 0.3333 0.2000 0.4000 plane waves: 1381 - k-point ** : 0.4000 0.2000 0.4000 plane waves: 1379 - k-point ** : 0.4667 0.2000 0.4000 plane waves: 1384 - k-point ** : 0.0000 0.2667 0.4000 plane waves: 1388 - k-point ** : 0.0667 0.2667 0.4000 plane waves: 1380 - k-point ** : 0.1333 0.2667 0.4000 plane waves: 1386 - k-point ** : 0.2000 0.2667 0.4000 plane waves: 1382 - k-point ** : 0.2667 0.2667 0.4000 plane waves: 1382 - k-point ** : 0.3333 0.2667 0.4000 plane waves: 1381 - k-point ** : 0.4000 0.2667 0.4000 plane waves: 1385 - k-point ** : 0.4667 0.2667 0.4000 plane waves: 1385 - k-point ** : 0.0000 0.3333 0.4000 plane waves: 1387 - k-point ** : 0.0667 0.3333 0.4000 plane waves: 1386 - k-point ** : 0.1333 0.3333 0.4000 plane waves: 1384 - k-point ** : 0.2000 0.3333 0.4000 plane waves: 1383 - k-point ** : 0.2667 0.3333 0.4000 plane waves: 1386 - k-point ** : 0.3333 0.3333 0.4000 plane waves: 1389 - k-point ** : 0.4000 0.3333 0.4000 plane waves: 1387 - k-point ** : 0.4667 0.3333 0.4000 plane waves: 1386 - k-point ** : 0.0000 0.4000 0.4000 plane waves: 1392 - k-point ** : 0.0667 0.4000 0.4000 plane waves: 1388 - k-point ** : 0.1333 0.4000 0.4000 plane waves: 1382 - k-point ** : 0.2000 0.4000 0.4000 plane waves: 1381 - k-point ** : 0.2667 0.4000 0.4000 plane waves: 1384 - k-point ** : 0.3333 0.4000 0.4000 plane waves: 1387 - k-point ** : 0.4000 0.4000 0.4000 plane waves: 1387 - k-point ** : 0.4667 0.4000 0.4000 plane waves: 1393 - k-point ** : 0.0000 0.4667 0.4000 plane waves: 1391 - k-point ** : 0.0667 0.4667 0.4000 plane waves: 1384 - k-point ** : 0.1333 0.4667 0.4000 plane waves: 1382 - k-point ** : 0.2000 0.4667 0.4000 plane waves: 1388 - k-point ** : 0.2667 0.4667 0.4000 plane waves: 1388 - k-point ** : 0.3333 0.4667 0.4000 plane waves: 1382 - k-point ** : 0.4000 0.4667 0.4000 plane waves: 1388 - k-point ** : 0.4667 0.4667 0.4000 plane waves: 1390 - k-point ** : 0.0000 0.0000 0.4667 plane waves: 1394 - k-point ** : 0.0667 0.0000 0.4667 plane waves: 1378 - k-point ** : 0.1333 0.0000 0.4667 plane waves: 1374 - k-point ** : 0.2000 0.0000 0.4667 plane waves: 1371 - k-point ** : 0.2667 0.0000 0.4667 plane waves: 1369 - k-point ** : 0.3333 0.0000 0.4667 plane waves: 1371 - k-point ** : 0.4000 0.0000 0.4667 plane waves: 1373 - k-point ** : 0.4667 0.0000 0.4667 plane waves: 1372 - k-point ** : 0.0000 0.0667 0.4667 plane waves: 1381 - k-point ** : 0.0667 0.0667 0.4667 plane waves: 1381 - k-point ** : 0.1333 0.0667 0.4667 plane waves: 1371 - k-point ** : 0.2000 0.0667 0.4667 plane waves: 1375 - k-point ** : 0.2667 0.0667 0.4667 plane waves: 1371 - k-point ** : 0.3333 0.0667 0.4667 plane waves: 1372 - k-point ** : 0.4000 0.0667 0.4667 plane waves: 1373 - k-point ** : 0.4667 0.0667 0.4667 plane waves: 1368 - k-point ** : 0.0000 0.1333 0.4667 plane waves: 1392 - k-point ** : 0.0667 0.1333 0.4667 plane waves: 1383 - k-point ** : 0.1333 0.1333 0.4667 plane waves: 1374 - k-point ** : 0.2000 0.1333 0.4667 plane waves: 1376 - k-point ** : 0.2667 0.1333 0.4667 plane waves: 1375 - k-point ** : 0.3333 0.1333 0.4667 plane waves: 1378 - k-point ** : 0.4000 0.1333 0.4667 plane waves: 1378 - k-point ** : 0.4667 0.1333 0.4667 plane waves: 1377 - k-point ** : 0.0000 0.2000 0.4667 plane waves: 1398 - k-point ** : 0.0667 0.2000 0.4667 plane waves: 1394 - k-point ** : 0.1333 0.2000 0.4667 plane waves: 1384 - k-point ** : 0.2000 0.2000 0.4667 plane waves: 1376 - k-point ** : 0.2667 0.2000 0.4667 plane waves: 1377 - k-point ** : 0.3333 0.2000 0.4667 plane waves: 1380 - k-point ** : 0.4000 0.2000 0.4667 plane waves: 1380 - k-point ** : 0.4667 0.2000 0.4667 plane waves: 1381 - k-point ** : 0.0000 0.2667 0.4667 plane waves: 1386 - k-point ** : 0.0667 0.2667 0.4667 plane waves: 1391 - k-point ** : 0.1333 0.2667 0.4667 plane waves: 1383 - k-point ** : 0.2000 0.2667 0.4667 plane waves: 1385 - k-point ** : 0.2667 0.2667 0.4667 plane waves: 1382 - k-point ** : 0.3333 0.2667 0.4667 plane waves: 1381 - k-point ** : 0.4000 0.2667 0.4667 plane waves: 1387 - k-point ** : 0.4667 0.2667 0.4667 plane waves: 1390 - k-point ** : 0.0000 0.3333 0.4667 plane waves: 1386 - k-point ** : 0.0667 0.3333 0.4667 plane waves: 1382 - k-point ** : 0.1333 0.3333 0.4667 plane waves: 1378 - k-point ** : 0.2000 0.3333 0.4667 plane waves: 1385 - k-point ** : 0.2667 0.3333 0.4667 plane waves: 1386 - k-point ** : 0.3333 0.3333 0.4667 plane waves: 1386 - k-point ** : 0.4000 0.3333 0.4667 plane waves: 1389 - k-point ** : 0.4667 0.3333 0.4667 plane waves: 1392 - k-point ** : 0.0000 0.4000 0.4667 plane waves: 1387 - k-point ** : 0.0667 0.4000 0.4667 plane waves: 1390 - k-point ** : 0.1333 0.4000 0.4667 plane waves: 1383 - k-point ** : 0.2000 0.4000 0.4667 plane waves: 1378 - k-point ** : 0.2667 0.4000 0.4667 plane waves: 1382 - k-point ** : 0.3333 0.4000 0.4667 plane waves: 1385 - k-point ** : 0.4000 0.4000 0.4667 plane waves: 1389 - k-point ** : 0.4667 0.4000 0.4667 plane waves: 1393 - k-point ** : 0.0000 0.4667 0.4667 plane waves: 1380 - k-point ** : 0.0667 0.4667 0.4667 plane waves: 1390 - k-point ** : 0.1333 0.4667 0.4667 plane waves: 1386 - k-point ** : 0.2000 0.4667 0.4667 plane waves: 1386 - k-point ** : 0.2667 0.4667 0.4667 plane waves: 1381 - k-point ** : 0.3333 0.4667 0.4667 plane waves: 1383 - k-point ** : 0.4000 0.4667 0.4667 plane waves: 1388 - k-point ** : 0.4667 0.4667 0.4667 plane waves: 1390 - - maximum and minimum number of plane-waves per node : 1401 1362 - - maximum number of plane-waves: 1401 - maximum index in each direction: - IXMAX= 7 IYMAX= 7 IZMAX= 6 - IXMIN= -7 IYMIN= -7 IZMIN= -6 - - - serial 3D FFT for wavefunctions - parallel 3D FFT for charge: - minimum data exchange during FFTs selected (reduces bandwidth) - - - total amount of memory used by VASP MPI-rank0 355020. kBytes -======================================================================= - - base : 30000. kBytes - nonl-proj : 299130. kBytes - fftplans : 441. kBytes - grid : 1138. kBytes - one-center: 129. kBytes - wavefun : 24182. kBytes - - INWAV: cpu time 0.0001: real time 0.0007 - Broyden mixing: mesh for mixing (old mesh) - NGX = 15 NGY = 15 NGZ = 13 - (NGX = 48 NGY = 48 NGZ = 40) - gives a total of 2925 points - - initial charge density was supplied: - charge density of overlapping atoms calculated - number of electron 26.0000000 magnetization - keeping initial charge density in first step - - --------------------------------------------------------------------------------------------------------- - - - Maximum index for augmentation-charges 1294 (set IRDMAX) - - --------------------------------------------------------------------------------------------------------- - - - First call to EWALD: gamma= 0.512 - Maximum number of real-space cells 3x 3x 3 - Maximum number of reciprocal cells 3x 3x 3 - - FEWALD: cpu time 0.0014: real time 0.0014 - - ---------------------------------------- Iteration 1( 1) --------------------------------------- - - - POTLOK: cpu time 0.0000: real time 0.0186 - SETDIJ: cpu time 0.0023: real time 0.0038 - EDDIAG: cpu time 0.8664: real time 0.8695 - RMM-DIIS: cpu time 0.9891: real time 0.9915 - ORTHCH: cpu time 0.0915: real time 0.0917 - DOS: cpu time 0.0040: real time 0.0040 - -------------------------------------------- - LOOP: cpu time 1.9534: real time 1.9792 - - eigenvalue-minimisations : 9216 - total energy-change (2. order) :-0.5752413E+03 (-0.2415436E+04) - number of electron 26.0000000 magnetization - augmentation part 26.0000000 magnetization - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -527.41646070 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 35.33916255 - PAW double counting = 1941.62980019 -1939.43826086 - entropy T*S EENTRO = -0.00530052 - eigenvalues EBANDS = -1293.52360327 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -575.24128006 eV - - energy without entropy = -575.23597954 energy(sigma->0) = -575.23862980 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 2) --------------------------------------- - - - EDDIAG: cpu time 0.8612: real time 0.9058 - RMM-DIIS: cpu time 1.0247: real time 1.0272 - ORTHCH: cpu time 0.0935: real time 0.0937 - DOS: cpu time 0.0037: real time 0.0037 - -------------------------------------------- - LOOP: cpu time 1.9831: real time 2.0305 - - eigenvalue-minimisations : 9216 - total energy-change (2. order) : 0.6776269E+03 (-0.4029736E+03) - number of electron 26.0000000 magnetization - augmentation part 26.0000000 magnetization - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -527.41646070 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 35.33916255 - PAW double counting = 1941.62980019 -1939.43826086 - entropy T*S EENTRO = -0.00481541 - eigenvalues EBANDS = -615.89714414 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = 102.38566418 eV - - energy without entropy = 102.39047960 energy(sigma->0) = 102.38807189 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 3) --------------------------------------- - - - EDDIAG: cpu time 0.8578: real time 0.8850 - RMM-DIIS: cpu time 0.9854: real time 0.9876 - ORTHCH: cpu time 0.0927: real time 0.0950 - DOS: cpu time 0.0039: real time 0.0038 - -------------------------------------------- - LOOP: cpu time 1.9398: real time 1.9715 - - eigenvalue-minimisations : 9216 - total energy-change (2. order) :-0.1313635E+03 (-0.1511722E+03) - number of electron 26.0000000 magnetization - augmentation part 26.0000000 magnetization - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -527.41646070 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 35.33916255 - PAW double counting = 1941.62980019 -1939.43826086 - entropy T*S EENTRO = -0.00684255 - eigenvalues EBANDS = -747.25860832 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -28.97782713 eV - - energy without entropy = -28.97098459 energy(sigma->0) = -28.97440586 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 4) --------------------------------------- - - - EDDIAG: cpu time 0.8663: real time 0.8792 - RMM-DIIS: cpu time 2.9235: real time 2.9296 - ORTHCH: cpu time 0.0974: real time 0.0994 - DOS: cpu time 0.0037: real time 0.0037 - -------------------------------------------- - LOOP: cpu time 3.8909: real time 3.9119 - - eigenvalue-minimisations : 29178 - total energy-change (2. order) :-0.2071636E+02 (-0.8645846E+02) - number of electron 26.0000000 magnetization - augmentation part 26.0000000 magnetization - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -527.41646070 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 35.33916255 - PAW double counting = 1941.62980019 -1939.43826086 - entropy T*S EENTRO = -0.00577549 - eigenvalues EBANDS = -767.97603184 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -49.69418359 eV - - energy without entropy = -49.68840810 energy(sigma->0) = -49.69129585 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 5) --------------------------------------- - - - EDDIAG: cpu time 0.8588: real time 0.8713 - RMM-DIIS: cpu time 3.2869: real time 3.2931 - ORTHCH: cpu time 0.0916: real time 0.0917 - DOS: cpu time 0.0037: real time 0.0037 - CHARGE: cpu time 0.2189: real time 0.2195 - MIXING: cpu time 0.0004: real time 0.0004 - -------------------------------------------- - LOOP: cpu time 4.4603: real time 4.4798 - - eigenvalue-minimisations : 32343 - total energy-change (2. order) :-0.2221706E+01 (-0.1791219E+02) - number of electron 26.0000010 magnetization - augmentation part 1.7185645 magnetization - - Broyden mixing: - rms(total) = 0.99154E+01 rms(broyden)= 0.99154E+01 - rms(prec ) = 0.10501E+02 - weight for this iteration 100.00 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -527.41646070 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 35.33916255 - PAW double counting = 1941.62980019 -1939.43826086 - entropy T*S EENTRO = -0.00286525 - eigenvalues EBANDS = -770.20064788 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -51.91588940 eV - - energy without entropy = -51.91302415 energy(sigma->0) = -51.91445678 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 6) --------------------------------------- - - - POTLOK: cpu time 0.0063: real time 0.0063 - SETDIJ: cpu time 0.0030: real time 0.0030 - EDDIAG: cpu time 0.8572: real time 0.8594 - RMM-DIIS: cpu time 3.1432: real time 3.1501 - ORTHCH: cpu time 0.0945: real time 0.0962 - DOS: cpu time 0.0037: real time 0.0037 - CHARGE: cpu time 0.2174: real time 0.2178 - MIXING: cpu time 0.0010: real time 0.0005 - -------------------------------------------- - LOOP: cpu time 4.3263: real time 4.3370 - - eigenvalue-minimisations : 32157 - total energy-change (2. order) : 0.3557072E+01 (-0.5126209E+01) - number of electron 26.0000010 magnetization - augmentation part 1.7344693 magnetization - - Broyden mixing: - rms(total) = 0.63965E+01 rms(broyden)= 0.63965E+01 - rms(prec ) = 0.64289E+01 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 2.3193 - 2.3193 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -478.34595767 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.69314398 - PAW double counting = 2583.11263522 -2584.59837190 - entropy T*S EENTRO = -0.00315334 - eigenvalues EBANDS = -810.39049628 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.35881744 eV - - energy without entropy = -48.35566410 energy(sigma->0) = -48.35724077 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 7) --------------------------------------- - - - POTLOK: cpu time 0.0086: real time 0.0151 - SETDIJ: cpu time 0.0028: real time 0.0028 - EDDIAG: cpu time 0.8614: real time 0.8634 - RMM-DIIS: cpu time 3.0067: real time 3.0125 - ORTHCH: cpu time 0.0904: real time 0.0906 - DOS: cpu time 0.0038: real time 0.0038 - CHARGE: cpu time 0.2174: real time 0.2189 - MIXING: cpu time 0.0004: real time 0.0004 - -------------------------------------------- - LOOP: cpu time 4.1915: real time 4.2075 - - eigenvalue-minimisations : 31891 - total energy-change (2. order) :-0.1869340E+00 (-0.1169757E+01) - number of electron 26.0000010 magnetization - augmentation part 1.7769450 magnetization - - Broyden mixing: - rms(total) = 0.10740E+01 rms(broyden)= 0.10740E+01 - rms(prec ) = 0.13069E+01 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.5887 - 1.0277 2.1498 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -468.77317788 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.19468253 - PAW double counting = 3317.64592811 -3318.50891194 - entropy T*S EENTRO = -0.00279364 - eigenvalues EBANDS = -820.27486120 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.54575148 eV - - energy without entropy = -48.54295784 energy(sigma->0) = -48.54435466 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 8) --------------------------------------- - - - POTLOK: cpu time 0.0061: real time 0.0062 - SETDIJ: cpu time 0.0027: real time 0.0027 - EDDIAG: cpu time 0.8569: real time 0.8592 - RMM-DIIS: cpu time 3.1012: real time 3.1079 - ORTHCH: cpu time 0.0908: real time 0.0928 - DOS: cpu time 0.0038: real time 0.0038 - CHARGE: cpu time 0.2182: real time 0.2185 - MIXING: cpu time 0.0005: real time 0.0005 - -------------------------------------------- - LOOP: cpu time 4.2803: real time 4.2918 - - eigenvalue-minimisations : 29478 - total energy-change (2. order) : 0.4696527E+00 (-0.1641795E+00) - number of electron 26.0000010 magnetization - augmentation part 1.7495559 magnetization - - Broyden mixing: - rms(total) = 0.94387E+00 rms(broyden)= 0.94387E+00 - rms(prec ) = 0.94566E+00 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.7834 - 1.5400 1.9052 1.9052 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -481.10425992 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.50004761 - PAW double counting = 3311.78596750 -3311.19575724 - entropy T*S EENTRO = -0.00267424 - eigenvalues EBANDS = -809.23280508 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.07609882 eV - - energy without entropy = -48.07342458 energy(sigma->0) = -48.07476170 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 9) --------------------------------------- - - - POTLOK: cpu time 0.0065: real time 0.0165 - SETDIJ: cpu time 0.0029: real time 0.0029 - EDDIAG: cpu time 0.8609: real time 0.8633 - RMM-DIIS: cpu time 2.9123: real time 2.9192 - ORTHCH: cpu time 0.0968: real time 0.0971 - DOS: cpu time 0.0038: real time 0.0038 - CHARGE: cpu time 0.2174: real time 0.2179 - MIXING: cpu time 0.0005: real time 0.0005 - -------------------------------------------- - LOOP: cpu time 4.1010: real time 4.1212 - - eigenvalue-minimisations : 31189 - total energy-change (2. order) :-0.4703762E-01 (-0.5300665E-01) - number of electron 26.0000010 magnetization - augmentation part 1.7619850 magnetization - - Broyden mixing: - rms(total) = 0.37364E+00 rms(broyden)= 0.37364E+00 - rms(prec ) = 0.50262E+00 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.8041 - 2.5350 2.5350 1.0732 1.0732 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -476.54735144 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.37995814 - PAW double counting = 3192.69887022 -3192.42542193 - entropy T*S EENTRO = -0.00286656 - eigenvalues EBANDS = -813.39970742 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.12313644 eV - - energy without entropy = -48.12026988 energy(sigma->0) = -48.12170316 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 10) --------------------------------------- - - - POTLOK: cpu time 0.0062: real time 0.0062 - SETDIJ: cpu time 0.0027: real time 0.0027 - EDDIAG: cpu time 0.8582: real time 0.8613 - RMM-DIIS: cpu time 3.1267: real time 3.1349 - ORTHCH: cpu time 0.0904: real time 0.0905 - DOS: cpu time 0.0037: real time 0.0037 - CHARGE: cpu time 0.2194: real time 0.2197 - MIXING: cpu time 0.0020: real time 0.0015 - -------------------------------------------- - LOOP: cpu time 4.3092: real time 4.3205 - - eigenvalue-minimisations : 29390 - total energy-change (2. order) : 0.2966125E-01 (-0.4742700E-01) - number of electron 26.0000010 magnetization - augmentation part 1.7423041 magnetization - - Broyden mixing: - rms(total) = 0.31849E+00 rms(broyden)= 0.31849E+00 - rms(prec ) = 0.35866E+00 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.5899 - 2.6842 1.6840 1.6840 1.0048 0.8926 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -482.81360439 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.53890578 - PAW double counting = 3121.35646553 -3120.29858400 - entropy T*S EENTRO = -0.00297373 - eigenvalues EBANDS = -808.04706694 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.09347519 eV - - energy without entropy = -48.09050147 energy(sigma->0) = -48.09198833 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 11) --------------------------------------- - - - POTLOK: cpu time 0.0050: real time 0.0156 - SETDIJ: cpu time 0.0028: real time 0.0028 - EDDIAG: cpu time 0.8582: real time 0.8607 -WARNING in EDDRMM: call to ZHEGV failed, returncode = 8 4 2 - RMM-DIIS: cpu time 3.6274: real time 3.6355 - ORTHCH: cpu time 0.0911: real time 0.0912 - DOS: cpu time 0.0038: real time 0.0038 - CHARGE: cpu time 0.2177: real time 0.2182 - MIXING: cpu time 0.0005: real time 0.0005 - -------------------------------------------- - LOOP: cpu time 4.8065: real time 4.8283 - - eigenvalue-minimisations : 29737 - total energy-change (2. order) : 0.2156037E-01 (-0.5977483E-02) - number of electron 26.0000010 magnetization - augmentation part 1.7466636 magnetization - - Broyden mixing: - rms(total) = 0.53781E-01 rms(broyden)= 0.53781E-01 - rms(prec ) = 0.62072E-01 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.3891 - 2.6733 1.7034 1.7034 1.0132 0.8845 0.3572 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -480.78216452 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.47821903 - PAW double counting = 3189.30069522 -3188.42317580 - entropy T*S EENTRO = -0.00299710 - eigenvalues EBANDS = -809.81587419 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.07191482 eV - - energy without entropy = -48.06891772 energy(sigma->0) = -48.07041627 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 12) --------------------------------------- - - - POTLOK: cpu time 0.0062: real time 0.0062 - SETDIJ: cpu time 0.0028: real time 0.0028 - EDDIAG: cpu time 0.8529: real time 0.8567 -WARNING in EDDRMM: call to ZHEGV failed, returncode = 8 4 2 - RMM-DIIS: cpu time 3.4862: real time 3.4923 - ORTHCH: cpu time 0.0915: real time 0.0917 - DOS: cpu time 0.0037: real time 0.0037 - CHARGE: cpu time 0.2184: real time 0.2187 - MIXING: cpu time 0.0006: real time 0.0006 - -------------------------------------------- - LOOP: cpu time 4.6622: real time 4.6726 - - eigenvalue-minimisations : 30551 - total energy-change (2. order) : 0.8869093E-03 (-0.8814040E-03) - number of electron 26.0000010 magnetization - augmentation part 1.7475456 magnetization - - Broyden mixing: - rms(total) = 0.17327E-01 rms(broyden)= 0.17326E-01 - rms(prec ) = 0.19640E-01 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.3147 - 2.6706 1.6701 1.6701 1.0021 0.9039 0.6430 0.6430 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -480.57803071 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.47228286 - PAW double counting = 3197.70507194 -3196.84324057 - entropy T*S EENTRO = -0.00301416 - eigenvalues EBANDS = -809.99747983 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.07102791 eV - - energy without entropy = -48.06801376 energy(sigma->0) = -48.06952083 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 13) --------------------------------------- - - - POTLOK: cpu time 0.0063: real time 0.0063 - SETDIJ: cpu time 0.0028: real time 0.0028 - EDDIAG: cpu time 0.8539: real time 0.8558 - RMM-DIIS: cpu time 3.3017: real time 3.3099 - ORTHCH: cpu time 0.0903: real time 0.0905 - DOS: cpu time 0.0037: real time 0.0037 - CHARGE: cpu time 0.2175: real time 0.2177 - MIXING: cpu time 0.0006: real time 0.0005 - -------------------------------------------- - LOOP: cpu time 4.4767: real time 4.4872 - - eigenvalue-minimisations : 27907 - total energy-change (2. order) :-0.1094469E-03 (-0.1819417E-03) - number of electron 26.0000010 magnetization - augmentation part 1.7473309 magnetization - - Broyden mixing: - rms(total) = 0.41060E-01 rms(broyden)= 0.41060E-01 - rms(prec ) = 0.43597E-01 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.5889 - 2.6762 2.6235 1.8063 1.8063 1.0829 1.0829 0.8167 0.8167 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -480.71544123 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.47703876 - PAW double counting = 3194.30045733 -3193.42429176 - entropy T*S EENTRO = -0.00304443 - eigenvalues EBANDS = -809.87923859 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.07113736 eV - - energy without entropy = -48.06809293 energy(sigma->0) = -48.06961515 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 14) --------------------------------------- - - - POTLOK: cpu time 0.0064: real time 0.0152 - SETDIJ: cpu time 0.0027: real time 0.0027 - EDDIAG: cpu time 0.8625: real time 0.8642 - RMM-DIIS: cpu time 3.4730: real time 3.4807 - ORTHCH: cpu time 0.0958: real time 0.0960 - DOS: cpu time 0.0033: real time 0.0033 - CHARGE: cpu time 0.2181: real time 0.2185 - MIXING: cpu time 0.0006: real time 0.0006 - -------------------------------------------- - LOOP: cpu time 4.6625: real time 4.6814 - - eigenvalue-minimisations : 28867 - total energy-change (2. order) :-0.4802788E-04 (-0.5334102E-04) - number of electron 26.0000010 magnetization - augmentation part 1.7471770 magnetization - - Broyden mixing: - rms(total) = 0.11318E-01 rms(broyden)= 0.11318E-01 - rms(prec ) = 0.20045E-01 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.4879 - 2.6297 2.6297 1.6936 1.3132 1.1879 1.1879 0.9918 0.8785 0.8785 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -480.78948024 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.47969724 - PAW double counting = 3200.45165620 -3199.56117304 - entropy T*S EENTRO = -0.00304439 - eigenvalues EBANDS = -809.82222371 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.07118539 eV - - energy without entropy = -48.06814100 energy(sigma->0) = -48.06966319 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 15) --------------------------------------- - - - POTLOK: cpu time 0.0062: real time 0.0062 - SETDIJ: cpu time 0.0028: real time 0.0028 - EDDIAG: cpu time 0.8568: real time 0.8614 - RMM-DIIS: cpu time 3.2087: real time 3.2162 - ORTHCH: cpu time 0.0943: real time 0.0959 - DOS: cpu time 0.0037: real time 0.0037 - CHARGE: cpu time 0.2176: real time 0.2180 - MIXING: cpu time 0.0006: real time 0.0006 - -------------------------------------------- - LOOP: cpu time 4.3907: real time 4.4048 - - eigenvalue-minimisations : 27375 - total energy-change (2. order) : 0.7992486E-04 (-0.8025044E-04) - number of electron 26.0000010 magnetization - augmentation part 1.7478758 magnetization - - Broyden mixing: - rms(total) = 0.46851E-02 rms(broyden)= 0.46851E-02 - rms(prec ) = 0.51870E-02 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.3579 - 2.7839 2.5249 1.4729 1.4729 1.1537 1.1537 0.9594 0.9133 0.9133 0.2310 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -480.57031732 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.47337481 - PAW double counting = 3205.37333857 -3204.50053139 - entropy T*S EENTRO = -0.00305052 - eigenvalues EBANDS = -810.01730217 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.07110546 eV - - energy without entropy = -48.06805494 energy(sigma->0) = -48.06958020 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 16) --------------------------------------- - - - POTLOK: cpu time 0.0062: real time 0.0169 - SETDIJ: cpu time 0.0029: real time 0.0029 - EDDIAG: cpu time 0.8529: real time 0.8553 - RMM-DIIS: cpu time 2.8952: real time 2.9013 - ORTHCH: cpu time 0.0905: real time 0.0907 - DOS: cpu time 0.0037: real time 0.0037 - CHARGE: cpu time 0.2153: real time 0.2156 - MIXING: cpu time 0.0008: real time 0.0008 - -------------------------------------------- - LOOP: cpu time 4.0684: real time 4.0872 - - eigenvalue-minimisations : 26944 - total energy-change (2. order) : 0.6773008E-05 (-0.9673818E-05) - number of electron 26.0000010 magnetization - augmentation part 1.7479216 magnetization - - Broyden mixing: - rms(total) = 0.39083E-02 rms(broyden)= 0.39083E-02 - rms(prec ) = 0.48812E-02 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.3253 - 2.8948 2.4553 1.5944 1.2157 1.2157 1.0656 1.0656 0.9218 0.9218 0.6138 - 0.6138 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -480.57208370 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.47337122 - PAW double counting = 3205.24324251 -3204.37022275 - entropy T*S EENTRO = -0.00304889 - eigenvalues EBANDS = -810.01573963 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.07109869 eV - - energy without entropy = -48.06804980 energy(sigma->0) = -48.06957425 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 17) --------------------------------------- - - - POTLOK: cpu time 0.0061: real time 0.0061 - SETDIJ: cpu time 0.0027: real time 0.0027 - EDDIAG: cpu time 0.8539: real time 0.8561 - RMM-DIIS: cpu time 2.4896: real time 2.4948 - ORTHCH: cpu time 0.0919: real time 0.0936 - DOS: cpu time 0.0037: real time 0.0037 - CHARGE: cpu time 0.2152: real time 0.2157 - MIXING: cpu time 0.0007: real time 0.0007 - -------------------------------------------- - LOOP: cpu time 3.6630: real time 3.6735 - - eigenvalue-minimisations : 21111 - total energy-change (2. order) :-0.1378648E-06 (-0.3109433E-05) - number of electron 26.0000010 magnetization - augmentation part 1.7479123 magnetization - - Broyden mixing: - rms(total) = 0.28181E-02 rms(broyden)= 0.28181E-02 - rms(prec ) = 0.39149E-02 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.4710 - 2.9079 2.2924 2.2924 1.6621 1.6621 1.2410 1.2410 0.9431 0.9431 0.9557 - 0.9062 0.6049 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -480.57833821 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.47347056 - PAW double counting = 3205.16062297 -3204.28612410 - entropy T*S EENTRO = -0.00305011 - eigenvalues EBANDS = -810.01106249 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.07109883 eV - - energy without entropy = -48.06804872 energy(sigma->0) = -48.06957377 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 18) --------------------------------------- - - - POTLOK: cpu time 0.0113: real time 0.0161 - SETDIJ: cpu time 0.0028: real time 0.0028 - EDDIAG: cpu time 0.8562: real time 0.8582 - RMM-DIIS: cpu time 3.0636: real time 3.0697 - ORTHCH: cpu time 0.0905: real time 0.0907 - DOS: cpu time 0.0036: real time 0.0037 - CHARGE: cpu time 0.2153: real time 0.2157 - MIXING: cpu time 0.0008: real time 0.0008 - -------------------------------------------- - LOOP: cpu time 4.2441: real time 4.2575 - - eigenvalue-minimisations : 25981 - total energy-change (2. order) : 0.2551284E-05 (-0.2256845E-05) - number of electron 26.0000010 magnetization - augmentation part 1.7478071 magnetization - - Broyden mixing: - rms(total) = 0.71135E-03 rms(broyden)= 0.71134E-03 - rms(prec ) = 0.91622E-03 - weight for this iteration 100.00 - - eigenvalues of (default mixing * dielectric matrix) - average eigenvalue GAMMA= 1.4171 - 2.6811 2.5386 1.7609 1.7609 1.7689 1.4591 1.4591 0.8833 0.8833 1.0096 - 0.8463 0.6854 0.6854 - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -480.61644072 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.47429532 - PAW double counting = 3204.55531159 -3203.67482965 - entropy T*S EENTRO = -0.00304973 - eigenvalues EBANDS = -809.97976563 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.07109628 eV - - energy without entropy = -48.06804655 energy(sigma->0) = -48.06957141 - - --------------------------------------------------------------------------------------------------------- - - - - ---------------------------------------- Iteration 1( 19) --------------------------------------- - - - POTLOK: cpu time 0.0061: real time 0.0061 - SETDIJ: cpu time 0.0028: real time 0.0028 - EDDIAG: cpu time 0.8529: real time 0.8552 - RMM-DIIS: cpu time 2.5286: real time 2.5345 - ORTHCH: cpu time 0.0907: real time 0.0909 - DOS: cpu time 0.0037: real time 0.0037 - -------------------------------------------- - LOOP: cpu time 3.4848: real time 3.4932 - - eigenvalue-minimisations : 18928 - total energy-change (2. order) : 0.3110167E-06 (-0.2199411E-06) - number of electron 26.0000010 magnetization - augmentation part 1.7478071 magnetization - - Free energy of the ion-electron system (eV) - --------------------------------------------------- - alpha Z PSCENC = 131.43308500 - Ewald energy TEWEN = -1959.85115532 - -Hartree energ DENC = -480.61520692 - -exchange EXHF = 0.00000000 - -V(xc)+E(xc) XCENC = 33.47431066 - PAW double counting = 3204.45646866 -3203.57677692 - entropy T*S EENTRO = -0.00304986 - eigenvalues EBANDS = -809.98022412 - atomic energy EATOM = 3036.59145287 - Solvation Ediel_sol = 0.00000000 - --------------------------------------------------- - free energy TOTEN = -48.07109596 eV - - energy without entropy = -48.06804610 energy(sigma->0) = -48.06957103 - - --------------------------------------------------------------------------------------------------------- - - - - - average (electrostatic) potential at core - the test charge radii are 0.9757 0.6353 - (the norm of the test charge is 1.0000) - 1 -88.4748 2 -52.0480 3 -52.1785 4 -52.6183 - - - - E-fermi : 7.8828 XC(G=0): -12.0496 alpha+bet :-19.6080 - - - k-point 1 : 0.0000 0.0000 0.0000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7478 2.00000 - 5 -30.0216 2.00000 - 6 -29.9884 2.00000 - 7 -29.8113 2.00000 - 8 -2.0041 2.00000 - 9 4.4237 2.00000 - 10 4.8277 2.00000 - 11 6.4981 2.00000 - 12 6.9617 2.00000 - 13 8.1586 0.00010 - 14 8.8821 0.00000 - 15 8.9648 0.00000 - 16 9.0855 0.00000 - 17 13.1593 0.00000 - 18 14.6689 0.00000 - - k-point 2 : 0.0667 0.0000 0.0000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7478 2.00000 - 5 -30.0237 2.00000 - 6 -29.9882 2.00000 - 7 -29.8111 2.00000 - 8 -1.9535 2.00000 - 9 4.3336 2.00000 - 10 4.8001 2.00000 - 11 6.5232 2.00000 - 12 6.7555 2.00000 - 13 8.3862 0.00000 - 14 8.4025 0.00000 - 15 8.9705 0.00000 - 16 9.5855 0.00000 - 17 13.3605 0.00000 - 18 14.6572 0.00000 - - k-point 3 : 0.1333 0.0000 0.0000 - band No. band energies occupation - 1 -91.8814 2.00000 - 2 -91.4262 2.00000 - 3 -91.2911 2.00000 - 4 -65.7477 2.00000 - 5 -30.0297 2.00000 - 6 -29.9877 2.00000 - 7 -29.8105 2.00000 - 8 -1.8058 2.00000 - 9 4.0326 2.00000 - 10 4.7589 2.00000 - 11 6.3613 2.00000 - 12 6.6323 2.00000 - 13 7.8755 1.08202 - 14 8.8446 0.00000 - 15 8.9868 0.00000 - 16 10.1754 0.00000 - 17 14.0117 0.00000 - 18 14.7252 0.00000 - - k-point 4 : 0.2000 0.0000 0.0000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4258 2.00000 - 3 -91.2907 2.00000 - 4 -65.7475 2.00000 - 5 -30.0383 2.00000 - 6 -29.9868 2.00000 - 7 -29.8096 2.00000 - 8 -1.5620 2.00000 - 9 3.5407 2.00000 - 10 4.7314 2.00000 - 11 5.9618 2.00000 - 12 6.8672 2.00000 - 13 7.4063 2.00000 - 14 9.0110 0.00000 - 15 9.3490 0.00000 - 16 10.7563 0.00000 - 17 14.0913 0.00000 - 18 15.1642 0.00000 - - k-point 5 : 0.2667 0.0000 0.0000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7473 2.00000 - 5 -30.0481 2.00000 - 6 -29.9858 2.00000 - 7 -29.8086 2.00000 - 8 -1.2340 2.00000 - 9 2.9354 2.00000 - 10 4.7102 2.00000 - 11 5.6128 2.00000 - 12 7.0130 2.00000 - 13 7.2261 2.00000 - 14 9.0390 0.00000 - 15 9.8394 0.00000 - 16 11.3191 0.00000 - 17 14.0352 0.00000 - 18 15.4144 0.00000 - - k-point 6 : 0.3333 0.0000 0.0000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7471 2.00000 - 5 -30.0576 2.00000 - 6 -29.9848 2.00000 - 7 -29.8076 2.00000 - 8 -0.8326 2.00000 - 9 2.2914 2.00000 - 10 4.6917 2.00000 - 11 5.3376 2.00000 - 12 6.7081 2.00000 - 13 7.6717 1.99716 - 14 9.0662 0.00000 - 15 10.2804 0.00000 - 16 11.8535 0.00000 - 17 13.4527 0.00000 - 18 14.9300 0.00000 - - k-point 7 : 0.4000 0.0000 0.0000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7470 2.00000 - 5 -30.0651 2.00000 - 6 -29.9841 2.00000 - 7 -29.8068 2.00000 - 8 -0.3829 2.00000 - 9 1.6674 2.00000 - 10 4.6772 2.00000 - 11 5.1483 2.00000 - 12 6.5003 2.00000 - 13 8.1260 0.00058 - 14 9.0876 0.00000 - 15 10.6305 0.00000 - 16 12.3305 0.00000 - 17 12.9072 0.00000 - 18 15.1709 0.00000 - - k-point 8 : 0.4667 0.0000 0.0000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7470 2.00000 - 5 -30.0692 2.00000 - 6 -29.9837 2.00000 - 7 -29.8064 2.00000 - 8 0.0259 2.00000 - 9 1.1640 2.00000 - 10 4.6691 2.00000 - 11 5.0521 2.00000 - 12 6.3951 2.00000 - 13 8.4419 0.00000 - 14 9.0994 0.00000 - 15 10.8329 0.00000 - 16 12.5866 0.00000 - 17 12.7497 0.00000 - 18 15.0542 0.00000 - - k-point 9 : 0.0000 0.0667 0.0000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7478 2.00000 - 5 -30.0213 2.00000 - 6 -29.9915 2.00000 - 7 -29.8110 2.00000 - 8 -1.9529 2.00000 - 9 4.3901 2.00000 - 10 4.7755 2.00000 - 11 6.3415 2.00000 - 12 6.9388 2.00000 - 13 8.3265 0.00000 - 14 8.4311 0.00000 - 15 8.8898 0.00000 - 16 9.6264 0.00000 - 17 13.5937 0.00000 - 18 14.7192 0.00000 - - k-point 10 : 0.0667 0.0667 0.0000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4256 2.00000 - 3 -91.2905 2.00000 - 4 -65.7477 2.00000 - 5 -30.0234 2.00000 - 6 -29.9912 2.00000 - 7 -29.8108 2.00000 - 8 -1.9023 2.00000 - 9 4.3246 2.00000 - 10 4.7293 2.00000 - 11 6.2087 2.00000 - 12 6.9819 2.00000 - 13 8.2546 0.00000 - 14 8.4565 0.00000 - 15 8.8007 0.00000 - 16 9.9214 0.00000 - 17 13.6485 0.00000 - 18 14.6504 0.00000 - - k-point 11 : 0.1333 0.0667 0.0000 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7476 2.00000 - 5 -30.0294 2.00000 - 6 -29.9906 2.00000 - 7 -29.8102 2.00000 - 8 -1.7528 2.00000 - 9 4.0516 2.00000 - 10 4.6663 2.00000 - 11 5.9785 2.00000 - 12 7.0276 2.00000 - 13 7.8427 1.42889 - 14 8.7719 0.00000 - 15 8.8056 0.00000 - 16 10.4508 0.00000 - 17 14.3989 0.00000 - 18 15.1127 0.00000 - - k-point 12 : 0.2000 0.0667 0.0000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7474 2.00000 - 5 -30.0379 2.00000 - 6 -29.9898 2.00000 - 7 -29.8093 2.00000 - 8 -1.5097 2.00000 - 9 3.5587 2.00000 - 10 4.6450 2.00000 - 11 5.7408 2.00000 - 12 7.1387 2.00000 - 13 7.4085 2.00000 - 14 8.7921 0.00000 - 15 9.2640 0.00000 - 16 11.0130 0.00000 - 17 14.0760 0.00000 - 18 15.2142 0.00000 - - k-point 13 : 0.2667 0.0667 0.0000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4252 2.00000 - 3 -91.2903 2.00000 - 4 -65.7472 2.00000 - 5 -30.0478 2.00000 - 6 -29.9888 2.00000 - 7 -29.8083 2.00000 - 8 -1.1815 2.00000 - 9 2.9494 2.00000 - 10 4.6412 2.00000 - 11 5.4944 2.00000 - 12 7.0285 2.00000 - 13 7.3926 2.00000 - 14 8.8271 0.00000 - 15 9.7408 0.00000 - 16 11.5692 0.00000 - 17 13.8620 0.00000 - 18 14.8771 0.00000 - - k-point 14 : 0.3333 0.0667 0.0000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7471 2.00000 - 5 -30.0573 2.00000 - 6 -29.9878 2.00000 - 7 -29.8073 2.00000 - 8 -0.7815 2.00000 - 9 2.3062 2.00000 - 10 4.6436 2.00000 - 11 5.2669 2.00000 - 12 6.7293 2.00000 - 13 7.7653 1.90327 - 14 8.8638 0.00000 - 15 10.1806 0.00000 - 16 12.1051 0.00000 - 17 13.3952 0.00000 - 18 14.8765 0.00000 - - k-point 15 : 0.4000 0.0667 0.0000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7470 2.00000 - 5 -30.0648 2.00000 - 6 -29.9871 2.00000 - 7 -29.8065 2.00000 - 8 -0.3310 2.00000 - 9 1.6815 2.00000 - 10 4.6514 2.00000 - 11 5.0908 2.00000 - 12 6.5240 2.00000 - 13 8.1695 0.00005 - 14 8.8934 0.00000 - 15 10.5364 0.00000 - 16 12.5997 0.00000 - 17 12.8998 0.00000 - 18 15.5154 0.00000 - - k-point 16 : 0.4667 0.0667 0.0000 - band No. band energies occupation - 1 -91.8813 2.00000 - 2 -91.4263 2.00000 - 3 -91.2913 2.00000 - 4 -65.7469 2.00000 - 5 -30.0689 2.00000 - 6 -29.9867 2.00000 - 7 -29.8062 2.00000 - 8 0.0847 2.00000 - 9 1.1741 2.00000 - 10 4.6613 2.00000 - 11 4.9916 2.00000 - 12 6.4197 2.00000 - 13 8.4555 0.00000 - 14 8.9099 0.00000 - 15 10.7473 0.00000 - 16 12.4480 0.00000 - 17 12.9600 0.00000 - 18 14.8774 0.00000 - - k-point 17 : 0.0000 0.1333 0.0000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7476 2.00000 - 5 -30.0204 2.00000 - 6 -29.9998 2.00000 - 7 -29.8102 2.00000 - 8 -1.7946 2.00000 - 9 4.2094 2.00000 - 10 4.6772 2.00000 - 11 5.9995 2.00000 - 12 6.9517 2.00000 - 13 7.8739 1.09960 - 14 8.7041 0.00000 - 15 8.9110 0.00000 - 16 10.2112 0.00000 - 17 14.2659 0.00000 - 18 14.8795 0.00000 - - k-point 18 : 0.0667 0.1333 0.0000 - band No. band energies occupation - 1 -91.8814 2.00000 - 2 -91.4263 2.00000 - 3 -91.2912 2.00000 - 4 -65.7476 2.00000 - 5 -30.0226 2.00000 - 6 -29.9996 2.00000 - 7 -29.8099 2.00000 - 8 -1.7450 2.00000 - 9 4.2129 2.00000 - 10 4.5661 2.00000 - 11 5.8355 2.00000 - 12 7.1501 2.00000 - 13 7.8382 1.47145 - 14 8.7026 0.00000 - 15 8.7336 0.00000 - 16 10.4623 0.00000 - 17 13.8631 0.00000 - 18 14.8598 0.00000 - - k-point 19 : 0.1333 0.1333 0.0000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7475 2.00000 - 5 -30.0285 2.00000 - 6 -29.9991 2.00000 - 7 -29.8093 2.00000 - 8 -1.5968 2.00000 - 9 4.0989 2.00000 - 10 4.3522 2.00000 - 11 5.6129 2.00000 - 12 7.4328 2.00000 - 13 7.6870 1.99438 - 14 8.4839 0.00000 - 15 8.7940 0.00000 - 16 10.9754 0.00000 - 17 14.1029 0.00000 - 18 15.2039 0.00000 - - k-point 20 : 0.2000 0.1333 0.0000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7473 2.00000 - 5 -30.0371 2.00000 - 6 -29.9982 2.00000 - 7 -29.8084 2.00000 - 8 -1.3533 2.00000 - 9 3.5980 2.00000 - 10 4.3620 2.00000 - 11 5.4512 2.00000 - 12 7.3952 2.00000 - 13 7.5979 1.99994 - 14 8.3845 0.00000 - 15 9.0910 0.00000 - 16 11.5502 0.00000 - 17 14.7238 0.00000 - 18 15.9954 0.00000 - - k-point 21 : 0.2667 0.1333 0.0000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7471 2.00000 - 5 -30.0470 2.00000 - 6 -29.9972 2.00000 - 7 -29.8074 2.00000 - 8 -1.0273 2.00000 - 9 2.9802 2.00000 - 10 4.4181 2.00000 - 11 5.2968 2.00000 - 12 7.0683 2.00000 - 13 7.7534 1.93270 - 14 8.3858 0.00000 - 15 9.5100 0.00000 - 16 12.1157 0.00000 - 17 13.7017 0.00000 - 18 16.0755 0.00000 - - k-point 22 : 0.3333 0.1333 0.0000 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4260 2.00000 - 3 -91.2911 2.00000 - 4 -65.7470 2.00000 - 5 -30.0566 2.00000 - 6 -29.9963 2.00000 - 7 -29.8065 2.00000 - 8 -0.6301 2.00000 - 9 2.3392 2.00000 - 10 4.4826 2.00000 - 11 5.1281 2.00000 - 12 6.7895 2.00000 - 13 7.9927 0.12001 - 14 8.4203 0.00000 - 15 9.9342 0.00000 - 16 12.6686 0.00000 - 17 14.6904 0.00000 - 18 16.3415 0.00000 - - k-point 23 : 0.4000 0.1333 0.0000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7468 2.00000 - 5 -30.0640 2.00000 - 6 -29.9955 2.00000 - 7 -29.8057 2.00000 - 8 -0.1783 2.00000 - 9 1.7219 2.00000 - 10 4.5543 2.00000 - 11 4.9634 2.00000 - 12 6.5924 2.00000 - 13 8.2811 0.00000 - 14 8.4564 0.00000 - 15 10.2930 0.00000 - 16 12.6655 0.00000 - 17 13.2024 0.00000 - 18 15.4432 0.00000 - - k-point 24 : 0.4667 0.1333 0.0000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7467 2.00000 - 5 -30.0681 2.00000 - 6 -29.9951 2.00000 - 7 -29.8053 2.00000 - 8 0.2566 2.00000 - 9 1.2033 2.00000 - 10 4.6272 2.00000 - 11 4.8360 2.00000 - 12 6.4912 2.00000 - 13 8.4783 0.00000 - 14 8.4935 0.00000 - 15 10.5194 0.00000 - 16 12.2814 0.00000 - 17 13.6544 0.00000 - 18 14.8524 0.00000 - - k-point 25 : 0.0000 0.2000 0.0000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7473 2.00000 - 5 -30.0191 2.00000 - 6 -30.0121 2.00000 - 7 -29.8089 2.00000 - 8 -1.5376 2.00000 - 9 3.7788 2.00000 - 10 4.6305 2.00000 - 11 5.6232 2.00000 - 12 7.1210 2.00000 - 13 7.3732 2.00000 - 14 8.9428 0.00000 - 15 9.1443 0.00000 - 16 10.7771 0.00000 - 17 14.0933 0.00000 - 18 15.6423 0.00000 - - k-point 26 : 0.0667 0.2000 0.0000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7473 2.00000 - 5 -30.0213 2.00000 - 6 -30.0119 2.00000 - 7 -29.8086 2.00000 - 8 -1.4880 2.00000 - 9 3.7961 2.00000 - 10 4.5072 2.00000 - 11 5.5227 2.00000 - 12 7.3126 2.00000 - 13 7.3745 2.00000 - 14 8.7532 0.00000 - 15 9.0824 0.00000 - 16 11.0146 0.00000 - 17 13.9004 0.00000 - 18 15.4021 0.00000 - - k-point 27 : 0.1333 0.2000 0.0000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7472 2.00000 - 5 -30.0271 2.00000 - 6 -30.0113 2.00000 - 7 -29.8080 2.00000 - 8 -1.3394 2.00000 - 9 3.8230 2.00000 - 10 4.1696 2.00000 - 11 5.3756 2.00000 - 12 7.3639 2.00000 - 13 7.6935 1.99258 - 14 8.3844 0.00000 - 15 8.9738 0.00000 - 16 11.5333 0.00000 - 17 14.0395 0.00000 - 18 15.4431 0.00000 - - k-point 28 : 0.2000 0.2000 0.0000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7470 2.00000 - 5 -30.0358 2.00000 - 6 -30.0105 2.00000 - 7 -29.8072 2.00000 - 8 -1.1004 2.00000 - 9 3.5412 2.00000 - 10 4.0159 2.00000 - 11 5.2627 2.00000 - 12 7.2896 2.00000 - 13 7.9988 0.10080 - 14 8.0788 0.00557 - 15 9.0073 0.00000 - 16 12.1244 0.00000 - 17 13.7520 0.00000 - 18 16.7152 0.00000 - - k-point 29 : 0.2667 0.2000 0.0000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7468 2.00000 - 5 -30.0459 2.00000 - 6 -30.0096 2.00000 - 7 -29.8061 2.00000 - 8 -0.7790 2.00000 - 9 2.9721 2.00000 - 10 4.1076 2.00000 - 11 5.1462 2.00000 - 12 7.1030 2.00000 - 13 7.9500 0.34166 - 14 8.1422 0.00024 - 15 9.2822 0.00000 - 16 12.7110 0.00000 - 17 13.3886 0.00000 - 18 15.6710 0.00000 - - k-point 30 : 0.3333 0.2000 0.0000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7467 2.00000 - 5 -30.0554 2.00000 - 6 -30.0087 2.00000 - 7 -29.8053 2.00000 - 8 -0.3863 2.00000 - 9 2.3710 2.00000 - 10 4.2299 2.00000 - 11 5.0035 2.00000 - 12 6.8764 2.00000 - 13 7.9435 0.39079 - 14 8.2650 0.00000 - 15 9.6513 0.00000 - 16 12.8907 0.00000 - 17 13.2663 0.00000 - 18 15.5200 0.00000 - - k-point 31 : 0.4000 0.2000 0.0000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7465 2.00000 - 5 -30.0629 2.00000 - 6 -30.0079 2.00000 - 7 -29.8045 2.00000 - 8 0.0623 2.00000 - 9 1.7821 2.00000 - 10 4.3653 2.00000 - 11 4.8399 2.00000 - 12 6.6971 2.00000 - 13 7.9722 0.20622 - 14 8.4241 0.00000 - 15 9.9878 0.00000 - 16 12.3795 0.00000 - 17 13.7744 0.00000 - 18 15.4918 0.00000 - - k-point 32 : 0.4667 0.2000 0.0000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7464 2.00000 - 5 -30.0669 2.00000 - 6 -30.0075 2.00000 - 7 -29.8040 2.00000 - 8 0.5200 2.00000 - 9 1.2543 2.00000 - 10 4.5122 2.00000 - 11 4.6723 2.00000 - 12 6.6015 2.00000 - 13 7.9946 0.11393 - 14 8.5494 0.00000 - 15 10.2089 0.00000 - 16 12.0275 0.00000 - 17 14.4133 0.00000 - 18 15.6167 0.00000 - - k-point 33 : 0.0000 0.2667 0.0000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2908 2.00000 - 4 -65.7470 2.00000 - 5 -30.0263 2.00000 - 6 -30.0177 2.00000 - 7 -29.8073 2.00000 - 8 -1.1910 2.00000 - 9 3.1811 2.00000 - 10 4.6122 2.00000 - 11 5.2814 2.00000 - 12 6.9503 2.00000 - 13 7.4746 2.00000 - 14 8.9798 0.00000 - 15 9.5814 0.00000 - 16 11.3283 0.00000 - 17 13.6460 0.00000 - 18 15.5948 0.00000 - - k-point 34 : 0.0667 0.2667 0.0000 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7470 2.00000 - 5 -30.0261 2.00000 - 6 -30.0198 2.00000 - 7 -29.8072 2.00000 - 8 -1.1414 2.00000 - 9 3.1889 2.00000 - 10 4.5083 2.00000 - 11 5.2434 2.00000 - 12 6.9639 2.00000 - 13 7.6097 1.99989 - 14 8.7962 0.00000 - 15 9.4992 0.00000 - 16 11.5568 0.00000 - 17 13.6608 0.00000 - 18 15.2250 0.00000 - - k-point 35 : 0.1333 0.2667 0.0000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7469 2.00000 - 5 -30.0257 2.00000 - 6 -30.0255 2.00000 - 7 -29.8066 2.00000 - 8 -0.9957 2.00000 - 9 3.1942 2.00000 - 10 4.2418 2.00000 - 11 5.1757 2.00000 - 12 7.0004 2.00000 - 13 7.9287 0.51588 - 14 8.4011 0.00000 - 15 9.3080 0.00000 - 16 12.0788 0.00000 - 17 13.5578 0.00000 - 18 15.2519 0.00000 - - k-point 36 : 0.2000 0.2667 0.0000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7467 2.00000 - 5 -30.0345 2.00000 - 6 -30.0247 2.00000 - 7 -29.8057 2.00000 - 8 -0.7602 2.00000 - 9 3.1062 2.00000 - 10 3.9790 2.00000 - 11 5.1030 2.00000 - 12 7.0431 2.00000 - 13 7.9901 0.12911 - 14 8.2728 0.00000 - 15 9.1426 0.00000 - 16 12.6730 0.00000 - 17 13.3289 0.00000 - 18 15.7896 0.00000 - - k-point 37 : 0.2667 0.2667 0.0000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7465 2.00000 - 5 -30.0445 2.00000 - 6 -30.0237 2.00000 - 7 -29.8047 2.00000 - 8 -0.4475 2.00000 - 9 2.8028 2.00000 - 10 3.9098 2.00000 - 11 5.0079 2.00000 - 12 7.0489 2.00000 - 13 7.6784 1.99615 - 14 8.4720 0.00000 - 15 9.1821 0.00000 - 16 12.9563 0.00000 - 17 13.5965 0.00000 - 18 17.2388 0.00000 - - k-point 38 : 0.3333 0.2667 0.0000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7463 2.00000 - 5 -30.0541 2.00000 - 6 -30.0228 2.00000 - 7 -29.8038 2.00000 - 8 -0.0679 2.00000 - 9 2.3493 2.00000 - 10 3.9944 2.00000 - 11 4.8777 2.00000 - 12 6.9573 2.00000 - 13 7.5462 2.00000 - 14 8.5230 0.00000 - 15 9.4304 0.00000 - 16 12.4873 0.00000 - 17 13.6262 0.00000 - 18 16.0306 0.00000 - - k-point 39 : 0.4000 0.2667 0.0000 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4246 2.00000 - 3 -91.2897 2.00000 - 4 -65.7461 2.00000 - 5 -30.0615 2.00000 - 6 -30.0221 2.00000 - 7 -29.8030 2.00000 - 8 0.3633 2.00000 - 9 1.8487 2.00000 - 10 4.1415 2.00000 - 11 4.7166 2.00000 - 12 6.8214 2.00000 - 13 7.5399 2.00000 - 14 8.5695 0.00000 - 15 9.7014 0.00000 - 16 12.0422 0.00000 - 17 13.9068 0.00000 - 18 16.1837 0.00000 - - k-point 40 : 0.4667 0.2667 0.0000 - band No. band energies occupation - 1 -91.8795 2.00000 - 2 -91.4245 2.00000 - 3 -91.2895 2.00000 - 4 -65.7461 2.00000 - 5 -30.0656 2.00000 - 6 -30.0217 2.00000 - 7 -29.8026 2.00000 - 8 0.8283 2.00000 - 9 1.3477 2.00000 - 10 4.3004 2.00000 - 11 4.5506 2.00000 - 12 6.7365 2.00000 - 13 7.5567 2.00000 - 14 8.6157 0.00000 - 15 9.8832 0.00000 - 16 11.7458 0.00000 - 17 14.0429 0.00000 - 18 16.0539 0.00000 - - k-point 41 : 0.0000 0.3333 0.0000 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2910 2.00000 - 4 -65.7468 2.00000 - 5 -30.0398 2.00000 - 6 -30.0163 2.00000 - 7 -29.8059 2.00000 - 8 -0.7675 2.00000 - 9 2.5196 2.00000 - 10 4.5999 2.00000 - 11 5.0061 2.00000 - 12 6.6208 2.00000 - 13 7.9708 0.21318 - 14 9.0157 0.00000 - 15 9.9775 0.00000 - 16 11.8614 0.00000 - 17 13.1993 0.00000 - 18 15.3650 0.00000 - - k-point 42 : 0.0667 0.3333 0.0000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7467 2.00000 - 5 -30.0395 2.00000 - 6 -30.0184 2.00000 - 7 -29.8057 2.00000 - 8 -0.7188 2.00000 - 9 2.5262 2.00000 - 10 4.5193 2.00000 - 11 4.9986 2.00000 - 12 6.6392 2.00000 - 13 8.0523 0.01653 - 14 8.8426 0.00000 - 15 9.8894 0.00000 - 16 12.0868 0.00000 - 17 13.1663 0.00000 - 18 16.1220 0.00000 - - k-point 43 : 0.1333 0.3333 0.0000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7466 2.00000 - 5 -30.0390 2.00000 - 6 -30.0243 2.00000 - 7 -29.8052 2.00000 - 8 -0.5758 2.00000 - 9 2.5363 2.00000 - 10 4.3168 2.00000 - 11 4.9744 2.00000 - 12 6.6919 2.00000 - 13 8.2598 0.00000 - 14 8.4520 0.00000 - 15 9.6694 0.00000 - 16 12.6304 0.00000 - 17 13.0732 0.00000 - 18 15.6443 0.00000 - - k-point 44 : 0.2000 0.3333 0.0000 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2911 2.00000 - 4 -65.7465 2.00000 - 5 -30.0382 2.00000 - 6 -30.0332 2.00000 - 7 -29.8043 2.00000 - 8 -0.3483 2.00000 - 9 2.5183 2.00000 - 10 4.0832 2.00000 - 11 4.9265 2.00000 - 12 6.7709 2.00000 - 13 8.0186 0.05476 - 14 8.5126 0.00000 - 15 9.4183 0.00000 - 16 12.8043 0.00000 - 17 13.1910 0.00000 - 18 15.7181 0.00000 - - k-point 45 : 0.2667 0.3333 0.0000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7462 2.00000 - 5 -30.0432 2.00000 - 6 -30.0373 2.00000 - 7 -29.8034 2.00000 - 8 -0.0478 2.00000 - 9 2.4216 2.00000 - 10 3.9190 2.00000 - 11 4.8440 2.00000 - 12 6.8610 2.00000 - 13 7.6333 1.99958 - 14 8.7054 0.00000 - 15 9.2656 0.00000 - 16 12.4562 0.00000 - 17 13.6001 0.00000 - 18 16.2032 0.00000 - - k-point 46 : 0.3333 0.3333 0.0000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7460 2.00000 - 5 -30.0528 2.00000 - 6 -30.0364 2.00000 - 7 -29.8024 2.00000 - 8 0.3045 2.00000 - 9 2.2066 2.00000 - 10 3.8869 2.00000 - 11 4.7195 2.00000 - 12 6.9324 2.00000 - 13 7.3479 2.00000 - 14 8.7335 0.00000 - 15 9.3281 0.00000 - 16 12.0629 0.00000 - 17 13.7569 0.00000 - 18 16.5710 0.00000 - - k-point 47 : 0.4000 0.3333 0.0000 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7459 2.00000 - 5 -30.0602 2.00000 - 6 -30.0357 2.00000 - 7 -29.8017 2.00000 - 8 0.6908 2.00000 - 9 1.8937 2.00000 - 10 3.9664 2.00000 - 11 4.5594 2.00000 - 12 6.9277 2.00000 - 13 7.2186 2.00000 - 14 8.6985 0.00000 - 15 9.4867 0.00000 - 16 11.7099 0.00000 - 17 13.7542 0.00000 - 18 16.7032 0.00000 - - k-point 48 : 0.4667 0.3333 0.0000 - band No. band energies occupation - 1 -91.8786 2.00000 - 2 -91.4236 2.00000 - 3 -91.2886 2.00000 - 4 -65.7457 2.00000 - 5 -30.0642 2.00000 - 6 -30.0352 2.00000 - 7 -29.8012 2.00000 - 8 1.0768 2.00000 - 9 1.5402 2.00000 - 10 4.0958 2.00000 - 11 4.3989 2.00000 - 12 6.8746 2.00000 - 13 7.2086 2.00000 - 14 8.6828 0.00000 - 15 9.6000 0.00000 - 16 11.4903 0.00000 - 17 13.7171 0.00000 - 18 16.6030 0.00000 - - k-point 49 : 0.0000 0.4000 0.0000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7465 2.00000 - 5 -30.0502 2.00000 - 6 -30.0152 2.00000 - 7 -29.8048 2.00000 - 8 -0.2969 2.00000 - 9 1.8722 2.00000 - 10 4.5904 2.00000 - 11 4.8147 2.00000 - 12 6.3956 2.00000 - 13 8.5207 0.00000 - 14 9.0442 0.00000 - 15 10.2923 0.00000 - 16 12.3631 0.00000 - 17 12.6799 0.00000 - 18 15.4633 0.00000 - - k-point 50 : 0.0667 0.4000 0.0000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7465 2.00000 - 5 -30.0501 2.00000 - 6 -30.0173 2.00000 - 7 -29.8046 2.00000 - 8 -0.2476 2.00000 - 9 1.8793 2.00000 - 10 4.5376 2.00000 - 11 4.8080 2.00000 - 12 6.4159 2.00000 - 13 8.5593 0.00000 - 14 8.8804 0.00000 - 15 10.2052 0.00000 - 16 12.5854 0.00000 - 17 12.5895 0.00000 - 18 14.7751 0.00000 - - k-point 51 : 0.1333 0.4000 0.0000 - band No. band energies occupation - 1 -91.8814 2.00000 - 2 -91.4264 2.00000 - 3 -91.2914 2.00000 - 4 -65.7464 2.00000 - 5 -30.0496 2.00000 - 6 -30.0233 2.00000 - 7 -29.8041 2.00000 - 8 -0.1045 2.00000 - 9 1.8964 2.00000 - 10 4.3983 2.00000 - 11 4.7846 2.00000 - 12 6.4746 2.00000 - 13 8.5014 0.00000 - 14 8.6596 0.00000 - 15 9.9796 0.00000 - 16 12.4726 0.00000 - 17 13.1496 0.00000 - 18 15.1815 0.00000 - - k-point 52 : 0.2000 0.4000 0.0000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2908 2.00000 - 4 -65.7462 2.00000 - 5 -30.0487 2.00000 - 6 -30.0321 2.00000 - 7 -29.8032 2.00000 - 8 0.1204 2.00000 - 9 1.9197 2.00000 - 10 4.2177 2.00000 - 11 4.7361 2.00000 - 12 6.5646 2.00000 - 13 8.0702 0.00802 - 14 8.7844 0.00000 - 15 9.6958 0.00000 - 16 12.2586 0.00000 - 17 13.7021 0.00000 - 18 15.4427 0.00000 - - k-point 53 : 0.2667 0.4000 0.0000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7460 2.00000 - 5 -30.0478 2.00000 - 6 -30.0422 2.00000 - 7 -29.8023 2.00000 - 8 0.4035 2.00000 - 9 1.9363 2.00000 - 10 4.0468 2.00000 - 11 4.6515 2.00000 - 12 6.6739 2.00000 - 13 7.6760 1.99654 - 14 8.8822 0.00000 - 15 9.4477 0.00000 - 16 11.9748 0.00000 - 17 13.8742 0.00000 - 18 16.0112 0.00000 - - k-point 54 : 0.3333 0.4000 0.0000 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4248 2.00000 - 3 -91.2897 2.00000 - 4 -65.7458 2.00000 - 5 -30.0517 2.00000 - 6 -30.0469 2.00000 - 7 -29.8013 2.00000 - 8 0.7108 2.00000 - 9 1.9297 2.00000 - 10 3.9336 2.00000 - 11 4.5238 2.00000 - 12 6.7857 2.00000 - 13 7.3592 2.00000 - 14 8.8793 0.00000 - 15 9.3398 0.00000 - 16 11.6821 0.00000 - 17 13.7440 0.00000 - 18 16.5307 0.00000 - - k-point 55 : 0.4000 0.4000 0.0000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7456 2.00000 - 5 -30.0593 2.00000 - 6 -30.0463 2.00000 - 7 -29.8006 2.00000 - 8 0.9965 2.00000 - 9 1.8877 2.00000 - 10 3.9039 2.00000 - 11 4.3616 2.00000 - 12 6.8809 2.00000 - 13 7.1374 2.00000 - 14 8.7963 0.00000 - 15 9.3615 0.00000 - 16 11.4387 0.00000 - 17 13.5583 0.00000 - 18 16.9470 0.00000 - - k-point 56 : 0.4667 0.4000 0.0000 - band No. band energies occupation - 1 -91.8787 2.00000 - 2 -91.4238 2.00000 - 3 -91.2887 2.00000 - 4 -65.7455 2.00000 - 5 -30.0632 2.00000 - 6 -30.0459 2.00000 - 7 -29.8002 2.00000 - 8 1.1916 2.00000 - 9 1.8308 2.00000 - 10 3.9520 2.00000 - 11 4.2094 2.00000 - 12 6.9473 2.00000 - 13 7.0123 2.00000 - 14 8.7381 0.00000 - 15 9.3978 0.00000 - 16 11.2989 0.00000 - 17 13.4437 0.00000 - 18 16.5925 0.00000 - - k-point 57 : 0.0000 0.4667 0.0000 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7463 2.00000 - 5 -30.0559 2.00000 - 6 -30.0145 2.00000 - 7 -29.8042 2.00000 - 8 0.1293 2.00000 - 9 1.3542 2.00000 - 10 4.5849 2.00000 - 11 4.7168 2.00000 - 12 6.2814 2.00000 - 13 8.9385 0.00000 - 14 9.0598 0.00000 - 15 10.4726 0.00000 - 16 12.1850 0.00000 - 17 12.8255 0.00000 - 18 15.1774 0.00000 - - k-point 58 : 0.0667 0.4667 0.0000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7463 2.00000 - 5 -30.0557 2.00000 - 6 -30.0167 2.00000 - 7 -29.8040 2.00000 - 8 0.1836 2.00000 - 9 1.3565 2.00000 - 10 4.5671 2.00000 - 11 4.6874 2.00000 - 12 6.3024 2.00000 - 13 8.9015 0.00000 - 14 8.9469 0.00000 - 15 10.3933 0.00000 - 16 12.1353 0.00000 - 17 13.0125 0.00000 - 18 15.3429 0.00000 - - k-point 59 : 0.1333 0.4667 0.0000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7462 2.00000 - 5 -30.0552 2.00000 - 6 -30.0227 2.00000 - 7 -29.8035 2.00000 - 8 0.3435 2.00000 - 9 1.3655 2.00000 - 10 4.4967 2.00000 - 11 4.6242 2.00000 - 12 6.3631 2.00000 - 13 8.5307 0.00000 - 14 8.9685 0.00000 - 15 10.1791 0.00000 - 16 12.0342 0.00000 - 17 13.5893 0.00000 - 18 16.0045 0.00000 - - k-point 60 : 0.2000 0.4667 0.0000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7460 2.00000 - 5 -30.0544 2.00000 - 6 -30.0315 2.00000 - 7 -29.8026 2.00000 - 8 0.5914 2.00000 - 9 1.3832 2.00000 - 10 4.3674 2.00000 - 11 4.5524 2.00000 - 12 6.4562 2.00000 - 13 8.1044 0.00172 - 14 8.9932 0.00000 - 15 9.8884 0.00000 - 16 11.8622 0.00000 - 17 14.2861 0.00000 - 18 15.0487 0.00000 - - k-point 61 : 0.2667 0.4667 0.0000 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7459 2.00000 - 5 -30.0535 2.00000 - 6 -30.0416 2.00000 - 7 -29.8017 2.00000 - 8 0.8833 2.00000 - 9 1.4308 2.00000 - 10 4.2192 2.00000 - 11 4.4522 2.00000 - 12 6.5696 2.00000 - 13 7.7127 1.98385 - 14 9.0016 0.00000 - 15 9.5963 0.00000 - 16 11.6488 0.00000 - 17 14.0297 0.00000 - 18 15.9577 0.00000 - - k-point 62 : 0.3333 0.4667 0.0000 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7457 2.00000 - 5 -30.0528 2.00000 - 6 -30.0512 2.00000 - 7 -29.8008 2.00000 - 8 1.1157 2.00000 - 9 1.5761 2.00000 - 10 4.0844 2.00000 - 11 4.3103 2.00000 - 12 6.6854 2.00000 - 13 7.3974 2.00000 - 14 8.9559 0.00000 - 15 9.3894 0.00000 - 16 11.4424 0.00000 - 17 13.7001 0.00000 - 18 16.5151 0.00000 - - k-point 63 : 0.4000 0.4667 0.0000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7455 2.00000 - 5 -30.0587 2.00000 - 6 -30.0521 2.00000 - 7 -29.8000 2.00000 - 8 1.2081 2.00000 - 9 1.8399 2.00000 - 10 3.9754 2.00000 - 11 4.1492 2.00000 - 12 6.7823 2.00000 - 13 7.1786 2.00000 - 14 8.8498 0.00000 - 15 9.3109 0.00000 - 16 11.2830 0.00000 - 17 13.4354 0.00000 - 18 16.6304 0.00000 - - k-point 64 : 0.4667 0.4667 0.0000 - band No. band energies occupation - 1 -91.8793 2.00000 - 2 -91.4243 2.00000 - 3 -91.2893 2.00000 - 4 -65.7454 2.00000 - 5 -30.0627 2.00000 - 6 -30.0518 2.00000 - 7 -29.7996 2.00000 - 8 1.2328 2.00000 - 9 2.0507 2.00000 - 10 3.8985 2.00000 - 11 4.0417 2.00000 - 12 6.8389 2.00000 - 13 7.0660 2.00000 - 14 8.7690 0.00000 - 15 9.2970 0.00000 - 16 11.2437 0.00000 - 17 14.1131 0.00000 - 18 18.0681 0.00000 - - k-point 65 : 0.0000 0.0000 0.0667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7474 2.00000 - 5 -30.0205 2.00000 - 6 -29.9874 2.00000 - 7 -29.8211 2.00000 - 8 -1.9380 2.00000 - 9 4.4295 2.00000 - 10 4.8508 2.00000 - 11 6.3792 2.00000 - 12 6.8138 2.00000 - 13 8.1771 0.00003 - 14 8.8386 0.00000 - 15 8.9434 0.00000 - 16 9.0466 0.00000 - 17 13.4689 0.00000 - 18 14.8465 0.00000 - - k-point 66 : 0.0667 0.0000 0.0667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7474 2.00000 - 5 -30.0226 2.00000 - 6 -29.9872 2.00000 - 7 -29.8209 2.00000 - 8 -1.8859 2.00000 - 9 4.3438 2.00000 - 10 4.8274 2.00000 - 11 6.3656 2.00000 - 12 6.6651 2.00000 - 13 8.2366 0.00000 - 14 8.4561 0.00000 - 15 9.1702 0.00000 - 16 9.3749 0.00000 - 17 14.6979 0.00000 - 18 15.1035 0.00000 - - k-point 67 : 0.1333 0.0000 0.0667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7473 2.00000 - 5 -30.0286 2.00000 - 6 -29.9866 2.00000 - 7 -29.8203 2.00000 - 8 -1.7375 2.00000 - 9 4.0528 2.00000 - 10 4.7878 2.00000 - 11 6.3364 2.00000 - 12 6.3830 2.00000 - 13 8.0619 0.01132 - 14 8.3336 0.00000 - 15 9.5014 0.00000 - 16 9.9115 0.00000 - 17 14.1815 0.00000 - 18 14.9183 0.00000 - - k-point 68 : 0.2000 0.0000 0.0667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7471 2.00000 - 5 -30.0372 2.00000 - 6 -29.9857 2.00000 - 7 -29.8195 2.00000 - 8 -1.4939 2.00000 - 9 3.5647 2.00000 - 10 4.7595 2.00000 - 11 5.9723 2.00000 - 12 6.4743 2.00000 - 13 7.7497 1.94010 - 14 8.4147 0.00000 - 15 9.9423 0.00000 - 16 10.4794 0.00000 - 17 14.3282 0.00000 - 18 15.0758 0.00000 - - k-point 69 : 0.2667 0.0000 0.0667 - band No. band energies occupation - 1 -91.8796 2.00000 - 2 -91.4244 2.00000 - 3 -91.2894 2.00000 - 4 -65.7469 2.00000 - 5 -30.0470 2.00000 - 6 -29.9846 2.00000 - 7 -29.8185 2.00000 - 8 -1.1660 2.00000 - 9 2.9634 2.00000 - 10 4.7389 2.00000 - 11 5.6413 2.00000 - 12 6.5416 2.00000 - 13 7.6483 1.99909 - 14 8.4831 0.00000 - 15 10.4090 0.00000 - 16 11.0447 0.00000 - 17 15.0305 0.00000 - 18 15.6832 0.00000 - - k-point 70 : 0.3333 0.0000 0.0667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7468 2.00000 - 5 -30.0566 2.00000 - 6 -29.9837 2.00000 - 7 -29.8176 2.00000 - 8 -0.7654 2.00000 - 9 2.3210 2.00000 - 10 4.7218 2.00000 - 11 5.3752 2.00000 - 12 6.4754 2.00000 - 13 7.8474 1.38302 - 14 8.5405 0.00000 - 15 10.8486 0.00000 - 16 11.5771 0.00000 - 17 13.5613 0.00000 - 18 15.1290 0.00000 - - k-point 71 : 0.4000 0.0000 0.0667 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2911 2.00000 - 4 -65.7467 2.00000 - 5 -30.0642 2.00000 - 6 -29.9830 2.00000 - 7 -29.8168 2.00000 - 8 -0.3160 2.00000 - 9 1.6951 2.00000 - 10 4.7092 2.00000 - 11 5.1905 2.00000 - 12 6.3590 2.00000 - 13 8.1987 0.00001 - 14 8.5831 0.00000 - 15 11.2134 0.00000 - 16 12.0304 0.00000 - 17 12.9684 0.00000 - 18 14.5851 0.00000 - - k-point 72 : 0.4667 0.0000 0.0667 - band No. band energies occupation - 1 -91.8817 2.00000 - 2 -91.4266 2.00000 - 3 -91.2917 2.00000 - 4 -65.7467 2.00000 - 5 -30.0683 2.00000 - 6 -29.9826 2.00000 - 7 -29.8165 2.00000 - 8 0.1015 2.00000 - 9 1.1853 2.00000 - 10 4.7026 2.00000 - 11 5.0962 2.00000 - 12 6.2848 2.00000 - 13 8.4738 0.00000 - 14 8.6059 0.00000 - 15 11.4369 0.00000 - 16 12.3087 0.00000 - 17 12.6173 0.00000 - 18 14.4394 0.00000 - - k-point 73 : 0.0000 0.0667 0.0667 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7474 2.00000 - 5 -30.0202 2.00000 - 6 -29.9904 2.00000 - 7 -29.8208 2.00000 - 8 -1.8853 2.00000 - 9 4.3956 2.00000 - 10 4.8088 2.00000 - 11 6.2602 2.00000 - 12 6.7341 2.00000 - 13 8.1965 0.00001 - 14 8.5252 0.00000 - 15 9.0697 0.00000 - 16 9.4119 0.00000 - 17 13.8616 0.00000 - 18 15.2576 0.00000 - - k-point 74 : 0.0667 0.0667 0.0667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7473 2.00000 - 5 -30.0223 2.00000 - 6 -29.9901 2.00000 - 7 -29.8206 2.00000 - 8 -1.8347 2.00000 - 9 4.3325 2.00000 - 10 4.7685 2.00000 - 11 6.1044 2.00000 - 12 6.8162 2.00000 - 13 7.9710 0.21228 - 14 8.7574 0.00000 - 15 8.9151 0.00000 - 16 9.6966 0.00000 - 17 13.8495 0.00000 - 18 14.8611 0.00000 - - k-point 75 : 0.1333 0.0667 0.0667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7473 2.00000 - 5 -30.0283 2.00000 - 6 -29.9896 2.00000 - 7 -29.8200 2.00000 - 8 -1.6854 2.00000 - 9 4.0715 2.00000 - 10 4.7055 2.00000 - 11 5.8924 2.00000 - 12 6.8149 2.00000 - 13 7.7859 1.82917 - 14 8.5439 0.00000 - 15 9.2979 0.00000 - 16 10.1790 0.00000 - 17 14.4429 0.00000 - 18 14.9450 0.00000 - - k-point 76 : 0.2000 0.0667 0.0667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7471 2.00000 - 5 -30.0369 2.00000 - 6 -29.9887 2.00000 - 7 -29.8192 2.00000 - 8 -1.4415 2.00000 - 9 3.5859 2.00000 - 10 4.6793 2.00000 - 11 5.7131 2.00000 - 12 6.7163 2.00000 - 13 7.7038 1.98863 - 14 8.3889 0.00000 - 15 9.7722 0.00000 - 16 10.7211 0.00000 - 17 14.3964 0.00000 - 18 15.0087 0.00000 - - k-point 77 : 0.2667 0.0667 0.0667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7469 2.00000 - 5 -30.0468 2.00000 - 6 -29.9877 2.00000 - 7 -29.8182 2.00000 - 8 -1.1142 2.00000 - 9 2.9798 2.00000 - 10 4.6736 2.00000 - 11 5.5108 2.00000 - 12 6.6199 2.00000 - 13 7.7221 1.97696 - 14 8.3636 0.00000 - 15 10.2499 0.00000 - 16 11.2691 0.00000 - 17 14.1095 0.00000 - 18 16.1309 0.00000 - - k-point 78 : 0.3333 0.0667 0.0667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7467 2.00000 - 5 -30.0564 2.00000 - 6 -29.9867 2.00000 - 7 -29.8173 2.00000 - 8 -0.7140 2.00000 - 9 2.3366 2.00000 - 10 4.6761 2.00000 - 11 5.3013 2.00000 - 12 6.5008 2.00000 - 13 7.9230 0.56991 - 14 8.3953 0.00000 - 15 10.6940 0.00000 - 16 11.7823 0.00000 - 17 13.5487 0.00000 - 18 15.0697 0.00000 - - k-point 79 : 0.4000 0.0667 0.0667 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7466 2.00000 - 5 -30.0639 2.00000 - 6 -29.9860 2.00000 - 7 -29.8166 2.00000 - 8 -0.2628 2.00000 - 9 1.7117 2.00000 - 10 4.6852 2.00000 - 11 5.1307 2.00000 - 12 6.3817 2.00000 - 13 8.2332 0.00000 - 14 8.4366 0.00000 - 15 11.0609 0.00000 - 16 12.1858 0.00000 - 17 13.0336 0.00000 - 18 14.9369 0.00000 - - k-point 80 : 0.4667 0.0667 0.0667 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4262 2.00000 - 3 -91.2912 2.00000 - 4 -65.7466 2.00000 - 5 -30.0680 2.00000 - 6 -29.9856 2.00000 - 7 -29.8162 2.00000 - 8 0.1614 2.00000 - 9 1.1971 2.00000 - 10 4.6963 2.00000 - 11 5.0329 2.00000 - 12 6.3108 2.00000 - 13 8.4305 0.00000 - 14 8.5088 0.00000 - 15 11.2905 0.00000 - 16 12.2531 0.00000 - 17 13.6523 0.00000 - 18 15.0165 0.00000 - - k-point 81 : 0.0000 0.1333 0.0667 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7472 2.00000 - 5 -30.0193 2.00000 - 6 -29.9987 2.00000 - 7 -29.8199 2.00000 - 8 -1.7259 2.00000 - 9 4.2208 2.00000 - 10 4.7206 2.00000 - 11 5.9736 2.00000 - 12 6.6199 2.00000 - 13 8.1432 0.00023 - 14 8.2436 0.00000 - 15 9.3875 0.00000 - 16 9.9330 0.00000 - 17 14.2783 0.00000 - 18 14.9326 0.00000 - - k-point 82 : 0.0667 0.1333 0.0667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4253 2.00000 - 3 -91.2904 2.00000 - 4 -65.7472 2.00000 - 5 -30.0214 2.00000 - 6 -29.9985 2.00000 - 7 -29.8197 2.00000 - 8 -1.6767 2.00000 - 9 4.2223 2.00000 - 10 4.6204 2.00000 - 11 5.7734 2.00000 - 12 6.8479 2.00000 - 13 7.7918 1.80201 - 14 8.5549 0.00000 - 15 9.2077 0.00000 - 16 10.1836 0.00000 - 17 14.6923 0.00000 - 18 15.0199 0.00000 - - k-point 83 : 0.1333 0.1333 0.0667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4255 2.00000 - 3 -91.2906 2.00000 - 4 -65.7471 2.00000 - 5 -30.0274 2.00000 - 6 -29.9980 2.00000 - 7 -29.8192 2.00000 - 8 -1.5287 2.00000 - 9 4.1177 2.00000 - 10 4.4062 2.00000 - 11 5.5506 2.00000 - 12 7.1483 2.00000 - 13 7.4218 2.00000 - 14 8.7268 0.00000 - 15 9.0973 0.00000 - 16 10.6622 0.00000 - 17 14.4498 0.00000 - 18 15.1810 0.00000 - - k-point 84 : 0.2000 0.1333 0.0667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7469 2.00000 - 5 -30.0361 2.00000 - 6 -29.9971 2.00000 - 7 -29.8183 2.00000 - 8 -1.2856 2.00000 - 9 3.6350 2.00000 - 10 4.3984 2.00000 - 11 5.4250 2.00000 - 12 6.9924 2.00000 - 13 7.5022 2.00000 - 14 8.4908 0.00000 - 15 9.4686 0.00000 - 16 11.2024 0.00000 - 17 14.4000 0.00000 - 18 15.1855 0.00000 - - k-point 85 : 0.2667 0.1333 0.0667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7467 2.00000 - 5 -30.0460 2.00000 - 6 -29.9962 2.00000 - 7 -29.8174 2.00000 - 8 -0.9603 2.00000 - 9 3.0182 2.00000 - 10 4.4522 2.00000 - 11 5.3087 2.00000 - 12 6.7413 2.00000 - 13 7.7217 1.97728 - 14 8.3005 0.00000 - 15 9.9206 0.00000 - 16 11.7328 0.00000 - 17 13.9753 0.00000 - 18 15.3830 0.00000 - - k-point 86 : 0.3333 0.1333 0.0667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7465 2.00000 - 5 -30.0556 2.00000 - 6 -29.9952 2.00000 - 7 -29.8164 2.00000 - 8 -0.5617 2.00000 - 9 2.3790 2.00000 - 10 4.5170 2.00000 - 11 5.1603 2.00000 - 12 6.5656 2.00000 - 13 7.9200 0.59883 - 14 8.2560 0.00000 - 15 10.3547 0.00000 - 16 12.1577 0.00000 - 17 13.5549 0.00000 - 18 17.9977 0.00000 - - k-point 87 : 0.4000 0.1333 0.0667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7464 2.00000 - 5 -30.0631 2.00000 - 6 -29.9945 2.00000 - 7 -29.8157 2.00000 - 8 -0.1093 2.00000 - 9 1.7590 2.00000 - 10 4.5897 2.00000 - 11 5.0004 2.00000 - 12 6.4473 2.00000 - 13 8.0381 0.02804 - 14 8.3802 0.00000 - 15 10.7217 0.00000 - 16 12.2601 0.00000 - 17 13.3666 0.00000 - 18 15.0205 0.00000 - - k-point 88 : 0.4667 0.1333 0.0667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7464 2.00000 - 5 -30.0672 2.00000 - 6 -29.9941 2.00000 - 7 -29.8153 2.00000 - 8 0.3334 2.00000 - 9 1.2318 2.00000 - 10 4.6652 2.00000 - 11 4.8709 2.00000 - 12 6.3846 2.00000 - 13 8.0775 0.00590 - 14 8.5356 0.00000 - 15 10.9631 0.00000 - 16 12.0560 0.00000 - 17 14.6802 0.00000 - 18 15.7986 0.00000 - - k-point 89 : 0.0000 0.2000 0.0667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7470 2.00000 - 5 -30.0181 2.00000 - 6 -30.0111 2.00000 - 7 -29.8187 2.00000 - 8 -1.4695 2.00000 - 9 3.7994 2.00000 - 10 4.6693 2.00000 - 11 5.6325 2.00000 - 12 6.5974 2.00000 - 13 7.8461 1.39567 - 14 8.3061 0.00000 - 15 9.7917 0.00000 - 16 10.4886 0.00000 - 17 14.2428 0.00000 - 18 15.3871 0.00000 - - k-point 90 : 0.0667 0.2000 0.0667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7469 2.00000 - 5 -30.0202 2.00000 - 6 -30.0109 2.00000 - 7 -29.8185 2.00000 - 8 -1.4195 2.00000 - 9 3.8193 2.00000 - 10 4.5504 2.00000 - 11 5.5098 2.00000 - 12 6.7466 2.00000 - 13 7.7637 1.90788 - 14 8.3458 0.00000 - 15 9.6384 0.00000 - 16 10.7162 0.00000 - 17 14.2161 0.00000 - 18 15.3807 0.00000 - - k-point 91 : 0.1333 0.2000 0.0667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7468 2.00000 - 5 -30.0261 2.00000 - 6 -30.0103 2.00000 - 7 -29.8179 2.00000 - 8 -1.2729 2.00000 - 9 3.8625 2.00000 - 10 4.2037 2.00000 - 11 5.3571 2.00000 - 12 6.9709 2.00000 - 13 7.5306 2.00000 - 14 8.5275 0.00000 - 15 9.3693 0.00000 - 16 11.1903 0.00000 - 17 14.9903 0.00000 - 18 31.3493 0.00000 - - k-point 92 : 0.2000 0.2000 0.0667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7467 2.00000 - 5 -30.0349 2.00000 - 6 -30.0095 2.00000 - 7 -29.8171 2.00000 - 8 -1.0337 2.00000 - 9 3.6024 2.00000 - 10 4.0290 2.00000 - 11 5.2643 2.00000 - 12 7.0029 2.00000 - 13 7.3935 2.00000 - 14 8.6571 0.00000 - 15 9.2934 0.00000 - 16 11.7135 0.00000 - 17 14.0675 0.00000 - 18 15.4038 0.00000 - - k-point 93 : 0.2667 0.2000 0.0667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7464 2.00000 - 5 -30.0448 2.00000 - 6 -30.0085 2.00000 - 7 -29.8161 2.00000 - 8 -0.7114 2.00000 - 9 3.0260 2.00000 - 10 4.1301 2.00000 - 11 5.1712 2.00000 - 12 6.8136 2.00000 - 13 7.4784 2.00000 - 14 8.5466 0.00000 - 15 9.5926 0.00000 - 16 12.1469 0.00000 - 17 13.8100 0.00000 - 18 15.8147 0.00000 - - k-point 94 : 0.3333 0.2000 0.0667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7463 2.00000 - 5 -30.0544 2.00000 - 6 -30.0076 2.00000 - 7 -29.8152 2.00000 - 8 -0.3183 2.00000 - 9 2.4223 2.00000 - 10 4.2569 2.00000 - 11 5.0412 2.00000 - 12 6.6493 2.00000 - 13 7.5743 1.99999 - 14 8.4765 0.00000 - 15 9.9779 0.00000 - 16 12.2811 0.00000 - 17 13.6749 0.00000 - 18 15.6480 0.00000 - - k-point 95 : 0.4000 0.2000 0.0667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7461 2.00000 - 5 -30.0619 2.00000 - 6 -30.0069 2.00000 - 7 -29.8145 2.00000 - 8 0.1309 2.00000 - 9 1.8302 2.00000 - 10 4.3950 2.00000 - 11 4.8792 2.00000 - 12 6.5467 2.00000 - 13 7.6338 1.99957 - 14 8.5191 0.00000 - 15 10.3234 0.00000 - 16 12.0332 0.00000 - 17 13.9324 0.00000 - 18 15.8350 0.00000 - - k-point 96 : 0.4667 0.2000 0.0667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7461 2.00000 - 5 -30.0660 2.00000 - 6 -30.0065 2.00000 - 7 -29.8141 2.00000 - 8 0.5962 2.00000 - 9 1.2931 2.00000 - 10 4.5437 2.00000 - 11 4.7091 2.00000 - 12 6.4966 2.00000 - 13 7.6617 1.99823 - 14 8.5908 0.00000 - 15 10.5605 0.00000 - 16 11.7454 0.00000 - 17 14.3195 0.00000 - 18 15.4240 0.00000 - - k-point 97 : 0.0000 0.2667 0.0667 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7467 2.00000 - 5 -30.0253 2.00000 - 6 -30.0166 2.00000 - 7 -29.8173 2.00000 - 8 -1.1232 2.00000 - 9 3.2045 2.00000 - 10 4.6486 2.00000 - 11 5.3096 2.00000 - 12 6.5657 2.00000 - 13 7.8108 1.69159 - 14 8.3758 0.00000 - 15 10.2111 0.00000 - 16 11.0400 0.00000 - 17 13.9258 0.00000 - 18 15.5259 0.00000 - - k-point 98 : 0.0667 0.2667 0.0667 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7466 2.00000 - 5 -30.0251 2.00000 - 6 -30.0187 2.00000 - 7 -29.8171 2.00000 - 8 -1.0740 2.00000 - 9 3.2169 2.00000 - 10 4.5463 2.00000 - 11 5.2645 2.00000 - 12 6.6130 2.00000 - 13 7.8637 1.21244 - 14 8.2993 0.00000 - 15 10.0666 0.00000 - 16 11.2485 0.00000 - 17 13.8793 0.00000 - 18 15.1310 0.00000 - - k-point 99 : 0.1333 0.2667 0.0667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7465 2.00000 - 5 -30.0247 2.00000 - 6 -30.0245 2.00000 - 7 -29.8165 2.00000 - 8 -0.9278 2.00000 - 9 3.2332 2.00000 - 10 4.2746 2.00000 - 11 5.1943 2.00000 - 12 6.7018 2.00000 - 13 7.7714 1.88473 - 14 8.3727 0.00000 - 15 9.7624 0.00000 - 16 11.6929 0.00000 - 17 13.8341 0.00000 - 18 15.2470 0.00000 - - k-point 100 : 0.2000 0.2667 0.0667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7463 2.00000 - 5 -30.0335 2.00000 - 6 -30.0237 2.00000 - 7 -29.8157 2.00000 - 8 -0.6936 2.00000 - 9 3.1651 2.00000 - 10 3.9951 2.00000 - 11 5.1310 2.00000 - 12 6.7693 2.00000 - 13 7.5109 2.00000 - 14 8.6573 0.00000 - 15 9.4680 0.00000 - 16 12.1191 0.00000 - 17 13.7501 0.00000 - 18 16.2199 0.00000 - - k-point 101 : 0.2667 0.2667 0.0667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7461 2.00000 - 5 -30.0435 2.00000 - 6 -30.0228 2.00000 - 7 -29.8147 2.00000 - 8 -0.3808 2.00000 - 9 2.8709 2.00000 - 10 3.9188 2.00000 - 11 5.0470 2.00000 - 12 6.7750 2.00000 - 13 7.3303 2.00000 - 14 8.7957 0.00000 - 15 9.4194 0.00000 - 16 12.2854 0.00000 - 17 15.1004 0.00000 - 18 16.6631 0.00000 - - k-point 102 : 0.3333 0.2667 0.0667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7460 2.00000 - 5 -30.0531 2.00000 - 6 -30.0219 2.00000 - 7 -29.8138 2.00000 - 8 -0.0012 2.00000 - 9 2.4149 2.00000 - 10 4.0086 2.00000 - 11 4.9212 2.00000 - 12 6.7199 2.00000 - 13 7.2772 2.00000 - 14 8.7185 0.00000 - 15 9.6676 0.00000 - 16 12.0399 0.00000 - 17 13.9078 0.00000 - 18 16.1396 0.00000 - - k-point 103 : 0.4000 0.2667 0.0667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7458 2.00000 - 5 -30.0605 2.00000 - 6 -30.0212 2.00000 - 7 -29.8131 2.00000 - 8 0.4304 2.00000 - 9 1.9114 2.00000 - 10 4.1602 2.00000 - 11 4.7577 2.00000 - 12 6.6629 2.00000 - 13 7.2826 2.00000 - 14 8.6633 0.00000 - 15 9.9472 0.00000 - 16 11.6785 0.00000 - 17 15.2726 0.00000 - 18 16.0488 0.00000 - - k-point 104 : 0.4667 0.2667 0.0667 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4247 2.00000 - 3 -91.2897 2.00000 - 4 -65.7457 2.00000 - 5 -30.0646 2.00000 - 6 -30.0207 2.00000 - 7 -29.8127 2.00000 - 8 0.8992 2.00000 - 9 1.4048 2.00000 - 10 4.3197 2.00000 - 11 4.5902 2.00000 - 12 6.6327 2.00000 - 13 7.2942 2.00000 - 14 8.6558 0.00000 - 15 10.1424 0.00000 - 16 11.4034 0.00000 - 17 14.2472 0.00000 - 18 41.7288 0.00000 - - k-point 105 : 0.0000 0.3333 0.0667 - band No. band energies occupation - 1 -91.8814 2.00000 - 2 -91.4263 2.00000 - 3 -91.2913 2.00000 - 4 -65.7464 2.00000 - 5 -30.0388 2.00000 - 6 -30.0152 2.00000 - 7 -29.8160 2.00000 - 8 -0.7011 2.00000 - 9 2.5446 2.00000 - 10 4.6365 2.00000 - 11 5.0441 2.00000 - 12 6.4285 2.00000 - 13 8.1110 0.00125 - 14 8.4422 0.00000 - 15 10.6018 0.00000 - 16 11.5597 0.00000 - 17 13.3506 0.00000 - 18 15.1051 0.00000 - - k-point 106 : 0.0667 0.3333 0.0667 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4261 2.00000 - 3 -91.2911 2.00000 - 4 -65.7464 2.00000 - 5 -30.0386 2.00000 - 6 -30.0173 2.00000 - 7 -29.8158 2.00000 - 8 -0.6526 2.00000 - 9 2.5545 2.00000 - 10 4.5567 2.00000 - 11 5.0344 2.00000 - 12 6.4474 2.00000 - 13 8.1580 0.00010 - 14 8.3450 0.00000 - 15 10.4604 0.00000 - 16 11.7435 0.00000 - 17 13.3794 0.00000 - 18 15.8365 0.00000 - - k-point 107 : 0.1333 0.3333 0.0667 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7462 2.00000 - 5 -30.0381 2.00000 - 6 -30.0233 2.00000 - 7 -29.8152 2.00000 - 8 -0.5089 2.00000 - 9 2.5736 2.00000 - 10 4.3507 2.00000 - 11 5.0102 2.00000 - 12 6.4989 2.00000 - 13 7.9569 0.29451 - 14 8.4473 0.00000 - 15 10.1404 0.00000 - 16 12.0883 0.00000 - 17 13.4032 0.00000 - 18 15.1473 0.00000 - - k-point 108 : 0.2000 0.3333 0.0667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7461 2.00000 - 5 -30.0373 2.00000 - 6 -30.0321 2.00000 - 7 -29.8143 2.00000 - 8 -0.2806 2.00000 - 9 2.5705 2.00000 - 10 4.1067 2.00000 - 11 4.9666 2.00000 - 12 6.5721 2.00000 - 13 7.6198 1.99980 - 14 8.7017 0.00000 - 15 9.7782 0.00000 - 16 12.2391 0.00000 - 17 13.5917 0.00000 - 18 15.4441 0.00000 - - k-point 109 : 0.2667 0.3333 0.0667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7459 2.00000 - 5 -30.0422 2.00000 - 6 -30.0363 2.00000 - 7 -29.8134 2.00000 - 8 0.0188 2.00000 - 9 2.4896 2.00000 - 10 3.9304 2.00000 - 11 4.8876 2.00000 - 12 6.6514 2.00000 - 13 7.3330 2.00000 - 14 8.9105 0.00000 - 15 9.5027 0.00000 - 16 12.0077 0.00000 - 17 14.3536 0.00000 - 18 16.5093 0.00000 - - k-point 110 : 0.3333 0.3333 0.0667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7457 2.00000 - 5 -30.0518 2.00000 - 6 -30.0354 2.00000 - 7 -29.8125 2.00000 - 8 0.3709 2.00000 - 9 2.2835 2.00000 - 10 3.8916 2.00000 - 11 4.7617 2.00000 - 12 6.7183 2.00000 - 13 7.1436 2.00000 - 14 8.9049 0.00000 - 15 9.4941 0.00000 - 16 11.7396 0.00000 - 17 15.6793 0.00000 - 18 16.9345 0.00000 - - k-point 111 : 0.4000 0.3333 0.0667 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7455 2.00000 - 5 -30.0593 2.00000 - 6 -30.0348 2.00000 - 7 -29.8117 2.00000 - 8 0.7545 2.00000 - 9 1.9742 2.00000 - 10 3.9744 2.00000 - 11 4.5954 2.00000 - 12 6.7577 2.00000 - 13 7.0518 2.00000 - 14 8.7886 0.00000 - 15 9.6473 0.00000 - 16 11.3101 0.00000 - 17 14.0340 0.00000 - 18 16.7643 0.00000 - - k-point 112 : 0.4667 0.3333 0.0667 - band No. band energies occupation - 1 -91.8795 2.00000 - 2 -91.4245 2.00000 - 3 -91.2895 2.00000 - 4 -65.7454 2.00000 - 5 -30.0633 2.00000 - 6 -30.0343 2.00000 - 7 -29.8114 2.00000 - 8 1.1319 2.00000 - 9 1.6271 2.00000 - 10 4.1052 2.00000 - 11 4.4298 2.00000 - 12 6.7711 2.00000 - 13 7.0239 2.00000 - 14 8.7206 0.00000 - 15 9.7665 0.00000 - 16 11.0890 0.00000 - 17 13.9788 0.00000 - 18 16.9520 0.00000 - - k-point 113 : 0.0000 0.4000 0.0667 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7462 2.00000 - 5 -30.0493 2.00000 - 6 -30.0141 2.00000 - 7 -29.8149 2.00000 - 8 -0.2288 2.00000 - 9 1.8983 2.00000 - 10 4.6283 2.00000 - 11 4.8575 2.00000 - 12 6.2772 2.00000 - 13 8.4945 0.00000 - 14 8.5804 0.00000 - 15 10.9224 0.00000 - 16 11.9786 0.00000 - 17 12.7899 0.00000 - 18 14.9087 0.00000 - - k-point 114 : 0.0667 0.4000 0.0667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7461 2.00000 - 5 -30.0491 2.00000 - 6 -30.0162 2.00000 - 7 -29.8147 2.00000 - 8 -0.1792 2.00000 - 9 1.9074 2.00000 - 10 4.5762 2.00000 - 11 4.8487 2.00000 - 12 6.2969 2.00000 - 13 8.3585 0.00000 - 14 8.6284 0.00000 - 15 10.7823 0.00000 - 16 12.0806 0.00000 - 17 12.8868 0.00000 - 18 15.2348 0.00000 - - k-point 115 : 0.1333 0.4000 0.0667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7460 2.00000 - 5 -30.0486 2.00000 - 6 -30.0222 2.00000 - 7 -29.8141 2.00000 - 8 -0.0352 2.00000 - 9 1.9332 2.00000 - 10 4.4339 2.00000 - 11 4.8242 2.00000 - 12 6.3536 2.00000 - 13 8.0475 0.01985 - 14 8.7378 0.00000 - 15 10.4554 0.00000 - 16 12.1158 0.00000 - 17 13.2657 0.00000 - 18 14.9000 0.00000 - - k-point 116 : 0.2000 0.4000 0.0667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7458 2.00000 - 5 -30.0478 2.00000 - 6 -30.0311 2.00000 - 7 -29.8133 2.00000 - 8 0.1893 2.00000 - 9 1.9679 2.00000 - 10 4.2451 2.00000 - 11 4.7769 2.00000 - 12 6.4400 2.00000 - 13 7.6916 1.99315 - 14 8.8745 0.00000 - 15 10.0643 0.00000 - 16 11.9241 0.00000 - 17 13.8014 0.00000 - 18 15.2989 0.00000 - - k-point 117 : 0.2667 0.4000 0.0667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7456 2.00000 - 5 -30.0469 2.00000 - 6 -30.0412 2.00000 - 7 -29.8123 2.00000 - 8 0.4706 2.00000 - 9 1.9998 2.00000 - 10 4.0636 2.00000 - 11 4.6916 2.00000 - 12 6.5446 2.00000 - 13 7.3787 2.00000 - 14 8.9926 0.00000 - 15 9.6981 0.00000 - 16 11.6104 0.00000 - 17 14.1038 0.00000 - 18 15.9363 0.00000 - - k-point 118 : 0.3333 0.4000 0.0667 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7454 2.00000 - 5 -30.0508 2.00000 - 6 -30.0460 2.00000 - 7 -29.8114 2.00000 - 8 0.7753 2.00000 - 9 2.0098 2.00000 - 10 3.9391 2.00000 - 11 4.5583 2.00000 - 12 6.6530 2.00000 - 13 7.1493 2.00000 - 14 9.0079 0.00000 - 15 9.4727 0.00000 - 16 11.2802 0.00000 - 17 14.0000 0.00000 - 18 16.5368 0.00000 - - k-point 119 : 0.4000 0.4000 0.0667 - band No. band energies occupation - 1 -91.8795 2.00000 - 2 -91.4245 2.00000 - 3 -91.2895 2.00000 - 4 -65.7452 2.00000 - 5 -30.0583 2.00000 - 6 -30.0454 2.00000 - 7 -29.8107 2.00000 - 8 1.0560 2.00000 - 9 1.9838 2.00000 - 10 3.9064 2.00000 - 11 4.3863 2.00000 - 12 6.7511 2.00000 - 13 7.0039 2.00000 - 14 8.8800 0.00000 - 15 9.4519 0.00000 - 16 11.0055 0.00000 - 17 13.8522 0.00000 - 18 16.8940 0.00000 - - k-point 120 : 0.4667 0.4000 0.0667 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4247 2.00000 - 3 -91.2896 2.00000 - 4 -65.7452 2.00000 - 5 -30.0624 2.00000 - 6 -30.0450 2.00000 - 7 -29.8103 2.00000 - 8 1.2424 2.00000 - 9 1.9383 2.00000 - 10 3.9540 2.00000 - 11 4.2239 2.00000 - 12 6.8299 2.00000 - 13 6.9158 2.00000 - 14 8.7739 0.00000 - 15 9.4832 0.00000 - 16 10.8480 0.00000 - 17 13.7576 0.00000 - 18 16.7488 0.00000 - - k-point 121 : 0.0000 0.4667 0.0667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2908 2.00000 - 4 -65.7460 2.00000 - 5 -30.0550 2.00000 - 6 -30.0134 2.00000 - 7 -29.8143 2.00000 - 8 0.2043 2.00000 - 9 1.3732 2.00000 - 10 4.6240 2.00000 - 11 4.7616 2.00000 - 12 6.1883 2.00000 - 13 8.5233 0.00000 - 14 8.9674 0.00000 - 15 11.1121 0.00000 - 16 12.0071 0.00000 - 17 12.6025 0.00000 - 18 14.7790 0.00000 - - k-point 122 : 0.0667 0.4667 0.0667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4258 2.00000 - 3 -91.2907 2.00000 - 4 -65.7460 2.00000 - 5 -30.0547 2.00000 - 6 -30.0156 2.00000 - 7 -29.8141 2.00000 - 8 0.2601 2.00000 - 9 1.3783 2.00000 - 10 4.6072 2.00000 - 11 4.7289 2.00000 - 12 6.2110 2.00000 - 13 8.3945 0.00000 - 14 8.9806 0.00000 - 15 10.9757 0.00000 - 16 11.9688 0.00000 - 17 12.8374 0.00000 - 18 14.6721 0.00000 - - k-point 123 : 0.1333 0.4667 0.0667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7458 2.00000 - 5 -30.0543 2.00000 - 6 -30.0216 2.00000 - 7 -29.8135 2.00000 - 8 0.4205 2.00000 - 9 1.3934 2.00000 - 10 4.5342 2.00000 - 11 4.6626 2.00000 - 12 6.2753 2.00000 - 13 8.0869 0.00390 - 14 9.0106 0.00000 - 15 10.6601 0.00000 - 16 11.8277 0.00000 - 17 13.4681 0.00000 - 18 14.6325 0.00000 - - k-point 124 : 0.2000 0.4667 0.0667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7457 2.00000 - 5 -30.0535 2.00000 - 6 -30.0305 2.00000 - 7 -29.8127 2.00000 - 8 0.6680 2.00000 - 9 1.4216 2.00000 - 10 4.3948 2.00000 - 11 4.5926 2.00000 - 12 6.3719 2.00000 - 13 7.7299 1.96936 - 14 9.0457 0.00000 - 15 10.2612 0.00000 - 16 11.5905 0.00000 - 17 14.2426 0.00000 - 18 14.7492 0.00000 - - k-point 125 : 0.2667 0.4667 0.0667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7455 2.00000 - 5 -30.0527 2.00000 - 6 -30.0406 2.00000 - 7 -29.8117 2.00000 - 8 0.9557 2.00000 - 9 1.4873 2.00000 - 10 4.2358 2.00000 - 11 4.4908 2.00000 - 12 6.4878 2.00000 - 13 7.4124 2.00000 - 14 9.0712 0.00000 - 15 9.8506 0.00000 - 16 11.3089 0.00000 - 17 14.3846 0.00000 - 18 15.5524 0.00000 - - k-point 126 : 0.3333 0.4667 0.0667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7453 2.00000 - 5 -30.0518 2.00000 - 6 -30.0502 2.00000 - 7 -29.8108 2.00000 - 8 1.1737 2.00000 - 9 1.6621 2.00000 - 10 4.0925 2.00000 - 11 4.3402 2.00000 - 12 6.6061 2.00000 - 13 7.1785 2.00000 - 14 9.0505 0.00000 - 15 9.5155 0.00000 - 16 11.0400 0.00000 - 17 13.9482 0.00000 - 18 16.5775 0.00000 - - k-point 127 : 0.4000 0.4667 0.0667 - band No. band energies occupation - 1 -91.8795 2.00000 - 2 -91.4245 2.00000 - 3 -91.2895 2.00000 - 4 -65.7451 2.00000 - 5 -30.0577 2.00000 - 6 -30.0512 2.00000 - 7 -29.8101 2.00000 - 8 1.2606 2.00000 - 9 1.9475 2.00000 - 10 3.9805 2.00000 - 11 4.1622 2.00000 - 12 6.7058 2.00000 - 13 7.0369 2.00000 - 14 8.9273 0.00000 - 15 9.3617 0.00000 - 16 10.8310 0.00000 - 17 13.7460 0.00000 - 18 17.0707 0.00000 - - k-point 128 : 0.4667 0.4667 0.0667 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4249 2.00000 - 3 -91.2898 2.00000 - 4 -65.7451 2.00000 - 5 -30.0619 2.00000 - 6 -30.0509 2.00000 - 7 -29.8097 2.00000 - 8 1.2859 2.00000 - 9 2.1702 2.00000 - 10 3.8990 2.00000 - 11 4.0390 2.00000 - 12 6.7652 2.00000 - 13 6.9729 2.00000 - 14 8.8041 0.00000 - 15 9.3315 0.00000 - 16 10.7166 0.00000 - 17 13.6320 0.00000 - 18 16.7501 0.00000 - - k-point 129 : 0.0000 0.0000 0.1333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7464 2.00000 - 5 -30.0175 2.00000 - 6 -29.9844 2.00000 - 7 -29.8488 2.00000 - 8 -1.7370 2.00000 - 9 4.4422 2.00000 - 10 4.8585 2.00000 - 11 6.0714 2.00000 - 12 6.4466 2.00000 - 13 8.2302 0.00000 - 14 8.3749 0.00000 - 15 9.1175 0.00000 - 16 9.2619 0.00000 - 17 14.1349 0.00000 - 18 15.4013 0.00000 - - k-point 130 : 0.0667 0.0000 0.1333 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7463 2.00000 - 5 -30.0195 2.00000 - 6 -29.9841 2.00000 - 7 -29.8486 2.00000 - 8 -1.6861 2.00000 - 9 4.3659 2.00000 - 10 4.8534 2.00000 - 11 5.9862 2.00000 - 12 6.3903 2.00000 - 13 8.0854 0.00417 - 14 8.4524 0.00000 - 15 9.1354 0.00000 - 16 9.5120 0.00000 - 17 14.3643 0.00000 - 18 15.3071 0.00000 - - k-point 131 : 0.1333 0.0000 0.1333 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7463 2.00000 - 5 -30.0256 2.00000 - 6 -29.9835 2.00000 - 7 -29.8481 2.00000 - 8 -1.5384 2.00000 - 9 4.0964 2.00000 - 10 4.8387 2.00000 - 11 5.8780 2.00000 - 12 6.2244 2.00000 - 13 7.8814 1.01531 - 14 8.4118 0.00000 - 15 9.4051 0.00000 - 16 10.0237 0.00000 - 17 14.7831 0.00000 - 18 15.5390 0.00000 - - k-point 132 : 0.2000 0.0000 0.1333 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7461 2.00000 - 5 -30.0342 2.00000 - 6 -29.9826 2.00000 - 7 -29.8473 2.00000 - 8 -1.2961 2.00000 - 9 3.6243 2.00000 - 10 4.8224 2.00000 - 11 5.8880 2.00000 - 12 5.9794 2.00000 - 13 7.7697 1.89014 - 14 8.2240 0.00000 - 15 9.9152 0.00000 - 16 10.6017 0.00000 - 17 14.8981 0.00000 - 18 15.7528 0.00000 - - k-point 133 : 0.2667 0.0000 0.1333 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4247 2.00000 - 3 -91.2897 2.00000 - 4 -65.7459 2.00000 - 5 -30.0442 2.00000 - 6 -29.9816 2.00000 - 7 -29.8464 2.00000 - 8 -0.9701 2.00000 - 9 3.0306 2.00000 - 10 4.8098 2.00000 - 11 5.7145 2.00000 - 12 5.9645 2.00000 - 13 7.7405 1.95587 - 14 8.1068 0.00153 - 15 10.4758 0.00000 - 16 11.1795 0.00000 - 17 14.4320 0.00000 - 18 15.4052 0.00000 - - k-point 134 : 0.3333 0.0000 0.1333 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7457 2.00000 - 5 -30.0538 2.00000 - 6 -29.9807 2.00000 - 7 -29.8456 2.00000 - 8 -0.5710 2.00000 - 9 2.3983 2.00000 - 10 4.8012 2.00000 - 11 5.4818 2.00000 - 12 6.0144 2.00000 - 13 7.7545 1.93036 - 14 8.1644 0.00007 - 15 11.0095 0.00000 - 16 11.7243 0.00000 - 17 13.7286 0.00000 - 18 15.7410 0.00000 - - k-point 135 : 0.4000 0.0000 0.1333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7456 2.00000 - 5 -30.0614 2.00000 - 6 -29.9799 2.00000 - 7 -29.8449 2.00000 - 8 -0.1177 2.00000 - 9 1.7781 2.00000 - 10 4.7964 2.00000 - 11 5.3133 2.00000 - 12 6.0112 2.00000 - 13 7.7807 1.85123 - 14 8.3693 0.00000 - 15 11.4739 0.00000 - 16 12.2127 0.00000 - 17 12.9109 0.00000 - 18 14.6649 0.00000 - - k-point 136 : 0.4667 0.0000 0.1333 - band No. band energies occupation - 1 -91.8817 2.00000 - 2 -91.4266 2.00000 - 3 -91.2916 2.00000 - 4 -65.7457 2.00000 - 5 -30.0656 2.00000 - 6 -29.9796 2.00000 - 7 -29.8446 2.00000 - 8 0.3197 2.00000 - 9 1.2526 2.00000 - 10 4.7946 2.00000 - 11 5.2255 2.00000 - 12 5.9923 2.00000 - 13 7.7988 1.76488 - 14 8.5626 0.00000 - 15 11.8394 0.00000 - 16 12.3313 0.00000 - 17 12.5446 0.00000 - 18 14.3190 0.00000 - - k-point 137 : 0.0000 0.0667 0.1333 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7463 2.00000 - 5 -30.0172 2.00000 - 6 -29.9873 2.00000 - 7 -29.8485 2.00000 - 8 -1.6849 2.00000 - 9 4.4076 2.00000 - 10 4.8483 2.00000 - 11 6.0207 2.00000 - 12 6.2826 2.00000 - 13 8.0528 0.01618 - 14 8.5353 0.00000 - 15 9.2108 0.00000 - 16 9.3896 0.00000 - 17 14.3918 0.00000 - 18 15.3197 0.00000 - - k-point 138 : 0.0667 0.0667 0.1333 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4246 2.00000 - 3 -91.2896 2.00000 - 4 -65.7463 2.00000 - 5 -30.0193 2.00000 - 6 -29.9870 2.00000 - 7 -29.8483 2.00000 - 8 -1.6339 2.00000 - 9 4.3516 2.00000 - 10 4.8346 2.00000 - 11 5.7996 2.00000 - 12 6.4178 2.00000 - 13 7.7836 1.83923 - 14 8.8250 0.00000 - 15 9.1722 0.00000 - 16 9.5353 0.00000 - 17 14.5019 0.00000 - 18 15.3716 0.00000 - - k-point 139 : 0.1333 0.0667 0.1333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7462 2.00000 - 5 -30.0253 2.00000 - 6 -29.9865 2.00000 - 7 -29.8478 2.00000 - 8 -1.4861 2.00000 - 9 4.1162 2.00000 - 10 4.7981 2.00000 - 11 5.5891 2.00000 - 12 6.4356 2.00000 - 13 7.5244 2.00000 - 14 8.7710 0.00000 - 15 9.5148 0.00000 - 16 9.9362 0.00000 - 17 15.1352 0.00000 - 18 15.4072 0.00000 - - k-point 140 : 0.2000 0.0667 0.1333 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7460 2.00000 - 5 -30.0340 2.00000 - 6 -29.9857 2.00000 - 7 -29.8470 2.00000 - 8 -1.2446 2.00000 - 9 3.6518 2.00000 - 10 4.7706 2.00000 - 11 5.5402 2.00000 - 12 6.2682 2.00000 - 13 7.4667 2.00000 - 14 8.5007 0.00000 - 15 10.0751 0.00000 - 16 10.4593 0.00000 - 17 14.9293 0.00000 - 18 15.7909 0.00000 - - k-point 141 : 0.2667 0.0667 0.1333 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7458 2.00000 - 5 -30.0439 2.00000 - 6 -29.9846 2.00000 - 7 -29.8461 2.00000 - 8 -0.9180 2.00000 - 9 3.0555 2.00000 - 10 4.7621 2.00000 - 11 5.5144 2.00000 - 12 6.0975 2.00000 - 13 7.5228 2.00000 - 14 8.3066 0.00000 - 15 10.6374 0.00000 - 16 11.0036 0.00000 - 17 14.3882 0.00000 - 18 15.7788 0.00000 - - k-point 142 : 0.3333 0.0667 0.1333 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7457 2.00000 - 5 -30.0536 2.00000 - 6 -29.9837 2.00000 - 7 -29.8453 2.00000 - 8 -0.5188 2.00000 - 9 2.4214 2.00000 - 10 4.7659 2.00000 - 11 5.3939 2.00000 - 12 6.0417 2.00000 - 13 7.5977 1.99994 - 14 8.2829 0.00000 - 15 11.1508 0.00000 - 16 11.5105 0.00000 - 17 13.7183 0.00000 - 18 14.9755 0.00000 - - k-point 143 : 0.4000 0.0667 0.1333 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7456 2.00000 - 5 -30.0611 2.00000 - 6 -29.9830 2.00000 - 7 -29.8447 2.00000 - 8 -0.0651 2.00000 - 9 1.8001 2.00000 - 10 4.7789 2.00000 - 11 5.2458 2.00000 - 12 6.0321 2.00000 - 13 7.6461 1.99918 - 14 8.4238 0.00000 - 15 11.5584 0.00000 - 16 11.9266 0.00000 - 17 13.0831 0.00000 - 18 15.6069 0.00000 - - k-point 144 : 0.4667 0.0667 0.1333 - band No. band energies occupation - 1 -91.8817 2.00000 - 2 -91.4266 2.00000 - 3 -91.2916 2.00000 - 4 -65.7456 2.00000 - 5 -30.0653 2.00000 - 6 -29.9826 2.00000 - 7 -29.8443 2.00000 - 8 0.3795 2.00000 - 9 1.2691 2.00000 - 10 4.7936 2.00000 - 11 5.1515 2.00000 - 12 6.0240 2.00000 - 13 7.6686 1.99754 - 14 8.5805 0.00000 - 15 11.7779 0.00000 - 16 12.1352 0.00000 - 17 12.7618 0.00000 - 18 14.3597 0.00000 - - k-point 145 : 0.0000 0.1333 0.1333 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4246 2.00000 - 3 -91.2897 2.00000 - 4 -65.7461 2.00000 - 5 -30.0163 2.00000 - 6 -29.9957 2.00000 - 7 -29.8477 2.00000 - 8 -1.5268 2.00000 - 9 4.2431 2.00000 - 10 4.8102 2.00000 - 11 5.8696 2.00000 - 12 6.0346 2.00000 - 13 7.8110 1.68997 - 14 8.5785 0.00000 - 15 9.3930 0.00000 - 16 9.9093 0.00000 - 17 14.8181 0.00000 - 18 15.3992 0.00000 - - k-point 146 : 0.0667 0.1333 0.1333 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7461 2.00000 - 5 -30.0184 2.00000 - 6 -29.9955 2.00000 - 7 -29.8475 2.00000 - 8 -1.4775 2.00000 - 9 4.2438 2.00000 - 10 4.7542 2.00000 - 11 5.5293 2.00000 - 12 6.3522 2.00000 - 13 7.5150 2.00000 - 14 8.8801 0.00000 - 15 9.4592 0.00000 - 16 9.8752 0.00000 - 17 15.2792 0.00000 - 18 15.6628 0.00000 - - k-point 147 : 0.1333 0.1333 0.1333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7460 2.00000 - 5 -30.0244 2.00000 - 6 -29.9950 2.00000 - 7 -29.8470 2.00000 - 8 -1.3299 2.00000 - 9 4.1576 2.00000 - 10 4.5679 2.00000 - 11 5.2979 2.00000 - 12 6.6150 2.00000 - 13 7.0904 2.00000 - 14 9.1579 0.00000 - 15 9.5750 0.00000 - 16 10.0825 0.00000 - 17 15.1794 0.00000 - 18 15.4777 0.00000 - - k-point 148 : 0.2000 0.1333 0.1333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7459 2.00000 - 5 -30.0332 2.00000 - 6 -29.9941 2.00000 - 7 -29.8463 2.00000 - 8 -1.0889 2.00000 - 9 3.7247 2.00000 - 10 4.5126 2.00000 - 11 5.2739 2.00000 - 12 6.5053 2.00000 - 13 7.0116 2.00000 - 14 8.9177 0.00000 - 15 10.0553 0.00000 - 16 10.5390 0.00000 - 17 14.9488 0.00000 - 18 15.7735 0.00000 - - k-point 149 : 0.2667 0.1333 0.1333 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7457 2.00000 - 5 -30.0432 2.00000 - 6 -29.9932 2.00000 - 7 -29.8454 2.00000 - 8 -0.7637 2.00000 - 9 3.1184 2.00000 - 10 4.5570 2.00000 - 11 5.2947 2.00000 - 12 6.2309 2.00000 - 13 7.1569 2.00000 - 14 8.6614 0.00000 - 15 10.5778 0.00000 - 16 11.0215 0.00000 - 17 14.3672 0.00000 - 18 16.4135 0.00000 - - k-point 150 : 0.3333 0.1333 0.1333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7455 2.00000 - 5 -30.0528 2.00000 - 6 -29.9922 2.00000 - 7 -29.8445 2.00000 - 8 -0.3665 2.00000 - 9 2.4849 2.00000 - 10 4.6192 2.00000 - 11 5.2403 2.00000 - 12 6.0991 2.00000 - 13 7.2727 2.00000 - 14 8.5350 0.00000 - 15 11.0432 0.00000 - 16 11.4229 0.00000 - 17 13.8722 0.00000 - 18 15.2253 0.00000 - - k-point 151 : 0.4000 0.1333 0.1333 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7454 2.00000 - 5 -30.0603 2.00000 - 6 -29.9915 2.00000 - 7 -29.8439 2.00000 - 8 0.0883 2.00000 - 9 1.8666 2.00000 - 10 4.6927 2.00000 - 11 5.1041 2.00000 - 12 6.0902 2.00000 - 13 7.3348 2.00000 - 14 8.5545 0.00000 - 15 11.3690 0.00000 - 16 11.6761 0.00000 - 17 13.4279 0.00000 - 18 14.9423 0.00000 - - k-point 152 : 0.4667 0.1333 0.1333 - band No. band energies occupation - 1 -91.8813 2.00000 - 2 -91.4263 2.00000 - 3 -91.2913 2.00000 - 4 -65.7454 2.00000 - 5 -30.0645 2.00000 - 6 -29.9911 2.00000 - 7 -29.8436 2.00000 - 8 0.5523 2.00000 - 9 1.3197 2.00000 - 10 4.7737 2.00000 - 11 4.9700 2.00000 - 12 6.1067 2.00000 - 13 7.3584 2.00000 - 14 8.6259 0.00000 - 15 11.4672 0.00000 - 16 11.8083 0.00000 - 17 13.3060 0.00000 - 18 14.7773 0.00000 - - k-point 153 : 0.0000 0.2000 0.1333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7459 2.00000 - 5 -30.0150 2.00000 - 6 -30.0082 2.00000 - 7 -29.8466 2.00000 - 8 -1.2712 2.00000 - 9 3.8438 2.00000 - 10 4.7684 2.00000 - 11 5.6401 2.00000 - 12 5.9574 2.00000 - 13 7.6738 1.99688 - 14 8.3685 0.00000 - 15 9.9037 0.00000 - 16 10.4726 0.00000 - 17 15.0041 0.00000 - 18 15.6011 0.00000 - - k-point 154 : 0.0667 0.2000 0.1333 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7459 2.00000 - 5 -30.0172 2.00000 - 6 -30.0079 2.00000 - 7 -29.8464 2.00000 - 8 -1.2218 2.00000 - 9 3.8708 2.00000 - 10 4.6756 2.00000 - 11 5.4045 2.00000 - 12 6.1889 2.00000 - 13 7.4347 2.00000 - 14 8.5911 0.00000 - 15 10.0325 0.00000 - 16 10.3726 0.00000 - 17 14.9251 0.00000 - 18 15.8940 0.00000 - - k-point 155 : 0.1333 0.2000 0.1333 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7457 2.00000 - 5 -30.0231 2.00000 - 6 -30.0074 2.00000 - 7 -29.8459 2.00000 - 8 -1.0751 2.00000 - 9 3.9445 2.00000 - 10 4.3254 2.00000 - 11 5.2342 2.00000 - 12 6.4457 2.00000 - 13 7.0265 2.00000 - 14 8.9822 0.00000 - 15 9.9608 0.00000 - 16 10.5366 0.00000 - 17 15.3724 0.00000 - 18 16.2209 0.00000 - - k-point 156 : 0.2000 0.2000 0.1333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7456 2.00000 - 5 -30.0320 2.00000 - 6 -30.0066 2.00000 - 7 -29.8451 2.00000 - 8 -0.8371 2.00000 - 9 3.7696 2.00000 - 10 4.0713 2.00000 - 11 5.2102 2.00000 - 12 6.5202 2.00000 - 13 6.7576 2.00000 - 14 9.2256 0.00000 - 15 9.8208 0.00000 - 16 10.9794 0.00000 - 17 14.6872 0.00000 - 18 16.0115 0.00000 - - k-point 157 : 0.2667 0.2000 0.1333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7454 2.00000 - 5 -30.0420 2.00000 - 6 -30.0056 2.00000 - 7 -29.8442 2.00000 - 8 -0.5159 2.00000 - 9 3.1732 2.00000 - 10 4.2009 2.00000 - 11 5.2095 2.00000 - 12 6.2786 2.00000 - 13 6.8561 2.00000 - 14 9.0363 0.00000 - 15 10.1403 0.00000 - 16 11.3532 0.00000 - 17 14.1947 0.00000 - 18 15.7790 0.00000 - - k-point 158 : 0.3333 0.2000 0.1333 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2902 2.00000 - 4 -65.7452 2.00000 - 5 -30.0516 2.00000 - 6 -30.0047 2.00000 - 7 -29.8434 2.00000 - 8 -0.1232 2.00000 - 9 2.5651 2.00000 - 10 4.3406 2.00000 - 11 5.1419 2.00000 - 12 6.1556 2.00000 - 13 6.9535 2.00000 - 14 8.8219 0.00000 - 15 10.5329 0.00000 - 16 11.5193 0.00000 - 17 13.9904 0.00000 - 18 15.7124 0.00000 - - k-point 159 : 0.4000 0.2000 0.1333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7451 2.00000 - 5 -30.0592 2.00000 - 6 -30.0040 2.00000 - 7 -29.8427 2.00000 - 8 0.3259 2.00000 - 9 1.9702 2.00000 - 10 4.4841 2.00000 - 11 4.9917 2.00000 - 12 6.1733 2.00000 - 13 7.0010 2.00000 - 14 8.7133 0.00000 - 15 10.8431 0.00000 - 16 11.4585 0.00000 - 17 13.9770 0.00000 - 18 15.7545 0.00000 - - k-point 160 : 0.4667 0.2000 0.1333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7450 2.00000 - 5 -30.0633 2.00000 - 6 -30.0036 2.00000 - 7 -29.8424 2.00000 - 8 0.8108 2.00000 - 9 1.4140 2.00000 - 10 4.6313 2.00000 - 11 4.8202 2.00000 - 12 6.2227 2.00000 - 13 7.0116 2.00000 - 14 8.6872 0.00000 - 15 11.0198 0.00000 - 16 11.3364 0.00000 - 17 14.1763 0.00000 - 18 15.9685 0.00000 - - k-point 161 : 0.0000 0.2667 0.1333 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7456 2.00000 - 5 -30.0224 2.00000 - 6 -30.0136 2.00000 - 7 -29.8453 2.00000 - 8 -0.9268 2.00000 - 9 3.2623 2.00000 - 10 4.7464 2.00000 - 11 5.3834 2.00000 - 12 5.9960 2.00000 - 13 7.6341 1.99956 - 14 8.2611 0.00000 - 15 10.4569 0.00000 - 16 11.0184 0.00000 - 17 14.2330 0.00000 - 18 15.5535 0.00000 - - k-point 162 : 0.0667 0.2667 0.1333 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7456 2.00000 - 5 -30.0222 2.00000 - 6 -30.0157 2.00000 - 7 -29.8451 2.00000 - 8 -0.8773 2.00000 - 9 3.2832 2.00000 - 10 4.6571 2.00000 - 11 5.2991 2.00000 - 12 6.0714 2.00000 - 13 7.4689 2.00000 - 14 8.4217 0.00000 - 15 10.5908 0.00000 - 16 10.8787 0.00000 - 17 14.2953 0.00000 - 18 16.5961 0.00000 - - k-point 163 : 0.1333 0.2667 0.1333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7455 2.00000 - 5 -30.0218 2.00000 - 6 -30.0216 2.00000 - 7 -29.8446 2.00000 - 8 -0.7317 2.00000 - 9 3.3310 2.00000 - 10 4.3786 2.00000 - 11 5.2110 2.00000 - 12 6.1851 2.00000 - 13 7.1526 2.00000 - 14 8.7615 0.00000 - 15 10.4513 0.00000 - 16 10.9940 0.00000 - 17 14.2699 0.00000 - 18 15.4567 0.00000 - - k-point 164 : 0.2000 0.2667 0.1333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7453 2.00000 - 5 -30.0306 2.00000 - 6 -30.0209 2.00000 - 7 -29.8438 2.00000 - 8 -0.4981 2.00000 - 9 3.3273 2.00000 - 10 4.0470 2.00000 - 11 5.1832 2.00000 - 12 6.2401 2.00000 - 13 6.8777 2.00000 - 14 9.1353 0.00000 - 15 10.0431 0.00000 - 16 11.3235 0.00000 - 17 14.1794 0.00000 - 18 15.5671 0.00000 - - k-point 165 : 0.2667 0.2667 0.1333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7451 2.00000 - 5 -30.0407 2.00000 - 6 -30.0200 2.00000 - 7 -29.8429 2.00000 - 8 -0.1859 2.00000 - 9 3.0693 2.00000 - 10 3.9456 2.00000 - 11 5.1491 2.00000 - 12 6.2051 2.00000 - 13 6.7650 2.00000 - 14 9.2971 0.00000 - 15 9.8622 0.00000 - 16 11.4431 0.00000 - 17 14.0899 0.00000 - 18 16.4426 0.00000 - - k-point 166 : 0.3333 0.2667 0.1333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7449 2.00000 - 5 -30.0503 2.00000 - 6 -30.0191 2.00000 - 7 -29.8421 2.00000 - 8 0.1920 2.00000 - 9 2.6071 2.00000 - 10 4.0528 2.00000 - 11 5.0472 2.00000 - 12 6.1874 2.00000 - 13 6.7639 2.00000 - 14 9.0797 0.00000 - 15 10.0903 0.00000 - 16 11.2974 0.00000 - 17 14.2166 0.00000 - 18 15.6033 0.00000 - - k-point 167 : 0.4000 0.2667 0.1333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7448 2.00000 - 5 -30.0579 2.00000 - 6 -30.0184 2.00000 - 7 -29.8414 2.00000 - 8 0.6211 2.00000 - 9 2.0968 2.00000 - 10 4.2164 2.00000 - 11 4.8791 2.00000 - 12 6.2614 2.00000 - 13 6.7657 2.00000 - 14 8.8662 0.00000 - 15 10.3491 0.00000 - 16 11.0306 0.00000 - 17 14.4108 0.00000 - 18 15.3788 0.00000 - - k-point 168 : 0.4667 0.2667 0.1333 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7447 2.00000 - 5 -30.0620 2.00000 - 6 -30.0180 2.00000 - 7 -29.8411 2.00000 - 8 1.0880 2.00000 - 9 1.5873 2.00000 - 10 4.3747 2.00000 - 11 4.7100 2.00000 - 12 6.3575 2.00000 - 13 6.7421 2.00000 - 14 8.7550 0.00000 - 15 10.5500 0.00000 - 16 10.7906 0.00000 - 17 14.5624 0.00000 - 18 15.1655 0.00000 - - k-point 169 : 0.0000 0.3333 0.1333 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7454 2.00000 - 5 -30.0360 2.00000 - 6 -30.0122 2.00000 - 7 -29.8440 2.00000 - 8 -0.5057 2.00000 - 9 2.6136 2.00000 - 10 4.7370 2.00000 - 11 5.1523 2.00000 - 12 6.0130 2.00000 - 13 7.6494 1.99903 - 14 8.3935 0.00000 - 15 10.9701 0.00000 - 16 11.5187 0.00000 - 17 13.5916 0.00000 - 18 15.0632 0.00000 - - k-point 170 : 0.0667 0.3333 0.1333 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7453 2.00000 - 5 -30.0358 2.00000 - 6 -30.0143 2.00000 - 7 -29.8438 2.00000 - 8 -0.4569 2.00000 - 9 2.6313 2.00000 - 10 4.6641 2.00000 - 11 5.1321 2.00000 - 12 6.0295 2.00000 - 13 7.5280 2.00000 - 14 8.4922 0.00000 - 15 11.0888 0.00000 - 16 11.3355 0.00000 - 17 13.6775 0.00000 - 18 15.0131 0.00000 - - k-point 171 : 0.1333 0.3333 0.1333 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2907 2.00000 - 4 -65.7452 2.00000 - 5 -30.0353 2.00000 - 6 -30.0204 2.00000 - 7 -29.8433 2.00000 - 8 -0.3133 2.00000 - 9 2.6752 2.00000 - 10 4.4540 2.00000 - 11 5.1041 2.00000 - 12 6.0697 2.00000 - 13 7.2554 2.00000 - 14 8.7315 0.00000 - 15 10.8888 0.00000 - 16 11.3448 0.00000 - 17 13.6890 0.00000 - 18 15.8847 0.00000 - - k-point 172 : 0.2000 0.3333 0.1333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7450 2.00000 - 5 -30.0345 2.00000 - 6 -30.0292 2.00000 - 7 -29.8426 2.00000 - 8 -0.0859 2.00000 - 9 2.7166 2.00000 - 10 4.1804 2.00000 - 11 5.0770 2.00000 - 12 6.1163 2.00000 - 13 6.9765 2.00000 - 14 9.0212 0.00000 - 15 10.3917 0.00000 - 16 11.4336 0.00000 - 17 13.9055 0.00000 - 18 15.2813 0.00000 - - k-point 173 : 0.2667 0.3333 0.1333 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7448 2.00000 - 5 -30.0394 2.00000 - 6 -30.0336 2.00000 - 7 -29.8417 2.00000 - 8 0.2123 2.00000 - 9 2.6878 2.00000 - 10 3.9634 2.00000 - 11 5.0147 2.00000 - 12 6.1592 2.00000 - 13 6.7920 2.00000 - 14 9.2662 0.00000 - 15 9.9512 0.00000 - 16 11.2415 0.00000 - 17 14.1593 0.00000 - 18 15.4866 0.00000 - - k-point 174 : 0.3333 0.3333 0.1333 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7446 2.00000 - 5 -30.0491 2.00000 - 6 -30.0327 2.00000 - 7 -29.8408 2.00000 - 8 0.5609 2.00000 - 9 2.5137 2.00000 - 10 3.9070 2.00000 - 11 4.8851 2.00000 - 12 6.2238 2.00000 - 13 6.7173 2.00000 - 14 9.2451 0.00000 - 15 9.8021 0.00000 - 16 10.8954 0.00000 - 17 14.4228 0.00000 - 18 16.8868 0.00000 - - k-point 175 : 0.4000 0.3333 0.1333 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4247 2.00000 - 3 -91.2897 2.00000 - 4 -65.7444 2.00000 - 5 -30.0566 2.00000 - 6 -30.0320 2.00000 - 7 -29.8402 2.00000 - 8 0.9361 2.00000 - 9 2.2131 2.00000 - 10 3.9968 2.00000 - 11 4.7012 2.00000 - 12 6.3401 2.00000 - 13 6.6831 2.00000 - 14 8.9915 0.00000 - 15 9.9352 0.00000 - 16 10.5511 0.00000 - 17 14.6648 0.00000 - 18 16.6490 0.00000 - - k-point 176 : 0.4667 0.3333 0.1333 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7444 2.00000 - 5 -30.0607 2.00000 - 6 -30.0317 2.00000 - 7 -29.8398 2.00000 - 8 1.2854 2.00000 - 9 1.8883 2.00000 - 10 4.1342 2.00000 - 11 4.5244 2.00000 - 12 6.4820 2.00000 - 13 6.6213 2.00000 - 14 8.8197 0.00000 - 15 10.0947 0.00000 - 16 10.2879 0.00000 - 17 14.4258 0.00000 - 18 16.1813 0.00000 - - k-point 177 : 0.0000 0.4000 0.1333 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7451 2.00000 - 5 -30.0466 2.00000 - 6 -30.0111 2.00000 - 7 -29.8430 2.00000 - 8 -0.0307 2.00000 - 9 1.9718 2.00000 - 10 4.7340 2.00000 - 11 4.9824 2.00000 - 12 5.9781 2.00000 - 13 7.6817 1.99554 - 14 8.7276 0.00000 - 15 11.3873 0.00000 - 16 11.9478 0.00000 - 17 12.7854 0.00000 - 18 23.9436 0.00000 - - k-point 178 : 0.0667 0.4000 0.1333 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7451 2.00000 - 5 -30.0464 2.00000 - 6 -30.0132 2.00000 - 7 -29.8428 2.00000 - 8 0.0185 2.00000 - 9 1.9888 2.00000 - 10 4.6859 2.00000 - 11 4.9653 2.00000 - 12 5.9970 2.00000 - 13 7.5729 1.99999 - 14 8.7751 0.00000 - 15 11.4491 0.00000 - 16 11.7029 0.00000 - 17 13.0190 0.00000 - 18 14.7782 0.00000 - - k-point 179 : 0.1333 0.4000 0.1333 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4262 2.00000 - 3 -91.2911 2.00000 - 4 -65.7450 2.00000 - 5 -30.0459 2.00000 - 6 -30.0193 2.00000 - 7 -29.8423 2.00000 - 8 0.1624 2.00000 - 9 2.0359 2.00000 - 10 4.5378 2.00000 - 11 4.9360 2.00000 - 12 6.0484 2.00000 - 13 7.3135 2.00000 - 14 8.8969 0.00000 - 15 11.2099 0.00000 - 16 11.4930 0.00000 - 17 13.3525 0.00000 - 18 14.7482 0.00000 - - k-point 180 : 0.2000 0.4000 0.1333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7448 2.00000 - 5 -30.0451 2.00000 - 6 -30.0282 2.00000 - 7 -29.8416 2.00000 - 8 0.3853 2.00000 - 9 2.1069 2.00000 - 10 4.3253 2.00000 - 11 4.8953 2.00000 - 12 6.1228 2.00000 - 13 7.0290 2.00000 - 14 9.0504 0.00000 - 15 10.6735 0.00000 - 16 11.2840 0.00000 - 17 13.8208 0.00000 - 18 15.4677 0.00000 - - k-point 181 : 0.2667 0.4000 0.1333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7446 2.00000 - 5 -30.0442 2.00000 - 6 -30.0384 2.00000 - 7 -29.8407 2.00000 - 8 0.6619 2.00000 - 9 2.1867 2.00000 - 10 4.1117 2.00000 - 11 4.8111 2.00000 - 12 6.2095 2.00000 - 13 6.8181 2.00000 - 14 9.1919 0.00000 - 15 10.1602 0.00000 - 16 10.8993 0.00000 - 17 15.1026 0.00000 - 18 15.8962 0.00000 - - k-point 182 : 0.3333 0.4000 0.1333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7444 2.00000 - 5 -30.0481 2.00000 - 6 -30.0434 2.00000 - 7 -29.8399 2.00000 - 8 0.9577 2.00000 - 9 2.2499 2.00000 - 10 3.9565 2.00000 - 11 4.6608 2.00000 - 12 6.3079 2.00000 - 13 6.7191 2.00000 - 14 9.2475 0.00000 - 15 9.7542 0.00000 - 16 10.4853 0.00000 - 17 14.4236 0.00000 - 18 15.9769 0.00000 - - k-point 183 : 0.4000 0.4000 0.1333 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2900 2.00000 - 4 -65.7442 2.00000 - 5 -30.0556 2.00000 - 6 -30.0428 2.00000 - 7 -29.8392 2.00000 - 8 1.2239 2.00000 - 9 2.2689 2.00000 - 10 3.9080 2.00000 - 11 4.4598 2.00000 - 12 6.4254 2.00000 - 13 6.6915 2.00000 - 14 9.0705 0.00000 - 15 9.6405 0.00000 - 16 10.1444 0.00000 - 17 14.3430 0.00000 - 18 17.2812 0.00000 - - k-point 184 : 0.4667 0.4000 0.1333 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7442 2.00000 - 5 -30.0598 2.00000 - 6 -30.0424 2.00000 - 7 -29.8388 2.00000 - 8 1.3946 2.00000 - 9 2.2508 2.00000 - 10 3.9615 2.00000 - 11 4.2707 2.00000 - 12 6.5390 2.00000 - 13 6.6669 2.00000 - 14 8.8711 0.00000 - 15 9.6833 0.00000 - 16 9.9342 0.00000 - 17 14.2821 0.00000 - 18 16.8667 0.00000 - - k-point 185 : 0.0000 0.4667 0.1333 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4260 2.00000 - 3 -91.2909 2.00000 - 4 -65.7450 2.00000 - 5 -30.0524 2.00000 - 6 -30.0105 2.00000 - 7 -29.8425 2.00000 - 8 0.4229 2.00000 - 9 1.4332 2.00000 - 10 4.7335 2.00000 - 11 4.8932 2.00000 - 12 5.9406 2.00000 - 13 7.7046 1.98825 - 14 9.0485 0.00000 - 15 11.6113 0.00000 - 16 12.2365 0.00000 - 17 12.4166 0.00000 - 18 14.4069 0.00000 - - k-point 186 : 0.0667 0.4667 0.1333 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4260 2.00000 - 3 -91.2909 2.00000 - 4 -65.7450 2.00000 - 5 -30.0522 2.00000 - 6 -30.0126 2.00000 - 7 -29.8423 2.00000 - 8 0.4791 2.00000 - 9 1.4433 2.00000 - 10 4.7207 2.00000 - 11 4.8490 2.00000 - 12 5.9697 2.00000 - 13 7.5985 1.99994 - 14 9.0623 0.00000 - 15 11.5449 0.00000 - 16 11.9351 0.00000 - 17 12.6346 0.00000 - 18 14.4028 0.00000 - - k-point 187 : 0.1333 0.4667 0.1333 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4262 2.00000 - 3 -91.2911 2.00000 - 4 -65.7449 2.00000 - 5 -30.0517 2.00000 - 6 -30.0187 2.00000 - 7 -29.8418 2.00000 - 8 0.6406 2.00000 - 9 1.4754 2.00000 - 10 4.6393 2.00000 - 11 4.7744 2.00000 - 12 6.0463 2.00000 - 13 7.3409 2.00000 - 14 9.0974 0.00000 - 15 11.2685 0.00000 - 16 11.5426 0.00000 - 17 13.2087 0.00000 - 18 14.4572 0.00000 - - k-point 188 : 0.2000 0.4667 0.1333 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4259 2.00000 - 3 -91.2908 2.00000 - 4 -65.7447 2.00000 - 5 -30.0509 2.00000 - 6 -30.0276 2.00000 - 7 -29.8411 2.00000 - 8 0.8849 2.00000 - 9 1.5379 2.00000 - 10 4.4679 2.00000 - 11 4.7154 2.00000 - 12 6.1524 2.00000 - 13 7.0495 2.00000 - 14 9.1423 0.00000 - 15 10.8507 0.00000 - 16 11.0603 0.00000 - 17 14.0298 0.00000 - 18 14.7766 0.00000 - - k-point 189 : 0.2667 0.4667 0.1333 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2911 2.00000 - 4 -65.7445 2.00000 - 5 -30.0501 2.00000 - 6 -30.0378 2.00000 - 7 -29.8402 2.00000 - 8 1.1502 2.00000 - 9 1.6634 2.00000 - 10 4.2778 2.00000 - 11 4.6118 2.00000 - 12 6.2733 2.00000 - 13 6.8222 2.00000 - 14 9.1840 0.00000 - 15 10.3474 0.00000 - 16 10.5871 0.00000 - 17 14.4557 0.00000 - 18 15.2545 0.00000 - - k-point 190 : 0.3333 0.4667 0.1333 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7443 2.00000 - 5 -30.0493 2.00000 - 6 -30.0475 2.00000 - 7 -29.8393 2.00000 - 8 1.3315 2.00000 - 9 1.9197 2.00000 - 10 4.1103 2.00000 - 11 4.4350 2.00000 - 12 6.3954 2.00000 - 13 6.7111 2.00000 - 14 9.1975 0.00000 - 15 9.8332 0.00000 - 16 10.1952 0.00000 - 17 14.3744 0.00000 - 18 15.8908 0.00000 - - k-point 191 : 0.4000 0.4667 0.1333 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7441 2.00000 - 5 -30.0551 2.00000 - 6 -30.0487 2.00000 - 7 -29.8387 2.00000 - 8 1.4141 2.00000 - 9 2.2587 2.00000 - 10 3.9834 2.00000 - 11 4.2083 2.00000 - 12 6.5037 2.00000 - 13 6.7025 2.00000 - 14 9.0928 0.00000 - 15 9.5006 0.00000 - 16 9.9082 0.00000 - 17 14.2642 0.00000 - 18 16.9205 0.00000 - - k-point 192 : 0.4667 0.4667 0.1333 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7441 2.00000 - 5 -30.0593 2.00000 - 6 -30.0483 2.00000 - 7 -29.8383 2.00000 - 8 1.4457 2.00000 - 9 2.5199 2.00000 - 10 3.9004 2.00000 - 11 4.0331 2.00000 - 12 6.5737 2.00000 - 13 6.7304 2.00000 - 14 8.8995 0.00000 - 15 9.4301 0.00000 - 16 9.7525 0.00000 - 17 14.2685 0.00000 - 18 34.2814 0.00000 - - k-point 193 : 0.0000 0.0000 0.2000 - band No. band energies occupation - 1 -91.8795 2.00000 - 2 -91.4244 2.00000 - 3 -91.2894 2.00000 - 4 -65.7449 2.00000 - 5 -30.0129 2.00000 - 6 -29.9797 2.00000 - 7 -29.8895 2.00000 - 8 -1.4187 2.00000 - 9 4.4601 2.00000 - 10 4.6731 2.00000 - 11 5.6743 2.00000 - 12 5.9932 2.00000 - 13 8.1576 0.00010 - 14 8.3102 0.00000 - 15 9.3878 0.00000 - 16 9.5739 0.00000 - 17 14.6169 0.00000 - 18 15.2950 0.00000 - - k-point 194 : 0.0667 0.0000 0.2000 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2900 2.00000 - 4 -65.7449 2.00000 - 5 -30.0151 2.00000 - 6 -29.9795 2.00000 - 7 -29.8894 2.00000 - 8 -1.3679 2.00000 - 9 4.3898 2.00000 - 10 4.6848 2.00000 - 11 5.5775 2.00000 - 12 5.9882 2.00000 - 13 8.0710 0.00779 - 14 8.3358 0.00000 - 15 9.2963 0.00000 - 16 9.8808 0.00000 - 17 14.7640 0.00000 - 18 15.2851 0.00000 - - k-point 195 : 0.1333 0.0000 0.2000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7447 2.00000 - 5 -30.0211 2.00000 - 6 -29.9789 2.00000 - 7 -29.8889 2.00000 - 8 -1.2205 2.00000 - 9 4.1260 2.00000 - 10 4.7341 2.00000 - 11 5.4333 2.00000 - 12 5.9646 2.00000 - 13 7.6673 1.99769 - 14 8.7032 0.00000 - 15 9.1336 0.00000 - 16 10.4886 0.00000 - 17 14.8840 0.00000 - 18 16.1247 0.00000 - - k-point 196 : 0.2000 0.0000 0.2000 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2897 2.00000 - 4 -65.7446 2.00000 - 5 -30.0299 2.00000 - 6 -29.9782 2.00000 - 7 -29.8882 2.00000 - 8 -0.9808 2.00000 - 9 3.6652 2.00000 - 10 4.7987 2.00000 - 11 5.3993 2.00000 - 12 5.9001 2.00000 - 13 7.3364 2.00000 - 14 8.6839 0.00000 - 15 9.4310 0.00000 - 16 11.1616 0.00000 - 17 14.7250 0.00000 - 18 16.1963 0.00000 - - k-point 197 : 0.2667 0.0000 0.2000 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2899 2.00000 - 4 -65.7444 2.00000 - 5 -30.0400 2.00000 - 6 -29.9771 2.00000 - 7 -29.8874 2.00000 - 8 -0.6587 2.00000 - 9 3.0989 2.00000 - 10 4.8498 2.00000 - 11 5.4590 2.00000 - 12 5.7806 2.00000 - 13 7.1397 2.00000 - 14 8.5209 0.00000 - 15 9.9588 0.00000 - 16 11.8236 0.00000 - 17 14.2014 0.00000 - 18 16.2147 0.00000 - - k-point 198 : 0.3333 0.0000 0.2000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7442 2.00000 - 5 -30.0497 2.00000 - 6 -29.9762 2.00000 - 7 -29.8866 2.00000 - 8 -0.2656 2.00000 - 9 2.4987 2.00000 - 10 4.8835 2.00000 - 11 5.5379 2.00000 - 12 5.6319 2.00000 - 13 7.0597 2.00000 - 14 8.4828 0.00000 - 15 10.4687 0.00000 - 16 12.4416 0.00000 - 17 13.3290 0.00000 - 18 15.1337 0.00000 - - k-point 199 : 0.4000 0.0000 0.2000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7441 2.00000 - 5 -30.0573 2.00000 - 6 -29.9754 2.00000 - 7 -29.8860 2.00000 - 8 0.1849 2.00000 - 9 1.9035 2.00000 - 10 4.9056 2.00000 - 11 5.5030 2.00000 - 12 5.5861 2.00000 - 13 7.0432 2.00000 - 14 8.5758 0.00000 - 15 10.9253 0.00000 - 16 12.5527 0.00000 - 17 13.0088 0.00000 - 18 14.8073 0.00000 - - k-point 200 : 0.4667 0.0000 0.2000 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4261 2.00000 - 3 -91.2912 2.00000 - 4 -65.7441 2.00000 - 5 -30.0615 2.00000 - 6 -29.9750 2.00000 - 7 -29.8857 2.00000 - 8 0.6491 2.00000 - 9 1.3651 2.00000 - 10 4.9176 2.00000 - 11 5.4303 2.00000 - 12 5.6017 2.00000 - 13 7.0458 2.00000 - 14 8.6931 0.00000 - 15 11.3271 0.00000 - 16 11.9366 0.00000 - 17 13.5779 0.00000 - 18 14.3517 0.00000 - - k-point 201 : 0.0000 0.0667 0.2000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7449 2.00000 - 5 -30.0127 2.00000 - 6 -29.9828 2.00000 - 7 -29.8893 2.00000 - 8 -1.3666 2.00000 - 9 4.4223 2.00000 - 10 4.6934 2.00000 - 11 5.6697 2.00000 - 12 5.8285 2.00000 - 13 8.0271 0.04123 - 14 8.3692 0.00000 - 15 9.4509 0.00000 - 16 9.7370 0.00000 - 17 14.9651 0.00000 - 18 15.3421 0.00000 - - k-point 202 : 0.0667 0.0667 0.2000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2901 2.00000 - 4 -65.7448 2.00000 - 5 -30.0148 2.00000 - 6 -29.9826 2.00000 - 7 -29.8892 2.00000 - 8 -1.3163 2.00000 - 9 4.3772 2.00000 - 10 4.7020 2.00000 - 11 5.4537 2.00000 - 12 5.9491 2.00000 - 13 7.7861 1.82833 - 14 8.5756 0.00000 - 15 9.5058 0.00000 - 16 9.8346 0.00000 - 17 15.0595 0.00000 - 18 16.2568 0.00000 - - k-point 203 : 0.1333 0.0667 0.2000 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4246 2.00000 - 3 -91.2896 2.00000 - 4 -65.7447 2.00000 - 5 -30.0208 2.00000 - 6 -29.9819 2.00000 - 7 -29.8886 2.00000 - 8 -1.1678 2.00000 - 9 4.1541 2.00000 - 10 4.7483 2.00000 - 11 5.2311 2.00000 - 12 6.0125 2.00000 - 13 7.4085 2.00000 - 14 8.9608 0.00000 - 15 9.3188 0.00000 - 16 10.3531 0.00000 - 17 15.1264 0.00000 - 18 15.6355 0.00000 - - k-point 204 : 0.2000 0.0667 0.2000 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4247 2.00000 - 3 -91.2897 2.00000 - 4 -65.7445 2.00000 - 5 -30.0296 2.00000 - 6 -29.9811 2.00000 - 7 -29.8879 2.00000 - 8 -0.9290 2.00000 - 9 3.7034 2.00000 - 10 4.8102 2.00000 - 11 5.1970 2.00000 - 12 5.9664 2.00000 - 13 7.1173 2.00000 - 14 8.9157 0.00000 - 15 9.5830 0.00000 - 16 14.0696 0.00000 - 17 15.5381 0.00000 - 18 16.0450 0.00000 - - k-point 205 : 0.2667 0.0667 0.2000 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7443 2.00000 - 5 -30.0398 2.00000 - 6 -29.9802 2.00000 - 7 -29.8871 2.00000 - 8 -0.6068 2.00000 - 9 3.1346 2.00000 - 10 4.8473 2.00000 - 11 5.3098 2.00000 - 12 5.8138 2.00000 - 13 6.9753 2.00000 - 14 8.6937 0.00000 - 15 10.0930 0.00000 - 16 11.5987 0.00000 - 17 14.2851 0.00000 - 18 15.4916 0.00000 - - k-point 206 : 0.3333 0.0667 0.2000 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7442 2.00000 - 5 -30.0495 2.00000 - 6 -29.9792 2.00000 - 7 -29.8864 2.00000 - 8 -0.2132 2.00000 - 9 2.5322 2.00000 - 10 4.8734 2.00000 - 11 5.4530 2.00000 - 12 5.6251 2.00000 - 13 6.9349 2.00000 - 14 8.5950 0.00000 - 15 10.5671 0.00000 - 16 12.1071 0.00000 - 17 13.6101 0.00000 - 18 15.2056 0.00000 - - k-point 207 : 0.4000 0.0667 0.2000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7441 2.00000 - 5 -30.0571 2.00000 - 6 -29.9785 2.00000 - 7 -29.8858 2.00000 - 8 0.2373 2.00000 - 9 1.9361 2.00000 - 10 4.9016 2.00000 - 11 5.4135 2.00000 - 12 5.6118 2.00000 - 13 6.9300 2.00000 - 14 8.6308 0.00000 - 15 10.9545 0.00000 - 16 12.2321 0.00000 - 17 13.3411 0.00000 - 18 14.6028 0.00000 - - k-point 208 : 0.4667 0.0667 0.2000 - band No. band energies occupation - 1 -91.8813 2.00000 - 2 -91.4262 2.00000 - 3 -91.2912 2.00000 - 4 -65.7440 2.00000 - 5 -30.0612 2.00000 - 6 -29.9781 2.00000 - 7 -29.8855 2.00000 - 8 0.7080 2.00000 - 9 1.3914 2.00000 - 10 4.9262 2.00000 - 11 5.3148 2.00000 - 12 5.6677 2.00000 - 13 6.9317 2.00000 - 14 8.7105 0.00000 - 15 11.2069 0.00000 - 16 11.9941 0.00000 - 17 13.6247 0.00000 - 18 14.2566 0.00000 - - k-point 209 : 0.0000 0.1333 0.2000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7447 2.00000 - 5 -30.0118 2.00000 - 6 -29.9913 2.00000 - 7 -29.8886 2.00000 - 8 -1.2087 2.00000 - 9 4.2480 2.00000 - 10 4.7537 2.00000 - 11 5.5479 2.00000 - 12 5.6464 2.00000 - 13 7.5854 1.99997 - 14 8.8369 0.00000 - 15 9.1686 0.00000 - 16 10.3783 0.00000 - 17 15.1703 0.00000 - 18 16.5372 0.00000 - - k-point 210 : 0.0667 0.1333 0.2000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7446 2.00000 - 5 -30.0140 2.00000 - 6 -29.9911 2.00000 - 7 -29.8884 2.00000 - 8 -1.1599 2.00000 - 9 4.2600 2.00000 - 10 4.7624 2.00000 - 11 5.1876 2.00000 - 12 5.8950 2.00000 - 13 7.3708 2.00000 - 14 9.0334 0.00000 - 15 9.3519 0.00000 - 16 10.2679 0.00000 - 17 15.3111 0.00000 - 18 15.6587 0.00000 - - k-point 211 : 0.1333 0.1333 0.2000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7445 2.00000 - 5 -30.0200 2.00000 - 6 -29.9906 2.00000 - 7 -29.8880 2.00000 - 8 -1.0132 2.00000 - 9 4.2030 2.00000 - 10 4.7943 2.00000 - 11 4.8011 2.00000 - 12 6.0641 2.00000 - 13 6.9806 2.00000 - 14 9.4178 0.00000 - 15 9.6455 0.00000 - 16 10.1655 0.00000 - 17 15.5541 0.00000 - 18 16.0175 0.00000 - - k-point 212 : 0.2000 0.1333 0.2000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7444 2.00000 - 5 -30.0289 2.00000 - 6 -29.9897 2.00000 - 7 -29.8872 2.00000 - 8 -0.7738 2.00000 - 9 3.8102 2.00000 - 10 4.7014 2.00000 - 11 4.8920 2.00000 - 12 6.0747 2.00000 - 13 6.6867 2.00000 - 14 9.3773 0.00000 - 15 9.9364 0.00000 - 16 10.5923 0.00000 - 17 15.0458 0.00000 - 18 15.9243 0.00000 - - k-point 213 : 0.2667 0.1333 0.2000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7441 2.00000 - 5 -30.0390 2.00000 - 6 -29.9887 2.00000 - 7 -29.8864 2.00000 - 8 -0.4528 2.00000 - 9 3.2344 2.00000 - 10 4.7338 2.00000 - 11 5.0752 2.00000 - 12 5.8733 2.00000 - 13 6.6224 2.00000 - 14 9.0753 0.00000 - 15 10.3673 0.00000 - 16 11.1413 0.00000 - 17 14.3495 0.00000 - 18 16.6028 0.00000 - - k-point 214 : 0.3333 0.1333 0.2000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7440 2.00000 - 5 -30.0487 2.00000 - 6 -29.9878 2.00000 - 7 -29.8857 2.00000 - 8 -0.0611 2.00000 - 9 2.6291 2.00000 - 10 4.7819 2.00000 - 11 5.2693 2.00000 - 12 5.6458 2.00000 - 13 6.6483 2.00000 - 14 8.8604 0.00000 - 15 10.6806 0.00000 - 16 11.6275 0.00000 - 17 13.8130 0.00000 - 18 15.2714 0.00000 - - k-point 215 : 0.4000 0.1333 0.2000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7438 2.00000 - 5 -30.0563 2.00000 - 6 -29.9871 2.00000 - 7 -29.8850 2.00000 - 8 0.3892 2.00000 - 9 2.0335 2.00000 - 10 4.8463 2.00000 - 11 5.2455 2.00000 - 12 5.6563 2.00000 - 13 6.6606 2.00000 - 14 8.7680 0.00000 - 15 10.8072 0.00000 - 16 11.9897 0.00000 - 17 13.5317 0.00000 - 18 14.8625 0.00000 - - k-point 216 : 0.4667 0.1333 0.2000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7438 2.00000 - 5 -30.0604 2.00000 - 6 -29.9867 2.00000 - 7 -29.8847 2.00000 - 8 0.8747 2.00000 - 9 1.4744 2.00000 - 10 4.9295 2.00000 - 11 5.1004 2.00000 - 12 5.7671 2.00000 - 13 6.6527 2.00000 - 14 8.7570 0.00000 - 15 10.8011 0.00000 - 16 12.1859 0.00000 - 17 13.5593 0.00000 - 18 14.6572 0.00000 - - k-point 217 : 0.0000 0.2000 0.2000 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7444 2.00000 - 5 -30.0105 2.00000 - 6 -30.0038 2.00000 - 7 -29.8876 2.00000 - 8 -0.9548 2.00000 - 9 3.8567 2.00000 - 10 4.8138 2.00000 - 11 5.4323 2.00000 - 12 5.5813 2.00000 - 13 7.2363 2.00000 - 14 8.8397 0.00000 - 15 9.4096 0.00000 - 16 11.0606 0.00000 - 17 14.9041 0.00000 - 18 15.9154 0.00000 - - k-point 218 : 0.0667 0.2000 0.2000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7444 2.00000 - 5 -30.0127 2.00000 - 6 -30.0037 2.00000 - 7 -29.8874 2.00000 - 8 -0.9054 2.00000 - 9 3.8932 2.00000 - 10 4.8113 2.00000 - 11 5.0970 2.00000 - 12 5.8095 2.00000 - 13 7.0569 2.00000 - 14 9.0275 0.00000 - 15 9.5614 0.00000 - 16 10.9012 0.00000 - 17 15.3640 0.00000 - 18 16.2477 0.00000 - - k-point 219 : 0.1333 0.2000 0.2000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7443 2.00000 - 5 -30.0188 2.00000 - 6 -30.0031 2.00000 - 7 -29.8869 2.00000 - 8 -0.7600 2.00000 - 9 3.9970 2.00000 - 10 4.5299 2.00000 - 11 4.9001 2.00000 - 12 6.0104 2.00000 - 13 6.6764 2.00000 - 14 9.4299 0.00000 - 15 9.9366 0.00000 - 16 10.5322 0.00000 - 17 15.0414 0.00000 - 18 15.7405 0.00000 - - k-point 220 : 0.2000 0.2000 0.2000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7441 2.00000 - 5 -30.0277 2.00000 - 6 -30.0023 2.00000 - 7 -29.8862 2.00000 - 8 -0.5239 2.00000 - 9 3.9586 2.00000 - 10 4.1573 2.00000 - 11 4.9630 2.00000 - 12 6.1585 2.00000 - 13 6.2704 2.00000 - 14 9.7369 0.00000 - 15 10.1887 0.00000 - 16 10.4392 0.00000 - 17 14.6116 0.00000 - 18 15.8892 0.00000 - - k-point 221 : 0.2667 0.2000 0.2000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7439 2.00000 - 5 -30.0379 2.00000 - 6 -30.0014 2.00000 - 7 -29.8854 2.00000 - 8 -0.2066 2.00000 - 9 3.3648 2.00000 - 10 4.3281 2.00000 - 11 5.0858 2.00000 - 12 5.8933 2.00000 - 13 6.2876 2.00000 - 14 9.4924 0.00000 - 15 10.3513 0.00000 - 16 10.9098 0.00000 - 17 14.1968 0.00000 - 18 15.6095 0.00000 - - k-point 222 : 0.3333 0.2000 0.2000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7437 2.00000 - 5 -30.0476 2.00000 - 6 -30.0005 2.00000 - 7 -29.8847 2.00000 - 8 0.1788 2.00000 - 9 2.7700 2.00000 - 10 4.4886 2.00000 - 11 5.2214 2.00000 - 12 5.6433 2.00000 - 13 6.3659 2.00000 - 14 9.1667 0.00000 - 15 10.4414 0.00000 - 16 11.3646 0.00000 - 17 13.8896 0.00000 - 18 16.6031 0.00000 - - k-point 223 : 0.4000 0.2000 0.2000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7436 2.00000 - 5 -30.0552 2.00000 - 6 -29.9998 2.00000 - 7 -29.8840 2.00000 - 8 0.6216 2.00000 - 9 2.1905 2.00000 - 10 4.6276 2.00000 - 11 5.1554 2.00000 - 12 5.7004 2.00000 - 13 6.3833 2.00000 - 14 8.9358 0.00000 - 15 10.3679 0.00000 - 16 11.7330 0.00000 - 17 13.7871 0.00000 - 18 15.4993 0.00000 - - k-point 224 : 0.4667 0.2000 0.2000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2905 2.00000 - 4 -65.7435 2.00000 - 5 -30.0593 2.00000 - 6 -29.9994 2.00000 - 7 -29.8837 2.00000 - 8 1.1087 2.00000 - 9 1.6347 2.00000 - 10 4.7486 2.00000 - 11 4.9984 2.00000 - 12 5.8749 2.00000 - 13 6.3442 2.00000 - 14 8.8213 0.00000 - 15 10.2716 0.00000 - 16 11.9440 0.00000 - 17 13.8193 0.00000 - 18 14.8856 0.00000 - - k-point 225 : 0.0000 0.2667 0.2000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2901 2.00000 - 4 -65.7441 2.00000 - 5 -30.0183 2.00000 - 6 -30.0091 2.00000 - 7 -29.8863 2.00000 - 8 -0.6139 2.00000 - 9 3.3047 2.00000 - 10 4.8442 2.00000 - 11 5.4603 2.00000 - 12 5.4868 2.00000 - 13 7.0343 2.00000 - 14 8.6590 0.00000 - 15 9.9415 0.00000 - 16 11.7134 0.00000 - 17 14.2240 0.00000 - 18 15.8795 0.00000 - - k-point 226 : 0.0667 0.2667 0.2000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7441 2.00000 - 5 -30.0181 2.00000 - 6 -30.0113 2.00000 - 7 -29.8862 2.00000 - 8 -0.5649 2.00000 - 9 3.3377 2.00000 - 10 4.8084 2.00000 - 11 5.2074 2.00000 - 12 5.6705 2.00000 - 13 6.9017 2.00000 - 14 8.8064 0.00000 - 15 10.0721 0.00000 - 16 11.5068 0.00000 - 17 14.3145 0.00000 - 18 15.6369 0.00000 - - k-point 227 : 0.1333 0.2667 0.2000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2908 2.00000 - 4 -65.7440 2.00000 - 5 -30.0176 2.00000 - 6 -30.0174 2.00000 - 7 -29.8857 2.00000 - 8 -0.4208 2.00000 - 9 3.4287 2.00000 - 10 4.5635 2.00000 - 11 5.0640 2.00000 - 12 5.7943 2.00000 - 13 6.6030 2.00000 - 14 9.1559 0.00000 - 15 10.3672 0.00000 - 16 11.0498 0.00000 - 17 14.3100 0.00000 - 18 15.6899 0.00000 - - k-point 228 : 0.2000 0.2667 0.2000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7438 2.00000 - 5 -30.0263 2.00000 - 6 -30.0168 2.00000 - 7 -29.8850 2.00000 - 8 -0.1891 2.00000 - 9 3.5310 2.00000 - 10 4.1526 2.00000 - 11 5.0962 2.00000 - 12 5.8378 2.00000 - 13 6.3101 2.00000 - 14 9.5515 0.00000 - 15 10.4117 0.00000 - 16 10.7785 0.00000 - 17 14.0757 0.00000 - 18 16.4690 0.00000 - - k-point 229 : 0.2667 0.2667 0.2000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7436 2.00000 - 5 -30.0365 2.00000 - 6 -30.0159 2.00000 - 7 -29.8842 2.00000 - 8 0.1197 2.00000 - 9 3.3712 2.00000 - 10 3.9854 2.00000 - 11 5.1910 2.00000 - 12 5.7030 2.00000 - 13 6.2124 2.00000 - 14 9.7686 0.00000 - 15 10.0355 0.00000 - 16 10.9145 0.00000 - 17 13.9867 0.00000 - 18 15.9162 0.00000 - - k-point 230 : 0.3333 0.2667 0.2000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7434 2.00000 - 5 -30.0463 2.00000 - 6 -30.0150 2.00000 - 7 -29.8835 2.00000 - 8 0.4894 2.00000 - 9 2.9018 2.00000 - 10 4.1317 2.00000 - 11 5.2339 2.00000 - 12 5.5776 2.00000 - 13 6.2422 2.00000 - 14 9.4373 0.00000 - 15 9.9987 0.00000 - 16 11.0336 0.00000 - 17 14.2044 0.00000 - 18 15.5874 0.00000 - - k-point 231 : 0.4000 0.2667 0.2000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7433 2.00000 - 5 -30.0539 2.00000 - 6 -30.0143 2.00000 - 7 -29.8829 2.00000 - 8 0.9061 2.00000 - 9 2.3921 2.00000 - 10 4.3127 2.00000 - 11 5.0699 2.00000 - 12 5.7376 2.00000 - 13 6.2494 2.00000 - 14 9.0950 0.00000 - 15 9.8623 0.00000 - 16 11.1873 0.00000 - 17 15.0131 0.00000 - 18 17.2295 0.00000 - - k-point 232 : 0.4667 0.2667 0.2000 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4247 2.00000 - 3 -91.2897 2.00000 - 4 -65.7431 2.00000 - 5 -30.0580 2.00000 - 6 -30.0139 2.00000 - 7 -29.8825 2.00000 - 8 1.3392 2.00000 - 9 1.9119 2.00000 - 10 4.4535 2.00000 - 11 4.9101 2.00000 - 12 5.9724 2.00000 - 13 6.1724 2.00000 - 14 8.8920 0.00000 - 15 9.7378 0.00000 - 16 11.2934 0.00000 - 17 14.5094 0.00000 - 18 14.9006 0.00000 - - k-point 233 : 0.0000 0.3333 0.2000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7438 2.00000 - 5 -30.0320 2.00000 - 6 -30.0077 2.00000 - 7 -29.8852 2.00000 - 8 -0.1990 2.00000 - 9 2.6933 2.00000 - 10 4.8622 2.00000 - 11 5.3088 2.00000 - 12 5.5698 2.00000 - 13 6.9576 2.00000 - 14 8.6840 0.00000 - 15 10.4231 0.00000 - 16 12.3103 0.00000 - 17 13.3388 0.00000 - 18 15.0063 0.00000 - - k-point 234 : 0.0667 0.3333 0.2000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7438 2.00000 - 5 -30.0318 2.00000 - 6 -30.0099 2.00000 - 7 -29.8850 2.00000 - 8 -0.1505 2.00000 - 9 2.7229 2.00000 - 10 4.8168 2.00000 - 11 5.2487 2.00000 - 12 5.5888 2.00000 - 13 6.8570 2.00000 - 14 8.7830 0.00000 - 15 10.5162 0.00000 - 16 12.0017 0.00000 - 17 13.5605 0.00000 - 18 14.9311 0.00000 - - k-point 235 : 0.1333 0.3333 0.2000 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2902 2.00000 - 4 -65.7436 2.00000 - 5 -30.0312 2.00000 - 6 -30.0160 2.00000 - 7 -29.8846 2.00000 - 8 -0.0083 2.00000 - 9 2.8063 2.00000 - 10 4.6280 2.00000 - 11 5.1868 2.00000 - 12 5.6156 2.00000 - 13 6.6210 2.00000 - 14 9.0297 0.00000 - 15 10.6548 0.00000 - 16 11.4979 0.00000 - 17 13.6805 0.00000 - 18 16.1680 0.00000 - - k-point 236 : 0.2000 0.3333 0.2000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7435 2.00000 - 5 -30.0305 2.00000 - 6 -30.0249 2.00000 - 7 -29.8838 2.00000 - 8 0.2176 2.00000 - 9 2.9196 2.00000 - 10 4.3150 2.00000 - 11 5.2001 2.00000 - 12 5.6107 2.00000 - 13 6.3844 2.00000 - 14 9.3223 0.00000 - 15 10.4868 0.00000 - 16 11.1488 0.00000 - 17 13.7394 0.00000 - 18 15.2525 0.00000 - - k-point 237 : 0.2667 0.3333 0.2000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7433 2.00000 - 5 -30.0353 2.00000 - 6 -30.0296 2.00000 - 7 -29.8831 2.00000 - 8 0.5095 2.00000 - 9 2.9934 2.00000 - 10 4.0235 2.00000 - 11 5.2081 2.00000 - 12 5.5733 2.00000 - 13 6.2653 2.00000 - 14 9.5540 0.00000 - 15 10.0537 0.00000 - 16 10.8460 0.00000 - 17 14.0317 0.00000 - 18 16.9865 0.00000 - - k-point 238 : 0.3333 0.3333 0.2000 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7431 2.00000 - 5 -30.0450 2.00000 - 6 -30.0288 2.00000 - 7 -29.8823 2.00000 - 8 0.8493 2.00000 - 9 2.8878 2.00000 - 10 3.9281 2.00000 - 11 5.0740 2.00000 - 12 5.6506 2.00000 - 13 6.2584 2.00000 - 14 9.5863 0.00000 - 15 9.6119 0.00000 - 16 10.5896 0.00000 - 17 14.5477 0.00000 - 18 16.1231 0.00000 - - k-point 239 : 0.4000 0.3333 0.2000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7430 2.00000 - 5 -30.0527 2.00000 - 6 -30.0281 2.00000 - 7 -29.8818 2.00000 - 8 1.2065 2.00000 - 9 2.5979 2.00000 - 10 4.0342 2.00000 - 11 4.8601 2.00000 - 12 5.8427 2.00000 - 13 6.2709 2.00000 - 14 9.2185 0.00000 - 15 9.4083 0.00000 - 16 10.5443 0.00000 - 17 14.9799 0.00000 - 18 16.9946 0.00000 - - k-point 240 : 0.4667 0.3333 0.2000 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7429 2.00000 - 5 -30.0568 2.00000 - 6 -30.0277 2.00000 - 7 -29.8814 2.00000 - 8 1.5149 2.00000 - 9 2.3015 2.00000 - 10 4.1783 2.00000 - 11 4.6820 2.00000 - 12 6.0499 2.00000 - 13 6.2287 2.00000 - 14 8.9581 0.00000 - 15 9.2598 0.00000 - 16 10.5742 0.00000 - 17 14.8199 0.00000 - 18 15.4551 0.00000 - - k-point 241 : 0.0000 0.4000 0.2000 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4262 2.00000 - 3 -91.2912 2.00000 - 4 -65.7436 2.00000 - 5 -30.0427 2.00000 - 6 -30.0068 2.00000 - 7 -29.8843 2.00000 - 8 0.2722 2.00000 - 9 2.0800 2.00000 - 10 4.8773 2.00000 - 11 5.1767 2.00000 - 12 5.6077 2.00000 - 13 6.9482 2.00000 - 14 8.9102 0.00000 - 15 10.8202 0.00000 - 16 12.5032 0.00000 - 17 12.8741 0.00000 - 18 14.6540 0.00000 - - k-point 242 : 0.0667 0.4000 0.2000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7436 2.00000 - 5 -30.0425 2.00000 - 6 -30.0088 2.00000 - 7 -29.8842 2.00000 - 8 0.3219 2.00000 - 9 2.1086 2.00000 - 10 4.8435 2.00000 - 11 5.1373 2.00000 - 12 5.6282 2.00000 - 13 6.8548 2.00000 - 14 8.9591 0.00000 - 15 10.8385 0.00000 - 16 12.1616 0.00000 - 17 13.3887 0.00000 - 18 14.7173 0.00000 - - k-point 243 : 0.1333 0.4000 0.2000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7434 2.00000 - 5 -30.0420 2.00000 - 6 -30.0149 2.00000 - 7 -29.8837 2.00000 - 8 0.4637 2.00000 - 9 2.1902 2.00000 - 10 4.6998 2.00000 - 11 5.0929 2.00000 - 12 5.6713 2.00000 - 13 6.6315 2.00000 - 14 9.0845 0.00000 - 15 10.7099 0.00000 - 16 11.8347 0.00000 - 17 13.3260 0.00000 - 18 14.8037 0.00000 - - k-point 244 : 0.2000 0.4000 0.2000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2904 2.00000 - 4 -65.7433 2.00000 - 5 -30.0412 2.00000 - 6 -30.0239 2.00000 - 7 -29.8830 2.00000 - 8 0.6817 2.00000 - 9 2.3190 2.00000 - 10 4.4554 2.00000 - 11 5.0740 2.00000 - 12 5.7125 2.00000 - 13 6.4023 2.00000 - 14 9.2380 0.00000 - 15 10.3235 0.00000 - 16 11.4656 0.00000 - 17 13.6342 0.00000 - 18 15.3546 0.00000 - - k-point 245 : 0.2667 0.4000 0.2000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7431 2.00000 - 5 -30.0404 2.00000 - 6 -30.0342 2.00000 - 7 -29.8822 2.00000 - 8 0.9487 2.00000 - 9 2.4808 2.00000 - 10 4.1899 2.00000 - 11 5.0008 2.00000 - 12 5.7567 2.00000 - 13 6.2838 2.00000 - 14 9.3589 0.00000 - 15 9.8771 0.00000 - 16 10.8863 0.00000 - 17 14.2986 0.00000 - 18 15.7162 0.00000 - - k-point 246 : 0.3333 0.4000 0.2000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2905 2.00000 - 4 -65.7429 2.00000 - 5 -30.0441 2.00000 - 6 -30.0396 2.00000 - 7 -29.8814 2.00000 - 8 1.2299 2.00000 - 9 2.6376 2.00000 - 10 3.9806 2.00000 - 11 4.8199 2.00000 - 12 5.8594 2.00000 - 13 6.2868 2.00000 - 14 9.3046 0.00000 - 15 9.5580 0.00000 - 16 10.2980 0.00000 - 17 14.7255 0.00000 - 18 15.1041 0.00000 - - k-point 247 : 0.4000 0.4000 0.2000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7427 2.00000 - 5 -30.0517 2.00000 - 6 -30.0390 2.00000 - 7 -29.8808 2.00000 - 8 1.4810 2.00000 - 9 2.7241 2.00000 - 10 3.9050 2.00000 - 11 4.5774 2.00000 - 12 6.0293 2.00000 - 13 6.3312 2.00000 - 14 9.0511 0.00000 - 15 9.2924 0.00000 - 16 9.9968 0.00000 - 17 14.8542 0.00000 - 18 17.0014 0.00000 - - k-point 248 : 0.4667 0.4000 0.2000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7427 2.00000 - 5 -30.0559 2.00000 - 6 -30.0387 2.00000 - 7 -29.8806 2.00000 - 8 1.6404 2.00000 - 9 2.7265 2.00000 - 10 3.9706 2.00000 - 11 4.3593 2.00000 - 12 6.1919 2.00000 - 13 6.3459 2.00000 - 14 8.8868 0.00000 - 15 9.0124 0.00000 - 16 9.9580 0.00000 - 17 16.6992 0.00000 - 18 18.2794 0.00000 - - k-point 249 : 0.0000 0.4667 0.2000 - band No. band energies occupation - 1 -91.8816 2.00000 - 2 -91.4266 2.00000 - 3 -91.2915 2.00000 - 4 -65.7435 2.00000 - 5 -30.0485 2.00000 - 6 -30.0062 2.00000 - 7 -29.8839 2.00000 - 8 0.7508 2.00000 - 9 1.5290 2.00000 - 10 4.8872 2.00000 - 11 5.1019 2.00000 - 12 5.6111 2.00000 - 13 6.9563 2.00000 - 14 9.1684 0.00000 - 15 11.0963 0.00000 - 16 11.8845 0.00000 - 17 13.4542 0.00000 - 18 13.9816 0.00000 - - k-point 250 : 0.0667 0.4667 0.2000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7434 2.00000 - 5 -30.0483 2.00000 - 6 -30.0082 2.00000 - 7 -29.8836 2.00000 - 8 0.8074 2.00000 - 9 1.5503 2.00000 - 10 4.8837 2.00000 - 11 5.0282 2.00000 - 12 5.6611 2.00000 - 13 6.8614 2.00000 - 14 9.1821 0.00000 - 15 10.9712 0.00000 - 16 11.9443 0.00000 - 17 13.3175 0.00000 - 18 14.0111 0.00000 - - k-point 251 : 0.1333 0.4667 0.2000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4260 2.00000 - 3 -91.2909 2.00000 - 4 -65.7433 2.00000 - 5 -30.0478 2.00000 - 6 -30.0143 2.00000 - 7 -29.8832 2.00000 - 8 0.9654 2.00000 - 9 1.6153 2.00000 - 10 4.7866 2.00000 - 11 4.9431 2.00000 - 12 5.7637 2.00000 - 13 6.6281 2.00000 - 14 9.2181 0.00000 - 15 10.6031 0.00000 - 16 12.0239 0.00000 - 17 13.2393 0.00000 - 18 14.3926 0.00000 - - k-point 252 : 0.2000 0.4667 0.2000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4260 2.00000 - 3 -91.2909 2.00000 - 4 -65.7432 2.00000 - 5 -30.0471 2.00000 - 6 -30.0234 2.00000 - 7 -29.8825 2.00000 - 8 1.1904 2.00000 - 9 1.7430 2.00000 - 10 4.5650 2.00000 - 11 4.9174 2.00000 - 12 5.8769 2.00000 - 13 6.3717 2.00000 - 14 9.2652 0.00000 - 15 10.1220 0.00000 - 16 11.6464 0.00000 - 17 13.6165 0.00000 - 18 14.7417 0.00000 - - k-point 253 : 0.2667 0.4667 0.2000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2905 2.00000 - 4 -65.7430 2.00000 - 5 -30.0463 2.00000 - 6 -30.0337 2.00000 - 7 -29.8817 2.00000 - 8 1.4108 2.00000 - 9 1.9753 2.00000 - 10 4.3324 2.00000 - 11 4.8220 2.00000 - 12 5.9828 2.00000 - 13 6.2221 2.00000 - 14 9.3061 0.00000 - 15 9.6403 0.00000 - 16 10.9581 0.00000 - 17 14.3215 0.00000 - 18 14.8365 0.00000 - - k-point 254 : 0.3333 0.4667 0.2000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7428 2.00000 - 5 -30.0455 2.00000 - 6 -30.0435 2.00000 - 7 -29.8809 2.00000 - 8 1.5658 2.00000 - 9 2.3279 2.00000 - 10 4.1275 2.00000 - 11 4.6077 2.00000 - 12 6.0847 2.00000 - 13 6.2409 2.00000 - 14 9.1753 0.00000 - 15 9.3638 0.00000 - 16 10.2421 0.00000 - 17 14.7264 0.00000 - 18 15.1864 0.00000 - - k-point 255 : 0.4000 0.4667 0.2000 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7426 2.00000 - 5 -30.0512 2.00000 - 6 -30.0449 2.00000 - 7 -29.8803 2.00000 - 8 1.6627 2.00000 - 9 2.7320 2.00000 - 10 3.9747 2.00000 - 11 4.3124 2.00000 - 12 6.2217 2.00000 - 13 6.3335 2.00000 - 14 8.8577 0.00000 - 15 9.2736 0.00000 - 16 9.7144 0.00000 - 17 14.6891 0.00000 - 18 16.0466 0.00000 - - k-point 256 : 0.4667 0.4667 0.2000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7426 2.00000 - 5 -30.0554 2.00000 - 6 -30.0446 2.00000 - 7 -29.8800 2.00000 - 8 1.7108 2.00000 - 9 3.0627 2.00000 - 10 3.8918 2.00000 - 11 4.0425 2.00000 - 12 6.3299 2.00000 - 13 6.4187 2.00000 - 14 8.6764 0.00000 - 15 9.0361 0.00000 - 16 9.5744 0.00000 - 17 15.1073 0.00000 - 18 16.7779 0.00000 - - k-point 257 : 0.0000 0.0000 0.2667 - band No. band energies occupation - 1 -91.8791 2.00000 - 2 -91.4239 2.00000 - 3 -91.2890 2.00000 - 4 -65.7431 2.00000 - 5 -30.0077 2.00000 - 6 -29.9745 2.00000 - 7 -29.9360 2.00000 - 8 -0.9922 2.00000 - 9 4.1697 2.00000 - 10 4.4791 2.00000 - 11 5.2762 2.00000 - 12 5.5520 2.00000 - 13 8.4050 0.00000 - 14 8.4412 0.00000 - 15 9.7376 0.00000 - 16 9.9653 0.00000 - 17 14.6114 0.00000 - 18 15.5437 0.00000 - - k-point 258 : 0.0667 0.0000 0.2667 - band No. band energies occupation - 1 -91.8795 2.00000 - 2 -91.4244 2.00000 - 3 -91.2894 2.00000 - 4 -65.7431 2.00000 - 5 -30.0099 2.00000 - 6 -29.9743 2.00000 - 7 -29.9359 2.00000 - 8 -0.9433 2.00000 - 9 4.1493 2.00000 - 10 4.4316 2.00000 - 11 5.2543 2.00000 - 12 5.5665 2.00000 - 13 8.1472 0.00018 - 14 8.5627 0.00000 - 15 9.6381 0.00000 - 16 10.2814 0.00000 - 17 14.5670 0.00000 - 18 16.3874 0.00000 - - k-point 259 : 0.1333 0.0000 0.2667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7431 2.00000 - 5 -30.0160 2.00000 - 6 -29.9738 2.00000 - 7 -29.9355 2.00000 - 8 -0.7997 2.00000 - 9 3.9591 2.00000 - 10 4.4276 2.00000 - 11 5.2220 2.00000 - 12 5.6067 2.00000 - 13 7.6690 1.99751 - 14 8.8770 0.00000 - 15 9.3920 0.00000 - 16 10.9261 0.00000 - 17 14.5052 0.00000 - 18 15.8789 0.00000 - - k-point 260 : 0.2000 0.0000 0.2667 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7429 2.00000 - 5 -30.0250 2.00000 - 6 -29.9729 2.00000 - 7 -29.9348 2.00000 - 8 -0.5652 2.00000 - 9 3.5680 2.00000 - 10 4.5355 2.00000 - 11 5.2114 2.00000 - 12 5.6623 2.00000 - 13 7.2067 2.00000 - 14 9.1059 0.00000 - 15 9.2908 0.00000 - 16 11.6363 0.00000 - 17 14.1697 0.00000 - 18 15.7589 0.00000 - - k-point 261 : 0.2667 0.0000 0.2667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7427 2.00000 - 5 -30.0353 2.00000 - 6 -29.9719 2.00000 - 7 -29.9341 2.00000 - 8 -0.2521 2.00000 - 9 3.0868 2.00000 - 10 4.6814 2.00000 - 11 5.2185 2.00000 - 12 5.7142 2.00000 - 13 6.8332 2.00000 - 14 8.8793 0.00000 - 15 9.7265 0.00000 - 16 12.2929 0.00000 - 17 13.5685 0.00000 - 18 16.1058 0.00000 - - k-point 262 : 0.3333 0.0000 0.2667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7425 2.00000 - 5 -30.0450 2.00000 - 6 -29.9710 2.00000 - 7 -29.9334 2.00000 - 8 0.1257 2.00000 - 9 2.5716 2.00000 - 10 4.8261 2.00000 - 11 5.2273 2.00000 - 12 5.7364 2.00000 - 13 6.5820 2.00000 - 14 8.7708 0.00000 - 15 10.1434 0.00000 - 16 12.7927 0.00000 - 17 12.8308 0.00000 - 18 15.4481 0.00000 - - k-point 263 : 0.4000 0.0000 0.2667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7424 2.00000 - 5 -30.0526 2.00000 - 6 -29.9703 2.00000 - 7 -29.9329 2.00000 - 8 0.5574 2.00000 - 9 2.0489 2.00000 - 10 4.9438 2.00000 - 11 5.2220 2.00000 - 12 5.7179 2.00000 - 13 6.4574 2.00000 - 14 8.7837 0.00000 - 15 10.5245 0.00000 - 16 12.1279 0.00000 - 17 13.0743 0.00000 - 18 15.2254 0.00000 - - k-point 264 : 0.4667 0.0000 0.2667 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7423 2.00000 - 5 -30.0568 2.00000 - 6 -29.9699 2.00000 - 7 -29.9325 2.00000 - 8 1.0239 2.00000 - 9 1.5364 2.00000 - 10 5.0194 2.00000 - 11 5.2031 2.00000 - 12 5.6900 2.00000 - 13 6.4177 2.00000 - 14 8.8427 0.00000 - 15 10.8611 0.00000 - 16 11.5754 0.00000 - 17 13.1725 0.00000 - 18 14.7884 0.00000 - - k-point 265 : 0.0000 0.0667 0.2667 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4246 2.00000 - 3 -91.2897 2.00000 - 4 -65.7431 2.00000 - 5 -30.0075 2.00000 - 6 -29.9776 2.00000 - 7 -29.9357 2.00000 - 8 -0.9418 2.00000 - 9 4.1601 2.00000 - 10 4.4633 2.00000 - 11 5.2925 2.00000 - 12 5.4803 2.00000 - 13 8.1369 0.00033 - 14 8.5843 0.00000 - 15 9.8748 0.00000 - 16 14.2706 0.00000 - 17 16.6056 0.00000 - 18 16.6825 0.00000 - - k-point 266 : 0.0667 0.0667 0.2667 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4246 2.00000 - 3 -91.2896 2.00000 - 4 -65.7431 2.00000 - 5 -30.0097 2.00000 - 6 -29.9774 2.00000 - 7 -29.9356 2.00000 - 8 -0.8921 2.00000 - 9 4.1617 2.00000 - 10 4.4064 2.00000 - 11 5.2343 2.00000 - 12 5.5218 2.00000 - 13 7.8744 1.09434 - 14 8.6852 0.00000 - 15 9.8973 0.00000 - 16 10.2230 0.00000 - 17 14.6840 0.00000 - 18 15.1549 0.00000 - - k-point 267 : 0.1333 0.0667 0.2667 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4246 2.00000 - 3 -91.2897 2.00000 - 4 -65.7430 2.00000 - 5 -30.0157 2.00000 - 6 -29.9768 2.00000 - 7 -29.9352 2.00000 - 8 -0.7465 2.00000 - 9 4.0060 2.00000 - 10 4.3910 2.00000 - 11 5.1646 2.00000 - 12 5.5823 2.00000 - 13 7.4453 2.00000 - 14 8.9926 0.00000 - 15 9.6515 0.00000 - 16 10.7842 0.00000 - 17 14.7401 0.00000 - 18 15.9068 0.00000 - - k-point 268 : 0.2000 0.0667 0.2667 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7428 2.00000 - 5 -30.0247 2.00000 - 6 -29.9759 2.00000 - 7 -29.9346 2.00000 - 8 -0.5124 2.00000 - 9 3.6173 2.00000 - 10 4.5175 2.00000 - 11 5.1467 2.00000 - 12 5.6283 2.00000 - 13 7.0241 2.00000 - 14 9.3214 0.00000 - 15 9.4009 0.00000 - 16 11.4365 0.00000 - 17 14.2651 0.00000 - 18 15.7142 0.00000 - - k-point 269 : 0.2667 0.0667 0.2667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7426 2.00000 - 5 -30.0350 2.00000 - 6 -29.9750 2.00000 - 7 -29.9339 2.00000 - 8 -0.2008 2.00000 - 9 3.1352 2.00000 - 10 4.6826 2.00000 - 11 5.1753 2.00000 - 12 5.6422 2.00000 - 13 6.6940 2.00000 - 14 9.0514 0.00000 - 15 9.8080 0.00000 - 16 13.0238 0.00000 - 17 15.4136 0.00000 - 18 16.0797 0.00000 - - k-point 270 : 0.3333 0.0667 0.2667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7424 2.00000 - 5 -30.0447 2.00000 - 6 -29.9741 2.00000 - 7 -29.9332 2.00000 - 8 0.1782 2.00000 - 9 2.6185 2.00000 - 10 4.8334 2.00000 - 11 5.2268 2.00000 - 12 5.6216 2.00000 - 13 6.4836 2.00000 - 14 8.8850 0.00000 - 15 10.1806 0.00000 - 16 12.1773 0.00000 - 17 13.4647 0.00000 - 18 15.3704 0.00000 - - k-point 271 : 0.4000 0.0667 0.2667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7423 2.00000 - 5 -30.0524 2.00000 - 6 -29.9734 2.00000 - 7 -29.9327 2.00000 - 8 0.6080 2.00000 - 9 2.0944 2.00000 - 10 4.9487 2.00000 - 11 5.2360 2.00000 - 12 5.6214 2.00000 - 13 6.3720 2.00000 - 14 8.8398 0.00000 - 15 10.4741 0.00000 - 16 11.9232 0.00000 - 17 13.5675 0.00000 - 18 15.0575 0.00000 - - k-point 272 : 0.4667 0.0667 0.2667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7422 2.00000 - 5 -30.0566 2.00000 - 6 -29.9730 2.00000 - 7 -29.9323 2.00000 - 8 1.0767 2.00000 - 9 1.5797 2.00000 - 10 5.0331 2.00000 - 11 5.1824 2.00000 - 12 5.6559 2.00000 - 13 6.3220 2.00000 - 14 8.8601 0.00000 - 15 10.6497 0.00000 - 16 11.6448 0.00000 - 17 13.4921 0.00000 - 18 14.9068 0.00000 - - k-point 273 : 0.0000 0.1333 0.2667 - band No. band energies occupation - 1 -91.8794 2.00000 - 2 -91.4243 2.00000 - 3 -91.2893 2.00000 - 4 -65.7429 2.00000 - 5 -30.0066 2.00000 - 6 -29.9862 2.00000 - 7 -29.9351 2.00000 - 8 -0.7866 2.00000 - 9 4.0335 2.00000 - 10 4.4889 2.00000 - 11 5.3371 2.00000 - 12 5.3463 2.00000 - 13 7.5604 1.99999 - 14 8.8667 0.00000 - 15 9.5757 0.00000 - 16 10.8119 0.00000 - 17 15.0193 0.00000 - 18 16.5679 0.00000 - - k-point 274 : 0.0667 0.1333 0.2667 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4246 2.00000 - 3 -91.2896 2.00000 - 4 -65.7429 2.00000 - 5 -30.0088 2.00000 - 6 -29.9860 2.00000 - 7 -29.9350 2.00000 - 8 -0.7381 2.00000 - 9 4.0728 2.00000 - 10 4.4246 2.00000 - 11 5.1607 2.00000 - 12 5.4807 2.00000 - 13 7.3825 2.00000 - 14 8.9797 0.00000 - 15 9.7876 0.00000 - 16 10.6899 0.00000 - 17 14.8927 0.00000 - 18 16.0636 0.00000 - - k-point 275 : 0.1333 0.1333 0.2667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7428 2.00000 - 5 -30.0149 2.00000 - 6 -29.9854 2.00000 - 7 -29.9346 2.00000 - 8 -0.5926 2.00000 - 9 4.1214 2.00000 - 10 4.2640 2.00000 - 11 5.0156 2.00000 - 12 5.5704 2.00000 - 13 7.0120 2.00000 - 14 9.2675 0.00000 - 15 10.0834 0.00000 - 16 10.5691 0.00000 - 17 14.8072 0.00000 - 18 15.6699 0.00000 - - k-point 276 : 0.2000 0.1333 0.2667 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4248 2.00000 - 3 -91.2899 2.00000 - 4 -65.7426 2.00000 - 5 -30.0239 2.00000 - 6 -29.9846 2.00000 - 7 -29.9340 2.00000 - 8 -0.3590 2.00000 - 9 3.7621 2.00000 - 10 4.4212 2.00000 - 11 4.9587 2.00000 - 12 5.6136 2.00000 - 13 6.6438 2.00000 - 14 9.6171 0.00000 - 15 9.8168 0.00000 - 16 11.0150 0.00000 - 17 14.3910 0.00000 - 18 16.1444 0.00000 - - k-point 277 : 0.2667 0.1333 0.2667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7424 2.00000 - 5 -30.0342 2.00000 - 6 -29.9837 2.00000 - 7 -29.9333 2.00000 - 8 -0.0480 2.00000 - 9 3.2758 2.00000 - 10 4.6646 2.00000 - 11 4.9722 2.00000 - 12 5.5802 2.00000 - 13 6.3794 2.00000 - 14 9.4388 0.00000 - 15 9.9520 0.00000 - 16 11.4875 0.00000 - 17 13.9130 0.00000 - 18 15.6021 0.00000 - - k-point 278 : 0.3333 0.1333 0.2667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7422 2.00000 - 5 -30.0440 2.00000 - 6 -29.9828 2.00000 - 7 -29.9326 2.00000 - 8 0.3278 2.00000 - 9 2.7560 2.00000 - 10 4.8584 2.00000 - 11 5.1054 2.00000 - 12 5.4544 2.00000 - 13 6.2435 2.00000 - 14 9.1535 0.00000 - 15 10.1417 0.00000 - 16 11.7635 0.00000 - 17 13.9583 0.00000 - 18 15.3074 0.00000 - - k-point 279 : 0.4000 0.1333 0.2667 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7421 2.00000 - 5 -30.0516 2.00000 - 6 -29.9821 2.00000 - 7 -29.9320 2.00000 - 8 0.7545 2.00000 - 9 2.2317 2.00000 - 10 4.9434 2.00000 - 11 5.2715 2.00000 - 12 5.3901 2.00000 - 13 6.1613 2.00000 - 14 8.9788 0.00000 - 15 10.1660 0.00000 - 16 11.8759 0.00000 - 17 14.0401 0.00000 - 18 14.7589 0.00000 - - k-point 280 : 0.4667 0.1333 0.2667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7421 2.00000 - 5 -30.0559 2.00000 - 6 -29.9817 2.00000 - 7 -29.9317 2.00000 - 8 1.2187 2.00000 - 9 1.7187 2.00000 - 10 5.0186 2.00000 - 11 5.1440 2.00000 - 12 5.6004 2.00000 - 13 6.0785 2.00000 - 14 8.9071 0.00000 - 15 10.1124 0.00000 - 16 11.9295 0.00000 - 17 14.1658 0.00000 - 18 14.5853 0.00000 - - k-point 281 : 0.0000 0.2000 0.2667 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7427 2.00000 - 5 -30.0054 2.00000 - 6 -29.9989 2.00000 - 7 -29.9343 2.00000 - 8 -0.5379 2.00000 - 9 3.7030 2.00000 - 10 4.6090 2.00000 - 11 5.2630 2.00000 - 12 5.3959 2.00000 - 13 7.0695 2.00000 - 14 9.0908 0.00000 - 15 9.4357 0.00000 - 16 11.5575 0.00000 - 17 14.3516 0.00000 - 18 16.3601 0.00000 - - k-point 282 : 0.0667 0.2000 0.2667 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7426 2.00000 - 5 -30.0076 2.00000 - 6 -29.9987 2.00000 - 7 -29.9341 2.00000 - 8 -0.4887 2.00000 - 9 3.7492 2.00000 - 10 4.5743 2.00000 - 11 5.0985 2.00000 - 12 5.4857 2.00000 - 13 6.9239 2.00000 - 14 9.2263 0.00000 - 15 9.5939 0.00000 - 16 11.3727 0.00000 - 17 14.7170 0.00000 - 18 16.1538 0.00000 - - k-point 283 : 0.1333 0.2000 0.2667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7426 2.00000 - 5 -30.0138 2.00000 - 6 -29.9982 2.00000 - 7 -29.9337 2.00000 - 8 -0.3455 2.00000 - 9 3.8851 2.00000 - 10 4.3963 2.00000 - 11 4.8981 2.00000 - 12 5.5780 2.00000 - 13 6.6012 2.00000 - 14 9.5131 0.00000 - 15 9.9903 0.00000 - 16 10.9583 0.00000 - 17 15.0569 0.00000 - 18 16.3985 0.00000 - - k-point 284 : 0.2000 0.2000 0.2667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7424 2.00000 - 5 -30.0228 2.00000 - 6 -29.9974 2.00000 - 7 -29.9331 2.00000 - 8 -0.1133 2.00000 - 9 3.9680 2.00000 - 10 4.1423 2.00000 - 11 4.8263 2.00000 - 12 5.6458 2.00000 - 13 6.2595 2.00000 - 14 9.7738 0.00000 - 15 10.2498 0.00000 - 16 10.7319 0.00000 - 17 13.9527 0.00000 - 18 15.3880 0.00000 - - k-point 285 : 0.2667 0.2000 0.2667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7422 2.00000 - 5 -30.0330 2.00000 - 6 -29.9965 2.00000 - 7 -29.9323 2.00000 - 8 0.1946 2.00000 - 9 3.4921 2.00000 - 10 4.4185 2.00000 - 11 4.8251 2.00000 - 12 5.6324 2.00000 - 13 6.0245 2.00000 - 14 9.7715 0.00000 - 15 9.9943 0.00000 - 16 11.1510 0.00000 - 17 13.7014 0.00000 - 18 16.5495 0.00000 - - k-point 286 : 0.3333 0.2000 0.2667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7420 2.00000 - 5 -30.0429 2.00000 - 6 -29.9956 2.00000 - 7 -29.9316 2.00000 - 8 0.5628 2.00000 - 9 2.9731 2.00000 - 10 4.7045 2.00000 - 11 4.9098 2.00000 - 12 5.4759 2.00000 - 13 5.9673 2.00000 - 14 9.4317 0.00000 - 15 9.8472 0.00000 - 16 11.5921 0.00000 - 17 13.6688 0.00000 - 18 15.3116 0.00000 - - k-point 287 : 0.4000 0.2000 0.2667 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7418 2.00000 - 5 -30.0505 2.00000 - 6 -29.9949 2.00000 - 7 -29.9311 2.00000 - 8 0.9775 2.00000 - 9 2.4579 2.00000 - 10 4.7922 2.00000 - 11 5.2187 2.00000 - 12 5.3117 2.00000 - 13 5.9343 2.00000 - 14 9.1395 0.00000 - 15 9.6338 0.00000 - 16 11.9354 0.00000 - 17 13.8117 0.00000 - 18 15.0790 0.00000 - - k-point 288 : 0.4667 0.2000 0.2667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7418 2.00000 - 5 -30.0548 2.00000 - 6 -29.9946 2.00000 - 7 -29.9308 2.00000 - 8 1.4086 2.00000 - 9 1.9761 2.00000 - 10 4.8168 2.00000 - 11 5.2061 2.00000 - 12 5.5597 2.00000 - 13 5.8151 2.00000 - 14 8.9724 0.00000 - 15 9.4790 0.00000 - 16 12.1291 0.00000 - 17 14.1071 0.00000 - 18 15.6601 0.00000 - - k-point 289 : 0.0000 0.2667 0.2667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2903 2.00000 - 4 -65.7424 2.00000 - 5 -30.0135 2.00000 - 6 -30.0040 2.00000 - 7 -29.9332 2.00000 - 8 -0.2065 2.00000 - 9 3.2450 2.00000 - 10 4.7589 2.00000 - 11 5.2488 2.00000 - 12 5.4433 2.00000 - 13 6.6906 2.00000 - 14 8.9578 0.00000 - 15 9.7562 0.00000 - 16 12.2284 0.00000 - 17 13.6467 0.00000 - 18 15.6738 0.00000 - - k-point 290 : 0.0667 0.2667 0.2667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7424 2.00000 - 5 -30.0133 2.00000 - 6 -30.0062 2.00000 - 7 -29.9330 2.00000 - 8 -0.1582 2.00000 - 9 3.2898 2.00000 - 10 4.7575 2.00000 - 11 5.1144 2.00000 - 12 5.4721 2.00000 - 13 6.5804 2.00000 - 14 9.0982 0.00000 - 15 9.8501 0.00000 - 16 11.9458 0.00000 - 17 13.9323 0.00000 - 18 15.6257 0.00000 - - k-point 291 : 0.1333 0.2667 0.2667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7422 2.00000 - 5 -30.0128 2.00000 - 6 -30.0124 2.00000 - 7 -29.9326 2.00000 - 8 -0.0156 2.00000 - 9 3.4223 2.00000 - 10 4.6865 2.00000 - 11 4.8536 2.00000 - 12 5.5334 2.00000 - 13 6.3183 2.00000 - 14 9.4083 0.00000 - 15 10.0693 0.00000 - 16 11.4327 0.00000 - 17 13.8385 0.00000 - 18 15.3753 0.00000 - - k-point 292 : 0.2000 0.2667 0.2667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7421 2.00000 - 5 -30.0214 2.00000 - 6 -30.0120 2.00000 - 7 -29.9320 2.00000 - 8 0.2115 2.00000 - 9 3.6251 2.00000 - 10 4.2944 2.00000 - 11 4.8274 2.00000 - 12 5.6180 2.00000 - 13 6.0093 2.00000 - 14 9.6312 0.00000 - 15 10.2757 0.00000 - 16 11.0215 0.00000 - 17 13.6105 0.00000 - 18 15.5689 0.00000 - - k-point 293 : 0.2667 0.2667 0.2667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7418 2.00000 - 5 -30.0317 2.00000 - 6 -30.0111 2.00000 - 7 -29.9313 2.00000 - 8 0.5117 2.00000 - 9 3.6756 2.00000 - 10 4.0282 2.00000 - 11 4.8696 2.00000 - 12 5.6990 2.00000 - 13 5.7349 2.00000 - 14 9.5362 0.00000 - 15 10.2061 0.00000 - 16 11.0080 0.00000 - 17 13.5324 0.00000 - 18 15.5343 0.00000 - - k-point 294 : 0.3333 0.2667 0.2667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7417 2.00000 - 5 -30.0416 2.00000 - 6 -30.0103 2.00000 - 7 -29.9306 2.00000 - 8 0.8642 2.00000 - 9 3.2318 2.00000 - 10 4.2558 2.00000 - 11 4.9684 2.00000 - 12 5.4836 2.00000 - 13 5.8019 2.00000 - 14 9.2565 0.00000 - 15 9.8056 0.00000 - 16 11.2920 0.00000 - 17 13.6768 0.00000 - 18 15.4872 0.00000 - - k-point 295 : 0.4000 0.2667 0.2667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7415 2.00000 - 5 -30.0493 2.00000 - 6 -30.0096 2.00000 - 7 -29.9300 2.00000 - 8 1.2490 2.00000 - 9 2.7560 2.00000 - 10 4.4489 2.00000 - 11 5.1394 2.00000 - 12 5.3565 2.00000 - 13 5.8359 2.00000 - 14 8.9975 0.00000 - 15 9.3530 0.00000 - 16 11.5665 0.00000 - 17 14.0109 0.00000 - 18 15.4805 0.00000 - - k-point 296 : 0.4667 0.2667 0.2667 - band No. band energies occupation - 1 -91.8796 2.00000 - 2 -91.4245 2.00000 - 3 -91.2895 2.00000 - 4 -65.7414 2.00000 - 5 -30.0535 2.00000 - 6 -30.0091 2.00000 - 7 -29.9298 2.00000 - 8 1.6087 2.00000 - 9 2.3515 2.00000 - 10 4.5288 2.00000 - 11 5.1724 2.00000 - 12 5.4938 2.00000 - 13 5.7819 2.00000 - 14 8.8529 0.00000 - 15 9.0524 0.00000 - 16 11.7104 0.00000 - 17 14.0573 0.00000 - 18 15.0900 0.00000 - - k-point 297 : 0.0000 0.3333 0.2667 - band No. band energies occupation - 1 -91.8814 2.00000 - 2 -91.4264 2.00000 - 3 -91.2914 2.00000 - 4 -65.7422 2.00000 - 5 -30.0274 2.00000 - 6 -30.0027 2.00000 - 7 -29.9322 2.00000 - 8 0.1919 2.00000 - 9 2.7296 2.00000 - 10 4.8887 2.00000 - 11 5.2689 2.00000 - 12 5.4479 2.00000 - 13 6.4571 2.00000 - 14 8.9309 0.00000 - 15 10.1141 0.00000 - 16 12.7287 0.00000 - 17 12.8456 0.00000 - 18 15.3170 0.00000 - - k-point 298 : 0.0667 0.3333 0.2667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7421 2.00000 - 5 -30.0272 2.00000 - 6 -30.0048 2.00000 - 7 -29.9320 2.00000 - 8 0.2409 2.00000 - 9 2.7729 2.00000 - 10 4.8898 2.00000 - 11 5.2223 2.00000 - 12 5.3965 2.00000 - 13 6.3796 2.00000 - 14 9.0274 0.00000 - 15 10.1593 0.00000 - 16 12.1501 0.00000 - 17 13.4325 0.00000 - 18 15.0368 0.00000 - - k-point 299 : 0.1333 0.3333 0.2667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7419 2.00000 - 5 -30.0267 2.00000 - 6 -30.0110 2.00000 - 7 -29.9316 2.00000 - 8 0.3806 2.00000 - 9 2.8996 2.00000 - 10 4.8497 2.00000 - 11 5.0127 2.00000 - 12 5.3985 2.00000 - 13 6.1868 2.00000 - 14 9.2455 0.00000 - 15 10.1860 0.00000 - 16 11.6938 0.00000 - 17 13.6620 0.00000 - 18 14.8455 0.00000 - - k-point 300 : 0.2000 0.3333 0.2667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7418 2.00000 - 5 -30.0259 2.00000 - 6 -30.0201 2.00000 - 7 -29.9310 2.00000 - 8 0.6011 2.00000 - 9 3.0992 2.00000 - 10 4.5252 2.00000 - 11 4.9705 2.00000 - 12 5.4410 2.00000 - 13 5.9674 2.00000 - 14 9.3795 0.00000 - 15 10.0938 0.00000 - 16 11.4215 0.00000 - 17 13.4946 0.00000 - 18 15.3249 0.00000 - - k-point 301 : 0.2667 0.3333 0.2667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7416 2.00000 - 5 -30.0305 2.00000 - 6 -30.0251 2.00000 - 7 -29.9303 2.00000 - 8 0.8844 2.00000 - 9 3.3282 2.00000 - 10 4.1307 2.00000 - 11 4.9976 2.00000 - 12 5.4432 2.00000 - 13 5.8368 2.00000 - 14 9.1709 0.00000 - 15 10.0960 0.00000 - 16 11.0760 0.00000 - 17 13.6019 0.00000 - 18 15.5760 0.00000 - - k-point 302 : 0.3333 0.3333 0.2667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7414 2.00000 - 5 -30.0404 2.00000 - 6 -30.0242 2.00000 - 7 -29.9296 2.00000 - 8 1.2071 2.00000 - 9 3.3733 2.00000 - 10 3.9450 2.00000 - 11 5.0033 2.00000 - 12 5.4115 2.00000 - 13 5.8500 2.00000 - 14 8.8027 0.00000 - 15 9.9189 0.00000 - 16 10.8392 0.00000 - 17 13.9632 0.00000 - 18 15.2363 0.00000 - - k-point 303 : 0.4000 0.3333 0.2667 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7413 2.00000 - 5 -30.0482 2.00000 - 6 -30.0236 2.00000 - 7 -29.9291 2.00000 - 8 1.5374 2.00000 - 9 3.0788 2.00000 - 10 4.0952 2.00000 - 11 4.9405 2.00000 - 12 5.4963 2.00000 - 13 5.8970 2.00000 - 14 8.4845 0.00000 - 15 9.4593 0.00000 - 16 10.8758 0.00000 - 17 14.4053 0.00000 - 18 17.6986 0.00000 - - k-point 304 : 0.4667 0.3333 0.2667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7411 2.00000 - 5 -30.0524 2.00000 - 6 -30.0233 2.00000 - 7 -29.9289 2.00000 - 8 1.8017 2.00000 - 9 2.7984 2.00000 - 10 4.2319 2.00000 - 11 4.8727 2.00000 - 12 5.6545 2.00000 - 13 5.8902 2.00000 - 14 8.3046 0.00000 - 15 9.1174 0.00000 - 16 10.9361 0.00000 - 17 14.6714 0.00000 - 18 15.1061 0.00000 - - k-point 305 : 0.0000 0.4000 0.2667 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2910 2.00000 - 4 -65.7419 2.00000 - 5 -30.0381 2.00000 - 6 -30.0016 2.00000 - 7 -29.9314 2.00000 - 8 0.6438 2.00000 - 9 2.1972 2.00000 - 10 4.9816 2.00000 - 11 5.2821 2.00000 - 12 5.4079 2.00000 - 13 6.3587 2.00000 - 14 9.0891 0.00000 - 15 10.4109 0.00000 - 16 12.0762 0.00000 - 17 12.9720 0.00000 - 18 14.7931 0.00000 - - k-point 306 : 0.0667 0.4000 0.2667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7418 2.00000 - 5 -30.0379 2.00000 - 6 -30.0038 2.00000 - 7 -29.9312 2.00000 - 8 0.6917 2.00000 - 9 2.2385 2.00000 - 10 4.9684 2.00000 - 11 5.2605 2.00000 - 12 5.3795 2.00000 - 13 6.2871 2.00000 - 14 9.1342 0.00000 - 15 10.3626 0.00000 - 16 11.8755 0.00000 - 17 13.5638 0.00000 - 18 14.7415 0.00000 - - k-point 307 : 0.1333 0.4000 0.2667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7417 2.00000 - 5 -30.0374 2.00000 - 6 -30.0100 2.00000 - 7 -29.9308 2.00000 - 8 0.8289 2.00000 - 9 2.3628 2.00000 - 10 4.8680 2.00000 - 11 5.2167 2.00000 - 12 5.3487 2.00000 - 13 6.1151 2.00000 - 14 9.2333 0.00000 - 15 10.1098 0.00000 - 16 11.7864 0.00000 - 17 13.8645 0.00000 - 18 14.5821 0.00000 - - k-point 308 : 0.2000 0.4000 0.2667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7415 2.00000 - 5 -30.0368 2.00000 - 6 -30.0191 2.00000 - 7 -29.9302 2.00000 - 8 1.0385 2.00000 - 9 2.5659 2.00000 - 10 4.6184 2.00000 - 11 5.2494 2.00000 - 12 5.2935 2.00000 - 13 5.9474 2.00000 - 14 9.2299 0.00000 - 15 9.7805 0.00000 - 16 11.7623 0.00000 - 17 14.6669 0.00000 - 18 33.9627 0.00000 - - k-point 309 : 0.2667 0.4000 0.2667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7413 2.00000 - 5 -30.0360 2.00000 - 6 -30.0295 2.00000 - 7 -29.9295 2.00000 - 8 1.2933 2.00000 - 9 2.8351 2.00000 - 10 4.3053 2.00000 - 11 5.1462 2.00000 - 12 5.3500 2.00000 - 13 5.8888 2.00000 - 14 8.8751 0.00000 - 15 9.7440 0.00000 - 16 11.2586 0.00000 - 17 13.7436 0.00000 - 18 15.3267 0.00000 - - k-point 310 : 0.3333 0.4000 0.2667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2908 2.00000 - 4 -65.7412 2.00000 - 5 -30.0394 2.00000 - 6 -30.0352 2.00000 - 7 -29.9289 2.00000 - 8 1.5626 2.00000 - 9 3.1227 2.00000 - 10 4.0176 2.00000 - 11 4.9307 2.00000 - 12 5.5039 2.00000 - 13 5.9329 2.00000 - 14 8.4289 0.00000 - 15 9.7601 0.00000 - 16 10.6018 0.00000 - 17 14.2919 0.00000 - 18 15.0899 0.00000 - - k-point 311 : 0.4000 0.4000 0.2667 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2911 2.00000 - 4 -65.7410 2.00000 - 5 -30.0472 2.00000 - 6 -30.0346 2.00000 - 7 -29.9284 2.00000 - 8 1.8088 2.00000 - 9 3.2901 2.00000 - 10 3.8891 2.00000 - 11 4.7082 2.00000 - 12 5.7010 2.00000 - 13 6.0056 2.00000 - 14 8.0678 0.00887 - 15 9.5108 0.00000 - 16 10.2464 0.00000 - 17 14.9130 0.00000 - 18 15.6767 0.00000 - - k-point 312 : 0.4667 0.4000 0.2667 - band No. band energies occupation - 1 -91.8813 2.00000 - 2 -91.4263 2.00000 - 3 -91.2912 2.00000 - 4 -65.7409 2.00000 - 5 -30.0515 2.00000 - 6 -30.0343 2.00000 - 7 -29.9281 2.00000 - 8 1.9715 2.00000 - 9 3.2549 2.00000 - 10 3.9834 2.00000 - 11 4.5315 2.00000 - 12 5.8883 2.00000 - 13 6.0297 2.00000 - 14 7.8661 1.18669 - 15 9.1689 0.00000 - 16 10.2004 0.00000 - 17 15.0616 0.00000 - 18 32.0644 0.00000 - - k-point 313 : 0.0000 0.4667 0.2667 - band No. band energies occupation - 1 -91.8815 2.00000 - 2 -91.4266 2.00000 - 3 -91.2915 2.00000 - 4 -65.7418 2.00000 - 5 -30.0440 2.00000 - 6 -30.0011 2.00000 - 7 -29.9310 2.00000 - 8 1.1269 2.00000 - 9 1.6721 2.00000 - 10 5.0342 2.00000 - 11 5.2771 2.00000 - 12 5.3683 2.00000 - 13 6.3348 2.00000 - 14 9.3061 0.00000 - 15 10.6059 0.00000 - 16 11.5175 0.00000 - 17 13.0325 0.00000 - 18 14.6615 0.00000 - - k-point 314 : 0.0667 0.4667 0.2667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2907 2.00000 - 4 -65.7417 2.00000 - 5 -30.0438 2.00000 - 6 -30.0032 2.00000 - 7 -29.9308 2.00000 - 8 1.1784 2.00000 - 9 1.7101 2.00000 - 10 5.0365 2.00000 - 11 5.1518 2.00000 - 12 5.4647 2.00000 - 13 6.2520 2.00000 - 14 9.3181 0.00000 - 15 10.4031 0.00000 - 16 11.5903 0.00000 - 17 13.3633 0.00000 - 18 14.5583 0.00000 - - k-point 315 : 0.1333 0.4667 0.2667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4252 2.00000 - 3 -91.2901 2.00000 - 4 -65.7415 2.00000 - 5 -30.0433 2.00000 - 6 -30.0093 2.00000 - 7 -29.9303 2.00000 - 8 1.3163 2.00000 - 9 1.8312 2.00000 - 10 4.8941 2.00000 - 11 5.1190 2.00000 - 12 5.5631 2.00000 - 13 6.0425 2.00000 - 14 9.3454 0.00000 - 15 9.9129 0.00000 - 16 12.0493 0.00000 - 17 13.9108 0.00000 - 18 14.3729 0.00000 - - k-point 316 : 0.2000 0.4667 0.2667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7414 2.00000 - 5 -30.0427 2.00000 - 6 -30.0185 2.00000 - 7 -29.9297 2.00000 - 8 1.5003 2.00000 - 9 2.0569 2.00000 - 10 4.6455 2.00000 - 11 5.1693 2.00000 - 12 5.5995 2.00000 - 13 5.8371 2.00000 - 14 9.2378 0.00000 - 15 9.4800 0.00000 - 16 11.9139 0.00000 - 17 13.5604 0.00000 - 18 14.7551 0.00000 - - k-point 317 : 0.2667 0.4667 0.2667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7412 2.00000 - 5 -30.0419 2.00000 - 6 -30.0289 2.00000 - 7 -29.9291 2.00000 - 8 1.6855 2.00000 - 9 2.3977 2.00000 - 10 4.3844 2.00000 - 11 5.1110 2.00000 - 12 5.5521 2.00000 - 13 5.8491 2.00000 - 14 8.7124 0.00000 - 15 9.4831 0.00000 - 16 11.3760 0.00000 - 17 13.8572 0.00000 - 18 14.9892 0.00000 - - k-point 318 : 0.3333 0.4667 0.2667 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4261 2.00000 - 3 -91.2910 2.00000 - 4 -65.7410 2.00000 - 5 -30.0411 2.00000 - 6 -30.0389 2.00000 - 7 -29.9285 2.00000 - 8 1.8550 2.00000 - 9 2.8180 2.00000 - 10 4.1421 2.00000 - 11 4.8462 2.00000 - 12 5.6803 2.00000 - 13 5.9491 2.00000 - 14 8.2154 0.00000 - 15 9.5095 0.00000 - 16 10.5843 0.00000 - 17 14.5072 0.00000 - 18 15.0778 0.00000 - - k-point 319 : 0.4000 0.4667 0.2667 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4262 2.00000 - 3 -91.2911 2.00000 - 4 -65.7409 2.00000 - 5 -30.0467 2.00000 - 6 -30.0406 2.00000 - 7 -29.9280 2.00000 - 8 1.9950 2.00000 - 9 3.2581 2.00000 - 10 3.9509 2.00000 - 11 4.5226 2.00000 - 12 5.8957 2.00000 - 13 6.0587 2.00000 - 14 7.8278 1.56302 - 15 9.4491 0.00000 - 16 9.9344 0.00000 - 17 15.0260 0.00000 - 18 18.3727 0.00000 - - k-point 320 : 0.4667 0.4667 0.2667 - band No. band energies occupation - 1 -91.8815 2.00000 - 2 -91.4265 2.00000 - 3 -91.2915 2.00000 - 4 -65.7408 2.00000 - 5 -30.0510 2.00000 - 6 -30.0402 2.00000 - 7 -29.9277 2.00000 - 8 2.0780 2.00000 - 9 3.6286 2.00000 - 10 3.8595 2.00000 - 11 4.2059 2.00000 - 12 6.0817 2.00000 - 13 6.1302 2.00000 - 14 7.6065 1.99991 - 15 9.1931 0.00000 - 16 9.7385 0.00000 - 17 15.0476 0.00000 - 18 16.6319 0.00000 - - k-point 321 : 0.0000 0.0000 0.3333 - band No. band energies occupation - 1 -91.8793 2.00000 - 2 -91.4243 2.00000 - 3 -91.2893 2.00000 - 4 -65.7415 2.00000 - 5 -30.0028 2.00000 - 6 -29.9802 2.00000 - 7 -29.9695 2.00000 - 8 -0.4815 2.00000 - 9 3.4597 2.00000 - 10 4.4964 2.00000 - 11 4.9371 2.00000 - 12 5.1831 2.00000 - 13 8.4989 0.00000 - 14 9.1550 0.00000 - 15 10.1399 0.00000 - 16 10.4152 0.00000 - 17 14.2974 0.00000 - 18 14.8308 0.00000 - - k-point 322 : 0.0667 0.0000 0.3333 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2897 2.00000 - 4 -65.7415 2.00000 - 5 -30.0050 2.00000 - 6 -29.9801 2.00000 - 7 -29.9693 2.00000 - 8 -0.4342 2.00000 - 9 3.4391 2.00000 - 10 4.4529 2.00000 - 11 4.9676 2.00000 - 12 5.2040 2.00000 - 13 8.2556 0.00000 - 14 9.2125 0.00000 - 15 10.0413 0.00000 - 16 10.7194 0.00000 - 17 14.2965 0.00000 - 18 15.1176 0.00000 - - k-point 323 : 0.1333 0.0000 0.3333 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7414 2.00000 - 5 -30.0112 2.00000 - 6 -29.9796 2.00000 - 7 -29.9688 2.00000 - 8 -0.2928 2.00000 - 9 3.3540 2.00000 - 10 4.3881 2.00000 - 11 5.0261 2.00000 - 12 5.2648 2.00000 - 13 7.7736 1.87743 - 14 9.3605 0.00000 - 15 9.8023 0.00000 - 16 11.3678 0.00000 - 17 13.9531 0.00000 - 18 14.9554 0.00000 - - k-point 324 : 0.2000 0.0000 0.3333 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7412 2.00000 - 5 -30.0203 2.00000 - 6 -29.9791 2.00000 - 7 -29.9679 2.00000 - 8 -0.0672 2.00000 - 9 3.1662 2.00000 - 10 4.3914 2.00000 - 11 5.0790 2.00000 - 12 5.3596 2.00000 - 13 7.2805 2.00000 - 14 9.4059 0.00000 - 15 9.6783 0.00000 - 16 12.0688 0.00000 - 17 13.4792 0.00000 - 18 15.2550 0.00000 - - k-point 325 : 0.2667 0.0000 0.3333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7411 2.00000 - 5 -30.0306 2.00000 - 6 -29.9785 2.00000 - 7 -29.9670 2.00000 - 8 0.2282 2.00000 - 9 2.8837 2.00000 - 10 4.4758 2.00000 - 11 5.1145 2.00000 - 12 5.4784 2.00000 - 13 6.8477 2.00000 - 14 9.1811 0.00000 - 15 9.8874 0.00000 - 16 12.5970 0.00000 - 17 12.9048 0.00000 - 18 15.2176 0.00000 - - k-point 326 : 0.3333 0.0000 0.3333 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7408 2.00000 - 5 -30.0404 2.00000 - 6 -29.9778 2.00000 - 7 -29.9661 2.00000 - 8 0.5762 2.00000 - 9 2.5428 2.00000 - 10 4.6037 2.00000 - 11 5.1264 2.00000 - 12 5.6095 2.00000 - 13 6.4965 2.00000 - 14 9.0211 0.00000 - 15 10.1220 0.00000 - 16 12.3062 0.00000 - 17 12.7724 0.00000 - 18 15.5499 0.00000 - - k-point 327 : 0.4000 0.0000 0.3333 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7407 2.00000 - 5 -30.0482 2.00000 - 6 -29.9773 2.00000 - 7 -29.9654 2.00000 - 8 0.9542 2.00000 - 9 2.1721 2.00000 - 10 4.7324 2.00000 - 11 5.1121 2.00000 - 12 5.7425 2.00000 - 13 6.2291 2.00000 - 14 8.9691 0.00000 - 15 10.3317 0.00000 - 16 11.7644 0.00000 - 17 12.7021 0.00000 - 18 15.1622 0.00000 - - k-point 328 : 0.4667 0.0000 0.3333 - band No. band energies occupation - 1 -91.8793 2.00000 - 2 -91.4243 2.00000 - 3 -91.2893 2.00000 - 4 -65.7406 2.00000 - 5 -30.0524 2.00000 - 6 -29.9770 2.00000 - 7 -29.9649 2.00000 - 8 1.3325 2.00000 - 9 1.8005 2.00000 - 10 4.8244 2.00000 - 11 5.0841 2.00000 - 12 5.8749 2.00000 - 13 6.0344 2.00000 - 14 8.9800 0.00000 - 15 10.4848 0.00000 - 16 11.3991 0.00000 - 17 12.6194 0.00000 - 18 17.5491 0.00000 - - k-point 329 : 0.0000 0.0667 0.3333 - band No. band energies occupation - 1 -91.8794 2.00000 - 2 -91.4244 2.00000 - 3 -91.2894 2.00000 - 4 -65.7415 2.00000 - 5 -30.0025 2.00000 - 6 -29.9799 2.00000 - 7 -29.9726 2.00000 - 8 -0.4309 2.00000 - 9 3.4495 2.00000 - 10 4.4823 2.00000 - 11 4.9614 2.00000 - 12 5.1769 2.00000 - 13 8.1972 0.00001 - 14 9.2037 0.00000 - 15 10.3016 0.00000 - 16 10.5059 0.00000 - 17 14.3943 0.00000 - 18 15.2824 0.00000 - - k-point 330 : 0.0667 0.0667 0.3333 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4247 2.00000 - 3 -91.2897 2.00000 - 4 -65.7414 2.00000 - 5 -30.0047 2.00000 - 6 -29.9798 2.00000 - 7 -29.9724 2.00000 - 8 -0.3827 2.00000 - 9 3.4372 2.00000 - 10 4.4369 2.00000 - 11 4.9880 2.00000 - 12 5.1943 2.00000 - 13 7.9855 0.14652 - 14 9.2633 0.00000 - 15 10.3201 0.00000 - 16 10.6409 0.00000 - 17 14.3071 0.00000 - 18 15.7382 0.00000 - - k-point 331 : 0.1333 0.0667 0.3333 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7413 2.00000 - 5 -30.0109 2.00000 - 6 -29.9795 2.00000 - 7 -29.9718 2.00000 - 8 -0.2406 2.00000 - 9 3.3744 2.00000 - 10 4.3644 2.00000 - 11 5.0412 2.00000 - 12 5.2443 2.00000 - 13 7.5476 2.00000 - 14 9.4153 0.00000 - 15 10.0599 0.00000 - 16 11.2380 0.00000 - 17 14.8208 0.00000 - 18 16.0819 0.00000 - - k-point 332 : 0.2000 0.0667 0.3333 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7412 2.00000 - 5 -30.0200 2.00000 - 6 -29.9789 2.00000 - 7 -29.9710 2.00000 - 8 -0.0152 2.00000 - 9 3.2090 2.00000 - 10 4.3636 2.00000 - 11 5.0929 2.00000 - 12 5.3207 2.00000 - 13 7.0926 2.00000 - 14 9.5502 0.00000 - 15 9.7938 0.00000 - 16 11.8036 0.00000 - 17 13.5951 0.00000 - 18 14.9192 0.00000 - - k-point 333 : 0.2667 0.0667 0.3333 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7410 2.00000 - 5 -30.0303 2.00000 - 6 -29.9783 2.00000 - 7 -29.9700 2.00000 - 8 0.2806 2.00000 - 9 2.9377 2.00000 - 10 4.4563 2.00000 - 11 5.1302 2.00000 - 12 5.4164 2.00000 - 13 6.6996 2.00000 - 14 9.3444 0.00000 - 15 9.9025 0.00000 - 16 12.0852 0.00000 - 17 13.4362 0.00000 - 18 15.8291 0.00000 - - k-point 334 : 0.3333 0.0667 0.3333 - band No. band energies occupation - 1 -91.8795 2.00000 - 2 -91.4245 2.00000 - 3 -91.2895 2.00000 - 4 -65.7407 2.00000 - 5 -30.0402 2.00000 - 6 -29.9776 2.00000 - 7 -29.9691 2.00000 - 8 0.6271 2.00000 - 9 2.6012 2.00000 - 10 4.5958 2.00000 - 11 5.1415 2.00000 - 12 5.5298 2.00000 - 13 6.3932 2.00000 - 14 9.1313 0.00000 - 15 10.0660 0.00000 - 16 11.8833 0.00000 - 17 13.3141 0.00000 - 18 15.1866 0.00000 - - k-point 335 : 0.4000 0.0667 0.3333 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7406 2.00000 - 5 -30.0479 2.00000 - 6 -29.9771 2.00000 - 7 -29.9684 2.00000 - 8 1.0037 2.00000 - 9 2.2324 2.00000 - 10 4.7288 2.00000 - 11 5.1208 2.00000 - 12 5.6641 2.00000 - 13 6.1656 2.00000 - 14 9.0233 0.00000 - 15 10.1524 0.00000 - 16 11.6108 0.00000 - 17 13.1453 0.00000 - 18 15.2752 0.00000 - - k-point 336 : 0.4667 0.0667 0.3333 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2900 2.00000 - 4 -65.7405 2.00000 - 5 -30.0521 2.00000 - 6 -29.9768 2.00000 - 7 -29.9680 2.00000 - 8 1.3741 2.00000 - 9 1.8670 2.00000 - 10 4.8158 2.00000 - 11 5.0875 2.00000 - 12 5.8147 2.00000 - 13 5.9871 2.00000 - 14 8.9976 0.00000 - 15 10.1607 0.00000 - 16 11.4588 0.00000 - 17 13.0058 0.00000 - 18 15.0515 0.00000 - - k-point 337 : 0.0000 0.1333 0.3333 - band No. band energies occupation - 1 -91.8795 2.00000 - 2 -91.4245 2.00000 - 3 -91.2895 2.00000 - 4 -65.7413 2.00000 - 5 -30.0017 2.00000 - 6 -29.9814 2.00000 - 7 -29.9793 2.00000 - 8 -0.2798 2.00000 - 9 3.3917 2.00000 - 10 4.4650 2.00000 - 11 5.0319 2.00000 - 12 5.1692 2.00000 - 13 7.6464 1.99917 - 14 9.3147 0.00000 - 15 10.0458 0.00000 - 16 11.2372 0.00000 - 17 14.4922 0.00000 - 18 15.3633 0.00000 - - k-point 338 : 0.0667 0.1333 0.3333 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7412 2.00000 - 5 -30.0039 2.00000 - 6 -29.9812 2.00000 - 7 -29.9792 2.00000 - 8 -0.2318 2.00000 - 9 3.4031 2.00000 - 10 4.4148 2.00000 - 11 5.0453 2.00000 - 12 5.1799 2.00000 - 13 7.4709 2.00000 - 14 9.3790 0.00000 - 15 10.2465 0.00000 - 16 11.0981 0.00000 - 17 14.1220 0.00000 - 18 16.8656 0.00000 - - k-point 339 : 0.1333 0.1333 0.3333 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4246 2.00000 - 3 -91.2896 2.00000 - 4 -65.7411 2.00000 - 5 -30.0101 2.00000 - 6 -29.9806 2.00000 - 7 -29.9788 2.00000 - 8 -0.0888 2.00000 - 9 3.4098 2.00000 - 10 4.3128 2.00000 - 11 5.0782 2.00000 - 12 5.2075 2.00000 - 13 7.0931 2.00000 - 14 9.5240 0.00000 - 15 10.5314 0.00000 - 16 10.9313 0.00000 - 17 13.8315 0.00000 - 18 14.9563 0.00000 - - k-point 340 : 0.2000 0.1333 0.3333 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7410 2.00000 - 5 -30.0192 2.00000 - 6 -29.9798 2.00000 - 7 -29.9782 2.00000 - 8 0.1365 2.00000 - 9 3.3258 2.00000 - 10 4.2788 2.00000 - 11 5.1226 2.00000 - 12 5.2385 2.00000 - 13 6.6994 2.00000 - 14 9.6594 0.00000 - 15 10.2232 0.00000 - 16 11.3212 0.00000 - 17 13.9202 0.00000 - 18 16.2795 0.00000 - - k-point 341 : 0.2667 0.1333 0.3333 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7408 2.00000 - 5 -30.0296 2.00000 - 6 -29.9790 2.00000 - 7 -29.9776 2.00000 - 8 0.4308 2.00000 - 9 3.0973 2.00000 - 10 4.3838 2.00000 - 11 5.1738 2.00000 - 12 5.2576 2.00000 - 13 6.3799 2.00000 - 14 9.6051 0.00000 - 15 9.9623 0.00000 - 16 11.5706 0.00000 - 17 13.6078 0.00000 - 18 14.8495 0.00000 - - k-point 342 : 0.3333 0.1333 0.3333 - band No. band energies occupation - 1 -91.8796 2.00000 - 2 -91.4245 2.00000 - 3 -91.2895 2.00000 - 4 -65.7405 2.00000 - 5 -30.0394 2.00000 - 6 -29.9782 2.00000 - 7 -29.9768 2.00000 - 8 0.7749 2.00000 - 9 2.7747 2.00000 - 10 4.5617 2.00000 - 11 5.1803 2.00000 - 12 5.3158 2.00000 - 13 6.1636 2.00000 - 14 9.3464 0.00000 - 15 9.8339 0.00000 - 16 11.6131 0.00000 - 17 13.9966 0.00000 - 18 14.7722 0.00000 - - k-point 343 : 0.4000 0.1333 0.3333 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7404 2.00000 - 5 -30.0472 2.00000 - 6 -29.9775 2.00000 - 7 -29.9763 2.00000 - 8 1.1431 2.00000 - 9 2.4134 2.00000 - 10 4.7126 2.00000 - 11 5.1290 2.00000 - 12 5.4671 2.00000 - 13 6.0157 2.00000 - 14 9.1396 0.00000 - 15 9.6449 0.00000 - 16 11.6446 0.00000 - 17 14.7531 0.00000 - 18 45.4682 0.00000 - - k-point 344 : 0.4667 0.1333 0.3333 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4251 2.00000 - 3 -91.2902 2.00000 - 4 -65.7404 2.00000 - 5 -30.0514 2.00000 - 6 -29.9772 2.00000 - 7 -29.9760 2.00000 - 8 1.4899 2.00000 - 9 2.0701 2.00000 - 10 4.7840 2.00000 - 11 5.0904 2.00000 - 12 5.6669 2.00000 - 13 5.8686 2.00000 - 14 9.0434 0.00000 - 15 9.4853 0.00000 - 16 11.6814 0.00000 - 17 13.7976 0.00000 - 18 15.2308 0.00000 - - k-point 345 : 0.0000 0.2000 0.3333 - band No. band energies occupation - 1 -91.8796 2.00000 - 2 -91.4246 2.00000 - 3 -91.2896 2.00000 - 4 -65.7410 2.00000 - 5 -30.0005 2.00000 - 6 -29.9942 2.00000 - 7 -29.9785 2.00000 - 8 -0.0384 2.00000 - 9 3.2400 2.00000 - 10 4.4989 2.00000 - 11 5.1411 2.00000 - 12 5.1734 2.00000 - 13 7.1079 2.00000 - 14 9.3512 0.00000 - 15 9.8771 0.00000 - 16 11.9958 0.00000 - 17 13.6113 0.00000 - 18 21.7136 0.00000 - - k-point 346 : 0.0667 0.2000 0.3333 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7410 2.00000 - 5 -30.0027 2.00000 - 6 -29.9940 2.00000 - 7 -29.9784 2.00000 - 8 0.0097 2.00000 - 9 3.2752 2.00000 - 10 4.4507 2.00000 - 11 5.1290 2.00000 - 12 5.1813 2.00000 - 13 6.9619 2.00000 - 14 9.4416 0.00000 - 15 10.0172 0.00000 - 16 11.7522 0.00000 - 17 13.6423 0.00000 - 18 14.9614 0.00000 - - k-point 347 : 0.1333 0.2000 0.3333 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7409 2.00000 - 5 -30.0089 2.00000 - 6 -29.9935 2.00000 - 7 -29.9780 2.00000 - 8 0.1509 2.00000 - 9 3.3699 2.00000 - 10 4.3172 2.00000 - 11 5.1057 2.00000 - 12 5.2032 2.00000 - 13 6.6401 2.00000 - 14 9.5752 0.00000 - 15 10.3957 0.00000 - 16 11.2701 0.00000 - 17 13.5268 0.00000 - 18 14.8940 0.00000 - - k-point 348 : 0.2000 0.2000 0.3333 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7407 2.00000 - 5 -30.0180 2.00000 - 6 -29.9927 2.00000 - 7 -29.9775 2.00000 - 8 0.3757 2.00000 - 9 3.4547 2.00000 - 10 4.1789 2.00000 - 11 5.0808 2.00000 - 12 5.2321 2.00000 - 13 6.3094 2.00000 - 14 9.5872 0.00000 - 15 10.6701 0.00000 - 16 10.9785 0.00000 - 17 13.3361 0.00000 - 18 16.3021 0.00000 - - k-point 349 : 0.2667 0.2000 0.3333 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4247 2.00000 - 3 -91.2897 2.00000 - 4 -65.7405 2.00000 - 5 -30.0284 2.00000 - 6 -29.9918 2.00000 - 7 -29.9768 2.00000 - 8 0.6661 2.00000 - 9 3.3528 2.00000 - 10 4.2329 2.00000 - 11 5.0410 2.00000 - 12 5.2587 2.00000 - 13 6.0667 2.00000 - 14 9.4049 0.00000 - 15 10.2926 0.00000 - 16 11.3119 0.00000 - 17 13.8752 0.00000 - 18 38.4800 0.00000 - - k-point 350 : 0.3333 0.2000 0.3333 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7403 2.00000 - 5 -30.0384 2.00000 - 6 -29.9910 2.00000 - 7 -29.9762 2.00000 - 8 1.0012 2.00000 - 9 3.0611 2.00000 - 10 4.4746 2.00000 - 11 4.9804 2.00000 - 12 5.2893 2.00000 - 13 5.9349 2.00000 - 14 9.1205 0.00000 - 15 9.8404 0.00000 - 16 11.5936 0.00000 - 17 13.6823 0.00000 - 18 15.1706 0.00000 - - k-point 351 : 0.4000 0.2000 0.3333 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7401 2.00000 - 5 -30.0461 2.00000 - 6 -29.9903 2.00000 - 7 -29.9758 2.00000 - 8 1.3562 2.00000 - 9 2.7118 2.00000 - 10 4.6771 2.00000 - 11 4.9797 2.00000 - 12 5.3623 2.00000 - 13 5.8533 2.00000 - 14 8.8711 0.00000 - 15 9.4054 0.00000 - 16 11.8042 0.00000 - 17 14.1600 0.00000 - 18 14.8362 0.00000 - - k-point 352 : 0.4667 0.2000 0.3333 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7401 2.00000 - 5 -30.0504 2.00000 - 6 -29.9899 2.00000 - 7 -29.9755 2.00000 - 8 1.6624 2.00000 - 9 2.4033 2.00000 - 10 4.7026 2.00000 - 11 5.0589 2.00000 - 12 5.5288 2.00000 - 13 5.7361 2.00000 - 14 8.7332 0.00000 - 15 9.1257 0.00000 - 16 11.9246 0.00000 - 17 14.4000 0.00000 - 18 14.8474 0.00000 - - k-point 353 : 0.0000 0.2667 0.3333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7407 2.00000 - 5 -30.0089 2.00000 - 6 -29.9991 2.00000 - 7 -29.9776 2.00000 - 8 0.2750 2.00000 - 9 2.9834 2.00000 - 10 4.6018 2.00000 - 11 5.1861 2.00000 - 12 5.2760 2.00000 - 13 6.6473 2.00000 - 14 9.2218 0.00000 - 15 9.9612 0.00000 - 16 12.7917 0.00000 - 17 14.6660 0.00000 - 18 37.0432 0.00000 - - k-point 354 : 0.0667 0.2667 0.3333 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7407 2.00000 - 5 -30.0087 2.00000 - 6 -30.0013 2.00000 - 7 -29.9775 2.00000 - 8 0.3237 2.00000 - 9 3.0324 2.00000 - 10 4.5699 2.00000 - 11 5.1962 2.00000 - 12 5.2285 2.00000 - 13 6.5349 2.00000 - 14 9.3249 0.00000 - 15 10.0206 0.00000 - 16 12.0589 0.00000 - 17 13.6356 0.00000 - 18 16.3395 0.00000 - - k-point 355 : 0.1333 0.2667 0.3333 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7406 2.00000 - 5 -30.0082 2.00000 - 6 -30.0075 2.00000 - 7 -29.9771 2.00000 - 8 0.4629 2.00000 - 9 3.1773 2.00000 - 10 4.4588 2.00000 - 11 5.1107 2.00000 - 12 5.2302 2.00000 - 13 6.2832 2.00000 - 14 9.4510 0.00000 - 15 10.2180 0.00000 - 16 11.5408 0.00000 - 17 13.5178 0.00000 - 18 14.9785 0.00000 - - k-point 356 : 0.2000 0.2667 0.3333 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7404 2.00000 - 5 -30.0167 2.00000 - 6 -30.0075 2.00000 - 7 -29.9766 2.00000 - 8 0.6833 2.00000 - 9 3.4070 2.00000 - 10 4.2516 2.00000 - 11 4.9747 2.00000 - 12 5.2836 2.00000 - 13 6.0299 2.00000 - 14 9.3115 0.00000 - 15 10.5371 0.00000 - 16 11.2041 0.00000 - 17 13.5198 0.00000 - 18 16.1069 0.00000 - - k-point 357 : 0.2667 0.2667 0.3333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2905 2.00000 - 4 -65.7402 2.00000 - 5 -30.0271 2.00000 - 6 -30.0066 2.00000 - 7 -29.9760 2.00000 - 8 0.9662 2.00000 - 9 3.6247 2.00000 - 10 4.0527 2.00000 - 11 4.8364 2.00000 - 12 5.3481 2.00000 - 13 5.8553 2.00000 - 14 8.9510 0.00000 - 15 10.5646 0.00000 - 16 11.1623 0.00000 - 17 13.2954 0.00000 - 18 15.4682 0.00000 - - k-point 358 : 0.3333 0.2667 0.3333 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7400 2.00000 - 5 -30.0371 2.00000 - 6 -30.0058 2.00000 - 7 -29.9754 2.00000 - 8 1.2872 2.00000 - 9 3.4438 2.00000 - 10 4.2743 2.00000 - 11 4.7030 2.00000 - 12 5.4051 2.00000 - 13 5.7716 2.00000 - 14 8.5488 0.00000 - 15 10.0763 0.00000 - 16 11.4481 0.00000 - 17 13.4035 0.00000 - 18 15.3922 0.00000 - - k-point 359 : 0.4000 0.2667 0.3333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7398 2.00000 - 5 -30.0450 2.00000 - 6 -30.0051 2.00000 - 7 -29.9749 2.00000 - 8 1.6159 2.00000 - 9 3.1051 2.00000 - 10 4.5944 2.00000 - 11 4.6676 2.00000 - 12 5.4494 2.00000 - 13 5.7286 2.00000 - 14 8.2204 0.00000 - 15 9.5427 0.00000 - 16 11.6960 0.00000 - 17 13.7216 0.00000 - 18 15.3053 0.00000 - - k-point 360 : 0.4667 0.2667 0.3333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7398 2.00000 - 5 -30.0492 2.00000 - 6 -30.0047 2.00000 - 7 -29.9747 2.00000 - 8 1.8783 2.00000 - 9 2.8300 2.00000 - 10 4.5354 2.00000 - 11 4.9641 2.00000 - 12 5.5125 2.00000 - 13 5.6496 2.00000 - 14 8.0373 0.02884 - 15 9.1984 0.00000 - 16 11.8323 0.00000 - 17 13.9270 0.00000 - 18 15.3527 0.00000 - - k-point 361 : 0.0000 0.3333 0.3333 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4252 2.00000 - 3 -91.2901 2.00000 - 4 -65.7404 2.00000 - 5 -30.0228 2.00000 - 6 -29.9977 2.00000 - 7 -29.9766 2.00000 - 8 0.6424 2.00000 - 9 2.6545 2.00000 - 10 4.7408 2.00000 - 11 5.1925 2.00000 - 12 5.4185 2.00000 - 13 6.2853 2.00000 - 14 9.1528 0.00000 - 15 10.1154 0.00000 - 16 12.2959 0.00000 - 17 12.6644 0.00000 - 18 15.1835 0.00000 - - k-point 362 : 0.0667 0.3333 0.3333 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2910 2.00000 - 4 -65.7404 2.00000 - 5 -30.0228 2.00000 - 6 -30.0000 2.00000 - 7 -29.9766 2.00000 - 8 0.6883 2.00000 - 9 2.7077 2.00000 - 10 4.7264 2.00000 - 11 5.2034 2.00000 - 12 5.3412 2.00000 - 13 6.2150 2.00000 - 14 9.2183 0.00000 - 15 10.0975 0.00000 - 16 11.8514 0.00000 - 17 13.2505 0.00000 - 18 15.4538 0.00000 - - k-point 363 : 0.1333 0.3333 0.3333 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2911 2.00000 - 4 -65.7403 2.00000 - 5 -30.0223 2.00000 - 6 -30.0062 2.00000 - 7 -29.9762 2.00000 - 8 0.8257 2.00000 - 9 2.8686 2.00000 - 10 4.6756 2.00000 - 11 5.1155 2.00000 - 12 5.2552 2.00000 - 13 6.0553 2.00000 - 14 9.2590 0.00000 - 15 10.0607 0.00000 - 16 11.5620 0.00000 - 17 14.3861 0.00000 - 18 15.3778 0.00000 - - k-point 364 : 0.2000 0.3333 0.3333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7401 2.00000 - 5 -30.0215 2.00000 - 6 -30.0154 2.00000 - 7 -29.9757 2.00000 - 8 1.0393 2.00000 - 9 3.1357 2.00000 - 10 4.5429 2.00000 - 11 4.8526 2.00000 - 12 5.3235 2.00000 - 13 5.8912 2.00000 - 14 8.9678 0.00000 - 15 10.1859 0.00000 - 16 11.4775 0.00000 - 17 13.5169 0.00000 - 18 15.2678 0.00000 - - k-point 365 : 0.2667 0.3333 0.3333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7399 2.00000 - 5 -30.0259 2.00000 - 6 -30.0207 2.00000 - 7 -29.9751 2.00000 - 8 1.3079 2.00000 - 9 3.4975 2.00000 - 10 4.2537 2.00000 - 11 4.6695 2.00000 - 12 5.4215 2.00000 - 13 5.7678 2.00000 - 14 8.4790 0.00000 - 15 10.3583 0.00000 - 16 11.2562 0.00000 - 17 13.7957 0.00000 - 18 15.4576 0.00000 - - k-point 366 : 0.3333 0.3333 0.3333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2903 2.00000 - 4 -65.7397 2.00000 - 5 -30.0359 2.00000 - 6 -30.0199 2.00000 - 7 -29.9745 2.00000 - 8 1.6071 2.00000 - 9 3.8504 2.00000 - 10 3.9497 2.00000 - 11 4.5723 2.00000 - 12 5.5290 2.00000 - 13 5.6928 2.00000 - 14 7.9970 0.10628 - 15 10.1882 0.00000 - 16 11.0596 0.00000 - 17 13.6172 0.00000 - 18 15.4580 0.00000 - - k-point 367 : 0.4000 0.3333 0.3333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7395 2.00000 - 5 -30.0438 2.00000 - 6 -30.0193 2.00000 - 7 -29.9740 2.00000 - 8 1.9028 2.00000 - 9 3.5236 2.00000 - 10 4.2368 2.00000 - 11 4.6294 2.00000 - 12 5.6020 2.00000 - 13 5.6607 2.00000 - 14 7.6208 1.99979 - 15 9.6622 0.00000 - 16 11.1234 0.00000 - 17 13.9670 0.00000 - 18 15.5268 0.00000 - - k-point 368 : 0.4667 0.3333 0.3333 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7395 2.00000 - 5 -30.0481 2.00000 - 6 -30.0189 2.00000 - 7 -29.9738 2.00000 - 8 2.1226 2.00000 - 9 3.2739 2.00000 - 10 4.2868 2.00000 - 11 4.8744 2.00000 - 12 5.6116 2.00000 - 13 5.6455 2.00000 - 14 7.4201 2.00000 - 15 9.2695 0.00000 - 16 11.1923 0.00000 - 17 14.0391 0.00000 - 18 15.3789 0.00000 - - k-point 369 : 0.0000 0.4000 0.3333 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7402 2.00000 - 5 -30.0338 2.00000 - 6 -29.9968 2.00000 - 7 -29.9759 2.00000 - 8 1.0386 2.00000 - 9 2.2838 2.00000 - 10 4.8741 2.00000 - 11 5.1768 2.00000 - 12 5.5479 2.00000 - 13 6.0278 2.00000 - 14 9.2474 0.00000 - 15 10.2163 0.00000 - 16 11.7129 0.00000 - 17 12.5232 0.00000 - 18 15.0058 0.00000 - - k-point 370 : 0.0667 0.4000 0.3333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7401 2.00000 - 5 -30.0336 2.00000 - 6 -29.9990 2.00000 - 7 -29.9758 2.00000 - 8 1.0849 2.00000 - 9 2.3392 2.00000 - 10 4.8595 2.00000 - 11 5.1791 2.00000 - 12 5.4792 2.00000 - 13 5.9945 2.00000 - 14 9.2635 0.00000 - 15 10.0727 0.00000 - 16 11.5584 0.00000 - 17 12.9761 0.00000 - 18 14.9006 0.00000 - - k-point 371 : 0.1333 0.4000 0.3333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7400 2.00000 - 5 -30.0331 2.00000 - 6 -30.0052 2.00000 - 7 -29.9755 2.00000 - 8 1.2159 2.00000 - 9 2.5063 2.00000 - 10 4.8118 2.00000 - 11 5.1287 2.00000 - 12 5.3567 2.00000 - 13 5.9132 2.00000 - 14 9.1604 0.00000 - 15 9.8071 0.00000 - 16 11.5723 0.00000 - 17 13.7995 0.00000 - 18 14.5522 0.00000 - - k-point 372 : 0.2000 0.4000 0.3333 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7399 2.00000 - 5 -30.0325 2.00000 - 6 -30.0144 2.00000 - 7 -29.9750 2.00000 - 8 1.4162 2.00000 - 9 2.7831 2.00000 - 10 4.7111 2.00000 - 11 4.9082 2.00000 - 12 5.3719 2.00000 - 13 5.8226 2.00000 - 14 8.6841 0.00000 - 15 9.8145 0.00000 - 16 11.6802 0.00000 - 17 13.7580 0.00000 - 18 15.0949 0.00000 - - k-point 373 : 0.2667 0.4000 0.3333 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7397 2.00000 - 5 -30.0317 2.00000 - 6 -30.0249 2.00000 - 7 -29.9744 2.00000 - 8 1.6606 2.00000 - 9 3.1538 2.00000 - 10 4.4685 2.00000 - 11 4.7356 2.00000 - 12 5.4606 2.00000 - 13 5.7551 2.00000 - 14 8.0965 0.00251 - 15 9.9238 0.00000 - 16 11.4526 0.00000 - 17 13.4892 0.00000 - 18 15.4328 0.00000 - - k-point 374 : 0.3333 0.4000 0.3333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7394 2.00000 - 5 -30.0350 2.00000 - 6 -30.0309 2.00000 - 7 -29.9738 2.00000 - 8 1.9273 2.00000 - 9 3.5628 2.00000 - 10 4.1380 2.00000 - 11 4.6730 2.00000 - 12 5.5708 2.00000 - 13 5.7308 2.00000 - 14 7.5590 2.00000 - 15 9.9659 0.00000 - 16 10.8523 0.00000 - 17 14.1412 0.00000 - 18 15.3603 0.00000 - - k-point 375 : 0.4000 0.4000 0.3333 - band No. band energies occupation - 1 -91.8813 2.00000 - 2 -91.4263 2.00000 - 3 -91.2912 2.00000 - 4 -65.7394 2.00000 - 5 -30.0429 2.00000 - 6 -30.0304 2.00000 - 7 -29.9734 2.00000 - 8 2.1834 2.00000 - 9 3.8283 2.00000 - 10 3.8862 2.00000 - 11 4.7204 2.00000 - 12 5.6527 2.00000 - 13 5.7690 2.00000 - 14 7.1423 2.00000 - 15 9.7054 0.00000 - 16 10.4694 0.00000 - 17 14.5817 0.00000 - 18 17.9482 0.00000 - - k-point 376 : 0.4667 0.4000 0.3333 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4262 2.00000 - 3 -91.2912 2.00000 - 4 -65.7393 2.00000 - 5 -30.0472 2.00000 - 6 -30.0300 2.00000 - 7 -29.9732 2.00000 - 8 2.3655 2.00000 - 9 3.6194 2.00000 - 10 4.0214 2.00000 - 11 4.8461 2.00000 - 12 5.7172 2.00000 - 13 5.7917 2.00000 - 14 6.9188 2.00000 - 15 9.3231 0.00000 - 16 10.4174 0.00000 - 17 14.4421 0.00000 - 18 15.8976 0.00000 - - k-point 377 : 0.0000 0.4667 0.3333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7400 2.00000 - 5 -30.0397 2.00000 - 6 -29.9962 2.00000 - 7 -29.9755 2.00000 - 8 1.4380 2.00000 - 9 1.9003 2.00000 - 10 4.9695 2.00000 - 11 5.1428 2.00000 - 12 5.6423 2.00000 - 13 5.8766 2.00000 - 14 9.4326 0.00000 - 15 10.2038 0.00000 - 16 11.3534 0.00000 - 17 12.4003 0.00000 - 18 15.1798 0.00000 - - k-point 378 : 0.0667 0.4667 0.3333 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7400 2.00000 - 5 -30.0396 2.00000 - 6 -29.9984 2.00000 - 7 -29.9754 2.00000 - 8 1.4775 2.00000 - 9 1.9610 2.00000 - 10 4.9344 2.00000 - 11 5.1436 2.00000 - 12 5.6222 2.00000 - 13 5.8407 2.00000 - 14 9.4328 0.00000 - 15 9.9118 0.00000 - 16 11.4086 0.00000 - 17 12.7786 0.00000 - 18 14.7529 0.00000 - - k-point 379 : 0.1333 0.4667 0.3333 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4253 2.00000 - 3 -91.2902 2.00000 - 4 -65.7399 2.00000 - 5 -30.0391 2.00000 - 6 -30.0046 2.00000 - 7 -29.9751 2.00000 - 8 1.5884 2.00000 - 9 2.1473 2.00000 - 10 4.8263 2.00000 - 11 5.1395 2.00000 - 12 5.5663 2.00000 - 13 5.7671 2.00000 - 14 9.1881 0.00000 - 15 9.5548 0.00000 - 16 11.6103 0.00000 - 17 13.5641 0.00000 - 18 14.7151 0.00000 - - k-point 380 : 0.2000 0.4667 0.3333 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2902 2.00000 - 4 -65.7397 2.00000 - 5 -30.0384 2.00000 - 6 -30.0138 2.00000 - 7 -29.9746 2.00000 - 8 1.7510 2.00000 - 9 2.4554 2.00000 - 10 4.6493 2.00000 - 11 5.1054 2.00000 - 12 5.5016 2.00000 - 13 5.7219 2.00000 - 14 8.5259 0.00000 - 15 9.5738 0.00000 - 16 11.7986 0.00000 - 17 14.0607 0.00000 - 18 14.5081 0.00000 - - k-point 381 : 0.2667 0.4667 0.3333 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2904 2.00000 - 4 -65.7395 2.00000 - 5 -30.0377 2.00000 - 6 -30.0244 2.00000 - 7 -29.9740 2.00000 - 8 1.9503 2.00000 - 9 2.8575 2.00000 - 10 4.4232 2.00000 - 11 5.0190 2.00000 - 12 5.4953 2.00000 - 13 5.7259 2.00000 - 14 7.8787 1.04556 - 15 9.6218 0.00000 - 16 11.5688 0.00000 - 17 13.6440 0.00000 - 18 15.2299 0.00000 - - k-point 382 : 0.3333 0.4667 0.3333 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7393 2.00000 - 5 -30.0369 2.00000 - 6 -30.0345 2.00000 - 7 -29.9735 2.00000 - 8 2.1724 2.00000 - 9 3.2887 2.00000 - 10 4.1759 2.00000 - 11 4.9222 2.00000 - 12 5.5665 2.00000 - 13 5.7737 2.00000 - 14 7.3144 2.00000 - 15 9.6562 0.00000 - 16 10.8484 0.00000 - 17 13.8758 0.00000 - 18 15.6076 0.00000 - - k-point 383 : 0.4000 0.4667 0.3333 - band No. band energies occupation - 1 -91.8813 2.00000 - 2 -91.4263 2.00000 - 3 -91.2913 2.00000 - 4 -65.7392 2.00000 - 5 -30.0424 2.00000 - 6 -30.0364 2.00000 - 7 -29.9731 2.00000 - 8 2.3889 2.00000 - 9 3.6451 2.00000 - 10 3.9430 2.00000 - 11 4.8684 2.00000 - 12 5.6997 2.00000 - 13 5.8611 2.00000 - 14 6.8688 2.00000 - 15 9.6086 0.00000 - 16 10.1393 0.00000 - 17 15.1730 0.00000 - 18 16.3079 0.00000 - - k-point 384 : 0.4667 0.4667 0.3333 - band No. band energies occupation - 1 -91.8813 2.00000 - 2 -91.4263 2.00000 - 3 -91.2913 2.00000 - 4 -65.7391 2.00000 - 5 -30.0467 2.00000 - 6 -30.0360 2.00000 - 7 -29.9728 2.00000 - 8 2.5397 2.00000 - 9 3.7856 2.00000 - 10 3.8326 2.00000 - 11 4.8610 2.00000 - 12 5.8430 2.00000 - 13 5.9453 2.00000 - 14 6.5965 2.00000 - 15 9.3465 0.00000 - 16 9.8978 0.00000 - 17 15.1892 0.00000 - 18 16.2199 0.00000 - - k-point 385 : 0.0000 0.0000 0.4000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2900 2.00000 - 4 -65.7403 2.00000 - 5 -30.0144 2.00000 - 6 -29.9990 2.00000 - 7 -29.9656 2.00000 - 8 0.0785 2.00000 - 9 2.7125 2.00000 - 10 4.5094 2.00000 - 11 4.6940 2.00000 - 12 4.9214 2.00000 - 13 8.5745 0.00000 - 14 10.1269 0.00000 - 15 10.5365 0.00000 - 16 10.8704 0.00000 - 17 13.9768 0.00000 - 18 14.6979 0.00000 - - k-point 386 : 0.0667 0.0000 0.4000 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7402 2.00000 - 5 -30.0143 2.00000 - 6 -30.0012 2.00000 - 7 -29.9654 2.00000 - 8 0.1273 2.00000 - 9 2.6983 2.00000 - 10 4.4779 2.00000 - 11 4.7369 2.00000 - 12 4.9443 2.00000 - 13 8.3529 0.00000 - 14 10.1419 0.00000 - 15 10.4344 0.00000 - 16 11.1645 0.00000 - 17 13.6110 0.00000 - 18 14.5556 0.00000 - - k-point 387 : 0.1333 0.0000 0.4000 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7401 2.00000 - 5 -30.0140 2.00000 - 6 -30.0074 2.00000 - 7 -29.9649 2.00000 - 8 0.2683 2.00000 - 9 2.6518 2.00000 - 10 4.4352 2.00000 - 11 4.8169 2.00000 - 12 5.0107 2.00000 - 13 7.8922 0.89370 - 14 10.1231 0.00000 - 15 10.2307 0.00000 - 16 11.8214 0.00000 - 17 13.2548 0.00000 - 18 14.5906 0.00000 - - k-point 388 : 0.2000 0.0000 0.4000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7399 2.00000 - 5 -30.0165 2.00000 - 6 -30.0135 2.00000 - 7 -29.9640 2.00000 - 8 0.4880 2.00000 - 9 2.5740 2.00000 - 10 4.4223 2.00000 - 11 4.8957 2.00000 - 12 5.1141 2.00000 - 13 7.4082 2.00000 - 14 9.8145 0.00000 - 15 10.2589 0.00000 - 16 12.5295 0.00000 - 17 12.7207 0.00000 - 18 14.5641 0.00000 - - k-point 389 : 0.2667 0.0000 0.4000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7397 2.00000 - 5 -30.0269 2.00000 - 6 -30.0129 2.00000 - 7 -29.9631 2.00000 - 8 0.7614 2.00000 - 9 2.4691 2.00000 - 10 4.4450 2.00000 - 11 4.9606 2.00000 - 12 5.2429 2.00000 - 13 6.9802 2.00000 - 14 9.4992 0.00000 - 15 10.2989 0.00000 - 16 12.2571 0.00000 - 17 12.7704 0.00000 - 18 14.6183 0.00000 - - k-point 390 : 0.3333 0.0000 0.4000 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4247 2.00000 - 3 -91.2897 2.00000 - 4 -65.7395 2.00000 - 5 -30.0369 2.00000 - 6 -30.0123 2.00000 - 7 -29.9621 2.00000 - 8 1.0553 2.00000 - 9 2.3467 2.00000 - 10 4.4910 2.00000 - 11 5.0061 2.00000 - 12 5.3805 2.00000 - 13 6.6366 2.00000 - 14 9.2609 0.00000 - 15 10.3038 0.00000 - 16 11.8735 0.00000 - 17 12.5601 0.00000 - 18 15.5151 0.00000 - - k-point 391 : 0.4000 0.0000 0.4000 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7394 2.00000 - 5 -30.0447 2.00000 - 6 -30.0119 2.00000 - 7 -29.9614 2.00000 - 8 1.3266 2.00000 - 9 2.2198 2.00000 - 10 4.5371 2.00000 - 11 5.0314 2.00000 - 12 5.5048 2.00000 - 13 6.3900 2.00000 - 14 9.1261 0.00000 - 15 10.2612 0.00000 - 16 11.5989 0.00000 - 17 12.2895 0.00000 - 18 15.2894 0.00000 - - k-point 392 : 0.4667 0.0000 0.4000 - band No. band energies occupation - 1 -91.8792 2.00000 - 2 -91.4242 2.00000 - 3 -91.2892 2.00000 - 4 -65.7392 2.00000 - 5 -30.0489 2.00000 - 6 -30.0116 2.00000 - 7 -29.9610 2.00000 - 8 1.5141 2.00000 - 9 2.1185 2.00000 - 10 4.5650 2.00000 - 11 5.0425 2.00000 - 12 5.5850 2.00000 - 13 6.2547 2.00000 - 14 9.0783 0.00000 - 15 10.2059 0.00000 - 16 11.4660 0.00000 - 17 12.1310 0.00000 - 18 14.9984 0.00000 - - k-point 393 : 0.0000 0.0667 0.4000 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7402 2.00000 - 5 -30.0143 2.00000 - 6 -29.9987 2.00000 - 7 -29.9687 2.00000 - 8 0.1308 2.00000 - 9 2.7052 2.00000 - 10 4.5062 2.00000 - 11 4.7211 2.00000 - 12 4.9341 2.00000 - 13 8.2944 0.00000 - 14 10.1322 0.00000 - 15 10.7510 0.00000 - 16 10.8939 0.00000 - 17 14.0685 0.00000 - 18 19.2975 0.00000 - - k-point 394 : 0.0667 0.0667 0.4000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7402 2.00000 - 5 -30.0141 2.00000 - 6 -30.0009 2.00000 - 7 -29.9685 2.00000 - 8 0.1799 2.00000 - 9 2.6961 2.00000 - 10 4.4700 2.00000 - 11 4.7546 2.00000 - 12 4.9662 2.00000 - 13 8.0964 0.00253 - 14 10.1465 0.00000 - 15 10.7223 0.00000 - 16 11.0608 0.00000 - 17 13.4843 0.00000 - 18 14.7098 0.00000 - - k-point 395 : 0.1333 0.0667 0.4000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7400 2.00000 - 5 -30.0138 2.00000 - 6 -30.0071 2.00000 - 7 -29.9680 2.00000 - 8 0.3214 2.00000 - 9 2.6647 2.00000 - 10 4.4164 2.00000 - 11 4.8132 2.00000 - 12 5.0527 2.00000 - 13 7.6707 1.99729 - 14 10.1672 0.00000 - 15 10.4384 0.00000 - 16 11.6127 0.00000 - 17 13.1255 0.00000 - 18 15.0675 0.00000 - - k-point 396 : 0.2000 0.0667 0.4000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7399 2.00000 - 5 -30.0163 2.00000 - 6 -30.0133 2.00000 - 7 -29.9671 2.00000 - 8 0.5403 2.00000 - 9 2.6055 2.00000 - 10 4.3962 2.00000 - 11 4.8703 2.00000 - 12 5.1699 2.00000 - 13 7.2169 2.00000 - 14 9.9996 0.00000 - 15 10.2485 0.00000 - 16 11.9915 0.00000 - 17 13.4963 0.00000 - 18 14.9307 0.00000 - - k-point 397 : 0.2667 0.0667 0.4000 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7397 2.00000 - 5 -30.0266 2.00000 - 6 -30.0127 2.00000 - 7 -29.9662 2.00000 - 8 0.8138 2.00000 - 9 2.5179 2.00000 - 10 4.4217 2.00000 - 11 4.9184 2.00000 - 12 5.2999 2.00000 - 13 6.8210 2.00000 - 14 9.6472 0.00000 - 15 10.2064 0.00000 - 16 11.8412 0.00000 - 17 13.2636 0.00000 - 18 14.4602 0.00000 - - k-point 398 : 0.3333 0.0667 0.4000 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7395 2.00000 - 5 -30.0366 2.00000 - 6 -30.0121 2.00000 - 7 -29.9653 2.00000 - 8 1.1061 2.00000 - 9 2.4089 2.00000 - 10 4.4770 2.00000 - 11 4.9499 2.00000 - 12 5.4309 2.00000 - 13 6.5164 2.00000 - 14 9.3564 0.00000 - 15 10.0920 0.00000 - 16 11.6293 0.00000 - 17 13.0657 0.00000 - 18 15.1621 0.00000 - - k-point 399 : 0.4000 0.0667 0.4000 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4247 2.00000 - 3 -91.2897 2.00000 - 4 -65.7393 2.00000 - 5 -30.0444 2.00000 - 6 -30.0117 2.00000 - 7 -29.9646 2.00000 - 8 1.3737 2.00000 - 9 2.2928 2.00000 - 10 4.5311 2.00000 - 11 4.9651 2.00000 - 12 5.5497 2.00000 - 13 6.3103 2.00000 - 14 9.1728 0.00000 - 15 9.9154 0.00000 - 16 11.5234 0.00000 - 17 12.7770 0.00000 - 18 15.3120 0.00000 - - k-point 400 : 0.4667 0.0667 0.4000 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7392 2.00000 - 5 -30.0487 2.00000 - 6 -30.0114 2.00000 - 7 -29.9642 2.00000 - 8 1.5535 2.00000 - 9 2.2004 2.00000 - 10 4.5595 2.00000 - 11 4.9718 2.00000 - 12 5.6296 2.00000 - 13 6.2011 2.00000 - 14 9.0958 0.00000 - 15 9.7761 0.00000 - 16 11.4975 0.00000 - 17 12.5932 0.00000 - 18 15.0907 0.00000 - - k-point 401 : 0.0000 0.1333 0.4000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7400 2.00000 - 5 -30.0138 2.00000 - 6 -29.9979 2.00000 - 7 -29.9775 2.00000 - 8 0.2825 2.00000 - 9 2.6761 2.00000 - 10 4.5064 2.00000 - 11 4.8000 2.00000 - 12 4.9688 2.00000 - 13 7.7564 1.92606 - 14 10.1137 0.00000 - 15 10.4867 0.00000 - 16 11.6479 0.00000 - 17 13.3919 0.00000 - 18 14.4508 0.00000 - - k-point 402 : 0.0667 0.1333 0.4000 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7400 2.00000 - 5 -30.0137 2.00000 - 6 -30.0001 2.00000 - 7 -29.9773 2.00000 - 8 0.3313 2.00000 - 9 2.6826 2.00000 - 10 4.4604 2.00000 - 11 4.8061 2.00000 - 12 5.0256 2.00000 - 13 7.5867 1.99997 - 14 10.1283 0.00000 - 15 10.6729 0.00000 - 16 11.4680 0.00000 - 17 13.1394 0.00000 - 18 14.3328 0.00000 - - k-point 403 : 0.1333 0.1333 0.4000 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4247 2.00000 - 3 -91.2897 2.00000 - 4 -65.7398 2.00000 - 5 -30.0133 2.00000 - 6 -30.0063 2.00000 - 7 -29.9768 2.00000 - 8 0.4736 2.00000 - 9 2.6942 2.00000 - 10 4.3753 2.00000 - 11 4.8323 2.00000 - 12 5.1415 2.00000 - 13 7.2084 2.00000 - 14 10.1072 0.00000 - 15 10.9314 0.00000 - 16 11.2329 0.00000 - 17 12.9608 0.00000 - 18 14.6853 0.00000 - - k-point 404 : 0.2000 0.1333 0.4000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2900 2.00000 - 4 -65.7397 2.00000 - 5 -30.0155 2.00000 - 6 -30.0128 2.00000 - 7 -29.9760 2.00000 - 8 0.6917 2.00000 - 9 2.6939 2.00000 - 10 4.3211 2.00000 - 11 4.8693 2.00000 - 12 5.2665 2.00000 - 13 6.8005 2.00000 - 14 9.9630 0.00000 - 15 10.5675 0.00000 - 16 11.4806 0.00000 - 17 13.0652 0.00000 - 18 14.4338 0.00000 - - k-point 405 : 0.2667 0.1333 0.4000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7395 2.00000 - 5 -30.0259 2.00000 - 6 -30.0122 2.00000 - 7 -29.9751 2.00000 - 8 0.9628 2.00000 - 9 2.6633 2.00000 - 10 4.3343 2.00000 - 11 4.8939 2.00000 - 12 5.3859 2.00000 - 13 6.4620 2.00000 - 14 9.6578 0.00000 - 15 10.1908 0.00000 - 16 11.5257 0.00000 - 17 13.6164 0.00000 - 18 15.5505 0.00000 - - k-point 406 : 0.3333 0.1333 0.4000 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7393 2.00000 - 5 -30.0359 2.00000 - 6 -30.0116 2.00000 - 7 -29.9742 2.00000 - 8 1.2487 2.00000 - 9 2.5974 2.00000 - 10 4.4087 2.00000 - 11 4.8823 2.00000 - 12 5.5018 2.00000 - 13 6.2380 2.00000 - 14 9.3183 0.00000 - 15 9.7979 0.00000 - 16 11.5299 0.00000 - 17 13.8800 0.00000 - 18 14.6587 0.00000 - - k-point 407 : 0.4000 0.1333 0.4000 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7391 2.00000 - 5 -30.0437 2.00000 - 6 -30.0112 2.00000 - 7 -29.9735 2.00000 - 8 1.5051 2.00000 - 9 2.5119 2.00000 - 10 4.4950 2.00000 - 11 4.8424 2.00000 - 12 5.6205 2.00000 - 13 6.1187 2.00000 - 14 9.0647 0.00000 - 15 9.4200 0.00000 - 16 11.5701 0.00000 - 17 13.6103 0.00000 - 18 15.8073 0.00000 - - k-point 408 : 0.4667 0.1333 0.4000 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7390 2.00000 - 5 -30.0480 2.00000 - 6 -30.0110 2.00000 - 7 -29.9731 2.00000 - 8 1.6705 2.00000 - 9 2.4419 2.00000 - 10 4.5400 2.00000 - 11 4.8182 2.00000 - 12 5.7164 2.00000 - 13 6.0601 2.00000 - 14 8.9498 0.00000 - 15 9.1654 0.00000 - 16 11.6090 0.00000 - 17 13.4604 0.00000 - 18 15.4612 0.00000 - - k-point 409 : 0.0000 0.2000 0.4000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7397 2.00000 - 5 -30.0130 2.00000 - 6 -29.9967 2.00000 - 7 -29.9905 2.00000 - 8 0.5171 2.00000 - 9 2.6203 2.00000 - 10 4.5293 2.00000 - 11 4.9234 2.00000 - 12 5.0169 2.00000 - 13 7.2171 2.00000 - 14 9.9208 0.00000 - 15 10.3388 0.00000 - 16 12.4204 0.00000 - 17 12.7407 0.00000 - 18 14.2892 0.00000 - - k-point 410 : 0.0667 0.2000 0.4000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7397 2.00000 - 5 -30.0129 2.00000 - 6 -29.9989 2.00000 - 7 -29.9903 2.00000 - 8 0.5656 2.00000 - 9 2.6459 2.00000 - 10 4.4784 2.00000 - 11 4.8801 2.00000 - 12 5.1125 2.00000 - 13 7.0689 2.00000 - 14 9.9752 0.00000 - 15 10.4280 0.00000 - 16 12.5187 0.00000 - 17 32.9739 0.00000 - 18 35.7387 0.00000 - - k-point 411 : 0.1333 0.2000 0.4000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7396 2.00000 - 5 -30.0125 2.00000 - 6 -30.0051 2.00000 - 7 -29.9898 2.00000 - 8 0.7061 2.00000 - 9 2.7176 2.00000 - 10 4.3568 2.00000 - 11 4.8822 2.00000 - 12 5.2415 2.00000 - 13 6.7298 2.00000 - 14 9.8871 0.00000 - 15 10.7646 0.00000 - 16 11.4466 0.00000 - 17 14.5915 0.00000 - 18 38.5493 0.00000 - - k-point 412 : 0.2000 0.2000 0.4000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2900 2.00000 - 4 -65.7394 2.00000 - 5 -30.0143 2.00000 - 6 -30.0120 2.00000 - 7 -29.9890 2.00000 - 8 0.9230 2.00000 - 9 2.8144 2.00000 - 10 4.2395 2.00000 - 11 4.9255 2.00000 - 12 5.3419 2.00000 - 13 6.3667 2.00000 - 14 9.5538 0.00000 - 15 11.0084 0.00000 - 16 11.1693 0.00000 - 17 13.0107 0.00000 - 18 14.8133 0.00000 - - k-point 413 : 0.2667 0.2000 0.4000 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7392 2.00000 - 5 -30.0248 2.00000 - 6 -30.0115 2.00000 - 7 -29.9881 2.00000 - 8 1.1884 2.00000 - 9 2.8932 2.00000 - 10 4.1953 2.00000 - 11 4.9555 2.00000 - 12 5.3985 2.00000 - 13 6.1037 2.00000 - 14 9.0980 0.00000 - 15 10.5664 0.00000 - 16 11.4010 0.00000 - 17 13.2814 0.00000 - 18 14.7039 0.00000 - - k-point 414 : 0.3333 0.2000 0.4000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7390 2.00000 - 5 -30.0349 2.00000 - 6 -30.0110 2.00000 - 7 -29.9873 2.00000 - 8 1.4648 2.00000 - 9 2.9108 2.00000 - 10 4.2604 2.00000 - 11 4.8930 2.00000 - 12 5.4670 2.00000 - 13 5.9927 2.00000 - 14 8.6547 0.00000 - 15 10.0335 0.00000 - 16 11.5522 0.00000 - 17 13.8640 0.00000 - 18 14.7888 0.00000 - - k-point 415 : 0.4000 0.2000 0.4000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7389 2.00000 - 5 -30.0427 2.00000 - 6 -30.0105 2.00000 - 7 -29.9866 2.00000 - 8 1.7087 2.00000 - 9 2.8704 2.00000 - 10 4.3914 2.00000 - 11 4.7599 2.00000 - 12 5.6061 2.00000 - 13 5.9584 2.00000 - 14 8.3087 0.00000 - 15 9.5375 0.00000 - 16 11.6648 0.00000 - 17 14.4457 0.00000 - 18 14.7936 0.00000 - - k-point 416 : 0.4667 0.2000 0.4000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7388 2.00000 - 5 -30.0470 2.00000 - 6 -30.0104 2.00000 - 7 -29.9863 2.00000 - 8 1.8594 2.00000 - 9 2.8218 2.00000 - 10 4.4916 2.00000 - 11 4.6640 2.00000 - 12 5.7708 2.00000 - 13 5.9044 2.00000 - 14 8.1176 0.00090 - 15 9.2281 0.00000 - 16 11.7299 0.00000 - 17 14.3458 0.00000 - 18 15.1540 0.00000 - - k-point 417 : 0.0000 0.2667 0.4000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7395 2.00000 - 5 -30.0121 2.00000 - 6 -30.0053 2.00000 - 7 -29.9953 2.00000 - 8 0.8079 2.00000 - 9 2.5334 2.00000 - 10 4.5838 2.00000 - 11 5.0666 2.00000 - 12 5.0783 2.00000 - 13 6.7500 2.00000 - 14 9.6333 0.00000 - 15 10.3108 0.00000 - 16 12.2505 0.00000 - 17 12.6826 0.00000 - 18 14.7554 0.00000 - - k-point 418 : 0.0667 0.2667 0.4000 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7394 2.00000 - 5 -30.0120 2.00000 - 6 -30.0051 2.00000 - 7 -29.9975 2.00000 - 8 0.8563 2.00000 - 9 2.5778 2.00000 - 10 4.5415 2.00000 - 11 4.9542 2.00000 - 12 5.2219 2.00000 - 13 6.6261 2.00000 - 14 9.6800 0.00000 - 15 10.3030 0.00000 - 16 11.8282 0.00000 - 17 13.2292 0.00000 - 18 14.7293 0.00000 - - k-point 419 : 0.1333 0.2667 0.4000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7393 2.00000 - 5 -30.0117 2.00000 - 6 -30.0046 2.00000 - 7 -30.0037 2.00000 - 8 0.9944 2.00000 - 9 2.7079 2.00000 - 10 4.4058 2.00000 - 11 4.9318 2.00000 - 12 5.3400 2.00000 - 13 6.3377 2.00000 - 14 9.5130 0.00000 - 15 10.4672 0.00000 - 16 11.4998 0.00000 - 17 13.8778 0.00000 - 18 18.0925 0.00000 - - k-point 420 : 0.2000 0.2667 0.4000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7391 2.00000 - 5 -30.0130 2.00000 - 6 -30.0112 2.00000 - 7 -30.0039 2.00000 - 8 1.2055 2.00000 - 9 2.9156 2.00000 - 10 4.2276 2.00000 - 11 4.9929 2.00000 - 12 5.3616 2.00000 - 13 6.0549 2.00000 - 14 9.0232 0.00000 - 15 10.8076 0.00000 - 16 11.3166 0.00000 - 17 13.1705 0.00000 - 18 14.8540 0.00000 - - k-point 421 : 0.2667 0.2667 0.4000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7389 2.00000 - 5 -30.0235 2.00000 - 6 -30.0107 2.00000 - 7 -30.0030 2.00000 - 8 1.4620 2.00000 - 9 3.1623 2.00000 - 10 4.0828 2.00000 - 11 5.0864 2.00000 - 12 5.2214 2.00000 - 13 5.9363 2.00000 - 14 8.4563 0.00000 - 15 10.8355 0.00000 - 16 11.2520 0.00000 - 17 13.1419 0.00000 - 18 15.5800 0.00000 - - k-point 422 : 0.3333 0.2667 0.4000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7387 2.00000 - 5 -30.0336 2.00000 - 6 -30.0102 2.00000 - 7 -30.0022 2.00000 - 8 1.7297 2.00000 - 9 3.3337 2.00000 - 10 4.0790 2.00000 - 11 4.9123 2.00000 - 12 5.2921 2.00000 - 13 5.9385 2.00000 - 14 7.9391 0.42621 - 15 10.2850 0.00000 - 16 11.4643 0.00000 - 17 13.4225 0.00000 - 18 15.4710 0.00000 - - k-point 423 : 0.4000 0.2667 0.4000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2909 2.00000 - 4 -65.7386 2.00000 - 5 -30.0415 2.00000 - 6 -30.0098 2.00000 - 7 -30.0016 2.00000 - 8 1.9664 2.00000 - 9 3.3331 2.00000 - 10 4.2564 2.00000 - 11 4.6894 2.00000 - 12 5.4784 2.00000 - 13 5.9482 2.00000 - 14 7.5447 2.00000 - 15 9.6945 0.00000 - 16 11.6252 0.00000 - 17 13.7684 0.00000 - 18 15.1176 0.00000 - - k-point 424 : 0.4667 0.2667 0.4000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7385 2.00000 - 5 -30.0458 2.00000 - 6 -30.0096 2.00000 - 7 -30.0012 2.00000 - 8 2.1159 2.00000 - 9 3.2777 2.00000 - 10 4.4136 2.00000 - 11 4.5730 2.00000 - 12 5.6529 2.00000 - 13 5.9143 2.00000 - 14 7.3340 2.00000 - 15 9.3087 0.00000 - 16 11.7152 0.00000 - 17 14.2992 0.00000 - 18 15.1018 0.00000 - - k-point 425 : 0.0000 0.3333 0.4000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7391 2.00000 - 5 -30.0194 2.00000 - 6 -30.0113 2.00000 - 7 -29.9940 2.00000 - 8 1.1188 2.00000 - 9 2.4225 2.00000 - 10 4.6599 2.00000 - 11 5.1059 2.00000 - 12 5.2458 2.00000 - 13 6.3781 2.00000 - 14 9.4462 0.00000 - 15 10.2515 0.00000 - 16 11.8462 0.00000 - 17 12.3849 0.00000 - 18 15.2872 0.00000 - - k-point 426 : 0.0667 0.3333 0.4000 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7391 2.00000 - 5 -30.0192 2.00000 - 6 -30.0112 2.00000 - 7 -29.9962 2.00000 - 8 1.1663 2.00000 - 9 2.4798 2.00000 - 10 4.6338 2.00000 - 11 5.0065 2.00000 - 12 5.3465 2.00000 - 13 6.2884 2.00000 - 14 9.4413 0.00000 - 15 10.1362 0.00000 - 16 11.5983 0.00000 - 17 12.9221 0.00000 - 18 14.9830 0.00000 - - k-point 427 : 0.1333 0.3333 0.4000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2905 2.00000 - 4 -65.7390 2.00000 - 5 -30.0187 2.00000 - 6 -30.0108 2.00000 - 7 -30.0025 2.00000 - 8 1.2998 2.00000 - 9 2.6535 2.00000 - 10 4.5224 2.00000 - 11 4.9355 2.00000 - 12 5.4403 2.00000 - 13 6.0847 2.00000 - 14 9.1320 0.00000 - 15 10.1355 0.00000 - 16 11.4935 0.00000 - 17 14.1593 0.00000 - 18 15.0031 0.00000 - - k-point 428 : 0.2000 0.3333 0.4000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7388 2.00000 - 5 -30.0181 2.00000 - 6 -30.0118 2.00000 - 7 -30.0103 2.00000 - 8 1.5018 2.00000 - 9 2.9434 2.00000 - 10 4.3332 2.00000 - 11 4.9416 2.00000 - 12 5.4009 2.00000 - 13 5.9358 2.00000 - 14 8.5164 0.00000 - 15 10.3690 0.00000 - 16 11.4796 0.00000 - 17 13.6233 0.00000 - 18 15.4168 0.00000 - - k-point 429 : 0.2667 0.3333 0.4000 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7386 2.00000 - 5 -30.0224 2.00000 - 6 -30.0173 2.00000 - 7 -30.0098 2.00000 - 8 1.7486 2.00000 - 9 3.3382 2.00000 - 10 4.1257 2.00000 - 11 4.9091 2.00000 - 12 5.2805 2.00000 - 13 5.9294 2.00000 - 14 7.8705 1.13750 - 15 10.5822 0.00000 - 16 11.3190 0.00000 - 17 14.4746 0.00000 - 18 15.4084 0.00000 - - k-point 430 : 0.3333 0.3333 0.4000 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4262 2.00000 - 3 -91.2911 2.00000 - 4 -65.7384 2.00000 - 5 -30.0325 2.00000 - 6 -30.0165 2.00000 - 7 -30.0094 2.00000 - 8 2.0137 2.00000 - 9 3.7924 2.00000 - 10 3.9366 2.00000 - 11 4.7182 2.00000 - 12 5.3253 2.00000 - 13 5.9653 2.00000 - 14 7.2969 2.00000 - 15 10.3874 0.00000 - 16 11.1648 0.00000 - 17 13.7918 0.00000 - 18 15.7649 0.00000 - - k-point 431 : 0.4000 0.3333 0.4000 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2910 2.00000 - 4 -65.7383 2.00000 - 5 -30.0404 2.00000 - 6 -30.0159 2.00000 - 7 -30.0090 2.00000 - 8 2.2614 2.00000 - 9 3.7478 2.00000 - 10 4.2324 2.00000 - 11 4.5462 2.00000 - 12 5.4530 2.00000 - 13 5.9817 2.00000 - 14 6.8661 2.00000 - 15 9.8164 0.00000 - 16 11.2354 0.00000 - 17 13.3824 0.00000 - 18 15.4946 0.00000 - - k-point 432 : 0.4667 0.3333 0.4000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2909 2.00000 - 4 -65.7382 2.00000 - 5 -30.0447 2.00000 - 6 -30.0156 2.00000 - 7 -30.0087 2.00000 - 8 2.4276 2.00000 - 9 3.6308 2.00000 - 10 4.3095 2.00000 - 11 4.6704 2.00000 - 12 5.5414 2.00000 - 13 5.9604 2.00000 - 14 6.6554 2.00000 - 15 9.3847 0.00000 - 16 11.2998 0.00000 - 17 13.4998 0.00000 - 18 15.5406 0.00000 - - k-point 433 : 0.0000 0.4000 0.4000 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4262 2.00000 - 3 -91.2911 2.00000 - 4 -65.7389 2.00000 - 5 -30.0304 2.00000 - 6 -30.0107 2.00000 - 7 -29.9930 2.00000 - 8 1.4059 2.00000 - 9 2.2991 2.00000 - 10 4.7303 2.00000 - 11 5.1280 2.00000 - 12 5.4014 2.00000 - 13 6.1085 2.00000 - 14 9.4200 0.00000 - 15 10.1068 0.00000 - 16 11.5735 0.00000 - 17 12.0510 0.00000 - 18 15.2640 0.00000 - - k-point 434 : 0.0667 0.4000 0.4000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2908 2.00000 - 4 -65.7389 2.00000 - 5 -30.0302 2.00000 - 6 -30.0105 2.00000 - 7 -29.9952 2.00000 - 8 1.4496 2.00000 - 9 2.3666 2.00000 - 10 4.7143 2.00000 - 11 5.0343 2.00000 - 12 5.4738 2.00000 - 13 6.0596 2.00000 - 14 9.3470 0.00000 - 15 9.8894 0.00000 - 16 11.4911 0.00000 - 17 12.5501 0.00000 - 18 15.0042 0.00000 - - k-point 435 : 0.1333 0.4000 0.4000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7387 2.00000 - 5 -30.0298 2.00000 - 6 -30.0102 2.00000 - 7 -30.0014 2.00000 - 8 1.5741 2.00000 - 9 2.5692 2.00000 - 10 4.6449 2.00000 - 11 4.8922 2.00000 - 12 5.5587 2.00000 - 13 5.9560 2.00000 - 14 8.8420 0.00000 - 15 9.8198 0.00000 - 16 11.5326 0.00000 - 17 13.4548 0.00000 - 18 15.3070 0.00000 - - k-point 436 : 0.2000 0.4000 0.4000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2903 2.00000 - 4 -65.7385 2.00000 - 5 -30.0291 2.00000 - 6 -30.0108 2.00000 - 7 -30.0097 2.00000 - 8 1.7645 2.00000 - 9 2.9023 2.00000 - 10 4.5006 2.00000 - 11 4.7818 2.00000 - 12 5.5503 2.00000 - 13 5.9099 2.00000 - 14 8.1185 0.00086 - 15 9.9431 0.00000 - 16 11.5982 0.00000 - 17 14.1559 0.00000 - 18 15.5155 0.00000 - - k-point 437 : 0.2667 0.4000 0.4000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7383 2.00000 - 5 -30.0283 2.00000 - 6 -30.0214 2.00000 - 7 -30.0092 2.00000 - 8 2.0055 2.00000 - 9 3.3368 2.00000 - 10 4.3451 2.00000 - 11 4.6481 2.00000 - 12 5.4981 2.00000 - 13 5.9423 2.00000 - 14 7.4143 2.00000 - 15 10.0772 0.00000 - 16 11.5013 0.00000 - 17 14.0698 0.00000 - 18 15.1813 0.00000 - - k-point 438 : 0.3333 0.4000 0.4000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7382 2.00000 - 5 -30.0316 2.00000 - 6 -30.0276 2.00000 - 7 -30.0088 2.00000 - 8 2.2811 2.00000 - 9 3.7459 2.00000 - 10 4.2885 2.00000 - 11 4.4782 2.00000 - 12 5.5123 2.00000 - 13 5.9815 2.00000 - 14 6.7976 2.00000 - 15 10.1223 0.00000 - 16 10.9975 0.00000 - 17 13.3162 0.00000 - 18 35.4508 0.00000 - - k-point 439 : 0.4000 0.4000 0.4000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7380 2.00000 - 5 -30.0395 2.00000 - 6 -30.0270 2.00000 - 7 -30.0084 2.00000 - 8 2.5605 2.00000 - 9 3.8201 2.00000 - 10 4.2232 2.00000 - 11 4.6720 2.00000 - 12 5.5887 2.00000 - 13 5.9853 2.00000 - 14 6.3304 2.00000 - 15 9.8542 0.00000 - 16 10.6312 0.00000 - 17 13.3008 0.00000 - 18 15.9780 0.00000 - - k-point 440 : 0.4667 0.4000 0.4000 - band No. band energies occupation - 1 -91.8815 2.00000 - 2 -91.4265 2.00000 - 3 -91.2915 2.00000 - 4 -65.7380 2.00000 - 5 -30.0439 2.00000 - 6 -30.0268 2.00000 - 7 -30.0082 2.00000 - 8 2.7690 2.00000 - 9 3.7318 2.00000 - 10 4.1082 2.00000 - 11 5.0768 2.00000 - 12 5.5474 2.00000 - 13 5.9652 2.00000 - 14 6.1318 2.00000 - 15 9.4421 0.00000 - 16 10.5773 0.00000 - 17 13.3598 0.00000 - 18 15.6239 0.00000 - - k-point 441 : 0.0000 0.4667 0.4000 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2911 2.00000 - 4 -65.7388 2.00000 - 5 -30.0364 2.00000 - 6 -30.0103 2.00000 - 7 -29.9924 2.00000 - 8 1.6041 2.00000 - 9 2.1949 2.00000 - 10 4.7707 2.00000 - 11 5.1368 2.00000 - 12 5.5104 2.00000 - 13 5.9515 2.00000 - 14 9.5274 0.00000 - 15 9.9063 0.00000 - 16 11.4475 0.00000 - 17 11.8572 0.00000 - 18 14.7311 0.00000 - - k-point 442 : 0.0667 0.4667 0.4000 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2905 2.00000 - 4 -65.7387 2.00000 - 5 -30.0362 2.00000 - 6 -30.0101 2.00000 - 7 -29.9946 2.00000 - 8 1.6419 2.00000 - 9 2.2709 2.00000 - 10 4.7507 2.00000 - 11 5.0499 2.00000 - 12 5.5743 2.00000 - 13 5.9294 2.00000 - 14 9.4032 0.00000 - 15 9.6388 0.00000 - 16 11.4753 0.00000 - 17 12.3145 0.00000 - 18 15.0586 0.00000 - - k-point 443 : 0.1333 0.4667 0.4000 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7386 2.00000 - 5 -30.0358 2.00000 - 6 -30.0099 2.00000 - 7 -30.0009 2.00000 - 8 1.7525 2.00000 - 9 2.4947 2.00000 - 10 4.6872 2.00000 - 11 4.8807 2.00000 - 12 5.6780 2.00000 - 13 5.8786 2.00000 - 14 8.6877 0.00000 - 15 9.6263 0.00000 - 16 11.5761 0.00000 - 17 13.1883 0.00000 - 18 15.0368 0.00000 - - k-point 444 : 0.2000 0.4667 0.4000 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2909 2.00000 - 4 -65.7384 2.00000 - 5 -30.0351 2.00000 - 6 -30.0103 2.00000 - 7 -30.0094 2.00000 - 8 1.9301 2.00000 - 9 2.8492 2.00000 - 10 4.5787 2.00000 - 11 4.7121 2.00000 - 12 5.7281 2.00000 - 13 5.8578 2.00000 - 14 7.8952 0.86080 - 15 9.6755 0.00000 - 16 11.6667 0.00000 - 17 14.3103 0.00000 - 18 38.9176 0.00000 - - k-point 445 : 0.2667 0.4667 0.4000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2909 2.00000 - 4 -65.7382 2.00000 - 5 -30.0344 2.00000 - 6 -30.0209 2.00000 - 7 -30.0089 2.00000 - 8 2.1704 2.00000 - 9 3.2839 2.00000 - 10 4.4368 2.00000 - 11 4.5966 2.00000 - 12 5.6971 2.00000 - 13 5.9055 2.00000 - 14 7.1618 2.00000 - 15 9.7305 0.00000 - 16 11.5519 0.00000 - 17 13.7092 0.00000 - 18 15.1518 0.00000 - - k-point 446 : 0.3333 0.4667 0.4000 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7380 2.00000 - 5 -30.0336 2.00000 - 6 -30.0310 2.00000 - 7 -30.0084 2.00000 - 8 2.4625 2.00000 - 9 3.6552 2.00000 - 10 4.2572 2.00000 - 11 4.6667 2.00000 - 12 5.6659 2.00000 - 13 5.9462 2.00000 - 14 6.5416 2.00000 - 15 9.7701 0.00000 - 16 11.0159 0.00000 - 17 13.7528 0.00000 - 18 15.5596 0.00000 - - k-point 447 : 0.4000 0.4667 0.4000 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7379 2.00000 - 5 -30.0390 2.00000 - 6 -30.0331 2.00000 - 7 -30.0080 2.00000 - 8 2.7831 2.00000 - 9 3.7889 2.00000 - 10 4.0361 2.00000 - 11 5.0350 2.00000 - 12 5.6638 2.00000 - 13 5.9246 2.00000 - 14 6.1048 2.00000 - 15 9.7327 0.00000 - 16 10.2984 0.00000 - 17 13.3147 0.00000 - 18 15.4211 0.00000 - - k-point 448 : 0.4667 0.4667 0.4000 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4262 2.00000 - 3 -91.2912 2.00000 - 4 -65.7378 2.00000 - 5 -30.0434 2.00000 - 6 -30.0328 2.00000 - 7 -30.0078 2.00000 - 8 3.0626 2.00000 - 9 3.7463 2.00000 - 10 3.8683 2.00000 - 11 5.4341 2.00000 - 12 5.6823 2.00000 - 13 5.7756 2.00000 - 14 5.9556 2.00000 - 15 9.4675 0.00000 - 16 10.0217 0.00000 - 17 13.3491 0.00000 - 18 16.1206 0.00000 - - k-point 449 : 0.0000 0.0000 0.4667 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7397 2.00000 - 5 -30.0332 2.00000 - 6 -29.9970 2.00000 - 7 -29.9635 2.00000 - 8 0.5736 2.00000 - 9 2.1119 2.00000 - 10 4.5165 2.00000 - 11 4.5676 2.00000 - 12 4.7863 2.00000 - 13 8.6168 0.00000 - 14 10.8092 0.00000 - 15 11.1222 0.00000 - 16 11.2007 0.00000 - 17 14.0197 0.00000 - 18 39.2698 0.00000 - - k-point 450 : 0.0667 0.0000 0.4667 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7395 2.00000 - 5 -30.0330 2.00000 - 6 -29.9991 2.00000 - 7 -29.9633 2.00000 - 8 0.6291 2.00000 - 9 2.0977 2.00000 - 10 4.5093 2.00000 - 11 4.5944 2.00000 - 12 4.8096 2.00000 - 13 8.4094 0.00000 - 14 10.7035 0.00000 - 15 11.1656 0.00000 - 16 11.6529 0.00000 - 17 14.1405 0.00000 - 18 41.5789 0.00000 - - k-point 451 : 0.1333 0.0000 0.4667 - band No. band energies occupation - 1 -91.8796 2.00000 - 2 -91.4247 2.00000 - 3 -91.2896 2.00000 - 4 -65.7394 2.00000 - 5 -30.0326 2.00000 - 6 -30.0053 2.00000 - 7 -29.9627 2.00000 - 8 0.7865 2.00000 - 9 2.0532 2.00000 - 10 4.5078 2.00000 - 11 4.6507 2.00000 - 12 4.8773 2.00000 - 13 7.9670 0.23363 - 14 10.4342 0.00000 - 15 11.1229 0.00000 - 16 12.2041 0.00000 - 17 12.2648 0.00000 - 18 14.3078 0.00000 - - k-point 452 : 0.2000 0.0000 0.4667 - band No. band energies occupation - 1 -91.8795 2.00000 - 2 -91.4245 2.00000 - 3 -91.2895 2.00000 - 4 -65.7392 2.00000 - 5 -30.0322 2.00000 - 6 -30.0144 2.00000 - 7 -29.9619 2.00000 - 8 1.0275 2.00000 - 9 1.9962 2.00000 - 10 4.5159 2.00000 - 11 4.7211 2.00000 - 12 4.9818 2.00000 - 13 7.4959 2.00000 - 14 10.0943 0.00000 - 15 11.0206 0.00000 - 16 11.8767 0.00000 - 17 13.0219 0.00000 - 18 14.6524 0.00000 - - k-point 453 : 0.2667 0.0000 0.4667 - band No. band energies occupation - 1 -91.8795 2.00000 - 2 -91.4245 2.00000 - 3 -91.2895 2.00000 - 4 -65.7390 2.00000 - 5 -30.0316 2.00000 - 6 -30.0249 2.00000 - 7 -29.9609 2.00000 - 8 1.3090 2.00000 - 9 1.9542 2.00000 - 10 4.5205 2.00000 - 11 4.7985 2.00000 - 12 5.1102 2.00000 - 13 7.0804 2.00000 - 14 9.7491 0.00000 - 15 10.7814 0.00000 - 16 12.7825 0.00000 - 17 14.2666 0.00000 - 18 40.5060 0.00000 - - k-point 454 : 0.3333 0.0000 0.4667 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7388 2.00000 - 5 -30.0349 2.00000 - 6 -30.0311 2.00000 - 7 -29.9600 2.00000 - 8 1.5312 2.00000 - 9 1.9991 2.00000 - 10 4.5052 2.00000 - 11 4.8754 2.00000 - 12 5.2431 2.00000 - 13 6.7527 2.00000 - 14 9.4493 0.00000 - 15 10.4582 0.00000 - 16 11.6293 0.00000 - 17 12.3813 0.00000 - 18 15.5445 0.00000 - - k-point 455 : 0.4000 0.0000 0.4667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7387 2.00000 - 5 -30.0428 2.00000 - 6 -30.0307 2.00000 - 7 -29.9593 2.00000 - 8 1.5968 2.00000 - 9 2.1802 2.00000 - 10 4.4669 2.00000 - 11 4.9394 2.00000 - 12 5.3556 2.00000 - 13 6.5274 2.00000 - 14 9.2375 0.00000 - 15 10.2067 0.00000 - 16 12.0084 0.00000 - 17 14.2385 0.00000 - 18 36.2448 0.00000 - - k-point 456 : 0.4667 0.0000 0.4667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2901 2.00000 - 4 -65.7386 2.00000 - 5 -30.0470 2.00000 - 6 -30.0305 2.00000 - 7 -29.9589 2.00000 - 8 1.5982 2.00000 - 9 2.3352 2.00000 - 10 4.4290 2.00000 - 11 4.9767 2.00000 - 12 5.4211 2.00000 - 13 6.4124 2.00000 - 14 9.1302 0.00000 - 15 10.0506 0.00000 - 16 11.6269 0.00000 - 17 11.8418 0.00000 - 18 15.0676 0.00000 - - k-point 457 : 0.0000 0.0667 0.4667 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7395 2.00000 - 5 -30.0330 2.00000 - 6 -29.9966 2.00000 - 7 -29.9665 2.00000 - 8 0.6330 2.00000 - 9 2.1018 2.00000 - 10 4.5271 2.00000 - 11 4.5956 2.00000 - 12 4.7951 2.00000 - 13 8.3518 0.00000 - 14 11.1089 0.00000 - 15 11.1684 0.00000 - 16 13.7806 0.00000 - 17 14.1363 0.00000 - 18 19.9386 0.00000 - - k-point 458 : 0.0667 0.0667 0.4667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4251 2.00000 - 3 -91.2900 2.00000 - 4 -65.7395 2.00000 - 5 -30.0328 2.00000 - 6 -29.9988 2.00000 - 7 -29.9664 2.00000 - 8 0.6878 2.00000 - 9 2.0898 2.00000 - 10 4.5140 2.00000 - 11 4.6007 2.00000 - 12 4.8434 2.00000 - 13 8.1649 0.00007 - 14 10.9818 0.00000 - 15 11.1274 0.00000 - 16 11.4259 0.00000 - 17 13.4427 0.00000 - 18 14.6883 0.00000 - - k-point 459 : 0.1333 0.0667 0.4667 - band No. band energies occupation - 1 -91.8794 2.00000 - 2 -91.4244 2.00000 - 3 -91.2894 2.00000 - 4 -65.7393 2.00000 - 5 -30.0325 2.00000 - 6 -30.0049 2.00000 - 7 -29.9658 2.00000 - 8 0.8465 2.00000 - 9 2.0591 2.00000 - 10 4.4969 2.00000 - 11 4.6223 2.00000 - 12 4.9548 2.00000 - 13 7.7541 1.93112 - 14 10.6858 0.00000 - 15 11.0717 0.00000 - 16 11.8125 0.00000 - 17 12.3245 0.00000 - 18 14.7406 0.00000 - - k-point 460 : 0.2000 0.0667 0.4667 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2898 2.00000 - 4 -65.7392 2.00000 - 5 -30.0320 2.00000 - 6 -30.0142 2.00000 - 7 -29.9650 2.00000 - 8 1.0875 2.00000 - 9 2.0159 2.00000 - 10 4.4997 2.00000 - 11 4.6561 2.00000 - 12 5.0929 2.00000 - 13 7.3100 2.00000 - 14 10.3059 0.00000 - 15 10.8388 0.00000 - 16 11.7195 0.00000 - 17 13.5031 0.00000 - 18 14.7149 0.00000 - - k-point 461 : 0.2667 0.0667 0.4667 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4247 2.00000 - 3 -91.2896 2.00000 - 4 -65.7389 2.00000 - 5 -30.0315 2.00000 - 6 -30.0246 2.00000 - 7 -29.9641 2.00000 - 8 1.3668 2.00000 - 9 1.9926 2.00000 - 10 4.5154 2.00000 - 11 4.6963 2.00000 - 12 5.2390 2.00000 - 13 6.9228 2.00000 - 14 9.9077 0.00000 - 15 10.4464 0.00000 - 16 11.5965 0.00000 - 17 13.3203 0.00000 - 18 14.3775 0.00000 - - k-point 462 : 0.3333 0.0667 0.4667 - band No. band energies occupation - 1 -91.8799 2.00000 - 2 -91.4249 2.00000 - 3 -91.2899 2.00000 - 4 -65.7388 2.00000 - 5 -30.0347 2.00000 - 6 -30.0310 2.00000 - 7 -29.9632 2.00000 - 8 1.5777 2.00000 - 9 2.0640 2.00000 - 10 4.5124 2.00000 - 11 4.7455 2.00000 - 12 5.3763 2.00000 - 13 6.6315 2.00000 - 14 9.5524 0.00000 - 15 10.0473 0.00000 - 16 12.1279 0.00000 - 17 14.4175 0.00000 - 18 15.1742 0.00000 - - k-point 463 : 0.4000 0.0667 0.4667 - band No. band energies occupation - 1 -91.8801 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7386 2.00000 - 5 -30.0425 2.00000 - 6 -30.0306 2.00000 - 7 -29.9625 2.00000 - 8 1.6379 2.00000 - 9 2.2630 2.00000 - 10 4.4722 2.00000 - 11 4.7995 2.00000 - 12 5.4863 2.00000 - 13 6.4480 2.00000 - 14 9.2884 0.00000 - 15 9.7273 0.00000 - 16 11.6147 0.00000 - 17 12.5272 0.00000 - 18 15.4126 0.00000 - - k-point 464 : 0.4667 0.0667 0.4667 - band No. band energies occupation - 1 -91.8798 2.00000 - 2 -91.4248 2.00000 - 3 -91.2898 2.00000 - 4 -65.7385 2.00000 - 5 -30.0468 2.00000 - 6 -30.0303 2.00000 - 7 -29.9621 2.00000 - 8 1.6405 2.00000 - 9 2.4253 2.00000 - 10 4.4262 2.00000 - 11 4.8365 2.00000 - 12 5.5489 2.00000 - 13 6.3631 2.00000 - 14 9.1487 0.00000 - 15 9.5497 0.00000 - 16 11.6341 0.00000 - 17 12.3538 0.00000 - 18 15.2479 0.00000 - - k-point 465 : 0.0000 0.1333 0.4667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2908 2.00000 - 4 -65.7394 2.00000 - 5 -30.0325 2.00000 - 6 -29.9959 2.00000 - 7 -29.9755 2.00000 - 8 0.8009 2.00000 - 9 2.0701 2.00000 - 10 4.5572 2.00000 - 11 4.6768 2.00000 - 12 4.8227 2.00000 - 13 7.8284 1.55787 - 14 10.7722 0.00000 - 15 11.2548 0.00000 - 16 12.1273 0.00000 - 17 13.8872 0.00000 - 18 19.3208 0.00000 - - k-point 466 : 0.0667 0.1333 0.4667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7393 2.00000 - 5 -30.0324 2.00000 - 6 -29.9980 2.00000 - 7 -29.9752 2.00000 - 8 0.8570 2.00000 - 9 2.0712 2.00000 - 10 4.5273 2.00000 - 11 4.6328 2.00000 - 12 4.9304 2.00000 - 13 7.6670 1.99772 - 14 10.9814 0.00000 - 15 11.0519 0.00000 - 16 11.6948 0.00000 - 17 14.0784 0.00000 - 18 42.2456 0.00000 - - k-point 467 : 0.1333 0.1333 0.4667 - band No. band energies occupation - 1 -91.8797 2.00000 - 2 -91.4247 2.00000 - 3 -91.2896 2.00000 - 4 -65.7391 2.00000 - 5 -30.0320 2.00000 - 6 -30.0042 2.00000 - 7 -29.9747 2.00000 - 8 1.0176 2.00000 - 9 2.0713 2.00000 - 10 4.4474 2.00000 - 11 4.6405 2.00000 - 12 5.1016 2.00000 - 13 7.2990 2.00000 - 14 10.7764 0.00000 - 15 11.1820 0.00000 - 16 11.3580 0.00000 - 17 12.3963 0.00000 - 18 14.3579 0.00000 - - k-point 468 : 0.2000 0.1333 0.4667 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2899 2.00000 - 4 -65.7390 2.00000 - 5 -30.0316 2.00000 - 6 -30.0134 2.00000 - 7 -29.9739 2.00000 - 8 1.2586 2.00000 - 9 2.0756 2.00000 - 10 4.3961 2.00000 - 11 4.6691 2.00000 - 12 5.2775 2.00000 - 13 6.8932 2.00000 - 14 10.2551 0.00000 - 15 10.7808 0.00000 - 16 11.4976 0.00000 - 17 12.8877 0.00000 - 18 15.8667 0.00000 - - k-point 469 : 0.2667 0.1333 0.4667 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7388 2.00000 - 5 -30.0310 2.00000 - 6 -30.0239 2.00000 - 7 -29.9730 2.00000 - 8 1.5255 2.00000 - 9 2.1140 2.00000 - 10 4.3949 2.00000 - 11 4.6822 2.00000 - 12 5.4431 2.00000 - 13 6.5515 2.00000 - 14 9.6939 0.00000 - 15 10.3186 0.00000 - 16 11.5514 0.00000 - 17 13.6887 0.00000 - 18 13.9888 0.00000 - - k-point 470 : 0.3333 0.1333 0.4667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2903 2.00000 - 4 -65.7386 2.00000 - 5 -30.0340 2.00000 - 6 -30.0305 2.00000 - 7 -29.9721 2.00000 - 8 1.7053 2.00000 - 9 2.2618 2.00000 - 10 4.4314 2.00000 - 11 4.6508 2.00000 - 12 5.5873 2.00000 - 13 6.3317 2.00000 - 14 9.2060 0.00000 - 15 9.8463 0.00000 - 16 11.5922 0.00000 - 17 13.7036 0.00000 - 18 15.4834 0.00000 - - k-point 471 : 0.4000 0.1333 0.4667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7384 2.00000 - 5 -30.0418 2.00000 - 6 -30.0301 2.00000 - 7 -29.9715 2.00000 - 8 1.7590 2.00000 - 9 2.5073 2.00000 - 10 4.4571 2.00000 - 11 4.5923 2.00000 - 12 5.6986 2.00000 - 13 6.2426 2.00000 - 14 8.8451 0.00000 - 15 9.4436 0.00000 - 16 11.9279 0.00000 - 17 13.5539 0.00000 - 18 15.7128 0.00000 - - k-point 472 : 0.4667 0.1333 0.4667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7384 2.00000 - 5 -30.0461 2.00000 - 6 -30.0299 2.00000 - 7 -29.9711 2.00000 - 8 1.7660 2.00000 - 9 2.6912 2.00000 - 10 4.4142 2.00000 - 11 4.5895 2.00000 - 12 5.7615 2.00000 - 13 6.2306 2.00000 - 14 8.6509 0.00000 - 15 9.2035 0.00000 - 16 11.6476 0.00000 - 17 14.2805 0.00000 - 18 19.5232 0.00000 - - k-point 473 : 0.0000 0.2000 0.4667 - band No. band energies occupation - 1 -91.8815 2.00000 - 2 -91.4265 2.00000 - 3 -91.2914 2.00000 - 4 -65.7392 2.00000 - 5 -30.0318 2.00000 - 6 -29.9947 2.00000 - 7 -29.9885 2.00000 - 8 1.0577 2.00000 - 9 2.0304 2.00000 - 10 4.6009 2.00000 - 11 4.8033 2.00000 - 12 4.8693 2.00000 - 13 7.2978 2.00000 - 14 10.4120 0.00000 - 15 10.9345 0.00000 - 16 11.8493 0.00000 - 17 12.9361 0.00000 - 18 14.3082 0.00000 - - k-point 474 : 0.0667 0.2000 0.4667 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4262 2.00000 - 3 -91.2911 2.00000 - 4 -65.7391 2.00000 - 5 -30.0317 2.00000 - 6 -29.9968 2.00000 - 7 -29.9883 2.00000 - 8 1.1137 2.00000 - 9 2.0461 2.00000 - 10 4.5591 2.00000 - 11 4.6899 2.00000 - 12 5.0505 2.00000 - 13 7.1547 2.00000 - 14 10.5597 0.00000 - 15 10.7725 0.00000 - 16 11.6641 0.00000 - 17 12.9304 0.00000 - 18 41.7172 0.00000 - - k-point 475 : 0.1333 0.2000 0.4667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2904 2.00000 - 4 -65.7389 2.00000 - 5 -30.0313 2.00000 - 6 -30.0030 2.00000 - 7 -29.9878 2.00000 - 8 1.2740 2.00000 - 9 2.0929 2.00000 - 10 4.4116 2.00000 - 11 4.7042 2.00000 - 12 5.2624 2.00000 - 13 6.8170 2.00000 - 14 10.1893 0.00000 - 15 11.0104 0.00000 - 16 11.7700 0.00000 - 17 13.5929 0.00000 - 18 14.2934 0.00000 - - k-point 476 : 0.2000 0.2000 0.4667 - band No. band energies occupation - 1 -91.8800 2.00000 - 2 -91.4250 2.00000 - 3 -91.2900 2.00000 - 4 -65.7387 2.00000 - 5 -30.0309 2.00000 - 6 -30.0122 2.00000 - 7 -29.9870 2.00000 - 8 1.5073 2.00000 - 9 2.1781 2.00000 - 10 4.2861 2.00000 - 11 4.7582 2.00000 - 12 5.4598 2.00000 - 13 6.4336 2.00000 - 14 9.5343 0.00000 - 15 11.2013 0.00000 - 16 11.3387 0.00000 - 17 13.1060 0.00000 - 18 38.3097 0.00000 - - k-point 477 : 0.2667 0.2000 0.4667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7385 2.00000 - 5 -30.0304 2.00000 - 6 -30.0228 2.00000 - 7 -29.9861 2.00000 - 8 1.7426 2.00000 - 9 2.3312 2.00000 - 10 4.2213 2.00000 - 11 4.7949 2.00000 - 12 5.6281 2.00000 - 13 6.1217 2.00000 - 14 8.8998 0.00000 - 15 10.7235 0.00000 - 16 11.4983 0.00000 - 17 13.3139 0.00000 - 18 14.5418 0.00000 - - k-point 478 : 0.3333 0.2000 0.4667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2905 2.00000 - 4 -65.7383 2.00000 - 5 -30.0329 2.00000 - 6 -30.0299 2.00000 - 7 -29.9853 2.00000 - 8 1.8915 2.00000 - 9 2.5903 2.00000 - 10 4.2222 2.00000 - 11 4.7435 2.00000 - 12 5.7550 2.00000 - 13 5.9846 2.00000 - 14 8.3534 0.00000 - 15 10.1446 0.00000 - 16 11.5765 0.00000 - 17 14.0941 0.00000 - 18 31.5297 0.00000 - - k-point 479 : 0.4000 0.2000 0.4667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7382 2.00000 - 5 -30.0408 2.00000 - 6 -30.0295 2.00000 - 7 -29.9846 2.00000 - 8 1.9545 2.00000 - 9 2.8962 2.00000 - 10 4.2674 2.00000 - 11 4.5842 2.00000 - 12 5.8671 2.00000 - 13 6.0058 2.00000 - 14 7.9444 0.38375 - 15 9.6138 0.00000 - 16 12.3662 0.00000 - 17 14.4968 0.00000 - 18 35.5494 0.00000 - - k-point 480 : 0.4667 0.2000 0.4667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7381 2.00000 - 5 -30.0451 2.00000 - 6 -30.0292 2.00000 - 7 -29.9843 2.00000 - 8 1.9749 2.00000 - 9 3.1170 2.00000 - 10 4.3238 2.00000 - 11 4.4181 2.00000 - 12 5.9578 2.00000 - 13 6.0552 2.00000 - 14 7.7216 1.97739 - 15 9.2780 0.00000 - 16 11.6484 0.00000 - 17 14.1912 0.00000 - 18 15.2729 0.00000 - - k-point 481 : 0.0000 0.2667 0.4667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2906 2.00000 - 4 -65.7387 2.00000 - 5 -30.0309 2.00000 - 6 -30.0033 2.00000 - 7 -29.9932 2.00000 - 8 1.3568 2.00000 - 9 2.0050 2.00000 - 10 4.6470 2.00000 - 11 4.9310 2.00000 - 12 4.9604 2.00000 - 13 6.8399 2.00000 - 14 10.0603 0.00000 - 15 10.6095 0.00000 - 16 11.6789 0.00000 - 17 12.7079 0.00000 - 18 14.2313 0.00000 - - k-point 482 : 0.0667 0.2667 0.4667 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2910 2.00000 - 4 -65.7387 2.00000 - 5 -30.0309 2.00000 - 6 -30.0032 2.00000 - 7 -29.9955 2.00000 - 8 1.4097 2.00000 - 9 2.0396 2.00000 - 10 4.6145 2.00000 - 11 4.7530 2.00000 - 12 5.1891 2.00000 - 13 6.7162 2.00000 - 14 10.1096 0.00000 - 15 10.3876 0.00000 - 16 11.6000 0.00000 - 17 13.1316 0.00000 - 18 37.6273 0.00000 - - k-point 483 : 0.1333 0.2667 0.4667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7386 2.00000 - 5 -30.0305 2.00000 - 6 -30.0027 2.00000 - 7 -30.0017 2.00000 - 8 1.5583 2.00000 - 9 2.1490 2.00000 - 10 4.4268 2.00000 - 11 4.7673 2.00000 - 12 5.4207 2.00000 - 13 6.4119 2.00000 - 14 9.5620 0.00000 - 15 10.6052 0.00000 - 16 11.5431 0.00000 - 17 13.8192 0.00000 - 18 14.7273 0.00000 - - k-point 484 : 0.2000 0.2667 0.4667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4258 2.00000 - 3 -91.2907 2.00000 - 4 -65.7384 2.00000 - 5 -30.0301 2.00000 - 6 -30.0110 2.00000 - 7 -30.0020 2.00000 - 8 1.7596 2.00000 - 9 2.3479 2.00000 - 10 4.2353 2.00000 - 11 4.8561 2.00000 - 12 5.6156 2.00000 - 13 6.0522 2.00000 - 14 8.8319 0.00000 - 15 10.9690 0.00000 - 16 11.4301 0.00000 - 17 13.3676 0.00000 - 18 14.5676 0.00000 - - k-point 485 : 0.2667 0.2667 0.4667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2905 2.00000 - 4 -65.7382 2.00000 - 5 -30.0296 2.00000 - 6 -30.0216 2.00000 - 7 -30.0011 2.00000 - 8 1.9573 2.00000 - 9 2.6478 2.00000 - 10 4.0985 2.00000 - 11 4.9571 2.00000 - 12 5.6139 2.00000 - 13 5.8909 2.00000 - 14 8.1389 0.00029 - 15 10.9883 0.00000 - 16 11.3423 0.00000 - 17 13.7094 0.00000 - 18 15.7553 0.00000 - - k-point 486 : 0.3333 0.2667 0.4667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2906 2.00000 - 4 -65.7380 2.00000 - 5 -30.0317 2.00000 - 6 -30.0291 2.00000 - 7 -30.0003 2.00000 - 8 2.1129 2.00000 - 9 3.0175 2.00000 - 10 4.0379 2.00000 - 11 4.9190 2.00000 - 12 5.5211 2.00000 - 13 5.9990 2.00000 - 14 7.5405 2.00000 - 15 10.3988 0.00000 - 16 11.4577 0.00000 - 17 13.7122 0.00000 - 18 15.9308 0.00000 - - k-point 487 : 0.4000 0.2667 0.4667 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2911 2.00000 - 4 -65.7379 2.00000 - 5 -30.0397 2.00000 - 6 -30.0287 2.00000 - 7 -29.9997 2.00000 - 8 2.2149 2.00000 - 9 3.3832 2.00000 - 10 4.0564 2.00000 - 11 4.6690 2.00000 - 12 5.6796 2.00000 - 13 6.0916 2.00000 - 14 7.0870 2.00000 - 15 9.7752 0.00000 - 16 11.5424 0.00000 - 17 14.3066 0.00000 - 18 15.5761 0.00000 - - k-point 488 : 0.4667 0.2667 0.4667 - band No. band energies occupation - 1 -91.8814 2.00000 - 2 -91.4264 2.00000 - 3 -91.2914 2.00000 - 4 -65.7378 2.00000 - 5 -30.0440 2.00000 - 6 -30.0285 2.00000 - 7 -29.9994 2.00000 - 8 2.2640 2.00000 - 9 3.6435 2.00000 - 10 4.1382 2.00000 - 11 4.4048 2.00000 - 12 5.8558 2.00000 - 13 6.1352 2.00000 - 14 6.8387 2.00000 - 15 9.3618 0.00000 - 16 11.5772 0.00000 - 17 14.3099 0.00000 - 18 14.9653 0.00000 - - k-point 489 : 0.0000 0.3333 0.4667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2907 2.00000 - 4 -65.7384 2.00000 - 5 -30.0302 2.00000 - 6 -30.0174 2.00000 - 7 -29.9919 2.00000 - 8 1.5922 2.00000 - 9 2.0622 2.00000 - 10 4.6783 2.00000 - 11 4.9977 2.00000 - 12 5.1255 2.00000 - 13 6.4823 2.00000 - 14 9.7866 0.00000 - 15 10.2382 0.00000 - 16 11.6423 0.00000 - 17 12.1724 0.00000 - 18 15.1696 0.00000 - - k-point 490 : 0.0667 0.3333 0.4667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7384 2.00000 - 5 -30.0300 2.00000 - 6 -30.0172 2.00000 - 7 -29.9941 2.00000 - 8 1.6356 2.00000 - 9 2.1225 2.00000 - 10 4.6697 2.00000 - 11 4.8109 2.00000 - 12 5.3294 2.00000 - 13 6.3879 2.00000 - 14 9.7035 0.00000 - 15 10.0257 0.00000 - 16 11.6040 0.00000 - 17 12.6587 0.00000 - 18 14.9940 0.00000 - - k-point 491 : 0.1333 0.3333 0.4667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2901 2.00000 - 4 -65.7382 2.00000 - 5 -30.0297 2.00000 - 6 -30.0168 2.00000 - 7 -30.0004 2.00000 - 8 1.7553 2.00000 - 9 2.3064 2.00000 - 10 4.4915 2.00000 - 11 4.7800 2.00000 - 12 5.5639 2.00000 - 13 6.1473 2.00000 - 14 9.0130 0.00000 - 15 10.2004 0.00000 - 16 11.5878 0.00000 - 17 13.4966 0.00000 - 18 14.8358 0.00000 - - k-point 492 : 0.2000 0.3333 0.4667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4258 2.00000 - 3 -91.2907 2.00000 - 4 -65.7381 2.00000 - 5 -30.0293 2.00000 - 6 -30.0162 2.00000 - 7 -30.0097 2.00000 - 8 1.9268 2.00000 - 9 2.6143 2.00000 - 10 4.2587 2.00000 - 11 4.8639 2.00000 - 12 5.7056 2.00000 - 13 5.8972 2.00000 - 14 8.2193 0.00000 - 15 10.4809 0.00000 - 16 11.5381 0.00000 - 17 13.9612 0.00000 - 18 14.5546 0.00000 - - k-point 493 : 0.2667 0.3333 0.4667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2908 2.00000 - 4 -65.7379 2.00000 - 5 -30.0288 2.00000 - 6 -30.0204 2.00000 - 7 -30.0154 2.00000 - 8 2.1305 2.00000 - 9 3.0221 2.00000 - 10 4.0628 2.00000 - 11 5.0039 2.00000 - 12 5.4474 2.00000 - 13 5.9945 2.00000 - 14 7.4712 2.00000 - 15 10.6874 0.00000 - 16 11.3421 0.00000 - 17 13.4783 0.00000 - 18 15.3783 0.00000 - - k-point 494 : 0.3333 0.3333 0.4667 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2909 2.00000 - 4 -65.7377 2.00000 - 5 -30.0306 2.00000 - 6 -30.0283 2.00000 - 7 -30.0147 2.00000 - 8 2.3416 2.00000 - 9 3.4734 2.00000 - 10 3.9279 2.00000 - 11 5.1088 2.00000 - 12 5.2297 2.00000 - 13 6.1260 2.00000 - 14 6.8189 2.00000 - 15 10.4946 0.00000 - 16 11.1842 0.00000 - 17 13.1952 0.00000 - 18 15.7397 0.00000 - - k-point 495 : 0.4000 0.3333 0.4667 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4262 2.00000 - 3 -91.2912 2.00000 - 4 -65.7376 2.00000 - 5 -30.0385 2.00000 - 6 -30.0280 2.00000 - 7 -30.0141 2.00000 - 8 2.5238 2.00000 - 9 3.8199 2.00000 - 10 3.9375 2.00000 - 11 4.8268 2.00000 - 12 5.4778 2.00000 - 13 6.2123 2.00000 - 14 6.3224 2.00000 - 15 9.8991 0.00000 - 16 11.2407 0.00000 - 17 13.1926 0.00000 - 18 15.5369 0.00000 - - k-point 496 : 0.4667 0.3333 0.4667 - band No. band energies occupation - 1 -91.8814 2.00000 - 2 -91.4264 2.00000 - 3 -91.2914 2.00000 - 4 -65.7375 2.00000 - 5 -30.0429 2.00000 - 6 -30.0278 2.00000 - 7 -30.0137 2.00000 - 8 2.6290 2.00000 - 9 3.8380 2.00000 - 10 4.2279 2.00000 - 11 4.5865 2.00000 - 12 5.6574 2.00000 - 13 6.0663 2.00000 - 14 6.2635 2.00000 - 15 9.4409 0.00000 - 16 11.2887 0.00000 - 17 13.2397 0.00000 - 18 15.7505 0.00000 - - k-point 497 : 0.0000 0.4000 0.4667 - band No. band energies occupation - 1 -91.8809 2.00000 - 2 -91.4259 2.00000 - 3 -91.2908 2.00000 - 4 -65.7382 2.00000 - 5 -30.0295 2.00000 - 6 -30.0285 2.00000 - 7 -29.9909 2.00000 - 8 1.6678 2.00000 - 9 2.2476 2.00000 - 10 4.6819 2.00000 - 11 5.0573 2.00000 - 12 5.2677 2.00000 - 13 6.2372 2.00000 - 14 9.6320 0.00000 - 15 9.9258 0.00000 - 16 11.6498 0.00000 - 17 11.7641 0.00000 - 18 15.1177 0.00000 - - k-point 498 : 0.0667 0.4000 0.4667 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2910 2.00000 - 4 -65.7382 2.00000 - 5 -30.0294 2.00000 - 6 -30.0284 2.00000 - 7 -29.9931 2.00000 - 8 1.7064 2.00000 - 9 2.3241 2.00000 - 10 4.6780 2.00000 - 11 4.8714 2.00000 - 12 5.4482 2.00000 - 13 6.1821 2.00000 - 14 9.3944 0.00000 - 15 9.7662 0.00000 - 16 11.6283 0.00000 - 17 12.2592 0.00000 - 18 15.0447 0.00000 - - k-point 499 : 0.1333 0.4000 0.4667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7380 2.00000 - 5 -30.0291 2.00000 - 6 -30.0279 2.00000 - 7 -29.9994 2.00000 - 8 1.8197 2.00000 - 9 2.5512 2.00000 - 10 4.5747 2.00000 - 11 4.7174 2.00000 - 12 5.6795 2.00000 - 13 6.0408 2.00000 - 14 8.5996 0.00000 - 15 9.8664 0.00000 - 16 11.6305 0.00000 - 17 13.1616 0.00000 - 18 14.9422 0.00000 - - k-point 500 : 0.2000 0.4000 0.4667 - band No. band energies occupation - 1 -91.8802 2.00000 - 2 -91.4252 2.00000 - 3 -91.2902 2.00000 - 4 -65.7378 2.00000 - 5 -30.0287 2.00000 - 6 -30.0272 2.00000 - 7 -30.0087 2.00000 - 8 2.0020 2.00000 - 9 2.9149 2.00000 - 10 4.3358 2.00000 - 11 4.7172 2.00000 - 12 5.7999 2.00000 - 13 5.9420 2.00000 - 14 7.7512 1.93725 - 15 10.0198 0.00000 - 16 11.6232 0.00000 - 17 14.2345 0.00000 - 18 15.3681 0.00000 - - k-point 501 : 0.2667 0.4000 0.4667 - band No. band energies occupation - 1 -91.8805 2.00000 - 2 -91.4255 2.00000 - 3 -91.2905 2.00000 - 4 -65.7376 2.00000 - 5 -30.0283 2.00000 - 6 -30.0265 2.00000 - 7 -30.0194 2.00000 - 8 2.2449 2.00000 - 9 3.3771 2.00000 - 10 4.1205 2.00000 - 11 4.7396 2.00000 - 12 5.6457 2.00000 - 13 6.0882 2.00000 - 14 6.9514 2.00000 - 15 10.1586 0.00000 - 16 11.4369 0.00000 - 17 13.6407 0.00000 - 18 15.4695 0.00000 - - k-point 502 : 0.3333 0.4000 0.4667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7374 2.00000 - 5 -30.0297 2.00000 - 6 -30.0278 2.00000 - 7 -30.0258 2.00000 - 8 2.5344 2.00000 - 9 3.8121 2.00000 - 10 3.9855 2.00000 - 11 4.8087 2.00000 - 12 5.5213 2.00000 - 13 6.1981 2.00000 - 14 6.2633 2.00000 - 15 10.2073 0.00000 - 16 11.0454 0.00000 - 17 13.0519 0.00000 - 18 15.5984 0.00000 - - k-point 503 : 0.4000 0.4000 0.4667 - band No. band energies occupation - 1 -91.8811 2.00000 - 2 -91.4261 2.00000 - 3 -91.2911 2.00000 - 4 -65.7373 2.00000 - 5 -30.0377 2.00000 - 6 -30.0274 2.00000 - 7 -30.0252 2.00000 - 8 2.8336 2.00000 - 9 3.8000 2.00000 - 10 4.1712 2.00000 - 11 4.9751 2.00000 - 12 5.5168 2.00000 - 13 5.6776 2.00000 - 14 6.3079 2.00000 - 15 9.9354 0.00000 - 16 10.7127 0.00000 - 17 12.8003 0.00000 - 18 15.8356 0.00000 - - k-point 504 : 0.4667 0.4000 0.4667 - band No. band energies occupation - 1 -91.8814 2.00000 - 2 -91.4264 2.00000 - 3 -91.2914 2.00000 - 4 -65.7372 2.00000 - 5 -30.0421 2.00000 - 6 -30.0272 2.00000 - 7 -30.0249 2.00000 - 8 3.0541 2.00000 - 9 3.7465 2.00000 - 10 4.2239 2.00000 - 11 5.1222 2.00000 - 12 5.2997 2.00000 - 13 5.6922 2.00000 - 14 6.3453 2.00000 - 15 9.5016 0.00000 - 16 10.6605 0.00000 - 17 12.7227 0.00000 - 18 15.5675 0.00000 - - k-point 505 : 0.0000 0.4667 0.4667 - band No. band energies occupation - 1 -91.8803 2.00000 - 2 -91.4253 2.00000 - 3 -91.2903 2.00000 - 4 -65.7380 2.00000 - 5 -30.0345 2.00000 - 6 -30.0292 2.00000 - 7 -29.9902 2.00000 - 8 1.6740 2.00000 - 9 2.4018 2.00000 - 10 4.6707 2.00000 - 11 5.0946 2.00000 - 12 5.3522 2.00000 - 13 6.1117 2.00000 - 14 9.6010 0.00000 - 15 9.7207 0.00000 - 16 11.5419 0.00000 - 17 11.6546 0.00000 - 18 14.9372 0.00000 - - k-point 506 : 0.0667 0.4667 0.4667 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7380 2.00000 - 5 -30.0344 2.00000 - 6 -30.0291 2.00000 - 7 -29.9926 2.00000 - 8 1.7129 2.00000 - 9 2.4847 2.00000 - 10 4.6554 2.00000 - 11 4.9171 2.00000 - 12 5.5191 2.00000 - 13 6.0879 2.00000 - 14 9.2253 0.00000 - 15 9.6369 0.00000 - 16 11.6608 0.00000 - 17 12.0478 0.00000 - 18 14.9557 0.00000 - - k-point 507 : 0.1333 0.4667 0.4667 - band No. band energies occupation - 1 -91.8807 2.00000 - 2 -91.4257 2.00000 - 3 -91.2907 2.00000 - 4 -65.7379 2.00000 - 5 -30.0339 2.00000 - 6 -30.0288 2.00000 - 7 -29.9989 2.00000 - 8 1.8315 2.00000 - 9 2.7302 2.00000 - 10 4.6082 2.00000 - 11 4.6655 2.00000 - 12 5.7492 2.00000 - 13 6.0255 2.00000 - 14 8.3737 0.00000 - 15 9.6738 0.00000 - 16 11.6583 0.00000 - 17 12.9796 0.00000 - 18 15.0184 0.00000 - - k-point 508 : 0.2000 0.4667 0.4667 - band No. band energies occupation - 1 -91.8808 2.00000 - 2 -91.4258 2.00000 - 3 -91.2908 2.00000 - 4 -65.7377 2.00000 - 5 -30.0333 2.00000 - 6 -30.0284 2.00000 - 7 -30.0082 2.00000 - 8 2.0272 2.00000 - 9 3.1247 2.00000 - 10 4.4101 2.00000 - 11 4.5557 2.00000 - 12 5.9249 2.00000 - 13 5.9750 2.00000 - 14 7.4900 2.00000 - 15 9.7287 0.00000 - 16 11.6418 0.00000 - 17 13.9974 0.00000 - 18 15.0437 0.00000 - - k-point 509 : 0.2667 0.4667 0.4667 - band No. band energies occupation - 1 -91.8804 2.00000 - 2 -91.4254 2.00000 - 3 -91.2904 2.00000 - 4 -65.7375 2.00000 - 5 -30.0326 2.00000 - 6 -30.0279 2.00000 - 7 -30.0189 2.00000 - 8 2.2989 2.00000 - 9 3.6250 2.00000 - 10 4.2181 2.00000 - 11 4.4835 2.00000 - 12 5.8518 2.00000 - 13 6.1331 2.00000 - 14 6.6571 2.00000 - 15 9.7868 0.00000 - 16 11.4865 0.00000 - 17 14.5147 0.00000 - 18 15.4164 0.00000 - - k-point 510 : 0.3333 0.4667 0.4667 - band No. band energies occupation - 1 -91.8806 2.00000 - 2 -91.4256 2.00000 - 3 -91.2905 2.00000 - 4 -65.7373 2.00000 - 5 -30.0318 2.00000 - 6 -30.0291 2.00000 - 7 -30.0275 2.00000 - 8 2.6408 2.00000 - 9 3.9091 2.00000 - 10 4.2522 2.00000 - 11 4.5325 2.00000 - 12 5.7034 2.00000 - 13 5.9787 2.00000 - 14 6.2621 2.00000 - 15 9.8299 0.00000 - 16 11.0556 0.00000 - 17 13.0395 0.00000 - 18 15.4657 0.00000 - - k-point 511 : 0.4000 0.4667 0.4667 - band No. band energies occupation - 1 -91.8810 2.00000 - 2 -91.4260 2.00000 - 3 -91.2910 2.00000 - 4 -65.7372 2.00000 - 5 -30.0372 2.00000 - 6 -30.0313 2.00000 - 7 -30.0271 2.00000 - 8 3.0409 2.00000 - 9 3.8298 2.00000 - 10 4.2195 2.00000 - 11 5.0235 2.00000 - 12 5.2301 2.00000 - 13 5.8071 2.00000 - 14 6.3436 2.00000 - 15 9.8006 0.00000 - 16 10.3862 0.00000 - 17 12.6747 0.00000 - 18 15.4656 0.00000 - - k-point 512 : 0.4667 0.4667 0.4667 - band No. band energies occupation - 1 -91.8812 2.00000 - 2 -91.4262 2.00000 - 3 -91.2911 2.00000 - 4 -65.7371 2.00000 - 5 -30.0416 2.00000 - 6 -30.0310 2.00000 - 7 -30.0269 2.00000 - 8 3.4531 2.00000 - 9 3.7372 2.00000 - 10 4.0740 2.00000 - 11 4.7709 2.00000 - 12 5.5707 2.00000 - 13 5.7646 2.00000 - 14 6.3738 2.00000 - 15 9.5306 0.00000 - 16 10.0845 0.00000 - 17 12.5702 0.00000 - 18 15.4251 0.00000 - - --------------------------------------------------------------------------------------------------------- - - - soft charge-density along one line, spin component 1 - 0 1 2 3 4 5 6 7 8 9 - total charge-density along one line - - pseudopotential strength for first ion, spin component: 1 - 29.271 27.905 24.284 -0.000 -0.000 0.000 0.000 0.000 - 27.905 26.602 23.219 -0.000 -0.000 0.000 0.000 0.000 - 24.284 23.219 11.179 -0.000 -0.000 0.000 -0.000 -0.000 - -0.000 -0.000 -0.000 -15.093 -0.000 0.000 -10.182 0.000 - -0.000 -0.000 -0.000 -0.000 -15.095 0.000 0.000 -10.170 - 0.000 0.000 0.000 0.000 0.000 -15.092 -0.000 -0.000 - 0.000 0.000 -0.000 -10.182 0.000 -0.000 14.343 0.000 - 0.000 0.000 -0.000 0.000 -10.170 -0.000 0.000 14.352 - -0.000 -0.000 0.000 -0.000 -0.000 -10.185 -0.000 -0.000 - -0.000 -0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 - 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 - 0.001 0.001 -0.002 -0.000 0.000 0.000 -0.000 0.000 - -0.000 -0.000 0.000 0.000 0.000 0.000 0.000 -0.000 - -0.000 -0.000 0.001 -0.000 0.000 0.000 -0.000 0.000 - -0.000 -0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 - 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 - 0.002 0.002 -0.003 -0.000 0.000 0.000 -0.000 0.000 - -0.000 -0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 - -0.000 -0.000 0.001 -0.000 0.000 0.000 -0.000 0.000 - -0.000 -0.000 0.000 -0.000 0.000 0.000 -0.001 -0.000 - -0.000 -0.000 0.000 -0.000 0.000 -0.000 0.000 -0.000 - 0.000 0.000 -0.000 -0.004 -0.000 0.000 -0.001 0.000 - 0.000 0.000 -0.000 0.000 -0.003 -0.000 -0.000 0.002 - 0.000 -0.000 0.000 0.000 -0.000 -0.004 -0.000 0.000 - -0.000 -0.000 0.000 0.000 0.001 0.000 -0.000 0.000 - -0.000 -0.000 0.000 -0.000 0.000 0.002 0.000 -0.000 - total augmentation occupancy for first ion, spin component: 1 - 99.947 ******* 0.588 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.192 0.000 0.250 0.000 0.000 -******* 102.736 -0.592 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.235 0.000 -0.260 0.000 -0.000 - 0.588 -0.592 0.003 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.008 0.000 0.002 0.000 0.000 - 0.000 0.000 0.000 2.031 0.000 0.000 0.029 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.000 2.036 0.000 0.000 0.034 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.000 0.000 2.031 0.000 0.000 0.028 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.029 -0.000 0.000 0.015 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.000 0.034 0.000 0.000 0.018 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.000 0.000 0.028 0.000 0.000 0.014 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 3.829 0.000 0.000 -0.000 0.000 -1.514 0.000 - 0.000 -0.000 -0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 4.273 0.000 0.000 0.000 0.000 -1.695 - -1.192 1.235 -0.008 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 3.492 0.000 0.024 0.000 -0.000 - 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.000 0.000 0.000 4.118 0.000 -0.000 0.000 - 0.250 -0.260 0.002 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.024 0.000 3.339 0.000 -0.000 - 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.514 0.000 0.000 -0.000 0.000 0.657 0.000 - 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.695 -0.000 0.000 0.000 0.000 0.735 - 0.498 -0.524 0.003 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.540 0.000 -0.012 0.000 0.000 - 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.636 0.000 0.000 0.000 - -0.105 0.112 -0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.012 0.000 -1.462 0.000 0.000 - 0.000 0.000 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.002 -0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.000 -0.005 0.000 0.000 -0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.000 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - 0.000 0.000 0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 - - ------------------------- aborting loop because EDIFF is reached ---------------------------------------- - - - CHARGE: cpu time 0.2175: real time 0.2179 - FORLOC: cpu time 0.0005: real time 0.0005 - FORNL : cpu time 0.5624: real time 0.5636 - STRESS: cpu time 4.6134: real time 4.6282 - FORCOR: cpu time 0.0057: real time 0.0064 - FORHAR: cpu time 0.0014: real time 0.0014 - MIXING: cpu time 0.0007: real time 0.0007 - OFIELD: cpu time 0.0000: real time 0.0000 - - FORCE on cell =-STRESS in cart. coord. units (eV): - Direction XX YY ZZ XY YZ ZX - -------------------------------------------------------------------------------------- - Alpha Z 131.43309 131.43309 131.43309 - Ewald -692.66714 -666.25642 -600.92887 0.00000 -0.00000 0.00000 - Hartree 135.39867 151.55448 193.64184 -0.00000 -0.00000 -0.00000 - E(xc) -140.07087 -140.06544 -140.05539 -0.00000 0.00000 0.00000 - Local 156.14173 113.44933 3.98511 0.00000 0.00000 0.00000 - n-local -184.49986 -184.69575 -185.00090 -0.90955 -1.02411 -0.99577 - augment 2.00968 1.96706 1.78410 0.00000 -0.00000 -0.00000 - Kinetic 586.69353 589.41039 597.73423 1.78901 -0.65923 -0.20796 - Fock 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 - ------------------------------------------------------------------------------------- - Total -5.56117 -3.20326 2.59322 0.00000 -0.00000 0.00000 - in kB -214.84834 -123.75353 100.18546 0.00000 -0.00000 0.00000 - external pressure = -79.47 kB Pullay stress = 0.00 kB - - - VOLUME and BASIS-vectors are now : - ----------------------------------------------------------------------------- - energy-cutoff : 600.00 - volume of cell : 41.47 - direct lattice vectors reciprocal lattice vectors - 3.669611000 0.000000000 0.000000000 0.272508448 0.000000000 0.000000000 - 0.000000000 3.557440000 0.000000000 0.000000000 0.281101016 0.000000000 - 0.000000000 0.000000000 3.176781000 0.000000000 0.000000000 0.314784053 - - length of vectors - 3.669611000 3.557440000 3.176781000 0.272508448 0.281101016 0.314784053 - - - FORCES acting on ions - electron-ion (+dipol) ewald-force non-local-force convergence-correction - ----------------------------------------------------------------------------------------------- - -.118E-13 -.390E-14 0.138E-13 -.976E-14 -.123E-13 0.429E-14 -.148E-21 -.385E-22 0.214E-22 0.190E-13 0.402E-13 -.748E-13 - -.203E-14 0.118E-12 -.610E-14 -.126E-14 0.943E-14 -.634E-15 0.135E-24 -.989E-23 -.124E-22 0.125E-13 -.691E-14 0.178E-13 - 0.122E-12 -.521E-14 -.592E-12 0.654E-14 0.177E-15 -.121E-15 0.864E-23 0.363E-22 -.325E-24 -.105E-13 0.354E-14 0.142E-13 - 0.123E-12 -.343E-12 -.754E-12 0.496E-14 0.107E-14 0.499E-15 0.583E-22 -.440E-22 0.929E-22 -.164E-13 -.623E-14 -.585E-14 - ----------------------------------------------------------------------------------------------- - 0.231E-12 -.235E-12 -.134E-11 0.483E-15 -.166E-14 0.404E-14 -.808E-22 -.560E-22 0.102E-21 0.463E-14 0.306E-13 -.486E-13 - - - POSITION TOTAL-FORCE (eV/Angst) - ----------------------------------------------------------------------------------- - 0.00000 0.00000 0.00000 0.000000 -0.000000 -0.000000 - 0.00000 1.77872 1.58839 0.000000 -0.000000 -0.000000 - 1.83481 0.00000 1.58839 -0.000000 -0.000000 0.000000 - 1.83481 1.77872 0.00000 0.000000 0.000000 0.000000 - ----------------------------------------------------------------------------------- - total drift: 0.000000 -0.000000 -0.000000 - - --------------------------------------------------------------------------------------------------------- - - - - FREE ENERGIE OF THE ION-ELECTRON SYSTEM (eV) - --------------------------------------------------- - free energy TOTEN = -48.07109596 eV - - energy without entropy= -48.06804610 energy(sigma->0) = -48.06957103 - - SIGMA = 0.10000000 - - - --------------------------------------------------------------------------------------------------------- - - - POTLOK: cpu time 0.0095: real time 0.0103 - - --------------------------------------------------------------------------------------------------------- - - - writing wavefunctions - LOOP+: cpu time 80.5972: real time 81.1155 - 4ORBIT: cpu time 0.0000: real time 0.0000 - - total amount of memory used by VASP MPI-rank0 355020. kBytes -======================================================================= - - base : 30000. kBytes - nonl-proj : 299130. kBytes - fftplans : 441. kBytes - grid : 1138. kBytes - one-center: 129. kBytes - wavefun : 24182. kBytes - - - - General timing and accounting informations for this job: - ======================================================== - - Total CPU time used (sec): 84.193 - User time (sec): 82.086 - System time (sec): 2.107 - Elapsed time (sec): 85.614 - - Maximum memory used (kb): 339860. - Average memory used (kb): 0. - - Minor page faults: 520341 - Major page faults: 0 - Voluntary context switches: 1787 diff --git a/examples/COUPLE/lammps_vasp/README b/examples/COUPLE/lammps_vasp/README index ab347be568..91a85975e6 100644 --- a/examples/COUPLE/lammps_vasp/README +++ b/examples/COUPLE/lammps_vasp/README @@ -36,9 +36,11 @@ You can leave off the -z if you do not have ZMQ on your system. Prepare to use VASP and the vasp_wrapper.py script -You can run the vasp_wrap.py script as-is to test that the -coupling between it and LAMMPS is functional. But the as-is -version will not attempt to run VASP. +You can run the vasp_wrap.py script as-is to test that the coupling +between it and LAMMPS is functional. This will use the included +vasprun.xml file output by a previous VASP run. + +But the as-is version of vasp_wrap.py will not attempt to run VASP. To do this, you must edit the 1st vaspcmd line at the top of vasp_wrapper.py to be the launch command needed to run VASP on your @@ -63,6 +65,8 @@ Note that the POSCAR_template file should be matched to the LAMMPS input script (# of atoms and atom types, box size, etc). The provided POSCAR_W matches in.client.W. +Once you run VASP yourself, the vasprun.xml file will be overwritten. + NOTE: explain how vasp_wrapper.py finds the cslib.py wrapper on the CSlib to import. diff --git a/examples/COUPLE/lammps_vasp/vasprun.xml b/examples/COUPLE/lammps_vasp/vasprun.xml new file mode 100644 index 0000000000..0f15c871b4 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/vasprun.xml @@ -0,0 +1,12329 @@ + + + + vasp + 5.4.4.18Apr17-6-g9f103f2a35 + (build Aug 01 2017 10:32:50) complex parallel + LinuxIFC + 2017 12 19 + 15:22:45 + + + 0 + normal normal or accurate (medium, h + 48 + F + 1 + 2 + 1 + 100 + -5 + 2 + -1 + 0 + 0.00000100 + 0.00100000 + 0 + 2 + 10 + 1 + 1 + 600.00000000 + 600.00000000 + 0.50000000 + 3500.00000000 + 3500.00000000 + -3.00000000 + 10.00000000 + -10.00000000 + 0.00000000 + 0 + 0.10000000 + 2 + 0.00000000 + T + T + F + F + F + -1 0 0 0 + 100 + -- GGA type + F + F + 0 + 1.00000000 + + + + + 3.66961100 0.00000000 0.00000000 + 0.00000000 3.55744000 0.00000000 + 0.00000000 0.00000000 3.17678100 + + 41.47103646 + + 0.27250845 0.00000000 0.00000000 + 0.00000000 0.28110102 0.00000000 + 0.00000000 0.00000000 0.31478405 + + + + 0.00000000 0.00000000 0.00000000 + 0.00000000 -0.50000000 -0.50000000 + -0.50000000 0.00000000 -0.50000000 + -0.50000000 -0.50000000 0.00000000 + + + + 1 + 2 + 3 + 4 + + + + 15 15 15 + 0.00000000 0.00000000 0.00000000 + 0.06666667 0.00000000 0.00000000 + 0.00000000 0.06666667 0.00000000 + 0.00000000 0.00000000 0.06666667 + 0.00000000 0.00000000 0.00000000 + + + 0.00000000 0.00000000 0.00000000 + 0.06666667 0.00000000 0.00000000 + 0.13333333 0.00000000 0.00000000 + 0.20000000 0.00000000 0.00000000 + 0.26666667 0.00000000 0.00000000 + 0.33333333 0.00000000 0.00000000 + 0.40000000 0.00000000 0.00000000 + 0.46666667 0.00000000 0.00000000 + 0.00000000 0.06666667 0.00000000 + 0.06666667 0.06666667 0.00000000 + 0.13333333 0.06666667 0.00000000 + 0.20000000 0.06666667 0.00000000 + 0.26666667 0.06666667 0.00000000 + 0.33333333 0.06666667 0.00000000 + 0.40000000 0.06666667 0.00000000 + 0.46666667 0.06666667 0.00000000 + 0.00000000 0.13333333 0.00000000 + 0.06666667 0.13333333 0.00000000 + 0.13333333 0.13333333 0.00000000 + 0.20000000 0.13333333 0.00000000 + 0.26666667 0.13333333 0.00000000 + 0.33333333 0.13333333 0.00000000 + 0.40000000 0.13333333 0.00000000 + 0.46666667 0.13333333 0.00000000 + 0.00000000 0.20000000 0.00000000 + 0.06666667 0.20000000 0.00000000 + 0.13333333 0.20000000 0.00000000 + 0.20000000 0.20000000 0.00000000 + 0.26666667 0.20000000 0.00000000 + 0.33333333 0.20000000 0.00000000 + 0.40000000 0.20000000 0.00000000 + 0.46666667 0.20000000 0.00000000 + 0.00000000 0.26666667 0.00000000 + 0.06666667 0.26666667 0.00000000 + 0.13333333 0.26666667 0.00000000 + 0.20000000 0.26666667 0.00000000 + 0.26666667 0.26666667 0.00000000 + 0.33333333 0.26666667 0.00000000 + 0.40000000 0.26666667 0.00000000 + 0.46666667 0.26666667 0.00000000 + 0.00000000 0.33333333 0.00000000 + 0.06666667 0.33333333 0.00000000 + 0.13333333 0.33333333 0.00000000 + 0.20000000 0.33333333 0.00000000 + 0.26666667 0.33333333 0.00000000 + 0.33333333 0.33333333 0.00000000 + 0.40000000 0.33333333 0.00000000 + 0.46666667 0.33333333 0.00000000 + 0.00000000 0.40000000 0.00000000 + 0.06666667 0.40000000 0.00000000 + 0.13333333 0.40000000 0.00000000 + 0.20000000 0.40000000 0.00000000 + 0.26666667 0.40000000 0.00000000 + 0.33333333 0.40000000 0.00000000 + 0.40000000 0.40000000 0.00000000 + 0.46666667 0.40000000 0.00000000 + 0.00000000 0.46666667 0.00000000 + 0.06666667 0.46666667 0.00000000 + 0.13333333 0.46666667 0.00000000 + 0.20000000 0.46666667 0.00000000 + 0.26666667 0.46666667 0.00000000 + 0.33333333 0.46666667 0.00000000 + 0.40000000 0.46666667 0.00000000 + 0.46666667 0.46666667 0.00000000 + 0.00000000 0.00000000 0.06666667 + 0.06666667 0.00000000 0.06666667 + 0.13333333 0.00000000 0.06666667 + 0.20000000 0.00000000 0.06666667 + 0.26666667 0.00000000 0.06666667 + 0.33333333 0.00000000 0.06666667 + 0.40000000 0.00000000 0.06666667 + 0.46666667 0.00000000 0.06666667 + 0.00000000 0.06666667 0.06666667 + 0.06666667 0.06666667 0.06666667 + 0.13333333 0.06666667 0.06666667 + 0.20000000 0.06666667 0.06666667 + 0.26666667 0.06666667 0.06666667 + 0.33333333 0.06666667 0.06666667 + 0.40000000 0.06666667 0.06666667 + 0.46666667 0.06666667 0.06666667 + 0.00000000 0.13333333 0.06666667 + 0.06666667 0.13333333 0.06666667 + 0.13333333 0.13333333 0.06666667 + 0.20000000 0.13333333 0.06666667 + 0.26666667 0.13333333 0.06666667 + 0.33333333 0.13333333 0.06666667 + 0.40000000 0.13333333 0.06666667 + 0.46666667 0.13333333 0.06666667 + 0.00000000 0.20000000 0.06666667 + 0.06666667 0.20000000 0.06666667 + 0.13333333 0.20000000 0.06666667 + 0.20000000 0.20000000 0.06666667 + 0.26666667 0.20000000 0.06666667 + 0.33333333 0.20000000 0.06666667 + 0.40000000 0.20000000 0.06666667 + 0.46666667 0.20000000 0.06666667 + 0.00000000 0.26666667 0.06666667 + 0.06666667 0.26666667 0.06666667 + 0.13333333 0.26666667 0.06666667 + 0.20000000 0.26666667 0.06666667 + 0.26666667 0.26666667 0.06666667 + 0.33333333 0.26666667 0.06666667 + 0.40000000 0.26666667 0.06666667 + 0.46666667 0.26666667 0.06666667 + 0.00000000 0.33333333 0.06666667 + 0.06666667 0.33333333 0.06666667 + 0.13333333 0.33333333 0.06666667 + 0.20000000 0.33333333 0.06666667 + 0.26666667 0.33333333 0.06666667 + 0.33333333 0.33333333 0.06666667 + 0.40000000 0.33333333 0.06666667 + 0.46666667 0.33333333 0.06666667 + 0.00000000 0.40000000 0.06666667 + 0.06666667 0.40000000 0.06666667 + 0.13333333 0.40000000 0.06666667 + 0.20000000 0.40000000 0.06666667 + 0.26666667 0.40000000 0.06666667 + 0.33333333 0.40000000 0.06666667 + 0.40000000 0.40000000 0.06666667 + 0.46666667 0.40000000 0.06666667 + 0.00000000 0.46666667 0.06666667 + 0.06666667 0.46666667 0.06666667 + 0.13333333 0.46666667 0.06666667 + 0.20000000 0.46666667 0.06666667 + 0.26666667 0.46666667 0.06666667 + 0.33333333 0.46666667 0.06666667 + 0.40000000 0.46666667 0.06666667 + 0.46666667 0.46666667 0.06666667 + 0.00000000 0.00000000 0.13333333 + 0.06666667 0.00000000 0.13333333 + 0.13333333 0.00000000 0.13333333 + 0.20000000 0.00000000 0.13333333 + 0.26666667 0.00000000 0.13333333 + 0.33333333 0.00000000 0.13333333 + 0.40000000 0.00000000 0.13333333 + 0.46666667 0.00000000 0.13333333 + 0.00000000 0.06666667 0.13333333 + 0.06666667 0.06666667 0.13333333 + 0.13333333 0.06666667 0.13333333 + 0.20000000 0.06666667 0.13333333 + 0.26666667 0.06666667 0.13333333 + 0.33333333 0.06666667 0.13333333 + 0.40000000 0.06666667 0.13333333 + 0.46666667 0.06666667 0.13333333 + 0.00000000 0.13333333 0.13333333 + 0.06666667 0.13333333 0.13333333 + 0.13333333 0.13333333 0.13333333 + 0.20000000 0.13333333 0.13333333 + 0.26666667 0.13333333 0.13333333 + 0.33333333 0.13333333 0.13333333 + 0.40000000 0.13333333 0.13333333 + 0.46666667 0.13333333 0.13333333 + 0.00000000 0.20000000 0.13333333 + 0.06666667 0.20000000 0.13333333 + 0.13333333 0.20000000 0.13333333 + 0.20000000 0.20000000 0.13333333 + 0.26666667 0.20000000 0.13333333 + 0.33333333 0.20000000 0.13333333 + 0.40000000 0.20000000 0.13333333 + 0.46666667 0.20000000 0.13333333 + 0.00000000 0.26666667 0.13333333 + 0.06666667 0.26666667 0.13333333 + 0.13333333 0.26666667 0.13333333 + 0.20000000 0.26666667 0.13333333 + 0.26666667 0.26666667 0.13333333 + 0.33333333 0.26666667 0.13333333 + 0.40000000 0.26666667 0.13333333 + 0.46666667 0.26666667 0.13333333 + 0.00000000 0.33333333 0.13333333 + 0.06666667 0.33333333 0.13333333 + 0.13333333 0.33333333 0.13333333 + 0.20000000 0.33333333 0.13333333 + 0.26666667 0.33333333 0.13333333 + 0.33333333 0.33333333 0.13333333 + 0.40000000 0.33333333 0.13333333 + 0.46666667 0.33333333 0.13333333 + 0.00000000 0.40000000 0.13333333 + 0.06666667 0.40000000 0.13333333 + 0.13333333 0.40000000 0.13333333 + 0.20000000 0.40000000 0.13333333 + 0.26666667 0.40000000 0.13333333 + 0.33333333 0.40000000 0.13333333 + 0.40000000 0.40000000 0.13333333 + 0.46666667 0.40000000 0.13333333 + 0.00000000 0.46666667 0.13333333 + 0.06666667 0.46666667 0.13333333 + 0.13333333 0.46666667 0.13333333 + 0.20000000 0.46666667 0.13333333 + 0.26666667 0.46666667 0.13333333 + 0.33333333 0.46666667 0.13333333 + 0.40000000 0.46666667 0.13333333 + 0.46666667 0.46666667 0.13333333 + 0.00000000 0.00000000 0.20000000 + 0.06666667 0.00000000 0.20000000 + 0.13333333 0.00000000 0.20000000 + 0.20000000 0.00000000 0.20000000 + 0.26666667 0.00000000 0.20000000 + 0.33333333 0.00000000 0.20000000 + 0.40000000 0.00000000 0.20000000 + 0.46666667 0.00000000 0.20000000 + 0.00000000 0.06666667 0.20000000 + 0.06666667 0.06666667 0.20000000 + 0.13333333 0.06666667 0.20000000 + 0.20000000 0.06666667 0.20000000 + 0.26666667 0.06666667 0.20000000 + 0.33333333 0.06666667 0.20000000 + 0.40000000 0.06666667 0.20000000 + 0.46666667 0.06666667 0.20000000 + 0.00000000 0.13333333 0.20000000 + 0.06666667 0.13333333 0.20000000 + 0.13333333 0.13333333 0.20000000 + 0.20000000 0.13333333 0.20000000 + 0.26666667 0.13333333 0.20000000 + 0.33333333 0.13333333 0.20000000 + 0.40000000 0.13333333 0.20000000 + 0.46666667 0.13333333 0.20000000 + 0.00000000 0.20000000 0.20000000 + 0.06666667 0.20000000 0.20000000 + 0.13333333 0.20000000 0.20000000 + 0.20000000 0.20000000 0.20000000 + 0.26666667 0.20000000 0.20000000 + 0.33333333 0.20000000 0.20000000 + 0.40000000 0.20000000 0.20000000 + 0.46666667 0.20000000 0.20000000 + 0.00000000 0.26666667 0.20000000 + 0.06666667 0.26666667 0.20000000 + 0.13333333 0.26666667 0.20000000 + 0.20000000 0.26666667 0.20000000 + 0.26666667 0.26666667 0.20000000 + 0.33333333 0.26666667 0.20000000 + 0.40000000 0.26666667 0.20000000 + 0.46666667 0.26666667 0.20000000 + 0.00000000 0.33333333 0.20000000 + 0.06666667 0.33333333 0.20000000 + 0.13333333 0.33333333 0.20000000 + 0.20000000 0.33333333 0.20000000 + 0.26666667 0.33333333 0.20000000 + 0.33333333 0.33333333 0.20000000 + 0.40000000 0.33333333 0.20000000 + 0.46666667 0.33333333 0.20000000 + 0.00000000 0.40000000 0.20000000 + 0.06666667 0.40000000 0.20000000 + 0.13333333 0.40000000 0.20000000 + 0.20000000 0.40000000 0.20000000 + 0.26666667 0.40000000 0.20000000 + 0.33333333 0.40000000 0.20000000 + 0.40000000 0.40000000 0.20000000 + 0.46666667 0.40000000 0.20000000 + 0.00000000 0.46666667 0.20000000 + 0.06666667 0.46666667 0.20000000 + 0.13333333 0.46666667 0.20000000 + 0.20000000 0.46666667 0.20000000 + 0.26666667 0.46666667 0.20000000 + 0.33333333 0.46666667 0.20000000 + 0.40000000 0.46666667 0.20000000 + 0.46666667 0.46666667 0.20000000 + 0.00000000 0.00000000 0.26666667 + 0.06666667 0.00000000 0.26666667 + 0.13333333 0.00000000 0.26666667 + 0.20000000 0.00000000 0.26666667 + 0.26666667 0.00000000 0.26666667 + 0.33333333 0.00000000 0.26666667 + 0.40000000 0.00000000 0.26666667 + 0.46666667 0.00000000 0.26666667 + 0.00000000 0.06666667 0.26666667 + 0.06666667 0.06666667 0.26666667 + 0.13333333 0.06666667 0.26666667 + 0.20000000 0.06666667 0.26666667 + 0.26666667 0.06666667 0.26666667 + 0.33333333 0.06666667 0.26666667 + 0.40000000 0.06666667 0.26666667 + 0.46666667 0.06666667 0.26666667 + 0.00000000 0.13333333 0.26666667 + 0.06666667 0.13333333 0.26666667 + 0.13333333 0.13333333 0.26666667 + 0.20000000 0.13333333 0.26666667 + 0.26666667 0.13333333 0.26666667 + 0.33333333 0.13333333 0.26666667 + 0.40000000 0.13333333 0.26666667 + 0.46666667 0.13333333 0.26666667 + 0.00000000 0.20000000 0.26666667 + 0.06666667 0.20000000 0.26666667 + 0.13333333 0.20000000 0.26666667 + 0.20000000 0.20000000 0.26666667 + 0.26666667 0.20000000 0.26666667 + 0.33333333 0.20000000 0.26666667 + 0.40000000 0.20000000 0.26666667 + 0.46666667 0.20000000 0.26666667 + 0.00000000 0.26666667 0.26666667 + 0.06666667 0.26666667 0.26666667 + 0.13333333 0.26666667 0.26666667 + 0.20000000 0.26666667 0.26666667 + 0.26666667 0.26666667 0.26666667 + 0.33333333 0.26666667 0.26666667 + 0.40000000 0.26666667 0.26666667 + 0.46666667 0.26666667 0.26666667 + 0.00000000 0.33333333 0.26666667 + 0.06666667 0.33333333 0.26666667 + 0.13333333 0.33333333 0.26666667 + 0.20000000 0.33333333 0.26666667 + 0.26666667 0.33333333 0.26666667 + 0.33333333 0.33333333 0.26666667 + 0.40000000 0.33333333 0.26666667 + 0.46666667 0.33333333 0.26666667 + 0.00000000 0.40000000 0.26666667 + 0.06666667 0.40000000 0.26666667 + 0.13333333 0.40000000 0.26666667 + 0.20000000 0.40000000 0.26666667 + 0.26666667 0.40000000 0.26666667 + 0.33333333 0.40000000 0.26666667 + 0.40000000 0.40000000 0.26666667 + 0.46666667 0.40000000 0.26666667 + 0.00000000 0.46666667 0.26666667 + 0.06666667 0.46666667 0.26666667 + 0.13333333 0.46666667 0.26666667 + 0.20000000 0.46666667 0.26666667 + 0.26666667 0.46666667 0.26666667 + 0.33333333 0.46666667 0.26666667 + 0.40000000 0.46666667 0.26666667 + 0.46666667 0.46666667 0.26666667 + 0.00000000 0.00000000 0.33333333 + 0.06666667 0.00000000 0.33333333 + 0.13333333 0.00000000 0.33333333 + 0.20000000 0.00000000 0.33333333 + 0.26666667 0.00000000 0.33333333 + 0.33333333 0.00000000 0.33333333 + 0.40000000 0.00000000 0.33333333 + 0.46666667 0.00000000 0.33333333 + 0.00000000 0.06666667 0.33333333 + 0.06666667 0.06666667 0.33333333 + 0.13333333 0.06666667 0.33333333 + 0.20000000 0.06666667 0.33333333 + 0.26666667 0.06666667 0.33333333 + 0.33333333 0.06666667 0.33333333 + 0.40000000 0.06666667 0.33333333 + 0.46666667 0.06666667 0.33333333 + 0.00000000 0.13333333 0.33333333 + 0.06666667 0.13333333 0.33333333 + 0.13333333 0.13333333 0.33333333 + 0.20000000 0.13333333 0.33333333 + 0.26666667 0.13333333 0.33333333 + 0.33333333 0.13333333 0.33333333 + 0.40000000 0.13333333 0.33333333 + 0.46666667 0.13333333 0.33333333 + 0.00000000 0.20000000 0.33333333 + 0.06666667 0.20000000 0.33333333 + 0.13333333 0.20000000 0.33333333 + 0.20000000 0.20000000 0.33333333 + 0.26666667 0.20000000 0.33333333 + 0.33333333 0.20000000 0.33333333 + 0.40000000 0.20000000 0.33333333 + 0.46666667 0.20000000 0.33333333 + 0.00000000 0.26666667 0.33333333 + 0.06666667 0.26666667 0.33333333 + 0.13333333 0.26666667 0.33333333 + 0.20000000 0.26666667 0.33333333 + 0.26666667 0.26666667 0.33333333 + 0.33333333 0.26666667 0.33333333 + 0.40000000 0.26666667 0.33333333 + 0.46666667 0.26666667 0.33333333 + 0.00000000 0.33333333 0.33333333 + 0.06666667 0.33333333 0.33333333 + 0.13333333 0.33333333 0.33333333 + 0.20000000 0.33333333 0.33333333 + 0.26666667 0.33333333 0.33333333 + 0.33333333 0.33333333 0.33333333 + 0.40000000 0.33333333 0.33333333 + 0.46666667 0.33333333 0.33333333 + 0.00000000 0.40000000 0.33333333 + 0.06666667 0.40000000 0.33333333 + 0.13333333 0.40000000 0.33333333 + 0.20000000 0.40000000 0.33333333 + 0.26666667 0.40000000 0.33333333 + 0.33333333 0.40000000 0.33333333 + 0.40000000 0.40000000 0.33333333 + 0.46666667 0.40000000 0.33333333 + 0.00000000 0.46666667 0.33333333 + 0.06666667 0.46666667 0.33333333 + 0.13333333 0.46666667 0.33333333 + 0.20000000 0.46666667 0.33333333 + 0.26666667 0.46666667 0.33333333 + 0.33333333 0.46666667 0.33333333 + 0.40000000 0.46666667 0.33333333 + 0.46666667 0.46666667 0.33333333 + 0.00000000 0.00000000 0.40000000 + 0.06666667 0.00000000 0.40000000 + 0.13333333 0.00000000 0.40000000 + 0.20000000 0.00000000 0.40000000 + 0.26666667 0.00000000 0.40000000 + 0.33333333 0.00000000 0.40000000 + 0.40000000 0.00000000 0.40000000 + 0.46666667 0.00000000 0.40000000 + 0.00000000 0.06666667 0.40000000 + 0.06666667 0.06666667 0.40000000 + 0.13333333 0.06666667 0.40000000 + 0.20000000 0.06666667 0.40000000 + 0.26666667 0.06666667 0.40000000 + 0.33333333 0.06666667 0.40000000 + 0.40000000 0.06666667 0.40000000 + 0.46666667 0.06666667 0.40000000 + 0.00000000 0.13333333 0.40000000 + 0.06666667 0.13333333 0.40000000 + 0.13333333 0.13333333 0.40000000 + 0.20000000 0.13333333 0.40000000 + 0.26666667 0.13333333 0.40000000 + 0.33333333 0.13333333 0.40000000 + 0.40000000 0.13333333 0.40000000 + 0.46666667 0.13333333 0.40000000 + 0.00000000 0.20000000 0.40000000 + 0.06666667 0.20000000 0.40000000 + 0.13333333 0.20000000 0.40000000 + 0.20000000 0.20000000 0.40000000 + 0.26666667 0.20000000 0.40000000 + 0.33333333 0.20000000 0.40000000 + 0.40000000 0.20000000 0.40000000 + 0.46666667 0.20000000 0.40000000 + 0.00000000 0.26666667 0.40000000 + 0.06666667 0.26666667 0.40000000 + 0.13333333 0.26666667 0.40000000 + 0.20000000 0.26666667 0.40000000 + 0.26666667 0.26666667 0.40000000 + 0.33333333 0.26666667 0.40000000 + 0.40000000 0.26666667 0.40000000 + 0.46666667 0.26666667 0.40000000 + 0.00000000 0.33333333 0.40000000 + 0.06666667 0.33333333 0.40000000 + 0.13333333 0.33333333 0.40000000 + 0.20000000 0.33333333 0.40000000 + 0.26666667 0.33333333 0.40000000 + 0.33333333 0.33333333 0.40000000 + 0.40000000 0.33333333 0.40000000 + 0.46666667 0.33333333 0.40000000 + 0.00000000 0.40000000 0.40000000 + 0.06666667 0.40000000 0.40000000 + 0.13333333 0.40000000 0.40000000 + 0.20000000 0.40000000 0.40000000 + 0.26666667 0.40000000 0.40000000 + 0.33333333 0.40000000 0.40000000 + 0.40000000 0.40000000 0.40000000 + 0.46666667 0.40000000 0.40000000 + 0.00000000 0.46666667 0.40000000 + 0.06666667 0.46666667 0.40000000 + 0.13333333 0.46666667 0.40000000 + 0.20000000 0.46666667 0.40000000 + 0.26666667 0.46666667 0.40000000 + 0.33333333 0.46666667 0.40000000 + 0.40000000 0.46666667 0.40000000 + 0.46666667 0.46666667 0.40000000 + 0.00000000 0.00000000 0.46666667 + 0.06666667 0.00000000 0.46666667 + 0.13333333 0.00000000 0.46666667 + 0.20000000 0.00000000 0.46666667 + 0.26666667 0.00000000 0.46666667 + 0.33333333 0.00000000 0.46666667 + 0.40000000 0.00000000 0.46666667 + 0.46666667 0.00000000 0.46666667 + 0.00000000 0.06666667 0.46666667 + 0.06666667 0.06666667 0.46666667 + 0.13333333 0.06666667 0.46666667 + 0.20000000 0.06666667 0.46666667 + 0.26666667 0.06666667 0.46666667 + 0.33333333 0.06666667 0.46666667 + 0.40000000 0.06666667 0.46666667 + 0.46666667 0.06666667 0.46666667 + 0.00000000 0.13333333 0.46666667 + 0.06666667 0.13333333 0.46666667 + 0.13333333 0.13333333 0.46666667 + 0.20000000 0.13333333 0.46666667 + 0.26666667 0.13333333 0.46666667 + 0.33333333 0.13333333 0.46666667 + 0.40000000 0.13333333 0.46666667 + 0.46666667 0.13333333 0.46666667 + 0.00000000 0.20000000 0.46666667 + 0.06666667 0.20000000 0.46666667 + 0.13333333 0.20000000 0.46666667 + 0.20000000 0.20000000 0.46666667 + 0.26666667 0.20000000 0.46666667 + 0.33333333 0.20000000 0.46666667 + 0.40000000 0.20000000 0.46666667 + 0.46666667 0.20000000 0.46666667 + 0.00000000 0.26666667 0.46666667 + 0.06666667 0.26666667 0.46666667 + 0.13333333 0.26666667 0.46666667 + 0.20000000 0.26666667 0.46666667 + 0.26666667 0.26666667 0.46666667 + 0.33333333 0.26666667 0.46666667 + 0.40000000 0.26666667 0.46666667 + 0.46666667 0.26666667 0.46666667 + 0.00000000 0.33333333 0.46666667 + 0.06666667 0.33333333 0.46666667 + 0.13333333 0.33333333 0.46666667 + 0.20000000 0.33333333 0.46666667 + 0.26666667 0.33333333 0.46666667 + 0.33333333 0.33333333 0.46666667 + 0.40000000 0.33333333 0.46666667 + 0.46666667 0.33333333 0.46666667 + 0.00000000 0.40000000 0.46666667 + 0.06666667 0.40000000 0.46666667 + 0.13333333 0.40000000 0.46666667 + 0.20000000 0.40000000 0.46666667 + 0.26666667 0.40000000 0.46666667 + 0.33333333 0.40000000 0.46666667 + 0.40000000 0.40000000 0.46666667 + 0.46666667 0.40000000 0.46666667 + 0.00000000 0.46666667 0.46666667 + 0.06666667 0.46666667 0.46666667 + 0.13333333 0.46666667 0.46666667 + 0.20000000 0.46666667 0.46666667 + 0.26666667 0.46666667 0.46666667 + 0.33333333 0.46666667 0.46666667 + 0.40000000 0.46666667 0.46666667 + 0.46666667 0.46666667 0.46666667 + + + 0.00029630 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + + + + + unknown system + F + + + normal + 600.00000000 + 1293.44900000 + 0.00000100 + 48 + 10 + 18 + 26.00000000 + 0 + 0 + 0 + 0 + 0.00000000 + + 0 + 0.10000000 + 0.50000000 + T + + + F + 0.00000000 0.00000000 + -100 + 2 + F + + + 0 + 2 + 1 + + + 1 + F + 1.00000000 1.00000000 1.00000000 1.00000000 + -1.00000000 + F + 0.00000000 0.00000000 1.00000000 + F + 0.00000000 0.00000000 0.00000000 + F + + + F + F + + + 100 + -5 + 2 + 600.00000000 + + T + F + 0.00000000 + 0.00000001 + 0.30000000 + 4 + 0.40000000 + + + + 0.40000000 + 1.00000000 + 0.10000000 + 1.60000000 + 1.00000000 + + 4 + F + -45 + 100.00000000 + 1 + 1 + 5 + + + + F + F + 0 + 1.00000000 + -100.00000000 -100.00000000 -100.00000000 + 0.00000000 + + + + 24 + 24 + 20 + 48 + 48 + 40 + F + + + 0 + -1 + 0 + 2 + 0.00000000 + 0.00100000 + 0 + 0.50000000 + -3.00000000 + 1.00000000 + + + 3500.00000000 + 3500.00000000 + 1 + 1 + 256 + 16.00000000 + + + 2 + 0.00001000 + + + 0 + -1.00000000 -1.00000000 + 301 + 10.00000000 + -10.00000000 + 0.00000000 + + + 2 + T + F + T + F + F + F + F + F + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + + + 9 + 4 + -1 + T + T + F + F + F + F + + + 3 + 0 + F + 183.85000000 9.01300000 + 0.00000000 0.00000000 + 1.00000000 1.00000000 + T + + T + F + 0 + F + 0 + + -- + 0 + F + + F + F + F + F + F + -1.00000000 + 0 + 0 + 0.00000000 + 0.00000000 + 0.00000000 + 1.00000000 + 1.00000000 + 1.00000000 + 1.00000000 + 1 + 1 + 1 + F + F + F + 0 + 0 + F + 0.00000000 + 0.00000000 + 0 + + + F + -0.84910000 + 0.12340000 + 1.00000000 + 0.00000000 + + + 0 + 6.22065547 + 1.00000000 + + + F + F + F + F + 0 + 0.10000000 + -1.00000000 + 0.00200000 + -0.10000000 + 0.00000000 + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + + + F + 0.00000000 0.00000000 0.00000000 + T + F + F + F + T + 0 + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 + + + F + F + F + T + 0 + -1 0 0 0 + F + F + F + F + F + 2 + F + F + F + -2.00000000 + -2.00000000 + -1.00000000 + -1 + 0.00000000 + 0 + 0 + -1 + -1 + -1 + 100 + 1 + 3 + 0 + -30.00000000 + -30.00000000 + -200.00000000 + 140 + -0.10000000 + F + F + F + F + F + F + F + 1 + 1 + 1 + 2800 + 0 + 1 + -1 + 1.00000000 + + + 0.00000000 + 0.00000000 0.00000000 0.00000000 + 0.00000000 + 0.00000000 + 0.00000000 + + + + 4 + 2 + + ion + element + atomtype + + W 1 + Be 2 + Be 2 + Be 2 + + + + type + atomspertype + element + mass + valence + pseudopotential + + 1W 183.85000000 14.00000000 PAW_PBE W_sv_GW 23Mar2010 + 3Be 9.01300000 4.00000000 PAW_PBE Be_sv_GW 31Mar2010 + + + + + + + 3.66961100 0.00000000 0.00000000 + 0.00000000 3.55744000 0.00000000 + 0.00000000 0.00000000 3.17678100 + + 41.47103646 + + 0.27250845 0.00000000 0.00000000 + 0.00000000 0.28110102 0.00000000 + 0.00000000 0.00000000 0.31478405 + + + + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.50000000 0.50000000 + 0.50000000 0.00000000 0.50000000 + 0.50000000 0.50000000 0.00000000 + + + + + + + + + + 131.43308500 + -1959.85115532 + -527.41646070 + 35.33916255 + 1941.62980019 + -1939.43826086 + -0.00530052 + -1293.52360327 + 3036.59145287 + -575.24128006 + -575.23597954 + -575.23862980 + + + + + + + + + 102.38566418 + 102.39047960 + 102.38807189 + + + + + + + + + -28.97782713 + -28.97098459 + -28.97440586 + + + + + + + + + -49.69418359 + -49.68840810 + -49.69129585 + + + + + + + + + -51.91588940 + -51.91302415 + -51.91445678 + + + + + + + + + -48.35881744 + -48.35566410 + -48.35724077 + + + + + + + + + -48.54575148 + -48.54295784 + -48.54435466 + + + + + + + + + -48.07609882 + -48.07342458 + -48.07476170 + + + + + + + + + -48.12313644 + -48.12026988 + -48.12170316 + + + + + + + + + -48.09347519 + -48.09050147 + -48.09198833 + + + + + + + + + -48.07191482 + -48.06891772 + -48.07041627 + + + + + + + + + -48.07102791 + -48.06801376 + -48.06952083 + + + + + + + + + -48.07113736 + -48.06809293 + -48.06961515 + + + + + + + + + -48.07118539 + -48.06814100 + -48.06966319 + + + + + + + + + -48.07110546 + -48.06805494 + -48.06958020 + + + + + + + + + -48.07109869 + -48.06804980 + -48.06957425 + + + + + + + + + -48.07109883 + -48.06804872 + -48.06957377 + + + + + + + + + -48.07109628 + -48.06804655 + -48.06957141 + + + + + + + + + 131.43308500 + -1959.85115532 + -480.61520692 + 33.47431066 + 3204.45646866 + -3203.57677692 + -0.00304986 + -809.98022412 + 3036.59145287 + -48.07109596 + -48.06804610 + -48.06957103 + + + + + + 3.66961100 0.00000000 0.00000000 + 0.00000000 3.55744000 0.00000000 + 0.00000000 0.00000000 3.17678100 + + 41.47103646 + + 0.27250845 0.00000000 0.00000000 + 0.00000000 0.28110102 0.00000000 + 0.00000000 0.00000000 0.31478405 + + + + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.50000000 0.50000000 + 0.50000000 0.00000000 0.50000000 + 0.50000000 0.50000000 0.00000000 + + + + 0.1 -0.2 -0.3 + 0.4 -0.5 -0.6 + + + -214.84833704 0.00000000 0.00000000 + 0.00000000 -123.75352996 0.00000000 + 0.00000000 -0.00000000 100.18545515 + + + -48.07109596 + -48.06957103 + -0.00304986 + + + + + band + kpoint + spin + eigene + occ + + + + -91.8804 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7478 1.0000 + -30.0216 1.0000 + -29.9884 1.0000 + -29.8113 1.0000 + -2.0041 1.0000 + 4.4237 1.0000 + 4.8277 1.0000 + 6.4981 1.0000 + 6.9617 1.0000 + 8.1586 0.0000 + 8.8821 0.0000 + 8.9648 0.0000 + 9.0855 0.0000 + 13.1593 0.0000 + 14.6689 0.0000 + + + -91.8808 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7478 1.0000 + -30.0237 1.0000 + -29.9882 1.0000 + -29.8111 1.0000 + -1.9535 1.0000 + 4.3336 1.0000 + 4.8001 1.0000 + 6.5232 1.0000 + 6.7555 1.0000 + 8.3862 0.0000 + 8.4025 0.0000 + 8.9705 0.0000 + 9.5855 0.0000 + 13.3605 0.0000 + 14.6572 0.0000 + + + -91.8814 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7477 1.0000 + -30.0297 1.0000 + -29.9877 1.0000 + -29.8105 1.0000 + -1.8058 1.0000 + 4.0326 1.0000 + 4.7589 1.0000 + 6.3613 1.0000 + 6.6323 1.0000 + 7.8755 0.5410 + 8.8446 0.0000 + 8.9868 0.0000 + 10.1754 0.0000 + 14.0117 0.0000 + 14.7252 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7475 1.0000 + -30.0383 1.0000 + -29.9868 1.0000 + -29.8096 1.0000 + -1.5620 1.0000 + 3.5407 1.0000 + 4.7314 1.0000 + 5.9618 1.0000 + 6.8672 1.0000 + 7.4063 1.0000 + 9.0110 0.0000 + 9.3490 0.0000 + 10.7563 0.0000 + 14.0913 0.0000 + 15.1642 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7473 1.0000 + -30.0481 1.0000 + -29.9858 1.0000 + -29.8086 1.0000 + -1.2340 1.0000 + 2.9354 1.0000 + 4.7102 1.0000 + 5.6128 1.0000 + 7.0130 1.0000 + 7.2261 1.0000 + 9.0390 0.0000 + 9.8394 0.0000 + 11.3191 0.0000 + 14.0352 0.0000 + 15.4144 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7471 1.0000 + -30.0576 1.0000 + -29.9848 1.0000 + -29.8076 1.0000 + -0.8326 1.0000 + 2.2914 1.0000 + 4.6917 1.0000 + 5.3376 1.0000 + 6.7081 1.0000 + 7.6717 0.9986 + 9.0662 0.0000 + 10.2804 0.0000 + 11.8535 0.0000 + 13.4527 0.0000 + 14.9300 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7470 1.0000 + -30.0651 1.0000 + -29.9841 1.0000 + -29.8068 1.0000 + -0.3829 1.0000 + 1.6674 1.0000 + 4.6772 1.0000 + 5.1483 1.0000 + 6.5003 1.0000 + 8.1260 0.0003 + 9.0876 0.0000 + 10.6305 0.0000 + 12.3305 0.0000 + 12.9072 0.0000 + 15.1709 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7470 1.0000 + -30.0692 1.0000 + -29.9837 1.0000 + -29.8064 1.0000 + 0.0259 1.0000 + 1.1640 1.0000 + 4.6691 1.0000 + 5.0521 1.0000 + 6.3951 1.0000 + 8.4419 0.0000 + 9.0994 0.0000 + 10.8329 0.0000 + 12.5866 0.0000 + 12.7497 0.0000 + 15.0542 0.0000 + + + -91.8808 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7478 1.0000 + -30.0213 1.0000 + -29.9915 1.0000 + -29.8110 1.0000 + -1.9529 1.0000 + 4.3901 1.0000 + 4.7755 1.0000 + 6.3415 1.0000 + 6.9388 1.0000 + 8.3265 0.0000 + 8.4311 0.0000 + 8.8898 0.0000 + 9.6264 0.0000 + 13.5937 0.0000 + 14.7192 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7477 1.0000 + -30.0234 1.0000 + -29.9912 1.0000 + -29.8108 1.0000 + -1.9023 1.0000 + 4.3246 1.0000 + 4.7293 1.0000 + 6.2087 1.0000 + 6.9819 1.0000 + 8.2546 0.0000 + 8.4565 0.0000 + 8.8007 0.0000 + 9.9214 0.0000 + 13.6485 0.0000 + 14.6504 0.0000 + + + -91.8811 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7476 1.0000 + -30.0294 1.0000 + -29.9906 1.0000 + -29.8102 1.0000 + -1.7528 1.0000 + 4.0516 1.0000 + 4.6663 1.0000 + 5.9785 1.0000 + 7.0276 1.0000 + 7.8427 0.7144 + 8.7719 0.0000 + 8.8056 0.0000 + 10.4508 0.0000 + 14.3989 0.0000 + 15.1127 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7474 1.0000 + -30.0379 1.0000 + -29.9898 1.0000 + -29.8093 1.0000 + -1.5097 1.0000 + 3.5587 1.0000 + 4.6450 1.0000 + 5.7408 1.0000 + 7.1387 1.0000 + 7.4085 1.0000 + 8.7921 0.0000 + 9.2640 0.0000 + 11.0130 0.0000 + 14.0760 0.0000 + 15.2142 0.0000 + + + -91.8804 1.0000 + -91.4252 1.0000 + -91.2903 1.0000 + -65.7472 1.0000 + -30.0478 1.0000 + -29.9888 1.0000 + -29.8083 1.0000 + -1.1815 1.0000 + 2.9494 1.0000 + 4.6412 1.0000 + 5.4944 1.0000 + 7.0285 1.0000 + 7.3926 1.0000 + 8.8271 0.0000 + 9.7408 0.0000 + 11.5692 0.0000 + 13.8620 0.0000 + 14.8771 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7471 1.0000 + -30.0573 1.0000 + -29.9878 1.0000 + -29.8073 1.0000 + -0.7815 1.0000 + 2.3062 1.0000 + 4.6436 1.0000 + 5.2669 1.0000 + 6.7293 1.0000 + 7.7653 0.9516 + 8.8638 0.0000 + 10.1806 0.0000 + 12.1051 0.0000 + 13.3952 0.0000 + 14.8765 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7470 1.0000 + -30.0648 1.0000 + -29.9871 1.0000 + -29.8065 1.0000 + -0.3310 1.0000 + 1.6815 1.0000 + 4.6514 1.0000 + 5.0908 1.0000 + 6.5240 1.0000 + 8.1695 0.0000 + 8.8934 0.0000 + 10.5364 0.0000 + 12.5997 0.0000 + 12.8998 0.0000 + 15.5154 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2913 1.0000 + -65.7469 1.0000 + -30.0689 1.0000 + -29.9867 1.0000 + -29.8062 1.0000 + 0.0847 1.0000 + 1.1741 1.0000 + 4.6613 1.0000 + 4.9916 1.0000 + 6.4197 1.0000 + 8.4555 0.0000 + 8.9099 0.0000 + 10.7473 0.0000 + 12.4480 0.0000 + 12.9600 0.0000 + 14.8774 0.0000 + + + -91.8810 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7476 1.0000 + -30.0204 1.0000 + -29.9998 1.0000 + -29.8102 1.0000 + -1.7946 1.0000 + 4.2094 1.0000 + 4.6772 1.0000 + 5.9995 1.0000 + 6.9517 1.0000 + 7.8739 0.5498 + 8.7041 0.0000 + 8.9110 0.0000 + 10.2112 0.0000 + 14.2659 0.0000 + 14.8795 0.0000 + + + -91.8814 1.0000 + -91.4263 1.0000 + -91.2912 1.0000 + -65.7476 1.0000 + -30.0226 1.0000 + -29.9996 1.0000 + -29.8099 1.0000 + -1.7450 1.0000 + 4.2129 1.0000 + 4.5661 1.0000 + 5.8355 1.0000 + 7.1501 1.0000 + 7.8382 0.7357 + 8.7026 0.0000 + 8.7336 0.0000 + 10.4623 0.0000 + 13.8631 0.0000 + 14.8598 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7475 1.0000 + -30.0285 1.0000 + -29.9991 1.0000 + -29.8093 1.0000 + -1.5968 1.0000 + 4.0989 1.0000 + 4.3522 1.0000 + 5.6129 1.0000 + 7.4328 1.0000 + 7.6870 0.9972 + 8.4839 0.0000 + 8.7940 0.0000 + 10.9754 0.0000 + 14.1029 0.0000 + 15.2039 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7473 1.0000 + -30.0371 1.0000 + -29.9982 1.0000 + -29.8084 1.0000 + -1.3533 1.0000 + 3.5980 1.0000 + 4.3620 1.0000 + 5.4512 1.0000 + 7.3952 1.0000 + 7.5979 1.0000 + 8.3845 0.0000 + 9.0910 0.0000 + 11.5502 0.0000 + 14.7238 0.0000 + 15.9954 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7471 1.0000 + -30.0470 1.0000 + -29.9972 1.0000 + -29.8074 1.0000 + -1.0273 1.0000 + 2.9802 1.0000 + 4.4181 1.0000 + 5.2968 1.0000 + 7.0683 1.0000 + 7.7534 0.9663 + 8.3858 0.0000 + 9.5100 0.0000 + 12.1157 0.0000 + 13.7017 0.0000 + 16.0755 0.0000 + + + -91.8811 1.0000 + -91.4260 1.0000 + -91.2911 1.0000 + -65.7470 1.0000 + -30.0566 1.0000 + -29.9963 1.0000 + -29.8065 1.0000 + -0.6301 1.0000 + 2.3392 1.0000 + 4.4826 1.0000 + 5.1281 1.0000 + 6.7895 1.0000 + 7.9927 0.0600 + 8.4203 0.0000 + 9.9342 0.0000 + 12.6686 0.0000 + 14.6904 0.0000 + 16.3415 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7468 1.0000 + -30.0640 1.0000 + -29.9955 1.0000 + -29.8057 1.0000 + -0.1783 1.0000 + 1.7219 1.0000 + 4.5543 1.0000 + 4.9634 1.0000 + 6.5924 1.0000 + 8.2811 0.0000 + 8.4564 0.0000 + 10.2930 0.0000 + 12.6655 0.0000 + 13.2024 0.0000 + 15.4432 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7467 1.0000 + -30.0681 1.0000 + -29.9951 1.0000 + -29.8053 1.0000 + 0.2566 1.0000 + 1.2033 1.0000 + 4.6272 1.0000 + 4.8360 1.0000 + 6.4912 1.0000 + 8.4783 0.0000 + 8.4935 0.0000 + 10.5194 0.0000 + 12.2814 0.0000 + 13.6544 0.0000 + 14.8524 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7473 1.0000 + -30.0191 1.0000 + -30.0121 1.0000 + -29.8089 1.0000 + -1.5376 1.0000 + 3.7788 1.0000 + 4.6305 1.0000 + 5.6232 1.0000 + 7.1210 1.0000 + 7.3732 1.0000 + 8.9428 0.0000 + 9.1443 0.0000 + 10.7771 0.0000 + 14.0933 0.0000 + 15.6423 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7473 1.0000 + -30.0213 1.0000 + -30.0119 1.0000 + -29.8086 1.0000 + -1.4880 1.0000 + 3.7961 1.0000 + 4.5072 1.0000 + 5.5227 1.0000 + 7.3126 1.0000 + 7.3745 1.0000 + 8.7532 0.0000 + 9.0824 0.0000 + 11.0146 0.0000 + 13.9004 0.0000 + 15.4021 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7472 1.0000 + -30.0271 1.0000 + -30.0113 1.0000 + -29.8080 1.0000 + -1.3394 1.0000 + 3.8230 1.0000 + 4.1696 1.0000 + 5.3756 1.0000 + 7.3639 1.0000 + 7.6935 0.9963 + 8.3844 0.0000 + 8.9738 0.0000 + 11.5333 0.0000 + 14.0395 0.0000 + 15.4431 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7470 1.0000 + -30.0358 1.0000 + -30.0105 1.0000 + -29.8072 1.0000 + -1.1004 1.0000 + 3.5412 1.0000 + 4.0159 1.0000 + 5.2627 1.0000 + 7.2896 1.0000 + 7.9988 0.0504 + 8.0788 0.0028 + 9.0073 0.0000 + 12.1244 0.0000 + 13.7520 0.0000 + 16.7152 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7468 1.0000 + -30.0459 1.0000 + -30.0096 1.0000 + -29.8061 1.0000 + -0.7790 1.0000 + 2.9721 1.0000 + 4.1076 1.0000 + 5.1462 1.0000 + 7.1030 1.0000 + 7.9500 0.1708 + 8.1422 0.0001 + 9.2822 0.0000 + 12.7110 0.0000 + 13.3886 0.0000 + 15.6710 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7467 1.0000 + -30.0554 1.0000 + -30.0087 1.0000 + -29.8053 1.0000 + -0.3863 1.0000 + 2.3710 1.0000 + 4.2299 1.0000 + 5.0035 1.0000 + 6.8764 1.0000 + 7.9435 0.1954 + 8.2650 0.0000 + 9.6513 0.0000 + 12.8907 0.0000 + 13.2663 0.0000 + 15.5200 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7465 1.0000 + -30.0629 1.0000 + -30.0079 1.0000 + -29.8045 1.0000 + 0.0623 1.0000 + 1.7821 1.0000 + 4.3653 1.0000 + 4.8399 1.0000 + 6.6971 1.0000 + 7.9722 0.1031 + 8.4241 0.0000 + 9.9878 0.0000 + 12.3795 0.0000 + 13.7744 0.0000 + 15.4918 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7464 1.0000 + -30.0669 1.0000 + -30.0075 1.0000 + -29.8040 1.0000 + 0.5200 1.0000 + 1.2543 1.0000 + 4.5122 1.0000 + 4.6723 1.0000 + 6.6015 1.0000 + 7.9946 0.0570 + 8.5494 0.0000 + 10.2089 0.0000 + 12.0275 0.0000 + 14.4133 0.0000 + 15.6167 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2908 1.0000 + -65.7470 1.0000 + -30.0263 1.0000 + -30.0177 1.0000 + -29.8073 1.0000 + -1.1910 1.0000 + 3.1811 1.0000 + 4.6122 1.0000 + 5.2814 1.0000 + 6.9503 1.0000 + 7.4746 1.0000 + 8.9798 0.0000 + 9.5814 0.0000 + 11.3283 0.0000 + 13.6460 0.0000 + 15.5948 0.0000 + + + -91.8811 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7470 1.0000 + -30.0261 1.0000 + -30.0198 1.0000 + -29.8072 1.0000 + -1.1414 1.0000 + 3.1889 1.0000 + 4.5083 1.0000 + 5.2434 1.0000 + 6.9639 1.0000 + 7.6097 0.9999 + 8.7962 0.0000 + 9.4992 0.0000 + 11.5568 0.0000 + 13.6608 0.0000 + 15.2250 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7469 1.0000 + -30.0257 1.0000 + -30.0255 1.0000 + -29.8066 1.0000 + -0.9957 1.0000 + 3.1942 1.0000 + 4.2418 1.0000 + 5.1757 1.0000 + 7.0004 1.0000 + 7.9287 0.2579 + 8.4011 0.0000 + 9.3080 0.0000 + 12.0788 0.0000 + 13.5578 0.0000 + 15.2519 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7467 1.0000 + -30.0345 1.0000 + -30.0247 1.0000 + -29.8057 1.0000 + -0.7602 1.0000 + 3.1062 1.0000 + 3.9790 1.0000 + 5.1030 1.0000 + 7.0431 1.0000 + 7.9901 0.0646 + 8.2728 0.0000 + 9.1426 0.0000 + 12.6730 0.0000 + 13.3289 0.0000 + 15.7896 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7465 1.0000 + -30.0445 1.0000 + -30.0237 1.0000 + -29.8047 1.0000 + -0.4475 1.0000 + 2.8028 1.0000 + 3.9098 1.0000 + 5.0079 1.0000 + 7.0489 1.0000 + 7.6784 0.9981 + 8.4720 0.0000 + 9.1821 0.0000 + 12.9563 0.0000 + 13.5965 0.0000 + 17.2388 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7463 1.0000 + -30.0541 1.0000 + -30.0228 1.0000 + -29.8038 1.0000 + -0.0679 1.0000 + 2.3493 1.0000 + 3.9944 1.0000 + 4.8777 1.0000 + 6.9573 1.0000 + 7.5462 1.0000 + 8.5230 0.0000 + 9.4304 0.0000 + 12.4873 0.0000 + 13.6262 0.0000 + 16.0306 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2897 1.0000 + -65.7461 1.0000 + -30.0615 1.0000 + -30.0221 1.0000 + -29.8030 1.0000 + 0.3633 1.0000 + 1.8487 1.0000 + 4.1415 1.0000 + 4.7166 1.0000 + 6.8214 1.0000 + 7.5399 1.0000 + 8.5695 0.0000 + 9.7014 0.0000 + 12.0422 0.0000 + 13.9068 0.0000 + 16.1837 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7461 1.0000 + -30.0656 1.0000 + -30.0217 1.0000 + -29.8026 1.0000 + 0.8283 1.0000 + 1.3477 1.0000 + 4.3004 1.0000 + 4.5506 1.0000 + 6.7365 1.0000 + 7.5567 1.0000 + 8.6157 0.0000 + 9.8832 0.0000 + 11.7458 0.0000 + 14.0429 0.0000 + 16.0539 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7468 1.0000 + -30.0398 1.0000 + -30.0163 1.0000 + -29.8059 1.0000 + -0.7675 1.0000 + 2.5196 1.0000 + 4.5999 1.0000 + 5.0061 1.0000 + 6.6208 1.0000 + 7.9708 0.1066 + 9.0157 0.0000 + 9.9775 0.0000 + 11.8614 0.0000 + 13.1993 0.0000 + 15.3650 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7467 1.0000 + -30.0395 1.0000 + -30.0184 1.0000 + -29.8057 1.0000 + -0.7188 1.0000 + 2.5262 1.0000 + 4.5193 1.0000 + 4.9986 1.0000 + 6.6392 1.0000 + 8.0523 0.0083 + 8.8426 0.0000 + 9.8894 0.0000 + 12.0868 0.0000 + 13.1663 0.0000 + 16.1220 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7466 1.0000 + -30.0390 1.0000 + -30.0243 1.0000 + -29.8052 1.0000 + -0.5758 1.0000 + 2.5363 1.0000 + 4.3168 1.0000 + 4.9744 1.0000 + 6.6919 1.0000 + 8.2598 0.0000 + 8.4520 0.0000 + 9.6694 0.0000 + 12.6304 0.0000 + 13.0732 0.0000 + 15.6443 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7465 1.0000 + -30.0382 1.0000 + -30.0332 1.0000 + -29.8043 1.0000 + -0.3483 1.0000 + 2.5183 1.0000 + 4.0832 1.0000 + 4.9265 1.0000 + 6.7709 1.0000 + 8.0186 0.0274 + 8.5126 0.0000 + 9.4183 0.0000 + 12.8043 0.0000 + 13.1910 0.0000 + 15.7181 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7462 1.0000 + -30.0432 1.0000 + -30.0373 1.0000 + -29.8034 1.0000 + -0.0478 1.0000 + 2.4216 1.0000 + 3.9190 1.0000 + 4.8440 1.0000 + 6.8610 1.0000 + 7.6333 0.9998 + 8.7054 0.0000 + 9.2656 0.0000 + 12.4562 0.0000 + 13.6001 0.0000 + 16.2032 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7460 1.0000 + -30.0528 1.0000 + -30.0364 1.0000 + -29.8024 1.0000 + 0.3045 1.0000 + 2.2066 1.0000 + 3.8869 1.0000 + 4.7195 1.0000 + 6.9324 1.0000 + 7.3479 1.0000 + 8.7335 0.0000 + 9.3281 0.0000 + 12.0629 0.0000 + 13.7569 0.0000 + 16.5710 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7459 1.0000 + -30.0602 1.0000 + -30.0357 1.0000 + -29.8017 1.0000 + 0.6908 1.0000 + 1.8937 1.0000 + 3.9664 1.0000 + 4.5594 1.0000 + 6.9277 1.0000 + 7.2186 1.0000 + 8.6985 0.0000 + 9.4867 0.0000 + 11.7099 0.0000 + 13.7542 0.0000 + 16.7032 0.0000 + + + -91.8786 1.0000 + -91.4236 1.0000 + -91.2886 1.0000 + -65.7457 1.0000 + -30.0642 1.0000 + -30.0352 1.0000 + -29.8012 1.0000 + 1.0768 1.0000 + 1.5402 1.0000 + 4.0958 1.0000 + 4.3989 1.0000 + 6.8746 1.0000 + 7.2086 1.0000 + 8.6828 0.0000 + 9.6000 0.0000 + 11.4903 0.0000 + 13.7171 0.0000 + 16.6030 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7465 1.0000 + -30.0502 1.0000 + -30.0152 1.0000 + -29.8048 1.0000 + -0.2969 1.0000 + 1.8722 1.0000 + 4.5904 1.0000 + 4.8147 1.0000 + 6.3956 1.0000 + 8.5207 0.0000 + 9.0442 0.0000 + 10.2923 0.0000 + 12.3631 0.0000 + 12.6799 0.0000 + 15.4633 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7465 1.0000 + -30.0501 1.0000 + -30.0173 1.0000 + -29.8046 1.0000 + -0.2476 1.0000 + 1.8793 1.0000 + 4.5376 1.0000 + 4.8080 1.0000 + 6.4159 1.0000 + 8.5593 0.0000 + 8.8804 0.0000 + 10.2052 0.0000 + 12.5854 0.0000 + 12.5895 0.0000 + 14.7751 0.0000 + + + -91.8814 1.0000 + -91.4264 1.0000 + -91.2914 1.0000 + -65.7464 1.0000 + -30.0496 1.0000 + -30.0233 1.0000 + -29.8041 1.0000 + -0.1045 1.0000 + 1.8964 1.0000 + 4.3983 1.0000 + 4.7846 1.0000 + 6.4746 1.0000 + 8.5014 0.0000 + 8.6596 0.0000 + 9.9796 0.0000 + 12.4726 0.0000 + 13.1496 0.0000 + 15.1815 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7462 1.0000 + -30.0487 1.0000 + -30.0321 1.0000 + -29.8032 1.0000 + 0.1204 1.0000 + 1.9197 1.0000 + 4.2177 1.0000 + 4.7361 1.0000 + 6.5646 1.0000 + 8.0702 0.0040 + 8.7844 0.0000 + 9.6958 0.0000 + 12.2586 0.0000 + 13.7021 0.0000 + 15.4427 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7460 1.0000 + -30.0478 1.0000 + -30.0422 1.0000 + -29.8023 1.0000 + 0.4035 1.0000 + 1.9363 1.0000 + 4.0468 1.0000 + 4.6515 1.0000 + 6.6739 1.0000 + 7.6760 0.9983 + 8.8822 0.0000 + 9.4477 0.0000 + 11.9748 0.0000 + 13.8742 0.0000 + 16.0112 0.0000 + + + -91.8797 1.0000 + -91.4248 1.0000 + -91.2897 1.0000 + -65.7458 1.0000 + -30.0517 1.0000 + -30.0469 1.0000 + -29.8013 1.0000 + 0.7108 1.0000 + 1.9297 1.0000 + 3.9336 1.0000 + 4.5238 1.0000 + 6.7857 1.0000 + 7.3592 1.0000 + 8.8793 0.0000 + 9.3398 0.0000 + 11.6821 0.0000 + 13.7440 0.0000 + 16.5307 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7456 1.0000 + -30.0593 1.0000 + -30.0463 1.0000 + -29.8006 1.0000 + 0.9965 1.0000 + 1.8877 1.0000 + 3.9039 1.0000 + 4.3616 1.0000 + 6.8809 1.0000 + 7.1374 1.0000 + 8.7963 0.0000 + 9.3615 0.0000 + 11.4387 0.0000 + 13.5583 0.0000 + 16.9470 0.0000 + + + -91.8787 1.0000 + -91.4238 1.0000 + -91.2887 1.0000 + -65.7455 1.0000 + -30.0632 1.0000 + -30.0459 1.0000 + -29.8002 1.0000 + 1.1916 1.0000 + 1.8308 1.0000 + 3.9520 1.0000 + 4.2094 1.0000 + 6.9473 1.0000 + 7.0123 1.0000 + 8.7381 0.0000 + 9.3978 0.0000 + 11.2989 0.0000 + 13.4437 0.0000 + 16.5925 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7463 1.0000 + -30.0559 1.0000 + -30.0145 1.0000 + -29.8042 1.0000 + 0.1293 1.0000 + 1.3542 1.0000 + 4.5849 1.0000 + 4.7168 1.0000 + 6.2814 1.0000 + 8.9385 0.0000 + 9.0598 0.0000 + 10.4726 0.0000 + 12.1850 0.0000 + 12.8255 0.0000 + 15.1774 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7463 1.0000 + -30.0557 1.0000 + -30.0167 1.0000 + -29.8040 1.0000 + 0.1836 1.0000 + 1.3565 1.0000 + 4.5671 1.0000 + 4.6874 1.0000 + 6.3024 1.0000 + 8.9015 0.0000 + 8.9469 0.0000 + 10.3933 0.0000 + 12.1353 0.0000 + 13.0125 0.0000 + 15.3429 0.0000 + + + -91.8806 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7462 1.0000 + -30.0552 1.0000 + -30.0227 1.0000 + -29.8035 1.0000 + 0.3435 1.0000 + 1.3655 1.0000 + 4.4967 1.0000 + 4.6242 1.0000 + 6.3631 1.0000 + 8.5307 0.0000 + 8.9685 0.0000 + 10.1791 0.0000 + 12.0342 0.0000 + 13.5893 0.0000 + 16.0045 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7460 1.0000 + -30.0544 1.0000 + -30.0315 1.0000 + -29.8026 1.0000 + 0.5914 1.0000 + 1.3832 1.0000 + 4.3674 1.0000 + 4.5524 1.0000 + 6.4562 1.0000 + 8.1044 0.0009 + 8.9932 0.0000 + 9.8884 0.0000 + 11.8622 0.0000 + 14.2861 0.0000 + 15.0487 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7459 1.0000 + -30.0535 1.0000 + -30.0416 1.0000 + -29.8017 1.0000 + 0.8833 1.0000 + 1.4308 1.0000 + 4.2192 1.0000 + 4.4522 1.0000 + 6.5696 1.0000 + 7.7127 0.9919 + 9.0016 0.0000 + 9.5963 0.0000 + 11.6488 0.0000 + 14.0297 0.0000 + 15.9577 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7457 1.0000 + -30.0528 1.0000 + -30.0512 1.0000 + -29.8008 1.0000 + 1.1157 1.0000 + 1.5761 1.0000 + 4.0844 1.0000 + 4.3103 1.0000 + 6.6854 1.0000 + 7.3974 1.0000 + 8.9559 0.0000 + 9.3894 0.0000 + 11.4424 0.0000 + 13.7001 0.0000 + 16.5151 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7455 1.0000 + -30.0587 1.0000 + -30.0521 1.0000 + -29.8000 1.0000 + 1.2081 1.0000 + 1.8399 1.0000 + 3.9754 1.0000 + 4.1492 1.0000 + 6.7823 1.0000 + 7.1786 1.0000 + 8.8498 0.0000 + 9.3109 0.0000 + 11.2830 0.0000 + 13.4354 0.0000 + 16.6304 0.0000 + + + -91.8793 1.0000 + -91.4243 1.0000 + -91.2893 1.0000 + -65.7454 1.0000 + -30.0627 1.0000 + -30.0518 1.0000 + -29.7996 1.0000 + 1.2328 1.0000 + 2.0507 1.0000 + 3.8985 1.0000 + 4.0417 1.0000 + 6.8389 1.0000 + 7.0660 1.0000 + 8.7690 0.0000 + 9.2970 0.0000 + 11.2437 0.0000 + 14.1131 0.0000 + 18.0681 0.0000 + + + -91.8804 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7474 1.0000 + -30.0205 1.0000 + -29.9874 1.0000 + -29.8211 1.0000 + -1.9380 1.0000 + 4.4295 1.0000 + 4.8508 1.0000 + 6.3792 1.0000 + 6.8138 1.0000 + 8.1771 0.0000 + 8.8386 0.0000 + 8.9434 0.0000 + 9.0466 0.0000 + 13.4689 0.0000 + 14.8465 0.0000 + + + -91.8802 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7474 1.0000 + -30.0226 1.0000 + -29.9872 1.0000 + -29.8209 1.0000 + -1.8859 1.0000 + 4.3438 1.0000 + 4.8274 1.0000 + 6.3656 1.0000 + 6.6651 1.0000 + 8.2366 0.0000 + 8.4561 0.0000 + 9.1702 0.0000 + 9.3749 0.0000 + 14.6979 0.0000 + 15.1035 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7473 1.0000 + -30.0286 1.0000 + -29.9866 1.0000 + -29.8203 1.0000 + -1.7375 1.0000 + 4.0528 1.0000 + 4.7878 1.0000 + 6.3364 1.0000 + 6.3830 1.0000 + 8.0619 0.0057 + 8.3336 0.0000 + 9.5014 0.0000 + 9.9115 0.0000 + 14.1815 0.0000 + 14.9183 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7471 1.0000 + -30.0372 1.0000 + -29.9857 1.0000 + -29.8195 1.0000 + -1.4939 1.0000 + 3.5647 1.0000 + 4.7595 1.0000 + 5.9723 1.0000 + 6.4743 1.0000 + 7.7497 0.9700 + 8.4147 0.0000 + 9.9423 0.0000 + 10.4794 0.0000 + 14.3282 0.0000 + 15.0758 0.0000 + + + -91.8796 1.0000 + -91.4244 1.0000 + -91.2894 1.0000 + -65.7469 1.0000 + -30.0470 1.0000 + -29.9846 1.0000 + -29.8185 1.0000 + -1.1660 1.0000 + 2.9634 1.0000 + 4.7389 1.0000 + 5.6413 1.0000 + 6.5416 1.0000 + 7.6483 0.9995 + 8.4831 0.0000 + 10.4090 0.0000 + 11.0447 0.0000 + 15.0305 0.0000 + 15.6832 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7468 1.0000 + -30.0566 1.0000 + -29.9837 1.0000 + -29.8176 1.0000 + -0.7654 1.0000 + 2.3210 1.0000 + 4.7218 1.0000 + 5.3752 1.0000 + 6.4754 1.0000 + 7.8474 0.6915 + 8.5405 0.0000 + 10.8486 0.0000 + 11.5771 0.0000 + 13.5613 0.0000 + 15.1290 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7467 1.0000 + -30.0642 1.0000 + -29.9830 1.0000 + -29.8168 1.0000 + -0.3160 1.0000 + 1.6951 1.0000 + 4.7092 1.0000 + 5.1905 1.0000 + 6.3590 1.0000 + 8.1987 0.0000 + 8.5831 0.0000 + 11.2134 0.0000 + 12.0304 0.0000 + 12.9684 0.0000 + 14.5851 0.0000 + + + -91.8817 1.0000 + -91.4266 1.0000 + -91.2917 1.0000 + -65.7467 1.0000 + -30.0683 1.0000 + -29.9826 1.0000 + -29.8165 1.0000 + 0.1015 1.0000 + 1.1853 1.0000 + 4.7026 1.0000 + 5.0962 1.0000 + 6.2848 1.0000 + 8.4738 0.0000 + 8.6059 0.0000 + 11.4369 0.0000 + 12.3087 0.0000 + 12.6173 0.0000 + 14.4394 0.0000 + + + -91.8803 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7474 1.0000 + -30.0202 1.0000 + -29.9904 1.0000 + -29.8208 1.0000 + -1.8853 1.0000 + 4.3956 1.0000 + 4.8088 1.0000 + 6.2602 1.0000 + 6.7341 1.0000 + 8.1965 0.0000 + 8.5252 0.0000 + 9.0697 0.0000 + 9.4119 0.0000 + 13.8616 0.0000 + 15.2576 0.0000 + + + -91.8804 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7473 1.0000 + -30.0223 1.0000 + -29.9901 1.0000 + -29.8206 1.0000 + -1.8347 1.0000 + 4.3325 1.0000 + 4.7685 1.0000 + 6.1044 1.0000 + 6.8162 1.0000 + 7.9710 0.1061 + 8.7574 0.0000 + 8.9151 0.0000 + 9.6966 0.0000 + 13.8495 0.0000 + 14.8611 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7473 1.0000 + -30.0283 1.0000 + -29.9896 1.0000 + -29.8200 1.0000 + -1.6854 1.0000 + 4.0715 1.0000 + 4.7055 1.0000 + 5.8924 1.0000 + 6.8149 1.0000 + 7.7859 0.9146 + 8.5439 0.0000 + 9.2979 0.0000 + 10.1790 0.0000 + 14.4429 0.0000 + 14.9450 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7471 1.0000 + -30.0369 1.0000 + -29.9887 1.0000 + -29.8192 1.0000 + -1.4415 1.0000 + 3.5859 1.0000 + 4.6793 1.0000 + 5.7131 1.0000 + 6.7163 1.0000 + 7.7038 0.9943 + 8.3889 0.0000 + 9.7722 0.0000 + 10.7211 0.0000 + 14.3964 0.0000 + 15.0087 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7469 1.0000 + -30.0468 1.0000 + -29.9877 1.0000 + -29.8182 1.0000 + -1.1142 1.0000 + 2.9798 1.0000 + 4.6736 1.0000 + 5.5108 1.0000 + 6.6199 1.0000 + 7.7221 0.9885 + 8.3636 0.0000 + 10.2499 0.0000 + 11.2691 0.0000 + 14.1095 0.0000 + 16.1309 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7467 1.0000 + -30.0564 1.0000 + -29.9867 1.0000 + -29.8173 1.0000 + -0.7140 1.0000 + 2.3366 1.0000 + 4.6761 1.0000 + 5.3013 1.0000 + 6.5008 1.0000 + 7.9230 0.2850 + 8.3953 0.0000 + 10.6940 0.0000 + 11.7823 0.0000 + 13.5487 0.0000 + 15.0697 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7466 1.0000 + -30.0639 1.0000 + -29.9860 1.0000 + -29.8166 1.0000 + -0.2628 1.0000 + 1.7117 1.0000 + 4.6852 1.0000 + 5.1307 1.0000 + 6.3817 1.0000 + 8.2332 0.0000 + 8.4366 0.0000 + 11.0609 0.0000 + 12.1858 0.0000 + 13.0336 0.0000 + 14.9369 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7466 1.0000 + -30.0680 1.0000 + -29.9856 1.0000 + -29.8162 1.0000 + 0.1614 1.0000 + 1.1971 1.0000 + 4.6963 1.0000 + 5.0329 1.0000 + 6.3108 1.0000 + 8.4305 0.0000 + 8.5088 0.0000 + 11.2905 0.0000 + 12.2531 0.0000 + 13.6523 0.0000 + 15.0165 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7472 1.0000 + -30.0193 1.0000 + -29.9987 1.0000 + -29.8199 1.0000 + -1.7259 1.0000 + 4.2208 1.0000 + 4.7206 1.0000 + 5.9736 1.0000 + 6.6199 1.0000 + 8.1432 0.0001 + 8.2436 0.0000 + 9.3875 0.0000 + 9.9330 0.0000 + 14.2783 0.0000 + 14.9326 0.0000 + + + -91.8805 1.0000 + -91.4253 1.0000 + -91.2904 1.0000 + -65.7472 1.0000 + -30.0214 1.0000 + -29.9985 1.0000 + -29.8197 1.0000 + -1.6767 1.0000 + 4.2223 1.0000 + 4.6204 1.0000 + 5.7734 1.0000 + 6.8479 1.0000 + 7.7918 0.9010 + 8.5549 0.0000 + 9.2077 0.0000 + 10.1836 0.0000 + 14.6923 0.0000 + 15.0199 0.0000 + + + -91.8807 1.0000 + -91.4255 1.0000 + -91.2906 1.0000 + -65.7471 1.0000 + -30.0274 1.0000 + -29.9980 1.0000 + -29.8192 1.0000 + -1.5287 1.0000 + 4.1177 1.0000 + 4.4062 1.0000 + 5.5506 1.0000 + 7.1483 1.0000 + 7.4218 1.0000 + 8.7268 0.0000 + 9.0973 0.0000 + 10.6622 0.0000 + 14.4498 0.0000 + 15.1810 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7469 1.0000 + -30.0361 1.0000 + -29.9971 1.0000 + -29.8183 1.0000 + -1.2856 1.0000 + 3.6350 1.0000 + 4.3984 1.0000 + 5.4250 1.0000 + 6.9924 1.0000 + 7.5022 1.0000 + 8.4908 0.0000 + 9.4686 0.0000 + 11.2024 0.0000 + 14.4000 0.0000 + 15.1855 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7467 1.0000 + -30.0460 1.0000 + -29.9962 1.0000 + -29.8174 1.0000 + -0.9603 1.0000 + 3.0182 1.0000 + 4.4522 1.0000 + 5.3087 1.0000 + 6.7413 1.0000 + 7.7217 0.9886 + 8.3005 0.0000 + 9.9206 0.0000 + 11.7328 0.0000 + 13.9753 0.0000 + 15.3830 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7465 1.0000 + -30.0556 1.0000 + -29.9952 1.0000 + -29.8164 1.0000 + -0.5617 1.0000 + 2.3790 1.0000 + 4.5170 1.0000 + 5.1603 1.0000 + 6.5656 1.0000 + 7.9200 0.2994 + 8.2560 0.0000 + 10.3547 0.0000 + 12.1577 0.0000 + 13.5549 0.0000 + 17.9977 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7464 1.0000 + -30.0631 1.0000 + -29.9945 1.0000 + -29.8157 1.0000 + -0.1093 1.0000 + 1.7590 1.0000 + 4.5897 1.0000 + 5.0004 1.0000 + 6.4473 1.0000 + 8.0381 0.0140 + 8.3802 0.0000 + 10.7217 0.0000 + 12.2601 0.0000 + 13.3666 0.0000 + 15.0205 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7464 1.0000 + -30.0672 1.0000 + -29.9941 1.0000 + -29.8153 1.0000 + 0.3334 1.0000 + 1.2318 1.0000 + 4.6652 1.0000 + 4.8709 1.0000 + 6.3846 1.0000 + 8.0775 0.0029 + 8.5356 0.0000 + 10.9631 0.0000 + 12.0560 0.0000 + 14.6802 0.0000 + 15.7986 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7470 1.0000 + -30.0181 1.0000 + -30.0111 1.0000 + -29.8187 1.0000 + -1.4695 1.0000 + 3.7994 1.0000 + 4.6693 1.0000 + 5.6325 1.0000 + 6.5974 1.0000 + 7.8461 0.6978 + 8.3061 0.0000 + 9.7917 0.0000 + 10.4886 0.0000 + 14.2428 0.0000 + 15.3871 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7469 1.0000 + -30.0202 1.0000 + -30.0109 1.0000 + -29.8185 1.0000 + -1.4195 1.0000 + 3.8193 1.0000 + 4.5504 1.0000 + 5.5098 1.0000 + 6.7466 1.0000 + 7.7637 0.9539 + 8.3458 0.0000 + 9.6384 0.0000 + 10.7162 0.0000 + 14.2161 0.0000 + 15.3807 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7468 1.0000 + -30.0261 1.0000 + -30.0103 1.0000 + -29.8179 1.0000 + -1.2729 1.0000 + 3.8625 1.0000 + 4.2037 1.0000 + 5.3571 1.0000 + 6.9709 1.0000 + 7.5306 1.0000 + 8.5275 0.0000 + 9.3693 0.0000 + 11.1903 0.0000 + 14.9903 0.0000 + 31.3493 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7467 1.0000 + -30.0349 1.0000 + -30.0095 1.0000 + -29.8171 1.0000 + -1.0337 1.0000 + 3.6024 1.0000 + 4.0290 1.0000 + 5.2643 1.0000 + 7.0029 1.0000 + 7.3935 1.0000 + 8.6571 0.0000 + 9.2934 0.0000 + 11.7135 0.0000 + 14.0675 0.0000 + 15.4038 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7464 1.0000 + -30.0448 1.0000 + -30.0085 1.0000 + -29.8161 1.0000 + -0.7114 1.0000 + 3.0260 1.0000 + 4.1301 1.0000 + 5.1712 1.0000 + 6.8136 1.0000 + 7.4784 1.0000 + 8.5466 0.0000 + 9.5926 0.0000 + 12.1469 0.0000 + 13.8100 0.0000 + 15.8147 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7463 1.0000 + -30.0544 1.0000 + -30.0076 1.0000 + -29.8152 1.0000 + -0.3183 1.0000 + 2.4223 1.0000 + 4.2569 1.0000 + 5.0412 1.0000 + 6.6493 1.0000 + 7.5743 1.0000 + 8.4765 0.0000 + 9.9779 0.0000 + 12.2811 0.0000 + 13.6749 0.0000 + 15.6480 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7461 1.0000 + -30.0619 1.0000 + -30.0069 1.0000 + -29.8145 1.0000 + 0.1309 1.0000 + 1.8302 1.0000 + 4.3950 1.0000 + 4.8792 1.0000 + 6.5467 1.0000 + 7.6338 0.9998 + 8.5191 0.0000 + 10.3234 0.0000 + 12.0332 0.0000 + 13.9324 0.0000 + 15.8350 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7461 1.0000 + -30.0660 1.0000 + -30.0065 1.0000 + -29.8141 1.0000 + 0.5962 1.0000 + 1.2931 1.0000 + 4.5437 1.0000 + 4.7091 1.0000 + 6.4966 1.0000 + 7.6617 0.9991 + 8.5908 0.0000 + 10.5605 0.0000 + 11.7454 0.0000 + 14.3195 0.0000 + 15.4240 0.0000 + + + -91.8811 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7467 1.0000 + -30.0253 1.0000 + -30.0166 1.0000 + -29.8173 1.0000 + -1.1232 1.0000 + 3.2045 1.0000 + 4.6486 1.0000 + 5.3096 1.0000 + 6.5657 1.0000 + 7.8108 0.8458 + 8.3758 0.0000 + 10.2111 0.0000 + 11.0400 0.0000 + 13.9258 0.0000 + 15.5259 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7466 1.0000 + -30.0251 1.0000 + -30.0187 1.0000 + -29.8171 1.0000 + -1.0740 1.0000 + 3.2169 1.0000 + 4.5463 1.0000 + 5.2645 1.0000 + 6.6130 1.0000 + 7.8637 0.6062 + 8.2993 0.0000 + 10.0666 0.0000 + 11.2485 0.0000 + 13.8793 0.0000 + 15.1310 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7465 1.0000 + -30.0247 1.0000 + -30.0245 1.0000 + -29.8165 1.0000 + -0.9278 1.0000 + 3.2332 1.0000 + 4.2746 1.0000 + 5.1943 1.0000 + 6.7018 1.0000 + 7.7714 0.9424 + 8.3727 0.0000 + 9.7624 0.0000 + 11.6929 0.0000 + 13.8341 0.0000 + 15.2470 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7463 1.0000 + -30.0335 1.0000 + -30.0237 1.0000 + -29.8157 1.0000 + -0.6936 1.0000 + 3.1651 1.0000 + 3.9951 1.0000 + 5.1310 1.0000 + 6.7693 1.0000 + 7.5109 1.0000 + 8.6573 0.0000 + 9.4680 0.0000 + 12.1191 0.0000 + 13.7501 0.0000 + 16.2199 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7461 1.0000 + -30.0435 1.0000 + -30.0228 1.0000 + -29.8147 1.0000 + -0.3808 1.0000 + 2.8709 1.0000 + 3.9188 1.0000 + 5.0470 1.0000 + 6.7750 1.0000 + 7.3303 1.0000 + 8.7957 0.0000 + 9.4194 0.0000 + 12.2854 0.0000 + 15.1004 0.0000 + 16.6631 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7460 1.0000 + -30.0531 1.0000 + -30.0219 1.0000 + -29.8138 1.0000 + -0.0012 1.0000 + 2.4149 1.0000 + 4.0086 1.0000 + 4.9212 1.0000 + 6.7199 1.0000 + 7.2772 1.0000 + 8.7185 0.0000 + 9.6676 0.0000 + 12.0399 0.0000 + 13.9078 0.0000 + 16.1396 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7458 1.0000 + -30.0605 1.0000 + -30.0212 1.0000 + -29.8131 1.0000 + 0.4304 1.0000 + 1.9114 1.0000 + 4.1602 1.0000 + 4.7577 1.0000 + 6.6629 1.0000 + 7.2826 1.0000 + 8.6633 0.0000 + 9.9472 0.0000 + 11.6785 0.0000 + 15.2726 0.0000 + 16.0488 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7457 1.0000 + -30.0646 1.0000 + -30.0207 1.0000 + -29.8127 1.0000 + 0.8992 1.0000 + 1.4048 1.0000 + 4.3197 1.0000 + 4.5902 1.0000 + 6.6327 1.0000 + 7.2942 1.0000 + 8.6558 0.0000 + 10.1424 0.0000 + 11.4034 0.0000 + 14.2472 0.0000 + 41.7288 0.0000 + + + -91.8814 1.0000 + -91.4263 1.0000 + -91.2913 1.0000 + -65.7464 1.0000 + -30.0388 1.0000 + -30.0152 1.0000 + -29.8160 1.0000 + -0.7011 1.0000 + 2.5446 1.0000 + 4.6365 1.0000 + 5.0441 1.0000 + 6.4285 1.0000 + 8.1110 0.0006 + 8.4422 0.0000 + 10.6018 0.0000 + 11.5597 0.0000 + 13.3506 0.0000 + 15.1051 0.0000 + + + -91.8812 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7464 1.0000 + -30.0386 1.0000 + -30.0173 1.0000 + -29.8158 1.0000 + -0.6526 1.0000 + 2.5545 1.0000 + 4.5567 1.0000 + 5.0344 1.0000 + 6.4474 1.0000 + 8.1580 0.0000 + 8.3450 0.0000 + 10.4604 0.0000 + 11.7435 0.0000 + 13.3794 0.0000 + 15.8365 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7462 1.0000 + -30.0381 1.0000 + -30.0233 1.0000 + -29.8152 1.0000 + -0.5089 1.0000 + 2.5736 1.0000 + 4.3507 1.0000 + 5.0102 1.0000 + 6.4989 1.0000 + 7.9569 0.1473 + 8.4473 0.0000 + 10.1404 0.0000 + 12.0883 0.0000 + 13.4032 0.0000 + 15.1473 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7461 1.0000 + -30.0373 1.0000 + -30.0321 1.0000 + -29.8143 1.0000 + -0.2806 1.0000 + 2.5705 1.0000 + 4.1067 1.0000 + 4.9666 1.0000 + 6.5721 1.0000 + 7.6198 0.9999 + 8.7017 0.0000 + 9.7782 0.0000 + 12.2391 0.0000 + 13.5917 0.0000 + 15.4441 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7459 1.0000 + -30.0422 1.0000 + -30.0363 1.0000 + -29.8134 1.0000 + 0.0188 1.0000 + 2.4896 1.0000 + 3.9304 1.0000 + 4.8876 1.0000 + 6.6514 1.0000 + 7.3330 1.0000 + 8.9105 0.0000 + 9.5027 0.0000 + 12.0077 0.0000 + 14.3536 0.0000 + 16.5093 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7457 1.0000 + -30.0518 1.0000 + -30.0354 1.0000 + -29.8125 1.0000 + 0.3709 1.0000 + 2.2835 1.0000 + 3.8916 1.0000 + 4.7617 1.0000 + 6.7183 1.0000 + 7.1436 1.0000 + 8.9049 0.0000 + 9.4941 0.0000 + 11.7396 0.0000 + 15.6793 0.0000 + 16.9345 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7455 1.0000 + -30.0593 1.0000 + -30.0348 1.0000 + -29.8117 1.0000 + 0.7545 1.0000 + 1.9742 1.0000 + 3.9744 1.0000 + 4.5954 1.0000 + 6.7577 1.0000 + 7.0518 1.0000 + 8.7886 0.0000 + 9.6473 0.0000 + 11.3101 0.0000 + 14.0340 0.0000 + 16.7643 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7454 1.0000 + -30.0633 1.0000 + -30.0343 1.0000 + -29.8114 1.0000 + 1.1319 1.0000 + 1.6271 1.0000 + 4.1052 1.0000 + 4.4298 1.0000 + 6.7711 1.0000 + 7.0239 1.0000 + 8.7206 0.0000 + 9.7665 0.0000 + 11.0890 0.0000 + 13.9788 0.0000 + 16.9520 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7462 1.0000 + -30.0493 1.0000 + -30.0141 1.0000 + -29.8149 1.0000 + -0.2288 1.0000 + 1.8983 1.0000 + 4.6283 1.0000 + 4.8575 1.0000 + 6.2772 1.0000 + 8.4945 0.0000 + 8.5804 0.0000 + 10.9224 0.0000 + 11.9786 0.0000 + 12.7899 0.0000 + 14.9087 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7461 1.0000 + -30.0491 1.0000 + -30.0162 1.0000 + -29.8147 1.0000 + -0.1792 1.0000 + 1.9074 1.0000 + 4.5762 1.0000 + 4.8487 1.0000 + 6.2969 1.0000 + 8.3585 0.0000 + 8.6284 0.0000 + 10.7823 0.0000 + 12.0806 0.0000 + 12.8868 0.0000 + 15.2348 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7460 1.0000 + -30.0486 1.0000 + -30.0222 1.0000 + -29.8141 1.0000 + -0.0352 1.0000 + 1.9332 1.0000 + 4.4339 1.0000 + 4.8242 1.0000 + 6.3536 1.0000 + 8.0475 0.0099 + 8.7378 0.0000 + 10.4554 0.0000 + 12.1158 0.0000 + 13.2657 0.0000 + 14.9000 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7458 1.0000 + -30.0478 1.0000 + -30.0311 1.0000 + -29.8133 1.0000 + 0.1893 1.0000 + 1.9679 1.0000 + 4.2451 1.0000 + 4.7769 1.0000 + 6.4400 1.0000 + 7.6916 0.9966 + 8.8745 0.0000 + 10.0643 0.0000 + 11.9241 0.0000 + 13.8014 0.0000 + 15.2989 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7456 1.0000 + -30.0469 1.0000 + -30.0412 1.0000 + -29.8123 1.0000 + 0.4706 1.0000 + 1.9998 1.0000 + 4.0636 1.0000 + 4.6916 1.0000 + 6.5446 1.0000 + 7.3787 1.0000 + 8.9926 0.0000 + 9.6981 0.0000 + 11.6104 0.0000 + 14.1038 0.0000 + 15.9363 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7454 1.0000 + -30.0508 1.0000 + -30.0460 1.0000 + -29.8114 1.0000 + 0.7753 1.0000 + 2.0098 1.0000 + 3.9391 1.0000 + 4.5583 1.0000 + 6.6530 1.0000 + 7.1493 1.0000 + 9.0079 0.0000 + 9.4727 0.0000 + 11.2802 0.0000 + 14.0000 0.0000 + 16.5368 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7452 1.0000 + -30.0583 1.0000 + -30.0454 1.0000 + -29.8107 1.0000 + 1.0560 1.0000 + 1.9838 1.0000 + 3.9064 1.0000 + 4.3863 1.0000 + 6.7511 1.0000 + 7.0039 1.0000 + 8.8800 0.0000 + 9.4519 0.0000 + 11.0055 0.0000 + 13.8522 0.0000 + 16.8940 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2896 1.0000 + -65.7452 1.0000 + -30.0624 1.0000 + -30.0450 1.0000 + -29.8103 1.0000 + 1.2424 1.0000 + 1.9383 1.0000 + 3.9540 1.0000 + 4.2239 1.0000 + 6.8299 1.0000 + 6.9158 1.0000 + 8.7739 0.0000 + 9.4832 0.0000 + 10.8480 0.0000 + 13.7576 0.0000 + 16.7488 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7460 1.0000 + -30.0550 1.0000 + -30.0134 1.0000 + -29.8143 1.0000 + 0.2043 1.0000 + 1.3732 1.0000 + 4.6240 1.0000 + 4.7616 1.0000 + 6.1883 1.0000 + 8.5233 0.0000 + 8.9674 0.0000 + 11.1121 0.0000 + 12.0071 0.0000 + 12.6025 0.0000 + 14.7790 0.0000 + + + -91.8807 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7460 1.0000 + -30.0547 1.0000 + -30.0156 1.0000 + -29.8141 1.0000 + 0.2601 1.0000 + 1.3783 1.0000 + 4.6072 1.0000 + 4.7289 1.0000 + 6.2110 1.0000 + 8.3945 0.0000 + 8.9806 0.0000 + 10.9757 0.0000 + 11.9688 0.0000 + 12.8374 0.0000 + 14.6721 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7458 1.0000 + -30.0543 1.0000 + -30.0216 1.0000 + -29.8135 1.0000 + 0.4205 1.0000 + 1.3934 1.0000 + 4.5342 1.0000 + 4.6626 1.0000 + 6.2753 1.0000 + 8.0869 0.0019 + 9.0106 0.0000 + 10.6601 0.0000 + 11.8277 0.0000 + 13.4681 0.0000 + 14.6325 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7457 1.0000 + -30.0535 1.0000 + -30.0305 1.0000 + -29.8127 1.0000 + 0.6680 1.0000 + 1.4216 1.0000 + 4.3948 1.0000 + 4.5926 1.0000 + 6.3719 1.0000 + 7.7299 0.9847 + 9.0457 0.0000 + 10.2612 0.0000 + 11.5905 0.0000 + 14.2426 0.0000 + 14.7492 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7455 1.0000 + -30.0527 1.0000 + -30.0406 1.0000 + -29.8117 1.0000 + 0.9557 1.0000 + 1.4873 1.0000 + 4.2358 1.0000 + 4.4908 1.0000 + 6.4878 1.0000 + 7.4124 1.0000 + 9.0712 0.0000 + 9.8506 0.0000 + 11.3089 0.0000 + 14.3846 0.0000 + 15.5524 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7453 1.0000 + -30.0518 1.0000 + -30.0502 1.0000 + -29.8108 1.0000 + 1.1737 1.0000 + 1.6621 1.0000 + 4.0925 1.0000 + 4.3402 1.0000 + 6.6061 1.0000 + 7.1785 1.0000 + 9.0505 0.0000 + 9.5155 0.0000 + 11.0400 0.0000 + 13.9482 0.0000 + 16.5775 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7451 1.0000 + -30.0577 1.0000 + -30.0512 1.0000 + -29.8101 1.0000 + 1.2606 1.0000 + 1.9475 1.0000 + 3.9805 1.0000 + 4.1622 1.0000 + 6.7058 1.0000 + 7.0369 1.0000 + 8.9273 0.0000 + 9.3617 0.0000 + 10.8310 0.0000 + 13.7460 0.0000 + 17.0707 0.0000 + + + -91.8798 1.0000 + -91.4249 1.0000 + -91.2898 1.0000 + -65.7451 1.0000 + -30.0619 1.0000 + -30.0509 1.0000 + -29.8097 1.0000 + 1.2859 1.0000 + 2.1702 1.0000 + 3.8990 1.0000 + 4.0390 1.0000 + 6.7652 1.0000 + 6.9729 1.0000 + 8.8041 0.0000 + 9.3315 0.0000 + 10.7166 0.0000 + 13.6320 0.0000 + 16.7501 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7464 1.0000 + -30.0175 1.0000 + -29.9844 1.0000 + -29.8488 1.0000 + -1.7370 1.0000 + 4.4422 1.0000 + 4.8585 1.0000 + 6.0714 1.0000 + 6.4466 1.0000 + 8.2302 0.0000 + 8.3749 0.0000 + 9.1175 0.0000 + 9.2619 0.0000 + 14.1349 0.0000 + 15.4013 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7463 1.0000 + -30.0195 1.0000 + -29.9841 1.0000 + -29.8486 1.0000 + -1.6861 1.0000 + 4.3659 1.0000 + 4.8534 1.0000 + 5.9862 1.0000 + 6.3903 1.0000 + 8.0854 0.0021 + 8.4524 0.0000 + 9.1354 0.0000 + 9.5120 0.0000 + 14.3643 0.0000 + 15.3071 0.0000 + + + -91.8803 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7463 1.0000 + -30.0256 1.0000 + -29.9835 1.0000 + -29.8481 1.0000 + -1.5384 1.0000 + 4.0964 1.0000 + 4.8387 1.0000 + 5.8780 1.0000 + 6.2244 1.0000 + 7.8814 0.5077 + 8.4118 0.0000 + 9.4051 0.0000 + 10.0237 0.0000 + 14.7831 0.0000 + 15.5390 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7461 1.0000 + -30.0342 1.0000 + -29.9826 1.0000 + -29.8473 1.0000 + -1.2961 1.0000 + 3.6243 1.0000 + 4.8224 1.0000 + 5.8880 1.0000 + 5.9794 1.0000 + 7.7697 0.9451 + 8.2240 0.0000 + 9.9152 0.0000 + 10.6017 0.0000 + 14.8981 0.0000 + 15.7528 0.0000 + + + -91.8798 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7459 1.0000 + -30.0442 1.0000 + -29.9816 1.0000 + -29.8464 1.0000 + -0.9701 1.0000 + 3.0306 1.0000 + 4.8098 1.0000 + 5.7145 1.0000 + 5.9645 1.0000 + 7.7405 0.9779 + 8.1068 0.0008 + 10.4758 0.0000 + 11.1795 0.0000 + 14.4320 0.0000 + 15.4052 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7457 1.0000 + -30.0538 1.0000 + -29.9807 1.0000 + -29.8456 1.0000 + -0.5710 1.0000 + 2.3983 1.0000 + 4.8012 1.0000 + 5.4818 1.0000 + 6.0144 1.0000 + 7.7545 0.9652 + 8.1644 0.0000 + 11.0095 0.0000 + 11.7243 0.0000 + 13.7286 0.0000 + 15.7410 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7456 1.0000 + -30.0614 1.0000 + -29.9799 1.0000 + -29.8449 1.0000 + -0.1177 1.0000 + 1.7781 1.0000 + 4.7964 1.0000 + 5.3133 1.0000 + 6.0112 1.0000 + 7.7807 0.9256 + 8.3693 0.0000 + 11.4739 0.0000 + 12.2127 0.0000 + 12.9109 0.0000 + 14.6649 0.0000 + + + -91.8817 1.0000 + -91.4266 1.0000 + -91.2916 1.0000 + -65.7457 1.0000 + -30.0656 1.0000 + -29.9796 1.0000 + -29.8446 1.0000 + 0.3197 1.0000 + 1.2526 1.0000 + 4.7946 1.0000 + 5.2255 1.0000 + 5.9923 1.0000 + 7.7988 0.8824 + 8.5626 0.0000 + 11.8394 0.0000 + 12.3313 0.0000 + 12.5446 0.0000 + 14.3190 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7463 1.0000 + -30.0172 1.0000 + -29.9873 1.0000 + -29.8485 1.0000 + -1.6849 1.0000 + 4.4076 1.0000 + 4.8483 1.0000 + 6.0207 1.0000 + 6.2826 1.0000 + 8.0528 0.0081 + 8.5353 0.0000 + 9.2108 0.0000 + 9.3896 0.0000 + 14.3918 0.0000 + 15.3197 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7463 1.0000 + -30.0193 1.0000 + -29.9870 1.0000 + -29.8483 1.0000 + -1.6339 1.0000 + 4.3516 1.0000 + 4.8346 1.0000 + 5.7996 1.0000 + 6.4178 1.0000 + 7.7836 0.9196 + 8.8250 0.0000 + 9.1722 0.0000 + 9.5353 0.0000 + 14.5019 0.0000 + 15.3716 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7462 1.0000 + -30.0253 1.0000 + -29.9865 1.0000 + -29.8478 1.0000 + -1.4861 1.0000 + 4.1162 1.0000 + 4.7981 1.0000 + 5.5891 1.0000 + 6.4356 1.0000 + 7.5244 1.0000 + 8.7710 0.0000 + 9.5148 0.0000 + 9.9362 0.0000 + 15.1352 0.0000 + 15.4072 0.0000 + + + -91.8803 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7460 1.0000 + -30.0340 1.0000 + -29.9857 1.0000 + -29.8470 1.0000 + -1.2446 1.0000 + 3.6518 1.0000 + 4.7706 1.0000 + 5.5402 1.0000 + 6.2682 1.0000 + 7.4667 1.0000 + 8.5007 0.0000 + 10.0751 0.0000 + 10.4593 0.0000 + 14.9293 0.0000 + 15.7909 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7458 1.0000 + -30.0439 1.0000 + -29.9846 1.0000 + -29.8461 1.0000 + -0.9180 1.0000 + 3.0555 1.0000 + 4.7621 1.0000 + 5.5144 1.0000 + 6.0975 1.0000 + 7.5228 1.0000 + 8.3066 0.0000 + 10.6374 0.0000 + 11.0036 0.0000 + 14.3882 0.0000 + 15.7788 0.0000 + + + -91.8803 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7457 1.0000 + -30.0536 1.0000 + -29.9837 1.0000 + -29.8453 1.0000 + -0.5188 1.0000 + 2.4214 1.0000 + 4.7659 1.0000 + 5.3939 1.0000 + 6.0417 1.0000 + 7.5977 1.0000 + 8.2829 0.0000 + 11.1508 0.0000 + 11.5105 0.0000 + 13.7183 0.0000 + 14.9755 0.0000 + + + -91.8811 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7456 1.0000 + -30.0611 1.0000 + -29.9830 1.0000 + -29.8447 1.0000 + -0.0651 1.0000 + 1.8001 1.0000 + 4.7789 1.0000 + 5.2458 1.0000 + 6.0321 1.0000 + 7.6461 0.9996 + 8.4238 0.0000 + 11.5584 0.0000 + 11.9266 0.0000 + 13.0831 0.0000 + 15.6069 0.0000 + + + -91.8817 1.0000 + -91.4266 1.0000 + -91.2916 1.0000 + -65.7456 1.0000 + -30.0653 1.0000 + -29.9826 1.0000 + -29.8443 1.0000 + 0.3795 1.0000 + 1.2691 1.0000 + 4.7936 1.0000 + 5.1515 1.0000 + 6.0240 1.0000 + 7.6686 0.9988 + 8.5805 0.0000 + 11.7779 0.0000 + 12.1352 0.0000 + 12.7618 0.0000 + 14.3597 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2897 1.0000 + -65.7461 1.0000 + -30.0163 1.0000 + -29.9957 1.0000 + -29.8477 1.0000 + -1.5268 1.0000 + 4.2431 1.0000 + 4.8102 1.0000 + 5.8696 1.0000 + 6.0346 1.0000 + 7.8110 0.8450 + 8.5785 0.0000 + 9.3930 0.0000 + 9.9093 0.0000 + 14.8181 0.0000 + 15.3992 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7461 1.0000 + -30.0184 1.0000 + -29.9955 1.0000 + -29.8475 1.0000 + -1.4775 1.0000 + 4.2438 1.0000 + 4.7542 1.0000 + 5.5293 1.0000 + 6.3522 1.0000 + 7.5150 1.0000 + 8.8801 0.0000 + 9.4592 0.0000 + 9.8752 0.0000 + 15.2792 0.0000 + 15.6628 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7460 1.0000 + -30.0244 1.0000 + -29.9950 1.0000 + -29.8470 1.0000 + -1.3299 1.0000 + 4.1576 1.0000 + 4.5679 1.0000 + 5.2979 1.0000 + 6.6150 1.0000 + 7.0904 1.0000 + 9.1579 0.0000 + 9.5750 0.0000 + 10.0825 0.0000 + 15.1794 0.0000 + 15.4777 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7459 1.0000 + -30.0332 1.0000 + -29.9941 1.0000 + -29.8463 1.0000 + -1.0889 1.0000 + 3.7247 1.0000 + 4.5126 1.0000 + 5.2739 1.0000 + 6.5053 1.0000 + 7.0116 1.0000 + 8.9177 0.0000 + 10.0553 0.0000 + 10.5390 0.0000 + 14.9488 0.0000 + 15.7735 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7457 1.0000 + -30.0432 1.0000 + -29.9932 1.0000 + -29.8454 1.0000 + -0.7637 1.0000 + 3.1184 1.0000 + 4.5570 1.0000 + 5.2947 1.0000 + 6.2309 1.0000 + 7.1569 1.0000 + 8.6614 0.0000 + 10.5778 0.0000 + 11.0215 0.0000 + 14.3672 0.0000 + 16.4135 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7455 1.0000 + -30.0528 1.0000 + -29.9922 1.0000 + -29.8445 1.0000 + -0.3665 1.0000 + 2.4849 1.0000 + 4.6192 1.0000 + 5.2403 1.0000 + 6.0991 1.0000 + 7.2727 1.0000 + 8.5350 0.0000 + 11.0432 0.0000 + 11.4229 0.0000 + 13.8722 0.0000 + 15.2253 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7454 1.0000 + -30.0603 1.0000 + -29.9915 1.0000 + -29.8439 1.0000 + 0.0883 1.0000 + 1.8666 1.0000 + 4.6927 1.0000 + 5.1041 1.0000 + 6.0902 1.0000 + 7.3348 1.0000 + 8.5545 0.0000 + 11.3690 0.0000 + 11.6761 0.0000 + 13.4279 0.0000 + 14.9423 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2913 1.0000 + -65.7454 1.0000 + -30.0645 1.0000 + -29.9911 1.0000 + -29.8436 1.0000 + 0.5523 1.0000 + 1.3197 1.0000 + 4.7737 1.0000 + 4.9700 1.0000 + 6.1067 1.0000 + 7.3584 1.0000 + 8.6259 0.0000 + 11.4672 0.0000 + 11.8083 0.0000 + 13.3060 0.0000 + 14.7773 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7459 1.0000 + -30.0150 1.0000 + -30.0082 1.0000 + -29.8466 1.0000 + -1.2712 1.0000 + 3.8438 1.0000 + 4.7684 1.0000 + 5.6401 1.0000 + 5.9574 1.0000 + 7.6738 0.9984 + 8.3685 0.0000 + 9.9037 0.0000 + 10.4726 0.0000 + 15.0041 0.0000 + 15.6011 0.0000 + + + -91.8803 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7459 1.0000 + -30.0172 1.0000 + -30.0079 1.0000 + -29.8464 1.0000 + -1.2218 1.0000 + 3.8708 1.0000 + 4.6756 1.0000 + 5.4045 1.0000 + 6.1889 1.0000 + 7.4347 1.0000 + 8.5911 0.0000 + 10.0325 0.0000 + 10.3726 0.0000 + 14.9251 0.0000 + 15.8940 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7457 1.0000 + -30.0231 1.0000 + -30.0074 1.0000 + -29.8459 1.0000 + -1.0751 1.0000 + 3.9445 1.0000 + 4.3254 1.0000 + 5.2342 1.0000 + 6.4457 1.0000 + 7.0265 1.0000 + 8.9822 0.0000 + 9.9608 0.0000 + 10.5366 0.0000 + 15.3724 0.0000 + 16.2209 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7456 1.0000 + -30.0320 1.0000 + -30.0066 1.0000 + -29.8451 1.0000 + -0.8371 1.0000 + 3.7696 1.0000 + 4.0713 1.0000 + 5.2102 1.0000 + 6.5202 1.0000 + 6.7576 1.0000 + 9.2256 0.0000 + 9.8208 0.0000 + 10.9794 0.0000 + 14.6872 0.0000 + 16.0115 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7454 1.0000 + -30.0420 1.0000 + -30.0056 1.0000 + -29.8442 1.0000 + -0.5159 1.0000 + 3.1732 1.0000 + 4.2009 1.0000 + 5.2095 1.0000 + 6.2786 1.0000 + 6.8561 1.0000 + 9.0363 0.0000 + 10.1403 0.0000 + 11.3532 0.0000 + 14.1947 0.0000 + 15.7790 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2902 1.0000 + -65.7452 1.0000 + -30.0516 1.0000 + -30.0047 1.0000 + -29.8434 1.0000 + -0.1232 1.0000 + 2.5651 1.0000 + 4.3406 1.0000 + 5.1419 1.0000 + 6.1556 1.0000 + 6.9535 1.0000 + 8.8219 0.0000 + 10.5329 0.0000 + 11.5193 0.0000 + 13.9904 0.0000 + 15.7124 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7451 1.0000 + -30.0592 1.0000 + -30.0040 1.0000 + -29.8427 1.0000 + 0.3259 1.0000 + 1.9702 1.0000 + 4.4841 1.0000 + 4.9917 1.0000 + 6.1733 1.0000 + 7.0010 1.0000 + 8.7133 0.0000 + 10.8431 0.0000 + 11.4585 0.0000 + 13.9770 0.0000 + 15.7545 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7450 1.0000 + -30.0633 1.0000 + -30.0036 1.0000 + -29.8424 1.0000 + 0.8108 1.0000 + 1.4140 1.0000 + 4.6313 1.0000 + 4.8202 1.0000 + 6.2227 1.0000 + 7.0116 1.0000 + 8.6872 0.0000 + 11.0198 0.0000 + 11.3364 0.0000 + 14.1763 0.0000 + 15.9685 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7456 1.0000 + -30.0224 1.0000 + -30.0136 1.0000 + -29.8453 1.0000 + -0.9268 1.0000 + 3.2623 1.0000 + 4.7464 1.0000 + 5.3834 1.0000 + 5.9960 1.0000 + 7.6341 0.9998 + 8.2611 0.0000 + 10.4569 0.0000 + 11.0184 0.0000 + 14.2330 0.0000 + 15.5535 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7456 1.0000 + -30.0222 1.0000 + -30.0157 1.0000 + -29.8451 1.0000 + -0.8773 1.0000 + 3.2832 1.0000 + 4.6571 1.0000 + 5.2991 1.0000 + 6.0714 1.0000 + 7.4689 1.0000 + 8.4217 0.0000 + 10.5908 0.0000 + 10.8787 0.0000 + 14.2953 0.0000 + 16.5961 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7455 1.0000 + -30.0218 1.0000 + -30.0216 1.0000 + -29.8446 1.0000 + -0.7317 1.0000 + 3.3310 1.0000 + 4.3786 1.0000 + 5.2110 1.0000 + 6.1851 1.0000 + 7.1526 1.0000 + 8.7615 0.0000 + 10.4513 0.0000 + 10.9940 0.0000 + 14.2699 0.0000 + 15.4567 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7453 1.0000 + -30.0306 1.0000 + -30.0209 1.0000 + -29.8438 1.0000 + -0.4981 1.0000 + 3.3273 1.0000 + 4.0470 1.0000 + 5.1832 1.0000 + 6.2401 1.0000 + 6.8777 1.0000 + 9.1353 0.0000 + 10.0431 0.0000 + 11.3235 0.0000 + 14.1794 0.0000 + 15.5671 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7451 1.0000 + -30.0407 1.0000 + -30.0200 1.0000 + -29.8429 1.0000 + -0.1859 1.0000 + 3.0693 1.0000 + 3.9456 1.0000 + 5.1491 1.0000 + 6.2051 1.0000 + 6.7650 1.0000 + 9.2971 0.0000 + 9.8622 0.0000 + 11.4431 0.0000 + 14.0899 0.0000 + 16.4426 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7449 1.0000 + -30.0503 1.0000 + -30.0191 1.0000 + -29.8421 1.0000 + 0.1920 1.0000 + 2.6071 1.0000 + 4.0528 1.0000 + 5.0472 1.0000 + 6.1874 1.0000 + 6.7639 1.0000 + 9.0797 0.0000 + 10.0903 0.0000 + 11.2974 0.0000 + 14.2166 0.0000 + 15.6033 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7448 1.0000 + -30.0579 1.0000 + -30.0184 1.0000 + -29.8414 1.0000 + 0.6211 1.0000 + 2.0968 1.0000 + 4.2164 1.0000 + 4.8791 1.0000 + 6.2614 1.0000 + 6.7657 1.0000 + 8.8662 0.0000 + 10.3491 0.0000 + 11.0306 0.0000 + 14.4108 0.0000 + 15.3788 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7447 1.0000 + -30.0620 1.0000 + -30.0180 1.0000 + -29.8411 1.0000 + 1.0880 1.0000 + 1.5873 1.0000 + 4.3747 1.0000 + 4.7100 1.0000 + 6.3575 1.0000 + 6.7421 1.0000 + 8.7550 0.0000 + 10.5500 0.0000 + 10.7906 0.0000 + 14.5624 0.0000 + 15.1655 0.0000 + + + -91.8811 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7454 1.0000 + -30.0360 1.0000 + -30.0122 1.0000 + -29.8440 1.0000 + -0.5057 1.0000 + 2.6136 1.0000 + 4.7370 1.0000 + 5.1523 1.0000 + 6.0130 1.0000 + 7.6494 0.9995 + 8.3935 0.0000 + 10.9701 0.0000 + 11.5187 0.0000 + 13.5916 0.0000 + 15.0632 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7453 1.0000 + -30.0358 1.0000 + -30.0143 1.0000 + -29.8438 1.0000 + -0.4569 1.0000 + 2.6313 1.0000 + 4.6641 1.0000 + 5.1321 1.0000 + 6.0295 1.0000 + 7.5280 1.0000 + 8.4922 0.0000 + 11.0888 0.0000 + 11.3355 0.0000 + 13.6775 0.0000 + 15.0131 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7452 1.0000 + -30.0353 1.0000 + -30.0204 1.0000 + -29.8433 1.0000 + -0.3133 1.0000 + 2.6752 1.0000 + 4.4540 1.0000 + 5.1041 1.0000 + 6.0697 1.0000 + 7.2554 1.0000 + 8.7315 0.0000 + 10.8888 0.0000 + 11.3448 0.0000 + 13.6890 0.0000 + 15.8847 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7450 1.0000 + -30.0345 1.0000 + -30.0292 1.0000 + -29.8426 1.0000 + -0.0859 1.0000 + 2.7166 1.0000 + 4.1804 1.0000 + 5.0770 1.0000 + 6.1163 1.0000 + 6.9765 1.0000 + 9.0212 0.0000 + 10.3917 0.0000 + 11.4336 0.0000 + 13.9055 0.0000 + 15.2813 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7448 1.0000 + -30.0394 1.0000 + -30.0336 1.0000 + -29.8417 1.0000 + 0.2123 1.0000 + 2.6878 1.0000 + 3.9634 1.0000 + 5.0147 1.0000 + 6.1592 1.0000 + 6.7920 1.0000 + 9.2662 0.0000 + 9.9512 0.0000 + 11.2415 0.0000 + 14.1593 0.0000 + 15.4866 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7446 1.0000 + -30.0491 1.0000 + -30.0327 1.0000 + -29.8408 1.0000 + 0.5609 1.0000 + 2.5137 1.0000 + 3.9070 1.0000 + 4.8851 1.0000 + 6.2238 1.0000 + 6.7173 1.0000 + 9.2451 0.0000 + 9.8021 0.0000 + 10.8954 0.0000 + 14.4228 0.0000 + 16.8868 0.0000 + + + -91.8798 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7444 1.0000 + -30.0566 1.0000 + -30.0320 1.0000 + -29.8402 1.0000 + 0.9361 1.0000 + 2.2131 1.0000 + 3.9968 1.0000 + 4.7012 1.0000 + 6.3401 1.0000 + 6.6831 1.0000 + 8.9915 0.0000 + 9.9352 0.0000 + 10.5511 0.0000 + 14.6648 0.0000 + 16.6490 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7444 1.0000 + -30.0607 1.0000 + -30.0317 1.0000 + -29.8398 1.0000 + 1.2854 1.0000 + 1.8883 1.0000 + 4.1342 1.0000 + 4.5244 1.0000 + 6.4820 1.0000 + 6.6213 1.0000 + 8.8197 0.0000 + 10.0947 0.0000 + 10.2879 0.0000 + 14.4258 0.0000 + 16.1813 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7451 1.0000 + -30.0466 1.0000 + -30.0111 1.0000 + -29.8430 1.0000 + -0.0307 1.0000 + 1.9718 1.0000 + 4.7340 1.0000 + 4.9824 1.0000 + 5.9781 1.0000 + 7.6817 0.9978 + 8.7276 0.0000 + 11.3873 0.0000 + 11.9478 0.0000 + 12.7854 0.0000 + 23.9436 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7451 1.0000 + -30.0464 1.0000 + -30.0132 1.0000 + -29.8428 1.0000 + 0.0185 1.0000 + 1.9888 1.0000 + 4.6859 1.0000 + 4.9653 1.0000 + 5.9970 1.0000 + 7.5729 1.0000 + 8.7751 0.0000 + 11.4491 0.0000 + 11.7029 0.0000 + 13.0190 0.0000 + 14.7782 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7450 1.0000 + -30.0459 1.0000 + -30.0193 1.0000 + -29.8423 1.0000 + 0.1624 1.0000 + 2.0359 1.0000 + 4.5378 1.0000 + 4.9360 1.0000 + 6.0484 1.0000 + 7.3135 1.0000 + 8.8969 0.0000 + 11.2099 0.0000 + 11.4930 0.0000 + 13.3525 0.0000 + 14.7482 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7448 1.0000 + -30.0451 1.0000 + -30.0282 1.0000 + -29.8416 1.0000 + 0.3853 1.0000 + 2.1069 1.0000 + 4.3253 1.0000 + 4.8953 1.0000 + 6.1228 1.0000 + 7.0290 1.0000 + 9.0504 0.0000 + 10.6735 0.0000 + 11.2840 0.0000 + 13.8208 0.0000 + 15.4677 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7446 1.0000 + -30.0442 1.0000 + -30.0384 1.0000 + -29.8407 1.0000 + 0.6619 1.0000 + 2.1867 1.0000 + 4.1117 1.0000 + 4.8111 1.0000 + 6.2095 1.0000 + 6.8181 1.0000 + 9.1919 0.0000 + 10.1602 0.0000 + 10.8993 0.0000 + 15.1026 0.0000 + 15.8962 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7444 1.0000 + -30.0481 1.0000 + -30.0434 1.0000 + -29.8399 1.0000 + 0.9577 1.0000 + 2.2499 1.0000 + 3.9565 1.0000 + 4.6608 1.0000 + 6.3079 1.0000 + 6.7191 1.0000 + 9.2475 0.0000 + 9.7542 0.0000 + 10.4853 0.0000 + 14.4236 0.0000 + 15.9769 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2900 1.0000 + -65.7442 1.0000 + -30.0556 1.0000 + -30.0428 1.0000 + -29.8392 1.0000 + 1.2239 1.0000 + 2.2689 1.0000 + 3.9080 1.0000 + 4.4598 1.0000 + 6.4254 1.0000 + 6.6915 1.0000 + 9.0705 0.0000 + 9.6405 0.0000 + 10.1444 0.0000 + 14.3430 0.0000 + 17.2812 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7442 1.0000 + -30.0598 1.0000 + -30.0424 1.0000 + -29.8388 1.0000 + 1.3946 1.0000 + 2.2508 1.0000 + 3.9615 1.0000 + 4.2707 1.0000 + 6.5390 1.0000 + 6.6669 1.0000 + 8.8711 0.0000 + 9.6833 0.0000 + 9.9342 0.0000 + 14.2821 0.0000 + 16.8667 0.0000 + + + -91.8809 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7450 1.0000 + -30.0524 1.0000 + -30.0105 1.0000 + -29.8425 1.0000 + 0.4229 1.0000 + 1.4332 1.0000 + 4.7335 1.0000 + 4.8932 1.0000 + 5.9406 1.0000 + 7.7046 0.9941 + 9.0485 0.0000 + 11.6113 0.0000 + 12.2365 0.0000 + 12.4166 0.0000 + 14.4069 0.0000 + + + -91.8809 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7450 1.0000 + -30.0522 1.0000 + -30.0126 1.0000 + -29.8423 1.0000 + 0.4791 1.0000 + 1.4433 1.0000 + 4.7207 1.0000 + 4.8490 1.0000 + 5.9697 1.0000 + 7.5985 1.0000 + 9.0623 0.0000 + 11.5449 0.0000 + 11.9351 0.0000 + 12.6346 0.0000 + 14.4028 0.0000 + + + -91.8811 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7449 1.0000 + -30.0517 1.0000 + -30.0187 1.0000 + -29.8418 1.0000 + 0.6406 1.0000 + 1.4754 1.0000 + 4.6393 1.0000 + 4.7744 1.0000 + 6.0463 1.0000 + 7.3409 1.0000 + 9.0974 0.0000 + 11.2685 0.0000 + 11.5426 0.0000 + 13.2087 0.0000 + 14.4572 0.0000 + + + -91.8808 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7447 1.0000 + -30.0509 1.0000 + -30.0276 1.0000 + -29.8411 1.0000 + 0.8849 1.0000 + 1.5379 1.0000 + 4.4679 1.0000 + 4.7154 1.0000 + 6.1524 1.0000 + 7.0495 1.0000 + 9.1423 0.0000 + 10.8507 0.0000 + 11.0603 0.0000 + 14.0298 0.0000 + 14.7766 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7445 1.0000 + -30.0501 1.0000 + -30.0378 1.0000 + -29.8402 1.0000 + 1.1502 1.0000 + 1.6634 1.0000 + 4.2778 1.0000 + 4.6118 1.0000 + 6.2733 1.0000 + 6.8222 1.0000 + 9.1840 0.0000 + 10.3474 0.0000 + 10.5871 0.0000 + 14.4557 0.0000 + 15.2545 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7443 1.0000 + -30.0493 1.0000 + -30.0475 1.0000 + -29.8393 1.0000 + 1.3315 1.0000 + 1.9197 1.0000 + 4.1103 1.0000 + 4.4350 1.0000 + 6.3954 1.0000 + 6.7111 1.0000 + 9.1975 0.0000 + 9.8332 0.0000 + 10.1952 0.0000 + 14.3744 0.0000 + 15.8908 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7441 1.0000 + -30.0551 1.0000 + -30.0487 1.0000 + -29.8387 1.0000 + 1.4141 1.0000 + 2.2587 1.0000 + 3.9834 1.0000 + 4.2083 1.0000 + 6.5037 1.0000 + 6.7025 1.0000 + 9.0928 0.0000 + 9.5006 0.0000 + 9.9082 0.0000 + 14.2642 0.0000 + 16.9205 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7441 1.0000 + -30.0593 1.0000 + -30.0483 1.0000 + -29.8383 1.0000 + 1.4457 1.0000 + 2.5199 1.0000 + 3.9004 1.0000 + 4.0331 1.0000 + 6.5737 1.0000 + 6.7304 1.0000 + 8.8995 0.0000 + 9.4301 0.0000 + 9.7525 0.0000 + 14.2685 0.0000 + 34.2814 0.0000 + + + -91.8795 1.0000 + -91.4244 1.0000 + -91.2894 1.0000 + -65.7449 1.0000 + -30.0129 1.0000 + -29.9797 1.0000 + -29.8895 1.0000 + -1.4187 1.0000 + 4.4601 1.0000 + 4.6731 1.0000 + 5.6743 1.0000 + 5.9932 1.0000 + 8.1576 0.0001 + 8.3102 0.0000 + 9.3878 0.0000 + 9.5739 0.0000 + 14.6169 0.0000 + 15.2950 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2900 1.0000 + -65.7449 1.0000 + -30.0151 1.0000 + -29.9795 1.0000 + -29.8894 1.0000 + -1.3679 1.0000 + 4.3898 1.0000 + 4.6848 1.0000 + 5.5775 1.0000 + 5.9882 1.0000 + 8.0710 0.0039 + 8.3358 0.0000 + 9.2963 0.0000 + 9.8808 0.0000 + 14.7640 0.0000 + 15.2851 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7447 1.0000 + -30.0211 1.0000 + -29.9789 1.0000 + -29.8889 1.0000 + -1.2205 1.0000 + 4.1260 1.0000 + 4.7341 1.0000 + 5.4333 1.0000 + 5.9646 1.0000 + 7.6673 0.9988 + 8.7032 0.0000 + 9.1336 0.0000 + 10.4886 0.0000 + 14.8840 0.0000 + 16.1247 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2897 1.0000 + -65.7446 1.0000 + -30.0299 1.0000 + -29.9782 1.0000 + -29.8882 1.0000 + -0.9808 1.0000 + 3.6652 1.0000 + 4.7987 1.0000 + 5.3993 1.0000 + 5.9001 1.0000 + 7.3364 1.0000 + 8.6839 0.0000 + 9.4310 0.0000 + 11.1616 0.0000 + 14.7250 0.0000 + 16.1963 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2899 1.0000 + -65.7444 1.0000 + -30.0400 1.0000 + -29.9771 1.0000 + -29.8874 1.0000 + -0.6587 1.0000 + 3.0989 1.0000 + 4.8498 1.0000 + 5.4590 1.0000 + 5.7806 1.0000 + 7.1397 1.0000 + 8.5209 0.0000 + 9.9588 0.0000 + 11.8236 0.0000 + 14.2014 0.0000 + 16.2147 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7442 1.0000 + -30.0497 1.0000 + -29.9762 1.0000 + -29.8866 1.0000 + -0.2656 1.0000 + 2.4987 1.0000 + 4.8835 1.0000 + 5.5379 1.0000 + 5.6319 1.0000 + 7.0597 1.0000 + 8.4828 0.0000 + 10.4687 0.0000 + 12.4416 0.0000 + 13.3290 0.0000 + 15.1337 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7441 1.0000 + -30.0573 1.0000 + -29.9754 1.0000 + -29.8860 1.0000 + 0.1849 1.0000 + 1.9035 1.0000 + 4.9056 1.0000 + 5.5030 1.0000 + 5.5861 1.0000 + 7.0432 1.0000 + 8.5758 0.0000 + 10.9253 0.0000 + 12.5527 0.0000 + 13.0088 0.0000 + 14.8073 0.0000 + + + -91.8812 1.0000 + -91.4261 1.0000 + -91.2912 1.0000 + -65.7441 1.0000 + -30.0615 1.0000 + -29.9750 1.0000 + -29.8857 1.0000 + 0.6491 1.0000 + 1.3651 1.0000 + 4.9176 1.0000 + 5.4303 1.0000 + 5.6017 1.0000 + 7.0458 1.0000 + 8.6931 0.0000 + 11.3271 0.0000 + 11.9366 0.0000 + 13.5779 0.0000 + 14.3517 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7449 1.0000 + -30.0127 1.0000 + -29.9828 1.0000 + -29.8893 1.0000 + -1.3666 1.0000 + 4.4223 1.0000 + 4.6934 1.0000 + 5.6697 1.0000 + 5.8285 1.0000 + 8.0271 0.0206 + 8.3692 0.0000 + 9.4509 0.0000 + 9.7370 0.0000 + 14.9651 0.0000 + 15.3421 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2901 1.0000 + -65.7448 1.0000 + -30.0148 1.0000 + -29.9826 1.0000 + -29.8892 1.0000 + -1.3163 1.0000 + 4.3772 1.0000 + 4.7020 1.0000 + 5.4537 1.0000 + 5.9491 1.0000 + 7.7861 0.9142 + 8.5756 0.0000 + 9.5058 0.0000 + 9.8346 0.0000 + 15.0595 0.0000 + 16.2568 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7447 1.0000 + -30.0208 1.0000 + -29.9819 1.0000 + -29.8886 1.0000 + -1.1678 1.0000 + 4.1541 1.0000 + 4.7483 1.0000 + 5.2311 1.0000 + 6.0125 1.0000 + 7.4085 1.0000 + 8.9608 0.0000 + 9.3188 0.0000 + 10.3531 0.0000 + 15.1264 0.0000 + 15.6355 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7445 1.0000 + -30.0296 1.0000 + -29.9811 1.0000 + -29.8879 1.0000 + -0.9290 1.0000 + 3.7034 1.0000 + 4.8102 1.0000 + 5.1970 1.0000 + 5.9664 1.0000 + 7.1173 1.0000 + 8.9157 0.0000 + 9.5830 0.0000 + 14.0696 0.0000 + 15.5381 0.0000 + 16.0450 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7443 1.0000 + -30.0398 1.0000 + -29.9802 1.0000 + -29.8871 1.0000 + -0.6068 1.0000 + 3.1346 1.0000 + 4.8473 1.0000 + 5.3098 1.0000 + 5.8138 1.0000 + 6.9753 1.0000 + 8.6937 0.0000 + 10.0930 0.0000 + 11.5987 0.0000 + 14.2851 0.0000 + 15.4916 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7442 1.0000 + -30.0495 1.0000 + -29.9792 1.0000 + -29.8864 1.0000 + -0.2132 1.0000 + 2.5322 1.0000 + 4.8734 1.0000 + 5.4530 1.0000 + 5.6251 1.0000 + 6.9349 1.0000 + 8.5950 0.0000 + 10.5671 0.0000 + 12.1071 0.0000 + 13.6101 0.0000 + 15.2056 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7441 1.0000 + -30.0571 1.0000 + -29.9785 1.0000 + -29.8858 1.0000 + 0.2373 1.0000 + 1.9361 1.0000 + 4.9016 1.0000 + 5.4135 1.0000 + 5.6118 1.0000 + 6.9300 1.0000 + 8.6308 0.0000 + 10.9545 0.0000 + 12.2321 0.0000 + 13.3411 0.0000 + 14.6028 0.0000 + + + -91.8813 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7440 1.0000 + -30.0612 1.0000 + -29.9781 1.0000 + -29.8855 1.0000 + 0.7080 1.0000 + 1.3914 1.0000 + 4.9262 1.0000 + 5.3148 1.0000 + 5.6677 1.0000 + 6.9317 1.0000 + 8.7105 0.0000 + 11.2069 0.0000 + 11.9941 0.0000 + 13.6247 0.0000 + 14.2566 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7447 1.0000 + -30.0118 1.0000 + -29.9913 1.0000 + -29.8886 1.0000 + -1.2087 1.0000 + 4.2480 1.0000 + 4.7537 1.0000 + 5.5479 1.0000 + 5.6464 1.0000 + 7.5854 1.0000 + 8.8369 0.0000 + 9.1686 0.0000 + 10.3783 0.0000 + 15.1703 0.0000 + 16.5372 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7446 1.0000 + -30.0140 1.0000 + -29.9911 1.0000 + -29.8884 1.0000 + -1.1599 1.0000 + 4.2600 1.0000 + 4.7624 1.0000 + 5.1876 1.0000 + 5.8950 1.0000 + 7.3708 1.0000 + 9.0334 0.0000 + 9.3519 0.0000 + 10.2679 0.0000 + 15.3111 0.0000 + 15.6587 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7445 1.0000 + -30.0200 1.0000 + -29.9906 1.0000 + -29.8880 1.0000 + -1.0132 1.0000 + 4.2030 1.0000 + 4.7943 1.0000 + 4.8011 1.0000 + 6.0641 1.0000 + 6.9806 1.0000 + 9.4178 0.0000 + 9.6455 0.0000 + 10.1655 0.0000 + 15.5541 0.0000 + 16.0175 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7444 1.0000 + -30.0289 1.0000 + -29.9897 1.0000 + -29.8872 1.0000 + -0.7738 1.0000 + 3.8102 1.0000 + 4.7014 1.0000 + 4.8920 1.0000 + 6.0747 1.0000 + 6.6867 1.0000 + 9.3773 0.0000 + 9.9364 0.0000 + 10.5923 0.0000 + 15.0458 0.0000 + 15.9243 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7441 1.0000 + -30.0390 1.0000 + -29.9887 1.0000 + -29.8864 1.0000 + -0.4528 1.0000 + 3.2344 1.0000 + 4.7338 1.0000 + 5.0752 1.0000 + 5.8733 1.0000 + 6.6224 1.0000 + 9.0753 0.0000 + 10.3673 0.0000 + 11.1413 0.0000 + 14.3495 0.0000 + 16.6028 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7440 1.0000 + -30.0487 1.0000 + -29.9878 1.0000 + -29.8857 1.0000 + -0.0611 1.0000 + 2.6291 1.0000 + 4.7819 1.0000 + 5.2693 1.0000 + 5.6458 1.0000 + 6.6483 1.0000 + 8.8604 0.0000 + 10.6806 0.0000 + 11.6275 0.0000 + 13.8130 0.0000 + 15.2714 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7438 1.0000 + -30.0563 1.0000 + -29.9871 1.0000 + -29.8850 1.0000 + 0.3892 1.0000 + 2.0335 1.0000 + 4.8463 1.0000 + 5.2455 1.0000 + 5.6563 1.0000 + 6.6606 1.0000 + 8.7680 0.0000 + 10.8072 0.0000 + 11.9897 0.0000 + 13.5317 0.0000 + 14.8625 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7438 1.0000 + -30.0604 1.0000 + -29.9867 1.0000 + -29.8847 1.0000 + 0.8747 1.0000 + 1.4744 1.0000 + 4.9295 1.0000 + 5.1004 1.0000 + 5.7671 1.0000 + 6.6527 1.0000 + 8.7570 0.0000 + 10.8011 0.0000 + 12.1859 0.0000 + 13.5593 0.0000 + 14.6572 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7444 1.0000 + -30.0105 1.0000 + -30.0038 1.0000 + -29.8876 1.0000 + -0.9548 1.0000 + 3.8567 1.0000 + 4.8138 1.0000 + 5.4323 1.0000 + 5.5813 1.0000 + 7.2363 1.0000 + 8.8397 0.0000 + 9.4096 0.0000 + 11.0606 0.0000 + 14.9041 0.0000 + 15.9154 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7444 1.0000 + -30.0127 1.0000 + -30.0037 1.0000 + -29.8874 1.0000 + -0.9054 1.0000 + 3.8932 1.0000 + 4.8113 1.0000 + 5.0970 1.0000 + 5.8095 1.0000 + 7.0569 1.0000 + 9.0275 0.0000 + 9.5614 0.0000 + 10.9012 0.0000 + 15.3640 0.0000 + 16.2477 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7443 1.0000 + -30.0188 1.0000 + -30.0031 1.0000 + -29.8869 1.0000 + -0.7600 1.0000 + 3.9970 1.0000 + 4.5299 1.0000 + 4.9001 1.0000 + 6.0104 1.0000 + 6.6764 1.0000 + 9.4299 0.0000 + 9.9366 0.0000 + 10.5322 0.0000 + 15.0414 0.0000 + 15.7405 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7441 1.0000 + -30.0277 1.0000 + -30.0023 1.0000 + -29.8862 1.0000 + -0.5239 1.0000 + 3.9586 1.0000 + 4.1573 1.0000 + 4.9630 1.0000 + 6.1585 1.0000 + 6.2704 1.0000 + 9.7369 0.0000 + 10.1887 0.0000 + 10.4392 0.0000 + 14.6116 0.0000 + 15.8892 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7439 1.0000 + -30.0379 1.0000 + -30.0014 1.0000 + -29.8854 1.0000 + -0.2066 1.0000 + 3.3648 1.0000 + 4.3281 1.0000 + 5.0858 1.0000 + 5.8933 1.0000 + 6.2876 1.0000 + 9.4924 0.0000 + 10.3513 0.0000 + 10.9098 0.0000 + 14.1968 0.0000 + 15.6095 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7437 1.0000 + -30.0476 1.0000 + -30.0005 1.0000 + -29.8847 1.0000 + 0.1788 1.0000 + 2.7700 1.0000 + 4.4886 1.0000 + 5.2214 1.0000 + 5.6433 1.0000 + 6.3659 1.0000 + 9.1667 0.0000 + 10.4414 0.0000 + 11.3646 0.0000 + 13.8896 0.0000 + 16.6031 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7436 1.0000 + -30.0552 1.0000 + -29.9998 1.0000 + -29.8840 1.0000 + 0.6216 1.0000 + 2.1905 1.0000 + 4.6276 1.0000 + 5.1554 1.0000 + 5.7004 1.0000 + 6.3833 1.0000 + 8.9358 0.0000 + 10.3679 0.0000 + 11.7330 0.0000 + 13.7871 0.0000 + 15.4993 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2905 1.0000 + -65.7435 1.0000 + -30.0593 1.0000 + -29.9994 1.0000 + -29.8837 1.0000 + 1.1087 1.0000 + 1.6347 1.0000 + 4.7486 1.0000 + 4.9984 1.0000 + 5.8749 1.0000 + 6.3442 1.0000 + 8.8213 0.0000 + 10.2716 0.0000 + 11.9440 0.0000 + 13.8193 0.0000 + 14.8856 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2901 1.0000 + -65.7441 1.0000 + -30.0183 1.0000 + -30.0091 1.0000 + -29.8863 1.0000 + -0.6139 1.0000 + 3.3047 1.0000 + 4.8442 1.0000 + 5.4603 1.0000 + 5.4868 1.0000 + 7.0343 1.0000 + 8.6590 0.0000 + 9.9415 0.0000 + 11.7134 0.0000 + 14.2240 0.0000 + 15.8795 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7441 1.0000 + -30.0181 1.0000 + -30.0113 1.0000 + -29.8862 1.0000 + -0.5649 1.0000 + 3.3377 1.0000 + 4.8084 1.0000 + 5.2074 1.0000 + 5.6705 1.0000 + 6.9017 1.0000 + 8.8064 0.0000 + 10.0721 0.0000 + 11.5068 0.0000 + 14.3145 0.0000 + 15.6369 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7440 1.0000 + -30.0176 1.0000 + -30.0174 1.0000 + -29.8857 1.0000 + -0.4208 1.0000 + 3.4287 1.0000 + 4.5635 1.0000 + 5.0640 1.0000 + 5.7943 1.0000 + 6.6030 1.0000 + 9.1559 0.0000 + 10.3672 0.0000 + 11.0498 0.0000 + 14.3100 0.0000 + 15.6899 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7438 1.0000 + -30.0263 1.0000 + -30.0168 1.0000 + -29.8850 1.0000 + -0.1891 1.0000 + 3.5310 1.0000 + 4.1526 1.0000 + 5.0962 1.0000 + 5.8378 1.0000 + 6.3101 1.0000 + 9.5515 0.0000 + 10.4117 0.0000 + 10.7785 0.0000 + 14.0757 0.0000 + 16.4690 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7436 1.0000 + -30.0365 1.0000 + -30.0159 1.0000 + -29.8842 1.0000 + 0.1197 1.0000 + 3.3712 1.0000 + 3.9854 1.0000 + 5.1910 1.0000 + 5.7030 1.0000 + 6.2124 1.0000 + 9.7686 0.0000 + 10.0355 0.0000 + 10.9145 0.0000 + 13.9867 0.0000 + 15.9162 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7434 1.0000 + -30.0463 1.0000 + -30.0150 1.0000 + -29.8835 1.0000 + 0.4894 1.0000 + 2.9018 1.0000 + 4.1317 1.0000 + 5.2339 1.0000 + 5.5776 1.0000 + 6.2422 1.0000 + 9.4373 0.0000 + 9.9987 0.0000 + 11.0336 0.0000 + 14.2044 0.0000 + 15.5874 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7433 1.0000 + -30.0539 1.0000 + -30.0143 1.0000 + -29.8829 1.0000 + 0.9061 1.0000 + 2.3921 1.0000 + 4.3127 1.0000 + 5.0699 1.0000 + 5.7376 1.0000 + 6.2494 1.0000 + 9.0950 0.0000 + 9.8623 0.0000 + 11.1873 0.0000 + 15.0131 0.0000 + 17.2295 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7431 1.0000 + -30.0580 1.0000 + -30.0139 1.0000 + -29.8825 1.0000 + 1.3392 1.0000 + 1.9119 1.0000 + 4.4535 1.0000 + 4.9101 1.0000 + 5.9724 1.0000 + 6.1724 1.0000 + 8.8920 0.0000 + 9.7378 0.0000 + 11.2934 0.0000 + 14.5094 0.0000 + 14.9006 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7438 1.0000 + -30.0320 1.0000 + -30.0077 1.0000 + -29.8852 1.0000 + -0.1990 1.0000 + 2.6933 1.0000 + 4.8622 1.0000 + 5.3088 1.0000 + 5.5698 1.0000 + 6.9576 1.0000 + 8.6840 0.0000 + 10.4231 0.0000 + 12.3103 0.0000 + 13.3388 0.0000 + 15.0063 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7438 1.0000 + -30.0318 1.0000 + -30.0099 1.0000 + -29.8850 1.0000 + -0.1505 1.0000 + 2.7229 1.0000 + 4.8168 1.0000 + 5.2487 1.0000 + 5.5888 1.0000 + 6.8570 1.0000 + 8.7830 0.0000 + 10.5162 0.0000 + 12.0017 0.0000 + 13.5605 0.0000 + 14.9311 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2902 1.0000 + -65.7436 1.0000 + -30.0312 1.0000 + -30.0160 1.0000 + -29.8846 1.0000 + -0.0083 1.0000 + 2.8063 1.0000 + 4.6280 1.0000 + 5.1868 1.0000 + 5.6156 1.0000 + 6.6210 1.0000 + 9.0297 0.0000 + 10.6548 0.0000 + 11.4979 0.0000 + 13.6805 0.0000 + 16.1680 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7435 1.0000 + -30.0305 1.0000 + -30.0249 1.0000 + -29.8838 1.0000 + 0.2176 1.0000 + 2.9196 1.0000 + 4.3150 1.0000 + 5.2001 1.0000 + 5.6107 1.0000 + 6.3844 1.0000 + 9.3223 0.0000 + 10.4868 0.0000 + 11.1488 0.0000 + 13.7394 0.0000 + 15.2525 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7433 1.0000 + -30.0353 1.0000 + -30.0296 1.0000 + -29.8831 1.0000 + 0.5095 1.0000 + 2.9934 1.0000 + 4.0235 1.0000 + 5.2081 1.0000 + 5.5733 1.0000 + 6.2653 1.0000 + 9.5540 0.0000 + 10.0537 0.0000 + 10.8460 0.0000 + 14.0317 0.0000 + 16.9865 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7431 1.0000 + -30.0450 1.0000 + -30.0288 1.0000 + -29.8823 1.0000 + 0.8493 1.0000 + 2.8878 1.0000 + 3.9281 1.0000 + 5.0740 1.0000 + 5.6506 1.0000 + 6.2584 1.0000 + 9.5863 0.0000 + 9.6119 0.0000 + 10.5896 0.0000 + 14.5477 0.0000 + 16.1231 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7430 1.0000 + -30.0527 1.0000 + -30.0281 1.0000 + -29.8818 1.0000 + 1.2065 1.0000 + 2.5979 1.0000 + 4.0342 1.0000 + 4.8601 1.0000 + 5.8427 1.0000 + 6.2709 1.0000 + 9.2185 0.0000 + 9.4083 0.0000 + 10.5443 0.0000 + 14.9799 0.0000 + 16.9946 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7429 1.0000 + -30.0568 1.0000 + -30.0277 1.0000 + -29.8814 1.0000 + 1.5149 1.0000 + 2.3015 1.0000 + 4.1783 1.0000 + 4.6820 1.0000 + 6.0499 1.0000 + 6.2287 1.0000 + 8.9581 0.0000 + 9.2598 0.0000 + 10.5742 0.0000 + 14.8199 0.0000 + 15.4551 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7436 1.0000 + -30.0427 1.0000 + -30.0068 1.0000 + -29.8843 1.0000 + 0.2722 1.0000 + 2.0800 1.0000 + 4.8773 1.0000 + 5.1767 1.0000 + 5.6077 1.0000 + 6.9482 1.0000 + 8.9102 0.0000 + 10.8202 0.0000 + 12.5032 0.0000 + 12.8741 0.0000 + 14.6540 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7436 1.0000 + -30.0425 1.0000 + -30.0088 1.0000 + -29.8842 1.0000 + 0.3219 1.0000 + 2.1086 1.0000 + 4.8435 1.0000 + 5.1373 1.0000 + 5.6282 1.0000 + 6.8548 1.0000 + 8.9591 0.0000 + 10.8385 0.0000 + 12.1616 0.0000 + 13.3887 0.0000 + 14.7173 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7434 1.0000 + -30.0420 1.0000 + -30.0149 1.0000 + -29.8837 1.0000 + 0.4637 1.0000 + 2.1902 1.0000 + 4.6998 1.0000 + 5.0929 1.0000 + 5.6713 1.0000 + 6.6315 1.0000 + 9.0845 0.0000 + 10.7099 0.0000 + 11.8347 0.0000 + 13.3260 0.0000 + 14.8037 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2904 1.0000 + -65.7433 1.0000 + -30.0412 1.0000 + -30.0239 1.0000 + -29.8830 1.0000 + 0.6817 1.0000 + 2.3190 1.0000 + 4.4554 1.0000 + 5.0740 1.0000 + 5.7125 1.0000 + 6.4023 1.0000 + 9.2380 0.0000 + 10.3235 0.0000 + 11.4656 0.0000 + 13.6342 0.0000 + 15.3546 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7431 1.0000 + -30.0404 1.0000 + -30.0342 1.0000 + -29.8822 1.0000 + 0.9487 1.0000 + 2.4808 1.0000 + 4.1899 1.0000 + 5.0008 1.0000 + 5.7567 1.0000 + 6.2838 1.0000 + 9.3589 0.0000 + 9.8771 0.0000 + 10.8863 0.0000 + 14.2986 0.0000 + 15.7162 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7429 1.0000 + -30.0441 1.0000 + -30.0396 1.0000 + -29.8814 1.0000 + 1.2299 1.0000 + 2.6376 1.0000 + 3.9806 1.0000 + 4.8199 1.0000 + 5.8594 1.0000 + 6.2868 1.0000 + 9.3046 0.0000 + 9.5580 0.0000 + 10.2980 0.0000 + 14.7255 0.0000 + 15.1041 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7427 1.0000 + -30.0517 1.0000 + -30.0390 1.0000 + -29.8808 1.0000 + 1.4810 1.0000 + 2.7241 1.0000 + 3.9050 1.0000 + 4.5774 1.0000 + 6.0293 1.0000 + 6.3312 1.0000 + 9.0511 0.0000 + 9.2924 0.0000 + 9.9968 0.0000 + 14.8542 0.0000 + 17.0014 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7427 1.0000 + -30.0559 1.0000 + -30.0387 1.0000 + -29.8806 1.0000 + 1.6404 1.0000 + 2.7265 1.0000 + 3.9706 1.0000 + 4.3593 1.0000 + 6.1919 1.0000 + 6.3459 1.0000 + 8.8868 0.0000 + 9.0124 0.0000 + 9.9580 0.0000 + 16.6992 0.0000 + 18.2794 0.0000 + + + -91.8816 1.0000 + -91.4266 1.0000 + -91.2915 1.0000 + -65.7435 1.0000 + -30.0485 1.0000 + -30.0062 1.0000 + -29.8839 1.0000 + 0.7508 1.0000 + 1.5290 1.0000 + 4.8872 1.0000 + 5.1019 1.0000 + 5.6111 1.0000 + 6.9563 1.0000 + 9.1684 0.0000 + 11.0963 0.0000 + 11.8845 0.0000 + 13.4542 0.0000 + 13.9816 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7434 1.0000 + -30.0483 1.0000 + -30.0082 1.0000 + -29.8836 1.0000 + 0.8074 1.0000 + 1.5503 1.0000 + 4.8837 1.0000 + 5.0282 1.0000 + 5.6611 1.0000 + 6.8614 1.0000 + 9.1821 0.0000 + 10.9712 0.0000 + 11.9443 0.0000 + 13.3175 0.0000 + 14.0111 0.0000 + + + -91.8809 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7433 1.0000 + -30.0478 1.0000 + -30.0143 1.0000 + -29.8832 1.0000 + 0.9654 1.0000 + 1.6153 1.0000 + 4.7866 1.0000 + 4.9431 1.0000 + 5.7637 1.0000 + 6.6281 1.0000 + 9.2181 0.0000 + 10.6031 0.0000 + 12.0239 0.0000 + 13.2393 0.0000 + 14.3926 0.0000 + + + -91.8809 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7432 1.0000 + -30.0471 1.0000 + -30.0234 1.0000 + -29.8825 1.0000 + 1.1904 1.0000 + 1.7430 1.0000 + 4.5650 1.0000 + 4.9174 1.0000 + 5.8769 1.0000 + 6.3717 1.0000 + 9.2652 0.0000 + 10.1220 0.0000 + 11.6464 0.0000 + 13.6165 0.0000 + 14.7417 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7430 1.0000 + -30.0463 1.0000 + -30.0337 1.0000 + -29.8817 1.0000 + 1.4108 1.0000 + 1.9753 1.0000 + 4.3324 1.0000 + 4.8220 1.0000 + 5.9828 1.0000 + 6.2221 1.0000 + 9.3061 0.0000 + 9.6403 0.0000 + 10.9581 0.0000 + 14.3215 0.0000 + 14.8365 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7428 1.0000 + -30.0455 1.0000 + -30.0435 1.0000 + -29.8809 1.0000 + 1.5658 1.0000 + 2.3279 1.0000 + 4.1275 1.0000 + 4.6077 1.0000 + 6.0847 1.0000 + 6.2409 1.0000 + 9.1753 0.0000 + 9.3638 0.0000 + 10.2421 0.0000 + 14.7264 0.0000 + 15.1864 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7426 1.0000 + -30.0512 1.0000 + -30.0449 1.0000 + -29.8803 1.0000 + 1.6627 1.0000 + 2.7320 1.0000 + 3.9747 1.0000 + 4.3124 1.0000 + 6.2217 1.0000 + 6.3335 1.0000 + 8.8577 0.0000 + 9.2736 0.0000 + 9.7144 0.0000 + 14.6891 0.0000 + 16.0466 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7426 1.0000 + -30.0554 1.0000 + -30.0446 1.0000 + -29.8800 1.0000 + 1.7108 1.0000 + 3.0627 1.0000 + 3.8918 1.0000 + 4.0425 1.0000 + 6.3299 1.0000 + 6.4187 1.0000 + 8.6764 0.0000 + 9.0361 0.0000 + 9.5744 0.0000 + 15.1073 0.0000 + 16.7779 0.0000 + + + -91.8791 1.0000 + -91.4239 1.0000 + -91.2890 1.0000 + -65.7431 1.0000 + -30.0077 1.0000 + -29.9745 1.0000 + -29.9360 1.0000 + -0.9922 1.0000 + 4.1697 1.0000 + 4.4791 1.0000 + 5.2762 1.0000 + 5.5520 1.0000 + 8.4050 0.0000 + 8.4412 0.0000 + 9.7376 0.0000 + 9.9653 0.0000 + 14.6114 0.0000 + 15.5437 0.0000 + + + -91.8795 1.0000 + -91.4244 1.0000 + -91.2894 1.0000 + -65.7431 1.0000 + -30.0099 1.0000 + -29.9743 1.0000 + -29.9359 1.0000 + -0.9433 1.0000 + 4.1493 1.0000 + 4.4316 1.0000 + 5.2543 1.0000 + 5.5665 1.0000 + 8.1472 0.0001 + 8.5627 0.0000 + 9.6381 0.0000 + 10.2814 0.0000 + 14.5670 0.0000 + 16.3874 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7431 1.0000 + -30.0160 1.0000 + -29.9738 1.0000 + -29.9355 1.0000 + -0.7997 1.0000 + 3.9591 1.0000 + 4.4276 1.0000 + 5.2220 1.0000 + 5.6067 1.0000 + 7.6690 0.9988 + 8.8770 0.0000 + 9.3920 0.0000 + 10.9261 0.0000 + 14.5052 0.0000 + 15.8789 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7429 1.0000 + -30.0250 1.0000 + -29.9729 1.0000 + -29.9348 1.0000 + -0.5652 1.0000 + 3.5680 1.0000 + 4.5355 1.0000 + 5.2114 1.0000 + 5.6623 1.0000 + 7.2067 1.0000 + 9.1059 0.0000 + 9.2908 0.0000 + 11.6363 0.0000 + 14.1697 0.0000 + 15.7589 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7427 1.0000 + -30.0353 1.0000 + -29.9719 1.0000 + -29.9341 1.0000 + -0.2521 1.0000 + 3.0868 1.0000 + 4.6814 1.0000 + 5.2185 1.0000 + 5.7142 1.0000 + 6.8332 1.0000 + 8.8793 0.0000 + 9.7265 0.0000 + 12.2929 0.0000 + 13.5685 0.0000 + 16.1058 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7425 1.0000 + -30.0450 1.0000 + -29.9710 1.0000 + -29.9334 1.0000 + 0.1257 1.0000 + 2.5716 1.0000 + 4.8261 1.0000 + 5.2273 1.0000 + 5.7364 1.0000 + 6.5820 1.0000 + 8.7708 0.0000 + 10.1434 0.0000 + 12.7927 0.0000 + 12.8308 0.0000 + 15.4481 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7424 1.0000 + -30.0526 1.0000 + -29.9703 1.0000 + -29.9329 1.0000 + 0.5574 1.0000 + 2.0489 1.0000 + 4.9438 1.0000 + 5.2220 1.0000 + 5.7179 1.0000 + 6.4574 1.0000 + 8.7837 0.0000 + 10.5245 0.0000 + 12.1279 0.0000 + 13.0743 0.0000 + 15.2254 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7423 1.0000 + -30.0568 1.0000 + -29.9699 1.0000 + -29.9325 1.0000 + 1.0239 1.0000 + 1.5364 1.0000 + 5.0194 1.0000 + 5.2031 1.0000 + 5.6900 1.0000 + 6.4177 1.0000 + 8.8427 0.0000 + 10.8611 0.0000 + 11.5754 0.0000 + 13.1725 0.0000 + 14.7884 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2897 1.0000 + -65.7431 1.0000 + -30.0075 1.0000 + -29.9776 1.0000 + -29.9357 1.0000 + -0.9418 1.0000 + 4.1601 1.0000 + 4.4633 1.0000 + 5.2925 1.0000 + 5.4803 1.0000 + 8.1369 0.0002 + 8.5843 0.0000 + 9.8748 0.0000 + 14.2706 0.0000 + 16.6056 0.0000 + 16.6825 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7431 1.0000 + -30.0097 1.0000 + -29.9774 1.0000 + -29.9356 1.0000 + -0.8921 1.0000 + 4.1617 1.0000 + 4.4064 1.0000 + 5.2343 1.0000 + 5.5218 1.0000 + 7.8744 0.5472 + 8.6852 0.0000 + 9.8973 0.0000 + 10.2230 0.0000 + 14.6840 0.0000 + 15.1549 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2897 1.0000 + -65.7430 1.0000 + -30.0157 1.0000 + -29.9768 1.0000 + -29.9352 1.0000 + -0.7465 1.0000 + 4.0060 1.0000 + 4.3910 1.0000 + 5.1646 1.0000 + 5.5823 1.0000 + 7.4453 1.0000 + 8.9926 0.0000 + 9.6515 0.0000 + 10.7842 0.0000 + 14.7401 0.0000 + 15.9068 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7428 1.0000 + -30.0247 1.0000 + -29.9759 1.0000 + -29.9346 1.0000 + -0.5124 1.0000 + 3.6173 1.0000 + 4.5175 1.0000 + 5.1467 1.0000 + 5.6283 1.0000 + 7.0241 1.0000 + 9.3214 0.0000 + 9.4009 0.0000 + 11.4365 0.0000 + 14.2651 0.0000 + 15.7142 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7426 1.0000 + -30.0350 1.0000 + -29.9750 1.0000 + -29.9339 1.0000 + -0.2008 1.0000 + 3.1352 1.0000 + 4.6826 1.0000 + 5.1753 1.0000 + 5.6422 1.0000 + 6.6940 1.0000 + 9.0514 0.0000 + 9.8080 0.0000 + 13.0238 0.0000 + 15.4136 0.0000 + 16.0797 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7424 1.0000 + -30.0447 1.0000 + -29.9741 1.0000 + -29.9332 1.0000 + 0.1782 1.0000 + 2.6185 1.0000 + 4.8334 1.0000 + 5.2268 1.0000 + 5.6216 1.0000 + 6.4836 1.0000 + 8.8850 0.0000 + 10.1806 0.0000 + 12.1773 0.0000 + 13.4647 0.0000 + 15.3704 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7423 1.0000 + -30.0524 1.0000 + -29.9734 1.0000 + -29.9327 1.0000 + 0.6080 1.0000 + 2.0944 1.0000 + 4.9487 1.0000 + 5.2360 1.0000 + 5.6214 1.0000 + 6.3720 1.0000 + 8.8398 0.0000 + 10.4741 0.0000 + 11.9232 0.0000 + 13.5675 0.0000 + 15.0575 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7422 1.0000 + -30.0566 1.0000 + -29.9730 1.0000 + -29.9323 1.0000 + 1.0767 1.0000 + 1.5797 1.0000 + 5.0331 1.0000 + 5.1824 1.0000 + 5.6559 1.0000 + 6.3220 1.0000 + 8.8601 0.0000 + 10.6497 0.0000 + 11.6448 0.0000 + 13.4921 0.0000 + 14.9068 0.0000 + + + -91.8794 1.0000 + -91.4243 1.0000 + -91.2893 1.0000 + -65.7429 1.0000 + -30.0066 1.0000 + -29.9862 1.0000 + -29.9351 1.0000 + -0.7866 1.0000 + 4.0335 1.0000 + 4.4889 1.0000 + 5.3371 1.0000 + 5.3463 1.0000 + 7.5604 1.0000 + 8.8667 0.0000 + 9.5757 0.0000 + 10.8119 0.0000 + 15.0193 0.0000 + 16.5679 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7429 1.0000 + -30.0088 1.0000 + -29.9860 1.0000 + -29.9350 1.0000 + -0.7381 1.0000 + 4.0728 1.0000 + 4.4246 1.0000 + 5.1607 1.0000 + 5.4807 1.0000 + 7.3825 1.0000 + 8.9797 0.0000 + 9.7876 0.0000 + 10.6899 0.0000 + 14.8927 0.0000 + 16.0636 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7428 1.0000 + -30.0149 1.0000 + -29.9854 1.0000 + -29.9346 1.0000 + -0.5926 1.0000 + 4.1214 1.0000 + 4.2640 1.0000 + 5.0156 1.0000 + 5.5704 1.0000 + 7.0120 1.0000 + 9.2675 0.0000 + 10.0834 0.0000 + 10.5691 0.0000 + 14.8072 0.0000 + 15.6699 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2899 1.0000 + -65.7426 1.0000 + -30.0239 1.0000 + -29.9846 1.0000 + -29.9340 1.0000 + -0.3590 1.0000 + 3.7621 1.0000 + 4.4212 1.0000 + 4.9587 1.0000 + 5.6136 1.0000 + 6.6438 1.0000 + 9.6171 0.0000 + 9.8168 0.0000 + 11.0150 0.0000 + 14.3910 0.0000 + 16.1444 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7424 1.0000 + -30.0342 1.0000 + -29.9837 1.0000 + -29.9333 1.0000 + -0.0480 1.0000 + 3.2758 1.0000 + 4.6646 1.0000 + 4.9722 1.0000 + 5.5802 1.0000 + 6.3794 1.0000 + 9.4388 0.0000 + 9.9520 0.0000 + 11.4875 0.0000 + 13.9130 0.0000 + 15.6021 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7422 1.0000 + -30.0440 1.0000 + -29.9828 1.0000 + -29.9326 1.0000 + 0.3278 1.0000 + 2.7560 1.0000 + 4.8584 1.0000 + 5.1054 1.0000 + 5.4544 1.0000 + 6.2435 1.0000 + 9.1535 0.0000 + 10.1417 0.0000 + 11.7635 0.0000 + 13.9583 0.0000 + 15.3074 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7421 1.0000 + -30.0516 1.0000 + -29.9821 1.0000 + -29.9320 1.0000 + 0.7545 1.0000 + 2.2317 1.0000 + 4.9434 1.0000 + 5.2715 1.0000 + 5.3901 1.0000 + 6.1613 1.0000 + 8.9788 0.0000 + 10.1660 0.0000 + 11.8759 0.0000 + 14.0401 0.0000 + 14.7589 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7421 1.0000 + -30.0559 1.0000 + -29.9817 1.0000 + -29.9317 1.0000 + 1.2187 1.0000 + 1.7187 1.0000 + 5.0186 1.0000 + 5.1440 1.0000 + 5.6004 1.0000 + 6.0785 1.0000 + 8.9071 0.0000 + 10.1124 0.0000 + 11.9295 0.0000 + 14.1658 0.0000 + 14.5853 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7427 1.0000 + -30.0054 1.0000 + -29.9989 1.0000 + -29.9343 1.0000 + -0.5379 1.0000 + 3.7030 1.0000 + 4.6090 1.0000 + 5.2630 1.0000 + 5.3959 1.0000 + 7.0695 1.0000 + 9.0908 0.0000 + 9.4357 0.0000 + 11.5575 0.0000 + 14.3516 0.0000 + 16.3601 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7426 1.0000 + -30.0076 1.0000 + -29.9987 1.0000 + -29.9341 1.0000 + -0.4887 1.0000 + 3.7492 1.0000 + 4.5743 1.0000 + 5.0985 1.0000 + 5.4857 1.0000 + 6.9239 1.0000 + 9.2263 0.0000 + 9.5939 0.0000 + 11.3727 0.0000 + 14.7170 0.0000 + 16.1538 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7426 1.0000 + -30.0138 1.0000 + -29.9982 1.0000 + -29.9337 1.0000 + -0.3455 1.0000 + 3.8851 1.0000 + 4.3963 1.0000 + 4.8981 1.0000 + 5.5780 1.0000 + 6.6012 1.0000 + 9.5131 0.0000 + 9.9903 0.0000 + 10.9583 0.0000 + 15.0569 0.0000 + 16.3985 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7424 1.0000 + -30.0228 1.0000 + -29.9974 1.0000 + -29.9331 1.0000 + -0.1133 1.0000 + 3.9680 1.0000 + 4.1423 1.0000 + 4.8263 1.0000 + 5.6458 1.0000 + 6.2595 1.0000 + 9.7738 0.0000 + 10.2498 0.0000 + 10.7319 0.0000 + 13.9527 0.0000 + 15.3880 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7422 1.0000 + -30.0330 1.0000 + -29.9965 1.0000 + -29.9323 1.0000 + 0.1946 1.0000 + 3.4921 1.0000 + 4.4185 1.0000 + 4.8251 1.0000 + 5.6324 1.0000 + 6.0245 1.0000 + 9.7715 0.0000 + 9.9943 0.0000 + 11.1510 0.0000 + 13.7014 0.0000 + 16.5495 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7420 1.0000 + -30.0429 1.0000 + -29.9956 1.0000 + -29.9316 1.0000 + 0.5628 1.0000 + 2.9731 1.0000 + 4.7045 1.0000 + 4.9098 1.0000 + 5.4759 1.0000 + 5.9673 1.0000 + 9.4317 0.0000 + 9.8472 0.0000 + 11.5921 0.0000 + 13.6688 0.0000 + 15.3116 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7418 1.0000 + -30.0505 1.0000 + -29.9949 1.0000 + -29.9311 1.0000 + 0.9775 1.0000 + 2.4579 1.0000 + 4.7922 1.0000 + 5.2187 1.0000 + 5.3117 1.0000 + 5.9343 1.0000 + 9.1395 0.0000 + 9.6338 0.0000 + 11.9354 0.0000 + 13.8117 0.0000 + 15.0790 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7418 1.0000 + -30.0548 1.0000 + -29.9946 1.0000 + -29.9308 1.0000 + 1.4086 1.0000 + 1.9761 1.0000 + 4.8168 1.0000 + 5.2061 1.0000 + 5.5597 1.0000 + 5.8151 1.0000 + 8.9724 0.0000 + 9.4790 0.0000 + 12.1291 0.0000 + 14.1071 0.0000 + 15.6601 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2903 1.0000 + -65.7424 1.0000 + -30.0135 1.0000 + -30.0040 1.0000 + -29.9332 1.0000 + -0.2065 1.0000 + 3.2450 1.0000 + 4.7589 1.0000 + 5.2488 1.0000 + 5.4433 1.0000 + 6.6906 1.0000 + 8.9578 0.0000 + 9.7562 0.0000 + 12.2284 0.0000 + 13.6467 0.0000 + 15.6738 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7424 1.0000 + -30.0133 1.0000 + -30.0062 1.0000 + -29.9330 1.0000 + -0.1582 1.0000 + 3.2898 1.0000 + 4.7575 1.0000 + 5.1144 1.0000 + 5.4721 1.0000 + 6.5804 1.0000 + 9.0982 0.0000 + 9.8501 0.0000 + 11.9458 0.0000 + 13.9323 0.0000 + 15.6257 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7422 1.0000 + -30.0128 1.0000 + -30.0124 1.0000 + -29.9326 1.0000 + -0.0156 1.0000 + 3.4223 1.0000 + 4.6865 1.0000 + 4.8536 1.0000 + 5.5334 1.0000 + 6.3183 1.0000 + 9.4083 0.0000 + 10.0693 0.0000 + 11.4327 0.0000 + 13.8385 0.0000 + 15.3753 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7421 1.0000 + -30.0214 1.0000 + -30.0120 1.0000 + -29.9320 1.0000 + 0.2115 1.0000 + 3.6251 1.0000 + 4.2944 1.0000 + 4.8274 1.0000 + 5.6180 1.0000 + 6.0093 1.0000 + 9.6312 0.0000 + 10.2757 0.0000 + 11.0215 0.0000 + 13.6105 0.0000 + 15.5689 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7418 1.0000 + -30.0317 1.0000 + -30.0111 1.0000 + -29.9313 1.0000 + 0.5117 1.0000 + 3.6756 1.0000 + 4.0282 1.0000 + 4.8696 1.0000 + 5.6990 1.0000 + 5.7349 1.0000 + 9.5362 0.0000 + 10.2061 0.0000 + 11.0080 0.0000 + 13.5324 0.0000 + 15.5343 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7417 1.0000 + -30.0416 1.0000 + -30.0103 1.0000 + -29.9306 1.0000 + 0.8642 1.0000 + 3.2318 1.0000 + 4.2558 1.0000 + 4.9684 1.0000 + 5.4836 1.0000 + 5.8019 1.0000 + 9.2565 0.0000 + 9.8056 0.0000 + 11.2920 0.0000 + 13.6768 0.0000 + 15.4872 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7415 1.0000 + -30.0493 1.0000 + -30.0096 1.0000 + -29.9300 1.0000 + 1.2490 1.0000 + 2.7560 1.0000 + 4.4489 1.0000 + 5.1394 1.0000 + 5.3565 1.0000 + 5.8359 1.0000 + 8.9975 0.0000 + 9.3530 0.0000 + 11.5665 0.0000 + 14.0109 0.0000 + 15.4805 0.0000 + + + -91.8796 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7414 1.0000 + -30.0535 1.0000 + -30.0091 1.0000 + -29.9298 1.0000 + 1.6087 1.0000 + 2.3515 1.0000 + 4.5288 1.0000 + 5.1724 1.0000 + 5.4938 1.0000 + 5.7819 1.0000 + 8.8529 0.0000 + 9.0524 0.0000 + 11.7104 0.0000 + 14.0573 0.0000 + 15.0900 0.0000 + + + -91.8814 1.0000 + -91.4264 1.0000 + -91.2914 1.0000 + -65.7422 1.0000 + -30.0274 1.0000 + -30.0027 1.0000 + -29.9322 1.0000 + 0.1919 1.0000 + 2.7296 1.0000 + 4.8887 1.0000 + 5.2689 1.0000 + 5.4479 1.0000 + 6.4571 1.0000 + 8.9309 0.0000 + 10.1141 0.0000 + 12.7287 0.0000 + 12.8456 0.0000 + 15.3170 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7421 1.0000 + -30.0272 1.0000 + -30.0048 1.0000 + -29.9320 1.0000 + 0.2409 1.0000 + 2.7729 1.0000 + 4.8898 1.0000 + 5.2223 1.0000 + 5.3965 1.0000 + 6.3796 1.0000 + 9.0274 0.0000 + 10.1593 0.0000 + 12.1501 0.0000 + 13.4325 0.0000 + 15.0368 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7419 1.0000 + -30.0267 1.0000 + -30.0110 1.0000 + -29.9316 1.0000 + 0.3806 1.0000 + 2.8996 1.0000 + 4.8497 1.0000 + 5.0127 1.0000 + 5.3985 1.0000 + 6.1868 1.0000 + 9.2455 0.0000 + 10.1860 0.0000 + 11.6938 0.0000 + 13.6620 0.0000 + 14.8455 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7418 1.0000 + -30.0259 1.0000 + -30.0201 1.0000 + -29.9310 1.0000 + 0.6011 1.0000 + 3.0992 1.0000 + 4.5252 1.0000 + 4.9705 1.0000 + 5.4410 1.0000 + 5.9674 1.0000 + 9.3795 0.0000 + 10.0938 0.0000 + 11.4215 0.0000 + 13.4946 0.0000 + 15.3249 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7416 1.0000 + -30.0305 1.0000 + -30.0251 1.0000 + -29.9303 1.0000 + 0.8844 1.0000 + 3.3282 1.0000 + 4.1307 1.0000 + 4.9976 1.0000 + 5.4432 1.0000 + 5.8368 1.0000 + 9.1709 0.0000 + 10.0960 0.0000 + 11.0760 0.0000 + 13.6019 0.0000 + 15.5760 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7414 1.0000 + -30.0404 1.0000 + -30.0242 1.0000 + -29.9296 1.0000 + 1.2071 1.0000 + 3.3733 1.0000 + 3.9450 1.0000 + 5.0033 1.0000 + 5.4115 1.0000 + 5.8500 1.0000 + 8.8027 0.0000 + 9.9189 0.0000 + 10.8392 0.0000 + 13.9632 0.0000 + 15.2363 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7413 1.0000 + -30.0482 1.0000 + -30.0236 1.0000 + -29.9291 1.0000 + 1.5374 1.0000 + 3.0788 1.0000 + 4.0952 1.0000 + 4.9405 1.0000 + 5.4963 1.0000 + 5.8970 1.0000 + 8.4845 0.0000 + 9.4593 0.0000 + 10.8758 0.0000 + 14.4053 0.0000 + 17.6986 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7411 1.0000 + -30.0524 1.0000 + -30.0233 1.0000 + -29.9289 1.0000 + 1.8017 1.0000 + 2.7984 1.0000 + 4.2319 1.0000 + 4.8727 1.0000 + 5.6545 1.0000 + 5.8902 1.0000 + 8.3046 0.0000 + 9.1174 0.0000 + 10.9361 0.0000 + 14.6714 0.0000 + 15.1061 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7419 1.0000 + -30.0381 1.0000 + -30.0016 1.0000 + -29.9314 1.0000 + 0.6438 1.0000 + 2.1972 1.0000 + 4.9816 1.0000 + 5.2821 1.0000 + 5.4079 1.0000 + 6.3587 1.0000 + 9.0891 0.0000 + 10.4109 0.0000 + 12.0762 0.0000 + 12.9720 0.0000 + 14.7931 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7418 1.0000 + -30.0379 1.0000 + -30.0038 1.0000 + -29.9312 1.0000 + 0.6917 1.0000 + 2.2385 1.0000 + 4.9684 1.0000 + 5.2605 1.0000 + 5.3795 1.0000 + 6.2871 1.0000 + 9.1342 0.0000 + 10.3626 0.0000 + 11.8755 0.0000 + 13.5638 0.0000 + 14.7415 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7417 1.0000 + -30.0374 1.0000 + -30.0100 1.0000 + -29.9308 1.0000 + 0.8289 1.0000 + 2.3628 1.0000 + 4.8680 1.0000 + 5.2167 1.0000 + 5.3487 1.0000 + 6.1151 1.0000 + 9.2333 0.0000 + 10.1098 0.0000 + 11.7864 0.0000 + 13.8645 0.0000 + 14.5821 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7415 1.0000 + -30.0368 1.0000 + -30.0191 1.0000 + -29.9302 1.0000 + 1.0385 1.0000 + 2.5659 1.0000 + 4.6184 1.0000 + 5.2494 1.0000 + 5.2935 1.0000 + 5.9474 1.0000 + 9.2299 0.0000 + 9.7805 0.0000 + 11.7623 0.0000 + 14.6669 0.0000 + 33.9627 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7413 1.0000 + -30.0360 1.0000 + -30.0295 1.0000 + -29.9295 1.0000 + 1.2933 1.0000 + 2.8351 1.0000 + 4.3053 1.0000 + 5.1462 1.0000 + 5.3500 1.0000 + 5.8888 1.0000 + 8.8751 0.0000 + 9.7440 0.0000 + 11.2586 0.0000 + 13.7436 0.0000 + 15.3267 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7412 1.0000 + -30.0394 1.0000 + -30.0352 1.0000 + -29.9289 1.0000 + 1.5626 1.0000 + 3.1227 1.0000 + 4.0176 1.0000 + 4.9307 1.0000 + 5.5039 1.0000 + 5.9329 1.0000 + 8.4289 0.0000 + 9.7601 0.0000 + 10.6018 0.0000 + 14.2919 0.0000 + 15.0899 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7410 1.0000 + -30.0472 1.0000 + -30.0346 1.0000 + -29.9284 1.0000 + 1.8088 1.0000 + 3.2901 1.0000 + 3.8891 1.0000 + 4.7082 1.0000 + 5.7010 1.0000 + 6.0056 1.0000 + 8.0678 0.0044 + 9.5108 0.0000 + 10.2464 0.0000 + 14.9130 0.0000 + 15.6767 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2912 1.0000 + -65.7409 1.0000 + -30.0515 1.0000 + -30.0343 1.0000 + -29.9281 1.0000 + 1.9715 1.0000 + 3.2549 1.0000 + 3.9834 1.0000 + 4.5315 1.0000 + 5.8883 1.0000 + 6.0297 1.0000 + 7.8661 0.5933 + 9.1689 0.0000 + 10.2004 0.0000 + 15.0616 0.0000 + 32.0644 0.0000 + + + -91.8815 1.0000 + -91.4266 1.0000 + -91.2915 1.0000 + -65.7418 1.0000 + -30.0440 1.0000 + -30.0011 1.0000 + -29.9310 1.0000 + 1.1269 1.0000 + 1.6721 1.0000 + 5.0342 1.0000 + 5.2771 1.0000 + 5.3683 1.0000 + 6.3348 1.0000 + 9.3061 0.0000 + 10.6059 0.0000 + 11.5175 0.0000 + 13.0325 0.0000 + 14.6615 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7417 1.0000 + -30.0438 1.0000 + -30.0032 1.0000 + -29.9308 1.0000 + 1.1784 1.0000 + 1.7101 1.0000 + 5.0365 1.0000 + 5.1518 1.0000 + 5.4647 1.0000 + 6.2520 1.0000 + 9.3181 0.0000 + 10.4031 0.0000 + 11.5903 0.0000 + 13.3633 0.0000 + 14.5583 0.0000 + + + -91.8801 1.0000 + -91.4252 1.0000 + -91.2901 1.0000 + -65.7415 1.0000 + -30.0433 1.0000 + -30.0093 1.0000 + -29.9303 1.0000 + 1.3163 1.0000 + 1.8312 1.0000 + 4.8941 1.0000 + 5.1190 1.0000 + 5.5631 1.0000 + 6.0425 1.0000 + 9.3454 0.0000 + 9.9129 0.0000 + 12.0493 0.0000 + 13.9108 0.0000 + 14.3729 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7414 1.0000 + -30.0427 1.0000 + -30.0185 1.0000 + -29.9297 1.0000 + 1.5003 1.0000 + 2.0569 1.0000 + 4.6455 1.0000 + 5.1693 1.0000 + 5.5995 1.0000 + 5.8371 1.0000 + 9.2378 0.0000 + 9.4800 0.0000 + 11.9139 0.0000 + 13.5604 0.0000 + 14.7551 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7412 1.0000 + -30.0419 1.0000 + -30.0289 1.0000 + -29.9291 1.0000 + 1.6855 1.0000 + 2.3977 1.0000 + 4.3844 1.0000 + 5.1110 1.0000 + 5.5521 1.0000 + 5.8491 1.0000 + 8.7124 0.0000 + 9.4831 0.0000 + 11.3760 0.0000 + 13.8572 0.0000 + 14.9892 0.0000 + + + -91.8810 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7410 1.0000 + -30.0411 1.0000 + -30.0389 1.0000 + -29.9285 1.0000 + 1.8550 1.0000 + 2.8180 1.0000 + 4.1421 1.0000 + 4.8462 1.0000 + 5.6803 1.0000 + 5.9491 1.0000 + 8.2154 0.0000 + 9.5095 0.0000 + 10.5843 0.0000 + 14.5072 0.0000 + 15.0778 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7409 1.0000 + -30.0467 1.0000 + -30.0406 1.0000 + -29.9280 1.0000 + 1.9950 1.0000 + 3.2581 1.0000 + 3.9509 1.0000 + 4.5226 1.0000 + 5.8957 1.0000 + 6.0587 1.0000 + 7.8278 0.7815 + 9.4491 0.0000 + 9.9344 0.0000 + 15.0260 0.0000 + 18.3727 0.0000 + + + -91.8815 1.0000 + -91.4265 1.0000 + -91.2915 1.0000 + -65.7408 1.0000 + -30.0510 1.0000 + -30.0402 1.0000 + -29.9277 1.0000 + 2.0780 1.0000 + 3.6286 1.0000 + 3.8595 1.0000 + 4.2059 1.0000 + 6.0817 1.0000 + 6.1302 1.0000 + 7.6065 1.0000 + 9.1931 0.0000 + 9.7385 0.0000 + 15.0476 0.0000 + 16.6319 0.0000 + + + -91.8793 1.0000 + -91.4243 1.0000 + -91.2893 1.0000 + -65.7415 1.0000 + -30.0028 1.0000 + -29.9802 1.0000 + -29.9695 1.0000 + -0.4815 1.0000 + 3.4597 1.0000 + 4.4964 1.0000 + 4.9371 1.0000 + 5.1831 1.0000 + 8.4989 0.0000 + 9.1550 0.0000 + 10.1399 0.0000 + 10.4152 0.0000 + 14.2974 0.0000 + 14.8308 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2897 1.0000 + -65.7415 1.0000 + -30.0050 1.0000 + -29.9801 1.0000 + -29.9693 1.0000 + -0.4342 1.0000 + 3.4391 1.0000 + 4.4529 1.0000 + 4.9676 1.0000 + 5.2040 1.0000 + 8.2556 0.0000 + 9.2125 0.0000 + 10.0413 0.0000 + 10.7194 0.0000 + 14.2965 0.0000 + 15.1176 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7414 1.0000 + -30.0112 1.0000 + -29.9796 1.0000 + -29.9688 1.0000 + -0.2928 1.0000 + 3.3540 1.0000 + 4.3881 1.0000 + 5.0261 1.0000 + 5.2648 1.0000 + 7.7736 0.9387 + 9.3605 0.0000 + 9.8023 0.0000 + 11.3678 0.0000 + 13.9531 0.0000 + 14.9554 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7412 1.0000 + -30.0203 1.0000 + -29.9791 1.0000 + -29.9679 1.0000 + -0.0672 1.0000 + 3.1662 1.0000 + 4.3914 1.0000 + 5.0790 1.0000 + 5.3596 1.0000 + 7.2805 1.0000 + 9.4059 0.0000 + 9.6783 0.0000 + 12.0688 0.0000 + 13.4792 0.0000 + 15.2550 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7411 1.0000 + -30.0306 1.0000 + -29.9785 1.0000 + -29.9670 1.0000 + 0.2282 1.0000 + 2.8837 1.0000 + 4.4758 1.0000 + 5.1145 1.0000 + 5.4784 1.0000 + 6.8477 1.0000 + 9.1811 0.0000 + 9.8874 0.0000 + 12.5970 0.0000 + 12.9048 0.0000 + 15.2176 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7408 1.0000 + -30.0404 1.0000 + -29.9778 1.0000 + -29.9661 1.0000 + 0.5762 1.0000 + 2.5428 1.0000 + 4.6037 1.0000 + 5.1264 1.0000 + 5.6095 1.0000 + 6.4965 1.0000 + 9.0211 0.0000 + 10.1220 0.0000 + 12.3062 0.0000 + 12.7724 0.0000 + 15.5499 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7407 1.0000 + -30.0482 1.0000 + -29.9773 1.0000 + -29.9654 1.0000 + 0.9542 1.0000 + 2.1721 1.0000 + 4.7324 1.0000 + 5.1121 1.0000 + 5.7425 1.0000 + 6.2291 1.0000 + 8.9691 0.0000 + 10.3317 0.0000 + 11.7644 0.0000 + 12.7021 0.0000 + 15.1622 0.0000 + + + -91.8793 1.0000 + -91.4243 1.0000 + -91.2893 1.0000 + -65.7406 1.0000 + -30.0524 1.0000 + -29.9770 1.0000 + -29.9649 1.0000 + 1.3325 1.0000 + 1.8005 1.0000 + 4.8244 1.0000 + 5.0841 1.0000 + 5.8749 1.0000 + 6.0344 1.0000 + 8.9800 0.0000 + 10.4848 0.0000 + 11.3991 0.0000 + 12.6194 0.0000 + 17.5491 0.0000 + + + -91.8794 1.0000 + -91.4244 1.0000 + -91.2894 1.0000 + -65.7415 1.0000 + -30.0025 1.0000 + -29.9799 1.0000 + -29.9726 1.0000 + -0.4309 1.0000 + 3.4495 1.0000 + 4.4823 1.0000 + 4.9614 1.0000 + 5.1769 1.0000 + 8.1972 0.0000 + 9.2037 0.0000 + 10.3016 0.0000 + 10.5059 0.0000 + 14.3943 0.0000 + 15.2824 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7414 1.0000 + -30.0047 1.0000 + -29.9798 1.0000 + -29.9724 1.0000 + -0.3827 1.0000 + 3.4372 1.0000 + 4.4369 1.0000 + 4.9880 1.0000 + 5.1943 1.0000 + 7.9855 0.0733 + 9.2633 0.0000 + 10.3201 0.0000 + 10.6409 0.0000 + 14.3071 0.0000 + 15.7382 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7413 1.0000 + -30.0109 1.0000 + -29.9795 1.0000 + -29.9718 1.0000 + -0.2406 1.0000 + 3.3744 1.0000 + 4.3644 1.0000 + 5.0412 1.0000 + 5.2443 1.0000 + 7.5476 1.0000 + 9.4153 0.0000 + 10.0599 0.0000 + 11.2380 0.0000 + 14.8208 0.0000 + 16.0819 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7412 1.0000 + -30.0200 1.0000 + -29.9789 1.0000 + -29.9710 1.0000 + -0.0152 1.0000 + 3.2090 1.0000 + 4.3636 1.0000 + 5.0929 1.0000 + 5.3207 1.0000 + 7.0926 1.0000 + 9.5502 0.0000 + 9.7938 0.0000 + 11.8036 0.0000 + 13.5951 0.0000 + 14.9192 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7410 1.0000 + -30.0303 1.0000 + -29.9783 1.0000 + -29.9700 1.0000 + 0.2806 1.0000 + 2.9377 1.0000 + 4.4563 1.0000 + 5.1302 1.0000 + 5.4164 1.0000 + 6.6996 1.0000 + 9.3444 0.0000 + 9.9025 0.0000 + 12.0852 0.0000 + 13.4362 0.0000 + 15.8291 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7407 1.0000 + -30.0402 1.0000 + -29.9776 1.0000 + -29.9691 1.0000 + 0.6271 1.0000 + 2.6012 1.0000 + 4.5958 1.0000 + 5.1415 1.0000 + 5.5298 1.0000 + 6.3932 1.0000 + 9.1313 0.0000 + 10.0660 0.0000 + 11.8833 0.0000 + 13.3141 0.0000 + 15.1866 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7406 1.0000 + -30.0479 1.0000 + -29.9771 1.0000 + -29.9684 1.0000 + 1.0037 1.0000 + 2.2324 1.0000 + 4.7288 1.0000 + 5.1208 1.0000 + 5.6641 1.0000 + 6.1656 1.0000 + 9.0233 0.0000 + 10.1524 0.0000 + 11.6108 0.0000 + 13.1453 0.0000 + 15.2752 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2900 1.0000 + -65.7405 1.0000 + -30.0521 1.0000 + -29.9768 1.0000 + -29.9680 1.0000 + 1.3741 1.0000 + 1.8670 1.0000 + 4.8158 1.0000 + 5.0875 1.0000 + 5.8147 1.0000 + 5.9871 1.0000 + 8.9976 0.0000 + 10.1607 0.0000 + 11.4588 0.0000 + 13.0058 0.0000 + 15.0515 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7413 1.0000 + -30.0017 1.0000 + -29.9814 1.0000 + -29.9793 1.0000 + -0.2798 1.0000 + 3.3917 1.0000 + 4.4650 1.0000 + 5.0319 1.0000 + 5.1692 1.0000 + 7.6464 0.9996 + 9.3147 0.0000 + 10.0458 0.0000 + 11.2372 0.0000 + 14.4922 0.0000 + 15.3633 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7412 1.0000 + -30.0039 1.0000 + -29.9812 1.0000 + -29.9792 1.0000 + -0.2318 1.0000 + 3.4031 1.0000 + 4.4148 1.0000 + 5.0453 1.0000 + 5.1799 1.0000 + 7.4709 1.0000 + 9.3790 0.0000 + 10.2465 0.0000 + 11.0981 0.0000 + 14.1220 0.0000 + 16.8656 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7411 1.0000 + -30.0101 1.0000 + -29.9806 1.0000 + -29.9788 1.0000 + -0.0888 1.0000 + 3.4098 1.0000 + 4.3128 1.0000 + 5.0782 1.0000 + 5.2075 1.0000 + 7.0931 1.0000 + 9.5240 0.0000 + 10.5314 0.0000 + 10.9313 0.0000 + 13.8315 0.0000 + 14.9563 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7410 1.0000 + -30.0192 1.0000 + -29.9798 1.0000 + -29.9782 1.0000 + 0.1365 1.0000 + 3.3258 1.0000 + 4.2788 1.0000 + 5.1226 1.0000 + 5.2385 1.0000 + 6.6994 1.0000 + 9.6594 0.0000 + 10.2232 0.0000 + 11.3212 0.0000 + 13.9202 0.0000 + 16.2795 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7408 1.0000 + -30.0296 1.0000 + -29.9790 1.0000 + -29.9776 1.0000 + 0.4308 1.0000 + 3.0973 1.0000 + 4.3838 1.0000 + 5.1738 1.0000 + 5.2576 1.0000 + 6.3799 1.0000 + 9.6051 0.0000 + 9.9623 0.0000 + 11.5706 0.0000 + 13.6078 0.0000 + 14.8495 0.0000 + + + -91.8796 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7405 1.0000 + -30.0394 1.0000 + -29.9782 1.0000 + -29.9768 1.0000 + 0.7749 1.0000 + 2.7747 1.0000 + 4.5617 1.0000 + 5.1803 1.0000 + 5.3158 1.0000 + 6.1636 1.0000 + 9.3464 0.0000 + 9.8339 0.0000 + 11.6131 0.0000 + 13.9966 0.0000 + 14.7722 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7404 1.0000 + -30.0472 1.0000 + -29.9775 1.0000 + -29.9763 1.0000 + 1.1431 1.0000 + 2.4134 1.0000 + 4.7126 1.0000 + 5.1290 1.0000 + 5.4671 1.0000 + 6.0157 1.0000 + 9.1396 0.0000 + 9.6449 0.0000 + 11.6446 0.0000 + 14.7531 0.0000 + 45.4682 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2902 1.0000 + -65.7404 1.0000 + -30.0514 1.0000 + -29.9772 1.0000 + -29.9760 1.0000 + 1.4899 1.0000 + 2.0701 1.0000 + 4.7840 1.0000 + 5.0904 1.0000 + 5.6669 1.0000 + 5.8686 1.0000 + 9.0434 0.0000 + 9.4853 0.0000 + 11.6814 0.0000 + 13.7976 0.0000 + 15.2308 0.0000 + + + -91.8796 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7410 1.0000 + -30.0005 1.0000 + -29.9942 1.0000 + -29.9785 1.0000 + -0.0384 1.0000 + 3.2400 1.0000 + 4.4989 1.0000 + 5.1411 1.0000 + 5.1734 1.0000 + 7.1079 1.0000 + 9.3512 0.0000 + 9.8771 0.0000 + 11.9958 0.0000 + 13.6113 0.0000 + 21.7136 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7410 1.0000 + -30.0027 1.0000 + -29.9940 1.0000 + -29.9784 1.0000 + 0.0097 1.0000 + 3.2752 1.0000 + 4.4507 1.0000 + 5.1290 1.0000 + 5.1813 1.0000 + 6.9619 1.0000 + 9.4416 0.0000 + 10.0172 0.0000 + 11.7522 0.0000 + 13.6423 0.0000 + 14.9614 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7409 1.0000 + -30.0089 1.0000 + -29.9935 1.0000 + -29.9780 1.0000 + 0.1509 1.0000 + 3.3699 1.0000 + 4.3172 1.0000 + 5.1057 1.0000 + 5.2032 1.0000 + 6.6401 1.0000 + 9.5752 0.0000 + 10.3957 0.0000 + 11.2701 0.0000 + 13.5268 0.0000 + 14.8940 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7407 1.0000 + -30.0180 1.0000 + -29.9927 1.0000 + -29.9775 1.0000 + 0.3757 1.0000 + 3.4547 1.0000 + 4.1789 1.0000 + 5.0808 1.0000 + 5.2321 1.0000 + 6.3094 1.0000 + 9.5872 0.0000 + 10.6701 0.0000 + 10.9785 0.0000 + 13.3361 0.0000 + 16.3021 0.0000 + + + -91.8798 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7405 1.0000 + -30.0284 1.0000 + -29.9918 1.0000 + -29.9768 1.0000 + 0.6661 1.0000 + 3.3528 1.0000 + 4.2329 1.0000 + 5.0410 1.0000 + 5.2587 1.0000 + 6.0667 1.0000 + 9.4049 0.0000 + 10.2926 0.0000 + 11.3119 0.0000 + 13.8752 0.0000 + 38.4800 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7403 1.0000 + -30.0384 1.0000 + -29.9910 1.0000 + -29.9762 1.0000 + 1.0012 1.0000 + 3.0611 1.0000 + 4.4746 1.0000 + 4.9804 1.0000 + 5.2893 1.0000 + 5.9349 1.0000 + 9.1205 0.0000 + 9.8404 0.0000 + 11.5936 0.0000 + 13.6823 0.0000 + 15.1706 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7401 1.0000 + -30.0461 1.0000 + -29.9903 1.0000 + -29.9758 1.0000 + 1.3562 1.0000 + 2.7118 1.0000 + 4.6771 1.0000 + 4.9797 1.0000 + 5.3623 1.0000 + 5.8533 1.0000 + 8.8711 0.0000 + 9.4054 0.0000 + 11.8042 0.0000 + 14.1600 0.0000 + 14.8362 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7401 1.0000 + -30.0504 1.0000 + -29.9899 1.0000 + -29.9755 1.0000 + 1.6624 1.0000 + 2.4033 1.0000 + 4.7026 1.0000 + 5.0589 1.0000 + 5.5288 1.0000 + 5.7361 1.0000 + 8.7332 0.0000 + 9.1257 0.0000 + 11.9246 0.0000 + 14.4000 0.0000 + 14.8474 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7407 1.0000 + -30.0089 1.0000 + -29.9991 1.0000 + -29.9776 1.0000 + 0.2750 1.0000 + 2.9834 1.0000 + 4.6018 1.0000 + 5.1861 1.0000 + 5.2760 1.0000 + 6.6473 1.0000 + 9.2218 0.0000 + 9.9612 0.0000 + 12.7917 0.0000 + 14.6660 0.0000 + 37.0432 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7407 1.0000 + -30.0087 1.0000 + -30.0013 1.0000 + -29.9775 1.0000 + 0.3237 1.0000 + 3.0324 1.0000 + 4.5699 1.0000 + 5.1962 1.0000 + 5.2285 1.0000 + 6.5349 1.0000 + 9.3249 0.0000 + 10.0206 0.0000 + 12.0589 0.0000 + 13.6356 0.0000 + 16.3395 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7406 1.0000 + -30.0082 1.0000 + -30.0075 1.0000 + -29.9771 1.0000 + 0.4629 1.0000 + 3.1773 1.0000 + 4.4588 1.0000 + 5.1107 1.0000 + 5.2302 1.0000 + 6.2832 1.0000 + 9.4510 0.0000 + 10.2180 0.0000 + 11.5408 0.0000 + 13.5178 0.0000 + 14.9785 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7404 1.0000 + -30.0167 1.0000 + -30.0075 1.0000 + -29.9766 1.0000 + 0.6833 1.0000 + 3.4070 1.0000 + 4.2516 1.0000 + 4.9747 1.0000 + 5.2836 1.0000 + 6.0299 1.0000 + 9.3115 0.0000 + 10.5371 0.0000 + 11.2041 0.0000 + 13.5198 0.0000 + 16.1069 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7402 1.0000 + -30.0271 1.0000 + -30.0066 1.0000 + -29.9760 1.0000 + 0.9662 1.0000 + 3.6247 1.0000 + 4.0527 1.0000 + 4.8364 1.0000 + 5.3481 1.0000 + 5.8553 1.0000 + 8.9510 0.0000 + 10.5646 0.0000 + 11.1623 0.0000 + 13.2954 0.0000 + 15.4682 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7400 1.0000 + -30.0371 1.0000 + -30.0058 1.0000 + -29.9754 1.0000 + 1.2872 1.0000 + 3.4438 1.0000 + 4.2743 1.0000 + 4.7030 1.0000 + 5.4051 1.0000 + 5.7716 1.0000 + 8.5488 0.0000 + 10.0763 0.0000 + 11.4481 0.0000 + 13.4035 0.0000 + 15.3922 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7398 1.0000 + -30.0450 1.0000 + -30.0051 1.0000 + -29.9749 1.0000 + 1.6159 1.0000 + 3.1051 1.0000 + 4.5944 1.0000 + 4.6676 1.0000 + 5.4494 1.0000 + 5.7286 1.0000 + 8.2204 0.0000 + 9.5427 0.0000 + 11.6960 0.0000 + 13.7216 0.0000 + 15.3053 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7398 1.0000 + -30.0492 1.0000 + -30.0047 1.0000 + -29.9747 1.0000 + 1.8783 1.0000 + 2.8300 1.0000 + 4.5354 1.0000 + 4.9641 1.0000 + 5.5125 1.0000 + 5.6496 1.0000 + 8.0373 0.0144 + 9.1984 0.0000 + 11.8323 0.0000 + 13.9270 0.0000 + 15.3527 0.0000 + + + -91.8801 1.0000 + -91.4252 1.0000 + -91.2901 1.0000 + -65.7404 1.0000 + -30.0228 1.0000 + -29.9977 1.0000 + -29.9766 1.0000 + 0.6424 1.0000 + 2.6545 1.0000 + 4.7408 1.0000 + 5.1925 1.0000 + 5.4185 1.0000 + 6.2853 1.0000 + 9.1528 0.0000 + 10.1154 0.0000 + 12.2959 0.0000 + 12.6644 0.0000 + 15.1835 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7404 1.0000 + -30.0228 1.0000 + -30.0000 1.0000 + -29.9766 1.0000 + 0.6883 1.0000 + 2.7077 1.0000 + 4.7264 1.0000 + 5.2034 1.0000 + 5.3412 1.0000 + 6.2150 1.0000 + 9.2183 0.0000 + 10.0975 0.0000 + 11.8514 0.0000 + 13.2505 0.0000 + 15.4538 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7403 1.0000 + -30.0223 1.0000 + -30.0062 1.0000 + -29.9762 1.0000 + 0.8257 1.0000 + 2.8686 1.0000 + 4.6756 1.0000 + 5.1155 1.0000 + 5.2552 1.0000 + 6.0553 1.0000 + 9.2590 0.0000 + 10.0607 0.0000 + 11.5620 0.0000 + 14.3861 0.0000 + 15.3778 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7401 1.0000 + -30.0215 1.0000 + -30.0154 1.0000 + -29.9757 1.0000 + 1.0393 1.0000 + 3.1357 1.0000 + 4.5429 1.0000 + 4.8526 1.0000 + 5.3235 1.0000 + 5.8912 1.0000 + 8.9678 0.0000 + 10.1859 0.0000 + 11.4775 0.0000 + 13.5169 0.0000 + 15.2678 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7399 1.0000 + -30.0259 1.0000 + -30.0207 1.0000 + -29.9751 1.0000 + 1.3079 1.0000 + 3.4975 1.0000 + 4.2537 1.0000 + 4.6695 1.0000 + 5.4215 1.0000 + 5.7678 1.0000 + 8.4790 0.0000 + 10.3583 0.0000 + 11.2562 0.0000 + 13.7957 0.0000 + 15.4576 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2903 1.0000 + -65.7397 1.0000 + -30.0359 1.0000 + -30.0199 1.0000 + -29.9745 1.0000 + 1.6071 1.0000 + 3.8504 1.0000 + 3.9497 1.0000 + 4.5723 1.0000 + 5.5290 1.0000 + 5.6928 1.0000 + 7.9970 0.0531 + 10.1882 0.0000 + 11.0596 0.0000 + 13.6172 0.0000 + 15.4580 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7395 1.0000 + -30.0438 1.0000 + -30.0193 1.0000 + -29.9740 1.0000 + 1.9028 1.0000 + 3.5236 1.0000 + 4.2368 1.0000 + 4.6294 1.0000 + 5.6020 1.0000 + 5.6607 1.0000 + 7.6208 0.9999 + 9.6622 0.0000 + 11.1234 0.0000 + 13.9670 0.0000 + 15.5268 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7395 1.0000 + -30.0481 1.0000 + -30.0189 1.0000 + -29.9738 1.0000 + 2.1226 1.0000 + 3.2739 1.0000 + 4.2868 1.0000 + 4.8744 1.0000 + 5.6116 1.0000 + 5.6455 1.0000 + 7.4201 1.0000 + 9.2695 0.0000 + 11.1923 0.0000 + 14.0391 0.0000 + 15.3789 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7402 1.0000 + -30.0338 1.0000 + -29.9968 1.0000 + -29.9759 1.0000 + 1.0386 1.0000 + 2.2838 1.0000 + 4.8741 1.0000 + 5.1768 1.0000 + 5.5479 1.0000 + 6.0278 1.0000 + 9.2474 0.0000 + 10.2163 0.0000 + 11.7129 0.0000 + 12.5232 0.0000 + 15.0058 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7401 1.0000 + -30.0336 1.0000 + -29.9990 1.0000 + -29.9758 1.0000 + 1.0849 1.0000 + 2.3392 1.0000 + 4.8595 1.0000 + 5.1791 1.0000 + 5.4792 1.0000 + 5.9945 1.0000 + 9.2635 0.0000 + 10.0727 0.0000 + 11.5584 0.0000 + 12.9761 0.0000 + 14.9006 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7400 1.0000 + -30.0331 1.0000 + -30.0052 1.0000 + -29.9755 1.0000 + 1.2159 1.0000 + 2.5063 1.0000 + 4.8118 1.0000 + 5.1287 1.0000 + 5.3567 1.0000 + 5.9132 1.0000 + 9.1604 0.0000 + 9.8071 0.0000 + 11.5723 0.0000 + 13.7995 0.0000 + 14.5522 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7399 1.0000 + -30.0325 1.0000 + -30.0144 1.0000 + -29.9750 1.0000 + 1.4162 1.0000 + 2.7831 1.0000 + 4.7111 1.0000 + 4.9082 1.0000 + 5.3719 1.0000 + 5.8226 1.0000 + 8.6841 0.0000 + 9.8145 0.0000 + 11.6802 0.0000 + 13.7580 0.0000 + 15.0949 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7397 1.0000 + -30.0317 1.0000 + -30.0249 1.0000 + -29.9744 1.0000 + 1.6606 1.0000 + 3.1538 1.0000 + 4.4685 1.0000 + 4.7356 1.0000 + 5.4606 1.0000 + 5.7551 1.0000 + 8.0965 0.0013 + 9.9238 0.0000 + 11.4526 0.0000 + 13.4892 0.0000 + 15.4328 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7394 1.0000 + -30.0350 1.0000 + -30.0309 1.0000 + -29.9738 1.0000 + 1.9273 1.0000 + 3.5628 1.0000 + 4.1380 1.0000 + 4.6730 1.0000 + 5.5708 1.0000 + 5.7308 1.0000 + 7.5590 1.0000 + 9.9659 0.0000 + 10.8523 0.0000 + 14.1412 0.0000 + 15.3603 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2912 1.0000 + -65.7394 1.0000 + -30.0429 1.0000 + -30.0304 1.0000 + -29.9734 1.0000 + 2.1834 1.0000 + 3.8283 1.0000 + 3.8862 1.0000 + 4.7204 1.0000 + 5.6527 1.0000 + 5.7690 1.0000 + 7.1423 1.0000 + 9.7054 0.0000 + 10.4694 0.0000 + 14.5817 0.0000 + 17.9482 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7393 1.0000 + -30.0472 1.0000 + -30.0300 1.0000 + -29.9732 1.0000 + 2.3655 1.0000 + 3.6194 1.0000 + 4.0214 1.0000 + 4.8461 1.0000 + 5.7172 1.0000 + 5.7917 1.0000 + 6.9188 1.0000 + 9.3231 0.0000 + 10.4174 0.0000 + 14.4421 0.0000 + 15.8976 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7400 1.0000 + -30.0397 1.0000 + -29.9962 1.0000 + -29.9755 1.0000 + 1.4380 1.0000 + 1.9003 1.0000 + 4.9695 1.0000 + 5.1428 1.0000 + 5.6423 1.0000 + 5.8766 1.0000 + 9.4326 0.0000 + 10.2038 0.0000 + 11.3534 0.0000 + 12.4003 0.0000 + 15.1798 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7400 1.0000 + -30.0396 1.0000 + -29.9984 1.0000 + -29.9754 1.0000 + 1.4775 1.0000 + 1.9610 1.0000 + 4.9344 1.0000 + 5.1436 1.0000 + 5.6222 1.0000 + 5.8407 1.0000 + 9.4328 0.0000 + 9.9118 0.0000 + 11.4086 0.0000 + 12.7786 0.0000 + 14.7529 0.0000 + + + -91.8802 1.0000 + -91.4253 1.0000 + -91.2902 1.0000 + -65.7399 1.0000 + -30.0391 1.0000 + -30.0046 1.0000 + -29.9751 1.0000 + 1.5884 1.0000 + 2.1473 1.0000 + 4.8263 1.0000 + 5.1395 1.0000 + 5.5663 1.0000 + 5.7671 1.0000 + 9.1881 0.0000 + 9.5548 0.0000 + 11.6103 0.0000 + 13.5641 0.0000 + 14.7151 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2902 1.0000 + -65.7397 1.0000 + -30.0384 1.0000 + -30.0138 1.0000 + -29.9746 1.0000 + 1.7510 1.0000 + 2.4554 1.0000 + 4.6493 1.0000 + 5.1054 1.0000 + 5.5016 1.0000 + 5.7219 1.0000 + 8.5259 0.0000 + 9.5738 0.0000 + 11.7986 0.0000 + 14.0607 0.0000 + 14.5081 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2904 1.0000 + -65.7395 1.0000 + -30.0377 1.0000 + -30.0244 1.0000 + -29.9740 1.0000 + 1.9503 1.0000 + 2.8575 1.0000 + 4.4232 1.0000 + 5.0190 1.0000 + 5.4953 1.0000 + 5.7259 1.0000 + 7.8787 0.5228 + 9.6218 0.0000 + 11.5688 0.0000 + 13.6440 0.0000 + 15.2299 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7393 1.0000 + -30.0369 1.0000 + -30.0345 1.0000 + -29.9735 1.0000 + 2.1724 1.0000 + 3.2887 1.0000 + 4.1759 1.0000 + 4.9222 1.0000 + 5.5665 1.0000 + 5.7737 1.0000 + 7.3144 1.0000 + 9.6562 0.0000 + 10.8484 0.0000 + 13.8758 0.0000 + 15.6076 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2913 1.0000 + -65.7392 1.0000 + -30.0424 1.0000 + -30.0364 1.0000 + -29.9731 1.0000 + 2.3889 1.0000 + 3.6451 1.0000 + 3.9430 1.0000 + 4.8684 1.0000 + 5.6997 1.0000 + 5.8611 1.0000 + 6.8688 1.0000 + 9.6086 0.0000 + 10.1393 0.0000 + 15.1730 0.0000 + 16.3079 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2913 1.0000 + -65.7391 1.0000 + -30.0467 1.0000 + -30.0360 1.0000 + -29.9728 1.0000 + 2.5397 1.0000 + 3.7856 1.0000 + 3.8326 1.0000 + 4.8610 1.0000 + 5.8430 1.0000 + 5.9453 1.0000 + 6.5965 1.0000 + 9.3465 0.0000 + 9.8978 0.0000 + 15.1892 0.0000 + 16.2199 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2900 1.0000 + -65.7403 1.0000 + -30.0144 1.0000 + -29.9990 1.0000 + -29.9656 1.0000 + 0.0785 1.0000 + 2.7125 1.0000 + 4.5094 1.0000 + 4.6940 1.0000 + 4.9214 1.0000 + 8.5745 0.0000 + 10.1269 0.0000 + 10.5365 0.0000 + 10.8704 0.0000 + 13.9768 0.0000 + 14.6979 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7402 1.0000 + -30.0143 1.0000 + -30.0012 1.0000 + -29.9654 1.0000 + 0.1273 1.0000 + 2.6983 1.0000 + 4.4779 1.0000 + 4.7369 1.0000 + 4.9443 1.0000 + 8.3529 0.0000 + 10.1419 0.0000 + 10.4344 0.0000 + 11.1645 0.0000 + 13.6110 0.0000 + 14.5556 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7401 1.0000 + -30.0140 1.0000 + -30.0074 1.0000 + -29.9649 1.0000 + 0.2683 1.0000 + 2.6518 1.0000 + 4.4352 1.0000 + 4.8169 1.0000 + 5.0107 1.0000 + 7.8922 0.4469 + 10.1231 0.0000 + 10.2307 0.0000 + 11.8214 0.0000 + 13.2548 0.0000 + 14.5906 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7399 1.0000 + -30.0165 1.0000 + -30.0135 1.0000 + -29.9640 1.0000 + 0.4880 1.0000 + 2.5740 1.0000 + 4.4223 1.0000 + 4.8957 1.0000 + 5.1141 1.0000 + 7.4082 1.0000 + 9.8145 0.0000 + 10.2589 0.0000 + 12.5295 0.0000 + 12.7207 0.0000 + 14.5641 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7397 1.0000 + -30.0269 1.0000 + -30.0129 1.0000 + -29.9631 1.0000 + 0.7614 1.0000 + 2.4691 1.0000 + 4.4450 1.0000 + 4.9606 1.0000 + 5.2429 1.0000 + 6.9802 1.0000 + 9.4992 0.0000 + 10.2989 0.0000 + 12.2571 0.0000 + 12.7704 0.0000 + 14.6183 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7395 1.0000 + -30.0369 1.0000 + -30.0123 1.0000 + -29.9621 1.0000 + 1.0553 1.0000 + 2.3467 1.0000 + 4.4910 1.0000 + 5.0061 1.0000 + 5.3805 1.0000 + 6.6366 1.0000 + 9.2609 0.0000 + 10.3038 0.0000 + 11.8735 0.0000 + 12.5601 0.0000 + 15.5151 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7394 1.0000 + -30.0447 1.0000 + -30.0119 1.0000 + -29.9614 1.0000 + 1.3266 1.0000 + 2.2198 1.0000 + 4.5371 1.0000 + 5.0314 1.0000 + 5.5048 1.0000 + 6.3900 1.0000 + 9.1261 0.0000 + 10.2612 0.0000 + 11.5989 0.0000 + 12.2895 0.0000 + 15.2894 0.0000 + + + -91.8792 1.0000 + -91.4242 1.0000 + -91.2892 1.0000 + -65.7392 1.0000 + -30.0489 1.0000 + -30.0116 1.0000 + -29.9610 1.0000 + 1.5141 1.0000 + 2.1185 1.0000 + 4.5650 1.0000 + 5.0425 1.0000 + 5.5850 1.0000 + 6.2547 1.0000 + 9.0783 0.0000 + 10.2059 0.0000 + 11.4660 0.0000 + 12.1310 0.0000 + 14.9984 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7402 1.0000 + -30.0143 1.0000 + -29.9987 1.0000 + -29.9687 1.0000 + 0.1308 1.0000 + 2.7052 1.0000 + 4.5062 1.0000 + 4.7211 1.0000 + 4.9341 1.0000 + 8.2944 0.0000 + 10.1322 0.0000 + 10.7510 0.0000 + 10.8939 0.0000 + 14.0685 0.0000 + 19.2975 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7402 1.0000 + -30.0141 1.0000 + -30.0009 1.0000 + -29.9685 1.0000 + 0.1799 1.0000 + 2.6961 1.0000 + 4.4700 1.0000 + 4.7546 1.0000 + 4.9662 1.0000 + 8.0964 0.0013 + 10.1465 0.0000 + 10.7223 0.0000 + 11.0608 0.0000 + 13.4843 0.0000 + 14.7098 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7400 1.0000 + -30.0138 1.0000 + -30.0071 1.0000 + -29.9680 1.0000 + 0.3214 1.0000 + 2.6647 1.0000 + 4.4164 1.0000 + 4.8132 1.0000 + 5.0527 1.0000 + 7.6707 0.9986 + 10.1672 0.0000 + 10.4384 0.0000 + 11.6127 0.0000 + 13.1255 0.0000 + 15.0675 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7399 1.0000 + -30.0163 1.0000 + -30.0133 1.0000 + -29.9671 1.0000 + 0.5403 1.0000 + 2.6055 1.0000 + 4.3962 1.0000 + 4.8703 1.0000 + 5.1699 1.0000 + 7.2169 1.0000 + 9.9996 0.0000 + 10.2485 0.0000 + 11.9915 0.0000 + 13.4963 0.0000 + 14.9307 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7397 1.0000 + -30.0266 1.0000 + -30.0127 1.0000 + -29.9662 1.0000 + 0.8138 1.0000 + 2.5179 1.0000 + 4.4217 1.0000 + 4.9184 1.0000 + 5.2999 1.0000 + 6.8210 1.0000 + 9.6472 0.0000 + 10.2064 0.0000 + 11.8412 0.0000 + 13.2636 0.0000 + 14.4602 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7395 1.0000 + -30.0366 1.0000 + -30.0121 1.0000 + -29.9653 1.0000 + 1.1061 1.0000 + 2.4089 1.0000 + 4.4770 1.0000 + 4.9499 1.0000 + 5.4309 1.0000 + 6.5164 1.0000 + 9.3564 0.0000 + 10.0920 0.0000 + 11.6293 0.0000 + 13.0657 0.0000 + 15.1621 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7393 1.0000 + -30.0444 1.0000 + -30.0117 1.0000 + -29.9646 1.0000 + 1.3737 1.0000 + 2.2928 1.0000 + 4.5311 1.0000 + 4.9651 1.0000 + 5.5497 1.0000 + 6.3103 1.0000 + 9.1728 0.0000 + 9.9154 0.0000 + 11.5234 0.0000 + 12.7770 0.0000 + 15.3120 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7392 1.0000 + -30.0487 1.0000 + -30.0114 1.0000 + -29.9642 1.0000 + 1.5535 1.0000 + 2.2004 1.0000 + 4.5595 1.0000 + 4.9718 1.0000 + 5.6296 1.0000 + 6.2011 1.0000 + 9.0958 0.0000 + 9.7761 0.0000 + 11.4975 0.0000 + 12.5932 0.0000 + 15.0907 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7400 1.0000 + -30.0138 1.0000 + -29.9979 1.0000 + -29.9775 1.0000 + 0.2825 1.0000 + 2.6761 1.0000 + 4.5064 1.0000 + 4.8000 1.0000 + 4.9688 1.0000 + 7.7564 0.9630 + 10.1137 0.0000 + 10.4867 0.0000 + 11.6479 0.0000 + 13.3919 0.0000 + 14.4508 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7400 1.0000 + -30.0137 1.0000 + -30.0001 1.0000 + -29.9773 1.0000 + 0.3313 1.0000 + 2.6826 1.0000 + 4.4604 1.0000 + 4.8061 1.0000 + 5.0256 1.0000 + 7.5867 1.0000 + 10.1283 0.0000 + 10.6729 0.0000 + 11.4680 0.0000 + 13.1394 0.0000 + 14.3328 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7398 1.0000 + -30.0133 1.0000 + -30.0063 1.0000 + -29.9768 1.0000 + 0.4736 1.0000 + 2.6942 1.0000 + 4.3753 1.0000 + 4.8323 1.0000 + 5.1415 1.0000 + 7.2084 1.0000 + 10.1072 0.0000 + 10.9314 0.0000 + 11.2329 0.0000 + 12.9608 0.0000 + 14.6853 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2900 1.0000 + -65.7397 1.0000 + -30.0155 1.0000 + -30.0128 1.0000 + -29.9760 1.0000 + 0.6917 1.0000 + 2.6939 1.0000 + 4.3211 1.0000 + 4.8693 1.0000 + 5.2665 1.0000 + 6.8005 1.0000 + 9.9630 0.0000 + 10.5675 0.0000 + 11.4806 0.0000 + 13.0652 0.0000 + 14.4338 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7395 1.0000 + -30.0259 1.0000 + -30.0122 1.0000 + -29.9751 1.0000 + 0.9628 1.0000 + 2.6633 1.0000 + 4.3343 1.0000 + 4.8939 1.0000 + 5.3859 1.0000 + 6.4620 1.0000 + 9.6578 0.0000 + 10.1908 0.0000 + 11.5257 0.0000 + 13.6164 0.0000 + 15.5505 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7393 1.0000 + -30.0359 1.0000 + -30.0116 1.0000 + -29.9742 1.0000 + 1.2487 1.0000 + 2.5974 1.0000 + 4.4087 1.0000 + 4.8823 1.0000 + 5.5018 1.0000 + 6.2380 1.0000 + 9.3183 0.0000 + 9.7979 0.0000 + 11.5299 0.0000 + 13.8800 0.0000 + 14.6587 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7391 1.0000 + -30.0437 1.0000 + -30.0112 1.0000 + -29.9735 1.0000 + 1.5051 1.0000 + 2.5119 1.0000 + 4.4950 1.0000 + 4.8424 1.0000 + 5.6205 1.0000 + 6.1187 1.0000 + 9.0647 0.0000 + 9.4200 0.0000 + 11.5701 0.0000 + 13.6103 0.0000 + 15.8073 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7390 1.0000 + -30.0480 1.0000 + -30.0110 1.0000 + -29.9731 1.0000 + 1.6705 1.0000 + 2.4419 1.0000 + 4.5400 1.0000 + 4.8182 1.0000 + 5.7164 1.0000 + 6.0601 1.0000 + 8.9498 0.0000 + 9.1654 0.0000 + 11.6090 0.0000 + 13.4604 0.0000 + 15.4612 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7397 1.0000 + -30.0130 1.0000 + -29.9967 1.0000 + -29.9905 1.0000 + 0.5171 1.0000 + 2.6203 1.0000 + 4.5293 1.0000 + 4.9234 1.0000 + 5.0169 1.0000 + 7.2171 1.0000 + 9.9208 0.0000 + 10.3388 0.0000 + 12.4204 0.0000 + 12.7407 0.0000 + 14.2892 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7397 1.0000 + -30.0129 1.0000 + -29.9989 1.0000 + -29.9903 1.0000 + 0.5656 1.0000 + 2.6459 1.0000 + 4.4784 1.0000 + 4.8801 1.0000 + 5.1125 1.0000 + 7.0689 1.0000 + 9.9752 0.0000 + 10.4280 0.0000 + 12.5187 0.0000 + 32.9739 0.0000 + 35.7387 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7396 1.0000 + -30.0125 1.0000 + -30.0051 1.0000 + -29.9898 1.0000 + 0.7061 1.0000 + 2.7176 1.0000 + 4.3568 1.0000 + 4.8822 1.0000 + 5.2415 1.0000 + 6.7298 1.0000 + 9.8871 0.0000 + 10.7646 0.0000 + 11.4466 0.0000 + 14.5915 0.0000 + 38.5493 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2900 1.0000 + -65.7394 1.0000 + -30.0143 1.0000 + -30.0120 1.0000 + -29.9890 1.0000 + 0.9230 1.0000 + 2.8144 1.0000 + 4.2395 1.0000 + 4.9255 1.0000 + 5.3419 1.0000 + 6.3667 1.0000 + 9.5538 0.0000 + 11.0084 0.0000 + 11.1693 0.0000 + 13.0107 0.0000 + 14.8133 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7392 1.0000 + -30.0248 1.0000 + -30.0115 1.0000 + -29.9881 1.0000 + 1.1884 1.0000 + 2.8932 1.0000 + 4.1953 1.0000 + 4.9555 1.0000 + 5.3985 1.0000 + 6.1037 1.0000 + 9.0980 0.0000 + 10.5664 0.0000 + 11.4010 0.0000 + 13.2814 0.0000 + 14.7039 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7390 1.0000 + -30.0349 1.0000 + -30.0110 1.0000 + -29.9873 1.0000 + 1.4648 1.0000 + 2.9108 1.0000 + 4.2604 1.0000 + 4.8930 1.0000 + 5.4670 1.0000 + 5.9927 1.0000 + 8.6547 0.0000 + 10.0335 0.0000 + 11.5522 0.0000 + 13.8640 0.0000 + 14.7888 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7389 1.0000 + -30.0427 1.0000 + -30.0105 1.0000 + -29.9866 1.0000 + 1.7087 1.0000 + 2.8704 1.0000 + 4.3914 1.0000 + 4.7599 1.0000 + 5.6061 1.0000 + 5.9584 1.0000 + 8.3087 0.0000 + 9.5375 0.0000 + 11.6648 0.0000 + 14.4457 0.0000 + 14.7936 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7388 1.0000 + -30.0470 1.0000 + -30.0104 1.0000 + -29.9863 1.0000 + 1.8594 1.0000 + 2.8218 1.0000 + 4.4916 1.0000 + 4.6640 1.0000 + 5.7708 1.0000 + 5.9044 1.0000 + 8.1176 0.0004 + 9.2281 0.0000 + 11.7299 0.0000 + 14.3458 0.0000 + 15.1540 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7395 1.0000 + -30.0121 1.0000 + -30.0053 1.0000 + -29.9953 1.0000 + 0.8079 1.0000 + 2.5334 1.0000 + 4.5838 1.0000 + 5.0666 1.0000 + 5.0783 1.0000 + 6.7500 1.0000 + 9.6333 0.0000 + 10.3108 0.0000 + 12.2505 0.0000 + 12.6826 0.0000 + 14.7554 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7394 1.0000 + -30.0120 1.0000 + -30.0051 1.0000 + -29.9975 1.0000 + 0.8563 1.0000 + 2.5778 1.0000 + 4.5415 1.0000 + 4.9542 1.0000 + 5.2219 1.0000 + 6.6261 1.0000 + 9.6800 0.0000 + 10.3030 0.0000 + 11.8282 0.0000 + 13.2292 0.0000 + 14.7293 0.0000 + + + -91.8806 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7393 1.0000 + -30.0117 1.0000 + -30.0046 1.0000 + -30.0037 1.0000 + 0.9944 1.0000 + 2.7079 1.0000 + 4.4058 1.0000 + 4.9318 1.0000 + 5.3400 1.0000 + 6.3377 1.0000 + 9.5130 0.0000 + 10.4672 0.0000 + 11.4998 0.0000 + 13.8778 0.0000 + 18.0925 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7391 1.0000 + -30.0130 1.0000 + -30.0112 1.0000 + -30.0039 1.0000 + 1.2055 1.0000 + 2.9156 1.0000 + 4.2276 1.0000 + 4.9929 1.0000 + 5.3616 1.0000 + 6.0549 1.0000 + 9.0232 0.0000 + 10.8076 0.0000 + 11.3166 0.0000 + 13.1705 0.0000 + 14.8540 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7389 1.0000 + -30.0235 1.0000 + -30.0107 1.0000 + -30.0030 1.0000 + 1.4620 1.0000 + 3.1623 1.0000 + 4.0828 1.0000 + 5.0864 1.0000 + 5.2214 1.0000 + 5.9363 1.0000 + 8.4563 0.0000 + 10.8355 0.0000 + 11.2520 0.0000 + 13.1419 0.0000 + 15.5800 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7387 1.0000 + -30.0336 1.0000 + -30.0102 1.0000 + -30.0022 1.0000 + 1.7297 1.0000 + 3.3337 1.0000 + 4.0790 1.0000 + 4.9123 1.0000 + 5.2921 1.0000 + 5.9385 1.0000 + 7.9391 0.2131 + 10.2850 0.0000 + 11.4643 0.0000 + 13.4225 0.0000 + 15.4710 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7386 1.0000 + -30.0415 1.0000 + -30.0098 1.0000 + -30.0016 1.0000 + 1.9664 1.0000 + 3.3331 1.0000 + 4.2564 1.0000 + 4.6894 1.0000 + 5.4784 1.0000 + 5.9482 1.0000 + 7.5447 1.0000 + 9.6945 0.0000 + 11.6252 0.0000 + 13.7684 0.0000 + 15.1176 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7385 1.0000 + -30.0458 1.0000 + -30.0096 1.0000 + -30.0012 1.0000 + 2.1159 1.0000 + 3.2777 1.0000 + 4.4136 1.0000 + 4.5730 1.0000 + 5.6529 1.0000 + 5.9143 1.0000 + 7.3340 1.0000 + 9.3087 0.0000 + 11.7152 0.0000 + 14.2992 0.0000 + 15.1018 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7391 1.0000 + -30.0194 1.0000 + -30.0113 1.0000 + -29.9940 1.0000 + 1.1188 1.0000 + 2.4225 1.0000 + 4.6599 1.0000 + 5.1059 1.0000 + 5.2458 1.0000 + 6.3781 1.0000 + 9.4462 0.0000 + 10.2515 0.0000 + 11.8462 0.0000 + 12.3849 0.0000 + 15.2872 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7391 1.0000 + -30.0192 1.0000 + -30.0112 1.0000 + -29.9962 1.0000 + 1.1663 1.0000 + 2.4798 1.0000 + 4.6338 1.0000 + 5.0065 1.0000 + 5.3465 1.0000 + 6.2884 1.0000 + 9.4413 0.0000 + 10.1362 0.0000 + 11.5983 0.0000 + 12.9221 0.0000 + 14.9830 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7390 1.0000 + -30.0187 1.0000 + -30.0108 1.0000 + -30.0025 1.0000 + 1.2998 1.0000 + 2.6535 1.0000 + 4.5224 1.0000 + 4.9355 1.0000 + 5.4403 1.0000 + 6.0847 1.0000 + 9.1320 0.0000 + 10.1355 0.0000 + 11.4935 0.0000 + 14.1593 0.0000 + 15.0031 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7388 1.0000 + -30.0181 1.0000 + -30.0118 1.0000 + -30.0103 1.0000 + 1.5018 1.0000 + 2.9434 1.0000 + 4.3332 1.0000 + 4.9416 1.0000 + 5.4009 1.0000 + 5.9358 1.0000 + 8.5164 0.0000 + 10.3690 0.0000 + 11.4796 0.0000 + 13.6233 0.0000 + 15.4168 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7386 1.0000 + -30.0224 1.0000 + -30.0173 1.0000 + -30.0098 1.0000 + 1.7486 1.0000 + 3.3382 1.0000 + 4.1257 1.0000 + 4.9091 1.0000 + 5.2805 1.0000 + 5.9294 1.0000 + 7.8705 0.5687 + 10.5822 0.0000 + 11.3190 0.0000 + 14.4746 0.0000 + 15.4084 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7384 1.0000 + -30.0325 1.0000 + -30.0165 1.0000 + -30.0094 1.0000 + 2.0137 1.0000 + 3.7924 1.0000 + 3.9366 1.0000 + 4.7182 1.0000 + 5.3253 1.0000 + 5.9653 1.0000 + 7.2969 1.0000 + 10.3874 0.0000 + 11.1648 0.0000 + 13.7918 0.0000 + 15.7649 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7383 1.0000 + -30.0404 1.0000 + -30.0159 1.0000 + -30.0090 1.0000 + 2.2614 1.0000 + 3.7478 1.0000 + 4.2324 1.0000 + 4.5462 1.0000 + 5.4530 1.0000 + 5.9817 1.0000 + 6.8661 1.0000 + 9.8164 0.0000 + 11.2354 0.0000 + 13.3824 0.0000 + 15.4946 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7382 1.0000 + -30.0447 1.0000 + -30.0156 1.0000 + -30.0087 1.0000 + 2.4276 1.0000 + 3.6308 1.0000 + 4.3095 1.0000 + 4.6704 1.0000 + 5.5414 1.0000 + 5.9604 1.0000 + 6.6554 1.0000 + 9.3847 0.0000 + 11.2998 0.0000 + 13.4998 0.0000 + 15.5406 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7389 1.0000 + -30.0304 1.0000 + -30.0107 1.0000 + -29.9930 1.0000 + 1.4059 1.0000 + 2.2991 1.0000 + 4.7303 1.0000 + 5.1280 1.0000 + 5.4014 1.0000 + 6.1085 1.0000 + 9.4200 0.0000 + 10.1068 0.0000 + 11.5735 0.0000 + 12.0510 0.0000 + 15.2640 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7389 1.0000 + -30.0302 1.0000 + -30.0105 1.0000 + -29.9952 1.0000 + 1.4496 1.0000 + 2.3666 1.0000 + 4.7143 1.0000 + 5.0343 1.0000 + 5.4738 1.0000 + 6.0596 1.0000 + 9.3470 0.0000 + 9.8894 0.0000 + 11.4911 0.0000 + 12.5501 0.0000 + 15.0042 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7387 1.0000 + -30.0298 1.0000 + -30.0102 1.0000 + -30.0014 1.0000 + 1.5741 1.0000 + 2.5692 1.0000 + 4.6449 1.0000 + 4.8922 1.0000 + 5.5587 1.0000 + 5.9560 1.0000 + 8.8420 0.0000 + 9.8198 0.0000 + 11.5326 0.0000 + 13.4548 0.0000 + 15.3070 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2903 1.0000 + -65.7385 1.0000 + -30.0291 1.0000 + -30.0108 1.0000 + -30.0097 1.0000 + 1.7645 1.0000 + 2.9023 1.0000 + 4.5006 1.0000 + 4.7818 1.0000 + 5.5503 1.0000 + 5.9099 1.0000 + 8.1185 0.0004 + 9.9431 0.0000 + 11.5982 0.0000 + 14.1559 0.0000 + 15.5155 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7383 1.0000 + -30.0283 1.0000 + -30.0214 1.0000 + -30.0092 1.0000 + 2.0055 1.0000 + 3.3368 1.0000 + 4.3451 1.0000 + 4.6481 1.0000 + 5.4981 1.0000 + 5.9423 1.0000 + 7.4143 1.0000 + 10.0772 0.0000 + 11.5013 0.0000 + 14.0698 0.0000 + 15.1813 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7382 1.0000 + -30.0316 1.0000 + -30.0276 1.0000 + -30.0088 1.0000 + 2.2811 1.0000 + 3.7459 1.0000 + 4.2885 1.0000 + 4.4782 1.0000 + 5.5123 1.0000 + 5.9815 1.0000 + 6.7976 1.0000 + 10.1223 0.0000 + 10.9975 0.0000 + 13.3162 0.0000 + 35.4508 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7380 1.0000 + -30.0395 1.0000 + -30.0270 1.0000 + -30.0084 1.0000 + 2.5605 1.0000 + 3.8201 1.0000 + 4.2232 1.0000 + 4.6720 1.0000 + 5.5887 1.0000 + 5.9853 1.0000 + 6.3304 1.0000 + 9.8542 0.0000 + 10.6312 0.0000 + 13.3008 0.0000 + 15.9780 0.0000 + + + -91.8815 1.0000 + -91.4265 1.0000 + -91.2915 1.0000 + -65.7380 1.0000 + -30.0439 1.0000 + -30.0268 1.0000 + -30.0082 1.0000 + 2.7690 1.0000 + 3.7318 1.0000 + 4.1082 1.0000 + 5.0768 1.0000 + 5.5474 1.0000 + 5.9652 1.0000 + 6.1318 1.0000 + 9.4421 0.0000 + 10.5773 0.0000 + 13.3598 0.0000 + 15.6239 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7388 1.0000 + -30.0364 1.0000 + -30.0103 1.0000 + -29.9924 1.0000 + 1.6041 1.0000 + 2.1949 1.0000 + 4.7707 1.0000 + 5.1368 1.0000 + 5.5104 1.0000 + 5.9515 1.0000 + 9.5274 0.0000 + 9.9063 0.0000 + 11.4475 0.0000 + 11.8572 0.0000 + 14.7311 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7387 1.0000 + -30.0362 1.0000 + -30.0101 1.0000 + -29.9946 1.0000 + 1.6419 1.0000 + 2.2709 1.0000 + 4.7507 1.0000 + 5.0499 1.0000 + 5.5743 1.0000 + 5.9294 1.0000 + 9.4032 0.0000 + 9.6388 0.0000 + 11.4753 0.0000 + 12.3145 0.0000 + 15.0586 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7386 1.0000 + -30.0358 1.0000 + -30.0099 1.0000 + -30.0009 1.0000 + 1.7525 1.0000 + 2.4947 1.0000 + 4.6872 1.0000 + 4.8807 1.0000 + 5.6780 1.0000 + 5.8786 1.0000 + 8.6877 0.0000 + 9.6263 0.0000 + 11.5761 0.0000 + 13.1883 0.0000 + 15.0368 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7384 1.0000 + -30.0351 1.0000 + -30.0103 1.0000 + -30.0094 1.0000 + 1.9301 1.0000 + 2.8492 1.0000 + 4.5787 1.0000 + 4.7121 1.0000 + 5.7281 1.0000 + 5.8578 1.0000 + 7.8952 0.4304 + 9.6755 0.0000 + 11.6667 0.0000 + 14.3103 0.0000 + 38.9176 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7382 1.0000 + -30.0344 1.0000 + -30.0209 1.0000 + -30.0089 1.0000 + 2.1704 1.0000 + 3.2839 1.0000 + 4.4368 1.0000 + 4.5966 1.0000 + 5.6971 1.0000 + 5.9055 1.0000 + 7.1618 1.0000 + 9.7305 0.0000 + 11.5519 0.0000 + 13.7092 0.0000 + 15.1518 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7380 1.0000 + -30.0336 1.0000 + -30.0310 1.0000 + -30.0084 1.0000 + 2.4625 1.0000 + 3.6552 1.0000 + 4.2572 1.0000 + 4.6667 1.0000 + 5.6659 1.0000 + 5.9462 1.0000 + 6.5416 1.0000 + 9.7701 0.0000 + 11.0159 0.0000 + 13.7528 0.0000 + 15.5596 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7379 1.0000 + -30.0390 1.0000 + -30.0331 1.0000 + -30.0080 1.0000 + 2.7831 1.0000 + 3.7889 1.0000 + 4.0361 1.0000 + 5.0350 1.0000 + 5.6638 1.0000 + 5.9246 1.0000 + 6.1048 1.0000 + 9.7327 0.0000 + 10.2984 0.0000 + 13.3147 0.0000 + 15.4211 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7378 1.0000 + -30.0434 1.0000 + -30.0328 1.0000 + -30.0078 1.0000 + 3.0626 1.0000 + 3.7463 1.0000 + 3.8683 1.0000 + 5.4341 1.0000 + 5.6823 1.0000 + 5.7756 1.0000 + 5.9556 1.0000 + 9.4675 0.0000 + 10.0217 0.0000 + 13.3491 0.0000 + 16.1206 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7397 1.0000 + -30.0332 1.0000 + -29.9970 1.0000 + -29.9635 1.0000 + 0.5736 1.0000 + 2.1119 1.0000 + 4.5165 1.0000 + 4.5676 1.0000 + 4.7863 1.0000 + 8.6168 0.0000 + 10.8092 0.0000 + 11.1222 0.0000 + 11.2007 0.0000 + 14.0197 0.0000 + 39.2698 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7395 1.0000 + -30.0330 1.0000 + -29.9991 1.0000 + -29.9633 1.0000 + 0.6291 1.0000 + 2.0977 1.0000 + 4.5093 1.0000 + 4.5944 1.0000 + 4.8096 1.0000 + 8.4094 0.0000 + 10.7035 0.0000 + 11.1656 0.0000 + 11.6529 0.0000 + 14.1405 0.0000 + 41.5789 0.0000 + + + -91.8796 1.0000 + -91.4247 1.0000 + -91.2896 1.0000 + -65.7394 1.0000 + -30.0326 1.0000 + -30.0053 1.0000 + -29.9627 1.0000 + 0.7865 1.0000 + 2.0532 1.0000 + 4.5078 1.0000 + 4.6507 1.0000 + 4.8773 1.0000 + 7.9670 0.1168 + 10.4342 0.0000 + 11.1229 0.0000 + 12.2041 0.0000 + 12.2648 0.0000 + 14.3078 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7392 1.0000 + -30.0322 1.0000 + -30.0144 1.0000 + -29.9619 1.0000 + 1.0275 1.0000 + 1.9962 1.0000 + 4.5159 1.0000 + 4.7211 1.0000 + 4.9818 1.0000 + 7.4959 1.0000 + 10.0943 0.0000 + 11.0206 0.0000 + 11.8767 0.0000 + 13.0219 0.0000 + 14.6524 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7390 1.0000 + -30.0316 1.0000 + -30.0249 1.0000 + -29.9609 1.0000 + 1.3090 1.0000 + 1.9542 1.0000 + 4.5205 1.0000 + 4.7985 1.0000 + 5.1102 1.0000 + 7.0804 1.0000 + 9.7491 0.0000 + 10.7814 0.0000 + 12.7825 0.0000 + 14.2666 0.0000 + 40.5060 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7388 1.0000 + -30.0349 1.0000 + -30.0311 1.0000 + -29.9600 1.0000 + 1.5312 1.0000 + 1.9991 1.0000 + 4.5052 1.0000 + 4.8754 1.0000 + 5.2431 1.0000 + 6.7527 1.0000 + 9.4493 0.0000 + 10.4582 0.0000 + 11.6293 0.0000 + 12.3813 0.0000 + 15.5445 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7387 1.0000 + -30.0428 1.0000 + -30.0307 1.0000 + -29.9593 1.0000 + 1.5968 1.0000 + 2.1802 1.0000 + 4.4669 1.0000 + 4.9394 1.0000 + 5.3556 1.0000 + 6.5274 1.0000 + 9.2375 0.0000 + 10.2067 0.0000 + 12.0084 0.0000 + 14.2385 0.0000 + 36.2448 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7386 1.0000 + -30.0470 1.0000 + -30.0305 1.0000 + -29.9589 1.0000 + 1.5982 1.0000 + 2.3352 1.0000 + 4.4290 1.0000 + 4.9767 1.0000 + 5.4211 1.0000 + 6.4124 1.0000 + 9.1302 0.0000 + 10.0506 0.0000 + 11.6269 0.0000 + 11.8418 0.0000 + 15.0676 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7395 1.0000 + -30.0330 1.0000 + -29.9966 1.0000 + -29.9665 1.0000 + 0.6330 1.0000 + 2.1018 1.0000 + 4.5271 1.0000 + 4.5956 1.0000 + 4.7951 1.0000 + 8.3518 0.0000 + 11.1089 0.0000 + 11.1684 0.0000 + 13.7806 0.0000 + 14.1363 0.0000 + 19.9386 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2900 1.0000 + -65.7395 1.0000 + -30.0328 1.0000 + -29.9988 1.0000 + -29.9664 1.0000 + 0.6878 1.0000 + 2.0898 1.0000 + 4.5140 1.0000 + 4.6007 1.0000 + 4.8434 1.0000 + 8.1649 0.0000 + 10.9818 0.0000 + 11.1274 0.0000 + 11.4259 0.0000 + 13.4427 0.0000 + 14.6883 0.0000 + + + -91.8794 1.0000 + -91.4244 1.0000 + -91.2894 1.0000 + -65.7393 1.0000 + -30.0325 1.0000 + -30.0049 1.0000 + -29.9658 1.0000 + 0.8465 1.0000 + 2.0591 1.0000 + 4.4969 1.0000 + 4.6223 1.0000 + 4.9548 1.0000 + 7.7541 0.9656 + 10.6858 0.0000 + 11.0717 0.0000 + 11.8125 0.0000 + 12.3245 0.0000 + 14.7406 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2898 1.0000 + -65.7392 1.0000 + -30.0320 1.0000 + -30.0142 1.0000 + -29.9650 1.0000 + 1.0875 1.0000 + 2.0159 1.0000 + 4.4997 1.0000 + 4.6561 1.0000 + 5.0929 1.0000 + 7.3100 1.0000 + 10.3059 0.0000 + 10.8388 0.0000 + 11.7195 0.0000 + 13.5031 0.0000 + 14.7149 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2896 1.0000 + -65.7389 1.0000 + -30.0315 1.0000 + -30.0246 1.0000 + -29.9641 1.0000 + 1.3668 1.0000 + 1.9926 1.0000 + 4.5154 1.0000 + 4.6963 1.0000 + 5.2390 1.0000 + 6.9228 1.0000 + 9.9077 0.0000 + 10.4464 0.0000 + 11.5965 0.0000 + 13.3203 0.0000 + 14.3775 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7388 1.0000 + -30.0347 1.0000 + -30.0310 1.0000 + -29.9632 1.0000 + 1.5777 1.0000 + 2.0640 1.0000 + 4.5124 1.0000 + 4.7455 1.0000 + 5.3763 1.0000 + 6.6315 1.0000 + 9.5524 0.0000 + 10.0473 0.0000 + 12.1279 0.0000 + 14.4175 0.0000 + 15.1742 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7386 1.0000 + -30.0425 1.0000 + -30.0306 1.0000 + -29.9625 1.0000 + 1.6379 1.0000 + 2.2630 1.0000 + 4.4722 1.0000 + 4.7995 1.0000 + 5.4863 1.0000 + 6.4480 1.0000 + 9.2884 0.0000 + 9.7273 0.0000 + 11.6147 0.0000 + 12.5272 0.0000 + 15.4126 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7385 1.0000 + -30.0468 1.0000 + -30.0303 1.0000 + -29.9621 1.0000 + 1.6405 1.0000 + 2.4253 1.0000 + 4.4262 1.0000 + 4.8365 1.0000 + 5.5489 1.0000 + 6.3631 1.0000 + 9.1487 0.0000 + 9.5497 0.0000 + 11.6341 0.0000 + 12.3538 0.0000 + 15.2479 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7394 1.0000 + -30.0325 1.0000 + -29.9959 1.0000 + -29.9755 1.0000 + 0.8009 1.0000 + 2.0701 1.0000 + 4.5572 1.0000 + 4.6768 1.0000 + 4.8227 1.0000 + 7.8284 0.7789 + 10.7722 0.0000 + 11.2548 0.0000 + 12.1273 0.0000 + 13.8872 0.0000 + 19.3208 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7393 1.0000 + -30.0324 1.0000 + -29.9980 1.0000 + -29.9752 1.0000 + 0.8570 1.0000 + 2.0712 1.0000 + 4.5273 1.0000 + 4.6328 1.0000 + 4.9304 1.0000 + 7.6670 0.9989 + 10.9814 0.0000 + 11.0519 0.0000 + 11.6948 0.0000 + 14.0784 0.0000 + 42.2456 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2896 1.0000 + -65.7391 1.0000 + -30.0320 1.0000 + -30.0042 1.0000 + -29.9747 1.0000 + 1.0176 1.0000 + 2.0713 1.0000 + 4.4474 1.0000 + 4.6405 1.0000 + 5.1016 1.0000 + 7.2990 1.0000 + 10.7764 0.0000 + 11.1820 0.0000 + 11.3580 0.0000 + 12.3963 0.0000 + 14.3579 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2899 1.0000 + -65.7390 1.0000 + -30.0316 1.0000 + -30.0134 1.0000 + -29.9739 1.0000 + 1.2586 1.0000 + 2.0756 1.0000 + 4.3961 1.0000 + 4.6691 1.0000 + 5.2775 1.0000 + 6.8932 1.0000 + 10.2551 0.0000 + 10.7808 0.0000 + 11.4976 0.0000 + 12.8877 0.0000 + 15.8667 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7388 1.0000 + -30.0310 1.0000 + -30.0239 1.0000 + -29.9730 1.0000 + 1.5255 1.0000 + 2.1140 1.0000 + 4.3949 1.0000 + 4.6822 1.0000 + 5.4431 1.0000 + 6.5515 1.0000 + 9.6939 0.0000 + 10.3186 0.0000 + 11.5514 0.0000 + 13.6887 0.0000 + 13.9888 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2903 1.0000 + -65.7386 1.0000 + -30.0340 1.0000 + -30.0305 1.0000 + -29.9721 1.0000 + 1.7053 1.0000 + 2.2618 1.0000 + 4.4314 1.0000 + 4.6508 1.0000 + 5.5873 1.0000 + 6.3317 1.0000 + 9.2060 0.0000 + 9.8463 0.0000 + 11.5922 0.0000 + 13.7036 0.0000 + 15.4834 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7384 1.0000 + -30.0418 1.0000 + -30.0301 1.0000 + -29.9715 1.0000 + 1.7590 1.0000 + 2.5073 1.0000 + 4.4571 1.0000 + 4.5923 1.0000 + 5.6986 1.0000 + 6.2426 1.0000 + 8.8451 0.0000 + 9.4436 0.0000 + 11.9279 0.0000 + 13.5539 0.0000 + 15.7128 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7384 1.0000 + -30.0461 1.0000 + -30.0299 1.0000 + -29.9711 1.0000 + 1.7660 1.0000 + 2.6912 1.0000 + 4.4142 1.0000 + 4.5895 1.0000 + 5.7615 1.0000 + 6.2306 1.0000 + 8.6509 0.0000 + 9.2035 0.0000 + 11.6476 0.0000 + 14.2805 0.0000 + 19.5232 0.0000 + + + -91.8815 1.0000 + -91.4265 1.0000 + -91.2914 1.0000 + -65.7392 1.0000 + -30.0318 1.0000 + -29.9947 1.0000 + -29.9885 1.0000 + 1.0577 1.0000 + 2.0304 1.0000 + 4.6009 1.0000 + 4.8033 1.0000 + 4.8693 1.0000 + 7.2978 1.0000 + 10.4120 0.0000 + 10.9345 0.0000 + 11.8493 0.0000 + 12.9361 0.0000 + 14.3082 0.0000 + + + -91.8811 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7391 1.0000 + -30.0317 1.0000 + -29.9968 1.0000 + -29.9883 1.0000 + 1.1137 1.0000 + 2.0461 1.0000 + 4.5591 1.0000 + 4.6899 1.0000 + 5.0505 1.0000 + 7.1547 1.0000 + 10.5597 0.0000 + 10.7725 0.0000 + 11.6641 0.0000 + 12.9304 0.0000 + 41.7172 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2904 1.0000 + -65.7389 1.0000 + -30.0313 1.0000 + -30.0030 1.0000 + -29.9878 1.0000 + 1.2740 1.0000 + 2.0929 1.0000 + 4.4116 1.0000 + 4.7042 1.0000 + 5.2624 1.0000 + 6.8170 1.0000 + 10.1893 0.0000 + 11.0104 0.0000 + 11.7700 0.0000 + 13.5929 0.0000 + 14.2934 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7387 1.0000 + -30.0309 1.0000 + -30.0122 1.0000 + -29.9870 1.0000 + 1.5073 1.0000 + 2.1781 1.0000 + 4.2861 1.0000 + 4.7582 1.0000 + 5.4598 1.0000 + 6.4336 1.0000 + 9.5343 0.0000 + 11.2013 0.0000 + 11.3387 0.0000 + 13.1060 0.0000 + 38.3097 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7385 1.0000 + -30.0304 1.0000 + -30.0228 1.0000 + -29.9861 1.0000 + 1.7426 1.0000 + 2.3312 1.0000 + 4.2213 1.0000 + 4.7949 1.0000 + 5.6281 1.0000 + 6.1217 1.0000 + 8.8998 0.0000 + 10.7235 0.0000 + 11.4983 0.0000 + 13.3139 0.0000 + 14.5418 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7383 1.0000 + -30.0329 1.0000 + -30.0299 1.0000 + -29.9853 1.0000 + 1.8915 1.0000 + 2.5903 1.0000 + 4.2222 1.0000 + 4.7435 1.0000 + 5.7550 1.0000 + 5.9846 1.0000 + 8.3534 0.0000 + 10.1446 0.0000 + 11.5765 0.0000 + 14.0941 0.0000 + 31.5297 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7382 1.0000 + -30.0408 1.0000 + -30.0295 1.0000 + -29.9846 1.0000 + 1.9545 1.0000 + 2.8962 1.0000 + 4.2674 1.0000 + 4.5842 1.0000 + 5.8671 1.0000 + 6.0058 1.0000 + 7.9444 0.1919 + 9.6138 0.0000 + 12.3662 0.0000 + 14.4968 0.0000 + 35.5494 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7381 1.0000 + -30.0451 1.0000 + -30.0292 1.0000 + -29.9843 1.0000 + 1.9749 1.0000 + 3.1170 1.0000 + 4.3238 1.0000 + 4.4181 1.0000 + 5.9578 1.0000 + 6.0552 1.0000 + 7.7216 0.9887 + 9.2780 0.0000 + 11.6484 0.0000 + 14.1912 0.0000 + 15.2729 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7387 1.0000 + -30.0309 1.0000 + -30.0033 1.0000 + -29.9932 1.0000 + 1.3568 1.0000 + 2.0050 1.0000 + 4.6470 1.0000 + 4.9310 1.0000 + 4.9604 1.0000 + 6.8399 1.0000 + 10.0603 0.0000 + 10.6095 0.0000 + 11.6789 0.0000 + 12.7079 0.0000 + 14.2313 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7387 1.0000 + -30.0309 1.0000 + -30.0032 1.0000 + -29.9955 1.0000 + 1.4097 1.0000 + 2.0396 1.0000 + 4.6145 1.0000 + 4.7530 1.0000 + 5.1891 1.0000 + 6.7162 1.0000 + 10.1096 0.0000 + 10.3876 0.0000 + 11.6000 0.0000 + 13.1316 0.0000 + 37.6273 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7386 1.0000 + -30.0305 1.0000 + -30.0027 1.0000 + -30.0017 1.0000 + 1.5583 1.0000 + 2.1490 1.0000 + 4.4268 1.0000 + 4.7673 1.0000 + 5.4207 1.0000 + 6.4119 1.0000 + 9.5620 0.0000 + 10.6052 0.0000 + 11.5431 0.0000 + 13.8192 0.0000 + 14.7273 0.0000 + + + -91.8807 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7384 1.0000 + -30.0301 1.0000 + -30.0110 1.0000 + -30.0020 1.0000 + 1.7596 1.0000 + 2.3479 1.0000 + 4.2353 1.0000 + 4.8561 1.0000 + 5.6156 1.0000 + 6.0522 1.0000 + 8.8319 0.0000 + 10.9690 0.0000 + 11.4301 0.0000 + 13.3676 0.0000 + 14.5676 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7382 1.0000 + -30.0296 1.0000 + -30.0216 1.0000 + -30.0011 1.0000 + 1.9573 1.0000 + 2.6478 1.0000 + 4.0985 1.0000 + 4.9571 1.0000 + 5.6139 1.0000 + 5.8909 1.0000 + 8.1389 0.0001 + 10.9883 0.0000 + 11.3423 0.0000 + 13.7094 0.0000 + 15.7553 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7380 1.0000 + -30.0317 1.0000 + -30.0291 1.0000 + -30.0003 1.0000 + 2.1129 1.0000 + 3.0175 1.0000 + 4.0379 1.0000 + 4.9190 1.0000 + 5.5211 1.0000 + 5.9990 1.0000 + 7.5405 1.0000 + 10.3988 0.0000 + 11.4577 0.0000 + 13.7122 0.0000 + 15.9308 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7379 1.0000 + -30.0397 1.0000 + -30.0287 1.0000 + -29.9997 1.0000 + 2.2149 1.0000 + 3.3832 1.0000 + 4.0564 1.0000 + 4.6690 1.0000 + 5.6796 1.0000 + 6.0916 1.0000 + 7.0870 1.0000 + 9.7752 0.0000 + 11.5424 0.0000 + 14.3066 0.0000 + 15.5761 0.0000 + + + -91.8814 1.0000 + -91.4264 1.0000 + -91.2914 1.0000 + -65.7378 1.0000 + -30.0440 1.0000 + -30.0285 1.0000 + -29.9994 1.0000 + 2.2640 1.0000 + 3.6435 1.0000 + 4.1382 1.0000 + 4.4048 1.0000 + 5.8558 1.0000 + 6.1352 1.0000 + 6.8387 1.0000 + 9.3618 0.0000 + 11.5772 0.0000 + 14.3099 0.0000 + 14.9653 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7384 1.0000 + -30.0302 1.0000 + -30.0174 1.0000 + -29.9919 1.0000 + 1.5922 1.0000 + 2.0622 1.0000 + 4.6783 1.0000 + 4.9977 1.0000 + 5.1255 1.0000 + 6.4823 1.0000 + 9.7866 0.0000 + 10.2382 0.0000 + 11.6423 0.0000 + 12.1724 0.0000 + 15.1696 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7384 1.0000 + -30.0300 1.0000 + -30.0172 1.0000 + -29.9941 1.0000 + 1.6356 1.0000 + 2.1225 1.0000 + 4.6697 1.0000 + 4.8109 1.0000 + 5.3294 1.0000 + 6.3879 1.0000 + 9.7035 0.0000 + 10.0257 0.0000 + 11.6040 0.0000 + 12.6587 0.0000 + 14.9940 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2901 1.0000 + -65.7382 1.0000 + -30.0297 1.0000 + -30.0168 1.0000 + -30.0004 1.0000 + 1.7553 1.0000 + 2.3064 1.0000 + 4.4915 1.0000 + 4.7800 1.0000 + 5.5639 1.0000 + 6.1473 1.0000 + 9.0130 0.0000 + 10.2004 0.0000 + 11.5878 0.0000 + 13.4966 0.0000 + 14.8358 0.0000 + + + -91.8807 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7381 1.0000 + -30.0293 1.0000 + -30.0162 1.0000 + -30.0097 1.0000 + 1.9268 1.0000 + 2.6143 1.0000 + 4.2587 1.0000 + 4.8639 1.0000 + 5.7056 1.0000 + 5.8972 1.0000 + 8.2193 0.0000 + 10.4809 0.0000 + 11.5381 0.0000 + 13.9612 0.0000 + 14.5546 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7379 1.0000 + -30.0288 1.0000 + -30.0204 1.0000 + -30.0154 1.0000 + 2.1305 1.0000 + 3.0221 1.0000 + 4.0628 1.0000 + 5.0039 1.0000 + 5.4474 1.0000 + 5.9945 1.0000 + 7.4712 1.0000 + 10.6874 0.0000 + 11.3421 0.0000 + 13.4783 0.0000 + 15.3783 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7377 1.0000 + -30.0306 1.0000 + -30.0283 1.0000 + -30.0147 1.0000 + 2.3416 1.0000 + 3.4734 1.0000 + 3.9279 1.0000 + 5.1088 1.0000 + 5.2297 1.0000 + 6.1260 1.0000 + 6.8189 1.0000 + 10.4946 0.0000 + 11.1842 0.0000 + 13.1952 0.0000 + 15.7397 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7376 1.0000 + -30.0385 1.0000 + -30.0280 1.0000 + -30.0141 1.0000 + 2.5238 1.0000 + 3.8199 1.0000 + 3.9375 1.0000 + 4.8268 1.0000 + 5.4778 1.0000 + 6.2123 1.0000 + 6.3224 1.0000 + 9.8991 0.0000 + 11.2407 0.0000 + 13.1926 0.0000 + 15.5369 0.0000 + + + -91.8814 1.0000 + -91.4264 1.0000 + -91.2914 1.0000 + -65.7375 1.0000 + -30.0429 1.0000 + -30.0278 1.0000 + -30.0137 1.0000 + 2.6290 1.0000 + 3.8380 1.0000 + 4.2279 1.0000 + 4.5865 1.0000 + 5.6574 1.0000 + 6.0663 1.0000 + 6.2635 1.0000 + 9.4409 0.0000 + 11.2887 0.0000 + 13.2397 0.0000 + 15.7505 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7382 1.0000 + -30.0295 1.0000 + -30.0285 1.0000 + -29.9909 1.0000 + 1.6678 1.0000 + 2.2476 1.0000 + 4.6819 1.0000 + 5.0573 1.0000 + 5.2677 1.0000 + 6.2372 1.0000 + 9.6320 0.0000 + 9.9258 0.0000 + 11.6498 0.0000 + 11.7641 0.0000 + 15.1177 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7382 1.0000 + -30.0294 1.0000 + -30.0284 1.0000 + -29.9931 1.0000 + 1.7064 1.0000 + 2.3241 1.0000 + 4.6780 1.0000 + 4.8714 1.0000 + 5.4482 1.0000 + 6.1821 1.0000 + 9.3944 0.0000 + 9.7662 0.0000 + 11.6283 0.0000 + 12.2592 0.0000 + 15.0447 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7380 1.0000 + -30.0291 1.0000 + -30.0279 1.0000 + -29.9994 1.0000 + 1.8197 1.0000 + 2.5512 1.0000 + 4.5747 1.0000 + 4.7174 1.0000 + 5.6795 1.0000 + 6.0408 1.0000 + 8.5996 0.0000 + 9.8664 0.0000 + 11.6305 0.0000 + 13.1616 0.0000 + 14.9422 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7378 1.0000 + -30.0287 1.0000 + -30.0272 1.0000 + -30.0087 1.0000 + 2.0020 1.0000 + 2.9149 1.0000 + 4.3358 1.0000 + 4.7172 1.0000 + 5.7999 1.0000 + 5.9420 1.0000 + 7.7512 0.9686 + 10.0198 0.0000 + 11.6232 0.0000 + 14.2345 0.0000 + 15.3681 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7376 1.0000 + -30.0283 1.0000 + -30.0265 1.0000 + -30.0194 1.0000 + 2.2449 1.0000 + 3.3771 1.0000 + 4.1205 1.0000 + 4.7396 1.0000 + 5.6457 1.0000 + 6.0882 1.0000 + 6.9514 1.0000 + 10.1586 0.0000 + 11.4369 0.0000 + 13.6407 0.0000 + 15.4695 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7374 1.0000 + -30.0297 1.0000 + -30.0278 1.0000 + -30.0258 1.0000 + 2.5344 1.0000 + 3.8121 1.0000 + 3.9855 1.0000 + 4.8087 1.0000 + 5.5213 1.0000 + 6.1981 1.0000 + 6.2633 1.0000 + 10.2073 0.0000 + 11.0454 0.0000 + 13.0519 0.0000 + 15.5984 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7373 1.0000 + -30.0377 1.0000 + -30.0274 1.0000 + -30.0252 1.0000 + 2.8336 1.0000 + 3.8000 1.0000 + 4.1712 1.0000 + 4.9751 1.0000 + 5.5168 1.0000 + 5.6776 1.0000 + 6.3079 1.0000 + 9.9354 0.0000 + 10.7127 0.0000 + 12.8003 0.0000 + 15.8356 0.0000 + + + -91.8814 1.0000 + -91.4264 1.0000 + -91.2914 1.0000 + -65.7372 1.0000 + -30.0421 1.0000 + -30.0272 1.0000 + -30.0249 1.0000 + 3.0541 1.0000 + 3.7465 1.0000 + 4.2239 1.0000 + 5.1222 1.0000 + 5.2997 1.0000 + 5.6922 1.0000 + 6.3453 1.0000 + 9.5016 0.0000 + 10.6605 0.0000 + 12.7227 0.0000 + 15.5675 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7380 1.0000 + -30.0345 1.0000 + -30.0292 1.0000 + -29.9902 1.0000 + 1.6740 1.0000 + 2.4018 1.0000 + 4.6707 1.0000 + 5.0946 1.0000 + 5.3522 1.0000 + 6.1117 1.0000 + 9.6010 0.0000 + 9.7207 0.0000 + 11.5419 0.0000 + 11.6546 0.0000 + 14.9372 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7380 1.0000 + -30.0344 1.0000 + -30.0291 1.0000 + -29.9926 1.0000 + 1.7129 1.0000 + 2.4847 1.0000 + 4.6554 1.0000 + 4.9171 1.0000 + 5.5191 1.0000 + 6.0879 1.0000 + 9.2253 0.0000 + 9.6369 0.0000 + 11.6608 0.0000 + 12.0478 0.0000 + 14.9557 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7379 1.0000 + -30.0339 1.0000 + -30.0288 1.0000 + -29.9989 1.0000 + 1.8315 1.0000 + 2.7302 1.0000 + 4.6082 1.0000 + 4.6655 1.0000 + 5.7492 1.0000 + 6.0255 1.0000 + 8.3737 0.0000 + 9.6738 0.0000 + 11.6583 0.0000 + 12.9796 0.0000 + 15.0184 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7377 1.0000 + -30.0333 1.0000 + -30.0284 1.0000 + -30.0082 1.0000 + 2.0272 1.0000 + 3.1247 1.0000 + 4.4101 1.0000 + 4.5557 1.0000 + 5.9249 1.0000 + 5.9750 1.0000 + 7.4900 1.0000 + 9.7287 0.0000 + 11.6418 0.0000 + 13.9974 0.0000 + 15.0437 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7375 1.0000 + -30.0326 1.0000 + -30.0279 1.0000 + -30.0189 1.0000 + 2.2989 1.0000 + 3.6250 1.0000 + 4.2181 1.0000 + 4.4835 1.0000 + 5.8518 1.0000 + 6.1331 1.0000 + 6.6571 1.0000 + 9.7868 0.0000 + 11.4865 0.0000 + 14.5147 0.0000 + 15.4164 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7373 1.0000 + -30.0318 1.0000 + -30.0291 1.0000 + -30.0275 1.0000 + 2.6408 1.0000 + 3.9091 1.0000 + 4.2522 1.0000 + 4.5325 1.0000 + 5.7034 1.0000 + 5.9787 1.0000 + 6.2621 1.0000 + 9.8299 0.0000 + 11.0556 0.0000 + 13.0395 0.0000 + 15.4657 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7372 1.0000 + -30.0372 1.0000 + -30.0313 1.0000 + -30.0271 1.0000 + 3.0409 1.0000 + 3.8298 1.0000 + 4.2195 1.0000 + 5.0235 1.0000 + 5.2301 1.0000 + 5.8071 1.0000 + 6.3436 1.0000 + 9.8006 0.0000 + 10.3862 0.0000 + 12.6747 0.0000 + 15.4656 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7371 1.0000 + -30.0416 1.0000 + -30.0310 1.0000 + -30.0269 1.0000 + 3.4531 1.0000 + 3.7372 1.0000 + 4.0740 1.0000 + 4.7709 1.0000 + 5.5707 1.0000 + 5.7646 1.0000 + 6.3738 1.0000 + 9.5306 0.0000 + 10.0845 0.0000 + 12.5702 0.0000 + 15.4251 0.0000 + + + + + + + 0.00000000 0.00000000 0.00000000 + + + 7.88278638 + + + gridpoints + spin + energy + total + integrated + + + -98.7492 0.0000 0.0000 + -98.2456 0.0000 0.0000 + -97.7420 0.0000 0.0000 + -97.2383 0.0000 0.0000 + -96.7347 0.0000 0.0000 + -96.2311 0.0000 0.0000 + -95.7275 0.0000 0.0000 + -95.2239 0.0000 0.0000 + -94.7203 0.0000 0.0000 + -94.2166 0.0000 0.0000 + -93.7130 0.0000 0.0000 + -93.2094 0.0000 0.0000 + -92.7058 0.0000 0.0000 + -92.2022 0.0000 0.0000 + -91.6986 3.9514 1.9900 + -91.1949 7.6087 5.8219 + -90.6913 0.3536 6.0000 + -90.1877 0.0000 6.0000 + -89.6841 0.0000 6.0000 + -89.1805 0.0000 6.0000 + -88.6769 0.0000 6.0000 + -88.1732 0.0000 6.0000 + -87.6696 0.0000 6.0000 + -87.1660 0.0000 6.0000 + -86.6624 0.0000 6.0000 + -86.1588 0.0000 6.0000 + -85.6552 0.0000 6.0000 + -85.1515 0.0000 6.0000 + -84.6479 0.0000 6.0000 + -84.1443 0.0000 6.0000 + -83.6407 0.0000 6.0000 + -83.1371 0.0000 6.0000 + -82.6335 0.0000 6.0000 + -82.1299 0.0000 6.0000 + -81.6262 0.0000 6.0000 + -81.1226 0.0000 6.0000 + -80.6190 0.0000 6.0000 + -80.1154 0.0000 6.0000 + -79.6118 0.0000 6.0000 + -79.1082 0.0000 6.0000 + -78.6045 0.0000 6.0000 + -78.1009 0.0000 6.0000 + -77.5973 0.0000 6.0000 + -77.0937 0.0000 6.0000 + -76.5901 0.0000 6.0000 + -76.0865 0.0000 6.0000 + -75.5828 0.0000 6.0000 + -75.0792 0.0000 6.0000 + -74.5756 0.0000 6.0000 + -74.0720 0.0000 6.0000 + -73.5684 0.0000 6.0000 + -73.0648 0.0000 6.0000 + -72.5611 0.0000 6.0000 + -72.0575 0.0000 6.0000 + -71.5539 0.0000 6.0000 + -71.0503 0.0000 6.0000 + -70.5467 0.0000 6.0000 + -70.0431 0.0000 6.0000 + -69.5394 0.0000 6.0000 + -69.0358 0.0000 6.0000 + -68.5322 0.0000 6.0000 + -68.0286 0.0000 6.0000 + -67.5250 0.0000 6.0000 + -67.0214 0.0000 6.0000 + -66.5178 0.0000 6.0000 + -66.0141 0.0002 6.0001 + -65.5105 3.9689 7.9989 + -65.0069 0.0021 8.0000 + -64.5033 0.0000 8.0000 + -63.9997 0.0000 8.0000 + -63.4961 0.0000 8.0000 + -62.9924 0.0000 8.0000 + -62.4888 0.0000 8.0000 + -61.9852 0.0000 8.0000 + -61.4816 0.0000 8.0000 + -60.9780 0.0000 8.0000 + -60.4744 0.0000 8.0000 + -59.9707 0.0000 8.0000 + -59.4671 0.0000 8.0000 + -58.9635 0.0000 8.0000 + -58.4599 0.0000 8.0000 + -57.9563 0.0000 8.0000 + -57.4527 0.0000 8.0000 + -56.9490 0.0000 8.0000 + -56.4454 0.0000 8.0000 + -55.9418 0.0000 8.0000 + -55.4382 0.0000 8.0000 + -54.9346 0.0000 8.0000 + -54.4310 0.0000 8.0000 + -53.9273 0.0000 8.0000 + -53.4237 0.0000 8.0000 + -52.9201 0.0000 8.0000 + -52.4165 0.0000 8.0000 + -51.9129 0.0000 8.0000 + -51.4093 0.0000 8.0000 + -50.9057 0.0000 8.0000 + -50.4020 0.0000 8.0000 + -49.8984 0.0000 8.0000 + -49.3948 0.0000 8.0000 + -48.8912 0.0000 8.0000 + -48.3876 0.0000 8.0000 + -47.8840 0.0000 8.0000 + -47.3803 0.0000 8.0000 + -46.8767 0.0000 8.0000 + -46.3731 0.0000 8.0000 + -45.8695 0.0000 8.0000 + -45.3659 0.0000 8.0000 + -44.8623 0.0000 8.0000 + -44.3586 0.0000 8.0000 + -43.8550 0.0000 8.0000 + -43.3514 0.0000 8.0000 + -42.8478 0.0000 8.0000 + -42.3442 0.0000 8.0000 + -41.8406 0.0000 8.0000 + -41.3369 0.0000 8.0000 + -40.8333 0.0000 8.0000 + -40.3297 0.0000 8.0000 + -39.8261 0.0000 8.0000 + -39.3225 0.0000 8.0000 + -38.8189 0.0000 8.0000 + -38.3152 0.0000 8.0000 + -37.8116 0.0000 8.0000 + -37.3080 0.0000 8.0000 + -36.8044 0.0000 8.0000 + -36.3008 0.0000 8.0000 + -35.7972 0.0000 8.0000 + -35.2936 0.0000 8.0000 + -34.7899 0.0000 8.0000 + -34.2863 0.0000 8.0000 + -33.7827 0.0000 8.0000 + -33.2791 0.0000 8.0000 + -32.7755 0.0000 8.0000 + -32.2719 0.0000 8.0000 + -31.7682 0.0000 8.0000 + -31.2646 0.0000 8.0000 + -30.7610 0.0000 8.0000 + -30.2574 0.0062 8.0031 + -29.7538 11.6675 13.8791 + -29.2502 0.2401 14.0000 + -28.7465 0.0000 14.0000 + -28.2429 0.0000 14.0000 + -27.7393 0.0000 14.0000 + -27.2357 0.0000 14.0000 + -26.7321 0.0000 14.0000 + -26.2285 0.0000 14.0000 + -25.7248 0.0000 14.0000 + -25.2212 0.0000 14.0000 + -24.7176 0.0000 14.0000 + -24.2140 0.0000 14.0000 + -23.7104 0.0000 14.0000 + -23.2068 0.0000 14.0000 + -22.7031 0.0000 14.0000 + -22.1995 0.0000 14.0000 + -21.6959 0.0000 14.0000 + -21.1923 0.0000 14.0000 + -20.6887 0.0000 14.0000 + -20.1851 0.0000 14.0000 + -19.6815 0.0000 14.0000 + -19.1778 0.0000 14.0000 + -18.6742 0.0000 14.0000 + -18.1706 0.0000 14.0000 + -17.6670 0.0000 14.0000 + -17.1634 0.0000 14.0000 + -16.6598 0.0000 14.0000 + -16.1561 0.0000 14.0000 + -15.6525 0.0000 14.0000 + -15.1489 0.0000 14.0000 + -14.6453 0.0000 14.0000 + -14.1417 0.0000 14.0000 + -13.6381 0.0000 14.0000 + -13.1344 0.0000 14.0000 + -12.6308 0.0000 14.0000 + -12.1272 0.0000 14.0000 + -11.6236 0.0000 14.0000 + -11.1200 0.0000 14.0000 + -10.6164 0.0000 14.0000 + -10.1127 0.0000 14.0000 + -9.6091 0.0000 14.0000 + -9.1055 0.0000 14.0000 + -8.6019 0.0000 14.0000 + -8.0983 0.0000 14.0000 + -7.5947 0.0000 14.0000 + -7.0910 0.0000 14.0000 + -6.5874 0.0000 14.0000 + -6.0838 0.0000 14.0000 + -5.5802 0.0000 14.0000 + -5.0766 0.0000 14.0000 + -4.5730 0.0000 14.0000 + -4.0694 0.0000 14.0000 + -3.5657 0.0000 14.0000 + -3.0621 0.0000 14.0000 + -2.5585 0.0000 14.0000 + -2.0549 0.0009 14.0005 + -1.5513 0.1132 14.0574 + -1.0477 0.2483 14.1825 + -0.5440 0.3448 14.3561 + -0.0404 0.4543 14.5849 + 0.4632 0.5588 14.8664 + 0.9668 0.6103 15.1737 + 1.4704 0.8493 15.6014 + 1.9740 1.0615 16.1360 + 2.4777 1.1259 16.7031 + 2.9813 0.9778 17.1955 + 3.4849 0.7572 17.5768 + 3.9885 0.9446 18.0526 + 4.4921 2.2831 19.2023 + 4.9957 3.6694 21.0503 + 5.4994 2.8044 22.4627 + 6.0030 2.3933 23.6680 + 6.5066 1.9045 24.6271 + 7.0102 1.3513 25.3077 + 7.5138 0.8062 25.7137 + 8.0174 0.7272 26.0799 + 8.5211 0.8382 26.5020 + 9.0247 1.4316 27.2230 + 9.5283 1.9155 28.1877 + 10.0319 1.7300 29.0590 + 10.5355 1.5459 29.8375 + 11.0391 1.1419 30.4126 + 11.5427 1.3555 31.0952 + 12.0464 1.2953 31.7476 + 12.5500 0.5429 32.0210 + 13.0536 0.4473 32.2462 + 13.5572 0.8282 32.6634 + 14.0608 1.1877 33.2615 + 14.5644 1.1003 33.8156 + 15.0681 1.3090 34.4749 + 15.5717 1.4011 35.1805 + 16.0753 0.7368 35.5516 + 16.5789 0.3354 35.7205 + 17.0825 0.2344 35.8385 + 17.5861 0.0350 35.8561 + 18.0898 0.0355 35.8740 + 18.5934 0.0265 35.8874 + 19.0970 0.0000 35.8874 + 19.6006 0.0175 35.8962 + 20.1042 0.0059 35.8992 + 20.6078 0.0000 35.8993 + 21.1115 0.0000 35.8993 + 21.6151 0.0004 35.8995 + 22.1187 0.0043 35.9016 + 22.6223 0.0000 35.9016 + 23.1259 0.0000 35.9016 + 23.6295 0.0000 35.9016 + 24.1332 0.0047 35.9040 + 24.6368 0.0000 35.9040 + 25.1404 0.0000 35.9040 + 25.6440 0.0000 35.9040 + 26.1476 0.0000 35.9040 + 26.6512 0.0000 35.9040 + 27.1548 0.0000 35.9040 + 27.6585 0.0000 35.9040 + 28.1621 0.0000 35.9040 + 28.6657 0.0000 35.9040 + 29.1693 0.0000 35.9040 + 29.6729 0.0000 35.9040 + 30.1765 0.0000 35.9040 + 30.6802 0.0000 35.9040 + 31.1838 0.0001 35.9040 + 31.6874 0.0186 35.9134 + 32.1910 0.0092 35.9180 + 32.6946 0.0003 35.9182 + 33.1982 0.0094 35.9230 + 33.7019 0.0000 35.9230 + 34.2055 0.0107 35.9284 + 34.7091 0.0081 35.9324 + 35.2127 0.0000 35.9324 + 35.7163 0.0223 35.9437 + 36.2199 0.0077 35.9475 + 36.7236 0.0030 35.9490 + 37.2272 0.0047 35.9514 + 37.7308 0.0088 35.9558 + 38.2344 0.0020 35.9568 + 38.7380 0.0269 35.9704 + 39.2416 0.0102 35.9755 + 39.7453 0.0015 35.9763 + 40.2489 0.0000 35.9763 + 40.7525 0.0047 35.9787 + 41.2561 0.0000 35.9787 + 41.7597 0.0178 35.9876 + 42.2633 0.0114 35.9934 + 42.7670 0.0038 35.9953 + 43.2706 0.0000 35.9953 + 43.7742 0.0000 35.9953 + 44.2778 0.0000 35.9953 + 44.7814 0.0000 35.9953 + 45.2850 0.0000 35.9953 + 45.7886 0.0094 36.0000 + 46.2923 0.0000 36.0000 + 46.7959 0.0000 36.0000 + 47.2995 0.0000 36.0000 + 47.8031 0.0000 36.0000 + 48.3067 0.0000 36.0000 + 48.8103 0.0000 36.0000 + 49.3140 0.0000 36.0000 + 49.8176 0.0000 36.0000 + 50.3212 0.0000 36.0000 + 50.8248 0.0000 36.0000 + 51.3284 0.0000 36.0000 + 51.8320 0.0000 36.0000 + 52.3357 0.0000 36.0000 + + + + + + + + + + 3.66961100 0.00000000 0.00000000 + 0.00000000 3.55744000 0.00000000 + 0.00000000 0.00000000 3.17678100 + + 41.47103646 + + 0.27250845 0.00000000 0.00000000 + 0.00000000 0.28110102 0.00000000 + 0.00000000 0.00000000 0.31478405 + + + + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.50000000 0.50000000 + 0.50000000 0.00000000 0.50000000 + 0.50000000 0.50000000 0.00000000 + + + From c3661272f17cbb0b0aed0cfb6bcbe8cb5f365d5c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 24 Jul 2018 19:55:39 -0400 Subject: [PATCH 337/675] re-allow commands after an exception was caught inside a run. after an exception "all bets are off", i.e. the user should be allowed to do anything to recover. through setting Update::whichflag to 0, the guard against running commands during a run is removed. --- src/error.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/error.cpp b/src/error.cpp index d516050385..3feaf1d1ac 100644 --- a/src/error.cpp +++ b/src/error.cpp @@ -16,6 +16,7 @@ #include #include "error.h" #include "universe.h" +#include "update.h" #include "output.h" #include "input.h" @@ -69,6 +70,10 @@ void Error::universe_all(const char *file, int line, const char *str) if (universe->ulogfile) fclose(universe->ulogfile); #ifdef LAMMPS_EXCEPTIONS + + // allow commands if an exception was caught in a run + update->whichflag = 0; + char msg[100]; sprintf(msg, "ERROR: %s (%s:%d)\n", str, file, line); throw LAMMPSException(msg); @@ -90,6 +95,10 @@ void Error::universe_one(const char *file, int line, const char *str) universe->me,str,truncpath(file),line); #ifdef LAMMPS_EXCEPTIONS + + // allow commands if an exception was caught in a run + update->whichflag = 0; + char msg[100]; sprintf(msg, "ERROR: %s (%s:%d)\n", str, file, line); throw LAMMPSAbortException(msg, universe->uworld); @@ -137,6 +146,10 @@ void Error::all(const char *file, int line, const char *str) } #ifdef LAMMPS_EXCEPTIONS + + // allow commands if an exception was caught in a run + update->whichflag = 0; + char msg[100]; sprintf(msg, "ERROR: %s (%s:%d)\n", str, file, line); @@ -183,6 +196,10 @@ void Error::one(const char *file, int line, const char *str) universe->me,str,truncpath(file),line); #ifdef LAMMPS_EXCEPTIONS + + // allow commands if an exception was caught in a run + update->whichflag = 0; + char msg[100]; sprintf(msg, "ERROR on proc %d: %s (%s:%d)\n", me, str, file, line); throw LAMMPSAbortException(msg, world); From 678df2498acbf439d1eee9a02070f9a2956f49c9 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 25 Jul 2018 09:32:02 -0400 Subject: [PATCH 338/675] Updated lammps.book --- doc/src/lammps.book | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 06f4bf3718..fe8eb13161 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -14,7 +14,7 @@ accelerate_opt.html Section_howto.html Section_example.html Section_perf.html -Section_tools.html +Tools.html Section_modify.html Section_python.html Section_errors.html From 7ac3f08eec6c17c5666bbaa0083a0c8f7569e6ab Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 25 Jul 2018 09:39:18 -0400 Subject: [PATCH 339/675] Fix typo --- doc/src/Tools.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index 8fc371c4ef..859bb9d50c 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -29,7 +29,7 @@ The last link for "Pizza.py"_pizza is a Python-based tool developed at Sandia which provides tools for doing setup, analysis, plotting, and visualization for LAMMPS simulations. -"link(pizza,http://pizza.sandia.gov) +:link(pizza,http://pizza.sandia.gov) :link(python,http://www.python.org) Additional tools included in the LAMMPS distribution are described on From 80d85841af82b105ea2b6bd5afe35b765dee7df3 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 25 Jul 2018 08:15:25 -0600 Subject: [PATCH 340/675] one more tweak on a link --- doc/src/Tools.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index 859bb9d50c..0674e3cfcc 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -10,7 +10,7 @@ Section"_Modify.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Commands.html#comm) +:link(lc,Section_commands.html#comm) :line From 22c9258b8e78f74c50ced55c88307d3ed5d55d0b Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 25 Jul 2018 09:27:13 -0600 Subject: [PATCH 341/675] doc changes for Examples and Modify sections --- doc/src/{Section_example.txt => Examples.txt} | 16 +- doc/src/Manual.txt | 39 +- doc/src/Modify.txt | 76 ++ doc/src/Modify_atom.txt | 90 ++ doc/src/Modify_body.txt | 35 + doc/src/Modify_bond.txt | 33 + doc/src/Modify_command.txt | 27 + doc/src/Modify_compute.txt | 49 ++ doc/src/Modify_contribute.txt | 210 +++++ doc/src/Modify_dump.txt | 35 + doc/src/Modify_fix.txt | 107 +++ doc/src/Modify_kspace.txt | 25 + doc/src/Modify_min.txt | 23 + doc/src/Modify_overview.txt | 101 +++ doc/src/Modify_pair.txt | 33 + doc/src/Modify_region.txt | 25 + doc/src/Modify_thermo.txt | 35 + doc/src/Modify_variable.txt | 46 + doc/src/Section_commands.txt | 8 +- doc/src/Section_howto.txt | 35 +- doc/src/Section_intro.txt | 17 +- doc/src/Section_modify.txt | 827 ------------------ doc/src/Section_packages.txt | 3 +- doc/src/Section_perf.txt | 6 +- doc/src/Section_python.txt | 4 +- doc/src/Tools.txt | 4 +- doc/src/atom_style.txt | 2 +- doc/src/body.txt | 4 +- doc/src/compute.txt | 4 +- doc/src/compute_chunk_atom.txt | 4 +- doc/src/compute_global_atom.txt | 8 +- doc/src/compute_reduce.txt | 8 +- doc/src/compute_slice.txt | 4 +- doc/src/dump.txt | 6 +- doc/src/dump_image.txt | 6 +- doc/src/fix.txt | 6 +- doc/src/fix_ave_atom.txt | 6 +- doc/src/fix_ave_chunk.txt | 4 +- doc/src/fix_ave_correlate.txt | 4 +- doc/src/fix_ave_histo.txt | 12 +- doc/src/fix_ave_time.txt | 4 +- doc/src/fix_controller.txt | 4 +- doc/src/fix_property_atom.txt | 6 +- doc/src/fix_vector.txt | 4 +- doc/src/lammps.book | 4 +- doc/src/run.txt | 5 +- doc/src/thermo_style.txt | 11 +- doc/src/tutorial_github.txt | 4 +- 48 files changed, 1063 insertions(+), 966 deletions(-) rename doc/src/{Section_example.txt => Examples.txt} (94%) create mode 100644 doc/src/Modify.txt create mode 100644 doc/src/Modify_atom.txt create mode 100644 doc/src/Modify_body.txt create mode 100644 doc/src/Modify_bond.txt create mode 100644 doc/src/Modify_command.txt create mode 100644 doc/src/Modify_compute.txt create mode 100644 doc/src/Modify_contribute.txt create mode 100644 doc/src/Modify_dump.txt create mode 100644 doc/src/Modify_fix.txt create mode 100644 doc/src/Modify_kspace.txt create mode 100644 doc/src/Modify_min.txt create mode 100644 doc/src/Modify_overview.txt create mode 100644 doc/src/Modify_pair.txt create mode 100644 doc/src/Modify_region.txt create mode 100644 doc/src/Modify_thermo.txt create mode 100644 doc/src/Modify_variable.txt delete mode 100644 doc/src/Section_modify.txt diff --git a/doc/src/Section_example.txt b/doc/src/Examples.txt similarity index 94% rename from doc/src/Section_example.txt rename to doc/src/Examples.txt index a2a9940f48..4935c96257 100644 --- a/doc/src/Section_example.txt +++ b/doc/src/Examples.txt @@ -1,4 +1,12 @@ -"Previous Section"_Section_howto.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_perf.html :c +"Previous Section"_Section_howto.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Section_perf.html :c + + :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -6,7 +14,7 @@ :line -7. Example problems :h2 +Example scripts :h3 The LAMMPS distribution includes an examples sub-directory with many sample problems. Many are 2d models that run quickly are are @@ -46,7 +54,7 @@ Lists of both kinds of directories are given below. :line -Lowercase directories :h3 +Lowercase directories :h4 accelerate: run with various acceleration options (OpenMP, GPU, Phi) airebo: polyethylene with AIREBO potential @@ -122,7 +130,7 @@ browser. :line -Uppercase directories :h3 +Uppercase directories :h4 ASPHERE: various aspherical particle models, using ellipsoids, rigid bodies, line/triangle particles, etc COUPLE: examples of how to use LAMMPS as a library diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index d6d46570c1..18ae1c4b61 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -114,10 +114,10 @@ it gives quick access to documentation for all LAMMPS commands. Section_packages Section_accelerate Section_howto - Section_example + Examples Section_perf Tools - Section_modify + Modify Section_python Section_errors Section_history @@ -208,25 +208,10 @@ END_RST --> 6.25 "Polarizable models"_howto_25 :b 6.26 "Adiabatic core/shell model"_howto_26 :b 6.27 "Drude induced dipoles"_howto_27 :ule,b -"Example problems"_Section_example.html :l +"Example scripts"_Examples.html :l "Performance & scalability"_Section_perf.html :l "Auxiliary tools"_Tools.html :l -"Modifying & extending LAMMPS"_Section_modify.html :l - 10.1 "Atom styles"_mod_1 :ulb,b - 10.2 "Bond, angle, dihedral, improper potentials"_mod_2 :b - 10.3 "Compute styles"_mod_3 :b - 10.4 "Dump styles"_mod_4 :b - 10.5 "Dump custom output options"_mod_5 :b - 10.6 "Fix styles"_mod_6 :b - 10.7 "Input script commands"_mod_7 :b - 10.8 "Kspace computations"_mod_8 :b - 10.9 "Minimization styles"_mod_9 :b - 10.10 "Pairwise potentials"_mod_10 :b - 10.11 "Region styles"_mod_11 :b - 10.12 "Body styles"_mod_12 :b - 10.13 "Thermodynamic output options"_mod_13 :b - 10.14 "Variable options"_mod_14 :b - 10.15 "Submitting new features for inclusion in LAMMPS"_mod_15 :ule,b +"Modify & extend LAMMPS"_Modify.html :l "Python interface"_Section_python.html :l 11.1 "Overview of running LAMMPS from Python"_py_1 :ulb,b 11.2 "Overview of using Python from a LAMMPS script"_py_2 :b @@ -302,22 +287,6 @@ END_RST --> :link(howto_26,Section_howto.html#howto_26) :link(howto_27,Section_howto.html#howto_27) -:link(mod_1,Section_modify.html#mod_1) -:link(mod_2,Section_modify.html#mod_2) -:link(mod_3,Section_modify.html#mod_3) -:link(mod_4,Section_modify.html#mod_4) -:link(mod_5,Section_modify.html#mod_5) -:link(mod_6,Section_modify.html#mod_6) -:link(mod_7,Section_modify.html#mod_7) -:link(mod_8,Section_modify.html#mod_8) -:link(mod_9,Section_modify.html#mod_9) -:link(mod_10,Section_modify.html#mod_10) -:link(mod_11,Section_modify.html#mod_11) -:link(mod_12,Section_modify.html#mod_12) -:link(mod_13,Section_modify.html#mod_13) -:link(mod_14,Section_modify.html#mod_14) -:link(mod_15,Section_modify.html#mod_15) - :link(py_1,Section_python.html#py_1) :link(py_2,Section_python.html#py_2) :link(py_3,Section_python.html#py_3) diff --git a/doc/src/Modify.txt b/doc/src/Modify.txt new file mode 100644 index 0000000000..f7d94c89e9 --- /dev/null +++ b/doc/src/Modify.txt @@ -0,0 +1,76 @@ +"Previous Section"_Tools.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Section_python.html :c + + + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Modify & extend LAMMPS :h3 + +LAMMPS is designed in a modular fashion so as to be easy to modify and +extend with new functionality. In fact, about 95% of its source code +is add-on files. These doc pages give basic instructions on how to do +this. + +If you add a new feature to LAMMPS and think it will be of interest to +general users, we encourage you to submit it for inclusion in LAMMPS +as a pull request on our "GitHub +site"_https://github.com/lammps/lammps, after reading the "Modify +contribute"_Modify_contribute.html doc page. + + + + + +"Overview"_Modify_overview.html +"Submitting new features for inclusion in LAMMPS"_Modify_contribute.html :all(b) + +"Atom styles"_Modify_atom.html +"Pair styles"_Modify_pair.html +"Bond, angle, dihedral, improper styles"_Modify_bond.html +"Compute styles"_Modify_compute.html +"Fix styles"_Modify_fix.html +"Input script command styles"_Modify_command.html :all(b) + +"Dump styles"_Modify_dump.html +"Kspace styles"_Modify_kspace.html +"Minimization styles"_Modify_min.html +"Region styles"_Modify_region.html +"Body styles"_Modify_body.html :all(b) + +"Thermodynamic output options"_Modify_thermo.html +"Variable options"_Modify_variable.html :all(b) + + diff --git a/doc/src/Modify_atom.txt b/doc/src/Modify_atom.txt new file mode 100644 index 0000000000..afa1c319d2 --- /dev/null +++ b/doc/src/Modify_atom.txt @@ -0,0 +1,90 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Atom styles :h3 + +Classes that define an "atom style"_atom_style.html are derived from +the AtomVec class and managed by the Atom class. The atom style +determines what attributes are associated with an atom. A new atom +style can be created if one of the existing atom styles does not +define all the attributes you need to store and communicate with +atoms. + +Atom_vec_atomic.cpp is a simple example of an atom style. + +Here is a brief description of methods you define in your new derived +class. See atom_vec.h for details. + +init: one time setup (optional) +grow: re-allocate atom arrays to longer lengths (required) +grow_reset: make array pointers in Atom and AtomVec classes consistent (required) +copy: copy info for one atom to another atom's array locations (required) +pack_comm: store an atom's info in a buffer communicated every timestep (required) +pack_comm_vel: add velocity info to communication buffer (required) +pack_comm_hybrid: store extra info unique to this atom style (optional) +unpack_comm: retrieve an atom's info from the buffer (required) +unpack_comm_vel: also retrieve velocity info (required) +unpack_comm_hybrid: retrieve extra info unique to this atom style (optional) +pack_reverse: store an atom's info in a buffer communicating partial forces (required) +pack_reverse_hybrid: store extra info unique to this atom style (optional) +unpack_reverse: retrieve an atom's info from the buffer (required) +unpack_reverse_hybrid: retrieve extra info unique to this atom style (optional) +pack_border: store an atom's info in a buffer communicated on neighbor re-builds (required) +pack_border_vel: add velocity info to buffer (required) +pack_border_hybrid: store extra info unique to this atom style (optional) +unpack_border: retrieve an atom's info from the buffer (required) +unpack_border_vel: also retrieve velocity info (required) +unpack_border_hybrid: retrieve extra info unique to this atom style (optional) +pack_exchange: store all an atom's info to migrate to another processor (required) +unpack_exchange: retrieve an atom's info from the buffer (required) +size_restart: number of restart quantities associated with proc's atoms (required) +pack_restart: pack atom quantities into a buffer (required) +unpack_restart: unpack atom quantities from a buffer (required) +create_atom: create an individual atom of this style (required) +data_atom: parse an atom line from the data file (required) +data_atom_hybrid: parse additional atom info unique to this atom style (optional) +data_vel: parse one line of velocity information from data file (optional) +data_vel_hybrid: parse additional velocity data unique to this atom style (optional) +memory_usage: tally memory allocated by atom arrays (required) :tb(s=:) + +The constructor of the derived class sets values for several variables +that you must set when defining a new atom style, which are documented +in atom_vec.h. New atom arrays are defined in atom.cpp. Search for +the word "customize" and you will find locations you will need to +modify. + +NOTE: It is possible to add some attributes, such as a molecule ID, to +atom styles that do not have them via the "fix +property/atom"_fix_property_atom.html command. This command also +allows new custom attributes consisting of extra integer or +floating-point values to be added to atoms. See the "fix +property/atom"_fix_property_atom.html doc page for examples of cases +where this is useful and details on how to initialize, access, and +output the custom values. + +New "pair styles"_pair_style.html, "fixes"_fix.html, or +"computes"_compute.html can be added to LAMMPS, as discussed below. +The code for these classes can use the per-atom properties defined by +fix property/atom. The Atom class has a find_custom() method that is +useful in this context: + +int index = atom->find_custom(char *name, int &flag); :pre + +The "name" of a custom attribute, as specified in the "fix +property/atom"_fix_property_atom.html command, is checked to verify +that it exists and its index is returned. The method also sets flag = +0/1 depending on whether it is an integer or floating-point attribute. +The vector of values associated with the attribute can then be +accessed using the returned index as + +int *ivector = atom->ivector\[index\]; +double *dvector = atom->dvector\[index\]; :pre + +Ivector or dvector are vectors of length Nlocal = # of owned atoms, +which store the attributes of individual atoms. diff --git a/doc/src/Modify_body.txt b/doc/src/Modify_body.txt new file mode 100644 index 0000000000..b1dc8130cd --- /dev/null +++ b/doc/src/Modify_body.txt @@ -0,0 +1,35 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Body styles :h3 + +Classes that define body particles are derived from the Body class. +Body particles can represent complex entities, such as surface meshes +of discrete points, collections of sub-particles, deformable objects, +etc. + +See "Section 6.14"_Section_howto.html#howto_14 of the manual for +an overview of using body particles and the "body"_body.html doc page +for details on the various body styles LAMMPS supports. New styles +can be created to add new kinds of body particles to LAMMPS. + +Body_nparticle.cpp is an example of a body particle that is treated as +a rigid body containing N sub-particles. + +Here is a brief description of methods you define in your new derived +class. See body.h for details. + +data_body: process a line from the Bodies section of a data file +noutrow: number of sub-particles output is generated for +noutcol: number of values per-sub-particle output is generated for +output: output values for the Mth sub-particle +pack_comm_body: body attributes to communicate every timestep +unpack_comm_body: unpacking of those attributes +pack_border_body: body attributes to communicate when reneighboring is done +unpack_border_body: unpacking of those attributes :tb(s=:) diff --git a/doc/src/Modify_bond.txt b/doc/src/Modify_bond.txt new file mode 100644 index 0000000000..f0828a0c3b --- /dev/null +++ b/doc/src/Modify_bond.txt @@ -0,0 +1,33 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Bond, angle, dihedral, improper styles :h3 + +Classes that compute molecular interactions are derived from the Bond, +Angle, Dihedral, and Improper classes. New styles can be created to +add new potentials to LAMMPS. + +Bond_harmonic.cpp is the simplest example of a bond style. Ditto for +the harmonic forms of the angle, dihedral, and improper style +commands. + +Here is a brief description of common methods you define in your +new derived class. See bond.h, angle.h, dihedral.h, and improper.h +for details and specific additional methods. + +init: check if all coefficients are set, calls {init_style} (optional) +init_style: check if style specific conditions are met (optional) +compute: compute the molecular interactions (required) +settings: apply global settings for all types (optional) +coeff: set coefficients for one type (required) +equilibrium_distance: length of bond, used by SHAKE (required, bond only) +equilibrium_angle: opening of angle, used by SHAKE (required, angle only) +write & read_restart: writes/reads coeffs to restart files (required) +single: force and energy of a single bond or angle (required, bond or angle only) +memory_usage: tally memory allocated by the style (optional) :tb(s=:) diff --git a/doc/src/Modify_command.txt b/doc/src/Modify_command.txt new file mode 100644 index 0000000000..6fc9aad1fc --- /dev/null +++ b/doc/src/Modify_command.txt @@ -0,0 +1,27 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Input script command style :h3 + +New commands can be added to LAMMPS input scripts by adding new +classes that have a "command" method. For example, the create_atoms, +read_data, velocity, and run commands are all implemented in this +fashion. When such a command is encountered in the LAMMPS input +script, LAMMPS simply creates a class with the corresponding name, +invokes the "command" method of the class, and passes it the arguments +from the input script. The command method can perform whatever +operations it wishes on LAMMPS data structures. + +The single method your new class must define is as follows: + +command: operations performed by the new command :tb(s=:) + +Of course, the new class can define other methods and variables as +needed. + diff --git a/doc/src/Modify_compute.txt b/doc/src/Modify_compute.txt new file mode 100644 index 0000000000..b02b8a983e --- /dev/null +++ b/doc/src/Modify_compute.txt @@ -0,0 +1,49 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Compute styles :h3 + +Classes that compute scalar and vector quantities like temperature +and the pressure tensor, as well as classes that compute per-atom +quantities like kinetic energy and the centro-symmetry parameter +are derived from the Compute class. New styles can be created +to add new calculations to LAMMPS. + +Compute_temp.cpp is a simple example of computing a scalar +temperature. Compute_ke_atom.cpp is a simple example of computing +per-atom kinetic energy. + +Here is a brief description of methods you define in your new derived +class. See compute.h for details. + +init: perform one time setup (required) +init_list: neighbor list setup, if needed (optional) +compute_scalar: compute a scalar quantity (optional) +compute_vector: compute a vector of quantities (optional) +compute_peratom: compute one or more quantities per atom (optional) +compute_local: compute one or more quantities per processor (optional) +pack_comm: pack a buffer with items to communicate (optional) +unpack_comm: unpack the buffer (optional) +pack_reverse: pack a buffer with items to reverse communicate (optional) +unpack_reverse: unpack the buffer (optional) +remove_bias: remove velocity bias from one atom (optional) +remove_bias_all: remove velocity bias from all atoms in group (optional) +restore_bias: restore velocity bias for one atom after remove_bias (optional) +restore_bias_all: same as before, but for all atoms in group (optional) +pair_tally_callback: callback function for {tally}-style computes (optional). +memory_usage: tally memory usage (optional) :tb(s=:) + +Tally-style computes are a special case, as their computation is done +in two stages: the callback function is registered with the pair style +and then called from the Pair::ev_tally() function, which is called for +each pair after force and energy has been computed for this pair. Then +the tallied values are retrieved with the standard compute_scalar or +compute_vector or compute_peratom methods. The USER-TALLY package +provides {examples}_compute_tally.html for utilizing this mechanism. + diff --git a/doc/src/Modify_contribute.txt b/doc/src/Modify_contribute.txt new file mode 100644 index 0000000000..80795b5e20 --- /dev/null +++ b/doc/src/Modify_contribute.txt @@ -0,0 +1,210 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Submitting new features for inclusion in LAMMPS :h3 + +We encourage users to submit new features or modifications for LAMMPS +to "the core developers"_http://lammps.sandia.gov/authors.html so they +can be added to the LAMMPS distribution. The preferred way to manage +and coordinate this is as of Fall 2016 via the LAMMPS project on +"GitHub"_https://github.com/lammps/lammps. An alternative is to +contact the LAMMPS developers or the indicated developer of a package +or feature directly and send in your contribution via e-mail. + +For any larger modifications or programming project, you are +encouraged to contact the LAMMPS developers ahead of time, in order to +discuss implementation strategies and coding guidelines, that will +make it easier to integrate your contribution and result in less work +for everybody involved. You are also encouraged to search through the +list of "open issues on +GitHub"_https://github.com/lammps/lammps/issues and submit a new issue +for a planned feature, so you would not duplicate the work of others +(and possibly get scooped by them) or have your work duplicated by +others. + +How quickly your contribution will be integrated depends largely on +how much effort it will cause to integrate and test it, how much it +requires changes to the core codebase, and of how much interest it is +to the larger LAMMPS community. Please see below for a checklist of +typical requirements. Once you have prepared everything, see "this +tutorial"_tutorial_github.html for instructions on how to submit your +changes or new files through a GitHub pull request. If you prefer to +submit patches or full files, you should first make certain, that your +code works correctly with the latest patch-level version of LAMMPS and +contains all bugfixes from it. Then create a gzipped tar file of all +changed or added files or a corresponding patch file using 'diff -u' +or 'diff -c' and compress it with gzip. Please only use gzip +compression, as this works well on all platforms. + +If the new features/files are broadly useful we may add them as core +files to LAMMPS or as part of a "standard +package"_Section_start.html#start_3. Else we will add them as a +user-contributed file or package. Examples of user packages are in +src sub-directories that start with USER. The USER-MISC package is +simply a collection of (mostly) unrelated single files, which is the +simplest way to have your contribution quickly added to the LAMMPS +distribution. You can see a list of the both standard and user +packages by typing "make package" in the LAMMPS src directory. + +Note that by providing us files to release, you are agreeing to make +them open-source, i.e. we can release them under the terms of the GPL, +used as a license for the rest of LAMMPS. See "Section +1.4"_Section_intro.html#intro_4 for details. + +With user packages and files, all we are really providing (aside from +the fame and fortune that accompanies having your name in the source +code and on the "Authors page"_http://lammps.sandia.gov/authors.html +of the "LAMMPS WWW site"_lws), is a means for you to distribute your +work to the LAMMPS user community, and a mechanism for others to +easily try out your new feature. This may help you find bugs or make +contact with new collaborators. Note that you're also implicitly +agreeing to support your code which means answer questions, fix bugs, +and maintain it if LAMMPS changes in some way that breaks it (an +unusual event). + +NOTE: If you prefer to actively develop and support your add-on +feature yourself, then you may wish to make it available for download +from your own website, as a user package that LAMMPS users can add to +their copy of LAMMPS. See the "Offsite LAMMPS packages and +tools"_http://lammps.sandia.gov/offsite.html page of the LAMMPS web +site for examples of groups that do this. We are happy to advertise +your package and web site from that page. Simply email the +"developers"_http://lammps.sandia.gov/authors.html with info about +your package and we will post it there. + +The previous sections of this doc page describe how to add new "style" +files of various kinds to LAMMPS. Packages are simply collections of +one or more new class files which are invoked as a new style within a +LAMMPS input script. If designed correctly, these additions typically +do not require changes to the main core of LAMMPS; they are simply +add-on files. If you think your new feature requires non-trivial +changes in core LAMMPS files, you'll need to "communicate with the +developers"_http://lammps.sandia.gov/authors.html, since we may or may +not want to make those changes. An example of a trivial change is +making a parent-class method "virtual" when you derive a new child +class from it. + +Here is a checklist of steps you need to follow to submit a single file +or user package for our consideration. Following these steps will save +both you and us time. See existing files in packages in the src dir for +examples. If you are uncertain, please ask. + +All source files you provide must compile with the most current +version of LAMMPS with multiple configurations. In particular you +need to test compiling LAMMPS from scratch with -DLAMMPS_BIGBIG +set in addition to the default -DLAMMPS_SMALLBIG setting. Your code +will need to work correctly in serial and in parallel using MPI. :ulb,l + +For consistency with the rest of LAMMPS and especially, if you want +your contribution(s) to be added to main LAMMPS code or one of its +standard packages, it needs to be written in a style compatible with +other LAMMPS source files. This means: 2-character indentation per +level, [no tabs], no lines over 80 characters. I/O is done via +the C-style stdio library, class header files should not import any +system headers outside , STL containers should be avoided +in headers, and forward declarations used where possible or needed. +All added code should be placed into the LAMMPS_NS namespace or a +sub-namespace; global or static variables should be avoided, as they +conflict with the modular nature of LAMMPS and the C++ class structure. +Header files must [not] import namespaces with {using}. +This all is so the developers can more easily understand, integrate, +and maintain your contribution and reduce conflicts with other parts +of LAMMPS. This basically means that the code accesses data +structures, performs its operations, and is formatted similar to other +LAMMPS source files, including the use of the error class for error +and warning messages. :l + +If you want your contribution to be added as a user-contributed +feature, and it's a single file (actually a *.cpp and *.h file) it can +rapidly be added to the USER-MISC directory. Send us the one-line +entry to add to the USER-MISC/README file in that dir, along with the +2 source files. You can do this multiple times if you wish to +contribute several individual features. :l + +If you want your contribution to be added as a user-contribution and +it is several related features, it is probably best to make it a user +package directory with a name like USER-FOO. In addition to your new +files, the directory should contain a README text file. The README +should contain your name and contact information and a brief +description of what your new package does. If your files depend on +other LAMMPS style files also being installed (e.g. because your file +is a derived class from the other LAMMPS class), then an Install.sh +file is also needed to check for those dependencies. See other README +and Install.sh files in other USER directories as examples. Send us a +tarball of this USER-FOO directory. :l + +Your new source files need to have the LAMMPS copyright, GPL notice, +and your name and email address at the top, like other +user-contributed LAMMPS source files. They need to create a class +that is inside the LAMMPS namespace. If the file is for one of the + +USER packages, including USER-MISC, then we are not as picky about the +coding style (see above). I.e. the files do not need to be in the +same stylistic format and syntax as other LAMMPS files, though that +would be nice for developers as well as users who try to read your +code. :l + +You [must] also create a [documentation] file for each new command or +style you are adding to LAMMPS. For simplicity and convenience, the +documentation of groups of closely related commands or styles may be +combined into a single file. This will be one file for a single-file +feature. For a package, it might be several files. These are simple +text files with a specific markup language, that are then auto-converted +to HTML and PDF. The tools for this conversion are included in the +source distribution, and the translation can be as simple as doing +"make html pdf" in the doc folder. +Thus the documentation source files must be in the same format and +style as other *.txt files in the lammps/doc/src directory for similar +commands and styles; use one or more of them as a starting point. +A description of the markup can also be found in +lammps/doc/utils/txt2html/README.html +As appropriate, the text files can include links to equations +(see doc/Eqs/*.tex for examples, we auto-create the associated JPG +files), or figures (see doc/JPG for examples), or even additional PDF +files with further details (see doc/PDF for examples). The doc page +should also include literature citations as appropriate; see the +bottom of doc/fix_nh.txt for examples and the earlier part of the same +file for how to format the cite itself. The "Restrictions" section of +the doc page should indicate that your command is only available if +LAMMPS is built with the appropriate USER-MISC or USER-FOO package. +See other user package doc files for examples of how to do this. The +prerequisite for building the HTML format files are Python 3.x and +virtualenv, the requirement for generating the PDF format manual +is the "htmldoc"_http://www.htmldoc.org/ software. Please run at least +"make html" and carefully inspect and proofread the resulting HTML format +doc page before submitting your code. :l + +For a new package (or even a single command) you should include one or +more example scripts demonstrating its use. These should run in no +more than a couple minutes, even on a single processor, and not require +large data files as input. See directories under examples/USER for +examples of input scripts other users provided for their packages. +These example inputs are also required for validating memory accesses +and testing for memory leaks with valgrind :l + +If there is a paper of yours describing your feature (either the +algorithm/science behind the feature itself, or its initial usage, or +its implementation in LAMMPS), you can add the citation to the *.cpp +source file. See src/USER-EFF/atom_vec_electron.cpp for an example. +A LaTeX citation is stored in a variable at the top of the file and a +single line of code that references the variable is added to the +constructor of the class. Whenever a user invokes your feature from +their input script, this will cause LAMMPS to output the citation to a +log.cite file and prompt the user to examine the file. Note that you +should only use this for a paper you or your group authored. +E.g. adding a cite in the code for a paper by Nose and Hoover if you +write a fix that implements their integrator is not the intended +usage. That kind of citation should just be in the doc page you +provide. :l +:ule + +Finally, as a general rule-of-thumb, the more clear and +self-explanatory you make your documentation and README files, and the +easier you make it for people to get started, e.g. by providing example +scripts, the more likely it is that users will try out your new feature. diff --git a/doc/src/Modify_dump.txt b/doc/src/Modify_dump.txt new file mode 100644 index 0000000000..9667a1b1fc --- /dev/null +++ b/doc/src/Modify_dump.txt @@ -0,0 +1,35 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Dump styles :h2 + +Classes that dump per-atom info to files are derived from the Dump +class. To dump new quantities or in a new format, a new derived dump +class can be added, but it is typically simpler to modify the +DumpCustom class contained in the dump_custom.cpp file. + +Dump_atom.cpp is a simple example of a derived dump class. + +Here is a brief description of methods you define in your new derived +class. See dump.h for details. + +write_header: write the header section of a snapshot of atoms +count: count the number of lines a processor will output +pack: pack a proc's output data into a buffer +write_data: write a proc's data to a file :tb(s=:) + +See the "dump"_dump.html command and its {custom} style for a list of +keywords for atom information that can already be dumped by +DumpCustom. It includes options to dump per-atom info from Compute +classes, so adding a new derived Compute class is one way to calculate +new quantities to dump. + +Note that new keywords for atom properties are not typically +added to the "dump custom"_dump.html command. Instead they are added +to the "compute property/atom"_compute_property_atom.html command. diff --git a/doc/src/Modify_fix.txt b/doc/src/Modify_fix.txt new file mode 100644 index 0000000000..ba985475cc --- /dev/null +++ b/doc/src/Modify_fix.txt @@ -0,0 +1,107 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Fix styles :h3 + +In LAMMPS, a "fix" is any operation that is computed during +timestepping that alters some property of the system. Essentially +everything that happens during a simulation besides force computation, +neighbor list construction, and output, is a "fix". This includes +time integration (update of coordinates and velocities), force +constraints or boundary conditions (SHAKE or walls), and diagnostics +(compute a diffusion coefficient). New styles can be created to add +new options to LAMMPS. + +Fix_setforce.cpp is a simple example of setting forces on atoms to +prescribed values. There are dozens of fix options already in LAMMPS; +choose one as a template that is similar to what you want to +implement. + +Here is a brief description of methods you can define in your new +derived class. See fix.h for details. + +setmask: determines when the fix is called during the timestep (required) +init: initialization before a run (optional) +setup_pre_exchange: called before atom exchange in setup (optional) +setup_pre_force: called before force computation in setup (optional) +setup: called immediately before the 1st timestep and after forces are computed (optional) +min_setup_pre_force: like setup_pre_force, but for minimizations instead of MD runs (optional) +min_setup: like setup, but for minimizations instead of MD runs (optional) +initial_integrate: called at very beginning of each timestep (optional) +pre_exchange: called before atom exchange on re-neighboring steps (optional) +pre_neighbor: called before neighbor list build (optional) +pre_force: called before pair & molecular forces are computed (optional) +post_force: called after pair & molecular forces are computed and communicated (optional) +final_integrate: called at end of each timestep (optional) +end_of_step: called at very end of timestep (optional) +write_restart: dumps fix info to restart file (optional) +restart: uses info from restart file to re-initialize the fix (optional) +grow_arrays: allocate memory for atom-based arrays used by fix (optional) +copy_arrays: copy atom info when an atom migrates to a new processor (optional) +pack_exchange: store atom's data in a buffer (optional) +unpack_exchange: retrieve atom's data from a buffer (optional) +pack_restart: store atom's data for writing to restart file (optional) +unpack_restart: retrieve atom's data from a restart file buffer (optional) +size_restart: size of atom's data (optional) +maxsize_restart: max size of atom's data (optional) +setup_pre_force_respa: same as setup_pre_force, but for rRESPA (optional) +initial_integrate_respa: same as initial_integrate, but for rRESPA (optional) +post_integrate_respa: called after the first half integration step is done in rRESPA (optional) +pre_force_respa: same as pre_force, but for rRESPA (optional) +post_force_respa: same as post_force, but for rRESPA (optional) +final_integrate_respa: same as final_integrate, but for rRESPA (optional) +min_pre_force: called after pair & molecular forces are computed in minimizer (optional) +min_post_force: called after pair & molecular forces are computed and communicated in minimizer (optional) +min_store: store extra data for linesearch based minimization on a LIFO stack (optional) +min_pushstore: push the minimization LIFO stack one element down (optional) +min_popstore: pop the minimization LIFO stack one element up (optional) +min_clearstore: clear minimization LIFO stack (optional) +min_step: reset or move forward on line search minimization (optional) +min_dof: report number of degrees of freedom {added} by this fix in minimization (optional) +max_alpha: report maximum allowed step size during linesearch minimization (optional) +pack_comm: pack a buffer to communicate a per-atom quantity (optional) +unpack_comm: unpack a buffer to communicate a per-atom quantity (optional) +pack_reverse_comm: pack a buffer to reverse communicate a per-atom quantity (optional) +unpack_reverse_comm: unpack a buffer to reverse communicate a per-atom quantity (optional) +dof: report number of degrees of freedom {removed} by this fix during MD (optional) +compute_scalar: return a global scalar property that the fix computes (optional) +compute_vector: return a component of a vector property that the fix computes (optional) +compute_array: return a component of an array property that the fix computes (optional) +deform: called when the box size is changed (optional) +reset_target: called when a change of the target temperature is requested during a run (optional) +reset_dt: is called when a change of the time step is requested during a run (optional) +modify_param: called when a fix_modify request is executed (optional) +memory_usage: report memory used by fix (optional) +thermo: compute quantities for thermodynamic output (optional) :tb(s=:) + +Typically, only a small fraction of these methods are defined for a +particular fix. Setmask is mandatory, as it determines when the fix +will be invoked during the timestep. Fixes that perform time +integration ({nve}, {nvt}, {npt}) implement initial_integrate() and +final_integrate() to perform velocity Verlet updates. Fixes that +constrain forces implement post_force(). + +Fixes that perform diagnostics typically implement end_of_step(). For +an end_of_step fix, one of your fix arguments must be the variable +"nevery" which is used to determine when to call the fix and you must +set this variable in the constructor of your fix. By convention, this +is the first argument the fix defines (after the ID, group-ID, style). + +If the fix needs to store information for each atom that persists from +timestep to timestep, it can manage that memory and migrate the info +with the atoms as they move from processors to processor by +implementing the grow_arrays, copy_arrays, pack_exchange, and +unpack_exchange methods. Similarly, the pack_restart and +unpack_restart methods can be implemented to store information about +the fix in restart files. If you wish an integrator or force +constraint fix to work with rRESPA (see the "run_style"_run_style.html +command), the initial_integrate, post_force_integrate, and +final_integrate_respa methods can be implemented. The thermo method +enables a fix to contribute values to thermodynamic output, as printed +quantities and/or to be summed to the potential energy of the system. diff --git a/doc/src/Modify_kspace.txt b/doc/src/Modify_kspace.txt new file mode 100644 index 0000000000..21407bf2e9 --- /dev/null +++ b/doc/src/Modify_kspace.txt @@ -0,0 +1,25 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Kspace styles :h3 + +Classes that compute long-range Coulombic interactions via K-space +representations (Ewald, PPPM) are derived from the KSpace class. New +styles can be created to add new K-space options to LAMMPS. + +Ewald.cpp is an example of computing K-space interactions. + +Here is a brief description of methods you define in your new derived +class. See kspace.h for details. + +init: initialize the calculation before a run +setup: computation before the 1st timestep of a run +compute: every-timestep computation +memory_usage: tally of memory usage :tb(s=:) + diff --git a/doc/src/Modify_min.txt b/doc/src/Modify_min.txt new file mode 100644 index 0000000000..5dcf0f1e67 --- /dev/null +++ b/doc/src/Modify_min.txt @@ -0,0 +1,23 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Minimization styles :h3 + +Classes that perform energy minimization derived from the Min class. +New styles can be created to add new minimization algorithms to +LAMMPS. + +Min_cg.cpp is an example of conjugate gradient minimization. + +Here is a brief description of methods you define in your new derived +class. See min.h for details. + +init: initialize the minimization before a run +run: perform the minimization +memory_usage: tally of memory usage :tb(s=:) diff --git a/doc/src/Modify_overview.txt b/doc/src/Modify_overview.txt new file mode 100644 index 0000000000..f9964d964b --- /dev/null +++ b/doc/src/Modify_overview.txt @@ -0,0 +1,101 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Overview :h3 + +The best way to add a new feature to LAMMPS is to find a similar +featureand look at the corresponding source and header files to figure +out what it does. You will need some knowledge of C++ to be able to +understand the hi-level structure of LAMMPS and its class +organization, but functions (class methods) that do actual +computations are written in vanilla C-style code and operate on simple +C-style data structures (vectors and arrays). + +Most of the new features described on the "Modify"_Modify.html doc +page require you to write a new C++ derived class (except for +exceptions described below, where you can make small edits to existing +files). Creating a new class requires 2 files, a source code file +(*.cpp) and a header file (*.h). The derived class must provide +certain methods to work as a new option. Depending on how different +your new feature is compared to existing features, you can either +derive from the base class itself, or from a derived class that +already exists. Enabling LAMMPS to invoke the new class is as simple +as putting the two source files in the src dir and re-building LAMMPS. + +The advantage of C++ and its object-orientation is that all the code +and variables needed to define the new feature are in the 2 files you +write, and thus shouldn't make the rest of LAMMPS more complex or +cause side-effect bugs. + +Here is a concrete example. Suppose you write 2 files pair_foo.cpp +and pair_foo.h that define a new class PairFoo that computes pairwise +potentials described in the classic 1997 "paper"_#Foo by Foo, et al. +If you wish to invoke those potentials in a LAMMPS input script with a +command like + +pair_style foo 0.1 3.5 :pre + +then your pair_foo.h file should be structured as follows: + +#ifdef PAIR_CLASS +PairStyle(foo,PairFoo) +#else +... +(class definition for PairFoo) +... +#endif :pre + +where "foo" is the style keyword in the pair_style command, and +PairFoo is the class name defined in your pair_foo.cpp and pair_foo.h +files. + +When you re-build LAMMPS, your new pairwise potential becomes part of +the executable and can be invoked with a pair_style command like the +example above. Arguments like 0.1 and 3.5 can be defined and +processed by your new class. + +As illustrated by this pairwise example, many kinds of options are +referred to in the LAMMPS documentation as the "style" of a particular +command. + +The "Modify page"_Modify.html lists all the common styles in LAMMPS, +and discusses the header file for the base class that these styles are +derived from. Public variables in that file are ones used and set by +the derived classes which are also used by the base class. Sometimes +they are also used by the rest of LAMMPS. Virtual functions in the +base class header file which are set = 0 are ones you must define in +your new derived class to give it the functionality LAMMPS expects. +Virtual functions that are not set to 0 are functions you can +optionally define. + +Additionally, new output options can be added directly to the +thermo.cpp, dump_custom.cpp, and variable.cpp files. These are also +listed on the "Modify page"_Modify.html. + +Here are additional guidelines for modifying LAMMPS and adding new +functionality: + +Think about whether what you want to do would be better as a pre- or +post-processing step. Many computations are more easily and more +quickly done that way. :ulb,l + +Don't do anything within the timestepping of a run that isn't +parallel. E.g. don't accumulate a bunch of data on a single processor +and analyze it. You run the risk of seriously degrading the parallel +efficiency. :l + +If your new feature reads arguments or writes output, make sure you +follow the unit conventions discussed by the "units"_units.html +command. :l +:ule + +:line + +:link(Foo) +[(Foo)] Foo, Morefoo, and Maxfoo, J of Classic Potentials, 75, 345 (1997). diff --git a/doc/src/Modify_pair.txt b/doc/src/Modify_pair.txt new file mode 100644 index 0000000000..8c234dc621 --- /dev/null +++ b/doc/src/Modify_pair.txt @@ -0,0 +1,33 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Pair styles :h3 + +Classes that compute pairwise interactions are derived from the Pair +class. In LAMMPS, pairwise calculation include manybody potentials +such as EAM or Tersoff where particles interact without a static bond +topology. New styles can be created to add new pair potentials to +LAMMPS. + +Pair_lj_cut.cpp is a simple example of a Pair class, though it +includes some optional methods to enable its use with rRESPA. + +Here is a brief description of the class methods in pair.h: + +compute: workhorse routine that computes pairwise interactions +settings: reads the input script line with arguments you define +coeff: set coefficients for one i,j type pair +init_one: perform initialization for one i,j type pair +init_style: initialization specific to this pair style +write & read_restart: write/read i,j pair coeffs to restart files +write & read_restart_settings: write/read global settings to restart files +single: force and energy of a single pairwise interaction between 2 atoms +compute_inner/middle/outer: versions of compute used by rRESPA :tb(s=:) + +The inner/middle/outer routines are optional. diff --git a/doc/src/Modify_region.txt b/doc/src/Modify_region.txt new file mode 100644 index 0000000000..9fbf359292 --- /dev/null +++ b/doc/src/Modify_region.txt @@ -0,0 +1,25 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Region styles :h3 + +Classes that define geometric regions are derived from the Region +class. Regions are used elsewhere in LAMMPS to group atoms, delete +atoms to create a void, insert atoms in a specified region, etc. New +styles can be created to add new region shapes to LAMMPS. + +Region_sphere.cpp is an example of a spherical region. + +Here is a brief description of methods you define in your new derived +class. See region.h for details. + +inside: determine whether a point is in the region +surface_interior: determine if a point is within a cutoff distance inside of surc +surface_exterior: determine if a point is within a cutoff distance outside of surf +shape_update : change region shape if set by time-dependent variable :tb(s=:) diff --git a/doc/src/Modify_thermo.txt b/doc/src/Modify_thermo.txt new file mode 100644 index 0000000000..001a9f99e1 --- /dev/null +++ b/doc/src/Modify_thermo.txt @@ -0,0 +1,35 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Thermodynamic output options :h3 + +There is one class that computes and prints thermodynamic information +to the screen and log file; see the file thermo.cpp. + +There are two styles defined in thermo.cpp: "one" and "multi". There +is also a flexible "custom" style which allows the user to explicitly +list keywords for quantities to print when thermodynamic info is +output. See the "thermo_style"_thermo_style.html command for a list +of defined quantities. + +The thermo styles (one, multi, etc) are simply lists of keywords. +Adding a new style thus only requires defining a new list of keywords. +Search for the word "customize" with references to "thermo style" in +thermo.cpp to see the two locations where code will need to be added. + +New keywords can also be added to thermo.cpp to compute new quantities +for output. Search for the word "customize" with references to +"keyword" in thermo.cpp to see the several locations where code will +need to be added. + +Note that the "thermo_style custom"_thermo.html command already allows +for thermo output of quantities calculated by "fixes"_fix.html, +"computes"_compute.html, and "variables"_variable.html. Thus, it may +be simpler to compute what you wish via one of those constructs, than +by adding a new keyword to the thermo command. diff --git a/doc/src/Modify_variable.txt b/doc/src/Modify_variable.txt new file mode 100644 index 0000000000..3c5b29cd1a --- /dev/null +++ b/doc/src/Modify_variable.txt @@ -0,0 +1,46 @@ +"Higher level section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Variable options :h3 + +There is one class that computes and stores "variable"_variable.html +information in LAMMPS; see the file variable.cpp. The value +associated with a variable can be periodically printed to the screen +via the "print"_print.html, "fix print"_fix_print.html, or +"thermo_style custom"_thermo_style.html commands. Variables of style +"equal" can compute complex equations that involve the following types +of arguments: + +thermo keywords = ke, vol, atoms, ... +other variables = v_a, v_myvar, ... +math functions = div(x,y), mult(x,y), add(x,y), ... +group functions = mass(group), xcm(group,x), ... +atom values = x\[123\], y\[3\], vx\[34\], ... +compute values = c_mytemp\[0\], c_thermo_press\[3\], ... :pre + +Adding keywords for the "thermo_style custom"_thermo_style.html +command (which can then be accessed by variables) is discussed on the +"Modify thermo"_Modify_thermo.html doc page. + +Adding a new math function of one or two arguments can be done by +editing one section of the Variable::evaluate() method. Search for +the word "customize" to find the appropriate location. + +Adding a new group function can be done by editing one section of the +Variable::evaluate() method. Search for the word "customize" to find +the appropriate location. You may need to add a new method to the +Group class as well (see the group.cpp file). + +Accessing a new atom-based vector can be done by editing one section +of the Variable::evaluate() method. Search for the word "customize" +to find the appropriate location. + +Adding new "compute styles"_compute.html (whose calculated values can +then be accessed by variables) is discussed on the "Modify +compute"_Modify_compute.html doc page. diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index 32308b36cb..a44013f5f1 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -204,10 +204,10 @@ allowed, but that should be sufficient for most use cases. 3.3 Input script structure :h3,link(cmd_3) This section describes the structure of a typical LAMMPS input script. -The "examples" directory in the LAMMPS distribution contains many -sample input scripts; the corresponding problems are discussed in -"Section 7"_Section_example.html, and animated on the "LAMMPS -WWW Site"_lws. +The examples directory in the LAMMPS distribution contains many sample +input scripts; the corresponding problems are discussed on the +"Examples"_Examples.html doc page, and animated on the "LAMMPS WWW +Site"_lws. A LAMMPS input script typically has 4 parts: diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt index a46b29c73b..0a31fc2b48 100644 --- a/doc/src/Section_howto.txt +++ b/doc/src/Section_howto.txt @@ -1,4 +1,4 @@ -"Previous Section"_Section_accelerate.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_example.html :c +"Previous Section"_Section_accelerate.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Examples.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -40,7 +40,7 @@ This section describes how to perform common tasks using LAMMPS. 6.28 "Magnetic spins"_#howto_28 :all(b) The example input scripts included in the LAMMPS distribution and -highlighted in "Section 7"_Section_example.html also show how to +highlighted on the "Examples"_Examples.html doc page also show how to setup and run various kinds of simulations. :line @@ -672,10 +672,10 @@ this scenario, LAMMPS is the driver code. During its timestepping, the fix is invoked, and can make library calls to the other code, which has been linked to LAMMPS as a library. This is the way the "POEMS"_poems package that performs constrained rigid-body motion on -groups of atoms is hooked to LAMMPS. See the -"fix poems"_fix_poems.html command for more details. See "this -section"_Section_modify.html of the documentation for info on how to add -a new fix to LAMMPS. +groups of atoms is hooked to LAMMPS. See the "fix +poems"_fix_poems.html command for more details. See the +"Modify"_Modify.html doc page for info on how to add a new fix to +LAMMPS. :link(poems,http://www.rpi.edu/~anderk5/lab) @@ -696,8 +696,8 @@ processors to start up another program). In the latter case the stand-alone code could communicate with LAMMPS thru files that the command writes and reads. -See "Section 10"_Section_modify.html of the documentation for how -to add a new command to LAMMPS. +See the "Modify"_Modify.html doc page for how to add a new command to +LAMMPS. (3) Use LAMMPS as a library called by another code. In this case the other code is the driver and calls LAMMPS as needed. Or a wrapper @@ -1057,7 +1057,7 @@ rigid bodies composed of finite-size particles :ul Example input scripts for these kinds of models are in the body, colloid, dipole, ellipse, line, peri, pour, and tri directories of the -"examples directory"_Section_example.html in the LAMMPS distribution. +"examples directory"_Examples.html in the LAMMPS distribution. Atom styles :h4 @@ -1302,8 +1302,8 @@ As discussed below, LAMMPS gives you a variety of ways to determine what quantities are computed and printed when the thermodynamics, dump, or fix commands listed above perform output. Throughout this discussion, note that users can also "add their own computes and fixes -to LAMMPS"_Section_modify.html which can then generate values that can -then be output with these commands. +to LAMMPS"_Modify.html which can then generate values that can then be +output with these commands. The following sub-sections discuss different LAMMPS command related to output and the kind of data they operate on and produce: @@ -1824,8 +1824,8 @@ At zero temperature, it is easy to estimate these derivatives by deforming the simulation box in one of the six directions using the "change_box"_change_box.html command and measuring the change in the stress tensor. A general-purpose script that does this is given in the -examples/elastic directory described in "this -section"_Section_example.html. +examples/elastic directory described on the "Examples"_Examples.html +doc page. Calculating elastic constants at finite temperature is more challenging, because it is necessary to run a simulation that perfoms @@ -2322,11 +2322,10 @@ Note that this compute allows the per-atom output of other "computes"_compute.html, "fixes"_fix.html, and "variables"_variable.html to be used to define chunk IDs for each atom. This means you can write your own compute or fix to output a -per-atom quantity to use as chunk ID. See -"Section 10"_Section_modify.html of the documentation for how to -do this. You can also define a "per-atom variable"_variable.html in -the input script that uses a formula to generate a chunk ID for each -atom. +per-atom quantity to use as chunk ID. See the "Modify"_Modify.html +doc page for how to do this. You can also define a "per-atom +variable"_variable.html in the input script that uses a formula to +generate a chunk ID for each atom. Fix ave/chunk command: :h4 diff --git a/doc/src/Section_intro.txt b/doc/src/Section_intro.txt index fd1d702d0b..fa2ab0e768 100644 --- a/doc/src/Section_intro.txt +++ b/doc/src/Section_intro.txt @@ -54,8 +54,8 @@ brief discussion of the open-source philosophy. LAMMPS is designed to be easy to modify or extend with new capabilities, such as new force fields, atom types, boundary -conditions, or diagnostics. See "Section 10"_Section_modify.html -for more details. +conditions, or diagnostics. See the "Modify"_Modify.html doc page for +more details. The current version of LAMMPS is written in C++. Earlier versions were written in F77 and F90. See @@ -94,8 +94,8 @@ LAMMPS are listed in "this section"_#intro_5. This section highlights LAMMPS features, with pointers to specific commands which give more details. If LAMMPS doesn't have your favorite interatomic potential, boundary condition, or atom type, see -"Section 10"_Section_modify.html, which describes how you can add -it to LAMMPS. +the "Modify"_Modify.html doc page, which describes how you can add it +to LAMMPS. General features :h4 @@ -334,8 +334,8 @@ Similarly, LAMMPS creates output files in a simple format. Most users post-process these files with their own analysis tools or re-format them for input into other programs, including visualization packages. If you are convinced you need to compute something on-the-fly as -LAMMPS runs, see "Section 10"_Section_modify.html for a discussion -of how you can use the "dump"_dump.html and "compute"_compute.html and +LAMMPS runs, see the "Modify"_Modify.html doc page for a discussion of +how you can use the "dump"_dump.html and "compute"_compute.html and "fix"_fix.html commands to print out data of your choosing. Keep in mind that complicated computations can slow down the molecular dynamics timestepping, particularly if the computations are not @@ -448,9 +448,8 @@ distribution. :l LAMMPS is designed to be easy to extend with new code for features like potentials, boundary conditions, diagnostic computations, etc. -"This section"_Section_modify.html gives details. If you add a -feature of general interest, it can be added to the LAMMPS -distribution. :l +The "Modify"_Modify.html doc page gives details. If you add a feature +of general interest, it can be added to the LAMMPS distribution. :l The Benchmark page of the "LAMMPS WWW Site"_lws lists LAMMPS performance on various platforms. The files needed to run the diff --git a/doc/src/Section_modify.txt b/doc/src/Section_modify.txt deleted file mode 100644 index 6948ac062a..0000000000 --- a/doc/src/Section_modify.txt +++ /dev/null @@ -1,827 +0,0 @@ - "Previous Section"_Tools.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_python.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -10. Modifying & extending LAMMPS :h2 - -This section describes how to customize LAMMPS by modifying -and extending its source code. - -10.1 "Atom styles"_#mod_1 -10.2 "Bond, angle, dihedral, improper potentials"_#mod_2 -10.3 "Compute styles"_#mod_3 -10.4 "Dump styles"_#mod_4 -10.5 "Dump custom output options"_#mod_5 -10.6 "Fix styles"_#mod_6 which include integrators, \ - temperature and pressure control, force constraints, \ - boundary conditions, diagnostic output, etc -10.7 "Input script commands"_#mod_7 -10.8 "Kspace computations"_#mod_8 -10.9 "Minimization styles"_#mod_9 -10.10 "Pairwise potentials"_#mod_10 -10.11 "Region styles"_#mod_11 -10.12 "Body styles"_#mod_12 -10.13 "Thermodynamic output options"_#mod_13 -10.14 "Variable options"_#mod_14 -10.15 "Submitting new features for inclusion in LAMMPS"_#mod_15 :all(b) - -LAMMPS is designed in a modular fashion so as to be easy to modify and -extend with new functionality. In fact, about 75% of its source code -is files added in this fashion. - -In this section, changes and additions users can make are listed along -with minimal instructions. If you add a new feature to LAMMPS and -think it will be of interest to general users, we encourage you to -submit it to the developers for inclusion in the released version of -LAMMPS. Information about how to do this is provided -"below"_#mod_14. - -The best way to add a new feature is to find a similar feature in -LAMMPS and look at the corresponding source and header files to figure -out what it does. You will need some knowledge of C++ to be able to -understand the hi-level structure of LAMMPS and its class -organization, but functions (class methods) that do actual -computations are written in vanilla C-style code and operate on simple -C-style data structures (vectors and arrays). - -Most of the new features described in this section require you to -write a new C++ derived class (except for exceptions described below, -where you can make small edits to existing files). Creating a new -class requires 2 files, a source code file (*.cpp) and a header file -(*.h). The derived class must provide certain methods to work as a -new option. Depending on how different your new feature is compared -to existing features, you can either derive from the base class -itself, or from a derived class that already exists. Enabling LAMMPS -to invoke the new class is as simple as putting the two source -files in the src dir and re-building LAMMPS. - -The advantage of C++ and its object-orientation is that all the code -and variables needed to define the new feature are in the 2 files you -write, and thus shouldn't make the rest of LAMMPS more complex or -cause side-effect bugs. - -Here is a concrete example. Suppose you write 2 files pair_foo.cpp -and pair_foo.h that define a new class PairFoo that computes pairwise -potentials described in the classic 1997 "paper"_#Foo by Foo, et al. -If you wish to invoke those potentials in a LAMMPS input script with a -command like - -pair_style foo 0.1 3.5 :pre - -then your pair_foo.h file should be structured as follows: - -#ifdef PAIR_CLASS -PairStyle(foo,PairFoo) -#else -... -(class definition for PairFoo) -... -#endif :pre - -where "foo" is the style keyword in the pair_style command, and -PairFoo is the class name defined in your pair_foo.cpp and pair_foo.h -files. - -When you re-build LAMMPS, your new pairwise potential becomes part of -the executable and can be invoked with a pair_style command like the -example above. Arguments like 0.1 and 3.5 can be defined and -processed by your new class. - -As illustrated by this pairwise example, many kinds of options are -referred to in the LAMMPS documentation as the "style" of a particular -command. - -The instructions below give the header file for the base class that -these styles are derived from. Public variables in that file are ones -used and set by the derived classes which are also used by the base -class. Sometimes they are also used by the rest of LAMMPS. Virtual -functions in the base class header file which are set = 0 are ones you -must define in your new derived class to give it the functionality -LAMMPS expects. Virtual functions that are not set to 0 are functions -you can optionally define. - -Additionally, new output options can be added directly to the -thermo.cpp, dump_custom.cpp, and variable.cpp files as explained -below. - -Here are additional guidelines for modifying LAMMPS and adding new -functionality: - -Think about whether what you want to do would be better as a pre- or -post-processing step. Many computations are more easily and more -quickly done that way. :ulb,l - -Don't do anything within the timestepping of a run that isn't -parallel. E.g. don't accumulate a bunch of data on a single processor -and analyze it. You run the risk of seriously degrading the parallel -efficiency. :l - -If your new feature reads arguments or writes output, make sure you -follow the unit conventions discussed by the "units"_units.html -command. :l - -If you add something you think is truly useful and doesn't impact -LAMMPS performance when it isn't used, send an email to the -"developers"_http://lammps.sandia.gov/authors.html. We might be -interested in adding it to the LAMMPS distribution. See further -details on this at the bottom of this page. :l -:ule - -:line -:line - -10.1 Atom styles :link(mod_1),h4 - -Classes that define an "atom style"_atom_style.html are derived from -the AtomVec class and managed by the Atom class. The atom style -determines what attributes are associated with an atom. A new atom -style can be created if one of the existing atom styles does not -define all the attributes you need to store and communicate with -atoms. - -Atom_vec_atomic.cpp is a simple example of an atom style. - -Here is a brief description of methods you define in your new derived -class. See atom_vec.h for details. - -init: one time setup (optional) -grow: re-allocate atom arrays to longer lengths (required) -grow_reset: make array pointers in Atom and AtomVec classes consistent (required) -copy: copy info for one atom to another atom's array locations (required) -pack_comm: store an atom's info in a buffer communicated every timestep (required) -pack_comm_vel: add velocity info to communication buffer (required) -pack_comm_hybrid: store extra info unique to this atom style (optional) -unpack_comm: retrieve an atom's info from the buffer (required) -unpack_comm_vel: also retrieve velocity info (required) -unpack_comm_hybrid: retrieve extra info unique to this atom style (optional) -pack_reverse: store an atom's info in a buffer communicating partial forces (required) -pack_reverse_hybrid: store extra info unique to this atom style (optional) -unpack_reverse: retrieve an atom's info from the buffer (required) -unpack_reverse_hybrid: retrieve extra info unique to this atom style (optional) -pack_border: store an atom's info in a buffer communicated on neighbor re-builds (required) -pack_border_vel: add velocity info to buffer (required) -pack_border_hybrid: store extra info unique to this atom style (optional) -unpack_border: retrieve an atom's info from the buffer (required) -unpack_border_vel: also retrieve velocity info (required) -unpack_border_hybrid: retrieve extra info unique to this atom style (optional) -pack_exchange: store all an atom's info to migrate to another processor (required) -unpack_exchange: retrieve an atom's info from the buffer (required) -size_restart: number of restart quantities associated with proc's atoms (required) -pack_restart: pack atom quantities into a buffer (required) -unpack_restart: unpack atom quantities from a buffer (required) -create_atom: create an individual atom of this style (required) -data_atom: parse an atom line from the data file (required) -data_atom_hybrid: parse additional atom info unique to this atom style (optional) -data_vel: parse one line of velocity information from data file (optional) -data_vel_hybrid: parse additional velocity data unique to this atom style (optional) -memory_usage: tally memory allocated by atom arrays (required) :tb(s=:) - -The constructor of the derived class sets values for several variables -that you must set when defining a new atom style, which are documented -in atom_vec.h. New atom arrays are defined in atom.cpp. Search for -the word "customize" and you will find locations you will need to -modify. - -NOTE: It is possible to add some attributes, such as a molecule ID, to -atom styles that do not have them via the "fix -property/atom"_fix_property_atom.html command. This command also -allows new custom attributes consisting of extra integer or -floating-point values to be added to atoms. See the "fix -property/atom"_fix_property_atom.html doc page for examples of cases -where this is useful and details on how to initialize, access, and -output the custom values. - -New "pair styles"_pair_style.html, "fixes"_fix.html, or -"computes"_compute.html can be added to LAMMPS, as discussed below. -The code for these classes can use the per-atom properties defined by -fix property/atom. The Atom class has a find_custom() method that is -useful in this context: - -int index = atom->find_custom(char *name, int &flag); :pre - -The "name" of a custom attribute, as specified in the "fix -property/atom"_fix_property_atom.html command, is checked to verify -that it exists and its index is returned. The method also sets flag = -0/1 depending on whether it is an integer or floating-point attribute. -The vector of values associated with the attribute can then be -accessed using the returned index as - -int *ivector = atom->ivector\[index\]; -double *dvector = atom->dvector\[index\]; :pre - -Ivector or dvector are vectors of length Nlocal = # of owned atoms, -which store the attributes of individual atoms. - -:line - -10.2 Bond, angle, dihedral, improper potentials :link(mod_2),h4 - -Classes that compute molecular interactions are derived from the Bond, -Angle, Dihedral, and Improper classes. New styles can be created to -add new potentials to LAMMPS. - -Bond_harmonic.cpp is the simplest example of a bond style. Ditto for -the harmonic forms of the angle, dihedral, and improper style -commands. - -Here is a brief description of common methods you define in your -new derived class. See bond.h, angle.h, dihedral.h, and improper.h -for details and specific additional methods. - -init: check if all coefficients are set, calls {init_style} (optional) -init_style: check if style specific conditions are met (optional) -compute: compute the molecular interactions (required) -settings: apply global settings for all types (optional) -coeff: set coefficients for one type (required) -equilibrium_distance: length of bond, used by SHAKE (required, bond only) -equilibrium_angle: opening of angle, used by SHAKE (required, angle only) -write & read_restart: writes/reads coeffs to restart files (required) -single: force and energy of a single bond or angle (required, bond or angle only) -memory_usage: tally memory allocated by the style (optional) :tb(s=:) - -:line - -10.3 Compute styles :link(mod_3),h4 - -Classes that compute scalar and vector quantities like temperature -and the pressure tensor, as well as classes that compute per-atom -quantities like kinetic energy and the centro-symmetry parameter -are derived from the Compute class. New styles can be created -to add new calculations to LAMMPS. - -Compute_temp.cpp is a simple example of computing a scalar -temperature. Compute_ke_atom.cpp is a simple example of computing -per-atom kinetic energy. - -Here is a brief description of methods you define in your new derived -class. See compute.h for details. - -init: perform one time setup (required) -init_list: neighbor list setup, if needed (optional) -compute_scalar: compute a scalar quantity (optional) -compute_vector: compute a vector of quantities (optional) -compute_peratom: compute one or more quantities per atom (optional) -compute_local: compute one or more quantities per processor (optional) -pack_comm: pack a buffer with items to communicate (optional) -unpack_comm: unpack the buffer (optional) -pack_reverse: pack a buffer with items to reverse communicate (optional) -unpack_reverse: unpack the buffer (optional) -remove_bias: remove velocity bias from one atom (optional) -remove_bias_all: remove velocity bias from all atoms in group (optional) -restore_bias: restore velocity bias for one atom after remove_bias (optional) -restore_bias_all: same as before, but for all atoms in group (optional) -pair_tally_callback: callback function for {tally}-style computes (optional). -memory_usage: tally memory usage (optional) :tb(s=:) - -Tally-style computes are a special case, as their computation is done -in two stages: the callback function is registered with the pair style -and then called from the Pair::ev_tally() function, which is called for -each pair after force and energy has been computed for this pair. Then -the tallied values are retrieved with the standard compute_scalar or -compute_vector or compute_peratom methods. The USER-TALLY package -provides {examples}_compute_tally.html for utilizing this mechanism. - -:line - -10.4 Dump styles :link(mod_4),h4 -10.5 Dump custom output options :link(mod_5),h4 - -Classes that dump per-atom info to files are derived from the Dump -class. To dump new quantities or in a new format, a new derived dump -class can be added, but it is typically simpler to modify the -DumpCustom class contained in the dump_custom.cpp file. - -Dump_atom.cpp is a simple example of a derived dump class. - -Here is a brief description of methods you define in your new derived -class. See dump.h for details. - -write_header: write the header section of a snapshot of atoms -count: count the number of lines a processor will output -pack: pack a proc's output data into a buffer -write_data: write a proc's data to a file :tb(s=:) - -See the "dump"_dump.html command and its {custom} style for a list of -keywords for atom information that can already be dumped by -DumpCustom. It includes options to dump per-atom info from Compute -classes, so adding a new derived Compute class is one way to calculate -new quantities to dump. - -Alternatively, you can add new keywords to the dump custom command. -Search for the word "customize" in dump_custom.cpp to see the -half-dozen or so locations where code will need to be added. - -:line - -10.6 Fix styles :link(mod_6),h4 - -In LAMMPS, a "fix" is any operation that is computed during -timestepping that alters some property of the system. Essentially -everything that happens during a simulation besides force computation, -neighbor list construction, and output, is a "fix". This includes -time integration (update of coordinates and velocities), force -constraints or boundary conditions (SHAKE or walls), and diagnostics -(compute a diffusion coefficient). New styles can be created to add -new options to LAMMPS. - -Fix_setforce.cpp is a simple example of setting forces on atoms to -prescribed values. There are dozens of fix options already in LAMMPS; -choose one as a template that is similar to what you want to -implement. - -Here is a brief description of methods you can define in your new -derived class. See fix.h for details. - -setmask: determines when the fix is called during the timestep (required) -init: initialization before a run (optional) -setup_pre_exchange: called before atom exchange in setup (optional) -setup_pre_force: called before force computation in setup (optional) -setup: called immediately before the 1st timestep and after forces are computed (optional) -min_setup_pre_force: like setup_pre_force, but for minimizations instead of MD runs (optional) -min_setup: like setup, but for minimizations instead of MD runs (optional) -initial_integrate: called at very beginning of each timestep (optional) -pre_exchange: called before atom exchange on re-neighboring steps (optional) -pre_neighbor: called before neighbor list build (optional) -pre_force: called before pair & molecular forces are computed (optional) -post_force: called after pair & molecular forces are computed and communicated (optional) -final_integrate: called at end of each timestep (optional) -end_of_step: called at very end of timestep (optional) -write_restart: dumps fix info to restart file (optional) -restart: uses info from restart file to re-initialize the fix (optional) -grow_arrays: allocate memory for atom-based arrays used by fix (optional) -copy_arrays: copy atom info when an atom migrates to a new processor (optional) -pack_exchange: store atom's data in a buffer (optional) -unpack_exchange: retrieve atom's data from a buffer (optional) -pack_restart: store atom's data for writing to restart file (optional) -unpack_restart: retrieve atom's data from a restart file buffer (optional) -size_restart: size of atom's data (optional) -maxsize_restart: max size of atom's data (optional) -setup_pre_force_respa: same as setup_pre_force, but for rRESPA (optional) -initial_integrate_respa: same as initial_integrate, but for rRESPA (optional) -post_integrate_respa: called after the first half integration step is done in rRESPA (optional) -pre_force_respa: same as pre_force, but for rRESPA (optional) -post_force_respa: same as post_force, but for rRESPA (optional) -final_integrate_respa: same as final_integrate, but for rRESPA (optional) -min_pre_force: called after pair & molecular forces are computed in minimizer (optional) -min_post_force: called after pair & molecular forces are computed and communicated in minimizer (optional) -min_store: store extra data for linesearch based minimization on a LIFO stack (optional) -min_pushstore: push the minimization LIFO stack one element down (optional) -min_popstore: pop the minimization LIFO stack one element up (optional) -min_clearstore: clear minimization LIFO stack (optional) -min_step: reset or move forward on line search minimization (optional) -min_dof: report number of degrees of freedom {added} by this fix in minimization (optional) -max_alpha: report maximum allowed step size during linesearch minimization (optional) -pack_comm: pack a buffer to communicate a per-atom quantity (optional) -unpack_comm: unpack a buffer to communicate a per-atom quantity (optional) -pack_reverse_comm: pack a buffer to reverse communicate a per-atom quantity (optional) -unpack_reverse_comm: unpack a buffer to reverse communicate a per-atom quantity (optional) -dof: report number of degrees of freedom {removed} by this fix during MD (optional) -compute_scalar: return a global scalar property that the fix computes (optional) -compute_vector: return a component of a vector property that the fix computes (optional) -compute_array: return a component of an array property that the fix computes (optional) -deform: called when the box size is changed (optional) -reset_target: called when a change of the target temperature is requested during a run (optional) -reset_dt: is called when a change of the time step is requested during a run (optional) -modify_param: called when a fix_modify request is executed (optional) -memory_usage: report memory used by fix (optional) -thermo: compute quantities for thermodynamic output (optional) :tb(s=:) - -Typically, only a small fraction of these methods are defined for a -particular fix. Setmask is mandatory, as it determines when the fix -will be invoked during the timestep. Fixes that perform time -integration ({nve}, {nvt}, {npt}) implement initial_integrate() and -final_integrate() to perform velocity Verlet updates. Fixes that -constrain forces implement post_force(). - -Fixes that perform diagnostics typically implement end_of_step(). For -an end_of_step fix, one of your fix arguments must be the variable -"nevery" which is used to determine when to call the fix and you must -set this variable in the constructor of your fix. By convention, this -is the first argument the fix defines (after the ID, group-ID, style). - -If the fix needs to store information for each atom that persists from -timestep to timestep, it can manage that memory and migrate the info -with the atoms as they move from processors to processor by -implementing the grow_arrays, copy_arrays, pack_exchange, and -unpack_exchange methods. Similarly, the pack_restart and -unpack_restart methods can be implemented to store information about -the fix in restart files. If you wish an integrator or force -constraint fix to work with rRESPA (see the "run_style"_run_style.html -command), the initial_integrate, post_force_integrate, and -final_integrate_respa methods can be implemented. The thermo method -enables a fix to contribute values to thermodynamic output, as printed -quantities and/or to be summed to the potential energy of the system. - -:line - -10.7 Input script commands :link(mod_7),h4 - -New commands can be added to LAMMPS input scripts by adding new -classes that have a "command" method. For example, the create_atoms, -read_data, velocity, and run commands are all implemented in this -fashion. When such a command is encountered in the LAMMPS input -script, LAMMPS simply creates a class with the corresponding name, -invokes the "command" method of the class, and passes it the arguments -from the input script. The command method can perform whatever -operations it wishes on LAMMPS data structures. - -The single method your new class must define is as follows: - -command: operations performed by the new command :tb(s=:) - -Of course, the new class can define other methods and variables as -needed. - -:line - -10.8 Kspace computations :link(mod_8),h4 - -Classes that compute long-range Coulombic interactions via K-space -representations (Ewald, PPPM) are derived from the KSpace class. New -styles can be created to add new K-space options to LAMMPS. - -Ewald.cpp is an example of computing K-space interactions. - -Here is a brief description of methods you define in your new derived -class. See kspace.h for details. - -init: initialize the calculation before a run -setup: computation before the 1st timestep of a run -compute: every-timestep computation -memory_usage: tally of memory usage :tb(s=:) - -:line - -10.9 Minimization styles :link(mod_9),h4 - -Classes that perform energy minimization derived from the Min class. -New styles can be created to add new minimization algorithms to -LAMMPS. - -Min_cg.cpp is an example of conjugate gradient minimization. - -Here is a brief description of methods you define in your new derived -class. See min.h for details. - -init: initialize the minimization before a run -run: perform the minimization -memory_usage: tally of memory usage :tb(s=:) - -:line - -10.10 Pairwise potentials :link(mod_10),h4 - -Classes that compute pairwise interactions are derived from the Pair -class. In LAMMPS, pairwise calculation include manybody potentials -such as EAM or Tersoff where particles interact without a static bond -topology. New styles can be created to add new pair potentials to -LAMMPS. - -Pair_lj_cut.cpp is a simple example of a Pair class, though it -includes some optional methods to enable its use with rRESPA. - -Here is a brief description of the class methods in pair.h: - -compute: workhorse routine that computes pairwise interactions -settings: reads the input script line with arguments you define -coeff: set coefficients for one i,j type pair -init_one: perform initialization for one i,j type pair -init_style: initialization specific to this pair style -write & read_restart: write/read i,j pair coeffs to restart files -write & read_restart_settings: write/read global settings to restart files -single: force and energy of a single pairwise interaction between 2 atoms -compute_inner/middle/outer: versions of compute used by rRESPA :tb(s=:) - -The inner/middle/outer routines are optional. - -:line - -10.11 Region styles :link(mod_11),h4 - -Classes that define geometric regions are derived from the Region -class. Regions are used elsewhere in LAMMPS to group atoms, delete -atoms to create a void, insert atoms in a specified region, etc. New -styles can be created to add new region shapes to LAMMPS. - -Region_sphere.cpp is an example of a spherical region. - -Here is a brief description of methods you define in your new derived -class. See region.h for details. - -inside: determine whether a point is in the region -surface_interior: determine if a point is within a cutoff distance inside of surc -surface_exterior: determine if a point is within a cutoff distance outside of surf -shape_update : change region shape if set by time-dependent variable :tb(s=:) - -:line - -10.12 Body styles :link(mod_12),h4 - -Classes that define body particles are derived from the Body class. -Body particles can represent complex entities, such as surface meshes -of discrete points, collections of sub-particles, deformable objects, -etc. - -See "Section 6.14"_Section_howto.html#howto_14 of the manual for -an overview of using body particles and the "body"_body.html doc page -for details on the various body styles LAMMPS supports. New styles -can be created to add new kinds of body particles to LAMMPS. - -Body_nparticle.cpp is an example of a body particle that is treated as -a rigid body containing N sub-particles. - -Here is a brief description of methods you define in your new derived -class. See body.h for details. - -data_body: process a line from the Bodies section of a data file -noutrow: number of sub-particles output is generated for -noutcol: number of values per-sub-particle output is generated for -output: output values for the Mth sub-particle -pack_comm_body: body attributes to communicate every timestep -unpack_comm_body: unpacking of those attributes -pack_border_body: body attributes to communicate when reneighboring is done -unpack_border_body: unpacking of those attributes :tb(s=:) - -:line - -10.13 Thermodynamic output options :link(mod_13),h4 - -There is one class that computes and prints thermodynamic information -to the screen and log file; see the file thermo.cpp. - -There are two styles defined in thermo.cpp: "one" and "multi". There -is also a flexible "custom" style which allows the user to explicitly -list keywords for quantities to print when thermodynamic info is -output. See the "thermo_style"_thermo_style.html command for a list -of defined quantities. - -The thermo styles (one, multi, etc) are simply lists of keywords. -Adding a new style thus only requires defining a new list of keywords. -Search for the word "customize" with references to "thermo style" in -thermo.cpp to see the two locations where code will need to be added. - -New keywords can also be added to thermo.cpp to compute new quantities -for output. Search for the word "customize" with references to -"keyword" in thermo.cpp to see the several locations where code will -need to be added. - -Note that the "thermo_style custom"_thermo.html command already allows -for thermo output of quantities calculated by "fixes"_fix.html, -"computes"_compute.html, and "variables"_variable.html. Thus, it may -be simpler to compute what you wish via one of those constructs, than -by adding a new keyword to the thermo command. - -:line - -10.14 Variable options :link(mod_14),h4 - -There is one class that computes and stores "variable"_variable.html -information in LAMMPS; see the file variable.cpp. The value -associated with a variable can be periodically printed to the screen -via the "print"_print.html, "fix print"_fix_print.html, or -"thermo_style custom"_thermo_style.html commands. Variables of style -"equal" can compute complex equations that involve the following types -of arguments: - -thermo keywords = ke, vol, atoms, ... -other variables = v_a, v_myvar, ... -math functions = div(x,y), mult(x,y), add(x,y), ... -group functions = mass(group), xcm(group,x), ... -atom values = x\[123\], y\[3\], vx\[34\], ... -compute values = c_mytemp\[0\], c_thermo_press\[3\], ... :pre - -Adding keywords for the "thermo_style custom"_thermo_style.html command -(which can then be accessed by variables) was discussed -"here"_Section_modify.html#mod_13 on this page. - -Adding a new math function of one or two arguments can be done by -editing one section of the Variable::evaluate() method. Search for -the word "customize" to find the appropriate location. - -Adding a new group function can be done by editing one section of the -Variable::evaluate() method. Search for the word "customize" to find -the appropriate location. You may need to add a new method to the -Group class as well (see the group.cpp file). - -Accessing a new atom-based vector can be done by editing one section -of the Variable::evaluate() method. Search for the word "customize" -to find the appropriate location. - -Adding new "compute styles"_compute.html (whose calculated values can -then be accessed by variables) was discussed -"here"_Section_modify.html#mod_3 on this page. - -:line -:line - -10.15 Submitting new features for inclusion in LAMMPS :link(mod_15),h4 - -We encourage users to submit new features or modifications for -LAMMPS to "the core developers"_http://lammps.sandia.gov/authors.html -so they can be added to the LAMMPS distribution. The preferred way to -manage and coordinate this is as of Fall 2016 via the LAMMPS project on -"GitHub"_https://github.com/lammps/lammps. An alternative is to contact -the LAMMPS developers or the indicated developer of a package or feature -directly and send in your contribution via e-mail. - -For any larger modifications or programming project, you are encouraged -to contact the LAMMPS developers ahead of time, in order to discuss -implementation strategies and coding guidelines, that will make it -easier to integrate your contribution and result in less work for -everybody involved. You are also encouraged to search through the list -of "open issues on GitHub"_https://github.com/lammps/lammps/issues and -submit a new issue for a planned feature, so you would not duplicate -the work of others (and possibly get scooped by them) or have your work -duplicated by others. - -How quickly your contribution will be integrated -depends largely on how much effort it will cause to integrate and test -it, how much it requires changes to the core codebase, and of how much -interest it is to the larger LAMMPS community. Please see below for a -checklist of typical requirements. Once you have prepared everything, -see "this tutorial"_tutorial_github.html for instructions on how to -submit your changes or new files through a GitHub pull request. If you -prefer to submit patches or full files, you should first make certain, -that your code works correctly with the latest patch-level version of -LAMMPS and contains all bugfixes from it. Then create a gzipped tar -file of all changed or added files or a corresponding patch file using -'diff -u' or 'diff -c' and compress it with gzip. Please only use -gzip compression, as this works well on all platforms. - -If the new features/files are broadly useful we may add them as core -files to LAMMPS or as part of a "standard -package"_Section_start.html#start_3. Else we will add them as a -user-contributed file or package. Examples of user packages are in -src sub-directories that start with USER. The USER-MISC package is -simply a collection of (mostly) unrelated single files, which is the -simplest way to have your contribution quickly added to the LAMMPS -distribution. You can see a list of the both standard and user -packages by typing "make package" in the LAMMPS src directory. - -Note that by providing us files to release, you are agreeing to make -them open-source, i.e. we can release them under the terms of the GPL, -used as a license for the rest of LAMMPS. See "Section -1.4"_Section_intro.html#intro_4 for details. - -With user packages and files, all we are really providing (aside from -the fame and fortune that accompanies having your name in the source -code and on the "Authors page"_http://lammps.sandia.gov/authors.html -of the "LAMMPS WWW site"_lws), is a means for you to distribute your -work to the LAMMPS user community, and a mechanism for others to -easily try out your new feature. This may help you find bugs or make -contact with new collaborators. Note that you're also implicitly -agreeing to support your code which means answer questions, fix bugs, -and maintain it if LAMMPS changes in some way that breaks it (an -unusual event). - -NOTE: If you prefer to actively develop and support your add-on -feature yourself, then you may wish to make it available for download -from your own website, as a user package that LAMMPS users can add to -their copy of LAMMPS. See the "Offsite LAMMPS packages and -tools"_http://lammps.sandia.gov/offsite.html page of the LAMMPS web -site for examples of groups that do this. We are happy to advertise -your package and web site from that page. Simply email the -"developers"_http://lammps.sandia.gov/authors.html with info about -your package and we will post it there. - -The previous sections of this doc page describe how to add new "style" -files of various kinds to LAMMPS. Packages are simply collections of -one or more new class files which are invoked as a new style within a -LAMMPS input script. If designed correctly, these additions typically -do not require changes to the main core of LAMMPS; they are simply -add-on files. If you think your new feature requires non-trivial -changes in core LAMMPS files, you'll need to "communicate with the -developers"_http://lammps.sandia.gov/authors.html, since we may or may -not want to make those changes. An example of a trivial change is -making a parent-class method "virtual" when you derive a new child -class from it. - -Here is a checklist of steps you need to follow to submit a single file -or user package for our consideration. Following these steps will save -both you and us time. See existing files in packages in the src dir for -examples. If you are uncertain, please ask. - -All source files you provide must compile with the most current -version of LAMMPS with multiple configurations. In particular you -need to test compiling LAMMPS from scratch with -DLAMMPS_BIGBIG -set in addition to the default -DLAMMPS_SMALLBIG setting. Your code -will need to work correctly in serial and in parallel using MPI. :ulb,l - -For consistency with the rest of LAMMPS and especially, if you want -your contribution(s) to be added to main LAMMPS code or one of its -standard packages, it needs to be written in a style compatible with -other LAMMPS source files. This means: 2-character indentation per -level, [no tabs], no lines over 80 characters. I/O is done via -the C-style stdio library, class header files should not import any -system headers outside , STL containers should be avoided -in headers, and forward declarations used where possible or needed. -All added code should be placed into the LAMMPS_NS namespace or a -sub-namespace; global or static variables should be avoided, as they -conflict with the modular nature of LAMMPS and the C++ class structure. -Header files must [not] import namespaces with {using}. -This all is so the developers can more easily understand, integrate, -and maintain your contribution and reduce conflicts with other parts -of LAMMPS. This basically means that the code accesses data -structures, performs its operations, and is formatted similar to other -LAMMPS source files, including the use of the error class for error -and warning messages. :l - -If you want your contribution to be added as a user-contributed -feature, and it's a single file (actually a *.cpp and *.h file) it can -rapidly be added to the USER-MISC directory. Send us the one-line -entry to add to the USER-MISC/README file in that dir, along with the -2 source files. You can do this multiple times if you wish to -contribute several individual features. :l - -If you want your contribution to be added as a user-contribution and -it is several related features, it is probably best to make it a user -package directory with a name like USER-FOO. In addition to your new -files, the directory should contain a README text file. The README -should contain your name and contact information and a brief -description of what your new package does. If your files depend on -other LAMMPS style files also being installed (e.g. because your file -is a derived class from the other LAMMPS class), then an Install.sh -file is also needed to check for those dependencies. See other README -and Install.sh files in other USER directories as examples. Send us a -tarball of this USER-FOO directory. :l - -Your new source files need to have the LAMMPS copyright, GPL notice, -and your name and email address at the top, like other -user-contributed LAMMPS source files. They need to create a class -that is inside the LAMMPS namespace. If the file is for one of the -USER packages, including USER-MISC, then we are not as picky about the -coding style (see above). I.e. the files do not need to be in the -same stylistic format and syntax as other LAMMPS files, though that -would be nice for developers as well as users who try to read your -code. :l - -You [must] also create a [documentation] file for each new command or -style you are adding to LAMMPS. For simplicity and convenience, the -documentation of groups of closely related commands or styles may be -combined into a single file. This will be one file for a single-file -feature. For a package, it might be several files. These are simple -text files with a specific markup language, that are then auto-converted -to HTML and PDF. The tools for this conversion are included in the -source distribution, and the translation can be as simple as doing -"make html pdf" in the doc folder. -Thus the documentation source files must be in the same format and -style as other *.txt files in the lammps/doc/src directory for similar -commands and styles; use one or more of them as a starting point. -A description of the markup can also be found in -lammps/doc/utils/txt2html/README.html -As appropriate, the text files can include links to equations -(see doc/Eqs/*.tex for examples, we auto-create the associated JPG -files), or figures (see doc/JPG for examples), or even additional PDF -files with further details (see doc/PDF for examples). The doc page -should also include literature citations as appropriate; see the -bottom of doc/fix_nh.txt for examples and the earlier part of the same -file for how to format the cite itself. The "Restrictions" section of -the doc page should indicate that your command is only available if -LAMMPS is built with the appropriate USER-MISC or USER-FOO package. -See other user package doc files for examples of how to do this. The -prerequisite for building the HTML format files are Python 3.x and -virtualenv, the requirement for generating the PDF format manual -is the "htmldoc"_http://www.htmldoc.org/ software. Please run at least -"make html" and carefully inspect and proofread the resulting HTML format -doc page before submitting your code. :l - -For a new package (or even a single command) you should include one or -more example scripts demonstrating its use. These should run in no -more than a couple minutes, even on a single processor, and not require -large data files as input. See directories under examples/USER for -examples of input scripts other users provided for their packages. -These example inputs are also required for validating memory accesses -and testing for memory leaks with valgrind :l - -If there is a paper of yours describing your feature (either the -algorithm/science behind the feature itself, or its initial usage, or -its implementation in LAMMPS), you can add the citation to the *.cpp -source file. See src/USER-EFF/atom_vec_electron.cpp for an example. -A LaTeX citation is stored in a variable at the top of the file and a -single line of code that references the variable is added to the -constructor of the class. Whenever a user invokes your feature from -their input script, this will cause LAMMPS to output the citation to a -log.cite file and prompt the user to examine the file. Note that you -should only use this for a paper you or your group authored. -E.g. adding a cite in the code for a paper by Nose and Hoover if you -write a fix that implements their integrator is not the intended -usage. That kind of citation should just be in the doc page you -provide. :l -:ule - -Finally, as a general rule-of-thumb, the more clear and -self-explanatory you make your documentation and README files, and the -easier you make it for people to get started, e.g. by providing example -scripts, the more likely it is that users will try out your new feature. - -:line -:line - -:link(Foo) -[(Foo)] Foo, Morefoo, and Maxfoo, J of Classic Potentials, 75, 345 (1997). diff --git a/doc/src/Section_packages.txt b/doc/src/Section_packages.txt index 218866e271..77f56d273c 100644 --- a/doc/src/Section_packages.txt +++ b/doc/src/Section_packages.txt @@ -51,8 +51,7 @@ technical questions about compiling the package. If you have problems using a feature provided in a user package, you may need to contact the contributor directly to get help. Information on how to submit additions you make to LAMMPS as single files or as a standard or user -package are given in "this section"_Section_modify.html#mod_15 of the -manual. +package are given in the "Modify contribute"_Modify.html doc page. Following the next two tables is a sub-section for each package. It lists authors (if applicable) and summarizes the package contents. It diff --git a/doc/src/Section_perf.txt b/doc/src/Section_perf.txt index 56b1d7dd04..f320780129 100644 --- a/doc/src/Section_perf.txt +++ b/doc/src/Section_perf.txt @@ -1,6 +1,6 @@ -"Previous Section"_Section_example.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Tools.html :c +"Previous Section"_Examples.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Tools.html +:c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Section_python.txt b/doc/src/Section_python.txt index 5427cd67f2..c9b0bd8b2e 100644 --- a/doc/src/Section_python.txt +++ b/doc/src/Section_python.txt @@ -1,4 +1,6 @@ -"Previous Section"_Section_modify.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_errors.html :c +"Previous Section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Section_errors.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index 0674e3cfcc..e8badfa6b9 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -1,6 +1,6 @@ "Previous Section"_Section_perf.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_modify.html :c +Section"_Modify.html :c + + + +"Common problems"_Errors_common.html +"Reporting bugs"_Errors_bugs.html +"Error messages"_Errors_messages.html +"Warning messages"_Errors_warnings.html :all(b) + + diff --git a/doc/src/Errors_bugs.txt b/doc/src/Errors_bugs.txt new file mode 100644 index 0000000000..c0a94c7a44 --- /dev/null +++ b/doc/src/Errors_bugs.txt @@ -0,0 +1,35 @@ +"Higher level section"_Errors.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Reporting bugs :h3 + +If you are confident that you have found a bug in LAMMPS, follow these +steps. + +Check the "New features and bug +fixes"_http://lammps.sandia.gov/bug.html section of the "LAMMPS WWW +site"_lws to see if the bug has already been reported or fixed or the +"Unfixed bug"_http://lammps.sandia.gov/unbug.html to see if a fix is +pending. + +Check the "mailing list"_http://lammps.sandia.gov/mail.html to see if +it has been discussed before. + +If not, send an email to the mailing list describing the problem with +any ideas you have as to what is causing it or where in the code the +problem might be. The developers will ask for more info if needed, +such as an input script or data files. + +The most useful thing you can do to help us fix the bug is to isolate +the problem. Run it on the smallest number of atoms and fewest number +of processors and with the simplest input script that reproduces the +bug and try to identify what command or combination of commands is +causing the problem. + +NOTE: this page needs to have GitHub issues info added diff --git a/doc/src/Errors_common.txt b/doc/src/Errors_common.txt new file mode 100644 index 0000000000..86a25f7e7d --- /dev/null +++ b/doc/src/Errors_common.txt @@ -0,0 +1,123 @@ +"Higher level section"_Errors.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Common problems :h3 + +If two LAMMPS runs do not produce the exact same answer on different +machines or different numbers of processors, this is typically not a +bug. In theory you should get identical answers on any number of +processors and on any machine. In practice, numerical round-off can +cause slight differences and eventual divergence of molecular dynamics +phase space trajectories within a few 100s or few 1000s of timesteps. +However, the statistical properties of the two runs (e.g. average +energy or temperature) should still be the same. + +If the "velocity"_velocity.html command is used to set initial atom +velocities, a particular atom can be assigned a different velocity +when the problem is run on a different number of processors or on +different machines. If this happens, the phase space trajectories of +the two simulations will rapidly diverge. See the discussion of the +{loop} option in the "velocity"_velocity.html command for details and +options that avoid this issue. + +Similarly, the "create_atoms"_create_atoms.html command generates a +lattice of atoms. For the same physical system, the ordering and +numbering of atoms by atom ID may be different depending on the number +of processors. + +Some commands use random number generators which may be setup to +produce different random number streams on each processor and hence +will produce different effects when run on different numbers of +processors. A commonly-used example is the "fix +langevin"_fix_langevin.html command for thermostatting. + +A LAMMPS simulation typically has two stages, setup and run. Most +LAMMPS errors are detected at setup time; others like a bond +stretching too far may not occur until the middle of a run. + +LAMMPS tries to flag errors and print informative error messages so +you can fix the problem. For most errors it will also print the last +input script command that it was processing. Of course, LAMMPS cannot +figure out your physics or numerical mistakes, like choosing too big a +timestep, specifying erroneous force field coefficients, or putting 2 +atoms on top of each other! If you run into errors that LAMMPS +doesn't catch that you think it should flag, please send an email to +the "developers"_http://lammps.sandia.gov/authors.html. + +If you get an error message about an invalid command in your input +script, you can determine what command is causing the problem by +looking in the log.lammps file or using the "echo command"_echo.html +to see it on the screen. If you get an error like "Invalid ... +style", with ... being fix, compute, pair, etc, it means that you +mistyped the style name or that the command is part of an optional +package which was not compiled into your executable. The list of +available styles in your executable can be listed by using "the -h +command-line argument"_Section_start.html#start_6. The installation +and compilation of optional packages is explained in the "installation +instructions"_Section_start.html#start_3. + +For a given command, LAMMPS expects certain arguments in a specified +order. If you mess this up, LAMMPS will often flag the error, but it +may also simply read a bogus argument and assign a value that is +valid, but not what you wanted. E.g. trying to read the string "abc" +as an integer value of 0. Careful reading of the associated doc page +for the command should allow you to fix these problems. In most cases, +where LAMMPS expects to read a number, either integer or floating point, +it performs a stringent test on whether the provided input actually +is an integer or floating-point number, respectively, and reject the +input with an error message (for instance, when an integer is required, +but a floating-point number 1.0 is provided): + +ERROR: Expected integer parameter in input script or data file :pre + +Some commands allow for using variable references in place of numeric +constants so that the value can be evaluated and may change over the +course of a run. This is typically done with the syntax {v_name} for a +parameter, where name is the name of the variable. On the other hand, +immediate variable expansion with the syntax ${name} is performed while +reading the input and before parsing commands, + +NOTE: Using a variable reference (i.e. {v_name}) is only allowed if +the documentation of the corresponding command explicitly says it is. + +Generally, LAMMPS will print a message to the screen and logfile and +exit gracefully when it encounters a fatal error. Sometimes it will +print a WARNING to the screen and logfile and continue on; you can +decide if the WARNING is important or not. A WARNING message that is +generated in the middle of a run is only printed to the screen, not to +the logfile, to avoid cluttering up thermodynamic output. If LAMMPS +crashes or hangs without spitting out an error message first then it +could be a bug (see "this section"_#err_2) or one of the following +cases: + +LAMMPS runs in the available memory a processor allows to be +allocated. Most reasonable MD runs are compute limited, not memory +limited, so this shouldn't be a bottleneck on most platforms. Almost +all large memory allocations in the code are done via C-style malloc's +which will generate an error message if you run out of memory. +Smaller chunks of memory are allocated via C++ "new" statements. If +you are unlucky you could run out of memory just when one of these +small requests is made, in which case the code will crash or hang (in +parallel), since LAMMPS doesn't trap on those errors. + +Illegal arithmetic can cause LAMMPS to run slow or crash. This is +typically due to invalid physics and numerics that your simulation is +computing. If you see wild thermodynamic values or NaN values in your +LAMMPS output, something is wrong with your simulation. If you +suspect this is happening, it is a good idea to print out +thermodynamic info frequently (e.g. every timestep) via the +"thermo"_thermo.html so you can monitor what is happening. +Visualizing the atom movement is also a good idea to insure your model +is behaving as you expect. + +In parallel, one way LAMMPS can hang is due to how different MPI +implementations handle buffering of messages. If the code hangs +without an error message, it may be that you need to specify an MPI +setting or two (usually via an environment variable) to enable +buffering or boost the sizes of messages that can be buffered. diff --git a/doc/src/Section_errors.txt b/doc/src/Errors_messages.txt similarity index 87% rename from doc/src/Section_errors.txt rename to doc/src/Errors_messages.txt index 95482b06dc..1563e02901 100644 --- a/doc/src/Section_errors.txt +++ b/doc/src/Errors_messages.txt @@ -1,6 +1,5 @@ -"Previous Section"_Section_python.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_history.html :c +"Higher level section"_Errors.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -8,185 +7,27 @@ Section"_Section_history.html :c :line -12. Errors :h2 +Error messages :h3 -This section describes the errors you can encounter when using LAMMPS, -either conceptually, or as printed out by the program. +This is an alphabetic list of the ERROR messages LAMMPS prints out and +the reason why. If the explanation here is not sufficient, the +documentation for the offending command may help. Error messages also +list the source file and line number where the error was generated. +For example, a message like this: -12.1 "Common problems"_#err_1 -12.2 "Reporting bugs"_#err_2 -12.3 "Error & warning messages"_#err_3 :all(b) - -:line -:line - -12.1 Common problems :link(err_1),h4 - -If two LAMMPS runs do not produce the exact same answer on different -machines or different numbers of processors, this is typically not a -bug. In theory you should get identical answers on any number of -processors and on any machine. In practice, numerical round-off can -cause slight differences and eventual divergence of molecular dynamics -phase space trajectories within a few 100s or few 1000s of timesteps. -However, the statistical properties of the two runs (e.g. average -energy or temperature) should still be the same. - -If the "velocity"_velocity.html command is used to set initial atom -velocities, a particular atom can be assigned a different velocity -when the problem is run on a different number of processors or on -different machines. If this happens, the phase space trajectories of -the two simulations will rapidly diverge. See the discussion of the -{loop} option in the "velocity"_velocity.html command for details and -options that avoid this issue. - -Similarly, the "create_atoms"_create_atoms.html command generates a -lattice of atoms. For the same physical system, the ordering and -numbering of atoms by atom ID may be different depending on the number -of processors. - -Some commands use random number generators which may be setup to -produce different random number streams on each processor and hence -will produce different effects when run on different numbers of -processors. A commonly-used example is the "fix -langevin"_fix_langevin.html command for thermostatting. - -A LAMMPS simulation typically has two stages, setup and run. Most -LAMMPS errors are detected at setup time; others like a bond -stretching too far may not occur until the middle of a run. - -LAMMPS tries to flag errors and print informative error messages so -you can fix the problem. For most errors it will also print the last -input script command that it was processing. Of course, LAMMPS cannot -figure out your physics or numerical mistakes, like choosing too big a -timestep, specifying erroneous force field coefficients, or putting 2 -atoms on top of each other! If you run into errors that LAMMPS -doesn't catch that you think it should flag, please send an email to -the "developers"_http://lammps.sandia.gov/authors.html. - -If you get an error message about an invalid command in your input -script, you can determine what command is causing the problem by -looking in the log.lammps file or using the "echo command"_echo.html -to see it on the screen. If you get an error like "Invalid ... -style", with ... being fix, compute, pair, etc, it means that you -mistyped the style name or that the command is part of an optional -package which was not compiled into your executable. The list of -available styles in your executable can be listed by using "the -h -command-line argument"_Section_start.html#start_6. The installation -and compilation of optional packages is explained in the "installation -instructions"_Section_start.html#start_3. - -For a given command, LAMMPS expects certain arguments in a specified -order. If you mess this up, LAMMPS will often flag the error, but it -may also simply read a bogus argument and assign a value that is -valid, but not what you wanted. E.g. trying to read the string "abc" -as an integer value of 0. Careful reading of the associated doc page -for the command should allow you to fix these problems. In most cases, -where LAMMPS expects to read a number, either integer or floating point, -it performs a stringent test on whether the provided input actually -is an integer or floating-point number, respectively, and reject the -input with an error message (for instance, when an integer is required, -but a floating-point number 1.0 is provided): - -ERROR: Expected integer parameter in input script or data file :pre - -Some commands allow for using variable references in place of numeric -constants so that the value can be evaluated and may change over the -course of a run. This is typically done with the syntax {v_name} for a -parameter, where name is the name of the variable. On the other hand, -immediate variable expansion with the syntax ${name} is performed while -reading the input and before parsing commands, - -NOTE: Using a variable reference (i.e. {v_name}) is only allowed if -the documentation of the corresponding command explicitly says it is. - -Generally, LAMMPS will print a message to the screen and logfile and -exit gracefully when it encounters a fatal error. Sometimes it will -print a WARNING to the screen and logfile and continue on; you can -decide if the WARNING is important or not. A WARNING message that is -generated in the middle of a run is only printed to the screen, not to -the logfile, to avoid cluttering up thermodynamic output. If LAMMPS -crashes or hangs without spitting out an error message first then it -could be a bug (see "this section"_#err_2) or one of the following -cases: - -LAMMPS runs in the available memory a processor allows to be -allocated. Most reasonable MD runs are compute limited, not memory -limited, so this shouldn't be a bottleneck on most platforms. Almost -all large memory allocations in the code are done via C-style malloc's -which will generate an error message if you run out of memory. -Smaller chunks of memory are allocated via C++ "new" statements. If -you are unlucky you could run out of memory just when one of these -small requests is made, in which case the code will crash or hang (in -parallel), since LAMMPS doesn't trap on those errors. - -Illegal arithmetic can cause LAMMPS to run slow or crash. This is -typically due to invalid physics and numerics that your simulation is -computing. If you see wild thermodynamic values or NaN values in your -LAMMPS output, something is wrong with your simulation. If you -suspect this is happening, it is a good idea to print out -thermodynamic info frequently (e.g. every timestep) via the -"thermo"_thermo.html so you can monitor what is happening. -Visualizing the atom movement is also a good idea to insure your model -is behaving as you expect. - -In parallel, one way LAMMPS can hang is due to how different MPI -implementations handle buffering of messages. If the code hangs -without an error message, it may be that you need to specify an MPI -setting or two (usually via an environment variable) to enable -buffering or boost the sizes of messages that can be buffered. - -:line - -12.2 Reporting bugs :link(err_2),h4 - -If you are confident that you have found a bug in LAMMPS, follow these -steps. - -Check the "New features and bug -fixes"_http://lammps.sandia.gov/bug.html section of the "LAMMPS WWW -site"_lws to see if the bug has already been reported or fixed or the -"Unfixed bug"_http://lammps.sandia.gov/unbug.html to see if a fix is -pending. - -Check the "mailing list"_http://lammps.sandia.gov/mail.html -to see if it has been discussed before. - -If not, send an email to the mailing list describing the problem with -any ideas you have as to what is causing it or where in the code the -problem might be. The developers will ask for more info if needed, -such as an input script or data files. - -The most useful thing you can do to help us fix the bug is to isolate -the problem. Run it on the smallest number of atoms and fewest number -of processors and with the simplest input script that reproduces the -bug and try to identify what command or combination of commands is -causing the problem. - -As a last resort, you can send an email directly to the -"developers"_http://lammps.sandia.gov/authors.html. - -:line - -12.3 Error & warning messages :h3,link(err_3) - -These are two alphabetic lists of the "ERROR"_#error and -"WARNING"_#warn messages LAMMPS prints out and the reason why. If the -explanation here is not sufficient, the documentation for the -offending command may help. -Error and warning messages also list the source file and line number -where the error was generated. For example, this message - -ERROR: Illegal velocity command (velocity.cpp:78) +ERROR: Illegal velocity command (velocity.cpp:78) :pre means that line #78 in the file src/velocity.cpp generated the error. Looking in the source code may help you figure out what went wrong. Note that error messages from "user-contributed -packages"_Section_start.html#start_3 are not listed here. If such an -error occurs and is not self-explanatory, you'll need to look in the -source code or contact the author of the package. +packages"_Section_package.html#table_user are not listed here. If +such an error occurs and is not self-explanatory, you'll need to look +in the source code or contact the author of the package. -Errors: :h3,link(error) +Doc page with "WARNING messages"_Errors_warnings.html + +:line :dlb @@ -803,13 +644,6 @@ lo value must be less than the hi value for all 3 dimensions. :dd The box command cannot be used after a read_data, read_restart, or create_box command. :dd -{BUG: restartinfo=1 but no restart support in pair style} :dt - -The pair style has a bug, where it does not support reading -and writing information to a restart file, but does not set -the member variable restartinfo to 0 as required in that case. :dd - - {CPU neighbor lists must be used for ellipsoid/sphere mix.} :dt When using Gay-Berne or RE-squared pair styles with both ellipsoidal and @@ -11003,904 +10837,3 @@ Self-explanatory. :dd Self-explanatory. :dd :dle - -Warnings: :h3,link(warn) - -:dlb - -{Adjusting Coulombic cutoff for MSM, new cutoff = %g} :dt - -The adjust/cutoff command is turned on and the Coulombic cutoff has been -adjusted to match the user-specified accuracy. :dd - -{Angle atoms missing at step %ld} :dt - -One or more of 3 atoms needed to compute a particular angle are -missing on this processor. Typically this is because the pairwise -cutoff is set too short or the angle has blown apart and an atom is -too far away. :dd - -{Angle style in data file differs from currently defined angle style} :dt - -Self-explanatory. :dd - -{Atom style in data file differs from currently defined atom style} :dt - -Self-explanatory. :dd - -{Bond atom missing in box size check} :dt - -The 2nd atoms needed to compute a particular bond is missing on this -processor. Typically this is because the pairwise cutoff is set too -short or the bond has blown apart and an atom is too far away. :dd - -{Bond atom missing in image check} :dt - -The 2nd atom in a particular bond is missing on this processor. -Typically this is because the pairwise cutoff is set too short or the -bond has blown apart and an atom is too far away. :dd - -{Bond atoms missing at step %ld} :dt - -The 2nd atom needed to compute a particular bond is missing on this -processor. Typically this is because the pairwise cutoff is set too -short or the bond has blown apart and an atom is too far away. :dd - -{Bond style in data file differs from currently defined bond style} :dt - -Self-explanatory. :dd - -{Bond/angle/dihedral extent > half of periodic box length} :dt - -This is a restriction because LAMMPS can be confused about which image -of an atom in the bonded interaction is the correct one to use. -"Extent" in this context means the maximum end-to-end length of the -bond/angle/dihedral. LAMMPS computes this by taking the maximum bond -length, multiplying by the number of bonds in the interaction (e.g. 3 -for a dihedral) and adding a small amount of stretch. :dd - -{Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero} :dt - -Self-explanatory. :dd - -{Calling write_dump before a full system init.} :dt - -The write_dump command is used before the system has been fully -initialized as part of a 'run' or 'minimize' command. Not all dump -styles and features are fully supported at this point and thus the -command may fail or produce incomplete or incorrect output. Insert -a "run 0" command, if a full system init is required. :dd - -{Cannot count rigid body degrees-of-freedom before bodies are fully initialized} :dt - -This means the temperature associated with the rigid bodies may be -incorrect on this timestep. :dd - -{Cannot count rigid body degrees-of-freedom before bodies are initialized} :dt - -This means the temperature associated with the rigid bodies may be -incorrect on this timestep. :dd - -{Cannot include log terms without 1/r terms; setting flagHI to 1} :dt - -Self-explanatory. :dd - -{Cannot include log terms without 1/r terms; setting flagHI to 1.} :dt - -Self-explanatory. :dd - -{Charges are set, but coulombic solver is not used} :dt - -Self-explanatory. :dd - -{Charges did not converge at step %ld: %lg} :dt - -Self-explanatory. :dd - -{Communication cutoff is too small for SNAP micro load balancing, increased to %lf} :dt - -Self-explanatory. :dd - -{Compute cna/atom cutoff may be too large to find ghost atom neighbors} :dt - -The neighbor cutoff used may not encompass enough ghost atoms -to perform this operation correctly. :dd - -{Computing temperature of portions of rigid bodies} :dt - -The group defined by the temperature compute does not encompass all -the atoms in one or more rigid bodies, so the change in -degrees-of-freedom for the atoms in those partial rigid bodies will -not be accounted for. :dd - -{Create_bonds max distance > minimum neighbor cutoff} :dt - -This means atom pairs for some atom types may not be in the neighbor -list and thus no bond can be created between them. :dd - -{Delete_atoms cutoff > minimum neighbor cutoff} :dt - -This means atom pairs for some atom types may not be in the neighbor -list and thus an atom in that pair cannot be deleted. :dd - -{Dihedral atoms missing at step %ld} :dt - -One or more of 4 atoms needed to compute a particular dihedral are -missing on this processor. Typically this is because the pairwise -cutoff is set too short or the dihedral has blown apart and an atom is -too far away. :dd - -{Dihedral problem} :dt - -Conformation of the 4 listed dihedral atoms is extreme; you may want -to check your simulation geometry. :dd - -{Dihedral problem: %d %ld %d %d %d %d} :dt - -Conformation of the 4 listed dihedral atoms is extreme; you may want -to check your simulation geometry. :dd - -{Dihedral style in data file differs from currently defined dihedral style} :dt - -Self-explanatory. :dd - -{Dump dcd/xtc timestamp may be wrong with fix dt/reset} :dt - -If the fix changes the timestep, the dump dcd file will not -reflect the change. :dd - -{Energy due to X extra global DOFs will be included in minimizer energies} :dt - -When using fixes like box/relax, the potential energy used by the minimizer -is augmented by an additional energy provided by the fix. Thus the printed -converged energy may be different from the total potential energy. :dd - -{Energy tally does not account for 'zero yes'} :dt - -The energy removed by using the 'zero yes' flag is not accounted -for in the energy tally and thus energy conservation cannot be -monitored in this case. :dd - -{Estimated error in splitting of dispersion coeffs is %g} :dt - -Error is greater than 0.0001 percent. :dd - -{Ewald/disp Newton solver failed, using old method to estimate g_ewald} :dt - -Self-explanatory. Choosing a different cutoff value may help. :dd - -{FENE bond too long} :dt - -A FENE bond has stretched dangerously far. It's interaction strength -will be truncated to attempt to prevent the bond from blowing up. :dd - -{FENE bond too long: %ld %d %d %g} :dt - -A FENE bond has stretched dangerously far. It's interaction strength -will be truncated to attempt to prevent the bond from blowing up. :dd - -{FENE bond too long: %ld %g} :dt - -A FENE bond has stretched dangerously far. It's interaction strength -will be truncated to attempt to prevent the bond from blowing up. :dd - -{Fix SRD walls overlap but fix srd overlap not set} :dt - -You likely want to set this in your input script. :dd - -{Fix bond/swap will ignore defined angles} :dt - -See the doc page for fix bond/swap for more info on this -restriction. :dd - -{Fix deposit near setting < possible overlap separation %g} :dt - -This test is performed for finite size particles with a diameter, not -for point particles. The near setting is smaller than the particle -diameter which can lead to overlaps. :dd - -{Fix evaporate may delete atom with non-zero molecule ID} :dt - -This is probably an error, since you should not delete only one atom -of a molecule. :dd - -{Fix gcmc using full_energy option} :dt - -Fix gcmc has automatically turned on the full_energy option since it -is required for systems like the one specified by the user. User input -included one or more of the following: kspace, triclinic, a hybrid -pair style, an eam pair style, or no "single" function for the pair -style. :dd - -{Fix property/atom mol or charge w/out ghost communication} :dt - -A model typically needs these properties defined for ghost atoms. :dd - -{Fix qeq CG convergence failed (%g) after %d iterations at %ld step} :dt - -Self-explanatory. :dd - -{Fix qeq has non-zero lower Taper radius cutoff} :dt - -Absolute value must be <= 0.01. :dd - -{Fix qeq has very low Taper radius cutoff} :dt - -Value should typically be >= 5.0. :dd - -{Fix qeq/dynamic tolerance may be too small for damped dynamics} :dt - -Self-explanatory. :dd - -{Fix qeq/fire tolerance may be too small for damped fires} :dt - -Self-explanatory. :dd - -{Fix rattle should come after all other integration fixes} :dt - -This fix is designed to work after all other integration fixes change -atom positions. Thus it should be the last integration fix specified. -If not, it will not satisfy the desired constraints as well as it -otherwise would. :dd - -{Fix recenter should come after all other integration fixes} :dt - -Other fixes may change the position of the center-of-mass, so -fix recenter should come last. :dd - -{Fix srd SRD moves may trigger frequent reneighboring} :dt - -This is because the SRD particles may move long distances. :dd - -{Fix srd grid size > 1/4 of big particle diameter} :dt - -This may cause accuracy problems. :dd - -{Fix srd particle moved outside valid domain} :dt - -This may indicate a problem with your simulation parameters. :dd - -{Fix srd particles may move > big particle diameter} :dt - -This may cause accuracy problems. :dd - -{Fix srd viscosity < 0.0 due to low SRD density} :dt - -This may cause accuracy problems. :dd - -{Fix thermal/conductivity comes before fix ave/spatial} :dt - -The order of these 2 fixes in your input script is such that fix -thermal/conductivity comes first. If you are using fix ave/spatial to -measure the temperature profile induced by fix viscosity, then this -may cause a glitch in the profile since you are averaging immediately -after swaps have occurred. Flipping the order of the 2 fixes -typically helps. :dd - -{Fix viscosity comes before fix ave/spatial} :dt - -The order of these 2 fixes in your input script is such that -fix viscosity comes first. If you are using fix ave/spatial -to measure the velocity profile induced by fix viscosity, then -this may cause a glitch in the profile since you are averaging -immediately after swaps have occurred. Flipping the order -of the 2 fixes typically helps. :dd - -{Fixes cannot send data in Kokkos communication, switching to classic communication} :dt - -This is current restriction with Kokkos. :dd - -{For better accuracy use 'pair_modify table 0'} :dt - -The user-specified force accuracy cannot be achieved unless the table -feature is disabled by using 'pair_modify table 0'. :dd - -{Geometric mixing assumed for 1/r^6 coefficients} :dt - -Self-explanatory. :dd - -{Group for fix_modify temp != fix group} :dt - -The fix_modify command is specifying a temperature computation that -computes a temperature on a different group of atoms than the fix -itself operates on. This is probably not what you want to do. :dd - -{H matrix size has been exceeded: m_fill=%d H.m=%d\n} :dt - -This is the size of the matrix. :dd - -{Ignoring unknown or incorrect info command flag} :dt - -Self-explanatory. An unknown argument was given to the info command. -Compare your input with the documentation. :dd - -{Improper atoms missing at step %ld} :dt - -One or more of 4 atoms needed to compute a particular improper are -missing on this processor. Typically this is because the pairwise -cutoff is set too short or the improper has blown apart and an atom is -too far away. :dd - -{Improper problem: %d %ld %d %d %d %d} :dt - -Conformation of the 4 listed improper atoms is extreme; you may want -to check your simulation geometry. :dd - -{Improper style in data file differs from currently defined improper style} :dt - -Self-explanatory. :dd - -{Inconsistent image flags} :dt - -The image flags for a pair on bonded atoms appear to be inconsistent. -Inconsistent means that when the coordinates of the two atoms are -unwrapped using the image flags, the two atoms are far apart. -Specifically they are further apart than half a periodic box length. -Or they are more than a box length apart in a non-periodic dimension. -This is usually due to the initial data file not having correct image -flags for the 2 atoms in a bond that straddles a periodic boundary. -They should be different by 1 in that case. This is a warning because -inconsistent image flags will not cause problems for dynamics or most -LAMMPS simulations. However they can cause problems when such atoms -are used with the fix rigid or replicate commands. Note that if you -have an infinite periodic crystal with bonds then it is impossible to -have fully consistent image flags, since some bonds will cross -periodic boundaries and connect two atoms with the same image -flag. :dd - -{KIM Model does not provide 'energy'; Potential energy will be zero} :dt - -Self-explanatory. :dd - -{KIM Model does not provide 'forces'; Forces will be zero} :dt - -Self-explanatory. :dd - -{KIM Model does not provide 'particleEnergy'; energy per atom will be zero} :dt - -Self-explanatory. :dd - -{KIM Model does not provide 'particleVirial'; virial per atom will be zero} :dt - -Self-explanatory. :dd - -{Kspace_modify slab param < 2.0 may cause unphysical behavior} :dt - -The kspace_modify slab parameter should be larger to insure periodic -grids padded with empty space do not overlap. :dd - -{Less insertions than requested} :dt - -The fix pour command was unsuccessful at finding open space -for as many particles as it tried to insert. :dd - -{Library error in lammps_gather_atoms} :dt - -This library function cannot be used if atom IDs are not defined -or are not consecutively numbered. :dd - -{Library error in lammps_scatter_atoms} :dt - -This library function cannot be used if atom IDs are not defined or -are not consecutively numbered, or if no atom map is defined. See the -atom_modify command for details about atom maps. :dd - -{Lost atoms via change_box: original %ld current %ld} :dt - -The command options you have used caused atoms to be lost. :dd - -{Lost atoms via displace_atoms: original %ld current %ld} :dt - -The command options you have used caused atoms to be lost. :dd - -{Lost atoms: original %ld current %ld} :dt - -Lost atoms are checked for each time thermo output is done. See the -thermo_modify lost command for options. Lost atoms usually indicate -bad dynamics, e.g. atoms have been blown far out of the simulation -box, or moved further than one processor's sub-domain away before -reneighboring. :dd - -{MSM mesh too small, increasing to 2 points in each direction} :dt - -Self-explanatory. :dd - -{Mismatch between velocity and compute groups} :dt - -The temperature computation used by the velocity command will not be -on the same group of atoms that velocities are being set for. :dd - -{Mixing forced for lj coefficients} :dt - -Self-explanatory. :dd - -{Molecule attributes do not match system attributes} :dt - -An attribute is specified (e.g. diameter, charge) that is -not defined for the specified atom style. :dd - -{Molecule has bond topology but no special bond settings} :dt - -This means the bonded atoms will not be excluded in pair-wise -interactions. :dd - -{Molecule template for create_atoms has multiple molecules} :dt - -The create_atoms command will only create molecules of a single type, -i.e. the first molecule in the template. :dd - -{Molecule template for fix gcmc has multiple molecules} :dt - -The fix gcmc command will only create molecules of a single type, -i.e. the first molecule in the template. :dd - -{Molecule template for fix shake has multiple molecules} :dt - -The fix shake command will only recognize molecules of a single -type, i.e. the first molecule in the template. :dd - -{More than one compute centro/atom} :dt - -It is not efficient to use compute centro/atom more than once. :dd - -{More than one compute cluster/atom} :dt - -It is not efficient to use compute cluster/atom more than once. :dd - -{More than one compute cna/atom defined} :dt - -It is not efficient to use compute cna/atom more than once. :dd - -{More than one compute contact/atom} :dt - -It is not efficient to use compute contact/atom more than once. :dd - -{More than one compute coord/atom} :dt - -It is not efficient to use compute coord/atom more than once. :dd - -{More than one compute damage/atom} :dt - -It is not efficient to use compute ke/atom more than once. :dd - -{More than one compute dilatation/atom} :dt - -Self-explanatory. :dd - -{More than one compute erotate/sphere/atom} :dt - -It is not efficient to use compute erorate/sphere/atom more than once. :dd - -{More than one compute hexorder/atom} :dt - -It is not efficient to use compute hexorder/atom more than once. :dd - -{More than one compute ke/atom} :dt - -It is not efficient to use compute ke/atom more than once. :dd - -{More than one compute orientorder/atom} :dt - -It is not efficient to use compute orientorder/atom more than once. :dd - -{More than one compute plasticity/atom} :dt - -Self-explanatory. :dd - -{More than one compute sna/atom} :dt - -Self-explanatory. :dd - -{More than one compute snad/atom} :dt - -Self-explanatory. :dd - -{More than one compute snav/atom} :dt - -Self-explanatory. :dd - -{More than one fix poems} :dt - -It is not efficient to use fix poems more than once. :dd - -{More than one fix rigid} :dt - -It is not efficient to use fix rigid more than once. :dd - -{Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies} :dt - -This is because excluding specific pair interactions also excludes -them from long-range interactions which may not be the desired effect. -The special_bonds command handles this consistently by insuring -excluded (or weighted) 1-2, 1-3, 1-4 interactions are treated -consistently by both the short-range pair style and the long-range -solver. This is not done for exclusions of charged atom pairs via the -neigh_modify exclude command. :dd - -{New thermo_style command, previous thermo_modify settings will be lost} :dt - -If a thermo_style command is used after a thermo_modify command, the -settings changed by the thermo_modify command will be reset to their -default values. This is because the thermo_modify command acts on -the currently defined thermo style, and a thermo_style command creates -a new style. :dd - -{No Kspace calculation with verlet/split} :dt - -The 2nd partition performs a kspace calculation so the kspace_style -command must be used. :dd - -{No automatic unit conversion to XTC file format conventions possible for units lj} :dt - -This means no scaling will be performed. :dd - -{No fixes defined, atoms won't move} :dt - -If you are not using a fix like nve, nvt, npt then atom velocities and -coordinates will not be updated during timestepping. :dd - -{No joints between rigid bodies, use fix rigid instead} :dt - -The bodies defined by fix poems are not connected by joints. POEMS -will integrate the body motion, but it would be more efficient to use -fix rigid. :dd - -{Not using real units with pair reax} :dt - -This is most likely an error, unless you have created your own ReaxFF -parameter file in a different set of units. :dd - -{Number of MSM mesh points changed to be a multiple of 2} :dt - -MSM requires that the number of grid points in each direction be a multiple -of two and the number of grid points in one or more directions have been -adjusted to meet this requirement. :dd - -{OMP_NUM_THREADS environment is not set.} :dt - -This environment variable must be set appropriately to use the -USER-OMP package. :dd - -{One or more atoms are time integrated more than once} :dt - -This is probably an error since you typically do not want to -advance the positions or velocities of an atom more than once -per timestep. :dd - -{One or more chunks do not contain all atoms in molecule} :dt - -This may not be what you intended. :dd - -{One or more dynamic groups may not be updated at correct point in timestep} :dt - -If there are other fixes that act immediately after the initial stage -of time integration within a timestep (i.e. after atoms move), then -the command that sets up the dynamic group should appear after those -fixes. This will insure that dynamic group assignments are made -after all atoms have moved. :dd - -{One or more respa levels compute no forces} :dt - -This is computationally inefficient. :dd - -{Pair COMB charge %.10f with force %.10f hit max barrier} :dt - -Something is possibly wrong with your model. :dd - -{Pair COMB charge %.10f with force %.10f hit min barrier} :dt - -Something is possibly wrong with your model. :dd - -{Pair brownian needs newton pair on for momentum conservation} :dt - -Self-explanatory. :dd - -{Pair dpd needs newton pair on for momentum conservation} :dt - -Self-explanatory. :dd - -{Pair dsmc: num_of_collisions > number_of_A} :dt - -Collision model in DSMC is breaking down. :dd - -{Pair dsmc: num_of_collisions > number_of_B} :dt - -Collision model in DSMC is breaking down. :dd - -{Pair style in data file differs from currently defined pair style} :dt - -Self-explanatory. :dd - -{Particle deposition was unsuccessful} :dt - -The fix deposit command was not able to insert as many atoms as -needed. The requested volume fraction may be too high, or other atoms -may be in the insertion region. :dd - -{Proc sub-domain size < neighbor skin, could lead to lost atoms} :dt - -The decomposition of the physical domain (likely due to load -balancing) has led to a processor's sub-domain being smaller than the -neighbor skin in one or more dimensions. Since reneighboring is -triggered by atoms moving the skin distance, this may lead to lost -atoms, if an atom moves all the way across a neighboring processor's -sub-domain before reneighboring is triggered. :dd - -{Reducing PPPM order b/c stencil extends beyond nearest neighbor processor} :dt - -This may lead to a larger grid than desired. See the kspace_modify overlap -command to prevent changing of the PPPM order. :dd - -{Reducing PPPMDisp Coulomb order b/c stencil extends beyond neighbor processor} :dt - -This may lead to a larger grid than desired. See the kspace_modify overlap -command to prevent changing of the PPPM order. :dd - -{Reducing PPPMDisp dispersion order b/c stencil extends beyond neighbor processor} :dt - -This may lead to a larger grid than desired. See the kspace_modify overlap -command to prevent changing of the PPPM order. :dd - -{Replacing a fix, but new group != old group} :dt - -The ID and style of a fix match for a fix you are changing with a fix -command, but the new group you are specifying does not match the old -group. :dd - -{Replicating in a non-periodic dimension} :dt - -The parameters for a replicate command will cause a non-periodic -dimension to be replicated; this may cause unwanted behavior. :dd - -{Resetting reneighboring criteria during PRD} :dt - -A PRD simulation requires that neigh_modify settings be delay = 0, -every = 1, check = yes. Since these settings were not in place, -LAMMPS changed them and will restore them to their original values -after the PRD simulation. :dd - -{Resetting reneighboring criteria during TAD} :dt - -A TAD simulation requires that neigh_modify settings be delay = 0, -every = 1, check = yes. Since these settings were not in place, -LAMMPS changed them and will restore them to their original values -after the PRD simulation. :dd - -{Resetting reneighboring criteria during minimization} :dt - -Minimization requires that neigh_modify settings be delay = 0, every = -1, check = yes. Since these settings were not in place, LAMMPS -changed them and will restore them to their original values after the -minimization. :dd - -{Restart file used different # of processors} :dt - -The restart file was written out by a LAMMPS simulation running on a -different number of processors. Due to round-off, the trajectories of -your restarted simulation may diverge a little more quickly than if -you ran on the same # of processors. :dd - -{Restart file used different 3d processor grid} :dt - -The restart file was written out by a LAMMPS simulation running on a -different 3d grid of processors. Due to round-off, the trajectories -of your restarted simulation may diverge a little more quickly than if -you ran on the same # of processors. :dd - -{Restart file used different boundary settings, using restart file values} :dt - -Your input script cannot change these restart file settings. :dd - -{Restart file used different newton bond setting, using restart file value} :dt - -The restart file value will override the setting in the input script. :dd - -{Restart file used different newton pair setting, using input script value} :dt - -The input script value will override the setting in the restart file. :dd - -{Restrain problem: %d %ld %d %d %d %d} :dt - -Conformation of the 4 listed dihedral atoms is extreme; you may want -to check your simulation geometry. :dd - -{Running PRD with only one replica} :dt - -This is allowed, but you will get no parallel speed-up. :dd - -{SRD bin shifting turned on due to small lamda} :dt - -This is done to try to preserve accuracy. :dd - -{SRD bin size for fix srd differs from user request} :dt - -Fix SRD had to adjust the bin size to fit the simulation box. See the -cubic keyword if you want this message to be an error vs warning. :dd - -{SRD bins for fix srd are not cubic enough} :dt - -The bin shape is not within tolerance of cubic. See the cubic -keyword if you want this message to be an error vs warning. :dd - -{SRD particle %d started inside big particle %d on step %ld bounce %d} :dt - -See the inside keyword if you want this message to be an error vs -warning. :dd - -{SRD particle %d started inside wall %d on step %ld bounce %d} :dt - -See the inside keyword if you want this message to be an error vs -warning. :dd - -{Shake determinant < 0.0} :dt - -The determinant of the quadratic equation being solved for a single -cluster specified by the fix shake command is numerically suspect. LAMMPS -will set it to 0.0 and continue. :dd - -{Shell command '%s' failed with error '%s'} :dt - -Self-explanatory. :dd - -{Shell command returned with non-zero status} :dt - -This may indicate the shell command did not operate as expected. :dd - -{Should not allow rigid bodies to bounce off relecting walls} :dt - -LAMMPS allows this, but their dynamics are not computed correctly. :dd - -{Should not use fix nve/limit with fix shake or fix rattle} :dt - -This will lead to invalid constraint forces in the SHAKE/RATTLE -computation. :dd - -{Simulations might be very slow because of large number of structure factors} :dt - -Self-explanatory. :dd - -{Slab correction not needed for MSM} :dt - -Slab correction is intended to be used with Ewald or PPPM and is not needed by MSM. :dd - -{System is not charge neutral, net charge = %g} :dt - -The total charge on all atoms on the system is not 0.0. -For some KSpace solvers this is only a warning. :dd - -{Table inner cutoff >= outer cutoff} :dt - -You specified an inner cutoff for a Coulombic table that is longer -than the global cutoff. Probably not what you wanted. :dd - -{Temperature for MSST is not for group all} :dt - -User-assigned temperature to MSST fix does not compute temperature for -all atoms. Since MSST computes a global pressure, the kinetic energy -contribution from the temperature is assumed to also be for all atoms. -Thus the pressure used by MSST could be inaccurate. :dd - -{Temperature for NPT is not for group all} :dt - -User-assigned temperature to NPT fix does not compute temperature for -all atoms. Since NPT computes a global pressure, the kinetic energy -contribution from the temperature is assumed to also be for all atoms. -Thus the pressure used by NPT could be inaccurate. :dd - -{Temperature for fix modify is not for group all} :dt - -The temperature compute is being used with a pressure calculation -which does operate on group all, so this may be inconsistent. :dd - -{Temperature for thermo pressure is not for group all} :dt - -User-assigned temperature to thermo via the thermo_modify command does -not compute temperature for all atoms. Since thermo computes a global -pressure, the kinetic energy contribution from the temperature is -assumed to also be for all atoms. Thus the pressure printed by thermo -could be inaccurate. :dd - -{The fix ave/spatial command has been replaced by the more flexible fix ave/chunk and compute chunk/atom commands -- fix ave/spatial will be removed in the summer of 2015} :dt - -Self-explanatory. :dd - -{The minimizer does not re-orient dipoles when using fix efield} :dt - -This means that only the atom coordinates will be minimized, -not the orientation of the dipoles. :dd - -{Too many common neighbors in CNA %d times} :dt - -More than the maximum # of neighbors was found multiple times. This -was unexpected. :dd - -{Too many inner timesteps in fix ttm} :dt - -Self-explanatory. :dd - -{Too many neighbors in CNA for %d atoms} :dt - -More than the maximum # of neighbors was found multiple times. This -was unexpected. :dd - -{Triclinic box skew is large} :dt - -The displacement in a skewed direction is normally required to be less -than half the box length in that dimension. E.g. the xy tilt must be -between -half and +half of the x box length. You have relaxed the -constraint using the box tilt command, but the warning means that a -LAMMPS simulation may be inefficient as a result. :dd - -{Use special bonds = 0,1,1 with bond style fene} :dt - -Most FENE models need this setting for the special_bonds command. :dd - -{Use special bonds = 0,1,1 with bond style fene/expand} :dt - -Most FENE models need this setting for the special_bonds command. :dd - -{Using a manybody potential with bonds/angles/dihedrals and special_bond exclusions} :dt - -This is likely not what you want to do. The exclusion settings will -eliminate neighbors in the neighbor list, which the manybody potential -needs to calculated its terms correctly. :dd - -{Using compute temp/deform with inconsistent fix deform remap option} :dt - -Fix nvt/sllod assumes deforming atoms have a velocity profile provided -by "remap v" or "remap none" as a fix deform option. :dd - -{Using compute temp/deform with no fix deform defined} :dt - -This is probably an error, since it makes little sense to use -compute temp/deform in this case. :dd - -{Using fix srd with box deformation but no SRD thermostat} :dt - -The deformation will heat the SRD particles so this can -be dangerous. :dd - -{Using kspace solver on system with no charge} :dt - -Self-explanatory. :dd - -{Using largest cut-off for lj/long/dipole/long long long} :dt - -Self-explanatory. :dd - -{Using largest cutoff for buck/long/coul/long} :dt - -Self-explanatory. :dd - -{Using largest cutoff for lj/long/coul/long} :dt - -Self-explanatory. :dd - -{Using largest cutoff for pair_style lj/long/tip4p/long} :dt - -Self-explanatory. :dd - -{Using package gpu without any pair style defined} :dt - -Self-explanatory. :dd - -{Using pair potential shift with pair_modify compute no} :dt - -The shift effects will thus not be computed. :dd - -{Using pair tail corrections with nonperiodic system} :dt - -This is probably a bogus thing to do, since tail corrections are -computed by integrating the density of a periodic system out to -infinity. :dd - -{Using pair tail corrections with pair_modify compute no} :dt - -The tail corrections will thus not be computed. :dd - -{pair style reax is now deprecated and will soon be retired. Users should switch to pair_style reax/c} :dt - -Self-explanatory. :dd - -:dle - diff --git a/doc/src/Errors_warnings.txt b/doc/src/Errors_warnings.txt new file mode 100644 index 0000000000..0324f563b6 --- /dev/null +++ b/doc/src/Errors_warnings.txt @@ -0,0 +1,934 @@ +"Higher level section"_Errors.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Warning messages :h3 + +This is an alphabetic list of the WARNING messages LAMMPS prints out +and the reason why. If the explanation here is not sufficient, the +documentation for the offending command may help. Warning messages +also list the source file and line number where the warning was +generated. For example, a message lile this: + +WARNING: Bond atom missing in box size check (domain.cpp:187) :pre + +means that line #187 in the file src/domain.cpp generated the error. +Looking in the source code may help you figure out what went wrong. + +Note that warning messages from "user-contributed +packages"_Section_start.html#table_user are not listed here. If such +a warning occurs and is not self-explanatory, you'll need to look in +the source code or contact the author of the package. + +Doc page with "ERROR messages"_Errors_messages.html + +:line + +:dlb + +{Adjusting Coulombic cutoff for MSM, new cutoff = %g} :dt + +The adjust/cutoff command is turned on and the Coulombic cutoff has been +adjusted to match the user-specified accuracy. :dd + +{Angle atoms missing at step %ld} :dt + +One or more of 3 atoms needed to compute a particular angle are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the angle has blown apart and an atom is +too far away. :dd + +{Angle style in data file differs from currently defined angle style} :dt + +Self-explanatory. :dd + +{Atom style in data file differs from currently defined atom style} :dt + +Self-explanatory. :dd + +{Bond atom missing in box size check} :dt + +The 2nd atoms needed to compute a particular bond is missing on this +processor. Typically this is because the pairwise cutoff is set too +short or the bond has blown apart and an atom is too far away. :dd + +{Bond atom missing in image check} :dt + +The 2nd atom in a particular bond is missing on this processor. +Typically this is because the pairwise cutoff is set too short or the +bond has blown apart and an atom is too far away. :dd + +{Bond atoms missing at step %ld} :dt + +The 2nd atom needed to compute a particular bond is missing on this +processor. Typically this is because the pairwise cutoff is set too +short or the bond has blown apart and an atom is too far away. :dd + +{Bond style in data file differs from currently defined bond style} :dt + +Self-explanatory. :dd + +{Bond/angle/dihedral extent > half of periodic box length} :dt + +This is a restriction because LAMMPS can be confused about which image +of an atom in the bonded interaction is the correct one to use. +"Extent" in this context means the maximum end-to-end length of the +bond/angle/dihedral. LAMMPS computes this by taking the maximum bond +length, multiplying by the number of bonds in the interaction (e.g. 3 +for a dihedral) and adding a small amount of stretch. :dd + +{Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero} :dt + +Self-explanatory. :dd + +{Calling write_dump before a full system init.} :dt + +The write_dump command is used before the system has been fully +initialized as part of a 'run' or 'minimize' command. Not all dump +styles and features are fully supported at this point and thus the +command may fail or produce incomplete or incorrect output. Insert +a "run 0" command, if a full system init is required. :dd + +{Cannot count rigid body degrees-of-freedom before bodies are fully initialized} :dt + +This means the temperature associated with the rigid bodies may be +incorrect on this timestep. :dd + +{Cannot count rigid body degrees-of-freedom before bodies are initialized} :dt + +This means the temperature associated with the rigid bodies may be +incorrect on this timestep. :dd + +{Cannot include log terms without 1/r terms; setting flagHI to 1} :dt + +Self-explanatory. :dd + +{Cannot include log terms without 1/r terms; setting flagHI to 1.} :dt + +Self-explanatory. :dd + +{Charges are set, but coulombic solver is not used} :dt + +Self-explanatory. :dd + +{Charges did not converge at step %ld: %lg} :dt + +Self-explanatory. :dd + +{Communication cutoff is too small for SNAP micro load balancing, increased to %lf} :dt + +Self-explanatory. :dd + +{Compute cna/atom cutoff may be too large to find ghost atom neighbors} :dt + +The neighbor cutoff used may not encompass enough ghost atoms +to perform this operation correctly. :dd + +{Computing temperature of portions of rigid bodies} :dt + +The group defined by the temperature compute does not encompass all +the atoms in one or more rigid bodies, so the change in +degrees-of-freedom for the atoms in those partial rigid bodies will +not be accounted for. :dd + +{Create_bonds max distance > minimum neighbor cutoff} :dt + +This means atom pairs for some atom types may not be in the neighbor +list and thus no bond can be created between them. :dd + +{Delete_atoms cutoff > minimum neighbor cutoff} :dt + +This means atom pairs for some atom types may not be in the neighbor +list and thus an atom in that pair cannot be deleted. :dd + +{Dihedral atoms missing at step %ld} :dt + +One or more of 4 atoms needed to compute a particular dihedral are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the dihedral has blown apart and an atom is +too far away. :dd + +{Dihedral problem} :dt + +Conformation of the 4 listed dihedral atoms is extreme; you may want +to check your simulation geometry. :dd + +{Dihedral problem: %d %ld %d %d %d %d} :dt + +Conformation of the 4 listed dihedral atoms is extreme; you may want +to check your simulation geometry. :dd + +{Dihedral style in data file differs from currently defined dihedral style} :dt + +Self-explanatory. :dd + +{Dump dcd/xtc timestamp may be wrong with fix dt/reset} :dt + +If the fix changes the timestep, the dump dcd file will not +reflect the change. :dd + +{Energy due to X extra global DOFs will be included in minimizer energies} :dt + +When using fixes like box/relax, the potential energy used by the minimizer +is augmented by an additional energy provided by the fix. Thus the printed +converged energy may be different from the total potential energy. :dd + +{Energy tally does not account for 'zero yes'} :dt + +The energy removed by using the 'zero yes' flag is not accounted +for in the energy tally and thus energy conservation cannot be +monitored in this case. :dd + +{Estimated error in splitting of dispersion coeffs is %g} :dt + +Error is greater than 0.0001 percent. :dd + +{Ewald/disp Newton solver failed, using old method to estimate g_ewald} :dt + +Self-explanatory. Choosing a different cutoff value may help. :dd + +{FENE bond too long} :dt + +A FENE bond has stretched dangerously far. It's interaction strength +will be truncated to attempt to prevent the bond from blowing up. :dd + +{FENE bond too long: %ld %d %d %g} :dt + +A FENE bond has stretched dangerously far. It's interaction strength +will be truncated to attempt to prevent the bond from blowing up. :dd + +{FENE bond too long: %ld %g} :dt + +A FENE bond has stretched dangerously far. It's interaction strength +will be truncated to attempt to prevent the bond from blowing up. :dd + +{Fix SRD walls overlap but fix srd overlap not set} :dt + +You likely want to set this in your input script. :dd + +{Fix bond/swap will ignore defined angles} :dt + +See the doc page for fix bond/swap for more info on this +restriction. :dd + +{Fix deposit near setting < possible overlap separation %g} :dt + +This test is performed for finite size particles with a diameter, not +for point particles. The near setting is smaller than the particle +diameter which can lead to overlaps. :dd + +{Fix evaporate may delete atom with non-zero molecule ID} :dt + +This is probably an error, since you should not delete only one atom +of a molecule. :dd + +{Fix gcmc using full_energy option} :dt + +Fix gcmc has automatically turned on the full_energy option since it +is required for systems like the one specified by the user. User input +included one or more of the following: kspace, triclinic, a hybrid +pair style, an eam pair style, or no "single" function for the pair +style. :dd + +{Fix property/atom mol or charge w/out ghost communication} :dt + +A model typically needs these properties defined for ghost atoms. :dd + +{Fix qeq CG convergence failed (%g) after %d iterations at %ld step} :dt + +Self-explanatory. :dd + +{Fix qeq has non-zero lower Taper radius cutoff} :dt + +Absolute value must be <= 0.01. :dd + +{Fix qeq has very low Taper radius cutoff} :dt + +Value should typically be >= 5.0. :dd + +{Fix qeq/dynamic tolerance may be too small for damped dynamics} :dt + +Self-explanatory. :dd + +{Fix qeq/fire tolerance may be too small for damped fires} :dt + +Self-explanatory. :dd + +{Fix rattle should come after all other integration fixes} :dt + +This fix is designed to work after all other integration fixes change +atom positions. Thus it should be the last integration fix specified. +If not, it will not satisfy the desired constraints as well as it +otherwise would. :dd + +{Fix recenter should come after all other integration fixes} :dt + +Other fixes may change the position of the center-of-mass, so +fix recenter should come last. :dd + +{Fix srd SRD moves may trigger frequent reneighboring} :dt + +This is because the SRD particles may move long distances. :dd + +{Fix srd grid size > 1/4 of big particle diameter} :dt + +This may cause accuracy problems. :dd + +{Fix srd particle moved outside valid domain} :dt + +This may indicate a problem with your simulation parameters. :dd + +{Fix srd particles may move > big particle diameter} :dt + +This may cause accuracy problems. :dd + +{Fix srd viscosity < 0.0 due to low SRD density} :dt + +This may cause accuracy problems. :dd + +{Fix thermal/conductivity comes before fix ave/spatial} :dt + +The order of these 2 fixes in your input script is such that fix +thermal/conductivity comes first. If you are using fix ave/spatial to +measure the temperature profile induced by fix viscosity, then this +may cause a glitch in the profile since you are averaging immediately +after swaps have occurred. Flipping the order of the 2 fixes +typically helps. :dd + +{Fix viscosity comes before fix ave/spatial} :dt + +The order of these 2 fixes in your input script is such that +fix viscosity comes first. If you are using fix ave/spatial +to measure the velocity profile induced by fix viscosity, then +this may cause a glitch in the profile since you are averaging +immediately after swaps have occurred. Flipping the order +of the 2 fixes typically helps. :dd + +{Fixes cannot send data in Kokkos communication, switching to classic communication} :dt + +This is current restriction with Kokkos. :dd + +{For better accuracy use 'pair_modify table 0'} :dt + +The user-specified force accuracy cannot be achieved unless the table +feature is disabled by using 'pair_modify table 0'. :dd + +{Geometric mixing assumed for 1/r^6 coefficients} :dt + +Self-explanatory. :dd + +{Group for fix_modify temp != fix group} :dt + +The fix_modify command is specifying a temperature computation that +computes a temperature on a different group of atoms than the fix +itself operates on. This is probably not what you want to do. :dd + +{H matrix size has been exceeded: m_fill=%d H.m=%d\n} :dt + +This is the size of the matrix. :dd + +{Ignoring unknown or incorrect info command flag} :dt + +Self-explanatory. An unknown argument was given to the info command. +Compare your input with the documentation. :dd + +{Improper atoms missing at step %ld} :dt + +One or more of 4 atoms needed to compute a particular improper are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the improper has blown apart and an atom is +too far away. :dd + +{Improper problem: %d %ld %d %d %d %d} :dt + +Conformation of the 4 listed improper atoms is extreme; you may want +to check your simulation geometry. :dd + +{Improper style in data file differs from currently defined improper style} :dt + +Self-explanatory. :dd + +{Inconsistent image flags} :dt + +The image flags for a pair on bonded atoms appear to be inconsistent. +Inconsistent means that when the coordinates of the two atoms are +unwrapped using the image flags, the two atoms are far apart. +Specifically they are further apart than half a periodic box length. +Or they are more than a box length apart in a non-periodic dimension. +This is usually due to the initial data file not having correct image +flags for the 2 atoms in a bond that straddles a periodic boundary. +They should be different by 1 in that case. This is a warning because +inconsistent image flags will not cause problems for dynamics or most +LAMMPS simulations. However they can cause problems when such atoms +are used with the fix rigid or replicate commands. Note that if you +have an infinite periodic crystal with bonds then it is impossible to +have fully consistent image flags, since some bonds will cross +periodic boundaries and connect two atoms with the same image +flag. :dd + +{KIM Model does not provide 'energy'; Potential energy will be zero} :dt + +Self-explanatory. :dd + +{KIM Model does not provide 'forces'; Forces will be zero} :dt + +Self-explanatory. :dd + +{KIM Model does not provide 'particleEnergy'; energy per atom will be zero} :dt + +Self-explanatory. :dd + +{KIM Model does not provide 'particleVirial'; virial per atom will be zero} :dt + +Self-explanatory. :dd + +{Kspace_modify slab param < 2.0 may cause unphysical behavior} :dt + +The kspace_modify slab parameter should be larger to insure periodic +grids padded with empty space do not overlap. :dd + +{Less insertions than requested} :dt + +The fix pour command was unsuccessful at finding open space +for as many particles as it tried to insert. :dd + +{Library error in lammps_gather_atoms} :dt + +This library function cannot be used if atom IDs are not defined +or are not consecutively numbered. :dd + +{Library error in lammps_scatter_atoms} :dt + +This library function cannot be used if atom IDs are not defined or +are not consecutively numbered, or if no atom map is defined. See the +atom_modify command for details about atom maps. :dd + +{Lost atoms via change_box: original %ld current %ld} :dt + +The command options you have used caused atoms to be lost. :dd + +{Lost atoms via displace_atoms: original %ld current %ld} :dt + +The command options you have used caused atoms to be lost. :dd + +{Lost atoms: original %ld current %ld} :dt + +Lost atoms are checked for each time thermo output is done. See the +thermo_modify lost command for options. Lost atoms usually indicate +bad dynamics, e.g. atoms have been blown far out of the simulation +box, or moved further than one processor's sub-domain away before +reneighboring. :dd + +{MSM mesh too small, increasing to 2 points in each direction} :dt + +Self-explanatory. :dd + +{Mismatch between velocity and compute groups} :dt + +The temperature computation used by the velocity command will not be +on the same group of atoms that velocities are being set for. :dd + +{Mixing forced for lj coefficients} :dt + +Self-explanatory. :dd + +{Molecule attributes do not match system attributes} :dt + +An attribute is specified (e.g. diameter, charge) that is +not defined for the specified atom style. :dd + +{Molecule has bond topology but no special bond settings} :dt + +This means the bonded atoms will not be excluded in pair-wise +interactions. :dd + +{Molecule template for create_atoms has multiple molecules} :dt + +The create_atoms command will only create molecules of a single type, +i.e. the first molecule in the template. :dd + +{Molecule template for fix gcmc has multiple molecules} :dt + +The fix gcmc command will only create molecules of a single type, +i.e. the first molecule in the template. :dd + +{Molecule template for fix shake has multiple molecules} :dt + +The fix shake command will only recognize molecules of a single +type, i.e. the first molecule in the template. :dd + +{More than one compute centro/atom} :dt + +It is not efficient to use compute centro/atom more than once. :dd + +{More than one compute cluster/atom} :dt + +It is not efficient to use compute cluster/atom more than once. :dd + +{More than one compute cna/atom defined} :dt + +It is not efficient to use compute cna/atom more than once. :dd + +{More than one compute contact/atom} :dt + +It is not efficient to use compute contact/atom more than once. :dd + +{More than one compute coord/atom} :dt + +It is not efficient to use compute coord/atom more than once. :dd + +{More than one compute damage/atom} :dt + +It is not efficient to use compute ke/atom more than once. :dd + +{More than one compute dilatation/atom} :dt + +Self-explanatory. :dd + +{More than one compute erotate/sphere/atom} :dt + +It is not efficient to use compute erorate/sphere/atom more than once. :dd + +{More than one compute hexorder/atom} :dt + +It is not efficient to use compute hexorder/atom more than once. :dd + +{More than one compute ke/atom} :dt + +It is not efficient to use compute ke/atom more than once. :dd + +{More than one compute orientorder/atom} :dt + +It is not efficient to use compute orientorder/atom more than once. :dd + +{More than one compute plasticity/atom} :dt + +Self-explanatory. :dd + +{More than one compute sna/atom} :dt + +Self-explanatory. :dd + +{More than one compute snad/atom} :dt + +Self-explanatory. :dd + +{More than one compute snav/atom} :dt + +Self-explanatory. :dd + +{More than one fix poems} :dt + +It is not efficient to use fix poems more than once. :dd + +{More than one fix rigid} :dt + +It is not efficient to use fix rigid more than once. :dd + +{Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies} :dt + +This is because excluding specific pair interactions also excludes +them from long-range interactions which may not be the desired effect. +The special_bonds command handles this consistently by insuring +excluded (or weighted) 1-2, 1-3, 1-4 interactions are treated +consistently by both the short-range pair style and the long-range +solver. This is not done for exclusions of charged atom pairs via the +neigh_modify exclude command. :dd + +{New thermo_style command, previous thermo_modify settings will be lost} :dt + +If a thermo_style command is used after a thermo_modify command, the +settings changed by the thermo_modify command will be reset to their +default values. This is because the thermo_modify command acts on +the currently defined thermo style, and a thermo_style command creates +a new style. :dd + +{No Kspace calculation with verlet/split} :dt + +The 2nd partition performs a kspace calculation so the kspace_style +command must be used. :dd + +{No automatic unit conversion to XTC file format conventions possible for units lj} :dt + +This means no scaling will be performed. :dd + +{No fixes defined, atoms won't move} :dt + +If you are not using a fix like nve, nvt, npt then atom velocities and +coordinates will not be updated during timestepping. :dd + +{No joints between rigid bodies, use fix rigid instead} :dt + +The bodies defined by fix poems are not connected by joints. POEMS +will integrate the body motion, but it would be more efficient to use +fix rigid. :dd + +{Not using real units with pair reax} :dt + +This is most likely an error, unless you have created your own ReaxFF +parameter file in a different set of units. :dd + +{Number of MSM mesh points changed to be a multiple of 2} :dt + +MSM requires that the number of grid points in each direction be a multiple +of two and the number of grid points in one or more directions have been +adjusted to meet this requirement. :dd + +{OMP_NUM_THREADS environment is not set.} :dt + +This environment variable must be set appropriately to use the +USER-OMP package. :dd + +{One or more atoms are time integrated more than once} :dt + +This is probably an error since you typically do not want to +advance the positions or velocities of an atom more than once +per timestep. :dd + +{One or more chunks do not contain all atoms in molecule} :dt + +This may not be what you intended. :dd + +{One or more dynamic groups may not be updated at correct point in timestep} :dt + +If there are other fixes that act immediately after the initial stage +of time integration within a timestep (i.e. after atoms move), then +the command that sets up the dynamic group should appear after those +fixes. This will insure that dynamic group assignments are made +after all atoms have moved. :dd + +{One or more respa levels compute no forces} :dt + +This is computationally inefficient. :dd + +{Pair COMB charge %.10f with force %.10f hit max barrier} :dt + +Something is possibly wrong with your model. :dd + +{Pair COMB charge %.10f with force %.10f hit min barrier} :dt + +Something is possibly wrong with your model. :dd + +{Pair brownian needs newton pair on for momentum conservation} :dt + +Self-explanatory. :dd + +{Pair dpd needs newton pair on for momentum conservation} :dt + +Self-explanatory. :dd + +{Pair dsmc: num_of_collisions > number_of_A} :dt + +Collision model in DSMC is breaking down. :dd + +{Pair dsmc: num_of_collisions > number_of_B} :dt + +Collision model in DSMC is breaking down. :dd + +{Pair style in data file differs from currently defined pair style} :dt + +Self-explanatory. :dd + +{Pair style restartinfo set but has no restart support} :dt + +This pair style has a bug, where it does not support reading and +writing information to a restart file, but does not set the member +variable "restartinfo" to 0 as required in that case. :dd + +{Particle deposition was unsuccessful} :dt + +The fix deposit command was not able to insert as many atoms as +needed. The requested volume fraction may be too high, or other atoms +may be in the insertion region. :dd + +{Proc sub-domain size < neighbor skin, could lead to lost atoms} :dt + +The decomposition of the physical domain (likely due to load +balancing) has led to a processor's sub-domain being smaller than the +neighbor skin in one or more dimensions. Since reneighboring is +triggered by atoms moving the skin distance, this may lead to lost +atoms, if an atom moves all the way across a neighboring processor's +sub-domain before reneighboring is triggered. :dd + +{Reducing PPPM order b/c stencil extends beyond nearest neighbor processor} :dt + +This may lead to a larger grid than desired. See the kspace_modify overlap +command to prevent changing of the PPPM order. :dd + +{Reducing PPPMDisp Coulomb order b/c stencil extends beyond neighbor processor} :dt + +This may lead to a larger grid than desired. See the kspace_modify overlap +command to prevent changing of the PPPM order. :dd + +{Reducing PPPMDisp dispersion order b/c stencil extends beyond neighbor processor} :dt + +This may lead to a larger grid than desired. See the kspace_modify overlap +command to prevent changing of the PPPM order. :dd + +{Replacing a fix, but new group != old group} :dt + +The ID and style of a fix match for a fix you are changing with a fix +command, but the new group you are specifying does not match the old +group. :dd + +{Replicating in a non-periodic dimension} :dt + +The parameters for a replicate command will cause a non-periodic +dimension to be replicated; this may cause unwanted behavior. :dd + +{Resetting reneighboring criteria during PRD} :dt + +A PRD simulation requires that neigh_modify settings be delay = 0, +every = 1, check = yes. Since these settings were not in place, +LAMMPS changed them and will restore them to their original values +after the PRD simulation. :dd + +{Resetting reneighboring criteria during TAD} :dt + +A TAD simulation requires that neigh_modify settings be delay = 0, +every = 1, check = yes. Since these settings were not in place, +LAMMPS changed them and will restore them to their original values +after the PRD simulation. :dd + +{Resetting reneighboring criteria during minimization} :dt + +Minimization requires that neigh_modify settings be delay = 0, every = +1, check = yes. Since these settings were not in place, LAMMPS +changed them and will restore them to their original values after the +minimization. :dd + +{Restart file used different # of processors} :dt + +The restart file was written out by a LAMMPS simulation running on a +different number of processors. Due to round-off, the trajectories of +your restarted simulation may diverge a little more quickly than if +you ran on the same # of processors. :dd + +{Restart file used different 3d processor grid} :dt + +The restart file was written out by a LAMMPS simulation running on a +different 3d grid of processors. Due to round-off, the trajectories +of your restarted simulation may diverge a little more quickly than if +you ran on the same # of processors. :dd + +{Restart file used different boundary settings, using restart file values} :dt + +Your input script cannot change these restart file settings. :dd + +{Restart file used different newton bond setting, using restart file value} :dt + +The restart file value will override the setting in the input script. :dd + +{Restart file used different newton pair setting, using input script value} :dt + +The input script value will override the setting in the restart file. :dd + +{Restrain problem: %d %ld %d %d %d %d} :dt + +Conformation of the 4 listed dihedral atoms is extreme; you may want +to check your simulation geometry. :dd + +{Running PRD with only one replica} :dt + +This is allowed, but you will get no parallel speed-up. :dd + +{SRD bin shifting turned on due to small lamda} :dt + +This is done to try to preserve accuracy. :dd + +{SRD bin size for fix srd differs from user request} :dt + +Fix SRD had to adjust the bin size to fit the simulation box. See the +cubic keyword if you want this message to be an error vs warning. :dd + +{SRD bins for fix srd are not cubic enough} :dt + +The bin shape is not within tolerance of cubic. See the cubic +keyword if you want this message to be an error vs warning. :dd + +{SRD particle %d started inside big particle %d on step %ld bounce %d} :dt + +See the inside keyword if you want this message to be an error vs +warning. :dd + +{SRD particle %d started inside wall %d on step %ld bounce %d} :dt + +See the inside keyword if you want this message to be an error vs +warning. :dd + +{Shake determinant < 0.0} :dt + +The determinant of the quadratic equation being solved for a single +cluster specified by the fix shake command is numerically suspect. LAMMPS +will set it to 0.0 and continue. :dd + +{Shell command '%s' failed with error '%s'} :dt + +Self-explanatory. :dd + +{Shell command returned with non-zero status} :dt + +This may indicate the shell command did not operate as expected. :dd + +{Should not allow rigid bodies to bounce off relecting walls} :dt + +LAMMPS allows this, but their dynamics are not computed correctly. :dd + +{Should not use fix nve/limit with fix shake or fix rattle} :dt + +This will lead to invalid constraint forces in the SHAKE/RATTLE +computation. :dd + +{Simulations might be very slow because of large number of structure factors} :dt + +Self-explanatory. :dd + +{Slab correction not needed for MSM} :dt + +Slab correction is intended to be used with Ewald or PPPM and is not needed by MSM. :dd + +{System is not charge neutral, net charge = %g} :dt + +The total charge on all atoms on the system is not 0.0. +For some KSpace solvers this is only a warning. :dd + +{Table inner cutoff >= outer cutoff} :dt + +You specified an inner cutoff for a Coulombic table that is longer +than the global cutoff. Probably not what you wanted. :dd + +{Temperature for MSST is not for group all} :dt + +User-assigned temperature to MSST fix does not compute temperature for +all atoms. Since MSST computes a global pressure, the kinetic energy +contribution from the temperature is assumed to also be for all atoms. +Thus the pressure used by MSST could be inaccurate. :dd + +{Temperature for NPT is not for group all} :dt + +User-assigned temperature to NPT fix does not compute temperature for +all atoms. Since NPT computes a global pressure, the kinetic energy +contribution from the temperature is assumed to also be for all atoms. +Thus the pressure used by NPT could be inaccurate. :dd + +{Temperature for fix modify is not for group all} :dt + +The temperature compute is being used with a pressure calculation +which does operate on group all, so this may be inconsistent. :dd + +{Temperature for thermo pressure is not for group all} :dt + +User-assigned temperature to thermo via the thermo_modify command does +not compute temperature for all atoms. Since thermo computes a global +pressure, the kinetic energy contribution from the temperature is +assumed to also be for all atoms. Thus the pressure printed by thermo +could be inaccurate. :dd + +{The fix ave/spatial command has been replaced by the more flexible fix ave/chunk and compute chunk/atom commands -- fix ave/spatial will be removed in the summer of 2015} :dt + +Self-explanatory. :dd + +{The minimizer does not re-orient dipoles when using fix efield} :dt + +This means that only the atom coordinates will be minimized, +not the orientation of the dipoles. :dd + +{Too many common neighbors in CNA %d times} :dt + +More than the maximum # of neighbors was found multiple times. This +was unexpected. :dd + +{Too many inner timesteps in fix ttm} :dt + +Self-explanatory. :dd + +{Too many neighbors in CNA for %d atoms} :dt + +More than the maximum # of neighbors was found multiple times. This +was unexpected. :dd + +{Triclinic box skew is large} :dt + +The displacement in a skewed direction is normally required to be less +than half the box length in that dimension. E.g. the xy tilt must be +between -half and +half of the x box length. You have relaxed the +constraint using the box tilt command, but the warning means that a +LAMMPS simulation may be inefficient as a result. :dd + +{Use special bonds = 0,1,1 with bond style fene} :dt + +Most FENE models need this setting for the special_bonds command. :dd + +{Use special bonds = 0,1,1 with bond style fene/expand} :dt + +Most FENE models need this setting for the special_bonds command. :dd + +{Using a manybody potential with bonds/angles/dihedrals and special_bond exclusions} :dt + +This is likely not what you want to do. The exclusion settings will +eliminate neighbors in the neighbor list, which the manybody potential +needs to calculated its terms correctly. :dd + +{Using compute temp/deform with inconsistent fix deform remap option} :dt + +Fix nvt/sllod assumes deforming atoms have a velocity profile provided +by "remap v" or "remap none" as a fix deform option. :dd + +{Using compute temp/deform with no fix deform defined} :dt + +This is probably an error, since it makes little sense to use +compute temp/deform in this case. :dd + +{Using fix srd with box deformation but no SRD thermostat} :dt + +The deformation will heat the SRD particles so this can +be dangerous. :dd + +{Using kspace solver on system with no charge} :dt + +Self-explanatory. :dd + +{Using largest cut-off for lj/long/dipole/long long long} :dt + +Self-explanatory. :dd + +{Using largest cutoff for buck/long/coul/long} :dt + +Self-explanatory. :dd + +{Using largest cutoff for lj/long/coul/long} :dt + +Self-explanatory. :dd + +{Using largest cutoff for pair_style lj/long/tip4p/long} :dt + +Self-explanatory. :dd + +{Using package gpu without any pair style defined} :dt + +Self-explanatory. :dd + +{Using pair potential shift with pair_modify compute no} :dt + +The shift effects will thus not be computed. :dd + +{Using pair tail corrections with nonperiodic system} :dt + +This is probably a bogus thing to do, since tail corrections are +computed by integrating the density of a periodic system out to +infinity. :dd + +{Using pair tail corrections with pair_modify compute no} :dt + +The tail corrections will thus not be computed. :dd + +{pair style reax is now deprecated and will soon be retired. Users should switch to pair_style reax/c} :dt + +Self-explanatory. :dd + +:dle diff --git a/doc/src/Examples.txt b/doc/src/Examples.txt index 4935c96257..08afca8b20 100644 --- a/doc/src/Examples.txt +++ b/doc/src/Examples.txt @@ -2,12 +2,6 @@ "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_perf.html :c - - :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) :link(lc,Section_commands.html#comm) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 18ae1c4b61..4481c911a0 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,5 +1,5 @@ - +< LAMMPS Users Manual @@ -118,8 +118,8 @@ it gives quick access to documentation for all LAMMPS commands. Section_perf Tools Modify - Section_python - Section_errors + Python + Errors Section_history .. toctree:: @@ -212,19 +212,8 @@ END_RST --> "Performance & scalability"_Section_perf.html :l "Auxiliary tools"_Tools.html :l "Modify & extend LAMMPS"_Modify.html :l -"Python interface"_Section_python.html :l - 11.1 "Overview of running LAMMPS from Python"_py_1 :ulb,b - 11.2 "Overview of using Python from a LAMMPS script"_py_2 :b - 11.3 "Building LAMMPS as a shared library"_py_3 :b - 11.4 "Installing the Python wrapper into Python"_py_4 :b - 11.5 "Extending Python with MPI to run in parallel"_py_5 :b - 11.6 "Testing the Python-LAMMPS interface"_py_6 :b - 11.7 "Using LAMMPS from Python"_py_7 :b - 11.8 "Example Python scripts that use LAMMPS"_py_8 :ule,b -"Errors"_Section_errors.html :l - 12.1 "Common problems"_err_1 :ulb,b - 12.2 "Reporting bugs"_err_2 :b - 12.3 "Error & warning messages"_err_3 :ule,b +"Use Python with LAMMPS"_Python.html :l +"Errors"_Errors.html :l "Future and history"_Section_history.html :l 13.1 "Coming attractions"_hist_1 :ulb,b 13.2 "Past versions"_hist_2 :ule,b @@ -287,17 +276,6 @@ END_RST --> :link(howto_26,Section_howto.html#howto_26) :link(howto_27,Section_howto.html#howto_27) -:link(py_1,Section_python.html#py_1) -:link(py_2,Section_python.html#py_2) -:link(py_3,Section_python.html#py_3) -:link(py_4,Section_python.html#py_4) -:link(py_5,Section_python.html#py_5) -:link(py_6,Section_python.html#py_6) - -:link(err_1,Section_errors.html#err_1) -:link(err_2,Section_errors.html#err_2) -:link(err_3,Section_errors.html#err_3) - :link(hist_1,Section_history.html#hist_1) :link(hist_2,Section_history.html#hist_2) diff --git a/doc/src/Modify.txt b/doc/src/Modify.txt index 4b16ad781b..ae0b0dc6bd 100644 --- a/doc/src/Modify.txt +++ b/doc/src/Modify.txt @@ -1,12 +1,6 @@ "Previous Section"_Tools.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_python.html :c - - +Section"_Python.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -34,6 +28,8 @@ contribute"_Modify_contribute.html doc page. Modify_overview Modify_contribute +.. toctree:: + Modify_atom Modify_pair Modify_bond @@ -41,12 +37,16 @@ contribute"_Modify_contribute.html doc page. Modify_fix Modify_command +.. toctree:: + Modify_dump Modify_kspace Modify_min Modify_region Modify_body +.. toctree:: + Modify_thermo Modify_variable diff --git a/doc/src/Python.txt b/doc/src/Python.txt new file mode 100644 index 0000000000..94a2e88f5e --- /dev/null +++ b/doc/src/Python.txt @@ -0,0 +1,79 @@ +"Previous Section"_Modify.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Errors.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Use Python with LAMMPS :h3 + +These doc pages describe various ways that LAMMPS and Python can be +used together. + + + + + +"Overview of Python and LAMMPS"_Python_overview.html :all(b) + +"Run LAMMPS from Python"_Python_run.html +"Build LAMMPS as a shared library"_Python_shlib.html +"Install LAMMPS in Python"_Python_install.html +"Extend Python to run in parallel"_Python_mpi.html +"Test the Python/LAMMPS interface"_Python_test.html +"Python library interface"_Python_library.html +"PyLammps interface"_Python_pylammps.html +"Example Python scripts that use LAMMPS"_Python_examples.html :all(b) + +"Call Python from a LAMMPS input script"_Python_call.html :all(b) + + + +If you're not familiar with "Python"_http://www.python.org, it's a +powerful scripting and programming language which can do most +everything that lower-level languages like C or C++ can do in fewer +lines of code. The only drawback is slower execution speed. Python +is also easy to use as a "glue" language to drive a program through +its library interface, or to hook multiple pieces of software +together, such as a simulation code plus a visualization tool, or to +run a coupled multiscale or multiphysics model. + +See the "Howto_couple"_Howto_couple.html doc page for more ideas about +coupling LAMMPS to other codes. See the "Howto +library"_Howto_library.html doc page for a description of the LAMMPS +library interface provided in src/library.h and src/library.h. That +interface is exposed to Python either when calling LAMMPS from Python +or when calling Python from a LAMMPS input script and then calling +back to LAMMPS from Python code. The library interface is designed to +be easy to add funcionality to. Thus the Python interface to LAMMPS +is also easy to extend as well. + +If you create interesting Python scripts that run LAMMPS or +interesting Python functions that can be called from a LAMMPS input +script, that you think would be genearlly useful, please post them as +a pull request to our "GitHub site"_https://github.com/lammps/lammps, +and they can be added to the LAMMPS distribution or webpage. diff --git a/doc/src/Python_call.txt b/doc/src/Python_call.txt new file mode 100644 index 0000000000..3e30a5a7c7 --- /dev/null +++ b/doc/src/Python_call.txt @@ -0,0 +1,85 @@ +"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Call Python from a LAMMPS input script :h3 + +LAMMPS has several commands which can be used to invoke Python +code directly from an input script: + +"python"_python.html +"variable python"_variable.html +"fix python/invoke"_fix_python_invoke.html +"pair_style python"_pair_python.html :ul + +The "python"_python.html command which can be used to define and +execute a Python function that you write the code for. The Python +function can also be assigned to a LAMMPS python-style variable via +the "variable"_variable.html command. Each time the variable is +evaluated, either in the LAMMPS input script itself, or by another +LAMMPS command that uses the variable, this will trigger the Python +function to be invoked. + +The Python code for the function can be included directly in the input +script or in an auxiliary file. The function can have arguments which +are mapped to LAMMPS variables (also defined in the input script) and +it can return a value to a LAMMPS variable. This is thus a mechanism +for your input script to pass information to a piece of Python code, +ask Python to execute the code, and return information to your input +script. + +Note that a Python function can be arbitrarily complex. It can import +other Python modules, instantiate Python classes, call other Python +functions, etc. The Python code that you provide can contain more +code than the single function. It can contain other functions or +Python classes, as well as global variables or other mechanisms for +storing state between calls from LAMMPS to the function. + +The Python function you provide can consist of "pure" Python code that +only performs operations provided by standard Python. However, the +Python function can also "call back" to LAMMPS through its +Python-wrapped library interface, in the manner described in the +"Python run"_Python_run.html doc page. This means it can issue LAMMPS +input script commands or query and set internal LAMMPS state. As an +example, this can be useful in an input script to create a more +complex loop with branching logic, than can be created using the +simple looping and branching logic enabled by the "next"_next.html and +"if"_if.html commands. + +See the "python"_python.html doc page and the "variable"_variable.html +doc page for its python-style variables for more info, including +examples of Python code you can write for both pure Python operations +and callbacks to LAMMPS. + +The "fix python/invoke"_fix_python_invoke.html command can execute +Python code at selected timesteps during a simulation run. + +The "pair_style python"_pair_python command allows you to define +pairwise potentials as python code which encodes a single pairwise +interaction. This is useful for rapid-developement and debugging of a +new potential. + +To use any of these commands, you only need to build LAMMPS with the +PYTHON package installed: + +make yes-python +make machine :pre + +Note that this will link LAMMPS with the Python library on your +system, which typically requires several auxiliary system libraries to +also be linked. The list of these libraries and the paths to find +them are specified in the lib/python/Makefile.lammps file. You need +to insure that file contains the correct information for your version +of Python and your machine to successfully build LAMMPS. See the +lib/python/README file for more info. + +If you want to write Python code with callbacks to LAMMPS, then you +must also follow the steps overviewed in the "Python +run"_Python_run.html doc page. I.e. you must build LAMMPS as a shared +library and insure that Python can find the python/lammps.py file and +the shared library. diff --git a/doc/src/Python_examples.txt b/doc/src/Python_examples.txt new file mode 100644 index 0000000000..fbca381e8b --- /dev/null +++ b/doc/src/Python_examples.txt @@ -0,0 +1,81 @@ +"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Example Python scripts that use LAMMPS :h3 + +These are the Python scripts included as demos in the python/examples +directory of the LAMMPS distribution, to illustrate the kinds of +things that are possible when Python wraps LAMMPS. If you create your +own scripts, send them to us and we can include them in the LAMMPS +distribution. + +trivial.py, read/run a LAMMPS input script thru Python, +demo.py, invoke various LAMMPS library interface routines, +simple.py, run in parallel, similar to examples/COUPLE/simple/simple.cpp, +split.py, same as simple.py but running in parallel on a subset of procs, +gui.py, GUI go/stop/temperature-slider to control LAMMPS, +plot.py, real-time temperature plot with GnuPlot via Pizza.py, +viz_tool.py, real-time viz via some viz package, +vizplotgui_tool.py, combination of viz_tool.py and plot.py and gui.py :tb(c=2) + +:line + +For the viz_tool.py and vizplotgui_tool.py commands, replace "tool" +with "gl" or "atomeye" or "pymol" or "vmd", depending on what +visualization package you have installed. + +Note that for GL, you need to be able to run the Pizza.py GL tool, +which is included in the pizza sub-directory. See the "Pizza.py doc +pages"_pizza for more info: + +:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) + +Note that for AtomEye, you need version 3, and there is a line in the +scripts that specifies the path and name of the executable. See the +AtomEye WWW pages "here"_atomeye or "here"_atomeye3 for more details: + +http://mt.seas.upenn.edu/Archive/Graphics/A +http://mt.seas.upenn.edu/Archive/Graphics/A3/A3.html :pre + +:link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A) +:link(atomeye3,http://mt.seas.upenn.edu/Archive/Graphics/A3/A3.html) + +The latter link is to AtomEye 3 which has the scriping +capability needed by these Python scripts. + +Note that for PyMol, you need to have built and installed the +open-source version of PyMol in your Python, so that you can import it +from a Python script. See the PyMol WWW pages "here"_pymolhome or +"here"_pymolopen for more details: + +http://www.pymol.org +http://sourceforge.net/scm/?type=svn&group_id=4546 :pre + +:link(pymolhome,http://www.pymol.org) +:link(pymolopen,http://sourceforge.net/scm/?type=svn&group_id=4546) + +The latter link is to the open-source version. + +Note that for VMD, you need a fairly current version (1.8.7 works for +me) and there are some lines in the pizza/vmd.py script for 4 PIZZA +variables that have to match the VMD installation on your system. + +:line + +See the python/README file for instructions on how to run them and the +source code for individual scripts for comments about what they do. + +Here are screenshots of the vizplotgui_tool.py script in action for +different visualization package options. Click to see larger images: + +:image(JPG/screenshot_gl_small.jpg,JPG/screenshot_gl.jpg) +:image(JPG/screenshot_atomeye_small.jpg,JPG/screenshot_atomeye.jpg) +:image(JPG/screenshot_pymol_small.jpg,JPG/screenshot_pymol.jpg) +:image(JPG/screenshot_vmd_small.jpg,JPG/screenshot_vmd.jpg) + diff --git a/doc/src/Python_install.txt b/doc/src/Python_install.txt new file mode 100644 index 0000000000..631f6c4a7f --- /dev/null +++ b/doc/src/Python_install.txt @@ -0,0 +1,74 @@ +"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Installing LAMMPS in Python :h3 + +For Python to invoke LAMMPS, there are 2 files it needs to know about: + +python/lammps.py +src/liblammps.so :ul + +Lammps.py is the Python wrapper on the LAMMPS library interface. +Liblammps.so is the shared LAMMPS library that Python loads, as +described above. + +You can insure Python can find these files in one of two ways: + +set two environment variables +run the python/install.py script :ul + +If you set the paths to these files as environment variables, you only +have to do it once. For the csh or tcsh shells, add something like +this to your ~/.cshrc file, one line for each of the two files: + +setenv PYTHONPATH $\{PYTHONPATH\}:/home/sjplimp/lammps/python +setenv LD_LIBRARY_PATH $\{LD_LIBRARY_PATH\}:/home/sjplimp/lammps/src :pre + +If you use the python/install.py script, you need to invoke it every +time you rebuild LAMMPS (as a shared library) or make changes to the +python/lammps.py file. + +You can invoke install.py from the python directory as + +% python install.py \[libdir\] \[pydir\] :pre + +The optional libdir is where to copy the LAMMPS shared library to; the +default is /usr/local/lib. The optional pydir is where to copy the +lammps.py file to; the default is the site-packages directory of the +version of Python that is running the install script. + +Note that libdir must be a location that is in your default +LD_LIBRARY_PATH, like /usr/local/lib or /usr/lib. And pydir must be a +location that Python looks in by default for imported modules, like +its site-packages dir. If you want to copy these files to +non-standard locations, such as within your own user space, you will +need to set your PYTHONPATH and LD_LIBRARY_PATH environment variables +accordingly, as above. + +If the install.py script does not allow you to copy files into system +directories, prefix the python command with "sudo". If you do this, +make sure that the Python that root runs is the same as the Python you +run. E.g. you may need to do something like + +% sudo /usr/local/bin/python install.py \[libdir\] \[pydir\] :pre + +You can also invoke install.py from the make command in the src +directory as + +% make install-python :pre + +In this mode you cannot append optional arguments. Again, you may +need to prefix this with "sudo". In this mode you cannot control +which Python is invoked by root. + +Note that if you want Python to be able to load different versions of +the LAMMPS shared library (see "this section"_#py_5 below), you will +need to manually copy files like liblammps_g++.so into the appropriate +system directory. This is not needed if you set the LD_LIBRARY_PATH +environment variable as described above. diff --git a/doc/src/Python_library.txt b/doc/src/Python_library.txt new file mode 100644 index 0000000000..4babbb746c --- /dev/null +++ b/doc/src/Python_library.txt @@ -0,0 +1,256 @@ +"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Python library interface :h3 + +As described previously, the Python interface to LAMMPS consists of a +Python "lammps" module, the source code for which is in +python/lammps.py, which creates a "lammps" object, with a set of +methods that can be invoked on that object. The sample Python code +below assumes you have first imported the "lammps" module in your +Python script, as follows: + +from lammps import lammps :pre + +These are the methods defined by the lammps module. If you look at +the files src/library.cpp and src/library.h you will see they +correspond one-to-one with calls you can make to the LAMMPS library +from a C++ or C or Fortran program, and which are described in +"Section 6.19"_Section_howto.html#howto_19 of the manual. + +The python/examples directory has Python scripts which show how Python +can run LAMMPS, grab data, change it, and put it back into LAMMPS. + +lmp = lammps() # create a LAMMPS object using the default liblammps.so library + # 4 optional args are allowed: name, cmdargs, ptr, comm +lmp = lammps(ptr=lmpptr) # use lmpptr as previously created LAMMPS object +lmp = lammps(comm=split) # create a LAMMPS object with a custom communicator, requires mpi4py 2.0.0 or later +lmp = lammps(name="g++") # create a LAMMPS object using the liblammps_g++.so library +lmp = lammps(name="g++",cmdargs=list) # add LAMMPS command-line args, e.g. list = \["-echo","screen"\] :pre + +lmp.close() # destroy a LAMMPS object :pre + +version = lmp.version() # return the numerical version id, e.g. LAMMPS 2 Sep 2015 -> 20150902 :pre + +lmp.file(file) # run an entire input script, file = "in.lj" +lmp.command(cmd) # invoke a single LAMMPS command, cmd = "run 100" +lmp.commands_list(cmdlist) # invoke commands in cmdlist = ["run 10", "run 20"] +lmp.commands_string(multicmd) # invoke commands in multicmd = "run 10\nrun 20" :pre + +size = lmp.extract_setting(name) # return data type info :pre + +xlo = lmp.extract_global(name,type) # extract a global quantity + # name = "boxxlo", "nlocal", etc + # type = 0 = int + # 1 = double :pre + +boxlo,boxhi,xy,yz,xz,periodicity,box_change = lmp.extract_box() # extract box info :pre + +coords = lmp.extract_atom(name,type) # extract a per-atom quantity + # name = "x", "type", etc + # type = 0 = vector of ints + # 1 = array of ints + # 2 = vector of doubles + # 3 = array of doubles :pre + +eng = lmp.extract_compute(id,style,type) # extract value(s) from a compute +v3 = lmp.extract_fix(id,style,type,i,j) # extract value(s) from a fix + # id = ID of compute or fix + # style = 0 = global data + # 1 = per-atom data + # 2 = local data + # type = 0 = scalar + # 1 = vector + # 2 = array + # i,j = indices of value in global vector or array :pre + +var = lmp.extract_variable(name,group,flag) # extract value(s) from a variable + # name = name of variable + # group = group ID (ignored for equal-style variables) + # flag = 0 = equal-style variable + # 1 = atom-style variable :pre + +value = lmp.get_thermo(name) # return current value of a thermo keyword +natoms = lmp.get_natoms() # total # of atoms as int :pre + +flag = lmp.set_variable(name,value) # set existing named string-style variable to value, flag = 0 if successful +lmp.reset_box(boxlo,boxhi,xy,yz,xz) # reset the simulation box size :pre + +data = lmp.gather_atoms(name,type,count) # return per-atom property of all atoms gathered into data, ordered by atom ID + # name = "x", "charge", "type", etc +data = lmp.gather_atoms_concat(name,type,count) # ditto, but concatenated atom values from each proc (unordered) +data = lmp.gather_atoms_subset(name,type,count,ndata,ids) # ditto, but for subset of Ndata atoms with IDs :pre + +lmp.scatter_atoms(name,type,count,data) # scatter per-atom property to all atoms from data, ordered by atom ID + # name = "x", "charge", "type", etc + # count = # of per-atom values, 1 or 3, etc :pre +lmp.scatter_atoms_subset(name,type,count,ndata,ids,data) # ditto, but for subset of Ndata atoms with IDs :pre + +lmp.create_atoms(n,ids,types,x,v,image,shrinkexceed) # create N atoms with IDs, types, x, v, and image flags :pre + +:line + +The lines + +from lammps import lammps +lmp = lammps() :pre + +create an instance of LAMMPS, wrapped in a Python class by the lammps +Python module, and return an instance of the Python class as lmp. It +is used to make all subsequent calls to the LAMMPS library. + +Additional arguments to lammps() can be used to tell Python the name +of the shared library to load or to pass arguments to the LAMMPS +instance, the same as if LAMMPS were launched from a command-line +prompt. + +If the ptr argument is set like this: + +lmp = lammps(ptr=lmpptr) :pre + +then lmpptr must be an argument passed to Python via the LAMMPS +"python"_python.html command, when it is used to define a Python +function that is invoked by the LAMMPS input script. This mode of +calling Python from LAMMPS is described in the "Python +call"_Python_call.html doc page. The variable lmpptr refers to the +instance of LAMMPS that called the embedded Python interpreter. Using +it as an argument to lammps() allows the returned Python class +instance "lmp" to make calls to that instance of LAMMPS. See the +"python"_python.html command doc page for examples using this syntax. + +Note that you can create multiple LAMMPS objects in your Python +script, and coordinate and run multiple simulations, e.g. + +from lammps import lammps +lmp1 = lammps() +lmp2 = lammps() +lmp1.file("in.file1") +lmp2.file("in.file2") :pre + +The file(), command(), commands_list(), commands_string() methods +allow an input script, a single command, or multiple commands to be +invoked. + +The extract_setting(), extract_global(), extract_box(), +extract_atom(), extract_compute(), extract_fix(), and +extract_variable() methods return values or pointers to data +structures internal to LAMMPS. + +For extract_global() see the src/library.cpp file for the list of +valid names. New names could easily be added. A double or integer is +returned. You need to specify the appropriate data type via the type +argument. + +For extract_atom(), a pointer to internal LAMMPS atom-based data is +returned, which you can use via normal Python subscripting. See the +extract() method in the src/atom.cpp file for a list of valid names. +Again, new names could easily be added if the property you want is not +listed. A pointer to a vector of doubles or integers, or a pointer to +an array of doubles (double **) or integers (int **) is returned. You +need to specify the appropriate data type via the type argument. + +For extract_compute() and extract_fix(), the global, per-atom, or +local data calculated by the compute or fix can be accessed. What is +returned depends on whether the compute or fix calculates a scalar or +vector or array. For a scalar, a single double value is returned. If +the compute or fix calculates a vector or array, a pointer to the +internal LAMMPS data is returned, which you can use via normal Python +subscripting. The one exception is that for a fix that calculates a +global vector or array, a single double value from the vector or array +is returned, indexed by I (vector) or I and J (array). I,J are +zero-based indices. The I,J arguments can be left out if not needed. +See "Section 6.15"_Section_howto.html#howto_15 of the manual for a +discussion of global, per-atom, and local data, and of scalar, vector, +and array data types. See the doc pages for individual +"computes"_compute.html and "fixes"_fix.html for a description of what +they calculate and store. + +For extract_variable(), an "equal-style or atom-style +variable"_variable.html is evaluated and its result returned. + +For equal-style variables a single double value is returned and the +group argument is ignored. For atom-style variables, a vector of +doubles is returned, one value per atom, which you can use via normal +Python subscripting. The values will be zero for atoms not in the +specified group. + +The get_thermo() method returns returns the current value of a thermo +keyword as a float. + +The get_natoms() method returns the total number of atoms in the +simulation, as an int. + +The set_variable() methosd sets an existing string-style variable to a +new string value, so that subsequent LAMMPS commands can access the +variable. + +The reset_box() emthods resets the size and shape of the simulation +box, e.g. as part of restoring a previously extracted and saved state +of a simulation. + +The gather methods collect peratom info of the requested type (atom +coords, atom types, forces, etc) from all processors, and returns the +same vector of values to each callling processor. The scatter +functions do the inverse. They distribute a vector of peratom values, +passed by all calling processors, to invididual atoms, which may be +owned by different processos. + +Note that the data returned by the gather methods, +e.g. gather_atoms("x"), is different from the data structure returned +by extract_atom("x") in four ways. (1) Gather_atoms() returns a +vector which you index as x\[i\]; extract_atom() returns an array +which you index as x\[i\]\[j\]. (2) Gather_atoms() orders the atoms +by atom ID while extract_atom() does not. (3) Gather_atoms() returns +a list of all atoms in the simulation; extract_atoms() returns just +the atoms local to each processor. (4) Finally, the gather_atoms() +data structure is a copy of the atom coords stored internally in +LAMMPS, whereas extract_atom() returns an array that effectively +points directly to the internal data. This means you can change +values inside LAMMPS from Python by assigning a new values to the +extract_atom() array. To do this with the gather_atoms() vector, you +need to change values in the vector, then invoke the scatter_atoms() +method. + +For the scatter methods, the array of coordinates passed to must be a +ctypes vector of ints or doubles, allocated and initialized something +like this: + +from ctypes import * +natoms = lmp.get_natoms() +n3 = 3*natoms +x = (n3*c_double)() +x\[0\] = x coord of atom with ID 1 +x\[1\] = y coord of atom with ID 1 +x\[2\] = z coord of atom with ID 1 +x\[3\] = x coord of atom with ID 2 +... +x\[n3-1\] = z coord of atom with ID natoms +lmp.scatter_atoms("x",1,3,x) :pre + +Alternatively, you can just change values in the vector returned by +the gather methods, since they are also ctypes vectors. + +:line + +As noted above, these Python class methods correspond one-to-one with +the functions in the LAMMPS library interface in src/library.cpp and +library.h. This means you can extend the Python wrapper via the +following steps: + +Add a new interface function to src/library.cpp and +src/library.h. :ulb,l + +Rebuild LAMMPS as a shared library. :l + +Add a wrapper method to python/lammps.py for this interface +function. :l + +You should now be able to invoke the new interface function from a +Python script. :l +:ule diff --git a/doc/src/Python_mpi.txt b/doc/src/Python_mpi.txt new file mode 100644 index 0000000000..8377bbb3d0 --- /dev/null +++ b/doc/src/Python_mpi.txt @@ -0,0 +1,67 @@ +"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Extending Python to run in parallel :h3 + +If you wish to run LAMMPS in parallel from Python, you need to extend +your Python with an interface to MPI. This also allows you to +make MPI calls directly from Python in your script, if you desire. + +We recommend use of mpi4py: + +"PyPar"_https://github.com/daleroberts/pypar :ul + +As of version 2.0.0 it allows passing a custom MPI communicator to +the LAMMPS constructor, which means one can easily run one or more +LAMMPS instances on subsets of the total MPI ranks. + +To install mpi4py (version mpi4py-2.0.0 as of Oct 2015), unpack it +and from its main directory, type + +python setup.py build +sudo python setup.py install :pre + +Again, the "sudo" is only needed if required to copy mpi4py files into +your Python distribution's site-packages directory. To install with +user privilege into the user local directory type + +python setup.py install --user :pre + +If you have successfully installed mpi4py, you should be able to run +Python and type + +from mpi4py import MPI :pre + +without error. You should also be able to run python in parallel +on a simple test script + +% mpirun -np 4 python test.py :pre + +where test.py contains the lines + +from mpi4py import MPI +comm = MPI.COMM_WORLD +print "Proc %d out of %d procs" % (comm.Get_rank(),comm.Get_size()) :pre + +and see one line of output for each processor you run on. + +NOTE: To use mpi4py and LAMMPS in parallel from Python, you must +insure both are using the same version of MPI. If you only have one +MPI installed on your system, this is not an issue, but it can be if +you have multiple MPIs. Your LAMMPS build is explicit about which MPI +it is using, since you specify the details in your lo-level +src/MAKE/Makefile.foo file. Mpi4py uses the "mpicc" command to find +information about the MPI it uses to build against. And it tries to +load "libmpi.so" from the LD_LIBRARY_PATH. This may or may not find +the MPI library that LAMMPS is using. If you have problems running +both mpi4py and LAMMPS together, this is an issue you may need to +address, e.g. by moving other MPI installations so that mpi4py finds +the right one. + + diff --git a/doc/src/Python_overview.txt b/doc/src/Python_overview.txt new file mode 100644 index 0000000000..a5d6a469ff --- /dev/null +++ b/doc/src/Python_overview.txt @@ -0,0 +1,35 @@ +"Previous Section"_Examples.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Tools.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands.html#comm) + +:line + +Overview of Python and LAMMPS :h3 + +LAMMPS can work together with Python in three ways. First, Python can +wrap LAMMPS through the its "library interface"_Howto_library.html, so +that a Python script can create one or more instances of LAMMPS and +launch one or more simulations. In Python lingo, this is "extending" +Python with LAMMPS. + +Second, a lower-level Python interface can be used indirectly through +provided PyLammps and IPyLammps wrapper classes, written in Python. +These wrappers try to simplify the usage of LAMMPS in Python by +providing an object-based interface to common LAMMPS functionality. +They also reduces the amount of code necessary to parameterize LAMMPS +scripts through Python and make variables and computes directly +accessible. + +Third, LAMMPS can use the Python interpreter, so that a LAMMPS +input script can invoke Python code directly, and pass information +back-and-forth between the input script and Python functions you +write. This Python code can also callback to LAMMPS to query or change +its attributes. In Python lingo, this is "embedding" Python in +LAMMPS. When used in this mode, Python can perform operations that +the simple LAMMPS input script syntax cannot. + + diff --git a/doc/src/Python_pylammps.txt b/doc/src/Python_pylammps.txt new file mode 100644 index 0000000000..ad5ed192ee --- /dev/null +++ b/doc/src/Python_pylammps.txt @@ -0,0 +1,14 @@ +"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +PyLammps interface :h3 + +PyLammps is a Python wrapper class which can be created on its own or +use an existing lammps Python object. It has its own "PyLammps +Tutorial"_tutorial_pylammps.html doc page. diff --git a/doc/src/Python_run.txt b/doc/src/Python_run.txt new file mode 100644 index 0000000000..03ab2ed3d7 --- /dev/null +++ b/doc/src/Python_run.txt @@ -0,0 +1,40 @@ +"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Run LAMMPS from Python :h3 + +The LAMMPS distribution includes a python directory with all you need +to run LAMMPS from Python. The python/lammps.py file wraps the LAMMPS +library interface, with one wrapper function per LAMMPS library +function. This file makes it is possible to do the following either +from a Python script, or interactively from a Python prompt: create +one or more instances of LAMMPS, invoke LAMMPS commands or give it an +input script, run LAMMPS incrementally, extract LAMMPS results, an +modify internal LAMMPS variables. From a Python script you can do +this in serial or parallel. Running Python interactively in parallel +does not generally work, unless you have a version of Python that +extends Python to enable multiple instances of Python to read what you +type. + +To do all of this, you must first build LAMMPS as a shared library, +then insure that your Python can find the python/lammps.py file and +the shared library. + +Two advantages of using Python to run LAMMPS are how concise the +language is, and that it can be run interactively, enabling rapid +development and debugging. If you use it to mostly invoke costly +operations within LAMMPS, such as running a simulation for a +reasonable number of timesteps, then the overhead cost of invoking +LAMMPS thru Python will be negligible. + +The Python wrapper for LAMMPS uses the "ctypes" package in Python, +which auto-generates the interface code needed between Python and a +set of C-style library functions. Ctypes is part of standard Python +for versions 2.5 and later. You can check which version of Python you +have by simply typing "python" at a shell prompt. diff --git a/doc/src/Python_shlib.txt b/doc/src/Python_shlib.txt new file mode 100644 index 0000000000..1aafbe2e84 --- /dev/null +++ b/doc/src/Python_shlib.txt @@ -0,0 +1,34 @@ +"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Build LAMMPS as a shared library :h3 + +Instructions on how to build LAMMPS as a shared library are given in +"Section 2.4"_Section_start.html#start_4. A shared library is one +that is dynamically loadable, which is what Python requires to wrap +LAMMPS. On Linux this is a library file that ends in ".so", not ".a". + +From the src directory, type + +make foo mode=shlib :pre + +where foo is the machine target name, such as mpi or serial. +This should create the file liblammps_foo.so in the src directory, as +well as a soft link liblammps.so, which is what the Python wrapper will +load by default. Note that if you are building multiple machine +versions of the shared library, the soft link is always set to the +most recently built version. + +NOTE: If you are building LAMMPS with an MPI or FFT library or other +auxiliary libraries (used by various packages), then all of these +extra libraries must also be shared libraries. If the LAMMPS +shared-library build fails with an error complaining about this, see +"Section 2.4"_Section_start.html#start_4 for more details. + +Also include CMake info on this diff --git a/doc/src/Python_test.txt b/doc/src/Python_test.txt new file mode 100644 index 0000000000..5f361a500b --- /dev/null +++ b/doc/src/Python_test.txt @@ -0,0 +1,131 @@ +"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Test the Python/LAMMPS interface :h3 + +To test if LAMMPS is callable from Python, launch Python interactively +and type: + +>>> from lammps import lammps +>>> lmp = lammps() :pre + +If you get no errors, you're ready to use LAMMPS from Python. If the +2nd command fails, the most common error to see is + +OSError: Could not load LAMMPS dynamic library :pre + +which means Python was unable to load the LAMMPS shared library. This +typically occurs if the system can't find the LAMMPS shared library or +one of the auxiliary shared libraries it depends on, or if something +about the library is incompatible with your Python. The error message +should give you an indication of what went wrong. + +You can also test the load directly in Python as follows, without +first importing from the lammps.py file: + +>>> from ctypes import CDLL +>>> CDLL("liblammps.so") :pre + +If an error occurs, carefully go thru the steps in "Section +2.4"_Section_start.html#start_4 and above about building a shared +library and about insuring Python can find the necessary two files +it needs. + +[Test LAMMPS and Python in serial:] :h4 + +To run a LAMMPS test in serial, type these lines into Python +interactively from the bench directory: + +>>> from lammps import lammps +>>> lmp = lammps() +>>> lmp.file("in.lj") :pre + +Or put the same lines in the file test.py and run it as + +% python test.py :pre + +Either way, you should see the results of running the in.lj benchmark +on a single processor appear on the screen, the same as if you had +typed something like: + +lmp_g++ -in in.lj :pre + +[Test LAMMPS and Python in parallel:] :h4 + +To run LAMMPS in parallel, assuming you have installed the +"PyPar"_https://github.com/daleroberts/pypar package as discussed +above, create a test.py file containing these lines: + +import pypar +from lammps import lammps +lmp = lammps() +lmp.file("in.lj") +print "Proc %d out of %d procs has" % (pypar.rank(),pypar.size()),lmp +pypar.finalize() :pre + +To run LAMMPS in parallel, assuming you have installed the +"mpi4py"_https://bitbucket.org/mpi4py/mpi4py package as discussed +above, create a test.py file containing these lines: + +from mpi4py import MPI +from lammps import lammps +lmp = lammps() +lmp.file("in.lj") +me = MPI.COMM_WORLD.Get_rank() +nprocs = MPI.COMM_WORLD.Get_size() +print "Proc %d out of %d procs has" % (me,nprocs),lmp +MPI.Finalize() :pre + +You can either script in parallel as: + +% mpirun -np 4 python test.py :pre + +and you should see the same output as if you had typed + +% mpirun -np 4 lmp_g++ -in in.lj :pre + +Note that if you leave out the 3 lines from test.py that specify PyPar +commands you will instantiate and run LAMMPS independently on each of +the P processors specified in the mpirun command. In this case you +should get 4 sets of output, each showing that a LAMMPS run was made +on a single processor, instead of one set of output showing that +LAMMPS ran on 4 processors. If the 1-processor outputs occur, it +means that PyPar is not working correctly. + +Also note that once you import the PyPar module, PyPar initializes MPI +for you, and you can use MPI calls directly in your Python script, as +described in the PyPar documentation. The last line of your Python +script should be pypar.finalize(), to insure MPI is shut down +correctly. + +[Running Python scripts:] :h4 + +Note that any Python script (not just for LAMMPS) can be invoked in +one of several ways: + +% python foo.script +% python -i foo.script +% foo.script :pre + +The last command requires that the first line of the script be +something like this: + +#!/usr/local/bin/python +#!/usr/local/bin/python -i :pre + +where the path points to where you have Python installed, and that you +have made the script file executable: + +% chmod +x foo.script :pre + +Without the "-i" flag, Python will exit when the script finishes. +With the "-i" flag, you will be left in the Python interpreter when +the script finishes, so you can type subsequent commands. As +mentioned above, you can only run Python interactively when running +Python on a single processor, not in parallel. diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index a44013f5f1..7b9349a233 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -67,7 +67,7 @@ values are not desired, the "processors"_processors.html and tell LAMMPS how to map processors to the simulation box. Many input script errors are detected by LAMMPS and an ERROR or -WARNING message is printed. "This section"_Section_errors.html gives +WARNING message is printed. The "Errors"_Errors.html doc page gives more information on what errors mean. The documentation for each command lists restrictions on how the command can be used. diff --git a/doc/src/Section_history.txt b/doc/src/Section_history.txt index 7b90410628..6bbd1e4d99 100644 --- a/doc/src/Section_history.txt +++ b/doc/src/Section_history.txt @@ -1,4 +1,4 @@ -"Previous Section"_Section_errors.html - "LAMMPS WWW Site"_lws - +"Previous Section"_Errors.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Manual.html :c diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt index 0a31fc2b48..3c5fe47057 100644 --- a/doc/src/Section_howto.txt +++ b/doc/src/Section_howto.txt @@ -731,10 +731,10 @@ any other language that supports a vanilla C-like interface). For example, from C++ you could create one (or more) "instances" of LAMMPS, pass it an input script to process, or execute individual commands, all by invoking the correct class methods in LAMMPS. From C -or Fortran you can make function calls to do the same things. See -"Section 11"_Section_python.html of the manual for a description -of the Python wrapper provided with LAMMPS that operates through the -LAMMPS library interface. +or Fortran you can make function calls to do the same things. See the +"Python"_Python.html doc page for a description of the Python wrapper +provided with LAMMPS that operates through the LAMMPS library +interface. The files src/library.cpp and library.h contain the C-style interface to LAMMPS. See "Section 6.19"_Section_howto.html#howto_19 of the @@ -1843,10 +1843,10 @@ converge and requires careful post-processing "(Shinoda)"_#Shinoda1 6.19 Library interface to LAMMPS :link(howto_19),h4 -As described in "Section 2.5"_Section_start.html#start_5, LAMMPS -can be built as a library, so that it can be called by another code, -used in a "coupled manner"_Section_howto.html#howto_10 with other -codes, or driven through a "Python interface"_Section_python.html. +As described in "Section 2.5"_Section_start.html#start_5, LAMMPS can +be built as a library, so that it can be called by another code, used +in a "coupled manner"_Section_howto.html#howto_10 with other codes, or +driven through a "Python interface"_Python.html. All of these methodologies use a C-style interface to LAMMPS that is provided in the files src/library.cpp and src/library.h. The @@ -1869,9 +1869,9 @@ details. NOTE: You can write code for additional functions as needed to define how your code talks to LAMMPS and add them to src/library.cpp and -src/library.h, as well as to the "Python -interface"_Section_python.html. The added functions can access or -change any internal LAMMPS data you wish. +src/library.h, as well as to the "Python interface"_Python.html. The +added functions can access or change any internal LAMMPS data you +wish. void lammps_open(int, char **, MPI_Comm, void **) void lammps_open_no_mpi(int, char **, void **) diff --git a/doc/src/Section_intro.txt b/doc/src/Section_intro.txt index fa2ab0e768..c7cf5bf8d2 100644 --- a/doc/src/Section_intro.txt +++ b/doc/src/Section_intro.txt @@ -1,4 +1,6 @@ -"Previous Section"_Manual.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_start.html :c +"Previous Section"_Manual.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Section_start.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -429,7 +431,7 @@ Site"_lws, or have a suggestion for something to clarify or include, send an email to the "developers"_http://lammps.sandia.gov/authors.html. :l -If you find a bug, "Section 12.2"_Section_errors.html#err_2 +If you find a bug, the "Errors bugs"_Errors_bugs.html doc page describes how to report it. :l If you publish a paper using LAMMPS results, send the citation (and diff --git a/doc/src/Section_packages.txt b/doc/src/Section_packages.txt index 77f56d273c..340a77310d 100644 --- a/doc/src/Section_packages.txt +++ b/doc/src/Section_packages.txt @@ -1178,10 +1178,10 @@ PYTHON package :link(PYTHON),h4 A "python"_python.html command which allow you to execute Python code from a LAMMPS input script. The code can be in a separate file or -embedded in the input script itself. See "Section -11.2"_Section_python.html#py_2 for an overview of using Python from -LAMMPS in this manner and the entire section for other ways to use -LAMMPS and Python together. +embedded in the input script itself. See the "Python +call"_Python_call.html doc page for an overview of using Python from +LAMMPS in this manner and the "Python"_Python.html doc page for other +ways to use LAMMPS and Python together. [Install or un-install:] @@ -1202,7 +1202,7 @@ to Makefile.lammps) if the LAMMPS build fails. [Supporting info:] src/PYTHON: filenames -> commands -"Section 11"_Section_python.html +"Python call"_Python_call.html lib/python/README examples/python :ul diff --git a/doc/src/Section_python.txt b/doc/src/Section_python.txt deleted file mode 100644 index c9b0bd8b2e..0000000000 --- a/doc/src/Section_python.txt +++ /dev/null @@ -1,869 +0,0 @@ -"Previous Section"_Modify.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_errors.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -11. Python interface to LAMMPS :h2 - -LAMMPS can work together with Python in three ways. First, Python can -wrap LAMMPS through the "LAMMPS library -interface"_Section_howto.html#howto_19, so that a Python script can -create one or more instances of LAMMPS and launch one or more -simulations. In Python lingo, this is "extending" Python with LAMMPS. - -Second, the low-level Python interface can be used indirectly through the -PyLammps and IPyLammps wrapper classes in Python. These wrappers try to -simplify the usage of LAMMPS in Python by providing an object-based interface -to common LAMMPS functionality. It also reduces the amount of code necessary to -parameterize LAMMPS scripts through Python and makes variables and computes -directly accessible. See "PyLammps interface"_#py_9 for more details. - -Third, LAMMPS can use the Python interpreter, so that a LAMMPS input -script can invoke Python code, and pass information back-and-forth -between the input script and Python functions you write. The Python -code can also callback to LAMMPS to query or change its attributes. -In Python lingo, this is "embedding" Python in LAMMPS. - -This section describes how to use these three approaches. - -11.1 "Overview of running LAMMPS from Python"_#py_1 -11.2 "Overview of using Python from a LAMMPS script"_#py_2 -11.3 "Building LAMMPS as a shared library"_#py_3 -11.4 "Installing the Python wrapper into Python"_#py_4 -11.5 "Extending Python with MPI to run in parallel"_#py_5 -11.6 "Testing the Python-LAMMPS interface"_#py_6 -11.7 "Using LAMMPS from Python"_#py_7 -11.8 "Example Python scripts that use LAMMPS"_#py_8 -11.9 "PyLammps interface"_#py_9 :ul - -If you are not familiar with it, "Python"_http://www.python.org is a -powerful scripting and programming language which can essentially do -anything that faster, lower-level languages like C or C++ can do, but -typically with much fewer lines of code. When used in embedded mode, -Python can perform operations that the simplistic LAMMPS input script -syntax cannot. Python can be also be used as a "glue" language to -drive a program through its library interface, or to hook multiple -pieces of software together, such as a simulation package plus a -visualization package, or to run a coupled multiscale or multiphysics -model. - -See "Section 6.10"_Section_howto.html#howto_10 of the manual and -the couple directory of the distribution for more ideas about coupling -LAMMPS to other codes. See "Section -6.19"_Section_howto.html#howto_19 for a description of the LAMMPS -library interface provided in src/library.cpp and src/library.h, and -how to extend it for your needs. As described below, that interface -is what is exposed to Python either when calling LAMMPS from Python or -when calling Python from a LAMMPS input script and then calling back -to LAMMPS from Python code. The library interface is designed to be -easy to add functions to. Thus the Python interface to LAMMPS is also -easy to extend as well. - -If you create interesting Python scripts that run LAMMPS or -interesting Python functions that can be called from a LAMMPS input -script, that you think would be useful to other users, please "email -them to the developers"_http://lammps.sandia.gov/authors.html. We can -include them in the LAMMPS distribution. - -:line -:line - -11.1 Overview of running LAMMPS from Python :link(py_1),h4 - -The LAMMPS distribution includes a python directory with all you need -to run LAMMPS from Python. The python/lammps.py file wraps the LAMMPS -library interface, with one wrapper function per LAMMPS library -function. This file makes it is possible to do the following either -from a Python script, or interactively from a Python prompt: create -one or more instances of LAMMPS, invoke LAMMPS commands or give it an -input script, run LAMMPS incrementally, extract LAMMPS results, an -modify internal LAMMPS variables. From a Python script you can do -this in serial or parallel. Running Python interactively in parallel -does not generally work, unless you have a version of Python that -extends standard Python to enable multiple instances of Python to read -what you type. - -To do all of this, you must first build LAMMPS as a shared library, -then insure that your Python can find the python/lammps.py file and -the shared library. These steps are explained in subsequent sections -11.3 and 11.4. Sections 11.5 and 11.6 discuss using MPI from a -parallel Python program and how to test that you are ready to use -LAMMPS from Python. Section 11.7 lists all the functions in the -current LAMMPS library interface and how to call them from Python. - -Section 11.8 gives some examples of coupling LAMMPS to other tools via -Python. For example, LAMMPS can easily be coupled to a GUI or other -visualization tools that display graphs or animations in real time as -LAMMPS runs. Examples of such scripts are included in the python -directory. - -Two advantages of using Python to run LAMMPS are how concise the -language is, and that it can be run interactively, enabling rapid -development and debugging of programs. If you use it to mostly invoke -costly operations within LAMMPS, such as running a simulation for a -reasonable number of timesteps, then the overhead cost of invoking -LAMMPS thru Python will be negligible. - -The Python wrapper for LAMMPS uses the amazing and magical (to me) -"ctypes" package in Python, which auto-generates the interface code -needed between Python and a set of C interface routines for a library. -Ctypes is part of standard Python for versions 2.5 and later. You can -check which version of Python you have installed, by simply typing -"python" at a shell prompt. - -:line - -11.2 Overview of using Python from a LAMMPS script :link(py_2),h4 - -LAMMPS has several commands which can be used to invoke Python -code directly from an input script: - -"python"_python.html -"variable python"_variable.html -"fix python/invoke"_fix_python_invoke.html -"pair_style python"_pair_python.html :ul - -The "python"_python.html command which can be used to define and -execute a Python function that you write the code for. The Python -function can also be assigned to a LAMMPS python-style variable via -the "variable"_variable.html command. Each time the variable is -evaluated, either in the LAMMPS input script itself, or by another -LAMMPS command that uses the variable, this will trigger the Python -function to be invoked. - -The Python code for the function can be included directly in the input -script or in an auxiliary file. The function can have arguments which -are mapped to LAMMPS variables (also defined in the input script) and -it can return a value to a LAMMPS variable. This is thus a mechanism -for your input script to pass information to a piece of Python code, -ask Python to execute the code, and return information to your input -script. - -Note that a Python function can be arbitrarily complex. It can import -other Python modules, instantiate Python classes, call other Python -functions, etc. The Python code that you provide can contain more -code than the single function. It can contain other functions or -Python classes, as well as global variables or other mechanisms for -storing state between calls from LAMMPS to the function. - -The Python function you provide can consist of "pure" Python code that -only performs operations provided by standard Python. However, the -Python function can also "call back" to LAMMPS through its -Python-wrapped library interface, in the manner described in the -previous section 11.1. This means it can issue LAMMPS input script -commands or query and set internal LAMMPS state. As an example, this -can be useful in an input script to create a more complex loop with -branching logic, than can be created using the simple looping and -branching logic enabled by the "next"_next.html and "if"_if.html -commands. - -See the "python"_python.html doc page and the "variable"_variable.html -doc page for its python-style variables for more info, including -examples of Python code you can write for both pure Python operations -and callbacks to LAMMPS. - -The "fix python/invoke"_fix_python_invoke.html command can execute -Python code at selected timesteps during a simulation run. - -The "pair_style python"_pair_python command allows you to define -pairwise potentials as python code which encodes a single pairwise -interaction. This is useful for rapid-developement and debugging of a -new potential. - -To use any of these commands, you only need to build LAMMPS with the -PYTHON package installed: - -make yes-python -make machine :pre - -Note that this will link LAMMPS with the Python library on your -system, which typically requires several auxiliary system libraries to -also be linked. The list of these libraries and the paths to find -them are specified in the lib/python/Makefile.lammps file. You need -to insure that file contains the correct information for your version -of Python and your machine to successfully build LAMMPS. See the -lib/python/README file for more info. - -If you want to write Python code with callbacks to LAMMPS, then you -must also follow the steps overviewed in the preceding section (11.1) -for running LAMMPS from Python. I.e. you must build LAMMPS as a -shared library and insure that Python can find the python/lammps.py -file and the shared library. - -:line - -11.3 Building LAMMPS as a shared library :link(py_3),h4 - -Instructions on how to build LAMMPS as a shared library are given in -"Section 2.4"_Section_start.html#start_4. A shared library is one -that is dynamically loadable, which is what Python requires to wrap -LAMMPS. On Linux this is a library file that ends in ".so", not ".a". - -From the src directory, type - -make foo mode=shlib :pre - -where foo is the machine target name, such as linux or g++ or serial. -This should create the file liblammps_foo.so in the src directory, as -well as a soft link liblammps.so, which is what the Python wrapper will -load by default. Note that if you are building multiple machine -versions of the shared library, the soft link is always set to the -most recently built version. - -NOTE: If you are building LAMMPS with an MPI or FFT library or other -auxiliary libraries (used by various packages), then all of these -extra libraries must also be shared libraries. If the LAMMPS -shared-library build fails with an error complaining about this, see -"Section 2.4"_Section_start.html#start_4 for more details. - -:line - -11.4 Installing the Python wrapper into Python :link(py_4),h4 - -For Python to invoke LAMMPS, there are 2 files it needs to know about: - -python/lammps.py -src/liblammps.so :ul - -Lammps.py is the Python wrapper on the LAMMPS library interface. -Liblammps.so is the shared LAMMPS library that Python loads, as -described above. - -You can insure Python can find these files in one of two ways: - -set two environment variables -run the python/install.py script :ul - -If you set the paths to these files as environment variables, you only -have to do it once. For the csh or tcsh shells, add something like -this to your ~/.cshrc file, one line for each of the two files: - -setenv PYTHONPATH $\{PYTHONPATH\}:/home/sjplimp/lammps/python -setenv LD_LIBRARY_PATH $\{LD_LIBRARY_PATH\}:/home/sjplimp/lammps/src :pre - -If you use the python/install.py script, you need to invoke it every -time you rebuild LAMMPS (as a shared library) or make changes to the -python/lammps.py file. - -You can invoke install.py from the python directory as - -% python install.py \[libdir\] \[pydir\] :pre - -The optional libdir is where to copy the LAMMPS shared library to; the -default is /usr/local/lib. The optional pydir is where to copy the -lammps.py file to; the default is the site-packages directory of the -version of Python that is running the install script. - -Note that libdir must be a location that is in your default -LD_LIBRARY_PATH, like /usr/local/lib or /usr/lib. And pydir must be a -location that Python looks in by default for imported modules, like -its site-packages dir. If you want to copy these files to -non-standard locations, such as within your own user space, you will -need to set your PYTHONPATH and LD_LIBRARY_PATH environment variables -accordingly, as above. - -If the install.py script does not allow you to copy files into system -directories, prefix the python command with "sudo". If you do this, -make sure that the Python that root runs is the same as the Python you -run. E.g. you may need to do something like - -% sudo /usr/local/bin/python install.py \[libdir\] \[pydir\] :pre - -You can also invoke install.py from the make command in the src -directory as - -% make install-python :pre - -In this mode you cannot append optional arguments. Again, you may -need to prefix this with "sudo". In this mode you cannot control -which Python is invoked by root. - -Note that if you want Python to be able to load different versions of -the LAMMPS shared library (see "this section"_#py_5 below), you will -need to manually copy files like liblammps_g++.so into the appropriate -system directory. This is not needed if you set the LD_LIBRARY_PATH -environment variable as described above. - -:line - -11.5 Extending Python with MPI to run in parallel :link(py_5),h4 - -If you wish to run LAMMPS in parallel from Python, you need to extend -your Python with an interface to MPI. This also allows you to -make MPI calls directly from Python in your script, if you desire. - -There are several Python packages available that purport to wrap MPI -as a library and allow MPI functions to be called from Python. However, -development on most of them seems to be halted except on: - -"mpi4py"_https://bitbucket.org/mpi4py/mpi4py -"PyPar"_https://github.com/daleroberts/pypar :ul - -Both packages, PyPar and mpi4py have been successfully tested with -LAMMPS. PyPar is simpler and easy to set up and use, but supports -only a subset of MPI. Mpi4py is more MPI-feature complete, but also a -bit more complex to use. As of version 2.0.0, mpi4py is the only -python MPI wrapper that allows passing a custom MPI communicator to -the LAMMPS constructor, which means one can easily run one or more -LAMMPS instances on subsets of the total MPI ranks. - -:line - -PyPar requires the ubiquitous "Numpy package"_http://numpy.scipy.org -be installed in your Python. After launching Python, type - -import numpy :pre - -to see if it is installed. If not, here is how to install it (version -1.3.0b1 as of April 2009). Unpack the numpy tarball and from its -top-level directory, type - -python setup.py build -sudo python setup.py install :pre - -The "sudo" is only needed if required to copy Numpy files into your -Python distribution's site-packages directory. - -To install PyPar (version pypar-2.1.4_94 as of Aug 2012), unpack it -and from its "source" directory, type - -python setup.py build -sudo python setup.py install :pre - -Again, the "sudo" is only needed if required to copy PyPar files into -your Python distribution's site-packages directory. - -If you have successfully installed PyPar, you should be able to run -Python and type - -import pypar :pre - -without error. You should also be able to run python in parallel -on a simple test script - -% mpirun -np 4 python test.py :pre - -where test.py contains the lines - -import pypar -print "Proc %d out of %d procs" % (pypar.rank(),pypar.size()) :pre - -and see one line of output for each processor you run on. - -NOTE: To use PyPar and LAMMPS in parallel from Python, you must insure -both are using the same version of MPI. If you only have one MPI -installed on your system, this is not an issue, but it can be if you -have multiple MPIs. Your LAMMPS build is explicit about which MPI it -is using, since you specify the details in your lo-level -src/MAKE/Makefile.foo file. PyPar uses the "mpicc" command to find -information about the MPI it uses to build against. And it tries to -load "libmpi.so" from the LD_LIBRARY_PATH. This may or may not find -the MPI library that LAMMPS is using. If you have problems running -both PyPar and LAMMPS together, this is an issue you may need to -address, e.g. by moving other MPI installations so that PyPar finds -the right one. - -:line - -To install mpi4py (version mpi4py-2.0.0 as of Oct 2015), unpack it -and from its main directory, type - -python setup.py build -sudo python setup.py install :pre - -Again, the "sudo" is only needed if required to copy mpi4py files into -your Python distribution's site-packages directory. To install with -user privilege into the user local directory type - -python setup.py install --user :pre - -If you have successfully installed mpi4py, you should be able to run -Python and type - -from mpi4py import MPI :pre - -without error. You should also be able to run python in parallel -on a simple test script - -% mpirun -np 4 python test.py :pre - -where test.py contains the lines - -from mpi4py import MPI -comm = MPI.COMM_WORLD -print "Proc %d out of %d procs" % (comm.Get_rank(),comm.Get_size()) :pre - -and see one line of output for each processor you run on. - -NOTE: To use mpi4py and LAMMPS in parallel from Python, you must -insure both are using the same version of MPI. If you only have one -MPI installed on your system, this is not an issue, but it can be if -you have multiple MPIs. Your LAMMPS build is explicit about which MPI -it is using, since you specify the details in your lo-level -src/MAKE/Makefile.foo file. Mpi4py uses the "mpicc" command to find -information about the MPI it uses to build against. And it tries to -load "libmpi.so" from the LD_LIBRARY_PATH. This may or may not find -the MPI library that LAMMPS is using. If you have problems running -both mpi4py and LAMMPS together, this is an issue you may need to -address, e.g. by moving other MPI installations so that mpi4py finds -the right one. - -:line - -11.6 Testing the Python-LAMMPS interface :link(py_6),h4 - -To test if LAMMPS is callable from Python, launch Python interactively -and type: - ->>> from lammps import lammps ->>> lmp = lammps() :pre - -If you get no errors, you're ready to use LAMMPS from Python. If the -2nd command fails, the most common error to see is - -OSError: Could not load LAMMPS dynamic library :pre - -which means Python was unable to load the LAMMPS shared library. This -typically occurs if the system can't find the LAMMPS shared library or -one of the auxiliary shared libraries it depends on, or if something -about the library is incompatible with your Python. The error message -should give you an indication of what went wrong. - -You can also test the load directly in Python as follows, without -first importing from the lammps.py file: - ->>> from ctypes import CDLL ->>> CDLL("liblammps.so") :pre - -If an error occurs, carefully go thru the steps in "Section -2.4"_Section_start.html#start_4 and above about building a shared -library and about insuring Python can find the necessary two files -it needs. - -[Test LAMMPS and Python in serial:] :h4 - -To run a LAMMPS test in serial, type these lines into Python -interactively from the bench directory: - ->>> from lammps import lammps ->>> lmp = lammps() ->>> lmp.file("in.lj") :pre - -Or put the same lines in the file test.py and run it as - -% python test.py :pre - -Either way, you should see the results of running the in.lj benchmark -on a single processor appear on the screen, the same as if you had -typed something like: - -lmp_g++ -in in.lj :pre - -[Test LAMMPS and Python in parallel:] :h4 - -To run LAMMPS in parallel, assuming you have installed the -"PyPar"_https://github.com/daleroberts/pypar package as discussed -above, create a test.py file containing these lines: - -import pypar -from lammps import lammps -lmp = lammps() -lmp.file("in.lj") -print "Proc %d out of %d procs has" % (pypar.rank(),pypar.size()),lmp -pypar.finalize() :pre - -To run LAMMPS in parallel, assuming you have installed the -"mpi4py"_https://bitbucket.org/mpi4py/mpi4py package as discussed -above, create a test.py file containing these lines: - -from mpi4py import MPI -from lammps import lammps -lmp = lammps() -lmp.file("in.lj") -me = MPI.COMM_WORLD.Get_rank() -nprocs = MPI.COMM_WORLD.Get_size() -print "Proc %d out of %d procs has" % (me,nprocs),lmp -MPI.Finalize() :pre - -You can either script in parallel as: - -% mpirun -np 4 python test.py :pre - -and you should see the same output as if you had typed - -% mpirun -np 4 lmp_g++ -in in.lj :pre - -Note that if you leave out the 3 lines from test.py that specify PyPar -commands you will instantiate and run LAMMPS independently on each of -the P processors specified in the mpirun command. In this case you -should get 4 sets of output, each showing that a LAMMPS run was made -on a single processor, instead of one set of output showing that -LAMMPS ran on 4 processors. If the 1-processor outputs occur, it -means that PyPar is not working correctly. - -Also note that once you import the PyPar module, PyPar initializes MPI -for you, and you can use MPI calls directly in your Python script, as -described in the PyPar documentation. The last line of your Python -script should be pypar.finalize(), to insure MPI is shut down -correctly. - -[Running Python scripts:] :h4 - -Note that any Python script (not just for LAMMPS) can be invoked in -one of several ways: - -% python foo.script -% python -i foo.script -% foo.script :pre - -The last command requires that the first line of the script be -something like this: - -#!/usr/local/bin/python -#!/usr/local/bin/python -i :pre - -where the path points to where you have Python installed, and that you -have made the script file executable: - -% chmod +x foo.script :pre - -Without the "-i" flag, Python will exit when the script finishes. -With the "-i" flag, you will be left in the Python interpreter when -the script finishes, so you can type subsequent commands. As -mentioned above, you can only run Python interactively when running -Python on a single processor, not in parallel. - -:line -:line - -11.7 Using LAMMPS from Python :link(py_7),h4 - -As described above, the Python interface to LAMMPS consists of a -Python "lammps" module, the source code for which is in -python/lammps.py, which creates a "lammps" object, with a set of -methods that can be invoked on that object. The sample Python code -below assumes you have first imported the "lammps" module in your -Python script, as follows: - -from lammps import lammps :pre - -These are the methods defined by the lammps module. If you look at -the files src/library.cpp and src/library.h you will see they -correspond one-to-one with calls you can make to the LAMMPS library -from a C++ or C or Fortran program, and which are described in -"Section 6.19"_Section_howto.html#howto_19 of the manual. - -The python/examples directory has Python scripts which show how Python -can run LAMMPS, grab data, change it, and put it back into LAMMPS. - -lmp = lammps() # create a LAMMPS object using the default liblammps.so library - # 4 optional args are allowed: name, cmdargs, ptr, comm -lmp = lammps(ptr=lmpptr) # use lmpptr as previously created LAMMPS object -lmp = lammps(comm=split) # create a LAMMPS object with a custom communicator, requires mpi4py 2.0.0 or later -lmp = lammps(name="g++") # create a LAMMPS object using the liblammps_g++.so library -lmp = lammps(name="g++",cmdargs=list) # add LAMMPS command-line args, e.g. list = \["-echo","screen"\] :pre - -lmp.close() # destroy a LAMMPS object :pre - -version = lmp.version() # return the numerical version id, e.g. LAMMPS 2 Sep 2015 -> 20150902 :pre - -lmp.file(file) # run an entire input script, file = "in.lj" -lmp.command(cmd) # invoke a single LAMMPS command, cmd = "run 100" -lmp.commands_list(cmdlist) # invoke commands in cmdlist = ["run 10", "run 20"] -lmp.commands_string(multicmd) # invoke commands in multicmd = "run 10\nrun 20" :pre - -size = lmp.extract_setting(name) # return data type info :pre - -xlo = lmp.extract_global(name,type) # extract a global quantity - # name = "boxxlo", "nlocal", etc - # type = 0 = int - # 1 = double :pre - -boxlo,boxhi,xy,yz,xz,periodicity,box_change = lmp.extract_box() # extract box info :pre - -coords = lmp.extract_atom(name,type) # extract a per-atom quantity - # name = "x", "type", etc - # type = 0 = vector of ints - # 1 = array of ints - # 2 = vector of doubles - # 3 = array of doubles :pre - -eng = lmp.extract_compute(id,style,type) # extract value(s) from a compute -v3 = lmp.extract_fix(id,style,type,i,j) # extract value(s) from a fix - # id = ID of compute or fix - # style = 0 = global data - # 1 = per-atom data - # 2 = local data - # type = 0 = scalar - # 1 = vector - # 2 = array - # i,j = indices of value in global vector or array :pre - -var = lmp.extract_variable(name,group,flag) # extract value(s) from a variable - # name = name of variable - # group = group ID (ignored for equal-style variables) - # flag = 0 = equal-style variable - # 1 = atom-style variable :pre - -value = lmp.get_thermo(name) # return current value of a thermo keyword -natoms = lmp.get_natoms() # total # of atoms as int :pre - -flag = lmp.set_variable(name,value) # set existing named string-style variable to value, flag = 0 if successful -lmp.reset_box(boxlo,boxhi,xy,yz,xz) # reset the simulation box size :pre - -data = lmp.gather_atoms(name,type,count) # return per-atom property of all atoms gathered into data, ordered by atom ID - # name = "x", "charge", "type", etc -data = lmp.gather_atoms_concat(name,type,count) # ditto, but concatenated atom values from each proc (unordered) -data = lmp.gather_atoms_subset(name,type,count,ndata,ids) # ditto, but for subset of Ndata atoms with IDs :pre - -lmp.scatter_atoms(name,type,count,data) # scatter per-atom property to all atoms from data, ordered by atom ID - # name = "x", "charge", "type", etc - # count = # of per-atom values, 1 or 3, etc :pre -lmp.scatter_atoms_subset(name,type,count,ndata,ids,data) # ditto, but for subset of Ndata atoms with IDs :pre - -lmp.create_atoms(n,ids,types,x,v,image,shrinkexceed) # create N atoms with IDs, types, x, v, and image flags :pre - -:line - -The lines - -from lammps import lammps -lmp = lammps() :pre - -create an instance of LAMMPS, wrapped in a Python class by the lammps -Python module, and return an instance of the Python class as lmp. It -is used to make all subsequent calls to the LAMMPS library. - -Additional arguments to lammps() can be used to tell Python the name -of the shared library to load or to pass arguments to the LAMMPS -instance, the same as if LAMMPS were launched from a command-line -prompt. - -If the ptr argument is set like this: - -lmp = lammps(ptr=lmpptr) :pre - -then lmpptr must be an argument passed to Python via the LAMMPS -"python"_python.html command, when it is used to define a Python -function that is invoked by the LAMMPS input script. This mode of -using Python with LAMMPS is described above in 11.2. The variable -lmpptr refers to the instance of LAMMPS that called the embedded -Python interpreter. Using it as an argument to lammps() allows the -returned Python class instance "lmp" to make calls to that instance of -LAMMPS. See the "python"_python.html command doc page for examples -using this syntax. - -Note that you can create multiple LAMMPS objects in your Python -script, and coordinate and run multiple simulations, e.g. - -from lammps import lammps -lmp1 = lammps() -lmp2 = lammps() -lmp1.file("in.file1") -lmp2.file("in.file2") :pre - -The file(), command(), commands_list(), commands_string() methods -allow an input script, a single command, or multiple commands to be -invoked. - -The extract_setting(), extract_global(), extract_box(), -extract_atom(), extract_compute(), extract_fix(), and -extract_variable() methods return values or pointers to data -structures internal to LAMMPS. - -For extract_global() see the src/library.cpp file for the list of -valid names. New names could easily be added. A double or integer is -returned. You need to specify the appropriate data type via the type -argument. - -For extract_atom(), a pointer to internal LAMMPS atom-based data is -returned, which you can use via normal Python subscripting. See the -extract() method in the src/atom.cpp file for a list of valid names. -Again, new names could easily be added if the property you want is not -listed. A pointer to a vector of doubles or integers, or a pointer to -an array of doubles (double **) or integers (int **) is returned. You -need to specify the appropriate data type via the type argument. - -For extract_compute() and extract_fix(), the global, per-atom, or -local data calculated by the compute or fix can be accessed. What is -returned depends on whether the compute or fix calculates a scalar or -vector or array. For a scalar, a single double value is returned. If -the compute or fix calculates a vector or array, a pointer to the -internal LAMMPS data is returned, which you can use via normal Python -subscripting. The one exception is that for a fix that calculates a -global vector or array, a single double value from the vector or array -is returned, indexed by I (vector) or I and J (array). I,J are -zero-based indices. The I,J arguments can be left out if not needed. -See "Section 6.15"_Section_howto.html#howto_15 of the manual for a -discussion of global, per-atom, and local data, and of scalar, vector, -and array data types. See the doc pages for individual -"computes"_compute.html and "fixes"_fix.html for a description of what -they calculate and store. - -For extract_variable(), an "equal-style or atom-style -variable"_variable.html is evaluated and its result returned. - -For equal-style variables a single double value is returned and the -group argument is ignored. For atom-style variables, a vector of -doubles is returned, one value per atom, which you can use via normal -Python subscripting. The values will be zero for atoms not in the -specified group. - -The get_thermo() method returns returns the current value of a thermo -keyword as a float. - -The get_natoms() method returns the total number of atoms in the -simulation, as an int. - -The set_variable() methosd sets an existing string-style variable to a -new string value, so that subsequent LAMMPS commands can access the -variable. - -The reset_box() emthods resets the size and shape of the simulation -box, e.g. as part of restoring a previously extracted and saved state -of a simulation. - -The gather methods collect peratom info of the requested type (atom -coords, atom types, forces, etc) from all processors, and returns the -same vector of values to each callling processor. The scatter -functions do the inverse. They distribute a vector of peratom values, -passed by all calling processors, to invididual atoms, which may be -owned by different processos. - -Note that the data returned by the gather methods, -e.g. gather_atoms("x"), is different from the data structure returned -by extract_atom("x") in four ways. (1) Gather_atoms() returns a -vector which you index as x\[i\]; extract_atom() returns an array -which you index as x\[i\]\[j\]. (2) Gather_atoms() orders the atoms -by atom ID while extract_atom() does not. (3) Gather_atoms() returns -a list of all atoms in the simulation; extract_atoms() returns just -the atoms local to each processor. (4) Finally, the gather_atoms() -data structure is a copy of the atom coords stored internally in -LAMMPS, whereas extract_atom() returns an array that effectively -points directly to the internal data. This means you can change -values inside LAMMPS from Python by assigning a new values to the -extract_atom() array. To do this with the gather_atoms() vector, you -need to change values in the vector, then invoke the scatter_atoms() -method. - -For the scatter methods, the array of coordinates passed to must be a -ctypes vector of ints or doubles, allocated and initialized something -like this: - -from ctypes import * -natoms = lmp.get_natoms() -n3 = 3*natoms -x = (n3*c_double)() -x\[0\] = x coord of atom with ID 1 -x\[1\] = y coord of atom with ID 1 -x\[2\] = z coord of atom with ID 1 -x\[3\] = x coord of atom with ID 2 -... -x\[n3-1\] = z coord of atom with ID natoms -lmp.scatter_atoms("x",1,3,x) :pre - -Alternatively, you can just change values in the vector returned by -the gather methods, since they are also ctypes vectors. - -:line - -As noted above, these Python class methods correspond one-to-one with -the functions in the LAMMPS library interface in src/library.cpp and -library.h. This means you can extend the Python wrapper via the -following steps: - -Add a new interface function to src/library.cpp and -src/library.h. :ulb,l - -Rebuild LAMMPS as a shared library. :l - -Add a wrapper method to python/lammps.py for this interface -function. :l - -You should now be able to invoke the new interface function from a -Python script. Isn't ctypes amazing? :l -:ule - -:line -:line - -11.8 Example Python scripts that use LAMMPS :link(py_8),h4 - -These are the Python scripts included as demos in the python/examples -directory of the LAMMPS distribution, to illustrate the kinds of -things that are possible when Python wraps LAMMPS. If you create your -own scripts, send them to us and we can include them in the LAMMPS -distribution. - -trivial.py, read/run a LAMMPS input script thru Python, -demo.py, invoke various LAMMPS library interface routines, -simple.py, run in parallel, similar to examples/COUPLE/simple/simple.cpp, -split.py, same as simple.py but running in parallel on a subset of procs, -gui.py, GUI go/stop/temperature-slider to control LAMMPS, -plot.py, real-time temperature plot with GnuPlot via Pizza.py, -viz_tool.py, real-time viz via some viz package, -vizplotgui_tool.py, combination of viz_tool.py and plot.py and gui.py :tb(c=2) - -:line - -For the viz_tool.py and vizplotgui_tool.py commands, replace "tool" -with "gl" or "atomeye" or "pymol" or "vmd", depending on what -visualization package you have installed. - -Note that for GL, you need to be able to run the Pizza.py GL tool, -which is included in the pizza sub-directory. See the "Pizza.py doc -pages"_pizza for more info: - -:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) - -Note that for AtomEye, you need version 3, and there is a line in the -scripts that specifies the path and name of the executable. See the -AtomEye WWW pages "here"_atomeye or "here"_atomeye3 for more details: - -http://mt.seas.upenn.edu/Archive/Graphics/A -http://mt.seas.upenn.edu/Archive/Graphics/A3/A3.html :pre - -:link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A) -:link(atomeye3,http://mt.seas.upenn.edu/Archive/Graphics/A3/A3.html) - -The latter link is to AtomEye 3 which has the scriping -capability needed by these Python scripts. - -Note that for PyMol, you need to have built and installed the -open-source version of PyMol in your Python, so that you can import it -from a Python script. See the PyMol WWW pages "here"_pymolhome or -"here"_pymolopen for more details: - -http://www.pymol.org -http://sourceforge.net/scm/?type=svn&group_id=4546 :pre - -:link(pymolhome,http://www.pymol.org) -:link(pymolopen,http://sourceforge.net/scm/?type=svn&group_id=4546) - -The latter link is to the open-source version. - -Note that for VMD, you need a fairly current version (1.8.7 works for -me) and there are some lines in the pizza/vmd.py script for 4 PIZZA -variables that have to match the VMD installation on your system. - -:line - -See the python/README file for instructions on how to run them and the -source code for individual scripts for comments about what they do. - -Here are screenshots of the vizplotgui_tool.py script in action for -different visualization package options. Click to see larger images: - -:image(JPG/screenshot_gl_small.jpg,JPG/screenshot_gl.jpg) -:image(JPG/screenshot_atomeye_small.jpg,JPG/screenshot_atomeye.jpg) -:image(JPG/screenshot_pymol_small.jpg,JPG/screenshot_pymol.jpg) -:image(JPG/screenshot_vmd_small.jpg,JPG/screenshot_vmd.jpg) - -11.9 PyLammps interface :link(py_9),h4 - -Please see the "PyLammps Tutorial"_tutorial_pylammps.html. diff --git a/doc/src/Section_start.txt b/doc/src/Section_start.txt index 7d456171dc..d8f340b179 100644 --- a/doc/src/Section_start.txt +++ b/doc/src/Section_start.txt @@ -1,4 +1,6 @@ -"Previous Section"_Section_intro.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_commands.html :c +"Previous Section"_Section_intro.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Section_commands.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -930,8 +932,8 @@ Makefile.opt :ul LAMMPS can be built as either a static or shared library, which can then be called from another application or a scripting language. See "this section"_Section_howto.html#howto_10 for more info on coupling -LAMMPS to other codes. See "this section"_Section_python.html for -more info on wrapping and running LAMMPS from Python. +LAMMPS to other codes. See the "Python"_Python.html doc page for more +info on wrapping and running LAMMPS from Python. Static library :h4 @@ -955,15 +957,15 @@ dynamically loaded, e.g. from Python, type make foo mode=shlib :pre where foo is the machine name. This kind of library is required when -wrapping LAMMPS with Python; see "Section 11"_Section_python.html -for details. This will use the SHFLAGS and SHLIBFLAGS settings in +wrapping LAMMPS with Python; see the "Python"_Python.html doc page for +details. This will use the SHFLAGS and SHLIBFLAGS settings in src/MAKE/Makefile.foo and perform the build in the directory Obj_shared_foo. This is so that each file can be compiled with the -fPIC flag which is required for inclusion in a shared library. The build will create the file liblammps_foo.so which another application -can link to dynamically. It will also create a soft link liblammps.so, -which will point to the most recently built shared library. This is -the file the Python wrapper loads by default. +can link to dynamically. It will also create a soft link +liblammps.so, which will point to the most recently built shared +library. This is the file the Python wrapper loads by default. Note that for a shared library to be usable by a calling program, all the auxiliary libraries it depends on must also exist as shared @@ -1035,10 +1037,10 @@ src/library.cpp and src/library.h. See the sample codes in examples/COUPLE/simple for examples of C++ and C and Fortran codes that invoke LAMMPS thru its library interface. There are other examples as well in the COUPLE directory which are -discussed in "Section 6.10"_Section_howto.html#howto_10 of the -manual. See "Section 11"_Section_python.html of the manual for a -description of the Python wrapper provided with LAMMPS that operates -through the LAMMPS library interface. +discussed in "Section 6.10"_Section_howto.html#howto_10 of the manual. +See the "Python"_Python.html doc page for a description of the Python +wrapper provided with LAMMPS that operates through the LAMMPS library +interface. The files src/library.cpp and library.h define the C-style API for using LAMMPS as a library. See "Section @@ -1177,7 +1179,7 @@ than your working directory, which is probably not what you want. If LAMMPS encounters errors in the input script or while running a simulation it will print an ERROR message and stop or a WARNING -message and continue. See "Section 12"_Section_errors.html for a +message and continue. See the "Errors"_Errors.html doc page for a discussion of the various kinds of errors LAMMPS can or can't detect, a list of all ERROR and WARNING messages, and what to do about them. diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index 60b92f0f2e..4c5fbbd453 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -2,12 +2,6 @@ Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Modify.html :c - - :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) :link(lc,Section_commands.html#comm) diff --git a/doc/src/fix_external.txt b/doc/src/fix_external.txt index b28d33446f..30e34b4858 100644 --- a/doc/src/fix_external.txt +++ b/doc/src/fix_external.txt @@ -34,8 +34,7 @@ This fix allows external programs that are running LAMMPS through its "library interface"_Section_howto.html#howto_19 to modify certain LAMMPS properties on specific timesteps, similar to the way other fixes do. The external driver can be a "C/C++ or Fortran -program"_Section_howto.html#howto_19 or a "Python -script"_Section_python.html. +program"_Section_howto.html#howto_19 or a "Python script"_Python.html. :line diff --git a/doc/src/lammps.book b/doc/src/lammps.book index ff8fe68ff1..4924ec8027 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -31,9 +31,22 @@ Modify_region.html Modify_body.html Modify_thermo.html Modify_variable.html - -Section_python.html -Section_errors.html +Python.html +Python_overview.txt +Python_run.txt +Python_shlib.txt +Python_install.txt +Python_mpi.txt +Python_test.txt +Python_library.txt +Python_pylammps.txt +Python_examples.txt +Python_call.txt +Errors.html +Errors_common.txt +Errors_bugs.txt +Errors_messages.txt +Errors_warnings.txt Section_history.html lammps_tutorials.html diff --git a/doc/src/python.txt b/doc/src/python.txt index 1ac2b48528..d670fcc77f 100644 --- a/doc/src/python.txt +++ b/doc/src/python.txt @@ -99,10 +99,9 @@ They can be substituted for directly in an input script. Or they can be passed to various commands as arguments, so that the variable is evaluated during a simulation run. -A broader overview of how Python can be used with LAMMPS is -given in "Section 11"_Section_python.html. There is an -examples/python directory which illustrates use of the python -command. +A broader overview of how Python can be used with LAMMPS is given on +the "Python"_Python.html doc page. There is an examples/python +directory which illustrates use of the python command. :line @@ -331,9 +330,9 @@ to the screen and log file. Note that since the LAMMPS print command itself takes a string in quotes as its argument, the Python string must be delimited with a different style of quotes. -"Section 11.7"_Section_python.html#py_7 describes the syntax for how -Python wraps the various functions included in the LAMMPS library -interface. +The "Pytnon library"_Python_library.html doc page describes the syntax +for how Python wraps the various functions included in the LAMMPS +library interface. A more interesting example is in the examples/python/in.python script which loads and runs the following function from examples/python/funcs.py: @@ -484,15 +483,16 @@ building LAMMPS. LAMMPS must also be built as a shared library and your Python function must be able to to load the Python module in python/lammps.py that wraps the LAMMPS library interface. These are the same steps required to use Python by itself to wrap LAMMPS. -Details on these steps are explained in "Section -python"_Section_python.html. Note that it is important that the -stand-alone LAMMPS executable and the LAMMPS shared library be -consistent (built from the same source code files) in order for this -to work. If the two have been built at different times using -different source files, problems may occur. +Details on these steps are explained on the "Python"_Python.html doc +page. Note that it is important that the stand-alone LAMMPS +executable and the LAMMPS shared library be consistent (built from the +same source code files) in order for this to work. If the two have +been built at different times using different source files, problems +may occur. [Related commands:] -"shell"_shell.html, "variable"_variable.html, "fix python/invoke"_fix_python_invoke.html +"shell"_shell.html, "variable"_variable.html, "fix +python/invoke"_fix_python_invoke.html [Default:] none diff --git a/doc/src/read_dump.txt b/doc/src/read_dump.txt index 23f6274582..21c6df5017 100644 --- a/doc/src/read_dump.txt +++ b/doc/src/read_dump.txt @@ -282,11 +282,11 @@ conditions are applied to remap an atom back into the simulation box. NOTE: If you get a warning about inconsistent image flags after reading in a dump snapshot, it means one or more pairs of bonded atoms -now have inconsistent image flags. As discussed in "Section -errors"_Section_errors.html this may or may not cause problems for -subsequent simulations, One way this can happen is if you read image -flag fields from the dump file but do not also use the dump file box -parameters. +now have inconsistent image flags. As discussed on the "Errors +common"_Errors_common.html doc page this may or may not cause problems +for subsequent simulations. One way this can happen is if you read +image flag fields from the dump file but do not also use the dump file +box parameters. LAMMPS knows how to compute unscaled and remapped coordinates for the snapshot column labels discussed above, e.g. {x}, {xs}, {xu}, {xsu}. diff --git a/doc/src/read_restart.txt b/doc/src/read_restart.txt index a5a2bfcc97..6f6a828229 100644 --- a/doc/src/read_restart.txt +++ b/doc/src/read_restart.txt @@ -76,8 +76,7 @@ different than if the run had continued. These pair styles include If a restarted run is immediately different than the run which produced the restart file, it could be a LAMMPS bug, so consider -"reporting it"_Section_errors.html#err_2 if you think the behavior is -wrong. +"reporting it"_Errors_bugs.html if you think the behavior is a bug. Because restart files are binary, they may not be portable to other machines. In this case, you can use the "-restart command-line diff --git a/src/pair.cpp b/src/pair.cpp index 9bb1ad212f..5c308cc7ce 100644 --- a/src/pair.cpp +++ b/src/pair.cpp @@ -693,17 +693,19 @@ void Pair::compute_dummy(int eflag, int vflag) } /* ---------------------------------------------------------------------- */ + void Pair::read_restart(FILE *) { if (comm->me == 0) - error->warning(FLERR,"BUG: restartinfo=1 but no restart support in pair style"); + error->warning(FLERR,"Pair style restartinfo set but has no restart support"); } /* ---------------------------------------------------------------------- */ + void Pair::write_restart(FILE *) { if (comm->me == 0) - error->warning(FLERR,"BUG: restartinfo=1 but no restart support in pair style"); + error->warning(FLERR,"Pair style restartinfo set but has no restart support"); } /* ------------------------------------------------------------------- From e6e026433c09be429fe2066d7016c0569564519a Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 25 Jul 2018 16:49:51 -0400 Subject: [PATCH 346/675] Fix clean-all in docs Makefile --- doc/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/Makefile b/doc/Makefile index c8cc8bc1bd..c4bc80e7bd 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -49,11 +49,11 @@ help: # ------------------------------------------ -clean-all: +clean-all: clean rm -rf $(BUILDDIR)/* utils/txt2html/txt2html.exe clean: - rm -rf $(RSTDIR) html + rm -rf $(RSTDIR) html old epub rm -rf spelling clean-spelling: From 353ecd2c7ac09f81528fa36a782ef271176c69b0 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 25 Jul 2018 16:56:28 -0400 Subject: [PATCH 347/675] Correct header levels --- doc/src/Errors.txt | 2 +- doc/src/Python.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Errors.txt b/doc/src/Errors.txt index 8e10cb6ae4..7bc520c19d 100644 --- a/doc/src/Errors.txt +++ b/doc/src/Errors.txt @@ -8,7 +8,7 @@ Section"_Section_history.html :c :line -Errors :h3 +Errors :h2 These doc pages describe the errors you can encounter when using LAMMPS. The common problems include conceptual issues. The messages diff --git a/doc/src/Python.txt b/doc/src/Python.txt index 94a2e88f5e..169670d669 100644 --- a/doc/src/Python.txt +++ b/doc/src/Python.txt @@ -8,7 +8,7 @@ Section"_Errors.html :c :line -Use Python with LAMMPS :h3 +Use Python with LAMMPS :h2 These doc pages describe various ways that LAMMPS and Python can be used together. From 532d09bd567dbabdfe86ef459ad16e14d98922ed Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 25 Jul 2018 16:56:49 -0400 Subject: [PATCH 348/675] Correct lammps.book --- doc/src/lammps.book | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 4924ec8027..4274ef48b3 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -32,21 +32,21 @@ Modify_body.html Modify_thermo.html Modify_variable.html Python.html -Python_overview.txt -Python_run.txt -Python_shlib.txt -Python_install.txt -Python_mpi.txt -Python_test.txt -Python_library.txt -Python_pylammps.txt -Python_examples.txt -Python_call.txt +Python_overview.html +Python_run.html +Python_shlib.html +Python_install.html +Python_mpi.html +Python_test.html +Python_library.html +Python_pylammps.html +Python_examples.html +Python_call.html Errors.html -Errors_common.txt -Errors_bugs.txt -Errors_messages.txt -Errors_warnings.txt +Errors_common.html +Errors_bugs.html +Errors_messages.html +Errors_warnings.html Section_history.html lammps_tutorials.html From a2303e5a15b27a40bf82b03bb1d5bf9f0c3c2b69 Mon Sep 17 00:00:00 2001 From: sergeylishchuk Date: Thu, 26 Jul 2018 11:54:04 +0100 Subject: [PATCH 349/675] more changes to ATM source and doc file --- doc/src/pair_atm.txt | 14 +++++++------- src/MANYBODY/pair_atm.cpp | 40 +++++++++++++++++++++++++++++++-------- src/MANYBODY/pair_atm.h | 5 +++++ 3 files changed, 44 insertions(+), 15 deletions(-) diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index e442c32814..6453b02bf8 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -41,17 +41,17 @@ gamma3 are as shown in this diagram: Note that for the interaction between a triplet of atoms I,J,K, there is no "central" atom. The interaction is symmetric with respect to -permutation of the three atoms. In fact, it is computed 3 times by -the code with each of I,J,K being atom 1. Thus the nu value must be -the same for all those permutations of the atom types of I,J,K as -discussed below. +permutation of the three atoms. Thus the nu value is +the same for all those permutations of the atom types of I,J,K +and needs to be specified only once, as discussed below. The {atm} potential is typically used in combination with a two-body potential using the "pair_style hybrid/overlay"_pair_hybrid.html command as in the example above. -The potential for a triplet of atom is calculated only if all 3 -distances r12, r23, r31 between the 3 atoms satisfy rIJ < cutoff. +The potential is calculated if atoms J and K are in the +"neighbor list"_neighbor.html of atom I +and the distances between atoms satisfy rIJ rJK rKI > cutoff^3. The following coefficients must be defined for each pair of atoms types via the "pair_coeff"_pair_coeff.html command as in the examples @@ -88,7 +88,7 @@ pair_coeff 2 3 4 0.1 :pre Note that for a simulation with a single atom type, only a single entry is required, e.g. -pair_coeff 1 1 1 0.25 :per +pair_coeff 1 1 1 0.25 :pre For a simulation with two atom types, four pair_coeff commands will specify all possible nu values: diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index 2ba8912899..090a8352d5 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -91,8 +91,8 @@ void PairATM::compute(int eflag, int vflag) double **f = atom->f; int *type = atom->type; - double cutoffsq = cut_global*cut_global; - + double cutoff_sixth = cut_global*cut_global; + cutoff_sixth = cutoff_sixth*cutoff_sixth*cutoff_sixth; inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -112,26 +112,32 @@ void PairATM::compute(int eflag, int vflag) j = jlist[jj]; j &= NEIGHMASK; rij[0] = x[j][0] - xi; + if (rij[0] < 0.0) continue; rij[1] = x[j][1] - yi; + if (rij[0] == 0.0 and rij[1] < 0.0) continue; rij[2] = x[j][2] - zi; + if (rij[0] == 0.0 and rij[1] == 0.0 and rij[2] < 0.0) continue; rij2 = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; for (kk = jj+1; kk < jnum; kk++) { k = jlist[kk]; k &= NEIGHMASK; + rjk[0] = x[k][0] - x[j][0]; + if (rjk[0] < 0.0) continue; + rjk[1] = x[k][1] - x[j][1]; + if (rjk[0] == 0.0 and rjk[1] < 0.0) continue; + rjk[2] = x[k][2] - x[j][2]; + if (rjk[0] == 0.0 and rjk[1] == 0.0 and rjk[2] < 0.0) continue; + rjk2 = rjk[0]*rjk[0] + rjk[1]*rjk[1] + rjk[2]*rjk[2]; + rik[0] = x[k][0] - xi; rik[1] = x[k][1] - yi; rik[2] = x[k][2] - zi; rik2 = rik[0]*rik[0] + rik[1]*rik[1] + rik[2]*rik[2]; - rjk[0] = x[k][0] - x[j][0]; - rjk[1] = x[k][1] - x[j][1]; - rjk[2] = x[k][2] - x[j][2]; - rjk2 = rjk[0]*rjk[0] + rjk[1]*rjk[1] + rjk[2]*rjk[2]; - r6 = rij2*rik2*rjk2; - if (r6 > cutoffsq) continue; + if (r6 > cutoff_sixth) continue; nu_local = nu[type[i]][type[j]][type[k]]; if (nu_local == 0.0) continue; @@ -228,6 +234,9 @@ void PairATM::coeff(int narg, char **arg) void PairATM::init_style() { + if (force->newton_pair == 0) + error->all(FLERR,"Pair style ATM requires newton pair on"); + // need a full neighbor list int irequest = neighbor->request(this,instance_me); @@ -258,6 +267,21 @@ double PairATM::init_one(int i, int j) proc 0 writes to restart file ------------------------------------------------------------------------- */ +// +// PLEASE HELP! +// +// From the pair_hybrid documentation: +// +// "For the hybrid pair styles, the list of sub-styles and their respective +// settings are written to binary restart files, so a pair_style command +// does not need to specified in an input script that reads a restart file. +// However, the coefficient information is not stored in the restart file. +// Thus, pair_coeff commands need to be re-specified in the restart input +// script." +// +// As a result, the function "PairATM::write_restart" is not called from +// "pair_hybrid.cpp". What is the best way to deal with this problem? +// void PairATM::write_restart(FILE *fp) { write_restart_settings(fp); diff --git a/src/MANYBODY/pair_atm.h b/src/MANYBODY/pair_atm.h index 45a6cda344..210351cfad 100644 --- a/src/MANYBODY/pair_atm.h +++ b/src/MANYBODY/pair_atm.h @@ -64,6 +64,11 @@ E: Incorrect args for pair coefficients Self-explanatory. Check the input script or data file. +E: Pair style ATM requires newton pair on + +See the newton command. This is a restriction to use the ATM +potential. + E: All pair coeffs are not set All pair coefficients must be set in the data file or by the From c8b9a727e42460124cac2aeb5717c236367db16d Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 27 Jul 2018 00:35:08 -0400 Subject: [PATCH 350/675] Add potential files to CMake install target --- cmake/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 60a0f5d48f..44f871bfe3 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -900,6 +900,11 @@ if(BUILD_EXE) endif() endif() +############################################################################### +# Install potential files in data directory +############################################################################### +install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials DESTINATION ${CMAKE_INSTALL_DATADIR}/lammps) + ############################################################################### # Testing # From 819e47b69e7bf46edd99db1ee0b67e1d4134c9b0 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 27 Jul 2018 02:29:10 -0400 Subject: [PATCH 351/675] Add output dir and verbose option to txt2rst --- doc/Makefile | 2 +- doc/utils/converters/lammpsdoc/txt2html.py | 12 +++++++++--- doc/utils/converters/lammpsdoc/txt2rst.py | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/doc/Makefile b/doc/Makefile index c4bc80e7bd..81f3623499 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -157,7 +157,7 @@ $(RSTDIR)/%.rst : src/%.txt $(TXT2RST) @(\ mkdir -p $(RSTDIR) ; \ . $(VENV)/bin/activate ;\ - txt2rst $< > $@ ;\ + txt2rst -v $< > $@ ;\ deactivate ;\ ) diff --git a/doc/utils/converters/lammpsdoc/txt2html.py b/doc/utils/converters/lammpsdoc/txt2html.py index 79a75d72f6..ed9f47a4e4 100755 --- a/doc/utils/converters/lammpsdoc/txt2html.py +++ b/doc/utils/converters/lammpsdoc/txt2html.py @@ -662,14 +662,15 @@ class TxtConverter: parser = self.get_argument_parser() parsed_args = parser.parse_args(args) - write_to_files = len(parsed_args.files) > 1 + write_to_files = parsed_args.output_dir or (len(parsed_args.files) > 1) for filename in parsed_args.files: if parsed_args.skip_files and filename in parsed_args.skip_files: continue with open(filename, 'r') as f: - print("Converting", filename, "...", file=err) + if parsed_args.verbose: + print("Converting", filename, "...", file=err) content = f.read() converter = self.create_converter(parsed_args) @@ -683,7 +684,10 @@ class TxtConverter: result = msg if write_to_files: - output_filename = self.get_output_filename(filename) + if parsed_args.output_dir: + output_filename = os.path.join(parsed_args.output_dir, os.path.basename(self.get_output_filename(filename))) + else: + output_filename = self.get_output_filename(filename) with open(output_filename, "w+t") as outfile: outfile.write(result) else: @@ -698,6 +702,8 @@ class Txt2HtmlConverter(TxtConverter): 'HTML file. useful when set of HTML files' ' will be converted to PDF') parser.add_argument('-x', metavar='file-to-skip', dest='skip_files', action='append') + parser.add_argument('--verbose', '-v', dest='verbose', action='store_true') + parser.add_argument('--output-directory', '-o', dest='output_dir') parser.add_argument('--generate-title', dest='create_title', action='store_true', help='add HTML head page' 'title based on first ' 'h1,h2,h3,h4... element') diff --git a/doc/utils/converters/lammpsdoc/txt2rst.py b/doc/utils/converters/lammpsdoc/txt2rst.py index 17d0916157..8119ad3a78 100755 --- a/doc/utils/converters/lammpsdoc/txt2rst.py +++ b/doc/utils/converters/lammpsdoc/txt2rst.py @@ -395,6 +395,8 @@ class Txt2RstConverter(TxtConverter): parser = argparse.ArgumentParser(description='converts a text file with simple formatting & markup into ' 'Restructured Text for Sphinx.') parser.add_argument('-x', metavar='file-to-skip', dest='skip_files', action='append') + parser.add_argument('--verbose', '-v', dest='verbose', action='store_true') + parser.add_argument('--output-directory', '-o', dest='output_dir') parser.add_argument('files', metavar='file', nargs='+', help='one or more files to convert') return parser From 9ffd262039924bb6c154de80d26dd6c47f4cb693 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 27 Jul 2018 02:46:36 -0400 Subject: [PATCH 352/675] Add CMake target for html documentation --- cmake/CMakeLists.txt | 58 ++++++++++++++++++++++++++++++++++++++ doc/utils/requirements.txt | 1 + 2 files changed, 59 insertions(+) create mode 100644 doc/utils/requirements.txt diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 44f871bfe3..33462df5ef 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -9,6 +9,7 @@ set(SOVERSION 0) get_filename_component(LAMMPS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src ABSOLUTE) get_filename_component(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib ABSOLUTE) get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE) +get_filename_component(LAMMPS_DOC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../doc ABSOLUTE) # To avoid conflicts with the conventional Makefile build system, we build everything here @@ -900,6 +901,63 @@ if(BUILD_EXE) endif() endif() +############################################################################### +# Build documentation +############################################################################### +option(BUILD_DOC "Build LAMMPS documentation" OFF) +if(BUILD_DOC) + include(ProcessorCount) + ProcessorCount(NPROCS) + find_package(PythonInterp 3 REQUIRED) + + set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv) + + file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/*.txt) + file(GLOB PDF_EXTRA_SOURCES ${LAMMPS_DOC_DIR}/src/lammps_commands*.txt ${LAMMPS_DOC_DIR}/src/lammps_support.txt ${LAMMPS_DOC_DIR}/src/lammps_tutorials.txt) + list(REMOVE_ITEM DOC_SOURCES ${PDF_EXTRA_SOURCES}) + + add_custom_command( + OUTPUT docenv + COMMAND ${VIRTUALENV} docenv + ) + add_custom_command( + OUTPUT requirements.txt + DEPENDS docenv + COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/utils/requirements.txt requirements.txt + COMMAND ./docenv/bin/pip install -r requirements.txt --upgrade + COMMAND ./docenv/bin/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters + ) + + set(RST_FILES "") + set(RST_DIR ${CMAKE_BINARY_DIR}/rst) + file(MAKE_DIRECTORY ${RST_DIR}) + foreach(TXT_FILE ${DOC_SOURCES}) + get_filename_component(FILENAME ${TXT_FILE} NAME_WE) + set(RST_FILE ${RST_DIR}/${FILENAME}.rst) + list(APPEND RST_FILES ${RST_FILE}) + add_custom_command( + OUTPUT ${RST_FILE} + DEPENDS requirements.txt docenv ${TXT_FILE} + COMMAND ./docenv/bin/txt2rst -o ${RST_DIR} ${TXT_FILE} + ) + endforeach() + + add_custom_command( + OUTPUT html + DEPENDS ${RST_FILES} + COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DOC_DIR}/src ${RST_DIR} + COMMAND ./docenv/bin/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${RST_DIR} html + ) + + add_custom_target( + doc + DEPENDS html + SOURCES ${LAMMPS_DOC_DIR}/utils/requirements.txt ${DOC_SOURCES} + ) + + install(DIRECTORY ${CMAKE_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR}) +endif() + ############################################################################### # Install potential files in data directory ############################################################################### diff --git a/doc/utils/requirements.txt b/doc/utils/requirements.txt new file mode 100644 index 0000000000..2806c16498 --- /dev/null +++ b/doc/utils/requirements.txt @@ -0,0 +1 @@ +Sphinx From 06335e77cb76aa58627e51f7776f3797a1f21dc3 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 27 Jul 2018 02:56:19 -0400 Subject: [PATCH 353/675] Ensure doc is built by default when enabled --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 33462df5ef..88efd90221 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -950,7 +950,7 @@ if(BUILD_DOC) ) add_custom_target( - doc + doc ALL DEPENDS html SOURCES ${LAMMPS_DOC_DIR}/utils/requirements.txt ${DOC_SOURCES} ) From f63e2b6eaf8d7370eaff5ea7e3bacfa10bd05a4c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 27 Jul 2018 10:24:15 +0200 Subject: [PATCH 354/675] simplify code and guarantee that "mode" is initialized --- src/BODY/fix_wall_body_polygon.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/BODY/fix_wall_body_polygon.cpp b/src/BODY/fix_wall_body_polygon.cpp index 5ec5a7cca8..0e7aaea1e1 100644 --- a/src/BODY/fix_wall_body_polygon.cpp +++ b/src/BODY/fix_wall_body_polygon.cpp @@ -641,18 +641,15 @@ int FixWallBodyPolygon::compute_distance_to_wall(double* x0, double rradi, mode = VERTEX; contact = 1; } else { + mode = NONE; if (side == XLO) { if (x0[0] < wall_pos) mode = VERTEX; - else mode = NONE; } else if (side == XHI) { if (x0[0] > wall_pos) mode = VERTEX; - else mode = NONE; } else if (side == YLO) { if (x0[1] < wall_pos) mode = VERTEX; - else mode = NONE; } else if (side == YHI) { if (x0[1] > wall_pos) mode = VERTEX; - else mode = NONE; } } From 8075b98fc53f1c56ac449c6fa428f34452b158d8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 27 Jul 2018 10:24:38 +0200 Subject: [PATCH 355/675] initialize rsqinv --- src/BODY/pair_body_rounded_polyhedron.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index 2ff209d609..fa1d84a663 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -685,7 +685,7 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, { int ni,nei,ifirst,iefirst,npi1,npi2,ibonus; double xi1[3],xi2[3],vti[3],h[3],fn[3],ft[3],d,t; - double delx,dely,delz,rij,rsqinv,R,fx,fy,fz,fpair,shift,energy; + double delx,dely,delz,rsq,rij,rsqinv,R,fx,fy,fz,fpair,shift,energy; double rradi,rradj,contact_dist; double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; double *quat, *inertia; @@ -749,7 +749,9 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, delx = h[0] - x[jbody][0]; dely = h[1] - x[jbody][1]; delz = h[2] - x[jbody][2]; - rij = sqrt(delx*delx + dely*dely + delz*delz); + rsq = delx*delx + dely*dely + delz*delz; + rsqinv = (rsq == 0.0) ? 0.0 : 1.0/rsq; + rij = sqrt(rsq); R = rij - contact_dist; energy = 0; From 2af88dcc26a32215568d168869a0d35f6aa4b9f0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 27 Jul 2018 10:39:01 +0200 Subject: [PATCH 356/675] avoid uninitialized variables --- src/BODY/pair_body_rounded_polyhedron.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index fa1d84a663..051be762e5 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -2079,6 +2079,7 @@ void PairBodyRoundedPolyhedron::distance_bt_edges(const double* x1, double s1,s2,x13[3],x23[3],x13h[3]; double t13,t23,t31,t41,x31[3],x41[3]; + t13=t23=t31=t41=0.0; MathExtra::sub3(x1,x3,x13); // x13 = x1 - x3 MathExtra::sub3(x2,x3,x23); // x23 = x2 - x3 From 649d0167c800fa0c88e9f3d344577471e1a29a40 Mon Sep 17 00:00:00 2001 From: sergeylishchuk Date: Fri, 27 Jul 2018 10:41:01 +0100 Subject: [PATCH 357/675] sorted out restart --- doc/src/pair_atm.txt | 4 ++++ src/MANYBODY/pair_atm.cpp | 15 --------------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index 6453b02bf8..b798f7d128 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -130,6 +130,10 @@ mix, shift, table, and tail options. This pair style writes its information to "binary restart files"_restart.html, so pair_style and pair_coeff commands do not need to be specified in an input script that reads a restart file. +However, if the {atm} potential is used in combination with other +potentials using the "pair_style hybrid/overlay"_pair_hybrid.html +command then pair_coeff commands need to be re-specified +in the restart input script. This pair style can only be used via the {pair} keyword of the "run_style respa"_run_style.html command. It does not support the diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index 090a8352d5..92d9338dc8 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -267,21 +267,6 @@ double PairATM::init_one(int i, int j) proc 0 writes to restart file ------------------------------------------------------------------------- */ -// -// PLEASE HELP! -// -// From the pair_hybrid documentation: -// -// "For the hybrid pair styles, the list of sub-styles and their respective -// settings are written to binary restart files, so a pair_style command -// does not need to specified in an input script that reads a restart file. -// However, the coefficient information is not stored in the restart file. -// Thus, pair_coeff commands need to be re-specified in the restart input -// script." -// -// As a result, the function "PairATM::write_restart" is not called from -// "pair_hybrid.cpp". What is the best way to deal with this problem? -// void PairATM::write_restart(FILE *fp) { write_restart_settings(fp); From 28993d98237b2b10b5f894de1557b4a24b2744c8 Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 26 Jul 2018 08:36:30 -0600 Subject: [PATCH 358/675] Commit JT 072618 - improvements documentation (dmi and exchange) - correction error cross product in pair_spin_dmi.cpp - implementation mech. part in pair_spin_dmi.cpp - correction in all pairs: init_one for [j][i] couples - correction in atom_vec_spin.cpp: index error in read_data - some improvements in pair_spin_dmi.cpp and pair_spin_magelec.cpp --- doc/src/Eqs/pair_spin_dmi_forces.jpg | Bin 0 -> 13431 bytes doc/src/Eqs/pair_spin_dmi_forces.tex | 14 +++ doc/src/Eqs/pair_spin_dmi_interaction.jpg | Bin 6316 -> 7891 bytes doc/src/Eqs/pair_spin_dmi_interaction.tex | 2 +- doc/src/Eqs/pair_spin_exchange_forces.jpg | Bin 13720 -> 13255 bytes doc/src/Eqs/pair_spin_exchange_forces.tex | 10 +- .../Eqs/pair_spin_exchange_interaction.jpg | Bin 6661 -> 5940 bytes .../Eqs/pair_spin_exchange_interaction.tex | 2 +- doc/src/pair_spin_dmi.txt | 41 +++++-- doc/src/pair_spin_exchange.txt | 28 ++++- examples/SPIN/bfo/in.spin.bfo | 11 +- examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 10 +- src/SPIN/atom_vec_spin.cpp | 6 +- src/SPIN/compute_spin.cpp | 20 +-- src/SPIN/pair_spin_dmi.cpp | 116 ++++++++++++------ src/SPIN/pair_spin_dmi.h | 15 +-- src/SPIN/pair_spin_exchange.cpp | 52 ++++---- src/SPIN/pair_spin_magelec.cpp | 88 +++++++------ src/SPIN/pair_spin_neel.cpp | 10 +- src/SPIN/pair_spin_neel.h | 4 +- 20 files changed, 272 insertions(+), 157 deletions(-) create mode 100644 doc/src/Eqs/pair_spin_dmi_forces.jpg create mode 100644 doc/src/Eqs/pair_spin_dmi_forces.tex diff --git a/doc/src/Eqs/pair_spin_dmi_forces.jpg b/doc/src/Eqs/pair_spin_dmi_forces.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fba6a91cbf6fdb6ee6736073a114d08c907d6d3c GIT binary patch literal 13431 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

Mp% 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 Hvig4jn{I9c literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_spin_dmi_forces.tex b/doc/src/Eqs/pair_spin_dmi_forces.tex new file mode 100644 index 0000000000..1c0c246db4 --- /dev/null +++ b/doc/src/Eqs/pair_spin_dmi_forces.tex @@ -0,0 +1,14 @@ +\documentclass[preview]{standalone} +\usepackage{varwidth} +\usepackage[utf8x]{inputenc} +\usepackage{amsmath,amssymb,amsthm,bm} +\begin{document} +\begin{varwidth}{50in} + \begin{equation} + \vec{\omega}_i = -\frac{1}{\hbar} \sum_{j}^{Neighb} \vec{s}_{j}\times \left(\vec{e}_{ij}\times \vec{D} \right) + ~~{\rm and}~~ + \vec{F}_i = -\sum_{j}^{Neighb} \frac{1}{r_{ij}} \vec{D} \times \left( \vec{s}_{i}\times \vec{s}_{j} \right) + , \nonumber + \end{equation} +\end{varwidth} +\end{document} diff --git a/doc/src/Eqs/pair_spin_dmi_interaction.jpg b/doc/src/Eqs/pair_spin_dmi_interaction.jpg index 1d15b2199add75eefecb424f75ea2dbd363a1afe..3eb24c67e3b26f97c362fd05982ead5fb0f5c150 100644 GIT binary patch literal 7891 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 literal 13720 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 YAN#n!=#A%hftx-OcW#2Ko`=Q%0oGV3X8-^I diff --git a/doc/src/Eqs/pair_spin_exchange_forces.tex b/doc/src/Eqs/pair_spin_exchange_forces.tex index 088696d5ef..ac5ef682f3 100644 --- a/doc/src/Eqs/pair_spin_exchange_forces.tex +++ b/doc/src/Eqs/pair_spin_exchange_forces.tex @@ -5,10 +5,12 @@ \begin{document} \begin{varwidth}{50in} \begin{equation} - \vec{F}^{i} = \sum_{j}^{Neighbor} \frac{\partial {J} \left(r_{ij} \right)}{ - \partial r_{ij}} \left( \vec{s}_{i}\cdot \vec{s}_{j} \right) \vec{r}_{ij} - ~~{\rm and}~~ \vec{\omega}^{i} = \frac{1}{\hbar} \sum_{j}^{Neighbor} {J} - \left(r_{ij} \right)\,\vec{s}_{j} \nonumber + \vec{\omega}_{i} = \frac{1}{\hbar} \sum_{j}^{Neighb} {J} + \left(r_{ij} \right)\,\vec{s}_{j} + ~~{\rm and}~~ + \vec{F}_{i} = \sum_{j}^{Neighb} \frac{\partial {J} \left(r_{ij} \right)}{ + \partial r_{ij}} \left( \vec{s}_{i}\cdot \vec{s}_{j} \right) \vec{e}_{ij} + \nonumber \end{equation} \end{varwidth} \end{document} diff --git a/doc/src/Eqs/pair_spin_exchange_interaction.jpg b/doc/src/Eqs/pair_spin_exchange_interaction.jpg index d51524d27ca413ec4ded189107c2219b061f7d7e..c70d8a6554003e37472d648c1944a13ee9d3f859 100644 GIT binary patch literal 5940 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 literal 6661 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 { - mag[0] += sp[i][0]; - mag[1] += sp[i][1]; - mag[2] += sp[i][2]; - magenergy -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); - tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; - ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; - tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; - tempnum += tx*tx+ty*ty+tz*tz; - tempdenom += sp[i][0]*fm[i][0]+fm[i][1]*sp[i][1]+sp[i][2]*fm[i][2]; - countsp++; + mag[0] += sp[i][0]; + mag[1] += sp[i][1]; + mag[2] += sp[i][2]; + magenergy -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); + tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; + ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; + tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; + tempnum += tx*tx+ty*ty+tz*tz; + tempdenom += sp[i][0]*fm[i][0]+fm[i][1]*sp[i][1]+sp[i][2]*fm[i][2]; + countsp++; } } else error->all(FLERR,"Compute compute/spin requires atom/spin style"); diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index b792969c5d..08e2c63e7f 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -65,6 +65,9 @@ PairSpinDmi::~PairSpinDmi() memory->destroy(v_dmx); memory->destroy(v_dmy); memory->destroy(v_dmz); + memory->destroy(vmech_dmx); + memory->destroy(vmech_dmy); + memory->destroy(vmech_dmz); memory->destroy(cutsq); } } @@ -118,7 +121,7 @@ void PairSpinDmi::coeff(int narg, char **arg) force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); const double rij = force->numeric(FLERR,arg[3]); - const double dm = (force->numeric(FLERR,arg[4]))/hbar; + const double dm = (force->numeric(FLERR,arg[4])); double dmx = force->numeric(FLERR,arg[5]); double dmy = force->numeric(FLERR,arg[6]); double dmz = force->numeric(FLERR,arg[7]); @@ -133,9 +136,12 @@ void PairSpinDmi::coeff(int narg, char **arg) for (int j = MAX(jlo,i); j <= jhi; j++) { cut_spin_dmi[i][j] = rij; DM[i][j] = dm; - v_dmx[i][j] = dmx * dm; - v_dmy[i][j] = dmy * dm; - v_dmz[i][j] = dmz * dm; + v_dmx[i][j] = dmx * dm / hbar; + v_dmy[i][j] = dmy * dm / hbar; + v_dmz[i][j] = dmz * dm / hbar; + vmech_dmx[i][j] = dmx * dm; + vmech_dmy[i][j] = dmy * dm; + vmech_dmz[i][j] = dmz * dm; setflag[i][j] = 1; count++; } @@ -187,9 +193,17 @@ void PairSpinDmi::init_style() double PairSpinDmi::init_one(int i, int j) { - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + DM[j][i] = DM[i][j]; + v_dmx[j][i] = v_dmx[i][j]; + v_dmy[j][i] = v_dmy[i][j]; + v_dmz[j][i] = v_dmz[i][j]; + vmech_dmx[j][i] = vmech_dmx[i][j]; + vmech_dmy[j][i] = vmech_dmy[i][j]; + vmech_dmz[j][i] = vmech_dmz[i][j]; + cut_spin_dmi[j][i] = cut_spin_dmi[i][j]; + return cut_spin_dmi_global; } @@ -210,7 +224,8 @@ void PairSpinDmi::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; @@ -264,20 +279,17 @@ void PairSpinDmi::compute(int eflag, int vflag) spj[2] = sp[j][2]; evdwl = 0.0; - fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - rij[0] = rij[1] = rij[2] = 0.0; - eij[0] = eij[1] = eij[2] = 0.0; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; @@ -286,7 +298,7 @@ void PairSpinDmi::compute(int eflag, int vflag) if (rsq <= local_cut2) { compute_dmi(i,j,eij,fmi,spj); if (lattice_flag) { - compute_dmi_mech(fi); + compute_dmi_mech(i,j,rsq,eij,fi,spi,spj); } } @@ -309,7 +321,7 @@ void PairSpinDmi::compute(int eflag, int vflag) } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],delx,dely,delz); } } @@ -325,8 +337,8 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) double **x = atom->x; double **sp = atom->sp; double local_cut2; - - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spj[3]; int i,j,jnum,itype,jtype; @@ -358,14 +370,14 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; @@ -390,23 +402,45 @@ void PairSpinDmi::compute_dmi(int i, int j, double eij[3], double fmi[3], double jtype = type[j]; dmix = eij[1]*v_dmz[itype][jtype] - eij[2]*v_dmy[itype][jtype]; - dmiy = eij[2]*v_dmx[itype][jtype] - eij[2]*v_dmz[itype][jtype]; + dmiy = eij[2]*v_dmx[itype][jtype] - eij[0]*v_dmz[itype][jtype]; dmiz = eij[0]*v_dmy[itype][jtype] - eij[1]*v_dmx[itype][jtype]; - fmi[0] += (spj[1]*dmiz - spj[2]*dmiy); - fmi[1] += (spj[2]*dmix - spj[0]*dmiz); - fmi[2] += (spj[0]*dmiy - spj[1]*dmix); + fmi[0] -= (spj[1]*dmiz - spj[2]*dmiy); + fmi[1] -= (spj[2]*dmix - spj[0]*dmiz); + fmi[2] -= (spj[0]*dmiy - spj[1]*dmix); } /* ---------------------------------------------------------------------- compute the mechanical force due to the dmi interaction between atom i and atom j ------------------------------------------------------------------------- */ -void PairSpinDmi::compute_dmi_mech(double fi[3]) +void PairSpinDmi::compute_dmi_mech(int i, int j, double rsq, double eij[3], + double fi[3], double spi[3], double spj[3]) { - fi[0] += 0.0; - fi[1] += 0.0; - fi[2] += 0.0; + int *type = atom->type; + int itype, jtype; + double dmix,dmiy,dmiz; + itype = type[i]; + jtype = type[j]; + double csx,csy,csz,cdmx,cdmy,cdmz,irij; + + irij = 1.0/sqrt(rsq); + + dmix = vmech_dmx[itype][jtype]; + dmiy = vmech_dmy[itype][jtype]; + dmiz = vmech_dmz[itype][jtype]; + + csx = (spi[1]*spj[2] - spi[2]*spj[1]); + csy = (spi[2]*spj[0] - spi[0]*spj[2]); + csz = (spi[0]*spj[1] - spi[1]*spj[0]); + + cdmx = (dmiy*csz - dmiz*csy); + cdmy = (dmiz*csx - dmix*csz); + cdmz = (dmix*csy - dmiy*csz); + + fi[0] += irij*cdmx; + fi[1] += irij*cdmy; + fi[2] += irij*cdmz; } /* ---------------------------------------------------------------------- @@ -428,6 +462,9 @@ void PairSpinDmi::allocate() memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); memory->create(v_dmz,n+1,n+1,"pair:DM_vector_z"); + memory->create(vmech_dmx,n+1,n+1,"pair:DMmech_vector_x"); + memory->create(vmech_dmy,n+1,n+1,"pair:DMmech_vector_y"); + memory->create(vmech_dmz,n+1,n+1,"pair:DMmech_vector_z"); memory->create(cutsq,n+1,n+1,"pair:cutsq"); @@ -451,6 +488,9 @@ void PairSpinDmi::write_restart(FILE *fp) fwrite(&v_dmx[i][j],sizeof(double),1,fp); fwrite(&v_dmy[i][j],sizeof(double),1,fp); fwrite(&v_dmz[i][j],sizeof(double),1,fp); + fwrite(&vmech_dmx[i][j],sizeof(double),1,fp); + fwrite(&vmech_dmy[i][j],sizeof(double),1,fp); + fwrite(&vmech_dmz[i][j],sizeof(double),1,fp); fwrite(&cut_spin_dmi[i][j],sizeof(double),1,fp); } } @@ -478,12 +518,18 @@ void PairSpinDmi::read_restart(FILE *fp) fread(&v_dmx[i][j],sizeof(double),1,fp); fread(&v_dmy[i][j],sizeof(double),1,fp); fread(&v_dmz[i][j],sizeof(double),1,fp); + fread(&vmech_dmx[i][j],sizeof(double),1,fp); + fread(&vmech_dmy[i][j],sizeof(double),1,fp); + fread(&vmech_dmz[i][j],sizeof(double),1,fp); fread(&cut_spin_dmi[i][j],sizeof(double),1,fp); } MPI_Bcast(&DM[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmx[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmy[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmz[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&vmech_dmx[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&vmech_dmy[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&vmech_dmz[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&cut_spin_dmi[i][j],1,MPI_DOUBLE,0,world); } } diff --git a/src/SPIN/pair_spin_dmi.h b/src/SPIN/pair_spin_dmi.h index a309f0c8d5..68e42e879d 100644 --- a/src/SPIN/pair_spin_dmi.h +++ b/src/SPIN/pair_spin_dmi.h @@ -38,22 +38,23 @@ class PairSpinDmi : public PairSpin { void compute_single_pair(int, double *); void compute_dmi(int, int, double *, double *, double *); - void compute_dmi_mech(double *); + void compute_dmi_mech(int, int, double, double *, double *, double *, double *); void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - double cut_spin_dmi_global; // short range pair cutoff + double cut_spin_dmi_global; // short range pair cutoff protected: - double **DM; // dmi coeff in eV - double **v_dmx, **v_dmy, **v_dmz; // dmi direction - double **cut_spin_dmi; // cutoff distance dmi + double **DM; // dmi coeff in eV + double **v_dmx, **v_dmy, **v_dmz; // dmi direction + double **vmech_dmx, **vmech_dmy, **vmech_dmz; // dmi mech direction + double **cut_spin_dmi; // cutoff distance dmi - int lattice_flag; // flag for mech force computation - class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups + int lattice_flag; // flag for mech force computation + class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups void allocate(); }; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 1b7b36b6db..cc074bb97d 100644 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -65,7 +65,7 @@ PairSpinExchange::~PairSpinExchange() memory->destroy(J1_mech); memory->destroy(J2); memory->destroy(J3); - memory->destroy(cutsq); // to be deleted + memory->destroy(cutsq); // to be implemented } } @@ -134,8 +134,8 @@ void PairSpinExchange::coeff(int narg, char **arg) count++; } } - if (count == 0) - error->all(FLERR,"Incorrect args in pair_style command"); + + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); } /* ---------------------------------------------------------------------- @@ -183,6 +183,12 @@ double PairSpinExchange::init_one(int i, int j) if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + J1_mag[j][i] = J1_mag[i][j]; + J1_mech[j][i] = J1_mech[i][j]; + J2[j][i] = J2[i][j]; + J3[j][i] = J3[i][j]; + cut_spin_exchange[j][i] = cut_spin_exchange[i][j]; + return cut_spin_exchange_global; } @@ -203,7 +209,8 @@ void PairSpinExchange::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; @@ -255,18 +262,17 @@ void PairSpinExchange::compute(int eflag, int vflag) spj[2] = sp[j][2]; evdwl = 0.0; - fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = inorm*rij[0]; - eij[1] = inorm*rij[1]; - eij[2] = inorm*rij[2]; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; @@ -298,7 +304,7 @@ void PairSpinExchange::compute(int eflag, int vflag) } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],delx,dely,delz); } } @@ -317,8 +323,8 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) double **x = atom->x; double **sp = atom->sp; double local_cut2; - double xi[3], rij[3]; + double delx,dely,delz; double spj[3]; int i,j,jnum,itype,jtype; @@ -351,15 +357,14 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; if (rsq <= local_cut2) { compute_exchange(i,j,rsq,fmi,spj); } - } } @@ -390,7 +395,8 @@ void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], compute the mechanical force due to the exchange interaction between atom i and atom j ------------------------------------------------------------------------- */ -void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double rij[3], double fi[3], double spi[3], double spj[3]) +void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double eij[3], + double fi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -408,9 +414,9 @@ void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double ri Jex_mech *= 8.0*Jex*rr*exp(-ra); Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); - fi[0] -= Jex_mech*rij[0]; - fi[1] -= Jex_mech*rij[1]; - fi[2] -= Jex_mech*rij[2]; + fi[0] -= Jex_mech*eij[0]; + fi[1] -= Jex_mech*eij[1]; + fi[2] -= Jex_mech*eij[2]; } /* ---------------------------------------------------------------------- diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index 315b691d17..6bc1f71947 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -187,8 +187,14 @@ void PairSpinMagelec::init_style() double PairSpinMagelec::init_one(int i, int j) { + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + ME[j][i] = ME[i][j]; + ME_mech[j][i] = ME_mech[i][j]; + v_mex[j][i] = v_mex[i][j]; + v_mey[j][i] = v_mey[i][j]; + v_mez[j][i] = v_mez[i][j]; + cut_spin_magelec[j][i] = cut_spin_magelec[i][j]; return cut_spin_magelec_global; } @@ -211,7 +217,8 @@ void PairSpinMagelec::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; @@ -263,18 +270,17 @@ void PairSpinMagelec::compute(int eflag, int vflag) spj[2] = sp[j][2]; evdwl = 0.0; - fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = inorm*rij[0]; - eij[1] = inorm*rij[1]; - eij[2] = inorm*rij[2]; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; @@ -301,12 +307,12 @@ void PairSpinMagelec::compute(int eflag, int vflag) } if (eflag) { - evdwl = (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= hbar; } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],delx,dely,delz); } } @@ -322,8 +328,8 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) double **x = atom->x; double **sp = atom->sp; double local_cut2; - - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spj[3]; int i,j,jnum,itype,jtype; @@ -342,8 +348,6 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) xi[1] = x[i][1]; xi[2] = x[i][2]; - eij[0] = eij[1] = eij[2] = 0.0; - jlist = firstneigh[i]; jnum = numneigh[i]; @@ -358,14 +362,14 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = inorm*rij[0]; - eij[1] = inorm*rij[1]; - eij[2] = inorm*rij[2]; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; if (rsq <= local_cut2) { compute_magelec(i,j,rsq,eij,fmi,spj); @@ -380,36 +384,26 @@ void PairSpinMagelec::compute_magelec(int i, int j, double rsq, double eij[3], d { int *type = atom->type; int itype, jtype; + double meix,meiy,meiz; + double vx,vy,vz; itype = type[i]; jtype = type[j]; - double local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; + vx = v_mex[itype][jtype]; + vy = v_mey[itype][jtype]; + vz = v_mez[itype][jtype]; - if (rsq <= local_cut2) { - double meix,meiy,meiz; - double rx, ry, rz; - double vx, vy, vz; + meix = vy*eij[2] - vz*eij[1]; + meiy = vz*eij[0] - vx*eij[2]; + meiz = vx*eij[1] - vy*eij[0]; - rx = eij[0]; - ry = eij[1]; - rz = eij[2]; + meix *= ME[itype][jtype]; + meiy *= ME[itype][jtype]; + meiz *= ME[itype][jtype]; - vx = v_mex[itype][jtype]; - vy = v_mey[itype][jtype]; - vz = v_mez[itype][jtype]; - - meix = vy*rz - vz*ry; - meiy = vz*rx - vx*rz; - meiz = vx*ry - vy*rx; - - meix *= ME[itype][jtype]; - meiy *= ME[itype][jtype]; - meiz *= ME[itype][jtype]; - - fmi[0] += spj[1]*meiz - spj[2]*meiy; - fmi[1] += spj[2]*meix - spj[0]*meiz; - fmi[2] += spj[0]*meiy - spj[1]*meix; - } + fmi[0] += spj[1]*meiz - spj[2]*meiy; + fmi[1] += spj[2]*meix - spj[0]*meiz; + fmi[2] += spj[0]*meiy - spj[1]*meix; } /* ---------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 0daafad756..55f537cf4f 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -193,8 +193,16 @@ void PairSpinNeel::init_style() double PairSpinNeel::init_one(int i, int j) { + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + g1[j][i] = g1[i][j]; + g1_mech[j][i] = g1_mech[i][j]; + g2[j][i] = g2[i][j]; + g3[j][i] = g3[i][j]; + q1[j][i] = q1[i][j]; + q1_mech[j][i] = q1_mech[i][j]; + q2[j][i] = q2[i][j]; + q3[j][i] = q3[i][j]; return cut_spin_neel_global; } diff --git a/src/SPIN/pair_spin_neel.h b/src/SPIN/pair_spin_neel.h index 934d4a93ad..f60d7d2dca 100644 --- a/src/SPIN/pair_spin_neel.h +++ b/src/SPIN/pair_spin_neel.h @@ -51,9 +51,9 @@ class PairSpinNeel : public PairSpin { // pseudo-dipolar and pseudo-quadrupolar coeff. - double **g1, **g1_mech; // exchange coeffs gij + double **g1, **g1_mech; // neel coeffs gij double **g2, **g3; // g1 in eV, g2 adim, g3 in Ang - double **q1, **q1_mech; // exchange coeffs qij + double **q1, **q1_mech; // neel coeffs qij double **q2, **q3; // q1 in eV, q2 adim, q3 in Ang double **cut_spin_neel; // cutoff distance exchange From 6cd7299920a56d75c9d7d9cde5946d61c1e03dba Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 27 Jul 2018 12:10:43 +0200 Subject: [PATCH 359/675] update CODEOWNERS file to automatically notify @julient31 on changes to the SPIN package --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 75b79443c3..53b0a7b4f2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -17,6 +17,7 @@ src/GPU/* @ndtrung81 src/KOKKOS/* @stanmoore1 src/KIM/* @ellio167 src/LATTE/* @cnegre +src/SPIN/* @julient31 src/USER-CGDNA/* @ohenrich src/USER-CGSDK/* @akohlmey src/USER-COLVARS/* @giacomofiorin From 99985a1d5bc4072db6e1858b6b99223f080fdd51 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 27 Jul 2018 20:31:53 -0400 Subject: [PATCH 360/675] Add profile.d files to set LAMMPS_POTENTIALS environment variable --- cmake/CMakeLists.txt | 11 ++++++++++- cmake/etc/profile.d/lammps.csh.in | 2 ++ cmake/etc/profile.d/lammps.sh.in | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 cmake/etc/profile.d/lammps.csh.in create mode 100644 cmake/etc/profile.d/lammps.sh.in diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 88efd90221..8567e4395e 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -961,7 +961,16 @@ endif() ############################################################################### # Install potential files in data directory ############################################################################### -install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials DESTINATION ${CMAKE_INSTALL_DATADIR}/lammps) +set(LAMMPS_POTENTIALS_DIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps/potentials) +install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials DESTINATION ${CMAKE_INSTALL_DATADIR}/lammps/potentials) + +configure_file(etc/profile.d/lammps.sh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh @ONLY) +configure_file(etc/profile.d/lammps.csh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh @ONLY) +install( + FILES ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh + ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh + DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/profile.d +) ############################################################################### # Testing diff --git a/cmake/etc/profile.d/lammps.csh.in b/cmake/etc/profile.d/lammps.csh.in new file mode 100644 index 0000000000..def49bf75c --- /dev/null +++ b/cmake/etc/profile.d/lammps.csh.in @@ -0,0 +1,2 @@ +# set environment for LAMMPS executables to find potential files +if ( "$?LAMMPS_POTENTIALS" == 0 ) setenv LAMMPS_POTENTIALS @LAMMPS_POTENTIALS_DIR@ diff --git a/cmake/etc/profile.d/lammps.sh.in b/cmake/etc/profile.d/lammps.sh.in new file mode 100644 index 0000000000..acd75fa0cf --- /dev/null +++ b/cmake/etc/profile.d/lammps.sh.in @@ -0,0 +1,2 @@ +# set environment for LAMMPS executables to find potential files +export LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS-@LAMMPS_POTENTIALS_DIR@} From 8fccf6b9b4535bc2fb2dc801804e9c640fdad469 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Sat, 28 Jul 2018 23:31:50 -0400 Subject: [PATCH 361/675] Use absolute paths for docenv --- cmake/CMakeLists.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 8567e4395e..485e2df91c 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -920,12 +920,15 @@ if(BUILD_DOC) OUTPUT docenv COMMAND ${VIRTUALENV} docenv ) + + set(DOCENV_BINARY_DIR ${CMAKE_BINARY_DIR}/docenv/bin) + add_custom_command( OUTPUT requirements.txt DEPENDS docenv COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/utils/requirements.txt requirements.txt - COMMAND ./docenv/bin/pip install -r requirements.txt --upgrade - COMMAND ./docenv/bin/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters + COMMAND ${DOCENV_BINARY_DIR}/pip install -r requirements.txt --upgrade + COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters ) set(RST_FILES "") @@ -938,7 +941,7 @@ if(BUILD_DOC) add_custom_command( OUTPUT ${RST_FILE} DEPENDS requirements.txt docenv ${TXT_FILE} - COMMAND ./docenv/bin/txt2rst -o ${RST_DIR} ${TXT_FILE} + COMMAND ${DOCENV_BINARY_DIR}/txt2rst -o ${RST_DIR} ${TXT_FILE} ) endforeach() @@ -946,7 +949,7 @@ if(BUILD_DOC) OUTPUT html DEPENDS ${RST_FILES} COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DOC_DIR}/src ${RST_DIR} - COMMAND ./docenv/bin/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${RST_DIR} html + COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${RST_DIR} html ) add_custom_target( From fa9b46fb40dcaba96802ad88dcebde7816eac36f Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Sun, 29 Jul 2018 00:08:20 -0400 Subject: [PATCH 362/675] Add BUILD_DOC option to CMake README.md --- cmake/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cmake/README.md b/cmake/README.md index bafd440a64..b6644ffda9 100644 --- a/cmake/README.md +++ b/cmake/README.md @@ -275,6 +275,16 @@ cmake -C ../cmake/presets/std_nolib.cmake ../cmake -DPKG_GPU=on

v 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 Rg#jD8>#$nFjN?$MP(=SVXSJ5>3+ak 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

+ + BUILD_DOC + control whether to build LAMMPS documentation + +
+
off (default)
+
on
+
+ + LAMMPS_LONGLONG_TO_LONG Workaround if your system or MPI version does not recognize long long data types From 82fc3b99d9049bbd98ec2fd55ffebfd58f823c29 Mon Sep 17 00:00:00 2001 From: HaoZeke Date: Mon, 30 Jul 2018 16:59:25 +0530 Subject: [PATCH 363/675] emacs: Update mode file This is a squashed commit including the following changes: 1) Update mode header 2) Clean up white-space 3) Fix free variable warning 4) Add proper file ending stuff 5) Rename to keep conventional naming scheme 6) Updates to the readme 7) Update to conform to `package-lint` criteria 8) Add license header 9) Add in-file instructions --- tools/emacs/README.txt | 36 +++++++++++++- tools/emacs/{lammps.el => lammps-mode.el} | 57 ++++++++++++++++++++--- 2 files changed, 84 insertions(+), 9 deletions(-) rename tools/emacs/{lammps.el => lammps-mode.el} (73%) diff --git a/tools/emacs/README.txt b/tools/emacs/README.txt index 8dfc37cb85..43add16505 100644 --- a/tools/emacs/README.txt +++ b/tools/emacs/README.txt @@ -1,6 +1,7 @@ === Emacs Syntax Highlighting === Created by Aidan Thompson 12/2010 =============================== +Updated by Roit Goswami Mon Jul 30 2018 The lammps.el file provided in this directory will enable syntax highlighting for the lammps script syntax in emacs. The groupings @@ -15,9 +16,40 @@ some basic syntax highlighting of strings, comments, etc. ============================ (0) Create/edit the emacs init file ~/.emacs to contain: -(load "~/.emacs.d/lammps") +(load "~/.emacs.d/lammps-mode.el") This file may also be called ~/.emacs.el, or ~/.emacs.d/init.el -(1) Copy lammps.el to the directory ~/.emacs.d +(1) Copy lammps-mode.el to the directory ~/.emacs.d +=Update: +======== + +The package may now also be installed by a MELPA style recipe, namely: + +```lisp +(lammps-mode :fetcher github :repo "HaoZeke/lammps-mode") +``` + +For a simpler installation with `use-package` simply add: + +```lisp +(use-package lammps-mode) +``` + +The latest version of the package will be kept in sync as a squashed update on +the lammps repository as well. + +It is advisable to use the MELPA installation methods listed here: +https://melpa.org/#/getting-started + +For autoloading and auto-recognizing "in.*" and "*.lmp" files add the following +to `.emacs`: + +```lisp +(autoload 'lammps-mode "lammps-mode.el" "LAMMPS mode." t) +(setq auto-mode-alist (append auto-mode-alist + '(("in\\." . lammps-mode)) + '(("\\.lmp\\'" . lammps-mode)) + )) +``` diff --git a/tools/emacs/lammps.el b/tools/emacs/lammps-mode.el similarity index 73% rename from tools/emacs/lammps.el rename to tools/emacs/lammps-mode.el index d1ebebbbbf..9dfd119d0a 100644 --- a/tools/emacs/lammps.el +++ b/tools/emacs/lammps-mode.el @@ -1,7 +1,49 @@ -;; LAMMPS auto-mode +;;; lammps-mode.el --- basic syntax highlighting for LAMMPS files + +;; Copyright (C) 2010-18 Aidan Thompson +;; Copyright (C) 2018 Rohit Goswami + +;; Author: Aidan Thompson +;; Maintainer: Rohit Goswami +;; Created: December 4, 2010 +;; Modified: July 30, 2018 +;; Version: 1.5.0 +;; Keywords: languages, faces +;; Homepage: https://github.com/lammps/lammps/tree/master/tools/emacs +;; Package-Requires: ((emacs "24.4")) + +;; This file is not part of GNU Emacs. + +;; This file is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. + +;; This file is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Commentary: ;; translation of keyword classes from tools/vim ;; see http://xahlee.org/emacs/elisp_syntax_coloring.html +;; Put this in your .emacs file to enable autoloading of lammps-mode +;; and auto-recognition of "in.*" and "*.lmp" files: +;; +;; (autoload 'lammps-mode "lammps-mode.el" "LAMMPS mode." t) +;; (setq auto-mode-alist (append auto-mode-alist +;; '(("in\\." . lammps-mode)) +;; '(("\\.lmp\\'" . lammps-mode)) +;; )) +;; + +;;; Code: ;; define several keyword classes (defvar lammps-output '("log" @@ -136,6 +178,8 @@ (defvar lammps-variable-regexp "\\$\\({[a-zA-Z0-9_]+}\\)\\|\\$[A-Za-z]") +(defvar lammps-font-lock-keywords) + ;; clear memory (setq lammps-output nil) (setq lammps-read nil) @@ -151,8 +195,7 @@ ;; create the list for font-lock. ;; each class of keyword is given a particular face -(setq - lammps-font-lock-keywords +(setq lammps-font-lock-keywords `((,lammps-output-regexp . font-lock-function-name-face) (,lammps-read-regexp . font-lock-preprocessor-face) (,lammps-lattice-regexp . font-lock-type-face) @@ -200,11 +243,11 @@ (setq lammps-variable-regexp nil)) ;; apply it to specified filename patterns -(setq - auto-mode-alist - (append - auto-mode-alist +(setq auto-mode-alist + (append auto-mode-alist '(("in\\." . lammps-mode)) '(("\\.lmp\\'" . lammps-mode)) )) +(provide 'lammps-mode) +;;; lammps-mode.el ends here From 2c9e96be116bafca79671625fa7fb2539343a334 Mon Sep 17 00:00:00 2001 From: HaoZeke Date: Mon, 30 Jul 2018 19:58:18 +0530 Subject: [PATCH 364/675] emacs: Stop forcing filename patterns --- tools/emacs/lammps-mode.el | 7 ------- 1 file changed, 7 deletions(-) diff --git a/tools/emacs/lammps-mode.el b/tools/emacs/lammps-mode.el index 9dfd119d0a..9ba2669982 100644 --- a/tools/emacs/lammps-mode.el +++ b/tools/emacs/lammps-mode.el @@ -242,12 +242,5 @@ (setq lammps-comment-regexp nil) (setq lammps-variable-regexp nil)) -;; apply it to specified filename patterns -(setq auto-mode-alist - (append auto-mode-alist - '(("in\\." . lammps-mode)) - '(("\\.lmp\\'" . lammps-mode)) - )) - (provide 'lammps-mode) ;;; lammps-mode.el ends here From a00d7becc30ae782fe3d991e7cc8693ae5ed5b9b Mon Sep 17 00:00:00 2001 From: HaoZeke Date: Mon, 30 Jul 2018 20:10:29 +0530 Subject: [PATCH 365/675] emacs: Major readme update and refactor Also update the license and switch to GPL v2 like lammps --- tools/emacs/README.md | 76 ++++++++++++++++++++++++++++++++++++++ tools/emacs/README.txt | 55 --------------------------- tools/emacs/lammps-mode.el | 15 ++++---- 3 files changed, 83 insertions(+), 63 deletions(-) create mode 100644 tools/emacs/README.md delete mode 100644 tools/emacs/README.txt diff --git a/tools/emacs/README.md b/tools/emacs/README.md new file mode 100644 index 0000000000..ce502a27e3 --- /dev/null +++ b/tools/emacs/README.md @@ -0,0 +1,76 @@ +# GNU Emacs Syntax Highlighting + +> Copyright (C) 2010-2018 Aidan Thompson +> Copyright (C) 2018 Rohit Goswami + +The `lammps-mode.el` file provided in this directory will enable syntax +highlighting for the lammps script syntax in GNU Emacs. The groupings of +commands were originally copied from `tools/vim`. + +## Installation +**Requirements: GNU Emacs 24.\*** + +### Obtaining the Package + +#### MELPA + +The easiest installation method is via MELPA and it is advisable to use one of +the many [MELPA installation methods](https://melpa.org/#/getting-started). + +For example, with [use-package](https://github.com/jwiegley/use-package) one can +simply use the following: + +``` emacs-lisp +(use-package lammps-mode) +``` + +#### Manually + +Assuming for some reason you have downloaded the file to `~/.emacs.d/lisp` you +would do the following (kanged [from here](http://ergoemacs.org/emacs/emacs_installing_packages.html)): + +``` emacs-lisp +;; Tell emacs where is your personal elisp lib dir +(add-to-list 'load-path "~/.emacs.d/lisp/") + +;; load the package. +(load "lammps-mode") +``` + +### Autoloading \& Auto-recognition + +For autoloading and auto-recognizing `in.*` and `*.lmp` files add the following +to `.emacs`: + +``` emacs-lisp +(autoload 'lammps-mode "lammps-mode.el" "LAMMPS mode." t) +(setq auto-mode-alist (append auto-mode-alist + '(("in\\." . lammps-mode)) + '(("\\.lmp\\'" . lammps-mode)) + )) +``` + +## Status + +By far not all commands are included in the syntax file (lammps-mode.el). You +can easily add new ones to the existing classes. + +## Implementation Details + +`lammps-mode` is derived from `shell-script-mode` which provides some basic +syntax highlighting of strings, comments, etc. + +The MELPA recipe used for this package is simply: + +``` emacs-lisp +(lammps-mode :fetcher github :repo "HaoZeke/lammps-mode") +``` + +## Caveats + +* Does not work with Xemacs [See [this comment](https://github.com/lammps/lammps/pull/1022#issuecomment-408871233)] + +## License + +[GNU GPL v2](https://github.com/HaoZeke/lammps-mode/blob/master/LICENSE). +Check the file for more details. diff --git a/tools/emacs/README.txt b/tools/emacs/README.txt deleted file mode 100644 index 43add16505..0000000000 --- a/tools/emacs/README.txt +++ /dev/null @@ -1,55 +0,0 @@ -=== Emacs Syntax Highlighting === -Created by Aidan Thompson 12/2010 -=============================== -Updated by Roit Goswami Mon Jul 30 2018 - -The lammps.el file provided in this directory will enable syntax -highlighting for the lammps script syntax in emacs. The groupings -of commands were copied from tools/vim. The simulation scripts have to -end on *.lmp or start with in.* (see lammps.el). By far not all -commands are included in the syntax file (lammps.el). -You can easily add new ones to the existing classes. -'lammps-mode' is derived from 'shell-script-mode' which provides -some basic syntax highlighting of strings, comments, etc. - -=To enable the highlighting: -============================ -(0) Create/edit the emacs init file ~/.emacs to contain: - -(load "~/.emacs.d/lammps-mode.el") - -This file may also be called ~/.emacs.el, or ~/.emacs.d/init.el - -(1) Copy lammps-mode.el to the directory ~/.emacs.d - -=Update: -======== - -The package may now also be installed by a MELPA style recipe, namely: - -```lisp -(lammps-mode :fetcher github :repo "HaoZeke/lammps-mode") -``` - -For a simpler installation with `use-package` simply add: - -```lisp -(use-package lammps-mode) -``` - -The latest version of the package will be kept in sync as a squashed update on -the lammps repository as well. - -It is advisable to use the MELPA installation methods listed here: -https://melpa.org/#/getting-started - -For autoloading and auto-recognizing "in.*" and "*.lmp" files add the following -to `.emacs`: - -```lisp -(autoload 'lammps-mode "lammps-mode.el" "LAMMPS mode." t) -(setq auto-mode-alist (append auto-mode-alist - '(("in\\." . lammps-mode)) - '(("\\.lmp\\'" . lammps-mode)) - )) -``` diff --git a/tools/emacs/lammps-mode.el b/tools/emacs/lammps-mode.el index 9ba2669982..37e8a32116 100644 --- a/tools/emacs/lammps-mode.el +++ b/tools/emacs/lammps-mode.el @@ -14,20 +14,19 @@ ;; This file is not part of GNU Emacs. -;; This file is free software; you can redistribute it and/or modify +;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. +;; the Free Software Foundation; either version 2 of the License, or +;; (at your option) any later version. -;; This file is distributed in the hope that it will be useful, +;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to -;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; You should have received a copy of the GNU General Public License along +;; with this program; if not, write to the Free Software Foundation, Inc., +;; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ;;; Commentary: ;; translation of keyword classes from tools/vim From b76f86602a4f7fb2cdfa7464f276b45e9dbe9e06 Mon Sep 17 00:00:00 2001 From: Amrita Goswami <32496815+amritagos@users.noreply.github.com> Date: Mon, 30 Jul 2018 21:18:59 +0530 Subject: [PATCH 366/675] docs: Fix spelling mistakes and clarify Tools.txt --- doc/src/Tools.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index 4c5fbbd453..7165010da3 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -249,9 +249,9 @@ These tools were provided by Andres Jaramillo-Botero at CalTech emacs tool :h4,link(emacs) -The tools/emacs directory contains a Lips add-on file for Emacs that -enables a lammps-mode for editing of input scripts when using Emacs, -with various highlighting options setup. +The tools/emacs directory contains an Emacs Lisp add-on file for GNU Emacs +that enables a lammps-mode for editing input scripts when using GNU Emacs, +with various highlighting options set up. These tools were provided by Aidan Thompson at Sandia (athomps at sandia.gov). From 882e1e5138387bfe6b68333ba4364e8d3b13f13c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 30 Jul 2018 18:32:28 +0200 Subject: [PATCH 367/675] resolve dependency problem between RIGID and USER-OMP package --- cmake/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 60a0f5d48f..e5db6c8bbb 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -585,8 +585,14 @@ if(PKG_USER-OMP) # detects styles which have USER-OMP version RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES) + get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES) + # manually add classes, that are not styles + if(PKG_RIGID) + list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_rigid_nh_omp.cpp) + endif() + list(APPEND LIB_SOURCES ${USER-OMP_SOURCES}) include_directories(${USER-OMP_SOURCES_DIR}) endif() From 82c9e8a52c88f32617adbe1d54a4aff106724071 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 30 Jul 2018 18:56:56 +0200 Subject: [PATCH 368/675] add explicit pattern based dependencies for CORESHELL packages, so KSPACE is no longer enforced --- cmake/CMakeLists.txt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index e5db6c8bbb..40b0a8f01f 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -153,7 +153,7 @@ if(ENABLE_TESTING) enable_testing() endif(ENABLE_TESTING) -set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR +set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE @@ -161,6 +161,7 @@ set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANU USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM) set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) +set(OTHER_PACKAGES CORESHELL) foreach(PKG ${DEFAULT_PACKAGES}) option(PKG_${PKG} "Build ${PKG} Package" OFF) endforeach() @@ -180,7 +181,6 @@ pkg_depends(USER-ATC MANYBODY) pkg_depends(USER-LB MPI) pkg_depends(USER-MISC MANYBODY) pkg_depends(USER-PHONON KSPACE) -pkg_depends(CORESHELL KSPACE) ###################################################### # packages with special compiler needs or external libs @@ -574,6 +574,20 @@ endif() # packages which selectively include variants based on enabled styles # e.g. accelerator packages ###################################################################### +if(PKG_CORESHELL) + set(CORESHELL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/CORESHELL) + set(CORESHELL_SOURCES) + set_property(GLOBAL PROPERTY "CORESHELL_SOURCES" "${CORESHELL_SOURCES}") + + # detects styles which have a CORESHELL version + RegisterStylesExt(${CORESHELL_SOURCES_DIR} cs CORESHELL_SOURCES) + + get_property(CORESHELL_SOURCES GLOBAL PROPERTY CORESHELL_SOURCES) + + list(APPEND LIB_SOURCES ${CORESHELL_SOURCES}) + include_directories(${CORESHELL_SOURCES_DIR}) +endif() + if(PKG_USER-OMP) set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP) set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp From b02362b94317eb503c1994a1e0eaab374f4b00e6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 30 Jul 2018 19:09:16 +0200 Subject: [PATCH 369/675] add manual treatment of source dependencies between USER-REAXC and USER-OMP --- cmake/CMakeLists.txt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 40b0a8f01f..1c86ebc695 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -602,11 +602,24 @@ if(PKG_USER-OMP) get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES) - # manually add classes, that are not styles + # manually add package dependent source files from USER-OMP that do not provide styles + if(PKG_RIGID) list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_rigid_nh_omp.cpp) endif() + if(PKG_USER-REAXC) + list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/reaxc_bond_orders_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_hydrogen_bonds_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_nonbonded_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_bonds_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_init_md_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_torsion_angles_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_forces_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_multi_body_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_valence_angles_omp.cpp) + endif() + list(APPEND LIB_SOURCES ${USER-OMP_SOURCES}) include_directories(${USER-OMP_SOURCES_DIR}) endif() From ee822bec1be9b7bac77c6ca014568da467e80440 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 30 Jul 2018 20:04:31 +0200 Subject: [PATCH 370/675] selectively handle dependency of qeq/fire on MANYBODY --- cmake/CMakeLists.txt | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 1c86ebc695..1e58a670aa 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -154,14 +154,14 @@ if(ENABLE_TESTING) endif(ENABLE_TESTING) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR - KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SPIN SNAP + KSPACE MANYBODY MC MEAM MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM) set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) -set(OTHER_PACKAGES CORESHELL) +set(OTHER_PACKAGES CORESHELL QEQ) foreach(PKG ${DEFAULT_PACKAGES}) option(PKG_${PKG} "Build ${PKG} Package" OFF) endforeach() @@ -176,7 +176,7 @@ macro(pkg_depends PKG1 PKG2) endmacro() pkg_depends(MPIIO MPI) -pkg_depends(QEQ MANYBODY) +#pkg_depends(QEQ MANYBODY) pkg_depends(USER-ATC MANYBODY) pkg_depends(USER-LB MPI) pkg_depends(USER-MISC MANYBODY) @@ -588,6 +588,27 @@ if(PKG_CORESHELL) include_directories(${CORESHELL_SOURCES_DIR}) endif() +# Fix qeq/fire requires MANYBODY (i.e. COMB and COMB3) to be installed +if(PKG_QEQ) + set(QEQ_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/QEQ) + file(GLOB QEQ_HEADERS ${QEQ_SOURCES_DIR}/fix*.h) + file(GLOB QEQ_SOURCES ${QEQ_SOURCES_DIR}/fix*.cpp) + + if(NOT PKG_MANYBODY) + list(REMOVE_ITEM QEQ_HEADERS ${QEQ_SOURCES_DIR}/fix_qeq_fire.h) + list(REMOVE_ITEM QEQ_SOURCES ${QEQ_SOURCES_DIR}/fix_qeq_fire.cpp) + endif() + set_property(GLOBAL PROPERTY "QEQ_SOURCES" "${QEQ_SOURCES}") + + foreach(MY_HEADER ${QEQ_HEADERS}) + AddStyleHeader(${MY_HEADER} FIX) + endforeach() + + get_property(QEQ_SOURCES GLOBAL PROPERTY QEQ_SOURCES) + list(APPEND LIB_SOURCES ${QEQ_SOURCES}) + include_directories(${QEQ_SOURCES_DIR}) +endif() + if(PKG_USER-OMP) set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP) set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp From d9c328932fac636d6d0d187bde2fdeb9ea3884e7 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 30 Jul 2018 12:31:12 -0600 Subject: [PATCH 371/675] changes to Packages and Speed doc files --- doc/src/Errors_messages.txt | 6 +- doc/src/Errors_warnings.txt | 6 +- doc/src/Examples.txt | 2 +- doc/src/Manual.txt | 29 +- doc/src/Packages.txt | 39 ++ ...tion_packages.txt => Packages_details.txt} | 330 ++++++--------- doc/src/Packages_standard.txt | 65 +++ doc/src/Packages_user.txt | 74 ++++ doc/src/Section_accelerate.txt | 391 ------------------ doc/src/Section_commands.txt | 44 +- doc/src/Section_intro.txt | 2 +- doc/src/Section_start.txt | 100 ++--- doc/src/Speed.txt | 69 ++++ doc/src/{Section_perf.txt => Speed_bench.txt} | 19 +- doc/src/Speed_compare.txt | 73 ++++ doc/src/{accelerate_gpu.txt => Speed_gpu.txt} | 15 +- .../{accelerate_intel.txt => Speed_intel.txt} | 14 +- ...accelerate_kokkos.txt => Speed_kokkos.txt} | 20 +- doc/src/Speed_measure.txt | 55 +++ doc/src/{accelerate_omp.txt => Speed_omp.txt} | 11 +- doc/src/{accelerate_opt.txt => Speed_opt.txt} | 11 +- doc/src/Speed_packages.txt | 191 +++++++++ doc/src/Speed_tips.txt | 63 +++ doc/src/angle_charmm.txt | 11 +- doc/src/angle_class2.txt | 11 +- doc/src/angle_cosine.txt | 11 +- doc/src/angle_cosine_delta.txt | 11 +- doc/src/angle_cosine_periodic.txt | 11 +- doc/src/angle_cosine_shift.txt | 11 +- doc/src/angle_cosine_shift_exp.txt | 11 +- doc/src/angle_cosine_squared.txt | 11 +- doc/src/angle_dipole.txt | 11 +- doc/src/angle_fourier.txt | 11 +- doc/src/angle_fourier_simple.txt | 11 +- doc/src/angle_harmonic.txt | 11 +- doc/src/angle_quartic.txt | 11 +- doc/src/angle_table.txt | 11 +- doc/src/atom_style.txt | 12 +- doc/src/bond_class2.txt | 11 +- doc/src/bond_fene.txt | 11 +- doc/src/bond_fene_expand.txt | 11 +- doc/src/bond_gromos.txt | 11 +- doc/src/bond_harmonic.txt | 11 +- doc/src/bond_harmonic_shift.txt | 11 +- doc/src/bond_harmonic_shift_cut.txt | 11 +- doc/src/bond_morse.txt | 11 +- doc/src/bond_nonlinear.txt | 11 +- doc/src/bond_quartic.txt | 11 +- doc/src/bond_table.txt | 11 +- doc/src/compute_pressure.txt | 11 +- doc/src/compute_temp.txt | 11 +- doc/src/compute_temp_partial.txt | 11 +- doc/src/dihedral_charmm.txt | 11 +- doc/src/dihedral_class2.txt | 11 +- doc/src/dihedral_cosine_shift_exp.txt | 11 +- doc/src/dihedral_fourier.txt | 11 +- doc/src/dihedral_harmonic.txt | 11 +- doc/src/dihedral_helix.txt | 11 +- doc/src/dihedral_multi_harmonic.txt | 11 +- doc/src/dihedral_nharmonic.txt | 11 +- doc/src/dihedral_opls.txt | 11 +- doc/src/dihedral_quadratic.txt | 11 +- doc/src/dihedral_table.txt | 11 +- doc/src/fix_addforce.txt | 16 +- doc/src/fix_aveforce.txt | 16 +- doc/src/fix_deform.txt | 13 +- doc/src/fix_dpd_energy.txt | 11 +- doc/src/fix_enforce2d.txt | 11 +- doc/src/fix_eos_table_rx.txt | 11 +- doc/src/fix_freeze.txt | 16 +- doc/src/fix_gravity.txt | 11 +- doc/src/fix_langevin.txt | 11 +- doc/src/fix_momentum.txt | 11 +- doc/src/fix_nh.txt | 11 +- doc/src/fix_nph_asphere.txt | 11 +- doc/src/fix_nph_body.txt | 11 +- doc/src/fix_nph_sphere.txt | 11 +- doc/src/fix_nphug.txt | 11 +- doc/src/fix_npt_asphere.txt | 11 +- doc/src/fix_npt_body.txt | 11 +- doc/src/fix_npt_sphere.txt | 11 +- doc/src/fix_nve.txt | 11 +- doc/src/fix_nve_asphere.txt | 11 +- doc/src/fix_nve_sphere.txt | 11 +- doc/src/fix_nvt_asphere.txt | 11 +- doc/src/fix_nvt_body.txt | 11 +- doc/src/fix_nvt_sllod.txt | 11 +- doc/src/fix_nvt_sphere.txt | 11 +- doc/src/fix_qeq_comb.txt | 11 +- doc/src/fix_qeq_reax.txt | 11 +- doc/src/fix_rigid.txt | 11 +- doc/src/fix_rx.txt | 11 +- doc/src/fix_setforce.txt | 16 +- doc/src/fix_shake.txt | 16 +- doc/src/fix_shardlow.txt | 11 +- doc/src/fix_wall.txt | 11 +- doc/src/fix_wall_reflect.txt | 11 +- doc/src/improper_class2.txt | 11 +- doc/src/improper_cossq.txt | 11 +- doc/src/improper_cvff.txt | 11 +- doc/src/improper_fourier.txt | 11 +- doc/src/improper_harmonic.txt | 11 +- doc/src/improper_ring.txt | 11 +- doc/src/improper_umbrella.txt | 11 +- doc/src/kspace_style.txt | 15 +- doc/src/lammps.book | 12 +- doc/src/package.txt | 6 +- doc/src/pair_adp.txt | 11 +- doc/src/pair_agni.txt | 14 +- doc/src/pair_airebo.txt | 11 +- doc/src/pair_beck.txt | 11 +- doc/src/pair_born.txt | 11 +- doc/src/pair_buck.txt | 11 +- doc/src/pair_buck_long.txt | 11 +- doc/src/pair_charmm.txt | 11 +- doc/src/pair_class2.txt | 11 +- doc/src/pair_colloid.txt | 11 +- doc/src/pair_comb.txt | 11 +- doc/src/pair_coul.txt | 11 +- doc/src/pair_dipole.txt | 11 +- doc/src/pair_dpd.txt | 11 +- doc/src/pair_dpd_fdt.txt | 11 +- doc/src/pair_eam.txt | 9 +- doc/src/pair_edip.txt | 11 +- doc/src/pair_eim.txt | 11 +- doc/src/pair_exp6_rx.txt | 11 +- doc/src/pair_gauss.txt | 11 +- doc/src/pair_gayberne.txt | 11 +- doc/src/pair_gran.txt | 11 +- doc/src/pair_gromacs.txt | 11 +- doc/src/pair_hbond_dreiding.txt | 11 +- doc/src/pair_hybrid.txt | 8 +- doc/src/pair_kim.txt | 4 +- doc/src/pair_lj.txt | 11 +- doc/src/pair_lj96.txt | 11 +- doc/src/pair_lj_cubic.txt | 11 +- doc/src/pair_lj_expand.txt | 11 +- doc/src/pair_lj_long.txt | 11 +- doc/src/pair_lj_smooth.txt | 11 +- doc/src/pair_lj_smooth_linear.txt | 11 +- doc/src/pair_lj_soft.txt | 11 +- doc/src/pair_meam_spline.txt | 11 +- doc/src/pair_morse.txt | 11 +- doc/src/pair_multi_lucy_rx.txt | 11 +- doc/src/pair_nb3b_harmonic.txt | 11 +- doc/src/pair_nm.txt | 11 +- doc/src/pair_peri.txt | 11 +- doc/src/pair_reaxc.txt | 21 +- doc/src/pair_resquared.txt | 11 +- doc/src/pair_sdk.txt | 11 +- doc/src/pair_snap.txt | 11 +- doc/src/pair_soft.txt | 11 +- doc/src/pair_sw.txt | 11 +- doc/src/pair_table.txt | 11 +- doc/src/pair_table_rx.txt | 11 +- doc/src/pair_tersoff.txt | 11 +- doc/src/pair_tersoff_mod.txt | 11 +- doc/src/pair_tersoff_zbl.txt | 11 +- doc/src/pair_thole.txt | 11 +- doc/src/pair_ufm.txt | 11 +- doc/src/pair_vashishta.txt | 11 +- doc/src/pair_yukawa.txt | 11 +- doc/src/pair_yukawa_colloid.txt | 11 +- doc/src/pair_zbl.txt | 11 +- doc/src/region.txt | 16 +- doc/src/run_style.txt | 30 +- 166 files changed, 1618 insertions(+), 1637 deletions(-) create mode 100644 doc/src/Packages.txt rename doc/src/{Section_packages.txt => Packages_details.txt} (86%) create mode 100644 doc/src/Packages_standard.txt create mode 100644 doc/src/Packages_user.txt delete mode 100644 doc/src/Section_accelerate.txt create mode 100644 doc/src/Speed.txt rename doc/src/{Section_perf.txt => Speed_bench.txt} (86%) create mode 100644 doc/src/Speed_compare.txt rename doc/src/{accelerate_gpu.txt => Speed_gpu.txt} (96%) rename doc/src/{accelerate_intel.txt => Speed_intel.txt} (98%) rename doc/src/{accelerate_kokkos.txt => Speed_kokkos.txt} (97%) create mode 100644 doc/src/Speed_measure.txt rename doc/src/{accelerate_omp.txt => Speed_omp.txt} (96%) rename doc/src/{accelerate_opt.txt => Speed_opt.txt} (86%) create mode 100644 doc/src/Speed_packages.txt create mode 100644 doc/src/Speed_tips.txt diff --git a/doc/src/Errors_messages.txt b/doc/src/Errors_messages.txt index 1563e02901..39eabbd232 100644 --- a/doc/src/Errors_messages.txt +++ b/doc/src/Errors_messages.txt @@ -21,9 +21,9 @@ means that line #78 in the file src/velocity.cpp generated the error. Looking in the source code may help you figure out what went wrong. Note that error messages from "user-contributed -packages"_Section_package.html#table_user are not listed here. If -such an error occurs and is not self-explanatory, you'll need to look -in the source code or contact the author of the package. +packages"_Packages_user.html are not listed here. If such an error +occurs and is not self-explanatory, you'll need to look in the source +code or contact the author of the package. Doc page with "WARNING messages"_Errors_warnings.html diff --git a/doc/src/Errors_warnings.txt b/doc/src/Errors_warnings.txt index 0324f563b6..1da777043c 100644 --- a/doc/src/Errors_warnings.txt +++ b/doc/src/Errors_warnings.txt @@ -21,9 +21,9 @@ means that line #187 in the file src/domain.cpp generated the error. Looking in the source code may help you figure out what went wrong. Note that warning messages from "user-contributed -packages"_Section_start.html#table_user are not listed here. If such -a warning occurs and is not self-explanatory, you'll need to look in -the source code or contact the author of the package. +packages"_Packages_user.html are not listed here. If such a warning +occurs and is not self-explanatory, you'll need to look in the source +code or contact the author of the package. Doc page with "ERROR messages"_Errors_messages.html diff --git a/doc/src/Examples.txt b/doc/src/Examples.txt index 08afca8b20..467ddcc959 100644 --- a/doc/src/Examples.txt +++ b/doc/src/Examples.txt @@ -143,5 +143,5 @@ The USER directory has a large number of sub-directories which correspond by name to a USER package. They contain scripts that illustrate how to use the command(s) provided in that package. Many of the sub-directories have their own README files which give further -instructions. See the "Section 4"_Section_packages.html doc +instructions. See the "Packages_details"_Packages_details.html doc page for more info on specific USER packages. diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 4481c911a0..31b8a6a1d4 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -111,11 +111,10 @@ it gives quick access to documentation for all LAMMPS commands. Section_intro Section_start Section_commands - Section_packages - Section_accelerate + Packages + Speed Section_howto Examples - Section_perf Tools Modify Python @@ -167,19 +166,8 @@ END_RST --> 3.3 "Input script structure"_cmd_3 :b 3.4 "Commands listed by category"_cmd_4 :b 3.5 "Commands listed alphabetically"_cmd_5 :ule,b -"Packages"_Section_packages.html :l - 4.1 "Standard packages"_pkg_1 :ulb,b - 4.2 "User packages"_pkg_2 :ule,b -"Accelerating LAMMPS performance"_Section_accelerate.html :l - 5.1 "Measuring performance"_acc_1 :ulb,b - 5.2 "Algorithms and code options to boost performace"_acc_2 :b - 5.3 "Accelerator packages with optimized styles"_acc_3 :b - 5.3.1 "GPU package"_accelerate_gpu.html :b - 5.3.2 "USER-INTEL package"_accelerate_intel.html :b - 5.3.3 "KOKKOS package"_accelerate_kokkos.html :b - 5.3.4 "USER-OMP package"_accelerate_omp.html :b - 5.3.5 "OPT package"_accelerate_opt.html :b - 5.4 "Comparison of various accelerator packages"_acc_4 :ule,b +"Optional packages"_Packages.html :l +"Accelerate performance"_Speed.html :l "How-to discussions"_Section_howto.html :l 6.1 "Restarting a simulation"_howto_1 :ulb,b 6.2 "2d simulations"_howto_2 :b @@ -209,7 +197,6 @@ END_RST --> 6.26 "Adiabatic core/shell model"_howto_26 :b 6.27 "Drude induced dipoles"_howto_27 :ule,b "Example scripts"_Examples.html :l -"Performance & scalability"_Section_perf.html :l "Auxiliary tools"_Tools.html :l "Modify & extend LAMMPS"_Modify.html :l "Use Python with LAMMPS"_Python.html :l @@ -240,14 +227,6 @@ END_RST --> :link(cmd_4,Section_commands.html#cmd_4) :link(cmd_5,Section_commands.html#cmd_5) -:link(pkg_1,Section_packages.html#pkg_1) -:link(pkg_2,Section_packages.html#pkg_2) - -:link(acc_1,Section_accelerate.html#acc_1) -:link(acc_2,Section_accelerate.html#acc_2) -:link(acc_3,Section_accelerate.html#acc_3) -:link(acc_4,Section_accelerate.html#acc_4) - :link(howto_1,Section_howto.html#howto_1) :link(howto_2,Section_howto.html#howto_2) :link(howto_3,Section_howto.html#howto_3) diff --git a/doc/src/Packages.txt b/doc/src/Packages.txt new file mode 100644 index 0000000000..6498d03063 --- /dev/null +++ b/doc/src/Packages.txt @@ -0,0 +1,39 @@ +"Previous Section"_Section_commands.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Speed.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Optional packages :h2 + +This section gives an overview of the optional packages that extend +LAMMPS functionality. Packages are groups of files that enable a +specific set of features. For example, force fields for molecular +systems or rigid-body constraint are in packages. You can see the +list of all packages and "make" commands to manage them by typing +"make package" from within the src directory of the LAMMPS +distribution. "Section 2.3"_Section_start.html#start_3 gives general +info on how to install and un-install packages as part of the LAMMPS +build process. + + + + + +"Standard packages"_Packages_standard.html +"User packages"_Packages_user.html +"Details on each package"_Packages_details.html :ul + + diff --git a/doc/src/Section_packages.txt b/doc/src/Packages_details.txt similarity index 86% rename from doc/src/Section_packages.txt rename to doc/src/Packages_details.txt index 340a77310d..af18d097d9 100644 --- a/doc/src/Section_packages.txt +++ b/doc/src/Packages_details.txt @@ -1,6 +1,5 @@ -"Previous Section"_Section_commands.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_accelerate.html :c +"Higher level section"_Packages.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -8,152 +7,89 @@ Section"_Section_accelerate.html :c :line -4. Packages :h2 +Package details :h3 -This section gives an overview of the optional packages that extend -LAMMPS functionality with instructions on how to build LAMMPS with -each of them. Packages are groups of files that enable a specific set -of features. For example, force fields for molecular systems or -granular systems are in packages. You can see the list of all -packages and "make" commands to manage them by typing "make package" -from within the src directory of the LAMMPS distribution. "Section -2.3"_Section_start.html#start_3 gives general info on how to install -and un-install packages as part of the LAMMPS build process. - -There are two kinds of packages in LAMMPS, standard and user packages: - -"Table of standard packages"_#table_standard -"Table of user packages"_#table_user :ul - -Either of these kinds of packages may work as is, may require some -additional code compiled located in the lib folder, or may require -an external library to be downloaded, compiled, installed, and LAMMPS -configured to know about its location and additional compiler flags. -You can often do the build of the internal or external libraries -in one step by typing "make lib-name args='...'" from the src dir, -with appropriate arguments included in args='...'. If you just type -"make lib-name" you should see a help message about supported flags -and some examples. For more details about this, please study the -tables below and the sections about the individual packages. - -Standard packages are supported by the LAMMPS developers and are -written in a syntax and style consistent with the rest of LAMMPS. -This means the developers will answer questions about them, debug and -fix them if necessary, and keep them compatible with future changes to -LAMMPS. - -User packages have been contributed by users, and begin with the -"user" prefix. If they are a single command (single file), they are -typically in the user-misc package. User packages don't necessarily -meet the requirements of the standard packages. This means the -developers will try to keep things working and usually can answer -technical questions about compiling the package. If you have problems -using a feature provided in a user package, you may need to contact -the contributor directly to get help. Information on how to submit -additions you make to LAMMPS as single files or as a standard or user -package are given in the "Modify contribute"_Modify.html doc page. - -Following the next two tables is a sub-section for each package. It -lists authors (if applicable) and summarizes the package contents. It -has specific instructions on how to install the package, including (if -necessary) downloading or building any extra library it requires. It -also gives links to documentation, example scripts, and -pictures/movies (if available) that illustrate use of the package. +Here is a brief description of all the standard and user packages in +LAMMPS. It lists authors (if applicable) and summarizes the package +contents. It has specific instructions on how to install the package, +including, if necessary, info on how to download or build any extra +library it requires. It also gives links to documentation, example +scripts, and pictures/movies (if available) that illustrate use of the +package. NOTE: To see the complete list of commands a package adds to LAMMPS, -just look at the files in its src directory, e.g. "ls src/GRANULAR". -Files with names that start with fix, compute, atom, pair, bond, -angle, etc correspond to commands with the same style names. +you can examine the files in its src directory, e.g. "ls +src/GRANULAR". Files with names that start with fix, compute, atom, +pair, bond, angle, etc correspond to commands with the same style name +as contained in the file name. -In these two tables, the "Example" column is a sub-directory in the -examples directory of the distribution which has an input script that -uses the package. E.g. "peptide" refers to the examples/peptide -directory; USER/atc refers to the examples/USER/atc directory. The -"Library" column indicates whether an extra library is needed to build -and use the package: +"ASPHERE"_#ASPHERE, +"BODY"_#BODY, +"CLASS2"_#CLASS2, +"COLLOID"_#COLLOID, +"COMPRESS"_#COMPRESS, +"CORESHELL"_#CORESHELL, +"DIPOLE"_#DIPOLE, +"GPU"_#GPU, +"GRANULAR"_#GRANULAR, +"KIM"_#KIM, +"KOKKOS"_#KOKKOS, +"KSPACE"_#KSPACE, +"LATTE"_#LATTE, +"MANYBODY"_#MANYBODY, +"MC"_#MC, +"MEAM"_#MEAM, +"MISC"_#MISC, +"MOLECULE"_#MOLECULE, +"MPIIO"_#MPIIO, +"MSCG"_#MSCG, +"OPT"_#OPT, +"PERI"_#PERI, +"POEMS"_#POEMS, +"PYTHON"_#PYTHON, +"QEQ"_#QEQ, +"REAX"_#REAX, +"REPLICA"_#REPLICA, +"RIGID"_#RIGID, +"SHOCK"_#SHOCK, +"SNAP"_#SNAP, +"SRD"_#SRD, +"VORONOI"_#VORONOI :tb(c=6,ea=c) -dash = no library -sys = system library: you likely have it on your machine -int = internal library: provided with LAMMPS, but you may need to build it -ext = external library: you will need to download and install it on your machine :ul - -:line -:line - -[Standard packages] :link(table_standard),p - -Package, Description, Doc page, Example, Library -"ASPHERE"_#ASPHERE, aspherical particle models, "Section 6.6.14"_Section_howto.html#howto_14, ellipse, - -"BODY"_#BODY, body-style particles, "body"_body.html, body, - -"CLASS2"_#CLASS2, class 2 force fields, "pair_style lj/class2"_pair_class2.html, -, - -"COLLOID"_#COLLOID, colloidal particles, "atom_style colloid"_atom_style.html, colloid, - -"COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys -"CORESHELL"_#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, - -"DIPOLE"_#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, - -"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int -"GRANULAR"_#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, - -"KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext -"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, - -"LATTE"_#LATTE, quantum DFTB forces via LATTE, "fix latte"_fix_latte.html, latte, ext -"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, - -"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, - -"MEAM"_#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int -"MISC"_#MISC, miscellanous single-file commands, -, -, - -"MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, - -"MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, - -"MSCG"_#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext -"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, - -"POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int -"PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys -"QEQ"_#QEQ, QEq charge equilibration, "fix qeq"_fix_qeq.html, qeq, - -"REAX"_#REAX, ReaxFF potential (Fortran), "pair_style reax"_pair_reax.html, reax, int -"REPLICA"_#REPLICA, multi-replica methods, "Section 6.6.5"_Section_howto.html#howto_5, tad, - -"RIGID"_#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, - -"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, - -"SNAP"_#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, - -"SPIN"_#SPIN, magnetic atomic spin dynamics, "Section 6.6.28"_Section_howto.html#howto_28, SPIN, - -"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - -"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l) - -[USER packages] :link(table_user),p - -Package, Description, Doc page, Example, Library -"USER-ATC"_#USER-ATC, atom-to-continuum coupling, "fix atc"_fix_atc.html, USER/atc, int -"USER-AWPMD"_#USER-AWPMD, wave-packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int -"USER-BOCS"_#USER-BOCS, BOCS bottom up coarse graining, "fix bocs"_fix_bocs.html, USER/bocs, - -"USER-CGDNA"_#USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, - -"USER-CGSDK"_#USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, - -"USER-COLVARS"_#USER-COLVARS, collective variables library, "fix colvars"_fix_colvars.html, USER/colvars, int -"USER-DIFFRACTION"_#USER-DIFFRACTION, virtual x-ray and electron diffraction,"compute xrd"_compute_xrd.html, USER/diffraction, - -"USER-DPD"_#USER-DPD, reactive dissipative particle dynamics, src/USER-DPD/README, USER/dpd, - -"USER-DRUDE"_#USER-DRUDE, Drude oscillators, "tutorial"_tutorial_drude.html, USER/drude, - -"USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, - -"USER-FEP"_#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, - -"USER-H5MD"_#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext -"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, - -"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, - -"USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, - -"USER-MESO"_#USER-MESO, mesoscale DPD models, "pair_style edpd"_pair_meso.html, USER/meso, - -"USER-MGPT"_#USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, - -"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, - -"USER-MOFFF"_#USER-MOFFF, styles for "MOF-FF"_MOFplus force field, "pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html, USER/mofff, - -"USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext -"USER-NETCDF"_#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext -"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"USER-PHONON"_#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, - -"USER-QMMM"_#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext -"USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, - -"USER-QUIP"_#USER-QUIP, QUIP/libatoms interface,"pair_style quip"_pair_quip.html, USER/quip, ext -"USER-REAXC"_#USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, - -"USER-SMD"_#USER-SMD, smoothed Mach dynamics,"SMD User Guide"_PDF/SMD_LAMMPS_userguide.pdf, USER/smd, ext -"USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, - -"USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, - -"USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, - -"USER-UEF"_#USER-UEF, extensional flow,"fix nvt/uef"_fix_nh_uef.html, USER/uef, - -"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l) +"USER-ATC"_#USER-ATC, +"USER-AWPMD"_#USER-AWPMD, +"USER-BOCS"_#USER-BOCS, +"USER-CGDNA"_#USER-CGDNA, +"USER-CGSDK"_#USER-CGSDK, +"USER-COLVARS"_#USER-COLVARS, +"USER-DIFFRACTION"_#USER-DIFFRACTION, +"USER-DPD"_#USER-DPD, +"USER-DRUDE"_#USER-DRUDE, +"USER-EFF"_#USER-EFF, +"USER-FEP"_#USER-FEP, +"USER-H5MD"_#USER-H5MD, +"USER-INTEL"_#USER-INTEL, +"USER-LB"_#USER-LB, +"USER-MANIFOLD"_#USER-MANIFOLD, +"USER-MEAMC"_#USER-MEAMC, +"USER-MESO"_#USER-MESO, +"USER-MGPT"_#USER-MGPT, +"USER-MISC"_#USER-MISC, +"USER-MOFFF"_#USER-MOFFF, +"USER-MOLFILE"_#USER-MOLFILE, +"USER-NETCDF"_#USER-NETCDF, +"USER-OMP"_#USER-OMP, +"USER-PHONON"_#USER-PHONON, +"USER-QMMM"_#USER-QMMM, +"USER-QTB"_#USER-QTB, +"USER-QUIP"_#USER-QUIP, +"USER-REAXC"_#USER-REAXC, +"USER-SMD"_#USER-SMD, +"USER-SMTBQ"_#USER-SMTBQ, +"USER-SPH"_#USER-SPH, +"USER-TALLY"_#USER-TALLY, +"USER-UEF"_#USER-UEF, +"USER-VTK"_#USER-VTK :tb(c=6,ea=c) :line :line @@ -380,14 +316,14 @@ GPU package :link(GPU),h4 [Contents:] Dozens of pair styles and a version of the PPPM long-range Coulombic -solver optimized for GPUs. All such styles have a "gpu" as a -suffix in their style name. The GPU code can be compiled with either -CUDA or OpenCL, however the OpenCL variants are no longer actively -maintained and only the CUDA versions are regularly tested. -"Section 5.3.1"_accelerate_gpu.html gives details of what -hardware and GPU software is required on your system, -and details on how to build and use this package. Its styles can be -invoked at run time via the "-sf gpu" or "-suffix gpu" "command-line +solver optimized for GPUs. All such styles have a "gpu" as a suffix +in their style name. The GPU code can be compiled with either CUDA or +OpenCL, however the OpenCL variants are no longer actively maintained +and only the CUDA versions are regularly tested. The "Speed +gpu"_Speed_gpu.html doc page gives details of what hardware and GPU +software is required on your system, and details on how to build and +use this package. Its styles can be invoked at run time via the "-sf +gpu" or "-suffix gpu" "command-line switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS package, which has GPU-enabled styles. @@ -453,8 +389,8 @@ GPU library. src/GPU: filenames -> commands src/GPU/README lib/gpu/README -"Section 5.3"_Section_accelerate.html#acc_3 -"Section 5.3.1"_accelerate_gpu.html +"Speed packages"_Speed_packages.html +"Speed gpu"_Speed_gpu.html.html "Section 2.6 -sf gpu"_Section_start.html#start_6 "Section 2.6 -pk gpu"_Section_start.html#start_6 "package gpu"_package.html @@ -579,10 +515,10 @@ Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute styles adapted to compile using the Kokkos library which can convert them to OpenMP or CUDA code so that they run efficiently on multicore CPUs, KNLs, or GPUs. All the styles have a "kk" as a suffix in their -style name. "Section 5.3.3"_accelerate_kokkos.html gives details of -what hardware and software is required on your system, and how to -build and use this package. Its styles can be invoked at run time via -the "-sf kk" or "-suffix kk" "command-line +style name. The "Speed kokkos"_Speed_kokkos.html doc page gives +details of what hardware and software is required on your system, and +how to build and use this package. Its styles can be invoked at run +time via the "-sf kk" or "-suffix kk" "command-line switches"_Section_start.html#start_6. Also see the "GPU"_#GPU, "OPT"_#OPT, "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP packages, which have styles optimized for CPUs, KNLs, and GPUs. @@ -649,8 +585,8 @@ make machine :pre src/KOKKOS: filenames -> commands src/KOKKOS/README lib/kokkos/README -"Section 5.3"_Section_accelerate.html#acc_3 -"Section 5.3.3"_accelerate_kokkos.html +"Speed packages"_Speed_packages.html +"Speed kokkos"_Speed_kokkos.html "Section 2.6 -k on ..."_Section_start.html#start_6 "Section 2.6 -sf kk"_Section_start.html#start_6 "Section 2.6 -pk kokkos"_Section_start.html#start_6 @@ -1048,9 +984,9 @@ OPT package :link(OPT),h4 A handful of pair styles which are optimized for improved CPU performance on single or multiple cores. These include EAM, LJ, CHARMM, and Morse potentials. The styles have an "opt" suffix in -their style name. "Section 5.3.5"_accelerate_opt.html gives details -of how to build and use this package. Its styles can be invoked at -run time via the "-sf opt" or "-suffix opt" "command-line +their style name. The "Speed opt"_Speed_opt.html doc page gives +details of how to build and use this package. Its styles can be +invoked at run time via the "-sf opt" or "-suffix opt" "command-line switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS, "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP packages, which have styles optimized for CPU performance. @@ -1076,8 +1012,8 @@ CCFLAGS: add -restrict for Intel compilers :ul [Supporting info:] src/OPT: filenames -> commands -"Section 5.3"_Section_accelerate.html#acc_3 -"Section 5.3.5"_accelerate_opt.html +"Speed packages"_Speed_packages.html +"Speed opt"_Speed_opt.html "Section 2.6 -sf opt"_Section_start.html#start_6 Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (t) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul @@ -1178,10 +1114,10 @@ PYTHON package :link(PYTHON),h4 A "python"_python.html command which allow you to execute Python code from a LAMMPS input script. The code can be in a separate file or -embedded in the input script itself. See the "Python -call"_Python_call.html doc page for an overview of using Python from -LAMMPS in this manner and the "Python"_Python.html doc page for other -ways to use LAMMPS and Python together. +embedded in the input script itself. See "Section +11.2"_Section_python.html#py_2 for an overview of using Python from +LAMMPS in this manner and the entire section for other ways to use +LAMMPS and Python together. [Install or un-install:] @@ -1202,7 +1138,7 @@ to Makefile.lammps) if the LAMMPS build fails. [Supporting info:] src/PYTHON: filenames -> commands -"Python call"_Python_call.html +"Section 11"_Section_python.html lib/python/README examples/python :ul @@ -1415,38 +1351,6 @@ examples/snap :ul :line -SPIN package :link(SPIN),h4 - -[Contents:] - -Model atomic magnetic spins classically, coupled to atoms moving in -the usual manner via MD. Various pair, fix, and compute styles. - -[Author:] Julian Tranchida (Sandia). - -[Install or un-install:] - -make yes-spin -make machine :pre - -make no-spin -make machine :pre - -[Supporting info:] - -src/SPIN: filenames -> commands -"Section 6.28"_Section_howto.html#howto_28 -"pair_style spin/dmi"_pair_spin_dmi.html -"pair_style spin/exchange"_pair_spin_exchange.html -"pair_style spin/magelec"_pair_spin_magelec.html -"pair_style spin/neel"_pair_spin_neel.html -"fix nve/spin"_fix_nve_spin.html -"fix precession/spin"_fix_precession_spin.html -"compute spin"_compute_spin.html -examples/SPIN :ul - -:line - SRD package :link(SRD),h4 [Contents:] @@ -2065,8 +1969,8 @@ USER-INTEL package :link(USER-INTEL),h4 Dozens of pair, fix, bond, angle, dihedral, improper, and kspace styles which are optimized for Intel CPUs and KNLs (Knights Landing). -All of them have an "intel" in their style name. "Section -5.3.2"_accelerate_intel.html gives details of what hardware and +All of them have an "intel" in their style name. The "Speed +intel"_Speed_intel.html doc page gives details of what hardware and compilers are required on your system, and how to build and use this package. Its styles can be invoked at run time via the "-sf intel" or "-suffix intel" "command-line switches"_Section_start.html#start_6. @@ -2116,7 +2020,7 @@ hardware target, to produce a separate executable. You should also typically install the USER-OMP package, as it can be used in tandem with the USER-INTEL package to good effect, as -explained in "Section 5.3.2"_accelerate_intel.html. +explained on the "Speed intel"_Speed_intel.html doc page. make yes-user-intel yes-user-omp make machine :pre @@ -2128,8 +2032,8 @@ make machine :pre src/USER-INTEL: filenames -> commands src/USER-INTEL/README -"Section 5.3"_Section_accelerate.html#acc_3 -"Section 5.3.2"_accelerate_gpu.html +"Speed packages"_Speed_packages.html +"Speed intel"_Speed_intel.html "Section 2.6 -sf intel"_Section_start.html#start_6 "Section 2.6 -pk intel"_Section_start.html#start_6 "package intel"_package.html @@ -2475,10 +2379,10 @@ USER-OMP package :link(USER-OMP),h4 Hundreds of pair, fix, compute, bond, angle, dihedral, improper, and kspace styles which are altered to enable threading on many-core CPUs via OpenMP directives. All of them have an "omp" in their style name. -"Section 5.3.4"_accelerate_omp.html gives details of what hardware and -compilers are required on your system, and how to build and use this -package. Its styles can be invoked at run time via the "-sf omp" or -"-suffix omp" "command-line switches"_Section_start.html#start_6. +The "Speed omp"_Speed_omp.html doc page gives details of what hardware +and compilers are required on your system, and how to build and use +this package. Its styles can be invoked at run time via the "-sf omp" +or "-suffix omp" "command-line switches"_Section_start.html#start_6. Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-INTEL"_#USER-INTEL packages, which have styles optimized for CPUs. @@ -2513,8 +2417,8 @@ LINKFLAGS: add -fopenmp :ul src/USER-OMP: filenames -> commands src/USER-OMP/README -"Section 5.3"_Section_accelerate.html#acc_3 -"Section 5.3.4"_accelerate_omp.html +"Speed packages"_Speed_packages.html +"Speed omp"_Speed_omp.html "Section 2.6 -sf omp"_Section_start.html#start_6 "Section 2.6 -pk omp"_Section_start.html#start_6 "package omp"_package.html diff --git a/doc/src/Packages_standard.txt b/doc/src/Packages_standard.txt new file mode 100644 index 0000000000..095bf699a6 --- /dev/null +++ b/doc/src/Packages_standard.txt @@ -0,0 +1,65 @@ +"Higher level section"_Packages.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Standard packages :h3 + +This is the list of standard packages in LAMMPS. The link for each +package name gives more details. + +Standard packages are supported by the LAMMPS developers and are +written in a syntax and style consistent with the rest of LAMMPS. +This means the developers will answer questions about them, debug and +fix them if necessary, and keep them compatible with future changes to +LAMMPS. + +The "Example" column is a sub-directory in the examples directory of +the distribution which has an input script that uses the package. +E.g. "peptide" refers to the examples/peptide directory; USER/atc +refers to the examples/USER/atc directory. The "Library" column +indicates whether an extra library is needed to build and use the +package: + +dash = no library +sys = system library: you likely have it on your machine +int = internal library: provided with LAMMPS, but you may need to build it +ext = external library: you will need to download and install it on your machine :ul + +Package, Description, Doc page, Example, Library +"ASPHERE"_Packages_details.html#ASPHERE, aspherical particle models, "Section 6.6.14"_Section_howto.html#howto_14, ellipse, - +"BODY"_Packages_details.html#BODY, body-style particles, "body"_body.html, body, - +"CLASS2"_Packages_details.html#CLASS2, class 2 force fields, "pair_style lj/class2"_pair_class2.html, -, - +"COLLOID"_Packages_details.html#COLLOID, colloidal particles, "atom_style colloid"_atom_style.html, colloid, - +"COMPRESS"_Packages_details.html#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys +"CORESHELL"_Packages_details.html#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, - +"DIPOLE"_Packages_details.html#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, - +"GPU"_Packages_details.html#GPU, GPU-enabled styles, "Section gpu"_Speed_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int +"GRANULAR"_Packages_details.html#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, - +"KIM"_Packages_details.html#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext +"KOKKOS"_Packages_details.html#KOKKOS, Kokkos-enabled styles, "Speed kokkos"_Speed_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - +"KSPACE"_Packages_details.html#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, - +"LATTE"_Packages_details.html#LATTE, quantum DFTB forces via LATTE, "fix latte"_fix_latte.html, latte, ext +"MANYBODY"_Packages_details.html#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, - +"MC"_Packages_details.html#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, - +"MEAM"_Packages_details.html#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int +"MISC"_Packages_details.html#MISC, miscellanous single-file commands, -, -, - +"MOLECULE"_Packages_details.html#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, - +"MPIIO"_Packages_details.html#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, - +"MSCG"_Packages_details.html#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext +"OPT"_Packages_details.html#OPT, optimized pair styles, "Speed opt"_Speed_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - +"PERI"_Packages_details.html#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, - +"POEMS"_Packages_details.html#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int +"PYTHON"_Packages_details.html#PYTHON, embed Python code in an input script, "python"_python.html, python, sys +"QEQ"_Packages_details.html#QEQ, QEq charge equilibration, "fix qeq"_fix_qeq.html, qeq, - +"REAX"_Packages_details.html#REAX, ReaxFF potential (Fortran), "pair_style reax"_pair_reax.html, reax, int +"REPLICA"_Packages_details.html#REPLICA, multi-replica methods, "Section 6.6.5"_Section_howto.html#howto_5, tad, - +"RIGID"_Packages_details.html#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, - +"SHOCK"_Packages_details.html#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, - +"SNAP"_Packages_details.html#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, - +"SRD"_Packages_details.html#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - +"VORONOI"_Packages_details.html#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l) diff --git a/doc/src/Packages_user.txt b/doc/src/Packages_user.txt new file mode 100644 index 0000000000..73c7fdb65d --- /dev/null +++ b/doc/src/Packages_user.txt @@ -0,0 +1,74 @@ +"Higher level section"_Packages.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +User packages :h3 + +This is a list of user packages in LAMMPS. The link for each package +name gives more details. + +User packages have been contributed by users, and begin with the +"user" prefix. If a contribution is a single command (single file), +it is typically in the user-misc package. User packages don't +necessarily meet the requirements of the "standard +packages"_Packages_standard.html. This means the developers will try +to keep things working and usually can answer technical questions +about compiling the package. If you have problems using a specific +feature provided in a user package, you may need to contact the +contributor directly to get help. Information on how to submit +additions you make to LAMMPS as single files or as a standard or user +package is explained on the "Modify contribute"_Modify_contribute.html +doc page. + +The "Example" column is a sub-directory in the examples directory of +the distribution which has an input script that uses the package. +E.g. "peptide" refers to the examples/peptide directory; USER/atc +refers to the examples/USER/atc directory. The "Library" column +indicates whether an extra library is needed to build and use the +package: + +dash = no library +sys = system library: you likely have it on your machine +int = internal library: provided with LAMMPS, but you may need to build it +ext = external library: you will need to download and install it on your machine :ul + +Package, Description, Doc page, Example, Library +"USER-ATC"_Packages_details.html#USER-ATC, atom-to-continuum coupling, "fix atc"_fix_atc.html, USER/atc, int +"USER-AWPMD"_Packages_details.html#USER-AWPMD, wave-packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int +"USER-BOCS"_Packages_details.html#USER-BOCS, BOCS bottom up coarse graining, "fix bocs"_fix_bocs.html, USER/bocs, - +"USER-CGDNA"_Packages_details.html#USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, - +"USER-CGSDK"_Packages_details.html#USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, - +"USER-COLVARS"_Packages_details.html#USER-COLVARS, collective variables library, "fix colvars"_fix_colvars.html, USER/colvars, int +"USER-DIFFRACTION"_Packages_details.html#USER-DIFFRACTION, virtual x-ray and electron diffraction,"compute xrd"_compute_xrd.html, USER/diffraction, - +"USER-DPD"_Packages_details.html#USER-DPD, reactive dissipative particle dynamics, src/USER-DPD/README, USER/dpd, - +"USER-DRUDE"_Packages_details.html#USER-DRUDE, Drude oscillators, "tutorial"_tutorial_drude.html, USER/drude, - +"USER-EFF"_Packages_details.html#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, - +"USER-FEP"_Packages_details.html#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, - +"USER-H5MD"_Packages_details.html#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext +"USER-INTEL"_Packages_details.html#USER-INTEL, optimized Intel CPU and KNL styles,"Speed intel"_Speed_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - +"USER-LB"_Packages_details.html#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, - +"USER-MANIFOLD"_Packages_details.html#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, - +"USER-MEAMC"_Packages_details.html#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, - +"USER-MESO"_Packages_details.html#USER-MESO, mesoscale DPD models, "pair_style edpd"_pair_meso.html, USER/meso, - +"USER-MGPT"_Packages_details.html#USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, - +"USER-MISC"_Packages_details.html#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, - +"USER-MOFFF"_Packages_details.html#USER-MOFFF, styles for "MOF-FF"_MOFplus force field, "pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html, USER/mofff, - +"USER-MOLFILE"_Packages_details.html#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext +"USER-NETCDF"_Packages_details.html#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext +"USER-OMP"_Packages_details.html#USER-OMP, OpenMP-enabled styles,"Speed omp"_Speed_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - +"USER-PHONON"_Packages_details.html#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, - +"USER-QMMM"_Packages_details.html#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext +"USER-QTB"_Packages_details.html#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, - +"USER-QUIP"_Packages_details.html#USER-QUIP, QUIP/libatoms interface,"pair_style quip"_pair_quip.html, USER/quip, ext +"USER-REAXC"_Packages_details.html#USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, - +"USER-SMD"_Packages_details.html#USER-SMD, smoothed Mach dynamics,"SMD User Guide"_PDF/SMD_LAMMPS_userguide.pdf, USER/smd, ext +"USER-SMTBQ"_Packages_details.html#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, - +"USER-SPH"_Packages_details.html#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, - +"USER-TALLY"_Packages_details.html#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, - +"USER-UEF"_Packages_details.html#USER-UEF, extensional flow,"fix nvt/uef"_fix_nh_uef.html, USER/uef, - +"USER-VTK"_Packages_details.html#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l) diff --git a/doc/src/Section_accelerate.txt b/doc/src/Section_accelerate.txt deleted file mode 100644 index d5cbf77a84..0000000000 --- a/doc/src/Section_accelerate.txt +++ /dev/null @@ -1,391 +0,0 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_howto.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -5. Accelerating LAMMPS performance :h2 - -This section describes various methods for improving LAMMPS -performance for different classes of problems running on different -kinds of machines. - -There are two thrusts to the discussion that follows. The -first is using code options that implement alternate algorithms -that can speed-up a simulation. The second is to use one -of the several accelerator packages provided with LAMMPS that -contain code optimized for certain kinds of hardware, including -multi-core CPUs, GPUs, and Intel Xeon Phi coprocessors. - -5.1 "Measuring performance"_#acc_1 :ulb,l -5.2 "Algorithms and code options to boost performace"_#acc_2 :l -5.3 "Accelerator packages with optimized styles"_#acc_3 :l - 5.3.1 "GPU package"_accelerate_gpu.html :l - 5.3.2 "USER-INTEL package"_accelerate_intel.html :l - 5.3.3 "KOKKOS package"_accelerate_kokkos.html :l - 5.3.4 "USER-OMP package"_accelerate_omp.html :l - 5.3.5 "OPT package"_accelerate_opt.html :l -5.4 "Comparison of various accelerator packages"_#acc_4 :l -:ule - -The "Benchmark page"_http://lammps.sandia.gov/bench.html of the LAMMPS -web site gives performance results for the various accelerator -packages discussed in Section 5.2, for several of the standard LAMMPS -benchmark problems, as a function of problem size and number of -compute nodes, on different hardware platforms. - -:line -:line - -5.1 Measuring performance :h3,link(acc_1) - -Before trying to make your simulation run faster, you should -understand how it currently performs and where the bottlenecks are. - -The best way to do this is run the your system (actual number of -atoms) for a modest number of timesteps (say 100 steps) on several -different processor counts, including a single processor if possible. -Do this for an equilibrium version of your system, so that the -100-step timings are representative of a much longer run. There is -typically no need to run for 1000s of timesteps to get accurate -timings; you can simply extrapolate from short runs. - -For the set of runs, look at the timing data printed to the screen and -log file at the end of each LAMMPS run. "This -section"_Section_start.html#start_7 of the manual has an overview. - -Running on one (or a few processors) should give a good estimate of -the serial performance and what portions of the timestep are taking -the most time. Running the same problem on a few different processor -counts should give an estimate of parallel scalability. I.e. if the -simulation runs 16x faster on 16 processors, its 100% parallel -efficient; if it runs 8x faster on 16 processors, it's 50% efficient. - -The most important data to look at in the timing info is the timing -breakdown and relative percentages. For example, trying different -options for speeding up the long-range solvers will have little impact -if they only consume 10% of the run time. If the pairwise time is -dominating, you may want to look at GPU or OMP versions of the pair -style, as discussed below. Comparing how the percentages change as -you increase the processor count gives you a sense of how different -operations within the timestep are scaling. Note that if you are -running with a Kspace solver, there is additional output on the -breakdown of the Kspace time. For PPPM, this includes the fraction -spent on FFTs, which can be communication intensive. - -Another important detail in the timing info are the histograms of -atoms counts and neighbor counts. If these vary widely across -processors, you have a load-imbalance issue. This often results in -inaccurate relative timing data, because processors have to wait when -communication occurs for other processors to catch up. Thus the -reported times for "Communication" or "Other" may be higher than they -really are, due to load-imbalance. If this is an issue, you can -uncomment the MPI_Barrier() lines in src/timer.cpp, and recompile -LAMMPS, to obtain synchronized timings. - -:line - -5.2 General strategies :h3,link(acc_2) - -NOTE: this section 5.2 is still a work in progress - -Here is a list of general ideas for improving simulation performance. -Most of them are only applicable to certain models and certain -bottlenecks in the current performance, so let the timing data you -generate be your guide. It is hard, if not impossible, to predict how -much difference these options will make, since it is a function of -problem size, number of processors used, and your machine. There is -no substitute for identifying performance bottlenecks, and trying out -various options. - -rRESPA -2-FFT PPPM -Staggered PPPM -single vs double PPPM -partial charge PPPM -verlet/split run style -processor command for proc layout and numa layout -load-balancing: balance and fix balance :ul - -2-FFT PPPM, also called {analytic differentiation} or {ad} PPPM, uses -2 FFTs instead of the 4 FFTs used by the default {ik differentiation} -PPPM. However, 2-FFT PPPM also requires a slightly larger mesh size to -achieve the same accuracy as 4-FFT PPPM. For problems where the FFT -cost is the performance bottleneck (typically large problems running -on many processors), 2-FFT PPPM may be faster than 4-FFT PPPM. - -Staggered PPPM performs calculations using two different meshes, one -shifted slightly with respect to the other. This can reduce force -aliasing errors and increase the accuracy of the method, but also -doubles the amount of work required. For high relative accuracy, using -staggered PPPM allows one to half the mesh size in each dimension as -compared to regular PPPM, which can give around a 4x speedup in the -kspace time. However, for low relative accuracy, using staggered PPPM -gives little benefit and can be up to 2x slower in the kspace -time. For example, the rhodopsin benchmark was run on a single -processor, and results for kspace time vs. relative accuracy for the -different methods are shown in the figure below. For this system, -staggered PPPM (using ik differentiation) becomes useful when using a -relative accuracy of slightly greater than 1e-5 and above. - -:c,image(JPG/rhodo_staggered.jpg) - -NOTE: Using staggered PPPM may not give the same increase in accuracy -of energy and pressure as it does in forces, so some caution must be -used if energy and/or pressure are quantities of interest, such as -when using a barostat. - -:line - -5.3 Packages with optimized styles :h3,link(acc_3) - -Accelerated versions of various "pair_style"_pair_style.html, -"fixes"_fix.html, "computes"_compute.html, and other commands have -been added to LAMMPS, which will typically run faster than the -standard non-accelerated versions. Some require appropriate hardware -to be present on your system, e.g. GPUs or Intel Xeon Phi -coprocessors. - -All of these commands are in packages provided with LAMMPS. An -overview of packages is give in "Section -packages"_Section_packages.html. - -These are the accelerator packages -currently in LAMMPS, either as standard or user packages: - -"GPU Package"_accelerate_gpu.html : for NVIDIA GPUs as well as OpenCL support -"USER-INTEL Package"_accelerate_intel.html : for Intel CPUs and Intel Xeon Phi -"KOKKOS Package"_accelerate_kokkos.html : for Nvidia GPUs, Intel Xeon Phi, and OpenMP threading -"USER-OMP Package"_accelerate_omp.html : for OpenMP threading and generic CPU optimizations -"OPT Package"_accelerate_opt.html : generic CPU optimizations :tb(s=:) - - - -Inverting this list, LAMMPS currently has acceleration support for -three kinds of hardware, via the listed packages: - -Many-core CPUs : "USER-INTEL"_accelerate_intel.html, "KOKKOS"_accelerate_kokkos.html, "USER-OMP"_accelerate_omp.html, "OPT"_accelerate_opt.html packages -NVIDIA GPUs : "GPU"_accelerate_gpu.html, "KOKKOS"_accelerate_kokkos.html packages -Intel Phi : "USER-INTEL"_accelerate_intel.html, "KOKKOS"_accelerate_kokkos.html packages :tb(s=:) - -Which package is fastest for your hardware may depend on the size -problem you are running and what commands (accelerated and -non-accelerated) are invoked by your input script. While these doc -pages include performance guidelines, there is no substitute for -trying out the different packages appropriate to your hardware. - -Any accelerated style has the same name as the corresponding standard -style, except that a suffix is appended. Otherwise, the syntax for -the command that uses the style is identical, their functionality is -the same, and the numerical results it produces should also be the -same, except for precision and round-off effects. - -For example, all of these styles are accelerated variants of the -Lennard-Jones "pair_style lj/cut"_pair_lj.html: - -"pair_style lj/cut/gpu"_pair_lj.html -"pair_style lj/cut/intel"_pair_lj.html -"pair_style lj/cut/kk"_pair_lj.html -"pair_style lj/cut/omp"_pair_lj.html -"pair_style lj/cut/opt"_pair_lj.html :ul - -To see what accelerate styles are currently available, see -"Section 3.5"_Section_commands.html#cmd_5 of the manual. The -doc pages for individual commands (e.g. "pair lj/cut"_pair_lj.html or -"fix nve"_fix_nve.html) also list any accelerated variants available -for that style. - -To use an accelerator package in LAMMPS, and one or more of the styles -it provides, follow these general steps. Details vary from package to -package and are explained in the individual accelerator doc pages, -listed above: - -build the accelerator library | - only for GPU package | -install the accelerator package | - make yes-opt, make yes-user-intel, etc | -add compile/link flags to Makefile.machine in src/MAKE | - only for USER-INTEL, KOKKOS, USER-OMP, OPT packages | -re-build LAMMPS | - make machine | -prepare and test a regular LAMMPS simulation | - lmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script | -enable specific accelerator support via '-k on' "command-line switch"_Section_start.html#start_6, | - only needed for KOKKOS package | -set any needed options for the package via "-pk" "command-line switch"_Section_start.html#start_6 or "package"_package.html command, | - only if defaults need to be changed | -use accelerated styles in your input via "-sf" "command-line switch"_Section_start.html#start_6 or "suffix"_suffix.html command | lmp_machine -in in.script -sf gpu -:tb(c=2,s=|) - -Note that the first 4 steps can be done as a single command with -suitable make command invocations. This is discussed in "Section -4"_Section_packages.html of the manual, and its use is -illustrated in the individual accelerator sections. Typically these -steps only need to be done once, to create an executable that uses one -or more accelerator packages. - -The last 4 steps can all be done from the command-line when LAMMPS is -launched, without changing your input script, as illustrated in the -individual accelerator sections. Or you can add -"package"_package.html and "suffix"_suffix.html commands to your input -script. - -NOTE: With a few exceptions, you can build a single LAMMPS executable -with all its accelerator packages installed. Note however that the -USER-INTEL and KOKKOS packages require you to choose one of their -hardware options when building for a specific platform. I.e. CPU or -Phi option for the USER-INTEL package. Or the OpenMP, Cuda, or Phi -option for the KOKKOS package. - -These are the exceptions. You cannot build a single executable with: - -both the USER-INTEL Phi and KOKKOS Phi options -the USER-INTEL Phi or Kokkos Phi option, and the GPU package :ul - -See the examples/accelerate/README and make.list files for sample -Make.py commands that build LAMMPS with any or all of the accelerator -packages. As an example, here is a command that builds with all the -GPU related packages installed (GPU, KOKKOS with Cuda), including -settings to build the needed auxiliary GPU libraries for Kepler GPUs: - -Make.py -j 16 -p omp gpu kokkos -cc nvcc wrap=mpi \ - -gpu mode=double arch=35 -kokkos cuda arch=35 lib-all file mpi :pre - -The examples/accelerate directory also has input scripts that can be -used with all of the accelerator packages. See its README file for -details. - -Likewise, the bench directory has FERMI and KEPLER and PHI -sub-directories with Make.py commands and input scripts for using all -the accelerator packages on various machines. See the README files in -those dirs. - -As mentioned above, the "Benchmark -page"_http://lammps.sandia.gov/bench.html of the LAMMPS web site gives -performance results for the various accelerator packages for several -of the standard LAMMPS benchmark problems, as a function of problem -size and number of compute nodes, on different hardware platforms. - -Here is a brief summary of what the various packages provide. Details -are in the individual accelerator sections. - -Styles with a "gpu" suffix are part of the GPU package, and can be run -on NVIDIA GPUs. The speed-up on a GPU depends on a variety of -factors, discussed in the accelerator sections. :ulb,l - -Styles with an "intel" suffix are part of the USER-INTEL -package. These styles support vectorized single and mixed precision -calculations, in addition to full double precision. In extreme cases, -this can provide speedups over 3.5x on CPUs. The package also -supports acceleration in "offload" mode to Intel(R) Xeon Phi(TM) -coprocessors. This can result in additional speedup over 2x depending -on the hardware configuration. :l - -Styles with a "kk" suffix are part of the KOKKOS package, and can be -run using OpenMP on multicore CPUs, on an NVIDIA GPU, or on an Intel -Xeon Phi in "native" mode. The speed-up depends on a variety of -factors, as discussed on the KOKKOS accelerator page. :l - -Styles with an "omp" suffix are part of the USER-OMP package and allow -a pair-style to be run in multi-threaded mode using OpenMP. This can -be useful on nodes with high-core counts when using less MPI processes -than cores is advantageous, e.g. when running with PPPM so that FFTs -are run on fewer MPI processors or when the many MPI tasks would -overload the available bandwidth for communication. :l - -Styles with an "opt" suffix are part of the OPT package and typically -speed-up the pairwise calculations of your simulation by 5-25% on a -CPU. :l -:ule - -The individual accelerator package doc pages explain: - -what hardware and software the accelerated package requires -how to build LAMMPS with the accelerated package -how to run with the accelerated package either via command-line switches or modifying the input script -speed-ups to expect -guidelines for best performance -restrictions :ul - -:line - -5.4 Comparison of various accelerator packages :h3,link(acc_4) - -NOTE: this section still needs to be re-worked with additional KOKKOS -and USER-INTEL information. - -The next section compares and contrasts the various accelerator -options, since there are multiple ways to perform OpenMP threading, -run on GPUs, and run on Intel Xeon Phi coprocessors. - -All 3 of these packages accelerate a LAMMPS calculation using NVIDIA -hardware, but they do it in different ways. - -As a consequence, for a particular simulation on specific hardware, -one package may be faster than the other. We give guidelines below, -but the best way to determine which package is faster for your input -script is to try both of them on your machine. See the benchmarking -section below for examples where this has been done. - -[Guidelines for using each package optimally:] - -The GPU package allows you to assign multiple CPUs (cores) to a single -GPU (a common configuration for "hybrid" nodes that contain multicore -CPU(s) and GPU(s)) and works effectively in this mode. :ulb,l - -The GPU package moves per-atom data (coordinates, forces) -back-and-forth between the CPU and GPU every timestep. The -KOKKOS/CUDA package only does this on timesteps when a CPU calculation -is required (e.g. to invoke a fix or compute that is non-GPU-ized). -Hence, if you can formulate your input script to only use GPU-ized -fixes and computes, and avoid doing I/O too often (thermo output, dump -file snapshots, restart files), then the data transfer cost of the -KOKKOS/CUDA package can be very low, causing it to run faster than the -GPU package. :l - -The GPU package is often faster than the KOKKOS/CUDA package, if the -number of atoms per GPU is smaller. The crossover point, in terms of -atoms/GPU at which the KOKKOS/CUDA package becomes faster depends -strongly on the pair style. For example, for a simple Lennard Jones -system the crossover (in single precision) is often about 50K-100K -atoms per GPU. When performing double precision calculations the -crossover point can be significantly smaller. :l - -Both packages compute bonded interactions (bonds, angles, etc) on the -CPU. If the GPU package is running with several MPI processes -assigned to one GPU, the cost of computing the bonded interactions is -spread across more CPUs and hence the GPU package can run faster. :l - -When using the GPU package with multiple CPUs assigned to one GPU, its -performance depends to some extent on high bandwidth between the CPUs -and the GPU. Hence its performance is affected if full 16 PCIe lanes -are not available for each GPU. In HPC environments this can be the -case if S2050/70 servers are used, where two devices generally share -one PCIe 2.0 16x slot. Also many multi-GPU mainboards do not provide -full 16 lanes to each of the PCIe 2.0 16x slots. :l -:ule - -[Differences between the two packages:] - -The GPU package accelerates only pair force, neighbor list, and PPPM -calculations. :ulb,l - -The GPU package requires neighbor lists to be built on the CPU when using -exclusion lists, hybrid pair styles, or a triclinic simulation box. :l -:ule diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index 7b9349a233..7948e0de32 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -1,4 +1,4 @@ -"Previous Section"_Section_start.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_packages.html :c +"Previous Section"_Section_start.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Packages.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -554,8 +554,8 @@ Fix styles :h3 See the "fix"_fix.html command for one-line descriptions of each style or click on the style itself for a full description. Some of the styles have accelerated versions, which can be used if LAMMPS is built -with the "appropriate accelerated package"_Section_accelerate.html. -This is indicated by additional letters in parenthesis: g = GPU, i = +with the "appropriate accelerated package"_Speed_packages.html. This +is indicated by additional letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. "adapt"_fix_adapt.html, @@ -775,9 +775,9 @@ See the "compute"_compute.html command for one-line descriptions of each style or click on the style itself for a full description. Some of the styles have accelerated versions, which can be used if LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = -KOKKOS, o = USER-OMP, t = OPT. +package"_Speed_packages.html. This is indicated by additional letters +in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. "aggregate/atom"_compute_cluster_atom.html, "angle"_compute_angle.html, @@ -920,9 +920,9 @@ See the "pair_style"_pair_style.html command for an overview of pair potentials. Click on the style itself for a full description. Many of the styles have accelerated versions, which can be used if LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = -KOKKOS, o = USER-OMP, t = OPT. +package"_Speed_packages.html. This is indicated by additional letters +in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. "none"_pair_none.html, "zero"_pair_zero.html, @@ -1142,9 +1142,9 @@ See the "bond_style"_bond_style.html command for an overview of bond potentials. Click on the style itself for a full description. Some of the styles have accelerated versions, which can be used if LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = -KOKKOS, o = USER-OMP, t = OPT. +package"_Speed_packages.html. This is indicated by additional letters +in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. "none"_bond_none.html, "zero"_bond_zero.html, @@ -1176,9 +1176,9 @@ See the "angle_style"_angle_style.html command for an overview of angle potentials. Click on the style itself for a full description. Some of the styles have accelerated versions, which can be used if LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = -USER-OMP, t = OPT. +package"_Speed_packages.html. This is indicated by additional letters +in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. "none"_angle_none.html, "zero"_angle_zero.html, @@ -1212,7 +1212,7 @@ See the "dihedral_style"_dihedral_style.html command for an overview of dihedral potentials. Click on the style itself for a full description. Some of the styles have accelerated versions, which can be used if LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional +package"_Speed_packages.html. This is indicated by additional letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. @@ -1247,9 +1247,9 @@ See the "improper_style"_improper_style.html command for an overview of improper potentials. Click on the style itself for a full description. Some of the styles have accelerated versions, which can be used if LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = -USER-OMP, t = OPT. +package"_Speed_packages.html. This is indicated by additional letters +in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. "none"_improper_none.html, "zero"_improper_zero.html, @@ -1276,9 +1276,9 @@ See the "kspace_style"_kspace_style.html command for an overview of Kspace solvers. Click on the style itself for a full description. Some of the styles have accelerated versions, which can be used if LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = -USER-OMP, t = OPT. +package"_Speed_packages.html. This is indicated by additional letters +in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. "ewald (o)"_kspace_style.html, "ewald/disp"_kspace_style.html, diff --git a/doc/src/Section_intro.txt b/doc/src/Section_intro.txt index c7cf5bf8d2..36a1181ca7 100644 --- a/doc/src/Section_intro.txt +++ b/doc/src/Section_intro.txt @@ -253,7 +253,7 @@ Specialized features :h4 LAMMPS can be built with optional packages which implement a variety of additional capabilities. An overview of all the packages is "given -here"_Section_packages.html. +here"_Packages.html. These are some LAMMPS capabilities which you may not think of as typical classical molecular dynamics options: diff --git a/doc/src/Section_start.txt b/doc/src/Section_start.txt index d8f340b179..cd445b3e14 100644 --- a/doc/src/Section_start.txt +++ b/doc/src/Section_start.txt @@ -119,10 +119,11 @@ lower-case name of the package, e.g. replica or user-misc. If you want to do one of the following: -use a LAMMPS command that requires an extra library (e.g. "dump image"_dump_image.html) -build with a package that requires an extra library -build with an accelerator package that requires special compiler/linker settings -run on a machine that has its own compilers, settings, or libraries :ul +use a LAMMPS command that requires an extra library (e.g. "dump +image"_dump_image.html) build with a package that requires an extra +library build with an accelerator package that requires special +compiler/linker settings run on a machine that has its own compilers, +settings, or libraries :ul then building LAMMPS is more complicated. You may need to find where extra libraries exist on your machine or install them if they don't. @@ -697,8 +698,8 @@ are always included, plus optional packages. Packages are groups of files that enable a specific set of features. For example, force fields for molecular systems or granular systems are in packages. -"Section 4"_Section_packages.html in the manual has details about all -the packages, which come in two flavors: [standard] and [user] +The "Packages"_Packages.html doc pages has details about all the +packages, which come in two flavors: [standard] and [user] packages. It also has specific instructions for building LAMMPS with any package which requires an extra library. General instructions are below. @@ -828,45 +829,47 @@ options. Packages that require extra libraries :h4,link(start_3_3) A few of the standard and user packages require extra libraries. See -"Section 4"_Section_packages.html for two tables of packages which -indicate which ones require libraries. For each such package, the -Section 4 doc page gives details on how to build the extra library, -including how to download it if necessary. The basic ideas are -summarized here. +the "Packages"_Packages.html doc pages for two tables of packages +which indicate which ones require libraries. For each such package, +the Section 4 doc page gives details on how to build the extra +library, including how to download it if necessary. The basic ideas +are summarized here. [System libraries:] -Packages in the tables "Section 4"_Section_packages.html with a "sys" -in the last column link to system libraries that typically already -exist on your machine. E.g. the python package links to a system -Python library. If your machine does not have the required library, -you will have to download and install it on your machine, in either -the system or user space. +Packages in the standard and user tables of the +"Packages"_Packages.html doc pages with a "sys" in the last column +link to system libraries that typically already exist on your machine. +E.g. the python package links to a system Python library. If your +machine does not have the required library, you will have to download +and install it on your machine, in either the system or user space. [Internal libraries:] -Packages in the tables "Section 4"_Section_packages.html with an "int" -in the last column link to internal libraries whose source code is -included with LAMMPS, in the lib/name directory where name is the -package name. You must first build the library in that directory -before building LAMMPS with that package installed. E.g. the gpu -package links to a library you build in the lib/gpu dir. You can -often do the build in one step by typing "make lib-name args=..." -from the src dir, with appropriate arguments. You can leave off the -args to see a help message. See "Section 4"_Section_packages.html for -details for each package. +Packages in the standard and user tables of the +"Packages"_Packages.html doc pages with an "int" in the last column +link to internal libraries whose source code is included with LAMMPS, +in the lib/name directory where name is the package name. You must +first build the library in that directory before building LAMMPS with +that package installed. E.g. the gpu package links to a library you +build in the lib/gpu dir. You can often do the build in one step by +typing "make lib-name args=..." from the src dir, with appropriate +arguments. You can leave off the args to see a help message. See the +"Packages details"_Packages_details.html doc page for details for each +package. [External libraries:] -Packages in the tables "Section 4"_Section_packages.html with an "ext" -in the last column link to external libraries whose source code is not -included with LAMMPS. You must first download and install the library -before building LAMMPS with that package installed. E.g. the voronoi -package links to the freely available "Voro++ library"_voro_home2. You -can often do the download/build in one step by typing "make lib-name +Packages in the standard and user tables of the +"Packages"_Packages.html doc pages with an "ext" in the last column +link to external libraries whose source code is not included with +LAMMPS. You must first download and install the library before +building LAMMPS with that package installed. E.g. the voronoi package +links to the freely available "Voro++ library"_voro_home2. You can +often do the download/build in one step by typing "make lib-name args=..." from the src dir, with appropriate arguments. You can leave -off the args to see a help message. See "Section -4"_Section_packages.html for details for each package. +off the args to see a help message. See the "Packages +details"_Packages_details.html doc page for details for each package. :link(voro_home2,http://math.lbl.gov/voro++) @@ -888,9 +891,9 @@ copied from a lib/name/Makefile.lammps.* file when the library is built. If those settings are not correct for your machine you will need to edit or create an appropriate Makefile.lammps file. -Package-specific details for these steps are given in "Section -4"_Section_packages.html an in README files in the lib/name -directories. +Package-specific details for these steps are given on the "Packages +details"_Packages_details.html doc page and in README files in the +lib/name directories. [Compiler options needed for accelerator packages:] @@ -901,14 +904,14 @@ these accelerator packages for optimal performance requires specific settings in the Makefile.machine file you use. A summary of the Makefile.machine settings needed for each of these -packages is given in "Section 4"_Section_packages.html. More info is -given on the doc pages that describe each package in detail: +packages is given on the "Packages"_Packages.html doc pages. More +info is given on the doc pages that describe each package in detail: -5.3.1 "USER-INTEL package"_accelerate_intel.html -5.3.2 "GPU package"_accelerate_intel.html -5.3.3 "KOKKOS package"_accelerate_kokkos.html -5.3.4 "USER-OMP package"_accelerate_omp.html -5.3.5 "OPT package"_accelerate_opt.html :all(b) +"USER-INTEL package"_Speed_intel.html +"GPU package"_Speed_gpu.html +"KOKKOS package"_Speed_kokkos.html +"USER-OMP package"_Speed_omp.html +"OPT package"_Speed_opt.html :all(b) You can also use or examine the following machine Makefiles in src/MAKE/OPTIONS, which include the settings. Note that the @@ -1276,8 +1279,8 @@ Either the full word or an abbreviation can be used for the keywords. Note that the keywords do not use a leading minus sign. I.e. the keyword is "t", not "-t". Also note that each of the keywords has a default setting. Example of when to use these options and what -settings to use on different platforms is given in "Section -5.3"_Section_accelerate.html#acc_3. +settings to use on different platforms is given on the "Speed +kokkos"_Speed_kokkos.html doc page. d or device g or gpus @@ -1461,8 +1464,7 @@ cores within each node are ranked in a desired order. Or when using the "run_style verlet/split"_run_style.html command with 2 partitions to insure that a specific Kspace processor (in the 2nd partition) is matched up with a specific set of processors in the 1st partition. -See the "Section 5"_Section_accelerate.html doc pages for -more details. +See the "Speed tips"_Speed_tips.html doc page for more details. If the keyword {nth} is used with a setting {N}, then it means every Nth processor will be moved to the end of the ranking. This is useful diff --git a/doc/src/Speed.txt b/doc/src/Speed.txt new file mode 100644 index 0000000000..2339a11c06 --- /dev/null +++ b/doc/src/Speed.txt @@ -0,0 +1,69 @@ +"Previous Section"_Package.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Section_howto.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Accelerate performance :h2 + +This section describes various methods for improving LAMMPS +performance for different classes of problems running on different +kinds of machines. + +There are two thrusts to the discussion that follows. The first is +using code options that implement alternate algorithms that can +speed-up a simulation. The second is to use one of the several +accelerator packages provided with LAMMPS that contain code optimized +for certain kinds of hardware, including multi-core CPUs, GPUs, and +Intel Xeon Phi coprocessors. + +The "Benchmark page"_http://lammps.sandia.gov/bench.html of the LAMMPS +web site gives performance results for the various accelerator +packages discussed on the "Speed packages"_Speed_packages.html doc +page, for several of the standard LAMMPS benchmark problems, as a +function of problem size and number of compute nodes, on different +hardware platforms. + + + + + +"Benchmarks"_Speed_bench.html +"Measuring performance"_Speed_measure.html :all(b) + +"General tips"_Speed_tips.html :all(b) + +"Accelerator packages"_Speed_packages.html +"GPU package"_Speed_gpu.html +"USER-INTEL package"_Speed_intel.html +"KOKKOS package"_Speed_kokkos.html +"USER-OMP package"_Speed_omp.html +"OPT package"_Speed_opt.html +"Comparison of accelerator packages"_Speed_compare.html :all(b) + + diff --git a/doc/src/Section_perf.txt b/doc/src/Speed_bench.txt similarity index 86% rename from doc/src/Section_perf.txt rename to doc/src/Speed_bench.txt index f320780129..dc76588c11 100644 --- a/doc/src/Section_perf.txt +++ b/doc/src/Speed_bench.txt @@ -1,6 +1,5 @@ -"Previous Section"_Examples.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Tools.html -:c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -8,12 +7,12 @@ Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Tools.html :line -8. Performance & scalability :h2 +Benchmarks :h3 -Current LAMMPS performance is discussed on the Benchmarks page of the -"LAMMPS WWW Site"_lws where CPU timings and parallel efficiencies are -listed. The page has several sections, which are briefly described -below: +Current LAMMPS performance is discussed on the "Benchmarks +page"_http://lammps.sandia.gov/bench.html of the "LAMMPS website"_lws +where timings and parallel efficiencies are listed. The page has +several sections, which are briefly described below: CPU performance on 5 standard problems, strong and weak scaling GPU and Xeon Phi performance on same and related problems @@ -53,8 +52,8 @@ of these 5 problems on 1 or 4 cores of Linux desktop. The bench/FERMI and bench/KEPLER dirs have input files and scripts and instructions for running the same (or similar) problems using OpenMP or GPU or Xeon Phi acceleration options. See the README files in those dirs and the -"Section 5.3"_Section_accelerate.html#acc_3 doc pages for -instructions on how to build LAMMPS and run on that kind of hardware. +"Speed packages"_Speed_packages.html doc pages for instructions on how +to build LAMMPS and run on that kind of hardware. The bench/POTENTIALS directory has input files which correspond to the table of results on the diff --git a/doc/src/Speed_compare.txt b/doc/src/Speed_compare.txt new file mode 100644 index 0000000000..6c947b9662 --- /dev/null +++ b/doc/src/Speed_compare.txt @@ -0,0 +1,73 @@ +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Comparison of various accelerator packages :h3 + +NOTE: this section still needs to be re-worked with additional KOKKOS +and USER-INTEL information. + +The next section compares and contrasts the various accelerator +options, since there are multiple ways to perform OpenMP threading, +run on GPUs, and run on Intel Xeon Phi coprocessors. + +All 3 of these packages accelerate a LAMMPS calculation using NVIDIA +hardware, but they do it in different ways. + +As a consequence, for a particular simulation on specific hardware, +one package may be faster than the other. We give guidelines below, +but the best way to determine which package is faster for your input +script is to try both of them on your machine. See the benchmarking +section below for examples where this has been done. + +[Guidelines for using each package optimally:] + +The GPU package allows you to assign multiple CPUs (cores) to a single +GPU (a common configuration for "hybrid" nodes that contain multicore +CPU(s) and GPU(s)) and works effectively in this mode. :ulb,l + +The GPU package moves per-atom data (coordinates, forces) +back-and-forth between the CPU and GPU every timestep. The +KOKKOS/CUDA package only does this on timesteps when a CPU calculation +is required (e.g. to invoke a fix or compute that is non-GPU-ized). +Hence, if you can formulate your input script to only use GPU-ized +fixes and computes, and avoid doing I/O too often (thermo output, dump +file snapshots, restart files), then the data transfer cost of the +KOKKOS/CUDA package can be very low, causing it to run faster than the +GPU package. :l + +The GPU package is often faster than the KOKKOS/CUDA package, if the +number of atoms per GPU is smaller. The crossover point, in terms of +atoms/GPU at which the KOKKOS/CUDA package becomes faster depends +strongly on the pair style. For example, for a simple Lennard Jones +system the crossover (in single precision) is often about 50K-100K +atoms per GPU. When performing double precision calculations the +crossover point can be significantly smaller. :l + +Both packages compute bonded interactions (bonds, angles, etc) on the +CPU. If the GPU package is running with several MPI processes +assigned to one GPU, the cost of computing the bonded interactions is +spread across more CPUs and hence the GPU package can run faster. :l + +When using the GPU package with multiple CPUs assigned to one GPU, its +performance depends to some extent on high bandwidth between the CPUs +and the GPU. Hence its performance is affected if full 16 PCIe lanes +are not available for each GPU. In HPC environments this can be the +case if S2050/70 servers are used, where two devices generally share +one PCIe 2.0 16x slot. Also many multi-GPU mainboards do not provide +full 16 lanes to each of the PCIe 2.0 16x slots. :l +:ule + +[Differences between the two packages:] + +The GPU package accelerates only pair force, neighbor list, and PPPM +calculations. :ulb,l + +The GPU package requires neighbor lists to be built on the CPU when using +exclusion lists, hybrid pair styles, or a triclinic simulation box. :l +:ule diff --git a/doc/src/accelerate_gpu.txt b/doc/src/Speed_gpu.txt similarity index 96% rename from doc/src/accelerate_gpu.txt rename to doc/src/Speed_gpu.txt index 816a31c788..d6ebbf8069 100644 --- a/doc/src/accelerate_gpu.txt +++ b/doc/src/Speed_gpu.txt @@ -1,5 +1,5 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -7,9 +7,7 @@ :line -"Return to Section accelerate overview"_Section_accelerate.html - -5.3.1 GPU package :h5 +GPU package :h3 The GPU package was developed by Mike Brown at ORNL and his collaborators, particularly Trung Nguyen (ORNL). It provides GPU @@ -72,10 +70,9 @@ Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) t [Building LAMMPS with the GPU package:] This requires two steps (a,b): build the GPU library, then build -LAMMPS with the GPU package. - -You can do both these steps in one line as described in -"Section 4"_Section_packages.html of the manual. +LAMMPS with the GPU package. You can do both these steps in one line +as described on the "Packages details"_Packages_details.html#GPU doc +page. Or you can follow these two (a,b) steps: diff --git a/doc/src/accelerate_intel.txt b/doc/src/Speed_intel.txt similarity index 98% rename from doc/src/accelerate_intel.txt rename to doc/src/Speed_intel.txt index 71f5185b15..acf5c3f2f9 100644 --- a/doc/src/accelerate_intel.txt +++ b/doc/src/Speed_intel.txt @@ -1,5 +1,5 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -7,9 +7,7 @@ :line -"Return to Section accelerate overview"_Section_accelerate.html - -5.3.2 USER-INTEL package :h5 +USER-INTEL package :h3 The USER-INTEL package is maintained by Mike Brown at Intel Corporation. It provides two methods for accelerating simulations, @@ -233,9 +231,9 @@ source /opt/intel/parallel_studio_xe_2016.3.067/psxevars.sh # or psxevars.csh for C-shell make intel_cpu_intelmpi :pre -Alternatively this can be done as a single command with -suitable make command invocations. This is discussed in "Section -4"_Section_packages.html of the manual. +Alternatively this can be done as a single command with suitable make +command invocations, as described on the "Packages +details"_Packages_details.html#USER-INTEL doc page. Note that if you build with support for a Phi coprocessor, the same binary can be used on nodes with or without coprocessors installed. diff --git a/doc/src/accelerate_kokkos.txt b/doc/src/Speed_kokkos.txt similarity index 97% rename from doc/src/accelerate_kokkos.txt rename to doc/src/Speed_kokkos.txt index 0c9178d6e4..8e01db7bdc 100644 --- a/doc/src/accelerate_kokkos.txt +++ b/doc/src/Speed_kokkos.txt @@ -1,5 +1,5 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -7,9 +7,7 @@ :line -"Return to Section accelerate overview"_Section_accelerate.html - -5.3.3 KOKKOS package :h5 +KOKKOS package :h3 Kokkos is a templated C++ library that provides abstractions to allow a single implementation of an application kernel (e.g. a pair style) to run efficiently on @@ -85,10 +83,10 @@ make kokkos_phi :pre [Compile for CPUs and GPUs (with OpenMPI or MPICH):] -NOTE: To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA software -version 7.5 or later must be installed on your system. See the -discussion for the "GPU"_accelerate_gpu.html package for details of -how to check and do this. +NOTE: To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA +software version 7.5 or later must be installed on your system. See +the discussion for the "GPU package"_Speed_gpu.html for details of how +to check and do this. use a C++11 compatible compiler and set KOKKOS_ARCH variable in /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi for both GPU and CPU as described @@ -434,8 +432,8 @@ migrate during a simulation. KOKKOS_USE_TPLS=hwloc should always be used if running with KOKKOS_DEVICES=Pthreads for pthreads. It is not necessary for KOKKOS_DEVICES=OpenMP for OpenMP, because OpenMP provides alternative methods via environment variables for binding -threads to hardware cores. More info on binding threads to cores is -given in "Section 5.3"_Section_accelerate.html#acc_3. +threads to hardware cores. More info on binding threads to cores is +given on the "Speed omp"_Speed_omp.html doc page. KOKKOS_USE_TPLS=librt enables use of a more accurate timer mechanism on most Unix platforms. This library is not available on all diff --git a/doc/src/Speed_measure.txt b/doc/src/Speed_measure.txt new file mode 100644 index 0000000000..03c0345c20 --- /dev/null +++ b/doc/src/Speed_measure.txt @@ -0,0 +1,55 @@ +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Measuring performance :h3 + +Before trying to make your simulation run faster, you should +understand how it currently performs and where the bottlenecks are. + +The best way to do this is run the your system (actual number of +atoms) for a modest number of timesteps (say 100 steps) on several +different processor counts, including a single processor if possible. +Do this for an equilibrium version of your system, so that the +100-step timings are representative of a much longer run. There is +typically no need to run for 1000s of timesteps to get accurate +timings; you can simply extrapolate from short runs. + +For the set of runs, look at the timing data printed to the screen and +log file at the end of each LAMMPS run. "This +section"_Section_start.html#start_7 of the manual has an overview. + +Running on one (or a few processors) should give a good estimate of +the serial performance and what portions of the timestep are taking +the most time. Running the same problem on a few different processor +counts should give an estimate of parallel scalability. I.e. if the +simulation runs 16x faster on 16 processors, its 100% parallel +efficient; if it runs 8x faster on 16 processors, it's 50% efficient. + +The most important data to look at in the timing info is the timing +breakdown and relative percentages. For example, trying different +options for speeding up the long-range solvers will have little impact +if they only consume 10% of the run time. If the pairwise time is +dominating, you may want to look at GPU or OMP versions of the pair +style, as discussed below. Comparing how the percentages change as +you increase the processor count gives you a sense of how different +operations within the timestep are scaling. Note that if you are +running with a Kspace solver, there is additional output on the +breakdown of the Kspace time. For PPPM, this includes the fraction +spent on FFTs, which can be communication intensive. + +Another important detail in the timing info are the histograms of +atoms counts and neighbor counts. If these vary widely across +processors, you have a load-imbalance issue. This often results in +inaccurate relative timing data, because processors have to wait when +communication occurs for other processors to catch up. Thus the +reported times for "Communication" or "Other" may be higher than they +really are, due to load-imbalance. If this is an issue, you can +uncomment the MPI_Barrier() lines in src/timer.cpp, and recompile +LAMMPS, to obtain synchronized timings. + diff --git a/doc/src/accelerate_omp.txt b/doc/src/Speed_omp.txt similarity index 96% rename from doc/src/accelerate_omp.txt rename to doc/src/Speed_omp.txt index fa7bef1a52..3700580225 100644 --- a/doc/src/accelerate_omp.txt +++ b/doc/src/Speed_omp.txt @@ -1,5 +1,5 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -7,9 +7,7 @@ :line -"Return to Section 5 overview"_Section_accelerate.html - -5.3.4 USER-OMP package :h5 +USER-OMP package :h3 The USER-OMP package was developed by Axel Kohlmeyer at Temple University. It provides multi-threaded versions of most pair styles, @@ -39,7 +37,8 @@ each MPI task running on a CPU. The lines above illustrate how to include/build with the USER-OMP package in two steps, using the "make" command. Or how to do it with -one command as described in "Section 4"_Section_packages.html of the manual. +one command as described on the "Packages +details"_Packages_details.html#USER-OMP doc page. Note that the CCFLAGS and LINKFLAGS settings in Makefile.machine must include "-fopenmp". Likewise, if you use an Intel compiler, the diff --git a/doc/src/accelerate_opt.txt b/doc/src/Speed_opt.txt similarity index 86% rename from doc/src/accelerate_opt.txt rename to doc/src/Speed_opt.txt index 845264b522..7d0d7169f0 100644 --- a/doc/src/accelerate_opt.txt +++ b/doc/src/Speed_opt.txt @@ -1,5 +1,5 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -7,9 +7,7 @@ :line -"Return to Section accelerate overview"_Section_accelerate.html - -5.3.5 OPT package :h5 +OPT package :h3 The OPT package was developed by James Fischer (High Performance Technologies), David Richie, and Vincent Natoli (Stone Ridge @@ -34,7 +32,8 @@ None. The lines above illustrate how to build LAMMPS with the OPT package in two steps, using the "make" command. Or how to do it with one command -as described in "Section 4"_Section_packages.html of the manual. +as described on the "Packages details"_Packages_details.html#OPT doc +page. Note that if you use an Intel compiler to build with the OPT package, the CCFLAGS setting in your Makefile.machine must include "-restrict". diff --git a/doc/src/Speed_packages.txt b/doc/src/Speed_packages.txt new file mode 100644 index 0000000000..18850d52e0 --- /dev/null +++ b/doc/src/Speed_packages.txt @@ -0,0 +1,191 @@ +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Accelerator packages :h3 + +Accelerated versions of various "pair_style"_pair_style.html, +"fixes"_fix.html, "computes"_compute.html, and other commands have +been added to LAMMPS, which will typically run faster than the +standard non-accelerated versions. Some require appropriate hardware +to be present on your system, e.g. GPUs or Intel Xeon Phi +coprocessors. + +All of these commands are in packages provided with LAMMPS. An +overview of packages is give on the "Packages"_Packages.html doc +pages. + +These are the accelerator packages currently in LAMMPS, either as +standard or user packages: + +"GPU Package"_accelerate_gpu.html : for NVIDIA GPUs as well as OpenCL support +"USER-INTEL Package"_accelerate_intel.html : for Intel CPUs and Intel Xeon Phi +"KOKKOS Package"_accelerate_kokkos.html : for Nvidia GPUs, Intel Xeon Phi, and OpenMP threading +"USER-OMP Package"_accelerate_omp.html : for OpenMP threading and generic CPU optimizations +"OPT Package"_accelerate_opt.html : generic CPU optimizations :tb(s=:) + + + +Inverting this list, LAMMPS currently has acceleration support for +three kinds of hardware, via the listed packages: + +Many-core CPUs : "USER-INTEL"_accelerate_intel.html, "KOKKOS"_accelerate_kokkos.html, "USER-OMP"_accelerate_omp.html, "OPT"_accelerate_opt.html packages +NVIDIA GPUs : "GPU"_accelerate_gpu.html, "KOKKOS"_accelerate_kokkos.html packages +Intel Phi : "USER-INTEL"_accelerate_intel.html, "KOKKOS"_accelerate_kokkos.html packages :tb(s=:) + +Which package is fastest for your hardware may depend on the size +problem you are running and what commands (accelerated and +non-accelerated) are invoked by your input script. While these doc +pages include performance guidelines, there is no substitute for +trying out the different packages appropriate to your hardware. + +Any accelerated style has the same name as the corresponding standard +style, except that a suffix is appended. Otherwise, the syntax for +the command that uses the style is identical, their functionality is +the same, and the numerical results it produces should also be the +same, except for precision and round-off effects. + +For example, all of these styles are accelerated variants of the +Lennard-Jones "pair_style lj/cut"_pair_lj.html: + +"pair_style lj/cut/gpu"_pair_lj.html +"pair_style lj/cut/intel"_pair_lj.html +"pair_style lj/cut/kk"_pair_lj.html +"pair_style lj/cut/omp"_pair_lj.html +"pair_style lj/cut/opt"_pair_lj.html :ul + +To see what accelerate styles are currently available, see +"Section 3.5"_Section_commands.html#cmd_5 of the manual. The +doc pages for individual commands (e.g. "pair lj/cut"_pair_lj.html or +"fix nve"_fix_nve.html) also list any accelerated variants available +for that style. + +To use an accelerator package in LAMMPS, and one or more of the styles +it provides, follow these general steps. Details vary from package to +package and are explained in the individual accelerator doc pages, +listed above: + +build the accelerator library | + only for GPU package | +install the accelerator package | + make yes-opt, make yes-user-intel, etc | +add compile/link flags to Makefile.machine in src/MAKE | + only for USER-INTEL, KOKKOS, USER-OMP, OPT packages | +re-build LAMMPS | + make machine | +prepare and test a regular LAMMPS simulation | + lmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script | +enable specific accelerator support via '-k on' "command-line switch"_Section_start.html#start_6, | + only needed for KOKKOS package | +set any needed options for the package via "-pk" "command-line switch"_Section_start.html#start_6 or "package"_package.html command, | + only if defaults need to be changed | +use accelerated styles in your input via "-sf" "command-line switch"_Section_start.html#start_6 or "suffix"_suffix.html command | lmp_machine -in in.script -sf gpu +:tb(c=2,s=|) + +Note that the first 4 steps can be done as a single command with +suitable make command invocations. This is discussed on the +"Packages"_Packages.html doc pages, and its use is illustrated in the +individual accelerator sections. Typically these steps only need to +be done once, to create an executable that uses one or more +accelerator packages. + +The last 4 steps can all be done from the command-line when LAMMPS is +launched, without changing your input script, as illustrated in the +individual accelerator sections. Or you can add +"package"_package.html and "suffix"_suffix.html commands to your input +script. + +NOTE: With a few exceptions, you can build a single LAMMPS executable +with all its accelerator packages installed. Note however that the +USER-INTEL and KOKKOS packages require you to choose one of their +hardware options when building for a specific platform. I.e. CPU or +Phi option for the USER-INTEL package. Or the OpenMP, Cuda, or Phi +option for the KOKKOS package. + +These are the exceptions. You cannot build a single executable with: + +both the USER-INTEL Phi and KOKKOS Phi options +the USER-INTEL Phi or Kokkos Phi option, and the GPU package :ul + +See the examples/accelerate/README and make.list files for sample +Make.py commands that build LAMMPS with any or all of the accelerator +packages. As an example, here is a command that builds with all the +GPU related packages installed (GPU, KOKKOS with Cuda), including +settings to build the needed auxiliary GPU libraries for Kepler GPUs: + +Make.py -j 16 -p omp gpu kokkos -cc nvcc wrap=mpi \ + -gpu mode=double arch=35 -kokkos cuda arch=35 lib-all file mpi :pre + +The examples/accelerate directory also has input scripts that can be +used with all of the accelerator packages. See its README file for +details. + +Likewise, the bench directory has FERMI and KEPLER and PHI +sub-directories with Make.py commands and input scripts for using all +the accelerator packages on various machines. See the README files in +those dirs. + +As mentioned above, the "Benchmark +page"_http://lammps.sandia.gov/bench.html of the LAMMPS web site gives +performance results for the various accelerator packages for several +of the standard LAMMPS benchmark problems, as a function of problem +size and number of compute nodes, on different hardware platforms. + +Here is a brief summary of what the various packages provide. Details +are in the individual accelerator sections. + +Styles with a "gpu" suffix are part of the GPU package, and can be run +on NVIDIA GPUs. The speed-up on a GPU depends on a variety of +factors, discussed in the accelerator sections. :ulb,l + +Styles with an "intel" suffix are part of the USER-INTEL +package. These styles support vectorized single and mixed precision +calculations, in addition to full double precision. In extreme cases, +this can provide speedups over 3.5x on CPUs. The package also +supports acceleration in "offload" mode to Intel(R) Xeon Phi(TM) +coprocessors. This can result in additional speedup over 2x depending +on the hardware configuration. :l + +Styles with a "kk" suffix are part of the KOKKOS package, and can be +run using OpenMP on multicore CPUs, on an NVIDIA GPU, or on an Intel +Xeon Phi in "native" mode. The speed-up depends on a variety of +factors, as discussed on the KOKKOS accelerator page. :l + +Styles with an "omp" suffix are part of the USER-OMP package and allow +a pair-style to be run in multi-threaded mode using OpenMP. This can +be useful on nodes with high-core counts when using less MPI processes +than cores is advantageous, e.g. when running with PPPM so that FFTs +are run on fewer MPI processors or when the many MPI tasks would +overload the available bandwidth for communication. :l + +Styles with an "opt" suffix are part of the OPT package and typically +speed-up the pairwise calculations of your simulation by 5-25% on a +CPU. :l +:ule + +The individual accelerator package doc pages explain: + +what hardware and software the accelerated package requires +how to build LAMMPS with the accelerated package +how to run with the accelerated package either via command-line switches or modifying the input script +speed-ups to expect +guidelines for best performance +restrictions :ul + diff --git a/doc/src/Speed_tips.txt b/doc/src/Speed_tips.txt new file mode 100644 index 0000000000..c0d360cd8e --- /dev/null +++ b/doc/src/Speed_tips.txt @@ -0,0 +1,63 @@ +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +General tips :h3 + +NOTE: this section 5.2 is still a work in progress + +Here is a list of general ideas for improving simulation performance. +Most of them are only applicable to certain models and certain +bottlenecks in the current performance, so let the timing data you +generate be your guide. It is hard, if not impossible, to predict how +much difference these options will make, since it is a function of +problem size, number of processors used, and your machine. There is +no substitute for identifying performance bottlenecks, and trying out +various options. + +make individual pages for these, or one for PPPM +one for timestepping, etc +one for balancing +or proc layout + +rRESPA +2-FFT PPPM +Staggered PPPM +single vs double PPPM +partial charge PPPM +verlet/split run style +processor command for proc layout and numa layout +load-balancing: balance and fix balance :ul + +2-FFT PPPM, also called {analytic differentiation} or {ad} PPPM, uses +2 FFTs instead of the 4 FFTs used by the default {ik differentiation} +PPPM. However, 2-FFT PPPM also requires a slightly larger mesh size to +achieve the same accuracy as 4-FFT PPPM. For problems where the FFT +cost is the performance bottleneck (typically large problems running +on many processors), 2-FFT PPPM may be faster than 4-FFT PPPM. + +Staggered PPPM performs calculations using two different meshes, one +shifted slightly with respect to the other. This can reduce force +aliasing errors and increase the accuracy of the method, but also +doubles the amount of work required. For high relative accuracy, using +staggered PPPM allows one to half the mesh size in each dimension as +compared to regular PPPM, which can give around a 4x speedup in the +kspace time. However, for low relative accuracy, using staggered PPPM +gives little benefit and can be up to 2x slower in the kspace +time. For example, the rhodopsin benchmark was run on a single +processor, and results for kspace time vs. relative accuracy for the +different methods are shown in the figure below. For this system, +staggered PPPM (using ik differentiation) becomes useful when using a +relative accuracy of slightly greater than 1e-5 and above. + +:c,image(JPG/rhodo_staggered.jpg) + +NOTE: Using staggered PPPM may not give the same increase in accuracy +of energy and pressure as it does in forces, so some caution must be +used if energy and/or pressure are quantities of interest, such as +when using a barostat. diff --git a/doc/src/angle_charmm.txt b/doc/src/angle_charmm.txt index 7ff7ef8fd4..fe109d24fb 100644 --- a/doc/src/angle_charmm.txt +++ b/doc/src/angle_charmm.txt @@ -51,10 +51,9 @@ internally; hence the units of K are in energy/radian^2. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -66,8 +65,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_class2.txt b/doc/src/angle_class2.txt index d4330139c9..c13a64afb6 100644 --- a/doc/src/angle_class2.txt +++ b/doc/src/angle_class2.txt @@ -83,10 +83,9 @@ same value from the Ea formula. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -98,8 +97,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine.txt b/doc/src/angle_cosine.txt index c0ce3c9301..99264b02a6 100644 --- a/doc/src/angle_cosine.txt +++ b/doc/src/angle_cosine.txt @@ -38,10 +38,9 @@ K (energy) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -53,8 +52,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine_delta.txt b/doc/src/angle_cosine_delta.txt index 830fd6db58..052300412f 100644 --- a/doc/src/angle_cosine_delta.txt +++ b/doc/src/angle_cosine_delta.txt @@ -43,10 +43,9 @@ internally. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -58,8 +57,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine_periodic.txt b/doc/src/angle_cosine_periodic.txt index b5c53b1b0f..4bedae3246 100644 --- a/doc/src/angle_cosine_periodic.txt +++ b/doc/src/angle_cosine_periodic.txt @@ -51,10 +51,9 @@ geometry. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -66,8 +65,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine_shift.txt b/doc/src/angle_cosine_shift.txt index 6ed9fe2150..185b9f5309 100644 --- a/doc/src/angle_cosine_shift.txt +++ b/doc/src/angle_cosine_shift.txt @@ -41,10 +41,9 @@ theta (angle) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -56,8 +55,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine_shift_exp.txt b/doc/src/angle_cosine_shift_exp.txt index 44a68c1087..e5c7fdd709 100644 --- a/doc/src/angle_cosine_shift_exp.txt +++ b/doc/src/angle_cosine_shift_exp.txt @@ -53,10 +53,9 @@ A (real number) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -68,8 +67,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine_squared.txt b/doc/src/angle_cosine_squared.txt index 065cdad542..e85c514d1e 100644 --- a/doc/src/angle_cosine_squared.txt +++ b/doc/src/angle_cosine_squared.txt @@ -43,10 +43,9 @@ internally. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -58,8 +57,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_dipole.txt b/doc/src/angle_dipole.txt index 34cc8c153c..31ae2e9464 100644 --- a/doc/src/angle_dipole.txt +++ b/doc/src/angle_dipole.txt @@ -71,10 +71,9 @@ gamma0 (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -86,8 +85,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restrictions:] diff --git a/doc/src/angle_fourier.txt b/doc/src/angle_fourier.txt index da39e7cf32..18eb56b478 100644 --- a/doc/src/angle_fourier.txt +++ b/doc/src/angle_fourier.txt @@ -39,10 +39,9 @@ C2 (real) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -54,8 +53,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_fourier_simple.txt b/doc/src/angle_fourier_simple.txt index 5adda6cb32..6faff5f10d 100644 --- a/doc/src/angle_fourier_simple.txt +++ b/doc/src/angle_fourier_simple.txt @@ -38,10 +38,9 @@ n (real) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -53,8 +52,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_harmonic.txt b/doc/src/angle_harmonic.txt index 4c74763964..fe803be623 100644 --- a/doc/src/angle_harmonic.txt +++ b/doc/src/angle_harmonic.txt @@ -45,10 +45,9 @@ internally; hence the units of K are in energy/radian^2. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -60,8 +59,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_quartic.txt b/doc/src/angle_quartic.txt index f7640bdfbc..a31214f435 100644 --- a/doc/src/angle_quartic.txt +++ b/doc/src/angle_quartic.txt @@ -45,10 +45,9 @@ internally; hence the units of K are in energy/radian^2. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -60,8 +59,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_table.txt b/doc/src/angle_table.txt index bd6e167bd8..29b56875e7 100644 --- a/doc/src/angle_table.txt +++ b/doc/src/angle_table.txt @@ -124,10 +124,9 @@ one that matches the specified keyword. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -139,8 +138,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/atom_style.txt b/doc/src/atom_style.txt index 442bb5ac70..0e6aa8a033 100644 --- a/doc/src/atom_style.txt +++ b/doc/src/atom_style.txt @@ -261,10 +261,10 @@ styles; see the "Modify"_Modify.html doc page. Styles with a {kk} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to -run faster, depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +run faster, depending on your available hardware, as discussed in on +the "Speed packages"_Speed_packages.html doc page. The accelerated +styles take the same arguments and should produce the same results, +except for round-off and precision issues. Note that other acceleration packages in LAMMPS, specifically the GPU, USER-INTEL, USER-OMP, and OPT packages do not use accelerated atom @@ -279,8 +279,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restrictions:] diff --git a/doc/src/bond_class2.txt b/doc/src/bond_class2.txt index 9687a63168..049482c973 100644 --- a/doc/src/bond_class2.txt +++ b/doc/src/bond_class2.txt @@ -44,10 +44,9 @@ K4 (energy/distance^4) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -59,8 +58,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_fene.txt b/doc/src/bond_fene.txt index 9050c3bf5c..be154a53b1 100644 --- a/doc/src/bond_fene.txt +++ b/doc/src/bond_fene.txt @@ -47,10 +47,9 @@ sigma (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -62,8 +61,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_fene_expand.txt b/doc/src/bond_fene_expand.txt index ff687444a9..77ebd977c8 100644 --- a/doc/src/bond_fene_expand.txt +++ b/doc/src/bond_fene_expand.txt @@ -50,10 +50,9 @@ delta (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -65,8 +64,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_gromos.txt b/doc/src/bond_gromos.txt index cc3ff75878..7a56cb3afa 100644 --- a/doc/src/bond_gromos.txt +++ b/doc/src/bond_gromos.txt @@ -40,10 +40,9 @@ r0 (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -55,8 +54,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_harmonic.txt b/doc/src/bond_harmonic.txt index c18a7e0fd4..54e89fcc72 100644 --- a/doc/src/bond_harmonic.txt +++ b/doc/src/bond_harmonic.txt @@ -42,10 +42,9 @@ r0 (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -57,8 +56,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_harmonic_shift.txt b/doc/src/bond_harmonic_shift.txt index bf3b3c115a..0213b5cc6f 100644 --- a/doc/src/bond_harmonic_shift.txt +++ b/doc/src/bond_harmonic_shift.txt @@ -43,10 +43,9 @@ rc (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -58,8 +57,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_harmonic_shift_cut.txt b/doc/src/bond_harmonic_shift_cut.txt index 1918ce00b6..d907bf4a62 100644 --- a/doc/src/bond_harmonic_shift_cut.txt +++ b/doc/src/bond_harmonic_shift_cut.txt @@ -43,10 +43,9 @@ rc (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -58,8 +57,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_morse.txt b/doc/src/bond_morse.txt index 4f6a32e341..66f2d08cab 100644 --- a/doc/src/bond_morse.txt +++ b/doc/src/bond_morse.txt @@ -41,10 +41,9 @@ r0 (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -56,8 +55,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_nonlinear.txt b/doc/src/bond_nonlinear.txt index 434af62506..e0aa5629b3 100644 --- a/doc/src/bond_nonlinear.txt +++ b/doc/src/bond_nonlinear.txt @@ -41,10 +41,9 @@ lamda (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -56,8 +55,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_quartic.txt b/doc/src/bond_quartic.txt index 4dc7ad4a36..760a5d7f07 100644 --- a/doc/src/bond_quartic.txt +++ b/doc/src/bond_quartic.txt @@ -76,10 +76,9 @@ delete_bonds all bond 0 remove :pre Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -91,8 +90,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_table.txt b/doc/src/bond_table.txt index 906d3e5d76..fe0b3ce22b 100644 --- a/doc/src/bond_table.txt +++ b/doc/src/bond_table.txt @@ -121,10 +121,9 @@ one that matches the specified keyword. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -136,8 +135,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/compute_pressure.txt b/doc/src/compute_pressure.txt index f0691ad207..8b7491da49 100644 --- a/doc/src/compute_pressure.txt +++ b/doc/src/compute_pressure.txt @@ -105,10 +105,9 @@ where "thermo_temp" is the ID of a similarly defined compute of style Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -120,8 +119,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/compute_temp.txt b/doc/src/compute_temp.txt index b88be79e20..f9fa56c882 100644 --- a/doc/src/compute_temp.txt +++ b/doc/src/compute_temp.txt @@ -67,10 +67,9 @@ thermostatting. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -82,8 +81,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/compute_temp_partial.txt b/doc/src/compute_temp_partial.txt index fe2420b4e4..59ec8cf20b 100644 --- a/doc/src/compute_temp_partial.txt +++ b/doc/src/compute_temp_partial.txt @@ -74,10 +74,9 @@ thermostatting. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -89,8 +88,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_charmm.txt b/doc/src/dihedral_charmm.txt index 06abe054e4..f808649a44 100644 --- a/doc/src/dihedral_charmm.txt +++ b/doc/src/dihedral_charmm.txt @@ -116,10 +116,9 @@ computed. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -131,8 +130,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_class2.txt b/doc/src/dihedral_class2.txt index cb9fc72c22..41282b22a3 100644 --- a/doc/src/dihedral_class2.txt +++ b/doc/src/dihedral_class2.txt @@ -141,10 +141,9 @@ r3 (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -156,8 +155,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_cosine_shift_exp.txt b/doc/src/dihedral_cosine_shift_exp.txt index 715682affc..483745be41 100644 --- a/doc/src/dihedral_cosine_shift_exp.txt +++ b/doc/src/dihedral_cosine_shift_exp.txt @@ -52,10 +52,9 @@ A (real number) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -67,8 +66,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_fourier.txt b/doc/src/dihedral_fourier.txt index 0accbb22bf..0270139f68 100644 --- a/doc/src/dihedral_fourier.txt +++ b/doc/src/dihedral_fourier.txt @@ -44,10 +44,9 @@ dm (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -59,8 +58,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_harmonic.txt b/doc/src/dihedral_harmonic.txt index d9a48ff384..a25a7969fe 100644 --- a/doc/src/dihedral_harmonic.txt +++ b/doc/src/dihedral_harmonic.txt @@ -53,10 +53,9 @@ Some force fields let {n} be positive or negative which corresponds to Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -68,8 +67,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_helix.txt b/doc/src/dihedral_helix.txt index 1e907557b2..814962a472 100644 --- a/doc/src/dihedral_helix.txt +++ b/doc/src/dihedral_helix.txt @@ -46,10 +46,9 @@ C (energy) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -61,8 +60,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_multi_harmonic.txt b/doc/src/dihedral_multi_harmonic.txt index 7d3c2ea083..62cad4141a 100644 --- a/doc/src/dihedral_multi_harmonic.txt +++ b/doc/src/dihedral_multi_harmonic.txt @@ -40,10 +40,9 @@ A5 (energy) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -55,8 +54,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_nharmonic.txt b/doc/src/dihedral_nharmonic.txt index 8392d83899..a49979fa66 100644 --- a/doc/src/dihedral_nharmonic.txt +++ b/doc/src/dihedral_nharmonic.txt @@ -40,10 +40,9 @@ An (energy) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -55,8 +54,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_opls.txt b/doc/src/dihedral_opls.txt index d1a6ba3ff2..9b33173da4 100644 --- a/doc/src/dihedral_opls.txt +++ b/doc/src/dihedral_opls.txt @@ -48,10 +48,9 @@ K4 (energy) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -63,8 +62,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_quadratic.txt b/doc/src/dihedral_quadratic.txt index ca2f5aed40..f90c4b79f1 100644 --- a/doc/src/dihedral_quadratic.txt +++ b/doc/src/dihedral_quadratic.txt @@ -41,10 +41,9 @@ phi0 (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -56,8 +55,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_table.txt b/doc/src/dihedral_table.txt index 0b88f26a61..6a480fec93 100644 --- a/doc/src/dihedral_table.txt +++ b/doc/src/dihedral_table.txt @@ -174,10 +174,9 @@ that matches the specified keyword. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -189,8 +188,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restrictions:] diff --git a/doc/src/fix_addforce.txt b/doc/src/fix_addforce.txt index b2ac95eabb..5bba9acb3f 100644 --- a/doc/src/fix_addforce.txt +++ b/doc/src/fix_addforce.txt @@ -103,12 +103,12 @@ converge properly. :line -Styles with a suffix are functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, -depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -120,8 +120,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_aveforce.txt b/doc/src/fix_aveforce.txt index 5d7dec3e6a..4944996695 100644 --- a/doc/src/fix_aveforce.txt +++ b/doc/src/fix_aveforce.txt @@ -63,12 +63,12 @@ to it. :line -Styles with a suffix are functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, -depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -80,8 +80,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_deform.txt b/doc/src/fix_deform.txt index c870c73bdc..681986561a 100644 --- a/doc/src/fix_deform.txt +++ b/doc/src/fix_deform.txt @@ -94,7 +94,7 @@ nvt/sllod"_fix_nvt_sllod.html and "compute temp/deform"_compute_temp_deform.html commands for more details. Note that simulation of a continuously extended system (extensional flow) can be modeled using the "USER-UEF -package"_Section_packages.html#USER-UEF and its "fix +package"_Packages_details.html#USER-UEF and its "fix commands"_fix_nh_uef.html. For the {x}, {y}, {z} parameters, the associated dimension cannot be @@ -550,10 +550,9 @@ command if you want to include lattice spacings in a variable formula. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -565,8 +564,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_dpd_energy.txt b/doc/src/fix_dpd_energy.txt index 1c10d954d6..4f2b5d573f 100644 --- a/doc/src/fix_dpd_energy.txt +++ b/doc/src/fix_dpd_energy.txt @@ -50,10 +50,9 @@ examples/USER/dpd directory. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -65,8 +64,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_enforce2d.txt b/doc/src/fix_enforce2d.txt index 4bbf41d25d..67b351e4b8 100644 --- a/doc/src/fix_enforce2d.txt +++ b/doc/src/fix_enforce2d.txt @@ -31,10 +31,9 @@ not move from their initial z coordinate. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -46,8 +45,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_eos_table_rx.txt b/doc/src/fix_eos_table_rx.txt index 0c87874347..f74a838c47 100644 --- a/doc/src/fix_eos_table_rx.txt +++ b/doc/src/fix_eos_table_rx.txt @@ -156,10 +156,9 @@ no 0.93 0.00 0.000 -1.76 :pre Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -171,8 +170,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_freeze.txt b/doc/src/fix_freeze.txt index a63ee4cb32..9619f4120b 100644 --- a/doc/src/fix_freeze.txt +++ b/doc/src/fix_freeze.txt @@ -31,12 +31,12 @@ using "fix setforce"_fix_setforce.html. :line -Styles with a suffix are functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, -depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -48,8 +48,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_gravity.txt b/doc/src/fix_gravity.txt index dae8ac5ed0..f39955d4f8 100644 --- a/doc/src/fix_gravity.txt +++ b/doc/src/fix_gravity.txt @@ -90,10 +90,9 @@ field. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -105,8 +104,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_langevin.txt b/doc/src/fix_langevin.txt index 93c73f5a5d..6ab236e572 100644 --- a/doc/src/fix_langevin.txt +++ b/doc/src/fix_langevin.txt @@ -264,10 +264,9 @@ generates an average temperature of 220 K, instead of 300 K. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -279,8 +278,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_momentum.txt b/doc/src/fix_momentum.txt index bcf4465fb8..aa5199ac14 100644 --- a/doc/src/fix_momentum.txt +++ b/doc/src/fix_momentum.txt @@ -61,10 +61,9 @@ initial velocities with zero aggregate linear and/or angular momentum. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -76,8 +75,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nh.txt b/doc/src/fix_nh.txt index 41d0e6438f..e3a39c6bc6 100644 --- a/doc/src/fix_nh.txt +++ b/doc/src/fix_nh.txt @@ -484,10 +484,9 @@ the various ways to do this. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -499,8 +498,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_nph_asphere.txt b/doc/src/fix_nph_asphere.txt index 8c35b6a1a7..ff8c300c47 100644 --- a/doc/src/fix_nph_asphere.txt +++ b/doc/src/fix_nph_asphere.txt @@ -81,10 +81,9 @@ It also means that changing attributes of {thermo_temp} or Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -96,8 +95,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nph_body.txt b/doc/src/fix_nph_body.txt index 1e590f1cb3..9263470e9e 100644 --- a/doc/src/fix_nph_body.txt +++ b/doc/src/fix_nph_body.txt @@ -80,10 +80,9 @@ It also means that changing attributes of {thermo_temp} or Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -95,8 +94,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nph_sphere.txt b/doc/src/fix_nph_sphere.txt index 62b45edfd7..ba3b2f6c06 100644 --- a/doc/src/fix_nph_sphere.txt +++ b/doc/src/fix_nph_sphere.txt @@ -90,10 +90,9 @@ It also means that changing attributes of {thermo_temp} or Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -105,8 +104,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nphug.txt b/doc/src/fix_nphug.txt index 292e46f94a..4f696e9590 100644 --- a/doc/src/fix_nphug.txt +++ b/doc/src/fix_nphug.txt @@ -140,10 +140,9 @@ It also means that changing attributes of {thermo_temp} or Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -155,8 +154,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_npt_asphere.txt b/doc/src/fix_npt_asphere.txt index 5f3979e36e..a21caa1042 100644 --- a/doc/src/fix_npt_asphere.txt +++ b/doc/src/fix_npt_asphere.txt @@ -105,10 +105,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -120,8 +119,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_npt_body.txt b/doc/src/fix_npt_body.txt index d89bf19db2..0f678a1b7d 100644 --- a/doc/src/fix_npt_body.txt +++ b/doc/src/fix_npt_body.txt @@ -104,10 +104,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -119,8 +118,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_npt_sphere.txt b/doc/src/fix_npt_sphere.txt index c4cf2cb08d..862f95603f 100644 --- a/doc/src/fix_npt_sphere.txt +++ b/doc/src/fix_npt_sphere.txt @@ -115,10 +115,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -130,8 +129,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nve.txt b/doc/src/fix_nve.txt index c04c17858e..ac9cb53b50 100644 --- a/doc/src/fix_nve.txt +++ b/doc/src/fix_nve.txt @@ -34,10 +34,9 @@ ensemble. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -49,8 +48,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_nve_asphere.txt b/doc/src/fix_nve_asphere.txt index 1f31fb9679..5be7a7aa68 100644 --- a/doc/src/fix_nve_asphere.txt +++ b/doc/src/fix_nve_asphere.txt @@ -45,10 +45,9 @@ This fix is not invoked during "energy minimization"_minimize.html. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -60,8 +59,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_nve_sphere.txt b/doc/src/fix_nve_sphere.txt index 21dc6cba8a..cfe73a854d 100644 --- a/doc/src/fix_nve_sphere.txt +++ b/doc/src/fix_nve_sphere.txt @@ -65,10 +65,9 @@ moment of inertia, as used in the time integration. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -80,8 +79,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_nvt_asphere.txt b/doc/src/fix_nvt_asphere.txt index 21b900f16a..031c60e4be 100644 --- a/doc/src/fix_nvt_asphere.txt +++ b/doc/src/fix_nvt_asphere.txt @@ -86,10 +86,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -101,8 +100,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nvt_body.txt b/doc/src/fix_nvt_body.txt index 6a5e09ba7f..80de7fd7c3 100644 --- a/doc/src/fix_nvt_body.txt +++ b/doc/src/fix_nvt_body.txt @@ -85,10 +85,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -100,8 +99,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nvt_sllod.txt b/doc/src/fix_nvt_sllod.txt index 392dbc281c..bb3c092939 100644 --- a/doc/src/fix_nvt_sllod.txt +++ b/doc/src/fix_nvt_sllod.txt @@ -109,10 +109,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -124,8 +123,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nvt_sphere.txt b/doc/src/fix_nvt_sphere.txt index ecf0922b79..897d5606d7 100644 --- a/doc/src/fix_nvt_sphere.txt +++ b/doc/src/fix_nvt_sphere.txt @@ -96,10 +96,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -111,8 +110,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_qeq_comb.txt b/doc/src/fix_qeq_comb.txt index 7f82404127..783dc3133c 100644 --- a/doc/src/fix_qeq_comb.txt +++ b/doc/src/fix_qeq_comb.txt @@ -62,10 +62,9 @@ equilibration calculation is written to the specified file. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -77,8 +76,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_qeq_reax.txt b/doc/src/fix_qeq_reax.txt index 18450c7cd5..a534a66c09 100644 --- a/doc/src/fix_qeq_reax.txt +++ b/doc/src/fix_qeq_reax.txt @@ -80,10 +80,9 @@ This fix is invoked during "energy minimization"_minimize.html. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -95,8 +94,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_rigid.txt b/doc/src/fix_rigid.txt index 8d803ac6da..f3dd20daa3 100644 --- a/doc/src/fix_rigid.txt +++ b/doc/src/fix_rigid.txt @@ -690,10 +690,9 @@ rigid/nvt. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -705,8 +704,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_rx.txt b/doc/src/fix_rx.txt index 0810a34740..aff3303f43 100644 --- a/doc/src/fix_rx.txt +++ b/doc/src/fix_rx.txt @@ -186,10 +186,9 @@ read_data data.dpd fix foo_SPECIES NULL Species Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -201,8 +200,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_setforce.txt b/doc/src/fix_setforce.txt index f5be0f93a5..0af1c92922 100644 --- a/doc/src/fix_setforce.txt +++ b/doc/src/fix_setforce.txt @@ -65,12 +65,12 @@ to it. :line -Styles with a r {kk} suffix are functionally the same as the -corresponding style without the suffix. They have been optimized to -run faster, depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. The region keyword is also supported by Kokkos, but a Kokkos-enabled region must be used. See the region "region"_region.html command for @@ -85,8 +85,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_shake.txt b/doc/src/fix_shake.txt index 46452a1f7e..7428b30a14 100644 --- a/doc/src/fix_shake.txt +++ b/doc/src/fix_shake.txt @@ -145,12 +145,12 @@ info of atoms in the molecule. :line -Styles with a suffix are functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, -depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -162,8 +162,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_shardlow.txt b/doc/src/fix_shardlow.txt index 24726d8610..6d14346334 100644 --- a/doc/src/fix_shardlow.txt +++ b/doc/src/fix_shardlow.txt @@ -56,10 +56,9 @@ examples/USER/dpd directory. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -71,8 +70,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_wall.txt b/doc/src/fix_wall.txt index e814c89a07..959a103f02 100644 --- a/doc/src/fix_wall.txt +++ b/doc/src/fix_wall.txt @@ -288,10 +288,9 @@ option for this fix. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -303,8 +302,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_wall_reflect.txt b/doc/src/fix_wall_reflect.txt index 954ec65bf6..5380bdf738 100644 --- a/doc/src/fix_wall_reflect.txt +++ b/doc/src/fix_wall_reflect.txt @@ -130,10 +130,9 @@ position = c0 + A (1 - cos(omega*delta)) :pre Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -145,8 +144,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_class2.txt b/doc/src/improper_class2.txt index 14ec6258de..ef2abf5091 100644 --- a/doc/src/improper_class2.txt +++ b/doc/src/improper_class2.txt @@ -87,10 +87,9 @@ radians internally; hence the units of M are in energy/radian^2. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -102,8 +101,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_cossq.txt b/doc/src/improper_cossq.txt index 138a6a1650..22ba990ba4 100644 --- a/doc/src/improper_cossq.txt +++ b/doc/src/improper_cossq.txt @@ -53,10 +53,9 @@ X0 (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -68,8 +67,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_cvff.txt b/doc/src/improper_cvff.txt index 5f69eccc60..1662d93b14 100644 --- a/doc/src/improper_cvff.txt +++ b/doc/src/improper_cvff.txt @@ -54,10 +54,9 @@ n (0,1,2,3,4,6) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -69,8 +68,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_fourier.txt b/doc/src/improper_fourier.txt index f9062da207..99132b8931 100644 --- a/doc/src/improper_fourier.txt +++ b/doc/src/improper_fourier.txt @@ -48,10 +48,9 @@ all (integer >= 0) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -63,8 +62,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_harmonic.txt b/doc/src/improper_harmonic.txt index bb17e5a641..f37338e468 100644 --- a/doc/src/improper_harmonic.txt +++ b/doc/src/improper_harmonic.txt @@ -58,10 +58,9 @@ internally; hence the units of K are in energy/radian^2. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -73,8 +72,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_ring.txt b/doc/src/improper_ring.txt index c02d392474..84c35f9f5c 100644 --- a/doc/src/improper_ring.txt +++ b/doc/src/improper_ring.txt @@ -57,10 +57,9 @@ theta0 (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -72,8 +71,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_umbrella.txt b/doc/src/improper_umbrella.txt index d6df9ee6cc..e72cc7f0ad 100644 --- a/doc/src/improper_umbrella.txt +++ b/doc/src/improper_umbrella.txt @@ -51,10 +51,9 @@ omega0 (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -66,8 +65,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/kspace_style.txt b/doc/src/kspace_style.txt index 4f27c9aa78..8dbb3dde49 100644 --- a/doc/src/kspace_style.txt +++ b/doc/src/kspace_style.txt @@ -145,8 +145,8 @@ speedup in the KSpace time (8x less mesh points, 2x more expensive). However, for low relative accuracy, the staggered PPPM mesh size may be essentially the same as for regular PPPM, which means the method will be up to 2x slower in the KSpace time (simply 2x more expensive). -For more details and timings, see -"Section 5"_Section_accelerate.html. +For more details and timings, see the "Speed tips"_Speed_tips.html doc +page. NOTE: Using {pppm/stagger} may not give the same increase in the accuracy of energy and pressure as it does in forces, so some caution @@ -267,10 +267,9 @@ relative RMS error. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. More specifically, the {pppm/gpu} style performs charge assignment and force interpolation calculations on the GPU. These processes are @@ -291,8 +290,8 @@ KOKKOS, USER-OMP, and OPT packages respectively. They are only enabled if LAMMPS was built with those packages. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 4274ef48b3..f96960ff39 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -4,13 +4,11 @@ Manual.html Section_intro.html Section_start.html Section_commands.html -Section_packages.html -Section_accelerate.html -accelerate_gpu.html -accelerate_intel.html -accelerate_kokkos.html -accelerate_omp.html -accelerate_opt.html +Packages.html +Packages_standard.html +Packages_user.html +Packages_details.html +Speed.html Section_howto.html Examples.html Section_perf.html diff --git a/doc/src/package.txt b/doc/src/package.txt index 5fd42f67d3..81e1db9bd8 100644 --- a/doc/src/package.txt +++ b/doc/src/package.txt @@ -149,9 +149,9 @@ the style options are set, either to default values or to specified settings. I.e. settings from previous invocations do not persist across multiple invocations. -See the "Section 5.3"_Section_accelerate.html#acc_3 section of the -manual for more details about using the various accelerator packages -for speeding up LAMMPS simulations. +See the "Speed packages"_Speed_packages.html doc page for more details +about using the various accelerator packages for speeding up LAMMPS +simulations. :line diff --git a/doc/src/pair_adp.txt b/doc/src/pair_adp.txt index 9d2a48dcbc..1ba59b7732 100644 --- a/doc/src/pair_adp.txt +++ b/doc/src/pair_adp.txt @@ -125,10 +125,9 @@ array tabulated with a scaling by r. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -140,8 +139,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_agni.txt b/doc/src/pair_agni.txt index 402e537dad..352e00249a 100644 --- a/doc/src/pair_agni.txt +++ b/doc/src/pair_agni.txt @@ -58,11 +58,11 @@ and input files are provided in the examples/USER/misc/agni directory. :line Styles with {omp} suffix is functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, depending -on your available hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated style takes the same arguments and -should produce the same results, except for round-off and precision -issues. +style without the suffix. They have been optimized to run faster, +depending on your available hardware, as discussed on the "Speed +packages"_Speed_packages.html doc page. The accelerated style takes +the same arguments and should produce the same results, except for +round-off and precision issues. The accelerated style is part of the USER-OMP. They are only enabled if LAMMPS was built with those packages. See the "Making @@ -73,8 +73,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_airebo.txt b/doc/src/pair_airebo.txt index 1aa017f278..b5add21f24 100644 --- a/doc/src/pair_airebo.txt +++ b/doc/src/pair_airebo.txt @@ -176,10 +176,9 @@ thermo_style custom step temp epair v_REBO v_LJ v_TORSION :pre Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -191,8 +190,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_beck.txt b/doc/src/pair_beck.txt index e160f09b3d..1aca4b4f9a 100644 --- a/doc/src/pair_beck.txt +++ b/doc/src/pair_beck.txt @@ -51,10 +51,9 @@ Rc is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -66,8 +65,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_born.txt b/doc/src/pair_born.txt index f867107426..2504fb7e25 100644 --- a/doc/src/pair_born.txt +++ b/doc/src/pair_born.txt @@ -145,10 +145,9 @@ pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -160,8 +159,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_buck.txt b/doc/src/pair_buck.txt index d18b39d5d9..de247b9c01 100644 --- a/doc/src/pair_buck.txt +++ b/doc/src/pair_buck.txt @@ -140,10 +140,9 @@ pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -155,8 +154,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_buck_long.txt b/doc/src/pair_buck_long.txt index 05e760e1b2..94bf6a2d7c 100644 --- a/doc/src/pair_buck_long.txt +++ b/doc/src/pair_buck_long.txt @@ -102,10 +102,9 @@ global Coulombic cutoff is allowed. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -117,8 +116,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_charmm.txt b/doc/src/pair_charmm.txt index 75a8e4bff9..af20661bbd 100644 --- a/doc/src/pair_charmm.txt +++ b/doc/src/pair_charmm.txt @@ -184,10 +184,9 @@ the pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -199,8 +198,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_class2.txt b/doc/src/pair_class2.txt index 36fae5068b..e62971a645 100644 --- a/doc/src/pair_class2.txt +++ b/doc/src/pair_class2.txt @@ -102,10 +102,9 @@ cutoff distance. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -117,8 +116,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_colloid.txt b/doc/src/pair_colloid.txt index 83b15b358b..a7bb0db08a 100644 --- a/doc/src/pair_colloid.txt +++ b/doc/src/pair_colloid.txt @@ -127,10 +127,9 @@ commands for efficiency: "neighbor multi"_neighbor.html and Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -142,8 +141,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_comb.txt b/doc/src/pair_comb.txt index f5461b1cbc..6949ca50c2 100644 --- a/doc/src/pair_comb.txt +++ b/doc/src/pair_comb.txt @@ -112,10 +112,9 @@ nor file {ffield.comb3} with style {comb}. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -127,8 +126,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_coul.txt b/doc/src/pair_coul.txt index aa3a008bd3..650575d055 100644 --- a/doc/src/pair_coul.txt +++ b/doc/src/pair_coul.txt @@ -268,10 +268,9 @@ command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -283,8 +282,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_dipole.txt b/doc/src/pair_dipole.txt index 2516e5eae4..e7d196d599 100644 --- a/doc/src/pair_dipole.txt +++ b/doc/src/pair_dipole.txt @@ -186,10 +186,9 @@ type pair. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -201,8 +200,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_dpd.txt b/doc/src/pair_dpd.txt index 9e29e93430..a36029ea63 100644 --- a/doc/src/pair_dpd.txt +++ b/doc/src/pair_dpd.txt @@ -110,10 +110,9 @@ random force. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -125,8 +124,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_dpd_fdt.txt b/doc/src/pair_dpd_fdt.txt index 867f3f2315..129d3c84af 100644 --- a/doc/src/pair_dpd_fdt.txt +++ b/doc/src/pair_dpd_fdt.txt @@ -129,10 +129,9 @@ significantly larger timesteps to be taken. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -144,8 +143,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_eam.txt b/doc/src/pair_eam.txt index 03e77f53ab..8d4d11341c 100644 --- a/doc/src/pair_eam.txt +++ b/doc/src/pair_eam.txt @@ -371,10 +371,9 @@ are listed. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -386,7 +385,7 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for more +See the "Speed packages"_Speed_packages.html doc page for more instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_edip.txt b/doc/src/pair_edip.txt index e5b1420b59..f0d1927812 100644 --- a/doc/src/pair_edip.txt +++ b/doc/src/pair_edip.txt @@ -109,10 +109,9 @@ the EDIP package. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -124,8 +123,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_eim.txt b/doc/src/pair_eim.txt index 75ad2d4683..7f94d919f2 100644 --- a/doc/src/pair_eim.txt +++ b/doc/src/pair_eim.txt @@ -136,10 +136,9 @@ needs. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -151,8 +150,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_exp6_rx.txt b/doc/src/pair_exp6_rx.txt index 7eafa23543..dec660fd1d 100644 --- a/doc/src/pair_exp6_rx.txt +++ b/doc/src/pair_exp6_rx.txt @@ -153,10 +153,9 @@ pair interaction. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -168,8 +167,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_gauss.txt b/doc/src/pair_gauss.txt index f6f46a2de8..7716f89f17 100644 --- a/doc/src/pair_gauss.txt +++ b/doc/src/pair_gauss.txt @@ -84,10 +84,9 @@ is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -99,8 +98,8 @@ by including their suffix, or you can use the "-suffix command-line switch7_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_gayberne.txt b/doc/src/pair_gayberne.txt index c923578586..e9a98a0b84 100644 --- a/doc/src/pair_gayberne.txt +++ b/doc/src/pair_gayberne.txt @@ -133,10 +133,9 @@ pair_coeff sigma to 1.0 as well. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -148,8 +147,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_gran.txt b/doc/src/pair_gran.txt index d7e87af013..86b04f96de 100644 --- a/doc/src/pair_gran.txt +++ b/doc/src/pair_gran.txt @@ -179,10 +179,9 @@ potential. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -194,8 +193,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_gromacs.txt b/doc/src/pair_gromacs.txt index ec84a2d57a..7daf805e2b 100644 --- a/doc/src/pair_gromacs.txt +++ b/doc/src/pair_gromacs.txt @@ -91,10 +91,9 @@ cutoff(s) specified in the pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -106,8 +105,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_hbond_dreiding.txt b/doc/src/pair_hbond_dreiding.txt index d3cf90ec14..45f852c254 100644 --- a/doc/src/pair_hbond_dreiding.txt +++ b/doc/src/pair_hbond_dreiding.txt @@ -166,10 +166,9 @@ optional parameters. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -181,8 +180,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_hybrid.txt b/doc/src/pair_hybrid.txt index d37dedc709..9503256d26 100644 --- a/doc/src/pair_hybrid.txt +++ b/doc/src/pair_hybrid.txt @@ -315,8 +315,8 @@ off C/C interaction, i.e. by setting the appropriate coefficients to Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. Since the {hybrid} and {hybrid/overlay} styles delegate computation to the individual sub-styles, the suffix versions of the {hybrid} and @@ -334,8 +334,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_kim.txt b/doc/src/pair_kim.txt index c5d910e27c..fc2c1405af 100644 --- a/doc/src/pair_kim.txt +++ b/doc/src/pair_kim.txt @@ -46,8 +46,8 @@ are included in the KIM library by default, in the "What is in the KIM API source package?" section. To use this pair style, you must first download and install the KIM -API library from the "OpenKIM website"_https://openkim.org. The "KIM -section of Section packages"_Section_packages.html#KIM has +API library from the "OpenKIM website"_https://openkim.org. The KIM +section of the "Packages details"_Packages_details.html doc page has instructions on how to do this with a simple make command, when building LAMMPS. diff --git a/doc/src/pair_lj.txt b/doc/src/pair_lj.txt index e297d479bc..c2968ffdf3 100644 --- a/doc/src/pair_lj.txt +++ b/doc/src/pair_lj.txt @@ -269,10 +269,9 @@ pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -284,8 +283,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj96.txt b/doc/src/pair_lj96.txt index 83f6ec063d..a0a9971474 100644 --- a/doc/src/pair_lj96.txt +++ b/doc/src/pair_lj96.txt @@ -49,10 +49,9 @@ cutoff specified in the pair_style command is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -64,8 +63,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_cubic.txt b/doc/src/pair_lj_cubic.txt index 4ca8c3c141..c4e2af5062 100644 --- a/doc/src/pair_lj_cubic.txt +++ b/doc/src/pair_lj_cubic.txt @@ -63,10 +63,9 @@ located at rmin = 2^(1/6)*sigma. In the above example, sigma = Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -78,8 +77,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_expand.txt b/doc/src/pair_lj_expand.txt index e0838426f6..c156fefef2 100644 --- a/doc/src/pair_lj_expand.txt +++ b/doc/src/pair_lj_expand.txt @@ -53,10 +53,9 @@ optional. If not specified, the global LJ cutoff is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -68,8 +67,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_long.txt b/doc/src/pair_lj_long.txt index 6be4562d18..bc851adb74 100644 --- a/doc/src/pair_lj_long.txt +++ b/doc/src/pair_lj_long.txt @@ -156,10 +156,9 @@ specified in the pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -171,8 +170,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_smooth.txt b/doc/src/pair_lj_smooth.txt index b1678cad58..653520966b 100644 --- a/doc/src/pair_lj_smooth.txt +++ b/doc/src/pair_lj_smooth.txt @@ -62,10 +62,9 @@ specified, the global values for Rin and Rc are used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -77,8 +76,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_smooth_linear.txt b/doc/src/pair_lj_smooth_linear.txt index 5f7c226cee..aebde2e653 100644 --- a/doc/src/pair_lj_smooth_linear.txt +++ b/doc/src/pair_lj_smooth_linear.txt @@ -49,10 +49,9 @@ LJ cutoff specified in the pair_style command is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -64,8 +63,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_soft.txt b/doc/src/pair_lj_soft.txt index 2ef133da55..7add9f623d 100644 --- a/doc/src/pair_lj_soft.txt +++ b/doc/src/pair_lj_soft.txt @@ -207,10 +207,9 @@ directory tree, under examples/USER/fep. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -222,8 +221,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_meam_spline.txt b/doc/src/pair_meam_spline.txt index 6653b397a0..74242e32b9 100644 --- a/doc/src/pair_meam_spline.txt +++ b/doc/src/pair_meam_spline.txt @@ -106,10 +106,9 @@ MEAM files. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -121,8 +120,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_morse.txt b/doc/src/pair_morse.txt index 3eb5ac5afe..34876011a1 100644 --- a/doc/src/pair_morse.txt +++ b/doc/src/pair_morse.txt @@ -101,10 +101,9 @@ cutoff is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -116,8 +115,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_multi_lucy_rx.txt b/doc/src/pair_multi_lucy_rx.txt index 57abcf4a4c..b043030907 100644 --- a/doc/src/pair_multi_lucy_rx.txt +++ b/doc/src/pair_multi_lucy_rx.txt @@ -204,10 +204,9 @@ This pair style can only be used via the {pair} keyword of the Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -219,8 +218,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_nb3b_harmonic.txt b/doc/src/pair_nb3b_harmonic.txt index 2395707fb4..e6e103f517 100644 --- a/doc/src/pair_nb3b_harmonic.txt +++ b/doc/src/pair_nb3b_harmonic.txt @@ -92,10 +92,9 @@ a particular simulation; LAMMPS ignores those entries. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -107,8 +106,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_nm.txt b/doc/src/pair_nm.txt index 81cea1a38d..08c3393993 100644 --- a/doc/src/pair_nm.txt +++ b/doc/src/pair_nm.txt @@ -133,10 +133,9 @@ the "run_style respa"_run_style.html command. They do not support the Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -148,8 +147,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restrictions:] diff --git a/doc/src/pair_peri.txt b/doc/src/pair_peri.txt index deca093e3b..4327003057 100644 --- a/doc/src/pair_peri.txt +++ b/doc/src/pair_peri.txt @@ -139,10 +139,9 @@ details please see the description in "(Mtchell2011a)". Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -154,8 +153,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_reaxc.txt b/doc/src/pair_reaxc.txt index 39759b3111..8d8c7e84e7 100644 --- a/doc/src/pair_reaxc.txt +++ b/doc/src/pair_reaxc.txt @@ -50,11 +50,11 @@ as a package. The {reax/c/kk} style is a Kokkos version of the ReaxFF potential that is derived from the {reax/c} style. The Kokkos version can run on GPUs and can also use OpenMP multithreading. For more information about the -Kokkos package, see "Section 4"_Section_packages.html#kokkos and -"Section 5.3.3"_accelerate_kokkos.html. One important consideration -when using the {reax/c/kk} style is the choice of either half or full -neighbor lists. This setting can be changed using the Kokkos -"package"_package.html command. +Kokkos package, see "Packages details"_Packages_details.html and +"Speed kokkos"_Speed_kokkos.html doc pages. One important +consideration when using the {reax/c/kk} style is the choice of either +half or full neighbor lists. This setting can be changed using the +Kokkos "package"_package.html command. The {reax/c} style differs from the "pair_style reax"_pair_reax.html command in the lo-level implementation details. The {reax} style is a @@ -303,10 +303,9 @@ This pair style can only be used via the {pair} keyword of the Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -318,8 +317,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_resquared.txt b/doc/src/pair_resquared.txt index 9ad95eb5fc..6ea5c73c0d 100644 --- a/doc/src/pair_resquared.txt +++ b/doc/src/pair_resquared.txt @@ -145,10 +145,9 @@ specified in the pair_style command is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -160,8 +159,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_sdk.txt b/doc/src/pair_sdk.txt index 360136a4ea..4cd56bc43d 100644 --- a/doc/src/pair_sdk.txt +++ b/doc/src/pair_sdk.txt @@ -85,10 +85,9 @@ pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp} or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP, and OPT packages respectively. They are only enabled if @@ -100,8 +99,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_snap.txt b/doc/src/pair_snap.txt index 27dcf6082b..c3d6e67e82 100644 --- a/doc/src/pair_snap.txt +++ b/doc/src/pair_snap.txt @@ -175,10 +175,9 @@ This pair style can only be used via the {pair} keyword of the Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -190,8 +189,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_soft.txt b/doc/src/pair_soft.txt index 08fa88c477..adbfa596c9 100644 --- a/doc/src/pair_soft.txt +++ b/doc/src/pair_soft.txt @@ -82,10 +82,9 @@ variables. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -97,8 +96,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_sw.txt b/doc/src/pair_sw.txt index 4932fe55d3..7c9ce4a4f9 100644 --- a/doc/src/pair_sw.txt +++ b/doc/src/pair_sw.txt @@ -144,10 +144,9 @@ taken from the ij and ik pairs (sigma, a, gamma) Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -164,8 +163,8 @@ additional 5 to 10 percent performance improvement when the Stillinger-Weber parameters p and q are set to 4 and 0 respectively. These parameters are common for modeling silicon and water. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_table.txt b/doc/src/pair_table.txt index b99491b477..f5e69a6d54 100644 --- a/doc/src/pair_table.txt +++ b/doc/src/pair_table.txt @@ -217,10 +217,9 @@ one that matches the specified keyword. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -232,8 +231,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_table_rx.txt b/doc/src/pair_table_rx.txt index cd3a7ef31b..52760c396b 100644 --- a/doc/src/pair_table_rx.txt +++ b/doc/src/pair_table_rx.txt @@ -227,10 +227,9 @@ This pair style can only be used via the {pair} keyword of the Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -242,8 +241,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_tersoff.txt b/doc/src/pair_tersoff.txt index 918e889924..70fe207f0a 100644 --- a/doc/src/pair_tersoff.txt +++ b/doc/src/pair_tersoff.txt @@ -179,10 +179,9 @@ defined in various papers. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -194,8 +193,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_tersoff_mod.txt b/doc/src/pair_tersoff_mod.txt index e0c2b5a5cb..aced6d40d6 100644 --- a/doc/src/pair_tersoff_mod.txt +++ b/doc/src/pair_tersoff_mod.txt @@ -131,10 +131,9 @@ for SiSiSi means Si bonded to a Si with another Si atom influencing the bond. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -146,8 +145,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_tersoff_zbl.txt b/doc/src/pair_tersoff_zbl.txt index 21d57e4e88..838c2f39cf 100644 --- a/doc/src/pair_tersoff_zbl.txt +++ b/doc/src/pair_tersoff_zbl.txt @@ -189,10 +189,9 @@ providing the base ZBL implementation. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -204,8 +203,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_thole.txt b/doc/src/pair_thole.txt index 41a4059cee..11d4b85cff 100644 --- a/doc/src/pair_thole.txt +++ b/doc/src/pair_thole.txt @@ -130,10 +130,9 @@ the {pair_style} command line. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -145,8 +144,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Mixing]: diff --git a/doc/src/pair_ufm.txt b/doc/src/pair_ufm.txt index 88a22864cc..5af8741502 100644 --- a/doc/src/pair_ufm.txt +++ b/doc/src/pair_ufm.txt @@ -69,10 +69,9 @@ NOTE: The thermodynamic integration procedure can be performed with this potenti Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -84,8 +83,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_vashishta.txt b/doc/src/pair_vashishta.txt index d9c66d45c0..e90a9d8f50 100644 --- a/doc/src/pair_vashishta.txt +++ b/doc/src/pair_vashishta.txt @@ -171,10 +171,9 @@ two-body parameters from the CCC and CSiSi entries. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -186,8 +185,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_yukawa.txt b/doc/src/pair_yukawa.txt index e7c063ded9..979165dda0 100644 --- a/doc/src/pair_yukawa.txt +++ b/doc/src/pair_yukawa.txt @@ -49,10 +49,9 @@ cutoff is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -64,8 +63,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_yukawa_colloid.txt b/doc/src/pair_yukawa_colloid.txt index 2037a9451f..a1752c261e 100644 --- a/doc/src/pair_yukawa_colloid.txt +++ b/doc/src/pair_yukawa_colloid.txt @@ -80,10 +80,9 @@ yukawa/colloid cutoff is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -95,8 +94,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_zbl.txt b/doc/src/pair_zbl.txt index 1984cd831f..0507083295 100644 --- a/doc/src/pair_zbl.txt +++ b/doc/src/pair_zbl.txt @@ -71,10 +71,9 @@ copper. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -86,8 +85,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/region.txt b/doc/src/region.txt index 5039e4a516..1ac3861e67 100644 --- a/doc/src/region.txt +++ b/doc/src/region.txt @@ -358,12 +358,12 @@ sub-regions can be defined with the {open} keyword. :line -Styles with a {kk} suffix are functionally the same as the -corresponding style without the suffix. They have been optimized to -run faster, depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. The code using the region (such as a fix or compute) must also be supported by Kokkos or no acceleration will occur. Currently, only {block} style @@ -378,8 +378,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/run_style.txt b/doc/src/run_style.txt index 7717ede86f..a896a648af 100644 --- a/doc/src/run_style.txt +++ b/doc/src/run_style.txt @@ -119,13 +119,13 @@ switches"_Section_start.html#start_6 to change this. The log and screen file for the 2nd partition will not contain thermodynamic output beyond the 1st timestep of the run. -See "Section 5"_Section_accelerate.html of the manual for -performance details of the speed-up offered by the {verlet/split} -style. One important performance consideration is the assignment of -logical processors in the 2 partitions to the physical cores of a -parallel machine. The "processors"_processors.html command has -options to support this, and strategies are discussed in -"Section 5"_Section_accelerate.html of the manual. +See the "Speed packages"_Speed_packages.html doc page for performance +details of the speed-up offered by the {verlet/split} style. One +important performance consideration is the assignment of logical +processors in the 2 partitions to the physical cores of a parallel +machine. The "processors"_processors.html command has options to +support this, and strategies are discussed in "Section +5"_Section_accelerate.html of the manual. :line @@ -274,21 +274,21 @@ run_style respa 3 3 4 inner 1 3.0 4.0 middle 2 6.0 7.0 outer 3 :pre :line -The {respa/omp} styles is a variant of {respa} adapted for use with +The {respa/omp} style is a variant of {respa} adapted for use with pair, bond, angle, dihedral, improper, or kspace styles with an {omp} -suffix. It is functionally equivalent to {respa} but performs additional -operations required for managing {omp} styles. For more on {omp} styles -see the "Section 5"_Section_accelerate.html of the manual. -Accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +suffix. It is functionally equivalent to {respa} but performs +additional operations required for managing {omp} styles. For more on +{omp} styles see the "Speed omp"_Speed_omp.html doc page. Accelerated +styles take the same arguments and should produce the same results, +except for round-off and precision issues. You can specify {respa/omp} explicitly in your input script, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line From 34f619ea1d6514d6e231c5acbd8f8589ee77047a Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 30 Jul 2018 19:04:52 -0400 Subject: [PATCH 372/675] Update lammps.book --- doc/src/lammps.book | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/doc/src/lammps.book b/doc/src/lammps.book index f96960ff39..fe9a64932b 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -9,9 +9,18 @@ Packages_standard.html Packages_user.html Packages_details.html Speed.html +Speed_bench.html +Speed_measure.html +Speed_tips.html +Speed_packages.html +Speed_gpu.html +Speed_intel.html +Speed_kokkos.html +Speed_omp.html +Speed_opt.html +Speed_compare Section_howto.html Examples.html -Section_perf.html Tools.html Modify.html Modify_overview.html From 57cd1ab55ad6b1f319e01230f25075c73788de93 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 30 Jul 2018 19:13:26 -0400 Subject: [PATCH 373/675] Add missing extension --- doc/src/lammps.book | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/lammps.book b/doc/src/lammps.book index fe9a64932b..f9798da227 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -18,7 +18,7 @@ Speed_intel.html Speed_kokkos.html Speed_omp.html Speed_opt.html -Speed_compare +Speed_compare.html Section_howto.html Examples.html Tools.html From 18a7b1ab4f51b289127beca2df91f88354c7eb90 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 30 Jul 2018 21:32:12 -0400 Subject: [PATCH 374/675] Fix broken links and duplicate TOC --- doc/src/Section_howto.txt | 2 +- doc/src/Speed.txt | 5 ----- doc/src/Speed_intel.txt | 8 ++++---- doc/src/Speed_omp.txt | 2 +- doc/src/Speed_packages.txt | 26 +++++++++++++------------- doc/src/fix_reax_bonds.txt | 4 ++-- doc/src/fix_reaxc_species.txt | 4 ++-- doc/src/pair_brownian.txt | 4 ++-- doc/src/pair_lubricate.txt | 4 ++-- doc/src/run_style.txt | 2 +- 10 files changed, 28 insertions(+), 33 deletions(-) diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt index 3c5fe47057..f929d3bdab 100644 --- a/doc/src/Section_howto.txt +++ b/doc/src/Section_howto.txt @@ -1,4 +1,4 @@ -"Previous Section"_Section_accelerate.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Examples.html :c +"Previous Section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Examples.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Speed.txt b/doc/src/Speed.txt index 2339a11c06..1e2097ab1d 100644 --- a/doc/src/Speed.txt +++ b/doc/src/Speed.txt @@ -42,11 +42,6 @@ hardware platforms. .. toctree:: Speed_packages - Speed_gpu - Speed_intel - Speed_kokkos - Speed_omp - Speed_opt Speed_compare END_RST --> diff --git a/doc/src/Speed_intel.txt b/doc/src/Speed_intel.txt index acf5c3f2f9..08e3fbc4cc 100644 --- a/doc/src/Speed_intel.txt +++ b/doc/src/Speed_intel.txt @@ -186,8 +186,8 @@ can start running so that the CPU pipeline is still being used efficiently. Although benefits can be seen by launching a MPI task for every hardware thread, for multinode simulations, we recommend that OpenMP threads are used for SMT instead, either with the -USER-INTEL package, "USER-OMP package"_accelerate_omp.html, or -"KOKKOS package"_accelerate_kokkos.html. In the example above, up +USER-INTEL package, "USER-OMP package"_Speed_omp.html, or +"KOKKOS package"_Speed_kokkos.html. In the example above, up to 36X speedups can be observed by using all 36 physical cores with LAMMPS. By using all 72 hardware threads, an additional 10-30% performance gain can be achieved. @@ -389,8 +389,8 @@ performance and/or scalability for simple 2-body potentials such as lj/cut or when using LRT mode on processors supporting AVX-512. Not all styles are supported in the USER-INTEL package. You can mix -the USER-INTEL package with styles from the "OPT"_accelerate_opt.html -package or the "USER-OMP package"_accelerate_omp.html. Of course, +the USER-INTEL package with styles from the "OPT"_Speed_opt.html +package or the "USER-OMP package"_Speed_omp.html. Of course, this requires that these packages were installed at build time. This can performed automatically by using "-sf hybrid intel opt" or "-sf hybrid intel omp" command-line options. Alternatively, the "opt" diff --git a/doc/src/Speed_omp.txt b/doc/src/Speed_omp.txt index 3700580225..9685b6d349 100644 --- a/doc/src/Speed_omp.txt +++ b/doc/src/Speed_omp.txt @@ -99,7 +99,7 @@ task, versus running standard LAMMPS with its standard un-accelerated styles (in serial or all-MPI parallelization with 1 task/core). This is because many of the USER-OMP styles contain similar optimizations to those used in the OPT package, described in "Section -5.3.5"_accelerate_opt.html. +5.3.5"_Speed_opt.html. With multiple threads/task, the optimal choice of number of MPI tasks/node and OpenMP threads/task can vary a lot and should always be diff --git a/doc/src/Speed_packages.txt b/doc/src/Speed_packages.txt index 18850d52e0..13b5e183db 100644 --- a/doc/src/Speed_packages.txt +++ b/doc/src/Speed_packages.txt @@ -23,11 +23,11 @@ pages. These are the accelerator packages currently in LAMMPS, either as standard or user packages: -"GPU Package"_accelerate_gpu.html : for NVIDIA GPUs as well as OpenCL support -"USER-INTEL Package"_accelerate_intel.html : for Intel CPUs and Intel Xeon Phi -"KOKKOS Package"_accelerate_kokkos.html : for Nvidia GPUs, Intel Xeon Phi, and OpenMP threading -"USER-OMP Package"_accelerate_omp.html : for OpenMP threading and generic CPU optimizations -"OPT Package"_accelerate_opt.html : generic CPU optimizations :tb(s=:) +"GPU Package"_Speed_gpu.html : for NVIDIA GPUs as well as OpenCL support +"USER-INTEL Package"_Speed_intel.html : for Intel CPUs and Intel Xeon Phi +"KOKKOS Package"_Speed_kokkos.html : for Nvidia GPUs, Intel Xeon Phi, and OpenMP threading +"USER-OMP Package"_Speed_omp.html : for OpenMP threading and generic CPU optimizations +"OPT Package"_Speed_opt.html : generic CPU optimizations :tb(s=:) Inverting this list, LAMMPS currently has acceleration support for three kinds of hardware, via the listed packages: -Many-core CPUs : "USER-INTEL"_accelerate_intel.html, "KOKKOS"_accelerate_kokkos.html, "USER-OMP"_accelerate_omp.html, "OPT"_accelerate_opt.html packages -NVIDIA GPUs : "GPU"_accelerate_gpu.html, "KOKKOS"_accelerate_kokkos.html packages -Intel Phi : "USER-INTEL"_accelerate_intel.html, "KOKKOS"_accelerate_kokkos.html packages :tb(s=:) +Many-core CPUs : "USER-INTEL"_Speed_intel.html, "KOKKOS"_Speed_kokkos.html, "USER-OMP"_Speed_omp.html, "OPT"_Speed_opt.html packages +NVIDIA GPUs : "GPU"_Speed_gpu.html, "KOKKOS"_Speed_kokkos.html packages +Intel Phi : "USER-INTEL"_Speed_intel.html, "KOKKOS"_Speed_kokkos.html packages :tb(s=:) Which package is fastest for your hardware may depend on the size problem you are running and what commands (accelerated and diff --git a/doc/src/fix_reax_bonds.txt b/doc/src/fix_reax_bonds.txt index 3f8f237de1..50f0b77d52 100644 --- a/doc/src/fix_reax_bonds.txt +++ b/doc/src/fix_reax_bonds.txt @@ -72,7 +72,7 @@ This fix is not invoked during "energy minimization"_minimize.html. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section_accelerate"_Section_accelerate.html +hardware, as discussed in "Speed"_Speed.html of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues. @@ -87,7 +87,7 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section_accelerate"_Section_accelerate.html of the manual for +See "Speed"_Speed.html of the manual for more instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_reaxc_species.txt b/doc/src/fix_reaxc_species.txt index 7c920791f7..75e4598ca5 100644 --- a/doc/src/fix_reaxc_species.txt +++ b/doc/src/fix_reaxc_species.txt @@ -139,7 +139,7 @@ minimization"_minimize.html. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section_accelerate"_Section_accelerate.html +hardware, as discussed in "Speed"_Speed.html of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues. @@ -154,7 +154,7 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section_accelerate"_Section_accelerate.html of the manual for +See "Speed"_Speed.html of the manual for more instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_brownian.txt b/doc/src/pair_brownian.txt index 79b71e91c7..8d30f0cec6 100644 --- a/doc/src/pair_brownian.txt +++ b/doc/src/pair_brownian.txt @@ -74,7 +74,7 @@ must be specified. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "this section"_Section_accelerate.html of +hardware, as discussed in "this section"_Speed.html of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues. @@ -88,7 +88,7 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "this section"_Section_accelerate.html of the manual for more +See "this section"_Speed.html of the manual for more instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lubricate.txt b/doc/src/pair_lubricate.txt index b39c7545c7..2a16aa2a9d 100644 --- a/doc/src/pair_lubricate.txt +++ b/doc/src/pair_lubricate.txt @@ -143,7 +143,7 @@ must be specified. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "this section"_Section_accelerate.html of +hardware, as discussed in "this section"_Speed.html of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues. @@ -157,7 +157,7 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "this section"_Section_accelerate.html of the manual for more +See "this section"_Speed.html of the manual for more instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/run_style.txt b/doc/src/run_style.txt index a896a648af..6f1f719d64 100644 --- a/doc/src/run_style.txt +++ b/doc/src/run_style.txt @@ -125,7 +125,7 @@ important performance consideration is the assignment of logical processors in the 2 partitions to the physical cores of a parallel machine. The "processors"_processors.html command has options to support this, and strategies are discussed in "Section -5"_Section_accelerate.html of the manual. +5"_Speed.html of the manual. :line From f3615e83e8f8e72e3c6ad995f9b6fda1aed64946 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 31 Jul 2018 09:18:37 +0200 Subject: [PATCH 375/675] move pair style eam/cd from USER-MISC to MANYBODY and update docs accordingly --- cmake/CMakeLists.txt | 1 - doc/src/Section_commands.txt | 2 +- doc/src/pair_eam.txt | 9 ++--- src/{USER-MISC => MANYBODY}/pair_cdeam.cpp | 0 src/{USER-MISC => MANYBODY}/pair_cdeam.h | 0 src/USER-MISC/Install.sh | 40 ---------------------- src/USER-MISC/README | 1 - 7 files changed, 3 insertions(+), 50 deletions(-) rename src/{USER-MISC => MANYBODY}/pair_cdeam.cpp (100%) rename src/{USER-MISC => MANYBODY}/pair_cdeam.h (100%) delete mode 100755 src/USER-MISC/Install.sh diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 60a0f5d48f..065d22707a 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -178,7 +178,6 @@ pkg_depends(MPIIO MPI) pkg_depends(QEQ MANYBODY) pkg_depends(USER-ATC MANYBODY) pkg_depends(USER-LB MPI) -pkg_depends(USER-MISC MANYBODY) pkg_depends(USER-PHONON KSPACE) pkg_depends(CORESHELL KSPACE) diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt index 7b9349a233..3f1be036f5 100644 --- a/doc/src/Section_commands.txt +++ b/doc/src/Section_commands.txt @@ -969,6 +969,7 @@ KOKKOS, o = USER-OMP, t = OPT. "dsmc"_pair_dsmc.html, "eam (gikot)"_pair_eam.html, "eam/alloy (gikot)"_pair_eam.html, +"eam/cd (o)"_pair_eam.html, "eam/fs (gikot)"_pair_eam.html, "eim (o)"_pair_eim.html, "gauss (go)"_pair_gauss.html, @@ -1069,7 +1070,6 @@ package"_Section_start.html#start_3. "coul/shield"_pair_coul_shield.html, "dpd/fdt"_pair_dpd_fdt.html, "dpd/fdt/energy (k)"_pair_dpd_fdt.html, -"eam/cd (o)"_pair_eam.html, "edip (o)"_pair_edip.html, "edip/multi"_pair_edip.html, "edpd"_pair_meso.html, diff --git a/doc/src/pair_eam.txt b/doc/src/pair_eam.txt index 03e77f53ab..4ab4e6d794 100644 --- a/doc/src/pair_eam.txt +++ b/doc/src/pair_eam.txt @@ -414,15 +414,10 @@ The eam pair styles can only be used via the {pair} keyword of the [Restrictions:] -All of these styles except the {eam/cd} style are part of the MANYBODY -package. They are only enabled if LAMMPS was built with that package. +All of these styles are part of the MANYBODY package. They are only +enabled if LAMMPS was built with that package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. -The {eam/cd} style is part of the USER-MISC package and also requires -the MANYBODY package. It is only enabled if LAMMPS was built with -those packages. See the "Making LAMMPS"_Section_start.html#start_3 -section for more info. - [Related commands:] "pair_coeff"_pair_coeff.html diff --git a/src/USER-MISC/pair_cdeam.cpp b/src/MANYBODY/pair_cdeam.cpp similarity index 100% rename from src/USER-MISC/pair_cdeam.cpp rename to src/MANYBODY/pair_cdeam.cpp diff --git a/src/USER-MISC/pair_cdeam.h b/src/MANYBODY/pair_cdeam.h similarity index 100% rename from src/USER-MISC/pair_cdeam.h rename to src/MANYBODY/pair_cdeam.h diff --git a/src/USER-MISC/Install.sh b/src/USER-MISC/Install.sh deleted file mode 100755 index 2d42125ec3..0000000000 --- a/src/USER-MISC/Install.sh +++ /dev/null @@ -1,40 +0,0 @@ -# Install/unInstall package files in LAMMPS -# mode = 0/1/2 for uninstall/install/update - -mode=$1 - -# enforce using portable C locale -LC_ALL=C -export LC_ALL - -# arg1 = file, arg2 = file it depends on - -action () { - if (test $mode = 0) then - rm -f ../$1 - elif (! cmp -s $1 ../$1) then - if (test -z "$2" || test -e ../$2) then - cp $1 .. - if (test $mode = 2) then - echo " updating src/$1" - fi - fi - elif (test ! -n "$2") then - if (test ! -e ../$2) then - rm -f ../$1 - fi - fi -} - -# all package files -# only a few files have dependencies - -for file in *.cpp *.h; do - if (test $file = "pair_cdeam.cpp") then - action pair_cdeam.cpp pair_eam_alloy.cpp - elif (test $file = "pair_cdeam.h") then - action pair_cdeam.h pair_eam_alloy.cpp - else - test -f ${file} && action $file - fi -done diff --git a/src/USER-MISC/README b/src/USER-MISC/README index 68a6252d8d..0f9e7bf383 100644 --- a/src/USER-MISC/README +++ b/src/USER-MISC/README @@ -65,7 +65,6 @@ pair_style buck/mdf, Paolo Raiteri, p.raiteri at curtin.edu.au, 2 Dec 15 pair_style coul/diel, Axel Kohlmeyer, akohlmey at gmail.com, 1 Dec 11 pair_style dipole/sf, Mario Orsi, orsimario at gmail.com, 8 Aug 11 pair_style edip, Luca Ferraro, luca.ferraro at caspur.it, 15 Sep 11 -pair_style eam/cd, Alexander Stukowski, stukowski at mm.tu-darmstadt.de, 7 Nov 09 pair_style extep, Jaap Kroes (Radboud U), jaapkroes at gmail dot com, 28 Nov 17 pair_style gauss/cut, Axel Kohlmeyer, akohlmey at gmail.com, 1 Dec 11 pair_style lennard/mdf, Paolo Raiteri, p.raiteri at curtin.edu.au, 2 Dec 15 From 24e293326dd290bd94a904d21c4db68ff4a3c2de Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 31 Jul 2018 09:36:35 +0200 Subject: [PATCH 376/675] Remove disabled line and add comment on package dependencies --- cmake/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 1e58a670aa..186639fc1e 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -175,8 +175,9 @@ macro(pkg_depends PKG1 PKG2) endif() endmacro() +# "hard" dependencies between packages resulting +# in an error instead of skipping over files pkg_depends(MPIIO MPI) -#pkg_depends(QEQ MANYBODY) pkg_depends(USER-ATC MANYBODY) pkg_depends(USER-LB MPI) pkg_depends(USER-MISC MANYBODY) From 50fe2097822785f596d98e2750a40e2224af0fae Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 31 Jul 2018 10:24:36 +0200 Subject: [PATCH 377/675] mention -*- cookie for switching emacs modes and clarify file pattern text --- tools/emacs/README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/emacs/README.md b/tools/emacs/README.md index ce502a27e3..75504a7000 100644 --- a/tools/emacs/README.md +++ b/tools/emacs/README.md @@ -39,8 +39,14 @@ would do the following (kanged [from here](http://ergoemacs.org/emacs/emacs_inst ### Autoloading \& Auto-recognition -For autoloading and auto-recognizing `in.*` and `*.lmp` files add the following -to `.emacs`: +To automatically turn on the LAMMPS mode for editing your input scripts, +use the following line as the **first** line of your script: +``` +# -*- lammps -*- +``` + +For automatically switching on the LAMMPS mode based on filename patterns, +e.g. for `in.*` and `*.lmp` files, add the following code to your `.emacs`: ``` emacs-lisp (autoload 'lammps-mode "lammps-mode.el" "LAMMPS mode." t) From 6dad2f59d8bc4ecc68604b712d0072c303e3f2e9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 31 Jul 2018 11:06:09 +0200 Subject: [PATCH 378/675] list @HaoZeke as (new) owner of the LAMMPS emacs mode list code --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 75b79443c3..7f32281192 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -44,6 +44,7 @@ src/USER-MISC/*_grem.* @dstelter92 # tools tools/msi2lmp/* @akohlmey +tools/emacs/* @HaoZeke # cmake cmake/* @junghans @rbberger From 67e70316deedfa95f21edbb9674bacca3dd7d3b0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 31 Jul 2018 16:58:44 +0200 Subject: [PATCH 379/675] rename pair_cdeam.* to pair_eam_cd.* --- src/MANYBODY/{pair_cdeam.cpp => pair_eam_cd.cpp} | 0 src/MANYBODY/{pair_cdeam.h => pair_eam_cd.h} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/MANYBODY/{pair_cdeam.cpp => pair_eam_cd.cpp} (100%) rename src/MANYBODY/{pair_cdeam.h => pair_eam_cd.h} (100%) diff --git a/src/MANYBODY/pair_cdeam.cpp b/src/MANYBODY/pair_eam_cd.cpp similarity index 100% rename from src/MANYBODY/pair_cdeam.cpp rename to src/MANYBODY/pair_eam_cd.cpp diff --git a/src/MANYBODY/pair_cdeam.h b/src/MANYBODY/pair_eam_cd.h similarity index 100% rename from src/MANYBODY/pair_cdeam.h rename to src/MANYBODY/pair_eam_cd.h From e9d40d3c6dc389c8fe3b144349fae04e12b0fb86 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 31 Jul 2018 17:16:18 +0200 Subject: [PATCH 380/675] rename class from PairCDEAM to PairEAMCD --- src/MANYBODY/pair_eam_cd.cpp | 22 +++++++++++----------- src/MANYBODY/pair_eam_cd.h | 18 +++++++++--------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/MANYBODY/pair_eam_cd.cpp b/src/MANYBODY/pair_eam_cd.cpp index 53d9036a61..c0e480488d 100644 --- a/src/MANYBODY/pair_eam_cd.cpp +++ b/src/MANYBODY/pair_eam_cd.cpp @@ -21,7 +21,7 @@ #include #include #include -#include "pair_cdeam.h" +#include "pair_eam_cd.h" #include "atom.h" #include "force.h" #include "comm.h" @@ -49,7 +49,7 @@ using namespace LAMMPS_NS; #define MAXLINE 1024 // This sets the maximum line length in EAM input files. -PairCDEAM::PairCDEAM(LAMMPS *lmp, int _cdeamVersion) : PairEAM(lmp), PairEAMAlloy(lmp), cdeamVersion(_cdeamVersion) +PairEAMCD::PairEAMCD(LAMMPS *lmp, int _cdeamVersion) : PairEAM(lmp), PairEAMAlloy(lmp), cdeamVersion(_cdeamVersion) { single_enable = 0; restartinfo = 0; @@ -72,14 +72,14 @@ PairCDEAM::PairCDEAM(LAMMPS *lmp, int _cdeamVersion) : PairEAM(lmp), PairEAMAllo } } -PairCDEAM::~PairCDEAM() +PairEAMCD::~PairEAMCD() { memory->destroy(rhoB); memory->destroy(D_values); if(hcoeff) delete[] hcoeff; } -void PairCDEAM::compute(int eflag, int vflag) +void PairEAMCD::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; @@ -415,7 +415,7 @@ void PairCDEAM::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ -void PairCDEAM::coeff(int narg, char **arg) +void PairEAMCD::coeff(int narg, char **arg) { PairEAMAlloy::coeff(narg, arg); @@ -452,7 +452,7 @@ void PairCDEAM::coeff(int narg, char **arg) /* ---------------------------------------------------------------------- Reads in the h(x) polynomial coefficients ------------------------------------------------------------------------- */ -void PairCDEAM::read_h_coeff(char *filename) +void PairEAMCD::read_h_coeff(char *filename) { if(comm->me == 0) { // Open potential file @@ -494,7 +494,7 @@ void PairCDEAM::read_h_coeff(char *filename) /* ---------------------------------------------------------------------- */ -int PairCDEAM::pack_forward_comm(int n, int *list, double *buf, +int PairEAMCD::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) { int i,j,m; @@ -534,7 +534,7 @@ int PairCDEAM::pack_forward_comm(int n, int *list, double *buf, /* ---------------------------------------------------------------------- */ -void PairCDEAM::unpack_forward_comm(int n, int first, double *buf) +void PairEAMCD::unpack_forward_comm(int n, int first, double *buf) { int i,m,last; @@ -567,7 +567,7 @@ void PairCDEAM::unpack_forward_comm(int n, int first, double *buf) } /* ---------------------------------------------------------------------- */ -int PairCDEAM::pack_reverse_comm(int n, int first, double *buf) +int PairEAMCD::pack_reverse_comm(int n, int first, double *buf) { int i,m,last; @@ -603,7 +603,7 @@ int PairCDEAM::pack_reverse_comm(int n, int first, double *buf) /* ---------------------------------------------------------------------- */ -void PairCDEAM::unpack_reverse_comm(int n, int *list, double *buf) +void PairEAMCD::unpack_reverse_comm(int n, int *list, double *buf) { int i,j,m; @@ -637,7 +637,7 @@ void PairCDEAM::unpack_reverse_comm(int n, int *list, double *buf) /* ---------------------------------------------------------------------- memory usage of local atom-based arrays ------------------------------------------------------------------------- */ -double PairCDEAM::memory_usage() +double PairEAMCD::memory_usage() { double bytes = 2 * nmax * sizeof(double); return PairEAMAlloy::memory_usage() + bytes; diff --git a/src/MANYBODY/pair_eam_cd.h b/src/MANYBODY/pair_eam_cd.h index 934b7601a4..15486aed6d 100644 --- a/src/MANYBODY/pair_eam_cd.h +++ b/src/MANYBODY/pair_eam_cd.h @@ -13,8 +13,8 @@ #ifdef PAIR_CLASS -PairStyle(eam/cd,PairCDEAM_OneSite) -PairStyle(eam/cd/old,PairCDEAM_TwoSite) +PairStyle(eam/cd,PairEAMCD_OneSite) +PairStyle(eam/cd/old,PairEAMCD_TwoSite) #else @@ -25,14 +25,14 @@ PairStyle(eam/cd/old,PairCDEAM_TwoSite) namespace LAMMPS_NS { -class PairCDEAM : public PairEAMAlloy +class PairEAMCD : public PairEAMAlloy { public: /// Constructor. - PairCDEAM(class LAMMPS*, int cdeamVersion); + PairEAMCD(class LAMMPS*, int cdeamVersion); /// Destructor. - virtual ~PairCDEAM(); + virtual ~PairEAMCD(); /// Calculates the energies and forces for all atoms in the system. virtual void compute(int, int); @@ -211,19 +211,19 @@ public: }; /// The one-site concentration formulation of CD-EAM. - class PairCDEAM_OneSite : public PairCDEAM + class PairEAMCD_OneSite : public PairEAMCD { public: /// Constructor. - PairCDEAM_OneSite(class LAMMPS* lmp) : PairEAM(lmp), PairCDEAM(lmp, 1) {} + PairEAMCD_OneSite(class LAMMPS* lmp) : PairEAM(lmp), PairEAMCD(lmp, 1) {} }; /// The two-site concentration formulation of CD-EAM. - class PairCDEAM_TwoSite : public PairCDEAM + class PairEAMCD_TwoSite : public PairEAMCD { public: /// Constructor. - PairCDEAM_TwoSite(class LAMMPS* lmp) : PairEAM(lmp), PairCDEAM(lmp, 2) {} + PairEAMCD_TwoSite(class LAMMPS* lmp) : PairEAM(lmp), PairEAMCD(lmp, 2) {} }; } From c6186bf00d5adcfd11d07c2393f306a1695d587e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 31 Jul 2018 17:36:49 +0200 Subject: [PATCH 381/675] whitespace and formatting update --- src/MANYBODY/pair_eam_cd.cpp | 1081 ++++++++++++++++++---------------- 1 file changed, 557 insertions(+), 524 deletions(-) diff --git a/src/MANYBODY/pair_eam_cd.cpp b/src/MANYBODY/pair_eam_cd.cpp index c0e480488d..66ebad6244 100644 --- a/src/MANYBODY/pair_eam_cd.cpp +++ b/src/MANYBODY/pair_eam_cd.cpp @@ -32,463 +32,507 @@ using namespace LAMMPS_NS; -// This is for debugging purposes. The ASSERT() macro is used in the code to check -// if everything runs as expected. Change this to #if 0 if you don't need the checking. -#if 0 - #define ASSERT(cond) ((!(cond)) ? my_failure(error,__FILE__,__LINE__) : my_noop()) - - inline void my_noop() {} - inline void my_failure(Error* error, const char* file, int line) { - char str[1024]; - sprintf(str,"Assertion failure: File %s, line %i", file, line); - error->one(FLERR,str); - } -#else - #define ASSERT(cond) -#endif - +#define ASSERT(cond) #define MAXLINE 1024 // This sets the maximum line length in EAM input files. -PairEAMCD::PairEAMCD(LAMMPS *lmp, int _cdeamVersion) : PairEAM(lmp), PairEAMAlloy(lmp), cdeamVersion(_cdeamVersion) +PairEAMCD::PairEAMCD(LAMMPS *lmp, int _cdeamVersion) + : PairEAM(lmp), PairEAMAlloy(lmp), cdeamVersion(_cdeamVersion) { - single_enable = 0; - restartinfo = 0; + single_enable = 0; + restartinfo = 0; - rhoB = NULL; - D_values = NULL; - hcoeff = NULL; + rhoB = NULL; + D_values = NULL; + hcoeff = NULL; - // Set communication buffer sizes needed by this pair style. - if(cdeamVersion == 1) { - comm_forward = 4; - comm_reverse = 3; - } - else if(cdeamVersion == 2) { - comm_forward = 3; - comm_reverse = 2; - } - else { - error->all(FLERR,"Invalid CD-EAM potential version."); - } + // Set communication buffer sizes needed by this pair style. + + if (cdeamVersion == 1) { + comm_forward = 4; + comm_reverse = 3; + } else if (cdeamVersion == 2) { + comm_forward = 3; + comm_reverse = 2; + } else { + error->all(FLERR,"Invalid eam/cd potential version."); + } } PairEAMCD::~PairEAMCD() { - memory->destroy(rhoB); - memory->destroy(D_values); - if(hcoeff) delete[] hcoeff; + memory->destroy(rhoB); + memory->destroy(D_values); + if (hcoeff) delete[] hcoeff; } void PairEAMCD::compute(int eflag, int vflag) { - int i,j,ii,jj,inum,jnum,itype,jtype; - double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; - double rsq,rhoip,rhojp,recip,phi; - int *ilist,*jlist,*numneigh,**firstneigh; + int i,j,ii,jj,inum,jnum,itype,jtype; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; + double rsq,rhoip,rhojp,recip,phi; + int *ilist,*jlist,*numneigh,**firstneigh; - evdwl = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = eflag_global = eflag_atom = 0; + evdwl = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = eflag_global = eflag_atom = 0; - // Grow per-atom arrays if necessary - if(atom->nmax > nmax) { - memory->destroy(rho); - memory->destroy(fp); - memory->destroy(rhoB); - memory->destroy(D_values); - nmax = atom->nmax; - memory->create(rho,nmax,"pair:rho"); - memory->create(rhoB,nmax,"pair:rhoB"); - memory->create(fp,nmax,"pair:fp"); - memory->create(D_values,nmax,"pair:D_values"); + // Grow per-atom arrays if necessary + + if (atom->nmax > nmax) { + memory->destroy(rho); + memory->destroy(fp); + memory->destroy(rhoB); + memory->destroy(D_values); + nmax = atom->nmax; + memory->create(rho,nmax,"pair:rho"); + memory->create(rhoB,nmax,"pair:rhoB"); + memory->create(fp,nmax,"pair:fp"); + memory->create(D_values,nmax,"pair:D_values"); + } + + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // Zero out per-atom arrays. + + int m = nlocal + atom->nghost; + for (i = 0; i < m; i++) { + rho[i] = 0.0; + rhoB[i] = 0.0; + D_values[i] = 0.0; + } + + // Stage I + + // Compute rho and rhoB at each local atom site. + + // Additionally calculate the D_i values here if we are using the + // one-site formulation. For the two-site formulation we have to + // calculate the D values in an extra loop (Stage II). + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + 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]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq < cutforcesq) { + jtype = type[j]; + double r = sqrt(rsq); + const EAMTableIndex index = radiusToTableIndex(r); + double localrho = RhoOfR(index, jtype, itype); + rho[i] += localrho; + if (jtype == speciesB) rhoB[i] += localrho; + if (newton_pair || j < nlocal) { + localrho = RhoOfR(index, itype, jtype); + rho[j] += localrho; + if (itype == speciesB) rhoB[j] += localrho; } - double **x = atom->x; - double **f = atom->f; - int *type = atom->type; - int nlocal = atom->nlocal; - int newton_pair = force->newton_pair; + if (cdeamVersion == 1 && itype != jtype) { - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; + // Note: if the i-j interaction is not concentration dependent (because either + // i or j are not species A or B) then its contribution to D_i and D_j should + // be ignored. + // This if-clause is only required for a ternary. - // Zero out per-atom arrays. - int m = nlocal + atom->nghost; - for(i = 0; i < m; i++) { - rho[i] = 0.0; - rhoB[i] = 0.0; - D_values[i] = 0.0; + if ((itype == speciesA && jtype == speciesB) + || (jtype == speciesA && itype == speciesB)) { + double Phi_AB = PhiOfR(index, itype, jtype, 1.0 / r); + D_values[i] += Phi_AB; + if (newton_pair || j < nlocal) + D_values[j] += Phi_AB; + } + } + } + } + } + + // Communicate and sum densities. + + if (newton_pair) { + communicationStage = 1; + comm->reverse_comm_pair(this); + } + + // fp = derivative of embedding energy at each atom + // phi = embedding energy at each atom + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + EAMTableIndex index = rhoToTableIndex(rho[i]); + fp[i] = FPrimeOfRho(index, type[i]); + if (eflag) { + phi = FofRho(index, type[i]); + if (eflag_global) eng_vdwl += phi; + if (eflag_atom) eatom[i] += phi; + } + } + + // Communicate derivative of embedding function and densities + // and D_values (this for one-site formulation only). + + communicationStage = 2; + comm->forward_comm_pair(this); + + // The electron densities may not drop to zero because then the + // concentration would no longer be defined. But the concentration + // is not needed anyway if there is no interaction with another atom, + // which is the case if the electron density is exactly zero. + // That's why the following lines have been commented out. + // + //for (i = 0; i < nlocal + atom->nghost; i++) { + // if (rho[i] == 0 && (type[i] == speciesA || type[i] == speciesB)) + // error->one(FLERR,"CD-EAM potential routine: Detected atom with zero electron density."); + //} + + // Stage II + // This is only required for the original two-site formulation of the CD-EAM potential. + + if (cdeamVersion == 2) { + + // Compute intermediate value D_i for each atom. + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + // This code line is required for ternary alloys. + + if (itype != speciesA && itype != speciesB) continue; + + double x_i = rhoB[i] / rho[i]; // Concentration at atom i. + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + jtype = type[j]; + if (itype == jtype) continue; + + // This code line is required for ternary alloys. + + if (jtype != speciesA && jtype != speciesB) continue; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq < cutforcesq) { + double r = sqrt(rsq); + const EAMTableIndex index = radiusToTableIndex(r); + + // The concentration independent part of the cross pair potential. + + double Phi_AB = PhiOfR(index, itype, jtype, 1.0 / r); + + // Average concentration of two sites + + double x_ij = 0.5 * (x_i + rhoB[j]/rho[j]); + + // Calculate derivative of h(x_ij) polynomial function. + + double h_prime = evalHprime(x_ij); + + D_values[i] += h_prime * Phi_AB / (2.0 * rho[i] * rho[i]); + if (newton_pair || j < nlocal) + D_values[j] += h_prime * Phi_AB / (2.0 * rho[j] * rho[j]); + } + } + } + + // Communicate and sum D values. + + if (newton_pair) { + communicationStage = 3; + comm->reverse_comm_pair(this); + } + communicationStage = 4; + comm->forward_comm_pair(this); + } + + // Stage III + + // Compute force acting on each atom. + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + // Concentration at site i + // The value -1 indicates: no concentration dependence for all interactions of atom i. + // It will be replaced by the concentration at site i if atom i is either A or B. + + double x_i = -1.0; + double D_i, h_prime_i; + + // This if-clause is only required for ternary alloys. + + if ((itype == speciesA || itype == speciesB) && rho[i] != 0.0) { + + // Compute local concentration at site i. + + x_i = rhoB[i]/rho[i]; + ASSERT(x_i >= 0 && x_i<=1.0); + + if (cdeamVersion == 1) { + + // Calculate derivative of h(x_i) polynomial function. + + h_prime_i = evalHprime(x_i); + D_i = D_values[i] * h_prime_i / (2.0 * rho[i] * rho[i]); + } else if (cdeamVersion == 2) { + D_i = D_values[i]; + } else { + ASSERT(false); + } + } + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq < cutforcesq) { + jtype = type[j]; + double r = sqrt(rsq); + const EAMTableIndex index = radiusToTableIndex(r); + + // rhoip = derivative of (density at atom j due to atom i) + // rhojp = derivative of (density at atom i due to atom j) + // psip needs both fp[i] and fp[j] terms since r_ij appears in two + // terms of embed eng: Fi(sum rho_ij) and Fj(sum rho_ji) + // hence embed' = Fi(sum rho_ij) rhojp + Fj(sum rho_ji) rhoip + + rhoip = RhoPrimeOfR(index, itype, jtype); + rhojp = RhoPrimeOfR(index, jtype, itype); + fpair = fp[i]*rhojp + fp[j]*rhoip; + recip = 1.0/r; + + // The value -1 indicates: no concentration dependence for this + // i-j pair because atom j is not of species A nor B. + + double x_j = -1; + + // This code line is required for ternary alloy. + + if (jtype == speciesA || jtype == speciesB) { + ASSERT(rho[i] != 0.0); + ASSERT(rho[j] != 0.0); + + // Compute local concentration at site j. + + x_j = rhoB[j]/rho[j]; + ASSERT(x_j >= 0 && x_j<=1.0); + + double D_j=0.0; + if (cdeamVersion == 1) { + + // Calculate derivative of h(x_j) polynomial function. + + double h_prime_j = evalHprime(x_j); + D_j = D_values[j] * h_prime_j / (2.0 * rho[j] * rho[j]); + } else if (cdeamVersion == 2) { + D_j = D_values[j]; + } else { + ASSERT(false); + } + double t2 = -rhoB[j]; + if (itype == speciesB) t2 += rho[j]; + fpair += D_j * rhoip * t2; } - // Stage I + // This if-clause is only required for a ternary alloy. + // Actually we don't need it at all because D_i should be zero + // anyway if atom i has no concentration dependent interactions + // (because it is not species A or B). - // Compute rho and rhoB at each local atom site. - // Additionally calculate the D_i values here if we are using the one-site formulation. - // For the two-site formulation we have to calculate the D values in an extra loop (Stage II). - for(ii = 0; ii < inum; ii++) { - i = ilist[ii]; - 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]; - j &= NEIGHMASK; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - - if(rsq < cutforcesq) { - jtype = type[j]; - double r = sqrt(rsq); - const EAMTableIndex index = radiusToTableIndex(r); - double localrho = RhoOfR(index, jtype, itype); - rho[i] += localrho; - if(jtype == speciesB) rhoB[i] += localrho; - if(newton_pair || j < nlocal) { - localrho = RhoOfR(index, itype, jtype); - rho[j] += localrho; - if(itype == speciesB) rhoB[j] += localrho; - } - - if(cdeamVersion == 1 && itype != jtype) { - // Note: if the i-j interaction is not concentration dependent (because either - // i or j are not species A or B) then its contribution to D_i and D_j should - // be ignored. - // This if-clause is only required for a ternary. - if((itype == speciesA && jtype == speciesB) || (jtype == speciesA && itype == speciesB)) { - double Phi_AB = PhiOfR(index, itype, jtype, 1.0 / r); - D_values[i] += Phi_AB; - if(newton_pair || j < nlocal) - D_values[j] += Phi_AB; - } - } - } - } + if (x_i != -1.0) { + double t1 = -rhoB[i]; + if (jtype == speciesB) t1 += rho[i]; + fpair += D_i * rhojp * t1; } - // Communicate and sum densities. - if(newton_pair) { - communicationStage = 1; - comm->reverse_comm_pair(this); + double phip; + double phi = PhiOfR(index, itype, jtype, recip, phip); + if (itype == jtype || x_i == -1.0 || x_j == -1.0) { + + // Case of no concentration dependence. + + fpair += phip; + } else { + + // We have a concentration dependence for the i-j interaction. + + double h=0.0; + if (cdeamVersion == 1) { + + // Calculate h(x_i) polynomial function. + + double h_i = evalH(x_i); + + // Calculate h(x_j) polynomial function. + + double h_j = evalH(x_j); + h = 0.5 * (h_i + h_j); + } else if (cdeamVersion == 2) { + + // Average concentration. + + double x_ij = 0.5 * (x_i + x_j); + + // Calculate h(x_ij) polynomial function. + + h = evalH(x_ij); + } else { + ASSERT(false); + } + fpair += h * phip; + phi *= h; } - // fp = derivative of embedding energy at each atom - // phi = embedding energy at each atom - for(ii = 0; ii < inum; ii++) { - i = ilist[ii]; - EAMTableIndex index = rhoToTableIndex(rho[i]); - fp[i] = FPrimeOfRho(index, type[i]); - if(eflag) { - phi = FofRho(index, type[i]); - if (eflag_global) eng_vdwl += phi; - if (eflag_atom) eatom[i] += phi; - } + // Divide by r_ij and negate to get forces from gradient. + + fpair /= -r; + + 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; } - // Communicate derivative of embedding function and densities - // and D_values (this for one-site formulation only). - communicationStage = 2; - comm->forward_comm_pair(this); + if (eflag) evdwl = phi; + if (evflag) ev_tally(i,j,nlocal,newton_pair,evdwl,0.0,fpair,delx,dely,delz); + } + } + } - // The electron densities may not drop to zero because then the concentration would no longer be defined. - // But the concentration is not needed anyway if there is no interaction with another atom, which is the case - // if the electron density is exactly zero. That's why the following lines have been commented out. - // - //for(i = 0; i < nlocal + atom->nghost; i++) { - // if(rho[i] == 0 && (type[i] == speciesA || type[i] == speciesB)) - // error->one(FLERR,"CD-EAM potential routine: Detected atom with zero electron density."); - //} - - // Stage II - // This is only required for the original two-site formulation of the CD-EAM potential. - - if(cdeamVersion == 2) { - // Compute intermediate value D_i for each atom. - for(ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = type[i]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - // This code line is required for ternary alloys. - if(itype != speciesA && itype != speciesB) continue; - - double x_i = rhoB[i] / rho[i]; // Concentration at atom i. - - for(jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - jtype = type[j]; - if(itype == jtype) continue; - - // This code line is required for ternary alloys. - if(jtype != speciesA && jtype != speciesB) continue; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - - if(rsq < cutforcesq) { - double r = sqrt(rsq); - const EAMTableIndex index = radiusToTableIndex(r); - - // The concentration independent part of the cross pair potential. - double Phi_AB = PhiOfR(index, itype, jtype, 1.0 / r); - - // Average concentration of two sites - double x_ij = 0.5 * (x_i + rhoB[j]/rho[j]); - - // Calculate derivative of h(x_ij) polynomial function. - double h_prime = evalHprime(x_ij); - - D_values[i] += h_prime * Phi_AB / (2.0 * rho[i] * rho[i]); - if(newton_pair || j < nlocal) - D_values[j] += h_prime * Phi_AB / (2.0 * rho[j] * rho[j]); - } - } - } - - // Communicate and sum D values. - if(newton_pair) { - communicationStage = 3; - comm->reverse_comm_pair(this); - } - communicationStage = 4; - comm->forward_comm_pair(this); - } - - // Stage III - - // Compute force acting on each atom. - for(ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = type[i]; - - jlist = firstneigh[i]; - jnum = numneigh[i]; - - // Concentration at site i - double x_i = -1.0; // The value -1 indicates: no concentration dependence for all interactions of atom i. - // It will be replaced by the concentration at site i if atom i is either A or B. - - double D_i, h_prime_i; - - // This if-clause is only required for ternary alloys. - if((itype == speciesA || itype == speciesB) && rho[i] != 0.0) { - - // Compute local concentration at site i. - x_i = rhoB[i]/rho[i]; - ASSERT(x_i >= 0 && x_i<=1.0); - - if(cdeamVersion == 1) { - // Calculate derivative of h(x_i) polynomial function. - h_prime_i = evalHprime(x_i); - D_i = D_values[i] * h_prime_i / (2.0 * rho[i] * rho[i]); - } else if(cdeamVersion == 2) { - D_i = D_values[i]; - } else { - ASSERT(false); - } - } - - for(jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - - if(rsq < cutforcesq) { - jtype = type[j]; - double r = sqrt(rsq); - const EAMTableIndex index = radiusToTableIndex(r); - - // rhoip = derivative of (density at atom j due to atom i) - // rhojp = derivative of (density at atom i due to atom j) - // psip needs both fp[i] and fp[j] terms since r_ij appears in two - // terms of embed eng: Fi(sum rho_ij) and Fj(sum rho_ji) - // hence embed' = Fi(sum rho_ij) rhojp + Fj(sum rho_ji) rhoip - rhoip = RhoPrimeOfR(index, itype, jtype); - rhojp = RhoPrimeOfR(index, jtype, itype); - fpair = fp[i]*rhojp + fp[j]*rhoip; - recip = 1.0/r; - - double x_j = -1; // The value -1 indicates: no concentration dependence for this i-j pair - // because atom j is not of species A nor B. - - // This code line is required for ternary alloy. - if(jtype == speciesA || jtype == speciesB) { - ASSERT(rho[i] != 0.0); - ASSERT(rho[j] != 0.0); - - // Compute local concentration at site j. - x_j = rhoB[j]/rho[j]; - ASSERT(x_j >= 0 && x_j<=1.0); - - double D_j=0.0; - if(cdeamVersion == 1) { - // Calculate derivative of h(x_j) polynomial function. - double h_prime_j = evalHprime(x_j); - D_j = D_values[j] * h_prime_j / (2.0 * rho[j] * rho[j]); - } else if(cdeamVersion == 2) { - D_j = D_values[j]; - } else { - ASSERT(false); - } - double t2 = -rhoB[j]; - if(itype == speciesB) t2 += rho[j]; - fpair += D_j * rhoip * t2; - } - - // This if-clause is only required for a ternary alloy. - // Actually we don't need it at all because D_i should be zero anyway if - // atom i has no concentration dependent interactions (because it is not species A or B). - if(x_i != -1.0) { - double t1 = -rhoB[i]; - if(jtype == speciesB) t1 += rho[i]; - fpair += D_i * rhojp * t1; - } - - double phip; - double phi = PhiOfR(index, itype, jtype, recip, phip); - if(itype == jtype || x_i == -1.0 || x_j == -1.0) { - // Case of no concentration dependence. - fpair += phip; - } else { - // We have a concentration dependence for the i-j interaction. - double h=0.0; - if(cdeamVersion == 1) { - // Calculate h(x_i) polynomial function. - double h_i = evalH(x_i); - // Calculate h(x_j) polynomial function. - double h_j = evalH(x_j); - h = 0.5 * (h_i + h_j); - } else if(cdeamVersion == 2) { - // Average concentration. - double x_ij = 0.5 * (x_i + x_j); - // Calculate h(x_ij) polynomial function. - h = evalH(x_ij); - } else { - ASSERT(false); - } - fpair += h * phip; - phi *= h; - } - - // Divide by r_ij and negate to get forces from gradient. - fpair /= -r; - - 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(eflag) evdwl = phi; - if(evflag) ev_tally(i,j,nlocal,newton_pair,evdwl,0.0,fpair,delx,dely,delz); - } - } - } - - if(vflag_fdotr) virial_fdotr_compute(); + if (vflag_fdotr) virial_fdotr_compute(); } /* ---------------------------------------------------------------------- */ void PairEAMCD::coeff(int narg, char **arg) { - PairEAMAlloy::coeff(narg, arg); + PairEAMAlloy::coeff(narg, arg); - // Make sure the EAM file is a CD-EAM binary alloy. - if(setfl->nelements < 2) - error->all(FLERR,"The EAM file must contain at least 2 elements to be used with the eam/cd pair style."); + // Make sure the EAM file is a CD-EAM binary alloy. - // Read in the coefficients of the h polynomial from the end of the EAM file. - read_h_coeff(arg[2]); + if (setfl->nelements < 2) + error->all(FLERR,"The EAM file must contain at least 2 elements to be used with the eam/cd pair style."); - // Determine which atom type is the A species and which is the B species in the alloy. - // By default take the first element (index 0) in the EAM file as the A species - // and the second element (index 1) in the EAM file as the B species. - speciesA = -1; - speciesB = -1; - for(int i = 1; i <= atom->ntypes; i++) { - if(map[i] == 0) { - if(speciesA >= 0) - error->all(FLERR,"The first element from the EAM file may only be mapped to a single atom type."); - speciesA = i; - } - if(map[i] == 1) { - if(speciesB >= 0) - error->all(FLERR,"The second element from the EAM file may only be mapped to a single atom type."); - speciesB = i; - } - } - if(speciesA < 0) - error->all(FLERR,"The first element from the EAM file must be mapped to exactly one atom type."); - if(speciesB < 0) - error->all(FLERR,"The second element from the EAM file must be mapped to exactly one atom type."); + // Read in the coefficients of the h polynomial from the end of the EAM file. + + read_h_coeff(arg[2]); + + // Determine which atom type is the A species and which is the B + // species in the alloy. By default take the first element (index 0) + // in the EAM file as the A species and the second element (index 1) + // in the EAM file as the B species. + + speciesA = -1; + speciesB = -1; + for (int i = 1; i <= atom->ntypes; i++) { + if (map[i] == 0) { + if (speciesA >= 0) + error->all(FLERR,"The first element from the EAM file may only be mapped to a single atom type."); + speciesA = i; + } + if (map[i] == 1) { + if (speciesB >= 0) + error->all(FLERR,"The second element from the EAM file may only be mapped to a single atom type."); + speciesB = i; + } + } + if (speciesA < 0) + error->all(FLERR,"The first element from the EAM file must be mapped to exactly one atom type."); + if (speciesB < 0) + error->all(FLERR,"The second element from the EAM file must be mapped to exactly one atom type."); } /* ---------------------------------------------------------------------- Reads in the h(x) polynomial coefficients ------------------------------------------------------------------------- */ + void PairEAMCD::read_h_coeff(char *filename) { - if(comm->me == 0) { - // Open potential file - FILE *fptr; - char line[MAXLINE]; - char nextline[MAXLINE]; - fptr = force->open_potential(filename); - if (fptr == NULL) { - char str[128]; - sprintf(str,"Cannot open EAM potential file %s", filename); - error->one(FLERR,str); - } + if (comm->me == 0) { - // h coefficients are stored at the end of the file. - // Skip to last line of file. - while(fgets(nextline, MAXLINE, fptr) != NULL) { - strcpy(line, nextline); - } - char* ptr = strtok(line, " \t\n\r\f"); - int degree = atoi(ptr); - nhcoeff = degree+1; - hcoeff = new double[nhcoeff]; - int i = 0; - while((ptr = strtok(NULL," \t\n\r\f")) != NULL && i < nhcoeff) { - hcoeff[i++] = atof(ptr); - } - if(i != nhcoeff || nhcoeff < 1) - error->one(FLERR,"Failed to read h(x) function coefficients from EAM file."); + // Open potential file - // Close the potential file. - fclose(fptr); - } + FILE *fptr; + char line[MAXLINE]; + char nextline[MAXLINE]; + fptr = force->open_potential(filename); + if (fptr == NULL) { + char str[128]; + sprintf(str,"Cannot open EAM potential file %s", filename); + error->one(FLERR,str); + } - MPI_Bcast(&nhcoeff, 1, MPI_INT, 0, world); - if(comm->me != 0) hcoeff = new double[nhcoeff]; - MPI_Bcast(hcoeff, nhcoeff, MPI_DOUBLE, 0, world); + // h coefficients are stored at the end of the file. + // Skip to last line of file. + + while(fgets(nextline, MAXLINE, fptr) != NULL) { + strcpy(line, nextline); + } + char* ptr = strtok(line, " \t\n\r\f"); + int degree = atoi(ptr); + nhcoeff = degree+1; + hcoeff = new double[nhcoeff]; + int i = 0; + while((ptr = strtok(NULL," \t\n\r\f")) != NULL && i < nhcoeff) { + hcoeff[i++] = atof(ptr); + } + if (i != nhcoeff || nhcoeff < 1) + error->one(FLERR,"Failed to read h(x) function coefficients from EAM file."); + + // Close the potential file. + + fclose(fptr); + } + + MPI_Bcast(&nhcoeff, 1, MPI_INT, 0, world); + if (comm->me != 0) hcoeff = new double[nhcoeff]; + MPI_Bcast(hcoeff, nhcoeff, MPI_DOUBLE, 0, world); } @@ -497,141 +541,130 @@ void PairEAMCD::read_h_coeff(char *filename) int PairEAMCD::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) { - int i,j,m; + int i,j,m; - m = 0; - if(communicationStage == 2) { - if(cdeamVersion == 1) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = fp[j]; - buf[m++] = rho[j]; - buf[m++] = rhoB[j]; - buf[m++] = D_values[j]; - } - return m; - } - else if(cdeamVersion == 2) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = fp[j]; - buf[m++] = rho[j]; - buf[m++] = rhoB[j]; - } - return m; - } - else { ASSERT(false); return 0; } - } - else if(communicationStage == 4) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = D_values[j]; - } - return m; - } - else return 0; + m = 0; + if (communicationStage == 2) { + if (cdeamVersion == 1) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = fp[j]; + buf[m++] = rho[j]; + buf[m++] = rhoB[j]; + buf[m++] = D_values[j]; + } + return m; + } else if (cdeamVersion == 2) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = fp[j]; + buf[m++] = rho[j]; + buf[m++] = rhoB[j]; + } + return m; + } else { ASSERT(false); return 0; } + } else if (communicationStage == 4) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = D_values[j]; + } + return m; + } else return 0; } /* ---------------------------------------------------------------------- */ void PairEAMCD::unpack_forward_comm(int n, int first, double *buf) { - int i,m,last; + int i,m,last; - m = 0; - last = first + n; - if(communicationStage == 2) { - if(cdeamVersion == 1) { - for(i = first; i < last; i++) { - fp[i] = buf[m++]; - rho[i] = buf[m++]; - rhoB[i] = buf[m++]; - D_values[i] = buf[m++]; - } - } - else if(cdeamVersion == 2) { - for(i = first; i < last; i++) { - fp[i] = buf[m++]; - rho[i] = buf[m++]; - rhoB[i] = buf[m++]; - } - } else { - ASSERT(false); - } - } - else if(communicationStage == 4) { - for(i = first; i < last; i++) { - D_values[i] = buf[m++]; - } - } + m = 0; + last = first + n; + if (communicationStage == 2) { + if (cdeamVersion == 1) { + for (i = first; i < last; i++) { + fp[i] = buf[m++]; + rho[i] = buf[m++]; + rhoB[i] = buf[m++]; + D_values[i] = buf[m++]; + } + } else if (cdeamVersion == 2) { + for (i = first; i < last; i++) { + fp[i] = buf[m++]; + rho[i] = buf[m++]; + rhoB[i] = buf[m++]; + } + } else { + ASSERT(false); + } + } else if (communicationStage == 4) { + for (i = first; i < last; i++) { + D_values[i] = buf[m++]; + } + } } /* ---------------------------------------------------------------------- */ int PairEAMCD::pack_reverse_comm(int n, int first, double *buf) { - int i,m,last; + int i,m,last; - m = 0; - last = first + n; + m = 0; + last = first + n; - if(communicationStage == 1) { - if(cdeamVersion == 1) { - for(i = first; i < last; i++) { - buf[m++] = rho[i]; - buf[m++] = rhoB[i]; - buf[m++] = D_values[i]; - } - return m; - } - else if(cdeamVersion == 2) { - for(i = first; i < last; i++) { - buf[m++] = rho[i]; - buf[m++] = rhoB[i]; - } - return m; - } - else { ASSERT(false); return 0; } - } - else if(communicationStage == 3) { - for(i = first; i < last; i++) { - buf[m++] = D_values[i]; - } - return m; - } - else return 0; + if (communicationStage == 1) { + if (cdeamVersion == 1) { + for (i = first; i < last; i++) { + buf[m++] = rho[i]; + buf[m++] = rhoB[i]; + buf[m++] = D_values[i]; + } + return m; + } else if (cdeamVersion == 2) { + for (i = first; i < last; i++) { + buf[m++] = rho[i]; + buf[m++] = rhoB[i]; + } + return m; + } else { ASSERT(false); return 0; } + } else if (communicationStage == 3) { + for (i = first; i < last; i++) { + buf[m++] = D_values[i]; + } + return m; + } else return 0; } /* ---------------------------------------------------------------------- */ void PairEAMCD::unpack_reverse_comm(int n, int *list, double *buf) { - int i,j,m; + int i,j,m; - m = 0; - if(communicationStage == 1) { - if(cdeamVersion == 1) { - for(i = 0; i < n; i++) { - j = list[i]; - rho[j] += buf[m++]; - rhoB[j] += buf[m++]; - D_values[j] += buf[m++]; - } - } else if(cdeamVersion == 2) { - for(i = 0; i < n; i++) { - j = list[i]; - rho[j] += buf[m++]; - rhoB[j] += buf[m++]; - } - } else { - ASSERT(false); - } - } - else if(communicationStage == 3) { - for(i = 0; i < n; i++) { - j = list[i]; - D_values[j] += buf[m++]; - } - } + m = 0; + if (communicationStage == 1) { + if (cdeamVersion == 1) { + for (i = 0; i < n; i++) { + j = list[i]; + rho[j] += buf[m++]; + rhoB[j] += buf[m++]; + D_values[j] += buf[m++]; + } + } else if (cdeamVersion == 2) { + for (i = 0; i < n; i++) { + j = list[i]; + rho[j] += buf[m++]; + rhoB[j] += buf[m++]; + } + } else { + ASSERT(false); + } + } else if (communicationStage == 3) { + for (i = 0; i < n; i++) { + j = list[i]; + D_values[j] += buf[m++]; + } + } } /* ---------------------------------------------------------------------- @@ -639,6 +672,6 @@ void PairEAMCD::unpack_reverse_comm(int n, int *list, double *buf) ------------------------------------------------------------------------- */ double PairEAMCD::memory_usage() { - double bytes = 2 * nmax * sizeof(double); - return PairEAMAlloy::memory_usage() + bytes; + double bytes = 2 * nmax * sizeof(double); + return PairEAMAlloy::memory_usage() + bytes; } From ae04fd0beaba1c3561cd17354d2c1fa05bde79ae Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 31 Jul 2018 09:48:59 -0600 Subject: [PATCH 382/675] fixed error: if no particles are on a process, the arrays for efield and epot were not allocated, leading to segfaults; shifted the parameter output to after the tuning step, so if the values are changed, the changed values are displayed --- src/USER-SCAFACOS/scafacos.cpp | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index e7dbcb4523..21e46f76ad 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -121,7 +121,6 @@ void Scafacos::init() result = fcs_set_tolerance(fcs,tolerance_type,tolerance); check_result(result); } - if (me == 0) fcs_print_parameters(fcs); double **x = atom->x; double *q = atom->q; @@ -130,11 +129,15 @@ void Scafacos::init() if (strcmp(method,"fmm") == 0) { if (fmm_tuning_flag == 1) - fcs_fmm_set_internal_tuning(fcs,fmm_tuning_flag); + fcs_fmm_set_internal_tuning(fcs,FCS_FMM_INHOMOGENOUS_SYSTEM); + else + fcs_fmm_set_internal_tuning(fcs,FCS_FMM_HOMOGENOUS_SYSTEM); } result = fcs_tune(fcs,nlocal,&x[0][0],q); check_result(result); + // more useful here, since the parameters should be tuned now + if (me == 0) fcs_print_parameters(fcs); } initialized = 1; } @@ -170,13 +173,20 @@ void Scafacos::compute(int eflag, int vflag) // grow epot & efield if necessary + if (nlocal == 0 && maxatom == 0) { + memory->destroy(epot); + memory->destroy(efield); + maxatom = 1; + memory->create(epot,maxatom,"scafacos:epot"); + memory->create(efield,maxatom,3,"scafacos:efield"); + } + if (nlocal > maxatom) { memory->destroy(epot); memory->destroy(efield); maxatom = atom->nmax; memory->create(epot,maxatom,"scafacos:epot"); memory->create(efield,maxatom,3,"scafacos:efield"); - } if (vflag_global) @@ -184,6 +194,12 @@ void Scafacos::compute(int eflag, int vflag) fcs_set_compute_virial(fcs,1); } + if (strcmp(method,"p3m")==0) + { + result = fcs_tune(fcs,nlocal,&x[0][0],q); + check_result(result); + } + result = fcs_run(fcs,nlocal,&x[0][0],q,&efield[0][0],epot); check_result(result); @@ -252,8 +268,8 @@ int Scafacos::modify_param(int narg, char **arg) // 1 -> inhomogenous system (more internal tuning is provided (sequential!)) if (strcmp(arg[1],"fmm_tuning") == 0) { - if (screen && me == 0) fprintf(screen,"ScaFaCoS setting fmm inhomogen tuning ...%d\n", narg); - if (logfile && me == 0) fprintf(logfile,"ScaFaCoS setting fmm inhomogen tuning ...%d\n", narg); + if (screen && me == 0) fprintf(screen,"ScaFaCoS setting fmm inhomogen tuning ...\n"); + if (logfile && me == 0) fprintf(logfile,"ScaFaCoS setting fmm inhomogen tuning ...\n"); if (narg < 3) error->all(FLERR,"Illegal kspace_modify command (fmm_tuning)"); fmm_tuning_flag = atoi(arg[2]); return 3; From 77e5445bfe967dac65406aa62ac0a70ba6a4d35c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 31 Jul 2018 14:16:54 -0400 Subject: [PATCH 383/675] Need to purge old pair_cdeam.* files --- src/Purge.list | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Purge.list b/src/Purge.list index cd4eb17dab..cb98636b1c 100644 --- a/src/Purge.list +++ b/src/Purge.list @@ -24,6 +24,9 @@ style_nstencil.h style_ntopo.h # other auto-generated files lmpinstalledpkgs.h +# renamed on 31 July 2018 +pair_cdeam.h +pair_cdeam.cpp # renamed on 20 July 2018 pair_body.h pair_body.cpp From ac0ab4ba346e951e17cb7ad85bd5cd8a5867e666 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 31 Jul 2018 13:31:50 -0600 Subject: [PATCH 384/675] changed CMake file to require pkg_config for ScaFaCoS and removed Fortran/C dependencies --- cmake/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index afb93b9d1b..bfaf9243b1 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -185,11 +185,11 @@ pkg_depends(CORESHELL KSPACE) ###################################################### # packages with special compiler needs or external libs ###################################################### -if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE OR PKG_USER-SCAFACOS) +if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE) enable_language(Fortran) endif() -if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM OR PKG_USER-SCAFACOS) +if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM) enable_language(C) endif() @@ -349,7 +349,7 @@ if(PKG_LATTE) endif() if(PKG_USER-SCAFACOS) - FIND_PACKAGE(PkgConfig) + FIND_PACKAGE(PkgConfig REQUIRED) PKG_CHECK_MODULES(SCAFACOS scafacos) include_directories(${SCAFACOS_INCLUDE_DIRS}) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_LDFLAGS}) From a8f0200fe9636afeccf464f08b0bf242bf2992fe Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 31 Jul 2018 13:33:10 -0600 Subject: [PATCH 385/675] Install.py works on dummy tar-ball --- lib/scafacos/Install.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/scafacos/Install.py b/lib/scafacos/Install.py index 1b39335511..c478589144 100644 --- a/lib/scafacos/Install.py +++ b/lib/scafacos/Install.py @@ -29,8 +29,9 @@ make lib-scafacos args="-p $HOME/scafacos" # use existing Scafacos installation # settings -version = "scafacos-1.0" -#url = "http://math.lbl.gov/voro++/download/dir/%s.tar.gz" % version +version = "scafacos-0.9" +url = "https://gigamove.rz.rwth-aachen.de/d/id/fTmrTm4EUAUSAp/dd/100" +#url = "https://gigamove.rz.rwth-aachen.de/d/id/CTzyApN76MXMJ6/dd/100" % version # print error message or help @@ -75,6 +76,7 @@ def geturl(url,fname): if not success and which('wget') != None: cmd = 'wget -O "%s" %s' % (fname,url) + print("Wget command: %s" % cmd) try: subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) success = True @@ -92,7 +94,7 @@ nargs = len(args) homepath = "." -buildflag = False +buildflag = True pathflag = False linkflag = True @@ -145,7 +147,7 @@ if buildflag: if buildflag: print("Building Scafacos ...") - cmd = 'cd "%s"; make CXX=g++ CFLAGS="-fPIC -O3"' % homedir + cmd = 'cd "%s"; CC=mpicc FC=mpif90 CXX=mpicxx ./configure --prefix="`pwd`/build" --disable-doc --enable-fcs-solvers=fmm,p2nfft,direct,ewald > log.txt; make -j 4; make install' % homedir txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) print(txt.decode('UTF-8')) @@ -157,7 +159,7 @@ if linkflag: os.remove("includelink") if os.path.isfile("liblink") or os.path.islink("liblink"): os.remove("liblink") - cmd = 'ln -s "%s/include" includelink' % homedir + cmd = 'ln -s "%s/build/include" includelink' % homedir subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) - cmd = 'ln -s "%s/lib" liblink' % homedir + cmd = 'ln -s "%s/build/lib" liblink' % homedir subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) From 90897f570ed5777539dd7dda533ae18e68edc31c Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 31 Jul 2018 15:27:09 -0600 Subject: [PATCH 386/675] changes for Intro and Howto doc pages --- doc/src/Errors.txt | 2 +- doc/src/Examples.txt | 6 +- doc/src/Howto.txt | 128 + doc/src/Howto_2d.txt | 48 + doc/src/Howto_barostat.txt | 75 + ...ial_bash_on_windows.txt => Howto_bash.txt} | 1 + doc/src/Howto_bioFF.txt | 101 + doc/src/Howto_body.txt | 456 +++ doc/src/Howto_chunk.txt | 166 + doc/src/Howto_coreshell.txt | 253 ++ doc/src/Howto_couple.txt | 105 + doc/src/Howto_diffusion.txt | 31 + doc/src/Howto_dispersion.txt | 108 + doc/src/Howto_drude.txt | 77 + .../{tutorial_drude.txt => Howto_drude2.txt} | 0 doc/src/Howto_elastic.txt | 47 + .../{tutorial_github.txt => Howto_github.txt} | 10 +- doc/src/Howto_granular.txt | 57 + doc/src/Howto_kappa.txt | 90 + doc/src/Howto_library.txt | 208 ++ doc/src/Howto_manifold.txt | 41 + doc/src/Howto_multiple.txt | 95 + doc/src/Howto_nemd.txt | 48 + doc/src/Howto_output.txt | 307 ++ doc/src/Howto_polarizable.txt | 81 + ...torial_pylammps.txt => Howto_pylammps.txt} | 21 +- doc/src/Howto_replica.txt | 61 + doc/src/Howto_restart.txt | 97 + doc/src/Howto_spc.txt | 54 + doc/src/Howto_spherical.txt | 243 ++ doc/src/Howto_spins.txt | 59 + doc/src/Howto_temperature.txt | 40 + doc/src/Howto_thermostat.txt | 89 + doc/src/Howto_tip3p.txt | 69 + doc/src/Howto_tip4p.txt | 112 + doc/src/Howto_triclinic.txt | 213 ++ doc/src/Howto_viscosity.txt | 133 + doc/src/Howto_viz.txt | 40 + doc/src/Howto_walls.txt | 80 + doc/src/Intro.txt | 43 + doc/src/Manual.txt | 173 +- doc/src/Manual_version.txt | 33 + doc/src/Modify_body.txt | 7 +- doc/src/Modify_contribute.txt | 21 +- doc/src/Packages_details.txt | 58 +- doc/src/Packages_standard.txt | 12 +- doc/src/Packages_user.txt | 2 +- doc/src/Python_library.txt | 14 +- doc/src/Python_pylammps.txt | 4 +- doc/src/Section_history.txt | 135 - doc/src/Section_howto.txt | 3011 ----------------- doc/src/Section_intro.txt | 550 --- doc/src/Section_start.txt | 52 +- doc/src/Speed.txt | 2 +- doc/src/Tools.txt | 6 +- doc/src/angle_cosine_periodic.txt | 8 +- doc/src/atom_style.txt | 21 +- doc/src/body.txt | 4 +- doc/src/boundary.txt | 6 +- doc/src/box.txt | 6 +- doc/src/change_box.txt | 18 +- doc/src/compute.txt | 2 +- doc/src/compute_ackland_atom.txt | 2 +- doc/src/compute_angle.txt | 4 +- doc/src/compute_angle_local.txt | 4 +- doc/src/compute_angmom_chunk.txt | 11 +- doc/src/compute_basal_atom.txt | 5 +- doc/src/compute_body_local.txt | 15 +- doc/src/compute_bond.txt | 4 +- doc/src/compute_bond_local.txt | 4 +- doc/src/compute_centro_atom.txt | 4 +- doc/src/compute_chunk_atom.txt | 25 +- doc/src/compute_cluster_atom.txt | 2 +- doc/src/compute_cna_atom.txt | 2 +- doc/src/compute_cnp_atom.txt | 2 +- doc/src/compute_com.txt | 5 +- doc/src/compute_com_chunk.txt | 12 +- doc/src/compute_contact_atom.txt | 2 +- doc/src/compute_coord_atom.txt | 5 +- doc/src/compute_damage_atom.txt | 2 +- doc/src/compute_dihedral.txt | 4 +- doc/src/compute_dihedral_local.txt | 4 +- doc/src/compute_dilatation_atom.txt | 5 +- doc/src/compute_dipole_chunk.txt | 11 +- doc/src/compute_displace_atom.txt | 5 +- doc/src/compute_dpd.txt | 6 +- doc/src/compute_dpd_atom.txt | 6 +- doc/src/compute_edpd_temp_atom.txt | 6 +- doc/src/compute_entropy_atom.txt | 4 +- doc/src/compute_erotate_asphere.txt | 2 +- doc/src/compute_erotate_rigid.txt | 6 +- doc/src/compute_erotate_sphere.txt | 2 +- doc/src/compute_erotate_sphere_atom.txt | 2 +- doc/src/compute_event_displace.txt | 2 +- doc/src/compute_fep.txt | 4 +- doc/src/compute_global_atom.txt | 4 +- doc/src/compute_group_group.txt | 4 +- doc/src/compute_gyration.txt | 4 +- doc/src/compute_gyration_chunk.txt | 11 +- doc/src/compute_heat_flux.txt | 10 +- doc/src/compute_hexorder_atom.txt | 7 +- doc/src/compute_improper.txt | 4 +- doc/src/compute_improper_local.txt | 4 +- doc/src/compute_inertia_chunk.txt | 11 +- doc/src/compute_ke.txt | 2 +- doc/src/compute_ke_atom.txt | 2 +- doc/src/compute_ke_atom_eff.txt | 6 +- doc/src/compute_ke_eff.txt | 2 +- doc/src/compute_ke_rigid.txt | 4 +- doc/src/compute_meso_e_atom.txt | 2 +- doc/src/compute_meso_rho_atom.txt | 2 +- doc/src/compute_meso_t_atom.txt | 2 +- doc/src/compute_msd.txt | 5 +- doc/src/compute_msd_chunk.txt | 9 +- doc/src/compute_msd_nongauss.txt | 5 +- doc/src/compute_omega_chunk.txt | 11 +- doc/src/compute_orientorder_atom.txt | 7 +- doc/src/compute_pair.txt | 5 +- doc/src/compute_pair_local.txt | 4 +- doc/src/compute_pe.txt | 5 +- doc/src/compute_pe_atom.txt | 2 +- doc/src/compute_plasticity_atom.txt | 5 +- doc/src/compute_pressure.txt | 4 +- doc/src/compute_property_atom.txt | 14 +- doc/src/compute_property_chunk.txt | 15 +- doc/src/compute_property_local.txt | 12 +- doc/src/compute_rdf.txt | 2 +- doc/src/compute_reduce.txt | 2 +- doc/src/compute_rigid_local.txt | 10 +- doc/src/compute_saed.txt | 7 +- doc/src/compute_slice.txt | 4 +- doc/src/compute_smd_contact_radius.txt | 6 +- doc/src/compute_smd_damage.txt | 8 +- doc/src/compute_smd_hourglass_error.txt | 8 +- doc/src/compute_smd_internal_energy.txt | 4 +- doc/src/compute_smd_plastic_strain.txt | 4 +- doc/src/compute_smd_plastic_strain_rate.txt | 4 +- doc/src/compute_smd_rho.txt | 4 +- doc/src/compute_smd_tlsph_defgrad.txt | 5 +- doc/src/compute_smd_tlsph_dt.txt | 4 +- doc/src/compute_smd_tlsph_num_neighs.txt | 4 +- doc/src/compute_smd_tlsph_shape.txt | 5 +- doc/src/compute_smd_tlsph_strain.txt | 5 +- doc/src/compute_smd_tlsph_strain_rate.txt | 5 +- doc/src/compute_smd_tlsph_stress.txt | 9 +- .../compute_smd_triangle_mesh_vertices.txt | 6 +- doc/src/compute_smd_ulsph_num_neighs.txt | 2 +- doc/src/compute_smd_ulsph_strain.txt | 2 +- doc/src/compute_smd_ulsph_strain_rate.txt | 5 +- doc/src/compute_smd_ulsph_stress.txt | 5 +- doc/src/compute_smd_vol.txt | 4 +- doc/src/compute_sna_atom.txt | 5 +- doc/src/compute_stress_atom.txt | 5 +- doc/src/compute_tdpd_cc_atom.txt | 6 +- doc/src/compute_temp.txt | 8 +- doc/src/compute_temp_asphere.txt | 8 +- doc/src/compute_temp_body.txt | 8 +- doc/src/compute_temp_chunk.txt | 16 +- doc/src/compute_temp_com.txt | 8 +- doc/src/compute_temp_cs.txt | 11 +- doc/src/compute_temp_deform.txt | 8 +- doc/src/compute_temp_deform_eff.txt | 4 +- doc/src/compute_temp_drude.txt | 12 +- doc/src/compute_temp_eff.txt | 4 +- doc/src/compute_temp_partial.txt | 8 +- doc/src/compute_temp_profile.txt | 8 +- doc/src/compute_temp_ramp.txt | 8 +- doc/src/compute_temp_region.txt | 8 +- doc/src/compute_temp_region_eff.txt | 4 +- doc/src/compute_temp_rotate.txt | 8 +- doc/src/compute_temp_sphere.txt | 8 +- doc/src/compute_ti.txt | 5 +- doc/src/compute_torque_chunk.txt | 9 +- doc/src/compute_vacf.txt | 5 +- doc/src/compute_vcm_chunk.txt | 11 +- doc/src/compute_voronoi_atom.txt | 26 +- doc/src/compute_xrd.txt | 2 +- doc/src/create_box.txt | 6 +- doc/src/dimension.txt | 2 +- doc/src/dump.txt | 14 +- doc/src/dump_image.txt | 14 +- doc/src/fix.txt | 2 +- doc/src/fix_adapt.txt | 8 +- doc/src/fix_adapt_fep.txt | 8 +- doc/src/fix_addforce.txt | 10 +- doc/src/fix_addtorque.txt | 10 +- doc/src/fix_append_atoms.txt | 8 +- doc/src/fix_atc.txt | 8 +- doc/src/fix_atom_swap.txt | 4 +- doc/src/fix_ave_atom.txt | 14 +- doc/src/fix_ave_chunk.txt | 33 +- doc/src/fix_ave_correlate.txt | 21 +- doc/src/fix_ave_histo.txt | 15 +- doc/src/fix_ave_time.txt | 9 +- doc/src/fix_aveforce.txt | 8 +- doc/src/fix_balance.txt | 4 +- doc/src/fix_bond_break.txt | 4 +- doc/src/fix_bond_create.txt | 4 +- doc/src/fix_bond_react.txt | 5 +- doc/src/fix_bond_swap.txt | 14 +- doc/src/fix_box_relax.txt | 20 +- doc/src/fix_cmap.txt | 6 +- doc/src/fix_colvars.txt | 6 +- doc/src/fix_controller.txt | 6 +- doc/src/fix_deform.txt | 7 +- doc/src/fix_deposit.txt | 10 +- doc/src/fix_dpd_source.txt | 8 +- doc/src/fix_drag.txt | 6 +- doc/src/fix_drude.txt | 8 +- doc/src/fix_drude_transform.txt | 4 +- doc/src/fix_dt_reset.txt | 4 +- doc/src/fix_efield.txt | 9 +- doc/src/fix_enforce2d.txt | 6 +- doc/src/fix_evaporate.txt | 6 +- doc/src/fix_external.txt | 13 +- doc/src/fix_filter_corotate.txt | 7 +- doc/src/fix_flow_gauss.txt | 10 +- doc/src/fix_freeze.txt | 8 +- doc/src/fix_gcmc.txt | 4 +- doc/src/fix_gld.txt | 2 +- doc/src/fix_gle.txt | 6 +- doc/src/fix_gravity.txt | 10 +- doc/src/fix_halt.txt | 8 +- doc/src/fix_heat.txt | 11 +- doc/src/fix_imd.txt | 6 +- doc/src/fix_indent.txt | 4 +- doc/src/fix_langevin.txt | 10 +- doc/src/fix_langevin_drude.txt | 9 +- doc/src/fix_langevin_eff.txt | 8 +- doc/src/fix_latte.txt | 6 +- doc/src/fix_lb_fluid.txt | 6 +- doc/src/fix_lb_momentum.txt | 8 +- doc/src/fix_lb_pc.txt | 8 +- doc/src/fix_lb_rigid_pc_sphere.txt | 34 +- doc/src/fix_lb_viscous.txt | 6 +- doc/src/fix_lineforce.txt | 6 +- doc/src/fix_manifoldforce.txt | 8 +- doc/src/fix_meso.txt | 8 +- doc/src/fix_meso_stationary.txt | 8 +- doc/src/fix_momentum.txt | 8 +- doc/src/fix_move.txt | 7 +- doc/src/fix_msst.txt | 4 +- doc/src/fix_mvv_dpd.txt | 8 +- doc/src/fix_neb.txt | 12 +- doc/src/fix_nh.txt | 13 +- doc/src/fix_nphug.txt | 6 +- doc/src/fix_nve.txt | 8 +- doc/src/fix_nve_asphere.txt | 8 +- doc/src/fix_nve_asphere_noforce.txt | 8 +- doc/src/fix_nve_body.txt | 14 +- doc/src/fix_nve_eff.txt | 8 +- doc/src/fix_nve_limit.txt | 16 +- doc/src/fix_nve_line.txt | 14 +- doc/src/fix_nve_manifold_rattle.txt | 10 +- doc/src/fix_nve_noforce.txt | 8 +- doc/src/fix_nve_sphere.txt | 8 +- doc/src/fix_nve_tri.txt | 16 +- doc/src/fix_nvk.txt | 8 +- doc/src/fix_nvt_manifold_rattle.txt | 18 +- doc/src/fix_oneway.txt | 8 +- doc/src/fix_orient.txt | 12 +- doc/src/fix_phonon.txt | 2 +- doc/src/fix_pimd.txt | 15 +- doc/src/fix_planeforce.txt | 6 +- doc/src/fix_poems.txt | 6 +- doc/src/fix_pour.txt | 6 +- doc/src/fix_precession_spin.txt | 4 +- doc/src/fix_press_berendsen.txt | 7 +- doc/src/fix_print.txt | 8 +- doc/src/fix_property_atom.txt | 27 +- doc/src/fix_python_move.txt | 8 +- doc/src/fix_qbmsst.txt | 8 +- doc/src/fix_qeq.txt | 5 +- doc/src/fix_qeq_comb.txt | 6 +- doc/src/fix_qeq_reax.txt | 4 +- doc/src/fix_qmmm.txt | 6 +- doc/src/fix_reax_bonds.txt | 8 +- doc/src/fix_reaxc_species.txt | 4 +- doc/src/fix_recenter.txt | 10 +- doc/src/fix_restrain.txt | 4 +- doc/src/fix_rigid.txt | 36 +- doc/src/fix_setforce.txt | 8 +- doc/src/fix_shake.txt | 7 +- doc/src/fix_smd.txt | 12 +- doc/src/fix_smd_setvel.txt | 6 +- doc/src/fix_spring.txt | 22 +- doc/src/fix_spring_chunk.txt | 4 +- doc/src/fix_spring_rg.txt | 8 +- doc/src/fix_spring_self.txt | 8 +- doc/src/fix_srd.txt | 10 +- doc/src/fix_store_force.txt | 8 +- doc/src/fix_store_state.txt | 8 +- doc/src/fix_temp_berendsen.txt | 10 +- doc/src/fix_temp_csvr.txt | 10 +- doc/src/fix_temp_rescale.txt | 10 +- doc/src/fix_temp_rescale_eff.txt | 6 +- doc/src/fix_thermal_conductivity.txt | 6 +- doc/src/fix_ti_spring.txt | 13 +- doc/src/fix_tmd.txt | 3 +- doc/src/fix_ttm.txt | 23 +- doc/src/fix_vector.txt | 7 +- doc/src/fix_viscosity.txt | 27 +- doc/src/fix_viscous.txt | 6 +- doc/src/fix_wall.txt | 16 +- doc/src/fix_wall_body_polygon.txt | 10 +- doc/src/fix_wall_body_polyhedron.txt | 10 +- doc/src/fix_wall_gran.txt | 6 +- doc/src/fix_wall_gran_region.txt | 6 +- doc/src/fix_wall_piston.txt | 8 +- doc/src/fix_wall_reflect.txt | 8 +- doc/src/fix_wall_region.txt | 11 +- doc/src/fix_wall_srd.txt | 6 +- doc/src/improper_umbrella.txt | 2 +- doc/src/kspace_modify.txt | 18 +- doc/src/kspace_style.txt | 15 +- doc/src/lammps_tutorials.txt | 6 - doc/src/molecule.txt | 5 +- doc/src/neb.txt | 5 +- doc/src/pair_body_nparticle.txt | 11 +- doc/src/pair_body_rounded_polygon.txt | 5 +- doc/src/pair_body_rounded_polyhedron.txt | 5 +- doc/src/pair_born.txt | 8 +- doc/src/pair_buck.txt | 5 +- doc/src/pair_coul.txt | 26 +- doc/src/pair_cs.txt | 4 +- doc/src/pair_hbond_dreiding.txt | 8 +- doc/src/pair_lj.txt | 26 +- doc/src/pair_lj_long.txt | 2 +- doc/src/pair_thole.txt | 4 +- doc/src/prd.txt | 4 +- doc/src/read_data.txt | 12 +- doc/src/region.txt | 6 +- doc/src/run.txt | 6 +- doc/src/tad.txt | 5 +- doc/src/temper.txt | 15 +- doc/src/thermo_style.txt | 10 +- doc/src/tutorials.txt | 15 - doc/src/velocity.txt | 17 +- 338 files changed, 5122 insertions(+), 5113 deletions(-) create mode 100644 doc/src/Howto.txt create mode 100644 doc/src/Howto_2d.txt create mode 100644 doc/src/Howto_barostat.txt rename doc/src/{tutorial_bash_on_windows.txt => Howto_bash.txt} (99%) mode change 100644 => 100755 create mode 100644 doc/src/Howto_bioFF.txt create mode 100644 doc/src/Howto_body.txt create mode 100644 doc/src/Howto_chunk.txt create mode 100644 doc/src/Howto_coreshell.txt create mode 100644 doc/src/Howto_couple.txt create mode 100644 doc/src/Howto_diffusion.txt create mode 100644 doc/src/Howto_dispersion.txt create mode 100644 doc/src/Howto_drude.txt rename doc/src/{tutorial_drude.txt => Howto_drude2.txt} (100%) create mode 100644 doc/src/Howto_elastic.txt rename doc/src/{tutorial_github.txt => Howto_github.txt} (98%) create mode 100644 doc/src/Howto_granular.txt create mode 100644 doc/src/Howto_kappa.txt create mode 100644 doc/src/Howto_library.txt create mode 100644 doc/src/Howto_manifold.txt create mode 100644 doc/src/Howto_multiple.txt create mode 100644 doc/src/Howto_nemd.txt create mode 100644 doc/src/Howto_output.txt create mode 100644 doc/src/Howto_polarizable.txt rename doc/src/{tutorial_pylammps.txt => Howto_pylammps.txt} (95%) create mode 100644 doc/src/Howto_replica.txt create mode 100644 doc/src/Howto_restart.txt create mode 100644 doc/src/Howto_spc.txt create mode 100644 doc/src/Howto_spherical.txt create mode 100644 doc/src/Howto_spins.txt create mode 100644 doc/src/Howto_temperature.txt create mode 100644 doc/src/Howto_thermostat.txt create mode 100644 doc/src/Howto_tip3p.txt create mode 100644 doc/src/Howto_tip4p.txt create mode 100644 doc/src/Howto_triclinic.txt create mode 100644 doc/src/Howto_viscosity.txt create mode 100644 doc/src/Howto_viz.txt create mode 100644 doc/src/Howto_walls.txt create mode 100644 doc/src/Intro.txt create mode 100644 doc/src/Manual_version.txt delete mode 100644 doc/src/Section_history.txt delete mode 100644 doc/src/Section_howto.txt delete mode 100644 doc/src/Section_intro.txt delete mode 100644 doc/src/lammps_tutorials.txt delete mode 100644 doc/src/tutorials.txt diff --git a/doc/src/Errors.txt b/doc/src/Errors.txt index 7bc520c19d..92a577c5f2 100644 --- a/doc/src/Errors.txt +++ b/doc/src/Errors.txt @@ -1,6 +1,6 @@ "Previous Section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_history.html :c +Section"_Manual.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Examples.txt b/doc/src/Examples.txt index 467ddcc959..b01b289d5e 100644 --- a/doc/src/Examples.txt +++ b/doc/src/Examples.txt @@ -1,6 +1,6 @@ -"Previous Section"_Section_howto.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_perf.html :c +"Previous Section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Tools.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Howto.txt b/doc/src/Howto.txt new file mode 100644 index 0000000000..d9a60d1ef4 --- /dev/null +++ b/doc/src/Howto.txt @@ -0,0 +1,128 @@ +"Previous Section"_Performance.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Examples.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands.html#comm) + +:line + +How to discussions :h2 + +These doc pages describe how to perform various tasks with LAMMPS, +both for users and developers. The +"glossary"_http://lammps.sandia.gov website page also lists MD +terminology with links to corresponding LAMMPS manual pages. + +The example input scripts included in the examples dir of the LAMMPS +distribution and highlighted on the "Examples"_Examples.html doc page +also show how to setup and run various kinds of simulations. + + + + + +"Using GitHub with LAMMPS"_Howto_github.html +"PyLAMMPS interface to LAMMPS"_Howto_pylammps.html +"Using LAMMPS with bash on Windows"_Howto_bash.html + +"Restart a simulation"_Howto_restart.html +"Visualize LAMMPS snapshots"_Howto_viz.html +"Run multiple simulations from one input script"_Howto_multiple.html +"Multi-replica simulations"_Howto_replica.html +"Library interface to LAMMPS"_Howto_library.html +"Couple LAMMPS to other codes"_Howto_couple.html :all(b) + +"Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_Howto_output.html +"Use chunks to calculate system properties"_Howto_chunk.html :all(b) + +"2d simulations"_Howto_2d.html +"Triclinic (non-orthogonal) simulation boxes"_Howto_triclinic.html +"Walls"_Howto_walls.html +"NEMD simulations"_Howto_nemd.html +"Granular models"_Howto_granular.html +"Finite-size spherical and aspherical particles"_Howto_spherical.html +"Long-range dispersion settings"_Howto_dispersion.html :all(b) + +"Calculate temperature"_Howto_temperature.html +"Thermostats"_Howto_thermostat.html +"Barostats"_Howto_barostat.html +"Calculate elastic constants"_Howto_elastic.html +"Calculate thermal conductivity"_Howto_kappa.html +"Calculate viscosity"_Howto_viscosity.html +"Calculate a diffusion coefficient"_Howto_diffusion.html :all(b) + +"CHARMM, AMBER, and DREIDING force fields"_Howto_bioFF.html +"TIP3P water model"_Howto_tip3p.html +"TIP4P water model"_Howto_tip4p.html +"SPC water model"_Howto_spc.html :all(b) + +"Body style particles"_Howto_body.html +"Polarizable models"_Howto_polarizable.html +"Adiabatic core/shell model"_Howto_coreshell.html +"Drude induced dipoles"_Howto_drude.html +"Drude induced dipoles (extended)"_Howto_drude2.html :all(b) +"Manifolds (surfaces)"_Howto_manifold.html +"Magnetic spins"_Howto_spins.html + + diff --git a/doc/src/Howto_2d.txt b/doc/src/Howto_2d.txt new file mode 100644 index 0000000000..ea11a7d546 --- /dev/null +++ b/doc/src/Howto_2d.txt @@ -0,0 +1,48 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +2d simulations :h3 + +Use the "dimension"_dimension.html command to specify a 2d simulation. + +Make the simulation box periodic in z via the "boundary"_boundary.html +command. This is the default. + +If using the "create box"_create_box.html command to define a +simulation box, set the z dimensions narrow, but finite, so that the +create_atoms command will tile the 3d simulation box with a single z +plane of atoms - e.g. + +"create box"_create_box.html 1 -10 10 -10 10 -0.25 0.25 :pre + +If using the "read data"_read_data.html command to read in a file of +atom coordinates, set the "zlo zhi" values to be finite but narrow, +similar to the create_box command settings just described. For each +atom in the file, assign a z coordinate so it falls inside the +z-boundaries of the box - e.g. 0.0. + +Use the "fix enforce2d"_fix_enforce2d.html command as the last +defined fix to insure that the z-components of velocities and forces +are zeroed out every timestep. The reason to make it the last fix is +so that any forces induced by other fixes will be zeroed out. + +Many of the example input scripts included in the LAMMPS distribution +are for 2d models. + +NOTE: Some models in LAMMPS treat particles as finite-size spheres, as +opposed to point particles. See the "atom_style +sphere"_atom_style.html and "fix nve/sphere"_fix_nve_sphere.html +commands for details. By default, for 2d simulations, such particles +will still be modeled as 3d spheres, not 2d discs (circles), meaning +their moment of inertia will be that of a sphere. If you wish to +model them as 2d discs, see the "set density/disc"_set.html command +and the {disc} option for the "fix nve/sphere"_fix_nve_sphere.html, +"fix nvt/sphere"_fix_nvt_sphere.html, "fix +nph/sphere"_fix_nph_sphere.html, "fix npt/sphere"_fix_npt_sphere.html +commands. diff --git a/doc/src/Howto_barostat.txt b/doc/src/Howto_barostat.txt new file mode 100644 index 0000000000..b289ebfc4c --- /dev/null +++ b/doc/src/Howto_barostat.txt @@ -0,0 +1,75 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Barostats :h3 + +Barostatting means controlling the pressure in an MD simulation. +"Thermostatting"_Howto_thermostat.html means controlling the +temperature of the particles. Since the pressure includes a kinetic +component due to particle velocities, both these operations require +calculation of the temperature. Typically a target temperature (T) +and/or pressure (P) is specified by the user, and the thermostat or +barostat attempts to equilibrate the system to the requested T and/or +P. + +Barostatting in LAMMPS is performed by "fixes"_fix.html. Two +barosttating methods are currently available: Nose-Hoover (npt and +nph) and Berendsen: + +"fix npt"_fix_nh.html +"fix npt/sphere"_fix_npt_sphere.html +"fix npt/asphere"_fix_npt_asphere.html +"fix nph"_fix_nh.html +"fix press/berendsen"_fix_press_berendsen.html :ul + +The "fix npt"_fix_nh.html commands include a Nose-Hoover thermostat +and barostat. "Fix nph"_fix_nh.html is just a Nose/Hoover barostat; +it does no thermostatting. Both "fix nph"_fix_nh.html and "fix +press/berendsen"_fix_press_berendsen.html can be used in conjunction +with any of the thermostatting fixes. + +As with the "thermostats"_Howto_thermostat.html, "fix npt"_fix_nh.html +and "fix nph"_fix_nh.html only use translational motion of the +particles in computing T and P and performing thermo/barostatting. +"Fix npt/sphere"_fix_npt_sphere.html and "fix +npt/asphere"_fix_npt_asphere.html thermo/barostat using not only +translation velocities but also rotational velocities for spherical +and aspherical particles. + +All of the barostatting fixes use the "compute +pressure"_compute_pressure.html compute to calculate a current +pressure. By default, this compute is created with a simple "compute +temp"_compute_temp.html (see the last argument of the "compute +pressure"_compute_pressure.html command), which is used to calculated +the kinetic component of the pressure. The barostatting fixes can +also use temperature computes that remove bias for the purpose of +computing the kinetic component which contributes to the current +pressure. See the doc pages for the individual fixes and for the +"fix_modify"_fix_modify.html command for instructions on how to assign +a temperature or pressure compute to a barostatting fix. + +NOTE: As with the thermostats, the Nose/Hoover methods ("fix +npt"_fix_nh.html and "fix nph"_fix_nh.html) perform time integration. +"Fix press/berendsen"_fix_press_berendsen.html does NOT, so it should +be used with one of the constant NVE fixes or with one of the NVT +fixes. + +Thermodynamic output, which can be setup via the +"thermo_style"_thermo_style.html command, often includes pressure +values. As explained on the doc page for the +"thermo_style"_thermo_style.html command, the default pressure is +setup by the thermo command itself. It is NOT the presure associated +with any barostatting fix you have defined or with any compute you +have defined that calculates a presure. The doc pages for the +barostatting fixes explain the ID of the pressure compute they create. +Thus if you want to view these pressurse, you need to specify them +explicitly via the "thermo_style custom"_thermo_style.html command. +Or you can use the "thermo_modify"_thermo_modify.html command to +re-define what pressure compute is used for default thermodynamic +output. diff --git a/doc/src/tutorial_bash_on_windows.txt b/doc/src/Howto_bash.txt old mode 100644 new mode 100755 similarity index 99% rename from doc/src/tutorial_bash_on_windows.txt rename to doc/src/Howto_bash.txt index 66712bdffa..572157ab55 --- a/doc/src/tutorial_bash_on_windows.txt +++ b/doc/src/Howto_bash.txt @@ -10,6 +10,7 @@ Using LAMMPS with Bash on Windows :h3 [written by Richard Berger] :line + Starting with Windows 10 you can install Linux tools directly in Windows. This allows you to compile LAMMPS following the same procedure as on a real Ubuntu Linux installation. Software can be easily installed using the package manager diff --git a/doc/src/Howto_bioFF.txt b/doc/src/Howto_bioFF.txt new file mode 100644 index 0000000000..91d6eb0a8e --- /dev/null +++ b/doc/src/Howto_bioFF.txt @@ -0,0 +1,101 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +CHARMM, AMBER, and DREIDING force fields :h3 + +A force field has 2 parts: the formulas that define it and the +coefficients used for a particular system. Here we only discuss +formulas implemented in LAMMPS that correspond to formulas commonly +used in the CHARMM, AMBER, and DREIDING force fields. Setting +coefficients is done in the input data file via the +"read_data"_read_data.html command or in the input script with +commands like "pair_coeff"_pair_coeff.html or +"bond_coeff"_bond_coeff.html. See the "Tools"_Tools.html doc page for +additional tools that can use CHARMM or AMBER to assign force field +coefficients and convert their output into LAMMPS input. + +See "(MacKerell)"_#howto-MacKerell for a description of the CHARMM force +field. See "(Cornell)"_#howto-Cornell for a description of the AMBER force +field. + +:link(charmm,http://www.scripps.edu/brooks) +:link(amber,http://amber.scripps.edu) + +These style choices compute force field formulas that are consistent +with common options in CHARMM or AMBER. See each command's +documentation for the formula it computes. + +"bond_style"_bond_harmonic.html harmonic +"angle_style"_angle_charmm.html charmm +"dihedral_style"_dihedral_charmm.html charmmfsh +"dihedral_style"_dihedral_charmm.html charmm +"pair_style"_pair_charmm.html lj/charmmfsw/coul/charmmfsh +"pair_style"_pair_charmm.html lj/charmmfsw/coul/long +"pair_style"_pair_charmm.html lj/charmm/coul/charmm +"pair_style"_pair_charmm.html lj/charmm/coul/charmm/implicit +"pair_style"_pair_charmm.html lj/charmm/coul/long :ul + +"special_bonds"_special_bonds.html charmm +"special_bonds"_special_bonds.html amber :ul + +NOTE: For CHARMM, newer {charmmfsw} or {charmmfsh} styles were +released in March 2017. We recommend they be used instead of the +older {charmm} styles. See discussion of the differences on the "pair +charmm"_pair_charmm.html and "dihedral charmm"_dihedral_charmm.html +doc pages. + +DREIDING is a generic force field developed by the "Goddard +group"_http://www.wag.caltech.edu at Caltech and is useful for +predicting structures and dynamics of organic, biological and +main-group inorganic molecules. The philosophy in DREIDING is to use +general force constants and geometry parameters based on simple +hybridization considerations, rather than individual force constants +and geometric parameters that depend on the particular combinations of +atoms involved in the bond, angle, or torsion terms. DREIDING has an +"explicit hydrogen bond term"_pair_hbond_dreiding.html to describe +interactions involving a hydrogen atom on very electronegative atoms +(N, O, F). + +See "(Mayo)"_#howto-Mayo for a description of the DREIDING force field + +These style choices compute force field formulas that are consistent +with the DREIDING force field. See each command's +documentation for the formula it computes. + +"bond_style"_bond_harmonic.html harmonic +"bond_style"_bond_morse.html morse :ul + +"angle_style"_angle_harmonic.html harmonic +"angle_style"_angle_cosine.html cosine +"angle_style"_angle_cosine_periodic.html cosine/periodic :ul + +"dihedral_style"_dihedral_charmm.html charmm +"improper_style"_improper_umbrella.html umbrella :ul + +"pair_style"_pair_buck.html buck +"pair_style"_pair_buck.html buck/coul/cut +"pair_style"_pair_buck.html buck/coul/long +"pair_style"_pair_lj.html lj/cut +"pair_style"_pair_lj.html lj/cut/coul/cut +"pair_style"_pair_lj.html lj/cut/coul/long :ul + +"pair_style"_pair_hbond_dreiding.html hbond/dreiding/lj +"pair_style"_pair_hbond_dreiding.html hbond/dreiding/morse :ul + +"special_bonds"_special_bonds.html dreiding :ul + +:line + +:link(howto-MacKerell) +[(MacKerell)] MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field, +Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998). + +:link(howto-Mayo) +[(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909 +(1990). diff --git a/doc/src/Howto_body.txt b/doc/src/Howto_body.txt new file mode 100644 index 0000000000..cf0a36a972 --- /dev/null +++ b/doc/src/Howto_body.txt @@ -0,0 +1,456 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Body particles :h3 + +[Overview:] + +In LAMMPS, body particles are generalized finite-size particles. +Individual body particles can represent complex entities, such as +surface meshes of discrete points, collections of sub-particles, +deformable objects, etc. Note that other kinds of finite-size +spherical and aspherical particles are also supported by LAMMPS, such +as spheres, ellipsoids, line segments, and triangles, but they are +simpler entities that body particles. See "Section +6.14"_Section_howto.html#howto_14 for a general overview of all these +particle types. + +Body particles are used via the "atom_style body"_atom_style.html +command. It takes a body style as an argument. The current body +styles supported by LAMMPS are as follows. The name in the first +column is used as the {bstyle} argument for the "atom_style +body"_atom_style.html command. + +{nparticle} : rigid body with N sub-particles +{rounded/polygon} : 2d polygons with N vertices +{rounded/polyhedron} : 3d polyhedra with N vertices, E edges and F faces :tb(s=:) + +The body style determines what attributes are stored for each body and +thus how they can be used to compute pairwise body/body or +bond/non-body (point particle) interactions. More details of each +style are described below. + +More styles may be added in the future. See the "Modify +body"_Modify_body.html doc page for details on how to add a new body +style to the code. + +:line + +[When to use body particles:] + +You should not use body particles to model a rigid body made of +simpler particles (e.g. point, sphere, ellipsoid, line segment, +triangular particles), if the interaction between pairs of rigid +bodies is just the summation of pairwise interactions between the +simpler particles. LAMMPS already supports this kind of model via the +"fix rigid"_fix_rigid.html command. Any of the numerous pair styles +that compute interactions between simpler particles can be used. The +"fix rigid"_fix_rigid.html command time integrates the motion of the +rigid bodies. All of the standard LAMMPS commands for thermostatting, +adding constraints, performing output, etc will operate as expected on +the simple particles. + +By contrast, when body particles are used, LAMMPS treats an entire +body as a single particle for purposes of computing pairwise +interactions, building neighbor lists, migrating particles between +processors, output of particles to a dump file, etc. This means that +interactions between pairs of bodies or between a body and non-body +(point) particle need to be encoded in an appropriate pair style. If +such a pair style were to mimic the "fix rigid"_fix_rigid.html model, +it would need to loop over the entire collection of interactions +between pairs of simple particles within the two bodies, each time a +single body/body interaction was computed. + +Thus it only makes sense to use body particles and develop such a pair +style, when particle/particle interactions are more complex than what +the "fix rigid"_fix_rigid.html command can already calculate. For +example, consider particles with one or more of the following +attributes: + +represented by a surface mesh +represented by a collection of geometric entities (e.g. planes + spheres) +deformable +internal stress that induces fragmentation :ul + +For these models, the interaction between pairs of particles is likely +to be more complex than the summation of simple pairwise interactions. +An example is contact or frictional forces between particles with +planar surfaces that inter-penetrate. Likewise, the body particle may +store internal state, such as a stress tensor used to compute a +fracture criterion. + +These are additional LAMMPS commands that can be used with body +particles of different styles + +"fix nve/body"_fix_nve_body.html : integrate motion of a body particle in NVE ensemble +"fix nvt/body"_fix_nvt_body.html : ditto for NVT ensemble +"fix npt/body"_fix_npt_body.html : ditto for NPT ensemble +"fix nph/body"_fix_nph_body.html : ditto for NPH ensemble +"compute body/local"_compute_body_local.html : store sub-particle attributes of a body particle +"compute temp/body"_compute_temp_body.html : compute temperature of body particles +"dump local"_dump.html : output sub-particle attributes of a body particle +"dump image"_dump_image.html : output body particle attributes as an image :tb(s=:) + +The pair styles defined for use with specific body styles are listed +in the sections below. + +:line + +[Specifics of body style nparticle:] + +The {nparticle} body style represents body particles as a rigid body +with a variable number N of sub-particles. It is provided as a +vanilla, prototypical example of a body particle, although as +mentioned above, the "fix rigid"_fix_rigid.html command already +duplicates its functionality. + +The atom_style body command for this body style takes two additional +arguments: + +atom_style body nparticle Nmin Nmax +Nmin = minimum # of sub-particles in any body in the system +Nmax = maximum # of sub-particles in any body in the system :pre + +The Nmin and Nmax arguments are used to bound the size of data +structures used internally by each particle. + +When the "read_data"_read_data.html command reads a data file for this +body style, the following information must be provided for each entry +in the {Bodies} section of the data file: + +atom-ID 1 M +N +ixx iyy izz ixy ixz iyz +x1 y1 z1 +... +xN yN zN :pre + +where M = 6 + 3*N, and N is the number of sub-particles in the body +particle. + +The integer line has a single value N. The floating point line(s) +list 6 moments of inertia followed by the coordinates of the N +sub-particles (x1 to zN) as 3N values. These values can be listed on +as many lines as you wish; see the "read_data"_read_data.html command +for more details. + +The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the +values consistent with the current orientation of the rigid body +around its center of mass. The values are with respect to the +simulation box XYZ axes, not with respect to the principal axes of the +rigid body itself. LAMMPS performs the latter calculation internally. +The coordinates of each sub-particle are specified as its x,y,z +displacement from the center-of-mass of the body particle. The +center-of-mass position of the particle is specified by the x,y,z +values in the {Atoms} section of the data file, as is the total mass +of the body particle. + +The "pair_style body"_pair_body.html command can be used with this +body style to compute body/body and body/non-body interactions. + +For output purposes via the "compute +body/local"_compute_body_local.html and "dump local"_dump.html +commands, this body style produces one datum for each of the N +sub-particles in a body particle. The datum has 3 values: + +1 = x position of sub-particle +2 = y position of sub-particle +3 = z position of sub-particle :pre + +These values are the current position of the sub-particle within the +simulation domain, not a displacement from the center-of-mass (COM) of +the body particle itself. These values are calculated using the +current COM and orientation of the body particle. + +For images created by the "dump image"_dump_image.html command, if the +{body} keyword is set, then each body particle is drawn as a +collection of spheres, one for each sub-particle. The size of each +sphere is determined by the {bflag1} parameter for the {body} keyword. +The {bflag2} argument is ignored. + +:line + +[Specifics of body style rounded/polygon:] + +The {rounded/polygon} body style represents body particles as a 2d +polygon with a variable number of N vertices. This style can only be +used for 2d models; see the "boundary"_boundary.html command. See the +"pair_style body/rounded/polygon" doc page for a diagram of two +squares with rounded circles at the vertices. Special cases for N = 1 +(circle) and N = 2 (rod with rounded ends) can also be specified. + +One use of this body style is for 2d discrete element models, as +described in "Fraige"_#body-Fraige. + +Similar to body style {nparticle}, the atom_style body command for +this body style takes two additional arguments: + +atom_style body rounded/polygon Nmin Nmax +Nmin = minimum # of vertices in any body in the system +Nmax = maximum # of vertices in any body in the system :pre + +The Nmin and Nmax arguments are used to bound the size of data +structures used internally by each particle. + +When the "read_data"_read_data.html command reads a data file for this +body style, the following information must be provided for each entry +in the {Bodies} section of the data file: + +atom-ID 1 M +N +ixx iyy izz ixy ixz iyz +x1 y1 z1 +... +xN yN zN +i j j k k ... +diameter :pre + +where M = 6 + 3*N + 2*N + 1, and N is the number of vertices in the +body particle. + +The integer line has a single value N. The floating point line(s) +list 6 moments of inertia followed by the coordinates of the N +vertices (x1 to zN) as 3N values (with z = 0.0 for each), followed by +2N vertex indices corresponding to the end points of the N edges, +followed by a single diameter value = the rounded diameter of the +circle that surrounds each vertex. The diameter value can be different +for each body particle. These floating-point values can be listed on +as many lines as you wish; see the "read_data"_read_data.html command +for more details. + +The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the +values consistent with the current orientation of the rigid body +around its center of mass. The values are with respect to the +simulation box XYZ axes, not with respect to the principal axes of the +rigid body itself. LAMMPS performs the latter calculation internally. +The coordinates of each vertex are specified as its x,y,z displacement +from the center-of-mass of the body particle. The center-of-mass +position of the particle is specified by the x,y,z values in the +{Atoms} section of the data file. + +For example, the following information would specify a square particle +whose edge length is sqrt(2) and rounded diameter is 1.0. The +orientation of the square is aligned with the xy coordinate axes which +is consistent with the 6 moments of inertia: ixx iyy izz ixy ixz iyz = +1 1 4 0 0 0. Note that only Izz matters in 2D simulations. + +3 1 27 +4 +1 1 4 0 0 0 +-0.7071 -0.7071 0 +-0.7071 0.7071 0 +0.7071 0.7071 0 +0.7071 -0.7071 0 +0 1 +1 2 +2 3 +3 0 +1.0 :pre + +A rod in 2D, whose length is 4.0, mass 1.0, rounded at two ends +by circles of diameter 0.5, is specified as follows: + +1 1 13 +2 +1 1 1.33333 0 0 0 +-2 0 0 +2 0 0 +0.5 :pre + +A disk, whose diameter is 3.0, mass 1.0, is specified as follows: + +1 1 10 +1 +1 1 4.5 0 0 0 +0 0 0 +3.0 :pre + +The "pair_style body/rounded/polygon"_pair_body_rounded_polygon.html +command can be used with this body style to compute body/body +interactions. The "fix wall/body/polygon"_fix_wall_body_polygon.html +command can be used with this body style to compute the interaction of +body particles with a wall. + +:line + +[Specifics of body style rounded/polyhedron:] + +The {rounded/polyhedron} body style represents body particles as a 3d +polyhedron with a variable number of N vertices, E edges and F faces. +This style can only be used for 3d models; see the +"boundary"_boundary.html command. See the "pair_style +body/rounded/polygon" doc page for a diagram of a two 2d squares with +rounded circles at the vertices. A 3d cube with rounded spheres at +the 8 vertices and 12 rounded edges would be similar. Special cases +for N = 1 (sphere) and N = 2 (rod with rounded ends) can also be +specified. + +This body style is for 3d discrete element models, as described in +"Wang"_#body-Wang. + +Similar to body style {rounded/polygon}, the atom_style body command +for this body style takes two additional arguments: + +atom_style body rounded/polyhedron Nmin Nmax +Nmin = minimum # of vertices in any body in the system +Nmax = maximum # of vertices in any body in the system :pre + +The Nmin and Nmax arguments are used to bound the size of data +structures used internally by each particle. + +When the "read_data"_read_data.html command reads a data file for this +body style, the following information must be provided for each entry +in the {Bodies} section of the data file: + +atom-ID 3 M +N E F +ixx iyy izz ixy ixz iyz +x1 y1 z1 +... +xN yN zN +0 1 +1 2 +2 3 +... +0 1 2 -1 +0 2 3 -1 +... +1 2 3 4 +diameter :pre + +where M = 6 + 3*N + 2*E + 4*F + 1, and N is the number of vertices in +the body particle, E = number of edges, F = number of faces. + +The integer line has three values: number of vertices (N), number of +edges (E) and number of faces (F). The floating point line(s) list 6 +moments of inertia followed by the coordinates of the N vertices (x1 +to zN) as 3N values, followed by 2N vertex indices corresponding to +the end points of the E edges, then 4*F vertex indices defining F +faces. The last value is the diameter value = the rounded diameter of +the sphere that surrounds each vertex. The diameter value can be +different for each body particle. These floating-point values can be +listed on as many lines as you wish; see the +"read_data"_read_data.html command for more details. Because the +maxmimum vertices per face is hard-coded to be 4 +(i.e. quadrilaterals), faces with more than 4 vertices need to be +split into triangles or quadrilaterals. For triangular faces, the +last vertex index should be set to -1. + +The ordering of the 4 vertices within a face should follow +the right-hand rule so that the normal vector of the face points +outwards from the center of mass. + +The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the +values consistent with the current orientation of the rigid body +around its center of mass. The values are with respect to the +simulation box XYZ axes, not with respect to the principal axes of the +rigid body itself. LAMMPS performs the latter calculation internally. +The coordinates of each vertex are specified as its x,y,z displacement +from the center-of-mass of the body particle. The center-of-mass +position of the particle is specified by the x,y,z values in the +{Atoms} section of the data file. + +For example, the following information would specify a cubic particle +whose edge length is 2.0 and rounded diameter is 0.5. +The orientation of the cube is aligned with the xyz coordinate axes +which is consistent with the 6 moments of inertia: ixx iyy izz ixy ixz +iyz = 0.667 0.667 0.667 0 0 0. + +1 3 79 +8 12 6 +0.667 0.667 0.667 0 0 0 +1 1 1 +1 -1 1 +-1 -1 1 +-1 1 1 +1 1 -1 +1 -1 -1 +-1 -1 -1 +-1 1 -1 +0 1 +1 2 +2 3 +3 0 +4 5 +5 6 +6 7 +7 4 +0 4 +1 5 +2 6 +3 7 +0 1 2 3 +4 5 6 7 +0 1 5 4 +1 2 6 5 +2 3 7 6 +3 0 4 7 +0.5 :pre + +A rod in 3D, whose length is 4.0, mass 1.0 and rounded at two ends +by circles of diameter 0.5, is specified as follows: + +1 1 13 +2 +0 1.33333 1.33333 0 0 0 +-2 0 0 +2 0 0 +0.5 :pre + +A sphere whose diameter is 3.0 and mass 1.0, is specified as follows: + +1 1 10 +1 +0.9 0.9 0.9 0 0 0 +0 0 0 +3.0 :pre + +The "pair_style +body/rounded/polhedron"_pair_body_rounded_polyhedron.html command can +be used with this body style to compute body/body interactions. The +"fix wall/body/polyhedron"_fix_wall_body_polygon.html command can be +used with this body style to compute the interaction of body particles +with a wall. + +:line + +For output purposes via the "compute +body/local"_compute_body_local.html and "dump local"_dump.html +commands, this body style produces one datum for each of the N +sub-particles in a body particle. The datum has 3 values: + +1 = x position of vertex +2 = y position of vertex +3 = z position of vertex :pre + +These values are the current position of the vertex within the +simulation domain, not a displacement from the center-of-mass (COM) of +the body particle itself. These values are calculated using the +current COM and orientation of the body particle. + +For images created by the "dump image"_dump_image.html command, if the +{body} keyword is set, then each body particle is drawn as a polygon +consisting of N line segments. Note that the line segments are drawn +between the N vertices, which does not correspond exactly to the +physical extent of the body (because the "pair_style +rounded/polygon"_pair_body_rounded_polygon.html defines finite-size +spheres at those point and the line segments between the spheres are +tangent to the spheres). The drawn diameter of each line segment is +determined by the {bflag1} parameter for the {body} keyword. The +{bflag2} argument is ignored. + +:line + +:link(body-Fraige) +[(Fraige)] F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds, +Particuology, 6, 455 (2008). + +:link(body-Wang) +[(Wang)] J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular +Matter, 13, 1 (2011). diff --git a/doc/src/Howto_chunk.txt b/doc/src/Howto_chunk.txt new file mode 100644 index 0000000000..9d757b2729 --- /dev/null +++ b/doc/src/Howto_chunk.txt @@ -0,0 +1,166 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Use chunks to calculate system properties :h3 + +In LAMMS, "chunks" are collections of atoms, as defined by the +"compute chunk/atom"_compute_chunk_atom.html command, which assigns +each atom to a chunk ID (or to no chunk at all). The number of chunks +and the assignment of chunk IDs to atoms can be static or change over +time. Examples of "chunks" are molecules or spatial bins or atoms +with similar values (e.g. coordination number or potential energy). + +The per-atom chunk IDs can be used as input to two other kinds of +commands, to calculate various properties of a system: + +"fix ave/chunk"_fix_ave_chunk.html +any of the "compute */chunk"_compute.html commands :ul + +Here, each of the 3 kinds of chunk-related commands is briefly +overviewed. Then some examples are given of how to compute different +properties with chunk commands. + +Compute chunk/atom command: :h4 + +This compute can assign atoms to chunks of various styles. Only atoms +in the specified group and optional specified region are assigned to a +chunk. Here are some possible chunk definitions: + +atoms in same molecule | chunk ID = molecule ID | +atoms of same atom type | chunk ID = atom type | +all atoms with same atom property (charge, radius, etc) | chunk ID = output of compute property/atom | +atoms in same cluster | chunk ID = output of "compute cluster/atom"_compute_cluster_atom.html command | +atoms in same spatial bin | chunk ID = bin ID | +atoms in same rigid body | chunk ID = molecule ID used to define rigid bodies | +atoms with similar potential energy | chunk ID = output of "compute pe/atom"_compute_pe_atom.html | +atoms with same local defect structure | chunk ID = output of "compute centro/atom"_compute_centro_atom.html or "compute coord/atom"_compute_coord_atom.html command :tb(s=|,c=2) + +Note that chunk IDs are integer values, so for atom properties or +computes that produce a floating point value, they will be truncated +to an integer. You could also use the compute in a variable that +scales the floating point value to spread it across multiple integers. + +Spatial bins can be of various kinds, e.g. 1d bins = slabs, 2d bins = +pencils, 3d bins = boxes, spherical bins, cylindrical bins. + +This compute also calculates the number of chunks {Nchunk}, which is +used by other commands to tally per-chunk data. {Nchunk} can be a +static value or change over time (e.g. the number of clusters). The +chunk ID for an individual atom can also be static (e.g. a molecule +ID), or dynamic (e.g. what spatial bin an atom is in as it moves). + +Note that this compute allows the per-atom output of other +"computes"_compute.html, "fixes"_fix.html, and +"variables"_variable.html to be used to define chunk IDs for each +atom. This means you can write your own compute or fix to output a +per-atom quantity to use as chunk ID. See the "Modify"_Modify.html +doc pages for info on how to do this. You can also define a "per-atom +variable"_variable.html in the input script that uses a formula to +generate a chunk ID for each atom. + +Fix ave/chunk command: :h4 + +This fix takes the ID of a "compute +chunk/atom"_compute_chunk_atom.html command as input. For each chunk, +it then sums one or more specified per-atom values over the atoms in +each chunk. The per-atom values can be any atom property, such as +velocity, force, charge, potential energy, kinetic energy, stress, +etc. Additional keywords are defined for per-chunk properties like +density and temperature. More generally any per-atom value generated +by other "computes"_compute.html, "fixes"_fix.html, and "per-atom +variables"_variable.html, can be summed over atoms in each chunk. + +Similar to other averaging fixes, this fix allows the summed per-chunk +values to be time-averaged in various ways, and output to a file. The +fix produces a global array as output with one row of values per +chunk. + +Compute */chunk commands: :h4 + +Currently the following computes operate on chunks of atoms to produce +per-chunk values. + +"compute com/chunk"_compute_com_chunk.html +"compute gyration/chunk"_compute_gyration_chunk.html +"compute inertia/chunk"_compute_inertia_chunk.html +"compute msd/chunk"_compute_msd_chunk.html +"compute property/chunk"_compute_property_chunk.html +"compute temp/chunk"_compute_temp_chunk.html +"compute torque/chunk"_compute_vcm_chunk.html +"compute vcm/chunk"_compute_vcm_chunk.html :ul + +They each take the ID of a "compute +chunk/atom"_compute_chunk_atom.html command as input. As their names +indicate, they calculate the center-of-mass, radius of gyration, +moments of inertia, mean-squared displacement, temperature, torque, +and velocity of center-of-mass for each chunk of atoms. The "compute +property/chunk"_compute_property_chunk.html command can tally the +count of atoms in each chunk and extract other per-chunk properties. + +The reason these various calculations are not part of the "fix +ave/chunk command"_fix_ave_chunk.html, is that each requires a more +complicated operation than simply summing and averaging over per-atom +values in each chunk. For example, many of them require calculation +of a center of mass, which requires summing mass*position over the +atoms and then dividing by summed mass. + +All of these computes produce a global vector or global array as +output, wih one or more values per chunk. They can be used +in various ways: + +As input to the "fix ave/time"_fix_ave_time.html command, which can +write the values to a file and optionally time average them. :ulb,l + +As input to the "fix ave/histo"_fix_ave_histo.html command to +histogram values across chunks. E.g. a histogram of cluster sizes or +molecule diffusion rates. :l + +As input to special functions of "equal-style +variables"_variable.html, like sum() and max(). E.g. to find the +largest cluster or fastest diffusing molecule. :l +:ule + +Example calculations with chunks :h4 + +Here are examples using chunk commands to calculate various +properties: + +(1) Average velocity in each of 1000 2d spatial bins: + +compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.01 units reduced +fix 1 all ave/chunk 100 10 1000 cc1 vx vy file tmp.out :pre + +(2) Temperature in each spatial bin, after subtracting a flow +velocity: + +compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.1 units reduced +compute vbias all temp/profile 1 0 0 y 10 +fix 1 all ave/chunk 100 10 1000 cc1 temp bias vbias file tmp.out :pre + +(3) Center of mass of each molecule: + +compute cc1 all chunk/atom molecule +compute myChunk all com/chunk cc1 +fix 1 all ave/time 100 1 100 c_myChunk\[*\] file tmp.out mode vector :pre + +(4) Total force on each molecule and ave/max across all molecules: + +compute cc1 all chunk/atom molecule +fix 1 all ave/chunk 1000 1 1000 cc1 fx fy fz file tmp.out +variable xave equal ave(f_1\[2\]) +variable xmax equal max(f_1\[2\]) +thermo 1000 +thermo_style custom step temp v_xave v_xmax :pre + +(5) Histogram of cluster sizes: + +compute cluster all cluster/atom 1.0 +compute cc1 all chunk/atom c_cluster compress yes +compute size all property/chunk cc1 count +fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo :pre diff --git a/doc/src/Howto_coreshell.txt b/doc/src/Howto_coreshell.txt new file mode 100644 index 0000000000..273568418b --- /dev/null +++ b/doc/src/Howto_coreshell.txt @@ -0,0 +1,253 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Adiabatic core/shell model :h3 + +The adiabatic core-shell model by "Mitchell and +Fincham"_#MitchellFincham is a simple method for adding polarizability +to a system. In order to mimic the electron shell of an ion, a +satellite particle is attached to it. This way the ions are split into +a core and a shell where the latter is meant to react to the +electrostatic environment inducing polarizability. See the "Howto +polarizable"_Howto_polarizable.html doc page for a discussion of all +the polarizable models available in LAMMPS. + +Technically, shells are attached to the cores by a spring force f = +k*r where k is a parametrized spring constant and r is the distance +between the core and the shell. The charges of the core and the shell +add up to the ion charge, thus q(ion) = q(core) + q(shell). This +setup introduces the ion polarizability (alpha) given by +alpha = q(shell)^2 / k. In a +similar fashion the mass of the ion is distributed on the core and the +shell with the core having the larger mass. + +To run this model in LAMMPS, "atom_style"_atom_style.html {full} can +be used since atom charge and bonds are needed. Each kind of +core/shell pair requires two atom types and a bond type. The core and +shell of a core/shell pair should be bonded to each other with a +harmonic bond that provides the spring force. For example, a data file +for NaCl, as found in examples/coreshell, has this format: + +432 atoms # core and shell atoms +216 bonds # number of core/shell springs :pre + +4 atom types # 2 cores and 2 shells for Na and Cl +2 bond types :pre + +0.0 24.09597 xlo xhi +0.0 24.09597 ylo yhi +0.0 24.09597 zlo zhi :pre + +Masses # core/shell mass ratio = 0.1 :pre + +1 20.690784 # Na core +2 31.90500 # Cl core +3 2.298976 # Na shell +4 3.54500 # Cl shell :pre + +Atoms :pre + +1 1 2 1.5005 0.00000000 0.00000000 0.00000000 # core of core/shell pair 1 +2 1 4 -2.5005 0.00000000 0.00000000 0.00000000 # shell of core/shell pair 1 +3 2 1 1.5056 4.01599500 4.01599500 4.01599500 # core of core/shell pair 2 +4 2 3 -0.5056 4.01599500 4.01599500 4.01599500 # shell of core/shell pair 2 +(...) :pre + +Bonds # Bond topology for spring forces :pre + +1 2 1 2 # spring for core/shell pair 1 +2 2 3 4 # spring for core/shell pair 2 +(...) :pre + +Non-Coulombic (e.g. Lennard-Jones) pairwise interactions are only +defined between the shells. Coulombic interactions are defined +between all cores and shells. If desired, additional bonds can be +specified between cores. + +The "special_bonds"_special_bonds.html command should be used to +turn-off the Coulombic interaction within core/shell pairs, since that +interaction is set by the bond spring. This is done using the +"special_bonds"_special_bonds.html command with a 1-2 weight = 0.0, +which is the default value. It needs to be considered whether one has +to adjust the "special_bonds"_special_bonds.html weighting according +to the molecular topology since the interactions of the shells are +bypassed over an extra bond. + +Note that this core/shell implementation does not require all ions to +be polarized. One can mix core/shell pairs and ions without a +satellite particle if desired. + +Since the core/shell model permits distances of r = 0.0 between the +core and shell, a pair style with a "cs" suffix needs to be used to +implement a valid long-range Coulombic correction. Several such pair +styles are provided in the CORESHELL package. See "this doc +page"_pair_cs.html for details. All of the core/shell enabled pair +styles require the use of a long-range Coulombic solver, as specified +by the "kspace_style"_kspace_style.html command. Either the PPPM or +Ewald solvers can be used. + +For the NaCL example problem, these pair style and bond style settings +are used: + +pair_style born/coul/long/cs 20.0 20.0 +pair_coeff * * 0.0 1.000 0.00 0.00 0.00 +pair_coeff 3 3 487.0 0.23768 0.00 1.05 0.50 #Na-Na +pair_coeff 3 4 145134.0 0.23768 0.00 6.99 8.70 #Na-Cl +pair_coeff 4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl :pre + +bond_style harmonic +bond_coeff 1 63.014 0.0 +bond_coeff 2 25.724 0.0 :pre + +When running dynamics with the adiabatic core/shell model, the +following issues should be considered. The relative motion of +the core and shell particles corresponds to the polarization, +hereby an instantaneous relaxation of the shells is approximated +and a fast core/shell spring frequency ensures a nearly constant +internal kinetic energy during the simulation. +Thermostats can alter this polarization behaviour, by scaling the +internal kinetic energy, meaning the shell will not react freely to +its electrostatic environment. +Therefore it is typically desirable to decouple the relative motion of +the core/shell pair, which is an imaginary degree of freedom, from the +real physical system. To do that, the "compute +temp/cs"_compute_temp_cs.html command can be used, in conjunction with +any of the thermostat fixes, such as "fix nvt"_fix_nh.html or "fix +langevin"_fix_langevin. This compute uses the center-of-mass velocity +of the core/shell pairs to calculate a temperature, and insures that +velocity is what is rescaled for thermostatting purposes. This +compute also works for a system with both core/shell pairs and +non-polarized ions (ions without an attached satellite particle). The +"compute temp/cs"_compute_temp_cs.html command requires input of two +groups, one for the core atoms, another for the shell atoms. +Non-polarized ions which might also be included in the treated system +should not be included into either of these groups, they are taken +into account by the {group-ID} (2nd argument) of the compute. The +groups can be defined using the "group {type}"_group.html command. +Note that to perform thermostatting using this definition of +temperature, the "fix modify temp"_fix_modify.html command should be +used to assign the compute to the thermostat fix. Likewise the +"thermo_modify temp"_thermo_modify.html command can be used to make +this temperature be output for the overall system. + +For the NaCl example, this can be done as follows: + +group cores type 1 2 +group shells type 3 4 +compute CSequ all temp/cs cores shells +fix thermoberendsen all temp/berendsen 1427 1427 0.4 # thermostat for the true physical system +fix thermostatequ all nve # integrator as needed for the berendsen thermostat +fix_modify thermoberendsen temp CSequ +thermo_modify temp CSequ # output of center-of-mass derived temperature :pre + +The pressure for the core/shell system is computed via the regular +LAMMPS convention by "treating the cores and shells as individual +particles"_#MitchellFincham2. For the thermo output of the pressure +as well as for the application of a barostat, it is necessary to +use an additional "pressure"_compute_pressure compute based on the +default "temperature"_compute_temp and specifying it as a second +argument in "fix modify"_fix_modify.html and +"thermo_modify"_thermo_modify.html resulting in: + +(...) +compute CSequ all temp/cs cores shells +compute thermo_press_lmp all pressure thermo_temp # pressure for individual particles +thermo_modify temp CSequ press thermo_press_lmp # modify thermo to regular pressure +fix press_bar all npt temp 300 300 0.04 iso 0 0 0.4 +fix_modify press_bar temp CSequ press thermo_press_lmp # pressure modification for correct kinetic scalar :pre + +If "compute temp/cs"_compute_temp_cs.html is used, the decoupled +relative motion of the core and the shell should in theory be +stable. However numerical fluctuation can introduce a small +momentum to the system, which is noticable over long trajectories. +Therefore it is recommendable to use the "fix +momentum"_fix_momentum.html command in combination with "compute +temp/cs"_compute_temp_cs.html when equilibrating the system to +prevent any drift. + +When initializing the velocities of a system with core/shell pairs, it +is also desirable to not introduce energy into the relative motion of +the core/shell particles, but only assign a center-of-mass velocity to +the pairs. This can be done by using the {bias} keyword of the +"velocity create"_velocity.html command and assigning the "compute +temp/cs"_compute_temp_cs.html command to the {temp} keyword of the +"velocity"_velocity.html command, e.g. + +velocity all create 1427 134 bias yes temp CSequ +velocity all scale 1427 temp CSequ :pre + +To maintain the correct polarizability of the core/shell pairs, the +kinetic energy of the internal motion shall remain nearly constant. +Therefore the choice of spring force and mass ratio need to ensure +much faster relative motion of the 2 atoms within the core/shell pair +than their center-of-mass velocity. This allows the shells to +effectively react instantaneously to the electrostatic environment and +limits energy transfer to or from the core/shell oscillators. +This fast movement also dictates the timestep that can be used. + +The primary literature of the adiabatic core/shell model suggests that +the fast relative motion of the core/shell pairs only allows negligible +energy transfer to the environment. +The mentioned energy transfer will typically lead to a small drift +in total energy over time. This internal energy can be monitored +using the "compute chunk/atom"_compute_chunk_atom.html and "compute +temp/chunk"_compute_temp_chunk.html commands. The internal kinetic +energies of each core/shell pair can then be summed using the sum() +special function of the "variable"_variable.html command. Or they can +be time/averaged and output using the "fix ave/time"_fix_ave_time.html +command. To use these commands, each core/shell pair must be defined +as a "chunk". If each core/shell pair is defined as its own molecule, +the molecule ID can be used to define the chunks. If cores are bonded +to each other to form larger molecules, the chunks can be identified +by the "fix property/atom"_fix_property_atom.html via assigning a +core/shell ID to each atom using a special field in the data file read +by the "read_data"_read_data.html command. This field can then be +accessed by the "compute property/atom"_compute_property_atom.html +command, to use as input to the "compute +chunk/atom"_compute_chunk_atom.html command to define the core/shell +pairs as chunks. + +For example if core/shell pairs are the only molecules: + +read_data NaCl_CS_x0.1_prop.data +compute prop all property/atom molecule +compute cs_chunk all chunk/atom c_prop +compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0 # note the chosen degrees of freedom for the core/shell pairs +fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector :pre + +For example if core/shell pairs and other molecules are present: + +fix csinfo all property/atom i_CSID # property/atom command +read_data NaCl_CS_x0.1_prop.data fix csinfo NULL CS-Info # atom property added in the data-file +compute prop all property/atom i_CSID +(...) :pre + +The additional section in the date file would be formatted like this: + +CS-Info # header of additional section :pre + +1 1 # column 1 = atom ID, column 2 = core/shell ID +2 1 +3 2 +4 2 +5 3 +6 3 +7 4 +8 4 +(...) :pre + +:line + +:link(MitchellFincham) +[(Mitchell and Fincham)] Mitchell, Fincham, J Phys Condensed Matter, +5, 1031-1038 (1993). + +:link(MitchellFincham2) +[(Fincham)] Fincham, Mackrodt and Mitchell, J Phys Condensed Matter, +6, 393-404 (1994). diff --git a/doc/src/Howto_couple.txt b/doc/src/Howto_couple.txt new file mode 100644 index 0000000000..ec45bd1290 --- /dev/null +++ b/doc/src/Howto_couple.txt @@ -0,0 +1,105 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Coupling LAMMPS to other codes :h3 + +LAMMPS is designed to allow it to be coupled to other codes. For +example, a quantum mechanics code might compute forces on a subset of +atoms and pass those forces to LAMMPS. Or a continuum finite element +(FE) simulation might use atom positions as boundary conditions on FE +nodal points, compute a FE solution, and return interpolated forces on +MD atoms. + +LAMMPS can be coupled to other codes in at least 3 ways. Each has +advantages and disadvantages, which you'll have to think about in the +context of your application. + +(1) Define a new "fix"_fix.html command that calls the other code. In +this scenario, LAMMPS is the driver code. During its timestepping, +the fix is invoked, and can make library calls to the other code, +which has been linked to LAMMPS as a library. This is the way the +"POEMS"_poems package that performs constrained rigid-body motion on +groups of atoms is hooked to LAMMPS. See the "fix +poems"_fix_poems.html command for more details. See the +"Modify"_Modify.html doc pages for info on how to add a new fix to +LAMMPS. + +:link(poems,http://www.rpi.edu/~anderk5/lab) + +(2) Define a new LAMMPS command that calls the other code. This is +conceptually similar to method (1), but in this case LAMMPS and the +other code are on a more equal footing. Note that now the other code +is not called during the timestepping of a LAMMPS run, but between +runs. The LAMMPS input script can be used to alternate LAMMPS runs +with calls to the other code, invoked via the new command. The +"run"_run.html command facilitates this with its {every} option, which +makes it easy to run a few steps, invoke the command, run a few steps, +invoke the command, etc. + +In this scenario, the other code can be called as a library, as in +(1), or it could be a stand-alone code, invoked by a system() call +made by the command (assuming your parallel machine allows one or more +processors to start up another program). In the latter case the +stand-alone code could communicate with LAMMPS thru files that the +command writes and reads. + +See the "Modify command"_Modify_command.html doc page for info on how +to add a new command to LAMMPS. + +(3) Use LAMMPS as a library called by another code. In this case the +other code is the driver and calls LAMMPS as needed. Or a wrapper +code could link and call both LAMMPS and another code as libraries. +Again, the "run"_run.html command has options that allow it to be +invoked with minimal overhead (no setup or clean-up) if you wish to do +multiple short runs, driven by another program. + +Examples of driver codes that call LAMMPS as a library are included in +the examples/COUPLE directory of the LAMMPS distribution; see +examples/COUPLE/README for more details: + +simple: simple driver programs in C++ and C which invoke LAMMPS as a +library :ulb,l + +lammps_quest: coupling of LAMMPS and "Quest"_quest, to run classical +MD with quantum forces calculated by a density functional code :l + +lammps_spparks: coupling of LAMMPS and "SPPARKS"_spparks, to couple +a kinetic Monte Carlo model for grain growth using MD to calculate +strain induced across grain boundaries :l +:ule + +:link(quest,http://dft.sandia.gov/Quest) +:link(spparks,http://www.sandia.gov/~sjplimp/spparks.html) + +"This section"_Section_start.html#start_5 of the documentation +describes how to build LAMMPS as a library. Once this is done, you +can interface with LAMMPS either via C++, C, Fortran, or Python (or +any other language that supports a vanilla C-like interface). For +example, from C++ you could create one (or more) "instances" of +LAMMPS, pass it an input script to process, or execute individual +commands, all by invoking the correct class methods in LAMMPS. From C +or Fortran you can make function calls to do the same things. See the +"Python"_Python.html doc pages for a description of the Python wrapper +provided with LAMMPS that operates through the LAMMPS library +interface. + +The files src/library.cpp and library.h contain the C-style interface +to LAMMPS. See the "Howto library"_Howto_library.html doc page for a +description of the interface and how to extend it for your needs. + +Note that the lammps_open() function that creates an instance of +LAMMPS takes an MPI communicator as an argument. This means that +instance of LAMMPS will run on the set of processors in the +communicator. Thus the calling code can run LAMMPS on all or a subset +of processors. For example, a wrapper script might decide to +alternate between LAMMPS and another code, allowing them both to run +on all the processors. Or it might allocate half the processors to +LAMMPS and half to the other code and run both codes simultaneously +before syncing them up periodically. Or it might instantiate multiple +instances of LAMMPS to perform different calculations. diff --git a/doc/src/Howto_diffusion.txt b/doc/src/Howto_diffusion.txt new file mode 100644 index 0000000000..e0e16e1042 --- /dev/null +++ b/doc/src/Howto_diffusion.txt @@ -0,0 +1,31 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Calculate a diffusion coefficient :h3 + +The diffusion coefficient D of a material can be measured in at least +2 ways using various options in LAMMPS. See the examples/DIFFUSE +directory for scripts that implement the 2 methods discussed here for +a simple Lennard-Jones fluid model. + +The first method is to measure the mean-squared displacement (MSD) of +the system, via the "compute msd"_compute_msd.html command. The slope +of the MSD versus time is proportional to the diffusion coefficient. +The instantaneous MSD values can be accumulated in a vector via the +"fix vector"_fix_vector.html command, and a line fit to the vector to +compute its slope via the "variable slope"_variable.html function, and +thus extract D. + +The second method is to measure the velocity auto-correlation function +(VACF) of the system, via the "compute vacf"_compute_vacf.html +command. The time-integral of the VACF is proportional to the +diffusion coefficient. The instantaneous VACF values can be +accumulated in a vector via the "fix vector"_fix_vector.html command, +and time integrated via the "variable trap"_variable.html function, +and thus extract D. diff --git a/doc/src/Howto_dispersion.txt b/doc/src/Howto_dispersion.txt new file mode 100644 index 0000000000..000f45076d --- /dev/null +++ b/doc/src/Howto_dispersion.txt @@ -0,0 +1,108 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Long-raage dispersion settings :h3 + +The PPPM method computes interactions by splitting the pair potential +into two parts, one of which is computed in a normal pairwise fashion, +the so-called real-space part, and one of which is computed using the +Fourier transform, the so called reciprocal-space or kspace part. For +both parts, the potential is not computed exactly but is approximated. +Thus, there is an error in both parts of the computation, the +real-space and the kspace error. The just mentioned facts are true +both for the PPPM for Coulomb as well as dispersion interactions. The +deciding difference - and also the reason why the parameters for +pppm/disp have to be selected with more care - is the impact of the +errors on the results: The kspace error of the PPPM for Coulomb and +dispersion interaction and the real-space error of the PPPM for +Coulomb interaction have the character of noise. In contrast, the +real-space error of the PPPM for dispersion has a clear physical +interpretation: the underprediction of cohesion. As a consequence, the +real-space error has a much stronger effect than the kspace error on +simulation results for pppm/disp. Parameters must thus be chosen in a +way that this error is much smaller than the kspace error. + +When using pppm/disp and not making any specifications on the PPPM +parameters via the kspace modify command, parameters will be tuned +such that the real-space error and the kspace error are equal. This +will result in simulations that are either inaccurate or slow, both of +which is not desirable. For selecting parameters for the pppm/disp +that provide fast and accurate simulations, there are two approaches, +which both have their up- and downsides. + +The first approach is to set desired real-space an kspace accuracies +via the {kspace_modify force/disp/real} and {kspace_modify +force/disp/kspace} commands. Note that the accuracies have to be +specified in force units and are thus dependent on the chosen unit +settings. For real units, 0.0001 and 0.002 seem to provide reasonable +accurate and efficient computations for the real-space and kspace +accuracies. 0.002 and 0.05 work well for most systems using lj +units. PPPM parameters will be generated based on the desired +accuracies. The upside of this approach is that it usually provides a +good set of parameters and will work for both the {kspace_modify diff +ad} and {kspace_modify diff ik} options. The downside of the method +is that setting the PPPM parameters will take some time during the +initialization of the simulation. + +The second approach is to set the parameters for the pppm/disp +explicitly using the {kspace_modify mesh/disp}, {kspace_modify +order/disp}, and {kspace_modify gewald/disp} commands. This approach +requires a more experienced user who understands well the impact of +the choice of parameters on the simulation accuracy and +performance. This approach provides a fast initialization of the +simulation. However, it is sensitive to errors: A combination of +parameters that will perform well for one system might result in +far-from-optimal conditions for other simulations. For example, +parameters that provide accurate and fast computations for +all-atomistic force fields can provide insufficient accuracy or +united-atomistic force fields (which is related to that the latter +typically have larger dispersion coefficients). + +To avoid inaccurate or inefficient simulations, the pppm/disp stops +simulations with an error message if no action is taken to control the +PPPM parameters. If the automatic parameter generation is desired and +real-space and kspace accuracies are desired to be equal, this error +message can be suppressed using the {kspace_modify disp/auto yes} +command. + +A reasonable approach that combines the upsides of both methods is to +make the first run using the {kspace_modify force/disp/real} and +{kspace_modify force/disp/kspace} commands, write down the PPPM +parameters from the outut, and specify these parameters using the +second approach in subsequent runs (which have the same composition, +force field, and approximately the same volume). + +Concerning the performance of the pppm/disp there are two more things +to consider. The first is that when using the pppm/disp, the cutoff +parameter does no longer affect the accuracy of the simulation +(subject to that gewald/disp is adjusted when changing the cutoff). +The performance can thus be increased by examining different values +for the cutoff parameter. A lower bound for the cutoff is only set by +the truncation error of the repulsive term of pair potentials. + +The second is that the mixing rule of the pair style has an impact on +the computation time when using the pppm/disp. Fastest computations +are achieved when using the geometric mixing rule. Using the +arithmetic mixing rule substantially increases the computational cost. +The computational overhead can be reduced using the {kspace_modify +mix/disp geom} and {kspace_modify splittol} commands. The first +command simply enforces geometric mixing of the dispersion +coefficients in kspace computations. This introduces some error in +the computations but will also significantly speed-up the +simulations. The second keyword sets the accuracy with which the +dispersion coefficients are approximated using a matrix factorization +approach. This may result in better accuracy then using the first +command, but will usually also not provide an equally good increase of +efficiency. + +Finally, pppm/disp can also be used when no mixing rules apply. +This can be achieved using the {kspace_modify mix/disp none} command. +Note that the code does not check automatically whether any mixing +rule is fulfilled. If mixing rules do not apply, the user will have +to specify this command explicitly. diff --git a/doc/src/Howto_drude.txt b/doc/src/Howto_drude.txt new file mode 100644 index 0000000000..e9c30db772 --- /dev/null +++ b/doc/src/Howto_drude.txt @@ -0,0 +1,77 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Drude induced dipoles :h3 + +The thermalized Drude model represents induced dipoles by a pair of +charges (the core atom and the Drude particle) connected by a harmonic +spring. See the "Howto polarizable"_Howto_polarizable.html doc page +for a discussion of all the polarizable models available in LAMMPS. + +The Drude model has a number of features aimed at its use in +molecular systems ("Lamoureux and Roux"_#howto-Lamoureux): + +Thermostating of the additional degrees of freedom associated with the +induced dipoles at very low temperature, in terms of the reduced +coordinates of the Drude particles with respect to their cores. This +makes the trajectory close to that of relaxed induced dipoles. :ulb,l + +Consistent definition of 1-2 to 1-4 neighbors. A core-Drude particle +pair represents a single (polarizable) atom, so the special screening +factors in a covalent structure should be the same for the core and +the Drude particle. Drude particles have to inherit the 1-2, 1-3, 1-4 +special neighbor relations from their respective cores. :l + +Stabilization of the interactions between induced dipoles. Drude +dipoles on covalently bonded atoms interact too strongly due to the +short distances, so an atom may capture the Drude particle of a +neighbor, or the induced dipoles within the same molecule may align +too much. To avoid this, damping at short range can be done by Thole +functions (for which there are physical grounds). This Thole damping +is applied to the point charges composing the induced dipole (the +charge of the Drude particle and the opposite charge on the core, not +to the total charge of the core atom). :l,ule + +A detailed tutorial covering the usage of Drude induced dipoles in +LAMMPS is on the "Howto drude2e"_Howto_drude2.html doc page. + +As with the core-shell model, the cores and Drude particles should +appear in the data file as standard atoms. The same holds for the +springs between them, which are described by standard harmonic bonds. +The nature of the atoms (core, Drude particle or non-polarizable) is +specified via the "fix drude"_fix_drude.html command. The special +list of neighbors is automatically refactored to account for the +equivalence of core and Drude particles as regards special 1-2 to 1-4 +screening. It may be necessary to use the {extra/special/per/atom} +keyword of the "read_data"_read_data.html command. If using "fix +shake"_fix_shake.html, make sure no Drude particle is in this fix +group. + +There are two ways to thermostat the Drude particles at a low +temperature: use either "fix langevin/drude"_fix_langevin_drude.html +for a Langevin thermostat, or "fix +drude/transform/*"_fix_drude_transform.html for a Nose-Hoover +thermostat. The former requires use of the command "comm_modify vel +yes"_comm_modify.html. The latter requires two separate integration +fixes like {nvt} or {npt}. The correct temperatures of the reduced +degrees of freedom can be calculated using the "compute +temp/drude"_compute_temp_drude.html. This requires also to use the +command {comm_modify vel yes}. + +Short-range damping of the induced dipole interactions can be achieved +using Thole functions through the "pair style +thole"_pair_thole.html in "pair_style hybrid/overlay"_pair_hybrid.html +with a Coulomb pair style. It may be useful to use {coul/long/cs} or +similar from the CORESHELL package if the core and Drude particle come +too close, which can cause numerical issues. + +:line + +:link(howto-Lamoureux) +[(Lamoureux and Roux)] G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003) diff --git a/doc/src/tutorial_drude.txt b/doc/src/Howto_drude2.txt similarity index 100% rename from doc/src/tutorial_drude.txt rename to doc/src/Howto_drude2.txt diff --git a/doc/src/Howto_elastic.txt b/doc/src/Howto_elastic.txt new file mode 100644 index 0000000000..4dda13fa53 --- /dev/null +++ b/doc/src/Howto_elastic.txt @@ -0,0 +1,47 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Calculate elastic constants :h3 + +Elastic constants characterize the stiffness of a material. The formal +definition is provided by the linear relation that holds between the +stress and strain tensors in the limit of infinitesimal deformation. +In tensor notation, this is expressed as s_ij = C_ijkl * e_kl, where +the repeated indices imply summation. s_ij are the elements of the +symmetric stress tensor. e_kl are the elements of the symmetric strain +tensor. C_ijkl are the elements of the fourth rank tensor of elastic +constants. In three dimensions, this tensor has 3^4=81 elements. Using +Voigt notation, the tensor can be written as a 6x6 matrix, where C_ij +is now the derivative of s_i w.r.t. e_j. Because s_i is itself a +derivative w.r.t. e_i, it follows that C_ij is also symmetric, with at +most 7*6/2 = 21 distinct elements. + +At zero temperature, it is easy to estimate these derivatives by +deforming the simulation box in one of the six directions using the +"change_box"_change_box.html command and measuring the change in the +stress tensor. A general-purpose script that does this is given in the +examples/elastic directory described on the "Examples"_Examples.html +doc page. + +Calculating elastic constants at finite temperature is more +challenging, because it is necessary to run a simulation that perfoms +time averages of differential properties. One way to do this is to +measure the change in average stress tensor in an NVT simulations when +the cell volume undergoes a finite deformation. In order to balance +the systematic and statistical errors in this method, the magnitude of +the deformation must be chosen judiciously, and care must be taken to +fully equilibrate the deformed cell before sampling the stress +tensor. Another approach is to sample the triclinic cell fluctuations +that occur in an NPT simulation. This method can also be slow to +converge and requires careful post-processing "(Shinoda)"_#Shinoda1 + +:line + +:link(Shinoda1) +[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004). diff --git a/doc/src/tutorial_github.txt b/doc/src/Howto_github.txt similarity index 98% rename from doc/src/tutorial_github.txt rename to doc/src/Howto_github.txt index fc261bdb95..191242205e 100644 --- a/doc/src/tutorial_github.txt +++ b/doc/src/Howto_github.txt @@ -25,8 +25,8 @@ or improvements to LAMMPS, as it significantly reduces the amount of work required by the LAMMPS developers. Consequently, creating a pull request will increase your chances to have your contribution included and will reduce the time until the integration is complete. For more -information on the requirements to have your code included in LAMMPS, -see the "Modify contribute"_Modify_contribute.html doc page. +information on the requirements to have your code included into LAMMPS +please see the "Modify contribute"_Modify_contribute.html doc page. :line @@ -124,7 +124,7 @@ unrelated feature, you should switch branches! After everything is done, add the files to the branch and commit them: - $ git add doc/src/tutorial_github.txt + $ git add doc/src/Howto_github.txt $ git add doc/src/JPG/tutorial*.png :pre IMPORTANT NOTE: Do not use {git commit -a} (or {git add -A}). The -a @@ -318,7 +318,7 @@ Because the changes are OK with us, we are going to merge by clicking on Now, since in the meantime our local text for the tutorial also changed, we need to pull Axel's change back into our branch, and merge them: - $ git add tutorial_github.txt + $ git add Howto_github.txt $ git add JPG/tutorial_reverse_pull_request*.png $ git commit -m "Updated text and images on reverse pull requests" $ git pull :pre @@ -331,7 +331,7 @@ With Axel's changes merged in and some final text updates, our feature branch is now perfect as far as we are concerned, so we are going to commit and push again: - $ git add tutorial_github.txt + $ git add Howto_github.txt $ git add JPG/tutorial_reverse_pull_request6.png $ git commit -m "Merged Axel's suggestions and updated text" $ git push git@github.com:Pakketeretet2/lammps :pre diff --git a/doc/src/Howto_granular.txt b/doc/src/Howto_granular.txt new file mode 100644 index 0000000000..cfa01bcb63 --- /dev/null +++ b/doc/src/Howto_granular.txt @@ -0,0 +1,57 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Granular models :h3 + +Granular system are composed of spherical particles with a diameter, +as opposed to point particles. This means they have an angular +velocity and torque can be imparted to them to cause them to rotate. + +To run a simulation of a granular model, you will want to use +the following commands: + +"atom_style sphere"_atom_style.html +"fix nve/sphere"_fix_nve_sphere.html +"fix gravity"_fix_gravity.html :ul + +This compute + +"compute erotate/sphere"_compute_erotate_sphere.html :ul + +calculates rotational kinetic energy which can be "output with +thermodynamic info"_Howto_output.html. + +Use one of these 3 pair potentials, which compute forces and torques +between interacting pairs of particles: + +"pair_style"_pair_style.html gran/history +"pair_style"_pair_style.html gran/no_history +"pair_style"_pair_style.html gran/hertzian :ul + +These commands implement fix options specific to granular systems: + +"fix freeze"_fix_freeze.html +"fix pour"_fix_pour.html +"fix viscous"_fix_viscous.html +"fix wall/gran"_fix_wall_gran.html :ul + +The fix style {freeze} zeroes both the force and torque of frozen +atoms, and should be used for granular system instead of the fix style +{setforce}. + +For computational efficiency, you can eliminate needless pairwise +computations between frozen atoms by using this command: + +"neigh_modify"_neigh_modify.html exclude :ul + +NOTE: By default, for 2d systems, granular particles are still modeled +as 3d spheres, not 2d discs (circles), meaning their moment of inertia +will be the same as in 3d. If you wish to model granular particles in +2d as 2d discs, see the note on this topic on the "Howto 2d"_Howto_2d +doc page, where 2d simulations are discussed. diff --git a/doc/src/Howto_kappa.txt b/doc/src/Howto_kappa.txt new file mode 100644 index 0000000000..949901f21a --- /dev/null +++ b/doc/src/Howto_kappa.txt @@ -0,0 +1,90 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Calculate thermal conductivity :h3 + +The thermal conductivity kappa of a material can be measured in at +least 4 ways using various options in LAMMPS. See the examples/KAPPA +directory for scripts that implement the 4 methods discussed here for +a simple Lennard-Jones fluid model. Also, see the "Howto +viscosity"_Howto_viscosity.html doc page for an analogous discussion +for viscosity. + +The thermal conductivity tensor kappa is a measure of the propensity +of a material to transmit heat energy in a diffusive manner as given +by Fourier's law + +J = -kappa grad(T) + +where J is the heat flux in units of energy per area per time and +grad(T) is the spatial gradient of temperature. The thermal +conductivity thus has units of energy per distance per time per degree +K and is often approximated as an isotropic quantity, i.e. as a +scalar. + +The first method is to setup two thermostatted regions at opposite +ends of a simulation box, or one in the middle and one at the end of a +periodic box. By holding the two regions at different temperatures +with a "thermostatting fix"_Howto_thermostat.html, the energy added to +the hot region should equal the energy subtracted from the cold region +and be proportional to the heat flux moving between the regions. See +the papers by "Ikeshoji and Hafskjold"_#howto-Ikeshoji and +"Wirnsberger et al"_#howto-Wirnsberger for details of this idea. Note +that thermostatting fixes such as "fix nvt"_fix_nh.html, "fix +langevin"_fix_langevin.html, and "fix +temp/rescale"_fix_temp_rescale.html store the cumulative energy they +add/subtract. + +Alternatively, as a second method, the "fix heat"_fix_heat.html or +"fix ehex"_fix_ehex.html commands can be used in place of thermostats +on each of two regions to add/subtract specified amounts of energy to +both regions. In both cases, the resulting temperatures of the two +regions can be monitored with the "compute temp/region" command and +the temperature profile of the intermediate region can be monitored +with the "fix ave/chunk"_fix_ave_chunk.html and "compute +ke/atom"_compute_ke_atom.html commands. + +The third method is to perform a reverse non-equilibrium MD simulation +using the "fix thermal/conductivity"_fix_thermal_conductivity.html +command which implements the rNEMD algorithm of Muller-Plathe. +Kinetic energy is swapped between atoms in two different layers of the +simulation box. This induces a temperature gradient between the two +layers which can be monitored with the "fix +ave/chunk"_fix_ave_chunk.html and "compute +ke/atom"_compute_ke_atom.html commands. The fix tallies the +cumulative energy transfer that it performs. See the "fix +thermal/conductivity"_fix_thermal_conductivity.html command for +details. + +The fourth method is based on the Green-Kubo (GK) formula which +relates the ensemble average of the auto-correlation of the heat flux +to kappa. The heat flux can be calculated from the fluctuations of +per-atom potential and kinetic energies and per-atom stress tensor in +a steady-state equilibrated simulation. This is in contrast to the +two preceding non-equilibrium methods, where energy flows continuously +between hot and cold regions of the simulation box. + +The "compute heat/flux"_compute_heat_flux.html command can calculate +the needed heat flux and describes how to implement the Green_Kubo +formalism using additional LAMMPS commands, such as the "fix +ave/correlate"_fix_ave_correlate.html command to calculate the needed +auto-correlation. See the doc page for the "compute +heat/flux"_compute_heat_flux.html command for an example input script +that calculates the thermal conductivity of solid Ar via the GK +formalism. + +:line + +:link(howto-Ikeshoji) +[(Ikeshoji)] Ikeshoji and Hafskjold, Molecular Physics, 81, 251-261 +(1994). + +:link(howto-Wirnsberger) +[(Wirnsberger)] Wirnsberger, Frenkel, and Dellago, J Chem Phys, 143, 124104 +(2015). diff --git a/doc/src/Howto_library.txt b/doc/src/Howto_library.txt new file mode 100644 index 0000000000..b15aadd214 --- /dev/null +++ b/doc/src/Howto_library.txt @@ -0,0 +1,208 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Library interface to LAMMPS :h3 + +As described in "Section 2.5"_Section_start.html#start_5, LAMMPS can +be built as a library, so that it can be called by another code, used +in a "coupled manner"_Howto_couple.html with other codes, or driven +through a "Python interface"_Python.html. + +All of these methodologies use a C-style interface to LAMMPS that is +provided in the files src/library.cpp and src/library.h. The +functions therein have a C-style argument list, but contain C++ code +you could write yourself in a C++ application that was invoking LAMMPS +directly. The C++ code in the functions illustrates how to invoke +internal LAMMPS operations. Note that LAMMPS classes are defined +within a LAMMPS namespace (LAMMPS_NS) if you use them from another C++ +application. + +The examples/COUPLE and python/examples directories have example C++ +and C and Python codes which show how a driver code can link to LAMMPS +as a library, run LAMMPS on a subset of processors, grab data from +LAMMPS, change it, and put it back into LAMMPS. + +The file src/library.cpp contains the following functions for creating +and destroying an instance of LAMMPS and sending it commands to +execute. See the documentation in the src/library.cpp file for +details. + +NOTE: You can write code for additional functions as needed to define +how your code talks to LAMMPS and add them to src/library.cpp and +src/library.h, as well as to the "Python interface"_Python.html. The +added functions can access or change any internal LAMMPS data you +wish. + +void lammps_open(int, char **, MPI_Comm, void **) +void lammps_open_no_mpi(int, char **, void **) +void lammps_close(void *) +int lammps_version(void *) +void lammps_file(void *, char *) +char *lammps_command(void *, char *) +void lammps_commands_list(void *, int, char **) +void lammps_commands_string(void *, char *) +void lammps_free(void *) :pre + +The lammps_open() function is used to initialize LAMMPS, passing in a +list of strings as if they were "command-line +arguments"_Section_start.html#start_6 when LAMMPS is run in +stand-alone mode from the command line, and a MPI communicator for +LAMMPS to run under. It returns a ptr to the LAMMPS object that is +created, and which is used in subsequent library calls. The +lammps_open() function can be called multiple times, to create +multiple instances of LAMMPS. + +LAMMPS will run on the set of processors in the communicator. This +means the calling code can run LAMMPS on all or a subset of +processors. For example, a wrapper script might decide to alternate +between LAMMPS and another code, allowing them both to run on all the +processors. Or it might allocate half the processors to LAMMPS and +half to the other code and run both codes simultaneously before +syncing them up periodically. Or it might instantiate multiple +instances of LAMMPS to perform different calculations. + +The lammps_open_no_mpi() function is similar except that no MPI +communicator is passed from the caller. Instead, MPI_COMM_WORLD is +used to instantiate LAMMPS, and MPI is initialized if necessary. + +The lammps_close() function is used to shut down an instance of LAMMPS +and free all its memory. + +The lammps_version() function can be used to determined the specific +version of the underlying LAMMPS code. This is particularly useful +when loading LAMMPS as a shared library via dlopen(). The code using +the library interface can than use this information to adapt to +changes to the LAMMPS command syntax between versions. The returned +LAMMPS version code is an integer (e.g. 2 Sep 2015 results in +20150902) that grows with every new LAMMPS version. + +The lammps_file(), lammps_command(), lammps_commands_list(), and +lammps_commands_string() functions are used to pass one or more +commands to LAMMPS to execute, the same as if they were coming from an +input script. + +Via these functions, the calling code can read or generate a series of +LAMMPS commands one or multiple at a time and pass it thru the library +interface to setup a problem and then run it in stages. The caller +can interleave the command function calls with operations it performs, +calls to extract information from or set information within LAMMPS, or +calls to another code's library. + +The lammps_file() function passes the filename of an input script. +The lammps_command() function passes a single command as a string. +The lammps_commands_list() function passes multiple commands in a +char** list. In both lammps_command() and lammps_commands_list(), +individual commands may or may not have a trailing newline. The +lammps_commands_string() function passes multiple commands +concatenated into one long string, separated by newline characters. +In both lammps_commands_list() and lammps_commands_string(), a single +command can be spread across multiple lines, if the last printable +character of all but the last line is "&", the same as if the lines +appeared in an input script. + +The lammps_free() function is a clean-up function to free memory that +the library allocated previously via other function calls. See +comments in src/library.cpp file for which other functions need this +clean-up. + +The file src/library.cpp also contains these functions for extracting +information from LAMMPS and setting value within LAMMPS. Again, see +the documentation in the src/library.cpp file for details, including +which quantities can be queried by name: + +int lammps_extract_setting(void *, char *) +void *lammps_extract_global(void *, char *) +void lammps_extract_box(void *, double *, double *, + double *, double *, double *, int *, int *) +void *lammps_extract_atom(void *, char *) +void *lammps_extract_compute(void *, char *, int, int) +void *lammps_extract_fix(void *, char *, int, int, int, int) +void *lammps_extract_variable(void *, char *, char *) :pre + +The extract_setting() function returns info on the size +of data types (e.g. 32-bit or 64-bit atom IDs) used +by the LAMMPS executable (a compile-time choice). + +The other extract functions return a pointer to various global or +per-atom quantities stored in LAMMPS or to values calculated by a +compute, fix, or variable. The pointer returned by the +extract_global() function can be used as a permanent reference to a +value which may change. For the extract_atom() method, see the +extract() method in the src/atom.cpp file for a list of valid per-atom +properties. New names could easily be added if the property you want +is not listed. For the other extract functions, the underlying +storage may be reallocated as LAMMPS runs, so you need to re-call the +function to assure a current pointer or returned value(s). + +double lammps_get_thermo(void *, char *) +int lammps_get_natoms(void *) :pre + +int lammps_set_variable(void *, char *, char *) +void lammps_reset_box(void *, double *, double *, double, double, double) :pre + +The lammps_get_thermo() function returns the current value of a thermo +keyword as a double precision value. + +The lammps_get_natoms() function returns the total number of atoms in +the system and can be used by the caller to allocate memory for the +lammps_gather_atoms() and lammps_scatter_atoms() functions. + +The lammps_set_variable() function can set an existing string-style +variable to a new string value, so that subsequent LAMMPS commands can +access the variable. + +The lammps_reset_box() function resets the size and shape of the +simulation box, e.g. as part of restoring a previously extracted and +saved state of a simulation. + +void lammps_gather_atoms(void *, char *, int, int, void *) +void lammps_gather_atoms_concat(void *, char *, int, int, void *) +void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *) +void lammps_scatter_atoms(void *, char *, int, int, void *) +void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *) :pre + +void lammps_create_atoms(void *, int, tagint *, int *, double *, double *, + imageint *, int) :pre + +The gather functions collect peratom info of the requested type (atom +coords, atom types, forces, etc) from all processors, and returns the +same vector of values to each callling processor. The scatter +functions do the inverse. They distribute a vector of peratom values, +passed by all calling processors, to invididual atoms, which may be +owned by different processos. + +The lammps_gather_atoms() function does this for all N atoms in the +system, ordered by atom ID, from 1 to N. The +lammps_gather_atoms_concat() function does it for all N atoms, but +simply concatenates the subset of atoms owned by each processor. The +resulting vector is not ordered by atom ID. Atom IDs can be requetsed +by the same function if the caller needs to know the ordering. The +lammps_gather_subset() function allows the caller to request values +for only a subset of atoms (identified by ID). +For all 3 gather function, per-atom image flags can be retrieved in 2 ways. +If the count is specified as 1, they are returned +in a packed format with all three image flags stored in a single integer. +If the count is specified as 3, the values are unpacked into xyz flags +by the library before returning them. + +The lammps_scatter_atoms() function takes a list of values for all N +atoms in the system, ordered by atom ID, from 1 to N, and assigns +those values to each atom in the system. The +lammps_scatter_atoms_subset() function takes a subset of IDs as an +argument and only scatters those values to the owning atoms. + +The lammps_create_atoms() function takes a list of N atoms as input +with atom types and coords (required), an optionally atom IDs and +velocities and image flags. It uses the coords of each atom to assign +it as a new atom to the processor that owns it. This function is +useful to add atoms to a simulation or (in tandem with +lammps_reset_box()) to restore a previously extracted and saved state +of a simulation. Additional properties for the new atoms can then be +assigned via the lammps_scatter_atoms() or lammps_extract_atom() +functions. diff --git a/doc/src/Howto_manifold.txt b/doc/src/Howto_manifold.txt new file mode 100644 index 0000000000..c9bb1ce57f --- /dev/null +++ b/doc/src/Howto_manifold.txt @@ -0,0 +1,41 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Manifolds (surfaces) :h3 + +[Overview:] + +This doc page is not about a LAMMPS input script command, but about +manifolds, which are generalized surfaces, as defined and used by the +USER-MANIFOLD package, to track particle motion on the manifolds. See +the src/USER-MANIFOLD/README file for more details about the package +and its commands. + +Below is a list of currently supported manifolds by the USER-MANIFOLD +package, their parameters and a short description of them. The +parameters listed here are in the same order as they should be passed +to the relevant fixes. + +{manifold} @ {parameters} @ {equation} @ {description} +cylinder @ R @ x^2 + y^2 - R^2 = 0 @ Cylinder along z-axis, axis going through (0,0,0) +cylinder_dent @ R l a @ x^2 + y^2 - r(z)^2 = 0, r(x) = R if | z | > l, r(z) = R - a*(1 + cos(z/l))/2 otherwise @ A cylinder with a dent around z = 0 +dumbbell @ a A B c @ -( x^2 + y^2 ) + (a^2 - z^2/c^2) * ( 1 + (A*sin(B*z^2))^4) = 0 @ A dumbbell +ellipsoid @ a b c @ (x/a)^2 + (y/b)^2 + (z/c)^2 = 0 @ An ellipsoid +gaussian_bump @ A l rc1 rc2 @ if( x < rc1) -z + A * exp( -x^2 / (2 l^2) ); else if( x < rc2 ) -z + a + b*x + c*x^2 + d*x^3; else z @ A Gaussian bump at x = y = 0, smoothly tapered to a flat plane z = 0. +plane @ a b c x0 y0 z0 @ a*(x-x0) + b*(y-y0) + c*(z-z0) = 0 @ A plane with normal (a,b,c) going through point (x0,y0,z0) +plane_wiggle @ a w @ z - a*sin(w*x) = 0 @ A plane with a sinusoidal modulation on z along x. +sphere @ R @ x^2 + y^2 + z^2 - R^2 = 0 @ A sphere of radius R +supersphere @ R q @ | x |^q + | y |^q + | z |^q - R^q = 0 @ A supersphere of hyperradius R +spine @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^4), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ An approximation to a dendtritic spine +spine_two @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^2), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ Another approximation to a dendtritic spine +thylakoid @ wB LB lB @ Various, see "(Paquay)"_#Paquay1 @ A model grana thylakoid consisting of two block-like compartments connected by a bridge of width wB, length LB and taper length lB +torus @ R r @ (R - sqrt( x^2 + y^2 ) )^2 + z^2 - r^2 @ A torus with large radius R and small radius r, centered on (0,0,0) :tb(s=@) + +:link(Paquay1) +[(Paquay)] Paquay and Kusters, Biophys. J., 110, 6, (2016). +preprint available at "arXiv:1411.3019"_http://arxiv.org/abs/1411.3019/. diff --git a/doc/src/Howto_multiple.txt b/doc/src/Howto_multiple.txt new file mode 100644 index 0000000000..3516debb71 --- /dev/null +++ b/doc/src/Howto_multiple.txt @@ -0,0 +1,95 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Run multiple simulations from one input script :h3 + +This can be done in several ways. See the documentation for +individual commands for more details on how these examples work. + +If "multiple simulations" means continue a previous simulation for +more timesteps, then you simply use the "run"_run.html command +multiple times. For example, this script + +units lj +atom_style atomic +read_data data.lj +run 10000 +run 10000 +run 10000 +run 10000 +run 10000 :pre + +would run 5 successive simulations of the same system for a total of +50,000 timesteps. + +If you wish to run totally different simulations, one after the other, +the "clear"_clear.html command can be used in between them to +re-initialize LAMMPS. For example, this script + +units lj +atom_style atomic +read_data data.lj +run 10000 +clear +units lj +atom_style atomic +read_data data.lj.new +run 10000 :pre + +would run 2 independent simulations, one after the other. + +For large numbers of independent simulations, you can use +"variables"_variable.html and the "next"_next.html and +"jump"_jump.html commands to loop over the same input script +multiple times with different settings. For example, this +script, named in.polymer + +variable d index run1 run2 run3 run4 run5 run6 run7 run8 +shell cd $d +read_data data.polymer +run 10000 +shell cd .. +clear +next d +jump in.polymer :pre + +would run 8 simulations in different directories, using a data.polymer +file in each directory. The same concept could be used to run the +same system at 8 different temperatures, using a temperature variable +and storing the output in different log and dump files, for example + +variable a loop 8 +variable t index 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15 +log log.$a +read data.polymer +velocity all create $t 352839 +fix 1 all nvt $t $t 100.0 +dump 1 all atom 1000 dump.$a +run 100000 +clear +next t +next a +jump in.polymer :pre + +All of the above examples work whether you are running on 1 or +multiple processors, but assumed you are running LAMMPS on a single +partition of processors. LAMMPS can be run on multiple partitions via +the "-partition" command-line switch as described in "this +section"_Section_start.html#start_6 of the manual. + +In the last 2 examples, if LAMMPS were run on 3 partitions, the same +scripts could be used if the "index" and "loop" variables were +replaced with {universe}-style variables, as described in the +"variable"_variable.html command. Also, the "next t" and "next a" +commands would need to be replaced with a single "next a t" command. +With these modifications, the 8 simulations of each script would run +on the 3 partitions one after the other until all were finished. +Initially, 3 simulations would be started simultaneously, one on each +partition. When one finished, that partition would then start +the 4th simulation, and so forth, until all 8 were completed. diff --git a/doc/src/Howto_nemd.txt b/doc/src/Howto_nemd.txt new file mode 100644 index 0000000000..efb3a5cd73 --- /dev/null +++ b/doc/src/Howto_nemd.txt @@ -0,0 +1,48 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +NEMD simulations :h3 + +Non-equilibrium molecular dynamics or NEMD simulations are typically +used to measure a fluid's rheological properties such as viscosity. +In LAMMPS, such simulations can be performed by first setting up a +non-orthogonal simulation box (see the preceding Howto section). + +A shear strain can be applied to the simulation box at a desired +strain rate by using the "fix deform"_fix_deform.html command. The +"fix nvt/sllod"_fix_nvt_sllod.html command can be used to thermostat +the sheared fluid and integrate the SLLOD equations of motion for the +system. Fix nvt/sllod uses "compute +temp/deform"_compute_temp_deform.html to compute a thermal temperature +by subtracting out the streaming velocity of the shearing atoms. The +velocity profile or other properties of the fluid can be monitored via +the "fix ave/chunk"_fix_ave_chunk.html command. + +As discussed in the previous section on non-orthogonal simulation +boxes, the amount of tilt or skew that can be applied is limited by +LAMMPS for computational efficiency to be 1/2 of the parallel box +length. However, "fix deform"_fix_deform.html can continuously strain +a box by an arbitrary amount. As discussed in the "fix +deform"_fix_deform.html command, when the tilt value reaches a limit, +the box is flipped to the opposite limit which is an equivalent tiling +of periodic space. The strain rate can then continue to change as +before. In a long NEMD simulation these box re-shaping events may +occur many times. + +In a NEMD simulation, the "remap" option of "fix +deform"_fix_deform.html should be set to "remap v", since that is what +"fix nvt/sllod"_fix_nvt_sllod.html assumes to generate a velocity +profile consistent with the applied shear strain rate. + +An alternative method for calculating viscosities is provided via the +"fix viscosity"_fix_viscosity.html command. + +NEMD simulations can also be used to measure transport properties of a fluid +through a pore or channel. Simulations of steady-state flow can be performed +using the "fix flow/gauss"_fix_flow_gauss.html command. diff --git a/doc/src/Howto_output.txt b/doc/src/Howto_output.txt new file mode 100644 index 0000000000..ed2a78ee19 --- /dev/null +++ b/doc/src/Howto_output.txt @@ -0,0 +1,307 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Output from LAMMPS (thermo, dumps, computes, fixes, variables) :h3 + +There are four basic kinds of LAMMPS output: + +"Thermodynamic output"_thermo_style.html, which is a list +of quantities printed every few timesteps to the screen and logfile. :ulb,l + +"Dump files"_dump.html, which contain snapshots of atoms and various +per-atom values and are written at a specified frequency. :l + +Certain fixes can output user-specified quantities to files: "fix +ave/time"_fix_ave_time.html for time averaging, "fix +ave/chunk"_fix_ave_chunk.html for spatial or other averaging, and "fix +print"_fix_print.html for single-line output of +"variables"_variable.html. Fix print can also output to the +screen. :l + +"Restart files"_restart.html. :l +:ule + +A simulation prints one set of thermodynamic output and (optionally) +restart files. It can generate any number of dump files and fix +output files, depending on what "dump"_dump.html and "fix"_fix.html +commands you specify. + +As discussed below, LAMMPS gives you a variety of ways to determine +what quantities are computed and printed when the thermodynamics, +dump, or fix commands listed above perform output. Throughout this +discussion, note that users can also "add their own computes and fixes +to LAMMPS"_Modify.html which can then generate values that can then be +output with these commands. + +The following sub-sections discuss different LAMMPS command related +to output and the kind of data they operate on and produce: + +"Global/per-atom/local data"_#global +"Scalar/vector/array data"_#scalar +"Thermodynamic output"_#thermo +"Dump file output"_#dump +"Fixes that write output files"_#fixoutput +"Computes that process output quantities"_#computeoutput +"Fixes that process output quantities"_#fixprocoutput +"Computes that generate values to output"_#compute +"Fixes that generate values to output"_#fix +"Variables that generate values to output"_#variable +"Summary table of output options and data flow between commands"_#table :ul + +Global/per-atom/local data :h4,link(global) + +Various output-related commands work with three different styles of +data: global, per-atom, or local. A global datum is one or more +system-wide values, e.g. the temperature of the system. A per-atom +datum is one or more values per atom, e.g. the kinetic energy of each +atom. Local datums are calculated by each processor based on the +atoms it owns, but there may be zero or more per atom, e.g. a list of +bond distances. + +Scalar/vector/array data :h4,link(scalar) + +Global, per-atom, and local datums can each come in three kinds: a +single scalar value, a vector of values, or a 2d array of values. The +doc page for a "compute" or "fix" or "variable" that generates data +will specify both the style and kind of data it produces, e.g. a +per-atom vector. + +When a quantity is accessed, as in many of the output commands +discussed below, it can be referenced via the following bracket +notation, where ID in this case is the ID of a compute. The leading +"c_" would be replaced by "f_" for a fix, or "v_" for a variable: + +c_ID | entire scalar, vector, or array +c_ID\[I\] | one element of vector, one column of array +c_ID\[I\]\[J\] | one element of array :tb(s=|) + +In other words, using one bracket reduces the dimension of the data +once (vector -> scalar, array -> vector). Using two brackets reduces +the dimension twice (array -> scalar). Thus a command that uses +scalar values as input can typically also process elements of a vector +or array. + +Thermodynamic output :h4,link(thermo) + +The frequency and format of thermodynamic output is set by the +"thermo"_thermo.html, "thermo_style"_thermo_style.html, and +"thermo_modify"_thermo_modify.html commands. The +"thermo_style"_thermo_style.html command also specifies what values +are calculated and written out. Pre-defined keywords can be specified +(e.g. press, etotal, etc). Three additional kinds of keywords can +also be specified (c_ID, f_ID, v_name), where a "compute"_compute.html +or "fix"_fix.html or "variable"_variable.html provides the value to be +output. In each case, the compute, fix, or variable must generate +global values for input to the "thermo_style custom"_dump.html +command. + +Note that thermodynamic output values can be "extensive" or +"intensive". The former scale with the number of atoms in the system +(e.g. total energy), the latter do not (e.g. temperature). The +setting for "thermo_modify norm"_thermo_modify.html determines whether +extensive quantities are normalized or not. Computes and fixes +produce either extensive or intensive values; see their individual doc +pages for details. "Equal-style variables"_variable.html produce only +intensive values; you can include a division by "natoms" in the +formula if desired, to make an extensive calculation produce an +intensive result. + +Dump file output :h4,link(dump) + +Dump file output is specified by the "dump"_dump.html and +"dump_modify"_dump_modify.html commands. There are several +pre-defined formats (dump atom, dump xtc, etc). + +There is also a "dump custom"_dump.html format where the user +specifies what values are output with each atom. Pre-defined atom +attributes can be specified (id, x, fx, etc). Three additional kinds +of keywords can also be specified (c_ID, f_ID, v_name), where a +"compute"_compute.html or "fix"_fix.html or "variable"_variable.html +provides the values to be output. In each case, the compute, fix, or +variable must generate per-atom values for input to the "dump +custom"_dump.html command. + +There is also a "dump local"_dump.html format where the user specifies +what local values to output. A pre-defined index keyword can be +specified to enumerate the local values. Two additional kinds of +keywords can also be specified (c_ID, f_ID), where a +"compute"_compute.html or "fix"_fix.html or "variable"_variable.html +provides the values to be output. In each case, the compute or fix +must generate local values for input to the "dump local"_dump.html +command. + +Fixes that write output files :h4,link(fixoutput) + +Several fixes take various quantities as input and can write output +files: "fix ave/time"_fix_ave_time.html, "fix +ave/chunk"_fix_ave_chunk.html, "fix ave/histo"_fix_ave_histo.html, +"fix ave/correlate"_fix_ave_correlate.html, and "fix +print"_fix_print.html. + +The "fix ave/time"_fix_ave_time.html command enables direct output to +a file and/or time-averaging of global scalars or vectors. The user +specifies one or more quantities as input. These can be global +"compute"_compute.html values, global "fix"_fix.html values, or +"variables"_variable.html of any style except the atom style which +produces per-atom values. Since a variable can refer to keywords used +by the "thermo_style custom"_thermo_style.html command (like temp or +press) and individual per-atom values, a wide variety of quantities +can be time averaged and/or output in this way. If the inputs are one +or more scalar values, then the fix generate a global scalar or vector +of output. If the inputs are one or more vector values, then the fix +generates a global vector or array of output. The time-averaged +output of this fix can also be used as input to other output commands. + +The "fix ave/chunk"_fix_ave_chunk.html command enables direct output +to a file of chunk-averaged per-atom quantities like those output in +dump files. Chunks can represent spatial bins or other collections of +atoms, e.g. individual molecules. The per-atom quantities can be atom +density (mass or number) or atom attributes such as position, +velocity, force. They can also be per-atom quantities calculated by a +"compute"_compute.html, by a "fix"_fix.html, or by an atom-style +"variable"_variable.html. The chunk-averaged output of this fix can +also be used as input to other output commands. + +The "fix ave/histo"_fix_ave_histo.html command enables direct output +to a file of histogrammed quantities, which can be global or per-atom +or local quantities. The histogram output of this fix can also be +used as input to other output commands. + +The "fix ave/correlate"_fix_ave_correlate.html command enables direct +output to a file of time-correlated quantities, which can be global +values. The correlation matrix output of this fix can also be used as +input to other output commands. + +The "fix print"_fix_print.html command can generate a line of output +written to the screen and log file or to a separate file, periodically +during a running simulation. The line can contain one or more +"variable"_variable.html values for any style variable except the +vector or atom styles). As explained above, variables themselves can +contain references to global values generated by "thermodynamic +keywords"_thermo_style.html, "computes"_compute.html, +"fixes"_fix.html, or other "variables"_variable.html, or to per-atom +values for a specific atom. Thus the "fix print"_fix_print.html +command is a means to output a wide variety of quantities separate +from normal thermodynamic or dump file output. + +Computes that process output quantities :h4,link(computeoutput) + +The "compute reduce"_compute_reduce.html and "compute +reduce/region"_compute_reduce.html commands take one or more per-atom +or local vector quantities as inputs and "reduce" them (sum, min, max, +ave) to scalar quantities. These are produced as output values which +can be used as input to other output commands. + +The "compute slice"_compute_slice.html command take one or more global +vector or array quantities as inputs and extracts a subset of their +values to create a new vector or array. These are produced as output +values which can be used as input to other output commands. + +The "compute property/atom"_compute_property_atom.html command takes a +list of one or more pre-defined atom attributes (id, x, fx, etc) and +stores the values in a per-atom vector or array. These are produced +as output values which can be used as input to other output commands. +The list of atom attributes is the same as for the "dump +custom"_dump.html command. + +The "compute property/local"_compute_property_local.html command takes +a list of one or more pre-defined local attributes (bond info, angle +info, etc) and stores the values in a local vector or array. These +are produced as output values which can be used as input to other +output commands. + +Fixes that process output quantities :h4,link(fixprocoutput) + +The "fix vector"_fix_vector.html command can create global vectors as +output from global scalars as input, accumulating them one element at +a time. + +The "fix ave/atom"_fix_ave_atom.html command performs time-averaging +of per-atom vectors. The per-atom quantities can be atom attributes +such as position, velocity, force. They can also be per-atom +quantities calculated by a "compute"_compute.html, by a +"fix"_fix.html, or by an atom-style "variable"_variable.html. The +time-averaged per-atom output of this fix can be used as input to +other output commands. + +The "fix store/state"_fix_store_state.html command can archive one or +more per-atom attributes at a particular time, so that the old values +can be used in a future calculation or output. The list of atom +attributes is the same as for the "dump custom"_dump.html command, +including per-atom quantities calculated by a "compute"_compute.html, +by a "fix"_fix.html, or by an atom-style "variable"_variable.html. +The output of this fix can be used as input to other output commands. + +Computes that generate values to output :h4,link(compute) + +Every "compute"_compute.html in LAMMPS produces either global or +per-atom or local values. The values can be scalars or vectors or +arrays of data. These values can be output using the other commands +described in this section. The doc page for each compute command +describes what it produces. Computes that produce per-atom or local +values have the word "atom" or "local" in their style name. Computes +without the word "atom" or "local" produce global values. + +Fixes that generate values to output :h4,link(fix) + +Some "fixes"_fix.html in LAMMPS produces either global or per-atom or +local values which can be accessed by other commands. The values can +be scalars or vectors or arrays of data. These values can be output +using the other commands described in this section. The doc page for +each fix command tells whether it produces any output quantities and +describes them. + +Variables that generate values to output :h4,link(variable) + +"Variables"_variable.html defined in an input script can store one or +more strings. But equal-style, vector-style, and atom-style or +atomfile-style variables generate a global scalar value, global vector +or values, or a per-atom vector, respectively, when accessed. The +formulas used to define these variables can contain references to the +thermodynamic keywords and to global and per-atom data generated by +computes, fixes, and other variables. The values generated by +variables can be used as input to and thus output by the other +commands described in this section. + +Summary table of output options and data flow between commands :h4,link(table) + +This table summarizes the various commands that can be used for +generating output from LAMMPS. Each command produces output data of +some kind and/or writes data to a file. Most of the commands can take +data from other commands as input. Thus you can link many of these +commands together in pipeline form, where data produced by one command +is used as input to another command and eventually written to the +screen or to a file. Note that to hook two commands together the +output and input data types must match, e.g. global/per-atom/local +data and scalar/vector/array data. + +Also note that, as described above, when a command takes a scalar as +input, that could be an element of a vector or array. Likewise a +vector input could be a column of an array. + +Command: Input: Output: +"thermo_style custom"_thermo_style.html: global scalars: screen, log file: +"dump custom"_dump.html: per-atom vectors: dump file: +"dump local"_dump.html: local vectors: dump file: +"fix print"_fix_print.html: global scalar from variable: screen, file: +"print"_print.html: global scalar from variable: screen: +"computes"_compute.html: N/A: global/per-atom/local scalar/vector/array: +"fixes"_fix.html: N/A: global/per-atom/local scalar/vector/array: +"variables"_variable.html: global scalars and vectors, per-atom vectors: global scalar and vector, per-atom vector: +"compute reduce"_compute_reduce.html: per-atom/local vectors: global scalar/vector: +"compute slice"_compute_slice.html: global vectors/arrays: global vector/array: +"compute property/atom"_compute_property_atom.html: per-atom vectors: per-atom vector/array: +"compute property/local"_compute_property_local.html: local vectors: local vector/array: +"fix vector"_fix_vector.html: global scalars: global vector: +"fix ave/atom"_fix_ave_atom.html: per-atom vectors: per-atom vector/array: +"fix ave/time"_fix_ave_time.html: global scalars/vectors: global scalar/vector/array, file: +"fix ave/chunk"_fix_ave_chunk.html: per-atom vectors: global array, file: +"fix ave/histo"_fix_ave_histo.html: global/per-atom/local scalars and vectors: global array, file: +"fix ave/correlate"_fix_ave_correlate.html: global scalars: global array, file: +"fix store/state"_fix_store_state.html: per-atom vectors: per-atom vector/array :tb(c=3,s=:) diff --git a/doc/src/Howto_polarizable.txt b/doc/src/Howto_polarizable.txt new file mode 100644 index 0000000000..ec96ddc9a9 --- /dev/null +++ b/doc/src/Howto_polarizable.txt @@ -0,0 +1,81 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Polarizable models :h3 + +In polarizable force fields the charge distributions in molecules and +materials respond to their electrostatic environments. Polarizable +systems can be simulated in LAMMPS using three methods: + +the fluctuating charge method, implemented in the "QEQ"_fix_qeq.html +package, :ulb,l +the adiabatic core-shell method, implemented in the +"CORESHELL"_Howto_coreshell.html package, :l +the thermalized Drude dipole method, implemented in the +"USER-DRUDE"_Howto_drude.html package. :l,ule + +The fluctuating charge method calculates instantaneous charges on +interacting atoms based on the electronegativity equalization +principle. It is implemented in the "fix qeq"_fix_qeq.html which is +available in several variants. It is a relatively efficient technique +since no additional particles are introduced. This method allows for +charge transfer between molecules or atom groups. However, because the +charges are located at the interaction sites, off-plane components of +polarization cannot be represented in planar molecules or atom groups. + +The two other methods share the same basic idea: polarizable atoms are +split into one core atom and one satellite particle (called shell or +Drude particle) attached to it by a harmonic spring. Both atoms bear +a charge and they represent collectively an induced electric dipole. +These techniques are computationally more expensive than the QEq +method because of additional particles and bonds. These two +charge-on-spring methods differ in certain features, with the +core-shell model being normally used for ionic/crystalline materials, +whereas the so-called Drude model is normally used for molecular +systems and fluid states. + +The core-shell model is applicable to crystalline materials where the +high symmetry around each site leads to stable trajectories of the +core-shell pairs. However, bonded atoms in molecules can be so close +that a core would interact too strongly or even capture the Drude +particle of a neighbor. The Drude dipole model is relatively more +complex in order to remediate this and other issues. Specifically, the +Drude model includes specific thermostating of the core-Drude pairs +and short-range damping of the induced dipoles. + +The three polarization methods can be implemented through a +self-consistent calculation of charges or induced dipoles at each +timestep. In the fluctuating charge scheme this is done by the matrix +inversion method in "fix qeq/point"_fix_qeq.html, but for core-shell +or Drude-dipoles the relaxed-dipoles technique would require an slow +iterative procedure. These self-consistent solutions yield accurate +trajectories since the additional degrees of freedom representing +polarization are massless. An alternative is to attribute a mass to +the additional degrees of freedom and perform time integration using +an extended Lagrangian technique. For the fluctuating charge scheme +this is done by "fix qeq/dynamic"_fix_qeq.html, and for the +charge-on-spring models by the methods outlined in the next two +sections. The assignment of masses to the additional degrees of +freedom can lead to unphysical trajectories if care is not exerted in +choosing the parameters of the polarizable models and the simulation +conditions. + +In the core-shell model the vibration of the shells is kept faster +than the ionic vibrations to mimic the fast response of the +polarizable electrons. But in molecular systems thermalizing the +core-Drude pairs at temperatures comparable to the rest of the +simulation leads to several problems (kinetic energy transfer, too +short a timestep, etc.) In order to avoid these problems the relative +motion of the Drude particles with respect to their cores is kept +"cold" so the vibration of the core-Drude pairs is very slow, +approaching the self-consistent regime. In both models the +temperature is regulated using the velocities of the center of mass of +core+shell (or Drude) pairs, but in the Drude model the actual +relative core-Drude particle motion is thermostated separately as +well. diff --git a/doc/src/tutorial_pylammps.txt b/doc/src/Howto_pylammps.txt similarity index 95% rename from doc/src/tutorial_pylammps.txt rename to doc/src/Howto_pylammps.txt index 11cddb3cbf..abf7c52d05 100644 --- a/doc/src/tutorial_pylammps.txt +++ b/doc/src/Howto_pylammps.txt @@ -15,13 +15,19 @@ END_RST --> Overview :h4 -PyLammps is a Python wrapper class which can be created on its own or use an -existing lammps Python object. It creates a simpler, Python-like interface to -common LAMMPS functionality. Unlike the original flat C-types interface, it -exposes a discoverable API. It no longer requires knowledge of the underlying -C++ code implementation. Finally, the IPyLammps wrapper builds on top of -PyLammps and adds some additional features for IPython integration into IPython -notebooks, e.g. for embedded visualization output from dump/image. +PyLammps is a Python wrapper class which can be created on its own or +use an existing lammps Python object. It creates a simpler, +Python-like interface to common LAMMPS functionality, in contrast to +the lammps.py wrapper on the C-style LAMMPS library interface which is +written using Python ctypes. The lammps.py wrapper is discussed on +the "Python library"_Python_library.html doc page. + +Unlike the flat ctypes interface, PyLammps exposes a discoverable API. +It no longer requires knowledge of the underlying C++ code +implementation. Finally, the IPyLammps wrapper builds on top of +PyLammps and adds some additional features for IPython integration +into IPython notebooks, e.g. for embedded visualization output from +dump/image. Comparison of lammps and PyLammps interfaces :h5 @@ -40,7 +46,6 @@ communication with LAMMPS is hidden from API user shorter, more concise Python better IPython integration, designed for quick prototyping :ul - Quick Start :h4 System-wide Installation :h5 diff --git a/doc/src/Howto_replica.txt b/doc/src/Howto_replica.txt new file mode 100644 index 0000000000..b2f0faa209 --- /dev/null +++ b/doc/src/Howto_replica.txt @@ -0,0 +1,61 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Multi-replica simulations :h3 + +Several commands in LAMMPS run mutli-replica simulations, meaning +that multiple instances (replicas) of your simulation are run +simultaneously, with small amounts of data exchanged between replicas +periodically. + +These are the relevant commands: + +"neb"_neb.html for nudged elastic band calculations +"prd"_prd.html for parallel replica dynamics +"tad"_tad.html for temperature accelerated dynamics +"temper"_temper.html for parallel tempering +"fix pimd"_fix_pimd.html for path-integral molecular dynamics (PIMD) :ul + +NEB is a method for finding transition states and barrier energies. +PRD and TAD are methods for performing accelerated dynamics to find +and perform infrequent events. Parallel tempering or replica exchange +runs different replicas at a series of temperature to facilitate +rare-event sampling. + +These commands can only be used if LAMMPS was built with the REPLICA +package. See the "Making LAMMPS"_Section_start.html#start_3 section +for more info on packages. + +PIMD runs different replicas whose individual particles are coupled +together by springs to model a system or ring-polymers. + +This commands can only be used if LAMMPS was built with the USER-MISC +package. See the "Making LAMMPS"_Section_start.html#start_3 section +for more info on packages. + +In all these cases, you must run with one or more processors per +replica. The processors assigned to each replica are determined at +run-time by using the "-partition command-line +switch"_Section_start.html#start_6 to launch LAMMPS on multiple +partitions, which in this context are the same as replicas. E.g. +these commands: + +mpirun -np 16 lmp_linux -partition 8x2 -in in.temper +mpirun -np 8 lmp_linux -partition 8x1 -in in.neb :pre + +would each run 8 replicas, on either 16 or 8 processors. Note the use +of the "-in command-line switch"_Section_start.html#start_6 to specify +the input script which is required when running in multi-replica mode. + +Also note that with MPI installed on a machine (e.g. your desktop), +you can run on more (virtual) processors than you have physical +processors. Thus the above commands could be run on a +single-processor (or few-processor) desktop so that you can run +a multi-replica simulation on more replicas than you have +physical processors. diff --git a/doc/src/Howto_restart.txt b/doc/src/Howto_restart.txt new file mode 100644 index 0000000000..d2a993fcd3 --- /dev/null +++ b/doc/src/Howto_restart.txt @@ -0,0 +1,97 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Restart a simulation :h3 + +There are 3 ways to continue a long LAMMPS simulation. Multiple +"run"_run.html commands can be used in the same input script. Each +run will continue from where the previous run left off. Or binary +restart files can be saved to disk using the "restart"_restart.html +command. At a later time, these binary files can be read via a +"read_restart"_read_restart.html command in a new script. Or they can +be converted to text data files using the "-r command-line +switch"_Section_start.html#start_6 and read by a +"read_data"_read_data.html command in a new script. + +Here we give examples of 2 scripts that read either a binary restart +file or a converted data file and then issue a new run command to +continue where the previous run left off. They illustrate what +settings must be made in the new script. Details are discussed in the +documentation for the "read_restart"_read_restart.html and +"read_data"_read_data.html commands. + +Look at the {in.chain} input script provided in the {bench} directory +of the LAMMPS distribution to see the original script that these 2 +scripts are based on. If that script had the line + +restart 50 tmp.restart :pre + +added to it, it would produce 2 binary restart files (tmp.restart.50 +and tmp.restart.100) as it ran. + +This script could be used to read the 1st restart file and re-run the +last 50 timesteps: + +read_restart tmp.restart.50 :pre + +neighbor 0.4 bin +neigh_modify every 1 delay 1 :pre + +fix 1 all nve +fix 2 all langevin 1.0 1.0 10.0 904297 :pre + +timestep 0.012 :pre + +run 50 :pre + +Note that the following commands do not need to be repeated because +their settings are included in the restart file: {units, atom_style, +special_bonds, pair_style, bond_style}. However these commands do +need to be used, since their settings are not in the restart file: +{neighbor, fix, timestep}. + +If you actually use this script to perform a restarted run, you will +notice that the thermodynamic data match at step 50 (if you also put a +"thermo 50" command in the original script), but do not match at step +100. This is because the "fix langevin"_fix_langevin.html command +uses random numbers in a way that does not allow for perfect restarts. + +As an alternate approach, the restart file could be converted to a data +file as follows: + +lmp_g++ -r tmp.restart.50 tmp.restart.data :pre + +Then, this script could be used to re-run the last 50 steps: + +units lj +atom_style bond +pair_style lj/cut 1.12 +pair_modify shift yes +bond_style fene +special_bonds 0.0 1.0 1.0 :pre + +read_data tmp.restart.data :pre + +neighbor 0.4 bin +neigh_modify every 1 delay 1 :pre + +fix 1 all nve +fix 2 all langevin 1.0 1.0 10.0 904297 :pre + +timestep 0.012 :pre + +reset_timestep 50 +run 50 :pre + +Note that nearly all the settings specified in the original {in.chain} +script must be repeated, except the {pair_coeff} and {bond_coeff} +commands since the new data file lists the force field coefficients. +Also, the "reset_timestep"_reset_timestep.html command is used to tell +LAMMPS the current timestep. This value is stored in restart files, +but not in data files. diff --git a/doc/src/Howto_spc.txt b/doc/src/Howto_spc.txt new file mode 100644 index 0000000000..6a63c1f6a6 --- /dev/null +++ b/doc/src/Howto_spc.txt @@ -0,0 +1,54 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +SPC water model :h3 + +The SPC water model specifies a 3-site rigid water molecule with +charges and Lennard-Jones parameters assigned to each of the 3 atoms. +In LAMMPS the "fix shake"_fix_shake.html command can be used to hold +the two O-H bonds and the H-O-H angle rigid. A bond style of +{harmonic} and an angle style of {harmonic} or {charmm} should also be +used. + +These are the additional parameters (in real units) to set for O and H +atoms and the water molecule to run a rigid SPC model. + +O mass = 15.9994 +H mass = 1.008 +O charge = -0.820 +H charge = 0.410 +LJ epsilon of OO = 0.1553 +LJ sigma of OO = 3.166 +LJ epsilon, sigma of OH, HH = 0.0 +r0 of OH bond = 1.0 +theta of HOH angle = 109.47 :all(b),p + +Note that as originally proposed, the SPC model was run with a 9 +Angstrom cutoff for both LJ and Coulommbic terms. It can also be used +with long-range Coulombics (Ewald or PPPM in LAMMPS), without changing +any of the parameters above, though it becomes a different model in +that mode of usage. + +The SPC/E (extended) water model is the same, except +the partial charge assignments change: + +O charge = -0.8476 +H charge = 0.4238 :all(b),p + +See the "(Berendsen)"_#howto-Berendsen reference for more details on both +the SPC and SPC/E models. + +Wikipedia also has a nice article on "water +models"_http://en.wikipedia.org/wiki/Water_model. + +:line + +:link(howto-Berendsen) +[(Berendsen)] Berendsen, Grigera, Straatsma, J Phys Chem, 91, +6269-6271 (1987). diff --git a/doc/src/Howto_spherical.txt b/doc/src/Howto_spherical.txt new file mode 100644 index 0000000000..bc16ece2a3 --- /dev/null +++ b/doc/src/Howto_spherical.txt @@ -0,0 +1,243 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Finite-size spherical and aspherical particles :h3 + +Typical MD models treat atoms or particles as point masses. Sometimes +it is desirable to have a model with finite-size particles such as +spheroids or ellipsoids or generalized aspherical bodies. The +difference is that such particles have a moment of inertia, rotational +energy, and angular momentum. Rotation is induced by torque coming +from interactions with other particles. + +LAMMPS has several options for running simulations with these kinds of +particles. The following aspects are discussed in turn: + +atom styles +pair potentials +time integration +computes, thermodynamics, and dump output +rigid bodies composed of finite-size particles :ul + +Example input scripts for these kinds of models are in the body, +colloid, dipole, ellipse, line, peri, pour, and tri directories of the +"examples directory"_Examples.html in the LAMMPS distribution. + +Atom styles :h4 + +There are several "atom styles"_atom_style.html that allow for +definition of finite-size particles: sphere, dipole, ellipsoid, line, +tri, peri, and body. + +The sphere style defines particles that are spheriods and each +particle can have a unique diameter and mass (or density). These +particles store an angular velocity (omega) and can be acted upon by +torque. The "set" command can be used to modify the diameter and mass +of individual particles, after then are created. + +The dipole style does not actually define finite-size particles, but +is often used in conjunction with spherical particles, via a command +like + +atom_style hybrid sphere dipole :pre + +This is because when dipoles interact with each other, they induce +torques, and a particle must be finite-size (i.e. have a moment of +inertia) in order to respond and rotate. See the "atom_style +dipole"_atom_style.html command for details. The "set" command can be +used to modify the orientation and length of the dipole moment of +individual particles, after then are created. + +The ellipsoid style defines particles that are ellipsoids and thus can +be aspherical. Each particle has a shape, specified by 3 diameters, +and mass (or density). These particles store an angular momentum and +their orientation (quaternion), and can be acted upon by torque. They +do not store an angular velocity (omega), which can be in a different +direction than angular momentum, rather they compute it as needed. +The "set" command can be used to modify the diameter, orientation, and +mass of individual particles, after then are created. It also has a +brief explanation of what quaternions are. + +The line style defines line segment particles with two end points and +a mass (or density). They can be used in 2d simulations, and they can +be joined together to form rigid bodies which represent arbitrary +polygons. + +The tri style defines triangular particles with three corner points +and a mass (or density). They can be used in 3d simulations, and they +can be joined together to form rigid bodies which represent arbitrary +particles with a triangulated surface. + +The peri style is used with "Peridynamic models"_pair_peri.html and +defines particles as having a volume, that is used internally in the +"pair_style peri"_pair_peri.html potentials. + +The body style allows for definition of particles which can represent +complex entities, such as surface meshes of discrete points, +collections of sub-particles, deformable objects, etc. The body style +is discussed in more detail on the "Howto body"_Howto_body.html doc +page. + +Note that if one of these atom styles is used (or multiple styles via +the "atom_style hybrid"_atom_style.html command), not all particles in +the system are required to be finite-size or aspherical. + +For example, in the ellipsoid style, if the 3 shape parameters are set +to the same value, the particle will be a sphere rather than an +ellipsoid. If the 3 shape parameters are all set to 0.0 or if the +diameter is set to 0.0, it will be a point particle. In the line or +tri style, if the lineflag or triflag is specified as 0, then it +will be a point particle. + +Some of the pair styles used to compute pairwise interactions between +finite-size particles also compute the correct interaction with point +particles as well, e.g. the interaction between a point particle and a +finite-size particle or between two point particles. If necessary, +"pair_style hybrid"_pair_hybrid.html can be used to insure the correct +interactions are computed for the appropriate style of interactions. +Likewise, using groups to partition particles (ellipsoids versus +spheres versus point particles) will allow you to use the appropriate +time integrators and temperature computations for each class of +particles. See the doc pages for various commands for details. + +Also note that for "2d simulations"_dimension.html, atom styles sphere +and ellipsoid still use 3d particles, rather than as circular disks or +ellipses. This means they have the same moment of inertia as the 3d +object. When temperature is computed, the correct degrees of freedom +are used for rotation in a 2d versus 3d system. + +Pair potentials :h4 + +When a system with finite-size particles is defined, the particles +will only rotate and experience torque if the force field computes +such interactions. These are the various "pair +styles"_pair_style.html that generate torque: + +"pair_style gran/history"_pair_gran.html +"pair_style gran/hertzian"_pair_gran.html +"pair_style gran/no_history"_pair_gran.html +"pair_style dipole/cut"_pair_dipole.html +"pair_style gayberne"_pair_gayberne.html +"pair_style resquared"_pair_resquared.html +"pair_style brownian"_pair_brownian.html +"pair_style lubricate"_pair_lubricate.html +"pair_style line/lj"_pair_line_lj.html +"pair_style tri/lj"_pair_tri_lj.html +"pair_style body"_pair_body.html :ul + +The granular pair styles are used with spherical particles. The +dipole pair style is used with the dipole atom style, which could be +applied to spherical or ellipsoidal particles. The GayBerne and +REsquared potentials require ellipsoidal particles, though they will +also work if the 3 shape parameters are the same (a sphere). The +Brownian and lubrication potentials are used with spherical particles. +The line, tri, and body potentials are used with line segment, +triangular, and body particles respectively. + +Time integration :h4 + +There are several fixes that perform time integration on finite-size +spherical particles, meaning the integrators update the rotational +orientation and angular velocity or angular momentum of the particles: + +"fix nve/sphere"_fix_nve_sphere.html +"fix nvt/sphere"_fix_nvt_sphere.html +"fix npt/sphere"_fix_npt_sphere.html :ul + +Likewise, there are 3 fixes that perform time integration on +ellipsoidal particles: + +"fix nve/asphere"_fix_nve_asphere.html +"fix nvt/asphere"_fix_nvt_asphere.html +"fix npt/asphere"_fix_npt_asphere.html :ul + +The advantage of these fixes is that those which thermostat the +particles include the rotational degrees of freedom in the temperature +calculation and thermostatting. The "fix langevin"_fix_langevin +command can also be used with its {omgea} or {angmom} options to +thermostat the rotational degrees of freedom for spherical or +ellipsoidal particles. Other thermostatting fixes only operate on the +translational kinetic energy of finite-size particles. + +These fixes perform constant NVE time integration on line segment, +triangular, and body particles: + +"fix nve/line"_fix_nve_line.html +"fix nve/tri"_fix_nve_tri.html +"fix nve/body"_fix_nve_body.html :ul + +Note that for mixtures of point and finite-size particles, these +integration fixes can only be used with "groups"_group.html which +contain finite-size particles. + +Computes, thermodynamics, and dump output :h4 + +There are several computes that calculate the temperature or +rotational energy of spherical or ellipsoidal particles: + +"compute temp/sphere"_compute_temp_sphere.html +"compute temp/asphere"_compute_temp_asphere.html +"compute erotate/sphere"_compute_erotate_sphere.html +"compute erotate/asphere"_compute_erotate_asphere.html :ul + +These include rotational degrees of freedom in their computation. If +you wish the thermodynamic output of temperature or pressure to use +one of these computes (e.g. for a system entirely composed of +finite-size particles), then the compute can be defined and the +"thermo_modify"_thermo_modify.html command used. Note that by default +thermodynamic quantities will be calculated with a temperature that +only includes translational degrees of freedom. See the +"thermo_style"_thermo_style.html command for details. + +These commands can be used to output various attributes of finite-size +particles: + +"dump custom"_dump.html +"compute property/atom"_compute_property_atom.html +"dump local"_dump.html +"compute body/local"_compute_body_local.html :ul + +Attributes include the dipole moment, the angular velocity, the +angular momentum, the quaternion, the torque, the end-point and +corner-point coordinates (for line and tri particles), and +sub-particle attributes of body particles. + +Rigid bodies composed of finite-size particles :h4 + +The "fix rigid"_fix_rigid.html command treats a collection of +particles as a rigid body, computes its inertia tensor, sums the total +force and torque on the rigid body each timestep due to forces on its +constituent particles, and integrates the motion of the rigid body. + +If any of the constituent particles of a rigid body are finite-size +particles (spheres or ellipsoids or line segments or triangles), then +their contribution to the inertia tensor of the body is different than +if they were point particles. This means the rotational dynamics of +the rigid body will be different. Thus a model of a dimer is +different if the dimer consists of two point masses versus two +spheroids, even if the two particles have the same mass. Finite-size +particles that experience torque due to their interaction with other +particles will also impart that torque to a rigid body they are part +of. + +See the "fix rigid" command for example of complex rigid-body models +it is possible to define in LAMMPS. + +Note that the "fix shake"_fix_shake.html command can also be used to +treat 2, 3, or 4 particles as a rigid body, but it always assumes the +particles are point masses. + +Also note that body particles cannot be modeled with the "fix +rigid"_fix_rigid.html command. Body particles are treated by LAMMPS +as single particles, though they can store internal state, such as a +list of sub-particles. Individual body partices are typically treated +as rigid bodies, and their motion integrated with a command like "fix +nve/body"_fix_nve_body.html. Interactions between pairs of body +particles are computed via a command like "pair_style +body"_pair_body.html. diff --git a/doc/src/Howto_spins.txt b/doc/src/Howto_spins.txt new file mode 100644 index 0000000000..3cb9e480b2 --- /dev/null +++ b/doc/src/Howto_spins.txt @@ -0,0 +1,59 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Magnetic spins :h3 + +The magnetic spin simualtions are enabled by the SPIN package, whose +implementation is detailed in "Tranchida"_#Tranchida7. + +The model representents the simulation of atomic magnetic spins coupled +to lattice vibrations. The dynamics of those magnetic spins can be used +to simulate a broad range a phenomena related to magneto-elasticity, or +or to study the influence of defects on the magnetic properties of +materials. + +The magnetic spins are interacting with each others and with the +lattice via pair interactions. Typically, the magnetic exchange +interaction can be defined using the +"pair/spin/exchange"_pair_spin_exchange.html command. This exchange +applies a magnetic torque to a given spin, considering the orientation +of its neighboring spins and their relative distances. +It also applies a force on the atoms as a function of the spin +orientations and their associated inter-atomic distances. + +The command "fix precession/spin"_fix_precession_spin.html allows to +apply a constant magnetic torque on all the spins in the system. This +torque can be an external magnetic field (Zeeman interaction), or an +uniaxial magnetic anisotropy. + +A Langevin thermostat can be applied to those magnetic spins using +"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat +can be coupled to another Langevin thermostat applied to the atoms +using "fix langevin"_fix_langevin.html in order to simulate +thermostated spin-lattice system. + +The magnetic Gilbert damping can also be applied using "fix +langevin/spin"_fix_langevin_spin.html. It allows to either dissipate +the thermal energy of the Langevin thermostat, or to perform a +relaxation of the magnetic configuration toward an equilibrium state. + +All the computed magnetic properties can be outputed by two main +commands. The first one is "compute spin"_compute_spin.html, that +enables to evaluate magnetic averaged quantities, such as the total +magnetization of the system along x, y, or z, the spin temperature, or +the magnetic energy. The second command is "compute +property/atom"_compute_property_atom.html. It enables to output all the +per atom magnetic quantities. Typically, the orientation of a given +magnetic spin, or the magnetic force acting on this spin. + +:line + +:link(Tranchida7) +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, +arXiv preprint arXiv:1801.10233, (2018). diff --git a/doc/src/Howto_temperature.txt b/doc/src/Howto_temperature.txt new file mode 100644 index 0000000000..3d1bd8a2d6 --- /dev/null +++ b/doc/src/Howto_temperature.txt @@ -0,0 +1,40 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Calcalate temperature :h3 + +Temperature is computed as kinetic energy divided by some number of +degrees of freedom (and the Boltzmann constant). Since kinetic energy +is a function of particle velocity, there is often a need to +distinguish between a particle's advection velocity (due to some +aggregate motion of particles) and its thermal velocity. The sum of +the two is the particle's total velocity, but the latter is often what +is wanted to compute a temperature. + +LAMMPS has several options for computing temperatures, any of which can be used in "thermostatting"_Howto_thermostat.html and "barostatting"_Howto_barostat.html. These "compute commands"_compute.html calculate temperature: + +"compute temp"_compute_temp.html +"compute temp/sphere"_compute_temp_sphere.html +"compute temp/asphere"_compute_temp_asphere.html +"compute temp/com"_compute_temp_com.html +"compute temp/deform"_compute_temp_deform.html +"compute temp/partial"_compute_temp_partial.html +"compute temp/profile"_compute_temp_profile.html +"compute temp/ramp"_compute_temp_ramp.html +"compute temp/region"_compute_temp_region.html :ul + +All but the first 3 calculate velocity biases directly (e.g. advection +velocities) that are removed when computing the thermal temperature. +"Compute temp/sphere"_compute_temp_sphere.html and "compute +temp/asphere"_compute_temp_asphere.html compute kinetic energy for +finite-size particles that includes rotational degrees of freedom. +They both allow for velocity biases indirectly, via an optional extra +argument which is another temperature compute that subtracts a velocity bias. +This allows the translational velocity of spherical or aspherical +particles to be adjusted in prescribed ways. diff --git a/doc/src/Howto_thermostat.txt b/doc/src/Howto_thermostat.txt new file mode 100644 index 0000000000..c1887d9738 --- /dev/null +++ b/doc/src/Howto_thermostat.txt @@ -0,0 +1,89 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Thermostats :h3 + +Thermostatting means controlling the temperature of particles in an MD +simulation. "Barostatting"_Howto_barostat.html means controlling the +pressure. Since the pressure includes a kinetic component due to +particle velocities, both these operations require calculation of the +temperature. Typically a target temperature (T) and/or pressure (P) +is specified by the user, and the thermostat or barostat attempts to +equilibrate the system to the requested T and/or P. + +Thermostatting in LAMMPS is performed by "fixes"_fix.html, or in one +case by a pair style. Several thermostatting fixes are available: +Nose-Hoover (nvt), Berendsen, CSVR, Langevin, and direct rescaling +(temp/rescale). Dissipative particle dynamics (DPD) thermostatting +can be invoked via the {dpd/tstat} pair style: + +"fix nvt"_fix_nh.html +"fix nvt/sphere"_fix_nvt_sphere.html +"fix nvt/asphere"_fix_nvt_asphere.html +"fix nvt/sllod"_fix_nvt_sllod.html +"fix temp/berendsen"_fix_temp_berendsen.html +"fix temp/csvr"_fix_temp_csvr.html +"fix langevin"_fix_langevin.html +"fix temp/rescale"_fix_temp_rescale.html +"pair_style dpd/tstat"_pair_dpd.html :ul + +"Fix nvt"_fix_nh.html only thermostats the translational velocity of +particles. "Fix nvt/sllod"_fix_nvt_sllod.html also does this, except +that it subtracts out a velocity bias due to a deforming box and +integrates the SLLOD equations of motion. See the "Howto +nemd"_Howto_nemd.html doc page for further details. "Fix +nvt/sphere"_fix_nvt_sphere.html and "fix +nvt/asphere"_fix_nvt_asphere.html thermostat not only translation +velocities but also rotational velocities for spherical and aspherical +particles. + +DPD thermostatting alters pairwise interactions in a manner analogous +to the per-particle thermostatting of "fix +langevin"_fix_langevin.html. + +Any of the thermostatting fixes can use "temperature +computes"_Howto_thermostat.html that remove bias which has two +effects. First, the current calculated temperature, which is compared +to the requested target temperature, is calculated with the velocity +bias removed. Second, the thermostat adjusts only the thermal +temperature component of the particle's velocities, which are the +velocities with the bias removed. The removed bias is then added back +to the adjusted velocities. See the doc pages for the individual +fixes and for the "fix_modify"_fix_modify.html command for +instructions on how to assign a temperature compute to a +thermostatting fix. For example, you can apply a thermostat to only +the x and z components of velocity by using it in conjunction with +"compute temp/partial"_compute_temp_partial.html. Of you could +thermostat only the thermal temperature of a streaming flow of +particles without affecting the streaming velocity, by using "compute +temp/profile"_compute_temp_profile.html. + +NOTE: Only the nvt fixes perform time integration, meaning they update +the velocities and positions of particles due to forces and velocities +respectively. The other thermostat fixes only adjust velocities; they +do NOT perform time integration updates. Thus they should be used in +conjunction with a constant NVE integration fix such as these: + +"fix nve"_fix_nve.html +"fix nve/sphere"_fix_nve_sphere.html +"fix nve/asphere"_fix_nve_asphere.html :ul + +Thermodynamic output, which can be setup via the +"thermo_style"_thermo_style.html command, often includes temperature +values. As explained on the doc page for the +"thermo_style"_thermo_style.html command, the default temperature is +setup by the thermo command itself. It is NOT the temperature +associated with any thermostatting fix you have defined or with any +compute you have defined that calculates a temperature. The doc pages +for the thermostatting fixes explain the ID of the temperature compute +they create. Thus if you want to view these temperatures, you need to +specify them explicitly via the "thermo_style +custom"_thermo_style.html command. Or you can use the +"thermo_modify"_thermo_modify.html command to re-define what +temperature compute is used for default thermodynamic output. diff --git a/doc/src/Howto_tip3p.txt b/doc/src/Howto_tip3p.txt new file mode 100644 index 0000000000..23ab604d1f --- /dev/null +++ b/doc/src/Howto_tip3p.txt @@ -0,0 +1,69 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +TIP3P water model :h3 + +The TIP3P water model as implemented in CHARMM +"(MacKerell)"_#howto-MacKerell specifies a 3-site rigid water molecule with +charges and Lennard-Jones parameters assigned to each of the 3 atoms. +In LAMMPS the "fix shake"_fix_shake.html command can be used to hold +the two O-H bonds and the H-O-H angle rigid. A bond style of +{harmonic} and an angle style of {harmonic} or {charmm} should also be +used. + +These are the additional parameters (in real units) to set for O and H +atoms and the water molecule to run a rigid TIP3P-CHARMM model with a +cutoff. The K values can be used if a flexible TIP3P model (without +fix shake) is desired. If the LJ epsilon and sigma for HH and OH are +set to 0.0, it corresponds to the original 1983 TIP3P model +"(Jorgensen)"_#Jorgensen1. + +O mass = 15.9994 +H mass = 1.008 +O charge = -0.834 +H charge = 0.417 +LJ epsilon of OO = 0.1521 +LJ sigma of OO = 3.1507 +LJ epsilon of HH = 0.0460 +LJ sigma of HH = 0.4000 +LJ epsilon of OH = 0.0836 +LJ sigma of OH = 1.7753 +K of OH bond = 450 +r0 of OH bond = 0.9572 +K of HOH angle = 55 +theta of HOH angle = 104.52 :all(b),p + +These are the parameters to use for TIP3P with a long-range Coulombic +solver (e.g. Ewald or PPPM in LAMMPS), see "(Price)"_#Price1 for +details: + +O mass = 15.9994 +H mass = 1.008 +O charge = -0.830 +H charge = 0.415 +LJ epsilon of OO = 0.102 +LJ sigma of OO = 3.188 +LJ epsilon, sigma of OH, HH = 0.0 +K of OH bond = 450 +r0 of OH bond = 0.9572 +K of HOH angle = 55 +theta of HOH angle = 104.52 :all(b),p + +Wikipedia also has a nice article on "water +models"_http://en.wikipedia.org/wiki/Water_model. + +:line + +:link(Jorgensen1) +[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem +Phys, 79, 926 (1983). + +:link(Price1) +[(Price)] Price and Brooks, J Chem Phys, 121, 10096 (2004). + diff --git a/doc/src/Howto_tip4p.txt b/doc/src/Howto_tip4p.txt new file mode 100644 index 0000000000..a471bdc918 --- /dev/null +++ b/doc/src/Howto_tip4p.txt @@ -0,0 +1,112 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +TIP4P water model :h3 + +The four-point TIP4P rigid water model extends the traditional +three-point TIP3P model by adding an additional site, usually +massless, where the charge associated with the oxygen atom is placed. +This site M is located at a fixed distance away from the oxygen along +the bisector of the HOH bond angle. A bond style of {harmonic} and an +angle style of {harmonic} or {charmm} should also be used. + +A TIP4P model is run with LAMMPS using either this command +for a cutoff model: + +"pair_style lj/cut/tip4p/cut"_pair_lj.html + +or these two commands for a long-range model: + +"pair_style lj/cut/tip4p/long"_pair_lj.html +"kspace_style pppm/tip4p"_kspace_style.html :ul + +For both models, the bond lengths and bond angles should be held fixed +using the "fix shake"_fix_shake.html command. + +These are the additional parameters (in real units) to set for O and H +atoms and the water molecule to run a rigid TIP4P model with a cutoff +"(Jorgensen)"_#Jorgensen1. Note that the OM distance is specified in +the "pair_style"_pair_style.html command, not as part of the pair +coefficients. + +O mass = 15.9994 +H mass = 1.008 +O charge = -1.040 +H charge = 0.520 +r0 of OH bond = 0.9572 +theta of HOH angle = 104.52 +OM distance = 0.15 +LJ epsilon of O-O = 0.1550 +LJ sigma of O-O = 3.1536 +LJ epsilon, sigma of OH, HH = 0.0 +Coulombic cutoff = 8.5 :all(b),p + +For the TIP4/Ice model (J Chem Phys, 122, 234511 (2005); +http://dx.doi.org/10.1063/1.1931662) these values can be used: + +O mass = 15.9994 +H mass = 1.008 +O charge = -1.1794 +H charge = 0.5897 +r0 of OH bond = 0.9572 +theta of HOH angle = 104.52 +OM distance = 0.1577 +LJ epsilon of O-O = 0.21084 +LJ sigma of O-O = 3.1668 +LJ epsilon, sigma of OH, HH = 0.0 +Coulombic cutoff = 8.5 :all(b),p + +For the TIP4P/2005 model (J Chem Phys, 123, 234505 (2005); +http://dx.doi.org/10.1063/1.2121687), these values can be used: + +O mass = 15.9994 +H mass = 1.008 +O charge = -1.1128 +H charge = 0.5564 +r0 of OH bond = 0.9572 +theta of HOH angle = 104.52 +OM distance = 0.1546 +LJ epsilon of O-O = 0.1852 +LJ sigma of O-O = 3.1589 +LJ epsilon, sigma of OH, HH = 0.0 +Coulombic cutoff = 8.5 :all(b),p + +These are the parameters to use for TIP4P with a long-range Coulombic +solver (e.g. Ewald or PPPM in LAMMPS): + +O mass = 15.9994 +H mass = 1.008 +O charge = -1.0484 +H charge = 0.5242 +r0 of OH bond = 0.9572 +theta of HOH angle = 104.52 +OM distance = 0.1250 +LJ epsilon of O-O = 0.16275 +LJ sigma of O-O = 3.16435 +LJ epsilon, sigma of OH, HH = 0.0 :all(b),p + +Note that the when using the TIP4P pair style, the neighbor list +cutoff for Coulomb interactions is effectively extended by a distance +2 * (OM distance), to account for the offset distance of the +fictitious charges on O atoms in water molecules. Thus it is +typically best in an efficiency sense to use a LJ cutoff >= Coulomb +cutoff + 2*(OM distance), to shrink the size of the neighbor list. +This leads to slightly larger cost for the long-range calculation, so +you can test the trade-off for your model. The OM distance and the LJ +and Coulombic cutoffs are set in the "pair_style +lj/cut/tip4p/long"_pair_lj.html command. + +Wikipedia also has a nice article on "water +models"_http://en.wikipedia.org/wiki/Water_model. + +:line + +:link(Jorgensen1) +[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem +Phys, 79, 926 (1983). diff --git a/doc/src/Howto_triclinic.txt b/doc/src/Howto_triclinic.txt new file mode 100644 index 0000000000..10bcc5e9d1 --- /dev/null +++ b/doc/src/Howto_triclinic.txt @@ -0,0 +1,213 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +Triclinic (non-orthogonal) simulation boxes :h3 + +By default, LAMMPS uses an orthogonal simulation box to encompass the +particles. The "boundary"_boundary.html command sets the boundary +conditions of the box (periodic, non-periodic, etc). The orthogonal +box has its "origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors +starting from the origin given by [a] = (xhi-xlo,0,0); [b] = +(0,yhi-ylo,0); [c] = (0,0,zhi-zlo). The 6 parameters +(xlo,xhi,ylo,yhi,zlo,zhi) are defined at the time the simulation box +is created, e.g. by the "create_box"_create_box.html or +"read_data"_read_data.html or "read_restart"_read_restart.html +commands. Additionally, LAMMPS defines box size parameters lx,ly,lz +where lx = xhi-xlo, and similarly in the y and z dimensions. The 6 +parameters, as well as lx,ly,lz, can be output via the "thermo_style +custom"_thermo_style.html command. + +LAMMPS also allows simulations to be performed in triclinic +(non-orthogonal) simulation boxes shaped as a parallelepiped with +triclinic symmetry. The parallelepiped has its "origin" at +(xlo,ylo,zlo) and is defined by 3 edge vectors starting from the +origin given by [a] = (xhi-xlo,0,0); [b] = (xy,yhi-ylo,0); [c] = +(xz,yz,zhi-zlo). {xy,xz,yz} can be 0.0 or positive or negative values +and are called "tilt factors" because they are the amount of +displacement applied to faces of an originally orthogonal box to +transform it into the parallelepiped. In LAMMPS the triclinic +simulation box edge vectors [a], [b], and [c] cannot be arbitrary +vectors. As indicated, [a] must lie on the positive x axis. [b] must +lie in the xy plane, with strictly positive y component. [c] may have +any orientation with strictly positive z component. The requirement +that [a], [b], and [c] have strictly positive x, y, and z components, +respectively, ensures that [a], [b], and [c] form a complete +right-handed basis. These restrictions impose no loss of generality, +since it is possible to rotate/invert any set of 3 crystal basis +vectors so that they conform to the restrictions. + +For example, assume that the 3 vectors [A],[B],[C] are the edge +vectors of a general parallelepiped, where there is no restriction on +[A],[B],[C] other than they form a complete right-handed basis i.e. +[A] x [B] . [C] > 0. The equivalent LAMMPS [a],[b],[c] are a linear +rotation of [A], [B], and [C] and can be computed as follows: + +:c,image(Eqs/transform.jpg) + +where A = | [A] | indicates the scalar length of [A]. The hat symbol (^) +indicates the corresponding unit vector. {beta} and {gamma} are angles +between the vectors described below. Note that by construction, +[a], [b], and [c] have strictly positive x, y, and z components, respectively. +If it should happen that +[A], [B], and [C] form a left-handed basis, then the above equations +are not valid for [c]. In this case, it is necessary +to first apply an inversion. This can be achieved +by interchanging two basis vectors or by changing the sign of one of them. + +For consistency, the same rotation/inversion applied to the basis vectors +must also be applied to atom positions, velocities, +and any other vector quantities. +This can be conveniently achieved by first converting to +fractional coordinates in the +old basis and then converting to distance coordinates in the new basis. +The transformation is given by the following equation: + +:c,image(Eqs/rotate.jpg) + +where {V} is the volume of the box, [X] is the original vector quantity and +[x] is the vector in the LAMMPS basis. + +There is no requirement that a triclinic box be periodic in any +dimension, though it typically should be in at least the 2nd dimension +of the tilt (y in xy) if you want to enforce a shift in periodic +boundary conditions across that boundary. Some commands that work +with triclinic boxes, e.g. the "fix deform"_fix_deform.html and "fix +npt"_fix_nh.html commands, require periodicity or non-shrink-wrap +boundary conditions in specific dimensions. See the command doc pages +for details. + +The 9 parameters (xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) are defined at the +time the simulation box is created. This happens in one of 3 ways. +If the "create_box"_create_box.html command is used with a region of +style {prism}, then a triclinic box is setup. See the +"region"_region.html command for details. If the +"read_data"_read_data.html command is used to define the simulation +box, and the header of the data file contains a line with the "xy xz +yz" keyword, then a triclinic box is setup. See the +"read_data"_read_data.html command for details. Finally, if the +"read_restart"_read_restart.html command reads a restart file which +was written from a simulation using a triclinic box, then a triclinic +box will be setup for the restarted simulation. + +Note that you can define a triclinic box with all 3 tilt factors = +0.0, so that it is initially orthogonal. This is necessary if the box +will become non-orthogonal, e.g. due to the "fix npt"_fix_nh.html or +"fix deform"_fix_deform.html commands. Alternatively, you can use the +"change_box"_change_box.html command to convert a simulation box from +orthogonal to triclinic and vice versa. + +As with orthogonal boxes, LAMMPS defines triclinic box size parameters +lx,ly,lz where lx = xhi-xlo, and similarly in the y and z dimensions. +The 9 parameters, as well as lx,ly,lz, can be output via the +"thermo_style custom"_thermo_style.html command. + +To avoid extremely tilted boxes (which would be computationally +inefficient), LAMMPS normally requires that no tilt factor can skew +the box more than half the distance of the parallel box length, which +is the 1st dimension in the tilt factor (x for xz). This is required +both when the simulation box is created, e.g. via the +"create_box"_create_box.html or "read_data"_read_data.html commands, +as well as when the box shape changes dynamically during a simulation, +e.g. via the "fix deform"_fix_deform.html or "fix npt"_fix_nh.html +commands. + +For example, if xlo = 2 and xhi = 12, then the x box length is 10 and +the xy tilt factor must be between -5 and 5. Similarly, both xz and +yz must be between -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is +not a limitation, since if the maximum tilt factor is 5 (as in this +example), then configurations with tilt = ..., -15, -5, 5, 15, 25, +... are geometrically all equivalent. If the box tilt exceeds this +limit during a dynamics run (e.g. via the "fix deform"_fix_deform.html +command), then the box is "flipped" to an equivalent shape with a tilt +factor within the bounds, so the run can continue. See the "fix +deform"_fix_deform.html doc page for further details. + +One exception to this rule is if the 1st dimension in the tilt +factor (x for xy) is non-periodic. In that case, the limits on the +tilt factor are not enforced, since flipping the box in that dimension +does not change the atom positions due to non-periodicity. In this +mode, if you tilt the system to extreme angles, the simulation will +simply become inefficient, due to the highly skewed simulation box. + +The limitation on not creating a simulation box with a tilt factor +skewing the box more than half the distance of the parallel box length +can be overridden via the "box"_box.html command. Setting the {tilt} +keyword to {large} allows any tilt factors to be specified. + +Box flips that may occur using the "fix deform"_fix_deform.html or +"fix npt"_fix_nh.html commands can be turned off using the {flip no} +option with either of the commands. + +Note that if a simulation box has a large tilt factor, LAMMPS will run +less efficiently, due to the large volume of communication needed to +acquire ghost atoms around a processor's irregular-shaped sub-domain. +For extreme values of tilt, LAMMPS may also lose atoms and generate an +error. + +Triclinic crystal structures are often defined using three lattice +constants {a}, {b}, and {c}, and three angles {alpha}, {beta} and +{gamma}. Note that in this nomenclature, the a, b, and c lattice +constants are the scalar lengths of the edge vectors [a], [b], and [c] +defined above. The relationship between these 6 quantities +(a,b,c,alpha,beta,gamma) and the LAMMPS box sizes (lx,ly,lz) = +(xhi-xlo,yhi-ylo,zhi-zlo) and tilt factors (xy,xz,yz) is as follows: + +:c,image(Eqs/box.jpg) + +The inverse relationship can be written as follows: + +:c,image(Eqs/box_inverse.jpg) + +The values of {a}, {b}, {c} , {alpha}, {beta} , and {gamma} can be printed +out or accessed by computes using the +"thermo_style custom"_thermo_style.html keywords +{cella}, {cellb}, {cellc}, {cellalpha}, {cellbeta}, {cellgamma}, +respectively. + +As discussed on the "dump"_dump.html command doc page, when the BOX +BOUNDS for a snapshot is written to a dump file for a triclinic box, +an orthogonal bounding box which encloses the triclinic simulation box +is output, along with the 3 tilt factors (xy, xz, yz) of the triclinic +box, formatted as follows: + +ITEM: BOX BOUNDS xy xz yz +xlo_bound xhi_bound xy +ylo_bound yhi_bound xz +zlo_bound zhi_bound yz :pre + +This bounding box is convenient for many visualization programs and is +calculated from the 9 triclinic box parameters +(xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) as follows: + +xlo_bound = xlo + MIN(0.0,xy,xz,xy+xz) +xhi_bound = xhi + MAX(0.0,xy,xz,xy+xz) +ylo_bound = ylo + MIN(0.0,yz) +yhi_bound = yhi + MAX(0.0,yz) +zlo_bound = zlo +zhi_bound = zhi :pre + +These formulas can be inverted if you need to convert the bounding box +back into the triclinic box parameters, e.g. xlo = xlo_bound - +MIN(0.0,xy,xz,xy+xz). + +One use of triclinic simulation boxes is to model solid-state crystals +with triclinic symmetry. The "lattice"_lattice.html command can be +used with non-orthogonal basis vectors to define a lattice that will +tile a triclinic simulation box via the +"create_atoms"_create_atoms.html command. + +A second use is to run Parinello-Rahman dynamics via the "fix +npt"_fix_nh.html command, which will adjust the xy, xz, yz tilt +factors to compensate for off-diagonal components of the pressure +tensor. The analog for an "energy minimization"_minimize.html is +the "fix box/relax"_fix_box_relax.html command. + +A third use is to shear a bulk solid to study the response of the +material. The "fix deform"_fix_deform.html command can be used for +this purpose. It allows dynamic control of the xy, xz, yz tilt +factors as a simulation runs. This is discussed in the next section +on non-equilibrium MD (NEMD) simulations. diff --git a/doc/src/Howto_viscosity.txt b/doc/src/Howto_viscosity.txt new file mode 100644 index 0000000000..4760607fd5 --- /dev/null +++ b/doc/src/Howto_viscosity.txt @@ -0,0 +1,133 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Calculate viscosity :h3 + +The shear viscosity eta of a fluid can be measured in at least 5 ways +using various options in LAMMPS. See the examples/VISCOSITY directory +for scripts that implement the 5 methods discussed here for a simple +Lennard-Jones fluid model. Also, see the "Howto +kappa"_Howto_kappa.html doc page for an analogous discussion for +thermal conductivity. + +Eta is a measure of the propensity of a fluid to transmit momentum in +a direction perpendicular to the direction of velocity or momentum +flow. Alternatively it is the resistance the fluid has to being +sheared. It is given by + +J = -eta grad(Vstream) + +where J is the momentum flux in units of momentum per area per time. +and grad(Vstream) is the spatial gradient of the velocity of the fluid +moving in another direction, normal to the area through which the +momentum flows. Viscosity thus has units of pressure-time. + +The first method is to perform a non-equilibrium MD (NEMD) simulation +by shearing the simulation box via the "fix deform"_fix_deform.html +command, and using the "fix nvt/sllod"_fix_nvt_sllod.html command to +thermostat the fluid via the SLLOD equations of motion. +Alternatively, as a second method, one or more moving walls can be +used to shear the fluid in between them, again with some kind of +thermostat that modifies only the thermal (non-shearing) components of +velocity to prevent the fluid from heating up. + +In both cases, the velocity profile setup in the fluid by this +procedure can be monitored by the "fix ave/chunk"_fix_ave_chunk.html +command, which determines grad(Vstream) in the equation above. +E.g. the derivative in the y-direction of the Vx component of fluid +motion or grad(Vstream) = dVx/dy. The Pxy off-diagonal component of +the pressure or stress tensor, as calculated by the "compute +pressure"_compute_pressure.html command, can also be monitored, which +is the J term in the equation above. See the "Howto +nemd"_Howto_nemd.html doc page for details on NEMD simulations. + +The third method is to perform a reverse non-equilibrium MD simulation +using the "fix viscosity"_fix_viscosity.html command which implements +the rNEMD algorithm of Muller-Plathe. Momentum in one dimension is +swapped between atoms in two different layers of the simulation box in +a different dimension. This induces a velocity gradient which can be +monitored with the "fix ave/chunk"_fix_ave_chunk.html command. +The fix tallies the cumulative momentum transfer that it performs. +See the "fix viscosity"_fix_viscosity.html command for details. + +The fourth method is based on the Green-Kubo (GK) formula which +relates the ensemble average of the auto-correlation of the +stress/pressure tensor to eta. This can be done in a fully +equilibrated simulation which is in contrast to the two preceding +non-equilibrium methods, where momentum flows continuously through the +simulation box. + +Here is an example input script that calculates the viscosity of +liquid Ar via the GK formalism: + +# Sample LAMMPS input script for viscosity of liquid Ar :pre + +units real +variable T equal 86.4956 +variable V equal vol +variable dt equal 4.0 +variable p equal 400 # correlation length +variable s equal 5 # sample interval +variable d equal $p*$s # dump interval :pre + +# convert from LAMMPS real units to SI :pre + +variable kB equal 1.3806504e-23 # \[J/K/] Boltzmann +variable atm2Pa equal 101325.0 +variable A2m equal 1.0e-10 +variable fs2s equal 1.0e-15 +variable convert equal $\{atm2Pa\}*$\{atm2Pa\}*$\{fs2s\}*$\{A2m\}*$\{A2m\}*$\{A2m\} :pre + +# setup problem :pre + +dimension 3 +boundary p p p +lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1 +region box block 0 4 0 4 0 4 +create_box 1 box +create_atoms 1 box +mass 1 39.948 +pair_style lj/cut 13.0 +pair_coeff * * 0.2381 3.405 +timestep $\{dt\} +thermo $d :pre + +# equilibration and thermalization :pre + +velocity all create $T 102486 mom yes rot yes dist gaussian +fix NVT all nvt temp $T $T 10 drag 0.2 +run 8000 :pre + +# viscosity calculation, switch to NVE if desired :pre + +#unfix NVT +#fix NVE all nve :pre + +reset_timestep 0 +variable pxy equal pxy +variable pxz equal pxz +variable pyz equal pyz +fix SS all ave/correlate $s $p $d & + v_pxy v_pxz v_pyz type auto file S0St.dat ave running +variable scale equal $\{convert\}/($\{kB\}*$T)*$V*$s*$\{dt\} +variable v11 equal trap(f_SS\[3\])*$\{scale\} +variable v22 equal trap(f_SS\[4\])*$\{scale\} +variable v33 equal trap(f_SS\[5\])*$\{scale\} +thermo_style custom step temp press v_pxy v_pxz v_pyz v_v11 v_v22 v_v33 +run 100000 +variable v equal (v_v11+v_v22+v_v33)/3.0 +variable ndens equal count(all)/vol +print "average viscosity: $v \[Pa.s\] @ $T K, $\{ndens\} /A^3" :pre + +The fifth method is related to the above Green-Kubo method, +but uses the Einstein formulation, analogous to the Einstein +mean-square-displacement formulation for self-diffusivity. The +time-integrated momentum fluxes play the role of Cartesian +coordinates, whose mean-square displacement increases linearly +with time at sufficiently long times. diff --git a/doc/src/Howto_viz.txt b/doc/src/Howto_viz.txt new file mode 100644 index 0000000000..53635442c8 --- /dev/null +++ b/doc/src/Howto_viz.txt @@ -0,0 +1,40 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Visualize LAMMPS snapshots :h3 + +LAMMPS itself does not do visualization, but snapshots from LAMMPS +simulations can be visualized (and analyzed) in a variety of ways. + +Mention dump image and dump movie. + +LAMMPS snapshots are created by the "dump"_dump.html command which can +create files in several formats. The native LAMMPS dump format is a +text file (see "dump atom" or "dump custom") which can be visualized +by several popular visualization tools. The "dump +image"_dump_image.html and "dump movie"_dump_image.html styles can +output internally rendered images and convert a sequence of them to a +movie during the MD run. Several programs included with LAMMPS as +auxiliary tools can convert between LAMMPS format files and other +formats. See the "Tools"_Tools.html doc page for details. + +A Python-based toolkit distributed by our group can read native LAMMPS +dump files, including custom dump files with additional columns of +user-specified atom information, and convert them to various formats +or pipe them into visualization software directly. See the "Pizza.py +WWW site"_pizza for details. Specifically, Pizza.py can convert +LAMMPS dump files into PDB, XYZ, "Ensight"_ensight, and VTK formats. +Pizza.py can pipe LAMMPS dump files directly into the Raster3d and +RasMol visualization programs. Pizza.py has tools that do interactive +3d OpenGL visualization and one that creates SVG images of dump file +snapshots. + +:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) +:link(ensight,http://www.ensight.com) +:link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A) diff --git a/doc/src/Howto_walls.txt b/doc/src/Howto_walls.txt new file mode 100644 index 0000000000..7b0f8c0cfa --- /dev/null +++ b/doc/src/Howto_walls.txt @@ -0,0 +1,80 @@ +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Walls :h3 + +Walls in an MD simulation are typically used to bound particle motion, +i.e. to serve as a boundary condition. + +Walls in LAMMPS can be of rough (made of particles) or idealized +surfaces. Ideal walls can be smooth, generating forces only in the +normal direction, or frictional, generating forces also in the +tangential direction. + +Rough walls, built of particles, can be created in various ways. The +particles themselves can be generated like any other particle, via the +"lattice"_lattice.html and "create_atoms"_create_atoms.html commands, +or read in via the "read_data"_read_data.html command. + +Their motion can be constrained by many different commands, so that +they do not move at all, move together as a group at constant velocity +or in response to a net force acting on them, move in a prescribed +fashion (e.g. rotate around a point), etc. Note that if a time +integration fix like "fix nve"_fix_nve.html or "fix nvt"_fix_nh.html +is not used with the group that contains wall particles, their +positions and velocities will not be updated. + +"fix aveforce"_fix_aveforce.html - set force on particles to average value, so they move together +"fix setforce"_fix_setforce.html - set force on particles to a value, e.g. 0.0 +"fix freeze"_fix_freeze.html - freeze particles for use as granular walls +"fix nve/noforce"_fix_nve_noforce.html - advect particles by their velocity, but without force +"fix move"_fix_move.html - prescribe motion of particles by a linear velocity, oscillation, rotation, variable :ul + +The "fix move"_fix_move.html command offers the most generality, since +the motion of individual particles can be specified with +"variable"_variable.html formula which depends on time and/or the +particle position. + +For rough walls, it may be useful to turn off pairwise interactions +between wall particles via the "neigh_modify +exclude"_neigh_modify.html command. + +Rough walls can also be created by specifying frozen particles that do +not move and do not interact with mobile particles, and then tethering +other particles to the fixed particles, via a "bond"_bond_style.html. +The bonded particles do interact with other mobile particles. + +Idealized walls can be specified via several fix commands. "Fix +wall/gran"_fix_wall_gran.html creates frictional walls for use with +granular particles; all the other commands create smooth walls. + +"fix wall/reflect"_fix_wall_reflect.html - reflective flat walls +"fix wall/lj93"_fix_wall.html - flat walls, with Lennard-Jones 9/3 potential +"fix wall/lj126"_fix_wall.html - flat walls, with Lennard-Jones 12/6 potential +"fix wall/colloid"_fix_wall.html - flat walls, with "pair_style colloid"_pair_colloid.html potential +"fix wall/harmonic"_fix_wall.html - flat walls, with repulsive harmonic spring potential +"fix wall/region"_fix_wall_region.html - use region surface as wall +"fix wall/gran"_fix_wall_gran.html - flat or curved walls with "pair_style granular"_pair_gran.html potential :ul + +The {lj93}, {lj126}, {colloid}, and {harmonic} styles all allow the +flat walls to move with a constant velocity, or oscillate in time. +The "fix wall/region"_fix_wall_region.html command offers the most +generality, since the region surface is treated as a wall, and the +geometry of the region can be a simple primitive volume (e.g. a +sphere, or cube, or plane), or a complex volume made from the union +and intersection of primitive volumes. "Regions"_region.html can also +specify a volume "interior" or "exterior" to the specified primitive +shape or {union} or {intersection}. "Regions"_region.html can also be +"dynamic" meaning they move with constant velocity, oscillate, or +rotate. + +The only frictional idealized walls currently in LAMMPS are flat or +curved surfaces specified by the "fix wall/gran"_fix_wall_gran.html +command. At some point we plan to allow regoin surfaces to be used as +frictional walls, as well as triangulated surfaces. diff --git a/doc/src/Intro.txt b/doc/src/Intro.txt new file mode 100644 index 0000000000..a634799721 --- /dev/null +++ b/doc/src/Intro.txt @@ -0,0 +1,43 @@ +"Previous Section"_Manual.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Section_start.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands.html#comm) + +:line + +Introduction :h2 + +The "LAMMPS website"_lws is the best introduction to LAMMPS. + +Here is a list of webpages you can browse: + +"Brief intro and significant recent features"_lws +"List of features"_http://lammps.sandia.gov/features.html +"List of non-features"_http://lammps.sandia.gov/non_features.html +"Recent bug fixes and new features"_http://lammps.sandia.gov/bug.html :ul + +"Download info"_http://lammps.sandia.gov/download.html +"GitHub site"_https://github.com/lammps/lammps +"SourceForge site"_https://sourceforge.net/projects/lammps +"Open source and licensing info"_http://lammps.sandia.gov/open_source.html :ul + +"Glossary of MD terms relevant to LAMMPS"_http://lammps.sandia.gov/glossary.html +"LAMMPS highlights with images"_http://lammps.sandia.gov/pictures.html +"LAMMPS highlights with movies"_http://lammps.sandia.gov/movies.html +"Mail list"_http://lammps.sandia.gov/mail.html +"Workshops"_http://lammps.sandia.gov/workshops.html +"Tutorials"_http://lammps.sandia.gov/tutorials.html +"Developer guide"_http://lammps.sandia.gov/Developer.pdf :ul + +"Pre- and post-processing tools for LAMMPS"_http://lammps.sandia.gov/prepost.html +"Other software usable with LAMMPS"_http://lammps.sandia.gov/offsite.html +"Viz tools usable with LAMMPS"_http://lammps.sandia.gov/viz.html :ul + +"Benchmark performance"_http://lammps.sandia.gov/bench.html +"Publications that have cited LAMMPS"_http://lammps.sandia.gov/papers.html +"Authors of the LAMMPS code"_http://lammps.sandia.gov/authors.html +"History of LAMMPS development"_http://lammps.sandia.gov/history.html +"Funding for LAMMPS"_http://lammps.sandia.gov/funding.html :ul diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 31b8a6a1d4..3fe5a25fbb 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,5 +1,5 @@ -< + LAMMPS Users Manual @@ -18,87 +18,47 @@ :line +

+ LAMMPS Documentation :c,h1 -16 Jul 2018 version :c,h2 +16 Mar 2018 version :c,h2 -Version info: :h3 - -The LAMMPS "version" is the date when it was released, such as 1 May -2010. LAMMPS is updated continuously. Whenever we fix a bug or add a -feature, we release it immediately, and post a notice on "this page of -the WWW site"_bug. Every 2-4 months one of the incremental releases -is subjected to more thorough testing and labeled as a {stable} version. - -Each dated copy of LAMMPS contains all the -features and bug-fixes up to and including that version date. The -version date is printed to the screen and logfile every time you run -LAMMPS. It is also in the file src/version.h and in the LAMMPS -directory name created when you unpack a tarball, and at the top of -the first page of the manual (this page). - -If you browse the HTML doc pages on the LAMMPS WWW site, they always -describe the most current [development] version of LAMMPS. :ulb,l - -If you browse the HTML doc pages included in your tarball, they -describe the version you have. :l - -The "PDF file"_Manual.pdf on the WWW site or in the tarball is updated -about once per month. This is because it is large, and we don't want -it to be part of every patch. :l - -There is also a "Developer.pdf"_Developer.pdf file in the doc -directory, which describes the internal structure and algorithms of -LAMMPS. :l -:ule +"What is a LAMMPS version?"_Manual_version.html LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS is a classical molecular dynamics simulation code designed to -run efficiently on parallel computers. It was developed at Sandia -National Laboratories, a US Department of Energy facility, with +run efficiently on parallel computers. It was developed originally at +Sandia National Laboratories, a US Department of Energy facility, with funding from the DOE. It is an open-source code, distributed freely under the terms of the GNU Public License (GPL). -The current core group of LAMMPS developers is at Sandia National -Labs and Temple University: - -"Steve Plimpton"_sjp, sjplimp at sandia.gov :ulb,l -Aidan Thompson, athomps at sandia.gov :l -Stan Moore, stamoor at sandia.gov :l -"Axel Kohlmeyer"_ako, akohlmey at gmail.com :l -:ule - -Past core developers include Paul Crozier, Ray Shan and Mark Stevens, -all at Sandia. The [LAMMPS home page] at -"http://lammps.sandia.gov"_http://lammps.sandia.gov has more information -about the code and its uses. Interaction with external LAMMPS developers, -bug reports and feature requests are mainly coordinated through the -"LAMMPS project on GitHub."_https://github.com/lammps/lammps -The lammps.org domain, currently hosting "public continuous integration -testing"_https://ci.lammps.org/job/lammps/ and "precompiled Linux -RPM and Windows installer packages"_http://packages.lammps.org is located -at Temple University and managed by Richard Berger, -richard.berger at temple.edu. - -:link(bug,http://lammps.sandia.gov/bug.html) -:link(sjp,http://www.sandia.gov/~sjplimp) -:link(ako,http://goo.gl/1wk0) +The "LAMMPS website"_lws has information about the code authors, a +"mail list"_http://lammps.sandia.gov where users can post questions, +and a "GitHub site"https://github.com/lammps/lammps where all LAMMPS +development is coordinated. :line -The LAMMPS documentation is organized into the following sections. If -you find errors or omissions in this manual or have suggestions for -useful information to add, please send an email to the developers so -we can improve the LAMMPS documentation. - -Once you are familiar with LAMMPS, you may want to bookmark "this -page"_Section_commands.html#comm at Section_commands.html#comm since -it gives quick access to documentation for all LAMMPS commands. - "PDF file"_Manual.pdf of the entire manual, generated by "htmldoc"_http://freecode.com/projects/htmldoc +The content for this manual is part of the LAMMPS distribution. +You can build a local copy of the Manual as HTML pages or a PDF file, +by following the steps on the "this page"_Build_manual.html. + +There is also a "Developer.pdf"_Developer.pdf document which gives +a brief description of the basic code structure of LAMMPS. + +:line + +This manual is organized into the following sections. + +Once you are familiar with LAMMPS, you may want to bookmark "this +page"_Commands.html since it gives quick access to a doc page for +every LAMMPS command. + -"Introduction"_Section_intro.html :olb,l - 1.1 "What is LAMMPS"_intro_1 :ulb,b - 1.2 "LAMMPS features"_intro_2 :b - 1.3 "LAMMPS non-features"_intro_3 :b - 1.4 "Open source distribution"_intro_4 :b - 1.5 "Acknowledgments and citations"_intro_5 :ule,b +"Introduction"_Intro.html :olb,l "Getting started"_Section_start.html :l 2.1 "What's in the LAMMPS distribution"_start_1 :ulb,b 2.2 "Making LAMMPS"_start_2 :b @@ -168,50 +121,14 @@ END_RST --> 3.5 "Commands listed alphabetically"_cmd_5 :ule,b "Optional packages"_Packages.html :l "Accelerate performance"_Speed.html :l -"How-to discussions"_Section_howto.html :l - 6.1 "Restarting a simulation"_howto_1 :ulb,b - 6.2 "2d simulations"_howto_2 :b - 6.3 "CHARMM and AMBER force fields"_howto_3 :b - 6.4 "Running multiple simulations from one input script"_howto_4 :b - 6.5 "Multi-replica simulations"_howto_5 :b - 6.6 "Granular models"_howto_6 :b - 6.7 "TIP3P water model"_howto_7 :b - 6.8 "TIP4P water model"_howto_8 :b - 6.9 "SPC water model"_howto_9 :b - 6.10 "Coupling LAMMPS to other codes"_howto_10 :b - 6.11 "Visualizing LAMMPS snapshots"_howto_11 :b - 6.12 "Triclinic (non-orthogonal) simulation boxes"_howto_12 :b - 6.13 "NEMD simulations"_howto_13 :b - 6.14 "Finite-size spherical and aspherical particles"_howto_14 :b - 6.15 "Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_howto_15 :b - 6.16 "Thermostatting, barostatting, and compute temperature"_howto_16 :b - 6.17 "Walls"_howto_17 :b - 6.18 "Elastic constants"_howto_18 :b - 6.19 "Library interface to LAMMPS"_howto_19 :b - 6.20 "Calculating thermal conductivity"_howto_20 :b - 6.21 "Calculating viscosity"_howto_21 :b - 6.22 "Calculating a diffusion coefficient"_howto_22 :b - 6.23 "Using chunks to calculate system properties"_howto_23 :b - 6.24 "Setting parameters for pppm/disp"_howto_24 :b - 6.25 "Polarizable models"_howto_25 :b - 6.26 "Adiabatic core/shell model"_howto_26 :b - 6.27 "Drude induced dipoles"_howto_27 :ule,b +"How-to discussions"_Howto.html :l "Example scripts"_Examples.html :l "Auxiliary tools"_Tools.html :l "Modify & extend LAMMPS"_Modify.html :l "Use Python with LAMMPS"_Python.html :l "Errors"_Errors.html :l -"Future and history"_Section_history.html :l - 13.1 "Coming attractions"_hist_1 :ulb,b - 13.2 "Past versions"_hist_2 :ule,b :ole -:link(intro_1,Section_intro.html#intro_1) -:link(intro_2,Section_intro.html#intro_2) -:link(intro_3,Section_intro.html#intro_3) -:link(intro_4,Section_intro.html#intro_4) -:link(intro_5,Section_intro.html#intro_5) - :link(start_1,Section_start.html#start_1) :link(start_2,Section_start.html#start_2) :link(start_3,Section_start.html#start_3) @@ -227,36 +144,6 @@ END_RST --> :link(cmd_4,Section_commands.html#cmd_4) :link(cmd_5,Section_commands.html#cmd_5) -:link(howto_1,Section_howto.html#howto_1) -:link(howto_2,Section_howto.html#howto_2) -:link(howto_3,Section_howto.html#howto_3) -:link(howto_4,Section_howto.html#howto_4) -:link(howto_5,Section_howto.html#howto_5) -:link(howto_6,Section_howto.html#howto_6) -:link(howto_7,Section_howto.html#howto_7) -:link(howto_8,Section_howto.html#howto_8) -:link(howto_9,Section_howto.html#howto_9) -:link(howto_10,Section_howto.html#howto_10) -:link(howto_11,Section_howto.html#howto_11) -:link(howto_12,Section_howto.html#howto_12) -:link(howto_13,Section_howto.html#howto_13) -:link(howto_14,Section_howto.html#howto_14) -:link(howto_15,Section_howto.html#howto_15) -:link(howto_16,Section_howto.html#howto_16) -:link(howto_17,Section_howto.html#howto_17) -:link(howto_18,Section_howto.html#howto_18) -:link(howto_19,Section_howto.html#howto_19) -:link(howto_20,Section_howto.html#howto_20) -:link(howto_21,Section_howto.html#howto_21) -:link(howto_22,Section_howto.html#howto_22) -:link(howto_23,Section_howto.html#howto_23) -:link(howto_24,Section_howto.html#howto_24) -:link(howto_25,Section_howto.html#howto_25) -:link(howto_26,Section_howto.html#howto_26) -:link(howto_27,Section_howto.html#howto_27) - -:link(hist_1,Section_history.html#hist_1) -:link(hist_2,Section_history.html#hist_2) diff --git a/doc/src/Manual_version.txt b/doc/src/Manual_version.txt new file mode 100644 index 0000000000..db4301b6ea --- /dev/null +++ b/doc/src/Manual_version.txt @@ -0,0 +1,33 @@ +"Higher level section"_Manual.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +What does a LAMMPS version mean: :h3 + +The LAMMPS "version" is the date when it was released, such as 1 May +2014. LAMMPS is updated continuously. Whenever we fix a bug or add a +feature, we release it in the next {patch} release, which are +typically made every couple of weeks. Info on patch releases are on +"this website page"_http://lammps.sandia.gov/bug.html. Every few +months, the latest patch release is subjected to more thorough testing +and labeled as a {stable} version. + +Each version of LAMMPS contains all the features and bug-fixes up to +and including its version date. + +The version date is printed to the screen and logfile every time you +run LAMMPS. It is also in the file src/version.h and in the LAMMPS +directory name created when you unpack a tarball. And it is on the +first page of the "manual"_Manual.html. + +If you browse the HTML doc pages on the LAMMPS WWW site, they always +describe the most current patch release of LAMMPS. :ulb,l + +If you browse the HTML doc pages included in your tarball, they +describe the version you have, which may be older. :l,ule + diff --git a/doc/src/Modify_body.txt b/doc/src/Modify_body.txt index b1dc8130cd..a0627ebdda 100644 --- a/doc/src/Modify_body.txt +++ b/doc/src/Modify_body.txt @@ -14,10 +14,9 @@ Body particles can represent complex entities, such as surface meshes of discrete points, collections of sub-particles, deformable objects, etc. -See "Section 6.14"_Section_howto.html#howto_14 of the manual for -an overview of using body particles and the "body"_body.html doc page -for details on the various body styles LAMMPS supports. New styles -can be created to add new kinds of body particles to LAMMPS. +See the "Howto body"_Howto_body.html doc page for an overview of using +body particles and the various body styles LAMMPS supports. New +styles can be created to add new kinds of body particles to LAMMPS. Body_nparticle.cpp is an example of a body particle that is treated as a rigid body containing N sub-particles. diff --git a/doc/src/Modify_contribute.txt b/doc/src/Modify_contribute.txt index 80795b5e20..9d47b08251 100644 --- a/doc/src/Modify_contribute.txt +++ b/doc/src/Modify_contribute.txt @@ -32,14 +32,14 @@ How quickly your contribution will be integrated depends largely on how much effort it will cause to integrate and test it, how much it requires changes to the core codebase, and of how much interest it is to the larger LAMMPS community. Please see below for a checklist of -typical requirements. Once you have prepared everything, see "this -tutorial"_tutorial_github.html for instructions on how to submit your -changes or new files through a GitHub pull request. If you prefer to -submit patches or full files, you should first make certain, that your -code works correctly with the latest patch-level version of LAMMPS and -contains all bugfixes from it. Then create a gzipped tar file of all -changed or added files or a corresponding patch file using 'diff -u' -or 'diff -c' and compress it with gzip. Please only use gzip +typical requirements. Once you have prepared everything, see the +"Howto github"_Howto_github.html doc page for instructions on how to +submit your changes or new files through a GitHub pull request. If you +prefer to submit patches or full files, you should first make certain, +that your code works correctly with the latest patch-level version of +LAMMPS and contains all bugfixes from it. Then create a gzipped tar +file of all changed or added files or a corresponding patch file using +'diff -u' or 'diff -c' and compress it with gzip. Please only use gzip compression, as this works well on all platforms. If the new features/files are broadly useful we may add them as core @@ -54,8 +54,9 @@ packages by typing "make package" in the LAMMPS src directory. Note that by providing us files to release, you are agreeing to make them open-source, i.e. we can release them under the terms of the GPL, -used as a license for the rest of LAMMPS. See "Section -1.4"_Section_intro.html#intro_4 for details. +used as a license for the rest of LAMMPS. See the "Open +source"_http://lammps.sandia.gov/open_source.html page on the LAMMPS +website for details. With user packages and files, all we are really providing (aside from the fame and fortune that accompanies having your name in the source diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index af18d097d9..543578054c 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -112,7 +112,7 @@ make machine :pre [Supporting info:] src/ASPHERE: filenames -> commands -"Section 6.14"_Section_howto.html#howto_14 +"Howto spherical"_Howto_spherical.html "pair_style gayberne"_pair_gayberne.html "pair_style resquared"_pair_resquared.html "doc/PDF/pair_gayberne_extra.pdf"_PDF/pair_gayberne_extra.pdf @@ -130,7 +130,8 @@ BODY package :link(BODY),h4 Body-style particles with internal structure. Computes, time-integration fixes, pair styles, as well as the body styles -themselves. See the "body"_body.html doc page for an overview. +themselves. See the "Howto body"_Howto_body.html doc page for an +overview. [Install or un-install:] @@ -143,7 +144,7 @@ make machine :pre [Supporting info:] src/BODY filenames -> commands -"body"_body.html +"Howto_body"_Howto_body.html "atom_style body"_atom_style.html "fix nve/body"_fix_nve_body.html "pair_style body"_pair_body.html @@ -258,9 +259,9 @@ Compute and pair styles that implement the adiabatic core/shell model for polarizability. The pair styles augment Born, Buckingham, and Lennard-Jones styles with core/shell capabilities. The "compute temp/cs"_compute_temp_cs.html command calculates the temperature of a -system with core/shell particles. See "Section -6.26"_Section_howto.html#howto_26 for an overview of how to use this -package. +system with core/shell particles. See the "Howto +coreshell"_Howto_coreshell.html doc page for an overview of how to use +this package. [Author:] Hendrik Heenen (Technical U of Munich). @@ -275,8 +276,8 @@ make machine :pre [Supporting info:] src/CORESHELL: filenames -> commands -"Section 6.26"_Section_howto.html#howto_26 -"Section 6.25"_Section_howto.html#howto_25 +"Howto coreshell"_Howto_coreshell.html +"Howto polarizable"_Howto_polarizable.html "compute temp/cs"_compute_temp_cs.html "pair_style born/coul/long/cs"_pair_cs.html "pair_style buck/coul/long/cs"_pair_cs.html @@ -418,7 +419,7 @@ make machine :pre [Supporting info:] src/GRANULAR: filenames -> commands -"Section 6.6"_Section_howto.html#howto_6, +"Howto granular"_Howto_granular.html "fix pour"_fix_pour.html "fix wall/gran"_fix_wall_gran.html "pair_style gran/hooke"_pair_gran.html @@ -625,9 +626,9 @@ make machine :pre src/KSPACE: filenames -> commands "kspace_style"_kspace_style.html "doc/PDF/kspace.pdf"_PDF/kspace.pdf -"Section 6.7"_Section_howto.html#howto_7 -"Section 6.8"_Section_howto.html#howto_8 -"Section 6.9"_Section_howto.html#howto_9 +"Howto tip3p"_Howto_tip3p.html +"Howto tip4p"_Howto_tip4p.html +"Howto spc"_Howto_spc.html "pair_style coul"_pair_coul.html Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 with "long" or "msm" in pair style name examples/peptide @@ -876,7 +877,7 @@ src/MOLECULE: filenames -> commands "improper_style"_improper_style.html "pair_style hbond/dreiding/lj"_pair_hbond_dreiding.html "pair_style lj/charmm/coul/charmm"_pair_charmm.html -"Section 6.3"_Section_howto.html#howto_3 +"Howto bioFF"_Howto_bioFF.html examples/cmap examples/dreiding examples/micelle, @@ -1114,10 +1115,10 @@ PYTHON package :link(PYTHON),h4 A "python"_python.html command which allow you to execute Python code from a LAMMPS input script. The code can be in a separate file or -embedded in the input script itself. See "Section -11.2"_Section_python.html#py_2 for an overview of using Python from -LAMMPS in this manner and the entire section for other ways to use -LAMMPS and Python together. +embedded in the input script itself. See the "Python +call"_Python_call.html doc page for an overview of using Python from +LAMMPS in this manner and all the "Python"_Python.html doc pages for +other ways to use LAMMPS and Python together. [Install or un-install:] @@ -1138,7 +1139,7 @@ to Makefile.lammps) if the LAMMPS build fails. [Supporting info:] src/PYTHON: filenames -> commands -"Section 11"_Section_python.html +"Python call"_Python.html lib/python/README examples/python :ul @@ -1228,8 +1229,8 @@ REPLICA package :link(REPLICA),h4 [Contents:] A collection of multi-replica methods which can be used when running -multiple LAMMPS simulations (replicas). See "Section -6.5"_Section_howto.html#howto_5 for an overview of how to run +multiple LAMMPS simulations (replicas). See the "Howto +replica"_Howto_replica.html doc page for an overview of how to run multi-replica simulations in LAMMPS. Methods in the package include nudged elastic band (NEB), parallel replica dynamics (PRD), temperature accelerated dynamics (TAD), parallel tempering, and a @@ -1248,7 +1249,7 @@ make machine :pre [Supporting info:] src/REPLICA: filenames -> commands -"Section 6.5"_Section_howto.html#howto_5 +"Howto replica"_Howto_replica.html "neb"_neb.html "prd"_prd.html "tad"_tad.html @@ -1798,10 +1799,10 @@ USER-DRUDE package :link(USER-DRUDE),h4 [Contents:] Fixes, pair styles, and a compute to simulate thermalized Drude -oscillators as a model of polarization. See "Section -6.27"_Section_howto.html#howto_27 for an overview of how to use the -package. There are auxiliary tools for using this package in -tools/drude. +oscillators as a model of polarization. See the "Howto +drude"_Howto_drude.html and "Howto drude2"_Howto_drude2.html doc pages +for an overview of how to use the package. There are auxiliary tools +for using this package in tools/drude. [Authors:] Alain Dequidt (U Blaise Pascal Clermont-Ferrand), Julien Devemy (CNRS), and Agilio Padua (U Blaise Pascal). @@ -1817,8 +1818,9 @@ make machine :pre [Supporting info:] src/USER-DRUDE: filenames -> commands -"Section 6.27"_Section_howto.html#howto_27 -"Section 6.25"_Section_howto.html#howto_25 +"Howto drude"_Howto_drude.html +"Howto drude2"_Howto_drude2.html +"Howto polarizable"_Howto_polarizable.html src/USER-DRUDE/README "fix drude"_fix_drude.html "fix drude/transform/*"_fix_drude_transform.html @@ -2158,7 +2160,7 @@ make machine :pre src/USER-MANIFOLD: filenames -> commands src/USER-MANIFOLD/README -"doc/manifolds"_manifolds.html +"Howto manifold"_Howto_manifold.html "fix manifoldforce"_fix_manifoldforce.html "fix nve/manifold/rattle"_fix_nve_manifold_rattle.html "fix nvt/manifold/rattle"_fix_nvt_manifold_rattle.html diff --git a/doc/src/Packages_standard.txt b/doc/src/Packages_standard.txt index 095bf699a6..b2c06eebfd 100644 --- a/doc/src/Packages_standard.txt +++ b/doc/src/Packages_standard.txt @@ -31,15 +31,15 @@ int = internal library: provided with LAMMPS, but you may need to build it ext = external library: you will need to download and install it on your machine :ul Package, Description, Doc page, Example, Library -"ASPHERE"_Packages_details.html#ASPHERE, aspherical particle models, "Section 6.6.14"_Section_howto.html#howto_14, ellipse, - -"BODY"_Packages_details.html#BODY, body-style particles, "body"_body.html, body, - +"ASPHERE"_Packages_details.html#ASPHERE, aspherical particle models, "Howto spherical"_Howto_spherical.html, ellipse, - +"BODY"_Packages_details.html#BODY, body-style particles, "Howto body"_Howto_body.html, body, - "CLASS2"_Packages_details.html#CLASS2, class 2 force fields, "pair_style lj/class2"_pair_class2.html, -, - "COLLOID"_Packages_details.html#COLLOID, colloidal particles, "atom_style colloid"_atom_style.html, colloid, - "COMPRESS"_Packages_details.html#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys -"CORESHELL"_Packages_details.html#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, - +"CORESHELL"_Packages_details.html#CORESHELL, adiabatic core/shell model, "Howto coreshell"_Howto_coreshell.html, coreshell, - "DIPOLE"_Packages_details.html#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, - "GPU"_Packages_details.html#GPU, GPU-enabled styles, "Section gpu"_Speed_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int -"GRANULAR"_Packages_details.html#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, - +"GRANULAR"_Packages_details.html#GRANULAR, granular systems, "Howto granular"_Howto_granular.html, pour, - "KIM"_Packages_details.html#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext "KOKKOS"_Packages_details.html#KOKKOS, Kokkos-enabled styles, "Speed kokkos"_Speed_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - "KSPACE"_Packages_details.html#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, - @@ -48,7 +48,7 @@ Package, Description, Doc page, Example, Library "MC"_Packages_details.html#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, - "MEAM"_Packages_details.html#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int "MISC"_Packages_details.html#MISC, miscellanous single-file commands, -, -, - -"MOLECULE"_Packages_details.html#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, - +"MOLECULE"_Packages_details.html#MOLECULE, molecular system force fields, "Howto bioFF"_Howto_bioFF.html, peptide, - "MPIIO"_Packages_details.html#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, - "MSCG"_Packages_details.html#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext "OPT"_Packages_details.html#OPT, optimized pair styles, "Speed opt"_Speed_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - @@ -57,7 +57,7 @@ Package, Description, Doc page, Example, Library "PYTHON"_Packages_details.html#PYTHON, embed Python code in an input script, "python"_python.html, python, sys "QEQ"_Packages_details.html#QEQ, QEq charge equilibration, "fix qeq"_fix_qeq.html, qeq, - "REAX"_Packages_details.html#REAX, ReaxFF potential (Fortran), "pair_style reax"_pair_reax.html, reax, int -"REPLICA"_Packages_details.html#REPLICA, multi-replica methods, "Section 6.6.5"_Section_howto.html#howto_5, tad, - +"REPLICA"_Packages_details.html#REPLICA, multi-replica methods, "Howto replica"_Howto_replica.html, tad, - "RIGID"_Packages_details.html#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, - "SHOCK"_Packages_details.html#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, - "SNAP"_Packages_details.html#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, - diff --git a/doc/src/Packages_user.txt b/doc/src/Packages_user.txt index 73c7fdb65d..0465296980 100644 --- a/doc/src/Packages_user.txt +++ b/doc/src/Packages_user.txt @@ -46,7 +46,7 @@ Package, Description, Doc page, Example, Library "USER-COLVARS"_Packages_details.html#USER-COLVARS, collective variables library, "fix colvars"_fix_colvars.html, USER/colvars, int "USER-DIFFRACTION"_Packages_details.html#USER-DIFFRACTION, virtual x-ray and electron diffraction,"compute xrd"_compute_xrd.html, USER/diffraction, - "USER-DPD"_Packages_details.html#USER-DPD, reactive dissipative particle dynamics, src/USER-DPD/README, USER/dpd, - -"USER-DRUDE"_Packages_details.html#USER-DRUDE, Drude oscillators, "tutorial"_tutorial_drude.html, USER/drude, - +"USER-DRUDE"_Packages_details.html#USER-DRUDE, Drude oscillators, "Howto drude"_Howto_drude.html, USER/drude, - "USER-EFF"_Packages_details.html#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, - "USER-FEP"_Packages_details.html#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, - "USER-H5MD"_Packages_details.html#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext diff --git a/doc/src/Python_library.txt b/doc/src/Python_library.txt index 4babbb746c..db16c39a47 100644 --- a/doc/src/Python_library.txt +++ b/doc/src/Python_library.txt @@ -21,8 +21,8 @@ from lammps import lammps :pre These are the methods defined by the lammps module. If you look at the files src/library.cpp and src/library.h you will see they correspond one-to-one with calls you can make to the LAMMPS library -from a C++ or C or Fortran program, and which are described in -"Section 6.19"_Section_howto.html#howto_19 of the manual. +from a C++ or C or Fortran program, and which are described on the +"Howto library"_Howto_library.html doc page. The python/examples directory has Python scripts which show how Python can run LAMMPS, grab data, change it, and put it back into LAMMPS. @@ -165,11 +165,11 @@ subscripting. The one exception is that for a fix that calculates a global vector or array, a single double value from the vector or array is returned, indexed by I (vector) or I and J (array). I,J are zero-based indices. The I,J arguments can be left out if not needed. -See "Section 6.15"_Section_howto.html#howto_15 of the manual for a -discussion of global, per-atom, and local data, and of scalar, vector, -and array data types. See the doc pages for individual -"computes"_compute.html and "fixes"_fix.html for a description of what -they calculate and store. +See the "Howto output"_Howto_output.html doc page for a discussion of +global, per-atom, and local data, and of scalar, vector, and array +data types. See the doc pages for individual "computes"_compute.html +and "fixes"_fix.html for a description of what they calculate and +store. For extract_variable(), an "equal-style or atom-style variable"_variable.html is evaluated and its result returned. diff --git a/doc/src/Python_pylammps.txt b/doc/src/Python_pylammps.txt index ad5ed192ee..cdc8e2c086 100644 --- a/doc/src/Python_pylammps.txt +++ b/doc/src/Python_pylammps.txt @@ -10,5 +10,5 @@ Documentation"_ld - "LAMMPS Commands"_lc :c PyLammps interface :h3 PyLammps is a Python wrapper class which can be created on its own or -use an existing lammps Python object. It has its own "PyLammps -Tutorial"_tutorial_pylammps.html doc page. +use an existing lammps Python object. It has its own "Howto +pylammps"_Howto_pylammps.html doc page. diff --git a/doc/src/Section_history.txt b/doc/src/Section_history.txt deleted file mode 100644 index 6bbd1e4d99..0000000000 --- a/doc/src/Section_history.txt +++ /dev/null @@ -1,135 +0,0 @@ -"Previous Section"_Errors.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Manual.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -13. Future and history :h2 - -This section lists features we plan to add to LAMMPS, features of -previous versions of LAMMPS, and features of other parallel molecular -dynamics codes our group has distributed. - -13.1 "Coming attractions"_#hist_1 -13.2 "Past versions"_#hist_2 :all(b) - -:line -:line - -13.1 Coming attractions :h3,link(hist_1) - -As of summer 2016 we are using the "LAMMPS project issue tracker -on GitHub"_https://github.com/lammps/lammps/issues for keeping -track of suggested, planned or pending new features. This includes -discussions of how to best implement them, or why they would be -useful. Especially if a planned or proposed feature is non-trivial -to add, e.g. because it requires changes to some of the core -classes of LAMMPS, people planning to contribute a new feature to -LAMMS are encouraged to submit an issue about their planned -implementation this way in order to receive feedback from the -LAMMPS core developers. They will provide suggestions about -the validity of the proposed approach and possible improvements, -pitfalls or alternatives. - -Please see some of the closed issues for examples of how to -suggest code enhancements, submit proposed changes, or report -possible bugs and how they are resolved. - -As an alternative to using GitHub, you may e-mail the -"core developers"_http://lammps.sandia.gov/authors.html or send -an e-mail to the "LAMMPS Mail list"_http://lammps.sandia.gov/mail.html -if you want to have your suggestion added to the list. - -:line - -13.2 Past versions :h3,link(hist_2) - -LAMMPS development began in the mid 1990s under a cooperative research -& development agreement (CRADA) between two DOE labs (Sandia and LLNL) -and 3 companies (Cray, Bristol Myers Squibb, and Dupont). The goal was -to develop a large-scale parallel classical MD code; the coding effort -was led by Steve Plimpton at Sandia. - -After the CRADA ended, a final F77 version, LAMMPS 99, was -released. As development of LAMMPS continued at Sandia, its memory -management was converted to F90; a final F90 version was released as -LAMMPS 2001. - -The current LAMMPS is a rewrite in C++ and was first publicly released -as an open source code in 2004. It includes many new features beyond -those in LAMMPS 99 or 2001. It also includes features from older -parallel MD codes written at Sandia, namely ParaDyn, Warp, and -GranFlow (see below). - -In late 2006 we began merging new capabilities into LAMMPS that were -developed by Aidan Thompson at Sandia for his MD code GRASP, which has -a parallel framework similar to LAMMPS. Most notably, these have -included many-body potentials - Stillinger-Weber, Tersoff, ReaxFF - -and the associated charge-equilibration routines needed for ReaxFF. - -The "History link"_http://lammps.sandia.gov/history.html on the -LAMMPS WWW page gives a timeline of features added to the -C++ open-source version of LAMMPS over the last several years. - -These older codes are available for download from the "LAMMPS WWW -site"_lws, except for Warp & GranFlow which were primarily used -internally. A brief listing of their features is given here. - -LAMMPS 2001 - - F90 + MPI - dynamic memory - spatial-decomposition parallelism - NVE, NVT, NPT, NPH, rRESPA integrators - LJ and Coulombic pairwise force fields - all-atom, united-atom, bead-spring polymer force fields - CHARMM-compatible force fields - class 2 force fields - 3d/2d Ewald & PPPM - various force and temperature constraints - SHAKE - Hessian-free truncated-Newton minimizer - user-defined diagnostics :ul - -LAMMPS 99 - - F77 + MPI - static memory allocation - spatial-decomposition parallelism - most of the LAMMPS 2001 features with a few exceptions - no 2d Ewald & PPPM - molecular force fields are missing a few CHARMM terms - no SHAKE :ul - -Warp - - F90 + MPI - spatial-decomposition parallelism - embedded atom method (EAM) metal potentials + LJ - lattice and grain-boundary atom creation - NVE, NVT integrators - boundary conditions for applying shear stresses - temperature controls for actively sheared systems - per-atom energy and centro-symmetry computation and output :ul - -ParaDyn - - F77 + MPI - atom- and force-decomposition parallelism - embedded atom method (EAM) metal potentials - lattice atom creation - NVE, NVT, NPT integrators - all serial DYNAMO features for controls and constraints :ul - -GranFlow - - F90 + MPI - spatial-decomposition parallelism - frictional granular potentials - NVE integrator - boundary conditions for granular flow and packing and walls - particle insertion :ul diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt deleted file mode 100644 index f929d3bdab..0000000000 --- a/doc/src/Section_howto.txt +++ /dev/null @@ -1,3011 +0,0 @@ -"Previous Section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Examples.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -6. How-to discussions :h2 - -This section describes how to perform common tasks using LAMMPS. - -6.1 "Restarting a simulation"_#howto_1 -6.2 "2d simulations"_#howto_2 -6.3 "CHARMM, AMBER, and DREIDING force fields"_#howto_3 -6.4 "Running multiple simulations from one input script"_#howto_4 -6.5 "Multi-replica simulations"_#howto_5 -6.6 "Granular models"_#howto_6 -6.7 "TIP3P water model"_#howto_7 -6.8 "TIP4P water model"_#howto_8 -6.9 "SPC water model"_#howto_9 -6.10 "Coupling LAMMPS to other codes"_#howto_10 -6.11 "Visualizing LAMMPS snapshots"_#howto_11 -6.12 "Triclinic (non-orthogonal) simulation boxes"_#howto_12 -6.13 "NEMD simulations"_#howto_13 -6.14 "Finite-size spherical and aspherical particles"_#howto_14 -6.15 "Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_#howto_15 -6.16 "Thermostatting, barostatting and computing temperature"_#howto_16 -6.17 "Walls"_#howto_17 -6.18 "Elastic constants"_#howto_18 -6.19 "Library interface to LAMMPS"_#howto_19 -6.20 "Calculating thermal conductivity"_#howto_20 -6.21 "Calculating viscosity"_#howto_21 -6.22 "Calculating a diffusion coefficient"_#howto_22 -6.23 "Using chunks to calculate system properties"_#howto_23 -6.24 "Setting parameters for the kspace_style pppm/disp command"_#howto_24 -6.25 "Polarizable models"_#howto_25 -6.26 "Adiabatic core/shell model"_#howto_26 -6.27 "Drude induced dipoles"_#howto_27 -6.28 "Magnetic spins"_#howto_28 :all(b) - -The example input scripts included in the LAMMPS distribution and -highlighted on the "Examples"_Examples.html doc page also show how to -setup and run various kinds of simulations. - -:line -:line - -6.1 Restarting a simulation :link(howto_1),h4 - -There are 3 ways to continue a long LAMMPS simulation. Multiple -"run"_run.html commands can be used in the same input script. Each -run will continue from where the previous run left off. Or binary -restart files can be saved to disk using the "restart"_restart.html -command. At a later time, these binary files can be read via a -"read_restart"_read_restart.html command in a new script. Or they can -be converted to text data files using the "-r command-line -switch"_Section_start.html#start_6 and read by a -"read_data"_read_data.html command in a new script. - -Here we give examples of 2 scripts that read either a binary restart -file or a converted data file and then issue a new run command to -continue where the previous run left off. They illustrate what -settings must be made in the new script. Details are discussed in the -documentation for the "read_restart"_read_restart.html and -"read_data"_read_data.html commands. - -Look at the {in.chain} input script provided in the {bench} directory -of the LAMMPS distribution to see the original script that these 2 -scripts are based on. If that script had the line - -restart 50 tmp.restart :pre - -added to it, it would produce 2 binary restart files (tmp.restart.50 -and tmp.restart.100) as it ran. - -This script could be used to read the 1st restart file and re-run the -last 50 timesteps: - -read_restart tmp.restart.50 :pre - -neighbor 0.4 bin -neigh_modify every 1 delay 1 :pre - -fix 1 all nve -fix 2 all langevin 1.0 1.0 10.0 904297 :pre - -timestep 0.012 :pre - -run 50 :pre - -Note that the following commands do not need to be repeated because -their settings are included in the restart file: {units, atom_style, -special_bonds, pair_style, bond_style}. However these commands do -need to be used, since their settings are not in the restart file: -{neighbor, fix, timestep}. - -If you actually use this script to perform a restarted run, you will -notice that the thermodynamic data match at step 50 (if you also put a -"thermo 50" command in the original script), but do not match at step -100. This is because the "fix langevin"_fix_langevin.html command -uses random numbers in a way that does not allow for perfect restarts. - -As an alternate approach, the restart file could be converted to a data -file as follows: - -lmp_g++ -r tmp.restart.50 tmp.restart.data :pre - -Then, this script could be used to re-run the last 50 steps: - -units lj -atom_style bond -pair_style lj/cut 1.12 -pair_modify shift yes -bond_style fene -special_bonds 0.0 1.0 1.0 :pre - -read_data tmp.restart.data :pre - -neighbor 0.4 bin -neigh_modify every 1 delay 1 :pre - -fix 1 all nve -fix 2 all langevin 1.0 1.0 10.0 904297 :pre - -timestep 0.012 :pre - -reset_timestep 50 -run 50 :pre - -Note that nearly all the settings specified in the original {in.chain} -script must be repeated, except the {pair_coeff} and {bond_coeff} -commands since the new data file lists the force field coefficients. -Also, the "reset_timestep"_reset_timestep.html command is used to tell -LAMMPS the current timestep. This value is stored in restart files, -but not in data files. - -:line - -6.2 2d simulations :link(howto_2),h4 - -Use the "dimension"_dimension.html command to specify a 2d simulation. - -Make the simulation box periodic in z via the "boundary"_boundary.html -command. This is the default. - -If using the "create box"_create_box.html command to define a -simulation box, set the z dimensions narrow, but finite, so that the -create_atoms command will tile the 3d simulation box with a single z -plane of atoms - e.g. - -"create box"_create_box.html 1 -10 10 -10 10 -0.25 0.25 :pre - -If using the "read data"_read_data.html command to read in a file of -atom coordinates, set the "zlo zhi" values to be finite but narrow, -similar to the create_box command settings just described. For each -atom in the file, assign a z coordinate so it falls inside the -z-boundaries of the box - e.g. 0.0. - -Use the "fix enforce2d"_fix_enforce2d.html command as the last -defined fix to insure that the z-components of velocities and forces -are zeroed out every timestep. The reason to make it the last fix is -so that any forces induced by other fixes will be zeroed out. - -Many of the example input scripts included in the LAMMPS distribution -are for 2d models. - -NOTE: Some models in LAMMPS treat particles as finite-size spheres, as -opposed to point particles. See the "atom_style -sphere"_atom_style.html and "fix nve/sphere"_fix_nve_sphere.html -commands for details. By default, for 2d simulations, such particles -will still be modeled as 3d spheres, not 2d discs (circles), meaning -their moment of inertia will be that of a sphere. If you wish to -model them as 2d discs, see the "set density/disc"_set.html command -and the {disc} option for the "fix nve/sphere"_fix_nve_sphere.html, -"fix nvt/sphere"_fix_nvt_sphere.html, "fix -nph/sphere"_fix_nph_sphere.html, "fix npt/sphere"_fix_npt_sphere.html -commands. - -:line - -6.3 CHARMM, AMBER, and DREIDING force fields :link(howto_3),h4 - -A force field has 2 parts: the formulas that define it and the -coefficients used for a particular system. Here we only discuss -formulas implemented in LAMMPS that correspond to formulas commonly -used in the CHARMM, AMBER, and DREIDING force fields. Setting -coefficients is done in the input data file via the -"read_data"_read_data.html command or in the input script with -commands like "pair_coeff"_pair_coeff.html or -"bond_coeff"_bond_coeff.html. See the "Tools"_Tools.html doc page for -additional tools that can use CHARMM or AMBER to assign force field -coefficients and convert their output into LAMMPS input. - -See "(MacKerell)"_#howto-MacKerell for a description of the CHARMM force -field. See "(Cornell)"_#howto-Cornell for a description of the AMBER force -field. - -:link(charmm,http://www.scripps.edu/brooks) -:link(amber,http://amber.scripps.edu) - -These style choices compute force field formulas that are consistent -with common options in CHARMM or AMBER. See each command's -documentation for the formula it computes. - -"bond_style"_bond_harmonic.html harmonic -"angle_style"_angle_charmm.html charmm -"dihedral_style"_dihedral_charmm.html charmmfsh -"dihedral_style"_dihedral_charmm.html charmm -"pair_style"_pair_charmm.html lj/charmmfsw/coul/charmmfsh -"pair_style"_pair_charmm.html lj/charmmfsw/coul/long -"pair_style"_pair_charmm.html lj/charmm/coul/charmm -"pair_style"_pair_charmm.html lj/charmm/coul/charmm/implicit -"pair_style"_pair_charmm.html lj/charmm/coul/long :ul - -"special_bonds"_special_bonds.html charmm -"special_bonds"_special_bonds.html amber :ul - -NOTE: For CHARMM, newer {charmmfsw} or {charmmfsh} styles were -released in March 2017. We recommend they be used instead of the -older {charmm} styles. See discussion of the differences on the "pair -charmm"_pair_charmm.html and "dihedral charmm"_dihedral_charmm.html -doc pages. - -DREIDING is a generic force field developed by the "Goddard -group"_http://www.wag.caltech.edu at Caltech and is useful for -predicting structures and dynamics of organic, biological and -main-group inorganic molecules. The philosophy in DREIDING is to use -general force constants and geometry parameters based on simple -hybridization considerations, rather than individual force constants -and geometric parameters that depend on the particular combinations of -atoms involved in the bond, angle, or torsion terms. DREIDING has an -"explicit hydrogen bond term"_pair_hbond_dreiding.html to describe -interactions involving a hydrogen atom on very electronegative atoms -(N, O, F). - -See "(Mayo)"_#howto-Mayo for a description of the DREIDING force field - -These style choices compute force field formulas that are consistent -with the DREIDING force field. See each command's -documentation for the formula it computes. - -"bond_style"_bond_harmonic.html harmonic -"bond_style"_bond_morse.html morse :ul - -"angle_style"_angle_harmonic.html harmonic -"angle_style"_angle_cosine.html cosine -"angle_style"_angle_cosine_periodic.html cosine/periodic :ul - -"dihedral_style"_dihedral_charmm.html charmm -"improper_style"_improper_umbrella.html umbrella :ul - -"pair_style"_pair_buck.html buck -"pair_style"_pair_buck.html buck/coul/cut -"pair_style"_pair_buck.html buck/coul/long -"pair_style"_pair_lj.html lj/cut -"pair_style"_pair_lj.html lj/cut/coul/cut -"pair_style"_pair_lj.html lj/cut/coul/long :ul - -"pair_style"_pair_hbond_dreiding.html hbond/dreiding/lj -"pair_style"_pair_hbond_dreiding.html hbond/dreiding/morse :ul - -"special_bonds"_special_bonds.html dreiding :ul - -:line - -6.4 Running multiple simulations from one input script :link(howto_4),h4 - -This can be done in several ways. See the documentation for -individual commands for more details on how these examples work. - -If "multiple simulations" means continue a previous simulation for -more timesteps, then you simply use the "run"_run.html command -multiple times. For example, this script - -units lj -atom_style atomic -read_data data.lj -run 10000 -run 10000 -run 10000 -run 10000 -run 10000 :pre - -would run 5 successive simulations of the same system for a total of -50,000 timesteps. - -If you wish to run totally different simulations, one after the other, -the "clear"_clear.html command can be used in between them to -re-initialize LAMMPS. For example, this script - -units lj -atom_style atomic -read_data data.lj -run 10000 -clear -units lj -atom_style atomic -read_data data.lj.new -run 10000 :pre - -would run 2 independent simulations, one after the other. - -For large numbers of independent simulations, you can use -"variables"_variable.html and the "next"_next.html and -"jump"_jump.html commands to loop over the same input script -multiple times with different settings. For example, this -script, named in.polymer - -variable d index run1 run2 run3 run4 run5 run6 run7 run8 -shell cd $d -read_data data.polymer -run 10000 -shell cd .. -clear -next d -jump in.polymer :pre - -would run 8 simulations in different directories, using a data.polymer -file in each directory. The same concept could be used to run the -same system at 8 different temperatures, using a temperature variable -and storing the output in different log and dump files, for example - -variable a loop 8 -variable t index 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15 -log log.$a -read data.polymer -velocity all create $t 352839 -fix 1 all nvt $t $t 100.0 -dump 1 all atom 1000 dump.$a -run 100000 -clear -next t -next a -jump in.polymer :pre - -All of the above examples work whether you are running on 1 or -multiple processors, but assumed you are running LAMMPS on a single -partition of processors. LAMMPS can be run on multiple partitions via -the "-partition" command-line switch as described in "this -section"_Section_start.html#start_6 of the manual. - -In the last 2 examples, if LAMMPS were run on 3 partitions, the same -scripts could be used if the "index" and "loop" variables were -replaced with {universe}-style variables, as described in the -"variable"_variable.html command. Also, the "next t" and "next a" -commands would need to be replaced with a single "next a t" command. -With these modifications, the 8 simulations of each script would run -on the 3 partitions one after the other until all were finished. -Initially, 3 simulations would be started simultaneously, one on each -partition. When one finished, that partition would then start -the 4th simulation, and so forth, until all 8 were completed. - -:line - -6.5 Multi-replica simulations :link(howto_5),h4 - -Several commands in LAMMPS run mutli-replica simulations, meaning -that multiple instances (replicas) of your simulation are run -simultaneously, with small amounts of data exchanged between replicas -periodically. - -These are the relevant commands: - -"neb"_neb.html for nudged elastic band calculations -"prd"_prd.html for parallel replica dynamics -"tad"_tad.html for temperature accelerated dynamics -"temper"_temper.html for parallel tempering -"fix pimd"_fix_pimd.html for path-integral molecular dynamics (PIMD) :ul - -NEB is a method for finding transition states and barrier energies. -PRD and TAD are methods for performing accelerated dynamics to find -and perform infrequent events. Parallel tempering or replica exchange -runs different replicas at a series of temperature to facilitate -rare-event sampling. - -These commands can only be used if LAMMPS was built with the REPLICA -package. See the "Making LAMMPS"_Section_start.html#start_3 section -for more info on packages. - -PIMD runs different replicas whose individual particles are coupled -together by springs to model a system or ring-polymers. - -This commands can only be used if LAMMPS was built with the USER-MISC -package. See the "Making LAMMPS"_Section_start.html#start_3 section -for more info on packages. - -In all these cases, you must run with one or more processors per -replica. The processors assigned to each replica are determined at -run-time by using the "-partition command-line -switch"_Section_start.html#start_6 to launch LAMMPS on multiple -partitions, which in this context are the same as replicas. E.g. -these commands: - -mpirun -np 16 lmp_linux -partition 8x2 -in in.temper -mpirun -np 8 lmp_linux -partition 8x1 -in in.neb :pre - -would each run 8 replicas, on either 16 or 8 processors. Note the use -of the "-in command-line switch"_Section_start.html#start_6 to specify -the input script which is required when running in multi-replica mode. - -Also note that with MPI installed on a machine (e.g. your desktop), -you can run on more (virtual) processors than you have physical -processors. Thus the above commands could be run on a -single-processor (or few-processor) desktop so that you can run -a multi-replica simulation on more replicas than you have -physical processors. - -:line - -6.6 Granular models :link(howto_6),h4 - -Granular system are composed of spherical particles with a diameter, -as opposed to point particles. This means they have an angular -velocity and torque can be imparted to them to cause them to rotate. - -To run a simulation of a granular model, you will want to use -the following commands: - -"atom_style sphere"_atom_style.html -"fix nve/sphere"_fix_nve_sphere.html -"fix gravity"_fix_gravity.html :ul - -This compute - -"compute erotate/sphere"_compute_erotate_sphere.html :ul - -calculates rotational kinetic energy which can be "output with -thermodynamic info"_Section_howto.html#howto_15. - -Use one of these 3 pair potentials, which compute forces and torques -between interacting pairs of particles: - -"pair_style"_pair_style.html gran/history -"pair_style"_pair_style.html gran/no_history -"pair_style"_pair_style.html gran/hertzian :ul - -These commands implement fix options specific to granular systems: - -"fix freeze"_fix_freeze.html -"fix pour"_fix_pour.html -"fix viscous"_fix_viscous.html -"fix wall/gran"_fix_wall_gran.html :ul - -The fix style {freeze} zeroes both the force and torque of frozen -atoms, and should be used for granular system instead of the fix style -{setforce}. - -For computational efficiency, you can eliminate needless pairwise -computations between frozen atoms by using this command: - -"neigh_modify"_neigh_modify.html exclude :ul - -NOTE: By default, for 2d systems, granular particles are still modeled -as 3d spheres, not 2d discs (circles), meaning their moment of inertia -will be the same as in 3d. If you wish to model granular particles in -2d as 2d discs, see the note on this topic in "Section -6.2"_Section_howto.html#howto_2, where 2d simulations are discussed. - -:line - -6.7 TIP3P water model :link(howto_7),h4 - -The TIP3P water model as implemented in CHARMM -"(MacKerell)"_#howto-MacKerell specifies a 3-site rigid water molecule with -charges and Lennard-Jones parameters assigned to each of the 3 atoms. -In LAMMPS the "fix shake"_fix_shake.html command can be used to hold -the two O-H bonds and the H-O-H angle rigid. A bond style of -{harmonic} and an angle style of {harmonic} or {charmm} should also be -used. - -These are the additional parameters (in real units) to set for O and H -atoms and the water molecule to run a rigid TIP3P-CHARMM model with a -cutoff. The K values can be used if a flexible TIP3P model (without -fix shake) is desired. If the LJ epsilon and sigma for HH and OH are -set to 0.0, it corresponds to the original 1983 TIP3P model -"(Jorgensen)"_#Jorgensen1. - -O mass = 15.9994 -H mass = 1.008 -O charge = -0.834 -H charge = 0.417 -LJ epsilon of OO = 0.1521 -LJ sigma of OO = 3.1507 -LJ epsilon of HH = 0.0460 -LJ sigma of HH = 0.4000 -LJ epsilon of OH = 0.0836 -LJ sigma of OH = 1.7753 -K of OH bond = 450 -r0 of OH bond = 0.9572 -K of HOH angle = 55 -theta of HOH angle = 104.52 :all(b),p - -These are the parameters to use for TIP3P with a long-range Coulombic -solver (e.g. Ewald or PPPM in LAMMPS), see "(Price)"_#Price1 for -details: - -O mass = 15.9994 -H mass = 1.008 -O charge = -0.830 -H charge = 0.415 -LJ epsilon of OO = 0.102 -LJ sigma of OO = 3.188 -LJ epsilon, sigma of OH, HH = 0.0 -K of OH bond = 450 -r0 of OH bond = 0.9572 -K of HOH angle = 55 -theta of HOH angle = 104.52 :all(b),p - -Wikipedia also has a nice article on "water -models"_http://en.wikipedia.org/wiki/Water_model. - -:line - -6.8 TIP4P water model :link(howto_8),h4 - -The four-point TIP4P rigid water model extends the traditional -three-point TIP3P model by adding an additional site, usually -massless, where the charge associated with the oxygen atom is placed. -This site M is located at a fixed distance away from the oxygen along -the bisector of the HOH bond angle. A bond style of {harmonic} and an -angle style of {harmonic} or {charmm} should also be used. - -A TIP4P model is run with LAMMPS using either this command -for a cutoff model: - -"pair_style lj/cut/tip4p/cut"_pair_lj.html - -or these two commands for a long-range model: - -"pair_style lj/cut/tip4p/long"_pair_lj.html -"kspace_style pppm/tip4p"_kspace_style.html :ul - -For both models, the bond lengths and bond angles should be held fixed -using the "fix shake"_fix_shake.html command. - -These are the additional parameters (in real units) to set for O and H -atoms and the water molecule to run a rigid TIP4P model with a cutoff -"(Jorgensen)"_#Jorgensen1. Note that the OM distance is specified in -the "pair_style"_pair_style.html command, not as part of the pair -coefficients. - -O mass = 15.9994 -H mass = 1.008 -O charge = -1.040 -H charge = 0.520 -r0 of OH bond = 0.9572 -theta of HOH angle = 104.52 -OM distance = 0.15 -LJ epsilon of O-O = 0.1550 -LJ sigma of O-O = 3.1536 -LJ epsilon, sigma of OH, HH = 0.0 -Coulombic cutoff = 8.5 :all(b),p - -For the TIP4/Ice model (J Chem Phys, 122, 234511 (2005); -http://dx.doi.org/10.1063/1.1931662) these values can be used: - -O mass = 15.9994 -H mass = 1.008 -O charge = -1.1794 -H charge = 0.5897 -r0 of OH bond = 0.9572 -theta of HOH angle = 104.52 -OM distance = 0.1577 -LJ epsilon of O-O = 0.21084 -LJ sigma of O-O = 3.1668 -LJ epsilon, sigma of OH, HH = 0.0 -Coulombic cutoff = 8.5 :all(b),p - -For the TIP4P/2005 model (J Chem Phys, 123, 234505 (2005); -http://dx.doi.org/10.1063/1.2121687), these values can be used: - -O mass = 15.9994 -H mass = 1.008 -O charge = -1.1128 -H charge = 0.5564 -r0 of OH bond = 0.9572 -theta of HOH angle = 104.52 -OM distance = 0.1546 -LJ epsilon of O-O = 0.1852 -LJ sigma of O-O = 3.1589 -LJ epsilon, sigma of OH, HH = 0.0 -Coulombic cutoff = 8.5 :all(b),p - -These are the parameters to use for TIP4P with a long-range Coulombic -solver (e.g. Ewald or PPPM in LAMMPS): - -O mass = 15.9994 -H mass = 1.008 -O charge = -1.0484 -H charge = 0.5242 -r0 of OH bond = 0.9572 -theta of HOH angle = 104.52 -OM distance = 0.1250 -LJ epsilon of O-O = 0.16275 -LJ sigma of O-O = 3.16435 -LJ epsilon, sigma of OH, HH = 0.0 :all(b),p - -Note that the when using the TIP4P pair style, the neighbor list -cutoff for Coulomb interactions is effectively extended by a distance -2 * (OM distance), to account for the offset distance of the -fictitious charges on O atoms in water molecules. Thus it is -typically best in an efficiency sense to use a LJ cutoff >= Coulomb -cutoff + 2*(OM distance), to shrink the size of the neighbor list. -This leads to slightly larger cost for the long-range calculation, so -you can test the trade-off for your model. The OM distance and the LJ -and Coulombic cutoffs are set in the "pair_style -lj/cut/tip4p/long"_pair_lj.html command. - -Wikipedia also has a nice article on "water -models"_http://en.wikipedia.org/wiki/Water_model. - -:line - -6.9 SPC water model :link(howto_9),h4 - -The SPC water model specifies a 3-site rigid water molecule with -charges and Lennard-Jones parameters assigned to each of the 3 atoms. -In LAMMPS the "fix shake"_fix_shake.html command can be used to hold -the two O-H bonds and the H-O-H angle rigid. A bond style of -{harmonic} and an angle style of {harmonic} or {charmm} should also be -used. - -These are the additional parameters (in real units) to set for O and H -atoms and the water molecule to run a rigid SPC model. - -O mass = 15.9994 -H mass = 1.008 -O charge = -0.820 -H charge = 0.410 -LJ epsilon of OO = 0.1553 -LJ sigma of OO = 3.166 -LJ epsilon, sigma of OH, HH = 0.0 -r0 of OH bond = 1.0 -theta of HOH angle = 109.47 :all(b),p - -Note that as originally proposed, the SPC model was run with a 9 -Angstrom cutoff for both LJ and Coulommbic terms. It can also be used -with long-range Coulombics (Ewald or PPPM in LAMMPS), without changing -any of the parameters above, though it becomes a different model in -that mode of usage. - -The SPC/E (extended) water model is the same, except -the partial charge assignments change: - -O charge = -0.8476 -H charge = 0.4238 :all(b),p - -See the "(Berendsen)"_#howto-Berendsen reference for more details on both -the SPC and SPC/E models. - -Wikipedia also has a nice article on "water -models"_http://en.wikipedia.org/wiki/Water_model. - -:line - -6.10 Coupling LAMMPS to other codes :link(howto_10),h4 - -LAMMPS is designed to allow it to be coupled to other codes. For -example, a quantum mechanics code might compute forces on a subset of -atoms and pass those forces to LAMMPS. Or a continuum finite element -(FE) simulation might use atom positions as boundary conditions on FE -nodal points, compute a FE solution, and return interpolated forces on -MD atoms. - -LAMMPS can be coupled to other codes in at least 3 ways. Each has -advantages and disadvantages, which you'll have to think about in the -context of your application. - -(1) Define a new "fix"_fix.html command that calls the other code. In -this scenario, LAMMPS is the driver code. During its timestepping, -the fix is invoked, and can make library calls to the other code, -which has been linked to LAMMPS as a library. This is the way the -"POEMS"_poems package that performs constrained rigid-body motion on -groups of atoms is hooked to LAMMPS. See the "fix -poems"_fix_poems.html command for more details. See the -"Modify"_Modify.html doc page for info on how to add a new fix to -LAMMPS. - -:link(poems,http://www.rpi.edu/~anderk5/lab) - -(2) Define a new LAMMPS command that calls the other code. This is -conceptually similar to method (1), but in this case LAMMPS and the -other code are on a more equal footing. Note that now the other code -is not called during the timestepping of a LAMMPS run, but between -runs. The LAMMPS input script can be used to alternate LAMMPS runs -with calls to the other code, invoked via the new command. The -"run"_run.html command facilitates this with its {every} option, which -makes it easy to run a few steps, invoke the command, run a few steps, -invoke the command, etc. - -In this scenario, the other code can be called as a library, as in -(1), or it could be a stand-alone code, invoked by a system() call -made by the command (assuming your parallel machine allows one or more -processors to start up another program). In the latter case the -stand-alone code could communicate with LAMMPS thru files that the -command writes and reads. - -See the "Modify"_Modify.html doc page for how to add a new command to -LAMMPS. - -(3) Use LAMMPS as a library called by another code. In this case the -other code is the driver and calls LAMMPS as needed. Or a wrapper -code could link and call both LAMMPS and another code as libraries. -Again, the "run"_run.html command has options that allow it to be -invoked with minimal overhead (no setup or clean-up) if you wish to do -multiple short runs, driven by another program. - -Examples of driver codes that call LAMMPS as a library are included in -the examples/COUPLE directory of the LAMMPS distribution; see -examples/COUPLE/README for more details: - -simple: simple driver programs in C++ and C which invoke LAMMPS as a -library :ulb,l - -lammps_quest: coupling of LAMMPS and "Quest"_quest, to run classical -MD with quantum forces calculated by a density functional code :l - -lammps_spparks: coupling of LAMMPS and "SPPARKS"_spparks, to couple -a kinetic Monte Carlo model for grain growth using MD to calculate -strain induced across grain boundaries :l -:ule - -:link(quest,http://dft.sandia.gov/Quest) -:link(spparks,http://www.sandia.gov/~sjplimp/spparks.html) - -"This section"_Section_start.html#start_5 of the documentation -describes how to build LAMMPS as a library. Once this is done, you -can interface with LAMMPS either via C++, C, Fortran, or Python (or -any other language that supports a vanilla C-like interface). For -example, from C++ you could create one (or more) "instances" of -LAMMPS, pass it an input script to process, or execute individual -commands, all by invoking the correct class methods in LAMMPS. From C -or Fortran you can make function calls to do the same things. See the -"Python"_Python.html doc page for a description of the Python wrapper -provided with LAMMPS that operates through the LAMMPS library -interface. - -The files src/library.cpp and library.h contain the C-style interface -to LAMMPS. See "Section 6.19"_Section_howto.html#howto_19 of the -manual for a description of the interface and how to extend it for -your needs. - -Note that the lammps_open() function that creates an instance of -LAMMPS takes an MPI communicator as an argument. This means that -instance of LAMMPS will run on the set of processors in the -communicator. Thus the calling code can run LAMMPS on all or a subset -of processors. For example, a wrapper script might decide to -alternate between LAMMPS and another code, allowing them both to run -on all the processors. Or it might allocate half the processors to -LAMMPS and half to the other code and run both codes simultaneously -before syncing them up periodically. Or it might instantiate multiple -instances of LAMMPS to perform different calculations. - -:line - -6.11 Visualizing LAMMPS snapshots :link(howto_11),h4 - -LAMMPS itself does not do visualization, but snapshots from LAMMPS -simulations can be visualized (and analyzed) in a variety of ways. - -LAMMPS snapshots are created by the "dump"_dump.html command which can -create files in several formats. The native LAMMPS dump format is a -text file (see "dump atom" or "dump custom") which can be visualized -by several popular visualization tools. The "dump -image"_dump_image.html and "dump movie"_dump_image.html styles can -output internally rendered images and convert a sequence of them to a -movie during the MD run. Several programs included with LAMMPS as -auxiliary tools can convert between LAMMPS format files and other -formats. See the "Tools"_Tools.html doc page for details. - -A Python-based toolkit distributed by our group can read native LAMMPS -dump files, including custom dump files with additional columns of -user-specified atom information, and convert them to various formats -or pipe them into visualization software directly. See the "Pizza.py -WWW site"_pizza for details. Specifically, Pizza.py can convert -LAMMPS dump files into PDB, XYZ, "Ensight"_ensight, and VTK formats. -Pizza.py can pipe LAMMPS dump files directly into the Raster3d and -RasMol visualization programs. Pizza.py has tools that do interactive -3d OpenGL visualization and one that creates SVG images of dump file -snapshots. - -:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) -:link(ensight,http://www.ensight.com) -:link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A) - -:line - -6.12 Triclinic (non-orthogonal) simulation boxes :link(howto_12),h4 - -By default, LAMMPS uses an orthogonal simulation box to encompass the -particles. The "boundary"_boundary.html command sets the boundary -conditions of the box (periodic, non-periodic, etc). The orthogonal -box has its "origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors -starting from the origin given by [a] = (xhi-xlo,0,0); [b] = -(0,yhi-ylo,0); [c] = (0,0,zhi-zlo). The 6 parameters -(xlo,xhi,ylo,yhi,zlo,zhi) are defined at the time the simulation box -is created, e.g. by the "create_box"_create_box.html or -"read_data"_read_data.html or "read_restart"_read_restart.html -commands. Additionally, LAMMPS defines box size parameters lx,ly,lz -where lx = xhi-xlo, and similarly in the y and z dimensions. The 6 -parameters, as well as lx,ly,lz, can be output via the "thermo_style -custom"_thermo_style.html command. - -LAMMPS also allows simulations to be performed in triclinic -(non-orthogonal) simulation boxes shaped as a parallelepiped with -triclinic symmetry. The parallelepiped has its "origin" at -(xlo,ylo,zlo) and is defined by 3 edge vectors starting from the -origin given by [a] = (xhi-xlo,0,0); [b] = (xy,yhi-ylo,0); [c] = -(xz,yz,zhi-zlo). {xy,xz,yz} can be 0.0 or positive or negative values -and are called "tilt factors" because they are the amount of -displacement applied to faces of an originally orthogonal box to -transform it into the parallelepiped. In LAMMPS the triclinic -simulation box edge vectors [a], [b], and [c] cannot be arbitrary -vectors. As indicated, [a] must lie on the positive x axis. [b] must -lie in the xy plane, with strictly positive y component. [c] may have -any orientation with strictly positive z component. The requirement -that [a], [b], and [c] have strictly positive x, y, and z components, -respectively, ensures that [a], [b], and [c] form a complete -right-handed basis. These restrictions impose no loss of generality, -since it is possible to rotate/invert any set of 3 crystal basis -vectors so that they conform to the restrictions. - -For example, assume that the 3 vectors [A],[B],[C] are the edge -vectors of a general parallelepiped, where there is no restriction on -[A],[B],[C] other than they form a complete right-handed basis i.e. -[A] x [B] . [C] > 0. The equivalent LAMMPS [a],[b],[c] are a linear -rotation of [A], [B], and [C] and can be computed as follows: - -:c,image(Eqs/transform.jpg) - -where A = | [A] | indicates the scalar length of [A]. The hat symbol (^) -indicates the corresponding unit vector. {beta} and {gamma} are angles -between the vectors described below. Note that by construction, -[a], [b], and [c] have strictly positive x, y, and z components, respectively. -If it should happen that -[A], [B], and [C] form a left-handed basis, then the above equations -are not valid for [c]. In this case, it is necessary -to first apply an inversion. This can be achieved -by interchanging two basis vectors or by changing the sign of one of them. - -For consistency, the same rotation/inversion applied to the basis vectors -must also be applied to atom positions, velocities, -and any other vector quantities. -This can be conveniently achieved by first converting to -fractional coordinates in the -old basis and then converting to distance coordinates in the new basis. -The transformation is given by the following equation: - -:c,image(Eqs/rotate.jpg) - -where {V} is the volume of the box, [X] is the original vector quantity and -[x] is the vector in the LAMMPS basis. - -There is no requirement that a triclinic box be periodic in any -dimension, though it typically should be in at least the 2nd dimension -of the tilt (y in xy) if you want to enforce a shift in periodic -boundary conditions across that boundary. Some commands that work -with triclinic boxes, e.g. the "fix deform"_fix_deform.html and "fix -npt"_fix_nh.html commands, require periodicity or non-shrink-wrap -boundary conditions in specific dimensions. See the command doc pages -for details. - -The 9 parameters (xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) are defined at the -time the simulation box is created. This happens in one of 3 ways. -If the "create_box"_create_box.html command is used with a region of -style {prism}, then a triclinic box is setup. See the -"region"_region.html command for details. If the -"read_data"_read_data.html command is used to define the simulation -box, and the header of the data file contains a line with the "xy xz -yz" keyword, then a triclinic box is setup. See the -"read_data"_read_data.html command for details. Finally, if the -"read_restart"_read_restart.html command reads a restart file which -was written from a simulation using a triclinic box, then a triclinic -box will be setup for the restarted simulation. - -Note that you can define a triclinic box with all 3 tilt factors = -0.0, so that it is initially orthogonal. This is necessary if the box -will become non-orthogonal, e.g. due to the "fix npt"_fix_nh.html or -"fix deform"_fix_deform.html commands. Alternatively, you can use the -"change_box"_change_box.html command to convert a simulation box from -orthogonal to triclinic and vice versa. - -As with orthogonal boxes, LAMMPS defines triclinic box size parameters -lx,ly,lz where lx = xhi-xlo, and similarly in the y and z dimensions. -The 9 parameters, as well as lx,ly,lz, can be output via the -"thermo_style custom"_thermo_style.html command. - -To avoid extremely tilted boxes (which would be computationally -inefficient), LAMMPS normally requires that no tilt factor can skew -the box more than half the distance of the parallel box length, which -is the 1st dimension in the tilt factor (x for xz). This is required -both when the simulation box is created, e.g. via the -"create_box"_create_box.html or "read_data"_read_data.html commands, -as well as when the box shape changes dynamically during a simulation, -e.g. via the "fix deform"_fix_deform.html or "fix npt"_fix_nh.html -commands. - -For example, if xlo = 2 and xhi = 12, then the x box length is 10 and -the xy tilt factor must be between -5 and 5. Similarly, both xz and -yz must be between -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is -not a limitation, since if the maximum tilt factor is 5 (as in this -example), then configurations with tilt = ..., -15, -5, 5, 15, 25, -... are geometrically all equivalent. If the box tilt exceeds this -limit during a dynamics run (e.g. via the "fix deform"_fix_deform.html -command), then the box is "flipped" to an equivalent shape with a tilt -factor within the bounds, so the run can continue. See the "fix -deform"_fix_deform.html doc page for further details. - -One exception to this rule is if the 1st dimension in the tilt -factor (x for xy) is non-periodic. In that case, the limits on the -tilt factor are not enforced, since flipping the box in that dimension -does not change the atom positions due to non-periodicity. In this -mode, if you tilt the system to extreme angles, the simulation will -simply become inefficient, due to the highly skewed simulation box. - -The limitation on not creating a simulation box with a tilt factor -skewing the box more than half the distance of the parallel box length -can be overridden via the "box"_box.html command. Setting the {tilt} -keyword to {large} allows any tilt factors to be specified. - -Box flips that may occur using the "fix deform"_fix_deform.html or -"fix npt"_fix_nh.html commands can be turned off using the {flip no} -option with either of the commands. - -Note that if a simulation box has a large tilt factor, LAMMPS will run -less efficiently, due to the large volume of communication needed to -acquire ghost atoms around a processor's irregular-shaped sub-domain. -For extreme values of tilt, LAMMPS may also lose atoms and generate an -error. - -Triclinic crystal structures are often defined using three lattice -constants {a}, {b}, and {c}, and three angles {alpha}, {beta} and -{gamma}. Note that in this nomenclature, the a, b, and c lattice -constants are the scalar lengths of the edge vectors [a], [b], and [c] -defined above. The relationship between these 6 quantities -(a,b,c,alpha,beta,gamma) and the LAMMPS box sizes (lx,ly,lz) = -(xhi-xlo,yhi-ylo,zhi-zlo) and tilt factors (xy,xz,yz) is as follows: - -:c,image(Eqs/box.jpg) - -The inverse relationship can be written as follows: - -:c,image(Eqs/box_inverse.jpg) - -The values of {a}, {b}, {c} , {alpha}, {beta} , and {gamma} can be printed -out or accessed by computes using the -"thermo_style custom"_thermo_style.html keywords -{cella}, {cellb}, {cellc}, {cellalpha}, {cellbeta}, {cellgamma}, -respectively. - -As discussed on the "dump"_dump.html command doc page, when the BOX -BOUNDS for a snapshot is written to a dump file for a triclinic box, -an orthogonal bounding box which encloses the triclinic simulation box -is output, along with the 3 tilt factors (xy, xz, yz) of the triclinic -box, formatted as follows: - -ITEM: BOX BOUNDS xy xz yz -xlo_bound xhi_bound xy -ylo_bound yhi_bound xz -zlo_bound zhi_bound yz :pre - -This bounding box is convenient for many visualization programs and is -calculated from the 9 triclinic box parameters -(xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) as follows: - -xlo_bound = xlo + MIN(0.0,xy,xz,xy+xz) -xhi_bound = xhi + MAX(0.0,xy,xz,xy+xz) -ylo_bound = ylo + MIN(0.0,yz) -yhi_bound = yhi + MAX(0.0,yz) -zlo_bound = zlo -zhi_bound = zhi :pre - -These formulas can be inverted if you need to convert the bounding box -back into the triclinic box parameters, e.g. xlo = xlo_bound - -MIN(0.0,xy,xz,xy+xz). - -One use of triclinic simulation boxes is to model solid-state crystals -with triclinic symmetry. The "lattice"_lattice.html command can be -used with non-orthogonal basis vectors to define a lattice that will -tile a triclinic simulation box via the -"create_atoms"_create_atoms.html command. - -A second use is to run Parinello-Rahman dynamics via the "fix -npt"_fix_nh.html command, which will adjust the xy, xz, yz tilt -factors to compensate for off-diagonal components of the pressure -tensor. The analog for an "energy minimization"_minimize.html is -the "fix box/relax"_fix_box_relax.html command. - -A third use is to shear a bulk solid to study the response of the -material. The "fix deform"_fix_deform.html command can be used for -this purpose. It allows dynamic control of the xy, xz, yz tilt -factors as a simulation runs. This is discussed in the next section -on non-equilibrium MD (NEMD) simulations. - -:line - -6.13 NEMD simulations :link(howto_13),h4 - -Non-equilibrium molecular dynamics or NEMD simulations are typically -used to measure a fluid's rheological properties such as viscosity. -In LAMMPS, such simulations can be performed by first setting up a -non-orthogonal simulation box (see the preceding Howto section). - -A shear strain can be applied to the simulation box at a desired -strain rate by using the "fix deform"_fix_deform.html command. The -"fix nvt/sllod"_fix_nvt_sllod.html command can be used to thermostat -the sheared fluid and integrate the SLLOD equations of motion for the -system. Fix nvt/sllod uses "compute -temp/deform"_compute_temp_deform.html to compute a thermal temperature -by subtracting out the streaming velocity of the shearing atoms. The -velocity profile or other properties of the fluid can be monitored via -the "fix ave/chunk"_fix_ave_chunk.html command. - -As discussed in the previous section on non-orthogonal simulation -boxes, the amount of tilt or skew that can be applied is limited by -LAMMPS for computational efficiency to be 1/2 of the parallel box -length. However, "fix deform"_fix_deform.html can continuously strain -a box by an arbitrary amount. As discussed in the "fix -deform"_fix_deform.html command, when the tilt value reaches a limit, -the box is flipped to the opposite limit which is an equivalent tiling -of periodic space. The strain rate can then continue to change as -before. In a long NEMD simulation these box re-shaping events may -occur many times. - -In a NEMD simulation, the "remap" option of "fix -deform"_fix_deform.html should be set to "remap v", since that is what -"fix nvt/sllod"_fix_nvt_sllod.html assumes to generate a velocity -profile consistent with the applied shear strain rate. - -An alternative method for calculating viscosities is provided via the -"fix viscosity"_fix_viscosity.html command. - -NEMD simulations can also be used to measure transport properties of a fluid -through a pore or channel. Simulations of steady-state flow can be performed -using the "fix flow/gauss"_fix_flow_gauss.html command. - -:line - -6.14 Finite-size spherical and aspherical particles :link(howto_14),h4 - -Typical MD models treat atoms or particles as point masses. Sometimes -it is desirable to have a model with finite-size particles such as -spheroids or ellipsoids or generalized aspherical bodies. The -difference is that such particles have a moment of inertia, rotational -energy, and angular momentum. Rotation is induced by torque coming -from interactions with other particles. - -LAMMPS has several options for running simulations with these kinds of -particles. The following aspects are discussed in turn: - -atom styles -pair potentials -time integration -computes, thermodynamics, and dump output -rigid bodies composed of finite-size particles :ul - -Example input scripts for these kinds of models are in the body, -colloid, dipole, ellipse, line, peri, pour, and tri directories of the -"examples directory"_Examples.html in the LAMMPS distribution. - -Atom styles :h4 - -There are several "atom styles"_atom_style.html that allow for -definition of finite-size particles: sphere, dipole, ellipsoid, line, -tri, peri, and body. - -The sphere style defines particles that are spheriods and each -particle can have a unique diameter and mass (or density). These -particles store an angular velocity (omega) and can be acted upon by -torque. The "set" command can be used to modify the diameter and mass -of individual particles, after then are created. - -The dipole style does not actually define finite-size particles, but -is often used in conjunction with spherical particles, via a command -like - -atom_style hybrid sphere dipole :pre - -This is because when dipoles interact with each other, they induce -torques, and a particle must be finite-size (i.e. have a moment of -inertia) in order to respond and rotate. See the "atom_style -dipole"_atom_style.html command for details. The "set" command can be -used to modify the orientation and length of the dipole moment of -individual particles, after then are created. - -The ellipsoid style defines particles that are ellipsoids and thus can -be aspherical. Each particle has a shape, specified by 3 diameters, -and mass (or density). These particles store an angular momentum and -their orientation (quaternion), and can be acted upon by torque. They -do not store an angular velocity (omega), which can be in a different -direction than angular momentum, rather they compute it as needed. -The "set" command can be used to modify the diameter, orientation, and -mass of individual particles, after then are created. It also has a -brief explanation of what quaternions are. - -The line style defines line segment particles with two end points and -a mass (or density). They can be used in 2d simulations, and they can -be joined together to form rigid bodies which represent arbitrary -polygons. - -The tri style defines triangular particles with three corner points -and a mass (or density). They can be used in 3d simulations, and they -can be joined together to form rigid bodies which represent arbitrary -particles with a triangulated surface. - -The peri style is used with "Peridynamic models"_pair_peri.html and -defines particles as having a volume, that is used internally in the -"pair_style peri"_pair_peri.html potentials. - -The body style allows for definition of particles which can represent -complex entities, such as surface meshes of discrete points, -collections of sub-particles, deformable objects, etc. The body style -is discussed in more detail on the "body"_body.html doc page. - -Note that if one of these atom styles is used (or multiple styles via -the "atom_style hybrid"_atom_style.html command), not all particles in -the system are required to be finite-size or aspherical. - -For example, in the ellipsoid style, if the 3 shape parameters are set -to the same value, the particle will be a sphere rather than an -ellipsoid. If the 3 shape parameters are all set to 0.0 or if the -diameter is set to 0.0, it will be a point particle. In the line or -tri style, if the lineflag or triflag is specified as 0, then it -will be a point particle. - -Some of the pair styles used to compute pairwise interactions between -finite-size particles also compute the correct interaction with point -particles as well, e.g. the interaction between a point particle and a -finite-size particle or between two point particles. If necessary, -"pair_style hybrid"_pair_hybrid.html can be used to insure the correct -interactions are computed for the appropriate style of interactions. -Likewise, using groups to partition particles (ellipsoids versus -spheres versus point particles) will allow you to use the appropriate -time integrators and temperature computations for each class of -particles. See the doc pages for various commands for details. - -Also note that for "2d simulations"_dimension.html, atom styles sphere -and ellipsoid still use 3d particles, rather than as circular disks or -ellipses. This means they have the same moment of inertia as the 3d -object. When temperature is computed, the correct degrees of freedom -are used for rotation in a 2d versus 3d system. - -Pair potentials :h4 - -When a system with finite-size particles is defined, the particles -will only rotate and experience torque if the force field computes -such interactions. These are the various "pair -styles"_pair_style.html that generate torque: - -"pair_style gran/history"_pair_gran.html -"pair_style gran/hertzian"_pair_gran.html -"pair_style gran/no_history"_pair_gran.html -"pair_style dipole/cut"_pair_dipole.html -"pair_style gayberne"_pair_gayberne.html -"pair_style resquared"_pair_resquared.html -"pair_style brownian"_pair_brownian.html -"pair_style lubricate"_pair_lubricate.html -"pair_style line/lj"_pair_line_lj.html -"pair_style tri/lj"_pair_tri_lj.html -"pair_style body"_pair_body.html :ul - -The granular pair styles are used with spherical particles. The -dipole pair style is used with the dipole atom style, which could be -applied to spherical or ellipsoidal particles. The GayBerne and -REsquared potentials require ellipsoidal particles, though they will -also work if the 3 shape parameters are the same (a sphere). The -Brownian and lubrication potentials are used with spherical particles. -The line, tri, and body potentials are used with line segment, -triangular, and body particles respectively. - -Time integration :h4 - -There are several fixes that perform time integration on finite-size -spherical particles, meaning the integrators update the rotational -orientation and angular velocity or angular momentum of the particles: - -"fix nve/sphere"_fix_nve_sphere.html -"fix nvt/sphere"_fix_nvt_sphere.html -"fix npt/sphere"_fix_npt_sphere.html :ul - -Likewise, there are 3 fixes that perform time integration on -ellipsoidal particles: - -"fix nve/asphere"_fix_nve_asphere.html -"fix nvt/asphere"_fix_nvt_asphere.html -"fix npt/asphere"_fix_npt_asphere.html :ul - -The advantage of these fixes is that those which thermostat the -particles include the rotational degrees of freedom in the temperature -calculation and thermostatting. The "fix langevin"_fix_langevin -command can also be used with its {omgea} or {angmom} options to -thermostat the rotational degrees of freedom for spherical or -ellipsoidal particles. Other thermostatting fixes only operate on the -translational kinetic energy of finite-size particles. - -These fixes perform constant NVE time integration on line segment, -triangular, and body particles: - -"fix nve/line"_fix_nve_line.html -"fix nve/tri"_fix_nve_tri.html -"fix nve/body"_fix_nve_body.html :ul - -Note that for mixtures of point and finite-size particles, these -integration fixes can only be used with "groups"_group.html which -contain finite-size particles. - -Computes, thermodynamics, and dump output :h4 - -There are several computes that calculate the temperature or -rotational energy of spherical or ellipsoidal particles: - -"compute temp/sphere"_compute_temp_sphere.html -"compute temp/asphere"_compute_temp_asphere.html -"compute erotate/sphere"_compute_erotate_sphere.html -"compute erotate/asphere"_compute_erotate_asphere.html :ul - -These include rotational degrees of freedom in their computation. If -you wish the thermodynamic output of temperature or pressure to use -one of these computes (e.g. for a system entirely composed of -finite-size particles), then the compute can be defined and the -"thermo_modify"_thermo_modify.html command used. Note that by default -thermodynamic quantities will be calculated with a temperature that -only includes translational degrees of freedom. See the -"thermo_style"_thermo_style.html command for details. - -These commands can be used to output various attributes of finite-size -particles: - -"dump custom"_dump.html -"compute property/atom"_compute_property_atom.html -"dump local"_dump.html -"compute body/local"_compute_body_local.html :ul - -Attributes include the dipole moment, the angular velocity, the -angular momentum, the quaternion, the torque, the end-point and -corner-point coordinates (for line and tri particles), and -sub-particle attributes of body particles. - -Rigid bodies composed of finite-size particles :h4 - -The "fix rigid"_fix_rigid.html command treats a collection of -particles as a rigid body, computes its inertia tensor, sums the total -force and torque on the rigid body each timestep due to forces on its -constituent particles, and integrates the motion of the rigid body. - -If any of the constituent particles of a rigid body are finite-size -particles (spheres or ellipsoids or line segments or triangles), then -their contribution to the inertia tensor of the body is different than -if they were point particles. This means the rotational dynamics of -the rigid body will be different. Thus a model of a dimer is -different if the dimer consists of two point masses versus two -spheroids, even if the two particles have the same mass. Finite-size -particles that experience torque due to their interaction with other -particles will also impart that torque to a rigid body they are part -of. - -See the "fix rigid" command for example of complex rigid-body models -it is possible to define in LAMMPS. - -Note that the "fix shake"_fix_shake.html command can also be used to -treat 2, 3, or 4 particles as a rigid body, but it always assumes the -particles are point masses. - -Also note that body particles cannot be modeled with the "fix -rigid"_fix_rigid.html command. Body particles are treated by LAMMPS -as single particles, though they can store internal state, such as a -list of sub-particles. Individual body partices are typically treated -as rigid bodies, and their motion integrated with a command like "fix -nve/body"_fix_nve_body.html. Interactions between pairs of body -particles are computed via a command like "pair_style -body"_pair_body.html. - -:line - -6.15 Output from LAMMPS (thermo, dumps, computes, fixes, variables) :link(howto_15),h4 - -There are four basic kinds of LAMMPS output: - -"Thermodynamic output"_thermo_style.html, which is a list -of quantities printed every few timesteps to the screen and logfile. :ulb,l - -"Dump files"_dump.html, which contain snapshots of atoms and various -per-atom values and are written at a specified frequency. :l - -Certain fixes can output user-specified quantities to files: "fix -ave/time"_fix_ave_time.html for time averaging, "fix -ave/chunk"_fix_ave_chunk.html for spatial or other averaging, and "fix -print"_fix_print.html for single-line output of -"variables"_variable.html. Fix print can also output to the -screen. :l - -"Restart files"_restart.html. :l -:ule - -A simulation prints one set of thermodynamic output and (optionally) -restart files. It can generate any number of dump files and fix -output files, depending on what "dump"_dump.html and "fix"_fix.html -commands you specify. - -As discussed below, LAMMPS gives you a variety of ways to determine -what quantities are computed and printed when the thermodynamics, -dump, or fix commands listed above perform output. Throughout this -discussion, note that users can also "add their own computes and fixes -to LAMMPS"_Modify.html which can then generate values that can then be -output with these commands. - -The following sub-sections discuss different LAMMPS command related -to output and the kind of data they operate on and produce: - -"Global/per-atom/local data"_#global -"Scalar/vector/array data"_#scalar -"Thermodynamic output"_#thermo -"Dump file output"_#dump -"Fixes that write output files"_#fixoutput -"Computes that process output quantities"_#computeoutput -"Fixes that process output quantities"_#fixprocoutput -"Computes that generate values to output"_#compute -"Fixes that generate values to output"_#fix -"Variables that generate values to output"_#variable -"Summary table of output options and data flow between commands"_#table :ul - -Global/per-atom/local data :h4,link(global) - -Various output-related commands work with three different styles of -data: global, per-atom, or local. A global datum is one or more -system-wide values, e.g. the temperature of the system. A per-atom -datum is one or more values per atom, e.g. the kinetic energy of each -atom. Local datums are calculated by each processor based on the -atoms it owns, but there may be zero or more per atom, e.g. a list of -bond distances. - -Scalar/vector/array data :h4,link(scalar) - -Global, per-atom, and local datums can each come in three kinds: a -single scalar value, a vector of values, or a 2d array of values. The -doc page for a "compute" or "fix" or "variable" that generates data -will specify both the style and kind of data it produces, e.g. a -per-atom vector. - -When a quantity is accessed, as in many of the output commands -discussed below, it can be referenced via the following bracket -notation, where ID in this case is the ID of a compute. The leading -"c_" would be replaced by "f_" for a fix, or "v_" for a variable: - -c_ID | entire scalar, vector, or array -c_ID\[I\] | one element of vector, one column of array -c_ID\[I\]\[J\] | one element of array :tb(s=|) - -In other words, using one bracket reduces the dimension of the data -once (vector -> scalar, array -> vector). Using two brackets reduces -the dimension twice (array -> scalar). Thus a command that uses -scalar values as input can typically also process elements of a vector -or array. - -Thermodynamic output :h4,link(thermo) - -The frequency and format of thermodynamic output is set by the -"thermo"_thermo.html, "thermo_style"_thermo_style.html, and -"thermo_modify"_thermo_modify.html commands. The -"thermo_style"_thermo_style.html command also specifies what values -are calculated and written out. Pre-defined keywords can be specified -(e.g. press, etotal, etc). Three additional kinds of keywords can -also be specified (c_ID, f_ID, v_name), where a "compute"_compute.html -or "fix"_fix.html or "variable"_variable.html provides the value to be -output. In each case, the compute, fix, or variable must generate -global values for input to the "thermo_style custom"_dump.html -command. - -Note that thermodynamic output values can be "extensive" or -"intensive". The former scale with the number of atoms in the system -(e.g. total energy), the latter do not (e.g. temperature). The -setting for "thermo_modify norm"_thermo_modify.html determines whether -extensive quantities are normalized or not. Computes and fixes -produce either extensive or intensive values; see their individual doc -pages for details. "Equal-style variables"_variable.html produce only -intensive values; you can include a division by "natoms" in the -formula if desired, to make an extensive calculation produce an -intensive result. - -Dump file output :h4,link(dump) - -Dump file output is specified by the "dump"_dump.html and -"dump_modify"_dump_modify.html commands. There are several -pre-defined formats (dump atom, dump xtc, etc). - -There is also a "dump custom"_dump.html format where the user -specifies what values are output with each atom. Pre-defined atom -attributes can be specified (id, x, fx, etc). Three additional kinds -of keywords can also be specified (c_ID, f_ID, v_name), where a -"compute"_compute.html or "fix"_fix.html or "variable"_variable.html -provides the values to be output. In each case, the compute, fix, or -variable must generate per-atom values for input to the "dump -custom"_dump.html command. - -There is also a "dump local"_dump.html format where the user specifies -what local values to output. A pre-defined index keyword can be -specified to enumerate the local values. Two additional kinds of -keywords can also be specified (c_ID, f_ID), where a -"compute"_compute.html or "fix"_fix.html or "variable"_variable.html -provides the values to be output. In each case, the compute or fix -must generate local values for input to the "dump local"_dump.html -command. - -Fixes that write output files :h4,link(fixoutput) - -Several fixes take various quantities as input and can write output -files: "fix ave/time"_fix_ave_time.html, "fix -ave/chunk"_fix_ave_chunk.html, "fix ave/histo"_fix_ave_histo.html, -"fix ave/correlate"_fix_ave_correlate.html, and "fix -print"_fix_print.html. - -The "fix ave/time"_fix_ave_time.html command enables direct output to -a file and/or time-averaging of global scalars or vectors. The user -specifies one or more quantities as input. These can be global -"compute"_compute.html values, global "fix"_fix.html values, or -"variables"_variable.html of any style except the atom style which -produces per-atom values. Since a variable can refer to keywords used -by the "thermo_style custom"_thermo_style.html command (like temp or -press) and individual per-atom values, a wide variety of quantities -can be time averaged and/or output in this way. If the inputs are one -or more scalar values, then the fix generate a global scalar or vector -of output. If the inputs are one or more vector values, then the fix -generates a global vector or array of output. The time-averaged -output of this fix can also be used as input to other output commands. - -The "fix ave/chunk"_fix_ave_chunk.html command enables direct output -to a file of chunk-averaged per-atom quantities like those output in -dump files. Chunks can represent spatial bins or other collections of -atoms, e.g. individual molecules. The per-atom quantities can be atom -density (mass or number) or atom attributes such as position, -velocity, force. They can also be per-atom quantities calculated by a -"compute"_compute.html, by a "fix"_fix.html, or by an atom-style -"variable"_variable.html. The chunk-averaged output of this fix can -also be used as input to other output commands. - -The "fix ave/histo"_fix_ave_histo.html command enables direct output -to a file of histogrammed quantities, which can be global or per-atom -or local quantities. The histogram output of this fix can also be -used as input to other output commands. - -The "fix ave/correlate"_fix_ave_correlate.html command enables direct -output to a file of time-correlated quantities, which can be global -values. The correlation matrix output of this fix can also be used as -input to other output commands. - -The "fix print"_fix_print.html command can generate a line of output -written to the screen and log file or to a separate file, periodically -during a running simulation. The line can contain one or more -"variable"_variable.html values for any style variable except the -vector or atom styles). As explained above, variables themselves can -contain references to global values generated by "thermodynamic -keywords"_thermo_style.html, "computes"_compute.html, -"fixes"_fix.html, or other "variables"_variable.html, or to per-atom -values for a specific atom. Thus the "fix print"_fix_print.html -command is a means to output a wide variety of quantities separate -from normal thermodynamic or dump file output. - -Computes that process output quantities :h4,link(computeoutput) - -The "compute reduce"_compute_reduce.html and "compute -reduce/region"_compute_reduce.html commands take one or more per-atom -or local vector quantities as inputs and "reduce" them (sum, min, max, -ave) to scalar quantities. These are produced as output values which -can be used as input to other output commands. - -The "compute slice"_compute_slice.html command take one or more global -vector or array quantities as inputs and extracts a subset of their -values to create a new vector or array. These are produced as output -values which can be used as input to other output commands. - -The "compute property/atom"_compute_property_atom.html command takes a -list of one or more pre-defined atom attributes (id, x, fx, etc) and -stores the values in a per-atom vector or array. These are produced -as output values which can be used as input to other output commands. -The list of atom attributes is the same as for the "dump -custom"_dump.html command. - -The "compute property/local"_compute_property_local.html command takes -a list of one or more pre-defined local attributes (bond info, angle -info, etc) and stores the values in a local vector or array. These -are produced as output values which can be used as input to other -output commands. - -Fixes that process output quantities :h4,link(fixprocoutput) - -The "fix vector"_fix_vector.html command can create global vectors as -output from global scalars as input, accumulating them one element at -a time. - -The "fix ave/atom"_fix_ave_atom.html command performs time-averaging -of per-atom vectors. The per-atom quantities can be atom attributes -such as position, velocity, force. They can also be per-atom -quantities calculated by a "compute"_compute.html, by a -"fix"_fix.html, or by an atom-style "variable"_variable.html. The -time-averaged per-atom output of this fix can be used as input to -other output commands. - -The "fix store/state"_fix_store_state.html command can archive one or -more per-atom attributes at a particular time, so that the old values -can be used in a future calculation or output. The list of atom -attributes is the same as for the "dump custom"_dump.html command, -including per-atom quantities calculated by a "compute"_compute.html, -by a "fix"_fix.html, or by an atom-style "variable"_variable.html. -The output of this fix can be used as input to other output commands. - -Computes that generate values to output :h4,link(compute) - -Every "compute"_compute.html in LAMMPS produces either global or -per-atom or local values. The values can be scalars or vectors or -arrays of data. These values can be output using the other commands -described in this section. The doc page for each compute command -describes what it produces. Computes that produce per-atom or local -values have the word "atom" or "local" in their style name. Computes -without the word "atom" or "local" produce global values. - -Fixes that generate values to output :h4,link(fix) - -Some "fixes"_fix.html in LAMMPS produces either global or per-atom or -local values which can be accessed by other commands. The values can -be scalars or vectors or arrays of data. These values can be output -using the other commands described in this section. The doc page for -each fix command tells whether it produces any output quantities and -describes them. - -Variables that generate values to output :h4,link(variable) - -"Variables"_variable.html defined in an input script can store one or -more strings. But equal-style, vector-style, and atom-style or -atomfile-style variables generate a global scalar value, global vector -or values, or a per-atom vector, respectively, when accessed. The -formulas used to define these variables can contain references to the -thermodynamic keywords and to global and per-atom data generated by -computes, fixes, and other variables. The values generated by -variables can be used as input to and thus output by the other -commands described in this section. - -Summary table of output options and data flow between commands :h4,link(table) - -This table summarizes the various commands that can be used for -generating output from LAMMPS. Each command produces output data of -some kind and/or writes data to a file. Most of the commands can take -data from other commands as input. Thus you can link many of these -commands together in pipeline form, where data produced by one command -is used as input to another command and eventually written to the -screen or to a file. Note that to hook two commands together the -output and input data types must match, e.g. global/per-atom/local -data and scalar/vector/array data. - -Also note that, as described above, when a command takes a scalar as -input, that could be an element of a vector or array. Likewise a -vector input could be a column of an array. - -Command: Input: Output: -"thermo_style custom"_thermo_style.html: global scalars: screen, log file: -"dump custom"_dump.html: per-atom vectors: dump file: -"dump local"_dump.html: local vectors: dump file: -"fix print"_fix_print.html: global scalar from variable: screen, file: -"print"_print.html: global scalar from variable: screen: -"computes"_compute.html: N/A: global/per-atom/local scalar/vector/array: -"fixes"_fix.html: N/A: global/per-atom/local scalar/vector/array: -"variables"_variable.html: global scalars and vectors, per-atom vectors: global scalar and vector, per-atom vector: -"compute reduce"_compute_reduce.html: per-atom/local vectors: global scalar/vector: -"compute slice"_compute_slice.html: global vectors/arrays: global vector/array: -"compute property/atom"_compute_property_atom.html: per-atom vectors: per-atom vector/array: -"compute property/local"_compute_property_local.html: local vectors: local vector/array: -"fix vector"_fix_vector.html: global scalars: global vector: -"fix ave/atom"_fix_ave_atom.html: per-atom vectors: per-atom vector/array: -"fix ave/time"_fix_ave_time.html: global scalars/vectors: global scalar/vector/array, file: -"fix ave/chunk"_fix_ave_chunk.html: per-atom vectors: global array, file: -"fix ave/histo"_fix_ave_histo.html: global/per-atom/local scalars and vectors: global array, file: -"fix ave/correlate"_fix_ave_correlate.html: global scalars: global array, file: -"fix store/state"_fix_store_state.html: per-atom vectors: per-atom vector/array :tb(c=3,s=:) - -:line - -6.16 Thermostatting, barostatting, and computing temperature :link(howto_16),h4 - -Thermostatting means controlling the temperature of particles in an MD -simulation. Barostatting means controlling the pressure. Since the -pressure includes a kinetic component due to particle velocities, both -these operations require calculation of the temperature. Typically a -target temperature (T) and/or pressure (P) is specified by the user, -and the thermostat or barostat attempts to equilibrate the system to -the requested T and/or P. - -Temperature is computed as kinetic energy divided by some number of -degrees of freedom (and the Boltzmann constant). Since kinetic energy -is a function of particle velocity, there is often a need to -distinguish between a particle's advection velocity (due to some -aggregate motion of particles) and its thermal velocity. The sum of -the two is the particle's total velocity, but the latter is often what -is wanted to compute a temperature. - -LAMMPS has several options for computing temperatures, any of which -can be used in thermostatting and barostatting. These "compute -commands"_compute.html calculate temperature, and the "compute -pressure"_compute_pressure.html command calculates pressure. - -"compute temp"_compute_temp.html -"compute temp/sphere"_compute_temp_sphere.html -"compute temp/asphere"_compute_temp_asphere.html -"compute temp/com"_compute_temp_com.html -"compute temp/deform"_compute_temp_deform.html -"compute temp/partial"_compute_temp_partial.html -"compute temp/profile"_compute_temp_profile.html -"compute temp/ramp"_compute_temp_ramp.html -"compute temp/region"_compute_temp_region.html :ul - -All but the first 3 calculate velocity biases directly (e.g. advection -velocities) that are removed when computing the thermal temperature. -"Compute temp/sphere"_compute_temp_sphere.html and "compute -temp/asphere"_compute_temp_asphere.html compute kinetic energy for -finite-size particles that includes rotational degrees of freedom. -They both allow for velocity biases indirectly, via an optional extra -argument, another temperature compute that subtracts a velocity bias. -This allows the translational velocity of spherical or aspherical -particles to be adjusted in prescribed ways. - -Thermostatting in LAMMPS is performed by "fixes"_fix.html, or in one -case by a pair style. Several thermostatting fixes are available: -Nose-Hoover (nvt), Berendsen, CSVR, Langevin, and direct rescaling -(temp/rescale). Dissipative particle dynamics (DPD) thermostatting -can be invoked via the {dpd/tstat} pair style: - -"fix nvt"_fix_nh.html -"fix nvt/sphere"_fix_nvt_sphere.html -"fix nvt/asphere"_fix_nvt_asphere.html -"fix nvt/sllod"_fix_nvt_sllod.html -"fix temp/berendsen"_fix_temp_berendsen.html -"fix temp/csvr"_fix_temp_csvr.html -"fix langevin"_fix_langevin.html -"fix temp/rescale"_fix_temp_rescale.html -"pair_style dpd/tstat"_pair_dpd.html :ul - -"Fix nvt"_fix_nh.html only thermostats the translational velocity of -particles. "Fix nvt/sllod"_fix_nvt_sllod.html also does this, except -that it subtracts out a velocity bias due to a deforming box and -integrates the SLLOD equations of motion. See the "NEMD -simulations"_#howto_13 section of this page for further details. "Fix -nvt/sphere"_fix_nvt_sphere.html and "fix -nvt/asphere"_fix_nvt_asphere.html thermostat not only translation -velocities but also rotational velocities for spherical and aspherical -particles. - -DPD thermostatting alters pairwise interactions in a manner analogous -to the per-particle thermostatting of "fix -langevin"_fix_langevin.html. - -Any of the thermostatting fixes can use temperature computes that -remove bias which has two effects. First, the current calculated -temperature, which is compared to the requested target temperature, is -calculated with the velocity bias removed. Second, the thermostat -adjusts only the thermal temperature component of the particle's -velocities, which are the velocities with the bias removed. The -removed bias is then added back to the adjusted velocities. See the -doc pages for the individual fixes and for the -"fix_modify"_fix_modify.html command for instructions on how to assign -a temperature compute to a thermostatting fix. For example, you can -apply a thermostat to only the x and z components of velocity by using -it in conjunction with "compute -temp/partial"_compute_temp_partial.html. Of you could thermostat only -the thermal temperature of a streaming flow of particles without -affecting the streaming velocity, by using "compute -temp/profile"_compute_temp_profile.html. - -NOTE: Only the nvt fixes perform time integration, meaning they update -the velocities and positions of particles due to forces and velocities -respectively. The other thermostat fixes only adjust velocities; they -do NOT perform time integration updates. Thus they should be used in -conjunction with a constant NVE integration fix such as these: - -"fix nve"_fix_nve.html -"fix nve/sphere"_fix_nve_sphere.html -"fix nve/asphere"_fix_nve_asphere.html :ul - -Barostatting in LAMMPS is also performed by "fixes"_fix.html. Two -barosttating methods are currently available: Nose-Hoover (npt and -nph) and Berendsen: - -"fix npt"_fix_nh.html -"fix npt/sphere"_fix_npt_sphere.html -"fix npt/asphere"_fix_npt_asphere.html -"fix nph"_fix_nh.html -"fix press/berendsen"_fix_press_berendsen.html :ul - -The "fix npt"_fix_nh.html commands include a Nose-Hoover thermostat -and barostat. "Fix nph"_fix_nh.html is just a Nose/Hoover barostat; -it does no thermostatting. Both "fix nph"_fix_nh.html and "fix -press/berendsen"_fix_press_berendsen.html can be used in conjunction -with any of the thermostatting fixes. - -As with the thermostats, "fix npt"_fix_nh.html and "fix -nph"_fix_nh.html only use translational motion of the particles in -computing T and P and performing thermo/barostatting. "Fix -npt/sphere"_fix_npt_sphere.html and "fix -npt/asphere"_fix_npt_asphere.html thermo/barostat using not only -translation velocities but also rotational velocities for spherical -and aspherical particles. - -All of the barostatting fixes use the "compute -pressure"_compute_pressure.html compute to calculate a current -pressure. By default, this compute is created with a simple "compute -temp"_compute_temp.html (see the last argument of the "compute -pressure"_compute_pressure.html command), which is used to calculated -the kinetic component of the pressure. The barostatting fixes can -also use temperature computes that remove bias for the purpose of -computing the kinetic component which contributes to the current -pressure. See the doc pages for the individual fixes and for the -"fix_modify"_fix_modify.html command for instructions on how to assign -a temperature or pressure compute to a barostatting fix. - -NOTE: As with the thermostats, the Nose/Hoover methods ("fix -npt"_fix_nh.html and "fix nph"_fix_nh.html) perform time integration. -"Fix press/berendsen"_fix_press_berendsen.html does NOT, so it should -be used with one of the constant NVE fixes or with one of the NVT -fixes. - -Finally, thermodynamic output, which can be setup via the -"thermo_style"_thermo_style.html command, often includes temperature -and pressure values. As explained on the doc page for the -"thermo_style"_thermo_style.html command, the default T and P are -setup by the thermo command itself. They are NOT the ones associated -with any thermostatting or barostatting fix you have defined or with -any compute that calculates a temperature or pressure. Thus if you -want to view these values of T and P, you need to specify them -explicitly via a "thermo_style custom"_thermo_style.html command. Or -you can use the "thermo_modify"_thermo_modify.html command to -re-define what temperature or pressure compute is used for default -thermodynamic output. - -:line - -6.17 Walls :link(howto_17),h4 - -Walls in an MD simulation are typically used to bound particle motion, -i.e. to serve as a boundary condition. - -Walls in LAMMPS can be of rough (made of particles) or idealized -surfaces. Ideal walls can be smooth, generating forces only in the -normal direction, or frictional, generating forces also in the -tangential direction. - -Rough walls, built of particles, can be created in various ways. The -particles themselves can be generated like any other particle, via the -"lattice"_lattice.html and "create_atoms"_create_atoms.html commands, -or read in via the "read_data"_read_data.html command. - -Their motion can be constrained by many different commands, so that -they do not move at all, move together as a group at constant velocity -or in response to a net force acting on them, move in a prescribed -fashion (e.g. rotate around a point), etc. Note that if a time -integration fix like "fix nve"_fix_nve.html or "fix nvt"_fix_nh.html -is not used with the group that contains wall particles, their -positions and velocities will not be updated. - -"fix aveforce"_fix_aveforce.html - set force on particles to average value, so they move together -"fix setforce"_fix_setforce.html - set force on particles to a value, e.g. 0.0 -"fix freeze"_fix_freeze.html - freeze particles for use as granular walls -"fix nve/noforce"_fix_nve_noforce.html - advect particles by their velocity, but without force -"fix move"_fix_move.html - prescribe motion of particles by a linear velocity, oscillation, rotation, variable :ul - -The "fix move"_fix_move.html command offers the most generality, since -the motion of individual particles can be specified with -"variable"_variable.html formula which depends on time and/or the -particle position. - -For rough walls, it may be useful to turn off pairwise interactions -between wall particles via the "neigh_modify -exclude"_neigh_modify.html command. - -Rough walls can also be created by specifying frozen particles that do -not move and do not interact with mobile particles, and then tethering -other particles to the fixed particles, via a "bond"_bond_style.html. -The bonded particles do interact with other mobile particles. - -Idealized walls can be specified via several fix commands. "Fix -wall/gran"_fix_wall_gran.html creates frictional walls for use with -granular particles; all the other commands create smooth walls. - -"fix wall/reflect"_fix_wall_reflect.html - reflective flat walls -"fix wall/lj93"_fix_wall.html - flat walls, with Lennard-Jones 9/3 potential -"fix wall/lj126"_fix_wall.html - flat walls, with Lennard-Jones 12/6 potential -"fix wall/colloid"_fix_wall.html - flat walls, with "pair_style colloid"_pair_colloid.html potential -"fix wall/harmonic"_fix_wall.html - flat walls, with repulsive harmonic spring potential -"fix wall/region"_fix_wall_region.html - use region surface as wall -"fix wall/gran"_fix_wall_gran.html - flat or curved walls with "pair_style granular"_pair_gran.html potential :ul - -The {lj93}, {lj126}, {colloid}, and {harmonic} styles all allow the -flat walls to move with a constant velocity, or oscillate in time. -The "fix wall/region"_fix_wall_region.html command offers the most -generality, since the region surface is treated as a wall, and the -geometry of the region can be a simple primitive volume (e.g. a -sphere, or cube, or plane), or a complex volume made from the union -and intersection of primitive volumes. "Regions"_region.html can also -specify a volume "interior" or "exterior" to the specified primitive -shape or {union} or {intersection}. "Regions"_region.html can also be -"dynamic" meaning they move with constant velocity, oscillate, or -rotate. - -The only frictional idealized walls currently in LAMMPS are flat or -curved surfaces specified by the "fix wall/gran"_fix_wall_gran.html -command. At some point we plan to allow regoin surfaces to be used as -frictional walls, as well as triangulated surfaces. - -:line - -6.18 Elastic constants :link(howto_18),h4 - -Elastic constants characterize the stiffness of a material. The formal -definition is provided by the linear relation that holds between the -stress and strain tensors in the limit of infinitesimal deformation. -In tensor notation, this is expressed as s_ij = C_ijkl * e_kl, where -the repeated indices imply summation. s_ij are the elements of the -symmetric stress tensor. e_kl are the elements of the symmetric strain -tensor. C_ijkl are the elements of the fourth rank tensor of elastic -constants. In three dimensions, this tensor has 3^4=81 elements. Using -Voigt notation, the tensor can be written as a 6x6 matrix, where C_ij -is now the derivative of s_i w.r.t. e_j. Because s_i is itself a -derivative w.r.t. e_i, it follows that C_ij is also symmetric, with at -most 7*6/2 = 21 distinct elements. - -At zero temperature, it is easy to estimate these derivatives by -deforming the simulation box in one of the six directions using the -"change_box"_change_box.html command and measuring the change in the -stress tensor. A general-purpose script that does this is given in the -examples/elastic directory described on the "Examples"_Examples.html -doc page. - -Calculating elastic constants at finite temperature is more -challenging, because it is necessary to run a simulation that perfoms -time averages of differential properties. One way to do this is to -measure the change in average stress tensor in an NVT simulations when -the cell volume undergoes a finite deformation. In order to balance -the systematic and statistical errors in this method, the magnitude of -the deformation must be chosen judiciously, and care must be taken to -fully equilibrate the deformed cell before sampling the stress -tensor. Another approach is to sample the triclinic cell fluctuations -that occur in an NPT simulation. This method can also be slow to -converge and requires careful post-processing "(Shinoda)"_#Shinoda1 - -:line - -6.19 Library interface to LAMMPS :link(howto_19),h4 - -As described in "Section 2.5"_Section_start.html#start_5, LAMMPS can -be built as a library, so that it can be called by another code, used -in a "coupled manner"_Section_howto.html#howto_10 with other codes, or -driven through a "Python interface"_Python.html. - -All of these methodologies use a C-style interface to LAMMPS that is -provided in the files src/library.cpp and src/library.h. The -functions therein have a C-style argument list, but contain C++ code -you could write yourself in a C++ application that was invoking LAMMPS -directly. The C++ code in the functions illustrates how to invoke -internal LAMMPS operations. Note that LAMMPS classes are defined -within a LAMMPS namespace (LAMMPS_NS) if you use them from another C++ -application. - -The examples/COUPLE and python/examples directories have example C++ -and C and Python codes which show how a driver code can link to LAMMPS -as a library, run LAMMPS on a subset of processors, grab data from -LAMMPS, change it, and put it back into LAMMPS. - -The file src/library.cpp contains the following functions for creating -and destroying an instance of LAMMPS and sending it commands to -execute. See the documentation in the src/library.cpp file for -details. - -NOTE: You can write code for additional functions as needed to define -how your code talks to LAMMPS and add them to src/library.cpp and -src/library.h, as well as to the "Python interface"_Python.html. The -added functions can access or change any internal LAMMPS data you -wish. - -void lammps_open(int, char **, MPI_Comm, void **) -void lammps_open_no_mpi(int, char **, void **) -void lammps_close(void *) -int lammps_version(void *) -void lammps_file(void *, char *) -char *lammps_command(void *, char *) -void lammps_commands_list(void *, int, char **) -void lammps_commands_string(void *, char *) -void lammps_free(void *) :pre - -The lammps_open() function is used to initialize LAMMPS, passing in a -list of strings as if they were "command-line -arguments"_Section_start.html#start_6 when LAMMPS is run in -stand-alone mode from the command line, and a MPI communicator for -LAMMPS to run under. It returns a ptr to the LAMMPS object that is -created, and which is used in subsequent library calls. The -lammps_open() function can be called multiple times, to create -multiple instances of LAMMPS. - -LAMMPS will run on the set of processors in the communicator. This -means the calling code can run LAMMPS on all or a subset of -processors. For example, a wrapper script might decide to alternate -between LAMMPS and another code, allowing them both to run on all the -processors. Or it might allocate half the processors to LAMMPS and -half to the other code and run both codes simultaneously before -syncing them up periodically. Or it might instantiate multiple -instances of LAMMPS to perform different calculations. - -The lammps_open_no_mpi() function is similar except that no MPI -communicator is passed from the caller. Instead, MPI_COMM_WORLD is -used to instantiate LAMMPS, and MPI is initialized if necessary. - -The lammps_close() function is used to shut down an instance of LAMMPS -and free all its memory. - -The lammps_version() function can be used to determined the specific -version of the underlying LAMMPS code. This is particularly useful -when loading LAMMPS as a shared library via dlopen(). The code using -the library interface can than use this information to adapt to -changes to the LAMMPS command syntax between versions. The returned -LAMMPS version code is an integer (e.g. 2 Sep 2015 results in -20150902) that grows with every new LAMMPS version. - -The lammps_file(), lammps_command(), lammps_commands_list(), and -lammps_commands_string() functions are used to pass one or more -commands to LAMMPS to execute, the same as if they were coming from an -input script. - -Via these functions, the calling code can read or generate a series of -LAMMPS commands one or multiple at a time and pass it thru the library -interface to setup a problem and then run it in stages. The caller -can interleave the command function calls with operations it performs, -calls to extract information from or set information within LAMMPS, or -calls to another code's library. - -The lammps_file() function passes the filename of an input script. -The lammps_command() function passes a single command as a string. -The lammps_commands_list() function passes multiple commands in a -char** list. In both lammps_command() and lammps_commands_list(), -individual commands may or may not have a trailing newline. The -lammps_commands_string() function passes multiple commands -concatenated into one long string, separated by newline characters. -In both lammps_commands_list() and lammps_commands_string(), a single -command can be spread across multiple lines, if the last printable -character of all but the last line is "&", the same as if the lines -appeared in an input script. - -The lammps_free() function is a clean-up function to free memory that -the library allocated previously via other function calls. See -comments in src/library.cpp file for which other functions need this -clean-up. - -The file src/library.cpp also contains these functions for extracting -information from LAMMPS and setting value within LAMMPS. Again, see -the documentation in the src/library.cpp file for details, including -which quantities can be queried by name: - -int lammps_extract_setting(void *, char *) -void *lammps_extract_global(void *, char *) -void lammps_extract_box(void *, double *, double *, - double *, double *, double *, int *, int *) -void *lammps_extract_atom(void *, char *) -void *lammps_extract_compute(void *, char *, int, int) -void *lammps_extract_fix(void *, char *, int, int, int, int) -void *lammps_extract_variable(void *, char *, char *) :pre - -The extract_setting() function returns info on the size -of data types (e.g. 32-bit or 64-bit atom IDs) used -by the LAMMPS executable (a compile-time choice). - -The other extract functions return a pointer to various global or -per-atom quantities stored in LAMMPS or to values calculated by a -compute, fix, or variable. The pointer returned by the -extract_global() function can be used as a permanent reference to a -value which may change. For the extract_atom() method, see the -extract() method in the src/atom.cpp file for a list of valid per-atom -properties. New names could easily be added if the property you want -is not listed. For the other extract functions, the underlying -storage may be reallocated as LAMMPS runs, so you need to re-call the -function to assure a current pointer or returned value(s). - -double lammps_get_thermo(void *, char *) -int lammps_get_natoms(void *) :pre - -int lammps_set_variable(void *, char *, char *) -void lammps_reset_box(void *, double *, double *, double, double, double) :pre - -The lammps_get_thermo() function returns the current value of a thermo -keyword as a double precision value. - -The lammps_get_natoms() function returns the total number of atoms in -the system and can be used by the caller to allocate memory for the -lammps_gather_atoms() and lammps_scatter_atoms() functions. - -The lammps_set_variable() function can set an existing string-style -variable to a new string value, so that subsequent LAMMPS commands can -access the variable. - -The lammps_reset_box() function resets the size and shape of the -simulation box, e.g. as part of restoring a previously extracted and -saved state of a simulation. - -void lammps_gather_atoms(void *, char *, int, int, void *) -void lammps_gather_atoms_concat(void *, char *, int, int, void *) -void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *) -void lammps_scatter_atoms(void *, char *, int, int, void *) -void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *) :pre - -void lammps_create_atoms(void *, int, tagint *, int *, double *, double *, - imageint *, int) :pre - -The gather functions collect peratom info of the requested type (atom -coords, atom types, forces, etc) from all processors, and returns the -same vector of values to each callling processor. The scatter -functions do the inverse. They distribute a vector of peratom values, -passed by all calling processors, to invididual atoms, which may be -owned by different processos. - -The lammps_gather_atoms() function does this for all N atoms in the -system, ordered by atom ID, from 1 to N. The -lammps_gather_atoms_concat() function does it for all N atoms, but -simply concatenates the subset of atoms owned by each processor. The -resulting vector is not ordered by atom ID. Atom IDs can be requetsed -by the same function if the caller needs to know the ordering. The -lammps_gather_subset() function allows the caller to request values -for only a subset of atoms (identified by ID). -For all 3 gather function, per-atom image flags can be retrieved in 2 ways. -If the count is specified as 1, they are returned -in a packed format with all three image flags stored in a single integer. -If the count is specified as 3, the values are unpacked into xyz flags -by the library before returning them. - -The lammps_scatter_atoms() function takes a list of values for all N -atoms in the system, ordered by atom ID, from 1 to N, and assigns -those values to each atom in the system. The -lammps_scatter_atoms_subset() function takes a subset of IDs as an -argument and only scatters those values to the owning atoms. - -The lammps_create_atoms() function takes a list of N atoms as input -with atom types and coords (required), an optionally atom IDs and -velocities and image flags. It uses the coords of each atom to assign -it as a new atom to the processor that owns it. This function is -useful to add atoms to a simulation or (in tandem with -lammps_reset_box()) to restore a previously extracted and saved state -of a simulation. Additional properties for the new atoms can then be -assigned via the lammps_scatter_atoms() or lammps_extract_atom() -functions. - -:line - -6.20 Calculating thermal conductivity :link(howto_20),h4 - -The thermal conductivity kappa of a material can be measured in at -least 4 ways using various options in LAMMPS. See the examples/KAPPA -directory for scripts that implement the 4 methods discussed here for -a simple Lennard-Jones fluid model. Also, see "this -section"_Section_howto.html#howto_21 of the manual for an analogous -discussion for viscosity. - -The thermal conductivity tensor kappa is a measure of the propensity -of a material to transmit heat energy in a diffusive manner as given -by Fourier's law - -J = -kappa grad(T) - -where J is the heat flux in units of energy per area per time and -grad(T) is the spatial gradient of temperature. The thermal -conductivity thus has units of energy per distance per time per degree -K and is often approximated as an isotropic quantity, i.e. as a -scalar. - -The first method is to setup two thermostatted regions at opposite -ends of a simulation box, or one in the middle and one at the end of a -periodic box. By holding the two regions at different temperatures -with a "thermostatting fix"_Section_howto.html#howto_13, the energy -added to the hot region should equal the energy subtracted from the -cold region and be proportional to the heat flux moving between the -regions. See the papers by "Ikeshoji and Hafskjold"_#howto-Ikeshoji -and "Wirnsberger et al"_#howto-Wirnsberger for details of this idea. -Note that thermostatting fixes such as "fix nvt"_fix_nh.html, "fix -langevin"_fix_langevin.html, and "fix -temp/rescale"_fix_temp_rescale.html store the cumulative energy they -add/subtract. - -Alternatively, as a second method, the "fix heat"_fix_heat.html or -"fix ehex"_fix_ehex.html commands can be used in place of thermostats -on each of two regions to add/subtract specified amounts of energy to -both regions. In both cases, the resulting temperatures of the two -regions can be monitored with the "compute temp/region" command and -the temperature profile of the intermediate region can be monitored -with the "fix ave/chunk"_fix_ave_chunk.html and "compute -ke/atom"_compute_ke_atom.html commands. - -The third method is to perform a reverse non-equilibrium MD simulation -using the "fix thermal/conductivity"_fix_thermal_conductivity.html -command which implements the rNEMD algorithm of Muller-Plathe. -Kinetic energy is swapped between atoms in two different layers of the -simulation box. This induces a temperature gradient between the two -layers which can be monitored with the "fix -ave/chunk"_fix_ave_chunk.html and "compute -ke/atom"_compute_ke_atom.html commands. The fix tallies the -cumulative energy transfer that it performs. See the "fix -thermal/conductivity"_fix_thermal_conductivity.html command for -details. - -The fourth method is based on the Green-Kubo (GK) formula which -relates the ensemble average of the auto-correlation of the heat flux -to kappa. The heat flux can be calculated from the fluctuations of -per-atom potential and kinetic energies and per-atom stress tensor in -a steady-state equilibrated simulation. This is in contrast to the -two preceding non-equilibrium methods, where energy flows continuously -between hot and cold regions of the simulation box. - -The "compute heat/flux"_compute_heat_flux.html command can calculate -the needed heat flux and describes how to implement the Green_Kubo -formalism using additional LAMMPS commands, such as the "fix -ave/correlate"_fix_ave_correlate.html command to calculate the needed -auto-correlation. See the doc page for the "compute -heat/flux"_compute_heat_flux.html command for an example input script -that calculates the thermal conductivity of solid Ar via the GK -formalism. - -:line - -6.21 Calculating viscosity :link(howto_21),h4 - -The shear viscosity eta of a fluid can be measured in at least 5 ways -using various options in LAMMPS. See the examples/VISCOSITY directory -for scripts that implement the 5 methods discussed here for a simple -Lennard-Jones fluid model. Also, see "this -section"_Section_howto.html#howto_20 of the manual for an analogous -discussion for thermal conductivity. - -Eta is a measure of the propensity of a fluid to transmit momentum in -a direction perpendicular to the direction of velocity or momentum -flow. Alternatively it is the resistance the fluid has to being -sheared. It is given by - -J = -eta grad(Vstream) - -where J is the momentum flux in units of momentum per area per time. -and grad(Vstream) is the spatial gradient of the velocity of the fluid -moving in another direction, normal to the area through which the -momentum flows. Viscosity thus has units of pressure-time. - -The first method is to perform a non-equilibrium MD (NEMD) simulation -by shearing the simulation box via the "fix deform"_fix_deform.html -command, and using the "fix nvt/sllod"_fix_nvt_sllod.html command to -thermostat the fluid via the SLLOD equations of motion. -Alternatively, as a second method, one or more moving walls can be -used to shear the fluid in between them, again with some kind of -thermostat that modifies only the thermal (non-shearing) components of -velocity to prevent the fluid from heating up. - -In both cases, the velocity profile setup in the fluid by this -procedure can be monitored by the "fix -ave/chunk"_fix_ave_chunk.html command, which determines -grad(Vstream) in the equation above. E.g. the derivative in the -y-direction of the Vx component of fluid motion or grad(Vstream) = -dVx/dy. The Pxy off-diagonal component of the pressure or stress -tensor, as calculated by the "compute pressure"_compute_pressure.html -command, can also be monitored, which is the J term in the equation -above. See "this section"_Section_howto.html#howto_13 of the manual -for details on NEMD simulations. - -The third method is to perform a reverse non-equilibrium MD simulation -using the "fix viscosity"_fix_viscosity.html command which implements -the rNEMD algorithm of Muller-Plathe. Momentum in one dimension is -swapped between atoms in two different layers of the simulation box in -a different dimension. This induces a velocity gradient which can be -monitored with the "fix ave/chunk"_fix_ave_chunk.html command. -The fix tallies the cumulative momentum transfer that it performs. -See the "fix viscosity"_fix_viscosity.html command for details. - -The fourth method is based on the Green-Kubo (GK) formula which -relates the ensemble average of the auto-correlation of the -stress/pressure tensor to eta. This can be done in a fully -equilibrated simulation which is in contrast to the two preceding -non-equilibrium methods, where momentum flows continuously through the -simulation box. - -Here is an example input script that calculates the viscosity of -liquid Ar via the GK formalism: - -# Sample LAMMPS input script for viscosity of liquid Ar :pre - -units real -variable T equal 86.4956 -variable V equal vol -variable dt equal 4.0 -variable p equal 400 # correlation length -variable s equal 5 # sample interval -variable d equal $p*$s # dump interval :pre - -# convert from LAMMPS real units to SI :pre - -variable kB equal 1.3806504e-23 # \[J/K/] Boltzmann -variable atm2Pa equal 101325.0 -variable A2m equal 1.0e-10 -variable fs2s equal 1.0e-15 -variable convert equal $\{atm2Pa\}*$\{atm2Pa\}*$\{fs2s\}*$\{A2m\}*$\{A2m\}*$\{A2m\} :pre - -# setup problem :pre - -dimension 3 -boundary p p p -lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1 -region box block 0 4 0 4 0 4 -create_box 1 box -create_atoms 1 box -mass 1 39.948 -pair_style lj/cut 13.0 -pair_coeff * * 0.2381 3.405 -timestep $\{dt\} -thermo $d :pre - -# equilibration and thermalization :pre - -velocity all create $T 102486 mom yes rot yes dist gaussian -fix NVT all nvt temp $T $T 10 drag 0.2 -run 8000 :pre - -# viscosity calculation, switch to NVE if desired :pre - -#unfix NVT -#fix NVE all nve :pre - -reset_timestep 0 -variable pxy equal pxy -variable pxz equal pxz -variable pyz equal pyz -fix SS all ave/correlate $s $p $d & - v_pxy v_pxz v_pyz type auto file S0St.dat ave running -variable scale equal $\{convert\}/($\{kB\}*$T)*$V*$s*$\{dt\} -variable v11 equal trap(f_SS\[3\])*$\{scale\} -variable v22 equal trap(f_SS\[4\])*$\{scale\} -variable v33 equal trap(f_SS\[5\])*$\{scale\} -thermo_style custom step temp press v_pxy v_pxz v_pyz v_v11 v_v22 v_v33 -run 100000 -variable v equal (v_v11+v_v22+v_v33)/3.0 -variable ndens equal count(all)/vol -print "average viscosity: $v \[Pa.s\] @ $T K, $\{ndens\} /A^3" :pre - -The fifth method is related to the above Green-Kubo method, -but uses the Einstein formulation, analogous to the Einstein -mean-square-displacement formulation for self-diffusivity. The -time-integrated momentum fluxes play the role of Cartesian -coordinates, whose mean-square displacement increases linearly -with time at sufficiently long times. - -:line - -6.22 Calculating a diffusion coefficient :link(howto_22),h4 - -The diffusion coefficient D of a material can be measured in at least -2 ways using various options in LAMMPS. See the examples/DIFFUSE -directory for scripts that implement the 2 methods discussed here for -a simple Lennard-Jones fluid model. - -The first method is to measure the mean-squared displacement (MSD) of -the system, via the "compute msd"_compute_msd.html command. The slope -of the MSD versus time is proportional to the diffusion coefficient. -The instantaneous MSD values can be accumulated in a vector via the -"fix vector"_fix_vector.html command, and a line fit to the vector to -compute its slope via the "variable slope"_variable.html function, and -thus extract D. - -The second method is to measure the velocity auto-correlation function -(VACF) of the system, via the "compute vacf"_compute_vacf.html -command. The time-integral of the VACF is proportional to the -diffusion coefficient. The instantaneous VACF values can be -accumulated in a vector via the "fix vector"_fix_vector.html command, -and time integrated via the "variable trap"_variable.html function, -and thus extract D. - -:line - -6.23 Using chunks to calculate system properties :link(howto_23),h4 - -In LAMMS, "chunks" are collections of atoms, as defined by the -"compute chunk/atom"_compute_chunk_atom.html command, which assigns -each atom to a chunk ID (or to no chunk at all). The number of chunks -and the assignment of chunk IDs to atoms can be static or change over -time. Examples of "chunks" are molecules or spatial bins or atoms -with similar values (e.g. coordination number or potential energy). - -The per-atom chunk IDs can be used as input to two other kinds of -commands, to calculate various properties of a system: - -"fix ave/chunk"_fix_ave_chunk.html -any of the "compute */chunk"_compute.html commands :ul - -Here, each of the 3 kinds of chunk-related commands is briefly -overviewed. Then some examples are given of how to compute different -properties with chunk commands. - -Compute chunk/atom command: :h4 - -This compute can assign atoms to chunks of various styles. Only atoms -in the specified group and optional specified region are assigned to a -chunk. Here are some possible chunk definitions: - -atoms in same molecule | chunk ID = molecule ID | -atoms of same atom type | chunk ID = atom type | -all atoms with same atom property (charge, radius, etc) | chunk ID = output of compute property/atom | -atoms in same cluster | chunk ID = output of "compute cluster/atom"_compute_cluster_atom.html command | -atoms in same spatial bin | chunk ID = bin ID | -atoms in same rigid body | chunk ID = molecule ID used to define rigid bodies | -atoms with similar potential energy | chunk ID = output of "compute pe/atom"_compute_pe_atom.html | -atoms with same local defect structure | chunk ID = output of "compute centro/atom"_compute_centro_atom.html or "compute coord/atom"_compute_coord_atom.html command :tb(s=|,c=2) - -Note that chunk IDs are integer values, so for atom properties or -computes that produce a floating point value, they will be truncated -to an integer. You could also use the compute in a variable that -scales the floating point value to spread it across multiple integers. - -Spatial bins can be of various kinds, e.g. 1d bins = slabs, 2d bins = -pencils, 3d bins = boxes, spherical bins, cylindrical bins. - -This compute also calculates the number of chunks {Nchunk}, which is -used by other commands to tally per-chunk data. {Nchunk} can be a -static value or change over time (e.g. the number of clusters). The -chunk ID for an individual atom can also be static (e.g. a molecule -ID), or dynamic (e.g. what spatial bin an atom is in as it moves). - -Note that this compute allows the per-atom output of other -"computes"_compute.html, "fixes"_fix.html, and -"variables"_variable.html to be used to define chunk IDs for each -atom. This means you can write your own compute or fix to output a -per-atom quantity to use as chunk ID. See the "Modify"_Modify.html -doc page for how to do this. You can also define a "per-atom -variable"_variable.html in the input script that uses a formula to -generate a chunk ID for each atom. - -Fix ave/chunk command: :h4 - -This fix takes the ID of a "compute -chunk/atom"_compute_chunk_atom.html command as input. For each chunk, -it then sums one or more specified per-atom values over the atoms in -each chunk. The per-atom values can be any atom property, such as -velocity, force, charge, potential energy, kinetic energy, stress, -etc. Additional keywords are defined for per-chunk properties like -density and temperature. More generally any per-atom value generated -by other "computes"_compute.html, "fixes"_fix.html, and "per-atom -variables"_variable.html, can be summed over atoms in each chunk. - -Similar to other averaging fixes, this fix allows the summed per-chunk -values to be time-averaged in various ways, and output to a file. The -fix produces a global array as output with one row of values per -chunk. - -Compute */chunk commands: :h4 - -Currently the following computes operate on chunks of atoms to produce -per-chunk values. - -"compute com/chunk"_compute_com_chunk.html -"compute gyration/chunk"_compute_gyration_chunk.html -"compute inertia/chunk"_compute_inertia_chunk.html -"compute msd/chunk"_compute_msd_chunk.html -"compute property/chunk"_compute_property_chunk.html -"compute temp/chunk"_compute_temp_chunk.html -"compute torque/chunk"_compute_vcm_chunk.html -"compute vcm/chunk"_compute_vcm_chunk.html :ul - -They each take the ID of a "compute -chunk/atom"_compute_chunk_atom.html command as input. As their names -indicate, they calculate the center-of-mass, radius of gyration, -moments of inertia, mean-squared displacement, temperature, torque, -and velocity of center-of-mass for each chunk of atoms. The "compute -property/chunk"_compute_property_chunk.html command can tally the -count of atoms in each chunk and extract other per-chunk properties. - -The reason these various calculations are not part of the "fix -ave/chunk command"_fix_ave_chunk.html, is that each requires a more -complicated operation than simply summing and averaging over per-atom -values in each chunk. For example, many of them require calculation -of a center of mass, which requires summing mass*position over the -atoms and then dividing by summed mass. - -All of these computes produce a global vector or global array as -output, wih one or more values per chunk. They can be used -in various ways: - -As input to the "fix ave/time"_fix_ave_time.html command, which can -write the values to a file and optionally time average them. :ulb,l - -As input to the "fix ave/histo"_fix_ave_histo.html command to -histogram values across chunks. E.g. a histogram of cluster sizes or -molecule diffusion rates. :l - -As input to special functions of "equal-style -variables"_variable.html, like sum() and max(). E.g. to find the -largest cluster or fastest diffusing molecule. :l -:ule - -Example calculations with chunks :h4 - -Here are examples using chunk commands to calculate various -properties: - -(1) Average velocity in each of 1000 2d spatial bins: - -compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.01 units reduced -fix 1 all ave/chunk 100 10 1000 cc1 vx vy file tmp.out :pre - -(2) Temperature in each spatial bin, after subtracting a flow -velocity: - -compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.1 units reduced -compute vbias all temp/profile 1 0 0 y 10 -fix 1 all ave/chunk 100 10 1000 cc1 temp bias vbias file tmp.out :pre - -(3) Center of mass of each molecule: - -compute cc1 all chunk/atom molecule -compute myChunk all com/chunk cc1 -fix 1 all ave/time 100 1 100 c_myChunk\[*\] file tmp.out mode vector :pre - -(4) Total force on each molecule and ave/max across all molecules: - -compute cc1 all chunk/atom molecule -fix 1 all ave/chunk 1000 1 1000 cc1 fx fy fz file tmp.out -variable xave equal ave(f_1\[2\]) -variable xmax equal max(f_1\[2\]) -thermo 1000 -thermo_style custom step temp v_xave v_xmax :pre - -(5) Histogram of cluster sizes: - -compute cluster all cluster/atom 1.0 -compute cc1 all chunk/atom c_cluster compress yes -compute size all property/chunk cc1 count -fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo :pre - -:line - -6.24 Setting parameters for the "kspace_style pppm/disp"_kspace_style.html command :link(howto_24),h4 - -The PPPM method computes interactions by splitting the pair potential -into two parts, one of which is computed in a normal pairwise fashion, -the so-called real-space part, and one of which is computed using the -Fourier transform, the so called reciprocal-space or kspace part. For -both parts, the potential is not computed exactly but is approximated. -Thus, there is an error in both parts of the computation, the -real-space and the kspace error. The just mentioned facts are true -both for the PPPM for Coulomb as well as dispersion interactions. The -deciding difference - and also the reason why the parameters for -pppm/disp have to be selected with more care - is the impact of the -errors on the results: The kspace error of the PPPM for Coulomb and -dispersion interaction and the real-space error of the PPPM for -Coulomb interaction have the character of noise. In contrast, the -real-space error of the PPPM for dispersion has a clear physical -interpretation: the underprediction of cohesion. As a consequence, the -real-space error has a much stronger effect than the kspace error on -simulation results for pppm/disp. Parameters must thus be chosen in a -way that this error is much smaller than the kspace error. - -When using pppm/disp and not making any specifications on the PPPM -parameters via the kspace modify command, parameters will be tuned -such that the real-space error and the kspace error are equal. This -will result in simulations that are either inaccurate or slow, both of -which is not desirable. For selecting parameters for the pppm/disp -that provide fast and accurate simulations, there are two approaches, -which both have their up- and downsides. - -The first approach is to set desired real-space an kspace accuracies -via the {kspace_modify force/disp/real} and {kspace_modify -force/disp/kspace} commands. Note that the accuracies have to be -specified in force units and are thus dependent on the chosen unit -settings. For real units, 0.0001 and 0.002 seem to provide reasonable -accurate and efficient computations for the real-space and kspace -accuracies. 0.002 and 0.05 work well for most systems using lj -units. PPPM parameters will be generated based on the desired -accuracies. The upside of this approach is that it usually provides a -good set of parameters and will work for both the {kspace_modify diff -ad} and {kspace_modify diff ik} options. The downside of the method -is that setting the PPPM parameters will take some time during the -initialization of the simulation. - -The second approach is to set the parameters for the pppm/disp -explicitly using the {kspace_modify mesh/disp}, {kspace_modify -order/disp}, and {kspace_modify gewald/disp} commands. This approach -requires a more experienced user who understands well the impact of -the choice of parameters on the simulation accuracy and -performance. This approach provides a fast initialization of the -simulation. However, it is sensitive to errors: A combination of -parameters that will perform well for one system might result in -far-from-optimal conditions for other simulations. For example, -parameters that provide accurate and fast computations for -all-atomistic force fields can provide insufficient accuracy or -united-atomistic force fields (which is related to that the latter -typically have larger dispersion coefficients). - -To avoid inaccurate or inefficient simulations, the pppm/disp stops -simulations with an error message if no action is taken to control the -PPPM parameters. If the automatic parameter generation is desired and -real-space and kspace accuracies are desired to be equal, this error -message can be suppressed using the {kspace_modify disp/auto yes} -command. - -A reasonable approach that combines the upsides of both methods is to -make the first run using the {kspace_modify force/disp/real} and -{kspace_modify force/disp/kspace} commands, write down the PPPM -parameters from the outut, and specify these parameters using the -second approach in subsequent runs (which have the same composition, -force field, and approximately the same volume). - -Concerning the performance of the pppm/disp there are two more things -to consider. The first is that when using the pppm/disp, the cutoff -parameter does no longer affect the accuracy of the simulation -(subject to that gewald/disp is adjusted when changing the cutoff). -The performance can thus be increased by examining different values -for the cutoff parameter. A lower bound for the cutoff is only set by -the truncation error of the repulsive term of pair potentials. - -The second is that the mixing rule of the pair style has an impact on -the computation time when using the pppm/disp. Fastest computations -are achieved when using the geometric mixing rule. Using the -arithmetic mixing rule substantially increases the computational cost. -The computational overhead can be reduced using the {kspace_modify -mix/disp geom} and {kspace_modify splittol} commands. The first -command simply enforces geometric mixing of the dispersion -coefficients in kspace computations. This introduces some error in -the computations but will also significantly speed-up the -simulations. The second keyword sets the accuracy with which the -dispersion coefficients are approximated using a matrix factorization -approach. This may result in better accuracy then using the first -command, but will usually also not provide an equally good increase of -efficiency. - -Finally, pppm/disp can also be used when no mixing rules apply. -This can be achieved using the {kspace_modify mix/disp none} command. -Note that the code does not check automatically whether any mixing -rule is fulfilled. If mixing rules do not apply, the user will have -to specify this command explicitly. - -:line - -6.25 Polarizable models :link(howto_25),h4 - -In polarizable force fields the charge distributions in molecules and -materials respond to their electrostatic environments. Polarizable -systems can be simulated in LAMMPS using three methods: - -the fluctuating charge method, implemented in the "QEQ"_fix_qeq.html -package, :ulb,l -the adiabatic core-shell method, implemented in the -"CORESHELL"_#howto_26 package, :l -the thermalized Drude dipole method, implemented in the -"USER-DRUDE"_#howto_27 package. :l -:ule - -The fluctuating charge method calculates instantaneous charges on -interacting atoms based on the electronegativity equalization -principle. It is implemented in the "fix qeq"_fix_qeq.html which is -available in several variants. It is a relatively efficient technique -since no additional particles are introduced. This method allows for -charge transfer between molecules or atom groups. However, because the -charges are located at the interaction sites, off-plane components of -polarization cannot be represented in planar molecules or atom groups. - -The two other methods share the same basic idea: polarizable atoms are -split into one core atom and one satellite particle (called shell or -Drude particle) attached to it by a harmonic spring. Both atoms bear -a charge and they represent collectively an induced electric dipole. -These techniques are computationally more expensive than the QEq -method because of additional particles and bonds. These two -charge-on-spring methods differ in certain features, with the -core-shell model being normally used for ionic/crystalline materials, -whereas the so-called Drude model is normally used for molecular -systems and fluid states. - -The core-shell model is applicable to crystalline materials where the -high symmetry around each site leads to stable trajectories of the -core-shell pairs. However, bonded atoms in molecules can be so close -that a core would interact too strongly or even capture the Drude -particle of a neighbor. The Drude dipole model is relatively more -complex in order to remediate this and other issues. Specifically, the -Drude model includes specific thermostating of the core-Drude pairs -and short-range damping of the induced dipoles. - -The three polarization methods can be implemented through a -self-consistent calculation of charges or induced dipoles at each -timestep. In the fluctuating charge scheme this is done by the matrix -inversion method in "fix qeq/point"_fix_qeq.html, but for core-shell -or Drude-dipoles the relaxed-dipoles technique would require an slow -iterative procedure. These self-consistent solutions yield accurate -trajectories since the additional degrees of freedom representing -polarization are massless. An alternative is to attribute a mass to -the additional degrees of freedom and perform time integration using -an extended Lagrangian technique. For the fluctuating charge scheme -this is done by "fix qeq/dynamic"_fix_qeq.html, and for the -charge-on-spring models by the methods outlined in the next two -sections. The assignment of masses to the additional degrees of -freedom can lead to unphysical trajectories if care is not exerted in -choosing the parameters of the polarizable models and the simulation -conditions. - -In the core-shell model the vibration of the shells is kept faster -than the ionic vibrations to mimic the fast response of the -polarizable electrons. But in molecular systems thermalizing the -core-Drude pairs at temperatures comparable to the rest of the -simulation leads to several problems (kinetic energy transfer, too -short a timestep, etc.) In order to avoid these problems the relative -motion of the Drude particles with respect to their cores is kept -"cold" so the vibration of the core-Drude pairs is very slow, -approaching the self-consistent regime. In both models the -temperature is regulated using the velocities of the center of mass of -core+shell (or Drude) pairs, but in the Drude model the actual -relative core-Drude particle motion is thermostated separately as -well. - -:line - -6.26 Adiabatic core/shell model :link(howto_26),h4 - -The adiabatic core-shell model by "Mitchell and -Fincham"_#MitchellFincham is a simple method for adding -polarizability to a system. In order to mimic the electron shell of -an ion, a satellite particle is attached to it. This way the ions are -split into a core and a shell where the latter is meant to react to -the electrostatic environment inducing polarizability. - -Technically, shells are attached to the cores by a spring force f = -k*r where k is a parametrized spring constant and r is the distance -between the core and the shell. The charges of the core and the shell -add up to the ion charge, thus q(ion) = q(core) + q(shell). This -setup introduces the ion polarizability (alpha) given by -alpha = q(shell)^2 / k. In a -similar fashion the mass of the ion is distributed on the core and the -shell with the core having the larger mass. - -To run this model in LAMMPS, "atom_style"_atom_style.html {full} can -be used since atom charge and bonds are needed. Each kind of -core/shell pair requires two atom types and a bond type. The core and -shell of a core/shell pair should be bonded to each other with a -harmonic bond that provides the spring force. For example, a data file -for NaCl, as found in examples/coreshell, has this format: - -432 atoms # core and shell atoms -216 bonds # number of core/shell springs :pre - -4 atom types # 2 cores and 2 shells for Na and Cl -2 bond types :pre - -0.0 24.09597 xlo xhi -0.0 24.09597 ylo yhi -0.0 24.09597 zlo zhi :pre - -Masses # core/shell mass ratio = 0.1 :pre - -1 20.690784 # Na core -2 31.90500 # Cl core -3 2.298976 # Na shell -4 3.54500 # Cl shell :pre - -Atoms :pre - -1 1 2 1.5005 0.00000000 0.00000000 0.00000000 # core of core/shell pair 1 -2 1 4 -2.5005 0.00000000 0.00000000 0.00000000 # shell of core/shell pair 1 -3 2 1 1.5056 4.01599500 4.01599500 4.01599500 # core of core/shell pair 2 -4 2 3 -0.5056 4.01599500 4.01599500 4.01599500 # shell of core/shell pair 2 -(...) :pre - -Bonds # Bond topology for spring forces :pre - -1 2 1 2 # spring for core/shell pair 1 -2 2 3 4 # spring for core/shell pair 2 -(...) :pre - -Non-Coulombic (e.g. Lennard-Jones) pairwise interactions are only -defined between the shells. Coulombic interactions are defined -between all cores and shells. If desired, additional bonds can be -specified between cores. - -The "special_bonds"_special_bonds.html command should be used to -turn-off the Coulombic interaction within core/shell pairs, since that -interaction is set by the bond spring. This is done using the -"special_bonds"_special_bonds.html command with a 1-2 weight = 0.0, -which is the default value. It needs to be considered whether one has -to adjust the "special_bonds"_special_bonds.html weighting according -to the molecular topology since the interactions of the shells are -bypassed over an extra bond. - -Note that this core/shell implementation does not require all ions to -be polarized. One can mix core/shell pairs and ions without a -satellite particle if desired. - -Since the core/shell model permits distances of r = 0.0 between the -core and shell, a pair style with a "cs" suffix needs to be used to -implement a valid long-range Coulombic correction. Several such pair -styles are provided in the CORESHELL package. See "this doc -page"_pair_cs.html for details. All of the core/shell enabled pair -styles require the use of a long-range Coulombic solver, as specified -by the "kspace_style"_kspace_style.html command. Either the PPPM or -Ewald solvers can be used. - -For the NaCL example problem, these pair style and bond style settings -are used: - -pair_style born/coul/long/cs 20.0 20.0 -pair_coeff * * 0.0 1.000 0.00 0.00 0.00 -pair_coeff 3 3 487.0 0.23768 0.00 1.05 0.50 #Na-Na -pair_coeff 3 4 145134.0 0.23768 0.00 6.99 8.70 #Na-Cl -pair_coeff 4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl :pre - -bond_style harmonic -bond_coeff 1 63.014 0.0 -bond_coeff 2 25.724 0.0 :pre - -When running dynamics with the adiabatic core/shell model, the -following issues should be considered. The relative motion of -the core and shell particles corresponds to the polarization, -hereby an instantaneous relaxation of the shells is approximated -and a fast core/shell spring frequency ensures a nearly constant -internal kinetic energy during the simulation. -Thermostats can alter this polarization behaviour, by scaling the -internal kinetic energy, meaning the shell will not react freely to -its electrostatic environment. -Therefore it is typically desirable to decouple the relative motion of -the core/shell pair, which is an imaginary degree of freedom, from the -real physical system. To do that, the "compute -temp/cs"_compute_temp_cs.html command can be used, in conjunction with -any of the thermostat fixes, such as "fix nvt"_fix_nh.html or "fix -langevin"_fix_langevin. This compute uses the center-of-mass velocity -of the core/shell pairs to calculate a temperature, and insures that -velocity is what is rescaled for thermostatting purposes. This -compute also works for a system with both core/shell pairs and -non-polarized ions (ions without an attached satellite particle). The -"compute temp/cs"_compute_temp_cs.html command requires input of two -groups, one for the core atoms, another for the shell atoms. -Non-polarized ions which might also be included in the treated system -should not be included into either of these groups, they are taken -into account by the {group-ID} (2nd argument) of the compute. The -groups can be defined using the "group {type}"_group.html command. -Note that to perform thermostatting using this definition of -temperature, the "fix modify temp"_fix_modify.html command should be -used to assign the compute to the thermostat fix. Likewise the -"thermo_modify temp"_thermo_modify.html command can be used to make -this temperature be output for the overall system. - -For the NaCl example, this can be done as follows: - -group cores type 1 2 -group shells type 3 4 -compute CSequ all temp/cs cores shells -fix thermoberendsen all temp/berendsen 1427 1427 0.4 # thermostat for the true physical system -fix thermostatequ all nve # integrator as needed for the berendsen thermostat -fix_modify thermoberendsen temp CSequ -thermo_modify temp CSequ # output of center-of-mass derived temperature :pre - -The pressure for the core/shell system is computed via the regular -LAMMPS convention by "treating the cores and shells as individual -particles"_#MitchellFincham2. For the thermo output of the pressure -as well as for the application of a barostat, it is necessary to -use an additional "pressure"_compute_pressure compute based on the -default "temperature"_compute_temp and specifying it as a second -argument in "fix modify"_fix_modify.html and -"thermo_modify"_thermo_modify.html resulting in: - -(...) -compute CSequ all temp/cs cores shells -compute thermo_press_lmp all pressure thermo_temp # pressure for individual particles -thermo_modify temp CSequ press thermo_press_lmp # modify thermo to regular pressure -fix press_bar all npt temp 300 300 0.04 iso 0 0 0.4 -fix_modify press_bar temp CSequ press thermo_press_lmp # pressure modification for correct kinetic scalar :pre - -If "compute temp/cs"_compute_temp_cs.html is used, the decoupled -relative motion of the core and the shell should in theory be -stable. However numerical fluctuation can introduce a small -momentum to the system, which is noticable over long trajectories. -Therefore it is recommendable to use the "fix -momentum"_fix_momentum.html command in combination with "compute -temp/cs"_compute_temp_cs.html when equilibrating the system to -prevent any drift. - -When initializing the velocities of a system with core/shell pairs, it -is also desirable to not introduce energy into the relative motion of -the core/shell particles, but only assign a center-of-mass velocity to -the pairs. This can be done by using the {bias} keyword of the -"velocity create"_velocity.html command and assigning the "compute -temp/cs"_compute_temp_cs.html command to the {temp} keyword of the -"velocity"_velocity.html command, e.g. - -velocity all create 1427 134 bias yes temp CSequ -velocity all scale 1427 temp CSequ :pre - -To maintain the correct polarizability of the core/shell pairs, the -kinetic energy of the internal motion shall remain nearly constant. -Therefore the choice of spring force and mass ratio need to ensure -much faster relative motion of the 2 atoms within the core/shell pair -than their center-of-mass velocity. This allows the shells to -effectively react instantaneously to the electrostatic environment and -limits energy transfer to or from the core/shell oscillators. -This fast movement also dictates the timestep that can be used. - -The primary literature of the adiabatic core/shell model suggests that -the fast relative motion of the core/shell pairs only allows negligible -energy transfer to the environment. -The mentioned energy transfer will typically lead to a small drift -in total energy over time. This internal energy can be monitored -using the "compute chunk/atom"_compute_chunk_atom.html and "compute -temp/chunk"_compute_temp_chunk.html commands. The internal kinetic -energies of each core/shell pair can then be summed using the sum() -special function of the "variable"_variable.html command. Or they can -be time/averaged and output using the "fix ave/time"_fix_ave_time.html -command. To use these commands, each core/shell pair must be defined -as a "chunk". If each core/shell pair is defined as its own molecule, -the molecule ID can be used to define the chunks. If cores are bonded -to each other to form larger molecules, the chunks can be identified -by the "fix property/atom"_fix_property_atom.html via assigning a -core/shell ID to each atom using a special field in the data file read -by the "read_data"_read_data.html command. This field can then be -accessed by the "compute property/atom"_compute_property_atom.html -command, to use as input to the "compute -chunk/atom"_compute_chunk_atom.html command to define the core/shell -pairs as chunks. - -For example if core/shell pairs are the only molecules: - -read_data NaCl_CS_x0.1_prop.data -compute prop all property/atom molecule -compute cs_chunk all chunk/atom c_prop -compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0 # note the chosen degrees of freedom for the core/shell pairs -fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector :pre - -For example if core/shell pairs and other molecules are present: - -fix csinfo all property/atom i_CSID # property/atom command -read_data NaCl_CS_x0.1_prop.data fix csinfo NULL CS-Info # atom property added in the data-file -compute prop all property/atom i_CSID -(...) :pre - -The additional section in the date file would be formatted like this: - -CS-Info # header of additional section :pre - -1 1 # column 1 = atom ID, column 2 = core/shell ID -2 1 -3 2 -4 2 -5 3 -6 3 -7 4 -8 4 -(...) :pre - -:line - -6.27 Drude induced dipoles :link(howto_27),h4 - -The thermalized Drude model, similarly to the "core-shell"_#howto_26 -model, represents induced dipoles by a pair of charges (the core atom -and the Drude particle) connected by a harmonic spring. The Drude -model has a number of features aimed at its use in molecular systems -("Lamoureux and Roux"_#howto-Lamoureux): - -Thermostating of the additional degrees of freedom associated with the -induced dipoles at very low temperature, in terms of the reduced -coordinates of the Drude particles with respect to their cores. This -makes the trajectory close to that of relaxed induced dipoles. :ulb,l - -Consistent definition of 1-2 to 1-4 neighbors. A core-Drude particle -pair represents a single (polarizable) atom, so the special screening -factors in a covalent structure should be the same for the core and -the Drude particle. Drude particles have to inherit the 1-2, 1-3, 1-4 -special neighbor relations from their respective cores. :l - -Stabilization of the interactions between induced dipoles. Drude -dipoles on covalently bonded atoms interact too strongly due to the -short distances, so an atom may capture the Drude particle of a -neighbor, or the induced dipoles within the same molecule may align -too much. To avoid this, damping at short range can be done by Thole -functions (for which there are physical grounds). This Thole damping -is applied to the point charges composing the induced dipole (the -charge of the Drude particle and the opposite charge on the core, not -to the total charge of the core atom). :l -:ule - -A detailed tutorial covering the usage of Drude induced dipoles in -LAMMPS is "available here"_tutorial_drude.html. - -As with the core-shell model, the cores and Drude particles should -appear in the data file as standard atoms. The same holds for the -springs between them, which are described by standard harmonic bonds. -The nature of the atoms (core, Drude particle or non-polarizable) is -specified via the "fix drude"_fix_drude.html command. The special -list of neighbors is automatically refactored to account for the -equivalence of core and Drude particles as regards special 1-2 to 1-4 -screening. It may be necessary to use the {extra/special/per/atom} -keyword of the "read_data"_read_data.html command. If using "fix -shake"_fix_shake.html, make sure no Drude particle is in this fix -group. - -There are two ways to thermostat the Drude particles at a low -temperature: use either "fix langevin/drude"_fix_langevin_drude.html -for a Langevin thermostat, or "fix -drude/transform/*"_fix_drude_transform.html for a Nose-Hoover -thermostat. The former requires use of the command "comm_modify vel -yes"_comm_modify.html. The latter requires two separate integration -fixes like {nvt} or {npt}. The correct temperatures of the reduced -degrees of freedom can be calculated using the "compute -temp/drude"_compute_temp_drude.html. This requires also to use the -command {comm_modify vel yes}. - -Short-range damping of the induced dipole interactions can be achieved -using Thole functions through the "pair style -thole"_pair_thole.html in "pair_style hybrid/overlay"_pair_hybrid.html -with a Coulomb pair style. It may be useful to use {coul/long/cs} or -similar from the CORESHELL package if the core and Drude particle come -too close, which can cause numerical issues. - -:line - -6.28 Magnetic spins :link(howto_28),h4 - -Classical magnetic spin simualtions can be performed via the SPIN -package. The algrorithmic and implementation details are described in -"Tranchida"_#Tranchida7. - -The model representents the simulation of atomic magnetic spins -coupled to lattice vibrations. The dynamics of those magnetic spins -can be used to simulate a broad range a phenomena related to -magneto-elasticity, or or to study the influence of defects on the -magnetic properties of materials. - -The magnetic spins are interacting with each others and with the -lattice via pair interactions. Typically, the magnetic exchange -interaction can be defined using the -"pair/spin/exchange"_pair_spin_exchange.html command. This exchange -applies a magnetic torque to a given spin, considering the orientation -of its neighboring spins and their relative distances. -It also applies a force on the atoms as a function of the spin -orientations and their associated inter-atomic distances. - -The command "fix precession/spin"_fix_precession_spin.html allows to -apply a constant magnetic torque on all the spins in the system. This -torque can be an external magnetic field (Zeeman interaction), or an -uniaxial magnetic anisotropy. - -A Langevin thermostat can be applied to those magnetic spins using -"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat -can be coupled to another Langevin thermostat applied to the atoms -using "fix langevin"_fix_langevin.html in order to simulate -thermostated spin-lattice system. - -The magnetic Gilbert damping can also be applied using "fix -langevin/spin"_fix_langevin_spin.html. It allows to either dissipate -the thermal energy of the Langevin thermostat, or to perform a -relaxation of the magnetic configuration toward an equilibrium state. - -All the computed magnetic properties can be outputed by two main -commands. The first one is "compute spin"_compute_spin.html, that -enables to evaluate magnetic averaged quantities, such as the total -magnetization of the system along x, y, or z, the spin temperature, or -the magnetic energy. The second command is "compute -property/atom"_compute_property_atom.html. It enables to output all the -per atom magnetic quantities. Typically, the orientation of a given -magnetic spin, or the magnetic force acting on this spin. - -:line -:line - -:link(howto-Berendsen) -[(Berendsen)] Berendsen, Grigera, Straatsma, J Phys Chem, 91, -6269-6271 (1987). - -:link(howto-Cornell) -[(Cornell)] Cornell, Cieplak, Bayly, Gould, Merz, Ferguson, -Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995). - -:link(Horn) -[(Horn)] Horn, Swope, Pitera, Madura, Dick, Hura, and Head-Gordon, -J Chem Phys, 120, 9665 (2004). - -:link(howto-Ikeshoji) -[(Ikeshoji)] Ikeshoji and Hafskjold, Molecular Physics, 81, 251-261 -(1994). - -:link(howto-Wirnsberger) -[(Wirnsberger)] Wirnsberger, Frenkel, and Dellago, J Chem Phys, 143, 124104 -(2015). - -:link(howto-MacKerell) -[(MacKerell)] MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field, -Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998). - -:link(howto-Mayo) -[(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909 -(1990). - -:link(Jorgensen1) -[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem -Phys, 79, 926 (1983). - -:link(Price1) -[(Price)] Price and Brooks, J Chem Phys, 121, 10096 (2004). - -:link(Shinoda1) -[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004). - -:link(MitchellFincham) -[(Mitchell and Fincham)] Mitchell, Fincham, J Phys Condensed Matter, -5, 1031-1038 (1993). - -:link(MitchellFincham2) -[(Fincham)] Fincham, Mackrodt and Mitchell, J Phys Condensed Matter, -6, 393-404 (1994). - -:link(howto-Lamoureux) -[(Lamoureux and Roux)] G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003) - -:link(Tranchida7) -[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). diff --git a/doc/src/Section_intro.txt b/doc/src/Section_intro.txt deleted file mode 100644 index 36a1181ca7..0000000000 --- a/doc/src/Section_intro.txt +++ /dev/null @@ -1,550 +0,0 @@ -"Previous Section"_Manual.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_start.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -1. Introduction :h2 - -This section provides an overview of what LAMMPS can and can't do, -describes what it means for LAMMPS to be an open-source code, and -acknowledges the funding and people who have contributed to LAMMPS -over the years. - -1.1 "What is LAMMPS"_#intro_1 -1.2 "LAMMPS features"_#intro_2 -1.3 "LAMMPS non-features"_#intro_3 -1.4 "Open source distribution"_#intro_4 -1.5 "Acknowledgments and citations"_#intro_5 :all(b) - -:line -:line - -1.1 What is LAMMPS :link(intro_1),h4 - -LAMMPS is a classical molecular dynamics code that models an ensemble -of particles in a liquid, solid, or gaseous state. It can model -atomic, polymeric, biological, metallic, granular, and coarse-grained -systems using a variety of force fields and boundary conditions. - -For examples of LAMMPS simulations, see the Publications page of the -"LAMMPS WWW Site"_lws. - -LAMMPS runs efficiently on single-processor desktop or laptop -machines, but is designed for parallel computers. It will run on any -parallel machine that compiles C++ and supports the "MPI"_mpi -message-passing library. This includes distributed- or shared-memory -parallel machines and Beowulf-style clusters. - -:link(mpi,http://www-unix.mcs.anl.gov/mpi) - -LAMMPS can model systems with only a few particles up to millions or -billions. See "Section 8"_Section_perf.html for information on -LAMMPS performance and scalability, or the Benchmarks section of the -"LAMMPS WWW Site"_lws. - -LAMMPS is a freely-available open-source code, distributed under the -terms of the "GNU Public License"_gnu, which means you can use or -modify the code however you wish. See "this section"_#intro_4 for a -brief discussion of the open-source philosophy. - -:link(gnu,http://www.gnu.org/copyleft/gpl.html) - -LAMMPS is designed to be easy to modify or extend with new -capabilities, such as new force fields, atom types, boundary -conditions, or diagnostics. See the "Modify"_Modify.html doc page for -more details. - -The current version of LAMMPS is written in C++. Earlier versions -were written in F77 and F90. See -"Section 13"_Section_history.html for more information on -different versions. All versions can be downloaded from the "LAMMPS -WWW Site"_lws. - -LAMMPS was originally developed under a US Department of Energy CRADA -(Cooperative Research and Development Agreement) between two DOE labs -and 3 companies. It is distributed by "Sandia National Labs"_snl. -See "this section"_#intro_5 for more information on LAMMPS funding and -individuals who have contributed to LAMMPS. - -:link(snl,http://www.sandia.gov) - -In the most general sense, LAMMPS integrates Newton's equations of -motion for collections of atoms, molecules, or macroscopic particles -that interact via short- or long-range forces with a variety of -initial and/or boundary conditions. For computational efficiency -LAMMPS uses neighbor lists to keep track of nearby particles. The -lists are optimized for systems with particles that are repulsive at -short distances, so that the local density of particles never becomes -too large. On parallel machines, LAMMPS uses spatial-decomposition -techniques to partition the simulation domain into small 3d -sub-domains, one of which is assigned to each processor. Processors -communicate and store "ghost" atom information for atoms that border -their sub-domain. LAMMPS is most efficient (in a parallel sense) for -systems whose particles fill a 3d rectangular box with roughly uniform -density. Papers with technical details of the algorithms used in -LAMMPS are listed in "this section"_#intro_5. - -:line - -1.2 LAMMPS features :link(intro_2),h4 - -This section highlights LAMMPS features, with pointers to specific -commands which give more details. If LAMMPS doesn't have your -favorite interatomic potential, boundary condition, or atom type, see -the "Modify"_Modify.html doc page, which describes how you can add it -to LAMMPS. - -General features :h4 - - runs on a single processor or in parallel - distributed-memory message-passing parallelism (MPI) - spatial-decomposition of simulation domain for parallelism - open-source distribution - highly portable C++ - optional libraries used: MPI and single-processor FFT - GPU (CUDA and OpenCL), Intel(R) Xeon Phi(TM) coprocessors, and OpenMP support for many code features - easy to extend with new features and functionality - runs from an input script - syntax for defining and using variables and formulas - syntax for looping over runs and breaking out of loops - run one or multiple simulations simultaneously (in parallel) from one script - build as library, invoke LAMMPS thru library interface or provided Python wrapper - couple with other codes: LAMMPS calls other code, other code calls LAMMPS, umbrella code calls both :ul - -Particle and model types :h4 -("atom style"_atom_style.html command) - - atoms - coarse-grained particles (e.g. bead-spring polymers) - united-atom polymers or organic molecules - all-atom polymers, organic molecules, proteins, DNA - metals - granular materials - coarse-grained mesoscale models - finite-size spherical and ellipsoidal particles - finite-size line segment (2d) and triangle (3d) particles - point dipole particles - rigid collections of particles - hybrid combinations of these :ul - -Force fields :h4 -("pair style"_pair_style.html, "bond style"_bond_style.html, -"angle style"_angle_style.html, "dihedral style"_dihedral_style.html, -"improper style"_improper_style.html, "kspace style"_kspace_style.html -commands) - - pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, \ - Yukawa, soft, class 2 (COMPASS), hydrogen bond, tabulated - charged pairwise potentials: Coulombic, point-dipole - manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), \ - embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, \ - REBO, AIREBO, ReaxFF, COMB, SNAP, Streitz-Mintmire, 3-body polymorphic - long-range interactions for charge, point-dipoles, and LJ dispersion: \ - Ewald, Wolf, PPPM (similar to particle-mesh Ewald) - polarization models: "QEq"_fix_qeq.html, \ - "core/shell model"_Section_howto.html#howto_26, \ - "Drude dipole model"_Section_howto.html#howto_27 - charge equilibration (QEq via dynamic, point, shielded, Slater methods) - coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO - mesoscopic potentials: granular, Peridynamics, SPH - electron force field (eFF, AWPMD) - bond potentials: harmonic, FENE, Morse, nonlinear, class 2, \ - quartic (breakable) - angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, \ - class 2 (COMPASS) - dihedral potentials: harmonic, CHARMM, multi-harmonic, helix, \ - class 2 (COMPASS), OPLS - improper potentials: harmonic, cvff, umbrella, class 2 (COMPASS) - polymer potentials: all-atom, united-atom, bead-spring, breakable - water potentials: TIP3P, TIP4P, SPC - implicit solvent potentials: hydrodynamic lubrication, Debye - force-field compatibility with common CHARMM, AMBER, DREIDING, \ - OPLS, GROMACS, COMPASS options - access to "KIM archive"_http://openkim.org of potentials via \ - "pair kim"_pair_kim.html - hybrid potentials: multiple pair, bond, angle, dihedral, improper \ - potentials can be used in one simulation - overlaid potentials: superposition of multiple pair potentials :ul - -Atom creation :h4 -("read_data"_read_data.html, "lattice"_lattice.html, -"create_atoms"_create_atoms.html, "delete_atoms"_delete_atoms.html, -"displace_atoms"_displace_atoms.html, "replicate"_replicate.html commands) - - read in atom coords from files - create atoms on one or more lattices (e.g. grain boundaries) - delete geometric or logical groups of atoms (e.g. voids) - replicate existing atoms multiple times - displace atoms :ul - -Ensembles, constraints, and boundary conditions :h4 -("fix"_fix.html command) - - 2d or 3d systems - orthogonal or non-orthogonal (triclinic symmetry) simulation domains - constant NVE, NVT, NPT, NPH, Parinello/Rahman integrators - thermostatting options for groups and geometric regions of atoms - pressure control via Nose/Hoover or Berendsen barostatting in 1 to 3 dimensions - simulation box deformation (tensile and shear) - harmonic (umbrella) constraint forces - rigid body constraints - SHAKE bond and angle constraints - Monte Carlo bond breaking, formation, swapping - atom/molecule insertion and deletion - walls of various kinds - non-equilibrium molecular dynamics (NEMD) - variety of additional boundary conditions and constraints :ul - -Integrators :h4 -("run"_run.html, "run_style"_run_style.html, "minimize"_minimize.html commands) - - velocity-Verlet integrator - Brownian dynamics - rigid body integration - energy minimization via conjugate gradient or steepest descent relaxation - rRESPA hierarchical timestepping - rerun command for post-processing of dump files :ul - -Diagnostics :h4 - - see the various flavors of the "fix"_fix.html and "compute"_compute.html commands :ul - -Output :h4 -("dump"_dump.html, "restart"_restart.html commands) - - log file of thermodynamic info - text dump files of atom coords, velocities, other per-atom quantities - binary restart files - parallel I/O of dump and restart files - per-atom quantities (energy, stress, centro-symmetry parameter, CNA, etc) - user-defined system-wide (log file) or per-atom (dump file) calculations - spatial and time averaging of per-atom quantities - time averaging of system-wide quantities - atom snapshots in native, XYZ, XTC, DCD, CFG formats :ul - -Multi-replica models :h4 - -"nudged elastic band"_neb.html -"parallel replica dynamics"_prd.html -"temperature accelerated dynamics"_tad.html -"parallel tempering"_temper.html - -Pre- and post-processing :h4 - -Various pre- and post-processing serial tools are packaged with -LAMMPS; see the "Tools"_Tools.html doc page for details. :ulb,l - -Our group has also written and released a separate toolkit called -"Pizza.py"_pizza which provides tools for doing setup, analysis, -plotting, and visualization for LAMMPS simulations. Pizza.py is -written in "Python"_python and is available for download from "the -Pizza.py WWW site"_pizza. :l -:ule - -:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) -:link(python,http://www.python.org) - -Specialized features :h4 - -LAMMPS can be built with optional packages which implement a variety -of additional capabilities. An overview of all the packages is "given -here"_Packages.html. - -These are some LAMMPS capabilities which you may not think of as -typical classical molecular dynamics options: - -"static"_balance.html and "dynamic load-balancing"_fix_balance.html -"generalized aspherical particles"_body.html -"stochastic rotation dynamics (SRD)"_fix_srd.html -"real-time visualization and interactive MD"_fix_imd.html -calculate "virtual diffraction patterns"_compute_xrd.html -"atom-to-continuum coupling"_fix_atc.html with finite elements -coupled rigid body integration via the "POEMS"_fix_poems.html library -"QM/MM coupling"_fix_qmmm.html -"path-integral molecular dynamics (PIMD)"_fix_ipi.html and "this as well"_fix_pimd.html -Monte Carlo via "GCMC"_fix_gcmc.html and "tfMC"_fix_tfmc.html "atom swapping"_fix_atom_swap.html and "bond swapping"_fix_bond_swap.html -"Direct Simulation Monte Carlo"_pair_dsmc.html for low-density fluids -"Peridynamics mesoscale modeling"_pair_peri.html -"Lattice Boltzmann fluid"_fix_lb_fluid.html -"targeted"_fix_tmd.html and "steered"_fix_smd.html molecular dynamics -"two-temperature electron model"_fix_ttm.html :ul - -:line - -1.3 LAMMPS non-features :link(intro_3),h4 - -LAMMPS is designed to efficiently compute Newton's equations of motion -for a system of interacting particles. Many of the tools needed to -pre- and post-process the data for such simulations are not included -in the LAMMPS kernel for several reasons: - -the desire to keep LAMMPS simple -they are not parallel operations -other codes already do them -limited development resources :ul - -Specifically, LAMMPS itself does not: - -run thru a GUI -build molecular systems -assign force-field coefficients automagically -perform sophisticated analyses of your MD simulation -visualize your MD simulation -plot your output data :ul - -A few tools for pre- and post-processing tasks are provided as part of -the LAMMPS package; they are described on the "Tools"_Tools.html doc -page. However, many people use other codes or write their own tools -for these tasks. - -As noted above, our group has also written and released a separate -toolkit called "Pizza.py"_pizza which addresses some of the listed -bullets. It provides tools for doing setup, analysis, plotting, and -visualization for LAMMPS simulations. Pizza.py is written in -"Python"_python and is available for download from "the Pizza.py WWW -site"_pizza. - -LAMMPS requires as input a list of initial atom coordinates and types, -molecular topology information, and force-field coefficients assigned -to all atoms and bonds. LAMMPS will not build molecular systems and -assign force-field parameters for you. - -For atomic systems LAMMPS provides a "create_atoms"_create_atoms.html -command which places atoms on solid-state lattices (fcc, bcc, -user-defined, etc). Assigning small numbers of force field -coefficients can be done via the "pair coeff"_pair_coeff.html, "bond -coeff"_bond_coeff.html, "angle coeff"_angle_coeff.html, etc commands. -For molecular systems or more complicated simulation geometries, users -typically use another code as a builder and convert its output to -LAMMPS input format, or write their own code to generate atom -coordinate and molecular topology for LAMMPS to read in. - -For complicated molecular systems (e.g. a protein), a multitude of -topology information and hundreds of force-field coefficients must -typically be specified. We suggest you use a program like -"CHARMM"_charmm or "AMBER"_amber or other molecular builders to setup -such problems and dump its information to a file. You can then -reformat the file as LAMMPS input. Some of the tools described on the -"Tools"_Tools.html doc page can assist in this process. - -Similarly, LAMMPS creates output files in a simple format. Most users -post-process these files with their own analysis tools or re-format -them for input into other programs, including visualization packages. -If you are convinced you need to compute something on-the-fly as -LAMMPS runs, see the "Modify"_Modify.html doc page for a discussion of -how you can use the "dump"_dump.html and "compute"_compute.html and -"fix"_fix.html commands to print out data of your choosing. Keep in -mind that complicated computations can slow down the molecular -dynamics timestepping, particularly if the computations are not -parallel, so it is often better to leave such analysis to -post-processing codes. - -For high-quality visualization we recommend the -following packages: - -"VMD"_http://www.ks.uiuc.edu/Research/vmd -"AtomEye"_http://mt.seas.upenn.edu/Archive/Graphics/A -"OVITO"_http://www.ovito.org/ -"ParaView"_http://www.paraview.org/ -"PyMol"_http://www.pymol.org -"Raster3d"_http://www.bmsc.washington.edu/raster3d/raster3d.html -"RasMol"_http://www.openrasmol.org :ul - -Other features that LAMMPS does not yet (and may never) support are -discussed in "Section 13"_Section_history.html. - -Finally, these are freely-available molecular dynamics codes, most of -them parallel, which may be well-suited to the problems you want to -model. They can also be used in conjunction with LAMMPS to perform -complementary modeling tasks. - -"CHARMM"_charmm -"AMBER"_amber -"NAMD"_namd -"NWCHEM"_nwchem -"DL_POLY"_dlpoly -"Tinker"_tinker :ul - -:link(charmm,http://www.charmm.org) -:link(amber,http://ambermd.org) -:link(namd,http://www.ks.uiuc.edu/Research/namd/) -:link(nwchem,http://www.emsl.pnl.gov/docs/nwchem/nwchem.html) -:link(dlpoly,http://www.ccp5.ac.uk/DL_POLY_CLASSIC) -:link(tinker,http://dasher.wustl.edu/tinker) - -CHARMM, AMBER, NAMD, NWCHEM, and Tinker are designed primarily for -modeling biological molecules. CHARMM and AMBER use -atom-decomposition (replicated-data) strategies for parallelism; NAMD -and NWCHEM use spatial-decomposition approaches, similar to LAMMPS. -Tinker is a serial code. DL_POLY includes potentials for a variety of -biological and non-biological materials; both a replicated-data and -spatial-decomposition version exist. - -:line - -1.4 Open source distribution :link(intro_4),h4 - -LAMMPS comes with no warranty of any kind. As each source file states -in its header, it is a copyrighted code that is distributed free-of- -charge, under the terms of the "GNU Public License"_gnu (GPL). This -is often referred to as open-source distribution - see -"www.gnu.org"_gnuorg or "www.opensource.org"_opensource for more -details. The legal text of the GPL is in the LICENSE file that is -included in the LAMMPS distribution. - -:link(gnuorg,http://www.gnu.org) -:link(opensource,http://www.opensource.org) - -Here is a summary of what the GPL means for LAMMPS users: - -(1) Anyone is free to use, modify, or extend LAMMPS in any way they -choose, including for commercial purposes. - -(2) If you distribute a modified version of LAMMPS, it must remain -open-source, meaning you distribute it under the terms of the GPL. -You should clearly annotate such a code as a derivative version of -LAMMPS. - -(3) If you release any code that includes LAMMPS source code, then it -must also be open-sourced, meaning you distribute it under the terms -of the GPL. - -(4) If you give LAMMPS files to someone else, the GPL LICENSE file and -source file headers (including the copyright and GPL notices) should -remain part of the code. - -In the spirit of an open-source code, these are various ways you can -contribute to making LAMMPS better. You can send email to the -"developers"_http://lammps.sandia.gov/authors.html on any of these -items. - -Point prospective users to the "LAMMPS WWW Site"_lws. Mention it in -talks or link to it from your WWW site. :ulb,l - -If you find an error or omission in this manual or on the "LAMMPS WWW -Site"_lws, or have a suggestion for something to clarify or include, -send an email to the -"developers"_http://lammps.sandia.gov/authors.html. :l - -If you find a bug, the "Errors bugs"_Errors_bugs.html doc page -describes how to report it. :l - -If you publish a paper using LAMMPS results, send the citation (and -any cool pictures or movies if you like) to add to the Publications, -Pictures, and Movies pages of the "LAMMPS WWW Site"_lws, with links -and attributions back to you. :l - -Create a new Makefile.machine that can be added to the src/MAKE -directory. :l - -The tools sub-directory of the LAMMPS distribution has various -stand-alone codes for pre- and post-processing of LAMMPS data. More -details are given on the "Tools"_Tools.html doc page. If you write a -new tool that users will find useful, it can be added to the LAMMPS -distribution. :l - -LAMMPS is designed to be easy to extend with new code for features -like potentials, boundary conditions, diagnostic computations, etc. -The "Modify"_Modify.html doc page gives details. If you add a feature -of general interest, it can be added to the LAMMPS distribution. :l - -The Benchmark page of the "LAMMPS WWW Site"_lws lists LAMMPS -performance on various platforms. The files needed to run the -benchmarks are part of the LAMMPS distribution. If your machine is -sufficiently different from those listed, your timing data can be -added to the page. :l - -You can send feedback for the User Comments page of the "LAMMPS WWW -Site"_lws. It might be added to the page. No promises. :l - -Cash. Small denominations, unmarked bills preferred. Paper sack OK. -Leave on desk. VISA also accepted. Chocolate chip cookies -encouraged. :l -:ule - -:line - -1.5 Acknowledgments and citations :h3,link(intro_5) - -LAMMPS development has been funded by the "US Department of -Energy"_doe (DOE), through its CRADA, LDRD, ASCI, and Genomes-to-Life -programs and its "OASCR"_oascr and "OBER"_ober offices. - -Specifically, work on the latest version was funded in part by the US -Department of Energy's Genomics:GTL program -("www.doegenomestolife.org"_gtl) under the "project"_ourgtl, "Carbon -Sequestration in Synechococcus Sp.: From Molecular Machines to -Hierarchical Modeling". - -:link(doe,http://www.doe.gov) -:link(gtl,http://www.doegenomestolife.org) -:link(ourgtl,http://www.genomes2life.org) -:link(oascr,http://www.sc.doe.gov/ascr/home.html) -:link(ober,http://www.er.doe.gov/production/ober/ober_top.html) - -The following paper describe the basic parallel algorithms used in -LAMMPS. If you use LAMMPS results in your published work, please cite -this paper and include a pointer to the "LAMMPS WWW Site"_lws -(http://lammps.sandia.gov): - -S. Plimpton, [Fast Parallel Algorithms for Short-Range Molecular -Dynamics], J Comp Phys, 117, 1-19 (1995). - -Other papers describing specific algorithms used in LAMMPS are listed -under the "Citing LAMMPS link"_http://lammps.sandia.gov/cite.html of -the LAMMPS WWW page. - -The "Publications link"_http://lammps.sandia.gov/papers.html on the -LAMMPS WWW page lists papers that have cited LAMMPS. If your paper is -not listed there for some reason, feel free to send us the info. If -the simulations in your paper produced cool pictures or animations, -we'll be pleased to add them to the -"Pictures"_http://lammps.sandia.gov/pictures.html or -"Movies"_http://lammps.sandia.gov/movies.html pages of the LAMMPS WWW -site. - -The primary LAMMPS developers are at Sandia National Labs and Temple University: - -Steve Plimpton, sjplimp at sandia.gov -Aidan Thompson, athomps at sandia.gov -Stan Moore, stamoor at sandia.gov -Axel Kohlmeyer, akohlmey at gmail.com :ul - -Past primary developers include Paul Crozier and Mark Stevens, -both at Sandia, and Ray Shan, now at Materials Design. - -The following folks are responsible for significant contributions to -the code, or other aspects of the LAMMPS development effort. Many of -the packages they have written are somewhat unique to LAMMPS and the -code would not be as general-purpose as it is without their expertise -and efforts. - -Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CGSDK, USER-OMP, USER-COLVARS, USER-MOLFILE, USER-QMMM, USER-TALLY, and COMPRESS packages -Roy Pollock (LLNL), Ewald and PPPM solvers -Mike Brown (ORNL), brownw at ornl.gov, GPU and USER-INTEL package -Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential (superseded by USER-MEAMC) -Mike Parks (Sandia), mlparks at sandia.gov, PERI package for Peridynamics -Rudra Mukherjee (JPL), Rudranarayan.M.Mukherjee at jpl.nasa.gov, POEMS package for articulated rigid body motion -Reese Jones (Sandia) and collaborators, rjones at sandia.gov, USER-ATC package for atom/continuum coupling -Ilya Valuev (JIHT), valuev at physik.hu-berlin.de, USER-AWPMD package for wave-packet MD -Christian Trott (U Tech Ilmenau), christian.trott at tu-ilmenau.de, USER-CUDA (obsoleted by KOKKOS) and KOKKOS packages -Andres Jaramillo-Botero (Caltech), ajaramil at wag.caltech.edu, USER-EFF package for electron force field -Christoph Kloss (JKU), Christoph.Kloss at jku.at, LIGGGHTS fork for granular models and granular/fluid coupling -Metin Aktulga (LBL), hmaktulga at lbl.gov, USER-REAXC package for C version of ReaxFF -Georg Gunzenmuller (EMI), georg.ganzenmueller at emi.fhg.de, USER-SMD and USER-SPH packages -Colin Denniston (U Western Ontario), cdennist at uwo.ca, USER-LB package :ul - -As discussed in "Section 13"_Section_history.html, LAMMPS -originated as a cooperative project between DOE labs and industrial -partners. Folks involved in the design and testing of the original -version of LAMMPS were the following: - -John Carpenter (Mayo Clinic, formerly at Cray Research) -Terry Stouch (Lexicon Pharmaceuticals, formerly at Bristol Myers Squibb) -Steve Lustig (Dupont) -Jim Belak (LLNL) :ul diff --git a/doc/src/Section_start.txt b/doc/src/Section_start.txt index cd445b3e14..4176432328 100644 --- a/doc/src/Section_start.txt +++ b/doc/src/Section_start.txt @@ -1,4 +1,4 @@ -"Previous Section"_Section_intro.html - "LAMMPS WWW Site"_lws - +"Previous Section"_Intro.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_commands.html :c @@ -934,9 +934,9 @@ Makefile.opt :ul LAMMPS can be built as either a static or shared library, which can then be called from another application or a scripting language. See -"this section"_Section_howto.html#howto_10 for more info on coupling -LAMMPS to other codes. See the "Python"_Python.html doc page for more -info on wrapping and running LAMMPS from Python. +the "Howto couple"_Howto_couple.html doc page for more info on +coupling LAMMPS to other codes. See the "Python"_Python.html doc page +for more info on wrapping and running LAMMPS from Python. Static library :h4 @@ -1039,16 +1039,16 @@ src/library.cpp and src/library.h. See the sample codes in examples/COUPLE/simple for examples of C++ and C and Fortran codes that invoke LAMMPS thru its library interface. -There are other examples as well in the COUPLE directory which are -discussed in "Section 6.10"_Section_howto.html#howto_10 of the manual. -See the "Python"_Python.html doc page for a description of the Python -wrapper provided with LAMMPS that operates through the LAMMPS library -interface. +There are other examples as well in the COUPLE directory which use +coupling ideas discussed on the "Howto couple"_Howto_couple.html doc +page. See the "Python"_Python.html doc page for a description of the +Python wrapper provided with LAMMPS that operates through the LAMMPS +library interface. The files src/library.cpp and library.h define the C-style API for -using LAMMPS as a library. See "Section -6.19"_Section_howto.html#howto_19 of the manual for a description of the -interface and how to extend it for your needs. +using LAMMPS as a library. See the "Howto library"_Howto_library.html +doc page for a description of the interface and how to extend it for +your needs. :line @@ -1391,16 +1391,16 @@ processors in all partitions must equal P. Thus the command "-partition 8x2 4 5" has 10 partitions and runs on a total of 25 processors. -Running with multiple partitions can e useful for running -"multi-replica simulations"_Section_howto.html#howto_5, where each -replica runs on on one or a few processors. Note that with MPI -installed on a machine (e.g. your desktop), you can run on more -(virtual) processors than you have physical processors. +Running with multiple partitions can be useful for running +"multi-replica simulations"_Howto_replica.html, where each replica +runs on on one or a few processors. Note that with MPI installed on a +machine (e.g. your desktop), you can run on more (virtual) processors +than you have physical processors. To run multiple independent simulations from one input script, using -multiple partitions, see "Section 6.4"_Section_howto.html#howto_4 -of the manual. World- and universe-style "variables"_variable.html -are useful in this context. +multiple partitions, see the "Howto multiple"_Howto_multiple.html doc +page. World- and universe-style "variables"_variable.html are useful +in this context. -plog file :pre @@ -1787,11 +1787,13 @@ communication, roughly 75% in the example above. The current C++ began with a complete rewrite of LAMMPS 2001, which was written in F90. Features of earlier versions of LAMMPS are listed -in "Section 13"_Section_history.html. The F90 and F77 versions -(2001 and 99) are also freely distributed as open-source codes; check -the "LAMMPS WWW Site"_lws for distribution information if you prefer -those versions. The 99 and 2001 versions are no longer under active -development; they do not have all the features of C++ LAMMPS. +on the "History page"_http://lammps.sandia.gov/history.html of the +LAMMPS website. The F90 and F77 versions (2001 and 99) are also +freely distributed as open-source codes; check the "History +page"_http://lammps.sandia.gov/history.html of the LAMMPS website for +info about those versions. The 99 and 2001 versions are no longer +under active development; they do not have all the features of C++ +LAMMPS. If you are a previous user of LAMMPS 2001, these are the most significant changes you will notice in C++ LAMMPS: diff --git a/doc/src/Speed.txt b/doc/src/Speed.txt index 1e2097ab1d..6c53d6bcf0 100644 --- a/doc/src/Speed.txt +++ b/doc/src/Speed.txt @@ -1,6 +1,6 @@ "Previous Section"_Package.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_howto.html :c +Section"_Howto.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index 4c5fbbd453..10e7f74a3d 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -1,4 +1,4 @@ -"Previous Section"_Section_perf.html - "LAMMPS WWW Site"_lws - "LAMMPS +"Previous Section"_Examples.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Modify.html :c @@ -142,8 +142,8 @@ The syntax for running the tool is chain < def.chain > data.file :pre See the def.chain or def.chain.ab files in the tools directory for -examples of definition files. This tool was used to create the -system for the "chain benchmark"_Section_perf.html. +examples of definition files. This tool was used to create the system +for the "chain benchmark"_Speed_bench.html. :line diff --git a/doc/src/angle_cosine_periodic.txt b/doc/src/angle_cosine_periodic.txt index 4bedae3246..108b081533 100644 --- a/doc/src/angle_cosine_periodic.txt +++ b/doc/src/angle_cosine_periodic.txt @@ -21,10 +21,10 @@ angle_coeff * 75.0 1 6 :pre [Description:] The {cosine/periodic} angle style uses the following potential, which -is commonly used in the "DREIDING"_Section_howto.html#howto_4 force -field, particularly for organometallic systems where {n} = 4 might be -used for an octahedral complex and {n} = 3 might be used for a -trigonal center: +is commonly used in the "DREIDING"_Howto_bioFF.html force field, +particularly for organometallic systems where {n} = 4 might be used +for an octahedral complex and {n} = 3 might be used for a trigonal +center: :c,image(Eqs/angle_cosine_periodic.jpg) diff --git a/doc/src/atom_style.txt b/doc/src/atom_style.txt index 0e6aa8a033..063f9e446c 100644 --- a/doc/src/atom_style.txt +++ b/doc/src/atom_style.txt @@ -20,7 +20,7 @@ style = {angle} or {atomic} or {body} or {bond} or {charge} or {dipole} or \ {body} args = bstyle bstyle-args bstyle = style of body particles bstyle-args = additional arguments specific to the bstyle - see the "body"_body.html doc page for details + see the "Howto body"_Howto_body.html doc page for details {tdpd} arg = Nspecies Nspecies = # of chemical species {template} arg = template-ID @@ -106,9 +106,9 @@ output the custom values. All of the above styles define point particles, except the {sphere}, {ellipsoid}, {electron}, {peri}, {wavepacket}, {line}, {tri}, and -{body} styles, which define finite-size particles. See "Section -6.14"_Section_howto.html#howto_14 for an overview of using finite-size -particle models with LAMMPS. +{body} styles, which define finite-size particles. See the "Howto +spherical"_Howto_spherical.html doc page for an overview of using +finite-size particle models with LAMMPS. All of the point-particle styles assign mass to particles on a per-type basis, using the "mass"_mass.html command, The finite-size @@ -224,15 +224,16 @@ the {bstyle} argument. Body particles can represent complex entities, such as surface meshes of discrete points, collections of sub-particles, deformable objects, etc. -The "body"_body.html doc page describes the body styles LAMMPS -currently supports, and provides more details as to the kind of body -particles they represent. For all styles, each body particle stores -moments of inertia and a quaternion 4-vector, so that its orientation -and position can be time integrated due to forces and torques. +The "Howto body"_Howto_body.html doc page describes the body styles +LAMMPS currently supports, and provides more details as to the kind of +body particles they represent. For all styles, each body particle +stores moments of inertia and a quaternion 4-vector, so that its +orientation and position can be time integrated due to forces and +torques. Note that there may be additional arguments required along with the {bstyle} specification, in the atom_style body command. These -arguments are described in the "body"_body.html doc page. +arguments are described on the "Howto body"_Howto_body.html doc page. :line diff --git a/doc/src/body.txt b/doc/src/body.txt index 4a39ac25d8..83b725d8cc 100644 --- a/doc/src/body.txt +++ b/doc/src/body.txt @@ -17,8 +17,8 @@ surface meshes of discrete points, collections of sub-particles, deformable objects, etc. Note that other kinds of finite-size spherical and aspherical particles are also supported by LAMMPS, such as spheres, ellipsoids, line segments, and triangles, but they are -simpler entities that body particles. See "Section -6.14"_Section_howto.html#howto_14 for a general overview of all +simpler entities that body particles. See the "Howto +body"_Howto_.html doc page for a general overview of all these particle types. Body particles are used via the "atom_style body"_atom_style.html diff --git a/doc/src/boundary.txt b/doc/src/boundary.txt index ce638f11b3..7ee897ffa4 100644 --- a/doc/src/boundary.txt +++ b/doc/src/boundary.txt @@ -82,9 +82,9 @@ and xhi faces of the box are planes tilting in the +y direction as y increases. These tilted planes are shrink-wrapped around the atoms to determine the x extent of the box. -See "Section 6.12"_Section_howto.html#howto_12 of the doc pages -for a geometric description of triclinic boxes, as defined by LAMMPS, -and how to transform these parameters to and from other commonly used +See the "Howto triclinic"_Howto_triclinic.html doc page for a +geometric description of triclinic boxes, as defined by LAMMPS, and +how to transform these parameters to and from other commonly used triclinic representations. [Restrictions:] diff --git a/doc/src/box.txt b/doc/src/box.txt index a6207ae993..6dc093ad81 100644 --- a/doc/src/box.txt +++ b/doc/src/box.txt @@ -30,9 +30,9 @@ For triclinic (non-orthogonal) simulation boxes, the {tilt} keyword allows simulation domains to be created with arbitrary tilt factors, e.g. via the "create_box"_create_box.html or "read_data"_read_data.html commands. Tilt factors determine how -skewed the triclinic box is; see "this -section"_Section_howto.html#howto_12 of the manual for a discussion of -triclinic boxes in LAMMPS. +skewed the triclinic box is; see the "Howto +triclinic"_Howto_triclinic.html doc page for a discussion of triclinic +boxes in LAMMPS. LAMMPS normally requires that no tilt factor can skew the box more than half the distance of the parallel box length, which is the 1st diff --git a/doc/src/change_box.txt b/doc/src/change_box.txt index 2c7a890d4c..8f3fda263f 100644 --- a/doc/src/change_box.txt +++ b/doc/src/change_box.txt @@ -75,9 +75,9 @@ The "create_box"_create_box.html, "read data"_read_data.html, and simulation box is orthogonal or triclinic and their doc pages explain the meaning of the xy,xz,yz tilt factors. -See "Section 6.12"_Section_howto.html#howto_12 of the doc pages -for a geometric description of triclinic boxes, as defined by LAMMPS, -and how to transform these parameters to and from other commonly used +See the "Howto triclinic"_Howto_triclinic.html doc page for a +geometric description of triclinic boxes, as defined by LAMMPS, and +how to transform these parameters to and from other commonly used triclinic representations. The keywords used in this command are applied sequentially to the @@ -140,8 +140,8 @@ transformation in the sequence. If skew is exceeded before the final transformation this can be avoided by changing the order of the sequence, or breaking the transformation into two or more smaller transformations. For more information on the allowed limits for box -skew see the discussion on triclinic boxes on "this -page"_Section_howto.html#howto_12. +skew see the discussion on triclinic boxes on "Howto +triclinic"_Howto_triclinic.html doc page. :line @@ -258,9 +258,7 @@ command. :line The {ortho} and {triclinic} keywords convert the simulation box to be -orthogonal or triclinic (non-orthogonal). See "this -section"_Section_howto#howto_13 for a discussion of how non-orthogonal -boxes are represented in LAMMPS. +orthogonal or triclinic (non-orthogonal). The simulation box is defined as either orthogonal or triclinic when it is created via the "create_box"_create_box.html, @@ -271,8 +269,8 @@ These keywords allow you to toggle the existing simulation box from orthogonal to triclinic and vice versa. For example, an initial equilibration simulation can be run in an orthogonal box, the box can be toggled to triclinic, and then a "non-equilibrium MD (NEMD) -simulation"_Section_howto.html#howto_13 can be run with deformation -via the "fix deform"_fix_deform.html command. +simulation"_Howto_nemd.html can be run with deformation via the "fix +deform"_fix_deform.html command. If the simulation box is currently triclinic and has non-zero tilt in xy, yz, or xz, then it cannot be converted to an orthogonal box. diff --git a/doc/src/compute.txt b/doc/src/compute.txt index 532a5414e3..105571b82a 100644 --- a/doc/src/compute.txt +++ b/doc/src/compute.txt @@ -33,7 +33,7 @@ information about a previous state of the system. Defining a compute does not perform a computation. Instead computes are invoked by other LAMMPS commands as needed, e.g. to calculate a temperature needed for a thermostat fix or to generate thermodynamic or dump file output. -See this "howto section"_Section_howto.html#howto_15 for a summary of +See the "Howto output"_Howto_output.html doc page for a summary of various LAMMPS output options, many of which involve computes. The ID of a compute can only contain alphanumeric characters and diff --git a/doc/src/compute_ackland_atom.txt b/doc/src/compute_ackland_atom.txt index 3fd838d957..e75ad534eb 100644 --- a/doc/src/compute_ackland_atom.txt +++ b/doc/src/compute_ackland_atom.txt @@ -60,7 +60,7 @@ which computes this quantity.- This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. [Restrictions:] diff --git a/doc/src/compute_angle.txt b/doc/src/compute_angle.txt index 2c363ce8f6..1deb3a4b1b 100644 --- a/doc/src/compute_angle.txt +++ b/doc/src/compute_angle.txt @@ -37,8 +37,8 @@ This compute calculates a global vector of length N where N is the number of sub_styles defined by the "angle_style hybrid"_angle_style.html command, which can be accessed by indices 1-N. These values can be used by any command that uses global scalar -or vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +or vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector values are "extensive" and will be in energy diff --git a/doc/src/compute_angle_local.txt b/doc/src/compute_angle_local.txt index 0ee1d32d7d..487b41eaf3 100644 --- a/doc/src/compute_angle_local.txt +++ b/doc/src/compute_angle_local.txt @@ -70,8 +70,8 @@ array is the number of angles. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The output for {theta} will be in degrees. The output for {eng} will diff --git a/doc/src/compute_angmom_chunk.txt b/doc/src/compute_angmom_chunk.txt index 813da15eea..c97af96f49 100644 --- a/doc/src/compute_angmom_chunk.txt +++ b/doc/src/compute_angmom_chunk.txt @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the 3 components of the angular momentum vector for each chunk, due to the velocity/momentum of the individual @@ -73,8 +72,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 3 for the 3 xyz components of the angular momentum for each chunk. These values can be accessed by any command that uses global array -values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_basal_atom.txt b/doc/src/compute_basal_atom.txt index b59a3fd4c8..e0ac6b0a60 100644 --- a/doc/src/compute_basal_atom.txt +++ b/doc/src/compute_basal_atom.txt @@ -46,9 +46,8 @@ in examples/USER/misc/basal. This compute calculates a per-atom array with 3 columns, which can be accessed by indices 1-3 by any command that uses per-atom values from -a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. The per-atom vector values are unitless since the 3 columns represent components of a unit vector. diff --git a/doc/src/compute_body_local.txt b/doc/src/compute_body_local.txt index 12ce218853..f387e61c78 100644 --- a/doc/src/compute_body_local.txt +++ b/doc/src/compute_body_local.txt @@ -32,9 +32,8 @@ Define a computation that calculates properties of individual body sub-particles. The number of datums generated, aggregated across all processors, equals the number of body sub-particles plus the number of non-body particles in the system, modified by the group parameter as -explained below. See "Section 6.14"_Section_howto.html#howto_14 -of the manual and the "body"_body.html doc page for more details on -using body particles. +explained below. See the "Howto body"_Howto_body.html doc page for +more details on using body particles. The local data stored by this command is generated by looping over all the atoms. An atom will only be included if it is in the group. If @@ -58,8 +57,8 @@ group. For a body particle, the {integer} keywords refer to fields calculated by the body style for each sub-particle. The body style, as specified by the "atom_style body"_atom_style.html, determines how many fields -exist and what they are. See the "body"_body.html doc page for -details of the different styles. +exist and what they are. See the "Howto_body"_Howto_body.html doc +page for details of the different styles. Here is an example of how to output body information using the "dump local"_dump.html command with this compute. If fields 1,2,3 for the @@ -78,9 +77,9 @@ array is the number of datums as described above. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any -command that uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +command that uses local values from a compute as input. See the +"Howto output"_Howto_output.html doc page for an overview of LAMMPS +output options. The "units"_units.html for output values depend on the body style. diff --git a/doc/src/compute_bond.txt b/doc/src/compute_bond.txt index 6c4384b080..ac0e50872b 100644 --- a/doc/src/compute_bond.txt +++ b/doc/src/compute_bond.txt @@ -37,8 +37,8 @@ This compute calculates a global vector of length N where N is the number of sub_styles defined by the "bond_style hybrid"_bond_style.html command, which can be accessed by indices 1-N. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector values are "extensive" and will be in energy diff --git a/doc/src/compute_bond_local.txt b/doc/src/compute_bond_local.txt index 58d96f9ee4..868b43caa9 100644 --- a/doc/src/compute_bond_local.txt +++ b/doc/src/compute_bond_local.txt @@ -116,8 +116,8 @@ array is the number of bonds. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The output for {dist} will be in distance "units"_units.html. The diff --git a/doc/src/compute_centro_atom.txt b/doc/src/compute_centro_atom.txt index 4e4b03d167..bace0d8739 100644 --- a/doc/src/compute_centro_atom.txt +++ b/doc/src/compute_centro_atom.txt @@ -97,8 +97,8 @@ too frequently or to have multiple compute/dump commands, each with a By default, this compute calculates the centrosymmetry value for each atom as a per-atom vector, which can be accessed by any command that -uses per-atom values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses per-atom values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. If the {axes} keyword setting is {yes}, then a per-atom array is diff --git a/doc/src/compute_chunk_atom.txt b/doc/src/compute_chunk_atom.txt index 00a75f50c4..fc0de28b6a 100644 --- a/doc/src/compute_chunk_atom.txt +++ b/doc/src/compute_chunk_atom.txt @@ -101,14 +101,13 @@ msd/chunk"_compute_msd_chunk.html. Or they can be used by the "fix ave/chunk"_fix_ave_chunk.html command to sum and time average a variety of per-atom properties over the atoms in each chunk. Or they can simply be accessed by any command that uses per-atom values from a -compute as input, as discussed in "Section -6.15"_Section_howto.html#howto_15. +compute as input, as discussed on the "Howto output"_Howto_output.html +doc page. -See "Section 6.23"_Section_howto.html#howto_23 for an overview of -how this compute can be used with a variety of other commands to -tabulate properties of a simulation. The howto section gives several -examples of input script commands that can be used to calculate -interesting properties. +See the "Howto chunk"_Howto_chunk.html doc page for an overview of how +this compute can be used with a variety of other commands to tabulate +properties of a simulation. The page gives several examples of input +script commands that can be used to calculate interesting properties. Conceptually it is important to realize that this compute does two simple things. First, it sets the value of {Nchunk} = the number of @@ -167,11 +166,11 @@ or the bounds specified by the optional {bounds} keyword. For orthogonal simulation boxes, the bins are layers, pencils, or boxes aligned with the xyz coordinate axes. For triclinic (non-orthogonal) simulation boxes, the bin faces are parallel to the -tilted faces of the simulation box. See "this -section"_Section_howto.html#howto_12 of the manual for a discussion of -the geometry of triclinic boxes in LAMMPS. As described there, a -tilted simulation box has edge vectors a,b,c. In that nomenclature, -bins in the x dimension have faces with normals in the "b" cross "c" +tilted faces of the simulation box. See the "Howto +triclinic"_Howto_triclinic.html doc page for a discussion of the +geometry of triclinic boxes in LAMMPS. As described there, a tilted +simulation box has edge vectors a,b,c. In that nomenclature, bins in +the x dimension have faces with normals in the "b" cross "c" direction. Bins in y have faces normal to the "a" cross "c" direction. And bins in z have faces normal to the "a" cross "b" direction. Note that in order to define the size and position of @@ -626,7 +625,7 @@ cylinder, x for a y-axis cylinder, and x for a z-axis cylinder. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values are unitless chunk IDs, ranging from 1 to diff --git a/doc/src/compute_cluster_atom.txt b/doc/src/compute_cluster_atom.txt index 94113de5f2..12ecb8f173 100644 --- a/doc/src/compute_cluster_atom.txt +++ b/doc/src/compute_cluster_atom.txt @@ -84,7 +84,7 @@ the neighbor list. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be an ID > 0, as explained above. diff --git a/doc/src/compute_cna_atom.txt b/doc/src/compute_cna_atom.txt index 23289b0132..9c4814560d 100644 --- a/doc/src/compute_cna_atom.txt +++ b/doc/src/compute_cna_atom.txt @@ -74,7 +74,7 @@ too frequently or to have multiple compute/dump commands, each with a This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be a number from 0 to 5, as explained diff --git a/doc/src/compute_cnp_atom.txt b/doc/src/compute_cnp_atom.txt index 16a51f5241..aca7e351ec 100644 --- a/doc/src/compute_cnp_atom.txt +++ b/doc/src/compute_cnp_atom.txt @@ -78,7 +78,7 @@ too frequently or to have multiple compute/dump commands, each with a This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be real positive numbers. Some typical CNP diff --git a/doc/src/compute_com.txt b/doc/src/compute_com.txt index b0e0c14e42..08bb08b142 100644 --- a/doc/src/compute_com.txt +++ b/doc/src/compute_com.txt @@ -41,9 +41,8 @@ image"_set.html command. This compute calculates a global vector of length 3, which can be accessed by indices 1-3 by any command that uses global vector values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The vector values are "intensive". The vector values will be in distance "units"_units.html. diff --git a/doc/src/compute_com_chunk.txt b/doc/src/compute_com_chunk.txt index d497585cb0..f28355d6c5 100644 --- a/doc/src/compute_com_chunk.txt +++ b/doc/src/compute_com_chunk.txt @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the x,y,z coordinates of the center-of-mass for each chunk, which includes all effects due to atoms passing thru @@ -71,9 +70,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 3 for the x,y,z center-of-mass coordinates of each chunk. These values can be accessed by any command that uses global array values -from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in distance "units"_units.html. diff --git a/doc/src/compute_contact_atom.txt b/doc/src/compute_contact_atom.txt index f0bd62f4e8..ea4158e3b1 100644 --- a/doc/src/compute_contact_atom.txt +++ b/doc/src/compute_contact_atom.txt @@ -36,7 +36,7 @@ specified compute group. This compute calculates a per-atom vector, whose values can be accessed by any command that uses per-atom values from a compute as -input. See "Section 6.15"_Section_howto.html#howto_15 for an +input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be a number >= 0.0, as explained diff --git a/doc/src/compute_coord_atom.txt b/doc/src/compute_coord_atom.txt index a88f7ec729..06b565aedc 100644 --- a/doc/src/compute_coord_atom.txt +++ b/doc/src/compute_coord_atom.txt @@ -109,9 +109,8 @@ array, with N columns. For {cstyle} orientorder, this compute calculates a per-atom vector. These values can be accessed by any command that uses per-atom values -from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The per-atom vector or array values will be a number >= 0.0, as explained above. diff --git a/doc/src/compute_damage_atom.txt b/doc/src/compute_damage_atom.txt index 918fbf65ef..e262ee0b1f 100644 --- a/doc/src/compute_damage_atom.txt +++ b/doc/src/compute_damage_atom.txt @@ -44,7 +44,7 @@ group. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values are unitless numbers (damage) >= 0.0. diff --git a/doc/src/compute_dihedral.txt b/doc/src/compute_dihedral.txt index a3c3dff8d6..67c97b60f1 100644 --- a/doc/src/compute_dihedral.txt +++ b/doc/src/compute_dihedral.txt @@ -37,8 +37,8 @@ This compute calculates a global vector of length N where N is the number of sub_styles defined by the "dihedral_style hybrid"_dihedral_style.html command. which can be accessed by indices 1-N. These values can be used by any command that uses global scalar -or vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +or vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector values are "extensive" and will be in energy diff --git a/doc/src/compute_dihedral_local.txt b/doc/src/compute_dihedral_local.txt index 865e86fddb..d2051a51bd 100644 --- a/doc/src/compute_dihedral_local.txt +++ b/doc/src/compute_dihedral_local.txt @@ -62,8 +62,8 @@ array is the number of dihedrals. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The output for {phi} will be in degrees. diff --git a/doc/src/compute_dilatation_atom.txt b/doc/src/compute_dilatation_atom.txt index ce00f7f12a..161e73c7ff 100644 --- a/doc/src/compute_dilatation_atom.txt +++ b/doc/src/compute_dilatation_atom.txt @@ -47,8 +47,9 @@ compute group. [Output info:] This compute calculates a per-atom vector, which can be accessed by -any command that uses per-atom values from a compute as input. See -Section_howto 15 for an overview of LAMMPS output options. +any command that uses per-atom values from a compute as input. See +the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-atom vector values are unitless numbers (theta) >= 0.0. diff --git a/doc/src/compute_dipole_chunk.txt b/doc/src/compute_dipole_chunk.txt index 75131ffbb1..5f8d6689c4 100644 --- a/doc/src/compute_dipole_chunk.txt +++ b/doc/src/compute_dipole_chunk.txt @@ -32,10 +32,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the x,y,z coordinates of the dipole vector and the total dipole moment for each chunk, which includes all effects @@ -76,8 +75,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 4 for the x,y,z dipole vector components and the total dipole of each chunk. These values can be accessed by any command that uses global -array values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +array values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_displace_atom.txt b/doc/src/compute_displace_atom.txt index 00e5f696c1..5636cc02f0 100644 --- a/doc/src/compute_displace_atom.txt +++ b/doc/src/compute_displace_atom.txt @@ -118,9 +118,8 @@ would be empty. This compute calculates a per-atom array with 4 columns, which can be accessed by indices 1-4 by any command that uses per-atom values from -a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. The per-atom array values will be in distance "units"_units.html. diff --git a/doc/src/compute_dpd.txt b/doc/src/compute_dpd.txt index 0e43feb9d2..a5620d34b3 100644 --- a/doc/src/compute_dpd.txt +++ b/doc/src/compute_dpd.txt @@ -40,9 +40,9 @@ where N is the number of particles in the system [Output info:] This compute calculates a global vector of length 5 (U_cond, U_mech, -U_chem, dpdTheta, N_particles), which can be accessed by indices 1-5. See -"this section"_Section_howto.html#howto_15 for an overview of LAMMPS -output options. +U_chem, dpdTheta, N_particles), which can be accessed by indices 1-5. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The vector values will be in energy and temperature "units"_units.html. diff --git a/doc/src/compute_dpd_atom.txt b/doc/src/compute_dpd_atom.txt index 0532fc60c6..ed0fd2410b 100644 --- a/doc/src/compute_dpd_atom.txt +++ b/doc/src/compute_dpd_atom.txt @@ -34,9 +34,9 @@ particles. [Output info:] This compute calculates a per-particle array with 4 columns (u_cond, -u_mech, u_chem, dpdTheta), which can be accessed by indices 1-4 by any command -that uses per-particle values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +u_mech, u_chem, dpdTheta), which can be accessed by indices 1-4 by any +command that uses per-particle values from a compute as input. See +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-particle array values will be in energy (u_cond, u_mech, u_chem) diff --git a/doc/src/compute_edpd_temp_atom.txt b/doc/src/compute_edpd_temp_atom.txt index 5b8c8ebd67..9011c3c823 100644 --- a/doc/src/compute_edpd_temp_atom.txt +++ b/doc/src/compute_edpd_temp_atom.txt @@ -32,9 +32,9 @@ For more details please see "(Espanol1997)"_#Espanol1997 and [Output info:] This compute calculates a per-atom vector, which can be accessed by -any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of -LAMMPS output options. +any command that uses per-atom values from a compute as input. See the +"Howto output"_Howto_output.html doc page for an overview of LAMMPS +output options. The per-atom vector values will be in temperature "units"_units.html. diff --git a/doc/src/compute_entropy_atom.txt b/doc/src/compute_entropy_atom.txt index f7e7b8a667..7fdc1f4af2 100644 --- a/doc/src/compute_entropy_atom.txt +++ b/doc/src/compute_entropy_atom.txt @@ -98,8 +98,8 @@ compute 1 all entropy/atom 0.25 7.3 avg yes 5.1 :pre By default, this compute calculates the pair entropy value for each atom as a per-atom vector, which can be accessed by any command that -uses per-atom values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses per-atom values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The pair entropy values have units of the Boltzmann constant. They are diff --git a/doc/src/compute_erotate_asphere.txt b/doc/src/compute_erotate_asphere.txt index b9a486c32e..24e6e5e6f7 100644 --- a/doc/src/compute_erotate_asphere.txt +++ b/doc/src/compute_erotate_asphere.txt @@ -40,7 +40,7 @@ will be the same as in 3d. This compute calculates a global scalar (the KE). This value can be used by any command that uses a global scalar value from a compute as -input. See "Section 6.15"_Section_howto.html#howto_15 for an +input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The diff --git a/doc/src/compute_erotate_rigid.txt b/doc/src/compute_erotate_rigid.txt index dec0939a43..c8527d7073 100644 --- a/doc/src/compute_erotate_rigid.txt +++ b/doc/src/compute_erotate_rigid.txt @@ -41,9 +41,9 @@ calculation. This compute calculates a global scalar (the summed rotational energy of all the rigid bodies). This value can be used by any command that -uses a global scalar value from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of -LAMMPS output options. +uses a global scalar value from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output +options. The scalar value calculated by this compute is "extensive". The scalar value will be in energy "units"_units.html. diff --git a/doc/src/compute_erotate_sphere.txt b/doc/src/compute_erotate_sphere.txt index 41e80b0154..8abc9a53ad 100644 --- a/doc/src/compute_erotate_sphere.txt +++ b/doc/src/compute_erotate_sphere.txt @@ -35,7 +35,7 @@ as in 3d. This compute calculates a global scalar (the KE). This value can be used by any command that uses a global scalar value from a compute as -input. See "Section 6.15"_Section_howto.html#howto_15 for an +input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The diff --git a/doc/src/compute_erotate_sphere_atom.txt b/doc/src/compute_erotate_sphere_atom.txt index a0081ff6a8..0bea315a89 100644 --- a/doc/src/compute_erotate_sphere_atom.txt +++ b/doc/src/compute_erotate_sphere_atom.txt @@ -39,7 +39,7 @@ in the specified compute group or for point particles with a radius = This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in energy "units"_units.html. diff --git a/doc/src/compute_event_displace.txt b/doc/src/compute_event_displace.txt index 5e3a0c8599..17c4288911 100644 --- a/doc/src/compute_event_displace.txt +++ b/doc/src/compute_event_displace.txt @@ -43,7 +43,7 @@ local atom displacements and may generate "false positives." This compute calculates a global scalar (the flag). This value can be used by any command that uses a global scalar value from a compute as -input. See "Section 6.15"_Section_howto.html#howto_15 for an +input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_fep.txt b/doc/src/compute_fep.txt index 9bbae7b20f..f0ce3fd704 100644 --- a/doc/src/compute_fep.txt +++ b/doc/src/compute_fep.txt @@ -219,8 +219,8 @@ unperturbed parameters. The energies include kspace terms if these are used in the simulation. These output results can be used by any command that uses a global -scalar or vector from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +scalar or vector from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. For example, the computed values can be averaged using "fix ave/time"_fix_ave_time.html. diff --git a/doc/src/compute_global_atom.txt b/doc/src/compute_global_atom.txt index 28b4aa2461..f40810b70c 100644 --- a/doc/src/compute_global_atom.txt +++ b/doc/src/compute_global_atom.txt @@ -67,7 +67,7 @@ this command. This command will then assign the global chunk value to each atom in the chunk, producing a per-atom vector or per-atom array as output. The per-atom values can then be output to a dump file or used by any command that uses per-atom values from a compute as input, -as discussed in "Section 6.15"_Section_howto.html#howto_15. +as discussed on the "Howto output"_Howto_output.html doc page. As a concrete example, these commands will calculate the displacement of each atom from the center-of-mass of the molecule it is in, and @@ -203,7 +203,7 @@ vector. If multiple inputs are specified, this compute produces a per-atom array values, where the number of columns is equal to the number of inputs specified. These values can be used by any command that uses per-atom vector or array values from a compute as input. -See "Section 6.15"_Section_howto.html#howto_15 for an overview of +See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector or array values will be in whatever units the diff --git a/doc/src/compute_group_group.txt b/doc/src/compute_group_group.txt index f10547339d..8f992791d2 100644 --- a/doc/src/compute_group_group.txt +++ b/doc/src/compute_group_group.txt @@ -123,8 +123,8 @@ group-group calculations are performed. This compute calculates a global scalar (the energy) and a global vector of length 3 (force), which can be accessed by indices 1-3. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. Both the scalar and vector values calculated by this compute are diff --git a/doc/src/compute_gyration.txt b/doc/src/compute_gyration.txt index dd71431527..3d698609ca 100644 --- a/doc/src/compute_gyration.txt +++ b/doc/src/compute_gyration.txt @@ -55,8 +55,8 @@ using the "set image"_set.html command. This compute calculates a global scalar (Rg) and a global vector of length 6 (Rg^2 tensor), which can be accessed by indices 1-6. These values can be used by any command that uses a global scalar value or -vector values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar and vector values calculated by this compute are diff --git a/doc/src/compute_gyration_chunk.txt b/doc/src/compute_gyration_chunk.txt index 3e338213cf..ef14a456f3 100644 --- a/doc/src/compute_gyration_chunk.txt +++ b/doc/src/compute_gyration_chunk.txt @@ -35,10 +35,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the radius of gyration Rg for each chunk, which includes all effects due to atoms passing thru periodic @@ -93,8 +92,8 @@ calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. If the {tensor} keyword is specified, the global array has 6 columns. The vector or array can be accessed by any command that uses global values from a compute as -input. See "this section"_Section_howto.html#howto_15 for an overview -of LAMMPS output options. +input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. All the vector or array values calculated by this compute are "intensive". The vector or array values will be in distance diff --git a/doc/src/compute_heat_flux.txt b/doc/src/compute_heat_flux.txt index 39a1470201..84c4951328 100644 --- a/doc/src/compute_heat_flux.txt +++ b/doc/src/compute_heat_flux.txt @@ -32,9 +32,9 @@ or to calculate a thermal conductivity using the equilibrium Green-Kubo formalism. For other non-equilibrium ways to compute a thermal conductivity, see -"this section"_Section_howto.html#howto_20. These include use of the -"fix thermal/conductivity"_fix_thermal_conductivity.html command for -the Muller-Plathe method. Or the "fix heat"_fix_heat.html command +the "Howto kappa"_Howto_kappa.html doc page.. These include use of +the "fix thermal/conductivity"_fix_thermal_conductivity.html command +for the Muller-Plathe method. Or the "fix heat"_fix_heat.html command which can add or subtract heat from groups of atoms. The compute takes three arguments which are IDs of other @@ -99,8 +99,8 @@ result should be: average conductivity ~0.29 in W/mK. This compute calculates a global vector of length 6 (total heat flux vector, followed by convective heat flux vector), which can be accessed by indices 1-6. These values can be used by any command that -uses global vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses global vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector values calculated by this compute are "extensive", meaning diff --git a/doc/src/compute_hexorder_atom.txt b/doc/src/compute_hexorder_atom.txt index cdf47e0894..1ab40b513c 100644 --- a/doc/src/compute_hexorder_atom.txt +++ b/doc/src/compute_hexorder_atom.txt @@ -95,10 +95,9 @@ This compute calculates a per-atom array with 2 columns, giving the real and imaginary parts {qn}, a complex number restricted to the unit disk of the complex plane i.e. Re({qn})^2 + Im({qn})^2 <= 1 . -These values can be accessed by any command that uses -per-atom values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +These values can be accessed by any command that uses per-atom values +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. [Restrictions:] none diff --git a/doc/src/compute_improper.txt b/doc/src/compute_improper.txt index f0d2fa400e..61c4f6cd29 100644 --- a/doc/src/compute_improper.txt +++ b/doc/src/compute_improper.txt @@ -37,8 +37,8 @@ This compute calculates a global vector of length N where N is the number of sub_styles defined by the "improper_style hybrid"_improper_style.html command. which can be accessed by indices 1-N. These values can be used by any command that uses global scalar -or vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +or vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector values are "extensive" and will be in energy diff --git a/doc/src/compute_improper_local.txt b/doc/src/compute_improper_local.txt index 0c289fbf07..2aec554d2f 100644 --- a/doc/src/compute_improper_local.txt +++ b/doc/src/compute_improper_local.txt @@ -63,8 +63,8 @@ array is the number of impropers. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The output for {chi} will be in degrees. diff --git a/doc/src/compute_inertia_chunk.txt b/doc/src/compute_inertia_chunk.txt index b0dbb12aea..3edd25d69b 100644 --- a/doc/src/compute_inertia_chunk.txt +++ b/doc/src/compute_inertia_chunk.txt @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the 6 components of the symmetric inertia tensor for each chunk, ordered Ixx,Iyy,Izz,Ixy,Iyz,Ixz. The @@ -72,8 +71,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 6 for the 6 components of the inertia tensor for each chunk, ordered as listed above. These values can be accessed by any command that -uses global array values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses global array values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_ke.txt b/doc/src/compute_ke.txt index caee897162..d6f4e1b709 100644 --- a/doc/src/compute_ke.txt +++ b/doc/src/compute_ke.txt @@ -44,7 +44,7 @@ include different degrees of freedom (translational, rotational, etc). This compute calculates a global scalar (the summed KE). This value can be used by any command that uses a global scalar value from a -compute as input. See "Section 6.15"_Section_howto.html#howto_15 +compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The diff --git a/doc/src/compute_ke_atom.txt b/doc/src/compute_ke_atom.txt index f5431f0569..e0e96a80d8 100644 --- a/doc/src/compute_ke_atom.txt +++ b/doc/src/compute_ke_atom.txt @@ -34,7 +34,7 @@ specified compute group. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in energy "units"_units.html. diff --git a/doc/src/compute_ke_atom_eff.txt b/doc/src/compute_ke_atom_eff.txt index 8228e13f07..aa188a411b 100644 --- a/doc/src/compute_ke_atom_eff.txt +++ b/doc/src/compute_ke_atom_eff.txt @@ -57,9 +57,9 @@ electrons) not in the specified compute group. [Output info:] This compute calculates a scalar quantity for each atom, which can be -accessed by any command that uses per-atom computes as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of -LAMMPS output options. +accessed by any command that uses per-atom computes as input. See the +"Howto output"_Howto_output.html doc page for an overview of LAMMPS +output options. The per-atom vector values will be in energy "units"_units.html. diff --git a/doc/src/compute_ke_eff.txt b/doc/src/compute_ke_eff.txt index ac8d7e6c01..334b4121ed 100644 --- a/doc/src/compute_ke_eff.txt +++ b/doc/src/compute_ke_eff.txt @@ -61,7 +61,7 @@ See "compute temp/eff"_compute_temp_eff.html. This compute calculates a global scalar (the KE). This value can be used by any command that uses a global scalar value from a compute as -input. See "Section 6.15"_Section_howto.html#howto_15 for an +input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The diff --git a/doc/src/compute_ke_rigid.txt b/doc/src/compute_ke_rigid.txt index f79696a77a..69cf4a598e 100644 --- a/doc/src/compute_ke_rigid.txt +++ b/doc/src/compute_ke_rigid.txt @@ -40,8 +40,8 @@ calculation. This compute calculates a global scalar (the summed KE of all the rigid bodies). This value can be used by any command that uses a -global scalar value from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +global scalar value from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The diff --git a/doc/src/compute_meso_e_atom.txt b/doc/src/compute_meso_e_atom.txt index 4e621b4301..70a8969386 100644 --- a/doc/src/compute_meso_e_atom.txt +++ b/doc/src/compute_meso_e_atom.txt @@ -38,7 +38,7 @@ specified compute group. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in energy "units"_units.html. diff --git a/doc/src/compute_meso_rho_atom.txt b/doc/src/compute_meso_rho_atom.txt index a017424dd0..912587f4a2 100644 --- a/doc/src/compute_meso_rho_atom.txt +++ b/doc/src/compute_meso_rho_atom.txt @@ -38,7 +38,7 @@ specified compute group. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in mass/volume "units"_units.html. diff --git a/doc/src/compute_meso_t_atom.txt b/doc/src/compute_meso_t_atom.txt index 9e81b038f4..c9db9bf50e 100644 --- a/doc/src/compute_meso_t_atom.txt +++ b/doc/src/compute_meso_t_atom.txt @@ -40,7 +40,7 @@ specified compute group. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in temperature "units"_units.html. diff --git a/doc/src/compute_msd.txt b/doc/src/compute_msd.txt index f806c5e292..742f7ce113 100644 --- a/doc/src/compute_msd.txt +++ b/doc/src/compute_msd.txt @@ -93,9 +93,8 @@ instead of many, which will change the values of msd somewhat. This compute calculates a global vector of length 4, which can be accessed by indices 1-4 by any command that uses global vector values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The vector values are "intensive". The vector values will be in distance^2 "units"_units.html. diff --git a/doc/src/compute_msd_chunk.txt b/doc/src/compute_msd_chunk.txt index 7f31b61ed0..3e1d8542ae 100644 --- a/doc/src/compute_msd_chunk.txt +++ b/doc/src/compute_msd_chunk.txt @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. Four quantities are calculated by this compute for each chunk. The first 3 quantities are the squared dx,dy,dz displacements of the @@ -106,7 +105,7 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 4 for dx,dy,dz and the total displacement. These values can be accessed by any command that uses global array values from a compute -as input. See "this section"_Section_howto.html#howto_15 for an +as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_msd_nongauss.txt b/doc/src/compute_msd_nongauss.txt index 198da999e0..db8788db0b 100644 --- a/doc/src/compute_msd_nongauss.txt +++ b/doc/src/compute_msd_nongauss.txt @@ -57,9 +57,8 @@ NOTEs, which also apply to this compute. This compute calculates a global vector of length 3, which can be accessed by indices 1-3 by any command that uses global vector values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The vector values are "intensive". The first vector value will be in distance^2 "units"_units.html, the second is in distance^4 units, and diff --git a/doc/src/compute_omega_chunk.txt b/doc/src/compute_omega_chunk.txt index 46c72d3dcb..4a7a996d1d 100644 --- a/doc/src/compute_omega_chunk.txt +++ b/doc/src/compute_omega_chunk.txt @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the 3 components of the angular velocity vector for each chunk, via the formula L = Iw where L is the angular @@ -73,8 +72,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 3 for the 3 xyz components of the angular velocity for each chunk. These values can be accessed by any command that uses global array -values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_orientorder_atom.txt b/doc/src/compute_orientorder_atom.txt index adf11dcfcf..a8b4008012 100644 --- a/doc/src/compute_orientorder_atom.txt +++ b/doc/src/compute_orientorder_atom.txt @@ -115,10 +115,9 @@ Re({Ybar_-m+1}) Im({Ybar_-m+1}) ... Re({Ybar_m}) Im({Ybar_m}). This way, the per-atom array will have a total of {nlvalues}+2*(2{l}+1) columns. -These values can be accessed by any command that uses -per-atom values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +These values can be accessed by any command that uses per-atom values +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. [Restrictions:] none diff --git a/doc/src/compute_pair.txt b/doc/src/compute_pair.txt index 0602dab81b..be40d7a550 100644 --- a/doc/src/compute_pair.txt +++ b/doc/src/compute_pair.txt @@ -62,9 +62,8 @@ This compute calculates a global scalar which is {epair} or {evdwl} or {ecoul}. If the pair style supports it, it also calculates a global vector of length >= 1, as determined by the pair style. These values can be used by any command that uses global scalar or vector values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The scalar and vector values calculated by this compute are "extensive". diff --git a/doc/src/compute_pair_local.txt b/doc/src/compute_pair_local.txt index 16aaba4667..bbbc5823f2 100644 --- a/doc/src/compute_pair_local.txt +++ b/doc/src/compute_pair_local.txt @@ -119,8 +119,8 @@ array is the number of pairs. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The output for {dist} will be in distance "units"_units.html. The diff --git a/doc/src/compute_pe.txt b/doc/src/compute_pe.txt index 15f27a8eff..f3ce5678b0 100644 --- a/doc/src/compute_pe.txt +++ b/doc/src/compute_pe.txt @@ -64,9 +64,8 @@ See the "thermo_style" command for more details. This compute calculates a global scalar (the potential energy). This value can be used by any command that uses a global scalar value from -a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The scalar value will be in energy "units"_units.html. diff --git a/doc/src/compute_pe_atom.txt b/doc/src/compute_pe_atom.txt index c312c886a6..e6bc5f9052 100644 --- a/doc/src/compute_pe_atom.txt +++ b/doc/src/compute_pe_atom.txt @@ -81,7 +81,7 @@ global system energy. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in energy "units"_units.html. diff --git a/doc/src/compute_plasticity_atom.txt b/doc/src/compute_plasticity_atom.txt index 788213fc65..c992ca8200 100644 --- a/doc/src/compute_plasticity_atom.txt +++ b/doc/src/compute_plasticity_atom.txt @@ -41,8 +41,9 @@ compute group. [Output info:] This compute calculates a per-atom vector, which can be accessed by -any command that uses per-atom values from a compute as input. See -Section_howto 15 for an overview of LAMMPS output options. +any command that uses per-atom values from a compute as input. See +the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-atom vector values are unitless numbers (lambda) >= 0.0. diff --git a/doc/src/compute_pressure.txt b/doc/src/compute_pressure.txt index 8b7491da49..51d3241ace 100644 --- a/doc/src/compute_pressure.txt +++ b/doc/src/compute_pressure.txt @@ -129,8 +129,8 @@ instructions on how to use the accelerated styles effectively. This compute calculates a global scalar (the pressure) and a global vector of length 6 (pressure tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar -or vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +or vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar and vector values calculated by this compute are diff --git a/doc/src/compute_property_atom.txt b/doc/src/compute_property_atom.txt index c0970d5121..88bdf5a453 100644 --- a/doc/src/compute_property_atom.txt +++ b/doc/src/compute_property_atom.txt @@ -93,11 +93,11 @@ compute 3 all property/atom sp spx spy spz :pre Define a computation that simply stores atom attributes for each atom in the group. This is useful so that the values can be used by other -"output commands"_Section_howto.html#howto_15 that take computes as -inputs. See for example, the "compute reduce"_compute_reduce.html, -"fix ave/atom"_fix_ave_atom.html, "fix ave/histo"_fix_ave_histo.html, -"fix ave/chunk"_fix_ave_chunk.html, and "atom-style -variable"_variable.html commands. +"output commands"_Howto_output.html that take computes as inputs. See +for example, the "compute reduce"_compute_reduce.html, "fix +ave/atom"_fix_ave_atom.html, "fix ave/histo"_fix_ave_histo.html, "fix +ave/chunk"_fix_ave_chunk.html, and "atom-style variable"_variable.html +commands. The list of possible attributes is the same as that used by the "dump custom"_dump.html command, which describes their meaning, with some @@ -149,8 +149,8 @@ on the number of input values. If a single input is specified, a per-atom vector is produced. If two or more inputs are specified, a per-atom array is produced where the number of columns = the number of inputs. The vector or array can be accessed by any command that uses -per-atom values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +per-atom values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector or array values will be in whatever "units"_units.html the diff --git a/doc/src/compute_property_chunk.txt b/doc/src/compute_property_chunk.txt index b9d4944b30..ad131a8a60 100644 --- a/doc/src/compute_property_chunk.txt +++ b/doc/src/compute_property_chunk.txt @@ -36,15 +36,14 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates and stores the specified attributes of chunks as global data so they can be accessed by other "output -commands"_Section_howto.html#howto_15 and used in conjunction with -other commands that generate per-chunk data, such as "compute +commands"_Howto_output.html and used in conjunction with other +commands that generate per-chunk data, such as "compute com/chunk"_compute_com_chunk.html or "compute msd/chunk"_compute_msd_chunk.html. @@ -103,8 +102,8 @@ single input is specified, a global vector is produced. If two or more inputs are specified, a global array is produced where the number of columns = the number of inputs. The vector or array can be accessed by any command that uses global values from a compute as -input. See "this section"_Section_howto.html#howto_15 for an overview -of LAMMPS output options. +input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. The vector or array values are "intensive". The values will be unitless or in the units discussed above. diff --git a/doc/src/compute_property_local.txt b/doc/src/compute_property_local.txt index 39106a39c8..74595f00f6 100644 --- a/doc/src/compute_property_local.txt +++ b/doc/src/compute_property_local.txt @@ -48,10 +48,10 @@ compute 1 all property/local atype aatom2 :pre Define a computation that stores the specified attributes as local data so it can be accessed by other "output -commands"_Section_howto.html#howto_15. If the input attributes refer -to bond information, then the number of datums generated, aggregated -across all processors, equals the number of bonds in the system. -Ditto for pairs, angles, etc. +commands"_Howto_output.html. If the input attributes refer to bond +information, then the number of datums generated, aggregated across +all processors, equals the number of bonds in the system. Ditto for +pairs, angles, etc. If multiple attributes are specified then they must all generate the same amount of information, so that the resulting local array has the @@ -140,8 +140,8 @@ the array is the number of bonds, angles, etc. If a single input is specified, a local vector is produced. If two or more inputs are specified, a local array is produced where the number of columns = the number of inputs. The vector or array can be accessed by any command -that uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +that uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector or array values will be integers that correspond to the diff --git a/doc/src/compute_rdf.txt b/doc/src/compute_rdf.txt index e462e85fc0..c2d2c379fe 100644 --- a/doc/src/compute_rdf.txt +++ b/doc/src/compute_rdf.txt @@ -152,7 +152,7 @@ coordinate (center of the bin), Each successive set of 2 columns has the g(r) and coord(r) values for a specific set of {itypeN} versus {jtypeN} interactions, as described above. These values can be used by any command that uses a global values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values calculated by this compute are all "intensive". diff --git a/doc/src/compute_reduce.txt b/doc/src/compute_reduce.txt index 48115a0886..614ef50581 100644 --- a/doc/src/compute_reduce.txt +++ b/doc/src/compute_reduce.txt @@ -192,7 +192,7 @@ This compute calculates a global scalar if a single input value is specified or a global vector of length N where N is the number of inputs, and which can be accessed by indices 1 to N. These values can be used by any command that uses global scalar or vector values from a -compute as input. See "Section 6.15"_Section_howto.html#howto_15 +compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. All the scalar or vector values calculated by this compute are diff --git a/doc/src/compute_rigid_local.txt b/doc/src/compute_rigid_local.txt index 077ad57d81..380713d091 100644 --- a/doc/src/compute_rigid_local.txt +++ b/doc/src/compute_rigid_local.txt @@ -49,8 +49,8 @@ Define a computation that simply stores rigid body attributes for rigid bodies defined by the "fix rigid/small"_fix_rigid.html command or one of its NVE, NVT, NPT, NPH variants. The data is stored as local data so it can be accessed by other "output -commands"_Section_howto.html#howto_15 that process local data, such as -the "compute reduce"_compute_reduce.html or "dump local"_dump.html +commands"_Howto_output.html that process local data, such as the +"compute reduce"_compute_reduce.html or "dump local"_dump.html commands. Note that this command only works with the "fix @@ -154,9 +154,9 @@ array is the number of rigid bodies. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any -command that uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +command that uses local values from a compute as input. See the +"Howto output"_Howto_output.html doc page for an overview of LAMMPS +output options. The vector or array values will be in whatever "units"_units.html the corresponding attribute is in: diff --git a/doc/src/compute_saed.txt b/doc/src/compute_saed.txt index 020f72f565..419ad3c489 100644 --- a/doc/src/compute_saed.txt +++ b/doc/src/compute_saed.txt @@ -143,10 +143,9 @@ the number of reciprocal lattice nodes that are explored by the mesh. The entries of the global vector are the computed diffraction intensities as described above. -The vector can be accessed by any command that uses global values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +The vector can be accessed by any command that uses global values from +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. All array values calculated by this compute are "intensive". diff --git a/doc/src/compute_slice.txt b/doc/src/compute_slice.txt index 13f40ecf92..69eb7976ad 100644 --- a/doc/src/compute_slice.txt +++ b/doc/src/compute_slice.txt @@ -94,8 +94,8 @@ specified or a global array with N columns where N is the number of inputs. The length of the vector or the number of rows in the array is equal to the number of values extracted from each input vector. These values can be used by any command that uses global vector or -array values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +array values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector or array values calculated by this compute are simply diff --git a/doc/src/compute_smd_contact_radius.txt b/doc/src/compute_smd_contact_radius.txt index 69fe453343..5e043a1390 100644 --- a/doc/src/compute_smd_contact_radius.txt +++ b/doc/src/compute_smd_contact_radius.txt @@ -35,9 +35,9 @@ specified compute group. [Output info:] -This compute calculates a per-particle vector, which can be accessed by -any command that uses per-particle values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +This compute calculates a per-particle vector, which can be accessed +by any command that uses per-particle values from a compute as input. +See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-particle vector values will be in distance "units"_units.html. diff --git a/doc/src/compute_smd_damage.txt b/doc/src/compute_smd_damage.txt index b6c75a3b20..ea814ba064 100644 --- a/doc/src/compute_smd_damage.txt +++ b/doc/src/compute_smd_damage.txt @@ -28,10 +28,10 @@ See "this PDF guide"_PDF/SMD_LAMMPS_userguide.pdf to use Smooth Mach Dynamics in [Output Info:] -This compute calculates a per-particle vector, which can be accessed by -any command that uses per-particle values from a compute as input. See -"How-to discussions, section 6.15"_Section_howto.html#howto_15 -for an overview of LAMMPS output options. +This compute calculates a per-particle vector, which can be accessed +by any command that uses per-particle values from a compute as input. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values are dimensionless an in the range of zero to one. diff --git a/doc/src/compute_smd_hourglass_error.txt b/doc/src/compute_smd_hourglass_error.txt index a15b79e64e..046f7e7f27 100644 --- a/doc/src/compute_smd_hourglass_error.txt +++ b/doc/src/compute_smd_hourglass_error.txt @@ -37,10 +37,10 @@ Mach Dynamics in LAMMPS. [Output Info:] -This compute calculates a per-particle vector, which can be accessed by -any command that uses per-particle values from a compute as input. See -"How-to discussions, section 6.15"_Section_howto.html#howto_15 -for an overview of LAMMPS output options. +This compute calculates a per-particle vector, which can be accessed +by any command that uses per-particle values from a compute as input. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle vector values will are dimensionless. See "units"_units.html. diff --git a/doc/src/compute_smd_internal_energy.txt b/doc/src/compute_smd_internal_energy.txt index bc6f9e0f20..b88bd8a1ce 100644 --- a/doc/src/compute_smd_internal_energy.txt +++ b/doc/src/compute_smd_internal_energy.txt @@ -31,8 +31,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle vector values will be given in "units"_units.html of energy. diff --git a/doc/src/compute_smd_plastic_strain.txt b/doc/src/compute_smd_plastic_strain.txt index af5b164453..7fd083726f 100644 --- a/doc/src/compute_smd_plastic_strain.txt +++ b/doc/src/compute_smd_plastic_strain.txt @@ -32,8 +32,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values will be given dimensionless. See "units"_units.html. diff --git a/doc/src/compute_smd_plastic_strain_rate.txt b/doc/src/compute_smd_plastic_strain_rate.txt index ba7b3176db..b17684e05e 100644 --- a/doc/src/compute_smd_plastic_strain_rate.txt +++ b/doc/src/compute_smd_plastic_strain_rate.txt @@ -32,8 +32,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values will be given in "units"_units.html of one over time. diff --git a/doc/src/compute_smd_rho.txt b/doc/src/compute_smd_rho.txt index ae50526725..375513b9c7 100644 --- a/doc/src/compute_smd_rho.txt +++ b/doc/src/compute_smd_rho.txt @@ -33,8 +33,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values will be in "units"_units.html of mass over volume. diff --git a/doc/src/compute_smd_tlsph_defgrad.txt b/doc/src/compute_smd_tlsph_defgrad.txt index 68b5dffa1c..d07ff99f07 100644 --- a/doc/src/compute_smd_tlsph_defgrad.txt +++ b/doc/src/compute_smd_tlsph_defgrad.txt @@ -32,9 +32,8 @@ Mach Dynamics in LAMMPS. This compute outputss a per-particle vector of vectors (tensors), which can be accessed by any command that uses per-particle values -from a compute as input. See "How-to discussions, section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The per-particle vector values will be given dimensionless. See "units"_units.html. The per-particle vector has 10 entries. The first diff --git a/doc/src/compute_smd_tlsph_dt.txt b/doc/src/compute_smd_tlsph_dt.txt index 560a9b6fd8..798278661a 100644 --- a/doc/src/compute_smd_tlsph_dt.txt +++ b/doc/src/compute_smd_tlsph_dt.txt @@ -37,8 +37,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values will be given in "units"_units.html of time. diff --git a/doc/src/compute_smd_tlsph_num_neighs.txt b/doc/src/compute_smd_tlsph_num_neighs.txt index 0420d1903d..632ab94208 100644 --- a/doc/src/compute_smd_tlsph_num_neighs.txt +++ b/doc/src/compute_smd_tlsph_num_neighs.txt @@ -32,8 +32,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values are dimensionless. See "units"_units.html. diff --git a/doc/src/compute_smd_tlsph_shape.txt b/doc/src/compute_smd_tlsph_shape.txt index 02bd0c50dd..a3daf70222 100644 --- a/doc/src/compute_smd_tlsph_shape.txt +++ b/doc/src/compute_smd_tlsph_shape.txt @@ -33,9 +33,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector of vectors, which can be accessed by any command that uses per-particle values from a compute -as input. See "How-to discussions, section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +as input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. The per-particle vector has 7 entries. The first three entries correspond to the lengths of the ellipsoid's axes and have units of diff --git a/doc/src/compute_smd_tlsph_strain.txt b/doc/src/compute_smd_tlsph_strain.txt index f25d1b77db..899166359c 100644 --- a/doc/src/compute_smd_tlsph_strain.txt +++ b/doc/src/compute_smd_tlsph_strain.txt @@ -31,9 +31,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector of vectors (tensors), which can be accessed by any command that uses per-particle values -from a compute as input. See "How-to discussions, section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The per-particle tensor values will be given dimensionless. See "units"_units.html. diff --git a/doc/src/compute_smd_tlsph_strain_rate.txt b/doc/src/compute_smd_tlsph_strain_rate.txt index 13ca57ac4d..29246a05d9 100644 --- a/doc/src/compute_smd_tlsph_strain_rate.txt +++ b/doc/src/compute_smd_tlsph_strain_rate.txt @@ -31,9 +31,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector of vectors (tensors), which can be accessed by any command that uses per-particle values -from a compute as input. See "How-to discussions, section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The values will be given in "units"_units.html of one over time. diff --git a/doc/src/compute_smd_tlsph_stress.txt b/doc/src/compute_smd_tlsph_stress.txt index 5d707d4c2f..c2c23b6836 100644 --- a/doc/src/compute_smd_tlsph_stress.txt +++ b/doc/src/compute_smd_tlsph_stress.txt @@ -29,11 +29,10 @@ Mach Dynamics in LAMMPS. [Output info:] -This compute calculates a per-particle vector of vectors (tensors), which can be -accessed by any command that uses per-particle values from a compute -as input. See -"How-to discussions, section 6.15"_Section_howto.html#howto_15 -for an overview of LAMMPS output options. +This compute calculates a per-particle vector of vectors (tensors), +which can be accessed by any command that uses per-particle values +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The values will be given in "units"_units.html of pressure. diff --git a/doc/src/compute_smd_triangle_mesh_vertices.txt b/doc/src/compute_smd_triangle_mesh_vertices.txt index 5b0f0afc4c..3080ef700e 100644 --- a/doc/src/compute_smd_triangle_mesh_vertices.txt +++ b/doc/src/compute_smd_triangle_mesh_vertices.txt @@ -31,9 +31,9 @@ Mach Dynamics in LAMMPS. [Output info:] This compute returns a per-particle vector of vectors, which can be -accessed by any command that uses per-particle values from a compute as -input. See "How-to discussions, section 6.15"_Section_howto.html#howto_15 -for an overview of LAMMPS output options. +accessed by any command that uses per-particle values from a compute +as input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. The per-particle vector has nine entries, (x1/y1/z1), (x2/y2/z2), and (x3/y3/z3) corresponding to the first, second, and third vertex of diff --git a/doc/src/compute_smd_ulsph_num_neighs.txt b/doc/src/compute_smd_ulsph_num_neighs.txt index adece93343..8550838799 100644 --- a/doc/src/compute_smd_ulsph_num_neighs.txt +++ b/doc/src/compute_smd_ulsph_num_neighs.txt @@ -32,7 +32,7 @@ Mach Dynamics in LAMMPS. This compute returns a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "Section 6.15"_Section_howto.html#howto_15 for an overview of +See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-particle values will be given dimensionless, see "units"_units.html. diff --git a/doc/src/compute_smd_ulsph_strain.txt b/doc/src/compute_smd_ulsph_strain.txt index b7d425b12b..3813e61f6c 100644 --- a/doc/src/compute_smd_ulsph_strain.txt +++ b/doc/src/compute_smd_ulsph_strain.txt @@ -31,7 +31,7 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle tensor, which can be accessed by any command that uses per-particle values from a compute as input. -See "Section 6.15"_Section_howto.html#howto_15 for an overview of +See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-particle vector has 6 entries, corresponding to the xx, yy, diff --git a/doc/src/compute_smd_ulsph_strain_rate.txt b/doc/src/compute_smd_ulsph_strain_rate.txt index e2c349c265..251e5ddbf7 100644 --- a/doc/src/compute_smd_ulsph_strain_rate.txt +++ b/doc/src/compute_smd_ulsph_strain_rate.txt @@ -32,9 +32,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector of vectors (tensors), which can be accessed by any command that uses per-particle values -from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The values will be given in "units"_units.html of one over time. diff --git a/doc/src/compute_smd_ulsph_stress.txt b/doc/src/compute_smd_ulsph_stress.txt index 47f903d3b8..719cf006c9 100644 --- a/doc/src/compute_smd_ulsph_stress.txt +++ b/doc/src/compute_smd_ulsph_stress.txt @@ -30,9 +30,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector of vectors (tensors), which can be accessed by any command that uses per-particle values -from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The values will be given in "units"_units.html of pressure. diff --git a/doc/src/compute_smd_vol.txt b/doc/src/compute_smd_vol.txt index fc736a5bf5..495c09a5f5 100644 --- a/doc/src/compute_smd_vol.txt +++ b/doc/src/compute_smd_vol.txt @@ -31,8 +31,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle vector values will be given in "units"_units.html of volume. diff --git a/doc/src/compute_sna_atom.txt b/doc/src/compute_sna_atom.txt index 268e23ac28..6fdd85568b 100644 --- a/doc/src/compute_sna_atom.txt +++ b/doc/src/compute_sna_atom.txt @@ -244,9 +244,8 @@ So the nesting order from inside to outside is bispectrum component, linear then quadratic, vector/tensor component, type. These values can be accessed by any command that uses per-atom values -from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. [Restrictions:] diff --git a/doc/src/compute_stress_atom.txt b/doc/src/compute_stress_atom.txt index 83b1df68e3..423c1dcfda 100644 --- a/doc/src/compute_stress_atom.txt +++ b/doc/src/compute_stress_atom.txt @@ -142,9 +142,8 @@ global system pressure. This compute calculates a per-atom array with 6 columns, which can be accessed by indices 1-6 by any command that uses per-atom values from -a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. The per-atom array values will be in pressure*volume "units"_units.html as discussed above. diff --git a/doc/src/compute_tdpd_cc_atom.txt b/doc/src/compute_tdpd_cc_atom.txt index a6a12dc52c..ec077a33d1 100644 --- a/doc/src/compute_tdpd_cc_atom.txt +++ b/doc/src/compute_tdpd_cc_atom.txt @@ -33,9 +33,9 @@ details see "(Li2015)"_#Li2015a. [Output info:] This compute calculates a per-atom vector, which can be accessed by -any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of -LAMMPS output options. +any command that uses per-atom values from a compute as input. See the +"Howto output"_Howto_output.html doc page for an overview of LAMMPS +output options. The per-atom vector values will be in the units of chemical species per unit mass. diff --git a/doc/src/compute_temp.txt b/doc/src/compute_temp.txt index f9fa56c882..cce40261c6 100644 --- a/doc/src/compute_temp.txt +++ b/doc/src/compute_temp.txt @@ -58,8 +58,8 @@ compute thermo_temp all temp :pre See the "thermo_style" command for more details. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. :line @@ -91,8 +91,8 @@ instructions on how to use the accelerated styles effectively. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_asphere.txt b/doc/src/compute_temp_asphere.txt index 495366b345..a5fc0e8927 100644 --- a/doc/src/compute_temp_asphere.txt +++ b/doc/src/compute_temp_asphere.txt @@ -93,8 +93,8 @@ computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. :line @@ -122,8 +122,8 @@ rotational degrees of freedom. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_body.txt b/doc/src/compute_temp_body.txt index f72b886cc4..580564b059 100644 --- a/doc/src/compute_temp_body.txt +++ b/doc/src/compute_temp_body.txt @@ -75,8 +75,8 @@ computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. :line @@ -104,8 +104,8 @@ rotational degrees of freedom. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_chunk.txt b/doc/src/compute_temp_chunk.txt index f877f6ece8..5d7d64ce68 100644 --- a/doc/src/compute_temp_chunk.txt +++ b/doc/src/compute_temp_chunk.txt @@ -52,10 +52,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. The temperature is calculated by the formula KE = DOF/2 k T, where KE = total kinetic energy of all atoms assigned to chunks (sum of 1/2 m @@ -200,8 +199,8 @@ molecule. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. This compute also optionally calculates a global array, if one or more @@ -210,9 +209,8 @@ of the optional values are specified. The number of rows in the array "compute chunk/atom"_compute_chunk_atom.html command. The number of columns is the number of specified values (1 or more). These values can be accessed by any command that uses global array values from a -compute as input. Again, see "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +compute as input. Again, see the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The vector values are "extensive". The array values are "intensive". diff --git a/doc/src/compute_temp_com.txt b/doc/src/compute_temp_com.txt index c7cc5ec4e2..e8b46aec97 100644 --- a/doc/src/compute_temp_com.txt +++ b/doc/src/compute_temp_com.txt @@ -65,8 +65,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] @@ -74,8 +74,8 @@ thermostatting. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_cs.txt b/doc/src/compute_temp_cs.txt index 561b787df6..9d2ceabd46 100644 --- a/doc/src/compute_temp_cs.txt +++ b/doc/src/compute_temp_cs.txt @@ -28,9 +28,9 @@ Define a computation that calculates the temperature of a system based on the center-of-mass velocity of atom pairs that are bonded to each other. This compute is designed to be used with the adiabatic core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham1. See -"Section 6.25"_Section_howto.html#howto_25 of the manual for an -overview of the model as implemented in LAMMPS. Specifically, this -compute enables correct temperature calculation and thermostatting of +the "Howto coreshell"_Howto_coreshell.html doc page for an overview of +the model as implemented in LAMMPS. Specifically, this compute +enables correct temperature calculation and thermostatting of core/shell pairs where it is desirable for the internal degrees of freedom of the core/shell pairs to not be influenced by a thermostat. A compute of this style can be used by any command that computes a @@ -83,8 +83,9 @@ langevin"_fix_langevin.html. The internal energy of core/shell pairs can be calculated by the "compute temp/chunk"_compute_temp_chunk.html command, if chunks are -defined as core/shell pairs. See "Section -6.25"_Section_howto.html#howto_25 for more discussion on how to do this. +defined as core/shell pairs. See the "Howto +coreshell"_Howto_coreshell.html doc page doc page for more discussion +on how to do this. [Output info:] diff --git a/doc/src/compute_temp_deform.txt b/doc/src/compute_temp_deform.txt index 168b0b3880..b81d07babd 100644 --- a/doc/src/compute_temp_deform.txt +++ b/doc/src/compute_temp_deform.txt @@ -104,8 +104,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] @@ -113,8 +113,8 @@ thermostatting. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_deform_eff.txt b/doc/src/compute_temp_deform_eff.txt index d09a0ace2f..418180d93c 100644 --- a/doc/src/compute_temp_deform_eff.txt +++ b/doc/src/compute_temp_deform_eff.txt @@ -48,8 +48,8 @@ component of the electrons is not affected. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_drude.txt b/doc/src/compute_temp_drude.txt index 169b8d5880..3e86dc8fda 100644 --- a/doc/src/compute_temp_drude.txt +++ b/doc/src/compute_temp_drude.txt @@ -22,10 +22,10 @@ compute TDRUDE all temp/drude :pre [Description:] Define a computation that calculates the temperatures of core-Drude -pairs. This compute is designed to be used with the -"thermalized Drude oscillator model"_tutorial_drude.html. Polarizable -models in LAMMPS are described in "this -Section"_Section_howto.html#howto_25. +pairs. This compute is designed to be used with the "thermalized Drude +oscillator model"_Howto_drude.html. Polarizable models in LAMMPS +are described on the "Howto polarizable"_Howto_polarizable.html doc +page. Drude oscillators consist of a core particle and a Drude particle connected by a harmonic bond, and the relative motion of these Drude @@ -57,8 +57,8 @@ kinetic energy of the centers of mass (energy units) kinetic energy of the dipoles (energy units) :ol These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. Both the scalar value and the first two values of the vector diff --git a/doc/src/compute_temp_eff.txt b/doc/src/compute_temp_eff.txt index 409319edcb..42d22a33a7 100644 --- a/doc/src/compute_temp_eff.txt +++ b/doc/src/compute_temp_eff.txt @@ -69,8 +69,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] diff --git a/doc/src/compute_temp_partial.txt b/doc/src/compute_temp_partial.txt index 59ec8cf20b..0fda274ca0 100644 --- a/doc/src/compute_temp_partial.txt +++ b/doc/src/compute_temp_partial.txt @@ -65,8 +65,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. :line @@ -98,8 +98,8 @@ instructions on how to use the accelerated styles effectively. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_profile.txt b/doc/src/compute_temp_profile.txt index 64a6abd283..8f47c8f9f4 100644 --- a/doc/src/compute_temp_profile.txt +++ b/doc/src/compute_temp_profile.txt @@ -122,8 +122,8 @@ degrees-of-freedom adjustment described in the preceding paragraph, for fixes that constrain molecular motion. It does include the adjustment due to the {extra} option, which is applied to each bin. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. Using this compute in conjunction with a thermostatting fix, as explained there, will effectively implement a profile-unbiased thermostat (PUT), as described in "(Evans)"_#Evans1. @@ -145,8 +145,8 @@ indices ix,iy,iz = 2,3,4 would map to row M = (iz-1)*10*10 + (iy-1)*10 indices are numbered from 1 to 10 in each dimension. These values can be used by any command that uses global scalar or -vector or array values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector or array values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_ramp.txt b/doc/src/compute_temp_ramp.txt index bc9283469c..1ae0cdfc3e 100644 --- a/doc/src/compute_temp_ramp.txt +++ b/doc/src/compute_temp_ramp.txt @@ -83,8 +83,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] @@ -92,8 +92,8 @@ thermostatting. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_region.txt b/doc/src/compute_temp_region.txt index 3e4a80db8d..f05fa38e2c 100644 --- a/doc/src/compute_temp_region.txt +++ b/doc/src/compute_temp_region.txt @@ -81,8 +81,8 @@ If needed the number of subtracted degrees-of-freedom can be set explicitly using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] @@ -90,8 +90,8 @@ thermostatting. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_region_eff.txt b/doc/src/compute_temp_region_eff.txt index 8baf2dd46c..45c01b047f 100644 --- a/doc/src/compute_temp_region_eff.txt +++ b/doc/src/compute_temp_region_eff.txt @@ -39,8 +39,8 @@ temp/eff"_compute_temp_eff.html command. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_rotate.txt b/doc/src/compute_temp_rotate.txt index 34feca7b6f..8c5679b83f 100644 --- a/doc/src/compute_temp_rotate.txt +++ b/doc/src/compute_temp_rotate.txt @@ -64,8 +64,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] @@ -73,8 +73,8 @@ thermostatting. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_sphere.txt b/doc/src/compute_temp_sphere.txt index 9e9dff2cb6..4d4258182e 100644 --- a/doc/src/compute_temp_sphere.txt +++ b/doc/src/compute_temp_sphere.txt @@ -79,8 +79,8 @@ computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. :line @@ -108,8 +108,8 @@ rotational degrees of freedom. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_ti.txt b/doc/src/compute_ti.txt index 733954d146..f5d26e1a03 100644 --- a/doc/src/compute_ti.txt +++ b/doc/src/compute_ti.txt @@ -111,9 +111,8 @@ du/dl can be found in the paper by "Eike"_#Eike. This compute calculates a global scalar, namely dUs/dlambda. This value can be used by any command that uses a global scalar value from -a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". diff --git a/doc/src/compute_torque_chunk.txt b/doc/src/compute_torque_chunk.txt index b9f832dd03..254cd0fd85 100644 --- a/doc/src/compute_torque_chunk.txt +++ b/doc/src/compute_torque_chunk.txt @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the 3 components of the torque vector for eqch chunk, due to the forces on the individual atoms in the chunk around @@ -72,7 +71,7 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 3 for the 3 xyz components of the torque for each chunk. These values can be accessed by any command that uses global array values from a -compute as input. See "Section 6.15"_Section_howto.html#howto_15 +compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_vacf.txt b/doc/src/compute_vacf.txt index a0d9a3c5f7..d615f70e22 100644 --- a/doc/src/compute_vacf.txt +++ b/doc/src/compute_vacf.txt @@ -55,9 +55,8 @@ correctly with time=0 atom velocities from the restart file. This compute calculates a global vector of length 4, which can be accessed by indices 1-4 by any command that uses global vector values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The vector values are "intensive". The vector values will be in velocity^2 "units"_units.html. diff --git a/doc/src/compute_vcm_chunk.txt b/doc/src/compute_vcm_chunk.txt index de02c586bf..af1a4305d8 100644 --- a/doc/src/compute_vcm_chunk.txt +++ b/doc/src/compute_vcm_chunk.txt @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the x,y,z components of the center-of-mass velocity for each chunk. This is done by summing mass*velocity for @@ -63,8 +62,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 3 for the x,y,z center-of-mass velocity coordinates of each chunk. These values can be accessed by any command that uses global array -values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_voronoi_atom.txt b/doc/src/compute_voronoi_atom.txt index a280b2b151..bbd68b16ea 100644 --- a/doc/src/compute_voronoi_atom.txt +++ b/doc/src/compute_voronoi_atom.txt @@ -122,18 +122,16 @@ to locate vacancies (the coordinates are given by the atom coordinates at the time step when the compute was first invoked), while column two data can be used to identify interstitial atoms. -If the {neighbors} value is set to yes, then -this compute creates a local array with 3 columns. There -is one row for each face of each Voronoi cell. The -3 columns are the atom ID of the atom that owns the cell, -the atom ID of the atom in the neighboring cell -(or zero if the face is external), and the area of the face. -The array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. More specifically, the array can be accessed by a -"dump local"_dump.html command to write a file containing -all the Voronoi neighbors in a system: +If the {neighbors} value is set to yes, then this compute creates a +local array with 3 columns. There is one row for each face of each +Voronoi cell. The 3 columns are the atom ID of the atom that owns the +cell, the atom ID of the atom in the neighboring cell (or zero if the +face is external), and the area of the face. The array can be +accessed by any command that uses local values from a compute as +input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. More specifically, the array can be +accessed by a "dump local"_dump.html command to write a file +containing all the Voronoi neighbors in a system: compute 6 all voronoi/atom neighbors yes dump d2 all local 1 dump.neighbors index c_6\[1\] c_6\[2\] c_6\[3\] :pre @@ -186,8 +184,8 @@ columns. In regular dynamic tessellation mode the first column is the Voronoi volume, the second is the neighbor count, as described above (read above for the output data in case the {occupation} keyword is specified). These values can be accessed by any command that uses -per-atom values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +per-atom values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. If the {peratom} keyword is set to "no", the per-atom array is still created, but it is not accessible. diff --git a/doc/src/compute_xrd.txt b/doc/src/compute_xrd.txt index 1a151d63f9..03fd0ecdc2 100644 --- a/doc/src/compute_xrd.txt +++ b/doc/src/compute_xrd.txt @@ -162,7 +162,7 @@ or degrees) provided with the {2Theta} values. The second column contains the computed diffraction intensities as described above. The array can be accessed by any command that uses global values from -a compute as input. See "this section"_Section_howto.html#howto_15 +a compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. All array values calculated by this compute are "intensive". diff --git a/doc/src/create_box.txt b/doc/src/create_box.txt index f4ef13654c..ed05775591 100644 --- a/doc/src/create_box.txt +++ b/doc/src/create_box.txt @@ -73,9 +73,9 @@ factors that exceed these limits, you can use the "box tilt"_box.html command, with a setting of {large}; a setting of {small} is the default. -See "Section 6.12"_Section_howto.html#howto_12 of the doc pages -for a geometric description of triclinic boxes, as defined by LAMMPS, -and how to transform these parameters to and from other commonly used +See the "Howto triclinic"_Howto_triclinic.html doc page for a +geometric description of triclinic boxes, as defined by LAMMPS, and +how to transform these parameters to and from other commonly used triclinic representations. When a prism region is used, the simulation domain should normally be diff --git a/doc/src/dimension.txt b/doc/src/dimension.txt index 0531e92acf..f079f17f99 100644 --- a/doc/src/dimension.txt +++ b/doc/src/dimension.txt @@ -26,7 +26,7 @@ prior to setting up a simulation box via the "create_box"_create_box.html or "read_data"_read_data.html commands. Restart files also store this setting. -See the discussion in "Section 6"_Section_howto.html for +See the discussion on the "Howto 2d"_Howto_2d.html doc page for additional instructions on how to run 2d simulations. NOTE: Some models in LAMMPS treat particles as finite-size spheres or diff --git a/doc/src/dump.txt b/doc/src/dump.txt index ff1bf6424d..cd8bab2e65 100644 --- a/doc/src/dump.txt +++ b/doc/src/dump.txt @@ -224,12 +224,12 @@ This bounding box is convenient for many visualization programs. The meaning of the 6 character flags for "xx yy zz" is the same as above. Note that the first two numbers on each line are now xlo_bound instead -of xlo, etc, since they represent a bounding box. See "this -section"_Section_howto.html#howto_12 of the doc pages for a geometric -description of triclinic boxes, as defined by LAMMPS, simple formulas -for how the 6 bounding box extents (xlo_bound,xhi_bound,etc) are -calculated from the triclinic parameters, and how to transform those -parameters to and from other commonly used triclinic representations. +of xlo, etc, since they represent a bounding box. See the "Howto +triclinic"_Howto_triclinic.html doc page for a geometric description +of triclinic boxes, as defined by LAMMPS, simple formulas for how the +6 bounding box extents (xlo_bound,xhi_bound,etc) are calculated from +the triclinic parameters, and how to transform those parameters to and +from other commonly used triclinic representations. The "ITEM: ATOMS" line in each snapshot lists column descriptors for the per-atom lines that follow. For example, the descriptors would be @@ -530,7 +530,7 @@ so that each value is 0.0 to 1.0. If the simulation box is triclinic (tilted), then all atom coords will still be between 0.0 and 1.0. I.e. actual unscaled (x,y,z) = xs*A + ys*B + zs*C, where (A,B,C) are the non-orthogonal vectors of the simulation box edges, as discussed -in "Section 6.12"_Section_howto.html#howto_12. +on the "Howto triclinic"_Howto_triclinic.html doc page. Use {xu}, {yu}, {zu} if you want the coordinates "unwrapped" by the image flags for each atom. Unwrapped means that if the atom has diff --git a/doc/src/dump_image.txt b/doc/src/dump_image.txt index c1732be972..fcc9b25b62 100644 --- a/doc/src/dump_image.txt +++ b/doc/src/dump_image.txt @@ -356,16 +356,16 @@ is used to define body particles with internal state body style. If this keyword is not used, such particles will be drawn as spheres, the same as if they were regular atoms. -The "body"_body.html doc page describes the body styles LAMMPS -currently supports, and provides more details as to the kind of body -particles they represent and how they are drawn by this dump image -command. For all the body styles, individual atoms can be either a -body particle or a usual point (non-body) particle. Non-body +The "Howto body"_Howto_body.html doc page describes the body styles +LAMMPS currently supports, and provides more details as to the kind of +body particles they represent and how they are drawn by this dump +image command. For all the body styles, individual atoms can be +either a body particle or a usual point (non-body) particle. Non-body particles will be drawn the same way they would be as a regular atom. The {bflag1} and {bflag2} settings are numerical values which are passed to the body style to affect how the drawing of a body particle -is done. See the "body"_body.html doc page for a description of what -these parameters mean for each body style. +is done. See the "Howto body"_Howto_body.html doc page for a +description of what these parameters mean for each body style. The only setting currently allowed for the {color} value is {type}, which will color the body particles according to the atom type of the diff --git a/doc/src/fix.txt b/doc/src/fix.txt index ba2088576f..a51dc1637d 100644 --- a/doc/src/fix.txt +++ b/doc/src/fix.txt @@ -133,7 +133,7 @@ reduce"_compute_reduce.html command, or histogrammed by the "fix ave/histo"_fix_ave_histo.html command. :l :ule -See this "howto section"_Section_howto.html#howto_15 for a summary of +See the "Howto output"_Howto_output.html doc page for a summary of various LAMMPS output options, many of which involve fixes. The results of fixes that calculate global quantities can be either diff --git a/doc/src/fix_adapt.txt b/doc/src/fix_adapt.txt index 7a34f2ff44..0764d04e6d 100644 --- a/doc/src/fix_adapt.txt +++ b/doc/src/fix_adapt.txt @@ -270,10 +270,10 @@ fix 1 center adapt 10 atom diameter v_size :pre No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. For "rRESPA time integration"_run_style.html, this fix changes parameters on the outermost rRESPA level. diff --git a/doc/src/fix_adapt_fep.txt b/doc/src/fix_adapt_fep.txt index 5dd58bc39a..43c87a1601 100644 --- a/doc/src/fix_adapt_fep.txt +++ b/doc/src/fix_adapt_fep.txt @@ -243,10 +243,10 @@ parameters on the outermost rRESPA level. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_addforce.txt b/doc/src/fix_addforce.txt index 5bba9acb3f..c77cdb62af 100644 --- a/doc/src/fix_addforce.txt +++ b/doc/src/fix_addforce.txt @@ -150,11 +150,11 @@ integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar and a global 3-vector of forces, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar is the potential -energy discussed above. The vector is the total force on the group of -atoms before the forces on individual atoms are changed by the fix. -The scalar and vector values calculated by this fix are "extensive". +which can be accessed by various "output commands"_Howto_output.html. +The scalar is the potential energy discussed above. The vector is the +total force on the group of atoms before the forces on individual +atoms are changed by the fix. The scalar and vector values calculated +by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_addtorque.txt b/doc/src/fix_addtorque.txt index 793ec0e015..589cb37cc0 100644 --- a/doc/src/fix_addtorque.txt +++ b/doc/src/fix_addtorque.txt @@ -70,11 +70,11 @@ this fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its torque. Default is the outermost level. This fix computes a global scalar and a global 3-vector, which can be -accessed by various "output commands"_Section_howto.html#howto_15. -The scalar is the potential energy discussed above. The vector is the -total torque on the group of atoms before the forces on individual -atoms are changed by the fix. The scalar and vector values calculated -by this fix are "extensive". +accessed by various "output commands"_Howto_output.html. The scalar +is the potential energy discussed above. The vector is the total +torque on the group of atoms before the forces on individual atoms are +changed by the fix. The scalar and vector values calculated by this +fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_append_atoms.txt b/doc/src/fix_append_atoms.txt index 27070c9be5..ba7b4a3e74 100644 --- a/doc/src/fix_append_atoms.txt +++ b/doc/src/fix_append_atoms.txt @@ -87,10 +87,10 @@ define the lattice spacings. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_atc.txt b/doc/src/fix_atc.txt index 49014f0591..af3270ff52 100644 --- a/doc/src/fix_atc.txt +++ b/doc/src/fix_atc.txt @@ -102,7 +102,13 @@ Note coupling and post-processing can be combined in the same simulations using [Restart, fix_modify, output, run start/stop, minimize info:] -No information about this fix is written to "binary restart files"_restart.html. The "fix_modify"_fix_modify.html options relevant to this fix are listed below. No global scalar or vector or per-atom quantities are stored by this fix for access by various "output commands"_Section_howto.html#howto_15. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. +No information about this fix is written to "binary restart +files"_restart.html. The "fix_modify"_fix_modify.html options +relevant to this fix are listed below. No global scalar or vector or +per-atom quantities are stored by this fix for access by various +"output commands"_Howto_output.html. No parameter of this fix can be +used with the {start/stop} keywords of the "run"_run.html command. +This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_atom_swap.txt b/doc/src/fix_atom_swap.txt index bf56277214..0b3be3ce5e 100644 --- a/doc/src/fix_atom_swap.txt +++ b/doc/src/fix_atom_swap.txt @@ -150,8 +150,8 @@ None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global vector of length 2, which can be accessed -by various "output commands"_Section_howto.html#howto_15. The vector -values are the following global cumulative quantities: +by various "output commands"_Howto_output.html. The vector values are +the following global cumulative quantities: 1 = swap attempts 2 = swap successes :ul diff --git a/doc/src/fix_ave_atom.txt b/doc/src/fix_ave_atom.txt index 23e4ed235b..05bd0f6fa7 100644 --- a/doc/src/fix_ave_atom.txt +++ b/doc/src/fix_ave_atom.txt @@ -38,7 +38,7 @@ fix 1 all ave/atom 10 20 1000 c_my_stress\[*\] :pre Use one or more per-atom vectors as inputs every few timesteps, and average them atom by atom over longer timescales. The resulting per-atom averages can be used by other "output -commands"_Section_howto.html#howto_15 such as the "fix +commands"_Howto_output.html such as the "fix ave/chunk"_fix_ave_chunk.html or "dump custom"_dump.html commands. The group specified with the command means only atoms within the group @@ -155,14 +155,14 @@ No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global scalar or vector quantities are stored by this fix for access by various "output -commands"_Section_howto.html#howto_15. +commands"_Howto_output.html. This fix produces a per-atom vector or array which can be accessed by -various "output commands"_Section_howto.html#howto_15. A vector is -produced if only a single quantity is averaged by this fix. If two or -more quantities are averaged, then an array of values is produced. -The per-atom values can only be accessed on timesteps that are -multiples of {Nfreq} since that is when averaging is performed. +various "output commands"_Howto_output.html. A vector is produced if +only a single quantity is averaged by this fix. If two or more +quantities are averaged, then an array of values is produced. The +per-atom values can only be accessed on timesteps that are multiples +of {Nfreq} since that is when averaging is performed. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_ave_chunk.txt b/doc/src/fix_ave_chunk.txt index 8e2a09e33f..e9d0ef7e72 100644 --- a/doc/src/fix_ave_chunk.txt +++ b/doc/src/fix_ave_chunk.txt @@ -85,17 +85,17 @@ fix 1 flow ave/chunk 100 10 1000 cc1 vx vz norm sample file vel.profile :pre Use one or more per-atom vectors as inputs every few timesteps, sum the values over the atoms in each chunk at each timestep, then average the per-chunk values over longer timescales. The resulting chunk -averages can be used by other "output -commands"_Section_howto.html#howto_15 such as "thermo_style -custom"_thermo_style.html, and can also be written to a file. +averages can be used by other "output commands"_Howto_output.html such +as "thermo_style custom"_thermo_style.html, and can also be written to +a file. In LAMMPS, chunks are collections of atoms defined by a "compute chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be +chunk/atom"_compute_chunk_atom.html doc page and the "Howto +chunk"_Howto_chunk.html doc page for details of how chunks can be defined and examples of how they can be used to measure properties of a system. @@ -456,20 +456,19 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global array of values which can be accessed by -various "output commands"_Section_howto.html#howto_15. The values can -only be accessed on timesteps that are multiples of {Nfreq} since that -is when averaging is performed. The global array has # of rows = -the number of chunks {Nchunk} as calculated by the specified "compute +various "output commands"_Howto_output.html. The values can only be +accessed on timesteps that are multiples of {Nfreq} since that is when +averaging is performed. The global array has # of rows = the number +of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The # of columns = M+1+Nvalues, where M = 1 to 4, depending on whether the optional -columns for OrigID and CoordN are used, as explained above. -Following the optional columns, the next column contains the count of -atoms in the chunk, and the remaining columns are the Nvalue -quantities. When the array is accessed with a row I that exceeds the -current number of chunks, than a 0.0 is returned by the fix instead of -an error, since the number of chunks can vary as a simulation runs -depending on how that value is computed by the compute chunk/atom -command. +columns for OrigID and CoordN are used, as explained above. Following +the optional columns, the next column contains the count of atoms in +the chunk, and the remaining columns are the Nvalue quantities. When +the array is accessed with a row I that exceeds the current number of +chunks, than a 0.0 is returned by the fix instead of an error, since +the number of chunks can vary as a simulation runs depending on how +that value is computed by the compute chunk/atom command. The array values calculated by this fix are treated as "intensive", since they are typically already normalized by the count of atoms in diff --git a/doc/src/fix_ave_correlate.txt b/doc/src/fix_ave_correlate.txt index 98f352cb74..74ce3f340e 100644 --- a/doc/src/fix_ave_correlate.txt +++ b/doc/src/fix_ave_correlate.txt @@ -68,7 +68,7 @@ calculate time correlations between them at varying time intervals, and average the correlation data over longer timescales. The resulting correlation values can be time integrated by "variables"_variable.html or used by other "output -commands"_Section_howto.html#howto_15 such as "thermo_style +commands"_Howto_output.html such as "thermo_style custom"_thermo_style.html, and can also be written to a file. See the "fix ave/correlate/long"_fix_ave_correlate_long.html command for an alternate method for computing correlation functions efficiently over @@ -313,16 +313,15 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global array of values which can be accessed by -various "output commands"_Section_howto.html#howto_15. The values can -only be accessed on timesteps that are multiples of {Nfreq} since that -is when averaging is performed. The global array has # of rows = -{Nrepeat} and # of columns = Npair+2. The first column has the time -delta (in timesteps) between the pairs of input values used to -calculate the correlation, as described above. The 2nd column has the -number of samples contributing to the correlation average, as -described above. The remaining Npair columns are for I,J pairs of the -N input values, as determined by the {type} keyword, as described -above. +various "output commands"_Howto_output.html. The values can only be +accessed on timesteps that are multiples of {Nfreq} since that is when +averaging is performed. The global array has # of rows = {Nrepeat} +and # of columns = Npair+2. The first column has the time delta (in +timesteps) between the pairs of input values used to calculate the +correlation, as described above. The 2nd column has the number of +samples contributing to the correlation average, as described above. +The remaining Npair columns are for I,J pairs of the N input values, +as determined by the {type} keyword, as described above. For {type} = {auto}, the Npair = N columns are ordered: C11, C22, ..., CNN. :ulb,l diff --git a/doc/src/fix_ave_histo.txt b/doc/src/fix_ave_histo.txt index 5155f42e7b..e2fd2e04e8 100644 --- a/doc/src/fix_ave_histo.txt +++ b/doc/src/fix_ave_histo.txt @@ -69,10 +69,9 @@ fix 1 all ave/histo/weight 1 1 1 10 100 2000 c_XRD\[1\] c_XRD\[2\] :pre Use one or more values as inputs every few timesteps to create a single histogram. The histogram can then be averaged over longer timescales. The resulting histogram can be used by other "output -commands"_Section_howto.html#howto_15, and can also be written to a -file. The fix ave/histo/weight command has identical syntax to fix -ave/histo, except that exactly two values must be specified. See -details below. +commands"_Howto_output.html, and can also be written to a file. The +fix ave/histo/weight command has identical syntax to fix ave/histo, +except that exactly two values must be specified. See details below. The group specified with this command is ignored for global and local input values. For per-atom input values, only atoms in the group @@ -320,10 +319,10 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a global vector and global array which can be -accessed by various "output commands"_Section_howto.html#howto_15. -The values can only be accessed on timesteps that are multiples of -{Nfreq} since that is when a histogram is generated. The global -vector has 4 values: +accessed by various "output commands"_Howto_output.html. The values +can only be accessed on timesteps that are multiples of {Nfreq} since +that is when a histogram is generated. The global vector has 4 +values: 1 = total counts in the histogram 2 = values that were not histogrammed (see {beyond} keyword) diff --git a/doc/src/fix_ave_time.txt b/doc/src/fix_ave_time.txt index b61f56cf02..e973a36360 100644 --- a/doc/src/fix_ave_time.txt +++ b/doc/src/fix_ave_time.txt @@ -64,7 +64,7 @@ fix 1 all ave/time 1 100 1000 f_indent f_indent\[1\] file temp.indent off 1 :pre Use one or more global values as inputs every few timesteps, and average them over longer timescales. The resulting averages can be -used by other "output commands"_Section_howto.html#howto_15 such as +used by other "output commands"_Howto_output.html such as "thermo_style custom"_thermo_style.html, and can also be written to a file. Note that if no time averaging is done, this command can be used as a convenient way to simply output one or more global values to @@ -305,10 +305,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a global scalar or global vector or global array -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The values can only be -accessed on timesteps that are multiples of {Nfreq} since that is when -averaging is performed. +which can be accessed by various "output commands"_Howto_output.html. +The values can only be accessed on timesteps that are multiples of +{Nfreq} since that is when averaging is performed. A scalar is produced if only a single input value is averaged and {mode} = scalar. A vector is produced if multiple input values are diff --git a/doc/src/fix_aveforce.txt b/doc/src/fix_aveforce.txt index 4944996695..3497b33ef4 100644 --- a/doc/src/fix_aveforce.txt +++ b/doc/src/fix_aveforce.txt @@ -95,10 +95,10 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global 3-vector of forces, which can be accessed -by various "output commands"_Section_howto.html#howto_15. This is the -total force on the group of atoms before the forces on individual -atoms are changed by the fix. The vector values calculated by this -fix are "extensive". +by various "output commands"_Howto_output.html. This is the total +force on the group of atoms before the forces on individual atoms are +changed by the fix. The vector values calculated by this fix are +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_balance.txt b/doc/src/fix_balance.txt index f148e6f996..b98fd85c3b 100644 --- a/doc/src/fix_balance.txt +++ b/doc/src/fix_balance.txt @@ -357,8 +357,8 @@ number of particles (or total weight) on any processor to the average number of particles (or total weight) per processor. These quantities can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar and vector values -calculated by this fix are "intensive". +commands"_Howto_output.html. The scalar and vector values calculated +by this fix are "intensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_bond_break.txt b/doc/src/fix_bond_break.txt index 83364b9efb..b43053c461 100644 --- a/doc/src/fix_bond_break.txt +++ b/doc/src/fix_bond_break.txt @@ -116,8 +116,8 @@ are relevant to this fix. This fix computes two statistics which it stores in a global vector of length 2, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The vector values calculated -by this fix are "intensive". +commands"_Howto_output.html. The vector values calculated by this fix +are "intensive". These are the 2 quantities: diff --git a/doc/src/fix_bond_create.txt b/doc/src/fix_bond_create.txt index c0045ac0f0..a55ba1ff6e 100644 --- a/doc/src/fix_bond_create.txt +++ b/doc/src/fix_bond_create.txt @@ -211,8 +211,8 @@ are relevant to this fix. This fix computes two statistics which it stores in a global vector of length 2, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The vector values calculated -by this fix are "intensive". +commands"_Howto_output.html. The vector values calculated by this fix +are "intensive". These are the 2 quantities: diff --git a/doc/src/fix_bond_react.txt b/doc/src/fix_bond_react.txt index f85ef9bc1a..006f59100f 100644 --- a/doc/src/fix_bond_react.txt +++ b/doc/src/fix_bond_react.txt @@ -298,9 +298,8 @@ relevant to this fix. This fix computes one statistic for each {react} argument that it stores in a global vector, of length 'number of react arguments', that -can be accessed by various "output -commands"_Section_howto.html#howto_15. The vector values calculated by -this fix are "intensive". +can be accessed by various "output commands"_Howto_output.html. The +vector values calculated by this fix are "intensive". These is 1 quantity for each react argument: diff --git a/doc/src/fix_bond_swap.txt b/doc/src/fix_bond_swap.txt index ca7069e247..8d5df7e4e0 100644 --- a/doc/src/fix_bond_swap.txt +++ b/doc/src/fix_bond_swap.txt @@ -150,13 +150,13 @@ the Boltzmann criterion. This fix computes two statistical quantities as a global 2-vector of output, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The first component of the -vector is the cumulative number of swaps performed by all processors. -The second component of the vector is the cumulative number of swaps -attempted (whether accepted or rejected). Note that a swap "attempt" -only occurs when swap partners meeting the criteria described above -are found on a particular timestep. The vector values calculated by -this fix are "intensive". +commands"_Howto_output.html. The first component of the vector is the +cumulative number of swaps performed by all processors. The second +component of the vector is the cumulative number of swaps attempted +(whether accepted or rejected). Note that a swap "attempt" only +occurs when swap partners meeting the criteria described above are +found on a particular timestep. The vector values calculated by this +fix are "intensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_box_relax.txt b/doc/src/fix_box_relax.txt index e3d75ee858..a625f0c5b8 100644 --- a/doc/src/fix_box_relax.txt +++ b/doc/src/fix_box_relax.txt @@ -315,17 +315,15 @@ specified by the {press} keyword will be unaffected by the {temp} setting. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -pressure-volume energy, plus the strain energy, if it exists, -as described above. -The energy values reported at the -end of a minimization run under "Minimization stats" include this -energy, and so differ from what LAMMPS normally reports as potential -energy. This fix does not support the "fix_modify"_fix_modify.html -{energy} option, because that would result in double-counting of the -fix energy in the minimization energy. Instead, the fix energy can be -explicitly added to the potential energy using one of these two -variants: +"output commands"_Howto_output.html. The scalar is the pressure-volume +energy, plus the strain energy, if it exists, as described above. The +energy values reported at the end of a minimization run under +"Minimization stats" include this energy, and so differ from what +LAMMPS normally reports as potential energy. This fix does not support +the "fix_modify"_fix_modify.html {energy} option, because that would +result in double-counting of the fix energy in the minimization +energy. Instead, the fix energy can be explicitly added to the +potential energy using one of these two variants: variable emin equal pe+f_1 :pre diff --git a/doc/src/fix_cmap.txt b/doc/src/fix_cmap.txt index f8de2b4efe..d352f0e652 100644 --- a/doc/src/fix_cmap.txt +++ b/doc/src/fix_cmap.txt @@ -103,9 +103,9 @@ the system's virial as part of "thermodynamic output"_thermo_style.html. The default is {virial yes} This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -potential energy discussed above. The scalar value calculated by this -fix is "extensive". +"output commands"_Howto_output.html. The scalar is the potential +energy discussed above. The scalar value calculated by this fix is +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_colvars.txt b/doc/src/fix_colvars.txt index e48dedacd9..2d3000e6ea 100644 --- a/doc/src/fix_colvars.txt +++ b/doc/src/fix_colvars.txt @@ -99,9 +99,9 @@ to the system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". [Restrictions:] diff --git a/doc/src/fix_controller.txt b/doc/src/fix_controller.txt index b8d2cb43be..710642c0ea 100644 --- a/doc/src/fix_controller.txt +++ b/doc/src/fix_controller.txt @@ -180,9 +180,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a global vector with 3 values which can be accessed -by various "output commands"_Section_howto.html#howto_15. The values -can be accessed on any timestep, though they are only updated on -timesteps that are a multiple of {Nevery}. +by various "output commands"_Howto_output.html. The values can be +accessed on any timestep, though they are only updated on timesteps +that are a multiple of {Nevery}. The three values are the most recent updates made to the control variable by each of the 3 terms in the PID equation above. The first diff --git a/doc/src/fix_deform.txt b/doc/src/fix_deform.txt index 681986561a..09261e2423 100644 --- a/doc/src/fix_deform.txt +++ b/doc/src/fix_deform.txt @@ -572,10 +572,9 @@ instructions on how to use the accelerated styles effectively. This fix will restore the initial box settings from "binary restart files"_restart.html, which allows the fix to be properly continue deformation, when using the start/stop options of the "run"_run.html -command. None of the "fix_modify"_fix_modify.html options -are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. +command. None of the "fix_modify"_fix_modify.html options are +relevant to this fix. No global or per-atom quantities are stored by +this fix for access by various "output commands"_Howto_output.html. This fix can perform deformation over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_deposit.txt b/doc/src/fix_deposit.txt index 477c14ea89..285e720555 100644 --- a/doc/src/fix_deposit.txt +++ b/doc/src/fix_deposit.txt @@ -116,8 +116,8 @@ side = {in}. NOTE: LAMMPS checks that the specified region is wholly inside the simulation box. It can do this correctly for orthonormal simulation -boxes. However for "triclinic boxes"_Section_howto.html#howto_12, it -only tests against the larger orthonormal box that bounds the tilted +boxes. However for "triclinic boxes"_Howto_triclinic.html, it only +tests against the larger orthonormal box that bounds the tilted simulation box. If the specified region includes volume outside the tilted box, then an insertion will likely fail, leading to a "lost atoms" error. Thus for triclinic boxes you should insure the @@ -263,9 +263,9 @@ operation of the fix continues in an uninterrupted fashion. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_dpd_source.txt b/doc/src/fix_dpd_source.txt index b6decc657c..bbfc99e8c8 100644 --- a/doc/src/fix_dpd_source.txt +++ b/doc/src/fix_dpd_source.txt @@ -63,10 +63,10 @@ cuboid domain to apply the source flux to. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_drag.txt b/doc/src/fix_drag.txt index 235d3d38b5..a67ec6aaf2 100644 --- a/doc/src/fix_drag.txt +++ b/doc/src/fix_drag.txt @@ -47,9 +47,9 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global 3-vector of forces, which can be accessed -by various "output commands"_Section_howto.html#howto_15. This is the -total force on the group of atoms by the drag force. The vector -values calculated by this fix are "extensive". +by various "output commands"_Howto_output.html. This is the total +force on the group of atoms by the drag force. The vector values +calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_drude.txt b/doc/src/fix_drude.txt index faa354b314..4a3d30a9ca 100644 --- a/doc/src/fix_drude.txt +++ b/doc/src/fix_drude.txt @@ -25,10 +25,10 @@ fix 1 all drude C C N C N D D D :pre [Description:] Assign each atom type in the system to be one of 3 kinds of atoms -within the Drude polarization model. This fix is designed to be -used with the "thermalized Drude oscillator -model"_tutorial_drude.html. Polarizable models in LAMMPS -are described in "this Section"_Section_howto.html#howto_25. +within the Drude polarization model. This fix is designed to be used +with the "thermalized Drude oscillator model"_Howto_drude.html. +Polarizable models in LAMMPS are described on the "Howto +polarizable"_Howto_polarizable.html doc page. The three possible types can be designated with an integer (0,1,2) or capital letter (N,C,D): diff --git a/doc/src/fix_drude_transform.txt b/doc/src/fix_drude_transform.txt index 2e094d528c..54cdfa956e 100644 --- a/doc/src/fix_drude_transform.txt +++ b/doc/src/fix_drude_transform.txt @@ -34,8 +34,8 @@ Transform the coordinates of Drude oscillators from real to reduced and back for thermalizing the Drude oscillators as described in "(Lamoureux)"_#Lamoureux1 using a Nose-Hoover thermostat. This fix is designed to be used with the "thermalized Drude oscillator -model"_tutorial_drude.html. Polarizable models in LAMMPS are -described in "this Section"_Section_howto.html#howto_25. +model"_Howto_drude.html. Polarizable models in LAMMPS are described +on the "Howto polarizable"_Howto_polarizable.html doc page. Drude oscillators are a pair of atoms representing a single polarizable atom. Ideally, the mass of Drude particles would vanish diff --git a/doc/src/fix_dt_reset.txt b/doc/src/fix_dt_reset.txt index 7605395ca0..428128feda 100644 --- a/doc/src/fix_dt_reset.txt +++ b/doc/src/fix_dt_reset.txt @@ -82,8 +82,8 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar stores -the last timestep on which the timestep was reset to a new value. +"output commands"_Howto_output.html. The scalar stores the last +timestep on which the timestep was reset to a new value. The scalar value calculated by this fix is "intensive". diff --git a/doc/src/fix_efield.txt b/doc/src/fix_efield.txt index 5d2b86fe4b..a248a03b07 100644 --- a/doc/src/fix_efield.txt +++ b/doc/src/fix_efield.txt @@ -134,11 +134,10 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix adding its forces. Default is the outermost level. This fix computes a global scalar and a global 3-vector of forces, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar is the potential -energy discussed above. The vector is the total force added to the -group of atoms. The scalar and vector values calculated by this fix -are "extensive". +which can be accessed by various "output commands"_Howto_output.html. +The scalar is the potential energy discussed above. The vector is the +total force added to the group of atoms. The scalar and vector values +calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_enforce2d.txt b/doc/src/fix_enforce2d.txt index 67b351e4b8..b0d8c691b5 100644 --- a/doc/src/fix_enforce2d.txt +++ b/doc/src/fix_enforce2d.txt @@ -55,9 +55,9 @@ instructions on how to use the accelerated styles effectively. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. diff --git a/doc/src/fix_evaporate.txt b/doc/src/fix_evaporate.txt index ed6c6d0377..be8b351986 100644 --- a/doc/src/fix_evaporate.txt +++ b/doc/src/fix_evaporate.txt @@ -73,9 +73,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar, which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative number of deleted atoms. The scalar value calculated by -this fix is "intensive". +"output commands"_Howto_output.html. The scalar is the cumulative +number of deleted atoms. The scalar value calculated by this fix is +"intensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_external.txt b/doc/src/fix_external.txt index 30e34b4858..bf80b1b231 100644 --- a/doc/src/fix_external.txt +++ b/doc/src/fix_external.txt @@ -31,10 +31,10 @@ fix 1 all external pf/array 10 :pre [Description:] This fix allows external programs that are running LAMMPS through its -"library interface"_Section_howto.html#howto_19 to modify certain -LAMMPS properties on specific timesteps, similar to the way other -fixes do. The external driver can be a "C/C++ or Fortran -program"_Section_howto.html#howto_19 or a "Python script"_Python.html. +"library interface"_Howto_library.html to modify certain LAMMPS +properties on specific timesteps, similar to the way other fixes do. +The external driver can be a "C/C++ or Fortran +program"_Howto_library.html or a "Python script"_Python.html. :line @@ -136,9 +136,8 @@ external program to the system's virial as part of "thermodynamic output"_thermo_style.html. The default is {virial yes} This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -potential energy discussed above. The scalar stored by this fix -is "extensive". +"output commands"_Howto_output.html. The scalar is the potential +energy discussed above. The scalar stored by this fix is "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_filter_corotate.txt b/doc/src/fix_filter_corotate.txt index b782d285c7..a75a3b7b44 100644 --- a/doc/src/fix_filter_corotate.txt +++ b/doc/src/fix_filter_corotate.txt @@ -63,10 +63,9 @@ No information about these fixes is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to these fixes. No global or per-atom quantities are stored by these fixes for access by various "output -commands"_Section_howto.html#howto_15. No parameter of these fixes -can be used with the {start/stop} keywords of the "run"_run.html -command. These fixes are not invoked during "energy -minimization"_minimize.html. +commands"_Howto_output.html. No parameter of these fixes can be used +with the {start/stop} keywords of the "run"_run.html command. These +fixes are not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_flow_gauss.txt b/doc/src/fix_flow_gauss.txt index efa58ea65f..0980076062 100644 --- a/doc/src/fix_flow_gauss.txt +++ b/doc/src/fix_flow_gauss.txt @@ -128,11 +128,11 @@ integrator the fix computes and adds the external acceleration. Default is the outermost level. This fix computes a global scalar and a global 3-vector of forces, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar is the negative of the -work done on the system, see above discussion. The vector is the total force -that this fix applied to the group of atoms on the current timestep. -The scalar and vector values calculated by this fix are "extensive". +which can be accessed by various "output commands"_Howto_output.html. +The scalar is the negative of the work done on the system, see above +discussion. The vector is the total force that this fix applied to +the group of atoms on the current timestep. The scalar and vector +values calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_freeze.txt b/doc/src/fix_freeze.txt index 9619f4120b..43714df802 100644 --- a/doc/src/fix_freeze.txt +++ b/doc/src/fix_freeze.txt @@ -60,10 +60,10 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global 3-vector of forces, which can be accessed -by various "output commands"_Section_howto.html#howto_15. This is the -total force on the group of atoms before the forces on individual -atoms are changed by the fix. The vector values calculated by this -fix are "extensive". +by various "output commands"_Howto_output.html. This is the total +force on the group of atoms before the forces on individual atoms are +changed by the fix. The vector values calculated by this fix are +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_gcmc.txt b/doc/src/fix_gcmc.txt index 191bc32b14..9630d856be 100644 --- a/doc/src/fix_gcmc.txt +++ b/doc/src/fix_gcmc.txt @@ -382,8 +382,8 @@ None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global vector of length 8, which can be accessed -by various "output commands"_Section_howto.html#howto_15. The vector -values are the following global cumulative quantities: +by various "output commands"_Howto_output.html. The vector values are +the following global cumulative quantities: 1 = translation attempts 2 = translation successes diff --git a/doc/src/fix_gld.txt b/doc/src/fix_gld.txt index 1425f62e13..06ac5d68cb 100644 --- a/doc/src/fix_gld.txt +++ b/doc/src/fix_gld.txt @@ -126,7 +126,7 @@ sense, a restarted simulation should produce the same behavior. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. +access by various "output commands"_Howto_output.html. This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_gle.txt b/doc/src/fix_gle.txt index 6568060f0c..d91dd8dee9 100644 --- a/doc/src/fix_gle.txt +++ b/doc/src/fix_gle.txt @@ -116,9 +116,9 @@ system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". [Restrictions:] diff --git a/doc/src/fix_gravity.txt b/doc/src/fix_gravity.txt index f39955d4f8..786f145608 100644 --- a/doc/src/fix_gravity.txt +++ b/doc/src/fix_gravity.txt @@ -124,11 +124,11 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. This scalar is the -gravitational potential energy of the particles in the defined field, -namely mass * (g dot x) for each particles, where x and mass are the -particles position and mass, and g is the gravitational field. The -scalar value calculated by this fix is "extensive". +"output commands"_Howto_output.html. This scalar is the gravitational +potential energy of the particles in the defined field, namely mass * +(g dot x) for each particles, where x and mass are the particles +position and mass, and g is the gravitational field. The scalar value +calculated by this fix is "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_halt.txt b/doc/src/fix_halt.txt index 08043eb5fb..55f313e40f 100644 --- a/doc/src/fix_halt.txt +++ b/doc/src/fix_halt.txt @@ -133,10 +133,10 @@ files. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_heat.txt b/doc/src/fix_heat.txt index 23db87dac2..a0e9b945fc 100644 --- a/doc/src/fix_heat.txt +++ b/doc/src/fix_heat.txt @@ -108,12 +108,11 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. This scalar is the -most recent value by which velocites were scaled. The scalar value -calculated by this fix is "intensive". If {eflux} is specified as -an atom-style variable, this fix computes the average value by which -the velocities were scaled for all of the atoms that had their -velocities scaled. +"output commands"_Howto_output.html. This scalar is the most recent +value by which velocites were scaled. The scalar value calculated by +this fix is "intensive". If {eflux} is specified as an atom-style +variable, this fix computes the average value by which the velocities +were scaled for all of the atoms that had their velocities scaled. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_imd.txt b/doc/src/fix_imd.txt index b275612819..1a1f11c2cf 100644 --- a/doc/src/fix_imd.txt +++ b/doc/src/fix_imd.txt @@ -136,9 +136,9 @@ No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global scalar or vector or per-atom quantities are stored by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +commands"_Howto_output.html. No parameter of this fix can be used +with the {start/stop} keywords of the "run"_run.html command. This +fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_indent.txt b/doc/src/fix_indent.txt index c9a791ae4e..1f67c0b242 100644 --- a/doc/src/fix_indent.txt +++ b/doc/src/fix_indent.txt @@ -180,8 +180,8 @@ integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar energy and a global 3-vector of forces (on the indenter), which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar and vector values -calculated by this fix are "extensive". +commands"_Howto_output.html. The scalar and vector values calculated +by this fix are "extensive". The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. Note that if you diff --git a/doc/src/fix_langevin.txt b/doc/src/fix_langevin.txt index 6ab236e572..769b188604 100644 --- a/doc/src/fix_langevin.txt +++ b/doc/src/fix_langevin.txt @@ -101,7 +101,7 @@ should not normally be used on atoms that also have their temperature controlled by another fix - e.g. by "fix nvt"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for +See the "Howto thermostat"_Howto_thermostat.html doc page for a discussion of different ways to compute temperature and perform thermostatting. @@ -305,10 +305,10 @@ output"_thermo_style.html. Note that use of this option requires setting the {tally} keyword to {yes}. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". Note that calculation of this -quantity requires setting the {tally} keyword to {yes}. +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". Note that calculation of this quantity requires +setting the {tally} keyword to {yes}. This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_langevin_drude.txt b/doc/src/fix_langevin_drude.txt index c85ff24c96..bda8ec7881 100644 --- a/doc/src/fix_langevin_drude.txt +++ b/doc/src/fix_langevin_drude.txt @@ -44,8 +44,9 @@ fix 1 all langevin/drude 298.15 100.0 19377 5.0 10.0 83451 zero yes :pre Apply two Langevin thermostats as described in "(Jiang)"_#Jiang1 for thermalizing the reduced degrees of freedom of Drude oscillators. This link describes how to use the "thermalized Drude oscillator -model"_tutorial_drude.html in LAMMPS and polarizable models in LAMMPS -are discussed in "this Section"_Section_howto.html#howto_25. +model"_Howto_drude.html in LAMMPS and polarizable models in LAMMPS +are discussed on the "Howto polarizable"_Howto_polarizable.html doc +page. Drude oscillators are a way to simulate polarizables atoms, by splitting them into a core and a Drude particle bound by a harmonic @@ -99,8 +100,8 @@ Likewise, this fix should not normally be used on atoms that also have their temperature controlled by another fix - e.g. by "fix nvt"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostating. :line diff --git a/doc/src/fix_langevin_eff.txt b/doc/src/fix_langevin_eff.txt index 4a50bfae54..ef22e99bcf 100644 --- a/doc/src/fix_langevin_eff.txt +++ b/doc/src/fix_langevin_eff.txt @@ -79,10 +79,10 @@ output"_thermo_style.html. Note that use of this option requires setting the {tally} keyword to {yes}. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". Note that calculation of this -quantity requires setting the {tally} keyword to {yes}. +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". Note that calculation of this quantity requires +setting the {tally} keyword to {yes}. This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_latte.txt b/doc/src/fix_latte.txt index 4edd610546..4f7e99dea8 100644 --- a/doc/src/fix_latte.txt +++ b/doc/src/fix_latte.txt @@ -118,9 +118,9 @@ of "thermodynamic output"_thermo_style.html. The default is {virial yes} This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -potential energy discussed above. The scalar value calculated by this -fix is "extensive". +"output commands"_Howto_output.html. The scalar is the potential +energy discussed above. The scalar value calculated by this fix is +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_lb_fluid.txt b/doc/src/fix_lb_fluid.txt index fc6203b0f2..925ca991c4 100644 --- a/doc/src/fix_lb_fluid.txt +++ b/doc/src/fix_lb_fluid.txt @@ -299,9 +299,9 @@ is written to the main LAMMPS "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_lb_momentum.txt b/doc/src/fix_lb_momentum.txt index 97965e870d..78a1f497eb 100644 --- a/doc/src/fix_lb_momentum.txt +++ b/doc/src/fix_lb_momentum.txt @@ -49,10 +49,10 @@ dimension. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can be -used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_lb_pc.txt b/doc/src/fix_lb_pc.txt index d2b6aafaab..f93d02f677 100644 --- a/doc/src/fix_lb_pc.txt +++ b/doc/src/fix_lb_pc.txt @@ -34,10 +34,10 @@ algorithm if the force coupling constant has been set by default. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can be -used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_lb_rigid_pc_sphere.txt b/doc/src/fix_lb_rigid_pc_sphere.txt index 468ebe1ff5..50e91df849 100644 --- a/doc/src/fix_lb_rigid_pc_sphere.txt +++ b/doc/src/fix_lb_rigid_pc_sphere.txt @@ -80,12 +80,12 @@ assumes the constituent atoms are point particles); see No information about the {rigid} and {rigid/nve} fixes are written to "binary restart files"_restart.html. -Similar to the "fix rigid"_fix_rigid.html command: The rigid -fix computes a global scalar which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar value calculated by -these fixes is "intensive". The scalar is the current temperature of -the collection of rigid bodies. This is averaged over all rigid -bodies and their translational and rotational degrees of freedom. The +Similar to the "fix rigid"_fix_rigid.html command: The rigid fix +computes a global scalar which can be accessed by various "output +commands"_Howto_output.html. The scalar value calculated by these +fixes is "intensive". The scalar is the current temperature of the +collection of rigid bodies. This is averaged over all rigid bodies +and their translational and rotational degrees of freedom. The translational energy of a rigid body is 1/2 m v^2, where m = total mass of the body and v = the velocity of its center of mass. The rotational energy of a rigid body is 1/2 I w^2, where I = the moment @@ -94,17 +94,17 @@ of freedom constrained by the {force} and {torque} keywords are removed from this calculation. All of these fixes compute a global array of values which can be -accessed by various "output commands"_Section_howto.html#howto_15. -The number of rows in the array is equal to the number of rigid -bodies. The number of columns is 15. Thus for each rigid body, 15 -values are stored: the xyz coords of the center of mass (COM), the xyz -components of the COM velocity, the xyz components of the force acting -on the COM, the xyz components of the torque acting on the COM, and -the xyz image flags of the COM, which have the same meaning as image -flags for atom positions (see the "dump" command). The force and -torque values in the array are not affected by the {force} and -{torque} keywords in the fix rigid command; they reflect values before -any changes are made by those keywords. +accessed by various "output commands"_Howto_output.html. The number +of rows in the array is equal to the number of rigid bodies. The +number of columns is 15. Thus for each rigid body, 15 values are +stored: the xyz coords of the center of mass (COM), the xyz components +of the COM velocity, the xyz components of the force acting on the +COM, the xyz components of the torque acting on the COM, and the xyz +image flags of the COM, which have the same meaning as image flags for +atom positions (see the "dump" command). The force and torque values +in the array are not affected by the {force} and {torque} keywords in +the fix rigid command; they reflect values before any changes are made +by those keywords. The ordering of the rigid bodies (by row in the array) is as follows. For the {single} keyword there is just one rigid body. For the diff --git a/doc/src/fix_lb_viscous.txt b/doc/src/fix_lb_viscous.txt index fcc69d2b43..27f089496e 100644 --- a/doc/src/fix_lb_viscous.txt +++ b/doc/src/fix_lb_viscous.txt @@ -57,9 +57,9 @@ As described in the "fix viscous"_fix_viscous.html documentation: "No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. This fix should only diff --git a/doc/src/fix_lineforce.txt b/doc/src/fix_lineforce.txt index 65672fc5a5..ad651862f6 100644 --- a/doc/src/fix_lineforce.txt +++ b/doc/src/fix_lineforce.txt @@ -35,9 +35,9 @@ it should continue to move along the line thereafter. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. diff --git a/doc/src/fix_manifoldforce.txt b/doc/src/fix_manifoldforce.txt index 5fc25167a7..fe8a04051b 100644 --- a/doc/src/fix_manifoldforce.txt +++ b/doc/src/fix_manifoldforce.txt @@ -36,10 +36,10 @@ I have found that only {hftn} and {quickmin} with a very small time step perform No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is invoked during "energy +minimization"_minimize.html. :line diff --git a/doc/src/fix_meso.txt b/doc/src/fix_meso.txt index 85f5838dd2..95f58bedaa 100644 --- a/doc/src/fix_meso.txt +++ b/doc/src/fix_meso.txt @@ -34,10 +34,10 @@ LAMMPS. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_meso_stationary.txt b/doc/src/fix_meso_stationary.txt index 5b83573bc8..3b197c079f 100644 --- a/doc/src/fix_meso_stationary.txt +++ b/doc/src/fix_meso_stationary.txt @@ -35,10 +35,10 @@ LAMMPS. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_momentum.txt b/doc/src/fix_momentum.txt index aa5199ac14..28fd2addf2 100644 --- a/doc/src/fix_momentum.txt +++ b/doc/src/fix_momentum.txt @@ -83,10 +83,10 @@ instructions on how to use the accelerated styles effectively. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_move.txt b/doc/src/fix_move.txt index 7cb40ad132..9a1d25b623 100644 --- a/doc/src/fix_move.txt +++ b/doc/src/fix_move.txt @@ -203,10 +203,9 @@ None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a per-atom array which can be accessed by various -"output commands"_Section_howto.html#howto_15. The number of columns -for each atom is 3, and the columns store the original unwrapped x,y,z -coords of each atom. The per-atom values can be accessed on any -timestep. +"output commands"_Howto_output.html. The number of columns for each +atom is 3, and the columns store the original unwrapped x,y,z coords +of each atom. The per-atom values can be accessed on any timestep. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_msst.txt b/doc/src/fix_msst.txt index 310692669a..d79b549580 100644 --- a/doc/src/fix_msst.txt +++ b/doc/src/fix_msst.txt @@ -156,8 +156,8 @@ thermo_style custom step temp ke pe lz pzz etotal v_dhug v_dray v_lgr_vel v_ These fixes compute a global scalar and a global vector of 4 quantities, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar values calculated -by this fix are "extensive"; the vector values are "intensive". +commands"_Howto_output.html. The scalar values calculated by this fix +are "extensive"; the vector values are "intensive". [Restrictions:] diff --git a/doc/src/fix_mvv_dpd.txt b/doc/src/fix_mvv_dpd.txt index fb3c6fe888..7a07642c54 100644 --- a/doc/src/fix_mvv_dpd.txt +++ b/doc/src/fix_mvv_dpd.txt @@ -69,10 +69,10 @@ addition to position and velocity, and must be used with the No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_neb.txt b/doc/src/fix_neb.txt index 5d18c39d99..5cfefbf819 100644 --- a/doc/src/fix_neb.txt +++ b/doc/src/fix_neb.txt @@ -43,9 +43,9 @@ Add nudging forces to atoms in the group for a multi-replica simulation run via the "neb"_neb.html command to perform a nudged elastic band (NEB) calculation for finding the transition state. Hi-level explanations of NEB are given with the "neb"_neb.html command -and in "Section_howto 5"_Section_howto.html#howto_5 of the manual. -The fix neb command must be used with the "neb" command and defines -how inter-replica nudging forces are computed. A NEB calculation is +and on the "Howto replica"_Howto_replica.html doc page. The fix neb +command must be used with the "neb" command and defines how +inter-replica nudging forces are computed. A NEB calculation is divided in two stages. In the first stage n replicas are relaxed toward a MEP until convergence. In the second stage, the climbing image scheme (see "(Henkelman2)"_#Henkelman2) is enabled, so that the @@ -192,9 +192,9 @@ target energy. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, as invoked by the "minimize"_minimize.html command via the diff --git a/doc/src/fix_nh.txt b/doc/src/fix_nh.txt index e3a39c6bc6..d18f4a3e16 100644 --- a/doc/src/fix_nh.txt +++ b/doc/src/fix_nh.txt @@ -386,9 +386,10 @@ have their temperature controlled by another fix - e.g. by "fix langevin"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform -thermostatting and barostatting. +See the "Howto thermostat"_Howto_thermostat.html and "Howto +barostat"_Howto_barostat.html doc pages for a discussion of different +ways to compute temperature and perform thermostatting and +barostatting. :line @@ -537,9 +538,9 @@ and barostatting to the system's potential energy as part of "thermodynamic output"_thermo_style.html. These fixes compute a global scalar and a global vector of quantities, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar value calculated by -these fixes is "extensive"; the vector values are "intensive". +which can be accessed by various "output commands"_Howto_output.html. +The scalar value calculated by these fixes is "extensive"; the vector +values are "intensive". The scalar is the cumulative energy change due to the fix. diff --git a/doc/src/fix_nphug.txt b/doc/src/fix_nphug.txt index 4f696e9590..1276a5697d 100644 --- a/doc/src/fix_nphug.txt +++ b/doc/src/fix_nphug.txt @@ -192,9 +192,9 @@ included in the definition of internal energy E when calculating the value of Delta in the above equation. These fixes compute a global scalar and a global vector of quantities, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar value calculated by -these fixes is "extensive"; the vector values are "intensive". +which can be accessed by various "output commands"_Howto_output.html. +The scalar value calculated by these fixes is "extensive"; the vector +values are "intensive". The scalar is the cumulative energy change due to the fix. diff --git a/doc/src/fix_nve.txt b/doc/src/fix_nve.txt index ac9cb53b50..8aa4197a60 100644 --- a/doc/src/fix_nve.txt +++ b/doc/src/fix_nve.txt @@ -58,10 +58,10 @@ instructions on how to use the accelerated styles effectively. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_nve_asphere.txt b/doc/src/fix_nve_asphere.txt index 5be7a7aa68..b9ee48f9dd 100644 --- a/doc/src/fix_nve_asphere.txt +++ b/doc/src/fix_nve_asphere.txt @@ -35,10 +35,10 @@ assumes point particles and only updates their position and velocity. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. :line diff --git a/doc/src/fix_nve_asphere_noforce.txt b/doc/src/fix_nve_asphere_noforce.txt index 5f1b271546..164e3db104 100644 --- a/doc/src/fix_nve_asphere_noforce.txt +++ b/doc/src/fix_nve_asphere_noforce.txt @@ -38,10 +38,10 @@ Dynamics, since the velocity and angular momentum are updated by the No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nve_body.txt b/doc/src/fix_nve_body.txt index 604b5391cd..3696425374 100644 --- a/doc/src/fix_nve_body.txt +++ b/doc/src/fix_nve_body.txt @@ -24,9 +24,9 @@ fix 1 all nve/body :pre Perform constant NVE integration to update position, velocity, orientation, and angular velocity for body particles in the group each timestep. V is volume; E is energy. This creates a system trajectory -consistent with the microcanonical ensemble. See "Section -6.14"_Section_howto.html#howto_14 of the manual and the "body"_body.html -doc page for more details on using body particles. +consistent with the microcanonical ensemble. See the "Howto +body"_Howto_body.html doc page for more details on using body +particles. This fix differs from the "fix nve"_fix_nve.html command, which assumes point particles and only updates their position and velocity. @@ -36,10 +36,10 @@ assumes point particles and only updates their position and velocity. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nve_eff.txt b/doc/src/fix_nve_eff.txt index 156f184dac..608e5e12ad 100644 --- a/doc/src/fix_nve_eff.txt +++ b/doc/src/fix_nve_eff.txt @@ -35,10 +35,10 @@ of electrons are also updated. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nve_limit.txt b/doc/src/fix_nve_limit.txt index 2ecec83e9c..ffaffd59b7 100644 --- a/doc/src/fix_nve_limit.txt +++ b/doc/src/fix_nve_limit.txt @@ -63,14 +63,14 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -count of how many updates of atom's velocity/position were limited by -the maximum distance criterion. This should be roughly the number of -atoms so affected, except that updates occur at both the beginning and -end of a timestep in a velocity Verlet timestepping algorithm. This -is a cumulative quantity for the current run, but is re-initialized to -zero each time a run is performed. The scalar value calculated by -this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the count of how +many updates of atom's velocity/position were limited by the maximum +distance criterion. This should be roughly the number of atoms so +affected, except that updates occur at both the beginning and end of a +timestep in a velocity Verlet timestepping algorithm. This is a +cumulative quantity for the current run, but is re-initialized to zero +each time a run is performed. The scalar value calculated by this fix +is "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_nve_line.txt b/doc/src/fix_nve_line.txt index ac5206aa5c..a919e648e1 100644 --- a/doc/src/fix_nve_line.txt +++ b/doc/src/fix_nve_line.txt @@ -24,9 +24,9 @@ fix 1 all nve/line :pre Perform constant NVE integration to update position, velocity, orientation, and angular velocity for line segment particles in the group each timestep. V is volume; E is energy. This creates a system -trajectory consistent with the microcanonical ensemble. See -"Section 6.14"_Section_howto.html#howto_14 of the manual for an -overview of using line segment particles. +trajectory consistent with the microcanonical ensemble. See "Howto +spherical"_Howto_spherical.html doc page for an overview of using line +segment particles. This fix differs from the "fix nve"_fix_nve.html command, which assumes point particles and only updates their position and velocity. @@ -36,10 +36,10 @@ assumes point particles and only updates their position and velocity. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nve_manifold_rattle.txt b/doc/src/fix_nve_manifold_rattle.txt index e032a7e1cc..89922ea80d 100644 --- a/doc/src/fix_nve_manifold_rattle.txt +++ b/doc/src/fix_nve_manifold_rattle.txt @@ -40,7 +40,7 @@ the dynamics of particles constrained to curved surfaces can be studied. If combined with "fix langevin"_fix_langevin.html, this generates Brownian motion of particles constrained to a curved surface. For a list of currently supported manifolds and their -parameters, see "manifolds"_manifolds.html. +parameters, see the "Howto manifold"_Howto_manifold.html doc page. Note that the particles must initially be close to the manifold in question. If not, RATTLE will not be able to iterate until the @@ -68,10 +68,10 @@ conserved. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. :line diff --git a/doc/src/fix_nve_noforce.txt b/doc/src/fix_nve_noforce.txt index a0dbcc80f1..c1a4f76eaf 100644 --- a/doc/src/fix_nve_noforce.txt +++ b/doc/src/fix_nve_noforce.txt @@ -40,10 +40,10 @@ fcm() group function to compute the total force on the group of atoms. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_nve_sphere.txt b/doc/src/fix_nve_sphere.txt index cfe73a854d..36c4178de9 100644 --- a/doc/src/fix_nve_sphere.txt +++ b/doc/src/fix_nve_sphere.txt @@ -89,10 +89,10 @@ instructions on how to use the accelerated styles effectively. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nve_tri.txt b/doc/src/fix_nve_tri.txt index cee27e2fa4..9c03eb872a 100644 --- a/doc/src/fix_nve_tri.txt +++ b/doc/src/fix_nve_tri.txt @@ -23,10 +23,10 @@ fix 1 all nve/tri :pre Perform constant NVE integration to update position, velocity, orientation, and angular momentum for triangular particles in the -group each timestep. V is volume; E is energy. This creates a -system trajectory consistent with the microcanonical ensemble. See -"Section 6.14"_Section_howto.html#howto_14 of the manual for an -overview of using triangular particles. +group each timestep. V is volume; E is energy. This creates a system +trajectory consistent with the microcanonical ensemble. See the +"Howto spherical"_Howto_spherical.html doc page for an overview of +using triangular particles. This fix differs from the "fix nve"_fix_nve.html command, which assumes point particles and only updates their position and velocity. @@ -36,10 +36,10 @@ assumes point particles and only updates their position and velocity. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nvk.txt b/doc/src/fix_nvk.txt index 49fd8217ab..2106ee5235 100644 --- a/doc/src/fix_nvk.txt +++ b/doc/src/fix_nvk.txt @@ -42,10 +42,10 @@ energy prior to this fix. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nvt_manifold_rattle.txt b/doc/src/fix_nvt_manifold_rattle.txt index a620648a46..4261f9a4db 100644 --- a/doc/src/fix_nvt_manifold_rattle.txt +++ b/doc/src/fix_nvt_manifold_rattle.txt @@ -37,9 +37,13 @@ fix 1 all nvt/manifold/rattle 1e-4 10 cylinder 3.0 temp 1.0 1.0 10.0 [Description:] -This fix combines the RATTLE-based "(Andersen)"_#Andersen2 time integrator of "fix nve/manifold/rattle"_fix_nve_manifold_rattle.html "(Paquay)"_#Paquay3 with a Nose-Hoover-chain thermostat to sample the -canonical ensemble of particles constrained to a curved surface (manifold). This sampling does suffer from discretization bias of O(dt). -For a list of currently supported manifolds and their parameters, see "manifolds"_manifolds.html +This fix combines the RATTLE-based "(Andersen)"_#Andersen2 time +integrator of "fix nve/manifold/rattle"_fix_nve_manifold_rattle.html +"(Paquay)"_#Paquay3 with a Nose-Hoover-chain thermostat to sample the +canonical ensemble of particles constrained to a curved surface +(manifold). This sampling does suffer from discretization bias of +O(dt). For a list of currently supported manifolds and their +parameters, see the "Howto manifold"_Howto_manifold.html doc page. :line @@ -48,10 +52,10 @@ For a list of currently supported manifolds and their parameters, see "manifolds No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. :line diff --git a/doc/src/fix_oneway.txt b/doc/src/fix_oneway.txt index 2d85c581eb..d9217ab14b 100644 --- a/doc/src/fix_oneway.txt +++ b/doc/src/fix_oneway.txt @@ -43,10 +43,10 @@ membrane, or as an implementation of Maxwell's demon. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_orient.txt b/doc/src/fix_orient.txt index 20ff94866e..c57cccd322 100644 --- a/doc/src/fix_orient.txt +++ b/doc/src/fix_orient.txt @@ -135,14 +135,14 @@ fixes. This allows to set at which level of the "r-RESPA"_run_style.html integrator a fix is adding its forces. Default is the outermost level. This fix calculates a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -potential energy change due to this fix. The scalar value calculated -by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the potential +energy change due to this fix. The scalar value calculated by this +fix is "extensive". This fix also calculates a per-atom array which can be accessed by -various "output commands"_Section_howto.html#howto_15. The array -stores the order parameter Xi and normalized order parameter (0 to 1) -for each atom. The per-atom values can be accessed on any timestep. +various "output commands"_Howto_output.html. The array stores the +order parameter Xi and normalized order parameter (0 to 1) for each +atom. The per-atom values can be accessed on any timestep. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_phonon.txt b/doc/src/fix_phonon.txt index aad6c2bfaa..63df4e6801 100644 --- a/doc/src/fix_phonon.txt +++ b/doc/src/fix_phonon.txt @@ -150,7 +150,7 @@ fix. You can use it to change the temperature compute from thermo_temp to the one that reflects the true temperature of atoms in the group. No global scalar or vector or per-atom quantities are stored by this -fix for access by various "output commands"_Section_howto.html#howto_15. +fix for access by various "output commands"_Howto_output.html. Instead, this fix outputs its initialization information (including mapping information) and the calculated dynamical matrices to the file diff --git a/doc/src/fix_pimd.txt b/doc/src/fix_pimd.txt index 38022e4c7d..8958063d2e 100644 --- a/doc/src/fix_pimd.txt +++ b/doc/src/fix_pimd.txt @@ -103,14 +103,13 @@ is appropriate for most situations. The PIMD algorithm in LAMMPS is implemented as a hyper-parallel scheme as described in "(Calhoun)"_#Calhoun. In LAMMPS this is done by using -"multi-replica feature"_Section_howto.html#howto_5 in LAMMPS, where -each quasi-particle system is stored and simulated on a separate -partition of processors. The following diagram illustrates this -approach. The original system with 2 ring polymers is shown in red. -Since each ring has 4 quasi-beads (imaginary time slices), there are 4 -replicas of the system, each running on one of the 4 partitions of -processors. Each replica (shown in green) owns one quasi-bead in each -ring. +"multi-replica feature"_Howto_replica.html in LAMMPS, where each +quasi-particle system is stored and simulated on a separate partition +of processors. The following diagram illustrates this approach. The +original system with 2 ring polymers is shown in red. Since each ring +has 4 quasi-beads (imaginary time slices), there are 4 replicas of the +system, each running on one of the 4 partitions of processors. Each +replica (shown in green) owns one quasi-bead in each ring. :c,image(JPG/pimd.jpg) diff --git a/doc/src/fix_planeforce.txt b/doc/src/fix_planeforce.txt index 67956c8b6d..4a74301066 100644 --- a/doc/src/fix_planeforce.txt +++ b/doc/src/fix_planeforce.txt @@ -35,9 +35,9 @@ should continue to move in the plane thereafter. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. diff --git a/doc/src/fix_poems.txt b/doc/src/fix_poems.txt index 03abc058b8..0690923b45 100644 --- a/doc/src/fix_poems.txt +++ b/doc/src/fix_poems.txt @@ -114,9 +114,9 @@ early or late in a timestep, i.e. at the post-force stage or at the final-integrate stage, respectively. No global or per-atom quantities are stored by this fix for access by -various "output commands"_Section_howto.html#howto_15. No parameter -of this fix can be used with the {start/stop} keywords of the -"run"_run.html command. This fix is not invoked during "energy +various "output commands"_Howto_output.html. No parameter of this fix +can be used with the {start/stop} keywords of the "run"_run.html +command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_pour.txt b/doc/src/fix_pour.txt index 54f78287e0..4b86405522 100644 --- a/doc/src/fix_pour.txt +++ b/doc/src/fix_pour.txt @@ -237,9 +237,9 @@ appropriately. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_precession_spin.txt b/doc/src/fix_precession_spin.txt index 4133d7dd57..bc18fa0e8c 100644 --- a/doc/src/fix_precession_spin.txt +++ b/doc/src/fix_precession_spin.txt @@ -67,8 +67,8 @@ to add this magnetic potential energy to the potential energy of the system, fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 fix_modify 1 energy yes :pre -This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. +This fix computes a global scalar which can be accessed by various +"output commands"_Howto_output.html. No information about this fix is written to "binary restart files"_restart.html. diff --git a/doc/src/fix_press_berendsen.txt b/doc/src/fix_press_berendsen.txt index 9c9da8ec7b..0e41abd1f8 100644 --- a/doc/src/fix_press_berendsen.txt +++ b/doc/src/fix_press_berendsen.txt @@ -58,9 +58,8 @@ to control the temperature, such as "fix nvt"_fix_nh.html or "fix langevin"_fix_langevin.html or "fix temp/berendsen"_fix_temp_berendsen.html. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform -thermostatting and barostatting. +See the "Howto baroostat"_Howto_barostat.html doc page for a +discussion of different ways to perform barostatting. :line @@ -196,7 +195,7 @@ pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms. No global or per-atom quantities are stored by this fix for access by -various "output commands"_Section_howto.html#howto_15. +various "output commands"_Howto_output.html. This fix can ramp its target pressure over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_print.txt b/doc/src/fix_print.txt index cf3b542833..f7a7b333c4 100644 --- a/doc/src/fix_print.txt +++ b/doc/src/fix_print.txt @@ -73,10 +73,10 @@ where ID is replaced with the fix-ID. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_property_atom.txt b/doc/src/fix_property_atom.txt index 95fc2c424d..624fc5f7df 100644 --- a/doc/src/fix_property_atom.txt +++ b/doc/src/fix_property_atom.txt @@ -200,18 +200,17 @@ added classes. :line -:link(isotopes) -Example for using per-atom masses with TIP4P water to study isotope -effects. When setting up simulations with the "TIP4P pair -styles"_Section_howto.html#howto_8 for water, you have to provide -exactly one atom type each to identify the water oxygen and hydrogen +:link(isotopes) Example for using per-atom masses with TIP4P water to +study isotope effects. When setting up simulations with the "TIP4P +pair styles"_Howto_tip4p.html for water, you have to provide exactly +one atom type each to identify the water oxygen and hydrogen atoms. Since the atom mass is normally tied to the atom type, this makes it impossible to study multiple isotopes in the same simulation. With {fix property/atom rmass} however, the per-type masses are replaced by per-atom masses. Asumming you have a working input deck -for regular TIP4P water, where water oxygen is atom type 1 and -water hydrogen is atom type 2, the following lines of input script -convert this to using per-atom masses: +for regular TIP4P water, where water oxygen is atom type 1 and water +hydrogen is atom type 2, the following lines of input script convert +this to using per-atom masses: fix Isotopes all property/atom rmass ghost yes set type 1 mass 15.9994 @@ -247,12 +246,12 @@ command for info on how to re-specify a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. -None of the "fix_modify"_fix_modify.html options -are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +None of the "fix_modify"_fix_modify.html options are relevant to this +fix. No global or per-atom quantities are stored by this fix for +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_python_move.txt b/doc/src/fix_python_move.txt index f10f607a9b..2f49427a9e 100644 --- a/doc/src/fix_python_move.txt +++ b/doc/src/fix_python_move.txt @@ -83,10 +83,10 @@ Examples for how to do this are in the {examples/python} folder. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_qbmsst.txt b/doc/src/fix_qbmsst.txt index 2c116fb0f8..56ace85e57 100644 --- a/doc/src/fix_qbmsst.txt +++ b/doc/src/fix_qbmsst.txt @@ -179,10 +179,10 @@ thermo_style custom step temp ke pe lz pzz etotal v_dhug v_dray v_lgr_vel v_ The global scalar under the entry f_fix_id is the quantity of thermo energy as an extra part of etot. This global scalar and the vector of 5 quantities can be accessed by various "output -commands"_Section_howto.html#howto_15. It is worth noting that the -temp keyword under the "thermo_style"_thermo_style.html command print -the instantaneous classical temperature Tcl as -described in the command "fix qtb"_fix_qtb.html. +commands"_Howto_output.html. It is worth noting that the temp keyword +under the "thermo_style"_thermo_style.html command print the +instantaneous classical temperature Tcl as described +in the command "fix qtb"_fix_qtb.html. :line diff --git a/doc/src/fix_qeq.txt b/doc/src/fix_qeq.txt index 194361e990..c142d4a06d 100644 --- a/doc/src/fix_qeq.txt +++ b/doc/src/fix_qeq.txt @@ -179,9 +179,8 @@ parameters. See the examples/qeq directory for some examples. No information about these fixes is written to "binary restart files"_restart.html. No global scalar or vector or per-atom quantities are stored by these fixes for access by various "output -commands"_Section_howto.html#howto_15. No parameter of these fixes -can be used with the {start/stop} keywords of the "run"_run.html -command. +commands"_Howto_output.html. No parameter of these fixes can be used +with the {start/stop} keywords of the "run"_run.html command. Thexe fixes are invoked during "energy minimization"_minimize.html. diff --git a/doc/src/fix_qeq_comb.txt b/doc/src/fix_qeq_comb.txt index 783dc3133c..0eb38fcae6 100644 --- a/doc/src/fix_qeq_comb.txt +++ b/doc/src/fix_qeq_comb.txt @@ -92,9 +92,9 @@ integrator the fix is performing charge equilibration. Default is the outermost level. This fix produces a per-atom vector which can be accessed by various -"output commands"_Section_howto.html#howto_15. The vector stores the -gradient of the charge on each atom. The per-atom values be accessed -on any timestep. +"output commands"_Howto_output.html. The vector stores the gradient +of the charge on each atom. The per-atom values be accessed on any +timestep. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_qeq_reax.txt b/doc/src/fix_qeq_reax.txt index a534a66c09..ea25ddbf57 100644 --- a/doc/src/fix_qeq_reax.txt +++ b/doc/src/fix_qeq_reax.txt @@ -70,8 +70,8 @@ the {qeq/reax/omp} style. Otherwise they are processed separately. No information about this fix is written to "binary restart files"_restart.html. No global scalar or vector or per-atom quantities are stored by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +commands"_Howto_output.html. No parameter of this fix can be used +with the {start/stop} keywords of the "run"_run.html command. This fix is invoked during "energy minimization"_minimize.html. diff --git a/doc/src/fix_qmmm.txt b/doc/src/fix_qmmm.txt index 1b4a850a42..5e730ac8af 100644 --- a/doc/src/fix_qmmm.txt +++ b/doc/src/fix_qmmm.txt @@ -46,9 +46,9 @@ No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global scalar or vector or per-atom quantities are stored by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +commands"_Howto_output.html. No parameter of this fix can be used +with the {start/stop} keywords of the "run"_run.html command. This +fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_reax_bonds.txt b/doc/src/fix_reax_bonds.txt index 50f0b77d52..2f7c38f815 100644 --- a/doc/src/fix_reax_bonds.txt +++ b/doc/src/fix_reax_bonds.txt @@ -62,10 +62,10 @@ version, but will also take longer to write. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. :line diff --git a/doc/src/fix_reaxc_species.txt b/doc/src/fix_reaxc_species.txt index 75e4598ca5..4f1249744f 100644 --- a/doc/src/fix_reaxc_species.txt +++ b/doc/src/fix_reaxc_species.txt @@ -116,8 +116,8 @@ are relevant to this fix. This fix computes both a global vector of length 2 and a per-atom vector, either of which can be accessed by various "output -commands"_Section_howto.html#howto_15. The values in the global -vector are "intensive". +commands"_Howto_output.html. The values in the global vector are +"intensive". The 2 values in the global vector are as follows: diff --git a/doc/src/fix_recenter.txt b/doc/src/fix_recenter.txt index 342bed4251..a2477d11c7 100644 --- a/doc/src/fix_recenter.txt +++ b/doc/src/fix_recenter.txt @@ -94,13 +94,13 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -distance the group is moved by fix recenter. +"output commands"_Howto_output.html. The scalar is the distance the +group is moved by fix recenter. This fix also computes global 3-vector which can be accessed by -various "output commands"_Section_howto.html#howto_15. The 3 -quantities in the vector are xyz components of displacement applied to -the group of atoms by the fix. +various "output commands"_Howto_output.html. The 3 quantities in the +vector are xyz components of displacement applied to the group of +atoms by the fix. The scalar and vector values calculated by this fix are "extensive". diff --git a/doc/src/fix_restrain.txt b/doc/src/fix_restrain.txt index 9de63defb7..b8cc7c0d45 100644 --- a/doc/src/fix_restrain.txt +++ b/doc/src/fix_restrain.txt @@ -187,8 +187,8 @@ added forces to be included in the total potential energy of the system (the quantity being minimized), you MUST enable the "fix_modify"_fix_modify.html {energy} option for this fix. -This fix computes a global scalar and a global vector of length 3, which -can be accessed by various "output commands"_Section_howto.html#howto_15. +This fix computes a global scalar and a global vector of length 3, +which can be accessed by various "output commands"_Howto_output.html. The scalar is the total potential energy for {all} the restraints as discussed above. The vector values are the sum of contributions to the following individual categories: diff --git a/doc/src/fix_rigid.txt b/doc/src/fix_rigid.txt index f3dd20daa3..a5f00c16e9 100644 --- a/doc/src/fix_rigid.txt +++ b/doc/src/fix_rigid.txt @@ -745,29 +745,29 @@ computed early or late in a timestep, i.e. at the post-force stage or at the final-integrate stage or the timestep, respectively. The 2 NVE rigid fixes compute a global scalar which can be accessed by -various "output commands"_Section_howto.html#howto_15. The scalar -value calculated by these fixes is "intensive". The scalar is the -current temperature of the collection of rigid bodies. This is -averaged over all rigid bodies and their translational and rotational -degrees of freedom. The translational energy of a rigid body is 1/2 m -v^2, where m = total mass of the body and v = the velocity of its -center of mass. The rotational energy of a rigid body is 1/2 I w^2, -where I = the moment of inertia tensor of the body and w = its angular -velocity. Degrees of freedom constrained by the {force} and {torque} -keywords are removed from this calculation, but only for the {rigid} -and {rigid/nve} fixes. +various "output commands"_Howto_output.html. The scalar value +calculated by these fixes is "intensive". The scalar is the current +temperature of the collection of rigid bodies. This is averaged over +all rigid bodies and their translational and rotational degrees of +freedom. The translational energy of a rigid body is 1/2 m v^2, where +m = total mass of the body and v = the velocity of its center of mass. +The rotational energy of a rigid body is 1/2 I w^2, where I = the +moment of inertia tensor of the body and w = its angular velocity. +Degrees of freedom constrained by the {force} and {torque} keywords +are removed from this calculation, but only for the {rigid} and +{rigid/nve} fixes. The 6 NVT, NPT, NPH rigid fixes compute a global scalar which can be -accessed by various "output commands"_Section_howto.html#howto_15. -The scalar value calculated by these fixes is "extensive". The scalar -is the cumulative energy change due to the thermostatting and -barostatting the fix performs. +accessed by various "output commands"_Howto_output.html. The scalar +value calculated by these fixes is "extensive". The scalar is the +cumulative energy change due to the thermostatting and barostatting +the fix performs. All of the {rigid} styles (not the {rigid/small} styles) compute a global array of values which can be accessed by various "output -commands"_Section_howto.html#howto_15. Similar information about the -bodies defined by the {rigid/small} styles can be accessed via the -"compute rigid/local"_compute_rigid_local.html command. +commands"_Howto_output.html. Similar information about the bodies +defined by the {rigid/small} styles can be accessed via the "compute +rigid/local"_compute_rigid_local.html command. The number of rows in the array is equal to the number of rigid bodies. The number of columns is 15. Thus for each rigid body, 15 diff --git a/doc/src/fix_setforce.txt b/doc/src/fix_setforce.txt index 0af1c92922..c6a01e5492 100644 --- a/doc/src/fix_setforce.txt +++ b/doc/src/fix_setforce.txt @@ -103,10 +103,10 @@ so that setforce values are not counted multiple times. Default is to to override forces at the outermost level. This fix computes a global 3-vector of forces, which can be accessed -by various "output commands"_Section_howto.html#howto_15. This is the -total force on the group of atoms before the forces on individual -atoms are changed by the fix. The vector values calculated by this -fix are "extensive". +by various "output commands"_Howto_output.html. This is the total +force on the group of atoms before the forces on individual atoms are +changed by the fix. The vector values calculated by this fix are +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_shake.txt b/doc/src/fix_shake.txt index 7428b30a14..9297bcc87a 100644 --- a/doc/src/fix_shake.txt +++ b/doc/src/fix_shake.txt @@ -195,10 +195,9 @@ No information about these fixes is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to these fixes. No global or per-atom quantities are stored by these fixes for access by various "output -commands"_Section_howto.html#howto_15. No parameter of these fixes -can be used with the {start/stop} keywords of the "run"_run.html -command. These fixes are not invoked during "energy -minimization"_minimize.html. +commands"_Howto_output.html. No parameter of these fixes can be used +with the {start/stop} keywords of the "run"_run.html command. These +fixes are not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_smd.txt b/doc/src/fix_smd.txt index cb4a40f0fd..e9403b22cc 100644 --- a/doc/src/fix_smd.txt +++ b/doc/src/fix_smd.txt @@ -111,12 +111,12 @@ this fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a vector list of 7 quantities, which can be accessed -by various "output commands"_Section_howto.html#howto_15. The -quantities in the vector are in this order: the x-, y-, and -z-component of the pulling force, the total force in direction of the -pull, the equilibrium distance of the spring, the distance between the -two reference points, and finally the accumulated PMF (the sum of -pulling forces times displacement). +by various "output commands"_Howto_output.html. The quantities in the +vector are in this order: the x-, y-, and z-component of the pulling +force, the total force in direction of the pull, the equilibrium +distance of the spring, the distance between the two reference points, +and finally the accumulated PMF (the sum of pulling forces times +displacement). The force is the total force on the group of atoms by the spring. In the case of the {couple} style, it is the force on the fix group diff --git a/doc/src/fix_smd_setvel.txt b/doc/src/fix_smd_setvel.txt index f93a7d0965..d64726d9b3 100644 --- a/doc/src/fix_smd_setvel.txt +++ b/doc/src/fix_smd_setvel.txt @@ -66,9 +66,9 @@ None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global 3-vector of forces, which can be accessed -by various "output commands"_Section_howto.html#howto_15. This is the -total force on the group of atoms. The vector values calculated by this -fix are "extensive". +by various "output commands"_Howto_output.html. This is the total +force on the group of atoms. The vector values calculated by this fix +are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_spring.txt b/doc/src/fix_spring.txt index 014a43aacc..047e5a6797 100644 --- a/doc/src/fix_spring.txt +++ b/doc/src/fix_spring.txt @@ -105,19 +105,19 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -spring energy = 0.5 * K * r^2. +"output commands"_Howto_output.html. The scalar is the spring energy += 0.5 * K * r^2. This fix also computes global 4-vector which can be accessed by -various "output commands"_Section_howto.html#howto_15. The first 3 -quantities in the vector are xyz components of the total force added -to the group of atoms by the spring. In the case of the {couple} -style, it is the force on the fix group (group-ID) or the negative of -the force on the 2nd group (group-ID2). The 4th quantity in the -vector is the magnitude of the force added by the spring, as a -positive value if (r-R0) > 0 and a negative value if (r-R0) < 0. This -sign convention can be useful when using the spring force to compute a -potential of mean force (PMF). +various "output commands"_Howto_output.html. The first 3 quantities +in the vector are xyz components of the total force added to the group +of atoms by the spring. In the case of the {couple} style, it is the +force on the fix group (group-ID) or the negative of the force on the +2nd group (group-ID2). The 4th quantity in the vector is the +magnitude of the force added by the spring, as a positive value if +(r-R0) > 0 and a negative value if (r-R0) < 0. This sign convention +can be useful when using the spring force to compute a potential of +mean force (PMF). The scalar and vector values calculated by this fix are "extensive". diff --git a/doc/src/fix_spring_chunk.txt b/doc/src/fix_spring_chunk.txt index 7630a009dd..e46f299771 100644 --- a/doc/src/fix_spring_chunk.txt +++ b/doc/src/fix_spring_chunk.txt @@ -60,8 +60,8 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -energy of all the springs, i.e. 0.5 * K * r^2 per-spring. +"output commands"_Howto_output.html. The scalar is the energy of all +the springs, i.e. 0.5 * K * r^2 per-spring. The scalar value calculated by this fix is "extensive". diff --git a/doc/src/fix_spring_rg.txt b/doc/src/fix_spring_rg.txt index bff6b38e7e..4afdc02d5a 100644 --- a/doc/src/fix_spring_rg.txt +++ b/doc/src/fix_spring_rg.txt @@ -51,10 +51,10 @@ the time the fix is specified, and that value is used as the target. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. The "fix_modify"_fix_modify.html {respa} option is supported by this fix. This allows to set at which level of the "r-RESPA"_run_style.html diff --git a/doc/src/fix_spring_self.txt b/doc/src/fix_spring_self.txt index 68961a1512..e5b5c3dfd0 100644 --- a/doc/src/fix_spring_self.txt +++ b/doc/src/fix_spring_self.txt @@ -57,10 +57,10 @@ this fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is an -energy which is the sum of the spring energy for each atom, where the -per-atom energy is 0.5 * K * r^2. The scalar value calculated by this -fix is "extensive". +"output commands"_Howto_output.html. The scalar is an energy which is +the sum of the spring energy for each atom, where the per-atom energy +is 0.5 * K * r^2. The scalar value calculated by this fix is +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_srd.txt b/doc/src/fix_srd.txt index 4e190234fd..7c5179fb3f 100644 --- a/doc/src/fix_srd.txt +++ b/doc/src/fix_srd.txt @@ -341,11 +341,11 @@ are relevant to this fix. This fix tabulates several SRD statistics which are stored in a vector of length 12, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The vector values calculated -by this fix are "intensive", meaning they do not scale with the size -of the simulation. Technically, the first 8 do scale with the size of -the simulation, but treating them as intensive means they are not -scaled when printed as part of thermodynamic output. +commands"_Howto_output.html. The vector values calculated by this fix +are "intensive", meaning they do not scale with the size of the +simulation. Technically, the first 8 do scale with the size of the +simulation, but treating them as intensive means they are not scaled +when printed as part of thermodynamic output. These are the 12 quantities. All are values for the current timestep, except for quantity 5 and the last three, each of which are diff --git a/doc/src/fix_store_force.txt b/doc/src/fix_store_force.txt index c988431f9d..93437c85b6 100644 --- a/doc/src/fix_store_force.txt +++ b/doc/src/fix_store_force.txt @@ -26,7 +26,7 @@ timestep when the fix is invoked, as described below. This is useful for storing forces before constraints or other boundary conditions are computed which modify the forces, so that unmodified forces can be "written to a dump file"_dump.html or accessed by other "output -commands"_Section_howto.html#howto_15 that use per-atom quantities. +commands"_Howto_output.html that use per-atom quantities. This fix is invoked at the point in the velocity-Verlet timestepping immediately after "pair"_pair_style.html, "bond"_bond_style.html, @@ -54,9 +54,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a per-atom array which can be accessed by various -"output commands"_Section_howto.html#howto_15. The number of columns -for each atom is 3, and the columns store the x,y,z forces on each -atom. The per-atom values be accessed on any timestep. +"output commands"_Howto_output.html. The number of columns for each +atom is 3, and the columns store the x,y,z forces on each atom. The +per-atom values be accessed on any timestep. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_store_state.txt b/doc/src/fix_store_state.txt index df694fb97b..dee8070bbd 100644 --- a/doc/src/fix_store_state.txt +++ b/doc/src/fix_store_state.txt @@ -68,8 +68,7 @@ Define a fix that stores attributes for each atom in the group at the time the fix is defined. If {N} is 0, then the values are never updated, so this is a way of archiving an atom attribute at a given time for future use in a calculation or output. See the discussion of -"output commands"_Section_howto.html#howto_15 that take fixes as -inputs. +"output commands"_Howto_output.html that take fixes as inputs. If {N} is not zero, then the attributes will be updated every {N} steps. @@ -108,9 +107,8 @@ fix. If a single input is specified, this fix produces a per-atom vector. If multiple inputs are specified, a per-atom array is produced where the number of columns for each atom is the number of inputs. These -can be accessed by various "output -commands"_Section_howto.html#howto_15. The per-atom values be -accessed on any timestep. +can be accessed by various "output commands"_Howto_output.html. The +per-atom values be accessed on any timestep. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_temp_berendsen.txt b/doc/src/fix_temp_berendsen.txt index 6944860e14..9092bbd30e 100644 --- a/doc/src/fix_temp_berendsen.txt +++ b/doc/src/fix_temp_berendsen.txt @@ -68,8 +68,8 @@ be used on atoms that also have their temperature controlled by another fix - e.g. by "fix nvt"_fix_nh.html or "fix langevin"_fix_langevin.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. This fix computes a temperature each timestep. To do this, the fix @@ -126,9 +126,9 @@ system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_temp_csvr.txt b/doc/src/fix_temp_csvr.txt index 4129ad73c8..6ce6ad7d9d 100644 --- a/doc/src/fix_temp_csvr.txt +++ b/doc/src/fix_temp_csvr.txt @@ -76,8 +76,8 @@ normally be used on atoms that also have their temperature controlled by another fix - e.g. by "fix nvt"_fix_nh.html or "fix langevin"_fix_langevin.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. These fixes compute a temperature each timestep. To do this, the fix @@ -135,9 +135,9 @@ the {start} and {stop} keywords of the "run"_run.html command. See the These fixes are not invoked during "energy minimization"_minimize.html. These fixes compute a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to the fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to the fix. The scalar value calculated by this fix +is "extensive". [Restrictions:] diff --git a/doc/src/fix_temp_rescale.txt b/doc/src/fix_temp_rescale.txt index eff25297c1..89f1777e36 100644 --- a/doc/src/fix_temp_rescale.txt +++ b/doc/src/fix_temp_rescale.txt @@ -75,8 +75,8 @@ be used on atoms that also have their temperature controlled by another fix - e.g. by "fix nvt"_fix_nh.html or "fix langevin"_fix_langevin.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. This fix computes a temperature each timestep. To do this, the fix @@ -133,9 +133,9 @@ system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_temp_rescale_eff.txt b/doc/src/fix_temp_rescale_eff.txt index f87c1a2192..8a79dc3275 100644 --- a/doc/src/fix_temp_rescale_eff.txt +++ b/doc/src/fix_temp_rescale_eff.txt @@ -51,9 +51,9 @@ system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_thermal_conductivity.txt b/doc/src/fix_thermal_conductivity.txt index 0353c095b2..2e10a89738 100644 --- a/doc/src/fix_thermal_conductivity.txt +++ b/doc/src/fix_thermal_conductivity.txt @@ -108,9 +108,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative kinetic energy transferred between the bottom and middle -of the simulation box (in the {edim} direction) is stored as a scalar +"output commands"_Howto_output.html. The scalar is the cumulative +kinetic energy transferred between the bottom and middle of the +simulation box (in the {edim} direction) is stored as a scalar quantity by this fix. This quantity is zeroed when the fix is defined and accumulates thereafter, once every N steps. The units of the quantity are energy; see the "units"_units.html command for details. diff --git a/doc/src/fix_ti_spring.txt b/doc/src/fix_ti_spring.txt index 191f9e7c6b..b116d8e8a3 100644 --- a/doc/src/fix_ti_spring.txt +++ b/doc/src/fix_ti_spring.txt @@ -121,13 +121,12 @@ fix to add the energy stored in the per-atom springs to the system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar and a global vector quantities which -can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar is an energy which -is the sum of the spring energy for each atom, where the per-atom -energy is 0.5 * k * r^2. The vector has 2 positions, the first one is -the coupling parameter lambda and the second one is the time -derivative of lambda. The scalar and vector values calculated by this -fix are "extensive". +can be accessed by various "output commands"_Howto_output.html. The +scalar is an energy which is the sum of the spring energy for each +atom, where the per-atom energy is 0.5 * k * r^2. The vector has 2 +positions, the first one is the coupling parameter lambda and the +second one is the time derivative of lambda. The scalar and vector +values calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_tmd.txt b/doc/src/fix_tmd.txt index 71d8d2c767..e1815e61d3 100644 --- a/doc/src/fix_tmd.txt +++ b/doc/src/fix_tmd.txt @@ -90,8 +90,7 @@ For more information about TMD, see "(Schlitter1)"_#Schlitter1 and No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. +by this fix for access by various "output commands"_Howto_output.html. This fix can ramp its rho parameter over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_ttm.txt b/doc/src/fix_ttm.txt index 48dfd254a0..d83118d427 100644 --- a/doc/src/fix_ttm.txt +++ b/doc/src/fix_ttm.txt @@ -272,18 +272,17 @@ None of the "fix_modify"_fix_modify.html options are relevant to these fixes. Both fixes compute 2 output quantities stored in a vector of length 2, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The first quantity is the -total energy of the electronic subsystem. The second quantity is the -energy transferred from the electronic to the atomic subsystem on that -timestep. Note that the velocity verlet integrator applies the fix ttm -forces to the atomic subsystem as two half-step velocity updates: one -on the current timestep and one on the subsequent timestep. -Consequently, the change in the atomic subsystem energy is lagged by -half a timestep relative to the change in the electronic subsystem -energy. As a result of this, users may notice slight fluctuations in -the sum of the atomic and electronic subsystem energies reported at -the end of the timestep. +which can be accessed by various "output commands"_Howto_output.html. +The first quantity is the total energy of the electronic +subsystem. The second quantity is the energy transferred from the +electronic to the atomic subsystem on that timestep. Note that the +velocity verlet integrator applies the fix ttm forces to the atomic +subsystem as two half-step velocity updates: one on the current +timestep and one on the subsequent timestep. Consequently, the change +in the atomic subsystem energy is lagged by half a timestep relative +to the change in the electronic subsystem energy. As a result of this, +users may notice slight fluctuations in the sum of the atomic and +electronic subsystem energies reported at the end of the timestep. The vector values calculated are "extensive". diff --git a/doc/src/fix_vector.txt b/doc/src/fix_vector.txt index 385d24cff1..69c999fd1a 100644 --- a/doc/src/fix_vector.txt +++ b/doc/src/fix_vector.txt @@ -37,7 +37,7 @@ simply store them. For a single specified value, the values are stored as a global vector of growing length. For multiple specified values, they are stored as rows in a global array, whose number of rows is growing. The resulting vector or array can be used by other -"output commands"_Section_howto.html#howto_15. +"output commands"_Howto_output.html. One way to to use this command is to accumulate a vector that is time-integrated using the "variable trap()"_variable.html function. @@ -127,9 +127,8 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a global vector or global array which can be -accessed by various "output commands"_Section_howto.html#howto_15. -The values can only be accessed on timesteps that are multiples of -{Nevery}. +accessed by various "output commands"_Howto_output.html. The values +can only be accessed on timesteps that are multiples of {Nevery}. A vector is produced if only a single input value is specified. An array is produced if multiple input values are specified. diff --git a/doc/src/fix_viscosity.txt b/doc/src/fix_viscosity.txt index f6603be624..8d73deb7c5 100644 --- a/doc/src/fix_viscosity.txt +++ b/doc/src/fix_viscosity.txt @@ -100,13 +100,12 @@ accurately infer a viscosity and should try increasing the Nevery parameter. An alternative method for calculating a viscosity is to run a NEMD -simulation, as described in "Section -6.13"_Section_howto.html#howto_13 of the manual. NEMD simulations -deform the simulation box via the "fix deform"_fix_deform.html -command. Thus they cannot be run on a charged system using a "PPPM -solver"_kspace_style.html since PPPM does not currently support -non-orthogonal boxes. Using fix viscosity keeps the box orthogonal; -thus it does not suffer from this limitation. +simulation, as described on the "Howto nemd"_Howto_nemd.html doc page. +NEMD simulations deform the simulation box via the "fix +deform"_fix_deform.html command. Thus they cannot be run on a charged +system using a "PPPM solver"_kspace_style.html since PPPM does not +currently support non-orthogonal boxes. Using fix viscosity keeps the +box orthogonal; thus it does not suffer from this limitation. [Restart, fix_modify, output, run start/stop, minimize info:] @@ -115,13 +114,13 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative momentum transferred between the bottom and middle of the -simulation box (in the {pdim} direction) is stored as a scalar -quantity by this fix. This quantity is zeroed when the fix is defined -and accumulates thereafter, once every N steps. The units of the -quantity are momentum = mass*velocity. The scalar value calculated by -this fix is "intensive". +"output commands"_Howto_output.html. The scalar is the cumulative +momentum transferred between the bottom and middle of the simulation +box (in the {pdim} direction) is stored as a scalar quantity by this +fix. This quantity is zeroed when the fix is defined and accumulates +thereafter, once every N steps. The units of the quantity are +momentum = mass*velocity. The scalar value calculated by this fix is +"intensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_viscous.txt b/doc/src/fix_viscous.txt index 9c30e40249..7ff517aec1 100644 --- a/doc/src/fix_viscous.txt +++ b/doc/src/fix_viscous.txt @@ -82,9 +82,9 @@ easily be used as a thermostat. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The "fix_modify"_fix_modify.html {respa} option is supported by this fix. This allows to set at which level of the "r-RESPA"_run_style.html diff --git a/doc/src/fix_wall.txt b/doc/src/fix_wall.txt index 959a103f02..fcd920934f 100644 --- a/doc/src/fix_wall.txt +++ b/doc/src/fix_wall.txt @@ -263,14 +263,14 @@ integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar energy and a global vector of forces, which can be accessed by various "output -commands"_Section_howto.html#howto_15. Note that the scalar energy is -the sum of interactions with all defined walls. If you want the -energy on a per-wall basis, you need to use multiple fix wall -commands. The length of the vector is equal to the number of walls -defined by the fix. Each vector value is the normal force on a -specific wall. Note that an outward force on a wall will be a -negative value for {lo} walls and a positive value for {hi} walls. -The scalar and vector values calculated by this fix are "extensive". +commands"_Howto_output.html. Note that the scalar energy is the sum +of interactions with all defined walls. If you want the energy on a +per-wall basis, you need to use multiple fix wall commands. The +length of the vector is equal to the number of walls defined by the +fix. Each vector value is the normal force on a specific wall. Note +that an outward force on a wall will be a negative value for {lo} +walls and a positive value for {hi} walls. The scalar and vector +values calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_wall_body_polygon.txt b/doc/src/fix_wall_body_polygon.txt index 4ba16b56c7..ebd25c2bbc 100644 --- a/doc/src/fix_wall_body_polygon.txt +++ b/doc/src/fix_wall_body_polygon.txt @@ -43,8 +43,8 @@ particles in the group interact with the wall when they are close enough to touch it. The nature of the interaction between the wall and the polygon particles is the same as that between the polygon particles themselves, which is similar to a Hookean potential. See -"Section 6.14"_Section_howto.html#howto_14 of the manual and the -"body"_body.html doc page for more details on using body particles. +the "Howto body"_Howto_body.html doc page for more details on using +body particles. The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as those specified with the "pair_style @@ -83,9 +83,9 @@ to the derivative of this expression. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_body_polyhedron.txt b/doc/src/fix_wall_body_polyhedron.txt index c937cbdbbc..d3d8bc35a3 100644 --- a/doc/src/fix_wall_body_polyhedron.txt +++ b/doc/src/fix_wall_body_polyhedron.txt @@ -43,8 +43,8 @@ All particles in the group interact with the wall when they are close enough to touch it. The nature of the interaction between the wall and the polygon particles is the same as that between the polygon particles themselves, which is similar to a Hookean potential. See -"Section 6.14"_Section_howto.html#howto_14 of the manual and the -"body"_body.html doc page for more details on using body particles. +the "Howto body"_Howto_body.html doc page for more details on using +body particles. The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as those specified with the "pair_style @@ -82,9 +82,9 @@ to the derivative of this expression. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_gran.txt b/doc/src/fix_wall_gran.txt index 5f1679604e..9796c39459 100644 --- a/doc/src/fix_wall_gran.txt +++ b/doc/src/fix_wall_gran.txt @@ -148,9 +148,9 @@ uninterrupted fashion. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_gran_region.txt b/doc/src/fix_wall_gran_region.txt index 92fb042194..908bcc3941 100644 --- a/doc/src/fix_wall_gran_region.txt +++ b/doc/src/fix_wall_gran_region.txt @@ -180,9 +180,9 @@ region with a different region ID. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_piston.txt b/doc/src/fix_wall_piston.txt index 4d7756c237..26018329eb 100644 --- a/doc/src/fix_wall_piston.txt +++ b/doc/src/fix_wall_piston.txt @@ -91,10 +91,10 @@ define the lattice spacings. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_reflect.txt b/doc/src/fix_wall_reflect.txt index 5380bdf738..2956046e20 100644 --- a/doc/src/fix_wall_reflect.txt +++ b/doc/src/fix_wall_reflect.txt @@ -154,10 +154,10 @@ instructions on how to use the accelerated styles effectively. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_region.txt b/doc/src/fix_wall_region.txt index 9700545dc9..8b3b3ff173 100644 --- a/doc/src/fix_wall_region.txt +++ b/doc/src/fix_wall_region.txt @@ -156,12 +156,11 @@ integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar energy and a global 3-length vector of forces, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar energy is the sum -of energy interactions for all particles interacting with the wall -represented by the region surface. The 3 vector quantities are the -x,y,z components of the total force acting on the wall due to the -particles. The scalar and vector values calculated by this fix are -"extensive". +commands"_Howto_output.html. The scalar energy is the sum of energy +interactions for all particles interacting with the wall represented +by the region surface. The 3 vector quantities are the x,y,z +components of the total force acting on the wall due to the particles. +The scalar and vector values calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_wall_srd.txt b/doc/src/fix_wall_srd.txt index c465896d37..3a8c2e41cd 100644 --- a/doc/src/fix_wall_srd.txt +++ b/doc/src/fix_wall_srd.txt @@ -166,9 +166,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global array of values which can be accessed by -various "output commands"_Section_howto.html#howto_15. The number of -rows in the array is equal to the number of walls defined by the fix. -The number of columns is 3, for the x,y,z components of force on each +various "output commands"_Howto_output.html. The number of rows in +the array is equal to the number of walls defined by the fix. The +number of columns is 3, for the x,y,z components of force on each wall. Note that an outward normal force on a wall will be a negative value diff --git a/doc/src/improper_umbrella.txt b/doc/src/improper_umbrella.txt index e72cc7f0ad..59fee0a664 100644 --- a/doc/src/improper_umbrella.txt +++ b/doc/src/improper_umbrella.txt @@ -22,7 +22,7 @@ improper_coeff 1 100.0 180.0 :pre The {umbrella} improper style uses the following potential, which is commonly referred to as a classic inversion and used in the -"DREIDING"_Section_howto.html#howto_4 force field: +"DREIDING"_Howto_bioFF.html force field: :c,image(Eqs/improper_umbrella.jpg) diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index 6d27bb7076..37c8c5b1d7 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -285,15 +285,15 @@ performance and accuracy in the results is obtained when these values are different. The {disp/auto} option controls whether the pppm/disp is allowed to -generate PPPM parameters automatically. If set to {no}, parameters have -to be specified using the {gewald/disp}, {mesh/disp}, -{force/disp/real} or {force/disp/kspace} keywords, or -the code will stop with an error message. When this option is set to -{yes}, the error message will not appear and the simulation will start. -For a typical application, using the automatic parameter generation -will provide simulations that are either inaccurate or slow. Using this -option is thus not recommended. For guidelines on how to obtain good -parameters, see the "How-To"_Section_howto.html#howto_24 discussion. +generate PPPM parameters automatically. If set to {no}, parameters +have to be specified using the {gewald/disp}, {mesh/disp}, +{force/disp/real} or {force/disp/kspace} keywords, or the code will +stop with an error message. When this option is set to {yes}, the +error message will not appear and the simulation will start. For a +typical application, using the automatic parameter generation will +provide simulations that are either inaccurate or slow. Using this +option is thus not recommended. For guidelines on how to obtain good +parameters, see the "Howto dispersion"_Howto_dispersion.html doc page. [Restrictions:] none diff --git a/doc/src/kspace_style.txt b/doc/src/kspace_style.txt index 8dbb3dde49..fa717b70ef 100644 --- a/doc/src/kspace_style.txt +++ b/doc/src/kspace_style.txt @@ -161,15 +161,16 @@ similar to the {ewald/disp} style. The 1/r^6 capability means that Lennard-Jones or Buckingham potentials can be used without a cutoff, i.e. they become full long-range potentials. -For these styles, you will possibly want to adjust the default choice of -parameters by using the "kspace_modify"_kspace_modify.html command. +For these styles, you will possibly want to adjust the default choice +of parameters by using the "kspace_modify"_kspace_modify.html command. This can be done by either choosing the Ewald and grid parameters, or by specifying separate accuracies for the real and kspace -calculations. When not making any settings, the simulation will stop with -an error message. Further information on the influence of the parameters -and how to choose them is described in "(Isele-Holder)"_#Isele-Holder2012, -"(Isele-Holder2)"_#Isele-Holder2013 and the -"How-To"_Section_howto.html#howto_24 discussion. +calculations. When not making any settings, the simulation will stop +with an error message. Further information on the influence of the +parameters and how to choose them is described in +"(Isele-Holder)"_#Isele-Holder2012, +"(Isele-Holder2)"_#Isele-Holder2013 and the "Howto +dispersion"_Howto_dispersion.html doc page. :line diff --git a/doc/src/lammps_tutorials.txt b/doc/src/lammps_tutorials.txt deleted file mode 100644 index 5ceda65b60..0000000000 --- a/doc/src/lammps_tutorials.txt +++ /dev/null @@ -1,6 +0,0 @@ - -Tutorials :h2 - -The following pages contain some in-depth tutorials for -selected topics, that did not fit into any other place -in the manual. diff --git a/doc/src/molecule.txt b/doc/src/molecule.txt index cd9ecce42c..b2ad547cf0 100644 --- a/doc/src/molecule.txt +++ b/doc/src/molecule.txt @@ -176,9 +176,8 @@ LAMMPS uses this info to properly exclude or weight bonded pairwise interactions between bonded atoms. See the "special_bonds"_special_bonds.html command for more details. One reason to list the special bond info explicitly is for the -"thermalized Drude oscillator model"_tutorial_drude.html which treats -the bonds between nuclear cores and Drude electrons in a different -manner. +"thermalized Drude oscillator model"_Howto_drude.html which treats the +bonds between nuclear cores and Drude electrons in a different manner. NOTE: Whether a section is required depends on how the molecule template is used by other LAMMPS commands. For example, to add a diff --git a/doc/src/neb.txt b/doc/src/neb.txt index 56f075c301..5c6053fca0 100644 --- a/doc/src/neb.txt +++ b/doc/src/neb.txt @@ -56,9 +56,8 @@ Note that if you have MPI installed, you can run a multi-replica simulation with more replicas (partitions) than you have physical processors, e.g you can run a 10-replica simulation on just one or two processors. You will simply not get the performance speed-up you -would see with one or more physical processors per replica. See -"Section 6.5"_Section_howto.html#howto_5 of the manual for further -discussion. +would see with one or more physical processors per replica. See the +"Howto replica"_Howto_replica.html doc page for further discussion. NOTE: As explained below, a NEB calculation perfoms a damped dynamics minimization across all the replicas. The minimizer uses whatever diff --git a/doc/src/pair_body_nparticle.txt b/doc/src/pair_body_nparticle.txt index 8c5b6e155d..78a9f2bb38 100644 --- a/doc/src/pair_body_nparticle.txt +++ b/doc/src/pair_body_nparticle.txt @@ -24,15 +24,14 @@ pair_coeff 1 1 1.0 1.5 2.5 :pre Style {body/nparticle} is for use with body particles and calculates pairwise body/body interactions as well as interactions between body -and point-particles. See "Section 6.14"_Section_howto.html#howto_14 -of the manual and the "body"_body.html doc page for more details on -using body particles. +and point-particles. See the "Howto body"_Howto_body.html doc page +for more details on using body particles. This pair style is designed for use with the "nparticle" body style, which is specified as an argument to the "atom-style body" command. -See the "body"_body.html doc page for more details about the body -styles LAMMPS supports. The "nparticle" style treats a body particle -as a rigid body composed of N sub-particles. +See the "Howto body"_Howto_body.html doc page for more details about +the body styles LAMMPS supports. The "nparticle" style treats a body +particle as a rigid body composed of N sub-particles. The coordinates of a body particle are its center-of-mass (COM). If the COMs of a pair of body particles are within the cutoff (global or diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index 9daeb08e9a..19807fbe39 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -29,9 +29,8 @@ pair_coeff 1 1 100.0 1.0 :pre Style {body/rounded/polygon} is for use with 2d models of body particles of style {rounded/polygon}. It calculates pairwise body/body interactions which can include body particles modeled as -1-vertex circular disks with a specified diameter. See "Section -6.14"_Section_howto.html#howto_14 of the manual and the -"body"_body.html doc page for more details on using body +1-vertex circular disks with a specified diameter. See the "Howto +body"_Howto_body.html doc page for more details on using body rounded/polygon particles. This pairwise interaction between rounded polygons is described in diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index dc559feaaf..d70a86f881 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -29,9 +29,8 @@ pair_coeff 1 1 100.0 1.0 :pre Style {body/rounded/polygon} is for use with 3d models of body particles of style {rounded/polyhedron}. It calculates pairwise body/body interactions which can include body particles modeled as -1-vertex spheres with a specified diameter. See "Section -6.14"_Section_howto.html#howto_14 of the manual and the -"body"_body.html doc page for more details on using body +1-vertex spheres with a specified diameter. See the "Howto +body"_Howto_body.html doc page for more details on using body rounded/polyhedron particles. This pairwise interaction between the rounded polyhedra is described diff --git a/doc/src/pair_born.txt b/doc/src/pair_born.txt index 2504fb7e25..143549cf2d 100644 --- a/doc/src/pair_born.txt +++ b/doc/src/pair_born.txt @@ -108,10 +108,10 @@ The {born/coul/dsf} style computes the Coulomb contribution with the damped shifted force model as in the "coul/dsf"_pair_coul.html style. Style {born/coul/long/cs} is identical to {born/coul/long} except that -a term is added for the "core/shell model"_Section_howto.html#howto_25 -to allow charges on core and shell particles to be separated by r = -0.0. The same correction is introduced for the {born/coul/dsf/cs} -style which is identical to {born/coul/dsf}. And likewise for +a term is added for the "core/shell model"_Howto_coreshell.html to +allow charges on core and shell particles to be separated by r = 0.0. +The same correction is introduced for the {born/coul/dsf/cs} style +which is identical to {born/coul/dsf}. And likewise for {born/coul/wolf/cs} style which is identical to {born/coul/wolf}. Note that these potentials are related to the "Buckingham diff --git a/doc/src/pair_buck.txt b/doc/src/pair_buck.txt index de247b9c01..2483a6c9e2 100644 --- a/doc/src/pair_buck.txt +++ b/doc/src/pair_buck.txt @@ -93,9 +93,8 @@ used as the cutoff for the A,C terms, and the second is the cutoff for the Coulombic term. Style {buck/coul/long/cs} is identical to {buck/coul/long} except that -a term is added for the "core/shell model"_Section_howto.html#howto_25 -to allow charges on core and shell particles to be separated by r = -0.0. +a term is added for the "core/shell model"_Howto_coreshell.html to +allow charges on core and shell particles to be separated by r = 0.0. Note that these potentials are related to the "Born-Mayer-Huggins potential"_pair_born.html. diff --git a/doc/src/pair_coul.txt b/doc/src/pair_coul.txt index 650575d055..e2bc78a2e6 100644 --- a/doc/src/pair_coul.txt +++ b/doc/src/pair_coul.txt @@ -205,9 +205,9 @@ pairwise interactions within this distance are computed directly; interactions outside that distance are computed in reciprocal space. Style {coul/long/cs} is identical to {coul/long} except that a term is -added for the "core/shell model"_Section_howto.html#howto_25 to allow -charges on core and shell particles to be separated by r = 0.0. The -same correction is introduced for the {coul/wolf/cs} style which is +added for the "core/shell model"_Howto_coreshell.html to allow charges +on core and shell particles to be separated by r = 0.0. The same +correction is introduced for the {coul/wolf/cs} style which is identical to {coul/wolf}. Styles {tip4p/cut} and {tip4p/long} implement the coulomb part of @@ -226,16 +226,16 @@ is to enable LAMMPS to "find" the 2 H atoms associated with each O atom. For example, if the atom ID of an O atom in a TIP4P water molecule is 500, then its 2 H atoms must have IDs 501 and 502. -See the "howto section"_Section_howto.html#howto_8 for more -information on how to use the TIP4P pair styles and lists of -parameters to set. Note that the neighbor list cutoff for Coulomb -interactions is effectively extended by a distance 2*qdist when using -the TIP4P pair style, to account for the offset distance of the -fictitious charges on O atoms in water molecules. Thus it is -typically best in an efficiency sense to use a LJ cutoff >= Coulomb -cutoff + 2*qdist, to shrink the size of the neighbor list. This leads -to slightly larger cost for the long-range calculation, so you can -test the trade-off for your model. +See the "Howto tip4p"_Howto_tip4p.html doc page for more information +on how to use the TIP4P pair styles and lists of parameters to set. +Note that the neighbor list cutoff for Coulomb interactions is +effectively extended by a distance 2*qdist when using the TIP4P pair +style, to account for the offset distance of the fictitious charges on +O atoms in water molecules. Thus it is typically best in an +efficiency sense to use a LJ cutoff >= Coulomb cutoff + 2*qdist, to +shrink the size of the neighbor list. This leads to slightly larger +cost for the long-range calculation, so you can test the trade-off for +your model. :line diff --git a/doc/src/pair_cs.txt b/doc/src/pair_cs.txt index c1084c6087..86eb02b0d7 100644 --- a/doc/src/pair_cs.txt +++ b/doc/src/pair_cs.txt @@ -54,8 +54,8 @@ pair_coeff 1 1 480.0 0.25 0.00 1.05 0.50 :pre These pair styles are designed to be used with the adiabatic core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham2. See -"Section 6.25"_Section_howto.html#howto_25 of the manual for an -overview of the model as implemented in LAMMPS. +the "Howto coreshell"_Howto_coreshell.html doc page for an overview of +the model as implemented in LAMMPS. The styles with a {coul/long} term are identical to the "pair_style born/coul/long"_pair_born.html and "pair_style diff --git a/doc/src/pair_hbond_dreiding.txt b/doc/src/pair_hbond_dreiding.txt index 45f852c254..d641cb73ad 100644 --- a/doc/src/pair_hbond_dreiding.txt +++ b/doc/src/pair_hbond_dreiding.txt @@ -33,8 +33,8 @@ pair_coeff 1 2 hbond/dreiding/morse 3 i 3.88 1.7241379 2.9 2 9 11 90 :pre [Description:] The {hbond/dreiding} styles compute the Acceptor-Hydrogen-Donor (AHD) -3-body hydrogen bond interaction for the -"DREIDING"_Section_howto.html#howto_4 force field, given by: +3-body hydrogen bond interaction for the "DREIDING"_Howto_bioFF.html +force field, given by: :c,image(Eqs/pair_hbond_dreiding.jpg) @@ -65,8 +65,8 @@ potential for the Donor-Acceptor interactions. "(Liu)"_#Liu showed that the Morse form gives improved results for Dendrimer simulations, when n = 2. -See this "howto section"_Section_howto.html#howto_4 of the manual for -more information on the DREIDING forcefield. +See the "Howto bioFF"_Howto_bioFF.html doc page for more information +on the DREIDING forcefield. NOTE: Because the Dreiding hydrogen bond potential is only one portion of an overall force field which typically includes other pairwise diff --git a/doc/src/pair_lj.txt b/doc/src/pair_lj.txt index c2968ffdf3..a0f7effbb1 100644 --- a/doc/src/pair_lj.txt +++ b/doc/src/pair_lj.txt @@ -185,9 +185,9 @@ distance are computed directly; interactions outside that distance are computed in reciprocal space. Style {lj/cut/coul/long/cs} is identical to {lj/cut/coul/long} except -that a term is added for the "core/shell -model"_Section_howto.html#howto_25 to allow charges on core and shell -particles to be separated by r = 0.0. +that a term is added for the "core/shell model"_Howto_coreshell.html +to allow charges on core and shell particles to be separated by r = +0.0. Style {coul/wolf} adds a Coulombic pairwise interaction via the Wolf summation method, described in "Wolf"_#Wolf1, given by: @@ -223,16 +223,16 @@ is to enable LAMMPS to "find" the 2 H atoms associated with each O atom. For example, if the atom ID of an O atom in a TIP4P water molecule is 500, then its 2 H atoms must have IDs 501 and 502. -See the "howto section"_Section_howto.html#howto_8 for more -information on how to use the TIP4P pair styles and lists of -parameters to set. Note that the neighbor list cutoff for Coulomb -interactions is effectively extended by a distance 2*qdist when using -the TIP4P pair style, to account for the offset distance of the -fictitious charges on O atoms in water molecules. Thus it is -typically best in an efficiency sense to use a LJ cutoff >= Coulomb -cutoff + 2*qdist, to shrink the size of the neighbor list. This leads -to slightly larger cost for the long-range calculation, so you can -test the trade-off for your model. +See the "Howto tip4p"_Howto_tip4p.html doc page for more information +on how to use the TIP4P pair styles and lists of parameters to set. +Note that the neighbor list cutoff for Coulomb interactions is +effectively extended by a distance 2*qdist when using the TIP4P pair +style, to account for the offset distance of the fictitious charges on +O atoms in water molecules. Thus it is typically best in an +efficiency sense to use a LJ cutoff >= Coulomb cutoff + 2*qdist, to +shrink the size of the neighbor list. This leads to slightly larger +cost for the long-range calculation, so you can test the trade-off for +your model. For all of the {lj/cut} pair styles, the following coefficients must be defined for each pair of atoms types via the diff --git a/doc/src/pair_lj_long.txt b/doc/src/pair_lj_long.txt index bc851adb74..0dd55b7e32 100644 --- a/doc/src/pair_lj_long.txt +++ b/doc/src/pair_lj_long.txt @@ -90,7 +90,7 @@ is to enable LAMMPS to "find" the 2 H atoms associated with each O atom. For example, if the atom ID of an O atom in a TIP4P water molecule is 500, then its 2 H atoms must have IDs 501 and 502. -See the "howto section"_Section_howto.html#howto_8 for more +See the the "Howto tip4p"_Howto_tip4p.html doc page for more information on how to use the TIP4P pair style. Note that the neighbor list cutoff for Coulomb interactions is effectively extended by a distance 2*qdist when using the TIP4P pair style, to account for diff --git a/doc/src/pair_thole.txt b/doc/src/pair_thole.txt index 11d4b85cff..42c58e9882 100644 --- a/doc/src/pair_thole.txt +++ b/doc/src/pair_thole.txt @@ -45,8 +45,8 @@ pair_style lj/cut/thole/long 2.6 12.0 :pre The {thole} pair styles are meant to be used with force fields that include explicit polarization through Drude dipoles. This link describes how to use the "thermalized Drude oscillator -model"_tutorial_drude.html in LAMMPS and polarizable models in LAMMPS -are discussed in "this Section"_Section_howto.html#howto_25. +model"_Howto_drude.html in LAMMPS and polarizable models in LAMMPS are +discussed on the "Howto polarizable"_Howto_polarizable.html doc page. The {thole} pair style should be used as a sub-style within in the "pair_hybrid/overlay"_pair_hybrid.html command, in conjunction with a diff --git a/doc/src/prd.txt b/doc/src/prd.txt index 3c0305e316..f298d83385 100644 --- a/doc/src/prd.txt +++ b/doc/src/prd.txt @@ -69,8 +69,8 @@ simulation with more replicas (partitions) than you have physical processors, e.g you can run a 10-replica simulation on one or two processors. However for PRD, this makes little sense, since running a replica on virtual instead of physical processors,offers no effective -parallel speed-up in searching for infrequent events. See "Section -6.5"_Section_howto.html#howto_5 of the manual for further discussion. +parallel speed-up in searching for infrequent events. See the "Howto +replica"_Howto_replica.html doc page for further discussion. When a PRD simulation is performed, it is assumed that each replica is running the same model, though LAMMPS does not check for this. diff --git a/doc/src/read_data.txt b/doc/src/read_data.txt index fd297e36c1..4f6a3988b9 100644 --- a/doc/src/read_data.txt +++ b/doc/src/read_data.txt @@ -322,9 +322,9 @@ with tilt factors that exceed these limits, you can use the "box tilt"_box.html command, with a setting of {large}; a setting of {small} is the default. -See "Section 6.12"_Section_howto.html#howto_12 of the doc pages -for a geometric description of triclinic boxes, as defined by LAMMPS, -and how to transform these parameters to and from other commonly used +See the "Howto triclinic"_Howto_triclinic.html doc page for a +geometric description of triclinic boxes, as defined by LAMMPS, and +how to transform these parameters to and from other commonly used triclinic representations. When a triclinic system is used, the simulation domain should normally @@ -772,9 +772,9 @@ the "bodies" keyword. Each body can have a variable number of integer and/or floating-point values. The number and meaning of the values is defined by the body -style, as described in the "body"_body.html doc page. The body style -is given as an argument to the "atom_style body"_atom_style.html -command. +style, as described in the "Howto body"_Howto_body.html doc page. The +body style is given as an argument to the "atom_style +body"_atom_style.html command. The Ninteger and Ndouble values determine how many integer and floating-point values are specified for this particle. Ninteger and diff --git a/doc/src/region.txt b/doc/src/region.txt index 1ac3861e67..b32c09ed6f 100644 --- a/doc/src/region.txt +++ b/doc/src/region.txt @@ -186,9 +186,9 @@ functions, and include "thermo_style"_thermo_style.html command keywords for the simulation box parameters and timestep and elapsed time. Thus it is easy to specify a time-dependent radius. -See "Section 6.12"_Section_howto.html#howto_12 of the doc pages -for a geometric description of triclinic boxes, as defined by LAMMPS, -and how to transform these parameters to and from other commonly used +See the "Howto tricilinc"_Howto_triclinic.html doc page for a +geometric description of triclinic boxes, as defined by LAMMPS, and +how to transform these parameters to and from other commonly used triclinic representations. The {union} style creates a region consisting of the volume of all the diff --git a/doc/src/run.txt b/doc/src/run.txt index 913d81bb4d..02860c0b97 100644 --- a/doc/src/run.txt +++ b/doc/src/run.txt @@ -127,9 +127,9 @@ be redefined, e.g. to reset a thermostat temperature. Or this could be useful for invoking a command you have added to LAMMPS that wraps some other code (e.g. as a library) to perform a computation periodically during a long LAMMPS run. See the "Modify"_Modify.html -doc page for info about how to add new commands to LAMMPS. See "this -section"_Section_howto.html#howto_10 of the documentation for ideas -about how to couple LAMMPS to other codes. +doc page for info about how to add new commands to LAMMPS. See the +"Howto couple"_Howto_couple.html doc page for ideas about how to +couple LAMMPS to other codes. With the {every} option, N total steps are simulated, in shorter runs of M steps each. After each M-length run, the specified commands are diff --git a/doc/src/tad.txt b/doc/src/tad.txt index f5e7c6d653..9ffa24d012 100644 --- a/doc/src/tad.txt +++ b/doc/src/tad.txt @@ -92,9 +92,8 @@ restricts you to having exactly one processor per replica. For more information, see the documentation for the "neb"_neb.html command. In the current LAMMPS implementation of TAD, all the non-NEB TAD operations are performed on the first partition, while the other -partitions remain idle. See "Section -6.5"_Section_howto.html#howto_5 of the manual for further discussion of -multi-replica simulations. +partitions remain idle. See the "Howto replica"_Howto_replica.html doc +page for further discussion of multi-replica simulations. A TAD run has several stages, which are repeated each time an event is performed. The logic for a TAD run is as follows: diff --git a/doc/src/temper.txt b/doc/src/temper.txt index b1c47c8076..e65f59ebed 100644 --- a/doc/src/temper.txt +++ b/doc/src/temper.txt @@ -32,14 +32,13 @@ replicas (ensembles) of a system. Two or more replicas must be used. Each replica runs on a partition of one or more processors. Processor partitions are defined at run-time using the -partition command-line -switch; see "Section 2.6"_Section_start.html#start_6 of the -manual. Note that if you have MPI installed, you can run a -multi-replica simulation with more replicas (partitions) than you have -physical processors, e.g you can run a 10-replica simulation on one or -two processors. You will simply not get the performance speed-up you -would see with one or more physical processors per replica. See "this -section"_Section_howto.html#howto_5 of the manual for further -discussion. +switch; see "Section 2.6"_Section_start.html#start_6 of the manual. +Note that if you have MPI installed, you can run a multi-replica +simulation with more replicas (partitions) than you have physical +processors, e.g you can run a 10-replica simulation on one or two +processors. You will simply not get the performance speed-up you +would see with one or more physical processors per replica. See the +"Howto replica"_Howto_replica.html doc page for further discussion. Each replica's temperature is controlled at a different value by a fix with {fix-ID} that controls temperature. Most thermostat fix styles diff --git a/doc/src/thermo_style.txt b/doc/src/thermo_style.txt index 18c5ad5ba1..64e0785586 100644 --- a/doc/src/thermo_style.txt +++ b/doc/src/thermo_style.txt @@ -286,11 +286,11 @@ takes place. The keywords {cella}, {cellb}, {cellc}, {cellalpha}, {cellbeta}, {cellgamma}, correspond to the usual crystallographic quantities that -define the periodic unit cell of a crystal. See "this -section"_Section_howto.html#howto_12 of the doc pages for a geometric -description of triclinic periodic cells, including a precise definition -of these quantities in terms of the internal LAMMPS cell dimensions -{lx}, {ly}, {lz}, {yz}, {xz}, {xy}. +define the periodic unit cell of a crystal. See the "Howto +triclinic"_Howto_triclinic.html doc page for a geometric description +of triclinic periodic cells, including a precise definition of these +quantities in terms of the internal LAMMPS cell dimensions {lx}, {ly}, +{lz}, {yz}, {xz}, {xy}. :line diff --git a/doc/src/tutorials.txt b/doc/src/tutorials.txt deleted file mode 100644 index 338439ac8e..0000000000 --- a/doc/src/tutorials.txt +++ /dev/null @@ -1,15 +0,0 @@ -Tutorials :h1 - - diff --git a/doc/src/velocity.txt b/doc/src/velocity.txt index b8299a5acf..057f0054be 100644 --- a/doc/src/velocity.txt +++ b/doc/src/velocity.txt @@ -139,10 +139,9 @@ if rot = yes, the angular momentum is zeroed. If specified, the {temp} keyword is used by {create} and {scale} to specify a "compute"_compute.html that calculates temperature in a desired way, e.g. by first subtracting out a velocity bias, as -discussed in "Section 6.16"_Section_howto.html#howto_16 of the doc -pages. If this keyword is not specified, {create} and {scale} -calculate temperature using a compute that is defined internally as -follows: +discussed on the "Howto thermostat"_Howto_thermostat.html doc page. +If this keyword is not specified, {create} and {scale} calculate +temperature using a compute that is defined internally as follows: compute velocity_temp group-ID temp :pre @@ -161,11 +160,11 @@ The {bias} keyword with a {yes} setting is used by {create} and If the temperature compute also calculates a velocity bias, the the bias is subtracted from atom velocities before the {create} and {scale} operations are performed. After the operations, the bias is -added back to the atom velocities. See "Section -6.16"_Section_howto.html#howto_16 of the doc pages for more discussion -of temperature computes with biases. Note that the velocity bias is -only applied to atoms in the temperature compute specified with the -{temp} keyword. +added back to the atom velocities. See the "Howto +thermostat"_Howto_thermostat.html doc page for more discussion of +temperature computes with biases. Note that the velocity bias is only +applied to atoms in the temperature compute specified with the {temp} +keyword. As an example, assume atoms are currently streaming in a flow direction (which could be separately initialized with the {ramp} From c8be5a3f2d9258a5390e78b4c68a2a842bbf34a9 Mon Sep 17 00:00:00 2001 From: Michael King Date: Wed, 1 Aug 2018 11:11:18 +0200 Subject: [PATCH 387/675] change ave/histo to ave/histo/weight --- examples/USER/diffraction/BulkNi.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/USER/diffraction/BulkNi.in b/examples/USER/diffraction/BulkNi.in index a18163175c..0fa9c1b74c 100644 --- a/examples/USER/diffraction/BulkNi.in +++ b/examples/USER/diffraction/BulkNi.in @@ -20,7 +20,7 @@ compute XRD all xrd 1.541838 Ni 2Theta 40 80 c 2 2 2 LP 1 echo compute SAED all saed 0.0251 Ni Kmax 0.85 Zone 1 0 0 c 0.025 0.025 0.025 & dR_Ewald 0.05 echo manual -fix 1 all ave/histo 1 1 1 40 80 200 c_XRD[1] c_XRD[2] & +fix 1 all ave/histo/weight 1 1 1 40 80 200 c_XRD[1] c_XRD[2] & mode vector file $A.hist.xrd fix 2 all saed/vtk 1 1 1 c_SAED file $A_001.saed From 42948b60ee7ef0cf8028d938ec594e42071e08db Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 1 Aug 2018 14:37:03 +0200 Subject: [PATCH 388/675] corrections for broken links in the html docs --- doc/src/Section_howto.txt | 4 ++-- doc/src/fixes.txt | 2 ++ doc/src/pairs.txt | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt index f929d3bdab..337880ccee 100644 --- a/doc/src/Section_howto.txt +++ b/doc/src/Section_howto.txt @@ -1158,7 +1158,7 @@ styles"_pair_style.html that generate torque: "pair_style lubricate"_pair_lubricate.html "pair_style line/lj"_pair_line_lj.html "pair_style tri/lj"_pair_tri_lj.html -"pair_style body"_pair_body.html :ul +"pair_style body"_pair_body_nparticle.html :ul The granular pair styles are used with spherical particles. The dipole pair style is used with the dipole atom style, which could be @@ -1269,7 +1269,7 @@ list of sub-particles. Individual body partices are typically treated as rigid bodies, and their motion integrated with a command like "fix nve/body"_fix_nve_body.html. Interactions between pairs of body particles are computed via a command like "pair_style -body"_pair_body.html. +body"_pair_body_nparticle.html. :line diff --git a/doc/src/fixes.txt b/doc/src/fixes.txt index 9510217d02..7a45ed8086 100644 --- a/doc/src/fixes.txt +++ b/doc/src/fixes.txt @@ -168,6 +168,8 @@ Fixes :h1 fix_viscosity fix_viscous fix_wall + fix_wall_body_polygon + fix_wall_body_polyhedron fix_wall_ees fix_wall_gran fix_wall_gran_region diff --git a/doc/src/pairs.txt b/doc/src/pairs.txt index 1a5e98a109..4c3eef2cd1 100644 --- a/doc/src/pairs.txt +++ b/doc/src/pairs.txt @@ -10,8 +10,9 @@ Pair Styles :h1 pair_airebo pair_awpmd pair_beck - pair_body + pair_body_nparticle pair_body_rounded_polygon + pair_body_rounded_polyhedron pair_bop pair_born pair_brownian From d598e7c60efa5f04e98d7ec0523c3db8a356d209 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 1 Aug 2018 15:54:46 +0200 Subject: [PATCH 389/675] rename preprocessor guard to prevent multiple inclusion to be consistent with file name --- src/MANYBODY/pair_eam_cd.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MANYBODY/pair_eam_cd.h b/src/MANYBODY/pair_eam_cd.h index 15486aed6d..ee84fb09c5 100644 --- a/src/MANYBODY/pair_eam_cd.h +++ b/src/MANYBODY/pair_eam_cd.h @@ -18,8 +18,8 @@ PairStyle(eam/cd/old,PairEAMCD_TwoSite) #else -#ifndef LMP_PAIR_CDEAM_H -#define LMP_PAIR_CDEAM_H +#ifndef LMP_PAIR_EAM_CD_H +#define LMP_PAIR_EAM_CD_H #include "pair_eam_alloy.h" From 4faeda28ee23ee5505d54bb881c299e6bb38e651 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 2 Aug 2018 06:38:25 -0400 Subject: [PATCH 390/675] allow cross-compiling from linux to windows with cmake --- cmake/CMakeLists.txt | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index d51108ba7a..f4d3cac5d2 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -138,8 +138,11 @@ set_property(CACHE LAMMPS_SIZE_LIMIT PROPERTY STRINGS LAMMPS_SMALLBIG LAMMPS_BIG add_definitions(-D${LAMMPS_SIZE_LIMIT}) set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -D${LAMMPS_SIZE_LIMIT}") -set(LAMMPS_MEMALIGN "64" CACHE STRING "enables the use of the posix_memalign() call instead of malloc() when large chunks or memory are allocated by LAMMPS") -add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN}) +# posix_memalign is not available on Windows +if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") + set(LAMMPS_MEMALIGN "64" CACHE STRING "enables the use of the posix_memalign() call instead of malloc() when large chunks or memory are allocated by LAMMPS") + add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN}) +endif() option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" OFF) if(LAMMPS_EXCEPTIONS) @@ -467,6 +470,11 @@ if(PKG_COMPRESS) list(APPEND LAMMPS_LINK_LIBS ${ZLIB_LIBRARIES}) endif() +# the windows version of LAMMPS requires a couple extra libraries +if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") + list(APPEND LAMMPS_LINK_LIBS -lwsock32 -lpsapi) +endif() + ######################################################################## # Basic system tests (standard libraries, headers, functions, types) # ######################################################################## @@ -626,6 +634,10 @@ if(PKG_USER-OMP) # manually add package dependent source files from USER-OMP that do not provide styles + if(PKG_ASPHERE) + list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_nh_asphere_omp.cpp) + endif() + if(PKG_RIGID) list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_rigid_nh_omp.cpp) endif() From fb03924e83ed2b78b7bacf4f350fb6e1d67fcd87 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 2 Aug 2018 11:12:57 -0600 Subject: [PATCH 391/675] patch 2Aug18 --- doc/src/Manual.txt | 4 ++-- src/version.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 31b8a6a1d4..fd31c83c01 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ < LAMMPS Users Manual - + @@ -19,7 +19,7 @@ :line LAMMPS Documentation :c,h1 -16 Jul 2018 version :c,h2 +2 Aug 2018 version :c,h2 Version info: :h3 diff --git a/src/version.h b/src/version.h index 90a21631d9..b95c259dd6 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "16 Jul 2018" +#define LAMMPS_VERSION "2 Aug 2018" From efaebe0eb02d9970c6a03c0e20bca077885ae3d2 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Thu, 2 Aug 2018 13:44:12 -0600 Subject: [PATCH 392/675] READMEs for USER-SCAFACOS completed --- lib/scafacos/README | 79 +++++++++++++++++++++++++++++++++++++--- src/USER-SCAFACOS/README | 28 ++++++++++++-- 2 files changed, 98 insertions(+), 9 deletions(-) diff --git a/lib/scafacos/README b/lib/scafacos/README index bdf167aef1..e5f1ecd92c 100644 --- a/lib/scafacos/README +++ b/lib/scafacos/README @@ -1,7 +1,76 @@ -RENE - there needs to be a README like the one -for lib/voronoi/README, explaining how -to grab the correct version of Scafacos. +This directory contains links to the ScaFaCoS library which +is required to use the KSPACE scafacos and its kspace_style +scafacos command in a LAMMPS input script. -And how to build, either via traditional make -and the Install.py script, or via CMake +The ScaFaCoS library is available at http://scafacos.de or +on github at https://github.com/scafacos, the libary was +developed by a consortium of different universities in +Germany (Bonn, Chemnitz, Stuttgart, Wuppertal) and +the Research Centre Juelich (Juelich Supercomputing Centre). +----------------- + +Instructions: + +1.) Download ScaFaCoS at http://scafacos.de or directly from github + https://github.com/scafacos where you can either clone the + repository or download the latest stable release. + NOTE: For the P2NFFT solver, you require an installation of the + GNU Scientific Library (GSL). Also to ensure the correct + linker-flags are used, ScaFaCoS employs the pkg-config + tool, which is also required. + If you cloned the repository, please refer to 2.), else continue + with 3.) + +2.) If you cloned the git repository, you require autotools to setup + the library. For that the following packages are required: + m4 + autotools + automake + libtools + In the build_aux folder of the scafacos folder, you can find the + get_autotools.sh script, that downloads and installs the tools + to ${HOME}/local. To change the target folder, please change the + value of 'myprefix' in that script. + To start the auto-configuration process, please run the './bootstrap' + command in the scafacos base-folder. + +3.) If you downloaded the library as a tarball, please extract the file + to somewhere in your file system, or if you finished running + './bootstrap', please run './configure' in the base folder. + Important flags for './configure' are: + --prefix=: sets the directory the compiled files will + be installed to [default: /usr/local] + --fcs-enable-solvers=: sets the list of solvers that are going to + be built. By default all solvers will be + built. Currently supported by the kspace in LAMMPS + are: direct, ewald, fmm, p2nfft + The other solvers might work, but support + is purely experimental at the moment. To + give a list of solvers, use a comma seperated + list. + --fcs-disable-doc: disables the compilation of the documentation, + e.g. if no Latex is available on the system. + +4.) To build the library after configuration, run 'make' from the base folder. + +5.) To install the libray in the designated installation folder, run 'make install'. + Installation is required, as ScaFaCoS does not support an in-source build! + +6.) Create two soft links to this directory (lib/scafacos) to where the libary + is installed. E.g. if you built ScaFaCoS in the default install directory: + % ln -s /usr/local/include includelink + % ln -s /usr/local/lib liblink + for any custom directory : + % ln -s /include includelink + % ln -s /lib liblink + +7.) ScaFaCoS uses the pkg-config tool to supply the correct, so you need to setup your + PKG_CONFIG_PATH environment variable to include the lib/pkgconfig folder in the + installation directory. + Depending on the shell you use, this can be done either by: + % export PKG_CONFIG_PATH=/lib/pkgconfig:${PKG_CONFIG_PATH} + or + % setenv PKG_CONFIG_PATH=/lib/pkgconfig:${PKG_CONFIG_PATH} + +----------------- diff --git a/src/USER-SCAFACOS/README b/src/USER-SCAFACOS/README index 30534499e4..42d2e2c0f7 100644 --- a/src/USER-SCAFACOS/README +++ b/src/USER-SCAFACOS/README @@ -1,5 +1,25 @@ -RENE: need a short README file - see other examples in the -USER package dirs within src +This package provides a kspace style which is a wrapper for the +ScaFaCoS long-range Coulomb solver library. The library provides +a selection of different long-range Coulomb solvers, which can be +used to calculate the Coloumic forces between charged particles. +More information about the ScaFaCoS library can be found on this +web site: http://scafacos.de. ScaFaCoS was designed and implemented +by a consortium of German universities (Bonn, Chemnitz, Stuttgart, +Wuppertal and others) and the Juelich Supercomputing Centre +(Forschungszentrum Juelich). -give short background on ScaFaCos, authors, contact info -for LAMMPS users to have if needed, citation +The use of the scafacos kspace requires the download and installation +of the library on the system. This can be done in lib/scafacos or +elsewhere in your system. Details of the download and build process +for ScaFaCoS are given in the lib/scafacos/README file and it can also +be done via the make lib-user-scafacos command from the LAMMPS +source directory. + +Once you have successfully built LAMMPS with this package and the +ScaFaCoS library, you can test it using an input file from the +examples scafacos dir, e.g.: + +lmp_serial -in lammps/examples/USER/scafacos/in.scafacos.fmm + +For questions about ScaFaCoS, please contact: +r.halver@fz-juelich.de or g.sutmann@fz-juelich.de From c105e21a736f7dbccb1056cc0e0448b9e1dc2865 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 2 Aug 2018 13:58:25 -0600 Subject: [PATCH 393/675] more mods to Intro section --- doc/src/Intro.txt | 46 ++--- doc/src/Intro_authors.txt | 379 ++++++++++++++++++++++++++++++++++ doc/src/Intro_features.txt | 202 ++++++++++++++++++ doc/src/Intro_nonfeatures.txt | 83 ++++++++ doc/src/Intro_opensource.txt | 44 ++++ doc/src/Intro_overview.txt | 59 ++++++ doc/src/Intro_website.txt | 42 ++++ doc/src/Manual.txt | 21 +- 8 files changed, 841 insertions(+), 35 deletions(-) create mode 100644 doc/src/Intro_authors.txt create mode 100644 doc/src/Intro_features.txt create mode 100644 doc/src/Intro_nonfeatures.txt create mode 100644 doc/src/Intro_opensource.txt create mode 100644 doc/src/Intro_overview.txt create mode 100644 doc/src/Intro_website.txt diff --git a/doc/src/Intro.txt b/doc/src/Intro.txt index a634799721..e3eaa40437 100644 --- a/doc/src/Intro.txt +++ b/doc/src/Intro.txt @@ -1,6 +1,6 @@ "Previous Section"_Manual.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_start.html :c +Section"_Install.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) @@ -10,34 +10,28 @@ Section"_Section_start.html :c Introduction :h2 -The "LAMMPS website"_lws is the best introduction to LAMMPS. +These pages provide a brief introduction to LAMMPS. -Here is a list of webpages you can browse: + -"Pre- and post-processing tools for LAMMPS"_http://lammps.sandia.gov/prepost.html -"Other software usable with LAMMPS"_http://lammps.sandia.gov/offsite.html -"Viz tools usable with LAMMPS"_http://lammps.sandia.gov/viz.html :ul + -"Benchmark performance"_http://lammps.sandia.gov/bench.html -"Publications that have cited LAMMPS"_http://lammps.sandia.gov/papers.html -"Authors of the LAMMPS code"_http://lammps.sandia.gov/authors.html -"History of LAMMPS development"_http://lammps.sandia.gov/history.html -"Funding for LAMMPS"_http://lammps.sandia.gov/funding.html :ul +"Overview of LAMMPS"_Intro_overview.html +"LAMMPS features"_Intro_features.html +"LAMMPS non-features"_Intro_nonfeatures.html +"LAMMPS open-source license"_Intro_license.html +"LAMMPS authors"_Intro_authors.html +"Additional website links"_Intro_website.html :all(b) + + diff --git a/doc/src/Intro_authors.txt b/doc/src/Intro_authors.txt new file mode 100644 index 0000000000..96b4b861ca --- /dev/null +++ b/doc/src/Intro_authors.txt @@ -0,0 +1,379 @@ +"Higher level section"_Intro.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +LAMMPS authors :h3 + +The primary LAMMPS developers are at Sandia National Labs and Temple +University: + +"Steve Plimpton"_sjp, sjplimp at sandia.gov +Aidan Thompson, athomps at sandia.gov +Stan Moore, stamoor at sandia.gov +Axel Kohlmeyer, akohlmey at gmail.com :ul + +:link(sjp,http://www.cs.sandia.gov/~sjplimp) + +Past developers include Paul Crozier and Mark Stevens, both at Sandia, +and Ray Shan, now at Materials Design. + +:line + +The following folks are responsible for significant contributions to +the code, or other aspects of the LAMMPS development effort. Many of +the packages they have written are somewhat unique to LAMMPS and the +code would not be as general-purpose as it is without their expertise +and efforts. + +Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CG-CMM, USER-OMP, USER-COLVARS, USER-MOLFILE, USER-QMMM packages +Roy Pollock (LLNL), Ewald and PPPM solvers +Mike Brown (ORNL), brownw at ornl.gov, GPU and USER-INTEL packages +Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential +Mike Parks (Sandia), mlparks at sandia.gov, PERI package for Peridynamics +Rudra Mukherjee (JPL), Rudranarayan.M.Mukherjee at jpl.nasa.gov, POEMS package for articulated rigid body motion +Reese Jones (Sandia) and collaborators, rjones at sandia.gov, USER-ATC package for atom/continuum coupling +Ilya Valuev (JIHT), valuev at physik.hu-berlin.de, USER-AWPMD package for wave-packet MD +Christian Trott (U Tech Ilmenau), christian.trott at tu-ilmenau.de, USER-CUDA and KOKKOS packages +Andres Jaramillo-Botero (Caltech), ajaramil at wag.caltech.edu, USER-EFF package for electron force field +Christoph Kloss (JKU), Christoph.Kloss at jku.at, USER-LIGGGHTS package for granular models and granular/fluid coupling +Metin Aktulga (LBL), hmaktulga at lbl.gov, USER-REAXC package for C version of ReaxFF +Georg Gunzenmueller (EMI), georg.ganzenmueller at emi.fhg.de, USER-SMD and USER-SPH packages +Colin Denniston (U Western Ontario), cdennist at uwo.ca, USER-LB package :ul + +:line + +As discussed on the "History +page"_http://lammps.sandia.gov/history.html of the website, LAMMPS +originated as a cooperative project between DOE labs and industrial +partners. Folks involved in the design and testing of the original +version of LAMMPS were the following: + +John Carpenter (Mayo Clinic, formerly at Cray Research) +Terry Stouch (Lexicon Pharmaceuticals, formerly at Bristol Myers Squibb) +Steve Lustig (Dupont) +Jim Belak and Roy Pollock (LLNL) :ul + +:line +:line + +Here is a timeline for when various individuals contributed to a new +feature or command or tool added to LAMMPS: + +Jul18 : DEM polygonal and polyhedron particles : Trung Nguyen (Northwestern U) +Jun18 : SPIN package : Julien Tranchida (Sandia and CEA) +Jun18 : compute entropy/atom : Pablo Piaggi (EPLF, Switzerland) +May18 : fix bond/react : Jake Gissinger (CU Boulder) +Apr18 : USER-BOCS package : Nicholas Dunn and Michael DeLyser (Penn State U) +Mar18: pair coul/shield, kolmogorov/crespi/full, ilp/graphene/hbn : Wengen Ouyang (Tel Aviv U) +Feb18 : pair lj/cut/coul/wolf : Vishal Boddu (U of Erlangen-Nuremberg) +Feb18 : USER-MOFFF package : Hendrik Heenen (Technical U of Munich) and Rochus Schmid (Ruhr-University Bochum) +Feb18 : pair ufm : Rodolfo Paula Leite and Maurice de Koning (Unicamp/Brazil) +Dec17 : fix python/move : Richard Berger (Temple U) +Nov17 : pair extep : Jaap Kroes (Radboud U) +Oct17 : USER-UEF package : David Nicholson (MIT) +Oct17 : fix rhok : Ulf Pederson (Roskilde U) +Oct17 : bond gromos : Axel Kohlmeyer (Temple U) +Oct17 : pair born/coul/wolf/cs and coul/wolf/cs : Vishal Boddu +Sep17 : fix latte : Christian Negre (LANL) +Sep17 : temper_npt : Amulya Pervaje and Cody Addington (NCSU) +Aug17 : USER-MESO package : Zhen Li (Brown University) +Aug17 : compute aggregate/atom & fragment/atom : Axel Kohlmeyer (Temple U) +Jul17 : pair meam/c : Sebastian Hutter (Otto-von-Guericke University) +Jun17 : pair reaxc/omp : Metin Aktulga (MSU) and Axel Kohlmeyer (Temple U) +Jun17 : pair vashishita/gpu : Anders Hafreager (UiO) +Jun17 : kspace pppm/disp/intel and pair lj/long/coul/long/intel : Mike Brown (Intel) and William McDoniel (RWTH Aachen U) +Jun17 : compute cnp/atom : Paulo Branicio (USC) +May17 : fix python and pair python : Richard Berger (Temple U) +May17 : pair edip/multi : Chao Jiang (U Wisconsin) +May17 : pair gw and gw/zbl : German Samolyuk (ORNL) +Mar17 : pair charmm fsw and fsh : Robert Meissner & Lucio Colombi Ciacchi (Bremen U), Robert Latour (Clemson U) +Mar17 : pair momb : Ya Zhou, Kristen Fichthorn, and Tonnam Balankura (PSU) +Mar17 : fix filter/corotate : Lukas Fath (KIT) +Mar17 : pair kolmogorov/crespi/z : Jaap Kroes (Radboud Universiteit) +Feb17 : Kokkos versions of the class2 bond/angle/dihedral/improper : Ray Shan (Materials Design) +Jan17 : USER-CGDNA package : Oliver Henrich (U Edinburgh) +Jan17 : fix mscg : Lauren Abbott (Sandia) +Nov16 : temper/grem and fix grem : David Stelter (BU), Edyta Malolepsza (Broad Institute), Tom Keyes (BU) +Nov16 : pair agni : Axel Kohlmeyer (Temple U) and Venkatesh Botu +Nov16 : pair tersoff/mod.c : Ganga P Purja Pun (George Mason University) +Nov16 : pair born/coul/dsf and pair born/coul/dsf/cs : Ariel Lozano +Nov16 : fix reaxc/species/kk & fix reaxc/bonds/kk : Stan Moore (Sandia) +Oct16 : fix wall/gran/region : Dan Bolintineanu (Sandia) +Sep16 : weight options for balance & fix balance : Axel Kohlmeyer (Temple U) & Iain Bethune (EPCC) +Sep16 : fix cmap : Xiaohu Hu (ORNL), David Hyde-Volpe & Tigran Abramyan & Robert Latour (Clemson U), Chris Lorenz (Kings College, London) +Sep16 : pair vashishta/table : Anders Hafreager (U Oslo) +Sep16 : kspace pppm/kk : Stan Moore (Sandia) +Aug16 : fix flow/gauss : Steve Strong and Joel Eaves (U Colorado) +Aug16 : fix controller : Aidan Thompson (Sandia) +Jul16 : dipole integration by DLM method : Iain Bethune (EPCC) +Jul16 : dihedral spherical : Andrew Jewett +Jun16 : pair reax/c/kk : Ray Shan (Materials Design), Stan Moore (Sandia) +Jun16 : fix orient/bcc : Tegar Wicaksono (UBC) +Jun16 : fix ehex : Peter Wirnsberger (University of Cambridge) +Jun16 : reactive DPD extensions to USER-DPD : James Larentzos (ARL), Timothy Mattox (Engility Corp), John Brennan (ARL), Christopher Stone (Computational Science & Engineering, LLC) +May16 : USER-MANIFOLD package : Stefan Paquay (Eindhoven U of Tech, The Netherlands) +Apr16 : write_coeff : Axel Kohlmeyer (Temple U) +Apr16 : pair morse/soft : Stefan Paquay (Eindhoven U of Tech, The Netherlands) +Apr16 : compute dipole/chunk : Axel Kohlmeyer (Temple U) +Apr16 : bond write : Axel Kohlmeyer (Temple U) +Mar16 : pair morse/smooth/linear : Stefan Paquay (Eindhoven U of Tech, The Netherlands) +Feb16 : pair/bond/angle/dihedral/improper zero : Carsten Svaneborg (SDU) +Feb16 : dump custom/vtk : Richard Berger (JKU) and Daniel Queteschiner (DCS Computing) +Feb16 : fix (nvt/npt/nph)/body and compute temp/body : Trung Nguyen +Feb16 : USER-DPD package : James Larentzos (ARL), Timothy Mattox (Engility Corp), John Brennan (ARL) +Dec15 : fix qeq/fire : Ray Shan (Sandia) +Dec15 : pair lj/mdf, pair lennard/mdf, pair buck/mdf, improper distance : Paolo Raiteri (Curtin University) +Nov15 : compute orientorder/atom : Aidan Thompson (Sandia) and Axel Kohlmeyer (U Temple) +Nov15 : compute hexorder/atom : Aidan Thompson (Sandia) +Oct15 : displace_atoms variable option : Reese Jones (Sandia) +Oct15 : pair mgpt & USER-MGPT package : Tomas Oppelstrup and John Moriarty (LLNL) +Oct15 : pair smtbq & USER-SMTBQ package : Nicolas Salles, Emile Maras, Olivier Politano, and Robert Tetot (LAAS-CNRS) +Oct15 : fix ave/correlate/long command : Jorge Ramirez (UPM) and Alexei Likhtman (U Reading) +Oct15 : pair vashishta command : Aidan Thompson (Sandia) and Yongnan Xiong (HNU) +Aug15 : USER-TALLY package : Axel Kohlmeyer (Temple U) +Aug15 : timer command : Axel Kohlmeyer (Temple U) +Aug15 : USER-H5MD package : Pierre de Buyl (KU Leuven) +Aug15 : COMPRESS package : Axel Kohlmeyer (Temple U) +Aug15 : USER-SMD package : Georg Gunzenmueller (EMI) +Jul15 : new HTML format for "doc pages"_doc/Manual.html with search option : Richard Berger (JKU) +Jul15 : rRESPA with pair hybrid : Sam Genheden (U of Southampton) +Jul15 : pair_modify special : Axel Kohlmeyer (Temple U) +Jul15 : pair polymorphic : Xiaowang Zhou and Reese Jones (Sandia) +Jul15 : USER-DRUDE package : Alain Dequidt and Agilio Padua (U Blaise Pascal Clermont-Ferrand) and Julien Devemy (CNRS) +Jul15 : USER-QTB package : Yuan Shen, Tingting Qi, and Evan Reed (Stanford U) +Jul15 : USER-DIFFRACTION package : Shawn Coleman (ARL) +Mar15 : fix temp/csld : Axel Kohlmeyer (Temple U) +Mar15 : CORESHELL package : Hendrik Heenen (Technical University of Munich) +Feb15 : pair quip for GAP and other potentials : Albert Bartok-Partay (U Cambridge) +Feb15 : pair coul/streitz for Streitz-Mintmire potential : Ray Shan (Sandia) +Feb15 : fix tfmc : Kristof Bal (U of Antwerp) +Feb15 : fix ttm/mod : Sergey Starikov and Vasily Pisarev (JIHT of RAS) +Jan15 : fix atom/swap for MC swaps of atom types/charge : Paul Crozier (Sandia) +Nov14 : fix pimd for path-integral MD : Chris Knight and Yuxing Peng (U Chicago) +Nov14 : fix gle and fix ipi for path-integral MD : Michele Ceriotti (EPFL) +Nov14 : pair style srp : Tim Sirk (ARL) and Pieter in 't Veld (BASF) +Nov14 : fix ave/spatial/sphere : Niall Jackson (Imperial College) +Sep14 : QEQ package and several fix qeq/variant styles : Ray Shan (Sandia) +Sep14 : SNAP package and pair style : Aidan Thompson (Sandia) and collaborators +Aug14 : USER-INTEL package : Mike Brown (Intel) +May14 : KOKKOS pacakge : Christian Trott and Carter Edwards (Sandia) +May14 : USER-FEP pacakge : Agilio Padua (U Blaise Pascal Clermont-Ferrand) +Apr14 : fix rigid/small NVE/NVT/NPH/NPT : Trung Nguyen (ORNL) +Apr14 : fix qmmm for QM/MM coupling : Axel Kohlmeyer (Temple U) +Mar14 : kspace_modify collective for faster FFTs on BG/Q : Paul Coffman (IBM) +Mar14 : fix temp/csvr and fix oneway : Axel Kohlmeyer (Temple U) +Feb14 : pair peri/eps, compute dilatation/atom, compute plasticity/atom : Rezwanur Rahman and John Foster (UTSA) +Jan14 : MPI-IO options for dump and restart files : Paul Coffman (IBM) +Nov13 : USER-LB package for Lattice Boltzmann : Francis Mackay and Colin Denniston (U Western Ontario) +Nov13 : fix ti/rs and ti/spring : Rodrigo Freitas (UC Berkeley) +Nov13 : pair comb3 : Ray Shan (Sandia), Tao Liang and Dundar Yilmaz (U Florida) +Nov13 : write_dump and dump movie : Axel Kohlmeyer (Temple U) +Sep13 : xmgrace tool : Vikas Varshney +Sep13 : pair zbl : Aidan Thompson and Stephen Foiles (Sandia) +Aug13 : pair nm and variants : Julien Devemy (ICCF) +Aug13 : fix wall/lj1043 : Jonathan Lee (Sandia) +Jul13 : pair peri/ves : Rezwan Rahman, JT Foster (U Texas San Antonio) +Jul13 : pair tersoff/mod : Vitaly Dozhdikov (JIHT of RAS) +Jul13 : compute basal/atom : Christopher Barrett,(Mississippi State) +Jul13 : polybond tool : Zachary Kraus (Georgia Tech) +Jul13 : fix gld : Stephen Bond and Andrew Baczewski (Sandia) +Jun13 : pair nb3b/harmonic : Todd Zeitler (Sandia) +Jun13 : kspace_style pppm/stagger : Stan Moore (Sandia) +Jun13 : fix tune/kspace : Paul Crozier (Sandia) +Jun13 : long-range point dipoles : Stan Moore (Sandia) and Pieter in 't Veld (BASF) +May13 : compute msd/nongauss : Rob Hoy +May13 : pair list : Axel Kohlmeyer (Temple U) +May13 : triclinic support for long-range solvers : Stan Moore (Sandia) +Apr13 : dump_modify nfile and fileper : Christopher Knight +Mar13 : fix phonon : Ling-Ti Kong (Shanghai Jiao Tong University) +Mar13 : pair_style lj/cut/tip4p/cut : Pavel Elkind (Gothenburg University) +Feb13 : immediate variables in input script : Daniel Moller (Autonomous University of Barcelona) +Feb13 : fix species : Ray Shan (Sandia) +Jan13 : compute voronoi/atom : Daniel Schwen +Nov12 : pair_style mie/cut : Cassiano Aimoli Petrobras (U Notre Dame) +Oct12 : pair_style meam/sw/spline : Robert Rudd (LLNL) +Oct12 : angle_style fourier and fourier/simple and quartic : Loukas Peristeras (Scienomics) +Oct12 : dihedral_style fourier and nharmonic and quadratic : Loukas Peristeras (Scienomics) +Oct12 : improper_style fourier : Loukas Peristeras (Scienomics) +Oct12 : kspace_style pppm/disp for 1/r^6 : Rolf Isele-Holder (Aachen University) +Oct12 : moltemplate molecular builder tool : Andrew Jewett (UCSB) +Sep12 : pair_style lj/cut/coul/dsf and coul/dsf : Trung Nguyen (ORNL) +Sep12 : multi-level summation long-range solver : Stan Moore, Stephen Bond, and Paul Crozier (Sandia) +Aug12 : fix rigid/npt and fix rigid/nph : Trung Nguyen (ORNL) +Aug12 : Fortran wrapper on lib interface : Karl Hammond (UT, Knoxville) +Aug12 : kspace_modify diff for 2-FFT PPPM : Rolf Isele-Holder (Aachen University), Stan Moore (BYU), Paul Crozier (Sandia) +Jun12 : pair_style bop : Don Ward and Xiaowang Zhou (Sandia) +Jun12 : USER-MOLFILE package : Axel Kohlmeyer (U Temple) +Jun12 : USER-COLVARS package : Axel Kohlmeyer (U Temple) +May12 : read_dump : Tim Sirk (ARL) +May12 : improper_style cossq and ring : Georgios Vogiatzis (CoMSE, NTU Athens) +May12 : pair_style lcbop : Dominik Wojt (Wroclaw University of Technology) +Feb12 : PPPM per-atom energy/virial : Stan Moore (BYU) +Feb12 : Ewald per-atom energy/virial : German Samolyuk (ORNL), Stan Moore (BYU) +Feb12 : minimize forcezero linesearch : Asad Hasan (CMU) +Feb12 : pair_style beck : Jon Zimmerman (Sandia) +Feb12 : pair_style meam/spline : Alex Stukowski (LLNL) +Jan12 : pair_style kim : Valeriu Smirichinski, Ryan Elliott, Ellad Tadmor (U Minn) +Jan12 : dihedral_style table : Andrew Jewett (UCSB) +Jan12 : angle_style dipole : Mario Orsi +Jan12 : pair_style lj/smooth/linear : Jon Zimmerman (Sandia) +Jan12 : fix reax/c/bond : Tzu-Ray Shan (Sandia) +Dec11 : pair_style coul/wolf : Yongfeng Zhang (INL) +Dec11 : run_style verlet/split : Yuxing Peng and Chris Knight (U Chicago) +Dec11 : pair_style tersoff/table : Luca Ferraro (CASPUR) +Nov11 : per-atom energy/stress for reax/c : Tzu-Ray Shan (Sandia) +Oct11 : Fast Lubrication Dynamics (FLD) package: Amit Kumar, Michael Bybee, Jonathan Higdon (UIUC) +Oct11 : USER-OMP package : Axel Kohlmeyer (Temple U) +Sep11 : pair_style edip : Luca Ferraro (CASPUR) +Aug11 : USER-SPH package : Georg Ganzenmuller (FIHSD, EMI, Germany) +Aug11 : fix restrain : Craig Tenney (Sandia) +Aug11 : USER-CUDA package : Christian Trott (U Tech Ilmenau) +Aug11 : pair_style lj/sf : Laurent Joly (U Lyon) +Aug11 : bond_style harmonic/shift and harmonic/shift/cut : Carsten Svaneborg +Aug11 : angle_style cosine/shift and cosine/shift/exp : Carsten Svaneborg +Aug11 : dihedral_style cosine/shift/exp : Carsten Svaneborg +Aug11 : pair_style dipole/sf : Mario Orsi +Aug11 : fix addtorque and compute temp/rotate : Laurent Joly (U Lyon) +Aug11 : FFT support via FFTW3, MKL, ACML, KISSFFT libraries : \ + Axel Kohlmeyer (Temple U) +Jun11 : pair_style adp : Chris Weinberger (Sandia), Stephen Foiles (Sandia), \ + Chandra Veer Singh (Cornell) +Jun11 : Windows build option via Microsoft Visual Studio : \ + Ilya Valuev (JIHT, Moscow, Russia) +Jun11 : antisymmetrized wave packet MD : Ilya Valuev (JIHT, Moscow, Russia) +Jun11 : dump image : Nathan Fabian (Sandia) +May11 : pppm GPU single and double : Mike Brown (ORNL) +May11 : pair_style lj/expand/gpu : Inderaj Bains (NVIDIA) +2010 : pair_style reax/c and fix qeq/reax : Metin Aktulga (Purdue, now LBNL) +- : DREIDING force field, pair_style hbond/dreiding, etc : Tod Pascal (Caltech) +- : fix adapt and compute ti for thermodynamic integration for \ + free energies : Sai Jayaraman (Sandia) +- : pair_style born and gauss : Sai Jayaraman (Sandia) +- : stochastic rotation dynamics (SRD) via fix srd : \ + Jeremy Lechman (Sandia) and Pieter in 't Veld (BASF) +- : ipp Perl script tool : Reese Jones (Sandia) +- : eam_database and createatoms tools : Xiaowang Zhou (Sandia) +- : electron force field (eFF) : Andres Jaramillo-Botero and Julius Su (Caltech) +- : embedded ion method (EIM) potential : Xiaowang Zhou (Sandia) +- : COMB potential with charge equilibration : Tzu-Ray Shan (U Florida) +- : fix ave/correlate : Benoit Leblanc, Dave Rigby, \ + Paul Saxe (Materials Design) and Reese Jones (Sandia) +- : pair_style peri/lps : Mike Parks (Sandia) +- : fix msst : Lawrence Fried (LLNL), Evan Reed (LLNL, Stanford) +- : thermo_style custom tpcpu & spcpu keywords : Axel Kohlmeyer (Temple U) +- : fix rigid/nve, fix rigid/nvt : Tony Sheh and Trung Dac Nguyen (U Michigan) +- : public SVN & Git repositories for LAMMPS : \ + Axel Kohlmeyer (Temple U) and Bill Goldman (Sandia) +- : compute heat/flux : German Samolyuk (ORNL) and \ + Mario Pinto (Computational Research Lab, Pune, India) +- : pair_style yukawa/colloid : Randy Schunk (Sandia) +- : fix wall/colloid : Jeremy Lechman (Sandia) +2009 : fix imd for real-time viz and interactive MD : Axel Kohlmeyer (Temple Univ) +- : concentration-dependent EAM potential : \ + Alexander Stukowski (Technical University of Darmstadt) +- : parallel replica dymamics (PRD) : Mike Brown (Sandia) +- : min_style hftn : Todd Plantenga (Sandia) +- : fix atc : Reese Jones, Jon Zimmerman, Jeremy Templeton (Sandia) +- : dump cfg : Liang Wan (Chinese Academy of Sciences) +- : fix nvt with Nose/Hoover chains : Andy Ballard (U Maryland) +- : pair_style lj/cut/gpu, pair_style gayberne/gpu : Mike Brown (Sandia) +- : pair_style lj96/cut, bond_style table, angle_style table : Chuanfu Luo +- : fix langevin tally : Carolyn Phillips (U Michigan) +- : compute heat/flux for Green-Kubo : Reese Jones (Sandia), \ + Philip Howell (Siemens), Vikas Varsney (AFRL) +- : region cone : Pim Schravendijk +- : pair_style born/coul/long : Ahmed Ismail (Sandia) +- : fix ttm : Paul Crozier (Sandia) and Carolyn Phillips (U Michigan) +- : fix box/relax : Aidan Thompson and David Olmsted (Sandia) +- : ReaxFF potential : Aidan Thompson (Sandia) and Hansohl Cho (MIT) +- : compute cna/atom : Liang Wan (Chinese Academy of Sciences) +2008 : Tersoff/ZBL potential : Dave Farrell (Northwestern U) +- : peridynamics : Mike Parks (Sandia) +- : fix smd for steered MD : Axel Kohlmeyer (U Penn) +- : GROMACS pair potentials : Mark Stevens (Sandia) +- : lmp2vmd tool : Axel Kohlmeyer (U Penn) +- : compute group/group : Naveen Michaud-Agrawal (Johns Hopkins U) +- : USER-CG-CMM package for coarse-graining : Axel Kohlmeyer (U Penn) +- : cosine/delta angle potential : Axel Kohlmeyer (U Penn) +- : VIM editor add-ons for LAMMPS input scripts : Gerolf Ziegenhain +- : pair_style lubricate : Randy Schunk (Sandia) +- : compute ackland/atom : Gerolf Ziegenhain +- : kspace_style ewald/n, pair_style lj/coul, pair_style buck/coul : \ + Pieter in 't Veld (Sandia) +- : AI-REBO bond-order potential : Ase Henry (MIT) +- : making LAMMPS a true "object" that can be instantiated \ + multiple times, e.g. as a library : Ben FrantzDale (RPI) +- : pymol_asphere viz tool : Mike Brown (Sandia) +2007 : NEMD SLLOD integration : Pieter in 't Veld (Sandia) +- : tensile and shear deformations : Pieter in 't Veld (Sandia) +- : GayBerne potential : Mike Brown (Sandia) +- : ellipsoidal particles : Mike Brown (Sandia) +- : colloid potentials : Pieter in 't Veld (Sandia) +- : fix heat : Paul Crozier and Ed Webb (Sandia) +- : neighbor multi and communicate multi : Pieter in 't Veld (Sandia) +- : MATLAB post-processing scripts : Arun Subramaniyan (Purdue) +- : triclinic (non-orthogonal) simulation domains : Pieter in 't Veld (Sandia) +- : thermo_extract tool: Vikas Varshney (Wright Patterson AFB) +- : fix ave/time and fix ave/spatial : Pieter in 't Veld (Sandia) +- : MEAM potential : Greg Wagner (Sandia) +- : optimized pair potentials for lj/cut, charmm/long, eam, morse : \ + James Fischer (High Performance Technologies), \ + David Richie and Vincent Natoli (Stone Ridge Technologies) +2006 : fix wall/lj126 : Mark Stevens (Sandia) +- : Stillinger-Weber and Tersoff potentials : \ + Aidan Thompson and Xiaowang Zhou (Sandia) +- : region prism : Pieter in 't Veld (Sandia) +- : fix momentum and recenter : Naveen Michaud-Agrawal (Johns Hopkins U) +- : multi-letter variable names : Naveen Michaud-Agrawal (Johns Hopkins U) +- : OPLS dihedral potential: Mark Stevens (Sandia) +- : POEMS coupled rigid body integrator: Rudranarayan Mukherjee (RPI) +- : faster pair hybrid potential: James Fischer \ + (High Performance Technologies, Inc), Vincent Natoli and \ + David Richie (Stone Ridge Technology) +- : breakable bond quartic potential: Chris Lorenz and Mark Stevens (Sandia) +- : DCD and XTC dump styles: Naveen Michaud-Agrawal (Johns Hopkins U) +- : grain boundary orientation fix : Koenraad Janssens and \ + David Olmsted (Sandia) +- : pair_style lj/smooth potential : Craig Maloney (UCSB) +- : radius-of-gyration spring fix : Naveen Michaud-Agrawal \ + (Johns Hopkins U) and Paul Crozier (Sandia) +- : self spring fix : Naveen Michaud-Agrawal (Johns Hopkins U) +- : EAM CoAl and AlCu potentials : Kwang-Reoul Lee (KIST, Korea) +- : cosine/squared angle potential : Naveen Michaud-Agrawal (Johns Hopkins U) +- : helix dihedral potential : Naveen Michaud-Agrawal (Johns Hopkins U) and \ + Mark Stevens (Sandia) +- : Finnis/Sinclair EAM: Tim Lau (MIT) +- : dissipative particle dynamics (DPD) potentials: Kurt Smith (U Pitt) and \ + Frank van Swol (Sandia) +- : TIP4P potential (4-site water): Ahmed Ismail and \ + Amalie Frischknecht (Sandia) +2005 : uniaxial strain fix: Carsten Svaneborg (Max Planck Institute) +- : compressed dump files: Erik Luijten (U Illinois) +- : cylindrical indenter fix: Ravi Agrawal (Northwestern U) +- : electric field fix: Christina Payne (Vanderbilt U) +- : AMBER <-> LAMMPS tool: Keir Novik (Univ College London) and \ + Vikas Varshney (U Akron) +- : CHARMM <-> LAMMPS tool: Pieter in 't Veld and Paul Crozier (Sandia) +- : Morse bond potential: Jeff Greathouse (Sandia) +- : radial distribution functions: Paul Crozier & Jeff Greathouse (Sandia) +- : force tables for long-range Coulombics: Paul Crozier (Sandia) +2004 : targeted molecular dynamics (TMD): Paul Crozier (Sandia) and \ + Christian Burisch (Bochum University, Germany) +- : FFT support for SGI SCLS (Altix): Jim Shepherd (Ga Tech) +- : lmp2cfg and lmp2traj tools: Ara Kooser, Jeff Greathouse, \ + Andrey Kalinichev (Sandia) +- : parallel tempering: Mark Sears (Sandia) +earlier : granular force fields and BC: Leo Silbert & Gary Grest (Sandia) +- : multi-harmonic dihedral potential: Mathias Putz (Sandia) +- : embedded atom method (EAM) potential: Stephen Foiles (Sandia) +- : msi2lmp tool: Steve Lustig (Dupont), Mike Peachey & John Carpenter (Cray) +- : HTFN energy minimizer: Todd Plantenga (Sandia) +- : class 2 force fields: Eric Simon (Cray) +- : NVT/NPT integrators: Mark Stevens (Sandia) +- : rRESPA: Mark Stevens & Paul Crozier (Sandia) +- : Ewald and PPPM solvers: Roy Pollock (LLNL) : :tb(s=:,ca1=c) diff --git a/doc/src/Intro_features.txt b/doc/src/Intro_features.txt new file mode 100644 index 0000000000..2a405ebf77 --- /dev/null +++ b/doc/src/Intro_features.txt @@ -0,0 +1,202 @@ +"Higher level section"_Intro.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +LAMMPS features :h3 + +LAMMPS is a classical molecular dynamics (MD) code with these general +classes of functionality: + +"General features"_#general +"Particle and model types"_#particle +"Interatomic potentials (force fields)"_#ff +"Atom creation"_#create +"Ensembles, constraints, and boundary conditions"_#ensemble +"Integrators"_#integrate +"Diagnostics"_#diag +"Output"_#output +"Multi-replica models"_#replica +"Pre- and post-processing"_#prepost +"Specialized features (beyond MD itself)"_#special :ul + +:line + +General features :h4,link(general) + + runs on a single processor or in parallel + distributed-memory message-passing parallelism (MPI) + spatial-decomposition of simulation domain for parallelism + open-source distribution + highly portable C++ + optional libraries used: MPI and single-processor FFT + GPU (CUDA and OpenCL), Intel Xeon Phi, and OpenMP support for many code features + easy to extend with new features and functionality + runs from an input script + syntax for defining and using variables and formulas + syntax for looping over runs and breaking out of loops + run one or multiple simulations simultaneously (in parallel) from one script + build as library, invoke LAMMPS thru library interface or provided Python wrapper + couple with other codes: LAMMPS calls other code, other code calls LAMMPS, umbrella code calls both :ul + +Particle and model types :h4,link(particle) +("atom style"_atom_style.html command) + + atoms + coarse-grained particles (e.g. bead-spring polymers) + united-atom polymers or organic molecules + all-atom polymers, organic molecules, proteins, DNA + metals + granular materials + coarse-grained mesoscale models + finite-size spherical and ellipsoidal particles + finite-size line segment (2d) and triangle (3d) particles + point dipole particles + rigid collections of particles + hybrid combinations of these :ul + +Interatomic potentials (force fields) :h4,link(ff) +("pair style"_pair_style.html, "bond style"_bond_style.html, +"angle style"_angle_style.html, "dihedral style"_dihedral_style.html, +"improper style"_improper_style.html, "kspace style"_kspace_style.html +commands) + + pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, \ + Yukawa, soft, class 2 (COMPASS), hydrogen bond, tabulated + charged pairwise potentials: Coulombic, point-dipole + manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), \ + embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, \ + REBO, AIREBO, ReaxFF, COMB, SNAP, Streitz-Mintmire, 3-body polymorphic + long-range interactions for charge, point-dipoles, and LJ dispersion: \ + Ewald, Wolf, PPPM (similar to particle-mesh Ewald) + polarization models: "QEq"_fix_qeq.html, \ + "core/shell model"_Section_howto.html#howto_26, \ + "Drude dipole model"_Section_howto.html#howto_27 + charge equilibration (QEq via dynamic, point, shielded, Slater methods) + coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO + mesoscopic potentials: granular, Peridynamics, SPH + electron force field (eFF, AWPMD) + bond potentials: harmonic, FENE, Morse, nonlinear, class 2, \ + quartic (breakable) + angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, \ + class 2 (COMPASS) + dihedral potentials: harmonic, CHARMM, multi-harmonic, helix, \ + class 2 (COMPASS), OPLS + improper potentials: harmonic, cvff, umbrella, class 2 (COMPASS) + polymer potentials: all-atom, united-atom, bead-spring, breakable + water potentials: TIP3P, TIP4P, SPC + implicit solvent potentials: hydrodynamic lubrication, Debye + force-field compatibility with common CHARMM, AMBER, DREIDING, \ + OPLS, GROMACS, COMPASS options + access to "KIM archive"_http://openkim.org of potentials via \ + "pair kim"_pair_kim.html + hybrid potentials: multiple pair, bond, angle, dihedral, improper \ + potentials can be used in one simulation + overlaid potentials: superposition of multiple pair potentials :ul + +Atom creation :h4,link(create) +("read_data"_read_data.html, "lattice"_lattice.html, +"create_atoms"_create_atoms.html, "delete_atoms"_delete_atoms.html, +"displace_atoms"_displace_atoms.html, "replicate"_replicate.html commands) + + read in atom coords from files + create atoms on one or more lattices (e.g. grain boundaries) + delete geometric or logical groups of atoms (e.g. voids) + replicate existing atoms multiple times + displace atoms :ul + +Ensembles, constraints, and boundary conditions :h4,link(ensemble) +("fix"_fix.html command) + + 2d or 3d systems + orthogonal or non-orthogonal (triclinic symmetry) simulation domains + constant NVE, NVT, NPT, NPH, Parinello/Rahman integrators + thermostatting options for groups and geometric regions of atoms + pressure control via Nose/Hoover or Berendsen barostatting in 1 to 3 dimensions + simulation box deformation (tensile and shear) + harmonic (umbrella) constraint forces + rigid body constraints + SHAKE bond and angle constraints + Monte Carlo bond breaking, formation, swapping + atom/molecule insertion and deletion + walls of various kinds + non-equilibrium molecular dynamics (NEMD) + variety of additional boundary conditions and constraints :ul + +Integrators :h4,link(integrate) +("run"_run.html, "run_style"_run_style.html, "minimize"_minimize.html commands) + + velocity-Verlet integrator + Brownian dynamics + rigid body integration + energy minimization via conjugate gradient or steepest descent relaxation + rRESPA hierarchical timestepping + rerun command for post-processing of dump files :ul + +Diagnostics :h4,link(diag) + + see various flavors of the "fix"_fix.html and "compute"_compute.html commands :ul + +Output :h4,link(output) +("dump"_dump.html, "restart"_restart.html commands) + + log file of thermodynamic info + text dump files of atom coords, velocities, other per-atom quantities + binary restart files + parallel I/O of dump and restart files + per-atom quantities (energy, stress, centro-symmetry parameter, CNA, etc) + user-defined system-wide (log file) or per-atom (dump file) calculations + spatial and time averaging of per-atom quantities + time averaging of system-wide quantities + atom snapshots in native, XYZ, XTC, DCD, CFG formats :ul + +Multi-replica models :h4,link(replica) + +"nudged elastic band"_neb.html +"parallel replica dynamics"_prd.html +"temperature accelerated dynamics"_tad.html +"parallel tempering"_temper.html :ul + +Pre- and post-processing :h4,link(prepost) + +A handful of pre- and post-processing tools are packaged with LAMMPS, +some of which can convert input and output files to/from formats used +by other codes; see the "Toos"_Tools.html doc page. :ulb,l + +Our group has also written and released a separate toolkit called +"Pizza.py"_pizza which provides tools for doing setup, analysis, +plotting, and visualization for LAMMPS simulations. Pizza.py is +written in "Python"_python and is available for download from "the +Pizza.py WWW site"_pizza. :l,ule + +:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) +:link(python,http://www.python.org) + +Specialized features :h4,link(special) + +LAMMPS can be built with optional packages which implement a variety +of additional capabilities. See the "Packages"_Packages.html doc +page for details. + +These are LAMMPS capabilities which you may not think of as typical +classical MD options: + +"static"_balance.html and "dynamic load-balancing"_fix_balance.html +"generalized aspherical particles"_body.html +"stochastic rotation dynamics (SRD)"_fix_srd.html +"real-time visualization and interactive MD"_fix_imd.html +calculate "virtual diffraction patterns"_compute_xrd.html +"atom-to-continuum coupling"_fix_atc.html with finite elements +coupled rigid body integration via the "POEMS"_fix_poems.html library +"QM/MM coupling"_fix_qmmm.html +Monte Carlo via "GCMC"_fix_gcmc.html and "tfMC"_fix_tfmc.html and "atom swapping"_fix_swap.html +"path-integral molecular dynamics (PIMD)"_fix_ipi.html and "this as well"_fix_pimd.html +"Direct Simulation Monte Carlo"_pair_dsmc.html for low-density fluids +"Peridynamics mesoscale modeling"_pair_peri.html +"Lattice Boltzmann fluid"_fix_lb_fluid.html +"targeted"_fix_tmd.html and "steered"_fix_smd.html molecular dynamics +"two-temperature electron model"_fix_ttm.html :ul diff --git a/doc/src/Intro_nonfeatures.txt b/doc/src/Intro_nonfeatures.txt new file mode 100644 index 0000000000..29b2eacf08 --- /dev/null +++ b/doc/src/Intro_nonfeatures.txt @@ -0,0 +1,83 @@ +"Higher level section"_Intro.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +LAMMPS non-features :h3 + +LAMMPS is designed to be a fast, parallel engine for molecular +dynamics (MD) simulations. It provides only a modest amount of +functionality for setting up simulations and analyzing their output. + +Specifically, LAMMPS does not: + +run thru a GUI +build molecular systems +assign force-field coefficients automagically +perform sophisticated analyses of your MD simulation +visualize your MD simulation interactively +plot your output data :ul + +Here are suggestions on how to perform these tasks: + +GUI: LAMMPS can be built as a library and a Python wrapper that wraps +the library interface is provided. Thus, GUI interfaces can be +written in Python (or C or C++ if desired) that run LAMMPS and +visualize or plot its output. Examples of this are provided in the +python directory and described on the "Python"_Python.html doc +page. :ulb,l + +Builder: Several pre-processing tools are packaged with LAMMPS. Some +of them convert input files in formats produced by other MD codes such +as CHARMM, AMBER, or Insight into LAMMPS input formats. Some of them +are simple programs that will build simple molecular systems, such as +linear bead-spring polymer chains. The moltemplate program is a true +molecular builder that will generate complex molecular models. See +the "Tools"_Tools.html doc page for details on tools packaged with +LAMMPS. The "Pre/post processing +page"_http:/lammps.sandia.gov/prepost.html of the LAMMPS website +describes a variety of 3rd party tools for this task. :l + +Force-field assignment: The conversion tools described in the previous +bullet for CHARMM, AMBER, and Insight will also assign force field +coefficients in the LAMMPS format, assuming you provide CHARMM, AMBER, +or Accelerys force field files. :l + +Simulation analyses: If you want to perform analyses on-the-fly as +your simulation runs, see the "compute"_compute.html and +"fix"_fix.html doc pages, which list commands that can be used in a +LAMMPS input script. Also see the "Modify"_Modify.html doc page for +info on how to add your own analysis code or algorithms to LAMMPS. +For post-processing, LAMMPS output such as "dump file +snapshots"_dump.html can be converted into formats used by other MD or +post-processing codes. Some post-processing tools packaged with +LAMMPS will do these conversions. Scripts provided with the {python} +tool in the tools directory can extract and massage data in dump files +to make it easier to import into other programs. See the +"Tools"_Tools.html doc page for details on these various options. :l + +Visualization: LAMMPS can produce JPG or PNG snapshot images +on-the-fly via its "dump image"_dump_image.html command. For +high-quality, interactive visualization there are many excellent and +free tools available. See the "Other Codes +page"_http://lammps.sandia.gov/viz.html page of the LAMMPS website for +visualization packages that can use LAMMPS output data. :l + +Plotting: See the next bullet about Pizza.py as well as the +"Python"_Python.html doc page for examples of plotting LAMMPS output. +Scripts provided with the {python} tool in the tools directory will +extract and massage data in log and dump files to make it easier to +analyze and plot. See the "Tools"_Tools.html doc page for more +discussion of the various tools. :l + +Pizza.py: Our group has also written a separate toolkit called +"Pizza.py"_http://pizza.sandia.gov which can do certain kinds of +setup, analysis, plotting, and visualization (via OpenGL) for LAMMPS +simulations. It thus provides some functionality for several of the +above bullets. Pizza.py is written in "Python"_http://www.python.org +and is available for download from "this +page"_http://www.cs.sandia.gov/~sjplimp/download.html. :l,ule diff --git a/doc/src/Intro_opensource.txt b/doc/src/Intro_opensource.txt new file mode 100644 index 0000000000..83384a22a2 --- /dev/null +++ b/doc/src/Intro_opensource.txt @@ -0,0 +1,44 @@ +"Higher level section"_Intro.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +LAMMPS open-source license :h3 + +LAMMPS is a freely-available open-source code, distributed under the +terms of the "GNU Public License"_gnu, which means you can use or +modify the code however you wish. + +LAMMPS comes with no warranty of any kind. As each source file states +in its header, it is a copyrighted code that is distributed free-of- +charge, under the terms of the "GNU Public License"_gnu (GPL). This +is often referred to as open-source distribution - see +"www.gnu.org"_gnuorg or "www.opensource.org"_opensource. The legal +text of the GPL is in the LICENSE file included in the LAMMPS +distribution. + +:link(gnu,http://www.gnu.org/copyleft/gpl.html) +:link(gnuorg,http://www.gnu.org) +:link(opensource,http://www.opensource.org) + +Here is a summary of what the GPL means for LAMMPS users: + +(1) Anyone is free to use, modify, or extend LAMMPS in any way they +choose, including for commercial purposes. + +(2) If you distribute a modified version of LAMMPS, it must remain +open-source, meaning you distribute it under the terms of the GPL. +You should clearly annotate such a code as a derivative version of +LAMMPS. + +(3) If you release any code that includes LAMMPS source code, then it +must also be open-sourced, meaning you distribute it under the terms +of the GPL. + +(4) If you give LAMMPS files to someone else, the GPL LICENSE file and +source file headers (including the copyright and GPL notices) should +remain part of the code. diff --git a/doc/src/Intro_overview.txt b/doc/src/Intro_overview.txt new file mode 100644 index 0000000000..97489b4867 --- /dev/null +++ b/doc/src/Intro_overview.txt @@ -0,0 +1,59 @@ +"Higher level section"_Intro.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Overview of LAMMPS :h3 + +LAMMPS is a classical molecular dynamics (MD) code that models +ensembles of particles in a liquid, solid, or gaseous state. It can +model atomic, polymeric, biological, solid-state (metals, ceramics, +oxides), granular, coarse-grained, or macroscopic systems using a +variety of interatomic potentials (force fields) and boundary +conditions. The majority of these models are for materials of various +kinds. It can model 2d or 3d systems with only a few particles up to +millions or billions. + +LAMMPS can be built and run on a laptop or destop machine, but is +designed for parallel computers. It will run on any parallel machine +that supports the "MPI"_mpi message-passing library. This includes +shared-memory boxes and distributed-memory clusters and +supercomputers. + +:link(mpi,http://www-unix.mcs.anl.gov/mpi) + +LAMMPS is written in C++. Earlier versions were written in F77 and +F90. See the "History page"_http://lammps.sandia.gov/history.html of +the website for details. All versions can be downloaded from the +"LAMMPS website"_lws. + +LAMMPS is designed to be easy to modify or extend with new +capabilities, such as new force fields, atom types, boundary +conditions, or diagnostics. See the "Modify"_Modify.html doc page for +more details. + +In the most general sense, LAMMPS integrates Newton's equations of +motion for a collection of interacting particles. A single particle +can be an atom or molecule or electron, a coarse-grained cluster of +atoms, or a mesoscopic or macroscopic clump of material. The +interaction models that LAMMPS includes are mostly short-range in +nature; some long-range models are included as well. + +LAMMPS uses neighbor lists to keep track of nearby particles. The +lists are optimized for systems with particles that are repulsive at +short distances, so that the local density of particles never becomes +too large. This is in contrast to methods used for modeling plasmas +or gravitational bodies (e.g. galaxy formation). + +On parallel machines, LAMMPS uses spatial-decomposition techniques to +partition the simulation domain into small sub-domains of equal +computational cost, one of which is assigned to each processor. +Processors communicate and store "ghost" atom information for atoms +that border their sub-domain. + + + diff --git a/doc/src/Intro_website.txt b/doc/src/Intro_website.txt new file mode 100644 index 0000000000..61c9babe1c --- /dev/null +++ b/doc/src/Intro_website.txt @@ -0,0 +1,42 @@ +"Higher level section"_Intro.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +Additional website links :h3 + +The "LAMMPS website"_lws has a variety of additional info about +LAMMPS, beyond what is in this manual. Some of the other pages in +this Intr are included in this list. + +"Brief intro and recently added significant features"_lws +"List of features"_http://lammps.sandia.gov/features.html +"List of non-features"_http://lammps.sandia.gov/non_features.html +"Recent bug fixes and new features"_http://lammps.sandia.gov/bug.html :ul + +"Download info"_http://lammps.sandia.gov/download.html +"GitHub site"_https://github.com/lammps/lammps +"SourceForge site"_https://sourceforge.net/projects/lammps +"LAMMPS open-source license"_http://lammps.sandia.gov/open_source.html :ul + +"Glossary of MD terms relevant to LAMMPS"_http://lammps.sandia.gov/glossary.html +"LAMMPS highlights with images"_http://lammps.sandia.gov/pictures.html +"LAMMPS highlights with movies"_http://lammps.sandia.gov/movies.html +"Mail list"_http://lammps.sandia.gov/mail.html +"Workshops"_http://lammps.sandia.gov/workshops.html +"Tutorials"_http://lammps.sandia.gov/tutorials.html +"Developer guide"_http://lammps.sandia.gov/Developer.pdf :ul + +"Pre- and post-processing tools for LAMMPS"_http://lammps.sandia.gov/prepost.html +"Other software usable with LAMMPS"_http://lammps.sandia.gov/offsite.html +"Viz tools usable with LAMMPS"_http://lammps.sandia.gov/viz.html :ul + +"Benchmark performance"_http://lammps.sandia.gov/bench.html +"Publications that have cited LAMMPS"_http://lammps.sandia.gov/papers.html +"Authors of LAMMPS"_http://lammps.sandia.gov/authors.html +"History of LAMMPS development"_http://lammps.sandia.gov/history.html +"Funding for LAMMPS"_http://lammps.sandia.gov/funding.html :ul diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 3fe5a25fbb..4e4332a05a 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -21,7 +21,7 @@

LAMMPS Documentation :c,h1 -16 Mar 2018 version :c,h2 +16 Jul 2018 version :c,h2 "What is a LAMMPS version?"_Manual_version.html @@ -29,15 +29,18 @@ LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS is a classical molecular dynamics simulation code designed to -run efficiently on parallel computers. It was developed originally at -Sandia National Laboratories, a US Department of Energy facility, with -funding from the DOE. It is an open-source code, distributed freely -under the terms of the GNU Public License (GPL). +run efficiently on parallel computers. It is primarily used for +materials modeling of various kinds. It was developed originally at +Sandia National Laboratories, a US Department of Energy facility. The +majority of funding for LAMMPS has come from the US Department of +Energy (DOE). LAMMPS is an open-source code, distributed freely under +the terms of the GNU Public License (GPL). -The "LAMMPS website"_lws has information about the code authors, a -"mail list"_http://lammps.sandia.gov where users can post questions, -and a "GitHub site"https://github.com/lammps/lammps where all LAMMPS -development is coordinated. +The "LAMMPS website"_lws has a variety of information about the code. +It includes links to an on-line version of this manual, a "mail +list"_http://lammps.sandia.gov/mail.html where users can post +questions, and a "GitHub site"https://github.com/lammps/lammps where +all LAMMPS development is coordinated. :line From 39f61a78f26308dc844a8b25f98c600566a463bb Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 2 Aug 2018 14:09:00 -0600 Subject: [PATCH 394/675] couple more doc page tweaks --- doc/src/Intro_overview.txt | 5 ++--- doc/src/Manual.txt | 14 +++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/doc/src/Intro_overview.txt b/doc/src/Intro_overview.txt index 97489b4867..51ad218216 100644 --- a/doc/src/Intro_overview.txt +++ b/doc/src/Intro_overview.txt @@ -14,9 +14,8 @@ ensembles of particles in a liquid, solid, or gaseous state. It can model atomic, polymeric, biological, solid-state (metals, ceramics, oxides), granular, coarse-grained, or macroscopic systems using a variety of interatomic potentials (force fields) and boundary -conditions. The majority of these models are for materials of various -kinds. It can model 2d or 3d systems with only a few particles up to -millions or billions. +conditions. It can model 2d or 3d systems with only a few particles +up to millions or billions. LAMMPS can be built and run on a laptop or destop machine, but is designed for parallel computers. It will run on any parallel machine diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 4e4332a05a..b38eb39560 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -28,13 +28,13 @@ LAMMPS Documentation :c,h1 LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel Simulator. -LAMMPS is a classical molecular dynamics simulation code designed to -run efficiently on parallel computers. It is primarily used for -materials modeling of various kinds. It was developed originally at -Sandia National Laboratories, a US Department of Energy facility. The -majority of funding for LAMMPS has come from the US Department of -Energy (DOE). LAMMPS is an open-source code, distributed freely under -the terms of the GNU Public License (GPL). +LAMMPS is a classical molecular dynamics simulation code with a focus +on materials modeling. It was designed to run efficiently on parallel +computers. It was developed originally at Sandia National +Laboratories, a US Department of Energy facility. The majority of +funding for LAMMPS has come from the US Department of Energy (DOE). +LAMMPS is an open-source code, distributed freely under the terms of +the GNU Public License (GPL). The "LAMMPS website"_lws has a variety of information about the code. It includes links to an on-line version of this manual, a "mail From f3300135849de9ffaa657ffd7da795e2431706d9 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 2 Aug 2018 14:26:02 -0600 Subject: [PATCH 395/675] lost SPIN in package list --- doc/src/Packages_details.txt | 33 +++++++++++++++++++++++++++++++++ doc/src/Packages_standard.txt | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 543578054c..e27c67633b 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -53,6 +53,7 @@ as contained in the file name. "RIGID"_#RIGID, "SHOCK"_#SHOCK, "SNAP"_#SNAP, +"SPIN"_#SPIN, "SRD"_#SRD, "VORONOI"_#VORONOI :tb(c=6,ea=c) @@ -1352,6 +1353,38 @@ examples/snap :ul :line +SPIN package :link(SPIN),h4 + +[Contents:] + +Model atomic magnetic spins classically, coupled to atoms moving in +the usual manner via MD. Various pair, fix, and compute styles. + +[Author:] Julian Tranchida (Sandia). + +[Install or un-install:] + +make yes-spin +make machine :pre + +make no-spin +make machine :pre + +[Supporting info:] + +src/SPIN: filenames -> commands +"Howto spin"_Howto_spin.html +"pair_style spin/dmi"_pair_spin_dmi.html +"pair_style spin/exchange"_pair_spin_exchange.html +"pair_style spin/magelec"_pair_spin_magelec.html +"pair_style spin/neel"_pair_spin_neel.html +"fix nve/spin"_fix_nve_spin.html +"fix precession/spin"_fix_precession_spin.html +"compute spin"_compute_spin.html +examples/SPIN :ul + +:line + SRD package :link(SRD),h4 [Contents:] diff --git a/doc/src/Packages_standard.txt b/doc/src/Packages_standard.txt index b2c06eebfd..cff2d38273 100644 --- a/doc/src/Packages_standard.txt +++ b/doc/src/Packages_standard.txt @@ -61,5 +61,5 @@ Package, Description, Doc page, Example, Library "RIGID"_Packages_details.html#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, - "SHOCK"_Packages_details.html#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, - "SNAP"_Packages_details.html#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, - -"SRD"_Packages_details.html#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - +"SPIN"_#SPIN, magnetic atomic spin dynamics, "Howto spin"_Howto_spin.html, SPIN, -"SRD"_Packages_details.html#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - "VORONOI"_Packages_details.html#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l) From b2d1332d461c066cbab1066f5961913d48fce8ca Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 2 Aug 2018 14:47:20 -0600 Subject: [PATCH 396/675] change proc count to color for MPI_Comm_split --- doc/src/Section_start.txt | 31 +++++++++++++++++-------------- examples/message/README | 9 ++++----- src/lammps.cpp | 26 +++++++++++--------------- 3 files changed, 32 insertions(+), 34 deletions(-) diff --git a/doc/src/Section_start.txt b/doc/src/Section_start.txt index f38339661b..80f6b0ffc4 100644 --- a/doc/src/Section_start.txt +++ b/doc/src/Section_start.txt @@ -1352,24 +1352,27 @@ specified file is "none", then no log files are created. Using a "log"_log.html command in the input script will override this setting. Option -plog will override the name of the partition log files file.N. --mpi P :pre +-mpi color :pre If used, this must be the first command-line argument after the LAMMPS -executable name. It is only used when running LAMMPS in client/server -mode with the "mpi/one" mode of messaging provided by the -"message"_message.html command and the CSlib library LAMMPS links with -from the lib/message directory. See the "message"_message.html -command for more details - -In the mpi/one mode of messaging, both executables (the client and the -server) are launched by one mpirun command. P should be specified as -the number of processors (MPI tasks) the first executable is running -on (could be the client or the server code). - -This information is required so that both codes can shrink the -MPI_COMM_WORLD communicator they are part of to the subset of +executable name. It is only used when LAMMPS is launched by an mpirun +command which also launches another executable(s) (the other +executable could be LAMMPS as well) at the same time. The color is an +integer value which should be different for each executable (another +application may set this value in a different way). LAMMPS and the +other executable(s) perform an MPI_Comm_split() with their own colors +to shrink the MPI_COMM_WORLD communication to be the subset of processors they are actually running on. +Currently, this is only used in LAMMPS to perform client/server +messaging with another application. LAMMPS can act as either a client +or server (or both). + +Specifically, this refers to the "mpi/one" mode of messaging provided +by the "message"_message.html command and the CSlib library LAMMPS +links with from the lib/message directory. See the +"message"_message.html command for more details. + -nocite :pre Disable writing the log.cite file which is normally written to list diff --git a/examples/message/README b/examples/message/README index 213dbbde51..63055177a4 100644 --- a/examples/message/README +++ b/examples/message/README @@ -91,12 +91,11 @@ Mpi/one mode of messaging: Launch LAMMPS twice in a single mpirun command: -mpirun -np 2 lmp_mpi -mpi 2 -in in.message.client -v mode mpione -log log.client : -np 4 lmp_mpi -mpi 2 -in in.message.server -v mode mpione -log log.server +mpirun -np 2 lmp_mpi -mpi 0 -in in.message.client -v mode mpione -log log.client : -np 4 lmp_mpi -mpi 1 -in in.message.server -v mode mpione -log log.server The two -np values determine how many procs the client and the server run on. -A LAMMPS executable run in this manner must use the -mpi P -command-line option as their first option, where P is the number of -processors the first code in the mpirun command (client or server) is -running on. +A LAMMPS executable run in this manner must use the -mpi color +command-line option as their first option, where color is set to +one integer value for the 1st app, and another value for the 2nd app. diff --git a/src/lammps.cpp b/src/lammps.cpp index 282250c642..dec4a57186 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -86,17 +86,17 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) // check if -mpi is first arg // if so, then 2 apps were launched with one mpirun command // this means passed communicator (e.g. MPI_COMM_WORLD) is bigger than LAMMPS - // e.g. for client/server coupling with another code - // communicator needs to shrink to be just LAMMPS - // syntax: -mpi P1 means P1 procs for one app, P-P1 procs for second app - // LAMMPS could be either app, based on proc IDs + // e.g. for client/server coupling with another code + // in the future LAMMPS might leverage this in other ways + // universe communicator needs to shrink to be just LAMMPS + // syntax: -mpi color + // color = integer for this app, different than other app(s) // do the following: // perform an MPI_Comm_split() to create a new LAMMPS-only subcomm - // NOTE: assuming other app is doing the same thing, else will hang! + // NOTE: this assumes other app(s) does same thing, else will hang! // re-create universe with subcomm - // store full two-app comm in cscomm + // store full multi-app comm in cscomm // cscomm is used by CSLIB package to exchange messages w/ other app - // eventually should extend to N > 2 apps launched with one mpirun command int iarg = 1; if (narg-iarg >= 2 && (strcmp(arg[iarg],"-mpi") == 0 || @@ -104,13 +104,9 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) int me,nprocs; MPI_Comm_rank(communicator,&me); MPI_Comm_size(communicator,&nprocs); - int p1 = atoi(arg[iarg+1]); - if (p1 <= 0 || p1 >= nprocs) - error->universe_all(FLERR,"Invalid command-line argument"); - int which = 0; - if (me >= p1) which = 1; + int color = atoi(arg[iarg+1]); MPI_Comm subcomm; - MPI_Comm_split(communicator,which,me,&subcomm); + MPI_Comm_split(communicator,color,me,&subcomm); cscomm = communicator; communicator = subcomm; delete universe; @@ -656,8 +652,8 @@ LAMMPS::~LAMMPS() delete [] suffix; delete [] suffix2; - // free the MPI comm created by -mpi command-line arg - // it was passed to universe as if origianl universe world + // free the MPI comm created by -mpi command-line arg processed in constructor + // it was passed to universe as if original universe world // may have been split later by partitions, universe will free the splits // free a copy of uorig here, so check in universe destructor will still work From 9cc75792d690014555b52f8a0876bbcfb04d81ab Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 2 Aug 2018 23:29:29 -0400 Subject: [PATCH 397/675] Update lammps.book --- doc/src/lammps.book | 53 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/doc/src/lammps.book b/doc/src/lammps.book index f9798da227..a25d6e0629 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -1,7 +1,13 @@ #HTMLDOC 1.8.28 -t pdf14 -f "../Manual.pdf" --book --toclevels 4 --no-numbered --toctitle "Table of Contents" --title --textcolor #000000 --linkcolor #0000ff --linkstyle plain --bodycolor #ffffff --size Universal --left 1.00in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --header1 ... --footer ..1 --nup 1 --tocheader .t. --tocfooter ..i --portrait --color --no-pscommands --no-xrxcomments --compression=9 --jpeg=0 --fontsize 11.0 --fontspacing 1.2 --headingfont Sans --bodyfont Serif --headfootsize 11.0 --headfootfont Sans-Bold --charset iso-8859-15 --links --embedfonts --pagemode document --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all --owner-password "" --user-password "" --browserwidth 680 --no-strict --no-overflow Manual.html -Section_intro.html +Intro.html +Intro_overview.html +Intro_features.html +Intro_nonfeatures.html +Intro_opensource.html +Intro_authors.html +Intro_website.html Section_start.html Section_commands.html Packages.html @@ -19,7 +25,43 @@ Speed_kokkos.html Speed_omp.html Speed_opt.html Speed_compare.html -Section_howto.html +Howto.html +Howto_github.html +Howto_pylammps.html +Howto_bash.html +Howto_restart.html +Howto_viz.html +Howto_multiple.html +Howto_replica.html +Howto_library.html +Howto_couple.html +Howto_output.html +Howto_chunk.html +Howto_2d.html +Howto_triclinic.html +Howto_walls.html +Howto_nemd.html +Howto_granular.html +Howto_spherical.html +Howto_dispersion.html +Howto_temperature.html +Howto_thermostat.html +Howto_barostat.html +Howto_elastic.html +Howto_kappa.html +Howto_viscosity.html +Howto_diffusion.html +Howto_bioFF.html +Howto_tip3p.html +Howto_tip4p.html +Howto_spc.html +Howto_body.html +Howto_polarizable.html +Howto_coreshell.html +Howto_drude.html +Howto_drude2.html +Howto_manifold.html +Howto_spins.html Examples.html Tools.html Modify.html @@ -54,13 +96,6 @@ Errors_common.html Errors_bugs.html Errors_messages.html Errors_warnings.html -Section_history.html - -lammps_tutorials.html -tutorial_bash_on_windows.html -tutorial_drude.html -tutorial_github.html -tutorial_pylammps.html lammps_support.html body.html From 5789ef91283b353753573cdee492ca758ec1837b Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 3 Aug 2018 10:08:02 -0600 Subject: [PATCH 398/675] bug-fix for slope() function in variable --- examples/DIFFUSE/README | 4 +- examples/DIFFUSE/log.13Oct16.msd.2d.g++.8 | 245 ----------------- examples/DIFFUSE/log.3Aug18.msd.2d.g++.8 | 251 ++++++++++++++++++ ...vacf.2d.g++.8 => log.3Aug18.vacf.2d.g++.8} | 54 ++-- src/variable.cpp | 189 ++++++++----- 5 files changed, 401 insertions(+), 342 deletions(-) delete mode 100644 examples/DIFFUSE/log.13Oct16.msd.2d.g++.8 create mode 100644 examples/DIFFUSE/log.3Aug18.msd.2d.g++.8 rename examples/DIFFUSE/{log.13Oct16.vacf.2d.g++.8 => log.3Aug18.vacf.2d.g++.8} (84%) diff --git a/examples/DIFFUSE/README b/examples/DIFFUSE/README index df2a675f73..e78ca2eacf 100644 --- a/examples/DIFFUSE/README +++ b/examples/DIFFUSE/README @@ -47,7 +47,7 @@ compute the diffusion coefficient. You can see that both measures give roughly the same answer and rapidly become roughly constant for the 100K step simulation. -Dcoeff = 0.36 +Dcoeff = 0.33 (2) in.vacf.2d @@ -58,4 +58,4 @@ that point in time, converted into the diffusion coefficient. You can see the VACF approach gives a more noise, fluctuating value for the diffusion coefficient, compared to the MSD approach. -Dcoeff = 0.25 to 0.45 +Dcoeff = ~0.25 diff --git a/examples/DIFFUSE/log.13Oct16.msd.2d.g++.8 b/examples/DIFFUSE/log.13Oct16.msd.2d.g++.8 deleted file mode 100644 index 473aa56527..0000000000 --- a/examples/DIFFUSE/log.13Oct16.msd.2d.g++.8 +++ /dev/null @@ -1,245 +0,0 @@ -LAMMPS (13 Oct 2016) -# sample LAMMPS input script for diffusion of 2d LJ liquid -# mean-squared displacement via compute msd - -# settings - -variable x equal 40 -variable y equal 40 - -variable rho equal 0.6 -variable t equal 1.0 -variable rc equal 2.5 - -# problem setup - -units lj -dimension 2 -atom_style atomic -neigh_modify delay 0 every 1 - -lattice sq2 ${rho} -lattice sq2 0.6 -Lattice spacing in x,y,z = 1.82574 1.82574 1.82574 -region simbox block 0 $x 0 $y -0.1 0.1 -region simbox block 0 40 0 $y -0.1 0.1 -region simbox block 0 40 0 40 -0.1 0.1 -create_box 1 simbox -Created orthogonal box = (0 0 -0.182574) to (73.0297 73.0297 0.182574) - 4 by 2 by 1 MPI processor grid -create_atoms 1 box -Created 3200 atoms - -pair_style lj/cut ${rc} -pair_style lj/cut 2.5 -pair_coeff * * 1 1 - -mass * 1.0 -velocity all create $t 97287 -velocity all create 1 97287 - -fix 1 all nve -fix 2 all langevin $t $t 0.1 498094 -fix 2 all langevin 1 $t 0.1 498094 -fix 2 all langevin 1 1 0.1 498094 -fix 3 all enforce2d - -# equilibration run - -thermo 1000 -run 5000 -Neighbor list info ... - 1 neighbor list requests - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2.8 - ghost atom cutoff = 2.8 - binsize = 1.4 -> bins = 53 53 1 -Memory usage per processor = 2.478 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1 -1.56492 0 -0.5652325 -1.5346995 - 1000 0.97537833 -1.5723957 0 -0.5973222 0.92877783 - 2000 0.99008371 -1.5748206 0 -0.58504633 1.0809416 - 3000 1.0111412 -1.5848987 0 -0.57407352 1.0174297 - 4000 1.0055417 -1.5857581 0 -0.58053054 0.95647691 - 5000 0.97069905 -1.5851114 0 -0.61471567 0.90108287 -Loop time of 0.554412 on 8 procs for 5000 steps with 3200 atoms - -Performance: 3896017.421 tau/day, 9018.559 timesteps/s -98.9% CPU use with 8 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.23992 | 0.24608 | 0.25161 | 0.7 | 44.39 -Neigh | 0.063106 | 0.064417 | 0.066279 | 0.4 | 11.62 -Comm | 0.072465 | 0.085066 | 0.094837 | 2.3 | 15.34 -Output | 0.00013208 | 0.00013691 | 0.00014591 | 0.0 | 0.02 -Modify | 0.11441 | 0.11621 | 0.11769 | 0.3 | 20.96 -Other | | 0.04251 | | | 7.67 - -Nlocal: 400 ave 406 max 394 min -Histogram: 1 1 0 1 0 2 1 0 1 1 -Nghost: 202.5 ave 212 max 191 min -Histogram: 1 0 0 0 3 1 0 2 0 1 -Neighs: 2800.88 ave 2903 max 2690 min -Histogram: 1 1 0 0 1 2 1 0 1 1 - -Total # of neighbors = 22407 -Ave neighs/atom = 7.00219 -Neighbor list builds = 599 -Dangerous builds = 0 - -unfix 2 - -# data gathering run - -reset_timestep 0 - -# factor of 4 in 2 variables is for 2d - -compute msd all msd com yes -variable twopoint equal c_msd[4]/4/(step*dt+1.0e-6) -fix 9 all vector 10 c_msd[4] -variable fitslope equal slope(f_9)/4/(10*dt) - -thermo_style custom step temp c_msd[4] v_twopoint v_fitslope - -# only need to run for 10K steps to make a good 100-frame movie - -#dump 1 all custom 1 tmp.dump id type vx vy vz - -#dump 2 all image 100 image.*.jpg type type zoom 1.6 adiam 1.2 - -thermo 1000 -run 100000 -Memory usage per processor = 2.853 Mbytes -Step Temp c_msd[4] v_twopoint v_fitslope - 0 0.97069905 0 0 5e+20 - 1000 0.98138076 4.0484996 0.20242494 0.18046446 - 2000 0.97606079 9.2121392 0.23030346 0.2091528 - 3000 0.97924866 14.815034 0.24691721 0.22619184 - 4000 0.98568451 20.516817 0.25646019 0.23715506 - 5000 0.97551815 27.33922 0.27339219 0.24709999 - 6000 0.98482252 34.37734 0.28647782 0.25735178 - 7000 0.9672559 41.696689 0.29783348 0.26654059 - 8000 0.9836541 48.340277 0.30212673 0.27440308 - 9000 0.99087147 56.042692 0.31134828 0.28113047 - 10000 0.99663166 63.69663 0.31848314 0.28767921 - 11000 0.97776688 71.144109 0.32338231 0.29344527 - 12000 0.98246011 78.301774 0.32625739 0.29849471 - 13000 0.98788732 85.061923 0.32716124 0.3026655 - 14000 0.96872483 91.1658 0.32559214 0.30601023 - 15000 0.98955796 97.278388 0.32426129 0.3084275 - 16000 0.99855196 104.23997 0.3257499 0.31049883 - 17000 0.98600861 110.66055 0.3254722 0.31220348 - 18000 0.98696963 116.90111 0.32472531 0.31352676 - 19000 0.9881192 124.21305 0.32687644 0.31480062 - 20000 0.98527319 131.09874 0.32774685 0.31596198 - 21000 0.99015191 137.89263 0.32831579 0.31705324 - 22000 0.97972418 146.68982 0.33338595 0.31833889 - 23000 0.98911012 155.1264 0.33723129 0.31979515 - 24000 0.98810498 162.88634 0.33934653 0.32131187 - 25000 0.96961962 170.37907 0.34075814 0.32276215 - 26000 0.99118408 179.26511 0.34474059 0.32427111 - 27000 0.98515159 185.90764 0.3442734 0.32574529 - 28000 0.98951677 192.12183 0.34307469 0.32700292 - 29000 0.9832026 196.99457 0.33964581 0.32799023 - 30000 0.98449493 203.48475 0.33914124 0.3287171 - 31000 0.96585993 210.06193 0.33880956 0.32935775 - 32000 0.98758117 218.94174 0.34209646 0.33001591 - 33000 0.98875584 225.96489 0.34237104 0.33072947 - 34000 0.98007229 233.5792 0.34349882 0.3314385 - 35000 0.98415295 241.98148 0.34568783 0.33216634 - 36000 0.98101154 250.30876 0.34765106 0.33295272 - 37000 0.97606878 258.2127 0.34893608 0.33377673 - 38000 0.97220293 266.40464 0.35053242 0.33459273 - 39000 0.979783 272.8578 0.34981769 0.33539728 - 40000 0.98375673 279.87598 0.34984497 0.33609699 - 41000 0.97506523 288.07676 0.35131312 0.33677708 - 42000 0.97106749 296.11647 0.3525196 0.33751312 - 43000 0.97717259 304.46747 0.35403194 0.33823441 - 44000 0.98541435 312.57228 0.35519578 0.3389771 - 45000 0.97678287 321.82674 0.35758527 0.33973306 - 46000 0.98169719 329.78197 0.35845866 0.34051748 - 47000 0.99471466 337.11283 0.35863066 0.34127239 - 48000 0.98332437 346.0754 0.3604952 0.34202442 - 49000 0.98126947 356.11859 0.36338631 0.34282132 - 50000 0.98809751 365.65248 0.36565248 0.34368171 - 51000 0.95919516 373.91833 0.36658659 0.34454516 - 52000 0.98097913 381.26492 0.36660089 0.34538506 - 53000 0.97774072 388.81031 0.36680218 0.34618232 - 54000 0.99096915 395.56767 0.36626636 0.3469296 - 55000 0.97652739 401.72735 0.36520668 0.34760374 - 56000 0.99185306 407.28834 0.3636503 0.34819906 - 57000 0.96289342 414.75298 0.3638184 0.34871992 - 58000 0.97871716 424.69443 0.36611588 0.34927986 - 59000 0.98637393 433.14205 0.36706953 0.34986296 - 60000 0.98009845 438.14533 0.36512111 0.35040349 - 61000 0.99416712 446.08007 0.3656394 0.35088379 - 62000 0.97612483 450.90846 0.36363585 0.35132647 - 63000 0.97786531 455.36749 0.36140277 0.35167458 - 64000 0.99080668 458.04873 0.35785057 0.3519105 - 65000 0.97952497 461.31241 0.3548557 0.3520506 - 66000 0.98095955 463.91727 0.35145248 0.35207764 - 67000 0.98370788 468.93 0.34994776 0.35204043 - 68000 0.96931818 471.07765 0.34638063 0.35192685 - 69000 0.98512552 474.59146 0.34390685 0.35174053 - 70000 0.98065743 478.66071 0.3419005 0.35149002 - 71000 0.98971283 482.57357 0.33984054 0.35119434 - 72000 0.99890324 485.32018 0.3370279 0.35084345 - 73000 0.98649924 490.19497 0.33574998 0.35043722 - 74000 0.98723422 496.04991 0.33516886 0.35003351 - 75000 1.0025633 501.6313 0.33442087 0.34962094 - 76000 0.97859959 505.97813 0.33288035 0.34921013 - 77000 0.97973006 510.55334 0.33152814 0.3487692 - 78000 0.9903944 515.06966 0.33017286 0.34830833 - 79000 0.96847518 518.76483 0.32833217 0.3478214 - 80000 0.99171112 524.18127 0.32761329 0.34733349 - 81000 0.97202573 529.09959 0.32660468 0.3468315 - 82000 0.99368438 535.80271 0.32670897 0.34633058 - 83000 0.97932483 543.08233 0.32715803 0.34586259 - 84000 0.99078651 547.57861 0.32593965 0.34540839 - 85000 0.98973457 552.24581 0.32485048 0.34493584 - 86000 0.9835873 557.3493 0.32404029 0.34446152 - 87000 0.97180564 564.93434 0.32467491 0.34400358 - 88000 0.99743353 571.39837 0.32465817 0.3435667 - 89000 0.98993437 577.81703 0.32461631 0.3431411 - 90000 0.9926071 583.39378 0.32410765 0.342724 - 91000 0.98800458 591.08741 0.3247733 0.34232767 - 92000 0.98501879 596.10133 0.32396811 0.34193949 - 93000 0.98810082 604.02652 0.32474544 0.3415681 - 94000 0.97563748 609.43676 0.32416849 0.341209 - 95000 0.97283448 615.15754 0.32376713 0.34084828 - 96000 0.9883071 622.30912 0.32411933 0.34049871 - 97000 0.97717678 628.84457 0.32414669 0.34016355 - 98000 0.97190208 634.37377 0.32366009 0.3398341 - 99000 0.98687379 640.66666 0.32356902 0.33950845 - 100000 0.97559757 646.96406 0.32348203 0.33919036 -Loop time of 9.58779 on 8 procs for 100000 steps with 3200 atoms - -Performance: 4505729.040 tau/day, 10429.928 timesteps/s -99.4% CPU use with 8 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 4.8572 | 4.9363 | 4.9822 | 1.7 | 51.49 -Neigh | 1.3583 | 1.376 | 1.3991 | 1.2 | 14.35 -Comm | 1.5192 | 1.7079 | 1.8264 | 7.2 | 17.81 -Output | 0.0085125 | 0.0086059 | 0.0089455 | 0.1 | 0.09 -Modify | 0.77663 | 0.7903 | 0.81378 | 1.3 | 8.24 -Other | | 0.7686 | | | 8.02 - -Nlocal: 400 ave 413 max 391 min -Histogram: 2 1 0 2 0 0 1 1 0 1 -Nghost: 204.75 ave 213 max 197 min -Histogram: 1 1 0 1 0 3 0 1 0 1 -Neighs: 2800.62 ave 2959 max 2661 min -Histogram: 1 1 1 2 0 0 0 1 1 1 - -Total # of neighbors = 22405 -Ave neighs/atom = 7.00156 -Neighbor list builds = 12728 -Dangerous builds = 0 -Total wall time: 0:00:10 diff --git a/examples/DIFFUSE/log.3Aug18.msd.2d.g++.8 b/examples/DIFFUSE/log.3Aug18.msd.2d.g++.8 new file mode 100644 index 0000000000..113da9040d --- /dev/null +++ b/examples/DIFFUSE/log.3Aug18.msd.2d.g++.8 @@ -0,0 +1,251 @@ +LAMMPS (2 Aug 2018) +# sample LAMMPS input script for diffusion of 2d LJ liquid +# mean-squared displacement via compute msd + +# settings + +variable x equal 40 +variable y equal 40 + +variable rho equal 0.6 +variable t equal 1.0 +variable rc equal 2.5 + +# problem setup + +units lj +dimension 2 +atom_style atomic +neigh_modify delay 0 every 1 + +lattice sq2 ${rho} +lattice sq2 0.6 +Lattice spacing in x,y,z = 1.82574 1.82574 1.82574 +region simbox block 0 $x 0 $y -0.1 0.1 +region simbox block 0 40 0 $y -0.1 0.1 +region simbox block 0 40 0 40 -0.1 0.1 +create_box 1 simbox +Created orthogonal box = (0 0 -0.182574) to (73.0297 73.0297 0.182574) + 4 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 3200 atoms + Time spent = 0.000706911 secs + +pair_style lj/cut ${rc} +pair_style lj/cut 2.5 +pair_coeff * * 1 1 + +mass * 1.0 +velocity all create $t 97287 +velocity all create 1 97287 + +fix 1 all nve +fix 2 all langevin $t $t 0.1 498094 +fix 2 all langevin 1 $t 0.1 498094 +fix 2 all langevin 1 1 0.1 498094 +fix 3 all enforce2d + +# equilibration run + +thermo 1000 +run 5000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 53 53 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/2d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.052 | 3.052 | 3.052 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1 -1.56492 0 -0.5652325 -1.5346995 + 1000 0.97537833 -1.5723957 0 -0.5973222 0.92877783 + 2000 0.99008371 -1.5748206 0 -0.58504633 1.0809416 + 3000 1.0111412 -1.5848987 0 -0.57407352 1.0174297 + 4000 1.0055417 -1.5857581 0 -0.58053054 0.95647691 + 5000 0.97069905 -1.5851114 0 -0.61471567 0.90108287 +Loop time of 0.667446 on 8 procs for 5000 steps with 3200 atoms + +Performance: 3236214.756 tau/day, 7491.238 timesteps/s +99.9% CPU use with 8 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.22913 | 0.24877 | 0.28382 | 3.6 | 37.27 +Neigh | 0.064419 | 0.071256 | 0.080013 | 1.7 | 10.68 +Comm | 0.103 | 0.14054 | 0.17204 | 5.5 | 21.06 +Output | 0.00010705 | 0.00013995 | 0.00021911 | 0.0 | 0.02 +Modify | 0.13457 | 0.14973 | 0.16887 | 2.6 | 22.43 +Other | | 0.05701 | | | 8.54 + +Nlocal: 400 ave 406 max 394 min +Histogram: 1 1 0 1 0 2 1 0 1 1 +Nghost: 202.5 ave 212 max 191 min +Histogram: 1 0 0 0 3 1 0 2 0 1 +Neighs: 2800.88 ave 2903 max 2690 min +Histogram: 1 1 0 0 1 2 1 0 1 1 + +Total # of neighbors = 22407 +Ave neighs/atom = 7.00219 +Neighbor list builds = 599 +Dangerous builds = 0 + +unfix 2 + +# data gathering run + +reset_timestep 0 + +# factor of 4 in 2 variables is for 2d + +compute msd all msd com yes +variable twopoint equal c_msd[4]/4/(step*dt+1.0e-6) +fix 9 all vector 10 c_msd[4] +variable fitslope equal slope(f_9)/4/(10*dt) + +thermo_style custom step temp c_msd[4] v_twopoint v_fitslope + +# only need to run for 10K steps to make a good 100-frame movie + +#dump 1 all custom 1 tmp.dump id type vx vy vz + +#dump 2 all image 100 image.*.jpg type type zoom 1.6 adiam 1.2 + +thermo 1000 +run 100000 +Per MPI rank memory allocation (min/avg/max) = 3.427 | 3.427 | 3.427 Mbytes +Step Temp c_msd[4] v_twopoint v_fitslope + 0 0.97069905 0 0 5e+20 + 1000 0.98138076 4.0484996 0.20242494 0.20685564 + 2000 0.97606079 9.2121392 0.23030346 0.23687918 + 3000 0.97924866 14.815034 0.24691721 0.25405247 + 4000 0.98568451 20.516817 0.25646019 0.26353644 + 5000 0.97551815 27.33922 0.27339219 0.27544492 + 6000 0.98482252 34.37734 0.28647782 0.28966619 + 7000 0.9672559 41.696689 0.29783348 0.30165524 + 8000 0.9836541 48.340277 0.30212673 0.31085371 + 9000 0.99087147 56.042692 0.31134828 0.31811489 + 10000 0.99663166 63.69663 0.31848314 0.32589374 + 11000 0.97776688 71.144109 0.32338231 0.33219745 + 12000 0.98246011 78.301774 0.32625739 0.33723 + 13000 0.98788732 85.061923 0.32716124 0.34053027 + 14000 0.96872483 91.1658 0.32559214 0.34231162 + 15000 0.98955796 97.278388 0.32426129 0.34229511 + 16000 0.99855196 104.23997 0.3257499 0.34217252 + 17000 0.98600861 110.66055 0.3254722 0.34172446 + 18000 0.98696963 116.90111 0.32472531 0.3408227 + 19000 0.9881192 124.21305 0.32687644 0.34036538 + 20000 0.98527319 131.09874 0.32774685 0.34003478 + 21000 0.99015191 137.89263 0.32831579 0.33987868 + 22000 0.97972418 146.68982 0.33338595 0.34060035 + 23000 0.98911012 155.1264 0.33723129 0.34201036 + 24000 0.98810498 162.88634 0.33934653 0.34371488 + 25000 0.96961962 170.37907 0.34075814 0.34531409 + 26000 0.99118408 179.26511 0.34474059 0.34717195 + 27000 0.98515159 185.90764 0.3442734 0.34898035 + 28000 0.98951677 192.12183 0.34307469 0.35021808 + 29000 0.9832026 196.99457 0.33964581 0.35075459 + 30000 0.98449493 203.48475 0.33914124 0.35066186 + 31000 0.96585993 210.06193 0.33880956 0.35046715 + 32000 0.98758117 218.94174 0.34209646 0.35046623 + 33000 0.98875584 225.96489 0.34237104 0.35073944 + 34000 0.98007229 233.5792 0.34349882 0.35109188 + 35000 0.98415295 241.98148 0.34568783 0.35157879 + 36000 0.98101154 250.30876 0.34765106 0.3523013 + 37000 0.97606878 258.2127 0.34893608 0.35318097 + 38000 0.97220293 266.40464 0.35053242 0.3540743 + 39000 0.979783 272.8578 0.34981769 0.35496561 + 40000 0.98375673 279.87598 0.34984497 0.35558182 + 41000 0.97506523 288.07676 0.35131312 0.35618259 + 42000 0.97106749 296.11647 0.3525196 0.35698571 + 43000 0.97717259 304.46747 0.35403194 0.3577736 + 44000 0.98541435 312.57228 0.35519578 0.35865003 + 45000 0.97678287 321.82674 0.35758527 0.35958623 + 46000 0.98169719 329.78197 0.35845866 0.36062236 + 47000 0.99471466 337.11283 0.35863066 0.36158322 + 48000 0.98332437 346.0754 0.3604952 0.36255042 + 49000 0.98126947 356.11859 0.36338631 0.3636628 + 50000 0.98809751 365.65248 0.36565248 0.36496809 + 51000 0.95919516 373.91833 0.36658659 0.36628073 + 52000 0.98097913 381.26492 0.36660089 0.36752237 + 53000 0.97774072 388.81031 0.36680218 0.36863962 + 54000 0.99096915 395.56767 0.36626636 0.36961521 + 55000 0.97652739 401.72735 0.36520668 0.37038579 + 56000 0.99185306 407.28834 0.3636503 0.37094092 + 57000 0.96289342 414.75298 0.3638184 0.37130039 + 58000 0.97871716 424.69443 0.36611588 0.37180428 + 59000 0.98637393 433.14205 0.36706953 0.37239862 + 60000 0.98009845 438.14533 0.36512111 0.37288487 + 61000 0.99416712 446.08007 0.3656394 0.37321496 + 62000 0.97612483 450.90846 0.36363585 0.37345792 + 63000 0.97786531 455.36749 0.36140277 0.37344803 + 64000 0.99080668 458.04873 0.35785057 0.37313914 + 65000 0.97952497 461.31241 0.3548557 0.3725875 + 66000 0.98095955 463.91727 0.35145248 0.37174735 + 67000 0.98370788 468.93 0.34994776 0.37076942 + 68000 0.96931818 471.07765 0.34638063 0.36961868 + 69000 0.98512552 474.59146 0.34390685 0.36830908 + 70000 0.98065743 478.66071 0.3419005 0.36686789 + 71000 0.98971283 482.57357 0.33984054 0.36535224 + 72000 0.99890324 485.32018 0.3370279 0.36373174 + 73000 0.98649924 490.19497 0.33574998 0.36200692 + 74000 0.98723422 496.04991 0.33516886 0.36034919 + 75000 1.0025633 501.6313 0.33442087 0.35872052 + 76000 0.97859959 505.97813 0.33288035 0.35714939 + 77000 0.97973006 510.55334 0.33152814 0.35553808 + 78000 0.9903944 515.06966 0.33017286 0.35391584 + 79000 0.96847518 518.76483 0.32833217 0.35226287 + 80000 0.99171112 524.18127 0.32761329 0.35065267 + 81000 0.97202573 529.09959 0.32660468 0.34904364 + 82000 0.99368438 535.80271 0.32670897 0.34747913 + 83000 0.97932483 543.08233 0.32715803 0.34605097 + 84000 0.99078651 547.57861 0.32593965 0.34469765 + 85000 0.98973457 552.24581 0.32485048 0.34332115 + 86000 0.9835873 557.3493 0.32404029 0.34197018 + 87000 0.97180564 564.93434 0.32467491 0.34069702 + 88000 0.99743353 571.39837 0.32465817 0.33951258 + 89000 0.98993437 577.81703 0.32461631 0.33838511 + 90000 0.9926071 583.39378 0.32410765 0.33730429 + 91000 0.98800458 591.08741 0.3247733 0.33630505 + 92000 0.98501879 596.10133 0.32396811 0.33534725 + 93000 0.98810082 604.02652 0.32474544 0.33445545 + 94000 0.97563748 609.43676 0.32416849 0.33361404 + 95000 0.97283448 615.15754 0.32376713 0.33278044 + 96000 0.9883071 622.30912 0.32411933 0.33199212 + 97000 0.97717678 628.84457 0.32414669 0.33125729 + 98000 0.97190208 634.37377 0.32366009 0.33054877 + 99000 0.98687379 640.66666 0.32356902 0.32986014 + 100000 0.97559757 646.96406 0.32348203 0.32920186 +Loop time of 7.61838 on 8 procs for 100000 steps with 3200 atoms + +Performance: 5670494.518 tau/day, 13126.145 timesteps/s +100.0% CPU use with 8 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.5458 | 3.6709 | 3.8234 | 4.3 | 48.19 +Neigh | 1.1363 | 1.1513 | 1.1753 | 1.0 | 15.11 +Comm | 1.5901 | 1.7017 | 1.8664 | 6.9 | 22.34 +Output | 0.0041966 | 0.0043583 | 0.0050626 | 0.4 | 0.06 +Modify | 0.63816 | 0.65537 | 0.68918 | 2.0 | 8.60 +Other | | 0.4348 | | | 5.71 + +Nlocal: 400 ave 413 max 391 min +Histogram: 2 1 0 2 0 0 1 1 0 1 +Nghost: 204.75 ave 213 max 197 min +Histogram: 1 1 0 1 0 3 0 1 0 1 +Neighs: 2800.62 ave 2959 max 2661 min +Histogram: 1 1 1 2 0 0 0 1 1 1 + +Total # of neighbors = 22405 +Ave neighs/atom = 7.00156 +Neighbor list builds = 12728 +Dangerous builds = 0 +Total wall time: 0:00:08 diff --git a/examples/DIFFUSE/log.13Oct16.vacf.2d.g++.8 b/examples/DIFFUSE/log.3Aug18.vacf.2d.g++.8 similarity index 84% rename from examples/DIFFUSE/log.13Oct16.vacf.2d.g++.8 rename to examples/DIFFUSE/log.3Aug18.vacf.2d.g++.8 index 458315bc29..80c57ada9c 100644 --- a/examples/DIFFUSE/log.13Oct16.vacf.2d.g++.8 +++ b/examples/DIFFUSE/log.3Aug18.vacf.2d.g++.8 @@ -1,4 +1,4 @@ -LAMMPS (13 Oct 2016) +LAMMPS (2 Aug 2018) # sample LAMMPS input script for diffusion of 2d LJ liquid # mean-squared displacement via compute msd @@ -29,6 +29,7 @@ Created orthogonal box = (0 0 -0.182574) to (73.0297 73.0297 0.182574) 4 by 2 by 1 MPI processor grid create_atoms 1 box Created 3200 atoms + Time spent = 0.000712872 secs pair_style lj/cut ${rc} pair_style lj/cut 2.5 @@ -49,13 +50,18 @@ fix 3 all enforce2d thermo 1000 run 5000 Neighbor list info ... - 1 neighbor list requests update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 master list distance cutoff = 2.8 ghost atom cutoff = 2.8 - binsize = 1.4 -> bins = 53 53 1 -Memory usage per processor = 2.478 Mbytes + binsize = 1.4, bins = 53 53 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/2d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.052 | 3.052 | 3.052 Mbytes Step Temp E_pair E_mol TotEng Press 0 1 -1.56492 0 -0.5652325 -1.5346995 1000 0.97537833 -1.5723957 0 -0.5973222 0.92877783 @@ -63,20 +69,20 @@ Step Temp E_pair E_mol TotEng Press 3000 1.0111412 -1.5848987 0 -0.57407352 1.0174297 4000 1.0055417 -1.5857581 0 -0.58053054 0.95647691 5000 0.97069905 -1.5851114 0 -0.61471567 0.90108287 -Loop time of 0.557588 on 8 procs for 5000 steps with 3200 atoms +Loop time of 0.648098 on 8 procs for 5000 steps with 3200 atoms -Performance: 3873826.669 tau/day, 8967.191 timesteps/s -99.1% CPU use with 8 MPI tasks x no OpenMP threads +Performance: 3332829.949 tau/day, 7714.884 timesteps/s +99.9% CPU use with 8 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.23784 | 0.24683 | 0.25594 | 1.0 | 44.27 -Neigh | 0.062975 | 0.06439 | 0.0662 | 0.4 | 11.55 -Comm | 0.083826 | 0.092564 | 0.1035 | 2.1 | 16.60 -Output | 0.00011778 | 0.00012615 | 0.00014257 | 0.1 | 0.02 -Modify | 0.11466 | 0.11648 | 0.1187 | 0.4 | 20.89 -Other | | 0.0372 | | | 6.67 +Pair | 0.22614 | 0.24602 | 0.27481 | 2.8 | 37.96 +Neigh | 0.066875 | 0.07135 | 0.077825 | 1.2 | 11.01 +Comm | 0.098293 | 0.12744 | 0.1569 | 5.6 | 19.66 +Output | 0.0001049 | 0.00012228 | 0.00014496 | 0.0 | 0.02 +Modify | 0.13725 | 0.14919 | 0.16903 | 2.4 | 23.02 +Other | | 0.05398 | | | 8.33 Nlocal: 400 ave 406 max 394 min Histogram: 1 1 0 1 0 2 1 0 1 1 @@ -114,7 +120,7 @@ thermo_style custom step temp c_vacf[4] v_vacf thermo 1000 run 100000 -Memory usage per processor = 2.853 Mbytes +Per MPI rank memory allocation (min/avg/max) = 3.427 | 3.427 | 3.427 Mbytes Step Temp c_vacf[4] v_vacf 0 0.97069905 1.9407914 0 1000 0.98138076 0.029239763 0.22157396 @@ -217,20 +223,20 @@ Step Temp c_vacf[4] v_vacf 98000 0.97190208 0.015065013 0.20906937 99000 0.98687379 -0.036869401 0.22993959 100000 0.97559757 0.045464091 0.23369283 -Loop time of 10.8346 on 8 procs for 100000 steps with 3200 atoms +Loop time of 8.16691 on 8 procs for 100000 steps with 3200 atoms -Performance: 3987213.825 tau/day, 9229.662 timesteps/s -99.5% CPU use with 8 MPI tasks x no OpenMP threads +Performance: 5289636.190 tau/day, 12244.528 timesteps/s +100.0% CPU use with 8 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 4.8486 | 4.9469 | 5.0248 | 2.8 | 45.66 -Neigh | 1.3613 | 1.374 | 1.3916 | 0.8 | 12.68 -Comm | 1.8181 | 1.9534 | 2.0665 | 5.7 | 18.03 -Output | 0.016565 | 0.016701 | 0.017039 | 0.1 | 0.15 -Modify | 1.8395 | 1.9053 | 1.9704 | 2.8 | 17.59 -Other | | 0.6383 | | | 5.89 +Pair | 3.5668 | 3.6612 | 3.7867 | 4.0 | 44.83 +Neigh | 1.1409 | 1.1555 | 1.1804 | 1.4 | 14.15 +Comm | 1.581 | 1.711 | 1.8239 | 7.1 | 20.95 +Output | 0.016626 | 0.016831 | 0.017569 | 0.2 | 0.21 +Modify | 1.225 | 1.2594 | 1.3008 | 2.0 | 15.42 +Other | | 0.363 | | | 4.45 Nlocal: 400 ave 413 max 391 min Histogram: 2 1 0 2 0 0 1 1 0 1 @@ -243,4 +249,4 @@ Total # of neighbors = 22405 Ave neighs/atom = 7.00156 Neighbor list builds = 12728 Dangerous builds = 0 -Total wall time: 0:00:11 +Total wall time: 0:00:08 diff --git a/src/variable.cpp b/src/variable.cpp index 86296b4b40..f005221400 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -1576,7 +1576,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) newtree->nextra = 0; treestack[ntreestack++] = newtree; - } else print_var_error(FLERR,"Mismatched compute in variable formula",ivar); + } else print_var_error(FLERR, + "Mismatched compute in variable formula",ivar); // ---------------- // fix @@ -1584,7 +1585,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) } else if (strncmp(word,"f_",2) == 0 || strncmp(word,"F_",2) == 0) { if (domain->box_exist == 0) - print_var_error(FLERR,"Variable evaluation before simulation box is defined",ivar); + print_var_error(FLERR,"Variable evaluation before " + "simulation box is defined",ivar); // uppercase used to force access of // global vector vs global scalar, and global array vs global vector @@ -1667,11 +1669,14 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (index1 > fix->size_array_rows && fix->size_array_rows_variable == 0) - print_var_error(FLERR,"Variable formula fix array is accessed out-of-range",ivar); + print_var_error(FLERR,"Variable formula fix array is " + "accessed out-of-range",ivar); if (index2 > fix->size_array_cols) - print_var_error(FLERR,"Variable formula fix array is accessed out-of-range",ivar); + print_var_error(FLERR,"Variable formula fix array is " + "accessed out-of-range",ivar); if (update->whichflag > 0 && update->ntimestep % fix->global_freq) - print_var_error(FLERR,"Fix in variable not computed at a compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at a " + "compatible time",ivar); value1 = fix->compute_array(index1-1,index2-1); if (tree) { @@ -1688,13 +1693,17 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) } else if (nbracket == 0 && fix->vector_flag) { if (update->whichflag > 0 && update->ntimestep % fix->global_freq) - print_var_error(FLERR,"Fix in variable not computed at compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at " + "compatible time",ivar); if (tree == NULL) - print_var_error(FLERR,"Fix global vector in ""equal-style variable formula",ivar); + print_var_error(FLERR,"Fix global vector in " + "equal-style variable formula",ivar); if (treetype == ATOM) - print_var_error(FLERR,"Fix global vector in ""atom-style variable formula",ivar); + print_var_error(FLERR,"Fix global vector in " + "atom-style variable formula",ivar); if (fix->size_vector == 0) - print_var_error(FLERR,"Variable formula fix vector is zero length",ivar); + print_var_error(FLERR,"Variable formula " + "fix vector is zero length",ivar); int nvec = fix->size_vector; double *vec; @@ -1726,7 +1735,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) print_var_error(FLERR,"Fix global vector in " "atom-style variable formula",ivar); if (fix->size_array_rows == 0) - print_var_error(FLERR,"Variable formula fix array is zero length",ivar); + print_var_error(FLERR,"Variable formula fix array is " + "zero length",ivar); int nvec = fix->size_array_rows; double *vec; @@ -1785,10 +1795,12 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) fix->size_peratom_cols == 0) { if (tree == NULL) - print_var_error(FLERR,"Per-atom fix in equal-style variable formula",ivar); + print_var_error(FLERR,"Per-atom fix in " + "equal-style variable formula",ivar); if (update->whichflag > 0 && update->ntimestep % fix->peratom_freq) - print_var_error(FLERR,"Fix in variable not computed at compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at " + "compatible time",ivar); Tree *newtree = new Tree(); newtree->type = ATOMARRAY; @@ -1805,13 +1817,15 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) fix->size_peratom_cols > 0) { if (tree == NULL) - print_var_error(FLERR,"Per-atom fix in equal-style variable formula",ivar); + print_var_error(FLERR,"Per-atom fix in " + "equal-style variable formula",ivar); if (index1 > fix->size_peratom_cols) print_var_error(FLERR,"Variable formula fix array " "is accessed out-of-range",ivar); if (update->whichflag > 0 && update->ntimestep % fix->peratom_freq) - print_var_error(FLERR,"Fix in variable not computed at compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at " + "compatible time",ivar); Tree *newtree = new Tree(); newtree->type = ATOMARRAY; @@ -1878,7 +1892,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) char *var = retrieve(word+2); if (var == NULL) - print_var_error(FLERR,"Invalid variable evaluation in variable formula",ivar); + print_var_error(FLERR,"Invalid variable evaluation in " + "variable formula",ivar); if (tree) { Tree *newtree = new Tree(); newtree->type = VALUE; @@ -1977,7 +1992,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) double *vec; int nvec = compute_vector(ivar,&vec); if (index <= 0 || index > nvec) - print_var_error(FLERR,"Invalid index into vector-style variable",ivar); + print_var_error(FLERR,"Invalid index into " + "vector-style variable",ivar); int m = index; // convert from tagint to int if (tree) { @@ -1989,7 +2005,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) treestack[ntreestack++] = newtree; } else argstack[nargstack++] = vec[m-1]; - } else print_var_error(FLERR,"Mismatched variable in variable formula",ivar); + } else print_var_error(FLERR,"Mismatched variable in " + "variable formula",ivar); // ---------------- // math/group/special function or atom value/vector or @@ -2194,7 +2211,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (value2 == 0.0) argstack[nargstack++] = 1.0; else if ((value1 == 0.0) && (value2 < 0.0)) - print_var_error(FLERR,"Invalid power expression in variable formula",ivar); + print_var_error(FLERR,"Invalid power expression in " + "variable formula",ivar); else argstack[nargstack++] = pow(value1,value2); } else if (opprevious == UNARY) { argstack[nargstack++] = -value2; @@ -3368,7 +3386,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (tree) newtree->type = LN; else { if (value1 <= 0.0) - print_var_error(FLERR,"Log of zero/negative value in variable formula",ivar); + print_var_error(FLERR,"Log of zero/negative value in " + "variable formula",ivar); argstack[nargstack++] = log(value1); } } else if (strcmp(word,"log") == 0) { @@ -3377,7 +3396,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (tree) newtree->type = LOG; else { if (value1 <= 0.0) - print_var_error(FLERR,"Log of zero/negative value in variable formula",ivar); + print_var_error(FLERR,"Log of zero/negative value in " + "variable formula",ivar); argstack[nargstack++] = log10(value1); } } else if (strcmp(word,"abs") == 0) { @@ -3482,7 +3502,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (narg != 2) print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (update->whichflag == 0) - print_var_error(FLERR,"Cannot use ramp in variable formula between runs",ivar); + print_var_error(FLERR,"Cannot use ramp in " + "variable formula between runs",ivar); if (tree) newtree->type = RAMP; else { double delta = update->ntimestep - update->beginstep; @@ -3617,7 +3638,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (narg != 2) print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (update->whichflag == 0) - print_var_error(FLERR,"Cannot use vdisplace in variable formula between runs",ivar); + print_var_error(FLERR,"Cannot use vdisplace in " + "variable formula between runs",ivar); if (tree) newtree->type = VDISPLACE; else { double delta = update->ntimestep - update->beginstep; @@ -3629,7 +3651,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (narg != 3) print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (update->whichflag == 0) - print_var_error(FLERR,"Cannot use swiggle in variable formula between runs",ivar); + print_var_error(FLERR,"Cannot use swiggle in " + "variable formula between runs",ivar); if (tree) newtree->type = CWIGGLE; else { if (values[0] == 0.0) @@ -3644,7 +3667,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (narg != 3) print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (update->whichflag == 0) - print_var_error(FLERR,"Cannot use cwiggle in variable formula between runs",ivar); + print_var_error(FLERR,"Cannot use cwiggle in " + "variable formula between runs",ivar); if (tree) newtree->type = CWIGGLE; else { if (values[0] == 0.0) @@ -3709,7 +3733,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, if (strcmp(word,"count") == 0) { if (narg == 1) value = group->count(igroup); - else if (narg == 2) value = group->count(igroup,region_function(args[1],ivar)); + else if (narg == 2) + value = group->count(igroup,region_function(args[1],ivar)); else print_var_error(FLERR,"Invalid group function in variable formula",ivar); } else if (strcmp(word,"mass") == 0) { @@ -3719,7 +3744,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"charge") == 0) { if (narg == 1) value = group->charge(igroup); - else if (narg == 2) value = group->charge(igroup,region_function(args[1],ivar)); + else if (narg == 2) + value = group->charge(igroup,region_function(args[1],ivar)); else print_var_error(FLERR,"Invalid group function in variable formula",ivar); } else if (strcmp(word,"xcm") == 0) { @@ -3732,7 +3758,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, int iregion = region_function(args[2],ivar); double masstotal = group->mass(igroup,iregion); group->xcm(igroup,masstotal,xcm,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"x") == 0) value = xcm[0]; else if (strcmp(args[1],"y") == 0) value = xcm[1]; else if (strcmp(args[1],"z") == 0) value = xcm[2]; @@ -3748,7 +3775,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, int iregion = region_function(args[2],ivar); double masstotal = group->mass(igroup,iregion); group->vcm(igroup,masstotal,vcm,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"x") == 0) value = vcm[0]; else if (strcmp(args[1],"y") == 0) value = vcm[1]; else if (strcmp(args[1],"z") == 0) value = vcm[2]; @@ -3767,7 +3795,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"bound") == 0) { double minmax[6]; if (narg == 2) group->bounds(igroup,minmax); - else if (narg == 3) group->bounds(igroup,minmax,region_function(args[2],ivar)); + else if (narg == 3) + group->bounds(igroup,minmax,region_function(args[2],ivar)); else print_var_error(FLERR,"Invalid group function in variable formula",ivar); if (strcmp(args[1],"xmin") == 0) value = minmax[0]; else if (strcmp(args[1],"xmax") == 0) value = minmax[1]; @@ -3789,7 +3818,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, double masstotal = group->mass(igroup,iregion); group->xcm(igroup,masstotal,xcm,iregion); value = group->gyration(igroup,masstotal,xcm,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); } else if (strcmp(word,"ke") == 0) { if (narg == 1) value = group->ke(igroup); @@ -3808,7 +3838,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, double masstotal = group->mass(igroup,iregion); group->xcm(igroup,masstotal,xcm,iregion); group->angmom(igroup,xcm,lmom,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"x") == 0) value = lmom[0]; else if (strcmp(args[1],"y") == 0) value = lmom[1]; else if (strcmp(args[1],"z") == 0) value = lmom[2]; @@ -3826,7 +3857,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, double masstotal = group->mass(igroup,iregion); group->xcm(igroup,masstotal,xcm,iregion); group->torque(igroup,xcm,tq,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"x") == 0) value = tq[0]; else if (strcmp(args[1],"y") == 0) value = tq[1]; else if (strcmp(args[1],"z") == 0) value = tq[2]; @@ -3844,7 +3876,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, double masstotal = group->mass(igroup,iregion); group->xcm(igroup,masstotal,xcm,iregion); group->inertia(igroup,xcm,inertia,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"xx") == 0) value = inertia[0][0]; else if (strcmp(args[1],"yy") == 0) value = inertia[1][1]; else if (strcmp(args[1],"zz") == 0) value = inertia[2][2]; @@ -3869,7 +3902,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, group->angmom(igroup,xcm,angmom,iregion); group->inertia(igroup,xcm,inertia,iregion); group->omega(angmom,inertia,omega); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"x") == 0) value = omega[0]; else if (strcmp(args[1],"y") == 0) value = omega[1]; else if (strcmp(args[1],"z") == 0) value = omega[2]; @@ -3924,7 +3958,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **treestack, int &ntreestack, double *argstack, int &nargstack, int ivar) { - double value,xvalue,sx,sy,sxx,sxy; + bigint sx,sxx; + double value,xvalue,sy,sxy; // word not a match to any special function @@ -4020,11 +4055,13 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else index = 0; int ifix = modify->find_fix(&args[0][2]); - if (ifix < 0) print_var_error(FLERR,"Invalid fix ID in variable formula",ivar); + if (ifix < 0) + print_var_error(FLERR,"Invalid fix ID in variable formula",ivar); fix = modify->fix[ifix]; if (index == 0 && fix->vector_flag) { if (update->whichflag > 0 && update->ntimestep % fix->global_freq) - print_var_error(FLERR,"Fix in variable not computed at compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at " + "compatible time",ivar); nvec = fix->size_vector; nstride = 1; } else if (index && fix->array_flag) { @@ -4032,7 +4069,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, print_var_error(FLERR,"Variable formula fix array " "is accessed out-of-range",ivar); if (update->whichflag > 0 && update->ntimestep % fix->global_freq) - print_var_error(FLERR,"Fix in variable not computed at compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at " + "compatible time",ivar); nvec = fix->size_array_rows; nstride = fix->size_array_cols; } else print_var_error(FLERR,"Mismatched fix in variable formula",ivar); @@ -4048,10 +4086,12 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else index = 0; if (index) - print_var_error(FLERR,"Invalid special function in variable formula",ivar); + print_var_error(FLERR,"Invalid special function in " + "variable formula",ivar); ivar = find(&args[0][2]); if (ivar < 0) - print_var_error(FLERR,"Invalid special function in variable formula",ivar); + print_var_error(FLERR,"Invalid special function in " + "variable formula",ivar); if (style[ivar] != VECTOR) print_var_error(FLERR,"Mis-matched special function variable " "in variable formula",ivar); @@ -4062,12 +4102,16 @@ int Variable::special_function(char *word, char *contents, Tree **tree, nvec = compute_vector(ivar,&vec); nstride = 1; - } else print_var_error(FLERR,"Invalid special function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid special function in " + "variable formula",ivar); value = 0.0; - if (method == SLOPE) sx = sy = sxx = sxy = 0.0; - if (method == XMIN) value = BIG; - if (method == XMAX) value = -BIG; + if (method == SLOPE) { + sx = sxx = 0; + sy = sxy = 0.0; + } + else if (method == XMIN) value = BIG; + else if (method == XMAX) value = -BIG; if (compute) { double *vec; @@ -4084,12 +4128,10 @@ int Variable::special_function(char *word, char *contents, Tree **tree, else if (method == AVE) value += vec[j]; else if (method == TRAP) value += vec[j]; else if (method == SLOPE) { - if (nvec > 1) xvalue = (double) i / (nvec-1); - else xvalue = 0.0; - sx += xvalue; + sx += i; sy += vec[j]; - sxx += xvalue*xvalue; - sxy += xvalue*vec[j]; + sxx += i*i; + sxy += i*vec[j]; } j += nstride; } @@ -4107,12 +4149,10 @@ int Variable::special_function(char *word, char *contents, Tree **tree, else if (method == AVE) value += one; else if (method == TRAP) value += one; else if (method == SLOPE) { - if (nvec > 1) xvalue = (double) i / (nvec-1); - else xvalue = 0.0; - sx += xvalue; + sx += i; sy += one; - sxx += xvalue*xvalue; - sxy += xvalue*one; + sxx += i*i; + sxy += i*one; } } if (method == TRAP) { @@ -4134,12 +4174,10 @@ int Variable::special_function(char *word, char *contents, Tree **tree, else if (method == AVE) value += one; else if (method == TRAP) value += one; else if (method == SLOPE) { - if (nvec > 1) xvalue = (double) i / (nvec-1); - else xvalue = 0.0; - sx += xvalue; + sx += i; sy += one; - sxx += xvalue*xvalue; - sxy += xvalue*one; + sxx += i*i; + sxy += i*one; } } if (method == TRAP) value -= 0.5*vec[0] + 0.5*vec[nvec-1]; @@ -4148,9 +4186,9 @@ int Variable::special_function(char *word, char *contents, Tree **tree, if (method == AVE) value /= nvec; if (method == SLOPE) { - double numerator = sxy - sx*sy; - double denominator = sxx - sx*sx; - if (denominator != 0.0) value = numerator/denominator / nvec; + double numerator = nvec*sxy - sx*sy; + double denominator = nvec*sxx - sx*sx; + if (denominator != 0.0) value = numerator/denominator; else value = BIG; } @@ -4169,7 +4207,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"gmask") == 0) { if (tree == NULL) - print_var_error(FLERR,"Gmask function in equal-style variable formula",ivar); + print_var_error(FLERR,"Gmask function in equal-style " + "variable formula",ivar); if (narg != 1) print_var_error(FLERR,"Invalid special function in variable formula",ivar); @@ -4186,7 +4225,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"rmask") == 0) { if (tree == NULL) - print_var_error(FLERR,"Rmask function in equal-style variable formula",ivar); + print_var_error(FLERR,"Rmask function in equal-style " + "variable formula",ivar); if (narg != 1) print_var_error(FLERR,"Invalid special function in variable formula",ivar); @@ -4202,7 +4242,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"grmask") == 0) { if (tree == NULL) - print_var_error(FLERR,"Grmask function in equal-style variable formula",ivar); + print_var_error(FLERR,"Grmask function in equal-style " + "variable formula",ivar); if (narg != 2) print_var_error(FLERR,"Invalid special function in variable formula",ivar); @@ -4228,7 +4269,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, int ivar = find(args[0]); if (ivar < 0) - print_var_error(FLERR,"Variable ID in variable formula does not exist",ivar); + print_var_error(FLERR,"Variable ID in " + "variable formula does not exist",ivar); // SCALARFILE has single current value, read next one // save value in tree or on argstack @@ -4253,7 +4295,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (style[ivar] == ATOMFILE) { if (tree == NULL) - print_var_error(FLERR,"Atomfile variable in equal-style variable formula",ivar); + print_var_error(FLERR,"Atomfile variable in " + "equal-style variable formula",ivar); double *result; memory->create(result,atom->nlocal,"variable:result"); @@ -4271,11 +4314,13 @@ int Variable::special_function(char *word, char *contents, Tree **tree, newtree->nextra = 0; treestack[ntreestack++] = newtree; - } else print_var_error(FLERR,"Invalid variable style in special function next",ivar); + } else print_var_error(FLERR,"Invalid variable style in " + "special function next",ivar); } else if (strcmp(word,"is_active") == 0) { if (narg != 2) - print_var_error(FLERR,"Invalid is_active() function in variable formula",ivar); + print_var_error(FLERR,"Invalid is_active() function in " + "variable formula",ivar); Info info(lmp); value = (info.is_active(args[0],args[1])) ? 1.0 : 0.0; @@ -4293,7 +4338,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"is_available") == 0) { if (narg != 2) - print_var_error(FLERR,"Invalid is_available() function in variable formula",ivar); + print_var_error(FLERR,"Invalid is_available() function in " + "variable formula",ivar); Info info(lmp); value = (info.is_available(args[0],args[1])) ? 1.0 : 0.0; @@ -4311,7 +4357,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"is_defined") == 0) { if (narg != 2) - print_var_error(FLERR,"Invalid is_defined() function in variable formula",ivar); + print_var_error(FLERR,"Invalid is_defined() function in " + "variable formula",ivar); Info info(lmp); value = (info.is_defined(args[0],args[1])) ? 1.0 : 0.0; From e8774dce9792d3289bcb2fbd8f722796af3ec675 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Fri, 3 Aug 2018 11:31:11 -0600 Subject: [PATCH 399/675] removed thread restriction on make command, should make the building process faster --- lib/scafacos/Install.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/scafacos/Install.py b/lib/scafacos/Install.py index c478589144..df82780438 100644 --- a/lib/scafacos/Install.py +++ b/lib/scafacos/Install.py @@ -147,7 +147,7 @@ if buildflag: if buildflag: print("Building Scafacos ...") - cmd = 'cd "%s"; CC=mpicc FC=mpif90 CXX=mpicxx ./configure --prefix="`pwd`/build" --disable-doc --enable-fcs-solvers=fmm,p2nfft,direct,ewald > log.txt; make -j 4; make install' % homedir + cmd = 'cd "%s"; CC=mpicc FC=mpif90 CXX=mpicxx ./configure --prefix="`pwd`/build" --disable-doc --enable-fcs-solvers=fmm,p2nfft,direct,ewald > log.txt; make -j; make install' % homedir txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) print(txt.decode('UTF-8')) From 94bf221258af6fa48fe568a21171c492148ccf71 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Fri, 3 Aug 2018 11:31:50 -0600 Subject: [PATCH 400/675] implemented checks for unsupported solvers --- src/USER-SCAFACOS/scafacos.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 21e46f76ad..d4b106b26c 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -47,14 +47,26 @@ Scafacos::Scafacos(LAMMPS *lmp, int narg, char **arg) : KSpace(lmp, narg, arg) // optional ScaFaCoS library setting defaults // choose the correct default tolerance type for chosen method - // TODO: needs to be expanded for all solvers, currently mainly used ones + // throw an error if a not yet supported solver is chosen if (strcmp(method,"fmm") == 0) { tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; fmm_tuning_flag = 0; } - else if (strcmp(method,"p3m") == 0 || strcmp(method,"p2nfft") == 0) + else if (strcmp(method,"p3m") == 0 || + strcmp(method,"p2nfft") == 0 || + strcmp(method,"ewald") == 0) + { tolerance_type = FCS_TOLERANCE_TYPE_FIELD; + } + else if (strcmp(method,"direct") == 0) + { + // direct summation has no tolerance type + } + else + { + error->all(FLERR,"Unsupported ScaFaCoS method"); + } // initializations @@ -194,11 +206,13 @@ void Scafacos::compute(int eflag, int vflag) fcs_set_compute_virial(fcs,1); } + /* if (strcmp(method,"p3m")==0) { result = fcs_tune(fcs,nlocal,&x[0][0],q); check_result(result); } + */ result = fcs_run(fcs,nlocal,&x[0][0],q,&efield[0][0],epot); check_result(result); From 82744773b33a5d372687ba26f5edd68249d2a85e Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 3 Aug 2018 16:04:54 -0600 Subject: [PATCH 401/675] replace Section_commands.txt file --- doc/src/Commands.txt | 51 + doc/src/Commands_all.txt | 128 ++ doc/src/Commands_bond.txt | 124 ++ doc/src/Commands_category.txt | 141 ++ doc/src/Commands_compute.txt | 153 ++ doc/src/Commands_fix.txt | 229 +++ doc/src/Commands_input.txt | 60 + doc/src/Commands_kspace.txt | 36 + doc/src/Commands_pair.txt | 231 +++ doc/src/Commands_parse.txt | 136 ++ doc/src/Commands_structure.txt | 95 ++ doc/src/Errors.txt | 2 +- doc/src/Errors_bugs.txt | 2 +- doc/src/Errors_common.txt | 2 +- doc/src/Errors_messages.txt | 2 +- doc/src/Errors_warnings.txt | 2 +- doc/src/Examples.txt | 2 +- doc/src/Howto_2d.txt | 2 +- doc/src/Howto_barostat.txt | 2 +- doc/src/Howto_bash.txt | 2 +- doc/src/Howto_bioFF.txt | 2 +- doc/src/Howto_body.txt | 8 +- doc/src/Howto_chunk.txt | 2 +- doc/src/Howto_coreshell.txt | 2 +- doc/src/Howto_couple.txt | 2 +- doc/src/Howto_diffusion.txt | 2 +- doc/src/Howto_dispersion.txt | 2 +- doc/src/Howto_drude.txt | 2 +- doc/src/Howto_drude2.txt | 2 +- doc/src/Howto_elastic.txt | 2 +- doc/src/Howto_github.txt | 2 +- doc/src/Howto_granular.txt | 2 +- doc/src/Howto_kappa.txt | 2 +- doc/src/Howto_library.txt | 2 +- doc/src/Howto_manifold.txt | 2 +- doc/src/Howto_multiple.txt | 2 +- doc/src/Howto_nemd.txt | 2 +- doc/src/Howto_output.txt | 2 +- doc/src/Howto_polarizable.txt | 2 +- doc/src/Howto_pylammps.txt | 2 +- doc/src/Howto_replica.txt | 2 +- doc/src/Howto_restart.txt | 2 +- doc/src/Howto_spc.txt | 2 +- doc/src/Howto_spherical.txt | 2 +- doc/src/Howto_spins.txt | 2 +- doc/src/Howto_temperature.txt | 2 +- doc/src/Howto_thermostat.txt | 2 +- doc/src/Howto_tip3p.txt | 2 +- doc/src/Howto_tip4p.txt | 2 +- doc/src/Howto_triclinic.txt | 2 +- doc/src/Howto_viscosity.txt | 2 +- doc/src/Howto_viz.txt | 2 +- doc/src/Howto_walls.txt | 2 +- doc/src/Intro_authors.txt | 2 +- doc/src/Intro_features.txt | 6 +- doc/src/Intro_nonfeatures.txt | 2 +- doc/src/Intro_opensource.txt | 2 +- doc/src/Intro_overview.txt | 2 +- doc/src/Intro_website.txt | 2 +- doc/src/Manual.txt | 17 +- doc/src/Manual_version.txt | 2 +- doc/src/Modify.txt | 2 +- doc/src/Modify_atom.txt | 2 +- doc/src/Modify_body.txt | 2 +- doc/src/Modify_bond.txt | 2 +- doc/src/Modify_command.txt | 2 +- doc/src/Modify_compute.txt | 2 +- doc/src/Modify_contribute.txt | 2 +- doc/src/Modify_dump.txt | 2 +- doc/src/Modify_fix.txt | 2 +- doc/src/Modify_kspace.txt | 2 +- doc/src/Modify_min.txt | 2 +- doc/src/Modify_overview.txt | 2 +- doc/src/Modify_pair.txt | 2 +- doc/src/Modify_region.txt | 2 +- doc/src/Modify_thermo.txt | 2 +- doc/src/Modify_variable.txt | 2 +- doc/src/Packages.txt | 4 +- doc/src/Packages_details.txt | 20 +- doc/src/Packages_standard.txt | 2 +- doc/src/Packages_user.txt | 2 +- doc/src/Python.txt | 2 +- doc/src/Python_call.txt | 2 +- doc/src/Python_examples.txt | 2 +- doc/src/Python_install.txt | 2 +- doc/src/Python_library.txt | 2 +- doc/src/Python_mpi.txt | 2 +- doc/src/Python_pylammps.txt | 2 +- doc/src/Python_run.txt | 2 +- doc/src/Python_shlib.txt | 2 +- doc/src/Python_test.txt | 2 +- doc/src/Section_commands.txt | 1292 ----------------- doc/src/Section_start.txt | 12 +- doc/src/Speed.txt | 2 +- doc/src/Speed_bench.txt | 2 +- doc/src/Speed_compare.txt | 2 +- doc/src/Speed_gpu.txt | 2 +- doc/src/Speed_intel.txt | 2 +- doc/src/Speed_kokkos.txt | 309 ++-- doc/src/Speed_measure.txt | 2 +- doc/src/Speed_omp.txt | 2 +- doc/src/Speed_opt.txt | 2 +- doc/src/Speed_packages.txt | 13 +- doc/src/Speed_tips.txt | 2 +- doc/src/Tools.txt | 2 +- doc/src/angle_charmm.txt | 2 +- doc/src/angle_class2.txt | 2 +- doc/src/angle_coeff.txt | 8 +- doc/src/angle_cosine.txt | 2 +- doc/src/angle_cosine_buck6d.txt | 2 +- doc/src/angle_cosine_delta.txt | 2 +- doc/src/angle_cosine_periodic.txt | 2 +- doc/src/angle_cosine_shift.txt | 2 +- doc/src/angle_cosine_shift_exp.txt | 2 +- doc/src/angle_cosine_squared.txt | 2 +- doc/src/angle_dipole.txt | 2 +- doc/src/angle_fourier.txt | 2 +- doc/src/angle_fourier_simple.txt | 2 +- doc/src/angle_harmonic.txt | 2 +- doc/src/angle_hybrid.txt | 2 +- doc/src/angle_none.txt | 2 +- doc/src/angle_quartic.txt | 2 +- doc/src/angle_sdk.txt | 2 +- doc/src/angle_style.txt | 8 +- doc/src/angle_table.txt | 2 +- doc/src/angle_zero.txt | 2 +- doc/src/atom_modify.txt | 2 +- doc/src/atom_style.txt | 2 +- doc/src/balance.txt | 2 +- doc/src/body.txt | 2 +- doc/src/bond_class2.txt | 2 +- doc/src/bond_coeff.txt | 7 +- doc/src/bond_fene.txt | 2 +- doc/src/bond_fene_expand.txt | 2 +- doc/src/bond_gromos.txt | 2 +- doc/src/bond_harmonic.txt | 2 +- doc/src/bond_harmonic_shift.txt | 2 +- doc/src/bond_harmonic_shift_cut.txt | 2 +- doc/src/bond_hybrid.txt | 2 +- doc/src/bond_morse.txt | 2 +- doc/src/bond_none.txt | 2 +- doc/src/bond_nonlinear.txt | 2 +- doc/src/bond_oxdna.txt | 2 +- doc/src/bond_quartic.txt | 2 +- doc/src/bond_style.txt | 7 +- doc/src/bond_table.txt | 2 +- doc/src/bond_write.txt | 2 +- doc/src/bond_zero.txt | 2 +- doc/src/boundary.txt | 2 +- doc/src/box.txt | 2 +- doc/src/change_box.txt | 2 +- doc/src/clear.txt | 2 +- doc/src/comm_modify.txt | 2 +- doc/src/comm_style.txt | 2 +- doc/src/compute.txt | 28 +- doc/src/compute_ackland_atom.txt | 2 +- doc/src/compute_angle.txt | 2 +- doc/src/compute_angle_local.txt | 2 +- doc/src/compute_angmom_chunk.txt | 2 +- doc/src/compute_basal_atom.txt | 2 +- doc/src/compute_body_local.txt | 2 +- doc/src/compute_bond.txt | 2 +- doc/src/compute_bond_local.txt | 2 +- doc/src/compute_centro_atom.txt | 2 +- doc/src/compute_chunk_atom.txt | 2 +- doc/src/compute_cluster_atom.txt | 2 +- doc/src/compute_cna_atom.txt | 2 +- doc/src/compute_cnp_atom.txt | 2 +- doc/src/compute_com.txt | 2 +- doc/src/compute_com_chunk.txt | 2 +- doc/src/compute_contact_atom.txt | 2 +- doc/src/compute_coord_atom.txt | 2 +- doc/src/compute_damage_atom.txt | 2 +- doc/src/compute_dihedral.txt | 2 +- doc/src/compute_dihedral_local.txt | 2 +- doc/src/compute_dilatation_atom.txt | 2 +- doc/src/compute_dipole_chunk.txt | 2 +- doc/src/compute_displace_atom.txt | 2 +- doc/src/compute_dpd.txt | 2 +- doc/src/compute_dpd_atom.txt | 2 +- doc/src/compute_edpd_temp_atom.txt | 2 +- doc/src/compute_entropy_atom.txt | 2 +- doc/src/compute_erotate_asphere.txt | 2 +- doc/src/compute_erotate_rigid.txt | 2 +- doc/src/compute_erotate_sphere.txt | 2 +- doc/src/compute_erotate_sphere_atom.txt | 2 +- doc/src/compute_event_displace.txt | 2 +- doc/src/compute_fep.txt | 2 +- doc/src/compute_global_atom.txt | 2 +- doc/src/compute_group_group.txt | 2 +- doc/src/compute_gyration.txt | 2 +- doc/src/compute_gyration_chunk.txt | 2 +- doc/src/compute_heat_flux.txt | 2 +- doc/src/compute_hexorder_atom.txt | 2 +- doc/src/compute_improper.txt | 2 +- doc/src/compute_improper_local.txt | 2 +- doc/src/compute_inertia_chunk.txt | 2 +- doc/src/compute_ke.txt | 2 +- doc/src/compute_ke_atom.txt | 2 +- doc/src/compute_ke_atom_eff.txt | 2 +- doc/src/compute_ke_eff.txt | 2 +- doc/src/compute_ke_rigid.txt | 2 +- doc/src/compute_meso_e_atom.txt | 2 +- doc/src/compute_meso_rho_atom.txt | 2 +- doc/src/compute_meso_t_atom.txt | 2 +- doc/src/compute_modify.txt | 2 +- doc/src/compute_msd.txt | 2 +- doc/src/compute_msd_chunk.txt | 2 +- doc/src/compute_msd_nongauss.txt | 2 +- doc/src/compute_omega_chunk.txt | 2 +- doc/src/compute_orientorder_atom.txt | 2 +- doc/src/compute_pair.txt | 2 +- doc/src/compute_pair_local.txt | 2 +- doc/src/compute_pe.txt | 2 +- doc/src/compute_pe_atom.txt | 2 +- doc/src/compute_plasticity_atom.txt | 2 +- doc/src/compute_pressure.txt | 2 +- doc/src/compute_pressure_uef.txt | 2 +- doc/src/compute_property_atom.txt | 2 +- doc/src/compute_property_chunk.txt | 2 +- doc/src/compute_property_local.txt | 2 +- doc/src/compute_rdf.txt | 2 +- doc/src/compute_reduce.txt | 2 +- doc/src/compute_rigid_local.txt | 2 +- doc/src/compute_saed.txt | 2 +- doc/src/compute_slice.txt | 2 +- doc/src/compute_smd_contact_radius.txt | 2 +- doc/src/compute_smd_damage.txt | 2 +- doc/src/compute_smd_hourglass_error.txt | 2 +- doc/src/compute_smd_internal_energy.txt | 2 +- doc/src/compute_smd_plastic_strain.txt | 2 +- doc/src/compute_smd_plastic_strain_rate.txt | 2 +- doc/src/compute_smd_rho.txt | 2 +- doc/src/compute_smd_tlsph_defgrad.txt | 2 +- doc/src/compute_smd_tlsph_dt.txt | 2 +- doc/src/compute_smd_tlsph_num_neighs.txt | 2 +- doc/src/compute_smd_tlsph_shape.txt | 2 +- doc/src/compute_smd_tlsph_strain.txt | 2 +- doc/src/compute_smd_tlsph_strain_rate.txt | 2 +- doc/src/compute_smd_tlsph_stress.txt | 2 +- .../compute_smd_triangle_mesh_vertices.txt | 2 +- doc/src/compute_smd_ulsph_num_neighs.txt | 2 +- doc/src/compute_smd_ulsph_strain.txt | 2 +- doc/src/compute_smd_ulsph_strain_rate.txt | 2 +- doc/src/compute_smd_ulsph_stress.txt | 2 +- doc/src/compute_smd_vol.txt | 2 +- doc/src/compute_sna_atom.txt | 2 +- doc/src/compute_spin.txt | 2 +- doc/src/compute_stress_atom.txt | 2 +- doc/src/compute_tally.txt | 2 +- doc/src/compute_tdpd_cc_atom.txt | 2 +- doc/src/compute_temp.txt | 2 +- doc/src/compute_temp_asphere.txt | 2 +- doc/src/compute_temp_body.txt | 2 +- doc/src/compute_temp_chunk.txt | 2 +- doc/src/compute_temp_com.txt | 2 +- doc/src/compute_temp_cs.txt | 2 +- doc/src/compute_temp_deform.txt | 2 +- doc/src/compute_temp_deform_eff.txt | 2 +- doc/src/compute_temp_drude.txt | 2 +- doc/src/compute_temp_eff.txt | 2 +- doc/src/compute_temp_partial.txt | 2 +- doc/src/compute_temp_profile.txt | 2 +- doc/src/compute_temp_ramp.txt | 2 +- doc/src/compute_temp_region.txt | 2 +- doc/src/compute_temp_region_eff.txt | 2 +- doc/src/compute_temp_rotate.txt | 2 +- doc/src/compute_temp_sphere.txt | 2 +- doc/src/compute_temp_uef.txt | 2 +- doc/src/compute_ti.txt | 2 +- doc/src/compute_torque_chunk.txt | 2 +- doc/src/compute_vacf.txt | 2 +- doc/src/compute_vcm_chunk.txt | 2 +- doc/src/compute_voronoi_atom.txt | 2 +- doc/src/compute_xrd.txt | 2 +- doc/src/create_atoms.txt | 2 +- doc/src/create_bonds.txt | 2 +- doc/src/create_box.txt | 2 +- doc/src/delete_atoms.txt | 2 +- doc/src/delete_bonds.txt | 2 +- doc/src/dielectric.txt | 2 +- doc/src/dihedral_charmm.txt | 2 +- doc/src/dihedral_class2.txt | 2 +- doc/src/dihedral_coeff.txt | 8 +- doc/src/dihedral_cosine_shift_exp.txt | 2 +- doc/src/dihedral_fourier.txt | 2 +- doc/src/dihedral_harmonic.txt | 2 +- doc/src/dihedral_helix.txt | 2 +- doc/src/dihedral_hybrid.txt | 2 +- doc/src/dihedral_multi_harmonic.txt | 2 +- doc/src/dihedral_nharmonic.txt | 2 +- doc/src/dihedral_none.txt | 2 +- doc/src/dihedral_opls.txt | 2 +- doc/src/dihedral_quadratic.txt | 2 +- doc/src/dihedral_spherical.txt | 2 +- doc/src/dihedral_style.txt | 8 +- doc/src/dihedral_table.txt | 2 +- doc/src/dihedral_table_cut.txt | 2 +- doc/src/dihedral_zero.txt | 2 +- doc/src/dimension.txt | 2 +- doc/src/displace_atoms.txt | 2 +- doc/src/dump.txt | 2 +- doc/src/dump_cfg_uef.txt | 2 +- doc/src/dump_h5md.txt | 2 +- doc/src/dump_image.txt | 2 +- doc/src/dump_modify.txt | 2 +- doc/src/dump_molfile.txt | 2 +- doc/src/dump_netcdf.txt | 2 +- doc/src/dump_vtk.txt | 2 +- doc/src/echo.txt | 2 +- doc/src/fix.txt | 22 +- doc/src/fix_adapt.txt | 2 +- doc/src/fix_adapt_fep.txt | 2 +- doc/src/fix_addforce.txt | 2 +- doc/src/fix_addtorque.txt | 2 +- doc/src/fix_append_atoms.txt | 2 +- doc/src/fix_atc.txt | 2 +- doc/src/fix_atom_swap.txt | 2 +- doc/src/fix_ave_atom.txt | 2 +- doc/src/fix_ave_chunk.txt | 2 +- doc/src/fix_ave_correlate.txt | 2 +- doc/src/fix_ave_correlate_long.txt | 2 +- doc/src/fix_ave_histo.txt | 2 +- doc/src/fix_ave_time.txt | 2 +- doc/src/fix_aveforce.txt | 2 +- doc/src/fix_balance.txt | 2 +- doc/src/fix_bocs.txt | 2 +- doc/src/fix_bond_break.txt | 2 +- doc/src/fix_bond_create.txt | 2 +- doc/src/fix_bond_react.txt | 2 +- doc/src/fix_bond_swap.txt | 2 +- doc/src/fix_box_relax.txt | 2 +- doc/src/fix_cmap.txt | 2 +- doc/src/fix_colvars.txt | 2 +- doc/src/fix_controller.txt | 2 +- doc/src/fix_deform.txt | 2 +- doc/src/fix_deposit.txt | 2 +- doc/src/fix_dpd_energy.txt | 2 +- doc/src/fix_dpd_source.txt | 2 +- doc/src/fix_drag.txt | 2 +- doc/src/fix_drude.txt | 2 +- doc/src/fix_drude_transform.txt | 2 +- doc/src/fix_dt_reset.txt | 2 +- doc/src/fix_efield.txt | 2 +- doc/src/fix_ehex.txt | 2 +- doc/src/fix_enforce2d.txt | 2 +- doc/src/fix_eos_cv.txt | 2 +- doc/src/fix_eos_table.txt | 2 +- doc/src/fix_eos_table_rx.txt | 2 +- doc/src/fix_evaporate.txt | 2 +- doc/src/fix_external.txt | 2 +- doc/src/fix_filter_corotate.txt | 2 +- doc/src/fix_flow_gauss.txt | 2 +- doc/src/fix_freeze.txt | 2 +- doc/src/fix_gcmc.txt | 2 +- doc/src/fix_gld.txt | 2 +- doc/src/fix_gle.txt | 2 +- doc/src/fix_gravity.txt | 2 +- doc/src/fix_grem.txt | 2 +- doc/src/fix_halt.txt | 2 +- doc/src/fix_heat.txt | 2 +- doc/src/fix_imd.txt | 2 +- doc/src/fix_indent.txt | 2 +- doc/src/fix_ipi.txt | 2 +- doc/src/fix_langevin.txt | 2 +- doc/src/fix_langevin_drude.txt | 2 +- doc/src/fix_langevin_eff.txt | 2 +- doc/src/fix_langevin_spin.txt | 2 +- doc/src/fix_latte.txt | 2 +- doc/src/fix_lb_fluid.txt | 2 +- doc/src/fix_lb_momentum.txt | 2 +- doc/src/fix_lb_pc.txt | 2 +- doc/src/fix_lb_rigid_pc_sphere.txt | 2 +- doc/src/fix_lb_viscous.txt | 2 +- doc/src/fix_lineforce.txt | 2 +- doc/src/fix_manifoldforce.txt | 2 +- doc/src/fix_meso.txt | 2 +- doc/src/fix_meso_stationary.txt | 2 +- doc/src/fix_modify.txt | 2 +- doc/src/fix_momentum.txt | 2 +- doc/src/fix_move.txt | 2 +- doc/src/fix_mscg.txt | 2 +- doc/src/fix_msst.txt | 2 +- doc/src/fix_mvv_dpd.txt | 2 +- doc/src/fix_neb.txt | 2 +- doc/src/fix_nh.txt | 2 +- doc/src/fix_nh_eff.txt | 2 +- doc/src/fix_nh_uef.txt | 2 +- doc/src/fix_nph_asphere.txt | 2 +- doc/src/fix_nph_body.txt | 2 +- doc/src/fix_nph_sphere.txt | 2 +- doc/src/fix_nphug.txt | 2 +- doc/src/fix_npt_asphere.txt | 2 +- doc/src/fix_npt_body.txt | 2 +- doc/src/fix_npt_sphere.txt | 2 +- doc/src/fix_nve.txt | 2 +- doc/src/fix_nve_asphere.txt | 2 +- doc/src/fix_nve_asphere_noforce.txt | 2 +- doc/src/fix_nve_body.txt | 2 +- doc/src/fix_nve_dot.txt | 2 +- doc/src/fix_nve_dotc_langevin.txt | 2 +- doc/src/fix_nve_eff.txt | 2 +- doc/src/fix_nve_limit.txt | 2 +- doc/src/fix_nve_line.txt | 2 +- doc/src/fix_nve_manifold_rattle.txt | 2 +- doc/src/fix_nve_noforce.txt | 2 +- doc/src/fix_nve_sphere.txt | 2 +- doc/src/fix_nve_spin.txt | 2 +- doc/src/fix_nve_tri.txt | 2 +- doc/src/fix_nvk.txt | 2 +- doc/src/fix_nvt_asphere.txt | 2 +- doc/src/fix_nvt_body.txt | 2 +- doc/src/fix_nvt_manifold_rattle.txt | 2 +- doc/src/fix_nvt_sllod.txt | 2 +- doc/src/fix_nvt_sllod_eff.txt | 2 +- doc/src/fix_nvt_sphere.txt | 2 +- doc/src/fix_oneway.txt | 2 +- doc/src/fix_orient.txt | 2 +- doc/src/fix_phonon.txt | 2 +- doc/src/fix_pimd.txt | 2 +- doc/src/fix_planeforce.txt | 2 +- doc/src/fix_poems.txt | 2 +- doc/src/fix_pour.txt | 2 +- doc/src/fix_precession_spin.txt | 2 +- doc/src/fix_press_berendsen.txt | 2 +- doc/src/fix_print.txt | 2 +- doc/src/fix_property_atom.txt | 2 +- doc/src/fix_python_invoke.txt | 2 +- doc/src/fix_python_move.txt | 2 +- doc/src/fix_qbmsst.txt | 2 +- doc/src/fix_qeq.txt | 2 +- doc/src/fix_qeq_comb.txt | 2 +- doc/src/fix_qeq_reax.txt | 2 +- doc/src/fix_qmmm.txt | 2 +- doc/src/fix_qtb.txt | 2 +- doc/src/fix_reax_bonds.txt | 2 +- doc/src/fix_reaxc_species.txt | 2 +- doc/src/fix_recenter.txt | 2 +- doc/src/fix_restrain.txt | 2 +- doc/src/fix_rhok.txt | 2 +- doc/src/fix_rigid.txt | 2 +- doc/src/fix_rx.txt | 2 +- doc/src/fix_saed_vtk.txt | 2 +- doc/src/fix_setforce.txt | 2 +- doc/src/fix_shake.txt | 2 +- doc/src/fix_shardlow.txt | 2 +- doc/src/fix_smd.txt | 2 +- doc/src/fix_smd_adjust_dt.txt | 2 +- doc/src/fix_smd_integrate_tlsph.txt | 2 +- doc/src/fix_smd_integrate_ulsph.txt | 2 +- doc/src/fix_smd_move_triangulated_surface.txt | 2 +- doc/src/fix_smd_setvel.txt | 2 +- doc/src/fix_smd_wall_surface.txt | 2 +- doc/src/fix_spring.txt | 2 +- doc/src/fix_spring_chunk.txt | 2 +- doc/src/fix_spring_rg.txt | 2 +- doc/src/fix_spring_self.txt | 2 +- doc/src/fix_srd.txt | 2 +- doc/src/fix_store_force.txt | 2 +- doc/src/fix_store_state.txt | 2 +- doc/src/fix_surface_global.txt | 2 +- doc/src/fix_temp_berendsen.txt | 2 +- doc/src/fix_temp_csvr.txt | 2 +- doc/src/fix_temp_rescale.txt | 2 +- doc/src/fix_temp_rescale_eff.txt | 2 +- doc/src/fix_tfmc.txt | 2 +- doc/src/fix_thermal_conductivity.txt | 2 +- doc/src/fix_ti_spring.txt | 2 +- doc/src/fix_tmd.txt | 2 +- doc/src/fix_ttm.txt | 2 +- doc/src/fix_tune_kspace.txt | 2 +- doc/src/fix_vector.txt | 2 +- doc/src/fix_viscosity.txt | 2 +- doc/src/fix_viscous.txt | 2 +- doc/src/fix_wall.txt | 2 +- doc/src/fix_wall_body_polygon.txt | 2 +- doc/src/fix_wall_body_polyhedron.txt | 2 +- doc/src/fix_wall_ees.txt | 2 +- doc/src/fix_wall_gran.txt | 2 +- doc/src/fix_wall_gran_region.txt | 2 +- doc/src/fix_wall_piston.txt | 2 +- doc/src/fix_wall_reflect.txt | 2 +- doc/src/fix_wall_region.txt | 2 +- doc/src/fix_wall_srd.txt | 2 +- doc/src/group.txt | 2 +- doc/src/group2ndx.txt | 2 +- doc/src/if.txt | 8 +- doc/src/improper_class2.txt | 2 +- doc/src/improper_coeff.txt | 8 +- doc/src/improper_cossq.txt | 2 +- doc/src/improper_cvff.txt | 2 +- doc/src/improper_distance.txt | 2 +- doc/src/improper_fourier.txt | 2 +- doc/src/improper_harmonic.txt | 2 +- doc/src/improper_hybrid.txt | 2 +- doc/src/improper_inversion_harmonic.txt | 2 +- doc/src/improper_none.txt | 2 +- doc/src/improper_ring.txt | 2 +- doc/src/improper_style.txt | 8 +- doc/src/improper_umbrella.txt | 2 +- doc/src/improper_zero.txt | 2 +- doc/src/include.txt | 2 +- doc/src/info.txt | 2 +- doc/src/jump.txt | 2 +- doc/src/kspace_modify.txt | 2 +- doc/src/kspace_style.txt | 2 +- doc/src/label.txt | 2 +- doc/src/lammps.book | 12 +- doc/src/lattice.txt | 2 +- doc/src/log.txt | 2 +- doc/src/manifolds.txt | 2 +- doc/src/mass.txt | 2 +- doc/src/min_modify.txt | 2 +- doc/src/min_style.txt | 2 +- doc/src/minimize.txt | 2 +- doc/src/molecule.txt | 2 +- doc/src/neb.txt | 2 +- doc/src/neigh_modify.txt | 2 +- doc/src/neighbor.txt | 2 +- doc/src/newton.txt | 2 +- doc/src/next.txt | 2 +- doc/src/package.txt | 2 +- doc/src/pair_adp.txt | 2 +- doc/src/pair_agni.txt | 2 +- doc/src/pair_airebo.txt | 2 +- doc/src/pair_awpmd.txt | 2 +- doc/src/pair_beck.txt | 2 +- doc/src/pair_body_nparticle.txt | 2 +- doc/src/pair_body_rounded_polygon.txt | 2 +- doc/src/pair_body_rounded_polyhedron.txt | 2 +- doc/src/pair_bop.txt | 2 +- doc/src/pair_born.txt | 2 +- doc/src/pair_brownian.txt | 2 +- doc/src/pair_buck.txt | 2 +- doc/src/pair_buck6d_coul_gauss.txt | 2 +- doc/src/pair_buck_long.txt | 2 +- doc/src/pair_charmm.txt | 2 +- doc/src/pair_class2.txt | 2 +- doc/src/pair_coeff.txt | 19 +- doc/src/pair_colloid.txt | 2 +- doc/src/pair_comb.txt | 2 +- doc/src/pair_coul.txt | 2 +- doc/src/pair_coul_diel.txt | 2 +- doc/src/pair_coul_shield.txt | 2 +- doc/src/pair_cs.txt | 2 +- doc/src/pair_dipole.txt | 2 +- doc/src/pair_dpd.txt | 2 +- doc/src/pair_dpd_fdt.txt | 2 +- doc/src/pair_dsmc.txt | 2 +- doc/src/pair_eam.txt | 2 +- doc/src/pair_edip.txt | 2 +- doc/src/pair_eff.txt | 2 +- doc/src/pair_eim.txt | 2 +- doc/src/pair_exp6_rx.txt | 2 +- doc/src/pair_extep.txt | 2 +- doc/src/pair_gauss.txt | 2 +- doc/src/pair_gayberne.txt | 2 +- doc/src/pair_gran.txt | 2 +- doc/src/pair_gromacs.txt | 2 +- doc/src/pair_gw.txt | 2 +- doc/src/pair_hbond_dreiding.txt | 2 +- doc/src/pair_hybrid.txt | 2 +- doc/src/pair_ilp_graphene_hbn.txt | 2 +- doc/src/pair_kim.txt | 2 +- doc/src/pair_kolmogorov_crespi_full.txt | 2 +- doc/src/pair_kolmogorov_crespi_z.txt | 2 +- doc/src/pair_lcbop.txt | 2 +- doc/src/pair_line_lj.txt | 2 +- doc/src/pair_list.txt | 2 +- doc/src/pair_lj.txt | 2 +- doc/src/pair_lj96.txt | 2 +- doc/src/pair_lj_cubic.txt | 2 +- doc/src/pair_lj_expand.txt | 2 +- doc/src/pair_lj_long.txt | 2 +- doc/src/pair_lj_smooth.txt | 2 +- doc/src/pair_lj_smooth_linear.txt | 2 +- doc/src/pair_lj_soft.txt | 2 +- doc/src/pair_lubricate.txt | 2 +- doc/src/pair_lubricateU.txt | 2 +- doc/src/pair_mdf.txt | 2 +- doc/src/pair_meam.txt | 2 +- doc/src/pair_meam_spline.txt | 2 +- doc/src/pair_meam_sw_spline.txt | 2 +- doc/src/pair_meso.txt | 2 +- doc/src/pair_mgpt.txt | 2 +- doc/src/pair_mie.txt | 2 +- doc/src/pair_modify.txt | 2 +- doc/src/pair_momb.txt | 2 +- doc/src/pair_morse.txt | 2 +- doc/src/pair_multi_lucy.txt | 2 +- doc/src/pair_multi_lucy_rx.txt | 2 +- doc/src/pair_nb3b_harmonic.txt | 2 +- doc/src/pair_nm.txt | 2 +- doc/src/pair_none.txt | 2 +- doc/src/pair_oxdna.txt | 2 +- doc/src/pair_oxdna2.txt | 2 +- doc/src/pair_peri.txt | 2 +- doc/src/pair_polymorphic.txt | 2 +- doc/src/pair_python.txt | 2 +- doc/src/pair_quip.txt | 2 +- doc/src/pair_reax.txt | 2 +- doc/src/pair_reaxc.txt | 2 +- doc/src/pair_resquared.txt | 2 +- doc/src/pair_sdk.txt | 2 +- doc/src/pair_smd_hertz.txt | 2 +- doc/src/pair_smd_tlsph.txt | 2 +- doc/src/pair_smd_triangulated_surface.txt | 2 +- doc/src/pair_smd_ulsph.txt | 2 +- doc/src/pair_smtbq.txt | 2 +- doc/src/pair_snap.txt | 2 +- doc/src/pair_soft.txt | 2 +- doc/src/pair_sph_heatconduction.txt | 2 +- doc/src/pair_sph_idealgas.txt | 2 +- doc/src/pair_sph_lj.txt | 2 +- doc/src/pair_sph_rhosum.txt | 2 +- doc/src/pair_sph_taitwater.txt | 2 +- doc/src/pair_sph_taitwater_morris.txt | 2 +- doc/src/pair_spin_dmi.txt | 2 +- doc/src/pair_spin_exchange.txt | 2 +- doc/src/pair_spin_magelec.txt | 2 +- doc/src/pair_spin_neel.txt | 2 +- doc/src/pair_srp.txt | 2 +- doc/src/pair_style.txt | 18 +- doc/src/pair_sw.txt | 2 +- doc/src/pair_table.txt | 2 +- doc/src/pair_table_rx.txt | 2 +- doc/src/pair_tersoff.txt | 2 +- doc/src/pair_tersoff_mod.txt | 2 +- doc/src/pair_tersoff_zbl.txt | 2 +- doc/src/pair_thole.txt | 2 +- doc/src/pair_tri_lj.txt | 2 +- doc/src/pair_ufm.txt | 2 +- doc/src/pair_vashishta.txt | 2 +- doc/src/pair_write.txt | 2 +- doc/src/pair_yukawa.txt | 2 +- doc/src/pair_yukawa_colloid.txt | 2 +- doc/src/pair_zbl.txt | 2 +- doc/src/pair_zero.txt | 2 +- doc/src/partition.txt | 2 +- doc/src/prd.txt | 2 +- doc/src/print.txt | 2 +- doc/src/processors.txt | 2 +- doc/src/python.txt | 8 +- doc/src/quit.txt | 2 +- doc/src/read_data.txt | 2 +- doc/src/read_dump.txt | 2 +- doc/src/read_restart.txt | 2 +- doc/src/region.txt | 2 +- doc/src/replicate.txt | 2 +- doc/src/rerun.txt | 2 +- doc/src/reset_ids.txt | 2 +- doc/src/reset_timestep.txt | 2 +- doc/src/restart.txt | 2 +- doc/src/run.txt | 2 +- doc/src/run_style.txt | 2 +- doc/src/set.txt | 2 +- doc/src/shell.txt | 2 +- doc/src/special_bonds.txt | 2 +- doc/src/suffix.txt | 2 +- doc/src/tad.txt | 2 +- doc/src/temper.txt | 2 +- doc/src/temper_grem.txt | 2 +- doc/src/temper_npt.txt | 2 +- doc/src/thermo.txt | 2 +- doc/src/thermo_modify.txt | 2 +- doc/src/thermo_style.txt | 2 +- doc/src/timer.txt | 2 +- doc/src/timestep.txt | 2 +- doc/src/uncompute.txt | 2 +- doc/src/undump.txt | 2 +- doc/src/unfix.txt | 2 +- doc/src/units.txt | 2 +- doc/src/variable.txt | 42 +- doc/src/velocity.txt | 2 +- doc/src/write_coeff.txt | 2 +- doc/src/write_data.txt | 2 +- doc/src/write_dump.txt | 2 +- doc/src/write_restart.txt | 2 +- 678 files changed, 2336 insertions(+), 2232 deletions(-) create mode 100644 doc/src/Commands.txt create mode 100644 doc/src/Commands_all.txt create mode 100644 doc/src/Commands_bond.txt create mode 100644 doc/src/Commands_category.txt create mode 100644 doc/src/Commands_compute.txt create mode 100644 doc/src/Commands_fix.txt create mode 100644 doc/src/Commands_input.txt create mode 100644 doc/src/Commands_kspace.txt create mode 100644 doc/src/Commands_pair.txt create mode 100644 doc/src/Commands_parse.txt create mode 100644 doc/src/Commands_structure.txt delete mode 100644 doc/src/Section_commands.txt diff --git a/doc/src/Commands.txt b/doc/src/Commands.txt new file mode 100644 index 0000000000..30e3343bd2 --- /dev/null +++ b/doc/src/Commands.txt @@ -0,0 +1,51 @@ +"Previous Section"_Run.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Packages.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html#comm) + +:line + +Commands :h2 + +These pages describe how a LAMMPS input script is formatted and the +commands in it are used to define a LAMMPS simulation. + + + + + +"LAMMPS input scripts"_Commands_input.html +"Parsing rules for input scripts"_Commands_parse.html +"Input script structure"_Commands_structure.html +"Commands by category"_Commands_category.html :all(b) + +"All commands"_Commands_all.html +"Fix commands"_Commands_fix.html +"Compute commands"_Commands_compute.html +"Pair commands"_Commands_pair.html +"Bond, angle, dihedral, improper commands"_Commands_bond.html +"KSpace solvers"_Commands_kspace.html :all(b) + + + diff --git a/doc/src/Commands_all.txt b/doc/src/Commands_all.txt new file mode 100644 index 0000000000..13db1272b9 --- /dev/null +++ b/doc/src/Commands_all.txt @@ -0,0 +1,128 @@ +"Higher level section"_Commands.html - "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 + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +All commands :h3 + +An alphabetic list of all LAMMPS commmands. + +"angle_coeff"_angle_coeff.html, +"angle_style"_angle_style.html, +"atom_modify"_atom_modify.html, +"atom_style"_atom_style.html, +"balance"_balance.html, +"bond_coeff"_bond_coeff.html, +"bond_style"_bond_style.html, +"bond_write"_bond_write.html, +"boundary"_boundary.html, +"box"_box.html, +"change_box"_change_box.html, +"clear"_clear.html, +"comm_modify"_comm_modify.html, +"comm_style"_comm_style.html, +"compute"_compute.html, +"compute_modify"_compute_modify.html, +"create_atoms"_create_atoms.html, +"create_bonds"_create_bonds.html, +"create_box"_create_box.html, +"delete_atoms"_delete_atoms.html, +"delete_bonds"_delete_bonds.html, +"dielectric"_dielectric.html, +"dihedral_coeff"_dihedral_coeff.html, +"dihedral_style"_dihedral_style.html, +"dimension"_dimension.html, +"displace_atoms"_displace_atoms.html, +"dump"_dump.html, +"dump image"_dump_image.html, +"dump_modify"_dump_modify.html, +"dump movie"_dump_image.html, +"dump netcdf"_dump_netcdf.html, +"dump netcdf/mpiio"_dump_netcdf.html, +"dump vtk"_dump_vtk.html, +"echo"_echo.html, +"fix"_fix.html, +"fix_modify"_fix_modify.html, +"group"_group.html, +"group2ndx"_group2ndx.html, +"if"_if.html, +"info"_info.html, +"improper_coeff"_improper_coeff.html, +"improper_style"_improper_style.html, +"include"_include.html, +"jump"_jump.html, +"kspace_modify"_kspace_modify.html, +"kspace_style"_kspace_style.html, +"label"_label.html, +"lattice"_lattice.html, +"log"_log.html, +"mass"_mass.html, +"minimize"_minimize.html, +"min_modify"_min_modify.html, +"min_style"_min_style.html, +"molecule"_molecule.html, +"ndx2group"_group2ndx.html, +"neb"_neb.html, +"neigh_modify"_neigh_modify.html, +"neighbor"_neighbor.html, +"newton"_newton.html, +"next"_next.html, +"package"_package.html, +"pair_coeff"_pair_coeff.html, +"pair_modify"_pair_modify.html, +"pair_style"_pair_style.html, +"pair_write"_pair_write.html, +"partition"_partition.html, +"prd"_prd.html, +"print"_print.html, +"processors"_processors.html, +"python"_python.html, +"quit"_quit.html, +"read_data"_read_data.html, +"read_dump"_read_dump.html, +"read_restart"_read_restart.html, +"region"_region.html, +"replicate"_replicate.html, +"rerun"_rerun.html, +"reset_ids"_reset_ids.html, +"reset_timestep"_reset_timestep.html, +"restart"_restart.html, +"run"_run.html, +"run_style"_run_style.html, +"set"_set.html, +"shell"_shell.html, +"special_bonds"_special_bonds.html, +"suffix"_suffix.html, +"tad"_tad.html, +"temper"_temper.html, +"temper/grem"_temper_grem.html, +"temper/npt"_temper_npt.html, +"thermo"_thermo.html, +"thermo_modify"_thermo_modify.html, +"thermo_style"_thermo_style.html, +"timer"_timer.html, +"timestep"_timestep.html, +"uncompute"_uncompute.html, +"undump"_undump.html, +"unfix"_unfix.html, +"units"_units.html, +"variable"_variable.html, +"velocity"_velocity.html, +"write_coeff"_write_coeff.html, +"write_data"_write_data.html, +"write_dump"_write_dump.html, +"write_restart"_write_restart.html :tb(c=6,ea=c) diff --git a/doc/src/Commands_bond.txt b/doc/src/Commands_bond.txt new file mode 100644 index 0000000000..314260cb14 --- /dev/null +++ b/doc/src/Commands_bond.txt @@ -0,0 +1,124 @@ +"Higher level section"_Commands.html - "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) + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +Bond, angle, dihedral, and improper commands :h3 + +:line + +Bond_style potentials :h3,link(bond) + +All LAMMPS "bond_style"_bond_style.html commands. Some styles have +accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"none"_bond_none.html, +"zero"_bond_zero.html, +"hybrid"_bond_hybrid.html :tb(c=3,ea=c) + +"class2 (ko)"_bond_class2.html, +"fene (iko)"_bond_fene.html, +"fene/expand (o)"_bond_fene_expand.html, +"gromos (o)"_bond_gromos.html, +"harmonic (ko)"_bond_harmonic.html, +"harmonic/shift (o)"_bond_harmonic_shift.html, +"harmonic/shift/cut (o)"_bond_harmonic_shift_cut.html, +"morse (o)"_bond_morse.html, +"nonlinear (o)"_bond_nonlinear.html, +"oxdna/fene"_bond_oxdna.html, +"oxdna2/fene"_bond_oxdna.html, +"quartic (o)"_bond_quartic.html, +"table (o)"_bond_table.html :tb(c=4,ea=c) + +:line + +Angle_style potentials :h3,link(angle) + +All LAMMPS "angle_style"_angle_style.html commands. Some styles have +accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"none"_angle_none.html, +"zero"_angle_zero.html, +"hybrid"_angle_hybrid.html :tb(c=3,ea=c) + +"charmm (ko)"_angle_charmm.html, +"class2 (ko)"_angle_class2.html, +"cosine (o)"_angle_cosine.html, +"cosine/delta (o)"_angle_cosine_delta.html, +"cosine/periodic (o)"_angle_cosine_periodic.html, +"cosine/shift (o)"_angle_cosine_shift.html, +"cosine/shift/exp (o)"_angle_cosine_shift_exp.html, +"cosine/squared (o)"_angle_cosine_squared.html, +"dipole (o)"_angle_dipole.html, +"fourier (o)"_angle_fourier.html, +"fourier/simple (o)"_angle_fourier_simple.html, +"harmonic (iko)"_angle_harmonic.html, +"quartic (o)"_angle_quartic.html, +"sdk"_angle_sdk.html, +"table (o)"_angle_table.html :tb(c=4,ea=c) + +:line + +Dihedral_style potentials :h3,link(dihedral) + +All LAMMPS "dihedral_style"_dihedral_style.html commands. Some styles +have accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"none"_dihedral_none.html, +"zero"_dihedral_zero.html, +"hybrid"_dihedral_hybrid.html :tb(c=3,ea=c) + +"charmm (iko)"_dihedral_charmm.html, +"charmmfsw"_dihedral_charmm.html, +"class2 (ko)"_dihedral_class2.html, +"cosine/shift/exp (o)"_dihedral_cosine_shift_exp.html, +"fourier (io)"_dihedral_fourier.html, +"harmonic (io)"_dihedral_harmonic.html, +"helix (o)"_dihedral_helix.html, +"multi/harmonic (o)"_dihedral_multi_harmonic.html, +"nharmonic (o)"_dihedral_nharmonic.html, +"opls (iko)"_dihedral_opls.htm;, +"quadratic (o)"_dihedral_quadratic.html, +"spherical (o)"_dihedral_spherical.html, +"table (o)"_dihedral_table.html, +"table/cut"_dihedral_table_cut.html :tb(c=4,ea=c) + +:line + +Improper_style potentials :h3,link(improper) + +All LAMMPS "improper_style"_improper_style.html commands. Some styles +have accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"none"_improper_none.html, +"zero"_improper_zero.html, +"hybrid"_improper_hybrid.html :tb(c=3,ea=c) + +"class2 (ko)"_improper_class2.html, +"cossq (o)"_improper_cossq.html, +"cvff (io)"_improper_cvff.html, +"distance"_improper_distance.html, +"fourier (o)"_improper_fourier.html, +"harmonic (iko)"_improper_harmonic.html, +"ring (o)"_improper_ring.html, +"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c) diff --git a/doc/src/Commands_category.txt b/doc/src/Commands_category.txt new file mode 100644 index 0000000000..5d047c6727 --- /dev/null +++ b/doc/src/Commands_category.txt @@ -0,0 +1,141 @@ +"Higher level section"_Commands.html - "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 + +Commands by category :h3 + +This page lists most of the LAMMPS commands, grouped by category. The +"Commands all"_Commands_all.html doc page lists all commands +alphabetically. It also includes long lists of style options for +entries that appear in the following categories as a single command +(fix, compute, pair, etc). + +Initialization: + +"newton"_newton.html, +"package"_package.html, +"processors"_processors.html, +"suffix"_suffix.html, +"units"_units.html :ul + +Setup simulation box: + +"boundary"_boundary.html, +"box"_box.html, +"change_box"_change_box.html, +"create_box"_create_box.html, +"dimension"_dimension.html, +"lattice"_lattice.html, +"region"_region.html :ul + +Setup atoms: + +"atom_modify"_atom_modify.html, +"atom_style"_atom_style.html, +"balance"_balance.html, +"create_atoms"_create_atoms.html, +"create_bonds"_create_bonds.html, +"delete_atoms"_delete_atoms.html, +"delete_bonds"_delete_bonds.html, +"displace_atoms"_displace_atoms.html, +"group"_group.html, +"mass"_mass.html, +"molecule"_molecule.html, +"read_data"_read_data.html, +"read_dump"_read_dump.html, +"read_restart"_read_restart.html, +"replicate"_replicate.html, +"set"_set.html, +"velocity"_velocity.html :ul + +Force fields: + +"angle_coeff"_angle_coeff.html, +"angle_style"_angle_style.html, +"bond_coeff"_bond_coeff.html, +"bond_style"_bond_style.html, +"bond_write"_bond_write.html, +"dielectric"_dielectric.html, +"dihedral_coeff"_dihedral_coeff.html, +"dihedral_style"_dihedral_style.html, +"improper_coeff"_improper_coeff.html, +"improper_style"_improper_style.html, +"kspace_modify"_kspace_modify.html, +"kspace_style"_kspace_style.html, +"pair_coeff"_pair_coeff.html, +"pair_modify"_pair_modify.html, +"pair_style"_pair_style.html, +"pair_write"_pair_write.html, +"special_bonds"_special_bonds.html :ul + +Settings: + +"comm_modify"_comm_modify.html, +"comm_style"_comm_style.html, +"info"_info.html, +"min_modify"_min_modify.html, +"min_style"_min_style.html, +"neigh_modify"_neigh_modify.html, +"neighbor"_neighbor.html, +"partition"_partition.html, +"reset_timestep"_reset_timestep.html, +"run_style"_run_style.html, +"timer"_timer.html, +"timestep"_timestep.html :ul + +Operations within timestepping (fixes) and diagnostics (computes): + +"compute"_compute.html, +"compute_modify"_compute_modify.html, +"fix"_fix.html, +"fix_modify"_fix_modify.html, +"uncompute"_uncompute.html, +"unfix"_unfix.html :ul + +Output: + +"dump image"_dump_image.html, +"dump movie"_dump_image.html, +"dump"_dump.html, +"dump_modify"_dump_modify.html, +"restart"_restart.html, +"thermo"_thermo.html, +"thermo_modify"_thermo_modify.html, +"thermo_style"_thermo_style.html, +"undump"_undump.html, +"write_coeff"_write_coeff.html, +"write_data"_write_data.html, +"write_dump"_write_dump.html, +"write_restart"_write_restart.html :ul + +Actions: + +"minimize"_minimize.html, +"neb"_neb.html, +"prd"_prd.html, +"rerun"_rerun.html, +"run"_run.html, +"tad"_tad.html, +"temper"_temper.html :ul + +Input script control: + +"clear"_clear.html, +"echo"_echo.html, +"if"_if.html, +"include"_include.html, +"jump"_jump.html, +"label"_label.html, +"log"_log.html, +"next"_next.html, +"print"_print.html, +"python"_python.html, +"quit"_quit.html, +"shell"_shell.html, +"variable"_variable.html :ul + diff --git a/doc/src/Commands_compute.txt b/doc/src/Commands_compute.txt new file mode 100644 index 0000000000..028e274c9b --- /dev/null +++ b/doc/src/Commands_compute.txt @@ -0,0 +1,153 @@ +"Higher level section"_Commands.html - "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 + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +Compute commands :h3 + +An alphabetic list of all LAMMPS "compute"_compute.html commands. +Some styles have accelerated versions. This is indicated by +additional letters in parenthesis: g = GPU, i = USER-INTEL, k = +KOKKOS, o = USER-OMP, t = OPT. + +"ackland/atom"_compute_ackland_atom.html, +"aggregate/atom"_compute_cluster_atom.html, +"angle"_compute_angle.html, +"angle/local"_compute_angle_local.html, +"angmom/chunk"_compute_angmom_chunk.html, +"basal/atom"_compute_basal_atom.html, +"body/local"_compute_body_local.html, +"bond"_compute_bond.html, +"bond/local"_compute_bond_local.html, +"centro/atom"_compute_centro_atom.html, +"chunk/atom"_compute_chunk_atom.html, +"cluster/atom"_compute_cluster_atom.html, +"cna/atom"_compute_cna_atom.html, +"cnp/atom"_compute_cnp_atom.html, +"com"_compute_com.html, +"com/chunk"_compute_com_chunk.html, +"contact/atom"_compute_contact_atom.html, +"coord/atom"_compute_coord_atom.html, +"damage/atom"_compute_damage_atom.html, +"dihedral"_compute_dihedral.html, +"dihedral/local"_compute_dihedral_local.html, +"dilatation/atom"_compute_dilatation_atom.html, +"dipole/chunk"_compute_dipole_chunk.html, +"displace/atom"_compute_displace_atom.html, +"dpd"_compute_dpd.html, +"dpd/atom"_compute_dpd_atom.html, +"edpd/temp/atom"_compute_edpd_temp_atom.html, +"entropy/atom"_compute_entropy_atom.html, +"erotate/asphere"_compute_erotate_asphere.html, +"erotate/rigid"_compute_erotate_rigid.html, +"erotate/sphere"_compute_erotate_sphere.html, +"erotate/sphere/atom"_compute_erotate_sphere_atom.html, +"event/displace"_compute_event_displace.html, +"fep"_compute_fep.html, +"force/tally"_compute_tally.html, +"fragment/atom"_compute_cluster_atom.html, +"global/atom"_compute_global_atom.html, +"group/group"_compute_group_group.html, +"gyration"_compute_gyration.html, +"gyration/chunk"_compute_gyration_chunk.html, +"heat/flux"_compute_heat_flux.html, +"heat/flux/tally"_compute_tally.html, +"hexorder/atom"_compute_hexorder_atom.html, +"improper"_compute_improper.html, +"improper/local"_compute_improper_local.html, +"inertia/chunk"_compute_inertia_chunk.html, +"ke"_compute_ke.html, +"ke/atom"_compute_ke_atom.html, +"ke/atom/eff"_compute_ke_atom_eff.html, +"ke/eff"_compute_ke_eff.html, +"ke/rigid"_compute_ke_rigid.html, +"meso/e/atom"_compute_meso_e_atom.html, +"meso/rho/atom"_compute_meso_rho_atom.html, +"meso/t/atom"_compute_meso_t_atom.html, +"msd"_compute_msd.html, +"msd/chunk"_compute_msd_chunk.html, +"msd/nongauss"_compute_msd_nongauss.html, +"omega/chunk"_compute_omega_chunk.html, +"orientorder/atom"_compute_orientorder_atom.html, +"pair"_compute_pair.html, +"pair/local"_compute_pair_local.html, +"pe"_compute_pe.html, +"pe/atom"_compute_pe_atom.html, +"pe/mol/tally"_compute_tally.html, +"pe/tally"_compute_tally.html, +"plasticity/atom"_compute_plasticity_atom.html, +"pressure"_compute_pressure.html, +"pressure/uef"_compute_pressure_uef.html, +"property/atom"_compute_property_atom.html, +"property/chunk"_compute_property_chunk.html, +"property/local"_compute_property_local.html, +"rdf"_compute_rdf.html, +"reduce"_compute_reduce.html, +"reduce/region"_compute_reduce.html, +"rigid/local"_compute_rigid_local.html, +"saed"_compute_saed.html, +"slice"_compute_slice.html, +"smd/contact/radius"_compute_smd_contact_radius.html, +"smd/damage"_compute_smd_damage.html, +"smd/hourglass/error"_compute_smd_hourglass_error.html, +"smd/internal/energy"_compute_smd_internal_energy.html, +"smd/plastic/strain"_compute_smd_plastic_strain.html, +"smd/plastic/strain/rate"_compute_smd_plastic_strain_rate.html, +"smd/rho"_compute_smd_rho.html, +"smd/tlsph/defgrad"_compute_smd_tlsph_defgrad.html, +"smd/tlsph/dt"_compute_smd_tlsph_dt.html, +"smd/tlsph/num/neighs"_compute_smd_tlsph_num_neighs.html, +"smd/tlsph/shape"_compute_smd_tlsph_shape.html, +"smd/tlsph/strain"_compute_smd_tlsph_strain.html, +"smd/tlsph/strain/rate"_compute_smd_tlsph_strain_rate.html, +"smd/tlsph/stress"_compute_smd_tlsph_stress.html, +"smd/triangle/mesh/vertices"_compute_smd_triangle_mesh_vertices.html, +"smd/ulsph/num/neighs"_compute_smd_ulsph_num_neighs.html, +"smd/ulsph/strain"_compute_smd_ulsph_strain.html, +"smd/ulsph/strain/rate"_compute_smd_ulsph_strain_rate.html, +"smd/ulsph/stress"_compute_smd_ulsph_stress.html, +"smd/vol"_compute_smd_vol.html, +"sna/atom"_compute_sna_atom.html, +"snad/atom"_compute_sna_atom.html, +"snav/atom"_compute_sna_atom.html, +"spin"_compute_spin.html, +"stress/atom"_compute_stress_atom.html, +"stress/tally"_compute_tally.html, +"tdpd/cc/atom"_compute_tdpd_cc_atom.html, +"temp (k)"_compute_temp.html, +"temp/asphere"_compute_temp_asphere.html, +"temp/body"_compute_temp_body.html, +"temp/chunk"_compute_temp_chunk.html, +"temp/com"_compute_temp_com.html, +"temp/deform"_compute_temp_deform.html, +"temp/deform/eff"_compute_temp_deform_eff.html, +"temp/drude"_compute_temp_drude.html, +"temp/eff"_compute_temp_eff.html, +"temp/partial"_compute_temp_partial.html, +"temp/profile"_compute_temp_profile.html, +"temp/ramp"_compute_temp_ramp.html, +"temp/region"_compute_temp_region.html, +"temp/region/eff"_compute_temp_region_eff.html, +"temp/rotate"_compute_temp_rotate.html, +"temp/sphere"_compute_temp_sphere.html, +"temp/uef"_compute_temp_uef.html, +"ti"_compute_ti.html, +"torque/chunk"_compute_torque_chunk.html, +"vacf"_compute_vacf.html, +"vcm/chunk"_compute_vcm_chunk.html, +"voronoi/atom"_compute_voronoi_atom.html, +"xrd"_compute_xrd.html :tb(c=6,ea=c) diff --git a/doc/src/Commands_fix.txt b/doc/src/Commands_fix.txt new file mode 100644 index 0000000000..e002c11770 --- /dev/null +++ b/doc/src/Commands_fix.txt @@ -0,0 +1,229 @@ +"Higher level section"_Commands.html - "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 + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +Fix commands :h3 + +An alphabetic list of all LAMMPS "fix"_fix.html commands. Some styles +have accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"adapt"_fix_adapt.html, +"adapt/fep"_fix_adapt_fep.html, +"addforce"_fix_addforce.html, +"addtorque"_fix_addtorque.html, +"append/atoms"_fix_append_atoms.html, +"atc"_fix_atc.html, +"atom/swap"_fix_atom_swap.html, +"ave/atom"_fix_ave_atom.html, +"ave/chunk"_fix_ave_chunk.html, +"ave/correlate"_fix_ave_correlate.html, +"ave/correlate/long"_fix_ave_correlate_long.html, +"ave/histo"_fix_ave_histo.html, +"ave/histo/weight"_fix_ave_histo.html, +"ave/time"_fix_ave_time.html, +"aveforce"_fix_aveforce.html, +"balance"_fix_balance.html, +"bond/break"_fix_bond_break.html, +"bond/create"_fix_bond_create.html, +"bond/react"_fix_bond_react.html, +"bond/swap"_fix_bond_swap.html, +"box/relax"_fix_box_relax.html, +"cmap"_fix_cmap.html, +"colvars"_fix_colvars.html, +"controller"_fix_controller.html, +"deform (k)"_fix_deform.html, +"deposit"_fix_deposit.html, +"dpd/energy (k)"_fix_dpd_energy.html, +"drag"_fix_drag.html, +"drude"_fix_drude.html, +"drude/transform/direct"_fix_drude_transform.html, +"drude/transform/reverse"_fix_drude_transform.html, +"dt/reset"_fix_dt_reset.html, +"edpd/source"_fix_dpd_source.html, +"efield"_fix_efield.html, +"ehex"_fix_ehex.html, +"enforce2d (k)"_fix_enforce2d.html, +"eos/cv"_fix_eos_cv.html, +"eos/table"_fix_eos_table.html, +"eos/table/rx (k)"_fix_eos_table_rx.html, +"evaporate"_fix_evaporate.html, +"external"_fix_external.html, +"filter/corotate"_fix_filter_corotate.html, +"flow/gauss"_fix_flow_gauss.html, +"freeze"_fix_freeze.html, +"gcmc"_fix_gcmc.html, +"gld"_fix_gld.html, +"gle"_fix_gle.html, +"gravity (o)"_fix_gravity.html, +"grem"_fix_grem.html, +"halt"_fix_halt.html, +"heat"_fix_heat.html, +"imd"_fix_imd.html, +"indent"_fix_indent.html, +"ipi"_fix_ipi.html, +"langevin (k)"_fix_langevin.html, +"langevin/drude"_fix_langevin_drude.html, +"langevin/eff"_fix_langevin_eff.html, +"langevin/spin"_fix_langevin_spin.html, +"latte"_fix_latte.html, +"lb/fluid"_fix_lb_fluid.html, +"lb/momentum"_fix_lb_momentum.html, +"lb/pc"_fix_lb_pc.html, +"lb/rigid/pc/sphere"_fix_lb_rigid_pc_sphere.html, +"lb/viscous"_fix_lb_viscous.html, +"lineforce"_fix_lineforce.html, +"manifoldforce"_fix_manifoldforce.html, +"meso"_fix_meso.html, +"meso/stationary"_fix_meso_stationary.html, +"momentum (k)"_fix_momentum.html, +"move"_fix_move.html, +"mscg"_fix_mscg.html, +"msst"_fix_msst.html, +"mvv/dpd"_fix_mvv_dpd.html, +"mvv/edpd"_fix_mvv_dpd.html, +"mvv/tdpd"_fix_mvv_dpd.html, +"neb"_fix_neb.html, +"nph (ko)"_fix_nh.html, +"nph/asphere (o)"_fix_nph_asphere.html, +"nph/body"_fix_nph_body.html, +"nph/eff"_fix_nh_eff.html, +"nph/sphere (o)"_fix_nph_sphere.html, +"nphug (o)"_fix_nphug.html, +"npt (kio)"_fix_nh.html, +"npt/asphere (o)"_fix_npt_asphere.html, +"npt/body"_fix_npt_body.html, +"npt/eff"_fix_nh_eff.html, +"npt/sphere (o)"_fix_npt_sphere.html, +"npt/uef"_fix_nh_uef.html, +"nve (kio)"_fix_nve.html, +"nve/asphere (i)"_fix_nve_asphere.html, +"nve/asphere/noforce"_fix_nve_asphere_noforce.html, +"nve/body"_fix_nve_body.html, +"nve/dot"_fix_nve_dot.html, +"nve/dotc/langevin"_fix_nve_dotc_langevin.html, +"nve/eff"_fix_nve_eff.html, +"nve/limit"_fix_nve_limit.html, +"nve/line"_fix_nve_line.html, +"nve/manifold/rattle"_fix_nve_manifold_rattle.html, +"nve/noforce"_fix_nve_noforce.html, +"nve/sphere (o)"_fix_nve_sphere.html, +"nve/spin"_fix_nve_spin.html, +"nve/tri"_fix_nve_tri.html, +"nvk"_fix_nvk.html, +"nvt (iko)"_fix_nh.html, +"nvt/asphere (o)"_fix_nvt_asphere.html, +"nvt/body"_fix_nvt_body.html, +"nvt/eff"_fix_nh_eff.html, +"nvt/manifold/rattle"_fix_nvt_manifold_rattle.html, +"nvt/sllod (io)"_fix_nvt_sllod.html, +"nvt/sllod/eff"_fix_nvt_sllod_eff.html, +"nvt/sphere (o)"_fix_nvt_sphere.html, +"nvt/uef"_fix_nh_uef.html, +"oneway"_fix_oneway.html, +"orient/bcc"_fix_orient.html, +"orient/fcc"_fix_orient.html, +"phonon"_fix_phonon.html, +"pimd"_fix_pimd.html, +"planeforce"_fix_planeforce.html, +"poems"_fix_poems.html, +"pour"_fix_pour.html, +"precession/spin"_fix_precession_spin.html, +"press/berendsen"_fix_press_berendsen.html, +"print"_fix_print.html, +"property/atom (k)"_fix_property_atom.html, +"python/invoke"_fix_python_invoke.html, +"python/move"_fix_python_move.html, +"qbmsst"_fix_qbmsst.html, +"qeq/comb (o)"_fix_qeq_comb.html, +"qeq/dynamic"_fix_qeq.html, +"qeq/fire"_fix_qeq.html, +"qeq/point"_fix_qeq.html, +"qeq/reax (ko)"_fix_qeq_reax.html, +"qeq/shielded"_fix_qeq.html, +"qeq/slater"_fix_qeq.html, +"qmmm"_fix_qmmm.html, +"qtb"_fix_qtb.html, +"rattle"_fix_shake.html, +"reax/bonds"_fix_reax_bonds.html, +"reax/c/bonds (k)"_fix_reax_bonds.html, +"reax/c/species (k)"_fix_reaxc_species.html, +"recenter"_fix_recenter.html, +"restrain"_fix_restrain.html, +"rhok"_fix_rhok.html, +"rigid (o)"_fix_rigid.html, +"rigid/nph (o)"_fix_rigid.html, +"rigid/npt (o)"_fix_rigid.html, +"rigid/nve (o)"_fix_rigid.html, +"rigid/nvt (o)"_fix_rigid.html, +"rigid/small (o)"_fix_rigid.html, +"rigid/small/nph"_fix_rigid.html, +"rigid/small/npt"_fix_rigid.html, +"rigid/small/nve"_fix_rigid.html, +"rigid/small/nvt"_fix_rigid.html, +"rx (k)"_fix_rx.html, +"saed/vtk"_fix_saed_vtk.html, +"setforce (k)"_fix_setforce.html, +"shake"_fix_shake.html, +"shardlow (k)"_fix_shardlow.html, +"smd"_fix_smd.html, +"smd/adjust/dt"_fix_smd_adjust_dt.html, +"smd/integrate/tlsph"_fix_smd_integrate_tlsph.html, +"smd/integrate/ulsph"_fix_smd_integrate_ulsph.html, +"smd/move/triangulated/surface"_fix_smd_move_triangulated_surface.html, +"smd/setvel"_fix_smd_setvel.html, +"smd/wall/surface"_fix_smd_wall_surface.html, +"spring"_fix_spring.html, +"spring/chunk"_fix_spring_chunk.html, +"spring/rg"_fix_spring_rg.html, +"spring/self"_fix_spring_self.html, +"srd"_fix_srd.html, +"store/force"_fix_store_force.html, +"store/state"_fix_store_state.html, +"tdpd/source"_fix_dpd_source.html, +"temp/berendsen"_fix_temp_berendsen.html, +"temp/csld"_fix_temp_csvr.html, +"temp/csvr"_fix_temp_csvr.html, +"temp/rescale"_fix_temp_rescale.html, +"temp/rescale/eff"_fix_temp_rescale_eff.html, +"tfmc"_fix_tfmc.html, +"thermal/conductivity"_fix_thermal_conductivity.html, +"ti/spring"_fix_ti_spring.html, +"tmd"_fix_tmd.html, +"ttm"_fix_ttm.html, +"ttm/mod"_fix_ttm.html, +"tune/kspace"_fix_tune_kspace.html, +"vector"_fix_vector.html, +"viscosity"_fix_viscosity.html, +"viscous"_fix_viscous.html, +"wall/body/polygon"_fix_wall_body_polygon.html, +"wall/body/polyhedron"_fix_wall_body_polyhedron.html, +"wall/colloid"_fix_wall.html, +"wall/ees"_fix_wall_ees.html, +"wall/gran"_fix_wall_gran.html, +"wall/gran/region"_fix_wall_gran_region.html, +"wall/harmonic"_fix_wall.html, +"wall/lj1043"_fix_wall.html, +"wall/lj126"_fix_wall.html, +"wall/lj93 (k)"_fix_wall.html, +"wall/piston"_fix_wall_piston.html, +"wall/reflect (k)"_fix_wall_reflect.html, +"wall/region"_fix_wall_region.html, +"wall/region/ees"_fix_wall_ees.html, +"wall/srd"_fix_wall_srd.html :tb(c=8,ea=c) diff --git a/doc/src/Commands_input.txt b/doc/src/Commands_input.txt new file mode 100644 index 0000000000..8b3dda741b --- /dev/null +++ b/doc/src/Commands_input.txt @@ -0,0 +1,60 @@ +"Higher level section"_Commands.html - "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 + +LAMMPS input scripts :h3 + +LAMMPS executes by reading commands from a input script (text file), +one line at a time. When the input script ends, LAMMPS exits. Each +command causes LAMMPS to take some action. It may set an internal +variable, read in a file, or run a simulation. Most commands have +default settings, which means you only need to use the command if you +wish to change the default. + +In many cases, the ordering of commands in an input script is not +important. However the following rules apply: + +(1) LAMMPS does not read your entire input script and then perform a +simulation with all the settings. Rather, the input script is read +one line at a time and each command takes effect when it is read. +Thus this sequence of commands: + +timestep 0.5 +run 100 +run 100 :pre + +does something different than this sequence: + +run 100 +timestep 0.5 +run 100 :pre + +In the first case, the specified timestep (0.5 fs) is used for two +simulations of 100 timesteps each. In the 2nd case, the default +timestep (1.0 fs) is used for the 1st 100 step simulation and a 0.5 fs +timestep is used for the 2nd one. + +(2) Some commands are only valid when they follow other commands. For +example you cannot set the temperature of a group of atoms until atoms +have been defined and a group command is used to define which atoms +belong to the group. + +(3) Sometimes command B will use values that can be set by command A. +This means command A must precede command B in the input script if it +is to have the desired effect. For example, the +"read_data"_read_data.html command initializes the system by setting +up the simulation box and assigning atoms to processors. If default +values are not desired, the "processors"_processors.html and +"boundary"_boundary.html commands need to be used before read_data to +tell LAMMPS how to map processors to the simulation box. + +Many input script errors are detected by LAMMPS and an ERROR or +WARNING message is printed. The "Errors"_Errors.html doc page gives +more information on what errors mean. The documentation for each +command lists restrictions on how the command can be used. + diff --git a/doc/src/Commands_kspace.txt b/doc/src/Commands_kspace.txt new file mode 100644 index 0000000000..a126344505 --- /dev/null +++ b/doc/src/Commands_kspace.txt @@ -0,0 +1,36 @@ +"Higher level section"_Commands.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands.html) + +:line + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +KSpace solvers :h3 + +All LAMMPS "kspace_style"_kspace_style.html solvers. Some styles have +accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"ewald (o)"_kspace_style.html, +"ewald/disp"_kspace_style.html, +"msm (o)"_kspace_style.html, +"msm/cg (o)"_kspace_style.html, +"pppm (gok)"_kspace_style.html, +"pppm/cg (o)"_kspace_style.html, +"pppm/disp (i)"_kspace_style.html, +"pppm/disp/tip4p"_kspace_style.html, +"pppm/stagger"_kspace_style.html, +"pppm/tip4p (o)"_kspace_style.html :tb(c=4,ea=c) diff --git a/doc/src/Commands_pair.txt b/doc/src/Commands_pair.txt new file mode 100644 index 0000000000..02b22942ae --- /dev/null +++ b/doc/src/Commands_pair.txt @@ -0,0 +1,231 @@ +"Higher level section"_Commands.html - "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 + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +Pair_style potentials :h3 + +All LAMMPS "pair_style"_pair_style.html commands. Some styles have +accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"none"_pair_none.html, +"zero"_pair_zero.html, +"hybrid"_pair_hybrid.html, +"hybrid/overlay (k)"_pair_hybrid.html :tb(c=4,ea=c) + +"adp (o)"_pair_adp.html, +"agni (o)"_pair_agni.html, +"airebo (oi)"_pair_airebo.html, +"airebo/morse (oi)"_pair_airebo.html, +"awpmd/cut"_pair_awpmd.html, +"beck (go)"_pair_beck.html, +"body/nparticle"_pair_body_nparticle.html, +"body/rounded/polygon"_pair_body_rounded/polygon.html, +"body/rounded/polyhedron"_pair_body_rounded/polyhedron.html, +"bop"_pair_bop.html, +"born (go)"_pair_born.html, +"born/coul/dsf"_pair_born.html, +"born/coul/dsf/cs"_pair_born.html, +"born/coul/long (go)"_pair_born.html, +"born/coul/long/cs"_pair_born.html, +"born/coul/msm (o)"_pair_born.html, +"born/coul/wolf (go)"_pair_born.html, +"born/coul/wolf/cs"_pair_born.html, +"brownian (o)"_pair_brownian.html, +"brownian/poly (o)"_pair_brownian.html, +"buck (giko)"_pair_buck.html, +"buck/coul/cut (giko)"_pair_buck.html, +"buck/coul/long (giko)"_pair_buck.html, +"buck/coul/long/cs"_pair_buck.html, +"buck/coul/msm (o)"_pair_buck.html, +"buck/long/coul/long (o)"_pair_buck_long.html, +"buck/mdf"_pair_mdf.html, +"colloid (go)"_pair_colloid.html, +"comb (o)"_pair_comb.html, +"comb3"_pair_comb.html, +"coul/cut (gko)"_pair_coul.html, +"coul/cut/soft (o)"_pair_lj_soft.html, +"coul/debye (gko)"_pair_coul.html, +"coul/diel (o)"_pair_coul_diel.html, +"coul/dsf (gko)"_pair_coul.html, +"coul/long (gko)"_pair_coul.html, +"coul/long/cs"_pair_coul.html, +"coul/long/soft (o)"_pair_lj_soft.html, +"coul/msm"_pair_coul.html, +"coul/shield"_pair_coul_shield.html, +"coul/streitz"_pair_coul.html, +"coul/wolf (ko)"_pair_coul.html, +"coul/wolf/cs"_pair_coul.html, +"dpd (gio)"_pair_dpd.html, +"dpd/fdt"_pair_dpd_fdt.html, +"dpd/fdt/energy (k)"_pair_dpd_fdt.html, +"dpd/tstat (go)"_pair_dpd.html, +"dsmc"_pair_dsmc.html, +"eam (gikot)"_pair_eam.html, +"eam/alloy (gikot)"_pair_eam.html, +"eam/cd (o)"_pair_eam.html, +"eam/fs (gikot)"_pair_eam.html, +"edip (o)"_pair_edip.html, +"edip/multi"_pair_edip.html, +"edpd"_pair_meso.html, +"eff/cut"_pair_eff.html, +"eim (o)"_pair_eim.html, +"exp6/rx (k)"_pair_exp6_rx.html, +"extep"_pair_extep.html, +"gauss (go)"_pair_gauss.html, +"gauss/cut"_pair_gauss.html, +"gayberne (gio)"_pair_gayberne.html, +"gran/hertz/history (o)"_pair_gran.html, +"gran/hooke (o)"_pair_gran.html, +"gran/hooke/history (o)"_pair_gran.html, +"gw"_pair_gw.html, +"gw/zbl"_pair_gw.html, +"hbond/dreiding/lj (o)"_pair_hbond_dreiding.html, +"hbond/dreiding/morse (o)"_pair_hbond_dreiding.html, +"ilp/graphene/hbn"_pair_ilp_graphene_hbn.html, +"kim"_pair_kim.html, +"kolmogorov/crespi/full"_pair_kolmogorov_crespi_full.html, +"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html, +"lcbop"_pair_lcbop.html, +"lennard/mdf"_pair_mdf.html, +"line/lj"_pair_line_lj.html, +"list"_pair_list.html, +"lj/charmm/coul/charmm (iko)"_pair_charmm.html, +"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html, +"lj/charmm/coul/long (giko)"_pair_charmm.html, +"lj/charmm/coul/long/soft (o)"_pair_charmm.html, +"lj/charmm/coul/msm"_pair_charmm.html, +"lj/charmmfsw/coul/charmmfsh"_pair_charmm.html, +"lj/charmmfsw/coul/long"_pair_charmm.html, +"lj/class2 (gko)"_pair_class2.html, +"lj/class2/coul/cut (ko)"_pair_class2.html, +"lj/class2/coul/long (gko)"_pair_class2.html, +"lj/cubic (go)"_pair_lj_cubic.html, +"lj/cut (gikot)"_pair_lj.html, +"lj/cut/coul/cut (gko)"_pair_lj.html, +"lj/cut/coul/cut/soft (o)"_pair_lj_soft.html, +"lj/cut/coul/debye (gko)"_pair_lj.html, +"lj/cut/coul/dsf (gko)"_pair_lj.html, +"lj/cut/coul/long (gikot)"_pair_lj.html, +"lj/cut/coul/long/cs"_pair_lj.html, +"lj/cut/coul/long/soft (o)"_pair_lj_soft.html, +"lj/cut/coul/msm (go)"_pair_lj.html, +"lj/cut/coul/wolf (o)"_pair_lj.html, +"lj/cut/dipole/cut (go)"_pair_dipole.html, +"lj/cut/dipole/long"_pair_dipole.html, +"lj/cut/dipole/sf (go)"_pair_dipole.html, +"lj/cut/soft (o)"_pair_lj_soft.html, +"lj/cut/thole/long (o)"_pair_thole.html, +"lj/cut/tip4p/cut (o)"_pair_lj.html, +"lj/cut/tip4p/long (ot)"_pair_lj.html, +"lj/cut/tip4p/long/soft (o)"_pair_lj_soft.html, +"lj/expand (gko)"_pair_lj_expand.html, +"lj/gromacs (gko)"_pair_gromacs.html, +"lj/gromacs/coul/gromacs (ko)"_pair_gromacs.html, +"lj/long/coul/long (io)"_pair_lj_long.html, +"lj/long/dipole/long"_pair_dipole.html, +"lj/long/tip4p/long"_pair_lj_long.html, +"lj/mdf"_pair_mdf.html, +"lj/sdk (gko)"_pair_sdk.html, +"lj/sdk/coul/long (go)"_pair_sdk.html, +"lj/sdk/coul/msm (o)"_pair_sdk.html, +"lj/smooth (o)"_pair_lj_smooth.html, +"lj/smooth/linear (o)"_pair_lj_smooth_linear.html, +"lj96/cut (go)"_pair_lj96.html, +"lubricate (o)"_pair_lubricate.html, +"lubricate/poly (o)"_pair_lubricate.html, +"lubricateU"_pair_lubricateU.html, +"lubricateU/poly"_pair_lubricateU.html, +"mdpd"_pair_meso.html, +"mdpd/rhosum"_pair_meso.html, +"meam"_pair_meam.html, +"meam/c"_pair_meam.html, +"meam/spline (o)"_pair_meam_spline.html, +"meam/sw/spline"_pair_meam_sw_spline.html, +"mgpt"_pair_mgpt.html, +"mie/cut (o)"_pair_mie.html, +"momb"_pair_momb.html, +"morse (gkot)"_pair_morse.html, +"morse/smooth/linear"_pair_morse.html, +"morse/soft"_pair_morse.html, +"multi/lucy"_pair_multi_lucy.html, +"multi/lucy/rx (k)"_pair_multi_lucy_rx.html, +"nb3b/harmonic (o)"_pair_nb3b_harmonic.html, +"nm/cut (o)"_pair_nm.html, +"nm/cut/coul/cut (o)"_pair_nm.html, +"nm/cut/coul/long (o)"_pair_nm.html, +"oxdna/coaxstk"_pair_oxdna.html, +"oxdna/excv"_pair_oxdna.html, +"oxdna/hbond"_pair_oxdna.html, +"oxdna/stk"_pair_oxdna.html, +"oxdna/xstk"_pair_oxdna.html, +"oxdna2/coaxstk"_pair_oxdna2.html, +"oxdna2/dh"_pair_oxdna2.html, +"oxdna2/excv"_pair_oxdna2.html, +"oxdna2/stk"_pair_oxdna2.html, +"peri/eps"_pair_peri.html, +"peri/lps (o)"_pair_peri.html, +"peri/pmb (o)"_pair_peri.html, +"peri/ves"_pair_peri.html, +"polymorphic"_pair_polymorphic.html, +"python"_pair_python.html, +"quip"_pair_quip.html, +"reax"_pair_reax.html, +"reax/c (ko)"_pair_reaxc.html, +"rebo (oi)"_pair_airebo.html, +"resquared (go)"_pair_resquared.html, +"smd/hertz"_pair_smd_hertz.html, +"smd/tlsph"_pair_smd_tlsph.html, +"smd/triangulated/surface"_pair_smd_triangulated_surface.html, +"smd/ulsph"_pair_smd_ulsph.html, +"smtbq"_pair_smtbq.html, +"snap (k)"_pair_snap.html, +"snap (k)"_pair_snap.html, +"soft (go)"_pair_soft.html, +"sph/heatconduction"_pair_sph_heatconduction.html, +"sph/idealgas"_pair_sph_idealgas.html, +"sph/lj"_pair_sph_lj.html, +"sph/rhosum"_pair_sph_rhosum.html, +"sph/taitwater"_pair_sph_taitwater.html, +"sph/taitwater/morris"_pair_sph_taitwater_morris.html, +"spin/dmi"_pair_spin_dmi.html, +"spin/exchange"_pair_spin_exchange.html, +"spin/magelec"_pair_spin_magelec.html, +"spin/neel"_pair_spin_neel.html, +"srp"_pair_srp.html, +"sw (giko)"_pair_sw.html, +"table (gko)"_pair_table.html, +"table/rx (k)"_pair_table_rx.html, +"tdpd"_pair_meso.html, +"tersoff (giko)"_pair_tersoff.html, +"tersoff/mod (gko)"_pair_tersoff_mod.html, +"tersoff/mod/c (o)"_pair_tersoff_mod.html, +"tersoff/table (o)"_pair_tersoff.html, +"tersoff/zbl (gko)"_pair_tersoff_zbl.html, +"thole"_pair_thole.html, +"tip4p/cut (o)"_pair_coul.html, +"tip4p/long (o)"_pair_coul.html, +"tip4p/long/soft (o)"_pair_lj_soft.html, +"tri/lj"_pair_tri_lj.html, +"ufm (got)"_pair_ufm.html, +"vashishta (ko)"_pair_vashishta.html, +"vashishta/table (o)"_pair_vashishta.html, +"yukawa (gok)"_pair_yukawa.html, +"yukawa/colloid (go)"_pair_yukawa_colloid.html, +"zbl (gok)"_pair_zbl.html :tb(c=4,ea=c) diff --git a/doc/src/Commands_parse.txt b/doc/src/Commands_parse.txt new file mode 100644 index 0000000000..cbe2261986 --- /dev/null +++ b/doc/src/Commands_parse.txt @@ -0,0 +1,136 @@ +"Higher level section"_Commands.html - "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 + +Parsing rules for input scripts :h3 + +Each non-blank line in the input script is treated as a command. +LAMMPS commands are case sensitive. Command names are lower-case, as +are specified command arguments. Upper case letters may be used in +file names or user-chosen ID strings. + +Here are 6 rulse for how each line in the input script is parsed by +LAMMPS: + +(1) If the last printable character on the line is a "&" character, +the command is assumed to continue on the next line. The next line is +concatenated to the previous line by removing the "&" character and +line break. This allows long commands to be continued across two or +more lines. See the discussion of triple quotes in (6) for how to +continue a command across multiple line without using "&" characters. + +(2) All characters from the first "#" character onward are treated as +comment and discarded. See an exception in (6). Note that a +comment after a trailing "&" character will prevent the command from +continuing on the next line. Also note that for multi-line commands a +single leading "#" will comment out the entire command. + +(3) The line is searched repeatedly for $ characters, which indicate +variables that are replaced with a text string. See an exception in +(6). + +If the $ is followed by curly brackets, then the variable name is the +text inside the curly brackets. If no curly brackets follow the $, +then the variable name is the single character immediately following +the $. Thus $\{myTemp\} and $x refer to variable names "myTemp" and +"x". + +How the variable is converted to a text string depends on what style +of variable it is; see the "variable"_variable.html doc page for details. +It can be a variable that stores multiple text strings, and return one +of them. The returned text string can be multiple "words" (space +separated) which will then be interpreted as multiple arguments in the +input command. The variable can also store a numeric formula which +will be evaluated and its numeric result returned as a string. + +As a special case, if the $ is followed by parenthesis, then the text +inside the parenthesis is treated as an "immediate" variable and +evaluated as an "equal-style variable"_variable.html. This is a way +to use numeric formulas in an input script without having to assign +them to variable names. For example, these 3 input script lines: + +variable X equal (xlo+xhi)/2+sqrt(v_area) +region 1 block $X 2 INF INF EDGE EDGE +variable X delete :pre + +can be replaced by + +region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE :pre + +so that you do not have to define (or discard) a temporary variable X. + +Additionally, the "immediate" variable expression may be followed by a +colon, followed by a C-style format string, e.g. ":%f" or ":%.10g". +The format string must be appropriate for a double-precision +floating-point value. The format string is used to output the result +of the variable expression evaluation. If a format string is not +specified a high-precision "%.20g" is used as the default. + +This can be useful for formatting print output to a desired precion: + +print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre + +Note that neither the curly-bracket or immediate form of variables can +contain nested $ characters for other variables to substitute for. +Thus you cannot do this: + +variable a equal 2 +variable b2 equal 4 +print "B2 = $\{b$a\}" :pre + +Nor can you specify this $($x-1.0) for an immediate variable, but +you could use $(v_x-1.0), since the latter is valid syntax for an +"equal-style variable"_variable.html. + +See the "variable"_variable.html command for more details of how +strings are assigned to variables and evaluated, and how they can be +used in input script commands. + +(4) The line is broken into "words" separated by whitespace (tabs, +spaces). Note that words can thus contain letters, digits, +underscores, or punctuation characters. + +(5) The first word is the command name. All successive words in the +line are arguments. + +(6) If you want text with spaces to be treated as a single argument, +it can be enclosed in either single or double or triple quotes. A +long single argument enclosed in single or double quotes can span +multiple lines if the "&" character is used, as described above. When +the lines are concatenated together (and the "&" characters and line +breaks removed), the text will become a single line. If you want +multiple lines of an argument to retain their line breaks, the text +can be enclosed in triple quotes, in which case "&" characters are not +needed. For example: + +print "Volume = $v" +print 'Volume = $v' +if "$\{steps\} > 1000" then quit +variable a string "red green blue & + purple orange cyan" +print """ +System volume = $v +System temperature = $t +""" :pre + +In each case, the single, double, or triple quotes are removed when +the single argument they enclose is stored internally. + +See the "dump modify format"_dump_modify.html, "print"_print.html, +"if"_if.html, and "python"_python.html commands for examples. + +A "#" or "$" character that is between quotes will not be treated as a +comment indicator in (2) or substituted for as a variable in (3). + +NOTE: If the argument is itself a command that requires a quoted +argument (e.g. using a "print"_print.html command as part of an +"if"_if.html or "run every"_run.html command), then single, double, or +triple quotes can be nested in the usual manner. See the doc pages +for those commands for examples. Only one of level of nesting is +allowed, but that should be sufficient for most use cases. + diff --git a/doc/src/Commands_structure.txt b/doc/src/Commands_structure.txt new file mode 100644 index 0000000000..b5d2c7b07b --- /dev/null +++ b/doc/src/Commands_structure.txt @@ -0,0 +1,95 @@ +"Higher level section"_Commands.html - "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 + +Input script structure :h3 + +This page describes the structure of a typical LAMMPS input script. +The examples directory in the LAMMPS distribution contains many sample +input scripts; it is discussed on the "Examples"_Examples.html doc +page. + +A LAMMPS input script typically has 4 parts: + +Initialization +Atom definition +Settings +Run a simulation :ol + +The last 2 parts can be repeated as many times as desired. I.e. run a +simulation, change some settings, run some more, etc. Each of the 4 +parts is now described in more detail. Remember that almost all +commands need only be used if a non-default value is desired. + +(1) Initialization + +Set parameters that need to be defined before atoms are created or +read-in from a file. + +The relevant commands are "units"_units.html, +"dimension"_dimension.html, "newton"_newton.html, +"processors"_processors.html, "boundary"_boundary.html, +"atom_style"_atom_style.html, "atom_modify"_atom_modify.html. + +If force-field parameters appear in the files that will be read, these +commands tell LAMMPS what kinds of force fields are being used: +"pair_style"_pair_style.html, "bond_style"_bond_style.html, +"angle_style"_angle_style.html, "dihedral_style"_dihedral_style.html, +"improper_style"_improper_style.html. + +(2) Atom definition + +There are 3 ways to define atoms in LAMMPS. Read them in from a data +or restart file via the "read_data"_read_data.html or +"read_restart"_read_restart.html commands. These files can contain +molecular topology information. Or create atoms on a lattice (with no +molecular topology), using these commands: "lattice"_lattice.html, +"region"_region.html, "create_box"_create_box.html, +"create_atoms"_create_atoms.html. The entire set of atoms can be +duplicated to make a larger simulation using the +"replicate"_replicate.html command. + +(3) Settings + +Once atoms and molecular topology are defined, a variety of settings +can be specified: force field coefficients, simulation parameters, +output options, etc. + +Force field coefficients are set by these commands (they can also be +set in the read-in files): "pair_coeff"_pair_coeff.html, +"bond_coeff"_bond_coeff.html, "angle_coeff"_angle_coeff.html, +"dihedral_coeff"_dihedral_coeff.html, +"improper_coeff"_improper_coeff.html, +"kspace_style"_kspace_style.html, "dielectric"_dielectric.html, +"special_bonds"_special_bonds.html. + +Various simulation parameters are set by these commands: +"neighbor"_neighbor.html, "neigh_modify"_neigh_modify.html, +"group"_group.html, "timestep"_timestep.html, +"reset_timestep"_reset_timestep.html, "run_style"_run_style.html, +"min_style"_min_style.html, "min_modify"_min_modify.html. + +Fixes impose a variety of boundary conditions, time integration, and +diagnostic options. The "fix"_fix.html command comes in many flavors. + +Various computations can be specified for execution during a +simulation using the "compute"_compute.html, +"compute_modify"_compute_modify.html, and "variable"_variable.html +commands. + +Output options are set by the "thermo"_thermo.html, "dump"_dump.html, +and "restart"_restart.html commands. + +(4) Run a simulation + +A molecular dynamics simulation is run using the "run"_run.html +command. Energy minimization (molecular statics) is performed using +the "minimize"_minimize.html command. A parallel tempering +(replica-exchange) simulation can be run using the +"temper"_temper.html command. + diff --git a/doc/src/Errors.txt b/doc/src/Errors.txt index 92a577c5f2..1b6206c780 100644 --- a/doc/src/Errors.txt +++ b/doc/src/Errors.txt @@ -4,7 +4,7 @@ Section"_Manual.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Errors_bugs.txt b/doc/src/Errors_bugs.txt index c0a94c7a44..4a8e62e775 100644 --- a/doc/src/Errors_bugs.txt +++ b/doc/src/Errors_bugs.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Errors_common.txt b/doc/src/Errors_common.txt index 86a25f7e7d..43d1a85a7b 100644 --- a/doc/src/Errors_common.txt +++ b/doc/src/Errors_common.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Errors_messages.txt b/doc/src/Errors_messages.txt index 39eabbd232..03fc25b561 100644 --- a/doc/src/Errors_messages.txt +++ b/doc/src/Errors_messages.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Errors_warnings.txt b/doc/src/Errors_warnings.txt index 1da777043c..dd3402ba86 100644 --- a/doc/src/Errors_warnings.txt +++ b/doc/src/Errors_warnings.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Examples.txt b/doc/src/Examples.txt index b01b289d5e..5bd8da2409 100644 --- a/doc/src/Examples.txt +++ b/doc/src/Examples.txt @@ -4,7 +4,7 @@ Section"_Tools.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_2d.txt b/doc/src/Howto_2d.txt index ea11a7d546..e1758c05d5 100644 --- a/doc/src/Howto_2d.txt +++ b/doc/src/Howto_2d.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_barostat.txt b/doc/src/Howto_barostat.txt index b289ebfc4c..7c3db89152 100644 --- a/doc/src/Howto_barostat.txt +++ b/doc/src/Howto_barostat.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_bash.txt b/doc/src/Howto_bash.txt index 572157ab55..f1438418e7 100755 --- a/doc/src/Howto_bash.txt +++ b/doc/src/Howto_bash.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_bioFF.txt b/doc/src/Howto_bioFF.txt index 91d6eb0a8e..afb8a84f2e 100644 --- a/doc/src/Howto_bioFF.txt +++ b/doc/src/Howto_bioFF.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_body.txt b/doc/src/Howto_body.txt index 3031563f98..3535349b46 100644 --- a/doc/src/Howto_body.txt +++ b/doc/src/Howto_body.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -17,9 +17,9 @@ surface meshes of discrete points, collections of sub-particles, deformable objects, etc. Note that other kinds of finite-size spherical and aspherical particles are also supported by LAMMPS, such as spheres, ellipsoids, line segments, and triangles, but they are -simpler entities that body particles. See "Section -6.14"_Section_howto.html#howto_14 for a general overview of all these -particle types. +simpler entities that body particles. See the "Howto +spherical"_Howto_spherical.html doc page for a general overview of all +these particle types. Body particles are used via the "atom_style body"_atom_style.html command. It takes a body style as an argument. The current body diff --git a/doc/src/Howto_chunk.txt b/doc/src/Howto_chunk.txt index 9d757b2729..8e52acf4b8 100644 --- a/doc/src/Howto_chunk.txt +++ b/doc/src/Howto_chunk.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_coreshell.txt b/doc/src/Howto_coreshell.txt index 273568418b..4f1cd64384 100644 --- a/doc/src/Howto_coreshell.txt +++ b/doc/src/Howto_coreshell.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_couple.txt b/doc/src/Howto_couple.txt index ec45bd1290..38595a9d16 100644 --- a/doc/src/Howto_couple.txt +++ b/doc/src/Howto_couple.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_diffusion.txt b/doc/src/Howto_diffusion.txt index e0e16e1042..401c1e359c 100644 --- a/doc/src/Howto_diffusion.txt +++ b/doc/src/Howto_diffusion.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_dispersion.txt b/doc/src/Howto_dispersion.txt index 000f45076d..4ea286258e 100644 --- a/doc/src/Howto_dispersion.txt +++ b/doc/src/Howto_dispersion.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_drude.txt b/doc/src/Howto_drude.txt index e9c30db772..ebdf5f8658 100644 --- a/doc/src/Howto_drude.txt +++ b/doc/src/Howto_drude.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_drude2.txt b/doc/src/Howto_drude2.txt index f6e7eed40b..a342d4a87d 100644 --- a/doc/src/Howto_drude2.txt +++ b/doc/src/Howto_drude2.txt @@ -9,7 +9,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_elastic.txt b/doc/src/Howto_elastic.txt index 4dda13fa53..68b30970ca 100644 --- a/doc/src/Howto_elastic.txt +++ b/doc/src/Howto_elastic.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_github.txt b/doc/src/Howto_github.txt index 191242205e..720b3317f0 100644 --- a/doc/src/Howto_github.txt +++ b/doc/src/Howto_github.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_granular.txt b/doc/src/Howto_granular.txt index cfa01bcb63..8027369501 100644 --- a/doc/src/Howto_granular.txt +++ b/doc/src/Howto_granular.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_kappa.txt b/doc/src/Howto_kappa.txt index 949901f21a..b2a57ef49b 100644 --- a/doc/src/Howto_kappa.txt +++ b/doc/src/Howto_kappa.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_library.txt b/doc/src/Howto_library.txt index b15aadd214..0d4852fbf2 100644 --- a/doc/src/Howto_library.txt +++ b/doc/src/Howto_library.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_manifold.txt b/doc/src/Howto_manifold.txt index c9bb1ce57f..09a936f7d3 100644 --- a/doc/src/Howto_manifold.txt +++ b/doc/src/Howto_manifold.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_multiple.txt b/doc/src/Howto_multiple.txt index 3516debb71..edcb8196cf 100644 --- a/doc/src/Howto_multiple.txt +++ b/doc/src/Howto_multiple.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_nemd.txt b/doc/src/Howto_nemd.txt index efb3a5cd73..f787801c36 100644 --- a/doc/src/Howto_nemd.txt +++ b/doc/src/Howto_nemd.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_output.txt b/doc/src/Howto_output.txt index ed2a78ee19..a204a3cc96 100644 --- a/doc/src/Howto_output.txt +++ b/doc/src/Howto_output.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_polarizable.txt b/doc/src/Howto_polarizable.txt index ec96ddc9a9..b2653b117e 100644 --- a/doc/src/Howto_polarizable.txt +++ b/doc/src/Howto_polarizable.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_pylammps.txt b/doc/src/Howto_pylammps.txt index abf7c52d05..8be4b66e78 100644 --- a/doc/src/Howto_pylammps.txt +++ b/doc/src/Howto_pylammps.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_replica.txt b/doc/src/Howto_replica.txt index b2f0faa209..1b44fe5374 100644 --- a/doc/src/Howto_replica.txt +++ b/doc/src/Howto_replica.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_restart.txt b/doc/src/Howto_restart.txt index d2a993fcd3..b211775479 100644 --- a/doc/src/Howto_restart.txt +++ b/doc/src/Howto_restart.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_spc.txt b/doc/src/Howto_spc.txt index 6a63c1f6a6..2cbf16547b 100644 --- a/doc/src/Howto_spc.txt +++ b/doc/src/Howto_spc.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_spherical.txt b/doc/src/Howto_spherical.txt index c239f72c2a..1e737df655 100644 --- a/doc/src/Howto_spherical.txt +++ b/doc/src/Howto_spherical.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_spins.txt b/doc/src/Howto_spins.txt index 3cb9e480b2..1b9adb49a5 100644 --- a/doc/src/Howto_spins.txt +++ b/doc/src/Howto_spins.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_temperature.txt b/doc/src/Howto_temperature.txt index 3d1bd8a2d6..7a318250cf 100644 --- a/doc/src/Howto_temperature.txt +++ b/doc/src/Howto_temperature.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_thermostat.txt b/doc/src/Howto_thermostat.txt index c1887d9738..0e2feb1869 100644 --- a/doc/src/Howto_thermostat.txt +++ b/doc/src/Howto_thermostat.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_tip3p.txt b/doc/src/Howto_tip3p.txt index 23ab604d1f..942b42aea1 100644 --- a/doc/src/Howto_tip3p.txt +++ b/doc/src/Howto_tip3p.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_tip4p.txt b/doc/src/Howto_tip4p.txt index a471bdc918..f9e548e268 100644 --- a/doc/src/Howto_tip4p.txt +++ b/doc/src/Howto_tip4p.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_triclinic.txt b/doc/src/Howto_triclinic.txt index 10bcc5e9d1..4b299e5ae1 100644 --- a/doc/src/Howto_triclinic.txt +++ b/doc/src/Howto_triclinic.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) Triclinic (non-orthogonal) simulation boxes :h3 diff --git a/doc/src/Howto_viscosity.txt b/doc/src/Howto_viscosity.txt index 4760607fd5..8bcab6dd24 100644 --- a/doc/src/Howto_viscosity.txt +++ b/doc/src/Howto_viscosity.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_viz.txt b/doc/src/Howto_viz.txt index 53635442c8..00c329c50b 100644 --- a/doc/src/Howto_viz.txt +++ b/doc/src/Howto_viz.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_walls.txt b/doc/src/Howto_walls.txt index 7b0f8c0cfa..7522118582 100644 --- a/doc/src/Howto_walls.txt +++ b/doc/src/Howto_walls.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Intro_authors.txt b/doc/src/Intro_authors.txt index 96b4b861ca..b48c1eb59a 100644 --- a/doc/src/Intro_authors.txt +++ b/doc/src/Intro_authors.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Intro_features.txt b/doc/src/Intro_features.txt index 2a405ebf77..4b7d1d41e2 100644 --- a/doc/src/Intro_features.txt +++ b/doc/src/Intro_features.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -74,8 +74,8 @@ commands) long-range interactions for charge, point-dipoles, and LJ dispersion: \ Ewald, Wolf, PPPM (similar to particle-mesh Ewald) polarization models: "QEq"_fix_qeq.html, \ - "core/shell model"_Section_howto.html#howto_26, \ - "Drude dipole model"_Section_howto.html#howto_27 + "core/shell model"_Howto_coreshell.html, \ + "Drude dipole model"_Howto_drude.html charge equilibration (QEq via dynamic, point, shielded, Slater methods) coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO mesoscopic potentials: granular, Peridynamics, SPH diff --git a/doc/src/Intro_nonfeatures.txt b/doc/src/Intro_nonfeatures.txt index 29b2eacf08..41f001fc8b 100644 --- a/doc/src/Intro_nonfeatures.txt +++ b/doc/src/Intro_nonfeatures.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Intro_opensource.txt b/doc/src/Intro_opensource.txt index 83384a22a2..e0d57f7ce1 100644 --- a/doc/src/Intro_opensource.txt +++ b/doc/src/Intro_opensource.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Intro_overview.txt b/doc/src/Intro_overview.txt index 51ad218216..49c14bc5f0 100644 --- a/doc/src/Intro_overview.txt +++ b/doc/src/Intro_overview.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Intro_website.txt b/doc/src/Intro_website.txt index 61c9babe1c..a8af94157c 100644 --- a/doc/src/Intro_website.txt +++ b/doc/src/Intro_website.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index ddb9b152ec..a5e8b63640 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -14,7 +14,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html#comm) :line @@ -73,7 +73,7 @@ every LAMMPS command. Intro Section_start - Section_commands + Commands Packages Speed Howto @@ -116,12 +116,7 @@ END_RST --> 2.6 "Command-line options"_start_6 :b 2.7 "Screen output"_start_7 :b 2.8 "Tips for users of previous versions"_start_8 :ule,b -"Commands"_Section_commands.html :l - 3.1 "LAMMPS input script"_cmd_1 :ulb,b - 3.2 "Parsing rules"_cmd_2 :b - 3.3 "Input script structure"_cmd_3 :b - 3.4 "Commands listed by category"_cmd_4 :b - 3.5 "Commands listed alphabetically"_cmd_5 :ule,b +"Commands"_Commands.html :l "Optional packages"_Packages.html :l "Accelerate performance"_Speed.html :l "How-to discussions"_Howto.html :l @@ -141,12 +136,6 @@ END_RST --> :link(start_7,Section_start.html#start_7) :link(start_8,Section_start.html#start_8) -:link(cmd_1,Section_commands.html#cmd_1) -:link(cmd_2,Section_commands.html#cmd_2) -:link(cmd_3,Section_commands.html#cmd_3) -:link(cmd_4,Section_commands.html#cmd_4) -:link(cmd_5,Section_commands.html#cmd_5) - diff --git a/doc/src/Manual_version.txt b/doc/src/Manual_version.txt index db4301b6ea..8583eabf86 100644 --- a/doc/src/Manual_version.txt +++ b/doc/src/Manual_version.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify.txt b/doc/src/Modify.txt index ae0b0dc6bd..f828bd5d74 100644 --- a/doc/src/Modify.txt +++ b/doc/src/Modify.txt @@ -4,7 +4,7 @@ Section"_Python.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_atom.txt b/doc/src/Modify_atom.txt index afa1c319d2..60c7dccb29 100644 --- a/doc/src/Modify_atom.txt +++ b/doc/src/Modify_atom.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_body.txt b/doc/src/Modify_body.txt index a0627ebdda..0114ae10c8 100644 --- a/doc/src/Modify_body.txt +++ b/doc/src/Modify_body.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_bond.txt b/doc/src/Modify_bond.txt index f0828a0c3b..7ceea3f910 100644 --- a/doc/src/Modify_bond.txt +++ b/doc/src/Modify_bond.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_command.txt b/doc/src/Modify_command.txt index 6fc9aad1fc..4576f6c806 100644 --- a/doc/src/Modify_command.txt +++ b/doc/src/Modify_command.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_compute.txt b/doc/src/Modify_compute.txt index b02b8a983e..2f6481dbd5 100644 --- a/doc/src/Modify_compute.txt +++ b/doc/src/Modify_compute.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_contribute.txt b/doc/src/Modify_contribute.txt index 9d47b08251..ef9fe6a717 100644 --- a/doc/src/Modify_contribute.txt +++ b/doc/src/Modify_contribute.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_dump.txt b/doc/src/Modify_dump.txt index 81af54e003..cfe96f5d3d 100644 --- a/doc/src/Modify_dump.txt +++ b/doc/src/Modify_dump.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_fix.txt b/doc/src/Modify_fix.txt index ba985475cc..b095ebc4b5 100644 --- a/doc/src/Modify_fix.txt +++ b/doc/src/Modify_fix.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_kspace.txt b/doc/src/Modify_kspace.txt index 21407bf2e9..d5f018411d 100644 --- a/doc/src/Modify_kspace.txt +++ b/doc/src/Modify_kspace.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_min.txt b/doc/src/Modify_min.txt index 5dcf0f1e67..8252a576f3 100644 --- a/doc/src/Modify_min.txt +++ b/doc/src/Modify_min.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_overview.txt b/doc/src/Modify_overview.txt index f9964d964b..cf94b40281 100644 --- a/doc/src/Modify_overview.txt +++ b/doc/src/Modify_overview.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_pair.txt b/doc/src/Modify_pair.txt index 8c234dc621..0ebf2daa30 100644 --- a/doc/src/Modify_pair.txt +++ b/doc/src/Modify_pair.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_region.txt b/doc/src/Modify_region.txt index 9fbf359292..cdf192323a 100644 --- a/doc/src/Modify_region.txt +++ b/doc/src/Modify_region.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_thermo.txt b/doc/src/Modify_thermo.txt index 001a9f99e1..1772bae87a 100644 --- a/doc/src/Modify_thermo.txt +++ b/doc/src/Modify_thermo.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_variable.txt b/doc/src/Modify_variable.txt index 3c5b29cd1a..b163272f3e 100644 --- a/doc/src/Modify_variable.txt +++ b/doc/src/Modify_variable.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Packages.txt b/doc/src/Packages.txt index 6498d03063..a7f45a99b7 100644 --- a/doc/src/Packages.txt +++ b/doc/src/Packages.txt @@ -1,10 +1,10 @@ -"Previous Section"_Section_commands.html - "LAMMPS WWW Site"_lws - +"Previous Section"_Commands.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Speed.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 2b89809721..eb92fe4dc4 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -396,7 +396,7 @@ lib/gpu/README "Section 2.6 -sf gpu"_Section_start.html#start_6 "Section 2.6 -pk gpu"_Section_start.html#start_6 "package gpu"_package.html -Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (g) +"Commands all"_Commands_all.html pages (pair,kspace) for styles followed by (g) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line @@ -487,8 +487,8 @@ See the list of all KIM models here: https://openkim.org/kim-items/models/by-model-drivers See the list of example KIM models included by default here: -https://openkim.org/kim-api in the "What is in the KIM API source -package?" section +https://openkim.org/kim-api on the "What is in the KIM API source +package?" page. You can then install/un-install the package and build LAMMPS in the usual manner: @@ -593,7 +593,7 @@ lib/kokkos/README "Section 2.6 -sf kk"_Section_start.html#start_6 "Section 2.6 -pk kokkos"_Section_start.html#start_6 "package kokkos"_package.html -Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (k) +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (k) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line @@ -631,7 +631,7 @@ src/KSPACE: filenames -> commands "Howto tip4p"_Howto_tip4p.html "Howto spc"_Howto_spc.html "pair_style coul"_pair_coul.html -Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 with "long" or "msm" in pair style name +"Commands pair"_Commands_pair.html page for styles with "long" or "msm" in name examples/peptide bench/in.rhodo :ul @@ -715,7 +715,7 @@ make machine :pre [Supporting info:] src/MANYBODY: filenames -> commands -Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 +"Commands pair"_Commands_pair.html page examples/comb examples/eim examples/nb3d @@ -1017,7 +1017,7 @@ src/OPT: filenames -> commands "Speed packages"_Speed_packages.html "Speed opt"_Speed_opt.html "Section 2.6 -sf opt"_Section_start.html#start_6 -Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (t) +"Commands pair"_Commands_pair.html for styles followed by (t) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line @@ -2072,7 +2072,7 @@ src/USER-INTEL/README "Section 2.6 -sf intel"_Section_start.html#start_6 "Section 2.6 -pk intel"_Section_start.html#start_6 "package intel"_package.html -Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (i) +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (i) src/USER-INTEL/TEST "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul @@ -2457,7 +2457,7 @@ src/USER-OMP/README "Section 2.6 -sf omp"_Section_start.html#start_6 "Section 2.6 -pk omp"_Section_start.html#start_6 "package omp"_package.html -Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (o) +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (o) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line diff --git a/doc/src/Packages_standard.txt b/doc/src/Packages_standard.txt index cff2d38273..7e64345602 100644 --- a/doc/src/Packages_standard.txt +++ b/doc/src/Packages_standard.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Packages_user.txt b/doc/src/Packages_user.txt index 0465296980..c8728148f9 100644 --- a/doc/src/Packages_user.txt +++ b/doc/src/Packages_user.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python.txt b/doc/src/Python.txt index 169670d669..2c9c6872bb 100644 --- a/doc/src/Python.txt +++ b/doc/src/Python.txt @@ -4,7 +4,7 @@ Section"_Errors.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_call.txt b/doc/src/Python_call.txt index 3e30a5a7c7..621f1fe241 100644 --- a/doc/src/Python_call.txt +++ b/doc/src/Python_call.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_examples.txt b/doc/src/Python_examples.txt index fbca381e8b..46e5fee2b9 100644 --- a/doc/src/Python_examples.txt +++ b/doc/src/Python_examples.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_install.txt b/doc/src/Python_install.txt index 631f6c4a7f..6591360ae2 100644 --- a/doc/src/Python_install.txt +++ b/doc/src/Python_install.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_library.txt b/doc/src/Python_library.txt index db16c39a47..8d0c724a45 100644 --- a/doc/src/Python_library.txt +++ b/doc/src/Python_library.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_mpi.txt b/doc/src/Python_mpi.txt index 8377bbb3d0..6e0a2ce319 100644 --- a/doc/src/Python_mpi.txt +++ b/doc/src/Python_mpi.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_pylammps.txt b/doc/src/Python_pylammps.txt index cdc8e2c086..d7baa93e2e 100644 --- a/doc/src/Python_pylammps.txt +++ b/doc/src/Python_pylammps.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_run.txt b/doc/src/Python_run.txt index 03ab2ed3d7..a94dc07f2d 100644 --- a/doc/src/Python_run.txt +++ b/doc/src/Python_run.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_shlib.txt b/doc/src/Python_shlib.txt index 1aafbe2e84..1a921e4025 100644 --- a/doc/src/Python_shlib.txt +++ b/doc/src/Python_shlib.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_test.txt b/doc/src/Python_test.txt index 5f361a500b..4a05d5c468 100644 --- a/doc/src/Python_test.txt +++ b/doc/src/Python_test.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt deleted file mode 100644 index daedb00a0a..0000000000 --- a/doc/src/Section_commands.txt +++ /dev/null @@ -1,1292 +0,0 @@ -"Previous Section"_Section_start.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Packages.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -3. Commands :h2 - -This section describes how a LAMMPS input script is formatted and the -input script commands used to define a LAMMPS simulation. - -3.1 "LAMMPS input script"_#cmd_1 -3.2 "Parsing rules"_#cmd_2 -3.3 "Input script structure"_#cmd_3 -3.4 "Commands listed by category"_#cmd_4 -3.5 "Commands listed alphabetically"_#cmd_5 :all(b) - -:line -:line - -3.1 LAMMPS input script :link(cmd_1),h4 - -LAMMPS executes by reading commands from a input script (text file), -one line at a time. When the input script ends, LAMMPS exits. Each -command causes LAMMPS to take some action. It may set an internal -variable, read in a file, or run a simulation. Most commands have -default settings, which means you only need to use the command if you -wish to change the default. - -In many cases, the ordering of commands in an input script is not -important. However the following rules apply: - -(1) LAMMPS does not read your entire input script and then perform a -simulation with all the settings. Rather, the input script is read -one line at a time and each command takes effect when it is read. -Thus this sequence of commands: - -timestep 0.5 -run 100 -run 100 :pre - -does something different than this sequence: - -run 100 -timestep 0.5 -run 100 :pre - -In the first case, the specified timestep (0.5 fmsec) is used for two -simulations of 100 timesteps each. In the 2nd case, the default -timestep (1.0 fmsec) is used for the 1st 100 step simulation and a 0.5 -fmsec timestep is used for the 2nd one. - -(2) Some commands are only valid when they follow other commands. For -example you cannot set the temperature of a group of atoms until atoms -have been defined and a group command is used to define which atoms -belong to the group. - -(3) Sometimes command B will use values that can be set by command A. -This means command A must precede command B in the input script if it -is to have the desired effect. For example, the -"read_data"_read_data.html command initializes the system by setting -up the simulation box and assigning atoms to processors. If default -values are not desired, the "processors"_processors.html and -"boundary"_boundary.html commands need to be used before read_data to -tell LAMMPS how to map processors to the simulation box. - -Many input script errors are detected by LAMMPS and an ERROR or -WARNING message is printed. The "Errors"_Errors.html doc page gives -more information on what errors mean. The documentation for each -command lists restrictions on how the command can be used. - -:line - -3.2 Parsing rules :link(cmd_2),h4 - -Each non-blank line in the input script is treated as a command. -LAMMPS commands are case sensitive. Command names are lower-case, as -are specified command arguments. Upper case letters may be used in -file names or user-chosen ID strings. - -Here is how each line in the input script is parsed by LAMMPS: - -(1) If the last printable character on the line is a "&" character, -the command is assumed to continue on the next line. The next line is -concatenated to the previous line by removing the "&" character and -line break. This allows long commands to be continued across two or -more lines. See the discussion of triple quotes in (6) for how to -continue a command across multiple line without using "&" characters. - -(2) All characters from the first "#" character onward are treated as -comment and discarded. See an exception in (6). Note that a -comment after a trailing "&" character will prevent the command from -continuing on the next line. Also note that for multi-line commands a -single leading "#" will comment out the entire command. - -(3) The line is searched repeatedly for $ characters, which indicate -variables that are replaced with a text string. See an exception in -(6). - -If the $ is followed by curly brackets, then the variable name is the -text inside the curly brackets. If no curly brackets follow the $, -then the variable name is the single character immediately following -the $. Thus $\{myTemp\} and $x refer to variable names "myTemp" and -"x". - -How the variable is converted to a text string depends on what style -of variable it is; see the "variable"_variable.html doc page for details. -It can be a variable that stores multiple text strings, and return one -of them. The returned text string can be multiple "words" (space -separated) which will then be interpreted as multiple arguments in the -input command. The variable can also store a numeric formula which -will be evaluated and its numeric result returned as a string. - -As a special case, if the $ is followed by parenthesis, then the text -inside the parenthesis is treated as an "immediate" variable and -evaluated as an "equal-style variable"_variable.html. This is a way -to use numeric formulas in an input script without having to assign -them to variable names. For example, these 3 input script lines: - -variable X equal (xlo+xhi)/2+sqrt(v_area) -region 1 block $X 2 INF INF EDGE EDGE -variable X delete :pre - -can be replaced by - -region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE :pre - -so that you do not have to define (or discard) a temporary variable X. - -Additionally, the "immediate" variable expression may be followed by a -colon, followed by a C-style format string, e.g. ":%f" or ":%.10g". -The format string must be appropriate for a double-precision -floating-point value. The format string is used to output the result -of the variable expression evaluation. If a format string is not -specified a high-precision "%.20g" is used as the default. - -This can be useful for formatting print output to a desired precion: - -print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre - -Note that neither the curly-bracket or immediate form of variables can -contain nested $ characters for other variables to substitute for. -Thus you cannot do this: - -variable a equal 2 -variable b2 equal 4 -print "B2 = $\{b$a\}" :pre - -Nor can you specify this $($x-1.0) for an immediate variable, but -you could use $(v_x-1.0), since the latter is valid syntax for an -"equal-style variable"_variable.html. - -See the "variable"_variable.html command for more details of how -strings are assigned to variables and evaluated, and how they can be -used in input script commands. - -(4) The line is broken into "words" separated by whitespace (tabs, -spaces). Note that words can thus contain letters, digits, -underscores, or punctuation characters. - -(5) The first word is the command name. All successive words in the -line are arguments. - -(6) If you want text with spaces to be treated as a single argument, -it can be enclosed in either single or double or triple quotes. A -long single argument enclosed in single or double quotes can span -multiple lines if the "&" character is used, as described above. When -the lines are concatenated together (and the "&" characters and line -breaks removed), the text will become a single line. If you want -multiple lines of an argument to retain their line breaks, the text -can be enclosed in triple quotes, in which case "&" characters are not -needed. For example: - -print "Volume = $v" -print 'Volume = $v' -if "$\{steps\} > 1000" then quit -variable a string "red green blue & - purple orange cyan" -print """ -System volume = $v -System temperature = $t -""" :pre - -In each case, the single, double, or triple quotes are removed when -the single argument they enclose is stored internally. - -See the "dump modify format"_dump_modify.html, "print"_print.html, -"if"_if.html, and "python"_python.html commands for examples. - -A "#" or "$" character that is between quotes will not be treated as a -comment indicator in (2) or substituted for as a variable in (3). - -NOTE: If the argument is itself a command that requires a quoted -argument (e.g. using a "print"_print.html command as part of an -"if"_if.html or "run every"_run.html command), then single, double, or -triple quotes can be nested in the usual manner. See the doc pages -for those commands for examples. Only one of level of nesting is -allowed, but that should be sufficient for most use cases. - -:line - -3.3 Input script structure :h3,link(cmd_3) - -This section describes the structure of a typical LAMMPS input script. -The examples directory in the LAMMPS distribution contains many sample -input scripts; the corresponding problems are discussed on the -"Examples"_Examples.html doc page, and animated on the "LAMMPS WWW -Site"_lws. - -A LAMMPS input script typically has 4 parts: - -Initialization -Atom definition -Settings -Run a simulation :ol - -The last 2 parts can be repeated as many times as desired. I.e. run a -simulation, change some settings, run some more, etc. Each of the 4 -parts is now described in more detail. Remember that almost all the -commands need only be used if a non-default value is desired. - -(1) Initialization - -Set parameters that need to be defined before atoms are created or -read-in from a file. - -The relevant commands are "units"_units.html, -"dimension"_dimension.html, "newton"_newton.html, -"processors"_processors.html, "boundary"_boundary.html, -"atom_style"_atom_style.html, "atom_modify"_atom_modify.html. - -If force-field parameters appear in the files that will be read, these -commands tell LAMMPS what kinds of force fields are being used: -"pair_style"_pair_style.html, "bond_style"_bond_style.html, -"angle_style"_angle_style.html, "dihedral_style"_dihedral_style.html, -"improper_style"_improper_style.html. - -(2) Atom definition - -There are 3 ways to define atoms in LAMMPS. Read them in from a data -or restart file via the "read_data"_read_data.html or -"read_restart"_read_restart.html commands. These files can contain -molecular topology information. Or create atoms on a lattice (with no -molecular topology), using these commands: "lattice"_lattice.html, -"region"_region.html, "create_box"_create_box.html, -"create_atoms"_create_atoms.html. The entire set of atoms can be -duplicated to make a larger simulation using the -"replicate"_replicate.html command. - -(3) Settings - -Once atoms and molecular topology are defined, a variety of settings -can be specified: force field coefficients, simulation parameters, -output options, etc. - -Force field coefficients are set by these commands (they can also be -set in the read-in files): "pair_coeff"_pair_coeff.html, -"bond_coeff"_bond_coeff.html, "angle_coeff"_angle_coeff.html, -"dihedral_coeff"_dihedral_coeff.html, -"improper_coeff"_improper_coeff.html, -"kspace_style"_kspace_style.html, "dielectric"_dielectric.html, -"special_bonds"_special_bonds.html. - -Various simulation parameters are set by these commands: -"neighbor"_neighbor.html, "neigh_modify"_neigh_modify.html, -"group"_group.html, "timestep"_timestep.html, -"reset_timestep"_reset_timestep.html, "run_style"_run_style.html, -"min_style"_min_style.html, "min_modify"_min_modify.html. - -Fixes impose a variety of boundary conditions, time integration, and -diagnostic options. The "fix"_fix.html command comes in many flavors. - -Various computations can be specified for execution during a -simulation using the "compute"_compute.html, -"compute_modify"_compute_modify.html, and "variable"_variable.html -commands. - -Output options are set by the "thermo"_thermo.html, "dump"_dump.html, -and "restart"_restart.html commands. - -(4) Run a simulation - -A molecular dynamics simulation is run using the "run"_run.html -command. Energy minimization (molecular statics) is performed using -the "minimize"_minimize.html command. A parallel tempering -(replica-exchange) simulation can be run using the -"temper"_temper.html command. - -:line - -3.4 Commands listed by category :link(cmd_4),h4 - -This section lists core LAMMPS commands, grouped by category. -The "next section"_#cmd_5 lists all commands alphabetically. The -next section also includes (long) lists of style options for entries -that appear in the following categories as a single command (fix, -compute, pair, etc). Commands that are added by user packages are not -included in the categories here, but they are in the next section. - -Initialization: - -"newton"_newton.html, -"package"_package.html, -"processors"_processors.html, -"suffix"_suffix.html, -"units"_units.html - -Setup simulation box: - -"boundary"_boundary.html, -"box"_box.html, -"change_box"_change_box.html, -"create_box"_create_box.html, -"dimension"_dimension.html, -"lattice"_lattice.html, -"region"_region.html - -Setup atoms: - -"atom_modify"_atom_modify.html, -"atom_style"_atom_style.html, -"balance"_balance.html, -"create_atoms"_create_atoms.html, -"create_bonds"_create_bonds.html, -"delete_atoms"_delete_atoms.html, -"delete_bonds"_delete_bonds.html, -"displace_atoms"_displace_atoms.html, -"group"_group.html, -"mass"_mass.html, -"molecule"_molecule.html, -"read_data"_read_data.html, -"read_dump"_read_dump.html, -"read_restart"_read_restart.html, -"replicate"_replicate.html, -"set"_set.html, -"velocity"_velocity.html - -Force fields: - -"angle_coeff"_angle_coeff.html, -"angle_style"_angle_style.html, -"bond_coeff"_bond_coeff.html, -"bond_style"_bond_style.html, -"bond_write"_bond_write.html, -"dielectric"_dielectric.html, -"dihedral_coeff"_dihedral_coeff.html, -"dihedral_style"_dihedral_style.html, -"improper_coeff"_improper_coeff.html, -"improper_style"_improper_style.html, -"kspace_modify"_kspace_modify.html, -"kspace_style"_kspace_style.html, -"pair_coeff"_pair_coeff.html, -"pair_modify"_pair_modify.html, -"pair_style"_pair_style.html, -"pair_write"_pair_write.html, -"special_bonds"_special_bonds.html - -Settings: - -"comm_modify"_comm_modify.html, -"comm_style"_comm_style.html, -"info"_info.html, -"min_modify"_min_modify.html, -"min_style"_min_style.html, -"neigh_modify"_neigh_modify.html, -"neighbor"_neighbor.html, -"partition"_partition.html, -"reset_timestep"_reset_timestep.html, -"run_style"_run_style.html, -"timer"_timer.html, -"timestep"_timestep.html - -Operations within timestepping (fixes) and diagnostics (computes): - -"compute"_compute.html, -"compute_modify"_compute_modify.html, -"fix"_fix.html, -"fix_modify"_fix_modify.html, -"uncompute"_uncompute.html, -"unfix"_unfix.html - -Output: - -"dump image"_dump_image.html, -"dump movie"_dump_image.html, -"dump"_dump.html, -"dump_modify"_dump_modify.html, -"restart"_restart.html, -"thermo"_thermo.html, -"thermo_modify"_thermo_modify.html, -"thermo_style"_thermo_style.html, -"undump"_undump.html, -"write_coeff"_write_coeff.html, -"write_data"_write_data.html, -"write_dump"_write_dump.html, -"write_restart"_write_restart.html - -Actions: - -"minimize"_minimize.html, -"neb"_neb.html, -"prd"_prd.html, -"rerun"_rerun.html, -"run"_run.html, -"tad"_tad.html, -"temper"_temper.html - -Input script control: - -"clear"_clear.html, -"echo"_echo.html, -"if"_if.html, -"include"_include.html, -"jump"_jump.html, -"label"_label.html, -"log"_log.html, -"next"_next.html, -"print"_print.html, -"python"_python.html, -"quit"_quit.html, -"shell"_shell.html, -"variable"_variable.html - -:line - -3.5 Individual commands :h3,link(cmd_5),link(comm) - -This section lists all LAMMPS commands alphabetically, with a separate -listing below of styles within certain commands. The "previous -section"_#cmd_4 lists the same commands, grouped by category. Note -that some style options for some commands are part of specific LAMMPS -packages, which means they cannot be used unless the package was -included when LAMMPS was built. Not all packages are included in a -default LAMMPS build. These dependencies are listed as Restrictions -in the command's documentation. - -"angle_coeff"_angle_coeff.html, -"angle_style"_angle_style.html, -"atom_modify"_atom_modify.html, -"atom_style"_atom_style.html, -"balance"_balance.html, -"bond_coeff"_bond_coeff.html, -"bond_style"_bond_style.html, -"bond_write"_bond_write.html, -"boundary"_boundary.html, -"box"_box.html, -"change_box"_change_box.html, -"clear"_clear.html, -"comm_modify"_comm_modify.html, -"comm_style"_comm_style.html, -"compute"_compute.html, -"compute_modify"_compute_modify.html, -"create_atoms"_create_atoms.html, -"create_bonds"_create_bonds.html, -"create_box"_create_box.html, -"delete_atoms"_delete_atoms.html, -"delete_bonds"_delete_bonds.html, -"dielectric"_dielectric.html, -"dihedral_coeff"_dihedral_coeff.html, -"dihedral_style"_dihedral_style.html, -"dimension"_dimension.html, -"displace_atoms"_displace_atoms.html, -"dump"_dump.html, -"dump image"_dump_image.html, -"dump_modify"_dump_modify.html, -"dump movie"_dump_image.html, -"echo"_echo.html, -"fix"_fix.html, -"fix_modify"_fix_modify.html, -"group"_group.html, -"if"_if.html, -"info"_info.html, -"improper_coeff"_improper_coeff.html, -"improper_style"_improper_style.html, -"include"_include.html, -"jump"_jump.html, -"kspace_modify"_kspace_modify.html, -"kspace_style"_kspace_style.html, -"label"_label.html, -"lattice"_lattice.html, -"log"_log.html, -"mass"_mass.html, -"minimize"_minimize.html, -"min_modify"_min_modify.html, -"min_style"_min_style.html, -"molecule"_molecule.html, -"neb"_neb.html, -"neigh_modify"_neigh_modify.html, -"neighbor"_neighbor.html, -"newton"_newton.html, -"next"_next.html, -"package"_package.html, -"pair_coeff"_pair_coeff.html, -"pair_modify"_pair_modify.html, -"pair_style"_pair_style.html, -"pair_write"_pair_write.html, -"partition"_partition.html, -"prd"_prd.html, -"print"_print.html, -"processors"_processors.html, -"python"_python.html, -"quit"_quit.html, -"read_data"_read_data.html, -"read_dump"_read_dump.html, -"read_restart"_read_restart.html, -"region"_region.html, -"replicate"_replicate.html, -"rerun"_rerun.html, -"reset_ids"_reset_ids.html, -"reset_timestep"_reset_timestep.html, -"restart"_restart.html, -"run"_run.html, -"run_style"_run_style.html, -"set"_set.html, -"shell"_shell.html, -"special_bonds"_special_bonds.html, -"suffix"_suffix.html, -"tad"_tad.html, -"temper"_temper.html, -"thermo"_thermo.html, -"thermo_modify"_thermo_modify.html, -"thermo_style"_thermo_style.html, -"timer"_timer.html, -"timestep"_timestep.html, -"uncompute"_uncompute.html, -"undump"_undump.html, -"unfix"_unfix.html, -"units"_units.html, -"variable"_variable.html, -"velocity"_velocity.html, -"write_coeff"_write_coeff.html, -"write_data"_write_data.html, -"write_dump"_write_dump.html, -"write_restart"_write_restart.html :tb(c=6,ea=c) - -These are additional commands in USER packages, which can be used if -"LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"dump netcdf"_dump_netcdf.html, -"dump netcdf/mpiio"_dump_netcdf.html, -"dump vtk"_dump_vtk.html, -"group2ndx"_group2ndx.html, -"ndx2group"_group2ndx.html, -"temper/grem"_temper_grem.html, -"temper/npt"_temper_npt.html :tb(c=3,ea=c) - -:line - -Fix styles :h3 - -See the "fix"_fix.html command for one-line descriptions of each style -or click on the style itself for a full description. Some of the -styles have accelerated versions, which can be used if LAMMPS is built -with the "appropriate accelerated package"_Speed_packages.html. This -is indicated by additional letters in parenthesis: g = GPU, i = -USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. - -"adapt"_fix_adapt.html, -"addforce"_fix_addforce.html, -"append/atoms"_fix_append_atoms.html, -"atom/swap"_fix_atom_swap.html, -"aveforce"_fix_aveforce.html, -"ave/atom"_fix_ave_atom.html, -"ave/chunk"_fix_ave_chunk.html, -"ave/correlate"_fix_ave_correlate.html, -"ave/histo"_fix_ave_histo.html, -"ave/histo/weight"_fix_ave_histo.html, -"ave/time"_fix_ave_time.html, -"balance"_fix_balance.html, -"bond/break"_fix_bond_break.html, -"bond/create"_fix_bond_create.html, -"bond/swap"_fix_bond_swap.html, -"box/relax"_fix_box_relax.html, -"cmap"_fix_cmap.html, -"controller"_fix_controller.html, -"deform (k)"_fix_deform.html, -"deposit"_fix_deposit.html, -"drag"_fix_drag.html, -"dt/reset"_fix_dt_reset.html, -"efield"_fix_efield.html, -"ehex"_fix_ehex.html, -"enforce2d (k)"_fix_enforce2d.html, -"evaporate"_fix_evaporate.html, -"external"_fix_external.html, -"freeze"_fix_freeze.html, -"gcmc"_fix_gcmc.html, -"gld"_fix_gld.html, -"gravity (o)"_fix_gravity.html, -"halt"_fix_halt.html, -"heat"_fix_heat.html, -"indent"_fix_indent.html, -"latte"_fix_latte.html, -"langevin (k)"_fix_langevin.html, -"langevin/spin"_fix_langevin_spin.hmtl, -"lineforce"_fix_lineforce.html, -"momentum (k)"_fix_momentum.html, -"move"_fix_move.html, -"mscg"_fix_mscg.html, -"msst"_fix_msst.html, -"neb"_fix_neb.html, -"nph (ko)"_fix_nh.html, -"nphug (o)"_fix_nphug.html, -"nph/asphere (o)"_fix_nph_asphere.html, -"nph/body"_fix_nph_body.html, -"nph/sphere (o)"_fix_nph_sphere.html, -"npt (kio)"_fix_nh.html, -"npt/asphere (o)"_fix_npt_asphere.html, -"npt/body"_fix_npt_body.html, -"npt/sphere (o)"_fix_npt_sphere.html, -"nve (kio)"_fix_nve.html, -"nve/asphere (i)"_fix_nve_asphere.html, -"nve/asphere/noforce"_fix_nve_asphere_noforce.html, -"nve/body"_fix_nve_body.html, -"nve/limit"_fix_nve_limit.html, -"nve/line"_fix_nve_line.html, -"nve/noforce"_fix_nve_noforce.html, -"nve/sphere (o)"_fix_nve_sphere.html, -"nve/spin"_fix_nve_spin.html, -"nve/tri"_fix_nve_tri.html, -"nvt (iko)"_fix_nh.html, -"nvt/asphere (o)"_fix_nvt_asphere.html, -"nvt/body"_fix_nvt_body.html, -"nvt/sllod (io)"_fix_nvt_sllod.html, -"nvt/sphere (o)"_fix_nvt_sphere.html, -"oneway"_fix_oneway.html, -"orient/bcc"_fix_orient.html, -"orient/fcc"_fix_orient.html, -"planeforce"_fix_planeforce.html, -"poems"_fix_poems.html, -"pour"_fix_pour.html, -"precession/spin"_fix_precession_spin.html, -"press/berendsen"_fix_press_berendsen.html, -"print"_fix_print.html, -"property/atom (k)"_fix_property_atom.html, -"python/invoke"_fix_python_invoke.html, -"python/move"_fix_python_move.html, -"qeq/comb (o)"_fix_qeq_comb.html, -"qeq/dynamic"_fix_qeq.html, -"qeq/fire"_fix_qeq.html, -"qeq/point"_fix_qeq.html, -"qeq/shielded"_fix_qeq.html, -"qeq/slater"_fix_qeq.html, -"rattle"_fix_shake.html, -"reax/bonds"_fix_reax_bonds.html, -"recenter"_fix_recenter.html, -"restrain"_fix_restrain.html, -"rigid (o)"_fix_rigid.html, -"rigid/nph (o)"_fix_rigid.html, -"rigid/npt (o)"_fix_rigid.html, -"rigid/nve (o)"_fix_rigid.html, -"rigid/nvt (o)"_fix_rigid.html, -"rigid/small (o)"_fix_rigid.html, -"rigid/small/nph"_fix_rigid.html, -"rigid/small/npt"_fix_rigid.html, -"rigid/small/nve"_fix_rigid.html, -"rigid/small/nvt"_fix_rigid.html, -"setforce (k)"_fix_setforce.html, -"shake"_fix_shake.html, -"spring"_fix_spring.html, -"spring/chunk"_fix_spring_chunk.html, -"spring/rg"_fix_spring_rg.html, -"spring/self"_fix_spring_self.html, -"srd"_fix_srd.html, -"store/force"_fix_store_force.html, -"store/state"_fix_store_state.html, -"temp/berendsen"_fix_temp_berendsen.html, -"temp/csld"_fix_temp_csvr.html, -"temp/csvr"_fix_temp_csvr.html, -"temp/rescale"_fix_temp_rescale.html, -"tfmc"_fix_tfmc.html, -"thermal/conductivity"_fix_thermal_conductivity.html, -"tmd"_fix_tmd.html, -"ttm"_fix_ttm.html, -"tune/kspace"_fix_tune_kspace.html, -"vector"_fix_vector.html, -"viscosity"_fix_viscosity.html, -"viscous"_fix_viscous.html, -"wall/body/polygon"_fix_wall_body_polygon.html, -"wall/body/polyhedron"_fix_wall_body_polyhedron.html, -"wall/colloid"_fix_wall.html, -"wall/gran"_fix_wall_gran.html, -"wall/gran/region"_fix_wall_gran_region.html, -"wall/harmonic"_fix_wall.html, -"wall/lj1043"_fix_wall.html, -"wall/lj126"_fix_wall.html, -"wall/lj93 (k)"_fix_wall.html, -"wall/piston"_fix_wall_piston.html, -"wall/reflect (k)"_fix_wall_reflect.html, -"wall/region"_fix_wall_region.html, -"wall/srd"_fix_wall_srd.html :tb(c=8,ea=c) - -These are additional fix styles in USER packages, which can be used if -"LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"adapt/fep"_fix_adapt_fep.html, -"addtorque"_fix_addtorque.html, -"atc"_fix_atc.html, -"ave/correlate/long"_fix_ave_correlate_long.html, -"bond/react"_fix_bond_react.html, -"colvars"_fix_colvars.html, -"dpd/energy (k)"_fix_dpd_energy.html, -"drude"_fix_drude.html, -"drude/transform/direct"_fix_drude_transform.html, -"drude/transform/reverse"_fix_drude_transform.html, -"edpd/source"_fix_dpd_source.html, -"eos/cv"_fix_eos_cv.html, -"eos/table"_fix_eos_table.html, -"eos/table/rx (k)"_fix_eos_table_rx.html, -"filter/corotate"_fix_filter_corotate.html, -"flow/gauss"_fix_flow_gauss.html, -"gle"_fix_gle.html, -"grem"_fix_grem.html, -"imd"_fix_imd.html, -"ipi"_fix_ipi.html, -"langevin/drude"_fix_langevin_drude.html, -"langevin/eff"_fix_langevin_eff.html, -"lb/fluid"_fix_lb_fluid.html, -"lb/momentum"_fix_lb_momentum.html, -"lb/pc"_fix_lb_pc.html, -"lb/rigid/pc/sphere"_fix_lb_rigid_pc_sphere.html, -"lb/viscous"_fix_lb_viscous.html, -"meso"_fix_meso.html, -"manifoldforce"_fix_manifoldforce.html, -"meso/stationary"_fix_meso_stationary.html, -"mvv/dpd"_fix_mvv_dpd.html, -"mvv/edpd"_fix_mvv_dpd.html, -"mvv/tdpd"_fix_mvv_dpd.html, -"nph/eff"_fix_nh_eff.html, -"npt/eff"_fix_nh_eff.html, -"npt/uef"_fix_nh_uef.html, -"nve/dot"_fix_nve_dot.html, -"nve/dotc/langevin"_fix_nve_dotc_langevin.html, -"nve/eff"_fix_nve_eff.html, -"nve/manifold/rattle"_fix_nve_manifold_rattle.html, -"nvk"_fix_nvk.html, -"nvt/eff"_fix_nh_eff.html, -"nvt/manifold/rattle"_fix_nvt_manifold_rattle.html, -"nvt/sllod/eff"_fix_nvt_sllod_eff.html, -"nvt/uef"_fix_nh_uef.html, -"phonon"_fix_phonon.html, -"pimd"_fix_pimd.html, -"qbmsst"_fix_qbmsst.html, -"qeq/reax (ko)"_fix_qeq_reax.html, -"qmmm"_fix_qmmm.html, -"qtb"_fix_qtb.html, -"reax/c/bonds (k)"_fix_reax_bonds.html, -"reax/c/species (k)"_fix_reaxc_species.html, -"rhok"_fix_rhok.html, -"rx (k)"_fix_rx.html, -"saed/vtk"_fix_saed_vtk.html, -"shardlow (k)"_fix_shardlow.html, -"smd"_fix_smd.html, -"smd/adjust/dt"_fix_smd_adjust_dt.html, -"smd/integrate/tlsph"_fix_smd_integrate_tlsph.html, -"smd/integrate/ulsph"_fix_smd_integrate_ulsph.html, -"smd/move/triangulated/surface"_fix_smd_move_triangulated_surface.html, -"smd/setvel"_fix_smd_setvel.html, -"smd/wall/surface"_fix_smd_wall_surface.html, -"tdpd/source"_fix_dpd_source.html, -"temp/rescale/eff"_fix_temp_rescale_eff.html, -"ti/spring"_fix_ti_spring.html, -"ttm/mod"_fix_ttm.html, -"wall/ees"_fix_wall_ees.html, -"wall/region/ees"_fix_wall_ees.html :tb(c=6,ea=c) - -:line - -Compute styles :h3 - -See the "compute"_compute.html command for one-line descriptions of -each style or click on the style itself for a full description. Some -of the styles have accelerated versions, which can be used if LAMMPS -is built with the "appropriate accelerated -package"_Speed_packages.html. This is indicated by additional letters -in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = -OPT. - -"aggregate/atom"_compute_cluster_atom.html, -"angle"_compute_angle.html, -"angle/local"_compute_angle_local.html, -"angmom/chunk"_compute_angmom_chunk.html, -"body/local"_compute_body_local.html, -"bond"_compute_bond.html, -"bond/local"_compute_bond_local.html, -"centro/atom"_compute_centro_atom.html, -"chunk/atom"_compute_chunk_atom.html, -"cluster/atom"_compute_cluster_atom.html, -"cna/atom"_compute_cna_atom.html, -"com"_compute_com.html, -"com/chunk"_compute_com_chunk.html, -"contact/atom"_compute_contact_atom.html, -"coord/atom"_compute_coord_atom.html, -"damage/atom"_compute_damage_atom.html, -"dihedral"_compute_dihedral.html, -"dihedral/local"_compute_dihedral_local.html, -"dilatation/atom"_compute_dilatation_atom.html, -"dipole/chunk"_compute_dipole_chunk.html, -"displace/atom"_compute_displace_atom.html, -"erotate/asphere"_compute_erotate_asphere.html, -"erotate/rigid"_compute_erotate_rigid.html, -"erotate/sphere"_compute_erotate_sphere.html, -"erotate/sphere/atom"_compute_erotate_sphere_atom.html, -"event/displace"_compute_event_displace.html, -"fragment/atom"_compute_cluster_atom.html, -"global/atom"_compute_global_atom.html, -"group/group"_compute_group_group.html, -"gyration"_compute_gyration.html, -"gyration/chunk"_compute_gyration_chunk.html, -"heat/flux"_compute_heat_flux.html, -"hexorder/atom"_compute_hexorder_atom.html, -"improper"_compute_improper.html, -"improper/local"_compute_improper_local.html, -"inertia/chunk"_compute_inertia_chunk.html, -"ke"_compute_ke.html, -"ke/atom"_compute_ke_atom.html, -"ke/rigid"_compute_ke_rigid.html, -"msd"_compute_msd.html, -"msd/chunk"_compute_msd_chunk.html, -"msd/nongauss"_compute_msd_nongauss.html, -"omega/chunk"_compute_omega_chunk.html, -"orientorder/atom"_compute_orientorder_atom.html, -"pair"_compute_pair.html, -"pair/local"_compute_pair_local.html, -"pe"_compute_pe.html, -"pe/atom"_compute_pe_atom.html, -"plasticity/atom"_compute_plasticity_atom.html, -"pressure"_compute_pressure.html, -"property/atom"_compute_property_atom.html, -"property/local"_compute_property_local.html, -"property/chunk"_compute_property_chunk.html, -"rdf"_compute_rdf.html, -"reduce"_compute_reduce.html, -"reduce/region"_compute_reduce.html, -"rigid/local"_compute_rigid_local.html, -"slice"_compute_slice.html, -"sna/atom"_compute_sna_atom.html, -"snad/atom"_compute_sna_atom.html, -"snav/atom"_compute_sna_atom.html, -"spin"_compute_spin.html, -"stress/atom"_compute_stress_atom.html, -"temp (k)"_compute_temp.html, -"temp/asphere"_compute_temp_asphere.html, -"temp/body"_compute_temp_body.html, -"temp/chunk"_compute_temp_chunk.html, -"temp/com"_compute_temp_com.html, -"temp/deform"_compute_temp_deform.html, -"temp/partial"_compute_temp_partial.html, -"temp/profile"_compute_temp_profile.html, -"temp/ramp"_compute_temp_ramp.html, -"temp/region"_compute_temp_region.html, -"temp/sphere"_compute_temp_sphere.html, -"ti"_compute_ti.html, -"torque/chunk"_compute_torque_chunk.html, -"vacf"_compute_vacf.html, -"vcm/chunk"_compute_vcm_chunk.html, -"voronoi/atom"_compute_voronoi_atom.html :tb(c=6,ea=c) - -These are additional compute styles in USER packages, which can be -used if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"ackland/atom"_compute_ackland_atom.html, -"basal/atom"_compute_basal_atom.html, -"cnp/atom"_compute_cnp_atom.html, -"dpd"_compute_dpd.html, -"dpd/atom"_compute_dpd_atom.html, -"edpd/temp/atom"_compute_edpd_temp_atom.html, -"entropy/atom"_compute_entropy_atom.html, -"fep"_compute_fep.html, -"force/tally"_compute_tally.html, -"heat/flux/tally"_compute_tally.html, -"ke/eff"_compute_ke_eff.html, -"ke/atom/eff"_compute_ke_atom_eff.html, -"meso/e/atom"_compute_meso_e_atom.html, -"meso/rho/atom"_compute_meso_rho_atom.html, -"meso/t/atom"_compute_meso_t_atom.html, -"pe/tally"_compute_tally.html, -"pe/mol/tally"_compute_tally.html, -"pressure/uef"_compute_pressure_uef.html, -"saed"_compute_saed.html, -"smd/contact/radius"_compute_smd_contact_radius.html, -"smd/damage"_compute_smd_damage.html, -"smd/hourglass/error"_compute_smd_hourglass_error.html, -"smd/internal/energy"_compute_smd_internal_energy.html, -"smd/plastic/strain"_compute_smd_plastic_strain.html, -"smd/plastic/strain/rate"_compute_smd_plastic_strain_rate.html, -"smd/rho"_compute_smd_rho.html, -"smd/tlsph/defgrad"_compute_smd_tlsph_defgrad.html, -"smd/tlsph/dt"_compute_smd_tlsph_dt.html, -"smd/tlsph/num/neighs"_compute_smd_tlsph_num_neighs.html, -"smd/tlsph/shape"_compute_smd_tlsph_shape.html, -"smd/tlsph/strain"_compute_smd_tlsph_strain.html, -"smd/tlsph/strain/rate"_compute_smd_tlsph_strain_rate.html, -"smd/tlsph/stress"_compute_smd_tlsph_stress.html, -"smd/triangle/mesh/vertices"_compute_smd_triangle_mesh_vertices.html, -"smd/ulsph/num/neighs"_compute_smd_ulsph_num_neighs.html, -"smd/ulsph/strain"_compute_smd_ulsph_strain.html, -"smd/ulsph/strain/rate"_compute_smd_ulsph_strain_rate.html, -"smd/ulsph/stress"_compute_smd_ulsph_stress.html, -"smd/vol"_compute_smd_vol.html, -"stress/tally"_compute_tally.html, -"tdpd/cc/atom"_compute_tdpd_cc_atom.html, -"temp/drude"_compute_temp_drude.html, -"temp/eff"_compute_temp_eff.html, -"temp/deform/eff"_compute_temp_deform_eff.html, -"temp/region/eff"_compute_temp_region_eff.html, -"temp/rotate"_compute_temp_rotate.html, -"temp/uef"_compute_temp_uef.html, -"xrd"_compute_xrd.html :tb(c=6,ea=c) - -:line - -Pair_style potentials :h3 - -See the "pair_style"_pair_style.html command for an overview of pair -potentials. Click on the style itself for a full description. Many -of the styles have accelerated versions, which can be used if LAMMPS -is built with the "appropriate accelerated -package"_Speed_packages.html. This is indicated by additional letters -in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = -OPT. - -"none"_pair_none.html, -"zero"_pair_zero.html, -"hybrid"_pair_hybrid.html, -"hybrid/overlay (k)"_pair_hybrid.html, -"adp (o)"_pair_adp.html, -"airebo (oi)"_pair_airebo.html, -"airebo/morse (oi)"_pair_airebo.html, -"beck (go)"_pair_beck.html, -"body/nparticle"_pair_body_nparticle.html, -"body/rounded/polygon"_pair_body_rounded/polygon.html, -"body/rounded/polyhedron"_pair_body_rounded/polyhedron.html, -"bop"_pair_bop.html, -"born (go)"_pair_born.html, -"born/coul/dsf"_pair_born.html, -"born/coul/dsf/cs"_pair_born.html, -"born/coul/long (go)"_pair_born.html, -"born/coul/long/cs"_pair_born.html, -"born/coul/msm (o)"_pair_born.html, -"born/coul/wolf (go)"_pair_born.html, -"born/coul/wolf/cs"_pair_born.html, -"brownian (o)"_pair_brownian.html, -"brownian/poly (o)"_pair_brownian.html, -"buck (giko)"_pair_buck.html, -"buck/coul/cut (giko)"_pair_buck.html, -"buck/coul/long (giko)"_pair_buck.html, -"buck/coul/long/cs"_pair_buck.html, -"buck/coul/msm (o)"_pair_buck.html, -"buck/long/coul/long (o)"_pair_buck_long.html, -"colloid (go)"_pair_colloid.html, -"comb (o)"_pair_comb.html, -"comb3"_pair_comb.html, -"coul/cut (gko)"_pair_coul.html, -"coul/debye (gko)"_pair_coul.html, -"coul/dsf (gko)"_pair_coul.html, -"coul/long (gko)"_pair_coul.html, -"coul/long/cs"_pair_coul.html, -"coul/msm"_pair_coul.html, -"coul/streitz"_pair_coul.html, -"coul/wolf (ko)"_pair_coul.html, -"coul/wolf/cs"_pair_coul.html, -"dpd (gio)"_pair_dpd.html, -"dpd/tstat (go)"_pair_dpd.html, -"dsmc"_pair_dsmc.html, -"eam (gikot)"_pair_eam.html, -"eam/alloy (gikot)"_pair_eam.html, -"eam/cd (o)"_pair_eam.html, -"eam/fs (gikot)"_pair_eam.html, -"eim (o)"_pair_eim.html, -"gauss (go)"_pair_gauss.html, -"gayberne (gio)"_pair_gayberne.html, -"gran/hertz/history (o)"_pair_gran.html, -"gran/hooke (o)"_pair_gran.html, -"gran/hooke/history (o)"_pair_gran.html, -"gw"_pair_gw.html, -"gw/zbl"_pair_gw.html, -"hbond/dreiding/lj (o)"_pair_hbond_dreiding.html, -"hbond/dreiding/morse (o)"_pair_hbond_dreiding.html, -"kim"_pair_kim.html, -"lcbop"_pair_lcbop.html, -"line/lj"_pair_line_lj.html, -"lj/charmm/coul/charmm (iko)"_pair_charmm.html, -"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html, -"lj/charmm/coul/long (giko)"_pair_charmm.html, -"lj/charmm/coul/msm"_pair_charmm.html, -"lj/charmmfsw/coul/charmmfsh"_pair_charmm.html, -"lj/charmmfsw/coul/long"_pair_charmm.html, -"lj/class2 (gko)"_pair_class2.html, -"lj/class2/coul/cut (ko)"_pair_class2.html, -"lj/class2/coul/long (gko)"_pair_class2.html, -"lj/cubic (go)"_pair_lj_cubic.html, -"lj/cut (gikot)"_pair_lj.html, -"lj/cut/coul/cut (gko)"_pair_lj.html, -"lj/cut/coul/debye (gko)"_pair_lj.html, -"lj/cut/coul/dsf (gko)"_pair_lj.html, -"lj/cut/coul/long (gikot)"_pair_lj.html, -"lj/cut/coul/long/cs"_pair_lj.html, -"lj/cut/coul/msm (go)"_pair_lj.html, -"lj/cut/coul/wolf (o)"_pair_lj.html, -"lj/cut/dipole/cut (go)"_pair_dipole.html, -"lj/cut/dipole/long"_pair_dipole.html, -"lj/cut/tip4p/cut (o)"_pair_lj.html, -"lj/cut/tip4p/long (ot)"_pair_lj.html, -"lj/expand (gko)"_pair_lj_expand.html, -"lj/gromacs (gko)"_pair_gromacs.html, -"lj/gromacs/coul/gromacs (ko)"_pair_gromacs.html, -"lj/long/coul/long (io)"_pair_lj_long.html, -"lj/long/dipole/long"_pair_dipole.html, -"lj/long/tip4p/long"_pair_lj_long.html, -"lj/smooth (o)"_pair_lj_smooth.html, -"lj/smooth/linear (o)"_pair_lj_smooth_linear.html, -"lj96/cut (go)"_pair_lj96.html, -"lubricate (o)"_pair_lubricate.html, -"lubricate/poly (o)"_pair_lubricate.html, -"lubricateU"_pair_lubricateU.html, -"lubricateU/poly"_pair_lubricateU.html, -"meam"_pair_meam.html, -"mie/cut (o)"_pair_mie.html, -"morse (gkot)"_pair_morse.html, -"nb3b/harmonic (o)"_pair_nb3b_harmonic.html, -"nm/cut (o)"_pair_nm.html, -"nm/cut/coul/cut (o)"_pair_nm.html, -"nm/cut/coul/long (o)"_pair_nm.html, -"peri/eps"_pair_peri.html, -"peri/lps (o)"_pair_peri.html, -"peri/pmb (o)"_pair_peri.html, -"peri/ves"_pair_peri.html, -"polymorphic"_pair_polymorphic.html, -"python"_pair_python.html, -"reax"_pair_reax.html, -"rebo (oi)"_pair_airebo.html, -"resquared (go)"_pair_resquared.html, -"snap (k)"_pair_snap.html, -"soft (go)"_pair_soft.html, -"sw (giko)"_pair_sw.html, -"spin/dmi"_pair_spin_dmi.html, -"spin/exchange"_pair_spin_exchange.html, -"spin/magelec"_pair_spin_magelec.html, -"spin/neel"_pair_spin_neel.html, -"table (gko)"_pair_table.html, -"tersoff (giko)"_pair_tersoff.html, -"tersoff/mod (gko)"_pair_tersoff_mod.html, -"tersoff/mod/c (o)"_pair_tersoff_mod.html, -"tersoff/zbl (gko)"_pair_tersoff_zbl.html, -"tip4p/cut (o)"_pair_coul.html, -"tip4p/long (o)"_pair_coul.html, -"tri/lj"_pair_tri_lj.html, -"ufm (got)"_pair_ufm.html, -"vashishta (ko)"_pair_vashishta.html, -"vashishta/table (o)"_pair_vashishta.html, -"yukawa (gok)"_pair_yukawa.html, -"yukawa/colloid (go)"_pair_yukawa_colloid.html, -"zbl (gok)"_pair_zbl.html :tb(c=4,ea=c) - -These are additional pair styles in USER packages, which can be used -if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"agni (o)"_pair_agni.html, -"awpmd/cut"_pair_awpmd.html, -"buck/mdf"_pair_mdf.html, -"coul/cut/soft (o)"_pair_lj_soft.html, -"coul/diel (o)"_pair_coul_diel.html, -"coul/long/soft (o)"_pair_lj_soft.html, -"coul/shield"_pair_coul_shield.html, -"dpd/fdt"_pair_dpd_fdt.html, -"dpd/fdt/energy (k)"_pair_dpd_fdt.html, -"edip (o)"_pair_edip.html, -"edip/multi"_pair_edip.html, -"edpd"_pair_meso.html, -"eff/cut"_pair_eff.html, -"exp6/rx (k)"_pair_exp6_rx.html, -"extep"_pair_extep.html, -"gauss/cut"_pair_gauss.html, -"ilp/graphene/hbn"_pair_ilp_graphene_hbn.html, -"kolmogorov/crespi/full"_pair_kolmogorov_crespi_full.html, -"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html, -"lennard/mdf"_pair_mdf.html, -"list"_pair_list.html, -"lj/charmm/coul/long/soft (o)"_pair_charmm.html, -"lj/cut/coul/cut/soft (o)"_pair_lj_soft.html, -"lj/cut/coul/long/soft (o)"_pair_lj_soft.html, -"lj/cut/dipole/sf (go)"_pair_dipole.html, -"lj/cut/soft (o)"_pair_lj_soft.html, -"lj/cut/thole/long (o)"_pair_thole.html, -"lj/cut/tip4p/long/soft (o)"_pair_lj_soft.html, -"lj/mdf"_pair_mdf.html, -"lj/sdk (gko)"_pair_sdk.html, -"lj/sdk/coul/long (go)"_pair_sdk.html, -"lj/sdk/coul/msm (o)"_pair_sdk.html, -"mdpd"_pair_meso.html, -"mdpd/rhosum"_pair_meso.html, -"meam/c"_pair_meam.html, -"meam/spline (o)"_pair_meam_spline.html, -"meam/sw/spline"_pair_meam_sw_spline.html, -"mgpt"_pair_mgpt.html, -"momb"_pair_momb.html, -"morse/smooth/linear"_pair_morse.html, -"morse/soft"_pair_morse.html, -"multi/lucy"_pair_multi_lucy.html, -"multi/lucy/rx (k)"_pair_multi_lucy_rx.html, -"oxdna/coaxstk"_pair_oxdna.html, -"oxdna/excv"_pair_oxdna.html, -"oxdna/hbond"_pair_oxdna.html, -"oxdna/stk"_pair_oxdna.html, -"oxdna/xstk"_pair_oxdna.html, -"oxdna2/coaxstk"_pair_oxdna2.html, -"oxdna2/dh"_pair_oxdna2.html, -"oxdna2/excv"_pair_oxdna2.html, -"oxdna2/stk"_pair_oxdna2.html, -"quip"_pair_quip.html, -"reax/c (ko)"_pair_reaxc.html, -"smd/hertz"_pair_smd_hertz.html, -"smd/tlsph"_pair_smd_tlsph.html, -"smd/triangulated/surface"_pair_smd_triangulated_surface.html, -"smd/ulsph"_pair_smd_ulsph.html, -"smtbq"_pair_smtbq.html, -"snap (k)"_pair_snap.html, -"sph/heatconduction"_pair_sph_heatconduction.html, -"sph/idealgas"_pair_sph_idealgas.html, -"sph/lj"_pair_sph_lj.html, -"sph/rhosum"_pair_sph_rhosum.html, -"sph/taitwater"_pair_sph_taitwater.html, -"sph/taitwater/morris"_pair_sph_taitwater_morris.html, -"srp"_pair_srp.html, -"table/rx (k)"_pair_table_rx.html, -"tdpd"_pair_meso.html, -"tersoff/table (o)"_pair_tersoff.html, -"thole"_pair_thole.html, -"tip4p/long/soft (o)"_pair_lj_soft.html :tb(c=4,ea=c) - -:line - -Bond_style potentials :h3 - -See the "bond_style"_bond_style.html command for an overview of bond -potentials. Click on the style itself for a full description. Some -of the styles have accelerated versions, which can be used if LAMMPS -is built with the "appropriate accelerated -package"_Speed_packages.html. This is indicated by additional letters -in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = -OPT. - -"none"_bond_none.html, -"zero"_bond_zero.html, -"hybrid"_bond_hybrid.html, -"class2 (ko)"_bond_class2.html, -"fene (iko)"_bond_fene.html, -"fene/expand (o)"_bond_fene_expand.html, -"gromos (o)"_bond_gromos.html, -"harmonic (ko)"_bond_harmonic.html, -"morse (o)"_bond_morse.html, -"nonlinear (o)"_bond_nonlinear.html, -"quartic (o)"_bond_quartic.html, -"table (o)"_bond_table.html :tb(c=4,ea=c) - -These are additional bond styles in USER packages, which can be used -if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"harmonic/shift (o)"_bond_harmonic_shift.html, -"harmonic/shift/cut (o)"_bond_harmonic_shift_cut.html, -"oxdna/fene"_bond_oxdna.html, -"oxdna2/fene"_bond_oxdna.html :tb(c=4,ea=c) - -:line - -Angle_style potentials :h3 - -See the "angle_style"_angle_style.html command for an overview of -angle potentials. Click on the style itself for a full description. -Some of the styles have accelerated versions, which can be used if -LAMMPS is built with the "appropriate accelerated -package"_Speed_packages.html. This is indicated by additional letters -in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = -OPT. - -"none"_angle_none.html, -"zero"_angle_zero.html, -"hybrid"_angle_hybrid.html, -"charmm (ko)"_angle_charmm.html, -"class2 (ko)"_angle_class2.html, -"cosine (o)"_angle_cosine.html, -"cosine/delta (o)"_angle_cosine_delta.html, -"cosine/periodic (o)"_angle_cosine_periodic.html, -"cosine/squared (o)"_angle_cosine_squared.html, -"harmonic (iko)"_angle_harmonic.html, -"table (o)"_angle_table.html :tb(c=4,ea=c) - -These are additional angle styles in USER packages, which can be used -if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"cosine/shift (o)"_angle_cosine_shift.html, -"cosine/shift/exp (o)"_angle_cosine_shift_exp.html, -"dipole (o)"_angle_dipole.html, -"fourier (o)"_angle_fourier.html, -"fourier/simple (o)"_angle_fourier_simple.html, -"quartic (o)"_angle_quartic.html, -"sdk"_angle_sdk.html :tb(c=4,ea=c) - -:line - -Dihedral_style potentials :h3 - -See the "dihedral_style"_dihedral_style.html command for an overview -of dihedral potentials. Click on the style itself for a full -description. Some of the styles have accelerated versions, which can -be used if LAMMPS is built with the "appropriate accelerated -package"_Speed_packages.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = -USER-OMP, t = OPT. - -"none"_dihedral_none.html, -"zero"_dihedral_zero.html, -"hybrid"_dihedral_hybrid.html, -"charmm (iko)"_dihedral_charmm.html, -"charmmfsw"_dihedral_charmm.html, -"class2 (ko)"_dihedral_class2.html, -"harmonic (io)"_dihedral_harmonic.html, -"helix (o)"_dihedral_helix.html, -"multi/harmonic (o)"_dihedral_multi_harmonic.html, -"opls (iko)"_dihedral_opls.html :tb(c=4,ea=c) - -These are additional dihedral styles in USER packages, which can be -used if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"cosine/shift/exp (o)"_dihedral_cosine_shift_exp.html, -"fourier (io)"_dihedral_fourier.html, -"nharmonic (o)"_dihedral_nharmonic.html, -"quadratic (o)"_dihedral_quadratic.html, -"spherical (o)"_dihedral_spherical.html, -"table (o)"_dihedral_table.html, -"table/cut"_dihedral_table_cut.html :tb(c=4,ea=c) - -:line - -Improper_style potentials :h3 - -See the "improper_style"_improper_style.html command for an overview -of improper potentials. Click on the style itself for a full -description. Some of the styles have accelerated versions, which can -be used if LAMMPS is built with the "appropriate accelerated -package"_Speed_packages.html. This is indicated by additional letters -in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = -OPT. - -"none"_improper_none.html, -"zero"_improper_zero.html, -"hybrid"_improper_hybrid.html, -"class2 (ko)"_improper_class2.html, -"cvff (io)"_improper_cvff.html, -"harmonic (iko)"_improper_harmonic.html, -"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c) - -These are additional improper styles in USER packages, which can be -used if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"cossq (o)"_improper_cossq.html, -"distance"_improper_distance.html, -"fourier (o)"_improper_fourier.html, -"ring (o)"_improper_ring.html :tb(c=4,ea=c) - -:line - -Kspace solvers :h3 - -See the "kspace_style"_kspace_style.html command for an overview of -Kspace solvers. Click on the style itself for a full description. -Some of the styles have accelerated versions, which can be used if -LAMMPS is built with the "appropriate accelerated -package"_Speed_packages.html. This is indicated by additional letters -in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = -OPT. - -"ewald (o)"_kspace_style.html, -"ewald/disp"_kspace_style.html, -"msm (o)"_kspace_style.html, -"msm/cg (o)"_kspace_style.html, -"pppm (gok)"_kspace_style.html, -"pppm/cg (o)"_kspace_style.html, -"pppm/disp (i)"_kspace_style.html, -"pppm/disp/tip4p"_kspace_style.html, -"pppm/stagger"_kspace_style.html, -"pppm/tip4p (o)"_kspace_style.html :tb(c=4,ea=c) diff --git a/doc/src/Section_start.txt b/doc/src/Section_start.txt index 4176432328..19a798d5df 100644 --- a/doc/src/Section_start.txt +++ b/doc/src/Section_start.txt @@ -1,10 +1,10 @@ "Previous Section"_Intro.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_commands.html :c +Section"_Commands.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -1070,7 +1070,7 @@ the '-in' command-line switch, e.g. lmp_linux -in in.file :pre -"This section"_Section_commands.html describes how input scripts are +The "Commands"_Commands.html doc page describes how input scripts are structured and what commands they contain. You can test LAMMPS on any of the sample inputs provided in the @@ -1615,9 +1615,9 @@ value2 ..." at the beginning of the input script. Defining an index variable as a command-line argument overrides any setting for the same index variable in the input script, since index variables cannot be re-defined. See the "variable"_variable.html command for more info on -defining index and other kinds of variables and "this -section"_Section_commands.html#cmd_2 for more info on using variables -in input scripts. +defining index and other kinds of variables and the "Commands +parse"_Commands_parse.html page for more info on using variables in +input scripts. NOTE: Currently, the command-line parser looks for arguments that start with "-" to indicate new switches. Thus you cannot specify diff --git a/doc/src/Speed.txt b/doc/src/Speed.txt index 6c53d6bcf0..091657082a 100644 --- a/doc/src/Speed.txt +++ b/doc/src/Speed.txt @@ -4,7 +4,7 @@ Section"_Howto.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Speed_bench.txt b/doc/src/Speed_bench.txt index dc76588c11..8e407d14ea 100644 --- a/doc/src/Speed_bench.txt +++ b/doc/src/Speed_bench.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Speed_compare.txt b/doc/src/Speed_compare.txt index 6c947b9662..1a17b39c79 100644 --- a/doc/src/Speed_compare.txt +++ b/doc/src/Speed_compare.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Speed_gpu.txt b/doc/src/Speed_gpu.txt index d6ebbf8069..ab8ec7e9d1 100644 --- a/doc/src/Speed_gpu.txt +++ b/doc/src/Speed_gpu.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Speed_intel.txt b/doc/src/Speed_intel.txt index 08e3fbc4cc..20f49672e0 100644 --- a/doc/src/Speed_intel.txt +++ b/doc/src/Speed_intel.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Speed_kokkos.txt b/doc/src/Speed_kokkos.txt index 8e01db7bdc..14f4103aed 100644 --- a/doc/src/Speed_kokkos.txt +++ b/doc/src/Speed_kokkos.txt @@ -3,34 +3,39 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line KOKKOS package :h3 Kokkos is a templated C++ library that provides abstractions to allow -a single implementation of an application kernel (e.g. a pair style) to run efficiently on -different kinds of hardware, such as GPUs, Intel Xeon Phis, or many-core -CPUs. Kokkos maps the C++ kernel onto different backend languages such as CUDA, OpenMP, or Pthreads. -The Kokkos library also provides data abstractions to adjust (at -compile time) the memory layout of data structures like 2d and -3d arrays to optimize performance on different hardware. For more information on Kokkos, see -"Github"_https://github.com/kokkos/kokkos. Kokkos is part of -"Trilinos"_http://trilinos.sandia.gov/packages/kokkos. The Kokkos library was written primarily by Carter Edwards, -Christian Trott, and Dan Sunderland (all Sandia). +a single implementation of an application kernel (e.g. a pair style) +to run efficiently on different kinds of hardware, such as GPUs, Intel +Xeon Phis, or many-core CPUs. Kokkos maps the C++ kernel onto +different backend languages such as CUDA, OpenMP, or Pthreads. The +Kokkos library also provides data abstractions to adjust (at compile +time) the memory layout of data structures like 2d and 3d arrays to +optimize performance on different hardware. For more information on +Kokkos, see "Github"_https://github.com/kokkos/kokkos. Kokkos is part +of "Trilinos"_http://trilinos.sandia.gov/packages/kokkos. The Kokkos +library was written primarily by Carter Edwards, Christian Trott, and +Dan Sunderland (all Sandia). -The LAMMPS KOKKOS package contains versions of pair, fix, and atom styles -that use data structures and macros provided by the Kokkos library, -which is included with LAMMPS in /lib/kokkos. The KOKKOS package was developed primarily by Christian Trott (Sandia) -and Stan Moore (Sandia) with contributions of various styles by others, including Sikandar -Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez (Sandia). For more information on developing using Kokkos abstractions +The LAMMPS KOKKOS package contains versions of pair, fix, and atom +styles that use data structures and macros provided by the Kokkos +library, which is included with LAMMPS in /lib/kokkos. The KOKKOS +package was developed primarily by Christian Trott (Sandia) and Stan +Moore (Sandia) with contributions of various styles by others, +including Sikandar Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez +(Sandia). For more information on developing using Kokkos abstractions see the Kokkos programmers' guide at /lib/kokkos/doc/Kokkos_PG.pdf. Kokkos currently provides support for 3 modes of execution (per MPI -task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP (threading -for many-core CPUs and Intel Phi), and CUDA (for NVIDIA GPUs). You choose the mode at build time to -produce an executable compatible with specific hardware. +task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP +(threading for many-core CPUs and Intel Phi), and CUDA (for NVIDIA +GPUs). You choose the mode at build time to produce an executable +compatible with specific hardware. [Building LAMMPS with the KOKKOS package:] @@ -38,16 +43,18 @@ NOTE: Kokkos support within LAMMPS must be built with a C++11 compatible compiler. This means GCC version 4.7.2 or later, Intel 14.0.4 or later, or Clang 3.5.2 or later is required. -The recommended method of building the KOKKOS package is to start with the provided Kokkos -Makefiles in /src/MAKE/OPTIONS/. You may need to modify the KOKKOS_ARCH variable in the Makefile -to match your specific hardware. For example: +The recommended method of building the KOKKOS package is to start with +the provided Kokkos Makefiles in /src/MAKE/OPTIONS/. You may need to +modify the KOKKOS_ARCH variable in the Makefile to match your specific +hardware. For example: for Sandy Bridge CPUs, set KOKKOS_ARCH=SNB for Broadwell CPUs, set KOKKOS_ARCH=BWD for K80 GPUs, set KOKKOS_ARCH=Kepler37 for P100 GPUs and Power8 CPUs, set KOKKOS_ARCH=Pascal60,Power8 :ul -See the [Advanced Kokkos Options] section below for a listing of all KOKKOS_ARCH options. +See the [Advanced Kokkos Options] section below for a listing of all +KOKKOS_ARCH options. [Compile for CPU-only (MPI only, no threading):] @@ -61,11 +68,12 @@ make kokkos_mpi_only :pre [Compile for CPU-only (MPI plus OpenMP threading):] -NOTE: To build with Kokkos support for OpenMP threading, your compiler must support the -OpenMP interface. You should have one or more multi-core CPUs so that -multiple threads can be launched by each MPI task running on a CPU. +NOTE: To build with Kokkos support for OpenMP threading, your compiler +must support the OpenMP interface. You should have one or more +multi-core CPUs so that multiple threads can be launched by each MPI +task running on a CPU. -use a C++11 compatible compiler and set KOKKOS_ARCH variable in +Use a C++11 compatible compiler and set KOKKOS_ARCH variable in /src/MAKE/OPTIONS/Makefile.kokkos_omp as described above. Then do the following: @@ -88,9 +96,9 @@ software version 7.5 or later must be installed on your system. See the discussion for the "GPU package"_Speed_gpu.html for details of how to check and do this. -use a C++11 compatible compiler and set KOKKOS_ARCH variable in -/src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi for both GPU and CPU as described -above. Then do the following: +Use a C++11 compatible compiler and set KOKKOS_ARCH variable in +/src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi for both GPU and CPU as +described above. Then do the following: cd lammps/src make yes-kokkos @@ -104,24 +112,24 @@ on the make command line. For example: make mpi KOKKOS_DEVICES=OpenMP KOKKOS_ARCH=SNB # set the KOKKOS_DEVICES and KOKKOS_ARCH variable explicitly make kokkos_cuda_mpi KOKKOS_ARCH=Pascal60,Power8 # set the KOKKOS_ARCH variable explicitly :pre -Setting the KOKKOS_DEVICES and KOKKOS_ARCH variables on the -make command line requires a GNU-compatible make command. Try -"gmake" if your system's standard make complains. +Setting the KOKKOS_DEVICES and KOKKOS_ARCH variables on the make +command line requires a GNU-compatible make command. Try "gmake" if +your system's standard make complains. NOTE: If you build using make line variables and re-build LAMMPS twice -with different KOKKOS options and the *same* target, then you *must* perform a "make clean-all" -or "make clean-machine" before each build. This is to force all the -KOKKOS-dependent files to be re-compiled with the new options. +with different KOKKOS options and the *same* target, then you *must* +perform a "make clean-all" or "make clean-machine" before each +build. This is to force all the KOKKOS-dependent files to be +re-compiled with the new options. [Running LAMMPS with the KOKKOS package:] -All Kokkos operations occur within the -context of an individual MPI task running on a single node of the -machine. The total number of MPI tasks used by LAMMPS (one or -multiple per compute node) is set in the usual manner via the mpirun -or mpiexec commands, and is independent of Kokkos. E.g. the mpirun -command in OpenMPI does this via its --np and -npernode switches. Ditto for MPICH via -np and -ppn. +All Kokkos operations occur within the context of an individual MPI +task running on a single node of the machine. The total number of MPI +tasks used by LAMMPS (one or multiple per compute node) is set in the +usual manner via the mpirun or mpiexec commands, and is independent of +Kokkos. E.g. the mpirun command in OpenMPI does this via its -np and +-npernode switches. Ditto for MPICH via -np and -ppn. [Running on a multi-core CPU:] @@ -133,8 +141,9 @@ mpirun -np 2 -ppn 1 lmp_kokkos_omp -k on t 16 -sf kk -in in.lj # 2 nodes, 1 MPI mpirun -np 2 lmp_kokkos_omp -k on t 8 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 8 threads/task mpirun -np 32 -ppn 4 lmp_kokkos_omp -k on t 4 -sf kk -in in.lj # 8 nodes, 4 MPI tasks/node, 4 threads/task :pre -To run using the KOKKOS package, use the "-k on", "-sf kk" and "-pk kokkos" "command-line switches"_Section_start.html#start_7 in your mpirun command. -You must use the "-k on" "command-line +To run using the KOKKOS package, use the "-k on", "-sf kk" and "-pk +kokkos" "command-line switches"_Section_start.html#start_7 in your +mpirun command. You must use the "-k on" "command-line switch"_Section_start.html#start_7 to enable the KOKKOS package. It takes additional arguments for hardware settings appropriate to your system. Those arguments are "documented @@ -142,32 +151,33 @@ here"_Section_start.html#start_7. For OpenMP use: -k on t Nt :pre -The "t Nt" option specifies how many OpenMP threads per MPI -task to use with a node. The default is Nt = 1, which is MPI-only mode. -Note that the product of MPI tasks * OpenMP -threads/task should not exceed the physical number of cores (on a -node), otherwise performance will suffer. If hyperthreading is enabled, then -the product of MPI tasks * OpenMP threads/task should not exceed the -physical number of cores * hardware threads. -The "-k on" switch also issues a "package kokkos" command (with no -additional arguments) which sets various KOKKOS options to default -values, as discussed on the "package"_package.html command doc page. +The "t Nt" option specifies how many OpenMP threads per MPI task to +use with a node. The default is Nt = 1, which is MPI-only mode. Note +that the product of MPI tasks * OpenMP threads/task should not exceed +the physical number of cores (on a node), otherwise performance will +suffer. If hyperthreading is enabled, then the product of MPI tasks * +OpenMP threads/task should not exceed the physical number of cores * +hardware threads. The "-k on" switch also issues a "package kokkos" +command (with no additional arguments) which sets various KOKKOS +options to default values, as discussed on the "package"_package.html +command doc page. -The "-sf kk" "command-line switch"_Section_start.html#start_7 -will automatically append the "/kk" suffix to styles that support it. -In this manner no modification to the input script is needed. Alternatively, -one can run with the KOKKOS package by editing the input script as described below. +The "-sf kk" "command-line switch"_Section_start.html#start_7 will +automatically append the "/kk" suffix to styles that support it. In +this manner no modification to the input script is +needed. Alternatively, one can run with the KOKKOS package by editing +the input script as described below. -NOTE: The default for the "package kokkos"_package.html command is -to use "full" neighbor lists and set the Newton flag to "off" for both +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both pairwise and bonded interactions. However, when running on CPUs, it will typically be faster to use "half" neighbor lists and set the Newton flag to "on", just as is the case for non-accelerated pair -styles. It can also be faster to use non-threaded communication. -Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to -change the default "package kokkos"_package.html -options. See its doc page for details and default settings. Experimenting with -its options can provide a speed-up for specific calculations. For example: +styles. It can also be faster to use non-threaded communication. Use +the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to +change the default "package kokkos"_package.html options. See its doc +page for details and default settings. Experimenting with its options +can provide a speed-up for specific calculations. For example: mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -pk kokkos newton on neigh half comm no -in in.lj # Newton on, Half neighbor list, non-threaded comm :pre @@ -176,9 +186,9 @@ script, it can also override the Newton flag defaults. [Core and Thread Affinity:] -When using multi-threading, it is important for -performance to bind both MPI tasks to physical cores, and threads to -physical cores, so they do not migrate during a simulation. +When using multi-threading, it is important for performance to bind +both MPI tasks to physical cores, and threads to physical cores, so +they do not migrate during a simulation. If you are not certain MPI tasks are being bound (check the defaults for your MPI installation), binding can be forced with these flags: @@ -189,24 +199,24 @@ Mvapich2 2.0: mpiexec -np 2 --bind-to socket --map-by socket ./lmp_mvapich ... : For binding threads with KOKKOS OpenMP, use thread affinity environment variables to force binding. With OpenMP 3.1 (gcc 4.7 or later, intel 12 or later) setting the environment variable -OMP_PROC_BIND=true should be sufficient. In general, for best performance -with OpenMP 4.0 or better set OMP_PROC_BIND=spread and OMP_PLACES=threads. -For binding threads with the -KOKKOS pthreads option, compile LAMMPS the KOKKOS HWLOC=yes option -as described below. +OMP_PROC_BIND=true should be sufficient. In general, for best +performance with OpenMP 4.0 or better set OMP_PROC_BIND=spread and +OMP_PLACES=threads. For binding threads with the KOKKOS pthreads +option, compile LAMMPS the KOKKOS HWLOC=yes option as described below. [Running on Knight's Landing (KNL) Intel Xeon Phi:] -Here is a quick overview of how to use the KOKKOS package -for the Intel Knight's Landing (KNL) Xeon Phi: +Here is a quick overview of how to use the KOKKOS package for the +Intel Knight's Landing (KNL) Xeon Phi: -KNL Intel Phi chips have 68 physical cores. Typically 1 to 4 cores -are reserved for the OS, and only 64 or 66 cores are used. Each core -has 4 hyperthreads,so there are effectively N = 256 (4*64) or -N = 264 (4*66) cores to run on. The product of MPI tasks * OpenMP threads/task should not exceed this limit, -otherwise performance will suffer. Note that with the KOKKOS package you do not need to -specify how many KNLs there are per node; each -KNL is simply treated as running some number of MPI tasks. +KNL Intel Phi chips have 68 physical cores. Typically 1 to 4 cores are +reserved for the OS, and only 64 or 66 cores are used. Each core has 4 +hyperthreads,so there are effectively N = 256 (4*64) or N = 264 (4*66) +cores to run on. The product of MPI tasks * OpenMP threads/task should +not exceed this limit, otherwise performance will suffer. Note that +with the KOKKOS package you do not need to specify how many KNLs there +are per node; each KNL is simply treated as running some number of MPI +tasks. Examples of mpirun commands that follow these rules are shown below. @@ -221,57 +231,60 @@ tasks/node. The "-k on t Nt" command-line switch sets the number of threads/task as Nt. The product of these two values should be N, i.e. 256 or 264. -NOTE: The default for the "package kokkos"_package.html command is -to use "full" neighbor lists and set the Newton flag to "off" for both -pairwise and bonded interactions. When running on KNL, this -will typically be best for pair-wise potentials. For manybody potentials, -using "half" neighbor lists and setting the -Newton flag to "on" may be faster. It can also be faster to use non-threaded communication. -Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to -change the default "package kokkos"_package.html -options. See its doc page for details and default settings. Experimenting with -its options can provide a speed-up for specific calculations. For example: +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both +pairwise and bonded interactions. When running on KNL, this will +typically be best for pair-wise potentials. For manybody potentials, +using "half" neighbor lists and setting the Newton flag to "on" may be +faster. It can also be faster to use non-threaded communication. Use +the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to +change the default "package kokkos"_package.html options. See its doc +page for details and default settings. Experimenting with its options +can provide a speed-up for specific calculations. For example: mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos comm no -in in.lj # Newton off, full neighbor list, non-threaded comm mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos newton on neigh half comm no -in in.reax # Newton on, half neighbor list, non-threaded comm :pre -NOTE: MPI tasks and threads should be bound to cores as described above for CPUs. +NOTE: MPI tasks and threads should be bound to cores as described +above for CPUs. -NOTE: To build with Kokkos support for Intel Xeon Phi coprocessors such as Knight's Corner (KNC), your -system must be configured to use them in "native" mode, not "offload" -mode like the USER-INTEL package supports. +NOTE: To build with Kokkos support for Intel Xeon Phi coprocessors +such as Knight's Corner (KNC), your system must be configured to use +them in "native" mode, not "offload" mode like the USER-INTEL package +supports. [Running on GPUs:] -Use the "-k" "command-line switch"_Section_commands.html#start_7 to -specify the number of GPUs per node. Typically the -np setting -of the mpirun command should set the number of MPI -tasks/node to be equal to the # of physical GPUs on the node. -You can assign multiple MPI tasks to the same GPU with the -KOKKOS package, but this is usually only faster if significant portions -of the input script have not been ported to use Kokkos. Using CUDA MPS -is recommended in this scenario. As above for multi-core CPUs (and no GPU), if N is the number -of physical cores/node, then the number of MPI tasks/node should not exceed N. +Use the "-k" "command-line switch"_Section_start.html#start_7 to +specify the number of GPUs per node. Typically the -np setting of the +mpirun command should set the number of MPI tasks/node to be equal to +the # of physical GPUs on the node. You can assign multiple MPI tasks +to the same GPU with the KOKKOS package, but this is usually only +faster if significant portions of the input script have not been +ported to use Kokkos. Using CUDA MPS is recommended in this +scenario. As above for multi-core CPUs (and no GPU), if N is the +number of physical cores/node, then the number of MPI tasks/node +should not exceed N. -k on g Ng :pre -Here are examples of how to use the KOKKOS package for GPUs, -assuming one or more nodes, each with two GPUs: +Here are examples of how to use the KOKKOS package for GPUs, assuming +one or more nodes, each with two GPUs: mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 2 GPUs/node mpirun -np 32 -ppn 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 16 nodes, 2 MPI tasks/node, 2 GPUs/node (32 GPUs total) :pre -NOTE: The default for the "package kokkos"_package.html command is -to use "full" neighbor lists and set the Newton flag to "off" for both +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both pairwise and bonded interactions, along with threaded communication. -When running on Maxwell or Kepler GPUs, this will typically be best. For Pascal GPUs, -using "half" neighbor lists and setting the -Newton flag to "on" may be faster. For many pair styles, setting the neighbor binsize -equal to the ghost atom cutoff will give speedup. -Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to -change the default "package kokkos"_package.html -options. See its doc page for details and default settings. Experimenting with -its options can provide a speed-up for specific calculations. For example: +When running on Maxwell or Kepler GPUs, this will typically be +best. For Pascal GPUs, using "half" neighbor lists and setting the +Newton flag to "on" may be faster. For many pair styles, setting the +neighbor binsize equal to the ghost atom cutoff will give speedup. +Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 +to change the default "package kokkos"_package.html options. See its +doc page for details and default settings. Experimenting with its +options can provide a speed-up for specific calculations. For example: mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos binsize 2.8 -in in.lj # Set binsize = neighbor ghost cutoff mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighborlist, set binsize = neighbor ghost cutoff :pre @@ -299,8 +312,8 @@ Alternatively the effect of the "-sf" or "-pk" switches can be duplicated by adding the "package kokkos"_package.html or "suffix kk"_suffix.html commands to your input script. -The discussion above for building LAMMPS with the KOKKOS package, the mpirun/mpiexec command, and setting -appropriate thread are the same. +The discussion above for building LAMMPS with the KOKKOS package, the +mpirun/mpiexec command, and setting appropriate thread are the same. You must still use the "-k on" "command-line switch"_Section_start.html#start_7 to enable the KOKKOS package, and @@ -318,17 +331,19 @@ wish to change any of its option defaults, as set by the "-k on" [Using OpenMP threading and CUDA together (experimental):] -With the KOKKOS package, both OpenMP multi-threading and GPUs can be used -together in a few special cases. In the Makefile, the KOKKOS_DEVICES variable must -include both "Cuda" and "OpenMP", as is the case for /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi +With the KOKKOS package, both OpenMP multi-threading and GPUs can be +used together in a few special cases. In the Makefile, the +KOKKOS_DEVICES variable must include both "Cuda" and "OpenMP", as is +the case for /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi KOKKOS_DEVICES=Cuda,OpenMP :pre The suffix "/kk" is equivalent to "/kk/device", and for Kokkos CUDA, -using the "-sf kk" in the command line gives the default CUDA version everywhere. -However, if the "/kk/host" suffix is added to a specific style in the input -script, the Kokkos OpenMP (CPU) version of that specific style will be used instead. -Set the number of OpenMP threads as "t Nt" and the number of GPUs as "g Ng" +using the "-sf kk" in the command line gives the default CUDA version +everywhere. However, if the "/kk/host" suffix is added to a specific +style in the input script, the Kokkos OpenMP (CPU) version of that +specific style will be used instead. Set the number of OpenMP threads +as "t Nt" and the number of GPUs as "g Ng" -k on t Nt g Ng :pre @@ -336,18 +351,20 @@ For example, the command to run with 1 GPU and 8 OpenMP threads is then: mpiexec -np 1 lmp_kokkos_cuda_openmpi -in in.lj -k on g 1 t 8 -sf kk :pre -Conversely, if the "-sf kk/host" is used in the command line and then the -"/kk" or "/kk/device" suffix is added to a specific style in your input script, -then only that specific style will run on the GPU while everything else will -run on the CPU in OpenMP mode. Note that the execution of the CPU and GPU -styles will NOT overlap, except for a special case: +Conversely, if the "-sf kk/host" is used in the command line and then +the "/kk" or "/kk/device" suffix is added to a specific style in your +input script, then only that specific style will run on the GPU while +everything else will run on the CPU in OpenMP mode. Note that the +execution of the CPU and GPU styles will NOT overlap, except for a +special case: -A kspace style and/or molecular topology (bonds, angles, etc.) running on -the host CPU can overlap with a pair style running on the GPU. First compile -with "--default-stream per-thread" added to CCFLAGS in the Kokkos CUDA Makefile. -Then explicitly use the "/kk/host" suffix for kspace and bonds, angles, etc. -in the input file and the "kk" suffix (equal to "kk/device") on the command line. -Also make sure the environment variable CUDA_LAUNCH_BLOCKING is not set to "1" +A kspace style and/or molecular topology (bonds, angles, etc.) running +on the host CPU can overlap with a pair style running on the +GPU. First compile with "--default-stream per-thread" added to CCFLAGS +in the Kokkos CUDA Makefile. Then explicitly use the "/kk/host" +suffix for kspace and bonds, angles, etc. in the input file and the +"kk" suffix (equal to "kk/device") on the command line. Also make +sure the environment variable CUDA_LAUNCH_BLOCKING is not set to "1" so CPU/GPU overlap can occur. [Speed-ups to expect:] @@ -384,9 +401,8 @@ hardware. There are other allowed options when building with the KOKKOS package. As above, they can be set either as variables on the make command line or in Makefile.machine. This is the full list of options, including -those discussed above. Each takes a value shown below. The -default value is listed, which is set in the -/lib/kokkos/Makefile.kokkos file. +those discussed above. Each takes a value shown below. The default +value is listed, which is set in the /lib/kokkos/Makefile.kokkos file. KOKKOS_DEVICES, values = {Serial}, {OpenMP}, {Pthreads}, {Cuda}, default = {OpenMP} KOKKOS_ARCH, values = {KNC}, {SNB}, {HSW}, {Kepler30}, {Kepler32}, {Kepler35}, {Kepler37}, {Maxwell50}, {Maxwell52}, {Maxwell53}, {Pascal60}, {Pascal61}, {ARMv80}, {ARMv81}, {ARMv81}, {ARMv8-ThunderX}, {BGQ}, {Power7}, {Power8}, {Power9}, {KNL}, {BDW}, {SKX}, default = {none} @@ -444,13 +460,14 @@ within LAMMPS. KOKKOS_DEBUG=yes enables printing of run-time debugging information that can be useful. It also enables runtime bounds checking on Kokkos data structures. -KOKKOS_CXX_STANDARD and KOKKOS_OPTIONS are typically not changed when building LAMMPS. +KOKKOS_CXX_STANDARD and KOKKOS_OPTIONS are typically not changed when +building LAMMPS. -KOKKOS_CUDA_OPTIONS are additional options for CUDA. The LAMMPS KOKKOS package must be compiled -with the {enable_lambda} option when using GPUs. +KOKKOS_CUDA_OPTIONS are additional options for CUDA. The LAMMPS KOKKOS +package must be compiled with the {enable_lambda} option when using +GPUs. [Restrictions:] -Currently, there are no precision options with the KOKKOS -package. All compilation and computation is performed in double -precision. +Currently, there are no precision options with the KOKKOS package. All +compilation and computation is performed in double precision. diff --git a/doc/src/Speed_measure.txt b/doc/src/Speed_measure.txt index 03c0345c20..78dc220088 100644 --- a/doc/src/Speed_measure.txt +++ b/doc/src/Speed_measure.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Speed_omp.txt b/doc/src/Speed_omp.txt index 9685b6d349..bcfc406902 100644 --- a/doc/src/Speed_omp.txt +++ b/doc/src/Speed_omp.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Speed_opt.txt b/doc/src/Speed_opt.txt index 7d0d7169f0..676a5d8418 100644 --- a/doc/src/Speed_opt.txt +++ b/doc/src/Speed_opt.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Speed_packages.txt b/doc/src/Speed_packages.txt index 13b5e183db..f463ed91b8 100644 --- a/doc/src/Speed_packages.txt +++ b/doc/src/Speed_packages.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -71,11 +71,12 @@ Lennard-Jones "pair_style lj/cut"_pair_lj.html: "pair_style lj/cut/omp"_pair_lj.html "pair_style lj/cut/opt"_pair_lj.html :ul -To see what accelerate styles are currently available, see -"Section 3.5"_Section_commands.html#cmd_5 of the manual. The -doc pages for individual commands (e.g. "pair lj/cut"_pair_lj.html or -"fix nve"_fix_nve.html) also list any accelerated variants available -for that style. +To see what accelerate styles are currently available for a particular +style, find the style name in the "Commands_all"_Commands_all.html +style pages (fix,compute,pair,etc) and see what suffixes are listed +(g,i,k,o,t) with it. The doc pages for individual commands +(e.g. "pair lj/cut"_pair_lj.html or "fix nve"_fix_nve.html) also list +any accelerated variants available for that style. To use an accelerator package in LAMMPS, and one or more of the styles it provides, follow these general steps. Details vary from package to diff --git a/doc/src/Speed_tips.txt b/doc/src/Speed_tips.txt index c0d360cd8e..7c950779d5 100644 --- a/doc/src/Speed_tips.txt +++ b/doc/src/Speed_tips.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index bf0f9ae134..85ee531cfd 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -4,7 +4,7 @@ Section"_Modify.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_charmm.txt b/doc/src/angle_charmm.txt index fe109d24fb..f72f086234 100644 --- a/doc/src/angle_charmm.txt +++ b/doc/src/angle_charmm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_class2.txt b/doc/src/angle_class2.txt index c13a64afb6..3e5445d3a3 100644 --- a/doc/src/angle_class2.txt +++ b/doc/src/angle_class2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_coeff.txt b/doc/src/angle_coeff.txt index 37298ba145..4c217bae7d 100644 --- a/doc/src/angle_coeff.txt +++ b/doc/src/angle_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -65,9 +65,9 @@ the style to display the formula it computes and coefficients specified by the associated "angle_coeff"_angle_coeff.html command. Note that there are also additional angle styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the angle section of "this -page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +angle styles is on the "Commands bond"_Commands_bond.html#angle doc +page. "angle_style none"_angle_none.html - turn off angle interactions "angle_style hybrid"_angle_hybrid.html - define multiple styles of angle interactions :ul diff --git a/doc/src/angle_cosine.txt b/doc/src/angle_cosine.txt index 99264b02a6..5a1fe91c83 100644 --- a/doc/src/angle_cosine.txt +++ b/doc/src/angle_cosine.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_cosine_buck6d.txt b/doc/src/angle_cosine_buck6d.txt index 7182ffecc8..63a451b763 100644 --- a/doc/src/angle_cosine_buck6d.txt +++ b/doc/src/angle_cosine_buck6d.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_cosine_delta.txt b/doc/src/angle_cosine_delta.txt index 052300412f..b6ac0ed818 100644 --- a/doc/src/angle_cosine_delta.txt +++ b/doc/src/angle_cosine_delta.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_cosine_periodic.txt b/doc/src/angle_cosine_periodic.txt index 108b081533..c5b184e0b4 100644 --- a/doc/src/angle_cosine_periodic.txt +++ b/doc/src/angle_cosine_periodic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_cosine_shift.txt b/doc/src/angle_cosine_shift.txt index 185b9f5309..90ac61fe23 100644 --- a/doc/src/angle_cosine_shift.txt +++ b/doc/src/angle_cosine_shift.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_cosine_shift_exp.txt b/doc/src/angle_cosine_shift_exp.txt index e5c7fdd709..f1c4c93c42 100644 --- a/doc/src/angle_cosine_shift_exp.txt +++ b/doc/src/angle_cosine_shift_exp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_cosine_squared.txt b/doc/src/angle_cosine_squared.txt index e85c514d1e..ba5fd9d413 100644 --- a/doc/src/angle_cosine_squared.txt +++ b/doc/src/angle_cosine_squared.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_dipole.txt b/doc/src/angle_dipole.txt index 31ae2e9464..c001d9d920 100644 --- a/doc/src/angle_dipole.txt +++ b/doc/src/angle_dipole.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_fourier.txt b/doc/src/angle_fourier.txt index 18eb56b478..e0e32c1eed 100644 --- a/doc/src/angle_fourier.txt +++ b/doc/src/angle_fourier.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_fourier_simple.txt b/doc/src/angle_fourier_simple.txt index 6faff5f10d..3c50536a2c 100644 --- a/doc/src/angle_fourier_simple.txt +++ b/doc/src/angle_fourier_simple.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_harmonic.txt b/doc/src/angle_harmonic.txt index fe803be623..76c7a491e8 100644 --- a/doc/src/angle_harmonic.txt +++ b/doc/src/angle_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_hybrid.txt b/doc/src/angle_hybrid.txt index bdd3707ccb..2646903421 100644 --- a/doc/src/angle_hybrid.txt +++ b/doc/src/angle_hybrid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_none.txt b/doc/src/angle_none.txt index a4a9b07c78..1eca5cbbec 100644 --- a/doc/src/angle_none.txt +++ b/doc/src/angle_none.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_quartic.txt b/doc/src/angle_quartic.txt index a31214f435..294be330b1 100644 --- a/doc/src/angle_quartic.txt +++ b/doc/src/angle_quartic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_sdk.txt b/doc/src/angle_sdk.txt index 0cc535e543..9c5630ef3a 100644 --- a/doc/src/angle_sdk.txt +++ b/doc/src/angle_sdk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_style.txt b/doc/src/angle_style.txt index f687e9286c..63295faf26 100644 --- a/doc/src/angle_style.txt +++ b/doc/src/angle_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -58,9 +58,9 @@ the style to display the formula it computes and coefficients specified by the associated "angle_coeff"_angle_coeff.html command. Note that there are also additional angle styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the angle section of "this -page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +angle styles are is on the "Commands bond"_Commands_bond.html#angle +doc page. "angle_style none"_angle_none.html - turn off angle interactions "angle_style zero"_angle_zero.html - topology but no interactions diff --git a/doc/src/angle_table.txt b/doc/src/angle_table.txt index 29b56875e7..31ab532be1 100644 --- a/doc/src/angle_table.txt +++ b/doc/src/angle_table.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_zero.txt b/doc/src/angle_zero.txt index b8e8ebf953..c6c1958ec8 100644 --- a/doc/src/angle_zero.txt +++ b/doc/src/angle_zero.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/atom_modify.txt b/doc/src/atom_modify.txt index 1dc0fa6bfb..c882d1b0ba 100644 --- a/doc/src/atom_modify.txt +++ b/doc/src/atom_modify.txt @@ -3,7 +3,7 @@ Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/atom_style.txt b/doc/src/atom_style.txt index 063f9e446c..abf05885a3 100644 --- a/doc/src/atom_style.txt +++ b/doc/src/atom_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/balance.txt b/doc/src/balance.txt index da6f59900d..06c4eca491 100644 --- a/doc/src/balance.txt +++ b/doc/src/balance.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/body.txt b/doc/src/body.txt index 96aedccf40..4de5b52911 100644 --- a/doc/src/body.txt +++ b/doc/src/body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_class2.txt b/doc/src/bond_class2.txt index 049482c973..3d8d5007ba 100644 --- a/doc/src/bond_class2.txt +++ b/doc/src/bond_class2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_coeff.txt b/doc/src/bond_coeff.txt index d93c0b223b..7485fa3d8d 100644 --- a/doc/src/bond_coeff.txt +++ b/doc/src/bond_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -61,9 +61,8 @@ the style to display the formula it computes and coefficients specified by the associated "bond_coeff"_bond_coeff.html command. Note that here are also additional bond styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the bond section of "this -page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +bond styles is on the "Commands bond"_Commands_bond.html doc page. "bond_style none"_bond_none.html - turn off bonded interactions "bond_style hybrid"_bond_hybrid.html - define multiple styles of bond interactions :ul diff --git a/doc/src/bond_fene.txt b/doc/src/bond_fene.txt index be154a53b1..e16307a710 100644 --- a/doc/src/bond_fene.txt +++ b/doc/src/bond_fene.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_fene_expand.txt b/doc/src/bond_fene_expand.txt index 77ebd977c8..8edd325885 100644 --- a/doc/src/bond_fene_expand.txt +++ b/doc/src/bond_fene_expand.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_gromos.txt b/doc/src/bond_gromos.txt index 7a56cb3afa..275036a421 100644 --- a/doc/src/bond_gromos.txt +++ b/doc/src/bond_gromos.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_harmonic.txt b/doc/src/bond_harmonic.txt index 54e89fcc72..e4b2015fed 100644 --- a/doc/src/bond_harmonic.txt +++ b/doc/src/bond_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_harmonic_shift.txt b/doc/src/bond_harmonic_shift.txt index 0213b5cc6f..b6dc18a5fd 100644 --- a/doc/src/bond_harmonic_shift.txt +++ b/doc/src/bond_harmonic_shift.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_harmonic_shift_cut.txt b/doc/src/bond_harmonic_shift_cut.txt index d907bf4a62..b3054437d8 100644 --- a/doc/src/bond_harmonic_shift_cut.txt +++ b/doc/src/bond_harmonic_shift_cut.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_hybrid.txt b/doc/src/bond_hybrid.txt index 400c3e0be4..140fb72378 100644 --- a/doc/src/bond_hybrid.txt +++ b/doc/src/bond_hybrid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_morse.txt b/doc/src/bond_morse.txt index 66f2d08cab..9b64e8c5c1 100644 --- a/doc/src/bond_morse.txt +++ b/doc/src/bond_morse.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_none.txt b/doc/src/bond_none.txt index 8cb262a50f..cace1919e1 100644 --- a/doc/src/bond_none.txt +++ b/doc/src/bond_none.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_nonlinear.txt b/doc/src/bond_nonlinear.txt index e0aa5629b3..08109bc699 100644 --- a/doc/src/bond_nonlinear.txt +++ b/doc/src/bond_nonlinear.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_oxdna.txt b/doc/src/bond_oxdna.txt index 927fea6403..a0e14a123a 100644 --- a/doc/src/bond_oxdna.txt +++ b/doc/src/bond_oxdna.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_quartic.txt b/doc/src/bond_quartic.txt index 760a5d7f07..87a21eff02 100644 --- a/doc/src/bond_quartic.txt +++ b/doc/src/bond_quartic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_style.txt b/doc/src/bond_style.txt index 3bd8afda19..41fa1cabb2 100644 --- a/doc/src/bond_style.txt +++ b/doc/src/bond_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -66,9 +66,8 @@ the style to display the formula it computes and coefficients specified by the associated "bond_coeff"_bond_coeff.html command. Note that there are also additional bond styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the bond section of "this -page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +bond styles is on the "Commands bond"_Commands_bond.html doc page. "bond_style none"_bond_none.html - turn off bonded interactions "bond_style zero"_bond_zero.html - topology but no interactions diff --git a/doc/src/bond_table.txt b/doc/src/bond_table.txt index fe0b3ce22b..e53cbdfa9f 100644 --- a/doc/src/bond_table.txt +++ b/doc/src/bond_table.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_write.txt b/doc/src/bond_write.txt index 4797d06cb1..711bd2c296 100644 --- a/doc/src/bond_write.txt +++ b/doc/src/bond_write.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_zero.txt b/doc/src/bond_zero.txt index b599f291b4..554f26e7f0 100644 --- a/doc/src/bond_zero.txt +++ b/doc/src/bond_zero.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/boundary.txt b/doc/src/boundary.txt index 7ee897ffa4..f9685433b2 100644 --- a/doc/src/boundary.txt +++ b/doc/src/boundary.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/box.txt b/doc/src/box.txt index 6dc093ad81..38c874fb78 100644 --- a/doc/src/box.txt +++ b/doc/src/box.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/change_box.txt b/doc/src/change_box.txt index 8f3fda263f..adc5d6bdcb 100644 --- a/doc/src/change_box.txt +++ b/doc/src/change_box.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/clear.txt b/doc/src/clear.txt index 7ac4da5c8d..c4ad4c4030 100644 --- a/doc/src/clear.txt +++ b/doc/src/clear.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/comm_modify.txt b/doc/src/comm_modify.txt index 3e8d0eca4f..489278523b 100644 --- a/doc/src/comm_modify.txt +++ b/doc/src/comm_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/comm_style.txt b/doc/src/comm_style.txt index 8248d654d3..39eb1d4ef5 100644 --- a/doc/src/comm_style.txt +++ b/doc/src/comm_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute.txt b/doc/src/compute.txt index 105571b82a..7d9e443e7d 100644 --- a/doc/src/compute.txt +++ b/doc/src/compute.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -161,13 +161,19 @@ calculations accessed in the various ways described above. Each compute style has its own doc page which describes its arguments and what it does. Here is an alphabetic list of compute styles -available in LAMMPS. They are also given in more compact form in the -Compute section of "this page"_Section_commands.html#cmd_5. +available in LAMMPS. They are also listed in more compact form on the +"Commands compute"_Commands_compute.html doc page. There are also additional compute styles (not listed here) submitted -by users which are included in the LAMMPS distribution. The list of -these with links to the individual styles are given in the compute -section of "this page"_Section_commands.html#cmd_5. +by users which are included in the LAMMPS distribution. The full list +of all compute styles is on the "Commands +compute"_Commands_compute.html doc page. + +There are also additional accelerated compute styles included in the +LAMMPS distribution for faster performance on CPUs, GPUs, and KNLs. +The individual style names on the "Commands +compute"_Commands_compute.html doc page are followed by one or more of +(g,i,k,o,t) to indicate which accerlerated styles exist. "aggregate/atom"_compute_cluster_atom.html - aggregate ID for each atom "angle/local"_compute_bond_local.html - theta and energy of each angle @@ -243,16 +249,6 @@ section of "this page"_Section_commands.html#cmd_5. "vcm/chunk"_compute_vcm_chunk.html - velocity of center-of-mass for each chunk "voronoi/atom"_compute_voronoi_atom.html - Voronoi volume and neighbors for each atom :ul -There are also additional compute styles submitted by users which are -included in the LAMMPS distribution. The list of these with links to -the individual styles are given in the compute section of "this -page"_Section_commands.html#cmd_5. - -There are also additional accelerated compute styles included in the -LAMMPS distribution for faster performance on CPUs and GPUs. The list -of these with links to the individual styles are given in the pair -section of "this page"_Section_commands.html#cmd_5. - [Restrictions:] none [Related commands:] diff --git a/doc/src/compute_ackland_atom.txt b/doc/src/compute_ackland_atom.txt index e75ad534eb..485c191313 100644 --- a/doc/src/compute_ackland_atom.txt +++ b/doc/src/compute_ackland_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_angle.txt b/doc/src/compute_angle.txt index 1deb3a4b1b..64eb2f4bb1 100644 --- a/doc/src/compute_angle.txt +++ b/doc/src/compute_angle.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_angle_local.txt b/doc/src/compute_angle_local.txt index 487b41eaf3..3a321965ef 100644 --- a/doc/src/compute_angle_local.txt +++ b/doc/src/compute_angle_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_angmom_chunk.txt b/doc/src/compute_angmom_chunk.txt index c97af96f49..7e49ff3024 100644 --- a/doc/src/compute_angmom_chunk.txt +++ b/doc/src/compute_angmom_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_basal_atom.txt b/doc/src/compute_basal_atom.txt index e0ac6b0a60..067a020c35 100644 --- a/doc/src/compute_basal_atom.txt +++ b/doc/src/compute_basal_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_body_local.txt b/doc/src/compute_body_local.txt index f387e61c78..8ac3f00c55 100644 --- a/doc/src/compute_body_local.txt +++ b/doc/src/compute_body_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_bond.txt b/doc/src/compute_bond.txt index ac0e50872b..a87c510538 100644 --- a/doc/src/compute_bond.txt +++ b/doc/src/compute_bond.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_bond_local.txt b/doc/src/compute_bond_local.txt index 868b43caa9..c3dc1cc4af 100644 --- a/doc/src/compute_bond_local.txt +++ b/doc/src/compute_bond_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_centro_atom.txt b/doc/src/compute_centro_atom.txt index bace0d8739..183537690f 100644 --- a/doc/src/compute_centro_atom.txt +++ b/doc/src/compute_centro_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_chunk_atom.txt b/doc/src/compute_chunk_atom.txt index fc0de28b6a..95e6e6c010 100644 --- a/doc/src/compute_chunk_atom.txt +++ b/doc/src/compute_chunk_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_cluster_atom.txt b/doc/src/compute_cluster_atom.txt index 12ecb8f173..e6138fe1e8 100644 --- a/doc/src/compute_cluster_atom.txt +++ b/doc/src/compute_cluster_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_cna_atom.txt b/doc/src/compute_cna_atom.txt index 9c4814560d..d69c5e9c46 100644 --- a/doc/src/compute_cna_atom.txt +++ b/doc/src/compute_cna_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_cnp_atom.txt b/doc/src/compute_cnp_atom.txt index aca7e351ec..44a77d23ca 100644 --- a/doc/src/compute_cnp_atom.txt +++ b/doc/src/compute_cnp_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_com.txt b/doc/src/compute_com.txt index 08bb08b142..fdc631a263 100644 --- a/doc/src/compute_com.txt +++ b/doc/src/compute_com.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_com_chunk.txt b/doc/src/compute_com_chunk.txt index f28355d6c5..b982f0d901 100644 --- a/doc/src/compute_com_chunk.txt +++ b/doc/src/compute_com_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_contact_atom.txt b/doc/src/compute_contact_atom.txt index ea4158e3b1..efe524263a 100644 --- a/doc/src/compute_contact_atom.txt +++ b/doc/src/compute_contact_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_coord_atom.txt b/doc/src/compute_coord_atom.txt index 06b565aedc..66eecd195d 100644 --- a/doc/src/compute_coord_atom.txt +++ b/doc/src/compute_coord_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_damage_atom.txt b/doc/src/compute_damage_atom.txt index e262ee0b1f..74939e2280 100644 --- a/doc/src/compute_damage_atom.txt +++ b/doc/src/compute_damage_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_dihedral.txt b/doc/src/compute_dihedral.txt index 67c97b60f1..aa25f9dd10 100644 --- a/doc/src/compute_dihedral.txt +++ b/doc/src/compute_dihedral.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_dihedral_local.txt b/doc/src/compute_dihedral_local.txt index d2051a51bd..77812699d3 100644 --- a/doc/src/compute_dihedral_local.txt +++ b/doc/src/compute_dihedral_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_dilatation_atom.txt b/doc/src/compute_dilatation_atom.txt index 161e73c7ff..498110cf99 100644 --- a/doc/src/compute_dilatation_atom.txt +++ b/doc/src/compute_dilatation_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_dipole_chunk.txt b/doc/src/compute_dipole_chunk.txt index 5f8d6689c4..d45fde9af2 100644 --- a/doc/src/compute_dipole_chunk.txt +++ b/doc/src/compute_dipole_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_displace_atom.txt b/doc/src/compute_displace_atom.txt index 5636cc02f0..669ab9f7ca 100644 --- a/doc/src/compute_displace_atom.txt +++ b/doc/src/compute_displace_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_dpd.txt b/doc/src/compute_dpd.txt index a5620d34b3..1721456e35 100644 --- a/doc/src/compute_dpd.txt +++ b/doc/src/compute_dpd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_dpd_atom.txt b/doc/src/compute_dpd_atom.txt index ed0fd2410b..8e502d4a60 100644 --- a/doc/src/compute_dpd_atom.txt +++ b/doc/src/compute_dpd_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_edpd_temp_atom.txt b/doc/src/compute_edpd_temp_atom.txt index 9011c3c823..f33398e03d 100644 --- a/doc/src/compute_edpd_temp_atom.txt +++ b/doc/src/compute_edpd_temp_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_entropy_atom.txt b/doc/src/compute_entropy_atom.txt index 7fdc1f4af2..9c45fd2870 100644 --- a/doc/src/compute_entropy_atom.txt +++ b/doc/src/compute_entropy_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_erotate_asphere.txt b/doc/src/compute_erotate_asphere.txt index 24e6e5e6f7..5cdc099782 100644 --- a/doc/src/compute_erotate_asphere.txt +++ b/doc/src/compute_erotate_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_erotate_rigid.txt b/doc/src/compute_erotate_rigid.txt index c8527d7073..5b9077870e 100644 --- a/doc/src/compute_erotate_rigid.txt +++ b/doc/src/compute_erotate_rigid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_erotate_sphere.txt b/doc/src/compute_erotate_sphere.txt index 8abc9a53ad..d0c176b50e 100644 --- a/doc/src/compute_erotate_sphere.txt +++ b/doc/src/compute_erotate_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_erotate_sphere_atom.txt b/doc/src/compute_erotate_sphere_atom.txt index 0bea315a89..fdd609a0e6 100644 --- a/doc/src/compute_erotate_sphere_atom.txt +++ b/doc/src/compute_erotate_sphere_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_event_displace.txt b/doc/src/compute_event_displace.txt index 17c4288911..561ded35c0 100644 --- a/doc/src/compute_event_displace.txt +++ b/doc/src/compute_event_displace.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_fep.txt b/doc/src/compute_fep.txt index f0ce3fd704..8b4a92e16e 100644 --- a/doc/src/compute_fep.txt +++ b/doc/src/compute_fep.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_global_atom.txt b/doc/src/compute_global_atom.txt index f40810b70c..a26dba72b0 100644 --- a/doc/src/compute_global_atom.txt +++ b/doc/src/compute_global_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_group_group.txt b/doc/src/compute_group_group.txt index 8f992791d2..cff3687354 100644 --- a/doc/src/compute_group_group.txt +++ b/doc/src/compute_group_group.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_gyration.txt b/doc/src/compute_gyration.txt index 3d698609ca..4dc883ad0b 100644 --- a/doc/src/compute_gyration.txt +++ b/doc/src/compute_gyration.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_gyration_chunk.txt b/doc/src/compute_gyration_chunk.txt index ef14a456f3..dcbfc65393 100644 --- a/doc/src/compute_gyration_chunk.txt +++ b/doc/src/compute_gyration_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_heat_flux.txt b/doc/src/compute_heat_flux.txt index 84c4951328..81a2a3f517 100644 --- a/doc/src/compute_heat_flux.txt +++ b/doc/src/compute_heat_flux.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_hexorder_atom.txt b/doc/src/compute_hexorder_atom.txt index 1ab40b513c..082a3cad7a 100644 --- a/doc/src/compute_hexorder_atom.txt +++ b/doc/src/compute_hexorder_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_improper.txt b/doc/src/compute_improper.txt index 61c4f6cd29..867dd48cc1 100644 --- a/doc/src/compute_improper.txt +++ b/doc/src/compute_improper.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_improper_local.txt b/doc/src/compute_improper_local.txt index 2aec554d2f..f340d5a03f 100644 --- a/doc/src/compute_improper_local.txt +++ b/doc/src/compute_improper_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_inertia_chunk.txt b/doc/src/compute_inertia_chunk.txt index 3edd25d69b..d6cdb3fe79 100644 --- a/doc/src/compute_inertia_chunk.txt +++ b/doc/src/compute_inertia_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_ke.txt b/doc/src/compute_ke.txt index d6f4e1b709..64ab83db48 100644 --- a/doc/src/compute_ke.txt +++ b/doc/src/compute_ke.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_ke_atom.txt b/doc/src/compute_ke_atom.txt index e0e96a80d8..d288ab0236 100644 --- a/doc/src/compute_ke_atom.txt +++ b/doc/src/compute_ke_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_ke_atom_eff.txt b/doc/src/compute_ke_atom_eff.txt index aa188a411b..f665f35055 100644 --- a/doc/src/compute_ke_atom_eff.txt +++ b/doc/src/compute_ke_atom_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_ke_eff.txt b/doc/src/compute_ke_eff.txt index 334b4121ed..d6d7fdb10f 100644 --- a/doc/src/compute_ke_eff.txt +++ b/doc/src/compute_ke_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_ke_rigid.txt b/doc/src/compute_ke_rigid.txt index 69cf4a598e..45ba2673b0 100644 --- a/doc/src/compute_ke_rigid.txt +++ b/doc/src/compute_ke_rigid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_meso_e_atom.txt b/doc/src/compute_meso_e_atom.txt index 70a8969386..9a9c7fae11 100644 --- a/doc/src/compute_meso_e_atom.txt +++ b/doc/src/compute_meso_e_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_meso_rho_atom.txt b/doc/src/compute_meso_rho_atom.txt index 912587f4a2..30b1142b6c 100644 --- a/doc/src/compute_meso_rho_atom.txt +++ b/doc/src/compute_meso_rho_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_meso_t_atom.txt b/doc/src/compute_meso_t_atom.txt index c9db9bf50e..ab92f05018 100644 --- a/doc/src/compute_meso_t_atom.txt +++ b/doc/src/compute_meso_t_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_modify.txt b/doc/src/compute_modify.txt index 9a2480ec0a..192ea0bc9e 100644 --- a/doc/src/compute_modify.txt +++ b/doc/src/compute_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_msd.txt b/doc/src/compute_msd.txt index 742f7ce113..b54e05bc64 100644 --- a/doc/src/compute_msd.txt +++ b/doc/src/compute_msd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_msd_chunk.txt b/doc/src/compute_msd_chunk.txt index 3e1d8542ae..264f38d5fd 100644 --- a/doc/src/compute_msd_chunk.txt +++ b/doc/src/compute_msd_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_msd_nongauss.txt b/doc/src/compute_msd_nongauss.txt index db8788db0b..814159121d 100644 --- a/doc/src/compute_msd_nongauss.txt +++ b/doc/src/compute_msd_nongauss.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_omega_chunk.txt b/doc/src/compute_omega_chunk.txt index 4a7a996d1d..84b25ac6f2 100644 --- a/doc/src/compute_omega_chunk.txt +++ b/doc/src/compute_omega_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_orientorder_atom.txt b/doc/src/compute_orientorder_atom.txt index a8b4008012..7327a7b1d3 100644 --- a/doc/src/compute_orientorder_atom.txt +++ b/doc/src/compute_orientorder_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_pair.txt b/doc/src/compute_pair.txt index be40d7a550..a2c25fcc8d 100644 --- a/doc/src/compute_pair.txt +++ b/doc/src/compute_pair.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_pair_local.txt b/doc/src/compute_pair_local.txt index bbbc5823f2..7588e92527 100644 --- a/doc/src/compute_pair_local.txt +++ b/doc/src/compute_pair_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_pe.txt b/doc/src/compute_pe.txt index f3ce5678b0..37655dfd48 100644 --- a/doc/src/compute_pe.txt +++ b/doc/src/compute_pe.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_pe_atom.txt b/doc/src/compute_pe_atom.txt index e6bc5f9052..400621f8df 100644 --- a/doc/src/compute_pe_atom.txt +++ b/doc/src/compute_pe_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_plasticity_atom.txt b/doc/src/compute_plasticity_atom.txt index c992ca8200..50a51d9937 100644 --- a/doc/src/compute_plasticity_atom.txt +++ b/doc/src/compute_plasticity_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_pressure.txt b/doc/src/compute_pressure.txt index 51d3241ace..dea0a7f05b 100644 --- a/doc/src/compute_pressure.txt +++ b/doc/src/compute_pressure.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_pressure_uef.txt b/doc/src/compute_pressure_uef.txt index 5b252b369d..61cc85ad80 100644 --- a/doc/src/compute_pressure_uef.txt +++ b/doc/src/compute_pressure_uef.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_property_atom.txt b/doc/src/compute_property_atom.txt index 88bdf5a453..512009093c 100644 --- a/doc/src/compute_property_atom.txt +++ b/doc/src/compute_property_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_property_chunk.txt b/doc/src/compute_property_chunk.txt index ad131a8a60..a30b5a1f0a 100644 --- a/doc/src/compute_property_chunk.txt +++ b/doc/src/compute_property_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_property_local.txt b/doc/src/compute_property_local.txt index 74595f00f6..b0ec088cf7 100644 --- a/doc/src/compute_property_local.txt +++ b/doc/src/compute_property_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_rdf.txt b/doc/src/compute_rdf.txt index c2d2c379fe..04b38682cc 100644 --- a/doc/src/compute_rdf.txt +++ b/doc/src/compute_rdf.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_reduce.txt b/doc/src/compute_reduce.txt index 614ef50581..ef3c7c6489 100644 --- a/doc/src/compute_reduce.txt +++ b/doc/src/compute_reduce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_rigid_local.txt b/doc/src/compute_rigid_local.txt index 380713d091..b5e6954ab9 100644 --- a/doc/src/compute_rigid_local.txt +++ b/doc/src/compute_rigid_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_saed.txt b/doc/src/compute_saed.txt index 419ad3c489..8c17a30fca 100644 --- a/doc/src/compute_saed.txt +++ b/doc/src/compute_saed.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_slice.txt b/doc/src/compute_slice.txt index 69eb7976ad..51031aeab3 100644 --- a/doc/src/compute_slice.txt +++ b/doc/src/compute_slice.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_contact_radius.txt b/doc/src/compute_smd_contact_radius.txt index 5e043a1390..cd13816047 100644 --- a/doc/src/compute_smd_contact_radius.txt +++ b/doc/src/compute_smd_contact_radius.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_damage.txt b/doc/src/compute_smd_damage.txt index ea814ba064..afabe23d7c 100644 --- a/doc/src/compute_smd_damage.txt +++ b/doc/src/compute_smd_damage.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_hourglass_error.txt b/doc/src/compute_smd_hourglass_error.txt index 046f7e7f27..13fd20a589 100644 --- a/doc/src/compute_smd_hourglass_error.txt +++ b/doc/src/compute_smd_hourglass_error.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_internal_energy.txt b/doc/src/compute_smd_internal_energy.txt index b88bd8a1ce..6585c3429f 100644 --- a/doc/src/compute_smd_internal_energy.txt +++ b/doc/src/compute_smd_internal_energy.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_plastic_strain.txt b/doc/src/compute_smd_plastic_strain.txt index 7fd083726f..fb3c5c9138 100644 --- a/doc/src/compute_smd_plastic_strain.txt +++ b/doc/src/compute_smd_plastic_strain.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_plastic_strain_rate.txt b/doc/src/compute_smd_plastic_strain_rate.txt index b17684e05e..b913ae9097 100644 --- a/doc/src/compute_smd_plastic_strain_rate.txt +++ b/doc/src/compute_smd_plastic_strain_rate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_rho.txt b/doc/src/compute_smd_rho.txt index 375513b9c7..a1ee1d9c5b 100644 --- a/doc/src/compute_smd_rho.txt +++ b/doc/src/compute_smd_rho.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_tlsph_defgrad.txt b/doc/src/compute_smd_tlsph_defgrad.txt index d07ff99f07..1663c84f65 100644 --- a/doc/src/compute_smd_tlsph_defgrad.txt +++ b/doc/src/compute_smd_tlsph_defgrad.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_tlsph_dt.txt b/doc/src/compute_smd_tlsph_dt.txt index 798278661a..c714f3266b 100644 --- a/doc/src/compute_smd_tlsph_dt.txt +++ b/doc/src/compute_smd_tlsph_dt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_tlsph_num_neighs.txt b/doc/src/compute_smd_tlsph_num_neighs.txt index 632ab94208..af5b0741db 100644 --- a/doc/src/compute_smd_tlsph_num_neighs.txt +++ b/doc/src/compute_smd_tlsph_num_neighs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_tlsph_shape.txt b/doc/src/compute_smd_tlsph_shape.txt index a3daf70222..927cd7c7ae 100644 --- a/doc/src/compute_smd_tlsph_shape.txt +++ b/doc/src/compute_smd_tlsph_shape.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_tlsph_strain.txt b/doc/src/compute_smd_tlsph_strain.txt index 899166359c..4536f26c8e 100644 --- a/doc/src/compute_smd_tlsph_strain.txt +++ b/doc/src/compute_smd_tlsph_strain.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_tlsph_strain_rate.txt b/doc/src/compute_smd_tlsph_strain_rate.txt index 29246a05d9..ae2883e4bb 100644 --- a/doc/src/compute_smd_tlsph_strain_rate.txt +++ b/doc/src/compute_smd_tlsph_strain_rate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_tlsph_stress.txt b/doc/src/compute_smd_tlsph_stress.txt index c2c23b6836..50d6b7f434 100644 --- a/doc/src/compute_smd_tlsph_stress.txt +++ b/doc/src/compute_smd_tlsph_stress.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_triangle_mesh_vertices.txt b/doc/src/compute_smd_triangle_mesh_vertices.txt index 3080ef700e..9e167924d1 100644 --- a/doc/src/compute_smd_triangle_mesh_vertices.txt +++ b/doc/src/compute_smd_triangle_mesh_vertices.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_ulsph_num_neighs.txt b/doc/src/compute_smd_ulsph_num_neighs.txt index 8550838799..202b8f15e1 100644 --- a/doc/src/compute_smd_ulsph_num_neighs.txt +++ b/doc/src/compute_smd_ulsph_num_neighs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_ulsph_strain.txt b/doc/src/compute_smd_ulsph_strain.txt index 3813e61f6c..76c47162a5 100644 --- a/doc/src/compute_smd_ulsph_strain.txt +++ b/doc/src/compute_smd_ulsph_strain.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_ulsph_strain_rate.txt b/doc/src/compute_smd_ulsph_strain_rate.txt index 251e5ddbf7..c851e767b3 100644 --- a/doc/src/compute_smd_ulsph_strain_rate.txt +++ b/doc/src/compute_smd_ulsph_strain_rate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_ulsph_stress.txt b/doc/src/compute_smd_ulsph_stress.txt index 719cf006c9..a5692b2412 100644 --- a/doc/src/compute_smd_ulsph_stress.txt +++ b/doc/src/compute_smd_ulsph_stress.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_smd_vol.txt b/doc/src/compute_smd_vol.txt index 495c09a5f5..fc4871d6f3 100644 --- a/doc/src/compute_smd_vol.txt +++ b/doc/src/compute_smd_vol.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_sna_atom.txt b/doc/src/compute_sna_atom.txt index 6fdd85568b..3b302a0a71 100644 --- a/doc/src/compute_sna_atom.txt +++ b/doc/src/compute_sna_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_spin.txt b/doc/src/compute_spin.txt index fcc764c14c..792706ecdf 100644 --- a/doc/src/compute_spin.txt +++ b/doc/src/compute_spin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_stress_atom.txt b/doc/src/compute_stress_atom.txt index 423c1dcfda..222513da61 100644 --- a/doc/src/compute_stress_atom.txt +++ b/doc/src/compute_stress_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_tally.txt b/doc/src/compute_tally.txt index 95ef4a553b..23fac43093 100644 --- a/doc/src/compute_tally.txt +++ b/doc/src/compute_tally.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_tdpd_cc_atom.txt b/doc/src/compute_tdpd_cc_atom.txt index ec077a33d1..9ee4d3da34 100644 --- a/doc/src/compute_tdpd_cc_atom.txt +++ b/doc/src/compute_tdpd_cc_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp.txt b/doc/src/compute_temp.txt index cce40261c6..9f3a1ca906 100644 --- a/doc/src/compute_temp.txt +++ b/doc/src/compute_temp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_asphere.txt b/doc/src/compute_temp_asphere.txt index a5fc0e8927..6766729ae0 100644 --- a/doc/src/compute_temp_asphere.txt +++ b/doc/src/compute_temp_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_body.txt b/doc/src/compute_temp_body.txt index 580564b059..4e3ce3e77f 100644 --- a/doc/src/compute_temp_body.txt +++ b/doc/src/compute_temp_body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_chunk.txt b/doc/src/compute_temp_chunk.txt index 5d7d64ce68..de8c850a70 100644 --- a/doc/src/compute_temp_chunk.txt +++ b/doc/src/compute_temp_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_com.txt b/doc/src/compute_temp_com.txt index e8b46aec97..12df694e38 100644 --- a/doc/src/compute_temp_com.txt +++ b/doc/src/compute_temp_com.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_cs.txt b/doc/src/compute_temp_cs.txt index 9d2ceabd46..0236319f54 100644 --- a/doc/src/compute_temp_cs.txt +++ b/doc/src/compute_temp_cs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_deform.txt b/doc/src/compute_temp_deform.txt index b81d07babd..26d322589e 100644 --- a/doc/src/compute_temp_deform.txt +++ b/doc/src/compute_temp_deform.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_deform_eff.txt b/doc/src/compute_temp_deform_eff.txt index 418180d93c..876d492f34 100644 --- a/doc/src/compute_temp_deform_eff.txt +++ b/doc/src/compute_temp_deform_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_drude.txt b/doc/src/compute_temp_drude.txt index 3e86dc8fda..20d9a5c056 100644 --- a/doc/src/compute_temp_drude.txt +++ b/doc/src/compute_temp_drude.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_eff.txt b/doc/src/compute_temp_eff.txt index 42d22a33a7..35ddb75b12 100644 --- a/doc/src/compute_temp_eff.txt +++ b/doc/src/compute_temp_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_partial.txt b/doc/src/compute_temp_partial.txt index 0fda274ca0..2769246532 100644 --- a/doc/src/compute_temp_partial.txt +++ b/doc/src/compute_temp_partial.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_profile.txt b/doc/src/compute_temp_profile.txt index 8f47c8f9f4..4ed04ca67e 100644 --- a/doc/src/compute_temp_profile.txt +++ b/doc/src/compute_temp_profile.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_ramp.txt b/doc/src/compute_temp_ramp.txt index 1ae0cdfc3e..15cad9c0cb 100644 --- a/doc/src/compute_temp_ramp.txt +++ b/doc/src/compute_temp_ramp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_region.txt b/doc/src/compute_temp_region.txt index f05fa38e2c..f23901af98 100644 --- a/doc/src/compute_temp_region.txt +++ b/doc/src/compute_temp_region.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_region_eff.txt b/doc/src/compute_temp_region_eff.txt index 45c01b047f..95892eb257 100644 --- a/doc/src/compute_temp_region_eff.txt +++ b/doc/src/compute_temp_region_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_rotate.txt b/doc/src/compute_temp_rotate.txt index 8c5679b83f..189246d3e4 100644 --- a/doc/src/compute_temp_rotate.txt +++ b/doc/src/compute_temp_rotate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_sphere.txt b/doc/src/compute_temp_sphere.txt index 4d4258182e..5a55126d12 100644 --- a/doc/src/compute_temp_sphere.txt +++ b/doc/src/compute_temp_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_temp_uef.txt b/doc/src/compute_temp_uef.txt index acd3a6218d..a94d5db8ed 100644 --- a/doc/src/compute_temp_uef.txt +++ b/doc/src/compute_temp_uef.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_ti.txt b/doc/src/compute_ti.txt index f5d26e1a03..e79b594e3f 100644 --- a/doc/src/compute_ti.txt +++ b/doc/src/compute_ti.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_torque_chunk.txt b/doc/src/compute_torque_chunk.txt index 254cd0fd85..6484076b37 100644 --- a/doc/src/compute_torque_chunk.txt +++ b/doc/src/compute_torque_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_vacf.txt b/doc/src/compute_vacf.txt index d615f70e22..70f1e99490 100644 --- a/doc/src/compute_vacf.txt +++ b/doc/src/compute_vacf.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_vcm_chunk.txt b/doc/src/compute_vcm_chunk.txt index af1a4305d8..7e8ad71208 100644 --- a/doc/src/compute_vcm_chunk.txt +++ b/doc/src/compute_vcm_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_voronoi_atom.txt b/doc/src/compute_voronoi_atom.txt index bbd68b16ea..a8ce77882a 100644 --- a/doc/src/compute_voronoi_atom.txt +++ b/doc/src/compute_voronoi_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_xrd.txt b/doc/src/compute_xrd.txt index 03fd0ecdc2..609fde3582 100644 --- a/doc/src/compute_xrd.txt +++ b/doc/src/compute_xrd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/create_atoms.txt b/doc/src/create_atoms.txt index 5d824ae1ef..d80e2d45f1 100644 --- a/doc/src/create_atoms.txt +++ b/doc/src/create_atoms.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/create_bonds.txt b/doc/src/create_bonds.txt index 6700ed29d3..8596cab51d 100644 --- a/doc/src/create_bonds.txt +++ b/doc/src/create_bonds.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/create_box.txt b/doc/src/create_box.txt index ed05775591..0993b4f927 100644 --- a/doc/src/create_box.txt +++ b/doc/src/create_box.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/delete_atoms.txt b/doc/src/delete_atoms.txt index 1aa71d341f..57faf97ad1 100644 --- a/doc/src/delete_atoms.txt +++ b/doc/src/delete_atoms.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/delete_bonds.txt b/doc/src/delete_bonds.txt index b1137a2288..b29fa82f2d 100644 --- a/doc/src/delete_bonds.txt +++ b/doc/src/delete_bonds.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dielectric.txt b/doc/src/dielectric.txt index e98badf87b..f93be8cc25 100644 --- a/doc/src/dielectric.txt +++ b/doc/src/dielectric.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_charmm.txt b/doc/src/dihedral_charmm.txt index f808649a44..8adef6cf4b 100644 --- a/doc/src/dihedral_charmm.txt +++ b/doc/src/dihedral_charmm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_class2.txt b/doc/src/dihedral_class2.txt index 41282b22a3..1a2f37abbb 100644 --- a/doc/src/dihedral_class2.txt +++ b/doc/src/dihedral_class2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_coeff.txt b/doc/src/dihedral_coeff.txt index 5b43cbbe7f..1db69e40d5 100644 --- a/doc/src/dihedral_coeff.txt +++ b/doc/src/dihedral_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -74,9 +74,9 @@ the style to display the formula it computes and coefficients specified by the associated "dihedral_coeff"_dihedral_coeff.html command. Note that there are also additional dihedral styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the dihedral section of -"this page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +dihedral styles is on the "Commands bond"_Commands_bond.html#dihedral +doc page. "dihedral_style none"_dihedral_none.html - turn off dihedral interactions "dihedral_style hybrid"_dihedral_hybrid.html - define multiple styles of dihedral interactions :ul diff --git a/doc/src/dihedral_cosine_shift_exp.txt b/doc/src/dihedral_cosine_shift_exp.txt index 483745be41..7ef27e6bc9 100644 --- a/doc/src/dihedral_cosine_shift_exp.txt +++ b/doc/src/dihedral_cosine_shift_exp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_fourier.txt b/doc/src/dihedral_fourier.txt index 0270139f68..f51cbc9c8c 100644 --- a/doc/src/dihedral_fourier.txt +++ b/doc/src/dihedral_fourier.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_harmonic.txt b/doc/src/dihedral_harmonic.txt index a25a7969fe..1eda0c5d02 100644 --- a/doc/src/dihedral_harmonic.txt +++ b/doc/src/dihedral_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_helix.txt b/doc/src/dihedral_helix.txt index 814962a472..3af4b410bc 100644 --- a/doc/src/dihedral_helix.txt +++ b/doc/src/dihedral_helix.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_hybrid.txt b/doc/src/dihedral_hybrid.txt index 8cb40eff44..c9ca86680c 100644 --- a/doc/src/dihedral_hybrid.txt +++ b/doc/src/dihedral_hybrid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_multi_harmonic.txt b/doc/src/dihedral_multi_harmonic.txt index 62cad4141a..7c22391923 100644 --- a/doc/src/dihedral_multi_harmonic.txt +++ b/doc/src/dihedral_multi_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_nharmonic.txt b/doc/src/dihedral_nharmonic.txt index a49979fa66..aa8f1e0d7f 100644 --- a/doc/src/dihedral_nharmonic.txt +++ b/doc/src/dihedral_nharmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_none.txt b/doc/src/dihedral_none.txt index 3ce2aa1729..4c1ff2ea5d 100644 --- a/doc/src/dihedral_none.txt +++ b/doc/src/dihedral_none.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_opls.txt b/doc/src/dihedral_opls.txt index 9b33173da4..f0cf91f30a 100644 --- a/doc/src/dihedral_opls.txt +++ b/doc/src/dihedral_opls.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_quadratic.txt b/doc/src/dihedral_quadratic.txt index f90c4b79f1..e65cf2dee8 100644 --- a/doc/src/dihedral_quadratic.txt +++ b/doc/src/dihedral_quadratic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_spherical.txt b/doc/src/dihedral_spherical.txt index 7c17fbf5ef..10a757e898 100644 --- a/doc/src/dihedral_spherical.txt +++ b/doc/src/dihedral_spherical.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_style.txt b/doc/src/dihedral_style.txt index ca592b29b5..6aff3f0994 100644 --- a/doc/src/dihedral_style.txt +++ b/doc/src/dihedral_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -81,9 +81,9 @@ the style to display the formula it computes and coefficients specified by the associated "dihedral_coeff"_dihedral_coeff.html command. Note that there are also additional dihedral styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the dihedral section of -"this page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +dihedral styles is on the "Commands bond"_Commands_bond.html#dihedral +doc page. "dihedral_style none"_dihedral_none.html - turn off dihedral interactions "dihedral_style zero"_dihedral_zero.html - topology but no interactions diff --git a/doc/src/dihedral_table.txt b/doc/src/dihedral_table.txt index 6a480fec93..d722ef7c82 100644 --- a/doc/src/dihedral_table.txt +++ b/doc/src/dihedral_table.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_table_cut.txt b/doc/src/dihedral_table_cut.txt index 1c83d4ffa0..cc7df8cdf9 100644 --- a/doc/src/dihedral_table_cut.txt +++ b/doc/src/dihedral_table_cut.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_zero.txt b/doc/src/dihedral_zero.txt index 4d33126eeb..0c9995a563 100644 --- a/doc/src/dihedral_zero.txt +++ b/doc/src/dihedral_zero.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dimension.txt b/doc/src/dimension.txt index f079f17f99..b7dde76524 100644 --- a/doc/src/dimension.txt +++ b/doc/src/dimension.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/displace_atoms.txt b/doc/src/displace_atoms.txt index 634add196b..b4afd5c3a9 100644 --- a/doc/src/displace_atoms.txt +++ b/doc/src/displace_atoms.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump.txt b/doc/src/dump.txt index cd8bab2e65..5b478b7301 100644 --- a/doc/src/dump.txt +++ b/doc/src/dump.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_cfg_uef.txt b/doc/src/dump_cfg_uef.txt index e257f9c4f1..665be14be1 100644 --- a/doc/src/dump_cfg_uef.txt +++ b/doc/src/dump_cfg_uef.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_h5md.txt b/doc/src/dump_h5md.txt index 93c87d85b7..fbd682dad9 100644 --- a/doc/src/dump_h5md.txt +++ b/doc/src/dump_h5md.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_image.txt b/doc/src/dump_image.txt index fcc9b25b62..06332b5dcf 100644 --- a/doc/src/dump_image.txt +++ b/doc/src/dump_image.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_modify.txt b/doc/src/dump_modify.txt index 5365610d64..73107d07f7 100644 --- a/doc/src/dump_modify.txt +++ b/doc/src/dump_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_molfile.txt b/doc/src/dump_molfile.txt index 7e68490a68..9fa04bd1ae 100644 --- a/doc/src/dump_molfile.txt +++ b/doc/src/dump_molfile.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_netcdf.txt b/doc/src/dump_netcdf.txt index 70111a36a8..b1c6373651 100644 --- a/doc/src/dump_netcdf.txt +++ b/doc/src/dump_netcdf.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_vtk.txt b/doc/src/dump_vtk.txt index d4d28c81fc..afc6099534 100644 --- a/doc/src/dump_vtk.txt +++ b/doc/src/dump_vtk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/echo.txt b/doc/src/echo.txt index 3141c7a719..dc6918dc89 100644 --- a/doc/src/echo.txt +++ b/doc/src/echo.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix.txt b/doc/src/fix.txt index a51dc1637d..fd966b5bd9 100644 --- a/doc/src/fix.txt +++ b/doc/src/fix.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -151,16 +151,20 @@ for further info. :line -Each fix style has its own documentation page which describes its -arguments and what it does, as listed below. Here is an alphabetic -list of fix styles available in LAMMPS. They are also given in more -compact form in the Fix section of "this -page"_Section_commands.html#cmd_5. +Each fix style has its own doc page which describes its arguments and +what it does, as listed below. Here is an alphabetic list of fix +styles available in LAMMPS. They are also listed in more compact form +on the "Commands fix"_Commands_fix.html doc page. There are also additional fix styles (not listed here) submitted by -users which are included in the LAMMPS distribution. The list of -these with links to the individual styles are given in the fix section -of "this page"_Section_commands.html#cmd_5. +users which are included in the LAMMPS distribution. The full list of +all fix styles is on the "Commands fix"_Commands_fix.html doc page. + +There are also additional accelerated fix styles included in the +LAMMPS distribution for faster performance on CPUs, GPUs, and KNLs. +The individual style names on the "Commands fix"_Commands_fix.html doc +page are followed by one or more of (g,i,k,o,t) to indicate which +accerlerated styles exist. "adapt"_fix_adapt.html - change a simulation parameter over time "addforce"_fix_addforce.html - add a force to each atom diff --git a/doc/src/fix_adapt.txt b/doc/src/fix_adapt.txt index 0764d04e6d..0ca28fb869 100644 --- a/doc/src/fix_adapt.txt +++ b/doc/src/fix_adapt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_adapt_fep.txt b/doc/src/fix_adapt_fep.txt index 43c87a1601..7e30a1d29d 100644 --- a/doc/src/fix_adapt_fep.txt +++ b/doc/src/fix_adapt_fep.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_addforce.txt b/doc/src/fix_addforce.txt index c77cdb62af..51be39fdb2 100644 --- a/doc/src/fix_addforce.txt +++ b/doc/src/fix_addforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_addtorque.txt b/doc/src/fix_addtorque.txt index 589cb37cc0..c80fad26da 100644 --- a/doc/src/fix_addtorque.txt +++ b/doc/src/fix_addtorque.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_append_atoms.txt b/doc/src/fix_append_atoms.txt index ba7b4a3e74..c6af361afc 100644 --- a/doc/src/fix_append_atoms.txt +++ b/doc/src/fix_append_atoms.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_atc.txt b/doc/src/fix_atc.txt index af3270ff52..6de917e571 100644 --- a/doc/src/fix_atc.txt +++ b/doc/src/fix_atc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_atom_swap.txt b/doc/src/fix_atom_swap.txt index 0b3be3ce5e..c1d84dade1 100644 --- a/doc/src/fix_atom_swap.txt +++ b/doc/src/fix_atom_swap.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ave_atom.txt b/doc/src/fix_ave_atom.txt index 05bd0f6fa7..10deaf64cd 100644 --- a/doc/src/fix_ave_atom.txt +++ b/doc/src/fix_ave_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ave_chunk.txt b/doc/src/fix_ave_chunk.txt index e9d0ef7e72..d331e51295 100644 --- a/doc/src/fix_ave_chunk.txt +++ b/doc/src/fix_ave_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ave_correlate.txt b/doc/src/fix_ave_correlate.txt index 74ce3f340e..22e8768f1d 100644 --- a/doc/src/fix_ave_correlate.txt +++ b/doc/src/fix_ave_correlate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ave_correlate_long.txt b/doc/src/fix_ave_correlate_long.txt index 7b4bc53701..ac0ef873aa 100644 --- a/doc/src/fix_ave_correlate_long.txt +++ b/doc/src/fix_ave_correlate_long.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ave_histo.txt b/doc/src/fix_ave_histo.txt index e2fd2e04e8..f1da130ff7 100644 --- a/doc/src/fix_ave_histo.txt +++ b/doc/src/fix_ave_histo.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ave_time.txt b/doc/src/fix_ave_time.txt index e973a36360..a53e318d3f 100644 --- a/doc/src/fix_ave_time.txt +++ b/doc/src/fix_ave_time.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_aveforce.txt b/doc/src/fix_aveforce.txt index 3497b33ef4..1fc7e4a18d 100644 --- a/doc/src/fix_aveforce.txt +++ b/doc/src/fix_aveforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_balance.txt b/doc/src/fix_balance.txt index b98fd85c3b..2de17cdd2a 100644 --- a/doc/src/fix_balance.txt +++ b/doc/src/fix_balance.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_bocs.txt b/doc/src/fix_bocs.txt index f53b7c785c..f5bbc8a251 100644 --- a/doc/src/fix_bocs.txt +++ b/doc/src/fix_bocs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_bond_break.txt b/doc/src/fix_bond_break.txt index b43053c461..bdb2f2a862 100644 --- a/doc/src/fix_bond_break.txt +++ b/doc/src/fix_bond_break.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_bond_create.txt b/doc/src/fix_bond_create.txt index a55ba1ff6e..ab34433cec 100644 --- a/doc/src/fix_bond_create.txt +++ b/doc/src/fix_bond_create.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_bond_react.txt b/doc/src/fix_bond_react.txt index 006f59100f..883968e012 100644 --- a/doc/src/fix_bond_react.txt +++ b/doc/src/fix_bond_react.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_bond_swap.txt b/doc/src/fix_bond_swap.txt index 8d5df7e4e0..a829171f33 100644 --- a/doc/src/fix_bond_swap.txt +++ b/doc/src/fix_bond_swap.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_box_relax.txt b/doc/src/fix_box_relax.txt index a625f0c5b8..8e21ec2c74 100644 --- a/doc/src/fix_box_relax.txt +++ b/doc/src/fix_box_relax.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_cmap.txt b/doc/src/fix_cmap.txt index d352f0e652..6f3769fafe 100644 --- a/doc/src/fix_cmap.txt +++ b/doc/src/fix_cmap.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_colvars.txt b/doc/src/fix_colvars.txt index 2d3000e6ea..4a1d84de64 100644 --- a/doc/src/fix_colvars.txt +++ b/doc/src/fix_colvars.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_controller.txt b/doc/src/fix_controller.txt index 710642c0ea..7458f1bcfa 100644 --- a/doc/src/fix_controller.txt +++ b/doc/src/fix_controller.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_deform.txt b/doc/src/fix_deform.txt index 09261e2423..e92d1e6b19 100644 --- a/doc/src/fix_deform.txt +++ b/doc/src/fix_deform.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_deposit.txt b/doc/src/fix_deposit.txt index 285e720555..277ca8777a 100644 --- a/doc/src/fix_deposit.txt +++ b/doc/src/fix_deposit.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_dpd_energy.txt b/doc/src/fix_dpd_energy.txt index 4f2b5d573f..f539bc534e 100644 --- a/doc/src/fix_dpd_energy.txt +++ b/doc/src/fix_dpd_energy.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_dpd_source.txt b/doc/src/fix_dpd_source.txt index bbfc99e8c8..04af9a28a1 100644 --- a/doc/src/fix_dpd_source.txt +++ b/doc/src/fix_dpd_source.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_drag.txt b/doc/src/fix_drag.txt index a67ec6aaf2..92e68d13a4 100644 --- a/doc/src/fix_drag.txt +++ b/doc/src/fix_drag.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_drude.txt b/doc/src/fix_drude.txt index 4a3d30a9ca..80eb79201b 100644 --- a/doc/src/fix_drude.txt +++ b/doc/src/fix_drude.txt @@ -3,7 +3,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_drude_transform.txt b/doc/src/fix_drude_transform.txt index 54cdfa956e..8864cc4eb6 100644 --- a/doc/src/fix_drude_transform.txt +++ b/doc/src/fix_drude_transform.txt @@ -9,7 +9,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_dt_reset.txt b/doc/src/fix_dt_reset.txt index 428128feda..be4fbd255b 100644 --- a/doc/src/fix_dt_reset.txt +++ b/doc/src/fix_dt_reset.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_efield.txt b/doc/src/fix_efield.txt index a248a03b07..b5a43f68aa 100644 --- a/doc/src/fix_efield.txt +++ b/doc/src/fix_efield.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ehex.txt b/doc/src/fix_ehex.txt index 40752a811f..cfcc917d01 100644 --- a/doc/src/fix_ehex.txt +++ b/doc/src/fix_ehex.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_enforce2d.txt b/doc/src/fix_enforce2d.txt index b0d8c691b5..2925e44bda 100644 --- a/doc/src/fix_enforce2d.txt +++ b/doc/src/fix_enforce2d.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_eos_cv.txt b/doc/src/fix_eos_cv.txt index 4c97304335..b94e2c64a9 100644 --- a/doc/src/fix_eos_cv.txt +++ b/doc/src/fix_eos_cv.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_eos_table.txt b/doc/src/fix_eos_table.txt index 42778d7978..743c51f415 100644 --- a/doc/src/fix_eos_table.txt +++ b/doc/src/fix_eos_table.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_eos_table_rx.txt b/doc/src/fix_eos_table_rx.txt index f74a838c47..f9deab61c8 100644 --- a/doc/src/fix_eos_table_rx.txt +++ b/doc/src/fix_eos_table_rx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_evaporate.txt b/doc/src/fix_evaporate.txt index be8b351986..6237a137fd 100644 --- a/doc/src/fix_evaporate.txt +++ b/doc/src/fix_evaporate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_external.txt b/doc/src/fix_external.txt index bf80b1b231..1dec226414 100644 --- a/doc/src/fix_external.txt +++ b/doc/src/fix_external.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_filter_corotate.txt b/doc/src/fix_filter_corotate.txt index a75a3b7b44..d1e5e12f3e 100644 --- a/doc/src/fix_filter_corotate.txt +++ b/doc/src/fix_filter_corotate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_flow_gauss.txt b/doc/src/fix_flow_gauss.txt index 0980076062..843c2a66a5 100644 --- a/doc/src/fix_flow_gauss.txt +++ b/doc/src/fix_flow_gauss.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_freeze.txt b/doc/src/fix_freeze.txt index 43714df802..76a9fd3b1a 100644 --- a/doc/src/fix_freeze.txt +++ b/doc/src/fix_freeze.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_gcmc.txt b/doc/src/fix_gcmc.txt index 9630d856be..394690ea5d 100644 --- a/doc/src/fix_gcmc.txt +++ b/doc/src/fix_gcmc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_gld.txt b/doc/src/fix_gld.txt index 06ac5d68cb..1c5db6157d 100644 --- a/doc/src/fix_gld.txt +++ b/doc/src/fix_gld.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_gle.txt b/doc/src/fix_gle.txt index d91dd8dee9..9fdc72bf9f 100644 --- a/doc/src/fix_gle.txt +++ b/doc/src/fix_gle.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_gravity.txt b/doc/src/fix_gravity.txt index 786f145608..832c677f81 100644 --- a/doc/src/fix_gravity.txt +++ b/doc/src/fix_gravity.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_grem.txt b/doc/src/fix_grem.txt index 661f68ed99..506e266505 100644 --- a/doc/src/fix_grem.txt +++ b/doc/src/fix_grem.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_halt.txt b/doc/src/fix_halt.txt index 55f313e40f..ec117518d2 100644 --- a/doc/src/fix_halt.txt +++ b/doc/src/fix_halt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_heat.txt b/doc/src/fix_heat.txt index a0e9b945fc..6db7592609 100644 --- a/doc/src/fix_heat.txt +++ b/doc/src/fix_heat.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_imd.txt b/doc/src/fix_imd.txt index 1a1f11c2cf..8e21a1619b 100644 --- a/doc/src/fix_imd.txt +++ b/doc/src/fix_imd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_indent.txt b/doc/src/fix_indent.txt index 1f67c0b242..9931793c0b 100644 --- a/doc/src/fix_indent.txt +++ b/doc/src/fix_indent.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ipi.txt b/doc/src/fix_ipi.txt index 07e8025d77..eba30ef088 100644 --- a/doc/src/fix_ipi.txt +++ b/doc/src/fix_ipi.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_langevin.txt b/doc/src/fix_langevin.txt index 769b188604..4d7728cdba 100644 --- a/doc/src/fix_langevin.txt +++ b/doc/src/fix_langevin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_langevin_drude.txt b/doc/src/fix_langevin_drude.txt index bda8ec7881..19a3f87ffc 100644 --- a/doc/src/fix_langevin_drude.txt +++ b/doc/src/fix_langevin_drude.txt @@ -9,7 +9,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_langevin_eff.txt b/doc/src/fix_langevin_eff.txt index ef22e99bcf..cf42f9c036 100644 --- a/doc/src/fix_langevin_eff.txt +++ b/doc/src/fix_langevin_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt index b089cd7f58..1b1936376d 100644 --- a/doc/src/fix_langevin_spin.txt +++ b/doc/src/fix_langevin_spin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_latte.txt b/doc/src/fix_latte.txt index 4f7e99dea8..9bc589520b 100644 --- a/doc/src/fix_latte.txt +++ b/doc/src/fix_latte.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_lb_fluid.txt b/doc/src/fix_lb_fluid.txt index 925ca991c4..5347f0147f 100644 --- a/doc/src/fix_lb_fluid.txt +++ b/doc/src/fix_lb_fluid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_lb_momentum.txt b/doc/src/fix_lb_momentum.txt index 78a1f497eb..a58c5d257e 100644 --- a/doc/src/fix_lb_momentum.txt +++ b/doc/src/fix_lb_momentum.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_lb_pc.txt b/doc/src/fix_lb_pc.txt index f93d02f677..bd121b7813 100644 --- a/doc/src/fix_lb_pc.txt +++ b/doc/src/fix_lb_pc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_lb_rigid_pc_sphere.txt b/doc/src/fix_lb_rigid_pc_sphere.txt index 50e91df849..bc8fa2ea25 100644 --- a/doc/src/fix_lb_rigid_pc_sphere.txt +++ b/doc/src/fix_lb_rigid_pc_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_lb_viscous.txt b/doc/src/fix_lb_viscous.txt index 27f089496e..7bbdd204e3 100644 --- a/doc/src/fix_lb_viscous.txt +++ b/doc/src/fix_lb_viscous.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_lineforce.txt b/doc/src/fix_lineforce.txt index ad651862f6..3114ed6250 100644 --- a/doc/src/fix_lineforce.txt +++ b/doc/src/fix_lineforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_manifoldforce.txt b/doc/src/fix_manifoldforce.txt index fe8a04051b..aa32a875bf 100644 --- a/doc/src/fix_manifoldforce.txt +++ b/doc/src/fix_manifoldforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_meso.txt b/doc/src/fix_meso.txt index 95f58bedaa..8f5ad29929 100644 --- a/doc/src/fix_meso.txt +++ b/doc/src/fix_meso.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_meso_stationary.txt b/doc/src/fix_meso_stationary.txt index 3b197c079f..38d26b34d6 100644 --- a/doc/src/fix_meso_stationary.txt +++ b/doc/src/fix_meso_stationary.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_modify.txt b/doc/src/fix_modify.txt index 308bba1ac3..ddb5f9a4cd 100644 --- a/doc/src/fix_modify.txt +++ b/doc/src/fix_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_momentum.txt b/doc/src/fix_momentum.txt index 28fd2addf2..f7fe35be2a 100644 --- a/doc/src/fix_momentum.txt +++ b/doc/src/fix_momentum.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_move.txt b/doc/src/fix_move.txt index 9a1d25b623..08f38d0ed6 100644 --- a/doc/src/fix_move.txt +++ b/doc/src/fix_move.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_mscg.txt b/doc/src/fix_mscg.txt index 7d16967955..aadc3caf5a 100644 --- a/doc/src/fix_mscg.txt +++ b/doc/src/fix_mscg.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_msst.txt b/doc/src/fix_msst.txt index d79b549580..91ffbbb0fa 100644 --- a/doc/src/fix_msst.txt +++ b/doc/src/fix_msst.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_mvv_dpd.txt b/doc/src/fix_mvv_dpd.txt index 7a07642c54..1e9bf631fd 100644 --- a/doc/src/fix_mvv_dpd.txt +++ b/doc/src/fix_mvv_dpd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_neb.txt b/doc/src/fix_neb.txt index 5cfefbf819..5341d6999c 100644 --- a/doc/src/fix_neb.txt +++ b/doc/src/fix_neb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nh.txt b/doc/src/fix_nh.txt index d18f4a3e16..f6b155e2db 100644 --- a/doc/src/fix_nh.txt +++ b/doc/src/fix_nh.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nh_eff.txt b/doc/src/fix_nh_eff.txt index 1731f1f331..afb319bfa5 100644 --- a/doc/src/fix_nh_eff.txt +++ b/doc/src/fix_nh_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nh_uef.txt b/doc/src/fix_nh_uef.txt index bde1818371..0e73c57e08 100644 --- a/doc/src/fix_nh_uef.txt +++ b/doc/src/fix_nh_uef.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nph_asphere.txt b/doc/src/fix_nph_asphere.txt index ff8c300c47..6bfd9d3fe2 100644 --- a/doc/src/fix_nph_asphere.txt +++ b/doc/src/fix_nph_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nph_body.txt b/doc/src/fix_nph_body.txt index 9263470e9e..377e1980eb 100644 --- a/doc/src/fix_nph_body.txt +++ b/doc/src/fix_nph_body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nph_sphere.txt b/doc/src/fix_nph_sphere.txt index ba3b2f6c06..8b7639c4c6 100644 --- a/doc/src/fix_nph_sphere.txt +++ b/doc/src/fix_nph_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nphug.txt b/doc/src/fix_nphug.txt index 1276a5697d..0bd5153152 100644 --- a/doc/src/fix_nphug.txt +++ b/doc/src/fix_nphug.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_npt_asphere.txt b/doc/src/fix_npt_asphere.txt index a21caa1042..9c95a80d33 100644 --- a/doc/src/fix_npt_asphere.txt +++ b/doc/src/fix_npt_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_npt_body.txt b/doc/src/fix_npt_body.txt index 0f678a1b7d..0d2b797299 100644 --- a/doc/src/fix_npt_body.txt +++ b/doc/src/fix_npt_body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_npt_sphere.txt b/doc/src/fix_npt_sphere.txt index 862f95603f..dcb25d1c73 100644 --- a/doc/src/fix_npt_sphere.txt +++ b/doc/src/fix_npt_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve.txt b/doc/src/fix_nve.txt index 8aa4197a60..e446b27397 100644 --- a/doc/src/fix_nve.txt +++ b/doc/src/fix_nve.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_asphere.txt b/doc/src/fix_nve_asphere.txt index b9ee48f9dd..b7fb3e922c 100644 --- a/doc/src/fix_nve_asphere.txt +++ b/doc/src/fix_nve_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_asphere_noforce.txt b/doc/src/fix_nve_asphere_noforce.txt index 164e3db104..e57417bda5 100644 --- a/doc/src/fix_nve_asphere_noforce.txt +++ b/doc/src/fix_nve_asphere_noforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_body.txt b/doc/src/fix_nve_body.txt index 3696425374..d072bfa161 100644 --- a/doc/src/fix_nve_body.txt +++ b/doc/src/fix_nve_body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_dot.txt b/doc/src/fix_nve_dot.txt index 0e0c8f8ecf..1041a248d8 100644 --- a/doc/src/fix_nve_dot.txt +++ b/doc/src/fix_nve_dot.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_dotc_langevin.txt b/doc/src/fix_nve_dotc_langevin.txt index 93d875bca5..68c1b42328 100644 --- a/doc/src/fix_nve_dotc_langevin.txt +++ b/doc/src/fix_nve_dotc_langevin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_eff.txt b/doc/src/fix_nve_eff.txt index 608e5e12ad..7343ddc429 100644 --- a/doc/src/fix_nve_eff.txt +++ b/doc/src/fix_nve_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_limit.txt b/doc/src/fix_nve_limit.txt index ffaffd59b7..8c8c66a0da 100644 --- a/doc/src/fix_nve_limit.txt +++ b/doc/src/fix_nve_limit.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_line.txt b/doc/src/fix_nve_line.txt index a919e648e1..dd5101489b 100644 --- a/doc/src/fix_nve_line.txt +++ b/doc/src/fix_nve_line.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_manifold_rattle.txt b/doc/src/fix_nve_manifold_rattle.txt index 89922ea80d..b333d093fb 100644 --- a/doc/src/fix_nve_manifold_rattle.txt +++ b/doc/src/fix_nve_manifold_rattle.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_noforce.txt b/doc/src/fix_nve_noforce.txt index c1a4f76eaf..da8d16bbb7 100644 --- a/doc/src/fix_nve_noforce.txt +++ b/doc/src/fix_nve_noforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_sphere.txt b/doc/src/fix_nve_sphere.txt index 36c4178de9..6e259bdb8e 100644 --- a/doc/src/fix_nve_sphere.txt +++ b/doc/src/fix_nve_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_spin.txt b/doc/src/fix_nve_spin.txt index f4b38c270b..e31185bc88 100644 --- a/doc/src/fix_nve_spin.txt +++ b/doc/src/fix_nve_spin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_tri.txt b/doc/src/fix_nve_tri.txt index 9c03eb872a..ebdda19e36 100644 --- a/doc/src/fix_nve_tri.txt +++ b/doc/src/fix_nve_tri.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nvk.txt b/doc/src/fix_nvk.txt index 2106ee5235..e3189f8e8a 100644 --- a/doc/src/fix_nvk.txt +++ b/doc/src/fix_nvk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nvt_asphere.txt b/doc/src/fix_nvt_asphere.txt index 031c60e4be..7b97637175 100644 --- a/doc/src/fix_nvt_asphere.txt +++ b/doc/src/fix_nvt_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nvt_body.txt b/doc/src/fix_nvt_body.txt index 80de7fd7c3..4493a89277 100644 --- a/doc/src/fix_nvt_body.txt +++ b/doc/src/fix_nvt_body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nvt_manifold_rattle.txt b/doc/src/fix_nvt_manifold_rattle.txt index 4261f9a4db..1b4ad79166 100644 --- a/doc/src/fix_nvt_manifold_rattle.txt +++ b/doc/src/fix_nvt_manifold_rattle.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nvt_sllod.txt b/doc/src/fix_nvt_sllod.txt index bb3c092939..9eb5065369 100644 --- a/doc/src/fix_nvt_sllod.txt +++ b/doc/src/fix_nvt_sllod.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nvt_sllod_eff.txt b/doc/src/fix_nvt_sllod_eff.txt index 408eb1da01..0200d5cb00 100644 --- a/doc/src/fix_nvt_sllod_eff.txt +++ b/doc/src/fix_nvt_sllod_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nvt_sphere.txt b/doc/src/fix_nvt_sphere.txt index 897d5606d7..a87e4abe67 100644 --- a/doc/src/fix_nvt_sphere.txt +++ b/doc/src/fix_nvt_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_oneway.txt b/doc/src/fix_oneway.txt index d9217ab14b..433ceb50f2 100644 --- a/doc/src/fix_oneway.txt +++ b/doc/src/fix_oneway.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_orient.txt b/doc/src/fix_orient.txt index c57cccd322..7552bea8c5 100644 --- a/doc/src/fix_orient.txt +++ b/doc/src/fix_orient.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_phonon.txt b/doc/src/fix_phonon.txt index 63df4e6801..30e5864e3d 100644 --- a/doc/src/fix_phonon.txt +++ b/doc/src/fix_phonon.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_pimd.txt b/doc/src/fix_pimd.txt index 8958063d2e..b61b3f3065 100644 --- a/doc/src/fix_pimd.txt +++ b/doc/src/fix_pimd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_planeforce.txt b/doc/src/fix_planeforce.txt index 4a74301066..ffe1952e31 100644 --- a/doc/src/fix_planeforce.txt +++ b/doc/src/fix_planeforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_poems.txt b/doc/src/fix_poems.txt index 0690923b45..1a79c2a048 100644 --- a/doc/src/fix_poems.txt +++ b/doc/src/fix_poems.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_pour.txt b/doc/src/fix_pour.txt index 4b86405522..e58d8ebc3a 100644 --- a/doc/src/fix_pour.txt +++ b/doc/src/fix_pour.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_precession_spin.txt b/doc/src/fix_precession_spin.txt index bc18fa0e8c..fafe78448b 100644 --- a/doc/src/fix_precession_spin.txt +++ b/doc/src/fix_precession_spin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_press_berendsen.txt b/doc/src/fix_press_berendsen.txt index 0e41abd1f8..7f47a29ba3 100644 --- a/doc/src/fix_press_berendsen.txt +++ b/doc/src/fix_press_berendsen.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_print.txt b/doc/src/fix_print.txt index f7a7b333c4..d23c1103d3 100644 --- a/doc/src/fix_print.txt +++ b/doc/src/fix_print.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_property_atom.txt b/doc/src/fix_property_atom.txt index 624fc5f7df..136ed6c15e 100644 --- a/doc/src/fix_property_atom.txt +++ b/doc/src/fix_property_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_python_invoke.txt b/doc/src/fix_python_invoke.txt index 787940d9eb..5e0c0369a5 100644 --- a/doc/src/fix_python_invoke.txt +++ b/doc/src/fix_python_invoke.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_python_move.txt b/doc/src/fix_python_move.txt index 2f49427a9e..a4e0eb3937 100644 --- a/doc/src/fix_python_move.txt +++ b/doc/src/fix_python_move.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_qbmsst.txt b/doc/src/fix_qbmsst.txt index 56ace85e57..e96bd97f45 100644 --- a/doc/src/fix_qbmsst.txt +++ b/doc/src/fix_qbmsst.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_qeq.txt b/doc/src/fix_qeq.txt index c142d4a06d..27fb613ef9 100644 --- a/doc/src/fix_qeq.txt +++ b/doc/src/fix_qeq.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_qeq_comb.txt b/doc/src/fix_qeq_comb.txt index 0eb38fcae6..99e86df030 100644 --- a/doc/src/fix_qeq_comb.txt +++ b/doc/src/fix_qeq_comb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_qeq_reax.txt b/doc/src/fix_qeq_reax.txt index ea25ddbf57..cf16daf847 100644 --- a/doc/src/fix_qeq_reax.txt +++ b/doc/src/fix_qeq_reax.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_qmmm.txt b/doc/src/fix_qmmm.txt index 5e730ac8af..657ee84181 100644 --- a/doc/src/fix_qmmm.txt +++ b/doc/src/fix_qmmm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_qtb.txt b/doc/src/fix_qtb.txt index 07a6af39ba..5b212934a9 100644 --- a/doc/src/fix_qtb.txt +++ b/doc/src/fix_qtb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_reax_bonds.txt b/doc/src/fix_reax_bonds.txt index 2f7c38f815..49d61f4db8 100644 --- a/doc/src/fix_reax_bonds.txt +++ b/doc/src/fix_reax_bonds.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_reaxc_species.txt b/doc/src/fix_reaxc_species.txt index 4f1249744f..5be1c46230 100644 --- a/doc/src/fix_reaxc_species.txt +++ b/doc/src/fix_reaxc_species.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_recenter.txt b/doc/src/fix_recenter.txt index a2477d11c7..cfac756cd1 100644 --- a/doc/src/fix_recenter.txt +++ b/doc/src/fix_recenter.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_restrain.txt b/doc/src/fix_restrain.txt index b8cc7c0d45..2edc7e3296 100644 --- a/doc/src/fix_restrain.txt +++ b/doc/src/fix_restrain.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_rhok.txt b/doc/src/fix_rhok.txt index 2db920ac4b..68cce694e9 100644 --- a/doc/src/fix_rhok.txt +++ b/doc/src/fix_rhok.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_rigid.txt b/doc/src/fix_rigid.txt index a5f00c16e9..d5e3b01668 100644 --- a/doc/src/fix_rigid.txt +++ b/doc/src/fix_rigid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_rx.txt b/doc/src/fix_rx.txt index aff3303f43..d39e41e922 100644 --- a/doc/src/fix_rx.txt +++ b/doc/src/fix_rx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_saed_vtk.txt b/doc/src/fix_saed_vtk.txt index 814e17b8e9..60708cd696 100644 --- a/doc/src/fix_saed_vtk.txt +++ b/doc/src/fix_saed_vtk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_setforce.txt b/doc/src/fix_setforce.txt index c6a01e5492..14fceb7b49 100644 --- a/doc/src/fix_setforce.txt +++ b/doc/src/fix_setforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_shake.txt b/doc/src/fix_shake.txt index 9297bcc87a..ea38de41cd 100644 --- a/doc/src/fix_shake.txt +++ b/doc/src/fix_shake.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_shardlow.txt b/doc/src/fix_shardlow.txt index 6d14346334..33db2bf7cc 100644 --- a/doc/src/fix_shardlow.txt +++ b/doc/src/fix_shardlow.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd.txt b/doc/src/fix_smd.txt index e9403b22cc..2f083dafc3 100644 --- a/doc/src/fix_smd.txt +++ b/doc/src/fix_smd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd_adjust_dt.txt b/doc/src/fix_smd_adjust_dt.txt index 86b7363300..740b10559d 100644 --- a/doc/src/fix_smd_adjust_dt.txt +++ b/doc/src/fix_smd_adjust_dt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd_integrate_tlsph.txt b/doc/src/fix_smd_integrate_tlsph.txt index 17c9c0f400..cd676a51ce 100644 --- a/doc/src/fix_smd_integrate_tlsph.txt +++ b/doc/src/fix_smd_integrate_tlsph.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd_integrate_ulsph.txt b/doc/src/fix_smd_integrate_ulsph.txt index 28e38c7f97..7f16b4b7ce 100644 --- a/doc/src/fix_smd_integrate_ulsph.txt +++ b/doc/src/fix_smd_integrate_ulsph.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd_move_triangulated_surface.txt b/doc/src/fix_smd_move_triangulated_surface.txt index 2cba001267..aeabf18768 100644 --- a/doc/src/fix_smd_move_triangulated_surface.txt +++ b/doc/src/fix_smd_move_triangulated_surface.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd_setvel.txt b/doc/src/fix_smd_setvel.txt index d64726d9b3..6634751d6a 100644 --- a/doc/src/fix_smd_setvel.txt +++ b/doc/src/fix_smd_setvel.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd_wall_surface.txt b/doc/src/fix_smd_wall_surface.txt index feb65b2312..a19b2c4cfb 100644 --- a/doc/src/fix_smd_wall_surface.txt +++ b/doc/src/fix_smd_wall_surface.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_spring.txt b/doc/src/fix_spring.txt index 047e5a6797..690fc3e67c 100644 --- a/doc/src/fix_spring.txt +++ b/doc/src/fix_spring.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_spring_chunk.txt b/doc/src/fix_spring_chunk.txt index e46f299771..9d4e8afd09 100644 --- a/doc/src/fix_spring_chunk.txt +++ b/doc/src/fix_spring_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_spring_rg.txt b/doc/src/fix_spring_rg.txt index 4afdc02d5a..b252163958 100644 --- a/doc/src/fix_spring_rg.txt +++ b/doc/src/fix_spring_rg.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_spring_self.txt b/doc/src/fix_spring_self.txt index e5b5c3dfd0..0ac1d5eecb 100644 --- a/doc/src/fix_spring_self.txt +++ b/doc/src/fix_spring_self.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_srd.txt b/doc/src/fix_srd.txt index 7c5179fb3f..893557b9ac 100644 --- a/doc/src/fix_srd.txt +++ b/doc/src/fix_srd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_store_force.txt b/doc/src/fix_store_force.txt index 93437c85b6..33ebc962d5 100644 --- a/doc/src/fix_store_force.txt +++ b/doc/src/fix_store_force.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_store_state.txt b/doc/src/fix_store_state.txt index dee8070bbd..df05adc5b9 100644 --- a/doc/src/fix_store_state.txt +++ b/doc/src/fix_store_state.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_surface_global.txt b/doc/src/fix_surface_global.txt index b470babab7..ade64d2056 100644 --- a/doc/src/fix_surface_global.txt +++ b/doc/src/fix_surface_global.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_temp_berendsen.txt b/doc/src/fix_temp_berendsen.txt index 9092bbd30e..c1f1626782 100644 --- a/doc/src/fix_temp_berendsen.txt +++ b/doc/src/fix_temp_berendsen.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_temp_csvr.txt b/doc/src/fix_temp_csvr.txt index 6ce6ad7d9d..e50f821bfe 100644 --- a/doc/src/fix_temp_csvr.txt +++ b/doc/src/fix_temp_csvr.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_temp_rescale.txt b/doc/src/fix_temp_rescale.txt index 89f1777e36..5640317f1c 100644 --- a/doc/src/fix_temp_rescale.txt +++ b/doc/src/fix_temp_rescale.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_temp_rescale_eff.txt b/doc/src/fix_temp_rescale_eff.txt index 8a79dc3275..0e08e4f1e8 100644 --- a/doc/src/fix_temp_rescale_eff.txt +++ b/doc/src/fix_temp_rescale_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_tfmc.txt b/doc/src/fix_tfmc.txt index 3c81d62ee0..ddfa462619 100644 --- a/doc/src/fix_tfmc.txt +++ b/doc/src/fix_tfmc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_thermal_conductivity.txt b/doc/src/fix_thermal_conductivity.txt index 2e10a89738..86fc6f2c72 100644 --- a/doc/src/fix_thermal_conductivity.txt +++ b/doc/src/fix_thermal_conductivity.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ti_spring.txt b/doc/src/fix_ti_spring.txt index b116d8e8a3..afe5373220 100644 --- a/doc/src/fix_ti_spring.txt +++ b/doc/src/fix_ti_spring.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_tmd.txt b/doc/src/fix_tmd.txt index e1815e61d3..c2541692f5 100644 --- a/doc/src/fix_tmd.txt +++ b/doc/src/fix_tmd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ttm.txt b/doc/src/fix_ttm.txt index d83118d427..6001def581 100644 --- a/doc/src/fix_ttm.txt +++ b/doc/src/fix_ttm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_tune_kspace.txt b/doc/src/fix_tune_kspace.txt index 60a34a26c9..b4e8472591 100644 --- a/doc/src/fix_tune_kspace.txt +++ b/doc/src/fix_tune_kspace.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_vector.txt b/doc/src/fix_vector.txt index 69c999fd1a..e1bfbe5738 100644 --- a/doc/src/fix_vector.txt +++ b/doc/src/fix_vector.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_viscosity.txt b/doc/src/fix_viscosity.txt index 8d73deb7c5..934da3efdd 100644 --- a/doc/src/fix_viscosity.txt +++ b/doc/src/fix_viscosity.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_viscous.txt b/doc/src/fix_viscous.txt index 7ff517aec1..c5a3ede0b2 100644 --- a/doc/src/fix_viscous.txt +++ b/doc/src/fix_viscous.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall.txt b/doc/src/fix_wall.txt index fcd920934f..2ac59d9588 100644 --- a/doc/src/fix_wall.txt +++ b/doc/src/fix_wall.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall_body_polygon.txt b/doc/src/fix_wall_body_polygon.txt index ebd25c2bbc..0946a85131 100644 --- a/doc/src/fix_wall_body_polygon.txt +++ b/doc/src/fix_wall_body_polygon.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall_body_polyhedron.txt b/doc/src/fix_wall_body_polyhedron.txt index d3d8bc35a3..407cf9fb33 100644 --- a/doc/src/fix_wall_body_polyhedron.txt +++ b/doc/src/fix_wall_body_polyhedron.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall_ees.txt b/doc/src/fix_wall_ees.txt index f141a19405..ae16ca40d2 100644 --- a/doc/src/fix_wall_ees.txt +++ b/doc/src/fix_wall_ees.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall_gran.txt b/doc/src/fix_wall_gran.txt index 9796c39459..6c2769fc12 100644 --- a/doc/src/fix_wall_gran.txt +++ b/doc/src/fix_wall_gran.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall_gran_region.txt b/doc/src/fix_wall_gran_region.txt index 908bcc3941..187214c1a3 100644 --- a/doc/src/fix_wall_gran_region.txt +++ b/doc/src/fix_wall_gran_region.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall_piston.txt b/doc/src/fix_wall_piston.txt index 26018329eb..eecf69ebf2 100644 --- a/doc/src/fix_wall_piston.txt +++ b/doc/src/fix_wall_piston.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall_reflect.txt b/doc/src/fix_wall_reflect.txt index 2956046e20..78be84eb63 100644 --- a/doc/src/fix_wall_reflect.txt +++ b/doc/src/fix_wall_reflect.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall_region.txt b/doc/src/fix_wall_region.txt index 8b3b3ff173..559a2f0d89 100644 --- a/doc/src/fix_wall_region.txt +++ b/doc/src/fix_wall_region.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall_srd.txt b/doc/src/fix_wall_srd.txt index 3a8c2e41cd..3a50c45ab7 100644 --- a/doc/src/fix_wall_srd.txt +++ b/doc/src/fix_wall_srd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/group.txt b/doc/src/group.txt index dddb0459e3..8472677372 100644 --- a/doc/src/group.txt +++ b/doc/src/group.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/group2ndx.txt b/doc/src/group2ndx.txt index 94d188399b..242d6a69a4 100644 --- a/doc/src/group2ndx.txt +++ b/doc/src/group2ndx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/if.txt b/doc/src/if.txt index 52fad5aea7..513e451034 100644 --- a/doc/src/if.txt +++ b/doc/src/if.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -65,9 +65,9 @@ above. NOTE: If a command itself requires a quoted argument (e.g. a "print"_print.html command), then double and single quotes can be used and nested in the usual manner, as in the examples above and below. -See "Section 3.2"_Section_commands.html#cmd_2 of the manual for -more details on using quotes in arguments. Only one of level of -nesting is allowed, but that should be sufficient for most use cases. +The "Commands parse"_Commands_parse.html doc page has more details on +using quotes in arguments. Only one of level of nesting is allowed, +but that should be sufficient for most use cases. Note that by using the line continuation character "&", the if command can be spread across many lines, though it is still a single command: diff --git a/doc/src/improper_class2.txt b/doc/src/improper_class2.txt index ef2abf5091..c38f73c64d 100644 --- a/doc/src/improper_class2.txt +++ b/doc/src/improper_class2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_coeff.txt b/doc/src/improper_coeff.txt index 5c01a23ae9..8ed65f9535 100644 --- a/doc/src/improper_coeff.txt +++ b/doc/src/improper_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -67,9 +67,9 @@ the style to display the formula it computes and coefficients specified by the associated "improper_coeff"_improper_coeff.html command. Note that there are also additional improper styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the improper section of -"this page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +improper styles is on the "Commands bond"_Commands_bond.html#improper +doc page. "improper_style none"_improper_none.html - turn off improper interactions "improper_style hybrid"_improper_hybrid.html - define multiple styles of improper interactions :ul diff --git a/doc/src/improper_cossq.txt b/doc/src/improper_cossq.txt index 22ba990ba4..04aa45255c 100644 --- a/doc/src/improper_cossq.txt +++ b/doc/src/improper_cossq.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_cvff.txt b/doc/src/improper_cvff.txt index 1662d93b14..d01faf2885 100644 --- a/doc/src/improper_cvff.txt +++ b/doc/src/improper_cvff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_distance.txt b/doc/src/improper_distance.txt index 7d49d17c97..93235fe601 100644 --- a/doc/src/improper_distance.txt +++ b/doc/src/improper_distance.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_fourier.txt b/doc/src/improper_fourier.txt index 99132b8931..78cc1b3f76 100644 --- a/doc/src/improper_fourier.txt +++ b/doc/src/improper_fourier.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_harmonic.txt b/doc/src/improper_harmonic.txt index f37338e468..f398dc425f 100644 --- a/doc/src/improper_harmonic.txt +++ b/doc/src/improper_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_hybrid.txt b/doc/src/improper_hybrid.txt index 0c2beaef18..42afbe8577 100644 --- a/doc/src/improper_hybrid.txt +++ b/doc/src/improper_hybrid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_inversion_harmonic.txt b/doc/src/improper_inversion_harmonic.txt index 34683ca2bb..2c0f2f0af8 100644 --- a/doc/src/improper_inversion_harmonic.txt +++ b/doc/src/improper_inversion_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_none.txt b/doc/src/improper_none.txt index af9964c743..f97af101fc 100644 --- a/doc/src/improper_none.txt +++ b/doc/src/improper_none.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_ring.txt b/doc/src/improper_ring.txt index 84c35f9f5c..60bbca170a 100644 --- a/doc/src/improper_ring.txt +++ b/doc/src/improper_ring.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_style.txt b/doc/src/improper_style.txt index 861701590f..3d29b28ec4 100644 --- a/doc/src/improper_style.txt +++ b/doc/src/improper_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -60,9 +60,9 @@ specified by the associated "improper_coeff"_improper_coeff.html command. Note that there are also additional improper styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the improper section of -"this page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +improper styles is on the "Commands bond"_Commands_bond.html#improper +doc page. "improper_style none"_improper_none.html - turn off improper interactions "improper_style zero"_improper_zero.html - topology but no interactions diff --git a/doc/src/improper_umbrella.txt b/doc/src/improper_umbrella.txt index 59fee0a664..b05cf4b181 100644 --- a/doc/src/improper_umbrella.txt +++ b/doc/src/improper_umbrella.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_zero.txt b/doc/src/improper_zero.txt index 2a298573d5..f3f3485b57 100644 --- a/doc/src/improper_zero.txt +++ b/doc/src/improper_zero.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/include.txt b/doc/src/include.txt index 95d08db352..c114056313 100644 --- a/doc/src/include.txt +++ b/doc/src/include.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/info.txt b/doc/src/info.txt index d5b5bd97b9..99211de4fb 100644 --- a/doc/src/info.txt +++ b/doc/src/info.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/jump.txt b/doc/src/jump.txt index 4e3799f7b1..b5afeb6559 100644 --- a/doc/src/jump.txt +++ b/doc/src/jump.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index 37c8c5b1d7..dd7b1e8dea 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/kspace_style.txt b/doc/src/kspace_style.txt index fa717b70ef..55ad4ab610 100644 --- a/doc/src/kspace_style.txt +++ b/doc/src/kspace_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/label.txt b/doc/src/label.txt index c6a573141b..adab44188c 100644 --- a/doc/src/label.txt +++ b/doc/src/label.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/lammps.book b/doc/src/lammps.book index a25d6e0629..9cb2d8cd6c 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -9,7 +9,17 @@ Intro_opensource.html Intro_authors.html Intro_website.html Section_start.html -Section_commands.html +Commands.html +Commands_input.html +Commands_parse.html +Commands_structure.html +Commands_category.html +Commands_all.html +Commands_fix.html +Commands_compute.html +Commands_pair.html +Commands_bond.html +Commands_kspace.html Packages.html Packages_standard.html Packages_user.html diff --git a/doc/src/lattice.txt b/doc/src/lattice.txt index 7a90df1f5d..6f16dc5432 100644 --- a/doc/src/lattice.txt +++ b/doc/src/lattice.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/log.txt b/doc/src/log.txt index 92bb12e6db..7603768519 100644 --- a/doc/src/log.txt +++ b/doc/src/log.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/manifolds.txt b/doc/src/manifolds.txt index 1013d8fab6..194a755868 100644 --- a/doc/src/manifolds.txt +++ b/doc/src/manifolds.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/mass.txt b/doc/src/mass.txt index 4b75132ccf..c693963044 100644 --- a/doc/src/mass.txt +++ b/doc/src/mass.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/min_modify.txt b/doc/src/min_modify.txt index 73d142f5fa..9408eea167 100644 --- a/doc/src/min_modify.txt +++ b/doc/src/min_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/min_style.txt b/doc/src/min_style.txt index 245ac5864c..4948a34864 100644 --- a/doc/src/min_style.txt +++ b/doc/src/min_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line min_style command :h3 diff --git a/doc/src/minimize.txt b/doc/src/minimize.txt index a3f2c5d0bf..910fc7f821 100644 --- a/doc/src/minimize.txt +++ b/doc/src/minimize.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/molecule.txt b/doc/src/molecule.txt index b2ad547cf0..88c6292d8b 100644 --- a/doc/src/molecule.txt +++ b/doc/src/molecule.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/neb.txt b/doc/src/neb.txt index 5c6053fca0..fbd77ee329 100644 --- a/doc/src/neb.txt +++ b/doc/src/neb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/neigh_modify.txt b/doc/src/neigh_modify.txt index c4544cb29b..6c4218cff5 100644 --- a/doc/src/neigh_modify.txt +++ b/doc/src/neigh_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/neighbor.txt b/doc/src/neighbor.txt index 062f79a5bb..7c7e7b05e5 100644 --- a/doc/src/neighbor.txt +++ b/doc/src/neighbor.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/newton.txt b/doc/src/newton.txt index a3e7f4fa91..fd7b536920 100644 --- a/doc/src/newton.txt +++ b/doc/src/newton.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/next.txt b/doc/src/next.txt index 08f73b896c..5a0b30b2a7 100644 --- a/doc/src/next.txt +++ b/doc/src/next.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/package.txt b/doc/src/package.txt index 81e1db9bd8..c2e7345bb7 100644 --- a/doc/src/package.txt +++ b/doc/src/package.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_adp.txt b/doc/src/pair_adp.txt index 1ba59b7732..382a97ecea 100644 --- a/doc/src/pair_adp.txt +++ b/doc/src/pair_adp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_agni.txt b/doc/src/pair_agni.txt index 352e00249a..34f9900139 100644 --- a/doc/src/pair_agni.txt +++ b/doc/src/pair_agni.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_airebo.txt b/doc/src/pair_airebo.txt index b5add21f24..94a692226d 100644 --- a/doc/src/pair_airebo.txt +++ b/doc/src/pair_airebo.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_awpmd.txt b/doc/src/pair_awpmd.txt index fe0e3c952a..ec87101d0d 100644 --- a/doc/src/pair_awpmd.txt +++ b/doc/src/pair_awpmd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_beck.txt b/doc/src/pair_beck.txt index 1aca4b4f9a..ca4186e27b 100644 --- a/doc/src/pair_beck.txt +++ b/doc/src/pair_beck.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_body_nparticle.txt b/doc/src/pair_body_nparticle.txt index 78a9f2bb38..9fb88102eb 100644 --- a/doc/src/pair_body_nparticle.txt +++ b/doc/src/pair_body_nparticle.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index 19807fbe39..e724874032 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index d70a86f881..0f8548d98e 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_bop.txt b/doc/src/pair_bop.txt index 2a611e4bd0..654a7eb0b3 100644 --- a/doc/src/pair_bop.txt +++ b/doc/src/pair_bop.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_born.txt b/doc/src/pair_born.txt index 143549cf2d..c408de6db6 100644 --- a/doc/src/pair_born.txt +++ b/doc/src/pair_born.txt @@ -3,7 +3,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_brownian.txt b/doc/src/pair_brownian.txt index 8d30f0cec6..eaff85cbbc 100644 --- a/doc/src/pair_brownian.txt +++ b/doc/src/pair_brownian.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_buck.txt b/doc/src/pair_buck.txt index 2483a6c9e2..cc782c11cf 100644 --- a/doc/src/pair_buck.txt +++ b/doc/src/pair_buck.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_buck6d_coul_gauss.txt b/doc/src/pair_buck6d_coul_gauss.txt index 879972772b..485c35c6b2 100644 --- a/doc/src/pair_buck6d_coul_gauss.txt +++ b/doc/src/pair_buck6d_coul_gauss.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_buck_long.txt b/doc/src/pair_buck_long.txt index 94bf6a2d7c..551204f1a7 100644 --- a/doc/src/pair_buck_long.txt +++ b/doc/src/pair_buck_long.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_charmm.txt b/doc/src/pair_charmm.txt index af20661bbd..39c6f29b04 100644 --- a/doc/src/pair_charmm.txt +++ b/doc/src/pair_charmm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_class2.txt b/doc/src/pair_class2.txt index e62971a645..104c51474c 100644 --- a/doc/src/pair_class2.txt +++ b/doc/src/pair_class2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_coeff.txt b/doc/src/pair_coeff.txt index fe9238f423..63f85f23d5 100644 --- a/doc/src/pair_coeff.txt +++ b/doc/src/pair_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -111,9 +111,8 @@ Windows: :line The alphabetic list of pair styles defined in LAMMPS is given on the -"pair_style"_pair_style.html doc page. They are also given in more -compact form in the pair section of "this -page"_Section_commands.html#cmd_5. +"pair_style"_pair_style.html doc page. They are also listed in more +compact form on the "Commands pair"_Commands_pair.html doc page. Click on the style to display the formula it computes, arguments specified in the pair_style command, and coefficients specified by the @@ -121,15 +120,15 @@ associated "pair_coeff"_pair_coeff.html command. Note that there are also additional pair styles (not listed on the "pair_style"_pair_style.html doc page) submitted by users which are -included in the LAMMPS distribution. The list of these with links to -the individual styles are given in the pair section of "this -page"_Section_commands.html#cmd_5. +included in the LAMMPS distribution. The full list of all pair styles +is on the "Commands pair"_Commands_pair.html doc page. There are also additional accelerated pair styles (not listed on the "pair_style"_pair_style.html doc page) included in the LAMMPS -distribution for faster performance on CPUs and GPUs. The list of -these with links to the individual styles are given in the pair -section of "this page"_Section_commands.html#cmd_5. +distribution for faster performance on CPUs, GPUs, and KNLs. The +individual style names on the "Commands pair"_Commands_pair.html doc +page are followed by one or more of (g,i,k,o,t) to indicate which +accerlerated styles exist. :line diff --git a/doc/src/pair_colloid.txt b/doc/src/pair_colloid.txt index a7bb0db08a..08540cfee0 100644 --- a/doc/src/pair_colloid.txt +++ b/doc/src/pair_colloid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_comb.txt b/doc/src/pair_comb.txt index 6949ca50c2..fc4cddbbae 100644 --- a/doc/src/pair_comb.txt +++ b/doc/src/pair_comb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_coul.txt b/doc/src/pair_coul.txt index e2bc78a2e6..2fd9445785 100644 --- a/doc/src/pair_coul.txt +++ b/doc/src/pair_coul.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_coul_diel.txt b/doc/src/pair_coul_diel.txt index f651cb4b5e..14932c4835 100644 --- a/doc/src/pair_coul_diel.txt +++ b/doc/src/pair_coul_diel.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_coul_shield.txt b/doc/src/pair_coul_shield.txt index 19f69688d5..029e6e5b3b 100644 --- a/doc/src/pair_coul_shield.txt +++ b/doc/src/pair_coul_shield.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_cs.txt b/doc/src/pair_cs.txt index 86eb02b0d7..6540c4b8f0 100644 --- a/doc/src/pair_cs.txt +++ b/doc/src/pair_cs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_dipole.txt b/doc/src/pair_dipole.txt index e7d196d599..1d8abc4521 100644 --- a/doc/src/pair_dipole.txt +++ b/doc/src/pair_dipole.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_dpd.txt b/doc/src/pair_dpd.txt index a36029ea63..1b636795d9 100644 --- a/doc/src/pair_dpd.txt +++ b/doc/src/pair_dpd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_dpd_fdt.txt b/doc/src/pair_dpd_fdt.txt index 129d3c84af..0d180ba068 100644 --- a/doc/src/pair_dpd_fdt.txt +++ b/doc/src/pair_dpd_fdt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_dsmc.txt b/doc/src/pair_dsmc.txt index 9e24100ab7..2478a96d5f 100644 --- a/doc/src/pair_dsmc.txt +++ b/doc/src/pair_dsmc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_eam.txt b/doc/src/pair_eam.txt index b3c770179f..361dacb703 100644 --- a/doc/src/pair_eam.txt +++ b/doc/src/pair_eam.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_edip.txt b/doc/src/pair_edip.txt index f0d1927812..cce564856e 100644 --- a/doc/src/pair_edip.txt +++ b/doc/src/pair_edip.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_eff.txt b/doc/src/pair_eff.txt index ee7dc99932..a55860297e 100644 --- a/doc/src/pair_eff.txt +++ b/doc/src/pair_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_eim.txt b/doc/src/pair_eim.txt index 7f94d919f2..6490a859c1 100644 --- a/doc/src/pair_eim.txt +++ b/doc/src/pair_eim.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_exp6_rx.txt b/doc/src/pair_exp6_rx.txt index dec660fd1d..08ab1cf3c9 100644 --- a/doc/src/pair_exp6_rx.txt +++ b/doc/src/pair_exp6_rx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_extep.txt b/doc/src/pair_extep.txt index 9a784e2501..3acad1132d 100644 --- a/doc/src/pair_extep.txt +++ b/doc/src/pair_extep.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_gauss.txt b/doc/src/pair_gauss.txt index 7716f89f17..9662a4f29c 100644 --- a/doc/src/pair_gauss.txt +++ b/doc/src/pair_gauss.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_gayberne.txt b/doc/src/pair_gayberne.txt index e9a98a0b84..af41f6879e 100644 --- a/doc/src/pair_gayberne.txt +++ b/doc/src/pair_gayberne.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_gran.txt b/doc/src/pair_gran.txt index 86b04f96de..55b00a172f 100644 --- a/doc/src/pair_gran.txt +++ b/doc/src/pair_gran.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_gromacs.txt b/doc/src/pair_gromacs.txt index 7daf805e2b..9f34ac8c43 100644 --- a/doc/src/pair_gromacs.txt +++ b/doc/src/pair_gromacs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_gw.txt b/doc/src/pair_gw.txt index 8f1251cf1f..809ff008bc 100644 --- a/doc/src/pair_gw.txt +++ b/doc/src/pair_gw.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_hbond_dreiding.txt b/doc/src/pair_hbond_dreiding.txt index d641cb73ad..60b0b02174 100644 --- a/doc/src/pair_hbond_dreiding.txt +++ b/doc/src/pair_hbond_dreiding.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_hybrid.txt b/doc/src/pair_hybrid.txt index 9503256d26..9b36109c27 100644 --- a/doc/src/pair_hybrid.txt +++ b/doc/src/pair_hybrid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_ilp_graphene_hbn.txt b/doc/src/pair_ilp_graphene_hbn.txt index dbc9c458e2..9c9304c4a7 100644 --- a/doc/src/pair_ilp_graphene_hbn.txt +++ b/doc/src/pair_ilp_graphene_hbn.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_kim.txt b/doc/src/pair_kim.txt index fc2c1405af..889c1e892f 100644 --- a/doc/src/pair_kim.txt +++ b/doc/src/pair_kim.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_kolmogorov_crespi_full.txt b/doc/src/pair_kolmogorov_crespi_full.txt index a16d123b89..8fc6bbff49 100644 --- a/doc/src/pair_kolmogorov_crespi_full.txt +++ b/doc/src/pair_kolmogorov_crespi_full.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_kolmogorov_crespi_z.txt b/doc/src/pair_kolmogorov_crespi_z.txt index 97f132eacd..7dad2e3701 100644 --- a/doc/src/pair_kolmogorov_crespi_z.txt +++ b/doc/src/pair_kolmogorov_crespi_z.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lcbop.txt b/doc/src/pair_lcbop.txt index 148a1d47a0..ddf8551d56 100644 --- a/doc/src/pair_lcbop.txt +++ b/doc/src/pair_lcbop.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_line_lj.txt b/doc/src/pair_line_lj.txt index 44cfeb48e9..c2c6beb97f 100644 --- a/doc/src/pair_line_lj.txt +++ b/doc/src/pair_line_lj.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_list.txt b/doc/src/pair_list.txt index 653e8b0c2d..023cc0be4f 100644 --- a/doc/src/pair_list.txt +++ b/doc/src/pair_list.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lj.txt b/doc/src/pair_lj.txt index a0f7effbb1..a55cb348d7 100644 --- a/doc/src/pair_lj.txt +++ b/doc/src/pair_lj.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lj96.txt b/doc/src/pair_lj96.txt index a0a9971474..7c68e26ace 100644 --- a/doc/src/pair_lj96.txt +++ b/doc/src/pair_lj96.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lj_cubic.txt b/doc/src/pair_lj_cubic.txt index c4e2af5062..d04a3d8b9d 100644 --- a/doc/src/pair_lj_cubic.txt +++ b/doc/src/pair_lj_cubic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lj_expand.txt b/doc/src/pair_lj_expand.txt index c156fefef2..3e9996da4d 100644 --- a/doc/src/pair_lj_expand.txt +++ b/doc/src/pair_lj_expand.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lj_long.txt b/doc/src/pair_lj_long.txt index 0dd55b7e32..1ba3610f86 100644 --- a/doc/src/pair_lj_long.txt +++ b/doc/src/pair_lj_long.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lj_smooth.txt b/doc/src/pair_lj_smooth.txt index 653520966b..575c023579 100644 --- a/doc/src/pair_lj_smooth.txt +++ b/doc/src/pair_lj_smooth.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lj_smooth_linear.txt b/doc/src/pair_lj_smooth_linear.txt index aebde2e653..0fab768b8f 100644 --- a/doc/src/pair_lj_smooth_linear.txt +++ b/doc/src/pair_lj_smooth_linear.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lj_soft.txt b/doc/src/pair_lj_soft.txt index 7add9f623d..d10fcd0472 100644 --- a/doc/src/pair_lj_soft.txt +++ b/doc/src/pair_lj_soft.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lubricate.txt b/doc/src/pair_lubricate.txt index 2a16aa2a9d..e9a0a0d291 100644 --- a/doc/src/pair_lubricate.txt +++ b/doc/src/pair_lubricate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lubricateU.txt b/doc/src/pair_lubricateU.txt index 720a8539b8..6b74c208bf 100644 --- a/doc/src/pair_lubricateU.txt +++ b/doc/src/pair_lubricateU.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_mdf.txt b/doc/src/pair_mdf.txt index ca06f1bf8e..e5a8cac845 100644 --- a/doc/src/pair_mdf.txt +++ b/doc/src/pair_mdf.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_meam.txt b/doc/src/pair_meam.txt index c7449428bd..45f88f0bbe 100644 --- a/doc/src/pair_meam.txt +++ b/doc/src/pair_meam.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_meam_spline.txt b/doc/src/pair_meam_spline.txt index 74242e32b9..9615512041 100644 --- a/doc/src/pair_meam_spline.txt +++ b/doc/src/pair_meam_spline.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_meam_sw_spline.txt b/doc/src/pair_meam_sw_spline.txt index fa731799dd..ba0953a17c 100644 --- a/doc/src/pair_meam_sw_spline.txt +++ b/doc/src/pair_meam_sw_spline.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_meso.txt b/doc/src/pair_meso.txt index bcdf717d68..ad3880e642 100644 --- a/doc/src/pair_meso.txt +++ b/doc/src/pair_meso.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_mgpt.txt b/doc/src/pair_mgpt.txt index f8b0c9f071..09fe611686 100644 --- a/doc/src/pair_mgpt.txt +++ b/doc/src/pair_mgpt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_mie.txt b/doc/src/pair_mie.txt index ad602db9f1..818e37272b 100644 --- a/doc/src/pair_mie.txt +++ b/doc/src/pair_mie.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_modify.txt b/doc/src/pair_modify.txt index 34dbb5bc3d..c043fde5a7 100644 --- a/doc/src/pair_modify.txt +++ b/doc/src/pair_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_momb.txt b/doc/src/pair_momb.txt index 77c4f184d9..545b650f75 100644 --- a/doc/src/pair_momb.txt +++ b/doc/src/pair_momb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_morse.txt b/doc/src/pair_morse.txt index 34876011a1..85a42986ec 100644 --- a/doc/src/pair_morse.txt +++ b/doc/src/pair_morse.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_multi_lucy.txt b/doc/src/pair_multi_lucy.txt index 38fd1ede4a..31d52a58c8 100644 --- a/doc/src/pair_multi_lucy.txt +++ b/doc/src/pair_multi_lucy.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_multi_lucy_rx.txt b/doc/src/pair_multi_lucy_rx.txt index b043030907..e09dde3f80 100644 --- a/doc/src/pair_multi_lucy_rx.txt +++ b/doc/src/pair_multi_lucy_rx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_nb3b_harmonic.txt b/doc/src/pair_nb3b_harmonic.txt index e6e103f517..720b9ea2a1 100644 --- a/doc/src/pair_nb3b_harmonic.txt +++ b/doc/src/pair_nb3b_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_nm.txt b/doc/src/pair_nm.txt index 08c3393993..355bfd5573 100644 --- a/doc/src/pair_nm.txt +++ b/doc/src/pair_nm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_none.txt b/doc/src/pair_none.txt index f4e9525198..960dc05d97 100644 --- a/doc/src/pair_none.txt +++ b/doc/src/pair_none.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_oxdna.txt b/doc/src/pair_oxdna.txt index f272d15a86..5ec9915297 100644 --- a/doc/src/pair_oxdna.txt +++ b/doc/src/pair_oxdna.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_oxdna2.txt b/doc/src/pair_oxdna2.txt index 1b55031b2c..a1d2cfdb7c 100644 --- a/doc/src/pair_oxdna2.txt +++ b/doc/src/pair_oxdna2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_peri.txt b/doc/src/pair_peri.txt index 4327003057..14abd4541e 100644 --- a/doc/src/pair_peri.txt +++ b/doc/src/pair_peri.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_polymorphic.txt b/doc/src/pair_polymorphic.txt index c088e8bb22..eb0c30f249 100644 --- a/doc/src/pair_polymorphic.txt +++ b/doc/src/pair_polymorphic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_python.txt b/doc/src/pair_python.txt index 2f8ed7a27c..1433557e03 100644 --- a/doc/src/pair_python.txt +++ b/doc/src/pair_python.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_quip.txt b/doc/src/pair_quip.txt index 9436b0c4ed..3570a52801 100644 --- a/doc/src/pair_quip.txt +++ b/doc/src/pair_quip.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_reax.txt b/doc/src/pair_reax.txt index 1d13f93706..a3b84955cd 100644 --- a/doc/src/pair_reax.txt +++ b/doc/src/pair_reax.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_reaxc.txt b/doc/src/pair_reaxc.txt index 8d8c7e84e7..ec57548640 100644 --- a/doc/src/pair_reaxc.txt +++ b/doc/src/pair_reaxc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_resquared.txt b/doc/src/pair_resquared.txt index 6ea5c73c0d..6e72408ebc 100644 --- a/doc/src/pair_resquared.txt +++ b/doc/src/pair_resquared.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sdk.txt b/doc/src/pair_sdk.txt index 4cd56bc43d..ccf704b6f7 100644 --- a/doc/src/pair_sdk.txt +++ b/doc/src/pair_sdk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_smd_hertz.txt b/doc/src/pair_smd_hertz.txt index eeaa3387a4..f2d633903a 100644 --- a/doc/src/pair_smd_hertz.txt +++ b/doc/src/pair_smd_hertz.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_smd_tlsph.txt b/doc/src/pair_smd_tlsph.txt index f73acf74ee..3aeaa31553 100644 --- a/doc/src/pair_smd_tlsph.txt +++ b/doc/src/pair_smd_tlsph.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_smd_triangulated_surface.txt b/doc/src/pair_smd_triangulated_surface.txt index c32bf3a22e..65526cfba8 100644 --- a/doc/src/pair_smd_triangulated_surface.txt +++ b/doc/src/pair_smd_triangulated_surface.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_smd_ulsph.txt b/doc/src/pair_smd_ulsph.txt index 268fe78d02..a5bda54d5f 100644 --- a/doc/src/pair_smd_ulsph.txt +++ b/doc/src/pair_smd_ulsph.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_smtbq.txt b/doc/src/pair_smtbq.txt index c8d6b21b3f..c70202c2e1 100644 --- a/doc/src/pair_smtbq.txt +++ b/doc/src/pair_smtbq.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_snap.txt b/doc/src/pair_snap.txt index c3d6e67e82..f9bd8910e4 100644 --- a/doc/src/pair_snap.txt +++ b/doc/src/pair_snap.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_soft.txt b/doc/src/pair_soft.txt index adbfa596c9..374711825b 100644 --- a/doc/src/pair_soft.txt +++ b/doc/src/pair_soft.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_heatconduction.txt b/doc/src/pair_sph_heatconduction.txt index 2387056a1b..d19c28a3cb 100644 --- a/doc/src/pair_sph_heatconduction.txt +++ b/doc/src/pair_sph_heatconduction.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_idealgas.txt b/doc/src/pair_sph_idealgas.txt index 957f901425..a670949a89 100644 --- a/doc/src/pair_sph_idealgas.txt +++ b/doc/src/pair_sph_idealgas.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_lj.txt b/doc/src/pair_sph_lj.txt index ef89c4ad3e..152e6cf8a2 100644 --- a/doc/src/pair_sph_lj.txt +++ b/doc/src/pair_sph_lj.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_rhosum.txt b/doc/src/pair_sph_rhosum.txt index 352e717f76..3cd1c5abb2 100644 --- a/doc/src/pair_sph_rhosum.txt +++ b/doc/src/pair_sph_rhosum.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_taitwater.txt b/doc/src/pair_sph_taitwater.txt index 9177ca80b8..7b9a8188f2 100644 --- a/doc/src/pair_sph_taitwater.txt +++ b/doc/src/pair_sph_taitwater.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_taitwater_morris.txt b/doc/src/pair_sph_taitwater_morris.txt index e6c5a6bb20..02f16d8982 100644 --- a/doc/src/pair_sph_taitwater_morris.txt +++ b/doc/src/pair_sph_taitwater_morris.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_spin_dmi.txt b/doc/src/pair_spin_dmi.txt index a1d0cb2265..375e59fe89 100644 --- a/doc/src/pair_spin_dmi.txt +++ b/doc/src/pair_spin_dmi.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index a4f37a98eb..24eb635b81 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_spin_magelec.txt b/doc/src/pair_spin_magelec.txt index 8ba24c46af..b338fae5dc 100644 --- a/doc/src/pair_spin_magelec.txt +++ b/doc/src/pair_spin_magelec.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_spin_neel.txt b/doc/src/pair_spin_neel.txt index 8551f8d636..0967632ed2 100644 --- a/doc/src/pair_spin_neel.txt +++ b/doc/src/pair_spin_neel.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_srp.txt b/doc/src/pair_srp.txt index e7f1e00d10..e784ac3d17 100644 --- a/doc/src/pair_srp.txt +++ b/doc/src/pair_srp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_style.txt b/doc/src/pair_style.txt index 2763eb3d66..cd39513329 100644 --- a/doc/src/pair_style.txt +++ b/doc/src/pair_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -78,22 +78,22 @@ previously specified pair_coeff values. :line Here is an alphabetic list of pair styles defined in LAMMPS. They are -also given in more compact form in the pair section of "this -page"_Section_commands.html#cmd_5. +also listed in more compact form on the "Commands +pair"_Commands_pair.html doc page. Click on the style to display the formula it computes, arguments specified in the pair_style command, and coefficients specified by the associated "pair_coeff"_pair_coeff.html command. There are also additional pair styles (not listed here) submitted by -users which are included in the LAMMPS distribution. The list of -these with links to the individual styles are given in the pair -section of "this page"_Section_commands.html#cmd_5. +users which are included in the LAMMPS distribution. The full list of +all pair styles is on the "Commands pair"_Commands_pair.html doc page. There are also additional accelerated pair styles (not listed here) -included in the LAMMPS distribution for faster performance on CPUs and -GPUs. The list of these with links to the individual styles are given -in the pair section of "this page"_Section_commands.html#cmd_5. +included in the LAMMPS distribution for faster performance on CPUs, +GPUs, and KNLs. The individual style names on the "Commands +pair"_Commands_pair.html doc page are followed by one or more of +(g,i,k,o,t) to indicate which accerlerated styles exist. "pair_style none"_pair_none.html - turn off pairwise interactions "pair_style hybrid"_pair_hybrid.html - multiple styles of pairwise interactions diff --git a/doc/src/pair_sw.txt b/doc/src/pair_sw.txt index 7c9ce4a4f9..e6741791df 100644 --- a/doc/src/pair_sw.txt +++ b/doc/src/pair_sw.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_table.txt b/doc/src/pair_table.txt index f5e69a6d54..5e3c1f5ff6 100644 --- a/doc/src/pair_table.txt +++ b/doc/src/pair_table.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_table_rx.txt b/doc/src/pair_table_rx.txt index 52760c396b..41be067bac 100644 --- a/doc/src/pair_table_rx.txt +++ b/doc/src/pair_table_rx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_tersoff.txt b/doc/src/pair_tersoff.txt index 70fe207f0a..821c38f3e4 100644 --- a/doc/src/pair_tersoff.txt +++ b/doc/src/pair_tersoff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_tersoff_mod.txt b/doc/src/pair_tersoff_mod.txt index aced6d40d6..ac1f79a80b 100644 --- a/doc/src/pair_tersoff_mod.txt +++ b/doc/src/pair_tersoff_mod.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_tersoff_zbl.txt b/doc/src/pair_tersoff_zbl.txt index 838c2f39cf..a89d4e3ea1 100644 --- a/doc/src/pair_tersoff_zbl.txt +++ b/doc/src/pair_tersoff_zbl.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_thole.txt b/doc/src/pair_thole.txt index 42c58e9882..7ce8b7cf4b 100644 --- a/doc/src/pair_thole.txt +++ b/doc/src/pair_thole.txt @@ -9,7 +9,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_tri_lj.txt b/doc/src/pair_tri_lj.txt index 42a5bbdfe2..3915ffc238 100644 --- a/doc/src/pair_tri_lj.txt +++ b/doc/src/pair_tri_lj.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_ufm.txt b/doc/src/pair_ufm.txt index 5af8741502..dbc6fd0664 100644 --- a/doc/src/pair_ufm.txt +++ b/doc/src/pair_ufm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_vashishta.txt b/doc/src/pair_vashishta.txt index e90a9d8f50..2e404e8bef 100644 --- a/doc/src/pair_vashishta.txt +++ b/doc/src/pair_vashishta.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_write.txt b/doc/src/pair_write.txt index 9f5970fcbc..48ad76e76e 100644 --- a/doc/src/pair_write.txt +++ b/doc/src/pair_write.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_yukawa.txt b/doc/src/pair_yukawa.txt index 979165dda0..5a8363260a 100644 --- a/doc/src/pair_yukawa.txt +++ b/doc/src/pair_yukawa.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_yukawa_colloid.txt b/doc/src/pair_yukawa_colloid.txt index a1752c261e..515062d9eb 100644 --- a/doc/src/pair_yukawa_colloid.txt +++ b/doc/src/pair_yukawa_colloid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_zbl.txt b/doc/src/pair_zbl.txt index 0507083295..1472c7b672 100644 --- a/doc/src/pair_zbl.txt +++ b/doc/src/pair_zbl.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_zero.txt b/doc/src/pair_zero.txt index e58b33c75f..b324003bd1 100644 --- a/doc/src/pair_zero.txt +++ b/doc/src/pair_zero.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/partition.txt b/doc/src/partition.txt index 610eee99b3..d4fe06c098 100644 --- a/doc/src/partition.txt +++ b/doc/src/partition.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/prd.txt b/doc/src/prd.txt index f298d83385..b2145ebad1 100644 --- a/doc/src/prd.txt +++ b/doc/src/prd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/print.txt b/doc/src/print.txt index 77e0c7cfd3..476d4104fa 100644 --- a/doc/src/print.txt +++ b/doc/src/print.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/processors.txt b/doc/src/processors.txt index e54b2cede3..df13ae1f61 100644 --- a/doc/src/processors.txt +++ b/doc/src/processors.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/python.txt b/doc/src/python.txt index d670fcc77f..4f4faca8f4 100644 --- a/doc/src/python.txt +++ b/doc/src/python.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -199,9 +199,9 @@ The {here} keyword does the same thing, except that the Python code follows as a single argument to the {here} keyword. This can be done using triple quotes as delimiters, as in the examples above. This allows Python code to be listed verbatim in your input script, with -proper indentation, blank lines, and comments, as desired. See -"Section 3.2"_Section_commands.html#cmd_2, for an explanation of how -triple quotes can be used as part of input script syntax. +proper indentation, blank lines, and comments, as desired. See the +"Commands parse"_Commands_parse.html doc page, for an explanation of +how triple quotes can be used as part of input script syntax. The {exists} keyword takes no argument. It means that Python code containing the required Python function defined by the {func} setting, diff --git a/doc/src/quit.txt b/doc/src/quit.txt index 843d3de7f3..802df97711 100644 --- a/doc/src/quit.txt +++ b/doc/src/quit.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/read_data.txt b/doc/src/read_data.txt index 4f6a3988b9..ded51a4d99 100644 --- a/doc/src/read_data.txt +++ b/doc/src/read_data.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/read_dump.txt b/doc/src/read_dump.txt index 21c6df5017..a3c0733e07 100644 --- a/doc/src/read_dump.txt +++ b/doc/src/read_dump.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/read_restart.txt b/doc/src/read_restart.txt index 6f6a828229..488c36f020 100644 --- a/doc/src/read_restart.txt +++ b/doc/src/read_restart.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/region.txt b/doc/src/region.txt index b32c09ed6f..21396ae1fd 100644 --- a/doc/src/region.txt +++ b/doc/src/region.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/replicate.txt b/doc/src/replicate.txt index 08523ecdd8..0195dce911 100644 --- a/doc/src/replicate.txt +++ b/doc/src/replicate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/rerun.txt b/doc/src/rerun.txt index edf94cc711..8eb3ebd5a1 100644 --- a/doc/src/rerun.txt +++ b/doc/src/rerun.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/reset_ids.txt b/doc/src/reset_ids.txt index 8655a9d54f..391b51fde9 100644 --- a/doc/src/reset_ids.txt +++ b/doc/src/reset_ids.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/reset_timestep.txt b/doc/src/reset_timestep.txt index 79a5812ca1..0d518655fb 100644 --- a/doc/src/reset_timestep.txt +++ b/doc/src/reset_timestep.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/restart.txt b/doc/src/restart.txt index 7c39ae1404..6f2dc5ca46 100644 --- a/doc/src/restart.txt +++ b/doc/src/restart.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/run.txt b/doc/src/run.txt index 02860c0b97..c7c73463d9 100644 --- a/doc/src/run.txt +++ b/doc/src/run.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/run_style.txt b/doc/src/run_style.txt index 6f1f719d64..deee51cfd3 100644 --- a/doc/src/run_style.txt +++ b/doc/src/run_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/set.txt b/doc/src/set.txt index d2235d5c32..b83ad54f4e 100644 --- a/doc/src/set.txt +++ b/doc/src/set.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/shell.txt b/doc/src/shell.txt index 205164f874..d274f498e5 100644 --- a/doc/src/shell.txt +++ b/doc/src/shell.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/special_bonds.txt b/doc/src/special_bonds.txt index 1021c4856b..a57b61664d 100644 --- a/doc/src/special_bonds.txt +++ b/doc/src/special_bonds.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/suffix.txt b/doc/src/suffix.txt index 74f69b6dfe..bb0619f1e0 100644 --- a/doc/src/suffix.txt +++ b/doc/src/suffix.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/tad.txt b/doc/src/tad.txt index 9ffa24d012..a26ff79318 100644 --- a/doc/src/tad.txt +++ b/doc/src/tad.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/temper.txt b/doc/src/temper.txt index e65f59ebed..c7b482acc6 100644 --- a/doc/src/temper.txt +++ b/doc/src/temper.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/temper_grem.txt b/doc/src/temper_grem.txt index 6145c8704c..9cb1bab784 100644 --- a/doc/src/temper_grem.txt +++ b/doc/src/temper_grem.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/temper_npt.txt b/doc/src/temper_npt.txt index 4ad49f9e33..4eee225de7 100644 --- a/doc/src/temper_npt.txt +++ b/doc/src/temper_npt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line temper/npt command :h3 diff --git a/doc/src/thermo.txt b/doc/src/thermo.txt index 1d5d34995c..5f12f98707 100644 --- a/doc/src/thermo.txt +++ b/doc/src/thermo.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/thermo_modify.txt b/doc/src/thermo_modify.txt index e9aca0f20a..ca2957de77 100644 --- a/doc/src/thermo_modify.txt +++ b/doc/src/thermo_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/thermo_style.txt b/doc/src/thermo_style.txt index 64e0785586..cbc2612f28 100644 --- a/doc/src/thermo_style.txt +++ b/doc/src/thermo_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/timer.txt b/doc/src/timer.txt index 768c3e1353..10737dbda0 100644 --- a/doc/src/timer.txt +++ b/doc/src/timer.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/timestep.txt b/doc/src/timestep.txt index 639ad6f311..ee0ace05b9 100644 --- a/doc/src/timestep.txt +++ b/doc/src/timestep.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/uncompute.txt b/doc/src/uncompute.txt index 49b46781d7..4c788d4722 100644 --- a/doc/src/uncompute.txt +++ b/doc/src/uncompute.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/undump.txt b/doc/src/undump.txt index a2a371aca5..cc3d8b9103 100644 --- a/doc/src/undump.txt +++ b/doc/src/undump.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/unfix.txt b/doc/src/unfix.txt index dcc4499b20..9608b39c7e 100644 --- a/doc/src/unfix.txt +++ b/doc/src/unfix.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/units.txt b/doc/src/units.txt index 0b856dcc68..8df8fe6810 100644 --- a/doc/src/units.txt +++ b/doc/src/units.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/variable.txt b/doc/src/variable.txt index 717c77c079..c6598ccb51 100644 --- a/doc/src/variable.txt +++ b/doc/src/variable.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -124,8 +124,8 @@ provide, so that the variable gets its value from the evaluation of the Python code. Variables of style {internal} are used by a few commands which set their value directly. -NOTE: As discussed in "Section 3.2"_Section_commands.html#cmd_2 of the -manual, an input script can use "immediate" variables, specified as +NOTE: As discussed on the "Commands parse"_Commands_parse.html doc +page, an input script can use "immediate" variables, specified as $(formula) with parenthesis, where the formula has the same syntax as equal-style variables described on this page. This is a convenient way to evaluate a formula immediately without using the variable @@ -198,7 +198,7 @@ the same thing. :line -"This section"_Section_commands.html#cmd_2 of the manual explains how +The "Commands parse"_Commands_parse.html doc page explains how occurrences of a variable name in an input script line are replaced by the variable's string. The variable name can be referenced as $x if the name "x" is a single character, or as $\{LoopVar\} if the name @@ -312,8 +312,8 @@ If you simply wish to print a variable value with desired precision to the screen or logfile via the "print"_print.html or "fix print"_fix_print.html commands, you can also do this by specifying an "immediate" variable with a trailing colon and format string, as part -of the string argument of those commands. This is explained in -"Section 3.2"_Section_commands.html#cmd_2. +of the string argument of those commands. This is explained on the +"Commands parse"_Commands_parse.html doc page. For the {getenv} style, a single string is assigned to the variable which should be the name of an environment variable. When the @@ -1119,24 +1119,23 @@ Vectors" discussion above. If you want an equal-style variable to be evaluated immediately, it may be the case that you do not need to define a variable at all. See -"Section 3.2"_Section_commands.html#cmd_2 of the manual, which -describes the use of "immediate" variables in an input script, -specified as $(formula) with parenthesis, where the formula has the -same syntax as equal-style variables described on this page. This -effectively evaluates a formula immediately without using the variable -command to define a named variable. +the "Commands parse"_Commands_parse.html doc page for info on how to +use "immediate" variables in an input script, specified as $(formula) +with parenthesis, where the formula has the same syntax as equal-style +variables described on this page. This effectively evaluates a +formula immediately without using the variable command to define a +named variable. More generally, there is a difference between referencing a variable with a leading $ sign (e.g. $x or $\{abc\}) versus with a leading "v_" (e.g. v_x or v_abc). The former can be used in any input script command, including a variable command. The input script parser evaluates the reference variable immediately and substitutes its value -into the command. As explained in "Section -3.2"_Section_commands.html#cmd_2 for "Parsing rules", you can also use -un-named "immediate" variables for this purpose. For example, a -string like this $((xlo+xhi)/2+sqrt(v_area)) in an input script -command evaluates the string between the parenthesis as an equal-style -variable formula. +into the command. As explained on the "Commands +parse"_Commands_parse.html doc page, you can also use un-named +"immediate" variables for this purpose. For example, a string like +this $((xlo+xhi)/2+sqrt(v_area)) in an input script command evaluates +the string between the parenthesis as an equal-style variable formula. Referencing a variable with a leading "v_" is an optional or required kind of argument for some commands (e.g. the "fix @@ -1180,10 +1179,9 @@ quotes if it contains variables preceded by $ signs. For example, variable vratio equal "$\{vfinal\}/$\{v0\}" :pre -This is because the quotes prevent variable substitution (see "this -section"_Section_commands.html#cmd_2 on parsing input script -commands), and thus an error will occur when the formula for "vratio" -is evaluated later. +This is because the quotes prevent variable substitution (explained on +the "Commands parse"_Commands_parse.html doc page), and thus an error +will occur when the formula for "vratio" is evaluated later. :line diff --git a/doc/src/velocity.txt b/doc/src/velocity.txt index 057f0054be..96d3fa6dc4 100644 --- a/doc/src/velocity.txt +++ b/doc/src/velocity.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/write_coeff.txt b/doc/src/write_coeff.txt index 764e119a9d..5dc4b331de 100644 --- a/doc/src/write_coeff.txt +++ b/doc/src/write_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/write_data.txt b/doc/src/write_data.txt index c76f20319c..d8a33f457f 100644 --- a/doc/src/write_data.txt +++ b/doc/src/write_data.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/write_dump.txt b/doc/src/write_dump.txt index 840716085f..e676979001 100644 --- a/doc/src/write_dump.txt +++ b/doc/src/write_dump.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/write_restart.txt b/doc/src/write_restart.txt index ff3b652dba..3935a5d538 100644 --- a/doc/src/write_restart.txt +++ b/doc/src/write_restart.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line From 6de3dab72a152652acb6d5591f84401fd2b9366e Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Sun, 5 Aug 2018 23:59:52 -0400 Subject: [PATCH 402/675] Remove duplicates --- doc/src/body.txt | 456 ------------------------------------- doc/src/lammps.book | 4 - doc/src/lammps_support.txt | 7 - doc/src/manifolds.txt | 41 ---- 4 files changed, 508 deletions(-) delete mode 100644 doc/src/body.txt delete mode 100644 doc/src/lammps_support.txt delete mode 100644 doc/src/manifolds.txt diff --git a/doc/src/body.txt b/doc/src/body.txt deleted file mode 100644 index 4de5b52911..0000000000 --- a/doc/src/body.txt +++ /dev/null @@ -1,456 +0,0 @@ -"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 - -Body particles :h2 - -[Overview:] - -This doc page is not about a LAMMPS input script command, but about -body particles, which are generalized finite-size particles. -Individual body particles can represent complex entities, such as -surface meshes of discrete points, collections of sub-particles, -deformable objects, etc. Note that other kinds of finite-size -spherical and aspherical particles are also supported by LAMMPS, such -as spheres, ellipsoids, line segments, and triangles, but they are -simpler entities that body particles. See the "Howto -body"_Howto_.html doc page for a general overview of all -these particle types. - -Body particles are used via the "atom_style body"_atom_style.html -command. It takes a body style as an argument. The current body -styles supported by LAMMPS are as follows. The name in the first -column is used as the {bstyle} argument for the "atom_style -body"_atom_style.html command. - -{nparticle} : rigid body with N sub-particles -{rounded/polygon} : 2d polygons with N vertices -{rounded/polyhedron} : 3d polyhedra with N vertices, E edges and F faces :tb(s=:) - -The body style determines what attributes are stored for each body and -thus how they can be used to compute pairwise body/body or -bond/non-body (point particle) interactions. More details of each -style are described below. - -More styles may be added in the future. See the "Modify -body"_Modify_body.html doc page for details on how to add a new body -style to the code. - -:line - -[When to use body particles:] - -You should not use body particles to model a rigid body made of -simpler particles (e.g. point, sphere, ellipsoid, line segment, -triangular particles), if the interaction between pairs of rigid -bodies is just the summation of pairwise interactions between the -simpler particles. LAMMPS already supports this kind of model via the -"fix rigid"_fix_rigid.html command. Any of the numerous pair styles -that compute interactions between simpler particles can be used. The -"fix rigid"_fix_rigid.html command time integrates the motion of the -rigid bodies. All of the standard LAMMPS commands for thermostatting, -adding constraints, performing output, etc will operate as expected on -the simple particles. - -By contrast, when body particles are used, LAMMPS treats an entire -body as a single particle for purposes of computing pairwise -interactions, building neighbor lists, migrating particles between -processors, output of particles to a dump file, etc. This means that -interactions between pairs of bodies or between a body and non-body -(point) particle need to be encoded in an appropriate pair style. If -such a pair style were to mimic the "fix rigid"_fix_rigid.html model, -it would need to loop over the entire collection of interactions -between pairs of simple particles within the two bodies, each time a -single body/body interaction was computed. - -Thus it only makes sense to use body particles and develop such a pair -style, when particle/particle interactions are more complex than what -the "fix rigid"_fix_rigid.html command can already calculate. For -example, consider particles with one or more of the following -attributes: - -represented by a surface mesh -represented by a collection of geometric entities (e.g. planes + spheres) -deformable -internal stress that induces fragmentation :ul - -For these models, the interaction between pairs of particles is likely -to be more complex than the summation of simple pairwise interactions. -An example is contact or frictional forces between particles with -planar surfaces that inter-penetrate. Likewise, the body particle may -store internal state, such as a stress tensor used to compute a -fracture criterion. - -These are additional LAMMPS commands that can be used with body -particles of different styles - -"fix nve/body"_fix_nve_body.html : integrate motion of a body particle in NVE ensemble -"fix nvt/body"_fix_nvt_body.html : ditto for NVT ensemble -"fix npt/body"_fix_npt_body.html : ditto for NPT ensemble -"fix nph/body"_fix_nph_body.html : ditto for NPH ensemble -"compute body/local"_compute_body_local.html : store sub-particle attributes of a body particle -"compute temp/body"_compute_temp_body.html : compute temperature of body particles -"dump local"_dump.html : output sub-particle attributes of a body particle -"dump image"_dump_image.html : output body particle attributes as an image :tb(s=:) - -The pair styles defined for use with specific body styles are listed -in the sections below. - -:line - -[Specifics of body style nparticle:] - -The {nparticle} body style represents body particles as a rigid body -with a variable number N of sub-particles. It is provided as a -vanilla, prototypical example of a body particle, although as -mentioned above, the "fix rigid"_fix_rigid.html command already -duplicates its functionality. - -The atom_style body command for this body style takes two additional -arguments: - -atom_style body nparticle Nmin Nmax -Nmin = minimum # of sub-particles in any body in the system -Nmax = maximum # of sub-particles in any body in the system :pre - -The Nmin and Nmax arguments are used to bound the size of data -structures used internally by each particle. - -When the "read_data"_read_data.html command reads a data file for this -body style, the following information must be provided for each entry -in the {Bodies} section of the data file: - -atom-ID 1 M -N -ixx iyy izz ixy ixz iyz -x1 y1 z1 -... -xN yN zN :pre - -where M = 6 + 3*N, and N is the number of sub-particles in the body -particle. - -The integer line has a single value N. The floating point line(s) -list 6 moments of inertia followed by the coordinates of the N -sub-particles (x1 to zN) as 3N values. These values can be listed on -as many lines as you wish; see the "read_data"_read_data.html command -for more details. - -The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the -values consistent with the current orientation of the rigid body -around its center of mass. The values are with respect to the -simulation box XYZ axes, not with respect to the principal axes of the -rigid body itself. LAMMPS performs the latter calculation internally. -The coordinates of each sub-particle are specified as its x,y,z -displacement from the center-of-mass of the body particle. The -center-of-mass position of the particle is specified by the x,y,z -values in the {Atoms} section of the data file, as is the total mass -of the body particle. - -The "pair_style body/nparticle"_pair_body_nparticle.html command can be used with this -body style to compute body/body and body/non-body interactions. - -For output purposes via the "compute -body/local"_compute_body_local.html and "dump local"_dump.html -commands, this body style produces one datum for each of the N -sub-particles in a body particle. The datum has 3 values: - -1 = x position of sub-particle -2 = y position of sub-particle -3 = z position of sub-particle :pre - -These values are the current position of the sub-particle within the -simulation domain, not a displacement from the center-of-mass (COM) of -the body particle itself. These values are calculated using the -current COM and orientation of the body particle. - -For images created by the "dump image"_dump_image.html command, if the -{body} keyword is set, then each body particle is drawn as a -collection of spheres, one for each sub-particle. The size of each -sphere is determined by the {bflag1} parameter for the {body} keyword. -The {bflag2} argument is ignored. - -:line - -[Specifics of body style rounded/polygon:] - -The {rounded/polygon} body style represents body particles as a 2d -polygon with a variable number of N vertices. This style can only be -used for 2d models; see the "boundary"_boundary.html command. See the -"pair_style body/rounded/polygon" doc page for a diagram of two -squares with rounded circles at the vertices. Special cases for N = 1 -(circle) and N = 2 (rod with rounded ends) can also be specified. - -One use of this body style is for 2d discrete element models, as -described in "Fraige"_#body-Fraige. - -Similar to body style {nparticle}, the atom_style body command for -this body style takes two additional arguments: - -atom_style body rounded/polygon Nmin Nmax -Nmin = minimum # of vertices in any body in the system -Nmax = maximum # of vertices in any body in the system :pre - -The Nmin and Nmax arguments are used to bound the size of data -structures used internally by each particle. - -When the "read_data"_read_data.html command reads a data file for this -body style, the following information must be provided for each entry -in the {Bodies} section of the data file: - -atom-ID 1 M -N -ixx iyy izz ixy ixz iyz -x1 y1 z1 -... -xN yN zN -i j j k k ... -diameter :pre - -where M = 6 + 3*N + 2*N + 1, and N is the number of vertices in the -body particle. - -The integer line has a single value N. The floating point line(s) -list 6 moments of inertia followed by the coordinates of the N -vertices (x1 to zN) as 3N values (with z = 0.0 for each), followed by -2N vertex indices corresponding to the end points of the N edges, -followed by a single diameter value = the rounded diameter of the -circle that surrounds each vertex. The diameter value can be different -for each body particle. These floating-point values can be listed on -as many lines as you wish; see the "read_data"_read_data.html command -for more details. - -The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the -values consistent with the current orientation of the rigid body -around its center of mass. The values are with respect to the -simulation box XYZ axes, not with respect to the principal axes of the -rigid body itself. LAMMPS performs the latter calculation internally. -The coordinates of each vertex are specified as its x,y,z displacement -from the center-of-mass of the body particle. The center-of-mass -position of the particle is specified by the x,y,z values in the -{Atoms} section of the data file. - -For example, the following information would specify a square particle -whose edge length is sqrt(2) and rounded diameter is 1.0. The -orientation of the square is aligned with the xy coordinate axes which -is consistent with the 6 moments of inertia: ixx iyy izz ixy ixz iyz = -1 1 4 0 0 0. Note that only Izz matters in 2D simulations. - -3 1 27 -4 -1 1 4 0 0 0 --0.7071 -0.7071 0 --0.7071 0.7071 0 -0.7071 0.7071 0 -0.7071 -0.7071 0 -0 1 -1 2 -2 3 -3 0 -1.0 :pre - -A rod in 2D, whose length is 4.0, mass 1.0, rounded at two ends -by circles of diameter 0.5, is specified as follows: - -1 1 13 -2 -1 1 1.33333 0 0 0 --2 0 0 -2 0 0 -0.5 :pre - -A disk, whose diameter is 3.0, mass 1.0, is specified as follows: - -1 1 10 -1 -1 1 4.5 0 0 0 -0 0 0 -3.0 :pre - -The "pair_style body/rounded/polygon"_pair_body_rounded_polygon.html -command can be used with this body style to compute body/body -interactions. The "fix wall/body/polygon"_fix_wall_body_polygon.html -command can be used with this body style to compute the interaction of -body particles with a wall. - -:line - -[Specifics of body style rounded/polyhedron:] - -The {rounded/polyhedron} body style represents body particles as a 3d -polyhedron with a variable number of N vertices, E edges and F faces. -This style can only be used for 3d models; see the -"boundary"_boundary.html command. See the "pair_style -body/rounded/polygon" doc page for a diagram of a two 2d squares with -rounded circles at the vertices. A 3d cube with rounded spheres at -the 8 vertices and 12 rounded edges would be similar. Special cases -for N = 1 (sphere) and N = 2 (rod with rounded ends) can also be -specified. - -This body style is for 3d discrete element models, as described in -"Wang"_#body-Wang. - -Similar to body style {rounded/polygon}, the atom_style body command -for this body style takes two additional arguments: - -atom_style body rounded/polyhedron Nmin Nmax -Nmin = minimum # of vertices in any body in the system -Nmax = maximum # of vertices in any body in the system :pre - -The Nmin and Nmax arguments are used to bound the size of data -structures used internally by each particle. - -When the "read_data"_read_data.html command reads a data file for this -body style, the following information must be provided for each entry -in the {Bodies} section of the data file: - -atom-ID 3 M -N E F -ixx iyy izz ixy ixz iyz -x1 y1 z1 -... -xN yN zN -0 1 -1 2 -2 3 -... -0 1 2 -1 -0 2 3 -1 -... -1 2 3 4 -diameter :pre - -where M = 6 + 3*N + 2*E + 4*F + 1, and N is the number of vertices in -the body particle, E = number of edges, F = number of faces. - -The integer line has three values: number of vertices (N), number of -edges (E) and number of faces (F). The floating point line(s) list 6 -moments of inertia followed by the coordinates of the N vertices (x1 -to zN) as 3N values, followed by 2N vertex indices corresponding to -the end points of the E edges, then 4*F vertex indices defining F -faces. The last value is the diameter value = the rounded diameter of -the sphere that surrounds each vertex. The diameter value can be -different for each body particle. These floating-point values can be -listed on as many lines as you wish; see the -"read_data"_read_data.html command for more details. Because the -maxmimum vertices per face is hard-coded to be 4 -(i.e. quadrilaterals), faces with more than 4 vertices need to be -split into triangles or quadrilaterals. For triangular faces, the -last vertex index should be set to -1. - -The ordering of the 4 vertices within a face should follow -the right-hand rule so that the normal vector of the face points -outwards from the center of mass. - -The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the -values consistent with the current orientation of the rigid body -around its center of mass. The values are with respect to the -simulation box XYZ axes, not with respect to the principal axes of the -rigid body itself. LAMMPS performs the latter calculation internally. -The coordinates of each vertex are specified as its x,y,z displacement -from the center-of-mass of the body particle. The center-of-mass -position of the particle is specified by the x,y,z values in the -{Atoms} section of the data file. - -For example, the following information would specify a cubic particle -whose edge length is 2.0 and rounded diameter is 0.5. -The orientation of the cube is aligned with the xyz coordinate axes -which is consistent with the 6 moments of inertia: ixx iyy izz ixy ixz -iyz = 0.667 0.667 0.667 0 0 0. - -1 3 79 -8 12 6 -0.667 0.667 0.667 0 0 0 -1 1 1 -1 -1 1 --1 -1 1 --1 1 1 -1 1 -1 -1 -1 -1 --1 -1 -1 --1 1 -1 -0 1 -1 2 -2 3 -3 0 -4 5 -5 6 -6 7 -7 4 -0 4 -1 5 -2 6 -3 7 -0 1 2 3 -4 5 6 7 -0 1 5 4 -1 2 6 5 -2 3 7 6 -3 0 4 7 -0.5 :pre - -A rod in 3D, whose length is 4.0, mass 1.0 and rounded at two ends -by circles of diameter 0.5, is specified as follows: - -1 1 13 -2 -0 1.33333 1.33333 0 0 0 --2 0 0 -2 0 0 -0.5 :pre - -A sphere whose diameter is 3.0 and mass 1.0, is specified as follows: - -1 1 10 -1 -0.9 0.9 0.9 0 0 0 -0 0 0 -3.0 :pre - -The "pair_style -body/rounded/polhedron"_pair_body_rounded_polyhedron.html command can -be used with this body style to compute body/body interactions. The -"fix wall/body/polyhedron"_fix_wall_body_polygon.html command can be -used with this body style to compute the interaction of body particles -with a wall. - -:line - -For output purposes via the "compute -body/local"_compute_body_local.html and "dump local"_dump.html -commands, this body style produces one datum for each of the N -sub-particles in a body particle. The datum has 3 values: - -1 = x position of vertex -2 = y position of vertex -3 = z position of vertex :pre - -These values are the current position of the vertex within the -simulation domain, not a displacement from the center-of-mass (COM) of -the body particle itself. These values are calculated using the -current COM and orientation of the body particle. - -For images created by the "dump image"_dump_image.html command, if the -{body} keyword is set, then each body particle is drawn as a polygon -consisting of N line segments. Note that the line segments are drawn -between the N vertices, which does not correspond exactly to the -physical extent of the body (because the "pair_style -rounded/polygon"_pair_body_rounded_polygon.html defines finite-size -spheres at those point and the line segments between the spheres are -tangent to the spheres). The drawn diameter of each line segment is -determined by the {bflag1} parameter for the {body} keyword. The -{bflag2} argument is ignored. - -:line - -:link(body-Fraige) -[(Fraige)] F. Y. Fraige, P. A. Langston, A. J. Matchett, J. Dodds, -Particuology, 6, 455 (2008). - -:link(body-Wang) -[(Wang)] J. Wang, H. S. Yu, P. A. Langston, F. Y. Fraige, Granular -Matter, 13, 1 (2011). diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 9cb2d8cd6c..c0ca357f21 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -107,10 +107,6 @@ Errors_bugs.html Errors_messages.html Errors_warnings.html -lammps_support.html -body.html -manifolds.html - lammps_commands.html atom_modify.html atom_style.html diff --git a/doc/src/lammps_support.txt b/doc/src/lammps_support.txt deleted file mode 100644 index fa460ce6c2..0000000000 --- a/doc/src/lammps_support.txt +++ /dev/null @@ -1,7 +0,0 @@ - -Supporting Information :h1 - -This section of the manual contains supporting information that -is not documenting individual commands but general concepts and -supporting information about entities like body particles or -manifolds. diff --git a/doc/src/manifolds.txt b/doc/src/manifolds.txt deleted file mode 100644 index 194a755868..0000000000 --- a/doc/src/manifolds.txt +++ /dev/null @@ -1,41 +0,0 @@ -"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 - -Manifolds (surfaces) :h2 - -[Overview:] - -This doc page is not about a LAMMPS input script command, but about -manifolds, which are generalized surfaces, as defined and used by the -USER-MANIFOLD package, to track particle motion on the manifolds. See -the src/USER-MANIFOLD/README file for more details about the package -and its commands. - -Below is a list of currently supported manifolds by the USER-MANIFOLD -package, their parameters and a short description of them. The -parameters listed here are in the same order as they should be passed -to the relevant fixes. - -{manifold} @ {parameters} @ {equation} @ {description} -cylinder @ R @ x^2 + y^2 - R^2 = 0 @ Cylinder along z-axis, axis going through (0,0,0) -cylinder_dent @ R l a @ x^2 + y^2 - r(z)^2 = 0, r(x) = R if | z | > l, r(z) = R - a*(1 + cos(z/l))/2 otherwise @ A cylinder with a dent around z = 0 -dumbbell @ a A B c @ -( x^2 + y^2 ) + (a^2 - z^2/c^2) * ( 1 + (A*sin(B*z^2))^4) = 0 @ A dumbbell -ellipsoid @ a b c @ (x/a)^2 + (y/b)^2 + (z/c)^2 = 0 @ An ellipsoid -gaussian_bump @ A l rc1 rc2 @ if( x < rc1) -z + A * exp( -x^2 / (2 l^2) ); else if( x < rc2 ) -z + a + b*x + c*x^2 + d*x^3; else z @ A Gaussian bump at x = y = 0, smoothly tapered to a flat plane z = 0. -plane @ a b c x0 y0 z0 @ a*(x-x0) + b*(y-y0) + c*(z-z0) = 0 @ A plane with normal (a,b,c) going through point (x0,y0,z0) -plane_wiggle @ a w @ z - a*sin(w*x) = 0 @ A plane with a sinusoidal modulation on z along x. -sphere @ R @ x^2 + y^2 + z^2 - R^2 = 0 @ A sphere of radius R -supersphere @ R q @ | x |^q + | y |^q + | z |^q - R^q = 0 @ A supersphere of hyperradius R -spine @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^4), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ An approximation to a dendtritic spine -spine_two @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^2), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ Another approximation to a dendtritic spine -thylakoid @ wB LB lB @ Various, see "(Paquay)"_#Paquay1 @ A model grana thylakoid consisting of two block-like compartments connected by a bridge of width wB, length LB and taper length lB -torus @ R r @ (R - sqrt( x^2 + y^2 ) )^2 + z^2 - r^2 @ A torus with large radius R and small radius r, centered on (0,0,0) :tb(s=@) - -:link(Paquay1) -[(Paquay)] Paquay and Kusters, Biophys. J., 110, 6, (2016). -preprint available at "arXiv:1411.3019"_http://arxiv.org/abs/1411.3019/. From 6927ed5eb9d6aa8a985428c3a3748ca0e6545035 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 6 Aug 2018 00:01:38 -0400 Subject: [PATCH 403/675] Fix pair body rounded polygon and polyhedron links --- doc/src/Commands_pair.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Commands_pair.txt b/doc/src/Commands_pair.txt index 02b22942ae..eaf2720613 100644 --- a/doc/src/Commands_pair.txt +++ b/doc/src/Commands_pair.txt @@ -36,8 +36,8 @@ OPT. "awpmd/cut"_pair_awpmd.html, "beck (go)"_pair_beck.html, "body/nparticle"_pair_body_nparticle.html, -"body/rounded/polygon"_pair_body_rounded/polygon.html, -"body/rounded/polyhedron"_pair_body_rounded/polyhedron.html, +"body/rounded/polygon"_pair_body_rounded_polygon.html, +"body/rounded/polyhedron"_pair_body_rounded_polyhedron.html, "bop"_pair_bop.html, "born (go)"_pair_born.html, "born/coul/dsf"_pair_born.html, From fba9f0aaae4eb5e41c448e1aba068ccdc9709549 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 6 Aug 2018 00:10:06 -0400 Subject: [PATCH 404/675] Fix various links --- doc/src/Intro_authors.txt | 2 +- doc/src/Intro_features.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Intro_authors.txt b/doc/src/Intro_authors.txt index b48c1eb59a..ce418d0ce1 100644 --- a/doc/src/Intro_authors.txt +++ b/doc/src/Intro_authors.txt @@ -140,7 +140,7 @@ Aug15 : timer command : Axel Kohlmeyer (Temple U) Aug15 : USER-H5MD package : Pierre de Buyl (KU Leuven) Aug15 : COMPRESS package : Axel Kohlmeyer (Temple U) Aug15 : USER-SMD package : Georg Gunzenmueller (EMI) -Jul15 : new HTML format for "doc pages"_doc/Manual.html with search option : Richard Berger (JKU) +Jul15 : new HTML format for "doc pages"_Manual.html with search option : Richard Berger (JKU) Jul15 : rRESPA with pair hybrid : Sam Genheden (U of Southampton) Jul15 : pair_modify special : Axel Kohlmeyer (Temple U) Jul15 : pair polymorphic : Xiaowang Zhou and Reese Jones (Sandia) diff --git a/doc/src/Intro_features.txt b/doc/src/Intro_features.txt index 4b7d1d41e2..2bb7e25683 100644 --- a/doc/src/Intro_features.txt +++ b/doc/src/Intro_features.txt @@ -186,14 +186,14 @@ These are LAMMPS capabilities which you may not think of as typical classical MD options: "static"_balance.html and "dynamic load-balancing"_fix_balance.html -"generalized aspherical particles"_body.html +"generalized aspherical particles"_Howto_body.html "stochastic rotation dynamics (SRD)"_fix_srd.html "real-time visualization and interactive MD"_fix_imd.html calculate "virtual diffraction patterns"_compute_xrd.html "atom-to-continuum coupling"_fix_atc.html with finite elements coupled rigid body integration via the "POEMS"_fix_poems.html library "QM/MM coupling"_fix_qmmm.html -Monte Carlo via "GCMC"_fix_gcmc.html and "tfMC"_fix_tfmc.html and "atom swapping"_fix_swap.html +Monte Carlo via "GCMC"_fix_gcmc.html and "tfMC"_fix_tfmc.html and "atom swapping"_fix_atom_swap.html "path-integral molecular dynamics (PIMD)"_fix_ipi.html and "this as well"_fix_pimd.html "Direct Simulation Monte Carlo"_pair_dsmc.html for low-density fluids "Peridynamics mesoscale modeling"_pair_peri.html From 446a8da8e7a0129875840bde675bbe77b3a22a4b Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Mon, 6 Aug 2018 10:25:12 -0400 Subject: [PATCH 405/675] Commit before merge. --- src/lammps.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lammps.cpp b/src/lammps.cpp index 56af95767b..d25d5473e8 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -249,7 +249,11 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) helpflag = 1; citeflag = 0; iarg += 1; - } else error->universe_all(FLERR,"Invalid command-line argument"); + } else { + char msg[2048]; + sprintf( msg, "Invalid command-line argument \"%s\"\n", arg[iarg] ); + error->universe_all(FLERR,msg); + } } // if no partition command-line switch, universe is one world with all procs From 32917f4caa7d1beb8526d02e9ce2fd247704641e Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 6 Aug 2018 10:50:06 -0600 Subject: [PATCH 406/675] Workaround for issue 1037 --- lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp index 49b11f3ae0..11aa695f08 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp @@ -292,7 +292,8 @@ public: #if ! defined( KOKKOS_ENABLE_CUDA_LDG_INTRINSIC ) if ( 0 == r ) { - Kokkos::abort("Cuda const random access View using Cuda texture memory requires Kokkos to allocate the View's memory"); + //Kokkos::abort("Cuda const random access View using Cuda texture memory requires Kokkos to allocate the View's memory"); + return handle_type(); } #endif From 4d75d2d6115ef9350a57d9a8847b555ca953ba96 Mon Sep 17 00:00:00 2001 From: sergeylishchuk Date: Mon, 6 Aug 2018 20:49:05 +0100 Subject: [PATCH 407/675] more changes to ATM source and doc file --- .github/CODEOWNERS | 2 + cmake/CMakeLists.txt | 155 +- cmake/README.md | 10 + cmake/etc/profile.d/lammps.csh.in | 2 + cmake/etc/profile.d/lammps.sh.in | 2 + doc/Makefile | 2 +- doc/src/Commands.txt | 51 + doc/src/Commands_all.txt | 128 + doc/src/Commands_bond.txt | 124 + doc/src/Commands_category.txt | 141 + doc/src/Commands_compute.txt | 153 + doc/src/Commands_fix.txt | 229 ++ doc/src/Commands_input.txt | 60 + doc/src/Commands_kspace.txt | 36 + doc/src/Commands_pair.txt | 231 ++ doc/src/Commands_parse.txt | 136 + doc/src/Commands_structure.txt | 95 + doc/src/Eqs/pair_spin_dmi_forces.jpg | Bin 0 -> 13431 bytes doc/src/Eqs/pair_spin_dmi_forces.tex | 14 + doc/src/Eqs/pair_spin_dmi_interaction.jpg | Bin 6316 -> 7891 bytes doc/src/Eqs/pair_spin_dmi_interaction.tex | 2 +- doc/src/Eqs/pair_spin_exchange_forces.jpg | Bin 13720 -> 13255 bytes doc/src/Eqs/pair_spin_exchange_forces.tex | 10 +- .../Eqs/pair_spin_exchange_interaction.jpg | Bin 6661 -> 5940 bytes .../Eqs/pair_spin_exchange_interaction.tex | 2 +- doc/src/Errors.txt | 4 +- doc/src/Errors_bugs.txt | 2 +- doc/src/Errors_common.txt | 2 +- doc/src/Errors_messages.txt | 8 +- doc/src/Errors_warnings.txt | 8 +- doc/src/Examples.txt | 10 +- doc/src/Howto.txt | 128 + doc/src/Howto_2d.txt | 48 + doc/src/Howto_barostat.txt | 75 + ...ial_bash_on_windows.txt => Howto_bash.txt} | 3 +- doc/src/Howto_bioFF.txt | 101 + doc/src/{body.txt => Howto_body.txt} | 18 +- doc/src/Howto_chunk.txt | 166 + doc/src/Howto_coreshell.txt | 253 ++ doc/src/Howto_couple.txt | 105 + doc/src/Howto_diffusion.txt | 31 + doc/src/Howto_dispersion.txt | 108 + doc/src/Howto_drude.txt | 77 + .../{tutorial_drude.txt => Howto_drude2.txt} | 2 +- doc/src/Howto_elastic.txt | 47 + .../{tutorial_github.txt => Howto_github.txt} | 12 +- doc/src/Howto_granular.txt | 57 + doc/src/Howto_kappa.txt | 90 + doc/src/Howto_library.txt | 208 ++ doc/src/{manifolds.txt => Howto_manifold.txt} | 4 +- doc/src/Howto_multiple.txt | 95 + doc/src/Howto_nemd.txt | 48 + doc/src/Howto_output.txt | 307 ++ doc/src/Howto_polarizable.txt | 81 + ...torial_pylammps.txt => Howto_pylammps.txt} | 23 +- doc/src/Howto_replica.txt | 61 + doc/src/Howto_restart.txt | 97 + doc/src/Howto_spc.txt | 54 + doc/src/Howto_spherical.txt | 243 ++ doc/src/Howto_spins.txt | 59 + doc/src/Howto_temperature.txt | 40 + doc/src/Howto_thermostat.txt | 89 + doc/src/Howto_tip3p.txt | 69 + doc/src/Howto_tip4p.txt | 112 + doc/src/Howto_triclinic.txt | 213 ++ doc/src/Howto_viscosity.txt | 133 + doc/src/Howto_viz.txt | 40 + doc/src/Howto_walls.txt | 80 + doc/src/Intro.txt | 37 + doc/src/Intro_authors.txt | 379 +++ doc/src/Intro_features.txt | 202 ++ doc/src/Intro_nonfeatures.txt | 83 + doc/src/Intro_opensource.txt | 44 + doc/src/Intro_overview.txt | 58 + doc/src/Intro_website.txt | 42 + doc/src/Manual.txt | 230 +- doc/src/Manual_version.txt | 33 + doc/src/Modify.txt | 2 +- doc/src/Modify_atom.txt | 2 +- doc/src/Modify_body.txt | 9 +- doc/src/Modify_bond.txt | 2 +- doc/src/Modify_command.txt | 2 +- doc/src/Modify_compute.txt | 2 +- doc/src/Modify_contribute.txt | 23 +- doc/src/Modify_dump.txt | 2 +- doc/src/Modify_fix.txt | 2 +- doc/src/Modify_kspace.txt | 2 +- doc/src/Modify_min.txt | 2 +- doc/src/Modify_overview.txt | 2 +- doc/src/Modify_pair.txt | 2 +- doc/src/Modify_region.txt | 2 +- doc/src/Modify_thermo.txt | 2 +- doc/src/Modify_variable.txt | 2 +- doc/src/Packages.txt | 39 + ...tion_packages.txt => Packages_details.txt} | 367 +- doc/src/Packages_standard.txt | 65 + doc/src/Packages_user.txt | 74 + doc/src/Python.txt | 2 +- doc/src/Python_call.txt | 2 +- doc/src/Python_examples.txt | 2 +- doc/src/Python_install.txt | 2 +- doc/src/Python_library.txt | 16 +- doc/src/Python_mpi.txt | 2 +- doc/src/Python_pylammps.txt | 6 +- doc/src/Python_run.txt | 2 +- doc/src/Python_shlib.txt | 2 +- doc/src/Python_test.txt | 2 +- doc/src/Section_accelerate.txt | 391 --- doc/src/Section_commands.txt | 1293 ------- doc/src/Section_history.txt | 135 - doc/src/Section_howto.txt | 3011 ----------------- doc/src/Section_intro.txt | 550 --- doc/src/Section_start.txt | 164 +- doc/src/Speed.txt | 64 + doc/src/{Section_perf.txt => Speed_bench.txt} | 21 +- doc/src/Speed_compare.txt | 73 + doc/src/{accelerate_gpu.txt => Speed_gpu.txt} | 17 +- .../{accelerate_intel.txt => Speed_intel.txt} | 24 +- ...accelerate_kokkos.txt => Speed_kokkos.txt} | 329 +- doc/src/Speed_measure.txt | 55 + doc/src/{accelerate_omp.txt => Speed_omp.txt} | 15 +- doc/src/{accelerate_opt.txt => Speed_opt.txt} | 13 +- doc/src/Speed_packages.txt | 192 ++ doc/src/Speed_tips.txt | 63 + doc/src/Tools.txt | 14 +- doc/src/angle_charmm.txt | 13 +- doc/src/angle_class2.txt | 13 +- doc/src/angle_coeff.txt | 8 +- doc/src/angle_cosine.txt | 13 +- doc/src/angle_cosine_buck6d.txt | 2 +- doc/src/angle_cosine_delta.txt | 13 +- doc/src/angle_cosine_periodic.txt | 21 +- doc/src/angle_cosine_shift.txt | 13 +- doc/src/angle_cosine_shift_exp.txt | 13 +- doc/src/angle_cosine_squared.txt | 13 +- doc/src/angle_dipole.txt | 13 +- doc/src/angle_fourier.txt | 13 +- doc/src/angle_fourier_simple.txt | 13 +- doc/src/angle_harmonic.txt | 13 +- doc/src/angle_hybrid.txt | 2 +- doc/src/angle_none.txt | 2 +- doc/src/angle_quartic.txt | 13 +- doc/src/angle_sdk.txt | 2 +- doc/src/angle_style.txt | 8 +- doc/src/angle_table.txt | 13 +- doc/src/angle_zero.txt | 2 +- doc/src/atom_modify.txt | 2 +- doc/src/atom_style.txt | 35 +- doc/src/balance.txt | 2 +- doc/src/bond_class2.txt | 13 +- doc/src/bond_coeff.txt | 7 +- doc/src/bond_fene.txt | 13 +- doc/src/bond_fene_expand.txt | 13 +- doc/src/bond_gromos.txt | 13 +- doc/src/bond_harmonic.txt | 13 +- doc/src/bond_harmonic_shift.txt | 13 +- doc/src/bond_harmonic_shift_cut.txt | 13 +- doc/src/bond_hybrid.txt | 2 +- doc/src/bond_morse.txt | 13 +- doc/src/bond_none.txt | 2 +- doc/src/bond_nonlinear.txt | 13 +- doc/src/bond_oxdna.txt | 2 +- doc/src/bond_quartic.txt | 13 +- doc/src/bond_style.txt | 7 +- doc/src/bond_table.txt | 13 +- doc/src/bond_write.txt | 2 +- doc/src/bond_zero.txt | 2 +- doc/src/boundary.txt | 8 +- doc/src/box.txt | 8 +- doc/src/change_box.txt | 20 +- doc/src/clear.txt | 2 +- doc/src/comm_modify.txt | 2 +- doc/src/comm_style.txt | 2 +- doc/src/compute.txt | 30 +- doc/src/compute_ackland_atom.txt | 4 +- doc/src/compute_angle.txt | 6 +- doc/src/compute_angle_local.txt | 6 +- doc/src/compute_angmom_chunk.txt | 13 +- doc/src/compute_basal_atom.txt | 7 +- doc/src/compute_body_local.txt | 17 +- doc/src/compute_bond.txt | 6 +- doc/src/compute_bond_local.txt | 6 +- doc/src/compute_centro_atom.txt | 6 +- doc/src/compute_chunk_atom.txt | 27 +- doc/src/compute_cluster_atom.txt | 4 +- doc/src/compute_cna_atom.txt | 4 +- doc/src/compute_cnp_atom.txt | 4 +- doc/src/compute_com.txt | 7 +- doc/src/compute_com_chunk.txt | 14 +- doc/src/compute_contact_atom.txt | 4 +- doc/src/compute_coord_atom.txt | 7 +- doc/src/compute_damage_atom.txt | 4 +- doc/src/compute_dihedral.txt | 6 +- doc/src/compute_dihedral_local.txt | 6 +- doc/src/compute_dilatation_atom.txt | 7 +- doc/src/compute_dipole_chunk.txt | 13 +- doc/src/compute_displace_atom.txt | 7 +- doc/src/compute_dpd.txt | 8 +- doc/src/compute_dpd_atom.txt | 8 +- doc/src/compute_edpd_temp_atom.txt | 8 +- doc/src/compute_entropy_atom.txt | 6 +- doc/src/compute_erotate_asphere.txt | 4 +- doc/src/compute_erotate_rigid.txt | 8 +- doc/src/compute_erotate_sphere.txt | 4 +- doc/src/compute_erotate_sphere_atom.txt | 4 +- doc/src/compute_event_displace.txt | 4 +- doc/src/compute_fep.txt | 6 +- doc/src/compute_global_atom.txt | 6 +- doc/src/compute_group_group.txt | 6 +- doc/src/compute_gyration.txt | 6 +- doc/src/compute_gyration_chunk.txt | 13 +- doc/src/compute_heat_flux.txt | 12 +- doc/src/compute_hexorder_atom.txt | 9 +- doc/src/compute_improper.txt | 6 +- doc/src/compute_improper_local.txt | 6 +- doc/src/compute_inertia_chunk.txt | 13 +- doc/src/compute_ke.txt | 4 +- doc/src/compute_ke_atom.txt | 4 +- doc/src/compute_ke_atom_eff.txt | 8 +- doc/src/compute_ke_eff.txt | 4 +- doc/src/compute_ke_rigid.txt | 6 +- doc/src/compute_meso_e_atom.txt | 4 +- doc/src/compute_meso_rho_atom.txt | 4 +- doc/src/compute_meso_t_atom.txt | 4 +- doc/src/compute_modify.txt | 2 +- doc/src/compute_msd.txt | 7 +- doc/src/compute_msd_chunk.txt | 11 +- doc/src/compute_msd_nongauss.txt | 7 +- doc/src/compute_omega_chunk.txt | 13 +- doc/src/compute_orientorder_atom.txt | 9 +- doc/src/compute_pair.txt | 7 +- doc/src/compute_pair_local.txt | 6 +- doc/src/compute_pe.txt | 7 +- doc/src/compute_pe_atom.txt | 4 +- doc/src/compute_plasticity_atom.txt | 7 +- doc/src/compute_pressure.txt | 17 +- doc/src/compute_pressure_uef.txt | 2 +- doc/src/compute_property_atom.txt | 16 +- doc/src/compute_property_chunk.txt | 17 +- doc/src/compute_property_local.txt | 14 +- doc/src/compute_rdf.txt | 4 +- doc/src/compute_reduce.txt | 4 +- doc/src/compute_rigid_local.txt | 12 +- doc/src/compute_saed.txt | 9 +- doc/src/compute_slice.txt | 6 +- doc/src/compute_smd_contact_radius.txt | 8 +- doc/src/compute_smd_damage.txt | 10 +- doc/src/compute_smd_hourglass_error.txt | 10 +- doc/src/compute_smd_internal_energy.txt | 6 +- doc/src/compute_smd_plastic_strain.txt | 6 +- doc/src/compute_smd_plastic_strain_rate.txt | 6 +- doc/src/compute_smd_rho.txt | 6 +- doc/src/compute_smd_tlsph_defgrad.txt | 7 +- doc/src/compute_smd_tlsph_dt.txt | 6 +- doc/src/compute_smd_tlsph_num_neighs.txt | 6 +- doc/src/compute_smd_tlsph_shape.txt | 7 +- doc/src/compute_smd_tlsph_strain.txt | 7 +- doc/src/compute_smd_tlsph_strain_rate.txt | 7 +- doc/src/compute_smd_tlsph_stress.txt | 11 +- .../compute_smd_triangle_mesh_vertices.txt | 8 +- doc/src/compute_smd_ulsph_num_neighs.txt | 4 +- doc/src/compute_smd_ulsph_strain.txt | 4 +- doc/src/compute_smd_ulsph_strain_rate.txt | 7 +- doc/src/compute_smd_ulsph_stress.txt | 7 +- doc/src/compute_smd_vol.txt | 6 +- doc/src/compute_sna_atom.txt | 7 +- doc/src/compute_spin.txt | 2 +- doc/src/compute_stress_atom.txt | 7 +- doc/src/compute_tally.txt | 2 +- doc/src/compute_tdpd_cc_atom.txt | 8 +- doc/src/compute_temp.txt | 21 +- doc/src/compute_temp_asphere.txt | 10 +- doc/src/compute_temp_body.txt | 10 +- doc/src/compute_temp_chunk.txt | 18 +- doc/src/compute_temp_com.txt | 10 +- doc/src/compute_temp_cs.txt | 13 +- doc/src/compute_temp_deform.txt | 10 +- doc/src/compute_temp_deform_eff.txt | 6 +- doc/src/compute_temp_drude.txt | 14 +- doc/src/compute_temp_eff.txt | 6 +- doc/src/compute_temp_partial.txt | 21 +- doc/src/compute_temp_profile.txt | 10 +- doc/src/compute_temp_ramp.txt | 10 +- doc/src/compute_temp_region.txt | 10 +- doc/src/compute_temp_region_eff.txt | 6 +- doc/src/compute_temp_rotate.txt | 10 +- doc/src/compute_temp_sphere.txt | 10 +- doc/src/compute_temp_uef.txt | 2 +- doc/src/compute_ti.txt | 7 +- doc/src/compute_torque_chunk.txt | 11 +- doc/src/compute_vacf.txt | 7 +- doc/src/compute_vcm_chunk.txt | 13 +- doc/src/compute_voronoi_atom.txt | 28 +- doc/src/compute_xrd.txt | 4 +- doc/src/create_atoms.txt | 2 +- doc/src/create_bonds.txt | 2 +- doc/src/create_box.txt | 8 +- doc/src/delete_atoms.txt | 2 +- doc/src/delete_bonds.txt | 2 +- doc/src/dielectric.txt | 2 +- doc/src/dihedral_charmm.txt | 13 +- doc/src/dihedral_class2.txt | 13 +- doc/src/dihedral_coeff.txt | 8 +- doc/src/dihedral_cosine_shift_exp.txt | 13 +- doc/src/dihedral_fourier.txt | 13 +- doc/src/dihedral_harmonic.txt | 13 +- doc/src/dihedral_helix.txt | 13 +- doc/src/dihedral_hybrid.txt | 2 +- doc/src/dihedral_multi_harmonic.txt | 13 +- doc/src/dihedral_nharmonic.txt | 13 +- doc/src/dihedral_none.txt | 2 +- doc/src/dihedral_opls.txt | 13 +- doc/src/dihedral_quadratic.txt | 13 +- doc/src/dihedral_spherical.txt | 2 +- doc/src/dihedral_style.txt | 8 +- doc/src/dihedral_table.txt | 13 +- doc/src/dihedral_table_cut.txt | 2 +- doc/src/dihedral_zero.txt | 2 +- doc/src/dimension.txt | 4 +- doc/src/displace_atoms.txt | 2 +- doc/src/dump.txt | 16 +- doc/src/dump_cfg_uef.txt | 2 +- doc/src/dump_h5md.txt | 2 +- doc/src/dump_image.txt | 16 +- doc/src/dump_modify.txt | 2 +- doc/src/dump_molfile.txt | 2 +- doc/src/dump_netcdf.txt | 2 +- doc/src/dump_vtk.txt | 2 +- doc/src/echo.txt | 2 +- doc/src/fix.txt | 24 +- doc/src/fix_adapt.txt | 10 +- doc/src/fix_adapt_fep.txt | 10 +- doc/src/fix_addforce.txt | 28 +- doc/src/fix_addtorque.txt | 12 +- doc/src/fix_append_atoms.txt | 10 +- doc/src/fix_atc.txt | 10 +- doc/src/fix_atom_swap.txt | 6 +- doc/src/fix_ave_atom.txt | 16 +- doc/src/fix_ave_chunk.txt | 35 +- doc/src/fix_ave_correlate.txt | 23 +- doc/src/fix_ave_correlate_long.txt | 2 +- doc/src/fix_ave_histo.txt | 17 +- doc/src/fix_ave_time.txt | 11 +- doc/src/fix_aveforce.txt | 26 +- doc/src/fix_balance.txt | 6 +- doc/src/fix_bocs.txt | 2 +- doc/src/fix_bond_break.txt | 6 +- doc/src/fix_bond_create.txt | 6 +- doc/src/fix_bond_react.txt | 7 +- doc/src/fix_bond_swap.txt | 16 +- doc/src/fix_box_relax.txt | 22 +- doc/src/fix_cmap.txt | 8 +- doc/src/fix_colvars.txt | 8 +- doc/src/fix_controller.txt | 8 +- doc/src/fix_deform.txt | 22 +- doc/src/fix_deposit.txt | 12 +- doc/src/fix_dpd_energy.txt | 13 +- doc/src/fix_dpd_source.txt | 10 +- doc/src/fix_drag.txt | 8 +- doc/src/fix_drude.txt | 10 +- doc/src/fix_drude_transform.txt | 6 +- doc/src/fix_dt_reset.txt | 6 +- doc/src/fix_efield.txt | 11 +- doc/src/fix_ehex.txt | 2 +- doc/src/fix_enforce2d.txt | 19 +- doc/src/fix_eos_cv.txt | 2 +- doc/src/fix_eos_table.txt | 2 +- doc/src/fix_eos_table_rx.txt | 13 +- doc/src/fix_evaporate.txt | 8 +- doc/src/fix_external.txt | 15 +- doc/src/fix_filter_corotate.txt | 9 +- doc/src/fix_flow_gauss.txt | 12 +- doc/src/fix_freeze.txt | 26 +- doc/src/fix_gcmc.txt | 6 +- doc/src/fix_gld.txt | 4 +- doc/src/fix_gle.txt | 8 +- doc/src/fix_gravity.txt | 23 +- doc/src/fix_grem.txt | 2 +- doc/src/fix_halt.txt | 10 +- doc/src/fix_heat.txt | 13 +- doc/src/fix_imd.txt | 8 +- doc/src/fix_indent.txt | 6 +- doc/src/fix_ipi.txt | 2 +- doc/src/fix_langevin.txt | 23 +- doc/src/fix_langevin_drude.txt | 11 +- doc/src/fix_langevin_eff.txt | 10 +- doc/src/fix_langevin_spin.txt | 2 +- doc/src/fix_latte.txt | 8 +- doc/src/fix_lb_fluid.txt | 8 +- doc/src/fix_lb_momentum.txt | 10 +- doc/src/fix_lb_pc.txt | 10 +- doc/src/fix_lb_rigid_pc_sphere.txt | 36 +- doc/src/fix_lb_viscous.txt | 8 +- doc/src/fix_lineforce.txt | 8 +- doc/src/fix_manifoldforce.txt | 10 +- doc/src/fix_meso.txt | 10 +- doc/src/fix_meso_stationary.txt | 10 +- doc/src/fix_modify.txt | 2 +- doc/src/fix_momentum.txt | 21 +- doc/src/fix_move.txt | 9 +- doc/src/fix_mscg.txt | 2 +- doc/src/fix_msst.txt | 6 +- doc/src/fix_mvv_dpd.txt | 10 +- doc/src/fix_neb.txt | 14 +- doc/src/fix_nh.txt | 26 +- doc/src/fix_nh_eff.txt | 2 +- doc/src/fix_nh_uef.txt | 2 +- doc/src/fix_nph_asphere.txt | 13 +- doc/src/fix_nph_body.txt | 13 +- doc/src/fix_nph_sphere.txt | 13 +- doc/src/fix_nphug.txt | 19 +- doc/src/fix_npt_asphere.txt | 13 +- doc/src/fix_npt_body.txt | 13 +- doc/src/fix_npt_sphere.txt | 13 +- doc/src/fix_nve.txt | 21 +- doc/src/fix_nve_asphere.txt | 21 +- doc/src/fix_nve_asphere_noforce.txt | 10 +- doc/src/fix_nve_body.txt | 16 +- doc/src/fix_nve_dot.txt | 2 +- doc/src/fix_nve_dotc_langevin.txt | 2 +- doc/src/fix_nve_eff.txt | 10 +- doc/src/fix_nve_limit.txt | 18 +- doc/src/fix_nve_line.txt | 16 +- doc/src/fix_nve_manifold_rattle.txt | 12 +- doc/src/fix_nve_noforce.txt | 10 +- doc/src/fix_nve_sphere.txt | 21 +- doc/src/fix_nve_spin.txt | 2 +- doc/src/fix_nve_tri.txt | 18 +- doc/src/fix_nvk.txt | 10 +- doc/src/fix_nvt_asphere.txt | 13 +- doc/src/fix_nvt_body.txt | 13 +- doc/src/fix_nvt_manifold_rattle.txt | 20 +- doc/src/fix_nvt_sllod.txt | 13 +- doc/src/fix_nvt_sllod_eff.txt | 2 +- doc/src/fix_nvt_sphere.txt | 13 +- doc/src/fix_oneway.txt | 10 +- doc/src/fix_orient.txt | 14 +- doc/src/fix_phonon.txt | 4 +- doc/src/fix_pimd.txt | 17 +- doc/src/fix_planeforce.txt | 8 +- doc/src/fix_poems.txt | 8 +- doc/src/fix_pour.txt | 8 +- doc/src/fix_precession_spin.txt | 6 +- doc/src/fix_press_berendsen.txt | 9 +- doc/src/fix_print.txt | 10 +- doc/src/fix_property_atom.txt | 29 +- doc/src/fix_python_invoke.txt | 2 +- doc/src/fix_python_move.txt | 10 +- doc/src/fix_qbmsst.txt | 10 +- doc/src/fix_qeq.txt | 7 +- doc/src/fix_qeq_comb.txt | 19 +- doc/src/fix_qeq_reax.txt | 17 +- doc/src/fix_qmmm.txt | 8 +- doc/src/fix_qtb.txt | 2 +- doc/src/fix_reax_bonds.txt | 14 +- doc/src/fix_reaxc_species.txt | 10 +- doc/src/fix_recenter.txt | 12 +- doc/src/fix_restrain.txt | 6 +- doc/src/fix_rhok.txt | 2 +- doc/src/fix_rigid.txt | 49 +- doc/src/fix_rx.txt | 13 +- doc/src/fix_saed_vtk.txt | 2 +- doc/src/fix_setforce.txt | 26 +- doc/src/fix_shake.txt | 25 +- doc/src/fix_shardlow.txt | 13 +- doc/src/fix_smd.txt | 14 +- doc/src/fix_smd_adjust_dt.txt | 2 +- doc/src/fix_smd_integrate_tlsph.txt | 2 +- doc/src/fix_smd_integrate_ulsph.txt | 2 +- doc/src/fix_smd_move_triangulated_surface.txt | 2 +- doc/src/fix_smd_setvel.txt | 8 +- doc/src/fix_smd_wall_surface.txt | 2 +- doc/src/fix_spring.txt | 24 +- doc/src/fix_spring_chunk.txt | 6 +- doc/src/fix_spring_rg.txt | 10 +- doc/src/fix_spring_self.txt | 10 +- doc/src/fix_srd.txt | 12 +- doc/src/fix_store_force.txt | 10 +- doc/src/fix_store_state.txt | 10 +- doc/src/fix_surface_global.txt | 2 +- doc/src/fix_temp_berendsen.txt | 12 +- doc/src/fix_temp_csvr.txt | 12 +- doc/src/fix_temp_rescale.txt | 12 +- doc/src/fix_temp_rescale_eff.txt | 8 +- doc/src/fix_tfmc.txt | 2 +- doc/src/fix_thermal_conductivity.txt | 8 +- doc/src/fix_ti_spring.txt | 15 +- doc/src/fix_tmd.txt | 5 +- doc/src/fix_ttm.txt | 25 +- doc/src/fix_tune_kspace.txt | 2 +- doc/src/fix_vector.txt | 9 +- doc/src/fix_viscosity.txt | 29 +- doc/src/fix_viscous.txt | 8 +- doc/src/fix_wall.txt | 29 +- doc/src/fix_wall_body_polygon.txt | 12 +- doc/src/fix_wall_body_polyhedron.txt | 12 +- doc/src/fix_wall_ees.txt | 2 +- doc/src/fix_wall_gran.txt | 8 +- doc/src/fix_wall_gran_region.txt | 8 +- doc/src/fix_wall_piston.txt | 10 +- doc/src/fix_wall_reflect.txt | 21 +- doc/src/fix_wall_region.txt | 13 +- doc/src/fix_wall_srd.txt | 8 +- doc/src/fixes.txt | 2 + doc/src/group.txt | 2 +- doc/src/group2ndx.txt | 2 +- doc/src/if.txt | 8 +- doc/src/improper_class2.txt | 13 +- doc/src/improper_coeff.txt | 8 +- doc/src/improper_cossq.txt | 13 +- doc/src/improper_cvff.txt | 13 +- doc/src/improper_distance.txt | 2 +- doc/src/improper_fourier.txt | 13 +- doc/src/improper_harmonic.txt | 13 +- doc/src/improper_hybrid.txt | 2 +- doc/src/improper_inversion_harmonic.txt | 2 +- doc/src/improper_none.txt | 2 +- doc/src/improper_ring.txt | 13 +- doc/src/improper_style.txt | 8 +- doc/src/improper_umbrella.txt | 15 +- doc/src/improper_zero.txt | 2 +- doc/src/include.txt | 2 +- doc/src/info.txt | 2 +- doc/src/jump.txt | 2 +- doc/src/kspace_modify.txt | 20 +- doc/src/kspace_style.txt | 32 +- doc/src/label.txt | 2 +- doc/src/lammps.book | 92 +- doc/src/lammps_support.txt | 7 - doc/src/lammps_tutorials.txt | 6 - doc/src/lattice.txt | 2 +- doc/src/log.txt | 2 +- doc/src/mass.txt | 2 +- doc/src/min_modify.txt | 2 +- doc/src/min_style.txt | 2 +- doc/src/minimize.txt | 2 +- doc/src/molecule.txt | 7 +- doc/src/neb.txt | 7 +- doc/src/neigh_modify.txt | 2 +- doc/src/neighbor.txt | 2 +- doc/src/newton.txt | 2 +- doc/src/next.txt | 2 +- doc/src/package.txt | 8 +- doc/src/pair_adp.txt | 13 +- doc/src/pair_agni.txt | 16 +- doc/src/pair_airebo.txt | 13 +- doc/src/pair_atm.txt | 5 +- doc/src/pair_awpmd.txt | 2 +- doc/src/pair_beck.txt | 13 +- doc/src/pair_body_nparticle.txt | 13 +- doc/src/pair_body_rounded_polygon.txt | 7 +- doc/src/pair_body_rounded_polyhedron.txt | 7 +- doc/src/pair_bop.txt | 2 +- doc/src/pair_born.txt | 21 +- doc/src/pair_brownian.txt | 6 +- doc/src/pair_buck.txt | 18 +- doc/src/pair_buck6d_coul_gauss.txt | 2 +- doc/src/pair_buck_long.txt | 13 +- doc/src/pair_charmm.txt | 13 +- doc/src/pair_class2.txt | 13 +- doc/src/pair_coeff.txt | 19 +- doc/src/pair_colloid.txt | 13 +- doc/src/pair_comb.txt | 13 +- doc/src/pair_coul.txt | 39 +- doc/src/pair_coul_diel.txt | 2 +- doc/src/pair_coul_shield.txt | 2 +- doc/src/pair_cs.txt | 6 +- doc/src/pair_dipole.txt | 13 +- doc/src/pair_dpd.txt | 13 +- doc/src/pair_dpd_fdt.txt | 13 +- doc/src/pair_dsmc.txt | 2 +- doc/src/pair_eam.txt | 20 +- doc/src/pair_edip.txt | 13 +- doc/src/pair_eff.txt | 2 +- doc/src/pair_eim.txt | 13 +- doc/src/pair_exp6_rx.txt | 13 +- doc/src/pair_extep.txt | 2 +- doc/src/pair_gauss.txt | 13 +- doc/src/pair_gayberne.txt | 13 +- doc/src/pair_gran.txt | 13 +- doc/src/pair_gromacs.txt | 13 +- doc/src/pair_gw.txt | 2 +- doc/src/pair_hbond_dreiding.txt | 21 +- doc/src/pair_hybrid.txt | 10 +- doc/src/pair_ilp_graphene_hbn.txt | 2 +- doc/src/pair_kim.txt | 6 +- doc/src/pair_kolmogorov_crespi_full.txt | 2 +- doc/src/pair_kolmogorov_crespi_z.txt | 2 +- doc/src/pair_lcbop.txt | 2 +- doc/src/pair_line_lj.txt | 2 +- doc/src/pair_list.txt | 2 +- doc/src/pair_lj.txt | 39 +- doc/src/pair_lj96.txt | 13 +- doc/src/pair_lj_cubic.txt | 13 +- doc/src/pair_lj_expand.txt | 13 +- doc/src/pair_lj_long.txt | 15 +- doc/src/pair_lj_smooth.txt | 13 +- doc/src/pair_lj_smooth_linear.txt | 13 +- doc/src/pair_lj_soft.txt | 13 +- doc/src/pair_lubricate.txt | 6 +- doc/src/pair_lubricateU.txt | 2 +- doc/src/pair_mdf.txt | 2 +- doc/src/pair_meam.txt | 2 +- doc/src/pair_meam_spline.txt | 13 +- doc/src/pair_meam_sw_spline.txt | 2 +- doc/src/pair_meso.txt | 2 +- doc/src/pair_mgpt.txt | 2 +- doc/src/pair_mie.txt | 2 +- doc/src/pair_modify.txt | 2 +- doc/src/pair_momb.txt | 2 +- doc/src/pair_morse.txt | 13 +- doc/src/pair_multi_lucy.txt | 2 +- doc/src/pair_multi_lucy_rx.txt | 13 +- doc/src/pair_nb3b_harmonic.txt | 13 +- doc/src/pair_nm.txt | 13 +- doc/src/pair_none.txt | 2 +- doc/src/pair_oxdna.txt | 2 +- doc/src/pair_oxdna2.txt | 2 +- doc/src/pair_peri.txt | 13 +- doc/src/pair_polymorphic.txt | 2 +- doc/src/pair_python.txt | 2 +- doc/src/pair_quip.txt | 2 +- doc/src/pair_reax.txt | 2 +- doc/src/pair_reaxc.txt | 23 +- doc/src/pair_resquared.txt | 13 +- doc/src/pair_sdk.txt | 13 +- doc/src/pair_smd_hertz.txt | 2 +- doc/src/pair_smd_tlsph.txt | 2 +- doc/src/pair_smd_triangulated_surface.txt | 2 +- doc/src/pair_smd_ulsph.txt | 2 +- doc/src/pair_smtbq.txt | 2 +- doc/src/pair_snap.txt | 13 +- doc/src/pair_soft.txt | 13 +- doc/src/pair_sph_heatconduction.txt | 2 +- doc/src/pair_sph_idealgas.txt | 2 +- doc/src/pair_sph_lj.txt | 2 +- doc/src/pair_sph_rhosum.txt | 2 +- doc/src/pair_sph_taitwater.txt | 2 +- doc/src/pair_sph_taitwater_morris.txt | 2 +- doc/src/pair_spin_dmi.txt | 43 +- doc/src/pair_spin_exchange.txt | 30 +- doc/src/pair_spin_magelec.txt | 2 +- doc/src/pair_spin_neel.txt | 2 +- doc/src/pair_srp.txt | 2 +- doc/src/pair_style.txt | 20 +- doc/src/pair_sw.txt | 13 +- doc/src/pair_table.txt | 13 +- doc/src/pair_table_rx.txt | 13 +- doc/src/pair_tersoff.txt | 13 +- doc/src/pair_tersoff_mod.txt | 13 +- doc/src/pair_tersoff_zbl.txt | 13 +- doc/src/pair_thole.txt | 17 +- doc/src/pair_tri_lj.txt | 2 +- doc/src/pair_ufm.txt | 13 +- doc/src/pair_vashishta.txt | 13 +- doc/src/pair_write.txt | 2 +- doc/src/pair_yukawa.txt | 13 +- doc/src/pair_yukawa_colloid.txt | 13 +- doc/src/pair_zbl.txt | 13 +- doc/src/pair_zero.txt | 2 +- doc/src/pairs.txt | 3 +- doc/src/partition.txt | 2 +- doc/src/prd.txt | 6 +- doc/src/print.txt | 2 +- doc/src/processors.txt | 2 +- doc/src/python.txt | 8 +- doc/src/quit.txt | 2 +- doc/src/read_data.txt | 14 +- doc/src/read_dump.txt | 2 +- doc/src/read_restart.txt | 2 +- doc/src/region.txt | 24 +- doc/src/replicate.txt | 2 +- doc/src/rerun.txt | 2 +- doc/src/reset_ids.txt | 2 +- doc/src/reset_timestep.txt | 2 +- doc/src/restart.txt | 2 +- doc/src/run.txt | 8 +- doc/src/run_style.txt | 32 +- doc/src/set.txt | 2 +- doc/src/shell.txt | 2 +- doc/src/special_bonds.txt | 2 +- doc/src/suffix.txt | 2 +- doc/src/tad.txt | 7 +- doc/src/temper.txt | 17 +- doc/src/temper_grem.txt | 2 +- doc/src/temper_npt.txt | 2 +- doc/src/thermo.txt | 2 +- doc/src/thermo_modify.txt | 2 +- doc/src/thermo_style.txt | 12 +- doc/src/timer.txt | 2 +- doc/src/timestep.txt | 2 +- doc/src/tutorials.txt | 15 - doc/src/uncompute.txt | 2 +- doc/src/undump.txt | 2 +- doc/src/unfix.txt | 2 +- doc/src/units.txt | 2 +- doc/src/variable.txt | 42 +- doc/src/velocity.txt | 19 +- doc/src/write_coeff.txt | 2 +- doc/src/write_data.txt | 2 +- doc/src/write_dump.txt | 2 +- doc/src/write_restart.txt | 2 +- doc/utils/converters/lammpsdoc/txt2html.py | 12 +- doc/utils/converters/lammpsdoc/txt2rst.py | 2 + doc/utils/requirements.txt | 1 + examples/DIFFUSE/README | 4 +- examples/DIFFUSE/log.13Oct16.msd.2d.g++.8 | 245 -- examples/DIFFUSE/log.3Aug18.msd.2d.g++.8 | 251 ++ ...vacf.2d.g++.8 => log.3Aug18.vacf.2d.g++.8} | 54 +- examples/SPIN/bfo/in.spin.bfo | 11 +- examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 10 +- examples/USER/diffraction/BulkNi.in | 2 +- src/BODY/fix_wall_body_polygon.cpp | 5 +- src/BODY/pair_body_rounded_polyhedron.cpp | 7 +- src/KOKKOS/fix_nh_kokkos.cpp | 2 +- src/MANYBODY/pair_atm.cpp | 18 +- src/MANYBODY/pair_atm.h | 4 +- src/MANYBODY/pair_eam_cd.cpp | 677 ++++ .../pair_cdeam.h => MANYBODY/pair_eam_cd.h} | 22 +- src/Purge.list | 3 + src/SPIN/atom_vec_spin.cpp | 6 +- src/SPIN/compute_spin.cpp | 20 +- src/SPIN/pair_spin_dmi.cpp | 116 +- src/SPIN/pair_spin_dmi.h | 15 +- src/SPIN/pair_spin_exchange.cpp | 52 +- src/SPIN/pair_spin_magelec.cpp | 88 +- src/SPIN/pair_spin_neel.cpp | 10 +- src/SPIN/pair_spin_neel.h | 4 +- src/USER-BOCS/fix_bocs.cpp | 45 +- src/USER-MISC/Install.sh | 40 - src/USER-MISC/README | 1 - src/USER-MISC/pair_cdeam.cpp | 644 ---- src/fix_nh.cpp | 36 +- src/variable.cpp | 189 +- src/version.h | 2 +- tools/emacs/README.md | 82 + tools/emacs/README.txt | 23 - tools/emacs/{lammps.el => lammps-mode.el} | 59 +- 738 files changed, 11121 insertions(+), 10204 deletions(-) create mode 100644 cmake/etc/profile.d/lammps.csh.in create mode 100644 cmake/etc/profile.d/lammps.sh.in create mode 100644 doc/src/Commands.txt create mode 100644 doc/src/Commands_all.txt create mode 100644 doc/src/Commands_bond.txt create mode 100644 doc/src/Commands_category.txt create mode 100644 doc/src/Commands_compute.txt create mode 100644 doc/src/Commands_fix.txt create mode 100644 doc/src/Commands_input.txt create mode 100644 doc/src/Commands_kspace.txt create mode 100644 doc/src/Commands_pair.txt create mode 100644 doc/src/Commands_parse.txt create mode 100644 doc/src/Commands_structure.txt create mode 100644 doc/src/Eqs/pair_spin_dmi_forces.jpg create mode 100644 doc/src/Eqs/pair_spin_dmi_forces.tex create mode 100644 doc/src/Howto.txt create mode 100644 doc/src/Howto_2d.txt create mode 100644 doc/src/Howto_barostat.txt rename doc/src/{tutorial_bash_on_windows.txt => Howto_bash.txt} (99%) mode change 100644 => 100755 create mode 100644 doc/src/Howto_bioFF.txt rename doc/src/{body.txt => Howto_body.txt} (96%) create mode 100644 doc/src/Howto_chunk.txt create mode 100644 doc/src/Howto_coreshell.txt create mode 100644 doc/src/Howto_couple.txt create mode 100644 doc/src/Howto_diffusion.txt create mode 100644 doc/src/Howto_dispersion.txt create mode 100644 doc/src/Howto_drude.txt rename doc/src/{tutorial_drude.txt => Howto_drude2.txt} (99%) create mode 100644 doc/src/Howto_elastic.txt rename doc/src/{tutorial_github.txt => Howto_github.txt} (98%) create mode 100644 doc/src/Howto_granular.txt create mode 100644 doc/src/Howto_kappa.txt create mode 100644 doc/src/Howto_library.txt rename doc/src/{manifolds.txt => Howto_manifold.txt} (97%) create mode 100644 doc/src/Howto_multiple.txt create mode 100644 doc/src/Howto_nemd.txt create mode 100644 doc/src/Howto_output.txt create mode 100644 doc/src/Howto_polarizable.txt rename doc/src/{tutorial_pylammps.txt => Howto_pylammps.txt} (95%) create mode 100644 doc/src/Howto_replica.txt create mode 100644 doc/src/Howto_restart.txt create mode 100644 doc/src/Howto_spc.txt create mode 100644 doc/src/Howto_spherical.txt create mode 100644 doc/src/Howto_spins.txt create mode 100644 doc/src/Howto_temperature.txt create mode 100644 doc/src/Howto_thermostat.txt create mode 100644 doc/src/Howto_tip3p.txt create mode 100644 doc/src/Howto_tip4p.txt create mode 100644 doc/src/Howto_triclinic.txt create mode 100644 doc/src/Howto_viscosity.txt create mode 100644 doc/src/Howto_viz.txt create mode 100644 doc/src/Howto_walls.txt create mode 100644 doc/src/Intro.txt create mode 100644 doc/src/Intro_authors.txt create mode 100644 doc/src/Intro_features.txt create mode 100644 doc/src/Intro_nonfeatures.txt create mode 100644 doc/src/Intro_opensource.txt create mode 100644 doc/src/Intro_overview.txt create mode 100644 doc/src/Intro_website.txt create mode 100644 doc/src/Manual_version.txt create mode 100644 doc/src/Packages.txt rename doc/src/{Section_packages.txt => Packages_details.txt} (85%) create mode 100644 doc/src/Packages_standard.txt create mode 100644 doc/src/Packages_user.txt delete mode 100644 doc/src/Section_accelerate.txt delete mode 100644 doc/src/Section_commands.txt delete mode 100644 doc/src/Section_history.txt delete mode 100644 doc/src/Section_howto.txt delete mode 100644 doc/src/Section_intro.txt create mode 100644 doc/src/Speed.txt rename doc/src/{Section_perf.txt => Speed_bench.txt} (86%) create mode 100644 doc/src/Speed_compare.txt rename doc/src/{accelerate_gpu.txt => Speed_gpu.txt} (96%) rename doc/src/{accelerate_intel.txt => Speed_intel.txt} (97%) rename doc/src/{accelerate_kokkos.txt => Speed_kokkos.txt} (59%) create mode 100644 doc/src/Speed_measure.txt rename doc/src/{accelerate_omp.txt => Speed_omp.txt} (95%) rename doc/src/{accelerate_opt.txt => Speed_opt.txt} (85%) create mode 100644 doc/src/Speed_packages.txt create mode 100644 doc/src/Speed_tips.txt delete mode 100644 doc/src/lammps_support.txt delete mode 100644 doc/src/lammps_tutorials.txt delete mode 100644 doc/src/tutorials.txt create mode 100644 doc/utils/requirements.txt delete mode 100644 examples/DIFFUSE/log.13Oct16.msd.2d.g++.8 create mode 100644 examples/DIFFUSE/log.3Aug18.msd.2d.g++.8 rename examples/DIFFUSE/{log.13Oct16.vacf.2d.g++.8 => log.3Aug18.vacf.2d.g++.8} (84%) create mode 100644 src/MANYBODY/pair_eam_cd.cpp rename src/{USER-MISC/pair_cdeam.h => MANYBODY/pair_eam_cd.h} (93%) delete mode 100755 src/USER-MISC/Install.sh delete mode 100644 src/USER-MISC/pair_cdeam.cpp create mode 100644 tools/emacs/README.md delete mode 100644 tools/emacs/README.txt rename tools/emacs/{lammps.el => lammps-mode.el} (73%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 75b79443c3..b91e58a83f 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -17,6 +17,7 @@ src/GPU/* @ndtrung81 src/KOKKOS/* @stanmoore1 src/KIM/* @ellio167 src/LATTE/* @cnegre +src/SPIN/* @julient31 src/USER-CGDNA/* @ohenrich src/USER-CGSDK/* @akohlmey src/USER-COLVARS/* @giacomofiorin @@ -44,6 +45,7 @@ src/USER-MISC/*_grem.* @dstelter92 # tools tools/msi2lmp/* @akohlmey +tools/emacs/* @HaoZeke # cmake cmake/* @junghans @rbberger diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 60a0f5d48f..f4d3cac5d2 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -9,6 +9,7 @@ set(SOVERSION 0) get_filename_component(LAMMPS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src ABSOLUTE) get_filename_component(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib ABSOLUTE) get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE) +get_filename_component(LAMMPS_DOC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../doc ABSOLUTE) # To avoid conflicts with the conventional Makefile build system, we build everything here @@ -137,8 +138,11 @@ set_property(CACHE LAMMPS_SIZE_LIMIT PROPERTY STRINGS LAMMPS_SMALLBIG LAMMPS_BIG add_definitions(-D${LAMMPS_SIZE_LIMIT}) set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -D${LAMMPS_SIZE_LIMIT}") -set(LAMMPS_MEMALIGN "64" CACHE STRING "enables the use of the posix_memalign() call instead of malloc() when large chunks or memory are allocated by LAMMPS") -add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN}) +# posix_memalign is not available on Windows +if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") + set(LAMMPS_MEMALIGN "64" CACHE STRING "enables the use of the posix_memalign() call instead of malloc() when large chunks or memory are allocated by LAMMPS") + add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN}) +endif() option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" OFF) if(LAMMPS_EXCEPTIONS) @@ -153,14 +157,15 @@ if(ENABLE_TESTING) enable_testing() endif(ENABLE_TESTING) -set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR - KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SPIN SNAP +set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR + KSPACE MANYBODY MC MEAM MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM) set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) +set(OTHER_PACKAGES CORESHELL QEQ) foreach(PKG ${DEFAULT_PACKAGES}) option(PKG_${PKG} "Build ${PKG} Package" OFF) endforeach() @@ -174,13 +179,12 @@ macro(pkg_depends PKG1 PKG2) endif() endmacro() +# "hard" dependencies between packages resulting +# in an error instead of skipping over files pkg_depends(MPIIO MPI) -pkg_depends(QEQ MANYBODY) pkg_depends(USER-ATC MANYBODY) pkg_depends(USER-LB MPI) -pkg_depends(USER-MISC MANYBODY) pkg_depends(USER-PHONON KSPACE) -pkg_depends(CORESHELL KSPACE) ###################################################### # packages with special compiler needs or external libs @@ -466,6 +470,11 @@ if(PKG_COMPRESS) list(APPEND LAMMPS_LINK_LIBS ${ZLIB_LIBRARIES}) endif() +# the windows version of LAMMPS requires a couple extra libraries +if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") + list(APPEND LAMMPS_LINK_LIBS -lwsock32 -lpsapi) +endif() + ######################################################################## # Basic system tests (standard libraries, headers, functions, types) # ######################################################################## @@ -574,6 +583,41 @@ endif() # packages which selectively include variants based on enabled styles # e.g. accelerator packages ###################################################################### +if(PKG_CORESHELL) + set(CORESHELL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/CORESHELL) + set(CORESHELL_SOURCES) + set_property(GLOBAL PROPERTY "CORESHELL_SOURCES" "${CORESHELL_SOURCES}") + + # detects styles which have a CORESHELL version + RegisterStylesExt(${CORESHELL_SOURCES_DIR} cs CORESHELL_SOURCES) + + get_property(CORESHELL_SOURCES GLOBAL PROPERTY CORESHELL_SOURCES) + + list(APPEND LIB_SOURCES ${CORESHELL_SOURCES}) + include_directories(${CORESHELL_SOURCES_DIR}) +endif() + +# Fix qeq/fire requires MANYBODY (i.e. COMB and COMB3) to be installed +if(PKG_QEQ) + set(QEQ_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/QEQ) + file(GLOB QEQ_HEADERS ${QEQ_SOURCES_DIR}/fix*.h) + file(GLOB QEQ_SOURCES ${QEQ_SOURCES_DIR}/fix*.cpp) + + if(NOT PKG_MANYBODY) + list(REMOVE_ITEM QEQ_HEADERS ${QEQ_SOURCES_DIR}/fix_qeq_fire.h) + list(REMOVE_ITEM QEQ_SOURCES ${QEQ_SOURCES_DIR}/fix_qeq_fire.cpp) + endif() + set_property(GLOBAL PROPERTY "QEQ_SOURCES" "${QEQ_SOURCES}") + + foreach(MY_HEADER ${QEQ_HEADERS}) + AddStyleHeader(${MY_HEADER} FIX) + endforeach() + + get_property(QEQ_SOURCES GLOBAL PROPERTY QEQ_SOURCES) + list(APPEND LIB_SOURCES ${QEQ_SOURCES}) + include_directories(${QEQ_SOURCES_DIR}) +endif() + if(PKG_USER-OMP) set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP) set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp @@ -585,8 +629,31 @@ if(PKG_USER-OMP) # detects styles which have USER-OMP version RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES) + get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES) + # manually add package dependent source files from USER-OMP that do not provide styles + + if(PKG_ASPHERE) + list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_nh_asphere_omp.cpp) + endif() + + if(PKG_RIGID) + list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_rigid_nh_omp.cpp) + endif() + + if(PKG_USER-REAXC) + list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/reaxc_bond_orders_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_hydrogen_bonds_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_nonbonded_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_bonds_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_init_md_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_torsion_angles_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_forces_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_multi_body_omp.cpp + ${USER-OMP_SOURCES_DIR}/reaxc_valence_angles_omp.cpp) + endif() + list(APPEND LIB_SOURCES ${USER-OMP_SOURCES}) include_directories(${USER-OMP_SOURCES_DIR}) endif() @@ -900,6 +967,80 @@ if(BUILD_EXE) endif() endif() +############################################################################### +# Build documentation +############################################################################### +option(BUILD_DOC "Build LAMMPS documentation" OFF) +if(BUILD_DOC) + include(ProcessorCount) + ProcessorCount(NPROCS) + find_package(PythonInterp 3 REQUIRED) + + set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv) + + file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/*.txt) + file(GLOB PDF_EXTRA_SOURCES ${LAMMPS_DOC_DIR}/src/lammps_commands*.txt ${LAMMPS_DOC_DIR}/src/lammps_support.txt ${LAMMPS_DOC_DIR}/src/lammps_tutorials.txt) + list(REMOVE_ITEM DOC_SOURCES ${PDF_EXTRA_SOURCES}) + + add_custom_command( + OUTPUT docenv + COMMAND ${VIRTUALENV} docenv + ) + + set(DOCENV_BINARY_DIR ${CMAKE_BINARY_DIR}/docenv/bin) + + add_custom_command( + OUTPUT requirements.txt + DEPENDS docenv + COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/utils/requirements.txt requirements.txt + COMMAND ${DOCENV_BINARY_DIR}/pip install -r requirements.txt --upgrade + COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters + ) + + set(RST_FILES "") + set(RST_DIR ${CMAKE_BINARY_DIR}/rst) + file(MAKE_DIRECTORY ${RST_DIR}) + foreach(TXT_FILE ${DOC_SOURCES}) + get_filename_component(FILENAME ${TXT_FILE} NAME_WE) + set(RST_FILE ${RST_DIR}/${FILENAME}.rst) + list(APPEND RST_FILES ${RST_FILE}) + add_custom_command( + OUTPUT ${RST_FILE} + DEPENDS requirements.txt docenv ${TXT_FILE} + COMMAND ${DOCENV_BINARY_DIR}/txt2rst -o ${RST_DIR} ${TXT_FILE} + ) + endforeach() + + add_custom_command( + OUTPUT html + DEPENDS ${RST_FILES} + COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DOC_DIR}/src ${RST_DIR} + COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${RST_DIR} html + ) + + add_custom_target( + doc ALL + DEPENDS html + SOURCES ${LAMMPS_DOC_DIR}/utils/requirements.txt ${DOC_SOURCES} + ) + + install(DIRECTORY ${CMAKE_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR}) +endif() + +############################################################################### +# Install potential files in data directory +############################################################################### +set(LAMMPS_POTENTIALS_DIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps/potentials) +install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials DESTINATION ${CMAKE_INSTALL_DATADIR}/lammps/potentials) + +configure_file(etc/profile.d/lammps.sh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh @ONLY) +configure_file(etc/profile.d/lammps.csh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh @ONLY) +install( + FILES ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh + ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh + DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/profile.d +) + ############################################################################### # Testing # diff --git a/cmake/README.md b/cmake/README.md index bafd440a64..b6644ffda9 100644 --- a/cmake/README.md +++ b/cmake/README.md @@ -275,6 +275,16 @@ cmake -C ../cmake/presets/std_nolib.cmake ../cmake -DPKG_GPU=on + + BUILD_DOC + control whether to build LAMMPS documentation + +
+
off (default)
+
on
+
+ + LAMMPS_LONGLONG_TO_LONG Workaround if your system or MPI version does not recognize long long data types diff --git a/cmake/etc/profile.d/lammps.csh.in b/cmake/etc/profile.d/lammps.csh.in new file mode 100644 index 0000000000..def49bf75c --- /dev/null +++ b/cmake/etc/profile.d/lammps.csh.in @@ -0,0 +1,2 @@ +# set environment for LAMMPS executables to find potential files +if ( "$?LAMMPS_POTENTIALS" == 0 ) setenv LAMMPS_POTENTIALS @LAMMPS_POTENTIALS_DIR@ diff --git a/cmake/etc/profile.d/lammps.sh.in b/cmake/etc/profile.d/lammps.sh.in new file mode 100644 index 0000000000..acd75fa0cf --- /dev/null +++ b/cmake/etc/profile.d/lammps.sh.in @@ -0,0 +1,2 @@ +# set environment for LAMMPS executables to find potential files +export LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS-@LAMMPS_POTENTIALS_DIR@} diff --git a/doc/Makefile b/doc/Makefile index c4bc80e7bd..81f3623499 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -157,7 +157,7 @@ $(RSTDIR)/%.rst : src/%.txt $(TXT2RST) @(\ mkdir -p $(RSTDIR) ; \ . $(VENV)/bin/activate ;\ - txt2rst $< > $@ ;\ + txt2rst -v $< > $@ ;\ deactivate ;\ ) diff --git a/doc/src/Commands.txt b/doc/src/Commands.txt new file mode 100644 index 0000000000..30e3343bd2 --- /dev/null +++ b/doc/src/Commands.txt @@ -0,0 +1,51 @@ +"Previous Section"_Run.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Packages.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html#comm) + +:line + +Commands :h2 + +These pages describe how a LAMMPS input script is formatted and the +commands in it are used to define a LAMMPS simulation. + + + + + +"LAMMPS input scripts"_Commands_input.html +"Parsing rules for input scripts"_Commands_parse.html +"Input script structure"_Commands_structure.html +"Commands by category"_Commands_category.html :all(b) + +"All commands"_Commands_all.html +"Fix commands"_Commands_fix.html +"Compute commands"_Commands_compute.html +"Pair commands"_Commands_pair.html +"Bond, angle, dihedral, improper commands"_Commands_bond.html +"KSpace solvers"_Commands_kspace.html :all(b) + + + diff --git a/doc/src/Commands_all.txt b/doc/src/Commands_all.txt new file mode 100644 index 0000000000..13db1272b9 --- /dev/null +++ b/doc/src/Commands_all.txt @@ -0,0 +1,128 @@ +"Higher level section"_Commands.html - "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 + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +All commands :h3 + +An alphabetic list of all LAMMPS commmands. + +"angle_coeff"_angle_coeff.html, +"angle_style"_angle_style.html, +"atom_modify"_atom_modify.html, +"atom_style"_atom_style.html, +"balance"_balance.html, +"bond_coeff"_bond_coeff.html, +"bond_style"_bond_style.html, +"bond_write"_bond_write.html, +"boundary"_boundary.html, +"box"_box.html, +"change_box"_change_box.html, +"clear"_clear.html, +"comm_modify"_comm_modify.html, +"comm_style"_comm_style.html, +"compute"_compute.html, +"compute_modify"_compute_modify.html, +"create_atoms"_create_atoms.html, +"create_bonds"_create_bonds.html, +"create_box"_create_box.html, +"delete_atoms"_delete_atoms.html, +"delete_bonds"_delete_bonds.html, +"dielectric"_dielectric.html, +"dihedral_coeff"_dihedral_coeff.html, +"dihedral_style"_dihedral_style.html, +"dimension"_dimension.html, +"displace_atoms"_displace_atoms.html, +"dump"_dump.html, +"dump image"_dump_image.html, +"dump_modify"_dump_modify.html, +"dump movie"_dump_image.html, +"dump netcdf"_dump_netcdf.html, +"dump netcdf/mpiio"_dump_netcdf.html, +"dump vtk"_dump_vtk.html, +"echo"_echo.html, +"fix"_fix.html, +"fix_modify"_fix_modify.html, +"group"_group.html, +"group2ndx"_group2ndx.html, +"if"_if.html, +"info"_info.html, +"improper_coeff"_improper_coeff.html, +"improper_style"_improper_style.html, +"include"_include.html, +"jump"_jump.html, +"kspace_modify"_kspace_modify.html, +"kspace_style"_kspace_style.html, +"label"_label.html, +"lattice"_lattice.html, +"log"_log.html, +"mass"_mass.html, +"minimize"_minimize.html, +"min_modify"_min_modify.html, +"min_style"_min_style.html, +"molecule"_molecule.html, +"ndx2group"_group2ndx.html, +"neb"_neb.html, +"neigh_modify"_neigh_modify.html, +"neighbor"_neighbor.html, +"newton"_newton.html, +"next"_next.html, +"package"_package.html, +"pair_coeff"_pair_coeff.html, +"pair_modify"_pair_modify.html, +"pair_style"_pair_style.html, +"pair_write"_pair_write.html, +"partition"_partition.html, +"prd"_prd.html, +"print"_print.html, +"processors"_processors.html, +"python"_python.html, +"quit"_quit.html, +"read_data"_read_data.html, +"read_dump"_read_dump.html, +"read_restart"_read_restart.html, +"region"_region.html, +"replicate"_replicate.html, +"rerun"_rerun.html, +"reset_ids"_reset_ids.html, +"reset_timestep"_reset_timestep.html, +"restart"_restart.html, +"run"_run.html, +"run_style"_run_style.html, +"set"_set.html, +"shell"_shell.html, +"special_bonds"_special_bonds.html, +"suffix"_suffix.html, +"tad"_tad.html, +"temper"_temper.html, +"temper/grem"_temper_grem.html, +"temper/npt"_temper_npt.html, +"thermo"_thermo.html, +"thermo_modify"_thermo_modify.html, +"thermo_style"_thermo_style.html, +"timer"_timer.html, +"timestep"_timestep.html, +"uncompute"_uncompute.html, +"undump"_undump.html, +"unfix"_unfix.html, +"units"_units.html, +"variable"_variable.html, +"velocity"_velocity.html, +"write_coeff"_write_coeff.html, +"write_data"_write_data.html, +"write_dump"_write_dump.html, +"write_restart"_write_restart.html :tb(c=6,ea=c) diff --git a/doc/src/Commands_bond.txt b/doc/src/Commands_bond.txt new file mode 100644 index 0000000000..314260cb14 --- /dev/null +++ b/doc/src/Commands_bond.txt @@ -0,0 +1,124 @@ +"Higher level section"_Commands.html - "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) + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +Bond, angle, dihedral, and improper commands :h3 + +:line + +Bond_style potentials :h3,link(bond) + +All LAMMPS "bond_style"_bond_style.html commands. Some styles have +accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"none"_bond_none.html, +"zero"_bond_zero.html, +"hybrid"_bond_hybrid.html :tb(c=3,ea=c) + +"class2 (ko)"_bond_class2.html, +"fene (iko)"_bond_fene.html, +"fene/expand (o)"_bond_fene_expand.html, +"gromos (o)"_bond_gromos.html, +"harmonic (ko)"_bond_harmonic.html, +"harmonic/shift (o)"_bond_harmonic_shift.html, +"harmonic/shift/cut (o)"_bond_harmonic_shift_cut.html, +"morse (o)"_bond_morse.html, +"nonlinear (o)"_bond_nonlinear.html, +"oxdna/fene"_bond_oxdna.html, +"oxdna2/fene"_bond_oxdna.html, +"quartic (o)"_bond_quartic.html, +"table (o)"_bond_table.html :tb(c=4,ea=c) + +:line + +Angle_style potentials :h3,link(angle) + +All LAMMPS "angle_style"_angle_style.html commands. Some styles have +accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"none"_angle_none.html, +"zero"_angle_zero.html, +"hybrid"_angle_hybrid.html :tb(c=3,ea=c) + +"charmm (ko)"_angle_charmm.html, +"class2 (ko)"_angle_class2.html, +"cosine (o)"_angle_cosine.html, +"cosine/delta (o)"_angle_cosine_delta.html, +"cosine/periodic (o)"_angle_cosine_periodic.html, +"cosine/shift (o)"_angle_cosine_shift.html, +"cosine/shift/exp (o)"_angle_cosine_shift_exp.html, +"cosine/squared (o)"_angle_cosine_squared.html, +"dipole (o)"_angle_dipole.html, +"fourier (o)"_angle_fourier.html, +"fourier/simple (o)"_angle_fourier_simple.html, +"harmonic (iko)"_angle_harmonic.html, +"quartic (o)"_angle_quartic.html, +"sdk"_angle_sdk.html, +"table (o)"_angle_table.html :tb(c=4,ea=c) + +:line + +Dihedral_style potentials :h3,link(dihedral) + +All LAMMPS "dihedral_style"_dihedral_style.html commands. Some styles +have accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"none"_dihedral_none.html, +"zero"_dihedral_zero.html, +"hybrid"_dihedral_hybrid.html :tb(c=3,ea=c) + +"charmm (iko)"_dihedral_charmm.html, +"charmmfsw"_dihedral_charmm.html, +"class2 (ko)"_dihedral_class2.html, +"cosine/shift/exp (o)"_dihedral_cosine_shift_exp.html, +"fourier (io)"_dihedral_fourier.html, +"harmonic (io)"_dihedral_harmonic.html, +"helix (o)"_dihedral_helix.html, +"multi/harmonic (o)"_dihedral_multi_harmonic.html, +"nharmonic (o)"_dihedral_nharmonic.html, +"opls (iko)"_dihedral_opls.htm;, +"quadratic (o)"_dihedral_quadratic.html, +"spherical (o)"_dihedral_spherical.html, +"table (o)"_dihedral_table.html, +"table/cut"_dihedral_table_cut.html :tb(c=4,ea=c) + +:line + +Improper_style potentials :h3,link(improper) + +All LAMMPS "improper_style"_improper_style.html commands. Some styles +have accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"none"_improper_none.html, +"zero"_improper_zero.html, +"hybrid"_improper_hybrid.html :tb(c=3,ea=c) + +"class2 (ko)"_improper_class2.html, +"cossq (o)"_improper_cossq.html, +"cvff (io)"_improper_cvff.html, +"distance"_improper_distance.html, +"fourier (o)"_improper_fourier.html, +"harmonic (iko)"_improper_harmonic.html, +"ring (o)"_improper_ring.html, +"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c) diff --git a/doc/src/Commands_category.txt b/doc/src/Commands_category.txt new file mode 100644 index 0000000000..5d047c6727 --- /dev/null +++ b/doc/src/Commands_category.txt @@ -0,0 +1,141 @@ +"Higher level section"_Commands.html - "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 + +Commands by category :h3 + +This page lists most of the LAMMPS commands, grouped by category. The +"Commands all"_Commands_all.html doc page lists all commands +alphabetically. It also includes long lists of style options for +entries that appear in the following categories as a single command +(fix, compute, pair, etc). + +Initialization: + +"newton"_newton.html, +"package"_package.html, +"processors"_processors.html, +"suffix"_suffix.html, +"units"_units.html :ul + +Setup simulation box: + +"boundary"_boundary.html, +"box"_box.html, +"change_box"_change_box.html, +"create_box"_create_box.html, +"dimension"_dimension.html, +"lattice"_lattice.html, +"region"_region.html :ul + +Setup atoms: + +"atom_modify"_atom_modify.html, +"atom_style"_atom_style.html, +"balance"_balance.html, +"create_atoms"_create_atoms.html, +"create_bonds"_create_bonds.html, +"delete_atoms"_delete_atoms.html, +"delete_bonds"_delete_bonds.html, +"displace_atoms"_displace_atoms.html, +"group"_group.html, +"mass"_mass.html, +"molecule"_molecule.html, +"read_data"_read_data.html, +"read_dump"_read_dump.html, +"read_restart"_read_restart.html, +"replicate"_replicate.html, +"set"_set.html, +"velocity"_velocity.html :ul + +Force fields: + +"angle_coeff"_angle_coeff.html, +"angle_style"_angle_style.html, +"bond_coeff"_bond_coeff.html, +"bond_style"_bond_style.html, +"bond_write"_bond_write.html, +"dielectric"_dielectric.html, +"dihedral_coeff"_dihedral_coeff.html, +"dihedral_style"_dihedral_style.html, +"improper_coeff"_improper_coeff.html, +"improper_style"_improper_style.html, +"kspace_modify"_kspace_modify.html, +"kspace_style"_kspace_style.html, +"pair_coeff"_pair_coeff.html, +"pair_modify"_pair_modify.html, +"pair_style"_pair_style.html, +"pair_write"_pair_write.html, +"special_bonds"_special_bonds.html :ul + +Settings: + +"comm_modify"_comm_modify.html, +"comm_style"_comm_style.html, +"info"_info.html, +"min_modify"_min_modify.html, +"min_style"_min_style.html, +"neigh_modify"_neigh_modify.html, +"neighbor"_neighbor.html, +"partition"_partition.html, +"reset_timestep"_reset_timestep.html, +"run_style"_run_style.html, +"timer"_timer.html, +"timestep"_timestep.html :ul + +Operations within timestepping (fixes) and diagnostics (computes): + +"compute"_compute.html, +"compute_modify"_compute_modify.html, +"fix"_fix.html, +"fix_modify"_fix_modify.html, +"uncompute"_uncompute.html, +"unfix"_unfix.html :ul + +Output: + +"dump image"_dump_image.html, +"dump movie"_dump_image.html, +"dump"_dump.html, +"dump_modify"_dump_modify.html, +"restart"_restart.html, +"thermo"_thermo.html, +"thermo_modify"_thermo_modify.html, +"thermo_style"_thermo_style.html, +"undump"_undump.html, +"write_coeff"_write_coeff.html, +"write_data"_write_data.html, +"write_dump"_write_dump.html, +"write_restart"_write_restart.html :ul + +Actions: + +"minimize"_minimize.html, +"neb"_neb.html, +"prd"_prd.html, +"rerun"_rerun.html, +"run"_run.html, +"tad"_tad.html, +"temper"_temper.html :ul + +Input script control: + +"clear"_clear.html, +"echo"_echo.html, +"if"_if.html, +"include"_include.html, +"jump"_jump.html, +"label"_label.html, +"log"_log.html, +"next"_next.html, +"print"_print.html, +"python"_python.html, +"quit"_quit.html, +"shell"_shell.html, +"variable"_variable.html :ul + diff --git a/doc/src/Commands_compute.txt b/doc/src/Commands_compute.txt new file mode 100644 index 0000000000..028e274c9b --- /dev/null +++ b/doc/src/Commands_compute.txt @@ -0,0 +1,153 @@ +"Higher level section"_Commands.html - "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 + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +Compute commands :h3 + +An alphabetic list of all LAMMPS "compute"_compute.html commands. +Some styles have accelerated versions. This is indicated by +additional letters in parenthesis: g = GPU, i = USER-INTEL, k = +KOKKOS, o = USER-OMP, t = OPT. + +"ackland/atom"_compute_ackland_atom.html, +"aggregate/atom"_compute_cluster_atom.html, +"angle"_compute_angle.html, +"angle/local"_compute_angle_local.html, +"angmom/chunk"_compute_angmom_chunk.html, +"basal/atom"_compute_basal_atom.html, +"body/local"_compute_body_local.html, +"bond"_compute_bond.html, +"bond/local"_compute_bond_local.html, +"centro/atom"_compute_centro_atom.html, +"chunk/atom"_compute_chunk_atom.html, +"cluster/atom"_compute_cluster_atom.html, +"cna/atom"_compute_cna_atom.html, +"cnp/atom"_compute_cnp_atom.html, +"com"_compute_com.html, +"com/chunk"_compute_com_chunk.html, +"contact/atom"_compute_contact_atom.html, +"coord/atom"_compute_coord_atom.html, +"damage/atom"_compute_damage_atom.html, +"dihedral"_compute_dihedral.html, +"dihedral/local"_compute_dihedral_local.html, +"dilatation/atom"_compute_dilatation_atom.html, +"dipole/chunk"_compute_dipole_chunk.html, +"displace/atom"_compute_displace_atom.html, +"dpd"_compute_dpd.html, +"dpd/atom"_compute_dpd_atom.html, +"edpd/temp/atom"_compute_edpd_temp_atom.html, +"entropy/atom"_compute_entropy_atom.html, +"erotate/asphere"_compute_erotate_asphere.html, +"erotate/rigid"_compute_erotate_rigid.html, +"erotate/sphere"_compute_erotate_sphere.html, +"erotate/sphere/atom"_compute_erotate_sphere_atom.html, +"event/displace"_compute_event_displace.html, +"fep"_compute_fep.html, +"force/tally"_compute_tally.html, +"fragment/atom"_compute_cluster_atom.html, +"global/atom"_compute_global_atom.html, +"group/group"_compute_group_group.html, +"gyration"_compute_gyration.html, +"gyration/chunk"_compute_gyration_chunk.html, +"heat/flux"_compute_heat_flux.html, +"heat/flux/tally"_compute_tally.html, +"hexorder/atom"_compute_hexorder_atom.html, +"improper"_compute_improper.html, +"improper/local"_compute_improper_local.html, +"inertia/chunk"_compute_inertia_chunk.html, +"ke"_compute_ke.html, +"ke/atom"_compute_ke_atom.html, +"ke/atom/eff"_compute_ke_atom_eff.html, +"ke/eff"_compute_ke_eff.html, +"ke/rigid"_compute_ke_rigid.html, +"meso/e/atom"_compute_meso_e_atom.html, +"meso/rho/atom"_compute_meso_rho_atom.html, +"meso/t/atom"_compute_meso_t_atom.html, +"msd"_compute_msd.html, +"msd/chunk"_compute_msd_chunk.html, +"msd/nongauss"_compute_msd_nongauss.html, +"omega/chunk"_compute_omega_chunk.html, +"orientorder/atom"_compute_orientorder_atom.html, +"pair"_compute_pair.html, +"pair/local"_compute_pair_local.html, +"pe"_compute_pe.html, +"pe/atom"_compute_pe_atom.html, +"pe/mol/tally"_compute_tally.html, +"pe/tally"_compute_tally.html, +"plasticity/atom"_compute_plasticity_atom.html, +"pressure"_compute_pressure.html, +"pressure/uef"_compute_pressure_uef.html, +"property/atom"_compute_property_atom.html, +"property/chunk"_compute_property_chunk.html, +"property/local"_compute_property_local.html, +"rdf"_compute_rdf.html, +"reduce"_compute_reduce.html, +"reduce/region"_compute_reduce.html, +"rigid/local"_compute_rigid_local.html, +"saed"_compute_saed.html, +"slice"_compute_slice.html, +"smd/contact/radius"_compute_smd_contact_radius.html, +"smd/damage"_compute_smd_damage.html, +"smd/hourglass/error"_compute_smd_hourglass_error.html, +"smd/internal/energy"_compute_smd_internal_energy.html, +"smd/plastic/strain"_compute_smd_plastic_strain.html, +"smd/plastic/strain/rate"_compute_smd_plastic_strain_rate.html, +"smd/rho"_compute_smd_rho.html, +"smd/tlsph/defgrad"_compute_smd_tlsph_defgrad.html, +"smd/tlsph/dt"_compute_smd_tlsph_dt.html, +"smd/tlsph/num/neighs"_compute_smd_tlsph_num_neighs.html, +"smd/tlsph/shape"_compute_smd_tlsph_shape.html, +"smd/tlsph/strain"_compute_smd_tlsph_strain.html, +"smd/tlsph/strain/rate"_compute_smd_tlsph_strain_rate.html, +"smd/tlsph/stress"_compute_smd_tlsph_stress.html, +"smd/triangle/mesh/vertices"_compute_smd_triangle_mesh_vertices.html, +"smd/ulsph/num/neighs"_compute_smd_ulsph_num_neighs.html, +"smd/ulsph/strain"_compute_smd_ulsph_strain.html, +"smd/ulsph/strain/rate"_compute_smd_ulsph_strain_rate.html, +"smd/ulsph/stress"_compute_smd_ulsph_stress.html, +"smd/vol"_compute_smd_vol.html, +"sna/atom"_compute_sna_atom.html, +"snad/atom"_compute_sna_atom.html, +"snav/atom"_compute_sna_atom.html, +"spin"_compute_spin.html, +"stress/atom"_compute_stress_atom.html, +"stress/tally"_compute_tally.html, +"tdpd/cc/atom"_compute_tdpd_cc_atom.html, +"temp (k)"_compute_temp.html, +"temp/asphere"_compute_temp_asphere.html, +"temp/body"_compute_temp_body.html, +"temp/chunk"_compute_temp_chunk.html, +"temp/com"_compute_temp_com.html, +"temp/deform"_compute_temp_deform.html, +"temp/deform/eff"_compute_temp_deform_eff.html, +"temp/drude"_compute_temp_drude.html, +"temp/eff"_compute_temp_eff.html, +"temp/partial"_compute_temp_partial.html, +"temp/profile"_compute_temp_profile.html, +"temp/ramp"_compute_temp_ramp.html, +"temp/region"_compute_temp_region.html, +"temp/region/eff"_compute_temp_region_eff.html, +"temp/rotate"_compute_temp_rotate.html, +"temp/sphere"_compute_temp_sphere.html, +"temp/uef"_compute_temp_uef.html, +"ti"_compute_ti.html, +"torque/chunk"_compute_torque_chunk.html, +"vacf"_compute_vacf.html, +"vcm/chunk"_compute_vcm_chunk.html, +"voronoi/atom"_compute_voronoi_atom.html, +"xrd"_compute_xrd.html :tb(c=6,ea=c) diff --git a/doc/src/Commands_fix.txt b/doc/src/Commands_fix.txt new file mode 100644 index 0000000000..e002c11770 --- /dev/null +++ b/doc/src/Commands_fix.txt @@ -0,0 +1,229 @@ +"Higher level section"_Commands.html - "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 + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +Fix commands :h3 + +An alphabetic list of all LAMMPS "fix"_fix.html commands. Some styles +have accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"adapt"_fix_adapt.html, +"adapt/fep"_fix_adapt_fep.html, +"addforce"_fix_addforce.html, +"addtorque"_fix_addtorque.html, +"append/atoms"_fix_append_atoms.html, +"atc"_fix_atc.html, +"atom/swap"_fix_atom_swap.html, +"ave/atom"_fix_ave_atom.html, +"ave/chunk"_fix_ave_chunk.html, +"ave/correlate"_fix_ave_correlate.html, +"ave/correlate/long"_fix_ave_correlate_long.html, +"ave/histo"_fix_ave_histo.html, +"ave/histo/weight"_fix_ave_histo.html, +"ave/time"_fix_ave_time.html, +"aveforce"_fix_aveforce.html, +"balance"_fix_balance.html, +"bond/break"_fix_bond_break.html, +"bond/create"_fix_bond_create.html, +"bond/react"_fix_bond_react.html, +"bond/swap"_fix_bond_swap.html, +"box/relax"_fix_box_relax.html, +"cmap"_fix_cmap.html, +"colvars"_fix_colvars.html, +"controller"_fix_controller.html, +"deform (k)"_fix_deform.html, +"deposit"_fix_deposit.html, +"dpd/energy (k)"_fix_dpd_energy.html, +"drag"_fix_drag.html, +"drude"_fix_drude.html, +"drude/transform/direct"_fix_drude_transform.html, +"drude/transform/reverse"_fix_drude_transform.html, +"dt/reset"_fix_dt_reset.html, +"edpd/source"_fix_dpd_source.html, +"efield"_fix_efield.html, +"ehex"_fix_ehex.html, +"enforce2d (k)"_fix_enforce2d.html, +"eos/cv"_fix_eos_cv.html, +"eos/table"_fix_eos_table.html, +"eos/table/rx (k)"_fix_eos_table_rx.html, +"evaporate"_fix_evaporate.html, +"external"_fix_external.html, +"filter/corotate"_fix_filter_corotate.html, +"flow/gauss"_fix_flow_gauss.html, +"freeze"_fix_freeze.html, +"gcmc"_fix_gcmc.html, +"gld"_fix_gld.html, +"gle"_fix_gle.html, +"gravity (o)"_fix_gravity.html, +"grem"_fix_grem.html, +"halt"_fix_halt.html, +"heat"_fix_heat.html, +"imd"_fix_imd.html, +"indent"_fix_indent.html, +"ipi"_fix_ipi.html, +"langevin (k)"_fix_langevin.html, +"langevin/drude"_fix_langevin_drude.html, +"langevin/eff"_fix_langevin_eff.html, +"langevin/spin"_fix_langevin_spin.html, +"latte"_fix_latte.html, +"lb/fluid"_fix_lb_fluid.html, +"lb/momentum"_fix_lb_momentum.html, +"lb/pc"_fix_lb_pc.html, +"lb/rigid/pc/sphere"_fix_lb_rigid_pc_sphere.html, +"lb/viscous"_fix_lb_viscous.html, +"lineforce"_fix_lineforce.html, +"manifoldforce"_fix_manifoldforce.html, +"meso"_fix_meso.html, +"meso/stationary"_fix_meso_stationary.html, +"momentum (k)"_fix_momentum.html, +"move"_fix_move.html, +"mscg"_fix_mscg.html, +"msst"_fix_msst.html, +"mvv/dpd"_fix_mvv_dpd.html, +"mvv/edpd"_fix_mvv_dpd.html, +"mvv/tdpd"_fix_mvv_dpd.html, +"neb"_fix_neb.html, +"nph (ko)"_fix_nh.html, +"nph/asphere (o)"_fix_nph_asphere.html, +"nph/body"_fix_nph_body.html, +"nph/eff"_fix_nh_eff.html, +"nph/sphere (o)"_fix_nph_sphere.html, +"nphug (o)"_fix_nphug.html, +"npt (kio)"_fix_nh.html, +"npt/asphere (o)"_fix_npt_asphere.html, +"npt/body"_fix_npt_body.html, +"npt/eff"_fix_nh_eff.html, +"npt/sphere (o)"_fix_npt_sphere.html, +"npt/uef"_fix_nh_uef.html, +"nve (kio)"_fix_nve.html, +"nve/asphere (i)"_fix_nve_asphere.html, +"nve/asphere/noforce"_fix_nve_asphere_noforce.html, +"nve/body"_fix_nve_body.html, +"nve/dot"_fix_nve_dot.html, +"nve/dotc/langevin"_fix_nve_dotc_langevin.html, +"nve/eff"_fix_nve_eff.html, +"nve/limit"_fix_nve_limit.html, +"nve/line"_fix_nve_line.html, +"nve/manifold/rattle"_fix_nve_manifold_rattle.html, +"nve/noforce"_fix_nve_noforce.html, +"nve/sphere (o)"_fix_nve_sphere.html, +"nve/spin"_fix_nve_spin.html, +"nve/tri"_fix_nve_tri.html, +"nvk"_fix_nvk.html, +"nvt (iko)"_fix_nh.html, +"nvt/asphere (o)"_fix_nvt_asphere.html, +"nvt/body"_fix_nvt_body.html, +"nvt/eff"_fix_nh_eff.html, +"nvt/manifold/rattle"_fix_nvt_manifold_rattle.html, +"nvt/sllod (io)"_fix_nvt_sllod.html, +"nvt/sllod/eff"_fix_nvt_sllod_eff.html, +"nvt/sphere (o)"_fix_nvt_sphere.html, +"nvt/uef"_fix_nh_uef.html, +"oneway"_fix_oneway.html, +"orient/bcc"_fix_orient.html, +"orient/fcc"_fix_orient.html, +"phonon"_fix_phonon.html, +"pimd"_fix_pimd.html, +"planeforce"_fix_planeforce.html, +"poems"_fix_poems.html, +"pour"_fix_pour.html, +"precession/spin"_fix_precession_spin.html, +"press/berendsen"_fix_press_berendsen.html, +"print"_fix_print.html, +"property/atom (k)"_fix_property_atom.html, +"python/invoke"_fix_python_invoke.html, +"python/move"_fix_python_move.html, +"qbmsst"_fix_qbmsst.html, +"qeq/comb (o)"_fix_qeq_comb.html, +"qeq/dynamic"_fix_qeq.html, +"qeq/fire"_fix_qeq.html, +"qeq/point"_fix_qeq.html, +"qeq/reax (ko)"_fix_qeq_reax.html, +"qeq/shielded"_fix_qeq.html, +"qeq/slater"_fix_qeq.html, +"qmmm"_fix_qmmm.html, +"qtb"_fix_qtb.html, +"rattle"_fix_shake.html, +"reax/bonds"_fix_reax_bonds.html, +"reax/c/bonds (k)"_fix_reax_bonds.html, +"reax/c/species (k)"_fix_reaxc_species.html, +"recenter"_fix_recenter.html, +"restrain"_fix_restrain.html, +"rhok"_fix_rhok.html, +"rigid (o)"_fix_rigid.html, +"rigid/nph (o)"_fix_rigid.html, +"rigid/npt (o)"_fix_rigid.html, +"rigid/nve (o)"_fix_rigid.html, +"rigid/nvt (o)"_fix_rigid.html, +"rigid/small (o)"_fix_rigid.html, +"rigid/small/nph"_fix_rigid.html, +"rigid/small/npt"_fix_rigid.html, +"rigid/small/nve"_fix_rigid.html, +"rigid/small/nvt"_fix_rigid.html, +"rx (k)"_fix_rx.html, +"saed/vtk"_fix_saed_vtk.html, +"setforce (k)"_fix_setforce.html, +"shake"_fix_shake.html, +"shardlow (k)"_fix_shardlow.html, +"smd"_fix_smd.html, +"smd/adjust/dt"_fix_smd_adjust_dt.html, +"smd/integrate/tlsph"_fix_smd_integrate_tlsph.html, +"smd/integrate/ulsph"_fix_smd_integrate_ulsph.html, +"smd/move/triangulated/surface"_fix_smd_move_triangulated_surface.html, +"smd/setvel"_fix_smd_setvel.html, +"smd/wall/surface"_fix_smd_wall_surface.html, +"spring"_fix_spring.html, +"spring/chunk"_fix_spring_chunk.html, +"spring/rg"_fix_spring_rg.html, +"spring/self"_fix_spring_self.html, +"srd"_fix_srd.html, +"store/force"_fix_store_force.html, +"store/state"_fix_store_state.html, +"tdpd/source"_fix_dpd_source.html, +"temp/berendsen"_fix_temp_berendsen.html, +"temp/csld"_fix_temp_csvr.html, +"temp/csvr"_fix_temp_csvr.html, +"temp/rescale"_fix_temp_rescale.html, +"temp/rescale/eff"_fix_temp_rescale_eff.html, +"tfmc"_fix_tfmc.html, +"thermal/conductivity"_fix_thermal_conductivity.html, +"ti/spring"_fix_ti_spring.html, +"tmd"_fix_tmd.html, +"ttm"_fix_ttm.html, +"ttm/mod"_fix_ttm.html, +"tune/kspace"_fix_tune_kspace.html, +"vector"_fix_vector.html, +"viscosity"_fix_viscosity.html, +"viscous"_fix_viscous.html, +"wall/body/polygon"_fix_wall_body_polygon.html, +"wall/body/polyhedron"_fix_wall_body_polyhedron.html, +"wall/colloid"_fix_wall.html, +"wall/ees"_fix_wall_ees.html, +"wall/gran"_fix_wall_gran.html, +"wall/gran/region"_fix_wall_gran_region.html, +"wall/harmonic"_fix_wall.html, +"wall/lj1043"_fix_wall.html, +"wall/lj126"_fix_wall.html, +"wall/lj93 (k)"_fix_wall.html, +"wall/piston"_fix_wall_piston.html, +"wall/reflect (k)"_fix_wall_reflect.html, +"wall/region"_fix_wall_region.html, +"wall/region/ees"_fix_wall_ees.html, +"wall/srd"_fix_wall_srd.html :tb(c=8,ea=c) diff --git a/doc/src/Commands_input.txt b/doc/src/Commands_input.txt new file mode 100644 index 0000000000..8b3dda741b --- /dev/null +++ b/doc/src/Commands_input.txt @@ -0,0 +1,60 @@ +"Higher level section"_Commands.html - "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 + +LAMMPS input scripts :h3 + +LAMMPS executes by reading commands from a input script (text file), +one line at a time. When the input script ends, LAMMPS exits. Each +command causes LAMMPS to take some action. It may set an internal +variable, read in a file, or run a simulation. Most commands have +default settings, which means you only need to use the command if you +wish to change the default. + +In many cases, the ordering of commands in an input script is not +important. However the following rules apply: + +(1) LAMMPS does not read your entire input script and then perform a +simulation with all the settings. Rather, the input script is read +one line at a time and each command takes effect when it is read. +Thus this sequence of commands: + +timestep 0.5 +run 100 +run 100 :pre + +does something different than this sequence: + +run 100 +timestep 0.5 +run 100 :pre + +In the first case, the specified timestep (0.5 fs) is used for two +simulations of 100 timesteps each. In the 2nd case, the default +timestep (1.0 fs) is used for the 1st 100 step simulation and a 0.5 fs +timestep is used for the 2nd one. + +(2) Some commands are only valid when they follow other commands. For +example you cannot set the temperature of a group of atoms until atoms +have been defined and a group command is used to define which atoms +belong to the group. + +(3) Sometimes command B will use values that can be set by command A. +This means command A must precede command B in the input script if it +is to have the desired effect. For example, the +"read_data"_read_data.html command initializes the system by setting +up the simulation box and assigning atoms to processors. If default +values are not desired, the "processors"_processors.html and +"boundary"_boundary.html commands need to be used before read_data to +tell LAMMPS how to map processors to the simulation box. + +Many input script errors are detected by LAMMPS and an ERROR or +WARNING message is printed. The "Errors"_Errors.html doc page gives +more information on what errors mean. The documentation for each +command lists restrictions on how the command can be used. + diff --git a/doc/src/Commands_kspace.txt b/doc/src/Commands_kspace.txt new file mode 100644 index 0000000000..a126344505 --- /dev/null +++ b/doc/src/Commands_kspace.txt @@ -0,0 +1,36 @@ +"Higher level section"_Commands.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands.html) + +:line + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +KSpace solvers :h3 + +All LAMMPS "kspace_style"_kspace_style.html solvers. Some styles have +accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"ewald (o)"_kspace_style.html, +"ewald/disp"_kspace_style.html, +"msm (o)"_kspace_style.html, +"msm/cg (o)"_kspace_style.html, +"pppm (gok)"_kspace_style.html, +"pppm/cg (o)"_kspace_style.html, +"pppm/disp (i)"_kspace_style.html, +"pppm/disp/tip4p"_kspace_style.html, +"pppm/stagger"_kspace_style.html, +"pppm/tip4p (o)"_kspace_style.html :tb(c=4,ea=c) diff --git a/doc/src/Commands_pair.txt b/doc/src/Commands_pair.txt new file mode 100644 index 0000000000..eaf2720613 --- /dev/null +++ b/doc/src/Commands_pair.txt @@ -0,0 +1,231 @@ +"Higher level section"_Commands.html - "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 + +"All commands"_Commands_all.html, +"Fix styles"_Commands_fix.html, +"Compute styles"_Commands_compute.html, +"Pair styles"_Commands_pair.html, +"Bond styles"_Commands_bond.html, +"Angle styles"_Commands_bond.html#angle, +"Dihedral styles"_Commands_bond.html#dihedral, +"Improper styles"_Commands_bond.html#improper, +"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c) + +Pair_style potentials :h3 + +All LAMMPS "pair_style"_pair_style.html commands. Some styles have +accelerated versions. This is indicated by additional letters in +parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = +OPT. + +"none"_pair_none.html, +"zero"_pair_zero.html, +"hybrid"_pair_hybrid.html, +"hybrid/overlay (k)"_pair_hybrid.html :tb(c=4,ea=c) + +"adp (o)"_pair_adp.html, +"agni (o)"_pair_agni.html, +"airebo (oi)"_pair_airebo.html, +"airebo/morse (oi)"_pair_airebo.html, +"awpmd/cut"_pair_awpmd.html, +"beck (go)"_pair_beck.html, +"body/nparticle"_pair_body_nparticle.html, +"body/rounded/polygon"_pair_body_rounded_polygon.html, +"body/rounded/polyhedron"_pair_body_rounded_polyhedron.html, +"bop"_pair_bop.html, +"born (go)"_pair_born.html, +"born/coul/dsf"_pair_born.html, +"born/coul/dsf/cs"_pair_born.html, +"born/coul/long (go)"_pair_born.html, +"born/coul/long/cs"_pair_born.html, +"born/coul/msm (o)"_pair_born.html, +"born/coul/wolf (go)"_pair_born.html, +"born/coul/wolf/cs"_pair_born.html, +"brownian (o)"_pair_brownian.html, +"brownian/poly (o)"_pair_brownian.html, +"buck (giko)"_pair_buck.html, +"buck/coul/cut (giko)"_pair_buck.html, +"buck/coul/long (giko)"_pair_buck.html, +"buck/coul/long/cs"_pair_buck.html, +"buck/coul/msm (o)"_pair_buck.html, +"buck/long/coul/long (o)"_pair_buck_long.html, +"buck/mdf"_pair_mdf.html, +"colloid (go)"_pair_colloid.html, +"comb (o)"_pair_comb.html, +"comb3"_pair_comb.html, +"coul/cut (gko)"_pair_coul.html, +"coul/cut/soft (o)"_pair_lj_soft.html, +"coul/debye (gko)"_pair_coul.html, +"coul/diel (o)"_pair_coul_diel.html, +"coul/dsf (gko)"_pair_coul.html, +"coul/long (gko)"_pair_coul.html, +"coul/long/cs"_pair_coul.html, +"coul/long/soft (o)"_pair_lj_soft.html, +"coul/msm"_pair_coul.html, +"coul/shield"_pair_coul_shield.html, +"coul/streitz"_pair_coul.html, +"coul/wolf (ko)"_pair_coul.html, +"coul/wolf/cs"_pair_coul.html, +"dpd (gio)"_pair_dpd.html, +"dpd/fdt"_pair_dpd_fdt.html, +"dpd/fdt/energy (k)"_pair_dpd_fdt.html, +"dpd/tstat (go)"_pair_dpd.html, +"dsmc"_pair_dsmc.html, +"eam (gikot)"_pair_eam.html, +"eam/alloy (gikot)"_pair_eam.html, +"eam/cd (o)"_pair_eam.html, +"eam/fs (gikot)"_pair_eam.html, +"edip (o)"_pair_edip.html, +"edip/multi"_pair_edip.html, +"edpd"_pair_meso.html, +"eff/cut"_pair_eff.html, +"eim (o)"_pair_eim.html, +"exp6/rx (k)"_pair_exp6_rx.html, +"extep"_pair_extep.html, +"gauss (go)"_pair_gauss.html, +"gauss/cut"_pair_gauss.html, +"gayberne (gio)"_pair_gayberne.html, +"gran/hertz/history (o)"_pair_gran.html, +"gran/hooke (o)"_pair_gran.html, +"gran/hooke/history (o)"_pair_gran.html, +"gw"_pair_gw.html, +"gw/zbl"_pair_gw.html, +"hbond/dreiding/lj (o)"_pair_hbond_dreiding.html, +"hbond/dreiding/morse (o)"_pair_hbond_dreiding.html, +"ilp/graphene/hbn"_pair_ilp_graphene_hbn.html, +"kim"_pair_kim.html, +"kolmogorov/crespi/full"_pair_kolmogorov_crespi_full.html, +"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html, +"lcbop"_pair_lcbop.html, +"lennard/mdf"_pair_mdf.html, +"line/lj"_pair_line_lj.html, +"list"_pair_list.html, +"lj/charmm/coul/charmm (iko)"_pair_charmm.html, +"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html, +"lj/charmm/coul/long (giko)"_pair_charmm.html, +"lj/charmm/coul/long/soft (o)"_pair_charmm.html, +"lj/charmm/coul/msm"_pair_charmm.html, +"lj/charmmfsw/coul/charmmfsh"_pair_charmm.html, +"lj/charmmfsw/coul/long"_pair_charmm.html, +"lj/class2 (gko)"_pair_class2.html, +"lj/class2/coul/cut (ko)"_pair_class2.html, +"lj/class2/coul/long (gko)"_pair_class2.html, +"lj/cubic (go)"_pair_lj_cubic.html, +"lj/cut (gikot)"_pair_lj.html, +"lj/cut/coul/cut (gko)"_pair_lj.html, +"lj/cut/coul/cut/soft (o)"_pair_lj_soft.html, +"lj/cut/coul/debye (gko)"_pair_lj.html, +"lj/cut/coul/dsf (gko)"_pair_lj.html, +"lj/cut/coul/long (gikot)"_pair_lj.html, +"lj/cut/coul/long/cs"_pair_lj.html, +"lj/cut/coul/long/soft (o)"_pair_lj_soft.html, +"lj/cut/coul/msm (go)"_pair_lj.html, +"lj/cut/coul/wolf (o)"_pair_lj.html, +"lj/cut/dipole/cut (go)"_pair_dipole.html, +"lj/cut/dipole/long"_pair_dipole.html, +"lj/cut/dipole/sf (go)"_pair_dipole.html, +"lj/cut/soft (o)"_pair_lj_soft.html, +"lj/cut/thole/long (o)"_pair_thole.html, +"lj/cut/tip4p/cut (o)"_pair_lj.html, +"lj/cut/tip4p/long (ot)"_pair_lj.html, +"lj/cut/tip4p/long/soft (o)"_pair_lj_soft.html, +"lj/expand (gko)"_pair_lj_expand.html, +"lj/gromacs (gko)"_pair_gromacs.html, +"lj/gromacs/coul/gromacs (ko)"_pair_gromacs.html, +"lj/long/coul/long (io)"_pair_lj_long.html, +"lj/long/dipole/long"_pair_dipole.html, +"lj/long/tip4p/long"_pair_lj_long.html, +"lj/mdf"_pair_mdf.html, +"lj/sdk (gko)"_pair_sdk.html, +"lj/sdk/coul/long (go)"_pair_sdk.html, +"lj/sdk/coul/msm (o)"_pair_sdk.html, +"lj/smooth (o)"_pair_lj_smooth.html, +"lj/smooth/linear (o)"_pair_lj_smooth_linear.html, +"lj96/cut (go)"_pair_lj96.html, +"lubricate (o)"_pair_lubricate.html, +"lubricate/poly (o)"_pair_lubricate.html, +"lubricateU"_pair_lubricateU.html, +"lubricateU/poly"_pair_lubricateU.html, +"mdpd"_pair_meso.html, +"mdpd/rhosum"_pair_meso.html, +"meam"_pair_meam.html, +"meam/c"_pair_meam.html, +"meam/spline (o)"_pair_meam_spline.html, +"meam/sw/spline"_pair_meam_sw_spline.html, +"mgpt"_pair_mgpt.html, +"mie/cut (o)"_pair_mie.html, +"momb"_pair_momb.html, +"morse (gkot)"_pair_morse.html, +"morse/smooth/linear"_pair_morse.html, +"morse/soft"_pair_morse.html, +"multi/lucy"_pair_multi_lucy.html, +"multi/lucy/rx (k)"_pair_multi_lucy_rx.html, +"nb3b/harmonic (o)"_pair_nb3b_harmonic.html, +"nm/cut (o)"_pair_nm.html, +"nm/cut/coul/cut (o)"_pair_nm.html, +"nm/cut/coul/long (o)"_pair_nm.html, +"oxdna/coaxstk"_pair_oxdna.html, +"oxdna/excv"_pair_oxdna.html, +"oxdna/hbond"_pair_oxdna.html, +"oxdna/stk"_pair_oxdna.html, +"oxdna/xstk"_pair_oxdna.html, +"oxdna2/coaxstk"_pair_oxdna2.html, +"oxdna2/dh"_pair_oxdna2.html, +"oxdna2/excv"_pair_oxdna2.html, +"oxdna2/stk"_pair_oxdna2.html, +"peri/eps"_pair_peri.html, +"peri/lps (o)"_pair_peri.html, +"peri/pmb (o)"_pair_peri.html, +"peri/ves"_pair_peri.html, +"polymorphic"_pair_polymorphic.html, +"python"_pair_python.html, +"quip"_pair_quip.html, +"reax"_pair_reax.html, +"reax/c (ko)"_pair_reaxc.html, +"rebo (oi)"_pair_airebo.html, +"resquared (go)"_pair_resquared.html, +"smd/hertz"_pair_smd_hertz.html, +"smd/tlsph"_pair_smd_tlsph.html, +"smd/triangulated/surface"_pair_smd_triangulated_surface.html, +"smd/ulsph"_pair_smd_ulsph.html, +"smtbq"_pair_smtbq.html, +"snap (k)"_pair_snap.html, +"snap (k)"_pair_snap.html, +"soft (go)"_pair_soft.html, +"sph/heatconduction"_pair_sph_heatconduction.html, +"sph/idealgas"_pair_sph_idealgas.html, +"sph/lj"_pair_sph_lj.html, +"sph/rhosum"_pair_sph_rhosum.html, +"sph/taitwater"_pair_sph_taitwater.html, +"sph/taitwater/morris"_pair_sph_taitwater_morris.html, +"spin/dmi"_pair_spin_dmi.html, +"spin/exchange"_pair_spin_exchange.html, +"spin/magelec"_pair_spin_magelec.html, +"spin/neel"_pair_spin_neel.html, +"srp"_pair_srp.html, +"sw (giko)"_pair_sw.html, +"table (gko)"_pair_table.html, +"table/rx (k)"_pair_table_rx.html, +"tdpd"_pair_meso.html, +"tersoff (giko)"_pair_tersoff.html, +"tersoff/mod (gko)"_pair_tersoff_mod.html, +"tersoff/mod/c (o)"_pair_tersoff_mod.html, +"tersoff/table (o)"_pair_tersoff.html, +"tersoff/zbl (gko)"_pair_tersoff_zbl.html, +"thole"_pair_thole.html, +"tip4p/cut (o)"_pair_coul.html, +"tip4p/long (o)"_pair_coul.html, +"tip4p/long/soft (o)"_pair_lj_soft.html, +"tri/lj"_pair_tri_lj.html, +"ufm (got)"_pair_ufm.html, +"vashishta (ko)"_pair_vashishta.html, +"vashishta/table (o)"_pair_vashishta.html, +"yukawa (gok)"_pair_yukawa.html, +"yukawa/colloid (go)"_pair_yukawa_colloid.html, +"zbl (gok)"_pair_zbl.html :tb(c=4,ea=c) diff --git a/doc/src/Commands_parse.txt b/doc/src/Commands_parse.txt new file mode 100644 index 0000000000..cbe2261986 --- /dev/null +++ b/doc/src/Commands_parse.txt @@ -0,0 +1,136 @@ +"Higher level section"_Commands.html - "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 + +Parsing rules for input scripts :h3 + +Each non-blank line in the input script is treated as a command. +LAMMPS commands are case sensitive. Command names are lower-case, as +are specified command arguments. Upper case letters may be used in +file names or user-chosen ID strings. + +Here are 6 rulse for how each line in the input script is parsed by +LAMMPS: + +(1) If the last printable character on the line is a "&" character, +the command is assumed to continue on the next line. The next line is +concatenated to the previous line by removing the "&" character and +line break. This allows long commands to be continued across two or +more lines. See the discussion of triple quotes in (6) for how to +continue a command across multiple line without using "&" characters. + +(2) All characters from the first "#" character onward are treated as +comment and discarded. See an exception in (6). Note that a +comment after a trailing "&" character will prevent the command from +continuing on the next line. Also note that for multi-line commands a +single leading "#" will comment out the entire command. + +(3) The line is searched repeatedly for $ characters, which indicate +variables that are replaced with a text string. See an exception in +(6). + +If the $ is followed by curly brackets, then the variable name is the +text inside the curly brackets. If no curly brackets follow the $, +then the variable name is the single character immediately following +the $. Thus $\{myTemp\} and $x refer to variable names "myTemp" and +"x". + +How the variable is converted to a text string depends on what style +of variable it is; see the "variable"_variable.html doc page for details. +It can be a variable that stores multiple text strings, and return one +of them. The returned text string can be multiple "words" (space +separated) which will then be interpreted as multiple arguments in the +input command. The variable can also store a numeric formula which +will be evaluated and its numeric result returned as a string. + +As a special case, if the $ is followed by parenthesis, then the text +inside the parenthesis is treated as an "immediate" variable and +evaluated as an "equal-style variable"_variable.html. This is a way +to use numeric formulas in an input script without having to assign +them to variable names. For example, these 3 input script lines: + +variable X equal (xlo+xhi)/2+sqrt(v_area) +region 1 block $X 2 INF INF EDGE EDGE +variable X delete :pre + +can be replaced by + +region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE :pre + +so that you do not have to define (or discard) a temporary variable X. + +Additionally, the "immediate" variable expression may be followed by a +colon, followed by a C-style format string, e.g. ":%f" or ":%.10g". +The format string must be appropriate for a double-precision +floating-point value. The format string is used to output the result +of the variable expression evaluation. If a format string is not +specified a high-precision "%.20g" is used as the default. + +This can be useful for formatting print output to a desired precion: + +print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre + +Note that neither the curly-bracket or immediate form of variables can +contain nested $ characters for other variables to substitute for. +Thus you cannot do this: + +variable a equal 2 +variable b2 equal 4 +print "B2 = $\{b$a\}" :pre + +Nor can you specify this $($x-1.0) for an immediate variable, but +you could use $(v_x-1.0), since the latter is valid syntax for an +"equal-style variable"_variable.html. + +See the "variable"_variable.html command for more details of how +strings are assigned to variables and evaluated, and how they can be +used in input script commands. + +(4) The line is broken into "words" separated by whitespace (tabs, +spaces). Note that words can thus contain letters, digits, +underscores, or punctuation characters. + +(5) The first word is the command name. All successive words in the +line are arguments. + +(6) If you want text with spaces to be treated as a single argument, +it can be enclosed in either single or double or triple quotes. A +long single argument enclosed in single or double quotes can span +multiple lines if the "&" character is used, as described above. When +the lines are concatenated together (and the "&" characters and line +breaks removed), the text will become a single line. If you want +multiple lines of an argument to retain their line breaks, the text +can be enclosed in triple quotes, in which case "&" characters are not +needed. For example: + +print "Volume = $v" +print 'Volume = $v' +if "$\{steps\} > 1000" then quit +variable a string "red green blue & + purple orange cyan" +print """ +System volume = $v +System temperature = $t +""" :pre + +In each case, the single, double, or triple quotes are removed when +the single argument they enclose is stored internally. + +See the "dump modify format"_dump_modify.html, "print"_print.html, +"if"_if.html, and "python"_python.html commands for examples. + +A "#" or "$" character that is between quotes will not be treated as a +comment indicator in (2) or substituted for as a variable in (3). + +NOTE: If the argument is itself a command that requires a quoted +argument (e.g. using a "print"_print.html command as part of an +"if"_if.html or "run every"_run.html command), then single, double, or +triple quotes can be nested in the usual manner. See the doc pages +for those commands for examples. Only one of level of nesting is +allowed, but that should be sufficient for most use cases. + diff --git a/doc/src/Commands_structure.txt b/doc/src/Commands_structure.txt new file mode 100644 index 0000000000..b5d2c7b07b --- /dev/null +++ b/doc/src/Commands_structure.txt @@ -0,0 +1,95 @@ +"Higher level section"_Commands.html - "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 + +Input script structure :h3 + +This page describes the structure of a typical LAMMPS input script. +The examples directory in the LAMMPS distribution contains many sample +input scripts; it is discussed on the "Examples"_Examples.html doc +page. + +A LAMMPS input script typically has 4 parts: + +Initialization +Atom definition +Settings +Run a simulation :ol + +The last 2 parts can be repeated as many times as desired. I.e. run a +simulation, change some settings, run some more, etc. Each of the 4 +parts is now described in more detail. Remember that almost all +commands need only be used if a non-default value is desired. + +(1) Initialization + +Set parameters that need to be defined before atoms are created or +read-in from a file. + +The relevant commands are "units"_units.html, +"dimension"_dimension.html, "newton"_newton.html, +"processors"_processors.html, "boundary"_boundary.html, +"atom_style"_atom_style.html, "atom_modify"_atom_modify.html. + +If force-field parameters appear in the files that will be read, these +commands tell LAMMPS what kinds of force fields are being used: +"pair_style"_pair_style.html, "bond_style"_bond_style.html, +"angle_style"_angle_style.html, "dihedral_style"_dihedral_style.html, +"improper_style"_improper_style.html. + +(2) Atom definition + +There are 3 ways to define atoms in LAMMPS. Read them in from a data +or restart file via the "read_data"_read_data.html or +"read_restart"_read_restart.html commands. These files can contain +molecular topology information. Or create atoms on a lattice (with no +molecular topology), using these commands: "lattice"_lattice.html, +"region"_region.html, "create_box"_create_box.html, +"create_atoms"_create_atoms.html. The entire set of atoms can be +duplicated to make a larger simulation using the +"replicate"_replicate.html command. + +(3) Settings + +Once atoms and molecular topology are defined, a variety of settings +can be specified: force field coefficients, simulation parameters, +output options, etc. + +Force field coefficients are set by these commands (they can also be +set in the read-in files): "pair_coeff"_pair_coeff.html, +"bond_coeff"_bond_coeff.html, "angle_coeff"_angle_coeff.html, +"dihedral_coeff"_dihedral_coeff.html, +"improper_coeff"_improper_coeff.html, +"kspace_style"_kspace_style.html, "dielectric"_dielectric.html, +"special_bonds"_special_bonds.html. + +Various simulation parameters are set by these commands: +"neighbor"_neighbor.html, "neigh_modify"_neigh_modify.html, +"group"_group.html, "timestep"_timestep.html, +"reset_timestep"_reset_timestep.html, "run_style"_run_style.html, +"min_style"_min_style.html, "min_modify"_min_modify.html. + +Fixes impose a variety of boundary conditions, time integration, and +diagnostic options. The "fix"_fix.html command comes in many flavors. + +Various computations can be specified for execution during a +simulation using the "compute"_compute.html, +"compute_modify"_compute_modify.html, and "variable"_variable.html +commands. + +Output options are set by the "thermo"_thermo.html, "dump"_dump.html, +and "restart"_restart.html commands. + +(4) Run a simulation + +A molecular dynamics simulation is run using the "run"_run.html +command. Energy minimization (molecular statics) is performed using +the "minimize"_minimize.html command. A parallel tempering +(replica-exchange) simulation can be run using the +"temper"_temper.html command. + diff --git a/doc/src/Eqs/pair_spin_dmi_forces.jpg b/doc/src/Eqs/pair_spin_dmi_forces.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fba6a91cbf6fdb6ee6736073a114d08c907d6d3c GIT binary patch literal 13431 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
Mp% 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 Hvig4jn{I9c literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_spin_dmi_forces.tex b/doc/src/Eqs/pair_spin_dmi_forces.tex new file mode 100644 index 0000000000..1c0c246db4 --- /dev/null +++ b/doc/src/Eqs/pair_spin_dmi_forces.tex @@ -0,0 +1,14 @@ +\documentclass[preview]{standalone} +\usepackage{varwidth} +\usepackage[utf8x]{inputenc} +\usepackage{amsmath,amssymb,amsthm,bm} +\begin{document} +\begin{varwidth}{50in} + \begin{equation} + \vec{\omega}_i = -\frac{1}{\hbar} \sum_{j}^{Neighb} \vec{s}_{j}\times \left(\vec{e}_{ij}\times \vec{D} \right) + ~~{\rm and}~~ + \vec{F}_i = -\sum_{j}^{Neighb} \frac{1}{r_{ij}} \vec{D} \times \left( \vec{s}_{i}\times \vec{s}_{j} \right) + , \nonumber + \end{equation} +\end{varwidth} +\end{document} diff --git a/doc/src/Eqs/pair_spin_dmi_interaction.jpg b/doc/src/Eqs/pair_spin_dmi_interaction.jpg index 1d15b2199add75eefecb424f75ea2dbd363a1afe..3eb24c67e3b26f97c362fd05982ead5fb0f5c150 100644 GIT binary patch literal 7891 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 literal 13720 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 YAN#n!=#A%hftx-OcW#2Ko`=Q%0oGV3X8-^I diff --git a/doc/src/Eqs/pair_spin_exchange_forces.tex b/doc/src/Eqs/pair_spin_exchange_forces.tex index 088696d5ef..ac5ef682f3 100644 --- a/doc/src/Eqs/pair_spin_exchange_forces.tex +++ b/doc/src/Eqs/pair_spin_exchange_forces.tex @@ -5,10 +5,12 @@ \begin{document} \begin{varwidth}{50in} \begin{equation} - \vec{F}^{i} = \sum_{j}^{Neighbor} \frac{\partial {J} \left(r_{ij} \right)}{ - \partial r_{ij}} \left( \vec{s}_{i}\cdot \vec{s}_{j} \right) \vec{r}_{ij} - ~~{\rm and}~~ \vec{\omega}^{i} = \frac{1}{\hbar} \sum_{j}^{Neighbor} {J} - \left(r_{ij} \right)\,\vec{s}_{j} \nonumber + \vec{\omega}_{i} = \frac{1}{\hbar} \sum_{j}^{Neighb} {J} + \left(r_{ij} \right)\,\vec{s}_{j} + ~~{\rm and}~~ + \vec{F}_{i} = \sum_{j}^{Neighb} \frac{\partial {J} \left(r_{ij} \right)}{ + \partial r_{ij}} \left( \vec{s}_{i}\cdot \vec{s}_{j} \right) \vec{e}_{ij} + \nonumber \end{equation} \end{varwidth} \end{document} diff --git a/doc/src/Eqs/pair_spin_exchange_interaction.jpg b/doc/src/Eqs/pair_spin_exchange_interaction.jpg index d51524d27ca413ec4ded189107c2219b061f7d7e..c70d8a6554003e37472d648c1944a13ee9d3f859 100644 GIT binary patch literal 5940 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 literal 6661 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 + + + +"Using GitHub with LAMMPS"_Howto_github.html +"PyLAMMPS interface to LAMMPS"_Howto_pylammps.html +"Using LAMMPS with bash on Windows"_Howto_bash.html + +"Restart a simulation"_Howto_restart.html +"Visualize LAMMPS snapshots"_Howto_viz.html +"Run multiple simulations from one input script"_Howto_multiple.html +"Multi-replica simulations"_Howto_replica.html +"Library interface to LAMMPS"_Howto_library.html +"Couple LAMMPS to other codes"_Howto_couple.html :all(b) + +"Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_Howto_output.html +"Use chunks to calculate system properties"_Howto_chunk.html :all(b) + +"2d simulations"_Howto_2d.html +"Triclinic (non-orthogonal) simulation boxes"_Howto_triclinic.html +"Walls"_Howto_walls.html +"NEMD simulations"_Howto_nemd.html +"Granular models"_Howto_granular.html +"Finite-size spherical and aspherical particles"_Howto_spherical.html +"Long-range dispersion settings"_Howto_dispersion.html :all(b) + +"Calculate temperature"_Howto_temperature.html +"Thermostats"_Howto_thermostat.html +"Barostats"_Howto_barostat.html +"Calculate elastic constants"_Howto_elastic.html +"Calculate thermal conductivity"_Howto_kappa.html +"Calculate viscosity"_Howto_viscosity.html +"Calculate a diffusion coefficient"_Howto_diffusion.html :all(b) + +"CHARMM, AMBER, and DREIDING force fields"_Howto_bioFF.html +"TIP3P water model"_Howto_tip3p.html +"TIP4P water model"_Howto_tip4p.html +"SPC water model"_Howto_spc.html :all(b) + +"Body style particles"_Howto_body.html +"Polarizable models"_Howto_polarizable.html +"Adiabatic core/shell model"_Howto_coreshell.html +"Drude induced dipoles"_Howto_drude.html +"Drude induced dipoles (extended)"_Howto_drude2.html :all(b) +"Manifolds (surfaces)"_Howto_manifold.html +"Magnetic spins"_Howto_spins.html + + diff --git a/doc/src/Howto_2d.txt b/doc/src/Howto_2d.txt new file mode 100644 index 0000000000..e1758c05d5 --- /dev/null +++ b/doc/src/Howto_2d.txt @@ -0,0 +1,48 @@ +"Higher level section"_Howto.html - "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 + +2d simulations :h3 + +Use the "dimension"_dimension.html command to specify a 2d simulation. + +Make the simulation box periodic in z via the "boundary"_boundary.html +command. This is the default. + +If using the "create box"_create_box.html command to define a +simulation box, set the z dimensions narrow, but finite, so that the +create_atoms command will tile the 3d simulation box with a single z +plane of atoms - e.g. + +"create box"_create_box.html 1 -10 10 -10 10 -0.25 0.25 :pre + +If using the "read data"_read_data.html command to read in a file of +atom coordinates, set the "zlo zhi" values to be finite but narrow, +similar to the create_box command settings just described. For each +atom in the file, assign a z coordinate so it falls inside the +z-boundaries of the box - e.g. 0.0. + +Use the "fix enforce2d"_fix_enforce2d.html command as the last +defined fix to insure that the z-components of velocities and forces +are zeroed out every timestep. The reason to make it the last fix is +so that any forces induced by other fixes will be zeroed out. + +Many of the example input scripts included in the LAMMPS distribution +are for 2d models. + +NOTE: Some models in LAMMPS treat particles as finite-size spheres, as +opposed to point particles. See the "atom_style +sphere"_atom_style.html and "fix nve/sphere"_fix_nve_sphere.html +commands for details. By default, for 2d simulations, such particles +will still be modeled as 3d spheres, not 2d discs (circles), meaning +their moment of inertia will be that of a sphere. If you wish to +model them as 2d discs, see the "set density/disc"_set.html command +and the {disc} option for the "fix nve/sphere"_fix_nve_sphere.html, +"fix nvt/sphere"_fix_nvt_sphere.html, "fix +nph/sphere"_fix_nph_sphere.html, "fix npt/sphere"_fix_npt_sphere.html +commands. diff --git a/doc/src/Howto_barostat.txt b/doc/src/Howto_barostat.txt new file mode 100644 index 0000000000..7c3db89152 --- /dev/null +++ b/doc/src/Howto_barostat.txt @@ -0,0 +1,75 @@ +"Higher level section"_Howto.html - "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 + +Barostats :h3 + +Barostatting means controlling the pressure in an MD simulation. +"Thermostatting"_Howto_thermostat.html means controlling the +temperature of the particles. Since the pressure includes a kinetic +component due to particle velocities, both these operations require +calculation of the temperature. Typically a target temperature (T) +and/or pressure (P) is specified by the user, and the thermostat or +barostat attempts to equilibrate the system to the requested T and/or +P. + +Barostatting in LAMMPS is performed by "fixes"_fix.html. Two +barosttating methods are currently available: Nose-Hoover (npt and +nph) and Berendsen: + +"fix npt"_fix_nh.html +"fix npt/sphere"_fix_npt_sphere.html +"fix npt/asphere"_fix_npt_asphere.html +"fix nph"_fix_nh.html +"fix press/berendsen"_fix_press_berendsen.html :ul + +The "fix npt"_fix_nh.html commands include a Nose-Hoover thermostat +and barostat. "Fix nph"_fix_nh.html is just a Nose/Hoover barostat; +it does no thermostatting. Both "fix nph"_fix_nh.html and "fix +press/berendsen"_fix_press_berendsen.html can be used in conjunction +with any of the thermostatting fixes. + +As with the "thermostats"_Howto_thermostat.html, "fix npt"_fix_nh.html +and "fix nph"_fix_nh.html only use translational motion of the +particles in computing T and P and performing thermo/barostatting. +"Fix npt/sphere"_fix_npt_sphere.html and "fix +npt/asphere"_fix_npt_asphere.html thermo/barostat using not only +translation velocities but also rotational velocities for spherical +and aspherical particles. + +All of the barostatting fixes use the "compute +pressure"_compute_pressure.html compute to calculate a current +pressure. By default, this compute is created with a simple "compute +temp"_compute_temp.html (see the last argument of the "compute +pressure"_compute_pressure.html command), which is used to calculated +the kinetic component of the pressure. The barostatting fixes can +also use temperature computes that remove bias for the purpose of +computing the kinetic component which contributes to the current +pressure. See the doc pages for the individual fixes and for the +"fix_modify"_fix_modify.html command for instructions on how to assign +a temperature or pressure compute to a barostatting fix. + +NOTE: As with the thermostats, the Nose/Hoover methods ("fix +npt"_fix_nh.html and "fix nph"_fix_nh.html) perform time integration. +"Fix press/berendsen"_fix_press_berendsen.html does NOT, so it should +be used with one of the constant NVE fixes or with one of the NVT +fixes. + +Thermodynamic output, which can be setup via the +"thermo_style"_thermo_style.html command, often includes pressure +values. As explained on the doc page for the +"thermo_style"_thermo_style.html command, the default pressure is +setup by the thermo command itself. It is NOT the presure associated +with any barostatting fix you have defined or with any compute you +have defined that calculates a presure. The doc pages for the +barostatting fixes explain the ID of the pressure compute they create. +Thus if you want to view these pressurse, you need to specify them +explicitly via the "thermo_style custom"_thermo_style.html command. +Or you can use the "thermo_modify"_thermo_modify.html command to +re-define what pressure compute is used for default thermodynamic +output. diff --git a/doc/src/tutorial_bash_on_windows.txt b/doc/src/Howto_bash.txt old mode 100644 new mode 100755 similarity index 99% rename from doc/src/tutorial_bash_on_windows.txt rename to doc/src/Howto_bash.txt index 66712bdffa..f1438418e7 --- a/doc/src/tutorial_bash_on_windows.txt +++ b/doc/src/Howto_bash.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -10,6 +10,7 @@ Using LAMMPS with Bash on Windows :h3 [written by Richard Berger] :line + Starting with Windows 10 you can install Linux tools directly in Windows. This allows you to compile LAMMPS following the same procedure as on a real Ubuntu Linux installation. Software can be easily installed using the package manager diff --git a/doc/src/Howto_bioFF.txt b/doc/src/Howto_bioFF.txt new file mode 100644 index 0000000000..afb8a84f2e --- /dev/null +++ b/doc/src/Howto_bioFF.txt @@ -0,0 +1,101 @@ +"Higher level section"_Howto.html - "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 + +CHARMM, AMBER, and DREIDING force fields :h3 + +A force field has 2 parts: the formulas that define it and the +coefficients used for a particular system. Here we only discuss +formulas implemented in LAMMPS that correspond to formulas commonly +used in the CHARMM, AMBER, and DREIDING force fields. Setting +coefficients is done in the input data file via the +"read_data"_read_data.html command or in the input script with +commands like "pair_coeff"_pair_coeff.html or +"bond_coeff"_bond_coeff.html. See the "Tools"_Tools.html doc page for +additional tools that can use CHARMM or AMBER to assign force field +coefficients and convert their output into LAMMPS input. + +See "(MacKerell)"_#howto-MacKerell for a description of the CHARMM force +field. See "(Cornell)"_#howto-Cornell for a description of the AMBER force +field. + +:link(charmm,http://www.scripps.edu/brooks) +:link(amber,http://amber.scripps.edu) + +These style choices compute force field formulas that are consistent +with common options in CHARMM or AMBER. See each command's +documentation for the formula it computes. + +"bond_style"_bond_harmonic.html harmonic +"angle_style"_angle_charmm.html charmm +"dihedral_style"_dihedral_charmm.html charmmfsh +"dihedral_style"_dihedral_charmm.html charmm +"pair_style"_pair_charmm.html lj/charmmfsw/coul/charmmfsh +"pair_style"_pair_charmm.html lj/charmmfsw/coul/long +"pair_style"_pair_charmm.html lj/charmm/coul/charmm +"pair_style"_pair_charmm.html lj/charmm/coul/charmm/implicit +"pair_style"_pair_charmm.html lj/charmm/coul/long :ul + +"special_bonds"_special_bonds.html charmm +"special_bonds"_special_bonds.html amber :ul + +NOTE: For CHARMM, newer {charmmfsw} or {charmmfsh} styles were +released in March 2017. We recommend they be used instead of the +older {charmm} styles. See discussion of the differences on the "pair +charmm"_pair_charmm.html and "dihedral charmm"_dihedral_charmm.html +doc pages. + +DREIDING is a generic force field developed by the "Goddard +group"_http://www.wag.caltech.edu at Caltech and is useful for +predicting structures and dynamics of organic, biological and +main-group inorganic molecules. The philosophy in DREIDING is to use +general force constants and geometry parameters based on simple +hybridization considerations, rather than individual force constants +and geometric parameters that depend on the particular combinations of +atoms involved in the bond, angle, or torsion terms. DREIDING has an +"explicit hydrogen bond term"_pair_hbond_dreiding.html to describe +interactions involving a hydrogen atom on very electronegative atoms +(N, O, F). + +See "(Mayo)"_#howto-Mayo for a description of the DREIDING force field + +These style choices compute force field formulas that are consistent +with the DREIDING force field. See each command's +documentation for the formula it computes. + +"bond_style"_bond_harmonic.html harmonic +"bond_style"_bond_morse.html morse :ul + +"angle_style"_angle_harmonic.html harmonic +"angle_style"_angle_cosine.html cosine +"angle_style"_angle_cosine_periodic.html cosine/periodic :ul + +"dihedral_style"_dihedral_charmm.html charmm +"improper_style"_improper_umbrella.html umbrella :ul + +"pair_style"_pair_buck.html buck +"pair_style"_pair_buck.html buck/coul/cut +"pair_style"_pair_buck.html buck/coul/long +"pair_style"_pair_lj.html lj/cut +"pair_style"_pair_lj.html lj/cut/coul/cut +"pair_style"_pair_lj.html lj/cut/coul/long :ul + +"pair_style"_pair_hbond_dreiding.html hbond/dreiding/lj +"pair_style"_pair_hbond_dreiding.html hbond/dreiding/morse :ul + +"special_bonds"_special_bonds.html dreiding :ul + +:line + +:link(howto-MacKerell) +[(MacKerell)] MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field, +Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998). + +:link(howto-Mayo) +[(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909 +(1990). diff --git a/doc/src/body.txt b/doc/src/Howto_body.txt similarity index 96% rename from doc/src/body.txt rename to doc/src/Howto_body.txt index 4a39ac25d8..3535349b46 100644 --- a/doc/src/body.txt +++ b/doc/src/Howto_body.txt @@ -1,24 +1,24 @@ -"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line -Body particles :h2 +Body particles :h3 [Overview:] -This doc page is not about a LAMMPS input script command, but about -body particles, which are generalized finite-size particles. +In LAMMPS, body particles are generalized finite-size particles. Individual body particles can represent complex entities, such as surface meshes of discrete points, collections of sub-particles, deformable objects, etc. Note that other kinds of finite-size spherical and aspherical particles are also supported by LAMMPS, such as spheres, ellipsoids, line segments, and triangles, but they are -simpler entities that body particles. See "Section -6.14"_Section_howto.html#howto_14 for a general overview of all +simpler entities that body particles. See the "Howto +spherical"_Howto_spherical.html doc page for a general overview of all these particle types. Body particles are used via the "atom_style body"_atom_style.html @@ -151,8 +151,8 @@ center-of-mass position of the particle is specified by the x,y,z values in the {Atoms} section of the data file, as is the total mass of the body particle. -The "pair_style body"_pair_body.html command can be used with this -body style to compute body/body and body/non-body interactions. +The "pair_style body/nparticle"_pair_body_nparticle.html command can be used +with this body style to compute body/body and body/non-body interactions. For output purposes via the "compute body/local"_compute_body_local.html and "dump local"_dump.html diff --git a/doc/src/Howto_chunk.txt b/doc/src/Howto_chunk.txt new file mode 100644 index 0000000000..8e52acf4b8 --- /dev/null +++ b/doc/src/Howto_chunk.txt @@ -0,0 +1,166 @@ +"Higher level section"_Howto.html - "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 + +Use chunks to calculate system properties :h3 + +In LAMMS, "chunks" are collections of atoms, as defined by the +"compute chunk/atom"_compute_chunk_atom.html command, which assigns +each atom to a chunk ID (or to no chunk at all). The number of chunks +and the assignment of chunk IDs to atoms can be static or change over +time. Examples of "chunks" are molecules or spatial bins or atoms +with similar values (e.g. coordination number or potential energy). + +The per-atom chunk IDs can be used as input to two other kinds of +commands, to calculate various properties of a system: + +"fix ave/chunk"_fix_ave_chunk.html +any of the "compute */chunk"_compute.html commands :ul + +Here, each of the 3 kinds of chunk-related commands is briefly +overviewed. Then some examples are given of how to compute different +properties with chunk commands. + +Compute chunk/atom command: :h4 + +This compute can assign atoms to chunks of various styles. Only atoms +in the specified group and optional specified region are assigned to a +chunk. Here are some possible chunk definitions: + +atoms in same molecule | chunk ID = molecule ID | +atoms of same atom type | chunk ID = atom type | +all atoms with same atom property (charge, radius, etc) | chunk ID = output of compute property/atom | +atoms in same cluster | chunk ID = output of "compute cluster/atom"_compute_cluster_atom.html command | +atoms in same spatial bin | chunk ID = bin ID | +atoms in same rigid body | chunk ID = molecule ID used to define rigid bodies | +atoms with similar potential energy | chunk ID = output of "compute pe/atom"_compute_pe_atom.html | +atoms with same local defect structure | chunk ID = output of "compute centro/atom"_compute_centro_atom.html or "compute coord/atom"_compute_coord_atom.html command :tb(s=|,c=2) + +Note that chunk IDs are integer values, so for atom properties or +computes that produce a floating point value, they will be truncated +to an integer. You could also use the compute in a variable that +scales the floating point value to spread it across multiple integers. + +Spatial bins can be of various kinds, e.g. 1d bins = slabs, 2d bins = +pencils, 3d bins = boxes, spherical bins, cylindrical bins. + +This compute also calculates the number of chunks {Nchunk}, which is +used by other commands to tally per-chunk data. {Nchunk} can be a +static value or change over time (e.g. the number of clusters). The +chunk ID for an individual atom can also be static (e.g. a molecule +ID), or dynamic (e.g. what spatial bin an atom is in as it moves). + +Note that this compute allows the per-atom output of other +"computes"_compute.html, "fixes"_fix.html, and +"variables"_variable.html to be used to define chunk IDs for each +atom. This means you can write your own compute or fix to output a +per-atom quantity to use as chunk ID. See the "Modify"_Modify.html +doc pages for info on how to do this. You can also define a "per-atom +variable"_variable.html in the input script that uses a formula to +generate a chunk ID for each atom. + +Fix ave/chunk command: :h4 + +This fix takes the ID of a "compute +chunk/atom"_compute_chunk_atom.html command as input. For each chunk, +it then sums one or more specified per-atom values over the atoms in +each chunk. The per-atom values can be any atom property, such as +velocity, force, charge, potential energy, kinetic energy, stress, +etc. Additional keywords are defined for per-chunk properties like +density and temperature. More generally any per-atom value generated +by other "computes"_compute.html, "fixes"_fix.html, and "per-atom +variables"_variable.html, can be summed over atoms in each chunk. + +Similar to other averaging fixes, this fix allows the summed per-chunk +values to be time-averaged in various ways, and output to a file. The +fix produces a global array as output with one row of values per +chunk. + +Compute */chunk commands: :h4 + +Currently the following computes operate on chunks of atoms to produce +per-chunk values. + +"compute com/chunk"_compute_com_chunk.html +"compute gyration/chunk"_compute_gyration_chunk.html +"compute inertia/chunk"_compute_inertia_chunk.html +"compute msd/chunk"_compute_msd_chunk.html +"compute property/chunk"_compute_property_chunk.html +"compute temp/chunk"_compute_temp_chunk.html +"compute torque/chunk"_compute_vcm_chunk.html +"compute vcm/chunk"_compute_vcm_chunk.html :ul + +They each take the ID of a "compute +chunk/atom"_compute_chunk_atom.html command as input. As their names +indicate, they calculate the center-of-mass, radius of gyration, +moments of inertia, mean-squared displacement, temperature, torque, +and velocity of center-of-mass for each chunk of atoms. The "compute +property/chunk"_compute_property_chunk.html command can tally the +count of atoms in each chunk and extract other per-chunk properties. + +The reason these various calculations are not part of the "fix +ave/chunk command"_fix_ave_chunk.html, is that each requires a more +complicated operation than simply summing and averaging over per-atom +values in each chunk. For example, many of them require calculation +of a center of mass, which requires summing mass*position over the +atoms and then dividing by summed mass. + +All of these computes produce a global vector or global array as +output, wih one or more values per chunk. They can be used +in various ways: + +As input to the "fix ave/time"_fix_ave_time.html command, which can +write the values to a file and optionally time average them. :ulb,l + +As input to the "fix ave/histo"_fix_ave_histo.html command to +histogram values across chunks. E.g. a histogram of cluster sizes or +molecule diffusion rates. :l + +As input to special functions of "equal-style +variables"_variable.html, like sum() and max(). E.g. to find the +largest cluster or fastest diffusing molecule. :l +:ule + +Example calculations with chunks :h4 + +Here are examples using chunk commands to calculate various +properties: + +(1) Average velocity in each of 1000 2d spatial bins: + +compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.01 units reduced +fix 1 all ave/chunk 100 10 1000 cc1 vx vy file tmp.out :pre + +(2) Temperature in each spatial bin, after subtracting a flow +velocity: + +compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.1 units reduced +compute vbias all temp/profile 1 0 0 y 10 +fix 1 all ave/chunk 100 10 1000 cc1 temp bias vbias file tmp.out :pre + +(3) Center of mass of each molecule: + +compute cc1 all chunk/atom molecule +compute myChunk all com/chunk cc1 +fix 1 all ave/time 100 1 100 c_myChunk\[*\] file tmp.out mode vector :pre + +(4) Total force on each molecule and ave/max across all molecules: + +compute cc1 all chunk/atom molecule +fix 1 all ave/chunk 1000 1 1000 cc1 fx fy fz file tmp.out +variable xave equal ave(f_1\[2\]) +variable xmax equal max(f_1\[2\]) +thermo 1000 +thermo_style custom step temp v_xave v_xmax :pre + +(5) Histogram of cluster sizes: + +compute cluster all cluster/atom 1.0 +compute cc1 all chunk/atom c_cluster compress yes +compute size all property/chunk cc1 count +fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo :pre diff --git a/doc/src/Howto_coreshell.txt b/doc/src/Howto_coreshell.txt new file mode 100644 index 0000000000..4f1cd64384 --- /dev/null +++ b/doc/src/Howto_coreshell.txt @@ -0,0 +1,253 @@ +"Higher level section"_Howto.html - "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 + +Adiabatic core/shell model :h3 + +The adiabatic core-shell model by "Mitchell and +Fincham"_#MitchellFincham is a simple method for adding polarizability +to a system. In order to mimic the electron shell of an ion, a +satellite particle is attached to it. This way the ions are split into +a core and a shell where the latter is meant to react to the +electrostatic environment inducing polarizability. See the "Howto +polarizable"_Howto_polarizable.html doc page for a discussion of all +the polarizable models available in LAMMPS. + +Technically, shells are attached to the cores by a spring force f = +k*r where k is a parametrized spring constant and r is the distance +between the core and the shell. The charges of the core and the shell +add up to the ion charge, thus q(ion) = q(core) + q(shell). This +setup introduces the ion polarizability (alpha) given by +alpha = q(shell)^2 / k. In a +similar fashion the mass of the ion is distributed on the core and the +shell with the core having the larger mass. + +To run this model in LAMMPS, "atom_style"_atom_style.html {full} can +be used since atom charge and bonds are needed. Each kind of +core/shell pair requires two atom types and a bond type. The core and +shell of a core/shell pair should be bonded to each other with a +harmonic bond that provides the spring force. For example, a data file +for NaCl, as found in examples/coreshell, has this format: + +432 atoms # core and shell atoms +216 bonds # number of core/shell springs :pre + +4 atom types # 2 cores and 2 shells for Na and Cl +2 bond types :pre + +0.0 24.09597 xlo xhi +0.0 24.09597 ylo yhi +0.0 24.09597 zlo zhi :pre + +Masses # core/shell mass ratio = 0.1 :pre + +1 20.690784 # Na core +2 31.90500 # Cl core +3 2.298976 # Na shell +4 3.54500 # Cl shell :pre + +Atoms :pre + +1 1 2 1.5005 0.00000000 0.00000000 0.00000000 # core of core/shell pair 1 +2 1 4 -2.5005 0.00000000 0.00000000 0.00000000 # shell of core/shell pair 1 +3 2 1 1.5056 4.01599500 4.01599500 4.01599500 # core of core/shell pair 2 +4 2 3 -0.5056 4.01599500 4.01599500 4.01599500 # shell of core/shell pair 2 +(...) :pre + +Bonds # Bond topology for spring forces :pre + +1 2 1 2 # spring for core/shell pair 1 +2 2 3 4 # spring for core/shell pair 2 +(...) :pre + +Non-Coulombic (e.g. Lennard-Jones) pairwise interactions are only +defined between the shells. Coulombic interactions are defined +between all cores and shells. If desired, additional bonds can be +specified between cores. + +The "special_bonds"_special_bonds.html command should be used to +turn-off the Coulombic interaction within core/shell pairs, since that +interaction is set by the bond spring. This is done using the +"special_bonds"_special_bonds.html command with a 1-2 weight = 0.0, +which is the default value. It needs to be considered whether one has +to adjust the "special_bonds"_special_bonds.html weighting according +to the molecular topology since the interactions of the shells are +bypassed over an extra bond. + +Note that this core/shell implementation does not require all ions to +be polarized. One can mix core/shell pairs and ions without a +satellite particle if desired. + +Since the core/shell model permits distances of r = 0.0 between the +core and shell, a pair style with a "cs" suffix needs to be used to +implement a valid long-range Coulombic correction. Several such pair +styles are provided in the CORESHELL package. See "this doc +page"_pair_cs.html for details. All of the core/shell enabled pair +styles require the use of a long-range Coulombic solver, as specified +by the "kspace_style"_kspace_style.html command. Either the PPPM or +Ewald solvers can be used. + +For the NaCL example problem, these pair style and bond style settings +are used: + +pair_style born/coul/long/cs 20.0 20.0 +pair_coeff * * 0.0 1.000 0.00 0.00 0.00 +pair_coeff 3 3 487.0 0.23768 0.00 1.05 0.50 #Na-Na +pair_coeff 3 4 145134.0 0.23768 0.00 6.99 8.70 #Na-Cl +pair_coeff 4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl :pre + +bond_style harmonic +bond_coeff 1 63.014 0.0 +bond_coeff 2 25.724 0.0 :pre + +When running dynamics with the adiabatic core/shell model, the +following issues should be considered. The relative motion of +the core and shell particles corresponds to the polarization, +hereby an instantaneous relaxation of the shells is approximated +and a fast core/shell spring frequency ensures a nearly constant +internal kinetic energy during the simulation. +Thermostats can alter this polarization behaviour, by scaling the +internal kinetic energy, meaning the shell will not react freely to +its electrostatic environment. +Therefore it is typically desirable to decouple the relative motion of +the core/shell pair, which is an imaginary degree of freedom, from the +real physical system. To do that, the "compute +temp/cs"_compute_temp_cs.html command can be used, in conjunction with +any of the thermostat fixes, such as "fix nvt"_fix_nh.html or "fix +langevin"_fix_langevin. This compute uses the center-of-mass velocity +of the core/shell pairs to calculate a temperature, and insures that +velocity is what is rescaled for thermostatting purposes. This +compute also works for a system with both core/shell pairs and +non-polarized ions (ions without an attached satellite particle). The +"compute temp/cs"_compute_temp_cs.html command requires input of two +groups, one for the core atoms, another for the shell atoms. +Non-polarized ions which might also be included in the treated system +should not be included into either of these groups, they are taken +into account by the {group-ID} (2nd argument) of the compute. The +groups can be defined using the "group {type}"_group.html command. +Note that to perform thermostatting using this definition of +temperature, the "fix modify temp"_fix_modify.html command should be +used to assign the compute to the thermostat fix. Likewise the +"thermo_modify temp"_thermo_modify.html command can be used to make +this temperature be output for the overall system. + +For the NaCl example, this can be done as follows: + +group cores type 1 2 +group shells type 3 4 +compute CSequ all temp/cs cores shells +fix thermoberendsen all temp/berendsen 1427 1427 0.4 # thermostat for the true physical system +fix thermostatequ all nve # integrator as needed for the berendsen thermostat +fix_modify thermoberendsen temp CSequ +thermo_modify temp CSequ # output of center-of-mass derived temperature :pre + +The pressure for the core/shell system is computed via the regular +LAMMPS convention by "treating the cores and shells as individual +particles"_#MitchellFincham2. For the thermo output of the pressure +as well as for the application of a barostat, it is necessary to +use an additional "pressure"_compute_pressure compute based on the +default "temperature"_compute_temp and specifying it as a second +argument in "fix modify"_fix_modify.html and +"thermo_modify"_thermo_modify.html resulting in: + +(...) +compute CSequ all temp/cs cores shells +compute thermo_press_lmp all pressure thermo_temp # pressure for individual particles +thermo_modify temp CSequ press thermo_press_lmp # modify thermo to regular pressure +fix press_bar all npt temp 300 300 0.04 iso 0 0 0.4 +fix_modify press_bar temp CSequ press thermo_press_lmp # pressure modification for correct kinetic scalar :pre + +If "compute temp/cs"_compute_temp_cs.html is used, the decoupled +relative motion of the core and the shell should in theory be +stable. However numerical fluctuation can introduce a small +momentum to the system, which is noticable over long trajectories. +Therefore it is recommendable to use the "fix +momentum"_fix_momentum.html command in combination with "compute +temp/cs"_compute_temp_cs.html when equilibrating the system to +prevent any drift. + +When initializing the velocities of a system with core/shell pairs, it +is also desirable to not introduce energy into the relative motion of +the core/shell particles, but only assign a center-of-mass velocity to +the pairs. This can be done by using the {bias} keyword of the +"velocity create"_velocity.html command and assigning the "compute +temp/cs"_compute_temp_cs.html command to the {temp} keyword of the +"velocity"_velocity.html command, e.g. + +velocity all create 1427 134 bias yes temp CSequ +velocity all scale 1427 temp CSequ :pre + +To maintain the correct polarizability of the core/shell pairs, the +kinetic energy of the internal motion shall remain nearly constant. +Therefore the choice of spring force and mass ratio need to ensure +much faster relative motion of the 2 atoms within the core/shell pair +than their center-of-mass velocity. This allows the shells to +effectively react instantaneously to the electrostatic environment and +limits energy transfer to or from the core/shell oscillators. +This fast movement also dictates the timestep that can be used. + +The primary literature of the adiabatic core/shell model suggests that +the fast relative motion of the core/shell pairs only allows negligible +energy transfer to the environment. +The mentioned energy transfer will typically lead to a small drift +in total energy over time. This internal energy can be monitored +using the "compute chunk/atom"_compute_chunk_atom.html and "compute +temp/chunk"_compute_temp_chunk.html commands. The internal kinetic +energies of each core/shell pair can then be summed using the sum() +special function of the "variable"_variable.html command. Or they can +be time/averaged and output using the "fix ave/time"_fix_ave_time.html +command. To use these commands, each core/shell pair must be defined +as a "chunk". If each core/shell pair is defined as its own molecule, +the molecule ID can be used to define the chunks. If cores are bonded +to each other to form larger molecules, the chunks can be identified +by the "fix property/atom"_fix_property_atom.html via assigning a +core/shell ID to each atom using a special field in the data file read +by the "read_data"_read_data.html command. This field can then be +accessed by the "compute property/atom"_compute_property_atom.html +command, to use as input to the "compute +chunk/atom"_compute_chunk_atom.html command to define the core/shell +pairs as chunks. + +For example if core/shell pairs are the only molecules: + +read_data NaCl_CS_x0.1_prop.data +compute prop all property/atom molecule +compute cs_chunk all chunk/atom c_prop +compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0 # note the chosen degrees of freedom for the core/shell pairs +fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector :pre + +For example if core/shell pairs and other molecules are present: + +fix csinfo all property/atom i_CSID # property/atom command +read_data NaCl_CS_x0.1_prop.data fix csinfo NULL CS-Info # atom property added in the data-file +compute prop all property/atom i_CSID +(...) :pre + +The additional section in the date file would be formatted like this: + +CS-Info # header of additional section :pre + +1 1 # column 1 = atom ID, column 2 = core/shell ID +2 1 +3 2 +4 2 +5 3 +6 3 +7 4 +8 4 +(...) :pre + +:line + +:link(MitchellFincham) +[(Mitchell and Fincham)] Mitchell, Fincham, J Phys Condensed Matter, +5, 1031-1038 (1993). + +:link(MitchellFincham2) +[(Fincham)] Fincham, Mackrodt and Mitchell, J Phys Condensed Matter, +6, 393-404 (1994). diff --git a/doc/src/Howto_couple.txt b/doc/src/Howto_couple.txt new file mode 100644 index 0000000000..38595a9d16 --- /dev/null +++ b/doc/src/Howto_couple.txt @@ -0,0 +1,105 @@ +"Higher level section"_Howto.html - "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 + +Coupling LAMMPS to other codes :h3 + +LAMMPS is designed to allow it to be coupled to other codes. For +example, a quantum mechanics code might compute forces on a subset of +atoms and pass those forces to LAMMPS. Or a continuum finite element +(FE) simulation might use atom positions as boundary conditions on FE +nodal points, compute a FE solution, and return interpolated forces on +MD atoms. + +LAMMPS can be coupled to other codes in at least 3 ways. Each has +advantages and disadvantages, which you'll have to think about in the +context of your application. + +(1) Define a new "fix"_fix.html command that calls the other code. In +this scenario, LAMMPS is the driver code. During its timestepping, +the fix is invoked, and can make library calls to the other code, +which has been linked to LAMMPS as a library. This is the way the +"POEMS"_poems package that performs constrained rigid-body motion on +groups of atoms is hooked to LAMMPS. See the "fix +poems"_fix_poems.html command for more details. See the +"Modify"_Modify.html doc pages for info on how to add a new fix to +LAMMPS. + +:link(poems,http://www.rpi.edu/~anderk5/lab) + +(2) Define a new LAMMPS command that calls the other code. This is +conceptually similar to method (1), but in this case LAMMPS and the +other code are on a more equal footing. Note that now the other code +is not called during the timestepping of a LAMMPS run, but between +runs. The LAMMPS input script can be used to alternate LAMMPS runs +with calls to the other code, invoked via the new command. The +"run"_run.html command facilitates this with its {every} option, which +makes it easy to run a few steps, invoke the command, run a few steps, +invoke the command, etc. + +In this scenario, the other code can be called as a library, as in +(1), or it could be a stand-alone code, invoked by a system() call +made by the command (assuming your parallel machine allows one or more +processors to start up another program). In the latter case the +stand-alone code could communicate with LAMMPS thru files that the +command writes and reads. + +See the "Modify command"_Modify_command.html doc page for info on how +to add a new command to LAMMPS. + +(3) Use LAMMPS as a library called by another code. In this case the +other code is the driver and calls LAMMPS as needed. Or a wrapper +code could link and call both LAMMPS and another code as libraries. +Again, the "run"_run.html command has options that allow it to be +invoked with minimal overhead (no setup or clean-up) if you wish to do +multiple short runs, driven by another program. + +Examples of driver codes that call LAMMPS as a library are included in +the examples/COUPLE directory of the LAMMPS distribution; see +examples/COUPLE/README for more details: + +simple: simple driver programs in C++ and C which invoke LAMMPS as a +library :ulb,l + +lammps_quest: coupling of LAMMPS and "Quest"_quest, to run classical +MD with quantum forces calculated by a density functional code :l + +lammps_spparks: coupling of LAMMPS and "SPPARKS"_spparks, to couple +a kinetic Monte Carlo model for grain growth using MD to calculate +strain induced across grain boundaries :l +:ule + +:link(quest,http://dft.sandia.gov/Quest) +:link(spparks,http://www.sandia.gov/~sjplimp/spparks.html) + +"This section"_Section_start.html#start_5 of the documentation +describes how to build LAMMPS as a library. Once this is done, you +can interface with LAMMPS either via C++, C, Fortran, or Python (or +any other language that supports a vanilla C-like interface). For +example, from C++ you could create one (or more) "instances" of +LAMMPS, pass it an input script to process, or execute individual +commands, all by invoking the correct class methods in LAMMPS. From C +or Fortran you can make function calls to do the same things. See the +"Python"_Python.html doc pages for a description of the Python wrapper +provided with LAMMPS that operates through the LAMMPS library +interface. + +The files src/library.cpp and library.h contain the C-style interface +to LAMMPS. See the "Howto library"_Howto_library.html doc page for a +description of the interface and how to extend it for your needs. + +Note that the lammps_open() function that creates an instance of +LAMMPS takes an MPI communicator as an argument. This means that +instance of LAMMPS will run on the set of processors in the +communicator. Thus the calling code can run LAMMPS on all or a subset +of processors. For example, a wrapper script might decide to +alternate between LAMMPS and another code, allowing them both to run +on all the processors. Or it might allocate half the processors to +LAMMPS and half to the other code and run both codes simultaneously +before syncing them up periodically. Or it might instantiate multiple +instances of LAMMPS to perform different calculations. diff --git a/doc/src/Howto_diffusion.txt b/doc/src/Howto_diffusion.txt new file mode 100644 index 0000000000..401c1e359c --- /dev/null +++ b/doc/src/Howto_diffusion.txt @@ -0,0 +1,31 @@ +"Higher level section"_Howto.html - "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 + +Calculate a diffusion coefficient :h3 + +The diffusion coefficient D of a material can be measured in at least +2 ways using various options in LAMMPS. See the examples/DIFFUSE +directory for scripts that implement the 2 methods discussed here for +a simple Lennard-Jones fluid model. + +The first method is to measure the mean-squared displacement (MSD) of +the system, via the "compute msd"_compute_msd.html command. The slope +of the MSD versus time is proportional to the diffusion coefficient. +The instantaneous MSD values can be accumulated in a vector via the +"fix vector"_fix_vector.html command, and a line fit to the vector to +compute its slope via the "variable slope"_variable.html function, and +thus extract D. + +The second method is to measure the velocity auto-correlation function +(VACF) of the system, via the "compute vacf"_compute_vacf.html +command. The time-integral of the VACF is proportional to the +diffusion coefficient. The instantaneous VACF values can be +accumulated in a vector via the "fix vector"_fix_vector.html command, +and time integrated via the "variable trap"_variable.html function, +and thus extract D. diff --git a/doc/src/Howto_dispersion.txt b/doc/src/Howto_dispersion.txt new file mode 100644 index 0000000000..4ea286258e --- /dev/null +++ b/doc/src/Howto_dispersion.txt @@ -0,0 +1,108 @@ +"Higher level section"_Howto.html - "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 + +Long-raage dispersion settings :h3 + +The PPPM method computes interactions by splitting the pair potential +into two parts, one of which is computed in a normal pairwise fashion, +the so-called real-space part, and one of which is computed using the +Fourier transform, the so called reciprocal-space or kspace part. For +both parts, the potential is not computed exactly but is approximated. +Thus, there is an error in both parts of the computation, the +real-space and the kspace error. The just mentioned facts are true +both for the PPPM for Coulomb as well as dispersion interactions. The +deciding difference - and also the reason why the parameters for +pppm/disp have to be selected with more care - is the impact of the +errors on the results: The kspace error of the PPPM for Coulomb and +dispersion interaction and the real-space error of the PPPM for +Coulomb interaction have the character of noise. In contrast, the +real-space error of the PPPM for dispersion has a clear physical +interpretation: the underprediction of cohesion. As a consequence, the +real-space error has a much stronger effect than the kspace error on +simulation results for pppm/disp. Parameters must thus be chosen in a +way that this error is much smaller than the kspace error. + +When using pppm/disp and not making any specifications on the PPPM +parameters via the kspace modify command, parameters will be tuned +such that the real-space error and the kspace error are equal. This +will result in simulations that are either inaccurate or slow, both of +which is not desirable. For selecting parameters for the pppm/disp +that provide fast and accurate simulations, there are two approaches, +which both have their up- and downsides. + +The first approach is to set desired real-space an kspace accuracies +via the {kspace_modify force/disp/real} and {kspace_modify +force/disp/kspace} commands. Note that the accuracies have to be +specified in force units and are thus dependent on the chosen unit +settings. For real units, 0.0001 and 0.002 seem to provide reasonable +accurate and efficient computations for the real-space and kspace +accuracies. 0.002 and 0.05 work well for most systems using lj +units. PPPM parameters will be generated based on the desired +accuracies. The upside of this approach is that it usually provides a +good set of parameters and will work for both the {kspace_modify diff +ad} and {kspace_modify diff ik} options. The downside of the method +is that setting the PPPM parameters will take some time during the +initialization of the simulation. + +The second approach is to set the parameters for the pppm/disp +explicitly using the {kspace_modify mesh/disp}, {kspace_modify +order/disp}, and {kspace_modify gewald/disp} commands. This approach +requires a more experienced user who understands well the impact of +the choice of parameters on the simulation accuracy and +performance. This approach provides a fast initialization of the +simulation. However, it is sensitive to errors: A combination of +parameters that will perform well for one system might result in +far-from-optimal conditions for other simulations. For example, +parameters that provide accurate and fast computations for +all-atomistic force fields can provide insufficient accuracy or +united-atomistic force fields (which is related to that the latter +typically have larger dispersion coefficients). + +To avoid inaccurate or inefficient simulations, the pppm/disp stops +simulations with an error message if no action is taken to control the +PPPM parameters. If the automatic parameter generation is desired and +real-space and kspace accuracies are desired to be equal, this error +message can be suppressed using the {kspace_modify disp/auto yes} +command. + +A reasonable approach that combines the upsides of both methods is to +make the first run using the {kspace_modify force/disp/real} and +{kspace_modify force/disp/kspace} commands, write down the PPPM +parameters from the outut, and specify these parameters using the +second approach in subsequent runs (which have the same composition, +force field, and approximately the same volume). + +Concerning the performance of the pppm/disp there are two more things +to consider. The first is that when using the pppm/disp, the cutoff +parameter does no longer affect the accuracy of the simulation +(subject to that gewald/disp is adjusted when changing the cutoff). +The performance can thus be increased by examining different values +for the cutoff parameter. A lower bound for the cutoff is only set by +the truncation error of the repulsive term of pair potentials. + +The second is that the mixing rule of the pair style has an impact on +the computation time when using the pppm/disp. Fastest computations +are achieved when using the geometric mixing rule. Using the +arithmetic mixing rule substantially increases the computational cost. +The computational overhead can be reduced using the {kspace_modify +mix/disp geom} and {kspace_modify splittol} commands. The first +command simply enforces geometric mixing of the dispersion +coefficients in kspace computations. This introduces some error in +the computations but will also significantly speed-up the +simulations. The second keyword sets the accuracy with which the +dispersion coefficients are approximated using a matrix factorization +approach. This may result in better accuracy then using the first +command, but will usually also not provide an equally good increase of +efficiency. + +Finally, pppm/disp can also be used when no mixing rules apply. +This can be achieved using the {kspace_modify mix/disp none} command. +Note that the code does not check automatically whether any mixing +rule is fulfilled. If mixing rules do not apply, the user will have +to specify this command explicitly. diff --git a/doc/src/Howto_drude.txt b/doc/src/Howto_drude.txt new file mode 100644 index 0000000000..ebdf5f8658 --- /dev/null +++ b/doc/src/Howto_drude.txt @@ -0,0 +1,77 @@ +"Higher level section"_Howto.html - "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 + +Drude induced dipoles :h3 + +The thermalized Drude model represents induced dipoles by a pair of +charges (the core atom and the Drude particle) connected by a harmonic +spring. See the "Howto polarizable"_Howto_polarizable.html doc page +for a discussion of all the polarizable models available in LAMMPS. + +The Drude model has a number of features aimed at its use in +molecular systems ("Lamoureux and Roux"_#howto-Lamoureux): + +Thermostating of the additional degrees of freedom associated with the +induced dipoles at very low temperature, in terms of the reduced +coordinates of the Drude particles with respect to their cores. This +makes the trajectory close to that of relaxed induced dipoles. :ulb,l + +Consistent definition of 1-2 to 1-4 neighbors. A core-Drude particle +pair represents a single (polarizable) atom, so the special screening +factors in a covalent structure should be the same for the core and +the Drude particle. Drude particles have to inherit the 1-2, 1-3, 1-4 +special neighbor relations from their respective cores. :l + +Stabilization of the interactions between induced dipoles. Drude +dipoles on covalently bonded atoms interact too strongly due to the +short distances, so an atom may capture the Drude particle of a +neighbor, or the induced dipoles within the same molecule may align +too much. To avoid this, damping at short range can be done by Thole +functions (for which there are physical grounds). This Thole damping +is applied to the point charges composing the induced dipole (the +charge of the Drude particle and the opposite charge on the core, not +to the total charge of the core atom). :l,ule + +A detailed tutorial covering the usage of Drude induced dipoles in +LAMMPS is on the "Howto drude2e"_Howto_drude2.html doc page. + +As with the core-shell model, the cores and Drude particles should +appear in the data file as standard atoms. The same holds for the +springs between them, which are described by standard harmonic bonds. +The nature of the atoms (core, Drude particle or non-polarizable) is +specified via the "fix drude"_fix_drude.html command. The special +list of neighbors is automatically refactored to account for the +equivalence of core and Drude particles as regards special 1-2 to 1-4 +screening. It may be necessary to use the {extra/special/per/atom} +keyword of the "read_data"_read_data.html command. If using "fix +shake"_fix_shake.html, make sure no Drude particle is in this fix +group. + +There are two ways to thermostat the Drude particles at a low +temperature: use either "fix langevin/drude"_fix_langevin_drude.html +for a Langevin thermostat, or "fix +drude/transform/*"_fix_drude_transform.html for a Nose-Hoover +thermostat. The former requires use of the command "comm_modify vel +yes"_comm_modify.html. The latter requires two separate integration +fixes like {nvt} or {npt}. The correct temperatures of the reduced +degrees of freedom can be calculated using the "compute +temp/drude"_compute_temp_drude.html. This requires also to use the +command {comm_modify vel yes}. + +Short-range damping of the induced dipole interactions can be achieved +using Thole functions through the "pair style +thole"_pair_thole.html in "pair_style hybrid/overlay"_pair_hybrid.html +with a Coulomb pair style. It may be useful to use {coul/long/cs} or +similar from the CORESHELL package if the core and Drude particle come +too close, which can cause numerical issues. + +:line + +:link(howto-Lamoureux) +[(Lamoureux and Roux)] G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003) diff --git a/doc/src/tutorial_drude.txt b/doc/src/Howto_drude2.txt similarity index 99% rename from doc/src/tutorial_drude.txt rename to doc/src/Howto_drude2.txt index f6e7eed40b..a342d4a87d 100644 --- a/doc/src/tutorial_drude.txt +++ b/doc/src/Howto_drude2.txt @@ -9,7 +9,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Howto_elastic.txt b/doc/src/Howto_elastic.txt new file mode 100644 index 0000000000..68b30970ca --- /dev/null +++ b/doc/src/Howto_elastic.txt @@ -0,0 +1,47 @@ +"Higher level section"_Howto.html - "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 + +Calculate elastic constants :h3 + +Elastic constants characterize the stiffness of a material. The formal +definition is provided by the linear relation that holds between the +stress and strain tensors in the limit of infinitesimal deformation. +In tensor notation, this is expressed as s_ij = C_ijkl * e_kl, where +the repeated indices imply summation. s_ij are the elements of the +symmetric stress tensor. e_kl are the elements of the symmetric strain +tensor. C_ijkl are the elements of the fourth rank tensor of elastic +constants. In three dimensions, this tensor has 3^4=81 elements. Using +Voigt notation, the tensor can be written as a 6x6 matrix, where C_ij +is now the derivative of s_i w.r.t. e_j. Because s_i is itself a +derivative w.r.t. e_i, it follows that C_ij is also symmetric, with at +most 7*6/2 = 21 distinct elements. + +At zero temperature, it is easy to estimate these derivatives by +deforming the simulation box in one of the six directions using the +"change_box"_change_box.html command and measuring the change in the +stress tensor. A general-purpose script that does this is given in the +examples/elastic directory described on the "Examples"_Examples.html +doc page. + +Calculating elastic constants at finite temperature is more +challenging, because it is necessary to run a simulation that perfoms +time averages of differential properties. One way to do this is to +measure the change in average stress tensor in an NVT simulations when +the cell volume undergoes a finite deformation. In order to balance +the systematic and statistical errors in this method, the magnitude of +the deformation must be chosen judiciously, and care must be taken to +fully equilibrate the deformed cell before sampling the stress +tensor. Another approach is to sample the triclinic cell fluctuations +that occur in an NPT simulation. This method can also be slow to +converge and requires careful post-processing "(Shinoda)"_#Shinoda1 + +:line + +:link(Shinoda1) +[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004). diff --git a/doc/src/tutorial_github.txt b/doc/src/Howto_github.txt similarity index 98% rename from doc/src/tutorial_github.txt rename to doc/src/Howto_github.txt index fc261bdb95..720b3317f0 100644 --- a/doc/src/tutorial_github.txt +++ b/doc/src/Howto_github.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -25,8 +25,8 @@ or improvements to LAMMPS, as it significantly reduces the amount of work required by the LAMMPS developers. Consequently, creating a pull request will increase your chances to have your contribution included and will reduce the time until the integration is complete. For more -information on the requirements to have your code included in LAMMPS, -see the "Modify contribute"_Modify_contribute.html doc page. +information on the requirements to have your code included into LAMMPS +please see the "Modify contribute"_Modify_contribute.html doc page. :line @@ -124,7 +124,7 @@ unrelated feature, you should switch branches! After everything is done, add the files to the branch and commit them: - $ git add doc/src/tutorial_github.txt + $ git add doc/src/Howto_github.txt $ git add doc/src/JPG/tutorial*.png :pre IMPORTANT NOTE: Do not use {git commit -a} (or {git add -A}). The -a @@ -318,7 +318,7 @@ Because the changes are OK with us, we are going to merge by clicking on Now, since in the meantime our local text for the tutorial also changed, we need to pull Axel's change back into our branch, and merge them: - $ git add tutorial_github.txt + $ git add Howto_github.txt $ git add JPG/tutorial_reverse_pull_request*.png $ git commit -m "Updated text and images on reverse pull requests" $ git pull :pre @@ -331,7 +331,7 @@ With Axel's changes merged in and some final text updates, our feature branch is now perfect as far as we are concerned, so we are going to commit and push again: - $ git add tutorial_github.txt + $ git add Howto_github.txt $ git add JPG/tutorial_reverse_pull_request6.png $ git commit -m "Merged Axel's suggestions and updated text" $ git push git@github.com:Pakketeretet2/lammps :pre diff --git a/doc/src/Howto_granular.txt b/doc/src/Howto_granular.txt new file mode 100644 index 0000000000..8027369501 --- /dev/null +++ b/doc/src/Howto_granular.txt @@ -0,0 +1,57 @@ +"Higher level section"_Howto.html - "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 + +Granular models :h3 + +Granular system are composed of spherical particles with a diameter, +as opposed to point particles. This means they have an angular +velocity and torque can be imparted to them to cause them to rotate. + +To run a simulation of a granular model, you will want to use +the following commands: + +"atom_style sphere"_atom_style.html +"fix nve/sphere"_fix_nve_sphere.html +"fix gravity"_fix_gravity.html :ul + +This compute + +"compute erotate/sphere"_compute_erotate_sphere.html :ul + +calculates rotational kinetic energy which can be "output with +thermodynamic info"_Howto_output.html. + +Use one of these 3 pair potentials, which compute forces and torques +between interacting pairs of particles: + +"pair_style"_pair_style.html gran/history +"pair_style"_pair_style.html gran/no_history +"pair_style"_pair_style.html gran/hertzian :ul + +These commands implement fix options specific to granular systems: + +"fix freeze"_fix_freeze.html +"fix pour"_fix_pour.html +"fix viscous"_fix_viscous.html +"fix wall/gran"_fix_wall_gran.html :ul + +The fix style {freeze} zeroes both the force and torque of frozen +atoms, and should be used for granular system instead of the fix style +{setforce}. + +For computational efficiency, you can eliminate needless pairwise +computations between frozen atoms by using this command: + +"neigh_modify"_neigh_modify.html exclude :ul + +NOTE: By default, for 2d systems, granular particles are still modeled +as 3d spheres, not 2d discs (circles), meaning their moment of inertia +will be the same as in 3d. If you wish to model granular particles in +2d as 2d discs, see the note on this topic on the "Howto 2d"_Howto_2d +doc page, where 2d simulations are discussed. diff --git a/doc/src/Howto_kappa.txt b/doc/src/Howto_kappa.txt new file mode 100644 index 0000000000..b2a57ef49b --- /dev/null +++ b/doc/src/Howto_kappa.txt @@ -0,0 +1,90 @@ +"Higher level section"_Howto.html - "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 + +Calculate thermal conductivity :h3 + +The thermal conductivity kappa of a material can be measured in at +least 4 ways using various options in LAMMPS. See the examples/KAPPA +directory for scripts that implement the 4 methods discussed here for +a simple Lennard-Jones fluid model. Also, see the "Howto +viscosity"_Howto_viscosity.html doc page for an analogous discussion +for viscosity. + +The thermal conductivity tensor kappa is a measure of the propensity +of a material to transmit heat energy in a diffusive manner as given +by Fourier's law + +J = -kappa grad(T) + +where J is the heat flux in units of energy per area per time and +grad(T) is the spatial gradient of temperature. The thermal +conductivity thus has units of energy per distance per time per degree +K and is often approximated as an isotropic quantity, i.e. as a +scalar. + +The first method is to setup two thermostatted regions at opposite +ends of a simulation box, or one in the middle and one at the end of a +periodic box. By holding the two regions at different temperatures +with a "thermostatting fix"_Howto_thermostat.html, the energy added to +the hot region should equal the energy subtracted from the cold region +and be proportional to the heat flux moving between the regions. See +the papers by "Ikeshoji and Hafskjold"_#howto-Ikeshoji and +"Wirnsberger et al"_#howto-Wirnsberger for details of this idea. Note +that thermostatting fixes such as "fix nvt"_fix_nh.html, "fix +langevin"_fix_langevin.html, and "fix +temp/rescale"_fix_temp_rescale.html store the cumulative energy they +add/subtract. + +Alternatively, as a second method, the "fix heat"_fix_heat.html or +"fix ehex"_fix_ehex.html commands can be used in place of thermostats +on each of two regions to add/subtract specified amounts of energy to +both regions. In both cases, the resulting temperatures of the two +regions can be monitored with the "compute temp/region" command and +the temperature profile of the intermediate region can be monitored +with the "fix ave/chunk"_fix_ave_chunk.html and "compute +ke/atom"_compute_ke_atom.html commands. + +The third method is to perform a reverse non-equilibrium MD simulation +using the "fix thermal/conductivity"_fix_thermal_conductivity.html +command which implements the rNEMD algorithm of Muller-Plathe. +Kinetic energy is swapped between atoms in two different layers of the +simulation box. This induces a temperature gradient between the two +layers which can be monitored with the "fix +ave/chunk"_fix_ave_chunk.html and "compute +ke/atom"_compute_ke_atom.html commands. The fix tallies the +cumulative energy transfer that it performs. See the "fix +thermal/conductivity"_fix_thermal_conductivity.html command for +details. + +The fourth method is based on the Green-Kubo (GK) formula which +relates the ensemble average of the auto-correlation of the heat flux +to kappa. The heat flux can be calculated from the fluctuations of +per-atom potential and kinetic energies and per-atom stress tensor in +a steady-state equilibrated simulation. This is in contrast to the +two preceding non-equilibrium methods, where energy flows continuously +between hot and cold regions of the simulation box. + +The "compute heat/flux"_compute_heat_flux.html command can calculate +the needed heat flux and describes how to implement the Green_Kubo +formalism using additional LAMMPS commands, such as the "fix +ave/correlate"_fix_ave_correlate.html command to calculate the needed +auto-correlation. See the doc page for the "compute +heat/flux"_compute_heat_flux.html command for an example input script +that calculates the thermal conductivity of solid Ar via the GK +formalism. + +:line + +:link(howto-Ikeshoji) +[(Ikeshoji)] Ikeshoji and Hafskjold, Molecular Physics, 81, 251-261 +(1994). + +:link(howto-Wirnsberger) +[(Wirnsberger)] Wirnsberger, Frenkel, and Dellago, J Chem Phys, 143, 124104 +(2015). diff --git a/doc/src/Howto_library.txt b/doc/src/Howto_library.txt new file mode 100644 index 0000000000..0d4852fbf2 --- /dev/null +++ b/doc/src/Howto_library.txt @@ -0,0 +1,208 @@ +"Higher level section"_Howto.html - "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 + +Library interface to LAMMPS :h3 + +As described in "Section 2.5"_Section_start.html#start_5, LAMMPS can +be built as a library, so that it can be called by another code, used +in a "coupled manner"_Howto_couple.html with other codes, or driven +through a "Python interface"_Python.html. + +All of these methodologies use a C-style interface to LAMMPS that is +provided in the files src/library.cpp and src/library.h. The +functions therein have a C-style argument list, but contain C++ code +you could write yourself in a C++ application that was invoking LAMMPS +directly. The C++ code in the functions illustrates how to invoke +internal LAMMPS operations. Note that LAMMPS classes are defined +within a LAMMPS namespace (LAMMPS_NS) if you use them from another C++ +application. + +The examples/COUPLE and python/examples directories have example C++ +and C and Python codes which show how a driver code can link to LAMMPS +as a library, run LAMMPS on a subset of processors, grab data from +LAMMPS, change it, and put it back into LAMMPS. + +The file src/library.cpp contains the following functions for creating +and destroying an instance of LAMMPS and sending it commands to +execute. See the documentation in the src/library.cpp file for +details. + +NOTE: You can write code for additional functions as needed to define +how your code talks to LAMMPS and add them to src/library.cpp and +src/library.h, as well as to the "Python interface"_Python.html. The +added functions can access or change any internal LAMMPS data you +wish. + +void lammps_open(int, char **, MPI_Comm, void **) +void lammps_open_no_mpi(int, char **, void **) +void lammps_close(void *) +int lammps_version(void *) +void lammps_file(void *, char *) +char *lammps_command(void *, char *) +void lammps_commands_list(void *, int, char **) +void lammps_commands_string(void *, char *) +void lammps_free(void *) :pre + +The lammps_open() function is used to initialize LAMMPS, passing in a +list of strings as if they were "command-line +arguments"_Section_start.html#start_6 when LAMMPS is run in +stand-alone mode from the command line, and a MPI communicator for +LAMMPS to run under. It returns a ptr to the LAMMPS object that is +created, and which is used in subsequent library calls. The +lammps_open() function can be called multiple times, to create +multiple instances of LAMMPS. + +LAMMPS will run on the set of processors in the communicator. This +means the calling code can run LAMMPS on all or a subset of +processors. For example, a wrapper script might decide to alternate +between LAMMPS and another code, allowing them both to run on all the +processors. Or it might allocate half the processors to LAMMPS and +half to the other code and run both codes simultaneously before +syncing them up periodically. Or it might instantiate multiple +instances of LAMMPS to perform different calculations. + +The lammps_open_no_mpi() function is similar except that no MPI +communicator is passed from the caller. Instead, MPI_COMM_WORLD is +used to instantiate LAMMPS, and MPI is initialized if necessary. + +The lammps_close() function is used to shut down an instance of LAMMPS +and free all its memory. + +The lammps_version() function can be used to determined the specific +version of the underlying LAMMPS code. This is particularly useful +when loading LAMMPS as a shared library via dlopen(). The code using +the library interface can than use this information to adapt to +changes to the LAMMPS command syntax between versions. The returned +LAMMPS version code is an integer (e.g. 2 Sep 2015 results in +20150902) that grows with every new LAMMPS version. + +The lammps_file(), lammps_command(), lammps_commands_list(), and +lammps_commands_string() functions are used to pass one or more +commands to LAMMPS to execute, the same as if they were coming from an +input script. + +Via these functions, the calling code can read or generate a series of +LAMMPS commands one or multiple at a time and pass it thru the library +interface to setup a problem and then run it in stages. The caller +can interleave the command function calls with operations it performs, +calls to extract information from or set information within LAMMPS, or +calls to another code's library. + +The lammps_file() function passes the filename of an input script. +The lammps_command() function passes a single command as a string. +The lammps_commands_list() function passes multiple commands in a +char** list. In both lammps_command() and lammps_commands_list(), +individual commands may or may not have a trailing newline. The +lammps_commands_string() function passes multiple commands +concatenated into one long string, separated by newline characters. +In both lammps_commands_list() and lammps_commands_string(), a single +command can be spread across multiple lines, if the last printable +character of all but the last line is "&", the same as if the lines +appeared in an input script. + +The lammps_free() function is a clean-up function to free memory that +the library allocated previously via other function calls. See +comments in src/library.cpp file for which other functions need this +clean-up. + +The file src/library.cpp also contains these functions for extracting +information from LAMMPS and setting value within LAMMPS. Again, see +the documentation in the src/library.cpp file for details, including +which quantities can be queried by name: + +int lammps_extract_setting(void *, char *) +void *lammps_extract_global(void *, char *) +void lammps_extract_box(void *, double *, double *, + double *, double *, double *, int *, int *) +void *lammps_extract_atom(void *, char *) +void *lammps_extract_compute(void *, char *, int, int) +void *lammps_extract_fix(void *, char *, int, int, int, int) +void *lammps_extract_variable(void *, char *, char *) :pre + +The extract_setting() function returns info on the size +of data types (e.g. 32-bit or 64-bit atom IDs) used +by the LAMMPS executable (a compile-time choice). + +The other extract functions return a pointer to various global or +per-atom quantities stored in LAMMPS or to values calculated by a +compute, fix, or variable. The pointer returned by the +extract_global() function can be used as a permanent reference to a +value which may change. For the extract_atom() method, see the +extract() method in the src/atom.cpp file for a list of valid per-atom +properties. New names could easily be added if the property you want +is not listed. For the other extract functions, the underlying +storage may be reallocated as LAMMPS runs, so you need to re-call the +function to assure a current pointer or returned value(s). + +double lammps_get_thermo(void *, char *) +int lammps_get_natoms(void *) :pre + +int lammps_set_variable(void *, char *, char *) +void lammps_reset_box(void *, double *, double *, double, double, double) :pre + +The lammps_get_thermo() function returns the current value of a thermo +keyword as a double precision value. + +The lammps_get_natoms() function returns the total number of atoms in +the system and can be used by the caller to allocate memory for the +lammps_gather_atoms() and lammps_scatter_atoms() functions. + +The lammps_set_variable() function can set an existing string-style +variable to a new string value, so that subsequent LAMMPS commands can +access the variable. + +The lammps_reset_box() function resets the size and shape of the +simulation box, e.g. as part of restoring a previously extracted and +saved state of a simulation. + +void lammps_gather_atoms(void *, char *, int, int, void *) +void lammps_gather_atoms_concat(void *, char *, int, int, void *) +void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *) +void lammps_scatter_atoms(void *, char *, int, int, void *) +void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *) :pre + +void lammps_create_atoms(void *, int, tagint *, int *, double *, double *, + imageint *, int) :pre + +The gather functions collect peratom info of the requested type (atom +coords, atom types, forces, etc) from all processors, and returns the +same vector of values to each callling processor. The scatter +functions do the inverse. They distribute a vector of peratom values, +passed by all calling processors, to invididual atoms, which may be +owned by different processos. + +The lammps_gather_atoms() function does this for all N atoms in the +system, ordered by atom ID, from 1 to N. The +lammps_gather_atoms_concat() function does it for all N atoms, but +simply concatenates the subset of atoms owned by each processor. The +resulting vector is not ordered by atom ID. Atom IDs can be requetsed +by the same function if the caller needs to know the ordering. The +lammps_gather_subset() function allows the caller to request values +for only a subset of atoms (identified by ID). +For all 3 gather function, per-atom image flags can be retrieved in 2 ways. +If the count is specified as 1, they are returned +in a packed format with all three image flags stored in a single integer. +If the count is specified as 3, the values are unpacked into xyz flags +by the library before returning them. + +The lammps_scatter_atoms() function takes a list of values for all N +atoms in the system, ordered by atom ID, from 1 to N, and assigns +those values to each atom in the system. The +lammps_scatter_atoms_subset() function takes a subset of IDs as an +argument and only scatters those values to the owning atoms. + +The lammps_create_atoms() function takes a list of N atoms as input +with atom types and coords (required), an optionally atom IDs and +velocities and image flags. It uses the coords of each atom to assign +it as a new atom to the processor that owns it. This function is +useful to add atoms to a simulation or (in tandem with +lammps_reset_box()) to restore a previously extracted and saved state +of a simulation. Additional properties for the new atoms can then be +assigned via the lammps_scatter_atoms() or lammps_extract_atom() +functions. diff --git a/doc/src/manifolds.txt b/doc/src/Howto_manifold.txt similarity index 97% rename from doc/src/manifolds.txt rename to doc/src/Howto_manifold.txt index 1013d8fab6..09a936f7d3 100644 --- a/doc/src/manifolds.txt +++ b/doc/src/Howto_manifold.txt @@ -2,11 +2,11 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line -Manifolds (surfaces) :h2 +Manifolds (surfaces) :h3 [Overview:] diff --git a/doc/src/Howto_multiple.txt b/doc/src/Howto_multiple.txt new file mode 100644 index 0000000000..edcb8196cf --- /dev/null +++ b/doc/src/Howto_multiple.txt @@ -0,0 +1,95 @@ +"Higher level section"_Howto.html - "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 + +Run multiple simulations from one input script :h3 + +This can be done in several ways. See the documentation for +individual commands for more details on how these examples work. + +If "multiple simulations" means continue a previous simulation for +more timesteps, then you simply use the "run"_run.html command +multiple times. For example, this script + +units lj +atom_style atomic +read_data data.lj +run 10000 +run 10000 +run 10000 +run 10000 +run 10000 :pre + +would run 5 successive simulations of the same system for a total of +50,000 timesteps. + +If you wish to run totally different simulations, one after the other, +the "clear"_clear.html command can be used in between them to +re-initialize LAMMPS. For example, this script + +units lj +atom_style atomic +read_data data.lj +run 10000 +clear +units lj +atom_style atomic +read_data data.lj.new +run 10000 :pre + +would run 2 independent simulations, one after the other. + +For large numbers of independent simulations, you can use +"variables"_variable.html and the "next"_next.html and +"jump"_jump.html commands to loop over the same input script +multiple times with different settings. For example, this +script, named in.polymer + +variable d index run1 run2 run3 run4 run5 run6 run7 run8 +shell cd $d +read_data data.polymer +run 10000 +shell cd .. +clear +next d +jump in.polymer :pre + +would run 8 simulations in different directories, using a data.polymer +file in each directory. The same concept could be used to run the +same system at 8 different temperatures, using a temperature variable +and storing the output in different log and dump files, for example + +variable a loop 8 +variable t index 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15 +log log.$a +read data.polymer +velocity all create $t 352839 +fix 1 all nvt $t $t 100.0 +dump 1 all atom 1000 dump.$a +run 100000 +clear +next t +next a +jump in.polymer :pre + +All of the above examples work whether you are running on 1 or +multiple processors, but assumed you are running LAMMPS on a single +partition of processors. LAMMPS can be run on multiple partitions via +the "-partition" command-line switch as described in "this +section"_Section_start.html#start_6 of the manual. + +In the last 2 examples, if LAMMPS were run on 3 partitions, the same +scripts could be used if the "index" and "loop" variables were +replaced with {universe}-style variables, as described in the +"variable"_variable.html command. Also, the "next t" and "next a" +commands would need to be replaced with a single "next a t" command. +With these modifications, the 8 simulations of each script would run +on the 3 partitions one after the other until all were finished. +Initially, 3 simulations would be started simultaneously, one on each +partition. When one finished, that partition would then start +the 4th simulation, and so forth, until all 8 were completed. diff --git a/doc/src/Howto_nemd.txt b/doc/src/Howto_nemd.txt new file mode 100644 index 0000000000..f787801c36 --- /dev/null +++ b/doc/src/Howto_nemd.txt @@ -0,0 +1,48 @@ +"Higher level section"_Howto.html - "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 + +NEMD simulations :h3 + +Non-equilibrium molecular dynamics or NEMD simulations are typically +used to measure a fluid's rheological properties such as viscosity. +In LAMMPS, such simulations can be performed by first setting up a +non-orthogonal simulation box (see the preceding Howto section). + +A shear strain can be applied to the simulation box at a desired +strain rate by using the "fix deform"_fix_deform.html command. The +"fix nvt/sllod"_fix_nvt_sllod.html command can be used to thermostat +the sheared fluid and integrate the SLLOD equations of motion for the +system. Fix nvt/sllod uses "compute +temp/deform"_compute_temp_deform.html to compute a thermal temperature +by subtracting out the streaming velocity of the shearing atoms. The +velocity profile or other properties of the fluid can be monitored via +the "fix ave/chunk"_fix_ave_chunk.html command. + +As discussed in the previous section on non-orthogonal simulation +boxes, the amount of tilt or skew that can be applied is limited by +LAMMPS for computational efficiency to be 1/2 of the parallel box +length. However, "fix deform"_fix_deform.html can continuously strain +a box by an arbitrary amount. As discussed in the "fix +deform"_fix_deform.html command, when the tilt value reaches a limit, +the box is flipped to the opposite limit which is an equivalent tiling +of periodic space. The strain rate can then continue to change as +before. In a long NEMD simulation these box re-shaping events may +occur many times. + +In a NEMD simulation, the "remap" option of "fix +deform"_fix_deform.html should be set to "remap v", since that is what +"fix nvt/sllod"_fix_nvt_sllod.html assumes to generate a velocity +profile consistent with the applied shear strain rate. + +An alternative method for calculating viscosities is provided via the +"fix viscosity"_fix_viscosity.html command. + +NEMD simulations can also be used to measure transport properties of a fluid +through a pore or channel. Simulations of steady-state flow can be performed +using the "fix flow/gauss"_fix_flow_gauss.html command. diff --git a/doc/src/Howto_output.txt b/doc/src/Howto_output.txt new file mode 100644 index 0000000000..a204a3cc96 --- /dev/null +++ b/doc/src/Howto_output.txt @@ -0,0 +1,307 @@ +"Higher level section"_Howto.html - "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 + +Output from LAMMPS (thermo, dumps, computes, fixes, variables) :h3 + +There are four basic kinds of LAMMPS output: + +"Thermodynamic output"_thermo_style.html, which is a list +of quantities printed every few timesteps to the screen and logfile. :ulb,l + +"Dump files"_dump.html, which contain snapshots of atoms and various +per-atom values and are written at a specified frequency. :l + +Certain fixes can output user-specified quantities to files: "fix +ave/time"_fix_ave_time.html for time averaging, "fix +ave/chunk"_fix_ave_chunk.html for spatial or other averaging, and "fix +print"_fix_print.html for single-line output of +"variables"_variable.html. Fix print can also output to the +screen. :l + +"Restart files"_restart.html. :l +:ule + +A simulation prints one set of thermodynamic output and (optionally) +restart files. It can generate any number of dump files and fix +output files, depending on what "dump"_dump.html and "fix"_fix.html +commands you specify. + +As discussed below, LAMMPS gives you a variety of ways to determine +what quantities are computed and printed when the thermodynamics, +dump, or fix commands listed above perform output. Throughout this +discussion, note that users can also "add their own computes and fixes +to LAMMPS"_Modify.html which can then generate values that can then be +output with these commands. + +The following sub-sections discuss different LAMMPS command related +to output and the kind of data they operate on and produce: + +"Global/per-atom/local data"_#global +"Scalar/vector/array data"_#scalar +"Thermodynamic output"_#thermo +"Dump file output"_#dump +"Fixes that write output files"_#fixoutput +"Computes that process output quantities"_#computeoutput +"Fixes that process output quantities"_#fixprocoutput +"Computes that generate values to output"_#compute +"Fixes that generate values to output"_#fix +"Variables that generate values to output"_#variable +"Summary table of output options and data flow between commands"_#table :ul + +Global/per-atom/local data :h4,link(global) + +Various output-related commands work with three different styles of +data: global, per-atom, or local. A global datum is one or more +system-wide values, e.g. the temperature of the system. A per-atom +datum is one or more values per atom, e.g. the kinetic energy of each +atom. Local datums are calculated by each processor based on the +atoms it owns, but there may be zero or more per atom, e.g. a list of +bond distances. + +Scalar/vector/array data :h4,link(scalar) + +Global, per-atom, and local datums can each come in three kinds: a +single scalar value, a vector of values, or a 2d array of values. The +doc page for a "compute" or "fix" or "variable" that generates data +will specify both the style and kind of data it produces, e.g. a +per-atom vector. + +When a quantity is accessed, as in many of the output commands +discussed below, it can be referenced via the following bracket +notation, where ID in this case is the ID of a compute. The leading +"c_" would be replaced by "f_" for a fix, or "v_" for a variable: + +c_ID | entire scalar, vector, or array +c_ID\[I\] | one element of vector, one column of array +c_ID\[I\]\[J\] | one element of array :tb(s=|) + +In other words, using one bracket reduces the dimension of the data +once (vector -> scalar, array -> vector). Using two brackets reduces +the dimension twice (array -> scalar). Thus a command that uses +scalar values as input can typically also process elements of a vector +or array. + +Thermodynamic output :h4,link(thermo) + +The frequency and format of thermodynamic output is set by the +"thermo"_thermo.html, "thermo_style"_thermo_style.html, and +"thermo_modify"_thermo_modify.html commands. The +"thermo_style"_thermo_style.html command also specifies what values +are calculated and written out. Pre-defined keywords can be specified +(e.g. press, etotal, etc). Three additional kinds of keywords can +also be specified (c_ID, f_ID, v_name), where a "compute"_compute.html +or "fix"_fix.html or "variable"_variable.html provides the value to be +output. In each case, the compute, fix, or variable must generate +global values for input to the "thermo_style custom"_dump.html +command. + +Note that thermodynamic output values can be "extensive" or +"intensive". The former scale with the number of atoms in the system +(e.g. total energy), the latter do not (e.g. temperature). The +setting for "thermo_modify norm"_thermo_modify.html determines whether +extensive quantities are normalized or not. Computes and fixes +produce either extensive or intensive values; see their individual doc +pages for details. "Equal-style variables"_variable.html produce only +intensive values; you can include a division by "natoms" in the +formula if desired, to make an extensive calculation produce an +intensive result. + +Dump file output :h4,link(dump) + +Dump file output is specified by the "dump"_dump.html and +"dump_modify"_dump_modify.html commands. There are several +pre-defined formats (dump atom, dump xtc, etc). + +There is also a "dump custom"_dump.html format where the user +specifies what values are output with each atom. Pre-defined atom +attributes can be specified (id, x, fx, etc). Three additional kinds +of keywords can also be specified (c_ID, f_ID, v_name), where a +"compute"_compute.html or "fix"_fix.html or "variable"_variable.html +provides the values to be output. In each case, the compute, fix, or +variable must generate per-atom values for input to the "dump +custom"_dump.html command. + +There is also a "dump local"_dump.html format where the user specifies +what local values to output. A pre-defined index keyword can be +specified to enumerate the local values. Two additional kinds of +keywords can also be specified (c_ID, f_ID), where a +"compute"_compute.html or "fix"_fix.html or "variable"_variable.html +provides the values to be output. In each case, the compute or fix +must generate local values for input to the "dump local"_dump.html +command. + +Fixes that write output files :h4,link(fixoutput) + +Several fixes take various quantities as input and can write output +files: "fix ave/time"_fix_ave_time.html, "fix +ave/chunk"_fix_ave_chunk.html, "fix ave/histo"_fix_ave_histo.html, +"fix ave/correlate"_fix_ave_correlate.html, and "fix +print"_fix_print.html. + +The "fix ave/time"_fix_ave_time.html command enables direct output to +a file and/or time-averaging of global scalars or vectors. The user +specifies one or more quantities as input. These can be global +"compute"_compute.html values, global "fix"_fix.html values, or +"variables"_variable.html of any style except the atom style which +produces per-atom values. Since a variable can refer to keywords used +by the "thermo_style custom"_thermo_style.html command (like temp or +press) and individual per-atom values, a wide variety of quantities +can be time averaged and/or output in this way. If the inputs are one +or more scalar values, then the fix generate a global scalar or vector +of output. If the inputs are one or more vector values, then the fix +generates a global vector or array of output. The time-averaged +output of this fix can also be used as input to other output commands. + +The "fix ave/chunk"_fix_ave_chunk.html command enables direct output +to a file of chunk-averaged per-atom quantities like those output in +dump files. Chunks can represent spatial bins or other collections of +atoms, e.g. individual molecules. The per-atom quantities can be atom +density (mass or number) or atom attributes such as position, +velocity, force. They can also be per-atom quantities calculated by a +"compute"_compute.html, by a "fix"_fix.html, or by an atom-style +"variable"_variable.html. The chunk-averaged output of this fix can +also be used as input to other output commands. + +The "fix ave/histo"_fix_ave_histo.html command enables direct output +to a file of histogrammed quantities, which can be global or per-atom +or local quantities. The histogram output of this fix can also be +used as input to other output commands. + +The "fix ave/correlate"_fix_ave_correlate.html command enables direct +output to a file of time-correlated quantities, which can be global +values. The correlation matrix output of this fix can also be used as +input to other output commands. + +The "fix print"_fix_print.html command can generate a line of output +written to the screen and log file or to a separate file, periodically +during a running simulation. The line can contain one or more +"variable"_variable.html values for any style variable except the +vector or atom styles). As explained above, variables themselves can +contain references to global values generated by "thermodynamic +keywords"_thermo_style.html, "computes"_compute.html, +"fixes"_fix.html, or other "variables"_variable.html, or to per-atom +values for a specific atom. Thus the "fix print"_fix_print.html +command is a means to output a wide variety of quantities separate +from normal thermodynamic or dump file output. + +Computes that process output quantities :h4,link(computeoutput) + +The "compute reduce"_compute_reduce.html and "compute +reduce/region"_compute_reduce.html commands take one or more per-atom +or local vector quantities as inputs and "reduce" them (sum, min, max, +ave) to scalar quantities. These are produced as output values which +can be used as input to other output commands. + +The "compute slice"_compute_slice.html command take one or more global +vector or array quantities as inputs and extracts a subset of their +values to create a new vector or array. These are produced as output +values which can be used as input to other output commands. + +The "compute property/atom"_compute_property_atom.html command takes a +list of one or more pre-defined atom attributes (id, x, fx, etc) and +stores the values in a per-atom vector or array. These are produced +as output values which can be used as input to other output commands. +The list of atom attributes is the same as for the "dump +custom"_dump.html command. + +The "compute property/local"_compute_property_local.html command takes +a list of one or more pre-defined local attributes (bond info, angle +info, etc) and stores the values in a local vector or array. These +are produced as output values which can be used as input to other +output commands. + +Fixes that process output quantities :h4,link(fixprocoutput) + +The "fix vector"_fix_vector.html command can create global vectors as +output from global scalars as input, accumulating them one element at +a time. + +The "fix ave/atom"_fix_ave_atom.html command performs time-averaging +of per-atom vectors. The per-atom quantities can be atom attributes +such as position, velocity, force. They can also be per-atom +quantities calculated by a "compute"_compute.html, by a +"fix"_fix.html, or by an atom-style "variable"_variable.html. The +time-averaged per-atom output of this fix can be used as input to +other output commands. + +The "fix store/state"_fix_store_state.html command can archive one or +more per-atom attributes at a particular time, so that the old values +can be used in a future calculation or output. The list of atom +attributes is the same as for the "dump custom"_dump.html command, +including per-atom quantities calculated by a "compute"_compute.html, +by a "fix"_fix.html, or by an atom-style "variable"_variable.html. +The output of this fix can be used as input to other output commands. + +Computes that generate values to output :h4,link(compute) + +Every "compute"_compute.html in LAMMPS produces either global or +per-atom or local values. The values can be scalars or vectors or +arrays of data. These values can be output using the other commands +described in this section. The doc page for each compute command +describes what it produces. Computes that produce per-atom or local +values have the word "atom" or "local" in their style name. Computes +without the word "atom" or "local" produce global values. + +Fixes that generate values to output :h4,link(fix) + +Some "fixes"_fix.html in LAMMPS produces either global or per-atom or +local values which can be accessed by other commands. The values can +be scalars or vectors or arrays of data. These values can be output +using the other commands described in this section. The doc page for +each fix command tells whether it produces any output quantities and +describes them. + +Variables that generate values to output :h4,link(variable) + +"Variables"_variable.html defined in an input script can store one or +more strings. But equal-style, vector-style, and atom-style or +atomfile-style variables generate a global scalar value, global vector +or values, or a per-atom vector, respectively, when accessed. The +formulas used to define these variables can contain references to the +thermodynamic keywords and to global and per-atom data generated by +computes, fixes, and other variables. The values generated by +variables can be used as input to and thus output by the other +commands described in this section. + +Summary table of output options and data flow between commands :h4,link(table) + +This table summarizes the various commands that can be used for +generating output from LAMMPS. Each command produces output data of +some kind and/or writes data to a file. Most of the commands can take +data from other commands as input. Thus you can link many of these +commands together in pipeline form, where data produced by one command +is used as input to another command and eventually written to the +screen or to a file. Note that to hook two commands together the +output and input data types must match, e.g. global/per-atom/local +data and scalar/vector/array data. + +Also note that, as described above, when a command takes a scalar as +input, that could be an element of a vector or array. Likewise a +vector input could be a column of an array. + +Command: Input: Output: +"thermo_style custom"_thermo_style.html: global scalars: screen, log file: +"dump custom"_dump.html: per-atom vectors: dump file: +"dump local"_dump.html: local vectors: dump file: +"fix print"_fix_print.html: global scalar from variable: screen, file: +"print"_print.html: global scalar from variable: screen: +"computes"_compute.html: N/A: global/per-atom/local scalar/vector/array: +"fixes"_fix.html: N/A: global/per-atom/local scalar/vector/array: +"variables"_variable.html: global scalars and vectors, per-atom vectors: global scalar and vector, per-atom vector: +"compute reduce"_compute_reduce.html: per-atom/local vectors: global scalar/vector: +"compute slice"_compute_slice.html: global vectors/arrays: global vector/array: +"compute property/atom"_compute_property_atom.html: per-atom vectors: per-atom vector/array: +"compute property/local"_compute_property_local.html: local vectors: local vector/array: +"fix vector"_fix_vector.html: global scalars: global vector: +"fix ave/atom"_fix_ave_atom.html: per-atom vectors: per-atom vector/array: +"fix ave/time"_fix_ave_time.html: global scalars/vectors: global scalar/vector/array, file: +"fix ave/chunk"_fix_ave_chunk.html: per-atom vectors: global array, file: +"fix ave/histo"_fix_ave_histo.html: global/per-atom/local scalars and vectors: global array, file: +"fix ave/correlate"_fix_ave_correlate.html: global scalars: global array, file: +"fix store/state"_fix_store_state.html: per-atom vectors: per-atom vector/array :tb(c=3,s=:) diff --git a/doc/src/Howto_polarizable.txt b/doc/src/Howto_polarizable.txt new file mode 100644 index 0000000000..b2653b117e --- /dev/null +++ b/doc/src/Howto_polarizable.txt @@ -0,0 +1,81 @@ +"Higher level section"_Howto.html - "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 + +Polarizable models :h3 + +In polarizable force fields the charge distributions in molecules and +materials respond to their electrostatic environments. Polarizable +systems can be simulated in LAMMPS using three methods: + +the fluctuating charge method, implemented in the "QEQ"_fix_qeq.html +package, :ulb,l +the adiabatic core-shell method, implemented in the +"CORESHELL"_Howto_coreshell.html package, :l +the thermalized Drude dipole method, implemented in the +"USER-DRUDE"_Howto_drude.html package. :l,ule + +The fluctuating charge method calculates instantaneous charges on +interacting atoms based on the electronegativity equalization +principle. It is implemented in the "fix qeq"_fix_qeq.html which is +available in several variants. It is a relatively efficient technique +since no additional particles are introduced. This method allows for +charge transfer between molecules or atom groups. However, because the +charges are located at the interaction sites, off-plane components of +polarization cannot be represented in planar molecules or atom groups. + +The two other methods share the same basic idea: polarizable atoms are +split into one core atom and one satellite particle (called shell or +Drude particle) attached to it by a harmonic spring. Both atoms bear +a charge and they represent collectively an induced electric dipole. +These techniques are computationally more expensive than the QEq +method because of additional particles and bonds. These two +charge-on-spring methods differ in certain features, with the +core-shell model being normally used for ionic/crystalline materials, +whereas the so-called Drude model is normally used for molecular +systems and fluid states. + +The core-shell model is applicable to crystalline materials where the +high symmetry around each site leads to stable trajectories of the +core-shell pairs. However, bonded atoms in molecules can be so close +that a core would interact too strongly or even capture the Drude +particle of a neighbor. The Drude dipole model is relatively more +complex in order to remediate this and other issues. Specifically, the +Drude model includes specific thermostating of the core-Drude pairs +and short-range damping of the induced dipoles. + +The three polarization methods can be implemented through a +self-consistent calculation of charges or induced dipoles at each +timestep. In the fluctuating charge scheme this is done by the matrix +inversion method in "fix qeq/point"_fix_qeq.html, but for core-shell +or Drude-dipoles the relaxed-dipoles technique would require an slow +iterative procedure. These self-consistent solutions yield accurate +trajectories since the additional degrees of freedom representing +polarization are massless. An alternative is to attribute a mass to +the additional degrees of freedom and perform time integration using +an extended Lagrangian technique. For the fluctuating charge scheme +this is done by "fix qeq/dynamic"_fix_qeq.html, and for the +charge-on-spring models by the methods outlined in the next two +sections. The assignment of masses to the additional degrees of +freedom can lead to unphysical trajectories if care is not exerted in +choosing the parameters of the polarizable models and the simulation +conditions. + +In the core-shell model the vibration of the shells is kept faster +than the ionic vibrations to mimic the fast response of the +polarizable electrons. But in molecular systems thermalizing the +core-Drude pairs at temperatures comparable to the rest of the +simulation leads to several problems (kinetic energy transfer, too +short a timestep, etc.) In order to avoid these problems the relative +motion of the Drude particles with respect to their cores is kept +"cold" so the vibration of the core-Drude pairs is very slow, +approaching the self-consistent regime. In both models the +temperature is regulated using the velocities of the center of mass of +core+shell (or Drude) pairs, but in the Drude model the actual +relative core-Drude particle motion is thermostated separately as +well. diff --git a/doc/src/tutorial_pylammps.txt b/doc/src/Howto_pylammps.txt similarity index 95% rename from doc/src/tutorial_pylammps.txt rename to doc/src/Howto_pylammps.txt index 11cddb3cbf..8be4b66e78 100644 --- a/doc/src/tutorial_pylammps.txt +++ b/doc/src/Howto_pylammps.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -15,13 +15,19 @@ END_RST --> Overview :h4 -PyLammps is a Python wrapper class which can be created on its own or use an -existing lammps Python object. It creates a simpler, Python-like interface to -common LAMMPS functionality. Unlike the original flat C-types interface, it -exposes a discoverable API. It no longer requires knowledge of the underlying -C++ code implementation. Finally, the IPyLammps wrapper builds on top of -PyLammps and adds some additional features for IPython integration into IPython -notebooks, e.g. for embedded visualization output from dump/image. +PyLammps is a Python wrapper class which can be created on its own or +use an existing lammps Python object. It creates a simpler, +Python-like interface to common LAMMPS functionality, in contrast to +the lammps.py wrapper on the C-style LAMMPS library interface which is +written using Python ctypes. The lammps.py wrapper is discussed on +the "Python library"_Python_library.html doc page. + +Unlike the flat ctypes interface, PyLammps exposes a discoverable API. +It no longer requires knowledge of the underlying C++ code +implementation. Finally, the IPyLammps wrapper builds on top of +PyLammps and adds some additional features for IPython integration +into IPython notebooks, e.g. for embedded visualization output from +dump/image. Comparison of lammps and PyLammps interfaces :h5 @@ -40,7 +46,6 @@ communication with LAMMPS is hidden from API user shorter, more concise Python better IPython integration, designed for quick prototyping :ul - Quick Start :h4 System-wide Installation :h5 diff --git a/doc/src/Howto_replica.txt b/doc/src/Howto_replica.txt new file mode 100644 index 0000000000..1b44fe5374 --- /dev/null +++ b/doc/src/Howto_replica.txt @@ -0,0 +1,61 @@ +"Higher level section"_Howto.html - "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 + +Multi-replica simulations :h3 + +Several commands in LAMMPS run mutli-replica simulations, meaning +that multiple instances (replicas) of your simulation are run +simultaneously, with small amounts of data exchanged between replicas +periodically. + +These are the relevant commands: + +"neb"_neb.html for nudged elastic band calculations +"prd"_prd.html for parallel replica dynamics +"tad"_tad.html for temperature accelerated dynamics +"temper"_temper.html for parallel tempering +"fix pimd"_fix_pimd.html for path-integral molecular dynamics (PIMD) :ul + +NEB is a method for finding transition states and barrier energies. +PRD and TAD are methods for performing accelerated dynamics to find +and perform infrequent events. Parallel tempering or replica exchange +runs different replicas at a series of temperature to facilitate +rare-event sampling. + +These commands can only be used if LAMMPS was built with the REPLICA +package. See the "Making LAMMPS"_Section_start.html#start_3 section +for more info on packages. + +PIMD runs different replicas whose individual particles are coupled +together by springs to model a system or ring-polymers. + +This commands can only be used if LAMMPS was built with the USER-MISC +package. See the "Making LAMMPS"_Section_start.html#start_3 section +for more info on packages. + +In all these cases, you must run with one or more processors per +replica. The processors assigned to each replica are determined at +run-time by using the "-partition command-line +switch"_Section_start.html#start_6 to launch LAMMPS on multiple +partitions, which in this context are the same as replicas. E.g. +these commands: + +mpirun -np 16 lmp_linux -partition 8x2 -in in.temper +mpirun -np 8 lmp_linux -partition 8x1 -in in.neb :pre + +would each run 8 replicas, on either 16 or 8 processors. Note the use +of the "-in command-line switch"_Section_start.html#start_6 to specify +the input script which is required when running in multi-replica mode. + +Also note that with MPI installed on a machine (e.g. your desktop), +you can run on more (virtual) processors than you have physical +processors. Thus the above commands could be run on a +single-processor (or few-processor) desktop so that you can run +a multi-replica simulation on more replicas than you have +physical processors. diff --git a/doc/src/Howto_restart.txt b/doc/src/Howto_restart.txt new file mode 100644 index 0000000000..b211775479 --- /dev/null +++ b/doc/src/Howto_restart.txt @@ -0,0 +1,97 @@ +"Higher level section"_Howto.html - "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 + +Restart a simulation :h3 + +There are 3 ways to continue a long LAMMPS simulation. Multiple +"run"_run.html commands can be used in the same input script. Each +run will continue from where the previous run left off. Or binary +restart files can be saved to disk using the "restart"_restart.html +command. At a later time, these binary files can be read via a +"read_restart"_read_restart.html command in a new script. Or they can +be converted to text data files using the "-r command-line +switch"_Section_start.html#start_6 and read by a +"read_data"_read_data.html command in a new script. + +Here we give examples of 2 scripts that read either a binary restart +file or a converted data file and then issue a new run command to +continue where the previous run left off. They illustrate what +settings must be made in the new script. Details are discussed in the +documentation for the "read_restart"_read_restart.html and +"read_data"_read_data.html commands. + +Look at the {in.chain} input script provided in the {bench} directory +of the LAMMPS distribution to see the original script that these 2 +scripts are based on. If that script had the line + +restart 50 tmp.restart :pre + +added to it, it would produce 2 binary restart files (tmp.restart.50 +and tmp.restart.100) as it ran. + +This script could be used to read the 1st restart file and re-run the +last 50 timesteps: + +read_restart tmp.restart.50 :pre + +neighbor 0.4 bin +neigh_modify every 1 delay 1 :pre + +fix 1 all nve +fix 2 all langevin 1.0 1.0 10.0 904297 :pre + +timestep 0.012 :pre + +run 50 :pre + +Note that the following commands do not need to be repeated because +their settings are included in the restart file: {units, atom_style, +special_bonds, pair_style, bond_style}. However these commands do +need to be used, since their settings are not in the restart file: +{neighbor, fix, timestep}. + +If you actually use this script to perform a restarted run, you will +notice that the thermodynamic data match at step 50 (if you also put a +"thermo 50" command in the original script), but do not match at step +100. This is because the "fix langevin"_fix_langevin.html command +uses random numbers in a way that does not allow for perfect restarts. + +As an alternate approach, the restart file could be converted to a data +file as follows: + +lmp_g++ -r tmp.restart.50 tmp.restart.data :pre + +Then, this script could be used to re-run the last 50 steps: + +units lj +atom_style bond +pair_style lj/cut 1.12 +pair_modify shift yes +bond_style fene +special_bonds 0.0 1.0 1.0 :pre + +read_data tmp.restart.data :pre + +neighbor 0.4 bin +neigh_modify every 1 delay 1 :pre + +fix 1 all nve +fix 2 all langevin 1.0 1.0 10.0 904297 :pre + +timestep 0.012 :pre + +reset_timestep 50 +run 50 :pre + +Note that nearly all the settings specified in the original {in.chain} +script must be repeated, except the {pair_coeff} and {bond_coeff} +commands since the new data file lists the force field coefficients. +Also, the "reset_timestep"_reset_timestep.html command is used to tell +LAMMPS the current timestep. This value is stored in restart files, +but not in data files. diff --git a/doc/src/Howto_spc.txt b/doc/src/Howto_spc.txt new file mode 100644 index 0000000000..2cbf16547b --- /dev/null +++ b/doc/src/Howto_spc.txt @@ -0,0 +1,54 @@ +"Higher level section"_Howto.html - "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 + +SPC water model :h3 + +The SPC water model specifies a 3-site rigid water molecule with +charges and Lennard-Jones parameters assigned to each of the 3 atoms. +In LAMMPS the "fix shake"_fix_shake.html command can be used to hold +the two O-H bonds and the H-O-H angle rigid. A bond style of +{harmonic} and an angle style of {harmonic} or {charmm} should also be +used. + +These are the additional parameters (in real units) to set for O and H +atoms and the water molecule to run a rigid SPC model. + +O mass = 15.9994 +H mass = 1.008 +O charge = -0.820 +H charge = 0.410 +LJ epsilon of OO = 0.1553 +LJ sigma of OO = 3.166 +LJ epsilon, sigma of OH, HH = 0.0 +r0 of OH bond = 1.0 +theta of HOH angle = 109.47 :all(b),p + +Note that as originally proposed, the SPC model was run with a 9 +Angstrom cutoff for both LJ and Coulommbic terms. It can also be used +with long-range Coulombics (Ewald or PPPM in LAMMPS), without changing +any of the parameters above, though it becomes a different model in +that mode of usage. + +The SPC/E (extended) water model is the same, except +the partial charge assignments change: + +O charge = -0.8476 +H charge = 0.4238 :all(b),p + +See the "(Berendsen)"_#howto-Berendsen reference for more details on both +the SPC and SPC/E models. + +Wikipedia also has a nice article on "water +models"_http://en.wikipedia.org/wiki/Water_model. + +:line + +:link(howto-Berendsen) +[(Berendsen)] Berendsen, Grigera, Straatsma, J Phys Chem, 91, +6269-6271 (1987). diff --git a/doc/src/Howto_spherical.txt b/doc/src/Howto_spherical.txt new file mode 100644 index 0000000000..1e737df655 --- /dev/null +++ b/doc/src/Howto_spherical.txt @@ -0,0 +1,243 @@ +"Higher level section"_Howto.html - "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 + +Finite-size spherical and aspherical particles :h3 + +Typical MD models treat atoms or particles as point masses. Sometimes +it is desirable to have a model with finite-size particles such as +spheroids or ellipsoids or generalized aspherical bodies. The +difference is that such particles have a moment of inertia, rotational +energy, and angular momentum. Rotation is induced by torque coming +from interactions with other particles. + +LAMMPS has several options for running simulations with these kinds of +particles. The following aspects are discussed in turn: + +atom styles +pair potentials +time integration +computes, thermodynamics, and dump output +rigid bodies composed of finite-size particles :ul + +Example input scripts for these kinds of models are in the body, +colloid, dipole, ellipse, line, peri, pour, and tri directories of the +"examples directory"_Examples.html in the LAMMPS distribution. + +Atom styles :h4 + +There are several "atom styles"_atom_style.html that allow for +definition of finite-size particles: sphere, dipole, ellipsoid, line, +tri, peri, and body. + +The sphere style defines particles that are spheriods and each +particle can have a unique diameter and mass (or density). These +particles store an angular velocity (omega) and can be acted upon by +torque. The "set" command can be used to modify the diameter and mass +of individual particles, after then are created. + +The dipole style does not actually define finite-size particles, but +is often used in conjunction with spherical particles, via a command +like + +atom_style hybrid sphere dipole :pre + +This is because when dipoles interact with each other, they induce +torques, and a particle must be finite-size (i.e. have a moment of +inertia) in order to respond and rotate. See the "atom_style +dipole"_atom_style.html command for details. The "set" command can be +used to modify the orientation and length of the dipole moment of +individual particles, after then are created. + +The ellipsoid style defines particles that are ellipsoids and thus can +be aspherical. Each particle has a shape, specified by 3 diameters, +and mass (or density). These particles store an angular momentum and +their orientation (quaternion), and can be acted upon by torque. They +do not store an angular velocity (omega), which can be in a different +direction than angular momentum, rather they compute it as needed. +The "set" command can be used to modify the diameter, orientation, and +mass of individual particles, after then are created. It also has a +brief explanation of what quaternions are. + +The line style defines line segment particles with two end points and +a mass (or density). They can be used in 2d simulations, and they can +be joined together to form rigid bodies which represent arbitrary +polygons. + +The tri style defines triangular particles with three corner points +and a mass (or density). They can be used in 3d simulations, and they +can be joined together to form rigid bodies which represent arbitrary +particles with a triangulated surface. + +The peri style is used with "Peridynamic models"_pair_peri.html and +defines particles as having a volume, that is used internally in the +"pair_style peri"_pair_peri.html potentials. + +The body style allows for definition of particles which can represent +complex entities, such as surface meshes of discrete points, +collections of sub-particles, deformable objects, etc. The body style +is discussed in more detail on the "Howto body"_Howto_body.html doc +page. + +Note that if one of these atom styles is used (or multiple styles via +the "atom_style hybrid"_atom_style.html command), not all particles in +the system are required to be finite-size or aspherical. + +For example, in the ellipsoid style, if the 3 shape parameters are set +to the same value, the particle will be a sphere rather than an +ellipsoid. If the 3 shape parameters are all set to 0.0 or if the +diameter is set to 0.0, it will be a point particle. In the line or +tri style, if the lineflag or triflag is specified as 0, then it +will be a point particle. + +Some of the pair styles used to compute pairwise interactions between +finite-size particles also compute the correct interaction with point +particles as well, e.g. the interaction between a point particle and a +finite-size particle or between two point particles. If necessary, +"pair_style hybrid"_pair_hybrid.html can be used to insure the correct +interactions are computed for the appropriate style of interactions. +Likewise, using groups to partition particles (ellipsoids versus +spheres versus point particles) will allow you to use the appropriate +time integrators and temperature computations for each class of +particles. See the doc pages for various commands for details. + +Also note that for "2d simulations"_dimension.html, atom styles sphere +and ellipsoid still use 3d particles, rather than as circular disks or +ellipses. This means they have the same moment of inertia as the 3d +object. When temperature is computed, the correct degrees of freedom +are used for rotation in a 2d versus 3d system. + +Pair potentials :h4 + +When a system with finite-size particles is defined, the particles +will only rotate and experience torque if the force field computes +such interactions. These are the various "pair +styles"_pair_style.html that generate torque: + +"pair_style gran/history"_pair_gran.html +"pair_style gran/hertzian"_pair_gran.html +"pair_style gran/no_history"_pair_gran.html +"pair_style dipole/cut"_pair_dipole.html +"pair_style gayberne"_pair_gayberne.html +"pair_style resquared"_pair_resquared.html +"pair_style brownian"_pair_brownian.html +"pair_style lubricate"_pair_lubricate.html +"pair_style line/lj"_pair_line_lj.html +"pair_style tri/lj"_pair_tri_lj.html +"pair_style body/nparticle"_pair_body_nparticle.html :ul + +The granular pair styles are used with spherical particles. The +dipole pair style is used with the dipole atom style, which could be +applied to spherical or ellipsoidal particles. The GayBerne and +REsquared potentials require ellipsoidal particles, though they will +also work if the 3 shape parameters are the same (a sphere). The +Brownian and lubrication potentials are used with spherical particles. +The line, tri, and body potentials are used with line segment, +triangular, and body particles respectively. + +Time integration :h4 + +There are several fixes that perform time integration on finite-size +spherical particles, meaning the integrators update the rotational +orientation and angular velocity or angular momentum of the particles: + +"fix nve/sphere"_fix_nve_sphere.html +"fix nvt/sphere"_fix_nvt_sphere.html +"fix npt/sphere"_fix_npt_sphere.html :ul + +Likewise, there are 3 fixes that perform time integration on +ellipsoidal particles: + +"fix nve/asphere"_fix_nve_asphere.html +"fix nvt/asphere"_fix_nvt_asphere.html +"fix npt/asphere"_fix_npt_asphere.html :ul + +The advantage of these fixes is that those which thermostat the +particles include the rotational degrees of freedom in the temperature +calculation and thermostatting. The "fix langevin"_fix_langevin +command can also be used with its {omgea} or {angmom} options to +thermostat the rotational degrees of freedom for spherical or +ellipsoidal particles. Other thermostatting fixes only operate on the +translational kinetic energy of finite-size particles. + +These fixes perform constant NVE time integration on line segment, +triangular, and body particles: + +"fix nve/line"_fix_nve_line.html +"fix nve/tri"_fix_nve_tri.html +"fix nve/body"_fix_nve_body.html :ul + +Note that for mixtures of point and finite-size particles, these +integration fixes can only be used with "groups"_group.html which +contain finite-size particles. + +Computes, thermodynamics, and dump output :h4 + +There are several computes that calculate the temperature or +rotational energy of spherical or ellipsoidal particles: + +"compute temp/sphere"_compute_temp_sphere.html +"compute temp/asphere"_compute_temp_asphere.html +"compute erotate/sphere"_compute_erotate_sphere.html +"compute erotate/asphere"_compute_erotate_asphere.html :ul + +These include rotational degrees of freedom in their computation. If +you wish the thermodynamic output of temperature or pressure to use +one of these computes (e.g. for a system entirely composed of +finite-size particles), then the compute can be defined and the +"thermo_modify"_thermo_modify.html command used. Note that by default +thermodynamic quantities will be calculated with a temperature that +only includes translational degrees of freedom. See the +"thermo_style"_thermo_style.html command for details. + +These commands can be used to output various attributes of finite-size +particles: + +"dump custom"_dump.html +"compute property/atom"_compute_property_atom.html +"dump local"_dump.html +"compute body/local"_compute_body_local.html :ul + +Attributes include the dipole moment, the angular velocity, the +angular momentum, the quaternion, the torque, the end-point and +corner-point coordinates (for line and tri particles), and +sub-particle attributes of body particles. + +Rigid bodies composed of finite-size particles :h4 + +The "fix rigid"_fix_rigid.html command treats a collection of +particles as a rigid body, computes its inertia tensor, sums the total +force and torque on the rigid body each timestep due to forces on its +constituent particles, and integrates the motion of the rigid body. + +If any of the constituent particles of a rigid body are finite-size +particles (spheres or ellipsoids or line segments or triangles), then +their contribution to the inertia tensor of the body is different than +if they were point particles. This means the rotational dynamics of +the rigid body will be different. Thus a model of a dimer is +different if the dimer consists of two point masses versus two +spheroids, even if the two particles have the same mass. Finite-size +particles that experience torque due to their interaction with other +particles will also impart that torque to a rigid body they are part +of. + +See the "fix rigid" command for example of complex rigid-body models +it is possible to define in LAMMPS. + +Note that the "fix shake"_fix_shake.html command can also be used to +treat 2, 3, or 4 particles as a rigid body, but it always assumes the +particles are point masses. + +Also note that body particles cannot be modeled with the "fix +rigid"_fix_rigid.html command. Body particles are treated by LAMMPS +as single particles, though they can store internal state, such as a +list of sub-particles. Individual body partices are typically treated +as rigid bodies, and their motion integrated with a command like "fix +nve/body"_fix_nve_body.html. Interactions between pairs of body +particles are computed via a command like "pair_style +body/nparticle"_pair_body_nparticle.html. diff --git a/doc/src/Howto_spins.txt b/doc/src/Howto_spins.txt new file mode 100644 index 0000000000..1b9adb49a5 --- /dev/null +++ b/doc/src/Howto_spins.txt @@ -0,0 +1,59 @@ +"Higher level section"_Howto.html - "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 + +Magnetic spins :h3 + +The magnetic spin simualtions are enabled by the SPIN package, whose +implementation is detailed in "Tranchida"_#Tranchida7. + +The model representents the simulation of atomic magnetic spins coupled +to lattice vibrations. The dynamics of those magnetic spins can be used +to simulate a broad range a phenomena related to magneto-elasticity, or +or to study the influence of defects on the magnetic properties of +materials. + +The magnetic spins are interacting with each others and with the +lattice via pair interactions. Typically, the magnetic exchange +interaction can be defined using the +"pair/spin/exchange"_pair_spin_exchange.html command. This exchange +applies a magnetic torque to a given spin, considering the orientation +of its neighboring spins and their relative distances. +It also applies a force on the atoms as a function of the spin +orientations and their associated inter-atomic distances. + +The command "fix precession/spin"_fix_precession_spin.html allows to +apply a constant magnetic torque on all the spins in the system. This +torque can be an external magnetic field (Zeeman interaction), or an +uniaxial magnetic anisotropy. + +A Langevin thermostat can be applied to those magnetic spins using +"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat +can be coupled to another Langevin thermostat applied to the atoms +using "fix langevin"_fix_langevin.html in order to simulate +thermostated spin-lattice system. + +The magnetic Gilbert damping can also be applied using "fix +langevin/spin"_fix_langevin_spin.html. It allows to either dissipate +the thermal energy of the Langevin thermostat, or to perform a +relaxation of the magnetic configuration toward an equilibrium state. + +All the computed magnetic properties can be outputed by two main +commands. The first one is "compute spin"_compute_spin.html, that +enables to evaluate magnetic averaged quantities, such as the total +magnetization of the system along x, y, or z, the spin temperature, or +the magnetic energy. The second command is "compute +property/atom"_compute_property_atom.html. It enables to output all the +per atom magnetic quantities. Typically, the orientation of a given +magnetic spin, or the magnetic force acting on this spin. + +:line + +:link(Tranchida7) +[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, +arXiv preprint arXiv:1801.10233, (2018). diff --git a/doc/src/Howto_temperature.txt b/doc/src/Howto_temperature.txt new file mode 100644 index 0000000000..7a318250cf --- /dev/null +++ b/doc/src/Howto_temperature.txt @@ -0,0 +1,40 @@ +"Higher level section"_Howto.html - "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 + +Calcalate temperature :h3 + +Temperature is computed as kinetic energy divided by some number of +degrees of freedom (and the Boltzmann constant). Since kinetic energy +is a function of particle velocity, there is often a need to +distinguish between a particle's advection velocity (due to some +aggregate motion of particles) and its thermal velocity. The sum of +the two is the particle's total velocity, but the latter is often what +is wanted to compute a temperature. + +LAMMPS has several options for computing temperatures, any of which can be used in "thermostatting"_Howto_thermostat.html and "barostatting"_Howto_barostat.html. These "compute commands"_compute.html calculate temperature: + +"compute temp"_compute_temp.html +"compute temp/sphere"_compute_temp_sphere.html +"compute temp/asphere"_compute_temp_asphere.html +"compute temp/com"_compute_temp_com.html +"compute temp/deform"_compute_temp_deform.html +"compute temp/partial"_compute_temp_partial.html +"compute temp/profile"_compute_temp_profile.html +"compute temp/ramp"_compute_temp_ramp.html +"compute temp/region"_compute_temp_region.html :ul + +All but the first 3 calculate velocity biases directly (e.g. advection +velocities) that are removed when computing the thermal temperature. +"Compute temp/sphere"_compute_temp_sphere.html and "compute +temp/asphere"_compute_temp_asphere.html compute kinetic energy for +finite-size particles that includes rotational degrees of freedom. +They both allow for velocity biases indirectly, via an optional extra +argument which is another temperature compute that subtracts a velocity bias. +This allows the translational velocity of spherical or aspherical +particles to be adjusted in prescribed ways. diff --git a/doc/src/Howto_thermostat.txt b/doc/src/Howto_thermostat.txt new file mode 100644 index 0000000000..0e2feb1869 --- /dev/null +++ b/doc/src/Howto_thermostat.txt @@ -0,0 +1,89 @@ +"Higher level section"_Howto.html - "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 + +Thermostats :h3 + +Thermostatting means controlling the temperature of particles in an MD +simulation. "Barostatting"_Howto_barostat.html means controlling the +pressure. Since the pressure includes a kinetic component due to +particle velocities, both these operations require calculation of the +temperature. Typically a target temperature (T) and/or pressure (P) +is specified by the user, and the thermostat or barostat attempts to +equilibrate the system to the requested T and/or P. + +Thermostatting in LAMMPS is performed by "fixes"_fix.html, or in one +case by a pair style. Several thermostatting fixes are available: +Nose-Hoover (nvt), Berendsen, CSVR, Langevin, and direct rescaling +(temp/rescale). Dissipative particle dynamics (DPD) thermostatting +can be invoked via the {dpd/tstat} pair style: + +"fix nvt"_fix_nh.html +"fix nvt/sphere"_fix_nvt_sphere.html +"fix nvt/asphere"_fix_nvt_asphere.html +"fix nvt/sllod"_fix_nvt_sllod.html +"fix temp/berendsen"_fix_temp_berendsen.html +"fix temp/csvr"_fix_temp_csvr.html +"fix langevin"_fix_langevin.html +"fix temp/rescale"_fix_temp_rescale.html +"pair_style dpd/tstat"_pair_dpd.html :ul + +"Fix nvt"_fix_nh.html only thermostats the translational velocity of +particles. "Fix nvt/sllod"_fix_nvt_sllod.html also does this, except +that it subtracts out a velocity bias due to a deforming box and +integrates the SLLOD equations of motion. See the "Howto +nemd"_Howto_nemd.html doc page for further details. "Fix +nvt/sphere"_fix_nvt_sphere.html and "fix +nvt/asphere"_fix_nvt_asphere.html thermostat not only translation +velocities but also rotational velocities for spherical and aspherical +particles. + +DPD thermostatting alters pairwise interactions in a manner analogous +to the per-particle thermostatting of "fix +langevin"_fix_langevin.html. + +Any of the thermostatting fixes can use "temperature +computes"_Howto_thermostat.html that remove bias which has two +effects. First, the current calculated temperature, which is compared +to the requested target temperature, is calculated with the velocity +bias removed. Second, the thermostat adjusts only the thermal +temperature component of the particle's velocities, which are the +velocities with the bias removed. The removed bias is then added back +to the adjusted velocities. See the doc pages for the individual +fixes and for the "fix_modify"_fix_modify.html command for +instructions on how to assign a temperature compute to a +thermostatting fix. For example, you can apply a thermostat to only +the x and z components of velocity by using it in conjunction with +"compute temp/partial"_compute_temp_partial.html. Of you could +thermostat only the thermal temperature of a streaming flow of +particles without affecting the streaming velocity, by using "compute +temp/profile"_compute_temp_profile.html. + +NOTE: Only the nvt fixes perform time integration, meaning they update +the velocities and positions of particles due to forces and velocities +respectively. The other thermostat fixes only adjust velocities; they +do NOT perform time integration updates. Thus they should be used in +conjunction with a constant NVE integration fix such as these: + +"fix nve"_fix_nve.html +"fix nve/sphere"_fix_nve_sphere.html +"fix nve/asphere"_fix_nve_asphere.html :ul + +Thermodynamic output, which can be setup via the +"thermo_style"_thermo_style.html command, often includes temperature +values. As explained on the doc page for the +"thermo_style"_thermo_style.html command, the default temperature is +setup by the thermo command itself. It is NOT the temperature +associated with any thermostatting fix you have defined or with any +compute you have defined that calculates a temperature. The doc pages +for the thermostatting fixes explain the ID of the temperature compute +they create. Thus if you want to view these temperatures, you need to +specify them explicitly via the "thermo_style +custom"_thermo_style.html command. Or you can use the +"thermo_modify"_thermo_modify.html command to re-define what +temperature compute is used for default thermodynamic output. diff --git a/doc/src/Howto_tip3p.txt b/doc/src/Howto_tip3p.txt new file mode 100644 index 0000000000..942b42aea1 --- /dev/null +++ b/doc/src/Howto_tip3p.txt @@ -0,0 +1,69 @@ +"Higher level section"_Howto.html - "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 + +TIP3P water model :h3 + +The TIP3P water model as implemented in CHARMM +"(MacKerell)"_#howto-MacKerell specifies a 3-site rigid water molecule with +charges and Lennard-Jones parameters assigned to each of the 3 atoms. +In LAMMPS the "fix shake"_fix_shake.html command can be used to hold +the two O-H bonds and the H-O-H angle rigid. A bond style of +{harmonic} and an angle style of {harmonic} or {charmm} should also be +used. + +These are the additional parameters (in real units) to set for O and H +atoms and the water molecule to run a rigid TIP3P-CHARMM model with a +cutoff. The K values can be used if a flexible TIP3P model (without +fix shake) is desired. If the LJ epsilon and sigma for HH and OH are +set to 0.0, it corresponds to the original 1983 TIP3P model +"(Jorgensen)"_#Jorgensen1. + +O mass = 15.9994 +H mass = 1.008 +O charge = -0.834 +H charge = 0.417 +LJ epsilon of OO = 0.1521 +LJ sigma of OO = 3.1507 +LJ epsilon of HH = 0.0460 +LJ sigma of HH = 0.4000 +LJ epsilon of OH = 0.0836 +LJ sigma of OH = 1.7753 +K of OH bond = 450 +r0 of OH bond = 0.9572 +K of HOH angle = 55 +theta of HOH angle = 104.52 :all(b),p + +These are the parameters to use for TIP3P with a long-range Coulombic +solver (e.g. Ewald or PPPM in LAMMPS), see "(Price)"_#Price1 for +details: + +O mass = 15.9994 +H mass = 1.008 +O charge = -0.830 +H charge = 0.415 +LJ epsilon of OO = 0.102 +LJ sigma of OO = 3.188 +LJ epsilon, sigma of OH, HH = 0.0 +K of OH bond = 450 +r0 of OH bond = 0.9572 +K of HOH angle = 55 +theta of HOH angle = 104.52 :all(b),p + +Wikipedia also has a nice article on "water +models"_http://en.wikipedia.org/wiki/Water_model. + +:line + +:link(Jorgensen1) +[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem +Phys, 79, 926 (1983). + +:link(Price1) +[(Price)] Price and Brooks, J Chem Phys, 121, 10096 (2004). + diff --git a/doc/src/Howto_tip4p.txt b/doc/src/Howto_tip4p.txt new file mode 100644 index 0000000000..f9e548e268 --- /dev/null +++ b/doc/src/Howto_tip4p.txt @@ -0,0 +1,112 @@ +"Higher level section"_Howto.html - "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 + +TIP4P water model :h3 + +The four-point TIP4P rigid water model extends the traditional +three-point TIP3P model by adding an additional site, usually +massless, where the charge associated with the oxygen atom is placed. +This site M is located at a fixed distance away from the oxygen along +the bisector of the HOH bond angle. A bond style of {harmonic} and an +angle style of {harmonic} or {charmm} should also be used. + +A TIP4P model is run with LAMMPS using either this command +for a cutoff model: + +"pair_style lj/cut/tip4p/cut"_pair_lj.html + +or these two commands for a long-range model: + +"pair_style lj/cut/tip4p/long"_pair_lj.html +"kspace_style pppm/tip4p"_kspace_style.html :ul + +For both models, the bond lengths and bond angles should be held fixed +using the "fix shake"_fix_shake.html command. + +These are the additional parameters (in real units) to set for O and H +atoms and the water molecule to run a rigid TIP4P model with a cutoff +"(Jorgensen)"_#Jorgensen1. Note that the OM distance is specified in +the "pair_style"_pair_style.html command, not as part of the pair +coefficients. + +O mass = 15.9994 +H mass = 1.008 +O charge = -1.040 +H charge = 0.520 +r0 of OH bond = 0.9572 +theta of HOH angle = 104.52 +OM distance = 0.15 +LJ epsilon of O-O = 0.1550 +LJ sigma of O-O = 3.1536 +LJ epsilon, sigma of OH, HH = 0.0 +Coulombic cutoff = 8.5 :all(b),p + +For the TIP4/Ice model (J Chem Phys, 122, 234511 (2005); +http://dx.doi.org/10.1063/1.1931662) these values can be used: + +O mass = 15.9994 +H mass = 1.008 +O charge = -1.1794 +H charge = 0.5897 +r0 of OH bond = 0.9572 +theta of HOH angle = 104.52 +OM distance = 0.1577 +LJ epsilon of O-O = 0.21084 +LJ sigma of O-O = 3.1668 +LJ epsilon, sigma of OH, HH = 0.0 +Coulombic cutoff = 8.5 :all(b),p + +For the TIP4P/2005 model (J Chem Phys, 123, 234505 (2005); +http://dx.doi.org/10.1063/1.2121687), these values can be used: + +O mass = 15.9994 +H mass = 1.008 +O charge = -1.1128 +H charge = 0.5564 +r0 of OH bond = 0.9572 +theta of HOH angle = 104.52 +OM distance = 0.1546 +LJ epsilon of O-O = 0.1852 +LJ sigma of O-O = 3.1589 +LJ epsilon, sigma of OH, HH = 0.0 +Coulombic cutoff = 8.5 :all(b),p + +These are the parameters to use for TIP4P with a long-range Coulombic +solver (e.g. Ewald or PPPM in LAMMPS): + +O mass = 15.9994 +H mass = 1.008 +O charge = -1.0484 +H charge = 0.5242 +r0 of OH bond = 0.9572 +theta of HOH angle = 104.52 +OM distance = 0.1250 +LJ epsilon of O-O = 0.16275 +LJ sigma of O-O = 3.16435 +LJ epsilon, sigma of OH, HH = 0.0 :all(b),p + +Note that the when using the TIP4P pair style, the neighbor list +cutoff for Coulomb interactions is effectively extended by a distance +2 * (OM distance), to account for the offset distance of the +fictitious charges on O atoms in water molecules. Thus it is +typically best in an efficiency sense to use a LJ cutoff >= Coulomb +cutoff + 2*(OM distance), to shrink the size of the neighbor list. +This leads to slightly larger cost for the long-range calculation, so +you can test the trade-off for your model. The OM distance and the LJ +and Coulombic cutoffs are set in the "pair_style +lj/cut/tip4p/long"_pair_lj.html command. + +Wikipedia also has a nice article on "water +models"_http://en.wikipedia.org/wiki/Water_model. + +:line + +:link(Jorgensen1) +[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem +Phys, 79, 926 (1983). diff --git a/doc/src/Howto_triclinic.txt b/doc/src/Howto_triclinic.txt new file mode 100644 index 0000000000..4b299e5ae1 --- /dev/null +++ b/doc/src/Howto_triclinic.txt @@ -0,0 +1,213 @@ +"Higher level section"_Howto.html - "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) + +Triclinic (non-orthogonal) simulation boxes :h3 + +By default, LAMMPS uses an orthogonal simulation box to encompass the +particles. The "boundary"_boundary.html command sets the boundary +conditions of the box (periodic, non-periodic, etc). The orthogonal +box has its "origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors +starting from the origin given by [a] = (xhi-xlo,0,0); [b] = +(0,yhi-ylo,0); [c] = (0,0,zhi-zlo). The 6 parameters +(xlo,xhi,ylo,yhi,zlo,zhi) are defined at the time the simulation box +is created, e.g. by the "create_box"_create_box.html or +"read_data"_read_data.html or "read_restart"_read_restart.html +commands. Additionally, LAMMPS defines box size parameters lx,ly,lz +where lx = xhi-xlo, and similarly in the y and z dimensions. The 6 +parameters, as well as lx,ly,lz, can be output via the "thermo_style +custom"_thermo_style.html command. + +LAMMPS also allows simulations to be performed in triclinic +(non-orthogonal) simulation boxes shaped as a parallelepiped with +triclinic symmetry. The parallelepiped has its "origin" at +(xlo,ylo,zlo) and is defined by 3 edge vectors starting from the +origin given by [a] = (xhi-xlo,0,0); [b] = (xy,yhi-ylo,0); [c] = +(xz,yz,zhi-zlo). {xy,xz,yz} can be 0.0 or positive or negative values +and are called "tilt factors" because they are the amount of +displacement applied to faces of an originally orthogonal box to +transform it into the parallelepiped. In LAMMPS the triclinic +simulation box edge vectors [a], [b], and [c] cannot be arbitrary +vectors. As indicated, [a] must lie on the positive x axis. [b] must +lie in the xy plane, with strictly positive y component. [c] may have +any orientation with strictly positive z component. The requirement +that [a], [b], and [c] have strictly positive x, y, and z components, +respectively, ensures that [a], [b], and [c] form a complete +right-handed basis. These restrictions impose no loss of generality, +since it is possible to rotate/invert any set of 3 crystal basis +vectors so that they conform to the restrictions. + +For example, assume that the 3 vectors [A],[B],[C] are the edge +vectors of a general parallelepiped, where there is no restriction on +[A],[B],[C] other than they form a complete right-handed basis i.e. +[A] x [B] . [C] > 0. The equivalent LAMMPS [a],[b],[c] are a linear +rotation of [A], [B], and [C] and can be computed as follows: + +:c,image(Eqs/transform.jpg) + +where A = | [A] | indicates the scalar length of [A]. The hat symbol (^) +indicates the corresponding unit vector. {beta} and {gamma} are angles +between the vectors described below. Note that by construction, +[a], [b], and [c] have strictly positive x, y, and z components, respectively. +If it should happen that +[A], [B], and [C] form a left-handed basis, then the above equations +are not valid for [c]. In this case, it is necessary +to first apply an inversion. This can be achieved +by interchanging two basis vectors or by changing the sign of one of them. + +For consistency, the same rotation/inversion applied to the basis vectors +must also be applied to atom positions, velocities, +and any other vector quantities. +This can be conveniently achieved by first converting to +fractional coordinates in the +old basis and then converting to distance coordinates in the new basis. +The transformation is given by the following equation: + +:c,image(Eqs/rotate.jpg) + +where {V} is the volume of the box, [X] is the original vector quantity and +[x] is the vector in the LAMMPS basis. + +There is no requirement that a triclinic box be periodic in any +dimension, though it typically should be in at least the 2nd dimension +of the tilt (y in xy) if you want to enforce a shift in periodic +boundary conditions across that boundary. Some commands that work +with triclinic boxes, e.g. the "fix deform"_fix_deform.html and "fix +npt"_fix_nh.html commands, require periodicity or non-shrink-wrap +boundary conditions in specific dimensions. See the command doc pages +for details. + +The 9 parameters (xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) are defined at the +time the simulation box is created. This happens in one of 3 ways. +If the "create_box"_create_box.html command is used with a region of +style {prism}, then a triclinic box is setup. See the +"region"_region.html command for details. If the +"read_data"_read_data.html command is used to define the simulation +box, and the header of the data file contains a line with the "xy xz +yz" keyword, then a triclinic box is setup. See the +"read_data"_read_data.html command for details. Finally, if the +"read_restart"_read_restart.html command reads a restart file which +was written from a simulation using a triclinic box, then a triclinic +box will be setup for the restarted simulation. + +Note that you can define a triclinic box with all 3 tilt factors = +0.0, so that it is initially orthogonal. This is necessary if the box +will become non-orthogonal, e.g. due to the "fix npt"_fix_nh.html or +"fix deform"_fix_deform.html commands. Alternatively, you can use the +"change_box"_change_box.html command to convert a simulation box from +orthogonal to triclinic and vice versa. + +As with orthogonal boxes, LAMMPS defines triclinic box size parameters +lx,ly,lz where lx = xhi-xlo, and similarly in the y and z dimensions. +The 9 parameters, as well as lx,ly,lz, can be output via the +"thermo_style custom"_thermo_style.html command. + +To avoid extremely tilted boxes (which would be computationally +inefficient), LAMMPS normally requires that no tilt factor can skew +the box more than half the distance of the parallel box length, which +is the 1st dimension in the tilt factor (x for xz). This is required +both when the simulation box is created, e.g. via the +"create_box"_create_box.html or "read_data"_read_data.html commands, +as well as when the box shape changes dynamically during a simulation, +e.g. via the "fix deform"_fix_deform.html or "fix npt"_fix_nh.html +commands. + +For example, if xlo = 2 and xhi = 12, then the x box length is 10 and +the xy tilt factor must be between -5 and 5. Similarly, both xz and +yz must be between -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is +not a limitation, since if the maximum tilt factor is 5 (as in this +example), then configurations with tilt = ..., -15, -5, 5, 15, 25, +... are geometrically all equivalent. If the box tilt exceeds this +limit during a dynamics run (e.g. via the "fix deform"_fix_deform.html +command), then the box is "flipped" to an equivalent shape with a tilt +factor within the bounds, so the run can continue. See the "fix +deform"_fix_deform.html doc page for further details. + +One exception to this rule is if the 1st dimension in the tilt +factor (x for xy) is non-periodic. In that case, the limits on the +tilt factor are not enforced, since flipping the box in that dimension +does not change the atom positions due to non-periodicity. In this +mode, if you tilt the system to extreme angles, the simulation will +simply become inefficient, due to the highly skewed simulation box. + +The limitation on not creating a simulation box with a tilt factor +skewing the box more than half the distance of the parallel box length +can be overridden via the "box"_box.html command. Setting the {tilt} +keyword to {large} allows any tilt factors to be specified. + +Box flips that may occur using the "fix deform"_fix_deform.html or +"fix npt"_fix_nh.html commands can be turned off using the {flip no} +option with either of the commands. + +Note that if a simulation box has a large tilt factor, LAMMPS will run +less efficiently, due to the large volume of communication needed to +acquire ghost atoms around a processor's irregular-shaped sub-domain. +For extreme values of tilt, LAMMPS may also lose atoms and generate an +error. + +Triclinic crystal structures are often defined using three lattice +constants {a}, {b}, and {c}, and three angles {alpha}, {beta} and +{gamma}. Note that in this nomenclature, the a, b, and c lattice +constants are the scalar lengths of the edge vectors [a], [b], and [c] +defined above. The relationship between these 6 quantities +(a,b,c,alpha,beta,gamma) and the LAMMPS box sizes (lx,ly,lz) = +(xhi-xlo,yhi-ylo,zhi-zlo) and tilt factors (xy,xz,yz) is as follows: + +:c,image(Eqs/box.jpg) + +The inverse relationship can be written as follows: + +:c,image(Eqs/box_inverse.jpg) + +The values of {a}, {b}, {c} , {alpha}, {beta} , and {gamma} can be printed +out or accessed by computes using the +"thermo_style custom"_thermo_style.html keywords +{cella}, {cellb}, {cellc}, {cellalpha}, {cellbeta}, {cellgamma}, +respectively. + +As discussed on the "dump"_dump.html command doc page, when the BOX +BOUNDS for a snapshot is written to a dump file for a triclinic box, +an orthogonal bounding box which encloses the triclinic simulation box +is output, along with the 3 tilt factors (xy, xz, yz) of the triclinic +box, formatted as follows: + +ITEM: BOX BOUNDS xy xz yz +xlo_bound xhi_bound xy +ylo_bound yhi_bound xz +zlo_bound zhi_bound yz :pre + +This bounding box is convenient for many visualization programs and is +calculated from the 9 triclinic box parameters +(xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) as follows: + +xlo_bound = xlo + MIN(0.0,xy,xz,xy+xz) +xhi_bound = xhi + MAX(0.0,xy,xz,xy+xz) +ylo_bound = ylo + MIN(0.0,yz) +yhi_bound = yhi + MAX(0.0,yz) +zlo_bound = zlo +zhi_bound = zhi :pre + +These formulas can be inverted if you need to convert the bounding box +back into the triclinic box parameters, e.g. xlo = xlo_bound - +MIN(0.0,xy,xz,xy+xz). + +One use of triclinic simulation boxes is to model solid-state crystals +with triclinic symmetry. The "lattice"_lattice.html command can be +used with non-orthogonal basis vectors to define a lattice that will +tile a triclinic simulation box via the +"create_atoms"_create_atoms.html command. + +A second use is to run Parinello-Rahman dynamics via the "fix +npt"_fix_nh.html command, which will adjust the xy, xz, yz tilt +factors to compensate for off-diagonal components of the pressure +tensor. The analog for an "energy minimization"_minimize.html is +the "fix box/relax"_fix_box_relax.html command. + +A third use is to shear a bulk solid to study the response of the +material. The "fix deform"_fix_deform.html command can be used for +this purpose. It allows dynamic control of the xy, xz, yz tilt +factors as a simulation runs. This is discussed in the next section +on non-equilibrium MD (NEMD) simulations. diff --git a/doc/src/Howto_viscosity.txt b/doc/src/Howto_viscosity.txt new file mode 100644 index 0000000000..8bcab6dd24 --- /dev/null +++ b/doc/src/Howto_viscosity.txt @@ -0,0 +1,133 @@ +"Higher level section"_Howto.html - "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 + +Calculate viscosity :h3 + +The shear viscosity eta of a fluid can be measured in at least 5 ways +using various options in LAMMPS. See the examples/VISCOSITY directory +for scripts that implement the 5 methods discussed here for a simple +Lennard-Jones fluid model. Also, see the "Howto +kappa"_Howto_kappa.html doc page for an analogous discussion for +thermal conductivity. + +Eta is a measure of the propensity of a fluid to transmit momentum in +a direction perpendicular to the direction of velocity or momentum +flow. Alternatively it is the resistance the fluid has to being +sheared. It is given by + +J = -eta grad(Vstream) + +where J is the momentum flux in units of momentum per area per time. +and grad(Vstream) is the spatial gradient of the velocity of the fluid +moving in another direction, normal to the area through which the +momentum flows. Viscosity thus has units of pressure-time. + +The first method is to perform a non-equilibrium MD (NEMD) simulation +by shearing the simulation box via the "fix deform"_fix_deform.html +command, and using the "fix nvt/sllod"_fix_nvt_sllod.html command to +thermostat the fluid via the SLLOD equations of motion. +Alternatively, as a second method, one or more moving walls can be +used to shear the fluid in between them, again with some kind of +thermostat that modifies only the thermal (non-shearing) components of +velocity to prevent the fluid from heating up. + +In both cases, the velocity profile setup in the fluid by this +procedure can be monitored by the "fix ave/chunk"_fix_ave_chunk.html +command, which determines grad(Vstream) in the equation above. +E.g. the derivative in the y-direction of the Vx component of fluid +motion or grad(Vstream) = dVx/dy. The Pxy off-diagonal component of +the pressure or stress tensor, as calculated by the "compute +pressure"_compute_pressure.html command, can also be monitored, which +is the J term in the equation above. See the "Howto +nemd"_Howto_nemd.html doc page for details on NEMD simulations. + +The third method is to perform a reverse non-equilibrium MD simulation +using the "fix viscosity"_fix_viscosity.html command which implements +the rNEMD algorithm of Muller-Plathe. Momentum in one dimension is +swapped between atoms in two different layers of the simulation box in +a different dimension. This induces a velocity gradient which can be +monitored with the "fix ave/chunk"_fix_ave_chunk.html command. +The fix tallies the cumulative momentum transfer that it performs. +See the "fix viscosity"_fix_viscosity.html command for details. + +The fourth method is based on the Green-Kubo (GK) formula which +relates the ensemble average of the auto-correlation of the +stress/pressure tensor to eta. This can be done in a fully +equilibrated simulation which is in contrast to the two preceding +non-equilibrium methods, where momentum flows continuously through the +simulation box. + +Here is an example input script that calculates the viscosity of +liquid Ar via the GK formalism: + +# Sample LAMMPS input script for viscosity of liquid Ar :pre + +units real +variable T equal 86.4956 +variable V equal vol +variable dt equal 4.0 +variable p equal 400 # correlation length +variable s equal 5 # sample interval +variable d equal $p*$s # dump interval :pre + +# convert from LAMMPS real units to SI :pre + +variable kB equal 1.3806504e-23 # \[J/K/] Boltzmann +variable atm2Pa equal 101325.0 +variable A2m equal 1.0e-10 +variable fs2s equal 1.0e-15 +variable convert equal $\{atm2Pa\}*$\{atm2Pa\}*$\{fs2s\}*$\{A2m\}*$\{A2m\}*$\{A2m\} :pre + +# setup problem :pre + +dimension 3 +boundary p p p +lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1 +region box block 0 4 0 4 0 4 +create_box 1 box +create_atoms 1 box +mass 1 39.948 +pair_style lj/cut 13.0 +pair_coeff * * 0.2381 3.405 +timestep $\{dt\} +thermo $d :pre + +# equilibration and thermalization :pre + +velocity all create $T 102486 mom yes rot yes dist gaussian +fix NVT all nvt temp $T $T 10 drag 0.2 +run 8000 :pre + +# viscosity calculation, switch to NVE if desired :pre + +#unfix NVT +#fix NVE all nve :pre + +reset_timestep 0 +variable pxy equal pxy +variable pxz equal pxz +variable pyz equal pyz +fix SS all ave/correlate $s $p $d & + v_pxy v_pxz v_pyz type auto file S0St.dat ave running +variable scale equal $\{convert\}/($\{kB\}*$T)*$V*$s*$\{dt\} +variable v11 equal trap(f_SS\[3\])*$\{scale\} +variable v22 equal trap(f_SS\[4\])*$\{scale\} +variable v33 equal trap(f_SS\[5\])*$\{scale\} +thermo_style custom step temp press v_pxy v_pxz v_pyz v_v11 v_v22 v_v33 +run 100000 +variable v equal (v_v11+v_v22+v_v33)/3.0 +variable ndens equal count(all)/vol +print "average viscosity: $v \[Pa.s\] @ $T K, $\{ndens\} /A^3" :pre + +The fifth method is related to the above Green-Kubo method, +but uses the Einstein formulation, analogous to the Einstein +mean-square-displacement formulation for self-diffusivity. The +time-integrated momentum fluxes play the role of Cartesian +coordinates, whose mean-square displacement increases linearly +with time at sufficiently long times. diff --git a/doc/src/Howto_viz.txt b/doc/src/Howto_viz.txt new file mode 100644 index 0000000000..00c329c50b --- /dev/null +++ b/doc/src/Howto_viz.txt @@ -0,0 +1,40 @@ +"Higher level section"_Howto.html - "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 + +Visualize LAMMPS snapshots :h3 + +LAMMPS itself does not do visualization, but snapshots from LAMMPS +simulations can be visualized (and analyzed) in a variety of ways. + +Mention dump image and dump movie. + +LAMMPS snapshots are created by the "dump"_dump.html command which can +create files in several formats. The native LAMMPS dump format is a +text file (see "dump atom" or "dump custom") which can be visualized +by several popular visualization tools. The "dump +image"_dump_image.html and "dump movie"_dump_image.html styles can +output internally rendered images and convert a sequence of them to a +movie during the MD run. Several programs included with LAMMPS as +auxiliary tools can convert between LAMMPS format files and other +formats. See the "Tools"_Tools.html doc page for details. + +A Python-based toolkit distributed by our group can read native LAMMPS +dump files, including custom dump files with additional columns of +user-specified atom information, and convert them to various formats +or pipe them into visualization software directly. See the "Pizza.py +WWW site"_pizza for details. Specifically, Pizza.py can convert +LAMMPS dump files into PDB, XYZ, "Ensight"_ensight, and VTK formats. +Pizza.py can pipe LAMMPS dump files directly into the Raster3d and +RasMol visualization programs. Pizza.py has tools that do interactive +3d OpenGL visualization and one that creates SVG images of dump file +snapshots. + +:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) +:link(ensight,http://www.ensight.com) +:link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A) diff --git a/doc/src/Howto_walls.txt b/doc/src/Howto_walls.txt new file mode 100644 index 0000000000..7522118582 --- /dev/null +++ b/doc/src/Howto_walls.txt @@ -0,0 +1,80 @@ +"Higher level section"_Howto.html - "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 + +Walls :h3 + +Walls in an MD simulation are typically used to bound particle motion, +i.e. to serve as a boundary condition. + +Walls in LAMMPS can be of rough (made of particles) or idealized +surfaces. Ideal walls can be smooth, generating forces only in the +normal direction, or frictional, generating forces also in the +tangential direction. + +Rough walls, built of particles, can be created in various ways. The +particles themselves can be generated like any other particle, via the +"lattice"_lattice.html and "create_atoms"_create_atoms.html commands, +or read in via the "read_data"_read_data.html command. + +Their motion can be constrained by many different commands, so that +they do not move at all, move together as a group at constant velocity +or in response to a net force acting on them, move in a prescribed +fashion (e.g. rotate around a point), etc. Note that if a time +integration fix like "fix nve"_fix_nve.html or "fix nvt"_fix_nh.html +is not used with the group that contains wall particles, their +positions and velocities will not be updated. + +"fix aveforce"_fix_aveforce.html - set force on particles to average value, so they move together +"fix setforce"_fix_setforce.html - set force on particles to a value, e.g. 0.0 +"fix freeze"_fix_freeze.html - freeze particles for use as granular walls +"fix nve/noforce"_fix_nve_noforce.html - advect particles by their velocity, but without force +"fix move"_fix_move.html - prescribe motion of particles by a linear velocity, oscillation, rotation, variable :ul + +The "fix move"_fix_move.html command offers the most generality, since +the motion of individual particles can be specified with +"variable"_variable.html formula which depends on time and/or the +particle position. + +For rough walls, it may be useful to turn off pairwise interactions +between wall particles via the "neigh_modify +exclude"_neigh_modify.html command. + +Rough walls can also be created by specifying frozen particles that do +not move and do not interact with mobile particles, and then tethering +other particles to the fixed particles, via a "bond"_bond_style.html. +The bonded particles do interact with other mobile particles. + +Idealized walls can be specified via several fix commands. "Fix +wall/gran"_fix_wall_gran.html creates frictional walls for use with +granular particles; all the other commands create smooth walls. + +"fix wall/reflect"_fix_wall_reflect.html - reflective flat walls +"fix wall/lj93"_fix_wall.html - flat walls, with Lennard-Jones 9/3 potential +"fix wall/lj126"_fix_wall.html - flat walls, with Lennard-Jones 12/6 potential +"fix wall/colloid"_fix_wall.html - flat walls, with "pair_style colloid"_pair_colloid.html potential +"fix wall/harmonic"_fix_wall.html - flat walls, with repulsive harmonic spring potential +"fix wall/region"_fix_wall_region.html - use region surface as wall +"fix wall/gran"_fix_wall_gran.html - flat or curved walls with "pair_style granular"_pair_gran.html potential :ul + +The {lj93}, {lj126}, {colloid}, and {harmonic} styles all allow the +flat walls to move with a constant velocity, or oscillate in time. +The "fix wall/region"_fix_wall_region.html command offers the most +generality, since the region surface is treated as a wall, and the +geometry of the region can be a simple primitive volume (e.g. a +sphere, or cube, or plane), or a complex volume made from the union +and intersection of primitive volumes. "Regions"_region.html can also +specify a volume "interior" or "exterior" to the specified primitive +shape or {union} or {intersection}. "Regions"_region.html can also be +"dynamic" meaning they move with constant velocity, oscillate, or +rotate. + +The only frictional idealized walls currently in LAMMPS are flat or +curved surfaces specified by the "fix wall/gran"_fix_wall_gran.html +command. At some point we plan to allow regoin surfaces to be used as +frictional walls, as well as triangulated surfaces. diff --git a/doc/src/Intro.txt b/doc/src/Intro.txt new file mode 100644 index 0000000000..e3eaa40437 --- /dev/null +++ b/doc/src/Intro.txt @@ -0,0 +1,37 @@ +"Previous Section"_Manual.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Install.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands.html#comm) + +:line + +Introduction :h2 + +These pages provide a brief introduction to LAMMPS. + + + + + +"Overview of LAMMPS"_Intro_overview.html +"LAMMPS features"_Intro_features.html +"LAMMPS non-features"_Intro_nonfeatures.html +"LAMMPS open-source license"_Intro_license.html +"LAMMPS authors"_Intro_authors.html +"Additional website links"_Intro_website.html :all(b) + + diff --git a/doc/src/Intro_authors.txt b/doc/src/Intro_authors.txt new file mode 100644 index 0000000000..ce418d0ce1 --- /dev/null +++ b/doc/src/Intro_authors.txt @@ -0,0 +1,379 @@ +"Higher level section"_Intro.html - "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 + +LAMMPS authors :h3 + +The primary LAMMPS developers are at Sandia National Labs and Temple +University: + +"Steve Plimpton"_sjp, sjplimp at sandia.gov +Aidan Thompson, athomps at sandia.gov +Stan Moore, stamoor at sandia.gov +Axel Kohlmeyer, akohlmey at gmail.com :ul + +:link(sjp,http://www.cs.sandia.gov/~sjplimp) + +Past developers include Paul Crozier and Mark Stevens, both at Sandia, +and Ray Shan, now at Materials Design. + +:line + +The following folks are responsible for significant contributions to +the code, or other aspects of the LAMMPS development effort. Many of +the packages they have written are somewhat unique to LAMMPS and the +code would not be as general-purpose as it is without their expertise +and efforts. + +Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CG-CMM, USER-OMP, USER-COLVARS, USER-MOLFILE, USER-QMMM packages +Roy Pollock (LLNL), Ewald and PPPM solvers +Mike Brown (ORNL), brownw at ornl.gov, GPU and USER-INTEL packages +Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential +Mike Parks (Sandia), mlparks at sandia.gov, PERI package for Peridynamics +Rudra Mukherjee (JPL), Rudranarayan.M.Mukherjee at jpl.nasa.gov, POEMS package for articulated rigid body motion +Reese Jones (Sandia) and collaborators, rjones at sandia.gov, USER-ATC package for atom/continuum coupling +Ilya Valuev (JIHT), valuev at physik.hu-berlin.de, USER-AWPMD package for wave-packet MD +Christian Trott (U Tech Ilmenau), christian.trott at tu-ilmenau.de, USER-CUDA and KOKKOS packages +Andres Jaramillo-Botero (Caltech), ajaramil at wag.caltech.edu, USER-EFF package for electron force field +Christoph Kloss (JKU), Christoph.Kloss at jku.at, USER-LIGGGHTS package for granular models and granular/fluid coupling +Metin Aktulga (LBL), hmaktulga at lbl.gov, USER-REAXC package for C version of ReaxFF +Georg Gunzenmueller (EMI), georg.ganzenmueller at emi.fhg.de, USER-SMD and USER-SPH packages +Colin Denniston (U Western Ontario), cdennist at uwo.ca, USER-LB package :ul + +:line + +As discussed on the "History +page"_http://lammps.sandia.gov/history.html of the website, LAMMPS +originated as a cooperative project between DOE labs and industrial +partners. Folks involved in the design and testing of the original +version of LAMMPS were the following: + +John Carpenter (Mayo Clinic, formerly at Cray Research) +Terry Stouch (Lexicon Pharmaceuticals, formerly at Bristol Myers Squibb) +Steve Lustig (Dupont) +Jim Belak and Roy Pollock (LLNL) :ul + +:line +:line + +Here is a timeline for when various individuals contributed to a new +feature or command or tool added to LAMMPS: + +Jul18 : DEM polygonal and polyhedron particles : Trung Nguyen (Northwestern U) +Jun18 : SPIN package : Julien Tranchida (Sandia and CEA) +Jun18 : compute entropy/atom : Pablo Piaggi (EPLF, Switzerland) +May18 : fix bond/react : Jake Gissinger (CU Boulder) +Apr18 : USER-BOCS package : Nicholas Dunn and Michael DeLyser (Penn State U) +Mar18: pair coul/shield, kolmogorov/crespi/full, ilp/graphene/hbn : Wengen Ouyang (Tel Aviv U) +Feb18 : pair lj/cut/coul/wolf : Vishal Boddu (U of Erlangen-Nuremberg) +Feb18 : USER-MOFFF package : Hendrik Heenen (Technical U of Munich) and Rochus Schmid (Ruhr-University Bochum) +Feb18 : pair ufm : Rodolfo Paula Leite and Maurice de Koning (Unicamp/Brazil) +Dec17 : fix python/move : Richard Berger (Temple U) +Nov17 : pair extep : Jaap Kroes (Radboud U) +Oct17 : USER-UEF package : David Nicholson (MIT) +Oct17 : fix rhok : Ulf Pederson (Roskilde U) +Oct17 : bond gromos : Axel Kohlmeyer (Temple U) +Oct17 : pair born/coul/wolf/cs and coul/wolf/cs : Vishal Boddu +Sep17 : fix latte : Christian Negre (LANL) +Sep17 : temper_npt : Amulya Pervaje and Cody Addington (NCSU) +Aug17 : USER-MESO package : Zhen Li (Brown University) +Aug17 : compute aggregate/atom & fragment/atom : Axel Kohlmeyer (Temple U) +Jul17 : pair meam/c : Sebastian Hutter (Otto-von-Guericke University) +Jun17 : pair reaxc/omp : Metin Aktulga (MSU) and Axel Kohlmeyer (Temple U) +Jun17 : pair vashishita/gpu : Anders Hafreager (UiO) +Jun17 : kspace pppm/disp/intel and pair lj/long/coul/long/intel : Mike Brown (Intel) and William McDoniel (RWTH Aachen U) +Jun17 : compute cnp/atom : Paulo Branicio (USC) +May17 : fix python and pair python : Richard Berger (Temple U) +May17 : pair edip/multi : Chao Jiang (U Wisconsin) +May17 : pair gw and gw/zbl : German Samolyuk (ORNL) +Mar17 : pair charmm fsw and fsh : Robert Meissner & Lucio Colombi Ciacchi (Bremen U), Robert Latour (Clemson U) +Mar17 : pair momb : Ya Zhou, Kristen Fichthorn, and Tonnam Balankura (PSU) +Mar17 : fix filter/corotate : Lukas Fath (KIT) +Mar17 : pair kolmogorov/crespi/z : Jaap Kroes (Radboud Universiteit) +Feb17 : Kokkos versions of the class2 bond/angle/dihedral/improper : Ray Shan (Materials Design) +Jan17 : USER-CGDNA package : Oliver Henrich (U Edinburgh) +Jan17 : fix mscg : Lauren Abbott (Sandia) +Nov16 : temper/grem and fix grem : David Stelter (BU), Edyta Malolepsza (Broad Institute), Tom Keyes (BU) +Nov16 : pair agni : Axel Kohlmeyer (Temple U) and Venkatesh Botu +Nov16 : pair tersoff/mod.c : Ganga P Purja Pun (George Mason University) +Nov16 : pair born/coul/dsf and pair born/coul/dsf/cs : Ariel Lozano +Nov16 : fix reaxc/species/kk & fix reaxc/bonds/kk : Stan Moore (Sandia) +Oct16 : fix wall/gran/region : Dan Bolintineanu (Sandia) +Sep16 : weight options for balance & fix balance : Axel Kohlmeyer (Temple U) & Iain Bethune (EPCC) +Sep16 : fix cmap : Xiaohu Hu (ORNL), David Hyde-Volpe & Tigran Abramyan & Robert Latour (Clemson U), Chris Lorenz (Kings College, London) +Sep16 : pair vashishta/table : Anders Hafreager (U Oslo) +Sep16 : kspace pppm/kk : Stan Moore (Sandia) +Aug16 : fix flow/gauss : Steve Strong and Joel Eaves (U Colorado) +Aug16 : fix controller : Aidan Thompson (Sandia) +Jul16 : dipole integration by DLM method : Iain Bethune (EPCC) +Jul16 : dihedral spherical : Andrew Jewett +Jun16 : pair reax/c/kk : Ray Shan (Materials Design), Stan Moore (Sandia) +Jun16 : fix orient/bcc : Tegar Wicaksono (UBC) +Jun16 : fix ehex : Peter Wirnsberger (University of Cambridge) +Jun16 : reactive DPD extensions to USER-DPD : James Larentzos (ARL), Timothy Mattox (Engility Corp), John Brennan (ARL), Christopher Stone (Computational Science & Engineering, LLC) +May16 : USER-MANIFOLD package : Stefan Paquay (Eindhoven U of Tech, The Netherlands) +Apr16 : write_coeff : Axel Kohlmeyer (Temple U) +Apr16 : pair morse/soft : Stefan Paquay (Eindhoven U of Tech, The Netherlands) +Apr16 : compute dipole/chunk : Axel Kohlmeyer (Temple U) +Apr16 : bond write : Axel Kohlmeyer (Temple U) +Mar16 : pair morse/smooth/linear : Stefan Paquay (Eindhoven U of Tech, The Netherlands) +Feb16 : pair/bond/angle/dihedral/improper zero : Carsten Svaneborg (SDU) +Feb16 : dump custom/vtk : Richard Berger (JKU) and Daniel Queteschiner (DCS Computing) +Feb16 : fix (nvt/npt/nph)/body and compute temp/body : Trung Nguyen +Feb16 : USER-DPD package : James Larentzos (ARL), Timothy Mattox (Engility Corp), John Brennan (ARL) +Dec15 : fix qeq/fire : Ray Shan (Sandia) +Dec15 : pair lj/mdf, pair lennard/mdf, pair buck/mdf, improper distance : Paolo Raiteri (Curtin University) +Nov15 : compute orientorder/atom : Aidan Thompson (Sandia) and Axel Kohlmeyer (U Temple) +Nov15 : compute hexorder/atom : Aidan Thompson (Sandia) +Oct15 : displace_atoms variable option : Reese Jones (Sandia) +Oct15 : pair mgpt & USER-MGPT package : Tomas Oppelstrup and John Moriarty (LLNL) +Oct15 : pair smtbq & USER-SMTBQ package : Nicolas Salles, Emile Maras, Olivier Politano, and Robert Tetot (LAAS-CNRS) +Oct15 : fix ave/correlate/long command : Jorge Ramirez (UPM) and Alexei Likhtman (U Reading) +Oct15 : pair vashishta command : Aidan Thompson (Sandia) and Yongnan Xiong (HNU) +Aug15 : USER-TALLY package : Axel Kohlmeyer (Temple U) +Aug15 : timer command : Axel Kohlmeyer (Temple U) +Aug15 : USER-H5MD package : Pierre de Buyl (KU Leuven) +Aug15 : COMPRESS package : Axel Kohlmeyer (Temple U) +Aug15 : USER-SMD package : Georg Gunzenmueller (EMI) +Jul15 : new HTML format for "doc pages"_Manual.html with search option : Richard Berger (JKU) +Jul15 : rRESPA with pair hybrid : Sam Genheden (U of Southampton) +Jul15 : pair_modify special : Axel Kohlmeyer (Temple U) +Jul15 : pair polymorphic : Xiaowang Zhou and Reese Jones (Sandia) +Jul15 : USER-DRUDE package : Alain Dequidt and Agilio Padua (U Blaise Pascal Clermont-Ferrand) and Julien Devemy (CNRS) +Jul15 : USER-QTB package : Yuan Shen, Tingting Qi, and Evan Reed (Stanford U) +Jul15 : USER-DIFFRACTION package : Shawn Coleman (ARL) +Mar15 : fix temp/csld : Axel Kohlmeyer (Temple U) +Mar15 : CORESHELL package : Hendrik Heenen (Technical University of Munich) +Feb15 : pair quip for GAP and other potentials : Albert Bartok-Partay (U Cambridge) +Feb15 : pair coul/streitz for Streitz-Mintmire potential : Ray Shan (Sandia) +Feb15 : fix tfmc : Kristof Bal (U of Antwerp) +Feb15 : fix ttm/mod : Sergey Starikov and Vasily Pisarev (JIHT of RAS) +Jan15 : fix atom/swap for MC swaps of atom types/charge : Paul Crozier (Sandia) +Nov14 : fix pimd for path-integral MD : Chris Knight and Yuxing Peng (U Chicago) +Nov14 : fix gle and fix ipi for path-integral MD : Michele Ceriotti (EPFL) +Nov14 : pair style srp : Tim Sirk (ARL) and Pieter in 't Veld (BASF) +Nov14 : fix ave/spatial/sphere : Niall Jackson (Imperial College) +Sep14 : QEQ package and several fix qeq/variant styles : Ray Shan (Sandia) +Sep14 : SNAP package and pair style : Aidan Thompson (Sandia) and collaborators +Aug14 : USER-INTEL package : Mike Brown (Intel) +May14 : KOKKOS pacakge : Christian Trott and Carter Edwards (Sandia) +May14 : USER-FEP pacakge : Agilio Padua (U Blaise Pascal Clermont-Ferrand) +Apr14 : fix rigid/small NVE/NVT/NPH/NPT : Trung Nguyen (ORNL) +Apr14 : fix qmmm for QM/MM coupling : Axel Kohlmeyer (Temple U) +Mar14 : kspace_modify collective for faster FFTs on BG/Q : Paul Coffman (IBM) +Mar14 : fix temp/csvr and fix oneway : Axel Kohlmeyer (Temple U) +Feb14 : pair peri/eps, compute dilatation/atom, compute plasticity/atom : Rezwanur Rahman and John Foster (UTSA) +Jan14 : MPI-IO options for dump and restart files : Paul Coffman (IBM) +Nov13 : USER-LB package for Lattice Boltzmann : Francis Mackay and Colin Denniston (U Western Ontario) +Nov13 : fix ti/rs and ti/spring : Rodrigo Freitas (UC Berkeley) +Nov13 : pair comb3 : Ray Shan (Sandia), Tao Liang and Dundar Yilmaz (U Florida) +Nov13 : write_dump and dump movie : Axel Kohlmeyer (Temple U) +Sep13 : xmgrace tool : Vikas Varshney +Sep13 : pair zbl : Aidan Thompson and Stephen Foiles (Sandia) +Aug13 : pair nm and variants : Julien Devemy (ICCF) +Aug13 : fix wall/lj1043 : Jonathan Lee (Sandia) +Jul13 : pair peri/ves : Rezwan Rahman, JT Foster (U Texas San Antonio) +Jul13 : pair tersoff/mod : Vitaly Dozhdikov (JIHT of RAS) +Jul13 : compute basal/atom : Christopher Barrett,(Mississippi State) +Jul13 : polybond tool : Zachary Kraus (Georgia Tech) +Jul13 : fix gld : Stephen Bond and Andrew Baczewski (Sandia) +Jun13 : pair nb3b/harmonic : Todd Zeitler (Sandia) +Jun13 : kspace_style pppm/stagger : Stan Moore (Sandia) +Jun13 : fix tune/kspace : Paul Crozier (Sandia) +Jun13 : long-range point dipoles : Stan Moore (Sandia) and Pieter in 't Veld (BASF) +May13 : compute msd/nongauss : Rob Hoy +May13 : pair list : Axel Kohlmeyer (Temple U) +May13 : triclinic support for long-range solvers : Stan Moore (Sandia) +Apr13 : dump_modify nfile and fileper : Christopher Knight +Mar13 : fix phonon : Ling-Ti Kong (Shanghai Jiao Tong University) +Mar13 : pair_style lj/cut/tip4p/cut : Pavel Elkind (Gothenburg University) +Feb13 : immediate variables in input script : Daniel Moller (Autonomous University of Barcelona) +Feb13 : fix species : Ray Shan (Sandia) +Jan13 : compute voronoi/atom : Daniel Schwen +Nov12 : pair_style mie/cut : Cassiano Aimoli Petrobras (U Notre Dame) +Oct12 : pair_style meam/sw/spline : Robert Rudd (LLNL) +Oct12 : angle_style fourier and fourier/simple and quartic : Loukas Peristeras (Scienomics) +Oct12 : dihedral_style fourier and nharmonic and quadratic : Loukas Peristeras (Scienomics) +Oct12 : improper_style fourier : Loukas Peristeras (Scienomics) +Oct12 : kspace_style pppm/disp for 1/r^6 : Rolf Isele-Holder (Aachen University) +Oct12 : moltemplate molecular builder tool : Andrew Jewett (UCSB) +Sep12 : pair_style lj/cut/coul/dsf and coul/dsf : Trung Nguyen (ORNL) +Sep12 : multi-level summation long-range solver : Stan Moore, Stephen Bond, and Paul Crozier (Sandia) +Aug12 : fix rigid/npt and fix rigid/nph : Trung Nguyen (ORNL) +Aug12 : Fortran wrapper on lib interface : Karl Hammond (UT, Knoxville) +Aug12 : kspace_modify diff for 2-FFT PPPM : Rolf Isele-Holder (Aachen University), Stan Moore (BYU), Paul Crozier (Sandia) +Jun12 : pair_style bop : Don Ward and Xiaowang Zhou (Sandia) +Jun12 : USER-MOLFILE package : Axel Kohlmeyer (U Temple) +Jun12 : USER-COLVARS package : Axel Kohlmeyer (U Temple) +May12 : read_dump : Tim Sirk (ARL) +May12 : improper_style cossq and ring : Georgios Vogiatzis (CoMSE, NTU Athens) +May12 : pair_style lcbop : Dominik Wojt (Wroclaw University of Technology) +Feb12 : PPPM per-atom energy/virial : Stan Moore (BYU) +Feb12 : Ewald per-atom energy/virial : German Samolyuk (ORNL), Stan Moore (BYU) +Feb12 : minimize forcezero linesearch : Asad Hasan (CMU) +Feb12 : pair_style beck : Jon Zimmerman (Sandia) +Feb12 : pair_style meam/spline : Alex Stukowski (LLNL) +Jan12 : pair_style kim : Valeriu Smirichinski, Ryan Elliott, Ellad Tadmor (U Minn) +Jan12 : dihedral_style table : Andrew Jewett (UCSB) +Jan12 : angle_style dipole : Mario Orsi +Jan12 : pair_style lj/smooth/linear : Jon Zimmerman (Sandia) +Jan12 : fix reax/c/bond : Tzu-Ray Shan (Sandia) +Dec11 : pair_style coul/wolf : Yongfeng Zhang (INL) +Dec11 : run_style verlet/split : Yuxing Peng and Chris Knight (U Chicago) +Dec11 : pair_style tersoff/table : Luca Ferraro (CASPUR) +Nov11 : per-atom energy/stress for reax/c : Tzu-Ray Shan (Sandia) +Oct11 : Fast Lubrication Dynamics (FLD) package: Amit Kumar, Michael Bybee, Jonathan Higdon (UIUC) +Oct11 : USER-OMP package : Axel Kohlmeyer (Temple U) +Sep11 : pair_style edip : Luca Ferraro (CASPUR) +Aug11 : USER-SPH package : Georg Ganzenmuller (FIHSD, EMI, Germany) +Aug11 : fix restrain : Craig Tenney (Sandia) +Aug11 : USER-CUDA package : Christian Trott (U Tech Ilmenau) +Aug11 : pair_style lj/sf : Laurent Joly (U Lyon) +Aug11 : bond_style harmonic/shift and harmonic/shift/cut : Carsten Svaneborg +Aug11 : angle_style cosine/shift and cosine/shift/exp : Carsten Svaneborg +Aug11 : dihedral_style cosine/shift/exp : Carsten Svaneborg +Aug11 : pair_style dipole/sf : Mario Orsi +Aug11 : fix addtorque and compute temp/rotate : Laurent Joly (U Lyon) +Aug11 : FFT support via FFTW3, MKL, ACML, KISSFFT libraries : \ + Axel Kohlmeyer (Temple U) +Jun11 : pair_style adp : Chris Weinberger (Sandia), Stephen Foiles (Sandia), \ + Chandra Veer Singh (Cornell) +Jun11 : Windows build option via Microsoft Visual Studio : \ + Ilya Valuev (JIHT, Moscow, Russia) +Jun11 : antisymmetrized wave packet MD : Ilya Valuev (JIHT, Moscow, Russia) +Jun11 : dump image : Nathan Fabian (Sandia) +May11 : pppm GPU single and double : Mike Brown (ORNL) +May11 : pair_style lj/expand/gpu : Inderaj Bains (NVIDIA) +2010 : pair_style reax/c and fix qeq/reax : Metin Aktulga (Purdue, now LBNL) +- : DREIDING force field, pair_style hbond/dreiding, etc : Tod Pascal (Caltech) +- : fix adapt and compute ti for thermodynamic integration for \ + free energies : Sai Jayaraman (Sandia) +- : pair_style born and gauss : Sai Jayaraman (Sandia) +- : stochastic rotation dynamics (SRD) via fix srd : \ + Jeremy Lechman (Sandia) and Pieter in 't Veld (BASF) +- : ipp Perl script tool : Reese Jones (Sandia) +- : eam_database and createatoms tools : Xiaowang Zhou (Sandia) +- : electron force field (eFF) : Andres Jaramillo-Botero and Julius Su (Caltech) +- : embedded ion method (EIM) potential : Xiaowang Zhou (Sandia) +- : COMB potential with charge equilibration : Tzu-Ray Shan (U Florida) +- : fix ave/correlate : Benoit Leblanc, Dave Rigby, \ + Paul Saxe (Materials Design) and Reese Jones (Sandia) +- : pair_style peri/lps : Mike Parks (Sandia) +- : fix msst : Lawrence Fried (LLNL), Evan Reed (LLNL, Stanford) +- : thermo_style custom tpcpu & spcpu keywords : Axel Kohlmeyer (Temple U) +- : fix rigid/nve, fix rigid/nvt : Tony Sheh and Trung Dac Nguyen (U Michigan) +- : public SVN & Git repositories for LAMMPS : \ + Axel Kohlmeyer (Temple U) and Bill Goldman (Sandia) +- : compute heat/flux : German Samolyuk (ORNL) and \ + Mario Pinto (Computational Research Lab, Pune, India) +- : pair_style yukawa/colloid : Randy Schunk (Sandia) +- : fix wall/colloid : Jeremy Lechman (Sandia) +2009 : fix imd for real-time viz and interactive MD : Axel Kohlmeyer (Temple Univ) +- : concentration-dependent EAM potential : \ + Alexander Stukowski (Technical University of Darmstadt) +- : parallel replica dymamics (PRD) : Mike Brown (Sandia) +- : min_style hftn : Todd Plantenga (Sandia) +- : fix atc : Reese Jones, Jon Zimmerman, Jeremy Templeton (Sandia) +- : dump cfg : Liang Wan (Chinese Academy of Sciences) +- : fix nvt with Nose/Hoover chains : Andy Ballard (U Maryland) +- : pair_style lj/cut/gpu, pair_style gayberne/gpu : Mike Brown (Sandia) +- : pair_style lj96/cut, bond_style table, angle_style table : Chuanfu Luo +- : fix langevin tally : Carolyn Phillips (U Michigan) +- : compute heat/flux for Green-Kubo : Reese Jones (Sandia), \ + Philip Howell (Siemens), Vikas Varsney (AFRL) +- : region cone : Pim Schravendijk +- : pair_style born/coul/long : Ahmed Ismail (Sandia) +- : fix ttm : Paul Crozier (Sandia) and Carolyn Phillips (U Michigan) +- : fix box/relax : Aidan Thompson and David Olmsted (Sandia) +- : ReaxFF potential : Aidan Thompson (Sandia) and Hansohl Cho (MIT) +- : compute cna/atom : Liang Wan (Chinese Academy of Sciences) +2008 : Tersoff/ZBL potential : Dave Farrell (Northwestern U) +- : peridynamics : Mike Parks (Sandia) +- : fix smd for steered MD : Axel Kohlmeyer (U Penn) +- : GROMACS pair potentials : Mark Stevens (Sandia) +- : lmp2vmd tool : Axel Kohlmeyer (U Penn) +- : compute group/group : Naveen Michaud-Agrawal (Johns Hopkins U) +- : USER-CG-CMM package for coarse-graining : Axel Kohlmeyer (U Penn) +- : cosine/delta angle potential : Axel Kohlmeyer (U Penn) +- : VIM editor add-ons for LAMMPS input scripts : Gerolf Ziegenhain +- : pair_style lubricate : Randy Schunk (Sandia) +- : compute ackland/atom : Gerolf Ziegenhain +- : kspace_style ewald/n, pair_style lj/coul, pair_style buck/coul : \ + Pieter in 't Veld (Sandia) +- : AI-REBO bond-order potential : Ase Henry (MIT) +- : making LAMMPS a true "object" that can be instantiated \ + multiple times, e.g. as a library : Ben FrantzDale (RPI) +- : pymol_asphere viz tool : Mike Brown (Sandia) +2007 : NEMD SLLOD integration : Pieter in 't Veld (Sandia) +- : tensile and shear deformations : Pieter in 't Veld (Sandia) +- : GayBerne potential : Mike Brown (Sandia) +- : ellipsoidal particles : Mike Brown (Sandia) +- : colloid potentials : Pieter in 't Veld (Sandia) +- : fix heat : Paul Crozier and Ed Webb (Sandia) +- : neighbor multi and communicate multi : Pieter in 't Veld (Sandia) +- : MATLAB post-processing scripts : Arun Subramaniyan (Purdue) +- : triclinic (non-orthogonal) simulation domains : Pieter in 't Veld (Sandia) +- : thermo_extract tool: Vikas Varshney (Wright Patterson AFB) +- : fix ave/time and fix ave/spatial : Pieter in 't Veld (Sandia) +- : MEAM potential : Greg Wagner (Sandia) +- : optimized pair potentials for lj/cut, charmm/long, eam, morse : \ + James Fischer (High Performance Technologies), \ + David Richie and Vincent Natoli (Stone Ridge Technologies) +2006 : fix wall/lj126 : Mark Stevens (Sandia) +- : Stillinger-Weber and Tersoff potentials : \ + Aidan Thompson and Xiaowang Zhou (Sandia) +- : region prism : Pieter in 't Veld (Sandia) +- : fix momentum and recenter : Naveen Michaud-Agrawal (Johns Hopkins U) +- : multi-letter variable names : Naveen Michaud-Agrawal (Johns Hopkins U) +- : OPLS dihedral potential: Mark Stevens (Sandia) +- : POEMS coupled rigid body integrator: Rudranarayan Mukherjee (RPI) +- : faster pair hybrid potential: James Fischer \ + (High Performance Technologies, Inc), Vincent Natoli and \ + David Richie (Stone Ridge Technology) +- : breakable bond quartic potential: Chris Lorenz and Mark Stevens (Sandia) +- : DCD and XTC dump styles: Naveen Michaud-Agrawal (Johns Hopkins U) +- : grain boundary orientation fix : Koenraad Janssens and \ + David Olmsted (Sandia) +- : pair_style lj/smooth potential : Craig Maloney (UCSB) +- : radius-of-gyration spring fix : Naveen Michaud-Agrawal \ + (Johns Hopkins U) and Paul Crozier (Sandia) +- : self spring fix : Naveen Michaud-Agrawal (Johns Hopkins U) +- : EAM CoAl and AlCu potentials : Kwang-Reoul Lee (KIST, Korea) +- : cosine/squared angle potential : Naveen Michaud-Agrawal (Johns Hopkins U) +- : helix dihedral potential : Naveen Michaud-Agrawal (Johns Hopkins U) and \ + Mark Stevens (Sandia) +- : Finnis/Sinclair EAM: Tim Lau (MIT) +- : dissipative particle dynamics (DPD) potentials: Kurt Smith (U Pitt) and \ + Frank van Swol (Sandia) +- : TIP4P potential (4-site water): Ahmed Ismail and \ + Amalie Frischknecht (Sandia) +2005 : uniaxial strain fix: Carsten Svaneborg (Max Planck Institute) +- : compressed dump files: Erik Luijten (U Illinois) +- : cylindrical indenter fix: Ravi Agrawal (Northwestern U) +- : electric field fix: Christina Payne (Vanderbilt U) +- : AMBER <-> LAMMPS tool: Keir Novik (Univ College London) and \ + Vikas Varshney (U Akron) +- : CHARMM <-> LAMMPS tool: Pieter in 't Veld and Paul Crozier (Sandia) +- : Morse bond potential: Jeff Greathouse (Sandia) +- : radial distribution functions: Paul Crozier & Jeff Greathouse (Sandia) +- : force tables for long-range Coulombics: Paul Crozier (Sandia) +2004 : targeted molecular dynamics (TMD): Paul Crozier (Sandia) and \ + Christian Burisch (Bochum University, Germany) +- : FFT support for SGI SCLS (Altix): Jim Shepherd (Ga Tech) +- : lmp2cfg and lmp2traj tools: Ara Kooser, Jeff Greathouse, \ + Andrey Kalinichev (Sandia) +- : parallel tempering: Mark Sears (Sandia) +earlier : granular force fields and BC: Leo Silbert & Gary Grest (Sandia) +- : multi-harmonic dihedral potential: Mathias Putz (Sandia) +- : embedded atom method (EAM) potential: Stephen Foiles (Sandia) +- : msi2lmp tool: Steve Lustig (Dupont), Mike Peachey & John Carpenter (Cray) +- : HTFN energy minimizer: Todd Plantenga (Sandia) +- : class 2 force fields: Eric Simon (Cray) +- : NVT/NPT integrators: Mark Stevens (Sandia) +- : rRESPA: Mark Stevens & Paul Crozier (Sandia) +- : Ewald and PPPM solvers: Roy Pollock (LLNL) : :tb(s=:,ca1=c) diff --git a/doc/src/Intro_features.txt b/doc/src/Intro_features.txt new file mode 100644 index 0000000000..2bb7e25683 --- /dev/null +++ b/doc/src/Intro_features.txt @@ -0,0 +1,202 @@ +"Higher level section"_Intro.html - "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 + +LAMMPS features :h3 + +LAMMPS is a classical molecular dynamics (MD) code with these general +classes of functionality: + +"General features"_#general +"Particle and model types"_#particle +"Interatomic potentials (force fields)"_#ff +"Atom creation"_#create +"Ensembles, constraints, and boundary conditions"_#ensemble +"Integrators"_#integrate +"Diagnostics"_#diag +"Output"_#output +"Multi-replica models"_#replica +"Pre- and post-processing"_#prepost +"Specialized features (beyond MD itself)"_#special :ul + +:line + +General features :h4,link(general) + + runs on a single processor or in parallel + distributed-memory message-passing parallelism (MPI) + spatial-decomposition of simulation domain for parallelism + open-source distribution + highly portable C++ + optional libraries used: MPI and single-processor FFT + GPU (CUDA and OpenCL), Intel Xeon Phi, and OpenMP support for many code features + easy to extend with new features and functionality + runs from an input script + syntax for defining and using variables and formulas + syntax for looping over runs and breaking out of loops + run one or multiple simulations simultaneously (in parallel) from one script + build as library, invoke LAMMPS thru library interface or provided Python wrapper + couple with other codes: LAMMPS calls other code, other code calls LAMMPS, umbrella code calls both :ul + +Particle and model types :h4,link(particle) +("atom style"_atom_style.html command) + + atoms + coarse-grained particles (e.g. bead-spring polymers) + united-atom polymers or organic molecules + all-atom polymers, organic molecules, proteins, DNA + metals + granular materials + coarse-grained mesoscale models + finite-size spherical and ellipsoidal particles + finite-size line segment (2d) and triangle (3d) particles + point dipole particles + rigid collections of particles + hybrid combinations of these :ul + +Interatomic potentials (force fields) :h4,link(ff) +("pair style"_pair_style.html, "bond style"_bond_style.html, +"angle style"_angle_style.html, "dihedral style"_dihedral_style.html, +"improper style"_improper_style.html, "kspace style"_kspace_style.html +commands) + + pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, \ + Yukawa, soft, class 2 (COMPASS), hydrogen bond, tabulated + charged pairwise potentials: Coulombic, point-dipole + manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), \ + embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, \ + REBO, AIREBO, ReaxFF, COMB, SNAP, Streitz-Mintmire, 3-body polymorphic + long-range interactions for charge, point-dipoles, and LJ dispersion: \ + Ewald, Wolf, PPPM (similar to particle-mesh Ewald) + polarization models: "QEq"_fix_qeq.html, \ + "core/shell model"_Howto_coreshell.html, \ + "Drude dipole model"_Howto_drude.html + charge equilibration (QEq via dynamic, point, shielded, Slater methods) + coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO + mesoscopic potentials: granular, Peridynamics, SPH + electron force field (eFF, AWPMD) + bond potentials: harmonic, FENE, Morse, nonlinear, class 2, \ + quartic (breakable) + angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, \ + class 2 (COMPASS) + dihedral potentials: harmonic, CHARMM, multi-harmonic, helix, \ + class 2 (COMPASS), OPLS + improper potentials: harmonic, cvff, umbrella, class 2 (COMPASS) + polymer potentials: all-atom, united-atom, bead-spring, breakable + water potentials: TIP3P, TIP4P, SPC + implicit solvent potentials: hydrodynamic lubrication, Debye + force-field compatibility with common CHARMM, AMBER, DREIDING, \ + OPLS, GROMACS, COMPASS options + access to "KIM archive"_http://openkim.org of potentials via \ + "pair kim"_pair_kim.html + hybrid potentials: multiple pair, bond, angle, dihedral, improper \ + potentials can be used in one simulation + overlaid potentials: superposition of multiple pair potentials :ul + +Atom creation :h4,link(create) +("read_data"_read_data.html, "lattice"_lattice.html, +"create_atoms"_create_atoms.html, "delete_atoms"_delete_atoms.html, +"displace_atoms"_displace_atoms.html, "replicate"_replicate.html commands) + + read in atom coords from files + create atoms on one or more lattices (e.g. grain boundaries) + delete geometric or logical groups of atoms (e.g. voids) + replicate existing atoms multiple times + displace atoms :ul + +Ensembles, constraints, and boundary conditions :h4,link(ensemble) +("fix"_fix.html command) + + 2d or 3d systems + orthogonal or non-orthogonal (triclinic symmetry) simulation domains + constant NVE, NVT, NPT, NPH, Parinello/Rahman integrators + thermostatting options for groups and geometric regions of atoms + pressure control via Nose/Hoover or Berendsen barostatting in 1 to 3 dimensions + simulation box deformation (tensile and shear) + harmonic (umbrella) constraint forces + rigid body constraints + SHAKE bond and angle constraints + Monte Carlo bond breaking, formation, swapping + atom/molecule insertion and deletion + walls of various kinds + non-equilibrium molecular dynamics (NEMD) + variety of additional boundary conditions and constraints :ul + +Integrators :h4,link(integrate) +("run"_run.html, "run_style"_run_style.html, "minimize"_minimize.html commands) + + velocity-Verlet integrator + Brownian dynamics + rigid body integration + energy minimization via conjugate gradient or steepest descent relaxation + rRESPA hierarchical timestepping + rerun command for post-processing of dump files :ul + +Diagnostics :h4,link(diag) + + see various flavors of the "fix"_fix.html and "compute"_compute.html commands :ul + +Output :h4,link(output) +("dump"_dump.html, "restart"_restart.html commands) + + log file of thermodynamic info + text dump files of atom coords, velocities, other per-atom quantities + binary restart files + parallel I/O of dump and restart files + per-atom quantities (energy, stress, centro-symmetry parameter, CNA, etc) + user-defined system-wide (log file) or per-atom (dump file) calculations + spatial and time averaging of per-atom quantities + time averaging of system-wide quantities + atom snapshots in native, XYZ, XTC, DCD, CFG formats :ul + +Multi-replica models :h4,link(replica) + +"nudged elastic band"_neb.html +"parallel replica dynamics"_prd.html +"temperature accelerated dynamics"_tad.html +"parallel tempering"_temper.html :ul + +Pre- and post-processing :h4,link(prepost) + +A handful of pre- and post-processing tools are packaged with LAMMPS, +some of which can convert input and output files to/from formats used +by other codes; see the "Toos"_Tools.html doc page. :ulb,l + +Our group has also written and released a separate toolkit called +"Pizza.py"_pizza which provides tools for doing setup, analysis, +plotting, and visualization for LAMMPS simulations. Pizza.py is +written in "Python"_python and is available for download from "the +Pizza.py WWW site"_pizza. :l,ule + +:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) +:link(python,http://www.python.org) + +Specialized features :h4,link(special) + +LAMMPS can be built with optional packages which implement a variety +of additional capabilities. See the "Packages"_Packages.html doc +page for details. + +These are LAMMPS capabilities which you may not think of as typical +classical MD options: + +"static"_balance.html and "dynamic load-balancing"_fix_balance.html +"generalized aspherical particles"_Howto_body.html +"stochastic rotation dynamics (SRD)"_fix_srd.html +"real-time visualization and interactive MD"_fix_imd.html +calculate "virtual diffraction patterns"_compute_xrd.html +"atom-to-continuum coupling"_fix_atc.html with finite elements +coupled rigid body integration via the "POEMS"_fix_poems.html library +"QM/MM coupling"_fix_qmmm.html +Monte Carlo via "GCMC"_fix_gcmc.html and "tfMC"_fix_tfmc.html and "atom swapping"_fix_atom_swap.html +"path-integral molecular dynamics (PIMD)"_fix_ipi.html and "this as well"_fix_pimd.html +"Direct Simulation Monte Carlo"_pair_dsmc.html for low-density fluids +"Peridynamics mesoscale modeling"_pair_peri.html +"Lattice Boltzmann fluid"_fix_lb_fluid.html +"targeted"_fix_tmd.html and "steered"_fix_smd.html molecular dynamics +"two-temperature electron model"_fix_ttm.html :ul diff --git a/doc/src/Intro_nonfeatures.txt b/doc/src/Intro_nonfeatures.txt new file mode 100644 index 0000000000..41f001fc8b --- /dev/null +++ b/doc/src/Intro_nonfeatures.txt @@ -0,0 +1,83 @@ +"Higher level section"_Intro.html - "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 + +LAMMPS non-features :h3 + +LAMMPS is designed to be a fast, parallel engine for molecular +dynamics (MD) simulations. It provides only a modest amount of +functionality for setting up simulations and analyzing their output. + +Specifically, LAMMPS does not: + +run thru a GUI +build molecular systems +assign force-field coefficients automagically +perform sophisticated analyses of your MD simulation +visualize your MD simulation interactively +plot your output data :ul + +Here are suggestions on how to perform these tasks: + +GUI: LAMMPS can be built as a library and a Python wrapper that wraps +the library interface is provided. Thus, GUI interfaces can be +written in Python (or C or C++ if desired) that run LAMMPS and +visualize or plot its output. Examples of this are provided in the +python directory and described on the "Python"_Python.html doc +page. :ulb,l + +Builder: Several pre-processing tools are packaged with LAMMPS. Some +of them convert input files in formats produced by other MD codes such +as CHARMM, AMBER, or Insight into LAMMPS input formats. Some of them +are simple programs that will build simple molecular systems, such as +linear bead-spring polymer chains. The moltemplate program is a true +molecular builder that will generate complex molecular models. See +the "Tools"_Tools.html doc page for details on tools packaged with +LAMMPS. The "Pre/post processing +page"_http:/lammps.sandia.gov/prepost.html of the LAMMPS website +describes a variety of 3rd party tools for this task. :l + +Force-field assignment: The conversion tools described in the previous +bullet for CHARMM, AMBER, and Insight will also assign force field +coefficients in the LAMMPS format, assuming you provide CHARMM, AMBER, +or Accelerys force field files. :l + +Simulation analyses: If you want to perform analyses on-the-fly as +your simulation runs, see the "compute"_compute.html and +"fix"_fix.html doc pages, which list commands that can be used in a +LAMMPS input script. Also see the "Modify"_Modify.html doc page for +info on how to add your own analysis code or algorithms to LAMMPS. +For post-processing, LAMMPS output such as "dump file +snapshots"_dump.html can be converted into formats used by other MD or +post-processing codes. Some post-processing tools packaged with +LAMMPS will do these conversions. Scripts provided with the {python} +tool in the tools directory can extract and massage data in dump files +to make it easier to import into other programs. See the +"Tools"_Tools.html doc page for details on these various options. :l + +Visualization: LAMMPS can produce JPG or PNG snapshot images +on-the-fly via its "dump image"_dump_image.html command. For +high-quality, interactive visualization there are many excellent and +free tools available. See the "Other Codes +page"_http://lammps.sandia.gov/viz.html page of the LAMMPS website for +visualization packages that can use LAMMPS output data. :l + +Plotting: See the next bullet about Pizza.py as well as the +"Python"_Python.html doc page for examples of plotting LAMMPS output. +Scripts provided with the {python} tool in the tools directory will +extract and massage data in log and dump files to make it easier to +analyze and plot. See the "Tools"_Tools.html doc page for more +discussion of the various tools. :l + +Pizza.py: Our group has also written a separate toolkit called +"Pizza.py"_http://pizza.sandia.gov which can do certain kinds of +setup, analysis, plotting, and visualization (via OpenGL) for LAMMPS +simulations. It thus provides some functionality for several of the +above bullets. Pizza.py is written in "Python"_http://www.python.org +and is available for download from "this +page"_http://www.cs.sandia.gov/~sjplimp/download.html. :l,ule diff --git a/doc/src/Intro_opensource.txt b/doc/src/Intro_opensource.txt new file mode 100644 index 0000000000..e0d57f7ce1 --- /dev/null +++ b/doc/src/Intro_opensource.txt @@ -0,0 +1,44 @@ +"Higher level section"_Intro.html - "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 + +LAMMPS open-source license :h3 + +LAMMPS is a freely-available open-source code, distributed under the +terms of the "GNU Public License"_gnu, which means you can use or +modify the code however you wish. + +LAMMPS comes with no warranty of any kind. As each source file states +in its header, it is a copyrighted code that is distributed free-of- +charge, under the terms of the "GNU Public License"_gnu (GPL). This +is often referred to as open-source distribution - see +"www.gnu.org"_gnuorg or "www.opensource.org"_opensource. The legal +text of the GPL is in the LICENSE file included in the LAMMPS +distribution. + +:link(gnu,http://www.gnu.org/copyleft/gpl.html) +:link(gnuorg,http://www.gnu.org) +:link(opensource,http://www.opensource.org) + +Here is a summary of what the GPL means for LAMMPS users: + +(1) Anyone is free to use, modify, or extend LAMMPS in any way they +choose, including for commercial purposes. + +(2) If you distribute a modified version of LAMMPS, it must remain +open-source, meaning you distribute it under the terms of the GPL. +You should clearly annotate such a code as a derivative version of +LAMMPS. + +(3) If you release any code that includes LAMMPS source code, then it +must also be open-sourced, meaning you distribute it under the terms +of the GPL. + +(4) If you give LAMMPS files to someone else, the GPL LICENSE file and +source file headers (including the copyright and GPL notices) should +remain part of the code. diff --git a/doc/src/Intro_overview.txt b/doc/src/Intro_overview.txt new file mode 100644 index 0000000000..49c14bc5f0 --- /dev/null +++ b/doc/src/Intro_overview.txt @@ -0,0 +1,58 @@ +"Higher level section"_Intro.html - "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 + +Overview of LAMMPS :h3 + +LAMMPS is a classical molecular dynamics (MD) code that models +ensembles of particles in a liquid, solid, or gaseous state. It can +model atomic, polymeric, biological, solid-state (metals, ceramics, +oxides), granular, coarse-grained, or macroscopic systems using a +variety of interatomic potentials (force fields) and boundary +conditions. It can model 2d or 3d systems with only a few particles +up to millions or billions. + +LAMMPS can be built and run on a laptop or destop machine, but is +designed for parallel computers. It will run on any parallel machine +that supports the "MPI"_mpi message-passing library. This includes +shared-memory boxes and distributed-memory clusters and +supercomputers. + +:link(mpi,http://www-unix.mcs.anl.gov/mpi) + +LAMMPS is written in C++. Earlier versions were written in F77 and +F90. See the "History page"_http://lammps.sandia.gov/history.html of +the website for details. All versions can be downloaded from the +"LAMMPS website"_lws. + +LAMMPS is designed to be easy to modify or extend with new +capabilities, such as new force fields, atom types, boundary +conditions, or diagnostics. See the "Modify"_Modify.html doc page for +more details. + +In the most general sense, LAMMPS integrates Newton's equations of +motion for a collection of interacting particles. A single particle +can be an atom or molecule or electron, a coarse-grained cluster of +atoms, or a mesoscopic or macroscopic clump of material. The +interaction models that LAMMPS includes are mostly short-range in +nature; some long-range models are included as well. + +LAMMPS uses neighbor lists to keep track of nearby particles. The +lists are optimized for systems with particles that are repulsive at +short distances, so that the local density of particles never becomes +too large. This is in contrast to methods used for modeling plasmas +or gravitational bodies (e.g. galaxy formation). + +On parallel machines, LAMMPS uses spatial-decomposition techniques to +partition the simulation domain into small sub-domains of equal +computational cost, one of which is assigned to each processor. +Processors communicate and store "ghost" atom information for atoms +that border their sub-domain. + + + diff --git a/doc/src/Intro_website.txt b/doc/src/Intro_website.txt new file mode 100644 index 0000000000..a8af94157c --- /dev/null +++ b/doc/src/Intro_website.txt @@ -0,0 +1,42 @@ +"Higher level section"_Intro.html - "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 + +Additional website links :h3 + +The "LAMMPS website"_lws has a variety of additional info about +LAMMPS, beyond what is in this manual. Some of the other pages in +this Intr are included in this list. + +"Brief intro and recently added significant features"_lws +"List of features"_http://lammps.sandia.gov/features.html +"List of non-features"_http://lammps.sandia.gov/non_features.html +"Recent bug fixes and new features"_http://lammps.sandia.gov/bug.html :ul + +"Download info"_http://lammps.sandia.gov/download.html +"GitHub site"_https://github.com/lammps/lammps +"SourceForge site"_https://sourceforge.net/projects/lammps +"LAMMPS open-source license"_http://lammps.sandia.gov/open_source.html :ul + +"Glossary of MD terms relevant to LAMMPS"_http://lammps.sandia.gov/glossary.html +"LAMMPS highlights with images"_http://lammps.sandia.gov/pictures.html +"LAMMPS highlights with movies"_http://lammps.sandia.gov/movies.html +"Mail list"_http://lammps.sandia.gov/mail.html +"Workshops"_http://lammps.sandia.gov/workshops.html +"Tutorials"_http://lammps.sandia.gov/tutorials.html +"Developer guide"_http://lammps.sandia.gov/Developer.pdf :ul + +"Pre- and post-processing tools for LAMMPS"_http://lammps.sandia.gov/prepost.html +"Other software usable with LAMMPS"_http://lammps.sandia.gov/offsite.html +"Viz tools usable with LAMMPS"_http://lammps.sandia.gov/viz.html :ul + +"Benchmark performance"_http://lammps.sandia.gov/bench.html +"Publications that have cited LAMMPS"_http://lammps.sandia.gov/papers.html +"Authors of LAMMPS"_http://lammps.sandia.gov/authors.html +"History of LAMMPS development"_http://lammps.sandia.gov/history.html +"Funding for LAMMPS"_http://lammps.sandia.gov/funding.html :ul diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 4481c911a0..a5e8b63640 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ -< + LAMMPS Users Manual - + @@ -14,91 +14,54 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html#comm) :line +

+ LAMMPS Documentation :c,h1 -16 Jul 2018 version :c,h2 +2 Aug 2018 version :c,h2 -Version info: :h3 - -The LAMMPS "version" is the date when it was released, such as 1 May -2010. LAMMPS is updated continuously. Whenever we fix a bug or add a -feature, we release it immediately, and post a notice on "this page of -the WWW site"_bug. Every 2-4 months one of the incremental releases -is subjected to more thorough testing and labeled as a {stable} version. - -Each dated copy of LAMMPS contains all the -features and bug-fixes up to and including that version date. The -version date is printed to the screen and logfile every time you run -LAMMPS. It is also in the file src/version.h and in the LAMMPS -directory name created when you unpack a tarball, and at the top of -the first page of the manual (this page). - -If you browse the HTML doc pages on the LAMMPS WWW site, they always -describe the most current [development] version of LAMMPS. :ulb,l - -If you browse the HTML doc pages included in your tarball, they -describe the version you have. :l - -The "PDF file"_Manual.pdf on the WWW site or in the tarball is updated -about once per month. This is because it is large, and we don't want -it to be part of every patch. :l - -There is also a "Developer.pdf"_Developer.pdf file in the doc -directory, which describes the internal structure and algorithms of -LAMMPS. :l -:ule +"What is a LAMMPS version?"_Manual_version.html LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel Simulator. -LAMMPS is a classical molecular dynamics simulation code designed to -run efficiently on parallel computers. It was developed at Sandia -National Laboratories, a US Department of Energy facility, with -funding from the DOE. It is an open-source code, distributed freely -under the terms of the GNU Public License (GPL). +LAMMPS is a classical molecular dynamics simulation code with a focus +on materials modeling. It was designed to run efficiently on parallel +computers. It was developed originally at Sandia National +Laboratories, a US Department of Energy facility. The majority of +funding for LAMMPS has come from the US Department of Energy (DOE). +LAMMPS is an open-source code, distributed freely under the terms of +the GNU Public License (GPL). -The current core group of LAMMPS developers is at Sandia National -Labs and Temple University: - -"Steve Plimpton"_sjp, sjplimp at sandia.gov :ulb,l -Aidan Thompson, athomps at sandia.gov :l -Stan Moore, stamoor at sandia.gov :l -"Axel Kohlmeyer"_ako, akohlmey at gmail.com :l -:ule - -Past core developers include Paul Crozier, Ray Shan and Mark Stevens, -all at Sandia. The [LAMMPS home page] at -"http://lammps.sandia.gov"_http://lammps.sandia.gov has more information -about the code and its uses. Interaction with external LAMMPS developers, -bug reports and feature requests are mainly coordinated through the -"LAMMPS project on GitHub."_https://github.com/lammps/lammps -The lammps.org domain, currently hosting "public continuous integration -testing"_https://ci.lammps.org/job/lammps/ and "precompiled Linux -RPM and Windows installer packages"_http://packages.lammps.org is located -at Temple University and managed by Richard Berger, -richard.berger at temple.edu. - -:link(bug,http://lammps.sandia.gov/bug.html) -:link(sjp,http://www.sandia.gov/~sjplimp) -:link(ako,http://goo.gl/1wk0) +The "LAMMPS website"_lws has a variety of information about the code. +It includes links to an on-line version of this manual, a "mail +list"_http://lammps.sandia.gov/mail.html where users can post +questions, and a "GitHub site"https://github.com/lammps/lammps where +all LAMMPS development is coordinated. :line -The LAMMPS documentation is organized into the following sections. If -you find errors or omissions in this manual or have suggestions for -useful information to add, please send an email to the developers so -we can improve the LAMMPS documentation. - -Once you are familiar with LAMMPS, you may want to bookmark "this -page"_Section_commands.html#comm at Section_commands.html#comm since -it gives quick access to documentation for all LAMMPS commands. - "PDF file"_Manual.pdf of the entire manual, generated by "htmldoc"_http://freecode.com/projects/htmldoc +The content for this manual is part of the LAMMPS distribution. +You can build a local copy of the Manual as HTML pages or a PDF file, +by following the steps on the "this page"_Build_manual.html. + +There is also a "Developer.pdf"_Developer.pdf document which gives +a brief description of the basic code structure of LAMMPS. + +:line + +This manual is organized into the following sections. + +Once you are familiar with LAMMPS, you may want to bookmark "this +page"_Commands.html since it gives quick access to a doc page for +every LAMMPS command. + -"Introduction"_Section_intro.html :olb,l - 1.1 "What is LAMMPS"_intro_1 :ulb,b - 1.2 "LAMMPS features"_intro_2 :b - 1.3 "LAMMPS non-features"_intro_3 :b - 1.4 "Open source distribution"_intro_4 :b - 1.5 "Acknowledgments and citations"_intro_5 :ule,b +"Introduction"_Intro.html :olb,l "Getting started"_Section_start.html :l 2.1 "What's in the LAMMPS distribution"_start_1 :ulb,b 2.2 "Making LAMMPS"_start_2 :b @@ -161,70 +116,17 @@ END_RST --> 2.6 "Command-line options"_start_6 :b 2.7 "Screen output"_start_7 :b 2.8 "Tips for users of previous versions"_start_8 :ule,b -"Commands"_Section_commands.html :l - 3.1 "LAMMPS input script"_cmd_1 :ulb,b - 3.2 "Parsing rules"_cmd_2 :b - 3.3 "Input script structure"_cmd_3 :b - 3.4 "Commands listed by category"_cmd_4 :b - 3.5 "Commands listed alphabetically"_cmd_5 :ule,b -"Packages"_Section_packages.html :l - 4.1 "Standard packages"_pkg_1 :ulb,b - 4.2 "User packages"_pkg_2 :ule,b -"Accelerating LAMMPS performance"_Section_accelerate.html :l - 5.1 "Measuring performance"_acc_1 :ulb,b - 5.2 "Algorithms and code options to boost performace"_acc_2 :b - 5.3 "Accelerator packages with optimized styles"_acc_3 :b - 5.3.1 "GPU package"_accelerate_gpu.html :b - 5.3.2 "USER-INTEL package"_accelerate_intel.html :b - 5.3.3 "KOKKOS package"_accelerate_kokkos.html :b - 5.3.4 "USER-OMP package"_accelerate_omp.html :b - 5.3.5 "OPT package"_accelerate_opt.html :b - 5.4 "Comparison of various accelerator packages"_acc_4 :ule,b -"How-to discussions"_Section_howto.html :l - 6.1 "Restarting a simulation"_howto_1 :ulb,b - 6.2 "2d simulations"_howto_2 :b - 6.3 "CHARMM and AMBER force fields"_howto_3 :b - 6.4 "Running multiple simulations from one input script"_howto_4 :b - 6.5 "Multi-replica simulations"_howto_5 :b - 6.6 "Granular models"_howto_6 :b - 6.7 "TIP3P water model"_howto_7 :b - 6.8 "TIP4P water model"_howto_8 :b - 6.9 "SPC water model"_howto_9 :b - 6.10 "Coupling LAMMPS to other codes"_howto_10 :b - 6.11 "Visualizing LAMMPS snapshots"_howto_11 :b - 6.12 "Triclinic (non-orthogonal) simulation boxes"_howto_12 :b - 6.13 "NEMD simulations"_howto_13 :b - 6.14 "Finite-size spherical and aspherical particles"_howto_14 :b - 6.15 "Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_howto_15 :b - 6.16 "Thermostatting, barostatting, and compute temperature"_howto_16 :b - 6.17 "Walls"_howto_17 :b - 6.18 "Elastic constants"_howto_18 :b - 6.19 "Library interface to LAMMPS"_howto_19 :b - 6.20 "Calculating thermal conductivity"_howto_20 :b - 6.21 "Calculating viscosity"_howto_21 :b - 6.22 "Calculating a diffusion coefficient"_howto_22 :b - 6.23 "Using chunks to calculate system properties"_howto_23 :b - 6.24 "Setting parameters for pppm/disp"_howto_24 :b - 6.25 "Polarizable models"_howto_25 :b - 6.26 "Adiabatic core/shell model"_howto_26 :b - 6.27 "Drude induced dipoles"_howto_27 :ule,b +"Commands"_Commands.html :l +"Optional packages"_Packages.html :l +"Accelerate performance"_Speed.html :l +"How-to discussions"_Howto.html :l "Example scripts"_Examples.html :l -"Performance & scalability"_Section_perf.html :l "Auxiliary tools"_Tools.html :l "Modify & extend LAMMPS"_Modify.html :l "Use Python with LAMMPS"_Python.html :l "Errors"_Errors.html :l -"Future and history"_Section_history.html :l - 13.1 "Coming attractions"_hist_1 :ulb,b - 13.2 "Past versions"_hist_2 :ule,b :ole -:link(intro_1,Section_intro.html#intro_1) -:link(intro_2,Section_intro.html#intro_2) -:link(intro_3,Section_intro.html#intro_3) -:link(intro_4,Section_intro.html#intro_4) -:link(intro_5,Section_intro.html#intro_5) - :link(start_1,Section_start.html#start_1) :link(start_2,Section_start.html#start_2) :link(start_3,Section_start.html#start_3) @@ -234,50 +136,6 @@ END_RST --> :link(start_7,Section_start.html#start_7) :link(start_8,Section_start.html#start_8) -:link(cmd_1,Section_commands.html#cmd_1) -:link(cmd_2,Section_commands.html#cmd_2) -:link(cmd_3,Section_commands.html#cmd_3) -:link(cmd_4,Section_commands.html#cmd_4) -:link(cmd_5,Section_commands.html#cmd_5) - -:link(pkg_1,Section_packages.html#pkg_1) -:link(pkg_2,Section_packages.html#pkg_2) - -:link(acc_1,Section_accelerate.html#acc_1) -:link(acc_2,Section_accelerate.html#acc_2) -:link(acc_3,Section_accelerate.html#acc_3) -:link(acc_4,Section_accelerate.html#acc_4) - -:link(howto_1,Section_howto.html#howto_1) -:link(howto_2,Section_howto.html#howto_2) -:link(howto_3,Section_howto.html#howto_3) -:link(howto_4,Section_howto.html#howto_4) -:link(howto_5,Section_howto.html#howto_5) -:link(howto_6,Section_howto.html#howto_6) -:link(howto_7,Section_howto.html#howto_7) -:link(howto_8,Section_howto.html#howto_8) -:link(howto_9,Section_howto.html#howto_9) -:link(howto_10,Section_howto.html#howto_10) -:link(howto_11,Section_howto.html#howto_11) -:link(howto_12,Section_howto.html#howto_12) -:link(howto_13,Section_howto.html#howto_13) -:link(howto_14,Section_howto.html#howto_14) -:link(howto_15,Section_howto.html#howto_15) -:link(howto_16,Section_howto.html#howto_16) -:link(howto_17,Section_howto.html#howto_17) -:link(howto_18,Section_howto.html#howto_18) -:link(howto_19,Section_howto.html#howto_19) -:link(howto_20,Section_howto.html#howto_20) -:link(howto_21,Section_howto.html#howto_21) -:link(howto_22,Section_howto.html#howto_22) -:link(howto_23,Section_howto.html#howto_23) -:link(howto_24,Section_howto.html#howto_24) -:link(howto_25,Section_howto.html#howto_25) -:link(howto_26,Section_howto.html#howto_26) -:link(howto_27,Section_howto.html#howto_27) - -:link(hist_1,Section_history.html#hist_1) -:link(hist_2,Section_history.html#hist_2) diff --git a/doc/src/Manual_version.txt b/doc/src/Manual_version.txt new file mode 100644 index 0000000000..8583eabf86 --- /dev/null +++ b/doc/src/Manual_version.txt @@ -0,0 +1,33 @@ +"Higher level section"_Manual.html - "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 + +What does a LAMMPS version mean: :h3 + +The LAMMPS "version" is the date when it was released, such as 1 May +2014. LAMMPS is updated continuously. Whenever we fix a bug or add a +feature, we release it in the next {patch} release, which are +typically made every couple of weeks. Info on patch releases are on +"this website page"_http://lammps.sandia.gov/bug.html. Every few +months, the latest patch release is subjected to more thorough testing +and labeled as a {stable} version. + +Each version of LAMMPS contains all the features and bug-fixes up to +and including its version date. + +The version date is printed to the screen and logfile every time you +run LAMMPS. It is also in the file src/version.h and in the LAMMPS +directory name created when you unpack a tarball. And it is on the +first page of the "manual"_Manual.html. + +If you browse the HTML doc pages on the LAMMPS WWW site, they always +describe the most current patch release of LAMMPS. :ulb,l + +If you browse the HTML doc pages included in your tarball, they +describe the version you have, which may be older. :l,ule + diff --git a/doc/src/Modify.txt b/doc/src/Modify.txt index ae0b0dc6bd..f828bd5d74 100644 --- a/doc/src/Modify.txt +++ b/doc/src/Modify.txt @@ -4,7 +4,7 @@ Section"_Python.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_atom.txt b/doc/src/Modify_atom.txt index afa1c319d2..60c7dccb29 100644 --- a/doc/src/Modify_atom.txt +++ b/doc/src/Modify_atom.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_body.txt b/doc/src/Modify_body.txt index b1dc8130cd..0114ae10c8 100644 --- a/doc/src/Modify_body.txt +++ b/doc/src/Modify_body.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -14,10 +14,9 @@ Body particles can represent complex entities, such as surface meshes of discrete points, collections of sub-particles, deformable objects, etc. -See "Section 6.14"_Section_howto.html#howto_14 of the manual for -an overview of using body particles and the "body"_body.html doc page -for details on the various body styles LAMMPS supports. New styles -can be created to add new kinds of body particles to LAMMPS. +See the "Howto body"_Howto_body.html doc page for an overview of using +body particles and the various body styles LAMMPS supports. New +styles can be created to add new kinds of body particles to LAMMPS. Body_nparticle.cpp is an example of a body particle that is treated as a rigid body containing N sub-particles. diff --git a/doc/src/Modify_bond.txt b/doc/src/Modify_bond.txt index f0828a0c3b..7ceea3f910 100644 --- a/doc/src/Modify_bond.txt +++ b/doc/src/Modify_bond.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_command.txt b/doc/src/Modify_command.txt index 6fc9aad1fc..4576f6c806 100644 --- a/doc/src/Modify_command.txt +++ b/doc/src/Modify_command.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_compute.txt b/doc/src/Modify_compute.txt index b02b8a983e..2f6481dbd5 100644 --- a/doc/src/Modify_compute.txt +++ b/doc/src/Modify_compute.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_contribute.txt b/doc/src/Modify_contribute.txt index 80795b5e20..ef9fe6a717 100644 --- a/doc/src/Modify_contribute.txt +++ b/doc/src/Modify_contribute.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,14 +32,14 @@ How quickly your contribution will be integrated depends largely on how much effort it will cause to integrate and test it, how much it requires changes to the core codebase, and of how much interest it is to the larger LAMMPS community. Please see below for a checklist of -typical requirements. Once you have prepared everything, see "this -tutorial"_tutorial_github.html for instructions on how to submit your -changes or new files through a GitHub pull request. If you prefer to -submit patches or full files, you should first make certain, that your -code works correctly with the latest patch-level version of LAMMPS and -contains all bugfixes from it. Then create a gzipped tar file of all -changed or added files or a corresponding patch file using 'diff -u' -or 'diff -c' and compress it with gzip. Please only use gzip +typical requirements. Once you have prepared everything, see the +"Howto github"_Howto_github.html doc page for instructions on how to +submit your changes or new files through a GitHub pull request. If you +prefer to submit patches or full files, you should first make certain, +that your code works correctly with the latest patch-level version of +LAMMPS and contains all bugfixes from it. Then create a gzipped tar +file of all changed or added files or a corresponding patch file using +'diff -u' or 'diff -c' and compress it with gzip. Please only use gzip compression, as this works well on all platforms. If the new features/files are broadly useful we may add them as core @@ -54,8 +54,9 @@ packages by typing "make package" in the LAMMPS src directory. Note that by providing us files to release, you are agreeing to make them open-source, i.e. we can release them under the terms of the GPL, -used as a license for the rest of LAMMPS. See "Section -1.4"_Section_intro.html#intro_4 for details. +used as a license for the rest of LAMMPS. See the "Open +source"_http://lammps.sandia.gov/open_source.html page on the LAMMPS +website for details. With user packages and files, all we are really providing (aside from the fame and fortune that accompanies having your name in the source diff --git a/doc/src/Modify_dump.txt b/doc/src/Modify_dump.txt index 81af54e003..cfe96f5d3d 100644 --- a/doc/src/Modify_dump.txt +++ b/doc/src/Modify_dump.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_fix.txt b/doc/src/Modify_fix.txt index ba985475cc..b095ebc4b5 100644 --- a/doc/src/Modify_fix.txt +++ b/doc/src/Modify_fix.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_kspace.txt b/doc/src/Modify_kspace.txt index 21407bf2e9..d5f018411d 100644 --- a/doc/src/Modify_kspace.txt +++ b/doc/src/Modify_kspace.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_min.txt b/doc/src/Modify_min.txt index 5dcf0f1e67..8252a576f3 100644 --- a/doc/src/Modify_min.txt +++ b/doc/src/Modify_min.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_overview.txt b/doc/src/Modify_overview.txt index f9964d964b..cf94b40281 100644 --- a/doc/src/Modify_overview.txt +++ b/doc/src/Modify_overview.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_pair.txt b/doc/src/Modify_pair.txt index 8c234dc621..0ebf2daa30 100644 --- a/doc/src/Modify_pair.txt +++ b/doc/src/Modify_pair.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_region.txt b/doc/src/Modify_region.txt index 9fbf359292..cdf192323a 100644 --- a/doc/src/Modify_region.txt +++ b/doc/src/Modify_region.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_thermo.txt b/doc/src/Modify_thermo.txt index 001a9f99e1..1772bae87a 100644 --- a/doc/src/Modify_thermo.txt +++ b/doc/src/Modify_thermo.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Modify_variable.txt b/doc/src/Modify_variable.txt index 3c5b29cd1a..b163272f3e 100644 --- a/doc/src/Modify_variable.txt +++ b/doc/src/Modify_variable.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Packages.txt b/doc/src/Packages.txt new file mode 100644 index 0000000000..a7f45a99b7 --- /dev/null +++ b/doc/src/Packages.txt @@ -0,0 +1,39 @@ +"Previous Section"_Commands.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Speed.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +Optional packages :h2 + +This section gives an overview of the optional packages that extend +LAMMPS functionality. Packages are groups of files that enable a +specific set of features. For example, force fields for molecular +systems or rigid-body constraint are in packages. You can see the +list of all packages and "make" commands to manage them by typing +"make package" from within the src directory of the LAMMPS +distribution. "Section 2.3"_Section_start.html#start_3 gives general +info on how to install and un-install packages as part of the LAMMPS +build process. + + + + + +"Standard packages"_Packages_standard.html +"User packages"_Packages_user.html +"Details on each package"_Packages_details.html :ul + + diff --git a/doc/src/Section_packages.txt b/doc/src/Packages_details.txt similarity index 85% rename from doc/src/Section_packages.txt rename to doc/src/Packages_details.txt index 340a77310d..eb92fe4dc4 100644 --- a/doc/src/Section_packages.txt +++ b/doc/src/Packages_details.txt @@ -1,159 +1,96 @@ -"Previous Section"_Section_commands.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_accelerate.html :c +"Higher level section"_Packages.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line -4. Packages :h2 +Package details :h3 -This section gives an overview of the optional packages that extend -LAMMPS functionality with instructions on how to build LAMMPS with -each of them. Packages are groups of files that enable a specific set -of features. For example, force fields for molecular systems or -granular systems are in packages. You can see the list of all -packages and "make" commands to manage them by typing "make package" -from within the src directory of the LAMMPS distribution. "Section -2.3"_Section_start.html#start_3 gives general info on how to install -and un-install packages as part of the LAMMPS build process. - -There are two kinds of packages in LAMMPS, standard and user packages: - -"Table of standard packages"_#table_standard -"Table of user packages"_#table_user :ul - -Either of these kinds of packages may work as is, may require some -additional code compiled located in the lib folder, or may require -an external library to be downloaded, compiled, installed, and LAMMPS -configured to know about its location and additional compiler flags. -You can often do the build of the internal or external libraries -in one step by typing "make lib-name args='...'" from the src dir, -with appropriate arguments included in args='...'. If you just type -"make lib-name" you should see a help message about supported flags -and some examples. For more details about this, please study the -tables below and the sections about the individual packages. - -Standard packages are supported by the LAMMPS developers and are -written in a syntax and style consistent with the rest of LAMMPS. -This means the developers will answer questions about them, debug and -fix them if necessary, and keep them compatible with future changes to -LAMMPS. - -User packages have been contributed by users, and begin with the -"user" prefix. If they are a single command (single file), they are -typically in the user-misc package. User packages don't necessarily -meet the requirements of the standard packages. This means the -developers will try to keep things working and usually can answer -technical questions about compiling the package. If you have problems -using a feature provided in a user package, you may need to contact -the contributor directly to get help. Information on how to submit -additions you make to LAMMPS as single files or as a standard or user -package are given in the "Modify contribute"_Modify.html doc page. - -Following the next two tables is a sub-section for each package. It -lists authors (if applicable) and summarizes the package contents. It -has specific instructions on how to install the package, including (if -necessary) downloading or building any extra library it requires. It -also gives links to documentation, example scripts, and -pictures/movies (if available) that illustrate use of the package. +Here is a brief description of all the standard and user packages in +LAMMPS. It lists authors (if applicable) and summarizes the package +contents. It has specific instructions on how to install the package, +including, if necessary, info on how to download or build any extra +library it requires. It also gives links to documentation, example +scripts, and pictures/movies (if available) that illustrate use of the +package. NOTE: To see the complete list of commands a package adds to LAMMPS, -just look at the files in its src directory, e.g. "ls src/GRANULAR". -Files with names that start with fix, compute, atom, pair, bond, -angle, etc correspond to commands with the same style names. +you can examine the files in its src directory, e.g. "ls +src/GRANULAR". Files with names that start with fix, compute, atom, +pair, bond, angle, etc correspond to commands with the same style name +as contained in the file name. -In these two tables, the "Example" column is a sub-directory in the -examples directory of the distribution which has an input script that -uses the package. E.g. "peptide" refers to the examples/peptide -directory; USER/atc refers to the examples/USER/atc directory. The -"Library" column indicates whether an extra library is needed to build -and use the package: +"ASPHERE"_#ASPHERE, +"BODY"_#BODY, +"CLASS2"_#CLASS2, +"COLLOID"_#COLLOID, +"COMPRESS"_#COMPRESS, +"CORESHELL"_#CORESHELL, +"DIPOLE"_#DIPOLE, +"GPU"_#GPU, +"GRANULAR"_#GRANULAR, +"KIM"_#KIM, +"KOKKOS"_#KOKKOS, +"KSPACE"_#KSPACE, +"LATTE"_#LATTE, +"MANYBODY"_#MANYBODY, +"MC"_#MC, +"MEAM"_#MEAM, +"MISC"_#MISC, +"MOLECULE"_#MOLECULE, +"MPIIO"_#MPIIO, +"MSCG"_#MSCG, +"OPT"_#OPT, +"PERI"_#PERI, +"POEMS"_#POEMS, +"PYTHON"_#PYTHON, +"QEQ"_#QEQ, +"REAX"_#REAX, +"REPLICA"_#REPLICA, +"RIGID"_#RIGID, +"SHOCK"_#SHOCK, +"SNAP"_#SNAP, +"SPIN"_#SPIN, +"SRD"_#SRD, +"VORONOI"_#VORONOI :tb(c=6,ea=c) -dash = no library -sys = system library: you likely have it on your machine -int = internal library: provided with LAMMPS, but you may need to build it -ext = external library: you will need to download and install it on your machine :ul - -:line -:line - -[Standard packages] :link(table_standard),p - -Package, Description, Doc page, Example, Library -"ASPHERE"_#ASPHERE, aspherical particle models, "Section 6.6.14"_Section_howto.html#howto_14, ellipse, - -"BODY"_#BODY, body-style particles, "body"_body.html, body, - -"CLASS2"_#CLASS2, class 2 force fields, "pair_style lj/class2"_pair_class2.html, -, - -"COLLOID"_#COLLOID, colloidal particles, "atom_style colloid"_atom_style.html, colloid, - -"COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys -"CORESHELL"_#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, - -"DIPOLE"_#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, - -"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int -"GRANULAR"_#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, - -"KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext -"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, - -"LATTE"_#LATTE, quantum DFTB forces via LATTE, "fix latte"_fix_latte.html, latte, ext -"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, - -"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, - -"MEAM"_#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int -"MISC"_#MISC, miscellanous single-file commands, -, -, - -"MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, - -"MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, - -"MSCG"_#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext -"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, - -"POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int -"PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys -"QEQ"_#QEQ, QEq charge equilibration, "fix qeq"_fix_qeq.html, qeq, - -"REAX"_#REAX, ReaxFF potential (Fortran), "pair_style reax"_pair_reax.html, reax, int -"REPLICA"_#REPLICA, multi-replica methods, "Section 6.6.5"_Section_howto.html#howto_5, tad, - -"RIGID"_#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, - -"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, - -"SNAP"_#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, - -"SPIN"_#SPIN, magnetic atomic spin dynamics, "Section 6.6.28"_Section_howto.html#howto_28, SPIN, - -"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - -"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l) - -[USER packages] :link(table_user),p - -Package, Description, Doc page, Example, Library -"USER-ATC"_#USER-ATC, atom-to-continuum coupling, "fix atc"_fix_atc.html, USER/atc, int -"USER-AWPMD"_#USER-AWPMD, wave-packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int -"USER-BOCS"_#USER-BOCS, BOCS bottom up coarse graining, "fix bocs"_fix_bocs.html, USER/bocs, - -"USER-CGDNA"_#USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, - -"USER-CGSDK"_#USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, - -"USER-COLVARS"_#USER-COLVARS, collective variables library, "fix colvars"_fix_colvars.html, USER/colvars, int -"USER-DIFFRACTION"_#USER-DIFFRACTION, virtual x-ray and electron diffraction,"compute xrd"_compute_xrd.html, USER/diffraction, - -"USER-DPD"_#USER-DPD, reactive dissipative particle dynamics, src/USER-DPD/README, USER/dpd, - -"USER-DRUDE"_#USER-DRUDE, Drude oscillators, "tutorial"_tutorial_drude.html, USER/drude, - -"USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, - -"USER-FEP"_#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, - -"USER-H5MD"_#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext -"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, - -"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, - -"USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, - -"USER-MESO"_#USER-MESO, mesoscale DPD models, "pair_style edpd"_pair_meso.html, USER/meso, - -"USER-MGPT"_#USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, - -"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, - -"USER-MOFFF"_#USER-MOFFF, styles for "MOF-FF"_MOFplus force field, "pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html, USER/mofff, - -"USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext -"USER-NETCDF"_#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext -"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"USER-PHONON"_#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, - -"USER-QMMM"_#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext -"USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, - -"USER-QUIP"_#USER-QUIP, QUIP/libatoms interface,"pair_style quip"_pair_quip.html, USER/quip, ext -"USER-REAXC"_#USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, - -"USER-SMD"_#USER-SMD, smoothed Mach dynamics,"SMD User Guide"_PDF/SMD_LAMMPS_userguide.pdf, USER/smd, ext -"USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, - -"USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, - -"USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, - -"USER-UEF"_#USER-UEF, extensional flow,"fix nvt/uef"_fix_nh_uef.html, USER/uef, - -"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l) +"USER-ATC"_#USER-ATC, +"USER-AWPMD"_#USER-AWPMD, +"USER-BOCS"_#USER-BOCS, +"USER-CGDNA"_#USER-CGDNA, +"USER-CGSDK"_#USER-CGSDK, +"USER-COLVARS"_#USER-COLVARS, +"USER-DIFFRACTION"_#USER-DIFFRACTION, +"USER-DPD"_#USER-DPD, +"USER-DRUDE"_#USER-DRUDE, +"USER-EFF"_#USER-EFF, +"USER-FEP"_#USER-FEP, +"USER-H5MD"_#USER-H5MD, +"USER-INTEL"_#USER-INTEL, +"USER-LB"_#USER-LB, +"USER-MANIFOLD"_#USER-MANIFOLD, +"USER-MEAMC"_#USER-MEAMC, +"USER-MESO"_#USER-MESO, +"USER-MGPT"_#USER-MGPT, +"USER-MISC"_#USER-MISC, +"USER-MOFFF"_#USER-MOFFF, +"USER-MOLFILE"_#USER-MOLFILE, +"USER-NETCDF"_#USER-NETCDF, +"USER-OMP"_#USER-OMP, +"USER-PHONON"_#USER-PHONON, +"USER-QMMM"_#USER-QMMM, +"USER-QTB"_#USER-QTB, +"USER-QUIP"_#USER-QUIP, +"USER-REAXC"_#USER-REAXC, +"USER-SMD"_#USER-SMD, +"USER-SMTBQ"_#USER-SMTBQ, +"USER-SPH"_#USER-SPH, +"USER-TALLY"_#USER-TALLY, +"USER-UEF"_#USER-UEF, +"USER-VTK"_#USER-VTK :tb(c=6,ea=c) :line :line @@ -176,7 +113,7 @@ make machine :pre [Supporting info:] src/ASPHERE: filenames -> commands -"Section 6.14"_Section_howto.html#howto_14 +"Howto spherical"_Howto_spherical.html "pair_style gayberne"_pair_gayberne.html "pair_style resquared"_pair_resquared.html "doc/PDF/pair_gayberne_extra.pdf"_PDF/pair_gayberne_extra.pdf @@ -194,7 +131,8 @@ BODY package :link(BODY),h4 Body-style particles with internal structure. Computes, time-integration fixes, pair styles, as well as the body styles -themselves. See the "body"_body.html doc page for an overview. +themselves. See the "Howto body"_Howto_body.html doc page for an +overview. [Install or un-install:] @@ -207,10 +145,10 @@ make machine :pre [Supporting info:] src/BODY filenames -> commands -"body"_body.html +"Howto_body"_Howto_body.html "atom_style body"_atom_style.html "fix nve/body"_fix_nve_body.html -"pair_style body"_pair_body.html +"pair_style body/nparticle"_pair_body_nparticle.html examples/body :ul :line @@ -322,9 +260,9 @@ Compute and pair styles that implement the adiabatic core/shell model for polarizability. The pair styles augment Born, Buckingham, and Lennard-Jones styles with core/shell capabilities. The "compute temp/cs"_compute_temp_cs.html command calculates the temperature of a -system with core/shell particles. See "Section -6.26"_Section_howto.html#howto_26 for an overview of how to use this -package. +system with core/shell particles. See the "Howto +coreshell"_Howto_coreshell.html doc page for an overview of how to use +this package. [Author:] Hendrik Heenen (Technical U of Munich). @@ -339,8 +277,8 @@ make machine :pre [Supporting info:] src/CORESHELL: filenames -> commands -"Section 6.26"_Section_howto.html#howto_26 -"Section 6.25"_Section_howto.html#howto_25 +"Howto coreshell"_Howto_coreshell.html +"Howto polarizable"_Howto_polarizable.html "compute temp/cs"_compute_temp_cs.html "pair_style born/coul/long/cs"_pair_cs.html "pair_style buck/coul/long/cs"_pair_cs.html @@ -380,14 +318,14 @@ GPU package :link(GPU),h4 [Contents:] Dozens of pair styles and a version of the PPPM long-range Coulombic -solver optimized for GPUs. All such styles have a "gpu" as a -suffix in their style name. The GPU code can be compiled with either -CUDA or OpenCL, however the OpenCL variants are no longer actively -maintained and only the CUDA versions are regularly tested. -"Section 5.3.1"_accelerate_gpu.html gives details of what -hardware and GPU software is required on your system, -and details on how to build and use this package. Its styles can be -invoked at run time via the "-sf gpu" or "-suffix gpu" "command-line +solver optimized for GPUs. All such styles have a "gpu" as a suffix +in their style name. The GPU code can be compiled with either CUDA or +OpenCL, however the OpenCL variants are no longer actively maintained +and only the CUDA versions are regularly tested. The "Speed +gpu"_Speed_gpu.html doc page gives details of what hardware and GPU +software is required on your system, and details on how to build and +use this package. Its styles can be invoked at run time via the "-sf +gpu" or "-suffix gpu" "command-line switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS package, which has GPU-enabled styles. @@ -453,12 +391,12 @@ GPU library. src/GPU: filenames -> commands src/GPU/README lib/gpu/README -"Section 5.3"_Section_accelerate.html#acc_3 -"Section 5.3.1"_accelerate_gpu.html +"Speed packages"_Speed_packages.html +"Speed gpu"_Speed_gpu.html.html "Section 2.6 -sf gpu"_Section_start.html#start_6 "Section 2.6 -pk gpu"_Section_start.html#start_6 "package gpu"_package.html -Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (g) +"Commands all"_Commands_all.html pages (pair,kspace) for styles followed by (g) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line @@ -482,7 +420,7 @@ make machine :pre [Supporting info:] src/GRANULAR: filenames -> commands -"Section 6.6"_Section_howto.html#howto_6, +"Howto granular"_Howto_granular.html "fix pour"_fix_pour.html "fix wall/gran"_fix_wall_gran.html "pair_style gran/hooke"_pair_gran.html @@ -549,8 +487,8 @@ See the list of all KIM models here: https://openkim.org/kim-items/models/by-model-drivers See the list of example KIM models included by default here: -https://openkim.org/kim-api in the "What is in the KIM API source -package?" section +https://openkim.org/kim-api on the "What is in the KIM API source +package?" page. You can then install/un-install the package and build LAMMPS in the usual manner: @@ -579,10 +517,10 @@ Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute styles adapted to compile using the Kokkos library which can convert them to OpenMP or CUDA code so that they run efficiently on multicore CPUs, KNLs, or GPUs. All the styles have a "kk" as a suffix in their -style name. "Section 5.3.3"_accelerate_kokkos.html gives details of -what hardware and software is required on your system, and how to -build and use this package. Its styles can be invoked at run time via -the "-sf kk" or "-suffix kk" "command-line +style name. The "Speed kokkos"_Speed_kokkos.html doc page gives +details of what hardware and software is required on your system, and +how to build and use this package. Its styles can be invoked at run +time via the "-sf kk" or "-suffix kk" "command-line switches"_Section_start.html#start_6. Also see the "GPU"_#GPU, "OPT"_#OPT, "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP packages, which have styles optimized for CPUs, KNLs, and GPUs. @@ -649,13 +587,13 @@ make machine :pre src/KOKKOS: filenames -> commands src/KOKKOS/README lib/kokkos/README -"Section 5.3"_Section_accelerate.html#acc_3 -"Section 5.3.3"_accelerate_kokkos.html +"Speed packages"_Speed_packages.html +"Speed kokkos"_Speed_kokkos.html "Section 2.6 -k on ..."_Section_start.html#start_6 "Section 2.6 -sf kk"_Section_start.html#start_6 "Section 2.6 -pk kokkos"_Section_start.html#start_6 "package kokkos"_package.html -Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (k) +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (k) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line @@ -689,11 +627,11 @@ make machine :pre src/KSPACE: filenames -> commands "kspace_style"_kspace_style.html "doc/PDF/kspace.pdf"_PDF/kspace.pdf -"Section 6.7"_Section_howto.html#howto_7 -"Section 6.8"_Section_howto.html#howto_8 -"Section 6.9"_Section_howto.html#howto_9 +"Howto tip3p"_Howto_tip3p.html +"Howto tip4p"_Howto_tip4p.html +"Howto spc"_Howto_spc.html "pair_style coul"_pair_coul.html -Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 with "long" or "msm" in pair style name +"Commands pair"_Commands_pair.html page for styles with "long" or "msm" in name examples/peptide bench/in.rhodo :ul @@ -777,7 +715,7 @@ make machine :pre [Supporting info:] src/MANYBODY: filenames -> commands -Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 +"Commands pair"_Commands_pair.html page examples/comb examples/eim examples/nb3d @@ -940,7 +878,7 @@ src/MOLECULE: filenames -> commands "improper_style"_improper_style.html "pair_style hbond/dreiding/lj"_pair_hbond_dreiding.html "pair_style lj/charmm/coul/charmm"_pair_charmm.html -"Section 6.3"_Section_howto.html#howto_3 +"Howto bioFF"_Howto_bioFF.html examples/cmap examples/dreiding examples/micelle, @@ -1048,9 +986,9 @@ OPT package :link(OPT),h4 A handful of pair styles which are optimized for improved CPU performance on single or multiple cores. These include EAM, LJ, CHARMM, and Morse potentials. The styles have an "opt" suffix in -their style name. "Section 5.3.5"_accelerate_opt.html gives details -of how to build and use this package. Its styles can be invoked at -run time via the "-sf opt" or "-suffix opt" "command-line +their style name. The "Speed opt"_Speed_opt.html doc page gives +details of how to build and use this package. Its styles can be +invoked at run time via the "-sf opt" or "-suffix opt" "command-line switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS, "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP packages, which have styles optimized for CPU performance. @@ -1076,10 +1014,10 @@ CCFLAGS: add -restrict for Intel compilers :ul [Supporting info:] src/OPT: filenames -> commands -"Section 5.3"_Section_accelerate.html#acc_3 -"Section 5.3.5"_accelerate_opt.html +"Speed packages"_Speed_packages.html +"Speed opt"_Speed_opt.html "Section 2.6 -sf opt"_Section_start.html#start_6 -Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (t) +"Commands pair"_Commands_pair.html for styles followed by (t) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line @@ -1180,8 +1118,8 @@ A "python"_python.html command which allow you to execute Python code from a LAMMPS input script. The code can be in a separate file or embedded in the input script itself. See the "Python call"_Python_call.html doc page for an overview of using Python from -LAMMPS in this manner and the "Python"_Python.html doc page for other -ways to use LAMMPS and Python together. +LAMMPS in this manner and all the "Python"_Python.html doc pages for +other ways to use LAMMPS and Python together. [Install or un-install:] @@ -1202,7 +1140,7 @@ to Makefile.lammps) if the LAMMPS build fails. [Supporting info:] src/PYTHON: filenames -> commands -"Python call"_Python_call.html +"Python call"_Python.html lib/python/README examples/python :ul @@ -1292,8 +1230,8 @@ REPLICA package :link(REPLICA),h4 [Contents:] A collection of multi-replica methods which can be used when running -multiple LAMMPS simulations (replicas). See "Section -6.5"_Section_howto.html#howto_5 for an overview of how to run +multiple LAMMPS simulations (replicas). See the "Howto +replica"_Howto_replica.html doc page for an overview of how to run multi-replica simulations in LAMMPS. Methods in the package include nudged elastic band (NEB), parallel replica dynamics (PRD), temperature accelerated dynamics (TAD), parallel tempering, and a @@ -1312,7 +1250,7 @@ make machine :pre [Supporting info:] src/REPLICA: filenames -> commands -"Section 6.5"_Section_howto.html#howto_5 +"Howto replica"_Howto_replica.html "neb"_neb.html "prd"_prd.html "tad"_tad.html @@ -1435,7 +1373,7 @@ make machine :pre [Supporting info:] src/SPIN: filenames -> commands -"Section 6.28"_Section_howto.html#howto_28 +"Howto spin"_Howto_spin.html "pair_style spin/dmi"_pair_spin_dmi.html "pair_style spin/exchange"_pair_spin_exchange.html "pair_style spin/magelec"_pair_spin_magelec.html @@ -1894,10 +1832,10 @@ USER-DRUDE package :link(USER-DRUDE),h4 [Contents:] Fixes, pair styles, and a compute to simulate thermalized Drude -oscillators as a model of polarization. See "Section -6.27"_Section_howto.html#howto_27 for an overview of how to use the -package. There are auxiliary tools for using this package in -tools/drude. +oscillators as a model of polarization. See the "Howto +drude"_Howto_drude.html and "Howto drude2"_Howto_drude2.html doc pages +for an overview of how to use the package. There are auxiliary tools +for using this package in tools/drude. [Authors:] Alain Dequidt (U Blaise Pascal Clermont-Ferrand), Julien Devemy (CNRS), and Agilio Padua (U Blaise Pascal). @@ -1913,8 +1851,9 @@ make machine :pre [Supporting info:] src/USER-DRUDE: filenames -> commands -"Section 6.27"_Section_howto.html#howto_27 -"Section 6.25"_Section_howto.html#howto_25 +"Howto drude"_Howto_drude.html +"Howto drude2"_Howto_drude2.html +"Howto polarizable"_Howto_polarizable.html src/USER-DRUDE/README "fix drude"_fix_drude.html "fix drude/transform/*"_fix_drude_transform.html @@ -2065,8 +2004,8 @@ USER-INTEL package :link(USER-INTEL),h4 Dozens of pair, fix, bond, angle, dihedral, improper, and kspace styles which are optimized for Intel CPUs and KNLs (Knights Landing). -All of them have an "intel" in their style name. "Section -5.3.2"_accelerate_intel.html gives details of what hardware and +All of them have an "intel" in their style name. The "Speed +intel"_Speed_intel.html doc page gives details of what hardware and compilers are required on your system, and how to build and use this package. Its styles can be invoked at run time via the "-sf intel" or "-suffix intel" "command-line switches"_Section_start.html#start_6. @@ -2116,7 +2055,7 @@ hardware target, to produce a separate executable. You should also typically install the USER-OMP package, as it can be used in tandem with the USER-INTEL package to good effect, as -explained in "Section 5.3.2"_accelerate_intel.html. +explained on the "Speed intel"_Speed_intel.html doc page. make yes-user-intel yes-user-omp make machine :pre @@ -2128,12 +2067,12 @@ make machine :pre src/USER-INTEL: filenames -> commands src/USER-INTEL/README -"Section 5.3"_Section_accelerate.html#acc_3 -"Section 5.3.2"_accelerate_gpu.html +"Speed packages"_Speed_packages.html +"Speed intel"_Speed_intel.html "Section 2.6 -sf intel"_Section_start.html#start_6 "Section 2.6 -pk intel"_Section_start.html#start_6 "package intel"_package.html -Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (i) +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (i) src/USER-INTEL/TEST "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul @@ -2254,7 +2193,7 @@ make machine :pre src/USER-MANIFOLD: filenames -> commands src/USER-MANIFOLD/README -"doc/manifolds"_manifolds.html +"Howto manifold"_Howto_manifold.html "fix manifoldforce"_fix_manifoldforce.html "fix nve/manifold/rattle"_fix_nve_manifold_rattle.html "fix nvt/manifold/rattle"_fix_nvt_manifold_rattle.html @@ -2475,10 +2414,10 @@ USER-OMP package :link(USER-OMP),h4 Hundreds of pair, fix, compute, bond, angle, dihedral, improper, and kspace styles which are altered to enable threading on many-core CPUs via OpenMP directives. All of them have an "omp" in their style name. -"Section 5.3.4"_accelerate_omp.html gives details of what hardware and -compilers are required on your system, and how to build and use this -package. Its styles can be invoked at run time via the "-sf omp" or -"-suffix omp" "command-line switches"_Section_start.html#start_6. +The "Speed omp"_Speed_omp.html doc page gives details of what hardware +and compilers are required on your system, and how to build and use +this package. Its styles can be invoked at run time via the "-sf omp" +or "-suffix omp" "command-line switches"_Section_start.html#start_6. Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-INTEL"_#USER-INTEL packages, which have styles optimized for CPUs. @@ -2513,12 +2452,12 @@ LINKFLAGS: add -fopenmp :ul src/USER-OMP: filenames -> commands src/USER-OMP/README -"Section 5.3"_Section_accelerate.html#acc_3 -"Section 5.3.4"_accelerate_omp.html +"Speed packages"_Speed_packages.html +"Speed omp"_Speed_omp.html "Section 2.6 -sf omp"_Section_start.html#start_6 "Section 2.6 -pk omp"_Section_start.html#start_6 "package omp"_package.html -Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (o) +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (o) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line diff --git a/doc/src/Packages_standard.txt b/doc/src/Packages_standard.txt new file mode 100644 index 0000000000..7e64345602 --- /dev/null +++ b/doc/src/Packages_standard.txt @@ -0,0 +1,65 @@ +"Higher level section"_Packages.html - "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 + +Standard packages :h3 + +This is the list of standard packages in LAMMPS. The link for each +package name gives more details. + +Standard packages are supported by the LAMMPS developers and are +written in a syntax and style consistent with the rest of LAMMPS. +This means the developers will answer questions about them, debug and +fix them if necessary, and keep them compatible with future changes to +LAMMPS. + +The "Example" column is a sub-directory in the examples directory of +the distribution which has an input script that uses the package. +E.g. "peptide" refers to the examples/peptide directory; USER/atc +refers to the examples/USER/atc directory. The "Library" column +indicates whether an extra library is needed to build and use the +package: + +dash = no library +sys = system library: you likely have it on your machine +int = internal library: provided with LAMMPS, but you may need to build it +ext = external library: you will need to download and install it on your machine :ul + +Package, Description, Doc page, Example, Library +"ASPHERE"_Packages_details.html#ASPHERE, aspherical particle models, "Howto spherical"_Howto_spherical.html, ellipse, - +"BODY"_Packages_details.html#BODY, body-style particles, "Howto body"_Howto_body.html, body, - +"CLASS2"_Packages_details.html#CLASS2, class 2 force fields, "pair_style lj/class2"_pair_class2.html, -, - +"COLLOID"_Packages_details.html#COLLOID, colloidal particles, "atom_style colloid"_atom_style.html, colloid, - +"COMPRESS"_Packages_details.html#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys +"CORESHELL"_Packages_details.html#CORESHELL, adiabatic core/shell model, "Howto coreshell"_Howto_coreshell.html, coreshell, - +"DIPOLE"_Packages_details.html#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, - +"GPU"_Packages_details.html#GPU, GPU-enabled styles, "Section gpu"_Speed_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int +"GRANULAR"_Packages_details.html#GRANULAR, granular systems, "Howto granular"_Howto_granular.html, pour, - +"KIM"_Packages_details.html#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext +"KOKKOS"_Packages_details.html#KOKKOS, Kokkos-enabled styles, "Speed kokkos"_Speed_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - +"KSPACE"_Packages_details.html#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, - +"LATTE"_Packages_details.html#LATTE, quantum DFTB forces via LATTE, "fix latte"_fix_latte.html, latte, ext +"MANYBODY"_Packages_details.html#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, - +"MC"_Packages_details.html#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, - +"MEAM"_Packages_details.html#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int +"MISC"_Packages_details.html#MISC, miscellanous single-file commands, -, -, - +"MOLECULE"_Packages_details.html#MOLECULE, molecular system force fields, "Howto bioFF"_Howto_bioFF.html, peptide, - +"MPIIO"_Packages_details.html#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, - +"MSCG"_Packages_details.html#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext +"OPT"_Packages_details.html#OPT, optimized pair styles, "Speed opt"_Speed_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - +"PERI"_Packages_details.html#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, - +"POEMS"_Packages_details.html#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int +"PYTHON"_Packages_details.html#PYTHON, embed Python code in an input script, "python"_python.html, python, sys +"QEQ"_Packages_details.html#QEQ, QEq charge equilibration, "fix qeq"_fix_qeq.html, qeq, - +"REAX"_Packages_details.html#REAX, ReaxFF potential (Fortran), "pair_style reax"_pair_reax.html, reax, int +"REPLICA"_Packages_details.html#REPLICA, multi-replica methods, "Howto replica"_Howto_replica.html, tad, - +"RIGID"_Packages_details.html#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, - +"SHOCK"_Packages_details.html#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, - +"SNAP"_Packages_details.html#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, - +"SPIN"_#SPIN, magnetic atomic spin dynamics, "Howto spin"_Howto_spin.html, SPIN, -"SRD"_Packages_details.html#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - +"VORONOI"_Packages_details.html#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l) diff --git a/doc/src/Packages_user.txt b/doc/src/Packages_user.txt new file mode 100644 index 0000000000..c8728148f9 --- /dev/null +++ b/doc/src/Packages_user.txt @@ -0,0 +1,74 @@ +"Higher level section"_Packages.html - "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 + +User packages :h3 + +This is a list of user packages in LAMMPS. The link for each package +name gives more details. + +User packages have been contributed by users, and begin with the +"user" prefix. If a contribution is a single command (single file), +it is typically in the user-misc package. User packages don't +necessarily meet the requirements of the "standard +packages"_Packages_standard.html. This means the developers will try +to keep things working and usually can answer technical questions +about compiling the package. If you have problems using a specific +feature provided in a user package, you may need to contact the +contributor directly to get help. Information on how to submit +additions you make to LAMMPS as single files or as a standard or user +package is explained on the "Modify contribute"_Modify_contribute.html +doc page. + +The "Example" column is a sub-directory in the examples directory of +the distribution which has an input script that uses the package. +E.g. "peptide" refers to the examples/peptide directory; USER/atc +refers to the examples/USER/atc directory. The "Library" column +indicates whether an extra library is needed to build and use the +package: + +dash = no library +sys = system library: you likely have it on your machine +int = internal library: provided with LAMMPS, but you may need to build it +ext = external library: you will need to download and install it on your machine :ul + +Package, Description, Doc page, Example, Library +"USER-ATC"_Packages_details.html#USER-ATC, atom-to-continuum coupling, "fix atc"_fix_atc.html, USER/atc, int +"USER-AWPMD"_Packages_details.html#USER-AWPMD, wave-packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int +"USER-BOCS"_Packages_details.html#USER-BOCS, BOCS bottom up coarse graining, "fix bocs"_fix_bocs.html, USER/bocs, - +"USER-CGDNA"_Packages_details.html#USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, - +"USER-CGSDK"_Packages_details.html#USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, - +"USER-COLVARS"_Packages_details.html#USER-COLVARS, collective variables library, "fix colvars"_fix_colvars.html, USER/colvars, int +"USER-DIFFRACTION"_Packages_details.html#USER-DIFFRACTION, virtual x-ray and electron diffraction,"compute xrd"_compute_xrd.html, USER/diffraction, - +"USER-DPD"_Packages_details.html#USER-DPD, reactive dissipative particle dynamics, src/USER-DPD/README, USER/dpd, - +"USER-DRUDE"_Packages_details.html#USER-DRUDE, Drude oscillators, "Howto drude"_Howto_drude.html, USER/drude, - +"USER-EFF"_Packages_details.html#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, - +"USER-FEP"_Packages_details.html#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, - +"USER-H5MD"_Packages_details.html#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext +"USER-INTEL"_Packages_details.html#USER-INTEL, optimized Intel CPU and KNL styles,"Speed intel"_Speed_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - +"USER-LB"_Packages_details.html#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, - +"USER-MANIFOLD"_Packages_details.html#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, - +"USER-MEAMC"_Packages_details.html#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, - +"USER-MESO"_Packages_details.html#USER-MESO, mesoscale DPD models, "pair_style edpd"_pair_meso.html, USER/meso, - +"USER-MGPT"_Packages_details.html#USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, - +"USER-MISC"_Packages_details.html#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, - +"USER-MOFFF"_Packages_details.html#USER-MOFFF, styles for "MOF-FF"_MOFplus force field, "pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html, USER/mofff, - +"USER-MOLFILE"_Packages_details.html#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext +"USER-NETCDF"_Packages_details.html#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext +"USER-OMP"_Packages_details.html#USER-OMP, OpenMP-enabled styles,"Speed omp"_Speed_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - +"USER-PHONON"_Packages_details.html#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, - +"USER-QMMM"_Packages_details.html#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext +"USER-QTB"_Packages_details.html#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, - +"USER-QUIP"_Packages_details.html#USER-QUIP, QUIP/libatoms interface,"pair_style quip"_pair_quip.html, USER/quip, ext +"USER-REAXC"_Packages_details.html#USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, - +"USER-SMD"_Packages_details.html#USER-SMD, smoothed Mach dynamics,"SMD User Guide"_PDF/SMD_LAMMPS_userguide.pdf, USER/smd, ext +"USER-SMTBQ"_Packages_details.html#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, - +"USER-SPH"_Packages_details.html#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, - +"USER-TALLY"_Packages_details.html#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, - +"USER-UEF"_Packages_details.html#USER-UEF, extensional flow,"fix nvt/uef"_fix_nh_uef.html, USER/uef, - +"USER-VTK"_Packages_details.html#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l) diff --git a/doc/src/Python.txt b/doc/src/Python.txt index 169670d669..2c9c6872bb 100644 --- a/doc/src/Python.txt +++ b/doc/src/Python.txt @@ -4,7 +4,7 @@ Section"_Errors.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_call.txt b/doc/src/Python_call.txt index 3e30a5a7c7..621f1fe241 100644 --- a/doc/src/Python_call.txt +++ b/doc/src/Python_call.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_examples.txt b/doc/src/Python_examples.txt index fbca381e8b..46e5fee2b9 100644 --- a/doc/src/Python_examples.txt +++ b/doc/src/Python_examples.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_install.txt b/doc/src/Python_install.txt index 631f6c4a7f..6591360ae2 100644 --- a/doc/src/Python_install.txt +++ b/doc/src/Python_install.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_library.txt b/doc/src/Python_library.txt index 4babbb746c..8d0c724a45 100644 --- a/doc/src/Python_library.txt +++ b/doc/src/Python_library.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -21,8 +21,8 @@ from lammps import lammps :pre These are the methods defined by the lammps module. If you look at the files src/library.cpp and src/library.h you will see they correspond one-to-one with calls you can make to the LAMMPS library -from a C++ or C or Fortran program, and which are described in -"Section 6.19"_Section_howto.html#howto_19 of the manual. +from a C++ or C or Fortran program, and which are described on the +"Howto library"_Howto_library.html doc page. The python/examples directory has Python scripts which show how Python can run LAMMPS, grab data, change it, and put it back into LAMMPS. @@ -165,11 +165,11 @@ subscripting. The one exception is that for a fix that calculates a global vector or array, a single double value from the vector or array is returned, indexed by I (vector) or I and J (array). I,J are zero-based indices. The I,J arguments can be left out if not needed. -See "Section 6.15"_Section_howto.html#howto_15 of the manual for a -discussion of global, per-atom, and local data, and of scalar, vector, -and array data types. See the doc pages for individual -"computes"_compute.html and "fixes"_fix.html for a description of what -they calculate and store. +See the "Howto output"_Howto_output.html doc page for a discussion of +global, per-atom, and local data, and of scalar, vector, and array +data types. See the doc pages for individual "computes"_compute.html +and "fixes"_fix.html for a description of what they calculate and +store. For extract_variable(), an "equal-style or atom-style variable"_variable.html is evaluated and its result returned. diff --git a/doc/src/Python_mpi.txt b/doc/src/Python_mpi.txt index 8377bbb3d0..6e0a2ce319 100644 --- a/doc/src/Python_mpi.txt +++ b/doc/src/Python_mpi.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_pylammps.txt b/doc/src/Python_pylammps.txt index ad5ed192ee..d7baa93e2e 100644 --- a/doc/src/Python_pylammps.txt +++ b/doc/src/Python_pylammps.txt @@ -3,12 +3,12 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line PyLammps interface :h3 PyLammps is a Python wrapper class which can be created on its own or -use an existing lammps Python object. It has its own "PyLammps -Tutorial"_tutorial_pylammps.html doc page. +use an existing lammps Python object. It has its own "Howto +pylammps"_Howto_pylammps.html doc page. diff --git a/doc/src/Python_run.txt b/doc/src/Python_run.txt index 03ab2ed3d7..a94dc07f2d 100644 --- a/doc/src/Python_run.txt +++ b/doc/src/Python_run.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_shlib.txt b/doc/src/Python_shlib.txt index 1aafbe2e84..1a921e4025 100644 --- a/doc/src/Python_shlib.txt +++ b/doc/src/Python_shlib.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Python_test.txt b/doc/src/Python_test.txt index 5f361a500b..4a05d5c468 100644 --- a/doc/src/Python_test.txt +++ b/doc/src/Python_test.txt @@ -3,7 +3,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/Section_accelerate.txt b/doc/src/Section_accelerate.txt deleted file mode 100644 index d5cbf77a84..0000000000 --- a/doc/src/Section_accelerate.txt +++ /dev/null @@ -1,391 +0,0 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_howto.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -5. Accelerating LAMMPS performance :h2 - -This section describes various methods for improving LAMMPS -performance for different classes of problems running on different -kinds of machines. - -There are two thrusts to the discussion that follows. The -first is using code options that implement alternate algorithms -that can speed-up a simulation. The second is to use one -of the several accelerator packages provided with LAMMPS that -contain code optimized for certain kinds of hardware, including -multi-core CPUs, GPUs, and Intel Xeon Phi coprocessors. - -5.1 "Measuring performance"_#acc_1 :ulb,l -5.2 "Algorithms and code options to boost performace"_#acc_2 :l -5.3 "Accelerator packages with optimized styles"_#acc_3 :l - 5.3.1 "GPU package"_accelerate_gpu.html :l - 5.3.2 "USER-INTEL package"_accelerate_intel.html :l - 5.3.3 "KOKKOS package"_accelerate_kokkos.html :l - 5.3.4 "USER-OMP package"_accelerate_omp.html :l - 5.3.5 "OPT package"_accelerate_opt.html :l -5.4 "Comparison of various accelerator packages"_#acc_4 :l -:ule - -The "Benchmark page"_http://lammps.sandia.gov/bench.html of the LAMMPS -web site gives performance results for the various accelerator -packages discussed in Section 5.2, for several of the standard LAMMPS -benchmark problems, as a function of problem size and number of -compute nodes, on different hardware platforms. - -:line -:line - -5.1 Measuring performance :h3,link(acc_1) - -Before trying to make your simulation run faster, you should -understand how it currently performs and where the bottlenecks are. - -The best way to do this is run the your system (actual number of -atoms) for a modest number of timesteps (say 100 steps) on several -different processor counts, including a single processor if possible. -Do this for an equilibrium version of your system, so that the -100-step timings are representative of a much longer run. There is -typically no need to run for 1000s of timesteps to get accurate -timings; you can simply extrapolate from short runs. - -For the set of runs, look at the timing data printed to the screen and -log file at the end of each LAMMPS run. "This -section"_Section_start.html#start_7 of the manual has an overview. - -Running on one (or a few processors) should give a good estimate of -the serial performance and what portions of the timestep are taking -the most time. Running the same problem on a few different processor -counts should give an estimate of parallel scalability. I.e. if the -simulation runs 16x faster on 16 processors, its 100% parallel -efficient; if it runs 8x faster on 16 processors, it's 50% efficient. - -The most important data to look at in the timing info is the timing -breakdown and relative percentages. For example, trying different -options for speeding up the long-range solvers will have little impact -if they only consume 10% of the run time. If the pairwise time is -dominating, you may want to look at GPU or OMP versions of the pair -style, as discussed below. Comparing how the percentages change as -you increase the processor count gives you a sense of how different -operations within the timestep are scaling. Note that if you are -running with a Kspace solver, there is additional output on the -breakdown of the Kspace time. For PPPM, this includes the fraction -spent on FFTs, which can be communication intensive. - -Another important detail in the timing info are the histograms of -atoms counts and neighbor counts. If these vary widely across -processors, you have a load-imbalance issue. This often results in -inaccurate relative timing data, because processors have to wait when -communication occurs for other processors to catch up. Thus the -reported times for "Communication" or "Other" may be higher than they -really are, due to load-imbalance. If this is an issue, you can -uncomment the MPI_Barrier() lines in src/timer.cpp, and recompile -LAMMPS, to obtain synchronized timings. - -:line - -5.2 General strategies :h3,link(acc_2) - -NOTE: this section 5.2 is still a work in progress - -Here is a list of general ideas for improving simulation performance. -Most of them are only applicable to certain models and certain -bottlenecks in the current performance, so let the timing data you -generate be your guide. It is hard, if not impossible, to predict how -much difference these options will make, since it is a function of -problem size, number of processors used, and your machine. There is -no substitute for identifying performance bottlenecks, and trying out -various options. - -rRESPA -2-FFT PPPM -Staggered PPPM -single vs double PPPM -partial charge PPPM -verlet/split run style -processor command for proc layout and numa layout -load-balancing: balance and fix balance :ul - -2-FFT PPPM, also called {analytic differentiation} or {ad} PPPM, uses -2 FFTs instead of the 4 FFTs used by the default {ik differentiation} -PPPM. However, 2-FFT PPPM also requires a slightly larger mesh size to -achieve the same accuracy as 4-FFT PPPM. For problems where the FFT -cost is the performance bottleneck (typically large problems running -on many processors), 2-FFT PPPM may be faster than 4-FFT PPPM. - -Staggered PPPM performs calculations using two different meshes, one -shifted slightly with respect to the other. This can reduce force -aliasing errors and increase the accuracy of the method, but also -doubles the amount of work required. For high relative accuracy, using -staggered PPPM allows one to half the mesh size in each dimension as -compared to regular PPPM, which can give around a 4x speedup in the -kspace time. However, for low relative accuracy, using staggered PPPM -gives little benefit and can be up to 2x slower in the kspace -time. For example, the rhodopsin benchmark was run on a single -processor, and results for kspace time vs. relative accuracy for the -different methods are shown in the figure below. For this system, -staggered PPPM (using ik differentiation) becomes useful when using a -relative accuracy of slightly greater than 1e-5 and above. - -:c,image(JPG/rhodo_staggered.jpg) - -NOTE: Using staggered PPPM may not give the same increase in accuracy -of energy and pressure as it does in forces, so some caution must be -used if energy and/or pressure are quantities of interest, such as -when using a barostat. - -:line - -5.3 Packages with optimized styles :h3,link(acc_3) - -Accelerated versions of various "pair_style"_pair_style.html, -"fixes"_fix.html, "computes"_compute.html, and other commands have -been added to LAMMPS, which will typically run faster than the -standard non-accelerated versions. Some require appropriate hardware -to be present on your system, e.g. GPUs or Intel Xeon Phi -coprocessors. - -All of these commands are in packages provided with LAMMPS. An -overview of packages is give in "Section -packages"_Section_packages.html. - -These are the accelerator packages -currently in LAMMPS, either as standard or user packages: - -"GPU Package"_accelerate_gpu.html : for NVIDIA GPUs as well as OpenCL support -"USER-INTEL Package"_accelerate_intel.html : for Intel CPUs and Intel Xeon Phi -"KOKKOS Package"_accelerate_kokkos.html : for Nvidia GPUs, Intel Xeon Phi, and OpenMP threading -"USER-OMP Package"_accelerate_omp.html : for OpenMP threading and generic CPU optimizations -"OPT Package"_accelerate_opt.html : generic CPU optimizations :tb(s=:) - - - -Inverting this list, LAMMPS currently has acceleration support for -three kinds of hardware, via the listed packages: - -Many-core CPUs : "USER-INTEL"_accelerate_intel.html, "KOKKOS"_accelerate_kokkos.html, "USER-OMP"_accelerate_omp.html, "OPT"_accelerate_opt.html packages -NVIDIA GPUs : "GPU"_accelerate_gpu.html, "KOKKOS"_accelerate_kokkos.html packages -Intel Phi : "USER-INTEL"_accelerate_intel.html, "KOKKOS"_accelerate_kokkos.html packages :tb(s=:) - -Which package is fastest for your hardware may depend on the size -problem you are running and what commands (accelerated and -non-accelerated) are invoked by your input script. While these doc -pages include performance guidelines, there is no substitute for -trying out the different packages appropriate to your hardware. - -Any accelerated style has the same name as the corresponding standard -style, except that a suffix is appended. Otherwise, the syntax for -the command that uses the style is identical, their functionality is -the same, and the numerical results it produces should also be the -same, except for precision and round-off effects. - -For example, all of these styles are accelerated variants of the -Lennard-Jones "pair_style lj/cut"_pair_lj.html: - -"pair_style lj/cut/gpu"_pair_lj.html -"pair_style lj/cut/intel"_pair_lj.html -"pair_style lj/cut/kk"_pair_lj.html -"pair_style lj/cut/omp"_pair_lj.html -"pair_style lj/cut/opt"_pair_lj.html :ul - -To see what accelerate styles are currently available, see -"Section 3.5"_Section_commands.html#cmd_5 of the manual. The -doc pages for individual commands (e.g. "pair lj/cut"_pair_lj.html or -"fix nve"_fix_nve.html) also list any accelerated variants available -for that style. - -To use an accelerator package in LAMMPS, and one or more of the styles -it provides, follow these general steps. Details vary from package to -package and are explained in the individual accelerator doc pages, -listed above: - -build the accelerator library | - only for GPU package | -install the accelerator package | - make yes-opt, make yes-user-intel, etc | -add compile/link flags to Makefile.machine in src/MAKE | - only for USER-INTEL, KOKKOS, USER-OMP, OPT packages | -re-build LAMMPS | - make machine | -prepare and test a regular LAMMPS simulation | - lmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script | -enable specific accelerator support via '-k on' "command-line switch"_Section_start.html#start_6, | - only needed for KOKKOS package | -set any needed options for the package via "-pk" "command-line switch"_Section_start.html#start_6 or "package"_package.html command, | - only if defaults need to be changed | -use accelerated styles in your input via "-sf" "command-line switch"_Section_start.html#start_6 or "suffix"_suffix.html command | lmp_machine -in in.script -sf gpu -:tb(c=2,s=|) - -Note that the first 4 steps can be done as a single command with -suitable make command invocations. This is discussed in "Section -4"_Section_packages.html of the manual, and its use is -illustrated in the individual accelerator sections. Typically these -steps only need to be done once, to create an executable that uses one -or more accelerator packages. - -The last 4 steps can all be done from the command-line when LAMMPS is -launched, without changing your input script, as illustrated in the -individual accelerator sections. Or you can add -"package"_package.html and "suffix"_suffix.html commands to your input -script. - -NOTE: With a few exceptions, you can build a single LAMMPS executable -with all its accelerator packages installed. Note however that the -USER-INTEL and KOKKOS packages require you to choose one of their -hardware options when building for a specific platform. I.e. CPU or -Phi option for the USER-INTEL package. Or the OpenMP, Cuda, or Phi -option for the KOKKOS package. - -These are the exceptions. You cannot build a single executable with: - -both the USER-INTEL Phi and KOKKOS Phi options -the USER-INTEL Phi or Kokkos Phi option, and the GPU package :ul - -See the examples/accelerate/README and make.list files for sample -Make.py commands that build LAMMPS with any or all of the accelerator -packages. As an example, here is a command that builds with all the -GPU related packages installed (GPU, KOKKOS with Cuda), including -settings to build the needed auxiliary GPU libraries for Kepler GPUs: - -Make.py -j 16 -p omp gpu kokkos -cc nvcc wrap=mpi \ - -gpu mode=double arch=35 -kokkos cuda arch=35 lib-all file mpi :pre - -The examples/accelerate directory also has input scripts that can be -used with all of the accelerator packages. See its README file for -details. - -Likewise, the bench directory has FERMI and KEPLER and PHI -sub-directories with Make.py commands and input scripts for using all -the accelerator packages on various machines. See the README files in -those dirs. - -As mentioned above, the "Benchmark -page"_http://lammps.sandia.gov/bench.html of the LAMMPS web site gives -performance results for the various accelerator packages for several -of the standard LAMMPS benchmark problems, as a function of problem -size and number of compute nodes, on different hardware platforms. - -Here is a brief summary of what the various packages provide. Details -are in the individual accelerator sections. - -Styles with a "gpu" suffix are part of the GPU package, and can be run -on NVIDIA GPUs. The speed-up on a GPU depends on a variety of -factors, discussed in the accelerator sections. :ulb,l - -Styles with an "intel" suffix are part of the USER-INTEL -package. These styles support vectorized single and mixed precision -calculations, in addition to full double precision. In extreme cases, -this can provide speedups over 3.5x on CPUs. The package also -supports acceleration in "offload" mode to Intel(R) Xeon Phi(TM) -coprocessors. This can result in additional speedup over 2x depending -on the hardware configuration. :l - -Styles with a "kk" suffix are part of the KOKKOS package, and can be -run using OpenMP on multicore CPUs, on an NVIDIA GPU, or on an Intel -Xeon Phi in "native" mode. The speed-up depends on a variety of -factors, as discussed on the KOKKOS accelerator page. :l - -Styles with an "omp" suffix are part of the USER-OMP package and allow -a pair-style to be run in multi-threaded mode using OpenMP. This can -be useful on nodes with high-core counts when using less MPI processes -than cores is advantageous, e.g. when running with PPPM so that FFTs -are run on fewer MPI processors or when the many MPI tasks would -overload the available bandwidth for communication. :l - -Styles with an "opt" suffix are part of the OPT package and typically -speed-up the pairwise calculations of your simulation by 5-25% on a -CPU. :l -:ule - -The individual accelerator package doc pages explain: - -what hardware and software the accelerated package requires -how to build LAMMPS with the accelerated package -how to run with the accelerated package either via command-line switches or modifying the input script -speed-ups to expect -guidelines for best performance -restrictions :ul - -:line - -5.4 Comparison of various accelerator packages :h3,link(acc_4) - -NOTE: this section still needs to be re-worked with additional KOKKOS -and USER-INTEL information. - -The next section compares and contrasts the various accelerator -options, since there are multiple ways to perform OpenMP threading, -run on GPUs, and run on Intel Xeon Phi coprocessors. - -All 3 of these packages accelerate a LAMMPS calculation using NVIDIA -hardware, but they do it in different ways. - -As a consequence, for a particular simulation on specific hardware, -one package may be faster than the other. We give guidelines below, -but the best way to determine which package is faster for your input -script is to try both of them on your machine. See the benchmarking -section below for examples where this has been done. - -[Guidelines for using each package optimally:] - -The GPU package allows you to assign multiple CPUs (cores) to a single -GPU (a common configuration for "hybrid" nodes that contain multicore -CPU(s) and GPU(s)) and works effectively in this mode. :ulb,l - -The GPU package moves per-atom data (coordinates, forces) -back-and-forth between the CPU and GPU every timestep. The -KOKKOS/CUDA package only does this on timesteps when a CPU calculation -is required (e.g. to invoke a fix or compute that is non-GPU-ized). -Hence, if you can formulate your input script to only use GPU-ized -fixes and computes, and avoid doing I/O too often (thermo output, dump -file snapshots, restart files), then the data transfer cost of the -KOKKOS/CUDA package can be very low, causing it to run faster than the -GPU package. :l - -The GPU package is often faster than the KOKKOS/CUDA package, if the -number of atoms per GPU is smaller. The crossover point, in terms of -atoms/GPU at which the KOKKOS/CUDA package becomes faster depends -strongly on the pair style. For example, for a simple Lennard Jones -system the crossover (in single precision) is often about 50K-100K -atoms per GPU. When performing double precision calculations the -crossover point can be significantly smaller. :l - -Both packages compute bonded interactions (bonds, angles, etc) on the -CPU. If the GPU package is running with several MPI processes -assigned to one GPU, the cost of computing the bonded interactions is -spread across more CPUs and hence the GPU package can run faster. :l - -When using the GPU package with multiple CPUs assigned to one GPU, its -performance depends to some extent on high bandwidth between the CPUs -and the GPU. Hence its performance is affected if full 16 PCIe lanes -are not available for each GPU. In HPC environments this can be the -case if S2050/70 servers are used, where two devices generally share -one PCIe 2.0 16x slot. Also many multi-GPU mainboards do not provide -full 16 lanes to each of the PCIe 2.0 16x slots. :l -:ule - -[Differences between the two packages:] - -The GPU package accelerates only pair force, neighbor list, and PPPM -calculations. :ulb,l - -The GPU package requires neighbor lists to be built on the CPU when using -exclusion lists, hybrid pair styles, or a triclinic simulation box. :l -:ule diff --git a/doc/src/Section_commands.txt b/doc/src/Section_commands.txt deleted file mode 100644 index 19301e9d01..0000000000 --- a/doc/src/Section_commands.txt +++ /dev/null @@ -1,1293 +0,0 @@ -"Previous Section"_Section_start.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_packages.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -3. Commands :h2 - -This section describes how a LAMMPS input script is formatted and the -input script commands used to define a LAMMPS simulation. - -3.1 "LAMMPS input script"_#cmd_1 -3.2 "Parsing rules"_#cmd_2 -3.3 "Input script structure"_#cmd_3 -3.4 "Commands listed by category"_#cmd_4 -3.5 "Commands listed alphabetically"_#cmd_5 :all(b) - -:line -:line - -3.1 LAMMPS input script :link(cmd_1),h4 - -LAMMPS executes by reading commands from a input script (text file), -one line at a time. When the input script ends, LAMMPS exits. Each -command causes LAMMPS to take some action. It may set an internal -variable, read in a file, or run a simulation. Most commands have -default settings, which means you only need to use the command if you -wish to change the default. - -In many cases, the ordering of commands in an input script is not -important. However the following rules apply: - -(1) LAMMPS does not read your entire input script and then perform a -simulation with all the settings. Rather, the input script is read -one line at a time and each command takes effect when it is read. -Thus this sequence of commands: - -timestep 0.5 -run 100 -run 100 :pre - -does something different than this sequence: - -run 100 -timestep 0.5 -run 100 :pre - -In the first case, the specified timestep (0.5 fmsec) is used for two -simulations of 100 timesteps each. In the 2nd case, the default -timestep (1.0 fmsec) is used for the 1st 100 step simulation and a 0.5 -fmsec timestep is used for the 2nd one. - -(2) Some commands are only valid when they follow other commands. For -example you cannot set the temperature of a group of atoms until atoms -have been defined and a group command is used to define which atoms -belong to the group. - -(3) Sometimes command B will use values that can be set by command A. -This means command A must precede command B in the input script if it -is to have the desired effect. For example, the -"read_data"_read_data.html command initializes the system by setting -up the simulation box and assigning atoms to processors. If default -values are not desired, the "processors"_processors.html and -"boundary"_boundary.html commands need to be used before read_data to -tell LAMMPS how to map processors to the simulation box. - -Many input script errors are detected by LAMMPS and an ERROR or -WARNING message is printed. The "Errors"_Errors.html doc page gives -more information on what errors mean. The documentation for each -command lists restrictions on how the command can be used. - -:line - -3.2 Parsing rules :link(cmd_2),h4 - -Each non-blank line in the input script is treated as a command. -LAMMPS commands are case sensitive. Command names are lower-case, as -are specified command arguments. Upper case letters may be used in -file names or user-chosen ID strings. - -Here is how each line in the input script is parsed by LAMMPS: - -(1) If the last printable character on the line is a "&" character, -the command is assumed to continue on the next line. The next line is -concatenated to the previous line by removing the "&" character and -line break. This allows long commands to be continued across two or -more lines. See the discussion of triple quotes in (6) for how to -continue a command across multiple line without using "&" characters. - -(2) All characters from the first "#" character onward are treated as -comment and discarded. See an exception in (6). Note that a -comment after a trailing "&" character will prevent the command from -continuing on the next line. Also note that for multi-line commands a -single leading "#" will comment out the entire command. - -(3) The line is searched repeatedly for $ characters, which indicate -variables that are replaced with a text string. See an exception in -(6). - -If the $ is followed by curly brackets, then the variable name is the -text inside the curly brackets. If no curly brackets follow the $, -then the variable name is the single character immediately following -the $. Thus $\{myTemp\} and $x refer to variable names "myTemp" and -"x". - -How the variable is converted to a text string depends on what style -of variable it is; see the "variable"_variable.html doc page for details. -It can be a variable that stores multiple text strings, and return one -of them. The returned text string can be multiple "words" (space -separated) which will then be interpreted as multiple arguments in the -input command. The variable can also store a numeric formula which -will be evaluated and its numeric result returned as a string. - -As a special case, if the $ is followed by parenthesis, then the text -inside the parenthesis is treated as an "immediate" variable and -evaluated as an "equal-style variable"_variable.html. This is a way -to use numeric formulas in an input script without having to assign -them to variable names. For example, these 3 input script lines: - -variable X equal (xlo+xhi)/2+sqrt(v_area) -region 1 block $X 2 INF INF EDGE EDGE -variable X delete :pre - -can be replaced by - -region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE :pre - -so that you do not have to define (or discard) a temporary variable X. - -Additionally, the "immediate" variable expression may be followed by a -colon, followed by a C-style format string, e.g. ":%f" or ":%.10g". -The format string must be appropriate for a double-precision -floating-point value. The format string is used to output the result -of the variable expression evaluation. If a format string is not -specified a high-precision "%.20g" is used as the default. - -This can be useful for formatting print output to a desired precion: - -print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre - -Note that neither the curly-bracket or immediate form of variables can -contain nested $ characters for other variables to substitute for. -Thus you cannot do this: - -variable a equal 2 -variable b2 equal 4 -print "B2 = $\{b$a\}" :pre - -Nor can you specify this $($x-1.0) for an immediate variable, but -you could use $(v_x-1.0), since the latter is valid syntax for an -"equal-style variable"_variable.html. - -See the "variable"_variable.html command for more details of how -strings are assigned to variables and evaluated, and how they can be -used in input script commands. - -(4) The line is broken into "words" separated by whitespace (tabs, -spaces). Note that words can thus contain letters, digits, -underscores, or punctuation characters. - -(5) The first word is the command name. All successive words in the -line are arguments. - -(6) If you want text with spaces to be treated as a single argument, -it can be enclosed in either single or double or triple quotes. A -long single argument enclosed in single or double quotes can span -multiple lines if the "&" character is used, as described above. When -the lines are concatenated together (and the "&" characters and line -breaks removed), the text will become a single line. If you want -multiple lines of an argument to retain their line breaks, the text -can be enclosed in triple quotes, in which case "&" characters are not -needed. For example: - -print "Volume = $v" -print 'Volume = $v' -if "$\{steps\} > 1000" then quit -variable a string "red green blue & - purple orange cyan" -print """ -System volume = $v -System temperature = $t -""" :pre - -In each case, the single, double, or triple quotes are removed when -the single argument they enclose is stored internally. - -See the "dump modify format"_dump_modify.html, "print"_print.html, -"if"_if.html, and "python"_python.html commands for examples. - -A "#" or "$" character that is between quotes will not be treated as a -comment indicator in (2) or substituted for as a variable in (3). - -NOTE: If the argument is itself a command that requires a quoted -argument (e.g. using a "print"_print.html command as part of an -"if"_if.html or "run every"_run.html command), then single, double, or -triple quotes can be nested in the usual manner. See the doc pages -for those commands for examples. Only one of level of nesting is -allowed, but that should be sufficient for most use cases. - -:line - -3.3 Input script structure :h3,link(cmd_3) - -This section describes the structure of a typical LAMMPS input script. -The examples directory in the LAMMPS distribution contains many sample -input scripts; the corresponding problems are discussed on the -"Examples"_Examples.html doc page, and animated on the "LAMMPS WWW -Site"_lws. - -A LAMMPS input script typically has 4 parts: - -Initialization -Atom definition -Settings -Run a simulation :ol - -The last 2 parts can be repeated as many times as desired. I.e. run a -simulation, change some settings, run some more, etc. Each of the 4 -parts is now described in more detail. Remember that almost all the -commands need only be used if a non-default value is desired. - -(1) Initialization - -Set parameters that need to be defined before atoms are created or -read-in from a file. - -The relevant commands are "units"_units.html, -"dimension"_dimension.html, "newton"_newton.html, -"processors"_processors.html, "boundary"_boundary.html, -"atom_style"_atom_style.html, "atom_modify"_atom_modify.html. - -If force-field parameters appear in the files that will be read, these -commands tell LAMMPS what kinds of force fields are being used: -"pair_style"_pair_style.html, "bond_style"_bond_style.html, -"angle_style"_angle_style.html, "dihedral_style"_dihedral_style.html, -"improper_style"_improper_style.html. - -(2) Atom definition - -There are 3 ways to define atoms in LAMMPS. Read them in from a data -or restart file via the "read_data"_read_data.html or -"read_restart"_read_restart.html commands. These files can contain -molecular topology information. Or create atoms on a lattice (with no -molecular topology), using these commands: "lattice"_lattice.html, -"region"_region.html, "create_box"_create_box.html, -"create_atoms"_create_atoms.html. The entire set of atoms can be -duplicated to make a larger simulation using the -"replicate"_replicate.html command. - -(3) Settings - -Once atoms and molecular topology are defined, a variety of settings -can be specified: force field coefficients, simulation parameters, -output options, etc. - -Force field coefficients are set by these commands (they can also be -set in the read-in files): "pair_coeff"_pair_coeff.html, -"bond_coeff"_bond_coeff.html, "angle_coeff"_angle_coeff.html, -"dihedral_coeff"_dihedral_coeff.html, -"improper_coeff"_improper_coeff.html, -"kspace_style"_kspace_style.html, "dielectric"_dielectric.html, -"special_bonds"_special_bonds.html. - -Various simulation parameters are set by these commands: -"neighbor"_neighbor.html, "neigh_modify"_neigh_modify.html, -"group"_group.html, "timestep"_timestep.html, -"reset_timestep"_reset_timestep.html, "run_style"_run_style.html, -"min_style"_min_style.html, "min_modify"_min_modify.html. - -Fixes impose a variety of boundary conditions, time integration, and -diagnostic options. The "fix"_fix.html command comes in many flavors. - -Various computations can be specified for execution during a -simulation using the "compute"_compute.html, -"compute_modify"_compute_modify.html, and "variable"_variable.html -commands. - -Output options are set by the "thermo"_thermo.html, "dump"_dump.html, -and "restart"_restart.html commands. - -(4) Run a simulation - -A molecular dynamics simulation is run using the "run"_run.html -command. Energy minimization (molecular statics) is performed using -the "minimize"_minimize.html command. A parallel tempering -(replica-exchange) simulation can be run using the -"temper"_temper.html command. - -:line - -3.4 Commands listed by category :link(cmd_4),h4 - -This section lists core LAMMPS commands, grouped by category. -The "next section"_#cmd_5 lists all commands alphabetically. The -next section also includes (long) lists of style options for entries -that appear in the following categories as a single command (fix, -compute, pair, etc). Commands that are added by user packages are not -included in the categories here, but they are in the next section. - -Initialization: - -"newton"_newton.html, -"package"_package.html, -"processors"_processors.html, -"suffix"_suffix.html, -"units"_units.html - -Setup simulation box: - -"boundary"_boundary.html, -"box"_box.html, -"change_box"_change_box.html, -"create_box"_create_box.html, -"dimension"_dimension.html, -"lattice"_lattice.html, -"region"_region.html - -Setup atoms: - -"atom_modify"_atom_modify.html, -"atom_style"_atom_style.html, -"balance"_balance.html, -"create_atoms"_create_atoms.html, -"create_bonds"_create_bonds.html, -"delete_atoms"_delete_atoms.html, -"delete_bonds"_delete_bonds.html, -"displace_atoms"_displace_atoms.html, -"group"_group.html, -"mass"_mass.html, -"molecule"_molecule.html, -"read_data"_read_data.html, -"read_dump"_read_dump.html, -"read_restart"_read_restart.html, -"replicate"_replicate.html, -"set"_set.html, -"velocity"_velocity.html - -Force fields: - -"angle_coeff"_angle_coeff.html, -"angle_style"_angle_style.html, -"bond_coeff"_bond_coeff.html, -"bond_style"_bond_style.html, -"bond_write"_bond_write.html, -"dielectric"_dielectric.html, -"dihedral_coeff"_dihedral_coeff.html, -"dihedral_style"_dihedral_style.html, -"improper_coeff"_improper_coeff.html, -"improper_style"_improper_style.html, -"kspace_modify"_kspace_modify.html, -"kspace_style"_kspace_style.html, -"pair_coeff"_pair_coeff.html, -"pair_modify"_pair_modify.html, -"pair_style"_pair_style.html, -"pair_write"_pair_write.html, -"special_bonds"_special_bonds.html - -Settings: - -"comm_modify"_comm_modify.html, -"comm_style"_comm_style.html, -"info"_info.html, -"min_modify"_min_modify.html, -"min_style"_min_style.html, -"neigh_modify"_neigh_modify.html, -"neighbor"_neighbor.html, -"partition"_partition.html, -"reset_timestep"_reset_timestep.html, -"run_style"_run_style.html, -"timer"_timer.html, -"timestep"_timestep.html - -Operations within timestepping (fixes) and diagnostics (computes): - -"compute"_compute.html, -"compute_modify"_compute_modify.html, -"fix"_fix.html, -"fix_modify"_fix_modify.html, -"uncompute"_uncompute.html, -"unfix"_unfix.html - -Output: - -"dump image"_dump_image.html, -"dump movie"_dump_image.html, -"dump"_dump.html, -"dump_modify"_dump_modify.html, -"restart"_restart.html, -"thermo"_thermo.html, -"thermo_modify"_thermo_modify.html, -"thermo_style"_thermo_style.html, -"undump"_undump.html, -"write_coeff"_write_coeff.html, -"write_data"_write_data.html, -"write_dump"_write_dump.html, -"write_restart"_write_restart.html - -Actions: - -"minimize"_minimize.html, -"neb"_neb.html, -"prd"_prd.html, -"rerun"_rerun.html, -"run"_run.html, -"tad"_tad.html, -"temper"_temper.html - -Input script control: - -"clear"_clear.html, -"echo"_echo.html, -"if"_if.html, -"include"_include.html, -"jump"_jump.html, -"label"_label.html, -"log"_log.html, -"next"_next.html, -"print"_print.html, -"python"_python.html, -"quit"_quit.html, -"shell"_shell.html, -"variable"_variable.html - -:line - -3.5 Individual commands :h3,link(cmd_5),link(comm) - -This section lists all LAMMPS commands alphabetically, with a separate -listing below of styles within certain commands. The "previous -section"_#cmd_4 lists the same commands, grouped by category. Note -that some style options for some commands are part of specific LAMMPS -packages, which means they cannot be used unless the package was -included when LAMMPS was built. Not all packages are included in a -default LAMMPS build. These dependencies are listed as Restrictions -in the command's documentation. - -"angle_coeff"_angle_coeff.html, -"angle_style"_angle_style.html, -"atom_modify"_atom_modify.html, -"atom_style"_atom_style.html, -"balance"_balance.html, -"bond_coeff"_bond_coeff.html, -"bond_style"_bond_style.html, -"bond_write"_bond_write.html, -"boundary"_boundary.html, -"box"_box.html, -"change_box"_change_box.html, -"clear"_clear.html, -"comm_modify"_comm_modify.html, -"comm_style"_comm_style.html, -"compute"_compute.html, -"compute_modify"_compute_modify.html, -"create_atoms"_create_atoms.html, -"create_bonds"_create_bonds.html, -"create_box"_create_box.html, -"delete_atoms"_delete_atoms.html, -"delete_bonds"_delete_bonds.html, -"dielectric"_dielectric.html, -"dihedral_coeff"_dihedral_coeff.html, -"dihedral_style"_dihedral_style.html, -"dimension"_dimension.html, -"displace_atoms"_displace_atoms.html, -"dump"_dump.html, -"dump image"_dump_image.html, -"dump_modify"_dump_modify.html, -"dump movie"_dump_image.html, -"echo"_echo.html, -"fix"_fix.html, -"fix_modify"_fix_modify.html, -"group"_group.html, -"if"_if.html, -"info"_info.html, -"improper_coeff"_improper_coeff.html, -"improper_style"_improper_style.html, -"include"_include.html, -"jump"_jump.html, -"kspace_modify"_kspace_modify.html, -"kspace_style"_kspace_style.html, -"label"_label.html, -"lattice"_lattice.html, -"log"_log.html, -"mass"_mass.html, -"minimize"_minimize.html, -"min_modify"_min_modify.html, -"min_style"_min_style.html, -"molecule"_molecule.html, -"neb"_neb.html, -"neigh_modify"_neigh_modify.html, -"neighbor"_neighbor.html, -"newton"_newton.html, -"next"_next.html, -"package"_package.html, -"pair_coeff"_pair_coeff.html, -"pair_modify"_pair_modify.html, -"pair_style"_pair_style.html, -"pair_write"_pair_write.html, -"partition"_partition.html, -"prd"_prd.html, -"print"_print.html, -"processors"_processors.html, -"python"_python.html, -"quit"_quit.html, -"read_data"_read_data.html, -"read_dump"_read_dump.html, -"read_restart"_read_restart.html, -"region"_region.html, -"replicate"_replicate.html, -"rerun"_rerun.html, -"reset_ids"_reset_ids.html, -"reset_timestep"_reset_timestep.html, -"restart"_restart.html, -"run"_run.html, -"run_style"_run_style.html, -"set"_set.html, -"shell"_shell.html, -"special_bonds"_special_bonds.html, -"suffix"_suffix.html, -"tad"_tad.html, -"temper"_temper.html, -"thermo"_thermo.html, -"thermo_modify"_thermo_modify.html, -"thermo_style"_thermo_style.html, -"timer"_timer.html, -"timestep"_timestep.html, -"uncompute"_uncompute.html, -"undump"_undump.html, -"unfix"_unfix.html, -"units"_units.html, -"variable"_variable.html, -"velocity"_velocity.html, -"write_coeff"_write_coeff.html, -"write_data"_write_data.html, -"write_dump"_write_dump.html, -"write_restart"_write_restart.html :tb(c=6,ea=c) - -These are additional commands in USER packages, which can be used if -"LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"dump netcdf"_dump_netcdf.html, -"dump netcdf/mpiio"_dump_netcdf.html, -"dump vtk"_dump_vtk.html, -"group2ndx"_group2ndx.html, -"ndx2group"_group2ndx.html, -"temper/grem"_temper_grem.html, -"temper/npt"_temper_npt.html :tb(c=3,ea=c) - -:line - -Fix styles :h3 - -See the "fix"_fix.html command for one-line descriptions of each style -or click on the style itself for a full description. Some of the -styles have accelerated versions, which can be used if LAMMPS is built -with the "appropriate accelerated package"_Section_accelerate.html. -This is indicated by additional letters in parenthesis: g = GPU, i = -USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT. - -"adapt"_fix_adapt.html, -"addforce"_fix_addforce.html, -"append/atoms"_fix_append_atoms.html, -"atom/swap"_fix_atom_swap.html, -"aveforce"_fix_aveforce.html, -"ave/atom"_fix_ave_atom.html, -"ave/chunk"_fix_ave_chunk.html, -"ave/correlate"_fix_ave_correlate.html, -"ave/histo"_fix_ave_histo.html, -"ave/histo/weight"_fix_ave_histo.html, -"ave/time"_fix_ave_time.html, -"balance"_fix_balance.html, -"bond/break"_fix_bond_break.html, -"bond/create"_fix_bond_create.html, -"bond/swap"_fix_bond_swap.html, -"box/relax"_fix_box_relax.html, -"cmap"_fix_cmap.html, -"controller"_fix_controller.html, -"deform (k)"_fix_deform.html, -"deposit"_fix_deposit.html, -"drag"_fix_drag.html, -"dt/reset"_fix_dt_reset.html, -"efield"_fix_efield.html, -"ehex"_fix_ehex.html, -"enforce2d (k)"_fix_enforce2d.html, -"evaporate"_fix_evaporate.html, -"external"_fix_external.html, -"freeze"_fix_freeze.html, -"gcmc"_fix_gcmc.html, -"gld"_fix_gld.html, -"gravity (o)"_fix_gravity.html, -"halt"_fix_halt.html, -"heat"_fix_heat.html, -"indent"_fix_indent.html, -"latte"_fix_latte.html, -"langevin (k)"_fix_langevin.html, -"langevin/spin"_fix_langevin_spin.hmtl, -"lineforce"_fix_lineforce.html, -"momentum (k)"_fix_momentum.html, -"move"_fix_move.html, -"mscg"_fix_mscg.html, -"msst"_fix_msst.html, -"neb"_fix_neb.html, -"nph (ko)"_fix_nh.html, -"nphug (o)"_fix_nphug.html, -"nph/asphere (o)"_fix_nph_asphere.html, -"nph/body"_fix_nph_body.html, -"nph/sphere (o)"_fix_nph_sphere.html, -"npt (kio)"_fix_nh.html, -"npt/asphere (o)"_fix_npt_asphere.html, -"npt/body"_fix_npt_body.html, -"npt/sphere (o)"_fix_npt_sphere.html, -"nve (kio)"_fix_nve.html, -"nve/asphere (i)"_fix_nve_asphere.html, -"nve/asphere/noforce"_fix_nve_asphere_noforce.html, -"nve/body"_fix_nve_body.html, -"nve/limit"_fix_nve_limit.html, -"nve/line"_fix_nve_line.html, -"nve/noforce"_fix_nve_noforce.html, -"nve/sphere (o)"_fix_nve_sphere.html, -"nve/spin"_fix_nve_spin.html, -"nve/tri"_fix_nve_tri.html, -"nvt (iko)"_fix_nh.html, -"nvt/asphere (o)"_fix_nvt_asphere.html, -"nvt/body"_fix_nvt_body.html, -"nvt/sllod (io)"_fix_nvt_sllod.html, -"nvt/sphere (o)"_fix_nvt_sphere.html, -"oneway"_fix_oneway.html, -"orient/bcc"_fix_orient.html, -"orient/fcc"_fix_orient.html, -"planeforce"_fix_planeforce.html, -"poems"_fix_poems.html, -"pour"_fix_pour.html, -"precession/spin"_fix_precession_spin.html, -"press/berendsen"_fix_press_berendsen.html, -"print"_fix_print.html, -"property/atom (k)"_fix_property_atom.html, -"python/invoke"_fix_python_invoke.html, -"python/move"_fix_python_move.html, -"qeq/comb (o)"_fix_qeq_comb.html, -"qeq/dynamic"_fix_qeq.html, -"qeq/fire"_fix_qeq.html, -"qeq/point"_fix_qeq.html, -"qeq/shielded"_fix_qeq.html, -"qeq/slater"_fix_qeq.html, -"rattle"_fix_shake.html, -"reax/bonds"_fix_reax_bonds.html, -"recenter"_fix_recenter.html, -"restrain"_fix_restrain.html, -"rigid (o)"_fix_rigid.html, -"rigid/nph (o)"_fix_rigid.html, -"rigid/npt (o)"_fix_rigid.html, -"rigid/nve (o)"_fix_rigid.html, -"rigid/nvt (o)"_fix_rigid.html, -"rigid/small (o)"_fix_rigid.html, -"rigid/small/nph"_fix_rigid.html, -"rigid/small/npt"_fix_rigid.html, -"rigid/small/nve"_fix_rigid.html, -"rigid/small/nvt"_fix_rigid.html, -"setforce (k)"_fix_setforce.html, -"shake"_fix_shake.html, -"spring"_fix_spring.html, -"spring/chunk"_fix_spring_chunk.html, -"spring/rg"_fix_spring_rg.html, -"spring/self"_fix_spring_self.html, -"srd"_fix_srd.html, -"store/force"_fix_store_force.html, -"store/state"_fix_store_state.html, -"temp/berendsen"_fix_temp_berendsen.html, -"temp/csld"_fix_temp_csvr.html, -"temp/csvr"_fix_temp_csvr.html, -"temp/rescale"_fix_temp_rescale.html, -"tfmc"_fix_tfmc.html, -"thermal/conductivity"_fix_thermal_conductivity.html, -"tmd"_fix_tmd.html, -"ttm"_fix_ttm.html, -"tune/kspace"_fix_tune_kspace.html, -"vector"_fix_vector.html, -"viscosity"_fix_viscosity.html, -"viscous"_fix_viscous.html, -"wall/body/polygon"_fix_wall_body_polygon.html, -"wall/body/polyhedron"_fix_wall_body_polyhedron.html, -"wall/colloid"_fix_wall.html, -"wall/gran"_fix_wall_gran.html, -"wall/gran/region"_fix_wall_gran_region.html, -"wall/harmonic"_fix_wall.html, -"wall/lj1043"_fix_wall.html, -"wall/lj126"_fix_wall.html, -"wall/lj93 (k)"_fix_wall.html, -"wall/piston"_fix_wall_piston.html, -"wall/reflect (k)"_fix_wall_reflect.html, -"wall/region"_fix_wall_region.html, -"wall/srd"_fix_wall_srd.html :tb(c=8,ea=c) - -These are additional fix styles in USER packages, which can be used if -"LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"adapt/fep"_fix_adapt_fep.html, -"addtorque"_fix_addtorque.html, -"atc"_fix_atc.html, -"ave/correlate/long"_fix_ave_correlate_long.html, -"bond/react"_fix_bond_react.html, -"colvars"_fix_colvars.html, -"dpd/energy (k)"_fix_dpd_energy.html, -"drude"_fix_drude.html, -"drude/transform/direct"_fix_drude_transform.html, -"drude/transform/reverse"_fix_drude_transform.html, -"edpd/source"_fix_dpd_source.html, -"eos/cv"_fix_eos_cv.html, -"eos/table"_fix_eos_table.html, -"eos/table/rx (k)"_fix_eos_table_rx.html, -"filter/corotate"_fix_filter_corotate.html, -"flow/gauss"_fix_flow_gauss.html, -"gle"_fix_gle.html, -"grem"_fix_grem.html, -"imd"_fix_imd.html, -"ipi"_fix_ipi.html, -"langevin/drude"_fix_langevin_drude.html, -"langevin/eff"_fix_langevin_eff.html, -"lb/fluid"_fix_lb_fluid.html, -"lb/momentum"_fix_lb_momentum.html, -"lb/pc"_fix_lb_pc.html, -"lb/rigid/pc/sphere"_fix_lb_rigid_pc_sphere.html, -"lb/viscous"_fix_lb_viscous.html, -"meso"_fix_meso.html, -"manifoldforce"_fix_manifoldforce.html, -"meso/stationary"_fix_meso_stationary.html, -"mvv/dpd"_fix_mvv_dpd.html, -"mvv/edpd"_fix_mvv_dpd.html, -"mvv/tdpd"_fix_mvv_dpd.html, -"nph/eff"_fix_nh_eff.html, -"npt/eff"_fix_nh_eff.html, -"npt/uef"_fix_nh_uef.html, -"nve/dot"_fix_nve_dot.html, -"nve/dotc/langevin"_fix_nve_dotc_langevin.html, -"nve/eff"_fix_nve_eff.html, -"nve/manifold/rattle"_fix_nve_manifold_rattle.html, -"nvk"_fix_nvk.html, -"nvt/eff"_fix_nh_eff.html, -"nvt/manifold/rattle"_fix_nvt_manifold_rattle.html, -"nvt/sllod/eff"_fix_nvt_sllod_eff.html, -"nvt/uef"_fix_nh_uef.html, -"phonon"_fix_phonon.html, -"pimd"_fix_pimd.html, -"qbmsst"_fix_qbmsst.html, -"qeq/reax (ko)"_fix_qeq_reax.html, -"qmmm"_fix_qmmm.html, -"qtb"_fix_qtb.html, -"reax/c/bonds (k)"_fix_reax_bonds.html, -"reax/c/species (k)"_fix_reaxc_species.html, -"rhok"_fix_rhok.html, -"rx (k)"_fix_rx.html, -"saed/vtk"_fix_saed_vtk.html, -"shardlow (k)"_fix_shardlow.html, -"smd"_fix_smd.html, -"smd/adjust/dt"_fix_smd_adjust_dt.html, -"smd/integrate/tlsph"_fix_smd_integrate_tlsph.html, -"smd/integrate/ulsph"_fix_smd_integrate_ulsph.html, -"smd/move/triangulated/surface"_fix_smd_move_triangulated_surface.html, -"smd/setvel"_fix_smd_setvel.html, -"smd/wall/surface"_fix_smd_wall_surface.html, -"tdpd/source"_fix_dpd_source.html, -"temp/rescale/eff"_fix_temp_rescale_eff.html, -"ti/spring"_fix_ti_spring.html, -"ttm/mod"_fix_ttm.html, -"wall/ees"_fix_wall_ees.html, -"wall/region/ees"_fix_wall_ees.html :tb(c=6,ea=c) - -:line - -Compute styles :h3 - -See the "compute"_compute.html command for one-line descriptions of -each style or click on the style itself for a full description. Some -of the styles have accelerated versions, which can be used if LAMMPS -is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = -KOKKOS, o = USER-OMP, t = OPT. - -"aggregate/atom"_compute_cluster_atom.html, -"angle"_compute_angle.html, -"angle/local"_compute_angle_local.html, -"angmom/chunk"_compute_angmom_chunk.html, -"body/local"_compute_body_local.html, -"bond"_compute_bond.html, -"bond/local"_compute_bond_local.html, -"centro/atom"_compute_centro_atom.html, -"chunk/atom"_compute_chunk_atom.html, -"cluster/atom"_compute_cluster_atom.html, -"cna/atom"_compute_cna_atom.html, -"com"_compute_com.html, -"com/chunk"_compute_com_chunk.html, -"contact/atom"_compute_contact_atom.html, -"coord/atom"_compute_coord_atom.html, -"damage/atom"_compute_damage_atom.html, -"dihedral"_compute_dihedral.html, -"dihedral/local"_compute_dihedral_local.html, -"dilatation/atom"_compute_dilatation_atom.html, -"dipole/chunk"_compute_dipole_chunk.html, -"displace/atom"_compute_displace_atom.html, -"erotate/asphere"_compute_erotate_asphere.html, -"erotate/rigid"_compute_erotate_rigid.html, -"erotate/sphere"_compute_erotate_sphere.html, -"erotate/sphere/atom"_compute_erotate_sphere_atom.html, -"event/displace"_compute_event_displace.html, -"fragment/atom"_compute_cluster_atom.html, -"global/atom"_compute_global_atom.html, -"group/group"_compute_group_group.html, -"gyration"_compute_gyration.html, -"gyration/chunk"_compute_gyration_chunk.html, -"heat/flux"_compute_heat_flux.html, -"hexorder/atom"_compute_hexorder_atom.html, -"improper"_compute_improper.html, -"improper/local"_compute_improper_local.html, -"inertia/chunk"_compute_inertia_chunk.html, -"ke"_compute_ke.html, -"ke/atom"_compute_ke_atom.html, -"ke/rigid"_compute_ke_rigid.html, -"msd"_compute_msd.html, -"msd/chunk"_compute_msd_chunk.html, -"msd/nongauss"_compute_msd_nongauss.html, -"omega/chunk"_compute_omega_chunk.html, -"orientorder/atom"_compute_orientorder_atom.html, -"pair"_compute_pair.html, -"pair/local"_compute_pair_local.html, -"pe"_compute_pe.html, -"pe/atom"_compute_pe_atom.html, -"plasticity/atom"_compute_plasticity_atom.html, -"pressure"_compute_pressure.html, -"property/atom"_compute_property_atom.html, -"property/local"_compute_property_local.html, -"property/chunk"_compute_property_chunk.html, -"rdf"_compute_rdf.html, -"reduce"_compute_reduce.html, -"reduce/region"_compute_reduce.html, -"rigid/local"_compute_rigid_local.html, -"slice"_compute_slice.html, -"sna/atom"_compute_sna_atom.html, -"snad/atom"_compute_sna_atom.html, -"snav/atom"_compute_sna_atom.html, -"spin"_compute_spin.html, -"stress/atom"_compute_stress_atom.html, -"temp (k)"_compute_temp.html, -"temp/asphere"_compute_temp_asphere.html, -"temp/body"_compute_temp_body.html, -"temp/chunk"_compute_temp_chunk.html, -"temp/com"_compute_temp_com.html, -"temp/deform"_compute_temp_deform.html, -"temp/partial"_compute_temp_partial.html, -"temp/profile"_compute_temp_profile.html, -"temp/ramp"_compute_temp_ramp.html, -"temp/region"_compute_temp_region.html, -"temp/sphere"_compute_temp_sphere.html, -"ti"_compute_ti.html, -"torque/chunk"_compute_torque_chunk.html, -"vacf"_compute_vacf.html, -"vcm/chunk"_compute_vcm_chunk.html, -"voronoi/atom"_compute_voronoi_atom.html :tb(c=6,ea=c) - -These are additional compute styles in USER packages, which can be -used if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"ackland/atom"_compute_ackland_atom.html, -"basal/atom"_compute_basal_atom.html, -"cnp/atom"_compute_cnp_atom.html, -"dpd"_compute_dpd.html, -"dpd/atom"_compute_dpd_atom.html, -"edpd/temp/atom"_compute_edpd_temp_atom.html, -"entropy/atom"_compute_entropy_atom.html, -"fep"_compute_fep.html, -"force/tally"_compute_tally.html, -"heat/flux/tally"_compute_tally.html, -"ke/eff"_compute_ke_eff.html, -"ke/atom/eff"_compute_ke_atom_eff.html, -"meso/e/atom"_compute_meso_e_atom.html, -"meso/rho/atom"_compute_meso_rho_atom.html, -"meso/t/atom"_compute_meso_t_atom.html, -"pe/tally"_compute_tally.html, -"pe/mol/tally"_compute_tally.html, -"pressure/uef"_compute_pressure_uef.html, -"saed"_compute_saed.html, -"smd/contact/radius"_compute_smd_contact_radius.html, -"smd/damage"_compute_smd_damage.html, -"smd/hourglass/error"_compute_smd_hourglass_error.html, -"smd/internal/energy"_compute_smd_internal_energy.html, -"smd/plastic/strain"_compute_smd_plastic_strain.html, -"smd/plastic/strain/rate"_compute_smd_plastic_strain_rate.html, -"smd/rho"_compute_smd_rho.html, -"smd/tlsph/defgrad"_compute_smd_tlsph_defgrad.html, -"smd/tlsph/dt"_compute_smd_tlsph_dt.html, -"smd/tlsph/num/neighs"_compute_smd_tlsph_num_neighs.html, -"smd/tlsph/shape"_compute_smd_tlsph_shape.html, -"smd/tlsph/strain"_compute_smd_tlsph_strain.html, -"smd/tlsph/strain/rate"_compute_smd_tlsph_strain_rate.html, -"smd/tlsph/stress"_compute_smd_tlsph_stress.html, -"smd/triangle/mesh/vertices"_compute_smd_triangle_mesh_vertices.html, -"smd/ulsph/num/neighs"_compute_smd_ulsph_num_neighs.html, -"smd/ulsph/strain"_compute_smd_ulsph_strain.html, -"smd/ulsph/strain/rate"_compute_smd_ulsph_strain_rate.html, -"smd/ulsph/stress"_compute_smd_ulsph_stress.html, -"smd/vol"_compute_smd_vol.html, -"stress/tally"_compute_tally.html, -"tdpd/cc/atom"_compute_tdpd_cc_atom.html, -"temp/drude"_compute_temp_drude.html, -"temp/eff"_compute_temp_eff.html, -"temp/deform/eff"_compute_temp_deform_eff.html, -"temp/region/eff"_compute_temp_region_eff.html, -"temp/rotate"_compute_temp_rotate.html, -"temp/uef"_compute_temp_uef.html, -"xrd"_compute_xrd.html :tb(c=6,ea=c) - -:line - -Pair_style potentials :h3 - -See the "pair_style"_pair_style.html command for an overview of pair -potentials. Click on the style itself for a full description. Many -of the styles have accelerated versions, which can be used if LAMMPS -is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = -KOKKOS, o = USER-OMP, t = OPT. - -"none"_pair_none.html, -"zero"_pair_zero.html, -"hybrid"_pair_hybrid.html, -"hybrid/overlay (k)"_pair_hybrid.html, -"adp (o)"_pair_adp.html, -"airebo (oi)"_pair_airebo.html, -"airebo/morse (oi)"_pair_airebo.html, -"atm"_pair_atm.html, -"beck (go)"_pair_beck.html, -"body/nparticle"_pair_body_nparticle.html, -"body/rounded/polygon"_pair_body_rounded/polygon.html, -"body/rounded/polyhedron"_pair_body_rounded/polyhedron.html, -"bop"_pair_bop.html, -"born (go)"_pair_born.html, -"born/coul/dsf"_pair_born.html, -"born/coul/dsf/cs"_pair_born.html, -"born/coul/long (go)"_pair_born.html, -"born/coul/long/cs"_pair_born.html, -"born/coul/msm (o)"_pair_born.html, -"born/coul/wolf (go)"_pair_born.html, -"born/coul/wolf/cs"_pair_born.html, -"brownian (o)"_pair_brownian.html, -"brownian/poly (o)"_pair_brownian.html, -"buck (giko)"_pair_buck.html, -"buck/coul/cut (giko)"_pair_buck.html, -"buck/coul/long (giko)"_pair_buck.html, -"buck/coul/long/cs"_pair_buck.html, -"buck/coul/msm (o)"_pair_buck.html, -"buck/long/coul/long (o)"_pair_buck_long.html, -"colloid (go)"_pair_colloid.html, -"comb (o)"_pair_comb.html, -"comb3"_pair_comb.html, -"coul/cut (gko)"_pair_coul.html, -"coul/debye (gko)"_pair_coul.html, -"coul/dsf (gko)"_pair_coul.html, -"coul/long (gko)"_pair_coul.html, -"coul/long/cs"_pair_coul.html, -"coul/msm"_pair_coul.html, -"coul/streitz"_pair_coul.html, -"coul/wolf (ko)"_pair_coul.html, -"coul/wolf/cs"_pair_coul.html, -"dpd (gio)"_pair_dpd.html, -"dpd/tstat (go)"_pair_dpd.html, -"dsmc"_pair_dsmc.html, -"eam (gikot)"_pair_eam.html, -"eam/alloy (gikot)"_pair_eam.html, -"eam/fs (gikot)"_pair_eam.html, -"eim (o)"_pair_eim.html, -"gauss (go)"_pair_gauss.html, -"gayberne (gio)"_pair_gayberne.html, -"gran/hertz/history (o)"_pair_gran.html, -"gran/hooke (o)"_pair_gran.html, -"gran/hooke/history (o)"_pair_gran.html, -"gw"_pair_gw.html, -"gw/zbl"_pair_gw.html, -"hbond/dreiding/lj (o)"_pair_hbond_dreiding.html, -"hbond/dreiding/morse (o)"_pair_hbond_dreiding.html, -"kim"_pair_kim.html, -"lcbop"_pair_lcbop.html, -"line/lj"_pair_line_lj.html, -"lj/charmm/coul/charmm (iko)"_pair_charmm.html, -"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html, -"lj/charmm/coul/long (giko)"_pair_charmm.html, -"lj/charmm/coul/msm"_pair_charmm.html, -"lj/charmmfsw/coul/charmmfsh"_pair_charmm.html, -"lj/charmmfsw/coul/long"_pair_charmm.html, -"lj/class2 (gko)"_pair_class2.html, -"lj/class2/coul/cut (ko)"_pair_class2.html, -"lj/class2/coul/long (gko)"_pair_class2.html, -"lj/cubic (go)"_pair_lj_cubic.html, -"lj/cut (gikot)"_pair_lj.html, -"lj/cut/coul/cut (gko)"_pair_lj.html, -"lj/cut/coul/debye (gko)"_pair_lj.html, -"lj/cut/coul/dsf (gko)"_pair_lj.html, -"lj/cut/coul/long (gikot)"_pair_lj.html, -"lj/cut/coul/long/cs"_pair_lj.html, -"lj/cut/coul/msm (go)"_pair_lj.html, -"lj/cut/coul/wolf (o)"_pair_lj.html, -"lj/cut/dipole/cut (go)"_pair_dipole.html, -"lj/cut/dipole/long"_pair_dipole.html, -"lj/cut/tip4p/cut (o)"_pair_lj.html, -"lj/cut/tip4p/long (ot)"_pair_lj.html, -"lj/expand (gko)"_pair_lj_expand.html, -"lj/gromacs (gko)"_pair_gromacs.html, -"lj/gromacs/coul/gromacs (ko)"_pair_gromacs.html, -"lj/long/coul/long (io)"_pair_lj_long.html, -"lj/long/dipole/long"_pair_dipole.html, -"lj/long/tip4p/long"_pair_lj_long.html, -"lj/smooth (o)"_pair_lj_smooth.html, -"lj/smooth/linear (o)"_pair_lj_smooth_linear.html, -"lj96/cut (go)"_pair_lj96.html, -"lubricate (o)"_pair_lubricate.html, -"lubricate/poly (o)"_pair_lubricate.html, -"lubricateU"_pair_lubricateU.html, -"lubricateU/poly"_pair_lubricateU.html, -"meam"_pair_meam.html, -"mie/cut (o)"_pair_mie.html, -"morse (gkot)"_pair_morse.html, -"nb3b/harmonic (o)"_pair_nb3b_harmonic.html, -"nm/cut (o)"_pair_nm.html, -"nm/cut/coul/cut (o)"_pair_nm.html, -"nm/cut/coul/long (o)"_pair_nm.html, -"peri/eps"_pair_peri.html, -"peri/lps (o)"_pair_peri.html, -"peri/pmb (o)"_pair_peri.html, -"peri/ves"_pair_peri.html, -"polymorphic"_pair_polymorphic.html, -"python"_pair_python.html, -"reax"_pair_reax.html, -"rebo (oi)"_pair_airebo.html, -"resquared (go)"_pair_resquared.html, -"snap (k)"_pair_snap.html, -"soft (go)"_pair_soft.html, -"sw (giko)"_pair_sw.html, -"spin/dmi"_pair_spin_dmi.html, -"spin/exchange"_pair_spin_exchange.html, -"spin/magelec"_pair_spin_magelec.html, -"spin/neel"_pair_spin_neel.html, -"table (gko)"_pair_table.html, -"tersoff (giko)"_pair_tersoff.html, -"tersoff/mod (gko)"_pair_tersoff_mod.html, -"tersoff/mod/c (o)"_pair_tersoff_mod.html, -"tersoff/zbl (gko)"_pair_tersoff_zbl.html, -"tip4p/cut (o)"_pair_coul.html, -"tip4p/long (o)"_pair_coul.html, -"tri/lj"_pair_tri_lj.html, -"ufm (got)"_pair_ufm.html, -"vashishta (ko)"_pair_vashishta.html, -"vashishta/table (o)"_pair_vashishta.html, -"yukawa (gok)"_pair_yukawa.html, -"yukawa/colloid (go)"_pair_yukawa_colloid.html, -"zbl (gok)"_pair_zbl.html :tb(c=4,ea=c) - -These are additional pair styles in USER packages, which can be used -if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"agni (o)"_pair_agni.html, -"awpmd/cut"_pair_awpmd.html, -"buck/mdf"_pair_mdf.html, -"coul/cut/soft (o)"_pair_lj_soft.html, -"coul/diel (o)"_pair_coul_diel.html, -"coul/long/soft (o)"_pair_lj_soft.html, -"coul/shield"_pair_coul_shield.html, -"dpd/fdt"_pair_dpd_fdt.html, -"dpd/fdt/energy (k)"_pair_dpd_fdt.html, -"eam/cd (o)"_pair_eam.html, -"edip (o)"_pair_edip.html, -"edip/multi"_pair_edip.html, -"edpd"_pair_meso.html, -"eff/cut"_pair_eff.html, -"exp6/rx (k)"_pair_exp6_rx.html, -"extep"_pair_extep.html, -"gauss/cut"_pair_gauss.html, -"ilp/graphene/hbn"_pair_ilp_graphene_hbn.html, -"kolmogorov/crespi/full"_pair_kolmogorov_crespi_full.html, -"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html, -"lennard/mdf"_pair_mdf.html, -"list"_pair_list.html, -"lj/charmm/coul/long/soft (o)"_pair_charmm.html, -"lj/cut/coul/cut/soft (o)"_pair_lj_soft.html, -"lj/cut/coul/long/soft (o)"_pair_lj_soft.html, -"lj/cut/dipole/sf (go)"_pair_dipole.html, -"lj/cut/soft (o)"_pair_lj_soft.html, -"lj/cut/thole/long (o)"_pair_thole.html, -"lj/cut/tip4p/long/soft (o)"_pair_lj_soft.html, -"lj/mdf"_pair_mdf.html, -"lj/sdk (gko)"_pair_sdk.html, -"lj/sdk/coul/long (go)"_pair_sdk.html, -"lj/sdk/coul/msm (o)"_pair_sdk.html, -"mdpd"_pair_meso.html, -"mdpd/rhosum"_pair_meso.html, -"meam/c"_pair_meam.html, -"meam/spline (o)"_pair_meam_spline.html, -"meam/sw/spline"_pair_meam_sw_spline.html, -"mgpt"_pair_mgpt.html, -"momb"_pair_momb.html, -"morse/smooth/linear"_pair_morse.html, -"morse/soft"_pair_morse.html, -"multi/lucy"_pair_multi_lucy.html, -"multi/lucy/rx (k)"_pair_multi_lucy_rx.html, -"oxdna/coaxstk"_pair_oxdna.html, -"oxdna/excv"_pair_oxdna.html, -"oxdna/hbond"_pair_oxdna.html, -"oxdna/stk"_pair_oxdna.html, -"oxdna/xstk"_pair_oxdna.html, -"oxdna2/coaxstk"_pair_oxdna2.html, -"oxdna2/dh"_pair_oxdna2.html, -"oxdna2/excv"_pair_oxdna2.html, -"oxdna2/stk"_pair_oxdna2.html, -"quip"_pair_quip.html, -"reax/c (ko)"_pair_reaxc.html, -"smd/hertz"_pair_smd_hertz.html, -"smd/tlsph"_pair_smd_tlsph.html, -"smd/triangulated/surface"_pair_smd_triangulated_surface.html, -"smd/ulsph"_pair_smd_ulsph.html, -"smtbq"_pair_smtbq.html, -"snap (k)"_pair_snap.html, -"sph/heatconduction"_pair_sph_heatconduction.html, -"sph/idealgas"_pair_sph_idealgas.html, -"sph/lj"_pair_sph_lj.html, -"sph/rhosum"_pair_sph_rhosum.html, -"sph/taitwater"_pair_sph_taitwater.html, -"sph/taitwater/morris"_pair_sph_taitwater_morris.html, -"srp"_pair_srp.html, -"table/rx (k)"_pair_table_rx.html, -"tdpd"_pair_meso.html, -"tersoff/table (o)"_pair_tersoff.html, -"thole"_pair_thole.html, -"tip4p/long/soft (o)"_pair_lj_soft.html :tb(c=4,ea=c) - -:line - -Bond_style potentials :h3 - -See the "bond_style"_bond_style.html command for an overview of bond -potentials. Click on the style itself for a full description. Some -of the styles have accelerated versions, which can be used if LAMMPS -is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = -KOKKOS, o = USER-OMP, t = OPT. - -"none"_bond_none.html, -"zero"_bond_zero.html, -"hybrid"_bond_hybrid.html, -"class2 (ko)"_bond_class2.html, -"fene (iko)"_bond_fene.html, -"fene/expand (o)"_bond_fene_expand.html, -"gromos (o)"_bond_gromos.html, -"harmonic (ko)"_bond_harmonic.html, -"morse (o)"_bond_morse.html, -"nonlinear (o)"_bond_nonlinear.html, -"quartic (o)"_bond_quartic.html, -"table (o)"_bond_table.html :tb(c=4,ea=c) - -These are additional bond styles in USER packages, which can be used -if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"harmonic/shift (o)"_bond_harmonic_shift.html, -"harmonic/shift/cut (o)"_bond_harmonic_shift_cut.html, -"oxdna/fene"_bond_oxdna.html, -"oxdna2/fene"_bond_oxdna.html :tb(c=4,ea=c) - -:line - -Angle_style potentials :h3 - -See the "angle_style"_angle_style.html command for an overview of -angle potentials. Click on the style itself for a full description. -Some of the styles have accelerated versions, which can be used if -LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = -USER-OMP, t = OPT. - -"none"_angle_none.html, -"zero"_angle_zero.html, -"hybrid"_angle_hybrid.html, -"charmm (ko)"_angle_charmm.html, -"class2 (ko)"_angle_class2.html, -"cosine (o)"_angle_cosine.html, -"cosine/delta (o)"_angle_cosine_delta.html, -"cosine/periodic (o)"_angle_cosine_periodic.html, -"cosine/squared (o)"_angle_cosine_squared.html, -"harmonic (iko)"_angle_harmonic.html, -"table (o)"_angle_table.html :tb(c=4,ea=c) - -These are additional angle styles in USER packages, which can be used -if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"cosine/shift (o)"_angle_cosine_shift.html, -"cosine/shift/exp (o)"_angle_cosine_shift_exp.html, -"dipole (o)"_angle_dipole.html, -"fourier (o)"_angle_fourier.html, -"fourier/simple (o)"_angle_fourier_simple.html, -"quartic (o)"_angle_quartic.html, -"sdk"_angle_sdk.html :tb(c=4,ea=c) - -:line - -Dihedral_style potentials :h3 - -See the "dihedral_style"_dihedral_style.html command for an overview -of dihedral potentials. Click on the style itself for a full -description. Some of the styles have accelerated versions, which can -be used if LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = -USER-OMP, t = OPT. - -"none"_dihedral_none.html, -"zero"_dihedral_zero.html, -"hybrid"_dihedral_hybrid.html, -"charmm (iko)"_dihedral_charmm.html, -"charmmfsw"_dihedral_charmm.html, -"class2 (ko)"_dihedral_class2.html, -"harmonic (io)"_dihedral_harmonic.html, -"helix (o)"_dihedral_helix.html, -"multi/harmonic (o)"_dihedral_multi_harmonic.html, -"opls (iko)"_dihedral_opls.html :tb(c=4,ea=c) - -These are additional dihedral styles in USER packages, which can be -used if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"cosine/shift/exp (o)"_dihedral_cosine_shift_exp.html, -"fourier (io)"_dihedral_fourier.html, -"nharmonic (o)"_dihedral_nharmonic.html, -"quadratic (o)"_dihedral_quadratic.html, -"spherical (o)"_dihedral_spherical.html, -"table (o)"_dihedral_table.html, -"table/cut"_dihedral_table_cut.html :tb(c=4,ea=c) - -:line - -Improper_style potentials :h3 - -See the "improper_style"_improper_style.html command for an overview -of improper potentials. Click on the style itself for a full -description. Some of the styles have accelerated versions, which can -be used if LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = -USER-OMP, t = OPT. - -"none"_improper_none.html, -"zero"_improper_zero.html, -"hybrid"_improper_hybrid.html, -"class2 (ko)"_improper_class2.html, -"cvff (io)"_improper_cvff.html, -"harmonic (iko)"_improper_harmonic.html, -"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c) - -These are additional improper styles in USER packages, which can be -used if "LAMMPS is built with the appropriate -package"_Section_start.html#start_3. - -"cossq (o)"_improper_cossq.html, -"distance"_improper_distance.html, -"fourier (o)"_improper_fourier.html, -"ring (o)"_improper_ring.html :tb(c=4,ea=c) - -:line - -Kspace solvers :h3 - -See the "kspace_style"_kspace_style.html command for an overview of -Kspace solvers. Click on the style itself for a full description. -Some of the styles have accelerated versions, which can be used if -LAMMPS is built with the "appropriate accelerated -package"_Section_accelerate.html. This is indicated by additional -letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = -USER-OMP, t = OPT. - -"ewald (o)"_kspace_style.html, -"ewald/disp"_kspace_style.html, -"msm (o)"_kspace_style.html, -"msm/cg (o)"_kspace_style.html, -"pppm (gok)"_kspace_style.html, -"pppm/cg (o)"_kspace_style.html, -"pppm/disp (i)"_kspace_style.html, -"pppm/disp/tip4p"_kspace_style.html, -"pppm/stagger"_kspace_style.html, -"pppm/tip4p (o)"_kspace_style.html :tb(c=4,ea=c) diff --git a/doc/src/Section_history.txt b/doc/src/Section_history.txt deleted file mode 100644 index 6bbd1e4d99..0000000000 --- a/doc/src/Section_history.txt +++ /dev/null @@ -1,135 +0,0 @@ -"Previous Section"_Errors.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Manual.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -13. Future and history :h2 - -This section lists features we plan to add to LAMMPS, features of -previous versions of LAMMPS, and features of other parallel molecular -dynamics codes our group has distributed. - -13.1 "Coming attractions"_#hist_1 -13.2 "Past versions"_#hist_2 :all(b) - -:line -:line - -13.1 Coming attractions :h3,link(hist_1) - -As of summer 2016 we are using the "LAMMPS project issue tracker -on GitHub"_https://github.com/lammps/lammps/issues for keeping -track of suggested, planned or pending new features. This includes -discussions of how to best implement them, or why they would be -useful. Especially if a planned or proposed feature is non-trivial -to add, e.g. because it requires changes to some of the core -classes of LAMMPS, people planning to contribute a new feature to -LAMMS are encouraged to submit an issue about their planned -implementation this way in order to receive feedback from the -LAMMPS core developers. They will provide suggestions about -the validity of the proposed approach and possible improvements, -pitfalls or alternatives. - -Please see some of the closed issues for examples of how to -suggest code enhancements, submit proposed changes, or report -possible bugs and how they are resolved. - -As an alternative to using GitHub, you may e-mail the -"core developers"_http://lammps.sandia.gov/authors.html or send -an e-mail to the "LAMMPS Mail list"_http://lammps.sandia.gov/mail.html -if you want to have your suggestion added to the list. - -:line - -13.2 Past versions :h3,link(hist_2) - -LAMMPS development began in the mid 1990s under a cooperative research -& development agreement (CRADA) between two DOE labs (Sandia and LLNL) -and 3 companies (Cray, Bristol Myers Squibb, and Dupont). The goal was -to develop a large-scale parallel classical MD code; the coding effort -was led by Steve Plimpton at Sandia. - -After the CRADA ended, a final F77 version, LAMMPS 99, was -released. As development of LAMMPS continued at Sandia, its memory -management was converted to F90; a final F90 version was released as -LAMMPS 2001. - -The current LAMMPS is a rewrite in C++ and was first publicly released -as an open source code in 2004. It includes many new features beyond -those in LAMMPS 99 or 2001. It also includes features from older -parallel MD codes written at Sandia, namely ParaDyn, Warp, and -GranFlow (see below). - -In late 2006 we began merging new capabilities into LAMMPS that were -developed by Aidan Thompson at Sandia for his MD code GRASP, which has -a parallel framework similar to LAMMPS. Most notably, these have -included many-body potentials - Stillinger-Weber, Tersoff, ReaxFF - -and the associated charge-equilibration routines needed for ReaxFF. - -The "History link"_http://lammps.sandia.gov/history.html on the -LAMMPS WWW page gives a timeline of features added to the -C++ open-source version of LAMMPS over the last several years. - -These older codes are available for download from the "LAMMPS WWW -site"_lws, except for Warp & GranFlow which were primarily used -internally. A brief listing of their features is given here. - -LAMMPS 2001 - - F90 + MPI - dynamic memory - spatial-decomposition parallelism - NVE, NVT, NPT, NPH, rRESPA integrators - LJ and Coulombic pairwise force fields - all-atom, united-atom, bead-spring polymer force fields - CHARMM-compatible force fields - class 2 force fields - 3d/2d Ewald & PPPM - various force and temperature constraints - SHAKE - Hessian-free truncated-Newton minimizer - user-defined diagnostics :ul - -LAMMPS 99 - - F77 + MPI - static memory allocation - spatial-decomposition parallelism - most of the LAMMPS 2001 features with a few exceptions - no 2d Ewald & PPPM - molecular force fields are missing a few CHARMM terms - no SHAKE :ul - -Warp - - F90 + MPI - spatial-decomposition parallelism - embedded atom method (EAM) metal potentials + LJ - lattice and grain-boundary atom creation - NVE, NVT integrators - boundary conditions for applying shear stresses - temperature controls for actively sheared systems - per-atom energy and centro-symmetry computation and output :ul - -ParaDyn - - F77 + MPI - atom- and force-decomposition parallelism - embedded atom method (EAM) metal potentials - lattice atom creation - NVE, NVT, NPT integrators - all serial DYNAMO features for controls and constraints :ul - -GranFlow - - F90 + MPI - spatial-decomposition parallelism - frictional granular potentials - NVE integrator - boundary conditions for granular flow and packing and walls - particle insertion :ul diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt deleted file mode 100644 index 3c5fe47057..0000000000 --- a/doc/src/Section_howto.txt +++ /dev/null @@ -1,3011 +0,0 @@ -"Previous Section"_Section_accelerate.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Examples.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -6. How-to discussions :h2 - -This section describes how to perform common tasks using LAMMPS. - -6.1 "Restarting a simulation"_#howto_1 -6.2 "2d simulations"_#howto_2 -6.3 "CHARMM, AMBER, and DREIDING force fields"_#howto_3 -6.4 "Running multiple simulations from one input script"_#howto_4 -6.5 "Multi-replica simulations"_#howto_5 -6.6 "Granular models"_#howto_6 -6.7 "TIP3P water model"_#howto_7 -6.8 "TIP4P water model"_#howto_8 -6.9 "SPC water model"_#howto_9 -6.10 "Coupling LAMMPS to other codes"_#howto_10 -6.11 "Visualizing LAMMPS snapshots"_#howto_11 -6.12 "Triclinic (non-orthogonal) simulation boxes"_#howto_12 -6.13 "NEMD simulations"_#howto_13 -6.14 "Finite-size spherical and aspherical particles"_#howto_14 -6.15 "Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_#howto_15 -6.16 "Thermostatting, barostatting and computing temperature"_#howto_16 -6.17 "Walls"_#howto_17 -6.18 "Elastic constants"_#howto_18 -6.19 "Library interface to LAMMPS"_#howto_19 -6.20 "Calculating thermal conductivity"_#howto_20 -6.21 "Calculating viscosity"_#howto_21 -6.22 "Calculating a diffusion coefficient"_#howto_22 -6.23 "Using chunks to calculate system properties"_#howto_23 -6.24 "Setting parameters for the kspace_style pppm/disp command"_#howto_24 -6.25 "Polarizable models"_#howto_25 -6.26 "Adiabatic core/shell model"_#howto_26 -6.27 "Drude induced dipoles"_#howto_27 -6.28 "Magnetic spins"_#howto_28 :all(b) - -The example input scripts included in the LAMMPS distribution and -highlighted on the "Examples"_Examples.html doc page also show how to -setup and run various kinds of simulations. - -:line -:line - -6.1 Restarting a simulation :link(howto_1),h4 - -There are 3 ways to continue a long LAMMPS simulation. Multiple -"run"_run.html commands can be used in the same input script. Each -run will continue from where the previous run left off. Or binary -restart files can be saved to disk using the "restart"_restart.html -command. At a later time, these binary files can be read via a -"read_restart"_read_restart.html command in a new script. Or they can -be converted to text data files using the "-r command-line -switch"_Section_start.html#start_6 and read by a -"read_data"_read_data.html command in a new script. - -Here we give examples of 2 scripts that read either a binary restart -file or a converted data file and then issue a new run command to -continue where the previous run left off. They illustrate what -settings must be made in the new script. Details are discussed in the -documentation for the "read_restart"_read_restart.html and -"read_data"_read_data.html commands. - -Look at the {in.chain} input script provided in the {bench} directory -of the LAMMPS distribution to see the original script that these 2 -scripts are based on. If that script had the line - -restart 50 tmp.restart :pre - -added to it, it would produce 2 binary restart files (tmp.restart.50 -and tmp.restart.100) as it ran. - -This script could be used to read the 1st restart file and re-run the -last 50 timesteps: - -read_restart tmp.restart.50 :pre - -neighbor 0.4 bin -neigh_modify every 1 delay 1 :pre - -fix 1 all nve -fix 2 all langevin 1.0 1.0 10.0 904297 :pre - -timestep 0.012 :pre - -run 50 :pre - -Note that the following commands do not need to be repeated because -their settings are included in the restart file: {units, atom_style, -special_bonds, pair_style, bond_style}. However these commands do -need to be used, since their settings are not in the restart file: -{neighbor, fix, timestep}. - -If you actually use this script to perform a restarted run, you will -notice that the thermodynamic data match at step 50 (if you also put a -"thermo 50" command in the original script), but do not match at step -100. This is because the "fix langevin"_fix_langevin.html command -uses random numbers in a way that does not allow for perfect restarts. - -As an alternate approach, the restart file could be converted to a data -file as follows: - -lmp_g++ -r tmp.restart.50 tmp.restart.data :pre - -Then, this script could be used to re-run the last 50 steps: - -units lj -atom_style bond -pair_style lj/cut 1.12 -pair_modify shift yes -bond_style fene -special_bonds 0.0 1.0 1.0 :pre - -read_data tmp.restart.data :pre - -neighbor 0.4 bin -neigh_modify every 1 delay 1 :pre - -fix 1 all nve -fix 2 all langevin 1.0 1.0 10.0 904297 :pre - -timestep 0.012 :pre - -reset_timestep 50 -run 50 :pre - -Note that nearly all the settings specified in the original {in.chain} -script must be repeated, except the {pair_coeff} and {bond_coeff} -commands since the new data file lists the force field coefficients. -Also, the "reset_timestep"_reset_timestep.html command is used to tell -LAMMPS the current timestep. This value is stored in restart files, -but not in data files. - -:line - -6.2 2d simulations :link(howto_2),h4 - -Use the "dimension"_dimension.html command to specify a 2d simulation. - -Make the simulation box periodic in z via the "boundary"_boundary.html -command. This is the default. - -If using the "create box"_create_box.html command to define a -simulation box, set the z dimensions narrow, but finite, so that the -create_atoms command will tile the 3d simulation box with a single z -plane of atoms - e.g. - -"create box"_create_box.html 1 -10 10 -10 10 -0.25 0.25 :pre - -If using the "read data"_read_data.html command to read in a file of -atom coordinates, set the "zlo zhi" values to be finite but narrow, -similar to the create_box command settings just described. For each -atom in the file, assign a z coordinate so it falls inside the -z-boundaries of the box - e.g. 0.0. - -Use the "fix enforce2d"_fix_enforce2d.html command as the last -defined fix to insure that the z-components of velocities and forces -are zeroed out every timestep. The reason to make it the last fix is -so that any forces induced by other fixes will be zeroed out. - -Many of the example input scripts included in the LAMMPS distribution -are for 2d models. - -NOTE: Some models in LAMMPS treat particles as finite-size spheres, as -opposed to point particles. See the "atom_style -sphere"_atom_style.html and "fix nve/sphere"_fix_nve_sphere.html -commands for details. By default, for 2d simulations, such particles -will still be modeled as 3d spheres, not 2d discs (circles), meaning -their moment of inertia will be that of a sphere. If you wish to -model them as 2d discs, see the "set density/disc"_set.html command -and the {disc} option for the "fix nve/sphere"_fix_nve_sphere.html, -"fix nvt/sphere"_fix_nvt_sphere.html, "fix -nph/sphere"_fix_nph_sphere.html, "fix npt/sphere"_fix_npt_sphere.html -commands. - -:line - -6.3 CHARMM, AMBER, and DREIDING force fields :link(howto_3),h4 - -A force field has 2 parts: the formulas that define it and the -coefficients used for a particular system. Here we only discuss -formulas implemented in LAMMPS that correspond to formulas commonly -used in the CHARMM, AMBER, and DREIDING force fields. Setting -coefficients is done in the input data file via the -"read_data"_read_data.html command or in the input script with -commands like "pair_coeff"_pair_coeff.html or -"bond_coeff"_bond_coeff.html. See the "Tools"_Tools.html doc page for -additional tools that can use CHARMM or AMBER to assign force field -coefficients and convert their output into LAMMPS input. - -See "(MacKerell)"_#howto-MacKerell for a description of the CHARMM force -field. See "(Cornell)"_#howto-Cornell for a description of the AMBER force -field. - -:link(charmm,http://www.scripps.edu/brooks) -:link(amber,http://amber.scripps.edu) - -These style choices compute force field formulas that are consistent -with common options in CHARMM or AMBER. See each command's -documentation for the formula it computes. - -"bond_style"_bond_harmonic.html harmonic -"angle_style"_angle_charmm.html charmm -"dihedral_style"_dihedral_charmm.html charmmfsh -"dihedral_style"_dihedral_charmm.html charmm -"pair_style"_pair_charmm.html lj/charmmfsw/coul/charmmfsh -"pair_style"_pair_charmm.html lj/charmmfsw/coul/long -"pair_style"_pair_charmm.html lj/charmm/coul/charmm -"pair_style"_pair_charmm.html lj/charmm/coul/charmm/implicit -"pair_style"_pair_charmm.html lj/charmm/coul/long :ul - -"special_bonds"_special_bonds.html charmm -"special_bonds"_special_bonds.html amber :ul - -NOTE: For CHARMM, newer {charmmfsw} or {charmmfsh} styles were -released in March 2017. We recommend they be used instead of the -older {charmm} styles. See discussion of the differences on the "pair -charmm"_pair_charmm.html and "dihedral charmm"_dihedral_charmm.html -doc pages. - -DREIDING is a generic force field developed by the "Goddard -group"_http://www.wag.caltech.edu at Caltech and is useful for -predicting structures and dynamics of organic, biological and -main-group inorganic molecules. The philosophy in DREIDING is to use -general force constants and geometry parameters based on simple -hybridization considerations, rather than individual force constants -and geometric parameters that depend on the particular combinations of -atoms involved in the bond, angle, or torsion terms. DREIDING has an -"explicit hydrogen bond term"_pair_hbond_dreiding.html to describe -interactions involving a hydrogen atom on very electronegative atoms -(N, O, F). - -See "(Mayo)"_#howto-Mayo for a description of the DREIDING force field - -These style choices compute force field formulas that are consistent -with the DREIDING force field. See each command's -documentation for the formula it computes. - -"bond_style"_bond_harmonic.html harmonic -"bond_style"_bond_morse.html morse :ul - -"angle_style"_angle_harmonic.html harmonic -"angle_style"_angle_cosine.html cosine -"angle_style"_angle_cosine_periodic.html cosine/periodic :ul - -"dihedral_style"_dihedral_charmm.html charmm -"improper_style"_improper_umbrella.html umbrella :ul - -"pair_style"_pair_buck.html buck -"pair_style"_pair_buck.html buck/coul/cut -"pair_style"_pair_buck.html buck/coul/long -"pair_style"_pair_lj.html lj/cut -"pair_style"_pair_lj.html lj/cut/coul/cut -"pair_style"_pair_lj.html lj/cut/coul/long :ul - -"pair_style"_pair_hbond_dreiding.html hbond/dreiding/lj -"pair_style"_pair_hbond_dreiding.html hbond/dreiding/morse :ul - -"special_bonds"_special_bonds.html dreiding :ul - -:line - -6.4 Running multiple simulations from one input script :link(howto_4),h4 - -This can be done in several ways. See the documentation for -individual commands for more details on how these examples work. - -If "multiple simulations" means continue a previous simulation for -more timesteps, then you simply use the "run"_run.html command -multiple times. For example, this script - -units lj -atom_style atomic -read_data data.lj -run 10000 -run 10000 -run 10000 -run 10000 -run 10000 :pre - -would run 5 successive simulations of the same system for a total of -50,000 timesteps. - -If you wish to run totally different simulations, one after the other, -the "clear"_clear.html command can be used in between them to -re-initialize LAMMPS. For example, this script - -units lj -atom_style atomic -read_data data.lj -run 10000 -clear -units lj -atom_style atomic -read_data data.lj.new -run 10000 :pre - -would run 2 independent simulations, one after the other. - -For large numbers of independent simulations, you can use -"variables"_variable.html and the "next"_next.html and -"jump"_jump.html commands to loop over the same input script -multiple times with different settings. For example, this -script, named in.polymer - -variable d index run1 run2 run3 run4 run5 run6 run7 run8 -shell cd $d -read_data data.polymer -run 10000 -shell cd .. -clear -next d -jump in.polymer :pre - -would run 8 simulations in different directories, using a data.polymer -file in each directory. The same concept could be used to run the -same system at 8 different temperatures, using a temperature variable -and storing the output in different log and dump files, for example - -variable a loop 8 -variable t index 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15 -log log.$a -read data.polymer -velocity all create $t 352839 -fix 1 all nvt $t $t 100.0 -dump 1 all atom 1000 dump.$a -run 100000 -clear -next t -next a -jump in.polymer :pre - -All of the above examples work whether you are running on 1 or -multiple processors, but assumed you are running LAMMPS on a single -partition of processors. LAMMPS can be run on multiple partitions via -the "-partition" command-line switch as described in "this -section"_Section_start.html#start_6 of the manual. - -In the last 2 examples, if LAMMPS were run on 3 partitions, the same -scripts could be used if the "index" and "loop" variables were -replaced with {universe}-style variables, as described in the -"variable"_variable.html command. Also, the "next t" and "next a" -commands would need to be replaced with a single "next a t" command. -With these modifications, the 8 simulations of each script would run -on the 3 partitions one after the other until all were finished. -Initially, 3 simulations would be started simultaneously, one on each -partition. When one finished, that partition would then start -the 4th simulation, and so forth, until all 8 were completed. - -:line - -6.5 Multi-replica simulations :link(howto_5),h4 - -Several commands in LAMMPS run mutli-replica simulations, meaning -that multiple instances (replicas) of your simulation are run -simultaneously, with small amounts of data exchanged between replicas -periodically. - -These are the relevant commands: - -"neb"_neb.html for nudged elastic band calculations -"prd"_prd.html for parallel replica dynamics -"tad"_tad.html for temperature accelerated dynamics -"temper"_temper.html for parallel tempering -"fix pimd"_fix_pimd.html for path-integral molecular dynamics (PIMD) :ul - -NEB is a method for finding transition states and barrier energies. -PRD and TAD are methods for performing accelerated dynamics to find -and perform infrequent events. Parallel tempering or replica exchange -runs different replicas at a series of temperature to facilitate -rare-event sampling. - -These commands can only be used if LAMMPS was built with the REPLICA -package. See the "Making LAMMPS"_Section_start.html#start_3 section -for more info on packages. - -PIMD runs different replicas whose individual particles are coupled -together by springs to model a system or ring-polymers. - -This commands can only be used if LAMMPS was built with the USER-MISC -package. See the "Making LAMMPS"_Section_start.html#start_3 section -for more info on packages. - -In all these cases, you must run with one or more processors per -replica. The processors assigned to each replica are determined at -run-time by using the "-partition command-line -switch"_Section_start.html#start_6 to launch LAMMPS on multiple -partitions, which in this context are the same as replicas. E.g. -these commands: - -mpirun -np 16 lmp_linux -partition 8x2 -in in.temper -mpirun -np 8 lmp_linux -partition 8x1 -in in.neb :pre - -would each run 8 replicas, on either 16 or 8 processors. Note the use -of the "-in command-line switch"_Section_start.html#start_6 to specify -the input script which is required when running in multi-replica mode. - -Also note that with MPI installed on a machine (e.g. your desktop), -you can run on more (virtual) processors than you have physical -processors. Thus the above commands could be run on a -single-processor (or few-processor) desktop so that you can run -a multi-replica simulation on more replicas than you have -physical processors. - -:line - -6.6 Granular models :link(howto_6),h4 - -Granular system are composed of spherical particles with a diameter, -as opposed to point particles. This means they have an angular -velocity and torque can be imparted to them to cause them to rotate. - -To run a simulation of a granular model, you will want to use -the following commands: - -"atom_style sphere"_atom_style.html -"fix nve/sphere"_fix_nve_sphere.html -"fix gravity"_fix_gravity.html :ul - -This compute - -"compute erotate/sphere"_compute_erotate_sphere.html :ul - -calculates rotational kinetic energy which can be "output with -thermodynamic info"_Section_howto.html#howto_15. - -Use one of these 3 pair potentials, which compute forces and torques -between interacting pairs of particles: - -"pair_style"_pair_style.html gran/history -"pair_style"_pair_style.html gran/no_history -"pair_style"_pair_style.html gran/hertzian :ul - -These commands implement fix options specific to granular systems: - -"fix freeze"_fix_freeze.html -"fix pour"_fix_pour.html -"fix viscous"_fix_viscous.html -"fix wall/gran"_fix_wall_gran.html :ul - -The fix style {freeze} zeroes both the force and torque of frozen -atoms, and should be used for granular system instead of the fix style -{setforce}. - -For computational efficiency, you can eliminate needless pairwise -computations between frozen atoms by using this command: - -"neigh_modify"_neigh_modify.html exclude :ul - -NOTE: By default, for 2d systems, granular particles are still modeled -as 3d spheres, not 2d discs (circles), meaning their moment of inertia -will be the same as in 3d. If you wish to model granular particles in -2d as 2d discs, see the note on this topic in "Section -6.2"_Section_howto.html#howto_2, where 2d simulations are discussed. - -:line - -6.7 TIP3P water model :link(howto_7),h4 - -The TIP3P water model as implemented in CHARMM -"(MacKerell)"_#howto-MacKerell specifies a 3-site rigid water molecule with -charges and Lennard-Jones parameters assigned to each of the 3 atoms. -In LAMMPS the "fix shake"_fix_shake.html command can be used to hold -the two O-H bonds and the H-O-H angle rigid. A bond style of -{harmonic} and an angle style of {harmonic} or {charmm} should also be -used. - -These are the additional parameters (in real units) to set for O and H -atoms and the water molecule to run a rigid TIP3P-CHARMM model with a -cutoff. The K values can be used if a flexible TIP3P model (without -fix shake) is desired. If the LJ epsilon and sigma for HH and OH are -set to 0.0, it corresponds to the original 1983 TIP3P model -"(Jorgensen)"_#Jorgensen1. - -O mass = 15.9994 -H mass = 1.008 -O charge = -0.834 -H charge = 0.417 -LJ epsilon of OO = 0.1521 -LJ sigma of OO = 3.1507 -LJ epsilon of HH = 0.0460 -LJ sigma of HH = 0.4000 -LJ epsilon of OH = 0.0836 -LJ sigma of OH = 1.7753 -K of OH bond = 450 -r0 of OH bond = 0.9572 -K of HOH angle = 55 -theta of HOH angle = 104.52 :all(b),p - -These are the parameters to use for TIP3P with a long-range Coulombic -solver (e.g. Ewald or PPPM in LAMMPS), see "(Price)"_#Price1 for -details: - -O mass = 15.9994 -H mass = 1.008 -O charge = -0.830 -H charge = 0.415 -LJ epsilon of OO = 0.102 -LJ sigma of OO = 3.188 -LJ epsilon, sigma of OH, HH = 0.0 -K of OH bond = 450 -r0 of OH bond = 0.9572 -K of HOH angle = 55 -theta of HOH angle = 104.52 :all(b),p - -Wikipedia also has a nice article on "water -models"_http://en.wikipedia.org/wiki/Water_model. - -:line - -6.8 TIP4P water model :link(howto_8),h4 - -The four-point TIP4P rigid water model extends the traditional -three-point TIP3P model by adding an additional site, usually -massless, where the charge associated with the oxygen atom is placed. -This site M is located at a fixed distance away from the oxygen along -the bisector of the HOH bond angle. A bond style of {harmonic} and an -angle style of {harmonic} or {charmm} should also be used. - -A TIP4P model is run with LAMMPS using either this command -for a cutoff model: - -"pair_style lj/cut/tip4p/cut"_pair_lj.html - -or these two commands for a long-range model: - -"pair_style lj/cut/tip4p/long"_pair_lj.html -"kspace_style pppm/tip4p"_kspace_style.html :ul - -For both models, the bond lengths and bond angles should be held fixed -using the "fix shake"_fix_shake.html command. - -These are the additional parameters (in real units) to set for O and H -atoms and the water molecule to run a rigid TIP4P model with a cutoff -"(Jorgensen)"_#Jorgensen1. Note that the OM distance is specified in -the "pair_style"_pair_style.html command, not as part of the pair -coefficients. - -O mass = 15.9994 -H mass = 1.008 -O charge = -1.040 -H charge = 0.520 -r0 of OH bond = 0.9572 -theta of HOH angle = 104.52 -OM distance = 0.15 -LJ epsilon of O-O = 0.1550 -LJ sigma of O-O = 3.1536 -LJ epsilon, sigma of OH, HH = 0.0 -Coulombic cutoff = 8.5 :all(b),p - -For the TIP4/Ice model (J Chem Phys, 122, 234511 (2005); -http://dx.doi.org/10.1063/1.1931662) these values can be used: - -O mass = 15.9994 -H mass = 1.008 -O charge = -1.1794 -H charge = 0.5897 -r0 of OH bond = 0.9572 -theta of HOH angle = 104.52 -OM distance = 0.1577 -LJ epsilon of O-O = 0.21084 -LJ sigma of O-O = 3.1668 -LJ epsilon, sigma of OH, HH = 0.0 -Coulombic cutoff = 8.5 :all(b),p - -For the TIP4P/2005 model (J Chem Phys, 123, 234505 (2005); -http://dx.doi.org/10.1063/1.2121687), these values can be used: - -O mass = 15.9994 -H mass = 1.008 -O charge = -1.1128 -H charge = 0.5564 -r0 of OH bond = 0.9572 -theta of HOH angle = 104.52 -OM distance = 0.1546 -LJ epsilon of O-O = 0.1852 -LJ sigma of O-O = 3.1589 -LJ epsilon, sigma of OH, HH = 0.0 -Coulombic cutoff = 8.5 :all(b),p - -These are the parameters to use for TIP4P with a long-range Coulombic -solver (e.g. Ewald or PPPM in LAMMPS): - -O mass = 15.9994 -H mass = 1.008 -O charge = -1.0484 -H charge = 0.5242 -r0 of OH bond = 0.9572 -theta of HOH angle = 104.52 -OM distance = 0.1250 -LJ epsilon of O-O = 0.16275 -LJ sigma of O-O = 3.16435 -LJ epsilon, sigma of OH, HH = 0.0 :all(b),p - -Note that the when using the TIP4P pair style, the neighbor list -cutoff for Coulomb interactions is effectively extended by a distance -2 * (OM distance), to account for the offset distance of the -fictitious charges on O atoms in water molecules. Thus it is -typically best in an efficiency sense to use a LJ cutoff >= Coulomb -cutoff + 2*(OM distance), to shrink the size of the neighbor list. -This leads to slightly larger cost for the long-range calculation, so -you can test the trade-off for your model. The OM distance and the LJ -and Coulombic cutoffs are set in the "pair_style -lj/cut/tip4p/long"_pair_lj.html command. - -Wikipedia also has a nice article on "water -models"_http://en.wikipedia.org/wiki/Water_model. - -:line - -6.9 SPC water model :link(howto_9),h4 - -The SPC water model specifies a 3-site rigid water molecule with -charges and Lennard-Jones parameters assigned to each of the 3 atoms. -In LAMMPS the "fix shake"_fix_shake.html command can be used to hold -the two O-H bonds and the H-O-H angle rigid. A bond style of -{harmonic} and an angle style of {harmonic} or {charmm} should also be -used. - -These are the additional parameters (in real units) to set for O and H -atoms and the water molecule to run a rigid SPC model. - -O mass = 15.9994 -H mass = 1.008 -O charge = -0.820 -H charge = 0.410 -LJ epsilon of OO = 0.1553 -LJ sigma of OO = 3.166 -LJ epsilon, sigma of OH, HH = 0.0 -r0 of OH bond = 1.0 -theta of HOH angle = 109.47 :all(b),p - -Note that as originally proposed, the SPC model was run with a 9 -Angstrom cutoff for both LJ and Coulommbic terms. It can also be used -with long-range Coulombics (Ewald or PPPM in LAMMPS), without changing -any of the parameters above, though it becomes a different model in -that mode of usage. - -The SPC/E (extended) water model is the same, except -the partial charge assignments change: - -O charge = -0.8476 -H charge = 0.4238 :all(b),p - -See the "(Berendsen)"_#howto-Berendsen reference for more details on both -the SPC and SPC/E models. - -Wikipedia also has a nice article on "water -models"_http://en.wikipedia.org/wiki/Water_model. - -:line - -6.10 Coupling LAMMPS to other codes :link(howto_10),h4 - -LAMMPS is designed to allow it to be coupled to other codes. For -example, a quantum mechanics code might compute forces on a subset of -atoms and pass those forces to LAMMPS. Or a continuum finite element -(FE) simulation might use atom positions as boundary conditions on FE -nodal points, compute a FE solution, and return interpolated forces on -MD atoms. - -LAMMPS can be coupled to other codes in at least 3 ways. Each has -advantages and disadvantages, which you'll have to think about in the -context of your application. - -(1) Define a new "fix"_fix.html command that calls the other code. In -this scenario, LAMMPS is the driver code. During its timestepping, -the fix is invoked, and can make library calls to the other code, -which has been linked to LAMMPS as a library. This is the way the -"POEMS"_poems package that performs constrained rigid-body motion on -groups of atoms is hooked to LAMMPS. See the "fix -poems"_fix_poems.html command for more details. See the -"Modify"_Modify.html doc page for info on how to add a new fix to -LAMMPS. - -:link(poems,http://www.rpi.edu/~anderk5/lab) - -(2) Define a new LAMMPS command that calls the other code. This is -conceptually similar to method (1), but in this case LAMMPS and the -other code are on a more equal footing. Note that now the other code -is not called during the timestepping of a LAMMPS run, but between -runs. The LAMMPS input script can be used to alternate LAMMPS runs -with calls to the other code, invoked via the new command. The -"run"_run.html command facilitates this with its {every} option, which -makes it easy to run a few steps, invoke the command, run a few steps, -invoke the command, etc. - -In this scenario, the other code can be called as a library, as in -(1), or it could be a stand-alone code, invoked by a system() call -made by the command (assuming your parallel machine allows one or more -processors to start up another program). In the latter case the -stand-alone code could communicate with LAMMPS thru files that the -command writes and reads. - -See the "Modify"_Modify.html doc page for how to add a new command to -LAMMPS. - -(3) Use LAMMPS as a library called by another code. In this case the -other code is the driver and calls LAMMPS as needed. Or a wrapper -code could link and call both LAMMPS and another code as libraries. -Again, the "run"_run.html command has options that allow it to be -invoked with minimal overhead (no setup or clean-up) if you wish to do -multiple short runs, driven by another program. - -Examples of driver codes that call LAMMPS as a library are included in -the examples/COUPLE directory of the LAMMPS distribution; see -examples/COUPLE/README for more details: - -simple: simple driver programs in C++ and C which invoke LAMMPS as a -library :ulb,l - -lammps_quest: coupling of LAMMPS and "Quest"_quest, to run classical -MD with quantum forces calculated by a density functional code :l - -lammps_spparks: coupling of LAMMPS and "SPPARKS"_spparks, to couple -a kinetic Monte Carlo model for grain growth using MD to calculate -strain induced across grain boundaries :l -:ule - -:link(quest,http://dft.sandia.gov/Quest) -:link(spparks,http://www.sandia.gov/~sjplimp/spparks.html) - -"This section"_Section_start.html#start_5 of the documentation -describes how to build LAMMPS as a library. Once this is done, you -can interface with LAMMPS either via C++, C, Fortran, or Python (or -any other language that supports a vanilla C-like interface). For -example, from C++ you could create one (or more) "instances" of -LAMMPS, pass it an input script to process, or execute individual -commands, all by invoking the correct class methods in LAMMPS. From C -or Fortran you can make function calls to do the same things. See the -"Python"_Python.html doc page for a description of the Python wrapper -provided with LAMMPS that operates through the LAMMPS library -interface. - -The files src/library.cpp and library.h contain the C-style interface -to LAMMPS. See "Section 6.19"_Section_howto.html#howto_19 of the -manual for a description of the interface and how to extend it for -your needs. - -Note that the lammps_open() function that creates an instance of -LAMMPS takes an MPI communicator as an argument. This means that -instance of LAMMPS will run on the set of processors in the -communicator. Thus the calling code can run LAMMPS on all or a subset -of processors. For example, a wrapper script might decide to -alternate between LAMMPS and another code, allowing them both to run -on all the processors. Or it might allocate half the processors to -LAMMPS and half to the other code and run both codes simultaneously -before syncing them up periodically. Or it might instantiate multiple -instances of LAMMPS to perform different calculations. - -:line - -6.11 Visualizing LAMMPS snapshots :link(howto_11),h4 - -LAMMPS itself does not do visualization, but snapshots from LAMMPS -simulations can be visualized (and analyzed) in a variety of ways. - -LAMMPS snapshots are created by the "dump"_dump.html command which can -create files in several formats. The native LAMMPS dump format is a -text file (see "dump atom" or "dump custom") which can be visualized -by several popular visualization tools. The "dump -image"_dump_image.html and "dump movie"_dump_image.html styles can -output internally rendered images and convert a sequence of them to a -movie during the MD run. Several programs included with LAMMPS as -auxiliary tools can convert between LAMMPS format files and other -formats. See the "Tools"_Tools.html doc page for details. - -A Python-based toolkit distributed by our group can read native LAMMPS -dump files, including custom dump files with additional columns of -user-specified atom information, and convert them to various formats -or pipe them into visualization software directly. See the "Pizza.py -WWW site"_pizza for details. Specifically, Pizza.py can convert -LAMMPS dump files into PDB, XYZ, "Ensight"_ensight, and VTK formats. -Pizza.py can pipe LAMMPS dump files directly into the Raster3d and -RasMol visualization programs. Pizza.py has tools that do interactive -3d OpenGL visualization and one that creates SVG images of dump file -snapshots. - -:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) -:link(ensight,http://www.ensight.com) -:link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A) - -:line - -6.12 Triclinic (non-orthogonal) simulation boxes :link(howto_12),h4 - -By default, LAMMPS uses an orthogonal simulation box to encompass the -particles. The "boundary"_boundary.html command sets the boundary -conditions of the box (periodic, non-periodic, etc). The orthogonal -box has its "origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors -starting from the origin given by [a] = (xhi-xlo,0,0); [b] = -(0,yhi-ylo,0); [c] = (0,0,zhi-zlo). The 6 parameters -(xlo,xhi,ylo,yhi,zlo,zhi) are defined at the time the simulation box -is created, e.g. by the "create_box"_create_box.html or -"read_data"_read_data.html or "read_restart"_read_restart.html -commands. Additionally, LAMMPS defines box size parameters lx,ly,lz -where lx = xhi-xlo, and similarly in the y and z dimensions. The 6 -parameters, as well as lx,ly,lz, can be output via the "thermo_style -custom"_thermo_style.html command. - -LAMMPS also allows simulations to be performed in triclinic -(non-orthogonal) simulation boxes shaped as a parallelepiped with -triclinic symmetry. The parallelepiped has its "origin" at -(xlo,ylo,zlo) and is defined by 3 edge vectors starting from the -origin given by [a] = (xhi-xlo,0,0); [b] = (xy,yhi-ylo,0); [c] = -(xz,yz,zhi-zlo). {xy,xz,yz} can be 0.0 or positive or negative values -and are called "tilt factors" because they are the amount of -displacement applied to faces of an originally orthogonal box to -transform it into the parallelepiped. In LAMMPS the triclinic -simulation box edge vectors [a], [b], and [c] cannot be arbitrary -vectors. As indicated, [a] must lie on the positive x axis. [b] must -lie in the xy plane, with strictly positive y component. [c] may have -any orientation with strictly positive z component. The requirement -that [a], [b], and [c] have strictly positive x, y, and z components, -respectively, ensures that [a], [b], and [c] form a complete -right-handed basis. These restrictions impose no loss of generality, -since it is possible to rotate/invert any set of 3 crystal basis -vectors so that they conform to the restrictions. - -For example, assume that the 3 vectors [A],[B],[C] are the edge -vectors of a general parallelepiped, where there is no restriction on -[A],[B],[C] other than they form a complete right-handed basis i.e. -[A] x [B] . [C] > 0. The equivalent LAMMPS [a],[b],[c] are a linear -rotation of [A], [B], and [C] and can be computed as follows: - -:c,image(Eqs/transform.jpg) - -where A = | [A] | indicates the scalar length of [A]. The hat symbol (^) -indicates the corresponding unit vector. {beta} and {gamma} are angles -between the vectors described below. Note that by construction, -[a], [b], and [c] have strictly positive x, y, and z components, respectively. -If it should happen that -[A], [B], and [C] form a left-handed basis, then the above equations -are not valid for [c]. In this case, it is necessary -to first apply an inversion. This can be achieved -by interchanging two basis vectors or by changing the sign of one of them. - -For consistency, the same rotation/inversion applied to the basis vectors -must also be applied to atom positions, velocities, -and any other vector quantities. -This can be conveniently achieved by first converting to -fractional coordinates in the -old basis and then converting to distance coordinates in the new basis. -The transformation is given by the following equation: - -:c,image(Eqs/rotate.jpg) - -where {V} is the volume of the box, [X] is the original vector quantity and -[x] is the vector in the LAMMPS basis. - -There is no requirement that a triclinic box be periodic in any -dimension, though it typically should be in at least the 2nd dimension -of the tilt (y in xy) if you want to enforce a shift in periodic -boundary conditions across that boundary. Some commands that work -with triclinic boxes, e.g. the "fix deform"_fix_deform.html and "fix -npt"_fix_nh.html commands, require periodicity or non-shrink-wrap -boundary conditions in specific dimensions. See the command doc pages -for details. - -The 9 parameters (xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) are defined at the -time the simulation box is created. This happens in one of 3 ways. -If the "create_box"_create_box.html command is used with a region of -style {prism}, then a triclinic box is setup. See the -"region"_region.html command for details. If the -"read_data"_read_data.html command is used to define the simulation -box, and the header of the data file contains a line with the "xy xz -yz" keyword, then a triclinic box is setup. See the -"read_data"_read_data.html command for details. Finally, if the -"read_restart"_read_restart.html command reads a restart file which -was written from a simulation using a triclinic box, then a triclinic -box will be setup for the restarted simulation. - -Note that you can define a triclinic box with all 3 tilt factors = -0.0, so that it is initially orthogonal. This is necessary if the box -will become non-orthogonal, e.g. due to the "fix npt"_fix_nh.html or -"fix deform"_fix_deform.html commands. Alternatively, you can use the -"change_box"_change_box.html command to convert a simulation box from -orthogonal to triclinic and vice versa. - -As with orthogonal boxes, LAMMPS defines triclinic box size parameters -lx,ly,lz where lx = xhi-xlo, and similarly in the y and z dimensions. -The 9 parameters, as well as lx,ly,lz, can be output via the -"thermo_style custom"_thermo_style.html command. - -To avoid extremely tilted boxes (which would be computationally -inefficient), LAMMPS normally requires that no tilt factor can skew -the box more than half the distance of the parallel box length, which -is the 1st dimension in the tilt factor (x for xz). This is required -both when the simulation box is created, e.g. via the -"create_box"_create_box.html or "read_data"_read_data.html commands, -as well as when the box shape changes dynamically during a simulation, -e.g. via the "fix deform"_fix_deform.html or "fix npt"_fix_nh.html -commands. - -For example, if xlo = 2 and xhi = 12, then the x box length is 10 and -the xy tilt factor must be between -5 and 5. Similarly, both xz and -yz must be between -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is -not a limitation, since if the maximum tilt factor is 5 (as in this -example), then configurations with tilt = ..., -15, -5, 5, 15, 25, -... are geometrically all equivalent. If the box tilt exceeds this -limit during a dynamics run (e.g. via the "fix deform"_fix_deform.html -command), then the box is "flipped" to an equivalent shape with a tilt -factor within the bounds, so the run can continue. See the "fix -deform"_fix_deform.html doc page for further details. - -One exception to this rule is if the 1st dimension in the tilt -factor (x for xy) is non-periodic. In that case, the limits on the -tilt factor are not enforced, since flipping the box in that dimension -does not change the atom positions due to non-periodicity. In this -mode, if you tilt the system to extreme angles, the simulation will -simply become inefficient, due to the highly skewed simulation box. - -The limitation on not creating a simulation box with a tilt factor -skewing the box more than half the distance of the parallel box length -can be overridden via the "box"_box.html command. Setting the {tilt} -keyword to {large} allows any tilt factors to be specified. - -Box flips that may occur using the "fix deform"_fix_deform.html or -"fix npt"_fix_nh.html commands can be turned off using the {flip no} -option with either of the commands. - -Note that if a simulation box has a large tilt factor, LAMMPS will run -less efficiently, due to the large volume of communication needed to -acquire ghost atoms around a processor's irregular-shaped sub-domain. -For extreme values of tilt, LAMMPS may also lose atoms and generate an -error. - -Triclinic crystal structures are often defined using three lattice -constants {a}, {b}, and {c}, and three angles {alpha}, {beta} and -{gamma}. Note that in this nomenclature, the a, b, and c lattice -constants are the scalar lengths of the edge vectors [a], [b], and [c] -defined above. The relationship between these 6 quantities -(a,b,c,alpha,beta,gamma) and the LAMMPS box sizes (lx,ly,lz) = -(xhi-xlo,yhi-ylo,zhi-zlo) and tilt factors (xy,xz,yz) is as follows: - -:c,image(Eqs/box.jpg) - -The inverse relationship can be written as follows: - -:c,image(Eqs/box_inverse.jpg) - -The values of {a}, {b}, {c} , {alpha}, {beta} , and {gamma} can be printed -out or accessed by computes using the -"thermo_style custom"_thermo_style.html keywords -{cella}, {cellb}, {cellc}, {cellalpha}, {cellbeta}, {cellgamma}, -respectively. - -As discussed on the "dump"_dump.html command doc page, when the BOX -BOUNDS for a snapshot is written to a dump file for a triclinic box, -an orthogonal bounding box which encloses the triclinic simulation box -is output, along with the 3 tilt factors (xy, xz, yz) of the triclinic -box, formatted as follows: - -ITEM: BOX BOUNDS xy xz yz -xlo_bound xhi_bound xy -ylo_bound yhi_bound xz -zlo_bound zhi_bound yz :pre - -This bounding box is convenient for many visualization programs and is -calculated from the 9 triclinic box parameters -(xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) as follows: - -xlo_bound = xlo + MIN(0.0,xy,xz,xy+xz) -xhi_bound = xhi + MAX(0.0,xy,xz,xy+xz) -ylo_bound = ylo + MIN(0.0,yz) -yhi_bound = yhi + MAX(0.0,yz) -zlo_bound = zlo -zhi_bound = zhi :pre - -These formulas can be inverted if you need to convert the bounding box -back into the triclinic box parameters, e.g. xlo = xlo_bound - -MIN(0.0,xy,xz,xy+xz). - -One use of triclinic simulation boxes is to model solid-state crystals -with triclinic symmetry. The "lattice"_lattice.html command can be -used with non-orthogonal basis vectors to define a lattice that will -tile a triclinic simulation box via the -"create_atoms"_create_atoms.html command. - -A second use is to run Parinello-Rahman dynamics via the "fix -npt"_fix_nh.html command, which will adjust the xy, xz, yz tilt -factors to compensate for off-diagonal components of the pressure -tensor. The analog for an "energy minimization"_minimize.html is -the "fix box/relax"_fix_box_relax.html command. - -A third use is to shear a bulk solid to study the response of the -material. The "fix deform"_fix_deform.html command can be used for -this purpose. It allows dynamic control of the xy, xz, yz tilt -factors as a simulation runs. This is discussed in the next section -on non-equilibrium MD (NEMD) simulations. - -:line - -6.13 NEMD simulations :link(howto_13),h4 - -Non-equilibrium molecular dynamics or NEMD simulations are typically -used to measure a fluid's rheological properties such as viscosity. -In LAMMPS, such simulations can be performed by first setting up a -non-orthogonal simulation box (see the preceding Howto section). - -A shear strain can be applied to the simulation box at a desired -strain rate by using the "fix deform"_fix_deform.html command. The -"fix nvt/sllod"_fix_nvt_sllod.html command can be used to thermostat -the sheared fluid and integrate the SLLOD equations of motion for the -system. Fix nvt/sllod uses "compute -temp/deform"_compute_temp_deform.html to compute a thermal temperature -by subtracting out the streaming velocity of the shearing atoms. The -velocity profile or other properties of the fluid can be monitored via -the "fix ave/chunk"_fix_ave_chunk.html command. - -As discussed in the previous section on non-orthogonal simulation -boxes, the amount of tilt or skew that can be applied is limited by -LAMMPS for computational efficiency to be 1/2 of the parallel box -length. However, "fix deform"_fix_deform.html can continuously strain -a box by an arbitrary amount. As discussed in the "fix -deform"_fix_deform.html command, when the tilt value reaches a limit, -the box is flipped to the opposite limit which is an equivalent tiling -of periodic space. The strain rate can then continue to change as -before. In a long NEMD simulation these box re-shaping events may -occur many times. - -In a NEMD simulation, the "remap" option of "fix -deform"_fix_deform.html should be set to "remap v", since that is what -"fix nvt/sllod"_fix_nvt_sllod.html assumes to generate a velocity -profile consistent with the applied shear strain rate. - -An alternative method for calculating viscosities is provided via the -"fix viscosity"_fix_viscosity.html command. - -NEMD simulations can also be used to measure transport properties of a fluid -through a pore or channel. Simulations of steady-state flow can be performed -using the "fix flow/gauss"_fix_flow_gauss.html command. - -:line - -6.14 Finite-size spherical and aspherical particles :link(howto_14),h4 - -Typical MD models treat atoms or particles as point masses. Sometimes -it is desirable to have a model with finite-size particles such as -spheroids or ellipsoids or generalized aspherical bodies. The -difference is that such particles have a moment of inertia, rotational -energy, and angular momentum. Rotation is induced by torque coming -from interactions with other particles. - -LAMMPS has several options for running simulations with these kinds of -particles. The following aspects are discussed in turn: - -atom styles -pair potentials -time integration -computes, thermodynamics, and dump output -rigid bodies composed of finite-size particles :ul - -Example input scripts for these kinds of models are in the body, -colloid, dipole, ellipse, line, peri, pour, and tri directories of the -"examples directory"_Examples.html in the LAMMPS distribution. - -Atom styles :h4 - -There are several "atom styles"_atom_style.html that allow for -definition of finite-size particles: sphere, dipole, ellipsoid, line, -tri, peri, and body. - -The sphere style defines particles that are spheriods and each -particle can have a unique diameter and mass (or density). These -particles store an angular velocity (omega) and can be acted upon by -torque. The "set" command can be used to modify the diameter and mass -of individual particles, after then are created. - -The dipole style does not actually define finite-size particles, but -is often used in conjunction with spherical particles, via a command -like - -atom_style hybrid sphere dipole :pre - -This is because when dipoles interact with each other, they induce -torques, and a particle must be finite-size (i.e. have a moment of -inertia) in order to respond and rotate. See the "atom_style -dipole"_atom_style.html command for details. The "set" command can be -used to modify the orientation and length of the dipole moment of -individual particles, after then are created. - -The ellipsoid style defines particles that are ellipsoids and thus can -be aspherical. Each particle has a shape, specified by 3 diameters, -and mass (or density). These particles store an angular momentum and -their orientation (quaternion), and can be acted upon by torque. They -do not store an angular velocity (omega), which can be in a different -direction than angular momentum, rather they compute it as needed. -The "set" command can be used to modify the diameter, orientation, and -mass of individual particles, after then are created. It also has a -brief explanation of what quaternions are. - -The line style defines line segment particles with two end points and -a mass (or density). They can be used in 2d simulations, and they can -be joined together to form rigid bodies which represent arbitrary -polygons. - -The tri style defines triangular particles with three corner points -and a mass (or density). They can be used in 3d simulations, and they -can be joined together to form rigid bodies which represent arbitrary -particles with a triangulated surface. - -The peri style is used with "Peridynamic models"_pair_peri.html and -defines particles as having a volume, that is used internally in the -"pair_style peri"_pair_peri.html potentials. - -The body style allows for definition of particles which can represent -complex entities, such as surface meshes of discrete points, -collections of sub-particles, deformable objects, etc. The body style -is discussed in more detail on the "body"_body.html doc page. - -Note that if one of these atom styles is used (or multiple styles via -the "atom_style hybrid"_atom_style.html command), not all particles in -the system are required to be finite-size or aspherical. - -For example, in the ellipsoid style, if the 3 shape parameters are set -to the same value, the particle will be a sphere rather than an -ellipsoid. If the 3 shape parameters are all set to 0.0 or if the -diameter is set to 0.0, it will be a point particle. In the line or -tri style, if the lineflag or triflag is specified as 0, then it -will be a point particle. - -Some of the pair styles used to compute pairwise interactions between -finite-size particles also compute the correct interaction with point -particles as well, e.g. the interaction between a point particle and a -finite-size particle or between two point particles. If necessary, -"pair_style hybrid"_pair_hybrid.html can be used to insure the correct -interactions are computed for the appropriate style of interactions. -Likewise, using groups to partition particles (ellipsoids versus -spheres versus point particles) will allow you to use the appropriate -time integrators and temperature computations for each class of -particles. See the doc pages for various commands for details. - -Also note that for "2d simulations"_dimension.html, atom styles sphere -and ellipsoid still use 3d particles, rather than as circular disks or -ellipses. This means they have the same moment of inertia as the 3d -object. When temperature is computed, the correct degrees of freedom -are used for rotation in a 2d versus 3d system. - -Pair potentials :h4 - -When a system with finite-size particles is defined, the particles -will only rotate and experience torque if the force field computes -such interactions. These are the various "pair -styles"_pair_style.html that generate torque: - -"pair_style gran/history"_pair_gran.html -"pair_style gran/hertzian"_pair_gran.html -"pair_style gran/no_history"_pair_gran.html -"pair_style dipole/cut"_pair_dipole.html -"pair_style gayberne"_pair_gayberne.html -"pair_style resquared"_pair_resquared.html -"pair_style brownian"_pair_brownian.html -"pair_style lubricate"_pair_lubricate.html -"pair_style line/lj"_pair_line_lj.html -"pair_style tri/lj"_pair_tri_lj.html -"pair_style body"_pair_body.html :ul - -The granular pair styles are used with spherical particles. The -dipole pair style is used with the dipole atom style, which could be -applied to spherical or ellipsoidal particles. The GayBerne and -REsquared potentials require ellipsoidal particles, though they will -also work if the 3 shape parameters are the same (a sphere). The -Brownian and lubrication potentials are used with spherical particles. -The line, tri, and body potentials are used with line segment, -triangular, and body particles respectively. - -Time integration :h4 - -There are several fixes that perform time integration on finite-size -spherical particles, meaning the integrators update the rotational -orientation and angular velocity or angular momentum of the particles: - -"fix nve/sphere"_fix_nve_sphere.html -"fix nvt/sphere"_fix_nvt_sphere.html -"fix npt/sphere"_fix_npt_sphere.html :ul - -Likewise, there are 3 fixes that perform time integration on -ellipsoidal particles: - -"fix nve/asphere"_fix_nve_asphere.html -"fix nvt/asphere"_fix_nvt_asphere.html -"fix npt/asphere"_fix_npt_asphere.html :ul - -The advantage of these fixes is that those which thermostat the -particles include the rotational degrees of freedom in the temperature -calculation and thermostatting. The "fix langevin"_fix_langevin -command can also be used with its {omgea} or {angmom} options to -thermostat the rotational degrees of freedom for spherical or -ellipsoidal particles. Other thermostatting fixes only operate on the -translational kinetic energy of finite-size particles. - -These fixes perform constant NVE time integration on line segment, -triangular, and body particles: - -"fix nve/line"_fix_nve_line.html -"fix nve/tri"_fix_nve_tri.html -"fix nve/body"_fix_nve_body.html :ul - -Note that for mixtures of point and finite-size particles, these -integration fixes can only be used with "groups"_group.html which -contain finite-size particles. - -Computes, thermodynamics, and dump output :h4 - -There are several computes that calculate the temperature or -rotational energy of spherical or ellipsoidal particles: - -"compute temp/sphere"_compute_temp_sphere.html -"compute temp/asphere"_compute_temp_asphere.html -"compute erotate/sphere"_compute_erotate_sphere.html -"compute erotate/asphere"_compute_erotate_asphere.html :ul - -These include rotational degrees of freedom in their computation. If -you wish the thermodynamic output of temperature or pressure to use -one of these computes (e.g. for a system entirely composed of -finite-size particles), then the compute can be defined and the -"thermo_modify"_thermo_modify.html command used. Note that by default -thermodynamic quantities will be calculated with a temperature that -only includes translational degrees of freedom. See the -"thermo_style"_thermo_style.html command for details. - -These commands can be used to output various attributes of finite-size -particles: - -"dump custom"_dump.html -"compute property/atom"_compute_property_atom.html -"dump local"_dump.html -"compute body/local"_compute_body_local.html :ul - -Attributes include the dipole moment, the angular velocity, the -angular momentum, the quaternion, the torque, the end-point and -corner-point coordinates (for line and tri particles), and -sub-particle attributes of body particles. - -Rigid bodies composed of finite-size particles :h4 - -The "fix rigid"_fix_rigid.html command treats a collection of -particles as a rigid body, computes its inertia tensor, sums the total -force and torque on the rigid body each timestep due to forces on its -constituent particles, and integrates the motion of the rigid body. - -If any of the constituent particles of a rigid body are finite-size -particles (spheres or ellipsoids or line segments or triangles), then -their contribution to the inertia tensor of the body is different than -if they were point particles. This means the rotational dynamics of -the rigid body will be different. Thus a model of a dimer is -different if the dimer consists of two point masses versus two -spheroids, even if the two particles have the same mass. Finite-size -particles that experience torque due to their interaction with other -particles will also impart that torque to a rigid body they are part -of. - -See the "fix rigid" command for example of complex rigid-body models -it is possible to define in LAMMPS. - -Note that the "fix shake"_fix_shake.html command can also be used to -treat 2, 3, or 4 particles as a rigid body, but it always assumes the -particles are point masses. - -Also note that body particles cannot be modeled with the "fix -rigid"_fix_rigid.html command. Body particles are treated by LAMMPS -as single particles, though they can store internal state, such as a -list of sub-particles. Individual body partices are typically treated -as rigid bodies, and their motion integrated with a command like "fix -nve/body"_fix_nve_body.html. Interactions between pairs of body -particles are computed via a command like "pair_style -body"_pair_body.html. - -:line - -6.15 Output from LAMMPS (thermo, dumps, computes, fixes, variables) :link(howto_15),h4 - -There are four basic kinds of LAMMPS output: - -"Thermodynamic output"_thermo_style.html, which is a list -of quantities printed every few timesteps to the screen and logfile. :ulb,l - -"Dump files"_dump.html, which contain snapshots of atoms and various -per-atom values and are written at a specified frequency. :l - -Certain fixes can output user-specified quantities to files: "fix -ave/time"_fix_ave_time.html for time averaging, "fix -ave/chunk"_fix_ave_chunk.html for spatial or other averaging, and "fix -print"_fix_print.html for single-line output of -"variables"_variable.html. Fix print can also output to the -screen. :l - -"Restart files"_restart.html. :l -:ule - -A simulation prints one set of thermodynamic output and (optionally) -restart files. It can generate any number of dump files and fix -output files, depending on what "dump"_dump.html and "fix"_fix.html -commands you specify. - -As discussed below, LAMMPS gives you a variety of ways to determine -what quantities are computed and printed when the thermodynamics, -dump, or fix commands listed above perform output. Throughout this -discussion, note that users can also "add their own computes and fixes -to LAMMPS"_Modify.html which can then generate values that can then be -output with these commands. - -The following sub-sections discuss different LAMMPS command related -to output and the kind of data they operate on and produce: - -"Global/per-atom/local data"_#global -"Scalar/vector/array data"_#scalar -"Thermodynamic output"_#thermo -"Dump file output"_#dump -"Fixes that write output files"_#fixoutput -"Computes that process output quantities"_#computeoutput -"Fixes that process output quantities"_#fixprocoutput -"Computes that generate values to output"_#compute -"Fixes that generate values to output"_#fix -"Variables that generate values to output"_#variable -"Summary table of output options and data flow between commands"_#table :ul - -Global/per-atom/local data :h4,link(global) - -Various output-related commands work with three different styles of -data: global, per-atom, or local. A global datum is one or more -system-wide values, e.g. the temperature of the system. A per-atom -datum is one or more values per atom, e.g. the kinetic energy of each -atom. Local datums are calculated by each processor based on the -atoms it owns, but there may be zero or more per atom, e.g. a list of -bond distances. - -Scalar/vector/array data :h4,link(scalar) - -Global, per-atom, and local datums can each come in three kinds: a -single scalar value, a vector of values, or a 2d array of values. The -doc page for a "compute" or "fix" or "variable" that generates data -will specify both the style and kind of data it produces, e.g. a -per-atom vector. - -When a quantity is accessed, as in many of the output commands -discussed below, it can be referenced via the following bracket -notation, where ID in this case is the ID of a compute. The leading -"c_" would be replaced by "f_" for a fix, or "v_" for a variable: - -c_ID | entire scalar, vector, or array -c_ID\[I\] | one element of vector, one column of array -c_ID\[I\]\[J\] | one element of array :tb(s=|) - -In other words, using one bracket reduces the dimension of the data -once (vector -> scalar, array -> vector). Using two brackets reduces -the dimension twice (array -> scalar). Thus a command that uses -scalar values as input can typically also process elements of a vector -or array. - -Thermodynamic output :h4,link(thermo) - -The frequency and format of thermodynamic output is set by the -"thermo"_thermo.html, "thermo_style"_thermo_style.html, and -"thermo_modify"_thermo_modify.html commands. The -"thermo_style"_thermo_style.html command also specifies what values -are calculated and written out. Pre-defined keywords can be specified -(e.g. press, etotal, etc). Three additional kinds of keywords can -also be specified (c_ID, f_ID, v_name), where a "compute"_compute.html -or "fix"_fix.html or "variable"_variable.html provides the value to be -output. In each case, the compute, fix, or variable must generate -global values for input to the "thermo_style custom"_dump.html -command. - -Note that thermodynamic output values can be "extensive" or -"intensive". The former scale with the number of atoms in the system -(e.g. total energy), the latter do not (e.g. temperature). The -setting for "thermo_modify norm"_thermo_modify.html determines whether -extensive quantities are normalized or not. Computes and fixes -produce either extensive or intensive values; see their individual doc -pages for details. "Equal-style variables"_variable.html produce only -intensive values; you can include a division by "natoms" in the -formula if desired, to make an extensive calculation produce an -intensive result. - -Dump file output :h4,link(dump) - -Dump file output is specified by the "dump"_dump.html and -"dump_modify"_dump_modify.html commands. There are several -pre-defined formats (dump atom, dump xtc, etc). - -There is also a "dump custom"_dump.html format where the user -specifies what values are output with each atom. Pre-defined atom -attributes can be specified (id, x, fx, etc). Three additional kinds -of keywords can also be specified (c_ID, f_ID, v_name), where a -"compute"_compute.html or "fix"_fix.html or "variable"_variable.html -provides the values to be output. In each case, the compute, fix, or -variable must generate per-atom values for input to the "dump -custom"_dump.html command. - -There is also a "dump local"_dump.html format where the user specifies -what local values to output. A pre-defined index keyword can be -specified to enumerate the local values. Two additional kinds of -keywords can also be specified (c_ID, f_ID), where a -"compute"_compute.html or "fix"_fix.html or "variable"_variable.html -provides the values to be output. In each case, the compute or fix -must generate local values for input to the "dump local"_dump.html -command. - -Fixes that write output files :h4,link(fixoutput) - -Several fixes take various quantities as input and can write output -files: "fix ave/time"_fix_ave_time.html, "fix -ave/chunk"_fix_ave_chunk.html, "fix ave/histo"_fix_ave_histo.html, -"fix ave/correlate"_fix_ave_correlate.html, and "fix -print"_fix_print.html. - -The "fix ave/time"_fix_ave_time.html command enables direct output to -a file and/or time-averaging of global scalars or vectors. The user -specifies one or more quantities as input. These can be global -"compute"_compute.html values, global "fix"_fix.html values, or -"variables"_variable.html of any style except the atom style which -produces per-atom values. Since a variable can refer to keywords used -by the "thermo_style custom"_thermo_style.html command (like temp or -press) and individual per-atom values, a wide variety of quantities -can be time averaged and/or output in this way. If the inputs are one -or more scalar values, then the fix generate a global scalar or vector -of output. If the inputs are one or more vector values, then the fix -generates a global vector or array of output. The time-averaged -output of this fix can also be used as input to other output commands. - -The "fix ave/chunk"_fix_ave_chunk.html command enables direct output -to a file of chunk-averaged per-atom quantities like those output in -dump files. Chunks can represent spatial bins or other collections of -atoms, e.g. individual molecules. The per-atom quantities can be atom -density (mass or number) or atom attributes such as position, -velocity, force. They can also be per-atom quantities calculated by a -"compute"_compute.html, by a "fix"_fix.html, or by an atom-style -"variable"_variable.html. The chunk-averaged output of this fix can -also be used as input to other output commands. - -The "fix ave/histo"_fix_ave_histo.html command enables direct output -to a file of histogrammed quantities, which can be global or per-atom -or local quantities. The histogram output of this fix can also be -used as input to other output commands. - -The "fix ave/correlate"_fix_ave_correlate.html command enables direct -output to a file of time-correlated quantities, which can be global -values. The correlation matrix output of this fix can also be used as -input to other output commands. - -The "fix print"_fix_print.html command can generate a line of output -written to the screen and log file or to a separate file, periodically -during a running simulation. The line can contain one or more -"variable"_variable.html values for any style variable except the -vector or atom styles). As explained above, variables themselves can -contain references to global values generated by "thermodynamic -keywords"_thermo_style.html, "computes"_compute.html, -"fixes"_fix.html, or other "variables"_variable.html, or to per-atom -values for a specific atom. Thus the "fix print"_fix_print.html -command is a means to output a wide variety of quantities separate -from normal thermodynamic or dump file output. - -Computes that process output quantities :h4,link(computeoutput) - -The "compute reduce"_compute_reduce.html and "compute -reduce/region"_compute_reduce.html commands take one or more per-atom -or local vector quantities as inputs and "reduce" them (sum, min, max, -ave) to scalar quantities. These are produced as output values which -can be used as input to other output commands. - -The "compute slice"_compute_slice.html command take one or more global -vector or array quantities as inputs and extracts a subset of their -values to create a new vector or array. These are produced as output -values which can be used as input to other output commands. - -The "compute property/atom"_compute_property_atom.html command takes a -list of one or more pre-defined atom attributes (id, x, fx, etc) and -stores the values in a per-atom vector or array. These are produced -as output values which can be used as input to other output commands. -The list of atom attributes is the same as for the "dump -custom"_dump.html command. - -The "compute property/local"_compute_property_local.html command takes -a list of one or more pre-defined local attributes (bond info, angle -info, etc) and stores the values in a local vector or array. These -are produced as output values which can be used as input to other -output commands. - -Fixes that process output quantities :h4,link(fixprocoutput) - -The "fix vector"_fix_vector.html command can create global vectors as -output from global scalars as input, accumulating them one element at -a time. - -The "fix ave/atom"_fix_ave_atom.html command performs time-averaging -of per-atom vectors. The per-atom quantities can be atom attributes -such as position, velocity, force. They can also be per-atom -quantities calculated by a "compute"_compute.html, by a -"fix"_fix.html, or by an atom-style "variable"_variable.html. The -time-averaged per-atom output of this fix can be used as input to -other output commands. - -The "fix store/state"_fix_store_state.html command can archive one or -more per-atom attributes at a particular time, so that the old values -can be used in a future calculation or output. The list of atom -attributes is the same as for the "dump custom"_dump.html command, -including per-atom quantities calculated by a "compute"_compute.html, -by a "fix"_fix.html, or by an atom-style "variable"_variable.html. -The output of this fix can be used as input to other output commands. - -Computes that generate values to output :h4,link(compute) - -Every "compute"_compute.html in LAMMPS produces either global or -per-atom or local values. The values can be scalars or vectors or -arrays of data. These values can be output using the other commands -described in this section. The doc page for each compute command -describes what it produces. Computes that produce per-atom or local -values have the word "atom" or "local" in their style name. Computes -without the word "atom" or "local" produce global values. - -Fixes that generate values to output :h4,link(fix) - -Some "fixes"_fix.html in LAMMPS produces either global or per-atom or -local values which can be accessed by other commands. The values can -be scalars or vectors or arrays of data. These values can be output -using the other commands described in this section. The doc page for -each fix command tells whether it produces any output quantities and -describes them. - -Variables that generate values to output :h4,link(variable) - -"Variables"_variable.html defined in an input script can store one or -more strings. But equal-style, vector-style, and atom-style or -atomfile-style variables generate a global scalar value, global vector -or values, or a per-atom vector, respectively, when accessed. The -formulas used to define these variables can contain references to the -thermodynamic keywords and to global and per-atom data generated by -computes, fixes, and other variables. The values generated by -variables can be used as input to and thus output by the other -commands described in this section. - -Summary table of output options and data flow between commands :h4,link(table) - -This table summarizes the various commands that can be used for -generating output from LAMMPS. Each command produces output data of -some kind and/or writes data to a file. Most of the commands can take -data from other commands as input. Thus you can link many of these -commands together in pipeline form, where data produced by one command -is used as input to another command and eventually written to the -screen or to a file. Note that to hook two commands together the -output and input data types must match, e.g. global/per-atom/local -data and scalar/vector/array data. - -Also note that, as described above, when a command takes a scalar as -input, that could be an element of a vector or array. Likewise a -vector input could be a column of an array. - -Command: Input: Output: -"thermo_style custom"_thermo_style.html: global scalars: screen, log file: -"dump custom"_dump.html: per-atom vectors: dump file: -"dump local"_dump.html: local vectors: dump file: -"fix print"_fix_print.html: global scalar from variable: screen, file: -"print"_print.html: global scalar from variable: screen: -"computes"_compute.html: N/A: global/per-atom/local scalar/vector/array: -"fixes"_fix.html: N/A: global/per-atom/local scalar/vector/array: -"variables"_variable.html: global scalars and vectors, per-atom vectors: global scalar and vector, per-atom vector: -"compute reduce"_compute_reduce.html: per-atom/local vectors: global scalar/vector: -"compute slice"_compute_slice.html: global vectors/arrays: global vector/array: -"compute property/atom"_compute_property_atom.html: per-atom vectors: per-atom vector/array: -"compute property/local"_compute_property_local.html: local vectors: local vector/array: -"fix vector"_fix_vector.html: global scalars: global vector: -"fix ave/atom"_fix_ave_atom.html: per-atom vectors: per-atom vector/array: -"fix ave/time"_fix_ave_time.html: global scalars/vectors: global scalar/vector/array, file: -"fix ave/chunk"_fix_ave_chunk.html: per-atom vectors: global array, file: -"fix ave/histo"_fix_ave_histo.html: global/per-atom/local scalars and vectors: global array, file: -"fix ave/correlate"_fix_ave_correlate.html: global scalars: global array, file: -"fix store/state"_fix_store_state.html: per-atom vectors: per-atom vector/array :tb(c=3,s=:) - -:line - -6.16 Thermostatting, barostatting, and computing temperature :link(howto_16),h4 - -Thermostatting means controlling the temperature of particles in an MD -simulation. Barostatting means controlling the pressure. Since the -pressure includes a kinetic component due to particle velocities, both -these operations require calculation of the temperature. Typically a -target temperature (T) and/or pressure (P) is specified by the user, -and the thermostat or barostat attempts to equilibrate the system to -the requested T and/or P. - -Temperature is computed as kinetic energy divided by some number of -degrees of freedom (and the Boltzmann constant). Since kinetic energy -is a function of particle velocity, there is often a need to -distinguish between a particle's advection velocity (due to some -aggregate motion of particles) and its thermal velocity. The sum of -the two is the particle's total velocity, but the latter is often what -is wanted to compute a temperature. - -LAMMPS has several options for computing temperatures, any of which -can be used in thermostatting and barostatting. These "compute -commands"_compute.html calculate temperature, and the "compute -pressure"_compute_pressure.html command calculates pressure. - -"compute temp"_compute_temp.html -"compute temp/sphere"_compute_temp_sphere.html -"compute temp/asphere"_compute_temp_asphere.html -"compute temp/com"_compute_temp_com.html -"compute temp/deform"_compute_temp_deform.html -"compute temp/partial"_compute_temp_partial.html -"compute temp/profile"_compute_temp_profile.html -"compute temp/ramp"_compute_temp_ramp.html -"compute temp/region"_compute_temp_region.html :ul - -All but the first 3 calculate velocity biases directly (e.g. advection -velocities) that are removed when computing the thermal temperature. -"Compute temp/sphere"_compute_temp_sphere.html and "compute -temp/asphere"_compute_temp_asphere.html compute kinetic energy for -finite-size particles that includes rotational degrees of freedom. -They both allow for velocity biases indirectly, via an optional extra -argument, another temperature compute that subtracts a velocity bias. -This allows the translational velocity of spherical or aspherical -particles to be adjusted in prescribed ways. - -Thermostatting in LAMMPS is performed by "fixes"_fix.html, or in one -case by a pair style. Several thermostatting fixes are available: -Nose-Hoover (nvt), Berendsen, CSVR, Langevin, and direct rescaling -(temp/rescale). Dissipative particle dynamics (DPD) thermostatting -can be invoked via the {dpd/tstat} pair style: - -"fix nvt"_fix_nh.html -"fix nvt/sphere"_fix_nvt_sphere.html -"fix nvt/asphere"_fix_nvt_asphere.html -"fix nvt/sllod"_fix_nvt_sllod.html -"fix temp/berendsen"_fix_temp_berendsen.html -"fix temp/csvr"_fix_temp_csvr.html -"fix langevin"_fix_langevin.html -"fix temp/rescale"_fix_temp_rescale.html -"pair_style dpd/tstat"_pair_dpd.html :ul - -"Fix nvt"_fix_nh.html only thermostats the translational velocity of -particles. "Fix nvt/sllod"_fix_nvt_sllod.html also does this, except -that it subtracts out a velocity bias due to a deforming box and -integrates the SLLOD equations of motion. See the "NEMD -simulations"_#howto_13 section of this page for further details. "Fix -nvt/sphere"_fix_nvt_sphere.html and "fix -nvt/asphere"_fix_nvt_asphere.html thermostat not only translation -velocities but also rotational velocities for spherical and aspherical -particles. - -DPD thermostatting alters pairwise interactions in a manner analogous -to the per-particle thermostatting of "fix -langevin"_fix_langevin.html. - -Any of the thermostatting fixes can use temperature computes that -remove bias which has two effects. First, the current calculated -temperature, which is compared to the requested target temperature, is -calculated with the velocity bias removed. Second, the thermostat -adjusts only the thermal temperature component of the particle's -velocities, which are the velocities with the bias removed. The -removed bias is then added back to the adjusted velocities. See the -doc pages for the individual fixes and for the -"fix_modify"_fix_modify.html command for instructions on how to assign -a temperature compute to a thermostatting fix. For example, you can -apply a thermostat to only the x and z components of velocity by using -it in conjunction with "compute -temp/partial"_compute_temp_partial.html. Of you could thermostat only -the thermal temperature of a streaming flow of particles without -affecting the streaming velocity, by using "compute -temp/profile"_compute_temp_profile.html. - -NOTE: Only the nvt fixes perform time integration, meaning they update -the velocities and positions of particles due to forces and velocities -respectively. The other thermostat fixes only adjust velocities; they -do NOT perform time integration updates. Thus they should be used in -conjunction with a constant NVE integration fix such as these: - -"fix nve"_fix_nve.html -"fix nve/sphere"_fix_nve_sphere.html -"fix nve/asphere"_fix_nve_asphere.html :ul - -Barostatting in LAMMPS is also performed by "fixes"_fix.html. Two -barosttating methods are currently available: Nose-Hoover (npt and -nph) and Berendsen: - -"fix npt"_fix_nh.html -"fix npt/sphere"_fix_npt_sphere.html -"fix npt/asphere"_fix_npt_asphere.html -"fix nph"_fix_nh.html -"fix press/berendsen"_fix_press_berendsen.html :ul - -The "fix npt"_fix_nh.html commands include a Nose-Hoover thermostat -and barostat. "Fix nph"_fix_nh.html is just a Nose/Hoover barostat; -it does no thermostatting. Both "fix nph"_fix_nh.html and "fix -press/berendsen"_fix_press_berendsen.html can be used in conjunction -with any of the thermostatting fixes. - -As with the thermostats, "fix npt"_fix_nh.html and "fix -nph"_fix_nh.html only use translational motion of the particles in -computing T and P and performing thermo/barostatting. "Fix -npt/sphere"_fix_npt_sphere.html and "fix -npt/asphere"_fix_npt_asphere.html thermo/barostat using not only -translation velocities but also rotational velocities for spherical -and aspherical particles. - -All of the barostatting fixes use the "compute -pressure"_compute_pressure.html compute to calculate a current -pressure. By default, this compute is created with a simple "compute -temp"_compute_temp.html (see the last argument of the "compute -pressure"_compute_pressure.html command), which is used to calculated -the kinetic component of the pressure. The barostatting fixes can -also use temperature computes that remove bias for the purpose of -computing the kinetic component which contributes to the current -pressure. See the doc pages for the individual fixes and for the -"fix_modify"_fix_modify.html command for instructions on how to assign -a temperature or pressure compute to a barostatting fix. - -NOTE: As with the thermostats, the Nose/Hoover methods ("fix -npt"_fix_nh.html and "fix nph"_fix_nh.html) perform time integration. -"Fix press/berendsen"_fix_press_berendsen.html does NOT, so it should -be used with one of the constant NVE fixes or with one of the NVT -fixes. - -Finally, thermodynamic output, which can be setup via the -"thermo_style"_thermo_style.html command, often includes temperature -and pressure values. As explained on the doc page for the -"thermo_style"_thermo_style.html command, the default T and P are -setup by the thermo command itself. They are NOT the ones associated -with any thermostatting or barostatting fix you have defined or with -any compute that calculates a temperature or pressure. Thus if you -want to view these values of T and P, you need to specify them -explicitly via a "thermo_style custom"_thermo_style.html command. Or -you can use the "thermo_modify"_thermo_modify.html command to -re-define what temperature or pressure compute is used for default -thermodynamic output. - -:line - -6.17 Walls :link(howto_17),h4 - -Walls in an MD simulation are typically used to bound particle motion, -i.e. to serve as a boundary condition. - -Walls in LAMMPS can be of rough (made of particles) or idealized -surfaces. Ideal walls can be smooth, generating forces only in the -normal direction, or frictional, generating forces also in the -tangential direction. - -Rough walls, built of particles, can be created in various ways. The -particles themselves can be generated like any other particle, via the -"lattice"_lattice.html and "create_atoms"_create_atoms.html commands, -or read in via the "read_data"_read_data.html command. - -Their motion can be constrained by many different commands, so that -they do not move at all, move together as a group at constant velocity -or in response to a net force acting on them, move in a prescribed -fashion (e.g. rotate around a point), etc. Note that if a time -integration fix like "fix nve"_fix_nve.html or "fix nvt"_fix_nh.html -is not used with the group that contains wall particles, their -positions and velocities will not be updated. - -"fix aveforce"_fix_aveforce.html - set force on particles to average value, so they move together -"fix setforce"_fix_setforce.html - set force on particles to a value, e.g. 0.0 -"fix freeze"_fix_freeze.html - freeze particles for use as granular walls -"fix nve/noforce"_fix_nve_noforce.html - advect particles by their velocity, but without force -"fix move"_fix_move.html - prescribe motion of particles by a linear velocity, oscillation, rotation, variable :ul - -The "fix move"_fix_move.html command offers the most generality, since -the motion of individual particles can be specified with -"variable"_variable.html formula which depends on time and/or the -particle position. - -For rough walls, it may be useful to turn off pairwise interactions -between wall particles via the "neigh_modify -exclude"_neigh_modify.html command. - -Rough walls can also be created by specifying frozen particles that do -not move and do not interact with mobile particles, and then tethering -other particles to the fixed particles, via a "bond"_bond_style.html. -The bonded particles do interact with other mobile particles. - -Idealized walls can be specified via several fix commands. "Fix -wall/gran"_fix_wall_gran.html creates frictional walls for use with -granular particles; all the other commands create smooth walls. - -"fix wall/reflect"_fix_wall_reflect.html - reflective flat walls -"fix wall/lj93"_fix_wall.html - flat walls, with Lennard-Jones 9/3 potential -"fix wall/lj126"_fix_wall.html - flat walls, with Lennard-Jones 12/6 potential -"fix wall/colloid"_fix_wall.html - flat walls, with "pair_style colloid"_pair_colloid.html potential -"fix wall/harmonic"_fix_wall.html - flat walls, with repulsive harmonic spring potential -"fix wall/region"_fix_wall_region.html - use region surface as wall -"fix wall/gran"_fix_wall_gran.html - flat or curved walls with "pair_style granular"_pair_gran.html potential :ul - -The {lj93}, {lj126}, {colloid}, and {harmonic} styles all allow the -flat walls to move with a constant velocity, or oscillate in time. -The "fix wall/region"_fix_wall_region.html command offers the most -generality, since the region surface is treated as a wall, and the -geometry of the region can be a simple primitive volume (e.g. a -sphere, or cube, or plane), or a complex volume made from the union -and intersection of primitive volumes. "Regions"_region.html can also -specify a volume "interior" or "exterior" to the specified primitive -shape or {union} or {intersection}. "Regions"_region.html can also be -"dynamic" meaning they move with constant velocity, oscillate, or -rotate. - -The only frictional idealized walls currently in LAMMPS are flat or -curved surfaces specified by the "fix wall/gran"_fix_wall_gran.html -command. At some point we plan to allow regoin surfaces to be used as -frictional walls, as well as triangulated surfaces. - -:line - -6.18 Elastic constants :link(howto_18),h4 - -Elastic constants characterize the stiffness of a material. The formal -definition is provided by the linear relation that holds between the -stress and strain tensors in the limit of infinitesimal deformation. -In tensor notation, this is expressed as s_ij = C_ijkl * e_kl, where -the repeated indices imply summation. s_ij are the elements of the -symmetric stress tensor. e_kl are the elements of the symmetric strain -tensor. C_ijkl are the elements of the fourth rank tensor of elastic -constants. In three dimensions, this tensor has 3^4=81 elements. Using -Voigt notation, the tensor can be written as a 6x6 matrix, where C_ij -is now the derivative of s_i w.r.t. e_j. Because s_i is itself a -derivative w.r.t. e_i, it follows that C_ij is also symmetric, with at -most 7*6/2 = 21 distinct elements. - -At zero temperature, it is easy to estimate these derivatives by -deforming the simulation box in one of the six directions using the -"change_box"_change_box.html command and measuring the change in the -stress tensor. A general-purpose script that does this is given in the -examples/elastic directory described on the "Examples"_Examples.html -doc page. - -Calculating elastic constants at finite temperature is more -challenging, because it is necessary to run a simulation that perfoms -time averages of differential properties. One way to do this is to -measure the change in average stress tensor in an NVT simulations when -the cell volume undergoes a finite deformation. In order to balance -the systematic and statistical errors in this method, the magnitude of -the deformation must be chosen judiciously, and care must be taken to -fully equilibrate the deformed cell before sampling the stress -tensor. Another approach is to sample the triclinic cell fluctuations -that occur in an NPT simulation. This method can also be slow to -converge and requires careful post-processing "(Shinoda)"_#Shinoda1 - -:line - -6.19 Library interface to LAMMPS :link(howto_19),h4 - -As described in "Section 2.5"_Section_start.html#start_5, LAMMPS can -be built as a library, so that it can be called by another code, used -in a "coupled manner"_Section_howto.html#howto_10 with other codes, or -driven through a "Python interface"_Python.html. - -All of these methodologies use a C-style interface to LAMMPS that is -provided in the files src/library.cpp and src/library.h. The -functions therein have a C-style argument list, but contain C++ code -you could write yourself in a C++ application that was invoking LAMMPS -directly. The C++ code in the functions illustrates how to invoke -internal LAMMPS operations. Note that LAMMPS classes are defined -within a LAMMPS namespace (LAMMPS_NS) if you use them from another C++ -application. - -The examples/COUPLE and python/examples directories have example C++ -and C and Python codes which show how a driver code can link to LAMMPS -as a library, run LAMMPS on a subset of processors, grab data from -LAMMPS, change it, and put it back into LAMMPS. - -The file src/library.cpp contains the following functions for creating -and destroying an instance of LAMMPS and sending it commands to -execute. See the documentation in the src/library.cpp file for -details. - -NOTE: You can write code for additional functions as needed to define -how your code talks to LAMMPS and add them to src/library.cpp and -src/library.h, as well as to the "Python interface"_Python.html. The -added functions can access or change any internal LAMMPS data you -wish. - -void lammps_open(int, char **, MPI_Comm, void **) -void lammps_open_no_mpi(int, char **, void **) -void lammps_close(void *) -int lammps_version(void *) -void lammps_file(void *, char *) -char *lammps_command(void *, char *) -void lammps_commands_list(void *, int, char **) -void lammps_commands_string(void *, char *) -void lammps_free(void *) :pre - -The lammps_open() function is used to initialize LAMMPS, passing in a -list of strings as if they were "command-line -arguments"_Section_start.html#start_6 when LAMMPS is run in -stand-alone mode from the command line, and a MPI communicator for -LAMMPS to run under. It returns a ptr to the LAMMPS object that is -created, and which is used in subsequent library calls. The -lammps_open() function can be called multiple times, to create -multiple instances of LAMMPS. - -LAMMPS will run on the set of processors in the communicator. This -means the calling code can run LAMMPS on all or a subset of -processors. For example, a wrapper script might decide to alternate -between LAMMPS and another code, allowing them both to run on all the -processors. Or it might allocate half the processors to LAMMPS and -half to the other code and run both codes simultaneously before -syncing them up periodically. Or it might instantiate multiple -instances of LAMMPS to perform different calculations. - -The lammps_open_no_mpi() function is similar except that no MPI -communicator is passed from the caller. Instead, MPI_COMM_WORLD is -used to instantiate LAMMPS, and MPI is initialized if necessary. - -The lammps_close() function is used to shut down an instance of LAMMPS -and free all its memory. - -The lammps_version() function can be used to determined the specific -version of the underlying LAMMPS code. This is particularly useful -when loading LAMMPS as a shared library via dlopen(). The code using -the library interface can than use this information to adapt to -changes to the LAMMPS command syntax between versions. The returned -LAMMPS version code is an integer (e.g. 2 Sep 2015 results in -20150902) that grows with every new LAMMPS version. - -The lammps_file(), lammps_command(), lammps_commands_list(), and -lammps_commands_string() functions are used to pass one or more -commands to LAMMPS to execute, the same as if they were coming from an -input script. - -Via these functions, the calling code can read or generate a series of -LAMMPS commands one or multiple at a time and pass it thru the library -interface to setup a problem and then run it in stages. The caller -can interleave the command function calls with operations it performs, -calls to extract information from or set information within LAMMPS, or -calls to another code's library. - -The lammps_file() function passes the filename of an input script. -The lammps_command() function passes a single command as a string. -The lammps_commands_list() function passes multiple commands in a -char** list. In both lammps_command() and lammps_commands_list(), -individual commands may or may not have a trailing newline. The -lammps_commands_string() function passes multiple commands -concatenated into one long string, separated by newline characters. -In both lammps_commands_list() and lammps_commands_string(), a single -command can be spread across multiple lines, if the last printable -character of all but the last line is "&", the same as if the lines -appeared in an input script. - -The lammps_free() function is a clean-up function to free memory that -the library allocated previously via other function calls. See -comments in src/library.cpp file for which other functions need this -clean-up. - -The file src/library.cpp also contains these functions for extracting -information from LAMMPS and setting value within LAMMPS. Again, see -the documentation in the src/library.cpp file for details, including -which quantities can be queried by name: - -int lammps_extract_setting(void *, char *) -void *lammps_extract_global(void *, char *) -void lammps_extract_box(void *, double *, double *, - double *, double *, double *, int *, int *) -void *lammps_extract_atom(void *, char *) -void *lammps_extract_compute(void *, char *, int, int) -void *lammps_extract_fix(void *, char *, int, int, int, int) -void *lammps_extract_variable(void *, char *, char *) :pre - -The extract_setting() function returns info on the size -of data types (e.g. 32-bit or 64-bit atom IDs) used -by the LAMMPS executable (a compile-time choice). - -The other extract functions return a pointer to various global or -per-atom quantities stored in LAMMPS or to values calculated by a -compute, fix, or variable. The pointer returned by the -extract_global() function can be used as a permanent reference to a -value which may change. For the extract_atom() method, see the -extract() method in the src/atom.cpp file for a list of valid per-atom -properties. New names could easily be added if the property you want -is not listed. For the other extract functions, the underlying -storage may be reallocated as LAMMPS runs, so you need to re-call the -function to assure a current pointer or returned value(s). - -double lammps_get_thermo(void *, char *) -int lammps_get_natoms(void *) :pre - -int lammps_set_variable(void *, char *, char *) -void lammps_reset_box(void *, double *, double *, double, double, double) :pre - -The lammps_get_thermo() function returns the current value of a thermo -keyword as a double precision value. - -The lammps_get_natoms() function returns the total number of atoms in -the system and can be used by the caller to allocate memory for the -lammps_gather_atoms() and lammps_scatter_atoms() functions. - -The lammps_set_variable() function can set an existing string-style -variable to a new string value, so that subsequent LAMMPS commands can -access the variable. - -The lammps_reset_box() function resets the size and shape of the -simulation box, e.g. as part of restoring a previously extracted and -saved state of a simulation. - -void lammps_gather_atoms(void *, char *, int, int, void *) -void lammps_gather_atoms_concat(void *, char *, int, int, void *) -void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *) -void lammps_scatter_atoms(void *, char *, int, int, void *) -void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *) :pre - -void lammps_create_atoms(void *, int, tagint *, int *, double *, double *, - imageint *, int) :pre - -The gather functions collect peratom info of the requested type (atom -coords, atom types, forces, etc) from all processors, and returns the -same vector of values to each callling processor. The scatter -functions do the inverse. They distribute a vector of peratom values, -passed by all calling processors, to invididual atoms, which may be -owned by different processos. - -The lammps_gather_atoms() function does this for all N atoms in the -system, ordered by atom ID, from 1 to N. The -lammps_gather_atoms_concat() function does it for all N atoms, but -simply concatenates the subset of atoms owned by each processor. The -resulting vector is not ordered by atom ID. Atom IDs can be requetsed -by the same function if the caller needs to know the ordering. The -lammps_gather_subset() function allows the caller to request values -for only a subset of atoms (identified by ID). -For all 3 gather function, per-atom image flags can be retrieved in 2 ways. -If the count is specified as 1, they are returned -in a packed format with all three image flags stored in a single integer. -If the count is specified as 3, the values are unpacked into xyz flags -by the library before returning them. - -The lammps_scatter_atoms() function takes a list of values for all N -atoms in the system, ordered by atom ID, from 1 to N, and assigns -those values to each atom in the system. The -lammps_scatter_atoms_subset() function takes a subset of IDs as an -argument and only scatters those values to the owning atoms. - -The lammps_create_atoms() function takes a list of N atoms as input -with atom types and coords (required), an optionally atom IDs and -velocities and image flags. It uses the coords of each atom to assign -it as a new atom to the processor that owns it. This function is -useful to add atoms to a simulation or (in tandem with -lammps_reset_box()) to restore a previously extracted and saved state -of a simulation. Additional properties for the new atoms can then be -assigned via the lammps_scatter_atoms() or lammps_extract_atom() -functions. - -:line - -6.20 Calculating thermal conductivity :link(howto_20),h4 - -The thermal conductivity kappa of a material can be measured in at -least 4 ways using various options in LAMMPS. See the examples/KAPPA -directory for scripts that implement the 4 methods discussed here for -a simple Lennard-Jones fluid model. Also, see "this -section"_Section_howto.html#howto_21 of the manual for an analogous -discussion for viscosity. - -The thermal conductivity tensor kappa is a measure of the propensity -of a material to transmit heat energy in a diffusive manner as given -by Fourier's law - -J = -kappa grad(T) - -where J is the heat flux in units of energy per area per time and -grad(T) is the spatial gradient of temperature. The thermal -conductivity thus has units of energy per distance per time per degree -K and is often approximated as an isotropic quantity, i.e. as a -scalar. - -The first method is to setup two thermostatted regions at opposite -ends of a simulation box, or one in the middle and one at the end of a -periodic box. By holding the two regions at different temperatures -with a "thermostatting fix"_Section_howto.html#howto_13, the energy -added to the hot region should equal the energy subtracted from the -cold region and be proportional to the heat flux moving between the -regions. See the papers by "Ikeshoji and Hafskjold"_#howto-Ikeshoji -and "Wirnsberger et al"_#howto-Wirnsberger for details of this idea. -Note that thermostatting fixes such as "fix nvt"_fix_nh.html, "fix -langevin"_fix_langevin.html, and "fix -temp/rescale"_fix_temp_rescale.html store the cumulative energy they -add/subtract. - -Alternatively, as a second method, the "fix heat"_fix_heat.html or -"fix ehex"_fix_ehex.html commands can be used in place of thermostats -on each of two regions to add/subtract specified amounts of energy to -both regions. In both cases, the resulting temperatures of the two -regions can be monitored with the "compute temp/region" command and -the temperature profile of the intermediate region can be monitored -with the "fix ave/chunk"_fix_ave_chunk.html and "compute -ke/atom"_compute_ke_atom.html commands. - -The third method is to perform a reverse non-equilibrium MD simulation -using the "fix thermal/conductivity"_fix_thermal_conductivity.html -command which implements the rNEMD algorithm of Muller-Plathe. -Kinetic energy is swapped between atoms in two different layers of the -simulation box. This induces a temperature gradient between the two -layers which can be monitored with the "fix -ave/chunk"_fix_ave_chunk.html and "compute -ke/atom"_compute_ke_atom.html commands. The fix tallies the -cumulative energy transfer that it performs. See the "fix -thermal/conductivity"_fix_thermal_conductivity.html command for -details. - -The fourth method is based on the Green-Kubo (GK) formula which -relates the ensemble average of the auto-correlation of the heat flux -to kappa. The heat flux can be calculated from the fluctuations of -per-atom potential and kinetic energies and per-atom stress tensor in -a steady-state equilibrated simulation. This is in contrast to the -two preceding non-equilibrium methods, where energy flows continuously -between hot and cold regions of the simulation box. - -The "compute heat/flux"_compute_heat_flux.html command can calculate -the needed heat flux and describes how to implement the Green_Kubo -formalism using additional LAMMPS commands, such as the "fix -ave/correlate"_fix_ave_correlate.html command to calculate the needed -auto-correlation. See the doc page for the "compute -heat/flux"_compute_heat_flux.html command for an example input script -that calculates the thermal conductivity of solid Ar via the GK -formalism. - -:line - -6.21 Calculating viscosity :link(howto_21),h4 - -The shear viscosity eta of a fluid can be measured in at least 5 ways -using various options in LAMMPS. See the examples/VISCOSITY directory -for scripts that implement the 5 methods discussed here for a simple -Lennard-Jones fluid model. Also, see "this -section"_Section_howto.html#howto_20 of the manual for an analogous -discussion for thermal conductivity. - -Eta is a measure of the propensity of a fluid to transmit momentum in -a direction perpendicular to the direction of velocity or momentum -flow. Alternatively it is the resistance the fluid has to being -sheared. It is given by - -J = -eta grad(Vstream) - -where J is the momentum flux in units of momentum per area per time. -and grad(Vstream) is the spatial gradient of the velocity of the fluid -moving in another direction, normal to the area through which the -momentum flows. Viscosity thus has units of pressure-time. - -The first method is to perform a non-equilibrium MD (NEMD) simulation -by shearing the simulation box via the "fix deform"_fix_deform.html -command, and using the "fix nvt/sllod"_fix_nvt_sllod.html command to -thermostat the fluid via the SLLOD equations of motion. -Alternatively, as a second method, one or more moving walls can be -used to shear the fluid in between them, again with some kind of -thermostat that modifies only the thermal (non-shearing) components of -velocity to prevent the fluid from heating up. - -In both cases, the velocity profile setup in the fluid by this -procedure can be monitored by the "fix -ave/chunk"_fix_ave_chunk.html command, which determines -grad(Vstream) in the equation above. E.g. the derivative in the -y-direction of the Vx component of fluid motion or grad(Vstream) = -dVx/dy. The Pxy off-diagonal component of the pressure or stress -tensor, as calculated by the "compute pressure"_compute_pressure.html -command, can also be monitored, which is the J term in the equation -above. See "this section"_Section_howto.html#howto_13 of the manual -for details on NEMD simulations. - -The third method is to perform a reverse non-equilibrium MD simulation -using the "fix viscosity"_fix_viscosity.html command which implements -the rNEMD algorithm of Muller-Plathe. Momentum in one dimension is -swapped between atoms in two different layers of the simulation box in -a different dimension. This induces a velocity gradient which can be -monitored with the "fix ave/chunk"_fix_ave_chunk.html command. -The fix tallies the cumulative momentum transfer that it performs. -See the "fix viscosity"_fix_viscosity.html command for details. - -The fourth method is based on the Green-Kubo (GK) formula which -relates the ensemble average of the auto-correlation of the -stress/pressure tensor to eta. This can be done in a fully -equilibrated simulation which is in contrast to the two preceding -non-equilibrium methods, where momentum flows continuously through the -simulation box. - -Here is an example input script that calculates the viscosity of -liquid Ar via the GK formalism: - -# Sample LAMMPS input script for viscosity of liquid Ar :pre - -units real -variable T equal 86.4956 -variable V equal vol -variable dt equal 4.0 -variable p equal 400 # correlation length -variable s equal 5 # sample interval -variable d equal $p*$s # dump interval :pre - -# convert from LAMMPS real units to SI :pre - -variable kB equal 1.3806504e-23 # \[J/K/] Boltzmann -variable atm2Pa equal 101325.0 -variable A2m equal 1.0e-10 -variable fs2s equal 1.0e-15 -variable convert equal $\{atm2Pa\}*$\{atm2Pa\}*$\{fs2s\}*$\{A2m\}*$\{A2m\}*$\{A2m\} :pre - -# setup problem :pre - -dimension 3 -boundary p p p -lattice fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1 -region box block 0 4 0 4 0 4 -create_box 1 box -create_atoms 1 box -mass 1 39.948 -pair_style lj/cut 13.0 -pair_coeff * * 0.2381 3.405 -timestep $\{dt\} -thermo $d :pre - -# equilibration and thermalization :pre - -velocity all create $T 102486 mom yes rot yes dist gaussian -fix NVT all nvt temp $T $T 10 drag 0.2 -run 8000 :pre - -# viscosity calculation, switch to NVE if desired :pre - -#unfix NVT -#fix NVE all nve :pre - -reset_timestep 0 -variable pxy equal pxy -variable pxz equal pxz -variable pyz equal pyz -fix SS all ave/correlate $s $p $d & - v_pxy v_pxz v_pyz type auto file S0St.dat ave running -variable scale equal $\{convert\}/($\{kB\}*$T)*$V*$s*$\{dt\} -variable v11 equal trap(f_SS\[3\])*$\{scale\} -variable v22 equal trap(f_SS\[4\])*$\{scale\} -variable v33 equal trap(f_SS\[5\])*$\{scale\} -thermo_style custom step temp press v_pxy v_pxz v_pyz v_v11 v_v22 v_v33 -run 100000 -variable v equal (v_v11+v_v22+v_v33)/3.0 -variable ndens equal count(all)/vol -print "average viscosity: $v \[Pa.s\] @ $T K, $\{ndens\} /A^3" :pre - -The fifth method is related to the above Green-Kubo method, -but uses the Einstein formulation, analogous to the Einstein -mean-square-displacement formulation for self-diffusivity. The -time-integrated momentum fluxes play the role of Cartesian -coordinates, whose mean-square displacement increases linearly -with time at sufficiently long times. - -:line - -6.22 Calculating a diffusion coefficient :link(howto_22),h4 - -The diffusion coefficient D of a material can be measured in at least -2 ways using various options in LAMMPS. See the examples/DIFFUSE -directory for scripts that implement the 2 methods discussed here for -a simple Lennard-Jones fluid model. - -The first method is to measure the mean-squared displacement (MSD) of -the system, via the "compute msd"_compute_msd.html command. The slope -of the MSD versus time is proportional to the diffusion coefficient. -The instantaneous MSD values can be accumulated in a vector via the -"fix vector"_fix_vector.html command, and a line fit to the vector to -compute its slope via the "variable slope"_variable.html function, and -thus extract D. - -The second method is to measure the velocity auto-correlation function -(VACF) of the system, via the "compute vacf"_compute_vacf.html -command. The time-integral of the VACF is proportional to the -diffusion coefficient. The instantaneous VACF values can be -accumulated in a vector via the "fix vector"_fix_vector.html command, -and time integrated via the "variable trap"_variable.html function, -and thus extract D. - -:line - -6.23 Using chunks to calculate system properties :link(howto_23),h4 - -In LAMMS, "chunks" are collections of atoms, as defined by the -"compute chunk/atom"_compute_chunk_atom.html command, which assigns -each atom to a chunk ID (or to no chunk at all). The number of chunks -and the assignment of chunk IDs to atoms can be static or change over -time. Examples of "chunks" are molecules or spatial bins or atoms -with similar values (e.g. coordination number or potential energy). - -The per-atom chunk IDs can be used as input to two other kinds of -commands, to calculate various properties of a system: - -"fix ave/chunk"_fix_ave_chunk.html -any of the "compute */chunk"_compute.html commands :ul - -Here, each of the 3 kinds of chunk-related commands is briefly -overviewed. Then some examples are given of how to compute different -properties with chunk commands. - -Compute chunk/atom command: :h4 - -This compute can assign atoms to chunks of various styles. Only atoms -in the specified group and optional specified region are assigned to a -chunk. Here are some possible chunk definitions: - -atoms in same molecule | chunk ID = molecule ID | -atoms of same atom type | chunk ID = atom type | -all atoms with same atom property (charge, radius, etc) | chunk ID = output of compute property/atom | -atoms in same cluster | chunk ID = output of "compute cluster/atom"_compute_cluster_atom.html command | -atoms in same spatial bin | chunk ID = bin ID | -atoms in same rigid body | chunk ID = molecule ID used to define rigid bodies | -atoms with similar potential energy | chunk ID = output of "compute pe/atom"_compute_pe_atom.html | -atoms with same local defect structure | chunk ID = output of "compute centro/atom"_compute_centro_atom.html or "compute coord/atom"_compute_coord_atom.html command :tb(s=|,c=2) - -Note that chunk IDs are integer values, so for atom properties or -computes that produce a floating point value, they will be truncated -to an integer. You could also use the compute in a variable that -scales the floating point value to spread it across multiple integers. - -Spatial bins can be of various kinds, e.g. 1d bins = slabs, 2d bins = -pencils, 3d bins = boxes, spherical bins, cylindrical bins. - -This compute also calculates the number of chunks {Nchunk}, which is -used by other commands to tally per-chunk data. {Nchunk} can be a -static value or change over time (e.g. the number of clusters). The -chunk ID for an individual atom can also be static (e.g. a molecule -ID), or dynamic (e.g. what spatial bin an atom is in as it moves). - -Note that this compute allows the per-atom output of other -"computes"_compute.html, "fixes"_fix.html, and -"variables"_variable.html to be used to define chunk IDs for each -atom. This means you can write your own compute or fix to output a -per-atom quantity to use as chunk ID. See the "Modify"_Modify.html -doc page for how to do this. You can also define a "per-atom -variable"_variable.html in the input script that uses a formula to -generate a chunk ID for each atom. - -Fix ave/chunk command: :h4 - -This fix takes the ID of a "compute -chunk/atom"_compute_chunk_atom.html command as input. For each chunk, -it then sums one or more specified per-atom values over the atoms in -each chunk. The per-atom values can be any atom property, such as -velocity, force, charge, potential energy, kinetic energy, stress, -etc. Additional keywords are defined for per-chunk properties like -density and temperature. More generally any per-atom value generated -by other "computes"_compute.html, "fixes"_fix.html, and "per-atom -variables"_variable.html, can be summed over atoms in each chunk. - -Similar to other averaging fixes, this fix allows the summed per-chunk -values to be time-averaged in various ways, and output to a file. The -fix produces a global array as output with one row of values per -chunk. - -Compute */chunk commands: :h4 - -Currently the following computes operate on chunks of atoms to produce -per-chunk values. - -"compute com/chunk"_compute_com_chunk.html -"compute gyration/chunk"_compute_gyration_chunk.html -"compute inertia/chunk"_compute_inertia_chunk.html -"compute msd/chunk"_compute_msd_chunk.html -"compute property/chunk"_compute_property_chunk.html -"compute temp/chunk"_compute_temp_chunk.html -"compute torque/chunk"_compute_vcm_chunk.html -"compute vcm/chunk"_compute_vcm_chunk.html :ul - -They each take the ID of a "compute -chunk/atom"_compute_chunk_atom.html command as input. As their names -indicate, they calculate the center-of-mass, radius of gyration, -moments of inertia, mean-squared displacement, temperature, torque, -and velocity of center-of-mass for each chunk of atoms. The "compute -property/chunk"_compute_property_chunk.html command can tally the -count of atoms in each chunk and extract other per-chunk properties. - -The reason these various calculations are not part of the "fix -ave/chunk command"_fix_ave_chunk.html, is that each requires a more -complicated operation than simply summing and averaging over per-atom -values in each chunk. For example, many of them require calculation -of a center of mass, which requires summing mass*position over the -atoms and then dividing by summed mass. - -All of these computes produce a global vector or global array as -output, wih one or more values per chunk. They can be used -in various ways: - -As input to the "fix ave/time"_fix_ave_time.html command, which can -write the values to a file and optionally time average them. :ulb,l - -As input to the "fix ave/histo"_fix_ave_histo.html command to -histogram values across chunks. E.g. a histogram of cluster sizes or -molecule diffusion rates. :l - -As input to special functions of "equal-style -variables"_variable.html, like sum() and max(). E.g. to find the -largest cluster or fastest diffusing molecule. :l -:ule - -Example calculations with chunks :h4 - -Here are examples using chunk commands to calculate various -properties: - -(1) Average velocity in each of 1000 2d spatial bins: - -compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.01 units reduced -fix 1 all ave/chunk 100 10 1000 cc1 vx vy file tmp.out :pre - -(2) Temperature in each spatial bin, after subtracting a flow -velocity: - -compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.1 units reduced -compute vbias all temp/profile 1 0 0 y 10 -fix 1 all ave/chunk 100 10 1000 cc1 temp bias vbias file tmp.out :pre - -(3) Center of mass of each molecule: - -compute cc1 all chunk/atom molecule -compute myChunk all com/chunk cc1 -fix 1 all ave/time 100 1 100 c_myChunk\[*\] file tmp.out mode vector :pre - -(4) Total force on each molecule and ave/max across all molecules: - -compute cc1 all chunk/atom molecule -fix 1 all ave/chunk 1000 1 1000 cc1 fx fy fz file tmp.out -variable xave equal ave(f_1\[2\]) -variable xmax equal max(f_1\[2\]) -thermo 1000 -thermo_style custom step temp v_xave v_xmax :pre - -(5) Histogram of cluster sizes: - -compute cluster all cluster/atom 1.0 -compute cc1 all chunk/atom c_cluster compress yes -compute size all property/chunk cc1 count -fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo :pre - -:line - -6.24 Setting parameters for the "kspace_style pppm/disp"_kspace_style.html command :link(howto_24),h4 - -The PPPM method computes interactions by splitting the pair potential -into two parts, one of which is computed in a normal pairwise fashion, -the so-called real-space part, and one of which is computed using the -Fourier transform, the so called reciprocal-space or kspace part. For -both parts, the potential is not computed exactly but is approximated. -Thus, there is an error in both parts of the computation, the -real-space and the kspace error. The just mentioned facts are true -both for the PPPM for Coulomb as well as dispersion interactions. The -deciding difference - and also the reason why the parameters for -pppm/disp have to be selected with more care - is the impact of the -errors on the results: The kspace error of the PPPM for Coulomb and -dispersion interaction and the real-space error of the PPPM for -Coulomb interaction have the character of noise. In contrast, the -real-space error of the PPPM for dispersion has a clear physical -interpretation: the underprediction of cohesion. As a consequence, the -real-space error has a much stronger effect than the kspace error on -simulation results for pppm/disp. Parameters must thus be chosen in a -way that this error is much smaller than the kspace error. - -When using pppm/disp and not making any specifications on the PPPM -parameters via the kspace modify command, parameters will be tuned -such that the real-space error and the kspace error are equal. This -will result in simulations that are either inaccurate or slow, both of -which is not desirable. For selecting parameters for the pppm/disp -that provide fast and accurate simulations, there are two approaches, -which both have their up- and downsides. - -The first approach is to set desired real-space an kspace accuracies -via the {kspace_modify force/disp/real} and {kspace_modify -force/disp/kspace} commands. Note that the accuracies have to be -specified in force units and are thus dependent on the chosen unit -settings. For real units, 0.0001 and 0.002 seem to provide reasonable -accurate and efficient computations for the real-space and kspace -accuracies. 0.002 and 0.05 work well for most systems using lj -units. PPPM parameters will be generated based on the desired -accuracies. The upside of this approach is that it usually provides a -good set of parameters and will work for both the {kspace_modify diff -ad} and {kspace_modify diff ik} options. The downside of the method -is that setting the PPPM parameters will take some time during the -initialization of the simulation. - -The second approach is to set the parameters for the pppm/disp -explicitly using the {kspace_modify mesh/disp}, {kspace_modify -order/disp}, and {kspace_modify gewald/disp} commands. This approach -requires a more experienced user who understands well the impact of -the choice of parameters on the simulation accuracy and -performance. This approach provides a fast initialization of the -simulation. However, it is sensitive to errors: A combination of -parameters that will perform well for one system might result in -far-from-optimal conditions for other simulations. For example, -parameters that provide accurate and fast computations for -all-atomistic force fields can provide insufficient accuracy or -united-atomistic force fields (which is related to that the latter -typically have larger dispersion coefficients). - -To avoid inaccurate or inefficient simulations, the pppm/disp stops -simulations with an error message if no action is taken to control the -PPPM parameters. If the automatic parameter generation is desired and -real-space and kspace accuracies are desired to be equal, this error -message can be suppressed using the {kspace_modify disp/auto yes} -command. - -A reasonable approach that combines the upsides of both methods is to -make the first run using the {kspace_modify force/disp/real} and -{kspace_modify force/disp/kspace} commands, write down the PPPM -parameters from the outut, and specify these parameters using the -second approach in subsequent runs (which have the same composition, -force field, and approximately the same volume). - -Concerning the performance of the pppm/disp there are two more things -to consider. The first is that when using the pppm/disp, the cutoff -parameter does no longer affect the accuracy of the simulation -(subject to that gewald/disp is adjusted when changing the cutoff). -The performance can thus be increased by examining different values -for the cutoff parameter. A lower bound for the cutoff is only set by -the truncation error of the repulsive term of pair potentials. - -The second is that the mixing rule of the pair style has an impact on -the computation time when using the pppm/disp. Fastest computations -are achieved when using the geometric mixing rule. Using the -arithmetic mixing rule substantially increases the computational cost. -The computational overhead can be reduced using the {kspace_modify -mix/disp geom} and {kspace_modify splittol} commands. The first -command simply enforces geometric mixing of the dispersion -coefficients in kspace computations. This introduces some error in -the computations but will also significantly speed-up the -simulations. The second keyword sets the accuracy with which the -dispersion coefficients are approximated using a matrix factorization -approach. This may result in better accuracy then using the first -command, but will usually also not provide an equally good increase of -efficiency. - -Finally, pppm/disp can also be used when no mixing rules apply. -This can be achieved using the {kspace_modify mix/disp none} command. -Note that the code does not check automatically whether any mixing -rule is fulfilled. If mixing rules do not apply, the user will have -to specify this command explicitly. - -:line - -6.25 Polarizable models :link(howto_25),h4 - -In polarizable force fields the charge distributions in molecules and -materials respond to their electrostatic environments. Polarizable -systems can be simulated in LAMMPS using three methods: - -the fluctuating charge method, implemented in the "QEQ"_fix_qeq.html -package, :ulb,l -the adiabatic core-shell method, implemented in the -"CORESHELL"_#howto_26 package, :l -the thermalized Drude dipole method, implemented in the -"USER-DRUDE"_#howto_27 package. :l -:ule - -The fluctuating charge method calculates instantaneous charges on -interacting atoms based on the electronegativity equalization -principle. It is implemented in the "fix qeq"_fix_qeq.html which is -available in several variants. It is a relatively efficient technique -since no additional particles are introduced. This method allows for -charge transfer between molecules or atom groups. However, because the -charges are located at the interaction sites, off-plane components of -polarization cannot be represented in planar molecules or atom groups. - -The two other methods share the same basic idea: polarizable atoms are -split into one core atom and one satellite particle (called shell or -Drude particle) attached to it by a harmonic spring. Both atoms bear -a charge and they represent collectively an induced electric dipole. -These techniques are computationally more expensive than the QEq -method because of additional particles and bonds. These two -charge-on-spring methods differ in certain features, with the -core-shell model being normally used for ionic/crystalline materials, -whereas the so-called Drude model is normally used for molecular -systems and fluid states. - -The core-shell model is applicable to crystalline materials where the -high symmetry around each site leads to stable trajectories of the -core-shell pairs. However, bonded atoms in molecules can be so close -that a core would interact too strongly or even capture the Drude -particle of a neighbor. The Drude dipole model is relatively more -complex in order to remediate this and other issues. Specifically, the -Drude model includes specific thermostating of the core-Drude pairs -and short-range damping of the induced dipoles. - -The three polarization methods can be implemented through a -self-consistent calculation of charges or induced dipoles at each -timestep. In the fluctuating charge scheme this is done by the matrix -inversion method in "fix qeq/point"_fix_qeq.html, but for core-shell -or Drude-dipoles the relaxed-dipoles technique would require an slow -iterative procedure. These self-consistent solutions yield accurate -trajectories since the additional degrees of freedom representing -polarization are massless. An alternative is to attribute a mass to -the additional degrees of freedom and perform time integration using -an extended Lagrangian technique. For the fluctuating charge scheme -this is done by "fix qeq/dynamic"_fix_qeq.html, and for the -charge-on-spring models by the methods outlined in the next two -sections. The assignment of masses to the additional degrees of -freedom can lead to unphysical trajectories if care is not exerted in -choosing the parameters of the polarizable models and the simulation -conditions. - -In the core-shell model the vibration of the shells is kept faster -than the ionic vibrations to mimic the fast response of the -polarizable electrons. But in molecular systems thermalizing the -core-Drude pairs at temperatures comparable to the rest of the -simulation leads to several problems (kinetic energy transfer, too -short a timestep, etc.) In order to avoid these problems the relative -motion of the Drude particles with respect to their cores is kept -"cold" so the vibration of the core-Drude pairs is very slow, -approaching the self-consistent regime. In both models the -temperature is regulated using the velocities of the center of mass of -core+shell (or Drude) pairs, but in the Drude model the actual -relative core-Drude particle motion is thermostated separately as -well. - -:line - -6.26 Adiabatic core/shell model :link(howto_26),h4 - -The adiabatic core-shell model by "Mitchell and -Fincham"_#MitchellFincham is a simple method for adding -polarizability to a system. In order to mimic the electron shell of -an ion, a satellite particle is attached to it. This way the ions are -split into a core and a shell where the latter is meant to react to -the electrostatic environment inducing polarizability. - -Technically, shells are attached to the cores by a spring force f = -k*r where k is a parametrized spring constant and r is the distance -between the core and the shell. The charges of the core and the shell -add up to the ion charge, thus q(ion) = q(core) + q(shell). This -setup introduces the ion polarizability (alpha) given by -alpha = q(shell)^2 / k. In a -similar fashion the mass of the ion is distributed on the core and the -shell with the core having the larger mass. - -To run this model in LAMMPS, "atom_style"_atom_style.html {full} can -be used since atom charge and bonds are needed. Each kind of -core/shell pair requires two atom types and a bond type. The core and -shell of a core/shell pair should be bonded to each other with a -harmonic bond that provides the spring force. For example, a data file -for NaCl, as found in examples/coreshell, has this format: - -432 atoms # core and shell atoms -216 bonds # number of core/shell springs :pre - -4 atom types # 2 cores and 2 shells for Na and Cl -2 bond types :pre - -0.0 24.09597 xlo xhi -0.0 24.09597 ylo yhi -0.0 24.09597 zlo zhi :pre - -Masses # core/shell mass ratio = 0.1 :pre - -1 20.690784 # Na core -2 31.90500 # Cl core -3 2.298976 # Na shell -4 3.54500 # Cl shell :pre - -Atoms :pre - -1 1 2 1.5005 0.00000000 0.00000000 0.00000000 # core of core/shell pair 1 -2 1 4 -2.5005 0.00000000 0.00000000 0.00000000 # shell of core/shell pair 1 -3 2 1 1.5056 4.01599500 4.01599500 4.01599500 # core of core/shell pair 2 -4 2 3 -0.5056 4.01599500 4.01599500 4.01599500 # shell of core/shell pair 2 -(...) :pre - -Bonds # Bond topology for spring forces :pre - -1 2 1 2 # spring for core/shell pair 1 -2 2 3 4 # spring for core/shell pair 2 -(...) :pre - -Non-Coulombic (e.g. Lennard-Jones) pairwise interactions are only -defined between the shells. Coulombic interactions are defined -between all cores and shells. If desired, additional bonds can be -specified between cores. - -The "special_bonds"_special_bonds.html command should be used to -turn-off the Coulombic interaction within core/shell pairs, since that -interaction is set by the bond spring. This is done using the -"special_bonds"_special_bonds.html command with a 1-2 weight = 0.0, -which is the default value. It needs to be considered whether one has -to adjust the "special_bonds"_special_bonds.html weighting according -to the molecular topology since the interactions of the shells are -bypassed over an extra bond. - -Note that this core/shell implementation does not require all ions to -be polarized. One can mix core/shell pairs and ions without a -satellite particle if desired. - -Since the core/shell model permits distances of r = 0.0 between the -core and shell, a pair style with a "cs" suffix needs to be used to -implement a valid long-range Coulombic correction. Several such pair -styles are provided in the CORESHELL package. See "this doc -page"_pair_cs.html for details. All of the core/shell enabled pair -styles require the use of a long-range Coulombic solver, as specified -by the "kspace_style"_kspace_style.html command. Either the PPPM or -Ewald solvers can be used. - -For the NaCL example problem, these pair style and bond style settings -are used: - -pair_style born/coul/long/cs 20.0 20.0 -pair_coeff * * 0.0 1.000 0.00 0.00 0.00 -pair_coeff 3 3 487.0 0.23768 0.00 1.05 0.50 #Na-Na -pair_coeff 3 4 145134.0 0.23768 0.00 6.99 8.70 #Na-Cl -pair_coeff 4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl :pre - -bond_style harmonic -bond_coeff 1 63.014 0.0 -bond_coeff 2 25.724 0.0 :pre - -When running dynamics with the adiabatic core/shell model, the -following issues should be considered. The relative motion of -the core and shell particles corresponds to the polarization, -hereby an instantaneous relaxation of the shells is approximated -and a fast core/shell spring frequency ensures a nearly constant -internal kinetic energy during the simulation. -Thermostats can alter this polarization behaviour, by scaling the -internal kinetic energy, meaning the shell will not react freely to -its electrostatic environment. -Therefore it is typically desirable to decouple the relative motion of -the core/shell pair, which is an imaginary degree of freedom, from the -real physical system. To do that, the "compute -temp/cs"_compute_temp_cs.html command can be used, in conjunction with -any of the thermostat fixes, such as "fix nvt"_fix_nh.html or "fix -langevin"_fix_langevin. This compute uses the center-of-mass velocity -of the core/shell pairs to calculate a temperature, and insures that -velocity is what is rescaled for thermostatting purposes. This -compute also works for a system with both core/shell pairs and -non-polarized ions (ions without an attached satellite particle). The -"compute temp/cs"_compute_temp_cs.html command requires input of two -groups, one for the core atoms, another for the shell atoms. -Non-polarized ions which might also be included in the treated system -should not be included into either of these groups, they are taken -into account by the {group-ID} (2nd argument) of the compute. The -groups can be defined using the "group {type}"_group.html command. -Note that to perform thermostatting using this definition of -temperature, the "fix modify temp"_fix_modify.html command should be -used to assign the compute to the thermostat fix. Likewise the -"thermo_modify temp"_thermo_modify.html command can be used to make -this temperature be output for the overall system. - -For the NaCl example, this can be done as follows: - -group cores type 1 2 -group shells type 3 4 -compute CSequ all temp/cs cores shells -fix thermoberendsen all temp/berendsen 1427 1427 0.4 # thermostat for the true physical system -fix thermostatequ all nve # integrator as needed for the berendsen thermostat -fix_modify thermoberendsen temp CSequ -thermo_modify temp CSequ # output of center-of-mass derived temperature :pre - -The pressure for the core/shell system is computed via the regular -LAMMPS convention by "treating the cores and shells as individual -particles"_#MitchellFincham2. For the thermo output of the pressure -as well as for the application of a barostat, it is necessary to -use an additional "pressure"_compute_pressure compute based on the -default "temperature"_compute_temp and specifying it as a second -argument in "fix modify"_fix_modify.html and -"thermo_modify"_thermo_modify.html resulting in: - -(...) -compute CSequ all temp/cs cores shells -compute thermo_press_lmp all pressure thermo_temp # pressure for individual particles -thermo_modify temp CSequ press thermo_press_lmp # modify thermo to regular pressure -fix press_bar all npt temp 300 300 0.04 iso 0 0 0.4 -fix_modify press_bar temp CSequ press thermo_press_lmp # pressure modification for correct kinetic scalar :pre - -If "compute temp/cs"_compute_temp_cs.html is used, the decoupled -relative motion of the core and the shell should in theory be -stable. However numerical fluctuation can introduce a small -momentum to the system, which is noticable over long trajectories. -Therefore it is recommendable to use the "fix -momentum"_fix_momentum.html command in combination with "compute -temp/cs"_compute_temp_cs.html when equilibrating the system to -prevent any drift. - -When initializing the velocities of a system with core/shell pairs, it -is also desirable to not introduce energy into the relative motion of -the core/shell particles, but only assign a center-of-mass velocity to -the pairs. This can be done by using the {bias} keyword of the -"velocity create"_velocity.html command and assigning the "compute -temp/cs"_compute_temp_cs.html command to the {temp} keyword of the -"velocity"_velocity.html command, e.g. - -velocity all create 1427 134 bias yes temp CSequ -velocity all scale 1427 temp CSequ :pre - -To maintain the correct polarizability of the core/shell pairs, the -kinetic energy of the internal motion shall remain nearly constant. -Therefore the choice of spring force and mass ratio need to ensure -much faster relative motion of the 2 atoms within the core/shell pair -than their center-of-mass velocity. This allows the shells to -effectively react instantaneously to the electrostatic environment and -limits energy transfer to or from the core/shell oscillators. -This fast movement also dictates the timestep that can be used. - -The primary literature of the adiabatic core/shell model suggests that -the fast relative motion of the core/shell pairs only allows negligible -energy transfer to the environment. -The mentioned energy transfer will typically lead to a small drift -in total energy over time. This internal energy can be monitored -using the "compute chunk/atom"_compute_chunk_atom.html and "compute -temp/chunk"_compute_temp_chunk.html commands. The internal kinetic -energies of each core/shell pair can then be summed using the sum() -special function of the "variable"_variable.html command. Or they can -be time/averaged and output using the "fix ave/time"_fix_ave_time.html -command. To use these commands, each core/shell pair must be defined -as a "chunk". If each core/shell pair is defined as its own molecule, -the molecule ID can be used to define the chunks. If cores are bonded -to each other to form larger molecules, the chunks can be identified -by the "fix property/atom"_fix_property_atom.html via assigning a -core/shell ID to each atom using a special field in the data file read -by the "read_data"_read_data.html command. This field can then be -accessed by the "compute property/atom"_compute_property_atom.html -command, to use as input to the "compute -chunk/atom"_compute_chunk_atom.html command to define the core/shell -pairs as chunks. - -For example if core/shell pairs are the only molecules: - -read_data NaCl_CS_x0.1_prop.data -compute prop all property/atom molecule -compute cs_chunk all chunk/atom c_prop -compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0 # note the chosen degrees of freedom for the core/shell pairs -fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector :pre - -For example if core/shell pairs and other molecules are present: - -fix csinfo all property/atom i_CSID # property/atom command -read_data NaCl_CS_x0.1_prop.data fix csinfo NULL CS-Info # atom property added in the data-file -compute prop all property/atom i_CSID -(...) :pre - -The additional section in the date file would be formatted like this: - -CS-Info # header of additional section :pre - -1 1 # column 1 = atom ID, column 2 = core/shell ID -2 1 -3 2 -4 2 -5 3 -6 3 -7 4 -8 4 -(...) :pre - -:line - -6.27 Drude induced dipoles :link(howto_27),h4 - -The thermalized Drude model, similarly to the "core-shell"_#howto_26 -model, represents induced dipoles by a pair of charges (the core atom -and the Drude particle) connected by a harmonic spring. The Drude -model has a number of features aimed at its use in molecular systems -("Lamoureux and Roux"_#howto-Lamoureux): - -Thermostating of the additional degrees of freedom associated with the -induced dipoles at very low temperature, in terms of the reduced -coordinates of the Drude particles with respect to their cores. This -makes the trajectory close to that of relaxed induced dipoles. :ulb,l - -Consistent definition of 1-2 to 1-4 neighbors. A core-Drude particle -pair represents a single (polarizable) atom, so the special screening -factors in a covalent structure should be the same for the core and -the Drude particle. Drude particles have to inherit the 1-2, 1-3, 1-4 -special neighbor relations from their respective cores. :l - -Stabilization of the interactions between induced dipoles. Drude -dipoles on covalently bonded atoms interact too strongly due to the -short distances, so an atom may capture the Drude particle of a -neighbor, or the induced dipoles within the same molecule may align -too much. To avoid this, damping at short range can be done by Thole -functions (for which there are physical grounds). This Thole damping -is applied to the point charges composing the induced dipole (the -charge of the Drude particle and the opposite charge on the core, not -to the total charge of the core atom). :l -:ule - -A detailed tutorial covering the usage of Drude induced dipoles in -LAMMPS is "available here"_tutorial_drude.html. - -As with the core-shell model, the cores and Drude particles should -appear in the data file as standard atoms. The same holds for the -springs between them, which are described by standard harmonic bonds. -The nature of the atoms (core, Drude particle or non-polarizable) is -specified via the "fix drude"_fix_drude.html command. The special -list of neighbors is automatically refactored to account for the -equivalence of core and Drude particles as regards special 1-2 to 1-4 -screening. It may be necessary to use the {extra/special/per/atom} -keyword of the "read_data"_read_data.html command. If using "fix -shake"_fix_shake.html, make sure no Drude particle is in this fix -group. - -There are two ways to thermostat the Drude particles at a low -temperature: use either "fix langevin/drude"_fix_langevin_drude.html -for a Langevin thermostat, or "fix -drude/transform/*"_fix_drude_transform.html for a Nose-Hoover -thermostat. The former requires use of the command "comm_modify vel -yes"_comm_modify.html. The latter requires two separate integration -fixes like {nvt} or {npt}. The correct temperatures of the reduced -degrees of freedom can be calculated using the "compute -temp/drude"_compute_temp_drude.html. This requires also to use the -command {comm_modify vel yes}. - -Short-range damping of the induced dipole interactions can be achieved -using Thole functions through the "pair style -thole"_pair_thole.html in "pair_style hybrid/overlay"_pair_hybrid.html -with a Coulomb pair style. It may be useful to use {coul/long/cs} or -similar from the CORESHELL package if the core and Drude particle come -too close, which can cause numerical issues. - -:line - -6.28 Magnetic spins :link(howto_28),h4 - -Classical magnetic spin simualtions can be performed via the SPIN -package. The algrorithmic and implementation details are described in -"Tranchida"_#Tranchida7. - -The model representents the simulation of atomic magnetic spins -coupled to lattice vibrations. The dynamics of those magnetic spins -can be used to simulate a broad range a phenomena related to -magneto-elasticity, or or to study the influence of defects on the -magnetic properties of materials. - -The magnetic spins are interacting with each others and with the -lattice via pair interactions. Typically, the magnetic exchange -interaction can be defined using the -"pair/spin/exchange"_pair_spin_exchange.html command. This exchange -applies a magnetic torque to a given spin, considering the orientation -of its neighboring spins and their relative distances. -It also applies a force on the atoms as a function of the spin -orientations and their associated inter-atomic distances. - -The command "fix precession/spin"_fix_precession_spin.html allows to -apply a constant magnetic torque on all the spins in the system. This -torque can be an external magnetic field (Zeeman interaction), or an -uniaxial magnetic anisotropy. - -A Langevin thermostat can be applied to those magnetic spins using -"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat -can be coupled to another Langevin thermostat applied to the atoms -using "fix langevin"_fix_langevin.html in order to simulate -thermostated spin-lattice system. - -The magnetic Gilbert damping can also be applied using "fix -langevin/spin"_fix_langevin_spin.html. It allows to either dissipate -the thermal energy of the Langevin thermostat, or to perform a -relaxation of the magnetic configuration toward an equilibrium state. - -All the computed magnetic properties can be outputed by two main -commands. The first one is "compute spin"_compute_spin.html, that -enables to evaluate magnetic averaged quantities, such as the total -magnetization of the system along x, y, or z, the spin temperature, or -the magnetic energy. The second command is "compute -property/atom"_compute_property_atom.html. It enables to output all the -per atom magnetic quantities. Typically, the orientation of a given -magnetic spin, or the magnetic force acting on this spin. - -:line -:line - -:link(howto-Berendsen) -[(Berendsen)] Berendsen, Grigera, Straatsma, J Phys Chem, 91, -6269-6271 (1987). - -:link(howto-Cornell) -[(Cornell)] Cornell, Cieplak, Bayly, Gould, Merz, Ferguson, -Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995). - -:link(Horn) -[(Horn)] Horn, Swope, Pitera, Madura, Dick, Hura, and Head-Gordon, -J Chem Phys, 120, 9665 (2004). - -:link(howto-Ikeshoji) -[(Ikeshoji)] Ikeshoji and Hafskjold, Molecular Physics, 81, 251-261 -(1994). - -:link(howto-Wirnsberger) -[(Wirnsberger)] Wirnsberger, Frenkel, and Dellago, J Chem Phys, 143, 124104 -(2015). - -:link(howto-MacKerell) -[(MacKerell)] MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field, -Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998). - -:link(howto-Mayo) -[(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909 -(1990). - -:link(Jorgensen1) -[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem -Phys, 79, 926 (1983). - -:link(Price1) -[(Price)] Price and Brooks, J Chem Phys, 121, 10096 (2004). - -:link(Shinoda1) -[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004). - -:link(MitchellFincham) -[(Mitchell and Fincham)] Mitchell, Fincham, J Phys Condensed Matter, -5, 1031-1038 (1993). - -:link(MitchellFincham2) -[(Fincham)] Fincham, Mackrodt and Mitchell, J Phys Condensed Matter, -6, 393-404 (1994). - -:link(howto-Lamoureux) -[(Lamoureux and Roux)] G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003) - -:link(Tranchida7) -[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, -arXiv preprint arXiv:1801.10233, (2018). diff --git a/doc/src/Section_intro.txt b/doc/src/Section_intro.txt deleted file mode 100644 index c7cf5bf8d2..0000000000 --- a/doc/src/Section_intro.txt +++ /dev/null @@ -1,550 +0,0 @@ -"Previous Section"_Manual.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_start.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -1. Introduction :h2 - -This section provides an overview of what LAMMPS can and can't do, -describes what it means for LAMMPS to be an open-source code, and -acknowledges the funding and people who have contributed to LAMMPS -over the years. - -1.1 "What is LAMMPS"_#intro_1 -1.2 "LAMMPS features"_#intro_2 -1.3 "LAMMPS non-features"_#intro_3 -1.4 "Open source distribution"_#intro_4 -1.5 "Acknowledgments and citations"_#intro_5 :all(b) - -:line -:line - -1.1 What is LAMMPS :link(intro_1),h4 - -LAMMPS is a classical molecular dynamics code that models an ensemble -of particles in a liquid, solid, or gaseous state. It can model -atomic, polymeric, biological, metallic, granular, and coarse-grained -systems using a variety of force fields and boundary conditions. - -For examples of LAMMPS simulations, see the Publications page of the -"LAMMPS WWW Site"_lws. - -LAMMPS runs efficiently on single-processor desktop or laptop -machines, but is designed for parallel computers. It will run on any -parallel machine that compiles C++ and supports the "MPI"_mpi -message-passing library. This includes distributed- or shared-memory -parallel machines and Beowulf-style clusters. - -:link(mpi,http://www-unix.mcs.anl.gov/mpi) - -LAMMPS can model systems with only a few particles up to millions or -billions. See "Section 8"_Section_perf.html for information on -LAMMPS performance and scalability, or the Benchmarks section of the -"LAMMPS WWW Site"_lws. - -LAMMPS is a freely-available open-source code, distributed under the -terms of the "GNU Public License"_gnu, which means you can use or -modify the code however you wish. See "this section"_#intro_4 for a -brief discussion of the open-source philosophy. - -:link(gnu,http://www.gnu.org/copyleft/gpl.html) - -LAMMPS is designed to be easy to modify or extend with new -capabilities, such as new force fields, atom types, boundary -conditions, or diagnostics. See the "Modify"_Modify.html doc page for -more details. - -The current version of LAMMPS is written in C++. Earlier versions -were written in F77 and F90. See -"Section 13"_Section_history.html for more information on -different versions. All versions can be downloaded from the "LAMMPS -WWW Site"_lws. - -LAMMPS was originally developed under a US Department of Energy CRADA -(Cooperative Research and Development Agreement) between two DOE labs -and 3 companies. It is distributed by "Sandia National Labs"_snl. -See "this section"_#intro_5 for more information on LAMMPS funding and -individuals who have contributed to LAMMPS. - -:link(snl,http://www.sandia.gov) - -In the most general sense, LAMMPS integrates Newton's equations of -motion for collections of atoms, molecules, or macroscopic particles -that interact via short- or long-range forces with a variety of -initial and/or boundary conditions. For computational efficiency -LAMMPS uses neighbor lists to keep track of nearby particles. The -lists are optimized for systems with particles that are repulsive at -short distances, so that the local density of particles never becomes -too large. On parallel machines, LAMMPS uses spatial-decomposition -techniques to partition the simulation domain into small 3d -sub-domains, one of which is assigned to each processor. Processors -communicate and store "ghost" atom information for atoms that border -their sub-domain. LAMMPS is most efficient (in a parallel sense) for -systems whose particles fill a 3d rectangular box with roughly uniform -density. Papers with technical details of the algorithms used in -LAMMPS are listed in "this section"_#intro_5. - -:line - -1.2 LAMMPS features :link(intro_2),h4 - -This section highlights LAMMPS features, with pointers to specific -commands which give more details. If LAMMPS doesn't have your -favorite interatomic potential, boundary condition, or atom type, see -the "Modify"_Modify.html doc page, which describes how you can add it -to LAMMPS. - -General features :h4 - - runs on a single processor or in parallel - distributed-memory message-passing parallelism (MPI) - spatial-decomposition of simulation domain for parallelism - open-source distribution - highly portable C++ - optional libraries used: MPI and single-processor FFT - GPU (CUDA and OpenCL), Intel(R) Xeon Phi(TM) coprocessors, and OpenMP support for many code features - easy to extend with new features and functionality - runs from an input script - syntax for defining and using variables and formulas - syntax for looping over runs and breaking out of loops - run one or multiple simulations simultaneously (in parallel) from one script - build as library, invoke LAMMPS thru library interface or provided Python wrapper - couple with other codes: LAMMPS calls other code, other code calls LAMMPS, umbrella code calls both :ul - -Particle and model types :h4 -("atom style"_atom_style.html command) - - atoms - coarse-grained particles (e.g. bead-spring polymers) - united-atom polymers or organic molecules - all-atom polymers, organic molecules, proteins, DNA - metals - granular materials - coarse-grained mesoscale models - finite-size spherical and ellipsoidal particles - finite-size line segment (2d) and triangle (3d) particles - point dipole particles - rigid collections of particles - hybrid combinations of these :ul - -Force fields :h4 -("pair style"_pair_style.html, "bond style"_bond_style.html, -"angle style"_angle_style.html, "dihedral style"_dihedral_style.html, -"improper style"_improper_style.html, "kspace style"_kspace_style.html -commands) - - pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, \ - Yukawa, soft, class 2 (COMPASS), hydrogen bond, tabulated - charged pairwise potentials: Coulombic, point-dipole - manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), \ - embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, \ - REBO, AIREBO, ReaxFF, COMB, SNAP, Streitz-Mintmire, 3-body polymorphic - long-range interactions for charge, point-dipoles, and LJ dispersion: \ - Ewald, Wolf, PPPM (similar to particle-mesh Ewald) - polarization models: "QEq"_fix_qeq.html, \ - "core/shell model"_Section_howto.html#howto_26, \ - "Drude dipole model"_Section_howto.html#howto_27 - charge equilibration (QEq via dynamic, point, shielded, Slater methods) - coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO - mesoscopic potentials: granular, Peridynamics, SPH - electron force field (eFF, AWPMD) - bond potentials: harmonic, FENE, Morse, nonlinear, class 2, \ - quartic (breakable) - angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, \ - class 2 (COMPASS) - dihedral potentials: harmonic, CHARMM, multi-harmonic, helix, \ - class 2 (COMPASS), OPLS - improper potentials: harmonic, cvff, umbrella, class 2 (COMPASS) - polymer potentials: all-atom, united-atom, bead-spring, breakable - water potentials: TIP3P, TIP4P, SPC - implicit solvent potentials: hydrodynamic lubrication, Debye - force-field compatibility with common CHARMM, AMBER, DREIDING, \ - OPLS, GROMACS, COMPASS options - access to "KIM archive"_http://openkim.org of potentials via \ - "pair kim"_pair_kim.html - hybrid potentials: multiple pair, bond, angle, dihedral, improper \ - potentials can be used in one simulation - overlaid potentials: superposition of multiple pair potentials :ul - -Atom creation :h4 -("read_data"_read_data.html, "lattice"_lattice.html, -"create_atoms"_create_atoms.html, "delete_atoms"_delete_atoms.html, -"displace_atoms"_displace_atoms.html, "replicate"_replicate.html commands) - - read in atom coords from files - create atoms on one or more lattices (e.g. grain boundaries) - delete geometric or logical groups of atoms (e.g. voids) - replicate existing atoms multiple times - displace atoms :ul - -Ensembles, constraints, and boundary conditions :h4 -("fix"_fix.html command) - - 2d or 3d systems - orthogonal or non-orthogonal (triclinic symmetry) simulation domains - constant NVE, NVT, NPT, NPH, Parinello/Rahman integrators - thermostatting options for groups and geometric regions of atoms - pressure control via Nose/Hoover or Berendsen barostatting in 1 to 3 dimensions - simulation box deformation (tensile and shear) - harmonic (umbrella) constraint forces - rigid body constraints - SHAKE bond and angle constraints - Monte Carlo bond breaking, formation, swapping - atom/molecule insertion and deletion - walls of various kinds - non-equilibrium molecular dynamics (NEMD) - variety of additional boundary conditions and constraints :ul - -Integrators :h4 -("run"_run.html, "run_style"_run_style.html, "minimize"_minimize.html commands) - - velocity-Verlet integrator - Brownian dynamics - rigid body integration - energy minimization via conjugate gradient or steepest descent relaxation - rRESPA hierarchical timestepping - rerun command for post-processing of dump files :ul - -Diagnostics :h4 - - see the various flavors of the "fix"_fix.html and "compute"_compute.html commands :ul - -Output :h4 -("dump"_dump.html, "restart"_restart.html commands) - - log file of thermodynamic info - text dump files of atom coords, velocities, other per-atom quantities - binary restart files - parallel I/O of dump and restart files - per-atom quantities (energy, stress, centro-symmetry parameter, CNA, etc) - user-defined system-wide (log file) or per-atom (dump file) calculations - spatial and time averaging of per-atom quantities - time averaging of system-wide quantities - atom snapshots in native, XYZ, XTC, DCD, CFG formats :ul - -Multi-replica models :h4 - -"nudged elastic band"_neb.html -"parallel replica dynamics"_prd.html -"temperature accelerated dynamics"_tad.html -"parallel tempering"_temper.html - -Pre- and post-processing :h4 - -Various pre- and post-processing serial tools are packaged with -LAMMPS; see the "Tools"_Tools.html doc page for details. :ulb,l - -Our group has also written and released a separate toolkit called -"Pizza.py"_pizza which provides tools for doing setup, analysis, -plotting, and visualization for LAMMPS simulations. Pizza.py is -written in "Python"_python and is available for download from "the -Pizza.py WWW site"_pizza. :l -:ule - -:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html) -:link(python,http://www.python.org) - -Specialized features :h4 - -LAMMPS can be built with optional packages which implement a variety -of additional capabilities. An overview of all the packages is "given -here"_Section_packages.html. - -These are some LAMMPS capabilities which you may not think of as -typical classical molecular dynamics options: - -"static"_balance.html and "dynamic load-balancing"_fix_balance.html -"generalized aspherical particles"_body.html -"stochastic rotation dynamics (SRD)"_fix_srd.html -"real-time visualization and interactive MD"_fix_imd.html -calculate "virtual diffraction patterns"_compute_xrd.html -"atom-to-continuum coupling"_fix_atc.html with finite elements -coupled rigid body integration via the "POEMS"_fix_poems.html library -"QM/MM coupling"_fix_qmmm.html -"path-integral molecular dynamics (PIMD)"_fix_ipi.html and "this as well"_fix_pimd.html -Monte Carlo via "GCMC"_fix_gcmc.html and "tfMC"_fix_tfmc.html "atom swapping"_fix_atom_swap.html and "bond swapping"_fix_bond_swap.html -"Direct Simulation Monte Carlo"_pair_dsmc.html for low-density fluids -"Peridynamics mesoscale modeling"_pair_peri.html -"Lattice Boltzmann fluid"_fix_lb_fluid.html -"targeted"_fix_tmd.html and "steered"_fix_smd.html molecular dynamics -"two-temperature electron model"_fix_ttm.html :ul - -:line - -1.3 LAMMPS non-features :link(intro_3),h4 - -LAMMPS is designed to efficiently compute Newton's equations of motion -for a system of interacting particles. Many of the tools needed to -pre- and post-process the data for such simulations are not included -in the LAMMPS kernel for several reasons: - -the desire to keep LAMMPS simple -they are not parallel operations -other codes already do them -limited development resources :ul - -Specifically, LAMMPS itself does not: - -run thru a GUI -build molecular systems -assign force-field coefficients automagically -perform sophisticated analyses of your MD simulation -visualize your MD simulation -plot your output data :ul - -A few tools for pre- and post-processing tasks are provided as part of -the LAMMPS package; they are described on the "Tools"_Tools.html doc -page. However, many people use other codes or write their own tools -for these tasks. - -As noted above, our group has also written and released a separate -toolkit called "Pizza.py"_pizza which addresses some of the listed -bullets. It provides tools for doing setup, analysis, plotting, and -visualization for LAMMPS simulations. Pizza.py is written in -"Python"_python and is available for download from "the Pizza.py WWW -site"_pizza. - -LAMMPS requires as input a list of initial atom coordinates and types, -molecular topology information, and force-field coefficients assigned -to all atoms and bonds. LAMMPS will not build molecular systems and -assign force-field parameters for you. - -For atomic systems LAMMPS provides a "create_atoms"_create_atoms.html -command which places atoms on solid-state lattices (fcc, bcc, -user-defined, etc). Assigning small numbers of force field -coefficients can be done via the "pair coeff"_pair_coeff.html, "bond -coeff"_bond_coeff.html, "angle coeff"_angle_coeff.html, etc commands. -For molecular systems or more complicated simulation geometries, users -typically use another code as a builder and convert its output to -LAMMPS input format, or write their own code to generate atom -coordinate and molecular topology for LAMMPS to read in. - -For complicated molecular systems (e.g. a protein), a multitude of -topology information and hundreds of force-field coefficients must -typically be specified. We suggest you use a program like -"CHARMM"_charmm or "AMBER"_amber or other molecular builders to setup -such problems and dump its information to a file. You can then -reformat the file as LAMMPS input. Some of the tools described on the -"Tools"_Tools.html doc page can assist in this process. - -Similarly, LAMMPS creates output files in a simple format. Most users -post-process these files with their own analysis tools or re-format -them for input into other programs, including visualization packages. -If you are convinced you need to compute something on-the-fly as -LAMMPS runs, see the "Modify"_Modify.html doc page for a discussion of -how you can use the "dump"_dump.html and "compute"_compute.html and -"fix"_fix.html commands to print out data of your choosing. Keep in -mind that complicated computations can slow down the molecular -dynamics timestepping, particularly if the computations are not -parallel, so it is often better to leave such analysis to -post-processing codes. - -For high-quality visualization we recommend the -following packages: - -"VMD"_http://www.ks.uiuc.edu/Research/vmd -"AtomEye"_http://mt.seas.upenn.edu/Archive/Graphics/A -"OVITO"_http://www.ovito.org/ -"ParaView"_http://www.paraview.org/ -"PyMol"_http://www.pymol.org -"Raster3d"_http://www.bmsc.washington.edu/raster3d/raster3d.html -"RasMol"_http://www.openrasmol.org :ul - -Other features that LAMMPS does not yet (and may never) support are -discussed in "Section 13"_Section_history.html. - -Finally, these are freely-available molecular dynamics codes, most of -them parallel, which may be well-suited to the problems you want to -model. They can also be used in conjunction with LAMMPS to perform -complementary modeling tasks. - -"CHARMM"_charmm -"AMBER"_amber -"NAMD"_namd -"NWCHEM"_nwchem -"DL_POLY"_dlpoly -"Tinker"_tinker :ul - -:link(charmm,http://www.charmm.org) -:link(amber,http://ambermd.org) -:link(namd,http://www.ks.uiuc.edu/Research/namd/) -:link(nwchem,http://www.emsl.pnl.gov/docs/nwchem/nwchem.html) -:link(dlpoly,http://www.ccp5.ac.uk/DL_POLY_CLASSIC) -:link(tinker,http://dasher.wustl.edu/tinker) - -CHARMM, AMBER, NAMD, NWCHEM, and Tinker are designed primarily for -modeling biological molecules. CHARMM and AMBER use -atom-decomposition (replicated-data) strategies for parallelism; NAMD -and NWCHEM use spatial-decomposition approaches, similar to LAMMPS. -Tinker is a serial code. DL_POLY includes potentials for a variety of -biological and non-biological materials; both a replicated-data and -spatial-decomposition version exist. - -:line - -1.4 Open source distribution :link(intro_4),h4 - -LAMMPS comes with no warranty of any kind. As each source file states -in its header, it is a copyrighted code that is distributed free-of- -charge, under the terms of the "GNU Public License"_gnu (GPL). This -is often referred to as open-source distribution - see -"www.gnu.org"_gnuorg or "www.opensource.org"_opensource for more -details. The legal text of the GPL is in the LICENSE file that is -included in the LAMMPS distribution. - -:link(gnuorg,http://www.gnu.org) -:link(opensource,http://www.opensource.org) - -Here is a summary of what the GPL means for LAMMPS users: - -(1) Anyone is free to use, modify, or extend LAMMPS in any way they -choose, including for commercial purposes. - -(2) If you distribute a modified version of LAMMPS, it must remain -open-source, meaning you distribute it under the terms of the GPL. -You should clearly annotate such a code as a derivative version of -LAMMPS. - -(3) If you release any code that includes LAMMPS source code, then it -must also be open-sourced, meaning you distribute it under the terms -of the GPL. - -(4) If you give LAMMPS files to someone else, the GPL LICENSE file and -source file headers (including the copyright and GPL notices) should -remain part of the code. - -In the spirit of an open-source code, these are various ways you can -contribute to making LAMMPS better. You can send email to the -"developers"_http://lammps.sandia.gov/authors.html on any of these -items. - -Point prospective users to the "LAMMPS WWW Site"_lws. Mention it in -talks or link to it from your WWW site. :ulb,l - -If you find an error or omission in this manual or on the "LAMMPS WWW -Site"_lws, or have a suggestion for something to clarify or include, -send an email to the -"developers"_http://lammps.sandia.gov/authors.html. :l - -If you find a bug, the "Errors bugs"_Errors_bugs.html doc page -describes how to report it. :l - -If you publish a paper using LAMMPS results, send the citation (and -any cool pictures or movies if you like) to add to the Publications, -Pictures, and Movies pages of the "LAMMPS WWW Site"_lws, with links -and attributions back to you. :l - -Create a new Makefile.machine that can be added to the src/MAKE -directory. :l - -The tools sub-directory of the LAMMPS distribution has various -stand-alone codes for pre- and post-processing of LAMMPS data. More -details are given on the "Tools"_Tools.html doc page. If you write a -new tool that users will find useful, it can be added to the LAMMPS -distribution. :l - -LAMMPS is designed to be easy to extend with new code for features -like potentials, boundary conditions, diagnostic computations, etc. -The "Modify"_Modify.html doc page gives details. If you add a feature -of general interest, it can be added to the LAMMPS distribution. :l - -The Benchmark page of the "LAMMPS WWW Site"_lws lists LAMMPS -performance on various platforms. The files needed to run the -benchmarks are part of the LAMMPS distribution. If your machine is -sufficiently different from those listed, your timing data can be -added to the page. :l - -You can send feedback for the User Comments page of the "LAMMPS WWW -Site"_lws. It might be added to the page. No promises. :l - -Cash. Small denominations, unmarked bills preferred. Paper sack OK. -Leave on desk. VISA also accepted. Chocolate chip cookies -encouraged. :l -:ule - -:line - -1.5 Acknowledgments and citations :h3,link(intro_5) - -LAMMPS development has been funded by the "US Department of -Energy"_doe (DOE), through its CRADA, LDRD, ASCI, and Genomes-to-Life -programs and its "OASCR"_oascr and "OBER"_ober offices. - -Specifically, work on the latest version was funded in part by the US -Department of Energy's Genomics:GTL program -("www.doegenomestolife.org"_gtl) under the "project"_ourgtl, "Carbon -Sequestration in Synechococcus Sp.: From Molecular Machines to -Hierarchical Modeling". - -:link(doe,http://www.doe.gov) -:link(gtl,http://www.doegenomestolife.org) -:link(ourgtl,http://www.genomes2life.org) -:link(oascr,http://www.sc.doe.gov/ascr/home.html) -:link(ober,http://www.er.doe.gov/production/ober/ober_top.html) - -The following paper describe the basic parallel algorithms used in -LAMMPS. If you use LAMMPS results in your published work, please cite -this paper and include a pointer to the "LAMMPS WWW Site"_lws -(http://lammps.sandia.gov): - -S. Plimpton, [Fast Parallel Algorithms for Short-Range Molecular -Dynamics], J Comp Phys, 117, 1-19 (1995). - -Other papers describing specific algorithms used in LAMMPS are listed -under the "Citing LAMMPS link"_http://lammps.sandia.gov/cite.html of -the LAMMPS WWW page. - -The "Publications link"_http://lammps.sandia.gov/papers.html on the -LAMMPS WWW page lists papers that have cited LAMMPS. If your paper is -not listed there for some reason, feel free to send us the info. If -the simulations in your paper produced cool pictures or animations, -we'll be pleased to add them to the -"Pictures"_http://lammps.sandia.gov/pictures.html or -"Movies"_http://lammps.sandia.gov/movies.html pages of the LAMMPS WWW -site. - -The primary LAMMPS developers are at Sandia National Labs and Temple University: - -Steve Plimpton, sjplimp at sandia.gov -Aidan Thompson, athomps at sandia.gov -Stan Moore, stamoor at sandia.gov -Axel Kohlmeyer, akohlmey at gmail.com :ul - -Past primary developers include Paul Crozier and Mark Stevens, -both at Sandia, and Ray Shan, now at Materials Design. - -The following folks are responsible for significant contributions to -the code, or other aspects of the LAMMPS development effort. Many of -the packages they have written are somewhat unique to LAMMPS and the -code would not be as general-purpose as it is without their expertise -and efforts. - -Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CGSDK, USER-OMP, USER-COLVARS, USER-MOLFILE, USER-QMMM, USER-TALLY, and COMPRESS packages -Roy Pollock (LLNL), Ewald and PPPM solvers -Mike Brown (ORNL), brownw at ornl.gov, GPU and USER-INTEL package -Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential (superseded by USER-MEAMC) -Mike Parks (Sandia), mlparks at sandia.gov, PERI package for Peridynamics -Rudra Mukherjee (JPL), Rudranarayan.M.Mukherjee at jpl.nasa.gov, POEMS package for articulated rigid body motion -Reese Jones (Sandia) and collaborators, rjones at sandia.gov, USER-ATC package for atom/continuum coupling -Ilya Valuev (JIHT), valuev at physik.hu-berlin.de, USER-AWPMD package for wave-packet MD -Christian Trott (U Tech Ilmenau), christian.trott at tu-ilmenau.de, USER-CUDA (obsoleted by KOKKOS) and KOKKOS packages -Andres Jaramillo-Botero (Caltech), ajaramil at wag.caltech.edu, USER-EFF package for electron force field -Christoph Kloss (JKU), Christoph.Kloss at jku.at, LIGGGHTS fork for granular models and granular/fluid coupling -Metin Aktulga (LBL), hmaktulga at lbl.gov, USER-REAXC package for C version of ReaxFF -Georg Gunzenmuller (EMI), georg.ganzenmueller at emi.fhg.de, USER-SMD and USER-SPH packages -Colin Denniston (U Western Ontario), cdennist at uwo.ca, USER-LB package :ul - -As discussed in "Section 13"_Section_history.html, LAMMPS -originated as a cooperative project between DOE labs and industrial -partners. Folks involved in the design and testing of the original -version of LAMMPS were the following: - -John Carpenter (Mayo Clinic, formerly at Cray Research) -Terry Stouch (Lexicon Pharmaceuticals, formerly at Bristol Myers Squibb) -Steve Lustig (Dupont) -Jim Belak (LLNL) :ul diff --git a/doc/src/Section_start.txt b/doc/src/Section_start.txt index d8f340b179..19a798d5df 100644 --- a/doc/src/Section_start.txt +++ b/doc/src/Section_start.txt @@ -1,10 +1,10 @@ -"Previous Section"_Section_intro.html - "LAMMPS WWW Site"_lws - +"Previous Section"_Intro.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Section_commands.html :c +Section"_Commands.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -119,10 +119,11 @@ lower-case name of the package, e.g. replica or user-misc. If you want to do one of the following: -use a LAMMPS command that requires an extra library (e.g. "dump image"_dump_image.html) -build with a package that requires an extra library -build with an accelerator package that requires special compiler/linker settings -run on a machine that has its own compilers, settings, or libraries :ul +use a LAMMPS command that requires an extra library (e.g. "dump +image"_dump_image.html) build with a package that requires an extra +library build with an accelerator package that requires special +compiler/linker settings run on a machine that has its own compilers, +settings, or libraries :ul then building LAMMPS is more complicated. You may need to find where extra libraries exist on your machine or install them if they don't. @@ -697,8 +698,8 @@ are always included, plus optional packages. Packages are groups of files that enable a specific set of features. For example, force fields for molecular systems or granular systems are in packages. -"Section 4"_Section_packages.html in the manual has details about all -the packages, which come in two flavors: [standard] and [user] +The "Packages"_Packages.html doc pages has details about all the +packages, which come in two flavors: [standard] and [user] packages. It also has specific instructions for building LAMMPS with any package which requires an extra library. General instructions are below. @@ -828,45 +829,47 @@ options. Packages that require extra libraries :h4,link(start_3_3) A few of the standard and user packages require extra libraries. See -"Section 4"_Section_packages.html for two tables of packages which -indicate which ones require libraries. For each such package, the -Section 4 doc page gives details on how to build the extra library, -including how to download it if necessary. The basic ideas are -summarized here. +the "Packages"_Packages.html doc pages for two tables of packages +which indicate which ones require libraries. For each such package, +the Section 4 doc page gives details on how to build the extra +library, including how to download it if necessary. The basic ideas +are summarized here. [System libraries:] -Packages in the tables "Section 4"_Section_packages.html with a "sys" -in the last column link to system libraries that typically already -exist on your machine. E.g. the python package links to a system -Python library. If your machine does not have the required library, -you will have to download and install it on your machine, in either -the system or user space. +Packages in the standard and user tables of the +"Packages"_Packages.html doc pages with a "sys" in the last column +link to system libraries that typically already exist on your machine. +E.g. the python package links to a system Python library. If your +machine does not have the required library, you will have to download +and install it on your machine, in either the system or user space. [Internal libraries:] -Packages in the tables "Section 4"_Section_packages.html with an "int" -in the last column link to internal libraries whose source code is -included with LAMMPS, in the lib/name directory where name is the -package name. You must first build the library in that directory -before building LAMMPS with that package installed. E.g. the gpu -package links to a library you build in the lib/gpu dir. You can -often do the build in one step by typing "make lib-name args=..." -from the src dir, with appropriate arguments. You can leave off the -args to see a help message. See "Section 4"_Section_packages.html for -details for each package. +Packages in the standard and user tables of the +"Packages"_Packages.html doc pages with an "int" in the last column +link to internal libraries whose source code is included with LAMMPS, +in the lib/name directory where name is the package name. You must +first build the library in that directory before building LAMMPS with +that package installed. E.g. the gpu package links to a library you +build in the lib/gpu dir. You can often do the build in one step by +typing "make lib-name args=..." from the src dir, with appropriate +arguments. You can leave off the args to see a help message. See the +"Packages details"_Packages_details.html doc page for details for each +package. [External libraries:] -Packages in the tables "Section 4"_Section_packages.html with an "ext" -in the last column link to external libraries whose source code is not -included with LAMMPS. You must first download and install the library -before building LAMMPS with that package installed. E.g. the voronoi -package links to the freely available "Voro++ library"_voro_home2. You -can often do the download/build in one step by typing "make lib-name +Packages in the standard and user tables of the +"Packages"_Packages.html doc pages with an "ext" in the last column +link to external libraries whose source code is not included with +LAMMPS. You must first download and install the library before +building LAMMPS with that package installed. E.g. the voronoi package +links to the freely available "Voro++ library"_voro_home2. You can +often do the download/build in one step by typing "make lib-name args=..." from the src dir, with appropriate arguments. You can leave -off the args to see a help message. See "Section -4"_Section_packages.html for details for each package. +off the args to see a help message. See the "Packages +details"_Packages_details.html doc page for details for each package. :link(voro_home2,http://math.lbl.gov/voro++) @@ -888,9 +891,9 @@ copied from a lib/name/Makefile.lammps.* file when the library is built. If those settings are not correct for your machine you will need to edit or create an appropriate Makefile.lammps file. -Package-specific details for these steps are given in "Section -4"_Section_packages.html an in README files in the lib/name -directories. +Package-specific details for these steps are given on the "Packages +details"_Packages_details.html doc page and in README files in the +lib/name directories. [Compiler options needed for accelerator packages:] @@ -901,14 +904,14 @@ these accelerator packages for optimal performance requires specific settings in the Makefile.machine file you use. A summary of the Makefile.machine settings needed for each of these -packages is given in "Section 4"_Section_packages.html. More info is -given on the doc pages that describe each package in detail: +packages is given on the "Packages"_Packages.html doc pages. More +info is given on the doc pages that describe each package in detail: -5.3.1 "USER-INTEL package"_accelerate_intel.html -5.3.2 "GPU package"_accelerate_intel.html -5.3.3 "KOKKOS package"_accelerate_kokkos.html -5.3.4 "USER-OMP package"_accelerate_omp.html -5.3.5 "OPT package"_accelerate_opt.html :all(b) +"USER-INTEL package"_Speed_intel.html +"GPU package"_Speed_gpu.html +"KOKKOS package"_Speed_kokkos.html +"USER-OMP package"_Speed_omp.html +"OPT package"_Speed_opt.html :all(b) You can also use or examine the following machine Makefiles in src/MAKE/OPTIONS, which include the settings. Note that the @@ -931,9 +934,9 @@ Makefile.opt :ul LAMMPS can be built as either a static or shared library, which can then be called from another application or a scripting language. See -"this section"_Section_howto.html#howto_10 for more info on coupling -LAMMPS to other codes. See the "Python"_Python.html doc page for more -info on wrapping and running LAMMPS from Python. +the "Howto couple"_Howto_couple.html doc page for more info on +coupling LAMMPS to other codes. See the "Python"_Python.html doc page +for more info on wrapping and running LAMMPS from Python. Static library :h4 @@ -1036,16 +1039,16 @@ src/library.cpp and src/library.h. See the sample codes in examples/COUPLE/simple for examples of C++ and C and Fortran codes that invoke LAMMPS thru its library interface. -There are other examples as well in the COUPLE directory which are -discussed in "Section 6.10"_Section_howto.html#howto_10 of the manual. -See the "Python"_Python.html doc page for a description of the Python -wrapper provided with LAMMPS that operates through the LAMMPS library -interface. +There are other examples as well in the COUPLE directory which use +coupling ideas discussed on the "Howto couple"_Howto_couple.html doc +page. See the "Python"_Python.html doc page for a description of the +Python wrapper provided with LAMMPS that operates through the LAMMPS +library interface. The files src/library.cpp and library.h define the C-style API for -using LAMMPS as a library. See "Section -6.19"_Section_howto.html#howto_19 of the manual for a description of the -interface and how to extend it for your needs. +using LAMMPS as a library. See the "Howto library"_Howto_library.html +doc page for a description of the interface and how to extend it for +your needs. :line @@ -1067,7 +1070,7 @@ the '-in' command-line switch, e.g. lmp_linux -in in.file :pre -"This section"_Section_commands.html describes how input scripts are +The "Commands"_Commands.html doc page describes how input scripts are structured and what commands they contain. You can test LAMMPS on any of the sample inputs provided in the @@ -1276,8 +1279,8 @@ Either the full word or an abbreviation can be used for the keywords. Note that the keywords do not use a leading minus sign. I.e. the keyword is "t", not "-t". Also note that each of the keywords has a default setting. Example of when to use these options and what -settings to use on different platforms is given in "Section -5.3"_Section_accelerate.html#acc_3. +settings to use on different platforms is given on the "Speed +kokkos"_Speed_kokkos.html doc page. d or device g or gpus @@ -1388,16 +1391,16 @@ processors in all partitions must equal P. Thus the command "-partition 8x2 4 5" has 10 partitions and runs on a total of 25 processors. -Running with multiple partitions can e useful for running -"multi-replica simulations"_Section_howto.html#howto_5, where each -replica runs on on one or a few processors. Note that with MPI -installed on a machine (e.g. your desktop), you can run on more -(virtual) processors than you have physical processors. +Running with multiple partitions can be useful for running +"multi-replica simulations"_Howto_replica.html, where each replica +runs on on one or a few processors. Note that with MPI installed on a +machine (e.g. your desktop), you can run on more (virtual) processors +than you have physical processors. To run multiple independent simulations from one input script, using -multiple partitions, see "Section 6.4"_Section_howto.html#howto_4 -of the manual. World- and universe-style "variables"_variable.html -are useful in this context. +multiple partitions, see the "Howto multiple"_Howto_multiple.html doc +page. World- and universe-style "variables"_variable.html are useful +in this context. -plog file :pre @@ -1461,8 +1464,7 @@ cores within each node are ranked in a desired order. Or when using the "run_style verlet/split"_run_style.html command with 2 partitions to insure that a specific Kspace processor (in the 2nd partition) is matched up with a specific set of processors in the 1st partition. -See the "Section 5"_Section_accelerate.html doc pages for -more details. +See the "Speed tips"_Speed_tips.html doc page for more details. If the keyword {nth} is used with a setting {N}, then it means every Nth processor will be moved to the end of the ranking. This is useful @@ -1613,9 +1615,9 @@ value2 ..." at the beginning of the input script. Defining an index variable as a command-line argument overrides any setting for the same index variable in the input script, since index variables cannot be re-defined. See the "variable"_variable.html command for more info on -defining index and other kinds of variables and "this -section"_Section_commands.html#cmd_2 for more info on using variables -in input scripts. +defining index and other kinds of variables and the "Commands +parse"_Commands_parse.html page for more info on using variables in +input scripts. NOTE: Currently, the command-line parser looks for arguments that start with "-" to indicate new switches. Thus you cannot specify @@ -1785,11 +1787,13 @@ communication, roughly 75% in the example above. The current C++ began with a complete rewrite of LAMMPS 2001, which was written in F90. Features of earlier versions of LAMMPS are listed -in "Section 13"_Section_history.html. The F90 and F77 versions -(2001 and 99) are also freely distributed as open-source codes; check -the "LAMMPS WWW Site"_lws for distribution information if you prefer -those versions. The 99 and 2001 versions are no longer under active -development; they do not have all the features of C++ LAMMPS. +on the "History page"_http://lammps.sandia.gov/history.html of the +LAMMPS website. The F90 and F77 versions (2001 and 99) are also +freely distributed as open-source codes; check the "History +page"_http://lammps.sandia.gov/history.html of the LAMMPS website for +info about those versions. The 99 and 2001 versions are no longer +under active development; they do not have all the features of C++ +LAMMPS. If you are a previous user of LAMMPS 2001, these are the most significant changes you will notice in C++ LAMMPS: diff --git a/doc/src/Speed.txt b/doc/src/Speed.txt new file mode 100644 index 0000000000..091657082a --- /dev/null +++ b/doc/src/Speed.txt @@ -0,0 +1,64 @@ +"Previous Section"_Package.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Howto.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +Accelerate performance :h2 + +This section describes various methods for improving LAMMPS +performance for different classes of problems running on different +kinds of machines. + +There are two thrusts to the discussion that follows. The first is +using code options that implement alternate algorithms that can +speed-up a simulation. The second is to use one of the several +accelerator packages provided with LAMMPS that contain code optimized +for certain kinds of hardware, including multi-core CPUs, GPUs, and +Intel Xeon Phi coprocessors. + +The "Benchmark page"_http://lammps.sandia.gov/bench.html of the LAMMPS +web site gives performance results for the various accelerator +packages discussed on the "Speed packages"_Speed_packages.html doc +page, for several of the standard LAMMPS benchmark problems, as a +function of problem size and number of compute nodes, on different +hardware platforms. + + + + + +"Benchmarks"_Speed_bench.html +"Measuring performance"_Speed_measure.html :all(b) + +"General tips"_Speed_tips.html :all(b) + +"Accelerator packages"_Speed_packages.html +"GPU package"_Speed_gpu.html +"USER-INTEL package"_Speed_intel.html +"KOKKOS package"_Speed_kokkos.html +"USER-OMP package"_Speed_omp.html +"OPT package"_Speed_opt.html +"Comparison of accelerator packages"_Speed_compare.html :all(b) + + diff --git a/doc/src/Section_perf.txt b/doc/src/Speed_bench.txt similarity index 86% rename from doc/src/Section_perf.txt rename to doc/src/Speed_bench.txt index f320780129..8e407d14ea 100644 --- a/doc/src/Section_perf.txt +++ b/doc/src/Speed_bench.txt @@ -1,19 +1,18 @@ -"Previous Section"_Examples.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Tools.html -:c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line -8. Performance & scalability :h2 +Benchmarks :h3 -Current LAMMPS performance is discussed on the Benchmarks page of the -"LAMMPS WWW Site"_lws where CPU timings and parallel efficiencies are -listed. The page has several sections, which are briefly described -below: +Current LAMMPS performance is discussed on the "Benchmarks +page"_http://lammps.sandia.gov/bench.html of the "LAMMPS website"_lws +where timings and parallel efficiencies are listed. The page has +several sections, which are briefly described below: CPU performance on 5 standard problems, strong and weak scaling GPU and Xeon Phi performance on same and related problems @@ -53,8 +52,8 @@ of these 5 problems on 1 or 4 cores of Linux desktop. The bench/FERMI and bench/KEPLER dirs have input files and scripts and instructions for running the same (or similar) problems using OpenMP or GPU or Xeon Phi acceleration options. See the README files in those dirs and the -"Section 5.3"_Section_accelerate.html#acc_3 doc pages for -instructions on how to build LAMMPS and run on that kind of hardware. +"Speed packages"_Speed_packages.html doc pages for instructions on how +to build LAMMPS and run on that kind of hardware. The bench/POTENTIALS directory has input files which correspond to the table of results on the diff --git a/doc/src/Speed_compare.txt b/doc/src/Speed_compare.txt new file mode 100644 index 0000000000..1a17b39c79 --- /dev/null +++ b/doc/src/Speed_compare.txt @@ -0,0 +1,73 @@ +"Higher level section"_Speed.html - "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 + +Comparison of various accelerator packages :h3 + +NOTE: this section still needs to be re-worked with additional KOKKOS +and USER-INTEL information. + +The next section compares and contrasts the various accelerator +options, since there are multiple ways to perform OpenMP threading, +run on GPUs, and run on Intel Xeon Phi coprocessors. + +All 3 of these packages accelerate a LAMMPS calculation using NVIDIA +hardware, but they do it in different ways. + +As a consequence, for a particular simulation on specific hardware, +one package may be faster than the other. We give guidelines below, +but the best way to determine which package is faster for your input +script is to try both of them on your machine. See the benchmarking +section below for examples where this has been done. + +[Guidelines for using each package optimally:] + +The GPU package allows you to assign multiple CPUs (cores) to a single +GPU (a common configuration for "hybrid" nodes that contain multicore +CPU(s) and GPU(s)) and works effectively in this mode. :ulb,l + +The GPU package moves per-atom data (coordinates, forces) +back-and-forth between the CPU and GPU every timestep. The +KOKKOS/CUDA package only does this on timesteps when a CPU calculation +is required (e.g. to invoke a fix or compute that is non-GPU-ized). +Hence, if you can formulate your input script to only use GPU-ized +fixes and computes, and avoid doing I/O too often (thermo output, dump +file snapshots, restart files), then the data transfer cost of the +KOKKOS/CUDA package can be very low, causing it to run faster than the +GPU package. :l + +The GPU package is often faster than the KOKKOS/CUDA package, if the +number of atoms per GPU is smaller. The crossover point, in terms of +atoms/GPU at which the KOKKOS/CUDA package becomes faster depends +strongly on the pair style. For example, for a simple Lennard Jones +system the crossover (in single precision) is often about 50K-100K +atoms per GPU. When performing double precision calculations the +crossover point can be significantly smaller. :l + +Both packages compute bonded interactions (bonds, angles, etc) on the +CPU. If the GPU package is running with several MPI processes +assigned to one GPU, the cost of computing the bonded interactions is +spread across more CPUs and hence the GPU package can run faster. :l + +When using the GPU package with multiple CPUs assigned to one GPU, its +performance depends to some extent on high bandwidth between the CPUs +and the GPU. Hence its performance is affected if full 16 PCIe lanes +are not available for each GPU. In HPC environments this can be the +case if S2050/70 servers are used, where two devices generally share +one PCIe 2.0 16x slot. Also many multi-GPU mainboards do not provide +full 16 lanes to each of the PCIe 2.0 16x slots. :l +:ule + +[Differences between the two packages:] + +The GPU package accelerates only pair force, neighbor list, and PPPM +calculations. :ulb,l + +The GPU package requires neighbor lists to be built on the CPU when using +exclusion lists, hybrid pair styles, or a triclinic simulation box. :l +:ule diff --git a/doc/src/accelerate_gpu.txt b/doc/src/Speed_gpu.txt similarity index 96% rename from doc/src/accelerate_gpu.txt rename to doc/src/Speed_gpu.txt index 816a31c788..ab8ec7e9d1 100644 --- a/doc/src/accelerate_gpu.txt +++ b/doc/src/Speed_gpu.txt @@ -1,15 +1,13 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line -"Return to Section accelerate overview"_Section_accelerate.html - -5.3.1 GPU package :h5 +GPU package :h3 The GPU package was developed by Mike Brown at ORNL and his collaborators, particularly Trung Nguyen (ORNL). It provides GPU @@ -72,10 +70,9 @@ Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) t [Building LAMMPS with the GPU package:] This requires two steps (a,b): build the GPU library, then build -LAMMPS with the GPU package. - -You can do both these steps in one line as described in -"Section 4"_Section_packages.html of the manual. +LAMMPS with the GPU package. You can do both these steps in one line +as described on the "Packages details"_Packages_details.html#GPU doc +page. Or you can follow these two (a,b) steps: diff --git a/doc/src/accelerate_intel.txt b/doc/src/Speed_intel.txt similarity index 97% rename from doc/src/accelerate_intel.txt rename to doc/src/Speed_intel.txt index 71f5185b15..20f49672e0 100644 --- a/doc/src/accelerate_intel.txt +++ b/doc/src/Speed_intel.txt @@ -1,15 +1,13 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line -"Return to Section accelerate overview"_Section_accelerate.html - -5.3.2 USER-INTEL package :h5 +USER-INTEL package :h3 The USER-INTEL package is maintained by Mike Brown at Intel Corporation. It provides two methods for accelerating simulations, @@ -188,8 +186,8 @@ can start running so that the CPU pipeline is still being used efficiently. Although benefits can be seen by launching a MPI task for every hardware thread, for multinode simulations, we recommend that OpenMP threads are used for SMT instead, either with the -USER-INTEL package, "USER-OMP package"_accelerate_omp.html, or -"KOKKOS package"_accelerate_kokkos.html. In the example above, up +USER-INTEL package, "USER-OMP package"_Speed_omp.html, or +"KOKKOS package"_Speed_kokkos.html. In the example above, up to 36X speedups can be observed by using all 36 physical cores with LAMMPS. By using all 72 hardware threads, an additional 10-30% performance gain can be achieved. @@ -233,9 +231,9 @@ source /opt/intel/parallel_studio_xe_2016.3.067/psxevars.sh # or psxevars.csh for C-shell make intel_cpu_intelmpi :pre -Alternatively this can be done as a single command with -suitable make command invocations. This is discussed in "Section -4"_Section_packages.html of the manual. +Alternatively this can be done as a single command with suitable make +command invocations, as described on the "Packages +details"_Packages_details.html#USER-INTEL doc page. Note that if you build with support for a Phi coprocessor, the same binary can be used on nodes with or without coprocessors installed. @@ -391,8 +389,8 @@ performance and/or scalability for simple 2-body potentials such as lj/cut or when using LRT mode on processors supporting AVX-512. Not all styles are supported in the USER-INTEL package. You can mix -the USER-INTEL package with styles from the "OPT"_accelerate_opt.html -package or the "USER-OMP package"_accelerate_omp.html. Of course, +the USER-INTEL package with styles from the "OPT"_Speed_opt.html +package or the "USER-OMP package"_Speed_omp.html. Of course, this requires that these packages were installed at build time. This can performed automatically by using "-sf hybrid intel opt" or "-sf hybrid intel omp" command-line options. Alternatively, the "opt" diff --git a/doc/src/accelerate_kokkos.txt b/doc/src/Speed_kokkos.txt similarity index 59% rename from doc/src/accelerate_kokkos.txt rename to doc/src/Speed_kokkos.txt index 0c9178d6e4..14f4103aed 100644 --- a/doc/src/accelerate_kokkos.txt +++ b/doc/src/Speed_kokkos.txt @@ -1,38 +1,41 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line -"Return to Section accelerate overview"_Section_accelerate.html - -5.3.3 KOKKOS package :h5 +KOKKOS package :h3 Kokkos is a templated C++ library that provides abstractions to allow -a single implementation of an application kernel (e.g. a pair style) to run efficiently on -different kinds of hardware, such as GPUs, Intel Xeon Phis, or many-core -CPUs. Kokkos maps the C++ kernel onto different backend languages such as CUDA, OpenMP, or Pthreads. -The Kokkos library also provides data abstractions to adjust (at -compile time) the memory layout of data structures like 2d and -3d arrays to optimize performance on different hardware. For more information on Kokkos, see -"Github"_https://github.com/kokkos/kokkos. Kokkos is part of -"Trilinos"_http://trilinos.sandia.gov/packages/kokkos. The Kokkos library was written primarily by Carter Edwards, -Christian Trott, and Dan Sunderland (all Sandia). +a single implementation of an application kernel (e.g. a pair style) +to run efficiently on different kinds of hardware, such as GPUs, Intel +Xeon Phis, or many-core CPUs. Kokkos maps the C++ kernel onto +different backend languages such as CUDA, OpenMP, or Pthreads. The +Kokkos library also provides data abstractions to adjust (at compile +time) the memory layout of data structures like 2d and 3d arrays to +optimize performance on different hardware. For more information on +Kokkos, see "Github"_https://github.com/kokkos/kokkos. Kokkos is part +of "Trilinos"_http://trilinos.sandia.gov/packages/kokkos. The Kokkos +library was written primarily by Carter Edwards, Christian Trott, and +Dan Sunderland (all Sandia). -The LAMMPS KOKKOS package contains versions of pair, fix, and atom styles -that use data structures and macros provided by the Kokkos library, -which is included with LAMMPS in /lib/kokkos. The KOKKOS package was developed primarily by Christian Trott (Sandia) -and Stan Moore (Sandia) with contributions of various styles by others, including Sikandar -Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez (Sandia). For more information on developing using Kokkos abstractions +The LAMMPS KOKKOS package contains versions of pair, fix, and atom +styles that use data structures and macros provided by the Kokkos +library, which is included with LAMMPS in /lib/kokkos. The KOKKOS +package was developed primarily by Christian Trott (Sandia) and Stan +Moore (Sandia) with contributions of various styles by others, +including Sikandar Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez +(Sandia). For more information on developing using Kokkos abstractions see the Kokkos programmers' guide at /lib/kokkos/doc/Kokkos_PG.pdf. Kokkos currently provides support for 3 modes of execution (per MPI -task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP (threading -for many-core CPUs and Intel Phi), and CUDA (for NVIDIA GPUs). You choose the mode at build time to -produce an executable compatible with specific hardware. +task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP +(threading for many-core CPUs and Intel Phi), and CUDA (for NVIDIA +GPUs). You choose the mode at build time to produce an executable +compatible with specific hardware. [Building LAMMPS with the KOKKOS package:] @@ -40,16 +43,18 @@ NOTE: Kokkos support within LAMMPS must be built with a C++11 compatible compiler. This means GCC version 4.7.2 or later, Intel 14.0.4 or later, or Clang 3.5.2 or later is required. -The recommended method of building the KOKKOS package is to start with the provided Kokkos -Makefiles in /src/MAKE/OPTIONS/. You may need to modify the KOKKOS_ARCH variable in the Makefile -to match your specific hardware. For example: +The recommended method of building the KOKKOS package is to start with +the provided Kokkos Makefiles in /src/MAKE/OPTIONS/. You may need to +modify the KOKKOS_ARCH variable in the Makefile to match your specific +hardware. For example: for Sandy Bridge CPUs, set KOKKOS_ARCH=SNB for Broadwell CPUs, set KOKKOS_ARCH=BWD for K80 GPUs, set KOKKOS_ARCH=Kepler37 for P100 GPUs and Power8 CPUs, set KOKKOS_ARCH=Pascal60,Power8 :ul -See the [Advanced Kokkos Options] section below for a listing of all KOKKOS_ARCH options. +See the [Advanced Kokkos Options] section below for a listing of all +KOKKOS_ARCH options. [Compile for CPU-only (MPI only, no threading):] @@ -63,11 +68,12 @@ make kokkos_mpi_only :pre [Compile for CPU-only (MPI plus OpenMP threading):] -NOTE: To build with Kokkos support for OpenMP threading, your compiler must support the -OpenMP interface. You should have one or more multi-core CPUs so that -multiple threads can be launched by each MPI task running on a CPU. +NOTE: To build with Kokkos support for OpenMP threading, your compiler +must support the OpenMP interface. You should have one or more +multi-core CPUs so that multiple threads can be launched by each MPI +task running on a CPU. -use a C++11 compatible compiler and set KOKKOS_ARCH variable in +Use a C++11 compatible compiler and set KOKKOS_ARCH variable in /src/MAKE/OPTIONS/Makefile.kokkos_omp as described above. Then do the following: @@ -85,14 +91,14 @@ make kokkos_phi :pre [Compile for CPUs and GPUs (with OpenMPI or MPICH):] -NOTE: To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA software -version 7.5 or later must be installed on your system. See the -discussion for the "GPU"_accelerate_gpu.html package for details of -how to check and do this. +NOTE: To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA +software version 7.5 or later must be installed on your system. See +the discussion for the "GPU package"_Speed_gpu.html for details of how +to check and do this. -use a C++11 compatible compiler and set KOKKOS_ARCH variable in -/src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi for both GPU and CPU as described -above. Then do the following: +Use a C++11 compatible compiler and set KOKKOS_ARCH variable in +/src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi for both GPU and CPU as +described above. Then do the following: cd lammps/src make yes-kokkos @@ -106,24 +112,24 @@ on the make command line. For example: make mpi KOKKOS_DEVICES=OpenMP KOKKOS_ARCH=SNB # set the KOKKOS_DEVICES and KOKKOS_ARCH variable explicitly make kokkos_cuda_mpi KOKKOS_ARCH=Pascal60,Power8 # set the KOKKOS_ARCH variable explicitly :pre -Setting the KOKKOS_DEVICES and KOKKOS_ARCH variables on the -make command line requires a GNU-compatible make command. Try -"gmake" if your system's standard make complains. +Setting the KOKKOS_DEVICES and KOKKOS_ARCH variables on the make +command line requires a GNU-compatible make command. Try "gmake" if +your system's standard make complains. NOTE: If you build using make line variables and re-build LAMMPS twice -with different KOKKOS options and the *same* target, then you *must* perform a "make clean-all" -or "make clean-machine" before each build. This is to force all the -KOKKOS-dependent files to be re-compiled with the new options. +with different KOKKOS options and the *same* target, then you *must* +perform a "make clean-all" or "make clean-machine" before each +build. This is to force all the KOKKOS-dependent files to be +re-compiled with the new options. [Running LAMMPS with the KOKKOS package:] -All Kokkos operations occur within the -context of an individual MPI task running on a single node of the -machine. The total number of MPI tasks used by LAMMPS (one or -multiple per compute node) is set in the usual manner via the mpirun -or mpiexec commands, and is independent of Kokkos. E.g. the mpirun -command in OpenMPI does this via its --np and -npernode switches. Ditto for MPICH via -np and -ppn. +All Kokkos operations occur within the context of an individual MPI +task running on a single node of the machine. The total number of MPI +tasks used by LAMMPS (one or multiple per compute node) is set in the +usual manner via the mpirun or mpiexec commands, and is independent of +Kokkos. E.g. the mpirun command in OpenMPI does this via its -np and +-npernode switches. Ditto for MPICH via -np and -ppn. [Running on a multi-core CPU:] @@ -135,8 +141,9 @@ mpirun -np 2 -ppn 1 lmp_kokkos_omp -k on t 16 -sf kk -in in.lj # 2 nodes, 1 MPI mpirun -np 2 lmp_kokkos_omp -k on t 8 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 8 threads/task mpirun -np 32 -ppn 4 lmp_kokkos_omp -k on t 4 -sf kk -in in.lj # 8 nodes, 4 MPI tasks/node, 4 threads/task :pre -To run using the KOKKOS package, use the "-k on", "-sf kk" and "-pk kokkos" "command-line switches"_Section_start.html#start_7 in your mpirun command. -You must use the "-k on" "command-line +To run using the KOKKOS package, use the "-k on", "-sf kk" and "-pk +kokkos" "command-line switches"_Section_start.html#start_7 in your +mpirun command. You must use the "-k on" "command-line switch"_Section_start.html#start_7 to enable the KOKKOS package. It takes additional arguments for hardware settings appropriate to your system. Those arguments are "documented @@ -144,32 +151,33 @@ here"_Section_start.html#start_7. For OpenMP use: -k on t Nt :pre -The "t Nt" option specifies how many OpenMP threads per MPI -task to use with a node. The default is Nt = 1, which is MPI-only mode. -Note that the product of MPI tasks * OpenMP -threads/task should not exceed the physical number of cores (on a -node), otherwise performance will suffer. If hyperthreading is enabled, then -the product of MPI tasks * OpenMP threads/task should not exceed the -physical number of cores * hardware threads. -The "-k on" switch also issues a "package kokkos" command (with no -additional arguments) which sets various KOKKOS options to default -values, as discussed on the "package"_package.html command doc page. +The "t Nt" option specifies how many OpenMP threads per MPI task to +use with a node. The default is Nt = 1, which is MPI-only mode. Note +that the product of MPI tasks * OpenMP threads/task should not exceed +the physical number of cores (on a node), otherwise performance will +suffer. If hyperthreading is enabled, then the product of MPI tasks * +OpenMP threads/task should not exceed the physical number of cores * +hardware threads. The "-k on" switch also issues a "package kokkos" +command (with no additional arguments) which sets various KOKKOS +options to default values, as discussed on the "package"_package.html +command doc page. -The "-sf kk" "command-line switch"_Section_start.html#start_7 -will automatically append the "/kk" suffix to styles that support it. -In this manner no modification to the input script is needed. Alternatively, -one can run with the KOKKOS package by editing the input script as described below. +The "-sf kk" "command-line switch"_Section_start.html#start_7 will +automatically append the "/kk" suffix to styles that support it. In +this manner no modification to the input script is +needed. Alternatively, one can run with the KOKKOS package by editing +the input script as described below. -NOTE: The default for the "package kokkos"_package.html command is -to use "full" neighbor lists and set the Newton flag to "off" for both +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both pairwise and bonded interactions. However, when running on CPUs, it will typically be faster to use "half" neighbor lists and set the Newton flag to "on", just as is the case for non-accelerated pair -styles. It can also be faster to use non-threaded communication. -Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to -change the default "package kokkos"_package.html -options. See its doc page for details and default settings. Experimenting with -its options can provide a speed-up for specific calculations. For example: +styles. It can also be faster to use non-threaded communication. Use +the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to +change the default "package kokkos"_package.html options. See its doc +page for details and default settings. Experimenting with its options +can provide a speed-up for specific calculations. For example: mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -pk kokkos newton on neigh half comm no -in in.lj # Newton on, Half neighbor list, non-threaded comm :pre @@ -178,9 +186,9 @@ script, it can also override the Newton flag defaults. [Core and Thread Affinity:] -When using multi-threading, it is important for -performance to bind both MPI tasks to physical cores, and threads to -physical cores, so they do not migrate during a simulation. +When using multi-threading, it is important for performance to bind +both MPI tasks to physical cores, and threads to physical cores, so +they do not migrate during a simulation. If you are not certain MPI tasks are being bound (check the defaults for your MPI installation), binding can be forced with these flags: @@ -191,24 +199,24 @@ Mvapich2 2.0: mpiexec -np 2 --bind-to socket --map-by socket ./lmp_mvapich ... : For binding threads with KOKKOS OpenMP, use thread affinity environment variables to force binding. With OpenMP 3.1 (gcc 4.7 or later, intel 12 or later) setting the environment variable -OMP_PROC_BIND=true should be sufficient. In general, for best performance -with OpenMP 4.0 or better set OMP_PROC_BIND=spread and OMP_PLACES=threads. -For binding threads with the -KOKKOS pthreads option, compile LAMMPS the KOKKOS HWLOC=yes option -as described below. +OMP_PROC_BIND=true should be sufficient. In general, for best +performance with OpenMP 4.0 or better set OMP_PROC_BIND=spread and +OMP_PLACES=threads. For binding threads with the KOKKOS pthreads +option, compile LAMMPS the KOKKOS HWLOC=yes option as described below. [Running on Knight's Landing (KNL) Intel Xeon Phi:] -Here is a quick overview of how to use the KOKKOS package -for the Intel Knight's Landing (KNL) Xeon Phi: +Here is a quick overview of how to use the KOKKOS package for the +Intel Knight's Landing (KNL) Xeon Phi: -KNL Intel Phi chips have 68 physical cores. Typically 1 to 4 cores -are reserved for the OS, and only 64 or 66 cores are used. Each core -has 4 hyperthreads,so there are effectively N = 256 (4*64) or -N = 264 (4*66) cores to run on. The product of MPI tasks * OpenMP threads/task should not exceed this limit, -otherwise performance will suffer. Note that with the KOKKOS package you do not need to -specify how many KNLs there are per node; each -KNL is simply treated as running some number of MPI tasks. +KNL Intel Phi chips have 68 physical cores. Typically 1 to 4 cores are +reserved for the OS, and only 64 or 66 cores are used. Each core has 4 +hyperthreads,so there are effectively N = 256 (4*64) or N = 264 (4*66) +cores to run on. The product of MPI tasks * OpenMP threads/task should +not exceed this limit, otherwise performance will suffer. Note that +with the KOKKOS package you do not need to specify how many KNLs there +are per node; each KNL is simply treated as running some number of MPI +tasks. Examples of mpirun commands that follow these rules are shown below. @@ -223,57 +231,60 @@ tasks/node. The "-k on t Nt" command-line switch sets the number of threads/task as Nt. The product of these two values should be N, i.e. 256 or 264. -NOTE: The default for the "package kokkos"_package.html command is -to use "full" neighbor lists and set the Newton flag to "off" for both -pairwise and bonded interactions. When running on KNL, this -will typically be best for pair-wise potentials. For manybody potentials, -using "half" neighbor lists and setting the -Newton flag to "on" may be faster. It can also be faster to use non-threaded communication. -Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to -change the default "package kokkos"_package.html -options. See its doc page for details and default settings. Experimenting with -its options can provide a speed-up for specific calculations. For example: +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both +pairwise and bonded interactions. When running on KNL, this will +typically be best for pair-wise potentials. For manybody potentials, +using "half" neighbor lists and setting the Newton flag to "on" may be +faster. It can also be faster to use non-threaded communication. Use +the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to +change the default "package kokkos"_package.html options. See its doc +page for details and default settings. Experimenting with its options +can provide a speed-up for specific calculations. For example: mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos comm no -in in.lj # Newton off, full neighbor list, non-threaded comm mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos newton on neigh half comm no -in in.reax # Newton on, half neighbor list, non-threaded comm :pre -NOTE: MPI tasks and threads should be bound to cores as described above for CPUs. +NOTE: MPI tasks and threads should be bound to cores as described +above for CPUs. -NOTE: To build with Kokkos support for Intel Xeon Phi coprocessors such as Knight's Corner (KNC), your -system must be configured to use them in "native" mode, not "offload" -mode like the USER-INTEL package supports. +NOTE: To build with Kokkos support for Intel Xeon Phi coprocessors +such as Knight's Corner (KNC), your system must be configured to use +them in "native" mode, not "offload" mode like the USER-INTEL package +supports. [Running on GPUs:] -Use the "-k" "command-line switch"_Section_commands.html#start_7 to -specify the number of GPUs per node. Typically the -np setting -of the mpirun command should set the number of MPI -tasks/node to be equal to the # of physical GPUs on the node. -You can assign multiple MPI tasks to the same GPU with the -KOKKOS package, but this is usually only faster if significant portions -of the input script have not been ported to use Kokkos. Using CUDA MPS -is recommended in this scenario. As above for multi-core CPUs (and no GPU), if N is the number -of physical cores/node, then the number of MPI tasks/node should not exceed N. +Use the "-k" "command-line switch"_Section_start.html#start_7 to +specify the number of GPUs per node. Typically the -np setting of the +mpirun command should set the number of MPI tasks/node to be equal to +the # of physical GPUs on the node. You can assign multiple MPI tasks +to the same GPU with the KOKKOS package, but this is usually only +faster if significant portions of the input script have not been +ported to use Kokkos. Using CUDA MPS is recommended in this +scenario. As above for multi-core CPUs (and no GPU), if N is the +number of physical cores/node, then the number of MPI tasks/node +should not exceed N. -k on g Ng :pre -Here are examples of how to use the KOKKOS package for GPUs, -assuming one or more nodes, each with two GPUs: +Here are examples of how to use the KOKKOS package for GPUs, assuming +one or more nodes, each with two GPUs: mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 2 GPUs/node mpirun -np 32 -ppn 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 16 nodes, 2 MPI tasks/node, 2 GPUs/node (32 GPUs total) :pre -NOTE: The default for the "package kokkos"_package.html command is -to use "full" neighbor lists and set the Newton flag to "off" for both +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both pairwise and bonded interactions, along with threaded communication. -When running on Maxwell or Kepler GPUs, this will typically be best. For Pascal GPUs, -using "half" neighbor lists and setting the -Newton flag to "on" may be faster. For many pair styles, setting the neighbor binsize -equal to the ghost atom cutoff will give speedup. -Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to -change the default "package kokkos"_package.html -options. See its doc page for details and default settings. Experimenting with -its options can provide a speed-up for specific calculations. For example: +When running on Maxwell or Kepler GPUs, this will typically be +best. For Pascal GPUs, using "half" neighbor lists and setting the +Newton flag to "on" may be faster. For many pair styles, setting the +neighbor binsize equal to the ghost atom cutoff will give speedup. +Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 +to change the default "package kokkos"_package.html options. See its +doc page for details and default settings. Experimenting with its +options can provide a speed-up for specific calculations. For example: mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos binsize 2.8 -in in.lj # Set binsize = neighbor ghost cutoff mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighborlist, set binsize = neighbor ghost cutoff :pre @@ -301,8 +312,8 @@ Alternatively the effect of the "-sf" or "-pk" switches can be duplicated by adding the "package kokkos"_package.html or "suffix kk"_suffix.html commands to your input script. -The discussion above for building LAMMPS with the KOKKOS package, the mpirun/mpiexec command, and setting -appropriate thread are the same. +The discussion above for building LAMMPS with the KOKKOS package, the +mpirun/mpiexec command, and setting appropriate thread are the same. You must still use the "-k on" "command-line switch"_Section_start.html#start_7 to enable the KOKKOS package, and @@ -320,17 +331,19 @@ wish to change any of its option defaults, as set by the "-k on" [Using OpenMP threading and CUDA together (experimental):] -With the KOKKOS package, both OpenMP multi-threading and GPUs can be used -together in a few special cases. In the Makefile, the KOKKOS_DEVICES variable must -include both "Cuda" and "OpenMP", as is the case for /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi +With the KOKKOS package, both OpenMP multi-threading and GPUs can be +used together in a few special cases. In the Makefile, the +KOKKOS_DEVICES variable must include both "Cuda" and "OpenMP", as is +the case for /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi KOKKOS_DEVICES=Cuda,OpenMP :pre The suffix "/kk" is equivalent to "/kk/device", and for Kokkos CUDA, -using the "-sf kk" in the command line gives the default CUDA version everywhere. -However, if the "/kk/host" suffix is added to a specific style in the input -script, the Kokkos OpenMP (CPU) version of that specific style will be used instead. -Set the number of OpenMP threads as "t Nt" and the number of GPUs as "g Ng" +using the "-sf kk" in the command line gives the default CUDA version +everywhere. However, if the "/kk/host" suffix is added to a specific +style in the input script, the Kokkos OpenMP (CPU) version of that +specific style will be used instead. Set the number of OpenMP threads +as "t Nt" and the number of GPUs as "g Ng" -k on t Nt g Ng :pre @@ -338,18 +351,20 @@ For example, the command to run with 1 GPU and 8 OpenMP threads is then: mpiexec -np 1 lmp_kokkos_cuda_openmpi -in in.lj -k on g 1 t 8 -sf kk :pre -Conversely, if the "-sf kk/host" is used in the command line and then the -"/kk" or "/kk/device" suffix is added to a specific style in your input script, -then only that specific style will run on the GPU while everything else will -run on the CPU in OpenMP mode. Note that the execution of the CPU and GPU -styles will NOT overlap, except for a special case: +Conversely, if the "-sf kk/host" is used in the command line and then +the "/kk" or "/kk/device" suffix is added to a specific style in your +input script, then only that specific style will run on the GPU while +everything else will run on the CPU in OpenMP mode. Note that the +execution of the CPU and GPU styles will NOT overlap, except for a +special case: -A kspace style and/or molecular topology (bonds, angles, etc.) running on -the host CPU can overlap with a pair style running on the GPU. First compile -with "--default-stream per-thread" added to CCFLAGS in the Kokkos CUDA Makefile. -Then explicitly use the "/kk/host" suffix for kspace and bonds, angles, etc. -in the input file and the "kk" suffix (equal to "kk/device") on the command line. -Also make sure the environment variable CUDA_LAUNCH_BLOCKING is not set to "1" +A kspace style and/or molecular topology (bonds, angles, etc.) running +on the host CPU can overlap with a pair style running on the +GPU. First compile with "--default-stream per-thread" added to CCFLAGS +in the Kokkos CUDA Makefile. Then explicitly use the "/kk/host" +suffix for kspace and bonds, angles, etc. in the input file and the +"kk" suffix (equal to "kk/device") on the command line. Also make +sure the environment variable CUDA_LAUNCH_BLOCKING is not set to "1" so CPU/GPU overlap can occur. [Speed-ups to expect:] @@ -386,9 +401,8 @@ hardware. There are other allowed options when building with the KOKKOS package. As above, they can be set either as variables on the make command line or in Makefile.machine. This is the full list of options, including -those discussed above. Each takes a value shown below. The -default value is listed, which is set in the -/lib/kokkos/Makefile.kokkos file. +those discussed above. Each takes a value shown below. The default +value is listed, which is set in the /lib/kokkos/Makefile.kokkos file. KOKKOS_DEVICES, values = {Serial}, {OpenMP}, {Pthreads}, {Cuda}, default = {OpenMP} KOKKOS_ARCH, values = {KNC}, {SNB}, {HSW}, {Kepler30}, {Kepler32}, {Kepler35}, {Kepler37}, {Maxwell50}, {Maxwell52}, {Maxwell53}, {Pascal60}, {Pascal61}, {ARMv80}, {ARMv81}, {ARMv81}, {ARMv8-ThunderX}, {BGQ}, {Power7}, {Power8}, {Power9}, {KNL}, {BDW}, {SKX}, default = {none} @@ -434,8 +448,8 @@ migrate during a simulation. KOKKOS_USE_TPLS=hwloc should always be used if running with KOKKOS_DEVICES=Pthreads for pthreads. It is not necessary for KOKKOS_DEVICES=OpenMP for OpenMP, because OpenMP provides alternative methods via environment variables for binding -threads to hardware cores. More info on binding threads to cores is -given in "Section 5.3"_Section_accelerate.html#acc_3. +threads to hardware cores. More info on binding threads to cores is +given on the "Speed omp"_Speed_omp.html doc page. KOKKOS_USE_TPLS=librt enables use of a more accurate timer mechanism on most Unix platforms. This library is not available on all @@ -446,13 +460,14 @@ within LAMMPS. KOKKOS_DEBUG=yes enables printing of run-time debugging information that can be useful. It also enables runtime bounds checking on Kokkos data structures. -KOKKOS_CXX_STANDARD and KOKKOS_OPTIONS are typically not changed when building LAMMPS. +KOKKOS_CXX_STANDARD and KOKKOS_OPTIONS are typically not changed when +building LAMMPS. -KOKKOS_CUDA_OPTIONS are additional options for CUDA. The LAMMPS KOKKOS package must be compiled -with the {enable_lambda} option when using GPUs. +KOKKOS_CUDA_OPTIONS are additional options for CUDA. The LAMMPS KOKKOS +package must be compiled with the {enable_lambda} option when using +GPUs. [Restrictions:] -Currently, there are no precision options with the KOKKOS -package. All compilation and computation is performed in double -precision. +Currently, there are no precision options with the KOKKOS package. All +compilation and computation is performed in double precision. diff --git a/doc/src/Speed_measure.txt b/doc/src/Speed_measure.txt new file mode 100644 index 0000000000..78dc220088 --- /dev/null +++ b/doc/src/Speed_measure.txt @@ -0,0 +1,55 @@ +"Higher level section"_Speed.html - "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 + +Measuring performance :h3 + +Before trying to make your simulation run faster, you should +understand how it currently performs and where the bottlenecks are. + +The best way to do this is run the your system (actual number of +atoms) for a modest number of timesteps (say 100 steps) on several +different processor counts, including a single processor if possible. +Do this for an equilibrium version of your system, so that the +100-step timings are representative of a much longer run. There is +typically no need to run for 1000s of timesteps to get accurate +timings; you can simply extrapolate from short runs. + +For the set of runs, look at the timing data printed to the screen and +log file at the end of each LAMMPS run. "This +section"_Section_start.html#start_7 of the manual has an overview. + +Running on one (or a few processors) should give a good estimate of +the serial performance and what portions of the timestep are taking +the most time. Running the same problem on a few different processor +counts should give an estimate of parallel scalability. I.e. if the +simulation runs 16x faster on 16 processors, its 100% parallel +efficient; if it runs 8x faster on 16 processors, it's 50% efficient. + +The most important data to look at in the timing info is the timing +breakdown and relative percentages. For example, trying different +options for speeding up the long-range solvers will have little impact +if they only consume 10% of the run time. If the pairwise time is +dominating, you may want to look at GPU or OMP versions of the pair +style, as discussed below. Comparing how the percentages change as +you increase the processor count gives you a sense of how different +operations within the timestep are scaling. Note that if you are +running with a Kspace solver, there is additional output on the +breakdown of the Kspace time. For PPPM, this includes the fraction +spent on FFTs, which can be communication intensive. + +Another important detail in the timing info are the histograms of +atoms counts and neighbor counts. If these vary widely across +processors, you have a load-imbalance issue. This often results in +inaccurate relative timing data, because processors have to wait when +communication occurs for other processors to catch up. Thus the +reported times for "Communication" or "Other" may be higher than they +really are, due to load-imbalance. If this is an issue, you can +uncomment the MPI_Barrier() lines in src/timer.cpp, and recompile +LAMMPS, to obtain synchronized timings. + diff --git a/doc/src/accelerate_omp.txt b/doc/src/Speed_omp.txt similarity index 95% rename from doc/src/accelerate_omp.txt rename to doc/src/Speed_omp.txt index fa7bef1a52..bcfc406902 100644 --- a/doc/src/accelerate_omp.txt +++ b/doc/src/Speed_omp.txt @@ -1,15 +1,13 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line -"Return to Section 5 overview"_Section_accelerate.html - -5.3.4 USER-OMP package :h5 +USER-OMP package :h3 The USER-OMP package was developed by Axel Kohlmeyer at Temple University. It provides multi-threaded versions of most pair styles, @@ -39,7 +37,8 @@ each MPI task running on a CPU. The lines above illustrate how to include/build with the USER-OMP package in two steps, using the "make" command. Or how to do it with -one command as described in "Section 4"_Section_packages.html of the manual. +one command as described on the "Packages +details"_Packages_details.html#USER-OMP doc page. Note that the CCFLAGS and LINKFLAGS settings in Makefile.machine must include "-fopenmp". Likewise, if you use an Intel compiler, the @@ -100,7 +99,7 @@ task, versus running standard LAMMPS with its standard un-accelerated styles (in serial or all-MPI parallelization with 1 task/core). This is because many of the USER-OMP styles contain similar optimizations to those used in the OPT package, described in "Section -5.3.5"_accelerate_opt.html. +5.3.5"_Speed_opt.html. With multiple threads/task, the optimal choice of number of MPI tasks/node and OpenMP threads/task can vary a lot and should always be diff --git a/doc/src/accelerate_opt.txt b/doc/src/Speed_opt.txt similarity index 85% rename from doc/src/accelerate_opt.txt rename to doc/src/Speed_opt.txt index 845264b522..676a5d8418 100644 --- a/doc/src/accelerate_opt.txt +++ b/doc/src/Speed_opt.txt @@ -1,15 +1,13 @@ -"Previous Section"_Section_packages.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line -"Return to Section accelerate overview"_Section_accelerate.html - -5.3.5 OPT package :h5 +OPT package :h3 The OPT package was developed by James Fischer (High Performance Technologies), David Richie, and Vincent Natoli (Stone Ridge @@ -34,7 +32,8 @@ None. The lines above illustrate how to build LAMMPS with the OPT package in two steps, using the "make" command. Or how to do it with one command -as described in "Section 4"_Section_packages.html of the manual. +as described on the "Packages details"_Packages_details.html#OPT doc +page. Note that if you use an Intel compiler to build with the OPT package, the CCFLAGS setting in your Makefile.machine must include "-restrict". diff --git a/doc/src/Speed_packages.txt b/doc/src/Speed_packages.txt new file mode 100644 index 0000000000..f463ed91b8 --- /dev/null +++ b/doc/src/Speed_packages.txt @@ -0,0 +1,192 @@ +"Higher level section"_Speed.html - "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 + +Accelerator packages :h3 + +Accelerated versions of various "pair_style"_pair_style.html, +"fixes"_fix.html, "computes"_compute.html, and other commands have +been added to LAMMPS, which will typically run faster than the +standard non-accelerated versions. Some require appropriate hardware +to be present on your system, e.g. GPUs or Intel Xeon Phi +coprocessors. + +All of these commands are in packages provided with LAMMPS. An +overview of packages is give on the "Packages"_Packages.html doc +pages. + +These are the accelerator packages currently in LAMMPS, either as +standard or user packages: + +"GPU Package"_Speed_gpu.html : for NVIDIA GPUs as well as OpenCL support +"USER-INTEL Package"_Speed_intel.html : for Intel CPUs and Intel Xeon Phi +"KOKKOS Package"_Speed_kokkos.html : for Nvidia GPUs, Intel Xeon Phi, and OpenMP threading +"USER-OMP Package"_Speed_omp.html : for OpenMP threading and generic CPU optimizations +"OPT Package"_Speed_opt.html : generic CPU optimizations :tb(s=:) + + + +Inverting this list, LAMMPS currently has acceleration support for +three kinds of hardware, via the listed packages: + +Many-core CPUs : "USER-INTEL"_Speed_intel.html, "KOKKOS"_Speed_kokkos.html, "USER-OMP"_Speed_omp.html, "OPT"_Speed_opt.html packages +NVIDIA GPUs : "GPU"_Speed_gpu.html, "KOKKOS"_Speed_kokkos.html packages +Intel Phi : "USER-INTEL"_Speed_intel.html, "KOKKOS"_Speed_kokkos.html packages :tb(s=:) + +Which package is fastest for your hardware may depend on the size +problem you are running and what commands (accelerated and +non-accelerated) are invoked by your input script. While these doc +pages include performance guidelines, there is no substitute for +trying out the different packages appropriate to your hardware. + +Any accelerated style has the same name as the corresponding standard +style, except that a suffix is appended. Otherwise, the syntax for +the command that uses the style is identical, their functionality is +the same, and the numerical results it produces should also be the +same, except for precision and round-off effects. + +For example, all of these styles are accelerated variants of the +Lennard-Jones "pair_style lj/cut"_pair_lj.html: + +"pair_style lj/cut/gpu"_pair_lj.html +"pair_style lj/cut/intel"_pair_lj.html +"pair_style lj/cut/kk"_pair_lj.html +"pair_style lj/cut/omp"_pair_lj.html +"pair_style lj/cut/opt"_pair_lj.html :ul + +To see what accelerate styles are currently available for a particular +style, find the style name in the "Commands_all"_Commands_all.html +style pages (fix,compute,pair,etc) and see what suffixes are listed +(g,i,k,o,t) with it. The doc pages for individual commands +(e.g. "pair lj/cut"_pair_lj.html or "fix nve"_fix_nve.html) also list +any accelerated variants available for that style. + +To use an accelerator package in LAMMPS, and one or more of the styles +it provides, follow these general steps. Details vary from package to +package and are explained in the individual accelerator doc pages, +listed above: + +build the accelerator library | + only for GPU package | +install the accelerator package | + make yes-opt, make yes-user-intel, etc | +add compile/link flags to Makefile.machine in src/MAKE | + only for USER-INTEL, KOKKOS, USER-OMP, OPT packages | +re-build LAMMPS | + make machine | +prepare and test a regular LAMMPS simulation | + lmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script | +enable specific accelerator support via '-k on' "command-line switch"_Section_start.html#start_6, | + only needed for KOKKOS package | +set any needed options for the package via "-pk" "command-line switch"_Section_start.html#start_6 or "package"_package.html command, | + only if defaults need to be changed | +use accelerated styles in your input via "-sf" "command-line switch"_Section_start.html#start_6 or "suffix"_suffix.html command | lmp_machine -in in.script -sf gpu +:tb(c=2,s=|) + +Note that the first 4 steps can be done as a single command with +suitable make command invocations. This is discussed on the +"Packages"_Packages.html doc pages, and its use is illustrated in the +individual accelerator sections. Typically these steps only need to +be done once, to create an executable that uses one or more +accelerator packages. + +The last 4 steps can all be done from the command-line when LAMMPS is +launched, without changing your input script, as illustrated in the +individual accelerator sections. Or you can add +"package"_package.html and "suffix"_suffix.html commands to your input +script. + +NOTE: With a few exceptions, you can build a single LAMMPS executable +with all its accelerator packages installed. Note however that the +USER-INTEL and KOKKOS packages require you to choose one of their +hardware options when building for a specific platform. I.e. CPU or +Phi option for the USER-INTEL package. Or the OpenMP, Cuda, or Phi +option for the KOKKOS package. + +These are the exceptions. You cannot build a single executable with: + +both the USER-INTEL Phi and KOKKOS Phi options +the USER-INTEL Phi or Kokkos Phi option, and the GPU package :ul + +See the examples/accelerate/README and make.list files for sample +Make.py commands that build LAMMPS with any or all of the accelerator +packages. As an example, here is a command that builds with all the +GPU related packages installed (GPU, KOKKOS with Cuda), including +settings to build the needed auxiliary GPU libraries for Kepler GPUs: + +Make.py -j 16 -p omp gpu kokkos -cc nvcc wrap=mpi \ + -gpu mode=double arch=35 -kokkos cuda arch=35 lib-all file mpi :pre + +The examples/accelerate directory also has input scripts that can be +used with all of the accelerator packages. See its README file for +details. + +Likewise, the bench directory has FERMI and KEPLER and PHI +sub-directories with Make.py commands and input scripts for using all +the accelerator packages on various machines. See the README files in +those dirs. + +As mentioned above, the "Benchmark +page"_http://lammps.sandia.gov/bench.html of the LAMMPS web site gives +performance results for the various accelerator packages for several +of the standard LAMMPS benchmark problems, as a function of problem +size and number of compute nodes, on different hardware platforms. + +Here is a brief summary of what the various packages provide. Details +are in the individual accelerator sections. + +Styles with a "gpu" suffix are part of the GPU package, and can be run +on NVIDIA GPUs. The speed-up on a GPU depends on a variety of +factors, discussed in the accelerator sections. :ulb,l + +Styles with an "intel" suffix are part of the USER-INTEL +package. These styles support vectorized single and mixed precision +calculations, in addition to full double precision. In extreme cases, +this can provide speedups over 3.5x on CPUs. The package also +supports acceleration in "offload" mode to Intel(R) Xeon Phi(TM) +coprocessors. This can result in additional speedup over 2x depending +on the hardware configuration. :l + +Styles with a "kk" suffix are part of the KOKKOS package, and can be +run using OpenMP on multicore CPUs, on an NVIDIA GPU, or on an Intel +Xeon Phi in "native" mode. The speed-up depends on a variety of +factors, as discussed on the KOKKOS accelerator page. :l + +Styles with an "omp" suffix are part of the USER-OMP package and allow +a pair-style to be run in multi-threaded mode using OpenMP. This can +be useful on nodes with high-core counts when using less MPI processes +than cores is advantageous, e.g. when running with PPPM so that FFTs +are run on fewer MPI processors or when the many MPI tasks would +overload the available bandwidth for communication. :l + +Styles with an "opt" suffix are part of the OPT package and typically +speed-up the pairwise calculations of your simulation by 5-25% on a +CPU. :l +:ule + +The individual accelerator package doc pages explain: + +what hardware and software the accelerated package requires +how to build LAMMPS with the accelerated package +how to run with the accelerated package either via command-line switches or modifying the input script +speed-ups to expect +guidelines for best performance +restrictions :ul + diff --git a/doc/src/Speed_tips.txt b/doc/src/Speed_tips.txt new file mode 100644 index 0000000000..7c950779d5 --- /dev/null +++ b/doc/src/Speed_tips.txt @@ -0,0 +1,63 @@ +"Higher level section"_Speed.html - "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 + +General tips :h3 + +NOTE: this section 5.2 is still a work in progress + +Here is a list of general ideas for improving simulation performance. +Most of them are only applicable to certain models and certain +bottlenecks in the current performance, so let the timing data you +generate be your guide. It is hard, if not impossible, to predict how +much difference these options will make, since it is a function of +problem size, number of processors used, and your machine. There is +no substitute for identifying performance bottlenecks, and trying out +various options. + +make individual pages for these, or one for PPPM +one for timestepping, etc +one for balancing +or proc layout + +rRESPA +2-FFT PPPM +Staggered PPPM +single vs double PPPM +partial charge PPPM +verlet/split run style +processor command for proc layout and numa layout +load-balancing: balance and fix balance :ul + +2-FFT PPPM, also called {analytic differentiation} or {ad} PPPM, uses +2 FFTs instead of the 4 FFTs used by the default {ik differentiation} +PPPM. However, 2-FFT PPPM also requires a slightly larger mesh size to +achieve the same accuracy as 4-FFT PPPM. For problems where the FFT +cost is the performance bottleneck (typically large problems running +on many processors), 2-FFT PPPM may be faster than 4-FFT PPPM. + +Staggered PPPM performs calculations using two different meshes, one +shifted slightly with respect to the other. This can reduce force +aliasing errors and increase the accuracy of the method, but also +doubles the amount of work required. For high relative accuracy, using +staggered PPPM allows one to half the mesh size in each dimension as +compared to regular PPPM, which can give around a 4x speedup in the +kspace time. However, for low relative accuracy, using staggered PPPM +gives little benefit and can be up to 2x slower in the kspace +time. For example, the rhodopsin benchmark was run on a single +processor, and results for kspace time vs. relative accuracy for the +different methods are shown in the figure below. For this system, +staggered PPPM (using ik differentiation) becomes useful when using a +relative accuracy of slightly greater than 1e-5 and above. + +:c,image(JPG/rhodo_staggered.jpg) + +NOTE: Using staggered PPPM may not give the same increase in accuracy +of energy and pressure as it does in forces, so some caution must be +used if energy and/or pressure are quantities of interest, such as +when using a barostat. diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index 4c5fbbd453..85ee531cfd 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -1,10 +1,10 @@ -"Previous Section"_Section_perf.html - "LAMMPS WWW Site"_lws - "LAMMPS +"Previous Section"_Examples.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Modify.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -142,8 +142,8 @@ The syntax for running the tool is chain < def.chain > data.file :pre See the def.chain or def.chain.ab files in the tools directory for -examples of definition files. This tool was used to create the -system for the "chain benchmark"_Section_perf.html. +examples of definition files. This tool was used to create the system +for the "chain benchmark"_Speed_bench.html. :line @@ -249,9 +249,9 @@ These tools were provided by Andres Jaramillo-Botero at CalTech emacs tool :h4,link(emacs) -The tools/emacs directory contains a Lips add-on file for Emacs that -enables a lammps-mode for editing of input scripts when using Emacs, -with various highlighting options setup. +The tools/emacs directory contains an Emacs Lisp add-on file for GNU Emacs +that enables a lammps-mode for editing input scripts when using GNU Emacs, +with various highlighting options set up. These tools were provided by Aidan Thompson at Sandia (athomps at sandia.gov). diff --git a/doc/src/angle_charmm.txt b/doc/src/angle_charmm.txt index 7ff7ef8fd4..f72f086234 100644 --- a/doc/src/angle_charmm.txt +++ b/doc/src/angle_charmm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -51,10 +51,9 @@ internally; hence the units of K are in energy/radian^2. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -66,8 +65,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_class2.txt b/doc/src/angle_class2.txt index d4330139c9..3e5445d3a3 100644 --- a/doc/src/angle_class2.txt +++ b/doc/src/angle_class2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -83,10 +83,9 @@ same value from the Ea formula. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -98,8 +97,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_coeff.txt b/doc/src/angle_coeff.txt index 37298ba145..4c217bae7d 100644 --- a/doc/src/angle_coeff.txt +++ b/doc/src/angle_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -65,9 +65,9 @@ the style to display the formula it computes and coefficients specified by the associated "angle_coeff"_angle_coeff.html command. Note that there are also additional angle styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the angle section of "this -page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +angle styles is on the "Commands bond"_Commands_bond.html#angle doc +page. "angle_style none"_angle_none.html - turn off angle interactions "angle_style hybrid"_angle_hybrid.html - define multiple styles of angle interactions :ul diff --git a/doc/src/angle_cosine.txt b/doc/src/angle_cosine.txt index c0ce3c9301..5a1fe91c83 100644 --- a/doc/src/angle_cosine.txt +++ b/doc/src/angle_cosine.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -38,10 +38,9 @@ K (energy) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -53,8 +52,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine_buck6d.txt b/doc/src/angle_cosine_buck6d.txt index 7182ffecc8..63a451b763 100644 --- a/doc/src/angle_cosine_buck6d.txt +++ b/doc/src/angle_cosine_buck6d.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_cosine_delta.txt b/doc/src/angle_cosine_delta.txt index 830fd6db58..b6ac0ed818 100644 --- a/doc/src/angle_cosine_delta.txt +++ b/doc/src/angle_cosine_delta.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -43,10 +43,9 @@ internally. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -58,8 +57,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine_periodic.txt b/doc/src/angle_cosine_periodic.txt index b5c53b1b0f..c5b184e0b4 100644 --- a/doc/src/angle_cosine_periodic.txt +++ b/doc/src/angle_cosine_periodic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -21,10 +21,10 @@ angle_coeff * 75.0 1 6 :pre [Description:] The {cosine/periodic} angle style uses the following potential, which -is commonly used in the "DREIDING"_Section_howto.html#howto_4 force -field, particularly for organometallic systems where {n} = 4 might be -used for an octahedral complex and {n} = 3 might be used for a -trigonal center: +is commonly used in the "DREIDING"_Howto_bioFF.html force field, +particularly for organometallic systems where {n} = 4 might be used +for an octahedral complex and {n} = 3 might be used for a trigonal +center: :c,image(Eqs/angle_cosine_periodic.jpg) @@ -51,10 +51,9 @@ geometry. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -66,8 +65,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine_shift.txt b/doc/src/angle_cosine_shift.txt index 6ed9fe2150..90ac61fe23 100644 --- a/doc/src/angle_cosine_shift.txt +++ b/doc/src/angle_cosine_shift.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -41,10 +41,9 @@ theta (angle) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -56,8 +55,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine_shift_exp.txt b/doc/src/angle_cosine_shift_exp.txt index 44a68c1087..f1c4c93c42 100644 --- a/doc/src/angle_cosine_shift_exp.txt +++ b/doc/src/angle_cosine_shift_exp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -53,10 +53,9 @@ A (real number) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -68,8 +67,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_cosine_squared.txt b/doc/src/angle_cosine_squared.txt index 065cdad542..ba5fd9d413 100644 --- a/doc/src/angle_cosine_squared.txt +++ b/doc/src/angle_cosine_squared.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -43,10 +43,9 @@ internally. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -58,8 +57,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_dipole.txt b/doc/src/angle_dipole.txt index 34cc8c153c..c001d9d920 100644 --- a/doc/src/angle_dipole.txt +++ b/doc/src/angle_dipole.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -71,10 +71,9 @@ gamma0 (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -86,8 +85,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restrictions:] diff --git a/doc/src/angle_fourier.txt b/doc/src/angle_fourier.txt index da39e7cf32..e0e32c1eed 100644 --- a/doc/src/angle_fourier.txt +++ b/doc/src/angle_fourier.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -39,10 +39,9 @@ C2 (real) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -54,8 +53,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_fourier_simple.txt b/doc/src/angle_fourier_simple.txt index 5adda6cb32..3c50536a2c 100644 --- a/doc/src/angle_fourier_simple.txt +++ b/doc/src/angle_fourier_simple.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -38,10 +38,9 @@ n (real) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -53,8 +52,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_harmonic.txt b/doc/src/angle_harmonic.txt index 4c74763964..76c7a491e8 100644 --- a/doc/src/angle_harmonic.txt +++ b/doc/src/angle_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -45,10 +45,9 @@ internally; hence the units of K are in energy/radian^2. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -60,8 +59,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_hybrid.txt b/doc/src/angle_hybrid.txt index bdd3707ccb..2646903421 100644 --- a/doc/src/angle_hybrid.txt +++ b/doc/src/angle_hybrid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_none.txt b/doc/src/angle_none.txt index a4a9b07c78..1eca5cbbec 100644 --- a/doc/src/angle_none.txt +++ b/doc/src/angle_none.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_quartic.txt b/doc/src/angle_quartic.txt index f7640bdfbc..294be330b1 100644 --- a/doc/src/angle_quartic.txt +++ b/doc/src/angle_quartic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -45,10 +45,9 @@ internally; hence the units of K are in energy/radian^2. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -60,8 +59,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_sdk.txt b/doc/src/angle_sdk.txt index 0cc535e543..9c5630ef3a 100644 --- a/doc/src/angle_sdk.txt +++ b/doc/src/angle_sdk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/angle_style.txt b/doc/src/angle_style.txt index f687e9286c..63295faf26 100644 --- a/doc/src/angle_style.txt +++ b/doc/src/angle_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -58,9 +58,9 @@ the style to display the formula it computes and coefficients specified by the associated "angle_coeff"_angle_coeff.html command. Note that there are also additional angle styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the angle section of "this -page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +angle styles are is on the "Commands bond"_Commands_bond.html#angle +doc page. "angle_style none"_angle_none.html - turn off angle interactions "angle_style zero"_angle_zero.html - topology but no interactions diff --git a/doc/src/angle_table.txt b/doc/src/angle_table.txt index bd6e167bd8..31ab532be1 100644 --- a/doc/src/angle_table.txt +++ b/doc/src/angle_table.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -124,10 +124,9 @@ one that matches the specified keyword. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -139,8 +138,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/angle_zero.txt b/doc/src/angle_zero.txt index b8e8ebf953..c6c1958ec8 100644 --- a/doc/src/angle_zero.txt +++ b/doc/src/angle_zero.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/atom_modify.txt b/doc/src/atom_modify.txt index 1dc0fa6bfb..c882d1b0ba 100644 --- a/doc/src/atom_modify.txt +++ b/doc/src/atom_modify.txt @@ -3,7 +3,7 @@ Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/atom_style.txt b/doc/src/atom_style.txt index 442bb5ac70..abf05885a3 100644 --- a/doc/src/atom_style.txt +++ b/doc/src/atom_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -20,7 +20,7 @@ style = {angle} or {atomic} or {body} or {bond} or {charge} or {dipole} or \ {body} args = bstyle bstyle-args bstyle = style of body particles bstyle-args = additional arguments specific to the bstyle - see the "body"_body.html doc page for details + see the "Howto body"_Howto_body.html doc page for details {tdpd} arg = Nspecies Nspecies = # of chemical species {template} arg = template-ID @@ -106,9 +106,9 @@ output the custom values. All of the above styles define point particles, except the {sphere}, {ellipsoid}, {electron}, {peri}, {wavepacket}, {line}, {tri}, and -{body} styles, which define finite-size particles. See "Section -6.14"_Section_howto.html#howto_14 for an overview of using finite-size -particle models with LAMMPS. +{body} styles, which define finite-size particles. See the "Howto +spherical"_Howto_spherical.html doc page for an overview of using +finite-size particle models with LAMMPS. All of the point-particle styles assign mass to particles on a per-type basis, using the "mass"_mass.html command, The finite-size @@ -224,15 +224,16 @@ the {bstyle} argument. Body particles can represent complex entities, such as surface meshes of discrete points, collections of sub-particles, deformable objects, etc. -The "body"_body.html doc page describes the body styles LAMMPS -currently supports, and provides more details as to the kind of body -particles they represent. For all styles, each body particle stores -moments of inertia and a quaternion 4-vector, so that its orientation -and position can be time integrated due to forces and torques. +The "Howto body"_Howto_body.html doc page describes the body styles +LAMMPS currently supports, and provides more details as to the kind of +body particles they represent. For all styles, each body particle +stores moments of inertia and a quaternion 4-vector, so that its +orientation and position can be time integrated due to forces and +torques. Note that there may be additional arguments required along with the {bstyle} specification, in the atom_style body command. These -arguments are described in the "body"_body.html doc page. +arguments are described on the "Howto body"_Howto_body.html doc page. :line @@ -261,10 +262,10 @@ styles; see the "Modify"_Modify.html doc page. Styles with a {kk} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to -run faster, depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +run faster, depending on your available hardware, as discussed in on +the "Speed packages"_Speed_packages.html doc page. The accelerated +styles take the same arguments and should produce the same results, +except for round-off and precision issues. Note that other acceleration packages in LAMMPS, specifically the GPU, USER-INTEL, USER-OMP, and OPT packages do not use accelerated atom @@ -279,8 +280,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restrictions:] diff --git a/doc/src/balance.txt b/doc/src/balance.txt index da6f59900d..06c4eca491 100644 --- a/doc/src/balance.txt +++ b/doc/src/balance.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_class2.txt b/doc/src/bond_class2.txt index 9687a63168..3d8d5007ba 100644 --- a/doc/src/bond_class2.txt +++ b/doc/src/bond_class2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -44,10 +44,9 @@ K4 (energy/distance^4) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -59,8 +58,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_coeff.txt b/doc/src/bond_coeff.txt index d93c0b223b..7485fa3d8d 100644 --- a/doc/src/bond_coeff.txt +++ b/doc/src/bond_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -61,9 +61,8 @@ the style to display the formula it computes and coefficients specified by the associated "bond_coeff"_bond_coeff.html command. Note that here are also additional bond styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the bond section of "this -page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +bond styles is on the "Commands bond"_Commands_bond.html doc page. "bond_style none"_bond_none.html - turn off bonded interactions "bond_style hybrid"_bond_hybrid.html - define multiple styles of bond interactions :ul diff --git a/doc/src/bond_fene.txt b/doc/src/bond_fene.txt index 9050c3bf5c..e16307a710 100644 --- a/doc/src/bond_fene.txt +++ b/doc/src/bond_fene.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -47,10 +47,9 @@ sigma (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -62,8 +61,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_fene_expand.txt b/doc/src/bond_fene_expand.txt index ff687444a9..8edd325885 100644 --- a/doc/src/bond_fene_expand.txt +++ b/doc/src/bond_fene_expand.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -50,10 +50,9 @@ delta (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -65,8 +64,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_gromos.txt b/doc/src/bond_gromos.txt index cc3ff75878..275036a421 100644 --- a/doc/src/bond_gromos.txt +++ b/doc/src/bond_gromos.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -40,10 +40,9 @@ r0 (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -55,8 +54,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_harmonic.txt b/doc/src/bond_harmonic.txt index c18a7e0fd4..e4b2015fed 100644 --- a/doc/src/bond_harmonic.txt +++ b/doc/src/bond_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -42,10 +42,9 @@ r0 (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -57,8 +56,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_harmonic_shift.txt b/doc/src/bond_harmonic_shift.txt index bf3b3c115a..b6dc18a5fd 100644 --- a/doc/src/bond_harmonic_shift.txt +++ b/doc/src/bond_harmonic_shift.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -43,10 +43,9 @@ rc (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -58,8 +57,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_harmonic_shift_cut.txt b/doc/src/bond_harmonic_shift_cut.txt index 1918ce00b6..b3054437d8 100644 --- a/doc/src/bond_harmonic_shift_cut.txt +++ b/doc/src/bond_harmonic_shift_cut.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -43,10 +43,9 @@ rc (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -58,8 +57,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_hybrid.txt b/doc/src/bond_hybrid.txt index 400c3e0be4..140fb72378 100644 --- a/doc/src/bond_hybrid.txt +++ b/doc/src/bond_hybrid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_morse.txt b/doc/src/bond_morse.txt index 4f6a32e341..9b64e8c5c1 100644 --- a/doc/src/bond_morse.txt +++ b/doc/src/bond_morse.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -41,10 +41,9 @@ r0 (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -56,8 +55,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_none.txt b/doc/src/bond_none.txt index 8cb262a50f..cace1919e1 100644 --- a/doc/src/bond_none.txt +++ b/doc/src/bond_none.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_nonlinear.txt b/doc/src/bond_nonlinear.txt index 434af62506..08109bc699 100644 --- a/doc/src/bond_nonlinear.txt +++ b/doc/src/bond_nonlinear.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -41,10 +41,9 @@ lamda (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -56,8 +55,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_oxdna.txt b/doc/src/bond_oxdna.txt index 927fea6403..a0e14a123a 100644 --- a/doc/src/bond_oxdna.txt +++ b/doc/src/bond_oxdna.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_quartic.txt b/doc/src/bond_quartic.txt index 4dc7ad4a36..87a21eff02 100644 --- a/doc/src/bond_quartic.txt +++ b/doc/src/bond_quartic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -76,10 +76,9 @@ delete_bonds all bond 0 remove :pre Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -91,8 +90,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_style.txt b/doc/src/bond_style.txt index 3bd8afda19..41fa1cabb2 100644 --- a/doc/src/bond_style.txt +++ b/doc/src/bond_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -66,9 +66,8 @@ the style to display the formula it computes and coefficients specified by the associated "bond_coeff"_bond_coeff.html command. Note that there are also additional bond styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the bond section of "this -page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +bond styles is on the "Commands bond"_Commands_bond.html doc page. "bond_style none"_bond_none.html - turn off bonded interactions "bond_style zero"_bond_zero.html - topology but no interactions diff --git a/doc/src/bond_table.txt b/doc/src/bond_table.txt index 906d3e5d76..e53cbdfa9f 100644 --- a/doc/src/bond_table.txt +++ b/doc/src/bond_table.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -121,10 +121,9 @@ one that matches the specified keyword. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -136,8 +135,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/bond_write.txt b/doc/src/bond_write.txt index 4797d06cb1..711bd2c296 100644 --- a/doc/src/bond_write.txt +++ b/doc/src/bond_write.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/bond_zero.txt b/doc/src/bond_zero.txt index b599f291b4..554f26e7f0 100644 --- a/doc/src/bond_zero.txt +++ b/doc/src/bond_zero.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/boundary.txt b/doc/src/boundary.txt index ce638f11b3..f9685433b2 100644 --- a/doc/src/boundary.txt +++ b/doc/src/boundary.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -82,9 +82,9 @@ and xhi faces of the box are planes tilting in the +y direction as y increases. These tilted planes are shrink-wrapped around the atoms to determine the x extent of the box. -See "Section 6.12"_Section_howto.html#howto_12 of the doc pages -for a geometric description of triclinic boxes, as defined by LAMMPS, -and how to transform these parameters to and from other commonly used +See the "Howto triclinic"_Howto_triclinic.html doc page for a +geometric description of triclinic boxes, as defined by LAMMPS, and +how to transform these parameters to and from other commonly used triclinic representations. [Restrictions:] diff --git a/doc/src/box.txt b/doc/src/box.txt index a6207ae993..38c874fb78 100644 --- a/doc/src/box.txt +++ b/doc/src/box.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -30,9 +30,9 @@ For triclinic (non-orthogonal) simulation boxes, the {tilt} keyword allows simulation domains to be created with arbitrary tilt factors, e.g. via the "create_box"_create_box.html or "read_data"_read_data.html commands. Tilt factors determine how -skewed the triclinic box is; see "this -section"_Section_howto.html#howto_12 of the manual for a discussion of -triclinic boxes in LAMMPS. +skewed the triclinic box is; see the "Howto +triclinic"_Howto_triclinic.html doc page for a discussion of triclinic +boxes in LAMMPS. LAMMPS normally requires that no tilt factor can skew the box more than half the distance of the parallel box length, which is the 1st diff --git a/doc/src/change_box.txt b/doc/src/change_box.txt index 2c7a890d4c..adc5d6bdcb 100644 --- a/doc/src/change_box.txt +++ b/doc/src/change_box.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -75,9 +75,9 @@ The "create_box"_create_box.html, "read data"_read_data.html, and simulation box is orthogonal or triclinic and their doc pages explain the meaning of the xy,xz,yz tilt factors. -See "Section 6.12"_Section_howto.html#howto_12 of the doc pages -for a geometric description of triclinic boxes, as defined by LAMMPS, -and how to transform these parameters to and from other commonly used +See the "Howto triclinic"_Howto_triclinic.html doc page for a +geometric description of triclinic boxes, as defined by LAMMPS, and +how to transform these parameters to and from other commonly used triclinic representations. The keywords used in this command are applied sequentially to the @@ -140,8 +140,8 @@ transformation in the sequence. If skew is exceeded before the final transformation this can be avoided by changing the order of the sequence, or breaking the transformation into two or more smaller transformations. For more information on the allowed limits for box -skew see the discussion on triclinic boxes on "this -page"_Section_howto.html#howto_12. +skew see the discussion on triclinic boxes on "Howto +triclinic"_Howto_triclinic.html doc page. :line @@ -258,9 +258,7 @@ command. :line The {ortho} and {triclinic} keywords convert the simulation box to be -orthogonal or triclinic (non-orthogonal). See "this -section"_Section_howto#howto_13 for a discussion of how non-orthogonal -boxes are represented in LAMMPS. +orthogonal or triclinic (non-orthogonal). The simulation box is defined as either orthogonal or triclinic when it is created via the "create_box"_create_box.html, @@ -271,8 +269,8 @@ These keywords allow you to toggle the existing simulation box from orthogonal to triclinic and vice versa. For example, an initial equilibration simulation can be run in an orthogonal box, the box can be toggled to triclinic, and then a "non-equilibrium MD (NEMD) -simulation"_Section_howto.html#howto_13 can be run with deformation -via the "fix deform"_fix_deform.html command. +simulation"_Howto_nemd.html can be run with deformation via the "fix +deform"_fix_deform.html command. If the simulation box is currently triclinic and has non-zero tilt in xy, yz, or xz, then it cannot be converted to an orthogonal box. diff --git a/doc/src/clear.txt b/doc/src/clear.txt index 7ac4da5c8d..c4ad4c4030 100644 --- a/doc/src/clear.txt +++ b/doc/src/clear.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/comm_modify.txt b/doc/src/comm_modify.txt index 3e8d0eca4f..489278523b 100644 --- a/doc/src/comm_modify.txt +++ b/doc/src/comm_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/comm_style.txt b/doc/src/comm_style.txt index 8248d654d3..39eb1d4ef5 100644 --- a/doc/src/comm_style.txt +++ b/doc/src/comm_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute.txt b/doc/src/compute.txt index 532a5414e3..7d9e443e7d 100644 --- a/doc/src/compute.txt +++ b/doc/src/compute.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -33,7 +33,7 @@ information about a previous state of the system. Defining a compute does not perform a computation. Instead computes are invoked by other LAMMPS commands as needed, e.g. to calculate a temperature needed for a thermostat fix or to generate thermodynamic or dump file output. -See this "howto section"_Section_howto.html#howto_15 for a summary of +See the "Howto output"_Howto_output.html doc page for a summary of various LAMMPS output options, many of which involve computes. The ID of a compute can only contain alphanumeric characters and @@ -161,13 +161,19 @@ calculations accessed in the various ways described above. Each compute style has its own doc page which describes its arguments and what it does. Here is an alphabetic list of compute styles -available in LAMMPS. They are also given in more compact form in the -Compute section of "this page"_Section_commands.html#cmd_5. +available in LAMMPS. They are also listed in more compact form on the +"Commands compute"_Commands_compute.html doc page. There are also additional compute styles (not listed here) submitted -by users which are included in the LAMMPS distribution. The list of -these with links to the individual styles are given in the compute -section of "this page"_Section_commands.html#cmd_5. +by users which are included in the LAMMPS distribution. The full list +of all compute styles is on the "Commands +compute"_Commands_compute.html doc page. + +There are also additional accelerated compute styles included in the +LAMMPS distribution for faster performance on CPUs, GPUs, and KNLs. +The individual style names on the "Commands +compute"_Commands_compute.html doc page are followed by one or more of +(g,i,k,o,t) to indicate which accerlerated styles exist. "aggregate/atom"_compute_cluster_atom.html - aggregate ID for each atom "angle/local"_compute_bond_local.html - theta and energy of each angle @@ -243,16 +249,6 @@ section of "this page"_Section_commands.html#cmd_5. "vcm/chunk"_compute_vcm_chunk.html - velocity of center-of-mass for each chunk "voronoi/atom"_compute_voronoi_atom.html - Voronoi volume and neighbors for each atom :ul -There are also additional compute styles submitted by users which are -included in the LAMMPS distribution. The list of these with links to -the individual styles are given in the compute section of "this -page"_Section_commands.html#cmd_5. - -There are also additional accelerated compute styles included in the -LAMMPS distribution for faster performance on CPUs and GPUs. The list -of these with links to the individual styles are given in the pair -section of "this page"_Section_commands.html#cmd_5. - [Restrictions:] none [Related commands:] diff --git a/doc/src/compute_ackland_atom.txt b/doc/src/compute_ackland_atom.txt index 3fd838d957..485c191313 100644 --- a/doc/src/compute_ackland_atom.txt +++ b/doc/src/compute_ackland_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -60,7 +60,7 @@ which computes this quantity.- This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. [Restrictions:] diff --git a/doc/src/compute_angle.txt b/doc/src/compute_angle.txt index 2c363ce8f6..64eb2f4bb1 100644 --- a/doc/src/compute_angle.txt +++ b/doc/src/compute_angle.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -37,8 +37,8 @@ This compute calculates a global vector of length N where N is the number of sub_styles defined by the "angle_style hybrid"_angle_style.html command, which can be accessed by indices 1-N. These values can be used by any command that uses global scalar -or vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +or vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector values are "extensive" and will be in energy diff --git a/doc/src/compute_angle_local.txt b/doc/src/compute_angle_local.txt index 0ee1d32d7d..3a321965ef 100644 --- a/doc/src/compute_angle_local.txt +++ b/doc/src/compute_angle_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -70,8 +70,8 @@ array is the number of angles. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The output for {theta} will be in degrees. The output for {eng} will diff --git a/doc/src/compute_angmom_chunk.txt b/doc/src/compute_angmom_chunk.txt index 813da15eea..7e49ff3024 100644 --- a/doc/src/compute_angmom_chunk.txt +++ b/doc/src/compute_angmom_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the 3 components of the angular momentum vector for each chunk, due to the velocity/momentum of the individual @@ -73,8 +72,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 3 for the 3 xyz components of the angular momentum for each chunk. These values can be accessed by any command that uses global array -values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_basal_atom.txt b/doc/src/compute_basal_atom.txt index b59a3fd4c8..067a020c35 100644 --- a/doc/src/compute_basal_atom.txt +++ b/doc/src/compute_basal_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -46,9 +46,8 @@ in examples/USER/misc/basal. This compute calculates a per-atom array with 3 columns, which can be accessed by indices 1-3 by any command that uses per-atom values from -a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. The per-atom vector values are unitless since the 3 columns represent components of a unit vector. diff --git a/doc/src/compute_body_local.txt b/doc/src/compute_body_local.txt index 12ce218853..8ac3f00c55 100644 --- a/doc/src/compute_body_local.txt +++ b/doc/src/compute_body_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,9 +32,8 @@ Define a computation that calculates properties of individual body sub-particles. The number of datums generated, aggregated across all processors, equals the number of body sub-particles plus the number of non-body particles in the system, modified by the group parameter as -explained below. See "Section 6.14"_Section_howto.html#howto_14 -of the manual and the "body"_body.html doc page for more details on -using body particles. +explained below. See the "Howto body"_Howto_body.html doc page for +more details on using body particles. The local data stored by this command is generated by looping over all the atoms. An atom will only be included if it is in the group. If @@ -58,8 +57,8 @@ group. For a body particle, the {integer} keywords refer to fields calculated by the body style for each sub-particle. The body style, as specified by the "atom_style body"_atom_style.html, determines how many fields -exist and what they are. See the "body"_body.html doc page for -details of the different styles. +exist and what they are. See the "Howto_body"_Howto_body.html doc +page for details of the different styles. Here is an example of how to output body information using the "dump local"_dump.html command with this compute. If fields 1,2,3 for the @@ -78,9 +77,9 @@ array is the number of datums as described above. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any -command that uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +command that uses local values from a compute as input. See the +"Howto output"_Howto_output.html doc page for an overview of LAMMPS +output options. The "units"_units.html for output values depend on the body style. diff --git a/doc/src/compute_bond.txt b/doc/src/compute_bond.txt index 6c4384b080..a87c510538 100644 --- a/doc/src/compute_bond.txt +++ b/doc/src/compute_bond.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -37,8 +37,8 @@ This compute calculates a global vector of length N where N is the number of sub_styles defined by the "bond_style hybrid"_bond_style.html command, which can be accessed by indices 1-N. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector values are "extensive" and will be in energy diff --git a/doc/src/compute_bond_local.txt b/doc/src/compute_bond_local.txt index 58d96f9ee4..c3dc1cc4af 100644 --- a/doc/src/compute_bond_local.txt +++ b/doc/src/compute_bond_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -116,8 +116,8 @@ array is the number of bonds. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The output for {dist} will be in distance "units"_units.html. The diff --git a/doc/src/compute_centro_atom.txt b/doc/src/compute_centro_atom.txt index 4e4b03d167..183537690f 100644 --- a/doc/src/compute_centro_atom.txt +++ b/doc/src/compute_centro_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -97,8 +97,8 @@ too frequently or to have multiple compute/dump commands, each with a By default, this compute calculates the centrosymmetry value for each atom as a per-atom vector, which can be accessed by any command that -uses per-atom values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses per-atom values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. If the {axes} keyword setting is {yes}, then a per-atom array is diff --git a/doc/src/compute_chunk_atom.txt b/doc/src/compute_chunk_atom.txt index 00a75f50c4..95e6e6c010 100644 --- a/doc/src/compute_chunk_atom.txt +++ b/doc/src/compute_chunk_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -101,14 +101,13 @@ msd/chunk"_compute_msd_chunk.html. Or they can be used by the "fix ave/chunk"_fix_ave_chunk.html command to sum and time average a variety of per-atom properties over the atoms in each chunk. Or they can simply be accessed by any command that uses per-atom values from a -compute as input, as discussed in "Section -6.15"_Section_howto.html#howto_15. +compute as input, as discussed on the "Howto output"_Howto_output.html +doc page. -See "Section 6.23"_Section_howto.html#howto_23 for an overview of -how this compute can be used with a variety of other commands to -tabulate properties of a simulation. The howto section gives several -examples of input script commands that can be used to calculate -interesting properties. +See the "Howto chunk"_Howto_chunk.html doc page for an overview of how +this compute can be used with a variety of other commands to tabulate +properties of a simulation. The page gives several examples of input +script commands that can be used to calculate interesting properties. Conceptually it is important to realize that this compute does two simple things. First, it sets the value of {Nchunk} = the number of @@ -167,11 +166,11 @@ or the bounds specified by the optional {bounds} keyword. For orthogonal simulation boxes, the bins are layers, pencils, or boxes aligned with the xyz coordinate axes. For triclinic (non-orthogonal) simulation boxes, the bin faces are parallel to the -tilted faces of the simulation box. See "this -section"_Section_howto.html#howto_12 of the manual for a discussion of -the geometry of triclinic boxes in LAMMPS. As described there, a -tilted simulation box has edge vectors a,b,c. In that nomenclature, -bins in the x dimension have faces with normals in the "b" cross "c" +tilted faces of the simulation box. See the "Howto +triclinic"_Howto_triclinic.html doc page for a discussion of the +geometry of triclinic boxes in LAMMPS. As described there, a tilted +simulation box has edge vectors a,b,c. In that nomenclature, bins in +the x dimension have faces with normals in the "b" cross "c" direction. Bins in y have faces normal to the "a" cross "c" direction. And bins in z have faces normal to the "a" cross "b" direction. Note that in order to define the size and position of @@ -626,7 +625,7 @@ cylinder, x for a y-axis cylinder, and x for a z-axis cylinder. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values are unitless chunk IDs, ranging from 1 to diff --git a/doc/src/compute_cluster_atom.txt b/doc/src/compute_cluster_atom.txt index 94113de5f2..e6138fe1e8 100644 --- a/doc/src/compute_cluster_atom.txt +++ b/doc/src/compute_cluster_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -84,7 +84,7 @@ the neighbor list. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be an ID > 0, as explained above. diff --git a/doc/src/compute_cna_atom.txt b/doc/src/compute_cna_atom.txt index 23289b0132..d69c5e9c46 100644 --- a/doc/src/compute_cna_atom.txt +++ b/doc/src/compute_cna_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -74,7 +74,7 @@ too frequently or to have multiple compute/dump commands, each with a This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be a number from 0 to 5, as explained diff --git a/doc/src/compute_cnp_atom.txt b/doc/src/compute_cnp_atom.txt index 16a51f5241..44a77d23ca 100644 --- a/doc/src/compute_cnp_atom.txt +++ b/doc/src/compute_cnp_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -78,7 +78,7 @@ too frequently or to have multiple compute/dump commands, each with a This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be real positive numbers. Some typical CNP diff --git a/doc/src/compute_com.txt b/doc/src/compute_com.txt index b0e0c14e42..fdc631a263 100644 --- a/doc/src/compute_com.txt +++ b/doc/src/compute_com.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -41,9 +41,8 @@ image"_set.html command. This compute calculates a global vector of length 3, which can be accessed by indices 1-3 by any command that uses global vector values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The vector values are "intensive". The vector values will be in distance "units"_units.html. diff --git a/doc/src/compute_com_chunk.txt b/doc/src/compute_com_chunk.txt index d497585cb0..b982f0d901 100644 --- a/doc/src/compute_com_chunk.txt +++ b/doc/src/compute_com_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the x,y,z coordinates of the center-of-mass for each chunk, which includes all effects due to atoms passing thru @@ -71,9 +70,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 3 for the x,y,z center-of-mass coordinates of each chunk. These values can be accessed by any command that uses global array values -from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in distance "units"_units.html. diff --git a/doc/src/compute_contact_atom.txt b/doc/src/compute_contact_atom.txt index f0bd62f4e8..efe524263a 100644 --- a/doc/src/compute_contact_atom.txt +++ b/doc/src/compute_contact_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -36,7 +36,7 @@ specified compute group. This compute calculates a per-atom vector, whose values can be accessed by any command that uses per-atom values from a compute as -input. See "Section 6.15"_Section_howto.html#howto_15 for an +input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be a number >= 0.0, as explained diff --git a/doc/src/compute_coord_atom.txt b/doc/src/compute_coord_atom.txt index a88f7ec729..66eecd195d 100644 --- a/doc/src/compute_coord_atom.txt +++ b/doc/src/compute_coord_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -109,9 +109,8 @@ array, with N columns. For {cstyle} orientorder, this compute calculates a per-atom vector. These values can be accessed by any command that uses per-atom values -from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The per-atom vector or array values will be a number >= 0.0, as explained above. diff --git a/doc/src/compute_damage_atom.txt b/doc/src/compute_damage_atom.txt index 918fbf65ef..74939e2280 100644 --- a/doc/src/compute_damage_atom.txt +++ b/doc/src/compute_damage_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -44,7 +44,7 @@ group. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values are unitless numbers (damage) >= 0.0. diff --git a/doc/src/compute_dihedral.txt b/doc/src/compute_dihedral.txt index a3c3dff8d6..aa25f9dd10 100644 --- a/doc/src/compute_dihedral.txt +++ b/doc/src/compute_dihedral.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -37,8 +37,8 @@ This compute calculates a global vector of length N where N is the number of sub_styles defined by the "dihedral_style hybrid"_dihedral_style.html command. which can be accessed by indices 1-N. These values can be used by any command that uses global scalar -or vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +or vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector values are "extensive" and will be in energy diff --git a/doc/src/compute_dihedral_local.txt b/doc/src/compute_dihedral_local.txt index 865e86fddb..77812699d3 100644 --- a/doc/src/compute_dihedral_local.txt +++ b/doc/src/compute_dihedral_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -62,8 +62,8 @@ array is the number of dihedrals. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The output for {phi} will be in degrees. diff --git a/doc/src/compute_dilatation_atom.txt b/doc/src/compute_dilatation_atom.txt index ce00f7f12a..498110cf99 100644 --- a/doc/src/compute_dilatation_atom.txt +++ b/doc/src/compute_dilatation_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -47,8 +47,9 @@ compute group. [Output info:] This compute calculates a per-atom vector, which can be accessed by -any command that uses per-atom values from a compute as input. See -Section_howto 15 for an overview of LAMMPS output options. +any command that uses per-atom values from a compute as input. See +the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-atom vector values are unitless numbers (theta) >= 0.0. diff --git a/doc/src/compute_dipole_chunk.txt b/doc/src/compute_dipole_chunk.txt index 75131ffbb1..d45fde9af2 100644 --- a/doc/src/compute_dipole_chunk.txt +++ b/doc/src/compute_dipole_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,10 +32,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the x,y,z coordinates of the dipole vector and the total dipole moment for each chunk, which includes all effects @@ -76,8 +75,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 4 for the x,y,z dipole vector components and the total dipole of each chunk. These values can be accessed by any command that uses global -array values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +array values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_displace_atom.txt b/doc/src/compute_displace_atom.txt index 00e5f696c1..669ab9f7ca 100644 --- a/doc/src/compute_displace_atom.txt +++ b/doc/src/compute_displace_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -118,9 +118,8 @@ would be empty. This compute calculates a per-atom array with 4 columns, which can be accessed by indices 1-4 by any command that uses per-atom values from -a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. The per-atom array values will be in distance "units"_units.html. diff --git a/doc/src/compute_dpd.txt b/doc/src/compute_dpd.txt index 0e43feb9d2..1721456e35 100644 --- a/doc/src/compute_dpd.txt +++ b/doc/src/compute_dpd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -40,9 +40,9 @@ where N is the number of particles in the system [Output info:] This compute calculates a global vector of length 5 (U_cond, U_mech, -U_chem, dpdTheta, N_particles), which can be accessed by indices 1-5. See -"this section"_Section_howto.html#howto_15 for an overview of LAMMPS -output options. +U_chem, dpdTheta, N_particles), which can be accessed by indices 1-5. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The vector values will be in energy and temperature "units"_units.html. diff --git a/doc/src/compute_dpd_atom.txt b/doc/src/compute_dpd_atom.txt index 0532fc60c6..8e502d4a60 100644 --- a/doc/src/compute_dpd_atom.txt +++ b/doc/src/compute_dpd_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -34,9 +34,9 @@ particles. [Output info:] This compute calculates a per-particle array with 4 columns (u_cond, -u_mech, u_chem, dpdTheta), which can be accessed by indices 1-4 by any command -that uses per-particle values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +u_mech, u_chem, dpdTheta), which can be accessed by indices 1-4 by any +command that uses per-particle values from a compute as input. See +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-particle array values will be in energy (u_cond, u_mech, u_chem) diff --git a/doc/src/compute_edpd_temp_atom.txt b/doc/src/compute_edpd_temp_atom.txt index 5b8c8ebd67..f33398e03d 100644 --- a/doc/src/compute_edpd_temp_atom.txt +++ b/doc/src/compute_edpd_temp_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,9 +32,9 @@ For more details please see "(Espanol1997)"_#Espanol1997 and [Output info:] This compute calculates a per-atom vector, which can be accessed by -any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of -LAMMPS output options. +any command that uses per-atom values from a compute as input. See the +"Howto output"_Howto_output.html doc page for an overview of LAMMPS +output options. The per-atom vector values will be in temperature "units"_units.html. diff --git a/doc/src/compute_entropy_atom.txt b/doc/src/compute_entropy_atom.txt index f7e7b8a667..9c45fd2870 100644 --- a/doc/src/compute_entropy_atom.txt +++ b/doc/src/compute_entropy_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -98,8 +98,8 @@ compute 1 all entropy/atom 0.25 7.3 avg yes 5.1 :pre By default, this compute calculates the pair entropy value for each atom as a per-atom vector, which can be accessed by any command that -uses per-atom values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses per-atom values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The pair entropy values have units of the Boltzmann constant. They are diff --git a/doc/src/compute_erotate_asphere.txt b/doc/src/compute_erotate_asphere.txt index b9a486c32e..5cdc099782 100644 --- a/doc/src/compute_erotate_asphere.txt +++ b/doc/src/compute_erotate_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -40,7 +40,7 @@ will be the same as in 3d. This compute calculates a global scalar (the KE). This value can be used by any command that uses a global scalar value from a compute as -input. See "Section 6.15"_Section_howto.html#howto_15 for an +input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The diff --git a/doc/src/compute_erotate_rigid.txt b/doc/src/compute_erotate_rigid.txt index dec0939a43..5b9077870e 100644 --- a/doc/src/compute_erotate_rigid.txt +++ b/doc/src/compute_erotate_rigid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -41,9 +41,9 @@ calculation. This compute calculates a global scalar (the summed rotational energy of all the rigid bodies). This value can be used by any command that -uses a global scalar value from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of -LAMMPS output options. +uses a global scalar value from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output +options. The scalar value calculated by this compute is "extensive". The scalar value will be in energy "units"_units.html. diff --git a/doc/src/compute_erotate_sphere.txt b/doc/src/compute_erotate_sphere.txt index 41e80b0154..d0c176b50e 100644 --- a/doc/src/compute_erotate_sphere.txt +++ b/doc/src/compute_erotate_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -35,7 +35,7 @@ as in 3d. This compute calculates a global scalar (the KE). This value can be used by any command that uses a global scalar value from a compute as -input. See "Section 6.15"_Section_howto.html#howto_15 for an +input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The diff --git a/doc/src/compute_erotate_sphere_atom.txt b/doc/src/compute_erotate_sphere_atom.txt index a0081ff6a8..fdd609a0e6 100644 --- a/doc/src/compute_erotate_sphere_atom.txt +++ b/doc/src/compute_erotate_sphere_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -39,7 +39,7 @@ in the specified compute group or for point particles with a radius = This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in energy "units"_units.html. diff --git a/doc/src/compute_event_displace.txt b/doc/src/compute_event_displace.txt index 5e3a0c8599..561ded35c0 100644 --- a/doc/src/compute_event_displace.txt +++ b/doc/src/compute_event_displace.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -43,7 +43,7 @@ local atom displacements and may generate "false positives." This compute calculates a global scalar (the flag). This value can be used by any command that uses a global scalar value from a compute as -input. See "Section 6.15"_Section_howto.html#howto_15 for an +input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_fep.txt b/doc/src/compute_fep.txt index 9bbae7b20f..8b4a92e16e 100644 --- a/doc/src/compute_fep.txt +++ b/doc/src/compute_fep.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -219,8 +219,8 @@ unperturbed parameters. The energies include kspace terms if these are used in the simulation. These output results can be used by any command that uses a global -scalar or vector from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +scalar or vector from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. For example, the computed values can be averaged using "fix ave/time"_fix_ave_time.html. diff --git a/doc/src/compute_global_atom.txt b/doc/src/compute_global_atom.txt index 28b4aa2461..a26dba72b0 100644 --- a/doc/src/compute_global_atom.txt +++ b/doc/src/compute_global_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -67,7 +67,7 @@ this command. This command will then assign the global chunk value to each atom in the chunk, producing a per-atom vector or per-atom array as output. The per-atom values can then be output to a dump file or used by any command that uses per-atom values from a compute as input, -as discussed in "Section 6.15"_Section_howto.html#howto_15. +as discussed on the "Howto output"_Howto_output.html doc page. As a concrete example, these commands will calculate the displacement of each atom from the center-of-mass of the molecule it is in, and @@ -203,7 +203,7 @@ vector. If multiple inputs are specified, this compute produces a per-atom array values, where the number of columns is equal to the number of inputs specified. These values can be used by any command that uses per-atom vector or array values from a compute as input. -See "Section 6.15"_Section_howto.html#howto_15 for an overview of +See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector or array values will be in whatever units the diff --git a/doc/src/compute_group_group.txt b/doc/src/compute_group_group.txt index f10547339d..cff3687354 100644 --- a/doc/src/compute_group_group.txt +++ b/doc/src/compute_group_group.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -123,8 +123,8 @@ group-group calculations are performed. This compute calculates a global scalar (the energy) and a global vector of length 3 (force), which can be accessed by indices 1-3. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. Both the scalar and vector values calculated by this compute are diff --git a/doc/src/compute_gyration.txt b/doc/src/compute_gyration.txt index dd71431527..4dc883ad0b 100644 --- a/doc/src/compute_gyration.txt +++ b/doc/src/compute_gyration.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -55,8 +55,8 @@ using the "set image"_set.html command. This compute calculates a global scalar (Rg) and a global vector of length 6 (Rg^2 tensor), which can be accessed by indices 1-6. These values can be used by any command that uses a global scalar value or -vector values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar and vector values calculated by this compute are diff --git a/doc/src/compute_gyration_chunk.txt b/doc/src/compute_gyration_chunk.txt index 3e338213cf..dcbfc65393 100644 --- a/doc/src/compute_gyration_chunk.txt +++ b/doc/src/compute_gyration_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -35,10 +35,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the radius of gyration Rg for each chunk, which includes all effects due to atoms passing thru periodic @@ -93,8 +92,8 @@ calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. If the {tensor} keyword is specified, the global array has 6 columns. The vector or array can be accessed by any command that uses global values from a compute as -input. See "this section"_Section_howto.html#howto_15 for an overview -of LAMMPS output options. +input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. All the vector or array values calculated by this compute are "intensive". The vector or array values will be in distance diff --git a/doc/src/compute_heat_flux.txt b/doc/src/compute_heat_flux.txt index 39a1470201..81a2a3f517 100644 --- a/doc/src/compute_heat_flux.txt +++ b/doc/src/compute_heat_flux.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,9 +32,9 @@ or to calculate a thermal conductivity using the equilibrium Green-Kubo formalism. For other non-equilibrium ways to compute a thermal conductivity, see -"this section"_Section_howto.html#howto_20. These include use of the -"fix thermal/conductivity"_fix_thermal_conductivity.html command for -the Muller-Plathe method. Or the "fix heat"_fix_heat.html command +the "Howto kappa"_Howto_kappa.html doc page.. These include use of +the "fix thermal/conductivity"_fix_thermal_conductivity.html command +for the Muller-Plathe method. Or the "fix heat"_fix_heat.html command which can add or subtract heat from groups of atoms. The compute takes three arguments which are IDs of other @@ -99,8 +99,8 @@ result should be: average conductivity ~0.29 in W/mK. This compute calculates a global vector of length 6 (total heat flux vector, followed by convective heat flux vector), which can be accessed by indices 1-6. These values can be used by any command that -uses global vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses global vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector values calculated by this compute are "extensive", meaning diff --git a/doc/src/compute_hexorder_atom.txt b/doc/src/compute_hexorder_atom.txt index cdf47e0894..082a3cad7a 100644 --- a/doc/src/compute_hexorder_atom.txt +++ b/doc/src/compute_hexorder_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -95,10 +95,9 @@ This compute calculates a per-atom array with 2 columns, giving the real and imaginary parts {qn}, a complex number restricted to the unit disk of the complex plane i.e. Re({qn})^2 + Im({qn})^2 <= 1 . -These values can be accessed by any command that uses -per-atom values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +These values can be accessed by any command that uses per-atom values +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. [Restrictions:] none diff --git a/doc/src/compute_improper.txt b/doc/src/compute_improper.txt index f0d2fa400e..867dd48cc1 100644 --- a/doc/src/compute_improper.txt +++ b/doc/src/compute_improper.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -37,8 +37,8 @@ This compute calculates a global vector of length N where N is the number of sub_styles defined by the "improper_style hybrid"_improper_style.html command. which can be accessed by indices 1-N. These values can be used by any command that uses global scalar -or vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +or vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector values are "extensive" and will be in energy diff --git a/doc/src/compute_improper_local.txt b/doc/src/compute_improper_local.txt index 0c289fbf07..f340d5a03f 100644 --- a/doc/src/compute_improper_local.txt +++ b/doc/src/compute_improper_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -63,8 +63,8 @@ array is the number of impropers. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The output for {chi} will be in degrees. diff --git a/doc/src/compute_inertia_chunk.txt b/doc/src/compute_inertia_chunk.txt index b0dbb12aea..d6cdb3fe79 100644 --- a/doc/src/compute_inertia_chunk.txt +++ b/doc/src/compute_inertia_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the 6 components of the symmetric inertia tensor for each chunk, ordered Ixx,Iyy,Izz,Ixy,Iyz,Ixz. The @@ -72,8 +71,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 6 for the 6 components of the inertia tensor for each chunk, ordered as listed above. These values can be accessed by any command that -uses global array values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses global array values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_ke.txt b/doc/src/compute_ke.txt index caee897162..64ab83db48 100644 --- a/doc/src/compute_ke.txt +++ b/doc/src/compute_ke.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -44,7 +44,7 @@ include different degrees of freedom (translational, rotational, etc). This compute calculates a global scalar (the summed KE). This value can be used by any command that uses a global scalar value from a -compute as input. See "Section 6.15"_Section_howto.html#howto_15 +compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The diff --git a/doc/src/compute_ke_atom.txt b/doc/src/compute_ke_atom.txt index f5431f0569..d288ab0236 100644 --- a/doc/src/compute_ke_atom.txt +++ b/doc/src/compute_ke_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -34,7 +34,7 @@ specified compute group. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in energy "units"_units.html. diff --git a/doc/src/compute_ke_atom_eff.txt b/doc/src/compute_ke_atom_eff.txt index 8228e13f07..f665f35055 100644 --- a/doc/src/compute_ke_atom_eff.txt +++ b/doc/src/compute_ke_atom_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -57,9 +57,9 @@ electrons) not in the specified compute group. [Output info:] This compute calculates a scalar quantity for each atom, which can be -accessed by any command that uses per-atom computes as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of -LAMMPS output options. +accessed by any command that uses per-atom computes as input. See the +"Howto output"_Howto_output.html doc page for an overview of LAMMPS +output options. The per-atom vector values will be in energy "units"_units.html. diff --git a/doc/src/compute_ke_eff.txt b/doc/src/compute_ke_eff.txt index ac8d7e6c01..d6d7fdb10f 100644 --- a/doc/src/compute_ke_eff.txt +++ b/doc/src/compute_ke_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -61,7 +61,7 @@ See "compute temp/eff"_compute_temp_eff.html. This compute calculates a global scalar (the KE). This value can be used by any command that uses a global scalar value from a compute as -input. See "Section 6.15"_Section_howto.html#howto_15 for an +input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The diff --git a/doc/src/compute_ke_rigid.txt b/doc/src/compute_ke_rigid.txt index f79696a77a..45ba2673b0 100644 --- a/doc/src/compute_ke_rigid.txt +++ b/doc/src/compute_ke_rigid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -40,8 +40,8 @@ calculation. This compute calculates a global scalar (the summed KE of all the rigid bodies). This value can be used by any command that uses a -global scalar value from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +global scalar value from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The diff --git a/doc/src/compute_meso_e_atom.txt b/doc/src/compute_meso_e_atom.txt index 4e621b4301..9a9c7fae11 100644 --- a/doc/src/compute_meso_e_atom.txt +++ b/doc/src/compute_meso_e_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -38,7 +38,7 @@ specified compute group. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in energy "units"_units.html. diff --git a/doc/src/compute_meso_rho_atom.txt b/doc/src/compute_meso_rho_atom.txt index a017424dd0..30b1142b6c 100644 --- a/doc/src/compute_meso_rho_atom.txt +++ b/doc/src/compute_meso_rho_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -38,7 +38,7 @@ specified compute group. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in mass/volume "units"_units.html. diff --git a/doc/src/compute_meso_t_atom.txt b/doc/src/compute_meso_t_atom.txt index 9e81b038f4..ab92f05018 100644 --- a/doc/src/compute_meso_t_atom.txt +++ b/doc/src/compute_meso_t_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -40,7 +40,7 @@ specified compute group. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in temperature "units"_units.html. diff --git a/doc/src/compute_modify.txt b/doc/src/compute_modify.txt index 9a2480ec0a..192ea0bc9e 100644 --- a/doc/src/compute_modify.txt +++ b/doc/src/compute_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_msd.txt b/doc/src/compute_msd.txt index f806c5e292..b54e05bc64 100644 --- a/doc/src/compute_msd.txt +++ b/doc/src/compute_msd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -93,9 +93,8 @@ instead of many, which will change the values of msd somewhat. This compute calculates a global vector of length 4, which can be accessed by indices 1-4 by any command that uses global vector values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The vector values are "intensive". The vector values will be in distance^2 "units"_units.html. diff --git a/doc/src/compute_msd_chunk.txt b/doc/src/compute_msd_chunk.txt index 7f31b61ed0..264f38d5fd 100644 --- a/doc/src/compute_msd_chunk.txt +++ b/doc/src/compute_msd_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. Four quantities are calculated by this compute for each chunk. The first 3 quantities are the squared dx,dy,dz displacements of the @@ -106,7 +105,7 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 4 for dx,dy,dz and the total displacement. These values can be accessed by any command that uses global array values from a compute -as input. See "this section"_Section_howto.html#howto_15 for an +as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_msd_nongauss.txt b/doc/src/compute_msd_nongauss.txt index 198da999e0..814159121d 100644 --- a/doc/src/compute_msd_nongauss.txt +++ b/doc/src/compute_msd_nongauss.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -57,9 +57,8 @@ NOTEs, which also apply to this compute. This compute calculates a global vector of length 3, which can be accessed by indices 1-3 by any command that uses global vector values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The vector values are "intensive". The first vector value will be in distance^2 "units"_units.html, the second is in distance^4 units, and diff --git a/doc/src/compute_omega_chunk.txt b/doc/src/compute_omega_chunk.txt index 46c72d3dcb..84b25ac6f2 100644 --- a/doc/src/compute_omega_chunk.txt +++ b/doc/src/compute_omega_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the 3 components of the angular velocity vector for each chunk, via the formula L = Iw where L is the angular @@ -73,8 +72,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 3 for the 3 xyz components of the angular velocity for each chunk. These values can be accessed by any command that uses global array -values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_orientorder_atom.txt b/doc/src/compute_orientorder_atom.txt index adf11dcfcf..7327a7b1d3 100644 --- a/doc/src/compute_orientorder_atom.txt +++ b/doc/src/compute_orientorder_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -115,10 +115,9 @@ Re({Ybar_-m+1}) Im({Ybar_-m+1}) ... Re({Ybar_m}) Im({Ybar_m}). This way, the per-atom array will have a total of {nlvalues}+2*(2{l}+1) columns. -These values can be accessed by any command that uses -per-atom values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +These values can be accessed by any command that uses per-atom values +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. [Restrictions:] none diff --git a/doc/src/compute_pair.txt b/doc/src/compute_pair.txt index 0602dab81b..a2c25fcc8d 100644 --- a/doc/src/compute_pair.txt +++ b/doc/src/compute_pair.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -62,9 +62,8 @@ This compute calculates a global scalar which is {epair} or {evdwl} or {ecoul}. If the pair style supports it, it also calculates a global vector of length >= 1, as determined by the pair style. These values can be used by any command that uses global scalar or vector values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The scalar and vector values calculated by this compute are "extensive". diff --git a/doc/src/compute_pair_local.txt b/doc/src/compute_pair_local.txt index 16aaba4667..7588e92527 100644 --- a/doc/src/compute_pair_local.txt +++ b/doc/src/compute_pair_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -119,8 +119,8 @@ array is the number of pairs. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The output for {dist} will be in distance "units"_units.html. The diff --git a/doc/src/compute_pe.txt b/doc/src/compute_pe.txt index 15f27a8eff..37655dfd48 100644 --- a/doc/src/compute_pe.txt +++ b/doc/src/compute_pe.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -64,9 +64,8 @@ See the "thermo_style" command for more details. This compute calculates a global scalar (the potential energy). This value can be used by any command that uses a global scalar value from -a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". The scalar value will be in energy "units"_units.html. diff --git a/doc/src/compute_pe_atom.txt b/doc/src/compute_pe_atom.txt index c312c886a6..400621f8df 100644 --- a/doc/src/compute_pe_atom.txt +++ b/doc/src/compute_pe_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -81,7 +81,7 @@ global system energy. This compute calculates a per-atom vector, which can be accessed by any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-atom vector values will be in energy "units"_units.html. diff --git a/doc/src/compute_plasticity_atom.txt b/doc/src/compute_plasticity_atom.txt index 788213fc65..50a51d9937 100644 --- a/doc/src/compute_plasticity_atom.txt +++ b/doc/src/compute_plasticity_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -41,8 +41,9 @@ compute group. [Output info:] This compute calculates a per-atom vector, which can be accessed by -any command that uses per-atom values from a compute as input. See -Section_howto 15 for an overview of LAMMPS output options. +any command that uses per-atom values from a compute as input. See +the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-atom vector values are unitless numbers (lambda) >= 0.0. diff --git a/doc/src/compute_pressure.txt b/doc/src/compute_pressure.txt index f0691ad207..dea0a7f05b 100644 --- a/doc/src/compute_pressure.txt +++ b/doc/src/compute_pressure.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -105,10 +105,9 @@ where "thermo_temp" is the ID of a similarly defined compute of style Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -120,8 +119,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -130,8 +129,8 @@ more instructions on how to use the accelerated styles effectively. This compute calculates a global scalar (the pressure) and a global vector of length 6 (pressure tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar -or vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +or vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar and vector values calculated by this compute are diff --git a/doc/src/compute_pressure_uef.txt b/doc/src/compute_pressure_uef.txt index 5b252b369d..61cc85ad80 100644 --- a/doc/src/compute_pressure_uef.txt +++ b/doc/src/compute_pressure_uef.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_property_atom.txt b/doc/src/compute_property_atom.txt index c0970d5121..512009093c 100644 --- a/doc/src/compute_property_atom.txt +++ b/doc/src/compute_property_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -93,11 +93,11 @@ compute 3 all property/atom sp spx spy spz :pre Define a computation that simply stores atom attributes for each atom in the group. This is useful so that the values can be used by other -"output commands"_Section_howto.html#howto_15 that take computes as -inputs. See for example, the "compute reduce"_compute_reduce.html, -"fix ave/atom"_fix_ave_atom.html, "fix ave/histo"_fix_ave_histo.html, -"fix ave/chunk"_fix_ave_chunk.html, and "atom-style -variable"_variable.html commands. +"output commands"_Howto_output.html that take computes as inputs. See +for example, the "compute reduce"_compute_reduce.html, "fix +ave/atom"_fix_ave_atom.html, "fix ave/histo"_fix_ave_histo.html, "fix +ave/chunk"_fix_ave_chunk.html, and "atom-style variable"_variable.html +commands. The list of possible attributes is the same as that used by the "dump custom"_dump.html command, which describes their meaning, with some @@ -149,8 +149,8 @@ on the number of input values. If a single input is specified, a per-atom vector is produced. If two or more inputs are specified, a per-atom array is produced where the number of columns = the number of inputs. The vector or array can be accessed by any command that uses -per-atom values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +per-atom values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector or array values will be in whatever "units"_units.html the diff --git a/doc/src/compute_property_chunk.txt b/doc/src/compute_property_chunk.txt index b9d4944b30..a30b5a1f0a 100644 --- a/doc/src/compute_property_chunk.txt +++ b/doc/src/compute_property_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -36,15 +36,14 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates and stores the specified attributes of chunks as global data so they can be accessed by other "output -commands"_Section_howto.html#howto_15 and used in conjunction with -other commands that generate per-chunk data, such as "compute +commands"_Howto_output.html and used in conjunction with other +commands that generate per-chunk data, such as "compute com/chunk"_compute_com_chunk.html or "compute msd/chunk"_compute_msd_chunk.html. @@ -103,8 +102,8 @@ single input is specified, a global vector is produced. If two or more inputs are specified, a global array is produced where the number of columns = the number of inputs. The vector or array can be accessed by any command that uses global values from a compute as -input. See "this section"_Section_howto.html#howto_15 for an overview -of LAMMPS output options. +input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. The vector or array values are "intensive". The values will be unitless or in the units discussed above. diff --git a/doc/src/compute_property_local.txt b/doc/src/compute_property_local.txt index 39106a39c8..b0ec088cf7 100644 --- a/doc/src/compute_property_local.txt +++ b/doc/src/compute_property_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -48,10 +48,10 @@ compute 1 all property/local atype aatom2 :pre Define a computation that stores the specified attributes as local data so it can be accessed by other "output -commands"_Section_howto.html#howto_15. If the input attributes refer -to bond information, then the number of datums generated, aggregated -across all processors, equals the number of bonds in the system. -Ditto for pairs, angles, etc. +commands"_Howto_output.html. If the input attributes refer to bond +information, then the number of datums generated, aggregated across +all processors, equals the number of bonds in the system. Ditto for +pairs, angles, etc. If multiple attributes are specified then they must all generate the same amount of information, so that the resulting local array has the @@ -140,8 +140,8 @@ the array is the number of bonds, angles, etc. If a single input is specified, a local vector is produced. If two or more inputs are specified, a local array is produced where the number of columns = the number of inputs. The vector or array can be accessed by any command -that uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +that uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector or array values will be integers that correspond to the diff --git a/doc/src/compute_rdf.txt b/doc/src/compute_rdf.txt index e462e85fc0..04b38682cc 100644 --- a/doc/src/compute_rdf.txt +++ b/doc/src/compute_rdf.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -152,7 +152,7 @@ coordinate (center of the bin), Each successive set of 2 columns has the g(r) and coord(r) values for a specific set of {itypeN} versus {jtypeN} interactions, as described above. These values can be used by any command that uses a global values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values calculated by this compute are all "intensive". diff --git a/doc/src/compute_reduce.txt b/doc/src/compute_reduce.txt index 48115a0886..ef3c7c6489 100644 --- a/doc/src/compute_reduce.txt +++ b/doc/src/compute_reduce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -192,7 +192,7 @@ This compute calculates a global scalar if a single input value is specified or a global vector of length N where N is the number of inputs, and which can be accessed by indices 1 to N. These values can be used by any command that uses global scalar or vector values from a -compute as input. See "Section 6.15"_Section_howto.html#howto_15 +compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. All the scalar or vector values calculated by this compute are diff --git a/doc/src/compute_rigid_local.txt b/doc/src/compute_rigid_local.txt index 077ad57d81..b5e6954ab9 100644 --- a/doc/src/compute_rigid_local.txt +++ b/doc/src/compute_rigid_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -49,8 +49,8 @@ Define a computation that simply stores rigid body attributes for rigid bodies defined by the "fix rigid/small"_fix_rigid.html command or one of its NVE, NVT, NPT, NPH variants. The data is stored as local data so it can be accessed by other "output -commands"_Section_howto.html#howto_15 that process local data, such as -the "compute reduce"_compute_reduce.html or "dump local"_dump.html +commands"_Howto_output.html that process local data, such as the +"compute reduce"_compute_reduce.html or "dump local"_dump.html commands. Note that this command only works with the "fix @@ -154,9 +154,9 @@ array is the number of rigid bodies. If a single keyword is specified, a local vector is produced. If two or more keywords are specified, a local array is produced where the number of columns = the number of keywords. The vector or array can be accessed by any -command that uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +command that uses local values from a compute as input. See the +"Howto output"_Howto_output.html doc page for an overview of LAMMPS +output options. The vector or array values will be in whatever "units"_units.html the corresponding attribute is in: diff --git a/doc/src/compute_saed.txt b/doc/src/compute_saed.txt index 020f72f565..8c17a30fca 100644 --- a/doc/src/compute_saed.txt +++ b/doc/src/compute_saed.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -143,10 +143,9 @@ the number of reciprocal lattice nodes that are explored by the mesh. The entries of the global vector are the computed diffraction intensities as described above. -The vector can be accessed by any command that uses global values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +The vector can be accessed by any command that uses global values from +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. All array values calculated by this compute are "intensive". diff --git a/doc/src/compute_slice.txt b/doc/src/compute_slice.txt index 13f40ecf92..51031aeab3 100644 --- a/doc/src/compute_slice.txt +++ b/doc/src/compute_slice.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -94,8 +94,8 @@ specified or a global array with N columns where N is the number of inputs. The length of the vector or the number of rows in the array is equal to the number of values extracted from each input vector. These values can be used by any command that uses global vector or -array values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +array values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector or array values calculated by this compute are simply diff --git a/doc/src/compute_smd_contact_radius.txt b/doc/src/compute_smd_contact_radius.txt index 69fe453343..cd13816047 100644 --- a/doc/src/compute_smd_contact_radius.txt +++ b/doc/src/compute_smd_contact_radius.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -35,9 +35,9 @@ specified compute group. [Output info:] -This compute calculates a per-particle vector, which can be accessed by -any command that uses per-particle values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of +This compute calculates a per-particle vector, which can be accessed +by any command that uses per-particle values from a compute as input. +See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-particle vector values will be in distance "units"_units.html. diff --git a/doc/src/compute_smd_damage.txt b/doc/src/compute_smd_damage.txt index b6c75a3b20..afabe23d7c 100644 --- a/doc/src/compute_smd_damage.txt +++ b/doc/src/compute_smd_damage.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -28,10 +28,10 @@ See "this PDF guide"_PDF/SMD_LAMMPS_userguide.pdf to use Smooth Mach Dynamics in [Output Info:] -This compute calculates a per-particle vector, which can be accessed by -any command that uses per-particle values from a compute as input. See -"How-to discussions, section 6.15"_Section_howto.html#howto_15 -for an overview of LAMMPS output options. +This compute calculates a per-particle vector, which can be accessed +by any command that uses per-particle values from a compute as input. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values are dimensionless an in the range of zero to one. diff --git a/doc/src/compute_smd_hourglass_error.txt b/doc/src/compute_smd_hourglass_error.txt index a15b79e64e..13fd20a589 100644 --- a/doc/src/compute_smd_hourglass_error.txt +++ b/doc/src/compute_smd_hourglass_error.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -37,10 +37,10 @@ Mach Dynamics in LAMMPS. [Output Info:] -This compute calculates a per-particle vector, which can be accessed by -any command that uses per-particle values from a compute as input. See -"How-to discussions, section 6.15"_Section_howto.html#howto_15 -for an overview of LAMMPS output options. +This compute calculates a per-particle vector, which can be accessed +by any command that uses per-particle values from a compute as input. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle vector values will are dimensionless. See "units"_units.html. diff --git a/doc/src/compute_smd_internal_energy.txt b/doc/src/compute_smd_internal_energy.txt index bc6f9e0f20..6585c3429f 100644 --- a/doc/src/compute_smd_internal_energy.txt +++ b/doc/src/compute_smd_internal_energy.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -31,8 +31,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle vector values will be given in "units"_units.html of energy. diff --git a/doc/src/compute_smd_plastic_strain.txt b/doc/src/compute_smd_plastic_strain.txt index af5b164453..fb3c5c9138 100644 --- a/doc/src/compute_smd_plastic_strain.txt +++ b/doc/src/compute_smd_plastic_strain.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,8 +32,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values will be given dimensionless. See "units"_units.html. diff --git a/doc/src/compute_smd_plastic_strain_rate.txt b/doc/src/compute_smd_plastic_strain_rate.txt index ba7b3176db..b913ae9097 100644 --- a/doc/src/compute_smd_plastic_strain_rate.txt +++ b/doc/src/compute_smd_plastic_strain_rate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,8 +32,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values will be given in "units"_units.html of one over time. diff --git a/doc/src/compute_smd_rho.txt b/doc/src/compute_smd_rho.txt index ae50526725..a1ee1d9c5b 100644 --- a/doc/src/compute_smd_rho.txt +++ b/doc/src/compute_smd_rho.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -33,8 +33,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values will be in "units"_units.html of mass over volume. diff --git a/doc/src/compute_smd_tlsph_defgrad.txt b/doc/src/compute_smd_tlsph_defgrad.txt index 68b5dffa1c..1663c84f65 100644 --- a/doc/src/compute_smd_tlsph_defgrad.txt +++ b/doc/src/compute_smd_tlsph_defgrad.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,9 +32,8 @@ Mach Dynamics in LAMMPS. This compute outputss a per-particle vector of vectors (tensors), which can be accessed by any command that uses per-particle values -from a compute as input. See "How-to discussions, section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The per-particle vector values will be given dimensionless. See "units"_units.html. The per-particle vector has 10 entries. The first diff --git a/doc/src/compute_smd_tlsph_dt.txt b/doc/src/compute_smd_tlsph_dt.txt index 560a9b6fd8..c714f3266b 100644 --- a/doc/src/compute_smd_tlsph_dt.txt +++ b/doc/src/compute_smd_tlsph_dt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -37,8 +37,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values will be given in "units"_units.html of time. diff --git a/doc/src/compute_smd_tlsph_num_neighs.txt b/doc/src/compute_smd_tlsph_num_neighs.txt index 0420d1903d..af5b0741db 100644 --- a/doc/src/compute_smd_tlsph_num_neighs.txt +++ b/doc/src/compute_smd_tlsph_num_neighs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,8 +32,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle values are dimensionless. See "units"_units.html. diff --git a/doc/src/compute_smd_tlsph_shape.txt b/doc/src/compute_smd_tlsph_shape.txt index 02bd0c50dd..927cd7c7ae 100644 --- a/doc/src/compute_smd_tlsph_shape.txt +++ b/doc/src/compute_smd_tlsph_shape.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -33,9 +33,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector of vectors, which can be accessed by any command that uses per-particle values from a compute -as input. See "How-to discussions, section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +as input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. The per-particle vector has 7 entries. The first three entries correspond to the lengths of the ellipsoid's axes and have units of diff --git a/doc/src/compute_smd_tlsph_strain.txt b/doc/src/compute_smd_tlsph_strain.txt index f25d1b77db..4536f26c8e 100644 --- a/doc/src/compute_smd_tlsph_strain.txt +++ b/doc/src/compute_smd_tlsph_strain.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -31,9 +31,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector of vectors (tensors), which can be accessed by any command that uses per-particle values -from a compute as input. See "How-to discussions, section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The per-particle tensor values will be given dimensionless. See "units"_units.html. diff --git a/doc/src/compute_smd_tlsph_strain_rate.txt b/doc/src/compute_smd_tlsph_strain_rate.txt index 13ca57ac4d..ae2883e4bb 100644 --- a/doc/src/compute_smd_tlsph_strain_rate.txt +++ b/doc/src/compute_smd_tlsph_strain_rate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -31,9 +31,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector of vectors (tensors), which can be accessed by any command that uses per-particle values -from a compute as input. See "How-to discussions, section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The values will be given in "units"_units.html of one over time. diff --git a/doc/src/compute_smd_tlsph_stress.txt b/doc/src/compute_smd_tlsph_stress.txt index 5d707d4c2f..50d6b7f434 100644 --- a/doc/src/compute_smd_tlsph_stress.txt +++ b/doc/src/compute_smd_tlsph_stress.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -29,11 +29,10 @@ Mach Dynamics in LAMMPS. [Output info:] -This compute calculates a per-particle vector of vectors (tensors), which can be -accessed by any command that uses per-particle values from a compute -as input. See -"How-to discussions, section 6.15"_Section_howto.html#howto_15 -for an overview of LAMMPS output options. +This compute calculates a per-particle vector of vectors (tensors), +which can be accessed by any command that uses per-particle values +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The values will be given in "units"_units.html of pressure. diff --git a/doc/src/compute_smd_triangle_mesh_vertices.txt b/doc/src/compute_smd_triangle_mesh_vertices.txt index 5b0f0afc4c..9e167924d1 100644 --- a/doc/src/compute_smd_triangle_mesh_vertices.txt +++ b/doc/src/compute_smd_triangle_mesh_vertices.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -31,9 +31,9 @@ Mach Dynamics in LAMMPS. [Output info:] This compute returns a per-particle vector of vectors, which can be -accessed by any command that uses per-particle values from a compute as -input. See "How-to discussions, section 6.15"_Section_howto.html#howto_15 -for an overview of LAMMPS output options. +accessed by any command that uses per-particle values from a compute +as input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. The per-particle vector has nine entries, (x1/y1/z1), (x2/y2/z2), and (x3/y3/z3) corresponding to the first, second, and third vertex of diff --git a/doc/src/compute_smd_ulsph_num_neighs.txt b/doc/src/compute_smd_ulsph_num_neighs.txt index adece93343..202b8f15e1 100644 --- a/doc/src/compute_smd_ulsph_num_neighs.txt +++ b/doc/src/compute_smd_ulsph_num_neighs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,7 +32,7 @@ Mach Dynamics in LAMMPS. This compute returns a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "Section 6.15"_Section_howto.html#howto_15 for an overview of +See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-particle values will be given dimensionless, see "units"_units.html. diff --git a/doc/src/compute_smd_ulsph_strain.txt b/doc/src/compute_smd_ulsph_strain.txt index b7d425b12b..76c47162a5 100644 --- a/doc/src/compute_smd_ulsph_strain.txt +++ b/doc/src/compute_smd_ulsph_strain.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -31,7 +31,7 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle tensor, which can be accessed by any command that uses per-particle values from a compute as input. -See "Section 6.15"_Section_howto.html#howto_15 for an overview of +See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The per-particle vector has 6 entries, corresponding to the xx, yy, diff --git a/doc/src/compute_smd_ulsph_strain_rate.txt b/doc/src/compute_smd_ulsph_strain_rate.txt index e2c349c265..c851e767b3 100644 --- a/doc/src/compute_smd_ulsph_strain_rate.txt +++ b/doc/src/compute_smd_ulsph_strain_rate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,9 +32,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector of vectors (tensors), which can be accessed by any command that uses per-particle values -from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The values will be given in "units"_units.html of one over time. diff --git a/doc/src/compute_smd_ulsph_stress.txt b/doc/src/compute_smd_ulsph_stress.txt index 47f903d3b8..a5692b2412 100644 --- a/doc/src/compute_smd_ulsph_stress.txt +++ b/doc/src/compute_smd_ulsph_stress.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -30,9 +30,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector of vectors (tensors), which can be accessed by any command that uses per-particle values -from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The values will be given in "units"_units.html of pressure. diff --git a/doc/src/compute_smd_vol.txt b/doc/src/compute_smd_vol.txt index fc736a5bf5..fc4871d6f3 100644 --- a/doc/src/compute_smd_vol.txt +++ b/doc/src/compute_smd_vol.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -31,8 +31,8 @@ Mach Dynamics in LAMMPS. This compute calculates a per-particle vector, which can be accessed by any command that uses per-particle values from a compute as input. -See "How-to discussions, section 6.15"_Section_howto.html#howto_15 for -an overview of LAMMPS output options. +See the "Howto output"_Howto_output.html doc page for an overview of +LAMMPS output options. The per-particle vector values will be given in "units"_units.html of volume. diff --git a/doc/src/compute_sna_atom.txt b/doc/src/compute_sna_atom.txt index 268e23ac28..3b302a0a71 100644 --- a/doc/src/compute_sna_atom.txt +++ b/doc/src/compute_sna_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -244,9 +244,8 @@ So the nesting order from inside to outside is bispectrum component, linear then quadratic, vector/tensor component, type. These values can be accessed by any command that uses per-atom values -from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. [Restrictions:] diff --git a/doc/src/compute_spin.txt b/doc/src/compute_spin.txt index fcc764c14c..792706ecdf 100644 --- a/doc/src/compute_spin.txt +++ b/doc/src/compute_spin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_stress_atom.txt b/doc/src/compute_stress_atom.txt index 83b1df68e3..222513da61 100644 --- a/doc/src/compute_stress_atom.txt +++ b/doc/src/compute_stress_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -142,9 +142,8 @@ global system pressure. This compute calculates a per-atom array with 6 columns, which can be accessed by indices 1-6 by any command that uses per-atom values from -a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. The per-atom array values will be in pressure*volume "units"_units.html as discussed above. diff --git a/doc/src/compute_tally.txt b/doc/src/compute_tally.txt index 95ef4a553b..23fac43093 100644 --- a/doc/src/compute_tally.txt +++ b/doc/src/compute_tally.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_tdpd_cc_atom.txt b/doc/src/compute_tdpd_cc_atom.txt index a6a12dc52c..9ee4d3da34 100644 --- a/doc/src/compute_tdpd_cc_atom.txt +++ b/doc/src/compute_tdpd_cc_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -33,9 +33,9 @@ details see "(Li2015)"_#Li2015a. [Output info:] This compute calculates a per-atom vector, which can be accessed by -any command that uses per-atom values from a compute as input. See -"Section 6.15"_Section_howto.html#howto_15 for an overview of -LAMMPS output options. +any command that uses per-atom values from a compute as input. See the +"Howto output"_Howto_output.html doc page for an overview of LAMMPS +output options. The per-atom vector values will be in the units of chemical species per unit mass. diff --git a/doc/src/compute_temp.txt b/doc/src/compute_temp.txt index b88be79e20..9f3a1ca906 100644 --- a/doc/src/compute_temp.txt +++ b/doc/src/compute_temp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -58,8 +58,8 @@ compute thermo_temp all temp :pre See the "thermo_style" command for more details. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. :line @@ -67,10 +67,9 @@ thermostatting. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -82,8 +81,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -92,8 +91,8 @@ more instructions on how to use the accelerated styles effectively. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_asphere.txt b/doc/src/compute_temp_asphere.txt index 495366b345..6766729ae0 100644 --- a/doc/src/compute_temp_asphere.txt +++ b/doc/src/compute_temp_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -93,8 +93,8 @@ computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. :line @@ -122,8 +122,8 @@ rotational degrees of freedom. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_body.txt b/doc/src/compute_temp_body.txt index f72b886cc4..4e3ce3e77f 100644 --- a/doc/src/compute_temp_body.txt +++ b/doc/src/compute_temp_body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -75,8 +75,8 @@ computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. :line @@ -104,8 +104,8 @@ rotational degrees of freedom. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_chunk.txt b/doc/src/compute_temp_chunk.txt index f877f6ece8..de8c850a70 100644 --- a/doc/src/compute_temp_chunk.txt +++ b/doc/src/compute_temp_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -52,10 +52,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. The temperature is calculated by the formula KE = DOF/2 k T, where KE = total kinetic energy of all atoms assigned to chunks (sum of 1/2 m @@ -200,8 +199,8 @@ molecule. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. This compute also optionally calculates a global array, if one or more @@ -210,9 +209,8 @@ of the optional values are specified. The number of rows in the array "compute chunk/atom"_compute_chunk_atom.html command. The number of columns is the number of specified values (1 or more). These values can be accessed by any command that uses global array values from a -compute as input. Again, see "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +compute as input. Again, see the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The vector values are "extensive". The array values are "intensive". diff --git a/doc/src/compute_temp_com.txt b/doc/src/compute_temp_com.txt index c7cc5ec4e2..12df694e38 100644 --- a/doc/src/compute_temp_com.txt +++ b/doc/src/compute_temp_com.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -65,8 +65,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] @@ -74,8 +74,8 @@ thermostatting. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_cs.txt b/doc/src/compute_temp_cs.txt index 561b787df6..0236319f54 100644 --- a/doc/src/compute_temp_cs.txt +++ b/doc/src/compute_temp_cs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -28,9 +28,9 @@ Define a computation that calculates the temperature of a system based on the center-of-mass velocity of atom pairs that are bonded to each other. This compute is designed to be used with the adiabatic core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham1. See -"Section 6.25"_Section_howto.html#howto_25 of the manual for an -overview of the model as implemented in LAMMPS. Specifically, this -compute enables correct temperature calculation and thermostatting of +the "Howto coreshell"_Howto_coreshell.html doc page for an overview of +the model as implemented in LAMMPS. Specifically, this compute +enables correct temperature calculation and thermostatting of core/shell pairs where it is desirable for the internal degrees of freedom of the core/shell pairs to not be influenced by a thermostat. A compute of this style can be used by any command that computes a @@ -83,8 +83,9 @@ langevin"_fix_langevin.html. The internal energy of core/shell pairs can be calculated by the "compute temp/chunk"_compute_temp_chunk.html command, if chunks are -defined as core/shell pairs. See "Section -6.25"_Section_howto.html#howto_25 for more discussion on how to do this. +defined as core/shell pairs. See the "Howto +coreshell"_Howto_coreshell.html doc page doc page for more discussion +on how to do this. [Output info:] diff --git a/doc/src/compute_temp_deform.txt b/doc/src/compute_temp_deform.txt index 168b0b3880..26d322589e 100644 --- a/doc/src/compute_temp_deform.txt +++ b/doc/src/compute_temp_deform.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -104,8 +104,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] @@ -113,8 +113,8 @@ thermostatting. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_deform_eff.txt b/doc/src/compute_temp_deform_eff.txt index d09a0ace2f..876d492f34 100644 --- a/doc/src/compute_temp_deform_eff.txt +++ b/doc/src/compute_temp_deform_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -48,8 +48,8 @@ component of the electrons is not affected. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_drude.txt b/doc/src/compute_temp_drude.txt index 169b8d5880..20d9a5c056 100644 --- a/doc/src/compute_temp_drude.txt +++ b/doc/src/compute_temp_drude.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -22,10 +22,10 @@ compute TDRUDE all temp/drude :pre [Description:] Define a computation that calculates the temperatures of core-Drude -pairs. This compute is designed to be used with the -"thermalized Drude oscillator model"_tutorial_drude.html. Polarizable -models in LAMMPS are described in "this -Section"_Section_howto.html#howto_25. +pairs. This compute is designed to be used with the "thermalized Drude +oscillator model"_Howto_drude.html. Polarizable models in LAMMPS +are described on the "Howto polarizable"_Howto_polarizable.html doc +page. Drude oscillators consist of a core particle and a Drude particle connected by a harmonic bond, and the relative motion of these Drude @@ -57,8 +57,8 @@ kinetic energy of the centers of mass (energy units) kinetic energy of the dipoles (energy units) :ol These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. Both the scalar value and the first two values of the vector diff --git a/doc/src/compute_temp_eff.txt b/doc/src/compute_temp_eff.txt index 409319edcb..35ddb75b12 100644 --- a/doc/src/compute_temp_eff.txt +++ b/doc/src/compute_temp_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -69,8 +69,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] diff --git a/doc/src/compute_temp_partial.txt b/doc/src/compute_temp_partial.txt index fe2420b4e4..2769246532 100644 --- a/doc/src/compute_temp_partial.txt +++ b/doc/src/compute_temp_partial.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -65,8 +65,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. :line @@ -74,10 +74,9 @@ thermostatting. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -89,8 +88,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -99,8 +98,8 @@ more instructions on how to use the accelerated styles effectively. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_profile.txt b/doc/src/compute_temp_profile.txt index 64a6abd283..4ed04ca67e 100644 --- a/doc/src/compute_temp_profile.txt +++ b/doc/src/compute_temp_profile.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -122,8 +122,8 @@ degrees-of-freedom adjustment described in the preceding paragraph, for fixes that constrain molecular motion. It does include the adjustment due to the {extra} option, which is applied to each bin. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. Using this compute in conjunction with a thermostatting fix, as explained there, will effectively implement a profile-unbiased thermostat (PUT), as described in "(Evans)"_#Evans1. @@ -145,8 +145,8 @@ indices ix,iy,iz = 2,3,4 would map to row M = (iz-1)*10*10 + (iy-1)*10 indices are numbered from 1 to 10 in each dimension. These values can be used by any command that uses global scalar or -vector or array values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector or array values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_ramp.txt b/doc/src/compute_temp_ramp.txt index bc9283469c..15cad9c0cb 100644 --- a/doc/src/compute_temp_ramp.txt +++ b/doc/src/compute_temp_ramp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -83,8 +83,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] @@ -92,8 +92,8 @@ thermostatting. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_region.txt b/doc/src/compute_temp_region.txt index 3e4a80db8d..f23901af98 100644 --- a/doc/src/compute_temp_region.txt +++ b/doc/src/compute_temp_region.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -81,8 +81,8 @@ If needed the number of subtracted degrees-of-freedom can be set explicitly using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] @@ -90,8 +90,8 @@ thermostatting. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_region_eff.txt b/doc/src/compute_temp_region_eff.txt index 8baf2dd46c..95892eb257 100644 --- a/doc/src/compute_temp_region_eff.txt +++ b/doc/src/compute_temp_region_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -39,8 +39,8 @@ temp/eff"_compute_temp_eff.html command. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_rotate.txt b/doc/src/compute_temp_rotate.txt index 34feca7b6f..189246d3e4 100644 --- a/doc/src/compute_temp_rotate.txt +++ b/doc/src/compute_temp_rotate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -64,8 +64,8 @@ atoms that include these constraints will be computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. [Output info:] @@ -73,8 +73,8 @@ thermostatting. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_sphere.txt b/doc/src/compute_temp_sphere.txt index 9e9dff2cb6..5a55126d12 100644 --- a/doc/src/compute_temp_sphere.txt +++ b/doc/src/compute_temp_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -79,8 +79,8 @@ computed correctly. If needed, the subtracted degrees-of-freedom can be altered using the {extra} option of the "compute_modify"_compute_modify.html command. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. :line @@ -108,8 +108,8 @@ rotational degrees of freedom. This compute calculates a global scalar (the temperature) and a global vector of length 6 (KE tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or -vector values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +vector values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The scalar value calculated by this compute is "intensive". The diff --git a/doc/src/compute_temp_uef.txt b/doc/src/compute_temp_uef.txt index acd3a6218d..a94d5db8ed 100644 --- a/doc/src/compute_temp_uef.txt +++ b/doc/src/compute_temp_uef.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/compute_ti.txt b/doc/src/compute_ti.txt index 733954d146..e79b594e3f 100644 --- a/doc/src/compute_ti.txt +++ b/doc/src/compute_ti.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -111,9 +111,8 @@ du/dl can be found in the paper by "Eike"_#Eike. This compute calculates a global scalar, namely dUs/dlambda. This value can be used by any command that uses a global scalar value from -a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +a compute as input. See the "Howto output"_Howto_output.html doc page +for an overview of LAMMPS output options. The scalar value calculated by this compute is "extensive". diff --git a/doc/src/compute_torque_chunk.txt b/doc/src/compute_torque_chunk.txt index b9f832dd03..6484076b37 100644 --- a/doc/src/compute_torque_chunk.txt +++ b/doc/src/compute_torque_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the 3 components of the torque vector for eqch chunk, due to the forces on the individual atoms in the chunk around @@ -72,7 +71,7 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 3 for the 3 xyz components of the torque for each chunk. These values can be accessed by any command that uses global array values from a -compute as input. See "Section 6.15"_Section_howto.html#howto_15 +compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_vacf.txt b/doc/src/compute_vacf.txt index a0d9a3c5f7..70f1e99490 100644 --- a/doc/src/compute_vacf.txt +++ b/doc/src/compute_vacf.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -55,9 +55,8 @@ correctly with time=0 atom velocities from the restart file. This compute calculates a global vector of length 4, which can be accessed by indices 1-4 by any command that uses global vector values -from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. +from a compute as input. See the "Howto output"_Howto_output.html doc +page for an overview of LAMMPS output options. The vector values are "intensive". The vector values will be in velocity^2 "units"_units.html. diff --git a/doc/src/compute_vcm_chunk.txt b/doc/src/compute_vcm_chunk.txt index de02c586bf..7e8ad71208 100644 --- a/doc/src/compute_vcm_chunk.txt +++ b/doc/src/compute_vcm_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -30,10 +30,9 @@ chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be -defined and examples of how they can be used to measure properties of -a system. +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. This compute calculates the x,y,z components of the center-of-mass velocity for each chunk. This is done by summing mass*velocity for @@ -63,8 +62,8 @@ number of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The number of columns = 3 for the x,y,z center-of-mass velocity coordinates of each chunk. These values can be accessed by any command that uses global array -values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The array values are "intensive". The array values will be in diff --git a/doc/src/compute_voronoi_atom.txt b/doc/src/compute_voronoi_atom.txt index a280b2b151..a8ce77882a 100644 --- a/doc/src/compute_voronoi_atom.txt +++ b/doc/src/compute_voronoi_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -122,18 +122,16 @@ to locate vacancies (the coordinates are given by the atom coordinates at the time step when the compute was first invoked), while column two data can be used to identify interstitial atoms. -If the {neighbors} value is set to yes, then -this compute creates a local array with 3 columns. There -is one row for each face of each Voronoi cell. The -3 columns are the atom ID of the atom that owns the cell, -the atom ID of the atom in the neighboring cell -(or zero if the face is external), and the area of the face. -The array can be accessed by any command that -uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output -options. More specifically, the array can be accessed by a -"dump local"_dump.html command to write a file containing -all the Voronoi neighbors in a system: +If the {neighbors} value is set to yes, then this compute creates a +local array with 3 columns. There is one row for each face of each +Voronoi cell. The 3 columns are the atom ID of the atom that owns the +cell, the atom ID of the atom in the neighboring cell (or zero if the +face is external), and the area of the face. The array can be +accessed by any command that uses local values from a compute as +input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. More specifically, the array can be +accessed by a "dump local"_dump.html command to write a file +containing all the Voronoi neighbors in a system: compute 6 all voronoi/atom neighbors yes dump d2 all local 1 dump.neighbors index c_6\[1\] c_6\[2\] c_6\[3\] :pre @@ -186,8 +184,8 @@ columns. In regular dynamic tessellation mode the first column is the Voronoi volume, the second is the neighbor count, as described above (read above for the output data in case the {occupation} keyword is specified). These values can be accessed by any command that uses -per-atom values from a compute as input. See "Section -6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output +per-atom values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. If the {peratom} keyword is set to "no", the per-atom array is still created, but it is not accessible. diff --git a/doc/src/compute_xrd.txt b/doc/src/compute_xrd.txt index 1a151d63f9..609fde3582 100644 --- a/doc/src/compute_xrd.txt +++ b/doc/src/compute_xrd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -162,7 +162,7 @@ or degrees) provided with the {2Theta} values. The second column contains the computed diffraction intensities as described above. The array can be accessed by any command that uses global values from -a compute as input. See "this section"_Section_howto.html#howto_15 +a compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. All array values calculated by this compute are "intensive". diff --git a/doc/src/create_atoms.txt b/doc/src/create_atoms.txt index 5d824ae1ef..d80e2d45f1 100644 --- a/doc/src/create_atoms.txt +++ b/doc/src/create_atoms.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/create_bonds.txt b/doc/src/create_bonds.txt index 6700ed29d3..8596cab51d 100644 --- a/doc/src/create_bonds.txt +++ b/doc/src/create_bonds.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/create_box.txt b/doc/src/create_box.txt index f4ef13654c..0993b4f927 100644 --- a/doc/src/create_box.txt +++ b/doc/src/create_box.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -73,9 +73,9 @@ factors that exceed these limits, you can use the "box tilt"_box.html command, with a setting of {large}; a setting of {small} is the default. -See "Section 6.12"_Section_howto.html#howto_12 of the doc pages -for a geometric description of triclinic boxes, as defined by LAMMPS, -and how to transform these parameters to and from other commonly used +See the "Howto triclinic"_Howto_triclinic.html doc page for a +geometric description of triclinic boxes, as defined by LAMMPS, and +how to transform these parameters to and from other commonly used triclinic representations. When a prism region is used, the simulation domain should normally be diff --git a/doc/src/delete_atoms.txt b/doc/src/delete_atoms.txt index 1aa71d341f..57faf97ad1 100644 --- a/doc/src/delete_atoms.txt +++ b/doc/src/delete_atoms.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/delete_bonds.txt b/doc/src/delete_bonds.txt index b1137a2288..b29fa82f2d 100644 --- a/doc/src/delete_bonds.txt +++ b/doc/src/delete_bonds.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dielectric.txt b/doc/src/dielectric.txt index e98badf87b..f93be8cc25 100644 --- a/doc/src/dielectric.txt +++ b/doc/src/dielectric.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_charmm.txt b/doc/src/dihedral_charmm.txt index 06abe054e4..8adef6cf4b 100644 --- a/doc/src/dihedral_charmm.txt +++ b/doc/src/dihedral_charmm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -116,10 +116,9 @@ computed. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -131,8 +130,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_class2.txt b/doc/src/dihedral_class2.txt index cb9fc72c22..1a2f37abbb 100644 --- a/doc/src/dihedral_class2.txt +++ b/doc/src/dihedral_class2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -141,10 +141,9 @@ r3 (distance) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -156,8 +155,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_coeff.txt b/doc/src/dihedral_coeff.txt index 5b43cbbe7f..1db69e40d5 100644 --- a/doc/src/dihedral_coeff.txt +++ b/doc/src/dihedral_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -74,9 +74,9 @@ the style to display the formula it computes and coefficients specified by the associated "dihedral_coeff"_dihedral_coeff.html command. Note that there are also additional dihedral styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the dihedral section of -"this page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +dihedral styles is on the "Commands bond"_Commands_bond.html#dihedral +doc page. "dihedral_style none"_dihedral_none.html - turn off dihedral interactions "dihedral_style hybrid"_dihedral_hybrid.html - define multiple styles of dihedral interactions :ul diff --git a/doc/src/dihedral_cosine_shift_exp.txt b/doc/src/dihedral_cosine_shift_exp.txt index 715682affc..7ef27e6bc9 100644 --- a/doc/src/dihedral_cosine_shift_exp.txt +++ b/doc/src/dihedral_cosine_shift_exp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -52,10 +52,9 @@ A (real number) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -67,8 +66,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_fourier.txt b/doc/src/dihedral_fourier.txt index 0accbb22bf..f51cbc9c8c 100644 --- a/doc/src/dihedral_fourier.txt +++ b/doc/src/dihedral_fourier.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -44,10 +44,9 @@ dm (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -59,8 +58,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_harmonic.txt b/doc/src/dihedral_harmonic.txt index d9a48ff384..1eda0c5d02 100644 --- a/doc/src/dihedral_harmonic.txt +++ b/doc/src/dihedral_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -53,10 +53,9 @@ Some force fields let {n} be positive or negative which corresponds to Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -68,8 +67,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_helix.txt b/doc/src/dihedral_helix.txt index 1e907557b2..3af4b410bc 100644 --- a/doc/src/dihedral_helix.txt +++ b/doc/src/dihedral_helix.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -46,10 +46,9 @@ C (energy) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -61,8 +60,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_hybrid.txt b/doc/src/dihedral_hybrid.txt index 8cb40eff44..c9ca86680c 100644 --- a/doc/src/dihedral_hybrid.txt +++ b/doc/src/dihedral_hybrid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_multi_harmonic.txt b/doc/src/dihedral_multi_harmonic.txt index 7d3c2ea083..7c22391923 100644 --- a/doc/src/dihedral_multi_harmonic.txt +++ b/doc/src/dihedral_multi_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -40,10 +40,9 @@ A5 (energy) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -55,8 +54,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_nharmonic.txt b/doc/src/dihedral_nharmonic.txt index 8392d83899..aa8f1e0d7f 100644 --- a/doc/src/dihedral_nharmonic.txt +++ b/doc/src/dihedral_nharmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -40,10 +40,9 @@ An (energy) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -55,8 +54,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_none.txt b/doc/src/dihedral_none.txt index 3ce2aa1729..4c1ff2ea5d 100644 --- a/doc/src/dihedral_none.txt +++ b/doc/src/dihedral_none.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_opls.txt b/doc/src/dihedral_opls.txt index d1a6ba3ff2..f0cf91f30a 100644 --- a/doc/src/dihedral_opls.txt +++ b/doc/src/dihedral_opls.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -48,10 +48,9 @@ K4 (energy) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -63,8 +62,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_quadratic.txt b/doc/src/dihedral_quadratic.txt index ca2f5aed40..e65cf2dee8 100644 --- a/doc/src/dihedral_quadratic.txt +++ b/doc/src/dihedral_quadratic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -41,10 +41,9 @@ phi0 (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -56,8 +55,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/dihedral_spherical.txt b/doc/src/dihedral_spherical.txt index 7c17fbf5ef..10a757e898 100644 --- a/doc/src/dihedral_spherical.txt +++ b/doc/src/dihedral_spherical.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_style.txt b/doc/src/dihedral_style.txt index ca592b29b5..6aff3f0994 100644 --- a/doc/src/dihedral_style.txt +++ b/doc/src/dihedral_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -81,9 +81,9 @@ the style to display the formula it computes and coefficients specified by the associated "dihedral_coeff"_dihedral_coeff.html command. Note that there are also additional dihedral styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the dihedral section of -"this page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +dihedral styles is on the "Commands bond"_Commands_bond.html#dihedral +doc page. "dihedral_style none"_dihedral_none.html - turn off dihedral interactions "dihedral_style zero"_dihedral_zero.html - topology but no interactions diff --git a/doc/src/dihedral_table.txt b/doc/src/dihedral_table.txt index 0b88f26a61..d722ef7c82 100644 --- a/doc/src/dihedral_table.txt +++ b/doc/src/dihedral_table.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -174,10 +174,9 @@ that matches the specified keyword. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -189,8 +188,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restrictions:] diff --git a/doc/src/dihedral_table_cut.txt b/doc/src/dihedral_table_cut.txt index 1c83d4ffa0..cc7df8cdf9 100644 --- a/doc/src/dihedral_table_cut.txt +++ b/doc/src/dihedral_table_cut.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dihedral_zero.txt b/doc/src/dihedral_zero.txt index 4d33126eeb..0c9995a563 100644 --- a/doc/src/dihedral_zero.txt +++ b/doc/src/dihedral_zero.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dimension.txt b/doc/src/dimension.txt index 0531e92acf..b7dde76524 100644 --- a/doc/src/dimension.txt +++ b/doc/src/dimension.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -26,7 +26,7 @@ prior to setting up a simulation box via the "create_box"_create_box.html or "read_data"_read_data.html commands. Restart files also store this setting. -See the discussion in "Section 6"_Section_howto.html for +See the discussion on the "Howto 2d"_Howto_2d.html doc page for additional instructions on how to run 2d simulations. NOTE: Some models in LAMMPS treat particles as finite-size spheres or diff --git a/doc/src/displace_atoms.txt b/doc/src/displace_atoms.txt index 634add196b..b4afd5c3a9 100644 --- a/doc/src/displace_atoms.txt +++ b/doc/src/displace_atoms.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump.txt b/doc/src/dump.txt index ff1bf6424d..5b478b7301 100644 --- a/doc/src/dump.txt +++ b/doc/src/dump.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -224,12 +224,12 @@ This bounding box is convenient for many visualization programs. The meaning of the 6 character flags for "xx yy zz" is the same as above. Note that the first two numbers on each line are now xlo_bound instead -of xlo, etc, since they represent a bounding box. See "this -section"_Section_howto.html#howto_12 of the doc pages for a geometric -description of triclinic boxes, as defined by LAMMPS, simple formulas -for how the 6 bounding box extents (xlo_bound,xhi_bound,etc) are -calculated from the triclinic parameters, and how to transform those -parameters to and from other commonly used triclinic representations. +of xlo, etc, since they represent a bounding box. See the "Howto +triclinic"_Howto_triclinic.html doc page for a geometric description +of triclinic boxes, as defined by LAMMPS, simple formulas for how the +6 bounding box extents (xlo_bound,xhi_bound,etc) are calculated from +the triclinic parameters, and how to transform those parameters to and +from other commonly used triclinic representations. The "ITEM: ATOMS" line in each snapshot lists column descriptors for the per-atom lines that follow. For example, the descriptors would be @@ -530,7 +530,7 @@ so that each value is 0.0 to 1.0. If the simulation box is triclinic (tilted), then all atom coords will still be between 0.0 and 1.0. I.e. actual unscaled (x,y,z) = xs*A + ys*B + zs*C, where (A,B,C) are the non-orthogonal vectors of the simulation box edges, as discussed -in "Section 6.12"_Section_howto.html#howto_12. +on the "Howto triclinic"_Howto_triclinic.html doc page. Use {xu}, {yu}, {zu} if you want the coordinates "unwrapped" by the image flags for each atom. Unwrapped means that if the atom has diff --git a/doc/src/dump_cfg_uef.txt b/doc/src/dump_cfg_uef.txt index e257f9c4f1..665be14be1 100644 --- a/doc/src/dump_cfg_uef.txt +++ b/doc/src/dump_cfg_uef.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_h5md.txt b/doc/src/dump_h5md.txt index 93c87d85b7..fbd682dad9 100644 --- a/doc/src/dump_h5md.txt +++ b/doc/src/dump_h5md.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_image.txt b/doc/src/dump_image.txt index c1732be972..06332b5dcf 100644 --- a/doc/src/dump_image.txt +++ b/doc/src/dump_image.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -356,16 +356,16 @@ is used to define body particles with internal state body style. If this keyword is not used, such particles will be drawn as spheres, the same as if they were regular atoms. -The "body"_body.html doc page describes the body styles LAMMPS -currently supports, and provides more details as to the kind of body -particles they represent and how they are drawn by this dump image -command. For all the body styles, individual atoms can be either a -body particle or a usual point (non-body) particle. Non-body +The "Howto body"_Howto_body.html doc page describes the body styles +LAMMPS currently supports, and provides more details as to the kind of +body particles they represent and how they are drawn by this dump +image command. For all the body styles, individual atoms can be +either a body particle or a usual point (non-body) particle. Non-body particles will be drawn the same way they would be as a regular atom. The {bflag1} and {bflag2} settings are numerical values which are passed to the body style to affect how the drawing of a body particle -is done. See the "body"_body.html doc page for a description of what -these parameters mean for each body style. +is done. See the "Howto body"_Howto_body.html doc page for a +description of what these parameters mean for each body style. The only setting currently allowed for the {color} value is {type}, which will color the body particles according to the atom type of the diff --git a/doc/src/dump_modify.txt b/doc/src/dump_modify.txt index 5365610d64..73107d07f7 100644 --- a/doc/src/dump_modify.txt +++ b/doc/src/dump_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_molfile.txt b/doc/src/dump_molfile.txt index 7e68490a68..9fa04bd1ae 100644 --- a/doc/src/dump_molfile.txt +++ b/doc/src/dump_molfile.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_netcdf.txt b/doc/src/dump_netcdf.txt index 70111a36a8..b1c6373651 100644 --- a/doc/src/dump_netcdf.txt +++ b/doc/src/dump_netcdf.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/dump_vtk.txt b/doc/src/dump_vtk.txt index d4d28c81fc..afc6099534 100644 --- a/doc/src/dump_vtk.txt +++ b/doc/src/dump_vtk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/echo.txt b/doc/src/echo.txt index 3141c7a719..dc6918dc89 100644 --- a/doc/src/echo.txt +++ b/doc/src/echo.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix.txt b/doc/src/fix.txt index ba2088576f..fd966b5bd9 100644 --- a/doc/src/fix.txt +++ b/doc/src/fix.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -133,7 +133,7 @@ reduce"_compute_reduce.html command, or histogrammed by the "fix ave/histo"_fix_ave_histo.html command. :l :ule -See this "howto section"_Section_howto.html#howto_15 for a summary of +See the "Howto output"_Howto_output.html doc page for a summary of various LAMMPS output options, many of which involve fixes. The results of fixes that calculate global quantities can be either @@ -151,16 +151,20 @@ for further info. :line -Each fix style has its own documentation page which describes its -arguments and what it does, as listed below. Here is an alphabetic -list of fix styles available in LAMMPS. They are also given in more -compact form in the Fix section of "this -page"_Section_commands.html#cmd_5. +Each fix style has its own doc page which describes its arguments and +what it does, as listed below. Here is an alphabetic list of fix +styles available in LAMMPS. They are also listed in more compact form +on the "Commands fix"_Commands_fix.html doc page. There are also additional fix styles (not listed here) submitted by -users which are included in the LAMMPS distribution. The list of -these with links to the individual styles are given in the fix section -of "this page"_Section_commands.html#cmd_5. +users which are included in the LAMMPS distribution. The full list of +all fix styles is on the "Commands fix"_Commands_fix.html doc page. + +There are also additional accelerated fix styles included in the +LAMMPS distribution for faster performance on CPUs, GPUs, and KNLs. +The individual style names on the "Commands fix"_Commands_fix.html doc +page are followed by one or more of (g,i,k,o,t) to indicate which +accerlerated styles exist. "adapt"_fix_adapt.html - change a simulation parameter over time "addforce"_fix_addforce.html - add a force to each atom diff --git a/doc/src/fix_adapt.txt b/doc/src/fix_adapt.txt index 7a34f2ff44..0ca28fb869 100644 --- a/doc/src/fix_adapt.txt +++ b/doc/src/fix_adapt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -270,10 +270,10 @@ fix 1 center adapt 10 atom diameter v_size :pre No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. For "rRESPA time integration"_run_style.html, this fix changes parameters on the outermost rRESPA level. diff --git a/doc/src/fix_adapt_fep.txt b/doc/src/fix_adapt_fep.txt index 5dd58bc39a..7e30a1d29d 100644 --- a/doc/src/fix_adapt_fep.txt +++ b/doc/src/fix_adapt_fep.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -243,10 +243,10 @@ parameters on the outermost rRESPA level. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_addforce.txt b/doc/src/fix_addforce.txt index b2ac95eabb..51be39fdb2 100644 --- a/doc/src/fix_addforce.txt +++ b/doc/src/fix_addforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -103,12 +103,12 @@ converge properly. :line -Styles with a suffix are functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, -depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -120,8 +120,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -150,11 +150,11 @@ integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar and a global 3-vector of forces, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar is the potential -energy discussed above. The vector is the total force on the group of -atoms before the forces on individual atoms are changed by the fix. -The scalar and vector values calculated by this fix are "extensive". +which can be accessed by various "output commands"_Howto_output.html. +The scalar is the potential energy discussed above. The vector is the +total force on the group of atoms before the forces on individual +atoms are changed by the fix. The scalar and vector values calculated +by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_addtorque.txt b/doc/src/fix_addtorque.txt index 793ec0e015..c80fad26da 100644 --- a/doc/src/fix_addtorque.txt +++ b/doc/src/fix_addtorque.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -70,11 +70,11 @@ this fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its torque. Default is the outermost level. This fix computes a global scalar and a global 3-vector, which can be -accessed by various "output commands"_Section_howto.html#howto_15. -The scalar is the potential energy discussed above. The vector is the -total torque on the group of atoms before the forces on individual -atoms are changed by the fix. The scalar and vector values calculated -by this fix are "extensive". +accessed by various "output commands"_Howto_output.html. The scalar +is the potential energy discussed above. The vector is the total +torque on the group of atoms before the forces on individual atoms are +changed by the fix. The scalar and vector values calculated by this +fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_append_atoms.txt b/doc/src/fix_append_atoms.txt index 27070c9be5..c6af361afc 100644 --- a/doc/src/fix_append_atoms.txt +++ b/doc/src/fix_append_atoms.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -87,10 +87,10 @@ define the lattice spacings. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_atc.txt b/doc/src/fix_atc.txt index 49014f0591..6de917e571 100644 --- a/doc/src/fix_atc.txt +++ b/doc/src/fix_atc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -102,7 +102,13 @@ Note coupling and post-processing can be combined in the same simulations using [Restart, fix_modify, output, run start/stop, minimize info:] -No information about this fix is written to "binary restart files"_restart.html. The "fix_modify"_fix_modify.html options relevant to this fix are listed below. No global scalar or vector or per-atom quantities are stored by this fix for access by various "output commands"_Section_howto.html#howto_15. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. +No information about this fix is written to "binary restart +files"_restart.html. The "fix_modify"_fix_modify.html options +relevant to this fix are listed below. No global scalar or vector or +per-atom quantities are stored by this fix for access by various +"output commands"_Howto_output.html. No parameter of this fix can be +used with the {start/stop} keywords of the "run"_run.html command. +This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_atom_swap.txt b/doc/src/fix_atom_swap.txt index bf56277214..c1d84dade1 100644 --- a/doc/src/fix_atom_swap.txt +++ b/doc/src/fix_atom_swap.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -150,8 +150,8 @@ None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global vector of length 2, which can be accessed -by various "output commands"_Section_howto.html#howto_15. The vector -values are the following global cumulative quantities: +by various "output commands"_Howto_output.html. The vector values are +the following global cumulative quantities: 1 = swap attempts 2 = swap successes :ul diff --git a/doc/src/fix_ave_atom.txt b/doc/src/fix_ave_atom.txt index 23e4ed235b..10deaf64cd 100644 --- a/doc/src/fix_ave_atom.txt +++ b/doc/src/fix_ave_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -38,7 +38,7 @@ fix 1 all ave/atom 10 20 1000 c_my_stress\[*\] :pre Use one or more per-atom vectors as inputs every few timesteps, and average them atom by atom over longer timescales. The resulting per-atom averages can be used by other "output -commands"_Section_howto.html#howto_15 such as the "fix +commands"_Howto_output.html such as the "fix ave/chunk"_fix_ave_chunk.html or "dump custom"_dump.html commands. The group specified with the command means only atoms within the group @@ -155,14 +155,14 @@ No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global scalar or vector quantities are stored by this fix for access by various "output -commands"_Section_howto.html#howto_15. +commands"_Howto_output.html. This fix produces a per-atom vector or array which can be accessed by -various "output commands"_Section_howto.html#howto_15. A vector is -produced if only a single quantity is averaged by this fix. If two or -more quantities are averaged, then an array of values is produced. -The per-atom values can only be accessed on timesteps that are -multiples of {Nfreq} since that is when averaging is performed. +various "output commands"_Howto_output.html. A vector is produced if +only a single quantity is averaged by this fix. If two or more +quantities are averaged, then an array of values is produced. The +per-atom values can only be accessed on timesteps that are multiples +of {Nfreq} since that is when averaging is performed. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_ave_chunk.txt b/doc/src/fix_ave_chunk.txt index 8e2a09e33f..d331e51295 100644 --- a/doc/src/fix_ave_chunk.txt +++ b/doc/src/fix_ave_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -85,17 +85,17 @@ fix 1 flow ave/chunk 100 10 1000 cc1 vx vz norm sample file vel.profile :pre Use one or more per-atom vectors as inputs every few timesteps, sum the values over the atoms in each chunk at each timestep, then average the per-chunk values over longer timescales. The resulting chunk -averages can be used by other "output -commands"_Section_howto.html#howto_15 such as "thermo_style -custom"_thermo_style.html, and can also be written to a file. +averages can be used by other "output commands"_Howto_output.html such +as "thermo_style custom"_thermo_style.html, and can also be written to +a file. In LAMMPS, chunks are collections of atoms defined by a "compute chunk/atom"_compute_chunk_atom.html command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the "compute -chunk/atom"_compute_chunk_atom.html doc page and "Section -6.23"_Section_howto.html#howto_23 for details of how chunks can be +chunk/atom"_compute_chunk_atom.html doc page and the "Howto +chunk"_Howto_chunk.html doc page for details of how chunks can be defined and examples of how they can be used to measure properties of a system. @@ -456,20 +456,19 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global array of values which can be accessed by -various "output commands"_Section_howto.html#howto_15. The values can -only be accessed on timesteps that are multiples of {Nfreq} since that -is when averaging is performed. The global array has # of rows = -the number of chunks {Nchunk} as calculated by the specified "compute +various "output commands"_Howto_output.html. The values can only be +accessed on timesteps that are multiples of {Nfreq} since that is when +averaging is performed. The global array has # of rows = the number +of chunks {Nchunk} as calculated by the specified "compute chunk/atom"_compute_chunk_atom.html command. The # of columns = M+1+Nvalues, where M = 1 to 4, depending on whether the optional -columns for OrigID and CoordN are used, as explained above. -Following the optional columns, the next column contains the count of -atoms in the chunk, and the remaining columns are the Nvalue -quantities. When the array is accessed with a row I that exceeds the -current number of chunks, than a 0.0 is returned by the fix instead of -an error, since the number of chunks can vary as a simulation runs -depending on how that value is computed by the compute chunk/atom -command. +columns for OrigID and CoordN are used, as explained above. Following +the optional columns, the next column contains the count of atoms in +the chunk, and the remaining columns are the Nvalue quantities. When +the array is accessed with a row I that exceeds the current number of +chunks, than a 0.0 is returned by the fix instead of an error, since +the number of chunks can vary as a simulation runs depending on how +that value is computed by the compute chunk/atom command. The array values calculated by this fix are treated as "intensive", since they are typically already normalized by the count of atoms in diff --git a/doc/src/fix_ave_correlate.txt b/doc/src/fix_ave_correlate.txt index 98f352cb74..22e8768f1d 100644 --- a/doc/src/fix_ave_correlate.txt +++ b/doc/src/fix_ave_correlate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -68,7 +68,7 @@ calculate time correlations between them at varying time intervals, and average the correlation data over longer timescales. The resulting correlation values can be time integrated by "variables"_variable.html or used by other "output -commands"_Section_howto.html#howto_15 such as "thermo_style +commands"_Howto_output.html such as "thermo_style custom"_thermo_style.html, and can also be written to a file. See the "fix ave/correlate/long"_fix_ave_correlate_long.html command for an alternate method for computing correlation functions efficiently over @@ -313,16 +313,15 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global array of values which can be accessed by -various "output commands"_Section_howto.html#howto_15. The values can -only be accessed on timesteps that are multiples of {Nfreq} since that -is when averaging is performed. The global array has # of rows = -{Nrepeat} and # of columns = Npair+2. The first column has the time -delta (in timesteps) between the pairs of input values used to -calculate the correlation, as described above. The 2nd column has the -number of samples contributing to the correlation average, as -described above. The remaining Npair columns are for I,J pairs of the -N input values, as determined by the {type} keyword, as described -above. +various "output commands"_Howto_output.html. The values can only be +accessed on timesteps that are multiples of {Nfreq} since that is when +averaging is performed. The global array has # of rows = {Nrepeat} +and # of columns = Npair+2. The first column has the time delta (in +timesteps) between the pairs of input values used to calculate the +correlation, as described above. The 2nd column has the number of +samples contributing to the correlation average, as described above. +The remaining Npair columns are for I,J pairs of the N input values, +as determined by the {type} keyword, as described above. For {type} = {auto}, the Npair = N columns are ordered: C11, C22, ..., CNN. :ulb,l diff --git a/doc/src/fix_ave_correlate_long.txt b/doc/src/fix_ave_correlate_long.txt index 7b4bc53701..ac0ef873aa 100644 --- a/doc/src/fix_ave_correlate_long.txt +++ b/doc/src/fix_ave_correlate_long.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_ave_histo.txt b/doc/src/fix_ave_histo.txt index 5155f42e7b..f1da130ff7 100644 --- a/doc/src/fix_ave_histo.txt +++ b/doc/src/fix_ave_histo.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -69,10 +69,9 @@ fix 1 all ave/histo/weight 1 1 1 10 100 2000 c_XRD\[1\] c_XRD\[2\] :pre Use one or more values as inputs every few timesteps to create a single histogram. The histogram can then be averaged over longer timescales. The resulting histogram can be used by other "output -commands"_Section_howto.html#howto_15, and can also be written to a -file. The fix ave/histo/weight command has identical syntax to fix -ave/histo, except that exactly two values must be specified. See -details below. +commands"_Howto_output.html, and can also be written to a file. The +fix ave/histo/weight command has identical syntax to fix ave/histo, +except that exactly two values must be specified. See details below. The group specified with this command is ignored for global and local input values. For per-atom input values, only atoms in the group @@ -320,10 +319,10 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a global vector and global array which can be -accessed by various "output commands"_Section_howto.html#howto_15. -The values can only be accessed on timesteps that are multiples of -{Nfreq} since that is when a histogram is generated. The global -vector has 4 values: +accessed by various "output commands"_Howto_output.html. The values +can only be accessed on timesteps that are multiples of {Nfreq} since +that is when a histogram is generated. The global vector has 4 +values: 1 = total counts in the histogram 2 = values that were not histogrammed (see {beyond} keyword) diff --git a/doc/src/fix_ave_time.txt b/doc/src/fix_ave_time.txt index b61f56cf02..a53e318d3f 100644 --- a/doc/src/fix_ave_time.txt +++ b/doc/src/fix_ave_time.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -64,7 +64,7 @@ fix 1 all ave/time 1 100 1000 f_indent f_indent\[1\] file temp.indent off 1 :pre Use one or more global values as inputs every few timesteps, and average them over longer timescales. The resulting averages can be -used by other "output commands"_Section_howto.html#howto_15 such as +used by other "output commands"_Howto_output.html such as "thermo_style custom"_thermo_style.html, and can also be written to a file. Note that if no time averaging is done, this command can be used as a convenient way to simply output one or more global values to @@ -305,10 +305,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a global scalar or global vector or global array -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The values can only be -accessed on timesteps that are multiples of {Nfreq} since that is when -averaging is performed. +which can be accessed by various "output commands"_Howto_output.html. +The values can only be accessed on timesteps that are multiples of +{Nfreq} since that is when averaging is performed. A scalar is produced if only a single input value is averaged and {mode} = scalar. A vector is produced if multiple input values are diff --git a/doc/src/fix_aveforce.txt b/doc/src/fix_aveforce.txt index 5d7dec3e6a..1fc7e4a18d 100644 --- a/doc/src/fix_aveforce.txt +++ b/doc/src/fix_aveforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -63,12 +63,12 @@ to it. :line -Styles with a suffix are functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, -depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -80,8 +80,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -95,10 +95,10 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global 3-vector of forces, which can be accessed -by various "output commands"_Section_howto.html#howto_15. This is the -total force on the group of atoms before the forces on individual -atoms are changed by the fix. The vector values calculated by this -fix are "extensive". +by various "output commands"_Howto_output.html. This is the total +force on the group of atoms before the forces on individual atoms are +changed by the fix. The vector values calculated by this fix are +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_balance.txt b/doc/src/fix_balance.txt index f148e6f996..2de17cdd2a 100644 --- a/doc/src/fix_balance.txt +++ b/doc/src/fix_balance.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -357,8 +357,8 @@ number of particles (or total weight) on any processor to the average number of particles (or total weight) per processor. These quantities can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar and vector values -calculated by this fix are "intensive". +commands"_Howto_output.html. The scalar and vector values calculated +by this fix are "intensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_bocs.txt b/doc/src/fix_bocs.txt index f53b7c785c..f5bbc8a251 100644 --- a/doc/src/fix_bocs.txt +++ b/doc/src/fix_bocs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_bond_break.txt b/doc/src/fix_bond_break.txt index 83364b9efb..bdb2f2a862 100644 --- a/doc/src/fix_bond_break.txt +++ b/doc/src/fix_bond_break.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -116,8 +116,8 @@ are relevant to this fix. This fix computes two statistics which it stores in a global vector of length 2, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The vector values calculated -by this fix are "intensive". +commands"_Howto_output.html. The vector values calculated by this fix +are "intensive". These are the 2 quantities: diff --git a/doc/src/fix_bond_create.txt b/doc/src/fix_bond_create.txt index c0045ac0f0..ab34433cec 100644 --- a/doc/src/fix_bond_create.txt +++ b/doc/src/fix_bond_create.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -211,8 +211,8 @@ are relevant to this fix. This fix computes two statistics which it stores in a global vector of length 2, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The vector values calculated -by this fix are "intensive". +commands"_Howto_output.html. The vector values calculated by this fix +are "intensive". These are the 2 quantities: diff --git a/doc/src/fix_bond_react.txt b/doc/src/fix_bond_react.txt index f85ef9bc1a..883968e012 100644 --- a/doc/src/fix_bond_react.txt +++ b/doc/src/fix_bond_react.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -298,9 +298,8 @@ relevant to this fix. This fix computes one statistic for each {react} argument that it stores in a global vector, of length 'number of react arguments', that -can be accessed by various "output -commands"_Section_howto.html#howto_15. The vector values calculated by -this fix are "intensive". +can be accessed by various "output commands"_Howto_output.html. The +vector values calculated by this fix are "intensive". These is 1 quantity for each react argument: diff --git a/doc/src/fix_bond_swap.txt b/doc/src/fix_bond_swap.txt index ca7069e247..a829171f33 100644 --- a/doc/src/fix_bond_swap.txt +++ b/doc/src/fix_bond_swap.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -150,13 +150,13 @@ the Boltzmann criterion. This fix computes two statistical quantities as a global 2-vector of output, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The first component of the -vector is the cumulative number of swaps performed by all processors. -The second component of the vector is the cumulative number of swaps -attempted (whether accepted or rejected). Note that a swap "attempt" -only occurs when swap partners meeting the criteria described above -are found on a particular timestep. The vector values calculated by -this fix are "intensive". +commands"_Howto_output.html. The first component of the vector is the +cumulative number of swaps performed by all processors. The second +component of the vector is the cumulative number of swaps attempted +(whether accepted or rejected). Note that a swap "attempt" only +occurs when swap partners meeting the criteria described above are +found on a particular timestep. The vector values calculated by this +fix are "intensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_box_relax.txt b/doc/src/fix_box_relax.txt index e3d75ee858..8e21ec2c74 100644 --- a/doc/src/fix_box_relax.txt +++ b/doc/src/fix_box_relax.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -315,17 +315,15 @@ specified by the {press} keyword will be unaffected by the {temp} setting. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -pressure-volume energy, plus the strain energy, if it exists, -as described above. -The energy values reported at the -end of a minimization run under "Minimization stats" include this -energy, and so differ from what LAMMPS normally reports as potential -energy. This fix does not support the "fix_modify"_fix_modify.html -{energy} option, because that would result in double-counting of the -fix energy in the minimization energy. Instead, the fix energy can be -explicitly added to the potential energy using one of these two -variants: +"output commands"_Howto_output.html. The scalar is the pressure-volume +energy, plus the strain energy, if it exists, as described above. The +energy values reported at the end of a minimization run under +"Minimization stats" include this energy, and so differ from what +LAMMPS normally reports as potential energy. This fix does not support +the "fix_modify"_fix_modify.html {energy} option, because that would +result in double-counting of the fix energy in the minimization +energy. Instead, the fix energy can be explicitly added to the +potential energy using one of these two variants: variable emin equal pe+f_1 :pre diff --git a/doc/src/fix_cmap.txt b/doc/src/fix_cmap.txt index f8de2b4efe..6f3769fafe 100644 --- a/doc/src/fix_cmap.txt +++ b/doc/src/fix_cmap.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -103,9 +103,9 @@ the system's virial as part of "thermodynamic output"_thermo_style.html. The default is {virial yes} This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -potential energy discussed above. The scalar value calculated by this -fix is "extensive". +"output commands"_Howto_output.html. The scalar is the potential +energy discussed above. The scalar value calculated by this fix is +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_colvars.txt b/doc/src/fix_colvars.txt index e48dedacd9..4a1d84de64 100644 --- a/doc/src/fix_colvars.txt +++ b/doc/src/fix_colvars.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -99,9 +99,9 @@ to the system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". [Restrictions:] diff --git a/doc/src/fix_controller.txt b/doc/src/fix_controller.txt index b8d2cb43be..7458f1bcfa 100644 --- a/doc/src/fix_controller.txt +++ b/doc/src/fix_controller.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -180,9 +180,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a global vector with 3 values which can be accessed -by various "output commands"_Section_howto.html#howto_15. The values -can be accessed on any timestep, though they are only updated on -timesteps that are a multiple of {Nevery}. +by various "output commands"_Howto_output.html. The values can be +accessed on any timestep, though they are only updated on timesteps +that are a multiple of {Nevery}. The three values are the most recent updates made to the control variable by each of the 3 terms in the PID equation above. The first diff --git a/doc/src/fix_deform.txt b/doc/src/fix_deform.txt index c870c73bdc..e92d1e6b19 100644 --- a/doc/src/fix_deform.txt +++ b/doc/src/fix_deform.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -94,7 +94,7 @@ nvt/sllod"_fix_nvt_sllod.html and "compute temp/deform"_compute_temp_deform.html commands for more details. Note that simulation of a continuously extended system (extensional flow) can be modeled using the "USER-UEF -package"_Section_packages.html#USER-UEF and its "fix +package"_Packages_details.html#USER-UEF and its "fix commands"_fix_nh_uef.html. For the {x}, {y}, {z} parameters, the associated dimension cannot be @@ -550,10 +550,9 @@ command if you want to include lattice spacings in a variable formula. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -565,18 +564,17 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] This fix will restore the initial box settings from "binary restart files"_restart.html, which allows the fix to be properly continue deformation, when using the start/stop options of the "run"_run.html -command. None of the "fix_modify"_fix_modify.html options -are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. +command. None of the "fix_modify"_fix_modify.html options are +relevant to this fix. No global or per-atom quantities are stored by +this fix for access by various "output commands"_Howto_output.html. This fix can perform deformation over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_deposit.txt b/doc/src/fix_deposit.txt index 477c14ea89..277ca8777a 100644 --- a/doc/src/fix_deposit.txt +++ b/doc/src/fix_deposit.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -116,8 +116,8 @@ side = {in}. NOTE: LAMMPS checks that the specified region is wholly inside the simulation box. It can do this correctly for orthonormal simulation -boxes. However for "triclinic boxes"_Section_howto.html#howto_12, it -only tests against the larger orthonormal box that bounds the tilted +boxes. However for "triclinic boxes"_Howto_triclinic.html, it only +tests against the larger orthonormal box that bounds the tilted simulation box. If the specified region includes volume outside the tilted box, then an insertion will likely fail, leading to a "lost atoms" error. Thus for triclinic boxes you should insure the @@ -263,9 +263,9 @@ operation of the fix continues in an uninterrupted fashion. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_dpd_energy.txt b/doc/src/fix_dpd_energy.txt index 1c10d954d6..f539bc534e 100644 --- a/doc/src/fix_dpd_energy.txt +++ b/doc/src/fix_dpd_energy.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -50,10 +50,9 @@ examples/USER/dpd directory. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -65,8 +64,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_dpd_source.txt b/doc/src/fix_dpd_source.txt index b6decc657c..04af9a28a1 100644 --- a/doc/src/fix_dpd_source.txt +++ b/doc/src/fix_dpd_source.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -63,10 +63,10 @@ cuboid domain to apply the source flux to. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_drag.txt b/doc/src/fix_drag.txt index 235d3d38b5..92e68d13a4 100644 --- a/doc/src/fix_drag.txt +++ b/doc/src/fix_drag.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -47,9 +47,9 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global 3-vector of forces, which can be accessed -by various "output commands"_Section_howto.html#howto_15. This is the -total force on the group of atoms by the drag force. The vector -values calculated by this fix are "extensive". +by various "output commands"_Howto_output.html. This is the total +force on the group of atoms by the drag force. The vector values +calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_drude.txt b/doc/src/fix_drude.txt index faa354b314..80eb79201b 100644 --- a/doc/src/fix_drude.txt +++ b/doc/src/fix_drude.txt @@ -3,7 +3,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -25,10 +25,10 @@ fix 1 all drude C C N C N D D D :pre [Description:] Assign each atom type in the system to be one of 3 kinds of atoms -within the Drude polarization model. This fix is designed to be -used with the "thermalized Drude oscillator -model"_tutorial_drude.html. Polarizable models in LAMMPS -are described in "this Section"_Section_howto.html#howto_25. +within the Drude polarization model. This fix is designed to be used +with the "thermalized Drude oscillator model"_Howto_drude.html. +Polarizable models in LAMMPS are described on the "Howto +polarizable"_Howto_polarizable.html doc page. The three possible types can be designated with an integer (0,1,2) or capital letter (N,C,D): diff --git a/doc/src/fix_drude_transform.txt b/doc/src/fix_drude_transform.txt index 2e094d528c..8864cc4eb6 100644 --- a/doc/src/fix_drude_transform.txt +++ b/doc/src/fix_drude_transform.txt @@ -9,7 +9,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -34,8 +34,8 @@ Transform the coordinates of Drude oscillators from real to reduced and back for thermalizing the Drude oscillators as described in "(Lamoureux)"_#Lamoureux1 using a Nose-Hoover thermostat. This fix is designed to be used with the "thermalized Drude oscillator -model"_tutorial_drude.html. Polarizable models in LAMMPS are -described in "this Section"_Section_howto.html#howto_25. +model"_Howto_drude.html. Polarizable models in LAMMPS are described +on the "Howto polarizable"_Howto_polarizable.html doc page. Drude oscillators are a pair of atoms representing a single polarizable atom. Ideally, the mass of Drude particles would vanish diff --git a/doc/src/fix_dt_reset.txt b/doc/src/fix_dt_reset.txt index 7605395ca0..be4fbd255b 100644 --- a/doc/src/fix_dt_reset.txt +++ b/doc/src/fix_dt_reset.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -82,8 +82,8 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar stores -the last timestep on which the timestep was reset to a new value. +"output commands"_Howto_output.html. The scalar stores the last +timestep on which the timestep was reset to a new value. The scalar value calculated by this fix is "intensive". diff --git a/doc/src/fix_efield.txt b/doc/src/fix_efield.txt index 5d2b86fe4b..b5a43f68aa 100644 --- a/doc/src/fix_efield.txt +++ b/doc/src/fix_efield.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -134,11 +134,10 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix adding its forces. Default is the outermost level. This fix computes a global scalar and a global 3-vector of forces, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar is the potential -energy discussed above. The vector is the total force added to the -group of atoms. The scalar and vector values calculated by this fix -are "extensive". +which can be accessed by various "output commands"_Howto_output.html. +The scalar is the potential energy discussed above. The vector is the +total force added to the group of atoms. The scalar and vector values +calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_ehex.txt b/doc/src/fix_ehex.txt index 40752a811f..cfcc917d01 100644 --- a/doc/src/fix_ehex.txt +++ b/doc/src/fix_ehex.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_enforce2d.txt b/doc/src/fix_enforce2d.txt index 4bbf41d25d..2925e44bda 100644 --- a/doc/src/fix_enforce2d.txt +++ b/doc/src/fix_enforce2d.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -31,10 +31,9 @@ not move from their initial z coordinate. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -46,8 +45,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -56,9 +55,9 @@ more instructions on how to use the accelerated styles effectively. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. diff --git a/doc/src/fix_eos_cv.txt b/doc/src/fix_eos_cv.txt index 4c97304335..b94e2c64a9 100644 --- a/doc/src/fix_eos_cv.txt +++ b/doc/src/fix_eos_cv.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_eos_table.txt b/doc/src/fix_eos_table.txt index 42778d7978..743c51f415 100644 --- a/doc/src/fix_eos_table.txt +++ b/doc/src/fix_eos_table.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_eos_table_rx.txt b/doc/src/fix_eos_table_rx.txt index 0c87874347..f9deab61c8 100644 --- a/doc/src/fix_eos_table_rx.txt +++ b/doc/src/fix_eos_table_rx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -156,10 +156,9 @@ no 0.93 0.00 0.000 -1.76 :pre Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -171,8 +170,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_evaporate.txt b/doc/src/fix_evaporate.txt index ed6c6d0377..6237a137fd 100644 --- a/doc/src/fix_evaporate.txt +++ b/doc/src/fix_evaporate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -73,9 +73,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar, which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative number of deleted atoms. The scalar value calculated by -this fix is "intensive". +"output commands"_Howto_output.html. The scalar is the cumulative +number of deleted atoms. The scalar value calculated by this fix is +"intensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_external.txt b/doc/src/fix_external.txt index 30e34b4858..1dec226414 100644 --- a/doc/src/fix_external.txt +++ b/doc/src/fix_external.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -31,10 +31,10 @@ fix 1 all external pf/array 10 :pre [Description:] This fix allows external programs that are running LAMMPS through its -"library interface"_Section_howto.html#howto_19 to modify certain -LAMMPS properties on specific timesteps, similar to the way other -fixes do. The external driver can be a "C/C++ or Fortran -program"_Section_howto.html#howto_19 or a "Python script"_Python.html. +"library interface"_Howto_library.html to modify certain LAMMPS +properties on specific timesteps, similar to the way other fixes do. +The external driver can be a "C/C++ or Fortran +program"_Howto_library.html or a "Python script"_Python.html. :line @@ -136,9 +136,8 @@ external program to the system's virial as part of "thermodynamic output"_thermo_style.html. The default is {virial yes} This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -potential energy discussed above. The scalar stored by this fix -is "extensive". +"output commands"_Howto_output.html. The scalar is the potential +energy discussed above. The scalar stored by this fix is "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_filter_corotate.txt b/doc/src/fix_filter_corotate.txt index b782d285c7..d1e5e12f3e 100644 --- a/doc/src/fix_filter_corotate.txt +++ b/doc/src/fix_filter_corotate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -63,10 +63,9 @@ No information about these fixes is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to these fixes. No global or per-atom quantities are stored by these fixes for access by various "output -commands"_Section_howto.html#howto_15. No parameter of these fixes -can be used with the {start/stop} keywords of the "run"_run.html -command. These fixes are not invoked during "energy -minimization"_minimize.html. +commands"_Howto_output.html. No parameter of these fixes can be used +with the {start/stop} keywords of the "run"_run.html command. These +fixes are not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_flow_gauss.txt b/doc/src/fix_flow_gauss.txt index efa58ea65f..843c2a66a5 100644 --- a/doc/src/fix_flow_gauss.txt +++ b/doc/src/fix_flow_gauss.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -128,11 +128,11 @@ integrator the fix computes and adds the external acceleration. Default is the outermost level. This fix computes a global scalar and a global 3-vector of forces, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar is the negative of the -work done on the system, see above discussion. The vector is the total force -that this fix applied to the group of atoms on the current timestep. -The scalar and vector values calculated by this fix are "extensive". +which can be accessed by various "output commands"_Howto_output.html. +The scalar is the negative of the work done on the system, see above +discussion. The vector is the total force that this fix applied to +the group of atoms on the current timestep. The scalar and vector +values calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_freeze.txt b/doc/src/fix_freeze.txt index a63ee4cb32..76a9fd3b1a 100644 --- a/doc/src/fix_freeze.txt +++ b/doc/src/fix_freeze.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -31,12 +31,12 @@ using "fix setforce"_fix_setforce.html. :line -Styles with a suffix are functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, -depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -48,8 +48,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -60,10 +60,10 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global 3-vector of forces, which can be accessed -by various "output commands"_Section_howto.html#howto_15. This is the -total force on the group of atoms before the forces on individual -atoms are changed by the fix. The vector values calculated by this -fix are "extensive". +by various "output commands"_Howto_output.html. This is the total +force on the group of atoms before the forces on individual atoms are +changed by the fix. The vector values calculated by this fix are +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_gcmc.txt b/doc/src/fix_gcmc.txt index 191bc32b14..394690ea5d 100644 --- a/doc/src/fix_gcmc.txt +++ b/doc/src/fix_gcmc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -382,8 +382,8 @@ None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global vector of length 8, which can be accessed -by various "output commands"_Section_howto.html#howto_15. The vector -values are the following global cumulative quantities: +by various "output commands"_Howto_output.html. The vector values are +the following global cumulative quantities: 1 = translation attempts 2 = translation successes diff --git a/doc/src/fix_gld.txt b/doc/src/fix_gld.txt index 1425f62e13..1c5db6157d 100644 --- a/doc/src/fix_gld.txt +++ b/doc/src/fix_gld.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -126,7 +126,7 @@ sense, a restarted simulation should produce the same behavior. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. +access by various "output commands"_Howto_output.html. This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_gle.txt b/doc/src/fix_gle.txt index 6568060f0c..9fdc72bf9f 100644 --- a/doc/src/fix_gle.txt +++ b/doc/src/fix_gle.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -116,9 +116,9 @@ system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". [Restrictions:] diff --git a/doc/src/fix_gravity.txt b/doc/src/fix_gravity.txt index dae8ac5ed0..832c677f81 100644 --- a/doc/src/fix_gravity.txt +++ b/doc/src/fix_gravity.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -90,10 +90,9 @@ field. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -105,8 +104,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -125,11 +124,11 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. This scalar is the -gravitational potential energy of the particles in the defined field, -namely mass * (g dot x) for each particles, where x and mass are the -particles position and mass, and g is the gravitational field. The -scalar value calculated by this fix is "extensive". +"output commands"_Howto_output.html. This scalar is the gravitational +potential energy of the particles in the defined field, namely mass * +(g dot x) for each particles, where x and mass are the particles +position and mass, and g is the gravitational field. The scalar value +calculated by this fix is "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_grem.txt b/doc/src/fix_grem.txt index 661f68ed99..506e266505 100644 --- a/doc/src/fix_grem.txt +++ b/doc/src/fix_grem.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_halt.txt b/doc/src/fix_halt.txt index 08043eb5fb..ec117518d2 100644 --- a/doc/src/fix_halt.txt +++ b/doc/src/fix_halt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -133,10 +133,10 @@ files. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_heat.txt b/doc/src/fix_heat.txt index 23db87dac2..6db7592609 100644 --- a/doc/src/fix_heat.txt +++ b/doc/src/fix_heat.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -108,12 +108,11 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. This scalar is the -most recent value by which velocites were scaled. The scalar value -calculated by this fix is "intensive". If {eflux} is specified as -an atom-style variable, this fix computes the average value by which -the velocities were scaled for all of the atoms that had their -velocities scaled. +"output commands"_Howto_output.html. This scalar is the most recent +value by which velocites were scaled. The scalar value calculated by +this fix is "intensive". If {eflux} is specified as an atom-style +variable, this fix computes the average value by which the velocities +were scaled for all of the atoms that had their velocities scaled. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_imd.txt b/doc/src/fix_imd.txt index b275612819..8e21a1619b 100644 --- a/doc/src/fix_imd.txt +++ b/doc/src/fix_imd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -136,9 +136,9 @@ No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global scalar or vector or per-atom quantities are stored by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +commands"_Howto_output.html. No parameter of this fix can be used +with the {start/stop} keywords of the "run"_run.html command. This +fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_indent.txt b/doc/src/fix_indent.txt index c9a791ae4e..9931793c0b 100644 --- a/doc/src/fix_indent.txt +++ b/doc/src/fix_indent.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -180,8 +180,8 @@ integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar energy and a global 3-vector of forces (on the indenter), which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar and vector values -calculated by this fix are "extensive". +commands"_Howto_output.html. The scalar and vector values calculated +by this fix are "extensive". The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. Note that if you diff --git a/doc/src/fix_ipi.txt b/doc/src/fix_ipi.txt index 07e8025d77..eba30ef088 100644 --- a/doc/src/fix_ipi.txt +++ b/doc/src/fix_ipi.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_langevin.txt b/doc/src/fix_langevin.txt index 93c73f5a5d..4d7728cdba 100644 --- a/doc/src/fix_langevin.txt +++ b/doc/src/fix_langevin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -101,7 +101,7 @@ should not normally be used on atoms that also have their temperature controlled by another fix - e.g. by "fix nvt"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for +See the "Howto thermostat"_Howto_thermostat.html doc page for a discussion of different ways to compute temperature and perform thermostatting. @@ -264,10 +264,9 @@ generates an average temperature of 220 K, instead of 300 K. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -279,8 +278,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -306,10 +305,10 @@ output"_thermo_style.html. Note that use of this option requires setting the {tally} keyword to {yes}. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". Note that calculation of this -quantity requires setting the {tally} keyword to {yes}. +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". Note that calculation of this quantity requires +setting the {tally} keyword to {yes}. This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_langevin_drude.txt b/doc/src/fix_langevin_drude.txt index c85ff24c96..19a3f87ffc 100644 --- a/doc/src/fix_langevin_drude.txt +++ b/doc/src/fix_langevin_drude.txt @@ -9,7 +9,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -44,8 +44,9 @@ fix 1 all langevin/drude 298.15 100.0 19377 5.0 10.0 83451 zero yes :pre Apply two Langevin thermostats as described in "(Jiang)"_#Jiang1 for thermalizing the reduced degrees of freedom of Drude oscillators. This link describes how to use the "thermalized Drude oscillator -model"_tutorial_drude.html in LAMMPS and polarizable models in LAMMPS -are discussed in "this Section"_Section_howto.html#howto_25. +model"_Howto_drude.html in LAMMPS and polarizable models in LAMMPS +are discussed on the "Howto polarizable"_Howto_polarizable.html doc +page. Drude oscillators are a way to simulate polarizables atoms, by splitting them into a core and a Drude particle bound by a harmonic @@ -99,8 +100,8 @@ Likewise, this fix should not normally be used on atoms that also have their temperature controlled by another fix - e.g. by "fix nvt"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostating. :line diff --git a/doc/src/fix_langevin_eff.txt b/doc/src/fix_langevin_eff.txt index 4a50bfae54..cf42f9c036 100644 --- a/doc/src/fix_langevin_eff.txt +++ b/doc/src/fix_langevin_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -79,10 +79,10 @@ output"_thermo_style.html. Note that use of this option requires setting the {tally} keyword to {yes}. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". Note that calculation of this -quantity requires setting the {tally} keyword to {yes}. +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". Note that calculation of this quantity requires +setting the {tally} keyword to {yes}. This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt index b089cd7f58..1b1936376d 100644 --- a/doc/src/fix_langevin_spin.txt +++ b/doc/src/fix_langevin_spin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_latte.txt b/doc/src/fix_latte.txt index 4edd610546..9bc589520b 100644 --- a/doc/src/fix_latte.txt +++ b/doc/src/fix_latte.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -118,9 +118,9 @@ of "thermodynamic output"_thermo_style.html. The default is {virial yes} This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -potential energy discussed above. The scalar value calculated by this -fix is "extensive". +"output commands"_Howto_output.html. The scalar is the potential +energy discussed above. The scalar value calculated by this fix is +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_lb_fluid.txt b/doc/src/fix_lb_fluid.txt index fc6203b0f2..5347f0147f 100644 --- a/doc/src/fix_lb_fluid.txt +++ b/doc/src/fix_lb_fluid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -299,9 +299,9 @@ is written to the main LAMMPS "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_lb_momentum.txt b/doc/src/fix_lb_momentum.txt index 97965e870d..a58c5d257e 100644 --- a/doc/src/fix_lb_momentum.txt +++ b/doc/src/fix_lb_momentum.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -49,10 +49,10 @@ dimension. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can be -used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_lb_pc.txt b/doc/src/fix_lb_pc.txt index d2b6aafaab..bd121b7813 100644 --- a/doc/src/fix_lb_pc.txt +++ b/doc/src/fix_lb_pc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -34,10 +34,10 @@ algorithm if the force coupling constant has been set by default. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can be -used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_lb_rigid_pc_sphere.txt b/doc/src/fix_lb_rigid_pc_sphere.txt index 468ebe1ff5..bc8fa2ea25 100644 --- a/doc/src/fix_lb_rigid_pc_sphere.txt +++ b/doc/src/fix_lb_rigid_pc_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -80,12 +80,12 @@ assumes the constituent atoms are point particles); see No information about the {rigid} and {rigid/nve} fixes are written to "binary restart files"_restart.html. -Similar to the "fix rigid"_fix_rigid.html command: The rigid -fix computes a global scalar which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar value calculated by -these fixes is "intensive". The scalar is the current temperature of -the collection of rigid bodies. This is averaged over all rigid -bodies and their translational and rotational degrees of freedom. The +Similar to the "fix rigid"_fix_rigid.html command: The rigid fix +computes a global scalar which can be accessed by various "output +commands"_Howto_output.html. The scalar value calculated by these +fixes is "intensive". The scalar is the current temperature of the +collection of rigid bodies. This is averaged over all rigid bodies +and their translational and rotational degrees of freedom. The translational energy of a rigid body is 1/2 m v^2, where m = total mass of the body and v = the velocity of its center of mass. The rotational energy of a rigid body is 1/2 I w^2, where I = the moment @@ -94,17 +94,17 @@ of freedom constrained by the {force} and {torque} keywords are removed from this calculation. All of these fixes compute a global array of values which can be -accessed by various "output commands"_Section_howto.html#howto_15. -The number of rows in the array is equal to the number of rigid -bodies. The number of columns is 15. Thus for each rigid body, 15 -values are stored: the xyz coords of the center of mass (COM), the xyz -components of the COM velocity, the xyz components of the force acting -on the COM, the xyz components of the torque acting on the COM, and -the xyz image flags of the COM, which have the same meaning as image -flags for atom positions (see the "dump" command). The force and -torque values in the array are not affected by the {force} and -{torque} keywords in the fix rigid command; they reflect values before -any changes are made by those keywords. +accessed by various "output commands"_Howto_output.html. The number +of rows in the array is equal to the number of rigid bodies. The +number of columns is 15. Thus for each rigid body, 15 values are +stored: the xyz coords of the center of mass (COM), the xyz components +of the COM velocity, the xyz components of the force acting on the +COM, the xyz components of the torque acting on the COM, and the xyz +image flags of the COM, which have the same meaning as image flags for +atom positions (see the "dump" command). The force and torque values +in the array are not affected by the {force} and {torque} keywords in +the fix rigid command; they reflect values before any changes are made +by those keywords. The ordering of the rigid bodies (by row in the array) is as follows. For the {single} keyword there is just one rigid body. For the diff --git a/doc/src/fix_lb_viscous.txt b/doc/src/fix_lb_viscous.txt index fcc69d2b43..7bbdd204e3 100644 --- a/doc/src/fix_lb_viscous.txt +++ b/doc/src/fix_lb_viscous.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -57,9 +57,9 @@ As described in the "fix viscous"_fix_viscous.html documentation: "No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. This fix should only diff --git a/doc/src/fix_lineforce.txt b/doc/src/fix_lineforce.txt index 65672fc5a5..3114ed6250 100644 --- a/doc/src/fix_lineforce.txt +++ b/doc/src/fix_lineforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -35,9 +35,9 @@ it should continue to move along the line thereafter. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. diff --git a/doc/src/fix_manifoldforce.txt b/doc/src/fix_manifoldforce.txt index 5fc25167a7..aa32a875bf 100644 --- a/doc/src/fix_manifoldforce.txt +++ b/doc/src/fix_manifoldforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -36,10 +36,10 @@ I have found that only {hftn} and {quickmin} with a very small time step perform No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is invoked during "energy +minimization"_minimize.html. :line diff --git a/doc/src/fix_meso.txt b/doc/src/fix_meso.txt index 85f5838dd2..8f5ad29929 100644 --- a/doc/src/fix_meso.txt +++ b/doc/src/fix_meso.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -34,10 +34,10 @@ LAMMPS. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_meso_stationary.txt b/doc/src/fix_meso_stationary.txt index 5b83573bc8..38d26b34d6 100644 --- a/doc/src/fix_meso_stationary.txt +++ b/doc/src/fix_meso_stationary.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -35,10 +35,10 @@ LAMMPS. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_modify.txt b/doc/src/fix_modify.txt index 308bba1ac3..ddb5f9a4cd 100644 --- a/doc/src/fix_modify.txt +++ b/doc/src/fix_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_momentum.txt b/doc/src/fix_momentum.txt index bcf4465fb8..f7fe35be2a 100644 --- a/doc/src/fix_momentum.txt +++ b/doc/src/fix_momentum.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -61,10 +61,9 @@ initial velocities with zero aggregate linear and/or angular momentum. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -76,18 +75,18 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_move.txt b/doc/src/fix_move.txt index 7cb40ad132..08f38d0ed6 100644 --- a/doc/src/fix_move.txt +++ b/doc/src/fix_move.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -203,10 +203,9 @@ None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a per-atom array which can be accessed by various -"output commands"_Section_howto.html#howto_15. The number of columns -for each atom is 3, and the columns store the original unwrapped x,y,z -coords of each atom. The per-atom values can be accessed on any -timestep. +"output commands"_Howto_output.html. The number of columns for each +atom is 3, and the columns store the original unwrapped x,y,z coords +of each atom. The per-atom values can be accessed on any timestep. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_mscg.txt b/doc/src/fix_mscg.txt index 7d16967955..aadc3caf5a 100644 --- a/doc/src/fix_mscg.txt +++ b/doc/src/fix_mscg.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_msst.txt b/doc/src/fix_msst.txt index 310692669a..91ffbbb0fa 100644 --- a/doc/src/fix_msst.txt +++ b/doc/src/fix_msst.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -156,8 +156,8 @@ thermo_style custom step temp ke pe lz pzz etotal v_dhug v_dray v_lgr_vel v_ These fixes compute a global scalar and a global vector of 4 quantities, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar values calculated -by this fix are "extensive"; the vector values are "intensive". +commands"_Howto_output.html. The scalar values calculated by this fix +are "extensive"; the vector values are "intensive". [Restrictions:] diff --git a/doc/src/fix_mvv_dpd.txt b/doc/src/fix_mvv_dpd.txt index fb3c6fe888..1e9bf631fd 100644 --- a/doc/src/fix_mvv_dpd.txt +++ b/doc/src/fix_mvv_dpd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -69,10 +69,10 @@ addition to position and velocity, and must be used with the No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_neb.txt b/doc/src/fix_neb.txt index 5d18c39d99..5341d6999c 100644 --- a/doc/src/fix_neb.txt +++ b/doc/src/fix_neb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -43,9 +43,9 @@ Add nudging forces to atoms in the group for a multi-replica simulation run via the "neb"_neb.html command to perform a nudged elastic band (NEB) calculation for finding the transition state. Hi-level explanations of NEB are given with the "neb"_neb.html command -and in "Section_howto 5"_Section_howto.html#howto_5 of the manual. -The fix neb command must be used with the "neb" command and defines -how inter-replica nudging forces are computed. A NEB calculation is +and on the "Howto replica"_Howto_replica.html doc page. The fix neb +command must be used with the "neb" command and defines how +inter-replica nudging forces are computed. A NEB calculation is divided in two stages. In the first stage n replicas are relaxed toward a MEP until convergence. In the second stage, the climbing image scheme (see "(Henkelman2)"_#Henkelman2) is enabled, so that the @@ -192,9 +192,9 @@ target energy. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, as invoked by the "minimize"_minimize.html command via the diff --git a/doc/src/fix_nh.txt b/doc/src/fix_nh.txt index 41d0e6438f..f6b155e2db 100644 --- a/doc/src/fix_nh.txt +++ b/doc/src/fix_nh.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -386,9 +386,10 @@ have their temperature controlled by another fix - e.g. by "fix langevin"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform -thermostatting and barostatting. +See the "Howto thermostat"_Howto_thermostat.html and "Howto +barostat"_Howto_barostat.html doc pages for a discussion of different +ways to compute temperature and perform thermostatting and +barostatting. :line @@ -484,10 +485,9 @@ the various ways to do this. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -499,8 +499,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -538,9 +538,9 @@ and barostatting to the system's potential energy as part of "thermodynamic output"_thermo_style.html. These fixes compute a global scalar and a global vector of quantities, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar value calculated by -these fixes is "extensive"; the vector values are "intensive". +which can be accessed by various "output commands"_Howto_output.html. +The scalar value calculated by these fixes is "extensive"; the vector +values are "intensive". The scalar is the cumulative energy change due to the fix. diff --git a/doc/src/fix_nh_eff.txt b/doc/src/fix_nh_eff.txt index 1731f1f331..afb319bfa5 100644 --- a/doc/src/fix_nh_eff.txt +++ b/doc/src/fix_nh_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nh_uef.txt b/doc/src/fix_nh_uef.txt index bde1818371..0e73c57e08 100644 --- a/doc/src/fix_nh_uef.txt +++ b/doc/src/fix_nh_uef.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nph_asphere.txt b/doc/src/fix_nph_asphere.txt index 8c35b6a1a7..6bfd9d3fe2 100644 --- a/doc/src/fix_nph_asphere.txt +++ b/doc/src/fix_nph_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -81,10 +81,9 @@ It also means that changing attributes of {thermo_temp} or Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -96,8 +95,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nph_body.txt b/doc/src/fix_nph_body.txt index 1e590f1cb3..377e1980eb 100644 --- a/doc/src/fix_nph_body.txt +++ b/doc/src/fix_nph_body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -80,10 +80,9 @@ It also means that changing attributes of {thermo_temp} or Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -95,8 +94,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nph_sphere.txt b/doc/src/fix_nph_sphere.txt index 62b45edfd7..8b7639c4c6 100644 --- a/doc/src/fix_nph_sphere.txt +++ b/doc/src/fix_nph_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -90,10 +90,9 @@ It also means that changing attributes of {thermo_temp} or Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -105,8 +104,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nphug.txt b/doc/src/fix_nphug.txt index 292e46f94a..0bd5153152 100644 --- a/doc/src/fix_nphug.txt +++ b/doc/src/fix_nphug.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -140,10 +140,9 @@ It also means that changing attributes of {thermo_temp} or Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -155,8 +154,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -193,9 +192,9 @@ included in the definition of internal energy E when calculating the value of Delta in the above equation. These fixes compute a global scalar and a global vector of quantities, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar value calculated by -these fixes is "extensive"; the vector values are "intensive". +which can be accessed by various "output commands"_Howto_output.html. +The scalar value calculated by these fixes is "extensive"; the vector +values are "intensive". The scalar is the cumulative energy change due to the fix. diff --git a/doc/src/fix_npt_asphere.txt b/doc/src/fix_npt_asphere.txt index 5f3979e36e..9c95a80d33 100644 --- a/doc/src/fix_npt_asphere.txt +++ b/doc/src/fix_npt_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -105,10 +105,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -120,8 +119,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_npt_body.txt b/doc/src/fix_npt_body.txt index d89bf19db2..0d2b797299 100644 --- a/doc/src/fix_npt_body.txt +++ b/doc/src/fix_npt_body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -104,10 +104,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -119,8 +118,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_npt_sphere.txt b/doc/src/fix_npt_sphere.txt index c4cf2cb08d..dcb25d1c73 100644 --- a/doc/src/fix_npt_sphere.txt +++ b/doc/src/fix_npt_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -115,10 +115,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -130,8 +129,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nve.txt b/doc/src/fix_nve.txt index c04c17858e..e446b27397 100644 --- a/doc/src/fix_nve.txt +++ b/doc/src/fix_nve.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -34,10 +34,9 @@ ensemble. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -49,8 +48,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -59,10 +58,10 @@ more instructions on how to use the accelerated styles effectively. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_nve_asphere.txt b/doc/src/fix_nve_asphere.txt index 1f31fb9679..b7fb3e922c 100644 --- a/doc/src/fix_nve_asphere.txt +++ b/doc/src/fix_nve_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -35,20 +35,19 @@ assumes point particles and only updates their position and velocity. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. :line Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -60,8 +59,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_nve_asphere_noforce.txt b/doc/src/fix_nve_asphere_noforce.txt index 5f1b271546..e57417bda5 100644 --- a/doc/src/fix_nve_asphere_noforce.txt +++ b/doc/src/fix_nve_asphere_noforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -38,10 +38,10 @@ Dynamics, since the velocity and angular momentum are updated by the No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nve_body.txt b/doc/src/fix_nve_body.txt index 604b5391cd..d072bfa161 100644 --- a/doc/src/fix_nve_body.txt +++ b/doc/src/fix_nve_body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -24,9 +24,9 @@ fix 1 all nve/body :pre Perform constant NVE integration to update position, velocity, orientation, and angular velocity for body particles in the group each timestep. V is volume; E is energy. This creates a system trajectory -consistent with the microcanonical ensemble. See "Section -6.14"_Section_howto.html#howto_14 of the manual and the "body"_body.html -doc page for more details on using body particles. +consistent with the microcanonical ensemble. See the "Howto +body"_Howto_body.html doc page for more details on using body +particles. This fix differs from the "fix nve"_fix_nve.html command, which assumes point particles and only updates their position and velocity. @@ -36,10 +36,10 @@ assumes point particles and only updates their position and velocity. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nve_dot.txt b/doc/src/fix_nve_dot.txt index 0e0c8f8ecf..1041a248d8 100644 --- a/doc/src/fix_nve_dot.txt +++ b/doc/src/fix_nve_dot.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_dotc_langevin.txt b/doc/src/fix_nve_dotc_langevin.txt index 93d875bca5..68c1b42328 100644 --- a/doc/src/fix_nve_dotc_langevin.txt +++ b/doc/src/fix_nve_dotc_langevin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_eff.txt b/doc/src/fix_nve_eff.txt index 156f184dac..7343ddc429 100644 --- a/doc/src/fix_nve_eff.txt +++ b/doc/src/fix_nve_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -35,10 +35,10 @@ of electrons are also updated. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nve_limit.txt b/doc/src/fix_nve_limit.txt index 2ecec83e9c..8c8c66a0da 100644 --- a/doc/src/fix_nve_limit.txt +++ b/doc/src/fix_nve_limit.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -63,14 +63,14 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -count of how many updates of atom's velocity/position were limited by -the maximum distance criterion. This should be roughly the number of -atoms so affected, except that updates occur at both the beginning and -end of a timestep in a velocity Verlet timestepping algorithm. This -is a cumulative quantity for the current run, but is re-initialized to -zero each time a run is performed. The scalar value calculated by -this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the count of how +many updates of atom's velocity/position were limited by the maximum +distance criterion. This should be roughly the number of atoms so +affected, except that updates occur at both the beginning and end of a +timestep in a velocity Verlet timestepping algorithm. This is a +cumulative quantity for the current run, but is re-initialized to zero +each time a run is performed. The scalar value calculated by this fix +is "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_nve_line.txt b/doc/src/fix_nve_line.txt index ac5206aa5c..dd5101489b 100644 --- a/doc/src/fix_nve_line.txt +++ b/doc/src/fix_nve_line.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -24,9 +24,9 @@ fix 1 all nve/line :pre Perform constant NVE integration to update position, velocity, orientation, and angular velocity for line segment particles in the group each timestep. V is volume; E is energy. This creates a system -trajectory consistent with the microcanonical ensemble. See -"Section 6.14"_Section_howto.html#howto_14 of the manual for an -overview of using line segment particles. +trajectory consistent with the microcanonical ensemble. See "Howto +spherical"_Howto_spherical.html doc page for an overview of using line +segment particles. This fix differs from the "fix nve"_fix_nve.html command, which assumes point particles and only updates their position and velocity. @@ -36,10 +36,10 @@ assumes point particles and only updates their position and velocity. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nve_manifold_rattle.txt b/doc/src/fix_nve_manifold_rattle.txt index e032a7e1cc..b333d093fb 100644 --- a/doc/src/fix_nve_manifold_rattle.txt +++ b/doc/src/fix_nve_manifold_rattle.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -40,7 +40,7 @@ the dynamics of particles constrained to curved surfaces can be studied. If combined with "fix langevin"_fix_langevin.html, this generates Brownian motion of particles constrained to a curved surface. For a list of currently supported manifolds and their -parameters, see "manifolds"_manifolds.html. +parameters, see the "Howto manifold"_Howto_manifold.html doc page. Note that the particles must initially be close to the manifold in question. If not, RATTLE will not be able to iterate until the @@ -68,10 +68,10 @@ conserved. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. :line diff --git a/doc/src/fix_nve_noforce.txt b/doc/src/fix_nve_noforce.txt index a0dbcc80f1..da8d16bbb7 100644 --- a/doc/src/fix_nve_noforce.txt +++ b/doc/src/fix_nve_noforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -40,10 +40,10 @@ fcm() group function to compute the total force on the group of atoms. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_nve_sphere.txt b/doc/src/fix_nve_sphere.txt index 21dc6cba8a..6e259bdb8e 100644 --- a/doc/src/fix_nve_sphere.txt +++ b/doc/src/fix_nve_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -65,10 +65,9 @@ moment of inertia, as used in the time integration. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -80,8 +79,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -90,10 +89,10 @@ more instructions on how to use the accelerated styles effectively. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nve_spin.txt b/doc/src/fix_nve_spin.txt index f4b38c270b..e31185bc88 100644 --- a/doc/src/fix_nve_spin.txt +++ b/doc/src/fix_nve_spin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nve_tri.txt b/doc/src/fix_nve_tri.txt index cee27e2fa4..ebdda19e36 100644 --- a/doc/src/fix_nve_tri.txt +++ b/doc/src/fix_nve_tri.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -23,10 +23,10 @@ fix 1 all nve/tri :pre Perform constant NVE integration to update position, velocity, orientation, and angular momentum for triangular particles in the -group each timestep. V is volume; E is energy. This creates a -system trajectory consistent with the microcanonical ensemble. See -"Section 6.14"_Section_howto.html#howto_14 of the manual for an -overview of using triangular particles. +group each timestep. V is volume; E is energy. This creates a system +trajectory consistent with the microcanonical ensemble. See the +"Howto spherical"_Howto_spherical.html doc page for an overview of +using triangular particles. This fix differs from the "fix nve"_fix_nve.html command, which assumes point particles and only updates their position and velocity. @@ -36,10 +36,10 @@ assumes point particles and only updates their position and velocity. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nvk.txt b/doc/src/fix_nvk.txt index 49fd8217ab..e3189f8e8a 100644 --- a/doc/src/fix_nvk.txt +++ b/doc/src/fix_nvk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -42,10 +42,10 @@ energy prior to this fix. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_nvt_asphere.txt b/doc/src/fix_nvt_asphere.txt index 21b900f16a..7b97637175 100644 --- a/doc/src/fix_nvt_asphere.txt +++ b/doc/src/fix_nvt_asphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -86,10 +86,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -101,8 +100,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nvt_body.txt b/doc/src/fix_nvt_body.txt index 6a5e09ba7f..4493a89277 100644 --- a/doc/src/fix_nvt_body.txt +++ b/doc/src/fix_nvt_body.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -85,10 +85,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -100,8 +99,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nvt_manifold_rattle.txt b/doc/src/fix_nvt_manifold_rattle.txt index a620648a46..1b4ad79166 100644 --- a/doc/src/fix_nvt_manifold_rattle.txt +++ b/doc/src/fix_nvt_manifold_rattle.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -37,9 +37,13 @@ fix 1 all nvt/manifold/rattle 1e-4 10 cylinder 3.0 temp 1.0 1.0 10.0 [Description:] -This fix combines the RATTLE-based "(Andersen)"_#Andersen2 time integrator of "fix nve/manifold/rattle"_fix_nve_manifold_rattle.html "(Paquay)"_#Paquay3 with a Nose-Hoover-chain thermostat to sample the -canonical ensemble of particles constrained to a curved surface (manifold). This sampling does suffer from discretization bias of O(dt). -For a list of currently supported manifolds and their parameters, see "manifolds"_manifolds.html +This fix combines the RATTLE-based "(Andersen)"_#Andersen2 time +integrator of "fix nve/manifold/rattle"_fix_nve_manifold_rattle.html +"(Paquay)"_#Paquay3 with a Nose-Hoover-chain thermostat to sample the +canonical ensemble of particles constrained to a curved surface +(manifold). This sampling does suffer from discretization bias of +O(dt). For a list of currently supported manifolds and their +parameters, see the "Howto manifold"_Howto_manifold.html doc page. :line @@ -48,10 +52,10 @@ For a list of currently supported manifolds and their parameters, see "manifolds No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. :line diff --git a/doc/src/fix_nvt_sllod.txt b/doc/src/fix_nvt_sllod.txt index 392dbc281c..9eb5065369 100644 --- a/doc/src/fix_nvt_sllod.txt +++ b/doc/src/fix_nvt_sllod.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -109,10 +109,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -124,8 +123,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_nvt_sllod_eff.txt b/doc/src/fix_nvt_sllod_eff.txt index 408eb1da01..0200d5cb00 100644 --- a/doc/src/fix_nvt_sllod_eff.txt +++ b/doc/src/fix_nvt_sllod_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_nvt_sphere.txt b/doc/src/fix_nvt_sphere.txt index ecf0922b79..a87e4abe67 100644 --- a/doc/src/fix_nvt_sphere.txt +++ b/doc/src/fix_nvt_sphere.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -96,10 +96,9 @@ thermal degrees of freedom, and the bias is added back in. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -111,8 +110,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restart, fix_modify, output, run start/stop, minimize info:] diff --git a/doc/src/fix_oneway.txt b/doc/src/fix_oneway.txt index 2d85c581eb..433ceb50f2 100644 --- a/doc/src/fix_oneway.txt +++ b/doc/src/fix_oneway.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -43,10 +43,10 @@ membrane, or as an implementation of Maxwell's demon. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_orient.txt b/doc/src/fix_orient.txt index 20ff94866e..7552bea8c5 100644 --- a/doc/src/fix_orient.txt +++ b/doc/src/fix_orient.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -135,14 +135,14 @@ fixes. This allows to set at which level of the "r-RESPA"_run_style.html integrator a fix is adding its forces. Default is the outermost level. This fix calculates a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -potential energy change due to this fix. The scalar value calculated -by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the potential +energy change due to this fix. The scalar value calculated by this +fix is "extensive". This fix also calculates a per-atom array which can be accessed by -various "output commands"_Section_howto.html#howto_15. The array -stores the order parameter Xi and normalized order parameter (0 to 1) -for each atom. The per-atom values can be accessed on any timestep. +various "output commands"_Howto_output.html. The array stores the +order parameter Xi and normalized order parameter (0 to 1) for each +atom. The per-atom values can be accessed on any timestep. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_phonon.txt b/doc/src/fix_phonon.txt index aad6c2bfaa..30e5864e3d 100644 --- a/doc/src/fix_phonon.txt +++ b/doc/src/fix_phonon.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -150,7 +150,7 @@ fix. You can use it to change the temperature compute from thermo_temp to the one that reflects the true temperature of atoms in the group. No global scalar or vector or per-atom quantities are stored by this -fix for access by various "output commands"_Section_howto.html#howto_15. +fix for access by various "output commands"_Howto_output.html. Instead, this fix outputs its initialization information (including mapping information) and the calculated dynamical matrices to the file diff --git a/doc/src/fix_pimd.txt b/doc/src/fix_pimd.txt index 38022e4c7d..b61b3f3065 100644 --- a/doc/src/fix_pimd.txt +++ b/doc/src/fix_pimd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -103,14 +103,13 @@ is appropriate for most situations. The PIMD algorithm in LAMMPS is implemented as a hyper-parallel scheme as described in "(Calhoun)"_#Calhoun. In LAMMPS this is done by using -"multi-replica feature"_Section_howto.html#howto_5 in LAMMPS, where -each quasi-particle system is stored and simulated on a separate -partition of processors. The following diagram illustrates this -approach. The original system with 2 ring polymers is shown in red. -Since each ring has 4 quasi-beads (imaginary time slices), there are 4 -replicas of the system, each running on one of the 4 partitions of -processors. Each replica (shown in green) owns one quasi-bead in each -ring. +"multi-replica feature"_Howto_replica.html in LAMMPS, where each +quasi-particle system is stored and simulated on a separate partition +of processors. The following diagram illustrates this approach. The +original system with 2 ring polymers is shown in red. Since each ring +has 4 quasi-beads (imaginary time slices), there are 4 replicas of the +system, each running on one of the 4 partitions of processors. Each +replica (shown in green) owns one quasi-bead in each ring. :c,image(JPG/pimd.jpg) diff --git a/doc/src/fix_planeforce.txt b/doc/src/fix_planeforce.txt index 67956c8b6d..ffe1952e31 100644 --- a/doc/src/fix_planeforce.txt +++ b/doc/src/fix_planeforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -35,9 +35,9 @@ should continue to move in the plane thereafter. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The forces due to this fix are imposed during an energy minimization, invoked by the "minimize"_minimize.html command. diff --git a/doc/src/fix_poems.txt b/doc/src/fix_poems.txt index 03abc058b8..1a79c2a048 100644 --- a/doc/src/fix_poems.txt +++ b/doc/src/fix_poems.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -114,9 +114,9 @@ early or late in a timestep, i.e. at the post-force stage or at the final-integrate stage, respectively. No global or per-atom quantities are stored by this fix for access by -various "output commands"_Section_howto.html#howto_15. No parameter -of this fix can be used with the {start/stop} keywords of the -"run"_run.html command. This fix is not invoked during "energy +various "output commands"_Howto_output.html. No parameter of this fix +can be used with the {start/stop} keywords of the "run"_run.html +command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_pour.txt b/doc/src/fix_pour.txt index 54f78287e0..e58d8ebc3a 100644 --- a/doc/src/fix_pour.txt +++ b/doc/src/fix_pour.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -237,9 +237,9 @@ appropriately. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_precession_spin.txt b/doc/src/fix_precession_spin.txt index 4133d7dd57..fafe78448b 100644 --- a/doc/src/fix_precession_spin.txt +++ b/doc/src/fix_precession_spin.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -67,8 +67,8 @@ to add this magnetic potential energy to the potential energy of the system, fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 fix_modify 1 energy yes :pre -This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. +This fix computes a global scalar which can be accessed by various +"output commands"_Howto_output.html. No information about this fix is written to "binary restart files"_restart.html. diff --git a/doc/src/fix_press_berendsen.txt b/doc/src/fix_press_berendsen.txt index 9c9da8ec7b..7f47a29ba3 100644 --- a/doc/src/fix_press_berendsen.txt +++ b/doc/src/fix_press_berendsen.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -58,9 +58,8 @@ to control the temperature, such as "fix nvt"_fix_nh.html or "fix langevin"_fix_langevin.html or "fix temp/berendsen"_fix_temp_berendsen.html. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform -thermostatting and barostatting. +See the "Howto baroostat"_Howto_barostat.html doc page for a +discussion of different ways to perform barostatting. :line @@ -196,7 +195,7 @@ pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms. No global or per-atom quantities are stored by this fix for access by -various "output commands"_Section_howto.html#howto_15. +various "output commands"_Howto_output.html. This fix can ramp its target pressure over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_print.txt b/doc/src/fix_print.txt index cf3b542833..d23c1103d3 100644 --- a/doc/src/fix_print.txt +++ b/doc/src/fix_print.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -73,10 +73,10 @@ where ID is replaced with the fix-ID. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_property_atom.txt b/doc/src/fix_property_atom.txt index 95fc2c424d..136ed6c15e 100644 --- a/doc/src/fix_property_atom.txt +++ b/doc/src/fix_property_atom.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -200,18 +200,17 @@ added classes. :line -:link(isotopes) -Example for using per-atom masses with TIP4P water to study isotope -effects. When setting up simulations with the "TIP4P pair -styles"_Section_howto.html#howto_8 for water, you have to provide -exactly one atom type each to identify the water oxygen and hydrogen +:link(isotopes) Example for using per-atom masses with TIP4P water to +study isotope effects. When setting up simulations with the "TIP4P +pair styles"_Howto_tip4p.html for water, you have to provide exactly +one atom type each to identify the water oxygen and hydrogen atoms. Since the atom mass is normally tied to the atom type, this makes it impossible to study multiple isotopes in the same simulation. With {fix property/atom rmass} however, the per-type masses are replaced by per-atom masses. Asumming you have a working input deck -for regular TIP4P water, where water oxygen is atom type 1 and -water hydrogen is atom type 2, the following lines of input script -convert this to using per-atom masses: +for regular TIP4P water, where water oxygen is atom type 1 and water +hydrogen is atom type 2, the following lines of input script convert +this to using per-atom masses: fix Isotopes all property/atom rmass ghost yes set type 1 mass 15.9994 @@ -247,12 +246,12 @@ command for info on how to re-specify a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion. -None of the "fix_modify"_fix_modify.html options -are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +None of the "fix_modify"_fix_modify.html options are relevant to this +fix. No global or per-atom quantities are stored by this fix for +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] none diff --git a/doc/src/fix_python_invoke.txt b/doc/src/fix_python_invoke.txt index 787940d9eb..5e0c0369a5 100644 --- a/doc/src/fix_python_invoke.txt +++ b/doc/src/fix_python_invoke.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_python_move.txt b/doc/src/fix_python_move.txt index f10f607a9b..a4e0eb3937 100644 --- a/doc/src/fix_python_move.txt +++ b/doc/src/fix_python_move.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -83,10 +83,10 @@ Examples for how to do this are in the {examples/python} folder. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_qbmsst.txt b/doc/src/fix_qbmsst.txt index 2c116fb0f8..e96bd97f45 100644 --- a/doc/src/fix_qbmsst.txt +++ b/doc/src/fix_qbmsst.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -179,10 +179,10 @@ thermo_style custom step temp ke pe lz pzz etotal v_dhug v_dray v_lgr_vel v_ The global scalar under the entry f_fix_id is the quantity of thermo energy as an extra part of etot. This global scalar and the vector of 5 quantities can be accessed by various "output -commands"_Section_howto.html#howto_15. It is worth noting that the -temp keyword under the "thermo_style"_thermo_style.html command print -the instantaneous classical temperature Tcl as -described in the command "fix qtb"_fix_qtb.html. +commands"_Howto_output.html. It is worth noting that the temp keyword +under the "thermo_style"_thermo_style.html command print the +instantaneous classical temperature Tcl as described +in the command "fix qtb"_fix_qtb.html. :line diff --git a/doc/src/fix_qeq.txt b/doc/src/fix_qeq.txt index 194361e990..27fb613ef9 100644 --- a/doc/src/fix_qeq.txt +++ b/doc/src/fix_qeq.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -179,9 +179,8 @@ parameters. See the examples/qeq directory for some examples. No information about these fixes is written to "binary restart files"_restart.html. No global scalar or vector or per-atom quantities are stored by these fixes for access by various "output -commands"_Section_howto.html#howto_15. No parameter of these fixes -can be used with the {start/stop} keywords of the "run"_run.html -command. +commands"_Howto_output.html. No parameter of these fixes can be used +with the {start/stop} keywords of the "run"_run.html command. Thexe fixes are invoked during "energy minimization"_minimize.html. diff --git a/doc/src/fix_qeq_comb.txt b/doc/src/fix_qeq_comb.txt index 7f82404127..99e86df030 100644 --- a/doc/src/fix_qeq_comb.txt +++ b/doc/src/fix_qeq_comb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -62,10 +62,9 @@ equilibration calculation is written to the specified file. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -77,8 +76,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -93,9 +92,9 @@ integrator the fix is performing charge equilibration. Default is the outermost level. This fix produces a per-atom vector which can be accessed by various -"output commands"_Section_howto.html#howto_15. The vector stores the -gradient of the charge on each atom. The per-atom values be accessed -on any timestep. +"output commands"_Howto_output.html. The vector stores the gradient +of the charge on each atom. The per-atom values be accessed on any +timestep. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_qeq_reax.txt b/doc/src/fix_qeq_reax.txt index 18450c7cd5..cf16daf847 100644 --- a/doc/src/fix_qeq_reax.txt +++ b/doc/src/fix_qeq_reax.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -70,8 +70,8 @@ the {qeq/reax/omp} style. Otherwise they are processed separately. No information about this fix is written to "binary restart files"_restart.html. No global scalar or vector or per-atom quantities are stored by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +commands"_Howto_output.html. No parameter of this fix can be used +with the {start/stop} keywords of the "run"_run.html command. This fix is invoked during "energy minimization"_minimize.html. @@ -80,10 +80,9 @@ This fix is invoked during "energy minimization"_minimize.html. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -95,8 +94,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_qmmm.txt b/doc/src/fix_qmmm.txt index 1b4a850a42..657ee84181 100644 --- a/doc/src/fix_qmmm.txt +++ b/doc/src/fix_qmmm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -46,9 +46,9 @@ No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global scalar or vector or per-atom quantities are stored by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +commands"_Howto_output.html. No parameter of this fix can be used +with the {start/stop} keywords of the "run"_run.html command. This +fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_qtb.txt b/doc/src/fix_qtb.txt index 07a6af39ba..5b212934a9 100644 --- a/doc/src/fix_qtb.txt +++ b/doc/src/fix_qtb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_reax_bonds.txt b/doc/src/fix_reax_bonds.txt index 3f8f237de1..49d61f4db8 100644 --- a/doc/src/fix_reax_bonds.txt +++ b/doc/src/fix_reax_bonds.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -62,17 +62,17 @@ version, but will also take longer to write. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. :line Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section_accelerate"_Section_accelerate.html +hardware, as discussed in "Speed"_Speed.html of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues. @@ -87,7 +87,7 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section_accelerate"_Section_accelerate.html of the manual for +See "Speed"_Speed.html of the manual for more instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_reaxc_species.txt b/doc/src/fix_reaxc_species.txt index 7c920791f7..5be1c46230 100644 --- a/doc/src/fix_reaxc_species.txt +++ b/doc/src/fix_reaxc_species.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -116,8 +116,8 @@ are relevant to this fix. This fix computes both a global vector of length 2 and a per-atom vector, either of which can be accessed by various "output -commands"_Section_howto.html#howto_15. The values in the global -vector are "intensive". +commands"_Howto_output.html. The values in the global vector are +"intensive". The 2 values in the global vector are as follows: @@ -139,7 +139,7 @@ minimization"_minimize.html. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section_accelerate"_Section_accelerate.html +hardware, as discussed in "Speed"_Speed.html of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues. @@ -154,7 +154,7 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section_accelerate"_Section_accelerate.html of the manual for +See "Speed"_Speed.html of the manual for more instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_recenter.txt b/doc/src/fix_recenter.txt index 342bed4251..cfac756cd1 100644 --- a/doc/src/fix_recenter.txt +++ b/doc/src/fix_recenter.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -94,13 +94,13 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -distance the group is moved by fix recenter. +"output commands"_Howto_output.html. The scalar is the distance the +group is moved by fix recenter. This fix also computes global 3-vector which can be accessed by -various "output commands"_Section_howto.html#howto_15. The 3 -quantities in the vector are xyz components of displacement applied to -the group of atoms by the fix. +various "output commands"_Howto_output.html. The 3 quantities in the +vector are xyz components of displacement applied to the group of +atoms by the fix. The scalar and vector values calculated by this fix are "extensive". diff --git a/doc/src/fix_restrain.txt b/doc/src/fix_restrain.txt index 9de63defb7..2edc7e3296 100644 --- a/doc/src/fix_restrain.txt +++ b/doc/src/fix_restrain.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -187,8 +187,8 @@ added forces to be included in the total potential energy of the system (the quantity being minimized), you MUST enable the "fix_modify"_fix_modify.html {energy} option for this fix. -This fix computes a global scalar and a global vector of length 3, which -can be accessed by various "output commands"_Section_howto.html#howto_15. +This fix computes a global scalar and a global vector of length 3, +which can be accessed by various "output commands"_Howto_output.html. The scalar is the total potential energy for {all} the restraints as discussed above. The vector values are the sum of contributions to the following individual categories: diff --git a/doc/src/fix_rhok.txt b/doc/src/fix_rhok.txt index 2db920ac4b..68cce694e9 100644 --- a/doc/src/fix_rhok.txt +++ b/doc/src/fix_rhok.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_rigid.txt b/doc/src/fix_rigid.txt index 8d803ac6da..d5e3b01668 100644 --- a/doc/src/fix_rigid.txt +++ b/doc/src/fix_rigid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -690,10 +690,9 @@ rigid/nvt. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -705,8 +704,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -746,29 +745,29 @@ computed early or late in a timestep, i.e. at the post-force stage or at the final-integrate stage or the timestep, respectively. The 2 NVE rigid fixes compute a global scalar which can be accessed by -various "output commands"_Section_howto.html#howto_15. The scalar -value calculated by these fixes is "intensive". The scalar is the -current temperature of the collection of rigid bodies. This is -averaged over all rigid bodies and their translational and rotational -degrees of freedom. The translational energy of a rigid body is 1/2 m -v^2, where m = total mass of the body and v = the velocity of its -center of mass. The rotational energy of a rigid body is 1/2 I w^2, -where I = the moment of inertia tensor of the body and w = its angular -velocity. Degrees of freedom constrained by the {force} and {torque} -keywords are removed from this calculation, but only for the {rigid} -and {rigid/nve} fixes. +various "output commands"_Howto_output.html. The scalar value +calculated by these fixes is "intensive". The scalar is the current +temperature of the collection of rigid bodies. This is averaged over +all rigid bodies and their translational and rotational degrees of +freedom. The translational energy of a rigid body is 1/2 m v^2, where +m = total mass of the body and v = the velocity of its center of mass. +The rotational energy of a rigid body is 1/2 I w^2, where I = the +moment of inertia tensor of the body and w = its angular velocity. +Degrees of freedom constrained by the {force} and {torque} keywords +are removed from this calculation, but only for the {rigid} and +{rigid/nve} fixes. The 6 NVT, NPT, NPH rigid fixes compute a global scalar which can be -accessed by various "output commands"_Section_howto.html#howto_15. -The scalar value calculated by these fixes is "extensive". The scalar -is the cumulative energy change due to the thermostatting and -barostatting the fix performs. +accessed by various "output commands"_Howto_output.html. The scalar +value calculated by these fixes is "extensive". The scalar is the +cumulative energy change due to the thermostatting and barostatting +the fix performs. All of the {rigid} styles (not the {rigid/small} styles) compute a global array of values which can be accessed by various "output -commands"_Section_howto.html#howto_15. Similar information about the -bodies defined by the {rigid/small} styles can be accessed via the -"compute rigid/local"_compute_rigid_local.html command. +commands"_Howto_output.html. Similar information about the bodies +defined by the {rigid/small} styles can be accessed via the "compute +rigid/local"_compute_rigid_local.html command. The number of rows in the array is equal to the number of rigid bodies. The number of columns is 15. Thus for each rigid body, 15 diff --git a/doc/src/fix_rx.txt b/doc/src/fix_rx.txt index 0810a34740..d39e41e922 100644 --- a/doc/src/fix_rx.txt +++ b/doc/src/fix_rx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -186,10 +186,9 @@ read_data data.dpd fix foo_SPECIES NULL Species Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -201,8 +200,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_saed_vtk.txt b/doc/src/fix_saed_vtk.txt index 814e17b8e9..60708cd696 100644 --- a/doc/src/fix_saed_vtk.txt +++ b/doc/src/fix_saed_vtk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_setforce.txt b/doc/src/fix_setforce.txt index f5be0f93a5..14fceb7b49 100644 --- a/doc/src/fix_setforce.txt +++ b/doc/src/fix_setforce.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -65,12 +65,12 @@ to it. :line -Styles with a r {kk} suffix are functionally the same as the -corresponding style without the suffix. They have been optimized to -run faster, depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. The region keyword is also supported by Kokkos, but a Kokkos-enabled region must be used. See the region "region"_region.html command for @@ -85,8 +85,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -103,10 +103,10 @@ so that setforce values are not counted multiple times. Default is to to override forces at the outermost level. This fix computes a global 3-vector of forces, which can be accessed -by various "output commands"_Section_howto.html#howto_15. This is the -total force on the group of atoms before the forces on individual -atoms are changed by the fix. The vector values calculated by this -fix are "extensive". +by various "output commands"_Howto_output.html. This is the total +force on the group of atoms before the forces on individual atoms are +changed by the fix. The vector values calculated by this fix are +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_shake.txt b/doc/src/fix_shake.txt index 46452a1f7e..ea38de41cd 100644 --- a/doc/src/fix_shake.txt +++ b/doc/src/fix_shake.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -145,12 +145,12 @@ info of atoms in the molecule. :line -Styles with a suffix are functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, -depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -162,8 +162,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -195,10 +195,9 @@ No information about these fixes is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to these fixes. No global or per-atom quantities are stored by these fixes for access by various "output -commands"_Section_howto.html#howto_15. No parameter of these fixes -can be used with the {start/stop} keywords of the "run"_run.html -command. These fixes are not invoked during "energy -minimization"_minimize.html. +commands"_Howto_output.html. No parameter of these fixes can be used +with the {start/stop} keywords of the "run"_run.html command. These +fixes are not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_shardlow.txt b/doc/src/fix_shardlow.txt index 24726d8610..33db2bf7cc 100644 --- a/doc/src/fix_shardlow.txt +++ b/doc/src/fix_shardlow.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -56,10 +56,9 @@ examples/USER/dpd directory. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -71,8 +70,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_smd.txt b/doc/src/fix_smd.txt index cb4a40f0fd..2f083dafc3 100644 --- a/doc/src/fix_smd.txt +++ b/doc/src/fix_smd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -111,12 +111,12 @@ this fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a vector list of 7 quantities, which can be accessed -by various "output commands"_Section_howto.html#howto_15. The -quantities in the vector are in this order: the x-, y-, and -z-component of the pulling force, the total force in direction of the -pull, the equilibrium distance of the spring, the distance between the -two reference points, and finally the accumulated PMF (the sum of -pulling forces times displacement). +by various "output commands"_Howto_output.html. The quantities in the +vector are in this order: the x-, y-, and z-component of the pulling +force, the total force in direction of the pull, the equilibrium +distance of the spring, the distance between the two reference points, +and finally the accumulated PMF (the sum of pulling forces times +displacement). The force is the total force on the group of atoms by the spring. In the case of the {couple} style, it is the force on the fix group diff --git a/doc/src/fix_smd_adjust_dt.txt b/doc/src/fix_smd_adjust_dt.txt index 86b7363300..740b10559d 100644 --- a/doc/src/fix_smd_adjust_dt.txt +++ b/doc/src/fix_smd_adjust_dt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd_integrate_tlsph.txt b/doc/src/fix_smd_integrate_tlsph.txt index 17c9c0f400..cd676a51ce 100644 --- a/doc/src/fix_smd_integrate_tlsph.txt +++ b/doc/src/fix_smd_integrate_tlsph.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd_integrate_ulsph.txt b/doc/src/fix_smd_integrate_ulsph.txt index 28e38c7f97..7f16b4b7ce 100644 --- a/doc/src/fix_smd_integrate_ulsph.txt +++ b/doc/src/fix_smd_integrate_ulsph.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd_move_triangulated_surface.txt b/doc/src/fix_smd_move_triangulated_surface.txt index 2cba001267..aeabf18768 100644 --- a/doc/src/fix_smd_move_triangulated_surface.txt +++ b/doc/src/fix_smd_move_triangulated_surface.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_smd_setvel.txt b/doc/src/fix_smd_setvel.txt index f93a7d0965..6634751d6a 100644 --- a/doc/src/fix_smd_setvel.txt +++ b/doc/src/fix_smd_setvel.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -66,9 +66,9 @@ None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global 3-vector of forces, which can be accessed -by various "output commands"_Section_howto.html#howto_15. This is the -total force on the group of atoms. The vector values calculated by this -fix are "extensive". +by various "output commands"_Howto_output.html. This is the total +force on the group of atoms. The vector values calculated by this fix +are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_smd_wall_surface.txt b/doc/src/fix_smd_wall_surface.txt index feb65b2312..a19b2c4cfb 100644 --- a/doc/src/fix_smd_wall_surface.txt +++ b/doc/src/fix_smd_wall_surface.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_spring.txt b/doc/src/fix_spring.txt index 014a43aacc..690fc3e67c 100644 --- a/doc/src/fix_spring.txt +++ b/doc/src/fix_spring.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -105,19 +105,19 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -spring energy = 0.5 * K * r^2. +"output commands"_Howto_output.html. The scalar is the spring energy += 0.5 * K * r^2. This fix also computes global 4-vector which can be accessed by -various "output commands"_Section_howto.html#howto_15. The first 3 -quantities in the vector are xyz components of the total force added -to the group of atoms by the spring. In the case of the {couple} -style, it is the force on the fix group (group-ID) or the negative of -the force on the 2nd group (group-ID2). The 4th quantity in the -vector is the magnitude of the force added by the spring, as a -positive value if (r-R0) > 0 and a negative value if (r-R0) < 0. This -sign convention can be useful when using the spring force to compute a -potential of mean force (PMF). +various "output commands"_Howto_output.html. The first 3 quantities +in the vector are xyz components of the total force added to the group +of atoms by the spring. In the case of the {couple} style, it is the +force on the fix group (group-ID) or the negative of the force on the +2nd group (group-ID2). The 4th quantity in the vector is the +magnitude of the force added by the spring, as a positive value if +(r-R0) > 0 and a negative value if (r-R0) < 0. This sign convention +can be useful when using the spring force to compute a potential of +mean force (PMF). The scalar and vector values calculated by this fix are "extensive". diff --git a/doc/src/fix_spring_chunk.txt b/doc/src/fix_spring_chunk.txt index 7630a009dd..9d4e8afd09 100644 --- a/doc/src/fix_spring_chunk.txt +++ b/doc/src/fix_spring_chunk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -60,8 +60,8 @@ fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -energy of all the springs, i.e. 0.5 * K * r^2 per-spring. +"output commands"_Howto_output.html. The scalar is the energy of all +the springs, i.e. 0.5 * K * r^2 per-spring. The scalar value calculated by this fix is "extensive". diff --git a/doc/src/fix_spring_rg.txt b/doc/src/fix_spring_rg.txt index bff6b38e7e..b252163958 100644 --- a/doc/src/fix_spring_rg.txt +++ b/doc/src/fix_spring_rg.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -51,10 +51,10 @@ the time the fix is specified, and that value is used as the target. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. The "fix_modify"_fix_modify.html {respa} option is supported by this fix. This allows to set at which level of the "r-RESPA"_run_style.html diff --git a/doc/src/fix_spring_self.txt b/doc/src/fix_spring_self.txt index 68961a1512..0ac1d5eecb 100644 --- a/doc/src/fix_spring_self.txt +++ b/doc/src/fix_spring_self.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -57,10 +57,10 @@ this fix. This allows to set at which level of the "r-RESPA"_run_style.html integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is an -energy which is the sum of the spring energy for each atom, where the -per-atom energy is 0.5 * K * r^2. The scalar value calculated by this -fix is "extensive". +"output commands"_Howto_output.html. The scalar is an energy which is +the sum of the spring energy for each atom, where the per-atom energy +is 0.5 * K * r^2. The scalar value calculated by this fix is +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_srd.txt b/doc/src/fix_srd.txt index 4e190234fd..893557b9ac 100644 --- a/doc/src/fix_srd.txt +++ b/doc/src/fix_srd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -341,11 +341,11 @@ are relevant to this fix. This fix tabulates several SRD statistics which are stored in a vector of length 12, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The vector values calculated -by this fix are "intensive", meaning they do not scale with the size -of the simulation. Technically, the first 8 do scale with the size of -the simulation, but treating them as intensive means they are not -scaled when printed as part of thermodynamic output. +commands"_Howto_output.html. The vector values calculated by this fix +are "intensive", meaning they do not scale with the size of the +simulation. Technically, the first 8 do scale with the size of the +simulation, but treating them as intensive means they are not scaled +when printed as part of thermodynamic output. These are the 12 quantities. All are values for the current timestep, except for quantity 5 and the last three, each of which are diff --git a/doc/src/fix_store_force.txt b/doc/src/fix_store_force.txt index c988431f9d..33ebc962d5 100644 --- a/doc/src/fix_store_force.txt +++ b/doc/src/fix_store_force.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -26,7 +26,7 @@ timestep when the fix is invoked, as described below. This is useful for storing forces before constraints or other boundary conditions are computed which modify the forces, so that unmodified forces can be "written to a dump file"_dump.html or accessed by other "output -commands"_Section_howto.html#howto_15 that use per-atom quantities. +commands"_Howto_output.html that use per-atom quantities. This fix is invoked at the point in the velocity-Verlet timestepping immediately after "pair"_pair_style.html, "bond"_bond_style.html, @@ -54,9 +54,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a per-atom array which can be accessed by various -"output commands"_Section_howto.html#howto_15. The number of columns -for each atom is 3, and the columns store the x,y,z forces on each -atom. The per-atom values be accessed on any timestep. +"output commands"_Howto_output.html. The number of columns for each +atom is 3, and the columns store the x,y,z forces on each atom. The +per-atom values be accessed on any timestep. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_store_state.txt b/doc/src/fix_store_state.txt index df694fb97b..df05adc5b9 100644 --- a/doc/src/fix_store_state.txt +++ b/doc/src/fix_store_state.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -68,8 +68,7 @@ Define a fix that stores attributes for each atom in the group at the time the fix is defined. If {N} is 0, then the values are never updated, so this is a way of archiving an atom attribute at a given time for future use in a calculation or output. See the discussion of -"output commands"_Section_howto.html#howto_15 that take fixes as -inputs. +"output commands"_Howto_output.html that take fixes as inputs. If {N} is not zero, then the attributes will be updated every {N} steps. @@ -108,9 +107,8 @@ fix. If a single input is specified, this fix produces a per-atom vector. If multiple inputs are specified, a per-atom array is produced where the number of columns for each atom is the number of inputs. These -can be accessed by various "output -commands"_Section_howto.html#howto_15. The per-atom values be -accessed on any timestep. +can be accessed by various "output commands"_Howto_output.html. The +per-atom values be accessed on any timestep. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_surface_global.txt b/doc/src/fix_surface_global.txt index b470babab7..ade64d2056 100644 --- a/doc/src/fix_surface_global.txt +++ b/doc/src/fix_surface_global.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_temp_berendsen.txt b/doc/src/fix_temp_berendsen.txt index 6944860e14..c1f1626782 100644 --- a/doc/src/fix_temp_berendsen.txt +++ b/doc/src/fix_temp_berendsen.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -68,8 +68,8 @@ be used on atoms that also have their temperature controlled by another fix - e.g. by "fix nvt"_fix_nh.html or "fix langevin"_fix_langevin.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. This fix computes a temperature each timestep. To do this, the fix @@ -126,9 +126,9 @@ system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_temp_csvr.txt b/doc/src/fix_temp_csvr.txt index 4129ad73c8..e50f821bfe 100644 --- a/doc/src/fix_temp_csvr.txt +++ b/doc/src/fix_temp_csvr.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -76,8 +76,8 @@ normally be used on atoms that also have their temperature controlled by another fix - e.g. by "fix nvt"_fix_nh.html or "fix langevin"_fix_langevin.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. These fixes compute a temperature each timestep. To do this, the fix @@ -135,9 +135,9 @@ the {start} and {stop} keywords of the "run"_run.html command. See the These fixes are not invoked during "energy minimization"_minimize.html. These fixes compute a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to the fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to the fix. The scalar value calculated by this fix +is "extensive". [Restrictions:] diff --git a/doc/src/fix_temp_rescale.txt b/doc/src/fix_temp_rescale.txt index eff25297c1..5640317f1c 100644 --- a/doc/src/fix_temp_rescale.txt +++ b/doc/src/fix_temp_rescale.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -75,8 +75,8 @@ be used on atoms that also have their temperature controlled by another fix - e.g. by "fix nvt"_fix_nh.html or "fix langevin"_fix_langevin.html commands. -See "this howto section"_Section_howto.html#howto_16 of the manual for -a discussion of different ways to compute temperature and perform +See the "Howto thermostat"_Howto_thermostat.html doc page for a +discussion of different ways to compute temperature and perform thermostatting. This fix computes a temperature each timestep. To do this, the fix @@ -133,9 +133,9 @@ system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_temp_rescale_eff.txt b/doc/src/fix_temp_rescale_eff.txt index f87c1a2192..0e08e4f1e8 100644 --- a/doc/src/fix_temp_rescale_eff.txt +++ b/doc/src/fix_temp_rescale_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -51,9 +51,9 @@ system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative energy change due to this fix. The scalar value -calculated by this fix is "extensive". +"output commands"_Howto_output.html. The scalar is the cumulative +energy change due to this fix. The scalar value calculated by this +fix is "extensive". This fix can ramp its target temperature over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_tfmc.txt b/doc/src/fix_tfmc.txt index 3c81d62ee0..ddfa462619 100644 --- a/doc/src/fix_tfmc.txt +++ b/doc/src/fix_tfmc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_thermal_conductivity.txt b/doc/src/fix_thermal_conductivity.txt index 0353c095b2..86fc6f2c72 100644 --- a/doc/src/fix_thermal_conductivity.txt +++ b/doc/src/fix_thermal_conductivity.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -108,9 +108,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative kinetic energy transferred between the bottom and middle -of the simulation box (in the {edim} direction) is stored as a scalar +"output commands"_Howto_output.html. The scalar is the cumulative +kinetic energy transferred between the bottom and middle of the +simulation box (in the {edim} direction) is stored as a scalar quantity by this fix. This quantity is zeroed when the fix is defined and accumulates thereafter, once every N steps. The units of the quantity are energy; see the "units"_units.html command for details. diff --git a/doc/src/fix_ti_spring.txt b/doc/src/fix_ti_spring.txt index 191f9e7c6b..afe5373220 100644 --- a/doc/src/fix_ti_spring.txt +++ b/doc/src/fix_ti_spring.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -121,13 +121,12 @@ fix to add the energy stored in the per-atom springs to the system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes a global scalar and a global vector quantities which -can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar is an energy which -is the sum of the spring energy for each atom, where the per-atom -energy is 0.5 * k * r^2. The vector has 2 positions, the first one is -the coupling parameter lambda and the second one is the time -derivative of lambda. The scalar and vector values calculated by this -fix are "extensive". +can be accessed by various "output commands"_Howto_output.html. The +scalar is an energy which is the sum of the spring energy for each +atom, where the per-atom energy is 0.5 * k * r^2. The vector has 2 +positions, the first one is the coupling parameter lambda and the +second one is the time derivative of lambda. The scalar and vector +values calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_tmd.txt b/doc/src/fix_tmd.txt index 71d8d2c767..c2541692f5 100644 --- a/doc/src/fix_tmd.txt +++ b/doc/src/fix_tmd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -90,8 +90,7 @@ For more information about TMD, see "(Schlitter1)"_#Schlitter1 and No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. +by this fix for access by various "output commands"_Howto_output.html. This fix can ramp its rho parameter over multiple runs, using the {start} and {stop} keywords of the "run"_run.html command. See the diff --git a/doc/src/fix_ttm.txt b/doc/src/fix_ttm.txt index 48dfd254a0..6001def581 100644 --- a/doc/src/fix_ttm.txt +++ b/doc/src/fix_ttm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -272,18 +272,17 @@ None of the "fix_modify"_fix_modify.html options are relevant to these fixes. Both fixes compute 2 output quantities stored in a vector of length 2, -which can be accessed by various "output -commands"_Section_howto.html#howto_15. The first quantity is the -total energy of the electronic subsystem. The second quantity is the -energy transferred from the electronic to the atomic subsystem on that -timestep. Note that the velocity verlet integrator applies the fix ttm -forces to the atomic subsystem as two half-step velocity updates: one -on the current timestep and one on the subsequent timestep. -Consequently, the change in the atomic subsystem energy is lagged by -half a timestep relative to the change in the electronic subsystem -energy. As a result of this, users may notice slight fluctuations in -the sum of the atomic and electronic subsystem energies reported at -the end of the timestep. +which can be accessed by various "output commands"_Howto_output.html. +The first quantity is the total energy of the electronic +subsystem. The second quantity is the energy transferred from the +electronic to the atomic subsystem on that timestep. Note that the +velocity verlet integrator applies the fix ttm forces to the atomic +subsystem as two half-step velocity updates: one on the current +timestep and one on the subsequent timestep. Consequently, the change +in the atomic subsystem energy is lagged by half a timestep relative +to the change in the electronic subsystem energy. As a result of this, +users may notice slight fluctuations in the sum of the atomic and +electronic subsystem energies reported at the end of the timestep. The vector values calculated are "extensive". diff --git a/doc/src/fix_tune_kspace.txt b/doc/src/fix_tune_kspace.txt index 60a34a26c9..b4e8472591 100644 --- a/doc/src/fix_tune_kspace.txt +++ b/doc/src/fix_tune_kspace.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_vector.txt b/doc/src/fix_vector.txt index 385d24cff1..e1bfbe5738 100644 --- a/doc/src/fix_vector.txt +++ b/doc/src/fix_vector.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -37,7 +37,7 @@ simply store them. For a single specified value, the values are stored as a global vector of growing length. For multiple specified values, they are stored as rows in a global array, whose number of rows is growing. The resulting vector or array can be used by other -"output commands"_Section_howto.html#howto_15. +"output commands"_Howto_output.html. One way to to use this command is to accumulate a vector that is time-integrated using the "variable trap()"_variable.html function. @@ -127,9 +127,8 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix produces a global vector or global array which can be -accessed by various "output commands"_Section_howto.html#howto_15. -The values can only be accessed on timesteps that are multiples of -{Nevery}. +accessed by various "output commands"_Howto_output.html. The values +can only be accessed on timesteps that are multiples of {Nevery}. A vector is produced if only a single input value is specified. An array is produced if multiple input values are specified. diff --git a/doc/src/fix_viscosity.txt b/doc/src/fix_viscosity.txt index f6603be624..934da3efdd 100644 --- a/doc/src/fix_viscosity.txt +++ b/doc/src/fix_viscosity.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -100,13 +100,12 @@ accurately infer a viscosity and should try increasing the Nevery parameter. An alternative method for calculating a viscosity is to run a NEMD -simulation, as described in "Section -6.13"_Section_howto.html#howto_13 of the manual. NEMD simulations -deform the simulation box via the "fix deform"_fix_deform.html -command. Thus they cannot be run on a charged system using a "PPPM -solver"_kspace_style.html since PPPM does not currently support -non-orthogonal boxes. Using fix viscosity keeps the box orthogonal; -thus it does not suffer from this limitation. +simulation, as described on the "Howto nemd"_Howto_nemd.html doc page. +NEMD simulations deform the simulation box via the "fix +deform"_fix_deform.html command. Thus they cannot be run on a charged +system using a "PPPM solver"_kspace_style.html since PPPM does not +currently support non-orthogonal boxes. Using fix viscosity keeps the +box orthogonal; thus it does not suffer from this limitation. [Restart, fix_modify, output, run start/stop, minimize info:] @@ -115,13 +114,13 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -cumulative momentum transferred between the bottom and middle of the -simulation box (in the {pdim} direction) is stored as a scalar -quantity by this fix. This quantity is zeroed when the fix is defined -and accumulates thereafter, once every N steps. The units of the -quantity are momentum = mass*velocity. The scalar value calculated by -this fix is "intensive". +"output commands"_Howto_output.html. The scalar is the cumulative +momentum transferred between the bottom and middle of the simulation +box (in the {pdim} direction) is stored as a scalar quantity by this +fix. This quantity is zeroed when the fix is defined and accumulates +thereafter, once every N steps. The units of the quantity are +momentum = mass*velocity. The scalar value calculated by this fix is +"intensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy diff --git a/doc/src/fix_viscous.txt b/doc/src/fix_viscous.txt index 9c30e40249..c5a3ede0b2 100644 --- a/doc/src/fix_viscous.txt +++ b/doc/src/fix_viscous.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -82,9 +82,9 @@ easily be used as a thermostat. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. The "fix_modify"_fix_modify.html {respa} option is supported by this fix. This allows to set at which level of the "r-RESPA"_run_style.html diff --git a/doc/src/fix_wall.txt b/doc/src/fix_wall.txt index e814c89a07..2ac59d9588 100644 --- a/doc/src/fix_wall.txt +++ b/doc/src/fix_wall.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -263,14 +263,14 @@ integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar energy and a global vector of forces, which can be accessed by various "output -commands"_Section_howto.html#howto_15. Note that the scalar energy is -the sum of interactions with all defined walls. If you want the -energy on a per-wall basis, you need to use multiple fix wall -commands. The length of the vector is equal to the number of walls -defined by the fix. Each vector value is the normal force on a -specific wall. Note that an outward force on a wall will be a -negative value for {lo} walls and a positive value for {hi} walls. -The scalar and vector values calculated by this fix are "extensive". +commands"_Howto_output.html. Note that the scalar energy is the sum +of interactions with all defined walls. If you want the energy on a +per-wall basis, you need to use multiple fix wall commands. The +length of the vector is equal to the number of walls defined by the +fix. Each vector value is the normal force on a specific wall. Note +that an outward force on a wall will be a negative value for {lo} +walls and a positive value for {hi} walls. The scalar and vector +values calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. @@ -288,10 +288,9 @@ option for this fix. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -303,8 +302,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/fix_wall_body_polygon.txt b/doc/src/fix_wall_body_polygon.txt index 4ba16b56c7..0946a85131 100644 --- a/doc/src/fix_wall_body_polygon.txt +++ b/doc/src/fix_wall_body_polygon.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -43,8 +43,8 @@ particles in the group interact with the wall when they are close enough to touch it. The nature of the interaction between the wall and the polygon particles is the same as that between the polygon particles themselves, which is similar to a Hookean potential. See -"Section 6.14"_Section_howto.html#howto_14 of the manual and the -"body"_body.html doc page for more details on using body particles. +the "Howto body"_Howto_body.html doc page for more details on using +body particles. The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as those specified with the "pair_style @@ -83,9 +83,9 @@ to the derivative of this expression. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_body_polyhedron.txt b/doc/src/fix_wall_body_polyhedron.txt index c937cbdbbc..407cf9fb33 100644 --- a/doc/src/fix_wall_body_polyhedron.txt +++ b/doc/src/fix_wall_body_polyhedron.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -43,8 +43,8 @@ All particles in the group interact with the wall when they are close enough to touch it. The nature of the interaction between the wall and the polygon particles is the same as that between the polygon particles themselves, which is similar to a Hookean potential. See -"Section 6.14"_Section_howto.html#howto_14 of the manual and the -"body"_body.html doc page for more details on using body particles. +the "Howto body"_Howto_body.html doc page for more details on using +body particles. The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as those specified with the "pair_style @@ -82,9 +82,9 @@ to the derivative of this expression. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_ees.txt b/doc/src/fix_wall_ees.txt index f141a19405..ae16ca40d2 100644 --- a/doc/src/fix_wall_ees.txt +++ b/doc/src/fix_wall_ees.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/fix_wall_gran.txt b/doc/src/fix_wall_gran.txt index 5f1679604e..6c2769fc12 100644 --- a/doc/src/fix_wall_gran.txt +++ b/doc/src/fix_wall_gran.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -148,9 +148,9 @@ uninterrupted fashion. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_gran_region.txt b/doc/src/fix_wall_gran_region.txt index 92fb042194..187214c1a3 100644 --- a/doc/src/fix_wall_gran_region.txt +++ b/doc/src/fix_wall_gran_region.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -180,9 +180,9 @@ region with a different region ID. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for -access by various "output commands"_Section_howto.html#howto_15. No -parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy +access by various "output commands"_Howto_output.html. No parameter +of this fix can be used with the {start/stop} keywords of the +"run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_piston.txt b/doc/src/fix_wall_piston.txt index 4d7756c237..eecf69ebf2 100644 --- a/doc/src/fix_wall_piston.txt +++ b/doc/src/fix_wall_piston.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -91,10 +91,10 @@ define the lattice spacings. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_reflect.txt b/doc/src/fix_wall_reflect.txt index 954ec65bf6..78be84eb63 100644 --- a/doc/src/fix_wall_reflect.txt +++ b/doc/src/fix_wall_reflect.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -130,10 +130,9 @@ position = c0 + A (1 - cos(omega*delta)) :pre Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -145,8 +144,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line @@ -155,10 +154,10 @@ more instructions on how to use the accelerated styles effectively. No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored -by this fix for access by various "output -commands"_Section_howto.html#howto_15. No parameter of this fix can -be used with the {start/stop} keywords of the "run"_run.html command. -This fix is not invoked during "energy minimization"_minimize.html. +by this fix for access by various "output commands"_Howto_output.html. +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] diff --git a/doc/src/fix_wall_region.txt b/doc/src/fix_wall_region.txt index 9700545dc9..559a2f0d89 100644 --- a/doc/src/fix_wall_region.txt +++ b/doc/src/fix_wall_region.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -156,12 +156,11 @@ integrator the fix is adding its forces. Default is the outermost level. This fix computes a global scalar energy and a global 3-length vector of forces, which can be accessed by various "output -commands"_Section_howto.html#howto_15. The scalar energy is the sum -of energy interactions for all particles interacting with the wall -represented by the region surface. The 3 vector quantities are the -x,y,z components of the total force acting on the wall due to the -particles. The scalar and vector values calculated by this fix are -"extensive". +commands"_Howto_output.html. The scalar energy is the sum of energy +interactions for all particles interacting with the wall represented +by the region surface. The 3 vector quantities are the x,y,z +components of the total force acting on the wall due to the particles. +The scalar and vector values calculated by this fix are "extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. diff --git a/doc/src/fix_wall_srd.txt b/doc/src/fix_wall_srd.txt index c465896d37..3a50c45ab7 100644 --- a/doc/src/fix_wall_srd.txt +++ b/doc/src/fix_wall_srd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -166,9 +166,9 @@ files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. This fix computes a global array of values which can be accessed by -various "output commands"_Section_howto.html#howto_15. The number of -rows in the array is equal to the number of walls defined by the fix. -The number of columns is 3, for the x,y,z components of force on each +various "output commands"_Howto_output.html. The number of rows in +the array is equal to the number of walls defined by the fix. The +number of columns is 3, for the x,y,z components of force on each wall. Note that an outward normal force on a wall will be a negative value diff --git a/doc/src/fixes.txt b/doc/src/fixes.txt index 9510217d02..7a45ed8086 100644 --- a/doc/src/fixes.txt +++ b/doc/src/fixes.txt @@ -168,6 +168,8 @@ Fixes :h1 fix_viscosity fix_viscous fix_wall + fix_wall_body_polygon + fix_wall_body_polyhedron fix_wall_ees fix_wall_gran fix_wall_gran_region diff --git a/doc/src/group.txt b/doc/src/group.txt index dddb0459e3..8472677372 100644 --- a/doc/src/group.txt +++ b/doc/src/group.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/group2ndx.txt b/doc/src/group2ndx.txt index 94d188399b..242d6a69a4 100644 --- a/doc/src/group2ndx.txt +++ b/doc/src/group2ndx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/if.txt b/doc/src/if.txt index 52fad5aea7..513e451034 100644 --- a/doc/src/if.txt +++ b/doc/src/if.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -65,9 +65,9 @@ above. NOTE: If a command itself requires a quoted argument (e.g. a "print"_print.html command), then double and single quotes can be used and nested in the usual manner, as in the examples above and below. -See "Section 3.2"_Section_commands.html#cmd_2 of the manual for -more details on using quotes in arguments. Only one of level of -nesting is allowed, but that should be sufficient for most use cases. +The "Commands parse"_Commands_parse.html doc page has more details on +using quotes in arguments. Only one of level of nesting is allowed, +but that should be sufficient for most use cases. Note that by using the line continuation character "&", the if command can be spread across many lines, though it is still a single command: diff --git a/doc/src/improper_class2.txt b/doc/src/improper_class2.txt index 14ec6258de..c38f73c64d 100644 --- a/doc/src/improper_class2.txt +++ b/doc/src/improper_class2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -87,10 +87,9 @@ radians internally; hence the units of M are in energy/radian^2. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -102,8 +101,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_coeff.txt b/doc/src/improper_coeff.txt index 5c01a23ae9..8ed65f9535 100644 --- a/doc/src/improper_coeff.txt +++ b/doc/src/improper_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -67,9 +67,9 @@ the style to display the formula it computes and coefficients specified by the associated "improper_coeff"_improper_coeff.html command. Note that there are also additional improper styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the improper section of -"this page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +improper styles is on the "Commands bond"_Commands_bond.html#improper +doc page. "improper_style none"_improper_none.html - turn off improper interactions "improper_style hybrid"_improper_hybrid.html - define multiple styles of improper interactions :ul diff --git a/doc/src/improper_cossq.txt b/doc/src/improper_cossq.txt index 138a6a1650..04aa45255c 100644 --- a/doc/src/improper_cossq.txt +++ b/doc/src/improper_cossq.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -53,10 +53,9 @@ X0 (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -68,8 +67,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_cvff.txt b/doc/src/improper_cvff.txt index 5f69eccc60..d01faf2885 100644 --- a/doc/src/improper_cvff.txt +++ b/doc/src/improper_cvff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -54,10 +54,9 @@ n (0,1,2,3,4,6) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -69,8 +68,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_distance.txt b/doc/src/improper_distance.txt index 7d49d17c97..93235fe601 100644 --- a/doc/src/improper_distance.txt +++ b/doc/src/improper_distance.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_fourier.txt b/doc/src/improper_fourier.txt index f9062da207..78cc1b3f76 100644 --- a/doc/src/improper_fourier.txt +++ b/doc/src/improper_fourier.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -48,10 +48,9 @@ all (integer >= 0) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -63,8 +62,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_harmonic.txt b/doc/src/improper_harmonic.txt index bb17e5a641..f398dc425f 100644 --- a/doc/src/improper_harmonic.txt +++ b/doc/src/improper_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -58,10 +58,9 @@ internally; hence the units of K are in energy/radian^2. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -73,8 +72,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_hybrid.txt b/doc/src/improper_hybrid.txt index 0c2beaef18..42afbe8577 100644 --- a/doc/src/improper_hybrid.txt +++ b/doc/src/improper_hybrid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_inversion_harmonic.txt b/doc/src/improper_inversion_harmonic.txt index 34683ca2bb..2c0f2f0af8 100644 --- a/doc/src/improper_inversion_harmonic.txt +++ b/doc/src/improper_inversion_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_none.txt b/doc/src/improper_none.txt index af9964c743..f97af101fc 100644 --- a/doc/src/improper_none.txt +++ b/doc/src/improper_none.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/improper_ring.txt b/doc/src/improper_ring.txt index c02d392474..60bbca170a 100644 --- a/doc/src/improper_ring.txt +++ b/doc/src/improper_ring.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -57,10 +57,9 @@ theta0 (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -72,8 +71,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_style.txt b/doc/src/improper_style.txt index 861701590f..3d29b28ec4 100644 --- a/doc/src/improper_style.txt +++ b/doc/src/improper_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -60,9 +60,9 @@ specified by the associated "improper_coeff"_improper_coeff.html command. Note that there are also additional improper styles submitted by users -which are included in the LAMMPS distribution. The list of these with -links to the individual styles are given in the improper section of -"this page"_Section_commands.html#cmd_5. +which are included in the LAMMPS distribution. The full list of all +improper styles is on the "Commands bond"_Commands_bond.html#improper +doc page. "improper_style none"_improper_none.html - turn off improper interactions "improper_style zero"_improper_zero.html - topology but no interactions diff --git a/doc/src/improper_umbrella.txt b/doc/src/improper_umbrella.txt index d6df9ee6cc..b05cf4b181 100644 --- a/doc/src/improper_umbrella.txt +++ b/doc/src/improper_umbrella.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -22,7 +22,7 @@ improper_coeff 1 100.0 180.0 :pre The {umbrella} improper style uses the following potential, which is commonly referred to as a classic inversion and used in the -"DREIDING"_Section_howto.html#howto_4 force field: +"DREIDING"_Howto_bioFF.html force field: :c,image(Eqs/improper_umbrella.jpg) @@ -51,10 +51,9 @@ omega0 (degrees) :ul Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -66,8 +65,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/improper_zero.txt b/doc/src/improper_zero.txt index 2a298573d5..f3f3485b57 100644 --- a/doc/src/improper_zero.txt +++ b/doc/src/improper_zero.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/include.txt b/doc/src/include.txt index 95d08db352..c114056313 100644 --- a/doc/src/include.txt +++ b/doc/src/include.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/info.txt b/doc/src/info.txt index d5b5bd97b9..99211de4fb 100644 --- a/doc/src/info.txt +++ b/doc/src/info.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/jump.txt b/doc/src/jump.txt index 4e3799f7b1..b5afeb6559 100644 --- a/doc/src/jump.txt +++ b/doc/src/jump.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index 6d27bb7076..dd7b1e8dea 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -285,15 +285,15 @@ performance and accuracy in the results is obtained when these values are different. The {disp/auto} option controls whether the pppm/disp is allowed to -generate PPPM parameters automatically. If set to {no}, parameters have -to be specified using the {gewald/disp}, {mesh/disp}, -{force/disp/real} or {force/disp/kspace} keywords, or -the code will stop with an error message. When this option is set to -{yes}, the error message will not appear and the simulation will start. -For a typical application, using the automatic parameter generation -will provide simulations that are either inaccurate or slow. Using this -option is thus not recommended. For guidelines on how to obtain good -parameters, see the "How-To"_Section_howto.html#howto_24 discussion. +generate PPPM parameters automatically. If set to {no}, parameters +have to be specified using the {gewald/disp}, {mesh/disp}, +{force/disp/real} or {force/disp/kspace} keywords, or the code will +stop with an error message. When this option is set to {yes}, the +error message will not appear and the simulation will start. For a +typical application, using the automatic parameter generation will +provide simulations that are either inaccurate or slow. Using this +option is thus not recommended. For guidelines on how to obtain good +parameters, see the "Howto dispersion"_Howto_dispersion.html doc page. [Restrictions:] none diff --git a/doc/src/kspace_style.txt b/doc/src/kspace_style.txt index 4f27c9aa78..55ad4ab610 100644 --- a/doc/src/kspace_style.txt +++ b/doc/src/kspace_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -145,8 +145,8 @@ speedup in the KSpace time (8x less mesh points, 2x more expensive). However, for low relative accuracy, the staggered PPPM mesh size may be essentially the same as for regular PPPM, which means the method will be up to 2x slower in the KSpace time (simply 2x more expensive). -For more details and timings, see -"Section 5"_Section_accelerate.html. +For more details and timings, see the "Speed tips"_Speed_tips.html doc +page. NOTE: Using {pppm/stagger} may not give the same increase in the accuracy of energy and pressure as it does in forces, so some caution @@ -161,15 +161,16 @@ similar to the {ewald/disp} style. The 1/r^6 capability means that Lennard-Jones or Buckingham potentials can be used without a cutoff, i.e. they become full long-range potentials. -For these styles, you will possibly want to adjust the default choice of -parameters by using the "kspace_modify"_kspace_modify.html command. +For these styles, you will possibly want to adjust the default choice +of parameters by using the "kspace_modify"_kspace_modify.html command. This can be done by either choosing the Ewald and grid parameters, or by specifying separate accuracies for the real and kspace -calculations. When not making any settings, the simulation will stop with -an error message. Further information on the influence of the parameters -and how to choose them is described in "(Isele-Holder)"_#Isele-Holder2012, -"(Isele-Holder2)"_#Isele-Holder2013 and the -"How-To"_Section_howto.html#howto_24 discussion. +calculations. When not making any settings, the simulation will stop +with an error message. Further information on the influence of the +parameters and how to choose them is described in +"(Isele-Holder)"_#Isele-Holder2012, +"(Isele-Holder2)"_#Isele-Holder2013 and the "Howto +dispersion"_Howto_dispersion.html doc page. :line @@ -267,10 +268,9 @@ relative RMS error. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. More specifically, the {pppm/gpu} style performs charge assignment and force interpolation calculations on the GPU. These processes are @@ -291,8 +291,8 @@ KOKKOS, USER-OMP, and OPT packages respectively. They are only enabled if LAMMPS was built with those packages. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/label.txt b/doc/src/label.txt index c6a573141b..adab44188c 100644 --- a/doc/src/label.txt +++ b/doc/src/label.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 4274ef48b3..c0ca357f21 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -1,19 +1,78 @@ #HTMLDOC 1.8.28 -t pdf14 -f "../Manual.pdf" --book --toclevels 4 --no-numbered --toctitle "Table of Contents" --title --textcolor #000000 --linkcolor #0000ff --linkstyle plain --bodycolor #ffffff --size Universal --left 1.00in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --header1 ... --footer ..1 --nup 1 --tocheader .t. --tocfooter ..i --portrait --color --no-pscommands --no-xrxcomments --compression=9 --jpeg=0 --fontsize 11.0 --fontspacing 1.2 --headingfont Sans --bodyfont Serif --headfootsize 11.0 --headfootfont Sans-Bold --charset iso-8859-15 --links --embedfonts --pagemode document --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all --owner-password "" --user-password "" --browserwidth 680 --no-strict --no-overflow Manual.html -Section_intro.html +Intro.html +Intro_overview.html +Intro_features.html +Intro_nonfeatures.html +Intro_opensource.html +Intro_authors.html +Intro_website.html Section_start.html -Section_commands.html -Section_packages.html -Section_accelerate.html -accelerate_gpu.html -accelerate_intel.html -accelerate_kokkos.html -accelerate_omp.html -accelerate_opt.html -Section_howto.html +Commands.html +Commands_input.html +Commands_parse.html +Commands_structure.html +Commands_category.html +Commands_all.html +Commands_fix.html +Commands_compute.html +Commands_pair.html +Commands_bond.html +Commands_kspace.html +Packages.html +Packages_standard.html +Packages_user.html +Packages_details.html +Speed.html +Speed_bench.html +Speed_measure.html +Speed_tips.html +Speed_packages.html +Speed_gpu.html +Speed_intel.html +Speed_kokkos.html +Speed_omp.html +Speed_opt.html +Speed_compare.html +Howto.html +Howto_github.html +Howto_pylammps.html +Howto_bash.html +Howto_restart.html +Howto_viz.html +Howto_multiple.html +Howto_replica.html +Howto_library.html +Howto_couple.html +Howto_output.html +Howto_chunk.html +Howto_2d.html +Howto_triclinic.html +Howto_walls.html +Howto_nemd.html +Howto_granular.html +Howto_spherical.html +Howto_dispersion.html +Howto_temperature.html +Howto_thermostat.html +Howto_barostat.html +Howto_elastic.html +Howto_kappa.html +Howto_viscosity.html +Howto_diffusion.html +Howto_bioFF.html +Howto_tip3p.html +Howto_tip4p.html +Howto_spc.html +Howto_body.html +Howto_polarizable.html +Howto_coreshell.html +Howto_drude.html +Howto_drude2.html +Howto_manifold.html +Howto_spins.html Examples.html -Section_perf.html Tools.html Modify.html Modify_overview.html @@ -47,17 +106,6 @@ Errors_common.html Errors_bugs.html Errors_messages.html Errors_warnings.html -Section_history.html - -lammps_tutorials.html -tutorial_bash_on_windows.html -tutorial_drude.html -tutorial_github.html -tutorial_pylammps.html - -lammps_support.html -body.html -manifolds.html lammps_commands.html atom_modify.html diff --git a/doc/src/lammps_support.txt b/doc/src/lammps_support.txt deleted file mode 100644 index fa460ce6c2..0000000000 --- a/doc/src/lammps_support.txt +++ /dev/null @@ -1,7 +0,0 @@ - -Supporting Information :h1 - -This section of the manual contains supporting information that -is not documenting individual commands but general concepts and -supporting information about entities like body particles or -manifolds. diff --git a/doc/src/lammps_tutorials.txt b/doc/src/lammps_tutorials.txt deleted file mode 100644 index 5ceda65b60..0000000000 --- a/doc/src/lammps_tutorials.txt +++ /dev/null @@ -1,6 +0,0 @@ - -Tutorials :h2 - -The following pages contain some in-depth tutorials for -selected topics, that did not fit into any other place -in the manual. diff --git a/doc/src/lattice.txt b/doc/src/lattice.txt index 7a90df1f5d..6f16dc5432 100644 --- a/doc/src/lattice.txt +++ b/doc/src/lattice.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/log.txt b/doc/src/log.txt index 92bb12e6db..7603768519 100644 --- a/doc/src/log.txt +++ b/doc/src/log.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/mass.txt b/doc/src/mass.txt index 4b75132ccf..c693963044 100644 --- a/doc/src/mass.txt +++ b/doc/src/mass.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/min_modify.txt b/doc/src/min_modify.txt index 73d142f5fa..9408eea167 100644 --- a/doc/src/min_modify.txt +++ b/doc/src/min_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/min_style.txt b/doc/src/min_style.txt index 245ac5864c..4948a34864 100644 --- a/doc/src/min_style.txt +++ b/doc/src/min_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line min_style command :h3 diff --git a/doc/src/minimize.txt b/doc/src/minimize.txt index a3f2c5d0bf..910fc7f821 100644 --- a/doc/src/minimize.txt +++ b/doc/src/minimize.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/molecule.txt b/doc/src/molecule.txt index cd9ecce42c..88c6292d8b 100644 --- a/doc/src/molecule.txt +++ b/doc/src/molecule.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -176,9 +176,8 @@ LAMMPS uses this info to properly exclude or weight bonded pairwise interactions between bonded atoms. See the "special_bonds"_special_bonds.html command for more details. One reason to list the special bond info explicitly is for the -"thermalized Drude oscillator model"_tutorial_drude.html which treats -the bonds between nuclear cores and Drude electrons in a different -manner. +"thermalized Drude oscillator model"_Howto_drude.html which treats the +bonds between nuclear cores and Drude electrons in a different manner. NOTE: Whether a section is required depends on how the molecule template is used by other LAMMPS commands. For example, to add a diff --git a/doc/src/neb.txt b/doc/src/neb.txt index 56f075c301..fbd77ee329 100644 --- a/doc/src/neb.txt +++ b/doc/src/neb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -56,9 +56,8 @@ Note that if you have MPI installed, you can run a multi-replica simulation with more replicas (partitions) than you have physical processors, e.g you can run a 10-replica simulation on just one or two processors. You will simply not get the performance speed-up you -would see with one or more physical processors per replica. See -"Section 6.5"_Section_howto.html#howto_5 of the manual for further -discussion. +would see with one or more physical processors per replica. See the +"Howto replica"_Howto_replica.html doc page for further discussion. NOTE: As explained below, a NEB calculation perfoms a damped dynamics minimization across all the replicas. The minimizer uses whatever diff --git a/doc/src/neigh_modify.txt b/doc/src/neigh_modify.txt index c4544cb29b..6c4218cff5 100644 --- a/doc/src/neigh_modify.txt +++ b/doc/src/neigh_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/neighbor.txt b/doc/src/neighbor.txt index 062f79a5bb..7c7e7b05e5 100644 --- a/doc/src/neighbor.txt +++ b/doc/src/neighbor.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/newton.txt b/doc/src/newton.txt index a3e7f4fa91..fd7b536920 100644 --- a/doc/src/newton.txt +++ b/doc/src/newton.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/next.txt b/doc/src/next.txt index 08f73b896c..5a0b30b2a7 100644 --- a/doc/src/next.txt +++ b/doc/src/next.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/package.txt b/doc/src/package.txt index 5fd42f67d3..c2e7345bb7 100644 --- a/doc/src/package.txt +++ b/doc/src/package.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -149,9 +149,9 @@ the style options are set, either to default values or to specified settings. I.e. settings from previous invocations do not persist across multiple invocations. -See the "Section 5.3"_Section_accelerate.html#acc_3 section of the -manual for more details about using the various accelerator packages -for speeding up LAMMPS simulations. +See the "Speed packages"_Speed_packages.html doc page for more details +about using the various accelerator packages for speeding up LAMMPS +simulations. :line diff --git a/doc/src/pair_adp.txt b/doc/src/pair_adp.txt index 9d2a48dcbc..382a97ecea 100644 --- a/doc/src/pair_adp.txt +++ b/doc/src/pair_adp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -125,10 +125,9 @@ array tabulated with a scaling by r. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -140,8 +139,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_agni.txt b/doc/src/pair_agni.txt index 402e537dad..34f9900139 100644 --- a/doc/src/pair_agni.txt +++ b/doc/src/pair_agni.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -58,11 +58,11 @@ and input files are provided in the examples/USER/misc/agni directory. :line Styles with {omp} suffix is functionally the same as the corresponding -style without the suffix. They have been optimized to run faster, depending -on your available hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated style takes the same arguments and -should produce the same results, except for round-off and precision -issues. +style without the suffix. They have been optimized to run faster, +depending on your available hardware, as discussed on the "Speed +packages"_Speed_packages.html doc page. The accelerated style takes +the same arguments and should produce the same results, except for +round-off and precision issues. The accelerated style is part of the USER-OMP. They are only enabled if LAMMPS was built with those packages. See the "Making @@ -73,8 +73,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_airebo.txt b/doc/src/pair_airebo.txt index 1aa017f278..94a692226d 100644 --- a/doc/src/pair_airebo.txt +++ b/doc/src/pair_airebo.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -176,10 +176,9 @@ thermo_style custom step temp epair v_REBO v_LJ v_TORSION :pre Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -191,8 +190,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index b798f7d128..2e961a1356 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -49,9 +49,8 @@ The {atm} potential is typically used in combination with a two-body potential using the "pair_style hybrid/overlay"_pair_hybrid.html command as in the example above. -The potential is calculated if atoms J and K are in the -"neighbor list"_neighbor.html of atom I -and the distances between atoms satisfy rIJ rJK rKI > cutoff^3. +The potential for a triplet of atom is calculated only if all 3 +distances r12, r23, r31 between the 3 atoms satisfy rIJ < cutoff The following coefficients must be defined for each pair of atoms types via the "pair_coeff"_pair_coeff.html command as in the examples diff --git a/doc/src/pair_awpmd.txt b/doc/src/pair_awpmd.txt index fe0e3c952a..ec87101d0d 100644 --- a/doc/src/pair_awpmd.txt +++ b/doc/src/pair_awpmd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_beck.txt b/doc/src/pair_beck.txt index e160f09b3d..ca4186e27b 100644 --- a/doc/src/pair_beck.txt +++ b/doc/src/pair_beck.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -51,10 +51,9 @@ Rc is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -66,8 +65,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_body_nparticle.txt b/doc/src/pair_body_nparticle.txt index 8c5b6e155d..9fb88102eb 100644 --- a/doc/src/pair_body_nparticle.txt +++ b/doc/src/pair_body_nparticle.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -24,15 +24,14 @@ pair_coeff 1 1 1.0 1.5 2.5 :pre Style {body/nparticle} is for use with body particles and calculates pairwise body/body interactions as well as interactions between body -and point-particles. See "Section 6.14"_Section_howto.html#howto_14 -of the manual and the "body"_body.html doc page for more details on -using body particles. +and point-particles. See the "Howto body"_Howto_body.html doc page +for more details on using body particles. This pair style is designed for use with the "nparticle" body style, which is specified as an argument to the "atom-style body" command. -See the "body"_body.html doc page for more details about the body -styles LAMMPS supports. The "nparticle" style treats a body particle -as a rigid body composed of N sub-particles. +See the "Howto body"_Howto_body.html doc page for more details about +the body styles LAMMPS supports. The "nparticle" style treats a body +particle as a rigid body composed of N sub-particles. The coordinates of a body particle are its center-of-mass (COM). If the COMs of a pair of body particles are within the cutoff (global or diff --git a/doc/src/pair_body_rounded_polygon.txt b/doc/src/pair_body_rounded_polygon.txt index 9daeb08e9a..e724874032 100644 --- a/doc/src/pair_body_rounded_polygon.txt +++ b/doc/src/pair_body_rounded_polygon.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -29,9 +29,8 @@ pair_coeff 1 1 100.0 1.0 :pre Style {body/rounded/polygon} is for use with 2d models of body particles of style {rounded/polygon}. It calculates pairwise body/body interactions which can include body particles modeled as -1-vertex circular disks with a specified diameter. See "Section -6.14"_Section_howto.html#howto_14 of the manual and the -"body"_body.html doc page for more details on using body +1-vertex circular disks with a specified diameter. See the "Howto +body"_Howto_body.html doc page for more details on using body rounded/polygon particles. This pairwise interaction between rounded polygons is described in diff --git a/doc/src/pair_body_rounded_polyhedron.txt b/doc/src/pair_body_rounded_polyhedron.txt index dc559feaaf..0f8548d98e 100644 --- a/doc/src/pair_body_rounded_polyhedron.txt +++ b/doc/src/pair_body_rounded_polyhedron.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -29,9 +29,8 @@ pair_coeff 1 1 100.0 1.0 :pre Style {body/rounded/polygon} is for use with 3d models of body particles of style {rounded/polyhedron}. It calculates pairwise body/body interactions which can include body particles modeled as -1-vertex spheres with a specified diameter. See "Section -6.14"_Section_howto.html#howto_14 of the manual and the -"body"_body.html doc page for more details on using body +1-vertex spheres with a specified diameter. See the "Howto +body"_Howto_body.html doc page for more details on using body rounded/polyhedron particles. This pairwise interaction between the rounded polyhedra is described diff --git a/doc/src/pair_bop.txt b/doc/src/pair_bop.txt index 2a611e4bd0..654a7eb0b3 100644 --- a/doc/src/pair_bop.txt +++ b/doc/src/pair_bop.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_born.txt b/doc/src/pair_born.txt index f867107426..c408de6db6 100644 --- a/doc/src/pair_born.txt +++ b/doc/src/pair_born.txt @@ -3,7 +3,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -108,10 +108,10 @@ The {born/coul/dsf} style computes the Coulomb contribution with the damped shifted force model as in the "coul/dsf"_pair_coul.html style. Style {born/coul/long/cs} is identical to {born/coul/long} except that -a term is added for the "core/shell model"_Section_howto.html#howto_25 -to allow charges on core and shell particles to be separated by r = -0.0. The same correction is introduced for the {born/coul/dsf/cs} -style which is identical to {born/coul/dsf}. And likewise for +a term is added for the "core/shell model"_Howto_coreshell.html to +allow charges on core and shell particles to be separated by r = 0.0. +The same correction is introduced for the {born/coul/dsf/cs} style +which is identical to {born/coul/dsf}. And likewise for {born/coul/wolf/cs} style which is identical to {born/coul/wolf}. Note that these potentials are related to the "Buckingham @@ -145,10 +145,9 @@ pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -160,8 +159,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_brownian.txt b/doc/src/pair_brownian.txt index 79b71e91c7..eaff85cbbc 100644 --- a/doc/src/pair_brownian.txt +++ b/doc/src/pair_brownian.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -74,7 +74,7 @@ must be specified. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "this section"_Section_accelerate.html of +hardware, as discussed in "this section"_Speed.html of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues. @@ -88,7 +88,7 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "this section"_Section_accelerate.html of the manual for more +See "this section"_Speed.html of the manual for more instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_buck.txt b/doc/src/pair_buck.txt index d18b39d5d9..cc782c11cf 100644 --- a/doc/src/pair_buck.txt +++ b/doc/src/pair_buck.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -93,9 +93,8 @@ used as the cutoff for the A,C terms, and the second is the cutoff for the Coulombic term. Style {buck/coul/long/cs} is identical to {buck/coul/long} except that -a term is added for the "core/shell model"_Section_howto.html#howto_25 -to allow charges on core and shell particles to be separated by r = -0.0. +a term is added for the "core/shell model"_Howto_coreshell.html to +allow charges on core and shell particles to be separated by r = 0.0. Note that these potentials are related to the "Born-Mayer-Huggins potential"_pair_born.html. @@ -140,10 +139,9 @@ pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -155,8 +153,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_buck6d_coul_gauss.txt b/doc/src/pair_buck6d_coul_gauss.txt index 879972772b..485c35c6b2 100644 --- a/doc/src/pair_buck6d_coul_gauss.txt +++ b/doc/src/pair_buck6d_coul_gauss.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_buck_long.txt b/doc/src/pair_buck_long.txt index 05e760e1b2..551204f1a7 100644 --- a/doc/src/pair_buck_long.txt +++ b/doc/src/pair_buck_long.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -102,10 +102,9 @@ global Coulombic cutoff is allowed. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -117,8 +116,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_charmm.txt b/doc/src/pair_charmm.txt index 75a8e4bff9..39c6f29b04 100644 --- a/doc/src/pair_charmm.txt +++ b/doc/src/pair_charmm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -184,10 +184,9 @@ the pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -199,8 +198,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_class2.txt b/doc/src/pair_class2.txt index 36fae5068b..104c51474c 100644 --- a/doc/src/pair_class2.txt +++ b/doc/src/pair_class2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -102,10 +102,9 @@ cutoff distance. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -117,8 +116,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_coeff.txt b/doc/src/pair_coeff.txt index fe9238f423..63f85f23d5 100644 --- a/doc/src/pair_coeff.txt +++ b/doc/src/pair_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -111,9 +111,8 @@ Windows: :line The alphabetic list of pair styles defined in LAMMPS is given on the -"pair_style"_pair_style.html doc page. They are also given in more -compact form in the pair section of "this -page"_Section_commands.html#cmd_5. +"pair_style"_pair_style.html doc page. They are also listed in more +compact form on the "Commands pair"_Commands_pair.html doc page. Click on the style to display the formula it computes, arguments specified in the pair_style command, and coefficients specified by the @@ -121,15 +120,15 @@ associated "pair_coeff"_pair_coeff.html command. Note that there are also additional pair styles (not listed on the "pair_style"_pair_style.html doc page) submitted by users which are -included in the LAMMPS distribution. The list of these with links to -the individual styles are given in the pair section of "this -page"_Section_commands.html#cmd_5. +included in the LAMMPS distribution. The full list of all pair styles +is on the "Commands pair"_Commands_pair.html doc page. There are also additional accelerated pair styles (not listed on the "pair_style"_pair_style.html doc page) included in the LAMMPS -distribution for faster performance on CPUs and GPUs. The list of -these with links to the individual styles are given in the pair -section of "this page"_Section_commands.html#cmd_5. +distribution for faster performance on CPUs, GPUs, and KNLs. The +individual style names on the "Commands pair"_Commands_pair.html doc +page are followed by one or more of (g,i,k,o,t) to indicate which +accerlerated styles exist. :line diff --git a/doc/src/pair_colloid.txt b/doc/src/pair_colloid.txt index 83b15b358b..08540cfee0 100644 --- a/doc/src/pair_colloid.txt +++ b/doc/src/pair_colloid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -127,10 +127,9 @@ commands for efficiency: "neighbor multi"_neighbor.html and Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -142,8 +141,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_comb.txt b/doc/src/pair_comb.txt index f5461b1cbc..fc4cddbbae 100644 --- a/doc/src/pair_comb.txt +++ b/doc/src/pair_comb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -112,10 +112,9 @@ nor file {ffield.comb3} with style {comb}. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -127,8 +126,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_coul.txt b/doc/src/pair_coul.txt index aa3a008bd3..2fd9445785 100644 --- a/doc/src/pair_coul.txt +++ b/doc/src/pair_coul.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -205,9 +205,9 @@ pairwise interactions within this distance are computed directly; interactions outside that distance are computed in reciprocal space. Style {coul/long/cs} is identical to {coul/long} except that a term is -added for the "core/shell model"_Section_howto.html#howto_25 to allow -charges on core and shell particles to be separated by r = 0.0. The -same correction is introduced for the {coul/wolf/cs} style which is +added for the "core/shell model"_Howto_coreshell.html to allow charges +on core and shell particles to be separated by r = 0.0. The same +correction is introduced for the {coul/wolf/cs} style which is identical to {coul/wolf}. Styles {tip4p/cut} and {tip4p/long} implement the coulomb part of @@ -226,16 +226,16 @@ is to enable LAMMPS to "find" the 2 H atoms associated with each O atom. For example, if the atom ID of an O atom in a TIP4P water molecule is 500, then its 2 H atoms must have IDs 501 and 502. -See the "howto section"_Section_howto.html#howto_8 for more -information on how to use the TIP4P pair styles and lists of -parameters to set. Note that the neighbor list cutoff for Coulomb -interactions is effectively extended by a distance 2*qdist when using -the TIP4P pair style, to account for the offset distance of the -fictitious charges on O atoms in water molecules. Thus it is -typically best in an efficiency sense to use a LJ cutoff >= Coulomb -cutoff + 2*qdist, to shrink the size of the neighbor list. This leads -to slightly larger cost for the long-range calculation, so you can -test the trade-off for your model. +See the "Howto tip4p"_Howto_tip4p.html doc page for more information +on how to use the TIP4P pair styles and lists of parameters to set. +Note that the neighbor list cutoff for Coulomb interactions is +effectively extended by a distance 2*qdist when using the TIP4P pair +style, to account for the offset distance of the fictitious charges on +O atoms in water molecules. Thus it is typically best in an +efficiency sense to use a LJ cutoff >= Coulomb cutoff + 2*qdist, to +shrink the size of the neighbor list. This leads to slightly larger +cost for the long-range calculation, so you can test the trade-off for +your model. :line @@ -268,10 +268,9 @@ command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -283,8 +282,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_coul_diel.txt b/doc/src/pair_coul_diel.txt index f651cb4b5e..14932c4835 100644 --- a/doc/src/pair_coul_diel.txt +++ b/doc/src/pair_coul_diel.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_coul_shield.txt b/doc/src/pair_coul_shield.txt index 19f69688d5..029e6e5b3b 100644 --- a/doc/src/pair_coul_shield.txt +++ b/doc/src/pair_coul_shield.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_cs.txt b/doc/src/pair_cs.txt index c1084c6087..6540c4b8f0 100644 --- a/doc/src/pair_cs.txt +++ b/doc/src/pair_cs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -54,8 +54,8 @@ pair_coeff 1 1 480.0 0.25 0.00 1.05 0.50 :pre These pair styles are designed to be used with the adiabatic core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham2. See -"Section 6.25"_Section_howto.html#howto_25 of the manual for an -overview of the model as implemented in LAMMPS. +the "Howto coreshell"_Howto_coreshell.html doc page for an overview of +the model as implemented in LAMMPS. The styles with a {coul/long} term are identical to the "pair_style born/coul/long"_pair_born.html and "pair_style diff --git a/doc/src/pair_dipole.txt b/doc/src/pair_dipole.txt index 2516e5eae4..1d8abc4521 100644 --- a/doc/src/pair_dipole.txt +++ b/doc/src/pair_dipole.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -186,10 +186,9 @@ type pair. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -201,8 +200,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_dpd.txt b/doc/src/pair_dpd.txt index 9e29e93430..1b636795d9 100644 --- a/doc/src/pair_dpd.txt +++ b/doc/src/pair_dpd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -110,10 +110,9 @@ random force. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -125,8 +124,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_dpd_fdt.txt b/doc/src/pair_dpd_fdt.txt index 867f3f2315..0d180ba068 100644 --- a/doc/src/pair_dpd_fdt.txt +++ b/doc/src/pair_dpd_fdt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -129,10 +129,9 @@ significantly larger timesteps to be taken. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -144,8 +143,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_dsmc.txt b/doc/src/pair_dsmc.txt index 9e24100ab7..2478a96d5f 100644 --- a/doc/src/pair_dsmc.txt +++ b/doc/src/pair_dsmc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_eam.txt b/doc/src/pair_eam.txt index 03e77f53ab..361dacb703 100644 --- a/doc/src/pair_eam.txt +++ b/doc/src/pair_eam.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -371,10 +371,9 @@ are listed. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -386,7 +385,7 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for more +See the "Speed packages"_Speed_packages.html doc page for more instructions on how to use the accelerated styles effectively. :line @@ -414,15 +413,10 @@ The eam pair styles can only be used via the {pair} keyword of the [Restrictions:] -All of these styles except the {eam/cd} style are part of the MANYBODY -package. They are only enabled if LAMMPS was built with that package. +All of these styles are part of the MANYBODY package. They are only +enabled if LAMMPS was built with that package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. -The {eam/cd} style is part of the USER-MISC package and also requires -the MANYBODY package. It is only enabled if LAMMPS was built with -those packages. See the "Making LAMMPS"_Section_start.html#start_3 -section for more info. - [Related commands:] "pair_coeff"_pair_coeff.html diff --git a/doc/src/pair_edip.txt b/doc/src/pair_edip.txt index e5b1420b59..cce564856e 100644 --- a/doc/src/pair_edip.txt +++ b/doc/src/pair_edip.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -109,10 +109,9 @@ the EDIP package. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -124,8 +123,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_eff.txt b/doc/src/pair_eff.txt index ee7dc99932..a55860297e 100644 --- a/doc/src/pair_eff.txt +++ b/doc/src/pair_eff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_eim.txt b/doc/src/pair_eim.txt index 75ad2d4683..6490a859c1 100644 --- a/doc/src/pair_eim.txt +++ b/doc/src/pair_eim.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -136,10 +136,9 @@ needs. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -151,8 +150,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_exp6_rx.txt b/doc/src/pair_exp6_rx.txt index 7eafa23543..08ab1cf3c9 100644 --- a/doc/src/pair_exp6_rx.txt +++ b/doc/src/pair_exp6_rx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -153,10 +153,9 @@ pair interaction. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -168,8 +167,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_extep.txt b/doc/src/pair_extep.txt index 9a784e2501..3acad1132d 100644 --- a/doc/src/pair_extep.txt +++ b/doc/src/pair_extep.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_gauss.txt b/doc/src/pair_gauss.txt index f6f46a2de8..9662a4f29c 100644 --- a/doc/src/pair_gauss.txt +++ b/doc/src/pair_gauss.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -84,10 +84,9 @@ is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -99,8 +98,8 @@ by including their suffix, or you can use the "-suffix command-line switch7_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_gayberne.txt b/doc/src/pair_gayberne.txt index c923578586..af41f6879e 100644 --- a/doc/src/pair_gayberne.txt +++ b/doc/src/pair_gayberne.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -133,10 +133,9 @@ pair_coeff sigma to 1.0 as well. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -148,8 +147,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_gran.txt b/doc/src/pair_gran.txt index d7e87af013..55b00a172f 100644 --- a/doc/src/pair_gran.txt +++ b/doc/src/pair_gran.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -179,10 +179,9 @@ potential. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -194,8 +193,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_gromacs.txt b/doc/src/pair_gromacs.txt index ec84a2d57a..9f34ac8c43 100644 --- a/doc/src/pair_gromacs.txt +++ b/doc/src/pair_gromacs.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -91,10 +91,9 @@ cutoff(s) specified in the pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -106,8 +105,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_gw.txt b/doc/src/pair_gw.txt index 8f1251cf1f..809ff008bc 100644 --- a/doc/src/pair_gw.txt +++ b/doc/src/pair_gw.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_hbond_dreiding.txt b/doc/src/pair_hbond_dreiding.txt index d3cf90ec14..60b0b02174 100644 --- a/doc/src/pair_hbond_dreiding.txt +++ b/doc/src/pair_hbond_dreiding.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -33,8 +33,8 @@ pair_coeff 1 2 hbond/dreiding/morse 3 i 3.88 1.7241379 2.9 2 9 11 90 :pre [Description:] The {hbond/dreiding} styles compute the Acceptor-Hydrogen-Donor (AHD) -3-body hydrogen bond interaction for the -"DREIDING"_Section_howto.html#howto_4 force field, given by: +3-body hydrogen bond interaction for the "DREIDING"_Howto_bioFF.html +force field, given by: :c,image(Eqs/pair_hbond_dreiding.jpg) @@ -65,8 +65,8 @@ potential for the Donor-Acceptor interactions. "(Liu)"_#Liu showed that the Morse form gives improved results for Dendrimer simulations, when n = 2. -See this "howto section"_Section_howto.html#howto_4 of the manual for -more information on the DREIDING forcefield. +See the "Howto bioFF"_Howto_bioFF.html doc page for more information +on the DREIDING forcefield. NOTE: Because the Dreiding hydrogen bond potential is only one portion of an overall force field which typically includes other pairwise @@ -166,10 +166,9 @@ optional parameters. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -181,8 +180,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_hybrid.txt b/doc/src/pair_hybrid.txt index d37dedc709..9b36109c27 100644 --- a/doc/src/pair_hybrid.txt +++ b/doc/src/pair_hybrid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -315,8 +315,8 @@ off C/C interaction, i.e. by setting the appropriate coefficients to Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. Since the {hybrid} and {hybrid/overlay} styles delegate computation to the individual sub-styles, the suffix versions of the {hybrid} and @@ -334,8 +334,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_ilp_graphene_hbn.txt b/doc/src/pair_ilp_graphene_hbn.txt index dbc9c458e2..9c9304c4a7 100644 --- a/doc/src/pair_ilp_graphene_hbn.txt +++ b/doc/src/pair_ilp_graphene_hbn.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_kim.txt b/doc/src/pair_kim.txt index c5d910e27c..889c1e892f 100644 --- a/doc/src/pair_kim.txt +++ b/doc/src/pair_kim.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -46,8 +46,8 @@ are included in the KIM library by default, in the "What is in the KIM API source package?" section. To use this pair style, you must first download and install the KIM -API library from the "OpenKIM website"_https://openkim.org. The "KIM -section of Section packages"_Section_packages.html#KIM has +API library from the "OpenKIM website"_https://openkim.org. The KIM +section of the "Packages details"_Packages_details.html doc page has instructions on how to do this with a simple make command, when building LAMMPS. diff --git a/doc/src/pair_kolmogorov_crespi_full.txt b/doc/src/pair_kolmogorov_crespi_full.txt index a16d123b89..8fc6bbff49 100644 --- a/doc/src/pair_kolmogorov_crespi_full.txt +++ b/doc/src/pair_kolmogorov_crespi_full.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_kolmogorov_crespi_z.txt b/doc/src/pair_kolmogorov_crespi_z.txt index 97f132eacd..7dad2e3701 100644 --- a/doc/src/pair_kolmogorov_crespi_z.txt +++ b/doc/src/pair_kolmogorov_crespi_z.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lcbop.txt b/doc/src/pair_lcbop.txt index 148a1d47a0..ddf8551d56 100644 --- a/doc/src/pair_lcbop.txt +++ b/doc/src/pair_lcbop.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_line_lj.txt b/doc/src/pair_line_lj.txt index 44cfeb48e9..c2c6beb97f 100644 --- a/doc/src/pair_line_lj.txt +++ b/doc/src/pair_line_lj.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_list.txt b/doc/src/pair_list.txt index 653e8b0c2d..023cc0be4f 100644 --- a/doc/src/pair_list.txt +++ b/doc/src/pair_list.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_lj.txt b/doc/src/pair_lj.txt index e297d479bc..a55cb348d7 100644 --- a/doc/src/pair_lj.txt +++ b/doc/src/pair_lj.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -185,9 +185,9 @@ distance are computed directly; interactions outside that distance are computed in reciprocal space. Style {lj/cut/coul/long/cs} is identical to {lj/cut/coul/long} except -that a term is added for the "core/shell -model"_Section_howto.html#howto_25 to allow charges on core and shell -particles to be separated by r = 0.0. +that a term is added for the "core/shell model"_Howto_coreshell.html +to allow charges on core and shell particles to be separated by r = +0.0. Style {coul/wolf} adds a Coulombic pairwise interaction via the Wolf summation method, described in "Wolf"_#Wolf1, given by: @@ -223,16 +223,16 @@ is to enable LAMMPS to "find" the 2 H atoms associated with each O atom. For example, if the atom ID of an O atom in a TIP4P water molecule is 500, then its 2 H atoms must have IDs 501 and 502. -See the "howto section"_Section_howto.html#howto_8 for more -information on how to use the TIP4P pair styles and lists of -parameters to set. Note that the neighbor list cutoff for Coulomb -interactions is effectively extended by a distance 2*qdist when using -the TIP4P pair style, to account for the offset distance of the -fictitious charges on O atoms in water molecules. Thus it is -typically best in an efficiency sense to use a LJ cutoff >= Coulomb -cutoff + 2*qdist, to shrink the size of the neighbor list. This leads -to slightly larger cost for the long-range calculation, so you can -test the trade-off for your model. +See the "Howto tip4p"_Howto_tip4p.html doc page for more information +on how to use the TIP4P pair styles and lists of parameters to set. +Note that the neighbor list cutoff for Coulomb interactions is +effectively extended by a distance 2*qdist when using the TIP4P pair +style, to account for the offset distance of the fictitious charges on +O atoms in water molecules. Thus it is typically best in an +efficiency sense to use a LJ cutoff >= Coulomb cutoff + 2*qdist, to +shrink the size of the neighbor list. This leads to slightly larger +cost for the long-range calculation, so you can test the trade-off for +your model. For all of the {lj/cut} pair styles, the following coefficients must be defined for each pair of atoms types via the @@ -269,10 +269,9 @@ pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -284,8 +283,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj96.txt b/doc/src/pair_lj96.txt index 83f6ec063d..7c68e26ace 100644 --- a/doc/src/pair_lj96.txt +++ b/doc/src/pair_lj96.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -49,10 +49,9 @@ cutoff specified in the pair_style command is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -64,8 +63,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_cubic.txt b/doc/src/pair_lj_cubic.txt index 4ca8c3c141..d04a3d8b9d 100644 --- a/doc/src/pair_lj_cubic.txt +++ b/doc/src/pair_lj_cubic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -63,10 +63,9 @@ located at rmin = 2^(1/6)*sigma. In the above example, sigma = Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -78,8 +77,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_expand.txt b/doc/src/pair_lj_expand.txt index e0838426f6..3e9996da4d 100644 --- a/doc/src/pair_lj_expand.txt +++ b/doc/src/pair_lj_expand.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -53,10 +53,9 @@ optional. If not specified, the global LJ cutoff is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -68,8 +67,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_long.txt b/doc/src/pair_lj_long.txt index 6be4562d18..1ba3610f86 100644 --- a/doc/src/pair_lj_long.txt +++ b/doc/src/pair_lj_long.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -90,7 +90,7 @@ is to enable LAMMPS to "find" the 2 H atoms associated with each O atom. For example, if the atom ID of an O atom in a TIP4P water molecule is 500, then its 2 H atoms must have IDs 501 and 502. -See the "howto section"_Section_howto.html#howto_8 for more +See the the "Howto tip4p"_Howto_tip4p.html doc page for more information on how to use the TIP4P pair style. Note that the neighbor list cutoff for Coulomb interactions is effectively extended by a distance 2*qdist when using the TIP4P pair style, to account for @@ -156,10 +156,9 @@ specified in the pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -171,8 +170,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_smooth.txt b/doc/src/pair_lj_smooth.txt index b1678cad58..575c023579 100644 --- a/doc/src/pair_lj_smooth.txt +++ b/doc/src/pair_lj_smooth.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -62,10 +62,9 @@ specified, the global values for Rin and Rc are used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -77,8 +76,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_smooth_linear.txt b/doc/src/pair_lj_smooth_linear.txt index 5f7c226cee..0fab768b8f 100644 --- a/doc/src/pair_lj_smooth_linear.txt +++ b/doc/src/pair_lj_smooth_linear.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -49,10 +49,9 @@ LJ cutoff specified in the pair_style command is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -64,8 +63,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lj_soft.txt b/doc/src/pair_lj_soft.txt index 2ef133da55..d10fcd0472 100644 --- a/doc/src/pair_lj_soft.txt +++ b/doc/src/pair_lj_soft.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -207,10 +207,9 @@ directory tree, under examples/USER/fep. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -222,8 +221,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lubricate.txt b/doc/src/pair_lubricate.txt index b39c7545c7..e9a0a0d291 100644 --- a/doc/src/pair_lubricate.txt +++ b/doc/src/pair_lubricate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -143,7 +143,7 @@ must be specified. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "this section"_Section_accelerate.html of +hardware, as discussed in "this section"_Speed.html of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues. @@ -157,7 +157,7 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "this section"_Section_accelerate.html of the manual for more +See "this section"_Speed.html of the manual for more instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_lubricateU.txt b/doc/src/pair_lubricateU.txt index 720a8539b8..6b74c208bf 100644 --- a/doc/src/pair_lubricateU.txt +++ b/doc/src/pair_lubricateU.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_mdf.txt b/doc/src/pair_mdf.txt index ca06f1bf8e..e5a8cac845 100644 --- a/doc/src/pair_mdf.txt +++ b/doc/src/pair_mdf.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_meam.txt b/doc/src/pair_meam.txt index c7449428bd..45f88f0bbe 100644 --- a/doc/src/pair_meam.txt +++ b/doc/src/pair_meam.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_meam_spline.txt b/doc/src/pair_meam_spline.txt index 6653b397a0..9615512041 100644 --- a/doc/src/pair_meam_spline.txt +++ b/doc/src/pair_meam_spline.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -106,10 +106,9 @@ MEAM files. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -121,8 +120,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_meam_sw_spline.txt b/doc/src/pair_meam_sw_spline.txt index fa731799dd..ba0953a17c 100644 --- a/doc/src/pair_meam_sw_spline.txt +++ b/doc/src/pair_meam_sw_spline.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_meso.txt b/doc/src/pair_meso.txt index bcdf717d68..ad3880e642 100644 --- a/doc/src/pair_meso.txt +++ b/doc/src/pair_meso.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_mgpt.txt b/doc/src/pair_mgpt.txt index f8b0c9f071..09fe611686 100644 --- a/doc/src/pair_mgpt.txt +++ b/doc/src/pair_mgpt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_mie.txt b/doc/src/pair_mie.txt index ad602db9f1..818e37272b 100644 --- a/doc/src/pair_mie.txt +++ b/doc/src/pair_mie.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_modify.txt b/doc/src/pair_modify.txt index 34dbb5bc3d..c043fde5a7 100644 --- a/doc/src/pair_modify.txt +++ b/doc/src/pair_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_momb.txt b/doc/src/pair_momb.txt index 77c4f184d9..545b650f75 100644 --- a/doc/src/pair_momb.txt +++ b/doc/src/pair_momb.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_morse.txt b/doc/src/pair_morse.txt index 3eb5ac5afe..85a42986ec 100644 --- a/doc/src/pair_morse.txt +++ b/doc/src/pair_morse.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -101,10 +101,9 @@ cutoff is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -116,8 +115,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_multi_lucy.txt b/doc/src/pair_multi_lucy.txt index 38fd1ede4a..31d52a58c8 100644 --- a/doc/src/pair_multi_lucy.txt +++ b/doc/src/pair_multi_lucy.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_multi_lucy_rx.txt b/doc/src/pair_multi_lucy_rx.txt index 57abcf4a4c..e09dde3f80 100644 --- a/doc/src/pair_multi_lucy_rx.txt +++ b/doc/src/pair_multi_lucy_rx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -204,10 +204,9 @@ This pair style can only be used via the {pair} keyword of the Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -219,8 +218,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_nb3b_harmonic.txt b/doc/src/pair_nb3b_harmonic.txt index 2395707fb4..720b9ea2a1 100644 --- a/doc/src/pair_nb3b_harmonic.txt +++ b/doc/src/pair_nb3b_harmonic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -92,10 +92,9 @@ a particular simulation; LAMMPS ignores those entries. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -107,8 +106,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_nm.txt b/doc/src/pair_nm.txt index 81cea1a38d..355bfd5573 100644 --- a/doc/src/pair_nm.txt +++ b/doc/src/pair_nm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -133,10 +133,9 @@ the "run_style respa"_run_style.html command. They do not support the Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -148,8 +147,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Restrictions:] diff --git a/doc/src/pair_none.txt b/doc/src/pair_none.txt index f4e9525198..960dc05d97 100644 --- a/doc/src/pair_none.txt +++ b/doc/src/pair_none.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_oxdna.txt b/doc/src/pair_oxdna.txt index f272d15a86..5ec9915297 100644 --- a/doc/src/pair_oxdna.txt +++ b/doc/src/pair_oxdna.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_oxdna2.txt b/doc/src/pair_oxdna2.txt index 1b55031b2c..a1d2cfdb7c 100644 --- a/doc/src/pair_oxdna2.txt +++ b/doc/src/pair_oxdna2.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_peri.txt b/doc/src/pair_peri.txt index deca093e3b..14abd4541e 100644 --- a/doc/src/pair_peri.txt +++ b/doc/src/pair_peri.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -139,10 +139,9 @@ details please see the description in "(Mtchell2011a)". Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -154,8 +153,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_polymorphic.txt b/doc/src/pair_polymorphic.txt index c088e8bb22..eb0c30f249 100644 --- a/doc/src/pair_polymorphic.txt +++ b/doc/src/pair_polymorphic.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_python.txt b/doc/src/pair_python.txt index 2f8ed7a27c..1433557e03 100644 --- a/doc/src/pair_python.txt +++ b/doc/src/pair_python.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_quip.txt b/doc/src/pair_quip.txt index 9436b0c4ed..3570a52801 100644 --- a/doc/src/pair_quip.txt +++ b/doc/src/pair_quip.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_reax.txt b/doc/src/pair_reax.txt index 1d13f93706..a3b84955cd 100644 --- a/doc/src/pair_reax.txt +++ b/doc/src/pair_reax.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_reaxc.txt b/doc/src/pair_reaxc.txt index 39759b3111..ec57548640 100644 --- a/doc/src/pair_reaxc.txt +++ b/doc/src/pair_reaxc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -50,11 +50,11 @@ as a package. The {reax/c/kk} style is a Kokkos version of the ReaxFF potential that is derived from the {reax/c} style. The Kokkos version can run on GPUs and can also use OpenMP multithreading. For more information about the -Kokkos package, see "Section 4"_Section_packages.html#kokkos and -"Section 5.3.3"_accelerate_kokkos.html. One important consideration -when using the {reax/c/kk} style is the choice of either half or full -neighbor lists. This setting can be changed using the Kokkos -"package"_package.html command. +Kokkos package, see "Packages details"_Packages_details.html and +"Speed kokkos"_Speed_kokkos.html doc pages. One important +consideration when using the {reax/c/kk} style is the choice of either +half or full neighbor lists. This setting can be changed using the +Kokkos "package"_package.html command. The {reax/c} style differs from the "pair_style reax"_pair_reax.html command in the lo-level implementation details. The {reax} style is a @@ -303,10 +303,9 @@ This pair style can only be used via the {pair} keyword of the Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -318,8 +317,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_resquared.txt b/doc/src/pair_resquared.txt index 9ad95eb5fc..6e72408ebc 100644 --- a/doc/src/pair_resquared.txt +++ b/doc/src/pair_resquared.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -145,10 +145,9 @@ specified in the pair_style command is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -160,8 +159,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_sdk.txt b/doc/src/pair_sdk.txt index 360136a4ea..ccf704b6f7 100644 --- a/doc/src/pair_sdk.txt +++ b/doc/src/pair_sdk.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -85,10 +85,9 @@ pair_style command. Styles with a {gpu}, {intel}, {kk}, {omp} or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP, and OPT packages respectively. They are only enabled if @@ -100,8 +99,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_smd_hertz.txt b/doc/src/pair_smd_hertz.txt index eeaa3387a4..f2d633903a 100644 --- a/doc/src/pair_smd_hertz.txt +++ b/doc/src/pair_smd_hertz.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_smd_tlsph.txt b/doc/src/pair_smd_tlsph.txt index f73acf74ee..3aeaa31553 100644 --- a/doc/src/pair_smd_tlsph.txt +++ b/doc/src/pair_smd_tlsph.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_smd_triangulated_surface.txt b/doc/src/pair_smd_triangulated_surface.txt index c32bf3a22e..65526cfba8 100644 --- a/doc/src/pair_smd_triangulated_surface.txt +++ b/doc/src/pair_smd_triangulated_surface.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_smd_ulsph.txt b/doc/src/pair_smd_ulsph.txt index 268fe78d02..a5bda54d5f 100644 --- a/doc/src/pair_smd_ulsph.txt +++ b/doc/src/pair_smd_ulsph.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_smtbq.txt b/doc/src/pair_smtbq.txt index c8d6b21b3f..c70202c2e1 100644 --- a/doc/src/pair_smtbq.txt +++ b/doc/src/pair_smtbq.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_snap.txt b/doc/src/pair_snap.txt index 27dcf6082b..f9bd8910e4 100644 --- a/doc/src/pair_snap.txt +++ b/doc/src/pair_snap.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -175,10 +175,9 @@ This pair style can only be used via the {pair} keyword of the Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -190,8 +189,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_soft.txt b/doc/src/pair_soft.txt index 08fa88c477..374711825b 100644 --- a/doc/src/pair_soft.txt +++ b/doc/src/pair_soft.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -82,10 +82,9 @@ variables. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -97,8 +96,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_sph_heatconduction.txt b/doc/src/pair_sph_heatconduction.txt index 2387056a1b..d19c28a3cb 100644 --- a/doc/src/pair_sph_heatconduction.txt +++ b/doc/src/pair_sph_heatconduction.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_idealgas.txt b/doc/src/pair_sph_idealgas.txt index 957f901425..a670949a89 100644 --- a/doc/src/pair_sph_idealgas.txt +++ b/doc/src/pair_sph_idealgas.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_lj.txt b/doc/src/pair_sph_lj.txt index ef89c4ad3e..152e6cf8a2 100644 --- a/doc/src/pair_sph_lj.txt +++ b/doc/src/pair_sph_lj.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_rhosum.txt b/doc/src/pair_sph_rhosum.txt index 352e717f76..3cd1c5abb2 100644 --- a/doc/src/pair_sph_rhosum.txt +++ b/doc/src/pair_sph_rhosum.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_taitwater.txt b/doc/src/pair_sph_taitwater.txt index 9177ca80b8..7b9a8188f2 100644 --- a/doc/src/pair_sph_taitwater.txt +++ b/doc/src/pair_sph_taitwater.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_sph_taitwater_morris.txt b/doc/src/pair_sph_taitwater_morris.txt index e6c5a6bb20..02f16d8982 100644 --- a/doc/src/pair_sph_taitwater_morris.txt +++ b/doc/src/pair_sph_taitwater_morris.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_spin_dmi.txt b/doc/src/pair_spin_dmi.txt index 24877906f3..375e59fe89 100644 --- a/doc/src/pair_spin_dmi.txt +++ b/doc/src/pair_spin_dmi.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -25,24 +25,46 @@ pair_coeff 1 2 dmi 4.0 0.00109 0.0 0.0 1.0 :pre [Description:] Style {spin/dmi} computes the Dzyaloshinskii-Moriya (DM) interaction -between pairs of magnetic spins: +between pairs of magnetic spins. +According to the expression reported in "(Rohart)"_#Rohart, one has +the following DM energy: :c,image(Eqs/pair_spin_dmi_interaction.jpg) where si and sj are two neighboring magnetic spins of two particles, -eij = (ri - rj)/|ri-rj| is the normalized separation vector between the -two particles, and D is the DM vector defining the intensity and the -sign of the interaction. +eij = (ri - rj)/|ri-rj| is the unit vector between sites i and j, +and D is the DM vector defining the intensity (in eV) and the direction +of the interaction. -Examples and more explanations about this interaction and its parametrization are -reported in "(Tranchida)"_#Tranchida5. +In "(Rohart)"_#Rohart, D is defined as the direction normal to the film oriented +from the high spin-orbit layer to the magnetic ultrathin film. -From this DM interaction, each spin i will be submitted to a magnetic torque -omega and its associated atom to a force F (for spin-lattice calculations only). +The application of a spin-lattice Poisson bracket to this energy (as described +in "(Tranchida)"_#Tranchida5) allows to derive a magnetic torque omega, and a +mechanical force F (for spin-lattice calculations only) for each magnetic +particle i: + +:c,image(Eqs/pair_spin_dmi_forces.jpg) More details about the derivation of these torques/forces are reported in "(Tranchida)"_#Tranchida5. +For the {spin/dmi} pair style, 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, and +set in the following order: + +rc (distance units) +|D| (energy units) +Dx, Dy, Dz (direction of D) :ul + +Note that rc is the radius cutoff of the considered DM interaction, |D| is +the norm of the DM vector (in eV), and Dx, Dy and Dz define its direction. + +None of those coefficients is optional. If not specified, the {spin/dmi} +pair style cannot be used. + :line [Restrictions:] @@ -61,6 +83,9 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. :line +:link(Rohart) +[(Rohart)] Rohart and Thiaville, +Physical Review B, 88(18), 184422. (2013). :link(Tranchida5) [(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson, Journal of Computational Physics, (2018). diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index ad3357cb5e..24eb635b81 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,18 +32,15 @@ pairs of magnetic spins: where si and sj are two neighboring magnetic spins of two particles, rij = ri - rj is the inter-atomic distance between the two particles, and J(rij) is a function defining the intensity and the sign of the exchange -interaction. - -This function is defined as: +interaction for different neighboring shells. This function is defined as: :c,image(Eqs/pair_spin_exchange_function.jpg) where a, b and d are the three constant coefficients defined in the associated -"pair_coeff" command. +"pair_coeff" command (see below for more explanations). The coefficients a, b, and d need to be fitted so that the function above matches with the value of the exchange interaction for the N neighbor shells taken into account. - Examples and more explanations about this function and its parametrization are reported in "(Tranchida)"_#Tranchida3. @@ -54,11 +51,30 @@ such as: :c,image(Eqs/pair_spin_exchange_forces.jpg) -with h the Planck constant (in metal units). +with h the Planck constant (in metal units), and eij = (ri - rj)/|ri-rj| the unit +vector between sites i and j. More details about the derivation of these torques/forces are reported in "(Tranchida)"_#Tranchida3. +For the {spin/exchange} pair style, 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, and +set in the following order: + +rc (distance units) +a (energy units) +b (adim parameter) +d (distance units) :ul + +Note that rc is the radius cutoff of the considered exchange interaction, +and a, b and d are the three coefficients performing the parametrization +of the function J(rij) defined above. + +None of those coefficients is optional. If not specified, the +{spin/exchange} pair style cannot be used. + :line [Restrictions:] diff --git a/doc/src/pair_spin_magelec.txt b/doc/src/pair_spin_magelec.txt index 8ba24c46af..b338fae5dc 100644 --- a/doc/src/pair_spin_magelec.txt +++ b/doc/src/pair_spin_magelec.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_spin_neel.txt b/doc/src/pair_spin_neel.txt index 8551f8d636..0967632ed2 100644 --- a/doc/src/pair_spin_neel.txt +++ b/doc/src/pair_spin_neel.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_srp.txt b/doc/src/pair_srp.txt index e7f1e00d10..e784ac3d17 100644 --- a/doc/src/pair_srp.txt +++ b/doc/src/pair_srp.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_style.txt b/doc/src/pair_style.txt index 7e29544a70..b0872e6447 100644 --- a/doc/src/pair_style.txt +++ b/doc/src/pair_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -78,22 +78,22 @@ previously specified pair_coeff values. :line Here is an alphabetic list of pair styles defined in LAMMPS. They are -also given in more compact form in the pair section of "this -page"_Section_commands.html#cmd_5. +also listed in more compact form on the "Commands +pair"_Commands_pair.html doc page. Click on the style to display the formula it computes, arguments specified in the pair_style command, and coefficients specified by the associated "pair_coeff"_pair_coeff.html command. There are also additional pair styles (not listed here) submitted by -users which are included in the LAMMPS distribution. The list of -these with links to the individual styles are given in the pair -section of "this page"_Section_commands.html#cmd_5. +users which are included in the LAMMPS distribution. The full list of +all pair styles is on the "Commands pair"_Commands_pair.html doc page. There are also additional accelerated pair styles (not listed here) -included in the LAMMPS distribution for faster performance on CPUs and -GPUs. The list of these with links to the individual styles are given -in the pair section of "this page"_Section_commands.html#cmd_5. +included in the LAMMPS distribution for faster performance on CPUs, +GPUs, and KNLs. The individual style names on the "Commands +pair"_Commands_pair.html doc page are followed by one or more of +(g,i,k,o,t) to indicate which accerlerated styles exist. "pair_style none"_pair_none.html - turn off pairwise interactions "pair_style hybrid"_pair_hybrid.html - multiple styles of pairwise interactions @@ -105,7 +105,7 @@ in the pair section of "this page"_Section_commands.html#cmd_5. "pair_style airebo/morse"_pair_airebo.html - AIREBO with Morse instead of LJ "pair_style atm"_pair_atm.html - Axilrod-Teller-Muto potential "pair_style beck"_pair_beck.html - Beck potential -"pair_style body"_pair_body.html - interactions between body particles +"pair_style body/nparticle"_pair_body_nparticle.html - interactions between body particles "pair_style bop"_pair_bop.html - BOP potential of Pettifor "pair_style born"_pair_born.html - Born-Mayer-Huggins potential "pair_style born/coul/long"_pair_born.html - Born-Mayer-Huggins with long-range Coulombics diff --git a/doc/src/pair_sw.txt b/doc/src/pair_sw.txt index 4932fe55d3..e6741791df 100644 --- a/doc/src/pair_sw.txt +++ b/doc/src/pair_sw.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -144,10 +144,9 @@ taken from the ij and ik pairs (sigma, a, gamma) Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -164,8 +163,8 @@ additional 5 to 10 percent performance improvement when the Stillinger-Weber parameters p and q are set to 4 and 0 respectively. These parameters are common for modeling silicon and water. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_table.txt b/doc/src/pair_table.txt index b99491b477..5e3c1f5ff6 100644 --- a/doc/src/pair_table.txt +++ b/doc/src/pair_table.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -217,10 +217,9 @@ one that matches the specified keyword. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -232,8 +231,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_table_rx.txt b/doc/src/pair_table_rx.txt index cd3a7ef31b..41be067bac 100644 --- a/doc/src/pair_table_rx.txt +++ b/doc/src/pair_table_rx.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -227,10 +227,9 @@ This pair style can only be used via the {pair} keyword of the Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -242,8 +241,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_tersoff.txt b/doc/src/pair_tersoff.txt index 918e889924..821c38f3e4 100644 --- a/doc/src/pair_tersoff.txt +++ b/doc/src/pair_tersoff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -179,10 +179,9 @@ defined in various papers. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -194,8 +193,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_tersoff_mod.txt b/doc/src/pair_tersoff_mod.txt index e0c2b5a5cb..ac1f79a80b 100644 --- a/doc/src/pair_tersoff_mod.txt +++ b/doc/src/pair_tersoff_mod.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -131,10 +131,9 @@ for SiSiSi means Si bonded to a Si with another Si atom influencing the bond. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -146,8 +145,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_tersoff_zbl.txt b/doc/src/pair_tersoff_zbl.txt index 21d57e4e88..a89d4e3ea1 100644 --- a/doc/src/pair_tersoff_zbl.txt +++ b/doc/src/pair_tersoff_zbl.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -189,10 +189,9 @@ providing the base ZBL implementation. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -204,8 +203,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_thole.txt b/doc/src/pair_thole.txt index 41a4059cee..7ce8b7cf4b 100644 --- a/doc/src/pair_thole.txt +++ b/doc/src/pair_thole.txt @@ -9,7 +9,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -45,8 +45,8 @@ pair_style lj/cut/thole/long 2.6 12.0 :pre The {thole} pair styles are meant to be used with force fields that include explicit polarization through Drude dipoles. This link describes how to use the "thermalized Drude oscillator -model"_tutorial_drude.html in LAMMPS and polarizable models in LAMMPS -are discussed in "this Section"_Section_howto.html#howto_25. +model"_Howto_drude.html in LAMMPS and polarizable models in LAMMPS are +discussed on the "Howto polarizable"_Howto_polarizable.html doc page. The {thole} pair style should be used as a sub-style within in the "pair_hybrid/overlay"_pair_hybrid.html command, in conjunction with a @@ -130,10 +130,9 @@ the {pair_style} command line. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -145,8 +144,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. [Mixing]: diff --git a/doc/src/pair_tri_lj.txt b/doc/src/pair_tri_lj.txt index 42a5bbdfe2..3915ffc238 100644 --- a/doc/src/pair_tri_lj.txt +++ b/doc/src/pair_tri_lj.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_ufm.txt b/doc/src/pair_ufm.txt index 88a22864cc..dbc6fd0664 100644 --- a/doc/src/pair_ufm.txt +++ b/doc/src/pair_ufm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -69,10 +69,9 @@ NOTE: The thermodynamic integration procedure can be performed with this potenti Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -84,8 +83,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_vashishta.txt b/doc/src/pair_vashishta.txt index d9c66d45c0..2e404e8bef 100644 --- a/doc/src/pair_vashishta.txt +++ b/doc/src/pair_vashishta.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -171,10 +171,9 @@ two-body parameters from the CCC and CSiSi entries. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -186,8 +185,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_write.txt b/doc/src/pair_write.txt index 9f5970fcbc..48ad76e76e 100644 --- a/doc/src/pair_write.txt +++ b/doc/src/pair_write.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pair_yukawa.txt b/doc/src/pair_yukawa.txt index e7c063ded9..5a8363260a 100644 --- a/doc/src/pair_yukawa.txt +++ b/doc/src/pair_yukawa.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -49,10 +49,9 @@ cutoff is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -64,8 +63,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_yukawa_colloid.txt b/doc/src/pair_yukawa_colloid.txt index 2037a9451f..515062d9eb 100644 --- a/doc/src/pair_yukawa_colloid.txt +++ b/doc/src/pair_yukawa_colloid.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -80,10 +80,9 @@ yukawa/colloid cutoff is used. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -95,8 +94,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_zbl.txt b/doc/src/pair_zbl.txt index 1984cd831f..1472c7b672 100644 --- a/doc/src/pair_zbl.txt +++ b/doc/src/pair_zbl.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -71,10 +71,9 @@ copper. Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available -hardware, as discussed in "Section 5"_Section_accelerate.html -of the manual. The accelerated styles take the same arguments and -should produce the same results, except for round-off and precision -issues. +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if @@ -86,8 +85,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/pair_zero.txt b/doc/src/pair_zero.txt index e58b33c75f..b324003bd1 100644 --- a/doc/src/pair_zero.txt +++ b/doc/src/pair_zero.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/pairs.txt b/doc/src/pairs.txt index 1a5e98a109..4c3eef2cd1 100644 --- a/doc/src/pairs.txt +++ b/doc/src/pairs.txt @@ -10,8 +10,9 @@ Pair Styles :h1 pair_airebo pair_awpmd pair_beck - pair_body + pair_body_nparticle pair_body_rounded_polygon + pair_body_rounded_polyhedron pair_bop pair_born pair_brownian diff --git a/doc/src/partition.txt b/doc/src/partition.txt index 610eee99b3..d4fe06c098 100644 --- a/doc/src/partition.txt +++ b/doc/src/partition.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/prd.txt b/doc/src/prd.txt index 3c0305e316..b2145ebad1 100644 --- a/doc/src/prd.txt +++ b/doc/src/prd.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -69,8 +69,8 @@ simulation with more replicas (partitions) than you have physical processors, e.g you can run a 10-replica simulation on one or two processors. However for PRD, this makes little sense, since running a replica on virtual instead of physical processors,offers no effective -parallel speed-up in searching for infrequent events. See "Section -6.5"_Section_howto.html#howto_5 of the manual for further discussion. +parallel speed-up in searching for infrequent events. See the "Howto +replica"_Howto_replica.html doc page for further discussion. When a PRD simulation is performed, it is assumed that each replica is running the same model, though LAMMPS does not check for this. diff --git a/doc/src/print.txt b/doc/src/print.txt index 77e0c7cfd3..476d4104fa 100644 --- a/doc/src/print.txt +++ b/doc/src/print.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/processors.txt b/doc/src/processors.txt index e54b2cede3..df13ae1f61 100644 --- a/doc/src/processors.txt +++ b/doc/src/processors.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/python.txt b/doc/src/python.txt index d670fcc77f..4f4faca8f4 100644 --- a/doc/src/python.txt +++ b/doc/src/python.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -199,9 +199,9 @@ The {here} keyword does the same thing, except that the Python code follows as a single argument to the {here} keyword. This can be done using triple quotes as delimiters, as in the examples above. This allows Python code to be listed verbatim in your input script, with -proper indentation, blank lines, and comments, as desired. See -"Section 3.2"_Section_commands.html#cmd_2, for an explanation of how -triple quotes can be used as part of input script syntax. +proper indentation, blank lines, and comments, as desired. See the +"Commands parse"_Commands_parse.html doc page, for an explanation of +how triple quotes can be used as part of input script syntax. The {exists} keyword takes no argument. It means that Python code containing the required Python function defined by the {func} setting, diff --git a/doc/src/quit.txt b/doc/src/quit.txt index 843d3de7f3..802df97711 100644 --- a/doc/src/quit.txt +++ b/doc/src/quit.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/read_data.txt b/doc/src/read_data.txt index fd297e36c1..ded51a4d99 100644 --- a/doc/src/read_data.txt +++ b/doc/src/read_data.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -322,9 +322,9 @@ with tilt factors that exceed these limits, you can use the "box tilt"_box.html command, with a setting of {large}; a setting of {small} is the default. -See "Section 6.12"_Section_howto.html#howto_12 of the doc pages -for a geometric description of triclinic boxes, as defined by LAMMPS, -and how to transform these parameters to and from other commonly used +See the "Howto triclinic"_Howto_triclinic.html doc page for a +geometric description of triclinic boxes, as defined by LAMMPS, and +how to transform these parameters to and from other commonly used triclinic representations. When a triclinic system is used, the simulation domain should normally @@ -772,9 +772,9 @@ the "bodies" keyword. Each body can have a variable number of integer and/or floating-point values. The number and meaning of the values is defined by the body -style, as described in the "body"_body.html doc page. The body style -is given as an argument to the "atom_style body"_atom_style.html -command. +style, as described in the "Howto body"_Howto_body.html doc page. The +body style is given as an argument to the "atom_style +body"_atom_style.html command. The Ninteger and Ndouble values determine how many integer and floating-point values are specified for this particle. Ninteger and diff --git a/doc/src/read_dump.txt b/doc/src/read_dump.txt index 21c6df5017..a3c0733e07 100644 --- a/doc/src/read_dump.txt +++ b/doc/src/read_dump.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/read_restart.txt b/doc/src/read_restart.txt index 6f6a828229..488c36f020 100644 --- a/doc/src/read_restart.txt +++ b/doc/src/read_restart.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/region.txt b/doc/src/region.txt index 5039e4a516..21396ae1fd 100644 --- a/doc/src/region.txt +++ b/doc/src/region.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -186,9 +186,9 @@ functions, and include "thermo_style"_thermo_style.html command keywords for the simulation box parameters and timestep and elapsed time. Thus it is easy to specify a time-dependent radius. -See "Section 6.12"_Section_howto.html#howto_12 of the doc pages -for a geometric description of triclinic boxes, as defined by LAMMPS, -and how to transform these parameters to and from other commonly used +See the "Howto tricilinc"_Howto_triclinic.html doc page for a +geometric description of triclinic boxes, as defined by LAMMPS, and +how to transform these parameters to and from other commonly used triclinic representations. The {union} style creates a region consisting of the volume of all the @@ -358,12 +358,12 @@ sub-regions can be defined with the {open} keyword. :line -Styles with a {kk} suffix are functionally the same as the -corresponding style without the suffix. They have been optimized to -run faster, depending on your available hardware, as discussed in -"Section 5"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the "Speed packages"_Speed_packages.html doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. The code using the region (such as a fix or compute) must also be supported by Kokkos or no acceleration will occur. Currently, only {block} style @@ -378,8 +378,8 @@ by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/replicate.txt b/doc/src/replicate.txt index 08523ecdd8..0195dce911 100644 --- a/doc/src/replicate.txt +++ b/doc/src/replicate.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/rerun.txt b/doc/src/rerun.txt index edf94cc711..8eb3ebd5a1 100644 --- a/doc/src/rerun.txt +++ b/doc/src/rerun.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/reset_ids.txt b/doc/src/reset_ids.txt index 8655a9d54f..391b51fde9 100644 --- a/doc/src/reset_ids.txt +++ b/doc/src/reset_ids.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/reset_timestep.txt b/doc/src/reset_timestep.txt index 79a5812ca1..0d518655fb 100644 --- a/doc/src/reset_timestep.txt +++ b/doc/src/reset_timestep.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/restart.txt b/doc/src/restart.txt index 7c39ae1404..6f2dc5ca46 100644 --- a/doc/src/restart.txt +++ b/doc/src/restart.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/run.txt b/doc/src/run.txt index 913d81bb4d..c7c73463d9 100644 --- a/doc/src/run.txt +++ b/doc/src/run.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -127,9 +127,9 @@ be redefined, e.g. to reset a thermostat temperature. Or this could be useful for invoking a command you have added to LAMMPS that wraps some other code (e.g. as a library) to perform a computation periodically during a long LAMMPS run. See the "Modify"_Modify.html -doc page for info about how to add new commands to LAMMPS. See "this -section"_Section_howto.html#howto_10 of the documentation for ideas -about how to couple LAMMPS to other codes. +doc page for info about how to add new commands to LAMMPS. See the +"Howto couple"_Howto_couple.html doc page for ideas about how to +couple LAMMPS to other codes. With the {every} option, N total steps are simulated, in shorter runs of M steps each. After each M-length run, the specified commands are diff --git a/doc/src/run_style.txt b/doc/src/run_style.txt index 7717ede86f..deee51cfd3 100644 --- a/doc/src/run_style.txt +++ b/doc/src/run_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -119,13 +119,13 @@ switches"_Section_start.html#start_6 to change this. The log and screen file for the 2nd partition will not contain thermodynamic output beyond the 1st timestep of the run. -See "Section 5"_Section_accelerate.html of the manual for -performance details of the speed-up offered by the {verlet/split} -style. One important performance consideration is the assignment of -logical processors in the 2 partitions to the physical cores of a -parallel machine. The "processors"_processors.html command has -options to support this, and strategies are discussed in -"Section 5"_Section_accelerate.html of the manual. +See the "Speed packages"_Speed_packages.html doc page for performance +details of the speed-up offered by the {verlet/split} style. One +important performance consideration is the assignment of logical +processors in the 2 partitions to the physical cores of a parallel +machine. The "processors"_processors.html command has options to +support this, and strategies are discussed in "Section +5"_Speed.html of the manual. :line @@ -274,21 +274,21 @@ run_style respa 3 3 4 inner 1 3.0 4.0 middle 2 6.0 7.0 outer 3 :pre :line -The {respa/omp} styles is a variant of {respa} adapted for use with +The {respa/omp} style is a variant of {respa} adapted for use with pair, bond, angle, dihedral, improper, or kspace styles with an {omp} -suffix. It is functionally equivalent to {respa} but performs additional -operations required for managing {omp} styles. For more on {omp} styles -see the "Section 5"_Section_accelerate.html of the manual. -Accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. +suffix. It is functionally equivalent to {respa} but performs +additional operations required for managing {omp} styles. For more on +{omp} styles see the "Speed omp"_Speed_omp.html doc page. Accelerated +styles take the same arguments and should produce the same results, +except for round-off and precision issues. You can specify {respa/omp} explicitly in your input script, or you can use the "-suffix command-line switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. -See "Section 5"_Section_accelerate.html of the manual for -more instructions on how to use the accelerated styles effectively. +See the "Speed packages"_Speed_packages.html doc page for more +instructions on how to use the accelerated styles effectively. :line diff --git a/doc/src/set.txt b/doc/src/set.txt index d2235d5c32..b83ad54f4e 100644 --- a/doc/src/set.txt +++ b/doc/src/set.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/shell.txt b/doc/src/shell.txt index 205164f874..d274f498e5 100644 --- a/doc/src/shell.txt +++ b/doc/src/shell.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/special_bonds.txt b/doc/src/special_bonds.txt index 1021c4856b..a57b61664d 100644 --- a/doc/src/special_bonds.txt +++ b/doc/src/special_bonds.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/suffix.txt b/doc/src/suffix.txt index 74f69b6dfe..bb0619f1e0 100644 --- a/doc/src/suffix.txt +++ b/doc/src/suffix.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/tad.txt b/doc/src/tad.txt index f5e7c6d653..a26ff79318 100644 --- a/doc/src/tad.txt +++ b/doc/src/tad.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -92,9 +92,8 @@ restricts you to having exactly one processor per replica. For more information, see the documentation for the "neb"_neb.html command. In the current LAMMPS implementation of TAD, all the non-NEB TAD operations are performed on the first partition, while the other -partitions remain idle. See "Section -6.5"_Section_howto.html#howto_5 of the manual for further discussion of -multi-replica simulations. +partitions remain idle. See the "Howto replica"_Howto_replica.html doc +page for further discussion of multi-replica simulations. A TAD run has several stages, which are repeated each time an event is performed. The logic for a TAD run is as follows: diff --git a/doc/src/temper.txt b/doc/src/temper.txt index b1c47c8076..c7b482acc6 100644 --- a/doc/src/temper.txt +++ b/doc/src/temper.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -32,14 +32,13 @@ replicas (ensembles) of a system. Two or more replicas must be used. Each replica runs on a partition of one or more processors. Processor partitions are defined at run-time using the -partition command-line -switch; see "Section 2.6"_Section_start.html#start_6 of the -manual. Note that if you have MPI installed, you can run a -multi-replica simulation with more replicas (partitions) than you have -physical processors, e.g you can run a 10-replica simulation on one or -two processors. You will simply not get the performance speed-up you -would see with one or more physical processors per replica. See "this -section"_Section_howto.html#howto_5 of the manual for further -discussion. +switch; see "Section 2.6"_Section_start.html#start_6 of the manual. +Note that if you have MPI installed, you can run a multi-replica +simulation with more replicas (partitions) than you have physical +processors, e.g you can run a 10-replica simulation on one or two +processors. You will simply not get the performance speed-up you +would see with one or more physical processors per replica. See the +"Howto replica"_Howto_replica.html doc page for further discussion. Each replica's temperature is controlled at a different value by a fix with {fix-ID} that controls temperature. Most thermostat fix styles diff --git a/doc/src/temper_grem.txt b/doc/src/temper_grem.txt index 6145c8704c..9cb1bab784 100644 --- a/doc/src/temper_grem.txt +++ b/doc/src/temper_grem.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/temper_npt.txt b/doc/src/temper_npt.txt index 4ad49f9e33..4eee225de7 100644 --- a/doc/src/temper_npt.txt +++ b/doc/src/temper_npt.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line temper/npt command :h3 diff --git a/doc/src/thermo.txt b/doc/src/thermo.txt index 1d5d34995c..5f12f98707 100644 --- a/doc/src/thermo.txt +++ b/doc/src/thermo.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/thermo_modify.txt b/doc/src/thermo_modify.txt index e9aca0f20a..ca2957de77 100644 --- a/doc/src/thermo_modify.txt +++ b/doc/src/thermo_modify.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/thermo_style.txt b/doc/src/thermo_style.txt index 18c5ad5ba1..cbc2612f28 100644 --- a/doc/src/thermo_style.txt +++ b/doc/src/thermo_style.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -286,11 +286,11 @@ takes place. The keywords {cella}, {cellb}, {cellc}, {cellalpha}, {cellbeta}, {cellgamma}, correspond to the usual crystallographic quantities that -define the periodic unit cell of a crystal. See "this -section"_Section_howto.html#howto_12 of the doc pages for a geometric -description of triclinic periodic cells, including a precise definition -of these quantities in terms of the internal LAMMPS cell dimensions -{lx}, {ly}, {lz}, {yz}, {xz}, {xy}. +define the periodic unit cell of a crystal. See the "Howto +triclinic"_Howto_triclinic.html doc page for a geometric description +of triclinic periodic cells, including a precise definition of these +quantities in terms of the internal LAMMPS cell dimensions {lx}, {ly}, +{lz}, {yz}, {xz}, {xy}. :line diff --git a/doc/src/timer.txt b/doc/src/timer.txt index 768c3e1353..10737dbda0 100644 --- a/doc/src/timer.txt +++ b/doc/src/timer.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/timestep.txt b/doc/src/timestep.txt index 639ad6f311..ee0ace05b9 100644 --- a/doc/src/timestep.txt +++ b/doc/src/timestep.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/tutorials.txt b/doc/src/tutorials.txt deleted file mode 100644 index 338439ac8e..0000000000 --- a/doc/src/tutorials.txt +++ /dev/null @@ -1,15 +0,0 @@ -Tutorials :h1 - - diff --git a/doc/src/uncompute.txt b/doc/src/uncompute.txt index 49b46781d7..4c788d4722 100644 --- a/doc/src/uncompute.txt +++ b/doc/src/uncompute.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/undump.txt b/doc/src/undump.txt index a2a371aca5..cc3d8b9103 100644 --- a/doc/src/undump.txt +++ b/doc/src/undump.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/unfix.txt b/doc/src/unfix.txt index dcc4499b20..9608b39c7e 100644 --- a/doc/src/unfix.txt +++ b/doc/src/unfix.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/units.txt b/doc/src/units.txt index 0b856dcc68..8df8fe6810 100644 --- a/doc/src/units.txt +++ b/doc/src/units.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/variable.txt b/doc/src/variable.txt index 717c77c079..c6598ccb51 100644 --- a/doc/src/variable.txt +++ b/doc/src/variable.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -124,8 +124,8 @@ provide, so that the variable gets its value from the evaluation of the Python code. Variables of style {internal} are used by a few commands which set their value directly. -NOTE: As discussed in "Section 3.2"_Section_commands.html#cmd_2 of the -manual, an input script can use "immediate" variables, specified as +NOTE: As discussed on the "Commands parse"_Commands_parse.html doc +page, an input script can use "immediate" variables, specified as $(formula) with parenthesis, where the formula has the same syntax as equal-style variables described on this page. This is a convenient way to evaluate a formula immediately without using the variable @@ -198,7 +198,7 @@ the same thing. :line -"This section"_Section_commands.html#cmd_2 of the manual explains how +The "Commands parse"_Commands_parse.html doc page explains how occurrences of a variable name in an input script line are replaced by the variable's string. The variable name can be referenced as $x if the name "x" is a single character, or as $\{LoopVar\} if the name @@ -312,8 +312,8 @@ If you simply wish to print a variable value with desired precision to the screen or logfile via the "print"_print.html or "fix print"_fix_print.html commands, you can also do this by specifying an "immediate" variable with a trailing colon and format string, as part -of the string argument of those commands. This is explained in -"Section 3.2"_Section_commands.html#cmd_2. +of the string argument of those commands. This is explained on the +"Commands parse"_Commands_parse.html doc page. For the {getenv} style, a single string is assigned to the variable which should be the name of an environment variable. When the @@ -1119,24 +1119,23 @@ Vectors" discussion above. If you want an equal-style variable to be evaluated immediately, it may be the case that you do not need to define a variable at all. See -"Section 3.2"_Section_commands.html#cmd_2 of the manual, which -describes the use of "immediate" variables in an input script, -specified as $(formula) with parenthesis, where the formula has the -same syntax as equal-style variables described on this page. This -effectively evaluates a formula immediately without using the variable -command to define a named variable. +the "Commands parse"_Commands_parse.html doc page for info on how to +use "immediate" variables in an input script, specified as $(formula) +with parenthesis, where the formula has the same syntax as equal-style +variables described on this page. This effectively evaluates a +formula immediately without using the variable command to define a +named variable. More generally, there is a difference between referencing a variable with a leading $ sign (e.g. $x or $\{abc\}) versus with a leading "v_" (e.g. v_x or v_abc). The former can be used in any input script command, including a variable command. The input script parser evaluates the reference variable immediately and substitutes its value -into the command. As explained in "Section -3.2"_Section_commands.html#cmd_2 for "Parsing rules", you can also use -un-named "immediate" variables for this purpose. For example, a -string like this $((xlo+xhi)/2+sqrt(v_area)) in an input script -command evaluates the string between the parenthesis as an equal-style -variable formula. +into the command. As explained on the "Commands +parse"_Commands_parse.html doc page, you can also use un-named +"immediate" variables for this purpose. For example, a string like +this $((xlo+xhi)/2+sqrt(v_area)) in an input script command evaluates +the string between the parenthesis as an equal-style variable formula. Referencing a variable with a leading "v_" is an optional or required kind of argument for some commands (e.g. the "fix @@ -1180,10 +1179,9 @@ quotes if it contains variables preceded by $ signs. For example, variable vratio equal "$\{vfinal\}/$\{v0\}" :pre -This is because the quotes prevent variable substitution (see "this -section"_Section_commands.html#cmd_2 on parsing input script -commands), and thus an error will occur when the formula for "vratio" -is evaluated later. +This is because the quotes prevent variable substitution (explained on +the "Commands parse"_Commands_parse.html doc page), and thus an error +will occur when the formula for "vratio" is evaluated later. :line diff --git a/doc/src/velocity.txt b/doc/src/velocity.txt index b8299a5acf..96d3fa6dc4 100644 --- a/doc/src/velocity.txt +++ b/doc/src/velocity.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -139,10 +139,9 @@ if rot = yes, the angular momentum is zeroed. If specified, the {temp} keyword is used by {create} and {scale} to specify a "compute"_compute.html that calculates temperature in a desired way, e.g. by first subtracting out a velocity bias, as -discussed in "Section 6.16"_Section_howto.html#howto_16 of the doc -pages. If this keyword is not specified, {create} and {scale} -calculate temperature using a compute that is defined internally as -follows: +discussed on the "Howto thermostat"_Howto_thermostat.html doc page. +If this keyword is not specified, {create} and {scale} calculate +temperature using a compute that is defined internally as follows: compute velocity_temp group-ID temp :pre @@ -161,11 +160,11 @@ The {bias} keyword with a {yes} setting is used by {create} and If the temperature compute also calculates a velocity bias, the the bias is subtracted from atom velocities before the {create} and {scale} operations are performed. After the operations, the bias is -added back to the atom velocities. See "Section -6.16"_Section_howto.html#howto_16 of the doc pages for more discussion -of temperature computes with biases. Note that the velocity bias is -only applied to atoms in the temperature compute specified with the -{temp} keyword. +added back to the atom velocities. See the "Howto +thermostat"_Howto_thermostat.html doc page for more discussion of +temperature computes with biases. Note that the velocity bias is only +applied to atoms in the temperature compute specified with the {temp} +keyword. As an example, assume atoms are currently streaming in a flow direction (which could be separately initialized with the {ramp} diff --git a/doc/src/write_coeff.txt b/doc/src/write_coeff.txt index 764e119a9d..5dc4b331de 100644 --- a/doc/src/write_coeff.txt +++ b/doc/src/write_coeff.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/write_data.txt b/doc/src/write_data.txt index c76f20319c..d8a33f457f 100644 --- a/doc/src/write_data.txt +++ b/doc/src/write_data.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/write_dump.txt b/doc/src/write_dump.txt index 840716085f..e676979001 100644 --- a/doc/src/write_dump.txt +++ b/doc/src/write_dump.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/src/write_restart.txt b/doc/src/write_restart.txt index ff3b652dba..3935a5d538 100644 --- a/doc/src/write_restart.txt +++ b/doc/src/write_restart.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line diff --git a/doc/utils/converters/lammpsdoc/txt2html.py b/doc/utils/converters/lammpsdoc/txt2html.py index 79a75d72f6..ed9f47a4e4 100755 --- a/doc/utils/converters/lammpsdoc/txt2html.py +++ b/doc/utils/converters/lammpsdoc/txt2html.py @@ -662,14 +662,15 @@ class TxtConverter: parser = self.get_argument_parser() parsed_args = parser.parse_args(args) - write_to_files = len(parsed_args.files) > 1 + write_to_files = parsed_args.output_dir or (len(parsed_args.files) > 1) for filename in parsed_args.files: if parsed_args.skip_files and filename in parsed_args.skip_files: continue with open(filename, 'r') as f: - print("Converting", filename, "...", file=err) + if parsed_args.verbose: + print("Converting", filename, "...", file=err) content = f.read() converter = self.create_converter(parsed_args) @@ -683,7 +684,10 @@ class TxtConverter: result = msg if write_to_files: - output_filename = self.get_output_filename(filename) + if parsed_args.output_dir: + output_filename = os.path.join(parsed_args.output_dir, os.path.basename(self.get_output_filename(filename))) + else: + output_filename = self.get_output_filename(filename) with open(output_filename, "w+t") as outfile: outfile.write(result) else: @@ -698,6 +702,8 @@ class Txt2HtmlConverter(TxtConverter): 'HTML file. useful when set of HTML files' ' will be converted to PDF') parser.add_argument('-x', metavar='file-to-skip', dest='skip_files', action='append') + parser.add_argument('--verbose', '-v', dest='verbose', action='store_true') + parser.add_argument('--output-directory', '-o', dest='output_dir') parser.add_argument('--generate-title', dest='create_title', action='store_true', help='add HTML head page' 'title based on first ' 'h1,h2,h3,h4... element') diff --git a/doc/utils/converters/lammpsdoc/txt2rst.py b/doc/utils/converters/lammpsdoc/txt2rst.py index 17d0916157..8119ad3a78 100755 --- a/doc/utils/converters/lammpsdoc/txt2rst.py +++ b/doc/utils/converters/lammpsdoc/txt2rst.py @@ -395,6 +395,8 @@ class Txt2RstConverter(TxtConverter): parser = argparse.ArgumentParser(description='converts a text file with simple formatting & markup into ' 'Restructured Text for Sphinx.') parser.add_argument('-x', metavar='file-to-skip', dest='skip_files', action='append') + parser.add_argument('--verbose', '-v', dest='verbose', action='store_true') + parser.add_argument('--output-directory', '-o', dest='output_dir') parser.add_argument('files', metavar='file', nargs='+', help='one or more files to convert') return parser diff --git a/doc/utils/requirements.txt b/doc/utils/requirements.txt new file mode 100644 index 0000000000..2806c16498 --- /dev/null +++ b/doc/utils/requirements.txt @@ -0,0 +1 @@ +Sphinx diff --git a/examples/DIFFUSE/README b/examples/DIFFUSE/README index df2a675f73..e78ca2eacf 100644 --- a/examples/DIFFUSE/README +++ b/examples/DIFFUSE/README @@ -47,7 +47,7 @@ compute the diffusion coefficient. You can see that both measures give roughly the same answer and rapidly become roughly constant for the 100K step simulation. -Dcoeff = 0.36 +Dcoeff = 0.33 (2) in.vacf.2d @@ -58,4 +58,4 @@ that point in time, converted into the diffusion coefficient. You can see the VACF approach gives a more noise, fluctuating value for the diffusion coefficient, compared to the MSD approach. -Dcoeff = 0.25 to 0.45 +Dcoeff = ~0.25 diff --git a/examples/DIFFUSE/log.13Oct16.msd.2d.g++.8 b/examples/DIFFUSE/log.13Oct16.msd.2d.g++.8 deleted file mode 100644 index 473aa56527..0000000000 --- a/examples/DIFFUSE/log.13Oct16.msd.2d.g++.8 +++ /dev/null @@ -1,245 +0,0 @@ -LAMMPS (13 Oct 2016) -# sample LAMMPS input script for diffusion of 2d LJ liquid -# mean-squared displacement via compute msd - -# settings - -variable x equal 40 -variable y equal 40 - -variable rho equal 0.6 -variable t equal 1.0 -variable rc equal 2.5 - -# problem setup - -units lj -dimension 2 -atom_style atomic -neigh_modify delay 0 every 1 - -lattice sq2 ${rho} -lattice sq2 0.6 -Lattice spacing in x,y,z = 1.82574 1.82574 1.82574 -region simbox block 0 $x 0 $y -0.1 0.1 -region simbox block 0 40 0 $y -0.1 0.1 -region simbox block 0 40 0 40 -0.1 0.1 -create_box 1 simbox -Created orthogonal box = (0 0 -0.182574) to (73.0297 73.0297 0.182574) - 4 by 2 by 1 MPI processor grid -create_atoms 1 box -Created 3200 atoms - -pair_style lj/cut ${rc} -pair_style lj/cut 2.5 -pair_coeff * * 1 1 - -mass * 1.0 -velocity all create $t 97287 -velocity all create 1 97287 - -fix 1 all nve -fix 2 all langevin $t $t 0.1 498094 -fix 2 all langevin 1 $t 0.1 498094 -fix 2 all langevin 1 1 0.1 498094 -fix 3 all enforce2d - -# equilibration run - -thermo 1000 -run 5000 -Neighbor list info ... - 1 neighbor list requests - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2.8 - ghost atom cutoff = 2.8 - binsize = 1.4 -> bins = 53 53 1 -Memory usage per processor = 2.478 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1 -1.56492 0 -0.5652325 -1.5346995 - 1000 0.97537833 -1.5723957 0 -0.5973222 0.92877783 - 2000 0.99008371 -1.5748206 0 -0.58504633 1.0809416 - 3000 1.0111412 -1.5848987 0 -0.57407352 1.0174297 - 4000 1.0055417 -1.5857581 0 -0.58053054 0.95647691 - 5000 0.97069905 -1.5851114 0 -0.61471567 0.90108287 -Loop time of 0.554412 on 8 procs for 5000 steps with 3200 atoms - -Performance: 3896017.421 tau/day, 9018.559 timesteps/s -98.9% CPU use with 8 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.23992 | 0.24608 | 0.25161 | 0.7 | 44.39 -Neigh | 0.063106 | 0.064417 | 0.066279 | 0.4 | 11.62 -Comm | 0.072465 | 0.085066 | 0.094837 | 2.3 | 15.34 -Output | 0.00013208 | 0.00013691 | 0.00014591 | 0.0 | 0.02 -Modify | 0.11441 | 0.11621 | 0.11769 | 0.3 | 20.96 -Other | | 0.04251 | | | 7.67 - -Nlocal: 400 ave 406 max 394 min -Histogram: 1 1 0 1 0 2 1 0 1 1 -Nghost: 202.5 ave 212 max 191 min -Histogram: 1 0 0 0 3 1 0 2 0 1 -Neighs: 2800.88 ave 2903 max 2690 min -Histogram: 1 1 0 0 1 2 1 0 1 1 - -Total # of neighbors = 22407 -Ave neighs/atom = 7.00219 -Neighbor list builds = 599 -Dangerous builds = 0 - -unfix 2 - -# data gathering run - -reset_timestep 0 - -# factor of 4 in 2 variables is for 2d - -compute msd all msd com yes -variable twopoint equal c_msd[4]/4/(step*dt+1.0e-6) -fix 9 all vector 10 c_msd[4] -variable fitslope equal slope(f_9)/4/(10*dt) - -thermo_style custom step temp c_msd[4] v_twopoint v_fitslope - -# only need to run for 10K steps to make a good 100-frame movie - -#dump 1 all custom 1 tmp.dump id type vx vy vz - -#dump 2 all image 100 image.*.jpg type type zoom 1.6 adiam 1.2 - -thermo 1000 -run 100000 -Memory usage per processor = 2.853 Mbytes -Step Temp c_msd[4] v_twopoint v_fitslope - 0 0.97069905 0 0 5e+20 - 1000 0.98138076 4.0484996 0.20242494 0.18046446 - 2000 0.97606079 9.2121392 0.23030346 0.2091528 - 3000 0.97924866 14.815034 0.24691721 0.22619184 - 4000 0.98568451 20.516817 0.25646019 0.23715506 - 5000 0.97551815 27.33922 0.27339219 0.24709999 - 6000 0.98482252 34.37734 0.28647782 0.25735178 - 7000 0.9672559 41.696689 0.29783348 0.26654059 - 8000 0.9836541 48.340277 0.30212673 0.27440308 - 9000 0.99087147 56.042692 0.31134828 0.28113047 - 10000 0.99663166 63.69663 0.31848314 0.28767921 - 11000 0.97776688 71.144109 0.32338231 0.29344527 - 12000 0.98246011 78.301774 0.32625739 0.29849471 - 13000 0.98788732 85.061923 0.32716124 0.3026655 - 14000 0.96872483 91.1658 0.32559214 0.30601023 - 15000 0.98955796 97.278388 0.32426129 0.3084275 - 16000 0.99855196 104.23997 0.3257499 0.31049883 - 17000 0.98600861 110.66055 0.3254722 0.31220348 - 18000 0.98696963 116.90111 0.32472531 0.31352676 - 19000 0.9881192 124.21305 0.32687644 0.31480062 - 20000 0.98527319 131.09874 0.32774685 0.31596198 - 21000 0.99015191 137.89263 0.32831579 0.31705324 - 22000 0.97972418 146.68982 0.33338595 0.31833889 - 23000 0.98911012 155.1264 0.33723129 0.31979515 - 24000 0.98810498 162.88634 0.33934653 0.32131187 - 25000 0.96961962 170.37907 0.34075814 0.32276215 - 26000 0.99118408 179.26511 0.34474059 0.32427111 - 27000 0.98515159 185.90764 0.3442734 0.32574529 - 28000 0.98951677 192.12183 0.34307469 0.32700292 - 29000 0.9832026 196.99457 0.33964581 0.32799023 - 30000 0.98449493 203.48475 0.33914124 0.3287171 - 31000 0.96585993 210.06193 0.33880956 0.32935775 - 32000 0.98758117 218.94174 0.34209646 0.33001591 - 33000 0.98875584 225.96489 0.34237104 0.33072947 - 34000 0.98007229 233.5792 0.34349882 0.3314385 - 35000 0.98415295 241.98148 0.34568783 0.33216634 - 36000 0.98101154 250.30876 0.34765106 0.33295272 - 37000 0.97606878 258.2127 0.34893608 0.33377673 - 38000 0.97220293 266.40464 0.35053242 0.33459273 - 39000 0.979783 272.8578 0.34981769 0.33539728 - 40000 0.98375673 279.87598 0.34984497 0.33609699 - 41000 0.97506523 288.07676 0.35131312 0.33677708 - 42000 0.97106749 296.11647 0.3525196 0.33751312 - 43000 0.97717259 304.46747 0.35403194 0.33823441 - 44000 0.98541435 312.57228 0.35519578 0.3389771 - 45000 0.97678287 321.82674 0.35758527 0.33973306 - 46000 0.98169719 329.78197 0.35845866 0.34051748 - 47000 0.99471466 337.11283 0.35863066 0.34127239 - 48000 0.98332437 346.0754 0.3604952 0.34202442 - 49000 0.98126947 356.11859 0.36338631 0.34282132 - 50000 0.98809751 365.65248 0.36565248 0.34368171 - 51000 0.95919516 373.91833 0.36658659 0.34454516 - 52000 0.98097913 381.26492 0.36660089 0.34538506 - 53000 0.97774072 388.81031 0.36680218 0.34618232 - 54000 0.99096915 395.56767 0.36626636 0.3469296 - 55000 0.97652739 401.72735 0.36520668 0.34760374 - 56000 0.99185306 407.28834 0.3636503 0.34819906 - 57000 0.96289342 414.75298 0.3638184 0.34871992 - 58000 0.97871716 424.69443 0.36611588 0.34927986 - 59000 0.98637393 433.14205 0.36706953 0.34986296 - 60000 0.98009845 438.14533 0.36512111 0.35040349 - 61000 0.99416712 446.08007 0.3656394 0.35088379 - 62000 0.97612483 450.90846 0.36363585 0.35132647 - 63000 0.97786531 455.36749 0.36140277 0.35167458 - 64000 0.99080668 458.04873 0.35785057 0.3519105 - 65000 0.97952497 461.31241 0.3548557 0.3520506 - 66000 0.98095955 463.91727 0.35145248 0.35207764 - 67000 0.98370788 468.93 0.34994776 0.35204043 - 68000 0.96931818 471.07765 0.34638063 0.35192685 - 69000 0.98512552 474.59146 0.34390685 0.35174053 - 70000 0.98065743 478.66071 0.3419005 0.35149002 - 71000 0.98971283 482.57357 0.33984054 0.35119434 - 72000 0.99890324 485.32018 0.3370279 0.35084345 - 73000 0.98649924 490.19497 0.33574998 0.35043722 - 74000 0.98723422 496.04991 0.33516886 0.35003351 - 75000 1.0025633 501.6313 0.33442087 0.34962094 - 76000 0.97859959 505.97813 0.33288035 0.34921013 - 77000 0.97973006 510.55334 0.33152814 0.3487692 - 78000 0.9903944 515.06966 0.33017286 0.34830833 - 79000 0.96847518 518.76483 0.32833217 0.3478214 - 80000 0.99171112 524.18127 0.32761329 0.34733349 - 81000 0.97202573 529.09959 0.32660468 0.3468315 - 82000 0.99368438 535.80271 0.32670897 0.34633058 - 83000 0.97932483 543.08233 0.32715803 0.34586259 - 84000 0.99078651 547.57861 0.32593965 0.34540839 - 85000 0.98973457 552.24581 0.32485048 0.34493584 - 86000 0.9835873 557.3493 0.32404029 0.34446152 - 87000 0.97180564 564.93434 0.32467491 0.34400358 - 88000 0.99743353 571.39837 0.32465817 0.3435667 - 89000 0.98993437 577.81703 0.32461631 0.3431411 - 90000 0.9926071 583.39378 0.32410765 0.342724 - 91000 0.98800458 591.08741 0.3247733 0.34232767 - 92000 0.98501879 596.10133 0.32396811 0.34193949 - 93000 0.98810082 604.02652 0.32474544 0.3415681 - 94000 0.97563748 609.43676 0.32416849 0.341209 - 95000 0.97283448 615.15754 0.32376713 0.34084828 - 96000 0.9883071 622.30912 0.32411933 0.34049871 - 97000 0.97717678 628.84457 0.32414669 0.34016355 - 98000 0.97190208 634.37377 0.32366009 0.3398341 - 99000 0.98687379 640.66666 0.32356902 0.33950845 - 100000 0.97559757 646.96406 0.32348203 0.33919036 -Loop time of 9.58779 on 8 procs for 100000 steps with 3200 atoms - -Performance: 4505729.040 tau/day, 10429.928 timesteps/s -99.4% CPU use with 8 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 4.8572 | 4.9363 | 4.9822 | 1.7 | 51.49 -Neigh | 1.3583 | 1.376 | 1.3991 | 1.2 | 14.35 -Comm | 1.5192 | 1.7079 | 1.8264 | 7.2 | 17.81 -Output | 0.0085125 | 0.0086059 | 0.0089455 | 0.1 | 0.09 -Modify | 0.77663 | 0.7903 | 0.81378 | 1.3 | 8.24 -Other | | 0.7686 | | | 8.02 - -Nlocal: 400 ave 413 max 391 min -Histogram: 2 1 0 2 0 0 1 1 0 1 -Nghost: 204.75 ave 213 max 197 min -Histogram: 1 1 0 1 0 3 0 1 0 1 -Neighs: 2800.62 ave 2959 max 2661 min -Histogram: 1 1 1 2 0 0 0 1 1 1 - -Total # of neighbors = 22405 -Ave neighs/atom = 7.00156 -Neighbor list builds = 12728 -Dangerous builds = 0 -Total wall time: 0:00:10 diff --git a/examples/DIFFUSE/log.3Aug18.msd.2d.g++.8 b/examples/DIFFUSE/log.3Aug18.msd.2d.g++.8 new file mode 100644 index 0000000000..113da9040d --- /dev/null +++ b/examples/DIFFUSE/log.3Aug18.msd.2d.g++.8 @@ -0,0 +1,251 @@ +LAMMPS (2 Aug 2018) +# sample LAMMPS input script for diffusion of 2d LJ liquid +# mean-squared displacement via compute msd + +# settings + +variable x equal 40 +variable y equal 40 + +variable rho equal 0.6 +variable t equal 1.0 +variable rc equal 2.5 + +# problem setup + +units lj +dimension 2 +atom_style atomic +neigh_modify delay 0 every 1 + +lattice sq2 ${rho} +lattice sq2 0.6 +Lattice spacing in x,y,z = 1.82574 1.82574 1.82574 +region simbox block 0 $x 0 $y -0.1 0.1 +region simbox block 0 40 0 $y -0.1 0.1 +region simbox block 0 40 0 40 -0.1 0.1 +create_box 1 simbox +Created orthogonal box = (0 0 -0.182574) to (73.0297 73.0297 0.182574) + 4 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 3200 atoms + Time spent = 0.000706911 secs + +pair_style lj/cut ${rc} +pair_style lj/cut 2.5 +pair_coeff * * 1 1 + +mass * 1.0 +velocity all create $t 97287 +velocity all create 1 97287 + +fix 1 all nve +fix 2 all langevin $t $t 0.1 498094 +fix 2 all langevin 1 $t 0.1 498094 +fix 2 all langevin 1 1 0.1 498094 +fix 3 all enforce2d + +# equilibration run + +thermo 1000 +run 5000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 53 53 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/2d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.052 | 3.052 | 3.052 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1 -1.56492 0 -0.5652325 -1.5346995 + 1000 0.97537833 -1.5723957 0 -0.5973222 0.92877783 + 2000 0.99008371 -1.5748206 0 -0.58504633 1.0809416 + 3000 1.0111412 -1.5848987 0 -0.57407352 1.0174297 + 4000 1.0055417 -1.5857581 0 -0.58053054 0.95647691 + 5000 0.97069905 -1.5851114 0 -0.61471567 0.90108287 +Loop time of 0.667446 on 8 procs for 5000 steps with 3200 atoms + +Performance: 3236214.756 tau/day, 7491.238 timesteps/s +99.9% CPU use with 8 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.22913 | 0.24877 | 0.28382 | 3.6 | 37.27 +Neigh | 0.064419 | 0.071256 | 0.080013 | 1.7 | 10.68 +Comm | 0.103 | 0.14054 | 0.17204 | 5.5 | 21.06 +Output | 0.00010705 | 0.00013995 | 0.00021911 | 0.0 | 0.02 +Modify | 0.13457 | 0.14973 | 0.16887 | 2.6 | 22.43 +Other | | 0.05701 | | | 8.54 + +Nlocal: 400 ave 406 max 394 min +Histogram: 1 1 0 1 0 2 1 0 1 1 +Nghost: 202.5 ave 212 max 191 min +Histogram: 1 0 0 0 3 1 0 2 0 1 +Neighs: 2800.88 ave 2903 max 2690 min +Histogram: 1 1 0 0 1 2 1 0 1 1 + +Total # of neighbors = 22407 +Ave neighs/atom = 7.00219 +Neighbor list builds = 599 +Dangerous builds = 0 + +unfix 2 + +# data gathering run + +reset_timestep 0 + +# factor of 4 in 2 variables is for 2d + +compute msd all msd com yes +variable twopoint equal c_msd[4]/4/(step*dt+1.0e-6) +fix 9 all vector 10 c_msd[4] +variable fitslope equal slope(f_9)/4/(10*dt) + +thermo_style custom step temp c_msd[4] v_twopoint v_fitslope + +# only need to run for 10K steps to make a good 100-frame movie + +#dump 1 all custom 1 tmp.dump id type vx vy vz + +#dump 2 all image 100 image.*.jpg type type zoom 1.6 adiam 1.2 + +thermo 1000 +run 100000 +Per MPI rank memory allocation (min/avg/max) = 3.427 | 3.427 | 3.427 Mbytes +Step Temp c_msd[4] v_twopoint v_fitslope + 0 0.97069905 0 0 5e+20 + 1000 0.98138076 4.0484996 0.20242494 0.20685564 + 2000 0.97606079 9.2121392 0.23030346 0.23687918 + 3000 0.97924866 14.815034 0.24691721 0.25405247 + 4000 0.98568451 20.516817 0.25646019 0.26353644 + 5000 0.97551815 27.33922 0.27339219 0.27544492 + 6000 0.98482252 34.37734 0.28647782 0.28966619 + 7000 0.9672559 41.696689 0.29783348 0.30165524 + 8000 0.9836541 48.340277 0.30212673 0.31085371 + 9000 0.99087147 56.042692 0.31134828 0.31811489 + 10000 0.99663166 63.69663 0.31848314 0.32589374 + 11000 0.97776688 71.144109 0.32338231 0.33219745 + 12000 0.98246011 78.301774 0.32625739 0.33723 + 13000 0.98788732 85.061923 0.32716124 0.34053027 + 14000 0.96872483 91.1658 0.32559214 0.34231162 + 15000 0.98955796 97.278388 0.32426129 0.34229511 + 16000 0.99855196 104.23997 0.3257499 0.34217252 + 17000 0.98600861 110.66055 0.3254722 0.34172446 + 18000 0.98696963 116.90111 0.32472531 0.3408227 + 19000 0.9881192 124.21305 0.32687644 0.34036538 + 20000 0.98527319 131.09874 0.32774685 0.34003478 + 21000 0.99015191 137.89263 0.32831579 0.33987868 + 22000 0.97972418 146.68982 0.33338595 0.34060035 + 23000 0.98911012 155.1264 0.33723129 0.34201036 + 24000 0.98810498 162.88634 0.33934653 0.34371488 + 25000 0.96961962 170.37907 0.34075814 0.34531409 + 26000 0.99118408 179.26511 0.34474059 0.34717195 + 27000 0.98515159 185.90764 0.3442734 0.34898035 + 28000 0.98951677 192.12183 0.34307469 0.35021808 + 29000 0.9832026 196.99457 0.33964581 0.35075459 + 30000 0.98449493 203.48475 0.33914124 0.35066186 + 31000 0.96585993 210.06193 0.33880956 0.35046715 + 32000 0.98758117 218.94174 0.34209646 0.35046623 + 33000 0.98875584 225.96489 0.34237104 0.35073944 + 34000 0.98007229 233.5792 0.34349882 0.35109188 + 35000 0.98415295 241.98148 0.34568783 0.35157879 + 36000 0.98101154 250.30876 0.34765106 0.3523013 + 37000 0.97606878 258.2127 0.34893608 0.35318097 + 38000 0.97220293 266.40464 0.35053242 0.3540743 + 39000 0.979783 272.8578 0.34981769 0.35496561 + 40000 0.98375673 279.87598 0.34984497 0.35558182 + 41000 0.97506523 288.07676 0.35131312 0.35618259 + 42000 0.97106749 296.11647 0.3525196 0.35698571 + 43000 0.97717259 304.46747 0.35403194 0.3577736 + 44000 0.98541435 312.57228 0.35519578 0.35865003 + 45000 0.97678287 321.82674 0.35758527 0.35958623 + 46000 0.98169719 329.78197 0.35845866 0.36062236 + 47000 0.99471466 337.11283 0.35863066 0.36158322 + 48000 0.98332437 346.0754 0.3604952 0.36255042 + 49000 0.98126947 356.11859 0.36338631 0.3636628 + 50000 0.98809751 365.65248 0.36565248 0.36496809 + 51000 0.95919516 373.91833 0.36658659 0.36628073 + 52000 0.98097913 381.26492 0.36660089 0.36752237 + 53000 0.97774072 388.81031 0.36680218 0.36863962 + 54000 0.99096915 395.56767 0.36626636 0.36961521 + 55000 0.97652739 401.72735 0.36520668 0.37038579 + 56000 0.99185306 407.28834 0.3636503 0.37094092 + 57000 0.96289342 414.75298 0.3638184 0.37130039 + 58000 0.97871716 424.69443 0.36611588 0.37180428 + 59000 0.98637393 433.14205 0.36706953 0.37239862 + 60000 0.98009845 438.14533 0.36512111 0.37288487 + 61000 0.99416712 446.08007 0.3656394 0.37321496 + 62000 0.97612483 450.90846 0.36363585 0.37345792 + 63000 0.97786531 455.36749 0.36140277 0.37344803 + 64000 0.99080668 458.04873 0.35785057 0.37313914 + 65000 0.97952497 461.31241 0.3548557 0.3725875 + 66000 0.98095955 463.91727 0.35145248 0.37174735 + 67000 0.98370788 468.93 0.34994776 0.37076942 + 68000 0.96931818 471.07765 0.34638063 0.36961868 + 69000 0.98512552 474.59146 0.34390685 0.36830908 + 70000 0.98065743 478.66071 0.3419005 0.36686789 + 71000 0.98971283 482.57357 0.33984054 0.36535224 + 72000 0.99890324 485.32018 0.3370279 0.36373174 + 73000 0.98649924 490.19497 0.33574998 0.36200692 + 74000 0.98723422 496.04991 0.33516886 0.36034919 + 75000 1.0025633 501.6313 0.33442087 0.35872052 + 76000 0.97859959 505.97813 0.33288035 0.35714939 + 77000 0.97973006 510.55334 0.33152814 0.35553808 + 78000 0.9903944 515.06966 0.33017286 0.35391584 + 79000 0.96847518 518.76483 0.32833217 0.35226287 + 80000 0.99171112 524.18127 0.32761329 0.35065267 + 81000 0.97202573 529.09959 0.32660468 0.34904364 + 82000 0.99368438 535.80271 0.32670897 0.34747913 + 83000 0.97932483 543.08233 0.32715803 0.34605097 + 84000 0.99078651 547.57861 0.32593965 0.34469765 + 85000 0.98973457 552.24581 0.32485048 0.34332115 + 86000 0.9835873 557.3493 0.32404029 0.34197018 + 87000 0.97180564 564.93434 0.32467491 0.34069702 + 88000 0.99743353 571.39837 0.32465817 0.33951258 + 89000 0.98993437 577.81703 0.32461631 0.33838511 + 90000 0.9926071 583.39378 0.32410765 0.33730429 + 91000 0.98800458 591.08741 0.3247733 0.33630505 + 92000 0.98501879 596.10133 0.32396811 0.33534725 + 93000 0.98810082 604.02652 0.32474544 0.33445545 + 94000 0.97563748 609.43676 0.32416849 0.33361404 + 95000 0.97283448 615.15754 0.32376713 0.33278044 + 96000 0.9883071 622.30912 0.32411933 0.33199212 + 97000 0.97717678 628.84457 0.32414669 0.33125729 + 98000 0.97190208 634.37377 0.32366009 0.33054877 + 99000 0.98687379 640.66666 0.32356902 0.32986014 + 100000 0.97559757 646.96406 0.32348203 0.32920186 +Loop time of 7.61838 on 8 procs for 100000 steps with 3200 atoms + +Performance: 5670494.518 tau/day, 13126.145 timesteps/s +100.0% CPU use with 8 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.5458 | 3.6709 | 3.8234 | 4.3 | 48.19 +Neigh | 1.1363 | 1.1513 | 1.1753 | 1.0 | 15.11 +Comm | 1.5901 | 1.7017 | 1.8664 | 6.9 | 22.34 +Output | 0.0041966 | 0.0043583 | 0.0050626 | 0.4 | 0.06 +Modify | 0.63816 | 0.65537 | 0.68918 | 2.0 | 8.60 +Other | | 0.4348 | | | 5.71 + +Nlocal: 400 ave 413 max 391 min +Histogram: 2 1 0 2 0 0 1 1 0 1 +Nghost: 204.75 ave 213 max 197 min +Histogram: 1 1 0 1 0 3 0 1 0 1 +Neighs: 2800.62 ave 2959 max 2661 min +Histogram: 1 1 1 2 0 0 0 1 1 1 + +Total # of neighbors = 22405 +Ave neighs/atom = 7.00156 +Neighbor list builds = 12728 +Dangerous builds = 0 +Total wall time: 0:00:08 diff --git a/examples/DIFFUSE/log.13Oct16.vacf.2d.g++.8 b/examples/DIFFUSE/log.3Aug18.vacf.2d.g++.8 similarity index 84% rename from examples/DIFFUSE/log.13Oct16.vacf.2d.g++.8 rename to examples/DIFFUSE/log.3Aug18.vacf.2d.g++.8 index 458315bc29..80c57ada9c 100644 --- a/examples/DIFFUSE/log.13Oct16.vacf.2d.g++.8 +++ b/examples/DIFFUSE/log.3Aug18.vacf.2d.g++.8 @@ -1,4 +1,4 @@ -LAMMPS (13 Oct 2016) +LAMMPS (2 Aug 2018) # sample LAMMPS input script for diffusion of 2d LJ liquid # mean-squared displacement via compute msd @@ -29,6 +29,7 @@ Created orthogonal box = (0 0 -0.182574) to (73.0297 73.0297 0.182574) 4 by 2 by 1 MPI processor grid create_atoms 1 box Created 3200 atoms + Time spent = 0.000712872 secs pair_style lj/cut ${rc} pair_style lj/cut 2.5 @@ -49,13 +50,18 @@ fix 3 all enforce2d thermo 1000 run 5000 Neighbor list info ... - 1 neighbor list requests update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 master list distance cutoff = 2.8 ghost atom cutoff = 2.8 - binsize = 1.4 -> bins = 53 53 1 -Memory usage per processor = 2.478 Mbytes + binsize = 1.4, bins = 53 53 1 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/2d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.052 | 3.052 | 3.052 Mbytes Step Temp E_pair E_mol TotEng Press 0 1 -1.56492 0 -0.5652325 -1.5346995 1000 0.97537833 -1.5723957 0 -0.5973222 0.92877783 @@ -63,20 +69,20 @@ Step Temp E_pair E_mol TotEng Press 3000 1.0111412 -1.5848987 0 -0.57407352 1.0174297 4000 1.0055417 -1.5857581 0 -0.58053054 0.95647691 5000 0.97069905 -1.5851114 0 -0.61471567 0.90108287 -Loop time of 0.557588 on 8 procs for 5000 steps with 3200 atoms +Loop time of 0.648098 on 8 procs for 5000 steps with 3200 atoms -Performance: 3873826.669 tau/day, 8967.191 timesteps/s -99.1% CPU use with 8 MPI tasks x no OpenMP threads +Performance: 3332829.949 tau/day, 7714.884 timesteps/s +99.9% CPU use with 8 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.23784 | 0.24683 | 0.25594 | 1.0 | 44.27 -Neigh | 0.062975 | 0.06439 | 0.0662 | 0.4 | 11.55 -Comm | 0.083826 | 0.092564 | 0.1035 | 2.1 | 16.60 -Output | 0.00011778 | 0.00012615 | 0.00014257 | 0.1 | 0.02 -Modify | 0.11466 | 0.11648 | 0.1187 | 0.4 | 20.89 -Other | | 0.0372 | | | 6.67 +Pair | 0.22614 | 0.24602 | 0.27481 | 2.8 | 37.96 +Neigh | 0.066875 | 0.07135 | 0.077825 | 1.2 | 11.01 +Comm | 0.098293 | 0.12744 | 0.1569 | 5.6 | 19.66 +Output | 0.0001049 | 0.00012228 | 0.00014496 | 0.0 | 0.02 +Modify | 0.13725 | 0.14919 | 0.16903 | 2.4 | 23.02 +Other | | 0.05398 | | | 8.33 Nlocal: 400 ave 406 max 394 min Histogram: 1 1 0 1 0 2 1 0 1 1 @@ -114,7 +120,7 @@ thermo_style custom step temp c_vacf[4] v_vacf thermo 1000 run 100000 -Memory usage per processor = 2.853 Mbytes +Per MPI rank memory allocation (min/avg/max) = 3.427 | 3.427 | 3.427 Mbytes Step Temp c_vacf[4] v_vacf 0 0.97069905 1.9407914 0 1000 0.98138076 0.029239763 0.22157396 @@ -217,20 +223,20 @@ Step Temp c_vacf[4] v_vacf 98000 0.97190208 0.015065013 0.20906937 99000 0.98687379 -0.036869401 0.22993959 100000 0.97559757 0.045464091 0.23369283 -Loop time of 10.8346 on 8 procs for 100000 steps with 3200 atoms +Loop time of 8.16691 on 8 procs for 100000 steps with 3200 atoms -Performance: 3987213.825 tau/day, 9229.662 timesteps/s -99.5% CPU use with 8 MPI tasks x no OpenMP threads +Performance: 5289636.190 tau/day, 12244.528 timesteps/s +100.0% CPU use with 8 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 4.8486 | 4.9469 | 5.0248 | 2.8 | 45.66 -Neigh | 1.3613 | 1.374 | 1.3916 | 0.8 | 12.68 -Comm | 1.8181 | 1.9534 | 2.0665 | 5.7 | 18.03 -Output | 0.016565 | 0.016701 | 0.017039 | 0.1 | 0.15 -Modify | 1.8395 | 1.9053 | 1.9704 | 2.8 | 17.59 -Other | | 0.6383 | | | 5.89 +Pair | 3.5668 | 3.6612 | 3.7867 | 4.0 | 44.83 +Neigh | 1.1409 | 1.1555 | 1.1804 | 1.4 | 14.15 +Comm | 1.581 | 1.711 | 1.8239 | 7.1 | 20.95 +Output | 0.016626 | 0.016831 | 0.017569 | 0.2 | 0.21 +Modify | 1.225 | 1.2594 | 1.3008 | 2.0 | 15.42 +Other | | 0.363 | | | 4.45 Nlocal: 400 ave 413 max 391 min Histogram: 2 1 0 2 0 0 1 1 0 1 @@ -243,4 +249,4 @@ Total # of neighbors = 22405 Ave neighs/atom = 7.00156 Neighbor list builds = 12728 Dangerous builds = 0 -Total wall time: 0:00:11 +Total wall time: 0:00:08 diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index 2442b12b72..de23ba87ba 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -21,9 +21,11 @@ mass 1 1.0 set group all spin/random 11 2.50 -pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 +#pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 +pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 spin/dmi 4.5 pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965 pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0 +pair_coeff * * spin/dmi dmi 4.5 0.00005 1.0 1.0 1.0 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 @@ -44,10 +46,11 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo_style custom step time v_magnorm v_emag temp etotal -thermo 50 +#thermo_style custom step time v_magnorm v_emag temp etotal +thermo_style custom step time v_magnorm pe ke v_emag temp etotal +thermo 10 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] -run 5000 +run 2000 diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index 4a42ec419a..35aa1df86c 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -19,8 +19,8 @@ create_atoms 1 box mass 1 58.93 -#set group all spin/random 31 1.72 -set group all spin 1.72 0.0 0.0 1.0 +set group all spin/random 31 1.72 +#set group all spin 1.72 0.0 0.0 1.0 velocity all create 100 4928459 rot yes dist gaussian #pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 @@ -29,11 +29,11 @@ pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co pair_coeff * * spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 #pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 - neighbor 0.1 bin neigh_modify every 10 check yes delay 20 -fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +#fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 fix 2 all langevin/spin 0.0 0.0 21 fix 3 all nve/spin lattice yes @@ -56,4 +56,4 @@ thermo 10 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 100 all custom 1 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] -run 2000 +run 20000 diff --git a/examples/USER/diffraction/BulkNi.in b/examples/USER/diffraction/BulkNi.in index a18163175c..0fa9c1b74c 100644 --- a/examples/USER/diffraction/BulkNi.in +++ b/examples/USER/diffraction/BulkNi.in @@ -20,7 +20,7 @@ compute XRD all xrd 1.541838 Ni 2Theta 40 80 c 2 2 2 LP 1 echo compute SAED all saed 0.0251 Ni Kmax 0.85 Zone 1 0 0 c 0.025 0.025 0.025 & dR_Ewald 0.05 echo manual -fix 1 all ave/histo 1 1 1 40 80 200 c_XRD[1] c_XRD[2] & +fix 1 all ave/histo/weight 1 1 1 40 80 200 c_XRD[1] c_XRD[2] & mode vector file $A.hist.xrd fix 2 all saed/vtk 1 1 1 c_SAED file $A_001.saed diff --git a/src/BODY/fix_wall_body_polygon.cpp b/src/BODY/fix_wall_body_polygon.cpp index 5ec5a7cca8..0e7aaea1e1 100644 --- a/src/BODY/fix_wall_body_polygon.cpp +++ b/src/BODY/fix_wall_body_polygon.cpp @@ -641,18 +641,15 @@ int FixWallBodyPolygon::compute_distance_to_wall(double* x0, double rradi, mode = VERTEX; contact = 1; } else { + mode = NONE; if (side == XLO) { if (x0[0] < wall_pos) mode = VERTEX; - else mode = NONE; } else if (side == XHI) { if (x0[0] > wall_pos) mode = VERTEX; - else mode = NONE; } else if (side == YLO) { if (x0[1] < wall_pos) mode = VERTEX; - else mode = NONE; } else if (side == YHI) { if (x0[1] > wall_pos) mode = VERTEX; - else mode = NONE; } } diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index 2ff209d609..051be762e5 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -685,7 +685,7 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, { int ni,nei,ifirst,iefirst,npi1,npi2,ibonus; double xi1[3],xi2[3],vti[3],h[3],fn[3],ft[3],d,t; - double delx,dely,delz,rij,rsqinv,R,fx,fy,fz,fpair,shift,energy; + double delx,dely,delz,rsq,rij,rsqinv,R,fx,fy,fz,fpair,shift,energy; double rradi,rradj,contact_dist; double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; double *quat, *inertia; @@ -749,7 +749,9 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, delx = h[0] - x[jbody][0]; dely = h[1] - x[jbody][1]; delz = h[2] - x[jbody][2]; - rij = sqrt(delx*delx + dely*dely + delz*delz); + rsq = delx*delx + dely*dely + delz*delz; + rsqinv = (rsq == 0.0) ? 0.0 : 1.0/rsq; + rij = sqrt(rsq); R = rij - contact_dist; energy = 0; @@ -2077,6 +2079,7 @@ void PairBodyRoundedPolyhedron::distance_bt_edges(const double* x1, double s1,s2,x13[3],x23[3],x13h[3]; double t13,t23,t31,t41,x31[3],x41[3]; + t13=t23=t31=t41=0.0; MathExtra::sub3(x1,x3,x13); // x13 = x1 - x3 MathExtra::sub3(x2,x3,x23); // x23 = x2 - x3 diff --git a/src/KOKKOS/fix_nh_kokkos.cpp b/src/KOKKOS/fix_nh_kokkos.cpp index 679690ea82..347177b7f4 100644 --- a/src/KOKKOS/fix_nh_kokkos.cpp +++ b/src/KOKKOS/fix_nh_kokkos.cpp @@ -148,7 +148,7 @@ void FixNHKokkos::setup(int vflag) if (pstat_flag) { double kt = boltz * t_target; - double nkt = atom->natoms * kt; + double nkt = (atom->natoms + 1) * kt; for (int i = 0; i < 3; i++) if (p_flag[i]) diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index 92d9338dc8..9afa36b3c0 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -78,7 +78,7 @@ void PairATM::compute(int eflag, int vflag) { int i,j,k,ii,jj,kk,inum,jnum,jnumm1; double xi,yi,zi,evdwl; - double rij2,rik2,rjk2,r6; + double rij2,rik2,rjk2; double rij[3],rik[3],rjk[3],fj[3],fk[3]; double nu_local; int *ilist,*jlist,*numneigh,**firstneigh; @@ -91,8 +91,7 @@ void PairATM::compute(int eflag, int vflag) double **f = atom->f; int *type = atom->type; - double cutoff_sixth = cut_global*cut_global; - cutoff_sixth = cutoff_sixth*cutoff_sixth*cutoff_sixth; + double cutoff_squared = cut_global*cut_global; inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -118,6 +117,7 @@ void PairATM::compute(int eflag, int vflag) rij[2] = x[j][2] - zi; if (rij[0] == 0.0 and rij[1] == 0.0 and rij[2] < 0.0) continue; rij2 = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + if (rij2 > cutoff_squared) continue; for (kk = jj+1; kk < jnum; kk++) { k = jlist[kk]; @@ -130,20 +130,19 @@ void PairATM::compute(int eflag, int vflag) rjk[2] = x[k][2] - x[j][2]; if (rjk[0] == 0.0 and rjk[1] == 0.0 and rjk[2] < 0.0) continue; rjk2 = rjk[0]*rjk[0] + rjk[1]*rjk[1] + rjk[2]*rjk[2]; + if (rjk2 > cutoff_squared) continue; rik[0] = x[k][0] - xi; rik[1] = x[k][1] - yi; rik[2] = x[k][2] - zi; rik2 = rik[0]*rik[0] + rik[1]*rik[1] + rik[2]*rik[2]; - - r6 = rij2*rik2*rjk2; - if (r6 > cutoff_sixth) continue; + if (rik2 > cutoff_squared) continue; nu_local = nu[type[i]][type[j]][type[k]]; if (nu_local == 0.0) continue; interaction_ddd(nu_local, - r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); + rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); f[i][0] -= fj[0] + fk[0]; f[i][1] -= fj[1] + fk[1]; @@ -330,11 +329,12 @@ void PairATM::read_restart_settings(FILE *fp) ------------------------------------------------------------------------- */ void PairATM::interaction_ddd(double nu, - double r6, double rij2, double rik2, double rjk2, + double rij2, double rik2, double rjk2, double *rij, double *rik, double *rjk, double *fj, double *fk, int eflag, double &eng) { - double r5inv,rri,rrj,rrk,rrr; + double r6,r5inv,rri,rrj,rrk,rrr; + r6 = rij2*rik2*rjk2; r5inv = nu / (r6*r6*sqrt(r6)); rri = rik[0]*rij[0] + rik[1]*rij[1] + rik[2]*rij[2]; rrj = rij[0]*rjk[0] + rij[1]*rjk[1] + rij[2]*rjk[2]; diff --git a/src/MANYBODY/pair_atm.h b/src/MANYBODY/pair_atm.h index 210351cfad..60d22348c3 100644 --- a/src/MANYBODY/pair_atm.h +++ b/src/MANYBODY/pair_atm.h @@ -39,11 +39,11 @@ class PairATM : public Pair { void read_restart_settings(FILE *); protected: - double cut_global, cut_sixth; + double cut_global, cutoff_squared; double ***nu; void allocate(); - void interaction_ddd(double, double, double, double, double, double *, + void interaction_ddd(double, double, double, double, double *, double *, double *, double *, double *, int, double &); }; diff --git a/src/MANYBODY/pair_eam_cd.cpp b/src/MANYBODY/pair_eam_cd.cpp new file mode 100644 index 0000000000..66ebad6244 --- /dev/null +++ b/src/MANYBODY/pair_eam_cd.cpp @@ -0,0 +1,677 @@ +/* ---------------------------------------------------------------------- + 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: Alexander Stukowski + Technical University of Darmstadt, + Germany Department of Materials Science +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include "pair_eam_cd.h" +#include "atom.h" +#include "force.h" +#include "comm.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +#define ASSERT(cond) +#define MAXLINE 1024 // This sets the maximum line length in EAM input files. + +PairEAMCD::PairEAMCD(LAMMPS *lmp, int _cdeamVersion) + : PairEAM(lmp), PairEAMAlloy(lmp), cdeamVersion(_cdeamVersion) +{ + single_enable = 0; + restartinfo = 0; + + rhoB = NULL; + D_values = NULL; + hcoeff = NULL; + + // Set communication buffer sizes needed by this pair style. + + if (cdeamVersion == 1) { + comm_forward = 4; + comm_reverse = 3; + } else if (cdeamVersion == 2) { + comm_forward = 3; + comm_reverse = 2; + } else { + error->all(FLERR,"Invalid eam/cd potential version."); + } +} + +PairEAMCD::~PairEAMCD() +{ + memory->destroy(rhoB); + memory->destroy(D_values); + if (hcoeff) delete[] hcoeff; +} + +void PairEAMCD::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; + double rsq,rhoip,rhojp,recip,phi; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = 0.0; + if (eflag || vflag) ev_setup(eflag,vflag); + else evflag = vflag_fdotr = eflag_global = eflag_atom = 0; + + // Grow per-atom arrays if necessary + + if (atom->nmax > nmax) { + memory->destroy(rho); + memory->destroy(fp); + memory->destroy(rhoB); + memory->destroy(D_values); + nmax = atom->nmax; + memory->create(rho,nmax,"pair:rho"); + memory->create(rhoB,nmax,"pair:rhoB"); + memory->create(fp,nmax,"pair:fp"); + memory->create(D_values,nmax,"pair:D_values"); + } + + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // Zero out per-atom arrays. + + int m = nlocal + atom->nghost; + for (i = 0; i < m; i++) { + rho[i] = 0.0; + rhoB[i] = 0.0; + D_values[i] = 0.0; + } + + // Stage I + + // Compute rho and rhoB at each local atom site. + + // Additionally calculate the D_i values here if we are using the + // one-site formulation. For the two-site formulation we have to + // calculate the D values in an extra loop (Stage II). + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + 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]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq < cutforcesq) { + jtype = type[j]; + double r = sqrt(rsq); + const EAMTableIndex index = radiusToTableIndex(r); + double localrho = RhoOfR(index, jtype, itype); + rho[i] += localrho; + if (jtype == speciesB) rhoB[i] += localrho; + if (newton_pair || j < nlocal) { + localrho = RhoOfR(index, itype, jtype); + rho[j] += localrho; + if (itype == speciesB) rhoB[j] += localrho; + } + + if (cdeamVersion == 1 && itype != jtype) { + + // Note: if the i-j interaction is not concentration dependent (because either + // i or j are not species A or B) then its contribution to D_i and D_j should + // be ignored. + // This if-clause is only required for a ternary. + + if ((itype == speciesA && jtype == speciesB) + || (jtype == speciesA && itype == speciesB)) { + double Phi_AB = PhiOfR(index, itype, jtype, 1.0 / r); + D_values[i] += Phi_AB; + if (newton_pair || j < nlocal) + D_values[j] += Phi_AB; + } + } + } + } + } + + // Communicate and sum densities. + + if (newton_pair) { + communicationStage = 1; + comm->reverse_comm_pair(this); + } + + // fp = derivative of embedding energy at each atom + // phi = embedding energy at each atom + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + EAMTableIndex index = rhoToTableIndex(rho[i]); + fp[i] = FPrimeOfRho(index, type[i]); + if (eflag) { + phi = FofRho(index, type[i]); + if (eflag_global) eng_vdwl += phi; + if (eflag_atom) eatom[i] += phi; + } + } + + // Communicate derivative of embedding function and densities + // and D_values (this for one-site formulation only). + + communicationStage = 2; + comm->forward_comm_pair(this); + + // The electron densities may not drop to zero because then the + // concentration would no longer be defined. But the concentration + // is not needed anyway if there is no interaction with another atom, + // which is the case if the electron density is exactly zero. + // That's why the following lines have been commented out. + // + //for (i = 0; i < nlocal + atom->nghost; i++) { + // if (rho[i] == 0 && (type[i] == speciesA || type[i] == speciesB)) + // error->one(FLERR,"CD-EAM potential routine: Detected atom with zero electron density."); + //} + + // Stage II + // This is only required for the original two-site formulation of the CD-EAM potential. + + if (cdeamVersion == 2) { + + // Compute intermediate value D_i for each atom. + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + // This code line is required for ternary alloys. + + if (itype != speciesA && itype != speciesB) continue; + + double x_i = rhoB[i] / rho[i]; // Concentration at atom i. + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + jtype = type[j]; + if (itype == jtype) continue; + + // This code line is required for ternary alloys. + + if (jtype != speciesA && jtype != speciesB) continue; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq < cutforcesq) { + double r = sqrt(rsq); + const EAMTableIndex index = radiusToTableIndex(r); + + // The concentration independent part of the cross pair potential. + + double Phi_AB = PhiOfR(index, itype, jtype, 1.0 / r); + + // Average concentration of two sites + + double x_ij = 0.5 * (x_i + rhoB[j]/rho[j]); + + // Calculate derivative of h(x_ij) polynomial function. + + double h_prime = evalHprime(x_ij); + + D_values[i] += h_prime * Phi_AB / (2.0 * rho[i] * rho[i]); + if (newton_pair || j < nlocal) + D_values[j] += h_prime * Phi_AB / (2.0 * rho[j] * rho[j]); + } + } + } + + // Communicate and sum D values. + + if (newton_pair) { + communicationStage = 3; + comm->reverse_comm_pair(this); + } + communicationStage = 4; + comm->forward_comm_pair(this); + } + + // Stage III + + // Compute force acting on each atom. + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; + + // Concentration at site i + // The value -1 indicates: no concentration dependence for all interactions of atom i. + // It will be replaced by the concentration at site i if atom i is either A or B. + + double x_i = -1.0; + double D_i, h_prime_i; + + // This if-clause is only required for ternary alloys. + + if ((itype == speciesA || itype == speciesB) && rho[i] != 0.0) { + + // Compute local concentration at site i. + + x_i = rhoB[i]/rho[i]; + ASSERT(x_i >= 0 && x_i<=1.0); + + if (cdeamVersion == 1) { + + // Calculate derivative of h(x_i) polynomial function. + + h_prime_i = evalHprime(x_i); + D_i = D_values[i] * h_prime_i / (2.0 * rho[i] * rho[i]); + } else if (cdeamVersion == 2) { + D_i = D_values[i]; + } else { + ASSERT(false); + } + } + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq < cutforcesq) { + jtype = type[j]; + double r = sqrt(rsq); + const EAMTableIndex index = radiusToTableIndex(r); + + // rhoip = derivative of (density at atom j due to atom i) + // rhojp = derivative of (density at atom i due to atom j) + // psip needs both fp[i] and fp[j] terms since r_ij appears in two + // terms of embed eng: Fi(sum rho_ij) and Fj(sum rho_ji) + // hence embed' = Fi(sum rho_ij) rhojp + Fj(sum rho_ji) rhoip + + rhoip = RhoPrimeOfR(index, itype, jtype); + rhojp = RhoPrimeOfR(index, jtype, itype); + fpair = fp[i]*rhojp + fp[j]*rhoip; + recip = 1.0/r; + + // The value -1 indicates: no concentration dependence for this + // i-j pair because atom j is not of species A nor B. + + double x_j = -1; + + // This code line is required for ternary alloy. + + if (jtype == speciesA || jtype == speciesB) { + ASSERT(rho[i] != 0.0); + ASSERT(rho[j] != 0.0); + + // Compute local concentration at site j. + + x_j = rhoB[j]/rho[j]; + ASSERT(x_j >= 0 && x_j<=1.0); + + double D_j=0.0; + if (cdeamVersion == 1) { + + // Calculate derivative of h(x_j) polynomial function. + + double h_prime_j = evalHprime(x_j); + D_j = D_values[j] * h_prime_j / (2.0 * rho[j] * rho[j]); + } else if (cdeamVersion == 2) { + D_j = D_values[j]; + } else { + ASSERT(false); + } + double t2 = -rhoB[j]; + if (itype == speciesB) t2 += rho[j]; + fpair += D_j * rhoip * t2; + } + + // This if-clause is only required for a ternary alloy. + // Actually we don't need it at all because D_i should be zero + // anyway if atom i has no concentration dependent interactions + // (because it is not species A or B). + + if (x_i != -1.0) { + double t1 = -rhoB[i]; + if (jtype == speciesB) t1 += rho[i]; + fpair += D_i * rhojp * t1; + } + + double phip; + double phi = PhiOfR(index, itype, jtype, recip, phip); + if (itype == jtype || x_i == -1.0 || x_j == -1.0) { + + // Case of no concentration dependence. + + fpair += phip; + } else { + + // We have a concentration dependence for the i-j interaction. + + double h=0.0; + if (cdeamVersion == 1) { + + // Calculate h(x_i) polynomial function. + + double h_i = evalH(x_i); + + // Calculate h(x_j) polynomial function. + + double h_j = evalH(x_j); + h = 0.5 * (h_i + h_j); + } else if (cdeamVersion == 2) { + + // Average concentration. + + double x_ij = 0.5 * (x_i + x_j); + + // Calculate h(x_ij) polynomial function. + + h = evalH(x_ij); + } else { + ASSERT(false); + } + fpair += h * phip; + phi *= h; + } + + // Divide by r_ij and negate to get forces from gradient. + + fpair /= -r; + + 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 (eflag) evdwl = phi; + if (evflag) ev_tally(i,j,nlocal,newton_pair,evdwl,0.0,fpair,delx,dely,delz); + } + } + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- */ + +void PairEAMCD::coeff(int narg, char **arg) +{ + PairEAMAlloy::coeff(narg, arg); + + // Make sure the EAM file is a CD-EAM binary alloy. + + if (setfl->nelements < 2) + error->all(FLERR,"The EAM file must contain at least 2 elements to be used with the eam/cd pair style."); + + // Read in the coefficients of the h polynomial from the end of the EAM file. + + read_h_coeff(arg[2]); + + // Determine which atom type is the A species and which is the B + // species in the alloy. By default take the first element (index 0) + // in the EAM file as the A species and the second element (index 1) + // in the EAM file as the B species. + + speciesA = -1; + speciesB = -1; + for (int i = 1; i <= atom->ntypes; i++) { + if (map[i] == 0) { + if (speciesA >= 0) + error->all(FLERR,"The first element from the EAM file may only be mapped to a single atom type."); + speciesA = i; + } + if (map[i] == 1) { + if (speciesB >= 0) + error->all(FLERR,"The second element from the EAM file may only be mapped to a single atom type."); + speciesB = i; + } + } + if (speciesA < 0) + error->all(FLERR,"The first element from the EAM file must be mapped to exactly one atom type."); + if (speciesB < 0) + error->all(FLERR,"The second element from the EAM file must be mapped to exactly one atom type."); +} + +/* ---------------------------------------------------------------------- + Reads in the h(x) polynomial coefficients +------------------------------------------------------------------------- */ + +void PairEAMCD::read_h_coeff(char *filename) +{ + if (comm->me == 0) { + + // Open potential file + + FILE *fptr; + char line[MAXLINE]; + char nextline[MAXLINE]; + fptr = force->open_potential(filename); + if (fptr == NULL) { + char str[128]; + sprintf(str,"Cannot open EAM potential file %s", filename); + error->one(FLERR,str); + } + + // h coefficients are stored at the end of the file. + // Skip to last line of file. + + while(fgets(nextline, MAXLINE, fptr) != NULL) { + strcpy(line, nextline); + } + char* ptr = strtok(line, " \t\n\r\f"); + int degree = atoi(ptr); + nhcoeff = degree+1; + hcoeff = new double[nhcoeff]; + int i = 0; + while((ptr = strtok(NULL," \t\n\r\f")) != NULL && i < nhcoeff) { + hcoeff[i++] = atof(ptr); + } + if (i != nhcoeff || nhcoeff < 1) + error->one(FLERR,"Failed to read h(x) function coefficients from EAM file."); + + // Close the potential file. + + fclose(fptr); + } + + MPI_Bcast(&nhcoeff, 1, MPI_INT, 0, world); + if (comm->me != 0) hcoeff = new double[nhcoeff]; + MPI_Bcast(hcoeff, nhcoeff, MPI_DOUBLE, 0, world); +} + + +/* ---------------------------------------------------------------------- */ + +int PairEAMCD::pack_forward_comm(int n, int *list, double *buf, + int pbc_flag, int *pbc) +{ + int i,j,m; + + m = 0; + if (communicationStage == 2) { + if (cdeamVersion == 1) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = fp[j]; + buf[m++] = rho[j]; + buf[m++] = rhoB[j]; + buf[m++] = D_values[j]; + } + return m; + } else if (cdeamVersion == 2) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = fp[j]; + buf[m++] = rho[j]; + buf[m++] = rhoB[j]; + } + return m; + } else { ASSERT(false); return 0; } + } else if (communicationStage == 4) { + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = D_values[j]; + } + return m; + } else return 0; +} + +/* ---------------------------------------------------------------------- */ + +void PairEAMCD::unpack_forward_comm(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + if (communicationStage == 2) { + if (cdeamVersion == 1) { + for (i = first; i < last; i++) { + fp[i] = buf[m++]; + rho[i] = buf[m++]; + rhoB[i] = buf[m++]; + D_values[i] = buf[m++]; + } + } else if (cdeamVersion == 2) { + for (i = first; i < last; i++) { + fp[i] = buf[m++]; + rho[i] = buf[m++]; + rhoB[i] = buf[m++]; + } + } else { + ASSERT(false); + } + } else if (communicationStage == 4) { + for (i = first; i < last; i++) { + D_values[i] = buf[m++]; + } + } +} + +/* ---------------------------------------------------------------------- */ +int PairEAMCD::pack_reverse_comm(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + + if (communicationStage == 1) { + if (cdeamVersion == 1) { + for (i = first; i < last; i++) { + buf[m++] = rho[i]; + buf[m++] = rhoB[i]; + buf[m++] = D_values[i]; + } + return m; + } else if (cdeamVersion == 2) { + for (i = first; i < last; i++) { + buf[m++] = rho[i]; + buf[m++] = rhoB[i]; + } + return m; + } else { ASSERT(false); return 0; } + } else if (communicationStage == 3) { + for (i = first; i < last; i++) { + buf[m++] = D_values[i]; + } + return m; + } else return 0; +} + +/* ---------------------------------------------------------------------- */ + +void PairEAMCD::unpack_reverse_comm(int n, int *list, double *buf) +{ + int i,j,m; + + m = 0; + if (communicationStage == 1) { + if (cdeamVersion == 1) { + for (i = 0; i < n; i++) { + j = list[i]; + rho[j] += buf[m++]; + rhoB[j] += buf[m++]; + D_values[j] += buf[m++]; + } + } else if (cdeamVersion == 2) { + for (i = 0; i < n; i++) { + j = list[i]; + rho[j] += buf[m++]; + rhoB[j] += buf[m++]; + } + } else { + ASSERT(false); + } + } else if (communicationStage == 3) { + for (i = 0; i < n; i++) { + j = list[i]; + D_values[j] += buf[m++]; + } + } +} + +/* ---------------------------------------------------------------------- + memory usage of local atom-based arrays +------------------------------------------------------------------------- */ +double PairEAMCD::memory_usage() +{ + double bytes = 2 * nmax * sizeof(double); + return PairEAMAlloy::memory_usage() + bytes; +} diff --git a/src/USER-MISC/pair_cdeam.h b/src/MANYBODY/pair_eam_cd.h similarity index 93% rename from src/USER-MISC/pair_cdeam.h rename to src/MANYBODY/pair_eam_cd.h index 934b7601a4..ee84fb09c5 100644 --- a/src/USER-MISC/pair_cdeam.h +++ b/src/MANYBODY/pair_eam_cd.h @@ -13,26 +13,26 @@ #ifdef PAIR_CLASS -PairStyle(eam/cd,PairCDEAM_OneSite) -PairStyle(eam/cd/old,PairCDEAM_TwoSite) +PairStyle(eam/cd,PairEAMCD_OneSite) +PairStyle(eam/cd/old,PairEAMCD_TwoSite) #else -#ifndef LMP_PAIR_CDEAM_H -#define LMP_PAIR_CDEAM_H +#ifndef LMP_PAIR_EAM_CD_H +#define LMP_PAIR_EAM_CD_H #include "pair_eam_alloy.h" namespace LAMMPS_NS { -class PairCDEAM : public PairEAMAlloy +class PairEAMCD : public PairEAMAlloy { public: /// Constructor. - PairCDEAM(class LAMMPS*, int cdeamVersion); + PairEAMCD(class LAMMPS*, int cdeamVersion); /// Destructor. - virtual ~PairCDEAM(); + virtual ~PairEAMCD(); /// Calculates the energies and forces for all atoms in the system. virtual void compute(int, int); @@ -211,19 +211,19 @@ public: }; /// The one-site concentration formulation of CD-EAM. - class PairCDEAM_OneSite : public PairCDEAM + class PairEAMCD_OneSite : public PairEAMCD { public: /// Constructor. - PairCDEAM_OneSite(class LAMMPS* lmp) : PairEAM(lmp), PairCDEAM(lmp, 1) {} + PairEAMCD_OneSite(class LAMMPS* lmp) : PairEAM(lmp), PairEAMCD(lmp, 1) {} }; /// The two-site concentration formulation of CD-EAM. - class PairCDEAM_TwoSite : public PairCDEAM + class PairEAMCD_TwoSite : public PairEAMCD { public: /// Constructor. - PairCDEAM_TwoSite(class LAMMPS* lmp) : PairEAM(lmp), PairCDEAM(lmp, 2) {} + PairEAMCD_TwoSite(class LAMMPS* lmp) : PairEAM(lmp), PairEAMCD(lmp, 2) {} }; } diff --git a/src/Purge.list b/src/Purge.list index cd4eb17dab..cb98636b1c 100644 --- a/src/Purge.list +++ b/src/Purge.list @@ -24,6 +24,9 @@ style_nstencil.h style_ntopo.h # other auto-generated files lmpinstalledpkgs.h +# renamed on 31 July 2018 +pair_cdeam.h +pair_cdeam.cpp # renamed on 20 July 2018 pair_body.h pair_body.cpp diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 8b47eff624..6460a6185f 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -816,9 +816,9 @@ void AtomVecSpin::data_atom(double *coord, imageint imagetmp, char **values) x[nlocal][2] = coord[2]; sp[nlocal][3] = atof(values[2]); - sp[nlocal][0] = atof(values[5]); - sp[nlocal][1] = atof(values[6]); - sp[nlocal][2] = atof(values[7]); + sp[nlocal][0] = atof(values[6]); + sp[nlocal][1] = atof(values[7]); + sp[nlocal][2] = atof(values[8]); double inorm = 1.0/sqrt(sp[nlocal][0]*sp[nlocal][0] + sp[nlocal][1]*sp[nlocal][1] + sp[nlocal][2]*sp[nlocal][2]); diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index b67f62d53d..dc16190c98 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -105,16 +105,16 @@ void ComputeSpin::compute_vector() for (i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { if (atom->sp_flag) { - mag[0] += sp[i][0]; - mag[1] += sp[i][1]; - mag[2] += sp[i][2]; - magenergy -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); - tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; - ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; - tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; - tempnum += tx*tx+ty*ty+tz*tz; - tempdenom += sp[i][0]*fm[i][0]+fm[i][1]*sp[i][1]+sp[i][2]*fm[i][2]; - countsp++; + mag[0] += sp[i][0]; + mag[1] += sp[i][1]; + mag[2] += sp[i][2]; + magenergy -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); + tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; + ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; + tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; + tempnum += tx*tx+ty*ty+tz*tz; + tempdenom += sp[i][0]*fm[i][0]+fm[i][1]*sp[i][1]+sp[i][2]*fm[i][2]; + countsp++; } } else error->all(FLERR,"Compute compute/spin requires atom/spin style"); diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index b792969c5d..08e2c63e7f 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -65,6 +65,9 @@ PairSpinDmi::~PairSpinDmi() memory->destroy(v_dmx); memory->destroy(v_dmy); memory->destroy(v_dmz); + memory->destroy(vmech_dmx); + memory->destroy(vmech_dmy); + memory->destroy(vmech_dmz); memory->destroy(cutsq); } } @@ -118,7 +121,7 @@ void PairSpinDmi::coeff(int narg, char **arg) force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); const double rij = force->numeric(FLERR,arg[3]); - const double dm = (force->numeric(FLERR,arg[4]))/hbar; + const double dm = (force->numeric(FLERR,arg[4])); double dmx = force->numeric(FLERR,arg[5]); double dmy = force->numeric(FLERR,arg[6]); double dmz = force->numeric(FLERR,arg[7]); @@ -133,9 +136,12 @@ void PairSpinDmi::coeff(int narg, char **arg) for (int j = MAX(jlo,i); j <= jhi; j++) { cut_spin_dmi[i][j] = rij; DM[i][j] = dm; - v_dmx[i][j] = dmx * dm; - v_dmy[i][j] = dmy * dm; - v_dmz[i][j] = dmz * dm; + v_dmx[i][j] = dmx * dm / hbar; + v_dmy[i][j] = dmy * dm / hbar; + v_dmz[i][j] = dmz * dm / hbar; + vmech_dmx[i][j] = dmx * dm; + vmech_dmy[i][j] = dmy * dm; + vmech_dmz[i][j] = dmz * dm; setflag[i][j] = 1; count++; } @@ -187,9 +193,17 @@ void PairSpinDmi::init_style() double PairSpinDmi::init_one(int i, int j) { - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + DM[j][i] = DM[i][j]; + v_dmx[j][i] = v_dmx[i][j]; + v_dmy[j][i] = v_dmy[i][j]; + v_dmz[j][i] = v_dmz[i][j]; + vmech_dmx[j][i] = vmech_dmx[i][j]; + vmech_dmy[j][i] = vmech_dmy[i][j]; + vmech_dmz[j][i] = vmech_dmz[i][j]; + cut_spin_dmi[j][i] = cut_spin_dmi[i][j]; + return cut_spin_dmi_global; } @@ -210,7 +224,8 @@ void PairSpinDmi::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; @@ -264,20 +279,17 @@ void PairSpinDmi::compute(int eflag, int vflag) spj[2] = sp[j][2]; evdwl = 0.0; - fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - rij[0] = rij[1] = rij[2] = 0.0; - eij[0] = eij[1] = eij[2] = 0.0; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; @@ -286,7 +298,7 @@ void PairSpinDmi::compute(int eflag, int vflag) if (rsq <= local_cut2) { compute_dmi(i,j,eij,fmi,spj); if (lattice_flag) { - compute_dmi_mech(fi); + compute_dmi_mech(i,j,rsq,eij,fi,spi,spj); } } @@ -309,7 +321,7 @@ void PairSpinDmi::compute(int eflag, int vflag) } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],delx,dely,delz); } } @@ -325,8 +337,8 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) double **x = atom->x; double **sp = atom->sp; double local_cut2; - - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spj[3]; int i,j,jnum,itype,jtype; @@ -358,14 +370,14 @@ void PairSpinDmi::compute_single_pair(int ii, double fmi[3]) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = rij[0]*inorm; - eij[1] = rij[1]*inorm; - eij[2] = rij[2]*inorm; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_dmi[itype][jtype]*cut_spin_dmi[itype][jtype]; @@ -390,23 +402,45 @@ void PairSpinDmi::compute_dmi(int i, int j, double eij[3], double fmi[3], double jtype = type[j]; dmix = eij[1]*v_dmz[itype][jtype] - eij[2]*v_dmy[itype][jtype]; - dmiy = eij[2]*v_dmx[itype][jtype] - eij[2]*v_dmz[itype][jtype]; + dmiy = eij[2]*v_dmx[itype][jtype] - eij[0]*v_dmz[itype][jtype]; dmiz = eij[0]*v_dmy[itype][jtype] - eij[1]*v_dmx[itype][jtype]; - fmi[0] += (spj[1]*dmiz - spj[2]*dmiy); - fmi[1] += (spj[2]*dmix - spj[0]*dmiz); - fmi[2] += (spj[0]*dmiy - spj[1]*dmix); + fmi[0] -= (spj[1]*dmiz - spj[2]*dmiy); + fmi[1] -= (spj[2]*dmix - spj[0]*dmiz); + fmi[2] -= (spj[0]*dmiy - spj[1]*dmix); } /* ---------------------------------------------------------------------- compute the mechanical force due to the dmi interaction between atom i and atom j ------------------------------------------------------------------------- */ -void PairSpinDmi::compute_dmi_mech(double fi[3]) +void PairSpinDmi::compute_dmi_mech(int i, int j, double rsq, double eij[3], + double fi[3], double spi[3], double spj[3]) { - fi[0] += 0.0; - fi[1] += 0.0; - fi[2] += 0.0; + int *type = atom->type; + int itype, jtype; + double dmix,dmiy,dmiz; + itype = type[i]; + jtype = type[j]; + double csx,csy,csz,cdmx,cdmy,cdmz,irij; + + irij = 1.0/sqrt(rsq); + + dmix = vmech_dmx[itype][jtype]; + dmiy = vmech_dmy[itype][jtype]; + dmiz = vmech_dmz[itype][jtype]; + + csx = (spi[1]*spj[2] - spi[2]*spj[1]); + csy = (spi[2]*spj[0] - spi[0]*spj[2]); + csz = (spi[0]*spj[1] - spi[1]*spj[0]); + + cdmx = (dmiy*csz - dmiz*csy); + cdmy = (dmiz*csx - dmix*csz); + cdmz = (dmix*csy - dmiy*csz); + + fi[0] += irij*cdmx; + fi[1] += irij*cdmy; + fi[2] += irij*cdmz; } /* ---------------------------------------------------------------------- @@ -428,6 +462,9 @@ void PairSpinDmi::allocate() memory->create(v_dmx,n+1,n+1,"pair:DM_vector_x"); memory->create(v_dmy,n+1,n+1,"pair:DM_vector_y"); memory->create(v_dmz,n+1,n+1,"pair:DM_vector_z"); + memory->create(vmech_dmx,n+1,n+1,"pair:DMmech_vector_x"); + memory->create(vmech_dmy,n+1,n+1,"pair:DMmech_vector_y"); + memory->create(vmech_dmz,n+1,n+1,"pair:DMmech_vector_z"); memory->create(cutsq,n+1,n+1,"pair:cutsq"); @@ -451,6 +488,9 @@ void PairSpinDmi::write_restart(FILE *fp) fwrite(&v_dmx[i][j],sizeof(double),1,fp); fwrite(&v_dmy[i][j],sizeof(double),1,fp); fwrite(&v_dmz[i][j],sizeof(double),1,fp); + fwrite(&vmech_dmx[i][j],sizeof(double),1,fp); + fwrite(&vmech_dmy[i][j],sizeof(double),1,fp); + fwrite(&vmech_dmz[i][j],sizeof(double),1,fp); fwrite(&cut_spin_dmi[i][j],sizeof(double),1,fp); } } @@ -478,12 +518,18 @@ void PairSpinDmi::read_restart(FILE *fp) fread(&v_dmx[i][j],sizeof(double),1,fp); fread(&v_dmy[i][j],sizeof(double),1,fp); fread(&v_dmz[i][j],sizeof(double),1,fp); + fread(&vmech_dmx[i][j],sizeof(double),1,fp); + fread(&vmech_dmy[i][j],sizeof(double),1,fp); + fread(&vmech_dmz[i][j],sizeof(double),1,fp); fread(&cut_spin_dmi[i][j],sizeof(double),1,fp); } MPI_Bcast(&DM[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmx[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmy[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&v_dmz[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&vmech_dmx[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&vmech_dmy[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&vmech_dmz[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&cut_spin_dmi[i][j],1,MPI_DOUBLE,0,world); } } diff --git a/src/SPIN/pair_spin_dmi.h b/src/SPIN/pair_spin_dmi.h index a309f0c8d5..68e42e879d 100644 --- a/src/SPIN/pair_spin_dmi.h +++ b/src/SPIN/pair_spin_dmi.h @@ -38,22 +38,23 @@ class PairSpinDmi : public PairSpin { void compute_single_pair(int, double *); void compute_dmi(int, int, double *, double *, double *); - void compute_dmi_mech(double *); + void compute_dmi_mech(int, int, double, double *, double *, double *, double *); void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); void read_restart_settings(FILE *); - double cut_spin_dmi_global; // short range pair cutoff + double cut_spin_dmi_global; // short range pair cutoff protected: - double **DM; // dmi coeff in eV - double **v_dmx, **v_dmy, **v_dmz; // dmi direction - double **cut_spin_dmi; // cutoff distance dmi + double **DM; // dmi coeff in eV + double **v_dmx, **v_dmy, **v_dmz; // dmi direction + double **vmech_dmx, **vmech_dmy, **vmech_dmz; // dmi mech direction + double **cut_spin_dmi; // cutoff distance dmi - int lattice_flag; // flag for mech force computation - class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups + int lattice_flag; // flag for mech force computation + class FixNVESpin *lockfixnvespin; // ptr to FixNVESpin for setups void allocate(); }; diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 1b7b36b6db..cc074bb97d 100644 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -65,7 +65,7 @@ PairSpinExchange::~PairSpinExchange() memory->destroy(J1_mech); memory->destroy(J2); memory->destroy(J3); - memory->destroy(cutsq); // to be deleted + memory->destroy(cutsq); // to be implemented } } @@ -134,8 +134,8 @@ void PairSpinExchange::coeff(int narg, char **arg) count++; } } - if (count == 0) - error->all(FLERR,"Incorrect args in pair_style command"); + + if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); } /* ---------------------------------------------------------------------- @@ -183,6 +183,12 @@ double PairSpinExchange::init_one(int i, int j) if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + J1_mag[j][i] = J1_mag[i][j]; + J1_mech[j][i] = J1_mech[i][j]; + J2[j][i] = J2[i][j]; + J3[j][i] = J3[i][j]; + cut_spin_exchange[j][i] = cut_spin_exchange[i][j]; + return cut_spin_exchange_global; } @@ -203,7 +209,8 @@ void PairSpinExchange::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; @@ -255,18 +262,17 @@ void PairSpinExchange::compute(int eflag, int vflag) spj[2] = sp[j][2]; evdwl = 0.0; - fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = inorm*rij[0]; - eij[1] = inorm*rij[1]; - eij[2] = inorm*rij[2]; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_exchange[itype][jtype]*cut_spin_exchange[itype][jtype]; @@ -298,7 +304,7 @@ void PairSpinExchange::compute(int eflag, int vflag) } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],delx,dely,delz); } } @@ -317,8 +323,8 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) double **x = atom->x; double **sp = atom->sp; double local_cut2; - double xi[3], rij[3]; + double delx,dely,delz; double spj[3]; int i,j,jnum,itype,jtype; @@ -351,15 +357,14 @@ void PairSpinExchange::compute_single_pair(int ii, double fmi[3]) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; if (rsq <= local_cut2) { compute_exchange(i,j,rsq,fmi,spj); } - } } @@ -390,7 +395,8 @@ void PairSpinExchange::compute_exchange(int i, int j, double rsq, double fmi[3], compute the mechanical force due to the exchange interaction between atom i and atom j ------------------------------------------------------------------------- */ -void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double rij[3], double fi[3], double spi[3], double spj[3]) +void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double eij[3], + double fi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; @@ -408,9 +414,9 @@ void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double ri Jex_mech *= 8.0*Jex*rr*exp(-ra); Jex_mech *= (spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); - fi[0] -= Jex_mech*rij[0]; - fi[1] -= Jex_mech*rij[1]; - fi[2] -= Jex_mech*rij[2]; + fi[0] -= Jex_mech*eij[0]; + fi[1] -= Jex_mech*eij[1]; + fi[2] -= Jex_mech*eij[2]; } /* ---------------------------------------------------------------------- diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index 315b691d17..6bc1f71947 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -187,8 +187,14 @@ void PairSpinMagelec::init_style() double PairSpinMagelec::init_one(int i, int j) { + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + ME[j][i] = ME[i][j]; + ME_mech[j][i] = ME_mech[i][j]; + v_mex[j][i] = v_mex[i][j]; + v_mey[j][i] = v_mey[i][j]; + v_mez[j][i] = v_mez[i][j]; + cut_spin_magelec[j][i] = cut_spin_magelec[i][j]; return cut_spin_magelec_global; } @@ -211,7 +217,8 @@ void PairSpinMagelec::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double evdwl, ecoul; - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spi[3], spj[3]; double fi[3], fmi[3]; double local_cut2; @@ -263,18 +270,17 @@ void PairSpinMagelec::compute(int eflag, int vflag) spj[2] = sp[j][2]; evdwl = 0.0; - fi[0] = fi[1] = fi[2] = 0.0; fmi[0] = fmi[1] = fmi[2] = 0.0; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = inorm*rij[0]; - eij[1] = inorm*rij[1]; - eij[2] = inorm*rij[2]; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; @@ -301,12 +307,12 @@ void PairSpinMagelec::compute(int eflag, int vflag) } if (eflag) { - evdwl = (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= hbar; } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); + evdwl,ecoul,fi[0],fi[1],fi[2],delx,dely,delz); } } @@ -322,8 +328,8 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) double **x = atom->x; double **sp = atom->sp; double local_cut2; - - double xi[3], rij[3], eij[3]; + double xi[3], eij[3]; + double delx,dely,delz; double spj[3]; int i,j,jnum,itype,jtype; @@ -342,8 +348,6 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) xi[1] = x[i][1]; xi[2] = x[i][2]; - eij[0] = eij[1] = eij[2] = 0.0; - jlist = firstneigh[i]; jnum = numneigh[i]; @@ -358,14 +362,14 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) spj[1] = sp[j][1]; spj[2] = sp[j][2]; - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + delx = xi[0] - x[j][0]; + dely = xi[1] - x[j][1]; + delz = xi[2] - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; inorm = 1.0/sqrt(rsq); - eij[0] = inorm*rij[0]; - eij[1] = inorm*rij[1]; - eij[2] = inorm*rij[2]; + eij[0] = -inorm*delx; + eij[1] = -inorm*dely; + eij[2] = -inorm*delz; if (rsq <= local_cut2) { compute_magelec(i,j,rsq,eij,fmi,spj); @@ -380,36 +384,26 @@ void PairSpinMagelec::compute_magelec(int i, int j, double rsq, double eij[3], d { int *type = atom->type; int itype, jtype; + double meix,meiy,meiz; + double vx,vy,vz; itype = type[i]; jtype = type[j]; - double local_cut2 = cut_spin_magelec[itype][jtype]*cut_spin_magelec[itype][jtype]; + vx = v_mex[itype][jtype]; + vy = v_mey[itype][jtype]; + vz = v_mez[itype][jtype]; - if (rsq <= local_cut2) { - double meix,meiy,meiz; - double rx, ry, rz; - double vx, vy, vz; + meix = vy*eij[2] - vz*eij[1]; + meiy = vz*eij[0] - vx*eij[2]; + meiz = vx*eij[1] - vy*eij[0]; - rx = eij[0]; - ry = eij[1]; - rz = eij[2]; + meix *= ME[itype][jtype]; + meiy *= ME[itype][jtype]; + meiz *= ME[itype][jtype]; - vx = v_mex[itype][jtype]; - vy = v_mey[itype][jtype]; - vz = v_mez[itype][jtype]; - - meix = vy*rz - vz*ry; - meiy = vz*rx - vx*rz; - meiz = vx*ry - vy*rx; - - meix *= ME[itype][jtype]; - meiy *= ME[itype][jtype]; - meiz *= ME[itype][jtype]; - - fmi[0] += spj[1]*meiz - spj[2]*meiy; - fmi[1] += spj[2]*meix - spj[0]*meiz; - fmi[2] += spj[0]*meiy - spj[1]*meix; - } + fmi[0] += spj[1]*meiz - spj[2]*meiy; + fmi[1] += spj[2]*meix - spj[0]*meiz; + fmi[2] += spj[0]*meiy - spj[1]*meix; } /* ---------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 0daafad756..55f537cf4f 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -193,8 +193,16 @@ void PairSpinNeel::init_style() double PairSpinNeel::init_one(int i, int j) { + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + g1[j][i] = g1[i][j]; + g1_mech[j][i] = g1_mech[i][j]; + g2[j][i] = g2[i][j]; + g3[j][i] = g3[i][j]; + q1[j][i] = q1[i][j]; + q1_mech[j][i] = q1_mech[i][j]; + q2[j][i] = q2[i][j]; + q3[j][i] = q3[i][j]; return cut_spin_neel_global; } diff --git a/src/SPIN/pair_spin_neel.h b/src/SPIN/pair_spin_neel.h index 934d4a93ad..f60d7d2dca 100644 --- a/src/SPIN/pair_spin_neel.h +++ b/src/SPIN/pair_spin_neel.h @@ -51,9 +51,9 @@ class PairSpinNeel : public PairSpin { // pseudo-dipolar and pseudo-quadrupolar coeff. - double **g1, **g1_mech; // exchange coeffs gij + double **g1, **g1_mech; // neel coeffs gij double **g2, **g3; // g1 in eV, g2 adim, g3 in Ang - double **q1, **q1_mech; // exchange coeffs qij + double **q1, **q1_mech; // neel coeffs qij double **q2, **q3; // q1 in eV, q2 adim, q3 in Ang double **cut_spin_neel; // cutoff distance exchange diff --git a/src/USER-BOCS/fix_bocs.cpp b/src/USER-BOCS/fix_bocs.cpp index 37e128f556..7fb8a27110 100644 --- a/src/USER-BOCS/fix_bocs.cpp +++ b/src/USER-BOCS/fix_bocs.cpp @@ -846,7 +846,7 @@ void FixBocs::setup(int vflag) if (pstat_flag) { double kt = boltz * t_target; - double nkt = atom->natoms * kt; + double nkt = (atom->natoms + 1) * kt; for (int i = 0; i < 3; i++) if (p_flag[i]) @@ -1508,7 +1508,7 @@ double FixBocs::compute_scalar() double volume; double energy; double kt = boltz * t_target; - double lkt_press = kt; + double lkt_press = 0.0; int ich; if (dimension == 3) volume = domain->xprd * domain->yprd * domain->zprd; else volume = domain->xprd * domain->yprd; @@ -1539,15 +1539,21 @@ double FixBocs::compute_scalar() // sum is over barostatted dimensions if (pstat_flag) { - for (i = 0; i < 3; i++) - if (p_flag[i]) + for (i = 0; i < 3; i++) { + if (p_flag[i]) { energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i] + p_hydro*(volume-vol0) / (pdim*nktv2p); + lkt_press += kt; + } + } if (pstyle == TRICLINIC) { - for (i = 3; i < 6; i++) - if (p_flag[i]) + for (i = 3; i < 6; i++) { + if (p_flag[i]) { energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i]; + lkt_press += kt; + } + } } // extra contributions from thermostat chain for barostat @@ -1880,15 +1886,14 @@ void FixBocs::nhc_temp_integrate() void FixBocs::nhc_press_integrate() { - int ich,i; + int ich,i,pdof; double expfac,factor_etap,kecurrent; double kt = boltz * t_target; - double lkt_press = kt; // Update masses, to preserve initial freq, if flag set if (omega_mass_flag) { - double nkt = atom->natoms * kt; + double nkt = (atom->natoms + 1) * kt; for (int i = 0; i < 3; i++) if (p_flag[i]) omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); @@ -1912,14 +1917,24 @@ void FixBocs::nhc_press_integrate() } kecurrent = 0.0; - for (i = 0; i < 3; i++) - if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; - - if (pstyle == TRICLINIC) { - for (i = 3; i < 6; i++) - if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + pdof = 0; + for (i = 0; i < 3; i++) { + if (p_flag[i]) { + kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + pdof++; + } } + if (pstyle == TRICLINIC) { + for (i = 3; i < 6; i++) { + if (p_flag[i]) { + kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + pdof++; + } + } + } + + double lkt_press = pdof * kt; etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0]; double ncfac = 1.0/nc_pchain; diff --git a/src/USER-MISC/Install.sh b/src/USER-MISC/Install.sh deleted file mode 100755 index 2d42125ec3..0000000000 --- a/src/USER-MISC/Install.sh +++ /dev/null @@ -1,40 +0,0 @@ -# Install/unInstall package files in LAMMPS -# mode = 0/1/2 for uninstall/install/update - -mode=$1 - -# enforce using portable C locale -LC_ALL=C -export LC_ALL - -# arg1 = file, arg2 = file it depends on - -action () { - if (test $mode = 0) then - rm -f ../$1 - elif (! cmp -s $1 ../$1) then - if (test -z "$2" || test -e ../$2) then - cp $1 .. - if (test $mode = 2) then - echo " updating src/$1" - fi - fi - elif (test ! -n "$2") then - if (test ! -e ../$2) then - rm -f ../$1 - fi - fi -} - -# all package files -# only a few files have dependencies - -for file in *.cpp *.h; do - if (test $file = "pair_cdeam.cpp") then - action pair_cdeam.cpp pair_eam_alloy.cpp - elif (test $file = "pair_cdeam.h") then - action pair_cdeam.h pair_eam_alloy.cpp - else - test -f ${file} && action $file - fi -done diff --git a/src/USER-MISC/README b/src/USER-MISC/README index 68a6252d8d..0f9e7bf383 100644 --- a/src/USER-MISC/README +++ b/src/USER-MISC/README @@ -65,7 +65,6 @@ pair_style buck/mdf, Paolo Raiteri, p.raiteri at curtin.edu.au, 2 Dec 15 pair_style coul/diel, Axel Kohlmeyer, akohlmey at gmail.com, 1 Dec 11 pair_style dipole/sf, Mario Orsi, orsimario at gmail.com, 8 Aug 11 pair_style edip, Luca Ferraro, luca.ferraro at caspur.it, 15 Sep 11 -pair_style eam/cd, Alexander Stukowski, stukowski at mm.tu-darmstadt.de, 7 Nov 09 pair_style extep, Jaap Kroes (Radboud U), jaapkroes at gmail dot com, 28 Nov 17 pair_style gauss/cut, Axel Kohlmeyer, akohlmey at gmail.com, 1 Dec 11 pair_style lennard/mdf, Paolo Raiteri, p.raiteri at curtin.edu.au, 2 Dec 15 diff --git a/src/USER-MISC/pair_cdeam.cpp b/src/USER-MISC/pair_cdeam.cpp deleted file mode 100644 index 53d9036a61..0000000000 --- a/src/USER-MISC/pair_cdeam.cpp +++ /dev/null @@ -1,644 +0,0 @@ -/* ---------------------------------------------------------------------- - 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: Alexander Stukowski - Technical University of Darmstadt, - Germany Department of Materials Science -------------------------------------------------------------------------- */ - -#include -#include -#include -#include -#include "pair_cdeam.h" -#include "atom.h" -#include "force.h" -#include "comm.h" -#include "neighbor.h" -#include "neigh_list.h" -#include "memory.h" -#include "error.h" - -using namespace LAMMPS_NS; - -// This is for debugging purposes. The ASSERT() macro is used in the code to check -// if everything runs as expected. Change this to #if 0 if you don't need the checking. -#if 0 - #define ASSERT(cond) ((!(cond)) ? my_failure(error,__FILE__,__LINE__) : my_noop()) - - inline void my_noop() {} - inline void my_failure(Error* error, const char* file, int line) { - char str[1024]; - sprintf(str,"Assertion failure: File %s, line %i", file, line); - error->one(FLERR,str); - } -#else - #define ASSERT(cond) -#endif - -#define MAXLINE 1024 // This sets the maximum line length in EAM input files. - -PairCDEAM::PairCDEAM(LAMMPS *lmp, int _cdeamVersion) : PairEAM(lmp), PairEAMAlloy(lmp), cdeamVersion(_cdeamVersion) -{ - single_enable = 0; - restartinfo = 0; - - rhoB = NULL; - D_values = NULL; - hcoeff = NULL; - - // Set communication buffer sizes needed by this pair style. - if(cdeamVersion == 1) { - comm_forward = 4; - comm_reverse = 3; - } - else if(cdeamVersion == 2) { - comm_forward = 3; - comm_reverse = 2; - } - else { - error->all(FLERR,"Invalid CD-EAM potential version."); - } -} - -PairCDEAM::~PairCDEAM() -{ - memory->destroy(rhoB); - memory->destroy(D_values); - if(hcoeff) delete[] hcoeff; -} - -void PairCDEAM::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype; - double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; - double rsq,rhoip,rhojp,recip,phi; - int *ilist,*jlist,*numneigh,**firstneigh; - - evdwl = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = eflag_global = eflag_atom = 0; - - // Grow per-atom arrays if necessary - if(atom->nmax > nmax) { - memory->destroy(rho); - memory->destroy(fp); - memory->destroy(rhoB); - memory->destroy(D_values); - nmax = atom->nmax; - memory->create(rho,nmax,"pair:rho"); - memory->create(rhoB,nmax,"pair:rhoB"); - memory->create(fp,nmax,"pair:fp"); - memory->create(D_values,nmax,"pair:D_values"); - } - - double **x = atom->x; - double **f = atom->f; - int *type = atom->type; - int nlocal = atom->nlocal; - int newton_pair = force->newton_pair; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // Zero out per-atom arrays. - int m = nlocal + atom->nghost; - for(i = 0; i < m; i++) { - rho[i] = 0.0; - rhoB[i] = 0.0; - D_values[i] = 0.0; - } - - // Stage I - - // Compute rho and rhoB at each local atom site. - // Additionally calculate the D_i values here if we are using the one-site formulation. - // For the two-site formulation we have to calculate the D values in an extra loop (Stage II). - for(ii = 0; ii < inum; ii++) { - i = ilist[ii]; - 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]; - j &= NEIGHMASK; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - - if(rsq < cutforcesq) { - jtype = type[j]; - double r = sqrt(rsq); - const EAMTableIndex index = radiusToTableIndex(r); - double localrho = RhoOfR(index, jtype, itype); - rho[i] += localrho; - if(jtype == speciesB) rhoB[i] += localrho; - if(newton_pair || j < nlocal) { - localrho = RhoOfR(index, itype, jtype); - rho[j] += localrho; - if(itype == speciesB) rhoB[j] += localrho; - } - - if(cdeamVersion == 1 && itype != jtype) { - // Note: if the i-j interaction is not concentration dependent (because either - // i or j are not species A or B) then its contribution to D_i and D_j should - // be ignored. - // This if-clause is only required for a ternary. - if((itype == speciesA && jtype == speciesB) || (jtype == speciesA && itype == speciesB)) { - double Phi_AB = PhiOfR(index, itype, jtype, 1.0 / r); - D_values[i] += Phi_AB; - if(newton_pair || j < nlocal) - D_values[j] += Phi_AB; - } - } - } - } - } - - // Communicate and sum densities. - if(newton_pair) { - communicationStage = 1; - comm->reverse_comm_pair(this); - } - - // fp = derivative of embedding energy at each atom - // phi = embedding energy at each atom - for(ii = 0; ii < inum; ii++) { - i = ilist[ii]; - EAMTableIndex index = rhoToTableIndex(rho[i]); - fp[i] = FPrimeOfRho(index, type[i]); - if(eflag) { - phi = FofRho(index, type[i]); - if (eflag_global) eng_vdwl += phi; - if (eflag_atom) eatom[i] += phi; - } - } - - // Communicate derivative of embedding function and densities - // and D_values (this for one-site formulation only). - communicationStage = 2; - comm->forward_comm_pair(this); - - // The electron densities may not drop to zero because then the concentration would no longer be defined. - // But the concentration is not needed anyway if there is no interaction with another atom, which is the case - // if the electron density is exactly zero. That's why the following lines have been commented out. - // - //for(i = 0; i < nlocal + atom->nghost; i++) { - // if(rho[i] == 0 && (type[i] == speciesA || type[i] == speciesB)) - // error->one(FLERR,"CD-EAM potential routine: Detected atom with zero electron density."); - //} - - // Stage II - // This is only required for the original two-site formulation of the CD-EAM potential. - - if(cdeamVersion == 2) { - // Compute intermediate value D_i for each atom. - for(ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = type[i]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - - // This code line is required for ternary alloys. - if(itype != speciesA && itype != speciesB) continue; - - double x_i = rhoB[i] / rho[i]; // Concentration at atom i. - - for(jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - jtype = type[j]; - if(itype == jtype) continue; - - // This code line is required for ternary alloys. - if(jtype != speciesA && jtype != speciesB) continue; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - - if(rsq < cutforcesq) { - double r = sqrt(rsq); - const EAMTableIndex index = radiusToTableIndex(r); - - // The concentration independent part of the cross pair potential. - double Phi_AB = PhiOfR(index, itype, jtype, 1.0 / r); - - // Average concentration of two sites - double x_ij = 0.5 * (x_i + rhoB[j]/rho[j]); - - // Calculate derivative of h(x_ij) polynomial function. - double h_prime = evalHprime(x_ij); - - D_values[i] += h_prime * Phi_AB / (2.0 * rho[i] * rho[i]); - if(newton_pair || j < nlocal) - D_values[j] += h_prime * Phi_AB / (2.0 * rho[j] * rho[j]); - } - } - } - - // Communicate and sum D values. - if(newton_pair) { - communicationStage = 3; - comm->reverse_comm_pair(this); - } - communicationStage = 4; - comm->forward_comm_pair(this); - } - - // Stage III - - // Compute force acting on each atom. - for(ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = type[i]; - - jlist = firstneigh[i]; - jnum = numneigh[i]; - - // Concentration at site i - double x_i = -1.0; // The value -1 indicates: no concentration dependence for all interactions of atom i. - // It will be replaced by the concentration at site i if atom i is either A or B. - - double D_i, h_prime_i; - - // This if-clause is only required for ternary alloys. - if((itype == speciesA || itype == speciesB) && rho[i] != 0.0) { - - // Compute local concentration at site i. - x_i = rhoB[i]/rho[i]; - ASSERT(x_i >= 0 && x_i<=1.0); - - if(cdeamVersion == 1) { - // Calculate derivative of h(x_i) polynomial function. - h_prime_i = evalHprime(x_i); - D_i = D_values[i] * h_prime_i / (2.0 * rho[i] * rho[i]); - } else if(cdeamVersion == 2) { - D_i = D_values[i]; - } else { - ASSERT(false); - } - } - - for(jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - rsq = delx*delx + dely*dely + delz*delz; - - if(rsq < cutforcesq) { - jtype = type[j]; - double r = sqrt(rsq); - const EAMTableIndex index = radiusToTableIndex(r); - - // rhoip = derivative of (density at atom j due to atom i) - // rhojp = derivative of (density at atom i due to atom j) - // psip needs both fp[i] and fp[j] terms since r_ij appears in two - // terms of embed eng: Fi(sum rho_ij) and Fj(sum rho_ji) - // hence embed' = Fi(sum rho_ij) rhojp + Fj(sum rho_ji) rhoip - rhoip = RhoPrimeOfR(index, itype, jtype); - rhojp = RhoPrimeOfR(index, jtype, itype); - fpair = fp[i]*rhojp + fp[j]*rhoip; - recip = 1.0/r; - - double x_j = -1; // The value -1 indicates: no concentration dependence for this i-j pair - // because atom j is not of species A nor B. - - // This code line is required for ternary alloy. - if(jtype == speciesA || jtype == speciesB) { - ASSERT(rho[i] != 0.0); - ASSERT(rho[j] != 0.0); - - // Compute local concentration at site j. - x_j = rhoB[j]/rho[j]; - ASSERT(x_j >= 0 && x_j<=1.0); - - double D_j=0.0; - if(cdeamVersion == 1) { - // Calculate derivative of h(x_j) polynomial function. - double h_prime_j = evalHprime(x_j); - D_j = D_values[j] * h_prime_j / (2.0 * rho[j] * rho[j]); - } else if(cdeamVersion == 2) { - D_j = D_values[j]; - } else { - ASSERT(false); - } - double t2 = -rhoB[j]; - if(itype == speciesB) t2 += rho[j]; - fpair += D_j * rhoip * t2; - } - - // This if-clause is only required for a ternary alloy. - // Actually we don't need it at all because D_i should be zero anyway if - // atom i has no concentration dependent interactions (because it is not species A or B). - if(x_i != -1.0) { - double t1 = -rhoB[i]; - if(jtype == speciesB) t1 += rho[i]; - fpair += D_i * rhojp * t1; - } - - double phip; - double phi = PhiOfR(index, itype, jtype, recip, phip); - if(itype == jtype || x_i == -1.0 || x_j == -1.0) { - // Case of no concentration dependence. - fpair += phip; - } else { - // We have a concentration dependence for the i-j interaction. - double h=0.0; - if(cdeamVersion == 1) { - // Calculate h(x_i) polynomial function. - double h_i = evalH(x_i); - // Calculate h(x_j) polynomial function. - double h_j = evalH(x_j); - h = 0.5 * (h_i + h_j); - } else if(cdeamVersion == 2) { - // Average concentration. - double x_ij = 0.5 * (x_i + x_j); - // Calculate h(x_ij) polynomial function. - h = evalH(x_ij); - } else { - ASSERT(false); - } - fpair += h * phip; - phi *= h; - } - - // Divide by r_ij and negate to get forces from gradient. - fpair /= -r; - - 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(eflag) evdwl = phi; - if(evflag) ev_tally(i,j,nlocal,newton_pair,evdwl,0.0,fpair,delx,dely,delz); - } - } - } - - if(vflag_fdotr) virial_fdotr_compute(); -} - -/* ---------------------------------------------------------------------- */ - -void PairCDEAM::coeff(int narg, char **arg) -{ - PairEAMAlloy::coeff(narg, arg); - - // Make sure the EAM file is a CD-EAM binary alloy. - if(setfl->nelements < 2) - error->all(FLERR,"The EAM file must contain at least 2 elements to be used with the eam/cd pair style."); - - // Read in the coefficients of the h polynomial from the end of the EAM file. - read_h_coeff(arg[2]); - - // Determine which atom type is the A species and which is the B species in the alloy. - // By default take the first element (index 0) in the EAM file as the A species - // and the second element (index 1) in the EAM file as the B species. - speciesA = -1; - speciesB = -1; - for(int i = 1; i <= atom->ntypes; i++) { - if(map[i] == 0) { - if(speciesA >= 0) - error->all(FLERR,"The first element from the EAM file may only be mapped to a single atom type."); - speciesA = i; - } - if(map[i] == 1) { - if(speciesB >= 0) - error->all(FLERR,"The second element from the EAM file may only be mapped to a single atom type."); - speciesB = i; - } - } - if(speciesA < 0) - error->all(FLERR,"The first element from the EAM file must be mapped to exactly one atom type."); - if(speciesB < 0) - error->all(FLERR,"The second element from the EAM file must be mapped to exactly one atom type."); -} - -/* ---------------------------------------------------------------------- - Reads in the h(x) polynomial coefficients -------------------------------------------------------------------------- */ -void PairCDEAM::read_h_coeff(char *filename) -{ - if(comm->me == 0) { - // Open potential file - FILE *fptr; - char line[MAXLINE]; - char nextline[MAXLINE]; - fptr = force->open_potential(filename); - if (fptr == NULL) { - char str[128]; - sprintf(str,"Cannot open EAM potential file %s", filename); - error->one(FLERR,str); - } - - // h coefficients are stored at the end of the file. - // Skip to last line of file. - while(fgets(nextline, MAXLINE, fptr) != NULL) { - strcpy(line, nextline); - } - char* ptr = strtok(line, " \t\n\r\f"); - int degree = atoi(ptr); - nhcoeff = degree+1; - hcoeff = new double[nhcoeff]; - int i = 0; - while((ptr = strtok(NULL," \t\n\r\f")) != NULL && i < nhcoeff) { - hcoeff[i++] = atof(ptr); - } - if(i != nhcoeff || nhcoeff < 1) - error->one(FLERR,"Failed to read h(x) function coefficients from EAM file."); - - // Close the potential file. - fclose(fptr); - } - - MPI_Bcast(&nhcoeff, 1, MPI_INT, 0, world); - if(comm->me != 0) hcoeff = new double[nhcoeff]; - MPI_Bcast(hcoeff, nhcoeff, MPI_DOUBLE, 0, world); -} - - -/* ---------------------------------------------------------------------- */ - -int PairCDEAM::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) -{ - int i,j,m; - - m = 0; - if(communicationStage == 2) { - if(cdeamVersion == 1) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = fp[j]; - buf[m++] = rho[j]; - buf[m++] = rhoB[j]; - buf[m++] = D_values[j]; - } - return m; - } - else if(cdeamVersion == 2) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = fp[j]; - buf[m++] = rho[j]; - buf[m++] = rhoB[j]; - } - return m; - } - else { ASSERT(false); return 0; } - } - else if(communicationStage == 4) { - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = D_values[j]; - } - return m; - } - else return 0; -} - -/* ---------------------------------------------------------------------- */ - -void PairCDEAM::unpack_forward_comm(int n, int first, double *buf) -{ - int i,m,last; - - m = 0; - last = first + n; - if(communicationStage == 2) { - if(cdeamVersion == 1) { - for(i = first; i < last; i++) { - fp[i] = buf[m++]; - rho[i] = buf[m++]; - rhoB[i] = buf[m++]; - D_values[i] = buf[m++]; - } - } - else if(cdeamVersion == 2) { - for(i = first; i < last; i++) { - fp[i] = buf[m++]; - rho[i] = buf[m++]; - rhoB[i] = buf[m++]; - } - } else { - ASSERT(false); - } - } - else if(communicationStage == 4) { - for(i = first; i < last; i++) { - D_values[i] = buf[m++]; - } - } -} - -/* ---------------------------------------------------------------------- */ -int PairCDEAM::pack_reverse_comm(int n, int first, double *buf) -{ - int i,m,last; - - m = 0; - last = first + n; - - if(communicationStage == 1) { - if(cdeamVersion == 1) { - for(i = first; i < last; i++) { - buf[m++] = rho[i]; - buf[m++] = rhoB[i]; - buf[m++] = D_values[i]; - } - return m; - } - else if(cdeamVersion == 2) { - for(i = first; i < last; i++) { - buf[m++] = rho[i]; - buf[m++] = rhoB[i]; - } - return m; - } - else { ASSERT(false); return 0; } - } - else if(communicationStage == 3) { - for(i = first; i < last; i++) { - buf[m++] = D_values[i]; - } - return m; - } - else return 0; -} - -/* ---------------------------------------------------------------------- */ - -void PairCDEAM::unpack_reverse_comm(int n, int *list, double *buf) -{ - int i,j,m; - - m = 0; - if(communicationStage == 1) { - if(cdeamVersion == 1) { - for(i = 0; i < n; i++) { - j = list[i]; - rho[j] += buf[m++]; - rhoB[j] += buf[m++]; - D_values[j] += buf[m++]; - } - } else if(cdeamVersion == 2) { - for(i = 0; i < n; i++) { - j = list[i]; - rho[j] += buf[m++]; - rhoB[j] += buf[m++]; - } - } else { - ASSERT(false); - } - } - else if(communicationStage == 3) { - for(i = 0; i < n; i++) { - j = list[i]; - D_values[j] += buf[m++]; - } - } -} - -/* ---------------------------------------------------------------------- - memory usage of local atom-based arrays -------------------------------------------------------------------------- */ -double PairCDEAM::memory_usage() -{ - double bytes = 2 * nmax * sizeof(double); - return PairEAMAlloy::memory_usage() + bytes; -} diff --git a/src/fix_nh.cpp b/src/fix_nh.cpp index 186376d952..73c70420c5 100644 --- a/src/fix_nh.cpp +++ b/src/fix_nh.cpp @@ -798,7 +798,7 @@ void FixNH::setup(int vflag) if (pstat_flag) { double kt = boltz * t_target; - double nkt = atom->natoms * kt; + double nkt = (atom->natoms + 1) * kt; for (int i = 0; i < 3; i++) if (p_flag[i]) @@ -1446,7 +1446,7 @@ double FixNH::compute_scalar() double volume; double energy; double kt = boltz * t_target; - double lkt_press = kt; + double lkt_press = 0.0; int ich; if (dimension == 3) volume = domain->xprd * domain->yprd * domain->zprd; else volume = domain->xprd * domain->yprd; @@ -1477,15 +1477,21 @@ double FixNH::compute_scalar() // sum is over barostatted dimensions if (pstat_flag) { - for (i = 0; i < 3; i++) - if (p_flag[i]) + for (i = 0; i < 3; i++) { + if (p_flag[i]) { energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i] + p_hydro*(volume-vol0) / (pdim*nktv2p); + lkt_press += kt; + } + } if (pstyle == TRICLINIC) { - for (i = 3; i < 6; i++) - if (p_flag[i]) + for (i = 3; i < 6; i++) { + if (p_flag[i]) { energy += 0.5*omega_dot[i]*omega_dot[i]*omega_mass[i]; + lkt_press += kt; + } + } } // extra contributions from thermostat chain for barostat @@ -1818,15 +1824,15 @@ void FixNH::nhc_temp_integrate() void FixNH::nhc_press_integrate() { - int ich,i; + int ich,i,pdof; double expfac,factor_etap,kecurrent; double kt = boltz * t_target; - double lkt_press = kt; + double lkt_press; // Update masses, to preserve initial freq, if flag set if (omega_mass_flag) { - double nkt = atom->natoms * kt; + double nkt = (atom->natoms + 1) * kt; for (int i = 0; i < 3; i++) if (p_flag[i]) omega_mass[i] = nkt/(p_freq[i]*p_freq[i]); @@ -1850,14 +1856,22 @@ void FixNH::nhc_press_integrate() } kecurrent = 0.0; + pdof = 0; for (i = 0; i < 3; i++) - if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + if (p_flag[i]) { + kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + pdof++; + } if (pstyle == TRICLINIC) { for (i = 3; i < 6; i++) - if (p_flag[i]) kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + if (p_flag[i]) { + kecurrent += omega_mass[i]*omega_dot[i]*omega_dot[i]; + pdof++; + } } + lkt_press = pdof * kt; etap_dotdot[0] = (kecurrent - lkt_press)/etap_mass[0]; double ncfac = 1.0/nc_pchain; diff --git a/src/variable.cpp b/src/variable.cpp index 86296b4b40..f005221400 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -1576,7 +1576,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) newtree->nextra = 0; treestack[ntreestack++] = newtree; - } else print_var_error(FLERR,"Mismatched compute in variable formula",ivar); + } else print_var_error(FLERR, + "Mismatched compute in variable formula",ivar); // ---------------- // fix @@ -1584,7 +1585,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) } else if (strncmp(word,"f_",2) == 0 || strncmp(word,"F_",2) == 0) { if (domain->box_exist == 0) - print_var_error(FLERR,"Variable evaluation before simulation box is defined",ivar); + print_var_error(FLERR,"Variable evaluation before " + "simulation box is defined",ivar); // uppercase used to force access of // global vector vs global scalar, and global array vs global vector @@ -1667,11 +1669,14 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (index1 > fix->size_array_rows && fix->size_array_rows_variable == 0) - print_var_error(FLERR,"Variable formula fix array is accessed out-of-range",ivar); + print_var_error(FLERR,"Variable formula fix array is " + "accessed out-of-range",ivar); if (index2 > fix->size_array_cols) - print_var_error(FLERR,"Variable formula fix array is accessed out-of-range",ivar); + print_var_error(FLERR,"Variable formula fix array is " + "accessed out-of-range",ivar); if (update->whichflag > 0 && update->ntimestep % fix->global_freq) - print_var_error(FLERR,"Fix in variable not computed at a compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at a " + "compatible time",ivar); value1 = fix->compute_array(index1-1,index2-1); if (tree) { @@ -1688,13 +1693,17 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) } else if (nbracket == 0 && fix->vector_flag) { if (update->whichflag > 0 && update->ntimestep % fix->global_freq) - print_var_error(FLERR,"Fix in variable not computed at compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at " + "compatible time",ivar); if (tree == NULL) - print_var_error(FLERR,"Fix global vector in ""equal-style variable formula",ivar); + print_var_error(FLERR,"Fix global vector in " + "equal-style variable formula",ivar); if (treetype == ATOM) - print_var_error(FLERR,"Fix global vector in ""atom-style variable formula",ivar); + print_var_error(FLERR,"Fix global vector in " + "atom-style variable formula",ivar); if (fix->size_vector == 0) - print_var_error(FLERR,"Variable formula fix vector is zero length",ivar); + print_var_error(FLERR,"Variable formula " + "fix vector is zero length",ivar); int nvec = fix->size_vector; double *vec; @@ -1726,7 +1735,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) print_var_error(FLERR,"Fix global vector in " "atom-style variable formula",ivar); if (fix->size_array_rows == 0) - print_var_error(FLERR,"Variable formula fix array is zero length",ivar); + print_var_error(FLERR,"Variable formula fix array is " + "zero length",ivar); int nvec = fix->size_array_rows; double *vec; @@ -1785,10 +1795,12 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) fix->size_peratom_cols == 0) { if (tree == NULL) - print_var_error(FLERR,"Per-atom fix in equal-style variable formula",ivar); + print_var_error(FLERR,"Per-atom fix in " + "equal-style variable formula",ivar); if (update->whichflag > 0 && update->ntimestep % fix->peratom_freq) - print_var_error(FLERR,"Fix in variable not computed at compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at " + "compatible time",ivar); Tree *newtree = new Tree(); newtree->type = ATOMARRAY; @@ -1805,13 +1817,15 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) fix->size_peratom_cols > 0) { if (tree == NULL) - print_var_error(FLERR,"Per-atom fix in equal-style variable formula",ivar); + print_var_error(FLERR,"Per-atom fix in " + "equal-style variable formula",ivar); if (index1 > fix->size_peratom_cols) print_var_error(FLERR,"Variable formula fix array " "is accessed out-of-range",ivar); if (update->whichflag > 0 && update->ntimestep % fix->peratom_freq) - print_var_error(FLERR,"Fix in variable not computed at compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at " + "compatible time",ivar); Tree *newtree = new Tree(); newtree->type = ATOMARRAY; @@ -1878,7 +1892,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) char *var = retrieve(word+2); if (var == NULL) - print_var_error(FLERR,"Invalid variable evaluation in variable formula",ivar); + print_var_error(FLERR,"Invalid variable evaluation in " + "variable formula",ivar); if (tree) { Tree *newtree = new Tree(); newtree->type = VALUE; @@ -1977,7 +1992,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) double *vec; int nvec = compute_vector(ivar,&vec); if (index <= 0 || index > nvec) - print_var_error(FLERR,"Invalid index into vector-style variable",ivar); + print_var_error(FLERR,"Invalid index into " + "vector-style variable",ivar); int m = index; // convert from tagint to int if (tree) { @@ -1989,7 +2005,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) treestack[ntreestack++] = newtree; } else argstack[nargstack++] = vec[m-1]; - } else print_var_error(FLERR,"Mismatched variable in variable formula",ivar); + } else print_var_error(FLERR,"Mismatched variable in " + "variable formula",ivar); // ---------------- // math/group/special function or atom value/vector or @@ -2194,7 +2211,8 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (value2 == 0.0) argstack[nargstack++] = 1.0; else if ((value1 == 0.0) && (value2 < 0.0)) - print_var_error(FLERR,"Invalid power expression in variable formula",ivar); + print_var_error(FLERR,"Invalid power expression in " + "variable formula",ivar); else argstack[nargstack++] = pow(value1,value2); } else if (opprevious == UNARY) { argstack[nargstack++] = -value2; @@ -3368,7 +3386,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (tree) newtree->type = LN; else { if (value1 <= 0.0) - print_var_error(FLERR,"Log of zero/negative value in variable formula",ivar); + print_var_error(FLERR,"Log of zero/negative value in " + "variable formula",ivar); argstack[nargstack++] = log(value1); } } else if (strcmp(word,"log") == 0) { @@ -3377,7 +3396,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (tree) newtree->type = LOG; else { if (value1 <= 0.0) - print_var_error(FLERR,"Log of zero/negative value in variable formula",ivar); + print_var_error(FLERR,"Log of zero/negative value in " + "variable formula",ivar); argstack[nargstack++] = log10(value1); } } else if (strcmp(word,"abs") == 0) { @@ -3482,7 +3502,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (narg != 2) print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (update->whichflag == 0) - print_var_error(FLERR,"Cannot use ramp in variable formula between runs",ivar); + print_var_error(FLERR,"Cannot use ramp in " + "variable formula between runs",ivar); if (tree) newtree->type = RAMP; else { double delta = update->ntimestep - update->beginstep; @@ -3617,7 +3638,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (narg != 2) print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (update->whichflag == 0) - print_var_error(FLERR,"Cannot use vdisplace in variable formula between runs",ivar); + print_var_error(FLERR,"Cannot use vdisplace in " + "variable formula between runs",ivar); if (tree) newtree->type = VDISPLACE; else { double delta = update->ntimestep - update->beginstep; @@ -3629,7 +3651,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (narg != 3) print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (update->whichflag == 0) - print_var_error(FLERR,"Cannot use swiggle in variable formula between runs",ivar); + print_var_error(FLERR,"Cannot use swiggle in " + "variable formula between runs",ivar); if (tree) newtree->type = CWIGGLE; else { if (values[0] == 0.0) @@ -3644,7 +3667,8 @@ int Variable::math_function(char *word, char *contents, Tree **tree, if (narg != 3) print_var_error(FLERR,"Invalid math function in variable formula",ivar); if (update->whichflag == 0) - print_var_error(FLERR,"Cannot use cwiggle in variable formula between runs",ivar); + print_var_error(FLERR,"Cannot use cwiggle in " + "variable formula between runs",ivar); if (tree) newtree->type = CWIGGLE; else { if (values[0] == 0.0) @@ -3709,7 +3733,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, if (strcmp(word,"count") == 0) { if (narg == 1) value = group->count(igroup); - else if (narg == 2) value = group->count(igroup,region_function(args[1],ivar)); + else if (narg == 2) + value = group->count(igroup,region_function(args[1],ivar)); else print_var_error(FLERR,"Invalid group function in variable formula",ivar); } else if (strcmp(word,"mass") == 0) { @@ -3719,7 +3744,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"charge") == 0) { if (narg == 1) value = group->charge(igroup); - else if (narg == 2) value = group->charge(igroup,region_function(args[1],ivar)); + else if (narg == 2) + value = group->charge(igroup,region_function(args[1],ivar)); else print_var_error(FLERR,"Invalid group function in variable formula",ivar); } else if (strcmp(word,"xcm") == 0) { @@ -3732,7 +3758,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, int iregion = region_function(args[2],ivar); double masstotal = group->mass(igroup,iregion); group->xcm(igroup,masstotal,xcm,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"x") == 0) value = xcm[0]; else if (strcmp(args[1],"y") == 0) value = xcm[1]; else if (strcmp(args[1],"z") == 0) value = xcm[2]; @@ -3748,7 +3775,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, int iregion = region_function(args[2],ivar); double masstotal = group->mass(igroup,iregion); group->vcm(igroup,masstotal,vcm,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"x") == 0) value = vcm[0]; else if (strcmp(args[1],"y") == 0) value = vcm[1]; else if (strcmp(args[1],"z") == 0) value = vcm[2]; @@ -3767,7 +3795,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"bound") == 0) { double minmax[6]; if (narg == 2) group->bounds(igroup,minmax); - else if (narg == 3) group->bounds(igroup,minmax,region_function(args[2],ivar)); + else if (narg == 3) + group->bounds(igroup,minmax,region_function(args[2],ivar)); else print_var_error(FLERR,"Invalid group function in variable formula",ivar); if (strcmp(args[1],"xmin") == 0) value = minmax[0]; else if (strcmp(args[1],"xmax") == 0) value = minmax[1]; @@ -3789,7 +3818,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, double masstotal = group->mass(igroup,iregion); group->xcm(igroup,masstotal,xcm,iregion); value = group->gyration(igroup,masstotal,xcm,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); } else if (strcmp(word,"ke") == 0) { if (narg == 1) value = group->ke(igroup); @@ -3808,7 +3838,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, double masstotal = group->mass(igroup,iregion); group->xcm(igroup,masstotal,xcm,iregion); group->angmom(igroup,xcm,lmom,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"x") == 0) value = lmom[0]; else if (strcmp(args[1],"y") == 0) value = lmom[1]; else if (strcmp(args[1],"z") == 0) value = lmom[2]; @@ -3826,7 +3857,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, double masstotal = group->mass(igroup,iregion); group->xcm(igroup,masstotal,xcm,iregion); group->torque(igroup,xcm,tq,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"x") == 0) value = tq[0]; else if (strcmp(args[1],"y") == 0) value = tq[1]; else if (strcmp(args[1],"z") == 0) value = tq[2]; @@ -3844,7 +3876,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, double masstotal = group->mass(igroup,iregion); group->xcm(igroup,masstotal,xcm,iregion); group->inertia(igroup,xcm,inertia,iregion); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"xx") == 0) value = inertia[0][0]; else if (strcmp(args[1],"yy") == 0) value = inertia[1][1]; else if (strcmp(args[1],"zz") == 0) value = inertia[2][2]; @@ -3869,7 +3902,8 @@ int Variable::group_function(char *word, char *contents, Tree **tree, group->angmom(igroup,xcm,angmom,iregion); group->inertia(igroup,xcm,inertia,iregion); group->omega(angmom,inertia,omega); - } else print_var_error(FLERR,"Invalid group function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid group function in " + "variable formula",ivar); if (strcmp(args[1],"x") == 0) value = omega[0]; else if (strcmp(args[1],"y") == 0) value = omega[1]; else if (strcmp(args[1],"z") == 0) value = omega[2]; @@ -3924,7 +3958,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **treestack, int &ntreestack, double *argstack, int &nargstack, int ivar) { - double value,xvalue,sx,sy,sxx,sxy; + bigint sx,sxx; + double value,xvalue,sy,sxy; // word not a match to any special function @@ -4020,11 +4055,13 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else index = 0; int ifix = modify->find_fix(&args[0][2]); - if (ifix < 0) print_var_error(FLERR,"Invalid fix ID in variable formula",ivar); + if (ifix < 0) + print_var_error(FLERR,"Invalid fix ID in variable formula",ivar); fix = modify->fix[ifix]; if (index == 0 && fix->vector_flag) { if (update->whichflag > 0 && update->ntimestep % fix->global_freq) - print_var_error(FLERR,"Fix in variable not computed at compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at " + "compatible time",ivar); nvec = fix->size_vector; nstride = 1; } else if (index && fix->array_flag) { @@ -4032,7 +4069,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, print_var_error(FLERR,"Variable formula fix array " "is accessed out-of-range",ivar); if (update->whichflag > 0 && update->ntimestep % fix->global_freq) - print_var_error(FLERR,"Fix in variable not computed at compatible time",ivar); + print_var_error(FLERR,"Fix in variable not computed at " + "compatible time",ivar); nvec = fix->size_array_rows; nstride = fix->size_array_cols; } else print_var_error(FLERR,"Mismatched fix in variable formula",ivar); @@ -4048,10 +4086,12 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else index = 0; if (index) - print_var_error(FLERR,"Invalid special function in variable formula",ivar); + print_var_error(FLERR,"Invalid special function in " + "variable formula",ivar); ivar = find(&args[0][2]); if (ivar < 0) - print_var_error(FLERR,"Invalid special function in variable formula",ivar); + print_var_error(FLERR,"Invalid special function in " + "variable formula",ivar); if (style[ivar] != VECTOR) print_var_error(FLERR,"Mis-matched special function variable " "in variable formula",ivar); @@ -4062,12 +4102,16 @@ int Variable::special_function(char *word, char *contents, Tree **tree, nvec = compute_vector(ivar,&vec); nstride = 1; - } else print_var_error(FLERR,"Invalid special function in variable formula",ivar); + } else print_var_error(FLERR,"Invalid special function in " + "variable formula",ivar); value = 0.0; - if (method == SLOPE) sx = sy = sxx = sxy = 0.0; - if (method == XMIN) value = BIG; - if (method == XMAX) value = -BIG; + if (method == SLOPE) { + sx = sxx = 0; + sy = sxy = 0.0; + } + else if (method == XMIN) value = BIG; + else if (method == XMAX) value = -BIG; if (compute) { double *vec; @@ -4084,12 +4128,10 @@ int Variable::special_function(char *word, char *contents, Tree **tree, else if (method == AVE) value += vec[j]; else if (method == TRAP) value += vec[j]; else if (method == SLOPE) { - if (nvec > 1) xvalue = (double) i / (nvec-1); - else xvalue = 0.0; - sx += xvalue; + sx += i; sy += vec[j]; - sxx += xvalue*xvalue; - sxy += xvalue*vec[j]; + sxx += i*i; + sxy += i*vec[j]; } j += nstride; } @@ -4107,12 +4149,10 @@ int Variable::special_function(char *word, char *contents, Tree **tree, else if (method == AVE) value += one; else if (method == TRAP) value += one; else if (method == SLOPE) { - if (nvec > 1) xvalue = (double) i / (nvec-1); - else xvalue = 0.0; - sx += xvalue; + sx += i; sy += one; - sxx += xvalue*xvalue; - sxy += xvalue*one; + sxx += i*i; + sxy += i*one; } } if (method == TRAP) { @@ -4134,12 +4174,10 @@ int Variable::special_function(char *word, char *contents, Tree **tree, else if (method == AVE) value += one; else if (method == TRAP) value += one; else if (method == SLOPE) { - if (nvec > 1) xvalue = (double) i / (nvec-1); - else xvalue = 0.0; - sx += xvalue; + sx += i; sy += one; - sxx += xvalue*xvalue; - sxy += xvalue*one; + sxx += i*i; + sxy += i*one; } } if (method == TRAP) value -= 0.5*vec[0] + 0.5*vec[nvec-1]; @@ -4148,9 +4186,9 @@ int Variable::special_function(char *word, char *contents, Tree **tree, if (method == AVE) value /= nvec; if (method == SLOPE) { - double numerator = sxy - sx*sy; - double denominator = sxx - sx*sx; - if (denominator != 0.0) value = numerator/denominator / nvec; + double numerator = nvec*sxy - sx*sy; + double denominator = nvec*sxx - sx*sx; + if (denominator != 0.0) value = numerator/denominator; else value = BIG; } @@ -4169,7 +4207,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"gmask") == 0) { if (tree == NULL) - print_var_error(FLERR,"Gmask function in equal-style variable formula",ivar); + print_var_error(FLERR,"Gmask function in equal-style " + "variable formula",ivar); if (narg != 1) print_var_error(FLERR,"Invalid special function in variable formula",ivar); @@ -4186,7 +4225,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"rmask") == 0) { if (tree == NULL) - print_var_error(FLERR,"Rmask function in equal-style variable formula",ivar); + print_var_error(FLERR,"Rmask function in equal-style " + "variable formula",ivar); if (narg != 1) print_var_error(FLERR,"Invalid special function in variable formula",ivar); @@ -4202,7 +4242,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"grmask") == 0) { if (tree == NULL) - print_var_error(FLERR,"Grmask function in equal-style variable formula",ivar); + print_var_error(FLERR,"Grmask function in equal-style " + "variable formula",ivar); if (narg != 2) print_var_error(FLERR,"Invalid special function in variable formula",ivar); @@ -4228,7 +4269,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, int ivar = find(args[0]); if (ivar < 0) - print_var_error(FLERR,"Variable ID in variable formula does not exist",ivar); + print_var_error(FLERR,"Variable ID in " + "variable formula does not exist",ivar); // SCALARFILE has single current value, read next one // save value in tree or on argstack @@ -4253,7 +4295,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (style[ivar] == ATOMFILE) { if (tree == NULL) - print_var_error(FLERR,"Atomfile variable in equal-style variable formula",ivar); + print_var_error(FLERR,"Atomfile variable in " + "equal-style variable formula",ivar); double *result; memory->create(result,atom->nlocal,"variable:result"); @@ -4271,11 +4314,13 @@ int Variable::special_function(char *word, char *contents, Tree **tree, newtree->nextra = 0; treestack[ntreestack++] = newtree; - } else print_var_error(FLERR,"Invalid variable style in special function next",ivar); + } else print_var_error(FLERR,"Invalid variable style in " + "special function next",ivar); } else if (strcmp(word,"is_active") == 0) { if (narg != 2) - print_var_error(FLERR,"Invalid is_active() function in variable formula",ivar); + print_var_error(FLERR,"Invalid is_active() function in " + "variable formula",ivar); Info info(lmp); value = (info.is_active(args[0],args[1])) ? 1.0 : 0.0; @@ -4293,7 +4338,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"is_available") == 0) { if (narg != 2) - print_var_error(FLERR,"Invalid is_available() function in variable formula",ivar); + print_var_error(FLERR,"Invalid is_available() function in " + "variable formula",ivar); Info info(lmp); value = (info.is_available(args[0],args[1])) ? 1.0 : 0.0; @@ -4311,7 +4357,8 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"is_defined") == 0) { if (narg != 2) - print_var_error(FLERR,"Invalid is_defined() function in variable formula",ivar); + print_var_error(FLERR,"Invalid is_defined() function in " + "variable formula",ivar); Info info(lmp); value = (info.is_defined(args[0],args[1])) ? 1.0 : 0.0; diff --git a/src/version.h b/src/version.h index 90a21631d9..b95c259dd6 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "16 Jul 2018" +#define LAMMPS_VERSION "2 Aug 2018" diff --git a/tools/emacs/README.md b/tools/emacs/README.md new file mode 100644 index 0000000000..75504a7000 --- /dev/null +++ b/tools/emacs/README.md @@ -0,0 +1,82 @@ +# GNU Emacs Syntax Highlighting + +> Copyright (C) 2010-2018 Aidan Thompson +> Copyright (C) 2018 Rohit Goswami + +The `lammps-mode.el` file provided in this directory will enable syntax +highlighting for the lammps script syntax in GNU Emacs. The groupings of +commands were originally copied from `tools/vim`. + +## Installation +**Requirements: GNU Emacs 24.\*** + +### Obtaining the Package + +#### MELPA + +The easiest installation method is via MELPA and it is advisable to use one of +the many [MELPA installation methods](https://melpa.org/#/getting-started). + +For example, with [use-package](https://github.com/jwiegley/use-package) one can +simply use the following: + +``` emacs-lisp +(use-package lammps-mode) +``` + +#### Manually + +Assuming for some reason you have downloaded the file to `~/.emacs.d/lisp` you +would do the following (kanged [from here](http://ergoemacs.org/emacs/emacs_installing_packages.html)): + +``` emacs-lisp +;; Tell emacs where is your personal elisp lib dir +(add-to-list 'load-path "~/.emacs.d/lisp/") + +;; load the package. +(load "lammps-mode") +``` + +### Autoloading \& Auto-recognition + +To automatically turn on the LAMMPS mode for editing your input scripts, +use the following line as the **first** line of your script: +``` +# -*- lammps -*- +``` + +For automatically switching on the LAMMPS mode based on filename patterns, +e.g. for `in.*` and `*.lmp` files, add the following code to your `.emacs`: + +``` emacs-lisp +(autoload 'lammps-mode "lammps-mode.el" "LAMMPS mode." t) +(setq auto-mode-alist (append auto-mode-alist + '(("in\\." . lammps-mode)) + '(("\\.lmp\\'" . lammps-mode)) + )) +``` + +## Status + +By far not all commands are included in the syntax file (lammps-mode.el). You +can easily add new ones to the existing classes. + +## Implementation Details + +`lammps-mode` is derived from `shell-script-mode` which provides some basic +syntax highlighting of strings, comments, etc. + +The MELPA recipe used for this package is simply: + +``` emacs-lisp +(lammps-mode :fetcher github :repo "HaoZeke/lammps-mode") +``` + +## Caveats + +* Does not work with Xemacs [See [this comment](https://github.com/lammps/lammps/pull/1022#issuecomment-408871233)] + +## License + +[GNU GPL v2](https://github.com/HaoZeke/lammps-mode/blob/master/LICENSE). +Check the file for more details. diff --git a/tools/emacs/README.txt b/tools/emacs/README.txt deleted file mode 100644 index 8dfc37cb85..0000000000 --- a/tools/emacs/README.txt +++ /dev/null @@ -1,23 +0,0 @@ -=== Emacs Syntax Highlighting === -Created by Aidan Thompson 12/2010 -=============================== - -The lammps.el file provided in this directory will enable syntax -highlighting for the lammps script syntax in emacs. The groupings -of commands were copied from tools/vim. The simulation scripts have to -end on *.lmp or start with in.* (see lammps.el). By far not all -commands are included in the syntax file (lammps.el). -You can easily add new ones to the existing classes. -'lammps-mode' is derived from 'shell-script-mode' which provides -some basic syntax highlighting of strings, comments, etc. - -=To enable the highlighting: -============================ -(0) Create/edit the emacs init file ~/.emacs to contain: - -(load "~/.emacs.d/lammps") - -This file may also be called ~/.emacs.el, or ~/.emacs.d/init.el - -(1) Copy lammps.el to the directory ~/.emacs.d - diff --git a/tools/emacs/lammps.el b/tools/emacs/lammps-mode.el similarity index 73% rename from tools/emacs/lammps.el rename to tools/emacs/lammps-mode.el index d1ebebbbbf..37e8a32116 100644 --- a/tools/emacs/lammps.el +++ b/tools/emacs/lammps-mode.el @@ -1,7 +1,48 @@ -;; LAMMPS auto-mode +;;; lammps-mode.el --- basic syntax highlighting for LAMMPS files + +;; Copyright (C) 2010-18 Aidan Thompson +;; Copyright (C) 2018 Rohit Goswami + +;; Author: Aidan Thompson +;; Maintainer: Rohit Goswami +;; Created: December 4, 2010 +;; Modified: July 30, 2018 +;; Version: 1.5.0 +;; Keywords: languages, faces +;; Homepage: https://github.com/lammps/lammps/tree/master/tools/emacs +;; Package-Requires: ((emacs "24.4")) + +;; This file is not part of GNU Emacs. + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License along +;; with this program; if not, write to the Free Software Foundation, Inc., +;; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +;;; Commentary: ;; translation of keyword classes from tools/vim ;; see http://xahlee.org/emacs/elisp_syntax_coloring.html +;; Put this in your .emacs file to enable autoloading of lammps-mode +;; and auto-recognition of "in.*" and "*.lmp" files: +;; +;; (autoload 'lammps-mode "lammps-mode.el" "LAMMPS mode." t) +;; (setq auto-mode-alist (append auto-mode-alist +;; '(("in\\." . lammps-mode)) +;; '(("\\.lmp\\'" . lammps-mode)) +;; )) +;; + +;;; Code: ;; define several keyword classes (defvar lammps-output '("log" @@ -136,6 +177,8 @@ (defvar lammps-variable-regexp "\\$\\({[a-zA-Z0-9_]+}\\)\\|\\$[A-Za-z]") +(defvar lammps-font-lock-keywords) + ;; clear memory (setq lammps-output nil) (setq lammps-read nil) @@ -151,8 +194,7 @@ ;; create the list for font-lock. ;; each class of keyword is given a particular face -(setq - lammps-font-lock-keywords +(setq lammps-font-lock-keywords `((,lammps-output-regexp . font-lock-function-name-face) (,lammps-read-regexp . font-lock-preprocessor-face) (,lammps-lattice-regexp . font-lock-type-face) @@ -199,12 +241,5 @@ (setq lammps-comment-regexp nil) (setq lammps-variable-regexp nil)) -;; apply it to specified filename patterns -(setq - auto-mode-alist - (append - auto-mode-alist - '(("in\\." . lammps-mode)) - '(("\\.lmp\\'" . lammps-mode)) - )) - +(provide 'lammps-mode) +;;; lammps-mode.el ends here From b97195d48f69d984005b81d33da4fc161e3806f8 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 6 Aug 2018 15:58:53 -0600 Subject: [PATCH 408/675] CMake: download ScaFaCoS, compile and link it - required resorting, as Fortran MPI is required --- cmake/CMakeLists.txt | 103 +++++++++++++++++++++++++++++++------------ 1 file changed, 75 insertions(+), 28 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 401bdca99c..b2cc7e613d 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -115,6 +115,34 @@ set(LAMMPS_LINK_LIBS) set(LAMMPS_DEPS) set(LAMMPS_API_DEFINES) +set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR + KSPACE MANYBODY MC MEAM MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP + SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS + USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE + USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC + USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SCAFACOS + USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM) +set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) +set(OTHER_PACKAGES CORESHELL QEQ) +foreach(PKG ${DEFAULT_PACKAGES}) + option(PKG_${PKG} "Build ${PKG} Package" OFF) +endforeach() +foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES}) + option(PKG_${PKG} "Build ${PKG} Package" OFF) +endforeach() + +###################################################### +# packages with special compiler needs or external libs +###################################################### +if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE OR PKG_USER-SCAFACOS) + enable_language(Fortran) +endif() + +if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM OR PKG_USER-SCAFACOS) + enable_language(C) +endif() + +# do MPI detection after language activation, if MPI for these language is required find_package(MPI QUIET) option(BUILD_MPI "Build MPI version" ${MPI_FOUND}) if(BUILD_MPI) @@ -154,22 +182,6 @@ if(ENABLE_TESTING) enable_testing() endif(ENABLE_TESTING) -set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR - KSPACE MANYBODY MC MEAM MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP - SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS - USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE - USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC - USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SCAFACOS - USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM) -set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) -set(OTHER_PACKAGES CORESHELL QEQ) -foreach(PKG ${DEFAULT_PACKAGES}) - option(PKG_${PKG} "Build ${PKG} Package" OFF) -endforeach() -foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES}) - option(PKG_${PKG} "Build ${PKG} Package" OFF) -endforeach() - macro(pkg_depends PKG1 PKG2) if(PKG_${PKG1} AND NOT (PKG_${PKG2} OR BUILD_${PKG2})) message(FATAL_ERROR "${PKG1} package needs LAMMPS to be build with ${PKG2}") @@ -182,17 +194,7 @@ pkg_depends(MPIIO MPI) pkg_depends(USER-ATC MANYBODY) pkg_depends(USER-LB MPI) pkg_depends(USER-PHONON KSPACE) - -###################################################### -# packages with special compiler needs or external libs -###################################################### -if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE) - enable_language(Fortran) -endif() - -if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM) - enable_language(C) -endif() +pkg_depends(USER-SCAFACOS MPI) find_package(OpenMP QUIET) option(BUILD_OMP "Build with OpenMP support" ${OpenMP_FOUND}) @@ -350,10 +352,55 @@ if(PKG_LATTE) endif() if(PKG_USER-SCAFACOS) + find_package(GSL REQUIRED) + option(DOWNLOAD_SCAFACOS "Download ScaFaCoS (instead of using the system's one)" OFF) + if(DOWNLOAD_SCAFACOS) + include(ExternalProject) + ExternalProject_Add(scafacos_build + URL https://github.com/scafacos/scafacos/releases/download/v1.0.0/scafacos-1.0.0.tar.gz + URL_MD5 c75d75d8a4cb9757faddb8b205a2b20f + CONFIGURE_COMMAND /configure --prefix= + --disable-doc + --enable-fcs-solvers=fmm,p2nfft,direct,ewald + FC=${CMAKE_MPI_Fortran_COMPILER} + CXX=${CMAKE_MPI_CXX_COMPILER} + CC=${CMAKE_MPI_C_COMPILER} + F77= + ) + ExternalProject_get_property(scafacos_build INSTALL_DIR) + set(SCAFACOS_BUILD_DIR ${INSTALL_DIR}) + set(SCAFACOS_INCLUDE_DIRS ${SCAFACOS_BUILD_DIR}/include) + list(APPEND LAMMPS_DEPS scafacos_build) + # list and order from pkg_config file of ScaFaCoS build + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_direct.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_ewald.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fmm.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p2nfft.a) + list(APPEND LAMMPS_LINK_LIBS ${GSL_LIBRARIES}) + #list(APPEND LAMMPS_LINK_LIBS gsl) + #list(APPEND LAMMPS_LINK_LIBS gslcblas) + list(APPEND LAMMPS_LINK_LIBS m) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_near.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_gridsort.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_resort.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_common.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pnfft.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pfft.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3_mpi.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3.a) + list(APPEND LAMMPS_LINK_LIBS ${MPI_Fortran_LIBRARIES}) + list(APPEND LAMMPS_LINK_LIBS ${MPI_C_LIBRARIES}) +# -L${libdir} -lfcs4fortran -lfcs -lfcs_direct -lfcs_ewald -lfcs_fmm -lfcs_p2nfft -lgsl -lgslcblas -lm -lfcs_near -lfcs_gridsort -lfcs_resort -lfcs_common -lfcs_pnfft -lfcs_pfft -lfcs_fftw3_mpi -lfcs_fftw3 -L/projects/opt/centos7/mpich/3.2-gcc_6.2.0/lib -L/projects/opt/centos7/gcc/6.2.0/packages/gcc-6.2.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.2.0 -L/projects/opt/centos7/gcc/6.2.0/packages/gcc-6.2.0/bin/../lib/gcc -L/projects/opt/centos7/gcc/6.2.0/packages/gcc-6.2.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/projects/opt/centos7/gcc/6.2.0/packages/gcc-6.2.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.2.0/../../.. -lmpifort -lmpi -lgfortran -lm -lquadmath +#libfcs4fortran.a libfcs_common.a libfcs_direct.la libfcs_fftw3.a libfcs_fftw3_mpi.la libfcs_gridsort.a libfcs_near.a libfcs_p2nfft.la libfcs_pnfft.a libfcs_resort.la +#libfcs4fortran.la libfcs_common.la libfcs_ewald.a libfcs_fftw3.la libfcs_fmm.a libfcs_gridsort.la libfcs_near.la libfcs_pfft.a libfcs_pnfft.la pkgconfig +#libfcs.a libfcs_direct.a libfcs_ewald.la libfcs_fftw3_mpi.a libfcs_fmm.la libfcs.la libfcs_p2nfft.a libfcs_pfft.la libfcs_resort.a + else() FIND_PACKAGE(PkgConfig REQUIRED) PKG_CHECK_MODULES(SCAFACOS scafacos) - include_directories(${SCAFACOS_INCLUDE_DIRS}) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_LDFLAGS}) + endif() + include_directories(${SCAFACOS_INCLUDE_DIRS}) endif() if(PKG_USER-MOLFILE) From 953b2837739501df789721655447c6c14a6236f7 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 6 Aug 2018 15:59:46 -0600 Subject: [PATCH 409/675] updated URL for tarball download --- lib/scafacos/Install.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/scafacos/Install.py b/lib/scafacos/Install.py index df82780438..4e00e805d1 100644 --- a/lib/scafacos/Install.py +++ b/lib/scafacos/Install.py @@ -29,8 +29,8 @@ make lib-scafacos args="-p $HOME/scafacos" # use existing Scafacos installation # settings -version = "scafacos-0.9" -url = "https://gigamove.rz.rwth-aachen.de/d/id/fTmrTm4EUAUSAp/dd/100" +version = "scafacos-1.0.0" +url = "https://github.com/scafacos/scafacos/releases/download/v1.0.0/scafacos-1.0.0.tar.gz" #url = "https://gigamove.rz.rwth-aachen.de/d/id/CTzyApN76MXMJ6/dd/100" % version # print error message or help From 0a27b7065b0476e1fc3c9834bf783a7278b4053d Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Mon, 6 Aug 2018 16:01:39 -0600 Subject: [PATCH 410/675] bug fixes: ScaFaCoS returns virial as 9-value array, requires copies to Lammps 6-value array; fixed error in compuation of per-atom energy calculation --- src/USER-SCAFACOS/scafacos.cpp | 22 ++++++++++++++++++++-- src/USER-SCAFACOS/scafacos.h | 2 ++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index d4b106b26c..27828b1da1 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -219,7 +219,25 @@ void Scafacos::compute(int eflag, int vflag) if (vflag_global) { - fcs_get_virial(fcs,virial); + fcs_get_virial(fcs,virial_int); + /* + printf(" %lf %lf %lf \n %lf %lf %lf \n %lf %lf %lf \n ", + virial_int[0], + virial_int[1], + virial_int[2], + virial_int[3], + virial_int[4], + virial_int[5], + virial_int[6], + virial_int[7], + virial_int[8]); + */ + virial[0] = virial_int[0]; + virial[1] = virial_int[1]; + virial[2] = virial_int[2]; + virial[3] = virial_int[4]; + virial[4] = virial_int[5]; + virial[5] = virial_int[8]; } // apply Efield to each particle @@ -240,7 +258,7 @@ void Scafacos::compute(int eflag, int vflag) if (eflag_atom) { for (int i = 0; i < nlocal; i++) - eatom[i] = qscale * epot[i]; + eatom[i] = 0.5 * qscale * q[i] * epot[i]; } MPI_Allreduce(&myeng,&energy,1,MPI_DOUBLE,MPI_SUM,world); diff --git a/src/USER-SCAFACOS/scafacos.h b/src/USER-SCAFACOS/scafacos.h index 857036bb7a..8f7c46dc6b 100644 --- a/src/USER-SCAFACOS/scafacos.h +++ b/src/USER-SCAFACOS/scafacos.h @@ -57,6 +57,8 @@ class Scafacos : public KSpace { fcs_int old_periodicity[3]; fcs_int old_natoms; + fcs_float virial_int[9]; + void check_result(FCSResult); void setup_handle(); bool box_has_changed(); From ba693a74be0b785818ae592d82daf0282871ebb0 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Tue, 7 Aug 2018 12:27:32 -0600 Subject: [PATCH 411/675] Add contribute method to pair_table_kokkos --- src/KOKKOS/pair_table_kokkos.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/KOKKOS/pair_table_kokkos.cpp b/src/KOKKOS/pair_table_kokkos.cpp index 7b06f814bb..b72df04c5f 100644 --- a/src/KOKKOS/pair_table_kokkos.cpp +++ b/src/KOKKOS/pair_table_kokkos.cpp @@ -128,21 +128,25 @@ void PairTableKokkos::compute_style(int eflag_in, int vflag_in) ff(this,(NeighListKokkos*) list); if (eflag || vflag) Kokkos::parallel_reduce(list->inum,ff,ev); else Kokkos::parallel_for(list->inum,ff); + ff.contribute(); } else if (neighflag == HALFTHREAD) { PairComputeFunctor,HALFTHREAD,false,S_TableCompute > ff(this,(NeighListKokkos*) list); if (eflag || vflag) Kokkos::parallel_reduce(list->inum,ff,ev); else Kokkos::parallel_for(list->inum,ff); + ff.contribute(); } else if (neighflag == HALF) { PairComputeFunctor,HALF,false,S_TableCompute > f(this,(NeighListKokkos*) list); if (eflag || vflag) Kokkos::parallel_reduce(list->inum,f,ev); else Kokkos::parallel_for(list->inum,f); + f.contribute(); } else if (neighflag == N2) { PairComputeFunctor,N2,false,S_TableCompute > f(this,(NeighListKokkos*) list); if (eflag || vflag) Kokkos::parallel_reduce(list->inum,f,ev); else Kokkos::parallel_for(list->inum,f); + f.contribute(); } } else { if (neighflag == FULL) { @@ -150,21 +154,25 @@ void PairTableKokkos::compute_style(int eflag_in, int vflag_in) f(this,(NeighListKokkos*) list); if (eflag || vflag) Kokkos::parallel_reduce(list->inum,f,ev); else Kokkos::parallel_for(list->inum,f); + f.contribute(); } else if (neighflag == HALFTHREAD) { PairComputeFunctor,HALFTHREAD,true,S_TableCompute > f(this,(NeighListKokkos*) list); if (eflag || vflag) Kokkos::parallel_reduce(list->inum,f,ev); else Kokkos::parallel_for(list->inum,f); + f.contribute(); } else if (neighflag == HALF) { PairComputeFunctor,HALF,true,S_TableCompute > f(this,(NeighListKokkos*) list); if (eflag || vflag) Kokkos::parallel_reduce(list->inum,f,ev); else Kokkos::parallel_for(list->inum,f); + f.contribute(); } else if (neighflag == N2) { PairComputeFunctor,N2,true,S_TableCompute > f(this,(NeighListKokkos*) list); if (eflag || vflag) Kokkos::parallel_reduce(list->inum,f,ev); else Kokkos::parallel_for(list->inum,f); + f.contribute(); } } From a944d1c913350cbe4378637a5f458b251bc5334e Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 7 Aug 2018 14:26:53 -0600 Subject: [PATCH 412/675] fixed missing REQUIRED and introduced the compilation of internal sub-libraries (FFTW,PFFT,PNFFT) --- cmake/CMakeLists.txt | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index b2cc7e613d..0ec2d2086c 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -361,7 +361,10 @@ if(PKG_USER-SCAFACOS) URL_MD5 c75d75d8a4cb9757faddb8b205a2b20f CONFIGURE_COMMAND /configure --prefix= --disable-doc - --enable-fcs-solvers=fmm,p2nfft,direct,ewald + --enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m + --with-internal-fftw + --with-internal-pfft + --with-internal-pnfft FC=${CMAKE_MPI_Fortran_COMPILER} CXX=${CMAKE_MPI_CXX_COMPILER} CC=${CMAKE_MPI_C_COMPILER} @@ -377,9 +380,8 @@ if(PKG_USER-SCAFACOS) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_ewald.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fmm.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p2nfft.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p3m.a) list(APPEND LAMMPS_LINK_LIBS ${GSL_LIBRARIES}) - #list(APPEND LAMMPS_LINK_LIBS gsl) - #list(APPEND LAMMPS_LINK_LIBS gslcblas) list(APPEND LAMMPS_LINK_LIBS m) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_near.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_gridsort.a) @@ -391,13 +393,9 @@ if(PKG_USER-SCAFACOS) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3.a) list(APPEND LAMMPS_LINK_LIBS ${MPI_Fortran_LIBRARIES}) list(APPEND LAMMPS_LINK_LIBS ${MPI_C_LIBRARIES}) -# -L${libdir} -lfcs4fortran -lfcs -lfcs_direct -lfcs_ewald -lfcs_fmm -lfcs_p2nfft -lgsl -lgslcblas -lm -lfcs_near -lfcs_gridsort -lfcs_resort -lfcs_common -lfcs_pnfft -lfcs_pfft -lfcs_fftw3_mpi -lfcs_fftw3 -L/projects/opt/centos7/mpich/3.2-gcc_6.2.0/lib -L/projects/opt/centos7/gcc/6.2.0/packages/gcc-6.2.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.2.0 -L/projects/opt/centos7/gcc/6.2.0/packages/gcc-6.2.0/bin/../lib/gcc -L/projects/opt/centos7/gcc/6.2.0/packages/gcc-6.2.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.2.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/projects/opt/centos7/gcc/6.2.0/packages/gcc-6.2.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.2.0/../../.. -lmpifort -lmpi -lgfortran -lm -lquadmath -#libfcs4fortran.a libfcs_common.a libfcs_direct.la libfcs_fftw3.a libfcs_fftw3_mpi.la libfcs_gridsort.a libfcs_near.a libfcs_p2nfft.la libfcs_pnfft.a libfcs_resort.la -#libfcs4fortran.la libfcs_common.la libfcs_ewald.a libfcs_fftw3.la libfcs_fmm.a libfcs_gridsort.la libfcs_near.la libfcs_pfft.a libfcs_pnfft.la pkgconfig -#libfcs.a libfcs_direct.a libfcs_ewald.la libfcs_fftw3_mpi.a libfcs_fmm.la libfcs.la libfcs_p2nfft.a libfcs_pfft.la libfcs_resort.a else() FIND_PACKAGE(PkgConfig REQUIRED) - PKG_CHECK_MODULES(SCAFACOS scafacos) + PKG_CHECK_MODULES(SCAFACOS scafacos REQUIRED) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_LDFLAGS}) endif() include_directories(${SCAFACOS_INCLUDE_DIRS}) From cdde51d8af3d38679fbd311e942fd94359305560 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 7 Aug 2018 14:29:04 -0600 Subject: [PATCH 413/675] fixed example so that P3M also works, changed tolerance type in the FMM example --- examples/USER/scafacos/data.NaCl | 22 +++++++++++----------- examples/USER/scafacos/in.scafacos.fmm | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/USER/scafacos/data.NaCl b/examples/USER/scafacos/data.NaCl index 23807e23d5..2fd6077983 100644 --- a/examples/USER/scafacos/data.NaCl +++ b/examples/USER/scafacos/data.NaCl @@ -4,9 +4,9 @@ LAMMPS Description 2 atom types -0 2 xlo xhi -0 2 ylo yhi -0 2 zlo zhi +0 1 xlo xhi +0 1 ylo yhi +0 1 zlo zhi Masses @@ -15,11 +15,11 @@ Masses Atoms -1 2 1 0 0 0 -2 1 -1 1 0 0 -3 1 -1 0 1 0 -4 2 1 1 1 0 -5 1 -1 0 0 1 -6 2 1 1 0 1 -7 2 1 0 1 1 -8 1 -1 1 1 1 +1 2 1 0.25 0.25 0.25 +2 1 -1 0.75 0.25 0.25 +3 1 -1 0.25 0.75 0.25 +4 2 1 0.75 0.75 0.25 +5 1 -1 0.25 0.25 0.75 +6 2 1 0.75 0.25 0.75 +7 2 1 0.25 0.75 0.75 +8 1 -1 0.75 0.75 0.75 diff --git a/examples/USER/scafacos/in.scafacos.fmm b/examples/USER/scafacos/in.scafacos.fmm index 18d7464fb8..054188ede2 100644 --- a/examples/USER/scafacos/in.scafacos.fmm +++ b/examples/USER/scafacos/in.scafacos.fmm @@ -29,7 +29,7 @@ pair_coeff * * #fix 2 all scafacos p3m tolerance field 0.001 kspace_style scafacos fmm 0.001 -kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos tolerance energy timestep 0.005 thermo 10 From eb86ec3eea994ad1828f5db9b7e2db11ba5ff91b Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 7 Aug 2018 15:03:48 -0600 Subject: [PATCH 414/675] added support for p3m, added check for compatible tolerance / method combinations (should they not be caught by ScaFaCoS itself) --- src/USER-SCAFACOS/scafacos.cpp | 80 ++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 29 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 27828b1da1..fdbd5e34e0 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -96,10 +96,13 @@ Scafacos::~Scafacos() void Scafacos::init() { // error checks - if (screen && me == 0) fprintf(screen,"Setting up ScaFaCoS with solver %s ...\n",method); - if (logfile && me == 0) fprintf(logfile,"Setting up ScaFaCoS with solver %s ...\n",method); + if (screen && me == 0) fprintf(screen, + "Setting up ScaFaCoS with solver %s ...\n",method); + if (logfile && me == 0) fprintf(logfile, + "Setting up ScaFaCoS with solver %s ...\n",method); - if (!atom->q_flag) error->all(FLERR,"Kspace style requires atom attribute q"); + if (!atom->q_flag) error->all(FLERR, + "Kspace style requires atom attribute q"); if (domain->dimension == 2) error->all(FLERR,"Cannot use ScaFaCoS with 2d simulation"); @@ -111,7 +114,8 @@ void Scafacos::init() error->all(FLERR,"Scafacos atom count exceeds 2B"); if (atom->molecular > 0) - error->all(FLERR,"Cannot use Scafacos with molecular charged systems yet"); + error->all(FLERR, + "Cannot use Scafacos with molecular charged systems yet"); // one-time initialization of ScaFaCoS @@ -204,34 +208,16 @@ void Scafacos::compute(int eflag, int vflag) if (vflag_global) { fcs_set_compute_virial(fcs,1); + if (strcmp(method,"p3m") == 0) + error->all(FLERR,"ScaFaCoS p3m does not support the computation of virial"); } - /* - if (strcmp(method,"p3m")==0) - { - result = fcs_tune(fcs,nlocal,&x[0][0],q); - check_result(result); - } - */ - result = fcs_run(fcs,nlocal,&x[0][0],q,&efield[0][0],epot); check_result(result); if (vflag_global) { fcs_get_virial(fcs,virial_int); - /* - printf(" %lf %lf %lf \n %lf %lf %lf \n %lf %lf %lf \n ", - virial_int[0], - virial_int[1], - virial_int[2], - virial_int[3], - virial_int[4], - virial_int[5], - virial_int[6], - virial_int[7], - virial_int[8]); - */ virial[0] = virial_int[0]; virial[1] = virial_int[1]; virial[2] = virial_int[2]; @@ -277,7 +263,8 @@ int Scafacos::modify_param(int narg, char **arg) if (strcmp(arg[0],"scafacos") != 0) return 0; if (strcmp(arg[1],"tolerance") == 0) { - if (narg < 3) error->all(FLERR,"Illegal kspace_modify command (tolerance)"); + if (narg < 3) error->all(FLERR, + "Illegal kspace_modify command (tolerance)"); if (strcmp(arg[2],"energy") == 0) tolerance_type = FCS_TOLERANCE_TYPE_ENERGY; else if (strcmp(arg[2],"energy_rel") == 0) @@ -290,7 +277,39 @@ int Scafacos::modify_param(int narg, char **arg) tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL; else if (strcmp(arg[2],"potential_rel") == 0) tolerance_type = FCS_TOLERANCE_TYPE_POTENTIAL_REL; - else error->all(FLERR,"Illegal kspace_modify command (tolerance argument)"); + else error->all(FLERR, + "Illegal kspace_modify command (tolerance argument)"); + // check if method is compatatible to chosen tolerance type + if( + ( + strcmp(method,"fmm") == 0 && + ( + tolerance_type != FCS_TOLERANCE_TYPE_ENERGY && + tolerance_type != FCS_TOLERANCE_TYPE_ENERGY_REL + ) + ) && + ( + strcmp(method,"p2nfft") == 0 && + ( + tolerance_type != FCS_TOLERANCE_TYPE_FIELD && + tolerance_type != FCS_TOLERANCE_TYPE_POTENTIAL + ) + ) && + ( + strcmp(method,"p3m") == 0 && + ( + tolerance_type != FCS_TOLERANCE_TYPE_FIELD + ) + ) && + ( + strcmp(method,"ewald") == 0 && + ( + tolerance_type != FCS_TOLERANCE_TYPE_FIELD + ) + ) + ) + error->all(FLERR,"Illegal kspace_modify command \ + (invalid tolerance / method combination)"); return 3; } @@ -300,9 +319,12 @@ int Scafacos::modify_param(int narg, char **arg) // 1 -> inhomogenous system (more internal tuning is provided (sequential!)) if (strcmp(arg[1],"fmm_tuning") == 0) { - if (screen && me == 0) fprintf(screen,"ScaFaCoS setting fmm inhomogen tuning ...\n"); - if (logfile && me == 0) fprintf(logfile,"ScaFaCoS setting fmm inhomogen tuning ...\n"); - if (narg < 3) error->all(FLERR,"Illegal kspace_modify command (fmm_tuning)"); + if (screen && me == 0) fprintf(screen, + "ScaFaCoS setting fmm inhomogen tuning ...\n"); + if (logfile && me == 0) fprintf(logfile, + "ScaFaCoS setting fmm inhomogen tuning ...\n"); + if (narg < 3) error->all(FLERR, + "Illegal kspace_modify command (fmm_tuning)"); fmm_tuning_flag = atoi(arg[2]); return 3; } From 48fd8b46ee49b8b56d0c9470a4114091b2d7a25b Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 7 Aug 2018 15:04:37 -0600 Subject: [PATCH 415/675] cleaned documentation, added p3m entry for allowed tolerance type --- doc/src/kspace_modify.txt | 15 +++------------ doc/src/kspace_style.txt | 1 + 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index 57cff18d7e..b05bd6dccb 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -346,17 +346,12 @@ the per-atom electric field, this effectively sets a tolerance on the forces, simimlar to other LAMMPS KSpace styles, as explained on the "kspace_style"_kspace_style.html doc page. -RENE: Also, can you explain more what is the difference between energy -(total) and potential (per-atom)? Which one is more vs less accurate? -Does potential mean that the maximum of any atom's energy error is < -tolerance? I.e. it is a max across all per-atom values? Ditto for -field, since it is computed on a per-atom basis? - Note that not all ScaFaCoS solvers support all tolerance types. These are the allowed values for each method: fmm = energy and energy_rel p2nfft = field (1d-,2d-,3d-periodic systems) or potential (0d-periodic) +p3m = field ewald = field direct = has no tolerance tuning :ul @@ -364,17 +359,13 @@ If the tolerance type is not changed, the default values for the tolerance type are the first values in the above list, e.g. energy is the default tolerance type for the fmm solver. -RENE: Does the code (LAMMPS or Scafacos) generate an error -if an unsupported tolerance is specified for a method? - The {fmm_tuning} option is only relevant when using the FMM method. It activates (value=1) or deactivates (value=0) an internal tuning mechanism for the FMM solver. The tuning operation runs sequentially and can be very time-consuming. Usually it is not needed for systems with a homogenous charge distribution. The default for this option is -therefore {0}. - -RENE: is the tuning a one-time (start-up) operation if enabled? +therefore {0}. The FMM internal tuning is performed once, when the +solver is set up. :line diff --git a/doc/src/kspace_style.txt b/doc/src/kspace_style.txt index cff196ed69..9e26f8e2e4 100644 --- a/doc/src/kspace_style.txt +++ b/doc/src/kspace_style.txt @@ -251,6 +251,7 @@ These are the ScaFaCoS methods currently available from LAMMPS: {p2nfft} = FFT-based Coulomb solver {ewald} = Ewald summation {direct} = direct O(N^2) summation +{p3m} = PPPM We plan to support additional ScaFaCoS solvers from LAMMPS in the future. For an overview of the included solvers, refer to From d27215b7e1a303defc72ad3eb1c3b27c60eb67bc Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 7 Aug 2018 15:05:07 -0600 Subject: [PATCH 416/675] enable more correct natoms computation when atoms are lost --- src/fix_group.cpp | 2 +- src/group.cpp | 12 ++++++++++++ src/group.h | 1 + src/thermo.cpp | 2 +- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/fix_group.cpp b/src/fix_group.cpp index 2447002bc5..68d74b8b1f 100644 --- a/src/fix_group.cpp +++ b/src/fix_group.cpp @@ -84,7 +84,7 @@ idregion(NULL), idvar(NULL), idprop(NULL) idprop = new char[n]; strcpy(idprop,arg[iarg+1]); iarg += 2; - } else if (strcmp(arg[iarg],"every") == 0) { + } else if (strcmp(arg[iarg],"every") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal group command"); nevery = force->inumeric(FLERR,arg[iarg+1]); if (nevery <= 0) error->all(FLERR,"Illegal group command"); diff --git a/src/group.cpp b/src/group.cpp index 9d33da9acb..dd5e53bb3c 100644 --- a/src/group.cpp +++ b/src/group.cpp @@ -754,6 +754,18 @@ void Group::read_restart(FILE *fp) // computations on a group of atoms // ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- + count atoms in group all +------------------------------------------------------------------------- */ + +bigint Group::count_all() +{ + bigint nme = atom->nlocal; + bigint nall; + MPI_Allreduce(&nme,&nall,1,MPI_LMP_BIGINT,MPI_SUM,world); + return nall; +} + /* ---------------------------------------------------------------------- count atoms in group ------------------------------------------------------------------------- */ diff --git a/src/group.h b/src/group.h index 6b6cbb1def..962d37b32a 100644 --- a/src/group.h +++ b/src/group.h @@ -37,6 +37,7 @@ class Group : protected Pointers { void write_restart(FILE *); void read_restart(FILE *); + bigint count_all(); // count atoms in group all bigint count(int); // count atoms in group bigint count(int,int); // count atoms in group & region double mass(int); // total mass of atoms in group diff --git a/src/thermo.cpp b/src/thermo.cpp index ade7a3c333..ddbbd0f496 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -1698,7 +1698,7 @@ void Thermo::compute_timeremain() void Thermo::compute_atoms() { - bivalue = atom->natoms; + bivalue = group->count_all(); } /* ---------------------------------------------------------------------- */ From ac7aeb68626c61b484591dee82b12b95b4de0da0 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 7 Aug 2018 21:43:59 -0400 Subject: [PATCH 417/675] Add extra check for OpenCL timers Fixes issue #1034 by preventing time() to access non-existent OpenCL events --- lib/gpu/geryon/ocl_timer.h | 40 +++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/lib/gpu/geryon/ocl_timer.h b/lib/gpu/geryon/ocl_timer.h index 1f56aeb364..bdfec64f54 100644 --- a/lib/gpu/geryon/ocl_timer.h +++ b/lib/gpu/geryon/ocl_timer.h @@ -38,8 +38,8 @@ namespace ucl_opencl { /// Class for timing OpenCL events class UCL_Timer { public: - inline UCL_Timer() : _total_time(0.0f), _initialized(false) { } - inline UCL_Timer(UCL_Device &dev) : _total_time(0.0f), _initialized(false) + inline UCL_Timer() : _total_time(0.0f), _initialized(false), has_measured_time(false) { } + inline UCL_Timer(UCL_Device &dev) : _total_time(0.0f), _initialized(false), has_measured_time(false) { init(dev); } inline ~UCL_Timer() { clear(); } @@ -52,6 +52,7 @@ class UCL_Timer { _initialized=false; _total_time=0.0; } + has_measured_time = false; } /// Initialize default command queue for timing @@ -64,25 +65,39 @@ class UCL_Timer { _cq=cq; clRetainCommandQueue(_cq); _initialized=true; + has_measured_time = false; } /// Start timing on default command queue - inline void start() { UCL_OCL_MARKER(_cq,&start_event); } + inline void start() { + UCL_OCL_MARKER(_cq,&start_event); + has_measured_time = false; + } /// Stop timing on default command queue - inline void stop() { UCL_OCL_MARKER(_cq,&stop_event); } + inline void stop() { + UCL_OCL_MARKER(_cq,&stop_event); + has_measured_time = true; + } /// Block until the start event has been reached on device - inline void sync_start() - { CL_SAFE_CALL(clWaitForEvents(1,&start_event)); } + inline void sync_start() { + CL_SAFE_CALL(clWaitForEvents(1,&start_event)); + has_measured_time = false; + } /// Block until the stop event has been reached on device - inline void sync_stop() - { CL_SAFE_CALL(clWaitForEvents(1,&stop_event)); } + inline void sync_stop() { + CL_SAFE_CALL(clWaitForEvents(1,&stop_event)); + has_measured_time = true; + } /// Set the time elapsed to zero (not the total_time) - inline void zero() - { UCL_OCL_MARKER(_cq,&start_event); UCL_OCL_MARKER(_cq,&stop_event); } + inline void zero() { + has_measured_time = false; + UCL_OCL_MARKER(_cq,&start_event); + UCL_OCL_MARKER(_cq,&stop_event); + } /// Set the total time to zero inline void zero_total() { _total_time=0.0; } @@ -97,6 +112,7 @@ class UCL_Timer { /// Return the time (ms) of last start to stop - Forces synchronization inline double time() { + if(!has_measured_time) return 0.0; cl_ulong tstart,tend; CL_SAFE_CALL(clWaitForEvents(1,&stop_event)); CL_SAFE_CALL(clGetEventProfilingInfo(stop_event, @@ -107,6 +123,7 @@ class UCL_Timer { sizeof(cl_ulong), &tstart, NULL)); clReleaseEvent(start_event); clReleaseEvent(stop_event); + has_measured_time = false; return (tend-tstart)*t_factor; } @@ -123,8 +140,9 @@ class UCL_Timer { cl_event start_event, stop_event; cl_command_queue _cq; double _total_time; - bool _initialized; double t_factor; + bool _initialized; + bool has_measured_time; }; } // namespace From b6c458192cbb752d466f602cc51f60d8e6814238 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 8 Aug 2018 10:19:48 +0200 Subject: [PATCH 418/675] reword misleading message about GPU usage --- src/KOKKOS/kokkos.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 3bbff6be7e..4a28a55be9 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -106,8 +106,8 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) // initialize Kokkos if (me == 0) { - if (screen) fprintf(screen," using %d GPU(s)\n",ngpu); - if (logfile) fprintf(logfile," using %d GPU(s)\n",ngpu); + if (screen) fprintf(screen," will use up to %d GPU(s) per node\n",ngpu); + if (logfile) fprintf(logfile," will use up to %d GPU(s) per node\n",ngpu); } #ifdef KOKKOS_HAVE_CUDA From 3d537850fd7478b2b0cc98a7d029e3d530664127 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 8 Aug 2018 10:20:24 +0200 Subject: [PATCH 419/675] make communication settings consistent, in case the package command is used multiple times. --- src/KOKKOS/kokkos.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 4a28a55be9..04315e0bb3 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -204,6 +204,7 @@ void KokkosLMP::accelerator(int narg, char **arg) if (iarg+2 > narg) error->all(FLERR,"Illegal package kokkos command"); if (strcmp(arg[iarg+1],"no") == 0) { exchange_comm_classic = forward_comm_classic = reverse_comm_classic = 1; + exchange_comm_on_host = forward_comm_on_host = reverse_comm_on_host = 0; } else if (strcmp(arg[iarg+1],"host") == 0) { exchange_comm_classic = forward_comm_classic = reverse_comm_classic = 0; exchange_comm_on_host = forward_comm_on_host = reverse_comm_on_host = 1; From 5d87e0c6515f52c68180194496f9b21a8a66e6a4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 8 Aug 2018 13:57:41 +0200 Subject: [PATCH 420/675] add wrapper for MPI implementation specific GPU-direct detection this adds a local wrapper function have_gpu_direct(), that informs about the support for GPU-direct, if possible and add a warning message in case it cannot be detected or is not available and using more than 1 MPI rank. --- src/KOKKOS/kokkos.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 04315e0bb3..7acee89c81 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include #include #include #include @@ -25,6 +26,37 @@ #include "error.h" #include "memory_kokkos.h" +#ifdef KOKKOS_HAVE_CUDA + +// for detecting GPU-direct support: +// the function int have_gpu_direct() +// - returns -1 if GPU-direct support is unknown +// - returns 0 if no GPU-direct support available +// - returns 1 if GPU-direct support is available + +#define GPU_DIRECT_UNKNOWN static int have_gpu_direct() {return -1;} + +// OpenMPI supports detecting GPU-direct as of version 2.0.0 +#if OPEN_MPI + +#if (OMPI_MAJOR_VERSION >= 2) +#include +#if defined(MPIX_CUDA_AWARE_SUPPORT) +static int have_gpu_direct() { return MPIX_Query_cuda_support(); } +#else +GPU_DIRECT_UNKNOWN +#endif + +#else // old OpenMPI +GPU_DIRECT_UNKNOWN +#endif + +#else // unknown MPI library +GPU_DIRECT_UNKNOWN +#endif + +#endif // KOKKOS_HAVE_CUDA + using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ @@ -113,6 +145,27 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) #ifdef KOKKOS_HAVE_CUDA if (ngpu <= 0) error->all(FLERR,"Kokkos has been compiled for CUDA but no GPUs are requested"); + + // check and warn about GPU-direct availability when using multiple MPI tasks + + int nmpi = 0; + MPI_Comm_size(world,&nmpi); + if ((nmpi > 1) && (me == 0)) { + if ( 1 == have_gpu_direct() ) { + ; // all good, nothing to warn about + } else if (-1 == have_gpu_direct() ) { + error->warning(FLERR,"Kokkos with CUDA assumes GPU-direct is available," + " but cannot determine if this is the case\n try" + " '-pk kokkos comm no' when getting segmentation faults"); + } else if ( 0 == have_gpu_direct() ) { + error->warning(FLERR,"GPU-direct is NOT available, but some parts of " + "Kokkos with CUDA require it\n try" + " '-pk kokkos comm no' when getting segmentation faults"); + } else { + ; // should never get here + } + } + #endif Kokkos::InitArguments args; From 64e152bced4dfb792e2c71f5d83f87b85704e354 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 8 Aug 2018 14:25:49 +0200 Subject: [PATCH 421/675] add some notes about GPU-direct support requirements to the manual --- doc/src/Speed_kokkos.txt | 22 +++++++++++++++++++--- doc/src/package.txt | 13 +++++++------ 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/doc/src/Speed_kokkos.txt b/doc/src/Speed_kokkos.txt index 14f4103aed..d7ae35bc12 100644 --- a/doc/src/Speed_kokkos.txt +++ b/doc/src/Speed_kokkos.txt @@ -96,6 +96,19 @@ software version 7.5 or later must be installed on your system. See the discussion for the "GPU package"_Speed_gpu.html for details of how to check and do this. +NOTE: Kokkos with CUDA currently implicitly assumes, that the MPI +library is CUDA-aware and has support for GPU-direct. This is not always +the case, especially when using pre-compiled MPI libraries provided by +a Linux distribution. This is not a problem when using only a single +GPU and a single MPI rank on a desktop. When running with multiple +MPI ranks, you may see segmentation faults without GPU-direct support. +Many of those can be avoided by adding the flags '-pk kokkos comm no' +to the LAMMPS command line or using "package kokkos comm on"_package.html +in the input file, however for some KOKKOS enabled styles like +"EAM"_pair_eam.html or "PPPM"_kspace_style.html, this is not the case +and a GPU-direct enabled MPI library is REQUIRED. + + Use a C++11 compatible compiler and set KOKKOS_ARCH variable in /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi for both GPU and CPU as described above. Then do the following: @@ -262,9 +275,12 @@ the # of physical GPUs on the node. You can assign multiple MPI tasks to the same GPU with the KOKKOS package, but this is usually only faster if significant portions of the input script have not been ported to use Kokkos. Using CUDA MPS is recommended in this -scenario. As above for multi-core CPUs (and no GPU), if N is the -number of physical cores/node, then the number of MPI tasks/node -should not exceed N. +scenario. Using a CUDA-aware MPI library with support for GPU-direct +is highly recommended and for some KOKKOS-enabled styles even required. +Most GPU-direct use can be avoided by using "-pk kokkos comm no". +As above for multi-core CPUs (and no GPU), if N is the number of +physical cores/node, then the number of MPI tasks/node should not +exceed N. -k on g Ng :pre diff --git a/doc/src/package.txt b/doc/src/package.txt index c2e7345bb7..55f6c6d30f 100644 --- a/doc/src/package.txt +++ b/doc/src/package.txt @@ -480,15 +480,16 @@ The value options for all 3 keywords are {no} or {host} or {device}. A value of {no} means to use the standard non-KOKKOS method of packing/unpacking data for the communication. A value of {host} means to use the host, typically a multi-core CPU, and perform the -packing/unpacking in parallel with threads. A value of {device} means -to use the device, typically a GPU, to perform the packing/unpacking -operation. +packing/unpacking in parallel with threads. A value of {device} +means to use the device, typically a GPU, to perform the +packing/unpacking operation. The optimal choice for these keywords depends on the input script and the hardware used. The {no} value is useful for verifying that the -Kokkos-based {host} and {device} values are working correctly. It may -also be the fastest choice when using Kokkos styles in MPI-only mode -(i.e. with a thread count of 1). +Kokkos-based {host} and {device} values are working correctly. The {no} +value should also be used, in case of using an MPI library that does +not support GPU-direct. It may also be the fastest choice when using +Kokkos styles in MPI-only mode (i.e. with a thread count of 1). When running on CPUs or Xeon Phi, the {host} and {device} values work identically. When using GPUs, the {device} value will typically be From 9202896e75330db552759ddfa84cb2ffe97f0d8b Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 8 Aug 2018 09:31:16 -0600 Subject: [PATCH 422/675] bug fix for compute cluster/atom when computing values used to update a dynamic group --- src/compute_cluster_atom.cpp | 40 +++++++++++++++++++++++++++++------- src/fix_group.cpp | 7 ++++++- src/update.cpp | 6 +++--- src/update.h | 1 + 4 files changed, 43 insertions(+), 11 deletions(-) diff --git a/src/compute_cluster_atom.cpp b/src/compute_cluster_atom.cpp index 146f8fd1b3..85934c5e6d 100644 --- a/src/compute_cluster_atom.cpp +++ b/src/compute_cluster_atom.cpp @@ -31,6 +31,8 @@ using namespace LAMMPS_NS; +enum{CLUSTER,MASK,COORDS}; + /* ---------------------------------------------------------------------- */ ComputeClusterAtom::ComputeClusterAtom(LAMMPS *lmp, int narg, char **arg) : @@ -44,7 +46,7 @@ ComputeClusterAtom::ComputeClusterAtom(LAMMPS *lmp, int narg, char **arg) : peratom_flag = 1; size_peratom_cols = 0; - comm_forward = 1; + comm_forward = 3; nmax = 0; } @@ -122,10 +124,19 @@ void ComputeClusterAtom::compute_peratom() numneigh = list->numneigh; firstneigh = list->firstneigh; + // if update->post_integrate set: + // a dynamic group in FixGroup is invoking a variable with this compute + // thus ghost atom coords need to be up-to-date after initial_integrate() + + if (update->post_integrate) { + commflag = COORDS; + comm->forward_comm_compute(this); + } + // if group is dynamic, insure ghost atom masks are current if (group->dynamic[igroup]) { - commflag = 0; + commflag = MASK; comm->forward_comm_compute(this); } @@ -147,7 +158,7 @@ void ComputeClusterAtom::compute_peratom() // iterate until no changes in my atoms // then check if any proc made changes - commflag = 1; + commflag = CLUSTER; double **x = atom->x; int change,done,anychange; @@ -203,17 +214,25 @@ int ComputeClusterAtom::pack_forward_comm(int n, int *list, double *buf, int i,j,m; m = 0; - if (commflag) { + if (commflag == CLUSTER) { for (i = 0; i < n; i++) { j = list[i]; buf[m++] = clusterID[j]; } - } else { + } else if (commflag == MASK) { int *mask = atom->mask; for (i = 0; i < n; i++) { j = list[i]; buf[m++] = ubuf(mask[j]).d; } + } else if (commflag == COORDS) { + double **x = atom->x; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = x[j][0]; + buf[m++] = x[j][1]; + buf[m++] = x[j][2]; + } } return m; @@ -227,11 +246,18 @@ void ComputeClusterAtom::unpack_forward_comm(int n, int first, double *buf) m = 0; last = first + n; - if (commflag) + if (commflag == CLUSTER) { for (i = first; i < last; i++) clusterID[i] = buf[m++]; - else { + } else if (commflag == MASK) { int *mask = atom->mask; for (i = first; i < last; i++) mask[i] = (int) ubuf(buf[m++]).i; + } else if (commflag == COORDS) { + double **x = atom->x; + for (i = first; i < last; i++) { + x[i][0] = buf[m++]; + x[i][1] = buf[m++]; + x[i][2] = buf[m++]; + } } } diff --git a/src/fix_group.cpp b/src/fix_group.cpp index 68d74b8b1f..10736964e7 100644 --- a/src/fix_group.cpp +++ b/src/fix_group.cpp @@ -204,17 +204,22 @@ void FixGroup::set_group() int nlocal = atom->nlocal; // invoke atom-style variable if defined + // set post_integrate flag to 1, then unset after + // this is for any compute to check if it needs to + // operate differently due to invocation this early in timestep + // e.g. perform ghost comm update due to atoms having just moved double *var = NULL; int *ivector = NULL; double *dvector = NULL; - if (varflag) { + update->post_integrate = 1; modify->clearstep_compute(); memory->create(var,nlocal,"fix/group:varvalue"); input->variable->compute_atom(ivar,igroup,var,1,0); modify->addstep_compute(update->ntimestep + nevery); + update->post_integrate = 0; } // invoke per-atom property if defined diff --git a/src/update.cpp b/src/update.cpp index aa152a8508..6f9c2c9a07 100644 --- a/src/update.cpp +++ b/src/update.cpp @@ -46,10 +46,10 @@ Update::Update(LAMMPS *lmp) : Pointers(lmp) whichflag = 0; firststep = laststep = 0; beginstep = endstep = 0; - setupflag = 0; - multireplica = 0; - restrict_output = 0; + setupflag = 0; + post_integrate = 0; + multireplica = 0; eflag_global = vflag_global = -1; diff --git a/src/update.h b/src/update.h index 7996440318..d3602ef21e 100644 --- a/src/update.h +++ b/src/update.h @@ -35,6 +35,7 @@ class Update : protected Pointers { int max_eval; // max force evaluations for minimizer int restrict_output; // 1 if output should not write dump/restart int setupflag; // set when setup() is computing forces + int post_integrate; // 1 if now at post_integrate() in timestep int multireplica; // 1 if min across replicas, else 0 bigint eflag_global,eflag_atom; // timestep global/peratom eng is tallied on From 7f5476b4081eccbf6f9ddf398ea3f46e92204535 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Wed, 8 Aug 2018 14:04:41 -0600 Subject: [PATCH 423/675] removed deprecated log files (will be replaced with more current ones) --- .../log.23Jul18.scafacos.cw.g++.ewald.16 | 92 --------------- .../log.23Jul18.scafacos.cw.g++.ewald.8 | 92 --------------- .../log.23Jul18.scafacos.cw.g++.fmm.1 | 99 ---------------- .../log.23Jul18.scafacos.cw.g++.fmm.16 | 99 ---------------- .../log.23Jul18.scafacos.cw.g++.fmm.2 | 99 ---------------- .../log.23Jul18.scafacos.cw.g++.fmm.4 | 99 ---------------- .../log.23Jul18.scafacos.cw.g++.fmm.8 | 99 ---------------- .../log.23Jul18.scafacos.cw.g++.p2nfft.1 | 92 --------------- .../log.23Jul18.scafacos.cw.g++.p2nfft.16 | 92 --------------- .../log.23Jul18.scafacos.cw.g++.p2nfft.2 | 92 --------------- .../log.23Jul18.scafacos.cw.g++.p2nfft.4 | 92 --------------- .../log.23Jul18.scafacos.cw.g++.p2nfft.8 | 92 --------------- .../log.23Jul18.scafacos.g++.ewald.16 | 102 ---------------- .../scafacos/log.23Jul18.scafacos.g++.ewald.8 | 102 ---------------- .../scafacos/log.23Jul18.scafacos.g++.fmm.1 | 102 ---------------- .../scafacos/log.23Jul18.scafacos.g++.fmm.16 | 102 ---------------- .../scafacos/log.23Jul18.scafacos.g++.fmm.2 | 102 ---------------- .../scafacos/log.23Jul18.scafacos.g++.fmm.4 | 102 ---------------- .../scafacos/log.23Jul18.scafacos.g++.fmm.8 | 102 ---------------- .../log.23Jul18.scafacos.g++.p2nfft.1 | 102 ---------------- .../log.23Jul18.scafacos.g++.p2nfft.16 | 102 ---------------- .../log.23Jul18.scafacos.g++.p2nfft.2 | 102 ---------------- .../log.23Jul18.scafacos.g++.p2nfft.4 | 102 ---------------- .../log.23Jul18.scafacos.g++.p2nfft.8 | 102 ---------------- .../log.23Jul18.scafacos.hsph.g++.direct.1 | 105 ----------------- .../log.23Jul18.scafacos.hsph.g++.direct.2 | 105 ----------------- .../log.23Jul18.scafacos.hsph.g++.direct.4 | 105 ----------------- .../log.23Jul18.scafacos.hsph.g++.direct.8 | 105 ----------------- .../log.23Jul18.scafacos.hsph.g++.fmm.1 | 109 ------------------ .../log.23Jul18.scafacos.hsph.g++.fmm.2 | 109 ------------------ .../log.23Jul18.scafacos.hsph.g++.fmm.4 | 109 ------------------ .../log.23Jul18.scafacos.hsph.g++.fmm.8 | 109 ------------------ .../log.23Jul18.scafacos.hsph.g++.p2nfft.1 | 107 ----------------- .../log.23Jul18.scafacos.hsph.g++.p2nfft.2 | 107 ----------------- .../log.23Jul18.scafacos.hsph.g++.p2nfft.4 | 107 ----------------- .../log.23Jul18.scafacos.hsph.g++.p2nfft.8 | 107 ----------------- 36 files changed, 3647 deletions(-) delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.16 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.8 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.1 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.16 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.2 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.4 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.8 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.1 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.16 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.2 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.4 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.8 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.16 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.8 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.1 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.16 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.2 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.4 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.8 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.1 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.16 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.2 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.4 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.8 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.1 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.2 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.4 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.8 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.1 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.2 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.4 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.8 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.1 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.2 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.4 delete mode 100644 examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.8 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.16 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.16 deleted file mode 100644 index ffdc7e3a3c..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.16 +++ /dev/null @@ -1,92 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task - -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 2 by 2 by 4 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve -kspace_style scafacos ewald 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver ewald ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.313 | 3.501 | 3.689 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49647271 0 0.49647271 0 - 10 300 0.061254978 0.014582562 0.44286522 0.02180093 0.46466616 0 - 20 300 0.12240911 0.058693359 0.37869251 0.087746571 0.46643909 0 - 30 300 0.18348265 0.13468789 0.26730177 0.2013584 0.46866017 0 - 40 300 0.24441123 0.50949535 0.083356437 0.76169555 0.84505198 0 - 50 300 0.30493236 1.1731116 -0.055261984 1.7538018 1.6985399 0 - 60 300 0.36615515 1.3589639 -0.33351524 2.031651 1.6981358 0 - 70 300 0.42717433 1.6482648 -0.76570045 2.4641559 1.6984554 0 - 80 300 0.48137259 2.8640899 -2.4038488 4.2818144 1.8779656 0 - 90 300 0.5323379 93.168442 -2.5911448 139.28682 136.69568 0 - 100 300 0.5756321 94.146897 -1.3480439 140.74961 139.40157 0 -Loop time of 0.575655 on 16 procs for 100 steps with 300 atoms - -Performance: 75045.007 tau/day, 173.715 timesteps/s -98.7% CPU use with 16 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.2159e-05 | 1.739e-05 | 2.3127e-05 | 0.0 | 0.00 -Kspace | 0.57008 | 0.57086 | 0.57137 | 0.1 | 99.17 -Neigh | 0.00025606 | 0.00061357 | 0.001369 | 0.0 | 0.11 -Comm | 0.0023558 | 0.0027267 | 0.003104 | 0.4 | 0.47 -Output | 0.00029898 | 0.00032344 | 0.00037599 | 0.0 | 0.06 -Modify | 8.2493e-05 | 0.00014143 | 0.00021815 | 0.0 | 0.02 -Other | | 0.0009701 | | | 0.17 - -Nlocal: 18.75 ave 39 max 6 min -Histogram: 6 1 1 0 1 2 2 1 1 1 -Nghost: 122.812 ave 195 max 63 min -Histogram: 8 0 0 0 0 0 0 1 3 4 -Neighs: 160.625 ave 598 max 13 min -Histogram: 8 2 1 1 1 0 0 2 0 1 - -Total # of neighbors = 2570 -Ave neighs/atom = 8.56667 -Neighbor list builds = 23 -Dangerous builds = 16 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.8 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.8 deleted file mode 100644 index 52d887f475..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.ewald.8 +++ /dev/null @@ -1,92 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task - -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 2 by 2 by 2 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve -kspace_style scafacos ewald 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver ewald ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.317 | 3.317 | 3.317 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49647271 0 0.49647271 0 - 10 300 0.067519665 0.014718629 0.45088339 0.02200435 0.47288774 0 - 20 300 0.13502312 0.05922597 0.38470912 0.088542825 0.47325194 0 - 30 300 0.20248008 0.13587829 0.27058048 0.20313804 0.47371852 0 - 40 300 0.26985955 0.51353118 0.088432648 0.76772911 0.85616176 0 - 50 300 0.33801103 1.1760001 -0.058088247 1.7581201 1.7000319 0 - 60 300 0.40665984 1.3627885 -0.33736672 2.0373688 1.7000021 0 - 70 300 0.47533679 1.6529365 -0.77082139 2.4711401 1.7003187 0 - 80 300 0.54396391 2.9569837 -2.4624654 4.4206907 1.9582253 0 - 90 300 0.61429667 81.642726 -2.5370215 122.05588 119.51885 0 - 100 300 0.68513632 85.047974 -1.128107 127.14672 126.01861 0 -Loop time of 0.685155 on 8 procs for 100 steps with 300 atoms - -Performance: 63051.442 tau/day, 145.952 timesteps/s -99.7% CPU use with 8 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.0967e-05 | 1.4216e-05 | 1.8358e-05 | 0.0 | 0.00 -Kspace | 0.67942 | 0.67981 | 0.6803 | 0.0 | 99.22 -Neigh | 0.00073242 | 0.0010653 | 0.0015635 | 0.8 | 0.16 -Comm | 0.0029492 | 0.0031102 | 0.0033047 | 0.2 | 0.45 -Output | 0.00021768 | 0.00023454 | 0.00028443 | 0.0 | 0.03 -Modify | 0.00016046 | 0.00018132 | 0.00019431 | 0.0 | 0.03 -Other | | 0.0007433 | | | 0.11 - -Nlocal: 37.5 ave 46 max 31 min -Histogram: 2 0 0 2 1 0 2 0 0 1 -Nghost: 203.875 ave 212 max 192 min -Histogram: 1 0 1 0 0 2 1 0 0 3 -Neighs: 321.625 ave 599 max 112 min -Histogram: 1 2 0 1 1 0 1 1 0 1 - -Total # of neighbors = 2573 -Ave neighs/atom = 8.57667 -Neighbor list builds = 23 -Dangerous builds = 16 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.1 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.1 deleted file mode 100644 index 47e0be01ce..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.1 +++ /dev/null @@ -1,99 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -kspace_style scafacos fmm 1.0e-3 -kspace_modify scafacos tolerance energy_rel -kspace_modify scafacos fmm_tuning 1 -ScaFaCoS setting fmm inhomogen tuning ...3 - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.34 | 3.34 | 3.34 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49646402 0 0.49646402 0 - 10 300 0.036603451 0.015455559 0.47335833 0.02310606 0.49646439 0 - 20 300 0.073534727 0.06229069 0.40334177 0.093124582 0.49646635 0 - 30 300 0.10984373 0.14310163 0.28254277 0.21393694 0.49647971 0 - 40 300 0.14610171 0.52929788 0.089669015 0.79130033 0.88096934 0 - 50 300 0.18255496 1.1963022 -0.082792461 1.7884718 1.7056794 0 - 60 300 0.2194376 1.3928167 -0.37659239 2.082261 1.7056686 0 - 70 300 0.25588369 1.7069009 -0.84571914 2.5518169 1.7060978 0 - 80 300 0.29101205 15.358343 -3.368063 22.960722 19.592659 0 - 90 300 0.32697225 42.280432 -2.1623864 63.209247 61.04686 0 - 100 300 0.36395645 41.48079 -0.89904529 62.013782 61.114736 0 -Loop time of 0.363968 on 1 procs for 100 steps with 300 atoms - -Performance: 118691.709 tau/day, 274.749 timesteps/s -99.8% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.2875e-05 | 1.2875e-05 | 1.2875e-05 | 0.0 | 0.00 -Kspace | 0.35715 | 0.35715 | 0.35715 | 0.0 | 98.13 -Neigh | 0.0039768 | 0.0039768 | 0.0039768 | 0.0 | 1.09 -Comm | 0.0012023 | 0.0012023 | 0.0012023 | 0.0 | 0.33 -Output | 0.0001502 | 0.0001502 | 0.0001502 | 0.0 | 0.04 -Modify | 0.0009768 | 0.0009768 | 0.0009768 | 0.0 | 0.27 -Other | | 0.0005031 | | | 0.14 - -Nlocal: 300 ave 300 max 300 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 374 ave 374 max 374 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 2459 ave 2459 max 2459 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 2459 -Ave neighs/atom = 8.19667 -Neighbor list builds = 15 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.16 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.16 deleted file mode 100644 index f104355d87..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.16 +++ /dev/null @@ -1,99 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 2 by 2 by 4 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -kspace_style scafacos fmm 1.0e-3 -kspace_modify scafacos tolerance energy_rel -kspace_modify scafacos fmm_tuning 1 -ScaFaCoS setting fmm inhomogen tuning ...3 - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.313 | 3.501 | 3.689 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49646402 0 0.49646402 0 - 10 300 0.018873215 0.015455559 0.47335833 0.02310606 0.49646439 0 - 20 300 0.035197735 0.06229069 0.40334177 0.093124582 0.49646635 0 - 30 300 0.051513195 0.14310163 0.28254277 0.21393694 0.49647971 0 - 40 300 0.067400217 0.52929788 0.089669015 0.79130033 0.88096934 0 - 50 300 0.083569527 1.1963022 -0.082792461 1.7884718 1.7056794 0 - 60 300 0.099931955 1.3928167 -0.37659239 2.082261 1.7056686 0 - 70 300 0.11602688 1.7069009 -0.84571914 2.5518169 1.7060978 0 - 80 300 0.13271379 15.358343 -3.368063 22.960722 19.592659 0 - 90 300 0.15055513 42.280432 -2.1623864 63.209247 61.04686 0 - 100 300 0.16817498 41.48079 -0.89904529 62.013782 61.114736 0 -Loop time of 0.168194 on 16 procs for 100 steps with 300 atoms - -Performance: 256846.586 tau/day, 594.552 timesteps/s -97.7% CPU use with 16 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.4544e-05 | 2.0206e-05 | 2.6941e-05 | 0.0 | 0.01 -Kspace | 0.16313 | 0.16373 | 0.16423 | 0.1 | 97.34 -Neigh | 0.00016737 | 0.00039591 | 0.00084519 | 0.0 | 0.24 -Comm | 0.0021157 | 0.0026083 | 0.0032525 | 0.7 | 1.55 -Output | 0.00026298 | 0.00030228 | 0.00035977 | 0.0 | 0.18 -Modify | 0.00010705 | 0.00015062 | 0.00020647 | 0.0 | 0.09 -Other | | 0.0009913 | | | 0.59 - -Nlocal: 18.75 ave 36 max 6 min -Histogram: 4 3 1 0 0 1 2 1 2 2 -Nghost: 127 ave 196 max 71 min -Histogram: 8 0 0 0 0 0 0 1 6 1 -Neighs: 153.688 ave 491 max 10 min -Histogram: 8 1 1 1 1 1 0 0 0 3 - -Total # of neighbors = 2459 -Ave neighs/atom = 8.19667 -Neighbor list builds = 15 -Dangerous builds = 0 -Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.2 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.2 deleted file mode 100644 index 43ded2d4da..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.2 +++ /dev/null @@ -1,99 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 1 by 1 by 2 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -kspace_style scafacos fmm 1.0e-3 -kspace_modify scafacos tolerance energy_rel -kspace_modify scafacos fmm_tuning 1 -ScaFaCoS setting fmm inhomogen tuning ...3 - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.354 | 3.354 | 3.355 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49646402 0 0.49646402 0 - 10 300 0.021326542 0.015455559 0.47335833 0.02310606 0.49646439 0 - 20 300 0.043129683 0.06229069 0.40334177 0.093124582 0.49646635 0 - 30 300 0.064425707 0.14310163 0.28254277 0.21393694 0.49647971 0 - 40 300 0.085822344 0.52929788 0.089669015 0.79130033 0.88096934 0 - 50 300 0.10737753 1.1963022 -0.082792461 1.7884718 1.7056794 0 - 60 300 0.12947297 1.3928167 -0.37659239 2.082261 1.7056686 0 - 70 300 0.15108895 1.7069009 -0.84571914 2.5518169 1.7060978 0 - 80 300 0.17378163 15.358343 -3.368063 22.960722 19.592659 0 - 90 300 0.19809985 42.280432 -2.1623864 63.209247 61.04686 0 - 100 300 0.22268319 41.48079 -0.89904529 62.013782 61.114736 0 -Loop time of 0.222696 on 2 procs for 100 steps with 300 atoms - -Performance: 193986.156 tau/day, 449.042 timesteps/s -98.4% CPU use with 2 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.1683e-05 | 1.5378e-05 | 1.9073e-05 | 0.0 | 0.01 -Kspace | 0.21627 | 0.2168 | 0.21734 | 0.1 | 97.35 -Neigh | 0.0016344 | 0.0021609 | 0.0026875 | 1.1 | 0.97 -Comm | 0.0022857 | 0.0023286 | 0.0023715 | 0.1 | 1.05 -Output | 0.00015521 | 0.00019228 | 0.00022936 | 0.0 | 0.09 -Modify | 0.00052834 | 0.00054049 | 0.00055265 | 0.0 | 0.24 -Other | | 0.0006541 | | | 0.29 - -Nlocal: 150 ave 159 max 141 min -Histogram: 1 0 0 0 0 0 0 0 0 1 -Nghost: 392 ave 395 max 389 min -Histogram: 1 0 0 0 0 0 0 0 0 1 -Neighs: 1229.5 ave 1773 max 686 min -Histogram: 1 0 0 0 0 0 0 0 0 1 - -Total # of neighbors = 2459 -Ave neighs/atom = 8.19667 -Neighbor list builds = 15 -Dangerous builds = 0 -Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.4 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.4 deleted file mode 100644 index 12c74993e9..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.4 +++ /dev/null @@ -1,99 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -kspace_style scafacos fmm 1.0e-3 -kspace_modify scafacos tolerance energy_rel -kspace_modify scafacos fmm_tuning 1 -ScaFaCoS setting fmm inhomogen tuning ...3 - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.333 | 3.333 | 3.333 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49646402 0 0.49646402 0 - 10 300 0.017563343 0.015455559 0.47335833 0.02310606 0.49646439 0 - 20 300 0.034884214 0.06229069 0.40334177 0.093124582 0.49646635 0 - 30 300 0.052014828 0.14310163 0.28254277 0.21393694 0.49647971 0 - 40 300 0.069101095 0.52929788 0.089669015 0.79130033 0.88096934 0 - 50 300 0.085633039 1.1963022 -0.082792461 1.7884718 1.7056794 0 - 60 300 0.10165119 1.3928167 -0.37659239 2.082261 1.7056686 0 - 70 300 0.11729789 1.7069009 -0.84571914 2.5518169 1.7060978 0 - 80 300 0.1342802 15.358343 -3.368063 22.960722 19.592659 0 - 90 300 0.15266848 42.280432 -2.1623864 63.209247 61.04686 0 - 100 300 0.17004442 41.48079 -0.89904529 62.013782 61.114736 0 -Loop time of 0.170072 on 4 procs for 100 steps with 300 atoms - -Performance: 254010.216 tau/day, 587.987 timesteps/s -98.8% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.5497e-05 | 1.6868e-05 | 1.9789e-05 | 0.0 | 0.01 -Kspace | 0.16417 | 0.16472 | 0.16507 | 0.1 | 96.86 -Neigh | 0.00082564 | 0.0012031 | 0.0015855 | 0.9 | 0.71 -Comm | 0.0026572 | 0.0029335 | 0.003197 | 0.4 | 1.72 -Output | 0.00019169 | 0.00021791 | 0.00026536 | 0.0 | 0.13 -Modify | 0.00031304 | 0.00032955 | 0.00035334 | 0.0 | 0.19 -Other | | 0.0006474 | | | 0.38 - -Nlocal: 75 ave 81 max 70 min -Histogram: 2 0 0 0 0 0 0 1 0 1 -Nghost: 282.5 ave 290 max 274 min -Histogram: 1 0 0 1 0 0 0 0 1 1 -Neighs: 614.75 ave 981 max 285 min -Histogram: 1 1 0 0 0 0 0 1 0 1 - -Total # of neighbors = 2459 -Ave neighs/atom = 8.19667 -Neighbor list builds = 15 -Dangerous builds = 0 -Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.8 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.8 deleted file mode 100644 index 1fea13cd13..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.fmm.8 +++ /dev/null @@ -1,99 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 2 by 2 by 2 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -kspace_style scafacos fmm 1.0e-3 -kspace_modify scafacos tolerance energy_rel -kspace_modify scafacos fmm_tuning 1 -ScaFaCoS setting fmm inhomogen tuning ...3 - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.317 | 3.317 | 3.317 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49646402 0 0.49646402 0 - 10 300 0.016258478 0.015455559 0.47335833 0.02310606 0.49646439 0 - 20 300 0.031442165 0.06229069 0.40334177 0.093124582 0.49646635 0 - 30 300 0.046462774 0.14310163 0.28254277 0.21393694 0.49647971 0 - 40 300 0.061176538 0.52929788 0.089669015 0.79130033 0.88096934 0 - 50 300 0.076244354 1.1963022 -0.082792461 1.7884718 1.7056794 0 - 60 300 0.091396809 1.3928167 -0.37659239 2.082261 1.7056686 0 - 70 300 0.10625911 1.7069009 -0.84571914 2.5518169 1.7060978 0 - 80 300 0.1204896 15.358343 -3.368063 22.960722 19.592659 0 - 90 300 0.13657618 42.280432 -2.1623864 63.209247 61.04686 0 - 100 300 0.15163732 41.48079 -0.89904529 62.013782 61.114736 0 -Loop time of 0.151654 on 8 procs for 100 steps with 300 atoms - -Performance: 284858.554 tau/day, 659.395 timesteps/s -97.7% CPU use with 8 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.3828e-05 | 1.6987e-05 | 1.955e-05 | 0.0 | 0.01 -Kspace | 0.14633 | 0.14689 | 0.14725 | 0.1 | 96.86 -Neigh | 0.00047135 | 0.00067887 | 0.00094771 | 0.0 | 0.45 -Comm | 0.0027649 | 0.0029218 | 0.0032592 | 0.3 | 1.93 -Output | 0.00022578 | 0.00024724 | 0.00030136 | 0.0 | 0.16 -Modify | 0.00018954 | 0.00021681 | 0.0002358 | 0.0 | 0.14 -Other | | 0.0006794 | | | 0.45 - -Nlocal: 37.5 ave 45 max 31 min -Histogram: 1 1 1 1 1 0 1 0 1 1 -Nghost: 200 ave 209 max 189 min -Histogram: 1 0 0 0 1 4 0 0 0 2 -Neighs: 307.375 ave 514 max 115 min -Histogram: 2 1 0 1 1 0 0 0 1 2 - -Total # of neighbors = 2459 -Ave neighs/atom = 8.19667 -Neighbor list builds = 15 -Dangerous builds = 0 -Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.1 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.1 deleted file mode 100644 index bd9325dc4b..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.1 +++ /dev/null @@ -1,92 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task - -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.34 | 3.34 | 3.34 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49683273 0 0.49683273 0 - 10 300 0.082981586 0.015479312 0.47369009 0.023141571 0.49683166 0 - 20 300 0.16677213 0.062386358 0.40356181 0.093267605 0.49682941 0 - 30 300 0.2506392 0.14331637 0.2825636 0.21425798 0.49682157 0 - 40 300 0.33466673 0.53041843 0.089505208 0.79297556 0.88248077 0 - 50 300 0.41812825 1.1948397 -0.083317439 1.7862853 1.7029679 0 - 60 300 0.50167894 1.3915614 -0.37745551 2.0803842 1.7029287 0 - 70 300 0.58574796 1.7061978 -0.84746071 2.5507657 1.703305 0 - 80 300 0.6700325 20.692093 -3.32971 30.93468 27.60497 0 - 90 300 0.75608635 48.999403 -2.1632167 73.254107 71.090891 0 - 100 300 0.84190726 51.199785 -0.81127924 76.543678 75.732399 0 -Loop time of 0.841921 on 1 procs for 100 steps with 300 atoms - -Performance: 51311.251 tau/day, 118.776 timesteps/s -100.0% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.1206e-05 | 1.1206e-05 | 1.1206e-05 | 0.0 | 0.00 -Kspace | 0.835 | 0.835 | 0.835 | 0.0 | 99.18 -Neigh | 0.0040102 | 0.0040102 | 0.0040102 | 0.0 | 0.48 -Comm | 0.0012431 | 0.0012431 | 0.0012431 | 0.0 | 0.15 -Output | 0.0001545 | 0.0001545 | 0.0001545 | 0.0 | 0.02 -Modify | 0.0010202 | 0.0010202 | 0.0010202 | 0.0 | 0.12 -Other | | 0.000484 | | | 0.06 - -Nlocal: 300 ave 300 max 300 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 381 ave 381 max 381 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 2461 ave 2461 max 2461 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 2461 -Ave neighs/atom = 8.20333 -Neighbor list builds = 15 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.16 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.16 deleted file mode 100644 index 1e385c5fda..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.16 +++ /dev/null @@ -1,92 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task - -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 2 by 2 by 4 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.313 | 3.501 | 3.689 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49683273 0 0.49683273 0 - 10 300 0.029647827 0.015479312 0.47369009 0.023141571 0.49683166 0 - 20 300 0.059298515 0.062386358 0.40356181 0.093267605 0.49682941 0 - 30 300 0.088926077 0.14331637 0.2825636 0.21425798 0.49682157 0 - 40 300 0.11850166 0.53041843 0.089505208 0.79297556 0.88248077 0 - 50 300 0.14820433 1.1948397 -0.083317439 1.7862853 1.7029679 0 - 60 300 0.17807317 1.3915614 -0.37745551 2.0803842 1.7029287 0 - 70 300 0.20803642 1.7061978 -0.84746071 2.5507657 1.703305 0 - 80 300 0.23797083 20.692093 -3.32971 30.93468 27.60497 0 - 90 300 0.26835561 48.999403 -2.1632167 73.254107 71.090891 0 - 100 300 0.29766583 51.199785 -0.81127924 76.543678 75.732399 0 -Loop time of 0.297693 on 16 procs for 100 steps with 300 atoms - -Performance: 145116.000 tau/day, 335.917 timesteps/s -98.8% CPU use with 16 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.1683e-05 | 1.6928e-05 | 2.4557e-05 | 0.0 | 0.01 -Kspace | 0.29245 | 0.29325 | 0.29366 | 0.1 | 98.51 -Neigh | 0.00017214 | 0.00042973 | 0.0010228 | 0.0 | 0.14 -Comm | 0.0021176 | 0.0024613 | 0.0028479 | 0.5 | 0.83 -Output | 0.00028467 | 0.00033538 | 0.00041103 | 0.0 | 0.11 -Modify | 8.893e-05 | 0.00015014 | 0.00027537 | 0.0 | 0.05 -Other | | 0.001048 | | | 0.35 - -Nlocal: 18.75 ave 33 max 6 min -Histogram: 2 6 0 0 0 0 2 1 2 3 -Nghost: 128.875 ave 198 max 71 min -Histogram: 7 1 0 0 0 0 0 1 5 2 -Neighs: 153.812 ave 490 max 14 min -Histogram: 8 0 3 0 1 1 0 0 1 2 - -Total # of neighbors = 2461 -Ave neighs/atom = 8.20333 -Neighbor list builds = 15 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.2 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.2 deleted file mode 100644 index 3f54069ffd..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.2 +++ /dev/null @@ -1,92 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task - -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 1 by 1 by 2 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.354 | 3.354 | 3.355 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49683273 0 0.49683273 0 - 10 300 0.049199581 0.015479312 0.47369009 0.023141571 0.49683166 0 - 20 300 0.09860301 0.062386358 0.40356181 0.093267605 0.49682941 0 - 30 300 0.14826894 0.14331637 0.2825636 0.21425798 0.49682157 0 - 40 300 0.19769144 0.53041843 0.089505208 0.79297556 0.88248077 0 - 50 300 0.24735355 1.1948397 -0.083317439 1.7862853 1.7029679 0 - 60 300 0.29692888 1.3915614 -0.37745551 2.0803842 1.7029287 0 - 70 300 0.34639764 1.7061978 -0.84746071 2.5507657 1.703305 0 - 80 300 0.39633083 20.692093 -3.32971 30.93468 27.60497 0 - 90 300 0.44779778 48.999403 -2.1632167 73.254107 71.090891 0 - 100 300 0.49988627 51.199785 -0.81127924 76.543678 75.732399 0 -Loop time of 0.499909 on 2 procs for 100 steps with 300 atoms - -Performance: 86415.782 tau/day, 200.037 timesteps/s -99.5% CPU use with 2 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 9.0599e-06 | 1.3709e-05 | 1.8358e-05 | 0.0 | 0.00 -Kspace | 0.49314 | 0.49365 | 0.49416 | 0.1 | 98.75 -Neigh | 0.0016146 | 0.0021083 | 0.0026021 | 1.1 | 0.42 -Comm | 0.002754 | 0.0028276 | 0.0029013 | 0.1 | 0.57 -Output | 0.00015783 | 0.00019348 | 0.00022912 | 0.0 | 0.04 -Modify | 0.00049257 | 0.00049472 | 0.00049686 | 0.0 | 0.10 -Other | | 0.0006217 | | | 0.12 - -Nlocal: 150 ave 157 max 143 min -Histogram: 1 0 0 0 0 0 0 0 0 1 -Nghost: 399 ave 402 max 396 min -Histogram: 1 0 0 0 0 0 0 0 0 1 -Neighs: 1230.5 ave 1756 max 705 min -Histogram: 1 0 0 0 0 0 0 0 0 1 - -Total # of neighbors = 2461 -Ave neighs/atom = 8.20333 -Neighbor list builds = 15 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.4 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.4 deleted file mode 100644 index 8b94402658..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.4 +++ /dev/null @@ -1,92 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task - -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.333 | 3.333 | 3.333 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49683273 0 0.49683273 0 - 10 300 0.031973124 0.015479312 0.47369009 0.023141571 0.49683166 0 - 20 300 0.064628601 0.062386358 0.40356181 0.093267605 0.49682941 0 - 30 300 0.096747875 0.14331637 0.2825636 0.21425798 0.49682157 0 - 40 300 0.12864041 0.53041843 0.089505208 0.79297556 0.88248077 0 - 50 300 0.161134 1.1948397 -0.083317439 1.7862853 1.7029679 0 - 60 300 0.19359422 1.3915614 -0.37745551 2.0803842 1.7029287 0 - 70 300 0.22573543 1.7061978 -0.84746071 2.5507657 1.703305 0 - 80 300 0.25922132 20.692093 -3.32971 30.93468 27.60497 0 - 90 300 0.29452014 48.999403 -2.1632167 73.254107 71.090891 0 - 100 300 0.33031607 51.199785 -0.81127924 76.543678 75.732399 0 -Loop time of 0.330333 on 4 procs for 100 steps with 300 atoms - -Performance: 130777.056 tau/day, 302.725 timesteps/s -99.7% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.0014e-05 | 1.3471e-05 | 1.5497e-05 | 0.0 | 0.00 -Kspace | 0.32504 | 0.3255 | 0.3258 | 0.1 | 98.54 -Neigh | 0.00083303 | 0.0011883 | 0.0015609 | 0.8 | 0.36 -Comm | 0.0024087 | 0.0025436 | 0.0026674 | 0.2 | 0.77 -Output | 0.00017405 | 0.00020278 | 0.00024986 | 0.0 | 0.06 -Modify | 0.00028658 | 0.00031012 | 0.00033331 | 0.0 | 0.09 -Other | | 0.0005748 | | | 0.17 - -Nlocal: 75 ave 81 max 69 min -Histogram: 1 0 0 0 1 1 0 0 0 1 -Nghost: 287 ave 296 max 278 min -Histogram: 1 0 1 0 0 0 0 1 0 1 -Neighs: 615.25 ave 964 max 286 min -Histogram: 1 1 0 0 0 0 0 1 0 1 - -Total # of neighbors = 2461 -Ave neighs/atom = 8.20333 -Neighbor list builds = 15 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.8 b/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.8 deleted file mode 100644 index 3de3c25017..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.cw.g++.p2nfft.8 +++ /dev/null @@ -1,92 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task - -units lj -atom_style charge - -read_data data.cloud_wall - orthogonal box = (0 0 0) to (10 10 10) - 2 by 2 by 2 MPI processor grid - reading atoms ... - 300 atoms - -velocity all set 0.0 0.0 0.0 mom no - -pair_style zero 1.0 -pair_coeff * * - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 - -thermo_style custom step atoms cpu temp pe ke etotal ecoul - -run_style verlet - -#dump simple all custom 1000 id x y z vx vy vz -#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass -#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass -#dump_modify dmpvtk pad 7 - -thermo 10 -run 100 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 10 10 10 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.317 | 3.317 | 3.317 Mbytes -Step Atoms CPU Temp PotEng KinEng TotEng E_coul - 0 300 0 0 0.49683273 0 0.49683273 0 - 10 300 0.023941755 0.015479312 0.47369009 0.023141571 0.49683166 0 - 20 300 0.047938108 0.062386358 0.40356181 0.093267605 0.49682941 0 - 30 300 0.071953773 0.14331637 0.2825636 0.21425798 0.49682157 0 - 40 300 0.095941782 0.53041843 0.089505208 0.79297556 0.88248077 0 - 50 300 0.12011361 1.1948397 -0.083317439 1.7862853 1.7029679 0 - 60 300 0.14433384 1.3915614 -0.37745551 2.0803842 1.7029287 0 - 70 300 0.16875505 1.7061978 -0.84746071 2.5507657 1.703305 0 - 80 300 0.193331 20.692093 -3.32971 30.93468 27.60497 0 - 90 300 0.21844888 48.999403 -2.1632167 73.254107 71.090891 0 - 100 300 0.24417853 51.199785 -0.81127924 76.543678 75.732399 0 -Loop time of 0.244198 on 8 procs for 100 steps with 300 atoms - -Performance: 176905.349 tau/day, 409.503 timesteps/s -99.7% CPU use with 8 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 9.7752e-06 | 1.4246e-05 | 1.955e-05 | 0.0 | 0.01 -Kspace | 0.23946 | 0.23972 | 0.24009 | 0.0 | 98.17 -Neigh | 0.00049043 | 0.00071204 | 0.00095773 | 0.0 | 0.29 -Comm | 0.0025063 | 0.0026675 | 0.0027597 | 0.2 | 1.09 -Output | 0.00019646 | 0.00021604 | 0.00026321 | 0.0 | 0.09 -Modify | 0.00017905 | 0.0001913 | 0.00020766 | 0.0 | 0.08 -Other | | 0.0006773 | | | 0.28 - -Nlocal: 37.5 ave 42 max 33 min -Histogram: 2 1 0 1 0 0 1 0 1 2 -Nghost: 202.25 ave 212 max 194 min -Histogram: 1 0 2 1 0 2 0 1 0 1 -Neighs: 307.625 ave 505 max 129 min -Histogram: 3 0 0 1 1 0 0 0 1 2 - -Total # of neighbors = 2461 -Ave neighs/atom = 8.20333 -Neighbor list builds = 15 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.16 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.16 deleted file mode 100644 index f2223064e0..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.16 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 2 by 2 by 4 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 2 by 2 by 4 MPI processor grid - 4096 atoms - Time spent = 0.000503302 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos ewald 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver ewald ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.401 | 3.401 | 3.401 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87413076 0 1.3753199 1.4996338 - 10 1.5001167 -0.84976141 0 1.3998642 1.4997504 - 20 1.5002402 -0.84977464 0 1.4000363 1.499874 - 30 1.5003611 -0.84978325 0 1.4002089 1.4999948 - 40 1.5004736 -0.84977869 0 1.4003823 1.5001073 - 50 1.5005703 -0.8497468 0 1.4005591 1.5002039 - 60 1.5006418 -0.84967646 0 1.4007366 1.5002754 - 70 1.5006785 -0.84955497 0 1.4009132 1.5003121 - 80 1.5006711 -0.849369 0 1.4010881 1.5003047 - 90 1.500611 -0.84910811 0 1.4012589 1.5002446 - 100 1.5004911 -0.84870167 0 1.4014854 1.5001247 -Loop time of 46.4857 on 16 procs for 100 steps with 4096 atoms - -Performance: 929.317 tau/day, 2.151 timesteps/s -99.8% CPU use with 16 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00023437 | 0.00024788 | 0.00026894 | 0.0 | 0.00 -Kspace | 46.476 | 46.476 | 46.476 | 0.0 | 99.98 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0062859 | 0.0067717 | 0.0072649 | 0.3 | 0.01 -Output | 0.0004127 | 0.00044075 | 0.00050807 | 0.0 | 0.00 -Modify | 0.00099325 | 0.0010343 | 0.0010939 | 0.1 | 0.00 -Other | | 0.001459 | | | 0.00 - -Nlocal: 256 ave 256 max 256 min -Histogram: 16 0 0 0 0 0 0 0 0 0 -Nghost: 1265 ave 1265 max 1265 min -Histogram: 16 0 0 0 0 0 0 0 0 0 -Neighs: 4096 ave 4096 max 4096 min -Histogram: 16 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:47 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.8 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.8 deleted file mode 100644 index 8d3702a8b3..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.ewald.8 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 2 by 2 by 2 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 2 by 2 by 2 MPI processor grid - 4096 atoms - Time spent = 0.000281811 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos ewald 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver ewald ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.416 | 3.416 | 3.416 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87413076 0 1.3753199 1.4996338 - 10 1.5001095 -0.85040058 0 1.3992143 1.4997433 - 20 1.5002258 -0.85039456 0 1.3993947 1.4998595 - 30 1.5003395 -0.85038368 0 1.3995761 1.4999732 - 40 1.5004452 -0.85035944 0 1.3997589 1.5000789 - 50 1.5005354 -0.85030783 0 1.3999457 1.500169 - 60 1.5006008 -0.85021779 0 1.4001339 1.5002344 - 70 1.500632 -0.8500769 0 1.4003215 1.5002656 - 80 1.5006197 -0.84987187 0 1.4005081 1.5002533 - 90 1.5005554 -0.84959251 0 1.400691 1.500189 - 100 1.500432 -0.84916846 0 1.4009301 1.5000657 -Loop time of 86.1477 on 8 procs for 100 steps with 4096 atoms - -Performance: 501.464 tau/day, 1.161 timesteps/s -99.9% CPU use with 8 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.000314 | 0.00033289 | 0.00035048 | 0.0 | 0.00 -Kspace | 86.136 | 86.136 | 86.136 | 0.0 | 99.99 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0069821 | 0.0073864 | 0.0077834 | 0.3 | 0.01 -Output | 0.00038719 | 0.00041264 | 0.00047517 | 0.0 | 0.00 -Modify | 0.0018711 | 0.0019454 | 0.0020905 | 0.1 | 0.00 -Other | | 0.001762 | | | 0.00 - -Nlocal: 512 ave 512 max 512 min -Histogram: 8 0 0 0 0 0 0 0 0 0 -Nghost: 1685 ave 1685 max 1685 min -Histogram: 8 0 0 0 0 0 0 0 0 0 -Neighs: 8192 ave 8192 max 8192 min -Histogram: 8 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:01:28 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.1 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.1 deleted file mode 100644 index 0749de3832..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.1 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 1 by 1 by 1 MPI processor grid - 4096 atoms - Time spent = 0.000584364 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos fmm 0.001 -kspace_modify scafacos tolerance energy_rel - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.723 | 3.723 | 3.723 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87378819 0 1.3756625 1.4996338 - 10 1.5000004 -0.87378882 0 1.3756625 1.4996342 - 20 1.4999998 -0.87378782 0 1.3756625 1.4996336 - 30 1.4999934 -0.87377823 0 1.3756625 1.4996272 - 40 1.4999745 -0.87374997 0 1.3756625 1.4996083 - 50 1.4999347 -0.87369019 0 1.3756625 1.4995685 - 60 1.4998637 -0.87358381 0 1.3756625 1.4994975 - 70 1.4997506 -0.87341428 0 1.3756624 1.4993845 - 80 1.4995842 -0.87316464 0 1.3756624 1.499218 - 90 1.4993536 -0.87281897 0 1.3756624 1.4989876 - 100 1.4990503 -0.87236411 0 1.3756624 1.4986843 -Loop time of 5.26537 on 1 procs for 100 steps with 4096 atoms - -Performance: 8204.550 tau/day, 18.992 timesteps/s -99.9% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.0011349 | 0.0011349 | 0.0011349 | 0.0 | 0.02 -Kspace | 5.2375 | 5.2375 | 5.2375 | 0.0 | 99.47 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0090225 | 0.0090225 | 0.0090225 | 0.0 | 0.17 -Output | 0.0004127 | 0.0004127 | 0.0004127 | 0.0 | 0.01 -Modify | 0.012851 | 0.012851 | 0.012851 | 0.0 | 0.24 -Other | | 0.004441 | | | 0.08 - -Nlocal: 4096 ave 4096 max 4096 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 5165 ave 5165 max 5165 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 65536 ave 65536 max 65536 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:06 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.16 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.16 deleted file mode 100644 index 6af26f7b81..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.16 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 2 by 2 by 4 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 2 by 2 by 4 MPI processor grid - 4096 atoms - Time spent = 0.000507593 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos fmm 0.001 -kspace_modify scafacos tolerance energy_rel - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.401 | 3.401 | 3.401 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87378819 0 1.3756625 1.4996338 - 10 1.5000004 -0.87378882 0 1.3756625 1.4996342 - 20 1.4999998 -0.87378782 0 1.3756625 1.4996336 - 30 1.4999934 -0.87377823 0 1.3756625 1.4996272 - 40 1.4999745 -0.87374997 0 1.3756625 1.4996083 - 50 1.4999347 -0.87369019 0 1.3756625 1.4995685 - 60 1.4998637 -0.87358381 0 1.3756625 1.4994975 - 70 1.4997506 -0.87341428 0 1.3756624 1.4993845 - 80 1.4995842 -0.87316464 0 1.3756624 1.499218 - 90 1.4993536 -0.87281897 0 1.3756624 1.4989876 - 100 1.4990503 -0.87236411 0 1.3756624 1.4986843 -Loop time of 0.570389 on 16 procs for 100 steps with 4096 atoms - -Performance: 75737.813 tau/day, 175.319 timesteps/s -99.3% CPU use with 16 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00024104 | 0.00025283 | 0.00029206 | 0.0 | 0.04 -Kspace | 0.56153 | 0.56176 | 0.56189 | 0.0 | 98.49 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0055203 | 0.0057825 | 0.0061858 | 0.2 | 1.01 -Output | 0.00038505 | 0.00040831 | 0.00048184 | 0.0 | 0.07 -Modify | 0.00096965 | 0.00099662 | 0.0010159 | 0.0 | 0.17 -Other | | 0.001192 | | | 0.21 - -Nlocal: 256 ave 256 max 256 min -Histogram: 16 0 0 0 0 0 0 0 0 0 -Nghost: 1265 ave 1265 max 1265 min -Histogram: 16 0 0 0 0 0 0 0 0 0 -Neighs: 4096 ave 4096 max 4096 min -Histogram: 16 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:03 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.2 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.2 deleted file mode 100644 index bcc61485ca..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.2 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 1 by 1 by 2 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 1 by 1 by 2 MPI processor grid - 4096 atoms - Time spent = 0.000455141 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos fmm 0.001 -kspace_modify scafacos tolerance energy_rel - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.634 | 3.634 | 3.634 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87378819 0 1.3756625 1.4996338 - 10 1.5000004 -0.87378882 0 1.3756625 1.4996342 - 20 1.4999998 -0.87378782 0 1.3756625 1.4996336 - 30 1.4999934 -0.87377823 0 1.3756625 1.4996272 - 40 1.4999745 -0.87374997 0 1.3756625 1.4996083 - 50 1.4999347 -0.87369019 0 1.3756625 1.4995685 - 60 1.4998637 -0.87358381 0 1.3756625 1.4994975 - 70 1.4997506 -0.87341428 0 1.3756624 1.4993845 - 80 1.4995842 -0.87316464 0 1.3756624 1.499218 - 90 1.4993536 -0.87281897 0 1.3756624 1.4989876 - 100 1.4990503 -0.87236411 0 1.3756624 1.4986843 -Loop time of 2.73149 on 2 procs for 100 steps with 4096 atoms - -Performance: 15815.560 tau/day, 36.610 timesteps/s -99.7% CPU use with 2 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00070763 | 0.00071537 | 0.00072312 | 0.0 | 0.03 -Kspace | 2.7111 | 2.7112 | 2.7112 | 0.0 | 99.26 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0096555 | 0.0097489 | 0.0098424 | 0.1 | 0.36 -Output | 0.00036025 | 0.0003823 | 0.00040436 | 0.0 | 0.01 -Modify | 0.0063472 | 0.0064594 | 0.0065715 | 0.1 | 0.24 -Other | | 0.00299 | | | 0.11 - -Nlocal: 2048 ave 2048 max 2048 min -Histogram: 2 0 0 0 0 0 0 0 0 0 -Nghost: 3685 ave 3685 max 3685 min -Histogram: 2 0 0 0 0 0 0 0 0 0 -Neighs: 32768 ave 32768 max 32768 min -Histogram: 2 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:04 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.4 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.4 deleted file mode 100644 index 54e010c8fd..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.4 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 1 by 2 by 2 MPI processor grid - 4096 atoms - Time spent = 0.000329494 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos fmm 0.001 -kspace_modify scafacos tolerance energy_rel - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.497 | 3.497 | 3.497 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87378819 0 1.3756625 1.4996338 - 10 1.5000004 -0.87378882 0 1.3756625 1.4996342 - 20 1.4999998 -0.87378782 0 1.3756625 1.4996336 - 30 1.4999934 -0.87377823 0 1.3756625 1.4996272 - 40 1.4999745 -0.87374997 0 1.3756625 1.4996083 - 50 1.4999347 -0.87369019 0 1.3756625 1.4995685 - 60 1.4998637 -0.87358381 0 1.3756625 1.4994975 - 70 1.4997506 -0.87341428 0 1.3756624 1.4993845 - 80 1.4995842 -0.87316464 0 1.3756624 1.499218 - 90 1.4993536 -0.87281897 0 1.3756624 1.4989876 - 100 1.4990503 -0.87236411 0 1.3756624 1.4986843 -Loop time of 1.53742 on 4 procs for 100 steps with 4096 atoms - -Performance: 28099.005 tau/day, 65.044 timesteps/s -99.7% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00044894 | 0.00045562 | 0.0004611 | 0.0 | 0.03 -Kspace | 1.5223 | 1.5225 | 1.5225 | 0.0 | 99.03 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0085156 | 0.0086777 | 0.0088782 | 0.1 | 0.56 -Output | 0.00034738 | 0.0003686 | 0.0004015 | 0.0 | 0.02 -Modify | 0.0032606 | 0.0033693 | 0.0034289 | 0.1 | 0.22 -Other | | 0.002084 | | | 0.14 - -Nlocal: 1024 ave 1024 max 1024 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Nghost: 2525 ave 2525 max 2525 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Neighs: 16384 ave 16384 max 16384 min -Histogram: 4 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:03 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.8 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.8 deleted file mode 100644 index d5d38d6804..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.fmm.8 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 2 by 2 by 2 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 2 by 2 by 2 MPI processor grid - 4096 atoms - Time spent = 0.000284672 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos fmm 0.001 -kspace_modify scafacos tolerance energy_rel - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.416 | 3.416 | 3.416 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87378819 0 1.3756625 1.4996338 - 10 1.5000004 -0.87378882 0 1.3756625 1.4996342 - 20 1.4999998 -0.87378782 0 1.3756625 1.4996336 - 30 1.4999934 -0.87377823 0 1.3756625 1.4996272 - 40 1.4999745 -0.87374997 0 1.3756625 1.4996083 - 50 1.4999347 -0.87369019 0 1.3756625 1.4995685 - 60 1.4998637 -0.87358381 0 1.3756625 1.4994975 - 70 1.4997506 -0.87341428 0 1.3756624 1.4993845 - 80 1.4995842 -0.87316464 0 1.3756624 1.499218 - 90 1.4993536 -0.87281897 0 1.3756624 1.4989876 - 100 1.4990503 -0.87236411 0 1.3756624 1.4986843 -Loop time of 0.902102 on 8 procs for 100 steps with 4096 atoms - -Performance: 47888.152 tau/day, 110.852 timesteps/s -99.7% CPU use with 8 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00030732 | 0.00031349 | 0.00032663 | 0.0 | 0.03 -Kspace | 0.89112 | 0.89138 | 0.8916 | 0.0 | 98.81 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0064399 | 0.0066807 | 0.0070164 | 0.2 | 0.74 -Output | 0.00034571 | 0.00036666 | 0.00041723 | 0.0 | 0.04 -Modify | 0.0018673 | 0.0019273 | 0.0020192 | 0.1 | 0.21 -Other | | 0.001431 | | | 0.16 - -Nlocal: 512 ave 512 max 512 min -Histogram: 8 0 0 0 0 0 0 0 0 0 -Nghost: 1685 ave 1685 max 1685 min -Histogram: 8 0 0 0 0 0 0 0 0 0 -Neighs: 8192 ave 8192 max 8192 min -Histogram: 8 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:02 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.1 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.1 deleted file mode 100644 index d8b782e41d..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.1 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 1 by 1 by 1 MPI processor grid - 4096 atoms - Time spent = 0.000631332 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.723 | 3.723 | 3.723 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87394226 0 1.3755084 1.4996338 - 10 1.5000144 -0.87365638 0 1.375816 1.4996482 - 20 1.5000284 -0.87366526 0 1.3758281 1.4996622 - 30 1.5000364 -0.87366516 0 1.3758401 1.4996702 - 40 1.5000313 -0.8736496 0 1.375848 1.4996651 - 50 1.5000039 -0.87360069 0 1.3758558 1.4996377 - 60 1.4999432 -0.87350118 0 1.3758644 1.499577 - 70 1.499838 -0.87333517 0 1.3758726 1.4994719 - 80 1.4996772 -0.87308644 0 1.3758801 1.4993111 - 90 1.4994505 -0.87274307 0 1.3758836 1.4990844 - 100 1.4991498 -0.8722911 0 1.3758846 1.4987838 -Loop time of 9.59682 on 1 procs for 100 steps with 4096 atoms - -Performance: 4501.489 tau/day, 10.420 timesteps/s -100.0% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.0011375 | 0.0011375 | 0.0011375 | 0.0 | 0.01 -Kspace | 9.5688 | 9.5688 | 9.5688 | 0.0 | 99.71 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.009017 | 0.009017 | 0.009017 | 0.0 | 0.09 -Output | 0.0004344 | 0.0004344 | 0.0004344 | 0.0 | 0.00 -Modify | 0.012987 | 0.012987 | 0.012987 | 0.0 | 0.14 -Other | | 0.004481 | | | 0.05 - -Nlocal: 4096 ave 4096 max 4096 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 5165 ave 5165 max 5165 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 65536 ave 65536 max 65536 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:10 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.16 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.16 deleted file mode 100644 index 43bcfb6770..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.16 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 2 by 2 by 4 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 2 by 2 by 4 MPI processor grid - 4096 atoms - Time spent = 0.000500917 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.401 | 3.401 | 3.401 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87394226 0 1.3755084 1.4996338 - 10 1.5000144 -0.87365638 0 1.375816 1.4996482 - 20 1.5000284 -0.87366526 0 1.3758281 1.4996622 - 30 1.5000364 -0.87366516 0 1.3758401 1.4996702 - 40 1.5000313 -0.8736496 0 1.375848 1.4996651 - 50 1.5000039 -0.87360069 0 1.3758558 1.4996377 - 60 1.4999432 -0.87350118 0 1.3758644 1.499577 - 70 1.499838 -0.87333517 0 1.3758726 1.4994719 - 80 1.4996772 -0.87308644 0 1.3758801 1.4993111 - 90 1.4994505 -0.87274307 0 1.3758836 1.4990844 - 100 1.4991498 -0.8722911 0 1.3758846 1.4987838 -Loop time of 1.20528 on 16 procs for 100 steps with 4096 atoms - -Performance: 35842.175 tau/day, 82.968 timesteps/s -99.3% CPU use with 16 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00021839 | 0.00025332 | 0.00029278 | 0.0 | 0.02 -Kspace | 1.1945 | 1.1948 | 1.195 | 0.0 | 99.13 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0066545 | 0.0069329 | 0.0072389 | 0.2 | 0.58 -Output | 0.0003922 | 0.00042732 | 0.00054955 | 0.0 | 0.04 -Modify | 0.0010166 | 0.0011965 | 0.0014412 | 0.3 | 0.10 -Other | | 0.001724 | | | 0.14 - -Nlocal: 256 ave 256 max 256 min -Histogram: 16 0 0 0 0 0 0 0 0 0 -Nghost: 1265 ave 1265 max 1265 min -Histogram: 16 0 0 0 0 0 0 0 0 0 -Neighs: 4096 ave 4096 max 4096 min -Histogram: 16 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.2 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.2 deleted file mode 100644 index 9f4f44153b..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.2 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 1 by 1 by 2 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 1 by 1 by 2 MPI processor grid - 4096 atoms - Time spent = 0.00044775 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.634 | 3.634 | 3.634 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87394226 0 1.3755084 1.4996338 - 10 1.5000144 -0.87365638 0 1.375816 1.4996482 - 20 1.5000284 -0.87366526 0 1.3758281 1.4996622 - 30 1.5000364 -0.87366516 0 1.3758401 1.4996702 - 40 1.5000313 -0.8736496 0 1.375848 1.4996651 - 50 1.5000039 -0.87360069 0 1.3758558 1.4996377 - 60 1.4999432 -0.87350118 0 1.3758644 1.499577 - 70 1.499838 -0.87333517 0 1.3758726 1.4994719 - 80 1.4996772 -0.87308644 0 1.3758801 1.4993111 - 90 1.4994505 -0.87274307 0 1.3758836 1.4990844 - 100 1.4991498 -0.8722911 0 1.3758846 1.4987838 -Loop time of 5.14681 on 2 procs for 100 steps with 4096 atoms - -Performance: 8393.542 tau/day, 19.429 timesteps/s -99.9% CPU use with 2 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00070882 | 0.00072873 | 0.00074863 | 0.0 | 0.01 -Kspace | 5.1257 | 5.1258 | 5.1258 | 0.0 | 99.59 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.010188 | 0.010291 | 0.010394 | 0.1 | 0.20 -Output | 0.00042391 | 0.00044322 | 0.00046253 | 0.0 | 0.01 -Modify | 0.0063772 | 0.006551 | 0.0067248 | 0.2 | 0.13 -Other | | 0.003026 | | | 0.06 - -Nlocal: 2048 ave 2048 max 2048 min -Histogram: 2 0 0 0 0 0 0 0 0 0 -Nghost: 3685 ave 3685 max 3685 min -Histogram: 2 0 0 0 0 0 0 0 0 0 -Neighs: 32768 ave 32768 max 32768 min -Histogram: 2 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:05 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.4 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.4 deleted file mode 100644 index d6a78bb193..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.4 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 1 by 2 by 2 MPI processor grid - 4096 atoms - Time spent = 0.000317335 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.497 | 3.497 | 3.497 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87394226 0 1.3755084 1.4996338 - 10 1.5000144 -0.87365638 0 1.375816 1.4996482 - 20 1.5000284 -0.87366526 0 1.3758281 1.4996622 - 30 1.5000364 -0.87366516 0 1.3758401 1.4996702 - 40 1.5000313 -0.8736496 0 1.375848 1.4996651 - 50 1.5000039 -0.87360069 0 1.3758558 1.4996377 - 60 1.4999432 -0.87350118 0 1.3758644 1.499577 - 70 1.499838 -0.87333517 0 1.3758726 1.4994719 - 80 1.4996772 -0.87308644 0 1.3758801 1.4993111 - 90 1.4994505 -0.87274307 0 1.3758836 1.4990844 - 100 1.4991498 -0.8722911 0 1.3758846 1.4987838 -Loop time of 2.94274 on 4 procs for 100 steps with 4096 atoms - -Performance: 14680.187 tau/day, 33.982 timesteps/s -99.7% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00048852 | 0.00049287 | 0.00050163 | 0.0 | 0.02 -Kspace | 2.9277 | 2.9279 | 2.928 | 0.0 | 99.49 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0081494 | 0.0083126 | 0.0084655 | 0.1 | 0.28 -Output | 0.00034475 | 0.00040233 | 0.00043464 | 0.0 | 0.01 -Modify | 0.0034239 | 0.0035145 | 0.0036252 | 0.1 | 0.12 -Other | | 0.00216 | | | 0.07 - -Nlocal: 1024 ave 1024 max 1024 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Nghost: 2525 ave 2525 max 2525 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Neighs: 16384 ave 16384 max 16384 min -Histogram: 4 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:03 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.8 b/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.8 deleted file mode 100644 index 70716bbcbd..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.g++.p2nfft.8 +++ /dev/null @@ -1,102 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.NaCl - orthogonal box = (0 0 0) to (2 2 2) - 2 by 2 by 2 MPI processor grid - reading atoms ... - 8 atoms - -replicate 8 8 8 - orthogonal box = (0 0 0) to (16 16 16) - 2 by 2 by 2 MPI processor grid - 4096 atoms - Time spent = 0.000422239 secs - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance field - -timestep 0.005 -thermo 10 - -run 100 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 16 16 16 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.416 | 3.416 | 3.416 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.87394226 0 1.3755084 1.4996338 - 10 1.5000144 -0.87365638 0 1.375816 1.4996482 - 20 1.5000284 -0.87366526 0 1.3758281 1.4996622 - 30 1.5000364 -0.87366516 0 1.3758401 1.4996702 - 40 1.5000313 -0.8736496 0 1.375848 1.4996651 - 50 1.5000039 -0.87360069 0 1.3758558 1.4996377 - 60 1.4999432 -0.87350118 0 1.3758644 1.499577 - 70 1.499838 -0.87333517 0 1.3758726 1.4994719 - 80 1.4996772 -0.87308644 0 1.3758801 1.4993111 - 90 1.4994505 -0.87274307 0 1.3758836 1.4990844 - 100 1.4991498 -0.8722911 0 1.3758846 1.4987838 -Loop time of 1.75933 on 8 procs for 100 steps with 4096 atoms - -Performance: 24554.819 tau/day, 56.840 timesteps/s -99.4% CPU use with 8 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00030684 | 0.00031838 | 0.00032926 | 0.0 | 0.02 -Kspace | 1.7474 | 1.7477 | 1.748 | 0.0 | 99.34 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0068667 | 0.0072413 | 0.0075011 | 0.2 | 0.41 -Output | 0.00036955 | 0.00038695 | 0.00044942 | 0.0 | 0.02 -Modify | 0.0018206 | 0.0019438 | 0.0020213 | 0.1 | 0.11 -Other | | 0.001739 | | | 0.10 - -Nlocal: 512 ave 512 max 512 min -Histogram: 8 0 0 0 0 0 0 0 0 0 -Nghost: 1685 ave 1685 max 1685 min -Histogram: 8 0 0 0 0 0 0 0 0 0 -Neighs: 8192 ave 8192 max 8192 min -Histogram: 8 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 65536 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:02 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.1 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.1 deleted file mode 100644 index 37d12bb37d..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.1 +++ /dev/null @@ -1,105 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos direct 0.001 - -timestep 0.005 -thermo 1 -run 20 -Setting up ScaFaCoS with solver direct ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 10.3 | 10.3 | 10.3 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417787 0 1.6235721 0.00141207 - 1 18.780041 -10.770002 0 17.371889 0.017679155 - 2 65.289192 -11.084705 0 86.751149 0.06146194 - 3 121.92987 -7.0625759 0 175.64933 0.11478234 - 4 185.78164 -5.8777512 0 272.51604 0.17489112 - 5 286.36222 -4.382053 0 424.73173 0.26957567 - 6 481.42206 -4.3095567 0 717.1014 0.4532011 - 7 488.59167 -3.8685194 0 728.2861 0.45995044 - 8 497.85287 -3.0417966 0 742.99073 0.46866874 - 9 499.61615 -3.419003 0 745.2558 0.47032866 - 10 502.63684 -2.8360961 0 750.36521 0.47317227 - 11 504.4846 -2.7628105 0 753.20736 0.47491172 - 12 506.54485 -2.8460356 0 756.21142 0.47685119 - 13 508.27211 -2.730935 0 758.91482 0.4784772 - 14 510.57045 -2.6094877 0 762.48033 0.48064081 - 15 513.14798 -2.7150827 0 766.23717 0.48306726 - 16 515.78124 -2.3961811 0 770.50201 0.48554615 - 17 515.70265 -2.2982683 0 770.48215 0.48547216 - 18 515.7081 -2.1515983 0 770.63699 0.4854773 - 19 515.74906 -2.0581436 0 770.79182 0.48551586 - 20 515.70883 -1.8922577 0 770.89742 0.48547798 -Loop time of 0.52055 on 1 procs for 20 steps with 1000 atoms - -Performance: 16597.836 tau/day, 38.421 timesteps/s -99.7% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00027752 | 0.00027752 | 0.00027752 | 0.0 | 0.05 -Kspace | 0.35879 | 0.35879 | 0.35879 | 0.0 | 68.93 -Neigh | 0.15946 | 0.15946 | 0.15946 | 0.0 | 30.63 -Comm | 0.00024056 | 0.00024056 | 0.00024056 | 0.0 | 0.05 -Output | 0.00034761 | 0.00034761 | 0.00034761 | 0.0 | 0.07 -Modify | 0.00071192 | 0.00071192 | 0.00071192 | 0.0 | 0.14 -Other | | 0.0007269 | | | 0.14 - -Nlocal: 1000 ave 1000 max 1000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 0 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 247817 ave 247817 max 247817 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 247817 -Ave neighs/atom = 247.817 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.2 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.2 deleted file mode 100644 index 7a22e62bce..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.2 +++ /dev/null @@ -1,105 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 1 by 1 by 2 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos direct 0.001 - -timestep 0.005 -thermo 1 -run 20 -Setting up ScaFaCoS with solver direct ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 6.48 | 6.861 | 7.243 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417787 0 1.6235721 0.00141207 - 1 18.780041 -10.770002 0 17.371889 0.017679155 - 2 65.289192 -11.084705 0 86.751149 0.06146194 - 3 121.92987 -7.0625759 0 175.64933 0.11478234 - 4 185.78164 -5.8777512 0 272.51604 0.17489112 - 5 286.36222 -4.382053 0 424.73173 0.26957567 - 6 481.42206 -4.3095567 0 717.1014 0.4532011 - 7 488.59167 -3.8685194 0 728.2861 0.45995044 - 8 497.85287 -3.0417966 0 742.99073 0.46866874 - 9 499.61615 -3.419003 0 745.2558 0.47032866 - 10 502.63684 -2.8360961 0 750.36521 0.47317227 - 11 504.4846 -2.7628105 0 753.20736 0.47491172 - 12 506.54485 -2.8460356 0 756.21142 0.47685119 - 13 508.27211 -2.730935 0 758.91482 0.4784772 - 14 510.57045 -2.6094877 0 762.48033 0.48064081 - 15 513.14798 -2.7150827 0 766.23717 0.48306726 - 16 515.78124 -2.3961811 0 770.50201 0.48554615 - 17 515.70265 -2.2982683 0 770.48215 0.48547216 - 18 515.7081 -2.1515983 0 770.63699 0.4854773 - 19 515.74906 -2.0581436 0 770.79182 0.48551586 - 20 515.70883 -1.8922577 0 770.89742 0.48547798 -Loop time of 0.330519 on 2 procs for 20 steps with 1000 atoms - -Performance: 26140.700 tau/day, 60.511 timesteps/s -99.6% CPU use with 2 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.0002749 | 0.00027692 | 0.00027895 | 0.0 | 0.08 -Kspace | 0.21565 | 0.24173 | 0.26782 | 5.3 | 73.14 -Neigh | 0.058644 | 0.084906 | 0.11117 | 9.0 | 25.69 -Comm | 0.002033 | 0.0022832 | 0.0025334 | 0.5 | 0.69 -Output | 0.00035667 | 0.0004549 | 0.00055313 | 0.0 | 0.14 -Modify | 0.0004704 | 0.00050521 | 0.00054002 | 0.0 | 0.15 -Other | | 0.0003613 | | | 0.11 - -Nlocal: 500 ave 516 max 484 min -Histogram: 1 0 0 0 0 0 0 0 0 1 -Nghost: 456.5 ave 475 max 438 min -Histogram: 1 0 0 0 0 0 0 0 0 1 -Neighs: 123908 ave 172139 max 75678 min -Histogram: 1 0 0 0 0 0 0 0 0 1 - -Total # of neighbors = 247817 -Ave neighs/atom = 247.817 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.4 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.4 deleted file mode 100644 index 51d0f8c47e..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.4 +++ /dev/null @@ -1,105 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos direct 0.001 - -timestep 0.005 -thermo 1 -run 20 -Setting up ScaFaCoS with solver direct ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 4.837 | 5.123 | 5.6 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417787 0 1.6235721 0.00141207 - 1 18.780041 -10.770002 0 17.371889 0.017679155 - 2 65.289192 -11.084705 0 86.751149 0.06146194 - 3 121.92987 -7.0625759 0 175.64933 0.11478234 - 4 185.78164 -5.8777512 0 272.51604 0.17489112 - 5 286.36222 -4.382053 0 424.73173 0.26957567 - 6 481.42206 -4.3095567 0 717.1014 0.4532011 - 7 488.59167 -3.8685194 0 728.2861 0.45995044 - 8 497.85287 -3.0417966 0 742.99073 0.46866874 - 9 499.61615 -3.419003 0 745.2558 0.47032866 - 10 502.63684 -2.8360961 0 750.36521 0.47317227 - 11 504.4846 -2.7628105 0 753.20736 0.47491172 - 12 506.54485 -2.8460356 0 756.21142 0.47685119 - 13 508.27211 -2.730935 0 758.91482 0.4784772 - 14 510.57045 -2.6094877 0 762.48033 0.48064081 - 15 513.14798 -2.7150827 0 766.23717 0.48306726 - 16 515.78124 -2.3961811 0 770.50201 0.48554615 - 17 515.70265 -2.2982683 0 770.48215 0.48547216 - 18 515.7081 -2.1515983 0 770.63699 0.4854773 - 19 515.74906 -2.0581436 0 770.79182 0.48551586 - 20 515.70883 -1.8922577 0 770.89742 0.48547798 -Loop time of 0.197141 on 4 procs for 20 steps with 1000 atoms - -Performance: 43826.435 tau/day, 101.450 timesteps/s -99.6% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.0002718 | 0.00027621 | 0.00028539 | 0.0 | 0.14 -Kspace | 0.12861 | 0.14654 | 0.16542 | 3.7 | 74.33 -Neigh | 0.027906 | 0.046895 | 0.064943 | 6.6 | 23.79 -Comm | 0.0022087 | 0.0024236 | 0.0026295 | 0.4 | 1.23 -Output | 0.0003252 | 0.00044608 | 0.0006001 | 0.0 | 0.23 -Modify | 0.00016618 | 0.0001756 | 0.00018811 | 0.0 | 0.09 -Other | | 0.0003839 | | | 0.19 - -Nlocal: 250 ave 259 max 238 min -Histogram: 1 0 0 1 0 0 0 0 0 2 -Nghost: 672.25 ave 683 max 663 min -Histogram: 2 0 0 0 0 0 0 0 1 1 -Neighs: 61954.2 ave 97157 max 25016 min -Histogram: 1 0 0 1 0 0 1 0 0 1 - -Total # of neighbors = 247817 -Ave neighs/atom = 247.817 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.8 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.8 deleted file mode 100644 index 90119a101b..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.direct.8 +++ /dev/null @@ -1,105 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 2 by 2 by 2 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos direct 0.001 - -timestep 0.005 -thermo 1 -run 20 -Setting up ScaFaCoS with solver direct ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 4.164 | 4.26 | 4.546 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417787 0 1.6235721 0.00141207 - 1 18.780041 -10.770002 0 17.371889 0.017679155 - 2 65.289192 -11.084705 0 86.751149 0.06146194 - 3 121.92987 -7.0625759 0 175.64933 0.11478234 - 4 185.78164 -5.8777512 0 272.51604 0.17489112 - 5 286.36222 -4.382053 0 424.73173 0.26957567 - 6 481.42206 -4.3095567 0 717.1014 0.4532011 - 7 488.59167 -3.8685194 0 728.2861 0.45995044 - 8 497.85287 -3.0417966 0 742.99073 0.46866874 - 9 499.61615 -3.419003 0 745.2558 0.47032866 - 10 502.63684 -2.8360961 0 750.36521 0.47317227 - 11 504.4846 -2.7628105 0 753.20736 0.47491172 - 12 506.54485 -2.8460356 0 756.21142 0.47685119 - 13 508.27211 -2.730935 0 758.91482 0.4784772 - 14 510.57045 -2.6094877 0 762.48033 0.48064081 - 15 513.14798 -2.7150827 0 766.23717 0.48306726 - 16 515.78124 -2.3961811 0 770.50201 0.48554615 - 17 515.70265 -2.2982683 0 770.48215 0.48547216 - 18 515.7081 -2.1515983 0 770.63699 0.4854773 - 19 515.74906 -2.0581436 0 770.79182 0.48551586 - 20 515.70883 -1.8922577 0 770.89742 0.48547798 -Loop time of 0.107014 on 8 procs for 20 steps with 1000 atoms - -Performance: 80736.875 tau/day, 186.891 timesteps/s -98.8% CPU use with 8 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00027704 | 0.00029281 | 0.00035691 | 0.0 | 0.27 -Kspace | 0.069458 | 0.07877 | 0.089146 | 2.5 | 73.61 -Neigh | 0.013525 | 0.024156 | 0.033524 | 4.7 | 22.57 -Comm | 0.002552 | 0.0029828 | 0.0033691 | 0.5 | 2.79 -Output | 0.00037909 | 0.00051123 | 0.00070429 | 0.0 | 0.48 -Modify | 8.9645e-05 | 9.5487e-05 | 0.000103 | 0.0 | 0.09 -Other | | 0.0002059 | | | 0.19 - -Nlocal: 125 ave 133 max 113 min -Histogram: 2 0 0 0 0 1 1 0 2 2 -Nghost: 773.625 ave 788 max 764 min -Histogram: 1 1 2 1 1 0 0 0 1 1 -Neighs: 30977.1 ave 50690 max 10447 min -Histogram: 1 1 1 0 1 1 0 0 2 1 - -Total # of neighbors = 247817 -Ave neighs/atom = 247.817 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.1 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.1 deleted file mode 100644 index 432ea72b67..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.1 +++ /dev/null @@ -1,109 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos fmm 0.001 -kspace_modify scafacos tolerance energy_rel -kspace_modify scafacos fmm_tuning 1 -ScaFaCoS setting fmm inhomogen tuning ...3 - -timestep 0.005 -thermo 1 - -run 20 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 10.3 | 10.3 | 10.3 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417141 0 1.6235786 0.00141207 - 1 18.780412 -10.770009 0 17.372438 0.017679504 - 2 65.294131 -11.084501 0 86.758754 0.06146659 - 3 121.92555 -7.0612033 0 175.64423 0.11477827 - 4 185.71165 -5.8781334 0 272.41077 0.17482523 - 5 286.28339 -4.3800108 0 424.61565 0.26950146 - 6 481.28097 -4.3052012 0 716.89433 0.45306828 - 7 487.26022 -3.8672741 0 726.29216 0.45869703 - 8 493.65478 -3.0242687 0 736.71742 0.46471675 - 9 495.66203 -3.4336343 0 739.31592 0.46660633 - 10 498.41831 -2.8837072 0 743.99613 0.46920104 - 11 499.20944 -2.7724783 0 745.29287 0.46994579 - 12 500.97345 -2.8281484 0 747.88057 0.4716064 - 13 507.46412 -2.7752775 0 757.65971 0.47771658 - 14 525.35729 -2.5749814 0 784.67292 0.49456085 - 15 563.9578 -2.9982381 0 842.09253 0.5308986 - 16 645.47602 -2.5519203 0 964.69389 0.60763822 - 17 647.09276 -2.2568468 0 967.41166 0.60916019 - 18 647.12596 -2.2791003 0 967.43915 0.60919144 - 19 647.24862 -2.2495226 0 967.65253 0.60930691 - 20 647.51175 -2.0239179 0 968.27244 0.60955462 -Loop time of 0.644143 on 1 procs for 20 steps with 1000 atoms - -Performance: 13413.173 tau/day, 31.049 timesteps/s -99.7% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00027657 | 0.00027657 | 0.00027657 | 0.0 | 0.04 -Kspace | 0.4788 | 0.4788 | 0.4788 | 0.0 | 74.33 -Neigh | 0.16279 | 0.16279 | 0.16279 | 0.0 | 25.27 -Comm | 0.00021696 | 0.00021696 | 0.00021696 | 0.0 | 0.03 -Output | 0.00054836 | 0.00054836 | 0.00054836 | 0.0 | 0.09 -Modify | 0.00075102 | 0.00075102 | 0.00075102 | 0.0 | 0.12 -Other | | 0.000757 | | | 0.12 - -Nlocal: 1000 ave 1000 max 1000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 0 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 244342 ave 244342 max 244342 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 244342 -Ave neighs/atom = 244.342 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.2 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.2 deleted file mode 100644 index 4d4b1100e3..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.2 +++ /dev/null @@ -1,109 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 1 by 1 by 2 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos fmm 0.001 -kspace_modify scafacos tolerance energy_rel -kspace_modify scafacos fmm_tuning 1 -ScaFaCoS setting fmm inhomogen tuning ...3 - -timestep 0.005 -thermo 1 - -run 20 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 6.48 | 6.861 | 7.243 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417141 0 1.6235786 0.00141207 - 1 18.780412 -10.770009 0 17.372438 0.017679504 - 2 65.294131 -11.084501 0 86.758754 0.06146659 - 3 121.92555 -7.0612033 0 175.64423 0.11477827 - 4 185.71165 -5.8781334 0 272.41077 0.17482523 - 5 286.28339 -4.3800108 0 424.61565 0.26950146 - 6 481.28097 -4.3052012 0 716.89433 0.45306828 - 7 487.26022 -3.8672741 0 726.29216 0.45869703 - 8 493.65478 -3.0242687 0 736.71742 0.46471675 - 9 495.66203 -3.4336343 0 739.31592 0.46660633 - 10 498.41831 -2.8837072 0 743.99613 0.46920104 - 11 499.20944 -2.7724783 0 745.29287 0.46994579 - 12 500.97345 -2.8281484 0 747.88057 0.4716064 - 13 507.46412 -2.7752775 0 757.65971 0.47771658 - 14 525.35729 -2.5749814 0 784.67292 0.49456085 - 15 563.9578 -2.9982381 0 842.09253 0.5308986 - 16 645.47602 -2.5519203 0 964.69389 0.60763822 - 17 647.09276 -2.2568468 0 967.41166 0.60916019 - 18 647.12596 -2.2791003 0 967.43915 0.60919144 - 19 647.24862 -2.2495226 0 967.65253 0.60930691 - 20 647.51175 -2.0239179 0 968.27244 0.60955462 -Loop time of 0.563049 on 2 procs for 20 steps with 1000 atoms - -Performance: 15345.024 tau/day, 35.521 timesteps/s -99.4% CPU use with 2 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00024986 | 0.00026596 | 0.00028205 | 0.0 | 0.05 -Kspace | 0.45103 | 0.47692 | 0.50281 | 3.7 | 84.70 -Neigh | 0.055771 | 0.081813 | 0.10785 | 9.1 | 14.53 -Comm | 0.0022206 | 0.0024507 | 0.0026808 | 0.5 | 0.44 -Output | 0.00050044 | 0.00061882 | 0.00073719 | 0.0 | 0.11 -Modify | 0.00029945 | 0.00044227 | 0.00058508 | 0.0 | 0.08 -Other | | 0.0005381 | | | 0.10 - -Nlocal: 500 ave 509 max 491 min -Histogram: 1 0 0 0 0 0 0 0 0 1 -Nghost: 455.5 ave 467 max 444 min -Histogram: 1 0 0 0 0 0 0 0 0 1 -Neighs: 122171 ave 171834 max 72508 min -Histogram: 1 0 0 0 0 0 0 0 0 1 - -Total # of neighbors = 244342 -Ave neighs/atom = 244.342 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.4 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.4 deleted file mode 100644 index 9634a0174b..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.4 +++ /dev/null @@ -1,109 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos fmm 0.001 -kspace_modify scafacos tolerance energy_rel -kspace_modify scafacos fmm_tuning 1 -ScaFaCoS setting fmm inhomogen tuning ...3 - -timestep 0.005 -thermo 1 - -run 20 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 4.837 | 5.123 | 5.6 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417141 0 1.6235786 0.00141207 - 1 18.780412 -10.770009 0 17.372438 0.017679504 - 2 65.294131 -11.084501 0 86.758754 0.06146659 - 3 121.92555 -7.0612033 0 175.64423 0.11477827 - 4 185.71165 -5.8781334 0 272.41077 0.17482523 - 5 286.28339 -4.3800108 0 424.61565 0.26950146 - 6 481.28097 -4.3052012 0 716.89433 0.45306828 - 7 487.26022 -3.8672741 0 726.29216 0.45869703 - 8 493.65478 -3.0242687 0 736.71742 0.46471675 - 9 495.66203 -3.4336343 0 739.31592 0.46660633 - 10 498.41831 -2.8837072 0 743.99613 0.46920104 - 11 499.20944 -2.7724783 0 745.29287 0.46994579 - 12 500.97345 -2.8281484 0 747.88057 0.4716064 - 13 507.46412 -2.7752775 0 757.65971 0.47771658 - 14 525.35729 -2.5749814 0 784.67292 0.49456085 - 15 563.9578 -2.9982381 0 842.09253 0.5308986 - 16 645.47602 -2.5519203 0 964.69389 0.60763822 - 17 647.09276 -2.2568468 0 967.41166 0.60916019 - 18 647.12596 -2.2791003 0 967.43915 0.60919144 - 19 647.24862 -2.2495226 0 967.65253 0.60930691 - 20 647.51175 -2.0239179 0 968.27244 0.60955462 -Loop time of 0.508149 on 4 procs for 20 steps with 1000 atoms - -Performance: 17002.884 tau/day, 39.359 timesteps/s -99.4% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00024509 | 0.00026453 | 0.00028753 | 0.0 | 0.05 -Kspace | 0.43933 | 0.45836 | 0.47734 | 2.2 | 90.20 -Neigh | 0.025956 | 0.045068 | 0.064242 | 7.2 | 8.87 -Comm | 0.002799 | 0.0030612 | 0.0033174 | 0.4 | 0.60 -Output | 0.00047231 | 0.00058293 | 0.00076509 | 0.0 | 0.11 -Modify | 0.00016856 | 0.0002442 | 0.00042009 | 0.0 | 0.05 -Other | | 0.0005655 | | | 0.11 - -Nlocal: 250 ave 259 max 240 min -Histogram: 1 0 0 0 0 2 0 0 0 1 -Nghost: 668.75 ave 679 max 657 min -Histogram: 1 0 0 0 0 1 1 0 0 1 -Neighs: 61085.5 ave 95363 max 24964 min -Histogram: 1 0 0 1 0 0 0 1 0 1 - -Total # of neighbors = 244342 -Ave neighs/atom = 244.342 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.8 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.8 deleted file mode 100644 index a6a020b031..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.fmm.8 +++ /dev/null @@ -1,109 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 2 by 2 by 2 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos fmm 0.001 -kspace_modify scafacos tolerance energy_rel -kspace_modify scafacos fmm_tuning 1 -ScaFaCoS setting fmm inhomogen tuning ...3 - -timestep 0.005 -thermo 1 - -run 20 -Setting up ScaFaCoS with solver fmm ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 4.164 | 4.26 | 4.546 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417141 0 1.6235786 0.00141207 - 1 18.780412 -10.770009 0 17.372438 0.017679504 - 2 65.294131 -11.084501 0 86.758754 0.06146659 - 3 121.92555 -7.0612033 0 175.64423 0.11477827 - 4 185.71165 -5.8781334 0 272.41077 0.17482523 - 5 286.28339 -4.3800108 0 424.61565 0.26950146 - 6 481.28097 -4.3052012 0 716.89433 0.45306828 - 7 487.26022 -3.8672741 0 726.29216 0.45869703 - 8 493.65478 -3.0242687 0 736.71742 0.46471675 - 9 495.66203 -3.4336343 0 739.31592 0.46660633 - 10 498.41831 -2.8837072 0 743.99613 0.46920104 - 11 499.20944 -2.7724783 0 745.29287 0.46994579 - 12 500.97345 -2.8281484 0 747.88057 0.4716064 - 13 507.46412 -2.7752775 0 757.65971 0.47771658 - 14 525.35729 -2.5749814 0 784.67292 0.49456085 - 15 563.9578 -2.9982381 0 842.09253 0.5308986 - 16 645.47602 -2.5519203 0 964.69389 0.60763822 - 17 647.09276 -2.2568468 0 967.41166 0.60916019 - 18 647.12596 -2.2791003 0 967.43915 0.60919144 - 19 647.24862 -2.2495226 0 967.65253 0.60930691 - 20 647.51175 -2.0239179 0 968.27244 0.60955462 -Loop time of 0.494261 on 8 procs for 20 steps with 1000 atoms - -Performance: 17480.630 tau/day, 40.464 timesteps/s -99.3% CPU use with 8 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00027752 | 0.00030088 | 0.0003736 | 0.0 | 0.06 -Kspace | 0.45443 | 0.46295 | 0.47316 | 1.0 | 93.67 -Neigh | 0.014408 | 0.02515 | 0.034048 | 4.6 | 5.09 -Comm | 0.0036254 | 0.0041741 | 0.0048032 | 0.6 | 0.84 -Output | 0.00072742 | 0.0009357 | 0.0012984 | 0.0 | 0.19 -Modify | 0.00011778 | 0.00015756 | 0.00019836 | 0.0 | 0.03 -Other | | 0.000589 | | | 0.12 - -Nlocal: 125 ave 137 max 111 min -Histogram: 1 1 0 0 0 2 2 1 0 1 -Nghost: 768.875 ave 788 max 761 min -Histogram: 4 0 2 0 0 0 1 0 0 1 -Neighs: 30542.8 ave 48077 max 10011 min -Histogram: 1 1 1 0 1 1 0 0 0 3 - -Total # of neighbors = 244342 -Ave neighs/atom = 244.342 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.1 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.1 deleted file mode 100644 index f9192cdfaf..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.1 +++ /dev/null @@ -1,107 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance potential - -timestep 0.005 -thermo 1 - -run 20 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 10.3 | 10.3 | 10.3 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417787 0 1.6235721 0.00141207 - 1 18.780041 -10.770002 0 17.371889 0.017679155 - 2 65.289192 -11.084705 0 86.751149 0.06146194 - 3 121.92987 -7.0625759 0 175.64933 0.11478234 - 4 185.78164 -5.8777511 0 272.51603 0.17489112 - 5 286.36221 -4.3820531 0 424.73172 0.26957566 - 6 481.42203 -4.3095567 0 717.10136 0.45320108 - 7 488.59165 -3.8685193 0 728.28607 0.45995042 - 8 497.85288 -3.0417938 0 742.99075 0.46866875 - 9 499.61619 -3.4190063 0 745.25585 0.47032869 - 10 502.63691 -2.8360951 0 750.36531 0.47317234 - 11 504.4847 -2.7628089 0 753.20751 0.47491181 - 12 506.54494 -2.8460319 0 756.21157 0.47685128 - 13 508.2722 -2.7309328 0 758.91497 0.47847729 - 14 510.57053 -2.6094792 0 762.48045 0.48064089 - 15 513.14804 -2.7150819 0 766.23726 0.48306731 - 16 515.78127 -2.3961749 0 770.50206 0.48554618 - 17 515.70267 -2.2982581 0 770.48219 0.48547219 - 18 515.70813 -2.1516075 0 770.63702 0.48547732 - 19 515.74908 -2.0581483 0 770.79185 0.48551588 - 20 515.70881 -1.892235 0 770.89742 0.48547797 -Loop time of 1.34132 on 1 procs for 20 steps with 1000 atoms - -Performance: 6441.409 tau/day, 14.911 timesteps/s -100.0% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00028849 | 0.00028849 | 0.00028849 | 0.0 | 0.02 -Kspace | 1.1744 | 1.1744 | 1.1744 | 0.0 | 87.56 -Neigh | 0.16435 | 0.16435 | 0.16435 | 0.0 | 12.25 -Comm | 0.00021219 | 0.00021219 | 0.00021219 | 0.0 | 0.02 -Output | 0.00051928 | 0.00051928 | 0.00051928 | 0.0 | 0.04 -Modify | 0.00079513 | 0.00079513 | 0.00079513 | 0.0 | 0.06 -Other | | 0.0007439 | | | 0.06 - -Nlocal: 1000 ave 1000 max 1000 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 0 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 247817 ave 247817 max 247817 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 247817 -Ave neighs/atom = 247.817 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.2 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.2 deleted file mode 100644 index 4db3e28dbf..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.2 +++ /dev/null @@ -1,107 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 1 by 1 by 2 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance potential - -timestep 0.005 -thermo 1 - -run 20 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 6.48 | 6.861 | 7.243 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417787 0 1.6235721 0.00141207 - 1 18.780041 -10.770002 0 17.371889 0.017679155 - 2 65.289192 -11.084705 0 86.751149 0.06146194 - 3 121.92987 -7.0625759 0 175.64933 0.11478234 - 4 185.78164 -5.8777511 0 272.51603 0.17489112 - 5 286.36221 -4.3820531 0 424.73172 0.26957566 - 6 481.42203 -4.3095567 0 717.10136 0.45320108 - 7 488.59165 -3.8685193 0 728.28607 0.45995042 - 8 497.85288 -3.0417938 0 742.99075 0.46866875 - 9 499.61619 -3.4190063 0 745.25585 0.47032869 - 10 502.63691 -2.8360951 0 750.36531 0.47317234 - 11 504.4847 -2.7628089 0 753.20751 0.47491181 - 12 506.54494 -2.8460319 0 756.21157 0.47685128 - 13 508.2722 -2.7309328 0 758.91497 0.47847729 - 14 510.57053 -2.6094792 0 762.48045 0.48064089 - 15 513.14804 -2.7150819 0 766.23726 0.48306731 - 16 515.78127 -2.3961749 0 770.50206 0.48554618 - 17 515.70267 -2.2982581 0 770.48219 0.48547219 - 18 515.70813 -2.1516075 0 770.63702 0.48547732 - 19 515.74908 -2.0581483 0 770.79185 0.48551588 - 20 515.70881 -1.892235 0 770.89742 0.48547797 -Loop time of 0.858675 on 2 procs for 20 steps with 1000 atoms - -Performance: 10062.016 tau/day, 23.292 timesteps/s -100.0% CPU use with 2 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00026321 | 0.00026667 | 0.00027013 | 0.0 | 0.03 -Kspace | 0.74531 | 0.77182 | 0.79833 | 3.0 | 89.89 -Neigh | 0.055915 | 0.082578 | 0.10924 | 9.3 | 9.62 -Comm | 0.0021703 | 0.002401 | 0.0026317 | 0.5 | 0.28 -Output | 0.00048423 | 0.00061262 | 0.000741 | 0.0 | 0.07 -Modify | 0.00034285 | 0.0004636 | 0.00058436 | 0.0 | 0.05 -Other | | 0.0005329 | | | 0.06 - -Nlocal: 500 ave 516 max 484 min -Histogram: 1 0 0 0 0 0 0 0 0 1 -Nghost: 456.5 ave 475 max 438 min -Histogram: 1 0 0 0 0 0 0 0 0 1 -Neighs: 123908 ave 172139 max 75678 min -Histogram: 1 0 0 0 0 0 0 0 0 1 - -Total # of neighbors = 247817 -Ave neighs/atom = 247.817 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.4 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.4 deleted file mode 100644 index 3a2d653106..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.4 +++ /dev/null @@ -1,107 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance potential - -timestep 0.005 -thermo 1 - -run 20 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 4.837 | 5.123 | 5.6 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417787 0 1.6235721 0.00141207 - 1 18.780041 -10.770002 0 17.371889 0.017679155 - 2 65.289192 -11.084705 0 86.751149 0.06146194 - 3 121.92987 -7.0625759 0 175.64933 0.11478234 - 4 185.78164 -5.8777511 0 272.51603 0.17489112 - 5 286.36221 -4.3820531 0 424.73172 0.26957566 - 6 481.42203 -4.3095567 0 717.10136 0.45320108 - 7 488.59165 -3.8685193 0 728.28607 0.45995042 - 8 497.85288 -3.0417938 0 742.99075 0.46866875 - 9 499.61619 -3.4190063 0 745.25585 0.47032869 - 10 502.63691 -2.8360951 0 750.36531 0.47317234 - 11 504.4847 -2.7628089 0 753.20751 0.47491181 - 12 506.54494 -2.8460319 0 756.21157 0.47685128 - 13 508.2722 -2.7309328 0 758.91497 0.47847729 - 14 510.57053 -2.6094792 0 762.48045 0.48064089 - 15 513.14804 -2.7150819 0 766.23726 0.48306731 - 16 515.78127 -2.3961749 0 770.50206 0.48554618 - 17 515.70267 -2.2982581 0 770.48219 0.48547219 - 18 515.70813 -2.1516075 0 770.63702 0.48547732 - 19 515.74908 -2.0581483 0 770.79185 0.48551588 - 20 515.70881 -1.892235 0 770.89742 0.48547797 -Loop time of 0.540235 on 4 procs for 20 steps with 1000 atoms - -Performance: 15993.051 tau/day, 37.021 timesteps/s -99.3% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00025725 | 0.00028253 | 0.00031233 | 0.0 | 0.05 -Kspace | 0.47152 | 0.48989 | 0.50709 | 1.9 | 90.68 -Neigh | 0.028196 | 0.045694 | 0.064338 | 6.3 | 8.46 -Comm | 0.0026579 | 0.003028 | 0.0033965 | 0.5 | 0.56 -Output | 0.00049663 | 0.00064254 | 0.00084853 | 0.0 | 0.12 -Modify | 0.00019264 | 0.0002293 | 0.00030923 | 0.0 | 0.04 -Other | | 0.0004709 | | | 0.09 - -Nlocal: 250 ave 259 max 238 min -Histogram: 1 0 0 1 0 0 0 0 0 2 -Nghost: 672.25 ave 683 max 663 min -Histogram: 2 0 0 0 0 0 0 0 1 1 -Neighs: 61954.2 ave 97157 max 25016 min -Histogram: 1 0 0 1 0 0 1 0 0 1 - -Total # of neighbors = 247817 -Ave neighs/atom = 247.817 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.8 b/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.8 deleted file mode 100644 index 08e68531a9..0000000000 --- a/examples/USER/scafacos/log.23Jul18.scafacos.hsph.g++.p2nfft.8 +++ /dev/null @@ -1,107 +0,0 @@ -LAMMPS (29 Jun 2018) -OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) - using 1 OpenMP thread(s) per MPI task -# Point dipoles in a 2d box - -units lj -atom_style charge - -read_data data.hammersley_shphere - orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) - 2 by 2 by 2 MPI processor grid - reading atoms ... - 1000 atoms -change_box all boundary f f f - -velocity all create 1.5 49893 - -neighbor 1.0 bin -neigh_modify delay 0 - -fix 1 all nve - -# LAMMPS computes pairwise and long-range Coulombics - -#pair_style coul/long 3.0 -#pair_coeff * * -#kspace_style pppm 1.0e-3 - -# Scafacos computes entire long-range Coulombics -# use dummy pair style to perform atom sorting - -pair_style zero 1.0 -pair_coeff * * - -#fix 2 all scafacos p3m tolerance field 0.001 - -kspace_style scafacos p2nfft 0.001 -kspace_modify scafacos tolerance potential - -timestep 0.005 -thermo 1 - -run 20 -Setting up ScaFaCoS with solver p2nfft ... -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 2 - ghost atom cutoff = 2 - binsize = 1, bins = 102 102 102 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair zero, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 4.164 | 4.26 | 4.546 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 1.5 -0.62417787 0 1.6235721 0.00141207 - 1 18.780041 -10.770002 0 17.371889 0.017679155 - 2 65.289192 -11.084705 0 86.751149 0.06146194 - 3 121.92987 -7.0625759 0 175.64933 0.11478234 - 4 185.78164 -5.8777511 0 272.51603 0.17489112 - 5 286.36221 -4.3820531 0 424.73172 0.26957566 - 6 481.42203 -4.3095567 0 717.10136 0.45320108 - 7 488.59165 -3.8685193 0 728.28607 0.45995042 - 8 497.85288 -3.0417938 0 742.99075 0.46866875 - 9 499.61619 -3.4190063 0 745.25585 0.47032869 - 10 502.63691 -2.8360951 0 750.36531 0.47317234 - 11 504.4847 -2.7628089 0 753.20751 0.47491181 - 12 506.54494 -2.8460319 0 756.21157 0.47685128 - 13 508.2722 -2.7309328 0 758.91497 0.47847729 - 14 510.57053 -2.6094792 0 762.48045 0.48064089 - 15 513.14804 -2.7150819 0 766.23726 0.48306731 - 16 515.78127 -2.3961749 0 770.50206 0.48554618 - 17 515.70267 -2.2982581 0 770.48219 0.48547219 - 18 515.70813 -2.1516075 0 770.63702 0.48547732 - 19 515.74908 -2.0581483 0 770.79185 0.48551588 - 20 515.70881 -1.892235 0 770.89742 0.48547797 -Loop time of 0.317433 on 8 procs for 20 steps with 1000 atoms - -Performance: 27218.342 tau/day, 63.005 timesteps/s -99.6% CPU use with 8 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.00027013 | 0.00028479 | 0.00029206 | 0.0 | 0.09 -Kspace | 0.27742 | 0.28666 | 0.29702 | 1.4 | 90.31 -Neigh | 0.014795 | 0.025382 | 0.03481 | 4.8 | 8.00 -Comm | 0.0034907 | 0.0038758 | 0.0042439 | 0.5 | 1.22 -Output | 0.00055361 | 0.00073573 | 0.0010755 | 0.0 | 0.23 -Modify | 0.00012279 | 0.00014156 | 0.00016165 | 0.0 | 0.04 -Other | | 0.0003535 | | | 0.11 - -Nlocal: 125 ave 133 max 113 min -Histogram: 2 0 0 0 0 1 1 0 2 2 -Nghost: 773.625 ave 788 max 764 min -Histogram: 1 1 2 1 1 0 0 0 1 1 -Neighs: 30977.1 ave 50690 max 10447 min -Histogram: 1 1 1 0 1 1 0 0 2 1 - -Total # of neighbors = 247817 -Ave neighs/atom = 247.817 -Neighbor list builds = 19 -Dangerous builds = 18 -Total wall time: 0:00:00 From fc93a79fdd04234f041aab2a9f7f07d5242585a0 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Wed, 8 Aug 2018 14:05:28 -0600 Subject: [PATCH 424/675] updated to support ScaFaCoS 1.0.1 --- cmake/CMakeLists.txt | 5 +++-- lib/scafacos/Install.py | 6 +++--- src/USER-SCAFACOS/scafacos.cpp | 22 ++++++++++++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index a03548c712..9f1f3a7526 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -360,8 +360,8 @@ if(PKG_USER-SCAFACOS) if(DOWNLOAD_SCAFACOS) include(ExternalProject) ExternalProject_Add(scafacos_build - URL https://github.com/scafacos/scafacos/releases/download/v1.0.0/scafacos-1.0.0.tar.gz - URL_MD5 c75d75d8a4cb9757faddb8b205a2b20f + URL https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz + URL_MD5 bd46d74e3296bd8a444d731bb10c1738 CONFIGURE_COMMAND /configure --prefix= --disable-doc --enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m @@ -389,6 +389,7 @@ if(PKG_USER-SCAFACOS) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_near.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_gridsort.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_resort.a) + list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_redist.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_common.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pnfft.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pfft.a) diff --git a/lib/scafacos/Install.py b/lib/scafacos/Install.py index 4e00e805d1..d23e8a3686 100644 --- a/lib/scafacos/Install.py +++ b/lib/scafacos/Install.py @@ -29,8 +29,8 @@ make lib-scafacos args="-p $HOME/scafacos" # use existing Scafacos installation # settings -version = "scafacos-1.0.0" -url = "https://github.com/scafacos/scafacos/releases/download/v1.0.0/scafacos-1.0.0.tar.gz" +version = "scafacos-1.0.1" +url = "https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz" #url = "https://gigamove.rz.rwth-aachen.de/d/id/CTzyApN76MXMJ6/dd/100" % version # print error message or help @@ -147,7 +147,7 @@ if buildflag: if buildflag: print("Building Scafacos ...") - cmd = 'cd "%s"; CC=mpicc FC=mpif90 CXX=mpicxx ./configure --prefix="`pwd`/build" --disable-doc --enable-fcs-solvers=fmm,p2nfft,direct,ewald > log.txt; make -j; make install' % homedir + cmd = 'cd "%s"; ./configure --prefix="`pwd`/build" --disable-doc --enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m --with-internal-fftw --with-internal-pfft --with-internal-pnfft CC=mpicc FC=mpif90 CXX=mpicxx F77= > log.txt; make -j; make install' % homedir txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) print(txt.decode('UTF-8')) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index fdbd5e34e0..5832f5b052 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -150,6 +150,17 @@ void Scafacos::init() fcs_fmm_set_internal_tuning(fcs,FCS_FMM_HOMOGENOUS_SYSTEM); } + // for the FMM at least one particle is required per process + if (strcmp(method,"fmm") == 0) + { + int empty = (nlocal==0)?1:0; + MPI_Allreduce(MPI_IN_PLACE,&empty,1,MPI_INT,MPI_SUM,world); + if (empty > 0) + fcs_set_redistribute(fcs,1); + else + fcs_set_redistribute(fcs,0); + } + result = fcs_tune(fcs,nlocal,&x[0][0],q); check_result(result); // more useful here, since the parameters should be tuned now @@ -172,6 +183,17 @@ void Scafacos::compute(int eflag, int vflag) const double qscale = qqrd2e; + // for the FMM at least one particle is required per process + if (strcmp(method,"fmm")) + { + int empty = (nlocal==0)?1:0; + MPI_Allreduce(MPI_IN_PLACE,&empty,1,MPI_INT,MPI_SUM,world); + if (empty > 0) + fcs_set_redistribute(fcs,1); + else + fcs_set_redistribute(fcs,0); + } + if (eflag || vflag) ev_setup(eflag,vflag); else { From 2a5e550bdacb74abba6136db9a8c4b80e147774f Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Wed, 8 Aug 2018 15:02:19 -0600 Subject: [PATCH 425/675] updated log files --- .../log.08Aug18.scafacos.cw.g++.ewald.16 | 92 +++++++++++++++ .../log.08Aug18.scafacos.cw.g++.ewald.8 | 92 +++++++++++++++ .../log.08Aug18.scafacos.cw.g++.fmm.1 | 99 ++++++++++++++++ .../log.08Aug18.scafacos.cw.g++.fmm.16 | 99 ++++++++++++++++ .../log.08Aug18.scafacos.cw.g++.fmm.2 | 99 ++++++++++++++++ .../log.08Aug18.scafacos.cw.g++.fmm.4 | 99 ++++++++++++++++ .../log.08Aug18.scafacos.cw.g++.fmm.8 | 99 ++++++++++++++++ .../log.08Aug18.scafacos.cw.g++.p2nfft.1 | 92 +++++++++++++++ .../log.08Aug18.scafacos.cw.g++.p2nfft.16 | 92 +++++++++++++++ .../log.08Aug18.scafacos.cw.g++.p2nfft.2 | 92 +++++++++++++++ .../log.08Aug18.scafacos.cw.g++.p2nfft.4 | 92 +++++++++++++++ .../log.08Aug18.scafacos.cw.g++.p2nfft.8 | 92 +++++++++++++++ .../scafacos/log.08Aug18.scafacos.g++.ewald.1 | 102 ++++++++++++++++ .../log.08Aug18.scafacos.g++.ewald.16 | 102 ++++++++++++++++ .../scafacos/log.08Aug18.scafacos.g++.ewald.2 | 102 ++++++++++++++++ .../scafacos/log.08Aug18.scafacos.g++.ewald.4 | 102 ++++++++++++++++ .../scafacos/log.08Aug18.scafacos.g++.ewald.8 | 102 ++++++++++++++++ .../scafacos/log.08Aug18.scafacos.g++.fmm.1 | 102 ++++++++++++++++ .../scafacos/log.08Aug18.scafacos.g++.fmm.16 | 102 ++++++++++++++++ .../scafacos/log.08Aug18.scafacos.g++.fmm.2 | 102 ++++++++++++++++ .../scafacos/log.08Aug18.scafacos.g++.fmm.4 | 102 ++++++++++++++++ .../scafacos/log.08Aug18.scafacos.g++.fmm.8 | 102 ++++++++++++++++ .../log.08Aug18.scafacos.g++.p2nfft.1 | 102 ++++++++++++++++ .../log.08Aug18.scafacos.g++.p2nfft.16 | 102 ++++++++++++++++ .../log.08Aug18.scafacos.g++.p2nfft.2 | 102 ++++++++++++++++ .../log.08Aug18.scafacos.g++.p2nfft.4 | 102 ++++++++++++++++ .../log.08Aug18.scafacos.g++.p2nfft.8 | 102 ++++++++++++++++ .../scafacos/log.08Aug18.scafacos.g++.p3m.2 | 0 .../log.08Aug18.scafacos.hsph.g++.direct.1 | 105 +++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.direct.2 | 105 +++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.direct.4 | 105 +++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.direct.8 | 105 +++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.fmm.1 | 109 ++++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.fmm.2 | 109 ++++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.fmm.4 | 109 ++++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.fmm.8 | 109 ++++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.p2nfft.1 | 107 +++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.p2nfft.2 | 107 +++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.p2nfft.4 | 107 +++++++++++++++++ .../log.08Aug18.scafacos.hsph.g++.p2nfft.8 | 107 +++++++++++++++++ 40 files changed, 3953 insertions(+) create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.ewald.16 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.ewald.8 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.1 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.16 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.2 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.4 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.8 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.1 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.16 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.2 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.4 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.8 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.1 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.16 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.2 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.4 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.8 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.1 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.16 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.2 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.4 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.8 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.1 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.16 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.2 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.4 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.8 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.g++.p3m.2 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.1 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.2 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.4 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.8 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.1 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.2 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.4 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.8 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.1 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.2 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.4 create mode 100644 examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.8 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.ewald.16 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.ewald.16 new file mode 100644 index 0000000000..20d3faaf7f --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.ewald.16 @@ -0,0 +1,92 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.313 | 3.501 | 3.689 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49647271 0 0.49647271 0 0 + 10 300 0.051135063 0.014582562 0.44286522 0.02180093 0.46466616 0 0.0043601861 + 20 300 0.10210872 0.058693359 0.37869251 0.087746571 0.46643909 0 0.017549314 + 30 300 0.15278506 0.13468789 0.26730177 0.2013584 0.46866017 0 0.040271679 + 40 300 0.19430375 0.50949535 0.083356437 0.76169555 0.84505198 0 0.15233911 + 50 300 0.23220921 1.1731116 -0.055261984 1.7538018 1.6985399 0 0.35076037 + 60 300 0.27002859 1.3589639 -0.33351524 2.031651 1.6981358 0 0.4063302 + 70 300 0.30781388 1.6482648 -0.76570045 2.4641559 1.6984554 0 0.49283118 + 80 300 0.34566283 2.8640899 -2.4038488 4.2818144 1.8779656 0 0.85636288 + 90 300 0.38424087 93.168442 -2.5911448 139.28682 136.69568 0 27.857364 + 100 300 0.42331123 94.146897 -1.3480439 140.74961 139.40157 0 28.149922 +Loop time of 0.423331 on 16 procs for 100 steps with 300 atoms + +Performance: 102047.913 tau/day, 236.222 timesteps/s +99.2% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.5988e-05 | 3.6508e-05 | 5.5075e-05 | 0.0 | 0.01 +Kspace | 0.41852 | 0.41925 | 0.41976 | 0.1 | 99.04 +Neigh | 0.00023413 | 0.00056887 | 0.0012875 | 0.0 | 0.13 +Comm | 0.0019519 | 0.0022772 | 0.0027158 | 0.5 | 0.54 +Output | 0.00028276 | 0.00030752 | 0.0003624 | 0.0 | 0.07 +Modify | 8.3685e-05 | 0.0001286 | 0.00018764 | 0.0 | 0.03 +Other | | 0.000758 | | | 0.18 + +Nlocal: 18.75 ave 39 max 6 min +Histogram: 6 1 1 0 1 2 2 1 1 1 +Nghost: 122.812 ave 195 max 63 min +Histogram: 8 0 0 0 0 0 0 1 3 4 +Neighs: 160.625 ave 598 max 13 min +Histogram: 8 2 1 1 1 0 0 2 0 1 + +Total # of neighbors = 2570 +Ave neighs/atom = 8.56667 +Neighbor list builds = 23 +Dangerous builds = 16 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.ewald.8 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.ewald.8 new file mode 100644 index 0000000000..d26138522a --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.ewald.8 @@ -0,0 +1,92 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.317 | 3.317 | 3.317 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49647271 0 0.49647271 0 0 + 10 300 0.057411432 0.014718629 0.45088339 0.02200435 0.47288774 0 0.00440087 + 20 300 0.11482716 0.05922597 0.38470912 0.088542825 0.47325194 0 0.017708565 + 30 300 0.17278481 0.13587829 0.27058048 0.20313804 0.47371852 0 0.040627608 + 40 300 0.23021507 0.51353118 0.088432648 0.76772911 0.85616176 0 0.15354582 + 50 300 0.28812647 1.1760001 -0.058088247 1.7581201 1.7000319 0 0.35162403 + 60 300 0.34651113 1.3627885 -0.33736672 2.0373688 1.7000021 0 0.40747376 + 70 300 0.40509939 1.6529365 -0.77082139 2.4711401 1.7003187 0 0.49422802 + 80 300 0.46342874 2.9569837 -2.4624654 4.4206907 1.9582253 0 0.88413814 + 90 300 0.52329254 81.642726 -2.5370215 122.05588 119.51885 0 24.411175 + 100 300 0.58335209 85.047974 -1.128107 127.14672 126.01861 0 25.429344 +Loop time of 0.583369 on 8 procs for 100 steps with 300 atoms + +Performance: 74052.598 tau/day, 171.418 timesteps/s +99.7% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.0531e-05 | 4.6492e-05 | 4.8876e-05 | 0.0 | 0.01 +Kspace | 0.57805 | 0.5785 | 0.57893 | 0.0 | 99.17 +Neigh | 0.00062275 | 0.00091892 | 0.0013313 | 0.0 | 0.16 +Comm | 0.002604 | 0.0028289 | 0.0031538 | 0.3 | 0.48 +Output | 0.0002265 | 0.0002434 | 0.00029039 | 0.0 | 0.04 +Modify | 0.00016117 | 0.00017747 | 0.00019884 | 0.0 | 0.03 +Other | | 0.00065 | | | 0.11 + +Nlocal: 37.5 ave 46 max 31 min +Histogram: 2 0 0 2 1 0 2 0 0 1 +Nghost: 203.875 ave 212 max 192 min +Histogram: 1 0 1 0 0 2 1 0 0 3 +Neighs: 321.625 ave 599 max 112 min +Histogram: 1 2 0 1 1 0 1 1 0 1 + +Total # of neighbors = 2573 +Ave neighs/atom = 8.57667 +Neighbor list builds = 23 +Dangerous builds = 16 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.1 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.1 new file mode 100644 index 0000000000..714ce85a5f --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.1 @@ -0,0 +1,99 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ... + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.34 | 3.34 | 3.34 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49646402 0 0.49646402 0 0.016548801 + 10 300 0.063865185 0.015455559 0.47335833 0.02310606 0.49646439 0 0.020399823 + 20 300 0.12760854 0.06229069 0.40334177 0.093124582 0.49646635 0 0.032069642 + 30 300 0.19143319 0.14310163 0.28254277 0.21393694 0.49647971 0 0.05220548 + 40 300 0.25553131 0.52929788 0.089669015 0.79130033 0.88096934 0 0.16124903 + 50 300 0.31961966 1.1963022 -0.082792461 1.7884718 1.7056794 0 0.35493462 + 60 300 0.38388991 1.3928167 -0.37659239 2.082261 1.7056686 0 0.40389911 + 70 300 0.44797421 1.7069009 -0.84571914 2.5518169 1.7060978 0 0.48217274 + 80 300 0.50961447 15.358343 -3.368063 22.960722 19.592659 0 4.4798757 + 90 300 0.57181501 42.280432 -2.1623864 63.209247 61.04686 0 12.56977 + 100 300 0.63501096 41.48079 -0.89904529 62.013782 61.114736 0 12.372788 +Loop time of 0.635022 on 1 procs for 100 steps with 300 atoms + +Performance: 68029.122 tau/day, 157.475 timesteps/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 9.0837e-05 | 9.0837e-05 | 9.0837e-05 | 0.0 | 0.01 +Kspace | 0.62877 | 0.62877 | 0.62877 | 0.0 | 99.01 +Neigh | 0.0035319 | 0.0035319 | 0.0035319 | 0.0 | 0.56 +Comm | 0.0010211 | 0.0010211 | 0.0010211 | 0.0 | 0.16 +Output | 0.00014758 | 0.00014758 | 0.00014758 | 0.0 | 0.02 +Modify | 0.0010428 | 0.0010428 | 0.0010428 | 0.0 | 0.16 +Other | | 0.0004218 | | | 0.07 + +Nlocal: 300 ave 300 max 300 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 374 ave 374 max 374 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 2459 ave 2459 max 2459 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 2459 +Ave neighs/atom = 8.19667 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.16 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.16 new file mode 100644 index 0000000000..c9c1e0d155 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.16 @@ -0,0 +1,99 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ... + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.313 | 3.501 | 3.689 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49646402 0 0.49646402 0 0.016548801 + 10 300 0.023007393 0.015455559 0.47335833 0.02310606 0.49646439 0 0.020399823 + 20 300 0.045746088 0.06229069 0.40334177 0.093124582 0.49646635 0 0.032069642 + 30 300 0.068123341 0.14310163 0.28254277 0.21393694 0.49647971 0 0.05220548 + 40 300 0.090359211 0.52929788 0.089669015 0.79130033 0.88096934 0 0.16124903 + 50 300 0.11304998 1.1963022 -0.082792461 1.7884718 1.7056794 0 0.35493462 + 60 300 0.13585806 1.3928167 -0.37659239 2.082261 1.7056686 0 0.40389911 + 70 300 0.15867376 1.7069009 -0.84571914 2.5518169 1.7060978 0 0.48217274 + 80 300 0.18324137 15.358343 -3.368063 22.960722 19.592659 0 4.4798757 + 90 300 0.20960689 42.280432 -2.1623864 63.209247 61.04686 0 12.56977 + 100 300 0.23539281 41.48079 -0.89904529 62.013782 61.114736 0 12.372788 +Loop time of 0.235411 on 16 procs for 100 steps with 300 atoms + +Performance: 183509.107 tau/day, 424.790 timesteps/s +97.9% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.2425e-05 | 4.4718e-05 | 6.1274e-05 | 0.0 | 0.02 +Kspace | 0.23097 | 0.23143 | 0.2318 | 0.1 | 98.31 +Neigh | 0.00015116 | 0.00035347 | 0.00075746 | 0.0 | 0.15 +Comm | 0.0020316 | 0.002282 | 0.0025339 | 0.3 | 0.97 +Output | 0.00034404 | 0.00037053 | 0.00042701 | 0.0 | 0.16 +Modify | 9.3937e-05 | 0.00014532 | 0.00018811 | 0.0 | 0.06 +Other | | 0.0007878 | | | 0.33 + +Nlocal: 18.75 ave 36 max 6 min +Histogram: 4 3 1 0 0 1 2 1 2 2 +Nghost: 127 ave 196 max 71 min +Histogram: 8 0 0 0 0 0 0 1 6 1 +Neighs: 153.688 ave 491 max 10 min +Histogram: 8 1 1 1 1 1 0 0 0 3 + +Total # of neighbors = 2459 +Ave neighs/atom = 8.19667 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.2 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.2 new file mode 100644 index 0000000000..1a9bc77146 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.2 @@ -0,0 +1,99 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ... + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.354 | 3.354 | 3.355 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49646402 0 0.49646402 0 0.016548801 + 10 300 0.038181543 0.015455559 0.47335833 0.02310606 0.49646439 0 0.020399823 + 20 300 0.076276302 0.06229069 0.40334177 0.093124582 0.49646635 0 0.032069642 + 30 300 0.11437607 0.14310163 0.28254277 0.21393694 0.49647971 0 0.05220548 + 40 300 0.15244293 0.52929788 0.089669015 0.79130033 0.88096934 0 0.16124903 + 50 300 0.19081283 1.1963022 -0.082792461 1.7884718 1.7056794 0 0.35493462 + 60 300 0.22923493 1.3928167 -0.37659239 2.082261 1.7056686 0 0.40389911 + 70 300 0.26754427 1.7069009 -0.84571914 2.5518169 1.7060978 0 0.48217274 + 80 300 0.30721259 15.358343 -3.368063 22.960722 19.592659 0 4.4798757 + 90 300 0.34865618 42.280432 -2.1623864 63.209247 61.04686 0 12.56977 + 100 300 0.39100981 41.48079 -0.89904529 62.013782 61.114736 0 12.372788 +Loop time of 0.391022 on 2 procs for 100 steps with 300 atoms + +Performance: 110479.760 tau/day, 255.740 timesteps/s +99.6% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 8.0109e-05 | 8.1539e-05 | 8.297e-05 | 0.0 | 0.02 +Kspace | 0.38534 | 0.38582 | 0.3863 | 0.1 | 98.67 +Neigh | 0.0014851 | 0.0019699 | 0.0024548 | 1.1 | 0.50 +Comm | 0.0019314 | 0.0020101 | 0.0020888 | 0.2 | 0.51 +Output | 0.00014496 | 0.00017297 | 0.00020099 | 0.0 | 0.04 +Modify | 0.0005033 | 0.00052273 | 0.00054216 | 0.0 | 0.13 +Other | | 0.0004461 | | | 0.11 + +Nlocal: 150 ave 159 max 141 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 392 ave 395 max 389 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Neighs: 1229.5 ave 1773 max 686 min +Histogram: 1 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 2459 +Ave neighs/atom = 8.19667 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.4 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.4 new file mode 100644 index 0000000000..eae3f2b840 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.4 @@ -0,0 +1,99 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ... + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.333 | 3.333 | 3.333 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49646402 0 0.49646402 0 0.016548801 + 10 300 0.029414415 0.015455559 0.47335833 0.02310606 0.49646439 0 0.020399823 + 20 300 0.058616877 0.06229069 0.40334177 0.093124582 0.49646635 0 0.032069642 + 30 300 0.087769508 0.14310163 0.28254277 0.21393694 0.49647971 0 0.05220548 + 40 300 0.1168611 0.52929788 0.089669015 0.79130033 0.88096934 0 0.16124903 + 50 300 0.14482284 1.1963022 -0.082792461 1.7884718 1.7056794 0 0.35493462 + 60 300 0.17198443 1.3928167 -0.37659239 2.082261 1.7056686 0 0.40389911 + 70 300 0.19868851 1.7069009 -0.84571914 2.5518169 1.7060978 0 0.48217274 + 80 300 0.22835517 15.358343 -3.368063 22.960722 19.592659 0 4.4798757 + 90 300 0.26023602 42.280432 -2.1623864 63.209247 61.04686 0 12.56977 + 100 300 0.29043221 41.48079 -0.89904529 62.013782 61.114736 0 12.372788 +Loop time of 0.290448 on 4 procs for 100 steps with 300 atoms + +Performance: 148735.741 tau/day, 344.296 timesteps/s +99.0% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 5.9605e-05 | 6.187e-05 | 6.4135e-05 | 0.0 | 0.02 +Kspace | 0.28551 | 0.28584 | 0.28604 | 0.0 | 98.41 +Neigh | 0.00077796 | 0.0010615 | 0.0013225 | 0.7 | 0.37 +Comm | 0.002372 | 0.0024325 | 0.002497 | 0.1 | 0.84 +Output | 0.00025368 | 0.0002659 | 0.00029516 | 0.0 | 0.09 +Modify | 0.00030279 | 0.00031865 | 0.00033021 | 0.0 | 0.11 +Other | | 0.0004706 | | | 0.16 + +Nlocal: 75 ave 81 max 70 min +Histogram: 2 0 0 0 0 0 0 1 0 1 +Nghost: 282.5 ave 290 max 274 min +Histogram: 1 0 0 1 0 0 0 0 1 1 +Neighs: 614.75 ave 981 max 285 min +Histogram: 1 1 0 0 0 0 0 1 0 1 + +Total # of neighbors = 2459 +Ave neighs/atom = 8.19667 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.8 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.8 new file mode 100644 index 0000000000..feb7e2a5a6 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.fmm.8 @@ -0,0 +1,99 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +kspace_style scafacos fmm 1.0e-3 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ... + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.317 | 3.317 | 3.317 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49646402 0 0.49646402 0 0.016548801 + 10 300 0.026465416 0.015455559 0.47335833 0.02310606 0.49646439 0 0.020399823 + 20 300 0.057377338 0.06229069 0.40334177 0.093124582 0.49646635 0 0.032069642 + 30 300 0.088356495 0.14310163 0.28254277 0.21393694 0.49647971 0 0.05220548 + 40 300 0.11900806 0.52929788 0.089669015 0.79130033 0.88096934 0 0.16124903 + 50 300 0.15157914 1.1963022 -0.082792461 1.7884718 1.7056794 0 0.35493462 + 60 300 0.18608141 1.3928167 -0.37659239 2.082261 1.7056686 0 0.40389911 + 70 300 0.21956491 1.7069009 -0.84571914 2.5518169 1.7060978 0 0.48217274 + 80 300 0.24269128 15.358343 -3.368063 22.960722 19.592659 0 4.4798757 + 90 300 0.26847005 42.280432 -2.1623864 63.209247 61.04686 0 12.56977 + 100 300 0.29283834 41.48079 -0.89904529 62.013782 61.114736 0 12.372788 +Loop time of 0.292855 on 8 procs for 100 steps with 300 atoms + +Performance: 147513.337 tau/day, 341.466 timesteps/s +98.4% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.7207e-05 | 5.5045e-05 | 6.9618e-05 | 0.0 | 0.02 +Kspace | 0.28739 | 0.28773 | 0.2881 | 0.0 | 98.25 +Neigh | 0.00040698 | 0.00060901 | 0.00082922 | 0.0 | 0.21 +Comm | 0.0029533 | 0.0031788 | 0.0034056 | 0.3 | 1.09 +Output | 0.00029063 | 0.00030866 | 0.00035119 | 0.0 | 0.11 +Modify | 0.00018978 | 0.00022188 | 0.00026703 | 0.0 | 0.08 +Other | | 0.0007486 | | | 0.26 + +Nlocal: 37.5 ave 45 max 31 min +Histogram: 1 1 1 1 1 0 1 0 1 1 +Nghost: 200 ave 209 max 189 min +Histogram: 1 0 0 0 1 4 0 0 0 2 +Neighs: 307.375 ave 514 max 115 min +Histogram: 2 1 0 1 1 0 0 0 1 2 + +Total # of neighbors = 2459 +Ave neighs/atom = 8.19667 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.1 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.1 new file mode 100644 index 0000000000..f47f24edee --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.1 @@ -0,0 +1,92 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.34 | 3.34 | 3.34 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49683273 0 0.49683273 0 0.016561091 + 10 300 0.071435928 0.015479312 0.47369009 0.023141571 0.49683166 0 0.020417984 + 20 300 0.14302707 0.062386358 0.40356181 0.093267605 0.49682941 0 0.032105581 + 30 300 0.21480989 0.14331637 0.2825636 0.21425798 0.49682157 0 0.052270382 + 40 300 0.28638172 0.53041843 0.089505208 0.79297556 0.88248077 0 0.16157862 + 50 300 0.35810781 1.1948397 -0.083317439 1.7862853 1.7029679 0 0.35447982 + 60 300 0.42993116 1.3915614 -0.37745551 2.0803842 1.7029287 0 0.40349499 + 70 300 0.50181961 1.7061978 -0.84746071 2.5507657 1.703305 0 0.48190445 + 80 300 0.57404566 20.692093 -3.32971 30.93468 27.60497 0 6.0759456 + 90 300 0.64724708 48.999403 -2.1632167 73.254107 71.090891 0 14.578714 + 100 300 0.72128963 51.199785 -0.81127924 76.543678 75.732399 0 15.281693 +Loop time of 0.721302 on 1 procs for 100 steps with 300 atoms + +Performance: 59891.733 tau/day, 138.638 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 8.893e-05 | 8.893e-05 | 8.893e-05 | 0.0 | 0.01 +Kspace | 0.71502 | 0.71502 | 0.71502 | 0.0 | 99.13 +Neigh | 0.0035415 | 0.0035415 | 0.0035415 | 0.0 | 0.49 +Comm | 0.001024 | 0.001024 | 0.001024 | 0.0 | 0.14 +Output | 0.00015044 | 0.00015044 | 0.00015044 | 0.0 | 0.02 +Modify | 0.0010409 | 0.0010409 | 0.0010409 | 0.0 | 0.14 +Other | | 0.0004385 | | | 0.06 + +Nlocal: 300 ave 300 max 300 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 381 ave 381 max 381 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 2461 ave 2461 max 2461 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 2461 +Ave neighs/atom = 8.20333 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.16 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.16 new file mode 100644 index 0000000000..d6e7cbea37 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.16 @@ -0,0 +1,92 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.313 | 3.501 | 3.689 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49683273 0 0.49683273 0 0.016561091 + 10 300 0.015678644 0.015479312 0.47369009 0.023141571 0.49683166 0 0.020417984 + 20 300 0.031283855 0.062386358 0.40356181 0.093267605 0.49682941 0 0.032105581 + 30 300 0.046878099 0.14331637 0.2825636 0.21425798 0.49682157 0 0.052270382 + 40 300 0.062416077 0.53041843 0.089505208 0.79297556 0.88248077 0 0.16157862 + 50 300 0.078029871 1.1948397 -0.083317439 1.7862853 1.7029679 0 0.35447982 + 60 300 0.093806505 1.3915614 -0.37745551 2.0803842 1.7029287 0 0.40349499 + 70 300 0.1096344 1.7061978 -0.84746071 2.5507657 1.703305 0 0.48190445 + 80 300 0.12532592 20.692093 -3.32971 30.93468 27.60497 0 6.0759456 + 90 300 0.14175463 48.999403 -2.1632167 73.254107 71.090891 0 14.578714 + 100 300 0.15838337 51.199785 -0.81127924 76.543678 75.732399 0 15.281693 +Loop time of 0.158406 on 16 procs for 100 steps with 300 atoms + +Performance: 272716.448 tau/day, 631.288 timesteps/s +99.4% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.718e-05 | 3.7491e-05 | 5.6744e-05 | 0.0 | 0.02 +Kspace | 0.15435 | 0.15482 | 0.15516 | 0.1 | 97.74 +Neigh | 0.00014806 | 0.0003508 | 0.00074744 | 0.0 | 0.22 +Comm | 0.0016866 | 0.0019967 | 0.0023787 | 0.5 | 1.26 +Output | 0.00027871 | 0.00033027 | 0.00038028 | 0.0 | 0.21 +Modify | 8.0347e-05 | 0.00011933 | 0.00016522 | 0.0 | 0.08 +Other | | 0.0007506 | | | 0.47 + +Nlocal: 18.75 ave 33 max 6 min +Histogram: 2 6 0 0 0 0 2 1 2 3 +Nghost: 128.875 ave 198 max 71 min +Histogram: 7 1 0 0 0 0 0 1 5 2 +Neighs: 153.812 ave 490 max 14 min +Histogram: 8 0 3 0 1 1 0 0 1 2 + +Total # of neighbors = 2461 +Ave neighs/atom = 8.20333 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.2 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.2 new file mode 100644 index 0000000000..fb863797f3 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.2 @@ -0,0 +1,92 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.354 | 3.354 | 3.355 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49683273 0 0.49683273 0 0.016561091 + 10 300 0.044083834 0.015479312 0.47369009 0.023141571 0.49683166 0 0.020417984 + 20 300 0.088379145 0.062386358 0.40356181 0.093267605 0.49682941 0 0.032105581 + 30 300 0.13264704 0.14331637 0.2825636 0.21425798 0.49682157 0 0.052270382 + 40 300 0.17687225 0.53041843 0.089505208 0.79297556 0.88248077 0 0.16157862 + 50 300 0.22116137 1.1948397 -0.083317439 1.7862853 1.7029679 0 0.35447982 + 60 300 0.26515126 1.3915614 -0.37745551 2.0803842 1.7029287 0 0.40349499 + 70 300 0.30891085 1.7061978 -0.84746071 2.5507657 1.703305 0 0.48190445 + 80 300 0.35292292 20.692093 -3.32971 30.93468 27.60497 0 6.0759456 + 90 300 0.39845228 48.999403 -2.1632167 73.254107 71.090891 0 14.578714 + 100 300 0.44492316 51.199785 -0.81127924 76.543678 75.732399 0 15.281693 +Loop time of 0.444937 on 2 procs for 100 steps with 300 atoms + +Performance: 97092.373 tau/day, 224.751 timesteps/s +100.0% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 7.7248e-05 | 7.844e-05 | 7.9632e-05 | 0.0 | 0.02 +Kspace | 0.43932 | 0.43979 | 0.44026 | 0.1 | 98.84 +Neigh | 0.0014915 | 0.0019662 | 0.0024409 | 1.1 | 0.44 +Comm | 0.0019331 | 0.0019941 | 0.0020552 | 0.1 | 0.45 +Output | 0.00013781 | 0.00016308 | 0.00018835 | 0.0 | 0.04 +Modify | 0.00050378 | 0.00050449 | 0.00050521 | 0.0 | 0.11 +Other | | 0.0004425 | | | 0.10 + +Nlocal: 150 ave 157 max 143 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 399 ave 402 max 396 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Neighs: 1230.5 ave 1756 max 705 min +Histogram: 1 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 2461 +Ave neighs/atom = 8.20333 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.4 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.4 new file mode 100644 index 0000000000..d5a07e0324 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.4 @@ -0,0 +1,92 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.333 | 3.333 | 3.333 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49683273 0 0.49683273 0 0.016561091 + 10 300 0.02743125 0.015479312 0.47369009 0.023141571 0.49683166 0 0.020417984 + 20 300 0.05494833 0.062386358 0.40356181 0.093267605 0.49682941 0 0.032105581 + 30 300 0.082517862 0.14331637 0.2825636 0.21425798 0.49682157 0 0.052270382 + 40 300 0.11015558 0.53041843 0.089505208 0.79297556 0.88248077 0 0.16157862 + 50 300 0.13790298 1.1948397 -0.083317439 1.7862853 1.7029679 0 0.35447982 + 60 300 0.1660006 1.3915614 -0.37745551 2.0803842 1.7029287 0 0.40349499 + 70 300 0.1937964 1.7061978 -0.84746071 2.5507657 1.703305 0 0.48190445 + 80 300 0.22181106 20.692093 -3.32971 30.93468 27.60497 0 6.0759456 + 90 300 0.25105524 48.999403 -2.1632167 73.254107 71.090891 0 14.578714 + 100 300 0.28086019 51.199785 -0.81127924 76.543678 75.732399 0 15.281693 +Loop time of 0.280875 on 4 procs for 100 steps with 300 atoms + +Performance: 153805.254 tau/day, 356.031 timesteps/s +99.7% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 5.6744e-05 | 6.0022e-05 | 6.4135e-05 | 0.0 | 0.02 +Kspace | 0.27651 | 0.27682 | 0.27714 | 0.0 | 98.56 +Neigh | 0.00079465 | 0.001082 | 0.0014107 | 0.8 | 0.39 +Comm | 0.0019372 | 0.002014 | 0.0020835 | 0.1 | 0.72 +Output | 0.00018406 | 0.00019914 | 0.00023413 | 0.0 | 0.07 +Modify | 0.0002749 | 0.00028563 | 0.00029325 | 0.0 | 0.10 +Other | | 0.0004173 | | | 0.15 + +Nlocal: 75 ave 81 max 69 min +Histogram: 1 0 0 0 1 1 0 0 0 1 +Nghost: 287 ave 296 max 278 min +Histogram: 1 0 1 0 0 0 0 1 0 1 +Neighs: 615.25 ave 964 max 286 min +Histogram: 1 1 0 0 0 0 0 1 0 1 + +Total # of neighbors = 2461 +Ave neighs/atom = 8.20333 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.8 b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.8 new file mode 100644 index 0000000000..a6f9228673 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.cw.g++.p2nfft.8 @@ -0,0 +1,92 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task + +units lj +atom_style charge + +read_data data.cloud_wall + orthogonal box = (0 0 0) to (10 10 10) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 300 atoms + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.317 | 3.317 | 3.317 Mbytes +Step Atoms CPU Temp PotEng KinEng TotEng E_coul Press + 0 300 0 0 0.49683273 0 0.49683273 0 0.016561091 + 10 300 0.01961565 0.015479312 0.47369009 0.023141571 0.49683166 0 0.020417984 + 20 300 0.039346695 0.062386358 0.40356181 0.093267605 0.49682941 0 0.032105581 + 30 300 0.059037447 0.14331637 0.2825636 0.21425798 0.49682157 0 0.052270382 + 40 300 0.078732729 0.53041843 0.089505208 0.79297556 0.88248077 0 0.16157862 + 50 300 0.098586798 1.1948397 -0.083317439 1.7862853 1.7029679 0 0.35447982 + 60 300 0.11857247 1.3915614 -0.37745551 2.0803842 1.7029287 0 0.40349499 + 70 300 0.1385541 1.7061978 -0.84746071 2.5507657 1.703305 0 0.48190445 + 80 300 0.15850091 20.692093 -3.32971 30.93468 27.60497 0 6.0759456 + 90 300 0.17892075 48.999403 -2.1632167 73.254107 71.090891 0 14.578714 + 100 300 0.19964767 51.199785 -0.81127924 76.543678 75.732399 0 15.281693 +Loop time of 0.199664 on 8 procs for 100 steps with 300 atoms + +Performance: 216363.074 tau/day, 500.840 timesteps/s +99.4% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.5061e-05 | 4.7535e-05 | 5.3167e-05 | 0.0 | 0.02 +Kspace | 0.19551 | 0.19584 | 0.19611 | 0.0 | 98.08 +Neigh | 0.00041366 | 0.00060952 | 0.00082064 | 0.0 | 0.31 +Comm | 0.0021496 | 0.0022282 | 0.0024025 | 0.2 | 1.12 +Output | 0.0002346 | 0.00024167 | 0.00027847 | 0.0 | 0.12 +Modify | 0.00016665 | 0.00017652 | 0.0001924 | 0.0 | 0.09 +Other | | 0.0005245 | | | 0.26 + +Nlocal: 37.5 ave 42 max 33 min +Histogram: 2 1 0 1 0 0 1 0 1 2 +Nghost: 202.25 ave 212 max 194 min +Histogram: 1 0 2 1 0 2 0 1 0 1 +Neighs: 307.625 ave 505 max 129 min +Histogram: 3 0 0 1 1 0 0 0 1 2 + +Total # of neighbors = 2461 +Ave neighs/atom = 8.20333 +Neighbor list builds = 15 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.1 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.1 new file mode 100644 index 0000000000..13212ede0c --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.1 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 1 by 1 by 1 MPI processor grid + 4096 atoms + Time spent = 0.000498772 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.813 | 5.813 | 5.813 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7475938 0 0.50185691 11.99707 + 10 1.500011 -1.747529 0 0.50193816 11.997158 + 20 1.5000023 -1.7475152 0 0.50193898 11.997089 + 30 1.4999308 -1.747404 0 0.50194285 11.996517 + 40 1.4997722 -1.7471622 0 0.50194686 11.995248 + 50 1.4995835 -1.746878 0 0.50194808 11.993739 + 60 1.4996054 -1.7469114 0 0.50194749 11.993914 + 70 1.5004341 -1.7481558 0 0.50194592 12.000543 + 80 1.5033218 -1.7524875 0 0.50194458 12.023638 + 90 1.5108306 -1.7637462 0 0.50194636 12.083694 + 100 1.5292479 -1.7913449 0 0.50196695 12.230996 +Loop time of 1121.22 on 1 procs for 100 steps with 4096 atoms + +Performance: 38.530 tau/day, 0.089 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0015197 | 0.0015197 | 0.0015197 | 0.0 | 0.00 +Kspace | 1121.2 | 1121.2 | 1121.2 | 0.0 |100.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.013699 | 0.013699 | 0.013699 | 0.0 | 0.00 +Output | 0.00038314 | 0.00038314 | 0.00038314 | 0.0 | 0.00 +Modify | 0.011126 | 0.011126 | 0.011126 | 0.0 | 0.00 +Other | | 0.00418 | | | 0.00 + +Nlocal: 4096 ave 4096 max 4096 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 9728 ave 9728 max 9728 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 524288 ave 524288 max 524288 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:18:57 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.16 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.16 new file mode 100644 index 0000000000..2fc46da3cd --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.16 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 2 by 2 by 4 MPI processor grid + 4096 atoms + Time spent = 0.000462294 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.501 | 3.501 | 3.501 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7475938 0 0.50185691 -nan + 10 1.500011 -1.747529 0 0.50193816 -nan + 20 1.5000023 -1.7475152 0 0.50193898 -nan + 30 1.4999308 -1.747404 0 0.50194285 -nan + 40 1.4997722 -1.7471622 0 0.50194686 -nan + 50 1.4995835 -1.746878 0 0.50194808 -nan + 60 1.4996054 -1.7469114 0 0.50194749 -nan + 70 1.5004341 -1.7481558 0 0.50194592 -nan + 80 1.5033218 -1.7524875 0 0.50194458 -nan + 90 1.5108306 -1.7637462 0 0.50194636 -nan + 100 1.5292479 -1.7913449 0 0.50196695 -nan +Loop time of 80.2777 on 16 procs for 100 steps with 4096 atoms + +Performance: 538.132 tau/day, 1.246 timesteps/s +99.8% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0003705 | 0.00039807 | 0.00048542 | 0.0 | 0.00 +Kspace | 80.262 | 80.263 | 80.264 | 0.0 | 99.98 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.010191 | 0.011419 | 0.012416 | 0.6 | 0.01 +Output | 0.00028253 | 0.00033158 | 0.0004065 | 0.0 | 0.00 +Modify | 0.00082541 | 0.0008464 | 0.00087833 | 0.0 | 0.00 +Other | | 0.001511 | | | 0.00 + +Nlocal: 256 ave 256 max 256 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Nghost: 2816 ave 2816 max 2816 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Neighs: 32768 ave 32768 max 32768 min +Histogram: 16 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:01:22 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.2 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.2 new file mode 100644 index 0000000000..b6bf41de24 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.2 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 1 by 1 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000344753 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.574 | 4.574 | 4.574 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7475938 0 0.50185691 11.99707 + 10 1.500011 -1.747529 0 0.50193816 11.997158 + 20 1.5000023 -1.7475152 0 0.50193898 11.997089 + 30 1.4999308 -1.747404 0 0.50194285 11.996517 + 40 1.4997722 -1.7471622 0 0.50194686 11.995248 + 50 1.4995835 -1.746878 0 0.50194808 11.993739 + 60 1.4996054 -1.7469114 0 0.50194749 11.993914 + 70 1.5004341 -1.7481558 0 0.50194592 12.000543 + 80 1.5033218 -1.7524875 0 0.50194458 12.023638 + 90 1.5108306 -1.7637462 0 0.50194636 12.083694 + 100 1.5292479 -1.7913449 0 0.50196695 12.230996 +Loop time of 566.796 on 2 procs for 100 steps with 4096 atoms + +Performance: 76.218 tau/day, 0.176 timesteps/s +100.0% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0010231 | 0.0010413 | 0.0010595 | 0.1 | 0.00 +Kspace | 566.77 | 566.77 | 566.77 | 0.0 | 99.99 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.019707 | 0.01982 | 0.019932 | 0.1 | 0.00 +Output | 0.0002656 | 0.00029266 | 0.00031972 | 0.0 | 0.00 +Modify | 0.0055575 | 0.0055707 | 0.0055838 | 0.0 | 0.00 +Other | | 0.002497 | | | 0.00 + +Nlocal: 2048 ave 2048 max 2048 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 7168 ave 7168 max 7168 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 262144 ave 262144 max 262144 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:09:38 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.4 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.4 new file mode 100644 index 0000000000..26c1953afa --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.4 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 1 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000261068 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.008 | 4.008 | 4.008 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7475938 0 0.50185691 -nan + 10 1.500011 -1.747529 0 0.50193816 -nan + 20 1.5000023 -1.7475152 0 0.50193898 -nan + 30 1.4999308 -1.747404 0 0.50194285 -nan + 40 1.4997722 -1.7471622 0 0.50194686 -nan + 50 1.4995835 -1.746878 0 0.50194808 -nan + 60 1.4996054 -1.7469114 0 0.50194749 -nan + 70 1.5004341 -1.7481558 0 0.50194592 -nan + 80 1.5033218 -1.7524875 0 0.50194458 -nan + 90 1.5108306 -1.7637462 0 0.50194636 -nan + 100 1.5292479 -1.7913449 0 0.50196695 -nan +Loop time of 295.996 on 4 procs for 100 steps with 4096 atoms + +Performance: 145.948 tau/day, 0.338 timesteps/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00071096 | 0.00071985 | 0.00072813 | 0.0 | 0.00 +Kspace | 295.98 | 295.98 | 295.98 | 0.0 | 99.99 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.013666 | 0.013736 | 0.013795 | 0.0 | 0.00 +Output | 0.00023484 | 0.00025135 | 0.00029254 | 0.0 | 0.00 +Modify | 0.0029099 | 0.002973 | 0.0030224 | 0.1 | 0.00 +Other | | 0.001821 | | | 0.00 + +Nlocal: 1024 ave 1024 max 1024 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 5120 ave 5120 max 5120 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 131072 ave 131072 max 131072 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:05:02 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.8 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.8 new file mode 100644 index 0000000000..4a1a5b91ed --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.ewald.8 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 2 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000232935 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos ewald 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver ewald ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.508 | 3.508 | 3.508 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7475938 0 0.50185691 -nan + 10 1.500011 -1.747529 0 0.50193816 -nan + 20 1.5000023 -1.7475152 0 0.50193898 -nan + 30 1.4999308 -1.747404 0 0.50194285 -nan + 40 1.4997722 -1.7471622 0 0.50194686 -nan + 50 1.4995835 -1.746878 0 0.50194808 -nan + 60 1.4996054 -1.7469114 0 0.50194749 -nan + 70 1.5004341 -1.7481558 0 0.50194592 -nan + 80 1.5033218 -1.7524875 0 0.50194458 -nan + 90 1.5108306 -1.7637462 0 0.50194636 -nan + 100 1.5292479 -1.7913449 0 0.50196695 -nan +Loop time of 154.44 on 8 procs for 100 steps with 4096 atoms + +Performance: 279.720 tau/day, 0.647 timesteps/s +99.9% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00049257 | 0.00051311 | 0.00059295 | 0.0 | 0.00 +Kspace | 154.42 | 154.42 | 154.42 | 0.0 | 99.99 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.012076 | 0.013177 | 0.014308 | 0.8 | 0.01 +Output | 0.00025177 | 0.00028065 | 0.00030136 | 0.0 | 0.00 +Modify | 0.0015776 | 0.0017182 | 0.0018268 | 0.2 | 0.00 +Other | | 0.001309 | | | 0.00 + +Nlocal: 512 ave 512 max 512 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Nghost: 3584 ave 3584 max 3584 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Neighs: 65536 ave 65536 max 65536 min +Histogram: 8 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:02:38 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.1 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.1 new file mode 100644 index 0000000000..598585ae95 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.1 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 1 by 1 by 1 MPI processor grid + 4096 atoms + Time spent = 0.000518799 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.813 | 5.813 | 5.813 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7475646 0 0.50188608 10.44368 + 10 1.5000016 -1.7475671 0 0.50188602 10.44369 + 20 1.4999827 -1.7475388 0 0.50188592 10.443564 + 30 1.4999016 -1.7474173 0 0.5018858 10.443023 + 40 1.4997356 -1.7471685 0 0.50188572 10.441917 + 50 1.4995414 -1.7468771 0 0.5018858 10.440623 + 60 1.4995587 -1.7469027 0 0.50188622 10.440739 + 70 1.5003837 -1.7481389 0 0.50188727 10.446238 + 80 1.5032684 -1.7524625 0 0.50188958 10.465466 + 90 1.5107749 -1.763714 0 0.50189507 10.515502 + 100 1.52919 -1.791306 0 0.50191895 10.638261 +Loop time of 34.7058 on 1 procs for 100 steps with 4096 atoms + +Performance: 1244.749 tau/day, 2.881 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0015228 | 0.0015228 | 0.0015228 | 0.0 | 0.00 +Kspace | 34.675 | 34.675 | 34.675 | 0.0 | 99.91 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.013741 | 0.013741 | 0.013741 | 0.0 | 0.04 +Output | 0.00041246 | 0.00041246 | 0.00041246 | 0.0 | 0.00 +Modify | 0.01107 | 0.01107 | 0.01107 | 0.0 | 0.03 +Other | | 0.004232 | | | 0.01 + +Nlocal: 4096 ave 4096 max 4096 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 9728 ave 9728 max 9728 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 524288 ave 524288 max 524288 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:35 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.16 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.16 new file mode 100644 index 0000000000..4bd0c3d4f3 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.16 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 2 by 2 by 4 MPI processor grid + 4096 atoms + Time spent = 0.000400543 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.501 | 3.501 | 3.501 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7475646 0 0.50188608 10.44368 + 10 1.5000016 -1.7475671 0 0.50188602 10.44369 + 20 1.4999827 -1.7475388 0 0.50188592 10.443564 + 30 1.4999016 -1.7474173 0 0.5018858 10.443023 + 40 1.4997356 -1.7471685 0 0.50188572 10.441917 + 50 1.4995414 -1.7468771 0 0.5018858 10.440623 + 60 1.4995587 -1.7469027 0 0.50188622 10.440739 + 70 1.5003837 -1.7481389 0 0.50188727 10.446238 + 80 1.5032684 -1.7524625 0 0.50188958 10.465466 + 90 1.5107749 -1.763714 0 0.50189507 10.515502 + 100 1.52919 -1.791306 0 0.50191895 10.638261 +Loop time of 4.23774 on 16 procs for 100 steps with 4096 atoms + +Performance: 10194.102 tau/day, 23.597 timesteps/s +99.6% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00038028 | 0.00040729 | 0.00046206 | 0.0 | 0.01 +Kspace | 4.2206 | 4.2211 | 4.2216 | 0.0 | 99.61 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.011439 | 0.012491 | 0.013172 | 0.4 | 0.29 +Output | 0.00042915 | 0.000489 | 0.00061274 | 0.0 | 0.01 +Modify | 0.00093102 | 0.00099151 | 0.0010982 | 0.0 | 0.02 +Other | | 0.002255 | | | 0.05 + +Nlocal: 256 ave 256 max 256 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Nghost: 2816 ave 2816 max 2816 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Neighs: 32768 ave 32768 max 32768 min +Histogram: 16 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:06 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.2 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.2 new file mode 100644 index 0000000000..50dcc99393 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.2 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 1 by 1 by 2 MPI processor grid + 4096 atoms + Time spent = 0.0003407 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.574 | 4.574 | 4.574 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7475646 0 0.50188608 10.44368 + 10 1.5000016 -1.7475671 0 0.50188602 10.44369 + 20 1.4999827 -1.7475388 0 0.50188592 10.443564 + 30 1.4999016 -1.7474173 0 0.5018858 10.443023 + 40 1.4997356 -1.7471685 0 0.50188572 10.441917 + 50 1.4995414 -1.7468771 0 0.5018858 10.440623 + 60 1.4995587 -1.7469027 0 0.50188622 10.440739 + 70 1.5003837 -1.7481389 0 0.50188727 10.446238 + 80 1.5032684 -1.7524625 0 0.50188958 10.465466 + 90 1.5107749 -1.763714 0 0.50189507 10.515502 + 100 1.52919 -1.791306 0 0.50191895 10.638261 +Loop time of 17.9401 on 2 procs for 100 steps with 4096 atoms + +Performance: 2408.014 tau/day, 5.574 timesteps/s +99.9% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0010042 | 0.0010235 | 0.0010428 | 0.1 | 0.01 +Kspace | 17.912 | 17.912 | 17.912 | 0.0 | 99.84 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.018252 | 0.018528 | 0.018804 | 0.2 | 0.10 +Output | 0.00034094 | 0.00035989 | 0.00037885 | 0.0 | 0.00 +Modify | 0.0055602 | 0.0056567 | 0.0057533 | 0.1 | 0.03 +Other | | 0.002716 | | | 0.02 + +Nlocal: 2048 ave 2048 max 2048 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 7168 ave 7168 max 7168 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 262144 ave 262144 max 262144 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:19 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.4 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.4 new file mode 100644 index 0000000000..27fdfcedcb --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.4 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 1 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000270367 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.008 | 4.008 | 4.008 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7475646 0 0.50188608 10.44368 + 10 1.5000016 -1.7475671 0 0.50188602 10.44369 + 20 1.4999827 -1.7475388 0 0.50188592 10.443564 + 30 1.4999016 -1.7474173 0 0.5018858 10.443023 + 40 1.4997356 -1.7471685 0 0.50188572 10.441917 + 50 1.4995414 -1.7468771 0 0.5018858 10.440623 + 60 1.4995587 -1.7469027 0 0.50188622 10.440739 + 70 1.5003837 -1.7481389 0 0.50188727 10.446238 + 80 1.5032684 -1.7524625 0 0.50188958 10.465466 + 90 1.5107749 -1.763714 0 0.50189507 10.515502 + 100 1.52919 -1.791306 0 0.50191895 10.638261 +Loop time of 10.0781 on 4 procs for 100 steps with 4096 atoms + +Performance: 4286.533 tau/day, 9.923 timesteps/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00071096 | 0.00073177 | 0.00075269 | 0.0 | 0.01 +Kspace | 10.056 | 10.057 | 10.057 | 0.0 | 99.79 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.01492 | 0.015036 | 0.015207 | 0.1 | 0.15 +Output | 0.00036311 | 0.00039428 | 0.00046515 | 0.0 | 0.00 +Modify | 0.002944 | 0.0030704 | 0.0033708 | 0.3 | 0.03 +Other | | 0.002214 | | | 0.02 + +Nlocal: 1024 ave 1024 max 1024 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 5120 ave 5120 max 5120 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 131072 ave 131072 max 131072 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:11 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.8 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.8 new file mode 100644 index 0000000000..02a5528c59 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.fmm.8 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 2 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000236988 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.508 | 3.508 | 3.508 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7475646 0 0.50188608 10.44368 + 10 1.5000016 -1.7475671 0 0.50188602 10.44369 + 20 1.4999827 -1.7475388 0 0.50188592 10.443564 + 30 1.4999016 -1.7474173 0 0.5018858 10.443023 + 40 1.4997356 -1.7471685 0 0.50188572 10.441917 + 50 1.4995414 -1.7468771 0 0.5018858 10.440623 + 60 1.4995587 -1.7469027 0 0.50188622 10.440739 + 70 1.5003837 -1.7481389 0 0.50188727 10.446238 + 80 1.5032684 -1.7524625 0 0.50188958 10.465466 + 90 1.5107749 -1.763714 0 0.50189507 10.515502 + 100 1.52919 -1.791306 0 0.50191895 10.638261 +Loop time of 5.96037 on 8 procs for 100 steps with 4096 atoms + +Performance: 7247.876 tau/day, 16.777 timesteps/s +99.8% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00049591 | 0.0005368 | 0.00056005 | 0.0 | 0.01 +Kspace | 5.94 | 5.941 | 5.9419 | 0.0 | 99.68 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.013702 | 0.014631 | 0.015768 | 0.6 | 0.25 +Output | 0.00044751 | 0.00048846 | 0.00058961 | 0.0 | 0.01 +Modify | 0.0016675 | 0.0017205 | 0.0017893 | 0.1 | 0.03 +Other | | 0.001971 | | | 0.03 + +Nlocal: 512 ave 512 max 512 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Nghost: 3584 ave 3584 max 3584 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Neighs: 65536 ave 65536 max 65536 min +Histogram: 8 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:07 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.1 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.1 new file mode 100644 index 0000000000..1876a0e52b --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.1 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 1 by 1 by 1 MPI processor grid + 4096 atoms + Time spent = 0.00049448 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.813 | 5.813 | 5.813 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7477245 0 0.50172614 10.443537 + 10 1.5000176 -1.7475898 0 0.50188725 10.443798 + 20 1.5000161 -1.7475262 0 0.50194874 10.443843 + 30 1.4999486 -1.7474019 0 0.50197176 10.443413 + 40 1.4997889 -1.7471525 0 0.50198161 10.442357 + 50 1.4995945 -1.7468614 0 0.50198122 10.441061 + 60 1.499609 -1.7468813 0 0.50198309 10.44116 + 70 1.5004314 -1.7481179 0 0.50197962 10.446638 + 80 1.5033149 -1.7524495 0 0.50197233 10.46585 + 90 1.5108219 -1.7637095 0 0.50197005 10.515883 + 100 1.529239 -1.7913105 0 0.501988 10.638649 +Loop time of 18.1113 on 1 procs for 100 steps with 4096 atoms + +Performance: 2385.257 tau/day, 5.521 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0014985 | 0.0014985 | 0.0014985 | 0.0 | 0.01 +Kspace | 18.079 | 18.079 | 18.079 | 0.0 | 99.82 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.014229 | 0.014229 | 0.014229 | 0.0 | 0.08 +Output | 0.0004642 | 0.0004642 | 0.0004642 | 0.0 | 0.00 +Modify | 0.011227 | 0.011227 | 0.011227 | 0.0 | 0.06 +Other | | 0.004455 | | | 0.02 + +Nlocal: 4096 ave 4096 max 4096 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 9728 ave 9728 max 9728 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 524288 ave 524288 max 524288 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:21 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.16 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.16 new file mode 100644 index 0000000000..6e6e8f6e94 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.16 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 2 by 2 by 4 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 2 by 2 by 4 MPI processor grid + 4096 atoms + Time spent = 0.000361443 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.501 | 3.501 | 3.501 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7477245 0 0.50172614 10.443537 + 10 1.5000176 -1.7475898 0 0.50188725 10.443798 + 20 1.5000161 -1.7475262 0 0.50194874 10.443843 + 30 1.4999486 -1.7474019 0 0.50197176 10.443413 + 40 1.4997889 -1.7471525 0 0.50198161 10.442357 + 50 1.4995945 -1.7468614 0 0.50198122 10.441061 + 60 1.499609 -1.7468813 0 0.50198309 10.44116 + 70 1.5004314 -1.7481179 0 0.50197962 10.446638 + 80 1.5033149 -1.7524495 0 0.50197233 10.46585 + 90 1.5108219 -1.7637095 0 0.50197005 10.515883 + 100 1.529239 -1.7913105 0 0.501988 10.638649 +Loop time of 1.56685 on 16 procs for 100 steps with 4096 atoms + +Performance: 27571.239 tau/day, 63.822 timesteps/s +99.8% CPU use with 16 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00036407 | 0.00040755 | 0.00047517 | 0.0 | 0.03 +Kspace | 1.5521 | 1.553 | 1.5536 | 0.0 | 99.12 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.009537 | 0.010175 | 0.011894 | 0.6 | 0.65 +Output | 0.000319 | 0.00039139 | 0.00052881 | 0.0 | 0.02 +Modify | 0.00086999 | 0.00097834 | 0.0010362 | 0.0 | 0.06 +Other | | 0.001859 | | | 0.12 + +Nlocal: 256 ave 256 max 256 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Nghost: 2816 ave 2816 max 2816 min +Histogram: 16 0 0 0 0 0 0 0 0 0 +Neighs: 32768 ave 32768 max 32768 min +Histogram: 16 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.2 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.2 new file mode 100644 index 0000000000..72a53c48ff --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.2 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 1 by 1 by 2 MPI processor grid + 4096 atoms + Time spent = 0.0003438 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.574 | 4.574 | 4.574 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7477245 0 0.50172614 10.443537 + 10 1.5000176 -1.7475898 0 0.50188725 10.443798 + 20 1.5000161 -1.7475262 0 0.50194874 10.443843 + 30 1.4999486 -1.7474019 0 0.50197176 10.443413 + 40 1.4997889 -1.7471525 0 0.50198161 10.442357 + 50 1.4995945 -1.7468614 0 0.50198122 10.441061 + 60 1.499609 -1.7468813 0 0.50198309 10.44116 + 70 1.5004314 -1.7481179 0 0.50197962 10.446638 + 80 1.5033149 -1.7524495 0 0.50197233 10.46585 + 90 1.5108219 -1.7637095 0 0.50197005 10.515883 + 100 1.529239 -1.7913105 0 0.501988 10.638649 +Loop time of 9.38943 on 2 procs for 100 steps with 4096 atoms + +Performance: 4600.920 tau/day, 10.650 timesteps/s +99.9% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0010064 | 0.0010065 | 0.0010066 | 0.0 | 0.01 +Kspace | 9.3602 | 9.3603 | 9.3604 | 0.0 | 99.69 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.019444 | 0.01968 | 0.019916 | 0.2 | 0.21 +Output | 0.00033355 | 0.00035357 | 0.0003736 | 0.0 | 0.00 +Modify | 0.0055819 | 0.0056176 | 0.0056534 | 0.0 | 0.06 +Other | | 0.002495 | | | 0.03 + +Nlocal: 2048 ave 2048 max 2048 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 7168 ave 7168 max 7168 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 262144 ave 262144 max 262144 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:11 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.4 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.4 new file mode 100644 index 0000000000..bf4494df8b --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.4 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 1 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000260592 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.008 | 4.008 | 4.008 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7477245 0 0.50172614 10.443537 + 10 1.5000176 -1.7475898 0 0.50188725 10.443798 + 20 1.5000161 -1.7475262 0 0.50194874 10.443843 + 30 1.4999486 -1.7474019 0 0.50197176 10.443413 + 40 1.4997889 -1.7471525 0 0.50198161 10.442357 + 50 1.4995945 -1.7468614 0 0.50198122 10.441061 + 60 1.499609 -1.7468813 0 0.50198309 10.44116 + 70 1.5004314 -1.7481179 0 0.50197962 10.446638 + 80 1.5033149 -1.7524495 0 0.50197233 10.46585 + 90 1.5108219 -1.7637095 0 0.50197005 10.515883 + 100 1.529239 -1.7913105 0 0.501988 10.638649 +Loop time of 5.09997 on 4 procs for 100 steps with 4096 atoms + +Performance: 8470.643 tau/day, 19.608 timesteps/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00069928 | 0.00071001 | 0.00073647 | 0.0 | 0.01 +Kspace | 5.0795 | 5.0796 | 5.0797 | 0.0 | 99.60 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.014101 | 0.014216 | 0.014331 | 0.1 | 0.28 +Output | 0.00030541 | 0.00033581 | 0.00039625 | 0.0 | 0.01 +Modify | 0.0030217 | 0.0030621 | 0.0030868 | 0.0 | 0.06 +Other | | 0.002036 | | | 0.04 + +Nlocal: 1024 ave 1024 max 1024 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 5120 ave 5120 max 5120 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 131072 ave 131072 max 131072 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:05 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.8 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.8 new file mode 100644 index 0000000000..b5e889dfc1 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p2nfft.8 @@ -0,0 +1,102 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + orthogonal box = (0 0 0) to (1 1 1) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 8 atoms + +replicate 8 8 8 + orthogonal box = (0 0 0) to (8 8 8) + 2 by 2 by 2 MPI processor grid + 4096 atoms + Time spent = 0.000324488 secs + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 8 8 8 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.508 | 3.508 | 3.508 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -1.7477245 0 0.50172614 10.443537 + 10 1.5000176 -1.7475898 0 0.50188725 10.443798 + 20 1.5000161 -1.7475262 0 0.50194874 10.443843 + 30 1.4999486 -1.7474019 0 0.50197176 10.443413 + 40 1.4997889 -1.7471525 0 0.50198161 10.442357 + 50 1.4995945 -1.7468614 0 0.50198122 10.441061 + 60 1.499609 -1.7468813 0 0.50198309 10.44116 + 70 1.5004314 -1.7481179 0 0.50197962 10.446638 + 80 1.5033149 -1.7524495 0 0.50197233 10.46585 + 90 1.5108219 -1.7637095 0 0.50197005 10.515883 + 100 1.529239 -1.7913105 0 0.501988 10.638649 +Loop time of 2.88506 on 8 procs for 100 steps with 4096 atoms + +Performance: 14973.700 tau/day, 34.661 timesteps/s +99.6% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.000489 | 0.00051507 | 0.00052857 | 0.0 | 0.02 +Kspace | 2.8657 | 2.866 | 2.8664 | 0.0 | 99.34 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.014354 | 0.014851 | 0.015097 | 0.2 | 0.51 +Output | 0.00037169 | 0.00042769 | 0.00054169 | 0.0 | 0.01 +Modify | 0.0015774 | 0.0016578 | 0.0018044 | 0.2 | 0.06 +Other | | 0.001645 | | | 0.06 + +Nlocal: 512 ave 512 max 512 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Nghost: 3584 ave 3584 max 3584 min +Histogram: 8 0 0 0 0 0 0 0 0 0 +Neighs: 65536 ave 65536 max 65536 min +Histogram: 8 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 524288 +Ave neighs/atom = 128 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:03 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.g++.p3m.2 b/examples/USER/scafacos/log.08Aug18.scafacos.g++.p3m.2 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.1 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.1 new file mode 100644 index 0000000000..b0a47e4f98 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.1 @@ -0,0 +1,105 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos direct 0.001 + +timestep 0.005 +thermo 1 +run 20 +Setting up ScaFaCoS with solver direct ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 10.3 | 10.3 | 10.3 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.0015678854 + 1 18.780041 -10.770002 0 17.371889 0.016718957 + 2 65.289192 -11.084705 0 86.751149 0.060353634 + 3 121.92987 -7.0625759 0 175.64933 0.11404974 + 4 185.78164 -5.8777512 0 272.51604 0.17462195 + 5 286.36222 -4.382053 0 424.73173 0.26918926 + 6 481.42206 -4.3095567 0 717.1014 0.45274088 + 7 488.59167 -3.8685194 0 728.2861 0.45956866 + 8 497.85287 -3.0417966 0 742.99073 0.46838116 + 9 499.61615 -3.419003 0 745.2558 0.46983345 + 10 502.63684 -2.8360961 0 750.36521 0.47280809 + 11 504.4846 -2.7628105 0 753.20736 0.47462793 + 12 506.54485 -2.8460356 0 756.21142 0.47651441 + 13 508.27211 -2.730935 0 758.91482 0.47813752 + 14 510.57045 -2.6094877 0 762.48033 0.48031431 + 15 513.14798 -2.7150827 0 766.23717 0.48275229 + 16 515.78124 -2.3961811 0 770.50201 0.48526333 + 17 515.70265 -2.2982683 0 770.48215 0.48526617 + 18 515.7081 -2.1515983 0 770.63699 0.48530393 + 19 515.74906 -2.0581436 0 770.79182 0.48530977 + 20 515.70883 -1.8922577 0 770.89742 0.48527105 +Loop time of 0.465839 on 1 procs for 20 steps with 1000 atoms + +Performance: 18547.165 tau/day, 42.933 timesteps/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00021982 | 0.00021982 | 0.00021982 | 0.0 | 0.05 +Kspace | 0.3218 | 0.3218 | 0.3218 | 0.0 | 69.08 +Neigh | 0.14249 | 0.14249 | 0.14249 | 0.0 | 30.59 +Comm | 0.00014853 | 0.00014853 | 0.00014853 | 0.0 | 0.03 +Output | 0.00026131 | 0.00026131 | 0.00026131 | 0.0 | 0.06 +Modify | 0.00055146 | 0.00055146 | 0.00055146 | 0.0 | 0.12 +Other | | 0.0003715 | | | 0.08 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 247817 ave 247817 max 247817 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.2 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.2 new file mode 100644 index 0000000000..1ffab0ca6a --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.2 @@ -0,0 +1,105 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos direct 0.001 + +timestep 0.005 +thermo 1 +run 20 +Setting up ScaFaCoS with solver direct ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.48 | 6.861 | 7.243 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.0015678854 + 1 18.780041 -10.770002 0 17.371889 0.016718957 + 2 65.289192 -11.084705 0 86.751149 0.060353634 + 3 121.92987 -7.0625759 0 175.64933 0.11404974 + 4 185.78164 -5.8777512 0 272.51604 0.17462195 + 5 286.36222 -4.382053 0 424.73173 0.26918926 + 6 481.42206 -4.3095567 0 717.1014 0.45274088 + 7 488.59167 -3.8685194 0 728.2861 0.45956866 + 8 497.85287 -3.0417966 0 742.99073 0.46838116 + 9 499.61615 -3.419003 0 745.2558 0.46983345 + 10 502.63684 -2.8360961 0 750.36521 0.47280809 + 11 504.4846 -2.7628105 0 753.20736 0.47462793 + 12 506.54485 -2.8460356 0 756.21142 0.47651441 + 13 508.27211 -2.730935 0 758.91482 0.47813752 + 14 510.57045 -2.6094877 0 762.48033 0.48031431 + 15 513.14798 -2.7150827 0 766.23717 0.48275229 + 16 515.78124 -2.3961811 0 770.50201 0.48526333 + 17 515.70265 -2.2982683 0 770.48215 0.48526617 + 18 515.7081 -2.1515983 0 770.63699 0.48530393 + 19 515.74906 -2.0581436 0 770.79182 0.48530977 + 20 515.70883 -1.8922577 0 770.89742 0.48527105 +Loop time of 0.284007 on 2 procs for 20 steps with 1000 atoms + +Performance: 30421.778 tau/day, 70.421 timesteps/s +99.1% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00022578 | 0.00022626 | 0.00022674 | 0.0 | 0.08 +Kspace | 0.18253 | 0.20503 | 0.22752 | 5.0 | 72.19 +Neigh | 0.05363 | 0.076239 | 0.098848 | 8.2 | 26.84 +Comm | 0.0014737 | 0.0016443 | 0.0018148 | 0.4 | 0.58 +Output | 0.000247 | 0.00032353 | 0.00040007 | 0.0 | 0.11 +Modify | 0.00029159 | 0.00029731 | 0.00030303 | 0.0 | 0.10 +Other | | 0.0002506 | | | 0.09 + +Nlocal: 500 ave 516 max 484 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 456.5 ave 475 max 438 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Neighs: 123908 ave 172139 max 75678 min +Histogram: 1 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.4 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.4 new file mode 100644 index 0000000000..1235c0a3cd --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.4 @@ -0,0 +1,105 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos direct 0.001 + +timestep 0.005 +thermo 1 +run 20 +Setting up ScaFaCoS with solver direct ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.837 | 5.123 | 5.6 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.0015678854 + 1 18.780041 -10.770002 0 17.371889 0.016718957 + 2 65.289192 -11.084705 0 86.751149 0.060353634 + 3 121.92987 -7.0625759 0 175.64933 0.11404974 + 4 185.78164 -5.8777512 0 272.51604 0.17462195 + 5 286.36222 -4.382053 0 424.73173 0.26918926 + 6 481.42206 -4.3095567 0 717.1014 0.45274088 + 7 488.59167 -3.8685194 0 728.2861 0.45956866 + 8 497.85287 -3.0417966 0 742.99073 0.46838116 + 9 499.61615 -3.419003 0 745.2558 0.46983345 + 10 502.63684 -2.8360961 0 750.36521 0.47280809 + 11 504.4846 -2.7628105 0 753.20736 0.47462793 + 12 506.54485 -2.8460356 0 756.21142 0.47651441 + 13 508.27211 -2.730935 0 758.91482 0.47813752 + 14 510.57045 -2.6094877 0 762.48033 0.48031431 + 15 513.14798 -2.7150827 0 766.23717 0.48275229 + 16 515.78124 -2.3961811 0 770.50201 0.48526333 + 17 515.70265 -2.2982683 0 770.48215 0.48526617 + 18 515.7081 -2.1515983 0 770.63699 0.48530393 + 19 515.74906 -2.0581436 0 770.79182 0.48530977 + 20 515.70883 -1.8922577 0 770.89742 0.48527105 +Loop time of 0.161335 on 4 procs for 20 steps with 1000 atoms + +Performance: 53553.228 tau/day, 123.966 timesteps/s +99.5% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00022721 | 0.00023353 | 0.000247 | 0.0 | 0.14 +Kspace | 0.10295 | 0.11808 | 0.13377 | 3.5 | 73.19 +Neigh | 0.023849 | 0.039717 | 0.055031 | 6.1 | 24.62 +Comm | 0.0023148 | 0.0025774 | 0.0028391 | 0.4 | 1.60 +Output | 0.00029063 | 0.00038403 | 0.00050664 | 0.0 | 0.24 +Modify | 0.00015664 | 0.00015944 | 0.00016165 | 0.0 | 0.10 +Other | | 0.0001805 | | | 0.11 + +Nlocal: 250 ave 259 max 238 min +Histogram: 1 0 0 1 0 0 0 0 0 2 +Nghost: 672.25 ave 683 max 663 min +Histogram: 2 0 0 0 0 0 0 0 1 1 +Neighs: 61954.2 ave 97157 max 25016 min +Histogram: 1 0 0 1 0 0 1 0 0 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.8 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.8 new file mode 100644 index 0000000000..e72ade73b5 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.direct.8 @@ -0,0 +1,105 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos direct 0.001 + +timestep 0.005 +thermo 1 +run 20 +Setting up ScaFaCoS with solver direct ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.164 | 4.26 | 4.546 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.0015678854 + 1 18.780041 -10.770002 0 17.371889 0.016718957 + 2 65.289192 -11.084705 0 86.751149 0.060353634 + 3 121.92987 -7.0625759 0 175.64933 0.11404974 + 4 185.78164 -5.8777512 0 272.51604 0.17462195 + 5 286.36222 -4.382053 0 424.73173 0.26918926 + 6 481.42206 -4.3095567 0 717.1014 0.45274088 + 7 488.59167 -3.8685194 0 728.2861 0.45956866 + 8 497.85287 -3.0417966 0 742.99073 0.46838116 + 9 499.61615 -3.419003 0 745.2558 0.46983345 + 10 502.63684 -2.8360961 0 750.36521 0.47280809 + 11 504.4846 -2.7628105 0 753.20736 0.47462793 + 12 506.54485 -2.8460356 0 756.21142 0.47651441 + 13 508.27211 -2.730935 0 758.91482 0.47813752 + 14 510.57045 -2.6094877 0 762.48033 0.48031431 + 15 513.14798 -2.7150827 0 766.23717 0.48275229 + 16 515.78124 -2.3961811 0 770.50201 0.48526333 + 17 515.70265 -2.2982683 0 770.48215 0.48526617 + 18 515.7081 -2.1515983 0 770.63699 0.48530393 + 19 515.74906 -2.0581436 0 770.79182 0.48530977 + 20 515.70883 -1.8922577 0 770.89742 0.48527105 +Loop time of 0.0883947 on 8 procs for 20 steps with 1000 atoms + +Performance: 97743.448 tau/day, 226.258 timesteps/s +99.2% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0002284 | 0.00024167 | 0.00029922 | 0.0 | 0.27 +Kspace | 0.055725 | 0.063153 | 0.071883 | 2.4 | 71.44 +Neigh | 0.012251 | 0.021348 | 0.029026 | 4.3 | 24.15 +Comm | 0.0025573 | 0.0029825 | 0.0034359 | 0.5 | 3.37 +Output | 0.00034451 | 0.00044149 | 0.00057721 | 0.0 | 0.50 +Modify | 7.8917e-05 | 8.437e-05 | 8.9407e-05 | 0.0 | 0.10 +Other | | 0.0001439 | | | 0.16 + +Nlocal: 125 ave 133 max 113 min +Histogram: 2 0 0 0 0 1 1 0 2 2 +Nghost: 773.625 ave 788 max 764 min +Histogram: 1 1 2 1 1 0 0 0 1 1 +Neighs: 30977.1 ave 50690 max 10447 min +Histogram: 1 1 1 0 1 1 0 0 2 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.1 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.1 new file mode 100644 index 0000000000..4bef247e26 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.1 @@ -0,0 +1,109 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ... + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 10.3 | 10.3 | 10.3 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417141 0 1.6235786 0.0015676581 + 1 18.780412 -10.770009 0 17.372438 0.016719188 + 2 65.294131 -11.084501 0 86.758754 0.06035827 + 3 121.92555 -7.0612033 0 175.64423 0.1140457 + 4 185.71165 -5.8781334 0 272.41077 0.17455524 + 5 286.28339 -4.3800108 0 424.61565 0.26911306 + 6 481.28097 -4.3052012 0 716.89433 0.45262045 + 7 487.26022 -3.8672741 0 726.29216 0.45830216 + 8 493.65478 -3.0242687 0 736.71742 0.46443761 + 9 495.66203 -3.4336343 0 739.31592 0.46613014 + 10 498.41831 -2.8837072 0 743.99613 0.46887706 + 11 499.20944 -2.7724783 0 745.29287 0.46966875 + 12 500.97345 -2.8281484 0 747.88057 0.47126462 + 13 507.46412 -2.7752775 0 757.65971 0.47728761 + 14 525.35729 -2.5749814 0 784.67292 0.49422171 + 15 563.9578 -2.9982381 0 842.09253 0.53043696 + 16 645.47602 -2.5519203 0 964.69389 0.60730795 + 17 647.09276 -2.2568468 0 967.41166 0.60891914 + 18 647.12596 -2.2791003 0 967.43915 0.60900309 + 19 647.24862 -2.2495226 0 967.65253 0.60908339 + 20 647.51175 -2.0239179 0 968.27244 0.60932598 +Loop time of 0.797289 on 1 procs for 20 steps with 1000 atoms + +Performance: 10836.721 tau/day, 25.085 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00022364 | 0.00022364 | 0.00022364 | 0.0 | 0.03 +Kspace | 0.6524 | 0.6524 | 0.6524 | 0.0 | 81.83 +Neigh | 0.14312 | 0.14312 | 0.14312 | 0.0 | 17.95 +Comm | 0.00020337 | 0.00020337 | 0.00020337 | 0.0 | 0.03 +Output | 0.00036621 | 0.00036621 | 0.00036621 | 0.0 | 0.05 +Modify | 0.00058126 | 0.00058126 | 0.00058126 | 0.0 | 0.07 +Other | | 0.0003934 | | | 0.05 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 244342 ave 244342 max 244342 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 244342 +Ave neighs/atom = 244.342 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.2 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.2 new file mode 100644 index 0000000000..e8e614004d --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.2 @@ -0,0 +1,109 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ... + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.48 | 6.861 | 7.243 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417141 0 1.6235786 0.0015676581 + 1 18.780412 -10.770009 0 17.372438 0.016719188 + 2 65.294131 -11.084501 0 86.758754 0.06035827 + 3 121.92555 -7.0612033 0 175.64423 0.1140457 + 4 185.71165 -5.8781334 0 272.41077 0.17455524 + 5 286.28339 -4.3800108 0 424.61565 0.26911306 + 6 481.28097 -4.3052012 0 716.89433 0.45262045 + 7 487.26022 -3.8672741 0 726.29216 0.45830216 + 8 493.65478 -3.0242687 0 736.71742 0.46443761 + 9 495.66203 -3.4336343 0 739.31592 0.46613014 + 10 498.41831 -2.8837072 0 743.99613 0.46887706 + 11 499.20944 -2.7724783 0 745.29287 0.46966875 + 12 500.97345 -2.8281484 0 747.88057 0.47126462 + 13 507.46412 -2.7752775 0 757.65971 0.47728761 + 14 525.35729 -2.5749814 0 784.67292 0.49422171 + 15 563.9578 -2.9982381 0 842.09253 0.53043696 + 16 645.47602 -2.5519203 0 964.69389 0.60730795 + 17 647.09276 -2.2568468 0 967.41166 0.60891914 + 18 647.12596 -2.2791003 0 967.43915 0.60900309 + 19 647.24862 -2.2495226 0 967.65253 0.60908339 + 20 647.51175 -2.0239179 0 968.27244 0.60932598 +Loop time of 0.701186 on 2 procs for 20 steps with 1000 atoms + +Performance: 12321.981 tau/day, 28.523 timesteps/s +99.7% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00022388 | 0.00022912 | 0.00023437 | 0.0 | 0.03 +Kspace | 0.60189 | 0.62405 | 0.64621 | 2.8 | 89.00 +Neigh | 0.051681 | 0.073973 | 0.096265 | 8.2 | 10.55 +Comm | 0.0016983 | 0.0018919 | 0.0020854 | 0.4 | 0.27 +Output | 0.00034356 | 0.00044572 | 0.00054789 | 0.0 | 0.06 +Modify | 0.00031281 | 0.0003171 | 0.00032139 | 0.0 | 0.05 +Other | | 0.0002786 | | | 0.04 + +Nlocal: 500 ave 509 max 491 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 455.5 ave 467 max 444 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Neighs: 122171 ave 171834 max 72508 min +Histogram: 1 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 244342 +Ave neighs/atom = 244.342 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.4 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.4 new file mode 100644 index 0000000000..e3f5bf44c9 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.4 @@ -0,0 +1,109 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ... + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.837 | 5.123 | 5.6 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417141 0 1.6235786 0.0015676581 + 1 18.780412 -10.770009 0 17.372438 0.016719188 + 2 65.294131 -11.084501 0 86.758754 0.06035827 + 3 121.92555 -7.0612033 0 175.64423 0.1140457 + 4 185.71165 -5.8781334 0 272.41077 0.17455524 + 5 286.28339 -4.3800108 0 424.61565 0.26911306 + 6 481.28097 -4.3052012 0 716.89433 0.45262045 + 7 487.26022 -3.8672741 0 726.29216 0.45830216 + 8 493.65478 -3.0242687 0 736.71742 0.46443761 + 9 495.66203 -3.4336343 0 739.31592 0.46613014 + 10 498.41831 -2.8837072 0 743.99613 0.46887706 + 11 499.20944 -2.7724783 0 745.29287 0.46966875 + 12 500.97345 -2.8281484 0 747.88057 0.47126462 + 13 507.46412 -2.7752775 0 757.65971 0.47728761 + 14 525.35729 -2.5749814 0 784.67292 0.49422171 + 15 563.9578 -2.9982381 0 842.09253 0.53043696 + 16 645.47602 -2.5519203 0 964.69389 0.60730795 + 17 647.09276 -2.2568468 0 967.41166 0.60891914 + 18 647.12596 -2.2791003 0 967.43915 0.60900309 + 19 647.24862 -2.2495226 0 967.65253 0.60908339 + 20 647.51175 -2.0239179 0 968.27244 0.60932598 +Loop time of 0.666895 on 4 procs for 20 steps with 1000 atoms + +Performance: 12955.555 tau/day, 29.990 timesteps/s +99.5% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0002284 | 0.00024879 | 0.00025725 | 0.0 | 0.04 +Kspace | 0.6085 | 0.62278 | 0.6386 | 1.6 | 93.38 +Neigh | 0.023998 | 0.040044 | 0.054552 | 6.2 | 6.00 +Comm | 0.0025489 | 0.0028656 | 0.0031898 | 0.4 | 0.43 +Output | 0.0004077 | 0.00053912 | 0.00071406 | 0.0 | 0.08 +Modify | 0.00017953 | 0.00018525 | 0.00020218 | 0.0 | 0.03 +Other | | 0.0002366 | | | 0.04 + +Nlocal: 250 ave 259 max 240 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 668.75 ave 679 max 657 min +Histogram: 1 0 0 0 0 1 1 0 0 1 +Neighs: 61085.5 ave 95363 max 24964 min +Histogram: 1 0 0 1 0 0 0 1 0 1 + +Total # of neighbors = 244342 +Ave neighs/atom = 244.342 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.8 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.8 new file mode 100644 index 0000000000..22d1140813 --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.fmm.8 @@ -0,0 +1,109 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos fmm 0.001 +kspace_modify scafacos tolerance energy_rel +kspace_modify scafacos fmm_tuning 1 +ScaFaCoS setting fmm inhomogen tuning ... + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver fmm ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.164 | 4.26 | 4.546 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417141 0 1.6235786 0.0015676581 + 1 18.780412 -10.770009 0 17.372438 0.016719188 + 2 65.294131 -11.084501 0 86.758754 0.06035827 + 3 121.92555 -7.0612033 0 175.64423 0.1140457 + 4 185.71165 -5.8781334 0 272.41077 0.17455524 + 5 286.28339 -4.3800108 0 424.61565 0.26911306 + 6 481.28097 -4.3052012 0 716.89433 0.45262045 + 7 487.26022 -3.8672741 0 726.29216 0.45830216 + 8 493.65478 -3.0242687 0 736.71742 0.46443761 + 9 495.66203 -3.4336343 0 739.31592 0.46613014 + 10 498.41831 -2.8837072 0 743.99613 0.46887706 + 11 499.20944 -2.7724783 0 745.29287 0.46966875 + 12 500.97345 -2.8281484 0 747.88057 0.47126462 + 13 507.46412 -2.7752775 0 757.65971 0.47728761 + 14 525.35729 -2.5749814 0 784.67292 0.49422171 + 15 563.9578 -2.9982381 0 842.09253 0.53043696 + 16 645.47602 -2.5519203 0 964.69389 0.60730795 + 17 647.09276 -2.2568468 0 967.41166 0.60891914 + 18 647.12596 -2.2791003 0 967.43915 0.60900309 + 19 647.24862 -2.2495226 0 967.65253 0.60908339 + 20 647.51175 -2.0239179 0 968.27244 0.60932598 +Loop time of 0.569395 on 8 procs for 20 steps with 1000 atoms + +Performance: 15174.000 tau/day, 35.125 timesteps/s +99.3% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00021982 | 0.00023353 | 0.0002408 | 0.0 | 0.04 +Kspace | 0.53679 | 0.54466 | 0.55292 | 0.8 | 95.66 +Neigh | 0.011844 | 0.02033 | 0.028357 | 4.2 | 3.57 +Comm | 0.0028894 | 0.0031579 | 0.0034704 | 0.4 | 0.55 +Output | 0.0005579 | 0.00067073 | 0.0008719 | 0.0 | 0.12 +Modify | 0.0001018 | 0.00011405 | 0.00012612 | 0.0 | 0.02 +Other | | 0.0002268 | | | 0.04 + +Nlocal: 125 ave 137 max 111 min +Histogram: 1 1 0 0 0 2 2 1 0 1 +Nghost: 768.875 ave 788 max 761 min +Histogram: 4 0 2 0 0 0 1 0 0 1 +Neighs: 30542.8 ave 48077 max 10011 min +Histogram: 1 1 1 0 1 1 0 0 0 3 + +Total # of neighbors = 244342 +Ave neighs/atom = 244.342 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.1 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.1 new file mode 100644 index 0000000000..f8a85c6c6b --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.1 @@ -0,0 +1,107 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance potential + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 10.3 | 10.3 | 10.3 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.0015678854 + 1 18.780041 -10.770002 0 17.371889 0.016718957 + 2 65.289192 -11.084705 0 86.751149 0.060353634 + 3 121.92987 -7.0625759 0 175.64933 0.11404974 + 4 185.78164 -5.8777511 0 272.51603 0.17462194 + 5 286.36221 -4.3820531 0 424.73172 0.26918925 + 6 481.42203 -4.3095567 0 717.10136 0.45274086 + 7 488.59165 -3.8685193 0 728.28607 0.45956865 + 8 497.85288 -3.0417938 0 742.99075 0.46838117 + 9 499.61619 -3.4190063 0 745.25585 0.46983349 + 10 502.63691 -2.8360951 0 750.36531 0.47280815 + 11 504.4847 -2.7628089 0 753.20751 0.47462802 + 12 506.54494 -2.8460319 0 756.21157 0.4765145 + 13 508.2722 -2.7309328 0 758.91497 0.47813761 + 14 510.57053 -2.6094792 0 762.48045 0.48031438 + 15 513.14804 -2.7150819 0 766.23726 0.48275234 + 16 515.78127 -2.3961749 0 770.50206 0.48526336 + 17 515.70267 -2.2982581 0 770.48219 0.48526619 + 18 515.70813 -2.1516075 0 770.63702 0.48530395 + 19 515.74908 -2.0581483 0 770.79185 0.48530979 + 20 515.70881 -1.892235 0 770.89742 0.48527104 +Loop time of 1.06008 on 1 procs for 20 steps with 1000 atoms + +Performance: 8150.306 tau/day, 18.866 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.00022078 | 0.00022078 | 0.00022078 | 0.0 | 0.02 +Kspace | 0.91611 | 0.91611 | 0.91611 | 0.0 | 86.42 +Neigh | 0.14232 | 0.14232 | 0.14232 | 0.0 | 13.43 +Comm | 0.00015092 | 0.00015092 | 0.00015092 | 0.0 | 0.01 +Output | 0.00033736 | 0.00033736 | 0.00033736 | 0.0 | 0.03 +Modify | 0.00056243 | 0.00056243 | 0.00056243 | 0.0 | 0.05 +Other | | 0.0003803 | | | 0.04 + +Nlocal: 1000 ave 1000 max 1000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 247817 ave 247817 max 247817 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:01 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.2 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.2 new file mode 100644 index 0000000000..bd7e7fee1f --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.2 @@ -0,0 +1,107 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance potential + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.48 | 6.861 | 7.243 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.0015678854 + 1 18.780041 -10.770002 0 17.371889 0.016718957 + 2 65.289192 -11.084705 0 86.751149 0.060353634 + 3 121.92987 -7.0625759 0 175.64933 0.11404974 + 4 185.78164 -5.8777511 0 272.51603 0.17462194 + 5 286.36221 -4.3820531 0 424.73172 0.26918925 + 6 481.42203 -4.3095567 0 717.10136 0.45274086 + 7 488.59165 -3.8685193 0 728.28607 0.45956865 + 8 497.85288 -3.0417938 0 742.99075 0.46838117 + 9 499.61619 -3.4190063 0 745.25585 0.46983349 + 10 502.63691 -2.8360951 0 750.36531 0.47280815 + 11 504.4847 -2.7628089 0 753.20751 0.47462802 + 12 506.54494 -2.8460319 0 756.21157 0.4765145 + 13 508.2722 -2.7309328 0 758.91497 0.47813761 + 14 510.57053 -2.6094792 0 762.48045 0.48031438 + 15 513.14804 -2.7150819 0 766.23726 0.48275234 + 16 515.78127 -2.3961749 0 770.50206 0.48526336 + 17 515.70267 -2.2982581 0 770.48219 0.48526619 + 18 515.70813 -2.1516075 0 770.63702 0.48530395 + 19 515.74908 -2.0581483 0 770.79185 0.48530979 + 20 515.70881 -1.892235 0 770.89742 0.48527104 +Loop time of 0.701267 on 2 procs for 20 steps with 1000 atoms + +Performance: 12320.557 tau/day, 28.520 timesteps/s +99.6% CPU use with 2 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0002265 | 0.00022769 | 0.00022888 | 0.0 | 0.03 +Kspace | 0.60195 | 0.62374 | 0.64554 | 2.8 | 88.95 +Neigh | 0.05268 | 0.074592 | 0.096504 | 8.0 | 10.64 +Comm | 0.0015199 | 0.0016934 | 0.0018668 | 0.4 | 0.24 +Output | 0.00031519 | 0.00041544 | 0.0005157 | 0.0 | 0.06 +Modify | 0.00029492 | 0.00030565 | 0.00031638 | 0.0 | 0.04 +Other | | 0.000288 | | | 0.04 + +Nlocal: 500 ave 516 max 484 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 456.5 ave 475 max 438 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Neighs: 123908 ave 172139 max 75678 min +Histogram: 1 0 0 0 0 0 0 0 0 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.4 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.4 new file mode 100644 index 0000000000..8a7e591f9a --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.4 @@ -0,0 +1,107 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance potential + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.837 | 5.123 | 5.6 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.0015678854 + 1 18.780041 -10.770002 0 17.371889 0.016718957 + 2 65.289192 -11.084705 0 86.751149 0.060353634 + 3 121.92987 -7.0625759 0 175.64933 0.11404974 + 4 185.78164 -5.8777511 0 272.51603 0.17462194 + 5 286.36221 -4.3820531 0 424.73172 0.26918925 + 6 481.42203 -4.3095567 0 717.10136 0.45274086 + 7 488.59165 -3.8685193 0 728.28607 0.45956865 + 8 497.85288 -3.0417938 0 742.99075 0.46838117 + 9 499.61619 -3.4190063 0 745.25585 0.46983349 + 10 502.63691 -2.8360951 0 750.36531 0.47280815 + 11 504.4847 -2.7628089 0 753.20751 0.47462802 + 12 506.54494 -2.8460319 0 756.21157 0.4765145 + 13 508.2722 -2.7309328 0 758.91497 0.47813761 + 14 510.57053 -2.6094792 0 762.48045 0.48031438 + 15 513.14804 -2.7150819 0 766.23726 0.48275234 + 16 515.78127 -2.3961749 0 770.50206 0.48526336 + 17 515.70267 -2.2982581 0 770.48219 0.48526619 + 18 515.70813 -2.1516075 0 770.63702 0.48530395 + 19 515.74908 -2.0581483 0 770.79185 0.48530979 + 20 515.70881 -1.892235 0 770.89742 0.48527104 +Loop time of 0.427495 on 4 procs for 20 steps with 1000 atoms + +Performance: 20210.785 tau/day, 46.784 timesteps/s +99.7% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0002327 | 0.00023341 | 0.00023437 | 0.0 | 0.05 +Kspace | 0.36897 | 0.38411 | 0.39988 | 1.9 | 89.85 +Neigh | 0.023831 | 0.039796 | 0.055124 | 6.1 | 9.31 +Comm | 0.0022776 | 0.0025444 | 0.0028152 | 0.4 | 0.60 +Output | 0.00033784 | 0.0004344 | 0.00057077 | 0.0 | 0.10 +Modify | 0.00016117 | 0.00016713 | 0.00017095 | 0.0 | 0.04 +Other | | 0.0002093 | | | 0.05 + +Nlocal: 250 ave 259 max 238 min +Histogram: 1 0 0 1 0 0 0 0 0 2 +Nghost: 672.25 ave 683 max 663 min +Histogram: 2 0 0 0 0 0 0 0 1 1 +Neighs: 61954.2 ave 97157 max 25016 min +Histogram: 1 0 0 1 0 0 1 0 0 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 diff --git a/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.8 b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.8 new file mode 100644 index 0000000000..13922c09ac --- /dev/null +++ b/examples/USER/scafacos/log.08Aug18.scafacos.hsph.g++.p2nfft.8 @@ -0,0 +1,107 @@ +LAMMPS (2 Aug 2018) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:87) + using 1 OpenMP thread(s) per MPI task +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.hammersley_shphere + orthogonal box = (-50.5 -50.5 -50.5) to (51.5 51.5 51.5) + 2 by 2 by 2 MPI processor grid + reading atoms ... + 1000 atoms +change_box all boundary f f f + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p2nfft 0.001 +kspace_modify scafacos tolerance potential + +timestep 0.005 +thermo 1 + +run 20 +Setting up ScaFaCoS with solver p2nfft ... +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2 + ghost atom cutoff = 2 + binsize = 1, bins = 102 102 102 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.164 | 4.26 | 4.546 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.5 -0.62417787 0 1.6235721 0.0015678854 + 1 18.780041 -10.770002 0 17.371889 0.016718957 + 2 65.289192 -11.084705 0 86.751149 0.060353634 + 3 121.92987 -7.0625759 0 175.64933 0.11404974 + 4 185.78164 -5.8777511 0 272.51603 0.17462194 + 5 286.36221 -4.3820531 0 424.73172 0.26918925 + 6 481.42203 -4.3095567 0 717.10136 0.45274086 + 7 488.59165 -3.8685193 0 728.28607 0.45956865 + 8 497.85288 -3.0417938 0 742.99075 0.46838117 + 9 499.61619 -3.4190063 0 745.25585 0.46983349 + 10 502.63691 -2.8360951 0 750.36531 0.47280815 + 11 504.4847 -2.7628089 0 753.20751 0.47462802 + 12 506.54494 -2.8460319 0 756.21157 0.4765145 + 13 508.2722 -2.7309328 0 758.91497 0.47813761 + 14 510.57053 -2.6094792 0 762.48045 0.48031438 + 15 513.14804 -2.7150819 0 766.23726 0.48275234 + 16 515.78127 -2.3961749 0 770.50206 0.48526336 + 17 515.70267 -2.2982581 0 770.48219 0.48526619 + 18 515.70813 -2.1516075 0 770.63702 0.48530395 + 19 515.74908 -2.0581483 0 770.79185 0.48530979 + 20 515.70881 -1.892235 0 770.89742 0.48527104 +Loop time of 0.242145 on 8 procs for 20 steps with 1000 atoms + +Performance: 35681.038 tau/day, 82.595 timesteps/s +99.2% CPU use with 8 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0002315 | 0.00023672 | 0.00024652 | 0.0 | 0.10 +Kspace | 0.20915 | 0.21666 | 0.22564 | 1.3 | 89.48 +Neigh | 0.012218 | 0.021341 | 0.029026 | 4.3 | 8.81 +Comm | 0.0028954 | 0.0031248 | 0.0033553 | 0.3 | 1.29 +Output | 0.00039291 | 0.00049406 | 0.00066066 | 0.0 | 0.20 +Modify | 8.7976e-05 | 9.2953e-05 | 9.7752e-05 | 0.0 | 0.04 +Other | | 0.0001938 | | | 0.08 + +Nlocal: 125 ave 133 max 113 min +Histogram: 2 0 0 0 0 1 1 0 2 2 +Nghost: 773.625 ave 788 max 764 min +Histogram: 1 1 2 1 1 0 0 0 1 1 +Neighs: 30977.1 ave 50690 max 10447 min +Histogram: 1 1 1 0 1 1 0 0 2 1 + +Total # of neighbors = 247817 +Ave neighs/atom = 247.817 +Neighbor list builds = 19 +Dangerous builds = 18 +Total wall time: 0:00:00 From e08aaa7e397987c370a836723126aca66db05932 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Wed, 8 Aug 2018 15:03:47 -0600 Subject: [PATCH 426/675] added examples for P3M with ScaFaCoS --- examples/USER/scafacos/in.scafacos.cw.p3m | 31 +++++++++++++++++++ examples/USER/scafacos/in.scafacos.p3m | 37 +++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 examples/USER/scafacos/in.scafacos.cw.p3m create mode 100644 examples/USER/scafacos/in.scafacos.p3m diff --git a/examples/USER/scafacos/in.scafacos.cw.p3m b/examples/USER/scafacos/in.scafacos.cw.p3m new file mode 100644 index 0000000000..50ff1a64a8 --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.cw.p3m @@ -0,0 +1,31 @@ + +units lj +atom_style charge + +read_data data.cloud_wall + +velocity all set 0.0 0.0 0.0 mom no + +pair_style zero 1.0 +pair_coeff * * + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve +kspace_style scafacos p3m 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 + +thermo_style custom step atoms cpu temp pe ke etotal ecoul press + +run_style verlet + +#dump simple all custom 1000 id x y z vx vy vz +#dump dmp all custom 1000 part.dump id mol x y z vx vy vz fx fy fz q mass +#dump dmpvtk all vtk 1000 vtk/part_*.vtk id mol x y z vx vy vz fx fy fz q mass +#dump_modify dmpvtk pad 7 + +thermo 10 +run 100 diff --git a/examples/USER/scafacos/in.scafacos.p3m b/examples/USER/scafacos/in.scafacos.p3m new file mode 100644 index 0000000000..874b1d151a --- /dev/null +++ b/examples/USER/scafacos/in.scafacos.p3m @@ -0,0 +1,37 @@ +# Point dipoles in a 2d box + +units lj +atom_style charge + +read_data data.NaCl + +replicate 8 8 8 + +velocity all create 1.5 49893 + +neighbor 1.0 bin +neigh_modify delay 0 + +fix 1 all nve + +# LAMMPS computes pairwise and long-range Coulombics + +#pair_style coul/long 3.0 +#pair_coeff * * +#kspace_style pppm 1.0e-3 + +# Scafacos computes entire long-range Coulombics +# use dummy pair style to perform atom sorting + +pair_style zero 1.0 +pair_coeff * * + +#fix 2 all scafacos p3m tolerance field 0.001 + +kspace_style scafacos p3m 0.001 +kspace_modify scafacos tolerance field + +timestep 0.005 +thermo 10 + +run 100 From d8aa6d534b8025a16c9aec0f7499742ff5e04975 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 8 Aug 2018 16:09:41 -0600 Subject: [PATCH 427/675] Remove hardcoded GPU-direct in KOKKOS package --- doc/src/Speed_kokkos.txt | 9 +++---- doc/src/package.txt | 22 ++++++++++++----- src/KOKKOS/comm_kokkos.cpp | 24 ++++++++++++++++--- src/KOKKOS/gridcomm_kokkos.cpp | 43 ++++++++++++++++++++++++++++++---- src/KOKKOS/kokkos.cpp | 12 ++++++++-- src/KOKKOS/kokkos.h | 1 + 6 files changed, 90 insertions(+), 21 deletions(-) diff --git a/doc/src/Speed_kokkos.txt b/doc/src/Speed_kokkos.txt index d7ae35bc12..c389174db8 100644 --- a/doc/src/Speed_kokkos.txt +++ b/doc/src/Speed_kokkos.txt @@ -102,12 +102,9 @@ the case, especially when using pre-compiled MPI libraries provided by a Linux distribution. This is not a problem when using only a single GPU and a single MPI rank on a desktop. When running with multiple MPI ranks, you may see segmentation faults without GPU-direct support. -Many of those can be avoided by adding the flags '-pk kokkos comm no' -to the LAMMPS command line or using "package kokkos comm on"_package.html -in the input file, however for some KOKKOS enabled styles like -"EAM"_pair_eam.html or "PPPM"_kspace_style.html, this is not the case -and a GPU-direct enabled MPI library is REQUIRED. - +These can be avoided by adding the flags '-pk kokkos comm no gpu/direct no' +to the LAMMPS command line or using "package kokkos comm no gpu/direct no"_package.html +in the input file. Use a C++11 compatible compiler and set KOKKOS_ARCH variable in /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi for both GPU and CPU as diff --git a/doc/src/package.txt b/doc/src/package.txt index 55f6c6d30f..f2c9e2abcb 100644 --- a/doc/src/package.txt +++ b/doc/src/package.txt @@ -84,6 +84,9 @@ args = arguments specific to the style :l no = perform communication pack/unpack in non-KOKKOS mode host = perform pack/unpack on host (e.g. with OpenMP threading) device = perform pack/unpack on device (e.g. on GPU) + {gpu/direct} = {off} or {on} + off = do not use GPU-direct + on = use GPU-direct (default) {omp} args = Nthreads keyword value ... Nthread = # of OpenMP threads to associate with each MPI process zero or more keyword/value pairs may be appended @@ -505,6 +508,13 @@ typically faster to let the host handle communication, by using the {host} value. Using {host} instead of {no} will enable use of multiple threads to pack/unpack communicated data. +The {gpu/direct} keyword chooses whether GPU-direct will be used. When +this keyword is set to {on}, buffers in GPU memory are passed directly +through MPI send/receive calls. This reduces overhead of first copying +the data to the host CPU. However GPU-direct is not supported on all +systems, which can lead to segmentation faults and would require +using a value of {off}. + :line The {omp} style invokes settings associated with the use of the @@ -611,12 +621,12 @@ is used. If it is not used, you must invoke the package intel command in your input script or or via the "-pk intel" "command-line switch"_Section_start.html#start_6. -For the KOKKOS package, the option defaults neigh = full, -neigh/qeq = full, newton = off, binsize = 0.0, and comm = device. -These settings are made automatically by the required "-k on" "command-line -switch"_Section_start.html#start_6. You can change them bu using the -package kokkos command in your input script or via the "-pk kokkos" -"command-line switch"_Section_start.html#start_6. +For the KOKKOS package, the option defaults neigh = full, neigh/qeq = +full, newton = off, binsize = 0.0, and comm = device, gpu/direct = on. +These settings are made automatically by the required "-k on" +"command-line switch"_Section_start.html#start_6. You can change them bu +using the package kokkos command in your input script or via the "-pk +kokkos" "command-line switch"_Section_start.html#start_6. For the OMP package, the default is Nthreads = 0 and the option defaults are neigh = yes. These settings are made automatically if diff --git a/src/KOKKOS/comm_kokkos.cpp b/src/KOKKOS/comm_kokkos.cpp index 96d1c64d0d..6190d71b25 100644 --- a/src/KOKKOS/comm_kokkos.cpp +++ b/src/KOKKOS/comm_kokkos.cpp @@ -404,12 +404,30 @@ void CommKokkos::forward_comm_pair_device(Pair *pair) // if self, set recv buffer to send buffer if (sendproc[iswap] != me) { - if (recvnum[iswap]) - MPI_Irecv(k_buf_recv_pair.view().data(),nsize*recvnum[iswap],MPI_DOUBLE, + double* buf_send_pair; + double* buf_recv_pair; + if (lmp->kokkos->gpu_direct) { + buf_send_pair = k_buf_send_pair.view().data(); + buf_recv_pair = k_buf_recv_pair.view().data(); + } else { + k_buf_send_pair.modify(); + k_buf_send_pair.sync(); + buf_send_pair = k_buf_send_pair.h_view.data(); + buf_recv_pair = k_buf_recv_pair.h_view.data(); + } + + if (recvnum[iswap]) { + MPI_Irecv(buf_recv_pair,nsize*recvnum[iswap],MPI_DOUBLE, recvproc[iswap],0,world,&request); + } if (sendnum[iswap]) - MPI_Send(k_buf_send_pair.view().data(),n,MPI_DOUBLE,sendproc[iswap],0,world); + MPI_Send(buf_send_pair,n,MPI_DOUBLE,sendproc[iswap],0,world); if (recvnum[iswap]) MPI_Wait(&request,MPI_STATUS_IGNORE); + + if (!lmp->kokkos->gpu_direct) { + k_buf_recv_pair.modify(); + k_buf_recv_pair.sync(); + } } else k_buf_recv_pair = k_buf_send_pair; // unpack buffer diff --git a/src/KOKKOS/gridcomm_kokkos.cpp b/src/KOKKOS/gridcomm_kokkos.cpp index 847fa5907a..55e31436d9 100644 --- a/src/KOKKOS/gridcomm_kokkos.cpp +++ b/src/KOKKOS/gridcomm_kokkos.cpp @@ -18,6 +18,7 @@ #include "memory_kokkos.h" #include "error.h" #include "kokkos_base.h" +#include "kokkos.h" using namespace LAMMPS_NS; @@ -526,11 +527,28 @@ void GridCommKokkos::forward_comm(KSpace *kspace, int which) DeviceType::fence(); if (swap[m].sendproc != me) { - MPI_Irecv(k_buf2.view().data(),nforward*swap[m].nunpack,MPI_FFT_SCALAR, + MPI_FFT_SCALAR* buf1; + MPI_FFT_SCALAR* buf2; + if (lmp->kokkos->gpu_direct) { + buf1 = k_buf1.view().data(); + buf2 = k_buf2.view().data(); + } else { + k_buf1.modify(); + k_buf1.sync(); + buf1 = k_buf1.h_view.data(); + buf2 = k_buf2.h_view.data(); + } + + MPI_Irecv(buf2,nforward*swap[m].nunpack,MPI_FFT_SCALAR, swap[m].recvproc,0,gridcomm,&request); - MPI_Send(k_buf1.view().data(),nforward*swap[m].npack,MPI_FFT_SCALAR, + MPI_Send(buf1,nforward*swap[m].npack,MPI_FFT_SCALAR, swap[m].sendproc,0,gridcomm); MPI_Wait(&request,MPI_STATUS_IGNORE); + + if (!lmp->kokkos->gpu_direct) { + k_buf2.modify(); + k_buf2.sync(); + } } kspaceKKBase->unpack_forward_kspace_kokkos(which,k_buf2,swap[m].nunpack,k_unpacklist,m); @@ -559,11 +577,28 @@ void GridCommKokkos::reverse_comm(KSpace *kspace, int which) DeviceType::fence(); if (swap[m].recvproc != me) { - MPI_Irecv(k_buf2.view().data(),nreverse*swap[m].npack,MPI_FFT_SCALAR, + MPI_FFT_SCALAR* buf1; + MPI_FFT_SCALAR* buf2; + if (lmp->kokkos->gpu_direct) { + buf1 = k_buf1.view().data(); + buf2 = k_buf2.view().data(); + } else { + k_buf1.modify(); + k_buf1.sync(); + buf1 = k_buf1.h_view.data(); + buf2 = k_buf2.h_view.data(); + } + + MPI_Irecv(buf2,nreverse*swap[m].npack,MPI_FFT_SCALAR, swap[m].sendproc,0,gridcomm,&request); - MPI_Send(k_buf1.view().data(),nreverse*swap[m].nunpack,MPI_FFT_SCALAR, + MPI_Send(buf1,nreverse*swap[m].nunpack,MPI_FFT_SCALAR, swap[m].recvproc,0,gridcomm); MPI_Wait(&request,MPI_STATUS_IGNORE); + + if (!lmp->kokkos->gpu_direct) { + k_buf2.modify(); + k_buf2.sync(); + } } kspaceKKBase->unpack_reverse_kspace_kokkos(which,k_buf2,swap[m].npack,k_packlist,m); diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 7acee89c81..825cf5db50 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -156,11 +156,11 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) } else if (-1 == have_gpu_direct() ) { error->warning(FLERR,"Kokkos with CUDA assumes GPU-direct is available," " but cannot determine if this is the case\n try" - " '-pk kokkos comm no' when getting segmentation faults"); + " '-pk kokkos comm no gpu/direct no' when getting segmentation faults"); } else if ( 0 == have_gpu_direct() ) { error->warning(FLERR,"GPU-direct is NOT available, but some parts of " "Kokkos with CUDA require it\n try" - " '-pk kokkos comm no' when getting segmentation faults"); + " '-pk kokkos comm no gpu/direct no' when getting segmentation faults"); } else { ; // should never get here } @@ -186,6 +186,7 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) exchange_comm_on_host = 0; forward_comm_on_host = 0; reverse_comm_on_host = 0; + gpu_direct = 0; #ifdef KILL_KOKKOS_ON_SIGSEGV signal(SIGSEGV, my_signal_handler); @@ -216,6 +217,7 @@ void KokkosLMP::accelerator(int narg, char **arg) double binsize = 0.0; exchange_comm_classic = forward_comm_classic = reverse_comm_classic = 0; exchange_comm_on_host = forward_comm_on_host = reverse_comm_on_host = 0; + gpu_direct = 1; int iarg = 0; while (iarg < narg) { @@ -299,6 +301,12 @@ void KokkosLMP::accelerator(int narg, char **arg) reverse_comm_on_host = 0; } else error->all(FLERR,"Illegal package kokkos command"); iarg += 2; + } else if (strcmp(arg[iarg],"gpu/direct") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal package kokkos command"); + if (strcmp(arg[iarg+1],"off") == 0) gpu_direct = 0; + else if (strcmp(arg[iarg+1],"on") == 0) gpu_direct = 1; + else error->all(FLERR,"Illegal package kokkos command"); + iarg += 2; } else error->all(FLERR,"Illegal package kokkos command"); } diff --git a/src/KOKKOS/kokkos.h b/src/KOKKOS/kokkos.h index 846b7254af..c3c5d0d6e1 100644 --- a/src/KOKKOS/kokkos.h +++ b/src/KOKKOS/kokkos.h @@ -34,6 +34,7 @@ class KokkosLMP : protected Pointers { int num_threads,ngpu; int numa; int auto_sync; + int gpu_direct; KokkosLMP(class LAMMPS *, int, char **); ~KokkosLMP(); From 1c550d8f39ce3db88050333860395923f406726f Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 8 Aug 2018 16:46:36 -0600 Subject: [PATCH 428/675] Change defaults for GPU-direct to use comm host --- doc/src/Speed_kokkos.txt | 7 +++---- doc/src/package.txt | 11 ++++++----- src/KOKKOS/kokkos.cpp | 17 ++++++++++++++--- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/doc/src/Speed_kokkos.txt b/doc/src/Speed_kokkos.txt index c389174db8..6e64510e44 100644 --- a/doc/src/Speed_kokkos.txt +++ b/doc/src/Speed_kokkos.txt @@ -102,8 +102,8 @@ the case, especially when using pre-compiled MPI libraries provided by a Linux distribution. This is not a problem when using only a single GPU and a single MPI rank on a desktop. When running with multiple MPI ranks, you may see segmentation faults without GPU-direct support. -These can be avoided by adding the flags '-pk kokkos comm no gpu/direct no' -to the LAMMPS command line or using "package kokkos comm no gpu/direct no"_package.html +These can be avoided by adding the flags '-pk kokkos gpu/direct no' +to the LAMMPS command line or using "package kokkos gpu/direct no"_package.html in the input file. Use a C++11 compatible compiler and set KOKKOS_ARCH variable in @@ -273,8 +273,7 @@ to the same GPU with the KOKKOS package, but this is usually only faster if significant portions of the input script have not been ported to use Kokkos. Using CUDA MPS is recommended in this scenario. Using a CUDA-aware MPI library with support for GPU-direct -is highly recommended and for some KOKKOS-enabled styles even required. -Most GPU-direct use can be avoided by using "-pk kokkos comm no". +is highly recommended. GPU-direct use can be avoided by using "-pk kokkos gpu/direct no". As above for multi-core CPUs (and no GPU), if N is the number of physical cores/node, then the number of MPI tasks/node should not exceed N. diff --git a/doc/src/package.txt b/doc/src/package.txt index f2c9e2abcb..19a19156b7 100644 --- a/doc/src/package.txt +++ b/doc/src/package.txt @@ -489,10 +489,9 @@ packing/unpacking operation. The optimal choice for these keywords depends on the input script and the hardware used. The {no} value is useful for verifying that the -Kokkos-based {host} and {device} values are working correctly. The {no} -value should also be used, in case of using an MPI library that does -not support GPU-direct. It may also be the fastest choice when using -Kokkos styles in MPI-only mode (i.e. with a thread count of 1). +Kokkos-based {host} and {device} values are working correctly. +It may also be the fastest choice when using Kokkos styles in +MPI-only mode (i.e. with a thread count of 1). When running on CPUs or Xeon Phi, the {host} and {device} values work identically. When using GPUs, the {device} value will typically be @@ -513,7 +512,9 @@ this keyword is set to {on}, buffers in GPU memory are passed directly through MPI send/receive calls. This reduces overhead of first copying the data to the host CPU. However GPU-direct is not supported on all systems, which can lead to segmentation faults and would require -using a value of {off}. +using a value of {off}. When the {gpu/direct} keyword is set to {off} +while any of the {comm} keywords are set to {device}, the value for the +{comm} keywords will be automatically changed to {host}. :line diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 825cf5db50..153b011af4 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -156,11 +156,11 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) } else if (-1 == have_gpu_direct() ) { error->warning(FLERR,"Kokkos with CUDA assumes GPU-direct is available," " but cannot determine if this is the case\n try" - " '-pk kokkos comm no gpu/direct no' when getting segmentation faults"); + " '-pk kokkos gpu/direct no' when getting segmentation faults"); } else if ( 0 == have_gpu_direct() ) { error->warning(FLERR,"GPU-direct is NOT available, but some parts of " "Kokkos with CUDA require it\n try" - " '-pk kokkos comm no gpu/direct no' when getting segmentation faults"); + " '-pk kokkos gpu/direct no' when getting segmentation faults"); } else { ; // should never get here } @@ -186,7 +186,7 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) exchange_comm_on_host = 0; forward_comm_on_host = 0; reverse_comm_on_host = 0; - gpu_direct = 0; + gpu_direct = 1; #ifdef KILL_KOKKOS_ON_SIGSEGV signal(SIGSEGV, my_signal_handler); @@ -310,6 +310,17 @@ void KokkosLMP::accelerator(int narg, char **arg) } else error->all(FLERR,"Illegal package kokkos command"); } + // if "gpu/direct no" and "comm device", change to "comm host" + + if (!gpu_direct) { + if (exchange_comm_classic == 0 && exchange_comm_on_host == 0) + exchange_comm_on_host = 1; + if (forward_comm_classic == 0 && forward_comm_on_host == 0) + forward_comm_on_host = 1; + if (reverse_comm_classic == 0 && reverse_comm_on_host == 0) + reverse_comm_on_host = 1; + } + // set newton flags // set neighbor binsize, same as neigh_modify command From 32658c20d48340afa4fca9813c44a4a95b50c625 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Wed, 8 Aug 2018 17:07:12 -0600 Subject: [PATCH 429/675] Fix typo in gridcomm_kokkos --- src/KOKKOS/gridcomm_kokkos.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/KOKKOS/gridcomm_kokkos.cpp b/src/KOKKOS/gridcomm_kokkos.cpp index 55e31436d9..44795b569d 100644 --- a/src/KOKKOS/gridcomm_kokkos.cpp +++ b/src/KOKKOS/gridcomm_kokkos.cpp @@ -527,8 +527,8 @@ void GridCommKokkos::forward_comm(KSpace *kspace, int which) DeviceType::fence(); if (swap[m].sendproc != me) { - MPI_FFT_SCALAR* buf1; - MPI_FFT_SCALAR* buf2; + FFT_SCALAR* buf1; + FFT_SCALAR* buf2; if (lmp->kokkos->gpu_direct) { buf1 = k_buf1.view().data(); buf2 = k_buf2.view().data(); @@ -577,8 +577,8 @@ void GridCommKokkos::reverse_comm(KSpace *kspace, int which) DeviceType::fence(); if (swap[m].recvproc != me) { - MPI_FFT_SCALAR* buf1; - MPI_FFT_SCALAR* buf2; + FFT_SCALAR* buf1; + FFT_SCALAR* buf2; if (lmp->kokkos->gpu_direct) { buf1 = k_buf1.view().data(); buf2 = k_buf2.view().data(); From 6d60075d3bef9f874fed97ef2c3a7412b4a47e0a Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 9 Aug 2018 02:33:35 -0400 Subject: [PATCH 430/675] GPU Package: Use __shfl_xor_sync starting with CUDA 9 --- lib/gpu/lal_preprocessor.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/gpu/lal_preprocessor.h b/lib/gpu/lal_preprocessor.h index 69a8e61bd4..566a451c21 100644 --- a/lib/gpu/lal_preprocessor.h +++ b/lib/gpu/lal_preprocessor.h @@ -119,6 +119,8 @@ #define BLOCK_ELLIPSE 128 #define MAX_SHARED_TYPES 11 +#if (__CUDACC_VER_MAJOR__ < 9) + #ifdef _SINGLE_SINGLE #define shfl_xor __shfl_xor #else @@ -132,6 +134,25 @@ ucl_inline double shfl_xor(double var, int laneMask, int width) { } #endif +#else + +#ifdef _SINGLE_SINGLE +ucl_inline double shfl_xor(double var, int laneMask, int width) { + return __shfl_xor_sync(0xffffffff, var, laneMask, width); +} +#else +ucl_inline double shfl_xor(double var, int laneMask, int width) { + int2 tmp; + tmp.x = __double2hiint(var); + tmp.y = __double2loint(var); + tmp.x = __shfl_xor_sync(0xffffffff,tmp.x,laneMask,width); + tmp.y = __shfl_xor_sync(0xffffffff,tmp.y,laneMask,width); + return __hiloint2double(tmp.x,tmp.y); +} +#endif + +#endif + #endif #endif From 01b81347468fede39abc6e90845827572f116a1c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 9 Aug 2018 09:35:11 +0200 Subject: [PATCH 431/675] Small tweak to GPU direct not available warning --- src/KOKKOS/kokkos.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 153b011af4..078b871473 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -159,7 +159,7 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) " '-pk kokkos gpu/direct no' when getting segmentation faults"); } else if ( 0 == have_gpu_direct() ) { error->warning(FLERR,"GPU-direct is NOT available, but some parts of " - "Kokkos with CUDA require it\n try" + "Kokkos with CUDA require it by default\n try" " '-pk kokkos gpu/direct no' when getting segmentation faults"); } else { ; // should never get here From 65d11171c4ee6afb14b72df7759828af0a700ddc Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 9 Aug 2018 03:36:21 -0400 Subject: [PATCH 432/675] Replace functions which were deprecated since CUDA 5 --- lib/gpu/geryon/nvd_device.h | 112 ++++++++++++++++++++---------------- 1 file changed, 64 insertions(+), 48 deletions(-) diff --git a/lib/gpu/geryon/nvd_device.h b/lib/gpu/geryon/nvd_device.h index 129bdbbdef..42f176bcbf 100644 --- a/lib/gpu/geryon/nvd_device.h +++ b/lib/gpu/geryon/nvd_device.h @@ -48,7 +48,18 @@ struct NVDProperties { int minor; CUDA_INT_TYPE totalGlobalMem; int multiProcessorCount; - CUdevprop_st p; + + int maxThreadsPerBlock; + int maxThreadsDim[3]; + int maxGridSize[3]; + int sharedMemPerBlock; + int totalConstantMemory; + int SIMDWidth; + int memPitch; + int regsPerBlock; + int clockRate; + int textureAlign; + int kernelExecTimeoutEnabled; int integrated; int canMapHostMemory; @@ -210,18 +221,18 @@ class UCL_Device { inline double clock_rate() { return clock_rate(_device); } /// Clock rate in GHz inline double clock_rate(const int i) - { return _properties[i].p.clockRate*1e-6;} + { return _properties[i].clockRate*1e-6;} /// Get the maximum number of threads per block inline size_t group_size() { return group_size(_device); } /// Get the maximum number of threads per block inline size_t group_size(const int i) - { return _properties[i].p.maxThreadsPerBlock; } + { return _properties[i].maxThreadsPerBlock; } /// Return the maximum memory pitch in bytes for current device inline size_t max_pitch() { return max_pitch(_device); } /// Return the maximum memory pitch in bytes - inline size_t max_pitch(const int i) { return _properties[i].p.memPitch; } + inline size_t max_pitch(const int i) { return _properties[i].memPitch; } /// Returns false if accelerator cannot be shared by multiple processes /** If it cannot be determined, true is returned **/ @@ -275,49 +286,54 @@ class UCL_Device { UCL_Device::UCL_Device() { CU_SAFE_CALL_NS(cuInit(0)); CU_SAFE_CALL_NS(cuDeviceGetCount(&_num_devices)); - for (int dev=0; dev<_num_devices; ++dev) { - CUdevice m; - CU_SAFE_CALL_NS(cuDeviceGet(&m,dev)); + for (int i=0; i<_num_devices; ++i) { + CUdevice dev; + CU_SAFE_CALL_NS(cuDeviceGet(&dev,i)); int major, minor; - CU_SAFE_CALL_NS(cuDeviceComputeCapability(&major,&minor,m)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&major, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&minor, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR, dev)); if (major==9999) continue; - _properties.push_back(NVDProperties()); - _properties.back().device_id=dev; - _properties.back().major=major; - _properties.back().minor=minor; + NVDProperties prop; + prop.device_id = i; + prop.major=major; + prop.minor=minor; char namecstr[1024]; - CU_SAFE_CALL_NS(cuDeviceGetName(namecstr,1024,m)); - _properties.back().name=namecstr; + CU_SAFE_CALL_NS(cuDeviceGetName(namecstr,1024,dev)); + prop.name=namecstr; + + CU_SAFE_CALL_NS(cuDeviceTotalMem(&prop.totalGlobalMem,dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.multiProcessorCount, CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT, dev)); + + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.maxThreadsPerBlock, CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.maxThreadsDim[0], CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.maxThreadsDim[1], CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.maxThreadsDim[2], CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.maxGridSize[0], CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.maxGridSize[1], CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.maxGridSize[2], CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.sharedMemPerBlock, CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.totalConstantMemory, CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.SIMDWidth, CU_DEVICE_ATTRIBUTE_WARP_SIZE, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.memPitch, CU_DEVICE_ATTRIBUTE_MAX_PITCH, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.regsPerBlock, CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.clockRate, CU_DEVICE_ATTRIBUTE_CLOCK_RATE, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.textureAlign, CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT, dev)); - CU_SAFE_CALL_NS(cuDeviceTotalMem(&_properties.back().totalGlobalMem,m)); - CU_SAFE_CALL_NS(cuDeviceGetAttribute(&_properties.back().multiProcessorCount, - CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT, - m)); - CU_SAFE_CALL_NS(cuDeviceGetProperties(&_properties.back().p,m)); #if CUDA_VERSION >= 2020 - CU_SAFE_CALL_NS(cuDeviceGetAttribute( - &_properties.back().kernelExecTimeoutEnabled, - CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT,dev)); - CU_SAFE_CALL_NS(cuDeviceGetAttribute( - &_properties.back().integrated, - CU_DEVICE_ATTRIBUTE_INTEGRATED, dev)); - CU_SAFE_CALL_NS(cuDeviceGetAttribute( - &_properties.back().canMapHostMemory, - CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY, dev)); - CU_SAFE_CALL_NS(cuDeviceGetAttribute(&_properties.back().computeMode, - CU_DEVICE_ATTRIBUTE_COMPUTE_MODE,dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.kernelExecTimeoutEnabled, CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT,dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.integrated, CU_DEVICE_ATTRIBUTE_INTEGRATED, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.canMapHostMemory, CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.computeMode, CU_DEVICE_ATTRIBUTE_COMPUTE_MODE,dev)); #endif #if CUDA_VERSION >= 3010 - CU_SAFE_CALL_NS(cuDeviceGetAttribute( - &_properties.back().concurrentKernels, - CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS, dev)); - CU_SAFE_CALL_NS(cuDeviceGetAttribute( - &_properties.back().ECCEnabled, - CU_DEVICE_ATTRIBUTE_ECC_ENABLED, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.concurrentKernels, CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS, dev)); + CU_SAFE_CALL_NS(cuDeviceGetAttribute(&prop.ECCEnabled, CU_DEVICE_ATTRIBUTE_ECC_ENABLED, dev)); #endif + + _properties.push_back(prop); } _device=-1; _cq.push_back(CUstream()); @@ -393,27 +409,27 @@ void UCL_Device::print_all(std::ostream &out) { << cores(i) << std::endl; #endif out << " Total amount of constant memory: " - << _properties[i].p.totalConstantMemory << " bytes\n"; + << _properties[i].totalConstantMemory << " bytes\n"; out << " Total amount of local/shared memory per block: " - << _properties[i].p.sharedMemPerBlock << " bytes\n"; + << _properties[i].sharedMemPerBlock << " bytes\n"; out << " Total number of registers available per block: " - << _properties[i].p.regsPerBlock << std::endl; + << _properties[i].regsPerBlock << std::endl; out << " Warp size: " - << _properties[i].p.SIMDWidth << std::endl; + << _properties[i].SIMDWidth << std::endl; out << " Maximum number of threads per block: " - << _properties[i].p.maxThreadsPerBlock << std::endl; + << _properties[i].maxThreadsPerBlock << std::endl; out << " Maximum group size (# of threads per block) " - << _properties[i].p.maxThreadsDim[0] << " x " - << _properties[i].p.maxThreadsDim[1] << " x " - << _properties[i].p.maxThreadsDim[2] << std::endl; + << _properties[i].maxThreadsDim[0] << " x " + << _properties[i].maxThreadsDim[1] << " x " + << _properties[i].maxThreadsDim[2] << std::endl; out << " Maximum item sizes (# threads for each dim) " - << _properties[i].p.maxGridSize[0] << " x " - << _properties[i].p.maxGridSize[1] << " x " - << _properties[i].p.maxGridSize[2] << std::endl; + << _properties[i].maxGridSize[0] << " x " + << _properties[i].maxGridSize[1] << " x " + << _properties[i].maxGridSize[2] << std::endl; out << " Maximum memory pitch: " << max_pitch(i) << " bytes\n"; out << " Texture alignment: " - << _properties[i].p.textureAlign << " bytes\n"; + << _properties[i].textureAlign << " bytes\n"; out << " Clock rate: " << clock_rate(i) << " GHz\n"; #if CUDA_VERSION >= 2020 From dd9fed11dc047ab3b1acd512e58666c51f0cdade Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 9 Aug 2018 04:16:22 -0400 Subject: [PATCH 433/675] use '-pk kokkos gpu/direct on/off' consistently in comments and docs --- doc/src/Speed_kokkos.txt | 6 +++--- doc/src/package.txt | 20 ++++++++++---------- src/KOKKOS/kokkos.cpp | 8 ++++---- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/doc/src/Speed_kokkos.txt b/doc/src/Speed_kokkos.txt index 6e64510e44..597ed73e53 100644 --- a/doc/src/Speed_kokkos.txt +++ b/doc/src/Speed_kokkos.txt @@ -102,9 +102,9 @@ the case, especially when using pre-compiled MPI libraries provided by a Linux distribution. This is not a problem when using only a single GPU and a single MPI rank on a desktop. When running with multiple MPI ranks, you may see segmentation faults without GPU-direct support. -These can be avoided by adding the flags '-pk kokkos gpu/direct no' -to the LAMMPS command line or using "package kokkos gpu/direct no"_package.html -in the input file. +These can be avoided by adding the flags '-pk kokkos gpu/direct off' +to the LAMMPS command line or by using the command +"package kokkos gpu/direct off"_package.html in the input file. Use a C++11 compatible compiler and set KOKKOS_ARCH variable in /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi for both GPU and CPU as diff --git a/doc/src/package.txt b/doc/src/package.txt index 19a19156b7..55bd111b50 100644 --- a/doc/src/package.txt +++ b/doc/src/package.txt @@ -507,10 +507,10 @@ typically faster to let the host handle communication, by using the {host} value. Using {host} instead of {no} will enable use of multiple threads to pack/unpack communicated data. -The {gpu/direct} keyword chooses whether GPU-direct will be used. When -this keyword is set to {on}, buffers in GPU memory are passed directly -through MPI send/receive calls. This reduces overhead of first copying -the data to the host CPU. However GPU-direct is not supported on all +The {gpu/direct} keyword chooses whether GPU-direct will be used. When +this keyword is set to {on}, buffers in GPU memory are passed directly +through MPI send/receive calls. This reduces overhead of first copying +the data to the host CPU. However GPU-direct is not supported on all systems, which can lead to segmentation faults and would require using a value of {off}. When the {gpu/direct} keyword is set to {off} while any of the {comm} keywords are set to {device}, the value for the @@ -622,12 +622,12 @@ is used. If it is not used, you must invoke the package intel command in your input script or or via the "-pk intel" "command-line switch"_Section_start.html#start_6. -For the KOKKOS package, the option defaults neigh = full, neigh/qeq = -full, newton = off, binsize = 0.0, and comm = device, gpu/direct = on. -These settings are made automatically by the required "-k on" -"command-line switch"_Section_start.html#start_6. You can change them bu -using the package kokkos command in your input script or via the "-pk -kokkos" "command-line switch"_Section_start.html#start_6. +For the KOKKOS package, the option defaults neigh = full, neigh/qeq = +full, newton = off, binsize = 0.0, and comm = device, gpu/direct = on. +These settings are made automatically by the required "-k on" +"command-line switch"_Section_start.html#start_6. You can change them by +using the package kokkos command in your input script or via the "-pk +kokkos" "command-line switch"_Section_start.html#start_6. For the OMP package, the default is Nthreads = 0 and the option defaults are neigh = yes. These settings are made automatically if diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 078b871473..050b1420d3 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -156,16 +156,16 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) } else if (-1 == have_gpu_direct() ) { error->warning(FLERR,"Kokkos with CUDA assumes GPU-direct is available," " but cannot determine if this is the case\n try" - " '-pk kokkos gpu/direct no' when getting segmentation faults"); + " '-pk kokkos gpu/direct off' when getting segmentation faults"); } else if ( 0 == have_gpu_direct() ) { error->warning(FLERR,"GPU-direct is NOT available, but some parts of " "Kokkos with CUDA require it by default\n try" - " '-pk kokkos gpu/direct no' when getting segmentation faults"); + " '-pk kokkos gpu/direct off' when getting segmentation faults"); } else { ; // should never get here } } - + #endif Kokkos::InitArguments args; @@ -310,7 +310,7 @@ void KokkosLMP::accelerator(int narg, char **arg) } else error->all(FLERR,"Illegal package kokkos command"); } - // if "gpu/direct no" and "comm device", change to "comm host" + // if "gpu/direct off" and "comm device", change to "comm host" if (!gpu_direct) { if (exchange_comm_classic == 0 && exchange_comm_on_host == 0) From 9521814441246f55c3d26087bc2e09b597c22978 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 9 Aug 2018 04:46:31 -0400 Subject: [PATCH 434/675] rename Kokkos::gpu_direct to Kokkos::gpu_direct_flag This is for consistency with other parts of LAMMPS where such variables have "flag" in their name. Also reduces confusion with have_gpu_direct() function. When we can safely detect, that GPU-direct is not available, change the default setting of Kokkos::gpu_direct_flag from 1 to 0 --- doc/src/package.txt | 11 ++++++++--- src/KOKKOS/comm_kokkos.cpp | 4 ++-- src/KOKKOS/gridcomm_kokkos.cpp | 8 ++++---- src/KOKKOS/kokkos.cpp | 21 ++++++++++++--------- src/KOKKOS/kokkos.h | 2 +- 5 files changed, 27 insertions(+), 19 deletions(-) diff --git a/doc/src/package.txt b/doc/src/package.txt index 55bd111b50..3d25a64d31 100644 --- a/doc/src/package.txt +++ b/doc/src/package.txt @@ -512,9 +512,12 @@ this keyword is set to {on}, buffers in GPU memory are passed directly through MPI send/receive calls. This reduces overhead of first copying the data to the host CPU. However GPU-direct is not supported on all systems, which can lead to segmentation faults and would require -using a value of {off}. When the {gpu/direct} keyword is set to {off} -while any of the {comm} keywords are set to {device}, the value for the -{comm} keywords will be automatically changed to {host}. +using a value of {off}. If LAMMPS can safely detect that GPU-direct is +not available (currently only possible with OpenMPI v2.0.0 or later), +then the {gpu/direct} keyword is automatically set to {off} by default. +When the {gpu/direct} keyword is set to {off} while any of the {comm} +keywords are set to {device}, the value for these {comm} keywords will +be automatically changed to {host}. :line @@ -624,6 +627,8 @@ switch"_Section_start.html#start_6. For the KOKKOS package, the option defaults neigh = full, neigh/qeq = full, newton = off, binsize = 0.0, and comm = device, gpu/direct = on. +When LAMMPS can safely detect, that GPU-direct is not available, the +default value of gpu/direct becomes "off". These settings are made automatically by the required "-k on" "command-line switch"_Section_start.html#start_6. You can change them by using the package kokkos command in your input script or via the "-pk diff --git a/src/KOKKOS/comm_kokkos.cpp b/src/KOKKOS/comm_kokkos.cpp index 6190d71b25..21840b7c3e 100644 --- a/src/KOKKOS/comm_kokkos.cpp +++ b/src/KOKKOS/comm_kokkos.cpp @@ -406,7 +406,7 @@ void CommKokkos::forward_comm_pair_device(Pair *pair) if (sendproc[iswap] != me) { double* buf_send_pair; double* buf_recv_pair; - if (lmp->kokkos->gpu_direct) { + if (lmp->kokkos->gpu_direct_flag) { buf_send_pair = k_buf_send_pair.view().data(); buf_recv_pair = k_buf_recv_pair.view().data(); } else { @@ -424,7 +424,7 @@ void CommKokkos::forward_comm_pair_device(Pair *pair) MPI_Send(buf_send_pair,n,MPI_DOUBLE,sendproc[iswap],0,world); if (recvnum[iswap]) MPI_Wait(&request,MPI_STATUS_IGNORE); - if (!lmp->kokkos->gpu_direct) { + if (!lmp->kokkos->gpu_direct_flag) { k_buf_recv_pair.modify(); k_buf_recv_pair.sync(); } diff --git a/src/KOKKOS/gridcomm_kokkos.cpp b/src/KOKKOS/gridcomm_kokkos.cpp index 44795b569d..64a9d6992f 100644 --- a/src/KOKKOS/gridcomm_kokkos.cpp +++ b/src/KOKKOS/gridcomm_kokkos.cpp @@ -529,7 +529,7 @@ void GridCommKokkos::forward_comm(KSpace *kspace, int which) if (swap[m].sendproc != me) { FFT_SCALAR* buf1; FFT_SCALAR* buf2; - if (lmp->kokkos->gpu_direct) { + if (lmp->kokkos->gpu_direct_flag) { buf1 = k_buf1.view().data(); buf2 = k_buf2.view().data(); } else { @@ -545,7 +545,7 @@ void GridCommKokkos::forward_comm(KSpace *kspace, int which) swap[m].sendproc,0,gridcomm); MPI_Wait(&request,MPI_STATUS_IGNORE); - if (!lmp->kokkos->gpu_direct) { + if (!lmp->kokkos->gpu_direct_flag) { k_buf2.modify(); k_buf2.sync(); } @@ -579,7 +579,7 @@ void GridCommKokkos::reverse_comm(KSpace *kspace, int which) if (swap[m].recvproc != me) { FFT_SCALAR* buf1; FFT_SCALAR* buf2; - if (lmp->kokkos->gpu_direct) { + if (lmp->kokkos->gpu_direct_flag) { buf1 = k_buf1.view().data(); buf2 = k_buf2.view().data(); } else { @@ -595,7 +595,7 @@ void GridCommKokkos::reverse_comm(KSpace *kspace, int which) swap[m].recvproc,0,gridcomm); MPI_Wait(&request,MPI_STATUS_IGNORE); - if (!lmp->kokkos->gpu_direct) { + if (!lmp->kokkos->gpu_direct_flag) { k_buf2.modify(); k_buf2.sync(); } diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 050b1420d3..fb6b8d8d45 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -158,14 +158,12 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) " but cannot determine if this is the case\n try" " '-pk kokkos gpu/direct off' when getting segmentation faults"); } else if ( 0 == have_gpu_direct() ) { - error->warning(FLERR,"GPU-direct is NOT available, but some parts of " - "Kokkos with CUDA require it by default\n try" - " '-pk kokkos gpu/direct off' when getting segmentation faults"); + error->warning(FLERR,"GPU-direct is NOT available, " + "using '-pk kokkos gpu/direct off' by default"); } else { ; // should never get here } } - #endif Kokkos::InitArguments args; @@ -186,7 +184,12 @@ KokkosLMP::KokkosLMP(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) exchange_comm_on_host = 0; forward_comm_on_host = 0; reverse_comm_on_host = 0; - gpu_direct = 1; + gpu_direct_flag = 1; + +#if KOKKOS_USE_CUDA + // only if we can safely detect, that GPU-direct is not available, change default + if (0 == have_gpu_direct()) gpu_direct_flag = 0; +#endif #ifdef KILL_KOKKOS_ON_SIGSEGV signal(SIGSEGV, my_signal_handler); @@ -217,7 +220,7 @@ void KokkosLMP::accelerator(int narg, char **arg) double binsize = 0.0; exchange_comm_classic = forward_comm_classic = reverse_comm_classic = 0; exchange_comm_on_host = forward_comm_on_host = reverse_comm_on_host = 0; - gpu_direct = 1; + gpu_direct_flag = 1; int iarg = 0; while (iarg < narg) { @@ -303,8 +306,8 @@ void KokkosLMP::accelerator(int narg, char **arg) iarg += 2; } else if (strcmp(arg[iarg],"gpu/direct") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal package kokkos command"); - if (strcmp(arg[iarg+1],"off") == 0) gpu_direct = 0; - else if (strcmp(arg[iarg+1],"on") == 0) gpu_direct = 1; + if (strcmp(arg[iarg+1],"off") == 0) gpu_direct_flag = 0; + else if (strcmp(arg[iarg+1],"on") == 0) gpu_direct_flag = 1; else error->all(FLERR,"Illegal package kokkos command"); iarg += 2; } else error->all(FLERR,"Illegal package kokkos command"); @@ -312,7 +315,7 @@ void KokkosLMP::accelerator(int narg, char **arg) // if "gpu/direct off" and "comm device", change to "comm host" - if (!gpu_direct) { + if (!gpu_direct_flag) { if (exchange_comm_classic == 0 && exchange_comm_on_host == 0) exchange_comm_on_host = 1; if (forward_comm_classic == 0 && forward_comm_on_host == 0) diff --git a/src/KOKKOS/kokkos.h b/src/KOKKOS/kokkos.h index c3c5d0d6e1..cf209c0adb 100644 --- a/src/KOKKOS/kokkos.h +++ b/src/KOKKOS/kokkos.h @@ -34,7 +34,7 @@ class KokkosLMP : protected Pointers { int num_threads,ngpu; int numa; int auto_sync; - int gpu_direct; + int gpu_direct_flag; KokkosLMP(class LAMMPS *, int, char **); ~KokkosLMP(); From d5594350c4f57dae239ba5c3c00b1f831f3456e2 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 9 Aug 2018 08:50:11 -0600 Subject: [PATCH 435/675] change zero-size shrink box to original box --- doc/src/compute_property_local.txt | 14 +++++++------- src/balance.cpp | 31 +++++++++++++++++------------- src/rcb.cpp | 2 ++ 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/doc/src/compute_property_local.txt b/doc/src/compute_property_local.txt index e4e6f1ef1e..c4ad0afc95 100644 --- a/doc/src/compute_property_local.txt +++ b/doc/src/compute_property_local.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -48,10 +48,10 @@ compute 1 all property/local atype aatom2 :pre Define a computation that stores the specified attributes as local data so it can be accessed by other "output -commands"_Section_howto.html#howto_15. If the input attributes refer -to bond information, then the number of datums generated, aggregated -across all processors, equals the number of bonds in the system. -Ditto for pairs, angles, etc. +commands"_Howto_output.html. If the input attributes refer to bond +information, then the number of datums generated, aggregated across +all processors, equals the number of bonds in the system. Ditto for +pairs, angles, etc. If multiple attributes are specified then they must all generate the same amount of information, so that the resulting local array has the @@ -140,8 +140,8 @@ the array is the number of bonds, angles, etc. If a single input is specified, a local vector is produced. If two or more inputs are specified, a local array is produced where the number of columns = the number of inputs. The vector or array can be accessed by any command -that uses local values from a compute as input. See "this -section"_Section_howto.html#howto_15 for an overview of LAMMPS output +that uses local values from a compute as input. See the "Howto +output"_Howto_output.html doc page for an overview of LAMMPS output options. The vector or array values will be integers that correspond to the diff --git a/src/balance.cpp b/src/balance.cpp index ed44e3ee0e..2a953caf47 100644 --- a/src/balance.cpp +++ b/src/balance.cpp @@ -28,7 +28,6 @@ #include "rcb.h" #include "irregular.h" #include "domain.h" -#include "neighbor.h" #include "force.h" #include "update.h" #include "group.h" @@ -351,13 +350,13 @@ void Balance::command(int narg, char **arg) domain->set_local_box(); // move particles to new processors via irregular() + // set disable = 0, so weights migrate with atoms for imbfinal calculation if (domain->triclinic) domain->x2lamda(atom->nlocal); Irregular *irregular = new Irregular(lmp); if (wtflag) fixstore->disable = 0; if (style == BISECTION) irregular->migrate_atoms(1,1,rcb->sendproc); else irregular->migrate_atoms(1); - if (wtflag) fixstore->disable = 1; delete irregular; if (domain->triclinic) domain->lamda2x(atom->nlocal); @@ -378,9 +377,11 @@ void Balance::command(int narg, char **arg) } // imbfinal = final imbalance + // set disable = 1, so weights no longer migrate with atoms double maxfinal; double imbfinal = imbalance_factor(maxfinal); + if (wtflag) fixstore->disable = 1; // stats output @@ -541,6 +542,8 @@ void Balance::weight_storage(char *prefix) fixstore = (FixStore *) modify->fix[modify->nfix-1]; } else fixstore = (FixStore *) modify->fix[ifix]; + // do not carry weights with atoms during normal atom migration + fixstore->disable = 1; if (prefix) delete [] fixargs[0]; @@ -644,17 +647,19 @@ int *Balance::bisection(int sortflag) double *shrinklo = &shrinkall[0]; double *shrinkhi = &shrinkall[3]; - // ensure that that the box has at least some extent. - const double nproc_rt = domain->dimension == 3 ? - cbrt(static_cast(comm->nprocs)) : - sqrt(static_cast(comm->nprocs)); - const double min_extent = ceil(nproc_rt)*neighbor->skin; - for (int i = 0; i < domain->dimension; i++) { - if (shrinkall[3+i]-shrinkall[i] < min_extent) { - const double mid = 0.5*(shrinkall[3+i]+shrinkall[i]); - shrinkall[3+i] = std::min(mid + min_extent*0.5, boxhi[i]); - shrinkall[i] = std::max(mid - min_extent*0.5, boxlo[i]); - } + // if shrink size in any dim is zero, use box size in that dim + + if (shrinklo[0] == shrinkhi[0]) { + shrinklo[0] = boxlo[0]; + shrinkhi[0] = boxhi[0]; + } + if (shrinklo[1] == shrinkhi[1]) { + shrinklo[1] = boxlo[1]; + shrinkhi[1] = boxhi[1]; + } + if (shrinklo[2] == shrinkhi[2]) { + shrinklo[2] = boxlo[2]; + shrinkhi[2] = boxhi[2]; } // invoke RCB diff --git a/src/rcb.cpp b/src/rcb.cpp index 4ea70ee914..13e27b6fbf 100644 --- a/src/rcb.cpp +++ b/src/rcb.cpp @@ -241,6 +241,8 @@ void RCB::compute(int dimension, int n, double **x, double *wt, // dim_select = selected cut dimension // valuehalf_select = valuehalf in that dimension // dotmark_select = dot markings in that dimension + // initialize largest = -1.0 to insure a cut in some dim is accepted + // e.g. if current recursed box is size 0 in all dims int dim_select = -1; double largest = -1.0; From a97ad15d22699e22adb269df95aa9fc33ee85081 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 9 Aug 2018 05:09:46 -0400 Subject: [PATCH 436/675] update .gitignore --- src/.gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/.gitignore b/src/.gitignore index 058833ffb3..df3a22a5cd 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -729,6 +729,8 @@ /pair_eam.h /pair_eam_alloy.cpp /pair_eam_alloy.h +/pair_eam_cd.cpp +/pair_eam_cd.h /pair_eam_fs.cpp /pair_eam_fs.h /pair_edip.cpp From df20fbbca499b9a86f65b16d7719929940f8c296 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 9 Aug 2018 16:50:09 +0200 Subject: [PATCH 437/675] fix a bunch of broken linke or make links unique across files --- doc/src/Commands_bond.txt | 2 +- doc/src/Howto_tip4p.txt | 4 ++-- doc/src/Intro_features.txt | 4 ++-- doc/src/Manual.txt | 6 ++++-- doc/src/Packages_details.txt | 8 ++++---- doc/src/Packages_standard.txt | 4 ++-- doc/src/Python_install.txt | 2 +- doc/src/Python_shlib.txt | 3 ++- doc/src/fix_manifoldforce.txt | 2 +- doc/src/fix_property_atom.txt | 3 ++- doc/src/fix_wall_reflect.txt | 4 ++-- 11 files changed, 23 insertions(+), 19 deletions(-) diff --git a/doc/src/Commands_bond.txt b/doc/src/Commands_bond.txt index 314260cb14..48069d3120 100644 --- a/doc/src/Commands_bond.txt +++ b/doc/src/Commands_bond.txt @@ -9,7 +9,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c "Fix styles"_Commands_fix.html, "Compute styles"_Commands_compute.html, "Pair styles"_Commands_pair.html, -"Bond styles"_Commands_bond.html, +"Bond styles"_Commands_bond.html#bond, "Angle styles"_Commands_bond.html#angle, "Dihedral styles"_Commands_bond.html#dihedral, "Improper styles"_Commands_bond.html#improper, diff --git a/doc/src/Howto_tip4p.txt b/doc/src/Howto_tip4p.txt index f9e548e268..9f7f141314 100644 --- a/doc/src/Howto_tip4p.txt +++ b/doc/src/Howto_tip4p.txt @@ -31,7 +31,7 @@ using the "fix shake"_fix_shake.html command. These are the additional parameters (in real units) to set for O and H atoms and the water molecule to run a rigid TIP4P model with a cutoff -"(Jorgensen)"_#Jorgensen1. Note that the OM distance is specified in +"(Jorgensen)"_#Jorgensen5. Note that the OM distance is specified in the "pair_style"_pair_style.html command, not as part of the pair coefficients. @@ -107,6 +107,6 @@ models"_http://en.wikipedia.org/wiki/Water_model. :line -:link(Jorgensen1) +:link(Jorgensen5) [(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem Phys, 79, 926 (1983). diff --git a/doc/src/Intro_features.txt b/doc/src/Intro_features.txt index 2bb7e25683..07c549c156 100644 --- a/doc/src/Intro_features.txt +++ b/doc/src/Intro_features.txt @@ -20,7 +20,7 @@ classes of functionality: "Integrators"_#integrate "Diagnostics"_#diag "Output"_#output -"Multi-replica models"_#replica +"Multi-replica models"_#replica1 "Pre- and post-processing"_#prepost "Specialized features (beyond MD itself)"_#special :ul @@ -154,7 +154,7 @@ Output :h4,link(output) time averaging of system-wide quantities atom snapshots in native, XYZ, XTC, DCD, CFG formats :ul -Multi-replica models :h4,link(replica) +Multi-replica models :h4,link(replica1) "nudged elastic band"_neb.html "parallel replica dynamics"_prd.html diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index a5e8b63640..5a70be5c50 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -8,6 +8,8 @@ +

+ "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c @@ -18,8 +20,6 @@ :line -

- LAMMPS Documentation :c,h1 2 Aug 2018 version :c,h2 @@ -71,6 +71,7 @@ every LAMMPS command. :name: userdoc :includehidden: + Manual_version Intro Section_start Commands @@ -82,6 +83,7 @@ every LAMMPS command. Modify Python Errors + Build_manual .. toctree:: :caption: Index diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index eb92fe4dc4..8b28002c2e 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -49,7 +49,7 @@ as contained in the file name. "PYTHON"_#PYTHON, "QEQ"_#QEQ, "REAX"_#REAX, -"REPLICA"_#REPLICA, +"REPLICA"_#REPLICA2, "RIGID"_#RIGID, "SHOCK"_#SHOCK, "SNAP"_#SNAP, @@ -392,7 +392,7 @@ src/GPU: filenames -> commands src/GPU/README lib/gpu/README "Speed packages"_Speed_packages.html -"Speed gpu"_Speed_gpu.html.html +"Speed gpu"_Speed_gpu.html "Section 2.6 -sf gpu"_Section_start.html#start_6 "Section 2.6 -pk gpu"_Section_start.html#start_6 "package gpu"_package.html @@ -1225,7 +1225,7 @@ examples/reax :ul :line -REPLICA package :link(REPLICA),h4 +REPLICA package :link(REPLICA2),h4 [Contents:] @@ -1373,7 +1373,7 @@ make machine :pre [Supporting info:] src/SPIN: filenames -> commands -"Howto spin"_Howto_spin.html +"Howto spins"_Howto_spins.html "pair_style spin/dmi"_pair_spin_dmi.html "pair_style spin/exchange"_pair_spin_exchange.html "pair_style spin/magelec"_pair_spin_magelec.html diff --git a/doc/src/Packages_standard.txt b/doc/src/Packages_standard.txt index 7e64345602..56ec693185 100644 --- a/doc/src/Packages_standard.txt +++ b/doc/src/Packages_standard.txt @@ -57,9 +57,9 @@ Package, Description, Doc page, Example, Library "PYTHON"_Packages_details.html#PYTHON, embed Python code in an input script, "python"_python.html, python, sys "QEQ"_Packages_details.html#QEQ, QEq charge equilibration, "fix qeq"_fix_qeq.html, qeq, - "REAX"_Packages_details.html#REAX, ReaxFF potential (Fortran), "pair_style reax"_pair_reax.html, reax, int -"REPLICA"_Packages_details.html#REPLICA, multi-replica methods, "Howto replica"_Howto_replica.html, tad, - +"REPLICA"_Packages_details.html#REPLICA2, multi-replica methods, "Howto replica"_Howto_replica.html, tad, - "RIGID"_Packages_details.html#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, - "SHOCK"_Packages_details.html#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, - "SNAP"_Packages_details.html#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, - -"SPIN"_#SPIN, magnetic atomic spin dynamics, "Howto spin"_Howto_spin.html, SPIN, -"SRD"_Packages_details.html#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - +"SPIN"_#SPIN, magnetic atomic spin dynamics, "Howto spins"_Howto_spins.html, SPIN, -"SRD"_Packages_details.html#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - "VORONOI"_Packages_details.html#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l) diff --git a/doc/src/Python_install.txt b/doc/src/Python_install.txt index 6591360ae2..85cf267de0 100644 --- a/doc/src/Python_install.txt +++ b/doc/src/Python_install.txt @@ -68,7 +68,7 @@ need to prefix this with "sudo". In this mode you cannot control which Python is invoked by root. Note that if you want Python to be able to load different versions of -the LAMMPS shared library (see "this section"_#py_5 below), you will +the LAMMPS shared library (see "this section"_Python_shlib.html), you will need to manually copy files like liblammps_g++.so into the appropriate system directory. This is not needed if you set the LD_LIBRARY_PATH environment variable as described above. diff --git a/doc/src/Python_shlib.txt b/doc/src/Python_shlib.txt index 1a921e4025..c3b81fa342 100644 --- a/doc/src/Python_shlib.txt +++ b/doc/src/Python_shlib.txt @@ -31,4 +31,5 @@ extra libraries must also be shared libraries. If the LAMMPS shared-library build fails with an error complaining about this, see "Section 2.4"_Section_start.html#start_4 for more details. -Also include CMake info on this +TODO: Also include CMake info on this + diff --git a/doc/src/fix_manifoldforce.txt b/doc/src/fix_manifoldforce.txt index aa32a875bf..2159d6211a 100644 --- a/doc/src/fix_manifoldforce.txt +++ b/doc/src/fix_manifoldforce.txt @@ -24,7 +24,7 @@ fix constrain all manifoldforce sphere 5.0 [Description:] -This fix subtracts each time step from the force the component along the normal of the specified "manifold"_manifolds.html. +This fix subtracts each time step from the force the component along the normal of the specified "manifold"_Howto_manifold.html. This can be used in combination with "minimize"_minimize.html to remove overlap between particles while keeping them (roughly) constrained to the given manifold, e.g. to set up a run with "fix nve/manifold/rattle"_fix_nve_manifold_rattle.html. I have found that only {hftn} and {quickmin} with a very small time step perform adequately though. diff --git a/doc/src/fix_property_atom.txt b/doc/src/fix_property_atom.txt index 136ed6c15e..8a70cd8213 100644 --- a/doc/src/fix_property_atom.txt +++ b/doc/src/fix_property_atom.txt @@ -200,7 +200,8 @@ added classes. :line -:link(isotopes) Example for using per-atom masses with TIP4P water to +:link(isotopes) +Example for using per-atom masses with TIP4P water to study isotope effects. When setting up simulations with the "TIP4P pair styles"_Howto_tip4p.html for water, you have to provide exactly one atom type each to identify the water oxygen and hydrogen diff --git a/doc/src/fix_wall_reflect.txt b/doc/src/fix_wall_reflect.txt index 78be84eb63..e35fac6eeb 100644 --- a/doc/src/fix_wall_reflect.txt +++ b/doc/src/fix_wall_reflect.txt @@ -51,7 +51,7 @@ corresponding component of its velocity is flipped. When used in conjunction with "fix nve"_fix_nve.html and "run_style verlet"_run_style.html, the resultant time-integration algorithm is equivalent to the primitive splitting algorithm (PSA) described by -"Bond"_#Bond. Because each reflection event divides +"Bond"_#Bond1. Because each reflection event divides the corresponding timestep asymmetrically, energy conservation is only satisfied to O(dt), rather than to O(dt^2) as it would be for velocity-Verlet integration without reflective walls. @@ -179,5 +179,5 @@ error. :line -:link(Bond) +:link(Bond1) [(Bond)] Bond and Leimkuhler, SIAM J Sci Comput, 30, p 134 (2007). From a06514372388ad7e7d003259aa51990cda621518 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 9 Aug 2018 16:50:36 +0200 Subject: [PATCH 438/675] create missing "Build_manual.txt" file from 'doc/README' --- doc/src/Build_manual.txt | 125 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 doc/src/Build_manual.txt diff --git a/doc/src/Build_manual.txt b/doc/src/Build_manual.txt new file mode 100644 index 0000000000..3dfc3d08b3 --- /dev/null +++ b/doc/src/Build_manual.txt @@ -0,0 +1,125 @@ +"Previous Section"_Errors.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Manual.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +Building the LAMMPS Manual :h2 + +Depending on how you obtained LAMMPS, the doc directory has +2 or 3 sub-directories and optionally 2 PDF files and an ePUB file: + +src content files for LAMMPS documentation +html HTML version of the LAMMPS manual (see html/Manual.html) +tools tools and settings for building the documentation +Manual.pdf large PDF version of entire manual +Developer.pdf small PDF with info about how LAMMPS is structured +LAMMPS.epub Manual in ePUB format :pre + +If you downloaded LAMMPS as a tarball from the web site, all these +directories and files should be included. + +If you downloaded LAMMPS from the public SVN or Git repositories, then +the HTML and PDF files are not included. Instead you need to create +them, in one of three ways: + +(a) You can "fetch" the current HTML and PDF files from the LAMMPS web +site. Just type "make fetch". This should create a html_www dir and +Manual_www.pdf/Developer_www.pdf files. Note that if new LAMMPS +features have been added more recently than the date of your version, +the fetched documentation will include those changes (but your source +code will not, unless you update your local repository). + +(b) You can build the HTML and PDF files yourself, by typing "make +html" followed by "make pdf". Note that the PDF make requires the +HTML files already exist. This requires various tools including +Sphinx, which the build process will attempt to download and install +on your system, if not already available. See more details below. + +(c) You can genererate an older, simpler, less-fancy style of HTML +documentation by typing "make old". This will create an "old" +directory. This can be useful if (b) does not work on your box for +some reason, or you want to quickly view the HTML version of a doc +page you have created or edited yourself within the src directory. +E.g. if you are planning to submit a new feature to LAMMPS. + +:line + +The generation of all documentation is managed by the Makefile in +the doc dir. + +Documentation Build Options: :pre + +make html # generate HTML in html dir using Sphinx +make pdf # generate 2 PDF files (Manual.pdf,Developer.pdf) + # in doc dir via htmldoc and pdflatex +make old # generate old-style HTML pages in old dir via txt2html +make fetch # fetch HTML doc pages and 2 PDF files from web site + # as a tarball and unpack into html dir and 2 PDFs +make epub # generate LAMMPS.epub in ePUB format using Sphinx +make clean # remove intermediate RST files created by HTML build +make clean-all # remove entire build folder and any cached data :pre + +:line + +Installing prerequisites for HTML build :h3 + +To run the HTML documention build toolchain, Python 3 and virtualenv +have to be installed. Here are instructions for common setups: + +Ubuntu :h4 + +sudo apt-get install python-virtualenv :pre + +Fedora (up to version 21) and Red Hat Enterprise Linux or CentOS (up to version 7.x) :h4 + +sudo yum install python3-virtualenv :pre + +Fedora (since version 22) :h4 + +sudo dnf install python3-virtualenv pre + +MacOS X :h4 + +Python 3 :h5 + +Download the latest Python 3 MacOS X package from +"https://www.python.org"_https://www.python.org +and install it. This will install both Python 3 +and pip3. + +virtualenv :h5 + +Once Python 3 is installed, open a Terminal and type + +pip3 install virtualenv :pre + +This will install virtualenv from the Python Package Index. + +:line + +Installing prerequisites for PDF build + +[TBA] + +:line + +Installing prerequisites for epub build :h3 + +ePUB :h4 + +Same as for HTML. This uses the same tools and configuration +files as the HTML tree. + +For converting the generated ePUB file to a mobi format file +(for e-book readers like Kindle, that cannot read ePUB), you +also need to have the 'ebook-convert' tool from the "calibre" +software installed. "http://calibre-ebook.com/"_http://calibre-ebook.com/ +You first create the ePUB file with 'make epub' and then do: + +ebook-convert LAMMPS.epub LAMMPS.mobi :pre + From 1604f011d223b686ea493392568d629fa282d4dc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 9 Aug 2018 16:58:05 +0200 Subject: [PATCH 439/675] fix a couple more broken links --- doc/src/Errors_common.txt | 2 +- doc/src/Howto_bioFF.txt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/src/Errors_common.txt b/doc/src/Errors_common.txt index 43d1a85a7b..8d04d8b0b4 100644 --- a/doc/src/Errors_common.txt +++ b/doc/src/Errors_common.txt @@ -93,7 +93,7 @@ decide if the WARNING is important or not. A WARNING message that is generated in the middle of a run is only printed to the screen, not to the logfile, to avoid cluttering up thermodynamic output. If LAMMPS crashes or hangs without spitting out an error message first then it -could be a bug (see "this section"_#err_2) or one of the following +could be a bug (see "this section"_Errors_bugs.html) or one of the following cases: LAMMPS runs in the available memory a processor allows to be diff --git a/doc/src/Howto_bioFF.txt b/doc/src/Howto_bioFF.txt index afb8a84f2e..deb5b31441 100644 --- a/doc/src/Howto_bioFF.txt +++ b/doc/src/Howto_bioFF.txt @@ -96,6 +96,10 @@ documentation for the formula it computes. [(MacKerell)] MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field, Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998). +:link(howto-Cornell) +[(Cornell)] Cornell, Cieplak, Bayly, Gould, Merz, Ferguson, +Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995). + :link(howto-Mayo) [(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909 (1990). From f4ea28cd322399cced20b9bb30cbbf5de1e3da36 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 9 Aug 2018 16:58:19 +0200 Subject: [PATCH 440/675] update src/lammps.book file with missing entries --- doc/src/lammps.book | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/src/lammps.book b/doc/src/lammps.book index c0ca357f21..75a44141df 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -1,6 +1,7 @@ #HTMLDOC 1.8.28 -t pdf14 -f "../Manual.pdf" --book --toclevels 4 --no-numbered --toctitle "Table of Contents" --title --textcolor #000000 --linkcolor #0000ff --linkstyle plain --bodycolor #ffffff --size Universal --left 1.00in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --header1 ... --footer ..1 --nup 1 --tocheader .t. --tocfooter ..i --portrait --color --no-pscommands --no-xrxcomments --compression=9 --jpeg=0 --fontsize 11.0 --fontspacing 1.2 --headingfont Sans --bodyfont Serif --headfootsize 11.0 --headfootfont Sans-Bold --charset iso-8859-15 --links --embedfonts --pagemode document --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all --owner-password "" --user-password "" --browserwidth 680 --no-strict --no-overflow Manual.html +Manual_version.html Intro.html Intro_overview.html Intro_features.html @@ -106,6 +107,7 @@ Errors_common.html Errors_bugs.html Errors_messages.html Errors_warnings.html +Build_manual.html lammps_commands.html atom_modify.html From 8e9ea1e4fadeb57268fcc378e3622a378b16cb35 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 9 Aug 2018 17:07:45 +0200 Subject: [PATCH 441/675] formatting tweak for Build the manual page --- doc/src/Build_manual.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/src/Build_manual.txt b/doc/src/Build_manual.txt index 3dfc3d08b3..695ac21a13 100644 --- a/doc/src/Build_manual.txt +++ b/doc/src/Build_manual.txt @@ -13,12 +13,12 @@ Building the LAMMPS Manual :h2 Depending on how you obtained LAMMPS, the doc directory has 2 or 3 sub-directories and optionally 2 PDF files and an ePUB file: -src content files for LAMMPS documentation -html HTML version of the LAMMPS manual (see html/Manual.html) -tools tools and settings for building the documentation -Manual.pdf large PDF version of entire manual -Developer.pdf small PDF with info about how LAMMPS is structured -LAMMPS.epub Manual in ePUB format :pre +src # content files for LAMMPS documentation +html # HTML version of the LAMMPS manual (see html/Manual.html) +tools # tools and settings for building the documentation +Manual.pdf # large PDF version of entire manual +Developer.pdf # small PDF with info about how LAMMPS is structured +LAMMPS.epub # Manual in ePUB format :pre If you downloaded LAMMPS as a tarball from the web site, all these directories and files should be included. From bb25e5d98a8933ecbfb8b762e45759a2bdc4b0b4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 9 Aug 2018 17:07:57 +0200 Subject: [PATCH 442/675] adjust header levels for Tools section --- doc/src/Tools.txt | 60 +++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index 85ee531cfd..aa4adb7dc1 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -77,7 +77,7 @@ own sub-directories with their own Makefiles and/or README files. :line :line -amber2lmp tool :h4,link(amber) +amber2lmp tool :h3,link(amber) The amber2lmp sub-directory contains two Python scripts for converting files back-and-forth between the AMBER MD code and LAMMPS. See the @@ -92,7 +92,7 @@ necessary modifications yourself. :line -binary2txt tool :h4,link(binary) +binary2txt tool :h3,link(binary) The file binary2txt.cpp converts one or more binary LAMMPS dump file into ASCII text files. The syntax for running the tool is @@ -105,7 +105,7 @@ since binary files are not compatible across all platforms. :line -ch2lmp tool :h4,link(charmm) +ch2lmp tool :h3,link(charmm) The ch2lmp sub-directory contains tools for converting files back-and-forth between the CHARMM MD code and LAMMPS. @@ -130,7 +130,7 @@ Chris Lorenz (chris.lorenz at kcl.ac.uk), King's College London. :line -chain tool :h4,link(chain) +chain tool :h3,link(chain) The file chain.f creates a LAMMPS data file containing bead-spring polymer chains and/or monomer solvent atoms. It uses a text file @@ -147,7 +147,7 @@ for the "chain benchmark"_Speed_bench.html. :line -colvars tools :h4,link(colvars) +colvars tools :h3,link(colvars) The colvars directory contains a collection of tools for postprocessing data produced by the colvars collective variable library. @@ -169,7 +169,7 @@ gmail.com) at ICTP, Italy. :line -createatoms tool :h4,link(createatoms) +createatoms tool :h3,link(createatoms) The tools/createatoms directory contains a Fortran program called createAtoms.f which can generate a variety of interesting crystal @@ -182,7 +182,7 @@ The tool is authored by Xiaowang Zhou (Sandia), xzhou at sandia.gov. :line -doxygen tool :h4,link(doxygen) +doxygen tool :h3,link(doxygen) The tools/doxygen directory contains a shell script called doxygen.sh which can generate a call graph and API lists using @@ -194,7 +194,7 @@ The tool is authored by Nandor Tamaskovics, numericalfreedom at googlemail.com. :line -drude tool :h4,link(drude) +drude tool :h3,link(drude) The tools/drude directory contains a Python script called polarizer.py which can add Drude oscillators to a LAMMPS @@ -207,7 +207,7 @@ at univ-bpclermont.fr, alain.dequidt at univ-bpclermont.fr :line -eam database tool :h4,link(eamdb) +eam database tool :h3,link(eamdb) The tools/eam_database directory contains a Fortran program that will generate EAM alloy setfl potential files for any combination of 16 @@ -223,7 +223,7 @@ X. W. Zhou, R. A. Johnson, and H. N. G. Wadley, Phys. Rev. B, 69, :line -eam generate tool :h4,link(eamgn) +eam generate tool :h3,link(eamgn) The tools/eam_generate directory contains several one-file C programs that convert an analytic formula into a tabulated "embedded atom @@ -236,7 +236,7 @@ The source files and potentials were provided by Gerolf Ziegenhain :line -eff tool :h4,link(eff) +eff tool :h3,link(eff) The tools/eff directory contains various scripts for generating structures and post-processing output for simulations using the @@ -247,7 +247,7 @@ These tools were provided by Andres Jaramillo-Botero at CalTech :line -emacs tool :h4,link(emacs) +emacs tool :h3,link(emacs) The tools/emacs directory contains an Emacs Lisp add-on file for GNU Emacs that enables a lammps-mode for editing input scripts when using GNU Emacs, @@ -258,7 +258,7 @@ These tools were provided by Aidan Thompson at Sandia :line -fep tool :h4,link(fep) +fep tool :h3,link(fep) The tools/fep directory contains Python scripts useful for post-processing results from performing free-energy perturbation @@ -271,7 +271,7 @@ See README file in the tools/fep directory. :line -i-pi tool :h4,link(ipi) +i-pi tool :h3,link(ipi) The tools/i-pi directory contains a version of the i-PI package, with all the LAMMPS-unrelated files removed. It is provided so that it can @@ -288,7 +288,7 @@ calculations with LAMMPS. :line -ipp tool :h4,link(ipp) +ipp tool :h3,link(ipp) The tools/ipp directory contains a Perl script ipp which can be used to facilitate the creation of a complicated file (say, a lammps input @@ -302,7 +302,7 @@ tools/createatoms tool's input file. :line -kate tool :h4,link(kate) +kate tool :h3,link(kate) The file in the tools/kate directory is an add-on to the Kate editor in the KDE suite that allow syntax highlighting of LAMMPS input @@ -313,7 +313,7 @@ The file was provided by Alessandro Luigi Sellerio :line -lmp2arc tool :h4,link(arc) +lmp2arc tool :h3,link(arc) The lmp2arc sub-directory contains a tool for converting LAMMPS output files to the format for Accelrys' Insight MD code (formerly @@ -329,7 +329,7 @@ Greathouse at Sandia (jagreat at sandia.gov). :line -lmp2cfg tool :h4,link(cfg) +lmp2cfg tool :h3,link(cfg) The lmp2cfg sub-directory contains a tool for converting LAMMPS output files into a series of *.cfg files which can be read into the @@ -340,7 +340,7 @@ This tool was written by Ara Kooser at Sandia (askoose at sandia.gov). :line -matlab tool :h4,link(matlab) +matlab tool :h3,link(matlab) The matlab sub-directory contains several "MATLAB"_matlabhome scripts for post-processing LAMMPS output. The scripts include readers for log @@ -358,7 +358,7 @@ These scripts were written by Arun Subramaniyan at Purdue Univ :line -micelle2d tool :h4,link(micelle) +micelle2d tool :h3,link(micelle) The file micelle2d.f creates a LAMMPS data file containing short lipid chains in a monomer solution. It uses a text file containing lipid @@ -375,7 +375,7 @@ definition file. This tool was used to create the system for the :line -moltemplate tool :h4,link(moltemplate) +moltemplate tool :h3,link(moltemplate) The moltemplate sub-directory contains a Python-based tool for building molecular systems based on a text-file description, and @@ -389,7 +389,7 @@ supports it. It has its own WWW page at :line -msi2lmp tool :h4,link(msi) +msi2lmp tool :h3,link(msi) The msi2lmp sub-directory contains a tool for creating LAMMPS template input and data files from BIOVIA's Materias Studio files (formerly Accelrys' @@ -406,7 +406,7 @@ See the README file in the tools/msi2lmp folder for more information. :line -phonon tool :h4,link(phonon) +phonon tool :h3,link(phonon) The phonon sub-directory contains a post-processing tool useful for analyzing the output of the "fix phonon"_fix_phonon.html command in @@ -421,7 +421,7 @@ University. :line -polybond tool :h4,link(polybond) +polybond tool :h3,link(polybond) The polybond sub-directory contains a Python-based tool useful for performing "programmable polymer bonding". The Python file @@ -435,7 +435,7 @@ This tool was written by Zachary Kraus at Georgia Tech. :line -pymol_asphere tool :h4,link(pymol) +pymol_asphere tool :h3,link(pymol) The pymol_asphere sub-directory contains a tool for converting a LAMMPS dump file that contains orientation info for ellipsoidal @@ -453,7 +453,7 @@ This tool was written by Mike Brown at Sandia. :line -python tool :h4,link(pythontools) +python tool :h3,link(pythontools) The python sub-directory contains several Python scripts that perform common LAMMPS post-processing tasks, such as: @@ -469,7 +469,7 @@ README for more info on Pizza.py and how to use these scripts. :line -reax tool :h4,link(reax_tool) +reax tool :h3,link(reax_tool) The reax sub-directory contains stand-alond codes that can post-process the output of the "fix reax/bonds"_fix_reax_bonds.html @@ -480,7 +480,7 @@ These tools were written by Aidan Thompson at Sandia. :line -smd tool :h4,link(smd) +smd tool :h3,link(smd) The smd sub-directory contains a C++ file dump2vtk_tris.cpp and Makefile which can be compiled and used to convert triangle output @@ -496,7 +496,7 @@ Ernst Mach Institute in Germany (georg.ganzenmueller at emi.fhg.de). :line -vim tool :h4,link(vim) +vim tool :h3,link(vim) The files in the tools/vim directory are add-ons to the VIM editor that allow easier editing of LAMMPS input scripts. See the README.txt @@ -507,7 +507,7 @@ ziegenhain.com) :line -xmgrace tool :h4,link(xmgrace) +xmgrace tool :h3,link(xmgrace) The files in the tools/xmgrace directory can be used to plot the thermodynamic data in LAMMPS log files via the xmgrace plotting From c97e6537c805abcae1a6e8fd466b07f070b8d2c7 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 9 Aug 2018 10:19:10 -0600 Subject: [PATCH 443/675] changes to replace Section_start.txt --- doc/src/Build.txt | 50 + doc/src/Build_basics.txt | 318 ++++++ doc/src/Build_cmake.txt | 159 +++ doc/src/Build_extras.txt | 803 +++++++++++++++ doc/src/Build_link.txt | 85 ++ doc/src/Build_make.txt | 66 ++ doc/src/Build_package.txt | 182 ++++ doc/src/Build_settings.txt | 327 +++++++ doc/src/Install.txt | 64 ++ doc/src/Install_git.txt | 120 +++ doc/src/Install_linux.txt | 120 +++ doc/src/Install_mac.txt | 55 ++ doc/src/Install_patch.txt | 67 ++ doc/src/Install_svn.txt | 95 ++ doc/src/Install_tarball.txt | 64 ++ doc/src/Install_windows.txt | 52 + doc/src/Run.txt | 37 + doc/src/Run_basics.txt | 87 ++ doc/src/Run_options.txt | 470 +++++++++ doc/src/Run_output.txt | 176 ++++ doc/src/Run_windows.txt | 73 ++ doc/src/Section_start.txt | 1823 ----------------------------------- 22 files changed, 3470 insertions(+), 1823 deletions(-) create mode 100644 doc/src/Build.txt create mode 100644 doc/src/Build_basics.txt create mode 100644 doc/src/Build_cmake.txt create mode 100644 doc/src/Build_extras.txt create mode 100644 doc/src/Build_link.txt create mode 100644 doc/src/Build_make.txt create mode 100644 doc/src/Build_package.txt create mode 100644 doc/src/Build_settings.txt create mode 100644 doc/src/Install.txt create mode 100644 doc/src/Install_git.txt create mode 100644 doc/src/Install_linux.txt create mode 100644 doc/src/Install_mac.txt create mode 100644 doc/src/Install_patch.txt create mode 100644 doc/src/Install_svn.txt create mode 100644 doc/src/Install_tarball.txt create mode 100644 doc/src/Install_windows.txt create mode 100644 doc/src/Run.txt create mode 100644 doc/src/Run_basics.txt create mode 100644 doc/src/Run_options.txt create mode 100644 doc/src/Run_output.txt create mode 100644 doc/src/Run_windows.txt delete mode 100644 doc/src/Section_start.txt diff --git a/doc/src/Build.txt b/doc/src/Build.txt new file mode 100644 index 0000000000..653c217d4c --- /dev/null +++ b/doc/src/Build.txt @@ -0,0 +1,50 @@ +"Previous Section"_Install.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Run.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +Build LAMMPS :h2 + +LAMMPS can be built as an executable or library from source code via +either CMake or traditional make. As an alternative you can download +a pre-built executable file as described on the "Install"_Install.html +doc page. + + + + + +"Build LAMMPS with CMake"_Build_cmake.html +"Build LAMMPS with make"_Build_make.html +"Link LAMMPS as a library to another code"_Build_link.html :all(b) + +Build options: + +"Basic build options: serial/parallel, compilers, executable/library"_Build_basics.html +"Optional build settings"_Build_settings.html :all(b) +"Include packages in build"_Build_package.html +"Packages with extra build options"_Build_extras.html :all(b) + +If you have problems building LAMMPS, it is often due to software +issues on your local machine. If you can, find a local expert to +help. If you're still stuck, send an email to the "LAMMPS mail +list"_http://lammps.sandia.gov/mail.html. diff --git a/doc/src/Build_basics.txt b/doc/src/Build_basics.txt new file mode 100644 index 0000000000..b2816b7acb --- /dev/null +++ b/doc/src/Build_basics.txt @@ -0,0 +1,318 @@ +"Higher level section"_Build.html - "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 + +Basic build options :h3 + +The following topics are covered on this page, for building both with +CMake and make: + +"Serial vs parallel build"_#serial +"Choice of compiler and compile/link options"_#compile +"Build LAMMPS as an executable or a library"_#exe +"Build the LAMMPS documentation"_#doc +"Install LAMMPS after a build"_#install :ul + +:line +:line + +Serial vs parallel build :h3,link(serial) + +LAMMPS can be built to run in parallel using the ubiquitous "MPI +(message-passing +interface)"_https://en.wikipedia.org/wiki/Message_Passing_Interface +library. Or it can built to run on a single processor (serial) +without MPI. It can also be built with support for OpenMP threading +(see more discussion below). + +[CMake variables]: + +-D BUILD_MPI=value # yes or no, default is yes if CMake finds MPI, else no +-D BUILD_OMP=value # yes or no (default) +-D LAMMPS_MACHINE=name # name = mpi, serial, mybox, titan, laptop, etc + # no default value :pre + +The executable CMake creates (after running make) is lmp_name. If the +LAMMPS_MACHINE variable is not specified, the executable is just lmp. +Using BUILD_MPI=no will produce a serial executable. + +[Traditional make]: + +cd lammps/src +make mpi # parallel build, produces lmp_mpi using Makefile.mpi +make serial # serial build, produces lmp_serial using Makefile/serial +make mybox :pre # uses Makefile.mybox, produces lmp_mybox :pre + +Serial build (see src/MAKE/Makefile.serial): + +MPI_INC = -I../STUBS +MPI_PATH = -L../STUBS +MPI_LIB = -lmpi_stubs :pre + +For a parallel build, if MPI is installed on your system in the usual +place (e.g. under /usr/local), you do not need to specify the 3 +variables MPI_INC, MPI_PATH, MPI_LIB. The MPI wrapper on the compiler +(e.g. mpicxx, mpiCC) knows where to find the needed include and +library files. Failing this, these 3 variables can be used to specify +where the mpi.h file (MPI_INC), and the MPI library files (MPI_PATH) +are found, and the name of the library files (MPI_LIB). + +For a serial build, you need to specify the 3 varaibles, as shown +above. + +For a serial LAMMPS build, use the dummy MPI library provided in +src/STUBS. You also need to build the STUBS library for your platform +before making LAMMPS itself. A "make serial" build does this for. +Otherwise, type "make mpi-stubs" from the src directory, or "make" +from the src/STUBS dir. If the build fails, you will need to edit the +STUBS/Makefile for your platform. + +The file STUBS/mpi.c provides a CPU timer function called MPI_Wtime() +that calls gettimeofday() . If your system doesn't support +gettimeofday() , you'll need to insert code to call another timer. +Note that the ANSI-standard function clock() rolls over after an hour +or so, and is therefore insufficient for timing long LAMMPS +simulations. + +[CMake and make info]: + +If you are installing MPI yourself, we recommend Argonne's MPICH2 or +OpenMPI. MPICH can be downloaded from the "Argonne MPI +site"_http://www.mcs.anl.gov/research/projects/mpich2/. OpenMPI can +be downloaded from the "OpenMPI site"_http://www.open-mpi.org. Other +MPI packages should also work. If you are running on a large parallel +machine, your system admins or the vendor should have already +installed a version of MPI, which is likely to be faster than a +self-installed MPICH or OpenMPI, so find out how to build and link +with it. + +The majority of OpenMP (threading) support in LAMMPS is provided by +the USER-OMP package; see the "Speed omp"_Speed_omp.html doc page for +details. + +However, there are a few commands in LAMMPS that have native OpenMP +support. These are commands in the MPIIO, SNAP, USER-COLVARS, and +USER-DPD packages. See the "Packages details"_Packages_details.html +doc page for more info on these packages and the doc pages for their +respective commands for OpenMP threading info. + +TODO: is this the complete list of native OpenMP commands in LAMMPS? + +For CMake, if you use BUILD_OMP=yes, then you can use these packages +and turn on their native OpenMP support at run time, by first setting +the OMP_NUM_THREADS environment variable. + +For make, ... + +TODO: how do we build LAMMPS with make, to include OpenMP support +(separate from USER-OMP package). Akin to CMake with BUILD_OMP=yes. + +:line + +Choice of compiler and compile/link options :h3,link(compile) + +The choice of compiler and compiler flags can be important for +performance. Vendor compilers can produce faster code than +open-source compilers like GNU. On boxes with Intel CPUs, we suggest +trying the "Intel C++ compiler"_intel. + +:link(intel,https://software.intel.com/en-us/intel-compilers) + +On parallel clusters or supercomputers which use "modules" for their +compile/link environments, you can often access different compilers by +simply loading the appropriate module before building LAMMPS. + +[CMake variables]: + +-D CMAKE_CXX_COMPILER=name # name of C++ compiler +-D CMAKE_C_COMPILER=name # name of C compiler +-D CMAKE_Fortran_COMPILER=name # name of Fortran compiler :pre + +-D CMAKE_CXX_FlAGS=string # flags to use with C++ compiler +-D CMAKE_C_FlAGS=string # flags to use with C compiler +-D CMAKE_Fortran_FlAGS=string # flags to use with Fortran compiler :pre + +By default CMake will use a compiler it finds and it will use +optimization flags appropriate to that compiler and any "accelerator +packages"_Speed_packages.html you have included in the build. + +You can tell CMake to look for a specific compiler with these varaible +settings. Likewise you can specify the FLAGS variables if you want to +experiment with alternate optimization flags. You should specify all +3 compilers, so that the small number of LAMMPS source files written +in C or Fortran are built with a compiler consistent with the one used +for all the C++ files: + +Building with GNU Compilers: +cmake ../cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran +Building with Intel Compilers: +cmake ../cmake -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DCMAKE_Fortran_COMPILER=ifort +Building with LLVM/Clang Compilers: +cmake ../cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_Fortran_COMPILER=flang :pre + +NOTE: When the cmake command completes, it prints info to the screen +as to what compilers it is using, and what flags will be used in the +compilation. Note that if the top-level compiler is mpicxx, it is +simply a wrapper on a real compiler. The low-level compiler info is +also in the output. You should check to insure you are using the +compiler and optimization flags that are the ones you want. + +[Makefile.machine settings]: + +Parallel build (see src/MAKE/Makefile.mpi): + +CC = mpicxx +CCFLAGS = -g -O3 +LINK = mpicxx +LINKFLAGS = -g -O :pre + +Serial build (see src/MAKE/Makefile.serial): + +CC = g++ +CCFLAGS = -g -O3 +LINK = g++ +LINKFLAGS = -g -O :pre + +The "compiler/linker settings" section of a Makefile.machine lists +compiler and linker settings for your C++ compiler, including +optimization flags. You should always use mpicxx or mpiCC for +a parallel build, since these compiler wrappers will include +a variety of settings appropriate for your MPI installation. + +NOTE: If you build LAMMPS with any "accelerator +packages"_Speed_packages.html included, they have specific +optimization flags that are either required or recommended for optimal +performance. You need to include these in the CCFLAGS and LINKFLAGS +settings above. For details, see the individual package doc pages +listed on the "Speed packages"_Speed_packages.html doc page. Or +examine these files in the src/MAKE/OPTIONS directory. They +correspond to each of the 5 accelerator packages and their hardware +variants: + +Makefile.opt # OPT package +Makefile.omp # USER-OMP package +Makefile.intel_cpu # USER-INTEL package for CPUs +Makefile.intel_coprocessor # USER-INTEL package for KNLs +Makefile.gpu # GPU package +Makefile.kokkos_cuda_mpi # KOKKOS package for GPUs +Makefile.kokkos_omp # KOKKOS package for CPUs (OpenMP) +Makefile.kokkos_phi # KOKKOS package for KNLs (OpenMP) :pre + +NOTE: When you build LAMMPS for the first time, a long list of *.d +files will be printed out rapidly. This is not an error; it is the +Makefile doing its normal creation of dependencies. + +:line + +Build LAMMPS as an executable or a library :h3,link(exe) + +LAMMPS can be built as either an executable or as a static or shared +library. The library can be called from another application or a +scripting language. See the "Howto couple"_Howto_couple.html doc page +for more info on coupling LAMMPS to other codes. See the +"Python"_Python doc page for more info on wrapping and running LAMMPS +from Python. + +[CMake variables]: + +-D BUILD_EXE=value # yes (default) or no +-D BUILD_LIB=value # yes or no (default) +-D BUILD_SHARED_LIBS=value # yes or no (default) :pre + +Setting BUILD_EXE=no will not produce an executable. Setting +BUILD_LIB=yes will produce a static library named liblammps.a. +Setting both BUILD_LIB=yes and BUILD_SHARED_LIBS=yes will produce a +static library named liblammps.so. + +[Traditional make]: + +cd lammps/src +make machine # build LAMMPS executable lmp_machine +make mode=lib machine # build LAMMPS static lib liblammps_machine.a +make mode=shlib machine # build LAMMPS shared lib liblammps_machine.so :pre + +The two library builds also create generic links liblammps.a and +liblammps.so which point to the liblammps_machine files. + +[CMake and make info]: + +Note that for a shared library to be usable by a calling program, all +the auxiliary libraries it depends on must also exist as shared +libraries. This will be the case for libraries included with LAMMPS, +such as the dummy MPI library in src/STUBS or any package libraries in +lib/packages, since they are always built as shared libraries using +the -fPIC switch. However, if a library like MPI or FFTW does not +exist as a shared library, the shared library build will generate an +error. This means you will need to install a shared library version +of the auxiliary library. The build instructions for the library +should tell you how to do this. + +As an example, here is how to build and install the "MPICH +library"_mpich, a popular open-source version of MPI, distributed by +Argonne National Labs, as a shared library in the default +/usr/local/lib location: + +:link(mpich,http://www-unix.mcs.anl.gov/mpi) + +./configure --enable-shared +make +make install :pre + +You may need to use "sudo make install" in place of the last line if +you do not have write privileges for /usr/local/lib. The end result +should be the file /usr/local/lib/libmpich.so. + +:line + +Build the LAMMPS documentation :h3,link(doc) + +[CMake variable]: + +-D BUILD_DOC=value # yes or no (default) :pre + +This will create the HTML doc pages within the CMake build dir. The +reason to do this is if you want to "install" LAMMPS on a system after +the CMake build, and include the doc pages in the install. + +[Traditional make]: + +cd lammps/doc +make html # html doc pages +make pdf # single Manual.pdf file :pre + +This will create a lammps/doc/html dir with the HTML doc pages so that +you can browse them locally on your system. Type "make" from the the +lammps/doc dir to see other options. + +:line + +Install LAMMPS after a build :h3,link(install) + +After building LAMMPS, you may wish to copy the LAMMPS executable of +library, along with other LAMMPS files (library header, doc files) to +a globally visible place on your system, for others to access. Note +that you may need super-user priveleges (e.g. sudo) if the place you +want to copy files to is protected. + +[CMake variable]: + +cmake CMAKE_INSTALL_PREFIX=path \[options ...\] ~/lammps/cmake +make # perform make after CMake command +make install # perform the installation :pre + +Note that The CMAKE_INSTALL_PREFIX=path is not a -D variable like +other LAMMPS settings, but rather an option to the cmake command. The +path is where to install the LAMMPS files. + +TODO: is this sub-section correct? + +[Traditional make]: + +There is no "install" option in the src/Makefile for LAMMPS. If you +wish to do this you will need to build, then manually copy the +desired LAMMPS files to the appopriate system directories. diff --git a/doc/src/Build_cmake.txt b/doc/src/Build_cmake.txt new file mode 100644 index 0000000000..2bc10d1463 --- /dev/null +++ b/doc/src/Build_cmake.txt @@ -0,0 +1,159 @@ +"Higher level section"_Build.html - "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 + +Build LAMMPS with CMake :h3 + +This page is a short summary of how to use CMake to build LAMMPS. +Specific details on CMake variables that enable LAMMPS build options +are given on the pages linked to from the "Build"_Build.html doc page. + +Richard Berger (Temple U) has also written a more comprehensive guide +for how to use CMake to build LAMMPS. If you are new to CMake it is a +good place to start: + +"Bulding LAMMPS using +CMake"_https://github.com/rbberger/lammps/tree/cmake_documentation/cmake + +:line + +Building LAMMPS with CMake is a two-step process. First use CMake to +create a Makefile. Then use the standard make command to build +LAMMPS, which uses the created Makefile. + +mkdir mydir; cd mydir # create a new dir for build +cmake ~/lammps/cmake \[options ...\] # command-line version +ccmake ~/lammps/cmake # curses version (terminal-style menu) +cmake-gui ~/lammps/cmake # GUI version +make # traditional make command +make install # optional, copy LAMMPS executable & library elsewhere :pre + +The make command will compile and link LAMMPS, producing the +executable lmp and the library liblammps.a in mydir. + +If your machine has multiple cores (most do), using a command like +"make -j" will be much faster. + +:line + +There are 3 variants of CMake: a command-line verison, a curses +version (teminal-style menu), and a GUI version. You can use any of +them to build LAMMPS. All the versions produce a Makefile as their +output. See more details on each below. + +You can specify a variety of options with any of the 3 versions, which +affect how the build is performed and what is included in the LAMMPS +executable. Links to pages explaining all the options are listed on +the "Build"_Build.html doc page. + +Perform the build in a new directory you create. It can be a sub-dir +within lammps/cmake or anywhere you wish. You can perform separate +builds, with different options, in as many directories as you like. +All the auxiliary files created by the build (executable, object +files, log files, etc) are stored in that directory or sub-directories +within it that CMake creates. + +NOTE: To perform a CMake build, no packages can be installed in the +LAMMPS src dir. Likewise no style*.h or a lmpinstalledpkgs.h file can +exist, which are auto-generated by "building LAMMPS via traditional +make"_Build_make.html. CMake detects if this is not the case and +generates an error, telling you to type "make no-all purge" in the src +directory to un-install all packages. The purge removes all the +auto-generated *.h files. + +You must have CMake version 2.8 or later on your system to build +LAMMPS. If you include the GPU package, version 3.2 or later is +required. Installation instructions for CMake are below. + +After the initial build, if you edit LAMMPS source files, or add your +own new files to the source directory, you can just re-type make from +your build directory and it will re-compile only the files that have +changed. If you want to change CMake options, you can remove the +cache file CMakeCache.txt in the build directory and start over. Or +you can run cmake again from the same build directory and alter +various options; see details below. + +:line + +[Command-line version of CMake]: + +cmake \[options ...\] ~/lammps/cmake # build from any dir +cmake \[options ...\] .. # build from lammps/cmake/newdir :pre + +The cmake command takes one required argument, which is the LAMMPS +cmake directory which contains the CMakeLists.txt file. + +The argument can be preceeded or followed by various CMake +command-line options. Several useful ones are: + +CAKE_INSTALL_PREFIX=path # where to install LAMMPS executable/lib if desired +CMAKE_BUILD_TYPE=type # type = Release or Debug +-G output # style of output CMake generates +-DVARIABLE=value # setting for a LAMMPS feature to enable +-D VARIABLE=value # ditto, but cannot come after CMakeLists.txt dir + +All the LAMMPS-specific -D variables that a LAMMPS build supports are +described on the pages linked to from the "Build"_Build.html doc page. +All of these variable names are upper-case and their values are +lower-case, e.g. -D LAMMPS_SIZES=smallbig. For boolean values, any of +these forms can be used: yes/no, on/off, 1/0. + +By default CMake generates a Makefile to perform the LAMMPS build. +Alternate forms of build info can be generated via the -G switch, +e.g. Visual Studio on a Windows machine. Type "cmake --help" to see +the "Generator" styles of output your system supports. + +NOTE: When CMake runs, it prints configuration info to the screen. +You should scan this to verify all the features you requested were +enabled, including packages. You can also see what compiler and +compile options will be used for the build. Any errors will also be +flagged, e.g. mis-typed variable names or variable values. + +CMake creates a CMakeCache.txt file when it runs. This stores all the +settings, so that running CMake again from the same directory will +inherit those settings. + +TODO: explain how to change settings on a subsequent cmake in the same +build dir. In that case is "." the final arg of cmake? + +[Curses version (terminal-style menu) of CMake]: + +ccmake ~/lammps/cmake :pre + +TODO: give brief explanation of how to find and toggle options, how to +perform the generate, how to use it multiple times. + +[GUI version of CMake]: + +cmake-gui ~/lammps/cmake :pre + +TODO: give brief explanation of how to find and toggle options, how to +perform the generate, how to use it multiple times. + +:line + +[Installing CMake] + +Check if your machine already has CMake installed: + +which cmake # do you have it? +which cmake3 # version 3 may have this name +cmake --version # what specific version you have :pre + +On clusters or supercomputers which use modules to manage software +packages, do this: + +module list # is a cmake module is already loaded +module avail # is a cmake module available? +module load cmake3 # load cmake module with appropriate name :pre + +If you do not have CMake or a new enough version, you can install it +as follows: + +TODO: give install instructions for Linux, Mac, Windows + diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt new file mode 100644 index 0000000000..82f720791d --- /dev/null +++ b/doc/src/Build_extras.txt @@ -0,0 +1,803 @@ +"Higher level section"_Build.html - "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 + +Packages with extra build options :h3 + +When building with some packages, additional steps may be required, +beyond just "-D PKG_NAME=yes" for CMake or "make yes-name" for make, +as described on the "Build_package"_Build_package.html doc page. + +For a CMake build there may be additional variables that can be set. +For a build with make, a provided library under the lammps/lib +directory may need to be built first. Or an external library may need +to be downloaded and built, and you may need to tell LAMMPS where it +is found on your system. + +This is the list of packages that may require additional steps. + +"GPU"_#gpu, +"KIM"_#kim, +"KOKKOS"_#kokkos, +"LATTE"_#latte, +"MEAM"_#meam, +"MSCG"_#mscg, +"OPT"_#opt, +"POEMS"_#poems, +"PYTHON"_#python, +"REAX"_#reax, +"VORONOI"_#voronoi, +"USER-ATC"_#user-atc, +"USER-AWPMD"_#user-awpmd, +"USER-COLVARS"_#user-colvars, +"USER-H5MD"_#user-h5md, +"USER-INTEL"_#user-intel, +"USER-MOLFILE"_#user-molfile, +"USER-NETCDF"_#user-netcdf, +"USER-OMP"_#user-omp, +"USER-QMMM"_#user-qmmm, +"USER-QUIP"_#user-quip, +"USER-SMD"_#user-smd, +"USER-VTK"_#user-vtk :tb(c=6,ea=c) + +:line +:line + +COMPRESS package + +To build with this package you must have the zlib compression library +available on your system. + +[CMake build]: + +If CMake cannot find the library, you can set these variables: + +-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file +-D ZLIB_LIBRARIES=path # path to libzlib.a (.so) file + +[Traditional make]: + +If make cannot find the library, you can edit the +lib/compress/Makefile.lammps file to specify the paths and library +name. + +:line + +GPU package :h3,link(gpu) + +To build with this package, you need to choose options for precision +and which GPU hardware to build for. To build with make you also need +to build the library in lib/gpu first. + +[CMake build]: + +-D GPU_API=value # value = opencl (default) or cuda +-D GPU_PREC=value # precision setting + # value = single or mixed (default) or double +-D OCL_TUNE=value # hardware choice for GPU_API=opencl + # generic (default) or intel (Intel CPU) or phi (Intel Xeon Phi) or fermi (NVIDIA) or kepler (NVIDIA) or cypress (NVIDIA) +-D GPU_ARCH=value # hardware choice for GPU_API=cuda + # value = sm20 (Fermi) or sm30 (Kepler) or sm50 (Maxwell) or sm60 (Pascal) or sm70 (Volta) + # default is Cuda-compiler dependent, but typically Fermi +-D CUDPP_OPT=value # optimization setting for GPU_API=cudea + # enables CUDA Performance Primitives Optimizations + # on (default) or off + +[Traditional make]: + +You must first build the GPU library in lib/gpu. You can do this +manually if you prefer; follow the instructions in lib/gpu/README. +Note that the GPU library uses MPI calls, so you must use the same MPI +library (or the STUBS library) settings as the main LAMMPS code. This +also applies to the -DLAMMPS_BIGBIG, -DLAMMPS_SMALLBIG, or +-DLAMMPS_SMALLSMALL settings in whichever Makefile you use. + +You can also build the library in one step from the lammps/src dir, +using a command like these, which simply invoke the lib/gpu/Install.py +script with the specified args: + +make lib-gpu # print help message +make lib-gpu args="-b" # build GPU library with default Makefile.linux +make lib-gpu args="-m xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision +make lib-gpu args="-m mpi -p mixed -b" # build GPU library with mixed precision using settings in Makefile.mpi :pre + +Note that this procedure starts with a Makefile.machine in lib/gpu, as +specified by the "-m" switch. For your convenience, machine makefiles +for "mpi" and "serial" are provided, which have the same settings as +the corresponding machine makefiles in the main LAMMPS source +folder. In addition you can alter 4 important settings in the +Makefile.machine you start from, via the -h, -a, -p, -e switches, and +also save a copy of the new Makefile, if desired: + +CUDA_HOME = where NVIDIA CUDA software is installed on your system +CUDA_ARCH = what GPU hardware you have (see help message for details) +CUDA_PRECISION = precision (double, mixed, single) +EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul + +If the library build is successful, 3 files should be created: +lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and +lib/gpu/Makefile.lammps. The latter has settings that enable LAMMPS +to link with CUDA libraries. If the settings in Makefile.lammps for +your machine are not correct, the LAMMPS build will fail, and +lib/gpu/Makefile.lammps may need to be edited. + +NOTE: If you re-build the GPU library in lib/gpu, you should always +un-install the GPU package, then re-install it and re-build LAMMPS. +This is because the compilation of files in the GPU package use the +library settings from the lib/gpu/Makefile.machine used to build the +GPU library. + +:line + +KIM package :h3,link(kim) + +To build with this package, the KIM library must be downloaded and +built on your system. It must include the KIM models that you want to +use with LAMMPS. + +Note that in LAMMPS lingo, a KIM model driver is a pair style +(e.g. EAM or Tersoff). A KIM model is a pair style for a particular +element or alloy and set of parameters, e.g. EAM for Cu with a +specific EAM potential file. Also note that installing the KIM API +library with all its models, may take around 30 min to build. Of +course you only need to do that once. + +See the list of KIM model drivers here: +https://openkim.org/kim-items/model-drivers/alphabetical + +See the list of all KIM models here: +https://openkim.org/kim-items/models/by-model-drivers + +See the list of example KIM models included by default here: +https://openkim.org/kim-api on the "What is in the KIM API source +package?" page. + +[CMake build]: + +TODO: how to do this + +[Traditional make]: + +You can do download and build the KIM library manually if you prefer; +follow the instructions in lib/kim/README. You can also do it in one +step from the lammps/src dir, using a command like these, which simply +invoke the lib/kim/Install.py script with the specified args. + +make lib-kim # print help message +make lib-kim args="-b " # (re-)install KIM API lib with only example models +make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001" # ditto plus one model +make lib-kim args="-b -a everything" # install KIM API lib with all models +make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # add one model or model driver +make lib-kim args="-p /usr/local/kim-api" # use an existing KIM API installation at the provided location +make lib-kim args="-p /usr/local/kim-api -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver :pre + +:line + +KOKKOS package :h3,link(kokkos) + +To build with this package, you have to choose a Kokkos setting for +either CPU (multi-threading via OpenMP) or KNL (OpenMP) or GPU (Cuda) +support. + +[CMake build]: + +TODO: how to do this, how to select CPU vs KNL vs GPU, and other +traditional make settings + +[Traditional make]: + + how to choose these 3 things: mode archgpu=N archcpu=SNB + mode = omp or cuda or phi (def = KOKKOS_DEVICES setting in Makefile ) + archgpu = number like 35 (Kepler) or 21 (Fermi) (def = none) + sets KOKKOS_ARCH for GPU to appropriate value + archcpu = SNB or HSW or BGQ or Power7 or Power8 (def = none) + for CPU = SandyBridge, Haswell, BGQ, Power7, Power8 + sets KOKKOS_ARCH for GPU to appropriate value + +For the KOKKOS package, you have 3 choices when building. You can +build with either CPU or KNL or GPU support. Each choice requires +additional settings in your Makefile.machine for the KOKKOS_DEVICES +and KOKKOS_ARCH settings. See the src/MAKE/OPTIONS/Makefile.kokkos* +files for examples. + +For multicore CPUs using OpenMP: + +KOKKOS_DEVICES = OpenMP +KOKKOS_ARCH = HSW # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc :pre + +For Intel KNLs using OpenMP: + +KOKKOS_DEVICES = OpenMP +KOKKOS_ARCH = KNL :pre + +For NVIDIA GPUs using CUDA: + +KOKKOS_DEVICES = Cuda +KOKKOS_ARCH = Pascal60,Power8 # P100 hosted by an IBM Power8, etc +KOKKOS_ARCH = Kepler37,Power8 # K80 hosted by an IBM Power8, etc :pre + +For GPUs, you also need these 2 lines in your Makefile.machine before +the CC line is defined, in this case for use with OpenMPI mpicxx. The +2 lines define a nvcc wrapper compiler, which will use nvcc for +compiling CUDA files or use a C++ compiler for non-Kokkos, non-CUDA +files. + +KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd) +export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper +CC = mpicxx :pre + +Once you have an appropriate Makefile.machine, you can +install/un-install the package and build LAMMPS in the usual manner. +Note that you cannot build one executable to run on multiple hardware +targets (CPU or KNL or GPU). You need to build LAMMPS once for each +hardware target, to produce a separate executable. Also note that we +do not recommend building with other acceleration packages installed +(GPU, OPT, USER-INTEL, USER-OMP) when also building with KOKKOS. + +:line + +LATTE package :h3,link(latte) + +To build with this package, you must download and build the LATTE +library. + +[CMake build]: + +TODO: how to do this + +[Traditional make]: + +You can do this manually if you prefer; follow the instructions in +lib/latte/README. You can also do it in one step from the lammps/src +dir, using a command like these, which simply invokes the +lib/latte/Install.py script with the specified args: + +make lib-latte # print help message +make lib-latte args="-b" # download and build in lib/latte/LATTE-master +make lib-latte args="-p $HOME/latte" # use existing LATTE installation in $HOME/latte +make lib-latte args="-b -m gfortran" # download and build in lib/latte and + # copy Makefile.lammps.gfortran to Makefile.lammps +:pre + +Note that 3 symbolic (soft) links, "includelink" and "liblink" and +"filelink.o", are created in lib/latte to point into the LATTE home +dir. When LAMMPS builds in src it will use these links. You should +also check that the Makefile.lammps file you create is appropriate for +the compiler you use on your system to build LATTE. + +:line + +MEAM package :h3,link(meam) + +NOTE: You should test building the MEAM library with both the Intel +and GNU compilers to see if a simulation runs faster with one versus +the other on your system. + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +Before building LAMMPS with this package, you must first build the +MEAM library in lib/meam. You can do this manually if you prefer; +follow the instructions in lib/meam/README. You can also do it in one +step from the lammps/src dir, using a command like these, which simply +invoke the lib/meam/Install.py script with the specified args: + +make lib-meam # print help message +make lib-meam args="-m mpi" # build with default Fortran compiler compatible with your MPI library +make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran) +make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre + +The build should produce two files: lib/meam/libmeam.a and +lib/meam/Makefile.lammps. The latter is copied from an existing +Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with +Fortran (MEAM library). Typically the two compilers used for LAMMPS +and the MEAM library need to be consistent (e.g. both Intel or both +GNU compilers). If necessary, you can edit/create a new +lib/meam/Makefile.machine file for your system, which should define an +EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine +file. + +:line + +MSCG package :h3,link(mscg) + +Before building LAMMPS with this package, you must first download and +build the MS-CG library. + +[CMake build]: + +TODO: how to do this + +[Traditional make]: + +Building the MS-CG library and using it from +LAMMPS requires a C++11 compatible compiler and that the GSL +(GNU Scientific Library) headers and libraries are installed on your +machine. See the lib/mscg/README and MSCG/Install files for more details. + +Assuming these libraries are in place, you can do the download and +build of MS-CG manually if you prefer; follow the instructions in +lib/mscg/README. You can also do it in one step from the lammps/src +dir, using a command like these, which simply invoke the +lib/mscg/Install.py script with the specified args: + +make lib-mscg # print help message +make lib-mscg args="-b -m serial" # download and build in lib/mscg/MSCG-release-master + # with the settings compatible with "make serial" +make lib-mscg args="-b -m mpi" # download and build in lib/mscg/MSCG-release-master + # with the settings compatible with "make mpi" +make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release :pre + +Note that 2 symbolic (soft) links, "includelink" and "liblink", will be created in lib/mscg +to point to the MS-CG src/installation dir. When LAMMPS is built in src it will use these links. +You should not need to edit the lib/mscg/Makefile.lammps file. + +:line + +OPT package :h3,link(opt) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +NOTE: The compile flag "-restrict" must be used to build LAMMPS with +the OPT package when using Intel compilers. It should be added to +the CCFLAGS line of your Makefile.machine. See Makefile.opt in +src/MAKE/OPTIONS for an example. + +CCFLAGS: add -restrict for Intel compilers :ul + +:line + +POEMS package :h3,link(poems) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +Before building LAMMPS with this package, you must first build the +POEMS library in lib/poems. You can do this manually if you prefer; +follow the instructions in lib/poems/README. You can also do it in +one step from the lammps/src dir, using a command like these, which +simply invoke the lib/poems/Install.py script with the specified args: + +make lib-poems # print help message +make lib-poems args="-m serial" # build with GNU g++ compiler (settings as with "make serial") +make lib-poems args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi") +make lib-poems args="-m icc" # build with Intel icc compiler :pre + +The build should produce two files: lib/poems/libpoems.a and +lib/poems/Makefile.lammps. The latter is copied from an existing +Makefile.lammps.* and has settings needed to build LAMMPS with the +POEMS library (though typically the settings are just blank). If +necessary, you can edit/create a new lib/poems/Makefile.machine file +for your system, which should define an EXTRAMAKE variable to specify +a corresponding Makefile.lammps.machine file. + +:line + +PYTHON package :h3,link(python) + +Building with the PYTHON package assumes you have a Python shared +library available on your system, which needs to be a Python 2 +version, 2.6 or later. Python 3 is not yet supported. See the +lib/python/README for more details. + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +The build uses the lib/python/Makefile.lammps file in the compile/link +process. You should only need to create a new Makefile.lammps.* file +(and copy it to Makefile.lammps) if the LAMMPS build fails. + +:line + +REAX package :h3,link(reax) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +Before building LAMMPS with this package, you must first build the +REAX library in lib/reax. You can do this manually if you prefer; +follow the instructions in lib/reax/README. You can also do it in one +step from the lammps/src dir, using a command like these, which simply +invoke the lib/reax/Install.py script with the specified args: + +make lib-reax # print help message +make lib-reax args="-m serial" # build with GNU Fortran compiler (settings as with "make serial") +make lib-reax args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi") +make lib-reax args="-m ifort" # build with Intel ifort compiler :pre + +The build should produce two files: lib/reax/libreax.a and +lib/reax/Makefile.lammps. The latter is copied from an existing +Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with +Fortran (REAX library). Typically the two compilers used for LAMMPS +and the REAX library need to be consistent (e.g. both Intel or both +GNU compilers). If necessary, you can edit/create a new +lib/reax/Makefile.machine file for your system, which should define an +EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine +file. + +:line + +VORONOI package :h3,link(voronoi) + +[CMake build]: + +TODO: how to do this + +[Traditional make]: + +Before building LAMMPS with this package, you must first download and +build the Voro++ library. You can do this manually if you prefer; +follow the instructions in lib/voronoi/README. You can also do it in +one step from the lammps/src dir, using a command like these, which +simply invoke the lib/voronoi/Install.py script with the specified +args: + +make lib-voronoi # print help message +make lib-voronoi args="-b" # download and build the default version in lib/voronoi/voro++- +make lib-voronoi args="-p $HOME/voro++" # use existing Voro++ installation in $HOME/voro++ +make lib-voronoi args="-b -v voro++0.4.6" # download and build the 0.4.6 version in lib/voronoi/voro++-0.4.6 :pre + +Note that 2 symbolic (soft) links, "includelink" and "liblink", are +created in lib/voronoi to point to the Voro++ src dir. When LAMMPS +builds in src it will use these links. You should not need to edit +the lib/voronoi/Makefile.lammps file. + +:line +:line + +USER-ATC package :h3,link(user-atc) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +Before building LAMMPS with this package, you must first build the ATC +library in lib/atc. You can do this manually if you prefer; follow +the instructions in lib/atc/README. You can also do it in one step +from the lammps/src dir, using a command like these, which simply +invoke the lib/atc/Install.py script with the specified args: + +make lib-atc # print help message +make lib-atc args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial") +make lib-atc args="-m mpi" # build with default MPI compiler (settings as with "make mpi") +make lib-atc args="-m icc" # build with Intel icc compiler :pre + +The build should produce two files: lib/atc/libatc.a and +lib/atc/Makefile.lammps. The latter is copied from an existing +Makefile.lammps.* and has settings needed to build LAMMPS with the ATC +library. If necessary, you can edit/create a new +lib/atc/Makefile.machine file for your system, which should define an +EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine +file. + +Note that the Makefile.lammps file has settings for the BLAS and +LAPACK linear algebra libraries. As explained in lib/atc/README these +can either exist on your system, or you can use the files provided in +lib/linalg. In the latter case you also need to build the library +in lib/linalg with a command like these: + +make lib-linalg # print help message +make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial") +make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi") +make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre + + +:line + +USER-AWPMD package :h3,link(user-awpmd) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +Before building LAMMPS with this package, you must first build the +AWPMD library in lib/awpmd. You can do this manually if you prefer; +follow the instructions in lib/awpmd/README. You can also do it in +one step from the lammps/src dir, using a command like these, which +simply invoke the lib/awpmd/Install.py script with the specified args: + +make lib-awpmd # print help message +make lib-awpmd args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial") +make lib-awpmd args="-m mpi" # build with default MPI compiler (settings as with "make mpi") +make lib-awpmd args="-m icc" # build with Intel icc compiler :pre + +The build should produce two files: lib/awpmd/libawpmd.a and +lib/awpmd/Makefile.lammps. The latter is copied from an existing +Makefile.lammps.* and has settings needed to build LAMMPS with the +AWPMD library. If necessary, you can edit/create a new +lib/awpmd/Makefile.machine file for your system, which should define +an EXTRAMAKE variable to specify a corresponding +Makefile.lammps.machine file. + +Note that the Makefile.lammps file has settings for the BLAS and +LAPACK linear algebra libraries. As explained in lib/awpmd/README +these can either exist on your system, or you can use the files +provided in lib/linalg. In the latter case you also need to build the +library in lib/linalg with a command like these: + +make lib-linalg # print help message +make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial") +make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi") +make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre + +:line + +USER-COLVARS package :h3,link(user-colvars) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +Before building LAMMPS with this package, you must first build the +COLVARS library in lib/colvars. You can do this manually if you +prefer; follow the instructions in lib/colvars/README. You can also +do it in one step from the lammps/src dir, using a command like these, +which simply invoke the lib/colvars/Install.py script with the +specified args: + +make lib-colvars # print help message +make lib-colvars args="-m serial" # build with GNU g++ compiler (settings as with "make serial") +make lib-colvars args="-m mpi" # build with default MPI compiler (settings as with "make mpi") +make lib-colvars args="-m g++-debug" # build with GNU g++ compiler and colvars debugging enabled :pre + +The build should produce two files: lib/colvars/libcolvars.a and +lib/colvars/Makefile.lammps. The latter is copied from an existing +Makefile.lammps.* and has settings needed to build LAMMPS with the +COLVARS library (though typically the settings are just blank). If +necessary, you can edit/create a new lib/colvars/Makefile.machine file +for your system, which should define an EXTRAMAKE variable to specify +a corresponding Makefile.lammps.machine file. + +:line + +USER-H5MD package :h3,link(user-h5md) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +Note that to follow these steps to compile and link to the CH5MD +library, you need the standard HDF5 software package installed on your +system, which should include the h5cc compiler and the HDF5 library. + +Before building LAMMPS with this package, you must first build the +CH5MD library in lib/h5md. You can do this manually if you prefer; +follow the instructions in lib/h5md/README. You can also do it in one +step from the lammps/src dir, using a command like these, which simply +invoke the lib/h5md/Install.py script with the specified args: + +make lib-h5md # print help message +make lib-hm5d args="-m h5cc" # build with h5cc compiler :pre + +The build should produce two files: lib/h5md/libch5md.a and +lib/h5md/Makefile.lammps. The latter is copied from an existing +Makefile.lammps.* and has settings needed to build LAMMPS with the +system HDF5 library. If necessary, you can edit/create a new +lib/h5md/Makefile.machine file for your system, which should define an +EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine +file. + +:line + +USER-INTEL package :h3,link(user-intel) + +[CMake build]: + +TODO: how to choose CPU vs KNL ?? + +[Traditional make]: + +For the USER-INTEL package, you have 2 choices when building. You can +build with either CPU or KNL support. Each choice requires additional +settings in your Makefile.machine for CCFLAGS and LINKFLAGS and +optimized malloc libraries. See the +src/MAKE/OPTIONS/Makefile.intel_cpu and src/MAKE/OPTIONS/Makefile.knl +files for examples. + +For CPUs: + +OPTFLAGS = -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits +CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \ +-fno-alias -ansi-alias -restrict $(OPTFLAGS) +LINKFLAGS = -g -qopenmp $(OPTFLAGS) +LIB = -ltbbmalloc -ltbbmalloc_proxy :pre + +For KNLs: + +OPTFLAGS = -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits +CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \ +-fno-alias -ansi-alias -restrict $(OPTFLAGS) +LINKFLAGS = -g -qopenmp $(OPTFLAGS) +LIB = -ltbbmalloc :pre + +Once you have an appropriate Makefile.machine, you can +install/un-install the package and build LAMMPS in the usual manner. +Note that you cannot build one executable to run on multiple hardware +targets (Intel CPUs or KNL). You need to build LAMMPS once for each +hardware target, to produce a separate executable. + +You should also typically install the USER-OMP package, as it can be +used in tandem with the USER-INTEL package to good effect, as +explained on the "Speed intel"_Speed_intel.html doc page. + +:line + +USER-MOLFILE package :h3,link(user-molfile) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +Note that the lib/molfile/Makefile.lammps file has a setting for a +dynamic loading library libdl.a that should is typically present on +all systems, which is required for LAMMPS to link with this package. +If the setting is not valid for your system, you will need to edit the +Makefile.lammps file. See lib/molfile/README and +lib/molfile/Makefile.lammps for details. + +:line + +USER-NETCDF package :h3,link(user-netcdf) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +Note that to follow these steps, you need the standard NetCDF software +package installed on your system. The lib/netcdf/Makefile.lammps file +has settings for NetCDF include and library files that LAMMPS needs to +compile and linkk with this package. If the settings are not valid +for your system, you will need to edit the Makefile.lammps file. See +lib/netcdf/README for details. + +:line + +USER-OMP package :h3,link(user-omp) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +CCFLAGS: add -fopenmp (and -restrict when using Intel compilers) +LINKFLAGS: add -fopenmp :ul + +:line + +USER-QMMM package :h3,link(user-qmmm) + +The LAMMPS executable these steps produce is not yet functional for a +QM/MM simulation. You must also build Quantum ESPRESSO and create a +new executable which links LAMMPS and Quantum ESPRESSO together. +These are steps 3 and 4 described in the lib/qmmm/README file. + +[CMake build]: + +TODO: how to do this + +[Traditional make]: + +Before building LAMMPS with this package, you must first build the +QMMM library in lib/qmmm. You can do this manually if you prefer; +follow the first two steps explained in lib/qmmm/README. You can +also do it in one step from the lammps/src dir, using a command like +these, which simply invoke the lib/qmmm/Install.py script with the +specified args: + +make lib-qmmm # print help message +make lib-qmmm args="-m serial" # build with GNU Fortran compiler (settings as in "make serial") +make lib-qmmm args="-m mpi" # build with default MPI compiler (settings as in "make mpi") +make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler :pre + +The build should produce two files: lib/qmmm/libqmmm.a and +lib/qmmm/Makefile.lammps. The latter is copied from an existing +Makefile.lammps.* and has settings needed to build LAMMPS with the +QMMM library (though typically the settings are just blank). If +necessary, you can edit/create a new lib/qmmm/Makefile.machine file +for your system, which should define an EXTRAMAKE variable to specify +a corresponding Makefile.lammps.machine file. + +You can then install/un-install the package and build LAMMPS in the +usual manner: + +:line + +USER-QUIP package :h3,link(user-quip) + +[CMake build]: + +TODO: how to do this + +[Traditional make]: + +Note that to follow these steps to compile and link to the QUIP +library, you must first download and build QUIP on your systems. It +can be obtained from GitHub. See step 1 and step 1.1 in the +lib/quip/README file for details on how to do this. Note that it +requires setting two environment variables, QUIP_ROOT and QUIP_ARCH, +which will be accessed by the lib/quip/Makefile.lammps file which is +used when you compile and link LAMMPS with this package. You should +only need to edit this file if the LAMMPS build can not use its +settings to successfully build on your system. + +:line + +USER-SMD package :h3,link(user-smd) + +[CMake build]: + +-D EIGEN3_INCLUDE_DIR + +[Traditional make]: + +Before building LAMMPS with this package, you must first download the +Eigen library. Eigen is a template library, so you do not need to +build it, just download it. You can do this manually if you prefer; +follow the instructions in lib/smd/README. You can also do it in one +step from the lammps/src dir, using a command like these, which simply +invoke the lib/smd/Install.py script with the specified args: + +make lib-smd # print help message +make lib-smd args="-b" # download and build in default lib/smd/eigen-eigen-... +make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3 :pre + +Note that a symbolic (soft) link named "includelink" is created in +lib/smd to point to the Eigen dir. When LAMMPS builds it will use +this link. You should not need to edit the lib/smd/Makefile.lammps file. + +You can then install/un-install the package and build LAMMPS in the +usual manner: + +:line + +USER-VTK package :h3,link(user-vtk) + +[CMake build]: + +TODO: automatic, i.e. nothing to do? + +[Traditional make]: + +The lib/vtk/Makefile.lammps file has settings for accessing VTK files +and its library, which are required for LAMMPS to build and link with +this package. If the settings are not valid for your system, check if +one of the other lib/vtk/Makefile.lammps.* files is compatible and +copy it to Makefile.lammps. If none of the provided files work, you +will need to edit the Makefile.lammps file. + +You can then install/un-install the package and build LAMMPS in the +usual manner: diff --git a/doc/src/Build_link.txt b/doc/src/Build_link.txt new file mode 100644 index 0000000000..1a1b387f3f --- /dev/null +++ b/doc/src/Build_link.txt @@ -0,0 +1,85 @@ +"Higher level section"_Build.html - "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 + +Link LAMMPS as a library to another code :h3 + +LAMMPS can be used as a library by another application, including +Python scripts. The files src/library.cpp and library.h define the +C-style API for using LAMMPS as a library. See the "Howto +library"_Howto_library.html doc page for a description of the +interface and how to extend it for your needs. + +The "Build basics"_Build_basics.html doc page explains how to build +LAMMPS as either a shared or static library. This results in one of +these 2 files: + +liblammps.so # shared library +liblammps.a # static library + +:line + +[Link with LAMMPS as a static library]: + +The calling application can link to LAMMPS as a static library with a +link command like this: + +g++ caller.o -L/home/sjplimp/lammps/src -llammps -o caller + +The -L argument is the path to where the liblammps.a file is. The +-llammps argument is shorthand for the file liblammps.a. + +:line + +[Link with LAMMPS as a shared library]: + +If you wish to link to liblammps.so, the operating system finds shared +libraries to load at run-time using the environment variable +LD_LIBRARY_PATH. To enable this you can do one of two things: + +(1) Copy the liblammps.so file to a location the system can find it, +such as /usr/local/lib. I.e. a directory already listed in your +LD_LIBRARY_PATH variable. You can type + +printenv LD_LIBRARY_PATH :pre + +to see what directories are in that list. + +(2) Add the LAMMPS src directory (or the directory you perform CMake +build in) to your LD_LIBRARY_PATH, so that the current version of the +shared library is always available to programs that use it. + +For the csh or tcsh shells, you would add something like this to your +~/.cshrc file: + +setenv LD_LIBRARY_PATH $\{LD_LIBRARY_PATH\}:/home/sjplimp/lammps/src :pre + +:line + +[Calling the LAMMPS library]: + +Either flavor of library (static or shared) allows one or more LAMMPS +objects to be instantiated from the calling program. + +When used from a C++ program, all of LAMMPS is wrapped in a LAMMPS_NS +namespace; you can safely use any of its classes and methods from +within the calling code, as needed. + +When used from a C or Fortran program, the library has a simple +C-style interface, provided in src/library.cpp and src/library.h. + +See the "Python library"_Python_library.html doc page for a +description of the Python interface to LAMMPS, which wraps the C-style +interface. + +See the sample codes in examples/COUPLE/simple for examples of C++ and +C and Fortran codes that invoke LAMMPS thru its library interface. +Other examples in the COUPLE directory use coupling ideas discussed on +the "Howto couple"_Howto_couple.html doc page. + + diff --git a/doc/src/Build_make.txt b/doc/src/Build_make.txt new file mode 100644 index 0000000000..4603a986a3 --- /dev/null +++ b/doc/src/Build_make.txt @@ -0,0 +1,66 @@ +"Higher level section"_Build.html - "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 + +Build LAMMPS with make :h3 + +Building LAMMPS with traditional make requires you have a +Makefile.machine file in the src/MAKE directory appropriate for your +system (see below). It can list various options for what to +include/exclude in a LAMMPS build. To include LAMMPS packages you +must install them first, as discussed on the "Build +package"_Build_package.html doc page. If the packages use provided or +external libraries, you must build those libraries before building +LAMMPS. Building "LAMMPS with CMake"_Build_cmake.html can automate +all of this, so we suggest you try it first. + +These commands perform a default LAMMPS build, producing the LAMMPS +executable lmp_serial or lmp_mpi in lammps/src: + +cd lammps/src +make serial # build a serial LAMMPS executable +make mpi # build a parallel LAMMPS executable with MPI +make # see a variety of make options :pre + +If your machine has multiple cores (most do), using a command like +"make -j mpi" will be much faster. + +After the initial build, if you edit LAMMPS source files, or add new +files to the source directory, you can re-type make and it will only +re-compile the files that have changed. + +:line + +The lammps/src/MAKE directory contains all the Makefile.machine files +included in the LAMMPS distribution. Typing "make machine" uses +Makefile.machine. Thus the "make serial" or "make mpi" lines above +use Makefile.serial and Makefile.mpi. Others are in these dirs: + +OPTIONS # Makefiles which enable specific options +MACHINES # Makefiles for specific machines +MINE # customized Makefiles you create :pre + +Typing "make" lists all the available Makefile.machine files. A file +with the same name can appear in multiple dirs (not a good idea). The +order the dirs are searched is as follows: src/MAKE/MINE, src/MAKE, +src/MAKE/OPTIONS, src/MAKE/MACHINES. This gives preference to a +customized file you put in src/MAKE/MINE. + +Makefiles you may wish to try include these (some require a package +first be installed). Many of these include specific compiler flags +for optimized performance: + +make mac # build serial LAMMPS on a Mac +make mac_mpi # build parallel LAMMPS on a Mac +make intel_cpu # build with the USER-INTEL package optimized for CPUs +make knl # build with the USER-INTEL package optimized for KNLs +make opt # build with the OPT package optimized for CPUs +make omp # build with the USER-OMP package optimized for OpenMP +make kokkos_omp # build with the KOKKOS package for OpenMP +make kokkos_cuda_mpi # build with the KOKKOS package for GPUs +make kokkos_phi # build with the KOKKOS package for KNLs :pre diff --git a/doc/src/Build_package.txt b/doc/src/Build_package.txt new file mode 100644 index 0000000000..e59bf2b9d6 --- /dev/null +++ b/doc/src/Build_package.txt @@ -0,0 +1,182 @@ +"Higher level section"_Build.html - "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 + +Include packages in build :h3 + +In LAMMPS, a package is a group of files that enable a specific set of +features. For example, force fields for molecular systems or +rigid-body constraints are in packages. In the src directory, each +package is a sub-directory with the package name in capital letters. + +A complete list of packages with brief overviews of each are on the +"Packages details"_Packages_details.html doc page. + +When building LAMMPS, you can choose to include or exclude each +package. In general there is no need to include a package if you +never plan to use its features. + +If you get a run-time error that a LAMMPS command or style is +"Unknown", it is often because the command is contained in a package, +and your build did not include the package. Running LAMMPS with the +"-h command-line switch"_Run_options.html will print all the included +packages and commands for that executable. + +The mechanism for including packages is different for CMake versus a +traditional make. + +For the majority of packages, if you follow the single step below to +include it, you can then build LAMMPS exactly the same as you would +without any packages installed. A few packages may require additional +steps, as explained on the "Build extras"_Build_extras.html doc page. + +These links take you to the extra instructions for those select +packages: + +"GPU"_Build_extras.html#gpu, +"KIM"_Build_extras.html#kim, +"KOKKOS"_Build_extras.html#kokkos, +"LATTE"_Build_extras.html#latte, +"MEAM"_Build_extras.html#meam, +"MSCG"_Build_extras.html#mscg, +"OPT"_Build_extras.html#opt, +"POEMS"_Build_extras.html#poems, +"PYTHON"_Build_extras.html#python, +"REAX"_Build_extras.html#reax, +"VORONOI"_Build_extras.html#voronoi, +"USER-ATC"_Build_extras.html#user-atc, +"USER-AWPMD"_Build_extras.html#user-awpmd, +"USER-COLVARS"_Build_extras.html#user-colvars, +"USER-H5MD"_Build_extras.html#user-h5md, +"USER-INTEL"_Build_extras.html#user-intel, +"USER-MOLFILE"_Build_extras.html#user-molfile, +"USER-NETCDF"_Build_extras.html#user-netcdf, +"USER-OMP"_Build_extras.html#user-omp, +"USER-QMMM"_Build_extras.html#user-qmmm, +"USER-QUIP"_Build_extras.html#user-quip, +"USER-SMD"_Build_extras.html#user-smd, +"USER-VTK"_Build_extras.html#user-vtk :tb(c=6,ea=c) + +[CMake variables]: + +-D PKG_NAME=value # yes or no (default) :pre + +Examples: + +-D PKG_MANYBODY=yes +-D PKG_USER-INTEL=yes :pre + +All standard and user packages are included the same way. Note that +USER packages have a hyphen between USER and the rest of the package +name, not an underscore. + +NOTE: If you toggle back and forth between building with CMake vs +make, no packages in the src directory can be installed when you +invoke cmake. CMake will give an error if that is not the case, +indicating how you can un-install all packages in the src dir. + +[Traditional make]: + +cd lammps/src +make ps # check which packages are currently installed +make yes-name # install a package with name +make no-name # un-install a package with name +make mpi # build LAMMPS with whatever packages are now installed :pre + +Examples: + +make no-rigid +make yes-user-intel :pre + +All standard and user packages are included the same way. + +NOTE: You must always re-build LAMMPS (via make) after installing or +un-installing a package, for the action to take effect. + +NOTE: You cannot install or un-install packages and build LAMMPS in a +single make command with multiple targets, e.g. make yes-colloid mpi. +This is because the make procedure creates a list of source files that +will be out-of-date for the build if the package configuration changes +within the same command. You can include or exclude multiple packages +in a single make command, e.g. make yes-colloid no-manybody. + +[CMake and make info]: + +Any package can be included or excluded in a LAMMPS build, independent +of all other packages. However, some packages include files derived +from files in other packages. LAMMPS checks for this and does the +right thing. Individual files are only included if their dependencies +are already included. Likewise, if a package is excluded, other files +dependent on that package are also excluded. + +NOTE: The one exception is that for a build via make (ok via CMake), +we do not recommend building with the KOKKOS package installed along +with any of the other acceleration packages (GPU, OPT, USER-INTEL, +USER-OMP) also installed. This is because of how Kokkos sometimes +builds using a wrapper compiler which can make it difficult to invoke +all the compile/link flags correctly for both Kokkos and non-Kokkos +files. + +When you download a LAMMPS tarball, three packages are pre-installed +in the src directory: KSPACE, MANYBODY, MOLECULE. This is because +they are so commonly used. When you download LAMMPS source files from +the Git or SVN repositories, no packages are pre-installed. + +:line + +The following make commands are useful for managing package source +files and their installation when building LAMMPS via traditional +make. Just type "make" in lammps/src to see a one-line summary. + +These commands install/un-install sets of packages: + +make yes-all | install all packages +make no-all | un-install all packages +make yes-standard or make yes-std | install standard packages +make no-standard or make no-std| un-install standard packages +make yes-user | install user packages +make no-user | un-install user packages +make yes-lib | install packages that require extra libraries +make no-lib | un-install packages that require extra libraries +make yes-ext | install packages that require external libraries +make no-ext | un-install packages that require external libraries :tb(s=|,a=l) + +which install/un-install various sets of packages. Typing "make +package" will list all the these commands. + +NOTE: Installing or un-installing a package works by simply copying +files back and forth between the main src directory and +sub-directories with the package name (e.g. src/KSPACE, src/USER-ATC), +so that the files are included or excluded when LAMMPS is built. + +The following make commands help manage files that exist in both the +src directory and in package sub-directories. You do not normally +need to use these commands unless you are editing LAMMPS files or are +"installing a patch"_Install_patch.html downloaded from the LAMMPS web +site. + +Type "make package-status" or "make ps" to show which packages are +currently installed. For those that are installed, it will list any +files that are different in the src directory and package +sub-directory. + +Type "make package-installed" or "make pi" to show which packages are +currently installed, without listing the status of packages that are +not installed. + +Type "make package-update" or "make pu" to overwrite src files with +files from the package sub-directories if the package is installed. +It should be used after a "patch has been applied"_Install_patch.html, +since patches only update the files in the package sub-directory, but +not the src files. + +Type "make package-overwrite" to overwrite files in the package +sub-directories with src files. + +Type "make package-diff" to list all differences between pairs of +files in both the src dir and a package dir. diff --git a/doc/src/Build_settings.txt b/doc/src/Build_settings.txt new file mode 100644 index 0000000000..1969e9588b --- /dev/null +++ b/doc/src/Build_settings.txt @@ -0,0 +1,327 @@ +"Higher level section"_Build.html - "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 + +Optional build settings :h3 + +LAMMPS can be built with several optional settings. Each sub-section +explain how to do this for either a CMake build or traditional make. + +"FFT library"_#fft for use with "kspace_style pppm"_kspace_style.html command +"Size of LAMMPS data types"_#size +"Read or write compressed files"_#compress +"Output of JPG and PNG files"_#graphics via "dump image"_dump_image.html command +"Output of movie files"_#graphics via "dump_movie"_dump_image.html command +"Memory allocation alignment"_#align +"Workaround for long long integers"_#longlong +"Error handling exceptions"_#exceptions when using LAMMPS as a library :all(b) + +:line +:line + +FFT library :h3,link(fft) + +When the KSPACE package is included in a LAMMPS build, the +"kspace_style pppm"_kspace_style.html command performs 3d FFTs which +require use of an FFT library to compute 1d FFTs. The KISS FFT +library is included with LAMMPS but other libraries are typically +faster if they are available on your system. See details on other FFT +libraries below. + +[CMake variables]: + +-D FFT=value # kiss or fftw3 or fftw2 or mkl, default is fftw3 if found, else kiss +-D FFT_SINGLE=value # yes or no (default), no = double precision +-D FFT_PACK=value # array (default) or pointer or memcpy :pre + +Usually these settings are all that is needed. If CMake cannot find +the FFT library, you can set these variables: + +-D FFTW3_INCLUDE_DIRS=path # path to FFTW3 include files +-D FFTW2_LIBRARIES=path # path to FFTW3 libraries +-D FFTW2_INCLUDE_DIRS=path # ditto for FFTW2 +-D FFTW3_LIBRARIES=path +-D MKL_INCLUDE_DIRS=path # ditto for Intel MKL library +-D MKL_LIBRARIES=path :pre + +[Makefile.machine settings]: + +FFT_INC = -DFFT_FFTW3 # FFTW3, FFTW2, FFTW (same as FFTW3), MKL, or KISS + # default is KISS if not specified +FFT_INC = -DFFT_SINGLE # do not specify for double precision +FFT_INC = -DFFT_PACK_ARRAY # or -DFFT_PACK_POINTER or -DFFT_PACK_MEMCPY :pre + +TODO: change code to use FFT_PACK_OPTION + +FFT_INC = -I/usr/local/include +FFT_PATH = -L/usr/local/lib +FFT_LIB = -lfftw3 # FFTW3 double precision +FFT_LIB = -lfftw3 -lfftw3f # FFTW3 single precision +FFT_LIB = -lfftw # FFTW2 double precision, or -ldfftw +FFT_LIB = -lsfftw # FFTW2 single precision +FFT_LIB = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core # MKL with Intel compiler +FFT_LIB = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core # MKL with GNU compier :pre + +As with CMake, you do not need to set paths in FFT_INC or FFT_PATH, if +make can find the FFT header and library files. You must specify +FFT_LIB with the appropriate FFT libraries to include in the link. + +[CMake and make info]: + +The "KISS FFT library"_http://kissfft.sf.net is included in the LAMMPS +distribution, so not FFT_LIB setting is required. It is portable +across all platforms. + +FFTW is fast, portable library that should also work on any platform +and typically be faster than KISS FFT. You can download it from +"www.fftw.org"_http://www.fftw.org. Both the legacy version 2.1.X and +the newer 3.X versions are supported. Building FFTW for your box +should be as simple as ./configure; make; make install. The install +command typically requires root privileges (e.g. invoke it via sudo), +unless you specify a local directory with the "--prefix" option of +configure. Type "./configure --help" to see various options. + +The Intel MKL math library is part of the Intel compiler suite. It +can be used with the Intel or GNU compiler (see FFT_LIB setting above). + +3d FFTs can be computationally expensive. Their cost can be reduced +by performing single-precision FFTs instead of double precision. +Single precision means the real and imaginary parts of a complex datum +are 4-byte floats. Double precesion means they are 8-byte doubles. +Note that Fourier transform and related PPPM operations are somewhat +insensitive to floating point truncation errors and thus do not always +need to be performed in double precision. Using this setting trades +off a little accuracy for reduced memory use and parallel +communication costs for transposing 3d FFT data. + +When using -DFFT_SINGLE with FFTW3 or FFTW2, you may need to build the +FFTW library a second time with support for single-precision. + +For FFTW3, do the following, which should produce the additional +library libfftw3f.a + +make clean +./configure --enable-single; make; make install :pre + +For FFTW2, do the following, which should produce the additional +library libsfftw.a + +make clean +./configure --enable-float --enable-type-prefix; make; make install :pre + +Performing 3d FFTs requires communication to transpose the 3d FFT +grid. The data packing/unpacking for this can be done in one of 3 +modes (ARRAY, POINTER, MEMCPY) as set by the FFT_PACK syntax above. +Depending on the machine, the size of the FFT grid, the number of +processors used, one option may be slightly faster. The default is +ARRAY mode. + +:line + +Size of LAMMPS data types :h3,link(size) + +LAMMPS has a few integer data types which can be defined as 4-byte or +8-byte integers. The default setting of "smallbig" is almost always +adequate. + +[CMake variable]: + +-D LAMMPS_SIZES=value # smallbig (default) or bigbig or smallsmall :pre + +[Makefile.machine setting]: + +LMP_INC = -DLAMMPS_SMALLBIG # or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :pre + +[CMake and make info]: + +The default "smallbig" setting allows for simulations with: + +total atom count = 2^63 atoms (about 9e18) +total timesteps = 2^63 (about 9e18) +atom IDs = 2^31 (about 2 billion) +image flags = roll over at 512 :ul + +The "bigbig" setting increases the latter two limits. It allows for: + +total atom count = 2^63 atoms (about 9e18) +total timesteps = 2^63 (about 9e18) +atom IDs = 2^63 (about 9e18) +image flags = roll over at about 1 million (2^20) :ul + +The "smallsmall" setting is only needed if your machine does not +support 8-byte integers. It allows for: + +total atom count = 2^31 atoms (about 2 billion) +total timesteps = 2^31 (about 2 billion) +atom IDs = 2^31 (about 2 billion) +image flags = roll over at 512 (2^9) :ul + +Atom IDs are not required for atomic systems which do not store bond +topology information, though IDs are enabled by default. The +"atom_modify id no"_atom_modify.html command will turn them off. Atom +IDs are required for molecular systems with bond topology (bonds, +angles, dihedrals, etc). Thus if you model a molecular system with +more than 2 billion atoms, you need the "bigbig" setting. + +Image flags store 3 values per atom which count the number of times an +atom has moved through the periodic box in each dimension. See the +"dump"_dump.html doc page for a discussion. If an atom moves through +the periodic box more than this limit, the value will "roll over", +e.g. from 511 to -512, which can cause diagnostics like the +mean-squared displacement, as calculated by the "compute +msd"_compute_msd.html command, to be faulty. + +Note that the USER-ATC package is not currently compatible with the +"bigbig" setting. + +Also note that the GPU package requires its lib/gpu library to be +compiled with the same size setting, or the link will fail. A CMake +build does this automatically. When building with make, the setting +in whichever lib/gpu/Makefile is used must be the same as above. + +:line + +Output of JPG, PNG, and movie files :h3,link(graphics) + +The "dump image"_dump_image.html command has options to output JPEG or +PNG image files. Likewise the "dump movie"_dump_image.html command +ouputs movie files in MPEG format. Using these options requires the +following settings: + +[CMake variables]: + +-D LAMMPS_JPEG=value # yes or no + # default = yes if CMake finds JPEG files, else no +-D LAMMPS_PNG=value # yes or no + # default = yes if CMake finds PNG and ZLIB files, else no +-D LAMMPS_FFMPEG=value # yes or no + # default = yes if CMake can find ffmpeg, else no :pre + +Usually these settings are all that is needed. If CMake cannot find +the graphics header, library, executuable files, you can set these +variables: + +-D JPEG_INCLUDE_DIR=path # path to jpeglib.h header file +-D JPEG_LIBRARIES=path # path to libjpeg.a (.so) file +-D PNG_INCLUDE_DIR=path # path to png.h header file +-D PNG_LIBRARIES=path # path to libpng.a (.so) file +-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file +-D ZLIB_LIBRARIES=path # path to libzlib.a (.so) file +-D FFMPEG_EXECUTABLE=path # path to ffmpeg executable :pre + +[Makefile.machine settings]: + +LMP_INC = -DLAMMPS_JPEG +LMP_INC = -DLAMMPS_PNG +LMP_INC = -DLAMMPS_FFMPEG :pre + +JPG_INC = -I/usr/local/include # path to jpeglib.h, png.h, zlib.h header files if make cannot find them +JPG_PATH = -L/usr/lib # paths to libjpeg.a, libpng.a, libzlib.a (.so) files if make cannot find them +JPG_LIB = -ljpeg -lpng -lzlib # library names :pre + +As with CMake, you do not need to set JPG_INC or JPG_PATH, if make can +find the graphics header and library files. You must specify JPG_LIB +with a list of graphics libraries to include in the link. You must +insure ffmpeg is in a directory where LAMMPS can find it at runtime, +i.e. a dir in your PATH environment variable. + +[CMake and make info]: + +Using ffmpeg to output movie files requires that your machine +supports the "popen" function in the standard runtime library. + +NOTE: On some clusters with high-speed networks, using the fork() +library calls (required by popen()) can interfere with the fast +communication library and lead to simulations using ffmpeg to hang or +crash. + +:line + +Read or write compressed files :h3,link(compress) + +If this option is enabled, large files can be read or written with +gzip compression by several LAMMPS commands, including +"read_data"_read_data.html, "rerun"_rerun.html, and "dump"_dump.html. + +[CMake variables]: + +-D LAMMPS_GZIP=value # yes or no + # default is yes if CMake can find gzip, else no +-D GZIP_EXECUTABLE=path # path to gzip executable if CMake cannot find it + +[Makefile.machine setting]: + +LMP_INC = -DLAMMPS_GZIP :pre + +[CMake and make info]: + +This option requires that your machine supports the "popen()" function +in the standard runtime library and that a gzip executable can be +found by LAMMPS during a run. + +NOTE: On some clusters with high-speed networks, using the fork() +library calls (required by popen()) can interfere with the fast +communication library and lead to simulations using compressed output +or input to hang or crash. For selected operations, compressed file +I/O is also available using a compression library instead, which is +what the "COMPRESS package"_Packages.html enables. + +:line + +Memory allocation alignment :h3,link(align) + +This setting enables the use of the posix_memalign() call instead of +malloc() when LAMMPS allocates large chunks or memory. This can make +vector instructions on CPUs more efficient, if dynamically allocated +memory is aligned on larger-than-default byte boundaries. + +[CMake variable]: + +-D LAMMPS_MEMALIGN=value # 8, 16, 32, 64 (default) :pre + +[Makefile.machine setting]: + +LMP_INC = -DLAMMPS_MEMALIGN=value # 8, 16, 32, 64 :pre + +TODO: I think the make default (no LAMMPS_MEMALIGN) is to not +use posix_memalign(), just malloc(). Does a CMake build have +an equivalent option? I.e. none. + +:line + +Workaround for long long integers :h3,link(longlong) + +If your system or MPI version does not recognize "long long" data +types, the following setting will be needed. It converts "long long" +to a "long" data type, which should be the desired 8-byte integer on +those systems: + +[CMake variable]: + +-D LAMMPS_LONGLONG_TO_LONG=value # yes or no (default) :pre + +[Makefile.machine setting]: + +LMP_INC = -DLAMMPS_LONGLONG_TO_LONG :pre + +:line + +Exception handling when using LAMMPS as a library :h3,link(exceptions) + +This setting is useful when external codes drive LAMMPS as a library. +With this option enabled LAMMPS errors do not kill the caller. +Instead, the call stack is unwound and control returns to the caller, +e.g. to Python. + +[CMake variable]: + +-D LAMMPS_EXCEPTIONS=value # yes or no (default) :pre + +[Makefile.machine setting]: + +LMP_INC = -DLAMMPS_EXCEPTIONS :pre diff --git a/doc/src/Install.txt b/doc/src/Install.txt new file mode 100644 index 0000000000..d59c23d319 --- /dev/null +++ b/doc/src/Install.txt @@ -0,0 +1,64 @@ +"Previous Section"_Intro.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Build.html +:c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +Install LAMMPS :h2 + +You can download LAMMPS as an executable or as source code. + +With source code, you also have to "build LAMMPS"_Build.html. But you +have more flexibility as to what features to include or exclude in the +build. If you plan to "modify or extend LAMMPS"_Modify.html, then you +need the source code. + + + + + +"Download an executable for Linux"_Install_linux.html +"Download an executable for Mac"_Install_mac.html +"Download an executable for Windows"_Install_windows.html :all(b) + +"Download source as a tarball"_Install_tarball.html +"Donwload source via Git"_Install_git.html +"Donwload source via SVN"_Install_svn.html +"Install patch files"_Install_patch.html :all(b) + + + +These are the files and sub-directories in the LAMMPS distribution: + +README: text file +LICENSE: GNU General Public License (GPL) +bench: benchmark problems +cmake: CMake build files +doc: documentation +examples: simple test problems +lib: additional provided or external libraries +potentials: interatomic potential files +python: Python wrapper on LAMMPS +src: source files +tools: pre- and post-processing tools :tb(s=:,a=l) + +You will have all of these if you download source. You will only have +some of them if you download executables, as explained on the pages +listed above. diff --git a/doc/src/Install_git.txt b/doc/src/Install_git.txt new file mode 100644 index 0000000000..1d043c30d2 --- /dev/null +++ b/doc/src/Install_git.txt @@ -0,0 +1,120 @@ +"Higher level section"_Install.html - "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 + +Download source via Git :h3 + +All LAMMPS development is coordinated through the "LAMMPS GitHub +site". If you clone the LAMMPS repository onto your local machine, it +has several advantages: + +You can stay current with changes to LAMMPS with a single git +command. :ulb,l + +You can create your own development branches to add code to LAMMPS. :l + +You can submit your new features back to GitHub for inclusion in +LAMMPS. :l,ule + +You must have "Git"_git installed on your system to communicate with +the public Git server for LAMMPS. + +IMPORTANT NOTE: As of Oct 2016, the official home of public LAMMPS +development is on GitHub. The previously advertised LAMMPS git +repositories on git.lammps.org and bitbucket.org are now deprecated, +may not be up-to-date, and may go away at any time. + +:link(git,http://git-scm.com) + +You can follow LAMMPS development on 3 different Git branches: + +[stable] : this branch is updated with every stable release +[unstable] : this branch is updated with every patch release +[master] : this branch continuously follows ongoing development :ul + +To access the Git repositories on your box, use the clone command to +create a local copy of the LAMMPS repository with a command like: + +git clone -b unstable https://github.com/lammps/lammps.git mylammps :pre + +where "mylammps" is the name of the directory you wish to create on +your machine and "unstable" is one of the 3 branches listed above. +(Note that you actually download all 3 branches; you can switch +between them at any time using "git checkout ".) + +Once the command completes, your directory will contain the same files +as if you unpacked a current LAMMPS tarball, with two exceptions: + +1) No LAMMPS packages are initially installed in the src dir (a few +packages are installed by default in the tarball src dir). You can +install whichever packages you wish before building LAMMPS; type "make +package" from the src dir to see the options, and the +"Packages"_Packages.html doc page for a discussion of packages. + +2) The HTML documentation files are not included. They can be fetched +from the LAMMPS website by typing "make fetch" in the doc directory. +Or they can be generated from the content provided in doc/src by +typing "make html" from the the doc directory. + +After initial cloning, as bug fixes and new features are added to +LAMMPS, as listed on "this page"_bug.html, you can stay up-to-date by +typing the following Git commands from within the "mylammps" +directory: + +git checkout unstable # not needed if you always stay in this branch +git checkout stable # use one of the 3 checkout commands +git checkout master +git pull :pre + +Doing a "pull" will not change any files you have added to the LAMMPS +directory structure. It will also not change any existing LAMMPS +files you have edited, unless those files have changed in the +repository. In that case, Git will attempt to merge the new +repository file with your version of the file and tell you if there +are any conflicts. See the Git documentation for details. + +If you want to access a particular previous release version of LAMMPS, +you can instead "checkout" any version with a published tag. See the +output of "git tag -l" for the list of tags. The Git command to do +this is as follows. + +git checkout tagID :pre + +Stable versions and what tagID to use for a particular stable version +are discussed on "this page"_bug.html. Note that this command will +print some warnings, because in order to get back to the latest +revision and to be able to update with "git pull" again, you first +will need to first type "git checkout unstable" (or check out any +other desired branch). + +Once you have updated your local files with a "git pull" (or "git +checkout"), you still need to re-build LAMMPS if any source files have +changed. To do this, you should cd to the src directory and type: + +make purge # remove any deprecated src files +make package-update # sync package files with src files +make foo # re-build for your machine (mpi, serial, etc) :pre + +just as described on the "Install patch"_Install_patch.html doc page, +after a patch has been installed. + +IMPORTANT NOTE: If you wish to edit/change a src file that is from a +package, you should edit the version of the file inside the package +sub-directory with src, then re-install the package. The version in +the src dir is merely a copy and will be wiped out if you type "make +package-update". + +IMPORTANT NOTE: The GitHub servers support both the "git://" and +"https://" access protocols for anonymous read-only access. If you +have a correspondingly configured GitHub account, you may also use SSH +with "git@github.com:/lammps/lammps.git". + +The LAMMPS GitHub project is managed by Christoph Junghans (LANL, +junghans at lanl.gov), Axel Kohlmeyer (Temple U, akohlmey at +gmail.com) and Richard Berger (Temple U, richard.berger at +temple.edu). diff --git a/doc/src/Install_linux.txt b/doc/src/Install_linux.txt new file mode 100644 index 0000000000..10da3d933f --- /dev/null +++ b/doc/src/Install_linux.txt @@ -0,0 +1,120 @@ +"Higher level section"_Install.html - "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 + +Download an executable for Linux :h3 + +Binaries are available for many different versions of Linux: + +"Pre-built binary RPMs for Fedora/RedHat/CentOS/openSUSE"_#rpm +"Pre-built Ubuntu Linux executables"_#unbuntu +"Pre-built Gentoo Linux executable"_#gentoo :all(b) + +:line +:line + +Pre-built binary RPMs for Fedora/RedHat/CentOS/openSUSE :h4,link(rpm) + +Pre-built LAMMPS executables for various Linux distributions +can be downloaded as binary RPM files from this site: + +"http://rpm.lammps.org"_http://rpm.lammps.org + +There are multiple package variants supporting serial, parallel and +Python wrapper versions. The LAMMPS binaries contain all optional +packages included in the source distribution except: GPU, KIM, REAX, +and USER-INTEL. + +Installation instructions for the various versions are here: + +"http://rpm.lammps.org/install.html"_http://rpm.lammps.org/install.html + +The instructions show how to enable the repository in the respective +system's package management system. Installing and updating are then +straightforward and automatic. + +Thanks to Axel Kohlmeyer (Temple U, akohlmey at gmail.com) for setting +up this RPM capability. + +:line + +Pre-built Ubuntu Linux executables :h4,link(ubuntu) + +A pre-built LAMMPS executable suitable for running on the latest +Ubuntu Linux versions, can be downloaded as a Debian package. This +allows you to install LAMMPS with a single command, and stay +up-to-date with the current version of LAMMPS by simply updating your +operating system. + +To install the appropriate personal-package archive (PPA), do the +following once: + +sudo add-apt-repository ppa:gladky-anton/lammps +sudo apt-get update :pre + +To install LAMMPS do the following once: + +sudo apt-get install lammps-daily :pre + +This downloads an executable named "lammps-daily" to your box, which +can then be used in the usual way to run input scripts: + +lammps-daily < in.lj :pre + +To update LAMMPS to the most current version, do the following: + +sudo apt-get update :pre + +which will also update other packages on your system. + +To get a copy of the current documentation and examples: + +sudo apt-get install lammps-daily-doc :pre + +which will download the doc files in +/usr/share/doc/lammps-daily-doc/doc and example problems in +/usr/share/doc/lammps-doc/examples. + +Note that you may still wish to download the tarball to get potential +files and auxiliary tools. + +To un-install LAMMPS, do the following: + +sudo apt-get remove lammps-daily :pre + +Note that the lammps-daily executable is built with the following +sequence of make commands, as if you had done the same with the +unpacked tarball files in the src directory: + +make yes-all; make no-lib; make openmpi + +Thus it builds with FFTW3 and OpenMPI. + +Thanks to Anton Gladky (gladky.anton at gmail.com) for setting up this +Ubuntu package capability. + +:line + +Pre-built Gentoo Linux executable :h4,link(gentoo) + +LAMMPS is part of Gentoo's main package tree and can be installed by +typing: + +% emerge --ask lammps :pre + +Note that in Gentoo the LAMMPS source is downloaded and the package is +built on the your machine. + +Certain LAMMPS packages can be enable via USE flags, type + +% equery uses lammps :pre + +for details. + +Thanks to Nicolas Bock and Christoph Junghans (LANL) for setting up +this Gentoo capability. diff --git a/doc/src/Install_mac.txt b/doc/src/Install_mac.txt new file mode 100644 index 0000000000..3fcc55b8ab --- /dev/null +++ b/doc/src/Install_mac.txt @@ -0,0 +1,55 @@ +"Higher level section"_Install.html - "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 + +Download an executable for Mac :h3 + +LAMMPS can be downloaded, built, and configured for OS X on a Mac with +"Homebrew"_homebrew. Only four of the LAMMPS packages are unavailable +at this time because of additional needs not yet met: KIM, GPU, +USER-INTEL, USER-ATC. + +After installing Homebrew, you can install LAMMPS on your system with +the following commands: + +% brew tap homebrew/science +% brew install lammps # serial version +% brew install lammps --with-mpi # mpi support :pre + +This will install the executable "lammps", a python module named +"lammps", and additional resources with all the standard packages. To +get the location of the additional resources type this: + +% brew info lammps :pre + +This command also tells you additional installation options available. +The user-packages are available as options, just install them like +this example for the USER-OMP package: + +% brew install lammps --enable-user-omp :pre + +It is usually best to install LAMMPS with the most up to date source +files, which can be done with the "--HEAD" option: + +% brew install lammps --HEAD :pre + +To re-install the LAMMPS HEAD, run this command occasionally (make sure +to use the desired options). + +% brew install --force lammps --HEAD $\{options\} :pre + +Once LAMMPS is installed, you can test the installation with the +Lennard-Jones benchmark file: + +% brew test lammps -v :pre + +If you have problems with the installation you can post issues to +"this link"_https://github.com/Homebrew/homebrew-science/issues. + +Thanks to Derek Thomas (derekt at cello.t.u-tokyo.ac.jp) for setting +up the Homebrew capability. diff --git a/doc/src/Install_patch.txt b/doc/src/Install_patch.txt new file mode 100644 index 0000000000..3d0b27370e --- /dev/null +++ b/doc/src/Install_patch.txt @@ -0,0 +1,67 @@ +"Higher level section"_Install.html - "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 + +Applying patches :h3 + +It is easy to stay current with the most recent LAMMPS patch releases +if you use Git or SVN to track LAMMPS development. Instructions for +how to stay current are on the "Install git"_Install_git.html and +"Install svn"_Install_svn.html doc pages. + +If you prefer to download a tarball, as described on the "Install +git"_Install_tarball.html doc page, you can stay current by +downloading "patch files" when new patch releases are made. A link to +a patch file is posted on the "bug and feature page"_bug of the +website, along with a list of changed files and details about what is +in the new patch release. This page explains how to apply the patch +file to your local LAMMPS directory. + +NOTE: You should not apply patch files to a local Git or SVN repo of +LAMMPS, only to an unpacked tarball. Use Git and SVN commands to +update repo versions of LAMMPS. + +Here are the steps to apply a patch file. Note that if your version +of LAMMPS is several patch releases behind, you need to apply all the +intervening patch files in succession to bring your version of LAMMPS +up to date. + +Download the patch file. You may have to shift-click in your browser +to download the file instead of display it. Patch files have names +like patch.12Dec16. :ulb,l + +Put the patch file in your top-level LAMMPS directory, where the +LICENSE and README files are. :l + +Apply the patch by typing the following command from your top-level +LAMMPS directory, where the redirected file is the name of the patch +file. :l + +patch -bp1 < patch.12Dec16 :pre + +A list of updated files print out to the screen. The -b switch +creates backup files of your originals (e.g. src/force.cpp.orig), so +you can manually undo the patch if something goes wrong. :l + +Type the following from the src directory, to enforce consistency +between the src and package directories. This is OK to do even if you +don't use one or more packages. If you are applying several patches +successively, you only need to type this once at the end. The purge +command removes deprecated src files if any were removed by the patch +from package sub-directories. :l + +make purge +make package-update :pre + +Re-build LAMMPS via the "make" command. :l,ule + +IMPORTANT NOTE: If you wish to edit/change a src file that is from a +package, you should edit the version of the file inside the package +sub-dir of src, then re-install the package. The version in the src +dir is merely a copy and will be wiped out if you type "make +package-update". diff --git a/doc/src/Install_svn.txt b/doc/src/Install_svn.txt new file mode 100644 index 0000000000..64fd1077cb --- /dev/null +++ b/doc/src/Install_svn.txt @@ -0,0 +1,95 @@ +"Higher level section"_Install.html - "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 + +Download source via SVN :h3 + +IMPORTANT NOTE: As of Oct 2016, SVN support is now implemented via a +git-to-subversion interface service on GitHub and no longer through a +mirror of the internal SVN repository at Sandia. + +You must have the "Subversion (SVN) client software"_svn installed on +your system to communicate with the Git server in this mode. + +:link(svn,http://subversion.apache.org) + +You can follow LAMMPS development on 3 different SVN branches: + +[stable] : this branch is updated with every stable release +[unstable] : this branch is updated with every patch release +[master] : this branch continuously follows ongoing development :ul + +The corresponding command lines to do an initial checkout are as +follows. (Note that unlike Git, you must perform a separate checkout +into a unique directory for each of the 3 branches.) + +svn checkout https://github.com/lammps/lammps.git/branches/unstable mylammps +svn checkout https://github.com/lammps/lammps.git/branches/stable mylammps +svn checkout https://github.com/lammps/lammps.git/trunk mylammps :pre + +where "mylammps" is the name of the directory you wish to create on +your machine. + +Once the command completes, your directory will contain the same files +as if you unpacked a current LAMMPS tarball, with two exceptions: + +1) No LAMMPS packages are initially installed in the src dir (a few +packages are installed by default in the tarball src dir). You can +install whichever packages you wish before building LAMMPS; type "make +package" from the src dir to see the options, and the +"Packages"_Packages.html doc page for a discussion of packages. + +2) The HTML documentation files are not included. They can be fetched +from the LAMMPS website by typing "make fetch" in the doc directory. +Or they can be generated from the content provided in doc/src by +typing "make html" from the the doc directory. + +After initial checkout, as bug fixes and new features are added to +LAMMPS, as listed on "this page"_bug.html, you can stay up-to-date by +typing the following SVN commands from within the "mylammps" +directory: + +svn update :pre + +You can also check if there are any updates by typing: + +svn -qu status :pre + +Doing an "update" will not change any files you have added to the +LAMMPS directory structure. It will also not change any existing +LAMMPS files you have edited, unless those files have changed in the +repository. In that case, SVN will attempt to merge the new +repository file with your version of the file and tell you if there +are any conflicts. See the SVN documentation for details. + +Please refer to the "subversion client support help pages on +GitHub"_https://help.github.com/articles/support-for-subversion-clients +if you want to use advanced features like accessing particular +previous release versions via tags. + +Once you have updated your local files with an "svn update" (or "svn +co"), you still need to re-build LAMMPS if any source files have +changed. To do this, you should cd to the src directory and type: + +make purge # remove any deprecated src files +make package-update # sync package files with src files +make foo # re-build for your machine (mpi, serial, etc) :pre + +just as described on the "Install patch"_Install_patch.html doc page, +after a patch has been installed. + +IMPORTANT NOTE: If you wish to edit/change a src file that is from a +package, you should edit the version of the file inside the package +sub-directory with src, then re-install the package. The version in +the src dir is merely a copy and will be wiped out if you type "make +package-update". + +The LAMMPS GitHub project is managed by Christoph Junghans (LANL, +junghans at lanl.gov), Axel Kohlmeyer (Temple U, akohlmey at +gmail.com) and Richard Berger (Temple U, richard.berger at +temple.edu). diff --git a/doc/src/Install_tarball.txt b/doc/src/Install_tarball.txt new file mode 100644 index 0000000000..b672c5ff25 --- /dev/null +++ b/doc/src/Install_tarball.txt @@ -0,0 +1,64 @@ +"Higher level section"_Install.html - "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 + +Download source as a tarball :h3 + +You can download a current LAMMPS tarball from the "download page"_download +of the "LAMMPS website"_lws. + +:link(download,http://lammps.sandia.gov/download.html) +:link(bug,http://lammps.sandia.gov/bug.html) +:link(older,http://lammps.sandia.gov/tars) + +You have two choices of tarballs, either the most recent stable +release or the most current patch release. Stable releases occur a +few times per year, and undergo more testing before release. Patch +releases occur a couple times per month. The new contents in all +releases are listed on the "bug and feature page"_bug of the website. + +Older versions of LAMMPS can also be downloaded from "this +page"_older. + +Once you have a tarball, unzip and untar it with the following +command: + +tar -xzvf lammps*.tar.gz :pre + +This will create a LAMMPS directory with the version date +in its name, e.g. lammps-23Jun18. + +:line + +You can also download a zip file via the "Clone or download" button on +the "LAMMPS GitHub site"_git. The file name will be lammps-master.zip +which can be unzipped with the following command, to create +a lammps-master dir: + +unzip lammps*.zip :pre + +This version is the most up-to-date LAMMPS development version. It +will have the date of the most recent patch release (see the file +src/version.h). But it will also include any new bug-fixes or +features added since the last patch release. They will be included in +the next patch release tarball. + +:link(git,https://github.com/lammps/lammps) + +:line + +If you download a current LAMMPS tarball, one way to stay current as +new patch tarballs are released, is to download a patch file which you +can apply to your local directory to update it for each new patch +release. (Or of course you could just download the newest tarball +periodically.) + +The patch files are posted on the "bug and feature page"_bug of the +website, along with a list of changed files and details about what is +in the new patch release. Instructions for applying a patch file are +on the "Install patch"_Install_patch.html doc page. diff --git a/doc/src/Install_windows.txt b/doc/src/Install_windows.txt new file mode 100644 index 0000000000..df87754c5f --- /dev/null +++ b/doc/src/Install_windows.txt @@ -0,0 +1,52 @@ +"Higher level section"_Install.html - "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 + +Download an executable for Windows :h3 + +Pre-compiled Windows installers which install LAMMPS executables on a +Windows system can be downloaded from this site: + +"http://rpm.lammps.org/windows.html"_http://rpm.lammps.org/windows.html + +Note that each installer package has a date in its name, which +corresponds to the LAMMPS version of the same date. Installers for +current and older versions of LAMMPS are available. 32-bit and 64-bit +installers are available, and each installer contains both a serial +and parallel executable. The installer site also explains how to +install the Windows MPI package (MPICH2 from Argonne National Labs), +needed to run in parallel. + +The LAMMPS binaries contain all optional packages included in the +source distribution except: KIM, REAX, KOKKOS, USER-INTEL, +and USER-QMMM. The serial version also does not include the MPIIO and +USER-LB packages. GPU support is provided for OpenCL. + +The installer site also has instructions on how to run LAMMPS under +Windows, once it is installed, in both serial and parallel. + +When you download the installer package, you run it on your Windows +machine. It will then prompt you with a dialog, where you can choose +the installation directory, unpack and copy several executables, +potential files, documentation pdfs, selected example files, etc. It +will then update a few system settings (e.g. PATH, LAMMPS_POTENTIALS) +and add an entry into the Start Menu (with references to the +documentation, LAMMPS homepage and more). From that menu, there is +also a link to an uninstaller that removes the files and undoes the +environment manipulations. + +Note that to update to a newer version of LAMMPS, you should typically +uninstall the version you currently have, download a new installer, +and go thru the install procedure described above. I.e. the same +procedure for installing/updating most Windows programs. You can +install multiple versions of LAMMPS (in different directories), but +only the executable for the last-installed package will be found +automatically, so this should only be done for debugging purposes. + +Thanks to Axel Kohlmeyer (Temple U, akohlmey at gmail.com) for setting +up this Windows capability. diff --git a/doc/src/Run.txt b/doc/src/Run.txt new file mode 100644 index 0000000000..68c3f1e295 --- /dev/null +++ b/doc/src/Run.txt @@ -0,0 +1,37 @@ +"Previous Section"_Build.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc - "Next +Section"_Commands.html :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +Run LAMMPS :h2 + +These pages explain how to run LAMMPS once you have "installed an +executable"_Install.html or "downloaded the source code"_Install.html +and "built an executable"_Build.html. The "Commands"_Commands.html +doc page describes how input scripts are structured and the commands +they can contain. + + + + + +"Basics of running LAMMPS"_Run_basics.html +"Command-line options"_Run_options.html +"Screen and logfile output"_Run_output.html +"Running LAMMPS on Windows"_Run_windows.html :all(b) + + diff --git a/doc/src/Run_basics.txt b/doc/src/Run_basics.txt new file mode 100644 index 0000000000..1d4b570f21 --- /dev/null +++ b/doc/src/Run_basics.txt @@ -0,0 +1,87 @@ +"Higher level section"_Run.html - "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 + +Basics of running LAMMPS :h3 + +LAMMPS is run from the command line, reading commands from standard +input, which are typically listed in an input script: + +lmp_serial < in.file +lmp_serial -in in.file +~/lammps/src/lmp_serial < in.file +mpirun -np 4 lmp_mpi -in in.file +mpirun -np 8 ~/lammps/src/lmp_mpi -in in.file +mpirun -np 6 /usr/local/bin/lmp_mpi -in in.file :pre + +You normally run from the directory your input script is in. That is +also where output files are produced, unless you specify otherwise in +your input script. As in some of the examples above, the LAMMPS +executable can be elsewhere. + +NOTE: The redirection operator "<" can often be used with mpirun, but +some systems require the -in form. + +As LAMMPS runs it prints info to the screen and a logfile named +log.lammps. More info about output is given on the "Run +output"_Run_output.html doc page. + +If LAMMPS encounters errors in the input script or while running a +simulation it will print an ERROR message and stop or a WARNING +message and continue. See the "Errors"_Errors.html doc page for a +discussion of the various kinds of errors LAMMPS can or can't detect, +a list of all ERROR and WARNING messages, and what to do about them. + +:line + +LAMMPS can run the same problem on any number of processors, including +a single processor. In theory you should get identical answers on any +number of processors and on any machine. In practice, numerical +round-off can cause slight differences and eventual divergence of +molecular dynamics phase space trajectories. See the "Errors +common"_Errors_common.html doc page for discussion of this. + +LAMMPS can run as large a problem as will fit in the physical memory +of one or more processors. If you run out of memory, you must run on +more processors or define a smaller problem. + +If you run LAMMPS in parallel via mpirun, you should be aware of the +"processors"_processors.html command which controls how MPI tasks are +mapped to the simulation box, as well as mpirun options that control +how MPI tasks are assigned to physical cores of the node(s) of the +machine you are running on. These settings can improve performance, +though the defaults are often adequate. + +For example, it is often important to bind MPI tasks (processes) to +physical cores (processor affinity), so that the operating system does +not migrate them during a simulation. If this is not the default +behavior on your machine, the mpirun option "--bind-to core" (OpenMPI) +or "-bind-to core" (MPICH) can be used. + +If the LAMMPS command(s) you are using support multi-threading, you +can set the number of threads per MPI task via the environment +variable OMP_NUM_THREADS, before you launch LAMMPS: + +export OMP_NUM_THREADS=2 # bash +setenv OMP_NUM_THREADS 2 # csh or tcsh :pre + +This can also be done via the "package"_package.html command or via +the "-pk command-line switch"_Run_options.html which invokes the +package command. See the "package"_package.html command or +"Speed"_Speed.html doc pages for more details about which accerlarator +packages and which commands support multi-threading. + +:line + +You can experiment with running LAMMPS using any of the input scripts +provided in the examples or bench directory. Input scripts are named +in.* and sample outputs are named log.*.P where P is the number of +processors it was run on. + +Some of the examples or benchmarks require LAMMPS to be built with +optional packages. diff --git a/doc/src/Run_options.txt b/doc/src/Run_options.txt new file mode 100644 index 0000000000..b1c1e376da --- /dev/null +++ b/doc/src/Run_options.txt @@ -0,0 +1,470 @@ +"Higher level section"_Run.html - "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 + +Command-line options :h3 + +At run time, LAMMPS recognizes several optional command-line switches +which may be used in any order. Either the full word or a one-or-two +letter abbreviation can be used: + +"-e or -echo"_#echo +"-h or -help"_#help +"-i or -in"_#in +"-k or -kokkos"_#kokkos +"-l or -log"_#log +"-nc or -nocite"_#nocite +"-pk or -package"_#package +"-p or -partition"_#partition +"-pl or -plog"_#plot +"-ps or -pscreen"_#pscreen +"-r or -restart"_#restart +"-ro or -reorder"_#reorder +"-sc or -screen"_#screen +"-sf or -suffix"_#suffix +"-v or -var"_#var :ul + +For example, the lmp_mpi executable might be launched as follows: + +mpirun -np 16 lmp_mpi -v f tmp.out -l my.log -sc none -i in.alloy +mpirun -np 16 lmp_mpi -var f tmp.out -log my.log -screen none -in in.alloy :pre + +:line +:line + +[-echo style] :link(echo) + +Set the style of command echoing. The style can be {none} or {screen} +or {log} or {both}. Depending on the style, each command read from +the input script will be echoed to the screen and/or logfile. This +can be useful to figure out which line of your script is causing an +input error. The default value is {log}. The echo style can also be +set by using the "echo"_echo.html command in the input script itself. + +:line + +[-help] :link(help) + +Print a brief help summary and a list of options compiled into this +executable for each LAMMPS style (atom_style, fix, compute, +pair_style, bond_style, etc). This can tell you if the command you +want to use was included via the appropriate package at compile time. +LAMMPS will print the info and immediately exit if this switch is +used. + +:line + +[-in file] :link(file) + +Specify a file to use as an input script. This is an optional switch +when running LAMMPS in one-partition mode. If it is not specified, +LAMMPS reads its script from standard input, typically from a script +via I/O redirection; e.g. lmp_linux < in.run. I/O redirection should +also work in parallel, but if it does not (in the unlikely case that +an MPI implementation does not support it), then use the -in flag. +Note that this is a required switch when running LAMMPS in +multi-partition mode, since multiple processors cannot all read from +stdin. + +:line + +[-kokkos on/off keyword/value ...] :link(kokkos) + +Explicitly enable or disable KOKKOS support, as provided by the KOKKOS +package. Even if LAMMPS is built with this package, as described +above in "Section 2.3"_#start_3, this switch must be set to enable +running with the KOKKOS-enabled styles the package provides. If the +switch is not set (the default), LAMMPS will operate as if the KOKKOS +package were not installed; i.e. you can run standard LAMMPS or with +the GPU or USER-OMP packages, for testing or benchmarking purposes. + +Additional optional keyword/value pairs can be specified which +determine how Kokkos will use the underlying hardware on your +platform. These settings apply to each MPI task you launch via the +"mpirun" or "mpiexec" command. You may choose to run one or more MPI +tasks per physical node. Note that if you are running on a desktop +machine, you typically have one physical node. On a cluster or +supercomputer there may be dozens or 1000s of physical nodes. + +Either the full word or an abbreviation can be used for the keywords. +Note that the keywords do not use a leading minus sign. I.e. the +keyword is "t", not "-t". Also note that each of the keywords has a +default setting. Examples of when to use these options and what +settings to use on different platforms is given on the "Speed +kokkos"_Speed_kokkos.html doc page. + +d or device +g or gpus +t or threads +n or numa :ul + +device Nd :pre + +This option is only relevant if you built LAMMPS with CUDA=yes, you +have more than one GPU per node, and if you are running with only one +MPI task per node. The Nd setting is the ID of the GPU on the node to +run on. By default Nd = 0. If you have multiple GPUs per node, they +have consecutive IDs numbered as 0,1,2,etc. This setting allows you +to launch multiple independent jobs on the node, each with a single +MPI task per node, and assign each job to run on a different GPU. + +gpus Ng Ns :pre + +This option is only relevant if you built LAMMPS with CUDA=yes, you +have more than one GPU per node, and you are running with multiple MPI +tasks per node (up to one per GPU). The Ng setting is how many GPUs +you will use. The Ns setting is optional. If set, it is the ID of a +GPU to skip when assigning MPI tasks to GPUs. This may be useful if +your desktop system reserves one GPU to drive the screen and the rest +are intended for computational work like running LAMMPS. By default +Ng = 1 and Ns is not set. + +Depending on which flavor of MPI you are running, LAMMPS will look for +one of these 3 environment variables + +SLURM_LOCALID (various MPI variants compiled with SLURM support) +MV2_COMM_WORLD_LOCAL_RANK (Mvapich) +OMPI_COMM_WORLD_LOCAL_RANK (OpenMPI) :pre + +which are initialized by the "srun", "mpirun" or "mpiexec" commands. +The environment variable setting for each MPI rank is used to assign a +unique GPU ID to the MPI task. + +threads Nt :pre + +This option assigns Nt number of threads to each MPI task for +performing work when Kokkos is executing in OpenMP or pthreads mode. +The default is Nt = 1, which essentially runs in MPI-only mode. If +there are Np MPI tasks per physical node, you generally want Np*Nt = +the number of physical cores per node, to use your available hardware +optimally. This also sets the number of threads used by the host when +LAMMPS is compiled with CUDA=yes. + +numa Nm :pre + +This option is only relevant when using pthreads with hwloc support. +In this case Nm defines the number of NUMA regions (typically sockets) +on a node which will be utilized by a single MPI rank. By default Nm += 1. If this option is used the total number of worker-threads per +MPI rank is threads*numa. Currently it is always almost better to +assign at least one MPI rank per NUMA region, and leave numa set to +its default value of 1. This is because letting a single process span +multiple NUMA regions induces a significant amount of cross NUMA data +traffic which is slow. + +:line + +[-log file] :link(log) + +Specify a log file for LAMMPS to write status information to. In +one-partition mode, if the switch is not used, LAMMPS writes to the +file log.lammps. If this switch is used, LAMMPS writes to the +specified file. In multi-partition mode, if the switch is not used, a +log.lammps file is created with hi-level status information. Each +partition also writes to a log.lammps.N file where N is the partition +ID. If the switch is specified in multi-partition mode, the hi-level +logfile is named "file" and each partition also logs information to a +file.N. For both one-partition and multi-partition mode, if the +specified file is "none", then no log files are created. Using a +"log"_log.html command in the input script will override this setting. +Option -plog will override the name of the partition log files file.N. + +:line + +[-nocite] :link(nocite) + +Disable writing the log.cite file which is normally written to list +references for specific cite-able features used during a LAMMPS run. +See the "citation page"_http://lammps.sandia.gov/cite.html for more +details. + +:line + +[-package style args ....] :link(package) + +Invoke the "package"_package.html command with style and args. The +syntax is the same as if the command appeared at the top of the input +script. For example "-package gpu 2" or "-pk gpu 2" is the same as +"package gpu 2"_package.html in the input script. The possible styles +and args are documented on the "package"_package.html doc page. This +switch can be used multiple times, e.g. to set options for the +USER-INTEL and USER-OMP packages which can be used together. + +Along with the "-suffix" command-line switch, this is a convenient +mechanism for invoking accelerator packages and their options without +having to edit an input script. + +:line + +[-partition 8x2 4 5 ...] :link(partition) + +Invoke LAMMPS in multi-partition mode. When LAMMPS is run on P +processors and this switch is not used, LAMMPS runs in one partition, +i.e. all P processors run a single simulation. If this switch is +used, the P processors are split into separate partitions and each +partition runs its own simulation. The arguments to the switch +specify the number of processors in each partition. Arguments of the +form MxN mean M partitions, each with N processors. Arguments of the +form N mean a single partition with N processors. The sum of +processors in all partitions must equal P. Thus the command +"-partition 8x2 4 5" has 10 partitions and runs on a total of 25 +processors. + +Running with multiple partitions can be useful for running +"multi-replica simulations"_Howto_replica.html, where each replica +runs on on one or a few processors. Note that with MPI installed on a +machine (e.g. your desktop), you can run on more (virtual) processors +than you have physical processors. + +To run multiple independent simulations from one input script, using +multiple partitions, see the "Howto multiple"_Howto_multiple.html doc +page. World- and universe-style "variables"_variable.html are useful +in this context. + +:line + +[-plog file] :link(plog) + +Specify the base name for the partition log files, so partition N +writes log information to file.N. If file is none, then no partition +log files are created. This overrides the filename specified in the +-log command-line option. This option is useful when working with +large numbers of partitions, allowing the partition log files to be +suppressed (-plog none) or placed in a sub-directory (-plog +replica_files/log.lammps) If this option is not used the log file for +partition N is log.lammps.N or whatever is specified by the -log +command-line option. + +:line + +[-pscreen file] :link(pscreen) + +Specify the base name for the partition screen file, so partition N +writes screen information to file.N. If file is none, then no +partition screen files are created. This overrides the filename +specified in the -screen command-line option. This option is useful +when working with large numbers of partitions, allowing the partition +screen files to be suppressed (-pscreen none) or placed in a +sub-directory (-pscreen replica_files/screen). If this option is not +used the screen file for partition N is screen.N or whatever is +specified by the -screen command-line option. + +:line + +[-restart restartfile {remap} datafile keyword value ...] :link(restart) + +Convert the restart file into a data file and immediately exit. This +is the same operation as if the following 2-line input script were +run: + +read_restart restartfile {remap} +write_data datafile keyword value ... :pre + +Note that the specified restartfile and datafile can have wild-card +characters ("*",%") as described by the +"read_restart"_read_restart.html and "write_data"_write_data.html +commands. But a filename such as file.* will need to be enclosed in +quotes to avoid shell expansion of the "*" character. + +Note that following restartfile, the optional flag {remap} can be +used. This has the same effect as adding it to the +"read_restart"_read_restart.html command, as explained on its doc +page. This is only useful if the reading of the restart file triggers +an error that atoms have been lost. In that case, use of the remap +flag should allow the data file to still be produced. + +Also note that following datafile, the same optional keyword/value +pairs can be listed as used by the "write_data"_write_data.html +command. + +:line + +[-reorder] :link(reorder) + +This option has 2 forms: + +-reorder nth N +-reorder custom filename :pre + +Reorder the processors in the MPI communicator used to instantiate +LAMMPS, in one of several ways. The original MPI communicator ranks +all P processors from 0 to P-1. The mapping of these ranks to +physical processors is done by MPI before LAMMPS begins. It may be +useful in some cases to alter the rank order. E.g. to insure that +cores within each node are ranked in a desired order. Or when using +the "run_style verlet/split"_run_style.html command with 2 partitions +to insure that a specific Kspace processor (in the 2nd partition) is +matched up with a specific set of processors in the 1st partition. +See the "Speed tips"_Speed_tips.html doc page for more details. + +If the keyword {nth} is used with a setting {N}, then it means every +Nth processor will be moved to the end of the ranking. This is useful +when using the "run_style verlet/split"_run_style.html command with 2 +partitions via the -partition command-line switch. The first set of +processors will be in the first partition, the 2nd set in the 2nd +partition. The -reorder command-line switch can alter this so that +the 1st N procs in the 1st partition and one proc in the 2nd partition +will be ordered consecutively, e.g. as the cores on one physical node. +This can boost performance. For example, if you use "-reorder nth 4" +and "-partition 9 3" and you are running on 12 processors, the +processors will be reordered from + +0 1 2 3 4 5 6 7 8 9 10 11 :pre + +to + +0 1 2 4 5 6 8 9 10 3 7 11 :pre + +so that the processors in each partition will be + +0 1 2 4 5 6 8 9 10 +3 7 11 :pre + +See the "processors" command for how to insure processors from each +partition could then be grouped optimally for quad-core nodes. + +If the keyword is {custom}, then a file that specifies a permutation +of the processor ranks is also specified. The format of the reorder +file is as follows. Any number of initial blank or comment lines +(starting with a "#" character) can be present. These should be +followed by P lines of the form: + +I J :pre + +where P is the number of processors LAMMPS was launched with. Note +that if running in multi-partition mode (see the -partition switch +above) P is the total number of processors in all partitions. The I +and J values describe a permutation of the P processors. Every I and +J should be values from 0 to P-1 inclusive. In the set of P I values, +every proc ID should appear exactly once. Ditto for the set of P J +values. A single I,J pairing means that the physical processor with +rank I in the original MPI communicator will have rank J in the +reordered communicator. + +Note that rank ordering can also be specified by many MPI +implementations, either by environment variables that specify how to +order physical processors, or by config files that specify what +physical processors to assign to each MPI rank. The -reorder switch +simply gives you a portable way to do this without relying on MPI +itself. See the "processors out"_processors.html command for how +to output info on the final assignment of physical processors to +the LAMMPS simulation domain. + +:line + +[-screen file] :link(screen) + +Specify a file for LAMMPS to write its screen information to. In +one-partition mode, if the switch is not used, LAMMPS writes to the +screen. If this switch is used, LAMMPS writes to the specified file +instead and you will see no screen output. In multi-partition mode, +if the switch is not used, hi-level status information is written to +the screen. Each partition also writes to a screen.N file where N is +the partition ID. If the switch is specified in multi-partition mode, +the hi-level screen dump is named "file" and each partition also +writes screen information to a file.N. For both one-partition and +multi-partition mode, if the specified file is "none", then no screen +output is performed. Option -pscreen will override the name of the +partition screen files file.N. + +:line + +[-suffix style args] :link(suffix) + +Use variants of various styles if they exist. The specified style can +be {cuda}, {gpu}, {intel}, {kk}, {omp}, {opt}, or {hybrid}. These +refer to optional packages that LAMMPS can be built with, as described +above in "Section 2.3"_#start_3. The "gpu" style corresponds to the +GPU package, the "intel" style to the USER-INTEL package, the "kk" +style to the KOKKOS package, the "opt" style to the OPT package, and +the "omp" style to the USER-OMP package. The hybrid style is the only +style that accepts arguments. It allows for two packages to be +specified. The first package specified is the default and will be used +if it is available. If no style is available for the first package, +the style for the second package will be used if available. For +example, "-suffix hybrid intel omp" will use styles from the +USER-INTEL package if they are installed and available, but styles for +the USER-OMP package otherwise. + +Along with the "-package" command-line switch, this is a convenient +mechanism for invoking accelerator packages and their options without +having to edit an input script. + +As an example, all of the packages provide a "pair_style +lj/cut"_pair_lj.html variant, with style names lj/cut/gpu, +lj/cut/intel, lj/cut/kk, lj/cut/omp, and lj/cut/opt. A variant style +can be specified explicitly in your input script, e.g. pair_style +lj/cut/gpu. If the -suffix switch is used the specified suffix +(gpu,intel,kk,omp,opt) is automatically appended whenever your input +script command creates a new "atom"_atom_style.html, +"pair"_pair_style.html, "fix"_fix.html, "compute"_compute.html, or +"run"_run_style.html style. If the variant version does not exist, +the standard version is created. + +For the GPU package, using this command-line switch also invokes the +default GPU settings, as if the command "package gpu 1" were used at +the top of your input script. These settings can be changed by using +the "-package gpu" command-line switch or the "package +gpu"_package.html command in your script. + +For the USER-INTEL package, using this command-line switch also +invokes the default USER-INTEL settings, as if the command "package +intel 1" were used at the top of your input script. These settings +can be changed by using the "-package intel" command-line switch or +the "package intel"_package.html command in your script. If the +USER-OMP package is also installed, the hybrid style with "intel omp" +arguments can be used to make the omp suffix a second choice, if a +requested style is not available in the USER-INTEL package. It will +also invoke the default USER-OMP settings, as if the command "package +omp 0" were used at the top of your input script. These settings can +be changed by using the "-package omp" command-line switch or the +"package omp"_package.html command in your script. + +For the KOKKOS package, using this command-line switch also invokes +the default KOKKOS settings, as if the command "package kokkos" were +used at the top of your input script. These settings can be changed +by using the "-package kokkos" command-line switch or the "package +kokkos"_package.html command in your script. + +For the OMP package, using this command-line switch also invokes the +default OMP settings, as if the command "package omp 0" were used at +the top of your input script. These settings can be changed by using +the "-package omp" command-line switch or the "package +omp"_package.html command in your script. + +The "suffix"_suffix.html command can also be used within an input +script to set a suffix, or to turn off or back on any suffix setting +made via the command line. + +:line + +[-var name value1 value2 ...] :link(var) + +Specify a variable that will be defined for substitution purposes when +the input script is read. This switch can be used multiple times to +define multiple variables. "Name" is the variable name which can be a +single character (referenced as $x in the input script) or a full +string (referenced as $\{abc\}). An "index-style +variable"_variable.html will be created and populated with the +subsequent values, e.g. a set of filenames. Using this command-line +option is equivalent to putting the line "variable name index value1 +value2 ..." at the beginning of the input script. Defining an index +variable as a command-line argument overrides any setting for the same +index variable in the input script, since index variables cannot be +re-defined. + +See the "variable"_variable.html command for more info on defining +index and other kinds of variables and the "Commands +parse"_Commands_parse.html page for more info on using variables in +input scripts. + +NOTE: Currently, the command-line parser looks for arguments that +start with "-" to indicate new switches. Thus you cannot specify +multiple variable values if any of them start with a "-", e.g. a +negative numeric value. It is OK if the first value1 starts with a +"-", since it is automatically skipped. diff --git a/doc/src/Run_output.txt b/doc/src/Run_output.txt new file mode 100644 index 0000000000..a534ae7c7b --- /dev/null +++ b/doc/src/Run_output.txt @@ -0,0 +1,176 @@ +"Higher level section"_Run.html - "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 + +Screen and logfile output :h3 + +As LAMMPS reads an input script, it prints information to both the +screen and a log file about significant actions it takes to setup a +simulation. When the simulation is ready to begin, LAMMPS performs +various initializations, and prints info about the run it is about to +perform, including the amount of memory (in MBytes per processor) that +the simulation requires. It also prints details of the initial +thermodynamic state of the system. During the run itself, +thermodynamic information is printed periodically, every few +timesteps. When the run concludes, LAMMPS prints the final +thermodynamic state and a total run time for the simulation. It also +appends statistics about the CPU time and storage requirements for the +simulation. An example set of statistics is shown here: + +Loop time of 2.81192 on 4 procs for 300 steps with 2004 atoms :pre + +Performance: 18.436 ns/day 1.302 hours/ns 106.689 timesteps/s +97.0% CPU use with 4 MPI tasks x no OpenMP threads :pre + +MPI task timings breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.9808 | 2.0134 | 2.0318 | 1.4 | 71.60 +Bond | 0.0021894 | 0.0060319 | 0.010058 | 4.7 | 0.21 +Kspace | 0.3207 | 0.3366 | 0.36616 | 3.1 | 11.97 +Neigh | 0.28411 | 0.28464 | 0.28516 | 0.1 | 10.12 +Comm | 0.075732 | 0.077018 | 0.07883 | 0.4 | 2.74 +Output | 0.00030518 | 0.00042665 | 0.00078821 | 1.0 | 0.02 +Modify | 0.086606 | 0.086631 | 0.086668 | 0.0 | 3.08 +Other | | 0.007178 | | | 0.26 :pre + +Nlocal: 501 ave 508 max 490 min +Histogram: 1 0 0 0 0 0 1 1 0 1 +Nghost: 6586.25 ave 6628 max 6548 min +Histogram: 1 0 1 0 0 0 1 0 0 1 +Neighs: 177007 ave 180562 max 170212 min +Histogram: 1 0 0 0 0 0 0 1 1 1 :pre + +Total # of neighbors = 708028 +Ave neighs/atom = 353.307 +Ave special neighs/atom = 2.34032 +Neighbor list builds = 26 +Dangerous builds = 0 :pre + +:line + +The first section provides a global loop timing summary. The {loop +time} is the total wall-clock time for the simulation to run. The +{Performance} line is provided for convenience to help predict how +long it will take to run a desired physical simulation. The {CPU use} +line provides the CPU utilization per MPI task; it should be close to +100% times the number of OpenMP threads (or 1 of not using OpenMP). +Lower numbers correspond to delays due to file I/O or insufficient +thread utilization. + +:line + +The {MPI task} section gives the breakdown of the CPU run time (in +seconds) into major categories: + +{Pair} = non-bonded force computations +{Bond} = bonded interactions: bonds, angles, dihedrals, impropers +{Kspace} = long-range interactions: Ewald, PPPM, MSM +{Neigh} = neighbor list construction +{Comm} = inter-processor communication of atoms and their properties +{Output} = output of thermodynamic info and dump files +{Modify} = fixes and computes invoked by fixes +{Other} = all the remaining time :ul + +For each category, there is a breakdown of the least, average and most +amount of wall time any processor spent on this category of +computation. The "%varavg" is the percentage by which the max or min +varies from the average. This is an indication of load imbalance. A +percentage close to 0 is perfect load balance. A large percentage is +imbalance. The final "%total" column is the percentage of the total +loop time is spent in this category. + +When using the "timer full"_timer.html setting, an additional column +is added that also prints the CPU utilization in percent. In addition, +when using {timer full} and the "package omp"_package.html command are +active, a similar timing summary of time spent in threaded regions to +monitor thread utilization and load balance is provided. A new {Thread +timings} section is also added, which lists the time spent in reducing +the per-thread data elements to the storage for non-threaded +computation. These thread timings are measured for the first MPI rank +only and and thus, because the breakdown for MPI tasks can change from +MPI rank to MPI rank, this breakdown can be very different for +individual ranks. Here is an example output for this section: + +Thread timings breakdown (MPI rank 0): +Total threaded time 0.6846 / 90.6% +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.5127 | 0.5147 | 0.5167 | 0.3 | 75.18 +Bond | 0.0043139 | 0.0046779 | 0.0050418 | 0.5 | 0.68 +Kspace | 0.070572 | 0.074541 | 0.07851 | 1.5 | 10.89 +Neigh | 0.084778 | 0.086969 | 0.089161 | 0.7 | 12.70 +Reduce | 0.0036485 | 0.003737 | 0.0038254 | 0.1 | 0.55 :pre + +:line + +The third section above lists the number of owned atoms (Nlocal), +ghost atoms (Nghost), and pair-wise neighbors stored per processor. +The max and min values give the spread of these values across +processors with a 10-bin histogram showing the distribution. The total +number of histogram counts is equal to the number of processors. + +:line + +The last section gives aggregate statistics (across all processors) +for pair-wise neighbors and special neighbors that LAMMPS keeps track +of (see the "special_bonds"_special_bonds.html command). The number +of times neighbor lists were rebuilt is tallied, as is the number of +potentially {dangerous} rebuilds. If atom movement triggered neighbor +list rebuilding (see the "neigh_modify"_neigh_modify.html command), +then dangerous reneighborings are those that were triggered on the +first timestep atom movement was checked for. If this count is +non-zero you may wish to reduce the delay factor to insure no force +interactions are missed by atoms moving beyond the neighbor skin +distance before a rebuild takes place. + +:line + +If an energy minimization was performed via the +"minimize"_minimize.html command, additional information is printed, +e.g. + +Minimization stats: + Stopping criterion = linesearch alpha is zero + Energy initial, next-to-last, final = + -6372.3765206 -8328.46998942 -8328.46998942 + Force two-norm initial, final = 1059.36 5.36874 + Force max component initial, final = 58.6026 1.46872 + Final line search alpha, max atom move = 2.7842e-10 4.0892e-10 + Iterations, force evaluations = 701 1516 :pre + +The first line prints the criterion that determined minimization was +converged. The next line lists the initial and final energy, as well +as the energy on the next-to-last iteration. The next 2 lines give a +measure of the gradient of the energy (force on all atoms). The +2-norm is the "length" of this 3N-component force vector; the largest +component (x, y, or z) of force (infinity-norm) is also given. Then +information is provided about the line search and statistics on how +many iterations and force-evaluations the minimizer required. +Multiple force evaluations are typically done at each iteration to +perform a 1d line minimization in the search direction. See the +"minimize"_minimize.html doc page for more details. + +:line + +If a "kspace_style"_kspace_style.html long-range Coulombics solver +that performs FFTs was used during the run (PPPM, Ewald), then +additional information is printed, e.g. + +FFT time (% of Kspce) = 0.200313 (8.34477) +FFT Gflps 3d 1d-only = 2.31074 9.19989 :pre + +The first line is the time spent doing 3d FFTs (several per timestep) +and the fraction it represents of the total KSpace time (listed +above). Each 3d FFT requires computation (3 sets of 1d FFTs) and +communication (transposes). The total flops performed is 5Nlog_2(N), +where N is the number of points in the 3d grid. The FFTs are timed +with and without the communication and a Gflop rate is computed. The +3d rate is with communication; the 1d rate is without (just the 1d +FFTs). Thus you can estimate what fraction of your FFT time was spent +in communication, roughly 75% in the example above. diff --git a/doc/src/Run_windows.txt b/doc/src/Run_windows.txt new file mode 100644 index 0000000000..1151a4a2bb --- /dev/null +++ b/doc/src/Run_windows.txt @@ -0,0 +1,73 @@ +"Higher level section"_Run.html - "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 + +Running LAMMPS on Windows :h3 + +To run a serial (non-MPI) executable, follow these steps: + +Get a command prompt by going to Start->Run... , +then typing "cmd". :ulb,l + +Move to the directory where you have your input script, +(e.g. by typing: cd "Documents"). :l + +At the command prompt, type "lmp_serial -in in.file", where +in.file is the name of your LAMMPS input script. :l,ule + +Note that the serial executable includes support for multi-threading +parallelization from the styles in the USER-OMP packages. To run with +4 threads, you can type this: + +lmp_serial -in in.lj -pk omp 4 -sf omp :pre + +:line + +For the MPI executable, which allows you to run LAMMPS under Windows +in parallel, follow these steps. + +Download and install a compatible MPI library binary package: + +for 32-bit Windows: "mpich2-1.4.1p1-win-ia32.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi +for 64-bit Windows: "mpich2-1.4.1p1-win-x86-64.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi :ul + +The LAMMPS Windows installer packages will automatically adjust your +path for the default location of this MPI package. After the +installation of the MPICH2 software, it needs to be integrated into +the system. For this you need to start a Command Prompt in +{Administrator Mode} (right click on the icon and select it). Change +into the MPICH2 installation directory, then into the subdirectory +[bin] and execute [smpd.exe -install]. Exit the command window. + +Get a new, regular command prompt by going to Start->Run... , +then typing "cmd". :ulb,l + +Move to the directory where you have your input file +(e.g. by typing: cd "Documents"). :l,ule + +Then type something like this: + +mpiexec -localonly 4 lmp_mpi -in in.file +mpiexec -np 4 lmp_mpi -in in.file :pre + +where in.file is the name of your LAMMPS input script. For the latter +case, you may be prompted to enter your password. + +In this mode, output may not immediately show up on the screen, so if +your input script takes a long time to execute, you may need to be +patient before the output shows up. + +The parallel executable can also run on a single processor by typing +something like this: + +lmp_mpi -in in.lj :pre + +Note that the parallel executable also includes OpenMP +multi-threading, which can be combined with MPI using something like: + +mpiexec -localonly 2 lmp_mpi -in in.lj -pk omp 2 -sf omp :pre diff --git a/doc/src/Section_start.txt b/doc/src/Section_start.txt deleted file mode 100644 index 19a798d5df..0000000000 --- a/doc/src/Section_start.txt +++ /dev/null @@ -1,1823 +0,0 @@ -"Previous Section"_Intro.html - "LAMMPS WWW Site"_lws - -"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Commands.html :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Commands_all.html) - -:line - -2. Getting Started :h2 - -This section describes how to build and run LAMMPS, for both new and -experienced users. - -2.1 "What's in the LAMMPS distribution"_#start_1 -2.2 "Making LAMMPS"_#start_2 -2.3 "Making LAMMPS with optional packages"_#start_3 -2.4 "Building LAMMPS as a library"_#start_4 -2.5 "Running LAMMPS"_#start_5 -2.6 "Command-line options"_#start_6 -2.7 "Screen output"_#start_7 -2.8 "Tips for users of previous versions"_#start_8 :all(b) - -:line - -2.1 What's in the LAMMPS distribution :h3,link(start_1) - -When you download a LAMMPS tarball you will need to unzip and untar -the downloaded file with the following commands, after placing the -tarball in an appropriate directory. - -tar -xzvf lammps*.tar.gz :pre - -This will create a LAMMPS directory containing two files and several -sub-directories: - -README: text file -LICENSE: the GNU General Public License (GPL) -bench: benchmark problems -doc: documentation -examples: simple test problems -potentials: embedded atom method (EAM) potential files -src: source files -tools: pre- and post-processing tools :tb(s=:) - -Note that the "download page"_download also has links to download -pre-build Windows installers, as well as pre-built packages for -several widely used Linux distributions. It also has instructions -for how to download/install LAMMPS for Macs (via Homebrew), and to -download and update LAMMPS from SVN and Git repositories, which gives -you access to the up-to-date sources that are used by the LAMMPS -core developers. - -:link(download,http://lammps.sandia.gov/download.html) - -The Windows and Linux packages for serial or parallel include -only selected packages and bug-fixes/upgrades listed on "this -page"_http://lammps.sandia.gov/bug.html up to a certain date, as -stated on the download page. If you want an executable with -non-included packages or that is more current, then you'll need to -build LAMMPS yourself, as discussed in the next section. - -Skip to the "Running LAMMPS"_#start_6 sections for info on how to -launch a LAMMPS Windows executable on a Windows box. - -:line - -2.2 Making LAMMPS :h3,link(start_2) - -This section has the following sub-sections: - -2.2.1 "Read this first"_#start_2_1 -2.2.1 "Steps to build a LAMMPS executable"_#start_2_2 -2.2.3 "Common errors that can occur when making LAMMPS"_#start_2_3 -2.2.4 "Additional build tips"_#start_2_4 -2.2.5 "Building for a Mac"_#start_2_5 -2.2.6 "Building for Windows"_#start_2_6 :all(b) - -:line - -Read this first :h4,link(start_2_1) - -If you want to avoid building LAMMPS yourself, read the preceding -section about options available for downloading and installing -executables. Details are discussed on the "download"_download page. - -Building LAMMPS can be simple or not-so-simple. If all you need are -the default packages installed in LAMMPS, and MPI is already installed -on your machine, or you just want to run LAMMPS in serial, then you -can typically use the Makefile.mpi or Makefile.serial files in -src/MAKE by typing one of these lines (from the src dir): - -make mpi -make serial :pre - -Note that on a facility supercomputer, there are often "modules" -loaded in your environment that provide the compilers and MPI you -should use. In this case, the "mpicxx" compile/link command in -Makefile.mpi should simply work by accessing those modules. - -It may be the case that one of the other Makefile.machine files in the -src/MAKE sub-directories is a better match to your system (type "make" -to see a list), you can use it as-is by typing (for example): - -make stampede :pre - -If any of these builds (with an existing Makefile.machine) works on -your system, then you're done! - -If you need to install an optional package with a LAMMPS command you -want to use, and the package does not depend on an extra library, you -can simply type - -make name :pre - -before invoking (or re-invoking) the above steps. "Name" is the -lower-case name of the package, e.g. replica or user-misc. - -If you want to do one of the following: - -use a LAMMPS command that requires an extra library (e.g. "dump -image"_dump_image.html) build with a package that requires an extra -library build with an accelerator package that requires special -compiler/linker settings run on a machine that has its own compilers, -settings, or libraries :ul - -then building LAMMPS is more complicated. You may need to find where -extra libraries exist on your machine or install them if they don't. -You may need to build extra libraries that are included in the LAMMPS -distribution, before building LAMMPS itself. You may need to edit a -Makefile.machine file to make it compatible with your system. - -Please read the following sections carefully. If you are not -comfortable with makefiles, or building codes on a Unix platform, or -running an MPI job on your machine, please find a local expert to help -you. Many compilation, linking, and run problems users experience are -often not LAMMPS issues - they are peculiar to the user's system, -compilers, libraries, etc. Such questions are better answered by a -local expert. - -If you have a build problem that you are convinced is a LAMMPS issue -(e.g. the compiler complains about a line of LAMMPS source code), then -please post the issue to the "LAMMPS mail -list"_http://lammps.sandia.gov/mail.html. - -If you succeed in building LAMMPS on a new kind of machine, for which -there isn't a similar machine Makefile included in the -src/MAKE/MACHINES directory, then send it to the developers and we can -include it in the LAMMPS distribution. - -:line - -Steps to build a LAMMPS executable :h4,link(start_2_2) - -Step 0 :h5 - -The src directory contains the C++ source and header files for LAMMPS. -It also contains a top-level Makefile and a MAKE sub-directory with -low-level Makefile.* files for many systems and machines. See the -src/MAKE/README file for a quick overview of what files are available -and what sub-directories they are in. - -The src/MAKE dir has a few files that should work as-is on many -platforms. The src/MAKE/OPTIONS dir has more that invoke additional -compiler, MPI, and other setting options commonly used by LAMMPS, to -illustrate their syntax. The src/MAKE/MACHINES dir has many more that -have been tweaked or optimized for specific machines. These files are -all good starting points if you find you need to change them for your -machine. Put any file you edit into the src/MAKE/MINE directory and -it will be never be touched by any LAMMPS updates. - ->From within the src directory, type "make" or "gmake". You should see -a list of available choices from src/MAKE and all of its -sub-directories. If one of those has the options you want or is the -machine you want, you can type a command like: - -make mpi :pre -or - -make serial :pre -or - -gmake mac :pre - -Note that the corresponding Makefile.machine can exist in src/MAKE or -any of its sub-directories. If a file with the same name appears in -multiple places (not a good idea), the order they are used is as -follows: src/MAKE/MINE, src/MAKE, src/MAKE/OPTIONS, src/MAKE/MACHINES. -This gives preference to a file you have created/edited and put in -src/MAKE/MINE. - -Note that on a multi-processor or multi-core platform you can launch a -parallel make, by using the "-j" switch with the make command, which -will build LAMMPS more quickly. - -If you get no errors and an executable like [lmp_mpi] or [lmp_serial] -or [lmp_mac] is produced, then you're done; it's your lucky day. - -Note that by default only a few of LAMMPS optional packages are -installed. To build LAMMPS with optional packages, see "this -section"_#start_3 below. - -Step 1 :h5 - -If Step 0 did not work, you will need to create a low-level Makefile -for your machine, like Makefile.foo. You should make a copy of an -existing Makefile.* in src/MAKE or one of its sub-directories as a -starting point. The only portions of the file you need to edit are -the first line, the "compiler/linker settings" section, and the -"LAMMPS-specific settings" section. When it works, put the edited -file in src/MAKE/MINE and it will not be altered by any future LAMMPS -updates. - -Step 2 :h5 - -Change the first line of Makefile.foo to list the word "foo" after the -"#", and whatever other options it will set. This is the line you -will see if you just type "make". - -Step 3 :h5 - -The "compiler/linker settings" section lists compiler and linker -settings for your C++ compiler, including optimization flags. You can -use g++, the open-source GNU compiler, which is available on all Unix -systems. You can also use mpicxx which will typically be available if -MPI is installed on your system, though you should check which actual -compiler it wraps. Vendor compilers often produce faster code. On -boxes with Intel CPUs, we suggest using the Intel icc compiler, which -can be downloaded from "Intel's compiler site"_intel. - -:link(intel,http://www.intel.com/software/products/noncom) - -If building a C++ code on your machine requires additional libraries, -then you should list them as part of the LIB variable. You should -not need to do this if you use mpicxx. - -The DEPFLAGS setting is what triggers the C++ compiler to create a -dependency list for a source file. This speeds re-compilation when -source (*.cpp) or header (*.h) files are edited. Some compilers do -not support dependency file creation, or may use a different switch -than -D. GNU g++ and Intel icc works with -D. If your compiler can't -create dependency files, then you'll need to create a Makefile.foo -patterned after Makefile.storm, which uses different rules that do not -involve dependency files. Note that when you build LAMMPS for the -first time on a new platform, a long list of *.d files will be printed -out rapidly. This is not an error; it is the Makefile doing its -normal creation of dependencies. - -Step 4 :h5 - -The "system-specific settings" section has several parts. Note that -if you change any -D setting in this section, you should do a full -re-compile, after typing "make clean" (which will describe different -clean options). - -The LMP_INC variable is used to include options that turn on ifdefs -within the LAMMPS code. The options that are currently recognized are: - --DLAMMPS_GZIP --DLAMMPS_JPEG --DLAMMPS_PNG --DLAMMPS_FFMPEG --DLAMMPS_MEMALIGN --DLAMMPS_SMALLBIG --DLAMMPS_BIGBIG --DLAMMPS_SMALLSMALL --DLAMMPS_LONGLONG_TO_LONG --DLAMMPS_EXCEPTIONS --DPACK_ARRAY --DPACK_POINTER --DPACK_MEMCPY :ul - -The read_data and dump commands will read/write gzipped files if you -compile with -DLAMMPS_GZIP. It requires that your machine supports -the "popen()" function in the standard runtime library and that a gzip -executable can be found by LAMMPS during a run. - -NOTE: on some clusters with high-speed networks, using the fork() -library calls (required by popen()) can interfere with the fast -communication library and lead to simulations using compressed output -or input to hang or crash. For selected operations, compressed file -I/O is also available using a compression library instead, which are -provided in the COMPRESS package. From more details about compiling -LAMMPS with packages, please see below. - -If you use -DLAMMPS_JPEG, the "dump image"_dump_image.html command -will be able to write out JPEG image files. For JPEG files, you must -also link LAMMPS with a JPEG library, as described below. If you use --DLAMMPS_PNG, the "dump image"_dump.html command will be able to write -out PNG image files. For PNG files, you must also link LAMMPS with a -PNG library, as described below. If neither of those two defines are -used, LAMMPS will only be able to write out uncompressed PPM image -files. - -If you use -DLAMMPS_FFMPEG, the "dump movie"_dump_image.html command -will be available to support on-the-fly generation of rendered movies -the need to store intermediate image files. It requires that your -machines supports the "popen" function in the standard runtime library -and that an FFmpeg executable can be found by LAMMPS during the run. - -NOTE: Similar to the note above, this option can conflict with -high-speed networks, because it uses popen(). - -Using -DLAMMPS_MEMALIGN= enables the use of the -posix_memalign() call instead of malloc() when large chunks or memory -are allocated by LAMMPS. This can help to make more efficient use of -vector instructions of modern CPUS, since dynamically allocated memory -has to be aligned on larger than default byte boundaries (e.g. 16 -bytes instead of 8 bytes on x86 type platforms) for optimal -performance. - -Use at most one of the -DLAMMPS_SMALLBIG, -DLAMMPS_BIGBIG, --DLAMMPS_SMALLSMALL settings. The default is -DLAMMPS_SMALLBIG. These -settings refer to use of 4-byte (small) vs 8-byte (big) integers -within LAMMPS, as specified in src/lmptype.h. The only reason to use -the BIGBIG setting is to enable simulation of huge molecular systems -(which store bond topology info) with more than 2 billion atoms, or to -track the image flags of moving atoms that wrap around a periodic box -more than 512 times. Normally, the only reason to use SMALLSMALL is -if your machine does not support 64-bit integers, though you can use -SMALLSMALL setting if you are running in serial or on a desktop -machine or small cluster where you will never run large systems or for -long time (more than 2 billion atoms, more than 2 billion timesteps). -See the "Additional build tips"_#start_2_4 section below for more -details on these settings. - -Note that the USER-ATC package is not currently compatible with --DLAMMPS_BIGBIG. Also the GPU package requires the lib/gpu library to -be compiled with the same setting, or the link will fail. - -The -DLAMMPS_LONGLONG_TO_LONG setting may be needed if your system or -MPI version does not recognize "long long" data types. In this case a -"long" data type is likely already 64-bits, in which case this setting -will convert to that data type. - -The -DLAMMPS_EXCEPTIONS setting can be used to activate alternative -versions of error handling inside of LAMMPS. This is useful when -external codes drive LAMMPS as a library. Using this option, LAMMPS -errors do not kill the caller. Instead, the call stack is unwound and -control returns to the caller. The library interface provides the -lammps_has_error() and lammps_get_last_error_message() functions to -detect and find out more about a LAMMPS error. - -Using one of the -DPACK_ARRAY, -DPACK_POINTER, and -DPACK_MEMCPY -options can make for faster parallel FFTs (in the PPPM solver) on some -platforms. The -DPACK_ARRAY setting is the default. See the -"kspace_style"_kspace_style.html command for info about PPPM. See -Step 6 below for info about building LAMMPS with an FFT library. - -Step 5 :h5 - -The 3 MPI variables are used to specify an MPI library to build LAMMPS -with. Note that you do not need to set these if you use the MPI -compiler mpicxx for your CC and LINK setting in the section above. -The MPI wrapper knows where to find the needed files. - -If you want LAMMPS to run in parallel, you must have an MPI library -installed on your platform. If MPI is installed on your system in the -usual place (under /usr/local), you also may not need to specify these -3 variables, assuming /usr/local is in your path. On some large -parallel machines which use "modules" for their compile/link -environments, you may simply need to include the correct module in -your build environment, before building LAMMPS. Or the parallel -machine may have a vendor-provided MPI which the compiler has no -trouble finding. - -Failing this, these 3 variables can be used to specify where the mpi.h -file (MPI_INC) and the MPI library file (MPI_PATH) are found and the -name of the library file (MPI_LIB). - -If you are installing MPI yourself, we recommend Argonne's MPICH2 -or OpenMPI. MPICH can be downloaded from the "Argonne MPI -site"_http://www.mcs.anl.gov/research/projects/mpich2/. OpenMPI can -be downloaded from the "OpenMPI site"_http://www.open-mpi.org. -Other MPI packages should also work. If you are running on a big -parallel platform, your system people or the vendor should have -already installed a version of MPI, which is likely to be faster -than a self-installed MPICH or OpenMPI, so find out how to build -and link with it. If you use MPICH or OpenMPI, you will have to -configure and build it for your platform. The MPI configure script -should have compiler options to enable you to use the same compiler -you are using for the LAMMPS build, which can avoid problems that can -arise when linking LAMMPS to the MPI library. - -If you just want to run LAMMPS on a single processor, you can use the -dummy MPI library provided in src/STUBS, since you don't need a true -MPI library installed on your system. See src/MAKE/Makefile.serial -for how to specify the 3 MPI variables in this case. You will also -need to build the STUBS library for your platform before making LAMMPS -itself. Note that if you are building with src/MAKE/Makefile.serial, -e.g. by typing "make serial", then the STUBS library is built for you. - -To build the STUBS library from the src directory, type "make -mpi-stubs", or from the src/STUBS dir, type "make". This should -create a libmpi_stubs.a file suitable for linking to LAMMPS. If the -build fails, you will need to edit the STUBS/Makefile for your -platform. - -The file STUBS/mpi.c provides a CPU timer function called MPI_Wtime() -that calls gettimeofday() . If your system doesn't support -gettimeofday() , you'll need to insert code to call another timer. -Note that the ANSI-standard function clock() rolls over after an hour -or so, and is therefore insufficient for timing long LAMMPS -simulations. - -Step 6 :h5 - -The 3 FFT variables allow you to specify an FFT library which LAMMPS -uses (for performing 1d FFTs) when running the particle-particle -particle-mesh (PPPM) option for long-range Coulombics via the -"kspace_style"_kspace_style.html command. - -LAMMPS supports common open-source or vendor-supplied FFT libraries -for this purpose. If you leave these 3 variables blank, LAMMPS will -use the open-source "KISS FFT library"_http://kissfft.sf.net, which is -included in the LAMMPS distribution. This library is portable to all -platforms and for typical LAMMPS simulations is almost as fast as FFTW -or vendor optimized libraries. If you are not including the KSPACE -package in your build, you can also leave the 3 variables blank. - -Otherwise, select which kinds of FFTs to use as part of the FFT_INC -setting by a switch of the form -DFFT_XXX. Recommended values for XXX -are: MKL or FFTW3. FFTW2 and NONE are supported as legacy options. -Selecting -DFFT_FFTW will use the FFTW3 library and -DFFT_NONE will -use the KISS library described above. - -You may also need to set the FFT_INC, FFT_PATH, and FFT_LIB variables, -so the compiler and linker can find the needed FFT header and library -files. Note that on some large parallel machines which use "modules" -for their compile/link environments, you may simply need to include -the correct module in your build environment. Or the parallel machine -may have a vendor-provided FFT library which the compiler has no -trouble finding. See the src/MAKE/OPTIONS/Makefile.fftw file for an -example of how to specify these variables to use the FFTW3 library. - -FFTW is fast, portable library that should also work on any platform -and typically be faster than KISS FFT. You can download it from -"www.fftw.org"_http://www.fftw.org. Both the legacy version 2.1.X and -the newer 3.X versions are supported as -DFFT_FFTW2 or -DFFT_FFTW3. -Building FFTW for your box should be as simple as ./configure; make; -make install. The install command typically requires root privileges -(e.g. invoke it via sudo), unless you specify a local directory with -the "--prefix" option of configure. Type "./configure --help" to see -various options. - -If you wish to have FFTW support for single-precision FFTs (see below -about -DFFT_SINGLE) in addition to the default double-precision FFTs, -you will need to build FFTW a second time for single-precision. For -FFTW3, do this via: - -make clean -./configure --enable-single; make; make install :pre - -which should produce the additional library libfftw3f.a. - -For FFTW2, do this: - -make clean -./configure --enable-float --enable-type-prefix; make; make install :pre - -which should produce the additional library libsfftw.a and additional -include file sfttw.a. Note that on some platforms FFTW2 has been -pre-installed for both single- and double-precision, and may already -have these files as well as libdfftw.a and dfftw.h for double -precision. - -The FFT_INC variable also allows for a -DFFT_SINGLE setting that will -use single-precision FFTs with PPPM, which can speed-up long-range -calculations, particularly in parallel or on GPUs. Fourier transform -and related PPPM operations are somewhat insensitive to floating point -truncation errors and thus do not always need to be performed in -double precision. Using the -DFFT_SINGLE setting trades off a little -accuracy for reduced memory use and parallel communication costs for -transposing 3d FFT data. Note that single precision FFTs have only -been tested with the FFTW3, FFTW2, MKL, and KISS FFT options. - -When using -DFFT_SINGLE with FFTW3 or FFTW2, you need to build FFTW -with support for single-precision, as explained above. For FFTW3 you -also need to include -lfftw3f with the FFT_LIB setting, in addition to --lfftw3. For FFTW2, you also need to specify -DFFT_SIZE with the -FFT_INC setting and -lsfftw with the FFT_LIB setting (in place of --lfftw). Similarly, if FFTW2 has been pre-installed with an explicit -double-precision library (libdfftw.a and not the default libfftw.a), -then you can specify -DFFT_SIZE (and not -DFFT_SINGLE), and specify --ldfftw to use double-precision FFTs. - -Step 7 :h5 - -The 3 JPG variables allow you to specify a JPEG and/or PNG library -which LAMMPS uses when writing out JPEG or PNG files via the "dump -image"_dump_image.html command. These can be left blank if you do not -use the -DLAMMPS_JPEG or -DLAMMPS_PNG switches discussed above in Step -4, since in that case JPEG/PNG output will be disabled. - -A standard JPEG library usually goes by the name libjpeg.a or -libjpeg.so and has an associated header file jpeglib.h. Whichever -JPEG library you have on your platform, you'll need to set the -appropriate JPG_INC, JPG_PATH, and JPG_LIB variables, so that the -compiler and linker can find it. - -A standard PNG library usually goes by the name libpng.a or libpng.so -and has an associated header file png.h. Whichever PNG library you -have on your platform, you'll need to set the appropriate JPG_INC, -JPG_PATH, and JPG_LIB variables, so that the compiler and linker can -find it. - -As before, if these header and library files are in the usual place on -your machine, you may not need to set these variables. - -Step 8 :h5 - -Note that by default only a few of LAMMPS optional packages are -installed. To build LAMMPS with optional packages, see "this -section"_#start_3 below, before proceeding to Step 9. - -Step 9 :h5 - -That's it. Once you have a correct Makefile.foo, and you have -pre-built any other needed libraries (e.g. MPI, FFT, etc) all you need -to do from the src directory is type something like this: - -make foo -make -j N foo -gmake foo -gmake -j N foo :pre - -The -j or -j N switches perform a parallel build which can be much -faster, depending on how many cores your compilation machine has. N -is the number of cores the build runs on. - -You should get the executable lmp_foo when the build is complete. - -:line - -Errors that can occur when making LAMMPS :h4 :link(start_2_3) - -If an error occurs when building LAMMPS, the compiler or linker will -state very explicitly what the problem is. The error message should -give you a hint as to which of the steps above has failed, and what -you need to do in order to fix it. Building a code with a Makefile is -a very logical process. The compiler and linker need to find the -appropriate files and those files need to be compatible with LAMMPS -settings and source files. When a make fails, there is usually a very -simple reason, which you or a local expert will need to fix. - -Here are two non-obvious errors that can occur: - -(1) If the make command breaks immediately with errors that indicate -it can't find files with a "*" in their names, this can be because -your machine's native make doesn't support wildcard expansion in a -makefile. Try gmake instead of make. If that doesn't work, try using -a -f switch with your make command to use a pre-generated -Makefile.list which explicitly lists all the needed files, e.g. - -make makelist -make -f Makefile.list linux -gmake -f Makefile.list mac :pre - -The first "make" command will create a current Makefile.list with all -the file names in your src dir. The 2nd "make" command (make or -gmake) will use it to build LAMMPS. Note that you should -include/exclude any desired optional packages before using the "make -makelist" command. - -(2) If you get an error that says something like 'identifier "atoll" -is undefined', then your machine does not support "long long" -integers. Try using the -DLAMMPS_LONGLONG_TO_LONG setting described -above in Step 4. - -:line - -Additional build tips :h4,link(start_2_4) - -Building LAMMPS for multiple platforms. :h5 - -You can make LAMMPS for multiple platforms from the same src -directory. Each target creates its own object sub-directory called -Obj_target where it stores the system-specific *.o files. - -Cleaning up. :h5 - -Typing "make clean-all" or "make clean-machine" will delete *.o object -files created when LAMMPS is built, for either all builds or for a -particular machine. - -Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h5 - -As explained above, any of these 3 settings can be specified on the -LMP_INC line in your low-level src/MAKE/Makefile.foo. - -The default is -DLAMMPS_SMALLBIG which allows for systems with up to -2^63 atoms and 2^63 timesteps (about 9e18). The atom limit is for -atomic systems which do not store bond topology info and thus do not -require atom IDs. If you use atom IDs for atomic systems (which is -the default) or if you use a molecular model, which stores bond -topology info and thus requires atom IDs, the limit is 2^31 atoms -(about 2 billion). This is because the IDs are stored in 32-bit -integers. - -Likewise, with this setting, the 3 image flags for each atom (see the -"dump"_dump.html doc page for a discussion) are stored in a 32-bit -integer, which means the atoms can only wrap around a periodic box (in -each dimension) at most 512 times. If atoms move through the periodic -box more than this many times, the image flags will "roll over", -e.g. from 511 to -512, which can cause diagnostics like the -mean-squared displacement, as calculated by the "compute -msd"_compute_msd.html command, to be faulty. - -To allow for larger atomic systems with atom IDs or larger molecular -systems or larger image flags, compile with -DLAMMPS_BIGBIG. This -stores atom IDs and image flags in 64-bit integers. This enables -atomic or molecular systems with atom IDS of up to 2^63 atoms (about -9e18). And image flags will not "roll over" until they reach 2^20 = -1048576. - -If your system does not support 8-byte integers, you will need to -compile with the -DLAMMPS_SMALLSMALL setting. This will restrict the -total number of atoms (for atomic or molecular systems) and timesteps -to 2^31 (about 2 billion). Image flags will roll over at 2^9 = 512. - -Note that in src/lmptype.h there are definitions of all these data -types as well as the MPI data types associated with them. The MPI -types need to be consistent with the associated C data types, or else -LAMMPS will generate a run-time error. As far as we know, the -settings defined in src/lmptype.h are portable and work on every -current system. - -In all cases, the size of problem that can be run on a per-processor -basis is limited by 4-byte integer storage to 2^31 atoms per processor -(about 2 billion). This should not normally be a limitation since such -a problem would have a huge per-processor memory footprint due to -neighbor lists and would run very slowly in terms of CPU secs/timestep. - -:line - -Building for a Mac :h4,link(start_2_5) - -OS X is a derivative of BSD Unix, so it should just work. See the -src/MAKE/MACHINES/Makefile.mac and Makefile.mac_mpi files. - -:line - -Building for Windows :h4,link(start_2_6) - -If you want to build a Windows version of LAMMPS, you can build it -yourself, but it may require some effort. LAMMPS expects a Unix-like -build environment for the default build procedure. This can be done -using either Cygwin or MinGW; the latter also exists as a ready-to-use -Linux-to-Windows cross-compiler in several Linux distributions. In -these cases, you can do the installation after installing several -unix-style commands like make, grep, sed and bash with some shell -utilities. - -For Cygwin and the MinGW cross-compilers, suitable makefiles are -provided in src/MAKE/MACHINES. When using other compilers, like -Visual C++ or Intel compilers for Windows, you may have to implement -your own build system. Due to differences between the Windows OS -and Windows system libraries to Unix-like environments like Linux -or MacOS, when compiling for Windows a few adjustments may be needed: - -Do [not] set the -DLAMMPS_MEMALIGN define (see LMP_INC makefile variable) -Add -lwsock32 -lpsapi to the linker flags (see LIB makefile variable) -Try adding -static-libgcc or -static or both to the linker flags when your LAMMPS executable complains about missing .dll files :ul - -Since none of the current LAMMPS core developers has significant -experience building executables on Windows, we are happy to distribute -contributed instructions and modifications to improve the situation, -but we cannot provide support for those. - -With the so-called "Anniversary Update" to Windows 10, there is a -Ubuntu Linux subsystem available for Windows, that can be installed -and then used to compile/install LAMMPS as if you are running on a -Ubuntu Linux system instead of Windows. - -As an alternative, you can download pre-compiled installer packages from -"packages.lammps.org/windows.html"_http://packages.lammps.org/windows.html. -These executables are built with most optional packages included and the -download includes documentation, potential files, some tools and many -examples, but no source code. - -:line - -2.3 Making LAMMPS with optional packages :h3,link(start_3) - -This section has the following sub-sections: - -2.3.1 "Package basics"_#start_3_1 -2.3.2 "Including/excluding packages"_#start_3_2 -2.3.3 "Packages that require extra libraries"_#start_3_3 :all(b) - -:line - -Package basics: :h4,link(start_3_1) - -The source code for LAMMPS is structured as a set of core files which -are always included, plus optional packages. Packages are groups of -files that enable a specific set of features. For example, force -fields for molecular systems or granular systems are in packages. - -The "Packages"_Packages.html doc pages has details about all the -packages, which come in two flavors: [standard] and [user] -packages. It also has specific instructions for building LAMMPS with -any package which requires an extra library. General instructions are -below. - -You can see the list of all packages by typing "make package" from -within the src directory of the LAMMPS distribution. It will also -list various make commands that can be used to manage packages. - -If you use a command in a LAMMPS input script that is part of a -package, you must have built LAMMPS with that package, else you will -get an error that the style is invalid or the command is unknown. -Every command's doc page specifies if it is part of a package. You can -type - -lmp_machine -h :pre - -to run your executable with the optional "-h command-line -switch"_#start_6 for "help", which will list the styles and commands -known to your executable, and immediately exit. - -:line - -Including/excluding packages :h4,link(start_3_2) - -To use (or not use) a package you must install it (or un-install it) -before building LAMMPS. From the src directory, this is as simple as: - -make yes-colloid -make mpi :pre - -or - -make no-user-omp -make mpi :pre - -NOTE: You should NOT install/un-install packages and build LAMMPS in a -single make command using multiple targets, e.g. make yes-colloid mpi. -This is because the make procedure creates a list of source files that -will be out-of-date for the build if the package configuration changes -within the same command. - -Any package can be installed or not in a LAMMPS build, independent of -all other packages. However, some packages include files derived from -files in other packages. LAMMPS checks for this and does the right -thing. I.e. individual files are only included if their dependencies -are already included. Likewise, if a package is excluded, other files -dependent on that package are also excluded. - -NOTE: The one exception is that we do not recommend building with both -the KOKKOS package installed and any of the other acceleration -packages (GPU, OPT, USER-INTEL, USER-OMP) also installed. This is -because of how Kokkos sometimes builds using a wrapper compiler which -can make it difficult to invoke all the compile/link flags correctly -for both Kokkos and non-Kokkos files. - -If you will never run simulations that use the features in a -particular packages, there is no reason to include it in your build. -For some packages, this will keep you from having to build extra -libraries, and will also produce a smaller executable which may run a -bit faster. - -When you download a LAMMPS tarball, three packages are pre-installed -in the src directory -- KSPACE, MANYBODY, MOLECULE -- because they are -so commonly used. When you download LAMMPS source files from the SVN -or Git repositories, no packages are pre-installed. - -Packages are installed or un-installed by typing - -make yes-name -make no-name :pre - -where "name" is the name of the package in lower-case, e.g. name = -kspace for the KSPACE package or name = user-atc for the USER-ATC -package. You can also type any of these commands: - -make yes-all | install all packages -make no-all | un-install all packages -make yes-standard or make yes-std | install standard packages -make no-standard or make no-std| un-install standard packages -make yes-user | install user packages -make no-user | un-install user packages -make yes-lib | install packages that require extra libraries -make no-lib | un-install packages that require extra libraries -make yes-ext | install packages that require external libraries -make no-ext | un-install packages that require external libraries :tb(s=|) - -which install/un-install various sets of packages. Typing "make -package" will list all the these commands. - -NOTE: Installing or un-installing a package works by simply moving -files back and forth between the main src directory and -sub-directories with the package name (e.g. src/KSPACE, src/USER-ATC), -so that the files are included or excluded when LAMMPS is built. -After you have installed or un-installed a package, you must re-build -LAMMPS for the action to take effect. - -The following make commands help manage files that exist in both the -src directory and in package sub-directories. You do not normally -need to use these commands unless you are editing LAMMPS files or have -downloaded a patch from the LAMMPS web site. - -Typing "make package-status" or "make ps" will show which packages are -currently installed. For those that are installed, it will list any -files that are different in the src directory and package -sub-directory. - -Typing "make package-installed" or "make pi" will list which packages are -currently installed, without listing the status of packages that are not -installed. - -Typing "make package-update" or "make pu" will overwrite src files -with files from the package sub-directories if the package is -installed. It should be used after a patch has been applied, since -patches only update the files in the package sub-directory, but not -the src files. - -Typing "make package-overwrite" will overwrite files in the package -sub-directories with src files. - -Typing "make package-diff" lists all differences between these files. - -Again, just type "make package" to see all of the package-related make -options. - -:line - -Packages that require extra libraries :h4,link(start_3_3) - -A few of the standard and user packages require extra libraries. See -the "Packages"_Packages.html doc pages for two tables of packages -which indicate which ones require libraries. For each such package, -the Section 4 doc page gives details on how to build the extra -library, including how to download it if necessary. The basic ideas -are summarized here. - -[System libraries:] - -Packages in the standard and user tables of the -"Packages"_Packages.html doc pages with a "sys" in the last column -link to system libraries that typically already exist on your machine. -E.g. the python package links to a system Python library. If your -machine does not have the required library, you will have to download -and install it on your machine, in either the system or user space. - -[Internal libraries:] - -Packages in the standard and user tables of the -"Packages"_Packages.html doc pages with an "int" in the last column -link to internal libraries whose source code is included with LAMMPS, -in the lib/name directory where name is the package name. You must -first build the library in that directory before building LAMMPS with -that package installed. E.g. the gpu package links to a library you -build in the lib/gpu dir. You can often do the build in one step by -typing "make lib-name args=..." from the src dir, with appropriate -arguments. You can leave off the args to see a help message. See the -"Packages details"_Packages_details.html doc page for details for each -package. - -[External libraries:] - -Packages in the standard and user tables of the -"Packages"_Packages.html doc pages with an "ext" in the last column -link to external libraries whose source code is not included with -LAMMPS. You must first download and install the library before -building LAMMPS with that package installed. E.g. the voronoi package -links to the freely available "Voro++ library"_voro_home2. You can -often do the download/build in one step by typing "make lib-name -args=..." from the src dir, with appropriate arguments. You can leave -off the args to see a help message. See the "Packages -details"_Packages_details.html doc page for details for each package. - -:link(voro_home2,http://math.lbl.gov/voro++) - -[Possible errors:] - -There are various common errors which can occur when building extra -libraries or when building LAMMPS with packages that require the extra -libraries. - -If you cannot build the extra library itself successfully, you may -need to edit or create an appropriate Makefile for your machine, e.g. -with appropriate compiler or system settings. Provided makefiles are -typically in the lib/name directory. E.g. see the Makefile.* files in -lib/gpu. - -The LAMMPS build often uses settings in a lib/name/Makefile.lammps -file which either exists in the LAMMPS distribution or is created or -copied from a lib/name/Makefile.lammps.* file when the library is -built. If those settings are not correct for your machine you will -need to edit or create an appropriate Makefile.lammps file. - -Package-specific details for these steps are given on the "Packages -details"_Packages_details.html doc page and in README files in the -lib/name directories. - -[Compiler options needed for accelerator packages:] - -Several packages contain code that is optimized for specific hardware, -e.g. CPU, KNL, or GPU. These are the OPT, GPU, KOKKOS, USER-INTEL, -and USER-OMP packages. Compiling and linking the source files in -these accelerator packages for optimal performance requires specific -settings in the Makefile.machine file you use. - -A summary of the Makefile.machine settings needed for each of these -packages is given on the "Packages"_Packages.html doc pages. More -info is given on the doc pages that describe each package in detail: - -"USER-INTEL package"_Speed_intel.html -"GPU package"_Speed_gpu.html -"KOKKOS package"_Speed_kokkos.html -"USER-OMP package"_Speed_omp.html -"OPT package"_Speed_opt.html :all(b) - -You can also use or examine the following machine Makefiles in -src/MAKE/OPTIONS, which include the settings. Note that the -USER-INTEL and KOKKOS packages can use settings that build LAMMPS for -different hardware. The USER-INTEL package can be compiled for Intel -CPUs and KNLs; the KOKKOS package builds for CPUs (OpenMP), GPUs -(CUDA), and Intel KNLs. - -Makefile.intel_cpu -Makefile.intel_phi -Makefile.kokkos_omp -Makefile.kokkos_cuda_mpi -Makefile.kokkos_phi -Makefile.omp -Makefile.opt :ul - -:line - -2.4 Building LAMMPS as a library :h3,link(start_4) - -LAMMPS can be built as either a static or shared library, which can -then be called from another application or a scripting language. See -the "Howto couple"_Howto_couple.html doc page for more info on -coupling LAMMPS to other codes. See the "Python"_Python.html doc page -for more info on wrapping and running LAMMPS from Python. - -Static library :h4 - -To build LAMMPS as a static library (*.a file on Linux), type - -make foo mode=lib :pre - -where foo is the machine name. This kind of library is typically used -to statically link a driver application to LAMMPS, so that you can -insure all dependencies are satisfied at compile time. This will use -the ARCHIVE and ARFLAGS settings in src/MAKE/Makefile.foo. The build -will create the file liblammps_foo.a which another application can -link to. It will also create a soft link liblammps.a, which will -point to the most recently built static library. - -Shared library :h4 - -To build LAMMPS as a shared library (*.so file on Linux), which can be -dynamically loaded, e.g. from Python, type - -make foo mode=shlib :pre - -where foo is the machine name. This kind of library is required when -wrapping LAMMPS with Python; see the "Python"_Python.html doc page for -details. This will use the SHFLAGS and SHLIBFLAGS settings in -src/MAKE/Makefile.foo and perform the build in the directory -Obj_shared_foo. This is so that each file can be compiled with the --fPIC flag which is required for inclusion in a shared library. The -build will create the file liblammps_foo.so which another application -can link to dynamically. It will also create a soft link -liblammps.so, which will point to the most recently built shared -library. This is the file the Python wrapper loads by default. - -Note that for a shared library to be usable by a calling program, all -the auxiliary libraries it depends on must also exist as shared -libraries. This will be the case for libraries included with LAMMPS, -such as the dummy MPI library in src/STUBS or any package libraries in -lib/packages, since they are always built as shared libraries using -the -fPIC switch. However, if a library like MPI or FFTW does not -exist as a shared library, the shared library build will generate an -error. This means you will need to install a shared library version -of the auxiliary library. The build instructions for the library -should tell you how to do this. - -Here is an example of such errors when the system FFTW or provided -lib/colvars library have not been built as shared libraries: - -/usr/bin/ld: /usr/local/lib/libfftw3.a(mapflags.o): relocation -R_X86_64_32 against '.rodata' can not be used when making a shared -object; recompile with -fPIC -/usr/local/lib/libfftw3.a: could not read symbols: Bad value :pre - -/usr/bin/ld: ../../lib/colvars/libcolvars.a(colvarmodule.o): -relocation R_X86_64_32 against '__pthread_key_create' can not be used -when making a shared object; recompile with -fPIC -../../lib/colvars/libcolvars.a: error adding symbols: Bad value :pre - -As an example, here is how to build and install the "MPICH -library"_mpich, a popular open-source version of MPI, distributed by -Argonne National Labs, as a shared library in the default -/usr/local/lib location: - -:link(mpich,http://www-unix.mcs.anl.gov/mpi) - -./configure --enable-shared -make -make install :pre - -You may need to use "sudo make install" in place of the last line if -you do not have write privileges for /usr/local/lib. The end result -should be the file /usr/local/lib/libmpich.so. - -[Additional requirement for using a shared library:] :h4 - -The operating system finds shared libraries to load at run-time using -the environment variable LD_LIBRARY_PATH. So you may wish to copy the -file src/liblammps.so or src/liblammps_g++.so (for example) to a place -the system can find it by default, such as /usr/local/lib, or you may -wish to add the LAMMPS src directory to LD_LIBRARY_PATH, so that the -current version of the shared library is always available to programs -that use it. - -For the csh or tcsh shells, you would add something like this to your -~/.cshrc file: - -setenv LD_LIBRARY_PATH $\{LD_LIBRARY_PATH\}:/home/sjplimp/lammps/src :pre - -Calling the LAMMPS library :h4 - -Either flavor of library (static or shared) allows one or more LAMMPS -objects to be instantiated from the calling program. - -When used from a C++ program, all of LAMMPS is wrapped in a LAMMPS_NS -namespace; you can safely use any of its classes and methods from -within the calling code, as needed. - -When used from a C or Fortran program or a scripting language like -Python, the library has a simple function-style interface, provided in -src/library.cpp and src/library.h. - -See the sample codes in examples/COUPLE/simple for examples of C++ and -C and Fortran codes that invoke LAMMPS thru its library interface. -There are other examples as well in the COUPLE directory which use -coupling ideas discussed on the "Howto couple"_Howto_couple.html doc -page. See the "Python"_Python.html doc page for a description of the -Python wrapper provided with LAMMPS that operates through the LAMMPS -library interface. - -The files src/library.cpp and library.h define the C-style API for -using LAMMPS as a library. See the "Howto library"_Howto_library.html -doc page for a description of the interface and how to extend it for -your needs. - -:line - -2.5 Running LAMMPS :h3,link(start_5) - -By default, LAMMPS runs by reading commands from standard input. Thus -if you run the LAMMPS executable by itself, e.g. - -lmp_linux :pre - -it will simply wait, expecting commands from the keyboard. Typically -you should put commands in an input script and use I/O redirection, -e.g. - -lmp_linux < in.file :pre - -For parallel environments this should also work. If it does not, use -the '-in' command-line switch, e.g. - -lmp_linux -in in.file :pre - -The "Commands"_Commands.html doc page describes how input scripts are -structured and what commands they contain. - -You can test LAMMPS on any of the sample inputs provided in the -examples or bench directory. Input scripts are named in.* and sample -outputs are named log.*.name.P where name is a machine and P is the -number of processors it was run on. - -Here is how you might run a standard Lennard-Jones benchmark on a -Linux box, using mpirun to launch a parallel job: - -cd src -make linux -cp lmp_linux ../bench -cd ../bench -mpirun -np 4 lmp_linux -in in.lj :pre - -See "this page"_bench for timings for this and the other benchmarks on -various platforms. Note that some of the example scripts require -LAMMPS to be built with one or more of its optional packages. - -:link(bench,http://lammps.sandia.gov/bench.html) - -:line - -On a Windows box, you can skip making LAMMPS and simply download an -installer package from "here"_http://packages.lammps.org/windows.html - -For running the non-MPI executable, follow these steps: - -Get a command prompt by going to Start->Run... , -then typing "cmd". :ulb,l - -Move to the directory where you have your input, e.g. a copy of -the [in.lj] input from the bench folder. (e.g. by typing: cd "Documents"). :l - -At the command prompt, type "lmp_serial -in in.lj", replacing [in.lj] -with the name of your LAMMPS input script. :l - -The serial executable includes support for multi-threading -parallelization from the styles in the USER-OMP packages. - -To run with, e.g. 4 threads, type "lmp_serial -in in.lj -pk omp 4 -sf omp" -:ule - -For the MPI version, which allows you to run LAMMPS under Windows with -the more general message passing parallel library (LAMMPS has been -designed from ground up to use MPI efficiently), follow these steps: - -Download and install a compatible MPI library binary package: -for 32-bit Windows -"mpich2-1.4.1p1-win-ia32.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi -and for 64-bit Windows -"mpich2-1.4.1p1-win-x86-64.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi -:ulb,l - -The LAMMPS Windows installer packages will automatically adjust your -path for the default location of this MPI package. After the installation -of the MPICH2 software, it needs to be integrated into the system. -For this you need to start a Command Prompt in {Administrator Mode} -(right click on the icon and select it). Change into the MPICH2 -installation directory, then into the subdirectory [bin] and execute -[smpd.exe -install]. Exit the command window. - -Get a new, regular command prompt by going to Start->Run... , -then typing "cmd". :l - -Move to the directory where you have your input file -(e.g. by typing: cd "Documents"). :l - -Then type something like this: - -mpiexec -localonly 4 lmp_mpi -in in.lj :pre -or - -mpiexec -np 4 lmp_mpi -in in.lj :pre - -replacing [in.lj] with the name of your LAMMPS input script. For the latter -case, you may be prompted to enter your password. :l - -In this mode, output may not immediately show up on the screen, so if -your input script takes a long time to execute, you may need to be -patient before the output shows up. :l - -The parallel executable can also run on a single processor by typing -something like: - -lmp_mpi -in in.lj :pre - -And the parallel executable also includes OpenMP multi-threading, which -can be combined with MPI using something like: - -mpiexec -localonly 2 lmp_mpi -in in.lj -pk omp 2 -sf omp :pre - -:ule - -:line - -The screen output from LAMMPS is described in a section below. As it -runs, LAMMPS also writes a log.lammps file with the same information. - -Note that this sequence of commands copies the LAMMPS executable -(lmp_linux) to the directory with the input files. This may not be -necessary, but some versions of MPI reset the working directory to -where the executable is, rather than leave it as the directory where -you launch mpirun from (if you launch lmp_linux on its own and not -under mpirun). If that happens, LAMMPS will look for additional input -files and write its output files to the executable directory, rather -than your working directory, which is probably not what you want. - -If LAMMPS encounters errors in the input script or while running a -simulation it will print an ERROR message and stop or a WARNING -message and continue. See the "Errors"_Errors.html doc page for a -discussion of the various kinds of errors LAMMPS can or can't detect, -a list of all ERROR and WARNING messages, and what to do about them. - -LAMMPS can run a problem on any number of processors, including a -single processor. In theory you should get identical answers on any -number of processors and on any machine. In practice, numerical -round-off can cause slight differences and eventual divergence of -molecular dynamics phase space trajectories. - -LAMMPS can run as large a problem as will fit in the physical memory -of one or more processors. If you run out of memory, you must run on -more processors or setup a smaller problem. - -:line - -2.6 Command-line options :h3,link(start_6) - -At run time, LAMMPS recognizes several optional command-line switches -which may be used in any order. Either the full word or a one-or-two -letter abbreviation can be used: - --e or -echo --h or -help --i or -in --k or -kokkos --l or -log --nc or -nocite --pk or -package --p or -partition --pl or -plog --ps or -pscreen --r or -restart --ro or -reorder --sc or -screen --sf or -suffix --v or -var :ul - -For example, lmp_ibm might be launched as follows: - -mpirun -np 16 lmp_ibm -v f tmp.out -l my.log -sc none -in in.alloy -mpirun -np 16 lmp_ibm -var f tmp.out -log my.log -screen none -in in.alloy :pre - -Here are the details on the options: - --echo style :pre - -Set the style of command echoing. The style can be {none} or {screen} -or {log} or {both}. Depending on the style, each command read from -the input script will be echoed to the screen and/or logfile. This -can be useful to figure out which line of your script is causing an -input error. The default value is {log}. The echo style can also be -set by using the "echo"_echo.html command in the input script itself. - --help :pre - -Print a brief help summary and a list of options compiled into this -executable for each LAMMPS style (atom_style, fix, compute, -pair_style, bond_style, etc). This can tell you if the command you -want to use was included via the appropriate package at compile time. -LAMMPS will print the info and immediately exit if this switch is -used. - --in file :pre - -Specify a file to use as an input script. This is an optional switch -when running LAMMPS in one-partition mode. If it is not specified, -LAMMPS reads its script from standard input, typically from a script -via I/O redirection; e.g. lmp_linux < in.run. I/O redirection should -also work in parallel, but if it does not (in the unlikely case that -an MPI implementation does not support it), then use the -in flag. -Note that this is a required switch when running LAMMPS in -multi-partition mode, since multiple processors cannot all read from -stdin. - --kokkos on/off keyword/value ... :pre - -Explicitly enable or disable KOKKOS support, as provided by the KOKKOS -package. Even if LAMMPS is built with this package, as described -above in "Section 2.3"_#start_3, this switch must be set to enable -running with the KOKKOS-enabled styles the package provides. If the -switch is not set (the default), LAMMPS will operate as if the KOKKOS -package were not installed; i.e. you can run standard LAMMPS or with -the GPU or USER-OMP packages, for testing or benchmarking purposes. - -Additional optional keyword/value pairs can be specified which -determine how Kokkos will use the underlying hardware on your -platform. These settings apply to each MPI task you launch via the -"mpirun" or "mpiexec" command. You may choose to run one or more MPI -tasks per physical node. Note that if you are running on a desktop -machine, you typically have one physical node. On a cluster or -supercomputer there may be dozens or 1000s of physical nodes. - -Either the full word or an abbreviation can be used for the keywords. -Note that the keywords do not use a leading minus sign. I.e. the -keyword is "t", not "-t". Also note that each of the keywords has a -default setting. Example of when to use these options and what -settings to use on different platforms is given on the "Speed -kokkos"_Speed_kokkos.html doc page. - -d or device -g or gpus -t or threads -n or numa :ul - -device Nd :pre - -This option is only relevant if you built LAMMPS with CUDA=yes, you -have more than one GPU per node, and if you are running with only one -MPI task per node. The Nd setting is the ID of the GPU on the node to -run on. By default Nd = 0. If you have multiple GPUs per node, they -have consecutive IDs numbered as 0,1,2,etc. This setting allows you -to launch multiple independent jobs on the node, each with a single -MPI task per node, and assign each job to run on a different GPU. - -gpus Ng Ns :pre - -This option is only relevant if you built LAMMPS with CUDA=yes, you -have more than one GPU per node, and you are running with multiple MPI -tasks per node (up to one per GPU). The Ng setting is how many GPUs -you will use. The Ns setting is optional. If set, it is the ID of a -GPU to skip when assigning MPI tasks to GPUs. This may be useful if -your desktop system reserves one GPU to drive the screen and the rest -are intended for computational work like running LAMMPS. By default -Ng = 1 and Ns is not set. - -Depending on which flavor of MPI you are running, LAMMPS will look for -one of these 3 environment variables - -SLURM_LOCALID (various MPI variants compiled with SLURM support) -MV2_COMM_WORLD_LOCAL_RANK (Mvapich) -OMPI_COMM_WORLD_LOCAL_RANK (OpenMPI) :pre - -which are initialized by the "srun", "mpirun" or "mpiexec" commands. -The environment variable setting for each MPI rank is used to assign a -unique GPU ID to the MPI task. - -threads Nt :pre - -This option assigns Nt number of threads to each MPI task for -performing work when Kokkos is executing in OpenMP or pthreads mode. -The default is Nt = 1, which essentially runs in MPI-only mode. If -there are Np MPI tasks per physical node, you generally want Np*Nt = -the number of physical cores per node, to use your available hardware -optimally. This also sets the number of threads used by the host when -LAMMPS is compiled with CUDA=yes. - -numa Nm :pre - -This option is only relevant when using pthreads with hwloc support. -In this case Nm defines the number of NUMA regions (typically sockets) -on a node which will be utilized by a single MPI rank. By default Nm -= 1. If this option is used the total number of worker-threads per -MPI rank is threads*numa. Currently it is always almost better to -assign at least one MPI rank per NUMA region, and leave numa set to -its default value of 1. This is because letting a single process span -multiple NUMA regions induces a significant amount of cross NUMA data -traffic which is slow. - --log file :pre - -Specify a log file for LAMMPS to write status information to. In -one-partition mode, if the switch is not used, LAMMPS writes to the -file log.lammps. If this switch is used, LAMMPS writes to the -specified file. In multi-partition mode, if the switch is not used, a -log.lammps file is created with hi-level status information. Each -partition also writes to a log.lammps.N file where N is the partition -ID. If the switch is specified in multi-partition mode, the hi-level -logfile is named "file" and each partition also logs information to a -file.N. For both one-partition and multi-partition mode, if the -specified file is "none", then no log files are created. Using a -"log"_log.html command in the input script will override this setting. -Option -plog will override the name of the partition log files file.N. - --nocite :pre - -Disable writing the log.cite file which is normally written to list -references for specific cite-able features used during a LAMMPS run. -See the "citation page"_http://lammps.sandia.gov/cite.html for more -details. - --package style args .... :pre - -Invoke the "package"_package.html command with style and args. The -syntax is the same as if the command appeared at the top of the input -script. For example "-package gpu 2" or "-pk gpu 2" is the same as -"package gpu 2"_package.html in the input script. The possible styles -and args are documented on the "package"_package.html doc page. This -switch can be used multiple times, e.g. to set options for the -USER-INTEL and USER-OMP packages which can be used together. - -Along with the "-suffix" command-line switch, this is a convenient -mechanism for invoking accelerator packages and their options without -having to edit an input script. - --partition 8x2 4 5 ... :pre - -Invoke LAMMPS in multi-partition mode. When LAMMPS is run on P -processors and this switch is not used, LAMMPS runs in one partition, -i.e. all P processors run a single simulation. If this switch is -used, the P processors are split into separate partitions and each -partition runs its own simulation. The arguments to the switch -specify the number of processors in each partition. Arguments of the -form MxN mean M partitions, each with N processors. Arguments of the -form N mean a single partition with N processors. The sum of -processors in all partitions must equal P. Thus the command -"-partition 8x2 4 5" has 10 partitions and runs on a total of 25 -processors. - -Running with multiple partitions can be useful for running -"multi-replica simulations"_Howto_replica.html, where each replica -runs on on one or a few processors. Note that with MPI installed on a -machine (e.g. your desktop), you can run on more (virtual) processors -than you have physical processors. - -To run multiple independent simulations from one input script, using -multiple partitions, see the "Howto multiple"_Howto_multiple.html doc -page. World- and universe-style "variables"_variable.html are useful -in this context. - --plog file :pre - -Specify the base name for the partition log files, so partition N -writes log information to file.N. If file is none, then no partition -log files are created. This overrides the filename specified in the --log command-line option. This option is useful when working with -large numbers of partitions, allowing the partition log files to be -suppressed (-plog none) or placed in a sub-directory (-plog -replica_files/log.lammps) If this option is not used the log file for -partition N is log.lammps.N or whatever is specified by the -log -command-line option. - --pscreen file :pre - -Specify the base name for the partition screen file, so partition N -writes screen information to file.N. If file is none, then no -partition screen files are created. This overrides the filename -specified in the -screen command-line option. This option is useful -when working with large numbers of partitions, allowing the partition -screen files to be suppressed (-pscreen none) or placed in a -sub-directory (-pscreen replica_files/screen). If this option is not -used the screen file for partition N is screen.N or whatever is -specified by the -screen command-line option. - --restart restartfile {remap} datafile keyword value ... :pre - -Convert the restart file into a data file and immediately exit. This -is the same operation as if the following 2-line input script were -run: - -read_restart restartfile {remap} -write_data datafile keyword value ... :pre - -Note that the specified restartfile and datafile can have wild-card -characters ("*",%") as described by the -"read_restart"_read_restart.html and "write_data"_write_data.html -commands. But a filename such as file.* will need to be enclosed in -quotes to avoid shell expansion of the "*" character. - -Note that following restartfile, the optional flag {remap} can be -used. This has the same effect as adding it to the -"read_restart"_read_restart.html command, as explained on its doc -page. This is only useful if the reading of the restart file triggers -an error that atoms have been lost. In that case, use of the remap -flag should allow the data file to still be produced. - -Also note that following datafile, the same optional keyword/value -pairs can be listed as used by the "write_data"_write_data.html -command. - --reorder nth N --reorder custom filename :pre - -Reorder the processors in the MPI communicator used to instantiate -LAMMPS, in one of several ways. The original MPI communicator ranks -all P processors from 0 to P-1. The mapping of these ranks to -physical processors is done by MPI before LAMMPS begins. It may be -useful in some cases to alter the rank order. E.g. to insure that -cores within each node are ranked in a desired order. Or when using -the "run_style verlet/split"_run_style.html command with 2 partitions -to insure that a specific Kspace processor (in the 2nd partition) is -matched up with a specific set of processors in the 1st partition. -See the "Speed tips"_Speed_tips.html doc page for more details. - -If the keyword {nth} is used with a setting {N}, then it means every -Nth processor will be moved to the end of the ranking. This is useful -when using the "run_style verlet/split"_run_style.html command with 2 -partitions via the -partition command-line switch. The first set of -processors will be in the first partition, the 2nd set in the 2nd -partition. The -reorder command-line switch can alter this so that -the 1st N procs in the 1st partition and one proc in the 2nd partition -will be ordered consecutively, e.g. as the cores on one physical node. -This can boost performance. For example, if you use "-reorder nth 4" -and "-partition 9 3" and you are running on 12 processors, the -processors will be reordered from - -0 1 2 3 4 5 6 7 8 9 10 11 :pre - -to - -0 1 2 4 5 6 8 9 10 3 7 11 :pre - -so that the processors in each partition will be - -0 1 2 4 5 6 8 9 10 -3 7 11 :pre - -See the "processors" command for how to insure processors from each -partition could then be grouped optimally for quad-core nodes. - -If the keyword is {custom}, then a file that specifies a permutation -of the processor ranks is also specified. The format of the reorder -file is as follows. Any number of initial blank or comment lines -(starting with a "#" character) can be present. These should be -followed by P lines of the form: - -I J :pre - -where P is the number of processors LAMMPS was launched with. Note -that if running in multi-partition mode (see the -partition switch -above) P is the total number of processors in all partitions. The I -and J values describe a permutation of the P processors. Every I and -J should be values from 0 to P-1 inclusive. In the set of P I values, -every proc ID should appear exactly once. Ditto for the set of P J -values. A single I,J pairing means that the physical processor with -rank I in the original MPI communicator will have rank J in the -reordered communicator. - -Note that rank ordering can also be specified by many MPI -implementations, either by environment variables that specify how to -order physical processors, or by config files that specify what -physical processors to assign to each MPI rank. The -reorder switch -simply gives you a portable way to do this without relying on MPI -itself. See the "processors out"_processors.html command for how -to output info on the final assignment of physical processors to -the LAMMPS simulation domain. - --screen file :pre - -Specify a file for LAMMPS to write its screen information to. In -one-partition mode, if the switch is not used, LAMMPS writes to the -screen. If this switch is used, LAMMPS writes to the specified file -instead and you will see no screen output. In multi-partition mode, -if the switch is not used, hi-level status information is written to -the screen. Each partition also writes to a screen.N file where N is -the partition ID. If the switch is specified in multi-partition mode, -the hi-level screen dump is named "file" and each partition also -writes screen information to a file.N. For both one-partition and -multi-partition mode, if the specified file is "none", then no screen -output is performed. Option -pscreen will override the name of the -partition screen files file.N. - --suffix style args :pre - -Use variants of various styles if they exist. The specified style can -be {cuda}, {gpu}, {intel}, {kk}, {omp}, {opt}, or {hybrid}. These -refer to optional packages that LAMMPS can be built with, as described -above in "Section 2.3"_#start_3. The "gpu" style corresponds to the -GPU package, the "intel" style to the USER-INTEL package, the "kk" -style to the KOKKOS package, the "opt" style to the OPT package, and -the "omp" style to the USER-OMP package. The hybrid style is the only -style that accepts arguments. It allows for two packages to be -specified. The first package specified is the default and will be used -if it is available. If no style is available for the first package, -the style for the second package will be used if available. For -example, "-suffix hybrid intel omp" will use styles from the -USER-INTEL package if they are installed and available, but styles for -the USER-OMP package otherwise. - -Along with the "-package" command-line switch, this is a convenient -mechanism for invoking accelerator packages and their options without -having to edit an input script. - -As an example, all of the packages provide a "pair_style -lj/cut"_pair_lj.html variant, with style names lj/cut/gpu, -lj/cut/intel, lj/cut/kk, lj/cut/omp, and lj/cut/opt. A variant style -can be specified explicitly in your input script, e.g. pair_style -lj/cut/gpu. If the -suffix switch is used the specified suffix -(gpu,intel,kk,omp,opt) is automatically appended whenever your input -script command creates a new "atom"_atom_style.html, -"pair"_pair_style.html, "fix"_fix.html, "compute"_compute.html, or -"run"_run_style.html style. If the variant version does not exist, -the standard version is created. - -For the GPU package, using this command-line switch also invokes the -default GPU settings, as if the command "package gpu 1" were used at -the top of your input script. These settings can be changed by using -the "-package gpu" command-line switch or the "package -gpu"_package.html command in your script. - -For the USER-INTEL package, using this command-line switch also -invokes the default USER-INTEL settings, as if the command "package -intel 1" were used at the top of your input script. These settings -can be changed by using the "-package intel" command-line switch or -the "package intel"_package.html command in your script. If the -USER-OMP package is also installed, the hybrid style with "intel omp" -arguments can be used to make the omp suffix a second choice, if a -requested style is not available in the USER-INTEL package. It will -also invoke the default USER-OMP settings, as if the command "package -omp 0" were used at the top of your input script. These settings can -be changed by using the "-package omp" command-line switch or the -"package omp"_package.html command in your script. - -For the KOKKOS package, using this command-line switch also invokes -the default KOKKOS settings, as if the command "package kokkos" were -used at the top of your input script. These settings can be changed -by using the "-package kokkos" command-line switch or the "package -kokkos"_package.html command in your script. - -For the OMP package, using this command-line switch also invokes the -default OMP settings, as if the command "package omp 0" were used at -the top of your input script. These settings can be changed by using -the "-package omp" command-line switch or the "package -omp"_package.html command in your script. - -The "suffix"_suffix.html command can also be used within an input -script to set a suffix, or to turn off or back on any suffix setting -made via the command line. - --var name value1 value2 ... :pre - -Specify a variable that will be defined for substitution purposes when -the input script is read. This switch can be used multiple times to -define multiple variables. "Name" is the variable name which can be a -single character (referenced as $x in the input script) or a full -string (referenced as $\{abc\}). An "index-style -variable"_variable.html will be created and populated with the -subsequent values, e.g. a set of filenames. Using this command-line -option is equivalent to putting the line "variable name index value1 -value2 ..." at the beginning of the input script. Defining an index -variable as a command-line argument overrides any setting for the same -index variable in the input script, since index variables cannot be -re-defined. See the "variable"_variable.html command for more info on -defining index and other kinds of variables and the "Commands -parse"_Commands_parse.html page for more info on using variables in -input scripts. - -NOTE: Currently, the command-line parser looks for arguments that -start with "-" to indicate new switches. Thus you cannot specify -multiple variable values if any of they start with a "-", e.g. a -negative numeric value. It is OK if the first value1 starts with a -"-", since it is automatically skipped. - -:line - -2.7 LAMMPS screen output :h3,link(start_7) - -As LAMMPS reads an input script, it prints information to both the -screen and a log file about significant actions it takes to setup a -simulation. When the simulation is ready to begin, LAMMPS performs -various initializations and prints the amount of memory (in MBytes per -processor) that the simulation requires. It also prints details of -the initial thermodynamic state of the system. During the run itself, -thermodynamic information is printed periodically, every few -timesteps. When the run concludes, LAMMPS prints the final -thermodynamic state and a total run time for the simulation. It then -appends statistics about the CPU time and storage requirements for the -simulation. An example set of statistics is shown here: - -Loop time of 2.81192 on 4 procs for 300 steps with 2004 atoms :pre - -Performance: 18.436 ns/day 1.302 hours/ns 106.689 timesteps/s -97.0% CPU use with 4 MPI tasks x no OpenMP threads :pre - -MPI task timings breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 1.9808 | 2.0134 | 2.0318 | 1.4 | 71.60 -Bond | 0.0021894 | 0.0060319 | 0.010058 | 4.7 | 0.21 -Kspace | 0.3207 | 0.3366 | 0.36616 | 3.1 | 11.97 -Neigh | 0.28411 | 0.28464 | 0.28516 | 0.1 | 10.12 -Comm | 0.075732 | 0.077018 | 0.07883 | 0.4 | 2.74 -Output | 0.00030518 | 0.00042665 | 0.00078821 | 1.0 | 0.02 -Modify | 0.086606 | 0.086631 | 0.086668 | 0.0 | 3.08 -Other | | 0.007178 | | | 0.26 :pre - -Nlocal: 501 ave 508 max 490 min -Histogram: 1 0 0 0 0 0 1 1 0 1 -Nghost: 6586.25 ave 6628 max 6548 min -Histogram: 1 0 1 0 0 0 1 0 0 1 -Neighs: 177007 ave 180562 max 170212 min -Histogram: 1 0 0 0 0 0 0 1 1 1 :pre - -Total # of neighbors = 708028 -Ave neighs/atom = 353.307 -Ave special neighs/atom = 2.34032 -Neighbor list builds = 26 -Dangerous builds = 0 :pre - -The first section provides a global loop timing summary. The {loop time} -is the total wall time for the section. The {Performance} line is -provided for convenience to help predicting the number of loop -continuations required and for comparing performance with other, -similar MD codes. The {CPU use} line provides the CPU utilization per -MPI task; it should be close to 100% times the number of OpenMP -threads (or 1 of no OpenMP). Lower numbers correspond to delays due -to file I/O or insufficient thread utilization. - -The MPI task section gives the breakdown of the CPU run time (in -seconds) into major categories: - -{Pair} stands for all non-bonded force computation -{Bond} stands for bonded interactions: bonds, angles, dihedrals, impropers -{Kspace} stands for reciprocal space interactions: Ewald, PPPM, MSM -{Neigh} stands for neighbor list construction -{Comm} stands for communicating atoms and their properties -{Output} stands for writing dumps and thermo output -{Modify} stands for fixes and computes called by them -{Other} is the remaining time :ul - -For each category, there is a breakdown of the least, average and most -amount of wall time a processor spent on this section. Also you have the -variation from the average time. Together these numbers allow to gauge -the amount of load imbalance in this segment of the calculation. Ideally -the difference between minimum, maximum and average is small and thus -the variation from the average close to zero. The final column shows -the percentage of the total loop time is spent in this section. - -When using the "timer full"_timer.html setting, an additional column -is present that also prints the CPU utilization in percent. In -addition, when using {timer full} and the "package omp"_package.html -command are active, a similar timing summary of time spent in threaded -regions to monitor thread utilization and load balance is provided. A -new entry is the {Reduce} section, which lists the time spent in -reducing the per-thread data elements to the storage for non-threaded -computation. These thread timings are taking from the first MPI rank -only and and thus, as the breakdown for MPI tasks can change from MPI -rank to MPI rank, this breakdown can be very different for individual -ranks. Here is an example output for this section: - -Thread timings breakdown (MPI rank 0): -Total threaded time 0.6846 / 90.6% -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.5127 | 0.5147 | 0.5167 | 0.3 | 75.18 -Bond | 0.0043139 | 0.0046779 | 0.0050418 | 0.5 | 0.68 -Kspace | 0.070572 | 0.074541 | 0.07851 | 1.5 | 10.89 -Neigh | 0.084778 | 0.086969 | 0.089161 | 0.7 | 12.70 -Reduce | 0.0036485 | 0.003737 | 0.0038254 | 0.1 | 0.55 :pre - -The third section lists the number of owned atoms (Nlocal), ghost atoms -(Nghost), and pair-wise neighbors stored per processor. The max and min -values give the spread of these values across processors with a 10-bin -histogram showing the distribution. The total number of histogram counts -is equal to the number of processors. - -The last section gives aggregate statistics for pair-wise neighbors -and special neighbors that LAMMPS keeps track of (see the -"special_bonds"_special_bonds.html command). The number of times -neighbor lists were rebuilt during the run is given as well as the -number of potentially "dangerous" rebuilds. If atom movement -triggered neighbor list rebuilding (see the -"neigh_modify"_neigh_modify.html command), then dangerous -reneighborings are those that were triggered on the first timestep -atom movement was checked for. If this count is non-zero you may wish -to reduce the delay factor to insure no force interactions are missed -by atoms moving beyond the neighbor skin distance before a rebuild -takes place. - -If an energy minimization was performed via the -"minimize"_minimize.html command, additional information is printed, -e.g. - -Minimization stats: - Stopping criterion = linesearch alpha is zero - Energy initial, next-to-last, final = - -6372.3765206 -8328.46998942 -8328.46998942 - Force two-norm initial, final = 1059.36 5.36874 - Force max component initial, final = 58.6026 1.46872 - Final line search alpha, max atom move = 2.7842e-10 4.0892e-10 - Iterations, force evaluations = 701 1516 :pre - -The first line prints the criterion that determined the minimization -to be completed. The third line lists the initial and final energy, -as well as the energy on the next-to-last iteration. The next 2 lines -give a measure of the gradient of the energy (force on all atoms). -The 2-norm is the "length" of this force vector; the inf-norm is the -largest component. Then some information about the line search and -statistics on how many iterations and force-evaluations the minimizer -required. Multiple force evaluations are typically done at each -iteration to perform a 1d line minimization in the search direction. - -If a "kspace_style"_kspace_style.html long-range Coulombics solve was -performed during the run (PPPM, Ewald), then additional information is -printed, e.g. - -FFT time (% of Kspce) = 0.200313 (8.34477) -FFT Gflps 3d 1d-only = 2.31074 9.19989 :pre - -The first line gives the time spent doing 3d FFTs (4 per timestep) and -the fraction it represents of the total KSpace time (listed above). -Each 3d FFT requires computation (3 sets of 1d FFTs) and communication -(transposes). The total flops performed is 5Nlog_2(N), where N is the -number of points in the 3d grid. The FFTs are timed with and without -the communication and a Gflop rate is computed. The 3d rate is with -communication; the 1d rate is without (just the 1d FFTs). Thus you -can estimate what fraction of your FFT time was spent in -communication, roughly 75% in the example above. - -:line - -2.8 Tips for users of previous LAMMPS versions :h3,link(start_8) - -The current C++ began with a complete rewrite of LAMMPS 2001, which -was written in F90. Features of earlier versions of LAMMPS are listed -on the "History page"_http://lammps.sandia.gov/history.html of the -LAMMPS website. The F90 and F77 versions (2001 and 99) are also -freely distributed as open-source codes; check the "History -page"_http://lammps.sandia.gov/history.html of the LAMMPS website for -info about those versions. The 99 and 2001 versions are no longer -under active development; they do not have all the features of C++ -LAMMPS. - -If you are a previous user of LAMMPS 2001, these are the most -significant changes you will notice in C++ LAMMPS: - -(1) The names and arguments of many input script commands have -changed. All commands are now a single word (e.g. read_data instead -of read data). - -(2) All the functionality of LAMMPS 2001 is included in C++ LAMMPS, -but you may need to specify the relevant commands in different ways. - -(3) The format of the data file can be streamlined for some problems. -See the "read_data"_read_data.html command for details. The data file -section "Nonbond Coeff" has been renamed to "Pair Coeff" in C++ LAMMPS. - -(4) Binary restart files written by LAMMPS 2001 cannot be read by C++ -LAMMPS with a "read_restart"_read_restart.html command. This is -because they were output by F90 which writes in a different binary -format than C or C++ writes or reads. Use the {restart2data} tool -provided with LAMMPS 2001 to convert the 2001 restart file to a text -data file. Then edit the data file as necessary before using the C++ -LAMMPS "read_data"_read_data.html command to read it in. - -(5) There are numerous small numerical changes in C++ LAMMPS that mean -you will not get identical answers when comparing to a 2001 run. -However, your initial thermodynamic energy and MD trajectory should be -close if you have setup the problem for both codes the same. From cfc1b3a82399f636197d3271deeaaf522519f681 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 9 Aug 2018 10:20:02 -0600 Subject: [PATCH 444/675] more changes induced by removing Section_start.txt --- doc/src/Errors_common.txt | 6 +- doc/src/Errors_messages.txt | 4 +- doc/src/Examples.txt | 8 +- doc/src/Howto.txt | 6 +- doc/src/Howto_couple.txt | 21 +- doc/src/Howto_library.txt | 19 +- doc/src/Howto_multiple.txt | 3 +- doc/src/Howto_replica.txt | 17 +- doc/src/Howto_restart.txt | 4 +- doc/src/Howto_temperature.txt | 11 +- doc/src/Manual.txt | 25 +- doc/src/Modify_contribute.txt | 15 +- doc/src/Packages.txt | 8 +- doc/src/Packages_details.txt | 1175 ++--------------- doc/src/Python_shlib.txt | 13 +- doc/src/Python_test.txt | 8 +- doc/src/Speed_gpu.txt | 18 +- doc/src/Speed_intel.txt | 71 +- doc/src/Speed_kokkos.txt | 73 +- doc/src/Speed_measure.txt | 4 +- doc/src/Speed_omp.txt | 21 +- doc/src/Speed_opt.txt | 4 +- doc/src/Speed_packages.txt | 6 +- doc/src/angle_charmm.txt | 12 +- doc/src/angle_class2.txt | 12 +- doc/src/angle_cosine.txt | 12 +- doc/src/angle_cosine_buck6d.txt | 4 +- doc/src/angle_cosine_delta.txt | 12 +- doc/src/angle_cosine_periodic.txt | 12 +- doc/src/angle_cosine_shift.txt | 19 +- doc/src/angle_cosine_shift_exp.txt | 12 +- doc/src/angle_cosine_squared.txt | 12 +- doc/src/angle_dipole.txt | 12 +- doc/src/angle_fourier.txt | 12 +- doc/src/angle_fourier_simple.txt | 12 +- doc/src/angle_harmonic.txt | 12 +- doc/src/angle_hybrid.txt | 4 +- doc/src/angle_quartic.txt | 12 +- doc/src/angle_sdk.txt | 4 +- doc/src/angle_style.txt | 7 +- doc/src/angle_table.txt | 12 +- doc/src/atom_modify.txt | 6 +- doc/src/atom_style.txt | 12 +- doc/src/balance.txt | 10 +- doc/src/bond_class2.txt | 12 +- doc/src/bond_fene.txt | 14 +- doc/src/bond_fene_expand.txt | 14 +- doc/src/bond_gromos.txt | 14 +- doc/src/bond_harmonic.txt | 14 +- doc/src/bond_harmonic_shift.txt | 12 +- doc/src/bond_harmonic_shift_cut.txt | 12 +- doc/src/bond_hybrid.txt | 6 +- doc/src/bond_morse.txt | 14 +- doc/src/bond_nonlinear.txt | 14 +- doc/src/bond_oxdna.txt | 4 +- doc/src/bond_quartic.txt | 14 +- doc/src/bond_style.txt | 7 +- doc/src/bond_table.txt | 14 +- doc/src/compute_ackland_atom.txt | 4 +- doc/src/compute_basal_atom.txt | 4 +- doc/src/compute_cnp_atom.txt | 4 +- doc/src/compute_damage_atom.txt | 4 +- doc/src/compute_dilatation_atom.txt | 4 +- doc/src/compute_dpd.txt | 4 +- doc/src/compute_dpd_atom.txt | 4 +- doc/src/compute_edpd_temp_atom.txt | 4 +- doc/src/compute_entropy_atom.txt | 4 +- doc/src/compute_erotate_rigid.txt | 4 +- doc/src/compute_event_displace.txt | 4 +- doc/src/compute_fep.txt | 4 +- doc/src/compute_ke_atom_eff.txt | 4 +- doc/src/compute_ke_eff.txt | 4 +- doc/src/compute_ke_rigid.txt | 4 +- doc/src/compute_meso_e_atom.txt | 4 +- doc/src/compute_meso_rho_atom.txt | 4 +- doc/src/compute_meso_t_atom.txt | 4 +- doc/src/compute_msd_nongauss.txt | 6 +- doc/src/compute_plasticity_atom.txt | 4 +- doc/src/compute_pressure.txt | 8 +- doc/src/compute_pressure_uef.txt | 6 +- doc/src/compute_rigid_local.txt | 4 +- doc/src/compute_saed.txt | 4 +- doc/src/compute_smd_contact_radius.txt | 4 +- doc/src/compute_smd_damage.txt | 4 +- doc/src/compute_smd_hourglass_error.txt | 4 +- doc/src/compute_smd_internal_energy.txt | 8 +- doc/src/compute_smd_plastic_strain.txt | 8 +- doc/src/compute_smd_plastic_strain_rate.txt | 8 +- doc/src/compute_smd_rho.txt | 4 +- doc/src/compute_smd_tlsph_defgrad.txt | 8 +- doc/src/compute_smd_tlsph_dt.txt | 4 +- doc/src/compute_smd_tlsph_num_neighs.txt | 4 +- doc/src/compute_smd_tlsph_shape.txt | 4 +- doc/src/compute_smd_tlsph_strain.txt | 4 +- doc/src/compute_smd_tlsph_strain_rate.txt | 4 +- doc/src/compute_smd_tlsph_stress.txt | 4 +- .../compute_smd_triangle_mesh_vertices.txt | 4 +- doc/src/compute_smd_ulsph_num_neighs.txt | 8 +- doc/src/compute_smd_ulsph_strain.txt | 8 +- doc/src/compute_smd_ulsph_strain_rate.txt | 9 +- doc/src/compute_smd_ulsph_stress.txt | 8 +- doc/src/compute_smd_vol.txt | 4 +- doc/src/compute_sna_atom.txt | 4 +- doc/src/compute_spin.txt | 8 +- doc/src/compute_tally.txt | 6 +- doc/src/compute_tdpd_cc_atom.txt | 4 +- doc/src/compute_temp.txt | 8 +- doc/src/compute_temp_asphere.txt | 4 +- doc/src/compute_temp_body.txt | 4 +- doc/src/compute_temp_deform_eff.txt | 4 +- doc/src/compute_temp_eff.txt | 4 +- doc/src/compute_temp_partial.txt | 8 +- doc/src/compute_temp_region_eff.txt | 4 +- doc/src/compute_temp_rotate.txt | 4 +- doc/src/compute_temp_uef.txt | 6 +- doc/src/compute_ti.txt | 4 +- doc/src/compute_voronoi_atom.txt | 4 +- doc/src/compute_xrd.txt | 4 +- doc/src/dihedral_charmm.txt | 12 +- doc/src/dihedral_class2.txt | 12 +- doc/src/dihedral_cosine_shift_exp.txt | 12 +- doc/src/dihedral_fourier.txt | 12 +- doc/src/dihedral_harmonic.txt | 12 +- doc/src/dihedral_helix.txt | 12 +- doc/src/dihedral_hybrid.txt | 4 +- doc/src/dihedral_multi_harmonic.txt | 12 +- doc/src/dihedral_nharmonic.txt | 12 +- doc/src/dihedral_opls.txt | 12 +- doc/src/dihedral_quadratic.txt | 12 +- doc/src/dihedral_spherical.txt | 4 +- doc/src/dihedral_style.txt | 7 +- doc/src/dihedral_table.txt | 12 +- doc/src/dihedral_table_cut.txt | 4 +- doc/src/dump.txt | 21 +- doc/src/dump_cfg_uef.txt | 6 +- doc/src/dump_h5md.txt | 14 +- doc/src/dump_image.txt | 7 +- doc/src/dump_molfile.txt | 4 +- doc/src/dump_netcdf.txt | 4 +- doc/src/dump_vtk.txt | 6 +- doc/src/echo.txt | 4 +- doc/src/fix.txt | 6 +- doc/src/fix_addforce.txt | 8 +- doc/src/fix_addtorque.txt | 4 +- doc/src/fix_append_atoms.txt | 4 +- doc/src/fix_atom_swap.txt | 4 +- doc/src/fix_ave_correlate_long.txt | 4 +- doc/src/fix_aveforce.txt | 8 +- doc/src/fix_bocs.txt | 4 +- doc/src/fix_bond_break.txt | 4 +- doc/src/fix_bond_create.txt | 4 +- doc/src/fix_bond_react.txt | 4 +- doc/src/fix_bond_swap.txt | 4 +- doc/src/fix_cmap.txt | 4 +- doc/src/fix_colvars.txt | 4 +- doc/src/fix_deform.txt | 8 +- doc/src/fix_deposit.txt | 4 +- doc/src/fix_dpd_energy.txt | 12 +- doc/src/fix_dpd_source.txt | 4 +- doc/src/fix_efield.txt | 4 +- doc/src/fix_ehex.txt | 4 +- doc/src/fix_enforce2d.txt | 8 +- doc/src/fix_eos_cv.txt | 4 +- doc/src/fix_eos_table.txt | 4 +- doc/src/fix_eos_table_rx.txt | 12 +- doc/src/fix_evaporate.txt | 4 +- doc/src/fix_filter_corotate.txt | 4 +- doc/src/fix_flow_gauss.txt | 4 +- doc/src/fix_freeze.txt | 12 +- doc/src/fix_gcmc.txt | 4 +- doc/src/fix_gld.txt | 4 +- doc/src/fix_gle.txt | 6 +- doc/src/fix_gravity.txt | 8 +- doc/src/fix_grem.txt | 4 +- doc/src/fix_imd.txt | 4 +- doc/src/fix_ipi.txt | 6 +- doc/src/fix_langevin.txt | 8 +- doc/src/fix_langevin_eff.txt | 4 +- doc/src/fix_langevin_spin.txt | 6 +- doc/src/fix_latte.txt | 8 +- doc/src/fix_lb_fluid.txt | 4 +- doc/src/fix_lb_momentum.txt | 4 +- doc/src/fix_lb_pc.txt | 4 +- doc/src/fix_lb_rigid_pc_sphere.txt | 4 +- doc/src/fix_lb_viscous.txt | 4 +- doc/src/fix_manifoldforce.txt | 27 +- doc/src/fix_meso.txt | 4 +- doc/src/fix_meso_stationary.txt | 4 +- doc/src/fix_momentum.txt | 8 +- doc/src/fix_mscg.txt | 4 +- doc/src/fix_msst.txt | 4 +- doc/src/fix_mvv_dpd.txt | 4 +- doc/src/fix_neb.txt | 4 +- doc/src/fix_nh.txt | 8 +- doc/src/fix_nh_eff.txt | 4 +- doc/src/fix_nh_uef.txt | 4 +- doc/src/fix_nph_asphere.txt | 12 +- doc/src/fix_nph_body.txt | 12 +- doc/src/fix_nph_sphere.txt | 8 +- doc/src/fix_nphug.txt | 12 +- doc/src/fix_npt_asphere.txt | 12 +- doc/src/fix_npt_body.txt | 12 +- doc/src/fix_npt_sphere.txt | 8 +- doc/src/fix_nve.txt | 8 +- doc/src/fix_nve_asphere.txt | 12 +- doc/src/fix_nve_asphere_noforce.txt | 4 +- doc/src/fix_nve_body.txt | 4 +- doc/src/fix_nve_dot.txt | 4 +- doc/src/fix_nve_dotc_langevin.txt | 4 +- doc/src/fix_nve_eff.txt | 4 +- doc/src/fix_nve_line.txt | 4 +- doc/src/fix_nve_manifold_rattle.txt | 4 +- doc/src/fix_nve_sphere.txt | 8 +- doc/src/fix_nve_spin.txt | 6 +- doc/src/fix_nve_tri.txt | 4 +- doc/src/fix_nvk.txt | 6 +- doc/src/fix_nvt_asphere.txt | 12 +- doc/src/fix_nvt_body.txt | 12 +- doc/src/fix_nvt_manifold_rattle.txt | 14 +- doc/src/fix_nvt_sllod.txt | 8 +- doc/src/fix_nvt_sllod_eff.txt | 4 +- doc/src/fix_nvt_sphere.txt | 8 +- doc/src/fix_orient.txt | 4 +- doc/src/fix_phonon.txt | 8 +- doc/src/fix_pimd.txt | 4 +- doc/src/fix_poems.txt | 4 +- doc/src/fix_pour.txt | 4 +- doc/src/fix_precession_spin.txt | 8 +- doc/src/fix_python_invoke.txt | 6 +- doc/src/fix_python_move.txt | 4 +- doc/src/fix_qbmsst.txt | 4 +- doc/src/fix_qeq.txt | 4 +- doc/src/fix_qeq_comb.txt | 8 +- doc/src/fix_qeq_reax.txt | 12 +- doc/src/fix_qmmm.txt | 4 +- doc/src/fix_qtb.txt | 4 +- doc/src/fix_reax_bonds.txt | 12 +- doc/src/fix_reaxc_species.txt | 16 +- doc/src/fix_rhok.txt | 4 +- doc/src/fix_rigid.txt | 12 +- doc/src/fix_rx.txt | 12 +- doc/src/fix_setforce.txt | 8 +- doc/src/fix_shake.txt | 12 +- doc/src/fix_shardlow.txt | 12 +- doc/src/fix_smd.txt | 4 +- doc/src/fix_smd_adjust_dt.txt | 27 +- doc/src/fix_smd_integrate_tlsph.txt | 18 +- doc/src/fix_smd_integrate_ulsph.txt | 28 +- doc/src/fix_smd_move_triangulated_surface.txt | 34 +- doc/src/fix_smd_setvel.txt | 4 +- doc/src/fix_smd_wall_surface.txt | 45 +- doc/src/fix_srd.txt | 4 +- doc/src/fix_temp_rescale_eff.txt | 4 +- doc/src/fix_tfmc.txt | 4 +- doc/src/fix_thermal_conductivity.txt | 4 +- doc/src/fix_ti_spring.txt | 4 +- doc/src/fix_tmd.txt | 4 +- doc/src/fix_ttm.txt | 3 +- doc/src/fix_tune_kspace.txt | 6 +- doc/src/fix_viscosity.txt | 4 +- doc/src/fix_wall.txt | 8 +- doc/src/fix_wall_body_polygon.txt | 4 +- doc/src/fix_wall_body_polyhedron.txt | 6 +- doc/src/fix_wall_ees.txt | 4 +- doc/src/fix_wall_gran.txt | 4 +- doc/src/fix_wall_gran_region.txt | 4 +- doc/src/fix_wall_piston.txt | 4 +- doc/src/fix_wall_reflect.txt | 8 +- doc/src/group2ndx.txt | 4 +- doc/src/improper_class2.txt | 12 +- doc/src/improper_cossq.txt | 12 +- doc/src/improper_cvff.txt | 12 +- doc/src/improper_distance.txt | 4 +- doc/src/improper_fourier.txt | 12 +- doc/src/improper_harmonic.txt | 12 +- doc/src/improper_hybrid.txt | 4 +- doc/src/improper_inversion_harmonic.txt | 4 +- doc/src/improper_ring.txt | 12 +- doc/src/improper_style.txt | 7 +- doc/src/improper_umbrella.txt | 12 +- doc/src/jump.txt | 11 +- doc/src/kspace_style.txt | 20 +- doc/src/lammps.book | 22 +- doc/src/log.txt | 5 +- doc/src/neb.txt | 20 +- doc/src/neighbor.txt | 4 +- doc/src/next.txt | 10 +- doc/src/package.txt | 93 +- doc/src/pair_adp.txt | 8 +- doc/src/pair_agni.txt | 25 +- doc/src/pair_airebo.txt | 12 +- doc/src/pair_beck.txt | 8 +- doc/src/pair_body_nparticle.txt | 4 +- doc/src/pair_body_rounded_polygon.txt | 4 +- doc/src/pair_body_rounded_polyhedron.txt | 4 +- doc/src/pair_bop.txt | 5 +- doc/src/pair_born.txt | 12 +- doc/src/pair_brownian.txt | 12 +- doc/src/pair_buck.txt | 12 +- doc/src/pair_buck6d_coul_gauss.txt | 6 +- doc/src/pair_buck_long.txt | 14 +- doc/src/pair_charmm.txt | 14 +- doc/src/pair_class2.txt | 12 +- doc/src/pair_colloid.txt | 12 +- doc/src/pair_comb.txt | 14 +- doc/src/pair_coul.txt | 10 +- doc/src/pair_coul_diel.txt | 9 +- doc/src/pair_coul_shield.txt | 6 +- doc/src/pair_cs.txt | 4 +- doc/src/pair_dipole.txt | 16 +- doc/src/pair_dpd.txt | 8 +- doc/src/pair_dpd_fdt.txt | 12 +- doc/src/pair_dsmc.txt | 4 +- doc/src/pair_eam.txt | 12 +- doc/src/pair_edip.txt | 12 +- doc/src/pair_eff.txt | 4 +- doc/src/pair_eim.txt | 8 +- doc/src/pair_exp6_rx.txt | 12 +- doc/src/pair_gauss.txt | 12 +- doc/src/pair_gayberne.txt | 12 +- doc/src/pair_gran.txt | 12 +- doc/src/pair_gromacs.txt | 8 +- doc/src/pair_gw.txt | 4 +- doc/src/pair_hbond_dreiding.txt | 8 +- doc/src/pair_hybrid.txt | 12 +- doc/src/pair_ilp_graphene_hbn.txt | 4 +- doc/src/pair_kim.txt | 4 +- doc/src/pair_kolmogorov_crespi_full.txt | 4 +- doc/src/pair_kolmogorov_crespi_z.txt | 4 +- doc/src/pair_lcbop.txt | 4 +- doc/src/pair_line_lj.txt | 4 +- doc/src/pair_list.txt | 4 +- doc/src/pair_lj.txt | 14 +- doc/src/pair_lj96.txt | 8 +- doc/src/pair_lj_cubic.txt | 8 +- doc/src/pair_lj_expand.txt | 8 +- doc/src/pair_lj_long.txt | 14 +- doc/src/pair_lj_smooth.txt | 8 +- doc/src/pair_lj_smooth_linear.txt | 8 +- doc/src/pair_lj_soft.txt | 10 +- doc/src/pair_lubricate.txt | 12 +- doc/src/pair_lubricateU.txt | 4 +- doc/src/pair_mdf.txt | 4 +- doc/src/pair_meam.txt | 14 +- doc/src/pair_meam_spline.txt | 12 +- doc/src/pair_meam_sw_spline.txt | 5 +- doc/src/pair_meso.txt | 4 +- doc/src/pair_mgpt.txt | 4 +- doc/src/pair_momb.txt | 4 +- doc/src/pair_morse.txt | 16 +- doc/src/pair_multi_lucy.txt | 4 +- doc/src/pair_multi_lucy_rx.txt | 12 +- doc/src/pair_nb3b_harmonic.txt | 12 +- doc/src/pair_nm.txt | 12 +- doc/src/pair_oxdna.txt | 4 +- doc/src/pair_oxdna2.txt | 4 +- doc/src/pair_peri.txt | 12 +- doc/src/pair_polymorphic.txt | 4 +- doc/src/pair_python.txt | 4 +- doc/src/pair_quip.txt | 4 +- doc/src/pair_reaxc.txt | 12 +- doc/src/pair_resquared.txt | 12 +- doc/src/pair_sdk.txt | 18 +- doc/src/pair_smd_hertz.txt | 30 +- doc/src/pair_smd_tlsph.txt | 44 +- doc/src/pair_smd_triangulated_surface.txt | 24 +- doc/src/pair_smd_ulsph.txt | 50 +- doc/src/pair_smtbq.txt | 4 +- doc/src/pair_snap.txt | 14 +- doc/src/pair_soft.txt | 8 +- doc/src/pair_sph_heatconduction.txt | 4 +- doc/src/pair_sph_idealgas.txt | 4 +- doc/src/pair_sph_lj.txt | 4 +- doc/src/pair_sph_rhosum.txt | 4 +- doc/src/pair_sph_taitwater.txt | 4 +- doc/src/pair_sph_taitwater_morris.txt | 4 +- doc/src/pair_spin_dmi.txt | 8 +- doc/src/pair_spin_exchange.txt | 8 +- doc/src/pair_spin_magelec.txt | 8 +- doc/src/pair_spin_neel.txt | 8 +- doc/src/pair_style.txt | 7 +- doc/src/pair_sw.txt | 12 +- doc/src/pair_table.txt | 8 +- doc/src/pair_table_rx.txt | 12 +- doc/src/pair_tersoff.txt | 12 +- doc/src/pair_tersoff_mod.txt | 12 +- doc/src/pair_tersoff_zbl.txt | 12 +- doc/src/pair_thole.txt | 12 +- doc/src/pair_tri_lj.txt | 4 +- doc/src/pair_ufm.txt | 8 +- doc/src/pair_vashishta.txt | 12 +- doc/src/pair_yukawa.txt | 8 +- doc/src/pair_yukawa_colloid.txt | 12 +- doc/src/pair_zbl.txt | 8 +- doc/src/partition.txt | 7 +- doc/src/prd.txt | 22 +- doc/src/processors.txt | 29 +- doc/src/python.txt | 4 +- doc/src/read_data.txt | 8 +- doc/src/read_dump.txt | 6 +- doc/src/read_restart.txt | 3 +- doc/src/region.txt | 8 +- doc/src/rerun.txt | 4 +- doc/src/restart.txt | 3 +- doc/src/run_style.txt | 22 +- doc/src/suffix.txt | 16 +- doc/src/tad.txt | 4 +- doc/src/temper.txt | 25 +- doc/src/temper_grem.txt | 4 +- doc/src/temper_npt.txt | 4 +- doc/src/thermo_style.txt | 6 +- doc/src/timer.txt | 4 +- doc/src/variable.txt | 49 +- doc/src/write_data.txt | 2 +- doc/src/write_restart.txt | 3 +- 415 files changed, 2029 insertions(+), 2890 deletions(-) diff --git a/doc/src/Errors_common.txt b/doc/src/Errors_common.txt index 43d1a85a7b..8f26b22b3a 100644 --- a/doc/src/Errors_common.txt +++ b/doc/src/Errors_common.txt @@ -58,9 +58,9 @@ style", with ... being fix, compute, pair, etc, it means that you mistyped the style name or that the command is part of an optional package which was not compiled into your executable. The list of available styles in your executable can be listed by using "the -h -command-line argument"_Section_start.html#start_6. The installation -and compilation of optional packages is explained in the "installation -instructions"_Section_start.html#start_3. +command-line swith"_Run_options.html. The installation and +compilation of optional packages is explained on the "Build +packages"_Build_packages.html doc page. For a given command, LAMMPS expects certain arguments in a specified order. If you mess this up, LAMMPS will often flag the error, but it diff --git a/doc/src/Errors_messages.txt b/doc/src/Errors_messages.txt index 03fc25b561..d279b5e975 100644 --- a/doc/src/Errors_messages.txt +++ b/doc/src/Errors_messages.txt @@ -7911,8 +7911,8 @@ Atom IDs must be positive integers. :dd {One or more atom IDs is too big} :dt The limit on atom IDs is set by the SMALLBIG, BIGBIG, SMALLSMALL -setting in your Makefile. See Section_start 2.2 of the manual for -more details. :dd +setting in your LAMMPS build. See the "Build +settings"_Build_settings.html doc page for more info. :dd {One or more atom IDs is zero} :dt diff --git a/doc/src/Examples.txt b/doc/src/Examples.txt index 5bd8da2409..4b6db8a047 100644 --- a/doc/src/Examples.txt +++ b/doc/src/Examples.txt @@ -112,10 +112,10 @@ web site. If you uncomment the "dump image"_dump_image.html line(s) in the input script a series of JPG images will be produced by the run (assuming -you built LAMMPS with JPG support; see "Section -2.2"_Section_start.html#start_2 for details). These can be viewed -individually or turned into a movie or animated by tools like -ImageMagick or QuickTime or various Windows-based tools. See the +you built LAMMPS with JPG support; see the +"Build_settings"_Build_settings.html doc page for details). These can +be viewed individually or turned into a movie or animated by tools +like ImageMagick or QuickTime or various Windows-based tools. See the "dump image"_dump_image.html doc page for more details. E.g. this Imagemagick command would create a GIF file suitable for viewing in a browser. diff --git a/doc/src/Howto.txt b/doc/src/Howto.txt index d9a60d1ef4..6e434552e7 100644 --- a/doc/src/Howto.txt +++ b/doc/src/Howto.txt @@ -84,7 +84,7 @@ END_RST --> "Using GitHub with LAMMPS"_Howto_github.html "PyLAMMPS interface to LAMMPS"_Howto_pylammps.html -"Using LAMMPS with bash on Windows"_Howto_bash.html +"Using LAMMPS with bash on Windows"_Howto_bash.html :all(b) "Restart a simulation"_Howto_restart.html "Visualize LAMMPS snapshots"_Howto_viz.html @@ -121,8 +121,8 @@ END_RST --> "Polarizable models"_Howto_polarizable.html "Adiabatic core/shell model"_Howto_coreshell.html "Drude induced dipoles"_Howto_drude.html -"Drude induced dipoles (extended)"_Howto_drude2.html :all(b) +"Drude induced dipoles (extended)"_Howto_drude2.html "Manifolds (surfaces)"_Howto_manifold.html -"Magnetic spins"_Howto_spins.html +"Magnetic spins"_Howto_spins.html :all(b) diff --git a/doc/src/Howto_couple.txt b/doc/src/Howto_couple.txt index 38595a9d16..4c0f72a806 100644 --- a/doc/src/Howto_couple.txt +++ b/doc/src/Howto_couple.txt @@ -77,17 +77,16 @@ strain induced across grain boundaries :l :link(quest,http://dft.sandia.gov/Quest) :link(spparks,http://www.sandia.gov/~sjplimp/spparks.html) -"This section"_Section_start.html#start_5 of the documentation -describes how to build LAMMPS as a library. Once this is done, you -can interface with LAMMPS either via C++, C, Fortran, or Python (or -any other language that supports a vanilla C-like interface). For -example, from C++ you could create one (or more) "instances" of -LAMMPS, pass it an input script to process, or execute individual -commands, all by invoking the correct class methods in LAMMPS. From C -or Fortran you can make function calls to do the same things. See the -"Python"_Python.html doc pages for a description of the Python wrapper -provided with LAMMPS that operates through the LAMMPS library -interface. +The "Build basics"_Build_basics.html doc page describes how to build +LAMMPS as a library. Once this is done, you can interface with LAMMPS +either via C++, C, Fortran, or Python (or any other language that +supports a vanilla C-like interface). For example, from C++ you could +create one (or more) "instances" of LAMMPS, pass it an input script to +process, or execute individual commands, all by invoking the correct +class methods in LAMMPS. From C or Fortran you can make function +calls to do the same things. See the "Python"_Python.html doc pages +for a description of the Python wrapper provided with LAMMPS that +operates through the LAMMPS library interface. The files src/library.cpp and library.h contain the C-style interface to LAMMPS. See the "Howto library"_Howto_library.html doc page for a diff --git a/doc/src/Howto_library.txt b/doc/src/Howto_library.txt index 0d4852fbf2..8e99182f87 100644 --- a/doc/src/Howto_library.txt +++ b/doc/src/Howto_library.txt @@ -9,10 +9,10 @@ Documentation"_ld - "LAMMPS Commands"_lc :c Library interface to LAMMPS :h3 -As described in "Section 2.5"_Section_start.html#start_5, LAMMPS can -be built as a library, so that it can be called by another code, used -in a "coupled manner"_Howto_couple.html with other codes, or driven -through a "Python interface"_Python.html. +As described on the "Build basics"_Build_basics.html doc page, LAMMPS +can be built as a library, so that it can be called by another code, +used in a "coupled manner"_Howto_couple.html with other codes, or +driven through a "Python interface"_Python.html. All of these methodologies use a C-style interface to LAMMPS that is provided in the files src/library.cpp and src/library.h. The @@ -51,12 +51,11 @@ void lammps_free(void *) :pre The lammps_open() function is used to initialize LAMMPS, passing in a list of strings as if they were "command-line -arguments"_Section_start.html#start_6 when LAMMPS is run in -stand-alone mode from the command line, and a MPI communicator for -LAMMPS to run under. It returns a ptr to the LAMMPS object that is -created, and which is used in subsequent library calls. The -lammps_open() function can be called multiple times, to create -multiple instances of LAMMPS. +arguments"_Run_options.html when LAMMPS is run in stand-alone mode +from the command line, and a MPI communicator for LAMMPS to run under. +It returns a ptr to the LAMMPS object that is created, and which is +used in subsequent library calls. The lammps_open() function can be +called multiple times, to create multiple instances of LAMMPS. LAMMPS will run on the set of processors in the communicator. This means the calling code can run LAMMPS on all or a subset of diff --git a/doc/src/Howto_multiple.txt b/doc/src/Howto_multiple.txt index edcb8196cf..9ad872fedc 100644 --- a/doc/src/Howto_multiple.txt +++ b/doc/src/Howto_multiple.txt @@ -80,8 +80,7 @@ jump in.polymer :pre All of the above examples work whether you are running on 1 or multiple processors, but assumed you are running LAMMPS on a single partition of processors. LAMMPS can be run on multiple partitions via -the "-partition" command-line switch as described in "this -section"_Section_start.html#start_6 of the manual. +the "-partition command-line switch"_Run_options.html. In the last 2 examples, if LAMMPS were run on 3 partitions, the same scripts could be used if the "index" and "loop" variables were diff --git a/doc/src/Howto_replica.txt b/doc/src/Howto_replica.txt index 1b44fe5374..2135e52e0e 100644 --- a/doc/src/Howto_replica.txt +++ b/doc/src/Howto_replica.txt @@ -29,29 +29,28 @@ runs different replicas at a series of temperature to facilitate rare-event sampling. These commands can only be used if LAMMPS was built with the REPLICA -package. See the "Making LAMMPS"_Section_start.html#start_3 section -for more info on packages. +package. See the "Build package"_Build_package.html doc page for more +info. PIMD runs different replicas whose individual particles are coupled together by springs to model a system or ring-polymers. This commands can only be used if LAMMPS was built with the USER-MISC -package. See the "Making LAMMPS"_Section_start.html#start_3 section -for more info on packages. +package. See the "Build package"_Build_package.html doc page for more +info. In all these cases, you must run with one or more processors per replica. The processors assigned to each replica are determined at run-time by using the "-partition command-line -switch"_Section_start.html#start_6 to launch LAMMPS on multiple -partitions, which in this context are the same as replicas. E.g. -these commands: +switch"_Run_options.html to launch LAMMPS on multiple partitions, +which in this context are the same as replicas. E.g. these commands: mpirun -np 16 lmp_linux -partition 8x2 -in in.temper mpirun -np 8 lmp_linux -partition 8x1 -in in.neb :pre would each run 8 replicas, on either 16 or 8 processors. Note the use -of the "-in command-line switch"_Section_start.html#start_6 to specify -the input script which is required when running in multi-replica mode. +of the "-in command-line switch"_Run_options.html to specify the input +script which is required when running in multi-replica mode. Also note that with MPI installed on a machine (e.g. your desktop), you can run on more (virtual) processors than you have physical diff --git a/doc/src/Howto_restart.txt b/doc/src/Howto_restart.txt index b211775479..bc67daa78e 100644 --- a/doc/src/Howto_restart.txt +++ b/doc/src/Howto_restart.txt @@ -16,8 +16,8 @@ restart files can be saved to disk using the "restart"_restart.html command. At a later time, these binary files can be read via a "read_restart"_read_restart.html command in a new script. Or they can be converted to text data files using the "-r command-line -switch"_Section_start.html#start_6 and read by a -"read_data"_read_data.html command in a new script. +switch"_Run_options.html and read by a "read_data"_read_data.html +command in a new script. Here we give examples of 2 scripts that read either a binary restart file or a converted data file and then issue a new run command to diff --git a/doc/src/Howto_temperature.txt b/doc/src/Howto_temperature.txt index 7a318250cf..8a9e262da1 100644 --- a/doc/src/Howto_temperature.txt +++ b/doc/src/Howto_temperature.txt @@ -17,7 +17,10 @@ aggregate motion of particles) and its thermal velocity. The sum of the two is the particle's total velocity, but the latter is often what is wanted to compute a temperature. -LAMMPS has several options for computing temperatures, any of which can be used in "thermostatting"_Howto_thermostat.html and "barostatting"_Howto_barostat.html. These "compute commands"_compute.html calculate temperature: +LAMMPS has several options for computing temperatures, any of which +can be used in "thermostatting"_Howto_thermostat.html and +"barostatting"_Howto_barostat.html. These "compute +commands"_compute.html calculate temperature: "compute temp"_compute_temp.html "compute temp/sphere"_compute_temp_sphere.html @@ -35,6 +38,6 @@ velocities) that are removed when computing the thermal temperature. temp/asphere"_compute_temp_asphere.html compute kinetic energy for finite-size particles that includes rotational degrees of freedom. They both allow for velocity biases indirectly, via an optional extra -argument which is another temperature compute that subtracts a velocity bias. -This allows the translational velocity of spherical or aspherical -particles to be adjusted in prescribed ways. +argument which is another temperature compute that subtracts a +velocity bias. This allows the translational velocity of spherical or +aspherical particles to be adjusted in prescribed ways. diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index a5e8b63640..a3747465cd 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -72,7 +72,9 @@ every LAMMPS command. :includehidden: Intro - Section_start + Install + Build + Run Commands Packages Speed @@ -107,15 +109,9 @@ END_RST --> "Introduction"_Intro.html :olb,l -"Getting started"_Section_start.html :l - 2.1 "What's in the LAMMPS distribution"_start_1 :ulb,b - 2.2 "Making LAMMPS"_start_2 :b - 2.3 "Making LAMMPS with optional packages"_start_3 :b - 2.4 "Building LAMMPS as a library"_start_4 :b - 2.5 "Running LAMMPS"_start_5 :b - 2.6 "Command-line options"_start_6 :b - 2.7 "Screen output"_start_7 :b - 2.8 "Tips for users of previous versions"_start_8 :ule,b +"Install LAMMPS"_Install.html :l +"Build LAMMPS"_Build.html :l +"Run LAMMPS"_Run.html :l "Commands"_Commands.html :l "Optional packages"_Packages.html :l "Accelerate performance"_Speed.html :l @@ -127,15 +123,6 @@ END_RST --> "Errors"_Errors.html :l :ole -:link(start_1,Section_start.html#start_1) -:link(start_2,Section_start.html#start_2) -:link(start_3,Section_start.html#start_3) -:link(start_4,Section_start.html#start_4) -:link(start_5,Section_start.html#start_5) -:link(start_6,Section_start.html#start_6) -:link(start_7,Section_start.html#start_7) -:link(start_8,Section_start.html#start_8) - diff --git a/doc/src/Modify_contribute.txt b/doc/src/Modify_contribute.txt index ef9fe6a717..8cbea8bb31 100644 --- a/doc/src/Modify_contribute.txt +++ b/doc/src/Modify_contribute.txt @@ -44,13 +44,14 @@ compression, as this works well on all platforms. If the new features/files are broadly useful we may add them as core files to LAMMPS or as part of a "standard -package"_Section_start.html#start_3. Else we will add them as a -user-contributed file or package. Examples of user packages are in -src sub-directories that start with USER. The USER-MISC package is -simply a collection of (mostly) unrelated single files, which is the -simplest way to have your contribution quickly added to the LAMMPS -distribution. You can see a list of the both standard and user -packages by typing "make package" in the LAMMPS src directory. +package"_Packages_standard.html. Else we will add them as a +user-contributed file or "user package"_Packages_user.html. Examples +of user packages are in src sub-directories that start with USER. The +USER-MISC package is simply a collection of (mostly) unrelated single +files, which is the simplest way to have your contribution quickly +added to the LAMMPS distribution. All the standard and user packages +are listed and described on the "Packages +details"_Packages_details.html doc page. Note that by providing us files to release, you are agreeing to make them open-source, i.e. we can release them under the terms of the GPL, diff --git a/doc/src/Packages.txt b/doc/src/Packages.txt index a7f45a99b7..e48c947be3 100644 --- a/doc/src/Packages.txt +++ b/doc/src/Packages.txt @@ -13,12 +13,12 @@ Optional packages :h2 This section gives an overview of the optional packages that extend LAMMPS functionality. Packages are groups of files that enable a specific set of features. For example, force fields for molecular -systems or rigid-body constraint are in packages. You can see the +systems or rigid-body constraints are in packages. You can see the list of all packages and "make" commands to manage them by typing "make package" from within the src directory of the LAMMPS -distribution. "Section 2.3"_Section_start.html#start_3 gives general -info on how to install and un-install packages as part of the LAMMPS -build process. +distribution. The "Build package"_Build_package.html doc page gives +general info on how to install and un-install packages as part of the +LAMMPS build process. diff --git a/doc/src/Build_basics.txt b/doc/src/Build_basics.txt index b2816b7acb..454e5fbe35 100644 --- a/doc/src/Build_basics.txt +++ b/doc/src/Build_basics.txt @@ -301,15 +301,9 @@ want to copy files to is protected. [CMake variable]: -cmake CMAKE_INSTALL_PREFIX=path \[options ...\] ~/lammps/cmake +cmake -D CMAKE_INSTALL_PREFIX=path \[options ...\] ~/lammps/cmake make # perform make after CMake command -make install # perform the installation :pre - -Note that The CMAKE_INSTALL_PREFIX=path is not a -D variable like -other LAMMPS settings, but rather an option to the cmake command. The -path is where to install the LAMMPS files. - -TODO: is this sub-section correct? +make install # perform the installation into prefix :pre [Traditional make]: diff --git a/doc/src/Build_cmake.txt b/doc/src/Build_cmake.txt index 2bc10d1463..b4f160f371 100644 --- a/doc/src/Build_cmake.txt +++ b/doc/src/Build_cmake.txt @@ -91,8 +91,8 @@ cmake directory which contains the CMakeLists.txt file. The argument can be preceeded or followed by various CMake command-line options. Several useful ones are: -CAKE_INSTALL_PREFIX=path # where to install LAMMPS executable/lib if desired -CMAKE_BUILD_TYPE=type # type = Release or Debug +-D CMAKE_INSTALL_PREFIX=path # where to install LAMMPS executable/lib if desired +-D CMAKE_BUILD_TYPE=type # type = Release or Debug -G output # style of output CMake generates -DVARIABLE=value # setting for a LAMMPS feature to enable -D VARIABLE=value # ditto, but cannot come after CMakeLists.txt dir @@ -103,7 +103,7 @@ All of these variable names are upper-case and their values are lower-case, e.g. -D LAMMPS_SIZES=smallbig. For boolean values, any of these forms can be used: yes/no, on/off, 1/0. -By default CMake generates a Makefile to perform the LAMMPS build. +On Unix/Linux CMake generates a Makefile by default to perform the LAMMPS build. Alternate forms of build info can be generated via the -G switch, e.g. Visual Studio on a Windows machine. Type "cmake --help" to see the "Generator" styles of output your system supports. @@ -118,22 +118,22 @@ CMake creates a CMakeCache.txt file when it runs. This stores all the settings, so that running CMake again from the same directory will inherit those settings. -TODO: explain how to change settings on a subsequent cmake in the same -build dir. In that case is "." the final arg of cmake? +If you later want to change a setting you can rerun cmake in the build +directory with different setting. Please note that some automatically +detected variables will not change their value. In these cases it is +usually better to start with a fresh build directory. [Curses version (terminal-style menu) of CMake]: ccmake ~/lammps/cmake :pre -TODO: give brief explanation of how to find and toggle options, how to -perform the generate, how to use it multiple times. +Please see the "ccmake manual"_https://cmake.org/cmake/help/latest/manual/ccmake.1.html for more information. [GUI version of CMake]: cmake-gui ~/lammps/cmake :pre -TODO: give brief explanation of how to find and toggle options, how to -perform the generate, how to use it multiple times. +Please see the "cmake-gui manual"_https://cmake.org/cmake/help/latest/manual/cmake-gui.1.html for more information. :line @@ -152,8 +152,7 @@ module list # is a cmake module is already loaded module avail # is a cmake module available? module load cmake3 # load cmake module with appropriate name :pre -If you do not have CMake or a new enough version, you can install it -as follows: - -TODO: give install instructions for Linux, Mac, Windows - +If you do not have CMake or a new enough version, you can download the latest +version at "https://cmake.org/download/"_https://cmake.org/download/. +Instructions on how to install it on various platforms can be found +"here"_https://cmake.org/install/. diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index d940ed23cd..9a03d0092f 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -68,7 +68,7 @@ name. :line -GPU package :h3,link(gpu) +GPU package :h4,link(gpu) To build with this package, you need to choose options for precision and which GPU hardware to build for. To build with make you also need @@ -134,7 +134,7 @@ GPU library. :line -KIM package :h3,link(kim) +KIM package :h4,link(kim) To build with this package, the KIM library must be downloaded and built on your system. It must include the KIM models that you want to @@ -178,7 +178,7 @@ make lib-kim args="-p /usr/local/kim-api -a EAM_Dynamo_Ackland_W__MO_14162719659 :line -KOKKOS package :h3,link(kokkos) +KOKKOS package :h4,link(kokkos) To build with this package, you have to choose a Kokkos setting for either CPU (multi-threading via OpenMP) or KNL (OpenMP) or GPU (Cuda) @@ -241,7 +241,7 @@ do not recommend building with other acceleration packages installed :line -LATTE package :h3,link(latte) +LATTE package :h4,link(latte) To build with this package, you must download and build the LATTE library. @@ -272,7 +272,7 @@ the compiler you use on your system to build LATTE. :line -MEAM package :h3,link(meam) +MEAM package :h4,link(meam) NOTE: You should test building the MEAM library with both the Intel and GNU compilers to see if a simulation runs faster with one versus @@ -307,7 +307,7 @@ file. :line -MSCG package :h3,link(mscg) +MSCG package :h4,link(mscg) Before building LAMMPS with this package, you must first download and build the MS-CG library. @@ -342,7 +342,7 @@ You should not need to edit the lib/mscg/Makefile.lammps file. :line -OPT package :h3,link(opt) +OPT package :h4,link(opt) [CMake build]: @@ -359,7 +359,7 @@ CCFLAGS: add -restrict for Intel compilers :ul :line -POEMS package :h3,link(poems) +POEMS package :h4,link(poems) [CMake build]: @@ -388,7 +388,7 @@ a corresponding Makefile.lammps.machine file. :line -PYTHON package :h3,link(python) +PYTHON package :h4,link(python) Building with the PYTHON package assumes you have a Python shared library available on your system, which needs to be a Python 2 @@ -407,7 +407,7 @@ process. You should only need to create a new Makefile.lammps.* file :line -REAX package :h3,link(reax) +REAX package :h4,link(reax) [CMake build]: @@ -438,7 +438,7 @@ file. :line -VORONOI package :h3,link(voronoi) +VORONOI package :h4,link(voronoi) [CMake build]: @@ -466,7 +466,7 @@ the lib/voronoi/Makefile.lammps file. :line :line -USER-ATC package :h3,link(user-atc) +USER-ATC package :h4,link(user-atc) [CMake build]: @@ -507,7 +507,7 @@ make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre :line -USER-AWPMD package :h3,link(user-awpmd) +USER-AWPMD package :h4,link(user-awpmd) [CMake build]: @@ -547,7 +547,7 @@ make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre :line -USER-COLVARS package :h3,link(user-colvars) +USER-COLVARS package :h4,link(user-colvars) [CMake build]: @@ -577,7 +577,7 @@ a corresponding Makefile.lammps.machine file. :line -USER-H5MD package :h3,link(user-h5md) +USER-H5MD package :h4,link(user-h5md) [CMake build]: @@ -608,7 +608,7 @@ file. :line -USER-INTEL package :h3,link(user-intel) +USER-INTEL package :h4,link(user-intel) [CMake build]: @@ -651,7 +651,7 @@ explained on the "Speed intel"_Speed_intel.html doc page. :line -USER-MOLFILE package :h3,link(user-molfile) +USER-MOLFILE package :h4,link(user-molfile) [CMake build]: @@ -668,7 +668,7 @@ lib/molfile/Makefile.lammps for details. :line -USER-NETCDF package :h3,link(user-netcdf) +USER-NETCDF package :h4,link(user-netcdf) [CMake build]: @@ -685,7 +685,7 @@ lib/netcdf/README for details. :line -USER-OMP package :h3,link(user-omp) +USER-OMP package :h4,link(user-omp) [CMake build]: @@ -698,7 +698,7 @@ LINKFLAGS: add -fopenmp :ul :line -USER-QMMM package :h3,link(user-qmmm) +USER-QMMM package :h4,link(user-qmmm) The LAMMPS executable these steps produce is not yet functional for a QM/MM simulation. You must also build Quantum ESPRESSO and create a @@ -736,7 +736,7 @@ usual manner: :line -USER-QUIP package :h3,link(user-quip) +USER-QUIP package :h4,link(user-quip) [CMake build]: @@ -756,11 +756,11 @@ settings to successfully build on your system. :line -USER-SMD package :h3,link(user-smd) +USER-SMD package :h4,link(user-smd) [CMake build]: --D EIGEN3_INCLUDE_DIR +-D EIGEN3_INCLUDE_DIR=path [Traditional make]: @@ -784,7 +784,7 @@ usual manner: :line -USER-VTK package :h3,link(user-vtk) +USER-VTK package :h4,link(user-vtk) [CMake build]: From edb535d36fad7ca1d2dd144f6659db7f77a534cf Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 9 Aug 2018 17:08:15 -0400 Subject: [PATCH 449/675] Fix some of the missing TODOs in cmake docs --- doc/src/Build_extras.txt | 68 +++++++++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 18 deletions(-) diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index 9a03d0092f..d6b0d052b5 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -159,7 +159,10 @@ package?" page. [CMake build]: -TODO: how to do this +-D PKG_KIM=on # enable KIM package +-D DOWNLOAD_KIM=value # download OpenKIM API v1 for build, value = off (default) or on +-D KIM_LIBRARY=path # (only needed if at custom location) path to KIM shared library +-D KIM_INCLUDE_DIR=path # (only needed if at custom location) path to KIM include directory :pre [Traditional make]: @@ -248,7 +251,9 @@ library. [CMake build]: -TODO: how to do this +-D PKG_LATTE=on # enable LATTE package +-D DOWNLOAD_LATTE=value # download LATTE for build, value = off (default) or on +-D LATTE_LIBRARY=path # (only needed if at custom location) path to LATTE shared library :pre [Traditional make]: @@ -280,7 +285,7 @@ the other on your system. [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_MEAM=on # enable MEAM package :pre [Traditional make]: @@ -314,7 +319,10 @@ build the MS-CG library. [CMake build]: -TODO: how to do this +-D PKG_MSCG=on # enable MSCG package +-D DOWNLOAD_MSCG=value # download MSCG for build, value = off (default) or on +-D MSCG_LIBRARY=path # (only needed if at custom location) path to MSCG shared library +-D MSCG_INCLUDE_DIR=path # (only needed if at custom location) path to MSCG include directory :pre [Traditional make]: @@ -346,7 +354,7 @@ OPT package :h4,link(opt) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_OPT=on # enable OPT package :pre [Traditional make]: @@ -363,7 +371,7 @@ POEMS package :h4,link(poems) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_POEMS=on # enable POEMS package :pre [Traditional make]: @@ -397,7 +405,13 @@ lib/python/README for more details. [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_PYTHON=on # enable PYTHON package +-D PYTHON_EXECUTABLE=path # path to Python executable which should be used :pre + +If you want to use a different Python version other than your system default, you can +either create a virtualenv, activate it and then run cmake or use the PYTHON_EXECUTABLE +variable to specify which Python interpreter should be used. Please note that you will +also need to have the development headers installed, e.g. python2-devel. [Traditional make]: @@ -411,7 +425,7 @@ REAX package :h4,link(reax) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_REAX=on # enable REAX package :pre [Traditional make]: @@ -442,7 +456,10 @@ VORONOI package :h4,link(voronoi) [CMake build]: -TODO: how to do this +-D PKG_VORONOI=on # enable VORONOI package +-D DOWNLOAD_VORO=value # download VORO for build, value = off (default) or on +-D VORO_LIBRARY=path # (only needed if at custom location) path to VORO shared library +-D VORO_INCLUDE_DIR=path # (only needed if at custom location) path to VORO include directory :pre [Traditional make]: @@ -470,7 +487,8 @@ USER-ATC package :h4,link(user-atc) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_USER-ATC=on # enable USER-ATC package +-D PKG_MANYBODY=on # requires MANYBODY package :pre [Traditional make]: @@ -511,7 +529,7 @@ USER-AWPMD package :h4,link(user-awpmd) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_USER-AWPMD=on # enable USER-AWPMD package :pre [Traditional make]: @@ -551,7 +569,7 @@ USER-COLVARS package :h4,link(user-colvars) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_USER-COLVARS=on # enable USER-COLVARS package :pre [Traditional make]: @@ -581,7 +599,11 @@ USER-H5MD package :h4,link(user-h5md) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_USER-H5MD=on # enable USER-H5MD package :pre + +This will autodetect the H5MD library if it is installed on your system at standard locations. +Several advanced H5MD options exist if you need to specify where it was installed. Run with +ccmake to see these options. [Traditional make]: @@ -655,7 +677,7 @@ USER-MOLFILE package :h4,link(user-molfile) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_USER-MOLFILE=on # enable USER-MOLFILE package :pre [Traditional make]: @@ -672,7 +694,11 @@ USER-NETCDF package :h4,link(user-netcdf) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_USER-NETCDF=on # enable USER-NETCDF package :pre + +This will autodetect the NETCDF library if it is installed on your system at standard locations. +Several advanced NETCDF options exist if you need to specify where it was installed. Run with +ccmake to see these options. [Traditional make]: @@ -689,7 +715,8 @@ USER-OMP package :h4,link(user-omp) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_USER-OMP=on # enable USER-OMP package +-D BUILD_OMP=on # enable OpenMP support :pre [Traditional make]: @@ -760,7 +787,8 @@ USER-SMD package :h4,link(user-smd) [CMake build]: --D EIGEN3_INCLUDE_DIR=path +-D PKG_USER-SMD=on # enable USER-SMD package +-D EIGEN3_INCLUDE_DIR=path # path to include directory of Eigen library :pre [Traditional make]: @@ -788,7 +816,11 @@ USER-VTK package :h4,link(user-vtk) [CMake build]: -TODO: automatic, i.e. nothing to do? +-D PKG_USER-VTK=on # enable USER-VTK package :pre + +This will autodetect the VTK library if it is installed on your system at standard locations. +Several advanced VTK options exist if you need to specify where it was installed. Run with +ccmake to see these options. [Traditional make]: From 76289cd955d1bd6fc5397fa150a66cbdd0845b3b Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 9 Aug 2018 17:50:55 -0400 Subject: [PATCH 450/675] Add LAMMPS shared library instructions for CMake --- doc/src/Python_shlib.txt | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/doc/src/Python_shlib.txt b/doc/src/Python_shlib.txt index 18775cd2fd..206f56688c 100644 --- a/doc/src/Python_shlib.txt +++ b/doc/src/Python_shlib.txt @@ -9,6 +9,8 @@ Documentation"_ld - "LAMMPS Commands"_lc :c Build LAMMPS as a shared library :h3 +Build LAMMPS as a shared library using make :h4 + Instructions on how to build LAMMPS as a shared library are given on the "Build_basics"_Build_basics.html doc page. A shared library is one that is dynamically loadable, which is what Python requires to @@ -32,4 +34,40 @@ extra libraries must also be shared libraries. If the LAMMPS shared-library build fails with an error complaining about this, see the "Build_basics"_Build_basics.html doc page. -TODO: Also include CMake info on this +Build LAMMPS as a shared library using CMake :h4 + +When using CMake the following two options are necessary to generate the LAMMPS +shared library: + +-D BUILD_LIB=on # enable building LAMMPS as a library +-D BUILD_SHARED_LIBS=on # enable building of LAMMPS shared library (both options are needed!) :pre + +What this does is create a liblammps.so which contains the majority of LAMMPS +code. The generated lmp binary also dynamically links to this library. This +means that either this liblammps.so file has to be in the same directory, a system +library path (e.g. /usr/lib64/) or in the LD_LIBRARY_PATH. + +If you want to use the shared library with Python the recommended way is to create a virtualenv and use it as +CMAKE_INSTALL_PREFIX. + +# create virtualenv +virtualenv --python=$(which python3) myenv3 +source myenv3/bin/activate :pre + +# build library +mkdir build +cd build +cmake -D PKG_PYTHON=on -D BUILD_LIB=on -D BUILD_SHARED_LIBS=on -D CMAKE_INSTALL_PREFIX=$VIRTUAL_ENV ../cmake +make -j 4 :pre + +# install into prefix +make install :pre + +This will also install the Python module into your virtualenv. Since virtualenv +doesn't change your LD_LIBRARY_PATH, you still need to add its lib64 folder to +it, which contains the installed liblammps.so. + +export LD_LIBRARY_PATH=$VIRTUAL_ENV/lib64:$LD_LIBRARY_PATH :pre + +Starting Python outside (!) of your build directory, but with the virtualenv +enabled and with the LD_LIBRARY_PATH set gives you access to LAMMPS via Python. From 0b523cb48e2fcb884a273b3d76474d2c19ae5c33 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 10 Aug 2018 11:38:59 +0200 Subject: [PATCH 451/675] some rewording and updates for the traditional and cmake documentation --- doc/src/Build.txt | 8 ++- doc/src/Build_basics.txt | 2 +- doc/src/Build_cmake.txt | 146 +++++++++++++++++++++++---------------- doc/src/Build_make.txt | 48 ++++++++----- doc/src/Run_basics.txt | 24 ++++--- 5 files changed, 138 insertions(+), 90 deletions(-) diff --git a/doc/src/Build.txt b/doc/src/Build.txt index 287e151c31..76aa95de55 100644 --- a/doc/src/Build.txt +++ b/doc/src/Build.txt @@ -10,9 +10,11 @@ Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Run.html :c Build LAMMPS :h2 LAMMPS can be built as an executable or library from source code via -either CMake or traditional make. As an alternative you can download -a pre-built executable file as described on the "Install"_Install.html -doc page. +either traditional makefiles (which may require manual editing) +for use with GNU make or gmake, or a build environment generated by CMake +(Unix Makefiles, Xcode, Visual Studio, KDevelop or more). As an +alternative you can download a package with pre-built executables +as described on the "Install"_Install.html doc page. "Example scripts"_Examples.html :l "Auxiliary tools"_Tools.html :l "Modify & extend LAMMPS"_Modify.html :l -"Use Python with LAMMPS"_Python.html :l +"Use Python with LAMMPS"_Python_head.html :l "Errors"_Errors.html :l +"Building the LAMMPS manual"_Manual_build.html :l :ole diff --git a/doc/src/Manual_build.txt b/doc/src/Manual_build.txt index 2be4b98960..747a55a729 100644 --- a/doc/src/Manual_build.txt +++ b/doc/src/Manual_build.txt @@ -8,7 +8,7 @@ Section"_Manual.html :c :line -Building the LAMMPS Manual :h2 +Building the LAMMPS manual :h2 Depending on how you obtained LAMMPS, the doc directory has 2 or 3 sub-directories and optionally 2 PDF files and an ePUB file: diff --git a/doc/src/Modify.txt b/doc/src/Modify.txt index 6189b9ba3e..666aaba8a7 100644 --- a/doc/src/Modify.txt +++ b/doc/src/Modify.txt @@ -1,6 +1,6 @@ "Previous Section"_Tools.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next -Section"_Python.html :c +Section"_Python_head.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index ff0ce7844c..5ab85a80c8 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -763,8 +763,8 @@ A "python"_python.html command which allow you to execute Python code from a LAMMPS input script. The code can be in a separate file or embedded in the input script itself. See the "Python call"_Python_call.html doc page for an overview of using Python from -LAMMPS in this manner and all the "Python"_Python.html doc pages for -other ways to use LAMMPS and Python together. +LAMMPS in this manner and all the "Python"_Python_head.html doc pages +for other ways to use LAMMPS and Python together. NOTE: Building with the PYTHON package assumes you have a Python shared library available on your system, which needs to be a Python 2 @@ -780,7 +780,7 @@ extras"_Build_extras.html doc page. [Supporting info:] src/PYTHON: filenames -> commands -"Python call"_Python.html +"Python call"_Python_head.html lib/python/README examples/python :ul diff --git a/doc/src/Python_call.txt b/doc/src/Python_call.txt index 621f1fe241..029c8f831c 100644 --- a/doc/src/Python_call.txt +++ b/doc/src/Python_call.txt @@ -1,5 +1,5 @@ -"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Python_head.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Python_examples.txt b/doc/src/Python_examples.txt index 46e5fee2b9..f4b2197464 100644 --- a/doc/src/Python_examples.txt +++ b/doc/src/Python_examples.txt @@ -1,5 +1,5 @@ -"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Python_head.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Python.txt b/doc/src/Python_head.txt similarity index 100% rename from doc/src/Python.txt rename to doc/src/Python_head.txt diff --git a/doc/src/Python_install.txt b/doc/src/Python_install.txt index 85cf267de0..97f6bf3c3a 100644 --- a/doc/src/Python_install.txt +++ b/doc/src/Python_install.txt @@ -1,5 +1,5 @@ -"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Python_head.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Python_library.txt b/doc/src/Python_library.txt index 8d0c724a45..9a3ea93fc3 100644 --- a/doc/src/Python_library.txt +++ b/doc/src/Python_library.txt @@ -1,5 +1,5 @@ -"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Python_head.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Python_mpi.txt b/doc/src/Python_mpi.txt index 6e0a2ce319..96c42e0d0f 100644 --- a/doc/src/Python_mpi.txt +++ b/doc/src/Python_mpi.txt @@ -1,5 +1,5 @@ -"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Python_head.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Python_pylammps.txt b/doc/src/Python_pylammps.txt index d7baa93e2e..303ac21a27 100644 --- a/doc/src/Python_pylammps.txt +++ b/doc/src/Python_pylammps.txt @@ -1,5 +1,5 @@ -"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Python_head.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Python_run.txt b/doc/src/Python_run.txt index a94dc07f2d..963248efce 100644 --- a/doc/src/Python_run.txt +++ b/doc/src/Python_run.txt @@ -1,5 +1,5 @@ -"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Python_head.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Python_shlib.txt b/doc/src/Python_shlib.txt index 206f56688c..91c90d9a8f 100644 --- a/doc/src/Python_shlib.txt +++ b/doc/src/Python_shlib.txt @@ -1,5 +1,5 @@ -"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Python_head.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Python_test.txt b/doc/src/Python_test.txt index 3d52485aa8..2bfec91bd6 100644 --- a/doc/src/Python_test.txt +++ b/doc/src/Python_test.txt @@ -1,5 +1,5 @@ -"Higher level section"_Python.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc :c +"Higher level section"_Python_head.html - "LAMMPS WWW Site"_lws - +"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/fix_external.txt b/doc/src/fix_external.txt index 1dec226414..dd7f7914e9 100644 --- a/doc/src/fix_external.txt +++ b/doc/src/fix_external.txt @@ -34,7 +34,7 @@ This fix allows external programs that are running LAMMPS through its "library interface"_Howto_library.html to modify certain LAMMPS properties on specific timesteps, similar to the way other fixes do. The external driver can be a "C/C++ or Fortran -program"_Howto_library.html or a "Python script"_Python.html. +program"_Howto_library.html or a "Python script"_Python_head.html. :line diff --git a/doc/src/python.txt b/doc/src/python.txt index 0c0a203ccd..54d18d2f60 100644 --- a/doc/src/python.txt +++ b/doc/src/python.txt @@ -100,7 +100,7 @@ be passed to various commands as arguments, so that the variable is evaluated during a simulation run. A broader overview of how Python can be used with LAMMPS is given on -the "Python"_Python.html doc page. There is an examples/python +the "Python"_Python_head.html doc page. There is an examples/python directory which illustrates use of the python command. :line @@ -483,8 +483,8 @@ building LAMMPS. LAMMPS must also be built as a shared library and your Python function must be able to to load the Python module in python/lammps.py that wraps the LAMMPS library interface. These are the same steps required to use Python by itself to wrap LAMMPS. -Details on these steps are explained on the "Python"_Python.html doc -page. Note that it is important that the stand-alone LAMMPS +Details on these steps are explained on the "Python"_Python_head.html +doc page. Note that it is important that the stand-alone LAMMPS executable and the LAMMPS shared library be consistent (built from the same source code files) in order for this to work. If the two have been built at different times using different source files, problems diff --git a/lib/gpu/Install.py b/lib/gpu/Install.py index 3b12db5091..d1024c0085 100644 --- a/lib/gpu/Install.py +++ b/lib/gpu/Install.py @@ -23,16 +23,17 @@ optionally copies Makefile.auto to a new Makefile.osuffix -m = use Makefile.machine as starting point, copy to Makefile.auto default machine = linux + default for -h, -a, -p, -e settings are those in -m Makefile -h = set CUDA_HOME variable in Makefile.auto to hdir hdir = path to NVIDIA Cuda software, e.g. /usr/local/cuda -a = set CUDA_ARCH variable in Makefile.auto to arch - use arch = 20 for Fermi (C2050/C2070, deprecated as of CUDA 8.0) - or GeForce GTX 580 or similar - use arch = 30 for Kepler (K10) - use arch = 35 for Kepler (K40) or GeForce GTX Titan or similar - use arch = 37 for Kepler (dual K80) - use arch = 60 for Pascal (P100) - use arch = 70 for Volta + use arch = sm_20 for Fermi (C2050/C2070, deprecated as of CUDA 8.0) + or GeForce GTX 580 or similar + use arch = sm_30 for Kepler (K10) + use arch = sm_35 for Kepler (K40) or GeForce GTX Titan or similar + use arch = sm_37 for Kepler (dual K80) + use arch = sm_60 for Pascal (P100) + use arch = sm_70 for Volta -p = set CUDA_PRECISION variable in Makefile.auto to precision use precision = double or mixed or single -e = set EXTRAMAKE variable in Makefile.auto to Makefile.lammps.esuffix @@ -47,7 +48,7 @@ Examples: make lib-gpu args="-b" # build GPU lib with default Makefile.linux make lib-gpu args="-m xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision -make lib-gpu args="-m mpi -a 35 -p single -o mpi.mixed -b" # create new Makefile.mpi.mixed, also build GPU lib with these settings +make lib-gpu args="-m mpi -a sm_35 -p single -o mpi.mixed -b" # create new Makefile.mpi.mixed, also build GPU lib with these settings """ # print error message or help @@ -128,7 +129,7 @@ for line in lines: if hflag and words[0] == "CUDA_HOME" and words[1] == '=': line = line.replace(words[2],hdir) if aflag and words[0] == "CUDA_ARCH" and words[1] == '=': - line = line.replace(words[2],"-arch=sm_%s" % arch) + line = line.replace(words[2],"-arch=%s" % arch) if pflag and words[0] == "CUDA_PRECISION" and words[1] == '=': line = line.replace(words[2],precstr) if eflag and words[0] == "EXTRAMAKE" and words[1] == '=': diff --git a/lib/gpu/Makefile.linux b/lib/gpu/Makefile.linux index ed5b6092d3..9580bfd4ae 100644 --- a/lib/gpu/Makefile.linux +++ b/lib/gpu/Makefile.linux @@ -13,8 +13,8 @@ endif NVCC = nvcc -# Tesla CUDA -CUDA_ARCH = -arch=sm_21 +# older CUDA +#CUDA_ARCH = -arch=sm_21 # newer CUDA #CUDA_ARCH = -arch=sm_13 # older CUDA From 1f65150e16039e149881f0f5e09586e873f5d3e0 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 15 Aug 2018 07:34:20 -0600 Subject: [PATCH 487/675] 60 -> sm_60 for GPU_ARCH --- cmake/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 1bd9eb22b1..2ee5d9e6d6 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -834,7 +834,7 @@ if(PKG_GPU) endif() option(CUDPP_OPT "Enable CUDPP_OPT" ON) - set(GPU_ARCH "30" CACHE STRING "LAMMPS GPU CUDA SM architecture (e.g. 60)") + set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM architecture (e.g. sm_60)") file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/*.cu) list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu) @@ -848,10 +848,10 @@ if(PKG_GPU) endif() cuda_compile_cubin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS - -DUNIX -O3 -Xptxas -v --use_fast_math -DNV_KERNEL -DUCL_CUDADR -arch=sm_${GPU_ARCH} -D_${GPU_PREC_SETTING}) + -DUNIX -O3 -Xptxas -v --use_fast_math -DNV_KERNEL -DUCL_CUDADR -arch=${GPU_ARCH} -D_${GPU_PREC_SETTING}) cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS $<$:-Xcompiler=-fPIC> - -DUNIX -O3 -Xptxas -v --use_fast_math -DUCL_CUDADR -arch=sm_${GPU_ARCH} -D_${GPU_PREC_SETTING}) + -DUNIX -O3 -Xptxas -v --use_fast_math -DUCL_CUDADR -arch=${GPU_ARCH} -D_${GPU_PREC_SETTING}) foreach(CU_OBJ ${GPU_GEN_OBJS}) get_filename_component(CU_NAME ${CU_OBJ} NAME_WE) @@ -1160,7 +1160,7 @@ endif() if(PKG_GPU) message(STATUS "GPU Api: ${GPU_API}") if(GPU_API_DEFINE STREQUAL "CUDA") - message(STATUS "GPU Arch: sm_${GPU_ARCH}") + message(STATUS "GPU Arch: ${GPU_ARCH}") elseif(GPU_API_DEFINE STREQUAL "OPENCL") message(STATUS "OCL Tune: ${OCL_TUNE}") endif() From 6c904102600abb5c708b7a3351b31e95741e078c Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 15 Aug 2018 07:44:36 -0600 Subject: [PATCH 488/675] one more file I forgot to commit --- doc/src/Intro_nonfeatures.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/Intro_nonfeatures.txt b/doc/src/Intro_nonfeatures.txt index 87ab42e2ac..f7ca6b307e 100644 --- a/doc/src/Intro_nonfeatures.txt +++ b/doc/src/Intro_nonfeatures.txt @@ -68,11 +68,11 @@ page"_http://lammps.sandia.gov/viz.html page of the LAMMPS website for visualization packages that can use LAMMPS output data. :l Plotting: See the next bullet about Pizza.py as well as the -"Python"_Python_head.html doc page for examples of plotting LAMMPS output. -Scripts provided with the {python} tool in the tools directory will -extract and massage data in log and dump files to make it easier to -analyze and plot. See the "Tools"_Tools.html doc page for more -discussion of the various tools. :l +"Python"_Python_head.html doc page for examples of plotting LAMMPS +output. Scripts provided with the {python} tool in the tools +directory will extract and massage data in log and dump files to make +it easier to analyze and plot. See the "Tools"_Tools.html doc page +for more discussion of the various tools. :l Pizza.py: Our group has also written a separate toolkit called "Pizza.py"_http://pizza.sandia.gov which can do certain kinds of From 6eededb190eda084fc24dea5e70763631e201cab Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 15 Aug 2018 07:45:52 -0600 Subject: [PATCH 489/675] one more tweak --- doc/src/Intro_nonfeatures.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Intro_nonfeatures.txt b/doc/src/Intro_nonfeatures.txt index f7ca6b307e..2acf6db71f 100644 --- a/doc/src/Intro_nonfeatures.txt +++ b/doc/src/Intro_nonfeatures.txt @@ -55,9 +55,9 @@ info on how to add your own analysis code or algorithms to LAMMPS. For post-processing, LAMMPS output such as "dump file snapshots"_dump.html can be converted into formats used by other MD or post-processing codes. Some post-processing tools packaged with -LAMMPS will do these conversions. Scripts provided with the {python} -tool in the tools directory can extract and massage data in dump files -to make it easier to import into other programs. See the +LAMMPS will do these conversions. Scripts provided in the +tools/python directory can extract and massage data in dump files to +make it easier to import into other programs. See the "Tools"_Tools.html doc page for details on these various options. :l Visualization: LAMMPS can produce JPG or PNG snapshot images From 1823fc2bd183f661ec11fb394fdd38758848d204 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 15 Aug 2018 07:50:10 -0600 Subject: [PATCH 490/675] commands.txt -> commands_list.txt to avoid conflict with Commands.txt --- doc/src/Manual.txt | 2 +- doc/src/{commands.txt => commands_list.txt} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename doc/src/{commands.txt => commands_list.txt} (100%) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index ca30f32311..c4dbf0415e 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -91,7 +91,7 @@ every LAMMPS command. :name: index :hidden: - commands + commands_list fixes computes pairs diff --git a/doc/src/commands.txt b/doc/src/commands_list.txt similarity index 100% rename from doc/src/commands.txt rename to doc/src/commands_list.txt From 95bfc3b536aa019b8f22d44c850da0080e73ac4a Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 15 Aug 2018 07:54:17 -0600 Subject: [PATCH 491/675] one more entry to lammps.book --- doc/src/lammps.book | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 66b3217561..c961004f83 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -111,7 +111,7 @@ Modify_region.html Modify_body.html Modify_thermo.html Modify_variable.html -Python.html +Python_head.html Python_overview.html Python_run.html Python_shlib.html From 60c9477e964c68fe012817f9db53223379871d15 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 15 Aug 2018 10:50:51 -0400 Subject: [PATCH 492/675] Add option validation and remove extra variables in CMakeLists.txt --- cmake/CMakeLists.txt | 89 +++++++++++++++++++++++++++++++------------- 1 file changed, 64 insertions(+), 25 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 2ee5d9e6d6..b75c029a51 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -17,6 +17,32 @@ file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp) file(GLOB LMP_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp) list(REMOVE_ITEM LIB_SOURCES ${LMP_SOURCES}) +# Utility functions +function(list_to_bulletpoints result) + list(REMOVE_AT ARGV 0) + set(temp "") + foreach(item ${ARGV}) + set(temp "${temp}* ${item}\n") + endforeach() + set(${result} "${temp}" PARENT_SCOPE) +endfunction(list_to_bulletpoints) + +function(validate_option name values) + string(TOLOWER ${${name}} needle_lower) + string(TOUPPER ${${name}} needle_upper) + list(FIND ${values} ${needle_lower} IDX_LOWER) + list(FIND ${values} ${needle_upper} IDX_UPPER) + if(${IDX_LOWER} LESS 0 AND ${IDX_UPPER} LESS 0) + list_to_bulletpoints(POSSIBLE_VALUE_LIST ${${values}}) + message(FATAL_ERROR "\n########################################################################\n" + "Invalid value '${${name}}' for option '${name}'\n" + "\n" + "Possible values are:\n" + "${POSSIBLE_VALUE_LIST}" + "########################################################################") + endif() +endfunction(validate_option) + # Cmake modules/macros are in a subdirectory to keep this file cleaner set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules) @@ -131,11 +157,14 @@ else() list(APPEND LAMMPS_LINK_LIBS mpi_stubs) endif() + set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS size limit") -set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS smallbig bigbig smallsmall) -string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES_DEFINE) -add_definitions(-DLAMMPS_${LAMMPS_SIZES_DEFINE}) -set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -DLAMMPS_${LAMMPS_SIZES_DEFINE}") +set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall) +set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES}) +validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES) +string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES) +add_definitions(-DLAMMPS_${LAMMPS_SIZES}) +set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -DLAMMPS_${LAMMPS_SIZES}") # posix_memalign is not available on Windows if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") @@ -219,7 +248,9 @@ if(PKG_KSPACE) else() set(FFT "KISS" CACHE STRING "FFT library for KSPACE package") endif() - set_property(CACHE FFT PROPERTY STRINGS KISS ${FFTW} MKL) + set(FFT_VALUES KISS ${FFTW} MKL) + set_property(CACHE FFT PROPERTY STRINGS ${FFT_VALUES}) + validate_option(FFT FFT_VALUES) if(NOT FFT STREQUAL "KISS") find_package(${FFT} REQUIRED) if(NOT FFT STREQUAL "FFTW3F") @@ -233,10 +264,12 @@ if(PKG_KSPACE) add_definitions(-DFFT_KISS) endif() set(FFT_PACK "array" CACHE STRING "Optimization for FFT") - set_property(CACHE FFT_PACK PROPERTY STRINGS array pointer memcpy) + set(FFT_PACK_VALUES array pointer memcpy) + set_property(CACHE FFT_PACK PROPERTY STRINGS ${FFT_PACK_VALUES}) + validate_option(FFT_PACK FFT_PACK_VALUES) if(NOT FFT_PACK STREQUAL "array") - string(TOUPPER ${FFT_PACK} FFT_PACK_DEFINE) - add_definitions(-DFFT_PACK_${FFT_PACK_DEFINE}) + string(TOUPPER ${FFT_PACK} FFT_PACK) + add_definitions(-DFFT_PACK_${FFT_PACK}) endif() endif() @@ -747,9 +780,9 @@ if(PKG_USER-INTEL) endif() set(INTEL_ARCH "cpu" CACHE STRING "Architectures used by USER-INTEL (cpu or knl)") - set_property(CACHE INTEL_ARCH PROPERTY STRINGS cpu knl) - - + set(INTEL_ARCH_VALUES cpu knl) + set_property(CACHE INTEL_ARCH PROPERTY STRINGS ${INTEL_ARCH_VALUES}) + validate_option(INTEL_ARCH INTEL_ARCH_VALUES) if(INTEL_ARCH STREQUAL "knl") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -xHost -qopenmp -qoffload") @@ -808,25 +841,29 @@ if(PKG_GPU) ${GPU_SOURCES_DIR}/fix_gpu.cpp) set(GPU_API "opencl" CACHE STRING "API used by GPU package") - set_property(CACHE GPU_API PROPERTY STRINGS opencl cuda) - string(TOUPPER ${GPU_API} GPU_API_DEFINE) + set(GPU_API_VALUES opencl cuda) + set_property(CACHE GPU_API PROPERTY STRINGS ${GPU_API_VALUES}) + validate_option(GPU_API GPU_API_VALUES) + string(TOUPPER ${GPU_API} GPU_API) set(GPU_PREC "mixed" CACHE STRING "LAMMPS GPU precision") - set_property(CACHE GPU_PREC PROPERTY STRINGS double mixed single) - string(TOUPPER ${GPU_PREC} GPU_PREC_DEFINE) + set(GPU_PREC_VALUES double mixed single) + set_property(CACHE GPU_PREC PROPERTY STRINGS ${GPU_PREC_VALUES}) + validate_option(GPU_PREC GPU_PREC_VALUES) + string(TOUPPER ${GPU_PREC} GPU_PREC) - if(GPU_PREC_DEFINE STREQUAL "DOUBLE") + if(GPU_PREC STREQUAL "DOUBLE") set(GPU_PREC_SETTING "DOUBLE_DOUBLE") - elseif(GPU_PREC_DEFINE STREQUAL "MIXED") + elseif(GPU_PREC STREQUAL "MIXED") set(GPU_PREC_SETTING "SINGLE_DOUBLE") - elseif(GPU_PREC_DEFINE STREQUAL "SINGLE") + elseif(GPU_PREC STREQUAL "SINGLE") set(GPU_PREC_SETTING "SINGLE_SINGLE") endif() file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cpp) file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu) - if(GPU_API_DEFINE STREQUAL "CUDA") + if(GPU_API STREQUAL "CUDA") find_package(CUDA REQUIRED) find_program(BIN2C bin2c) if(NOT BIN2C) @@ -882,11 +919,13 @@ if(PKG_GPU) target_include_directories(nvc_get_devices PRIVATE ${CUDA_INCLUDE_DIRS}) - elseif(GPU_API_DEFINE STREQUAL "OPENCL") + elseif(GPU_API STREQUAL "OPENCL") find_package(OpenCL REQUIRED) set(OCL_TUNE "generic" CACHE STRING "OpenCL Device Tuning") - set_property(CACHE OCL_TUNE PROPERTY STRINGS intel fermi kepler cypress generic) - string(TOUPPER ${OCL_TUNE} OCL_TUNE_DEFINE) + set(OCL_TUNE_VALUES intel fermi kepler cypress generic) + set_property(CACHE OCL_TUNE PROPERTY STRINGS ${OCL_TUNE_VALUES}) + validate_option(OCL_TUNE OCL_TUNE_VALUES) + string(TOUPPER ${OCL_TUNE} OCL_TUNE) include(OpenCLUtils) set(OCL_COMMON_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_preprocessor.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_aux_fun1.h) @@ -908,7 +947,7 @@ if(PKG_GPU) add_library(gpu STATIC ${GPU_LIB_SOURCES}) target_link_libraries(gpu ${OpenCL_LIBRARIES}) target_include_directories(gpu PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/gpu ${OpenCL_INCLUDE_DIRS}) - target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -D${OCL_TUNE_DEFINE}_OCL -DMPI_GERYON -DUCL_NO_EXIT) + target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -D${OCL_TUNE}_OCL -DMPI_GERYON -DUCL_NO_EXIT) target_compile_definitions(gpu PRIVATE -DUSE_OPENCL) list(APPEND LAMMPS_LINK_LIBS gpu) @@ -1159,9 +1198,9 @@ if(BUILD_MPI) endif() if(PKG_GPU) message(STATUS "GPU Api: ${GPU_API}") - if(GPU_API_DEFINE STREQUAL "CUDA") + if(GPU_API STREQUAL "CUDA") message(STATUS "GPU Arch: ${GPU_ARCH}") - elseif(GPU_API_DEFINE STREQUAL "OPENCL") + elseif(GPU_API STREQUAL "OPENCL") message(STATUS "OCL Tune: ${OCL_TUNE}") endif() message(STATUS "GPU Precision: ${GPU_PREC}") From 3bb8fefb121c8e8abbb3cd41e80218722cfde880 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 15 Aug 2018 10:57:45 -0400 Subject: [PATCH 493/675] Little tweak to error message --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index b75c029a51..8d2038aea8 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -35,7 +35,7 @@ function(validate_option name values) if(${IDX_LOWER} LESS 0 AND ${IDX_UPPER} LESS 0) list_to_bulletpoints(POSSIBLE_VALUE_LIST ${${values}}) message(FATAL_ERROR "\n########################################################################\n" - "Invalid value '${${name}}' for option '${name}'\n" + "Invalid value '${${name}}' for option ${name}\n" "\n" "Possible values are:\n" "${POSSIBLE_VALUE_LIST}" From 1776ade72e216389915536295a296aab6f95530e Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 15 Aug 2018 11:23:02 -0400 Subject: [PATCH 494/675] Update CMake README.md --- cmake/README.md | 120 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 99 insertions(+), 21 deletions(-) diff --git a/cmake/README.md b/cmake/README.md index b6644ffda9..a401d5296e 100644 --- a/cmake/README.md +++ b/cmake/README.md @@ -62,7 +62,7 @@ should get you started. git clone https://github.com/lammps/lammps.git mkdir lammps/build cd lammps/build -cmake ../cmake [-DOPTION_A=VALUE_A -DOPTION_B=VALUE_B ...] +cmake [-D OPTION_A=VALUE_A -D OPTION_B=VALUE_B ...] ../cmake make ``` @@ -174,7 +174,7 @@ presets can be found in the `cmake/presets` folder. # build LAMMPS with all "standard" packages which don't use libraries and enable GPU package mkdir build cd build -cmake -C ../cmake/presets/std_nolib.cmake ../cmake -DPKG_GPU=on +cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake ``` # Reference @@ -265,6 +265,16 @@ cmake -C ../cmake/presets/std_nolib.cmake ../cmake -DPKG_GPU=on + + BUILD_LIB + control whether to build LAMMPS as a library + +
+
off (default)
+
on
+
+ + BUILD_SHARED_LIBS control whether to build LAMMPS as a shared-library @@ -315,8 +325,8 @@ cmake -C ../cmake/presets/std_nolib.cmake ../cmake -DPKG_GPU=on `mpicxx` in your path and use this MPI implementation.
-
off (default)
-
on
+
on (default, if found)
+
off
@@ -325,8 +335,8 @@ cmake -C ../cmake/presets/std_nolib.cmake ../cmake -DPKG_GPU=on control whether to build LAMMPS with OpenMP support.
-
off (default)
-
on
+
on (default, if found)
+
off
@@ -1271,7 +1281,7 @@ providing the identical features and USER interface.

-
KISSFFT
+
KISS
FFTW3
FFTW2
MKL
@@ -1279,13 +1289,13 @@ providing the identical features and USER interface.

- PACK_ARRAY + FFT_PACK Optimization for FFT
-
PACK_ARRAY
-
PACK_POINTER
-
PACK_MEMCPY
+
array (default)
+
pointer
+
memcpy
@@ -1377,6 +1387,29 @@ TODO ### PYTHON Package +### USER-INTEL Package + + + + + + + + + + + + + + + + +
OptionDescriptionValues
INTEL_ARCHTarget architecture for USER-INTEL package +
+
cpu (default)
+
knl
+
+
### GPU Package The GPU package builds a support library which can either use OpenCL or CUDA as @@ -1396,8 +1429,8 @@ target API. API used by GPU package
-
OpenCL (default)
-
CUDA
+
opencl (default)
+
cuda
@@ -1406,9 +1439,9 @@ target API. Precision size used by GPU package kernels
-
SINGLE_DOUBLE
-
SINGLE_SINGLE
-
DOUBLE_DOUBLE
+
mixed (default)
+
single
+
double
@@ -1517,6 +1550,16 @@ Requires a Eigen3 installation + + WITH_JPEG + Enables/Disable JPEG support in LAMMPS + +
+
yes (default, if found)
+
no
+
+ + JPEG_INCLUDE_DIR @@ -1544,6 +1587,16 @@ Requires a Eigen3 installation + + WITH_PNG + Enables/Disable PNG support in LAMMPS + +
+
yes (default, if found)
+
no
+
+ + PNG_INCLUDE_DIR @@ -1572,6 +1625,16 @@ requires `gzip` to be in your `PATH` + + WITH_GZIP + Enables/Disable GZIP support in LAMMPS + +
+
yes (default, if found)
+
no
+
+ + GZIP_EXECUTABLE @@ -1594,6 +1657,16 @@ requires `ffmpeg` to be in your `PATH` + + WITH_FFMPEG + Enables/Disable FFMPEG support in LAMMPS + +
+
yes (default, if found)
+
no
+
+ + FFMPEG_EXECUTABLE @@ -1606,8 +1679,13 @@ requires `ffmpeg` to be in your `PATH` ## Compilers -By default, `cmake` will use your environment C/C++/Fortran compilers for a build. It uses the `CC`, `CXX` and `FC` environment variables to detect which compilers should be used. However, these values -will be cached after the first run of `cmake`. Subsequent runs of `cmake` will ignore changes in these environment variables. To ensure the correct values are used you avoid the cache by setting the `CMAKE_C_COMPILER`, `CMAKE_CXX_COMPILER`, `CMAKE_Fortran_COMPILER` options directly. +By default, `cmake` will use your environment C/C++/Fortran compilers for a +build. It uses the `CC`, `CXX` and `FC` environment variables to detect which +compilers should be used. However, these values will be cached after the first +run of `cmake`. Subsequent runs of `cmake` will ignore changes in these +environment variables. To ensure the correct values are used you avoid the +cache by setting the `CMAKE_C_COMPILER`, `CMAKE_CXX_COMPILER`, +`CMAKE_Fortran_COMPILER` options directly. @@ -1643,20 +1721,20 @@ will be cached after the first run of `cmake`. Subsequent runs of `cmake` will i ### Building with GNU Compilers ```bash -cmake ../cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran +cmake -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ -D CMAKE_Fortran_COMPILER=gfortran ../cmake ``` ### Building with Intel Compilers ```bash -cmake ../cmake -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DCMAKE_Fortran_COMPILER=ifort +cmake -D CMAKE_C_COMPILER=icc -D CMAKE_CXX_COMPILER=icpc -D CMAKE_Fortran_COMPILER=ifort ../cmake ``` ### Building with LLVM/Clang Compilers ```bash -cmake ../cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_Fortran_COMPILER=flang +cmake -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++ -D CMAKE_Fortran_COMPILER=flang ../cmake ``` From 023c8e5d6ee02a93f0d37e0bae7b5d5cfac68557 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 15 Aug 2018 11:31:22 -0400 Subject: [PATCH 495/675] Correct option values to lower case in README.md --- cmake/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cmake/README.md b/cmake/README.md index a401d5296e..85375cd2aa 100644 --- a/cmake/README.md +++ b/cmake/README.md @@ -1450,12 +1450,12 @@ target API. From b9e2b26b65d98a4614ffdcb8f758ff9c42a9c8d2 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 15 Aug 2018 12:22:06 -0400 Subject: [PATCH 496/675] Simplified change --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 2f38cdd689..d9e60a5208 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -314,7 +314,7 @@ if(PKG_VORONOI) if(BUILD_SHARED_LIBS) set(VORO_BUILD_OPTIONS "CFLAGS=-fPIC") else() - set(VORO_BUILD_OPTIONS "") + set(VORO_BUILD_OPTIONS) endif() ExternalProject_Add(voro_build From c9131cf1de48a52fc2ad86dd67ffcbd91eaeaf9a Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 15 Aug 2018 13:54:37 -0600 Subject: [PATCH 497/675] drop FFTW2 support, and change doc pages --- doc/src/Build_settings.txt | 32 ++++++++------------------- src/KSPACE/fft3d.cpp | 14 +++++++++++- src/KSPACE/fft3d.h | 44 +++++++++++++++++++------------------- 3 files changed, 44 insertions(+), 46 deletions(-) diff --git a/doc/src/Build_settings.txt b/doc/src/Build_settings.txt index 6c36420f77..db281c0857 100644 --- a/doc/src/Build_settings.txt +++ b/doc/src/Build_settings.txt @@ -33,27 +33,25 @@ LAMMPS can use them if they are available on your system. [CMake variables]: --D FFT=value # KISS or FFTW3 or FFTW2 or MKL, default is FFTW3 if found, else KISS +-D FFT=value # FFTW3 or MKL or KISS, default is FFTW3 if found, else KISS -D FFT_SINGLE=value # yes or no (default), no = double precision -D FFT_PACK=value # array (default) or pointer or memcpy :pre -NOTE: The values for the FFT variable must be in upper-case. -This is an exception to the rule that all CMake variables can -be specified with lower-case values. +NOTE: The values for the FFT variable must be in upper-case. This is +an exception to the rule that all CMake variables can be specified +with lower-case values. Usually these settings are all that is needed. If CMake cannot find the FFT library, you can set these variables: -D FFTW3_INCLUDE_DIRS=path # path to FFTW3 include files -D FFTW3_LIBRARIES=path # path to FFTW3 libraries --D FFTW2_INCLUDE_DIRS=path # ditto for FFTW2 --D FFTW2_LIBRARIES=path -D MKL_INCLUDE_DIRS=path # ditto for Intel MKL library -D MKL_LIBRARIES=path :pre [Makefile.machine settings]: -FFT_INC = -DFFT_FFTW3 # -DFFT_FFTW3, -DFFT_FFTW2, -DFFT_FFTW (same as -DFFT_FFTW3), -DFFT_MKL, or -DFFT_KISS +FFT_INC = -DFFT_FFTW3 # -DFFT_FFTW3, -DFFT_FFTW (same as -DFFT_FFTW3), -DFFT_MKL, or -DFFT_KISS # default is KISS if not specified FFT_INC = -DFFT_SINGLE # do not specify for double precision FFT_INC = -DFFT_PACK_ARRAY # or -DFFT_PACK_POINTER or -DFFT_PACK_MEMCPY :pre @@ -63,8 +61,6 @@ FFT_INC = -I/usr/local/include FFT_PATH = -L/usr/local/lib FFT_LIB = -lfftw3 # FFTW3 double precision FFT_LIB = -lfftw3 -lfftw3f # FFTW3 single precision -FFT_LIB = -lfftw # FFTW2 double precision, or -ldfftw -FFT_LIB = -lsfftw # FFTW2 single precision FFT_LIB = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core # MKL with Intel compiler FFT_LIB = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core # MKL with GNU compier :pre @@ -89,13 +85,9 @@ details. FFTW is a fast, portable FFT library that should also work on any platform and can be faster than the KISS FFT library. You can -download it from "www.fftw.org"_http://www.fftw.org. Both the -(obsolete) legacy version 2.1.X and the newer 3.X versions are -supported. +download it from "www.fftw.org"_http://www.fftw.org. LAMMPS requires +version 3.X; the legacy version 2.1.X is no longer supported. -NOTE: FFTW2 has not been updated since 1999 and has been declared -obsolete by its developers. - Building FFTW for your box should be as simple as ./configure; make; make install. The install command typically requires root privileges (e.g. invoke it via sudo), unless you specify a local directory with @@ -116,8 +108,8 @@ error is less than the difference in precision. Using the -DFFT_SINGLE setting trades off a little accuracy for reduced memory use and parallel communication costs for transposing 3d FFT data. -When using -DFFT_SINGLE with FFTW3 or FFTW2, you may need to build the -FFTW library a second time with support for single-precision. +When using -DFFT_SINGLE with FFTW3 you may need to build the FFTW +library a second time with support for single-precision. For FFTW3, do the following, which should produce the additional library libfftw3f.a @@ -125,12 +117,6 @@ library libfftw3f.a make clean ./configure --enable-single; make; make install :pre -For FFTW2, do the following, which should produce the additional -library libsfftw.a - -make clean -./configure --enable-float --enable-type-prefix; make; make install :pre - Performing 3d FFTs requires communication to transpose the 3d FFT grid. The data packing/unpacking for this can be done in one of 3 modes (ARRAY, POINTER, MEMCPY) as set by the FFT_PACK syntax above. diff --git a/src/KSPACE/fft3d.cpp b/src/KSPACE/fft3d.cpp index db44feabcc..7d3c8c83f2 100644 --- a/src/KSPACE/fft3d.cpp +++ b/src/KSPACE/fft3d.cpp @@ -104,11 +104,13 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan) DftiComputeForward(plan->handle_fast,data); else DftiComputeBackward(plan->handle_fast,data); + /* #elif defined(FFT_FFTW2) if (flag == -1) fftw(plan->plan_fast_forward,total/length,data,1,length,NULL,0,0); else - fftw(plan->plan_fast_backward,total/length,data,1,length,NULL,0,0); + fftw(plan->plan_fast_backward,total/length,data,1,length,NULL,0,0); + */ #elif defined(FFT_FFTW3) if (flag == -1) theplan=plan->plan_fast_forward; @@ -143,11 +145,13 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan) DftiComputeForward(plan->handle_mid,data); else DftiComputeBackward(plan->handle_mid,data); + /* #elif defined(FFT_FFTW2) if (flag == -1) fftw(plan->plan_mid_forward,total/length,data,1,length,NULL,0,0); else fftw(plan->plan_mid_backward,total/length,data,1,length,NULL,0,0); + */ #elif defined(FFT_FFTW3) if (flag == -1) theplan=plan->plan_mid_forward; @@ -182,11 +186,13 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan) DftiComputeForward(plan->handle_slow,data); else DftiComputeBackward(plan->handle_slow,data); + /* #elif defined(FFT_FFTW2) if (flag == -1) fftw(plan->plan_slow_forward,total/length,data,1,length,NULL,0,0); else fftw(plan->plan_slow_backward,total/length,data,1,length,NULL,0,0); + */ #elif defined(FFT_FFTW3) if (flag == -1) theplan=plan->plan_slow_forward; @@ -520,6 +526,7 @@ struct fft_plan_3d *fft_3d_create_plan( (out_khi-out_klo+1); } + /* #elif defined(FFT_FFTW2) plan->plan_fast_forward = @@ -561,6 +568,7 @@ struct fft_plan_3d *fft_3d_create_plan( plan->normnum = (out_ihi-out_ilo+1) * (out_jhi-out_jlo+1) * (out_khi-out_klo+1); } + */ #elif defined(FFT_FFTW3) plan->plan_fast_forward = @@ -660,6 +668,7 @@ void fft_3d_destroy_plan(struct fft_plan_3d *plan) DftiFreeDescriptor(&(plan->handle_fast)); DftiFreeDescriptor(&(plan->handle_mid)); DftiFreeDescriptor(&(plan->handle_slow)); + /* #elif defined(FFT_FFTW2) if (plan->plan_slow_forward != plan->plan_fast_forward && plan->plan_slow_forward != plan->plan_mid_forward) { @@ -672,6 +681,7 @@ void fft_3d_destroy_plan(struct fft_plan_3d *plan) } fftw_destroy_plan(plan->plan_fast_forward); fftw_destroy_plan(plan->plan_fast_backward); + */ #elif defined(FFT_FFTW3) FFTW_API(destroy_plan)(plan->plan_slow_forward); FFTW_API(destroy_plan)(plan->plan_slow_backward); @@ -809,6 +819,7 @@ void fft_1d_only(FFT_DATA *data, int nsize, int flag, struct fft_plan_3d *plan) DftiComputeBackward(plan->handle_mid,data); DftiComputeBackward(plan->handle_slow,data); } + /* #elif defined(FFT_FFTW2) if (flag == -1) { fftw(plan->plan_fast_forward,total1/length1,data,1,0,NULL,0,0); @@ -819,6 +830,7 @@ void fft_1d_only(FFT_DATA *data, int nsize, int flag, struct fft_plan_3d *plan) fftw(plan->plan_mid_backward,total2/length2,data,1,0,NULL,0,0); fftw(plan->plan_slow_backward,total3/length3,data,1,0,NULL,0,0); } + */ #elif defined(FFT_FFTW3) FFTW_API(plan) theplan; if (flag == -1) diff --git a/src/KSPACE/fft3d.h b/src/KSPACE/fft3d.h index ab3bca8358..a51818d986 100644 --- a/src/KSPACE/fft3d.h +++ b/src/KSPACE/fft3d.h @@ -24,7 +24,7 @@ typedef float FFT_SCALAR; typedef double FFT_SCALAR; #endif -// set default fftw library. switch to FFT_FFTW3 when convenient. +// if user set FFTW, it means FFTW3 #ifdef FFT_FFTW #define FFT_FFTW3 @@ -41,13 +41,13 @@ typedef double FFT_SCALAR; typedef float _Complex FFT_DATA; #define FFT_MKL_PREC DFTI_SINGLE -#elif defined(FFT_FFTW2) -#if defined(FFTW_SIZE) -#include "sfftw.h" -#else -#include "fftw.h" -#endif -typedef FFTW_COMPLEX FFT_DATA; +//#elif defined(FFT_FFTW2) +//#if defined(FFTW_SIZE) +//#include "sfftw.h" +//#else +//#include "fftw.h" +//#endif +//typedef FFTW_COMPLEX FFT_DATA; #elif defined(FFT_FFTW3) #include "fftw3.h" @@ -82,13 +82,13 @@ typedef struct kiss_fft_state* kiss_fft_cfg; typedef double _Complex FFT_DATA; #define FFT_MKL_PREC DFTI_DOUBLE -#elif defined(FFT_FFTW2) -#if defined(FFTW_SIZE) -#include "dfftw.h" -#else -#include "fftw.h" -#endif -typedef FFTW_COMPLEX FFT_DATA; +//#elif defined(FFT_FFTW2) +//#if defined(FFTW_SIZE) +//#include "dfftw.h" +//#else +//#include "fftw.h" +//#endif +//typedef FFTW_COMPLEX FFT_DATA; #elif defined(FFT_FFTW3) #include "fftw3.h" @@ -139,13 +139,13 @@ struct fft_plan_3d { DFTI_DESCRIPTOR *handle_fast; DFTI_DESCRIPTOR *handle_mid; DFTI_DESCRIPTOR *handle_slow; -#elif defined(FFT_FFTW2) - fftw_plan plan_fast_forward; - fftw_plan plan_fast_backward; - fftw_plan plan_mid_forward; - fftw_plan plan_mid_backward; - fftw_plan plan_slow_forward; - fftw_plan plan_slow_backward; +//#elif defined(FFT_FFTW2) +// fftw_plan plan_fast_forward; +// fftw_plan plan_fast_backward; +// fftw_plan plan_mid_forward; +// fftw_plan plan_mid_backward; +//fftw_plan plan_slow_forward; +//fftw_plan plan_slow_backward; #elif defined(FFT_FFTW3) FFTW_API(plan) plan_fast_forward; FFTW_API(plan) plan_fast_backward; From 6069d392a3dafa819786b0531383e3bffce12a2a Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 15 Aug 2018 16:44:31 -0400 Subject: [PATCH 498/675] favor qsort over mergesort for stable release --- src/lmptype.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lmptype.h b/src/lmptype.h index 2be1d2ac38..7e359d2abe 100644 --- a/src/lmptype.h +++ b/src/lmptype.h @@ -46,6 +46,13 @@ #define PRId64 "ld" #endif +// favor qsort over mergesort for stable release +// TODO: to be removed after stable release + +#ifndef LMP_QSORT +#define LMP_QSORT +#endif + namespace LAMMPS_NS { // enum used for KOKKOS host/device flags From 9e154abba01c34a03c9679cc3f16c50453b67d39 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 15 Aug 2018 14:55:48 -0600 Subject: [PATCH 499/675] remove pre-install of 3 default packages from docs --- doc/src/Build_package.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/src/Build_package.txt b/doc/src/Build_package.txt index 45626dbbae..dc8918c884 100644 --- a/doc/src/Build_package.txt +++ b/doc/src/Build_package.txt @@ -121,10 +121,14 @@ right thing. Individual files are only included if their dependencies are already included. Likewise, if a package is excluded, other files dependent on that package are also excluded. -When you download a LAMMPS tarball, three packages are pre-installed -in the src directory: KSPACE, MANYBODY, MOLECULE. This is because -they are so commonly used. When you download LAMMPS source files from -the Git or SVN repositories, no packages are pre-installed. +When you download a LAMMPS tarball or download LAMMPS source files +from the Git or SVN repositories, no packages are pre-installed in the +src directory. + +NOTE: Prior to Aug 2018, if you downloaded a tarball, 3 packages +(KSPACE, MANYBODY, MOLECULE) were pre-installed in the src directory. +That is no longer the case, so that CMake will build as-is without the +need to un-install those packages. :line From 46f1e63a196dace70150bb50297ef279447706b2 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 15 Aug 2018 15:14:01 -0600 Subject: [PATCH 500/675] update to Authors for CMake addition --- doc/src/Intro_authors.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/Intro_authors.txt b/doc/src/Intro_authors.txt index 8bb0fa9c22..06c86f6e3c 100644 --- a/doc/src/Intro_authors.txt +++ b/doc/src/Intro_authors.txt @@ -63,6 +63,7 @@ Jim Belak and Roy Pollock (LLNL) :ul Here is a timeline for when various individuals contributed to a new feature or command or tool added to LAMMPS: +Aug18 : CMake build option for LAMMPS : Christoph Junghans (LANL), Richard Berger, and Axel Kohlmeyer (Temple U) Jul18 : DEM polygonal and polyhedron particles : Trung Nguyen (Northwestern U) Jun18 : SPIN package : Julien Tranchida (Sandia and CEA) Jun18 : compute entropy/atom : Pablo Piaggi (EPLF, Switzerland) From ccc9fcda775d1751c9cd64a4d22f2733a9c27918 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 15 Aug 2018 16:22:26 -0600 Subject: [PATCH 501/675] tweaks to doc page formatting --- doc/src/Build.txt | 13 +------------ doc/src/Build_basics.txt | 10 +++++----- doc/src/Build_settings.txt | 14 +++++++------- doc/src/Intro_authors.txt | 2 +- doc/src/Modify.txt | 14 ++------------ doc/src/Python_head.txt | 14 ++------------ doc/src/Speed.txt | 19 +++++++------------ 7 files changed, 25 insertions(+), 61 deletions(-) diff --git a/doc/src/Build.txt b/doc/src/Build.txt index 218664897f..1deaa1bd36 100644 --- a/doc/src/Build.txt +++ b/doc/src/Build.txt @@ -24,17 +24,9 @@ as described on the "Install"_Install.html doc page. Build_cmake Build_make Build_link - -.. toctree:: - :maxdepth: 1 - Build_basics Build_settings Build_package - -.. toctree:: - :maxdepth: 1 - Build_extras END_RST --> @@ -43,10 +35,7 @@ END_RST --> "Build LAMMPS with CMake"_Build_cmake.html "Build LAMMPS with make"_Build_make.html -"Link LAMMPS as a library to another code"_Build_link.html :all(b) - -Build options: - +"Link LAMMPS as a library to another code"_Build_link.html "Basic build options: serial/parallel, compilers, executable/library"_Build_basics.html "Optional build settings"_Build_settings.html :all(b) "Include packages in build"_Build_package.html diff --git a/doc/src/Build_basics.txt b/doc/src/Build_basics.txt index 425266a35f..cee78aced3 100644 --- a/doc/src/Build_basics.txt +++ b/doc/src/Build_basics.txt @@ -20,7 +20,7 @@ CMake and make: :line -Serial vs parallel build :h3,link(serial) +Serial vs parallel build :h4,link(serial) LAMMPS can be built to run in parallel using the ubiquitous "MPI (message-passing @@ -118,7 +118,7 @@ please refer to its documentation. :line -Choice of compiler and compile/link options :h3,link(compile) +Choice of compiler and compile/link options :h4,link(compile) The choice of compiler and compiler flags can be important for performance. Vendor compilers can produce faster code than @@ -210,7 +210,7 @@ Makefile.kokkos_phi # KOKKOS package for KNLs (OpenMP) :pre :line -Build LAMMPS as an executable or a library :h3,link(exe) +Build LAMMPS as an executable or a library :h4,link(exe) LAMMPS can be built as either an executable or as a static or shared library. The LAMMPS library can be called from another application or @@ -271,7 +271,7 @@ should be the file /usr/local/lib/libmpich.so. :line -Build the LAMMPS documentation :h3,link(doc) +Build the LAMMPS documentation :h4,link(doc) [CMake variable]: @@ -294,7 +294,7 @@ lammps/doc dir to see other options. :line -Install LAMMPS after a build :h3,link(install) +Install LAMMPS after a build :h4,link(install) After building LAMMPS, you may wish to copy the LAMMPS executable of library, along with other LAMMPS files (library header, doc files) to diff --git a/doc/src/Build_settings.txt b/doc/src/Build_settings.txt index db281c0857..773217e3a0 100644 --- a/doc/src/Build_settings.txt +++ b/doc/src/Build_settings.txt @@ -23,7 +23,7 @@ explain how to do this for building both with CMake and make. :line -FFT library :h3,link(fft) +FFT library :h4,link(fft) When the KSPACE package is included in a LAMMPS build, the "kspace_style pppm"_kspace_style.html command performs 3d FFTs which @@ -126,7 +126,7 @@ ARRAY mode. :line -Size of LAMMPS data types :h3,link(size) +Size of LAMMPS data types :h4,link(size) LAMMPS has a few integer data types which can be defined as 4-byte or 8-byte integers. The default setting of "smallbig" is almost always @@ -189,7 +189,7 @@ in whichever lib/gpu/Makefile is used must be the same as above. :line -Output of JPG, PNG, and movie files :h3,link(graphics) +Output of JPG, PNG, and movie files :h4,link(graphics) The "dump image"_dump_image.html command has options to output JPEG or PNG image files. Likewise the "dump movie"_dump_image.html command @@ -245,7 +245,7 @@ crash. :line -Read or write compressed files :h3,link(gzip) +Read or write compressed files :h4,link(gzip) If this option is enabled, large files can be read or written with gzip compression by several LAMMPS commands, including @@ -276,7 +276,7 @@ what the "COMPRESS package"_Packages_details.html#PKG-COMPRESS enables. :line -Memory allocation alignment :h3,link(align) +Memory allocation alignment :h4,link(align) This setting enables the use of the posix_memalign() call instead of malloc() when LAMMPS allocates large chunks or memory. This can make @@ -308,7 +308,7 @@ manages its dynamical memory. :line -Workaround for long long integers :h3,link(longlong) +Workaround for long long integers :h4,link(longlong) If your system or MPI version does not recognize "long long" data types, the following setting will be needed. It converts "long long" @@ -325,7 +325,7 @@ LMP_INC = -DLAMMPS_LONGLONG_TO_LONG :pre :line -Exception handling when using LAMMPS as a library :h3,link(exceptions) +Exception handling when using LAMMPS as a library :h4,link(exceptions) This setting is useful when external codes drive LAMMPS as a library. With this option enabled LAMMPS errors do not kill the caller. diff --git a/doc/src/Intro_authors.txt b/doc/src/Intro_authors.txt index 06c86f6e3c..3e9c163eb2 100644 --- a/doc/src/Intro_authors.txt +++ b/doc/src/Intro_authors.txt @@ -30,7 +30,7 @@ the packages they have written are somewhat unique to LAMMPS and the code would not be as general-purpose as it is without their expertise and efforts. -Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CG-CMM, USER-OMP, USER-COLVARS, USER-MOLFILE, USER-QMMM packages +Richard Berger (Temple U), GitHub site and Sphinx doc pages Roy Pollock (LLNL), Ewald and PPPM solvers Mike Brown (ORNL), brownw at ornl.gov, GPU and USER-INTEL packages Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential diff --git a/doc/src/Modify.txt b/doc/src/Modify.txt index 666aaba8a7..38fbf17dd9 100644 --- a/doc/src/Modify.txt +++ b/doc/src/Modify.txt @@ -38,19 +38,11 @@ contribute"_Modify_contribute.html doc page. Modify_compute Modify_fix Modify_command - -.. toctree:: - :maxdepth: 1 - Modify_dump Modify_kspace Modify_min Modify_region Modify_body - -.. toctree:: - :maxdepth: 1 - Modify_thermo Modify_variable @@ -66,14 +58,12 @@ END_RST --> "Bond, angle, dihedral, improper styles"_Modify_bond.html "Compute styles"_Modify_compute.html "Fix styles"_Modify_fix.html -"Input script command styles"_Modify_command.html :all(b) - +"Input script command styles"_Modify_command.html "Dump styles"_Modify_dump.html "Kspace styles"_Modify_kspace.html "Minimization styles"_Modify_min.html "Region styles"_Modify_region.html -"Body styles"_Modify_body.html :all(b) - +"Body styles"_Modify_body.html "Thermodynamic output options"_Modify_thermo.html "Variable options"_Modify_variable.html :all(b) diff --git a/doc/src/Python_head.txt b/doc/src/Python_head.txt index b5d33c5daa..1f02368429 100644 --- a/doc/src/Python_head.txt +++ b/doc/src/Python_head.txt @@ -19,10 +19,6 @@ used together. :maxdepth: 1 Python_overview - -.. toctree:: - :maxdepth: 1 - Python_run Python_shlib Python_install @@ -31,18 +27,13 @@ used together. Python_library Python_pylammps Python_examples - -.. toctree:: - :maxdepth: 1 - Python_call END_RST --> -"Overview of Python and LAMMPS"_Python_overview.html :all(b) - +"Overview of Python and LAMMPS"_Python_overview.html "Run LAMMPS from Python"_Python_run.html "Build LAMMPS as a shared library"_Python_shlib.html "Install LAMMPS in Python"_Python_install.html @@ -50,8 +41,7 @@ END_RST --> "Test the Python/LAMMPS interface"_Python_test.html "Python library interface"_Python_library.html "PyLammps interface"_Python_pylammps.html -"Example Python scripts that use LAMMPS"_Python_examples.html :all(b) - +"Example Python scripts that use LAMMPS"_Python_examples.html "Call Python from a LAMMPS input script"_Python_call.html :all(b) diff --git a/doc/src/Speed.txt b/doc/src/Speed.txt index 7eac11ffa5..17d44e8365 100644 --- a/doc/src/Speed.txt +++ b/doc/src/Speed.txt @@ -35,16 +35,13 @@ hardware platforms. Speed_bench Speed_measure - -.. toctree:: - :maxdepth: 1 - Speed_tips - -.. toctree:: - :maxdepth: 1 - Speed_packages + Speed_gpu + Speed_intel + Speed_kokkos + Speed_omp + Speed_opt Speed_compare END_RST --> @@ -52,10 +49,8 @@ END_RST --> "Benchmarks"_Speed_bench.html -"Measuring performance"_Speed_measure.html :all(b) - -"General tips"_Speed_tips.html :all(b) - +"Measuring performance"_Speed_measure.html +"General tips"_Speed_tips.html "Accelerator packages"_Speed_packages.html "GPU package"_Speed_gpu.html "USER-INTEL package"_Speed_intel.html From 07cd194e27f7a8f3e68cb1031ee78c188db3c4e3 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 15 Aug 2018 16:27:39 -0600 Subject: [PATCH 502/675] tweaks to Manual formatting --- doc/src/Build.txt | 17 +++-------------- doc/src/Build_basics.txt | 10 +++++----- doc/src/Build_settings.txt | 14 +++++++------- doc/src/Intro_authors.txt | 2 +- doc/src/Modify.txt | 14 ++------------ doc/src/Python_head.txt | 14 ++------------ doc/src/Speed.txt | 19 +++++++------------ 7 files changed, 27 insertions(+), 63 deletions(-) diff --git a/doc/src/Build.txt b/doc/src/Build.txt index 218664897f..e62268b84b 100644 --- a/doc/src/Build.txt +++ b/doc/src/Build.txt @@ -24,17 +24,9 @@ as described on the "Install"_Install.html doc page. Build_cmake Build_make Build_link - -.. toctree:: - :maxdepth: 1 - Build_basics Build_settings Build_package - -.. toctree:: - :maxdepth: 1 - Build_extras END_RST --> @@ -43,12 +35,9 @@ END_RST --> "Build LAMMPS with CMake"_Build_cmake.html "Build LAMMPS with make"_Build_make.html -"Link LAMMPS as a library to another code"_Build_link.html :all(b) - -Build options: - -"Basic build options: serial/parallel, compilers, executable/library"_Build_basics.html -"Optional build settings"_Build_settings.html :all(b) +"Link LAMMPS as a library to another code"_Build_link.html +"Basic build options"_Build_basics.html +"Optional build settings"_Build_settings.html "Include packages in build"_Build_package.html "Packages with extra build options"_Build_extras.html :all(b) diff --git a/doc/src/Build_basics.txt b/doc/src/Build_basics.txt index 425266a35f..cee78aced3 100644 --- a/doc/src/Build_basics.txt +++ b/doc/src/Build_basics.txt @@ -20,7 +20,7 @@ CMake and make: :line -Serial vs parallel build :h3,link(serial) +Serial vs parallel build :h4,link(serial) LAMMPS can be built to run in parallel using the ubiquitous "MPI (message-passing @@ -118,7 +118,7 @@ please refer to its documentation. :line -Choice of compiler and compile/link options :h3,link(compile) +Choice of compiler and compile/link options :h4,link(compile) The choice of compiler and compiler flags can be important for performance. Vendor compilers can produce faster code than @@ -210,7 +210,7 @@ Makefile.kokkos_phi # KOKKOS package for KNLs (OpenMP) :pre :line -Build LAMMPS as an executable or a library :h3,link(exe) +Build LAMMPS as an executable or a library :h4,link(exe) LAMMPS can be built as either an executable or as a static or shared library. The LAMMPS library can be called from another application or @@ -271,7 +271,7 @@ should be the file /usr/local/lib/libmpich.so. :line -Build the LAMMPS documentation :h3,link(doc) +Build the LAMMPS documentation :h4,link(doc) [CMake variable]: @@ -294,7 +294,7 @@ lammps/doc dir to see other options. :line -Install LAMMPS after a build :h3,link(install) +Install LAMMPS after a build :h4,link(install) After building LAMMPS, you may wish to copy the LAMMPS executable of library, along with other LAMMPS files (library header, doc files) to diff --git a/doc/src/Build_settings.txt b/doc/src/Build_settings.txt index db281c0857..773217e3a0 100644 --- a/doc/src/Build_settings.txt +++ b/doc/src/Build_settings.txt @@ -23,7 +23,7 @@ explain how to do this for building both with CMake and make. :line -FFT library :h3,link(fft) +FFT library :h4,link(fft) When the KSPACE package is included in a LAMMPS build, the "kspace_style pppm"_kspace_style.html command performs 3d FFTs which @@ -126,7 +126,7 @@ ARRAY mode. :line -Size of LAMMPS data types :h3,link(size) +Size of LAMMPS data types :h4,link(size) LAMMPS has a few integer data types which can be defined as 4-byte or 8-byte integers. The default setting of "smallbig" is almost always @@ -189,7 +189,7 @@ in whichever lib/gpu/Makefile is used must be the same as above. :line -Output of JPG, PNG, and movie files :h3,link(graphics) +Output of JPG, PNG, and movie files :h4,link(graphics) The "dump image"_dump_image.html command has options to output JPEG or PNG image files. Likewise the "dump movie"_dump_image.html command @@ -245,7 +245,7 @@ crash. :line -Read or write compressed files :h3,link(gzip) +Read or write compressed files :h4,link(gzip) If this option is enabled, large files can be read or written with gzip compression by several LAMMPS commands, including @@ -276,7 +276,7 @@ what the "COMPRESS package"_Packages_details.html#PKG-COMPRESS enables. :line -Memory allocation alignment :h3,link(align) +Memory allocation alignment :h4,link(align) This setting enables the use of the posix_memalign() call instead of malloc() when LAMMPS allocates large chunks or memory. This can make @@ -308,7 +308,7 @@ manages its dynamical memory. :line -Workaround for long long integers :h3,link(longlong) +Workaround for long long integers :h4,link(longlong) If your system or MPI version does not recognize "long long" data types, the following setting will be needed. It converts "long long" @@ -325,7 +325,7 @@ LMP_INC = -DLAMMPS_LONGLONG_TO_LONG :pre :line -Exception handling when using LAMMPS as a library :h3,link(exceptions) +Exception handling when using LAMMPS as a library :h4,link(exceptions) This setting is useful when external codes drive LAMMPS as a library. With this option enabled LAMMPS errors do not kill the caller. diff --git a/doc/src/Intro_authors.txt b/doc/src/Intro_authors.txt index 06c86f6e3c..3e9c163eb2 100644 --- a/doc/src/Intro_authors.txt +++ b/doc/src/Intro_authors.txt @@ -30,7 +30,7 @@ the packages they have written are somewhat unique to LAMMPS and the code would not be as general-purpose as it is without their expertise and efforts. -Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CG-CMM, USER-OMP, USER-COLVARS, USER-MOLFILE, USER-QMMM packages +Richard Berger (Temple U), GitHub site and Sphinx doc pages Roy Pollock (LLNL), Ewald and PPPM solvers Mike Brown (ORNL), brownw at ornl.gov, GPU and USER-INTEL packages Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential diff --git a/doc/src/Modify.txt b/doc/src/Modify.txt index 666aaba8a7..38fbf17dd9 100644 --- a/doc/src/Modify.txt +++ b/doc/src/Modify.txt @@ -38,19 +38,11 @@ contribute"_Modify_contribute.html doc page. Modify_compute Modify_fix Modify_command - -.. toctree:: - :maxdepth: 1 - Modify_dump Modify_kspace Modify_min Modify_region Modify_body - -.. toctree:: - :maxdepth: 1 - Modify_thermo Modify_variable @@ -66,14 +58,12 @@ END_RST --> "Bond, angle, dihedral, improper styles"_Modify_bond.html "Compute styles"_Modify_compute.html "Fix styles"_Modify_fix.html -"Input script command styles"_Modify_command.html :all(b) - +"Input script command styles"_Modify_command.html "Dump styles"_Modify_dump.html "Kspace styles"_Modify_kspace.html "Minimization styles"_Modify_min.html "Region styles"_Modify_region.html -"Body styles"_Modify_body.html :all(b) - +"Body styles"_Modify_body.html "Thermodynamic output options"_Modify_thermo.html "Variable options"_Modify_variable.html :all(b) diff --git a/doc/src/Python_head.txt b/doc/src/Python_head.txt index b5d33c5daa..1f02368429 100644 --- a/doc/src/Python_head.txt +++ b/doc/src/Python_head.txt @@ -19,10 +19,6 @@ used together. :maxdepth: 1 Python_overview - -.. toctree:: - :maxdepth: 1 - Python_run Python_shlib Python_install @@ -31,18 +27,13 @@ used together. Python_library Python_pylammps Python_examples - -.. toctree:: - :maxdepth: 1 - Python_call END_RST --> -"Overview of Python and LAMMPS"_Python_overview.html :all(b) - +"Overview of Python and LAMMPS"_Python_overview.html "Run LAMMPS from Python"_Python_run.html "Build LAMMPS as a shared library"_Python_shlib.html "Install LAMMPS in Python"_Python_install.html @@ -50,8 +41,7 @@ END_RST --> "Test the Python/LAMMPS interface"_Python_test.html "Python library interface"_Python_library.html "PyLammps interface"_Python_pylammps.html -"Example Python scripts that use LAMMPS"_Python_examples.html :all(b) - +"Example Python scripts that use LAMMPS"_Python_examples.html "Call Python from a LAMMPS input script"_Python_call.html :all(b) diff --git a/doc/src/Speed.txt b/doc/src/Speed.txt index 7eac11ffa5..17d44e8365 100644 --- a/doc/src/Speed.txt +++ b/doc/src/Speed.txt @@ -35,16 +35,13 @@ hardware platforms. Speed_bench Speed_measure - -.. toctree:: - :maxdepth: 1 - Speed_tips - -.. toctree:: - :maxdepth: 1 - Speed_packages + Speed_gpu + Speed_intel + Speed_kokkos + Speed_omp + Speed_opt Speed_compare END_RST --> @@ -52,10 +49,8 @@ END_RST --> "Benchmarks"_Speed_bench.html -"Measuring performance"_Speed_measure.html :all(b) - -"General tips"_Speed_tips.html :all(b) - +"Measuring performance"_Speed_measure.html +"General tips"_Speed_tips.html "Accelerator packages"_Speed_packages.html "GPU package"_Speed_gpu.html "USER-INTEL package"_Speed_intel.html From 2137668c359201155be02be944a1c33206d0ee8d Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 15 Aug 2018 16:26:54 -0600 Subject: [PATCH 503/675] cmake: convert FFT and INTEL_ARCH --- cmake/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 12a496cc9f..9d816afa95 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -251,6 +251,7 @@ if(PKG_KSPACE) set(FFT_VALUES KISS ${FFTW} MKL) set_property(CACHE FFT PROPERTY STRINGS ${FFT_VALUES}) validate_option(FFT FFT_VALUES) + string(TOUPPER ${FFT} FFT) if(NOT FFT STREQUAL "KISS") find_package(${FFT} REQUIRED) if(NOT FFT STREQUAL "FFTW3F") @@ -790,6 +791,7 @@ if(PKG_USER-INTEL) set(INTEL_ARCH_VALUES cpu knl) set_property(CACHE INTEL_ARCH PROPERTY STRINGS ${INTEL_ARCH_VALUES}) validate_option(INTEL_ARCH INTEL_ARCH_VALUES) + string(TOLOWER ${INTEL_ARCH} INTEL_ARCH) if(INTEL_ARCH STREQUAL "knl") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -xHost -qopenmp -qoffload") From 71227cb3c6f7b96b0b0ee2549b2d17649cf4eab4 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 15 Aug 2018 18:06:41 -0600 Subject: [PATCH 504/675] cmake: convert INTEL_ARCH to upper --- cmake/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 9d816afa95..fd06070ebf 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -791,9 +791,9 @@ if(PKG_USER-INTEL) set(INTEL_ARCH_VALUES cpu knl) set_property(CACHE INTEL_ARCH PROPERTY STRINGS ${INTEL_ARCH_VALUES}) validate_option(INTEL_ARCH INTEL_ARCH_VALUES) - string(TOLOWER ${INTEL_ARCH} INTEL_ARCH) + string(TOUPPER ${INTEL_ARCH} INTEL_ARCH) - if(INTEL_ARCH STREQUAL "knl") + if(INTEL_ARCH STREQUAL "CPU") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -xHost -qopenmp -qoffload") set(MIC_OPTIONS "-qoffload-option,mic,compiler,\"-fp-model fast=2 -mGLOB_default_function_attrs=\\\"gather_scatter_loop_unroll=4\\\"\"") add_compile_options(-xMIC-AVX512 -qoffload -fno-alias -ansi-alias -restrict -qoverride-limits ${MIC_OPTIONS}) From 481924fccc1f4610b1edc156eb341cd98bfda4d9 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 16 Aug 2018 05:50:10 -0600 Subject: [PATCH 505/675] Update CMakeLists.txt --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index fd06070ebf..68091e4ba7 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -793,7 +793,7 @@ if(PKG_USER-INTEL) validate_option(INTEL_ARCH INTEL_ARCH_VALUES) string(TOUPPER ${INTEL_ARCH} INTEL_ARCH) - if(INTEL_ARCH STREQUAL "CPU") + if(INTEL_ARCH STREQUAL "KNL") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -xHost -qopenmp -qoffload") set(MIC_OPTIONS "-qoffload-option,mic,compiler,\"-fp-model fast=2 -mGLOB_default_function_attrs=\\\"gather_scatter_loop_unroll=4\\\"\"") add_compile_options(-xMIC-AVX512 -qoffload -fno-alias -ansi-alias -restrict -qoverride-limits ${MIC_OPTIONS}) From 8cea92d0bd292600a9fc59e667b4fb89cba6c6bc Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 16 Aug 2018 09:24:55 -0600 Subject: [PATCH 506/675] few more formatting issues --- doc/src/Build_extras.txt | 11 +++++------ doc/src/Build_package.txt | 1 + doc/src/Intro_authors.txt | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index a3a05ed50e..6bbf504496 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -25,6 +25,7 @@ You may need to tell LAMMPS where it is found on your system. This is the list of packages that may require additional steps. +"COMPRESS"_#compress, "GPU"_#gpu, "KIM"_#kim, "KOKKOS"_#kokkos, @@ -231,7 +232,7 @@ Pascal61 = NVIDIA Pascal generation CC 6.1 :ul For multicore CPUs using OpenMP, set these 2 variables. --D KOKKOS_ARCH=archCPU # archCPU = CPU from list above :pre +-D KOKKOS_ARCH=archCPU # archCPU = CPU from list above -D KOKKOS_ENABLE_OPENMP=yes :pre For Intel KNLs using OpenMP, set these 2 variables: @@ -710,16 +711,14 @@ Makefile.knl files for examples. For CPUs: OPTFLAGS = -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits -qopt-zmm-usage=high -CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \ - -fno-alias -ansi-alias -restrict $(OPTFLAGS) +CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload -fno-alias -ansi-alias -restrict $(OPTFLAGS) LINKFLAGS = -g -qopenmp $(OPTFLAGS) LIB = -ltbbmalloc :pre For KNLs: OPTFLAGS = -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits -CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \ - -fno-alias -ansi-alias -restrict $(OPTFLAGS) +CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload -fno-alias -ansi-alias -restrict $(OPTFLAGS) LINKFLAGS = -g -qopenmp $(OPTFLAGS) LIB = -ltbbmalloc :pre @@ -850,7 +849,7 @@ lib/quip/README file for details on how to do this. [CMake build]: --D QUIP_LIBRARIES=path # path to libquip.a (only needed if a custom location) +-D QUIP_LIBRARIES=path # path to libquip.a (only needed if a custom location) :pre CMake will not download and build the QUIP library. But once you have done that, a CMake build of LAMMPS with "-D PKG_USER-QUIP=yes" should diff --git a/doc/src/Build_package.txt b/doc/src/Build_package.txt index dc8918c884..0c7d1917de 100644 --- a/doc/src/Build_package.txt +++ b/doc/src/Build_package.txt @@ -36,6 +36,7 @@ steps, as explained on the "Build extras"_Build_extras.html doc page. These links take you to the extra instructions for those select packages: +"COMPRESS"_Build_extras.html#compress, "GPU"_Build_extras.html#gpu, "KIM"_Build_extras.html#kim, "KOKKOS"_Build_extras.html#kokkos, diff --git a/doc/src/Intro_authors.txt b/doc/src/Intro_authors.txt index 3e9c163eb2..5d9efb3077 100644 --- a/doc/src/Intro_authors.txt +++ b/doc/src/Intro_authors.txt @@ -30,7 +30,7 @@ the packages they have written are somewhat unique to LAMMPS and the code would not be as general-purpose as it is without their expertise and efforts. -Richard Berger (Temple U), GitHub site and Sphinx doc pages +Richard Berger (Temple U), Python interface, GitHub site, Sphinx doc pages Roy Pollock (LLNL), Ewald and PPPM solvers Mike Brown (ORNL), brownw at ornl.gov, GPU and USER-INTEL packages Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential From b55f3162f49325272eabd69cc6fd49afe86d97cf Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 16 Aug 2018 09:41:04 -0600 Subject: [PATCH 507/675] date got lost somehow --- doc/src/Manual.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index c4dbf0415e..189ea795a3 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ LAMMPS Users Manual - + @@ -21,7 +21,7 @@ :line LAMMPS Documentation :c,h1 -2 Aug 2018 version :c,h2 +15 Aug 2018 version :c,h2 "What is a LAMMPS version?"_Manual_version.html From 47f02b323a64b22d055eeda71610a759d0d1f92d Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 16 Aug 2018 12:39:48 -0400 Subject: [PATCH 508/675] Undo change, would create inconsistent tocs --- doc/src/Speed.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/doc/src/Speed.txt b/doc/src/Speed.txt index 17d44e8365..dd2052bac1 100644 --- a/doc/src/Speed.txt +++ b/doc/src/Speed.txt @@ -37,11 +37,6 @@ hardware platforms. Speed_measure Speed_tips Speed_packages - Speed_gpu - Speed_intel - Speed_kokkos - Speed_omp - Speed_opt Speed_compare END_RST --> From b7d64e0374dab74ce40df4519cda5b5f26fef97b Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Thu, 16 Aug 2018 11:55:57 -0600 Subject: [PATCH 509/675] patch 16Aug18 --- doc/src/Manual.txt | 4 ++-- src/version.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 189ea795a3..9bd346e8a0 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ LAMMPS Users Manual - + @@ -21,7 +21,7 @@ :line LAMMPS Documentation :c,h1 -15 Aug 2018 version :c,h2 +16 Aug 2018 version :c,h2 "What is a LAMMPS version?"_Manual_version.html diff --git a/src/version.h b/src/version.h index b95c259dd6..db73df1ad1 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "2 Aug 2018" +#define LAMMPS_VERSION "16 Aug 2018" From 4c3bd3909e25095edc96c0a187e949b9a66869de Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 16 Aug 2018 18:13:24 -0400 Subject: [PATCH 510/675] Add missing source file for KOKKOS with KSPACE --- cmake/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 68091e4ba7..0d8a4894bd 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -731,6 +731,11 @@ if(PKG_KOKKOS) ${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.cpp ${KOKKOS_PKG_SOURCES_DIR}/domain_kokkos.cpp ${KOKKOS_PKG_SOURCES_DIR}/modify_kokkos.cpp) + + if(PKG_KSPACE) + list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/gridcomm_kokkos.cpp) + endif() + set_property(GLOBAL PROPERTY "KOKKOS_PKG_SOURCES" "${KOKKOS_PKG_SOURCES}") # detects styles which have KOKKOS version From e05d4718699466351148bf28f06d20f61fa2aa4f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 16 Aug 2018 22:33:13 -0400 Subject: [PATCH 511/675] fix typo --- doc/src/Manual_build.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Manual_build.txt b/doc/src/Manual_build.txt index 747a55a729..a6b881cb79 100644 --- a/doc/src/Manual_build.txt +++ b/doc/src/Manual_build.txt @@ -81,7 +81,7 @@ sudo yum install python3-virtualenv :pre Fedora (since version 22) :h4 -sudo dnf install python3-virtualenv pre +sudo dnf install python3-virtualenv :pre MacOS X :h4 From 73540e6b44caf5d1c6b33a78115888edad13569d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 16 Aug 2018 22:33:38 -0400 Subject: [PATCH 512/675] remove unneeded comments --- src/USER-COLVARS/fix_colvars.h | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/USER-COLVARS/fix_colvars.h b/src/USER-COLVARS/fix_colvars.h index 509eca5de3..3029ba9db5 100644 --- a/src/USER-COLVARS/fix_colvars.h +++ b/src/USER-COLVARS/fix_colvars.h @@ -34,7 +34,6 @@ FixStyle(colvars,FixColvars) #define LMP_FIX_COLVARS_H #include "fix.h" -#include // forward declaration class colvarproxy_lammps; @@ -77,13 +76,6 @@ class FixColvars : public Fix { int num_coords; // total number of atoms controlled by this fix tagint *taglist; // list of all atom IDs referenced by colvars. - // TODO get rid of these - // std::vector *coords; // coordinates of colvar atoms - // std::vector *forces; // received forces of colvar atoms - // std::vector *oforce; // old total forces of colvar atoms - // std::vector *masses; - // std::vector *charges; - int nmax; // size of atom communication buffer. int size_one; // bytes per atom in communication buffer. struct commdata *comm_buf; // communication buffer From a8c687aee848f6822a134a94fa79f9ed48545219 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 16 Aug 2018 22:41:48 -0400 Subject: [PATCH 513/675] cleaner formatting in Sphinx for package tables --- doc/src/Packages_standard.txt | 52 +++++++++++++++---------------- doc/src/Packages_user.txt | 58 +++++++++++++++++------------------ 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/doc/src/Packages_standard.txt b/doc/src/Packages_standard.txt index a79caae141..55d0d616f4 100644 --- a/doc/src/Packages_standard.txt +++ b/doc/src/Packages_standard.txt @@ -25,42 +25,42 @@ refers to the examples/USER/atc directory. The "Library" column indicates whether an extra library is needed to build and use the package: -dash = no library +no = no library sys = system library: you likely have it on your machine int = internal library: provided with LAMMPS, but you may need to build it ext = external library: you will need to download and install it on your machine :ul Package, Description, Doc page, Example, Library -"ASPHERE"_Packages_details.html#PKG-ASPHERE, aspherical particle models, "Howto spherical"_Howto_spherical.html, ellipse, - -"BODY"_Packages_details.html#PKG-BODY, body-style particles, "Howto body"_Howto_body.html, body, - -"CLASS2"_Packages_details.html#PKG-CLASS2, class 2 force fields, "pair_style lj/class2"_pair_class2.html, -, - -"COLLOID"_Packages_details.html#PKG-COLLOID, colloidal particles, "atom_style colloid"_atom_style.html, colloid, - -"COMPRESS"_Packages_details.html#PKG-COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys -"CORESHELL"_Packages_details.html#PKG-CORESHELL, adiabatic core/shell model, "Howto coreshell"_Howto_coreshell.html, coreshell, - -"DIPOLE"_Packages_details.html#PKG-DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, - +"ASPHERE"_Packages_details.html#PKG-ASPHERE, aspherical particle models, "Howto spherical"_Howto_spherical.html, ellipse, no +"BODY"_Packages_details.html#PKG-BODY, body-style particles, "Howto body"_Howto_body.html, body, no +"CLASS2"_Packages_details.html#PKG-CLASS2, class 2 force fields, "pair_style lj/class2"_pair_class2.html, n/a, no +"COLLOID"_Packages_details.html#PKG-COLLOID, colloidal particles, "atom_style colloid"_atom_style.html, colloid, no +"COMPRESS"_Packages_details.html#PKG-COMPRESS, I/O compression, "dump */gz"_dump.html, n/a, sys +"CORESHELL"_Packages_details.html#PKG-CORESHELL, adiabatic core/shell model, "Howto coreshell"_Howto_coreshell.html, coreshell, no +"DIPOLE"_Packages_details.html#PKG-DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, no "GPU"_Packages_details.html#PKG-GPU, GPU-enabled styles, "Section gpu"_Speed_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int -"GRANULAR"_Packages_details.html#PKG-GRANULAR, granular systems, "Howto granular"_Howto_granular.html, pour, - +"GRANULAR"_Packages_details.html#PKG-GRANULAR, granular systems, "Howto granular"_Howto_granular.html, pour, no "KIM"_Packages_details.html#PKG-KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext -"KOKKOS"_Packages_details.html#PKG-KOKKOS, Kokkos-enabled styles, "Speed kokkos"_Speed_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"KSPACE"_Packages_details.html#PKG-KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, - +"KOKKOS"_Packages_details.html#PKG-KOKKOS, Kokkos-enabled styles, "Speed kokkos"_Speed_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, no +"KSPACE"_Packages_details.html#PKG-KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, no "LATTE"_Packages_details.html#PKG-LATTE, quantum DFTB forces via LATTE, "fix latte"_fix_latte.html, latte, ext -"MANYBODY"_Packages_details.html#PKG-MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, - -"MC"_Packages_details.html#PKG-MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, - +"MANYBODY"_Packages_details.html#PKG-MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, no +"MC"_Packages_details.html#PKG-MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, n/a, no "MEAM"_Packages_details.html#PKG-MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int -"MISC"_Packages_details.html#PKG-MISC, miscellanous single-file commands, -, -, - -"MOLECULE"_Packages_details.html#PKG-MOLECULE, molecular system force fields, "Howto bioFF"_Howto_bioFF.html, peptide, - -"MPIIO"_Packages_details.html#PKG-MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, - +"MISC"_Packages_details.html#PKG-MISC, miscellanous single-file commands, n/a, no, no +"MOLECULE"_Packages_details.html#PKG-MOLECULE, molecular system force fields, "Howto bioFF"_Howto_bioFF.html, peptide, no +"MPIIO"_Packages_details.html#PKG-MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, n/a, no "MSCG"_Packages_details.html#PKG-MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext -"OPT"_Packages_details.html#PKG-OPT, optimized pair styles, "Speed opt"_Speed_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"PERI"_Packages_details.html#PKG-PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, - +"OPT"_Packages_details.html#PKG-OPT, optimized pair styles, "Speed opt"_Speed_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, no +"PERI"_Packages_details.html#PKG-PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, no "POEMS"_Packages_details.html#PKG-POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int "PYTHON"_Packages_details.html#PKG-PYTHON, embed Python code in an input script, "python"_python.html, python, sys -"QEQ"_Packages_details.html#PKG-QEQ, QEq charge equilibration, "fix qeq"_fix_qeq.html, qeq, - +"QEQ"_Packages_details.html#PKG-QEQ, QEq charge equilibration, "fix qeq"_fix_qeq.html, qeq, no "REAX"_Packages_details.html#PKG-REAX, ReaxFF potential (Fortran), "pair_style reax"_pair_reax.html, reax, int -"REPLICA"_Packages_details.html#PKG-REPLICA2, multi-replica methods, "Howto replica"_Howto_replica.html, tad, - -"RIGID"_Packages_details.html#PKG-RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, - -"SHOCK"_Packages_details.html#PKG-SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, - -"SNAP"_Packages_details.html#PKG-SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, - -"SPIN"_Packages_details.html#PKG-SPIN, magnetic atomic spin dynamics, "Howto spins"_Howto_spins.html, SPIN, - -"SRD"_Packages_details.html#PKG-SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - -"VORONOI"_Packages_details.html#PKG-VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l) +"REPLICA"_Packages_details.html#PKG-REPLICA2, multi-replica methods, "Howto replica"_Howto_replica.html, tad, no +"RIGID"_Packages_details.html#PKG-RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, no +"SHOCK"_Packages_details.html#PKG-SHOCK, shock loading methods, "fix msst"_fix_msst.html, n/a, no +"SNAP"_Packages_details.html#PKG-SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, no +"SPIN"_Packages_details.html#PKG-SPIN, magnetic atomic spin dynamics, "Howto spins"_Howto_spins.html, SPIN, no +"SRD"_Packages_details.html#PKG-SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, no +"VORONOI"_Packages_details.html#PKG-VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, n/a, ext :tb(ea=c,ca1=l) diff --git a/doc/src/Packages_user.txt b/doc/src/Packages_user.txt index 7157ebead0..c1a52fd0d0 100644 --- a/doc/src/Packages_user.txt +++ b/doc/src/Packages_user.txt @@ -32,7 +32,7 @@ refers to the examples/USER/atc directory. The "Library" column indicates whether an extra library is needed to build and use the package: -dash = no library +no = no library sys = system library: you likely have it on your machine int = internal library: provided with LAMMPS, but you may need to build it ext = external library: you will need to download and install it on your machine :ul @@ -40,35 +40,35 @@ ext = external library: you will need to download and install it on your machine Package, Description, Doc page, Example, Library "USER-ATC"_Packages_details.html#PKG-USER-ATC, atom-to-continuum coupling, "fix atc"_fix_atc.html, USER/atc, int "USER-AWPMD"_Packages_details.html#PKG-USER-AWPMD, wave-packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int -"USER-BOCS"_Packages_details.html#PKG-USER-BOCS, BOCS bottom up coarse graining, "fix bocs"_fix_bocs.html, USER/bocs, - -"USER-CGDNA"_Packages_details.html#PKG-USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, - -"USER-CGSDK"_Packages_details.html#PKG-USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, - +"USER-BOCS"_Packages_details.html#PKG-USER-BOCS, BOCS bottom up coarse graining, "fix bocs"_fix_bocs.html, USER/bocs, no +"USER-CGDNA"_Packages_details.html#PKG-USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, no +"USER-CGSDK"_Packages_details.html#PKG-USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, no "USER-COLVARS"_Packages_details.html#PKG-USER-COLVARS, collective variables library, "fix colvars"_fix_colvars.html, USER/colvars, int -"USER-DIFFRACTION"_Packages_details.html#PKG-USER-DIFFRACTION, virtual x-ray and electron diffraction,"compute xrd"_compute_xrd.html, USER/diffraction, - -"USER-DPD"_Packages_details.html#PKG-USER-DPD, reactive dissipative particle dynamics, src/USER-DPD/README, USER/dpd, - -"USER-DRUDE"_Packages_details.html#PKG-USER-DRUDE, Drude oscillators, "Howto drude"_Howto_drude.html, USER/drude, - -"USER-EFF"_Packages_details.html#PKG-USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, - -"USER-FEP"_Packages_details.html#PKG-USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, - -"USER-H5MD"_Packages_details.html#PKG-USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext -"USER-INTEL"_Packages_details.html#PKG-USER-INTEL, optimized Intel CPU and KNL styles,"Speed intel"_Speed_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"USER-LB"_Packages_details.html#PKG-USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, - -"USER-MANIFOLD"_Packages_details.html#PKG-USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, - -"USER-MEAMC"_Packages_details.html#PKG-USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, - -"USER-MESO"_Packages_details.html#PKG-USER-MESO, mesoscale DPD models, "pair_style edpd"_pair_meso.html, USER/meso, - -"USER-MGPT"_Packages_details.html#PKG-USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, - -"USER-MISC"_Packages_details.html#PKG-USER-MISC, single-file contributions, USER-MISC/README, USER/misc, - -"USER-MOFFF"_Packages_details.html#PKG-USER-MOFFF, styles for "MOF-FF"_MOFplus force field, "pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html, USER/mofff, - -"USER-MOLFILE"_Packages_details.html#PKG-USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext -"USER-NETCDF"_Packages_details.html#PKG-USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext -"USER-OMP"_Packages_details.html#PKG-USER-OMP, OpenMP-enabled styles,"Speed omp"_Speed_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, - -"USER-PHONON"_Packages_details.html#PKG-USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, - +"USER-DIFFRACTION"_Packages_details.html#PKG-USER-DIFFRACTION, virtual x-ray and electron diffraction,"compute xrd"_compute_xrd.html, USER/diffraction, no +"USER-DPD"_Packages_details.html#PKG-USER-DPD, reactive dissipative particle dynamics, src/USER-DPD/README, USER/dpd, no +"USER-DRUDE"_Packages_details.html#PKG-USER-DRUDE, Drude oscillators, "Howto drude"_Howto_drude.html, USER/drude, no +"USER-EFF"_Packages_details.html#PKG-USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, no +"USER-FEP"_Packages_details.html#PKG-USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, no +"USER-H5MD"_Packages_details.html#PKG-USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, n/a, ext +"USER-INTEL"_Packages_details.html#PKG-USER-INTEL, optimized Intel CPU and KNL styles,"Speed intel"_Speed_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, no +"USER-LB"_Packages_details.html#PKG-USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, no +"USER-MANIFOLD"_Packages_details.html#PKG-USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, no +"USER-MEAMC"_Packages_details.html#PKG-USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, no +"USER-MESO"_Packages_details.html#PKG-USER-MESO, mesoscale DPD models, "pair_style edpd"_pair_meso.html, USER/meso, no +"USER-MGPT"_Packages_details.html#PKG-USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, no +"USER-MISC"_Packages_details.html#PKG-USER-MISC, single-file contributions, USER-MISC/README, USER/misc, no +"USER-MOFFF"_Packages_details.html#PKG-USER-MOFFF, styles for "MOF-FF"_MOFplus force field, "pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html, USER/mofff, no +"USER-MOLFILE"_Packages_details.html#PKG-USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, n/a, ext +"USER-NETCDF"_Packages_details.html#PKG-USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, n/a, ext +"USER-OMP"_Packages_details.html#PKG-USER-OMP, OpenMP-enabled styles,"Speed omp"_Speed_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, no +"USER-PHONON"_Packages_details.html#PKG-USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, no "USER-QMMM"_Packages_details.html#PKG-USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext -"USER-QTB"_Packages_details.html#PKG-USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, - +"USER-QTB"_Packages_details.html#PKG-USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, no "USER-QUIP"_Packages_details.html#PKG-USER-QUIP, QUIP/libatoms interface,"pair_style quip"_pair_quip.html, USER/quip, ext -"USER-REAXC"_Packages_details.html#PKG-USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, - +"USER-REAXC"_Packages_details.html#PKG-USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, no "USER-SMD"_Packages_details.html#PKG-USER-SMD, smoothed Mach dynamics,"SMD User Guide"_PDF/SMD_LAMMPS_userguide.pdf, USER/smd, ext -"USER-SMTBQ"_Packages_details.html#PKG-USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, - -"USER-SPH"_Packages_details.html#PKG-USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, - -"USER-TALLY"_Packages_details.html#PKG-USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, - -"USER-UEF"_Packages_details.html#PKG-USER-UEF, extensional flow,"fix nvt/uef"_fix_nh_uef.html, USER/uef, - -"USER-VTK"_Packages_details.html#PKG-USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l) +"USER-SMTBQ"_Packages_details.html#PKG-USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, no +"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) From f8c9ab4a3e2aa2dc16bb02740051af30a0047b7c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 16 Aug 2018 23:47:00 -0400 Subject: [PATCH 514/675] some rewrite/update of the accelerator comparison page removing outdated info --- doc/src/Speed_compare.txt | 119 ++++++++++++++++++++++++++------------ 1 file changed, 81 insertions(+), 38 deletions(-) diff --git a/doc/src/Speed_compare.txt b/doc/src/Speed_compare.txt index 1a17b39c79..c93407515e 100644 --- a/doc/src/Speed_compare.txt +++ b/doc/src/Speed_compare.txt @@ -9,65 +9,108 @@ Documentation"_ld - "LAMMPS Commands"_lc :c Comparison of various accelerator packages :h3 -NOTE: this section still needs to be re-worked with additional KOKKOS -and USER-INTEL information. - The next section compares and contrasts the various accelerator options, since there are multiple ways to perform OpenMP threading, -run on GPUs, and run on Intel Xeon Phi coprocessors. +run on GPUs, optimize for vector units on CPUs and run on Intel +Xeon Phi (co-)processors. -All 3 of these packages accelerate a LAMMPS calculation using NVIDIA -hardware, but they do it in different ways. +All of these packages can accelerate a LAMMPS calculation taking +advantage of hardware features, but they do it in different ways +and acceleration is not always guaranteed. As a consequence, for a particular simulation on specific hardware, -one package may be faster than the other. We give guidelines below, -but the best way to determine which package is faster for your input -script is to try both of them on your machine. See the benchmarking +one package may be faster than the other. We give some guidelines +below, but the best way to determine which package is faster for your +input script is to try multiple of them on your machine and experiment +with available performance tuning settings. See the benchmarking section below for examples where this has been done. [Guidelines for using each package optimally:] -The GPU package allows you to assign multiple CPUs (cores) to a single -GPU (a common configuration for "hybrid" nodes that contain multicore -CPU(s) and GPU(s)) and works effectively in this mode. :ulb,l +Both, the GPU and the KOKKOS package allows you to assign multiple +MPI ranks (= CPU cores) to the same GPU. For the GPU package, this +can lead to a speedup through better utilization of the GPU (by +overlapping computation and data transfer) and more efficient +computation of the non-GPU accelerated parts of LAMMPS through MPI +parallelization, as all system data is maintained and updated on +the host. For KOKKOS, there is less to no benefit from this, due +to its different memory management model, which tries to retain +data on the GPU. + :ulb,l -The GPU package moves per-atom data (coordinates, forces) -back-and-forth between the CPU and GPU every timestep. The -KOKKOS/CUDA package only does this on timesteps when a CPU calculation -is required (e.g. to invoke a fix or compute that is non-GPU-ized). -Hence, if you can formulate your input script to only use GPU-ized -fixes and computes, and avoid doing I/O too often (thermo output, dump -file snapshots, restart files), then the data transfer cost of the -KOKKOS/CUDA package can be very low, causing it to run faster than the -GPU package. :l +The GPU package moves per-atom data (coordinates, forces, and +(optionally) neighbor list data, if not computed on the GPU) between +the CPU and GPU at every timestep. The KOKKOS/CUDA package only does +this on timesteps when a CPU calculation is required (e.g. to invoke +a fix or compute that is non-GPU-ized). Hence, if you can formulate +your input script to only use GPU-ized fixes and computes, and avoid +doing I/O too often (thermo output, dump file snapshots, restart files), +then the data transfer cost of the KOKKOS/CUDA package can be very low, +causing it to run faster than the GPU package. :l -The GPU package is often faster than the KOKKOS/CUDA package, if the -number of atoms per GPU is smaller. The crossover point, in terms of -atoms/GPU at which the KOKKOS/CUDA package becomes faster depends -strongly on the pair style. For example, for a simple Lennard Jones +The GPU package is often faster than the KOKKOS/CUDA package, when the +number of atoms per GPU is on the smaller side. The crossover point, +in terms of atoms/GPU at which the KOKKOS/CUDA package becomes faster +depends strongly on the pair style. For example, for a simple Lennard Jones system the crossover (in single precision) is often about 50K-100K atoms per GPU. When performing double precision calculations the crossover point can be significantly smaller. :l -Both packages compute bonded interactions (bonds, angles, etc) on the -CPU. If the GPU package is running with several MPI processes +Both KOKKOS and GPU package compute bonded interactions (bonds, angles, +etc) on the CPU. If the GPU package is running with several MPI processes assigned to one GPU, the cost of computing the bonded interactions is -spread across more CPUs and hence the GPU package can run faster. :l +spread across more CPUs and hence the GPU package can run faster in these +cases. :l -When using the GPU package with multiple CPUs assigned to one GPU, its -performance depends to some extent on high bandwidth between the CPUs -and the GPU. Hence its performance is affected if full 16 PCIe lanes -are not available for each GPU. In HPC environments this can be the -case if S2050/70 servers are used, where two devices generally share -one PCIe 2.0 16x slot. Also many multi-GPU mainboards do not provide -full 16 lanes to each of the PCIe 2.0 16x slots. :l +When using LAMMPS with multiple MPI ranks assigned to the same GPU, its +performance depends to some extent on the available bandwidth between +the CPUs and the GPU. This can differ significantly based on the +available bus technology, capability of the host CPU and mainboard, +the wiring of the buses and whether switches are used to increase the +number of available bus slots, or if GPUs are housed in an external +enclosure. This can become quite complex. :l + +To achieve significant acceleration through GPUs, both KOKKOS and GPU +package require capable GPUs with fast on-device memory and efficient +data transfer rates. This requests capable upper mid-level to high-end +(desktop) GPUs. Using lower performance GPUs (e.g. on laptops) may +result in a slowdown instead. :l + +For the GPU package, specifically when running in parallel with MPI, +if it often more efficient to exclude the PPPM kspace style from GPU +acceleration and instead run it - concurrently with a GPU accelerated +pair style - on the CPU. This can often be easily achieved with placing +a {suffix off} command before and a {suffix on} command after the +{kspace_style pppm} command. :l + +The KOKKOS/OpenMP and USER-OMP package have different thread management +strategies, which should result in USER-OMP being more efficient for a +small number of threads with increasing overhead as the number of threads +per MPI rank grows. The KOKKOS/OpenMP kernels have less overhead in that +case, but have lower performance with few threads. :l + +The USER-INTEL package contains many options and settings for achieving +additional performance on Intel hardware (CPU and accelerator cards), but +to unlock this potential, an Intel compiler is required. The package code +will compile with GNU gcc, but it will not be as efficient. :l :ule -[Differences between the two packages:] +[Differences between the GPU and KOKKOS packages:] -The GPU package accelerates only pair force, neighbor list, and PPPM -calculations. :ulb,l +The GPU package accelerates only pair force, neighbor list, and (parts +of) PPPM calculations. The KOKKOS package attempts to run most of the +calculation on the GPU, but can transparently support non-accelerated +code (with a performance penalty due to having data transfers between +host and GPU). :ulb,l The GPU package requires neighbor lists to be built on the CPU when using exclusion lists, hybrid pair styles, or a triclinic simulation box. :l + +The GPU package can be compiled for CUDA or OpenCL and thus supports +both, Nvidia and AMD GPUs well. On Nvidia hardware, using CUDA is typically +resulting in equal or better performance over OpenCL. :l + +OpenCL in the GPU package does theoretically also support Intel CPUs or +Intel Xeon Phi, but the native support for those in KOKKOS (or USER-INTEL) +is superior. :l :ule From bfaa34553645216488274f18d69db6c96c8f94c6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 17 Aug 2018 00:09:39 -0400 Subject: [PATCH 515/675] add comment on KOKKOS compiler and platform support --- doc/src/Packages_details.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 5ab85a80c8..892774be38 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -382,6 +382,11 @@ switches"_Run_options.html. Also see the "GPU"_#PKG-GPU, "OPT"_#PKG-OPT, have styles optimized for CPUs, KNLs, and GPUs. You must have a C++11 compatible compiler to use this package. +KOKKOS makes extensive use of advanced C++ features, which can +expose compiler bugs, especially when compiling for maximum +performance at high optimization levels. Please see the file +lib/kokkos/README for a list of compilers and their respective +platforms, that are known to work. [Authors:] The KOKKOS package was created primarily by Christian Trott and Stan Moore (Sandia), with contributions from other folks as well. From eb7568a4fb005e131ea47491529d06de566c88f6 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 17 Aug 2018 10:13:19 -0400 Subject: [PATCH 516/675] Fixes issue #1058 --- doc/src/Build.txt | 2 +- doc/src/Commands.txt | 2 +- doc/src/Manual.txt | 2 +- doc/src/Run_basics.txt | 2 +- doc/src/Run_options.txt | 2 +- doc/src/Run_output.txt | 2 +- doc/src/Run_windows.txt | 2 +- doc/src/lammps.book | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/src/Build.txt b/doc/src/Build.txt index e62268b84b..1046171de1 100644 --- a/doc/src/Build.txt +++ b/doc/src/Build.txt @@ -1,5 +1,5 @@ "Previous Section"_Install.html - "LAMMPS WWW Site"_lws - "LAMMPS -Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Run.html :c +Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Run_head.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) diff --git a/doc/src/Commands.txt b/doc/src/Commands.txt index 84eac285f7..a1a94c6d29 100644 --- a/doc/src/Commands.txt +++ b/doc/src/Commands.txt @@ -1,4 +1,4 @@ -"Previous Section"_Run.html - "LAMMPS WWW Site"_lws - +"Previous Section"_Run_head.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Packages.html :c diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 9bd346e8a0..e63032f03b 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -112,7 +112,7 @@ END_RST --> "Introduction"_Intro.html :olb,l "Install LAMMPS"_Install.html :l "Build LAMMPS"_Build.html :l -"Run LAMMPS"_Run.html :l +"Run LAMMPS"_Run_head.html :l "Commands"_Commands.html :l "Optional packages"_Packages.html :l "Accelerate performance"_Speed.html :l diff --git a/doc/src/Run_basics.txt b/doc/src/Run_basics.txt index c83d17d6a9..02139a8c69 100644 --- a/doc/src/Run_basics.txt +++ b/doc/src/Run_basics.txt @@ -1,4 +1,4 @@ -"Higher level section"_Run.html - "LAMMPS WWW Site"_lws - "LAMMPS +"Higher level section"_Run_head.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) diff --git a/doc/src/Run_options.txt b/doc/src/Run_options.txt index 0704e3b619..9c862d7b8e 100644 --- a/doc/src/Run_options.txt +++ b/doc/src/Run_options.txt @@ -1,4 +1,4 @@ -"Higher level section"_Run.html - "LAMMPS WWW Site"_lws - "LAMMPS +"Higher level section"_Run_head.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) diff --git a/doc/src/Run_output.txt b/doc/src/Run_output.txt index a534ae7c7b..7d5a9e6ae6 100644 --- a/doc/src/Run_output.txt +++ b/doc/src/Run_output.txt @@ -1,4 +1,4 @@ -"Higher level section"_Run.html - "LAMMPS WWW Site"_lws - "LAMMPS +"Higher level section"_Run_head.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) diff --git a/doc/src/Run_windows.txt b/doc/src/Run_windows.txt index 1151a4a2bb..2b93cc7d49 100644 --- a/doc/src/Run_windows.txt +++ b/doc/src/Run_windows.txt @@ -1,4 +1,4 @@ -"Higher level section"_Run.html - "LAMMPS WWW Site"_lws - "LAMMPS +"Higher level section"_Run_head.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) diff --git a/doc/src/lammps.book b/doc/src/lammps.book index c961004f83..f1ff39d80b 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -25,7 +25,7 @@ Build_basics.html Build_settings.html Build_package.html Build_extras.html -Run.html +Run_head.html Run_basics.html Run_options.html Run_output.html From c0544ba346b78deae7f704a59b32657d37ba8d94 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 17 Aug 2018 10:34:17 -0400 Subject: [PATCH 517/675] Actually rename the file --- doc/src/Manual.txt | 2 +- doc/src/{Run.txt => Run_head.txt} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename doc/src/{Run.txt => Run_head.txt} (100%) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index e63032f03b..30e1864106 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -74,7 +74,7 @@ every LAMMPS command. Intro Install Build - Run + Run_head Commands Packages Speed diff --git a/doc/src/Run.txt b/doc/src/Run_head.txt similarity index 100% rename from doc/src/Run.txt rename to doc/src/Run_head.txt From 7dac513235d2ca9ca23165960620fccfb9c13ee0 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 17 Aug 2018 09:15:21 -0600 Subject: [PATCH 518/675] doc typos and push author details back to website --- README | 15 +- doc/src/Build_cmake.txt | 8 +- doc/src/Build_extras.txt | 2 +- doc/src/Build_package.txt | 2 +- doc/src/Howto_diffusion.txt | 2 +- doc/src/Howto_dispersion.txt | 2 +- doc/src/Howto_temperature.txt | 2 +- doc/src/Intro_authors.txt | 364 +++------------------------------- 8 files changed, 44 insertions(+), 353 deletions(-) diff --git a/README b/README index 784b1cb13e..680986bf61 100644 --- a/README +++ b/README @@ -36,7 +36,14 @@ tools pre- and post-processing tools Point your browser at any of these files to get started: -doc/Manual.html the LAMMPS manual -doc/Section_intro.html hi-level introduction to LAMMPS -doc/Section_start.html how to build and use LAMMPS -doc/Developer.pdf LAMMPS developer guide +http://lammps.sandia.gov/doc/Manual.html the LAMMPS manual +http://lammps.sandia.gov/doc/Intro.html hi-level introduction +http://lammps.sandia.gov/doc/Build.html how to build LAMMPS +http://lammps.sandia.gov/doc/Run_head.html how to run LAMMPS +http://lammps.sandia.gov/doc/Developer.pdf LAMMPS developer guide + +You can also create these doc pages locally: + +% cd doc +% make html # creates HTML pages in doc/html +% make pdf # creates Manual.pdf and Developer.pdf diff --git a/doc/src/Build_cmake.txt b/doc/src/Build_cmake.txt index c42bb21c7e..38765c3d4e 100644 --- a/doc/src/Build_cmake.txt +++ b/doc/src/Build_cmake.txt @@ -13,12 +13,10 @@ This page is a short summary of how to use CMake to build LAMMPS. Details on CMake variables that enable specific LAMMPS build options are given on the pages linked to from the "Build"_Build.html doc page. -Richard Berger (Temple U) has also written a more comprehensive guide +Richard Berger (Temple U) has also written a "more comprehensive +guide"_https://github.com/lammps/lammps/blob/master/cmake/README.md for how to use CMake to build LAMMPS. If you are new to CMake it is a -good place to start: - -"Bulding LAMMPS using -CMake"_https://github.com/lammps/lammps/blob/master/cmake/README.md +good place to start. :line diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index 6bbf504496..67c84e54b1 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -48,7 +48,7 @@ This is the list of packages that may require additional steps. "USER-QMMM"_#user-qmmm, "USER-QUIP"_#user-quip, "USER-SMD"_#user-smd, -"USER-VTK"_#user-vtk :tb(c=6,ea=c) +"USER-VTK"_#user-vtk :tb(c=6,ea=c,a=l) :line diff --git a/doc/src/Build_package.txt b/doc/src/Build_package.txt index 0c7d1917de..4f71e9eb18 100644 --- a/doc/src/Build_package.txt +++ b/doc/src/Build_package.txt @@ -59,7 +59,7 @@ packages: "USER-QMMM"_Build_extras.html#user-qmmm, "USER-QUIP"_Build_extras.html#user-quip, "USER-SMD"_Build_extras.html#user-smd, -"USER-VTK"_Build_extras.html#user-vtk :tb(c=6,ea=c) +"USER-VTK"_Build_extras.html#user-vtk :tb(c=6,ea=c,a=l) The mechanism for including packages is simple but different for CMake versus make. diff --git a/doc/src/Howto_diffusion.txt b/doc/src/Howto_diffusion.txt index 401c1e359c..6c920c9bc3 100644 --- a/doc/src/Howto_diffusion.txt +++ b/doc/src/Howto_diffusion.txt @@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :line -Calculate a diffusion coefficient :h3 +Calculate diffusion coefficients :h3 The diffusion coefficient D of a material can be measured in at least 2 ways using various options in LAMMPS. See the examples/DIFFUSE diff --git a/doc/src/Howto_dispersion.txt b/doc/src/Howto_dispersion.txt index 4ea286258e..8a5953d84d 100644 --- a/doc/src/Howto_dispersion.txt +++ b/doc/src/Howto_dispersion.txt @@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :line -Long-raage dispersion settings :h3 +Long-range dispersion settings :h3 The PPPM method computes interactions by splitting the pair potential into two parts, one of which is computed in a normal pairwise fashion, diff --git a/doc/src/Howto_temperature.txt b/doc/src/Howto_temperature.txt index 8a9e262da1..896cc96a40 100644 --- a/doc/src/Howto_temperature.txt +++ b/doc/src/Howto_temperature.txt @@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :line -Calcalate temperature :h3 +Calculate temperature :h3 Temperature is computed as kinetic energy divided by some number of degrees of freedom (and the Boltzmann constant). Since kinetic energy diff --git a/doc/src/Intro_authors.txt b/doc/src/Intro_authors.txt index 5d9efb3077..d6258f85a0 100644 --- a/doc/src/Intro_authors.txt +++ b/doc/src/Intro_authors.txt @@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :line -LAMMPS authors :h3 +Authors of LAMMPS :h3 The primary LAMMPS developers are at Sandia National Labs and Temple University: @@ -15,7 +15,8 @@ University: "Steve Plimpton"_sjp, sjplimp at sandia.gov Aidan Thompson, athomps at sandia.gov Stan Moore, stamoor at sandia.gov -Axel Kohlmeyer, akohlmey at gmail.com :ul +Axel Kohlmeyer, akohlmey at gmail.com +Richard Berger, richard.berger at temple.edu :ul :link(sjp,http://www.cs.sandia.gov/~sjplimp) @@ -24,26 +25,30 @@ and Ray Shan, now at Materials Design. :line -The following folks are responsible for significant contributions to -the code, or other aspects of the LAMMPS development effort. Many of -the packages they have written are somewhat unique to LAMMPS and the -code would not be as general-purpose as it is without their expertise -and efforts. +The "Authors page"_http://lammps.sandia.gov/authors.html of the +"LAMMPS website"_lws has a comprhensive list of all the individuals who +have contributed code for a new feature or command or tool to LAMMPS. -Richard Berger (Temple U), Python interface, GitHub site, Sphinx doc pages +:line + +The following folks deserve special recognition. Many of the packages +they have written are unique for an MD code and LAMMPS would not be as +general-purpose as it is without their expertise and efforts. + +Metin Aktulga (MSU), USER-REAXC package for C version of ReaxFF +Mike Brown (Intel), GPU and USER-INTEL packages +Colin Denniston (U Western Ontario), USER-LB package +Georg Ganzenmuller (EMI), USER-SMD and USER-SPH packages +Andres Jaramillo-Botero (Caltech), USER-EFF package for electron force field +Reese Jones (Sandia) and colleagues, USER-ATC package for atom/continuum coupling +Christoph Kloss (DCS Computing), LIGGGHTS code for granular materials, built on top of LAMMPS +Rudra Mukherjee (JPL), POEMS package for articulated rigid body motion +Trung Ngyuen (Northwestern U), GPU and RIGID and BODY packages +Mike Parks (Sandia), PERI package for Peridynamics Roy Pollock (LLNL), Ewald and PPPM solvers -Mike Brown (ORNL), brownw at ornl.gov, GPU and USER-INTEL packages -Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential -Mike Parks (Sandia), mlparks at sandia.gov, PERI package for Peridynamics -Rudra Mukherjee (JPL), Rudranarayan.M.Mukherjee at jpl.nasa.gov, POEMS package for articulated rigid body motion -Reese Jones (Sandia) and collaborators, rjones at sandia.gov, USER-ATC package for atom/continuum coupling -Ilya Valuev (JIHT), valuev at physik.hu-berlin.de, USER-AWPMD package for wave-packet MD -Christian Trott (U Tech Ilmenau), christian.trott at tu-ilmenau.de, USER-CUDA and KOKKOS packages -Andres Jaramillo-Botero (Caltech), ajaramil at wag.caltech.edu, USER-EFF package for electron force field -Christoph Kloss (JKU), Christoph.Kloss at jku.at, USER-LIGGGHTS package for granular models and granular/fluid coupling -Metin Aktulga (LBL), hmaktulga at lbl.gov, USER-REAXC package for C version of ReaxFF -Georg Gunzenmueller (EMI), georg.ganzenmueller at emi.fhg.de, USER-SMD and USER-SPH packages -Colin Denniston (U Western Ontario), cdennist at uwo.ca, USER-LB package :ul +Christian Trott (Sandia), USER-CUDA and KOKKOS packages +Ilya Valuev (JIHT), USER-AWPMD package for wave-packet MD +Greg Wagner (Northwestern U), MEAM package for MEAM potential :ul :line @@ -58,322 +63,3 @@ Terry Stouch (Lexicon Pharmaceuticals, formerly at Bristol Myers Squibb) Steve Lustig (Dupont) Jim Belak and Roy Pollock (LLNL) :ul -:line - -Here is a timeline for when various individuals contributed to a new -feature or command or tool added to LAMMPS: - -Aug18 : CMake build option for LAMMPS : Christoph Junghans (LANL), Richard Berger, and Axel Kohlmeyer (Temple U) -Jul18 : DEM polygonal and polyhedron particles : Trung Nguyen (Northwestern U) -Jun18 : SPIN package : Julien Tranchida (Sandia and CEA) -Jun18 : compute entropy/atom : Pablo Piaggi (EPLF, Switzerland) -May18 : fix bond/react : Jake Gissinger (CU Boulder) -Apr18 : USER-BOCS package : Nicholas Dunn and Michael DeLyser (Penn State U) -Mar18: pair coul/shield, kolmogorov/crespi/full, ilp/graphene/hbn : Wengen Ouyang (Tel Aviv U) -Feb18 : pair lj/cut/coul/wolf : Vishal Boddu (U of Erlangen-Nuremberg) -Feb18 : USER-MOFFF package : Hendrik Heenen (Technical U of Munich) and Rochus Schmid (Ruhr-University Bochum) -Feb18 : pair ufm : Rodolfo Paula Leite and Maurice de Koning (Unicamp/Brazil) -Dec17 : fix python/move : Richard Berger (Temple U) -Nov17 : pair extep : Jaap Kroes (Radboud U) -Oct17 : USER-UEF package : David Nicholson (MIT) -Oct17 : fix rhok : Ulf Pederson (Roskilde U) -Oct17 : bond gromos : Axel Kohlmeyer (Temple U) -Oct17 : pair born/coul/wolf/cs and coul/wolf/cs : Vishal Boddu -Sep17 : fix latte : Christian Negre (LANL) -Sep17 : temper_npt : Amulya Pervaje and Cody Addington (NCSU) -Aug17 : USER-MESO package : Zhen Li (Brown University) -Aug17 : compute aggregate/atom & fragment/atom : Axel Kohlmeyer (Temple U) -Jul17 : pair meam/c : Sebastian Hutter (Otto-von-Guericke University) -Jun17 : pair reaxc/omp : Metin Aktulga (MSU) and Axel Kohlmeyer (Temple U) -Jun17 : pair vashishita/gpu : Anders Hafreager (UiO) -Jun17 : kspace pppm/disp/intel and pair lj/long/coul/long/intel : Mike Brown (Intel) and William McDoniel (RWTH Aachen U) -Jun17 : compute cnp/atom : Paulo Branicio (USC) -May17 : fix python and pair python : Richard Berger (Temple U) -May17 : pair edip/multi : Chao Jiang (U Wisconsin) -May17 : pair gw and gw/zbl : German Samolyuk (ORNL) -Mar17 : pair charmm fsw and fsh : Robert Meissner & Lucio Colombi Ciacchi (Bremen U), Robert Latour (Clemson U) -Mar17 : pair momb : Ya Zhou, Kristen Fichthorn, and Tonnam Balankura (PSU) -Mar17 : fix filter/corotate : Lukas Fath (KIT) -Mar17 : pair kolmogorov/crespi/z : Jaap Kroes (Radboud Universiteit) -Feb17 : Kokkos versions of the class2 bond/angle/dihedral/improper : Ray Shan (Materials Design) -Jan17 : USER-CGDNA package : Oliver Henrich (U Edinburgh) -Jan17 : fix mscg : Lauren Abbott (Sandia) -Nov16 : temper/grem and fix grem : David Stelter (BU), Edyta Malolepsza (Broad Institute), Tom Keyes (BU) -Nov16 : pair agni : Axel Kohlmeyer (Temple U) and Venkatesh Botu -Nov16 : pair tersoff/mod.c : Ganga P Purja Pun (George Mason University) -Nov16 : pair born/coul/dsf and pair born/coul/dsf/cs : Ariel Lozano -Nov16 : fix reaxc/species/kk & fix reaxc/bonds/kk : Stan Moore (Sandia) -Oct16 : fix wall/gran/region : Dan Bolintineanu (Sandia) -Sep16 : weight options for balance & fix balance : Axel Kohlmeyer (Temple U) & Iain Bethune (EPCC) -Sep16 : fix cmap : Xiaohu Hu (ORNL), David Hyde-Volpe & Tigran Abramyan & Robert Latour (Clemson U), Chris Lorenz (Kings College, London) -Sep16 : pair vashishta/table : Anders Hafreager (U Oslo) -Sep16 : kspace pppm/kk : Stan Moore (Sandia) -Aug16 : fix flow/gauss : Steve Strong and Joel Eaves (U Colorado) -Aug16 : fix controller : Aidan Thompson (Sandia) -Jul16 : dipole integration by DLM method : Iain Bethune (EPCC) -Jul16 : dihedral spherical : Andrew Jewett -Jun16 : pair reax/c/kk : Ray Shan (Materials Design), Stan Moore (Sandia) -Jun16 : fix orient/bcc : Tegar Wicaksono (UBC) -Jun16 : fix ehex : Peter Wirnsberger (University of Cambridge) -Jun16 : reactive DPD extensions to USER-DPD : James Larentzos (ARL), Timothy Mattox (Engility Corp), John Brennan (ARL), Christopher Stone (Computational Science & Engineering, LLC) -May16 : USER-MANIFOLD package : Stefan Paquay (Eindhoven U of Tech, The Netherlands) -Apr16 : write_coeff : Axel Kohlmeyer (Temple U) -Apr16 : pair morse/soft : Stefan Paquay (Eindhoven U of Tech, The Netherlands) -Apr16 : compute dipole/chunk : Axel Kohlmeyer (Temple U) -Apr16 : bond write : Axel Kohlmeyer (Temple U) -Mar16 : pair morse/smooth/linear : Stefan Paquay (Eindhoven U of Tech, The Netherlands) -Feb16 : pair/bond/angle/dihedral/improper zero : Carsten Svaneborg (SDU) -Feb16 : dump custom/vtk : Richard Berger (JKU) and Daniel Queteschiner (DCS Computing) -Feb16 : fix (nvt/npt/nph)/body and compute temp/body : Trung Nguyen -Feb16 : USER-DPD package : James Larentzos (ARL), Timothy Mattox (Engility Corp), John Brennan (ARL) -Dec15 : fix qeq/fire : Ray Shan (Sandia) -Dec15 : pair lj/mdf, pair lennard/mdf, pair buck/mdf, improper distance : Paolo Raiteri (Curtin University) -Nov15 : compute orientorder/atom : Aidan Thompson (Sandia) and Axel Kohlmeyer (U Temple) -Nov15 : compute hexorder/atom : Aidan Thompson (Sandia) -Oct15 : displace_atoms variable option : Reese Jones (Sandia) -Oct15 : pair mgpt & USER-MGPT package : Tomas Oppelstrup and John Moriarty (LLNL) -Oct15 : pair smtbq & USER-SMTBQ package : Nicolas Salles, Emile Maras, Olivier Politano, and Robert Tetot (LAAS-CNRS) -Oct15 : fix ave/correlate/long command : Jorge Ramirez (UPM) and Alexei Likhtman (U Reading) -Oct15 : pair vashishta command : Aidan Thompson (Sandia) and Yongnan Xiong (HNU) -Aug15 : USER-TALLY package : Axel Kohlmeyer (Temple U) -Aug15 : timer command : Axel Kohlmeyer (Temple U) -Aug15 : USER-H5MD package : Pierre de Buyl (KU Leuven) -Aug15 : COMPRESS package : Axel Kohlmeyer (Temple U) -Aug15 : USER-SMD package : Georg Gunzenmueller (EMI) -Jul15 : new HTML format for "doc pages"_Manual.html with search option : Richard Berger (JKU) -Jul15 : rRESPA with pair hybrid : Sam Genheden (U of Southampton) -Jul15 : pair_modify special : Axel Kohlmeyer (Temple U) -Jul15 : pair polymorphic : Xiaowang Zhou and Reese Jones (Sandia) -Jul15 : USER-DRUDE package : Alain Dequidt and Agilio Padua (U Blaise Pascal Clermont-Ferrand) and Julien Devemy (CNRS) -Jul15 : USER-QTB package : Yuan Shen, Tingting Qi, and Evan Reed (Stanford U) -Jul15 : USER-DIFFRACTION package : Shawn Coleman (ARL) -Mar15 : fix temp/csld : Axel Kohlmeyer (Temple U) -Mar15 : CORESHELL package : Hendrik Heenen (Technical University of Munich) -Feb15 : pair quip for GAP and other potentials : Albert Bartok-Partay (U Cambridge) -Feb15 : pair coul/streitz for Streitz-Mintmire potential : Ray Shan (Sandia) -Feb15 : fix tfmc : Kristof Bal (U of Antwerp) -Feb15 : fix ttm/mod : Sergey Starikov and Vasily Pisarev (JIHT of RAS) -Jan15 : fix atom/swap for MC swaps of atom types/charge : Paul Crozier (Sandia) -Nov14 : fix pimd for path-integral MD : Chris Knight and Yuxing Peng (U Chicago) -Nov14 : fix gle and fix ipi for path-integral MD : Michele Ceriotti (EPFL) -Nov14 : pair style srp : Tim Sirk (ARL) and Pieter in 't Veld (BASF) -Nov14 : fix ave/spatial/sphere : Niall Jackson (Imperial College) -Sep14 : QEQ package and several fix qeq/variant styles : Ray Shan (Sandia) -Sep14 : SNAP package and pair style : Aidan Thompson (Sandia) and collaborators -Aug14 : USER-INTEL package : Mike Brown (Intel) -May14 : KOKKOS pacakge : Christian Trott and Carter Edwards (Sandia) -May14 : USER-FEP pacakge : Agilio Padua (U Blaise Pascal Clermont-Ferrand) -Apr14 : fix rigid/small NVE/NVT/NPH/NPT : Trung Nguyen (ORNL) -Apr14 : fix qmmm for QM/MM coupling : Axel Kohlmeyer (Temple U) -Mar14 : kspace_modify collective for faster FFTs on BG/Q : Paul Coffman (IBM) -Mar14 : fix temp/csvr and fix oneway : Axel Kohlmeyer (Temple U) -Feb14 : pair peri/eps, compute dilatation/atom, compute plasticity/atom : Rezwanur Rahman and John Foster (UTSA) -Jan14 : MPI-IO options for dump and restart files : Paul Coffman (IBM) -Nov13 : USER-LB package for Lattice Boltzmann : Francis Mackay and Colin Denniston (U Western Ontario) -Nov13 : fix ti/rs and ti/spring : Rodrigo Freitas (UC Berkeley) -Nov13 : pair comb3 : Ray Shan (Sandia), Tao Liang and Dundar Yilmaz (U Florida) -Nov13 : write_dump and dump movie : Axel Kohlmeyer (Temple U) -Sep13 : xmgrace tool : Vikas Varshney -Sep13 : pair zbl : Aidan Thompson and Stephen Foiles (Sandia) -Aug13 : pair nm and variants : Julien Devemy (ICCF) -Aug13 : fix wall/lj1043 : Jonathan Lee (Sandia) -Jul13 : pair peri/ves : Rezwan Rahman, JT Foster (U Texas San Antonio) -Jul13 : pair tersoff/mod : Vitaly Dozhdikov (JIHT of RAS) -Jul13 : compute basal/atom : Christopher Barrett,(Mississippi State) -Jul13 : polybond tool : Zachary Kraus (Georgia Tech) -Jul13 : fix gld : Stephen Bond and Andrew Baczewski (Sandia) -Jun13 : pair nb3b/harmonic : Todd Zeitler (Sandia) -Jun13 : kspace_style pppm/stagger : Stan Moore (Sandia) -Jun13 : fix tune/kspace : Paul Crozier (Sandia) -Jun13 : long-range point dipoles : Stan Moore (Sandia) and Pieter in 't Veld (BASF) -May13 : compute msd/nongauss : Rob Hoy -May13 : pair list : Axel Kohlmeyer (Temple U) -May13 : triclinic support for long-range solvers : Stan Moore (Sandia) -Apr13 : dump_modify nfile and fileper : Christopher Knight -Mar13 : fix phonon : Ling-Ti Kong (Shanghai Jiao Tong University) -Mar13 : pair_style lj/cut/tip4p/cut : Pavel Elkind (Gothenburg University) -Feb13 : immediate variables in input script : Daniel Moller (Autonomous University of Barcelona) -Feb13 : fix species : Ray Shan (Sandia) -Jan13 : compute voronoi/atom : Daniel Schwen -Nov12 : pair_style mie/cut : Cassiano Aimoli Petrobras (U Notre Dame) -Oct12 : pair_style meam/sw/spline : Robert Rudd (LLNL) -Oct12 : angle_style fourier and fourier/simple and quartic : Loukas Peristeras (Scienomics) -Oct12 : dihedral_style fourier and nharmonic and quadratic : Loukas Peristeras (Scienomics) -Oct12 : improper_style fourier : Loukas Peristeras (Scienomics) -Oct12 : kspace_style pppm/disp for 1/r^6 : Rolf Isele-Holder (Aachen University) -Oct12 : moltemplate molecular builder tool : Andrew Jewett (UCSB) -Sep12 : pair_style lj/cut/coul/dsf and coul/dsf : Trung Nguyen (ORNL) -Sep12 : multi-level summation long-range solver : Stan Moore, Stephen Bond, and Paul Crozier (Sandia) -Aug12 : fix rigid/npt and fix rigid/nph : Trung Nguyen (ORNL) -Aug12 : Fortran wrapper on lib interface : Karl Hammond (UT, Knoxville) -Aug12 : kspace_modify diff for 2-FFT PPPM : Rolf Isele-Holder (Aachen University), Stan Moore (BYU), Paul Crozier (Sandia) -Jun12 : pair_style bop : Don Ward and Xiaowang Zhou (Sandia) -Jun12 : USER-MOLFILE package : Axel Kohlmeyer (U Temple) -Jun12 : USER-COLVARS package : Axel Kohlmeyer (U Temple) -May12 : read_dump : Tim Sirk (ARL) -May12 : improper_style cossq and ring : Georgios Vogiatzis (CoMSE, NTU Athens) -May12 : pair_style lcbop : Dominik Wojt (Wroclaw University of Technology) -Feb12 : PPPM per-atom energy/virial : Stan Moore (BYU) -Feb12 : Ewald per-atom energy/virial : German Samolyuk (ORNL), Stan Moore (BYU) -Feb12 : minimize forcezero linesearch : Asad Hasan (CMU) -Feb12 : pair_style beck : Jon Zimmerman (Sandia) -Feb12 : pair_style meam/spline : Alex Stukowski (LLNL) -Jan12 : pair_style kim : Valeriu Smirichinski, Ryan Elliott, Ellad Tadmor (U Minn) -Jan12 : dihedral_style table : Andrew Jewett (UCSB) -Jan12 : angle_style dipole : Mario Orsi -Jan12 : pair_style lj/smooth/linear : Jon Zimmerman (Sandia) -Jan12 : fix reax/c/bond : Tzu-Ray Shan (Sandia) -Dec11 : pair_style coul/wolf : Yongfeng Zhang (INL) -Dec11 : run_style verlet/split : Yuxing Peng and Chris Knight (U Chicago) -Dec11 : pair_style tersoff/table : Luca Ferraro (CASPUR) -Nov11 : per-atom energy/stress for reax/c : Tzu-Ray Shan (Sandia) -Oct11 : Fast Lubrication Dynamics (FLD) package: Amit Kumar, Michael Bybee, Jonathan Higdon (UIUC) -Oct11 : USER-OMP package : Axel Kohlmeyer (Temple U) -Sep11 : pair_style edip : Luca Ferraro (CASPUR) -Aug11 : USER-SPH package : Georg Ganzenmuller (FIHSD, EMI, Germany) -Aug11 : fix restrain : Craig Tenney (Sandia) -Aug11 : USER-CUDA package : Christian Trott (U Tech Ilmenau) -Aug11 : pair_style lj/sf : Laurent Joly (U Lyon) -Aug11 : bond_style harmonic/shift and harmonic/shift/cut : Carsten Svaneborg -Aug11 : angle_style cosine/shift and cosine/shift/exp : Carsten Svaneborg -Aug11 : dihedral_style cosine/shift/exp : Carsten Svaneborg -Aug11 : pair_style dipole/sf : Mario Orsi -Aug11 : fix addtorque and compute temp/rotate : Laurent Joly (U Lyon) -Aug11 : FFT support via FFTW3, MKL, ACML, KISS FFT libraries : \ - Axel Kohlmeyer (Temple U) -Jun11 : pair_style adp : Chris Weinberger (Sandia), Stephen Foiles (Sandia), \ - Chandra Veer Singh (Cornell) -Jun11 : Windows build option via Microsoft Visual Studio : \ - Ilya Valuev (JIHT, Moscow, Russia) -Jun11 : antisymmetrized wave packet MD : Ilya Valuev (JIHT, Moscow, Russia) -Jun11 : dump image : Nathan Fabian (Sandia) -May11 : pppm GPU single and double : Mike Brown (ORNL) -May11 : pair_style lj/expand/gpu : Inderaj Bains (NVIDIA) -2010 : pair_style reax/c and fix qeq/reax : Metin Aktulga (Purdue, now LBNL) -- : DREIDING force field, pair_style hbond/dreiding, etc : Tod Pascal (Caltech) -- : fix adapt and compute ti for thermodynamic integration for \ - free energies : Sai Jayaraman (Sandia) -- : pair_style born and gauss : Sai Jayaraman (Sandia) -- : stochastic rotation dynamics (SRD) via fix srd : \ - Jeremy Lechman (Sandia) and Pieter in 't Veld (BASF) -- : ipp Perl script tool : Reese Jones (Sandia) -- : eam_database and createatoms tools : Xiaowang Zhou (Sandia) -- : electron force field (eFF) : Andres Jaramillo-Botero and Julius Su (Caltech) -- : embedded ion method (EIM) potential : Xiaowang Zhou (Sandia) -- : COMB potential with charge equilibration : Tzu-Ray Shan (U Florida) -- : fix ave/correlate : Benoit Leblanc, Dave Rigby, \ - Paul Saxe (Materials Design) and Reese Jones (Sandia) -- : pair_style peri/lps : Mike Parks (Sandia) -- : fix msst : Lawrence Fried (LLNL), Evan Reed (LLNL, Stanford) -- : thermo_style custom tpcpu & spcpu keywords : Axel Kohlmeyer (Temple U) -- : fix rigid/nve, fix rigid/nvt : Tony Sheh and Trung Dac Nguyen (U Michigan) -- : public SVN & Git repositories for LAMMPS : \ - Axel Kohlmeyer (Temple U) and Bill Goldman (Sandia) -- : compute heat/flux : German Samolyuk (ORNL) and \ - Mario Pinto (Computational Research Lab, Pune, India) -- : pair_style yukawa/colloid : Randy Schunk (Sandia) -- : fix wall/colloid : Jeremy Lechman (Sandia) -2009 : fix imd for real-time viz and interactive MD : Axel Kohlmeyer (Temple Univ) -- : concentration-dependent EAM potential : \ - Alexander Stukowski (Technical University of Darmstadt) -- : parallel replica dymamics (PRD) : Mike Brown (Sandia) -- : min_style hftn : Todd Plantenga (Sandia) -- : fix atc : Reese Jones, Jon Zimmerman, Jeremy Templeton (Sandia) -- : dump cfg : Liang Wan (Chinese Academy of Sciences) -- : fix nvt with Nose/Hoover chains : Andy Ballard (U Maryland) -- : pair_style lj/cut/gpu, pair_style gayberne/gpu : Mike Brown (Sandia) -- : pair_style lj96/cut, bond_style table, angle_style table : Chuanfu Luo -- : fix langevin tally : Carolyn Phillips (U Michigan) -- : compute heat/flux for Green-Kubo : Reese Jones (Sandia), \ - Philip Howell (Siemens), Vikas Varsney (AFRL) -- : region cone : Pim Schravendijk -- : pair_style born/coul/long : Ahmed Ismail (Sandia) -- : fix ttm : Paul Crozier (Sandia) and Carolyn Phillips (U Michigan) -- : fix box/relax : Aidan Thompson and David Olmsted (Sandia) -- : ReaxFF potential : Aidan Thompson (Sandia) and Hansohl Cho (MIT) -- : compute cna/atom : Liang Wan (Chinese Academy of Sciences) -2008 : Tersoff/ZBL potential : Dave Farrell (Northwestern U) -- : peridynamics : Mike Parks (Sandia) -- : fix smd for steered MD : Axel Kohlmeyer (U Penn) -- : GROMACS pair potentials : Mark Stevens (Sandia) -- : lmp2vmd tool : Axel Kohlmeyer (U Penn) -- : compute group/group : Naveen Michaud-Agrawal (Johns Hopkins U) -- : USER-CG-CMM package for coarse-graining : Axel Kohlmeyer (U Penn) -- : cosine/delta angle potential : Axel Kohlmeyer (U Penn) -- : VIM editor add-ons for LAMMPS input scripts : Gerolf Ziegenhain -- : pair_style lubricate : Randy Schunk (Sandia) -- : compute ackland/atom : Gerolf Ziegenhain -- : kspace_style ewald/n, pair_style lj/coul, pair_style buck/coul : \ - Pieter in 't Veld (Sandia) -- : AI-REBO bond-order potential : Ase Henry (MIT) -- : making LAMMPS a true "object" that can be instantiated \ - multiple times, e.g. as a library : Ben FrantzDale (RPI) -- : pymol_asphere viz tool : Mike Brown (Sandia) -2007 : NEMD SLLOD integration : Pieter in 't Veld (Sandia) -- : tensile and shear deformations : Pieter in 't Veld (Sandia) -- : GayBerne potential : Mike Brown (Sandia) -- : ellipsoidal particles : Mike Brown (Sandia) -- : colloid potentials : Pieter in 't Veld (Sandia) -- : fix heat : Paul Crozier and Ed Webb (Sandia) -- : neighbor multi and communicate multi : Pieter in 't Veld (Sandia) -- : MATLAB post-processing scripts : Arun Subramaniyan (Purdue) -- : triclinic (non-orthogonal) simulation domains : Pieter in 't Veld (Sandia) -- : thermo_extract tool: Vikas Varshney (Wright Patterson AFB) -- : fix ave/time and fix ave/spatial : Pieter in 't Veld (Sandia) -- : MEAM potential : Greg Wagner (Sandia) -- : optimized pair potentials for lj/cut, charmm/long, eam, morse : \ - James Fischer (High Performance Technologies), \ - David Richie and Vincent Natoli (Stone Ridge Technologies) -2006 : fix wall/lj126 : Mark Stevens (Sandia) -- : Stillinger-Weber and Tersoff potentials : \ - Aidan Thompson and Xiaowang Zhou (Sandia) -- : region prism : Pieter in 't Veld (Sandia) -- : fix momentum and recenter : Naveen Michaud-Agrawal (Johns Hopkins U) -- : multi-letter variable names : Naveen Michaud-Agrawal (Johns Hopkins U) -- : OPLS dihedral potential: Mark Stevens (Sandia) -- : POEMS coupled rigid body integrator: Rudranarayan Mukherjee (RPI) -- : faster pair hybrid potential: James Fischer \ - (High Performance Technologies, Inc), Vincent Natoli and \ - David Richie (Stone Ridge Technology) -- : breakable bond quartic potential: Chris Lorenz and Mark Stevens (Sandia) -- : DCD and XTC dump styles: Naveen Michaud-Agrawal (Johns Hopkins U) -- : grain boundary orientation fix : Koenraad Janssens and \ - David Olmsted (Sandia) -- : pair_style lj/smooth potential : Craig Maloney (UCSB) -- : radius-of-gyration spring fix : Naveen Michaud-Agrawal \ - (Johns Hopkins U) and Paul Crozier (Sandia) -- : self spring fix : Naveen Michaud-Agrawal (Johns Hopkins U) -- : EAM CoAl and AlCu potentials : Kwang-Reoul Lee (KIST, Korea) -- : cosine/squared angle potential : Naveen Michaud-Agrawal (Johns Hopkins U) -- : helix dihedral potential : Naveen Michaud-Agrawal (Johns Hopkins U) and \ - Mark Stevens (Sandia) -- : Finnis/Sinclair EAM: Tim Lau (MIT) -- : dissipative particle dynamics (DPD) potentials: Kurt Smith (U Pitt) and \ - Frank van Swol (Sandia) -- : TIP4P potential (4-site water): Ahmed Ismail and \ - Amalie Frischknecht (Sandia) -2005 : uniaxial strain fix: Carsten Svaneborg (Max Planck Institute) -- : compressed dump files: Erik Luijten (U Illinois) -- : cylindrical indenter fix: Ravi Agrawal (Northwestern U) -- : electric field fix: Christina Payne (Vanderbilt U) -- : AMBER <-> LAMMPS tool: Keir Novik (Univ College London) and \ - Vikas Varshney (U Akron) -- : CHARMM <-> LAMMPS tool: Pieter in 't Veld and Paul Crozier (Sandia) -- : Morse bond potential: Jeff Greathouse (Sandia) -- : radial distribution functions: Paul Crozier & Jeff Greathouse (Sandia) -- : force tables for long-range Coulombics: Paul Crozier (Sandia) -2004 : targeted molecular dynamics (TMD): Paul Crozier (Sandia) and \ - Christian Burisch (Bochum University, Germany) -- : FFT support for SGI SCLS (Altix): Jim Shepherd (Ga Tech) -- : lmp2cfg and lmp2traj tools: Ara Kooser, Jeff Greathouse, \ - Andrey Kalinichev (Sandia) -- : parallel tempering: Mark Sears (Sandia) -earlier : granular force fields and BC: Leo Silbert & Gary Grest (Sandia) -- : multi-harmonic dihedral potential: Mathias Putz (Sandia) -- : embedded atom method (EAM) potential: Stephen Foiles (Sandia) -- : msi2lmp tool: Steve Lustig (Dupont), Mike Peachey & John Carpenter (Cray) -- : HTFN energy minimizer: Todd Plantenga (Sandia) -- : class 2 force fields: Eric Simon (Cray) -- : NVT/NPT integrators: Mark Stevens (Sandia) -- : rRESPA: Mark Stevens & Paul Crozier (Sandia) -- : Ewald and PPPM solvers: Roy Pollock (LLNL) : :tb(s=:,ca1=c) From 5436169c205438a54d250c7e05689a7503edbf51 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 17 Aug 2018 09:20:44 -0600 Subject: [PATCH 519/675] change format of Howto and Tools doc pages --- doc/src/Howto.txt | 155 +++++++++++++++++++++++----------------------- doc/src/Tools.txt | 133 +++++++++++++++++++++------------------ 2 files changed, 149 insertions(+), 139 deletions(-) diff --git a/doc/src/Howto.txt b/doc/src/Howto.txt index fc7329aad5..bcfae46579 100644 --- a/doc/src/Howto.txt +++ b/doc/src/Howto.txt @@ -19,80 +19,14 @@ The example input scripts included in the examples dir of the LAMMPS distribution and highlighted on the "Examples"_Examples.html doc page also show how to setup and run various kinds of simulations. - - - +Tutorials howto :h3 "Using GitHub with LAMMPS"_Howto_github.html "PyLAMMPS interface to LAMMPS"_Howto_pylammps.html "Using LAMMPS with bash on Windows"_Howto_bash.html :all(b) +General howto :h3 + "Restart a simulation"_Howto_restart.html "Visualize LAMMPS snapshots"_Howto_viz.html "Run multiple simulations from one input script"_Howto_multiple.html @@ -100,30 +34,93 @@ END_RST --> "Library interface to LAMMPS"_Howto_library.html "Couple LAMMPS to other codes"_Howto_couple.html :all(b) -"Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_Howto_output.html -"Use chunks to calculate system properties"_Howto_chunk.html :all(b) +Settings howto :h3 "2d simulations"_Howto_2d.html "Triclinic (non-orthogonal) simulation boxes"_Howto_triclinic.html -"Walls"_Howto_walls.html -"NEMD simulations"_Howto_nemd.html -"Granular models"_Howto_granular.html -"Finite-size spherical and aspherical particles"_Howto_spherical.html -"Long-range dispersion settings"_Howto_dispersion.html :all(b) - -"Calculate temperature"_Howto_temperature.html "Thermostats"_Howto_thermostat.html "Barostats"_Howto_barostat.html +"Walls"_Howto_walls.html +"NEMD simulations"_Howto_nemd.html +"Long-range dispersion settings"_Howto_dispersion.html :all(b) + +Analysis howto :h3 + +"Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_Howto_output.html +"Use chunks to calculate system properties"_Howto_chunk.html +"Calculate temperature"_Howto_temperature.html "Calculate elastic constants"_Howto_elastic.html "Calculate thermal conductivity"_Howto_kappa.html "Calculate viscosity"_Howto_viscosity.html -"Calculate a diffusion coefficient"_Howto_diffusion.html :all(b) +"Calculate diffusion coefficients"_Howto_diffusion.html :all(b) + +Force fields howto :h3 "CHARMM, AMBER, and DREIDING force fields"_Howto_bioFF.html "TIP3P water model"_Howto_tip3p.html "TIP4P water model"_Howto_tip4p.html "SPC water model"_Howto_spc.html :all(b) +Packages howto :h3 + +"Finite-size spherical and aspherical particles"_Howto_spherical.html +"Granular models"_Howto_granular.html +"Body style particles"_Howto_body.html +"Polarizable models"_Howto_polarizable.html +"Adiabatic core/shell model"_Howto_coreshell.html +"Drude induced dipoles"_Howto_drude.html +"Drude induced dipoles (extended)"_Howto_drude2.html +"Manifolds (surfaces)"_Howto_manifold.html +"Magnetic spins"_Howto_spins.html :all(b) + + + +External howto :h3 + +"Using GitHub with LAMMPS"_Howto_github.html +"PyLAMMPS interface to LAMMPS"_Howto_pylammps.html +"Using LAMMPS with bash on Windows"_Howto_bash.html :all(b) + +General howto :h3 + +"Restart a simulation"_Howto_restart.html +"Visualize LAMMPS snapshots"_Howto_viz.html +"Run multiple simulations from one input script"_Howto_multiple.html +"Multi-replica simulations"_Howto_replica.html +"Library interface to LAMMPS"_Howto_library.html +"Couple LAMMPS to other codes"_Howto_couple.html :all(b) + +Settings howto :h3 + +"2d simulations"_Howto_2d.html +"Triclinic (non-orthogonal) simulation boxes"_Howto_triclinic.html +"Thermostats"_Howto_thermostat.html +"Barostats"_Howto_barostat.html +"Walls"_Howto_walls.html +"NEMD simulations"_Howto_nemd.html +"Long-range dispersion settings"_Howto_dispersion.html :all(b) + +Analysis howto :h3 + +"Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_Howto_output.html +"Use chunks to calculate system properties"_Howto_chunk.html :all(b) +"Calculate temperature"_Howto_temperature.html +"Calculate elastic constants"_Howto_elastic.html +"Calculate thermal conductivity"_Howto_kappa.html +"Calculate viscosity"_Howto_viscosity.html +"Calculate a diffusion coefficient"_Howto_diffusion.html :all(b) + +Force fields howto :h3 + +"CHARMM, AMBER, and DREIDING force fields"_Howto_bioFF.html +"TIP3P water model"_Howto_tip3p.html +"TIP4P water model"_Howto_tip4p.html +"SPC water model"_Howto_spc.html :all(b) + +Packages howto :h3 + +"Finite-size spherical and aspherical particles"_Howto_spherical.html +"Granular models"_Howto_granular.html "Body style particles"_Howto_body.html "Polarizable models"_Howto_polarizable.html "Adiabatic core/shell model"_Howto_coreshell.html diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index 8b4e779cbe..5e02e00715 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -43,40 +43,53 @@ to edit for your platform) which will build several of the tools which reside in that directory. Most of them are larger packages in their own sub-directories with their own Makefiles and/or README files. -"amber2lmp"_#amber -"binary2txt"_#binary -"ch2lmp"_#charmm -"chain"_#chain -"colvars"_#colvars -"createatoms"_#createatoms -"doxygen"_#doxygen -"drude"_#drude -"eam database"_#eamdb -"eam generate"_#eamgn -"eff"_#eff -"emacs"_#emacs -"fep"_#fep -"i-pi"_#ipi -"ipp"_#ipp -"kate"_#kate -"lmp2arc"_#arc -"lmp2cfg"_#cfg -"matlab"_#matlab -"micelle2d"_#micelle -"moltemplate"_#moltemplate -"msi2lmp"_#msi -"phonon"_#phonon -"polybond"_#polybond -"pymol_asphere"_#pymol -"python"_#pythontools -"reax"_#reax_tool -"smd"_#smd -"vim"_#vim -"xmgrace"_#xmgrace :ul +:line + +Pre-processing tools :h3 + +"amber2lmp"_#amber, +"ch2lmp"_#charmm, +"chain"_#chain, +"createatoms"_#createatoms, +"drude"_#drude, +"eam database"_#eamdb, +"eam generate"_#eamgn, +"eff"_#eff, +"ipp"_#ipp, +"micelle2d"_#micelle, +"moltemplate"_#moltemplate, +"msi2lmp"_#msi, +"polybond"_#polybond :tb(c=6,ea=c,a=l) + +Post-processing tools :h3 + +"amber2lmp"_#amber, +"binary2txt"_#binary, +"ch2lmp"_#charmm, +"colvars"_#colvars, +"eff"_#eff, +"fep"_#fep, +"lmp2arc"_#arc, +"lmp2cfg"_#cfg, +"matlab"_#matlab, +"phonon"_#phonon, +"pymol_asphere"_#pymol, +"python"_#pythontools, +"reax"_#reax_tool, +"smd"_#smd, +"xmgrace"_#xmgrace :tb(c=6,ea=c,a=l) + +Miscellaneous tools :h3 + +"doxygen"_#doxygen, +"emacs"_#emacs, +"i-pi"_#ipi, +"kate"_#kate, +"vim"_#vim :tb(c=5,ea=c,a=l) :line -amber2lmp tool :h3,link(amber) +amber2lmp tool :h4,link(amber) The amber2lmp sub-directory contains two Python scripts for converting files back-and-forth between the AMBER MD code and LAMMPS. See the @@ -91,7 +104,7 @@ necessary modifications yourself. :line -binary2txt tool :h3,link(binary) +binary2txt tool :h4,link(binary) The file binary2txt.cpp converts one or more binary LAMMPS dump file into ASCII text files. The syntax for running the tool is @@ -104,7 +117,7 @@ since binary files are not compatible across all platforms. :line -ch2lmp tool :h3,link(charmm) +ch2lmp tool :h4,link(charmm) The ch2lmp sub-directory contains tools for converting files back-and-forth between the CHARMM MD code and LAMMPS. @@ -129,7 +142,7 @@ Chris Lorenz (chris.lorenz at kcl.ac.uk), King's College London. :line -chain tool :h3,link(chain) +chain tool :h4,link(chain) The file chain.f creates a LAMMPS data file containing bead-spring polymer chains and/or monomer solvent atoms. It uses a text file @@ -146,7 +159,7 @@ for the "chain benchmark"_Speed_bench.html. :line -colvars tools :h3,link(colvars) +colvars tools :h4,link(colvars) The colvars directory contains a collection of tools for postprocessing data produced by the colvars collective variable library. @@ -168,7 +181,7 @@ gmail.com) at ICTP, Italy. :line -createatoms tool :h3,link(createatoms) +createatoms tool :h4,link(createatoms) The tools/createatoms directory contains a Fortran program called createAtoms.f which can generate a variety of interesting crystal @@ -181,7 +194,7 @@ The tool is authored by Xiaowang Zhou (Sandia), xzhou at sandia.gov. :line -doxygen tool :h3,link(doxygen) +doxygen tool :h4,link(doxygen) The tools/doxygen directory contains a shell script called doxygen.sh which can generate a call graph and API lists using @@ -193,7 +206,7 @@ The tool is authored by Nandor Tamaskovics, numericalfreedom at googlemail.com. :line -drude tool :h3,link(drude) +drude tool :h4,link(drude) The tools/drude directory contains a Python script called polarizer.py which can add Drude oscillators to a LAMMPS @@ -206,7 +219,7 @@ at univ-bpclermont.fr, alain.dequidt at univ-bpclermont.fr :line -eam database tool :h3,link(eamdb) +eam database tool :h4,link(eamdb) The tools/eam_database directory contains a Fortran program that will generate EAM alloy setfl potential files for any combination of 16 @@ -222,7 +235,7 @@ X. W. Zhou, R. A. Johnson, and H. N. G. Wadley, Phys. Rev. B, 69, :line -eam generate tool :h3,link(eamgn) +eam generate tool :h4,link(eamgn) The tools/eam_generate directory contains several one-file C programs that convert an analytic formula into a tabulated "embedded atom @@ -235,7 +248,7 @@ The source files and potentials were provided by Gerolf Ziegenhain :line -eff tool :h3,link(eff) +eff tool :h4,link(eff) The tools/eff directory contains various scripts for generating structures and post-processing output for simulations using the @@ -246,7 +259,7 @@ These tools were provided by Andres Jaramillo-Botero at CalTech :line -emacs tool :h3,link(emacs) +emacs tool :h4,link(emacs) The tools/emacs directory contains an Emacs Lisp add-on file for GNU Emacs that enables a lammps-mode for editing input scripts when using GNU Emacs, @@ -257,7 +270,7 @@ These tools were provided by Aidan Thompson at Sandia :line -fep tool :h3,link(fep) +fep tool :h4,link(fep) The tools/fep directory contains Python scripts useful for post-processing results from performing free-energy perturbation @@ -270,7 +283,7 @@ See README file in the tools/fep directory. :line -i-pi tool :h3,link(ipi) +i-pi tool :h4,link(ipi) The tools/i-pi directory contains a version of the i-PI package, with all the LAMMPS-unrelated files removed. It is provided so that it can @@ -287,7 +300,7 @@ calculations with LAMMPS. :line -ipp tool :h3,link(ipp) +ipp tool :h4,link(ipp) The tools/ipp directory contains a Perl script ipp which can be used to facilitate the creation of a complicated file (say, a lammps input @@ -301,7 +314,7 @@ tools/createatoms tool's input file. :line -kate tool :h3,link(kate) +kate tool :h4,link(kate) The file in the tools/kate directory is an add-on to the Kate editor in the KDE suite that allow syntax highlighting of LAMMPS input @@ -312,7 +325,7 @@ The file was provided by Alessandro Luigi Sellerio :line -lmp2arc tool :h3,link(arc) +lmp2arc tool :h4,link(arc) The lmp2arc sub-directory contains a tool for converting LAMMPS output files to the format for Accelrys' Insight MD code (formerly @@ -328,7 +341,7 @@ Greathouse at Sandia (jagreat at sandia.gov). :line -lmp2cfg tool :h3,link(cfg) +lmp2cfg tool :h4,link(cfg) The lmp2cfg sub-directory contains a tool for converting LAMMPS output files into a series of *.cfg files which can be read into the @@ -339,7 +352,7 @@ This tool was written by Ara Kooser at Sandia (askoose at sandia.gov). :line -matlab tool :h3,link(matlab) +matlab tool :h4,link(matlab) The matlab sub-directory contains several "MATLAB"_matlabhome scripts for post-processing LAMMPS output. The scripts include readers for log @@ -357,7 +370,7 @@ These scripts were written by Arun Subramaniyan at Purdue Univ :line -micelle2d tool :h3,link(micelle) +micelle2d tool :h4,link(micelle) The file micelle2d.f creates a LAMMPS data file containing short lipid chains in a monomer solution. It uses a text file containing lipid @@ -374,7 +387,7 @@ definition file. This tool was used to create the system for the :line -moltemplate tool :h3,link(moltemplate) +moltemplate tool :h4,link(moltemplate) The moltemplate sub-directory contains a Python-based tool for building molecular systems based on a text-file description, and @@ -388,7 +401,7 @@ supports it. It has its own WWW page at :line -msi2lmp tool :h3,link(msi) +msi2lmp tool :h4,link(msi) The msi2lmp sub-directory contains a tool for creating LAMMPS template input and data files from BIOVIA's Materias Studio files (formerly Accelrys' @@ -405,7 +418,7 @@ See the README file in the tools/msi2lmp folder for more information. :line -phonon tool :h3,link(phonon) +phonon tool :h4,link(phonon) The phonon sub-directory contains a post-processing tool useful for analyzing the output of the "fix phonon"_fix_phonon.html command in @@ -420,7 +433,7 @@ University. :line -polybond tool :h3,link(polybond) +polybond tool :h4,link(polybond) The polybond sub-directory contains a Python-based tool useful for performing "programmable polymer bonding". The Python file @@ -434,7 +447,7 @@ This tool was written by Zachary Kraus at Georgia Tech. :line -pymol_asphere tool :h3,link(pymol) +pymol_asphere tool :h4,link(pymol) The pymol_asphere sub-directory contains a tool for converting a LAMMPS dump file that contains orientation info for ellipsoidal @@ -452,7 +465,7 @@ This tool was written by Mike Brown at Sandia. :line -python tool :h3,link(pythontools) +python tool :h4,link(pythontools) The python sub-directory contains several Python scripts that perform common LAMMPS post-processing tasks, such as: @@ -468,7 +481,7 @@ README for more info on Pizza.py and how to use these scripts. :line -reax tool :h3,link(reax_tool) +reax tool :h4,link(reax_tool) The reax sub-directory contains stand-alond codes that can post-process the output of the "fix reax/bonds"_fix_reax_bonds.html @@ -479,7 +492,7 @@ These tools were written by Aidan Thompson at Sandia. :line -smd tool :h3,link(smd) +smd tool :h4,link(smd) The smd sub-directory contains a C++ file dump2vtk_tris.cpp and Makefile which can be compiled and used to convert triangle output @@ -495,7 +508,7 @@ Ernst Mach Institute in Germany (georg.ganzenmueller at emi.fhg.de). :line -vim tool :h3,link(vim) +vim tool :h4,link(vim) The files in the tools/vim directory are add-ons to the VIM editor that allow easier editing of LAMMPS input scripts. See the README.txt @@ -506,7 +519,7 @@ ziegenhain.com) :line -xmgrace tool :h3,link(xmgrace) +xmgrace tool :h4,link(xmgrace) The files in the tools/xmgrace directory can be used to plot the thermodynamic data in LAMMPS log files via the xmgrace plotting From 703a795af851366233d700e05463ff9e59761993 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 20 Aug 2018 01:50:16 -0400 Subject: [PATCH 520/675] Modify Howto and Tools - add missing TOCs in Howto section - limit section numbering to maximum of 3 levels - add "Tool descriptions" header --- doc/src/Howto.txt | 158 +++++++++++++++++++++++++++++++-------------- doc/src/Manual.txt | 2 +- doc/src/Tools.txt | 2 + 3 files changed, 111 insertions(+), 51 deletions(-) diff --git a/doc/src/Howto.txt b/doc/src/Howto.txt index bcfae46579..9d385f23a4 100644 --- a/doc/src/Howto.txt +++ b/doc/src/Howto.txt @@ -21,68 +21,45 @@ also show how to setup and run various kinds of simulations. Tutorials howto :h3 -"Using GitHub with LAMMPS"_Howto_github.html -"PyLAMMPS interface to LAMMPS"_Howto_pylammps.html -"Using LAMMPS with bash on Windows"_Howto_bash.html :all(b) + -External howto :h3 - "Using GitHub with LAMMPS"_Howto_github.html "PyLAMMPS interface to LAMMPS"_Howto_pylammps.html "Using LAMMPS with bash on Windows"_Howto_bash.html :all(b) + + General howto :h3 + + + + "Restart a simulation"_Howto_restart.html "Visualize LAMMPS snapshots"_Howto_viz.html "Run multiple simulations from one input script"_Howto_multiple.html @@ -90,8 +67,28 @@ General howto :h3 "Library interface to LAMMPS"_Howto_library.html "Couple LAMMPS to other codes"_Howto_couple.html :all(b) + + Settings howto :h3 + + + + "2d simulations"_Howto_2d.html "Triclinic (non-orthogonal) simulation boxes"_Howto_triclinic.html "Thermostats"_Howto_thermostat.html @@ -100,8 +97,29 @@ Settings howto :h3 "NEMD simulations"_Howto_nemd.html "Long-range dispersion settings"_Howto_dispersion.html :all(b) + + + Analysis howto :h3 + + + + "Output from LAMMPS (thermo, dumps, computes, fixes, variables)"_Howto_output.html "Use chunks to calculate system properties"_Howto_chunk.html :all(b) "Calculate temperature"_Howto_temperature.html @@ -110,15 +128,55 @@ Analysis howto :h3 "Calculate viscosity"_Howto_viscosity.html "Calculate a diffusion coefficient"_Howto_diffusion.html :all(b) + + Force fields howto :h3 + + + + "CHARMM, AMBER, and DREIDING force fields"_Howto_bioFF.html "TIP3P water model"_Howto_tip3p.html "TIP4P water model"_Howto_tip4p.html "SPC water model"_Howto_spc.html :all(b) + + Packages howto :h3 + + + + + "Finite-size spherical and aspherical particles"_Howto_spherical.html "Granular models"_Howto_granular.html "Body style particles"_Howto_body.html diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index 30e1864106..c5e5aff61b 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -66,7 +66,7 @@ every LAMMPS command. .. toctree:: :maxdepth: 2 - :numbered: + :numbered: 3 :caption: User Documentation :name: userdoc :includehidden: diff --git a/doc/src/Tools.txt b/doc/src/Tools.txt index 5e02e00715..a9ad5032ce 100644 --- a/doc/src/Tools.txt +++ b/doc/src/Tools.txt @@ -89,6 +89,8 @@ Miscellaneous tools :h3 :line +Tool descriptions :h3 + amber2lmp tool :h4,link(amber) The amber2lmp sub-directory contains two Python scripts for converting From 353c004d6c1eda1e298208faab6b3dd609efa278 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Mon, 20 Aug 2018 10:07:49 -0600 Subject: [PATCH 521/675] cmake: required v3.7 for some DOWNLOAD options --- cmake/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 0d8a4894bd..460d177c92 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -377,6 +377,9 @@ endif() if(PKG_LATTE) option(DOWNLOAD_LATTE "Download latte (instead of using the system's one)" OFF) if(DOWNLOAD_LATTE) + if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR + message(FATAL_ERROR "For downlading LATTE you need at least cmake-3.7") + endif() message(STATUS "LATTE not found - we will build our own") include(ExternalProject) ExternalProject_Add(latte_build @@ -479,6 +482,9 @@ if(PKG_MSCG) find_package(GSL REQUIRED) option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF) if(DOWNLOAD_MSCG) + if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR + message(FATAL_ERROR "For downlading LATTE you need at least cmake-3.7") + endif() include(ExternalProject) if(NOT LAPACK_FOUND) set(EXTRA_MSCG_OPTS "-DLAPACK_LIBRARIES=${CMAKE_CURRENT_BINARY_DIR}/liblinalg.a") From f73ffb829ba9a3b4520f8c158be45e3aa41a40cb Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 20 Aug 2018 11:20:23 -0600 Subject: [PATCH 522/675] add a needed ifort flag for LAMMPS/LATTE link --- lib/latte/Makefile.lammps.ifort | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/latte/Makefile.lammps.ifort b/lib/latte/Makefile.lammps.ifort index 0491bdd8a5..b71b21cca8 100644 --- a/lib/latte/Makefile.lammps.ifort +++ b/lib/latte/Makefile.lammps.ifort @@ -4,9 +4,9 @@ latte_SYSINC = latte_SYSLIB = ../../lib/latte/filelink.o \ - -llatte -lifcore -lsvml -lompstub -limf -lmkl_intel_lp64 \ - -lmkl_intel_thread -lmkl_core -lmkl_intel_thread -lpthread \ - -openmp -O0 + -llatte -lifport -lifcore -lsvml -lompstub -limf \ + -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core \ + -lmkl_intel_thread -lpthread -openmp -O0 latte_SYSPATH = -openmp -L${MKLROOT}/lib/intel64 -lmkl_lapack95_lp64 \ -L/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64 From 639573ff8735e8c8ca68eeb22b82cf088f2d4f6d Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 20 Aug 2018 13:10:26 -0600 Subject: [PATCH 523/675] more instructions on external lib downloads, and CMake versions --- doc/src/Build_cmake.txt | 5 +++-- doc/src/Build_extras.txt | 46 +++++++++++++++++++++++++++++++++------- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/doc/src/Build_cmake.txt b/doc/src/Build_cmake.txt index 38765c3d4e..08c1c72180 100644 --- a/doc/src/Build_cmake.txt +++ b/doc/src/Build_cmake.txt @@ -79,8 +79,9 @@ directory to un-install all packages. The purge removes all the *.h files auto-generated by make. You must have CMake version 2.8 or later on your system to build -LAMMPS. If you include the GPU or KOKKOS packages, CMake version 3.2 -or later is required. Installation instructions for CMake are below. +LAMMPS. A handful of LAMMPS packages (KOKKOS, LATTE, MSCG) require a +later version. CMake will print a message telling you if a later +version is required. Installation instructions for CMake are below. After the initial build, if you edit LAMMPS source files, or add your own new files to the source directory, you can just re-type make from diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index 67c84e54b1..5c33a0a4d4 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -175,8 +175,15 @@ package?" page. [CMake build]: -D DOWNLOAD_KIM=value # download OpenKIM API v1 for build, value = no (default) or yes --D KIM_LIBRARY=path # path to KIM shared library (only needed if a custom location) --D KIM_INCLUDE_DIR=path # path to KIM include directory (only needed if a custom location) :pre +-D KIM_LIBRARY=path # KIM library file (only needed if a custom location) +-D KIM_INCLUDE_DIR=path # KIM include directory (only needed if a custom location) :pre + +If DOWNLOAD_KIM is set, the KIM library will be downloaded and built +inside the CMake build directory. If the KIM library is already on +your system (in a location CMake cannot find it), KIM_LIBRARY is the +filename (plus path) of the KIM library file, not the directory the +library file is in. KIM_INCLUDE_DIR is the directory the KIM include +file is in. [Traditional make]: @@ -296,7 +303,13 @@ library. [CMake build]: -D DOWNLOAD_LATTE=value # download LATTE for build, value = no (default) or yes --D LATTE_LIBRARY=path # path to LATTE shared library (only needed if a custom location) :pre +-D LATTE_LIBRARY=path # LATTE library file (only needed if a custom location) :pre + +If DOWNLOAD_LATTE is set, the LATTE library will be downloaded and +built inside the CMake build directory. If the LATTE library is +already on your system (in a location CMake cannot find it), +LATTE_LIBRARY is the filename (plus path) of the LATTE library file, +not the directory the library file is in. [Traditional make]: @@ -371,8 +384,15 @@ lib/mscg/README and MSCG/Install files for more details. [CMake build]: -D DOWNLOAD_MSCG=value # download MSCG for build, value = no (default) or yes --D MSCG_LIBRARY=path # path to MSCG shared library (only needed if a custom location) --D MSCG_INCLUDE_DIR=path # path to MSCG include directory (only needed if a custom location) :pre +-D MSCG_LIBRARY=path # MSCG library file (only needed if a custom location) +-D MSCG_INCLUDE_DIR=path # MSCG include directory (only needed if a custom location) :pre + +If DOWNLOAD_MSCG is set, the MSCG library will be downloaded and built +inside the CMake build directory. If the MSCG library is already on +your system (in a location CMake cannot find it), MSCG_LIBRARY is the +filename (plus path) of the MSCG library file, not the directory the +library file is in. MSCG_INCLUDE_DIR is the directory the MSCG +include file is in. [Traditional make]: @@ -515,8 +535,15 @@ library"_voro_home. [CMake build]: -D DOWNLOAD_VORO=value # download Voro++ for build, value = no (default) or yes --D VORO_LIBRARY=path # (only needed if at custom location) path to VORO shared library --D VORO_INCLUDE_DIR=path # (only needed if at custom location) path to VORO include directory :pre +-D VORO_LIBRARY=path # Voro++ library file (only needed if at custom location) +-D VORO_INCLUDE_DIR=path # Voro++ include directory (only needed if at custom location) :pre + +If DOWNLOAD_VORO is set, the Voro++ library will be downloaded and +built inside the CMake build directory. If the Voro++ library is +already on your system (in a location CMake cannot find it), +VORO_LIBRARY is the filename (plus path) of the Voro++ library file, +not the directory the library file is in. VORO_INCLUDE_DIR is the +directory the Voro++ include file is in. [Traditional make]: @@ -877,7 +904,10 @@ Eigen3 is a template library, so you do not need to build it. -D DOWNLOAD_EIGEN3 # download Eigen3, value = no (default) or yes -D EIGEN3_INCLUDE_DIR=path # path to Eigen library (only needed if a custom location) :pre -Set EIGEN3_INCLUDE_DIR if CMake cannot find the Eigen3 library. +If DOWNLOAD_EIGEN3 is set, the Eigen3 library will be downloaded and +inside the CMake build directory. If the Eig3n3 library is already on +your system (in a location CMake cannot find it), EIGEN3_INCLUDE_DIR +is the directory the Eigen3++ include file is in. [Traditional make]: From e0fc050bf40563d69c1b1fa71e9c204ed02c618b Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Mon, 20 Aug 2018 15:12:05 -0400 Subject: [PATCH 524/675] Changes to linux makefile. --- lib/gpu/Makefile.linux | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/gpu/Makefile.linux b/lib/gpu/Makefile.linux index ed5b6092d3..be103d7f89 100644 --- a/lib/gpu/Makefile.linux +++ b/lib/gpu/Makefile.linux @@ -8,7 +8,7 @@ EXTRAMAKE = Makefile.lammps.standard ifeq ($(CUDA_HOME),) -CUDA_HOME = /usr/local/cuda +CUDA_HOME = /opt/cuda endif NVCC = nvcc @@ -19,7 +19,7 @@ CUDA_ARCH = -arch=sm_21 #CUDA_ARCH = -arch=sm_13 # older CUDA #CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE -CUDA_ARCH = -arch=sm_35 +CUDA_ARCH = -arch=sm_61 # this setting should match LAMMPS Makefile # one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL From 0ca0e0a93cbee9c68ede714cd9aa379af9f3773b Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 20 Aug 2018 13:36:44 -0600 Subject: [PATCH 525/675] mis-spelled word --- doc/src/Intro_authors.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/src/Intro_authors.txt b/doc/src/Intro_authors.txt index d6258f85a0..b909265a3e 100644 --- a/doc/src/Intro_authors.txt +++ b/doc/src/Intro_authors.txt @@ -26,8 +26,9 @@ and Ray Shan, now at Materials Design. :line The "Authors page"_http://lammps.sandia.gov/authors.html of the -"LAMMPS website"_lws has a comprhensive list of all the individuals who -have contributed code for a new feature or command or tool to LAMMPS. +"LAMMPS website"_lws has a comprehensive list of all the individuals +who have contributed code for a new feature or command or tool to +LAMMPS. :line From c719af8bcd6ae81030f2a0b655c95b4737e423cc Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 20 Aug 2018 13:42:34 -0600 Subject: [PATCH 526/675] remove wrong link optimization flag --- lib/latte/Makefile.lammps.ifort | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/latte/Makefile.lammps.ifort b/lib/latte/Makefile.lammps.ifort index b71b21cca8..90010210af 100644 --- a/lib/latte/Makefile.lammps.ifort +++ b/lib/latte/Makefile.lammps.ifort @@ -6,7 +6,7 @@ latte_SYSINC = latte_SYSLIB = ../../lib/latte/filelink.o \ -llatte -lifport -lifcore -lsvml -lompstub -limf \ -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core \ - -lmkl_intel_thread -lpthread -openmp -O0 + -lmkl_intel_thread -lpthread -openmp latte_SYSPATH = -openmp -L${MKLROOT}/lib/intel64 -lmkl_lapack95_lp64 \ -L/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/intel64 From f8faf4dfe22495a8e465ecb9f38ae0280422e6fe Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 20 Aug 2018 13:50:55 -0600 Subject: [PATCH 527/675] cosmetic tweak to Howto page --- doc/src/Howto.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/doc/src/Howto.txt b/doc/src/Howto.txt index 9d385f23a4..438ea561a1 100644 --- a/doc/src/Howto.txt +++ b/doc/src/Howto.txt @@ -8,14 +8,13 @@ Section"_Examples.html :c :line -How to discussions :h2 +Howto discussions :h2 These doc pages describe how to perform various tasks with LAMMPS, both for users and developers. The "glossary"_http://lammps.sandia.gov website page also lists MD -terminology with links to corresponding LAMMPS manual pages. - -The example input scripts included in the examples dir of the LAMMPS +terminology with links to corresponding LAMMPS manual pages. The +example input scripts included in the examples dir of the LAMMPS distribution and highlighted on the "Examples"_Examples.html doc page also show how to setup and run various kinds of simulations. From 937d4707dc69f069d70c5d4cef1644bd521bc711 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 20 Aug 2018 15:03:21 -0600 Subject: [PATCH 528/675] proposed SJP changes for 2nd cutoff_triple --- doc/src/pair_atm.txt | 17 ++++++++++++----- src/MANYBODY/pair_atm.cpp | 24 ++++++++++++++++++++++-- src/MANYBODY/pair_atm.h | 3 ++- 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index 2e961a1356..c2718973ad 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -10,16 +10,20 @@ pair_style atm command :h3 [Syntax:] -pair_style atm cutoff :pre +SJP: add an arg -cutoff = global cutoff for 3-body interactions (distance units) :ul +pair_style atm cutoff cutoff_triple :pre + +cutoff = cutoff for each pair in 3-body interaction (distance units) +cutoff_triple = additional cutoff applied to product of 3 pairwise distances (distance units) :ul [Examples:] -pair_style atm 2.5 +SJP: is 1.5 a good value? +pair_style atm 2.5 1.5 pair_coeff * * * 0.072 :pre -pair_style hybrid/overlay lj/cut 6.5 atm 2.5 +pair_style hybrid/overlay lj/cut 6.5 atm 2.5 1.5 pair_coeff * * lj/cut 1.0 1.0 pair_coeff 1 1 atm 1 0.064 pair_coeff 1 1 atm 2 0.080 @@ -50,7 +54,10 @@ potential using the "pair_style hybrid/overlay"_pair_hybrid.html command as in the example above. The potential for a triplet of atom is calculated only if all 3 -distances r12, r23, r31 between the 3 atoms satisfy rIJ < cutoff +distances r12, r23, r31 between the 3 atoms satisfy rIJ < cutoff. +SJP: In addition, the product of the 3 distances r12*r23*r31 < +cutoff_triple^3 is required, which limits the contribution of the +potential to ??? The following coefficients must be defined for each pair of atoms types via the "pair_coeff"_pair_coeff.html command as in the examples diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index 9afa36b3c0..e960398ab3 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -92,6 +92,10 @@ void PairATM::compute(int eflag, int vflag) int *type = atom->type; double cutoff_squared = cut_global*cut_global; + // SJP: new cutoff + double triple = cut_triple*cut_triple*cut_triple; + double cutoff_triple_sixth = triple*triple; + inum = list->inum; ilist = list->ilist; numneigh = list->numneigh; @@ -138,6 +142,10 @@ void PairATM::compute(int eflag, int vflag) rik2 = rik[0]*rik[0] + rik[1]*rik[1] + rik[2]*rik[2]; if (rik2 > cutoff_squared) continue; + // SJP: add this line? + + if (rij2*rjk2*rik2 > cutoff_triple_sixth) continue; + nu_local = nu[type[i]][type[j]][type[k]]; if (nu_local == 0.0) continue; @@ -192,9 +200,14 @@ void PairATM::allocate() void PairATM::settings(int narg, char **arg) { - if (narg != 1) error->all(FLERR,"Illegal pair_style command"); + // SJP: change to 2 args, require triple <= global + + if (narg != 2) error->all(FLERR,"Illegal pair_style command"); cut_global = force->numeric(FLERR,arg[0]); + cut_triple = force->numeric(FLERR,arg[1]); + + if (cut_triple > cut_global) error->all(FLERR,"Illegal pair_style command"); } /* ---------------------------------------------------------------------- @@ -311,6 +324,8 @@ void PairATM::read_restart(FILE *fp) void PairATM::write_restart_settings(FILE *fp) { fwrite(&cut_global,sizeof(double),1,fp); + // SJP: 2nd arg + fwrite(&cut_triple,sizeof(double),1,fp); } /* ---------------------------------------------------------------------- @@ -319,9 +334,14 @@ void PairATM::write_restart_settings(FILE *fp) void PairATM::read_restart_settings(FILE *fp) { + // SJP: 2nd arg int me = comm->me; - if (me == 0) fread(&cut_global,sizeof(double),1,fp); + if (me == 0) { + fread(&cut_global,sizeof(double),1,fp); + fread(&cut_triple,sizeof(double),1,fp); + } MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_triple,1,MPI_DOUBLE,0,world); } /* ---------------------------------------------------------------------- diff --git a/src/MANYBODY/pair_atm.h b/src/MANYBODY/pair_atm.h index 60d22348c3..cc868df832 100644 --- a/src/MANYBODY/pair_atm.h +++ b/src/MANYBODY/pair_atm.h @@ -39,7 +39,8 @@ class PairATM : public Pair { void read_restart_settings(FILE *); protected: - double cut_global, cutoff_squared; + // SJP: add 2nd cutoff + double cut_global,cut_triple; double ***nu; void allocate(); From d66d696dff4f6bacbd9254da0fe00887a9629f3e Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 20 Aug 2018 22:34:32 -0400 Subject: [PATCH 529/675] minor tweak --- doc/src/Speed_gpu.txt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/src/Speed_gpu.txt b/doc/src/Speed_gpu.txt index 3ae4639dc2..4a075516ce 100644 --- a/doc/src/Speed_gpu.txt +++ b/doc/src/Speed_gpu.txt @@ -48,12 +48,11 @@ hardware. :l To use this package, you currently need to have an NVIDIA GPU and install the NVIDIA CUDA software on your system: -Check if you have an NVIDIA GPU: cat -/proc/driver/nvidia/gpus/0/information Go to -http://www.nvidia.com/object/cuda_get.html Install a driver and -toolkit appropriate for your system (SDK is not necessary) Run -lammps/lib/gpu/nvc_get_devices (after building the GPU library, see -below) to list supported devices and properties :ul +Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/*/information :ulb,l +Go to http://www.nvidia.com/object/cuda_get.html :l +Install a driver and toolkit appropriate for your system (SDK is not necessary) :l +Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) to +list supported devices and properties :ule,l [Building LAMMPS with the GPU package:] From 95d462e5d3dc456cce8ab14198d1a0010e7d1527 Mon Sep 17 00:00:00 2001 From: jrgissing Date: Tue, 21 Aug 2018 02:28:53 -0600 Subject: [PATCH 530/675] bond/react: better template validity check now always throws error if a bond type changes, but both of of the involved atoms are too close to edge of template --- doc/src/fix_bond_react.txt | 8 +++---- src/USER-MISC/fix_bond_react.cpp | 40 ++++++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/doc/src/fix_bond_react.txt b/doc/src/fix_bond_react.txt index 7317dd26bb..327088cb99 100644 --- a/doc/src/fix_bond_react.txt +++ b/doc/src/fix_bond_react.txt @@ -125,13 +125,13 @@ template. If both these conditions are met, the reaction site is modified to match the post-reaction template. A bonding atom pair will be identified if several conditions are met. -First, a pair of atoms within the specified react-group-ID of type -typei and typej must separated by a distance between {Rmin} and +First, a pair of atoms I,J within the specified react-group-ID of type +itype and jtype must separated by a distance between {Rmin} and {Rmax}. It is possible that multiple bonding atom pairs are identified: if the bonding atoms in the pre-reacted template are not 1-2, 1-3, or 1-4 neighbors, the closest bonding atom partner is set as its bonding partner; otherwise, the farthest potential partner is -chosen. Then, if both an atomi and atomj have each other as their +chosen. Then, if both an atom I and atom J have each other as their nearest bonding partners, these two atoms are identified as the bonding atom pair of the reaction site. Once this unique bonding atom pair is identified for each reaction, there could two or more @@ -323,7 +323,7 @@ bond/break"_fix_bond_break.html, "fix bond/swap"_fix_bond_swap.html, [Default:] -The option defaults are stabilization = no, stabilize_steps = 60 +The option defaults are stabilization = no, prob = 1.0, stabilize_steps = 60 :line diff --git a/src/USER-MISC/fix_bond_react.cpp b/src/USER-MISC/fix_bond_react.cpp index c72a1b027b..d529848e39 100644 --- a/src/USER-MISC/fix_bond_react.cpp +++ b/src/USER-MISC/fix_bond_react.cpp @@ -1063,8 +1063,8 @@ void FixBondReact::superimpose_algorithm() hang_catch++; // let's go ahead and catch the simplest of hangs //if (hang_catch > onemol->natoms*4) - if (hang_catch > atom->nlocal*3) { - error->all(FLERR,"Excessive iteration of superimpose algorithm"); + if (hang_catch > atom->nlocal*30) { + error->one(FLERR,"Excessive iteration of superimpose algorithm"); } } } @@ -1554,6 +1554,42 @@ void FixBondReact::find_landlocked_atoms(int myrxn) error->one(FLERR,"Atom affected by reaction too close to template edge"); } + // additionally, if a bond changes type, but neither involved atom is landlocked, bad + // would someone want to change an angle type but not bond or atom types? (etc.) ...hopefully not yet + for (int i = 0; i < twomol->natoms; i++) { + if (landlocked_atoms[i][myrxn] == 0) { + int twomol_atomi = i+1; + for (int j = 0; j < twomol->num_bond[i]; j++) { + int twomol_atomj = twomol->bond_atom[i][j]; + if (landlocked_atoms[twomol_atomj-1][myrxn] == 0) { + int onemol_atomi = equivalences[i][1][myrxn]; + int onemol_batom; + for (int m = 0; m < onemol->num_bond[onemol_atomi-1]; m++) { + onemol_batom = onemol->bond_atom[onemol_atomi-1][m]; + if (onemol_batom == equivalences[twomol_atomj-1][1][myrxn]) { + if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomi-1][m]) { + printf("%d and %d for rxn %d\n",twomol_atomi,twomol_atomj,myrxn); + error->one(FLERR,"Bond type affected by reaction too close to template edge"); + } + } + } + if (newton_bond) { + int onemol_atomj = equivalences[twomol_atomj-1][1][myrxn]; + for (int m = 0; m < onemol->num_bond[onemol_atomj-1]; m++) { + onemol_batom = onemol->bond_atom[onemol_atomj-1][m]; + if (onemol_batom == equivalences[i][1][myrxn]) { + if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomj-1][m]) { + printf("%d and %d for rxn %d\n",twomol_atomi,twomol_atomj,myrxn); + error->one(FLERR,"Bond type affected by reaction too close to template edge"); + } + } + } + } + } + } + } + } + // also, if atoms change number of bonds, but aren't landlocked, that could be bad if (me == 0) for (int i = 0; i < twomol->natoms; i++) { From 2b5618dc404c6ffa27bce91758986523a3acf86e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 21 Aug 2018 06:50:30 -0400 Subject: [PATCH 531/675] Updates for Speed_gpu.txt doc page This corrects some inaccurate statements about required hardware and briefly discusses some OpenCL related basics. also a typo is fixed --- doc/src/Speed_gpu.txt | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/doc/src/Speed_gpu.txt b/doc/src/Speed_gpu.txt index 4a075516ce..acef5bf6c1 100644 --- a/doc/src/Speed_gpu.txt +++ b/doc/src/Speed_gpu.txt @@ -9,17 +9,17 @@ Documentation"_ld - "LAMMPS Commands"_lc :c GPU package :h3 -The GPU package was developed by Mike Brown at ORNL and his -collaborators, particularly Trung Nguyen (ORNL). It provides GPU -versions of many pair styles, including the 3-body Stillinger-Weber -pair style, and for "kspace_style pppm"_kspace_style.html for -long-range Coulombics. It has the following general features: +The GPU package was developed by Mike Brown while at SNL and ORNL +and his collaborators, particularly Trung Nguyen (now at Northwestern). +It provides GPU versions of many pair styles and for parts of the +"kspace_style pppm"_kspace_style.html for long-range Coulombics. +It has the following general features: It is designed to exploit common GPU hardware configurations where one or more GPUs are coupled to many cores of one or more multi-core CPUs, e.g. within a node of a parallel machine. :ulb,l -Atom-based data (e.g. coordinates, forces) moves back-and-forth +Atom-based data (e.g. coordinates, forces) are moved back-and-forth between the CPU(s) and GPU every timestep. :l Neighbor lists can be built on the CPU or on the GPU :l @@ -28,8 +28,8 @@ The charge assignment and force interpolation portions of PPPM can be run on the GPU. The FFT portion, which requires MPI communication between processors, runs on the CPU. :l -Asynchronous force computations can be performed simultaneously on the -CPU(s) and GPU. :l +Force computations of different style (pair vs. bond/angle/dihedral/improper) +can be performed concurrently on the GPU and CPU(s), respectively. :l It allows for GPU computations to be performed in single or double precision, or in mixed-mode precision, where pairwise forces are @@ -39,14 +39,15 @@ force vectors. :l LAMMPS-specific code is in the GPU package. It makes calls to a generic GPU library in the lib/gpu directory. This library provides NVIDIA support as well as more general OpenCL support, so that the -same functionality can eventually be supported on a variety of GPU -hardware. :l +same functionality is supported on a variety of hardware. :l :ule [Required hardware/software:] -To use this package, you currently need to have an NVIDIA GPU and -install the NVIDIA CUDA software on your system: +To compile and use this package in CUDA mode, you currently need +to have an NVIDIA GPU and install the corresponding NVIDIA CUDA +toolkit software on your system (this is primarily tested on Linux +and completely unsupported on Windows): Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/*/information :ulb,l Go to http://www.nvidia.com/object/cuda_get.html :l @@ -54,6 +55,17 @@ Install a driver and toolkit appropriate for your system (SDK is not necessary) Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) to list supported devices and properties :ule,l +To compile and use this package in OpenCL mode, you currently need +to have the OpenCL headers and the (vendor neutral) OpenCL library installed. +In OpenCL mode, the acceleration depends on having an "OpenCL Installable Client +Driver (ICD)"_https://www.khronos.org/news/permalink/opencl-installable-client-driver-icd-loader +installed. There can be multiple of them for the same or different hardware +(GPUs, CPUs, Accelerators) installed at the same time. OpenCL refers to those +as 'platforms'. The GPU library will select the [first] suitable platform, +but this can be overridded using the device option of the "package"_package.html +command. run lammps/lib/gpu/ocl_get_devices to get a list of available +platforms and devices with a suitable ICD available. + [Building LAMMPS with the GPU package:] See the "Build extras"_Build_extras.html#gpu doc page for @@ -119,7 +131,10 @@ GPUs/node to use, as well as other options. The performance of a GPU versus a multi-core CPU is a function of your hardware, which pair style is used, the number of atoms/GPU, and the -precision used on the GPU (double, single, mixed). +precision used on the GPU (double, single, mixed). Using the GPU package +in OpenCL mode on CPUs (which uses vectorization and multithreading) is +usually resulting in inferior performance compared to using LAMMPS' native +threading and vectorization support in the USER-OMP and USER-INTEL packages. See the "Benchmark page"_http://lammps.sandia.gov/bench.html of the LAMMPS web site for performance of the GPU package on various @@ -145,7 +160,7 @@ The "package gpu"_package.html command has several options for tuning performance. Neighbor lists can be built on the GPU or CPU. Force calculations can be dynamically balanced across the CPU cores and GPUs. GPU-specific settings can be made which can be optimized -for different hardware. See the "packakge"_package.html command +for different hardware. See the "package"_package.html command doc page for details. :l As described by the "package gpu"_package.html command, GPU From fd788e5bbd4eb69ad5663012481c0d1402dffc0a Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Tue, 21 Aug 2018 09:25:06 -0600 Subject: [PATCH 532/675] cmake/README.md: add BUILD_EXE option --- cmake/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cmake/README.md b/cmake/README.md index 85375cd2aa..21e728c1f0 100644 --- a/cmake/README.md +++ b/cmake/README.md @@ -275,6 +275,16 @@ cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake + + + + + From fc7d9ff558482730137755ce86cfd26af1b37f77 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 21 Aug 2018 11:12:21 -0600 Subject: [PATCH 533/675] apply PBC to coords passed to scafacos --- src/USER-SCAFACOS/scafacos.cpp | 50 ++++++++++++++++++++++------------ src/USER-SCAFACOS/scafacos.h | 4 +-- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 5832f5b052..23d51b07b8 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -101,8 +101,8 @@ void Scafacos::init() if (logfile && me == 0) fprintf(logfile, "Setting up ScaFaCoS with solver %s ...\n",method); - if (!atom->q_flag) error->all(FLERR, - "Kspace style requires atom attribute q"); + if (!atom->q_flag) + error->all(FLERR,"Kspace style requires atom attribute q"); if (domain->dimension == 2) error->all(FLERR,"Cannot use ScaFaCoS with 2d simulation"); @@ -166,15 +166,12 @@ void Scafacos::init() // more useful here, since the parameters should be tuned now if (me == 0) fcs_print_parameters(fcs); } + initialized = 1; } /* ---------------------------------------------------------------------- */ -void Scafacos::setup() {} - -/* ---------------------------------------------------------------------- */ - void Scafacos::compute(int eflag, int vflag) { double **x = atom->x; @@ -209,20 +206,14 @@ void Scafacos::compute(int eflag, int vflag) check_result(result); } - // grow epot & efield if necessary + // grow xpbc, epot, efield if necessary - if (nlocal == 0 && maxatom == 0) { - memory->destroy(epot); - memory->destroy(efield); - maxatom = 1; - memory->create(epot,maxatom,"scafacos:epot"); - memory->create(efield,maxatom,3,"scafacos:efield"); - } - - if (nlocal > maxatom) { + if (nlocal > maxatom || maxatom == 0) { + memory->destroy(xpbc); memory->destroy(epot); memory->destroy(efield); maxatom = atom->nmax; + memory->create(xpbc,3*maxatom,"scafacos:xpbc"); memory->create(epot,maxatom,"scafacos:epot"); memory->create(efield,maxatom,3,"scafacos:efield"); } @@ -231,12 +222,27 @@ void Scafacos::compute(int eflag, int vflag) { fcs_set_compute_virial(fcs,1); if (strcmp(method,"p3m") == 0) - error->all(FLERR,"ScaFaCoS p3m does not support the computation of virial"); + error->all(FLERR,"ScaFaCoS p3m does not support computation of virial"); } - result = fcs_run(fcs,nlocal,&x[0][0],q,&efield[0][0],epot); + // pack coords into xpbc and apply PBC + + double **x = atom->x; + memcpy(xpbc,&x[0][0],3*nlocal*sizeof(double)); + + int j = 0; + for (int i = 0; i < nlocal; i++) { + domain->remap(&xpbc[j]); + j += 3; + } + + // invoke ScaFaCoS solver + + result = fcs_run(fcs,nlocal,xpbc,q,&efield[0][0],epot); check_result(result); + // extract virial + if (vflag_global) { fcs_get_virial(fcs,virial_int); @@ -272,6 +278,14 @@ void Scafacos::compute(int eflag, int vflag) MPI_Allreduce(&myeng,&energy,1,MPI_DOUBLE,MPI_SUM,world); } +/* ---------------------------------------------------------------------- + pack local coords into xpbc, enforcing PBC +------------------------------------------------------------------------- */ + +void Scafacos::pack_coords() +{ +} + /* ---------------------------------------------------------------------- */ int Scafacos::modify_param(int narg, char **arg) diff --git a/src/USER-SCAFACOS/scafacos.h b/src/USER-SCAFACOS/scafacos.h index 8f7c46dc6b..bf07b3b45a 100644 --- a/src/USER-SCAFACOS/scafacos.h +++ b/src/USER-SCAFACOS/scafacos.h @@ -30,7 +30,7 @@ class Scafacos : public KSpace { Scafacos(class LAMMPS *, int, char **); ~Scafacos(); void init(); - void setup(); + void setup() {} void compute(int, int); int modify_param(int, char **); double memory_usage(); @@ -40,7 +40,7 @@ class Scafacos : public KSpace { char *method; double tolerance; - double *epot,**efield; + double *xpbc,*epot,**efield; int tolerance_type; int initialized,maxatom; From 4b0382cadd10132f55e98fda4a5e7f710d5dbdf6 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 21 Aug 2018 14:45:01 -0400 Subject: [PATCH 534/675] Fixes issue #1069 --- python/lammps.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/python/lammps.py b/python/lammps.py index 2f4ffb642e..598e4c506f 100644 --- a/python/lammps.py +++ b/python/lammps.py @@ -173,6 +173,9 @@ class lammps(object): self.lib.lammps_open(narg,cargs,comm_val,byref(self.lmp)) else: + if lammps.has_mpi4py: + from mpi4py import MPI + self.comm = MPI.COMM_WORLD self.opened = 1 if cmdargs: cmdargs.insert(0,"lammps.py") @@ -862,6 +865,10 @@ class PyLammps(object): def run(self, *args, **kwargs): output = self.__getattr__('run')(*args, **kwargs) + + if(lammps.has_mpi4py): + output = self.lmp.comm.bcast(output, root=0) + self.runs += get_thermo_data(output) return output From 3573970e4a168c409d3cef2a6c6c3008504c6043 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 21 Aug 2018 17:04:52 -0600 Subject: [PATCH 535/675] fixed double definition, removed virial check for p3m and removed unused function definition Scafacos::pack... --- src/USER-SCAFACOS/scafacos.cpp | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 23d51b07b8..d68d3db323 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -198,13 +198,6 @@ void Scafacos::compute(int eflag, int vflag) vflag_global = 0; } - // if simulation box has changed, call fcs_tune() - - if (box_has_changed()) { - setup_handle(); - result = fcs_tune(fcs,nlocal,&x[0][0],q); - check_result(result); - } // grow xpbc, epot, efield if necessary @@ -221,13 +214,11 @@ void Scafacos::compute(int eflag, int vflag) if (vflag_global) { fcs_set_compute_virial(fcs,1); - if (strcmp(method,"p3m") == 0) - error->all(FLERR,"ScaFaCoS p3m does not support computation of virial"); + //if (strcmp(method,"p3m") == 0) + // error->all(FLERR,"ScaFaCoS p3m does not support computation of virial"); } // pack coords into xpbc and apply PBC - - double **x = atom->x; memcpy(xpbc,&x[0][0],3*nlocal*sizeof(double)); int j = 0; @@ -236,6 +227,14 @@ void Scafacos::compute(int eflag, int vflag) j += 3; } + // if simulation box has changed, call fcs_tune() + + if (box_has_changed()) { + setup_handle(); + result = fcs_tune(fcs,nlocal,xpbc,q); + check_result(result); + } + // invoke ScaFaCoS solver result = fcs_run(fcs,nlocal,xpbc,q,&efield[0][0],epot); @@ -278,14 +277,6 @@ void Scafacos::compute(int eflag, int vflag) MPI_Allreduce(&myeng,&energy,1,MPI_DOUBLE,MPI_SUM,world); } -/* ---------------------------------------------------------------------- - pack local coords into xpbc, enforcing PBC -------------------------------------------------------------------------- */ - -void Scafacos::pack_coords() -{ -} - /* ---------------------------------------------------------------------- */ int Scafacos::modify_param(int narg, char **arg) From c23534019c5077ef208c3a36b439095e5376f5c6 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 21 Aug 2018 17:28:42 -0600 Subject: [PATCH 536/675] fixed typo in example file name --- .../{data.hammersley_shphere => data.hammersley_sphere} | 6 +++--- examples/USER/scafacos/in.scafacos.hsph.direct | 2 +- examples/USER/scafacos/in.scafacos.hsph.fmm | 2 +- examples/USER/scafacos/in.scafacos.hsph.p2nfft | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) rename examples/USER/scafacos/{data.hammersley_shphere => data.hammersley_sphere} (99%) diff --git a/examples/USER/scafacos/data.hammersley_shphere b/examples/USER/scafacos/data.hammersley_sphere similarity index 99% rename from examples/USER/scafacos/data.hammersley_shphere rename to examples/USER/scafacos/data.hammersley_sphere index e0d067adfb..0d238ebf8f 100644 --- a/examples/USER/scafacos/data.hammersley_shphere +++ b/examples/USER/scafacos/data.hammersley_sphere @@ -4,9 +4,9 @@ LAMMPS Description 1 atom types --50.5 51.5 xlo xhi --50.5 51.5 ylo yhi --50.5 51.5 zlo zhi +-51.5 51.5 xlo xhi +-51.5 51.5 ylo yhi +-51.5 51.5 zlo zhi Masses diff --git a/examples/USER/scafacos/in.scafacos.hsph.direct b/examples/USER/scafacos/in.scafacos.hsph.direct index 60448880ec..3688b5157c 100644 --- a/examples/USER/scafacos/in.scafacos.hsph.direct +++ b/examples/USER/scafacos/in.scafacos.hsph.direct @@ -3,7 +3,7 @@ units lj atom_style charge -read_data data.hammersley_shphere +read_data data.hammersley_sphere change_box all boundary f f f velocity all create 1.5 49893 diff --git a/examples/USER/scafacos/in.scafacos.hsph.fmm b/examples/USER/scafacos/in.scafacos.hsph.fmm index 515809dbde..48a60a4b8b 100644 --- a/examples/USER/scafacos/in.scafacos.hsph.fmm +++ b/examples/USER/scafacos/in.scafacos.hsph.fmm @@ -3,7 +3,7 @@ units lj atom_style charge -read_data data.hammersley_shphere +read_data data.hammersley_sphere change_box all boundary f f f velocity all create 1.5 49893 diff --git a/examples/USER/scafacos/in.scafacos.hsph.p2nfft b/examples/USER/scafacos/in.scafacos.hsph.p2nfft index d690a29e49..a91f8f91c7 100644 --- a/examples/USER/scafacos/in.scafacos.hsph.p2nfft +++ b/examples/USER/scafacos/in.scafacos.hsph.p2nfft @@ -3,7 +3,7 @@ units lj atom_style charge -read_data data.hammersley_shphere +read_data data.hammersley_sphere change_box all boundary f f f velocity all create 1.5 49893 From bfd711ad12e2a6fd56aba5ff69de7efc8d025fcc Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 21 Aug 2018 17:29:38 -0600 Subject: [PATCH 537/675] fixed missing initialization of xpbc as well as deallocation in constructor --- src/USER-SCAFACOS/scafacos.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index d68d3db323..f3e8ce64f7 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -74,6 +74,7 @@ Scafacos::Scafacos(LAMMPS *lmp, int narg, char **arg) : KSpace(lmp, narg, arg) initialized = 0; maxatom = 0; + xpbc = NULL; epot = NULL; efield = NULL; } @@ -84,6 +85,7 @@ Scafacos::~Scafacos() { delete [] method; + memory->destroy(xpbc); memory->destroy(epot); memory->destroy(efield); @@ -221,10 +223,12 @@ void Scafacos::compute(int eflag, int vflag) // pack coords into xpbc and apply PBC memcpy(xpbc,&x[0][0],3*nlocal*sizeof(double)); - int j = 0; + //int j = 0; for (int i = 0; i < nlocal; i++) { - domain->remap(&xpbc[j]); - j += 3; + if (domain->xperiodic) domain->remap(&xpbc[3*i]); + if (domain->yperiodic) domain->remap(&xpbc[3*i+1]); + if (domain->zperiodic) domain->remap(&xpbc[3*i+2]); + //j += 3; } // if simulation box has changed, call fcs_tune() From fd0b041e0e06091085afc4a9236abd44ff043eb8 Mon Sep 17 00:00:00 2001 From: jrgissing Date: Tue, 21 Aug 2018 21:10:34 -0600 Subject: [PATCH 538/675] remove debugging comments --- src/USER-MISC/fix_bond_react.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/USER-MISC/fix_bond_react.cpp b/src/USER-MISC/fix_bond_react.cpp index d529848e39..d71a31f566 100644 --- a/src/USER-MISC/fix_bond_react.cpp +++ b/src/USER-MISC/fix_bond_react.cpp @@ -1568,7 +1568,6 @@ void FixBondReact::find_landlocked_atoms(int myrxn) onemol_batom = onemol->bond_atom[onemol_atomi-1][m]; if (onemol_batom == equivalences[twomol_atomj-1][1][myrxn]) { if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomi-1][m]) { - printf("%d and %d for rxn %d\n",twomol_atomi,twomol_atomj,myrxn); error->one(FLERR,"Bond type affected by reaction too close to template edge"); } } @@ -1579,7 +1578,6 @@ void FixBondReact::find_landlocked_atoms(int myrxn) onemol_batom = onemol->bond_atom[onemol_atomj-1][m]; if (onemol_batom == equivalences[i][1][myrxn]) { if (twomol->bond_type[i][j] != onemol->bond_type[onemol_atomj-1][m]) { - printf("%d and %d for rxn %d\n",twomol_atomi,twomol_atomj,myrxn); error->one(FLERR,"Bond type affected by reaction too close to template edge"); } } From 2baa0b34521f43d401930cffbb1abda1042b51d1 Mon Sep 17 00:00:00 2001 From: jrgissing Date: Wed, 22 Aug 2018 03:32:17 -0600 Subject: [PATCH 539/675] nasty little bug --- src/USER-MISC/fix_bond_react.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/USER-MISC/fix_bond_react.cpp b/src/USER-MISC/fix_bond_react.cpp index d71a31f566..5ce1f11475 100644 --- a/src/USER-MISC/fix_bond_react.cpp +++ b/src/USER-MISC/fix_bond_react.cpp @@ -2101,7 +2101,7 @@ void FixBondReact::update_everything() nspecial[atom->map(update_mega_glove[jj+1][i])][1]++; nspecial[atom->map(update_mega_glove[jj+1][i])][2]++; } - for (int n = nspecial[atom->map(update_mega_glove[jj+1][i])][2]; n > insert_num; n--) { + for (int n = nspecial[atom->map(update_mega_glove[jj+1][i])][2]-1; n > insert_num; n--) { special[atom->map(update_mega_glove[jj+1][i])][n] = special[atom->map(update_mega_glove[jj+1][i])][n-1]; } special[atom->map(update_mega_glove[jj+1][i])][insert_num] = update_mega_glove[equivalences[twomol->special[j][k]-1][1][rxnID]][i]; From 87afaa44fdef4992d900864ee7519935287ef812 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 09:41:12 -0400 Subject: [PATCH 540/675] add notes on compiling LAMMPS for windows --- doc/src/Build.txt | 4 +- doc/src/Build_windows.txt | 83 +++++++++++++++++++++++++++++++++++++++ doc/src/lammps.book | 1 + 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 doc/src/Build_windows.txt diff --git a/doc/src/Build.txt b/doc/src/Build.txt index 1046171de1..df30af36f5 100644 --- a/doc/src/Build.txt +++ b/doc/src/Build.txt @@ -28,6 +28,7 @@ as described on the "Install"_Install.html doc page. Build_settings Build_package Build_extras + Build_windows END_RST --> @@ -39,7 +40,8 @@ END_RST --> "Basic build options"_Build_basics.html "Optional build settings"_Build_settings.html "Include packages in build"_Build_package.html -"Packages with extra build options"_Build_extras.html :all(b) +"Packages with extra build options"_Build_extras.html +"Notes for building LAMMPS on Windows"_Build_windows.html :all(b) If you have problems building LAMMPS, it is often due to software issues on your local machine. If you can, find a local expert to diff --git a/doc/src/Build_windows.txt b/doc/src/Build_windows.txt new file mode 100644 index 0000000000..4d4efb398f --- /dev/null +++ b/doc/src/Build_windows.txt @@ -0,0 +1,83 @@ +"Higher level section"_Build.html - "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 + +Notes for building LAMMPS on Windows :h3 + +"General remarks"_#general +"Running Linux on Windows"_#linux +"Using GNU GCC ported to Windows"_#gnu +"Using a cross-compiler"_#cross + +:line + +General remarks :h4,link(general) + +LAMMPS is developed and tested primarily on Linux machines. The vast +majority of HPC clusters and supercomputers today runs on Linux as well. +Thus portability to other platforms is desired, but not always achieved. +The LAMMPS developers strongly rely on LAMMPS users giving feedback and +providing assistance in resolving portability issues. This particularly +true for compiling LAMMPS on Windows, since this platform has significant +differences with some low-level functionality. + + +Running Linux on Windows :h4,link(linux) + +So before trying to build LAMMPS on Windows, please consider if using +the pre-compiled Windows binary packages are sufficient for your needs +(as an aside, those packages themselves are build on a Linux machine +using cross-compilers). If it is necessary for your to compile LAMMPS +on a Windows machine (e.g. because it is your main desktop), please also +consider using a virtual machine software and run a Linux virtual machine, +or - if have a recently updated Windows 10 installation - consider using +the Windows subsystem for Linux, which allows to run a bash shell from +Ubuntu and from there on, you can pretty much use that shell like you +are running on an Ubuntu Linux machine (e.g. installing software via +apt-get). For more details on that, please see "this tutorial"_Howto_bash.html + + +Using GNU GCC ported to Windows :h4,link(gnu) + +One option for compiling LAMMPS on Windows natively, that has been known +to work in the past is to install a bash shell, unix shell utilities, +perl, GNU make, and a GNU compiler ported to Windows. The Cygwin package +provides a unix/linux interface to low-level Windows functions, so LAMMPS +can be compiled on Windows. The necessary (minor) modifications to LAMMPS +are included, but may not always up-to-date for recently added functionality +and the corresponding new code. A machine makefile for using cygwin for +the old build system is provided. The CMake build system is untested +for this; you will have to request that makefiles are generated and +manually set the compiler. In case of problems, you are recommended to +contact somebody with experience in using cygwin. If you come across +portability problems requiring changes to the LAMMPS source code, or +figure out corrections yourself, please report them on the lammps-users +mailing list, or file them as an issue or pull request on the LAMMPS +github project. + + +Using a cross-compiler :h4,link(cross) + +If you need to provide custom LAMMPS binaries for Windows, but do not +need to do the compilation on Windows, please consider using a Linux +to Windows cross-compiler. This is how currently the Windows binary +packages are created by the LAMMPS developers. Because of that, this is +probably the currently best tested and supported way to build LAMMPS +executables for Windows. Please keep in mind, though, that this only +applies to compiling. Whether the resulting binaries do work correctly +is no tested. The LAMMPS developers rely on the feedback of the users +of the precompiled LAMMPS packages for Windows to become aware of +issues and then try to apply corrections, if possible. + + +Native Visual C++ support :h4,link(native) + +Support for the Visual C++ compilers is currently not available. The +CMake build system is capable of creating suitable a Visual Studio +style build environment, but the LAMMPS code itself is not fully ported +to support Visual C++. Volunteers to take on this task are welcome. diff --git a/doc/src/lammps.book b/doc/src/lammps.book index f1ff39d80b..47d05570be 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -25,6 +25,7 @@ Build_basics.html Build_settings.html Build_package.html Build_extras.html +Build_windows.html Run_head.html Run_basics.html Run_options.html From c4bda59f9ac8ea225a86131cd1781bc41a10dbf6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 09:41:29 -0400 Subject: [PATCH 541/675] make the statement, that the group id is ignored more visible --- doc/src/compute_pair.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/src/compute_pair.txt b/doc/src/compute_pair.txt index a2c25fcc8d..b309019e30 100644 --- a/doc/src/compute_pair.txt +++ b/doc/src/compute_pair.txt @@ -27,7 +27,9 @@ compute 1 all pair reax :pre Define a computation that extracts additional values calculated by a pair style, and makes them accessible for output or further processing -by other commands. The group specified for this command is ignored. +by other commands. + +NOTE: The group specified for this command is [ignored]. The specified {pstyle} must be a pair style used in your simulation either by itself or as a sub-style in a "pair_style hybrid or From fc47b8c6ddd462794018230c31979c7be4d1f1d8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 09:51:29 -0400 Subject: [PATCH 542/675] some more tweaks and epxlanations for windows support --- doc/src/Build_windows.txt | 40 ++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/doc/src/Build_windows.txt b/doc/src/Build_windows.txt index 4d4efb398f..e847711705 100644 --- a/doc/src/Build_windows.txt +++ b/doc/src/Build_windows.txt @@ -9,14 +9,14 @@ Documentation"_ld - "LAMMPS Commands"_lc :c Notes for building LAMMPS on Windows :h3 -"General remarks"_#general +"General remarks"_#generic "Running Linux on Windows"_#linux "Using GNU GCC ported to Windows"_#gnu "Using a cross-compiler"_#cross :line -General remarks :h4,link(general) +General remarks :h4,link(generic) LAMMPS is developed and tested primarily on Linux machines. The vast majority of HPC clusters and supercomputers today runs on Linux as well. @@ -53,12 +53,20 @@ are included, but may not always up-to-date for recently added functionality and the corresponding new code. A machine makefile for using cygwin for the old build system is provided. The CMake build system is untested for this; you will have to request that makefiles are generated and -manually set the compiler. In case of problems, you are recommended to -contact somebody with experience in using cygwin. If you come across -portability problems requiring changes to the LAMMPS source code, or -figure out corrections yourself, please report them on the lammps-users -mailing list, or file them as an issue or pull request on the LAMMPS -github project. +manually set the compiler. + +When compiling for Windows [not] set the -DLAMMPS_MEMALIGN define +in the LMP_INC makefile variable and add -lwsock32 -lpsapi to the linker +flags in LIB makefile variable. Try adding -static-libgcc or -static or +both to the linker flags when your resulting LAMMPS Windows executable +complains about missing .dll files. The CMake configuration should set +this up automatically, but is untested. + +In case of problems, you are recommended to contact somebody with +experience in using cygwin. If you do come across portability problems +requiring changes to the LAMMPS source code, or figure out corrections +yourself, please report them on the lammps-users mailing list, or file +them as an issue or pull request on the LAMMPS github project. Using a cross-compiler :h4,link(cross) @@ -68,11 +76,17 @@ need to do the compilation on Windows, please consider using a Linux to Windows cross-compiler. This is how currently the Windows binary packages are created by the LAMMPS developers. Because of that, this is probably the currently best tested and supported way to build LAMMPS -executables for Windows. Please keep in mind, though, that this only -applies to compiling. Whether the resulting binaries do work correctly -is no tested. The LAMMPS developers rely on the feedback of the users -of the precompiled LAMMPS packages for Windows to become aware of -issues and then try to apply corrections, if possible. +executables for Windows. There are makefiles provided for the +traditional build system, but CMake has also been successfully tested +using the mingw32-cmake and mingw64-cmake wrappers that are bundled +with the cross-compiler environment on Fedora machines. + +Please keep in mind, though, that this only applies to compiling LAMMPS. +Whether the resulting binaries do work correctly is no tested by the +LAMMPS developers. We instead rely on the feedback of the users +of these precompiled LAMMPS packages for Windows. We will try to resolve +issues to the best of our abilities if we become aware of them. However +this is subject to time constraints and focus on HPC platforms. Native Visual C++ support :h4,link(native) From 9d4994b38328030935dcdb5a6e6e5585a2719e96 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 22 Aug 2018 10:08:56 -0400 Subject: [PATCH 543/675] Add missing bullet points --- doc/src/Build_windows.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Build_windows.txt b/doc/src/Build_windows.txt index e847711705..da257ccbc8 100644 --- a/doc/src/Build_windows.txt +++ b/doc/src/Build_windows.txt @@ -12,7 +12,7 @@ Notes for building LAMMPS on Windows :h3 "General remarks"_#generic "Running Linux on Windows"_#linux "Using GNU GCC ported to Windows"_#gnu -"Using a cross-compiler"_#cross +"Using a cross-compiler"_#cross :ul :line From b47e49223377d4ff6779e712bae54bbddc3596cf Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 22 Aug 2018 08:45:41 -0600 Subject: [PATCH 544/675] patch 22Aug18 --- doc/src/Manual.txt | 4 ++-- src/version.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index c5e5aff61b..ad3e66a4b2 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ LAMMPS Users Manual - + @@ -21,7 +21,7 @@ :line LAMMPS Documentation :c,h1 -16 Aug 2018 version :c,h2 +22 Aug 2018 version :c,h2 "What is a LAMMPS version?"_Manual_version.html diff --git a/src/version.h b/src/version.h index db73df1ad1..2192b25d91 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "16 Aug 2018" +#define LAMMPS_VERSION "22 Aug 2018" From f466c6407129641e9e9c29ab57f99f826a68cb53 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 22 Aug 2018 09:21:54 -0600 Subject: [PATCH 545/675] enable merge to current GH master --- doc/src/Packages_details.txt | 1544 +++++++--------------------------- 1 file changed, 299 insertions(+), 1245 deletions(-) diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 4bbb235245..892774be38 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -17,100 +17,97 @@ library it requires. It also gives links to documentation, example scripts, and pictures/movies (if available) that illustrate use of the package. +The majority of packages can be included in a LAMMPS build with a +single setting (-D PGK_NAME for CMake) or command ("make yes-name" for +make). See the "Build package"_Build_package.html doc page for more +info. A few packages may require additional steps; this is indicated +in the descriptions below. The "Build extras"_Build_extras.html doc +page gives those details. + NOTE: To see the complete list of commands a package adds to LAMMPS, you can examine the files in its src directory, e.g. "ls src/GRANULAR". Files with names that start with fix, compute, atom, pair, bond, angle, etc correspond to commands with the same style name as contained in the file name. -"ASPHERE"_#ASPHERE, -"BODY"_#BODY, -"CLASS2"_#CLASS2, -"COLLOID"_#COLLOID, -"COMPRESS"_#COMPRESS, -"CORESHELL"_#CORESHELL, -"DIPOLE"_#DIPOLE, -"GPU"_#GPU, -"GRANULAR"_#GRANULAR, -"KIM"_#KIM, -"KOKKOS"_#KOKKOS, -"KSPACE"_#KSPACE, -"LATTE"_#LATTE, -"MANYBODY"_#MANYBODY, -"MC"_#MC, -"MEAM"_#MEAM, -"MISC"_#MISC, -"MOLECULE"_#MOLECULE, -"MPIIO"_#MPIIO, -"MSCG"_#MSCG, -"OPT"_#OPT, -"PERI"_#PERI, -"POEMS"_#POEMS, -"PYTHON"_#PYTHON, -"QEQ"_#QEQ, -"REAX"_#REAX, -"REPLICA"_#REPLICA, -"RIGID"_#RIGID, -"SHOCK"_#SHOCK, -"SNAP"_#SNAP, -"SPIN"_#SPIN, -"SRD"_#SRD, -"VORONOI"_#VORONOI :tb(c=6,ea=c) +"ASPHERE"_#PKG-ASPHERE, +"BODY"_#PKG-BODY, +"CLASS2"_#PKG-CLASS2, +"COLLOID"_#PKG-COLLOID, +"COMPRESS"_#PKG-COMPRESS, +"CORESHELL"_#PKG-CORESHELL, +"DIPOLE"_#PKG-DIPOLE, +"GPU"_#PKG-GPU, +"GRANULAR"_#PKG-GRANULAR, +"KIM"_#PKG-KIM, +"KOKKOS"_#PKG-KOKKOS, +"KSPACE"_#PKG-KSPACE, +"LATTE"_#PKG-LATTE, +"MANYBODY"_#PKG-MANYBODY, +"MC"_#PKG-MC, +"MEAM"_#PKG-MEAM, +"MISC"_#PKG-MISC, +"MOLECULE"_#PKG-MOLECULE, +"MPIIO"_#PKG-MPIIO, +"MSCG"_#PKG-MSCG, +"OPT"_#PKG-OPT, +"PERI"_#PKG-PERI, +"POEMS"_#PKG-POEMS, +"PYTHON"_#PKG-PYTHON, +"QEQ"_#PKG-QEQ, +"REAX"_#PKG-REAX, +"REPLICA"_#PKG-REPLICA2, +"RIGID"_#PKG-RIGID, +"SHOCK"_#PKG-SHOCK, +"SNAP"_#PKG-SNAP, +"SPIN"_#PKG-SPIN, +"SRD"_#PKG-SRD, +"VORONOI"_#PKG-VORONOI :tb(c=6,ea=c) -"USER-ATC"_#USER-ATC, -"USER-AWPMD"_#USER-AWPMD, -"USER-BOCS"_#USER-BOCS, -"USER-CGDNA"_#USER-CGDNA, -"USER-CGSDK"_#USER-CGSDK, -"USER-COLVARS"_#USER-COLVARS, -"USER-DIFFRACTION"_#USER-DIFFRACTION, -"USER-DPD"_#USER-DPD, -"USER-DRUDE"_#USER-DRUDE, -"USER-EFF"_#USER-EFF, -"USER-FEP"_#USER-FEP, -"USER-H5MD"_#USER-H5MD, -"USER-INTEL"_#USER-INTEL, -"USER-LB"_#USER-LB, -"USER-MANIFOLD"_#USER-MANIFOLD, -"USER-MEAMC"_#USER-MEAMC, -"USER-MESO"_#USER-MESO, -"USER-MGPT"_#USER-MGPT, -"USER-MISC"_#USER-MISC, -"USER-MOFFF"_#USER-MOFFF, -"USER-MOLFILE"_#USER-MOLFILE, -"USER-NETCDF"_#USER-NETCDF, -"USER-OMP"_#USER-OMP, -"USER-PHONON"_#USER-PHONON, -"USER-QMMM"_#USER-QMMM, -"USER-QTB"_#USER-QTB, -"USER-QUIP"_#USER-QUIP, -"USER-REAXC"_#USER-REAXC, -"USER-SCAFACOS"_#USER-SCAFACOS, -"USER-SMD"_#USER-SMD, -"USER-SMTBQ"_#USER-SMTBQ, -"USER-SPH"_#USER-SPH, -"USER-TALLY"_#USER-TALLY, -"USER-UEF"_#USER-UEF, -"USER-VTK"_#USER-VTK :tb(c=6,ea=c) +"USER-ATC"_#PKG-USER-ATC, +"USER-AWPMD"_#PKG-USER-AWPMD, +"USER-BOCS"_#PKG-USER-BOCS, +"USER-CGDNA"_#PKG-USER-CGDNA, +"USER-CGSDK"_#PKG-USER-CGSDK, +"USER-COLVARS"_#PKG-USER-COLVARS, +"USER-DIFFRACTION"_#PKG-USER-DIFFRACTION, +"USER-DPD"_#PKG-USER-DPD, +"USER-DRUDE"_#PKG-USER-DRUDE, +"USER-EFF"_#PKG-USER-EFF, +"USER-FEP"_#PKG-USER-FEP, +"USER-H5MD"_#PKG-USER-H5MD, +"USER-INTEL"_#PKG-USER-INTEL, +"USER-LB"_#PKG-USER-LB, +"USER-MANIFOLD"_#PKG-USER-MANIFOLD, +"USER-MEAMC"_#PKG-USER-MEAMC, +"USER-MESO"_#PKG-USER-MESO, +"USER-MGPT"_#PKG-USER-MGPT, +"USER-MISC"_#PKG-USER-MISC, +"USER-MOFFF"_#PKG-USER-MOFFF, +"USER-MOLFILE"_#PKG-USER-MOLFILE, +"USER-NETCDF"_#PKG-USER-NETCDF, +"USER-OMP"_#PKG-USER-OMP, +"USER-PHONON"_#PKG-USER-PHONON, +"USER-QMMM"_#PKG-USER-QMMM, +"USER-QTB"_#PKG-USER-QTB, +"USER-QUIP"_#PKG-USER-QUIP, +"USER-REAXC"_#PKG-USER-REAXC, +"USER-SMD"_#PKG-USER-SMD, +"USER-SMTBQ"_#PKG-USER-SMTBQ, +"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) -:line :line -ASPHERE package :link(ASPHERE),h4 +ASPHERE package :link(PKG-ASPHERE),h4 [Contents:] Computes, time-integration fixes, and pair styles for aspherical particle models including ellipsoids, 2d lines, and 3d triangles. -[Install or un-install:] - -make yes-asphere -make machine :pre - -make no-asphere -make machine :pre - [Supporting info:] src/ASPHERE: filenames -> commands @@ -126,7 +123,7 @@ http://lammps.sandia.gov/movies.html#tri :ul :line -BODY package :link(BODY),h4 +BODY package :link(PKG-BODY),h4 [Contents:] @@ -135,14 +132,6 @@ time-integration fixes, pair styles, as well as the body styles themselves. See the "Howto body"_Howto_body.html doc page for an overview. -[Install or un-install:] - -make yes-body -make machine :pre - -make no-body -make machine :pre - [Supporting info:] src/BODY filenames -> commands @@ -154,21 +143,13 @@ examples/body :ul :line -CLASS2 package :link(CLASS2),h4 +CLASS2 package :link(PKG-CLASS2),h4 [Contents:] Bond, angle, dihedral, improper, and pair styles for the COMPASS CLASS2 molecular force field. -[Install or un-install:] - -make yes-class2 -make machine :pre - -make no-class2 -make machine :pre - [Supporting info:] src/CLASS2: filenames -> commands @@ -180,7 +161,7 @@ src/CLASS2: filenames -> commands :line -COLLOID package :link(COLLOID),h4 +COLLOID package :link(PKG-COLLOID),h4 [Contents:] @@ -193,14 +174,6 @@ simplified approximation to Stokesian dynamics. which were created by Amit Kumar and Michael Bybee from Jonathan Higdon's group at UIUC. -[Install or un-install:] - -make yes-colloid -make machine :pre - -make no-colloid -make machine :pre - [Supporting info:] src/COLLOID: filenames -> commands @@ -215,7 +188,7 @@ examples/srd :ul :line -COMPRESS package :link(COMPRESS),h4 +COMPRESS package :link(PKG-COMPRESS),h4 [Contents:] @@ -227,19 +200,11 @@ available on your system. [Author:] Axel Kohlmeyer (Temple U). -[Install or un-install:] +[Install:] -Note that building with this package assumes you have the zlib -compression library available on your system. The LAMMPS build uses -the settings in the lib/compress/Makefile.lammps file in the -compile/link process. You should only need to edit this file if the -LAMMPS build fails on your system. - -make yes-compress -make machine :pre - -make no-compress -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -253,7 +218,7 @@ lib/compress/README :line -CORESHELL package :link(CORESHELL),h4 +CORESHELL package :link(PKG-CORESHELL),h4 [Contents:] @@ -267,14 +232,6 @@ this package. [Author:] Hendrik Heenen (Technical U of Munich). -[Install or un-install:] - -make yes-coreshell -make machine :pre - -make no-coreshell -make machine :pre - [Supporting info:] src/CORESHELL: filenames -> commands @@ -288,21 +245,13 @@ examples/coreshell :ul :line -DIPOLE package :link(DIPOLE),h4 +DIPOLE package :link(PKG-DIPOLE),h4 [Contents:] An atom style and several pair styles for point dipole models with short-range or long-range interactions. -[Install or un-install:] - -make yes-dipole -make machine :pre - -make no-dipole -make machine :pre - [Supporting info:] src/DIPOLE: filenames -> commands @@ -314,7 +263,7 @@ examples/dipole :ul :line -GPU package :link(GPU),h4 +GPU package :link(PKG-GPU),h4 [Contents:] @@ -326,66 +275,17 @@ and only the CUDA versions are regularly tested. The "Speed gpu"_Speed_gpu.html doc page gives details of what hardware and GPU software is required on your system, and details on how to build and use this package. Its styles can be invoked at run time via the "-sf -gpu" or "-suffix gpu" "command-line -switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS -package, which has GPU-enabled styles. +gpu" or "-suffix gpu" "command-line switches"_Run_options.html. See +also the "KOKKOS"_#PKG-KOKKOS package, which has GPU-enabled styles. [Authors:] Mike Brown (Intel) while at Sandia and ORNL and Trung Nguyen (Northwestern U) while at ORNL. -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first build the GPU -library in lib/gpu from a set of provided C and CUDA files. You can -do this manually if you prefer; follow the instructions in -lib/gpu/README. Please note, that the GPU library uses MPI calls, so -you have to make certain to use the same MPI library (or the STUBS -library) settings as the main LAMMPS code. That same applies to the --DLAMMPS_BIGBIG, -DLAMMPS_SMALLBIG, or -DLAMMPS_SMALLSMALL define. - -You can also do it in one step from the lammps/src -dir, using a command like these, which simply invoke the -lib/gpu/Install.py script with the specified args: - -make lib-gpu # print help message -make lib-gpu args="-b" # build GPU library with default Makefile.linux -make lib-gpu args="-m xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision -make lib-gpu args="-m mpi -p mixed -b" # build GPU library with mixed precision using settings in Makefile.mpi :pre - -Note that this procedure through the '-m machine' flag starts with one of -the existing Makefile.machine files in lib/gpu. For your convenience, -machine makefiles for "mpi" and "serial" are provided, which have the -same settings as the corresponding machine makefiles in the main LAMMPS -source folder. In addition you can alter 4 important settings in that -Makefile, via the -h, -a, -p, -e switches, and also save a copy of the -new Makefile, if desired: - -CUDA_HOME = where NVIDIA CUDA software is installed on your system -CUDA_ARCH = what GPU hardware you have (see help message for details) -CUDA_PRECISION = precision (double, mixed, single) -EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul - -If the library build is successful, at least 3 files should be created: -lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and lib/gpu/Makefile.lammps. -The latter has settings that enable LAMMPS to link with CUDA libraries. -If the settings in Makefile.lammps for your machine are not correct, -the LAMMPS build will fail, and lib/gpu/Makefile.lammps may need to -be edited. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-gpu -make machine :pre - -make no-gpu -make machine :pre - -NOTE: If you re-build the GPU library in lib/gpu, you should always -un-install the GPU package, then re-install it and re-build LAMMPS. -This is because the compilation of files in the GPU package use the -library settings from the lib/gpu/Makefile.machine used to build the -GPU library. +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -393,16 +293,16 @@ src/GPU: filenames -> commands src/GPU/README lib/gpu/README "Speed packages"_Speed_packages.html -"Speed gpu"_Speed_gpu.html.html -"Section 2.6 -sf gpu"_Section_start.html#start_6 -"Section 2.6 -pk gpu"_Section_start.html#start_6 +"Speed gpu"_Speed_gpu.html +"Section 2.6 -sf gpu"_Run_options.html +"Section 2.6 -pk gpu"_Run_options.html "package gpu"_package.html "Commands all"_Commands_all.html pages (pair,kspace) for styles followed by (g) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line -GRANULAR package :link(GRANULAR),h4 +GRANULAR package :link(PKG-GRANULAR),h4 [Contents:] @@ -410,14 +310,6 @@ Pair styles and fixes for finite-size granular particles, which interact with each other and boundaries via frictional and dissipative potentials. -[Install or un-install:] - -make yes-granular -make machine :pre - -make no-granular -make machine :pre - [Supporting info:] src/GRANULAR: filenames -> commands @@ -437,7 +329,7 @@ http://lammps.sandia.gov/movies.html#granregion :ul :line -KIM package :link(KIM),h4 +KIM package :link(PKG-KIM),h4 [Contents:] @@ -457,48 +349,11 @@ API which the "pair_style kim"_pair_kim.html command uses. He developed the pair style in collaboration with Valeriu Smirichinski (U Minnesota). -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first download and -build the KIM library and include the KIM models that you want to -use. You can do this manually if you prefer; follow the instructions -in lib/kim/README. You can also do it in one step from the lammps/src -dir, using a command like these, which simply invoke the -lib/kim/Install.py script with the specified args. - -make lib-kim # print help message -make lib-kim args="-b " # (re-)install KIM API lib with only example models -make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001" # ditto plus one model -make lib-kim args="-b -a everything" # install KIM API lib with all models -make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # add one model or model driver -make lib-kim args="-p /usr/local/kim-api" # use an existing KIM API installation at the provided location -make lib-kim args="-p /usr/local/kim-api -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver :pre - -Note that in LAMMPS lingo, a KIM model driver is a pair style -(e.g. EAM or Tersoff). A KIM model is a pair style for a particular -element or alloy and set of parameters, e.g. EAM for Cu with a -specific EAM potential file. Also note that installing the KIM API -library with all its models, may take around 30 min to build. Of -course you only need to do that once. - -See the list of KIM model drivers here: -https://openkim.org/kim-items/model-drivers/alphabetical - -See the list of all KIM models here: -https://openkim.org/kim-items/models/by-model-drivers - -See the list of example KIM models included by default here: -https://openkim.org/kim-api on the "What is in the KIM API source -package?" page. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-kim -make machine :pre - -make no-kim -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -510,7 +365,7 @@ examples/kim :ul :line -KOKKOS package :link(KOKKOS),h4 +KOKKOS package :link(PKG-KOKKOS),h4 [Contents:] @@ -522,11 +377,16 @@ style name. The "Speed kokkos"_Speed_kokkos.html doc page gives details of what hardware and software is required on your system, and how to build and use this package. Its styles can be invoked at run time via the "-sf kk" or "-suffix kk" "command-line -switches"_Section_start.html#start_6. Also see the "GPU"_#GPU, -"OPT"_#OPT, "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP -packages, which have styles optimized for CPUs, KNLs, and GPUs. +switches"_Run_options.html. Also see the "GPU"_#PKG-GPU, "OPT"_#PKG-OPT, +"USER-INTEL"_#PKG-USER-INTEL, and "USER-OMP"_#PKG-USER-OMP packages, which +have styles optimized for CPUs, KNLs, and GPUs. You must have a C++11 compatible compiler to use this package. +KOKKOS makes extensive use of advanced C++ features, which can +expose compiler bugs, especially when compiling for maximum +performance at high optimization levels. Please see the file +lib/kokkos/README for a list of compilers and their respective +platforms, that are known to work. [Authors:] The KOKKOS package was created primarily by Christian Trott and Stan Moore (Sandia), with contributions from other folks as well. @@ -535,53 +395,11 @@ which was developed by Carter Edwards, Christian Trott, and others at Sandia, and which is included in the LAMMPS distribution in lib/kokkos. -[Install or un-install:] +[Install:] -For the KOKKOS package, you have 3 choices when building. You can -build with either CPU or KNL or GPU support. Each choice requires -additional settings in your Makefile.machine for the KOKKOS_DEVICES -and KOKKOS_ARCH settings. See the src/MAKE/OPTIONS/Makefile.kokkos* -files for examples. - -For multicore CPUs using OpenMP: - -KOKKOS_DEVICES = OpenMP -KOKKOS_ARCH = HSW # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc :pre - -For Intel KNLs using OpenMP: - -KOKKOS_DEVICES = OpenMP -KOKKOS_ARCH = KNL :pre - -For NVIDIA GPUs using CUDA: - -KOKKOS_DEVICES = Cuda -KOKKOS_ARCH = Pascal60,Power8 # P100 hosted by an IBM Power8, etc -KOKKOS_ARCH = Kepler37,Power8 # K80 hosted by an IBM Power8, etc :pre - -For GPUs, you also need these 2 lines in your Makefile.machine before -the CC line is defined, in this case for use with OpenMPI mpicxx. The -2 lines define a nvcc wrapper compiler, which will use nvcc for -compiling CUDA files or use a C++ compiler for non-Kokkos, non-CUDA -files. - -KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd) -export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper -CC = mpicxx :pre - -Once you have an appropriate Makefile.machine, you can -install/un-install the package and build LAMMPS in the usual manner. -Note that you cannot build one executable to run on multiple hardware -targets (CPU or KNL or GPU). You need to build LAMMPS once for each -hardware target, to produce a separate executable. Also note that we -do not recommend building with other acceleration packages installed -(GPU, OPT, USER-INTEL, USER-OMP) when also building with KOKKOS. - -make yes-kokkos -make machine :pre - -make no-kokkos -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -590,16 +408,16 @@ src/KOKKOS/README lib/kokkos/README "Speed packages"_Speed_packages.html "Speed kokkos"_Speed_kokkos.html -"Section 2.6 -k on ..."_Section_start.html#start_6 -"Section 2.6 -sf kk"_Section_start.html#start_6 -"Section 2.6 -pk kokkos"_Section_start.html#start_6 +"Section 2.6 -k on ..."_Run_options.html +"Section 2.6 -sf kk"_Run_options.html +"Section 2.6 -pk kokkos"_Run_options.html "package kokkos"_package.html "Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (k) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line -KSPACE package :link(KSPACE),h4 +KSPACE package :link(PKG-KSPACE),h4 [Contents:] @@ -608,20 +426,14 @@ which compute the corresponding short-range pairwise Coulombic interactions. These include Ewald, particle-particle particle-mesh (PPPM), and multilevel summation method (MSM) solvers. -[Install or un-install:] +[Install:] Building with this package requires a 1d FFT library be present on your system for use by the PPPM solvers. This can be the KISS FFT library provided with LAMMPS, 3rd party libraries like FFTW, or a -vendor-supplied FFT library. See step 6 of "Section -2.2.2"_Section_start.html#start_2_2 of the manual for details on how -to select different FFT options in your machine Makefile. - -make yes-kspace -make machine :pre - -make no-kspace -make machine :pre +vendor-supplied FFT library. See the "Build +settings"_Build_settings.html doc page for details on how to select +different FFT options for your LAMPMS build. [Supporting info:] @@ -638,7 +450,7 @@ bench/in.rhodo :ul :line -LATTE package :link(LATTE),h4 +LATTE package :link(PKG-LATTE),h4 [Contents:] @@ -656,36 +468,11 @@ description is given with the "fix latte"_fix_latte.html command. itself is developed at Los Alamos National Laboratory by Marc Cawkwell, Anders Niklasson, and Christian Negre. -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first download and -build the LATTE library. You can do this manually if you prefer; -follow the instructions in lib/latte/README. You can also do it in -one step from the lammps/src dir, using a command like these, which -simply invokes the lib/latte/Install.py script with the specified -args: - -make lib-latte # print help message -make lib-latte args="-b" # download and build in lib/latte/LATTE-master -make lib-latte args="-p $HOME/latte" # use existing LATTE installation in $HOME/latte -make lib-latte args="-b -m gfortran" # download and build in lib/latte and - # copy Makefile.lammps.gfortran to Makefile.lammps -:pre - -Note that 3 symbolic (soft) links, "includelink" and "liblink" and -"filelink.o", are created in lib/latte to point into the LATTE home dir. -When LAMMPS builds in src it will use these links. You should -also check that the Makefile.lammps file you create is appropriate -for the compiler you use on your system to build LATTE. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-latte -make machine :pre - -make no-latte -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -698,21 +485,13 @@ examples/latte :line -MANYBODY package :link(MANYBODY),h4 +MANYBODY package :link(PKG-MANYBODY),h4 [Contents:] A variety of manybody and bond-order potentials. These include (AI)REBO, BOP, EAM, EIM, Stillinger-Weber, and Tersoff potentials. -[Install or un-install:] - -make yes-manybody -make machine :pre - -make no-manybody -make machine :pre - [Supporting info:] src/MANYBODY: filenames -> commands @@ -727,7 +506,7 @@ bench/in.eam :ul :line -MC package :link(MC),h4 +MC package :link(PKG-MC),h4 [Contents:] @@ -736,14 +515,6 @@ attributes. These include fixes for creating, breaking, and swapping bonds, for performing atomic swaps, and performing grand-canonical MC (GCMC) in conjuction with dynamics. -[Install or un-install:] - -make yes-mc -make machine :pre - -make no-mc -make machine :pre - [Supporting info:] src/MC: filenames -> commands @@ -757,51 +528,26 @@ http://lammps.sandia.gov/movies.html#gcmc :ul :line -MEAM package :link(MEAM),h4 +MEAM package :link(PKG-MEAM),h4 [Contents:] A pair style for the modified embedded atom (MEAM) potential. -Please note that the MEAM package has been superseded by the -"USER-MEAMC"_#USER-MEAMC package, which is a direct translation -of the MEAM package to C++. USER-MEAMC contains additional -optimizations making it run faster than MEAM on most machines, -while providing the identical features and USER interface. +Please note that the use of the MEAM package is discouraged as +it has been superseded by the "USER-MEAMC"_#PKG-USER-MEAMC package, +which is a direct translation of the MEAM package to C++. +USER-MEAMC contains additional optimizations making it run faster +than MEAM on most machines, while providing the identical features +and user interface. [Author:] Greg Wagner (Northwestern U) while at Sandia. -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first build the -MEAM library in lib/meam. You can do this manually if you prefer; -follow the instructions in lib/meam/README. You can also do it in one -step from the lammps/src dir, using a command like these, which simply -invoke the lib/meam/Install.py script with the specified args: - -make lib-meam # print help message -make lib-meam args="-m mpi" # build with default Fortran compiler compatible with your MPI library -make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran) -make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre - -The build should produce two files: lib/meam/libmeam.a and -lib/meam/Makefile.lammps. The latter is copied from an existing -Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with -Fortran (MEAM library). Typically the two compilers used for LAMMPS -and the MEAM library need to be consistent (e.g. both Intel or both -GNU compilers). If necessary, you can edit/create a new -lib/meam/Makefile.machine file for your system, which should define an -EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine -file. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-meam -make machine :pre - -make no-meam -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. NOTE: You should test building the MEAM library with both the Intel and GNU compilers to see if a simulation runs faster with one versus @@ -817,7 +563,7 @@ examples/meam :ul :line -MISC package :link(MISC),h4 +MISC package :link(PKG-MISC),h4 [Contents:] @@ -828,14 +574,6 @@ listing, "ls src/MISC", to see the list of commands. NOTE: the MISC package contains styles that require using the -restrict flag, when compiling with Intel compilers. -[Install or un-install:] - -make yes-misc -make machine :pre - -make no-misc -make machine :pre - [Supporting info:] src/MISC: filenames -> commands @@ -852,7 +590,7 @@ http://lammps.sandia.gov/movies.html#evaporation :ul :line -MOLECULE package :link(MOLECULE),h4 +MOLECULE package :link(PKG-MOLECULE),h4 [Contents:] @@ -861,14 +599,6 @@ that are used to model molecular systems with fixed covalent bonds. The pair styles include the Dreiding (hydrogen-bonding) and CHARMM force fields, and a TIP4P water model. -[Install or un-install:] - -make yes-molecule -make machine :pre - -make no-molecule -make machine :pre - [Supporting info:] src/MOLECULE: filenames -> commands @@ -889,7 +619,7 @@ bench/in.rhodo :ul :line -MPIIO package :link(MPIIO),h4 +MPIIO package :link(PKG-MPIIO),h4 [Contents:] @@ -898,18 +628,6 @@ MPIIO library. It adds "dump styles"_dump.html with a "mpiio" in their style name. Restart files with an ".mpiio" suffix are also written and read in parallel. -[Install or un-install:] - -Note that MPIIO is part of the standard message-passing interface -(MPI) library, so you should not need any additional compiler or link -settings, beyond what LAMMPS normally uses for MPI on your system. - -make yes-mpiio -make machine :pre - -make no-mpiio -make machine :pre - [Supporting info:] src/MPIIO: filenames -> commands @@ -920,7 +638,7 @@ src/MPIIO: filenames -> commands :line -MSCG package :link(mscg),h4 +MSCG package :link(PKG-mscg),h4 [Contents:] @@ -937,39 +655,11 @@ system. library was developed by Jacob Wagner in Greg Voth's group at the University of Chicago. -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first download and -build the MS-CG library. Building the MS-CG library and using it from -LAMMPS requires a C++11 compatible compiler and that the GSL -(GNU Scientific Library) headers and libraries are installed on your -machine. See the lib/mscg/README and MSCG/Install files for more details. - -Assuming these libraries are in place, you can do the download and -build of MS-CG manually if you prefer; follow the instructions in -lib/mscg/README. You can also do it in one step from the lammps/src -dir, using a command like these, which simply invoke the -lib/mscg/Install.py script with the specified args: - -make lib-mscg # print help message -make lib-mscg args="-b -m serial" # download and build in lib/mscg/MSCG-release-master - # with the settings compatible with "make serial" -make lib-mscg args="-b -m mpi" # download and build in lib/mscg/MSCG-release-master - # with the settings compatible with "make mpi" -make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release :pre - -Note that 2 symbolic (soft) links, "includelink" and "liblink", will be created in lib/mscg -to point to the MS-CG src/installation dir. When LAMMPS is built in src it will use these links. -You should not need to edit the lib/mscg/Makefile.lammps file. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-mscg -make machine :pre - -make no-mscg -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -980,7 +670,7 @@ examples/mscg :ul :line -OPT package :link(OPT),h4 +OPT package :link(PKG-OPT),h4 [Contents:] @@ -990,40 +680,31 @@ CHARMM, and Morse potentials. The styles have an "opt" suffix in their style name. The "Speed opt"_Speed_opt.html doc page gives details of how to build and use this package. Its styles can be invoked at run time via the "-sf opt" or "-suffix opt" "command-line -switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS, -"USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP packages, which +switches"_Run_options.html. See also the "KOKKOS"_#PKG-KOKKOS, +"USER-INTEL"_#PKG-USER-INTEL, and "USER-OMP"_#PKG-USER-OMP packages, which have styles optimized for CPU performance. [Authors:] James Fischer (High Performance Technologies), David Richie, and Vincent Natoli (Stone Ridge Technolgy). -[Install or un-install:] +[Install:] -make yes-opt -make machine :pre - -make no-opt -make machine :pre - -NOTE: The compile flag "-restrict" must be used to build LAMMPS with -the OPT package when using Intel compilers. It should be added to -the CCFLAGS line of your Makefile.machine. See Makefile.opt in -src/MAKE/OPTIONS for an example. - -CCFLAGS: add -restrict for Intel compilers :ul +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] src/OPT: filenames -> commands "Speed packages"_Speed_packages.html "Speed opt"_Speed_opt.html -"Section 2.6 -sf opt"_Section_start.html#start_6 +"Section 2.6 -sf opt"_Run_options.html "Commands pair"_Commands_pair.html for styles followed by (t) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line -PERI package :link(PERI),h4 +PERI package :link(PKG-PERI),h4 [Contents:] @@ -1036,14 +717,6 @@ model. Additional Peridynamics models were added by Rezwanur Rahman and John Foster (UTSA). -[Install or un-install:] - -make yes-peri -make machine :pre - -make no-peri -make machine :pre - [Supporting info:] src/PERI: filenames -> commands @@ -1059,7 +732,7 @@ http://lammps.sandia.gov/movies.html#peri :ul :line -POEMS package :link(POEMS),h4 +POEMS package :link(PKG-POEMS),h4 [Contents:] @@ -1071,35 +744,11 @@ connections at hinge points. [Author:] Rudra Mukherjee (JPL) while at RPI. -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first build the -POEMS library in lib/poems. You can do this manually if you prefer; -follow the instructions in lib/poems/README. You can also do it in -one step from the lammps/src dir, using a command like these, which -simply invoke the lib/poems/Install.py script with the specified args: - -make lib-poems # print help message -make lib-poems args="-m serial" # build with GNU g++ compiler (settings as with "make serial") -make lib-poems args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi") -make lib-poems args="-m icc" # build with Intel icc compiler :pre - -The build should produce two files: lib/poems/libpoems.a and -lib/poems/Makefile.lammps. The latter is copied from an existing -Makefile.lammps.* and has settings needed to build LAMMPS with the -POEMS library (though typically the settings are just blank). If -necessary, you can edit/create a new lib/poems/Makefile.machine file -for your system, which should define an EXTRAMAKE variable to specify -a corresponding Makefile.lammps.machine file. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-poems -make machine :pre - -make no-meam -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -1111,7 +760,7 @@ examples/rigid :ul :line -PYTHON package :link(PYTHON),h4 +PYTHON package :link(PKG-PYTHON),h4 [Contents:] @@ -1119,35 +768,30 @@ A "python"_python.html command which allow you to execute Python code from a LAMMPS input script. The code can be in a separate file or embedded in the input script itself. See the "Python call"_Python_call.html doc page for an overview of using Python from -LAMMPS in this manner and all the "Python"_Python.html doc pages for -other ways to use LAMMPS and Python together. - -[Install or un-install:] - -make yes-python -make machine :pre - -make no-python -make machine :pre +LAMMPS in this manner and all the "Python"_Python_head.html doc pages +for other ways to use LAMMPS and Python together. NOTE: Building with the PYTHON package assumes you have a Python shared library available on your system, which needs to be a Python 2 version, 2.6 or later. Python 3 is not yet supported. See the -lib/python/README for more details. Note that the build uses the -lib/python/Makefile.lammps file in the compile/link process. You -should only need to create a new Makefile.lammps.* file (and copy it -to Makefile.lammps) if the LAMMPS build fails. +lib/python/README for more details. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] src/PYTHON: filenames -> commands -"Python call"_Python.html +"Python call"_Python_head.html lib/python/README examples/python :ul :line -QEQ package :link(QEQ),h4 +QEQ package :link(PKG-QEQ),h4 [Contents:] @@ -1155,14 +799,6 @@ Several fixes for performing charge equilibration (QEq) via different algorithms. These can be used with pair styles that perform QEq as part of their formulation. -[Install or un-install:] - -make yes-qeq -make machine :pre - -make no-qeq -make machine :pre - [Supporting info:] src/QEQ: filenames -> commands @@ -1172,49 +808,27 @@ examples/streitz :ul :line -REAX package :link(REAX),h4 +REAX package :link(PKG-REAX),h4 [Contents:] +NOTE: the use of the REAX package is discouraged, as it is no longer +maintained. Please use the "USER-REAXC"_#PKG-USER-REAXC package instead, +and possibly the KOKKOS enabled variant of that, which has a more robust +memory management. + A pair style which wraps a Fortran library which implements the ReaxFF -potential, which is a universal reactive force field. See the -"USER-REAXC package"_#USER-REAXC for an alternate implementation in -C/C++. Also a "fix reax/bonds"_fix_reax_bonds.html command for -monitoring molecules as bonds are created and destroyed. +potential, which is a universal reactive force field. Also included is +a "fix reax/bonds"_fix_reax_bonds.html command for monitoring molecules +as bonds are created and destroyed. [Author:] Aidan Thompson (Sandia). -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first build the -REAX library in lib/reax. You can do this manually if you prefer; -follow the instructions in lib/reax/README. You can also do it in one -step from the lammps/src dir, using a command like these, which simply -invoke the lib/reax/Install.py script with the specified args: - -make lib-reax # print help message -make lib-reax args="-m serial" # build with GNU Fortran compiler (settings as with "make serial") -make lib-reax args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi") -make lib-reax args="-m ifort" # build with Intel ifort compiler :pre - -The build should produce two files: lib/reax/libreax.a and -lib/reax/Makefile.lammps. The latter is copied from an existing -Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with -Fortran (REAX library). Typically the two compilers used for LAMMPS -and the REAX library need to be consistent (e.g. both Intel or both -GNU compilers). If necessary, you can edit/create a new -lib/reax/Makefile.machine file for your system, which should define an -EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine -file. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-reax -make machine :pre - -make no-reax -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -1226,7 +840,7 @@ examples/reax :ul :line -REPLICA package :link(REPLICA),h4 +REPLICA package :link(PKG-REPLICA2),h4 [Contents:] @@ -1240,14 +854,6 @@ verlet/split algorithm for performing long-range Coulombics on one set of processors, and the remainder of the force field calcalation on another set. -[Install or un-install:] - -make yes-replica -make machine :pre - -make no-replica -make machine :pre - [Supporting info:] src/REPLICA: filenames -> commands @@ -1263,7 +869,7 @@ examples/tad :ul :line -RIGID package :link(RIGID),h4 +RIGID package :link(PKG-RIGID),h4 [Contents:] @@ -1272,16 +878,6 @@ particles. This includes SHAKE and RATTLE, as well as varous rigid-body integrators for a few large bodies or many small bodies. Also several computes which calculate properties of rigid bodies. -To install/build: - -make yes-rigid -make machine :pre - -To un-install/re-build: - -make no-rigid -make machine :pre - [Supporting info:] src/RIGID: filenames -> commands @@ -1297,21 +893,13 @@ http://lammps.sandia.gov/movies.html#star :ul :line -SHOCK package :link(SHOCK),h4 +SHOCK package :link(PKG-SHOCK),h4 [Contents:] Fixes for running impact simulations where a shock-wave passes through a material. -[Install or un-install:] - -make yes-shock -make machine :pre - -make no-shock -make machine :pre - [Supporting info:] src/SHOCK: filenames -> commands @@ -1324,7 +912,7 @@ examples/msst :ul :line -SNAP package :link(SNAP),h4 +SNAP package :link(PKG-SNAP),h4 [Contents:] @@ -1335,14 +923,6 @@ computes which analyze attributes of the potential. [Author:] Aidan Thompson (Sandia). -[Install or un-install:] - -make yes-snap -make machine :pre - -make no-snap -make machine :pre - [Supporting info:] src/SNAP: filenames -> commands @@ -1354,7 +934,7 @@ examples/snap :ul :line -SPIN package :link(SPIN),h4 +SPIN package :link(PKG-SPIN),h4 [Contents:] @@ -1363,18 +943,10 @@ the usual manner via MD. Various pair, fix, and compute styles. [Author:] Julian Tranchida (Sandia). -[Install or un-install:] - -make yes-spin -make machine :pre - -make no-spin -make machine :pre - [Supporting info:] src/SPIN: filenames -> commands -"Howto spin"_Howto_spin.html +"Howto spins"_Howto_spins.html "pair_style spin/dmi"_pair_spin_dmi.html "pair_style spin/exchange"_pair_spin_exchange.html "pair_style spin/magelec"_pair_spin_magelec.html @@ -1386,7 +958,7 @@ examples/SPIN :ul :line -SRD package :link(SRD),h4 +SRD package :link(PKG-SRD),h4 [Contents:] @@ -1394,16 +966,6 @@ A pair of fixes which implement the Stochastic Rotation Dynamics (SRD) method for coarse-graining of a solvent, typically around large colloidal particles. -To install/build: - -make yes-srd -make machine :pre - -To un-install/re-build: - -make no-srd -make machine :pre - [Supporting info:] src/SRD: filenames -> commands @@ -1417,7 +979,7 @@ http://lammps.sandia.gov/movies.html#poly :ul :line -VORONOI package :link(VORONOI),h4 +VORONOI package :link(PKG-VORONOI),h4 [Contents:] @@ -1435,33 +997,11 @@ system. library was written by Chris Rycroft (Harvard U) while at UC Berkeley and LBNL. -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first download and -build the Voro++ library. You can do this manually if you prefer; -follow the instructions in lib/voronoi/README. You can also do it in -one step from the lammps/src dir, using a command like these, which -simply invoke the lib/voronoi/Install.py script with the specified -args: - -make lib-voronoi # print help message -make lib-voronoi args="-b" # download and build the default version in lib/voronoi/voro++- -make lib-voronoi args="-p $HOME/voro++" # use existing Voro++ installation in $HOME/voro++ -make lib-voronoi args="-b -v voro++0.4.6" # download and build the 0.4.6 version in lib/voronoi/voro++-0.4.6 :pre - -Note that 2 symbolic (soft) links, "includelink" and "liblink", are -created in lib/voronoi to point to the Voro++ src dir. When LAMMPS -builds in src it will use these links. You should not need to edit -the lib/voronoi/Makefile.lammps file. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-voronoi -make machine :pre - -make no-voronoi -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -1471,10 +1011,9 @@ lib/voronoi/README "compute voronoi/atom"_compute_voronoi_atom.html examples/voronoi :ul -:line :line -USER-ATC package :link(USER-ATC),h4 +USER-ATC package :link(PKG-USER-ATC),h4 [Contents:] @@ -1485,46 +1024,11 @@ atomic information to continuum fields. [Authors:] Reese Jones, Jeremy Templeton, Jon Zimmerman (Sandia). -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first build the ATC -library in lib/atc. You can do this manually if you prefer; follow -the instructions in lib/atc/README. You can also do it in one step -from the lammps/src dir, using a command like these, which simply -invoke the lib/atc/Install.py script with the specified args: - -make lib-atc # print help message -make lib-atc args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial") -make lib-atc args="-m mpi" # build with default MPI compiler (settings as with "make mpi") -make lib-atc args="-m icc" # build with Intel icc compiler :pre - -The build should produce two files: lib/atc/libatc.a and -lib/atc/Makefile.lammps. The latter is copied from an existing -Makefile.lammps.* and has settings needed to build LAMMPS with the ATC -library. If necessary, you can edit/create a new -lib/atc/Makefile.machine file for your system, which should define an -EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine -file. - -Note that the Makefile.lammps file has settings for the BLAS and -LAPACK linear algebra libraries. As explained in lib/atc/README these -can either exist on your system, or you can use the files provided in -lib/linalg. In the latter case you also need to build the library -in lib/linalg with a command like these: - -make lib-linalg # print help message -make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial") -make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi") -make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-user-atc -make machine :pre - -make no-user-atc -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -1536,7 +1040,7 @@ http://lammps.sandia.gov/pictures.html#atc :ul :line -USER-AWPMD package :link(USER-AWPMD),h4 +USER-AWPMD package :link(PKG-USER-AWPMD),h4 [Contents:] @@ -1547,46 +1051,11 @@ model. [Author:] Ilya Valuev (JIHT, Russia). -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first build the -AWPMD library in lib/awpmd. You can do this manually if you prefer; -follow the instructions in lib/awpmd/README. You can also do it in -one step from the lammps/src dir, using a command like these, which -simply invoke the lib/awpmd/Install.py script with the specified args: - -make lib-awpmd # print help message -make lib-awpmd args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial") -make lib-awpmd args="-m mpi" # build with default MPI compiler (settings as with "make mpi") -make lib-awpmd args="-m icc" # build with Intel icc compiler :pre - -The build should produce two files: lib/awpmd/libawpmd.a and -lib/awpmd/Makefile.lammps. The latter is copied from an existing -Makefile.lammps.* and has settings needed to build LAMMPS with the -AWPMD library. If necessary, you can edit/create a new -lib/awpmd/Makefile.machine file for your system, which should define -an EXTRAMAKE variable to specify a corresponding -Makefile.lammps.machine file. - -Note that the Makefile.lammps file has settings for the BLAS and -LAPACK linear algebra libraries. As explained in lib/awpmd/README -these can either exist on your system, or you can use the files -provided in lib/linalg. In the latter case you also need to build the -library in lib/linalg with a command like these: - -make lib-linalg # print help message -make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial") -make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi") -make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-user-awpmd -make machine :pre - -make no-user-awpmd -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -1597,7 +1066,7 @@ examples/USER/awpmd :ul :line -USER-BOCS package :link(USER-BOCS),h4 +USER-BOCS package :link(PKG-USER-BOCS),h4 [Contents:] @@ -1609,15 +1078,8 @@ N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that accurately describe the structure, pressure, and compressibility of molecular liquids," J. Chem. Phys. 143, 243148 (2015). -[Authors:] Nicholas J. H. Dunn and Michael R. DeLyser (The Pennsylvania State University) - -[Install or un-install:] - -make yes-user-bocs -make machine :pre - -make no-user-bocs -make machine :pre +[Authors:] Nicholas J. H. Dunn and Michael R. DeLyser (The +Pennsylvania State University) [Supporting info:] @@ -1634,7 +1096,7 @@ Example inputs are in the examples/USER/bocs folder. :line -USER-CGDNA package :link(USER-CGDNA),h4 +USER-CGDNA package :link(PKG-USER-CGDNA),h4 [Contents:] @@ -1646,14 +1108,6 @@ stability. [Author:] Oliver Henrich (University of Strathclyde, Glasgow). -[Install or un-install:] - -make yes-user-cgdna -make machine :pre - -make no-user-cgdna -make machine :pre - [Supporting info:] src/USER-CGDNA: filenames -> commands @@ -1666,7 +1120,7 @@ src/USER-CGDNA: filenames -> commands :line -USER-CGSDK package :link(USER-CGSDK),h4 +USER-CGSDK package :link(PKG-USER-CGSDK),h4 [Contents:] @@ -1677,14 +1131,6 @@ acids. [Author:] Axel Kohlmeyer (Temple U). -[Install or un-install:] - -make yes-user-cgsdk -make machine :pre - -make no-user-cgsdk -make machine :pre - [Supporting info:] src/USER-CGSDK: filenames -> commands @@ -1696,7 +1142,7 @@ http://lammps.sandia.gov/pictures.html#cg :ul :line -USER-COLVARS package :link(USER-COLVARS),h4 +USER-COLVARS package :link(PKG-USER-COLVARS),h4 [Contents:] @@ -1713,36 +1159,11 @@ and Jerome Henin (LISM, CNRS, Marseille, France), originally for the NAMD MD code, but with portability in mind. Axel Kohlmeyer (Temple U) provided the interface to LAMMPS. -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first build the -COLVARS library in lib/colvars. You can do this manually if you -prefer; follow the instructions in lib/colvars/README. You can also -do it in one step from the lammps/src dir, using a command like these, -which simply invoke the lib/colvars/Install.py script with the -specified args: - -make lib-colvars # print help message -make lib-colvars args="-m serial" # build with GNU g++ compiler (settings as with "make serial") -make lib-colvars args="-m mpi" # build with default MPI compiler (settings as with "make mpi") -make lib-colvars args="-m g++-debug" # build with GNU g++ compiler and colvars debugging enabled :pre - -The build should produce two files: lib/colvars/libcolvars.a and -lib/colvars/Makefile.lammps. The latter is copied from an existing -Makefile.lammps.* and has settings needed to build LAMMPS with the -COLVARS library (though typically the settings are just blank). If -necessary, you can edit/create a new lib/colvars/Makefile.machine file -for your system, which should define an EXTRAMAKE variable to specify -a corresponding Makefile.lammps.machine file. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-user-colvars -make machine :pre - -make no-user-colvars -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -1755,7 +1176,7 @@ examples/USER/colvars :ul :line -USER-DIFFRACTION package :link(USER-DIFFRACTION),h4 +USER-DIFFRACTION package :link(PKG-USER-DIFFRACTION),h4 [Contents:] @@ -1764,14 +1185,6 @@ intensities based on kinematic diffraction theory. [Author:] Shawn Coleman while at the U Arkansas. -[Install or un-install:] - -make yes-user-diffraction -make machine :pre - -make no-user-diffraction -make machine :pre - [Supporting info:] src/USER-DIFFRACTION: filenames -> commands @@ -1782,7 +1195,7 @@ examples/USER/diffraction :ul :line -USER-DPD package :link(USER-DPD),h4 +USER-DPD package :link(PKG-USER-DPD),h4 [Contents:] @@ -1799,14 +1212,6 @@ algorithm. [Authors:] Jim Larentzos (ARL), Tim Mattox (Engility Corp), and and John Brennan (ARL). -[Install or un-install:] - -make yes-user-dpd -make machine :pre - -make no-user-dpd -make machine :pre - [Supporting info:] src/USER-DPD: filenames -> commands @@ -1828,7 +1233,7 @@ examples/USER/dpd :ul :line -USER-DRUDE package :link(USER-DRUDE),h4 +USER-DRUDE package :link(PKG-USER-DRUDE),h4 [Contents:] @@ -1841,14 +1246,6 @@ for using this package in tools/drude. [Authors:] Alain Dequidt (U Blaise Pascal Clermont-Ferrand), Julien Devemy (CNRS), and Agilio Padua (U Blaise Pascal). -[Install or un-install:] - -make yes-user-drude -make machine :pre - -make no-user-drude -make machine :pre - [Supporting info:] src/USER-DRUDE: filenames -> commands @@ -1866,7 +1263,7 @@ tools/drude :ul :line -USER-EFF package :link(USER-EFF),h4 +USER-EFF package :link(PKG-USER-EFF),h4 [Contents:] @@ -1880,14 +1277,6 @@ tools/eff; see its README file. [Author:] Andres Jaramillo-Botero (CalTech). -[Install or un-install:] - -make yes-user-eff -make machine :pre - -make no-user-eff -make machine :pre - [Supporting info:] src/USER-EFF: filenames -> commands @@ -1907,7 +1296,7 @@ http://lammps.sandia.gov/movies.html#eff :ul :line -USER-FEP package :link(USER-FEP),h4 +USER-FEP package :link(PKG-USER-FEP),h4 [Contents:] @@ -1919,14 +1308,6 @@ for using this package in tools/fep; see its README file. [Author:] Agilio Padua (Universite Blaise Pascal Clermont-Ferrand) -[Install or un-install:] - -make yes-user-fep -make machine :pre - -make no-user-fep -make machine :pre - [Supporting info:] src/USER-FEP: filenames -> commands @@ -1940,7 +1321,7 @@ tools/fep :ul :line -USER-H5MD package :link(USER-H5MD),h4 +USER-H5MD package :link(PKG-USER-H5MD),h4 [Contents:] @@ -1958,37 +1339,11 @@ system. [Author:] Pierre de Buyl (KU Leuven) created both the package and the H5MD format. -[Install or un-install:] +[Install:] -Note that to follow these steps to compile and link to the CH5MD -library, you need the standard HDF5 software package installed on your -system, which should include the h5cc compiler and the HDF5 library. - -Before building LAMMPS with this package, you must first build the -CH5MD library in lib/h5md. You can do this manually if you prefer; -follow the instructions in lib/h5md/README. You can also do it in one -step from the lammps/src dir, using a command like these, which simply -invoke the lib/h5md/Install.py script with the specified args: - -make lib-h5md # print help message -make lib-hm5d args="-m h5cc" # build with h5cc compiler :pre - -The build should produce two files: lib/h5md/libch5md.a and -lib/h5md/Makefile.lammps. The latter is copied from an existing -Makefile.lammps.* and has settings needed to build LAMMPS with the -system HDF5 library. If necessary, you can edit/create a new -lib/h5md/Makefile.machine file for your system, which should define an -EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine -file. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-user-h5md -make machine :pre - -make no-user-h5md -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -1999,7 +1354,7 @@ lib/h5md/README :line -USER-INTEL package :link(USER-INTEL),h4 +USER-INTEL package :link(PKG-USER-INTEL),h4 [Contents:] @@ -2009,9 +1364,9 @@ All of them have an "intel" in their style name. The "Speed intel"_Speed_intel.html doc page gives details of what hardware and compilers are required on your system, and how to build and use this package. Its styles can be invoked at run time via the "-sf intel" or -"-suffix intel" "command-line switches"_Section_start.html#start_6. -Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-OMP"_#USER-OMP -packages, which have styles optimized for CPUs and KNLs. +"-suffix intel" "command-line switches"_Run_options.html. Also see +the "KOKKOS"_#PKG-KOKKOS, "OPT"_#PKG-OPT, and "USER-OMP"_#PKG-USER-OMP packages, +which have styles optimized for CPUs and KNLs. You need to have an Intel compiler, version 14 or higher to take full advantage of this package. While compilation with GNU compilers is @@ -2020,49 +1375,13 @@ supported, performance will be suboptimal. NOTE: the USER-INTEL package contains styles that require using the -restrict flag, when compiling with Intel compilers. - [Author:] Mike Brown (Intel). -[Install or un-install:] +[Install:] -For the USER-INTEL package, you have 2 choices when building. You can -build with either CPU or KNL support. Each choice requires additional -settings in your Makefile.machine for CCFLAGS and LINKFLAGS and -optimized malloc libraries. See the -src/MAKE/OPTIONS/Makefile.intel_cpu and src/MAKE/OPTIONS/Makefile.knl -files for examples. - -For CPUs: - -OPTFLAGS = -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits -CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \ --fno-alias -ansi-alias -restrict $(OPTFLAGS) -LINKFLAGS = -g -qopenmp $(OPTFLAGS) -LIB = -ltbbmalloc -ltbbmalloc_proxy :pre - -For KNLs: - -OPTFLAGS = -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits -CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \ --fno-alias -ansi-alias -restrict $(OPTFLAGS) -LINKFLAGS = -g -qopenmp $(OPTFLAGS) -LIB = -ltbbmalloc :pre - -Once you have an appropriate Makefile.machine, you can -install/un-install the package and build LAMMPS in the usual manner. -Note that you cannot build one executable to run on multiple hardware -targets (Intel CPUs or KNL). You need to build LAMMPS once for each -hardware target, to produce a separate executable. - -You should also typically install the USER-OMP package, as it can be -used in tandem with the USER-INTEL package to good effect, as -explained on the "Speed intel"_Speed_intel.html doc page. - -make yes-user-intel yes-user-omp -make machine :pre - -make no-user-intel no-user-omp -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -2070,8 +1389,8 @@ src/USER-INTEL: filenames -> commands src/USER-INTEL/README "Speed packages"_Speed_packages.html "Speed intel"_Speed_intel.html -"Section 2.6 -sf intel"_Section_start.html#start_6 -"Section 2.6 -pk intel"_Section_start.html#start_6 +"Section 2.6 -sf intel"_Run_options.html +"Section 2.6 -pk intel"_Run_options.html "package intel"_package.html "Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (i) src/USER-INTEL/TEST @@ -2079,7 +1398,7 @@ src/USER-INTEL/TEST :line -USER-LB package :link(USER-LB),h4 +USER-LB package :link(PKG-USER-LB),h4 [Contents:] @@ -2089,14 +1408,6 @@ can be used to model MD particles influenced by hydrodynamic forces. [Authors:] Frances Mackay and Colin Denniston (University of Western Ontario). -[Install or un-install:] - -make yes-user-lb -make machine :pre - -make no-user-lb -make machine :pre - [Supporting info:] src/USER-LB: filenames -> commands @@ -2108,7 +1419,7 @@ examples/USER/lb :ul :line -USER-MGPT package :link(USER-MGPT),h4 +USER-MGPT package :link(PKG-USER-MGPT),h4 [Contents:] @@ -2123,14 +1434,6 @@ matrix-MGPT algorithm due to Tomas Oppelstrup at LLNL. [Authors:] Tomas Oppelstrup and John Moriarty (LLNL). -[Install or un-install:] - -make yes-user-mgpt -make machine :pre - -make no-user-mgpt -make machine :pre - [Supporting info:] src/USER-MGPT: filenames -> commands @@ -2140,7 +1443,7 @@ examples/USER/mgpt :ul :line -USER-MISC package :link(USER-MISC),h4 +USER-MISC package :link(PKG-USER-MISC),h4 [Contents:] @@ -2151,14 +1454,6 @@ dihedral, improper, or command style. [Authors:] The author for each style in the package is listed in the src/USER-MISC/README file. -[Install or un-install:] - -make yes-user-misc -make machine :pre - -make no-user-misc -make machine :pre - [Supporting info:] src/USER-MISC: filenames -> commands @@ -2168,7 +1463,7 @@ examples/USER/misc :ul :line -USER-MANIFOLD package :link(USER-MANIFOLD),h4 +USER-MANIFOLD package :link(PKG-USER-MANIFOLD),h4 [Contents:] @@ -2179,16 +1474,9 @@ algorithm to formulate single-particle constraint functions g(xi,yi,zi) = 0 and their derivative (i.e. the normal of the manifold) n = grad(g). -[Author:] Stefan Paquay (until 2017: Eindhoven University of Technology (TU/e), The -Netherlands; since 2017: Brandeis University, Waltham, MA, USA) - -[Install or un-install:] - -make yes-user-manifold -make machine :pre - -make no-user-manifold -make machine :pre +[Author:] Stefan Paquay (until 2017: Eindhoven University of +Technology (TU/e), The Netherlands; since 2017: Brandeis University, +Waltham, MA, USA) [Supporting info:] @@ -2203,7 +1491,7 @@ http://lammps.sandia.gov/movies.html#manifold :ul :line -USER-MEAMC package :link(USER-MEAMC),h4 +USER-MEAMC package :link(PKG-USER-MEAMC),h4 [Contents:] @@ -2217,14 +1505,6 @@ multiple times. based on the Fortran version of Greg Wagner (Northwestern U) while at Sandia. -[Install or un-install:] - -make yes-user-meamc -make machine :pre - -make no-user-meamc -make machine :pre - [Supporting info:] src/USER-MEAMC: filenames -> commands @@ -2234,7 +1514,7 @@ examples/meam :ul :line -USER-MESO package :link(USER-MESO),h4 +USER-MESO package :link(PKG-USER-MESO),h4 [Contents:] @@ -2248,14 +1528,6 @@ algorithm. [Author:] Zhen Li (Division of Applied Mathematics, Brown University) -[Install or un-install:] - -make yes-user-meso -make machine :pre - -make no-user-meso -make machine :pre - [Supporting info:] src/USER-MESO: filenames -> commands @@ -2270,7 +1542,7 @@ http://lammps.sandia.gov/movies.html#mesodpd :ul :line -USER-MOFFF package :link(USER-MOFFF),h4 +USER-MOFFF package :link(PKG-USER-MOFFF),h4 [Contents:] @@ -2288,14 +1560,6 @@ well as the "MOF+"_MOFplus website. [Author:] Hendrik Heenen (Technical U of Munich), Rochus Schmid (Ruhr-University Bochum). -[Install or un-install:] - -make yes-user-mofff -make machine :pre - -make no-user-mofff -make machine :pre - [Supporting info:] src/USER-MOFFF: filenames -> commands @@ -2308,7 +1572,7 @@ examples/USER/mofff :ul :line -USER-MOLFILE package :link(USER-MOLFILE),h4 +USER-MOLFILE package :link(PKG-USER-MOLFILE),h4 [Contents:] @@ -2336,20 +1600,11 @@ at [Author:] Axel Kohlmeyer (Temple U). -[Install or un-install:] +[Install:] -Note that the lib/molfile/Makefile.lammps file has a setting for a -dynamic loading library libdl.a that should is typically present on -all systems, which is required for LAMMPS to link with this package. -If the setting is not valid for your system, you will need to edit the -Makefile.lammps file. See lib/molfile/README and -lib/molfile/Makefile.lammps for details. - -make yes-user-molfile -make machine :pre - -make no-user-molfile -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -2360,7 +1615,7 @@ lib/molfile/README :line -USER-NETCDF package :link(USER-NETCDF),h4 +USER-NETCDF package :link(PKG-USER-NETCDF),h4 [Contents:] @@ -2384,20 +1639,11 @@ tools: [Author:] Lars Pastewka (Karlsruhe Institute of Technology). -[Install or un-install:] +[Install:] -Note that to follow these steps, you need the standard NetCDF software -package installed on your system. The lib/netcdf/Makefile.lammps file -has settings for NetCDF include and library files that LAMMPS needs to -compile and linkk with this package. If the settings are not valid -for your system, you will need to edit the Makefile.lammps file. See -lib/netcdf/README for details. - -make yes-user-netcdf -make machine :pre - -make no-user-netcdf -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -2408,7 +1654,7 @@ lib/netcdf/README :line -USER-OMP package :link(USER-OMP),h4 +USER-OMP package :link(PKG-USER-OMP),h4 [Contents:] @@ -2418,10 +1664,9 @@ via OpenMP directives. All of them have an "omp" in their style name. The "Speed omp"_Speed_omp.html doc page gives details of what hardware and compilers are required on your system, and how to build and use this package. Its styles can be invoked at run time via the "-sf omp" -or "-suffix omp" "command-line switches"_Section_start.html#start_6. -Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and -"USER-INTEL"_#USER-INTEL packages, which have styles optimized for -CPUs. +or "-suffix omp" "command-line switches"_Run_options.html. Also see +the "KOKKOS"_#PKG-KOKKOS, "OPT"_#PKG-OPT, and "USER-INTEL"_#PKG-USER-INTEL +packages, which have styles optimized for CPUs. [Author:] Axel Kohlmeyer (Temple U). @@ -2438,16 +1683,11 @@ See src/MAKE/OPTIONS/Makefile.omp for an example. Once you have an appropriate Makefile.machine, you can install/un-install the package and build LAMMPS in the usual manner: -[Install or un-install:] +[Install:] -make yes-user-omp -make machine :pre - -make no-user-omp -make machine :pre - -CCFLAGS: add -fopenmp (and -restrict when using Intel compilers) -LINKFLAGS: add -fopenmp :ul +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -2455,15 +1695,15 @@ src/USER-OMP: filenames -> commands src/USER-OMP/README "Speed packages"_Speed_packages.html "Speed omp"_Speed_omp.html -"Section 2.6 -sf omp"_Section_start.html#start_6 -"Section 2.6 -pk omp"_Section_start.html#start_6 +"Section 2.6 -sf omp"_Run_options.html +"Section 2.6 -pk omp"_Run_options.html "package omp"_package.html "Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (o) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line -USER-PHONON package :link(USER-PHONON),h4 +USER-PHONON package :link(PKG-USER-PHONON),h4 [Contents:] @@ -2473,14 +1713,6 @@ relations, directly from molecular dynamics simulations. [Author:] Ling-Ti Kong (Shanghai Jiao Tong University). -[Install or un-install:] - -make yes-user-phonon -make machine :pre - -make no-user-phonon -make machine :pre - [Supporting info:] src/USER-PHONON: filenames -> commands @@ -2490,7 +1722,7 @@ examples/USER/phonon :ul :line -USER-QMMM package :link(USER-QMMM),h4 +USER-QMMM package :link(PKG-USER-QMMM),h4 [Contents:] @@ -2511,42 +1743,11 @@ without changes to LAMMPS itself. [Author:] Axel Kohlmeyer (Temple U). -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first build the -QMMM library in lib/qmmm. You can do this manually if you prefer; -follow the first two steps explained in lib/qmmm/README. You can -also do it in one step from the lammps/src dir, using a command like -these, which simply invoke the lib/qmmm/Install.py script with the -specified args: - -make lib-qmmm # print help message -make lib-qmmm args="-m serial" # build with GNU Fortran compiler (settings as in "make serial") -make lib-qmmm args="-m mpi" # build with default MPI compiler (settings as in "make mpi") -make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler :pre - -The build should produce two files: lib/qmmm/libqmmm.a and -lib/qmmm/Makefile.lammps. The latter is copied from an existing -Makefile.lammps.* and has settings needed to build LAMMPS with the -QMMM library (though typically the settings are just blank). If -necessary, you can edit/create a new lib/qmmm/Makefile.machine file -for your system, which should define an EXTRAMAKE variable to specify -a corresponding Makefile.lammps.machine file. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-user-qmmm -make machine :pre - -make no-user-qmmm -make machine :pre - -NOTE: The LAMMPS executable these steps produce is not yet functional -for a QM/MM simulation. You must also build Quantum ESPRESSO and -create a new executable which links LAMMPS and Quantum ESPRESSO -together. These are steps 3 and 4 described in the lib/qmmm/README -file. +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -2559,7 +1760,7 @@ lib/qmmm/example-mc/README :ul :line -USER-QTB package :link(USER-QTB),h4 +USER-QTB package :link(PKG-USER-QTB),h4 [Contents:] @@ -2574,14 +1775,6 @@ simulation. [Author:] Yuan Shen (Stanford U). -[Install or un-install:] - -make yes-user-qtb -make machine :pre - -make no-user-qtb -make machine :pre - [Supporting info:] src/USER-QTB: filenames -> commands @@ -2592,7 +1785,7 @@ examples/USER/qtb :ul :line -USER-QUIP package :link(USER-QUIP),h4 +USER-QUIP package :link(PKG-USER-QUIP),h4 [Contents:] @@ -2608,26 +1801,11 @@ on your system. [Author:] Albert Bartok (Cambridge University) -[Install or un-install:] +[Install:] -Note that to follow these steps to compile and link to the QUIP -library, you must first download and build QUIP on your systems. It -can be obtained from GitHub. See step 1 and step 1.1 in the -lib/quip/README file for details on how to do this. Note that it -requires setting two environment variables, QUIP_ROOT and QUIP_ARCH, -which will be accessed by the lib/quip/Makefile.lammps file which is -used when you compile and link LAMMPS with this package. You should -only need to edit this file if the LAMMPS build can not use its -settings to successfully build on your system. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-user-quip -make machine :pre - -make no-user-quip -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -2638,26 +1816,18 @@ examples/USER/quip :ul :line -USER-REAXC package :link(USER-REAXC),h4 +USER-REAXC package :link(PKG-USER-REAXC),h4 [Contents:] A pair style which implements the ReaxFF potential in C/C++ (in -contrast to the "REAX package"_#REAX and its Fortran library). ReaxFF +contrast to the "REAX package"_#PKG-REAX and its Fortran library). ReaxFF is universal reactive force field. See the src/USER-REAXC/README file for more info on differences between the two packages. Also two fixes for monitoring molecules as bonds are created and destroyed. [Author:] Hasan Metin Aktulga (MSU) while at Purdue University. -[Install or un-install:] - -make yes-user-reaxc -make machine :pre - -make no-user-reaxc -make machine :pre - [Supporting info:] src/USER-REAXC: filenames -> commands @@ -2669,66 +1839,14 @@ examples/reax :ul :line -USER-SCAFACOS package :link(USER-SCAFACOS),h4 - -[Contents:] - -A KSpace style which wraps the "ScaFaCoS Coulomb solver -library"_http://www.scafacos.de. - -To use this package you must have the ScaFaCoS library available on -your system. It is available for download at "http://scafacos.de" or -can be cloned from the git-repository -"git://github.com/scafacos/scafacos.git". - -[Author:] Rene Halver (JSC) wrote the scafacos LAMMPS command. - -ScaFaCoS was developed by a consortium of German research facilities -with a BMBF (German Ministry of Science and Education) funded project -in 2009-2012. Participants of the consortium were the Universities of -Bonn, Chemnitz, Stuttgart, and Wuppertal as well as the -Forschungszentrum Juelich. - -[Install or un-install:] - -Before building LAMMPS with this package, you must first download and -build the ScaFaCoS library. You can do this manually if you prefer; -follow the instructions in lib/scafacos/README. You can also do it in -one step from the lammps/src dir, using a command like these, which -simply invoke the lib/scafacos/Install.py script with the specified -args: - -make lib-scafacos # print help message -make lib-scafacos args="-b" # download and build in lib/scafacos/scafacos- -make lib-scafacos args="-p $HOME/scafacos # use existing ScaFaCoS installation in $HOME/scafacos - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-user-scafacos -make machine :pre - -make no-user-scafacos -make machine :pre - -[Supporting info:] - -src/USER-SCAFACOS: filenames -> commands -src/USER-SCAFACOS/README -"kspace_style scafacos"_kspace_style.html -"kspace_modify"_kspace_modify.html -examples/USER/scafacos :ul - -:line - -USER-SMD package :link(USER-SMD),h4 +USER-SMD package :link(PKG-USER-SMD),h4 [Contents:] An atom style, fixes, computes, and several pair styles which implements smoothed Mach dynamics (SMD) for solids, which is a model related to smoothed particle hydrodynamics (SPH) for liquids (see the -"USER-SPH package"_#USER-SPH). +"USER-SPH package"_#PKG-USER-SPH). This package solves solids mechanics problems via a state of the art stabilized meshless method with hourglass control. It can specify @@ -2742,31 +1860,11 @@ specified as surface geometries from *.STL files. [Author:] Georg Ganzenmuller (Fraunhofer-Institute for High-Speed Dynamics, Ernst Mach Institute, Germany). -[Install or un-install:] +[Install:] -Before building LAMMPS with this package, you must first download the -Eigen library. Eigen is a template library, so you do not need to -build it, just download it. You can do this manually if you prefer; -follow the instructions in lib/smd/README. You can also do it in one -step from the lammps/src dir, using a command like these, which simply -invoke the lib/smd/Install.py script with the specified args: - -make lib-smd # print help message -make lib-smd args="-b" # download and build in default lib/smd/eigen-eigen-... -make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3 :pre - -Note that a symbolic (soft) link named "includelink" is created in -lib/smd to point to the Eigen dir. When LAMMPS builds it will use -this link. You should not need to edit the lib/smd/Makefile.lammps file. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-user-smd -make machine :pre - -make no-user-smd -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] @@ -2778,7 +1876,7 @@ http://lammps.sandia.gov/movies.html#smd :ul :line -USER-SMTBQ package :link(USER-SMTBQ),h4 +USER-SMTBQ package :link(PKG-USER-SMTBQ),h4 [Contents:] @@ -2789,14 +1887,6 @@ ionocovalent bonds in oxides. [Authors:] Nicolas Salles, Emile Maras, Olivier Politano, and Robert Tetot (LAAS-CNRS, France). -[Install or un-install:] - -make yes-user-smtbq -make machine :pre - -make no-user-smtbq -make machine :pre - [Supporting info:] src/USER-SMTBQ: filenames -> commands @@ -2806,13 +1896,13 @@ examples/USER/smtbq :ul :line -USER-SPH package :link(USER-SPH),h4 +USER-SPH package :link(PKG-USER-SPH),h4 [Contents:] An atom style, fixes, computes, and several pair styles which implements smoothed particle hydrodynamics (SPH) for liquids. See the -related "USER-SMD package"_#USER-SMD package for smooth Mach dynamics +related "USER-SMD package"_#PKG-USER-SMD package for smooth Mach dynamics (SMD) for solids. This package contains ideal gas, Lennard-Jones equation of states, @@ -2828,14 +1918,6 @@ property/atom"_compute_property_atom.html command. [Author:] Georg Ganzenmuller (Fraunhofer-Institute for High-Speed Dynamics, Ernst Mach Institute, Germany). -[Install or un-install:] - -make yes-user-sph -make machine :pre - -make no-user-sph -make machine :pre - [Supporting info:] src/USER-SPH: filenames -> commands @@ -2846,7 +1928,7 @@ http://lammps.sandia.gov/movies.html#sph :ul :line -USER-TALLY package :link(USER-TALLY),h4 +USER-TALLY package :link(PKG-USER-TALLY),h4 [Contents:] @@ -2856,14 +1938,6 @@ stress, etc) about individual interactions. [Author:] Axel Kohlmeyer (Temple U). -[Install or un-install:] - -make yes-user-tally -make machine :pre - -make no-user-tally -make machine :pre - [Supporting info:] src/USER-TALLY: filenames -> commands @@ -2873,7 +1947,7 @@ examples/USER/tally :ul :line -USER-UEF package :link(USER-UEF),h4 +USER-UEF package :link(PKG-USER-UEF),h4 [Contents:] @@ -2883,14 +1957,6 @@ supporting compute styles and an output option. [Author:] David Nicholson (MIT). -[Install or un-install:] - -make yes-user-uef -make machine :pre - -make no-user-uef -make machine :pre - [Supporting info:] src/USER-UEF: filenames -> commands @@ -2904,7 +1970,7 @@ examples/uef :ul :line -USER-VTK package :link(USER-VTK),h4 +USER-VTK package :link(PKG-USER-VTK),h4 [Contents:] @@ -2920,23 +1986,11 @@ system. [Authors:] Richard Berger (JKU) and Daniel Queteschiner (DCS Computing). -[Install or un-install:] +[Install:] -The lib/vtk/Makefile.lammps file has settings for accessing VTK files -and its library, which are required for LAMMPS to build and link with -this package. If the settings are not valid for your system, check if -one of the other lib/vtk/Makefile.lammps.* files is compatible and -copy it to Makefile.lammps. If none of the provided files work, you -will need to edit the Makefile.lammps file. - -You can then install/un-install the package and build LAMMPS in the -usual manner: - -make yes-user-vtk -make machine :pre - -make no-user-vtk -make machine :pre +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. [Supporting info:] From a9fb8636adc555486d4ed3080d2a5766436539d5 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 22 Aug 2018 09:52:44 -0600 Subject: [PATCH 546/675] doc page updates and changed domain->remap() call --- doc/src/Build_extras.txt | 40 ++++++++++++++++++++++++++++++++++ doc/src/Build_package.txt | 1 + doc/src/Packages_details.txt | 36 ++++++++++++++++++++++++++++++ doc/src/Packages_user.txt | 1 + doc/src/kspace_style.txt | 4 ++-- src/USER-SCAFACOS/scafacos.cpp | 12 +++++++++- 6 files changed, 91 insertions(+), 3 deletions(-) diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index 5c33a0a4d4..2fc0785227 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -47,6 +47,7 @@ This is the list of packages that may require additional steps. "USER-OMP"_#user-omp, "USER-QMMM"_#user-qmmm, "USER-QUIP"_#user-quip, +"USER-SCAFACOS"_#user-scafacos, "USER-SMD"_#user-smd, "USER-VTK"_#user-vtk :tb(c=6,ea=c,a=l) @@ -894,6 +895,45 @@ successfully build on your system. :line +USER-SCAFACOS package :h4,link(user-scafacos) + +To build with this package, you must download and build the "ScaFaCoS +Coulomb solver library"_scafacos_home + +:link(scafacos_home,http://www.scafacos.de) + +[CMake build]: + +-D DOWNLOAD_SCAFACOS=value # download ScaFaCoS for build, value = no (default) or yes +-D SCAFACOS_LIBRARY=path # ScaFaCos library file (only needed if at custom location) +-D SCAFACOS_INCLUDE_DIR=path # ScaFaCoS include directory (only needed if at custom location) :pre + +If DOWNLOAD_SCAFACOS is set, the ScaFaCoS library will be downloaded +and built inside the CMake build directory. If the ScaFaCoS library +is already on your system (in a location CMake cannot find it), +SCAFACOS_LIBRARY is the filename (plus path) of the ScaFaCoS library +file, not the directory the library file is in. SCAFACOS_INCLUDE_DIR +is the directory the ScaFaCoS include file is in. + +[Traditional make]: + +You can download and build the ScaFaCoS library manually if you +prefer; follow the instructions in lib/scafacos/README. You can also +do it in one step from the lammps/src dir, using a command like these, +which simply invoke the lib/scafacos/Install.py script with the +specified args: + +make lib-scafacos # print help message +make lib-scafacos args="-b" # download and build in lib/scafacos/scafacos- +make lib-scafacos args="-p $HOME/scafacos # use existing ScaFaCoS installation in $HOME/scafacos + +Note that 2 symbolic (soft) links, "includelink" and "liblink", are +created in lib/scafacos to point to the ScaFaCoS src dir. When LAMMPS +builds in src it will use these links. You should not need to edit +the lib/scafacos/Makefile.lammps file. + +:line + USER-SMD package :h4,link(user-smd) To build with this package, you must download the Eigen3 library. diff --git a/doc/src/Build_package.txt b/doc/src/Build_package.txt index 4f71e9eb18..fab987ea0d 100644 --- a/doc/src/Build_package.txt +++ b/doc/src/Build_package.txt @@ -58,6 +58,7 @@ packages: "USER-OMP"_Build_extras.html#user-omp, "USER-QMMM"_Build_extras.html#user-qmmm, "USER-QUIP"_Build_extras.html#user-quip, +"USER-SCAFACOS"_#Build_extras.html#user-scafacos, "USER-SMD"_Build_extras.html#user-smd, "USER-VTK"_Build_extras.html#user-vtk :tb(c=6,ea=c,a=l) diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 892774be38..c4c9043908 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -92,6 +92,7 @@ as contained in the file name. "USER-QTB"_#PKG-USER-QTB, "USER-QUIP"_#PKG-USER-QUIP, "USER-REAXC"_#PKG-USER-REAXC, +"USER-SCAFACOS"_#USER-SCAFACOS, "USER-SMD"_#PKG-USER-SMD, "USER-SMTBQ"_#PKG-USER-SMTBQ, "USER-SPH"_#PKG-USER-SPH, @@ -1839,6 +1840,41 @@ examples/reax :ul :line +USER-SCAFACOS package :link(USER-SCAFACOS),h4 + +[Contents:] + +A KSpace style which wraps the "ScaFaCoS Coulomb solver +library"_http://www.scafacos.de to compute long-range Coulombic +interactions. + +To use this package you must have the ScaFaCoS library available on +your system. + +[Author:] Rene Halver (JSC) wrote the scafacos LAMMPS command. + +ScaFaCoS itself was developed by a consortium of German research +facilities with a BMBF (German Ministry of Science and Education) +funded project in 2009-2012. Participants of the consortium were the +Universities of Bonn, Chemnitz, Stuttgart, and Wuppertal as well as +the Forschungszentrum Juelich. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#user-scafacos on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-SCAFACOS: filenames -> commands +src/USER-SCAFACOS/README +"kspace_style scafacos"_kspace_style.html +"kspace_modify"_kspace_modify.html +examples/USER/scafacos :ul + +:line + USER-SMD package :link(PKG-USER-SMD),h4 [Contents:] diff --git a/doc/src/Packages_user.txt b/doc/src/Packages_user.txt index c1a52fd0d0..5ed5c6f6d3 100644 --- a/doc/src/Packages_user.txt +++ b/doc/src/Packages_user.txt @@ -66,6 +66,7 @@ Package, Description, Doc page, Example, Library "USER-QTB"_Packages_details.html#PKG-USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, no "USER-QUIP"_Packages_details.html#PKG-USER-QUIP, QUIP/libatoms interface,"pair_style quip"_pair_quip.html, USER/quip, ext "USER-REAXC"_Packages_details.html#PKG-USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, no +"USER-SCAFACOS"_Packages_details.html#PKG-USER-SCAFACOS, wrapper on ScaFaCoS solver,"kspace_style scafacos"_kspace_style.html, USER/scafacos, ext "USER-SMD"_Packages_details.html#PKG-USER-SMD, smoothed Mach dynamics,"SMD User Guide"_PDF/SMD_LAMMPS_userguide.pdf, USER/smd, ext "USER-SMTBQ"_Packages_details.html#PKG-USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, no "USER-SPH"_Packages_details.html#PKG-USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, no diff --git a/doc/src/kspace_style.txt b/doc/src/kspace_style.txt index deb8d8ab51..ddf4e15703 100644 --- a/doc/src/kspace_style.txt +++ b/doc/src/kspace_style.txt @@ -252,7 +252,7 @@ These are the ScaFaCoS methods currently available from LAMMPS: {p2nfft} = FFT-based Coulomb solver {ewald} = Ewald summation {direct} = direct O(N^2) summation -{p3m} = PPPM +{p3m} = PPPM :ul We plan to support additional ScaFaCoS solvers from LAMMPS in the future. For an overview of the included solvers, refer to @@ -268,7 +268,7 @@ energy or the total Columic energy. To select from these options, see the "kspace_modify scafacos accuracy"_kspace_modify.html doc page. The "kspace_modify scafacos"_kspace_modify.html command also explains -all the ScaFaCoS options currently exposed to LAMMPS. +other ScaFaCoS options currently exposed to LAMMPS. :line diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index f3e8ce64f7..d047853b55 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -199,7 +199,6 @@ void Scafacos::compute(int eflag, int vflag) eflag_atom = 0; vflag_global = 0; } - // grow xpbc, epot, efield if necessary @@ -223,6 +222,8 @@ void Scafacos::compute(int eflag, int vflag) // pack coords into xpbc and apply PBC memcpy(xpbc,&x[0][0],3*nlocal*sizeof(double)); + // RENE: remove this section (see RENE below) + //int j = 0; for (int i = 0; i < nlocal; i++) { if (domain->xperiodic) domain->remap(&xpbc[3*i]); @@ -231,6 +232,15 @@ void Scafacos::compute(int eflag, int vflag) //j += 3; } + // RENE: I think the call to domain->remap needs to be this way + // b/c the remap() method checks for PBC and does all 3 dims at once + + int j = 0; + for (int i = 0; i < nlocal; i++) { + domain->remap(&xpbc[j]); + j += 3; + } + // if simulation box has changed, call fcs_tune() if (box_has_changed()) { From cb8482b0e6e9ac007ca79eb96a38dd86f5ce4673 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 22 Aug 2018 10:22:51 -0600 Subject: [PATCH 547/675] another doc change --- doc/src/Commands_kspace.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/src/Commands_kspace.txt b/doc/src/Commands_kspace.txt index a126344505..d56b7fa767 100644 --- a/doc/src/Commands_kspace.txt +++ b/doc/src/Commands_kspace.txt @@ -33,4 +33,5 @@ OPT. "pppm/disp (i)"_kspace_style.html, "pppm/disp/tip4p"_kspace_style.html, "pppm/stagger"_kspace_style.html, -"pppm/tip4p (o)"_kspace_style.html :tb(c=4,ea=c) +"pppm/tip4p (o)"_kspace_style.html, +"scafacos"_kspace_style.html :tb(c=4,ea=c) From c4b55385e20ebb84aa13f0d5e8dbe4703e11efd4 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 22 Aug 2018 10:40:39 -0600 Subject: [PATCH 548/675] doc updates --- doc/src/server_mc.txt | 39 +++++++++++++++++++-------------------- doc/src/server_md.txt | 41 ++++++++++++++++++++--------------------- lib/message/README | 4 ++-- 3 files changed, 41 insertions(+), 43 deletions(-) diff --git a/doc/src/server_mc.txt b/doc/src/server_mc.txt index 94545c8732..fba969d9ce 100644 --- a/doc/src/server_mc.txt +++ b/doc/src/server_mc.txt @@ -56,8 +56,7 @@ a conceptual sense. Python-style pseudo code for the library calls to the CSlib is shown, which performs the actual message exchange between the two codes. See the "CSlib website"_http://cslib.sandia.gov doc pages for more details on the actual library syntax. The "cs" object -in this pseudo code is an instance of the CSlib that both the client -and server codes store. +in this pseudo code is a pointer to an instance of the CSlib. See the src/MESSAGE/server_mc.cpp file for details on how LAMMPS uses these messages. See the examples/COUPLE/lammmps_mc/mc.cpp file for an @@ -67,35 +66,35 @@ Let NATOMS=1, EINIT=2, DISPLACE=3, ACCEPT=4, RUN=5. [Client sends one of these kinds of message]: -cs.send(NATOMS,0) # msgID = 1 with no fields :pre +cs->send(NATOMS,0) # msgID = 1 with no fields :pre -cs.send(EINIT,0) # msgID = 2 with no fields :pre +cs->send(EINIT,0) # msgID = 2 with no fields :pre -cs.send(DISPLACE,2) # msgID = 3 with 2 fields -cs.pack(1,1,ID) # 1st field = ID of atom to displace -cs.pack(2,3,xnew) # 2nd field = new xyz coords of displaced atom :pre +cs->send(DISPLACE,2) # msgID = 3 with 2 fields +cs->pack(1,1,ID) # 1st field = ID of atom to displace +cs->pack(2,3,xnew) # 2nd field = new xyz coords of displaced atom :pre -cs.send(ACCEPT,1) # msgID = 4 with 1 field -cs.pack(1,1,flag) # 1st field = accept/reject flag :pre +cs->send(ACCEPT,1) # msgID = 4 with 1 field +cs->pack(1,1,flag) # 1st field = accept/reject flag :pre -cs.send(RUN,1) # msgID = 5 with 1 field -cs.pack(1,1,nsteps) # 1st field = # of timesteps to run MD :pre +cs->send(RUN,1) # msgID = 5 with 1 field +cs->pack(1,1,nsteps) # 1st field = # of timesteps to run MD :pre [Server replies]: -cs.send(NATOMS,1) # msgID = 1 with 1 field -cs.pack(1,1,Natoms) # 1st field = number of atoms :pre +cs->send(NATOMS,1) # msgID = 1 with 1 field +cs->pack(1,1,Natoms) # 1st field = number of atoms :pre -cs.send(EINIT,2) # msgID = 2 with 2 fields -cs.pack(1,1,poteng) # 1st field = potential energy of system -cs.pack(2,3*Natoms,x) # 2nd field = 3N coords of Natoms :pre +cs->send(EINIT,2) # msgID = 2 with 2 fields +cs->pack(1,1,poteng) # 1st field = potential energy of system +cs->pack(2,3*Natoms,x) # 2nd field = 3N coords of Natoms :pre -cs.send(DISPLACE,1) # msgID = 3 with 1 field -cs.pack(1,1,poteng) # 1st field = new potential energy of system :pre +cs->send(DISPLACE,1) # msgID = 3 with 1 field +cs->pack(1,1,poteng) # 1st field = new potential energy of system :pre -cs.send(ACCEPT,0) # msgID = 4 with no fields +cs->send(ACCEPT,0) # msgID = 4 with no fields -cs.send(RUN,0) # msgID = 5 with no fields +cs->send(RUN,0) # msgID = 5 with no fields :line diff --git a/doc/src/server_md.txt b/doc/src/server_md.txt index 66534c1ad6..8c5d83bfb8 100644 --- a/doc/src/server_md.txt +++ b/doc/src/server_md.txt @@ -59,8 +59,7 @@ a conceptual sense. Python-style pseudo code for the library calls to the CSlib is shown, which performs the actual message exchange between the two codes. See the "CSlib website"_http://cslib.sandia.gov doc pages for more details on the actual library syntax. The "cs" object -in this pseudo code is an instance of the CSlib that both the client -and server codes store. +in this pseudo code is a pointer to an instance of the CSlib. See the src/MESSAGE/server_md.cpp and src/MESSAGE/fix_client_md.cpp files for details on how LAMMPS uses these messages. See the @@ -78,34 +77,34 @@ enum{FORCES=1,ENERGY,VIRIAL}; :pre # required fields: NATOMS, NTYPES, BOXLO, BOXHI, TYPES, COORDS # optional fields: others in 2nd enum above :pre -cs.send(SETUP,nfields) # msgID with nfields :pre +cs->send(SETUP,nfields) # msgID with nfields :pre -cs.pack_string(UNITS,units) # units = "lj", "real", "metal", etc -cs.pack_int(NATOMS,natoms) # total numer of atoms -cs.pack_int(NTYPES,ntypes) # number of atom types -cs.pack(BOXLO,3,boxlo) # 3-vector of lower box bounds -cs.pack(BOXHI,3,boxhi) # 3-vector of upper box bounds -cs.pack(BOXTILT,3,boxtilt) # 3-vector of tilt factors for triclinic boxes -cs.pack(TYPES,natoms,type) # vector of per-atom types -cs.pack(COORDS,3*natoms,x) # vector of 3N atom coords -cs.pack(CHARGE,natoms,q) # vector of per-atom charge :pre +cs->pack_string(UNITS,units) # units = "lj", "real", "metal", etc +cs->pack_int(NATOMS,natoms) # total numer of atoms +cs->pack_int(NTYPES,ntypes) # number of atom types +cs->pack(BOXLO,3,boxlo) # 3-vector of lower box bounds +cs->pack(BOXHI,3,boxhi) # 3-vector of upper box bounds +cs->pack(BOXTILT,3,boxtilt) # 3-vector of tilt factors for triclinic boxes +cs->pack(TYPES,natoms,type) # vector of per-atom types +cs->pack(COORDS,3*natoms,x) # vector of 3N atom coords +cs->pack(CHARGE,natoms,q) # vector of per-atom charge :pre # required fields: COORDS # optional fields: BOXLO, BOXHI, BOXTILT :pre -cs.send(STEP,nfields) # msgID with nfields :pre +cs->send(STEP,nfields) # msgID with nfields :pre -cs.pack_int(NATOMS,natoms) # total numer of atoms -cs.pack_int(NTYPES,ntypes) # number of atom types -cs.pack(BOXLO,3,boxlo) # 3-vector of lower box bounds -cs.pack(BOXTILT,3,boxtilt) # 3-vector of tilt factors for triclinic boxes :pre +cs->pack_int(NATOMS,natoms) # total numer of atoms +cs->pack_int(NTYPES,ntypes) # number of atom types +cs->pack(BOXLO,3,boxlo) # 3-vector of lower box bounds +cs->pack(BOXTILT,3,boxtilt) # 3-vector of tilt factors for triclinic boxes :pre [Server replies to either kind of message]: -cs.send(msgID,3) # msgID = 1 with 3 fields -cs.pack(FORCES,3*Natoms,f) # vector of 3N forces on atoms -cs.pack(ENERGY,1,poteng) # total potential energy of system -cs.pack(VIRIAL,6,virial) # global virial tensor (6-vector) :pre +cs->send(msgID,3) # msgID = 1 with 3 fields +cs->pack(FORCES,3*Natoms,f) # vector of 3N forces on atoms +cs->pack(ENERGY,1,poteng) # total potential energy of system +cs->pack(VIRIAL,6,virial) # global virial tensor (6-vector) :pre :line diff --git a/lib/message/README b/lib/message/README index c93ae81104..dafb94e9ef 100644 --- a/lib/message/README +++ b/lib/message/README @@ -4,7 +4,7 @@ in a LAMMPS input script. The CSlib libary is included in the LAMMPS distribution. A fuller version including documentation and test programs is available at -http:cslib.sandia.gov and was developed by Steve Plimpton at Sandia +http://cslib.sandia.gov. It was developed by Steve Plimpton at Sandia National Laboratories. You can type "make lib-message" from the src directory to see help on @@ -16,7 +16,7 @@ The CSlib can be optionally built with support for sockets using the open-source ZeroMQ (ZMQ) library. If it is not installed on your system, it is easy to download and install. -Go to this website: http://zeromq.org +Go to the ZMQ website for details: http://zeromq.org ----------------- From 4e13ce1d257f8b8d76131b6a8155f36e80688ecf Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 22 Aug 2018 11:21:14 -0600 Subject: [PATCH 549/675] add back in MESSAGE package info in CMakeLists.txt --- cmake/CMakeLists.txt | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 460d177c92..44ea64b1cd 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -478,6 +478,32 @@ if(PKG_KIM) include_directories(${KIM_INCLUDE_DIRS}) endif() +if(PKG_MESSAGE) + option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF) + file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F + ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp) + add_library(cslib STATIC ${cslib_SOURCES}) + + if(BUILD_MPI) + target_compile_definitions(cslib PRIVATE -DMPI_YES) + else() + target_compile_definitions(cslib PRIVATE -DMPI_NO) + endif() + + if(MESSAGE_ZMQ) + target_compile_definitions(cslib PRIVATE -DZMQ_YES) + find_package(ZMQ REQUIRED) + target_include_directories(cslib PRIVATE ${ZMQ_INCLUDE_DIRS}) + target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES}) + else() + target_compile_definitions(cslib PRIVATE -DZMQ_NO) + target_include_directories(cslib PRIVATE ${LAMMPS_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ) + endif() + + list(APPEND LAMMPS_LINK_LIBS cslib) + include_directories(${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src) +endif() + if(PKG_MSCG) find_package(GSL REQUIRED) option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF) From 03b880a31c2306489ae9e2afda511429db0ebb5e Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 22 Aug 2018 11:42:41 -0600 Subject: [PATCH 550/675] more doc page updates --- doc/src/Build_extras.txt | 10 +++++++--- doc/src/Howto_client_server.txt | 2 +- doc/src/fix_client_md.txt | 22 +++++++++++----------- doc/src/message.txt | 29 ++++++++++++++++------------- doc/src/server.txt | 16 ++++++++-------- doc/src/server_mc.txt | 20 ++++++++++++-------- doc/src/server_md.txt | 16 ++++++++-------- examples/message/README | 7 ++++--- 8 files changed, 67 insertions(+), 55 deletions(-) diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index 6ed54c0334..9f640aee78 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -380,9 +380,13 @@ file. MESSAGE package :h4,link(message) +This package can optionally include support for messaging via sockets, +using the open-source "ZeroMQ library"_http://zeromq.org, which must +be installed on your system. + [CMake build]: -No additional settings are needed besides "-D PKG_MESSAGE=yes". +-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes [Traditional make]: @@ -398,8 +402,8 @@ make lib-message args="-s" # build as serial lib with no ZMQ support The build should produce two files: lib/message/cslib/src/libmessage.a and lib/message/Makefile.lammps. The latter is copied from an -existing Makefile.lammps.* and has settings to link with the -open-source ZMQ library if requested in the build. +existing Makefile.lammps.* and has settings to link with the ZeroMQ +library if requested in the build. :line diff --git a/doc/src/Howto_client_server.txt b/doc/src/Howto_client_server.txt index 73d67bbffb..ce9bbc0763 100644 --- a/doc/src/Howto_client_server.txt +++ b/doc/src/Howto_client_server.txt @@ -40,7 +40,7 @@ package"_Packages_details.html#PKG-MESSAGE which implements several commands that enable LAMMPS to act as a client or server, as discussed below. The MESSAGE package also wraps a client/server library called CSlib which enables two codes to exchange messages in different ways, -either via files, a socket, or MPI. The CSlib is provided with LAMMPS +either via files, sockets, or MPI. The CSlib is provided with LAMMPS in the lib/message dir. The CSlib has its own "website"_http://cslib.sandia.gov with documentation and test programs. diff --git a/doc/src/fix_client_md.txt b/doc/src/fix_client_md.txt index 53cd7c36c2..1712e1615e 100644 --- a/doc/src/fix_client_md.txt +++ b/doc/src/fix_client_md.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -25,11 +25,11 @@ This fix style enables LAMMPS to run as a "client" code and communicate each timestep with a separate "server" code to perform an MD simulation together. -"This section"_Section_howto.html#howto_29 gives an overview of -client/server coupling of LAMMPS with another code where one code is -the "client" and sends request messages to a "server" code. The -server responds to each request with a reply message. This enables -the two codes to work in tandem to perform a simulation. +The "Howto client/server"_Howto_client_server.html doc page gives an +overview of client/server coupling of LAMMPS with another code where +one code is the "client" and sends request messages to a "server" +code. The server responds to each request with a reply message. This +enables the two codes to work in tandem to perform a simulation. When using this fix, LAMMPS (as the client code) passes the current coordinates of all particles to the server code each timestep, which @@ -80,9 +80,9 @@ virial as part of "thermodynamic output"_thermo_style.html. The default is {virial yes} This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. The scalar is the -potential energy discussed above. The scalar value calculated by this -fix is "extensive". +"output commands"_Howto_output.html. The scalar is the potential +energy discussed above. The scalar value calculated by this fix is +"extensive". No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy @@ -91,8 +91,8 @@ minimization"_minimize.html. [Restrictions:] This fix is part of the MESSAGE package. It is only enabled if LAMMPS -was built with that package. See the "Making -LAMMPS"_Section_start.html#start_3 section for more info. +was built with that package. See the "Build +package"_Build_package.html doc page for more info. A script that uses this command must also use the "message"_message.html command to setup the messaging protocol with diff --git a/doc/src/message.txt b/doc/src/message.txt index bbea48f0f1..6c84f3135c 100644 --- a/doc/src/message.txt +++ b/doc/src/message.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Command_all.html) :line @@ -44,11 +44,11 @@ message server md mpi/two tmp.couple :pre Establish a messaging protocol between LAMMPS and another code for the purpose of client/server coupling. -"This section"_Section_howto.html#howto_29 gives an overview of -client/server coupling of LAMMPS with another code where one code is -the "client" and sends request messages to a "server" code. The -server responds to each request with a reply message. This enables -the two codes to work in tandem to perform a simulation. +The "Howto client/server"_Howto_client_server.html doc page gives an +overview of client/server coupling of LAMMPS with another code where +one code is the "client" and sends request messages to a "server" +code. The server responds to each request with a reply message. This +enables the two codes to work in tandem to perform a simulation. :line @@ -82,9 +82,12 @@ The filename can include a path. Both codes must be able to access the path/file in a common filesystem. For mode {zmq}, the 2 codes communicate via a socket on the server -code's machine. The client specifies an IP address (IPv4 format) or -the DNS name of the machine the server code is running on, followed by -a 4-digit port ID for the socket, separated by a colon. E.g. +code's machine. Support for socket messaging is provided by the +open-source "ZeroMQ library"_http://zeromq.org, which must be +installed on your system. The client specifies an IP address (IPv4 +format) or the DNS name of the machine the server code is running on, +followed by a 4-digit port ID for the socket, separated by a colon. +E.g. localhost:5555 # client and server running on same machine 192.168.1.1:5555 # server is 192.168.1.1 @@ -106,8 +109,8 @@ mpirun -np 2 lmp_mpi -mpi 2 -in in.client -log log.client : -np 4 othercode args mpirun -np 2 othercode args : -np 4 lmp_mpi -mpi 2 -in in.server # LAMMPS is server :pre Note the use of the "-mpi P" command-line argument with LAMMPS. See -the "command-line args"_Section_start.html#start_6 doc page for -further explanation. +the "command-line args"_Run_options.html doc page for further +explanation. For mode {mpi/two}, the 2 codes communicate via MPI, but are launched be 2 separate mpirun commands. The specified {filename} argument is a @@ -149,8 +152,8 @@ fix client or server command. [Restrictions:] This command is part of the MESSAGE package. It is only enabled if -LAMMPS was built with that package. See the "Making -LAMMPS"_Section_start.html#start_3 section for more info. +LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. [Related commands:] diff --git a/doc/src/server.txt b/doc/src/server.txt index ba6daa7fcf..86fb68d012 100644 --- a/doc/src/server.txt +++ b/doc/src/server.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -26,11 +26,11 @@ message back to the client. The specified {protocol} determines the format and content of messages LAMMPS expects to receive and how it responds. -"This section"_Section_howto.html#howto_29 gives an overview of -client/server coupling of LAMMPS with another code where one code is -the "client" and sends request messages to a "server" code. The -server responds to each request with a reply message. This enables -the two codes to work in tandem to perform a simulation. +The "Howto client/server"_Howto_client_server.html doc page gives an +overview of client/server coupling of LAMMPS with another code where +one code is the "client" and sends request messages to a "server" +code. The server responds to each request with a reply message. This +enables the two codes to work in tandem to perform a simulation. When this command is invoked, LAMMPS will run in server mode in an endless loop, waiting for messages from the client code. The client @@ -57,8 +57,8 @@ mc"_server_mc.html doc page for details on the protocol. [Restrictions:] This command is part of the MESSAGE package. It is only enabled if -LAMMPS was built with that package. See the "Making -LAMMPS"_Section_start.html#start_3 section for more info. +LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. A script that uses this command must also use the "message"_message.html command to setup the messaging protocol with diff --git a/doc/src/server_mc.txt b/doc/src/server_mc.txt index fba969d9ce..3c658187da 100644 --- a/doc/src/server_mc.txt +++ b/doc/src/server_mc.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -25,11 +25,11 @@ expect messages from a separate "client" code that match the {mc} protocol for format and content explained below. For each message LAMMPS receives it will send a message back to the client. -"This section"_Section_howto.html#howto_29 gives an overview of -client/server coupling of LAMMPS with another code where one code is -the "client" and sends request messages to a "server" code. The -server responds to each request with a reply message. This enables -the two codes to work in tandem to perform a simulation. +The "Howto client/server"_Howto_client_server.html doc page gives an +overview of client/server coupling of LAMMPS with another code where +one code is the "client" and sends request messages to a "server" +code. The server responds to each request with a reply message. This +enables the two codes to work in tandem to perform a simulation. When this command is invoked, LAMMPS will run in server mode in an endless loop, waiting for messages from the client code. The client @@ -101,8 +101,12 @@ cs->send(RUN,0) # msgID = 5 with no fields [Restrictions:] This command is part of the MESSAGE package. It is only enabled if -LAMMPS was built with that package. See the "Making -LAMMPS"_Section_start.html#start_3 section for more info. +LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +A script that uses this command must also use the +"message"_message.html command to setup the messaging protocol with +the other client code. [Related commands:] diff --git a/doc/src/server_md.txt b/doc/src/server_md.txt index 8c5d83bfb8..4fe605f7a5 100644 --- a/doc/src/server_md.txt +++ b/doc/src/server_md.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -25,11 +25,11 @@ expect messages from a separate "client" code that match the {md} protocol for format and content explained below. For each message LAMMPS receives it will send a message back to the client. -"This section"_Section_howto.html#howto_29 gives an overview of -client/server coupling of LAMMPS with another code where one code is -the "client" and sends request messages to a "server" code. The -server responds to each request with a reply message. This enables -the two codes to work in tandem to perform a simulation. +The "Howto client/server"_Howto_client_server.html doc page gives an +overview of client/server coupling of LAMMPS with another code where +one code is the "client" and sends request messages to a "server" +code. The server responds to each request with a reply message. This +enables the two codes to work in tandem to perform a simulation. When this command is invoked, LAMMPS will run in server mode in an endless loop, waiting for messages from the client code. The client @@ -111,8 +111,8 @@ cs->pack(VIRIAL,6,virial) # global virial tensor (6-vector) :pre [Restrictions:] This command is part of the MESSAGE package. It is only enabled if -LAMMPS was built with that package. See the "Making -LAMMPS"_Section_start.html#start_3 section for more info. +LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. [Related commands:] diff --git a/examples/message/README b/examples/message/README index 63055177a4..617a4249a5 100644 --- a/examples/message/README +++ b/examples/message/README @@ -11,9 +11,10 @@ LAMMPS as the server, e.g. a quantum code computing quantum forces, so that ab initio MD could be performed. See an example of the latter in examples/COUPLE/lammps_vasp. -See the MESSAGE package (doc/Section_messages.html#MESSAGE) -and Section_howto.html#howto10 for more details on how -client/server coupling works in LAMMPS. +See the doc pages for the "MESSAGE package" +(Package_details.html#PKG-MESSAGE) and "Howto client/server" +(Howto_client_server.html) for more details on how client/server +coupling works in LAMMPS. -------------- From fd56124a94288635c942ac33a8c4aacd60231d74 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Wed, 22 Aug 2018 14:17:21 -0600 Subject: [PATCH 551/675] corrected remap call and logic for check if correct solver / tolerance combinations are set --- src/USER-SCAFACOS/scafacos.cpp | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index d047853b55..7c2dd0b68d 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -222,25 +222,14 @@ void Scafacos::compute(int eflag, int vflag) // pack coords into xpbc and apply PBC memcpy(xpbc,&x[0][0],3*nlocal*sizeof(double)); - // RENE: remove this section (see RENE below) - - //int j = 0; - for (int i = 0; i < nlocal; i++) { - if (domain->xperiodic) domain->remap(&xpbc[3*i]); - if (domain->yperiodic) domain->remap(&xpbc[3*i+1]); - if (domain->zperiodic) domain->remap(&xpbc[3*i+2]); - //j += 3; - } - - // RENE: I think the call to domain->remap needs to be this way - // b/c the remap() method checks for PBC and does all 3 dims at once int j = 0; - for (int i = 0; i < nlocal; i++) { - domain->remap(&xpbc[j]); - j += 3; + if (domain->xperiodic || domain -> yperiodic || domain -> zperiodic){ + for (int i = 0; i < nlocal; i++) { + domain->remap(&xpbc[j]); + j += 3; + } } - // if simulation box has changed, call fcs_tune() if (box_has_changed()) { @@ -328,20 +317,20 @@ int Scafacos::modify_param(int narg, char **arg) tolerance_type != FCS_TOLERANCE_TYPE_ENERGY && tolerance_type != FCS_TOLERANCE_TYPE_ENERGY_REL ) - ) && + ) || ( strcmp(method,"p2nfft") == 0 && ( tolerance_type != FCS_TOLERANCE_TYPE_FIELD && tolerance_type != FCS_TOLERANCE_TYPE_POTENTIAL ) - ) && + ) || ( strcmp(method,"p3m") == 0 && ( tolerance_type != FCS_TOLERANCE_TYPE_FIELD ) - ) && + ) || ( strcmp(method,"ewald") == 0 && ( From 8930a88e99d4c812f2eb78403b3ec37c9f7c8cba Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Wed, 22 Aug 2018 15:12:52 -0600 Subject: [PATCH 552/675] enrich the AIMD interface --- src/MESSAGE/fix_client_md.cpp | 97 ++++++++++++++++---------- src/MESSAGE/fix_client_md.h | 6 +- src/MESSAGE/server_md.cpp | 125 +++++++++++++++++++--------------- 3 files changed, 134 insertions(+), 94 deletions(-) diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp index 9ca6df4edc..9c270ac2c9 100644 --- a/src/MESSAGE/fix_client_md.cpp +++ b/src/MESSAGE/fix_client_md.cpp @@ -28,8 +28,9 @@ using namespace LAMMPS_NS; using namespace CSLIB_NS; using namespace FixConst; +enum{REAL,METAL} enum{SETUP=1,STEP}; -enum{UNITS=1,DIM,NATOMS,NTYPES,BOXLO,BOXHI,BOXTILT,TYPES,COORDS,CHARGE}; +enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,CHARGE}; enum{FORCES=1,ENERGY,VIRIAL}; /* ---------------------------------------------------------------------- */ @@ -44,14 +45,32 @@ FixClientMD::FixClientMD(LAMMPS *lmp, int narg, char **arg) : if (sizeof(tagint) != 4) error->all(FLERR,"Fix client/md requires 4-byte atom IDs"); + if (strcmp(update->unit_style,"real") == 0) units = REAL; + else if (strcmp(update->unit_style,"metal") == 0) units = METAL; + else error->all(FLERR,"Units must be real or metal for fix client/md"); + scalar_flag = 1; global_freq = 1; extscalar = 1; virial_flag = 1; thermo_virial = 1; + if (domain->dimension == 2) + box[0][2] = box[1][2] = box[2][0] = box[2][1] = box[2][2] = 0.0; + maxatom = 0; xpbc = NULL; + + // unit conversion factors + + double inv_nprocs = 1.0 / comm->nprocs; + + fconvert = econvert = vconvert = 1.0; + if (units == REAL) { + fconvert = 1.0; + econvert = 1.0; + vconvert = 1.0; + } } /* ---------------------------------------------------------------------- */ @@ -101,34 +120,28 @@ void FixClientMD::setup(int vflag) { CSlib *cs = (CSlib *) lmp->cslib; - // required fields: NATOMS, NTYPES, BOXLO, BOXHI, TYPES, COORDS + // required fields: DIM, PERIODICTY, ORIGIN, BOX, NATOMS, NTYPES, TYPES, COORDS // optional fields: others in enum above - int nfields = 6; - if (domain->dimension == 2) nfields++; - if (domain->triclinic) nfields++; + int nfields = 8; if (atom->q_flag) nfields++; cs->send(SETUP,nfields); + cs->pack_int(DIM,domain->dimension); + cs->pack(PERIODICITY,1,3,domain->periodicity); + + pack_box(); + cs->pack(ORIGIN,4,3,domain->boxlo); + cs->pack(BOX,4,9,&box[0][0]); + cs->pack_int(NATOMS,atom->natoms); cs->pack_int(NTYPES,atom->ntypes); - cs->pack(BOXLO,4,3,domain->boxlo); - cs->pack(BOXHI,4,3,domain->boxhi); + cs->pack_parallel(TYPES,1,atom->nlocal,atom->tag,1,atom->type); pack_coords(); cs->pack_parallel(COORDS,4,atom->nlocal,atom->tag,3,xpbc); - if (domain->dimension == 2) cs->pack_int(DIM,domain->dimension); - if (domain->triclinic) { - double boxtilt[3]; - boxtilt[0] = domain->xy; - if (domain->dimension == 3) { - boxtilt[1] = domain->xz; - boxtilt[2] = domain->yz; - } else boxtilt[1] = boxtilt[2] = 0.0; - cs->pack(BOXTILT,4,3,boxtilt); - } if (atom->q_flag) cs->pack_parallel(CHARGE,4,atom->nlocal,atom->tag,1,atom->q); @@ -156,7 +169,7 @@ void FixClientMD::post_force(int vflag) else evflag = 0; // required fields: COORDS - // optional fields: BOXLO, BOXHI, BOXTILT + // optional fields: ORIGIN, BOX // send coords @@ -164,7 +177,6 @@ void FixClientMD::post_force(int vflag) int nfields = 1; if (domain->box_change) nfields += 2; - if (domain->box_change && domain->triclinic) nfields++;; cs->send(STEP,nfields); @@ -172,17 +184,9 @@ void FixClientMD::post_force(int vflag) cs->pack_parallel(COORDS,4,atom->nlocal,atom->tag,3,xpbc); if (domain->box_change) { - cs->pack(BOXLO,4,3,domain->boxlo); - cs->pack(BOXHI,4,3,domain->boxhi); - if (domain->triclinic) { - double boxtilt[3]; - boxtilt[0] = domain->xy; - if (domain->dimension == 3) { - boxtilt[1] = domain->xz; - boxtilt[2] = domain->yz; - } else boxtilt[1] = boxtilt[2] = 0.0; - cs->pack(BOXTILT,4,3,boxtilt); - } + pack_box(); + cs->pack(ORIGIN,4,3,domain->boxlo); + cs->pack(BOX,4,9,&box[0][0]); } // recv forces, energy, virial @@ -230,6 +234,26 @@ void FixClientMD::pack_coords() } } +/* ---------------------------------------------------------------------- + pack box info into box = 3 edge vectors of simulation box +------------------------------------------------------------------------- */ + +void FixClientMD::pack_box() +{ + double *boxlo = domain->boxlo; + double *boxhi = domain->boxhi; + + box[0][0] = boxhi[0] - boxlo[0]; + box[0][1] = 0.0; + box[0][2] = 0.0; + box[1][0] = domain->xy; + box[1][1] = boxhi[1] - boxlo[1]; + box[1][2] = 0.0; + box[2][0] = domain->xz; + box[2][1] = domain->yz; + box[2][2] = boxhi[2] - boxlo[2]; +} + /* ---------------------------------------------------------------------- receive message from server with forces, energy, virial ------------------------------------------------------------------------- */ @@ -254,18 +278,17 @@ void FixClientMD::receive_fev(int vflag) m = atom->map(id); if (m < 0 || m >= nlocal) j += 3; else { - f[m][0] += forces[j++]; - f[m][1] += forces[j++]; - f[m][2] += forces[j++]; + f[m][0] += fconvert * forces[j++]; + f[m][1] += fconvert * forces[j++]; + f[m][2] += fconvert * forces[j++]; } } - eng = cs->unpack_double(ENERGY); - + eng = econvert * cs->unpack_double(ENERGY); + if (vflag) { double *v = (double *) cs->unpack(VIRIAL); - double invnprocs = 1.0 / comm->nprocs; for (int i = 0; i < 6; i++) - virial[i] = invnprocs*v[i]; + virial[i] = inv_nprocs * vconvert * v[i]; } } diff --git a/src/MESSAGE/fix_client_md.h b/src/MESSAGE/fix_client_md.h index 8e4ec0c6de..b6561bce41 100644 --- a/src/MESSAGE/fix_client_md.h +++ b/src/MESSAGE/fix_client_md.h @@ -38,10 +38,14 @@ class FixClientMD : public Fix { private: void *cslib; - int maxatom; + int maxatom,units; + double box[3][3]; double eng; double *xpbc; + double inv_nprocs; + double fconvert,econvert,vconvert; + void pack_coords(); void receive_fev(int ); }; diff --git a/src/MESSAGE/server_md.cpp b/src/MESSAGE/server_md.cpp index 9783383553..af93c3b4b0 100644 --- a/src/MESSAGE/server_md.cpp +++ b/src/MESSAGE/server_md.cpp @@ -33,8 +33,9 @@ using namespace LAMMPS_NS; using namespace CSLIB_NS; +enum{REAL,METAL} enum{SETUP=1,STEP}; -enum{UNITS=1,DIM,NATOMS,NTYPES,BOXLO,BOXHI,BOXTILT,TYPES,COORDS,CHARGE}; +enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,CHARGE}; enum{FORCES=1,ENERGY,VIRIAL}; // NOTE: features that could be added to this interface @@ -54,9 +55,13 @@ ServerMD::ServerMD(LAMMPS *lmp) : Pointers(lmp) if (domain->box_exist == 0) error->all(FLERR,"Server command before simulation box is defined"); - if (!atom->map_style) error->all(FLERR,"Server md mode requires atom map"); - if (atom->tag_enable == 0) error->all(FLERR,"Server md mode requires atom IDs"); + if (!atom->map_style) error->all(FLERR,"Server md requires atom map"); + if (atom->tag_enable == 0) error->all(FLERR,"Server md requires atom IDs"); if (sizeof(tagint) != 4) error->all(FLERR,"Server md requires 4-byte atom IDs"); + + if (strcmp(update->unit_style,"real") == 0) units = REAL; + else if (strcmp(update->unit_style,"metal") == 0) units = METAL; + else error->all(FLERR,"Units must be real or metal for server md"); } /* ---------------------------------------------------------------------- */ @@ -90,24 +95,31 @@ void ServerMD::loop() if (msgID == SETUP) { + int dim = 0; + int *periodicity = NULL; int natoms = -1; int ntypes = -1; - double *boxlo = NULL; - double *boxhi = NULL; - double *boxtilt = NULL; + double *origin = NULL; + double *box = NULL; int *types = NULL; double *coords = NULL; double *charge = NULL; for (int ifield = 0; ifield < nfield; ifield++) { - if (fieldID[ifield] == UNITS) { - char *units = cs->unpack_string(UNITS); - if (strcmp(units,update->unit_style) != 0) - error->all(FLERR,"Server md units mis-match with client"); - } else if (fieldID[ifield] == DIM) { - int dim = cs->unpack_int(DIM); - if (dim != domain->dimension) + if (fieldID[ifield] == DIM) { + dim = cs->unpack_int(DIM); + if (dim != domain->dimension) error->all(FLERR,"Server md dimension mis-match with client"); + } else if (fieldID[ifield] == PERIODICITY) { + periodicity = (int *) cs->unpack(PERIODICITY); + if (periodicity[0] != domain->periodicity[0] || + periodicity[1] != domain->periodicity[1] + periodicity[2] != domain->periodicity[2]) + error->all(FLERR,"Server md periodicity mis-match with client"); + } else if (fieldID[ifield] == ORIGIN) { + origin = (double *) cs->unpack(ORIGIN); + } else if (fieldID[ifield] == BOX) { + box = (double *) cs->unpack(BOX); } else if (fieldID[ifield] == NATOMS) { natoms = cs->unpack_int(NATOMS); if (3*natoms > INT_MAX) @@ -116,12 +128,6 @@ void ServerMD::loop() ntypes = cs->unpack_int(NTYPES); if (ntypes != atom->ntypes) error->all(FLERR,"Server md ntypes mis-match with client"); - } else if (fieldID[ifield] == BOXLO) { - boxlo = (double *) cs->unpack(BOXLO); - } else if (fieldID[ifield] == BOXHI) { - boxhi = (double *) cs->unpack(BOXHI); - } else if (fieldID[ifield] == BOXTILT) { - boxtilt = (double *) cs->unpack(BOXTILT); } else if (fieldID[ifield] == TYPES) { types = (int *) cs->unpack(TYPES); } else if (fieldID[ifield] == COORDS) { @@ -131,7 +137,8 @@ void ServerMD::loop() } else error->all(FLERR,"Server md setup field unknown"); } - if (natoms < 0 || ntypes < 0 || !boxlo || !boxhi || !types || !coords) + if (dim == 0 || !periodicity || !origin || !box || + natoms < 0 || ntypes < 0 || !types || !coords) error->all(FLERR,"Required server md setup field not received"); if (charge && atom->q_flag == 0) @@ -139,8 +146,12 @@ void ServerMD::loop() // reset box, global and local // reset proc decomposition + + if ((box[3] != 0.0 || box[6] != 0.0 || box[7] != 0.0) && + domain->triclinic == 0) + error->all(FLERR,"Server md is not initialized for a triclinic box"); - box_change(boxlo,boxhi,boxtilt); + box_change(origin,box); domain->set_initial_box(); domain->set_global_box(); @@ -166,7 +177,7 @@ void ServerMD::loop() int ntotal; MPI_Allreduce(&atom->nlocal,&ntotal,1,MPI_INT,MPI_SUM,world); if (ntotal != natoms) - error->all(FLERR,"Server md atom cound does not match client"); + error->all(FLERR,"Server md atom count does not match client"); atom->map_init(); atom->map_set(); @@ -190,29 +201,34 @@ void ServerMD::loop() } else if (msgID == STEP) { - double *boxlo = NULL; - double *boxhi = NULL; - double *boxtilt = NULL; double *coords = NULL; + double *origin = NULL; + double *box = NULL; for (int ifield = 0; ifield < nfield; ifield++) { - if (fieldID[ifield] == BOXLO) { - boxlo = (double *) cs->unpack(BOXLO); - } else if (fieldID[ifield] == BOXHI) { - boxhi = (double *) cs->unpack(BOXHI); - } else if (fieldID[ifield] == BOXTILT) { - boxtilt = (double *) cs->unpack(BOXTILT); - } else if (fieldID[ifield] == COORDS) { + if (fieldID[ifield] == COORDS) { coords = (double *) cs->unpack(COORDS); + } else if (fieldID[ifield] == ORIGIN) { + origin = (double *) cs->unpack(ORIGIN); + } else if (fieldID[ifield] == BOX) { + box = (double *) cs->unpack(BOX); } else error->all(FLERR,"Server md step field unknown"); } if (!coords) error->all(FLERR,"Required server md step field not received"); - // change box size/shape, only if both box lo/hi received + // change box size/shape, only if origin and box received + // reset global/local box like FixDeform at end_of_step() - if (boxlo && boxhi) box_change(boxlo,boxhi,boxtilt); + if (origin && box) { + if ((box[3] != 0.0 || box[6] != 0.0 || box[7] != 0.0) && + domain->triclinic == 0) + error->all(FLERR,"Server md is not initialized for a triclinic box"); + box_change(origin,box); + domain->set_global_box(); + domain->set_local_box(); + } // assign received coords to owned atoms // closest_image() insures xyz matches current server PBC @@ -231,9 +247,11 @@ void ServerMD::loop() } } - // if no need to reneighbor, just ghost comm - // else setup_minimal(1) which includes reneigh - // setup_minimal computes forces for 0 or 1 + // if no need to reneighbor: + // ghost comm + // setup_minimal(0) which just computes forces + // else: + // setup_minimal(1) for pbc, reset_box, reneigh, forces int nflag = neighbor->decide(); if (nflag == 0) { @@ -278,26 +296,21 @@ void ServerMD::loop() box change due to received message ------------------------------------------------------------------------- */ -void ServerMD::box_change(double *boxlo, double *boxhi, double *boxtilt) +void ServerMD::box_change(double *origin, double *box) { - domain->boxlo[0] = boxlo[0]; - domain->boxhi[0] = boxhi[0]; - domain->boxlo[1] = boxlo[1]; - domain->boxhi[1] = boxhi[1]; - if (domain->dimension == 3) { - domain->boxlo[2] = boxlo[2]; - domain->boxhi[2] = boxhi[2]; - } - - if (boxtilt) { - if (!domain->triclinic) - error->all(FLERR,"Server md not setup for triclinic box"); - domain->xy = boxtilt[0]; - if (domain->dimension == 3) { - domain->xz = boxtilt[1]; - domain->yz = boxtilt[2]; - } - } + domain->boxlo[0] = origin[0]; + domain->boxlo[1] = origin[1]; + domain->boxlo[2] = origin[2]; + + domain->boxhi[0] = origin[0] + box[0]; + domain->boxhi[1] = origin[1] + box[4]; + domain->boxhi[2] = origin[2] + box[8]; + + domain->xy = box[3]; + domain->xz = box[6]; + domain->yz = box[7]; + + } /* ---------------------------------------------------------------------- From a1098d5796e838540f7e1b2bf72777360024a668 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 18:45:32 -0400 Subject: [PATCH 553/675] fix broken and inconsistent links in the manual --- doc/src/Commands_bond.txt | 2 +- doc/src/Howto_spherical.txt | 2 +- doc/src/Packages_details.txt | 8 ++++---- doc/src/Python_call.txt | 2 +- doc/src/Speed_intel.txt | 2 +- doc/src/Speed_packages.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/src/Commands_bond.txt b/doc/src/Commands_bond.txt index 48069d3120..0cf433d53a 100644 --- a/doc/src/Commands_bond.txt +++ b/doc/src/Commands_bond.txt @@ -95,7 +95,7 @@ OPT. "helix (o)"_dihedral_helix.html, "multi/harmonic (o)"_dihedral_multi_harmonic.html, "nharmonic (o)"_dihedral_nharmonic.html, -"opls (iko)"_dihedral_opls.htm;, +"opls (iko)"_dihedral_opls.html, "quadratic (o)"_dihedral_quadratic.html, "spherical (o)"_dihedral_spherical.html, "table (o)"_dihedral_table.html, diff --git a/doc/src/Howto_spherical.txt b/doc/src/Howto_spherical.txt index 1e737df655..4dfe4e2f6c 100644 --- a/doc/src/Howto_spherical.txt +++ b/doc/src/Howto_spherical.txt @@ -159,7 +159,7 @@ ellipsoidal particles: The advantage of these fixes is that those which thermostat the particles include the rotational degrees of freedom in the temperature -calculation and thermostatting. The "fix langevin"_fix_langevin +calculation and thermostatting. The "fix langevin"_fix_langevin.html command can also be used with its {omgea} or {angmom} options to thermostat the rotational degrees of freedom for spherical or ellipsoidal particles. Other thermostatting fixes only operate on the diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 892774be38..e4ca846cc3 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -297,7 +297,7 @@ lib/gpu/README "Section 2.6 -sf gpu"_Run_options.html "Section 2.6 -pk gpu"_Run_options.html "package gpu"_package.html -"Commands all"_Commands_all.html pages (pair,kspace) for styles followed by (g) +"Commands all"_lc pages (pair,kspace) for styles followed by (g) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line @@ -412,7 +412,7 @@ lib/kokkos/README "Section 2.6 -sf kk"_Run_options.html "Section 2.6 -pk kokkos"_Run_options.html "package kokkos"_package.html -"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (k) +"Commands all"_lc pages (fix,compute,pair,etc) for styles followed by (k) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line @@ -1392,7 +1392,7 @@ src/USER-INTEL/README "Section 2.6 -sf intel"_Run_options.html "Section 2.6 -pk intel"_Run_options.html "package intel"_package.html -"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (i) +"Commands all"_lc pages (fix,compute,pair,etc) for styles followed by (i) src/USER-INTEL/TEST "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul @@ -1698,7 +1698,7 @@ src/USER-OMP/README "Section 2.6 -sf omp"_Run_options.html "Section 2.6 -pk omp"_Run_options.html "package omp"_package.html -"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (o) +"Commands all"_lc pages (fix,compute,pair,etc) for styles followed by (o) "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul :line diff --git a/doc/src/Python_call.txt b/doc/src/Python_call.txt index 029c8f831c..3854552188 100644 --- a/doc/src/Python_call.txt +++ b/doc/src/Python_call.txt @@ -59,7 +59,7 @@ and callbacks to LAMMPS. The "fix python/invoke"_fix_python_invoke.html command can execute Python code at selected timesteps during a simulation run. -The "pair_style python"_pair_python command allows you to define +The "pair_style python"_pair_python.html command allows you to define pairwise potentials as python code which encodes a single pairwise interaction. This is useful for rapid-developement and debugging of a new potential. diff --git a/doc/src/Speed_intel.txt b/doc/src/Speed_intel.txt index ef876a7d42..3b25ade4d2 100644 --- a/doc/src/Speed_intel.txt +++ b/doc/src/Speed_intel.txt @@ -400,7 +400,7 @@ within the input script to automatically append the "omp" suffix to styles when USER-INTEL styles are not available. NOTE: For simulations on higher node counts, add "processors * * * -grid numa"_processors.html" to the beginning of the input script for +grid numa"_processors.html to the beginning of the input script for better scalability. When running on many nodes, performance might be better when using diff --git a/doc/src/Speed_packages.txt b/doc/src/Speed_packages.txt index 6c837885cd..4c87091e7e 100644 --- a/doc/src/Speed_packages.txt +++ b/doc/src/Speed_packages.txt @@ -72,7 +72,7 @@ Lennard-Jones "pair_style lj/cut"_pair_lj.html: "pair_style lj/cut/opt"_pair_lj.html :ul To see what accelerate styles are currently available for a particular -style, find the style name in the "Commands_all"_Commands_all.html +style, find the style name in the "Commands_all"_lc style pages (fix,compute,pair,etc) and see what suffixes are listed (g,i,k,o,t) with it. The doc pages for individual commands (e.g. "pair lj/cut"_pair_lj.html or "fix nve"_fix_nve.html) also list From 4074c4c67f6a15d85fefcfb19eb83c25d404c34d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 19:08:07 -0400 Subject: [PATCH 554/675] correct some more broken or outdated links --- doc/src/Build_settings.txt | 4 ++-- doc/src/Packages_details.txt | 5 +++-- doc/src/Packages_user.txt | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/src/Build_settings.txt b/doc/src/Build_settings.txt index 773217e3a0..dfe2f900f3 100644 --- a/doc/src/Build_settings.txt +++ b/doc/src/Build_settings.txt @@ -80,8 +80,8 @@ per-timestep CPU cost, FFTs are only a portion of long-range Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel communication can be costly). A breakdown of these timings is printed to the screen at the end of a run using the "kspace_style -pppm"_kspace_style.html command. The "Run output"_doc page gives more -details. +pppm"_kspace_style.html command. The "Run output"_Run_output.html +doc page gives more details. FFTW is a fast, portable FFT library that should also work on any platform and can be faster than the KISS FFT library. You can diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index e4ca846cc3..c415a4058c 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -1582,8 +1582,6 @@ molecular visualization and analysis program, to enable LAMMPS to dump snapshots in formats compatible with various molecular simulation tools. -:link(vmd_home,http://www.ks.uiuc.edu/Research/vmd) - To use this package you must have the desired VMD plugins available on your system. @@ -1635,6 +1633,7 @@ tools: "AtomEye"_atomeye (the libAtoms version of AtomEye contains a NetCDF reader not present in the standard distribution) :ul :link(ovito,http://www.ovito.org) +:link(vmd_home,https://www.ks.uiuc.edu/Research/vmd/) :link(atomeye,http://www.libatoms.org) [Author:] Lars Pastewka (Karlsruhe Institute of Technology). @@ -1998,3 +1997,5 @@ src/USER-VTK: filenames -> commands src/USER-VTK/README lib/vtk/README "dump vtk"_dump_vtk.html :ul + + diff --git a/doc/src/Packages_user.txt b/doc/src/Packages_user.txt index c1a52fd0d0..7db2fa895c 100644 --- a/doc/src/Packages_user.txt +++ b/doc/src/Packages_user.txt @@ -58,7 +58,7 @@ Package, Description, Doc page, Example, Library "USER-MGPT"_Packages_details.html#PKG-USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, no "USER-MISC"_Packages_details.html#PKG-USER-MISC, single-file contributions, USER-MISC/README, USER/misc, no "USER-MOFFF"_Packages_details.html#PKG-USER-MOFFF, styles for "MOF-FF"_MOFplus force field, "pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html, USER/mofff, no -"USER-MOLFILE"_Packages_details.html#PKG-USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, n/a, ext +"USER-MOLFILE"_Packages_details.html#PKG-USER-MOLFILE, "VMD"_https://www.ks.uiuc.edu/Research/vmd/ molfile plug-ins,"dump molfile"_dump_molfile.html, n/a, ext "USER-NETCDF"_Packages_details.html#PKG-USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, n/a, ext "USER-OMP"_Packages_details.html#PKG-USER-OMP, OpenMP-enabled styles,"Speed omp"_Speed_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, no "USER-PHONON"_Packages_details.html#PKG-USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, no From 2aa4770e0decd7f4bf2c739c095db8b5519b9c5a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 19:16:11 -0400 Subject: [PATCH 555/675] correct link in AtC html docs --- doc/src/USER/atc/man_add_molecule.html | 2 +- doc/src/USER/atc/man_add_species.html | 2 +- doc/src/USER/atc/man_atom_element_map.html | 2 +- doc/src/USER/atc/man_atom_weight.html | 2 +- doc/src/USER/atc/man_atomic_charge.html | 2 +- doc/src/USER/atc/man_boundary.html | 2 +- doc/src/USER/atc/man_boundary_dynamics.html | 2 +- doc/src/USER/atc/man_boundary_faceset.html | 2 +- doc/src/USER/atc/man_boundary_integral.html | 2 +- doc/src/USER/atc/man_consistent_fe_initialization.html | 2 +- doc/src/USER/atc/man_contour_integral.html | 2 +- doc/src/USER/atc/man_control.html | 2 +- doc/src/USER/atc/man_control_momentum.html | 2 +- doc/src/USER/atc/man_control_thermal.html | 2 +- .../USER/atc/man_control_thermal_correction_max_iterations.html | 2 +- doc/src/USER/atc/man_decomposition.html | 2 +- doc/src/USER/atc/man_electron_integration.html | 2 +- doc/src/USER/atc/man_equilibrium_start.html | 2 +- doc/src/USER/atc/man_extrinsic_exchange.html | 2 +- doc/src/USER/atc/man_fe_md_boundary.html | 2 +- doc/src/USER/atc/man_fem_mesh.html | 2 +- doc/src/USER/atc/man_filter_scale.html | 2 +- doc/src/USER/atc/man_filter_type.html | 2 +- doc/src/USER/atc/man_fix_atc.html | 2 +- doc/src/USER/atc/man_fix_flux.html | 2 +- doc/src/USER/atc/man_fix_nodes.html | 2 +- doc/src/USER/atc/man_hardy_computes.html | 2 +- doc/src/USER/atc/man_hardy_fields.html | 2 +- doc/src/USER/atc/man_hardy_gradients.html | 2 +- doc/src/USER/atc/man_hardy_kernel.html | 2 +- doc/src/USER/atc/man_hardy_on_the_fly.html | 2 +- doc/src/USER/atc/man_hardy_rates.html | 2 +- doc/src/USER/atc/man_initial.html | 2 +- doc/src/USER/atc/man_internal_atom_integrate.html | 2 +- doc/src/USER/atc/man_internal_element_set.html | 2 +- doc/src/USER/atc/man_internal_quadrature.html | 2 +- doc/src/USER/atc/man_kernel_function.html | 2 +- doc/src/USER/atc/man_localized_lambda.html | 2 +- doc/src/USER/atc/man_lumped_lambda_solve.html | 2 +- doc/src/USER/atc/man_mask_direction.html | 2 +- doc/src/USER/atc/man_mass_matrix.html | 2 +- doc/src/USER/atc/man_material.html | 2 +- doc/src/USER/atc/man_mesh_add_to_nodeset.html | 2 +- doc/src/USER/atc/man_mesh_create.html | 2 +- doc/src/USER/atc/man_mesh_create_elementset.html | 2 +- doc/src/USER/atc/man_mesh_create_faceset_box.html | 2 +- doc/src/USER/atc/man_mesh_create_faceset_plane.html | 2 +- doc/src/USER/atc/man_mesh_create_nodeset.html | 2 +- doc/src/USER/atc/man_mesh_delete_elements.html | 2 +- doc/src/USER/atc/man_mesh_nodeset_to_elementset.html | 2 +- doc/src/USER/atc/man_mesh_output.html | 2 +- doc/src/USER/atc/man_mesh_quadrature.html | 2 +- doc/src/USER/atc/man_mesh_read.html | 2 +- doc/src/USER/atc/man_mesh_write.html | 2 +- doc/src/USER/atc/man_momentum_time_integration.html | 2 +- doc/src/USER/atc/man_output.html | 2 +- doc/src/USER/atc/man_output_elementset.html | 2 +- doc/src/USER/atc/man_output_nodeset.html | 2 +- doc/src/USER/atc/man_pair_interactions.html | 2 +- doc/src/USER/atc/man_poisson_solver.html | 2 +- doc/src/USER/atc/man_read_restart.html | 2 +- doc/src/USER/atc/man_remove_molecule.html | 2 +- doc/src/USER/atc/man_remove_source.html | 2 +- doc/src/USER/atc/man_remove_species.html | 2 +- doc/src/USER/atc/man_reset_atomic_reference_positions.html | 2 +- doc/src/USER/atc/man_reset_time.html | 2 +- doc/src/USER/atc/man_sample_frequency.html | 2 +- doc/src/USER/atc/man_set.html | 2 +- doc/src/USER/atc/man_source.html | 2 +- doc/src/USER/atc/man_source_integration.html | 2 +- doc/src/USER/atc/man_temperature_definition.html | 2 +- doc/src/USER/atc/man_thermal_time_integration.html | 2 +- doc/src/USER/atc/man_time_filter.html | 2 +- doc/src/USER/atc/man_track_displacement.html | 2 +- doc/src/USER/atc/man_unfix_flux.html | 2 +- doc/src/USER/atc/man_unfix_nodes.html | 2 +- doc/src/USER/atc/man_write_atom_weights.html | 2 +- doc/src/USER/atc/man_write_restart.html | 2 +- 78 files changed, 78 insertions(+), 78 deletions(-) diff --git a/doc/src/USER/atc/man_add_molecule.html b/doc/src/USER/atc/man_add_molecule.html index 8d9625e1bd..4e7810aa61 100644 --- a/doc/src/USER/atc/man_add_molecule.html +++ b/doc/src/USER/atc/man_add_molecule.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_add_species.html b/doc/src/USER/atc/man_add_species.html index 9beded1b16..a990ab626f 100644 --- a/doc/src/USER/atc/man_add_species.html +++ b/doc/src/USER/atc/man_add_species.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_atom_element_map.html b/doc/src/USER/atc/man_atom_element_map.html index 6725170928..a5707d280e 100644 --- a/doc/src/USER/atc/man_atom_element_map.html +++ b/doc/src/USER/atc/man_atom_element_map.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_atom_weight.html b/doc/src/USER/atc/man_atom_weight.html index 28bc90fa01..350ab13b92 100644 --- a/doc/src/USER/atc/man_atom_weight.html +++ b/doc/src/USER/atc/man_atom_weight.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_atomic_charge.html b/doc/src/USER/atc/man_atomic_charge.html index ef787f53ac..17e854a37f 100644 --- a/doc/src/USER/atc/man_atomic_charge.html +++ b/doc/src/USER/atc/man_atomic_charge.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_boundary.html b/doc/src/USER/atc/man_boundary.html index 61596d3b31..8dcf328dd3 100644 --- a/doc/src/USER/atc/man_boundary.html +++ b/doc/src/USER/atc/man_boundary.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_boundary_dynamics.html b/doc/src/USER/atc/man_boundary_dynamics.html index 40b82f3f61..335ff2d209 100644 --- a/doc/src/USER/atc/man_boundary_dynamics.html +++ b/doc/src/USER/atc/man_boundary_dynamics.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_boundary_faceset.html b/doc/src/USER/atc/man_boundary_faceset.html index 7eb950f78e..6c2fb84940 100644 --- a/doc/src/USER/atc/man_boundary_faceset.html +++ b/doc/src/USER/atc/man_boundary_faceset.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_boundary_integral.html b/doc/src/USER/atc/man_boundary_integral.html index 0663dba176..c4b0d4865e 100644 --- a/doc/src/USER/atc/man_boundary_integral.html +++ b/doc/src/USER/atc/man_boundary_integral.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_consistent_fe_initialization.html b/doc/src/USER/atc/man_consistent_fe_initialization.html index a731b09116..baa306a1c8 100644 --- a/doc/src/USER/atc/man_consistent_fe_initialization.html +++ b/doc/src/USER/atc/man_consistent_fe_initialization.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_contour_integral.html b/doc/src/USER/atc/man_contour_integral.html index 690f0fcc98..16f6d9abad 100644 --- a/doc/src/USER/atc/man_contour_integral.html +++ b/doc/src/USER/atc/man_contour_integral.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_control.html b/doc/src/USER/atc/man_control.html index 900952ba0b..e94a9a52ef 100644 --- a/doc/src/USER/atc/man_control.html +++ b/doc/src/USER/atc/man_control.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_control_momentum.html b/doc/src/USER/atc/man_control_momentum.html index 8f4f486595..e3074eae8f 100644 --- a/doc/src/USER/atc/man_control_momentum.html +++ b/doc/src/USER/atc/man_control_momentum.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_control_thermal.html b/doc/src/USER/atc/man_control_thermal.html index eab186f715..8d32f1c4f9 100644 --- a/doc/src/USER/atc/man_control_thermal.html +++ b/doc/src/USER/atc/man_control_thermal.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_control_thermal_correction_max_iterations.html b/doc/src/USER/atc/man_control_thermal_correction_max_iterations.html index a337a495e0..d28ec334f5 100644 --- a/doc/src/USER/atc/man_control_thermal_correction_max_iterations.html +++ b/doc/src/USER/atc/man_control_thermal_correction_max_iterations.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_decomposition.html b/doc/src/USER/atc/man_decomposition.html index d54a201034..98eedafa6c 100644 --- a/doc/src/USER/atc/man_decomposition.html +++ b/doc/src/USER/atc/man_decomposition.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_electron_integration.html b/doc/src/USER/atc/man_electron_integration.html index ab454c16d2..7cf40f6813 100644 --- a/doc/src/USER/atc/man_electron_integration.html +++ b/doc/src/USER/atc/man_electron_integration.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_equilibrium_start.html b/doc/src/USER/atc/man_equilibrium_start.html index d01253c4b3..8c81ce5925 100644 --- a/doc/src/USER/atc/man_equilibrium_start.html +++ b/doc/src/USER/atc/man_equilibrium_start.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_extrinsic_exchange.html b/doc/src/USER/atc/man_extrinsic_exchange.html index 4f1f5962d9..f4d1b01e88 100644 --- a/doc/src/USER/atc/man_extrinsic_exchange.html +++ b/doc/src/USER/atc/man_extrinsic_exchange.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_fe_md_boundary.html b/doc/src/USER/atc/man_fe_md_boundary.html index e517dd4855..e39ddd3cec 100644 --- a/doc/src/USER/atc/man_fe_md_boundary.html +++ b/doc/src/USER/atc/man_fe_md_boundary.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_fem_mesh.html b/doc/src/USER/atc/man_fem_mesh.html index b8ba584816..485b8c95a0 100644 --- a/doc/src/USER/atc/man_fem_mesh.html +++ b/doc/src/USER/atc/man_fem_mesh.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_filter_scale.html b/doc/src/USER/atc/man_filter_scale.html index 7a871f5c81..e2190dea21 100644 --- a/doc/src/USER/atc/man_filter_scale.html +++ b/doc/src/USER/atc/man_filter_scale.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_filter_type.html b/doc/src/USER/atc/man_filter_type.html index 2711d128e9..0928139d7d 100644 --- a/doc/src/USER/atc/man_filter_type.html +++ b/doc/src/USER/atc/man_filter_type.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_fix_atc.html b/doc/src/USER/atc/man_fix_atc.html index 7cc6cfea5b..f6f7b43a38 100644 --- a/doc/src/USER/atc/man_fix_atc.html +++ b/doc/src/USER/atc/man_fix_atc.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_fix_flux.html b/doc/src/USER/atc/man_fix_flux.html index 42815def6b..31bd5619a3 100644 --- a/doc/src/USER/atc/man_fix_flux.html +++ b/doc/src/USER/atc/man_fix_flux.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_fix_nodes.html b/doc/src/USER/atc/man_fix_nodes.html index 03cf86eb92..2245e32607 100644 --- a/doc/src/USER/atc/man_fix_nodes.html +++ b/doc/src/USER/atc/man_fix_nodes.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_hardy_computes.html b/doc/src/USER/atc/man_hardy_computes.html index b45b7dfb01..ec2dc3ccb9 100644 --- a/doc/src/USER/atc/man_hardy_computes.html +++ b/doc/src/USER/atc/man_hardy_computes.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_hardy_fields.html b/doc/src/USER/atc/man_hardy_fields.html index 17903aabd0..483e5be6bd 100644 --- a/doc/src/USER/atc/man_hardy_fields.html +++ b/doc/src/USER/atc/man_hardy_fields.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_hardy_gradients.html b/doc/src/USER/atc/man_hardy_gradients.html index 00935f0ae2..1874ad152e 100644 --- a/doc/src/USER/atc/man_hardy_gradients.html +++ b/doc/src/USER/atc/man_hardy_gradients.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_hardy_kernel.html b/doc/src/USER/atc/man_hardy_kernel.html index f97037784c..620b9b1d36 100644 --- a/doc/src/USER/atc/man_hardy_kernel.html +++ b/doc/src/USER/atc/man_hardy_kernel.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_hardy_on_the_fly.html b/doc/src/USER/atc/man_hardy_on_the_fly.html index 79c1006c97..04d24ff029 100644 --- a/doc/src/USER/atc/man_hardy_on_the_fly.html +++ b/doc/src/USER/atc/man_hardy_on_the_fly.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_hardy_rates.html b/doc/src/USER/atc/man_hardy_rates.html index e51cbc9873..337a92517e 100644 --- a/doc/src/USER/atc/man_hardy_rates.html +++ b/doc/src/USER/atc/man_hardy_rates.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_initial.html b/doc/src/USER/atc/man_initial.html index 41ae06eb8c..c8348c45ed 100644 --- a/doc/src/USER/atc/man_initial.html +++ b/doc/src/USER/atc/man_initial.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_internal_atom_integrate.html b/doc/src/USER/atc/man_internal_atom_integrate.html index dfa19474e5..f76607cc91 100644 --- a/doc/src/USER/atc/man_internal_atom_integrate.html +++ b/doc/src/USER/atc/man_internal_atom_integrate.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_internal_element_set.html b/doc/src/USER/atc/man_internal_element_set.html index 849e8f0671..a5d893f2a3 100644 --- a/doc/src/USER/atc/man_internal_element_set.html +++ b/doc/src/USER/atc/man_internal_element_set.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_internal_quadrature.html b/doc/src/USER/atc/man_internal_quadrature.html index 7f10e17076..6af543cbae 100644 --- a/doc/src/USER/atc/man_internal_quadrature.html +++ b/doc/src/USER/atc/man_internal_quadrature.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_kernel_function.html b/doc/src/USER/atc/man_kernel_function.html index 92db590198..cb02c05c23 100644 --- a/doc/src/USER/atc/man_kernel_function.html +++ b/doc/src/USER/atc/man_kernel_function.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_localized_lambda.html b/doc/src/USER/atc/man_localized_lambda.html index fd845d0a71..88442d63a1 100644 --- a/doc/src/USER/atc/man_localized_lambda.html +++ b/doc/src/USER/atc/man_localized_lambda.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_lumped_lambda_solve.html b/doc/src/USER/atc/man_lumped_lambda_solve.html index ade780ddee..89aabebd3c 100644 --- a/doc/src/USER/atc/man_lumped_lambda_solve.html +++ b/doc/src/USER/atc/man_lumped_lambda_solve.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mask_direction.html b/doc/src/USER/atc/man_mask_direction.html index 31c18b4f1f..ea5a6e357b 100644 --- a/doc/src/USER/atc/man_mask_direction.html +++ b/doc/src/USER/atc/man_mask_direction.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mass_matrix.html b/doc/src/USER/atc/man_mass_matrix.html index 140b745f09..fd744e5bbf 100644 --- a/doc/src/USER/atc/man_mass_matrix.html +++ b/doc/src/USER/atc/man_mass_matrix.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_material.html b/doc/src/USER/atc/man_material.html index c31ab4938d..1646abc671 100644 --- a/doc/src/USER/atc/man_material.html +++ b/doc/src/USER/atc/man_material.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_add_to_nodeset.html b/doc/src/USER/atc/man_mesh_add_to_nodeset.html index 25a5c2cdae..c4976f699d 100644 --- a/doc/src/USER/atc/man_mesh_add_to_nodeset.html +++ b/doc/src/USER/atc/man_mesh_add_to_nodeset.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_create.html b/doc/src/USER/atc/man_mesh_create.html index a7ee112614..98989bd015 100644 --- a/doc/src/USER/atc/man_mesh_create.html +++ b/doc/src/USER/atc/man_mesh_create.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_create_elementset.html b/doc/src/USER/atc/man_mesh_create_elementset.html index 2ac383a974..735d462b73 100644 --- a/doc/src/USER/atc/man_mesh_create_elementset.html +++ b/doc/src/USER/atc/man_mesh_create_elementset.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_create_faceset_box.html b/doc/src/USER/atc/man_mesh_create_faceset_box.html index e62a827a78..0ae68435e5 100644 --- a/doc/src/USER/atc/man_mesh_create_faceset_box.html +++ b/doc/src/USER/atc/man_mesh_create_faceset_box.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_create_faceset_plane.html b/doc/src/USER/atc/man_mesh_create_faceset_plane.html index b1969cb79d..cd78816bae 100644 --- a/doc/src/USER/atc/man_mesh_create_faceset_plane.html +++ b/doc/src/USER/atc/man_mesh_create_faceset_plane.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_create_nodeset.html b/doc/src/USER/atc/man_mesh_create_nodeset.html index 39bfffd119..0e3624cf8a 100644 --- a/doc/src/USER/atc/man_mesh_create_nodeset.html +++ b/doc/src/USER/atc/man_mesh_create_nodeset.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_delete_elements.html b/doc/src/USER/atc/man_mesh_delete_elements.html index 60a2fe59a1..e39cc54d41 100644 --- a/doc/src/USER/atc/man_mesh_delete_elements.html +++ b/doc/src/USER/atc/man_mesh_delete_elements.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_nodeset_to_elementset.html b/doc/src/USER/atc/man_mesh_nodeset_to_elementset.html index d05429ebab..66b55a48fb 100644 --- a/doc/src/USER/atc/man_mesh_nodeset_to_elementset.html +++ b/doc/src/USER/atc/man_mesh_nodeset_to_elementset.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_output.html b/doc/src/USER/atc/man_mesh_output.html index f768a29c41..1d2983afff 100644 --- a/doc/src/USER/atc/man_mesh_output.html +++ b/doc/src/USER/atc/man_mesh_output.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_quadrature.html b/doc/src/USER/atc/man_mesh_quadrature.html index 46487fdce7..821e50e4cf 100644 --- a/doc/src/USER/atc/man_mesh_quadrature.html +++ b/doc/src/USER/atc/man_mesh_quadrature.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_read.html b/doc/src/USER/atc/man_mesh_read.html index e0571ccf88..315180e1db 100644 --- a/doc/src/USER/atc/man_mesh_read.html +++ b/doc/src/USER/atc/man_mesh_read.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_mesh_write.html b/doc/src/USER/atc/man_mesh_write.html index 756cf49922..f709c02a84 100644 --- a/doc/src/USER/atc/man_mesh_write.html +++ b/doc/src/USER/atc/man_mesh_write.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_momentum_time_integration.html b/doc/src/USER/atc/man_momentum_time_integration.html index 60fbfcd888..ee0505847c 100644 --- a/doc/src/USER/atc/man_momentum_time_integration.html +++ b/doc/src/USER/atc/man_momentum_time_integration.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_output.html b/doc/src/USER/atc/man_output.html index aec1d5d55a..d0a08fa0da 100644 --- a/doc/src/USER/atc/man_output.html +++ b/doc/src/USER/atc/man_output.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_output_elementset.html b/doc/src/USER/atc/man_output_elementset.html index 54079027c5..18afe0aa97 100644 --- a/doc/src/USER/atc/man_output_elementset.html +++ b/doc/src/USER/atc/man_output_elementset.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_output_nodeset.html b/doc/src/USER/atc/man_output_nodeset.html index 2fc6e02681..7906c5fc52 100644 --- a/doc/src/USER/atc/man_output_nodeset.html +++ b/doc/src/USER/atc/man_output_nodeset.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_pair_interactions.html b/doc/src/USER/atc/man_pair_interactions.html index 2cb2cb6113..3ec2eecc60 100644 --- a/doc/src/USER/atc/man_pair_interactions.html +++ b/doc/src/USER/atc/man_pair_interactions.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_poisson_solver.html b/doc/src/USER/atc/man_poisson_solver.html index b6fabbb27c..3e22a51f3e 100644 --- a/doc/src/USER/atc/man_poisson_solver.html +++ b/doc/src/USER/atc/man_poisson_solver.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_read_restart.html b/doc/src/USER/atc/man_read_restart.html index 5fc21282f6..d13151a12e 100644 --- a/doc/src/USER/atc/man_read_restart.html +++ b/doc/src/USER/atc/man_read_restart.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_remove_molecule.html b/doc/src/USER/atc/man_remove_molecule.html index e6ad418de6..54e4e3419f 100644 --- a/doc/src/USER/atc/man_remove_molecule.html +++ b/doc/src/USER/atc/man_remove_molecule.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_remove_source.html b/doc/src/USER/atc/man_remove_source.html index acea7a5607..c15e0ca46d 100644 --- a/doc/src/USER/atc/man_remove_source.html +++ b/doc/src/USER/atc/man_remove_source.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_remove_species.html b/doc/src/USER/atc/man_remove_species.html index 561364518f..ee063ce57f 100644 --- a/doc/src/USER/atc/man_remove_species.html +++ b/doc/src/USER/atc/man_remove_species.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_reset_atomic_reference_positions.html b/doc/src/USER/atc/man_reset_atomic_reference_positions.html index 88e6748001..3c43861054 100644 --- a/doc/src/USER/atc/man_reset_atomic_reference_positions.html +++ b/doc/src/USER/atc/man_reset_atomic_reference_positions.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_reset_time.html b/doc/src/USER/atc/man_reset_time.html index a6429bf6d6..9607848e1a 100644 --- a/doc/src/USER/atc/man_reset_time.html +++ b/doc/src/USER/atc/man_reset_time.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_sample_frequency.html b/doc/src/USER/atc/man_sample_frequency.html index 4e48c4bb29..9a9a8e3a02 100644 --- a/doc/src/USER/atc/man_sample_frequency.html +++ b/doc/src/USER/atc/man_sample_frequency.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_set.html b/doc/src/USER/atc/man_set.html index cf775c9b36..55ad8d952b 100644 --- a/doc/src/USER/atc/man_set.html +++ b/doc/src/USER/atc/man_set.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_source.html b/doc/src/USER/atc/man_source.html index c7239f2c41..78fb1652eb 100644 --- a/doc/src/USER/atc/man_source.html +++ b/doc/src/USER/atc/man_source.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_source_integration.html b/doc/src/USER/atc/man_source_integration.html index 3f43340af8..3b261b7810 100644 --- a/doc/src/USER/atc/man_source_integration.html +++ b/doc/src/USER/atc/man_source_integration.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_temperature_definition.html b/doc/src/USER/atc/man_temperature_definition.html index a07ba29cab..c317c06c00 100644 --- a/doc/src/USER/atc/man_temperature_definition.html +++ b/doc/src/USER/atc/man_temperature_definition.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_thermal_time_integration.html b/doc/src/USER/atc/man_thermal_time_integration.html index fe293138be..830591921e 100644 --- a/doc/src/USER/atc/man_thermal_time_integration.html +++ b/doc/src/USER/atc/man_thermal_time_integration.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_time_filter.html b/doc/src/USER/atc/man_time_filter.html index 732eaa3a36..5000fb079d 100644 --- a/doc/src/USER/atc/man_time_filter.html +++ b/doc/src/USER/atc/man_time_filter.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_track_displacement.html b/doc/src/USER/atc/man_track_displacement.html index f5410816d7..2c7cf26150 100644 --- a/doc/src/USER/atc/man_track_displacement.html +++ b/doc/src/USER/atc/man_track_displacement.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_unfix_flux.html b/doc/src/USER/atc/man_unfix_flux.html index 95e1f4be5a..551896431a 100644 --- a/doc/src/USER/atc/man_unfix_flux.html +++ b/doc/src/USER/atc/man_unfix_flux.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_unfix_nodes.html b/doc/src/USER/atc/man_unfix_nodes.html index 78495c928a..4dfd9b3cfc 100644 --- a/doc/src/USER/atc/man_unfix_nodes.html +++ b/doc/src/USER/atc/man_unfix_nodes.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_write_atom_weights.html b/doc/src/USER/atc/man_write_atom_weights.html index 8a0e5b62a8..1722d74f67 100644 --- a/doc/src/USER/atc/man_write_atom_weights.html +++ b/doc/src/USER/atc/man_write_atom_weights.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
diff --git a/doc/src/USER/atc/man_write_restart.html b/doc/src/USER/atc/man_write_restart.html index 6dca57673b..74c6e2d289 100644 --- a/doc/src/USER/atc/man_write_restart.html +++ b/doc/src/USER/atc/man_write_restart.html @@ -11,7 +11,7 @@ LAMMPS Website     LAMMPS Manual     USER-AtC Manual     - Commands + Commands
From 357ffef09cbb4c01cfe88ac729e8d47ea2afdd70 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 19:16:36 -0400 Subject: [PATCH 556/675] fix some more broken links detected by ebook conversion --- doc/src/compute_coord_atom.txt | 2 +- doc/src/compute_pressure_uef.txt | 4 ++-- doc/src/compute_temp_uef.txt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/compute_coord_atom.txt b/doc/src/compute_coord_atom.txt index 66eecd195d..ddc4cc82d3 100644 --- a/doc/src/compute_coord_atom.txt +++ b/doc/src/compute_coord_atom.txt @@ -67,7 +67,7 @@ identify crystal-like atoms in a system, as discussed in "ten Wolde"_#tenWolde1. The ID of the previously specified "compute -orientorder/atom"_compute_orientorder/atom command is specified as +orientorder/atom"_compute_orientorder_atom.html command is specified as {orientorderID}. The compute must invoke its {components} option to calculate components of the {Ybar_lm} vector for each atoms, as described in its documentation. Note that orientorder/atom compute diff --git a/doc/src/compute_pressure_uef.txt b/doc/src/compute_pressure_uef.txt index c4c0fc405f..72ed0ba5c4 100644 --- a/doc/src/compute_pressure_uef.txt +++ b/doc/src/compute_pressure_uef.txt @@ -27,8 +27,8 @@ compute 2 all pressure/uef my_temp_uef virial :pre This command is used to compute the pressure tensor in the reference frame of the applied flow field when -"fix nvt/uef"_fix_nh_uef.html" or -"fix npt/uef"_fix_nh_uef.html" is used. +"fix nvt/uef"_fix_nh_uef.html or +"fix npt/uef"_fix_nh_uef.html is used. It is not necessary to use this command to compute the scalar value of the pressure. A "compute pressure"_compute_pressure.html may be used for that purpose. diff --git a/doc/src/compute_temp_uef.txt b/doc/src/compute_temp_uef.txt index 9a509da450..97e1d6e1ae 100644 --- a/doc/src/compute_temp_uef.txt +++ b/doc/src/compute_temp_uef.txt @@ -24,8 +24,8 @@ compute 2 sel temp/uef :pre This command is used to compute the kinetic energy tensor in the reference frame of the applied flow field when -"fix nvt/uef"_fix_nh_uef.html" or -"fix npt/uef"_fix_nh_uef.html" is used. +"fix nvt/uef"_fix_nh_uef.html or +"fix npt/uef"_fix_nh_uef.html is used. It is not necessary to use this command to compute the scalar value of the temperature. A "compute temp"_compute_temp.html may be used for that purpose. From d5089858bdb9ae85f8ba388070765616430cda8f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 19:17:21 -0400 Subject: [PATCH 557/675] add support for the conversion of ePUB to MOBI (compatible with Kindle) --- doc/Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/Makefile b/doc/Makefile index 81f3623499..797095dfad 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -31,7 +31,7 @@ SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocess SOURCES=$(filter-out $(wildcard src/lammps_commands*.txt) src/lammps_support.txt src/lammps_tutorials.txt,$(wildcard src/*.txt)) OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst) -.PHONY: help clean-all clean epub html pdf old venv spelling anchor_check +.PHONY: help clean-all clean epub mobi html pdf old venv spelling anchor_check # ------------------------------------------ @@ -42,6 +42,7 @@ help: @echo " old create old-style HTML doc pages in old dir" @echo " fetch fetch HTML and PDF files from LAMMPS web site" @echo " epub create ePUB format manual for e-book readers" + @echo " mobi create MOBI format manual for e-book readers (e.g. Kindle)" @echo " clean remove all intermediate RST files" @echo " clean-all reset the entire build environment" @echo " txt2html build txt2html tool" @@ -106,6 +107,11 @@ epub: $(OBJECTS) @rm -rf epub @echo "Build finished. The ePUB manual file is created." +mobi: epub + @rm -f LAMMPS.mobi + @ebook-convert LAMMPS.epub LAMMPS.mobi + @echo "Conversion finished. The MOBI manual file is created." + pdf: utils/txt2html/txt2html.exe @(\ set -e; \ From 01fe3569041f5f8c19b9f46ebf4600e110bcfeae Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Wed, 22 Aug 2018 17:18:36 -0600 Subject: [PATCH 558/675] first version of scafacos.h without the inclusion of the ScaFaCoS header --- src/USER-SCAFACOS/scafacos.cpp | 83 +++++++++++++++++++--------------- src/USER-SCAFACOS/scafacos.h | 19 ++++---- 2 files changed, 55 insertions(+), 47 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 7c2dd0b68d..92d0612947 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -90,7 +90,7 @@ Scafacos::~Scafacos() memory->destroy(efield); // clean up of the ScaFaCoS handle and internal arrays - fcs_destroy(fcs); + fcs_destroy((FCS)fcs); } /* ---------------------------------------------------------------------- */ @@ -112,20 +112,24 @@ void Scafacos::init() if (domain->triclinic) error->all(FLERR,"Cannot use ScaFaCoS with triclinic domain yet"); - if (atom->natoms > INT_MAX && sizeof(fcs_int) != 8) + if (atom->natoms > INT_MAX && sizeof(int) != 8) error->all(FLERR,"Scafacos atom count exceeds 2B"); if (atom->molecular > 0) error->all(FLERR, "Cannot use Scafacos with molecular charged systems yet"); + FCSResult result; + // one-time initialization of ScaFaCoS qqrd2e = force->qqrd2e; if (!initialized) { - result = fcs_init(&fcs,method,world); - check_result(result); + printf("DEBUG: %p\n",&fcs); + result = fcs_init((FCS*)&fcs,method,world); + check_result((void*)&result); + printf("DEBUG: %p\n",&fcs); setup_handle(); @@ -136,8 +140,8 @@ void Scafacos::init() strcmp(method,"p2nfft") == 0 || strcmp(method,"ewald") == 0) { - result = fcs_set_tolerance(fcs,tolerance_type,tolerance); - check_result(result); + result = fcs_set_tolerance((FCS)fcs,tolerance_type,tolerance); + check_result((void*)&result); } double **x = atom->x; @@ -147,9 +151,9 @@ void Scafacos::init() if (strcmp(method,"fmm") == 0) { if (fmm_tuning_flag == 1) - fcs_fmm_set_internal_tuning(fcs,FCS_FMM_INHOMOGENOUS_SYSTEM); + fcs_fmm_set_internal_tuning((FCS)fcs,FCS_FMM_INHOMOGENOUS_SYSTEM); else - fcs_fmm_set_internal_tuning(fcs,FCS_FMM_HOMOGENOUS_SYSTEM); + fcs_fmm_set_internal_tuning((FCS)fcs,FCS_FMM_HOMOGENOUS_SYSTEM); } // for the FMM at least one particle is required per process @@ -158,15 +162,15 @@ void Scafacos::init() int empty = (nlocal==0)?1:0; MPI_Allreduce(MPI_IN_PLACE,&empty,1,MPI_INT,MPI_SUM,world); if (empty > 0) - fcs_set_redistribute(fcs,1); + fcs_set_redistribute((FCS)fcs,1); else - fcs_set_redistribute(fcs,0); + fcs_set_redistribute((FCS)fcs,0); } - result = fcs_tune(fcs,nlocal,&x[0][0],q); - check_result(result); + result = fcs_tune((FCS)fcs,nlocal,&x[0][0],q); + check_result((void*)&result); // more useful here, since the parameters should be tuned now - if (me == 0) fcs_print_parameters(fcs); + if (me == 0) fcs_print_parameters((FCS)fcs); } initialized = 1; @@ -181,6 +185,7 @@ void Scafacos::compute(int eflag, int vflag) int nlocal = atom->nlocal; const double qscale = qqrd2e; + FCSResult result; // for the FMM at least one particle is required per process if (strcmp(method,"fmm")) @@ -188,9 +193,9 @@ void Scafacos::compute(int eflag, int vflag) int empty = (nlocal==0)?1:0; MPI_Allreduce(MPI_IN_PLACE,&empty,1,MPI_INT,MPI_SUM,world); if (empty > 0) - fcs_set_redistribute(fcs,1); + fcs_set_redistribute((FCS)fcs,1); else - fcs_set_redistribute(fcs,0); + fcs_set_redistribute((FCS)fcs,0); } if (eflag || vflag) ev_setup(eflag,vflag); @@ -214,7 +219,7 @@ void Scafacos::compute(int eflag, int vflag) if (vflag_global) { - fcs_set_compute_virial(fcs,1); + fcs_set_compute_virial((FCS)fcs,1); //if (strcmp(method,"p3m") == 0) // error->all(FLERR,"ScaFaCoS p3m does not support computation of virial"); } @@ -223,8 +228,8 @@ void Scafacos::compute(int eflag, int vflag) memcpy(xpbc,&x[0][0],3*nlocal*sizeof(double)); - int j = 0; if (domain->xperiodic || domain -> yperiodic || domain -> zperiodic){ + int j = 0; for (int i = 0; i < nlocal; i++) { domain->remap(&xpbc[j]); j += 3; @@ -234,20 +239,20 @@ void Scafacos::compute(int eflag, int vflag) if (box_has_changed()) { setup_handle(); - result = fcs_tune(fcs,nlocal,xpbc,q); - check_result(result); + result = fcs_tune((FCS)fcs,nlocal,xpbc,q); + check_result((void*)&result); } // invoke ScaFaCoS solver - result = fcs_run(fcs,nlocal,xpbc,q,&efield[0][0],epot); - check_result(result); + result = fcs_run((FCS)fcs,nlocal,xpbc,q,&efield[0][0],epot); + check_result((void*)&result); // extract virial if (vflag_global) { - fcs_get_virial(fcs,virial_int); + fcs_get_virial((FCS)fcs,virial_int); virial[0] = virial_int[0]; virial[1] = virial_int[1]; virial[2] = virial_int[2]; @@ -380,6 +385,8 @@ double Scafacos::memory_usage() void Scafacos::setup_handle() { + FCSResult result; + // store simulation box params // setup periodicity @@ -404,23 +411,23 @@ void Scafacos::setup_handle() old_natoms = atom->natoms; // store parameters to ScaFaCoS handle - result = fcs_set_box_a(fcs,old_box_x); - check_result(result); + result = fcs_set_box_a((FCS)fcs,old_box_x); + check_result((void*)&result); - result = fcs_set_box_b(fcs,old_box_y); - check_result(result); + result = fcs_set_box_b((FCS)fcs,old_box_y); + check_result((void*)&result); - result = fcs_set_box_c(fcs,old_box_z); - check_result(result); + result = fcs_set_box_c((FCS)fcs,old_box_z); + check_result((void*)&result); - result = fcs_set_box_origin(fcs,old_origin); - check_result(result); + result = fcs_set_box_origin((FCS)fcs,old_origin); + check_result((void*)&result); - result = fcs_set_periodicity(fcs,old_periodicity); - check_result(result); + result = fcs_set_periodicity((FCS)fcs,old_periodicity); + check_result((void*)&result); - result = fcs_set_total_particles(fcs,old_natoms); - check_result(result); + result = fcs_set_total_particles((FCS)fcs,old_natoms); + check_result((void*)&result); // allow ScaFaCoS to calculate the near field computations for now // TODO: allow the delegation of the near field computations @@ -428,8 +435,8 @@ void Scafacos::setup_handle() // (near_field_flag = 1 -> enables the internal near field calcs // 0 -> disables the internal near field calcs int near_field_flag = 1; - result = fcs_set_near_field_flag(fcs,near_field_flag); - check_result(result); + result = fcs_set_near_field_flag((FCS)fcs,near_field_flag); + check_result((void*)&result); } /* ---------------------------------------------------------------------- @@ -460,8 +467,10 @@ bool Scafacos::box_has_changed() check ScaFaCoS result for error condition ------------------------------------------------------------------------- */ -void Scafacos::check_result(FCSResult result) +void Scafacos::check_result(void* result_p) { + FCSResult result = *(FCSResult*)result_p; + if (!result) return; std::stringstream ss; diff --git a/src/USER-SCAFACOS/scafacos.h b/src/USER-SCAFACOS/scafacos.h index bf07b3b45a..fdf15739a6 100644 --- a/src/USER-SCAFACOS/scafacos.h +++ b/src/USER-SCAFACOS/scafacos.h @@ -21,7 +21,7 @@ KSpaceStyle(scafacos,Scafacos) #define LMP_SCAFACOS_H #include "kspace.h" -#include "fcs.h" +//#include "fcs.h" namespace LAMMPS_NS { @@ -35,7 +35,7 @@ class Scafacos : public KSpace { int modify_param(int, char **); double memory_usage(); - private: + private: int me; char *method; @@ -46,20 +46,19 @@ class Scafacos : public KSpace { int fmm_tuning_flag; - FCS fcs; // ScaFaCoS handle - FCSResult result; // result for each ScaFaCoS call + void* fcs; // ScaFaCoS handle // simulation state: box, natoms // so ScaFaCoS can detect if changes, e.g. for NPT - fcs_float old_box_x[3],old_box_y[3],old_box_z[3]; - fcs_float old_origin[3]; - fcs_int old_periodicity[3]; - fcs_int old_natoms; + double old_box_x[3],old_box_y[3],old_box_z[3]; + double old_origin[3]; + int old_periodicity[3]; + int old_natoms; - fcs_float virial_int[9]; + double virial_int[9]; - void check_result(FCSResult); + void check_result(void*); void setup_handle(); bool box_has_changed(); }; From 0e292b397f02f1e2e472cbbff55a5cad963075de Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 19:41:44 -0400 Subject: [PATCH 559/675] even more broken links detected by ePUB to MOBI conversion --- doc/src/Build_basics.txt | 4 ++-- doc/src/Run_windows.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/src/Build_basics.txt b/doc/src/Build_basics.txt index cee78aced3..c9df7915e5 100644 --- a/doc/src/Build_basics.txt +++ b/doc/src/Build_basics.txt @@ -216,8 +216,8 @@ LAMMPS can be built as either an executable or as a static or shared library. The LAMMPS library can be called from another application or a scripting language. See the "Howto couple"_Howto_couple.html doc page for more info on coupling LAMMPS to other codes. See the -"Python"_Python doc page for more info on wrapping and running LAMMPS -from Python via its library interface. +"Python"_Python_head.html doc page for more info on wrapping and +running LAMMPS from Python via its library interface. [CMake variables]: diff --git a/doc/src/Run_windows.txt b/doc/src/Run_windows.txt index 2b93cc7d49..85c9a6550d 100644 --- a/doc/src/Run_windows.txt +++ b/doc/src/Run_windows.txt @@ -33,8 +33,8 @@ in parallel, follow these steps. Download and install a compatible MPI library binary package: -for 32-bit Windows: "mpich2-1.4.1p1-win-ia32.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi -for 64-bit Windows: "mpich2-1.4.1p1-win-x86-64.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi :ul +for 32-bit Windows: "mpich2-1.4.1p1-win-ia32.msi"_http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi +for 64-bit Windows: "mpich2-1.4.1p1-win-x86-64.msi"_http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi :ul The LAMMPS Windows installer packages will automatically adjust your path for the default location of this MPI package. After the From c8ac88dd8752ddf92fdfdbd4d7fb30748e3cd001 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 19:46:49 -0400 Subject: [PATCH 560/675] update link in LAMMPS theme for Sphinx --- doc/utils/sphinx-config/_themes/lammps_theme/breadcrumbs.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/utils/sphinx-config/_themes/lammps_theme/breadcrumbs.html b/doc/utils/sphinx-config/_themes/lammps_theme/breadcrumbs.html index 39ee684a0b..1eb53c70a2 100644 --- a/doc/utils/sphinx-config/_themes/lammps_theme/breadcrumbs.html +++ b/doc/utils/sphinx-config/_themes/lammps_theme/breadcrumbs.html @@ -18,7 +18,7 @@ View page source {% endif %} Website - Commands + Commands {% endif %} From 9e37ea16acfdc9fbb29c0856c145cc8af0e5838b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 20:35:35 -0400 Subject: [PATCH 561/675] fix some speelink ehrrors --- doc/src/Commands_parse.txt | 4 ++-- doc/src/pair_python.txt | 2 +- doc/src/pair_style.txt | 2 +- doc/src/reset_ids.txt | 2 +- doc/src/run_style.txt | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/src/Commands_parse.txt b/doc/src/Commands_parse.txt index cbe2261986..1d7c754fa7 100644 --- a/doc/src/Commands_parse.txt +++ b/doc/src/Commands_parse.txt @@ -14,7 +14,7 @@ LAMMPS commands are case sensitive. Command names are lower-case, as are specified command arguments. Upper case letters may be used in file names or user-chosen ID strings. -Here are 6 rulse for how each line in the input script is parsed by +Here are 6 rules for how each line in the input script is parsed by LAMMPS: (1) If the last printable character on the line is a "&" character, @@ -71,7 +71,7 @@ floating-point value. The format string is used to output the result of the variable expression evaluation. If a format string is not specified a high-precision "%.20g" is used as the default. -This can be useful for formatting print output to a desired precion: +This can be useful for formatting print output to a desired precision: print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre diff --git a/doc/src/pair_python.txt b/doc/src/pair_python.txt index 23da86fc49..b7130c8a10 100644 --- a/doc/src/pair_python.txt +++ b/doc/src/pair_python.txt @@ -98,7 +98,7 @@ verify, that the potential definition in the python class and in the LAMMPS input match. Here is an example for a single type Lennard-Jones potential class -{LJCutMelt} in reducted units, which defines an atom type {lj} for +{LJCutMelt} in reduced units, which defines an atom type {lj} for which the parameters epsilon and sigma are both 1.0: class LJCutMelt(LAMMPSPairPotential): diff --git a/doc/src/pair_style.txt b/doc/src/pair_style.txt index b33897c5aa..1441da2b61 100644 --- a/doc/src/pair_style.txt +++ b/doc/src/pair_style.txt @@ -93,7 +93,7 @@ There are also additional accelerated pair styles (not listed here) included in the LAMMPS distribution for faster performance on CPUs, GPUs, and KNLs. The individual style names on the "Commands pair"_Commands_pair.html doc page are followed by one or more of -(g,i,k,o,t) to indicate which accerlerated styles exist. +(g,i,k,o,t) to indicate which accelerated styles exist. "pair_style none"_pair_none.html - turn off pairwise interactions "pair_style hybrid"_pair_hybrid.html - multiple styles of pairwise interactions diff --git a/doc/src/reset_ids.txt b/doc/src/reset_ids.txt index 391b51fde9..8b217c7b1c 100644 --- a/doc/src/reset_ids.txt +++ b/doc/src/reset_ids.txt @@ -23,7 +23,7 @@ for bond, angle, dihedral, improper topology data. This will create a set of IDs that are numbered contiguously from 1 to N for a N atoms system. -This can be useful to do after perfoming a "delete_atoms" command for +This can be useful to do after performing a "delete_atoms" command for a molecular system. The delete_atoms compress yes option will not perform this operation due to the existence of bond topology. It can also be useful to do after any simulation which has lost atoms, diff --git a/doc/src/run_style.txt b/doc/src/run_style.txt index 6dd9b56908..9defd1314e 100644 --- a/doc/src/run_style.txt +++ b/doc/src/run_style.txt @@ -318,7 +318,7 @@ bond forces = level 1 (innermost loop) angle forces = same level as bond forces dihedral forces = same level as angle forces improper forces = same level as dihedral forces -pair forces = leven N (outermost level) +pair forces = level N (outermost level) kspace forces = same level as pair forces inner, middle, outer forces = no default :ul From ffb1a9c46acfb03318a8ab56c9324391a090cd13 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 20:36:01 -0400 Subject: [PATCH 562/675] update link in lammps theme for sphinx --- doc/utils/converters/tests/test_lammps_filters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/utils/converters/tests/test_lammps_filters.py b/doc/utils/converters/tests/test_lammps_filters.py index 6c25c23a79..8d2fa2e577 100644 --- a/doc/utils/converters/tests/test_lammps_filters.py +++ b/doc/utils/converters/tests/test_lammps_filters.py @@ -47,7 +47,7 @@ class TestStructuralFilters(unittest.TestCase): self.assertEqual("Title\n\n" "\n.. _lws: http://lammps.sandia.gov\n" ".. _ld: Manual.html\n" - ".. _lc: Section_commands.html#comm\n", s) + ".. _lc: Commands_all.html\n", s) def test_filter_multiple_horizontal_rules(self): s = self.txt2rst.convert(":hline\n" From 1bd56261406452cc6e3d601cac2883669b593d0e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 20:43:35 -0400 Subject: [PATCH 563/675] fix some more spelling issues --- doc/src/Build_basics.txt | 8 ++++---- doc/src/Build_cmake.txt | 2 +- doc/src/Build_extras.txt | 4 ++-- doc/src/Build_settings.txt | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/src/Build_basics.txt b/doc/src/Build_basics.txt index c9df7915e5..6924e73417 100644 --- a/doc/src/Build_basics.txt +++ b/doc/src/Build_basics.txt @@ -61,7 +61,7 @@ library files. Failing this, these 3 variables can be used to specify where the mpi.h file (MPI_INC), and the MPI library files (MPI_PATH) are found, and the name of the library files (MPI_LIB). -For a serial build, you need to specify the 3 varaibles, as shown +For a serial build, you need to specify the 3 variables, as shown above. For a serial LAMMPS build, use the dummy MPI library provided in @@ -145,7 +145,7 @@ By default CMake will use a compiler it finds and it will add optimization flags appropriate to that compiler and any "accelerator packages"_Speed_packages.html you have included in the build. -You can tell CMake to look for a specific compiler with these varaible +You can tell CMake to look for a specific compiler with these variable settings. Likewise you can specify the FLAGS variables if you want to experiment with alternate optimization flags. You should specify all 3 compilers, so that the small number of LAMMPS source files written @@ -247,7 +247,7 @@ Note that for a shared library to be usable by a calling program, all the auxiliary libraries it depends on must also exist as shared libraries. This will be the case for libraries included with LAMMPS, such as the dummy MPI library in src/STUBS or any package libraries in -the lib/packages directroy, since they are always built as shared +the lib/packages directory, since they are always built as shared libraries using the -fPIC switch. However, if a library like MPI or FFTW does not exist as a shared library, the shared library build will generate an error. This means you will need to install a shared @@ -299,7 +299,7 @@ Install LAMMPS after a build :h4,link(install) After building LAMMPS, you may wish to copy the LAMMPS executable of library, along with other LAMMPS files (library header, doc files) to a globally visible place on your system, for others to access. Note -that you may need super-user priveleges (e.g. sudo) if the directory +that you may need super-user privileges (e.g. sudo) if the directory you want to copy files to is protected. [CMake variable]: diff --git a/doc/src/Build_cmake.txt b/doc/src/Build_cmake.txt index 08c1c72180..6298ab2576 100644 --- a/doc/src/Build_cmake.txt +++ b/doc/src/Build_cmake.txt @@ -50,7 +50,7 @@ make install # optional, copy LAMMPS executable & library elsewhere :pre :line -There are 3 variants of CMake: a command-line verison (cmake), a text mode +There are 3 variants of CMake: a command-line version (cmake), a text mode UI version (ccmake), and a graphical GUI version (cmake-GUI). You can use any of them interchangeably to configure and create the LAMMPS build environment. On Linux all the versions produce a Makefile as their diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index 5c33a0a4d4..2aa7de2b12 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -340,7 +340,7 @@ NOTE: the use of the MEAM package is discouraged, as it has been superseded by the USER-MEAMC package, which is a direct translation of the Fortran code in the MEAM library to C++. The code in USER-MEAMC should be functionally equivalent to the MEAM package, fully supports -use of "pair_style hybrid"_pair_hybrid.html (the MEAM packaged doesn +use of "pair_style hybrid"_pair_hybrid.html (the MEAM package does not), and has optimizations that make it significantly faster than the MEAM package. @@ -470,7 +470,7 @@ lib/python/README for more details. -D PYTHON_EXECUTABLE=path # path to Python executable to use :pre -Without this setting, CMake will ues the default Python on your +Without this setting, CMake will guess the default Python on your system. To use a different Python version, you can either create a virtualenv, activate it and then run cmake. Or you can set the PYTHON_EXECUTABLE variable to specify which Python interpreter should diff --git a/doc/src/Build_settings.txt b/doc/src/Build_settings.txt index dfe2f900f3..500130ecee 100644 --- a/doc/src/Build_settings.txt +++ b/doc/src/Build_settings.txt @@ -101,7 +101,7 @@ Performing 3d FFTs in parallel can be time consuming due to data access and required communication. This cost can be reduced by performing single-precision FFTs instead of double precision. Single precision means the real and imaginary parts of a complex datum are -4-byte floats. Double precesion means they are 8-byte doubles. Note +4-byte floats. Double precision means they are 8-byte doubles. Note that Fourier transform and related PPPM operations are somewhat less sensitive to floating point truncation errors and thus the resulting error is less than the difference in precision. Using the -DFFT_SINGLE @@ -193,7 +193,7 @@ Output of JPG, PNG, and movie files :h4,link(graphics) The "dump image"_dump_image.html command has options to output JPEG or PNG image files. Likewise the "dump movie"_dump_image.html command -ouputs movie files in MPEG format. Using these options requires the +outputs movie files in MPEG format. Using these options requires the following settings: [CMake variables]: @@ -206,7 +206,7 @@ following settings: # default = yes if CMake can find ffmpeg, else no :pre Usually these settings are all that is needed. If CMake cannot find -the graphics header, library, executuable files, you can set these +the graphics header, library, executable files, you can set these variables: -D JPEG_INCLUDE_DIR=path # path to jpeglib.h header file From e632acec297b1594723bfee2c1961b3db4470590 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 21:30:21 -0400 Subject: [PATCH 564/675] fix a bunch more spelling errors --- doc/src/Build_extras.txt | 2 +- doc/src/Build_make.txt | 4 ++-- doc/src/Errors_warnings.txt | 2 +- doc/src/Howto_barostat.txt | 6 +++--- doc/src/Howto_body.txt | 2 +- doc/src/Howto_library.txt | 8 ++++---- doc/src/Howto_spins.txt | 6 +++--- doc/src/Intro_overview.txt | 4 ++-- doc/src/Manual_build.txt | 18 +++++++++--------- doc/src/Modify_overview.txt | 2 +- doc/src/Packages_details.txt | 4 ++-- doc/src/Python_call.txt | 2 +- doc/src/Python_head.txt | 4 ++-- doc/src/Python_library.txt | 10 +++++----- doc/src/Run_basics.txt | 2 +- doc/src/Speed_bench.txt | 6 +++--- doc/src/Speed_gpu.txt | 2 +- doc/src/Speed_intel.txt | 2 +- doc/src/Speed_omp.txt | 2 +- doc/src/atom_modify.txt | 2 +- doc/src/compute.txt | 2 +- doc/src/compute_displace_atom.txt | 2 +- doc/src/compute_entropy_atom.txt | 10 +++++----- doc/src/compute_property_atom.txt | 2 +- doc/src/compute_spin.txt | 2 +- doc/src/delete_atoms.txt | 2 +- doc/src/dump_modify.txt | 2 +- doc/src/fix.txt | 4 ++-- doc/src/fix_filter_corotate.txt | 2 +- doc/src/fix_langevin_spin.txt | 2 +- doc/src/fix_latte.txt | 2 +- doc/src/fix_neb.txt | 2 +- doc/src/fix_nh_uef.txt | 2 +- doc/src/fix_surface_global.txt | 2 +- doc/src/pair_buck6d_coul_gauss.txt | 6 +++--- doc/src/pair_coeff.txt | 2 +- doc/src/pair_ilp_graphene_hbn.txt | 2 +- doc/src/pair_kolmogorov_crespi_z.txt | 2 +- doc/src/restart.txt | 2 +- doc/src/special_bonds.txt | 2 +- 40 files changed, 72 insertions(+), 72 deletions(-) diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index 2aa7de2b12..e141c62a3a 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -905,7 +905,7 @@ Eigen3 is a template library, so you do not need to build it. -D EIGEN3_INCLUDE_DIR=path # path to Eigen library (only needed if a custom location) :pre If DOWNLOAD_EIGEN3 is set, the Eigen3 library will be downloaded and -inside the CMake build directory. If the Eig3n3 library is already on +inside the CMake build directory. If the Eigen3 library is already on your system (in a location CMake cannot find it), EIGEN3_INCLUDE_DIR is the directory the Eigen3++ include file is in. diff --git a/doc/src/Build_make.txt b/doc/src/Build_make.txt index c00ce1f420..a18d812b59 100644 --- a/doc/src/Build_make.txt +++ b/doc/src/Build_make.txt @@ -71,8 +71,8 @@ Makefiles you may wish to try include these (some require a package first be installed). Many of these include specific compiler flags for optimized performance. Please note, however, that some of these customized machine Makefile are contributed by users. Since both -compilers, OS configs, and LAMMPS itself keep changing, their settings -may become outdated: +compilers, OS configurations, and LAMMPS itself keep changing, their +settings may become outdated: make mac # build serial LAMMPS on a Mac make mac_mpi # build parallel LAMMPS on a Mac diff --git a/doc/src/Errors_warnings.txt b/doc/src/Errors_warnings.txt index dd3402ba86..98b66f2aa5 100644 --- a/doc/src/Errors_warnings.txt +++ b/doc/src/Errors_warnings.txt @@ -13,7 +13,7 @@ This is an alphabetic list of the WARNING messages LAMMPS prints out and the reason why. If the explanation here is not sufficient, the documentation for the offending command may help. Warning messages also list the source file and line number where the warning was -generated. For example, a message lile this: +generated. For example, a message like this: WARNING: Bond atom missing in box size check (domain.cpp:187) :pre diff --git a/doc/src/Howto_barostat.txt b/doc/src/Howto_barostat.txt index 7c3db89152..3323334600 100644 --- a/doc/src/Howto_barostat.txt +++ b/doc/src/Howto_barostat.txt @@ -64,11 +64,11 @@ Thermodynamic output, which can be setup via the "thermo_style"_thermo_style.html command, often includes pressure values. As explained on the doc page for the "thermo_style"_thermo_style.html command, the default pressure is -setup by the thermo command itself. It is NOT the presure associated +setup by the thermo command itself. It is NOT the pressure associated with any barostatting fix you have defined or with any compute you -have defined that calculates a presure. The doc pages for the +have defined that calculates a pressure. The doc pages for the barostatting fixes explain the ID of the pressure compute they create. -Thus if you want to view these pressurse, you need to specify them +Thus if you want to view these pressures, you need to specify them explicitly via the "thermo_style custom"_thermo_style.html command. Or you can use the "thermo_modify"_thermo_modify.html command to re-define what pressure compute is used for default thermodynamic diff --git a/doc/src/Howto_body.txt b/doc/src/Howto_body.txt index 3535349b46..3e7db9bc8e 100644 --- a/doc/src/Howto_body.txt +++ b/doc/src/Howto_body.txt @@ -337,7 +337,7 @@ the sphere that surrounds each vertex. The diameter value can be different for each body particle. These floating-point values can be listed on as many lines as you wish; see the "read_data"_read_data.html command for more details. Because the -maxmimum vertices per face is hard-coded to be 4 +maximum number of vertices per face is hard-coded to be 4 (i.e. quadrilaterals), faces with more than 4 vertices need to be split into triangles or quadrilaterals. For triangular faces, the last vertex index should be set to -1. diff --git a/doc/src/Howto_library.txt b/doc/src/Howto_library.txt index 741078e7eb..9a9656784c 100644 --- a/doc/src/Howto_library.txt +++ b/doc/src/Howto_library.txt @@ -171,16 +171,16 @@ void lammps_create_atoms(void *, int, tagint *, int *, double *, double *, The gather functions collect peratom info of the requested type (atom coords, atom types, forces, etc) from all processors, and returns the -same vector of values to each callling processor. The scatter +same vector of values to each calling processor. The scatter functions do the inverse. They distribute a vector of peratom values, -passed by all calling processors, to invididual atoms, which may be -owned by different processos. +passed by all calling processors, to individual atoms, which may be +owned by different processors. The lammps_gather_atoms() function does this for all N atoms in the system, ordered by atom ID, from 1 to N. The lammps_gather_atoms_concat() function does it for all N atoms, but simply concatenates the subset of atoms owned by each processor. The -resulting vector is not ordered by atom ID. Atom IDs can be requetsed +resulting vector is not ordered by atom ID. Atom IDs can be requested by the same function if the caller needs to know the ordering. The lammps_gather_subset() function allows the caller to request values for only a subset of atoms (identified by ID). diff --git a/doc/src/Howto_spins.txt b/doc/src/Howto_spins.txt index 1b9adb49a5..b549f99be2 100644 --- a/doc/src/Howto_spins.txt +++ b/doc/src/Howto_spins.txt @@ -9,10 +9,10 @@ Documentation"_ld - "LAMMPS Commands"_lc :c Magnetic spins :h3 -The magnetic spin simualtions are enabled by the SPIN package, whose +The magnetic spin simulations are enabled by the SPIN package, whose implementation is detailed in "Tranchida"_#Tranchida7. -The model representents the simulation of atomic magnetic spins coupled +The model represents the simulation of atomic magnetic spins coupled to lattice vibrations. The dynamics of those magnetic spins can be used to simulate a broad range a phenomena related to magneto-elasticity, or or to study the influence of defects on the magnetic properties of @@ -43,7 +43,7 @@ langevin/spin"_fix_langevin_spin.html. It allows to either dissipate the thermal energy of the Langevin thermostat, or to perform a relaxation of the magnetic configuration toward an equilibrium state. -All the computed magnetic properties can be outputed by two main +All the computed magnetic properties can be output by two main commands. The first one is "compute spin"_compute_spin.html, that enables to evaluate magnetic averaged quantities, such as the total magnetization of the system along x, y, or z, the spin temperature, or diff --git a/doc/src/Intro_overview.txt b/doc/src/Intro_overview.txt index 49c14bc5f0..cd822c778f 100644 --- a/doc/src/Intro_overview.txt +++ b/doc/src/Intro_overview.txt @@ -17,7 +17,7 @@ variety of interatomic potentials (force fields) and boundary conditions. It can model 2d or 3d systems with only a few particles up to millions or billions. -LAMMPS can be built and run on a laptop or destop machine, but is +LAMMPS can be built and run on a laptop or desktop machine, but is designed for parallel computers. It will run on any parallel machine that supports the "MPI"_mpi message-passing library. This includes shared-memory boxes and distributed-memory clusters and @@ -45,7 +45,7 @@ nature; some long-range models are included as well. LAMMPS uses neighbor lists to keep track of nearby particles. The lists are optimized for systems with particles that are repulsive at short distances, so that the local density of particles never becomes -too large. This is in contrast to methods used for modeling plasmas +too large. This is in contrast to methods used for modeling plasma or gravitational bodies (e.g. galaxy formation). On parallel machines, LAMMPS uses spatial-decomposition techniques to diff --git a/doc/src/Manual_build.txt b/doc/src/Manual_build.txt index a6b881cb79..ac12dd7b2e 100644 --- a/doc/src/Manual_build.txt +++ b/doc/src/Manual_build.txt @@ -10,15 +10,16 @@ Section"_Manual.html :c Building the LAMMPS manual :h2 -Depending on how you obtained LAMMPS, the doc directory has -2 or 3 sub-directories and optionally 2 PDF files and an ePUB file: +Depending on how you obtained LAMMPS, the doc directory has 2 or 3 +sub-directories and optionally 2 PDF files and 2 e-book format files: src # content files for LAMMPS documentation html # HTML version of the LAMMPS manual (see html/Manual.html) tools # tools and settings for building the documentation Manual.pdf # large PDF version of entire manual Developer.pdf # small PDF with info about how LAMMPS is structured -LAMMPS.epub # Manual in ePUB format :pre +LAMMPS.epub # Manual in ePUB e-book format +LAMMPS.mobi # Manual in MOBI e-book format :pre If you downloaded LAMMPS as a tarball from the web site, all these directories and files should be included. @@ -40,7 +41,7 @@ HTML files already exist. This requires various tools including Sphinx, which the build process will attempt to download and install on your system, if not already available. See more details below. -(c) You can genererate an older, simpler, less-fancy style of HTML +(c) You can generate an older, simpler, less-fancy style of HTML documentation by typing "make old". This will create an "old" directory. This can be useful if (b) does not work on your box for some reason, or you want to quickly view the HTML version of a doc @@ -61,6 +62,7 @@ make old # generate old-style HTML pages in old dir via txt2html make fetch # fetch HTML doc pages and 2 PDF files from web site # as a tarball and unpack into html dir and 2 PDFs make epub # generate LAMMPS.epub in ePUB format using Sphinx +make mobi # generate LAMMPS.mobi in MOBI format using ebook-convert make clean # remove intermediate RST files created by HTML build make clean-all # remove entire build folder and any cached data :pre @@ -68,7 +70,7 @@ make clean-all # remove entire build folder and any cached data :pre Installing prerequisites for HTML build :h3 -To run the HTML documention build toolchain, Python 3 and virtualenv +To run the HTML documentation build toolchain, Python 3 and virtualenv have to be installed. Here are instructions for common setups: Ubuntu :h4 @@ -115,10 +117,8 @@ ePUB :h4 Same as for HTML. This uses the same tools and configuration files as the HTML tree. -For converting the generated ePUB file to a mobi format file +For converting the generated ePUB file to a MOBI format file (for e-book readers like Kindle, that cannot read ePUB), you also need to have the 'ebook-convert' tool from the "calibre" software installed. "http://calibre-ebook.com/"_http://calibre-ebook.com/ -You first create the ePUB file with 'make epub' and then do: - -ebook-convert LAMMPS.epub LAMMPS.mobi :pre +You first create the ePUB file and then convert it with 'make mobi' diff --git a/doc/src/Modify_overview.txt b/doc/src/Modify_overview.txt index cf94b40281..4ab1eddf21 100644 --- a/doc/src/Modify_overview.txt +++ b/doc/src/Modify_overview.txt @@ -10,7 +10,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c Overview :h3 The best way to add a new feature to LAMMPS is to find a similar -featureand look at the corresponding source and header files to figure +feature and look at the corresponding source and header files to figure out what it does. You will need some knowledge of C++ to be able to understand the hi-level structure of LAMMPS and its class organization, but functions (class methods) that do actual diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index c415a4058c..188081c8dd 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -851,7 +851,7 @@ multi-replica simulations in LAMMPS. Methods in the package include nudged elastic band (NEB), parallel replica dynamics (PRD), temperature accelerated dynamics (TAD), parallel tempering, and a verlet/split algorithm for performing long-range Coulombics on one set -of processors, and the remainder of the force field calcalation on +of processors, and the remainder of the force field calculation on another set. [Supporting info:] @@ -874,7 +874,7 @@ RIGID package :link(PKG-RIGID),h4 [Contents:] Fixes which enforce rigid constraints on collections of atoms or -particles. This includes SHAKE and RATTLE, as well as varous +particles. This includes SHAKE and RATTLE, as well as various rigid-body integrators for a few large bodies or many small bodies. Also several computes which calculate properties of rigid bodies. diff --git a/doc/src/Python_call.txt b/doc/src/Python_call.txt index 3854552188..3c382de1ba 100644 --- a/doc/src/Python_call.txt +++ b/doc/src/Python_call.txt @@ -61,7 +61,7 @@ Python code at selected timesteps during a simulation run. The "pair_style python"_pair_python.html command allows you to define pairwise potentials as python code which encodes a single pairwise -interaction. This is useful for rapid-developement and debugging of a +interaction. This is useful for rapid development and debugging of a new potential. To use any of these commands, you only need to build LAMMPS with the diff --git a/doc/src/Python_head.txt b/doc/src/Python_head.txt index 1f02368429..54f995c565 100644 --- a/doc/src/Python_head.txt +++ b/doc/src/Python_head.txt @@ -62,11 +62,11 @@ library interface provided in src/library.h and src/library.h. That interface is exposed to Python either when calling LAMMPS from Python or when calling Python from a LAMMPS input script and then calling back to LAMMPS from Python code. The library interface is designed to -be easy to add funcionality to. Thus the Python interface to LAMMPS +be easy to add functionality to. Thus the Python interface to LAMMPS is also easy to extend as well. If you create interesting Python scripts that run LAMMPS or interesting Python functions that can be called from a LAMMPS input -script, that you think would be genearlly useful, please post them as +script, that you think would be generally useful, please post them as a pull request to our "GitHub site"_https://github.com/lammps/lammps, and they can be added to the LAMMPS distribution or webpage. diff --git a/doc/src/Python_library.txt b/doc/src/Python_library.txt index 9a3ea93fc3..e76af83962 100644 --- a/doc/src/Python_library.txt +++ b/doc/src/Python_library.txt @@ -186,20 +186,20 @@ keyword as a float. The get_natoms() method returns the total number of atoms in the simulation, as an int. -The set_variable() methosd sets an existing string-style variable to a +The set_variable() method sets an existing string-style variable to a new string value, so that subsequent LAMMPS commands can access the variable. -The reset_box() emthods resets the size and shape of the simulation +The reset_box() method resets the size and shape of the simulation box, e.g. as part of restoring a previously extracted and saved state of a simulation. The gather methods collect peratom info of the requested type (atom coords, atom types, forces, etc) from all processors, and returns the -same vector of values to each callling processor. The scatter +same vector of values to each calling processor. The scatter functions do the inverse. They distribute a vector of peratom values, -passed by all calling processors, to invididual atoms, which may be -owned by different processos. +passed by all calling processors, to individual atoms, which may be +owned by different processors. Note that the data returned by the gather methods, e.g. gather_atoms("x"), is different from the data structure returned diff --git a/doc/src/Run_basics.txt b/doc/src/Run_basics.txt index 02139a8c69..1b7387b46b 100644 --- a/doc/src/Run_basics.txt +++ b/doc/src/Run_basics.txt @@ -75,7 +75,7 @@ setenv OMP_NUM_THREADS 2 # csh or tcsh :pre This can also be done via the "package"_package.html command or via the "-pk command-line switch"_Run_options.html which invokes the package command. See the "package"_package.html command or -"Speed"_Speed.html doc pages for more details about which accerlarator +"Speed"_Speed.html doc pages for more details about which accelerator packages and which commands support multi-threading. :line diff --git a/doc/src/Speed_bench.txt b/doc/src/Speed_bench.txt index 8e407d14ea..a3d0bf4f46 100644 --- a/doc/src/Speed_bench.txt +++ b/doc/src/Speed_bench.txt @@ -11,7 +11,7 @@ Benchmarks :h3 Current LAMMPS performance is discussed on the "Benchmarks page"_http://lammps.sandia.gov/bench.html of the "LAMMPS website"_lws -where timings and parallel efficiencies are listed. The page has +where timings and parallel efficiency are listed. The page has several sections, which are briefly described below: CPU performance on 5 standard problems, strong and weak scaling @@ -77,8 +77,8 @@ style, force field, cutoff, etc) can then be estimated. Performance on a parallel machine can also be predicted from one-core or one-node timings if the parallel efficiency can be estimated. The communication bandwidth and latency of a particular parallel machine -affects the efficiency. On most machines LAMMPS will give parallel -efficiencies on these benchmarks above 50% so long as the number of +affects the efficiency. On most machines LAMMPS will give a parallel +efficiency on these benchmarks above 50% so long as the number of atoms/core is a few 100 or greater, and closer to 100% for large numbers of atoms/core. This is for all-MPI mode with one MPI task per core. For nodes with accelerator options or hardware (OpenMP, GPU, diff --git a/doc/src/Speed_gpu.txt b/doc/src/Speed_gpu.txt index acef5bf6c1..bddefc5031 100644 --- a/doc/src/Speed_gpu.txt +++ b/doc/src/Speed_gpu.txt @@ -62,7 +62,7 @@ Driver (ICD)"_https://www.khronos.org/news/permalink/opencl-installable-client-d installed. There can be multiple of them for the same or different hardware (GPUs, CPUs, Accelerators) installed at the same time. OpenCL refers to those as 'platforms'. The GPU library will select the [first] suitable platform, -but this can be overridded using the device option of the "package"_package.html +but this can be overridden using the device option of the "package"_package.html command. run lammps/lib/gpu/ocl_get_devices to get a list of available platforms and devices with a suitable ICD available. diff --git a/doc/src/Speed_intel.txt b/doc/src/Speed_intel.txt index 3b25ade4d2..bf078fb576 100644 --- a/doc/src/Speed_intel.txt +++ b/doc/src/Speed_intel.txt @@ -68,7 +68,7 @@ In most molecular dynamics software, parallelization parameters to changing the order of operations with finite-precision calculations. The USER-INTEL package is deterministic. This means that the results should be reproducible from run to run with the -{same} parallel configurations and when using determinstic +{same} parallel configurations and when using deterministic libraries or library settings (MPI, OpenMP, FFT). However, there are differences in the USER-INTEL package that can change the order of operations compared to LAMMPS without acceleration: diff --git a/doc/src/Speed_omp.txt b/doc/src/Speed_omp.txt index 0abf54430e..238909d1b4 100644 --- a/doc/src/Speed_omp.txt +++ b/doc/src/Speed_omp.txt @@ -29,7 +29,7 @@ instructions. [Run with the USER-OMP package from the command line:] -These example asume one or more 16-core nodes. +These examples assume one or more 16-core nodes. env OMP_NUM_THREADS=16 lmp_omp -sf omp -in in.script # 1 MPI task, 16 threads according to OMP_NUM_THREADS lmp_mpi -sf omp -in in.script # 1 MPI task, no threads, optimized kernels diff --git a/doc/src/atom_modify.txt b/doc/src/atom_modify.txt index 4b4ac3862d..0f0b241b76 100644 --- a/doc/src/atom_modify.txt +++ b/doc/src/atom_modify.txt @@ -67,7 +67,7 @@ when required. An example are the bond (angle, etc) methods which need to find the local index of an atom with a specific global ID which is a bond (angle, etc) partner. LAMMPS performs this operation efficiently by creating a "map", which is either an {array} or {hash} -table, as descibed below. +table, as described below. When the {map} keyword is not specified in your input script, LAMMPS only creates a map for "atom_styles"_atom_style.html for molecular diff --git a/doc/src/compute.txt b/doc/src/compute.txt index 7d9e443e7d..8facb4de63 100644 --- a/doc/src/compute.txt +++ b/doc/src/compute.txt @@ -173,7 +173,7 @@ There are also additional accelerated compute styles included in the LAMMPS distribution for faster performance on CPUs, GPUs, and KNLs. The individual style names on the "Commands compute"_Commands_compute.html doc page are followed by one or more of -(g,i,k,o,t) to indicate which accerlerated styles exist. +(g,i,k,o,t) to indicate which accelerated styles exist. "aggregate/atom"_compute_cluster_atom.html - aggregate ID for each atom "angle/local"_compute_bond_local.html - theta and energy of each angle diff --git a/doc/src/compute_displace_atom.txt b/doc/src/compute_displace_atom.txt index 669ab9f7ca..7cea62c7b3 100644 --- a/doc/src/compute_displace_atom.txt +++ b/doc/src/compute_displace_atom.txt @@ -85,7 +85,7 @@ dump 1 all custom 100 tmp.dump id type x y z dump_modify 1 append yes thresh c_dsp[4] > ${Dhop} & refresh c_dsp delay 100 :pre -The "dump_modify thresh"_dump_modify.html command will only ouptut +The "dump_modify thresh"_dump_modify.html command will only output atoms that have displaced more than 0.6 Angstroms on each snapshot (assuming metal units). The dump_modify {refresh} option triggers a call to this compute at the end of every dump. diff --git a/doc/src/compute_entropy_atom.txt b/doc/src/compute_entropy_atom.txt index b3891841b8..04f0fd0b82 100644 --- a/doc/src/compute_entropy_atom.txt +++ b/doc/src/compute_entropy_atom.txt @@ -14,7 +14,7 @@ compute ID group-ID entropy/atom sigma cutoff keyword value ... :pre ID, group-ID are documented in "compute"_compute.html command :l entropy/atom = style name of this compute command :l -sigma = width of gaussians used in the g(r) smoothening :l +sigma = width of gaussians used in the g(r) smoothing :l cutoff = cutoff for the g(r) calculation :l one or more keyword/value pairs may be appended :l keyword = {avg} or {local} @@ -49,14 +49,14 @@ This parameter for atom i is computed using the following formula from where r is a distance, g(r) is the radial distribution function of atom i and rho is the density of the system. The g(r) computed for each -atom i can be noisy and therefore it is smoothened using: +atom i can be noisy and therefore it is smoothed using: :c,image(Eqs/pair_entropy2.jpg) where the sum in j goes through the neighbors of atom i, and sigma is a -parameter to control the smoothening. +parameter to control the smoothing. -The input parameters are {sigma} the smoothening parameter, and the +The input parameters are {sigma} the smoothing parameter, and the {cutoff} for the calculation of g(r). If the keyword {avg} has the setting {yes}, then this compute also @@ -82,7 +82,7 @@ If the {local yes} option is used, the g(r) is normalized by the local density around each atom, that is to say the density around each atom is the number of neighbors within the neighbor list cutoff divided by the corresponding volume. This option can be useful when dealing with -inhomogeneus systems such as those that have surfaces. +inhomogeneous systems such as those that have surfaces. Here are typical input parameters for fcc aluminum (lattice constant 4.05 Angstroms), diff --git a/doc/src/compute_property_atom.txt b/doc/src/compute_property_atom.txt index 512009093c..bc1e3049fa 100644 --- a/doc/src/compute_property_atom.txt +++ b/doc/src/compute_property_atom.txt @@ -158,7 +158,7 @@ corresponding attribute is in, e.g. velocity units for vx, charge units for q, etc. For the spin quantities, sp is in the units of the Bohr magneton, spx, -spy, and spz are adimentional quantities, and fmx, fmy and fmz are +spy, and spz are adimensional quantities, and fmx, fmy and fmz are given in rad.THz. [Restrictions:] none diff --git a/doc/src/compute_spin.txt b/doc/src/compute_spin.txt index 787ff8cdcf..e6185a2dd8 100644 --- a/doc/src/compute_spin.txt +++ b/doc/src/compute_spin.txt @@ -48,7 +48,7 @@ variable temp_mag equal c_out_mag\[6\] :pre thermo 10 thermo_style custom step v_mag_z v_mag_norm v_temp_mag :pre -This serie of commands evaluates the total magnetization along z, the norm of +This series of commands evaluates the total magnetization along z, the norm of the total magnetization, and the magnetic temperature. Three variables are assigned to those quantities. The thermo and thermo_style commands print them every 10 timesteps. diff --git a/doc/src/delete_atoms.txt b/doc/src/delete_atoms.txt index 57faf97ad1..a55288e1db 100644 --- a/doc/src/delete_atoms.txt +++ b/doc/src/delete_atoms.txt @@ -84,7 +84,7 @@ connectivity that has already been assigned. However, the "reset_ids"_reset_ids.html command can be used after this command to accomplish the same thing. -Note that the re-assignement of IDs is not really a compression, where +Note that the re-assignment of IDs is not really a compression, where gaps in atom IDs are removed by decrementing atom IDs that are larger. Instead the IDs for all atoms are erased, and new IDs are assigned so that the atoms owned by individual processors have consecutive IDs, as diff --git a/doc/src/dump_modify.txt b/doc/src/dump_modify.txt index 98bcbc5e55..72f4935916 100644 --- a/doc/src/dump_modify.txt +++ b/doc/src/dump_modify.txt @@ -914,7 +914,7 @@ flush = yes format = %d and %g for each integer or floating point value image = no label = ENTRIES -maxifiles = -1 +maxfiles = -1 nfile = 1 pad = 0 pbc = no diff --git a/doc/src/fix.txt b/doc/src/fix.txt index 9c3a1d0349..ee0d006fe8 100644 --- a/doc/src/fix.txt +++ b/doc/src/fix.txt @@ -30,7 +30,7 @@ Set a fix that will be applied to a group of atoms. In LAMMPS, a timestepping or minimization. Examples include updating of atom positions and velocities due to time integration, controlling temperature, applying constraint forces to atoms, enforcing boundary -conditions, computing diagnostics, etc. There are hundredes of fixes +conditions, computing diagnostics, etc. There are hundreds of fixes defined in LAMMPS and new ones can be added; see the "Modify"_Modify.html doc page for details. @@ -164,7 +164,7 @@ There are also additional accelerated fix styles included in the LAMMPS distribution for faster performance on CPUs, GPUs, and KNLs. The individual style names on the "Commands fix"_Commands_fix.html doc page are followed by one or more of (g,i,k,o,t) to indicate which -accerlerated styles exist. +accelerated styles exist. "adapt"_fix_adapt.html - change a simulation parameter over time "addforce"_fix_addforce.html - add a force to each atom diff --git a/doc/src/fix_filter_corotate.txt b/doc/src/fix_filter_corotate.txt index b30966c2f9..4868761d42 100644 --- a/doc/src/fix_filter_corotate.txt +++ b/doc/src/fix_filter_corotate.txt @@ -47,7 +47,7 @@ this can significantly accelerate the simulation. The filter computes a cluster decomposition of the molecular structure following the criteria indicated by the options a, b, t and m. This process is similar to the approach in "fix shake"_fix_shake.html, -however, the clusters are not kept contrained. Instead, the position +however, the clusters are not kept constrained. Instead, the position is slightly modified only for the computation of long-range forces. A good cluster decomposition constitutes in building clusters which contain the fastest covalent bonds inside clusters. diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt index 7bb25e0a68..d4836706e2 100644 --- a/doc/src/fix_langevin_spin.txt +++ b/doc/src/fix_langevin_spin.txt @@ -34,7 +34,7 @@ the following stochastic differential equation: :c,image(Eqs/fix_langevin_spin_sLLG.jpg) -with lambda the transverse damping, and eta a random verctor. +with lambda the transverse damping, and eta a random vector. This equation is referred to as the stochastic Landau-Lifshitz-Gilbert (sLLG) equation. diff --git a/doc/src/fix_latte.txt b/doc/src/fix_latte.txt index bd61e29dcb..c97095bcfc 100644 --- a/doc/src/fix_latte.txt +++ b/doc/src/fix_latte.txt @@ -44,7 +44,7 @@ Once LAMMPS is built with the LATTE package, you can run the example input scripts for molecular dynamics or energy minimization that are found in examples/latte. -A step-by-step tutorial can be follwed at: "LAMMPS-LATTE +A step-by-step tutorial can be followed at: "LAMMPS-LATTE tutorial"_https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS The {peID} argument is not yet supported by fix latte, so it must be diff --git a/doc/src/fix_neb.txt b/doc/src/fix_neb.txt index d331d9ad75..521dfff12b 100644 --- a/doc/src/fix_neb.txt +++ b/doc/src/fix_neb.txt @@ -168,7 +168,7 @@ The difference between these two {estyle} options is as follows. When {estyle} is specified as {last/efirst}, no change is made to the inter-replica force applied to the intermediate replicas (neither first or last). If the initial path is too far from the MEP, an -intermediate repilica may relax "faster" and reach a lower energy than +intermediate replica may relax "faster" and reach a lower energy than the last replica. In this case the intermediate replica will be relaxing toward its own local minima. This behavior can be prevented by specifying {estyle} as {last/efirst/middle} which will alter the diff --git a/doc/src/fix_nh_uef.txt b/doc/src/fix_nh_uef.txt index ae403cafd1..dc05948de3 100644 --- a/doc/src/fix_nh_uef.txt +++ b/doc/src/fix_nh_uef.txt @@ -174,7 +174,7 @@ This fix can be used with the "fix_modify"_fix_modify.html {temp} and {press} options. The temperature and pressure computes used must be of type {temp/uef} and {pressure/uef}. -This fix computes the same global scalar and vecor quantities as "fix +This fix computes the same global scalar and vector quantities as "fix npt"_fix_nh.html. The fix is not invoked during "energy minimization"_minimize.html. diff --git a/doc/src/fix_surface_global.txt b/doc/src/fix_surface_global.txt index ade64d2056..2ee045141a 100644 --- a/doc/src/fix_surface_global.txt +++ b/doc/src/fix_surface_global.txt @@ -6,7 +6,7 @@ :line -fix wall/surface/globale command :h3 +fix wall/surface/global command :h3 [Description:] diff --git a/doc/src/pair_buck6d_coul_gauss.txt b/doc/src/pair_buck6d_coul_gauss.txt index 4c43978fe5..d9780e0320 100644 --- a/doc/src/pair_buck6d_coul_gauss.txt +++ b/doc/src/pair_buck6d_coul_gauss.txt @@ -52,18 +52,18 @@ The latter corrects for artifacts occurring at short distances which become an issue for soft vdW potentials. The {buck6d} styles include a smoothing function which is invoked -according to the global smooting parameter within the specified +according to the global smoothing parameter within the specified cutoff. Hereby a parameter of i.e. 0.9 invokes the smoothing within 90% of the cutoff. No smoothing is applied at a value of 1.0. For the {gauss/dsf} style this smoothing is only applicable for the dispersion damped Buckingham potential. For the {gauss/long} styles the smoothing function can also be invoked for the real -space coulomb interactions which enforce continous energies and +space coulomb interactions which enforce continuous energies and forces at the cutoff. Both styles {buck6d/coul/gauss/dsf} and {buck6d/coul/gauss/long} evaluate a Coulomb potential using spherical Gaussian type charge -distributions which effectively dampen electrostatic ineractions +distributions which effectively dampen electrostatic interactions for high charges at close distances. The electrostatic potential is thus evaluated as: diff --git a/doc/src/pair_coeff.txt b/doc/src/pair_coeff.txt index 63f85f23d5..88f95b5b2c 100644 --- a/doc/src/pair_coeff.txt +++ b/doc/src/pair_coeff.txt @@ -128,7 +128,7 @@ There are also additional accelerated pair styles (not listed on the distribution for faster performance on CPUs, GPUs, and KNLs. The individual style names on the "Commands pair"_Commands_pair.html doc page are followed by one or more of (g,i,k,o,t) to indicate which -accerlerated styles exist. +accelerated styles exist. :line diff --git a/doc/src/pair_ilp_graphene_hbn.txt b/doc/src/pair_ilp_graphene_hbn.txt index 02d0db7af2..c74028faa9 100644 --- a/doc/src/pair_ilp_graphene_hbn.txt +++ b/doc/src/pair_ilp_graphene_hbn.txt @@ -39,7 +39,7 @@ in "(Kolmogorov)"_#Kolmogorov2. Where Tap(r_ij) is the taper function which provides a continuous cutoff (up to third derivative) for interatomic separations larger than -r_c "(Maaravi)"_#Maaravi2. The definitons of each parameter in the above +r_c "(Maaravi)"_#Maaravi2. The definitions of each parameter in the above equation can be found in "(Leven)"_#Leven and "(Maaravi)"_#Maaravi2. It is important to include all the pairs to build the neighbor list for diff --git a/doc/src/pair_kolmogorov_crespi_z.txt b/doc/src/pair_kolmogorov_crespi_z.txt index f557e6c731..912fca1657 100644 --- a/doc/src/pair_kolmogorov_crespi_z.txt +++ b/doc/src/pair_kolmogorov_crespi_z.txt @@ -30,7 +30,7 @@ which is to take all normals along the z-axis. :c,image(Eqs/pair_kolmogorov_crespi_z.jpg) -It is important to have a suffiently large cutoff to ensure smooth forces. +It is important to have a sufficiently large cutoff to ensure smooth forces. Energies are shifted so that they go continously to zero at the cutoff assuming that the exponential part of {Vij} (first term) decays sufficiently fast. This shift is achieved by the last term in the equation for {Vij} above. diff --git a/doc/src/restart.txt b/doc/src/restart.txt index 7c034f36e0..e0fae3909d 100644 --- a/doc/src/restart.txt +++ b/doc/src/restart.txt @@ -49,7 +49,7 @@ as it writes successive restart files. Note that you can specify the restart command twice, once with a single filename and once with two filenames. This would allow you, for example, to write out archival restart files every 100000 steps -using a single filenname, and more frequent temporary restart files +using a single filename, and more frequent temporary restart files every 1000 steps, using two filenames. Using restart 0 will turn off both modes of output. diff --git a/doc/src/special_bonds.txt b/doc/src/special_bonds.txt index a57b61664d..47544b0b4e 100644 --- a/doc/src/special_bonds.txt +++ b/doc/src/special_bonds.txt @@ -64,7 +64,7 @@ e.g. when using the "pair_style hybrid"_pair_hybrid.html command. Thus LAMMPS ignores special_bonds settings when manybody potentials are calculated. Please note, that the existence of explicit bonds for atoms that are described by a manybody potential will alter the -neigborlist and thus can render the computation of those interactions +neighborlist and thus can render the computation of those interactions invalid, since those pairs are not only used to determine direct pairwise interactions but also neighbors of neighbors and more. The recommended course of action is to remove such bonds, or - if From 2d6d635ce0388964f9fdc407f40b1a1dbaa10cef Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 21:30:40 -0400 Subject: [PATCH 565/675] update list of false positives --- doc/utils/sphinx-config/false_positives.txt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index fb08e4e97e..0abd0d7de1 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -308,6 +308,8 @@ Clebsch Clermont clo Clovertown +cmake +CMake cmap Cmax cmdlist @@ -713,7 +715,10 @@ fhg Fi figshare Fij -filenname +filename +filenames +Filename +Filenames fileper Fincham Finchham @@ -1456,6 +1461,7 @@ Mtotal Muccioli Mukherjee Mulders +multi multibody Multibody multicenter @@ -2489,6 +2495,7 @@ velocites Verlag verlet Verlet +versa ves vhi vibrational @@ -2566,6 +2573,7 @@ whitespace Wi Wicaksono wih +wildcard Wirnsberger wirtes witin From 5da714bcc81cffe0723b210fa80232b21e3f8d7c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 21:33:40 -0400 Subject: [PATCH 566/675] fix another source of broken links inserted into processed files --- doc/utils/converters/lammpsdoc/lammps_filters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/utils/converters/lammpsdoc/lammps_filters.py b/doc/utils/converters/lammpsdoc/lammps_filters.py index 11460185db..7b1481ceb9 100644 --- a/doc/utils/converters/lammpsdoc/lammps_filters.py +++ b/doc/utils/converters/lammpsdoc/lammps_filters.py @@ -64,7 +64,7 @@ def filter_file_header_until_first_horizontal_line(content): common_links = "\n.. _lws: http://lammps.sandia.gov\n" \ ".. _ld: Manual.html\n" \ - ".. _lc: Section_commands.html#comm\n" + ".. _lc: Commands_all.html\n" if first_hr >= 0: return content[first_hr+len(hr):].lstrip() + common_links From 4278a284e4b5fb19e8a694b29ccd2a1e95e5c9c0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 21:48:42 -0400 Subject: [PATCH 567/675] fix one more broken link --- doc/src/Install_patch.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/src/Install_patch.txt b/doc/src/Install_patch.txt index 3d0b27370e..ff9b14c12c 100644 --- a/doc/src/Install_patch.txt +++ b/doc/src/Install_patch.txt @@ -17,10 +17,11 @@ how to stay current are on the "Install git"_Install_git.html and If you prefer to download a tarball, as described on the "Install git"_Install_tarball.html doc page, you can stay current by downloading "patch files" when new patch releases are made. A link to -a patch file is posted on the "bug and feature page"_bug of the -website, along with a list of changed files and details about what is -in the new patch release. This page explains how to apply the patch -file to your local LAMMPS directory. +a patch file is posted on the "bug and feature +page"_http://lammps.sandia.gov/bug.html of the LAMMPS website, along +with a list of changed files and details about what is in the new patch +release. This page explains how to apply the patch file to your local +LAMMPS directory. NOTE: You should not apply patch files to a local Git or SVN repo of LAMMPS, only to an unpacked tarball. Use Git and SVN commands to From eca0487dafe1ea5e7df988c32681803966f624b2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 21:50:56 -0400 Subject: [PATCH 568/675] subdomain -> sub-domain --- doc/src/fix_lb_fluid.txt | 2 +- doc/src/replicate.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/fix_lb_fluid.txt b/doc/src/fix_lb_fluid.txt index 1a52397822..d9012d8cb3 100644 --- a/doc/src/fix_lb_fluid.txt +++ b/doc/src/fix_lb_fluid.txt @@ -187,7 +187,7 @@ NOTE: Care must be taken when choosing both a value for dx, and a simulation domain size. This fix uses the same subdivision of the simulation domain among processors as the main LAMMPS program. In order to uniformly cover the simulation domain with lattice sites, the -lengths of the individual LAMMPS subdomains must all be evenly +lengths of the individual LAMMPS sub-domains must all be evenly divisible by dx. If the simulation domain size is cubic, with equal lengths in all dimensions, and the default value for dx is used, this will automatically be satisfied. diff --git a/doc/src/replicate.txt b/doc/src/replicate.txt index 0195dce911..79a481746e 100644 --- a/doc/src/replicate.txt +++ b/doc/src/replicate.txt @@ -14,7 +14,7 @@ replicate nx ny nz {keyword} :pre nx,ny,nz = replication factors in each dimension :ulb optional {keyword} = {bbox} :l - {bbox} = only check atoms in replicas that overlap with a processor's subdomain :ule + {bbox} = only check atoms in replicas that overlap with a processor's sub-domain :ule [Examples:] @@ -46,7 +46,7 @@ image flags that differ by 1. This will allow the bond to be unwrapped appropriately. The optional keyword {bbox} uses a bounding box to only check atoms -in replicas that overlap with a processor's subdomain when assigning +in replicas that overlap with a processor's sub-domain when assigning atoms to processors, and thus can result in substantial speedups for calculations using a large number of processors. It does require temporarily using more memory. From 9a8c09288f04e00732dab2ba926ffd76bca1a15c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 21:54:41 -0400 Subject: [PATCH 569/675] use Hyper-Threading consistently --- doc/src/Speed_kokkos.txt | 14 +++++++------- doc/src/package.txt | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/src/Speed_kokkos.txt b/doc/src/Speed_kokkos.txt index eb787df5d6..c734d642ce 100644 --- a/doc/src/Speed_kokkos.txt +++ b/doc/src/Speed_kokkos.txt @@ -93,12 +93,12 @@ The "t Nt" option specifies how many OpenMP threads per MPI task to use with a node. The default is Nt = 1, which is MPI-only mode. Note that the product of MPI tasks * OpenMP threads/task should not exceed the physical number of cores (on a node), otherwise performance will -suffer. If hyperthreading is enabled, then the product of MPI tasks * -OpenMP threads/task should not exceed the physical number of cores * -hardware threads. The "-k on" switch also issues a "package kokkos" -command (with no additional arguments) which sets various KOKKOS -options to default values, as discussed on the "package"_package.html -command doc page. +suffer. If Hyper-Threading (HT) is enabled, then the product of MPI +tasks * OpenMP threads/task should not exceed the physical number of +cores * hardware threads. The "-k on" switch also issues a +"package kokkos" command (with no additional arguments) which sets +various KOKKOS options to default values, as discussed on the +"package"_package.html command doc page. The "-sf kk" "command-line switch"_Run_options.html will automatically append the "/kk" suffix to styles that support it. In this manner no @@ -149,7 +149,7 @@ Intel Knight's Landing (KNL) Xeon Phi: KNL Intel Phi chips have 68 physical cores. Typically 1 to 4 cores are reserved for the OS, and only 64 or 66 cores are used. Each core has 4 -hyperthreads,so there are effectively N = 256 (4*64) or N = 264 (4*66) +Hyper-Threads,so there are effectively N = 256 (4*64) or N = 264 (4*66) cores to run on. The product of MPI tasks * OpenMP threads/task should not exceed this limit, otherwise performance will suffer. Note that with the KOKKOS package you do not need to specify how many KNLs there diff --git a/doc/src/package.txt b/doc/src/package.txt index 8b0581929f..65117ba3c3 100644 --- a/doc/src/package.txt +++ b/doc/src/package.txt @@ -363,7 +363,7 @@ specified with the OMP_NUM_THREADS environment variable or the {omp} keyword). The extra thread is dedicated for performing part of the "PPPM solver"_kspace_style.html computations and communications. This can improve parallel performance on processors supporting -Simultaneous Multithreading (SMT) such as Hyperthreading on Intel +Simultaneous Multithreading (SMT) such as Hyper-Threading (HT) on Intel processors. In this mode, one additional thread is generated per MPI process. LAMMPS will generate a warning in the case that more threads are used than available in SMT hardware on a node. If the PPPM solver From fe6debfe9a0274bd84ef31f7d9987b6d2ba4b366 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 22:02:01 -0400 Subject: [PATCH 570/675] precompiled -> pre-compiled --- doc/src/Build_cmake.txt | 2 +- doc/src/Build_windows.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Build_cmake.txt b/doc/src/Build_cmake.txt index 6298ab2576..31f2cb549e 100644 --- a/doc/src/Build_cmake.txt +++ b/doc/src/Build_cmake.txt @@ -188,7 +188,7 @@ module list # is a cmake module already loaded? module avail # is a cmake module available? module load cmake3 # load cmake module with appropriate name :pre -Most Linux distributions offer precompiled cmake packages through +Most Linux distributions offer pre-compiled cmake packages through their package management system. If you do not have CMake or a new enough version, you can download the latest version at "https://cmake.org/download/"_https://cmake.org/download/. diff --git a/doc/src/Build_windows.txt b/doc/src/Build_windows.txt index da257ccbc8..0caad589fb 100644 --- a/doc/src/Build_windows.txt +++ b/doc/src/Build_windows.txt @@ -84,7 +84,7 @@ with the cross-compiler environment on Fedora machines. Please keep in mind, though, that this only applies to compiling LAMMPS. Whether the resulting binaries do work correctly is no tested by the LAMMPS developers. We instead rely on the feedback of the users -of these precompiled LAMMPS packages for Windows. We will try to resolve +of these pre-compiled LAMMPS packages for Windows. We will try to resolve issues to the best of our abilities if we become aware of them. However this is subject to time constraints and focus on HPC platforms. From 683c87347ccf07d7435e14a8bd5b43d7383f5f04 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 22:02:24 -0400 Subject: [PATCH 571/675] neighborlist -> neighbor list --- doc/src/Speed_kokkos.txt | 2 +- doc/src/special_bonds.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Speed_kokkos.txt b/doc/src/Speed_kokkos.txt index c734d642ce..04cf53691b 100644 --- a/doc/src/Speed_kokkos.txt +++ b/doc/src/Speed_kokkos.txt @@ -228,7 +228,7 @@ for details and default settings. Experimenting with its options can provide a speed-up for specific calculations. For example: mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos binsize 2.8 -in in.lj # Set binsize = neighbor ghost cutoff -mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighborlist, set binsize = neighbor ghost cutoff :pre +mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff :pre NOTE: For good performance of the KOKKOS package on GPUs, you must have Kepler generation GPUs (or later). The Kokkos library exploits diff --git a/doc/src/special_bonds.txt b/doc/src/special_bonds.txt index 47544b0b4e..07b4986673 100644 --- a/doc/src/special_bonds.txt +++ b/doc/src/special_bonds.txt @@ -64,7 +64,7 @@ e.g. when using the "pair_style hybrid"_pair_hybrid.html command. Thus LAMMPS ignores special_bonds settings when manybody potentials are calculated. Please note, that the existence of explicit bonds for atoms that are described by a manybody potential will alter the -neighborlist and thus can render the computation of those interactions +neighbor list and thus can render the computation of those interactions invalid, since those pairs are not only used to determine direct pairwise interactions but also neighbors of neighbors and more. The recommended course of action is to remove such bonds, or - if From 96bde51ae45d09fa01212ff08ce5510799ae212a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 22:03:53 -0400 Subject: [PATCH 572/675] autodetect -> auto-detect --- doc/src/Build_extras.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index e141c62a3a..088ffd8972 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -687,7 +687,7 @@ the HDF5 library. No additional settings are needed besides "-D PKG_USER-H5MD=yes". -This should autodetect the H5MD library on your system. Several +This should auto-detect the H5MD library on your system. Several advanced CMake H5MD options exist if you need to specify where it is installed. Use the ccmake (terminal window) or cmake-gui (graphical) tools to see these options and set them interactively from their user @@ -777,7 +777,7 @@ on your system. No additional settings are needed besides "-D PKG_USER-NETCDF=yes". -This should autodetect the NETCDF library if it is installed on your +This should auto-detect the NETCDF library if it is installed on your system at standard locations. Several advanced CMake NETCDF options exist if you need to specify where it was installed. Use the ccmake (terminal window) or cmake-gui (graphical) tools to see these options @@ -936,7 +936,7 @@ your system. No additional settings are needed besides "-D PKG_USER-VTK=yes". -This should autodetect the VTK library if it is installed on your +This should auto-detect the VTK library if it is installed on your system at standard locations. Several advanced VTK options exist if you need to specify where it was installed. Use the ccmake (terminal window) or cmake-gui (graphical) tools to see these options and set From 193f46dd9fc92e6fc9a4a5a516fe0ea65e644045 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 22:04:03 -0400 Subject: [PATCH 573/675] spelling fix --- doc/src/Packages_standard.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Packages_standard.txt b/doc/src/Packages_standard.txt index 55d0d616f4..2feb4e142d 100644 --- a/doc/src/Packages_standard.txt +++ b/doc/src/Packages_standard.txt @@ -47,7 +47,7 @@ Package, Description, Doc page, Example, Library "MANYBODY"_Packages_details.html#PKG-MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, no "MC"_Packages_details.html#PKG-MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, n/a, no "MEAM"_Packages_details.html#PKG-MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int -"MISC"_Packages_details.html#PKG-MISC, miscellanous single-file commands, n/a, no, no +"MISC"_Packages_details.html#PKG-MISC, miscellaneous single-file commands, n/a, no, no "MOLECULE"_Packages_details.html#PKG-MOLECULE, molecular system force fields, "Howto bioFF"_Howto_bioFF.html, peptide, no "MPIIO"_Packages_details.html#PKG-MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, n/a, no "MSCG"_Packages_details.html#PKG-MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext From 4b2629d8ba52cacf66de91681894de3ffeddcae8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 22:16:34 -0400 Subject: [PATCH 574/675] recompile/recompute/reinit -> re-compile/re-compute/re-init --- doc/src/Build_cmake.txt | 2 +- doc/src/Build_make.txt | 6 +++--- doc/src/Errors_messages.txt | 10 +++++----- doc/src/Howto_pylammps.txt | 2 +- doc/src/Packages_details.txt | 2 +- doc/src/Speed_measure.txt | 2 +- doc/src/compute_modify.txt | 2 +- doc/src/compute_rdf.txt | 2 +- doc/src/compute_smd_tlsph_dt.txt | 2 +- doc/src/delete_bonds.txt | 2 +- doc/src/dump_molfile.txt | 2 +- doc/src/fix_dt_reset.txt | 2 +- doc/src/fix_ipi.txt | 2 +- doc/src/fix_modify.txt | 2 +- doc/src/fix_rigid.txt | 6 +++--- doc/src/fix_smd.txt | 2 +- doc/src/pair_dsmc.txt | 2 +- doc/src/pair_python.txt | 2 +- doc/src/special_bonds.txt | 2 +- src/KSPACE/msm.cpp | 4 ++-- src/USER-MISC/pair_agni.cpp | 2 +- 21 files changed, 30 insertions(+), 30 deletions(-) diff --git a/doc/src/Build_cmake.txt b/doc/src/Build_cmake.txt index 31f2cb549e..f8b52056fc 100644 --- a/doc/src/Build_cmake.txt +++ b/doc/src/Build_cmake.txt @@ -40,7 +40,7 @@ executable called "lmp" and a library called "liblammps.a" in the If your machine has multiple CPU cores (most do these days), using a command like "make -jN" (with N being the number of available local CPU cores) can be much faster. If you plan to do development on -LAMMPS or need to recompile LAMMPS repeatedly, installation of the +LAMMPS or need to re-compile LAMMPS repeatedly, installation of the ccache (= Compiler Cache) software may speed up compilation even more. After compilation, you can optionally copy the LAMMPS executable and diff --git a/doc/src/Build_make.txt b/doc/src/Build_make.txt index a18d812b59..ad18695e46 100644 --- a/doc/src/Build_make.txt +++ b/doc/src/Build_make.txt @@ -35,16 +35,16 @@ This initial compilation can take a long time, since LAMMPS is a large project with many features. If your machine has multiple CPU cores (most do these days), using a command like "make -jN mpi" (with N = the number of available CPU cores) can be much faster. If you plan to -do development on LAMMPS or need to recompile LAMMPS repeatedly, the +do development on LAMMPS or need to re-compile LAMMPS repeatedly, the installation of the ccache (= Compiler Cache) software may speed up compilation even more. After the initial build, whenever you edit LAMMPS source files, or add or remove new files to the source directory (e.g. by installing or -uninstalling packages), you must recompile and relink the LAMMPS +uninstalling packages), you must re-compile and relink the LAMMPS executable with the same "make" command. This makefiles dependencies should insure that only the subset of files that need to be are -recompiled. +re-compiled. NOTE: When you build LAMMPS for the first time, a long list of *.d files will be printed out rapidly. This is not an error; it is the diff --git a/doc/src/Errors_messages.txt b/doc/src/Errors_messages.txt index d279b5e975..a74182967c 100644 --- a/doc/src/Errors_messages.txt +++ b/doc/src/Errors_messages.txt @@ -743,7 +743,7 @@ Self-explanatory. :dd Self-explanatory. :dd -{Cannot (yet) use single precision with MSM (remove -DFFT_SINGLE from Makefile and recompile)} :dt +{Cannot (yet) use single precision with MSM (remove -DFFT_SINGLE from Makefile and re-compile)} :dt Single precision cannot be used with MSM. :dd @@ -5078,7 +5078,7 @@ Self-explanatory. :dd Occurs when number of neighbor atoms for an atom increased too much during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and -recompile. :dd +re-compile. :dd {Fix qeq/point requires atom attribute q} :dt @@ -5092,7 +5092,7 @@ Self-explanatory. :dd Occurs when number of neighbor atoms for an atom increased too much during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and -recompile. :dd +re-compile. :dd {Fix qeq/shielded requires atom attribute q} :dt @@ -5110,7 +5110,7 @@ Self-explanatory. :dd Occurs when number of neighbor atoms for an atom increased too much during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and -recompile. :dd +re-compile. :dd {Fix qeq/slater requires atom attribute q} :dt @@ -5541,7 +5541,7 @@ See the package gpu command. :dd {GPUs are requested but Kokkos has not been compiled for CUDA} :dt -Recompile Kokkos with CUDA support to use GPUs. :dd +Re-compile Kokkos with CUDA support to use GPUs. :dd {Ghost velocity forward comm not yet implemented with Kokkos} :dt diff --git a/doc/src/Howto_pylammps.txt b/doc/src/Howto_pylammps.txt index 8be4b66e78..a12bf13f2e 100644 --- a/doc/src/Howto_pylammps.txt +++ b/doc/src/Howto_pylammps.txt @@ -73,7 +73,7 @@ that package into your current Python installation. cd $LAMMPS_DIR/python python install.py :pre -NOTE: Recompiling the shared library requires reinstalling the Python package +NOTE: Recompiling the shared library requires re-installing the Python package Installation inside of a virtualenv :h5 diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 188081c8dd..3519720911 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -1591,7 +1591,7 @@ plugin via the "dump molfile"_dump_molfile.html command. Plugins can be obtained from a VMD installation which has to match the platform that you are using to compile LAMMPS for. By adding plugins to VMD, support for new file formats can be added to LAMMPS (or VMD or other -programs that use them) without having to recompile the application +programs that use them) without having to re-compile the application itself. More information about the VMD molfile plugins can be found at "http://www.ks.uiuc.edu/Research/vmd/plugins/molfile"_http://www.ks.uiuc.edu/Research/vmd/plugins/molfile. diff --git a/doc/src/Speed_measure.txt b/doc/src/Speed_measure.txt index 647ff71e36..dd12685dc5 100644 --- a/doc/src/Speed_measure.txt +++ b/doc/src/Speed_measure.txt @@ -50,6 +50,6 @@ inaccurate relative timing data, because processors have to wait when communication occurs for other processors to catch up. Thus the reported times for "Communication" or "Other" may be higher than they really are, due to load-imbalance. If this is an issue, you can -uncomment the MPI_Barrier() lines in src/timer.cpp, and recompile +uncomment the MPI_Barrier() lines in src/timer.cpp, and re-compile LAMMPS, to obtain synchronized timings. diff --git a/doc/src/compute_modify.txt b/doc/src/compute_modify.txt index 192ea0bc9e..5ba2100fba 100644 --- a/doc/src/compute_modify.txt +++ b/doc/src/compute_modify.txt @@ -19,7 +19,7 @@ keyword = {extra/dof} or {extra} or {dynamic/dof} or {dynamic} :l N = # of extra degrees of freedom to subtract {extra} syntax is identical to {extra/dof}, will be disabled at some point {dynamic/dof} value = {yes} or {no} - yes/no = do or do not recompute the number of degrees of freedom (DOF) contributing to the temperature + yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature {dynamic} syntax is identical to {dynamic/dof}, will be disabled at some point :pre :ule diff --git a/doc/src/compute_rdf.txt b/doc/src/compute_rdf.txt index 04b38682cc..d11ae9e3bf 100644 --- a/doc/src/compute_rdf.txt +++ b/doc/src/compute_rdf.txt @@ -182,7 +182,7 @@ change from zero to one at the location of the spike in g(r). NOTE: compute rdf can handle dynamic groups and systems where atoms are added or removed, but this causes that certain normalization -parameters need to be recomputed in every step and include collective +parameters need to be re-computed in every step and include collective communication operations. This will reduce performance and limit parallel efficiency and scaling. For systems, where only the type of atoms changes (e.g. when using "fix atom/swap"_fix_atom_swap.html), diff --git a/doc/src/compute_smd_tlsph_dt.txt b/doc/src/compute_smd_tlsph_dt.txt index 92f5923de0..e9ff2e739b 100644 --- a/doc/src/compute_smd_tlsph_dt.txt +++ b/doc/src/compute_smd_tlsph_dt.txt @@ -25,7 +25,7 @@ Define a computation that outputs the CFL-stable time increment per particle. This time increment is essentially given by the speed of sound, divided by the SPH smoothing length. Because both the speed of sound and the smoothing length typically change during the course of a -simulation, the stable time increment needs to be recomputed every +simulation, the stable time increment needs to be re-computed every time step. This calculation is performed automatically in the relevant SPH pair styles and this compute only serves to make the stable time increment accessible for output purposes. diff --git a/doc/src/delete_bonds.txt b/doc/src/delete_bonds.txt index b29fa82f2d..4e33604696 100644 --- a/doc/src/delete_bonds.txt +++ b/doc/src/delete_bonds.txt @@ -140,7 +140,7 @@ enough for a processor to acquire the ghost atoms its needs to compute bond, angle, etc interactions. If deleted bonds (angles, etc) are removed but the 1-2, 1-3, 1-4 -weighting list is not recomputed, this can cause a later "fix +weighting list is not re-computed, this can cause a later "fix shake"_fix_shake.html command to fail due to an atom's bonds being inconsistent with the weighting list. This should only happen if the group used in the fix command includes both atoms in the bond, in diff --git a/doc/src/dump_molfile.txt b/doc/src/dump_molfile.txt index dd2b212f0b..b5f157cf29 100644 --- a/doc/src/dump_molfile.txt +++ b/doc/src/dump_molfile.txt @@ -99,7 +99,7 @@ USER-MOLFILE package only provides the interface code, not the plugins. These can be obtained from a VMD installation which has to match the platform that you are using to compile LAMMPS for. By adding plugins to VMD, support for new file formats can be added to LAMMPS (or VMD -or other programs that use them) without having to recompile the +or other programs that use them) without having to re-compile the application itself. The plugins are installed in the directory: /plugins//molfile diff --git a/doc/src/fix_dt_reset.txt b/doc/src/fix_dt_reset.txt index be4fbd255b..0c5a4493ae 100644 --- a/doc/src/fix_dt_reset.txt +++ b/doc/src/fix_dt_reset.txt @@ -14,7 +14,7 @@ fix ID group-ID dt/reset N Tmin Tmax Xmax keyword values ... :pre ID, group-ID are documented in "fix"_fix.html command dt/reset = style name of this fix command -N = recompute dt every N timesteps +N = re-compute dt every N timesteps Tmin = minimum dt allowed which can be NULL (time units) Tmax = maximum dt allowed which can be NULL (time units) Xmax = maximum distance for an atom to move in one timestep (distance units) diff --git a/doc/src/fix_ipi.txt b/doc/src/fix_ipi.txt index b115aba7df..64486a9cc7 100644 --- a/doc/src/fix_ipi.txt +++ b/doc/src/fix_ipi.txt @@ -63,7 +63,7 @@ electrostatics, or that contain parameters that depend on box size: all of these options will be initialized based on the cell size in the LAMMPS-side initial configuration and kept constant during the run. This is required to e.g. obtain reproducible and conserved forces. -If the cell varies too wildly, it may be advisable to reinitialize +If the cell varies too wildly, it may be advisable to re-initialize these interactions at each call. This behavior can be requested by setting the {reset} switch. diff --git a/doc/src/fix_modify.txt b/doc/src/fix_modify.txt index ddb5f9a4cd..f50747948a 100644 --- a/doc/src/fix_modify.txt +++ b/doc/src/fix_modify.txt @@ -21,7 +21,7 @@ keyword = {temp} or {press} or {energy} or {virial} or {respa} or {dynamic/dof} {virial} value = {yes} or {no} {respa} value = {1} to {max respa level} or {0} (for outermost level) {dynamic/dof} value = {yes} or {no} - yes/no = do or do not recompute the number of degrees of freedom (DOF) contributing to the temperature + yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature {bodyforces} value = {early} or {late} early/late = compute rigid-body forces/torques early or late in the timestep :pre :ule diff --git a/doc/src/fix_rigid.txt b/doc/src/fix_rigid.txt index d489762e80..5d65856735 100644 --- a/doc/src/fix_rigid.txt +++ b/doc/src/fix_rigid.txt @@ -442,11 +442,11 @@ couple none :pre The keyword/value option pairs are used in the following ways. The {reinit} keyword determines, whether the rigid body properties -are reinitialized between run commands. With the option {yes} (the +are re-initialized between run commands. With the option {yes} (the default) this is done, with the option {no} this is not done. Turning -off the reinitialization can be helpful to protect rigid bodies against +off the re-initialization can be helpful to protect rigid bodies against unphysical manipulations between runs or when properties cannot be -easily recomputed (e.g. when read from a file). When using the {infile} +easily re-computed (e.g. when read from a file). When using the {infile} keyword, the {reinit} option is automatically set to {no}. The {langevin} and {temp} and {tparam} keywords perform thermostatting diff --git a/doc/src/fix_smd.txt b/doc/src/fix_smd.txt index 644c04eadb..774842c7cf 100644 --- a/doc/src/fix_smd.txt +++ b/doc/src/fix_smd.txt @@ -77,7 +77,7 @@ normalized. But since it represents the {absolute} displacement of group-ID2 relative to the fix group, (1,1,0) is a different spring than (-1,-1,0). For each vector component, the displacement can be described with the {auto} parameter. In this case the direction is -recomputed in every step, which can be useful for steering a local +re-computed in every step, which can be useful for steering a local process where the whole object undergoes some other change. When the relative positions and distance between the two groups are not in equilibrium, the same spring force described above is applied to atoms diff --git a/doc/src/pair_dsmc.txt b/doc/src/pair_dsmc.txt index adaeeb8390..8b1ceab858 100644 --- a/doc/src/pair_dsmc.txt +++ b/doc/src/pair_dsmc.txt @@ -16,7 +16,7 @@ max_cell_size = global maximum cell size for DSMC interactions (distance units) seed = random # seed (positive integer) weighting = macroparticle weighting Tref = reference temperature (temperature units) -Nrecompute = recompute v*sigma_max every this many timesteps (timesteps) +Nrecompute = re-compute v*sigma_max every this many timesteps (timesteps) Nsample = sample this many times in recomputing v*sigma_max :ul [Examples:] diff --git a/doc/src/pair_python.txt b/doc/src/pair_python.txt index b7130c8a10..e8baf14d2e 100644 --- a/doc/src/pair_python.txt +++ b/doc/src/pair_python.txt @@ -29,7 +29,7 @@ The {python} pair style provides a way to define pairwise additive potential functions as python script code that is loaded into LAMMPS from a python file which must contain specific python class definitions. This allows to rapidly evaluate different potential functions without -having to modify and recompile LAMMPS. Due to python being an +having to modify and re-compile LAMMPS. Due to python being an interpreted language, however, the performance of this pair style is going to be significantly slower (often between 20x and 100x) than corresponding compiled code. This penalty can be significantly reduced diff --git a/doc/src/special_bonds.txt b/doc/src/special_bonds.txt index 07b4986673..283aad6c2d 100644 --- a/doc/src/special_bonds.txt +++ b/doc/src/special_bonds.txt @@ -110,7 +110,7 @@ simulation. The two exceptions to this rule are (a) if the {angle} or {dihedral} keywords are set to {yes} (see below), or (b) if the "delete_bonds"_delete_bonds.html command is used with the {special} -option that recomputes the 1-2,1-3,1-4 topologies after bonds are +option that re-computes the 1-2,1-3,1-4 topologies after bonds are deleted; see the "delete_bonds"_delete_bonds.html command for more details. diff --git a/src/KSPACE/msm.cpp b/src/KSPACE/msm.cpp index 9f3221449b..efa2c87296 100644 --- a/src/KSPACE/msm.cpp +++ b/src/KSPACE/msm.cpp @@ -177,7 +177,7 @@ void MSM::init() if (sizeof(FFT_SCALAR) != 8) error->all(FLERR,"Cannot (yet) use single precision with MSM " - "(remove -DFFT_SINGLE from Makefile and recompile)"); + "(remove -DFFT_SINGLE from Makefile and re-compile)"); // extract short-range Coulombic cutoff from pair style @@ -419,7 +419,7 @@ void MSM::setup() boxlo = domain->boxlo_lamda; // ghost grid points depend on direct sum interaction limits, - // so need to recompute local grid + // so need to re-compute local grid set_grid_local(); diff --git a/src/USER-MISC/pair_agni.cpp b/src/USER-MISC/pair_agni.cpp index 11bf2ae01e..785146a0d6 100644 --- a/src/USER-MISC/pair_agni.cpp +++ b/src/USER-MISC/pair_agni.cpp @@ -394,7 +394,7 @@ void PairAGNI::read_file(char *file) if (nwords == 0) continue; if (nwords > MAXWORD) - error->all(FLERR,"Increase MAXWORD and recompile"); + error->all(FLERR,"Increase MAXWORD and re-compile"); // words = ptrs to all words in line From b00046fd34a0af8e9ccd14a38ec8619f9af2d1c8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 22:18:27 -0400 Subject: [PATCH 575/675] fix typo --- doc/src/Commands_all.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Commands_all.txt b/doc/src/Commands_all.txt index 13db1272b9..aec5a9db8b 100644 --- a/doc/src/Commands_all.txt +++ b/doc/src/Commands_all.txt @@ -19,7 +19,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c All commands :h3 -An alphabetic list of all LAMMPS commmands. +An alphabetic list of all LAMMPS commands. "angle_coeff"_angle_coeff.html, "angle_style"_angle_style.html, From 0cd71ee582f7312f57f637064e4a7cf522946c84 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 22:18:35 -0400 Subject: [PATCH 576/675] more false positives --- doc/utils/sphinx-config/false_positives.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 0abd0d7de1..8eb37f6135 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -260,6 +260,7 @@ Caro cartesian Cates cbecker +ccmake CCu cd cdeam @@ -286,6 +287,9 @@ cgs Chalopin Champaign charmm +charmmfsw +charmmfsh +charmm CHARMM checkmark checkqeq @@ -412,6 +416,7 @@ Cval cvar cvff cwiggle +cygwin Cygwin Cyrot cyrstals @@ -587,6 +592,7 @@ ehanced ehex eHEX Ei +Eigen Eigensolve Eike eim @@ -1390,6 +1396,7 @@ Mikami Militzer Minary mincap +mingw minima minimizations minimizer From c0d9d96e09f93660cca2e2b8246c3579cd31f528 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 22:24:51 -0400 Subject: [PATCH 577/675] better help message in make file --- doc/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/Makefile b/doc/Makefile index 797095dfad..9069fa1d60 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -42,7 +42,8 @@ help: @echo " old create old-style HTML doc pages in old dir" @echo " fetch fetch HTML and PDF files from LAMMPS web site" @echo " epub create ePUB format manual for e-book readers" - @echo " mobi create MOBI format manual for e-book readers (e.g. Kindle)" + @echo " mobi convert ePUB to MOBI format manual for e-book readers (e.g. Kindle)" + @echo " (requires ebook-convert tool from calibre)" @echo " clean remove all intermediate RST files" @echo " clean-all reset the entire build environment" @echo " txt2html build txt2html tool" From af35c3bccafdb6e014bee669e209bc975a5fd111 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 22:28:53 -0400 Subject: [PATCH 578/675] atomID -> atom-ID --- doc/src/compute_rigid_local.txt | 2 +- doc/src/fix_bond_react.txt | 2 +- doc/src/read_data.txt | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/src/compute_rigid_local.txt b/doc/src/compute_rigid_local.txt index 9b829a70fc..67c6209bdf 100644 --- a/doc/src/compute_rigid_local.txt +++ b/doc/src/compute_rigid_local.txt @@ -92,7 +92,7 @@ dump 1 all local 1000 tmp.dump index c_1\[1\] c_1\[2\] c_1\[3\] c_1\[4\] c_1\[5\ This section explains the rigid body attributes that can be specified. -The {id} attribute is the atomID of the atom which owns the rigid body, which is +The {id} attribute is the atom-ID of the atom which owns the rigid body, which is assigned by the "fix rigid/small"_fix_rigid.html command. The {mol} attribute is the molecule ID of the rigid body. It should diff --git a/doc/src/fix_bond_react.txt b/doc/src/fix_bond_react.txt index 327088cb99..8e7cb1bdae 100644 --- a/doc/src/fix_bond_react.txt +++ b/doc/src/fix_bond_react.txt @@ -34,7 +34,7 @@ react = mandatory argument indicating new reaction specification :l Rmax = bonding pair atoms must be separated by less than Rmax to initiate reaction (distance units) :l template-ID(pre-reacted) = ID of a molecule template containing pre-reaction topology :l template-ID(post-reacted) = ID of a molecule template containing post-reaction topology :l - map_file = name of file specifying corresponding atomIDs in the pre- and post-reacted templates :l + map_file = name of file specifying corresponding atom-IDs in the pre- and post-reacted templates :l zero or more individual keyword/value pairs may be appended to each react argument :l individual_keyword = {prob} or {stabilize_steps} :l {prob} values = fraction seed diff --git a/doc/src/read_data.txt b/doc/src/read_data.txt index ef899a15b4..6aa30d9e63 100644 --- a/doc/src/read_data.txt +++ b/doc/src/read_data.txt @@ -124,14 +124,14 @@ bond atoms or bad dynamics. The three choices for the {add} argument affect how the atom IDs and molecule IDs of atoms in the data file are treated. If {append} is specified, atoms in the data file are added to the current system, -with their atom IDs reset so that an atomID = M in the data file -becomes atomID = N+M, where N is the largest atom ID in the current +with their atom IDs reset so that an atom-ID = M in the data file +becomes atom-ID = N+M, where N is the largest atom ID in the current system. This rule is applied to all occurrences of atom IDs in the data file, e.g. in the Velocity or Bonds section. This is also done for molecule IDs, if the atom style does support molecule IDs or they are enabled via fix property/atom. If {IDoffset} is specified, then {IDoffset} is a numeric value is given, e.g. 1000, so that an -atomID = M in the data file becomes atomID = 1000+M. For systems +atom-ID = M in the data file becomes atom-ID = 1000+M. For systems with enabled molecule IDs, another numerical argument {MOLoffset} is required representing the equivalent offset for molecule IDs. If {merge} is specified, the data file atoms @@ -139,7 +139,7 @@ are added to the current system without changing their IDs. They are assumed to merge (without duplication) with the currently defined atoms. It is up to you to insure there are no multiply defined atom IDs, as LAMMPS only performs an incomplete check that this is the case -by insuring the resulting max atomID >= the number of atoms. For +by insuring the resulting max atom-ID >= the number of atoms. For molecule IDs, there is no check done at all. The {offset} and {shift} keywords can only be used if the {add} From 440338d769b0dca022a884c11b6d1c0b3cd5af5e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 Aug 2018 22:35:35 -0400 Subject: [PATCH 579/675] last round of spelling fixes --- doc/src/Packages_details.txt | 2 +- doc/src/compute_ackland_atom.txt | 2 +- doc/src/fix_bocs.txt | 2 +- doc/src/fix_rhok.txt | 2 +- doc/src/neb.txt | 4 ++-- doc/utils/sphinx-config/false_positives.txt | 1 + 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 3519720911..381dc2e995 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -1370,7 +1370,7 @@ which have styles optimized for CPUs and KNLs. You need to have an Intel compiler, version 14 or higher to take full advantage of this package. While compilation with GNU compilers is -supported, performance will be suboptimal. +supported, performance will be sub-optimal. NOTE: the USER-INTEL package contains styles that require using the -restrict flag, when compiling with Intel compilers. diff --git a/doc/src/compute_ackland_atom.txt b/doc/src/compute_ackland_atom.txt index cda4a36b34..46db81eb9e 100644 --- a/doc/src/compute_ackland_atom.txt +++ b/doc/src/compute_ackland_atom.txt @@ -32,7 +32,7 @@ according to the formulation given in "(Ackland)"_#Ackland. Historically, LAMMPS had two, slightly different implementations of the algorithm from the paper. With the {legacy} keyword, it is possible to switch between the pre-2015 ({legacy yes}) and post-2015 -implemention ({legacy no}). The post-2015 variant is the default. +implementation ({legacy no}). The post-2015 variant is the default. In contrast to the "centro-symmetry parameter"_compute_centro_atom.html this method is stable against diff --git a/doc/src/fix_bocs.txt b/doc/src/fix_bocs.txt index 7acc22d702..b7d4e7badf 100644 --- a/doc/src/fix_bocs.txt +++ b/doc/src/fix_bocs.txt @@ -56,7 +56,7 @@ value and its corresponding pressure correction. The volumes in the file should be uniformly spaced. Both the volumes and the pressure corrections should be provided in the proper units, e.g. if you are using {units real}, the volumes should all be in cubic angstroms, and the pressure corrections -should all be in atomspheres. Furthermore, the table should start/end at a +should all be in atmospheres. Furthermore, the table should start/end at a volume considerably smaller/larger than you expect your system to sample during the simulation. If the system ever reaches a volume outside of the range provided, the simulation will stop. diff --git a/doc/src/fix_rhok.txt b/doc/src/fix_rhok.txt index a3d1ab702e..f013ebfae1 100644 --- a/doc/src/fix_rhok.txt +++ b/doc/src/fix_rhok.txt @@ -11,7 +11,7 @@ fix rhok command :h3 fix ID group-ID rhok nx ny nz K a :pre ID, group-ID are documented in "fix"_fix.html command -nx, ny, nz = k-vektor of collective density field +nx, ny, nz = k-vector of collective density field K = spring constant of bias potential a = anchor point of bias potential :ul diff --git a/doc/src/neb.txt b/doc/src/neb.txt index 57e122fdcd..75d199e0b4 100644 --- a/doc/src/neb.txt +++ b/doc/src/neb.txt @@ -338,9 +338,9 @@ energy gradient of image i. ReplicaForce is the two-norm of the 3N-length force vector (including nudging forces) for replica i. MaxAtomForce is the maximum force component of any atom in replica i. -When a NEB calculation does not converge properly, the suplementary +When a NEB calculation does not converge properly, the supplementary information can help understanding what is going wrong. For instance -when the path angle becomes accute the definition of tangent used in +when the path angle becomes accute, the definition of tangent used in the NEB calculation is questionable and the NEB cannot may diverge "(Maras)"_#Maras2. diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 8eb37f6135..febd5c20a0 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -260,6 +260,7 @@ Caro cartesian Cates cbecker +ccache ccmake CCu cd From 4f36f077ff8b451dc2b92a9bd80ff1791ee5bc1b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 23 Aug 2018 10:08:36 -0400 Subject: [PATCH 580/675] whitespace cleanup --- doc/src/Eqs/pair_atm.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Eqs/pair_atm.tex b/doc/src/Eqs/pair_atm.tex index 0e05370faf..fce1db99b8 100644 --- a/doc/src/Eqs/pair_atm.tex +++ b/doc/src/Eqs/pair_atm.tex @@ -4,6 +4,6 @@ \begin{equation} E=\nu\frac{1+3\cos\gamma_1\cos\gamma_2\cos\gamma_3}{r_{12}^3r_{23}^3r_{31}^3} -\end{equation} +\end{equation} \end{document} From c5d3274222a86168312450ba4f6188bb3c47a50d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 23 Aug 2018 10:13:06 -0400 Subject: [PATCH 581/675] restore files --- doc/src/Packages_details.txt | 2000 ++++++++++++++++++++++++++++++++++ doc/src/Speed_kokkos.txt | 381 +++++++ 2 files changed, 2381 insertions(+) create mode 100644 doc/src/Packages_details.txt create mode 100644 doc/src/Speed_kokkos.txt diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt new file mode 100644 index 0000000000..892774be38 --- /dev/null +++ b/doc/src/Packages_details.txt @@ -0,0 +1,2000 @@ +"Higher level section"_Packages.html - "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 + +Package details :h3 + +Here is a brief description of all the standard and user packages in +LAMMPS. It lists authors (if applicable) and summarizes the package +contents. It has specific instructions on how to install the package, +including, if necessary, info on how to download or build any extra +library it requires. It also gives links to documentation, example +scripts, and pictures/movies (if available) that illustrate use of the +package. + +The majority of packages can be included in a LAMMPS build with a +single setting (-D PGK_NAME for CMake) or command ("make yes-name" for +make). See the "Build package"_Build_package.html doc page for more +info. A few packages may require additional steps; this is indicated +in the descriptions below. The "Build extras"_Build_extras.html doc +page gives those details. + +NOTE: To see the complete list of commands a package adds to LAMMPS, +you can examine the files in its src directory, e.g. "ls +src/GRANULAR". Files with names that start with fix, compute, atom, +pair, bond, angle, etc correspond to commands with the same style name +as contained in the file name. + +"ASPHERE"_#PKG-ASPHERE, +"BODY"_#PKG-BODY, +"CLASS2"_#PKG-CLASS2, +"COLLOID"_#PKG-COLLOID, +"COMPRESS"_#PKG-COMPRESS, +"CORESHELL"_#PKG-CORESHELL, +"DIPOLE"_#PKG-DIPOLE, +"GPU"_#PKG-GPU, +"GRANULAR"_#PKG-GRANULAR, +"KIM"_#PKG-KIM, +"KOKKOS"_#PKG-KOKKOS, +"KSPACE"_#PKG-KSPACE, +"LATTE"_#PKG-LATTE, +"MANYBODY"_#PKG-MANYBODY, +"MC"_#PKG-MC, +"MEAM"_#PKG-MEAM, +"MISC"_#PKG-MISC, +"MOLECULE"_#PKG-MOLECULE, +"MPIIO"_#PKG-MPIIO, +"MSCG"_#PKG-MSCG, +"OPT"_#PKG-OPT, +"PERI"_#PKG-PERI, +"POEMS"_#PKG-POEMS, +"PYTHON"_#PKG-PYTHON, +"QEQ"_#PKG-QEQ, +"REAX"_#PKG-REAX, +"REPLICA"_#PKG-REPLICA2, +"RIGID"_#PKG-RIGID, +"SHOCK"_#PKG-SHOCK, +"SNAP"_#PKG-SNAP, +"SPIN"_#PKG-SPIN, +"SRD"_#PKG-SRD, +"VORONOI"_#PKG-VORONOI :tb(c=6,ea=c) + +"USER-ATC"_#PKG-USER-ATC, +"USER-AWPMD"_#PKG-USER-AWPMD, +"USER-BOCS"_#PKG-USER-BOCS, +"USER-CGDNA"_#PKG-USER-CGDNA, +"USER-CGSDK"_#PKG-USER-CGSDK, +"USER-COLVARS"_#PKG-USER-COLVARS, +"USER-DIFFRACTION"_#PKG-USER-DIFFRACTION, +"USER-DPD"_#PKG-USER-DPD, +"USER-DRUDE"_#PKG-USER-DRUDE, +"USER-EFF"_#PKG-USER-EFF, +"USER-FEP"_#PKG-USER-FEP, +"USER-H5MD"_#PKG-USER-H5MD, +"USER-INTEL"_#PKG-USER-INTEL, +"USER-LB"_#PKG-USER-LB, +"USER-MANIFOLD"_#PKG-USER-MANIFOLD, +"USER-MEAMC"_#PKG-USER-MEAMC, +"USER-MESO"_#PKG-USER-MESO, +"USER-MGPT"_#PKG-USER-MGPT, +"USER-MISC"_#PKG-USER-MISC, +"USER-MOFFF"_#PKG-USER-MOFFF, +"USER-MOLFILE"_#PKG-USER-MOLFILE, +"USER-NETCDF"_#PKG-USER-NETCDF, +"USER-OMP"_#PKG-USER-OMP, +"USER-PHONON"_#PKG-USER-PHONON, +"USER-QMMM"_#PKG-USER-QMMM, +"USER-QTB"_#PKG-USER-QTB, +"USER-QUIP"_#PKG-USER-QUIP, +"USER-REAXC"_#PKG-USER-REAXC, +"USER-SMD"_#PKG-USER-SMD, +"USER-SMTBQ"_#PKG-USER-SMTBQ, +"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) + +:line + +ASPHERE package :link(PKG-ASPHERE),h4 + +[Contents:] + +Computes, time-integration fixes, and pair styles for aspherical +particle models including ellipsoids, 2d lines, and 3d triangles. + +[Supporting info:] + +src/ASPHERE: filenames -> commands +"Howto spherical"_Howto_spherical.html +"pair_style gayberne"_pair_gayberne.html +"pair_style resquared"_pair_resquared.html +"doc/PDF/pair_gayberne_extra.pdf"_PDF/pair_gayberne_extra.pdf +"doc/PDF/pair_resquared_extra.pdf"_PDF/pair_resquared_extra.pdf +examples/ASPHERE +examples/ellipse +http://lammps.sandia.gov/movies.html#line +http://lammps.sandia.gov/movies.html#tri :ul + +:line + +BODY package :link(PKG-BODY),h4 + +[Contents:] + +Body-style particles with internal structure. Computes, +time-integration fixes, pair styles, as well as the body styles +themselves. See the "Howto body"_Howto_body.html doc page for an +overview. + +[Supporting info:] + +src/BODY filenames -> commands +"Howto_body"_Howto_body.html +"atom_style body"_atom_style.html +"fix nve/body"_fix_nve_body.html +"pair_style body/nparticle"_pair_body_nparticle.html +examples/body :ul + +:line + +CLASS2 package :link(PKG-CLASS2),h4 + +[Contents:] + +Bond, angle, dihedral, improper, and pair styles for the COMPASS +CLASS2 molecular force field. + +[Supporting info:] + +src/CLASS2: filenames -> commands +"bond_style class2"_bond_class2.html +"angle_style class2"_angle_class2.html +"dihedral_style class2"_dihedral_class2.html +"improper_style class2"_improper_class2.html +"pair_style lj/class2"_pair_class2.html :ul + +:line + +COLLOID package :link(PKG-COLLOID),h4 + +[Contents:] + +Coarse-grained finite-size colloidal particles. Pair styles and fix +wall styles for colloidal interactions. Includes the Fast Lubrication +Dynamics (FLD) method for hydrodynamic interactions, which is a +simplified approximation to Stokesian dynamics. + +[Authors:] This package includes Fast Lubrication Dynamics pair styles +which were created by Amit Kumar and Michael Bybee from Jonathan +Higdon's group at UIUC. + +[Supporting info:] + +src/COLLOID: filenames -> commands +"fix wall/colloid"_fix_wall.html +"pair_style colloid"_pair_colloid.html +"pair_style yukawa/colloid"_pair_yukawa_colloid.html +"pair_style brownian"_pair_brownian.html +"pair_style lubricate"_pair_lubricate.html +"pair_style lubricateU"_pair_lubricateU.html +examples/colloid +examples/srd :ul + +:line + +COMPRESS package :link(PKG-COMPRESS),h4 + +[Contents:] + +Compressed output of dump files via the zlib compression library, +using dump styles with a "gz" in their style name. + +To use this package you must have the zlib compression library +available on your system. + +[Author:] Axel Kohlmeyer (Temple U). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/COMPRESS: filenames -> commands +src/COMPRESS/README +lib/compress/README +"dump atom/gz"_dump.html +"dump cfg/gz"_dump.html +"dump custom/gz"_dump.html +"dump xyz/gz"_dump.html :ul + +:line + +CORESHELL package :link(PKG-CORESHELL),h4 + +[Contents:] + +Compute and pair styles that implement the adiabatic core/shell model +for polarizability. The pair styles augment Born, Buckingham, and +Lennard-Jones styles with core/shell capabilities. The "compute +temp/cs"_compute_temp_cs.html command calculates the temperature of a +system with core/shell particles. See the "Howto +coreshell"_Howto_coreshell.html doc page for an overview of how to use +this package. + +[Author:] Hendrik Heenen (Technical U of Munich). + +[Supporting info:] + +src/CORESHELL: filenames -> commands +"Howto coreshell"_Howto_coreshell.html +"Howto polarizable"_Howto_polarizable.html +"compute temp/cs"_compute_temp_cs.html +"pair_style born/coul/long/cs"_pair_cs.html +"pair_style buck/coul/long/cs"_pair_cs.html +"pair_style lj/cut/coul/long/cs"_pair_lj.html +examples/coreshell :ul + +:line + +DIPOLE package :link(PKG-DIPOLE),h4 + +[Contents:] + +An atom style and several pair styles for point dipole models with +short-range or long-range interactions. + +[Supporting info:] + +src/DIPOLE: filenames -> commands +"atom_style dipole"_atom_style.html +"pair_style lj/cut/dipole/cut"_pair_dipole.html +"pair_style lj/cut/dipole/long"_pair_dipole.html +"pair_style lj/long/dipole/long"_pair_dipole.html +examples/dipole :ul + +:line + +GPU package :link(PKG-GPU),h4 + +[Contents:] + +Dozens of pair styles and a version of the PPPM long-range Coulombic +solver optimized for GPUs. All such styles have a "gpu" as a suffix +in their style name. The GPU code can be compiled with either CUDA or +OpenCL, however the OpenCL variants are no longer actively maintained +and only the CUDA versions are regularly tested. The "Speed +gpu"_Speed_gpu.html doc page gives details of what hardware and GPU +software is required on your system, and details on how to build and +use this package. Its styles can be invoked at run time via the "-sf +gpu" or "-suffix gpu" "command-line switches"_Run_options.html. See +also the "KOKKOS"_#PKG-KOKKOS package, which has GPU-enabled styles. + +[Authors:] Mike Brown (Intel) while at Sandia and ORNL and Trung Nguyen +(Northwestern U) while at ORNL. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/GPU: filenames -> commands +src/GPU/README +lib/gpu/README +"Speed packages"_Speed_packages.html +"Speed gpu"_Speed_gpu.html +"Section 2.6 -sf gpu"_Run_options.html +"Section 2.6 -pk gpu"_Run_options.html +"package gpu"_package.html +"Commands all"_Commands_all.html pages (pair,kspace) for styles followed by (g) +"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul + +:line + +GRANULAR package :link(PKG-GRANULAR),h4 + +[Contents:] + +Pair styles and fixes for finite-size granular particles, which +interact with each other and boundaries via frictional and dissipative +potentials. + +[Supporting info:] + +src/GRANULAR: filenames -> commands +"Howto granular"_Howto_granular.html +"fix pour"_fix_pour.html +"fix wall/gran"_fix_wall_gran.html +"pair_style gran/hooke"_pair_gran.html +"pair_style gran/hertz/history"_pair_gran.html +examples/granregion +examples/pour +bench/in.chute +http://lammps.sandia.gov/pictures.html#jamming +http://lammps.sandia.gov/movies.html#hopper +http://lammps.sandia.gov/movies.html#dem +http://lammps.sandia.gov/movies.html#brazil +http://lammps.sandia.gov/movies.html#granregion :ul + +:line + +KIM package :link(PKG-KIM),h4 + +[Contents:] + +A "pair_style kim"_pair_kim.html command which is a wrapper on the +Knowledge Base for Interatomic Models (KIM) repository of interatomic +potentials, enabling any of them to be used in LAMMPS simulations. + +To use this package you must have the KIM library available on your +system. + +Information about the KIM project can be found at its website: +https://openkim.org. The KIM project is led by Ellad Tadmor and Ryan +Elliott (U Minnesota) and James Sethna (Cornell U). + +[Authors:] Ryan Elliott (U Minnesota) is the main developer for the KIM +API which the "pair_style kim"_pair_kim.html command uses. He +developed the pair style in collaboration with Valeriu Smirichinski (U +Minnesota). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/KIM: filenames -> commands +src/KIM/README +lib/kim/README +"pair_style kim"_pair_kim.html +examples/kim :ul + +:line + +KOKKOS package :link(PKG-KOKKOS),h4 + +[Contents:] + +Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute +styles adapted to compile using the Kokkos library which can convert +them to OpenMP or CUDA code so that they run efficiently on multicore +CPUs, KNLs, or GPUs. All the styles have a "kk" as a suffix in their +style name. The "Speed kokkos"_Speed_kokkos.html doc page gives +details of what hardware and software is required on your system, and +how to build and use this package. Its styles can be invoked at run +time via the "-sf kk" or "-suffix kk" "command-line +switches"_Run_options.html. Also see the "GPU"_#PKG-GPU, "OPT"_#PKG-OPT, +"USER-INTEL"_#PKG-USER-INTEL, and "USER-OMP"_#PKG-USER-OMP packages, which +have styles optimized for CPUs, KNLs, and GPUs. + +You must have a C++11 compatible compiler to use this package. +KOKKOS makes extensive use of advanced C++ features, which can +expose compiler bugs, especially when compiling for maximum +performance at high optimization levels. Please see the file +lib/kokkos/README for a list of compilers and their respective +platforms, that are known to work. + +[Authors:] The KOKKOS package was created primarily by Christian Trott +and Stan Moore (Sandia), with contributions from other folks as well. +It uses the open-source "Kokkos library"_https://github.com/kokkos +which was developed by Carter Edwards, Christian Trott, and others at +Sandia, and which is included in the LAMMPS distribution in +lib/kokkos. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/KOKKOS: filenames -> commands +src/KOKKOS/README +lib/kokkos/README +"Speed packages"_Speed_packages.html +"Speed kokkos"_Speed_kokkos.html +"Section 2.6 -k on ..."_Run_options.html +"Section 2.6 -sf kk"_Run_options.html +"Section 2.6 -pk kokkos"_Run_options.html +"package kokkos"_package.html +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (k) +"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul + +:line + +KSPACE package :link(PKG-KSPACE),h4 + +[Contents:] + +A variety of long-range Coulombic solvers, as well as pair styles +which compute the corresponding short-range pairwise Coulombic +interactions. These include Ewald, particle-particle particle-mesh +(PPPM), and multilevel summation method (MSM) solvers. + +[Install:] + +Building with this package requires a 1d FFT library be present on +your system for use by the PPPM solvers. This can be the KISS FFT +library provided with LAMMPS, 3rd party libraries like FFTW, or a +vendor-supplied FFT library. See the "Build +settings"_Build_settings.html doc page for details on how to select +different FFT options for your LAMPMS build. + +[Supporting info:] + +src/KSPACE: filenames -> commands +"kspace_style"_kspace_style.html +"doc/PDF/kspace.pdf"_PDF/kspace.pdf +"Howto tip3p"_Howto_tip3p.html +"Howto tip4p"_Howto_tip4p.html +"Howto spc"_Howto_spc.html +"pair_style coul"_pair_coul.html +"Commands pair"_Commands_pair.html page for styles with "long" or "msm" in name +examples/peptide +bench/in.rhodo :ul + +:line + +LATTE package :link(PKG-LATTE),h4 + +[Contents:] + +A fix command which wraps the LATTE DFTB code, so that molecular +dynamics can be run with LAMMPS using density-functional tight-binding +quantum forces calculated by LATTE. + +More information on LATTE can be found at this web site: +"https://github.com/lanl/LATTE"_latte_home. A brief technical +description is given with the "fix latte"_fix_latte.html command. + +:link(latte_home,https://github.com/lanl/LATTE) + +[Authors:] Christian Negre (LANL) and Steve Plimpton (Sandia). LATTE +itself is developed at Los Alamos National Laboratory by Marc +Cawkwell, Anders Niklasson, and Christian Negre. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/LATTE: filenames -> commands +src/LATTE/README +lib/latte/README +"fix latte"_fix_latte.html +examples/latte +"LAMMPS-LATTE tutorial"_https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS :ul + +:line + +MANYBODY package :link(PKG-MANYBODY),h4 + +[Contents:] + +A variety of manybody and bond-order potentials. These include +(AI)REBO, BOP, EAM, EIM, Stillinger-Weber, and Tersoff potentials. + +[Supporting info:] + +src/MANYBODY: filenames -> commands +"Commands pair"_Commands_pair.html page +examples/comb +examples/eim +examples/nb3d +examples/shear +examples/streitz +examples/vashishta +bench/in.eam :ul + +:line + +MC package :link(PKG-MC),h4 + +[Contents:] + +Several fixes and a pair style that have Monte Carlo (MC) or MC-like +attributes. These include fixes for creating, breaking, and swapping +bonds, for performing atomic swaps, and performing grand-canonical MC +(GCMC) in conjuction with dynamics. + +[Supporting info:] + +src/MC: filenames -> commands +"fix atom/swap"_fix_atom_swap.html +"fix bond/break"_fix_bond_break.html +"fix bond/create"_fix_bond_create.html +"fix bond/swap"_fix_bond_swap.html +"fix gcmc"_fix_gcmc.html +"pair_style dsmc"_pair_dsmc.html +http://lammps.sandia.gov/movies.html#gcmc :ul + +:line + +MEAM package :link(PKG-MEAM),h4 + +[Contents:] + +A pair style for the modified embedded atom (MEAM) potential. + +Please note that the use of the MEAM package is discouraged as +it has been superseded by the "USER-MEAMC"_#PKG-USER-MEAMC package, +which is a direct translation of the MEAM package to C++. +USER-MEAMC contains additional optimizations making it run faster +than MEAM on most machines, while providing the identical features +and user interface. + +[Author:] Greg Wagner (Northwestern U) while at Sandia. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +NOTE: You should test building the MEAM library with both the Intel +and GNU compilers to see if a simulation runs faster with one versus +the other on your system. + +[Supporting info:] + +src/MEAM: filenames -> commands +src/meam/README +lib/meam/README +"pair_style meam"_pair_meam.html +examples/meam :ul + +:line + +MISC package :link(PKG-MISC),h4 + +[Contents:] + +A variety of compute, fix, pair, dump styles with specialized +capabilities that don't align with other packages. Do a directory +listing, "ls src/MISC", to see the list of commands. + +NOTE: the MISC package contains styles that require using the +-restrict flag, when compiling with Intel compilers. + +[Supporting info:] + +src/MISC: filenames -> commands +"compute ti"_compute_ti.html +"fix evaporate"_fix_evaporate.html +"fix orient/fcc"_fix_orient.html +"fix ttm"_fix_ttm.html +"fix thermal/conductivity"_fix_thermal_conductivity.html +"fix viscosity"_fix_viscosity.html +examples/KAPPA +examples/VISCOSITY +http://lammps.sandia.gov/pictures.html#ttm +http://lammps.sandia.gov/movies.html#evaporation :ul + +:line + +MOLECULE package :link(PKG-MOLECULE),h4 + +[Contents:] + +A large number of atom, pair, bond, angle, dihedral, improper styles +that are used to model molecular systems with fixed covalent bonds. +The pair styles include the Dreiding (hydrogen-bonding) and CHARMM +force fields, and a TIP4P water model. + +[Supporting info:] + +src/MOLECULE: filenames -> commands +"atom_style"_atom_style.html +"bond_style"_bond_style.html +"angle_style"_angle_style.html +"dihedral_style"_dihedral_style.html +"improper_style"_improper_style.html +"pair_style hbond/dreiding/lj"_pair_hbond_dreiding.html +"pair_style lj/charmm/coul/charmm"_pair_charmm.html +"Howto bioFF"_Howto_bioFF.html +examples/cmap +examples/dreiding +examples/micelle, +examples/peptide +bench/in.chain +bench/in.rhodo :ul + +:line + +MPIIO package :link(PKG-MPIIO),h4 + +[Contents:] + +Support for parallel output/input of dump and restart files via the +MPIIO library. It adds "dump styles"_dump.html with a "mpiio" in +their style name. Restart files with an ".mpiio" suffix are also +written and read in parallel. + +[Supporting info:] + +src/MPIIO: filenames -> commands +"dump"_dump.html +"restart"_restart.html +"write_restart"_write_restart.html +"read_restart"_read_restart.html :ul + +:line + +MSCG package :link(PKG-mscg),h4 + +[Contents:] + +A "fix mscg"_fix_mscg.html command which can parameterize a +Multi-Scale Coarse-Graining (MSCG) model using the open-source "MS-CG +library"_mscg_home. + +:link(mscg_home,https://github.com/uchicago-voth/MSCG-release) + +To use this package you must have the MS-CG library available on your +system. + +[Authors:] The fix was written by Lauren Abbott (Sandia). The MS-CG +library was developed by Jacob Wagner in Greg Voth's group at the +University of Chicago. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/MSCG: filenames -> commands +src/MSCG/README +lib/mscg/README +examples/mscg :ul + +:line + +OPT package :link(PKG-OPT),h4 + +[Contents:] + +A handful of pair styles which are optimized for improved CPU +performance on single or multiple cores. These include EAM, LJ, +CHARMM, and Morse potentials. The styles have an "opt" suffix in +their style name. The "Speed opt"_Speed_opt.html doc page gives +details of how to build and use this package. Its styles can be +invoked at run time via the "-sf opt" or "-suffix opt" "command-line +switches"_Run_options.html. See also the "KOKKOS"_#PKG-KOKKOS, +"USER-INTEL"_#PKG-USER-INTEL, and "USER-OMP"_#PKG-USER-OMP packages, which +have styles optimized for CPU performance. + +[Authors:] James Fischer (High Performance Technologies), David Richie, +and Vincent Natoli (Stone Ridge Technolgy). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/OPT: filenames -> commands +"Speed packages"_Speed_packages.html +"Speed opt"_Speed_opt.html +"Section 2.6 -sf opt"_Run_options.html +"Commands pair"_Commands_pair.html for styles followed by (t) +"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul + +:line + +PERI package :link(PKG-PERI),h4 + +[Contents:] + +An atom style, several pair styles which implement different +Peridynamics materials models, and several computes which calculate +diagnostics. Peridynamics is a a particle-based meshless continuum +model. + +[Authors:] The original package was created by Mike Parks (Sandia). +Additional Peridynamics models were added by Rezwanur Rahman and John +Foster (UTSA). + +[Supporting info:] + +src/PERI: filenames -> commands +"doc/PDF/PDLammps_overview.pdf"_PDF/PDLammps_overview.pdf +"doc/PDF/PDLammps_EPS.pdf"_PDF/PDLammps_EPS.pdf +"doc/PDF/PDLammps_VES.pdf"_PDF/PDLammps_VES.pdf +"atom_style peri"_atom_style.html +"pair_style peri/*"_pair_peri.html +"compute damage/atom"_compute_damage_atom.html +"compute plasticity/atom"_compute_plasticity_atom.html +examples/peri +http://lammps.sandia.gov/movies.html#peri :ul + +:line + +POEMS package :link(PKG-POEMS),h4 + +[Contents:] + +A fix that wraps the Parallelizable Open source Efficient Multibody +Software (POEMS) library, which is able to simulate the dynamics of +articulated body systems. These are systems with multiple rigid +bodies (collections of particles) whose motion is coupled by +connections at hinge points. + +[Author:] Rudra Mukherjee (JPL) while at RPI. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/POEMS: filenames -> commands +src/POEMS/README +lib/poems/README +"fix poems"_fix_poems.html +examples/rigid :ul + +:line + +PYTHON package :link(PKG-PYTHON),h4 + +[Contents:] + +A "python"_python.html command which allow you to execute Python code +from a LAMMPS input script. The code can be in a separate file or +embedded in the input script itself. See the "Python +call"_Python_call.html doc page for an overview of using Python from +LAMMPS in this manner and all the "Python"_Python_head.html doc pages +for other ways to use LAMMPS and Python together. + +NOTE: Building with the PYTHON package assumes you have a Python +shared library available on your system, which needs to be a Python 2 +version, 2.6 or later. Python 3 is not yet supported. See the +lib/python/README for more details. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/PYTHON: filenames -> commands +"Python call"_Python_head.html +lib/python/README +examples/python :ul + +:line + +QEQ package :link(PKG-QEQ),h4 + +[Contents:] + +Several fixes for performing charge equilibration (QEq) via different +algorithms. These can be used with pair styles that perform QEq as +part of their formulation. + +[Supporting info:] + +src/QEQ: filenames -> commands +"fix qeq/*"_fix_qeq.html +examples/qeq +examples/streitz :ul + +:line + +REAX package :link(PKG-REAX),h4 + +[Contents:] + +NOTE: the use of the REAX package is discouraged, as it is no longer +maintained. Please use the "USER-REAXC"_#PKG-USER-REAXC package instead, +and possibly the KOKKOS enabled variant of that, which has a more robust +memory management. + +A pair style which wraps a Fortran library which implements the ReaxFF +potential, which is a universal reactive force field. Also included is +a "fix reax/bonds"_fix_reax_bonds.html command for monitoring molecules +as bonds are created and destroyed. + +[Author:] Aidan Thompson (Sandia). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/REAX: filenames -> commands +lib/reax/README +"pair_style reax"_pair_reax.html +"fix reax/bonds"_fix_reax_bonds.html +examples/reax :ul + +:line + +REPLICA package :link(PKG-REPLICA2),h4 + +[Contents:] + +A collection of multi-replica methods which can be used when running +multiple LAMMPS simulations (replicas). See the "Howto +replica"_Howto_replica.html doc page for an overview of how to run +multi-replica simulations in LAMMPS. Methods in the package include +nudged elastic band (NEB), parallel replica dynamics (PRD), +temperature accelerated dynamics (TAD), parallel tempering, and a +verlet/split algorithm for performing long-range Coulombics on one set +of processors, and the remainder of the force field calcalation on +another set. + +[Supporting info:] + +src/REPLICA: filenames -> commands +"Howto replica"_Howto_replica.html +"neb"_neb.html +"prd"_prd.html +"tad"_tad.html +"temper"_temper.html, +"run_style verlet/split"_run_style.html +examples/neb +examples/prd +examples/tad :ul + +:line + +RIGID package :link(PKG-RIGID),h4 + +[Contents:] + +Fixes which enforce rigid constraints on collections of atoms or +particles. This includes SHAKE and RATTLE, as well as varous +rigid-body integrators for a few large bodies or many small bodies. +Also several computes which calculate properties of rigid bodies. + +[Supporting info:] + +src/RIGID: filenames -> commands +"compute erotate/rigid"_compute_erotate_rigid.html +fix shake"_fix_shake.html +"fix rattle"_fix_shake.html +"fix rigid/*"_fix_rigid.html +examples/ASPHERE +examples/rigid +bench/in.rhodo +http://lammps.sandia.gov/movies.html#box +http://lammps.sandia.gov/movies.html#star :ul + +:line + +SHOCK package :link(PKG-SHOCK),h4 + +[Contents:] + +Fixes for running impact simulations where a shock-wave passes through +a material. + +[Supporting info:] + +src/SHOCK: filenames -> commands +"fix append/atoms"_fix_append_atoms.html +"fix msst"_fix_msst.html +"fix nphug"_fix_nphug.html +"fix wall/piston"_fix_wall_piston.html +examples/hugoniostat +examples/msst :ul + +:line + +SNAP package :link(PKG-SNAP),h4 + +[Contents:] + +A pair style for the spectral neighbor analysis potential (SNAP). +SNAP is methodology for deriving a highly accurate classical potential +fit to a large archive of quantum mechanical (DFT) data. Also several +computes which analyze attributes of the potential. + +[Author:] Aidan Thompson (Sandia). + +[Supporting info:] + +src/SNAP: filenames -> commands +"pair_style snap"_pair_snap.html +"compute sna/atom"_compute_sna_atom.html +"compute snad/atom"_compute_sna_atom.html +"compute snav/atom"_compute_sna_atom.html +examples/snap :ul + +:line + +SPIN package :link(PKG-SPIN),h4 + +[Contents:] + +Model atomic magnetic spins classically, coupled to atoms moving in +the usual manner via MD. Various pair, fix, and compute styles. + +[Author:] Julian Tranchida (Sandia). + +[Supporting info:] + +src/SPIN: filenames -> commands +"Howto spins"_Howto_spins.html +"pair_style spin/dmi"_pair_spin_dmi.html +"pair_style spin/exchange"_pair_spin_exchange.html +"pair_style spin/magelec"_pair_spin_magelec.html +"pair_style spin/neel"_pair_spin_neel.html +"fix nve/spin"_fix_nve_spin.html +"fix precession/spin"_fix_precession_spin.html +"compute spin"_compute_spin.html +examples/SPIN :ul + +:line + +SRD package :link(PKG-SRD),h4 + +[Contents:] + +A pair of fixes which implement the Stochastic Rotation Dynamics (SRD) +method for coarse-graining of a solvent, typically around large +colloidal particles. + +[Supporting info:] + +src/SRD: filenames -> commands +"fix srd"_fix_srd.html +"fix wall/srd"_fix_wall_srd.html +examples/srd +examples/ASPHERE +http://lammps.sandia.gov/movies.html#tri +http://lammps.sandia.gov/movies.html#line +http://lammps.sandia.gov/movies.html#poly :ul + +:line + +VORONOI package :link(PKG-VORONOI),h4 + +[Contents:] + +A compute command which calculates the Voronoi tesselation of a +collection of atoms by wrapping the "Voro++ library"_voro_home. This +can be used to calculate the local volume or each atoms or its near +neighbors. + +:link(voro_home,http://math.lbl.gov/voro++) + +To use this package you must have the Voro++ library available on your +system. + +[Author:] Daniel Schwen (INL) while at LANL. The open-source Voro++ +library was written by Chris Rycroft (Harvard U) while at UC Berkeley +and LBNL. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/VORONOI: filenames -> commands +src/VORONOI/README +lib/voronoi/README +"compute voronoi/atom"_compute_voronoi_atom.html +examples/voronoi :ul + +:line + +USER-ATC package :link(PKG-USER-ATC),h4 + +[Contents:] + +ATC stands for atoms-to-continuum. This package implements a "fix +atc"_fix_atc.html command to either couple molecular dynamics with +continuum finite element equations or perform on-the-fly conversion of +atomic information to continuum fields. + +[Authors:] Reese Jones, Jeremy Templeton, Jon Zimmerman (Sandia). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-ATC: filenames -> commands +src/USER-ATC/README +"fix atc"_fix_atc.html +examples/USER/atc +http://lammps.sandia.gov/pictures.html#atc :ul + +:line + +USER-AWPMD package :link(PKG-USER-AWPMD),h4 + +[Contents:] + +AWPMD stands for Antisymmetrized Wave Packet Molecular Dynamics. This +package implements an atom, pair, and fix style which allows electrons +to be treated as explicit particles in a classical molecular dynamics +model. + +[Author:] Ilya Valuev (JIHT, Russia). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-AWPMD: filenames -> commands +src/USER-AWPMD/README +"pair_style awpmd/cut"_pair_awpmd.html +examples/USER/awpmd :ul + +:line + +USER-BOCS package :link(PKG-USER-BOCS),h4 + +[Contents:] + +This package provides "fix bocs"_fix_bocs.html, a modified version +of "fix npt"_fix_nh.html which includes the pressure correction to +the barostat as outlined in: + +N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that +accurately describe the structure, pressure, and compressibility of +molecular liquids," J. Chem. Phys. 143, 243148 (2015). + +[Authors:] Nicholas J. H. Dunn and Michael R. DeLyser (The +Pennsylvania State University) + +[Supporting info:] + +The USER-BOCS user package for LAMMPS is part of the BOCS software package: +"https://github.com/noid-group/BOCS"_https://github.com/noid-group/BOCS + +See the following reference for information about the entire package: + +Dunn, NJH; Lebold, KM; DeLyser, MR; Rudzinski, JF; Noid, WG. +"BOCS: Bottom-Up Open-Source Coarse-Graining Software." +J. Phys. Chem. B. 122, 13, 3363-3377 (2018). + +Example inputs are in the examples/USER/bocs folder. + +:line + +USER-CGDNA package :link(PKG-USER-CGDNA),h4 + +[Contents:] + +Several pair styles, a bond style, and integration fixes for +coarse-grained models of single- and double-stranded DNA based on the +oxDNA model of Doye, Louis and Ouldridge at the University of Oxford. +This includes Langevin-type rigid-body integrators with improved +stability. + +[Author:] Oliver Henrich (University of Strathclyde, Glasgow). + +[Supporting info:] + +src/USER-CGDNA: filenames -> commands +/src/USER-CGDNA/README +"pair_style oxdna/*"_pair_oxdna.html +"pair_style oxdna2/*"_pair_oxdna2.html +"bond_style oxdna/*"_bond_oxdna.html +"bond_style oxdna2/*"_bond_oxdna.html +"fix nve/dotc/langevin"_fix_nve_dotc_langevin.html :ul + +:line + +USER-CGSDK package :link(PKG-USER-CGSDK),h4 + +[Contents:] + +Several pair styles and an angle style which implement the +coarse-grained SDK model of Shinoda, DeVane, and Klein which enables +simulation of ionic liquids, electrolytes, lipids and charged amino +acids. + +[Author:] Axel Kohlmeyer (Temple U). + +[Supporting info:] + +src/USER-CGSDK: filenames -> commands +src/USER-CGSDK/README +"pair_style lj/sdk/*"_pair_sdk.html +"angle_style sdk"_angle_sdk.html +examples/USER/cgsdk +http://lammps.sandia.gov/pictures.html#cg :ul + +:line + +USER-COLVARS package :link(PKG-USER-COLVARS),h4 + +[Contents:] + +COLVARS stands for collective variables, which can be used to +implement various enhanced sampling methods, including Adaptive +Biasing Force, Metadynamics, Steered MD, Umbrella Sampling and +Restraints. A "fix colvars"_fix_colvars.html command is implemented +which wraps a COLVARS library, which implements these methods. +simulations. + +[Authors:] The COLVARS library is written and maintained by +Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA) +and Jerome Henin (LISM, CNRS, Marseille, France), originally for +the NAMD MD code, but with portability in mind. Axel Kohlmeyer +(Temple U) provided the interface to LAMMPS. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-COLVARS: filenames -> commands +"doc/PDF/colvars-refman-lammps.pdf"_PDF/colvars-refman-lammps.pdf +src/USER-COLVARS/README +lib/colvars/README +"fix colvars"_fix_colvars.html +examples/USER/colvars :ul + +:line + +USER-DIFFRACTION package :link(PKG-USER-DIFFRACTION),h4 + +[Contents:] + +Two computes and a fix for calculating x-ray and electron diffraction +intensities based on kinematic diffraction theory. + +[Author:] Shawn Coleman while at the U Arkansas. + +[Supporting info:] + +src/USER-DIFFRACTION: filenames -> commands +"compute saed"_compute_saed.html +"compute xrd"_compute_xrd.html +"fix saed/vtk"_fix_saed_vtk.html +examples/USER/diffraction :ul + +:line + +USER-DPD package :link(PKG-USER-DPD),h4 + +[Contents:] + +DPD stands for dissipative particle dynamics. This package implements +coarse-grained DPD-based models for energetic, reactive molecular +crystalline materials. It includes many pair styles specific to these +systems, including for reactive DPD, where each particle has internal +state for multiple species and a coupled set of chemical reaction ODEs +are integrated each timestep. Highly accurate time integrators for +isothermal, isoenergetic, isobaric and isenthalpic conditions are +included. These enable long timesteps via the Shardlow splitting +algorithm. + +[Authors:] Jim Larentzos (ARL), Tim Mattox (Engility Corp), and and John +Brennan (ARL). + +[Supporting info:] + +src/USER-DPD: filenames -> commands +/src/USER-DPD/README +"compute dpd"_compute_dpd.html +"compute dpd/atom"_compute_dpd_atom.html +"fix eos/cv"_fix_eos_table.html +"fix eos/table"_fix_eos_table.html +"fix eos/table/rx"_fix_eos_table_rx.html +"fix shardlow"_fix_shardlow.html +"fix rx"_fix_rx.html +"pair_style table/rx"_pair_table_rx.html +"pair_style dpd/fdt"_pair_dpd_fdt.html +"pair_style dpd/fdt/energy"_pair_dpd_fdt.html +"pair_style exp6/rx"_pair_exp6_rx.html +"pair_style multi/lucy"_pair_multi_lucy.html +"pair_style multi/lucy/rx"_pair_multi_lucy_rx.html +examples/USER/dpd :ul + +:line + +USER-DRUDE package :link(PKG-USER-DRUDE),h4 + +[Contents:] + +Fixes, pair styles, and a compute to simulate thermalized Drude +oscillators as a model of polarization. See the "Howto +drude"_Howto_drude.html and "Howto drude2"_Howto_drude2.html doc pages +for an overview of how to use the package. There are auxiliary tools +for using this package in tools/drude. + +[Authors:] Alain Dequidt (U Blaise Pascal Clermont-Ferrand), Julien +Devemy (CNRS), and Agilio Padua (U Blaise Pascal). + +[Supporting info:] + +src/USER-DRUDE: filenames -> commands +"Howto drude"_Howto_drude.html +"Howto drude2"_Howto_drude2.html +"Howto polarizable"_Howto_polarizable.html +src/USER-DRUDE/README +"fix drude"_fix_drude.html +"fix drude/transform/*"_fix_drude_transform.html +"compute temp/drude"_compute_temp_drude.html +"pair_style thole"_pair_thole.html +"pair_style lj/cut/thole/long"_pair_thole.html +examples/USER/drude +tools/drude :ul + +:line + +USER-EFF package :link(PKG-USER-EFF),h4 + +[Contents:] + +EFF stands for electron force field which allows a classical MD code +to model electrons as particles of variable radius. This package +contains atom, pair, fix and compute styles which implement the eFF as +described in A. Jaramillo-Botero, J. Su, Q. An, and W.A. Goddard III, +JCC, 2010. The eFF potential was first introduced by Su and Goddard, +in 2007. There are auxiliary tools for using this package in +tools/eff; see its README file. + +[Author:] Andres Jaramillo-Botero (CalTech). + +[Supporting info:] + +src/USER-EFF: filenames -> commands +src/USER-EFF/README +"atom_style electron"_atom_style.html +"fix nve/eff"_fix_nve_eff.html +"fix nvt/eff"_fix_nh_eff.html +"fix npt/eff"_fix_nh_eff.html +"fix langevin/eff"_fix_langevin_eff.html +"compute temp/eff"_compute_temp_eff.html +"pair_style eff/cut"_pair_eff.html +"pair_style eff/inline"_pair_eff.html +examples/USER/eff +tools/eff/README +tools/eff +http://lammps.sandia.gov/movies.html#eff :ul + +:line + +USER-FEP package :link(PKG-USER-FEP),h4 + +[Contents:] + +FEP stands for free energy perturbation. This package provides +methods for performing FEP simulations by using a "fix +adapt/fep"_fix_adapt_fep.html command with soft-core pair potentials, +which have a "soft" in their style name. There are auxiliary tools +for using this package in tools/fep; see its README file. + +[Author:] Agilio Padua (Universite Blaise Pascal Clermont-Ferrand) + +[Supporting info:] + +src/USER-FEP: filenames -> commands +src/USER-FEP/README +"fix adapt/fep"_fix_adapt_fep.html +"compute fep"_compute_fep.html +"pair_style */soft"_pair_lj_soft.html +examples/USER/fep +tools/fep/README +tools/fep :ul + +:line + +USER-H5MD package :link(PKG-USER-H5MD),h4 + +[Contents:] + +H5MD stands for HDF5 for MD. "HDF5"_HDF5 is a portable, binary, +self-describing file format, used by many scientific simulations. +H5MD is a format for molecular simulations, built on top of HDF5. +This package implements a "dump h5md"_dump_h5md.html command to output +LAMMPS snapshots in this format. + +:link(HDF5,http://www.hdfgroup.org/HDF5) + +To use this package you must have the HDF5 library available on your +system. + +[Author:] Pierre de Buyl (KU Leuven) created both the package and the +H5MD format. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-H5MD: filenames -> commands +src/USER-H5MD/README +lib/h5md/README +"dump h5md"_dump_h5md.html :ul + +:line + +USER-INTEL package :link(PKG-USER-INTEL),h4 + +[Contents:] + +Dozens of pair, fix, bond, angle, dihedral, improper, and kspace +styles which are optimized for Intel CPUs and KNLs (Knights Landing). +All of them have an "intel" in their style name. The "Speed +intel"_Speed_intel.html doc page gives details of what hardware and +compilers are required on your system, and how to build and use this +package. Its styles can be invoked at run time via the "-sf intel" or +"-suffix intel" "command-line switches"_Run_options.html. Also see +the "KOKKOS"_#PKG-KOKKOS, "OPT"_#PKG-OPT, and "USER-OMP"_#PKG-USER-OMP packages, +which have styles optimized for CPUs and KNLs. + +You need to have an Intel compiler, version 14 or higher to take full +advantage of this package. While compilation with GNU compilers is +supported, performance will be suboptimal. + +NOTE: the USER-INTEL package contains styles that require using the +-restrict flag, when compiling with Intel compilers. + +[Author:] Mike Brown (Intel). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-INTEL: filenames -> commands +src/USER-INTEL/README +"Speed packages"_Speed_packages.html +"Speed intel"_Speed_intel.html +"Section 2.6 -sf intel"_Run_options.html +"Section 2.6 -pk intel"_Run_options.html +"package intel"_package.html +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (i) +src/USER-INTEL/TEST +"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul + +:line + +USER-LB package :link(PKG-USER-LB),h4 + +[Contents:] + +Fixes which implement a background Lattice-Boltzmann (LB) fluid, which +can be used to model MD particles influenced by hydrodynamic forces. + +[Authors:] Frances Mackay and Colin Denniston (University of Western +Ontario). + +[Supporting info:] + +src/USER-LB: filenames -> commands +src/USER-LB/README +"fix lb/fluid"_fix_lb_fluid.html +"fix lb/momentum"_fix_lb_momentum.html +"fix lb/viscous"_fix_lb_viscous.html +examples/USER/lb :ul + +:line + +USER-MGPT package :link(PKG-USER-MGPT),h4 + +[Contents:] + +A pair style which provides a fast implementation of the quantum-based +MGPT multi-ion potentials. The MGPT or model GPT method derives from +first-principles DFT-based generalized pseudopotential theory (GPT) +through a series of systematic approximations valid for mid-period +transition metals with nearly half-filled d bands. The MGPT method +was originally developed by John Moriarty at LLNL. The pair style in +this package calculates forces and energies using an optimized +matrix-MGPT algorithm due to Tomas Oppelstrup at LLNL. + +[Authors:] Tomas Oppelstrup and John Moriarty (LLNL). + +[Supporting info:] + +src/USER-MGPT: filenames -> commands +src/USER-MGPT/README +"pair_style mgpt"_pair_mgpt.html +examples/USER/mgpt :ul + +:line + +USER-MISC package :link(PKG-USER-MISC),h4 + +[Contents:] + +A potpourri of (mostly) unrelated features contributed to LAMMPS by +users. Each feature is a single fix, compute, pair, bond, angle, +dihedral, improper, or command style. + +[Authors:] The author for each style in the package is listed in the +src/USER-MISC/README file. + +[Supporting info:] + +src/USER-MISC: filenames -> commands +src/USER-MISC/README +one doc page per individual command listed in src/USER-MISC/README +examples/USER/misc :ul + +:line + +USER-MANIFOLD package :link(PKG-USER-MANIFOLD),h4 + +[Contents:] + +Several fixes and a "manifold" class which enable simulations of +particles constrained to a manifold (a 2D surface within the 3D +simulation box). This is done by applying the RATTLE constraint +algorithm to formulate single-particle constraint functions +g(xi,yi,zi) = 0 and their derivative (i.e. the normal of the manifold) +n = grad(g). + +[Author:] Stefan Paquay (until 2017: Eindhoven University of +Technology (TU/e), The Netherlands; since 2017: Brandeis University, +Waltham, MA, USA) + +[Supporting info:] + +src/USER-MANIFOLD: filenames -> commands +src/USER-MANIFOLD/README +"Howto manifold"_Howto_manifold.html +"fix manifoldforce"_fix_manifoldforce.html +"fix nve/manifold/rattle"_fix_nve_manifold_rattle.html +"fix nvt/manifold/rattle"_fix_nvt_manifold_rattle.html +examples/USER/manifold +http://lammps.sandia.gov/movies.html#manifold :ul + +:line + +USER-MEAMC package :link(PKG-USER-MEAMC),h4 + +[Contents:] + +A pair style for the modified embedded atom (MEAM) potential +translated from the Fortran version in the "MEAM"_MEAM package +to plain C++. In contrast to the MEAM package, no library +needs to be compiled and the pair style can be instantiated +multiple times. + +[Author:] Sebastian Huetter, (Otto-von-Guericke University Magdeburg) +based on the Fortran version of Greg Wagner (Northwestern U) while at +Sandia. + +[Supporting info:] + +src/USER-MEAMC: filenames -> commands +src/USER-MEAMC/README +"pair_style meam/c"_pair_meam.html +examples/meam :ul + +:line + +USER-MESO package :link(PKG-USER-MESO),h4 + +[Contents:] + +Several extensions of the the dissipative particle dynamics (DPD) +method. Specifically, energy-conserving DPD (eDPD) that can model +non-isothermal processes, many-body DPD (mDPD) for simulating +vapor-liquid coexistence, and transport DPD (tDPD) for modeling +advection-diffusion-reaction systems. The equations of motion of these +DPD extensions are integrated through a modified velocity-Verlet (MVV) +algorithm. + +[Author:] Zhen Li (Division of Applied Mathematics, Brown University) + +[Supporting info:] + +src/USER-MESO: filenames -> commands +src/USER-MESO/README +"atom_style edpd"_atom_style.html +"pair_style edpd"_pair_meso.html +"pair_style mdpd"_pair_meso.html +"pair_style tdpd"_pair_meso.html +"fix mvv/dpd"_fix_mvv_dpd.html +examples/USER/meso +http://lammps.sandia.gov/movies.html#mesodpd :ul + +:line + +USER-MOFFF package :link(PKG-USER-MOFFF),h4 + +[Contents:] + +Pair, angle and improper styles needed to employ the MOF-FF +force field by Schmid and coworkers with LAMMPS. +MOF-FF is a first principles derived force field with the primary aim +to simulate MOFs and related porous framework materials, using spherical +Gaussian charges. It is described in S. Bureekaew et al., Phys. Stat. Sol. B +2013, 250, 1128-1141. +For the usage of MOF-FF see the example in the example directory as +well as the "MOF+"_MOFplus website. + +:link(MOFplus,https://www.mofplus.org/content/show/MOF-FF) + +[Author:] Hendrik Heenen (Technical U of Munich), +Rochus Schmid (Ruhr-University Bochum). + +[Supporting info:] + +src/USER-MOFFF: filenames -> commands +src/USER-MOFFF/README +"pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html +"angle_style class2"_angle_class2.html +"angle_style cosine/buck6d"_angle_cosine_buck6d.html +"improper_style inversion/harmonic"_improper_inversion_harmonic.html +examples/USER/mofff :ul + +:line + +USER-MOLFILE package :link(PKG-USER-MOLFILE),h4 + +[Contents:] + +A "dump molfile"_dump_molfile.html command which uses molfile plugins +that are bundled with the "VMD"_vmd_home +molecular visualization and analysis program, to enable LAMMPS to dump +snapshots in formats compatible with various molecular simulation +tools. + +:link(vmd_home,http://www.ks.uiuc.edu/Research/vmd) + +To use this package you must have the desired VMD plugins available on +your system. + +Note that this package only provides the interface code, not the +plugins themselves, which will be accessed when requesting a specific +plugin via the "dump molfile"_dump_molfile.html command. Plugins can +be obtained from a VMD installation which has to match the platform +that you are using to compile LAMMPS for. By adding plugins to VMD, +support for new file formats can be added to LAMMPS (or VMD or other +programs that use them) without having to recompile the application +itself. More information about the VMD molfile plugins can be found +at +"http://www.ks.uiuc.edu/Research/vmd/plugins/molfile"_http://www.ks.uiuc.edu/Research/vmd/plugins/molfile. + +[Author:] Axel Kohlmeyer (Temple U). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-MOLFILE: filenames -> commands +src/USER-MOLFILE/README +lib/molfile/README +"dump molfile"_dump_molfile.html :ul + +:line + +USER-NETCDF package :link(PKG-USER-NETCDF),h4 + +[Contents:] + +Dump styles for writing NetCDF formatted dump files. NetCDF is a +portable, binary, self-describing file format developed on top of +HDF5. The file contents follow the AMBER NetCDF trajectory conventions +(http://ambermd.org/netcdf/nctraj.xhtml), but include extensions. + +To use this package you must have the NetCDF library available on your +system. + +Note that NetCDF files can be directly visualized with the following +tools: + +"Ovito"_ovito (Ovito supports the AMBER convention and the extensions mentioned above) +"VMD"_vmd_home +"AtomEye"_atomeye (the libAtoms version of AtomEye contains a NetCDF reader not present in the standard distribution) :ul + +:link(ovito,http://www.ovito.org) +:link(atomeye,http://www.libatoms.org) + +[Author:] Lars Pastewka (Karlsruhe Institute of Technology). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-NETCDF: filenames -> commands +src/USER-NETCDF/README +lib/netcdf/README +"dump netcdf"_dump_netcdf.html :ul + +:line + +USER-OMP package :link(PKG-USER-OMP),h4 + +[Contents:] + +Hundreds of pair, fix, compute, bond, angle, dihedral, improper, and +kspace styles which are altered to enable threading on many-core CPUs +via OpenMP directives. All of them have an "omp" in their style name. +The "Speed omp"_Speed_omp.html doc page gives details of what hardware +and compilers are required on your system, and how to build and use +this package. Its styles can be invoked at run time via the "-sf omp" +or "-suffix omp" "command-line switches"_Run_options.html. Also see +the "KOKKOS"_#PKG-KOKKOS, "OPT"_#PKG-OPT, and "USER-INTEL"_#PKG-USER-INTEL +packages, which have styles optimized for CPUs. + +[Author:] Axel Kohlmeyer (Temple U). + +NOTE: To enable multi-threading support the compile flag "-fopenmp" +and the link flag "-fopenmp" (for GNU compilers, you have to look up +the equivalent flags for other compilers) must be used to build LAMMPS. +When using Intel compilers, also the "-restrict" flag is required. +The USER-OMP package can be compiled without enabling OpenMP; then +all code will be compiled as serial and the only improvement over the +regular styles are some data access optimization. These flags should +be added to the CCFLAGS and LINKFLAGS lines of your Makefile.machine. +See src/MAKE/OPTIONS/Makefile.omp for an example. + +Once you have an appropriate Makefile.machine, you can +install/un-install the package and build LAMMPS in the usual manner: + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-OMP: filenames -> commands +src/USER-OMP/README +"Speed packages"_Speed_packages.html +"Speed omp"_Speed_omp.html +"Section 2.6 -sf omp"_Run_options.html +"Section 2.6 -pk omp"_Run_options.html +"package omp"_package.html +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (o) +"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul + +:line + +USER-PHONON package :link(PKG-USER-PHONON),h4 + +[Contents:] + +A "fix phonon"_fix_phonon.html command that calculates dynamical +matrices, which can then be used to compute phonon dispersion +relations, directly from molecular dynamics simulations. + +[Author:] Ling-Ti Kong (Shanghai Jiao Tong University). + +[Supporting info:] + +src/USER-PHONON: filenames -> commands +src/USER-PHONON/README +"fix phonon"_fix_phonon.html +examples/USER/phonon :ul + +:line + +USER-QMMM package :link(PKG-USER-QMMM),h4 + +[Contents:] + +A "fix qmmm"_fix_qmmm.html command which allows LAMMPS to be used in a +QM/MM simulation, currently only in combination with the "Quantum +ESPRESSO"_espresso package. + +:link(espresso,http://www.quantum-espresso.org) + +To use this package you must have Quantum ESPRESSO available on your +system. + +The current implementation only supports an ONIOM style mechanical +coupling to the Quantum ESPRESSO plane wave DFT package. +Electrostatic coupling is in preparation and the interface has been +written in a manner that coupling to other QM codes should be possible +without changes to LAMMPS itself. + +[Author:] Axel Kohlmeyer (Temple U). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-QMMM: filenames -> commands +src/USER-QMMM/README +lib/qmmm/README +"fix phonon"_fix_phonon.html +lib/qmmm/example-ec/README +lib/qmmm/example-mc/README :ul + +:line + +USER-QTB package :link(PKG-USER-QTB),h4 + +[Contents:] + +Two fixes which provide a self-consistent quantum treatment of +vibrational modes in a classical molecular dynamics simulation. By +coupling the MD simulation to a colored thermostat, it introduces zero +point energy into the system, altering the energy power spectrum and +the heat capacity to account for their quantum nature. This is useful +when modeling systems at temperatures lower than their classical +limits or when temperatures ramp across the classical limits in a +simulation. + +[Author:] Yuan Shen (Stanford U). + +[Supporting info:] + +src/USER-QTB: filenames -> commands +src/USER-QTB/README +"fix qtb"_fix_qtb.html +"fix qbmsst"_fix_qbmsst.html +examples/USER/qtb :ul + +:line + +USER-QUIP package :link(PKG-USER-QUIP),h4 + +[Contents:] + +A "pair_style quip"_pair_quip.html command which wraps the "QUIP +libAtoms library"_quip, which includes a variety of interatomic +potentials, including Gaussian Approximation Potential (GAP) models +developed by the Cambridge University group. + +:link(quip,https://github.com/libAtoms/QUIP) + +To use this package you must have the QUIP libAtoms library available +on your system. + +[Author:] Albert Bartok (Cambridge University) + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-QUIP: filenames -> commands +src/USER-QUIP/README +"pair_style quip"_pair_quip.html +examples/USER/quip :ul + +:line + +USER-REAXC package :link(PKG-USER-REAXC),h4 + +[Contents:] + +A pair style which implements the ReaxFF potential in C/C++ (in +contrast to the "REAX package"_#PKG-REAX and its Fortran library). ReaxFF +is universal reactive force field. See the src/USER-REAXC/README file +for more info on differences between the two packages. Also two fixes +for monitoring molecules as bonds are created and destroyed. + +[Author:] Hasan Metin Aktulga (MSU) while at Purdue University. + +[Supporting info:] + +src/USER-REAXC: filenames -> commands +src/USER-REAXC/README +"pair_style reax/c"_pair_reaxc.html +"fix reax/c/bonds"_fix_reax_bonds.html +"fix reax/c/species"_fix_reaxc_species.html +examples/reax :ul + +:line + +USER-SMD package :link(PKG-USER-SMD),h4 + +[Contents:] + +An atom style, fixes, computes, and several pair styles which +implements smoothed Mach dynamics (SMD) for solids, which is a model +related to smoothed particle hydrodynamics (SPH) for liquids (see the +"USER-SPH package"_#PKG-USER-SPH). + +This package solves solids mechanics problems via a state of the art +stabilized meshless method with hourglass control. It can specify +hydrostatic interactions independently from material strength models, +i.e. pressure and deviatoric stresses are separated. It provides many +material models (Johnson-Cook, plasticity with hardening, +Mie-Grueneisen, Polynomial EOS) and allows new material models to be +added. It implements rigid boundary conditions (walls) which can be +specified as surface geometries from *.STL files. + +[Author:] Georg Ganzenmuller (Fraunhofer-Institute for High-Speed +Dynamics, Ernst Mach Institute, Germany). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-SMD: filenames -> commands +src/USER-SMD/README +doc/PDF/SMD_LAMMPS_userguide.pdf +examples/USER/smd +http://lammps.sandia.gov/movies.html#smd :ul + +:line + +USER-SMTBQ package :link(PKG-USER-SMTBQ),h4 + +[Contents:] + +A pair style which implements a Second Moment Tight Binding model with +QEq charge equilibration (SMTBQ) potential for the description of +ionocovalent bonds in oxides. + +[Authors:] Nicolas Salles, Emile Maras, Olivier Politano, and Robert +Tetot (LAAS-CNRS, France). + +[Supporting info:] + +src/USER-SMTBQ: filenames -> commands +src/USER-SMTBQ/README +"pair_style smtbq"_pair_smtbq.html +examples/USER/smtbq :ul + +:line + +USER-SPH package :link(PKG-USER-SPH),h4 + +[Contents:] + +An atom style, fixes, computes, and several pair styles which +implements smoothed particle hydrodynamics (SPH) for liquids. See the +related "USER-SMD package"_#PKG-USER-SMD package for smooth Mach dynamics +(SMD) for solids. + +This package contains ideal gas, Lennard-Jones equation of states, +Tait, and full support for complete (i.e. internal-energy dependent) +equations of state. It allows for plain or Monaghans XSPH integration +of the equations of motion. It has options for density continuity or +density summation to propagate the density field. It has +"set"_set.html command options to set the internal energy and density +of particles from the input script and allows the same quantities to +be output with thermodynamic output or to dump files via the "compute +property/atom"_compute_property_atom.html command. + +[Author:] Georg Ganzenmuller (Fraunhofer-Institute for High-Speed +Dynamics, Ernst Mach Institute, Germany). + +[Supporting info:] + +src/USER-SPH: filenames -> commands +src/USER-SPH/README +doc/PDF/SPH_LAMMPS_userguide.pdf +examples/USER/sph +http://lammps.sandia.gov/movies.html#sph :ul + +:line + +USER-TALLY package :link(PKG-USER-TALLY),h4 + +[Contents:] + +Several compute styles that can be called when pairwise interactions +are calculated to tally information (forces, heat flux, energy, +stress, etc) about individual interactions. + +[Author:] Axel Kohlmeyer (Temple U). + +[Supporting info:] + +src/USER-TALLY: filenames -> commands +src/USER-TALLY/README +"compute */tally"_compute_tally.html +examples/USER/tally :ul + +:line + +USER-UEF package :link(PKG-USER-UEF),h4 + +[Contents:] + +A fix style for the integration of the equations of motion under +extensional flow with proper boundary conditions, as well as several +supporting compute styles and an output option. + +[Author:] David Nicholson (MIT). + +[Supporting info:] + +src/USER-UEF: filenames -> commands +src/USER-UEF/README +"fix nvt/uef"_fix_nh_uef.html +"fix npt/uef"_fix_nh_uef.html +"compute pressure/uef"_compute_pressure_uef.html +"compute temp/uef"_compute_temp_uef.html +"dump cfg/uef"_dump_cfg_uef.html +examples/uef :ul + +:line + +USER-VTK package :link(PKG-USER-VTK),h4 + +[Contents:] + +A "dump vtk"_dump_vtk.html command which outputs snapshot info in the +"VTK format"_vtk, enabling visualization by "Paraview"_paraview or +other visualization packages. + +:link(vtk,http://www.vtk.org) +:link(paraview,http://www.paraview.org) + +To use this package you must have VTK library available on your +system. + +[Authors:] Richard Berger (JKU) and Daniel Queteschiner (DCS Computing). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-VTK: filenames -> commands +src/USER-VTK/README +lib/vtk/README +"dump vtk"_dump_vtk.html :ul diff --git a/doc/src/Speed_kokkos.txt b/doc/src/Speed_kokkos.txt new file mode 100644 index 0000000000..eb787df5d6 --- /dev/null +++ b/doc/src/Speed_kokkos.txt @@ -0,0 +1,381 @@ +"Higher level section"_Speed.html - "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 + +KOKKOS package :h3 + +Kokkos is a templated C++ library that provides abstractions to allow +a single implementation of an application kernel (e.g. a pair style) +to run efficiently on different kinds of hardware, such as GPUs, Intel +Xeon Phis, or many-core CPUs. Kokkos maps the C++ kernel onto +different backend languages such as CUDA, OpenMP, or Pthreads. The +Kokkos library also provides data abstractions to adjust (at compile +time) the memory layout of data structures like 2d and 3d arrays to +optimize performance on different hardware. For more information on +Kokkos, see "Github"_https://github.com/kokkos/kokkos. Kokkos is part +of "Trilinos"_http://trilinos.sandia.gov/packages/kokkos. The Kokkos +library was written primarily by Carter Edwards, Christian Trott, and +Dan Sunderland (all Sandia). + +The LAMMPS KOKKOS package contains versions of pair, fix, and atom +styles that use data structures and macros provided by the Kokkos +library, which is included with LAMMPS in /lib/kokkos. The KOKKOS +package was developed primarily by Christian Trott (Sandia) and Stan +Moore (Sandia) with contributions of various styles by others, +including Sikandar Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez +(Sandia). For more information on developing using Kokkos abstractions +see the Kokkos programmers' guide at /lib/kokkos/doc/Kokkos_PG.pdf. + +Kokkos currently provides support for 3 modes of execution (per MPI +task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP +(threading for many-core CPUs and Intel Phi), and CUDA (for NVIDIA +GPUs). You choose the mode at build time to produce an executable +compatible with specific hardware. + +NOTE: Kokkos support within LAMMPS must be built with a C++11 compatible +compiler. This means GCC version 4.7.2 or later, Intel 14.0.4 or later, or +Clang 3.5.2 or later is required. + +NOTE: To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA +software version 7.5 or later must be installed on your system. See +the discussion for the "GPU package"_Speed_gpu.html for details of how +to check and do this. + +NOTE: Kokkos with CUDA currently implicitly assumes, that the MPI +library is CUDA-aware and has support for GPU-direct. This is not +always the case, especially when using pre-compiled MPI libraries +provided by a Linux distribution. This is not a problem when using +only a single GPU and a single MPI rank on a desktop. When running +with multiple MPI ranks, you may see segmentation faults without +GPU-direct support. These can be avoided by adding the flags "-pk +kokkos gpu/direct off"_Run_options.html to the LAMMPS command line or +by using the command "package kokkos gpu/direct off"_package.html in +the input file. + +[Building LAMMPS with the KOKKOS package:] + +See the "Build extras"_Build_extras.html#kokkos doc page for instructions. + +[Running LAMMPS with the KOKKOS package:] + +All Kokkos operations occur within the context of an individual MPI +task running on a single node of the machine. The total number of MPI +tasks used by LAMMPS (one or multiple per compute node) is set in the +usual manner via the mpirun or mpiexec commands, and is independent of +Kokkos. E.g. the mpirun command in OpenMPI does this via its -np and +-npernode switches. Ditto for MPICH via -np and -ppn. + +[Running on a multi-core CPU:] + +Here is a quick overview of how to use the KOKKOS package +for CPU acceleration, assuming one or more 16-core nodes. + +mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -in in.lj # 1 node, 16 MPI tasks/node, no multi-threading +mpirun -np 2 -ppn 1 lmp_kokkos_omp -k on t 16 -sf kk -in in.lj # 2 nodes, 1 MPI task/node, 16 threads/task +mpirun -np 2 lmp_kokkos_omp -k on t 8 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 8 threads/task +mpirun -np 32 -ppn 4 lmp_kokkos_omp -k on t 4 -sf kk -in in.lj # 8 nodes, 4 MPI tasks/node, 4 threads/task :pre + +To run using the KOKKOS package, use the "-k on", "-sf kk" and "-pk +kokkos" "command-line switches"_Run_options.html in your mpirun +command. You must use the "-k on" "command-line +switch"_Run_options.html to enable the KOKKOS package. It takes +additional arguments for hardware settings appropriate to your system. +For OpenMP use: + +-k on t Nt :pre + +The "t Nt" option specifies how many OpenMP threads per MPI task to +use with a node. The default is Nt = 1, which is MPI-only mode. Note +that the product of MPI tasks * OpenMP threads/task should not exceed +the physical number of cores (on a node), otherwise performance will +suffer. If hyperthreading is enabled, then the product of MPI tasks * +OpenMP threads/task should not exceed the physical number of cores * +hardware threads. The "-k on" switch also issues a "package kokkos" +command (with no additional arguments) which sets various KOKKOS +options to default values, as discussed on the "package"_package.html +command doc page. + +The "-sf kk" "command-line switch"_Run_options.html will automatically +append the "/kk" suffix to styles that support it. In this manner no +modification to the input script is needed. Alternatively, one can run +with the KOKKOS package by editing the input script as described +below. + +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both +pairwise and bonded interactions. However, when running on CPUs, it +will typically be faster to use "half" neighbor lists and set the +Newton flag to "on", just as is the case for non-accelerated pair +styles. It can also be faster to use non-threaded communication. Use +the "-pk kokkos" "command-line switch"_Run_options.html to change the +default "package kokkos"_package.html options. See its doc page for +details and default settings. Experimenting with its options can +provide a speed-up for specific calculations. For example: + +mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -pk kokkos newton on neigh half comm no -in in.lj # Newton on, Half neighbor list, non-threaded comm :pre + +If the "newton"_newton.html command is used in the input +script, it can also override the Newton flag defaults. + +[Core and Thread Affinity:] + +When using multi-threading, it is important for performance to bind +both MPI tasks to physical cores, and threads to physical cores, so +they do not migrate during a simulation. + +If you are not certain MPI tasks are being bound (check the defaults +for your MPI installation), binding can be forced with these flags: + +OpenMPI 1.8: mpirun -np 2 --bind-to socket --map-by socket ./lmp_openmpi ... +Mvapich2 2.0: mpiexec -np 2 --bind-to socket --map-by socket ./lmp_mvapich ... :pre + +For binding threads with KOKKOS OpenMP, use thread affinity +environment variables to force binding. With OpenMP 3.1 (gcc 4.7 or +later, intel 12 or later) setting the environment variable +OMP_PROC_BIND=true should be sufficient. In general, for best +performance with OpenMP 4.0 or better set OMP_PROC_BIND=spread and +OMP_PLACES=threads. For binding threads with the KOKKOS pthreads +option, compile LAMMPS the KOKKOS HWLOC=yes option as described below. + +[Running on Knight's Landing (KNL) Intel Xeon Phi:] + +Here is a quick overview of how to use the KOKKOS package for the +Intel Knight's Landing (KNL) Xeon Phi: + +KNL Intel Phi chips have 68 physical cores. Typically 1 to 4 cores are +reserved for the OS, and only 64 or 66 cores are used. Each core has 4 +hyperthreads,so there are effectively N = 256 (4*64) or N = 264 (4*66) +cores to run on. The product of MPI tasks * OpenMP threads/task should +not exceed this limit, otherwise performance will suffer. Note that +with the KOKKOS package you do not need to specify how many KNLs there +are per node; each KNL is simply treated as running some number of MPI +tasks. + +Examples of mpirun commands that follow these rules are shown below. + +Intel KNL node with 68 cores (272 threads/node via 4x hardware threading): +mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -in in.lj # 1 node, 64 MPI tasks/node, 4 threads/task +mpirun -np 66 lmp_kokkos_phi -k on t 4 -sf kk -in in.lj # 1 node, 66 MPI tasks/node, 4 threads/task +mpirun -np 32 lmp_kokkos_phi -k on t 8 -sf kk -in in.lj # 1 node, 32 MPI tasks/node, 8 threads/task +mpirun -np 512 -ppn 64 lmp_kokkos_phi -k on t 4 -sf kk -in in.lj # 8 nodes, 64 MPI tasks/node, 4 threads/task :pre + +The -np setting of the mpirun command sets the number of MPI +tasks/node. The "-k on t Nt" command-line switch sets the number of +threads/task as Nt. The product of these two values should be N, i.e. +256 or 264. + +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both +pairwise and bonded interactions. When running on KNL, this will +typically be best for pair-wise potentials. For manybody potentials, +using "half" neighbor lists and setting the Newton flag to "on" may be +faster. It can also be faster to use non-threaded communication. Use +the "-pk kokkos" "command-line switch"_Run_options.html to change the +default "package kokkos"_package.html options. See its doc page for +details and default settings. Experimenting with its options can +provide a speed-up for specific calculations. For example: + +mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos comm no -in in.lj # Newton off, full neighbor list, non-threaded comm +mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos newton on neigh half comm no -in in.reax # Newton on, half neighbor list, non-threaded comm :pre + +NOTE: MPI tasks and threads should be bound to cores as described +above for CPUs. + +NOTE: To build with Kokkos support for Intel Xeon Phi coprocessors +such as Knight's Corner (KNC), your system must be configured to use +them in "native" mode, not "offload" mode like the USER-INTEL package +supports. + +[Running on GPUs:] + +Use the "-k" "command-line switch"_Run_options.html to +specify the number of GPUs per node. Typically the -np setting of the +mpirun command should set the number of MPI tasks/node to be equal to +the number of physical GPUs on the node. You can assign multiple MPI +tasks to the same GPU with the KOKKOS package, but this is usually +only faster if significant portions of the input script have not +been ported to use Kokkos. Using CUDA MPS is recommended in this +scenario. Using a CUDA-aware MPI library with support for GPU-direct +is highly recommended. GPU-direct use can be avoided by using +"-pk kokkos gpu/direct no"_package.html. +As above for multi-core CPUs (and no GPU), if N is the number of +physical cores/node, then the number of MPI tasks/node should not +exceed N. + +-k on g Ng :pre + +Here are examples of how to use the KOKKOS package for GPUs, assuming +one or more nodes, each with two GPUs: + +mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 2 GPUs/node +mpirun -np 32 -ppn 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 16 nodes, 2 MPI tasks/node, 2 GPUs/node (32 GPUs total) :pre + +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both +pairwise and bonded interactions, along with threaded communication. +When running on Maxwell or Kepler GPUs, this will typically be +best. For Pascal GPUs, using "half" neighbor lists and setting the +Newton flag to "on" may be faster. For many pair styles, setting the +neighbor binsize equal to the ghost atom cutoff will give speedup. +Use the "-pk kokkos" "command-line switch"_Run_options.html to change +the default "package kokkos"_package.html options. See its doc page +for details and default settings. Experimenting with its options can +provide a speed-up for specific calculations. For example: + +mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos binsize 2.8 -in in.lj # Set binsize = neighbor ghost cutoff +mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighborlist, set binsize = neighbor ghost cutoff :pre + +NOTE: For good performance of the KOKKOS package on GPUs, you must +have Kepler generation GPUs (or later). The Kokkos library exploits +texture cache options not supported by Telsa generation GPUs (or +older). + +NOTE: When using a GPU, you will achieve the best performance if your +input script does not use fix or compute styles which are not yet +Kokkos-enabled. This allows data to stay on the GPU for multiple +timesteps, without being copied back to the host CPU. Invoking a +non-Kokkos fix or compute, or performing I/O for +"thermo"_thermo_style.html or "dump"_dump.html output will cause data +to be copied back to the CPU incurring a performance penalty. + +NOTE: To get an accurate timing breakdown between time spend in pair, +kspace, etc., you must set the environment variable CUDA_LAUNCH_BLOCKING=1. +However, this will reduce performance and is not recommended for production runs. + +[Run with the KOKKOS package by editing an input script:] + +Alternatively the effect of the "-sf" or "-pk" switches can be +duplicated by adding the "package kokkos"_package.html or "suffix +kk"_suffix.html commands to your input script. + +The discussion above for building LAMMPS with the KOKKOS package, the +mpirun/mpiexec command, and setting appropriate thread are the same. + +You must still use the "-k on" "command-line switch"_Run_options.html +to enable the KOKKOS package, and specify its additional arguments for +hardware options appropriate to your system, as documented above. + +You can use the "suffix kk"_suffix.html command, or you can explicitly add a +"kk" suffix to individual styles in your input script, e.g. + +pair_style lj/cut/kk 2.5 :pre + +You only need to use the "package kokkos"_package.html command if you +wish to change any of its option defaults, as set by the "-k on" +"command-line switch"_Run_options.html. + +[Using OpenMP threading and CUDA together (experimental):] + +With the KOKKOS package, both OpenMP multi-threading and GPUs can be +used together in a few special cases. In the Makefile, the +KOKKOS_DEVICES variable must include both "Cuda" and "OpenMP", as is +the case for /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi + +KOKKOS_DEVICES=Cuda,OpenMP :pre + +The suffix "/kk" is equivalent to "/kk/device", and for Kokkos CUDA, +using the "-sf kk" in the command line gives the default CUDA version +everywhere. However, if the "/kk/host" suffix is added to a specific +style in the input script, the Kokkos OpenMP (CPU) version of that +specific style will be used instead. Set the number of OpenMP threads +as "t Nt" and the number of GPUs as "g Ng" + +-k on t Nt g Ng :pre + +For example, the command to run with 1 GPU and 8 OpenMP threads is then: + +mpiexec -np 1 lmp_kokkos_cuda_openmpi -in in.lj -k on g 1 t 8 -sf kk :pre + +Conversely, if the "-sf kk/host" is used in the command line and then +the "/kk" or "/kk/device" suffix is added to a specific style in your +input script, then only that specific style will run on the GPU while +everything else will run on the CPU in OpenMP mode. Note that the +execution of the CPU and GPU styles will NOT overlap, except for a +special case: + +A kspace style and/or molecular topology (bonds, angles, etc.) running +on the host CPU can overlap with a pair style running on the +GPU. First compile with "--default-stream per-thread" added to CCFLAGS +in the Kokkos CUDA Makefile. Then explicitly use the "/kk/host" +suffix for kspace and bonds, angles, etc. in the input file and the +"kk" suffix (equal to "kk/device") on the command line. Also make +sure the environment variable CUDA_LAUNCH_BLOCKING is not set to "1" +so CPU/GPU overlap can occur. + +[Speed-ups to expect:] + +The performance of KOKKOS running in different modes is a function of +your hardware, which KOKKOS-enable styles are used, and the problem +size. + +Generally speaking, the following rules of thumb apply: + +When running on CPUs only, with a single thread per MPI task, +performance of a KOKKOS style is somewhere between the standard +(un-accelerated) styles (MPI-only mode), and those provided by the +USER-OMP package. However the difference between all 3 is small (less +than 20%). :ulb,l + +When running on CPUs only, with multiple threads per MPI task, +performance of a KOKKOS style is a bit slower than the USER-OMP +package. :l + +When running large number of atoms per GPU, KOKKOS is typically faster +than the GPU package. :l + +When running on Intel hardware, KOKKOS is not as fast as +the USER-INTEL package, which is optimized for that hardware. :l +:ule + +See the "Benchmark page"_http://lammps.sandia.gov/bench.html of the +LAMMPS web site for performance of the KOKKOS package on different +hardware. + +[Advanced Kokkos options:] + +There are other allowed options when building with the KOKKOS package. +As explained on the "Build extras"_Build_extras.html#kokkos doc page, +they can be set either as variables on the make command line or in +Makefile.machine, or they can be specified as CMake variables. Each +takes a value shown below. The default value is listed, which is set +in the lib/kokkos/Makefile.kokkos file. + +KOKKOS_DEBUG, values = {yes}, {no}, default = {no} +KOKKOS_USE_TPLS, values = {hwloc}, {librt}, {experimental_memkind}, default = {none} +KOKKOS_CXX_STANDARD, values = {c++11}, {c++1z}, default = {c++11} +KOKKOS_OPTIONS, values = {aggressive_vectorization}, {disable_profiling}, default = {none} +KOKKOS_CUDA_OPTIONS, values = {force_uvm}, {use_ldg}, {rdc}, {enable_lambda}, default = {enable_lambda} :ul + +KOKKOS_USE_TPLS=hwloc binds threads to hardware cores, so they do not +migrate during a simulation. KOKKOS_USE_TPLS=hwloc should always be +used if running with KOKKOS_DEVICES=Pthreads for pthreads. It is not +necessary for KOKKOS_DEVICES=OpenMP for OpenMP, because OpenMP +provides alternative methods via environment variables for binding +threads to hardware cores. More info on binding threads to cores is +given on the "Speed omp"_Speed_omp.html doc page. + +KOKKOS_USE_TPLS=librt enables use of a more accurate timer mechanism +on most Unix platforms. This library is not available on all +platforms. + +KOKKOS_DEBUG is only useful when developing a Kokkos-enabled style +within LAMMPS. KOKKOS_DEBUG=yes enables printing of run-time +debugging information that can be useful. It also enables runtime +bounds checking on Kokkos data structures. + +KOKKOS_CXX_STANDARD and KOKKOS_OPTIONS are typically not changed when +building LAMMPS. + +KOKKOS_CUDA_OPTIONS are additional options for CUDA. The LAMMPS KOKKOS +package must be compiled with the {enable_lambda} option when using +GPUs. + +[Restrictions:] + +Currently, there are no precision options with the KOKKOS package. All +compilation and computation is performed in double precision. From 648d8c3d2ae418ef877938d295260b2c058b8b8b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 23 Aug 2018 10:15:17 -0400 Subject: [PATCH 582/675] adapt docs to refactored manual --- doc/src/pair_atm.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index c2718973ad..e59efe86ab 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -2,7 +2,7 @@ :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) -:link(lc,Section_commands.html#comm) +:link(lc,Commands_all.html) :line @@ -150,8 +150,8 @@ This pair style can only be used via the {pair} keyword of the [Restrictions:] This pair style is part of the MANYBODY package. It is only enabled -if LAMMPS was built with that package. See the "Making -LAMMPS"_Section_start.html#start_3 section for more info. +if LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. [Related commands:] From a04008cdfd5bd0f7212669b97fe7581eec771649 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 23 Aug 2018 10:27:40 -0400 Subject: [PATCH 583/675] fully integrate atm pair style into manual --- doc/src/Commands_pair.txt | 1 + doc/src/lammps.book | 1 + doc/src/pairs.txt | 1 + 3 files changed, 3 insertions(+) diff --git a/doc/src/Commands_pair.txt b/doc/src/Commands_pair.txt index eaf2720613..33890df1fe 100644 --- a/doc/src/Commands_pair.txt +++ b/doc/src/Commands_pair.txt @@ -33,6 +33,7 @@ OPT. "agni (o)"_pair_agni.html, "airebo (oi)"_pair_airebo.html, "airebo/morse (oi)"_pair_airebo.html, +"atm"_pair_atm.html, "awpmd/cut"_pair_awpmd.html, "beck (go)"_pair_beck.html, "body/nparticle"_pair_body_nparticle.html, diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 47d05570be..c296ff4039 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -524,6 +524,7 @@ pair_write.html pair_adp.html pair_agni.html pair_airebo.html +pair_atm.html pair_awpmd.html pair_beck.html pair_body_nparticle.html diff --git a/doc/src/pairs.txt b/doc/src/pairs.txt index 4c3eef2cd1..d535798482 100644 --- a/doc/src/pairs.txt +++ b/doc/src/pairs.txt @@ -8,6 +8,7 @@ Pair Styles :h1 pair_adp pair_agni pair_airebo + pair_atm pair_awpmd pair_beck pair_body_nparticle From 59d3af44f2fbe29f2848bd9ef9694818afead2a6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 23 Aug 2018 10:27:51 -0400 Subject: [PATCH 584/675] use c++ style system headers --- src/MANYBODY/pair_atm.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index e960398ab3..c23aa6560d 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -15,10 +15,10 @@ Contributing author: Sergey Lishchuk ------------------------------------------------------------------------- */ + +#include + #include "pair_atm.h" - -#include - #include "atom.h" #include "citeme.h" #include "comm.h" From dd923edf15e40dbff7840167653e24882a857934 Mon Sep 17 00:00:00 2001 From: Daniel Schwen Date: Thu, 23 Aug 2018 09:20:02 -0600 Subject: [PATCH 585/675] Fix unused parameters in memory.h (#1076) --- src/memory.h | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/memory.h b/src/memory.h index f2faecf6e1..20ea426f90 100644 --- a/src/memory.h +++ b/src/memory.h @@ -50,7 +50,7 @@ class Memory : protected Pointers { } template - TYPE **create(TYPE **&array, int n, const char *name) + TYPE **create(TYPE **& /*array*/, int /*n*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- @@ -68,7 +68,7 @@ class Memory : protected Pointers { } template - TYPE **grow(TYPE **&array, int n, const char *name) + TYPE **grow(TYPE **& /*array*/, int /*n*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- @@ -96,7 +96,7 @@ class Memory : protected Pointers { } template - TYPE **create1d_offset(TYPE **&array, int nlo, int nhi, const char *name) + TYPE **create1d_offset(TYPE **& /*array*/, int /*nlo*/, int /*nhi*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- @@ -131,7 +131,7 @@ class Memory : protected Pointers { } template - TYPE ***create(TYPE ***&array, int n1, int n2, const char *name) + TYPE ***create(TYPE ***& /*array*/, int /*n1*/, int /*n2*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- @@ -158,7 +158,7 @@ class Memory : protected Pointers { } template - TYPE ***grow(TYPE ***&array, int n1, int n2, const char *name) + TYPE ***grow(TYPE ***& /*array*/, int /*n1*/, int /*n2*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- @@ -198,7 +198,7 @@ class Memory : protected Pointers { } template - TYPE ***create_ragged(TYPE ***&array, int n1, int *n2, const char *name) + TYPE ***create_ragged(TYPE ***& /*array*/, int /*n1*/, int * /*n2*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- @@ -217,7 +217,7 @@ class Memory : protected Pointers { } template - TYPE ***create2d_offset(TYPE ***&array, int n1, int n2lo, int n2hi, + TYPE ***create2d_offset(TYPE ***& /*array*/, int /*n1*/, int /*n2lo*/, int /*n2hi*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- @@ -262,7 +262,7 @@ class Memory : protected Pointers { } template - TYPE ****create(TYPE ****&array, int n1, int n2, int n3, const char *name) + TYPE ****create(TYPE ****& /*array*/, int /*n1*/, int /*n2*/, int /*n3*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- @@ -297,7 +297,7 @@ class Memory : protected Pointers { } template - TYPE ****grow(TYPE ****&array, int n1, int n2, int n3, const char *name) + TYPE ****grow(TYPE ****& /*array*/, int /*n1*/, int /*n2*/, int /*n3*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- @@ -330,8 +330,8 @@ class Memory : protected Pointers { } template - TYPE ****create3d_offset(TYPE ****&array, int n1lo, int n1hi, - int n2, int n3, const char *name) + TYPE ****create3d_offset(TYPE ****& /*array*/, int /*n1lo*/, int /*n1hi*/, + int /*n2*/, int /*n3*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- @@ -374,8 +374,8 @@ class Memory : protected Pointers { } template - TYPE ****create3d_offset(TYPE ****&array, int n1lo, int n1hi, - int n2lo, int n2hi, int n3lo, int n3hi, + TYPE ****create3d_offset(TYPE ****& /*array*/, int /*n1lo*/, int /*n1hi*/, + int /*n2lo*/, int /*n2hi*/, int /*n3lo*/, int /*n3hi*/, const char *name) {fail(name); return NULL;} @@ -432,7 +432,7 @@ class Memory : protected Pointers { } template - TYPE *****create(TYPE *****&array, int n1, int n2, int n3, int n4, + TYPE *****create(TYPE *****& /*array*/, int /*n1*/, int /*n2*/, int /*n3*/, int /*n4*/, const char *name) {fail(name); return NULL;} @@ -478,8 +478,8 @@ class Memory : protected Pointers { } template - TYPE ****create4d_offset(TYPE *****&array, int n1, int n2lo, int n2hi, - int n3lo, int n3hi, int n4lo, int n4hi, + TYPE ****create4d_offset(TYPE *****& /*array*/, int /*n1*/, int /*n2lo*/, int /*n2hi*/, + int /*n3lo*/, int /*n3hi*/, int /*n4lo*/, int /*n4hi*/, const char *name) {fail(name); return NULL;} @@ -546,8 +546,8 @@ class Memory : protected Pointers { } template - TYPE ******create(TYPE ******&array, int n1, int n2, int n3, int n4, - int n5, const char *name) + TYPE ******create(TYPE ******& /*array*/, int /*n1*/, int /*n2*/, int /*n3*/, int /*n4*/, + int /*n5*/, const char *name) {fail(name); return NULL;} /* ---------------------------------------------------------------------- From 9388ed8cd088fab37f8512729274f1bcf7405328 Mon Sep 17 00:00:00 2001 From: Daniel Schwen Date: Thu, 23 Aug 2018 09:25:20 -0600 Subject: [PATCH 586/675] Add build files and clang-format config to gitignore (#1076) --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 50b970249a..1ce415678e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *~ *.o *.so +*.lo *.cu_o *.ptx *_ptx.h @@ -32,6 +33,7 @@ log.cite .Trashes ehthumbs.db Thumbs.db +.clang-format #cmake /build* From 2eeb8cecb2e658efa9adebe8db17e9634fcc743a Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Thu, 23 Aug 2018 10:08:31 -0600 Subject: [PATCH 587/675] removed left-over debug messages --- src/USER-SCAFACOS/scafacos.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/USER-SCAFACOS/scafacos.cpp b/src/USER-SCAFACOS/scafacos.cpp index 92d0612947..52bb0e46c4 100644 --- a/src/USER-SCAFACOS/scafacos.cpp +++ b/src/USER-SCAFACOS/scafacos.cpp @@ -126,10 +126,8 @@ void Scafacos::init() qqrd2e = force->qqrd2e; if (!initialized) { - printf("DEBUG: %p\n",&fcs); result = fcs_init((FCS*)&fcs,method,world); check_result((void*)&result); - printf("DEBUG: %p\n",&fcs); setup_handle(); From 7238d4af941078ba17d37bf572efc58ff6b5ef25 Mon Sep 17 00:00:00 2001 From: Daniel Schwen Date: Thu, 23 Aug 2018 10:08:23 -0600 Subject: [PATCH 588/675] Fix logic warnings (#1076) --- src/dump_custom.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 4c3950c099..17ad4b89ef 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -1023,12 +1023,12 @@ int DumpCustom::count() } else if (thresh_op[ithresh] == XOR) { if (lastflag) { for (i = 0; i < nlocal; i++, ptr += nstride) - if (choose[i] && (*ptr == 0.0 && values[i] == 0.0) || + if ((choose[i] && *ptr == 0.0 && values[i] == 0.0) || (*ptr != 0.0 && values[i] != 0.0)) choose[i] = 0; } else { for (i = 0; i < nlocal; i++, ptr += nstride) - if (choose[i] && (*ptr == 0.0 && value == 0.0) || + if ((choose[i] && *ptr == 0.0 && value == 0.0) || (*ptr != 0.0 && value != 0.0)) choose[i] = 0; } From e9bc93909817b29a37f32d20fcb96bfa720e30d0 Mon Sep 17 00:00:00 2001 From: Daniel Schwen Date: Thu, 23 Aug 2018 09:26:00 -0600 Subject: [PATCH 589/675] Fix more unused parameter warnings (#1076) --- src/accelerator_kokkos.h | 4 ++-- src/angle_zero.cpp | 2 +- src/atom.cpp | 4 ++-- src/atom_vec.cpp | 2 +- src/atom_vec_body.cpp | 3 +++ src/body.cpp | 2 +- src/bond_zero.cpp | 4 ++-- src/comm_brick.cpp | 4 ++-- src/comm_tiled.cpp | 12 ++++++------ src/compute_aggregate_atom.cpp | 4 ++-- src/compute_bond_local.cpp | 2 +- src/compute_centro_atom.cpp | 2 +- src/compute_cluster_atom.cpp | 4 ++-- src/compute_cna_atom.cpp | 2 +- src/compute_contact_atom.cpp | 2 +- src/compute_coord_atom.cpp | 4 ++-- src/compute_fragment_atom.cpp | 2 +- src/compute_group_group.cpp | 2 +- src/compute_hexorder_atom.cpp | 2 +- src/compute_orientorder_atom.cpp | 3 +-- src/compute_pair_local.cpp | 2 +- src/compute_property_local.cpp | 2 +- src/compute_rdf.cpp | 2 +- src/compute_temp_com.cpp | 4 ++-- src/compute_temp_deform.cpp | 4 ++-- src/compute_temp_partial.cpp | 10 +++++----- src/compute_temp_ramp.cpp | 4 ++-- src/compute_temp_region.cpp | 4 ++-- src/dihedral_zero.cpp | 5 ++--- src/domain.cpp | 2 +- src/dump.cpp | 2 +- src/dump_image.cpp | 2 +- src/dump_local.cpp | 2 +- src/fix.cpp | 2 +- src/fix_adapt.cpp | 4 ++-- src/fix_addforce.cpp | 2 +- src/fix_ave_atom.cpp | 4 ++-- src/fix_ave_chunk.cpp | 2 +- src/fix_ave_correlate.cpp | 2 +- src/fix_ave_histo.cpp | 2 +- src/fix_ave_time.cpp | 2 +- src/fix_aveforce.cpp | 4 ++-- src/fix_balance.cpp | 2 +- src/fix_drag.cpp | 4 ++-- src/fix_dt_reset.cpp | 2 +- src/fix_enforce2d.cpp | 4 ++-- src/fix_external.cpp | 4 ++-- src/fix_gravity.cpp | 4 ++-- src/fix_group.cpp | 6 +++--- src/fix_indent.cpp | 4 ++-- src/fix_langevin.cpp | 6 +++--- src/fix_lineforce.cpp | 4 ++-- src/fix_minimize.cpp | 2 +- src/fix_move.cpp | 10 +++++----- src/fix_neigh_history.cpp | 2 +- src/fix_nh.cpp | 8 ++++---- src/fix_nve.cpp | 6 +++--- src/fix_nve_limit.cpp | 6 +++--- src/fix_nve_noforce.cpp | 2 +- src/fix_nve_sphere.cpp | 2 +- src/fix_planeforce.cpp | 4 ++-- src/fix_press_berendsen.cpp | 2 +- src/fix_property_atom.cpp | 16 ++++++++-------- src/fix_read_restart.cpp | 2 +- src/fix_recenter.cpp | 4 ++-- src/fix_respa.cpp | 2 +- src/fix_restrain.cpp | 4 ++-- src/fix_setforce.cpp | 4 ++-- src/fix_spring.cpp | 4 ++-- src/fix_spring_chunk.cpp | 4 ++-- src/fix_spring_rg.cpp | 4 ++-- src/fix_spring_self.cpp | 8 ++++---- src/fix_store.cpp | 4 ++-- src/fix_store_force.cpp | 4 ++-- src/fix_store_state.cpp | 6 +++--- src/fix_tmd.cpp | 4 ++-- src/fix_vector.cpp | 2 +- src/fix_viscous.cpp | 4 ++-- src/fix_wall.cpp | 2 +- src/fix_wall_region.cpp | 2 +- src/group.cpp | 2 +- src/image.cpp | 4 ++-- src/imbalance_var.cpp | 2 +- src/improper_zero.cpp | 4 ++-- src/integrate.cpp | 2 +- src/kspace.cpp | 2 +- src/library.cpp | 2 +- src/math_extra.cpp | 2 +- src/neighbor.cpp | 2 +- src/pair.cpp | 2 +- src/pair_beck.cpp | 4 ++-- src/pair_born.cpp | 4 ++-- src/pair_buck.cpp | 4 ++-- src/pair_coul_cut.cpp | 4 ++-- src/pair_coul_debye.cpp | 4 ++-- src/pair_coul_dsf.cpp | 6 +++--- src/pair_coul_wolf.cpp | 6 +++--- src/pair_dpd.cpp | 4 ++-- src/pair_gauss.cpp | 4 ++-- src/pair_hybrid.cpp | 2 +- src/pair_lj96_cut.cpp | 4 ++-- src/pair_lj_cubic.cpp | 6 +++--- src/pair_lj_cut.cpp | 4 ++-- src/pair_lj_expand.cpp | 4 ++-- src/pair_lj_gromacs.cpp | 4 ++-- src/pair_lj_smooth.cpp | 4 ++-- src/pair_lj_smooth_linear.cpp | 4 ++-- src/pair_mie_cut.cpp | 4 ++-- src/pair_morse.cpp | 4 ++-- src/pair_soft.cpp | 4 ++-- src/pair_table.cpp | 4 ++-- src/pair_ufm.cpp | 4 ++-- src/pair_yukawa.cpp | 4 ++-- src/pair_zbl.cpp | 4 ++-- src/rcb.cpp | 4 ++-- src/reader_xyz.cpp | 4 ++-- src/region.cpp | 2 +- src/reset_ids.cpp | 2 +- src/respa.cpp | 2 +- src/variable.cpp | 2 +- src/velocity.cpp | 8 ++++---- 121 files changed, 224 insertions(+), 223 deletions(-) diff --git a/src/accelerator_kokkos.h b/src/accelerator_kokkos.h index 8bbb6c4788..e64bde24be 100644 --- a/src/accelerator_kokkos.h +++ b/src/accelerator_kokkos.h @@ -66,8 +66,8 @@ class AtomKokkos : public Atom { tagint **k_special; AtomKokkos(class LAMMPS *lmp) : Atom(lmp) {} ~AtomKokkos() {} - void sync(const ExecutionSpace space, unsigned int mask) {} - void modified(const ExecutionSpace space, unsigned int mask) {} + void sync(const ExecutionSpace /*space*/, unsigned int /*mask*/) {} + void modified(const ExecutionSpace /*space*/, unsigned int /*mask*/) {} }; class CommKokkos : public CommBrick { diff --git a/src/angle_zero.cpp b/src/angle_zero.cpp index e5191c4fb2..d7b7c9cdb5 100644 --- a/src/angle_zero.cpp +++ b/src/angle_zero.cpp @@ -148,7 +148,7 @@ void AngleZero::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double AngleZero::single(int type, int i1, int i2, int i3) +double AngleZero::single(int /*type*/, int /*i1*/, int /*i2*/, int /*i3*/) { return 0.0; } diff --git a/src/atom.cpp b/src/atom.cpp index cf4d20a71e..eb2f357890 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -99,7 +99,7 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp) // SPIN package sp = fm = NULL; - + // USER-DPD uCond = uMech = uChem = uCG = uCGnew = NULL; @@ -1516,7 +1516,7 @@ void Atom::set_mass(const char *file, int line, int itype, double value) called from reading of input script ------------------------------------------------------------------------- */ -void Atom::set_mass(const char *file, int line, int narg, char **arg) +void Atom::set_mass(const char *file, int line, int /*narg*/, char **arg) { if (mass == NULL) error->all(file,line,"Cannot set mass for this atom style"); diff --git a/src/atom_vec.cpp b/src/atom_vec.cpp index b04bfba34c..a7ca6fcb19 100644 --- a/src/atom_vec.cpp +++ b/src/atom_vec.cpp @@ -66,7 +66,7 @@ void AtomVec::store_args(int narg, char **arg) no additional args by default ------------------------------------------------------------------------- */ -void AtomVec::process_args(int narg, char **arg) +void AtomVec::process_args(int narg, char ** /*arg*/) { if (narg) error->all(FLERR,"Invalid atom_style command"); } diff --git a/src/atom_vec_body.cpp b/src/atom_vec_body.cpp index 4d3b5643ae..5a277627ee 100644 --- a/src/atom_vec_body.cpp +++ b/src/atom_vec_body.cpp @@ -82,6 +82,9 @@ AtomVecBody::~AtomVecBody() void AtomVecBody::process_args(int narg, char **arg) { + // suppress unused parameter warning dependent on style_body.h + (void)(arg); + if (narg < 1) error->all(FLERR,"Invalid atom_style body command"); if (0) bptr = NULL; diff --git a/src/body.cpp b/src/body.cpp index 42f4ccbdd3..78e2f5d71b 100644 --- a/src/body.cpp +++ b/src/body.cpp @@ -21,7 +21,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -Body::Body(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) +Body::Body(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) { int n = strlen(arg[0]) + 1; style = new char[n]; diff --git a/src/bond_zero.cpp b/src/bond_zero.cpp index 9fd9d4a580..9fcf300b21 100644 --- a/src/bond_zero.cpp +++ b/src/bond_zero.cpp @@ -149,8 +149,8 @@ void BondZero::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondZero::single(int type, double rsq, int i, int j, - double &fforce) +double BondZero::single(int /*type*/, double /*rsq*/, int /*i*/, int /*j*/, + double & /*fforce*/) { return 0.0; } diff --git a/src/comm_brick.cpp b/src/comm_brick.cpp index 3aa6d7748c..49c9db172f 100644 --- a/src/comm_brick.cpp +++ b/src/comm_brick.cpp @@ -88,7 +88,7 @@ CommBrick::~CommBrick() // The call to Comm::copy_arrays() then converts the shallow copy // into a deep copy of the class with the new layout. -CommBrick::CommBrick(LAMMPS *lmp, Comm *oldcomm) : Comm(*oldcomm) +CommBrick::CommBrick(LAMMPS * /*lmp*/, Comm *oldcomm) : Comm(*oldcomm) { if (oldcomm->layout == Comm::LAYOUT_TILED) error->all(FLERR,"Cannot change to comm_style brick from tiled layout"); @@ -457,7 +457,7 @@ int CommBrick::updown(int dim, int dir, int loc, other per-atom attributes may also be sent via pack/unpack routines ------------------------------------------------------------------------- */ -void CommBrick::forward_comm(int dummy) +void CommBrick::forward_comm(int /*dummy*/) { int n; MPI_Request request; diff --git a/src/comm_tiled.cpp b/src/comm_tiled.cpp index 584be94bf3..d7d2e4725d 100644 --- a/src/comm_tiled.cpp +++ b/src/comm_tiled.cpp @@ -55,7 +55,7 @@ CommTiled::CommTiled(LAMMPS *lmp) : Comm(lmp) // The call to Comm::copy_arrays() then converts the shallow copy // into a deep copy of the class with the new layout. -CommTiled::CommTiled(LAMMPS *lmp, Comm *oldcomm) : Comm(*oldcomm) +CommTiled::CommTiled(LAMMPS * /*lmp*/, Comm *oldcomm) : Comm(*oldcomm) { style = 1; layout = oldcomm->layout; @@ -438,7 +438,7 @@ void CommTiled::setup() other per-atom attributes may also be sent via pack/unpack routines ------------------------------------------------------------------------- */ -void CommTiled::forward_comm(int dummy) +void CommTiled::forward_comm(int /*dummy*/) { int i,irecv,n,nsend,nrecv; AtomVec *avec = atom->avec; @@ -1164,7 +1164,7 @@ void CommTiled::reverse_comm_fix(Fix *fix, int size) NOTE: how to setup one big buf recv with correct offsets ?? ------------------------------------------------------------------------- */ -void CommTiled::reverse_comm_fix_variable(Fix *fix) +void CommTiled::reverse_comm_fix_variable(Fix * /*fix*/) { error->all(FLERR,"Reverse comm fix variable not yet supported by CommTiled"); } @@ -1428,7 +1428,7 @@ void CommTiled::forward_comm_array(int nsize, double **array) NOTE: this method is currently not used ------------------------------------------------------------------------- */ -int CommTiled::exchange_variable(int n, double *inbuf, double *&outbuf) +int CommTiled::exchange_variable(int n, double * /*inbuf*/, double *& /*outbuf*/) { int nrecv = n; return nrecv; @@ -1509,7 +1509,7 @@ void CommTiled::box_drop_brick(int idim, double *lo, double *hi, int &indexme) no need to split lo/hi box as recurse b/c OK if box extends outside RCB box ------------------------------------------------------------------------- */ -void CommTiled::box_drop_tiled(int idim, double *lo, double *hi, int &indexme) +void CommTiled::box_drop_tiled(int /*idim*/, double *lo, double *hi, int &indexme) { box_drop_tiled_recurse(lo,hi,0,nprocs-1,indexme); } @@ -1601,7 +1601,7 @@ void CommTiled::box_other_brick(int idim, int idir, return other box owned by proc as lo/hi corner pts ------------------------------------------------------------------------- */ -void CommTiled::box_other_tiled(int idim, int idir, +void CommTiled::box_other_tiled(int /*idim*/, int /*idir*/, int proc, double *lo, double *hi) { double (*split)[2] = rcbinfo[proc].mysplit; diff --git a/src/compute_aggregate_atom.cpp b/src/compute_aggregate_atom.cpp index 56855fcc29..6c8c8e5d9a 100644 --- a/src/compute_aggregate_atom.cpp +++ b/src/compute_aggregate_atom.cpp @@ -98,7 +98,7 @@ void ComputeAggregateAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeAggregateAtom::init_list(int id, NeighList *ptr) +void ComputeAggregateAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -231,7 +231,7 @@ void ComputeAggregateAtom::compute_peratom() /* ---------------------------------------------------------------------- */ int ComputeAggregateAtom::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/compute_bond_local.cpp b/src/compute_bond_local.cpp index 985e3ef075..56abb9b071 100644 --- a/src/compute_bond_local.cpp +++ b/src/compute_bond_local.cpp @@ -337,7 +337,7 @@ int ComputeBondLocal::compute_bonds(int flag) /* ---------------------------------------------------------------------- */ int ComputeBondLocal::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/compute_centro_atom.cpp b/src/compute_centro_atom.cpp index 48af453635..5096879b32 100644 --- a/src/compute_centro_atom.cpp +++ b/src/compute_centro_atom.cpp @@ -110,7 +110,7 @@ void ComputeCentroAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeCentroAtom::init_list(int id, NeighList *ptr) +void ComputeCentroAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/compute_cluster_atom.cpp b/src/compute_cluster_atom.cpp index 85934c5e6d..0c34b42671 100644 --- a/src/compute_cluster_atom.cpp +++ b/src/compute_cluster_atom.cpp @@ -89,7 +89,7 @@ void ComputeClusterAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeClusterAtom::init_list(int id, NeighList *ptr) +void ComputeClusterAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -209,7 +209,7 @@ void ComputeClusterAtom::compute_peratom() /* ---------------------------------------------------------------------- */ int ComputeClusterAtom::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/compute_cna_atom.cpp b/src/compute_cna_atom.cpp index a1b97d9404..b8ad3f0f64 100644 --- a/src/compute_cna_atom.cpp +++ b/src/compute_cna_atom.cpp @@ -100,7 +100,7 @@ void ComputeCNAAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeCNAAtom::init_list(int id, NeighList *ptr) +void ComputeCNAAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/compute_contact_atom.cpp b/src/compute_contact_atom.cpp index f3c4513b01..e60a51832a 100644 --- a/src/compute_contact_atom.cpp +++ b/src/compute_contact_atom.cpp @@ -80,7 +80,7 @@ void ComputeContactAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeContactAtom::init_list(int id, NeighList *ptr) +void ComputeContactAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/compute_coord_atom.cpp b/src/compute_coord_atom.cpp index b86d818d06..33b318ea17 100644 --- a/src/compute_coord_atom.cpp +++ b/src/compute_coord_atom.cpp @@ -153,7 +153,7 @@ void ComputeCoordAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeCoordAtom::init_list(int id, NeighList *ptr) +void ComputeCoordAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -311,7 +311,7 @@ void ComputeCoordAtom::compute_peratom() /* ---------------------------------------------------------------------- */ int ComputeCoordAtom::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int * /*pbc*/) { int i,m=0,j; for (i = 0; i < n; ++i) { diff --git a/src/compute_fragment_atom.cpp b/src/compute_fragment_atom.cpp index b9fb2331ec..bb273f3bdb 100644 --- a/src/compute_fragment_atom.cpp +++ b/src/compute_fragment_atom.cpp @@ -159,7 +159,7 @@ void ComputeFragmentAtom::compute_peratom() /* ---------------------------------------------------------------------- */ int ComputeFragmentAtom::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/compute_group_group.cpp b/src/compute_group_group.cpp index dc94db50f6..51f84b020d 100644 --- a/src/compute_group_group.cpp +++ b/src/compute_group_group.cpp @@ -173,7 +173,7 @@ void ComputeGroupGroup::init() /* ---------------------------------------------------------------------- */ -void ComputeGroupGroup::init_list(int id, NeighList *ptr) +void ComputeGroupGroup::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/compute_hexorder_atom.cpp b/src/compute_hexorder_atom.cpp index cb2946beba..6d17ae15bd 100644 --- a/src/compute_hexorder_atom.cpp +++ b/src/compute_hexorder_atom.cpp @@ -129,7 +129,7 @@ void ComputeHexOrderAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeHexOrderAtom::init_list(int id, NeighList *ptr) +void ComputeHexOrderAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/compute_orientorder_atom.cpp b/src/compute_orientorder_atom.cpp index f263fdfaed..8a0a525fdc 100644 --- a/src/compute_orientorder_atom.cpp +++ b/src/compute_orientorder_atom.cpp @@ -187,7 +187,7 @@ void ComputeOrientOrderAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeOrientOrderAtom::init_list(int id, NeighList *ptr) +void ComputeOrientOrderAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -542,4 +542,3 @@ double ComputeOrientOrderAtom::associated_legendre(int l, int m, double x) return p; } - diff --git a/src/compute_pair_local.cpp b/src/compute_pair_local.cpp index 3f1147ed27..e4cbabfd3d 100644 --- a/src/compute_pair_local.cpp +++ b/src/compute_pair_local.cpp @@ -139,7 +139,7 @@ void ComputePairLocal::init() /* ---------------------------------------------------------------------- */ -void ComputePairLocal::init_list(int id, NeighList *ptr) +void ComputePairLocal::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/compute_property_local.cpp b/src/compute_property_local.cpp index ad68459650..ddcf5913ca 100644 --- a/src/compute_property_local.cpp +++ b/src/compute_property_local.cpp @@ -308,7 +308,7 @@ void ComputePropertyLocal::init() /* ---------------------------------------------------------------------- */ -void ComputePropertyLocal::init_list(int id, NeighList *ptr) +void ComputePropertyLocal::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/compute_rdf.cpp b/src/compute_rdf.cpp index f2635c0948..0a0e8fb684 100644 --- a/src/compute_rdf.cpp +++ b/src/compute_rdf.cpp @@ -213,7 +213,7 @@ void ComputeRDF::init() /* ---------------------------------------------------------------------- */ -void ComputeRDF::init_list(int id, NeighList *ptr) +void ComputeRDF::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/compute_temp_com.cpp b/src/compute_temp_com.cpp index 35f4512ab2..f2ad40ea43 100644 --- a/src/compute_temp_com.cpp +++ b/src/compute_temp_com.cpp @@ -163,7 +163,7 @@ void ComputeTempCOM::compute_vector() remove velocity bias from atom I to leave thermal velocity ------------------------------------------------------------------------- */ -void ComputeTempCOM::remove_bias(int i, double *v) +void ComputeTempCOM::remove_bias(int /*i*/, double *v) { v[0] -= vbias[0]; v[1] -= vbias[1]; @@ -204,7 +204,7 @@ void ComputeTempCOM::remove_bias_all() assume remove_bias() was previously called ------------------------------------------------------------------------- */ -void ComputeTempCOM::restore_bias(int i, double *v) +void ComputeTempCOM::restore_bias(int /*i*/, double *v) { v[0] += vbias[0]; v[1] += vbias[1]; diff --git a/src/compute_temp_deform.cpp b/src/compute_temp_deform.cpp index 8729204e70..39780b5cf6 100644 --- a/src/compute_temp_deform.cpp +++ b/src/compute_temp_deform.cpp @@ -277,7 +277,7 @@ void ComputeTempDeform::remove_bias_all() assume remove_bias() was previously called ------------------------------------------------------------------------- */ -void ComputeTempDeform::restore_bias(int i, double *v) +void ComputeTempDeform::restore_bias(int /*i*/, double *v) { v[0] += vbias[0]; v[1] += vbias[1]; @@ -289,7 +289,7 @@ void ComputeTempDeform::restore_bias(int i, double *v) assume remove_bias_thr() was previously called with the same buffer b ------------------------------------------------------------------------- */ -void ComputeTempDeform::restore_bias_thr(int i, double *v, double *b) +void ComputeTempDeform::restore_bias_thr(int /*i*/, double *v, double *b) { v[0] += b[0]; v[1] += b[1]; diff --git a/src/compute_temp_partial.cpp b/src/compute_temp_partial.cpp index 4b87a2249e..4425aebdda 100644 --- a/src/compute_temp_partial.cpp +++ b/src/compute_temp_partial.cpp @@ -90,7 +90,7 @@ void ComputeTempPartial::dof_compute() /* ---------------------------------------------------------------------- */ -int ComputeTempPartial::dof_remove(int i) +int ComputeTempPartial::dof_remove(int /*i*/) { int nper = xflag+yflag+zflag; return (domain->dimension - nper); @@ -169,7 +169,7 @@ void ComputeTempPartial::compute_vector() remove velocity bias from atom I to leave thermal velocity ------------------------------------------------------------------------- */ -void ComputeTempPartial::remove_bias(int i, double *v) +void ComputeTempPartial::remove_bias(int /*i*/, double *v) { if (!xflag) { vbias[0] = v[0]; @@ -189,7 +189,7 @@ void ComputeTempPartial::remove_bias(int i, double *v) remove velocity bias from atom I to leave thermal velocity ------------------------------------------------------------------------- */ -void ComputeTempPartial::remove_bias_thr(int i, double *v, double *b) +void ComputeTempPartial::remove_bias_thr(int /*i*/, double *v, double *b) { if (!xflag) { b[0] = v[0]; @@ -275,7 +275,7 @@ void ComputeTempPartial::reapply_bias_all() assume remove_bias() was previously called ------------------------------------------------------------------------- */ -void ComputeTempPartial::restore_bias(int i, double *v) +void ComputeTempPartial::restore_bias(int /*i*/, double *v) { if (!xflag) v[0] += vbias[0]; if (!yflag) v[1] += vbias[1]; @@ -287,7 +287,7 @@ void ComputeTempPartial::restore_bias(int i, double *v) assume remove_bias_thr() was previously called with the same buffer b ------------------------------------------------------------------------- */ -void ComputeTempPartial::restore_bias_thr(int i, double *v, double *b) +void ComputeTempPartial::restore_bias_thr(int /*i*/, double *v, double *b) { if (!xflag) v[0] += b[0]; if (!yflag) v[1] += b[1]; diff --git a/src/compute_temp_ramp.cpp b/src/compute_temp_ramp.cpp index 42d258d8b2..ba572645f3 100644 --- a/src/compute_temp_ramp.cpp +++ b/src/compute_temp_ramp.cpp @@ -279,7 +279,7 @@ void ComputeTempRamp::remove_bias_all() assume remove_bias() was previously called ------------------------------------------------------------------------- */ -void ComputeTempRamp::restore_bias(int i, double *v) +void ComputeTempRamp::restore_bias(int /*i*/, double *v) { v[v_dim] += vbias[v_dim]; } @@ -289,7 +289,7 @@ void ComputeTempRamp::restore_bias(int i, double *v) assume remove_bias_thr() was previously called with the same buffer b ------------------------------------------------------------------------- */ -void ComputeTempRamp::restore_bias_thr(int i, double *v, double *b) +void ComputeTempRamp::restore_bias_thr(int /*i*/, double *v, double *b) { v[v_dim] += b[v_dim]; } diff --git a/src/compute_temp_region.cpp b/src/compute_temp_region.cpp index bde70a20f0..4aa4dac0a1 100644 --- a/src/compute_temp_region.cpp +++ b/src/compute_temp_region.cpp @@ -253,7 +253,7 @@ void ComputeTempRegion::remove_bias_all() assume remove_bias() was previously called ------------------------------------------------------------------------- */ -void ComputeTempRegion::restore_bias(int i, double *v) +void ComputeTempRegion::restore_bias(int /*i*/, double *v) { v[0] += vbias[0]; v[1] += vbias[1]; @@ -265,7 +265,7 @@ void ComputeTempRegion::restore_bias(int i, double *v) assume remove_bias_thr() was previously called with the same buffer b ------------------------------------------------------------------------- */ -void ComputeTempRegion::restore_bias_thr(int i, double *v, double *b) +void ComputeTempRegion::restore_bias_thr(int /*i*/, double *v, double *b) { v[0] += b[0]; v[1] += b[1]; diff --git a/src/dihedral_zero.cpp b/src/dihedral_zero.cpp index bdd2eaadd3..46facdb6db 100644 --- a/src/dihedral_zero.cpp +++ b/src/dihedral_zero.cpp @@ -99,13 +99,13 @@ void DihedralZero::coeff(int narg, char **arg) proc 0 writes out coeffs to restart file ------------------------------------------------------------------------- */ -void DihedralZero::write_restart(FILE *fp) {} +void DihedralZero::write_restart(FILE * /*fp*/) {} /* ---------------------------------------------------------------------- proc 0 reads coeffs from restart file, bcasts them ------------------------------------------------------------------------- */ -void DihedralZero::read_restart(FILE *fp) +void DihedralZero::read_restart(FILE * /*fp*/) { allocate(); for (int i = 1; i <= atom->ndihedraltypes; i++) setflag[i] = 1; @@ -119,4 +119,3 @@ void DihedralZero::write_data(FILE *fp) { for (int i = 1; i <= atom->ndihedraltypes; i++) fprintf(fp,"%d\n",i); } - diff --git a/src/domain.cpp b/src/domain.cpp index 4c1d12018b..1eb848fe06 100644 --- a/src/domain.cpp +++ b/src/domain.cpp @@ -1618,7 +1618,7 @@ void Domain::image_flip(int m, int n, int p) called from create_atoms() in library.cpp ------------------------------------------------------------------------- */ -int Domain::ownatom(int id, double *x, imageint *image, int shrinkexceed) +int Domain::ownatom(int /*id*/, double *x, imageint *image, int shrinkexceed) { double lamda[3]; double *coord,*blo,*bhi,*slo,*shi; diff --git a/src/dump.cpp b/src/dump.cpp index 7c171015bb..7cd80dcf71 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -45,7 +45,7 @@ enum{ASCEND,DESCEND}; /* ---------------------------------------------------------------------- */ -Dump::Dump(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) +Dump::Dump(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp) { MPI_Comm_rank(world,&me); MPI_Comm_size(world,&nprocs); diff --git a/src/dump_image.cpp b/src/dump_image.cpp index 60a1f545c9..a488f65161 100644 --- a/src/dump_image.cpp +++ b/src/dump_image.cpp @@ -1193,7 +1193,7 @@ void DumpImage::create_image() /* ---------------------------------------------------------------------- */ int DumpImage::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/dump_local.cpp b/src/dump_local.cpp index 0d5172b5c1..8dc0554690 100644 --- a/src/dump_local.cpp +++ b/src/dump_local.cpp @@ -326,7 +326,7 @@ int DumpLocal::count() /* ---------------------------------------------------------------------- */ -void DumpLocal::pack(tagint *dummy) +void DumpLocal::pack(tagint * /*dummy*/) { for (int n = 0; n < size_one; n++) (this->*pack_choice[n])(n); } diff --git a/src/fix.cpp b/src/fix.cpp index a54e295798..051ac12bbe 100644 --- a/src/fix.cpp +++ b/src/fix.cpp @@ -31,7 +31,7 @@ int Fix::instance_total = 0; /* ---------------------------------------------------------------------- */ -Fix::Fix(LAMMPS *lmp, int narg, char **arg) : +Fix::Fix(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp), id(NULL), style(NULL), extlist(NULL), vector_atom(NULL), array_atom(NULL), vector_local(NULL), array_local(NULL), eatom(NULL), vatom(NULL) diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index 42cd1bd199..950bc24253 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -476,7 +476,7 @@ void FixAdapt::init() /* ---------------------------------------------------------------------- */ -void FixAdapt::setup_pre_force(int vflag) +void FixAdapt::setup_pre_force(int /*vflag*/) { change_settings(); } @@ -491,7 +491,7 @@ void FixAdapt::setup_pre_force_respa(int vflag, int ilevel) /* ---------------------------------------------------------------------- */ -void FixAdapt::pre_force(int vflag) +void FixAdapt::pre_force(int /*vflag*/) { if (nevery == 0) return; if (update->ntimestep % nevery) return; diff --git a/src/fix_addforce.cpp b/src/fix_addforce.cpp index c2eedccd61..d66457a1f1 100644 --- a/src/fix_addforce.cpp +++ b/src/fix_addforce.cpp @@ -361,7 +361,7 @@ void FixAddForce::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixAddForce::post_force_respa(int vflag, int ilevel, int iloop) +void FixAddForce::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/fix_ave_atom.cpp b/src/fix_ave_atom.cpp index a8c3be07af..c8cbad75c9 100644 --- a/src/fix_ave_atom.cpp +++ b/src/fix_ave_atom.cpp @@ -283,7 +283,7 @@ void FixAveAtom::init() only does something if nvalid = current timestep ------------------------------------------------------------------------- */ -void FixAveAtom::setup(int vflag) +void FixAveAtom::setup(int /*vflag*/) { end_of_step(); } @@ -432,7 +432,7 @@ void FixAveAtom::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixAveAtom::copy_arrays(int i, int j, int delflag) +void FixAveAtom::copy_arrays(int i, int j, int /*delflag*/) { for (int m = 0; m < nvalues; m++) array[j][m] = array[i][m]; diff --git a/src/fix_ave_chunk.cpp b/src/fix_ave_chunk.cpp index 5f727fd3f7..1aead70644 100644 --- a/src/fix_ave_chunk.cpp +++ b/src/fix_ave_chunk.cpp @@ -557,7 +557,7 @@ void FixAveChunk::init() that nchunk may not track it ------------------------------------------------------------------------- */ -void FixAveChunk::setup(int vflag) +void FixAveChunk::setup(int /*vflag*/) { end_of_step(); } diff --git a/src/fix_ave_correlate.cpp b/src/fix_ave_correlate.cpp index 418464a248..198caf1514 100644 --- a/src/fix_ave_correlate.cpp +++ b/src/fix_ave_correlate.cpp @@ -404,7 +404,7 @@ void FixAveCorrelate::init() only does something if nvalid = current timestep ------------------------------------------------------------------------- */ -void FixAveCorrelate::setup(int vflag) +void FixAveCorrelate::setup(int /*vflag*/) { end_of_step(); } diff --git a/src/fix_ave_histo.cpp b/src/fix_ave_histo.cpp index 7aa5993899..ce32167b74 100644 --- a/src/fix_ave_histo.cpp +++ b/src/fix_ave_histo.cpp @@ -559,7 +559,7 @@ void FixAveHisto::init() only does something if nvalid = current timestep ------------------------------------------------------------------------- */ -void FixAveHisto::setup(int vflag) +void FixAveHisto::setup(int /*vflag*/) { end_of_step(); } diff --git a/src/fix_ave_time.cpp b/src/fix_ave_time.cpp index c3ace29684..53354ee066 100644 --- a/src/fix_ave_time.cpp +++ b/src/fix_ave_time.cpp @@ -529,7 +529,7 @@ void FixAveTime::init() only does something if nvalid = current timestep ------------------------------------------------------------------------- */ -void FixAveTime::setup(int vflag) +void FixAveTime::setup(int /*vflag*/) { end_of_step(); } diff --git a/src/fix_aveforce.cpp b/src/fix_aveforce.cpp index 4432a5dd36..1c87ba5785 100644 --- a/src/fix_aveforce.cpp +++ b/src/fix_aveforce.cpp @@ -194,7 +194,7 @@ void FixAveForce::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixAveForce::post_force(int vflag) +void FixAveForce::post_force(int /*vflag*/) { // update region if necessary @@ -259,7 +259,7 @@ void FixAveForce::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixAveForce::post_force_respa(int vflag, int ilevel, int iloop) +void FixAveForce::post_force_respa(int vflag, int ilevel, int /*iloop*/) { // ave + extra force on selected RESPA level // just ave on all other levels diff --git a/src/fix_balance.cpp b/src/fix_balance.cpp index e748e0ae31..8995a57afe 100644 --- a/src/fix_balance.cpp +++ b/src/fix_balance.cpp @@ -160,7 +160,7 @@ void FixBalance::init() /* ---------------------------------------------------------------------- */ -void FixBalance::setup(int vflag) +void FixBalance::setup(int /*vflag*/) { // compute final imbalance factor if setup_pre_exchange() invoked balancer // this is called at end of run setup, before output diff --git a/src/fix_drag.cpp b/src/fix_drag.cpp index 6a69dddbf5..e4cf12d1ff 100644 --- a/src/fix_drag.cpp +++ b/src/fix_drag.cpp @@ -90,7 +90,7 @@ void FixDrag::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixDrag::post_force(int vflag) +void FixDrag::post_force(int /*vflag*/) { // apply drag force to atoms in group of magnitude f_mag // apply in direction (r-r0) if atom is further than delta away @@ -132,7 +132,7 @@ void FixDrag::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixDrag::post_force_respa(int vflag, int ilevel, int iloop) +void FixDrag::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/fix_dt_reset.cpp b/src/fix_dt_reset.cpp index f2a50fd6d1..7566094b48 100644 --- a/src/fix_dt_reset.cpp +++ b/src/fix_dt_reset.cpp @@ -129,7 +129,7 @@ void FixDtReset::init() /* ---------------------------------------------------------------------- */ -void FixDtReset::setup(int vflag) +void FixDtReset::setup(int /*vflag*/) { end_of_step(); } diff --git a/src/fix_enforce2d.cpp b/src/fix_enforce2d.cpp index 791a52c50c..ef7eb3a0ef 100644 --- a/src/fix_enforce2d.cpp +++ b/src/fix_enforce2d.cpp @@ -112,7 +112,7 @@ void FixEnforce2D::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixEnforce2D::post_force(int vflag) +void FixEnforce2D::post_force(int /*vflag*/) { double **v = atom->v; double **f = atom->f; @@ -164,7 +164,7 @@ void FixEnforce2D::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixEnforce2D::post_force_respa(int vflag, int ilevel, int iloop) +void FixEnforce2D::post_force_respa(int vflag, int /*ilevel*/, int /*iloop*/) { post_force(vflag); } diff --git a/src/fix_external.cpp b/src/fix_external.cpp index 4fcc842f89..5ac9206e7f 100644 --- a/src/fix_external.cpp +++ b/src/fix_external.cpp @@ -129,7 +129,7 @@ void FixExternal::min_setup(int vflag) store eflag, so can use it in post_force to tally per-atom energies ------------------------------------------------------------------------- */ -void FixExternal::pre_reverse(int eflag, int vflag) +void FixExternal::pre_reverse(int eflag, int /*vflag*/) { eflag_caller = eflag; } @@ -305,7 +305,7 @@ void FixExternal::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixExternal::copy_arrays(int i, int j, int delflag) +void FixExternal::copy_arrays(int i, int j, int /*delflag*/) { fexternal[j][0] = fexternal[i][0]; fexternal[j][1] = fexternal[i][1]; diff --git a/src/fix_gravity.cpp b/src/fix_gravity.cpp index 9ace9d45ff..c3e73d86c9 100644 --- a/src/fix_gravity.cpp +++ b/src/fix_gravity.cpp @@ -247,7 +247,7 @@ void FixGravity::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixGravity::post_force(int vflag) +void FixGravity::post_force(int /*vflag*/) { // update gravity due to variables @@ -300,7 +300,7 @@ void FixGravity::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixGravity::post_force_respa(int vflag, int ilevel, int iloop) +void FixGravity::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/fix_group.cpp b/src/fix_group.cpp index 10736964e7..0980ff5456 100644 --- a/src/fix_group.cpp +++ b/src/fix_group.cpp @@ -176,7 +176,7 @@ void FixGroup::init() assign atoms to group ------------------------------------------------------------------------- */ -void FixGroup::setup(int vflag) +void FixGroup::setup(int /*vflag*/) { set_group(); } @@ -192,7 +192,7 @@ void FixGroup::post_integrate() /* ---------------------------------------------------------------------- */ -void FixGroup::post_integrate_respa(int ilevel, int iloop) +void FixGroup::post_integrate_respa(int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_integrate(); } @@ -259,7 +259,7 @@ void FixGroup::set_group() /* ---------------------------------------------------------------------- */ -void *FixGroup::extract(const char *str, int &unused) +void *FixGroup::extract(const char *str, int &/*unused*/) { if (strcmp(str,"property") == 0 && propflag) return (void *) idprop; if (strcmp(str,"variable") == 0 && varflag) return (void *) idvar; diff --git a/src/fix_indent.cpp b/src/fix_indent.cpp index ade8cee532..b8e07dfd53 100644 --- a/src/fix_indent.cpp +++ b/src/fix_indent.cpp @@ -182,7 +182,7 @@ void FixIndent::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixIndent::post_force(int vflag) +void FixIndent::post_force(int /*vflag*/) { // indenter values, 0 = energy, 1-3 = force components // wrap variable evaluations with clear/add @@ -357,7 +357,7 @@ void FixIndent::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixIndent::post_force_respa(int vflag, int ilevel, int iloop) +void FixIndent::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/fix_langevin.cpp b/src/fix_langevin.cpp index e4c36cc739..d829982274 100644 --- a/src/fix_langevin.cpp +++ b/src/fix_langevin.cpp @@ -298,7 +298,7 @@ void FixLangevin::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixLangevin::post_force(int vflag) +void FixLangevin::post_force(int /*vflag*/) { double *rmass = atom->rmass; @@ -441,7 +441,7 @@ void FixLangevin::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixLangevin::post_force_respa(int vflag, int ilevel, int iloop) +void FixLangevin::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } @@ -896,7 +896,7 @@ void FixLangevin::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixLangevin::copy_arrays(int i, int j, int delflag) +void FixLangevin::copy_arrays(int i, int j, int /*delflag*/) { for (int m = 0; m < nvalues; m++) franprev[j][m] = franprev[i][m]; diff --git a/src/fix_lineforce.cpp b/src/fix_lineforce.cpp index e90152c4e1..aea1a2a25b 100644 --- a/src/fix_lineforce.cpp +++ b/src/fix_lineforce.cpp @@ -80,7 +80,7 @@ void FixLineForce::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixLineForce::post_force(int vflag) +void FixLineForce::post_force(int /*vflag*/) { double **f = atom->f; int *mask = atom->mask; @@ -98,7 +98,7 @@ void FixLineForce::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixLineForce::post_force_respa(int vflag, int ilevel, int iloop) +void FixLineForce::post_force_respa(int vflag, int /*ilevel*/, int /*iloop*/) { post_force(vflag); } diff --git a/src/fix_minimize.cpp b/src/fix_minimize.cpp index 06a3ac900d..fa39643a1b 100644 --- a/src/fix_minimize.cpp +++ b/src/fix_minimize.cpp @@ -184,7 +184,7 @@ void FixMinimize::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixMinimize::copy_arrays(int i, int j, int delflag) +void FixMinimize::copy_arrays(int i, int j, int /*delflag*/) { int m,iper,nper,ni,nj; diff --git a/src/fix_move.cpp b/src/fix_move.cpp index 9eadfa5ab4..2f9fb0ebaa 100644 --- a/src/fix_move.cpp +++ b/src/fix_move.cpp @@ -453,7 +453,7 @@ void FixMove::init() set x,v of particles ------------------------------------------------------------------------- */ -void FixMove::initial_integrate(int vflag) +void FixMove::initial_integrate(int /*vflag*/) { int flag; double ddotr,dx,dy,dz; @@ -945,7 +945,7 @@ void FixMove::final_integrate() /* ---------------------------------------------------------------------- */ -void FixMove::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixMove::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/) { // outermost level - update v and x // all other levels - nothing @@ -955,7 +955,7 @@ void FixMove::initial_integrate_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ -void FixMove::final_integrate_respa(int ilevel, int iloop) +void FixMove::final_integrate_respa(int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) final_integrate(); } @@ -1019,7 +1019,7 @@ void FixMove::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixMove::copy_arrays(int i, int j, int delflag) +void FixMove::copy_arrays(int i, int j, int /*delflag*/) { xoriginal[j][0] = xoriginal[i][0]; xoriginal[j][1] = xoriginal[i][1]; @@ -1238,7 +1238,7 @@ int FixMove::maxsize_restart() size of atom nlocal's restart data ------------------------------------------------------------------------- */ -int FixMove::size_restart(int nlocal) +int FixMove::size_restart(int /*nlocal*/) { return nrestart; } diff --git a/src/fix_neigh_history.cpp b/src/fix_neigh_history.cpp index 3329b604ef..44c2003bf1 100644 --- a/src/fix_neigh_history.cpp +++ b/src/fix_neigh_history.cpp @@ -686,7 +686,7 @@ void FixNeighHistory::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixNeighHistory::copy_arrays(int i, int j, int delflag) +void FixNeighHistory::copy_arrays(int i, int j, int /*delflag*/) { // just copy pointers for partner and valuepartner // b/c can't overwrite chunk allocation inside ipage_atom,dpage_atom diff --git a/src/fix_nh.cpp b/src/fix_nh.cpp index 73c70420c5..a1a562f2bb 100644 --- a/src/fix_nh.cpp +++ b/src/fix_nh.cpp @@ -742,7 +742,7 @@ void FixNH::init() compute T,P before integrator starts ------------------------------------------------------------------------- */ -void FixNH::setup(int vflag) +void FixNH::setup(int /*vflag*/) { // tdof needed by compute_temp_target() @@ -827,7 +827,7 @@ void FixNH::setup(int vflag) 1st half of Verlet update ------------------------------------------------------------------------- */ -void FixNH::initial_integrate(int vflag) +void FixNH::initial_integrate(int /*vflag*/) { // update eta_press_dot @@ -922,7 +922,7 @@ void FixNH::final_integrate() /* ---------------------------------------------------------------------- */ -void FixNH::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixNH::initial_integrate_respa(int /*vflag*/, int ilevel, int /*iloop*/) { // set timesteps by level @@ -991,7 +991,7 @@ void FixNH::initial_integrate_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ -void FixNH::final_integrate_respa(int ilevel, int iloop) +void FixNH::final_integrate_respa(int ilevel, int /*iloop*/) { // set timesteps by level diff --git a/src/fix_nve.cpp b/src/fix_nve.cpp index 58e33b9744..959483230e 100644 --- a/src/fix_nve.cpp +++ b/src/fix_nve.cpp @@ -62,7 +62,7 @@ void FixNVE::init() allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixNVE::initial_integrate(int vflag) +void FixNVE::initial_integrate(int /*vflag*/) { double dtfm; @@ -143,7 +143,7 @@ void FixNVE::final_integrate() /* ---------------------------------------------------------------------- */ -void FixNVE::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixNVE::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/) { dtv = step_respa[ilevel]; dtf = 0.5 * step_respa[ilevel] * force->ftm2v; @@ -157,7 +157,7 @@ void FixNVE::initial_integrate_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ -void FixNVE::final_integrate_respa(int ilevel, int iloop) +void FixNVE::final_integrate_respa(int ilevel, int /*iloop*/) { dtf = 0.5 * step_respa[ilevel] * force->ftm2v; final_integrate(); diff --git a/src/fix_nve_limit.cpp b/src/fix_nve_limit.cpp index f659597af7..b4fb43e56f 100644 --- a/src/fix_nve_limit.cpp +++ b/src/fix_nve_limit.cpp @@ -83,7 +83,7 @@ void FixNVELimit::init() allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixNVELimit::initial_integrate(int vflag) +void FixNVELimit::initial_integrate(int /*vflag*/) { double dtfm,vsq,scale; @@ -202,7 +202,7 @@ void FixNVELimit::final_integrate() /* ---------------------------------------------------------------------- */ -void FixNVELimit::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixNVELimit::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/) { dtv = step_respa[ilevel]; dtf = 0.5 * step_respa[ilevel] * force->ftm2v; @@ -213,7 +213,7 @@ void FixNVELimit::initial_integrate_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ -void FixNVELimit::final_integrate_respa(int ilevel, int iloop) +void FixNVELimit::final_integrate_respa(int ilevel, int /*iloop*/) { dtf = 0.5 * step_respa[ilevel] * force->ftm2v; final_integrate(); diff --git a/src/fix_nve_noforce.cpp b/src/fix_nve_noforce.cpp index 3403f4f5ec..d4fca9e676 100644 --- a/src/fix_nve_noforce.cpp +++ b/src/fix_nve_noforce.cpp @@ -54,7 +54,7 @@ void FixNVENoforce::init() /* ---------------------------------------------------------------------- */ -void FixNVENoforce::initial_integrate(int vflag) +void FixNVENoforce::initial_integrate(int /*vflag*/) { double **x = atom->x; double **v = atom->v; diff --git a/src/fix_nve_sphere.cpp b/src/fix_nve_sphere.cpp index fe37324cfb..0bee8b8685 100644 --- a/src/fix_nve_sphere.cpp +++ b/src/fix_nve_sphere.cpp @@ -97,7 +97,7 @@ void FixNVESphere::init() /* ---------------------------------------------------------------------- */ -void FixNVESphere::initial_integrate(int vflag) +void FixNVESphere::initial_integrate(int /*vflag*/) { double dtfm,dtirotate,msq,scale,s2,inv_len_mu; double g[3]; diff --git a/src/fix_planeforce.cpp b/src/fix_planeforce.cpp index f90be6a233..45dc782fcf 100644 --- a/src/fix_planeforce.cpp +++ b/src/fix_planeforce.cpp @@ -80,7 +80,7 @@ void FixPlaneForce::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixPlaneForce::post_force(int vflag) +void FixPlaneForce::post_force(int /*vflag*/) { double **f = atom->f; int *mask = atom->mask; @@ -98,7 +98,7 @@ void FixPlaneForce::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixPlaneForce::post_force_respa(int vflag, int ilevel, int iloop) +void FixPlaneForce::post_force_respa(int vflag, int /*ilevel*/, int /*iloop*/) { post_force(vflag); } diff --git a/src/fix_press_berendsen.cpp b/src/fix_press_berendsen.cpp index 792154e93f..95db004436 100644 --- a/src/fix_press_berendsen.cpp +++ b/src/fix_press_berendsen.cpp @@ -334,7 +334,7 @@ void FixPressBerendsen::init() compute T,P before integrator starts ------------------------------------------------------------------------- */ -void FixPressBerendsen::setup(int vflag) +void FixPressBerendsen::setup(int /*vflag*/) { // trigger virial computation on next timestep diff --git a/src/fix_property_atom.cpp b/src/fix_property_atom.cpp index 5ad4dfa4ba..fc99137c3d 100644 --- a/src/fix_property_atom.cpp +++ b/src/fix_property_atom.cpp @@ -292,7 +292,7 @@ void FixPropertyAtom::read_data_section(char *keyword, int n, char *buf, return # of lines in section of data file labeled by keyword ------------------------------------------------------------------------- */ -bigint FixPropertyAtom::read_data_skip_lines(char *keyword) +bigint FixPropertyAtom::read_data_skip_lines(char */*keyword*/) { return atom->natoms; } @@ -304,7 +304,7 @@ bigint FixPropertyAtom::read_data_skip_lines(char *keyword) ny = columns = tag + nvalues ------------------------------------------------------------------------- */ -void FixPropertyAtom::write_data_section_size(int mth, int &nx, int &ny) +void FixPropertyAtom::write_data_section_size(int /*mth*/, int &nx, int &ny) { nx = atom->nlocal; ny = nvalue + 1; @@ -315,7 +315,7 @@ void FixPropertyAtom::write_data_section_size(int mth, int &nx, int &ny) buf allocated by caller as Nlocal by Nvalues+1 ------------------------------------------------------------------------- */ -void FixPropertyAtom::write_data_section_pack(int mth, double **buf) +void FixPropertyAtom::write_data_section_pack(int /*mth*/, double **buf) { int i; @@ -354,7 +354,7 @@ void FixPropertyAtom::write_data_section_pack(int mth, double **buf) only called by proc 0 ------------------------------------------------------------------------- */ -void FixPropertyAtom::write_data_section_keyword(int mth, FILE *fp) +void FixPropertyAtom::write_data_section_keyword(int /*mth*/, FILE *fp) { if (nvalue == 1 && style[0] == MOLECULE) fprintf(fp,"\nMolecules\n\n"); else if (nvalue == 1 && style[0] == CHARGE) fprintf(fp,"\nCharges\n\n"); @@ -368,8 +368,8 @@ void FixPropertyAtom::write_data_section_keyword(int mth, FILE *fp) only called by proc 0 ------------------------------------------------------------------------- */ -void FixPropertyAtom::write_data_section(int mth, FILE *fp, - int n, double **buf, int index) +void FixPropertyAtom::write_data_section(int /*mth*/, FILE *fp, + int n, double **buf, int /*index*/) { int m; @@ -443,7 +443,7 @@ void FixPropertyAtom::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixPropertyAtom::copy_arrays(int i, int j, int delflag) +void FixPropertyAtom::copy_arrays(int i, int j, int /*delflag*/) { for (int m = 0; m < nvalue; m++) { if (style[m] == MOLECULE) @@ -644,7 +644,7 @@ int FixPropertyAtom::maxsize_restart() size of atom nlocal's restart data ------------------------------------------------------------------------- */ -int FixPropertyAtom::size_restart(int nlocal) +int FixPropertyAtom::size_restart(int /*nlocal*/) { return nvalue+1; } diff --git a/src/fix_read_restart.cpp b/src/fix_read_restart.cpp index b384234b99..3c3178f4af 100644 --- a/src/fix_read_restart.cpp +++ b/src/fix_read_restart.cpp @@ -96,7 +96,7 @@ void FixReadRestart::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixReadRestart::copy_arrays(int i, int j, int delflag) +void FixReadRestart::copy_arrays(int i, int j, int /*delflag*/) { count[j] = count[i]; for (int m = 0; m < count[i]; m++) extra[j][m] = extra[i][m]; diff --git a/src/fix_recenter.cpp b/src/fix_recenter.cpp index 49e370ac80..75b383d67a 100644 --- a/src/fix_recenter.cpp +++ b/src/fix_recenter.cpp @@ -149,7 +149,7 @@ void FixRecenter::init() /* ---------------------------------------------------------------------- */ -void FixRecenter::initial_integrate(int vflag) +void FixRecenter::initial_integrate(int /*vflag*/) { // target COM // bounding box around domain works for both orthogonal and triclinic @@ -211,7 +211,7 @@ void FixRecenter::initial_integrate(int vflag) /* ---------------------------------------------------------------------- */ -void FixRecenter::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixRecenter::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/) { // outermost level - operate recenter // all other levels - nothing diff --git a/src/fix_respa.cpp b/src/fix_respa.cpp index 3b9aad1286..64461ba7ca 100644 --- a/src/fix_respa.cpp +++ b/src/fix_respa.cpp @@ -93,7 +93,7 @@ void FixRespa::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixRespa::copy_arrays(int i, int j, int delflag) +void FixRespa::copy_arrays(int i, int j, int /*delflag*/) { for (int k = 0; k < nlevels; k++) { f_level[j][k][0] = f_level[i][k][0]; diff --git a/src/fix_restrain.cpp b/src/fix_restrain.cpp index 6ad229fea7..bb09116374 100644 --- a/src/fix_restrain.cpp +++ b/src/fix_restrain.cpp @@ -188,7 +188,7 @@ void FixRestrain::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixRestrain::post_force(int vflag) +void FixRestrain::post_force(int /*vflag*/) { energy = 0.0; @@ -204,7 +204,7 @@ void FixRestrain::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixRestrain::post_force_respa(int vflag, int ilevel, int iloop) +void FixRestrain::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/fix_setforce.cpp b/src/fix_setforce.cpp index 89b340b0ae..fc8b7aeb59 100644 --- a/src/fix_setforce.cpp +++ b/src/fix_setforce.cpp @@ -219,7 +219,7 @@ void FixSetForce::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixSetForce::post_force(int vflag) +void FixSetForce::post_force(int /*vflag*/) { double **x = atom->x; double **f = atom->f; @@ -293,7 +293,7 @@ void FixSetForce::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixSetForce::post_force_respa(int vflag, int ilevel, int iloop) +void FixSetForce::post_force_respa(int vflag, int ilevel, int /*iloop*/) { // set force to desired value on requested level, 0.0 on other levels diff --git a/src/fix_spring.cpp b/src/fix_spring.cpp index ecb84eeb0f..328a0eeafd 100644 --- a/src/fix_spring.cpp +++ b/src/fix_spring.cpp @@ -159,7 +159,7 @@ void FixSpring::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixSpring::post_force(int vflag) +void FixSpring::post_force(int /*vflag*/) { if (styleflag == TETHER) spring_tether(); else spring_couple(); @@ -335,7 +335,7 @@ void FixSpring::spring_couple() /* ---------------------------------------------------------------------- */ -void FixSpring::post_force_respa(int vflag, int ilevel, int iloop) +void FixSpring::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/fix_spring_chunk.cpp b/src/fix_spring_chunk.cpp index 53e9285a9c..5b5d95b111 100644 --- a/src/fix_spring_chunk.cpp +++ b/src/fix_spring_chunk.cpp @@ -144,7 +144,7 @@ void FixSpringChunk::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixSpringChunk::post_force(int vflag) +void FixSpringChunk::post_force(int /*vflag*/) { int i,m; double dx,dy,dz,r; @@ -231,7 +231,7 @@ void FixSpringChunk::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixSpringChunk::post_force_respa(int vflag, int ilevel, int iloop) +void FixSpringChunk::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/fix_spring_rg.cpp b/src/fix_spring_rg.cpp index c2e226a343..28c8969006 100644 --- a/src/fix_spring_rg.cpp +++ b/src/fix_spring_rg.cpp @@ -95,7 +95,7 @@ void FixSpringRG::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixSpringRG::post_force(int vflag) +void FixSpringRG::post_force(int /*vflag*/) { // compute current Rg and center-of-mass @@ -142,7 +142,7 @@ void FixSpringRG::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixSpringRG::post_force_respa(int vflag, int ilevel, int iloop) +void FixSpringRG::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/fix_spring_self.cpp b/src/fix_spring_self.cpp index 1a5c89c6a1..670883af41 100644 --- a/src/fix_spring_self.cpp +++ b/src/fix_spring_self.cpp @@ -148,7 +148,7 @@ void FixSpringSelf::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixSpringSelf::post_force(int vflag) +void FixSpringSelf::post_force(int /*vflag*/) { double **x = atom->x; double **f = atom->f; @@ -181,7 +181,7 @@ void FixSpringSelf::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixSpringSelf::post_force_respa(int vflag, int ilevel, int iloop) +void FixSpringSelf::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } @@ -227,7 +227,7 @@ void FixSpringSelf::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixSpringSelf::copy_arrays(int i, int j, int delflag) +void FixSpringSelf::copy_arrays(int i, int j, int /*delflag*/) { xoriginal[j][0] = xoriginal[i][0]; xoriginal[j][1] = xoriginal[i][1]; @@ -303,7 +303,7 @@ int FixSpringSelf::maxsize_restart() size of atom nlocal's restart data ------------------------------------------------------------------------- */ -int FixSpringSelf::size_restart(int nlocal) +int FixSpringSelf::size_restart(int /*nlocal*/) { return 4; } diff --git a/src/fix_store.cpp b/src/fix_store.cpp index 350e120972..9db65d0987 100644 --- a/src/fix_store.cpp +++ b/src/fix_store.cpp @@ -229,7 +229,7 @@ void FixStore::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixStore::copy_arrays(int i, int j, int delflag) +void FixStore::copy_arrays(int i, int j, int /*delflag*/) { if (disable) return; @@ -324,7 +324,7 @@ int FixStore::maxsize_restart() size of atom nlocal's restart data ------------------------------------------------------------------------- */ -int FixStore::size_restart(int nlocal) +int FixStore::size_restart(int /*nlocal*/) { if (disable) return 1; return nvalues+1; diff --git a/src/fix_store_force.cpp b/src/fix_store_force.cpp index 5e2150f68d..a841714098 100644 --- a/src/fix_store_force.cpp +++ b/src/fix_store_force.cpp @@ -95,7 +95,7 @@ void FixStoreForce::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixStoreForce::post_force(int vflag) +void FixStoreForce::post_force(int /*vflag*/) { if (atom->nmax > nmax) { nmax = atom->nmax; @@ -118,7 +118,7 @@ void FixStoreForce::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixStoreForce::post_force_respa(int vflag, int ilevel, int iloop) +void FixStoreForce::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } diff --git a/src/fix_store_state.cpp b/src/fix_store_state.cpp index 3195e983e3..da899a173c 100644 --- a/src/fix_store_state.cpp +++ b/src/fix_store_state.cpp @@ -446,7 +446,7 @@ void FixStoreState::init() /* ---------------------------------------------------------------------- */ -void FixStoreState::setup(int vflag) +void FixStoreState::setup(int /*vflag*/) { // if first invocation, store current values for compute, fix, variable @@ -580,7 +580,7 @@ void FixStoreState::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixStoreState::copy_arrays(int i, int j, int delflag) +void FixStoreState::copy_arrays(int i, int j, int /*delflag*/) { for (int m = 0; m < nvalues; m++) values[j][m] = values[i][m]; } @@ -646,7 +646,7 @@ int FixStoreState::maxsize_restart() size of atom nlocal's restart data ------------------------------------------------------------------------- */ -int FixStoreState::size_restart(int nlocal) +int FixStoreState::size_restart(int /*nlocal*/) { return nvalues+1; } diff --git a/src/fix_tmd.cpp b/src/fix_tmd.cpp index 39d4173a63..ea448bd178 100644 --- a/src/fix_tmd.cpp +++ b/src/fix_tmd.cpp @@ -170,7 +170,7 @@ void FixTMD::init() /* ---------------------------------------------------------------------- */ -void FixTMD::initial_integrate(int vflag) +void FixTMD::initial_integrate(int /*vflag*/) { double a,b,c,d,e; double dx,dy,dz,dxkt,dykt,dzkt; @@ -335,7 +335,7 @@ void FixTMD::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixTMD::copy_arrays(int i, int j, int delflag) +void FixTMD::copy_arrays(int i, int j, int /*delflag*/) { xf[j][0] = xf[i][0]; xf[j][1] = xf[i][1]; diff --git a/src/fix_vector.cpp b/src/fix_vector.cpp index 9b7f016970..6387af7676 100644 --- a/src/fix_vector.cpp +++ b/src/fix_vector.cpp @@ -239,7 +239,7 @@ void FixVector::init() only does something if nvalid = current timestep ------------------------------------------------------------------------- */ -void FixVector::setup(int vflag) +void FixVector::setup(int /*vflag*/) { end_of_step(); } diff --git a/src/fix_viscous.cpp b/src/fix_viscous.cpp index 1d2609c8b6..e845142322 100644 --- a/src/fix_viscous.cpp +++ b/src/fix_viscous.cpp @@ -109,7 +109,7 @@ void FixViscous::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixViscous::post_force(int vflag) +void FixViscous::post_force(int /*vflag*/) { // apply drag force to atoms in group // direction is opposed to velocity vector @@ -134,7 +134,7 @@ void FixViscous::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixViscous::post_force_respa(int vflag, int ilevel, int iloop) +void FixViscous::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/fix_wall.cpp b/src/fix_wall.cpp index 096bbe618a..e84d01191d 100644 --- a/src/fix_wall.cpp +++ b/src/fix_wall.cpp @@ -343,7 +343,7 @@ void FixWall::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixWall::post_force_respa(int vflag, int ilevel, int iloop) +void FixWall::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/fix_wall_region.cpp b/src/fix_wall_region.cpp index ea1b62bfa5..ff147d7446 100644 --- a/src/fix_wall_region.cpp +++ b/src/fix_wall_region.cpp @@ -287,7 +287,7 @@ void FixWallRegion::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixWallRegion::post_force_respa(int vflag, int ilevel, int iloop) +void FixWallRegion::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/group.cpp b/src/group.cpp index dd5e53bb3c..3bc3f3d7bf 100644 --- a/src/group.cpp +++ b/src/group.cpp @@ -629,7 +629,7 @@ int Group::find_unused() do not include molID = 0 ------------------------------------------------------------------------- */ -void Group::add_molecules(int igroup, int bit) +void Group::add_molecules(int /*igroup*/, int bit) { // hash = unique molecule IDs of atoms already in group diff --git a/src/image.cpp b/src/image.cpp index 301a2af88f..7879a7035e 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -990,7 +990,7 @@ void Image::compute_SSAO() /* ---------------------------------------------------------------------- */ -void Image::write_JPG(FILE *fp) +void Image::write_JPG(FILE */*fp*/) { #ifdef LAMMPS_JPEG struct jpeg_compress_struct cinfo; @@ -1022,7 +1022,7 @@ void Image::write_JPG(FILE *fp) /* ---------------------------------------------------------------------- */ -void Image::write_PNG(FILE *fp) +void Image::write_PNG(FILE */*fp*/) { #ifdef LAMMPS_PNG png_structp png_ptr; diff --git a/src/imbalance_var.cpp b/src/imbalance_var.cpp index acb3da8d13..e089b1df0c 100644 --- a/src/imbalance_var.cpp +++ b/src/imbalance_var.cpp @@ -52,7 +52,7 @@ int ImbalanceVar::options(int narg, char **arg) /* -------------------------------------------------------------------- */ -void ImbalanceVar::init(int flag) +void ImbalanceVar::init(int /*flag*/) { id = input->variable->find(name); if (id < 0) { diff --git a/src/improper_zero.cpp b/src/improper_zero.cpp index 25ab3e7bba..86c724e17d 100644 --- a/src/improper_zero.cpp +++ b/src/improper_zero.cpp @@ -99,13 +99,13 @@ void ImproperZero::coeff(int narg, char **arg) proc 0 writes out coeffs to restart file ------------------------------------------------------------------------- */ -void ImproperZero::write_restart(FILE *fp) {} +void ImproperZero::write_restart(FILE */*fp*/) {} /* ---------------------------------------------------------------------- proc 0 reads coeffs from restart file, bcasts them ------------------------------------------------------------------------- */ -void ImproperZero::read_restart(FILE *fp) +void ImproperZero::read_restart(FILE */*fp*/) { allocate(); for (int i = 1; i <= atom->nimpropertypes; i++) setflag[i] = 1; diff --git a/src/integrate.cpp b/src/integrate.cpp index 97d28d6d7c..d6b27e042d 100644 --- a/src/integrate.cpp +++ b/src/integrate.cpp @@ -24,7 +24,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -Integrate::Integrate(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) +Integrate::Integrate(LAMMPS *lmp, int /*narg*/, char **/*arg*/) : Pointers(lmp) { elist_global = elist_atom = NULL; vlist_global = vlist_atom = NULL; diff --git a/src/kspace.cpp b/src/kspace.cpp index fc8b12288b..ad5c9e42f2 100644 --- a/src/kspace.cpp +++ b/src/kspace.cpp @@ -30,7 +30,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -KSpace::KSpace(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp) +KSpace::KSpace(LAMMPS *lmp, int /*narg*/, char **/*arg*/) : Pointers(lmp) { order_allocated = 0; energy = 0.0; diff --git a/src/library.cpp b/src/library.cpp index 13e0756866..18f7005116 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -336,7 +336,7 @@ void lammps_free(void *ptr) customize by adding names ------------------------------------------------------------------------- */ -int lammps_extract_setting(void *ptr, char *name) +int lammps_extract_setting(void */*ptr*/, char *name) { if (strcmp(name,"bigint") == 0) return sizeof(bigint); if (strcmp(name,"tagint") == 0) return sizeof(tagint); diff --git a/src/math_extra.cpp b/src/math_extra.cpp index b70986ce91..0bba2ad401 100644 --- a/src/math_extra.cpp +++ b/src/math_extra.cpp @@ -590,7 +590,7 @@ void inertia_triangle(double *v0, double *v1, double *v2, return symmetric inertia tensor as 6-vector in Voigt notation ------------------------------------------------------------------------- */ -void inertia_triangle(double *idiag, double *quat, double mass, +void inertia_triangle(double *idiag, double *quat, double /*mass*/, double *inertia) { double p[3][3],ptrans[3][3],itemp[3][3],tensor[3][3]; diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 912a636227..759f84e29f 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -2193,7 +2193,7 @@ void Neighbor::set(int narg, char **arg) ditto for lastcall and last_setup_bins ------------------------------------------------------------------------- */ -void Neighbor::reset_timestep(bigint ntimestep) +void Neighbor::reset_timestep(bigint /*ntimestep*/) { for (int i = 0; i < nbin; i++) neigh_bin[i]->last_bin = -1; diff --git a/src/pair.cpp b/src/pair.cpp index 5c308cc7ce..18d561bdb5 100644 --- a/src/pair.cpp +++ b/src/pair.cpp @@ -301,7 +301,7 @@ void Pair::init_style() specific pair style can override this function ------------------------------------------------------------------------- */ -void Pair::init_list(int which, NeighList *ptr) +void Pair::init_list(int /*which*/, NeighList *ptr) { list = ptr; } diff --git a/src/pair_beck.cpp b/src/pair_beck.cpp index cc8e14bf2c..d9c0fb902c 100644 --- a/src/pair_beck.cpp +++ b/src/pair_beck.cpp @@ -327,9 +327,9 @@ void PairBeck::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairBeck::single(int i, int j, int itype, int jtype, +double PairBeck::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double factor_lj, double &fforce) { double phi_beck,r,rinv; diff --git a/src/pair_born.cpp b/src/pair_born.cpp index ce7a255fd4..1a1db9dd90 100644 --- a/src/pair_born.cpp +++ b/src/pair_born.cpp @@ -407,8 +407,8 @@ void PairBorn::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairBorn::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, +double PairBorn::single(int /*i*/, int /*j*/, int itype, int jtype, + double rsq, double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r6inv,r,rexp,forceborn,phiborn; diff --git a/src/pair_buck.cpp b/src/pair_buck.cpp index 450ce291cb..8b6d79234b 100644 --- a/src/pair_buck.cpp +++ b/src/pair_buck.cpp @@ -380,8 +380,8 @@ void PairBuck::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairBuck::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, +double PairBuck::single(int /*i*/, int /*j*/, int itype, int jtype, + double rsq, double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r6inv,r,rexp,forcebuck,phibuck; diff --git a/src/pair_coul_cut.cpp b/src/pair_coul_cut.cpp index edcf26bffe..8741abdb89 100644 --- a/src/pair_coul_cut.cpp +++ b/src/pair_coul_cut.cpp @@ -284,8 +284,8 @@ void PairCoulCut::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairCoulCut::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, +double PairCoulCut::single(int i, int j, int /*itype*/, int /*jtype*/, + double rsq, double factor_coul, double /*factor_lj*/, double &fforce) { double r2inv,rinv,forcecoul,phicoul; diff --git a/src/pair_coul_debye.cpp b/src/pair_coul_debye.cpp index ee08ab3294..432a015598 100644 --- a/src/pair_coul_debye.cpp +++ b/src/pair_coul_debye.cpp @@ -163,8 +163,8 @@ void PairCoulDebye::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairCoulDebye::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, +double PairCoulDebye::single(int i, int j, int /*itype*/, int /*jtype*/, + double rsq, double factor_coul, double /*factor_lj*/, double &fforce) { double r2inv,r,rinv,forcecoul,phicoul,screening; diff --git a/src/pair_coul_dsf.cpp b/src/pair_coul_dsf.cpp index f20eae43bd..8cd5f7fece 100644 --- a/src/pair_coul_dsf.cpp +++ b/src/pair_coul_dsf.cpp @@ -221,7 +221,7 @@ void PairCoulDSF::init_style() init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairCoulDSF::init_one(int i, int j) +double PairCoulDSF::init_one(int /*i*/, int /*j*/) { return cut_coul; } @@ -291,8 +291,8 @@ void PairCoulDSF::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairCoulDSF::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairCoulDSF::single(int i, int j, int /*itype*/, int /*jtype*/, double rsq, + double factor_coul, double /*factor_lj*/, double &fforce) { double r2inv,r,erfcc,erfcd,prefactor,t; diff --git a/src/pair_coul_wolf.cpp b/src/pair_coul_wolf.cpp index cd582f0693..762491166e 100644 --- a/src/pair_coul_wolf.cpp +++ b/src/pair_coul_wolf.cpp @@ -219,7 +219,7 @@ void PairCoulWolf::init_style() init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairCoulWolf::init_one(int i, int j) +double PairCoulWolf::init_one(int /*i*/, int /*j*/) { return cut_coul; } @@ -290,8 +290,8 @@ void PairCoulWolf::read_restart_settings(FILE *fp) only the pair part is calculated here ------------------------------------------------------------------------- */ -double PairCoulWolf::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairCoulWolf::single(int i, int j, int /*itype*/, int /*jtype*/, double rsq, + double factor_coul, double /*factor_lj*/, double &fforce) { double r,prefactor; diff --git a/src/pair_dpd.cpp b/src/pair_dpd.cpp index c209de87ed..5c5fc4254b 100644 --- a/src/pair_dpd.cpp +++ b/src/pair_dpd.cpp @@ -390,8 +390,8 @@ void PairDPD::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairDPD::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_dpd, double &fforce) +double PairDPD::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_dpd, double &fforce) { double r,rinv,wd,phi; diff --git a/src/pair_gauss.cpp b/src/pair_gauss.cpp index fe53bcc9e1..426389753b 100644 --- a/src/pair_gauss.cpp +++ b/src/pair_gauss.cpp @@ -347,8 +347,8 @@ void PairGauss::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairGauss::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairGauss::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double /*factor_lj*/, double &fforce) { double philj = diff --git a/src/pair_hybrid.cpp b/src/pair_hybrid.cpp index dc74dd040d..03747e1de3 100644 --- a/src/pair_hybrid.cpp +++ b/src/pair_hybrid.cpp @@ -844,7 +844,7 @@ void PairHybrid::modify_params(int narg, char **arg) store a local per pair style override for special_lj and special_coul ------------------------------------------------------------------------- */ -void PairHybrid::modify_special(int m, int narg, char **arg) +void PairHybrid::modify_special(int m, int /*narg*/, char **arg) { double special[4]; int i; diff --git a/src/pair_lj96_cut.cpp b/src/pair_lj96_cut.cpp index 28677a393e..457eba0e79 100644 --- a/src/pair_lj96_cut.cpp +++ b/src/pair_lj96_cut.cpp @@ -678,8 +678,8 @@ void PairLJ96Cut::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJ96Cut::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairLJ96Cut::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r3inv,r6inv,forcelj,philj; diff --git a/src/pair_lj_cubic.cpp b/src/pair_lj_cubic.cpp index 4b140e5f05..770caa6359 100644 --- a/src/pair_lj_cubic.cpp +++ b/src/pair_lj_cubic.cpp @@ -175,7 +175,7 @@ void PairLJCubic::allocate() global settings ------------------------------------------------------------------------- */ -void PairLJCubic::settings(int narg, char **arg) +void PairLJCubic::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); @@ -321,9 +321,9 @@ void PairLJCubic::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJCubic::single(int i, int j, int itype, int jtype, +double PairLJCubic::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r6inv,forcelj,philj; diff --git a/src/pair_lj_cut.cpp b/src/pair_lj_cut.cpp index bb2db6aa2f..13a546f5a5 100644 --- a/src/pair_lj_cut.cpp +++ b/src/pair_lj_cut.cpp @@ -672,8 +672,8 @@ void PairLJCut::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJCut::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairLJCut::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r6inv,forcelj,philj; diff --git a/src/pair_lj_expand.cpp b/src/pair_lj_expand.cpp index ba72d7d45f..9aa58b3b88 100644 --- a/src/pair_lj_expand.cpp +++ b/src/pair_lj_expand.cpp @@ -396,8 +396,8 @@ void PairLJExpand::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJExpand::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairLJExpand::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r,rshift,rshiftsq,r2inv,r6inv,forcelj,philj; diff --git a/src/pair_lj_gromacs.cpp b/src/pair_lj_gromacs.cpp index 6b2219d2c5..495e96c368 100644 --- a/src/pair_lj_gromacs.cpp +++ b/src/pair_lj_gromacs.cpp @@ -414,9 +414,9 @@ void PairLJGromacs::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJGromacs::single(int i, int j, int itype, int jtype, +double PairLJGromacs::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r6inv,forcelj,philj; diff --git a/src/pair_lj_smooth.cpp b/src/pair_lj_smooth.cpp index 23256d486e..a12046bb3b 100644 --- a/src/pair_lj_smooth.cpp +++ b/src/pair_lj_smooth.cpp @@ -425,8 +425,8 @@ void PairLJSmooth::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJSmooth::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairLJSmooth::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r6inv,forcelj,philj,r,t,tsq,fskin; diff --git a/src/pair_lj_smooth_linear.cpp b/src/pair_lj_smooth_linear.cpp index 592a7f6f41..17c789bcee 100644 --- a/src/pair_lj_smooth_linear.cpp +++ b/src/pair_lj_smooth_linear.cpp @@ -326,9 +326,9 @@ void PairLJSmoothLinear::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJSmoothLinear::single(int i, int j, int itype, int jtype, +double PairLJSmoothLinear::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r6inv,forcelj,philj,r,rinv; diff --git a/src/pair_mie_cut.cpp b/src/pair_mie_cut.cpp index 1f9267ca30..c1e1c1ff50 100644 --- a/src/pair_mie_cut.cpp +++ b/src/pair_mie_cut.cpp @@ -682,8 +682,8 @@ void PairMIECut::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairMIECut::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_mie, +double PairMIECut::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_mie, double &fforce) { double r2inv,rgamR,rgamA,forcemie,phimie; diff --git a/src/pair_morse.cpp b/src/pair_morse.cpp index 32ddd723b2..c1031343e1 100644 --- a/src/pair_morse.cpp +++ b/src/pair_morse.cpp @@ -334,8 +334,8 @@ void PairMorse::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairMorse::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairMorse::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r,dr,dexp,phi; diff --git a/src/pair_soft.cpp b/src/pair_soft.cpp index f428893fd1..d1c51ac600 100644 --- a/src/pair_soft.cpp +++ b/src/pair_soft.cpp @@ -307,8 +307,8 @@ void PairSoft::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairSoft::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairSoft::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r,arg,philj; diff --git a/src/pair_table.cpp b/src/pair_table.cpp index 9e9e41a54c..5c43761cab 100644 --- a/src/pair_table.cpp +++ b/src/pair_table.cpp @@ -993,8 +993,8 @@ void PairTable::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairTable::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairTable::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { int itable; diff --git a/src/pair_ufm.cpp b/src/pair_ufm.cpp index 965fe0204e..a9f076f504 100644 --- a/src/pair_ufm.cpp +++ b/src/pair_ufm.cpp @@ -353,8 +353,8 @@ void PairUFM::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairUFM::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairUFM::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double expuf,phiuf; diff --git a/src/pair_yukawa.cpp b/src/pair_yukawa.cpp index 040664abec..af520fd3da 100644 --- a/src/pair_yukawa.cpp +++ b/src/pair_yukawa.cpp @@ -319,8 +319,8 @@ void PairYukawa::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairYukawa::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairYukawa::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r,rinv,screening,forceyukawa,phi; diff --git a/src/pair_zbl.cpp b/src/pair_zbl.cpp index 98048f61d0..f23a1e5d56 100644 --- a/src/pair_zbl.cpp +++ b/src/pair_zbl.cpp @@ -267,8 +267,8 @@ double PairZBL::init_one(int i, int j) /* ---------------------------------------------------------------------- */ -double PairZBL::single(int i, int j, int itype, int jtype, double rsq, - double dummy1, double dummy2, +double PairZBL::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*dummy1*/, double /*dummy2*/, double &fforce) { double phi,r,t,eswitch,fswitch; diff --git a/src/rcb.cpp b/src/rcb.cpp index 13e27b6fbf..644f879c73 100644 --- a/src/rcb.cpp +++ b/src/rcb.cpp @@ -1108,7 +1108,7 @@ void RCB::compute_old(int dimension, int n, double **x, double *wt, merge of each component of an RCB bounding box ------------------------------------------------------------------------- */ -void box_merge(void *in, void *inout, int *len, MPI_Datatype *dptr) +void box_merge(void *in, void *inout, int */*len*/, MPI_Datatype */*dptr*/) { RCB::BBox *box1 = (RCB::BBox *) in; @@ -1138,7 +1138,7 @@ void box_merge(void *in, void *inout, int *len, MPI_Datatype *dptr) all procs must get same proclo,prochi ------------------------------------------------------------------------- */ -void median_merge(void *in, void *inout, int *len, MPI_Datatype *dptr) +void median_merge(void *in, void *inout, int */*len*/, MPI_Datatype */*dptr*/) { RCB::Median *med1 = (RCB::Median *) in; diff --git a/src/reader_xyz.cpp b/src/reader_xyz.cpp index 5cb3476510..37d30bd740 100644 --- a/src/reader_xyz.cpp +++ b/src/reader_xyz.cpp @@ -117,9 +117,9 @@ void ReaderXYZ::skip() only called by proc 0 ------------------------------------------------------------------------- */ -bigint ReaderXYZ::read_header(double box[3][3], int &triclinic, +bigint ReaderXYZ::read_header(double /*box*/[3][3], int &triclinic, int fieldinfo, int nfield, - int *fieldtype, char **fieldlabel, + int *fieldtype, char **/*fieldlabel*/, int scaleflag, int wrapflag, int &fieldflag, int &xflag, int &yflag, int &zflag) { diff --git a/src/region.cpp b/src/region.cpp index 88a414b134..c52c0181aa 100644 --- a/src/region.cpp +++ b/src/region.cpp @@ -28,7 +28,7 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -Region::Region(LAMMPS *lmp, int narg, char **arg) : +Region::Region(LAMMPS *lmp, int /*narg*/, char **arg) : Pointers(lmp), id(NULL), style(NULL), contact(NULL), list(NULL), xstr(NULL), ystr(NULL), zstr(NULL), tstr(NULL) diff --git a/src/reset_ids.cpp b/src/reset_ids.cpp index fd898bd3ab..b2cf7a9bbc 100644 --- a/src/reset_ids.cpp +++ b/src/reset_ids.cpp @@ -28,7 +28,7 @@ ResetIDs::ResetIDs(LAMMPS *lmp) : Pointers(lmp) {} /* ---------------------------------------------------------------------- */ -void ResetIDs::command(int narg, char **arg) +void ResetIDs::command(int narg, char **/*arg*/) { if (domain->box_exist == 0) error->all(FLERR,"Reset_ids command before simulation box is defined"); diff --git a/src/respa.cpp b/src/respa.cpp index 73e280b03d..26bae5a1cb 100644 --- a/src/respa.cpp +++ b/src/respa.cpp @@ -774,7 +774,7 @@ void Respa::recurse(int ilevel) clear other arrays as needed ------------------------------------------------------------------------- */ -void Respa::force_clear(int newtonflag) +void Respa::force_clear(int /*newtonflag*/) { if (external_force_clear) return; diff --git a/src/variable.cpp b/src/variable.cpp index f005221400..a596dedb2a 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -733,7 +733,7 @@ int Variable::find(char *name) called when atom is created ------------------------------------------------------------------------- */ -void Variable::set_arrays(int i) +void Variable::set_arrays(int /*i*/) { for (int i = 0; i < nvar; i++) if (reader[i] && style[i] == ATOMFILE) diff --git a/src/velocity.cpp b/src/velocity.cpp index f83f778f8b..3a0b95fb4d 100644 --- a/src/velocity.cpp +++ b/src/velocity.cpp @@ -410,7 +410,7 @@ void Velocity::create(double t_desired, int seed) /* ---------------------------------------------------------------------- */ -void Velocity::set(int narg, char **arg) +void Velocity::set(int /*narg*/, char **arg) { int xstyle,ystyle,zstyle,varflag; double vx,vy,vz; @@ -579,7 +579,7 @@ void Velocity::set(int narg, char **arg) rescale velocities of a group after computing its temperature ------------------------------------------------------------------------- */ -void Velocity::scale(int narg, char **arg) +void Velocity::scale(int /*narg*/, char **arg) { double t_desired = force->numeric(FLERR,arg[0]); @@ -628,7 +628,7 @@ void Velocity::scale(int narg, char **arg) apply a ramped set of velocities ------------------------------------------------------------------------- */ -void Velocity::ramp(int narg, char **arg) +void Velocity::ramp(int /*narg*/, char **arg) { // set scale factors @@ -705,7 +705,7 @@ void Velocity::ramp(int narg, char **arg) zero linear or angular momentum of a group ------------------------------------------------------------------------- */ -void Velocity::zero(int narg, char **arg) +void Velocity::zero(int /*narg*/, char **arg) { if (strcmp(arg[0],"linear") == 0) { if (rfix < 0) zero_momentum(); From 9eacabd821536f300184d0946d2dfdff9c15c1ac Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 23 Aug 2018 14:43:31 -0600 Subject: [PATCH 590/675] added manpage from debian package --- doc/lammps.1 | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 doc/lammps.1 diff --git a/doc/lammps.1 b/doc/lammps.1 new file mode 100644 index 0000000000..d0251bd2a6 --- /dev/null +++ b/doc/lammps.1 @@ -0,0 +1,41 @@ +.TH LAMMPS "2012-02-23" +.SH NAME +.B LAMMPS +\- Molecular Dynamics Simulator. + +.SH SYNOPSIS +.B lammps +< in.file + +or + +mpirun \-np 2 +.B lammps +< in.file + +.SH DESCRIPTION +.B LAMMPS +LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale +Atomic/Molecular Massively Parallel Simulator. LAMMPS has potentials for soft +materials (biomolecules, polymers) and solid-state materials (metals, +semiconductors) and coarse-grained or mesoscopic systems. It can be used to +model atoms or, more generically, as a parallel particle simulator at the +atomic, meso, or continuum scale. + +See http://lammps.sandia.gov/ for documentation. + +.SH COPYRIGHT +© 2003--2012 Sandia Corporation + +This package is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This package is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL-2'. From a10bb4b96f40f3b5574b0fade2cfece8bf4c6fc9 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 23 Aug 2018 15:02:36 -0600 Subject: [PATCH 591/675] cmake: fix link issue with --as-needed --- cmake/CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 460d177c92..51997593db 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -276,11 +276,14 @@ endif() if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE) find_package(LAPACK) - if(NOT LAPACK_FOUND) + find_package(BLAS) + if(NOT LAPACK_FOUND OR NOT BLAS_FOUND) enable_language(Fortran) file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.[fF]) add_library(linalg STATIC ${LAPACK_SOURCES}) set(LAPACK_LIBRARIES linalg) + else() + list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES}) endif() endif() From 3622cb9b2846f675ead2997fffdf5abb7a281475 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 23 Aug 2018 19:16:41 -0600 Subject: [PATCH 592/675] lammps.1: some update --- doc/lammps.1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/lammps.1 b/doc/lammps.1 index d0251bd2a6..0431aeca02 100644 --- a/doc/lammps.1 +++ b/doc/lammps.1 @@ -1,4 +1,4 @@ -.TH LAMMPS "2012-02-23" +.TH LAMMPS "2018-08-22" .SH NAME .B LAMMPS \- Molecular Dynamics Simulator. @@ -25,7 +25,7 @@ atomic, meso, or continuum scale. See http://lammps.sandia.gov/ for documentation. .SH COPYRIGHT -© 2003--2012 Sandia Corporation +© 2003--2018 Sandia Corporation This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by From 9b4f7090d373de2f6f90bc7a51370ff89db2117f Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 23 Aug 2018 19:19:03 -0600 Subject: [PATCH 593/675] cmake: install manpage, too --- cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 460d177c92..96f066a431 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -1058,6 +1058,7 @@ if(BUILD_EXE) set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE}) install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) if(ENABLE_TESTING) add_test(ShowHelp lmp${LAMMPS_MACHINE} -help) endif() From e1ef158b363f6b75a16f0c8ffd0da5c748fb580a Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 24 Aug 2018 06:52:50 -0600 Subject: [PATCH 594/675] cmake: rename manpage when installing --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 96f066a431..4db879b5b1 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -1058,7 +1058,7 @@ if(BUILD_EXE) set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE}) install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR}) - install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) + install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME lmp${LAMMPS_MACHINE}.1) if(ENABLE_TESTING) add_test(ShowHelp lmp${LAMMPS_MACHINE} -help) endif() From bd1e89ac4c0f82be43484bfc16909104b6cf00bf Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 24 Aug 2018 06:55:59 -0600 Subject: [PATCH 595/675] lammps.1: use -in syntax --- doc/lammps.1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/lammps.1 b/doc/lammps.1 index 0431aeca02..8f0ba78fdd 100644 --- a/doc/lammps.1 +++ b/doc/lammps.1 @@ -4,14 +4,14 @@ \- Molecular Dynamics Simulator. .SH SYNOPSIS -.B lammps -< in.file +.B lmp +-in in.file or mpirun \-np 2 -.B lammps -< in.file +.B lmp +-in in.file .SH DESCRIPTION .B LAMMPS From 44bda245a60bcb273735a0c8cb3d71c12bfbf3e3 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 24 Aug 2018 09:36:39 -0600 Subject: [PATCH 596/675] resolution of cutoff issues --- doc/src/pair_atm.txt | 13 +++---- examples/atm/in.atm | 2 +- ...9Jul18.atm.g++.1 => log.23Aug18.atm.g++.1} | 36 +++++++++---------- ...9Jul18.atm.g++.4 => log.23Aug18.atm.g++.4} | 34 +++++++++--------- src/MANYBODY/pair_atm.cpp | 21 +++-------- src/MANYBODY/pair_atm.h | 3 +- 6 files changed, 47 insertions(+), 62 deletions(-) rename examples/atm/{log.9Jul18.atm.g++.1 => log.23Aug18.atm.g++.1} (67%) rename examples/atm/{log.9Jul18.atm.g++.4 => log.23Aug18.atm.g++.4} (69%) diff --git a/doc/src/pair_atm.txt b/doc/src/pair_atm.txt index e59efe86ab..63a450c51a 100644 --- a/doc/src/pair_atm.txt +++ b/doc/src/pair_atm.txt @@ -10,8 +10,6 @@ pair_style atm command :h3 [Syntax:] -SJP: add an arg - pair_style atm cutoff cutoff_triple :pre cutoff = cutoff for each pair in 3-body interaction (distance units) @@ -19,11 +17,10 @@ cutoff_triple = additional cutoff applied to product of 3 pairwise distances (di [Examples:] -SJP: is 1.5 a good value? -pair_style atm 2.5 1.5 +pair_style atm 4.5 2.5 pair_coeff * * * 0.072 :pre -pair_style hybrid/overlay lj/cut 6.5 atm 2.5 1.5 +pair_style hybrid/overlay lj/cut 6.5 atm 4.5 2.5 pair_coeff * * lj/cut 1.0 1.0 pair_coeff 1 1 atm 1 0.064 pair_coeff 1 1 atm 2 0.080 @@ -55,9 +52,9 @@ command as in the example above. The potential for a triplet of atom is calculated only if all 3 distances r12, r23, r31 between the 3 atoms satisfy rIJ < cutoff. -SJP: In addition, the product of the 3 distances r12*r23*r31 < -cutoff_triple^3 is required, which limits the contribution of the -potential to ??? +In addition, the product of the 3 distances r12*r23*r31 < +cutoff_triple^3 is required, which excludes from calculation the +triplets with small contribution to the interaction. The following coefficients must be defined for each pair of atoms types via the "pair_coeff"_pair_coeff.html command as in the examples diff --git a/examples/atm/in.atm b/examples/atm/in.atm index 52576c04c9..131528dce3 100644 --- a/examples/atm/in.atm +++ b/examples/atm/in.atm @@ -16,7 +16,7 @@ region box block 0 ${xx} 0 ${yy} 0 ${zz} create_box 1 box create_atoms 1 box -pair_style hybrid/overlay lj/cut 4.5 atm 2.5 +pair_style hybrid/overlay lj/cut 4.5 atm 4.5 2.5 pair_coeff * * lj/cut 1.0 1.0 pair_coeff * * atm * 0.072 diff --git a/examples/atm/log.9Jul18.atm.g++.1 b/examples/atm/log.23Aug18.atm.g++.1 similarity index 67% rename from examples/atm/log.9Jul18.atm.g++.1 rename to examples/atm/log.23Aug18.atm.g++.1 index 0613533f33..3373846b31 100644 --- a/examples/atm/log.9Jul18.atm.g++.1 +++ b/examples/atm/log.23Aug18.atm.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (29 Jun 2018) +LAMMPS (22 Aug 2018) # Axilrod-Teller-Muto potential example variable x index 1 @@ -26,9 +26,9 @@ Created orthogonal box = (0 0 0) to (18.3252 18.3252 18.3252) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 4000 atoms - Time spent = 0.00125098 secs + Time spent = 0.00126314 secs -pair_style hybrid/overlay lj/cut 4.5 atm 2.5 +pair_style hybrid/overlay lj/cut 4.5 atm 4.5 2.5 pair_coeff * * lj/cut 1.0 1.0 pair_coeff * * atm * 0.072 @@ -60,26 +60,26 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 11.47 | 11.47 | 11.47 Mbytes Step Temp E_pair E_mol TotEng Press - 0 1.033 -4.733482 0 -3.1843694 -3.924644 - 5 1.0335743 -4.7330528 0 -3.1830789 -3.9119065 - 10 1.0349987 -4.7346788 0 -3.1825689 -3.8769962 - 15 1.0362024 -4.7401425 0 -3.1862275 -3.8225106 - 20 1.0352365 -4.7459627 0 -3.1934962 -3.7403572 - 25 1.0295963 -4.7444397 0 -3.2004313 -3.6132651 -Loop time of 27.841 on 1 procs for 25 steps with 4000 atoms + 0 1.033 -4.8899813 0 -3.3408686 -4.2298176 + 5 1.0337853 -4.8928208 0 -3.3425304 -4.2233154 + 10 1.0358056 -4.8953304 0 -3.3420104 -4.1897183 + 15 1.0380938 -4.8990457 0 -3.3422942 -4.1310148 + 20 1.0389566 -4.9014345 0 -3.3433892 -4.0406616 + 25 1.0358313 -4.8989663 0 -3.3456079 -3.9093019 +Loop time of 12.2062 on 1 procs for 25 steps with 4000 atoms -Performance: 155.167 tau/day, 0.898 timesteps/s -100.0% CPU use with 1 MPI tasks x no OpenMP threads +Performance: 353.920 tau/day, 2.048 timesteps/s +99.9% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 27.837 | 27.837 | 27.837 | 0.0 | 99.99 +Pair | 12.202 | 12.202 | 12.202 | 0.0 | 99.96 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0015321 | 0.0015321 | 0.0015321 | 0.0 | 0.01 -Output | 0.00016594 | 0.00016594 | 0.00016594 | 0.0 | 0.00 -Modify | 0.001785 | 0.001785 | 0.001785 | 0.0 | 0.01 -Other | | 0.0006731 | | | 0.00 +Comm | 0.0015621 | 0.0015621 | 0.0015621 | 0.0 | 0.01 +Output | 0.00020814 | 0.00020814 | 0.00020814 | 0.0 | 0.00 +Modify | 0.0019698 | 0.0019698 | 0.0019698 | 0.0 | 0.02 +Other | | 0.0007734 | | | 0.01 Nlocal: 4000 ave 4000 max 4000 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -97,4 +97,4 @@ Dangerous builds = 0 Please see the log.cite file for references relevant to this simulation -Total wall time: 0:00:29 +Total wall time: 0:00:13 diff --git a/examples/atm/log.9Jul18.atm.g++.4 b/examples/atm/log.23Aug18.atm.g++.4 similarity index 69% rename from examples/atm/log.9Jul18.atm.g++.4 rename to examples/atm/log.23Aug18.atm.g++.4 index 5627348fab..d5edfe32ba 100644 --- a/examples/atm/log.9Jul18.atm.g++.4 +++ b/examples/atm/log.23Aug18.atm.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (29 Jun 2018) +LAMMPS (22 Aug 2018) # Axilrod-Teller-Muto potential example variable x index 1 @@ -26,9 +26,9 @@ Created orthogonal box = (0 0 0) to (18.3252 18.3252 18.3252) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 4000 atoms - Time spent = 0.000769138 secs + Time spent = 0.000785112 secs -pair_style hybrid/overlay lj/cut 4.5 atm 2.5 +pair_style hybrid/overlay lj/cut 4.5 atm 4.5 2.5 pair_coeff * * lj/cut 1.0 1.0 pair_coeff * * atm * 0.072 @@ -60,26 +60,26 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 5.532 | 5.532 | 5.532 Mbytes Step Temp E_pair E_mol TotEng Press - 0 1.033 -4.733482 0 -3.1843694 -3.924644 - 5 1.0335743 -4.7330528 0 -3.1830789 -3.9119065 - 10 1.0349987 -4.7346788 0 -3.1825689 -3.8769962 - 15 1.0362024 -4.7401425 0 -3.1862275 -3.8225106 - 20 1.0352365 -4.7459627 0 -3.1934962 -3.7403572 - 25 1.0295963 -4.7444397 0 -3.2004313 -3.6132651 -Loop time of 7.22029 on 4 procs for 25 steps with 4000 atoms + 0 1.033 -4.8921547 0 -3.343042 -4.2340557 + 5 1.0337949 -4.8947881 0 -3.3444835 -4.2271456 + 10 1.0358286 -4.8973178 0 -3.3439632 -4.1935779 + 15 1.0381322 -4.9010593 0 -3.3442503 -4.134913 + 20 1.0390107 -4.9034854 0 -3.3453589 -4.0446162 + 25 1.0358988 -4.9010506 0 -3.3475908 -3.9133006 +Loop time of 3.20632 on 4 procs for 25 steps with 4000 atoms -Performance: 598.314 tau/day, 3.462 timesteps/s +Performance: 1347.340 tau/day, 7.797 timesteps/s 100.0% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 7.1346 | 7.1684 | 7.1863 | 0.8 | 99.28 +Pair | 3.1207 | 3.1553 | 3.1859 | 1.5 | 98.41 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.032945 | 0.0509 | 0.084664 | 9.1 | 0.70 -Output | 0.00010133 | 0.00011051 | 0.00013804 | 0.0 | 0.00 -Modify | 0.00059557 | 0.00060683 | 0.00061274 | 0.0 | 0.01 -Other | | 0.000318 | | | 0.00 +Comm | 0.019466 | 0.05009 | 0.084602 | 12.0 | 1.56 +Output | 7.1049e-05 | 8.2076e-05 | 0.00011325 | 0.0 | 0.00 +Modify | 0.00056338 | 0.00057292 | 0.00058413 | 0.0 | 0.02 +Other | | 0.0003092 | | | 0.01 Nlocal: 1000 ave 1000 max 1000 min Histogram: 4 0 0 0 0 0 0 0 0 0 @@ -97,4 +97,4 @@ Dangerous builds = 0 Please see the log.cite file for references relevant to this simulation -Total wall time: 0:00:07 +Total wall time: 0:00:03 diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index c23aa6560d..44587dfdff 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -15,9 +15,7 @@ Contributing author: Sergey Lishchuk ------------------------------------------------------------------------- */ - #include - #include "pair_atm.h" #include "atom.h" #include "citeme.h" @@ -92,7 +90,6 @@ void PairATM::compute(int eflag, int vflag) int *type = atom->type; double cutoff_squared = cut_global*cut_global; - // SJP: new cutoff double triple = cut_triple*cut_triple*cut_triple; double cutoff_triple_sixth = triple*triple; @@ -142,15 +139,14 @@ void PairATM::compute(int eflag, int vflag) rik2 = rik[0]*rik[0] + rik[1]*rik[1] + rik[2]*rik[2]; if (rik2 > cutoff_squared) continue; - // SJP: add this line? - - if (rij2*rjk2*rik2 > cutoff_triple_sixth) continue; + double r6 = rij2*rjk2*rik2; + if (r6 > cutoff_triple_sixth) continue; nu_local = nu[type[i]][type[j]][type[k]]; if (nu_local == 0.0) continue; interaction_ddd(nu_local, - rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); + r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); f[i][0] -= fj[0] + fk[0]; f[i][1] -= fj[1] + fk[1]; @@ -200,14 +196,10 @@ void PairATM::allocate() void PairATM::settings(int narg, char **arg) { - // SJP: change to 2 args, require triple <= global - if (narg != 2) error->all(FLERR,"Illegal pair_style command"); cut_global = force->numeric(FLERR,arg[0]); cut_triple = force->numeric(FLERR,arg[1]); - - if (cut_triple > cut_global) error->all(FLERR,"Illegal pair_style command"); } /* ---------------------------------------------------------------------- @@ -324,7 +316,6 @@ void PairATM::read_restart(FILE *fp) void PairATM::write_restart_settings(FILE *fp) { fwrite(&cut_global,sizeof(double),1,fp); - // SJP: 2nd arg fwrite(&cut_triple,sizeof(double),1,fp); } @@ -334,7 +325,6 @@ void PairATM::write_restart_settings(FILE *fp) void PairATM::read_restart_settings(FILE *fp) { - // SJP: 2nd arg int me = comm->me; if (me == 0) { fread(&cut_global,sizeof(double),1,fp); @@ -348,13 +338,12 @@ void PairATM::read_restart_settings(FILE *fp) Axilrod-Teller-Muto (dipole-dipole-dipole) potential ------------------------------------------------------------------------- */ -void PairATM::interaction_ddd(double nu, +void PairATM::interaction_ddd(double nu, double r6, double rij2, double rik2, double rjk2, double *rij, double *rik, double *rjk, double *fj, double *fk, int eflag, double &eng) { - double r6,r5inv,rri,rrj,rrk,rrr; - r6 = rij2*rik2*rjk2; + double r5inv,rri,rrj,rrk,rrr; r5inv = nu / (r6*r6*sqrt(r6)); rri = rik[0]*rij[0] + rik[1]*rij[1] + rik[2]*rij[2]; rrj = rij[0]*rjk[0] + rij[1]*rjk[1] + rij[2]*rjk[2]; diff --git a/src/MANYBODY/pair_atm.h b/src/MANYBODY/pair_atm.h index cc868df832..70883a81c7 100644 --- a/src/MANYBODY/pair_atm.h +++ b/src/MANYBODY/pair_atm.h @@ -39,12 +39,11 @@ class PairATM : public Pair { void read_restart_settings(FILE *); protected: - // SJP: add 2nd cutoff double cut_global,cut_triple; double ***nu; void allocate(); - void interaction_ddd(double, double, double, double, double *, + void interaction_ddd(double, double, double, double, double, double *, double *, double *, double *, double *, int, double &); }; From 1abeec3a43e961694e11178cf39be77f707b0bb0 Mon Sep 17 00:00:00 2001 From: Daniel Schwen Date: Thu, 23 Aug 2018 11:13:52 -0600 Subject: [PATCH 597/675] Fix initialization order (#1076) --- src/USER-MANIFOLD/manifold_gaussian_bump.cpp | 2 +- src/fix_neigh_history.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/USER-MANIFOLD/manifold_gaussian_bump.cpp b/src/USER-MANIFOLD/manifold_gaussian_bump.cpp index a9ee35bbfc..cbb47ef92d 100644 --- a/src/USER-MANIFOLD/manifold_gaussian_bump.cpp +++ b/src/USER-MANIFOLD/manifold_gaussian_bump.cpp @@ -25,7 +25,6 @@ public: cubic_hermite( double x0, double x1, double y0, double y1, double yp0, double yp1, LAMMPS_NS::Error *err ) : - x0(x0), x1(x1), y0(y0), y1(y1), yp0(yp0), yp1(yp1), a( 2*x0 + 2 - 2*x1 ), b( -3*x0 - 3 + 3*x1 ), c( 1.0 ), @@ -34,6 +33,7 @@ public: u( -3*y0 + 3*y1 - 2*yp0 - yp1 ), v( yp0 ), w( y0 ), + x0(x0), x1(x1), y0(y0), y1(y1), yp0(yp0), yp1(yp1), err(err) { test(); diff --git a/src/fix_neigh_history.cpp b/src/fix_neigh_history.cpp index 44c2003bf1..9661409a6a 100644 --- a/src/fix_neigh_history.cpp +++ b/src/fix_neigh_history.cpp @@ -35,7 +35,7 @@ enum{DEFAULT,NPARTNER,PERPARTNER}; // also set in fix neigh/history/omp FixNeighHistory::FixNeighHistory(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), - npartner(NULL), partner(NULL), valuepartner(NULL), pair(NULL), + pair(NULL), npartner(NULL), partner(NULL), valuepartner(NULL), ipage_atom(NULL), dpage_atom(NULL), ipage_neigh(NULL), dpage_neigh(NULL) { if (narg != 4) error->all(FLERR,"Illegal fix NEIGH_HISTORY command"); From fd6792c6be42bad83cec2c42016883537c47ef6c Mon Sep 17 00:00:00 2001 From: Daniel Schwen Date: Thu, 23 Aug 2018 12:26:51 -0600 Subject: [PATCH 598/675] Fix unused params in GRANULAR (#1076) --- src/GRANULAR/fix_freeze.cpp | 4 ++-- src/GRANULAR/fix_wall_gran.cpp | 8 ++++---- src/GRANULAR/fix_wall_gran_region.cpp | 4 ++-- src/GRANULAR/pair_gran_hertz_history.cpp | 4 ++-- src/GRANULAR/pair_gran_hooke.cpp | 4 ++-- src/GRANULAR/pair_gran_hooke_history.cpp | 6 +++--- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/GRANULAR/fix_freeze.cpp b/src/GRANULAR/fix_freeze.cpp index 0f581be01c..73c1c9fc11 100644 --- a/src/GRANULAR/fix_freeze.cpp +++ b/src/GRANULAR/fix_freeze.cpp @@ -83,7 +83,7 @@ void FixFreeze::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixFreeze::post_force(int vflag) +void FixFreeze::post_force(int /*vflag*/) { double **f = atom->f; double **torque = atom->torque; @@ -110,7 +110,7 @@ void FixFreeze::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixFreeze::post_force_respa(int vflag, int ilevel, int iloop) +void FixFreeze::post_force_respa(int vflag, int /*ilevel*/, int /*iloop*/) { post_force(vflag); } diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index 368ff99fb7..f0957423f9 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -302,7 +302,7 @@ void FixWallGran::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixWallGran::post_force(int vflag) +void FixWallGran::post_force(int /*vflag*/) { int i,j; double dx,dy,dz,del1,del2,delxy,delr,rsq,rwall,meff; @@ -446,7 +446,7 @@ void FixWallGran::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixWallGran::post_force_respa(int vflag, int ilevel, int iloop) +void FixWallGran::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } @@ -1041,7 +1041,7 @@ void FixWallGran::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixWallGran::copy_arrays(int i, int j, int delflag) +void FixWallGran::copy_arrays(int i, int j, int /*delflag*/) { if (history) for (int m = 0; m < sheardim; m++) @@ -1136,7 +1136,7 @@ int FixWallGran::maxsize_restart() size of atom nlocal's restart data ------------------------------------------------------------------------- */ -int FixWallGran::size_restart(int nlocal) +int FixWallGran::size_restart(int /*nlocal*/) { if (!history) return 0; return 1 + sheardim; diff --git a/src/GRANULAR/fix_wall_gran_region.cpp b/src/GRANULAR/fix_wall_gran_region.cpp index 12fa25714c..4a6be5f3c9 100644 --- a/src/GRANULAR/fix_wall_gran_region.cpp +++ b/src/GRANULAR/fix_wall_gran_region.cpp @@ -130,7 +130,7 @@ void FixWallGranRegion::init() /* ---------------------------------------------------------------------- */ -void FixWallGranRegion::post_force(int vflag) +void FixWallGranRegion::post_force(int /*vflag*/) { int i,m,nc,iwall; double dx,dy,dz,rsq,meff; @@ -347,7 +347,7 @@ void FixWallGranRegion::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixWallGranRegion::copy_arrays(int i, int j, int delflag) +void FixWallGranRegion::copy_arrays(int i, int j, int /*delflag*/) { int m,n,iwall; diff --git a/src/GRANULAR/pair_gran_hertz_history.cpp b/src/GRANULAR/pair_gran_hertz_history.cpp index 9d4f5c1a9b..d1f3c7bbe1 100644 --- a/src/GRANULAR/pair_gran_hertz_history.cpp +++ b/src/GRANULAR/pair_gran_hertz_history.cpp @@ -306,9 +306,9 @@ void PairGranHertzHistory::settings(int narg, char **arg) /* ---------------------------------------------------------------------- */ -double PairGranHertzHistory::single(int i, int j, int itype, int jtype, +double PairGranHertzHistory::single(int i, int j, int /*itype*/, int /*jtype*/, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double /*factor_lj*/, double &fforce) { double radi,radj,radsum; diff --git a/src/GRANULAR/pair_gran_hooke.cpp b/src/GRANULAR/pair_gran_hooke.cpp index 4937c2fe8b..5244396ead 100644 --- a/src/GRANULAR/pair_gran_hooke.cpp +++ b/src/GRANULAR/pair_gran_hooke.cpp @@ -219,8 +219,8 @@ void PairGranHooke::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ -double PairGranHooke::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairGranHooke::single(int i, int j, int /*itype*/, int /*jtype*/, double rsq, + double /*factor_coul*/, double /*factor_lj*/, double &fforce) { double radi,radj,radsum,r,rinv,rsqinv; diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index d70c7391e2..e74d7a0ea5 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -587,9 +587,9 @@ void PairGranHookeHistory::reset_dt() /* ---------------------------------------------------------------------- */ -double PairGranHookeHistory::single(int i, int j, int itype, int jtype, +double PairGranHookeHistory::single(int i, int j, int /*itype*/, int /*jtype*/, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double /*factor_lj*/, double &fforce) { double radi,radj,radsum; @@ -746,7 +746,7 @@ double PairGranHookeHistory::single(int i, int j, int itype, int jtype, /* ---------------------------------------------------------------------- */ int PairGranHookeHistory::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; From 7a2cb108647018b25e18983a53fe4dda3ab508ff Mon Sep 17 00:00:00 2001 From: Daniel Schwen Date: Thu, 23 Aug 2018 12:31:27 -0600 Subject: [PATCH 599/675] Remove unused variable (#1076) --- src/variable.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/variable.cpp b/src/variable.cpp index a596dedb2a..3c54eac1ef 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -3733,7 +3733,7 @@ int Variable::group_function(char *word, char *contents, Tree **tree, if (strcmp(word,"count") == 0) { if (narg == 1) value = group->count(igroup); - else if (narg == 2) + else if (narg == 2) value = group->count(igroup,region_function(args[1],ivar)); else print_var_error(FLERR,"Invalid group function in variable formula",ivar); @@ -3744,7 +3744,7 @@ int Variable::group_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"charge") == 0) { if (narg == 1) value = group->charge(igroup); - else if (narg == 2) + else if (narg == 2) value = group->charge(igroup,region_function(args[1],ivar)); else print_var_error(FLERR,"Invalid group function in variable formula",ivar); @@ -3795,7 +3795,7 @@ int Variable::group_function(char *word, char *contents, Tree **tree, } else if (strcmp(word,"bound") == 0) { double minmax[6]; if (narg == 2) group->bounds(igroup,minmax); - else if (narg == 3) + else if (narg == 3) group->bounds(igroup,minmax,region_function(args[2],ivar)); else print_var_error(FLERR,"Invalid group function in variable formula",ivar); if (strcmp(args[1],"xmin") == 0) value = minmax[0]; @@ -3959,7 +3959,7 @@ int Variable::special_function(char *word, char *contents, Tree **tree, double *argstack, int &nargstack, int ivar) { bigint sx,sxx; - double value,xvalue,sy,sxy; + double value,sy,sxy; // word not a match to any special function @@ -4055,7 +4055,7 @@ int Variable::special_function(char *word, char *contents, Tree **tree, } else index = 0; int ifix = modify->find_fix(&args[0][2]); - if (ifix < 0) + if (ifix < 0) print_var_error(FLERR,"Invalid fix ID in variable formula",ivar); fix = modify->fix[ifix]; if (index == 0 && fix->vector_flag) { From 19976bb94fb7e1a9f551a09a8c4cfac7fe6b5f0e Mon Sep 17 00:00:00 2001 From: Daniel Schwen Date: Thu, 23 Aug 2018 12:38:05 -0600 Subject: [PATCH 600/675] Fixup conditionally used params (#1076) --- src/image.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/image.cpp b/src/image.cpp index 7879a7035e..1e428921a2 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -990,8 +990,9 @@ void Image::compute_SSAO() /* ---------------------------------------------------------------------- */ -void Image::write_JPG(FILE */*fp*/) +void Image::write_JPG(FILE *fp) { + (void)(fp); // suppress unused parameter warning #ifdef LAMMPS_JPEG struct jpeg_compress_struct cinfo; struct jpeg_error_mgr jerr; @@ -1022,8 +1023,9 @@ void Image::write_JPG(FILE */*fp*/) /* ---------------------------------------------------------------------- */ -void Image::write_PNG(FILE */*fp*/) +void Image::write_PNG(FILE *fp) { + (void)(fp); // suppress unused parameter warning #ifdef LAMMPS_PNG png_structp png_ptr; png_infop info_ptr; From 92a4dc25b1f402a345c41e1f8791a60f6df5acd4 Mon Sep 17 00:00:00 2001 From: Daniel Schwen Date: Fri, 24 Aug 2018 09:51:38 -0600 Subject: [PATCH 601/675] Fix unused params in packages (#1076) --- src/ASPHERE/fix_nve_asphere.cpp | 2 +- src/ASPHERE/fix_nve_asphere_noforce.cpp | 2 +- src/ASPHERE/fix_nve_line.cpp | 2 +- src/ASPHERE/fix_nve_tri.cpp | 2 +- src/BODY/body_nparticle.cpp | 4 +-- src/BODY/body_rounded_polygon.cpp | 4 +-- src/BODY/body_rounded_polyhedron.cpp | 4 +-- src/BODY/fix_nve_body.cpp | 2 +- src/BODY/fix_wall_body_polygon.cpp | 4 +-- src/BODY/fix_wall_body_polyhedron.cpp | 12 ++++----- src/BODY/pair_body_rounded_polygon.cpp | 4 +-- src/CLASS2/bond_class2.cpp | 2 +- src/CLASS2/improper_class2.cpp | 2 +- src/CLASS2/pair_lj_class2.cpp | 4 +-- src/COLLOID/pair_colloid.cpp | 4 +-- src/COLLOID/pair_lubricate.cpp | 6 ++--- src/COLLOID/pair_lubricateU.cpp | 2 +- src/COLLOID/pair_yukawa_colloid.cpp | 4 +-- src/KSPACE/pair_coul_long.cpp | 4 +-- src/KSPACE/pair_coul_msm.cpp | 4 +-- src/KSPACE/pppm_disp.cpp | 2 +- src/KSPACE/remap.cpp | 2 +- src/LATTE/fix_latte.cpp | 6 ++--- src/MANYBODY/fix_qeq_comb.cpp | 6 ++--- src/MANYBODY/pair_adp.cpp | 6 ++--- src/MANYBODY/pair_airebo.cpp | 8 +++--- src/MANYBODY/pair_comb.cpp | 8 +++--- src/MANYBODY/pair_comb3.cpp | 20 +++++++------- src/MANYBODY/pair_eam.cpp | 6 ++--- src/MANYBODY/pair_eam_cd.cpp | 2 +- src/MANYBODY/pair_eim.cpp | 6 ++--- src/MANYBODY/pair_gw.cpp | 2 +- src/MANYBODY/pair_lcbop.cpp | 6 ++--- src/MANYBODY/pair_nb3b_harmonic.cpp | 4 +-- src/MANYBODY/pair_polymorphic.cpp | 2 +- src/MANYBODY/pair_rebo.cpp | 2 +- src/MANYBODY/pair_sw.cpp | 2 +- src/MANYBODY/pair_tersoff.cpp | 2 +- src/MANYBODY/pair_vashishta.cpp | 2 +- src/MC/fix_atom_swap.cpp | 2 +- src/MC/fix_bond_break.cpp | 4 +-- src/MC/fix_bond_create.cpp | 10 +++---- src/MC/fix_bond_swap.cpp | 2 +- src/MC/fix_tfmc.cpp | 2 +- src/MC/pair_dsmc.cpp | 6 ++--- src/MEAM/pair_meam.cpp | 6 ++--- src/MISC/fix_efield.cpp | 2 +- src/MISC/fix_gld.cpp | 10 +++---- src/MISC/fix_orient_bcc.cpp | 8 +++--- src/MISC/fix_orient_fcc.cpp | 8 +++--- src/MISC/fix_ttm.cpp | 10 +++---- src/MISC/pair_nm_cut.cpp | 4 +-- src/MISC/xdr_compat.cpp | 2 +- src/MOLECULE/angle_cosine.cpp | 2 +- src/MOLECULE/angle_cosine_periodic.cpp | 2 +- src/MOLECULE/bond_fene.cpp | 2 +- src/MOLECULE/bond_fene_expand.cpp | 2 +- src/MOLECULE/bond_gromos.cpp | 2 +- src/MOLECULE/bond_harmonic.cpp | 2 +- src/MOLECULE/bond_morse.cpp | 2 +- src/MOLECULE/bond_nonlinear.cpp | 2 +- src/MOLECULE/bond_quartic.cpp | 2 +- src/MOLECULE/bond_table.cpp | 2 +- src/MOLECULE/fix_cmap.cpp | 18 ++++++------- src/MOLECULE/pair_hbond_dreiding_lj.cpp | 2 +- src/MOLECULE/pair_hbond_dreiding_morse.cpp | 2 +- src/MOLECULE/pair_tip4p_cut.cpp | 2 +- src/PERI/fix_peri_neigh.cpp | 8 +++--- src/PERI/pair_peri_eps.cpp | 4 +-- src/PERI/pair_peri_lps.cpp | 4 +-- src/PERI/pair_peri_pmb.cpp | 4 +-- src/PERI/pair_peri_ves.cpp | 4 +-- src/QEQ/fix_qeq.cpp | 8 +++--- src/QEQ/fix_qeq_dynamic.cpp | 4 +-- src/QEQ/fix_qeq_fire.cpp | 4 +-- src/QEQ/fix_qeq_point.cpp | 2 +- src/QEQ/fix_qeq_shielded.cpp | 2 +- src/QEQ/fix_qeq_slater.cpp | 2 +- src/REPLICA/fix_event.cpp | 2 +- src/REPLICA/fix_neb.cpp | 2 +- src/RIGID/fix_rattle.cpp | 4 +-- src/RIGID/fix_rigid.cpp | 8 +++--- src/RIGID/fix_rigid_small.cpp | 8 +++--- src/RIGID/fix_shake.cpp | 4 +-- src/SHOCK/fix_append_atoms.cpp | 4 +-- src/SHOCK/fix_msst.cpp | 4 +-- src/SHOCK/fix_wall_piston.cpp | 2 +- src/SNAP/compute_sna_atom.cpp | 2 +- src/SNAP/compute_snad_atom.cpp | 2 +- src/SNAP/compute_snav_atom.cpp | 2 +- src/SNAP/sna.cpp | 2 +- src/SPIN/atom_vec_spin.cpp | 2 +- src/SPIN/fix_langevin_spin.cpp | 2 +- src/SPIN/fix_nve_spin.cpp | 2 +- src/SPIN/fix_precession_spin.cpp | 4 +-- src/SPIN/pair_spin.cpp | 2 +- src/SPIN/pair_spin_dmi.cpp | 2 +- src/SPIN/pair_spin_magelec.cpp | 2 +- src/SRD/fix_srd.cpp | 12 ++++----- src/USER-BOCS/fix_bocs.cpp | 8 +++--- src/USER-CGDNA/bond_oxdna_fene.cpp | 4 +-- src/USER-CGDNA/fix_nve_dot.cpp | 2 +- src/USER-CGDNA/fix_nve_dotc_langevin.cpp | 2 +- src/USER-CGDNA/pair_oxdna2_coaxstk.cpp | 2 +- src/USER-CGDNA/pair_oxdna2_dh.cpp | 2 +- src/USER-CGDNA/pair_oxdna_coaxstk.cpp | 2 +- src/USER-CGDNA/pair_oxdna_excv.cpp | 4 +-- src/USER-CGDNA/pair_oxdna_hbond.cpp | 2 +- src/USER-CGDNA/pair_oxdna_stk.cpp | 2 +- src/USER-CGDNA/pair_oxdna_xstk.cpp | 2 +- src/USER-DIFFRACTION/fix_saed_vtk.cpp | 2 +- src/USER-DPD/fix_dpd_energy.cpp | 2 +- src/USER-DPD/fix_eos_table_rx.cpp | 4 +-- src/USER-DPD/fix_rx.cpp | 12 ++++----- src/USER-DPD/fix_shardlow.cpp | 8 +++--- src/USER-DPD/pair_dpd_fdt.cpp | 4 +-- src/USER-DPD/pair_dpd_fdt_energy.cpp | 4 +-- src/USER-DPD/pair_multi_lucy.cpp | 2 +- src/USER-DPD/pair_multi_lucy_rx.cpp | 2 +- src/USER-DPD/pair_table_rx.cpp | 2 +- src/USER-DRUDE/fix_drude.cpp | 2 +- src/USER-DRUDE/fix_langevin_drude.cpp | 2 +- src/USER-DRUDE/pair_thole.cpp | 2 +- src/USER-EFF/compute_temp_deform_eff.cpp | 2 +- src/USER-EFF/compute_temp_region_eff.cpp | 2 +- src/USER-EFF/fix_langevin_eff.cpp | 2 +- src/USER-EFF/fix_nve_eff.cpp | 6 ++--- src/USER-EFF/pair_eff_cut.cpp | 6 ++--- src/USER-FEP/fix_adapt_fep.cpp | 4 +-- src/USER-FEP/pair_coul_cut_soft.cpp | 2 +- src/USER-FEP/pair_coul_long_soft.cpp | 2 +- src/USER-FEP/pair_lj_cut_soft.cpp | 4 +-- src/USER-FEP/pair_morse_soft.cpp | 4 +-- src/USER-INTEL/angle_charmm_intel.cpp | 2 +- src/USER-INTEL/angle_harmonic_intel.cpp | 2 +- src/USER-INTEL/bond_fene_intel.cpp | 2 +- src/USER-INTEL/bond_harmonic_intel.cpp | 2 +- src/USER-INTEL/dihedral_fourier_intel.cpp | 2 +- src/USER-INTEL/dihedral_harmonic_intel.cpp | 2 +- src/USER-INTEL/dihedral_opls_intel.cpp | 2 +- src/USER-INTEL/fix_intel.cpp | 8 +++--- src/USER-INTEL/fix_intel.h | 14 +++++----- src/USER-INTEL/fix_nve_asphere_intel.cpp | 2 +- src/USER-INTEL/fix_nve_intel.cpp | 2 +- src/USER-INTEL/improper_cvff_intel.cpp | 2 +- src/USER-INTEL/improper_harmonic_intel.cpp | 2 +- src/USER-INTEL/intel_buffers.cpp | 14 +++++----- src/USER-INTEL/intel_buffers.h | 10 +++---- src/USER-INTEL/intel_intrinsics_airebo.h | 4 +-- src/USER-INTEL/npair_full_bin_ghost_intel.cpp | 2 +- src/USER-INTEL/npair_intel.cpp | 4 +-- src/USER-INTEL/pair_airebo_intel.cpp | 14 +++++----- src/USER-INTEL/pair_eam_intel.cpp | 2 +- src/USER-INTEL/pair_rebo_intel.cpp | 2 +- src/USER-INTEL/pair_sw_intel.cpp | 2 +- src/USER-INTEL/pppm_disp_intel.cpp | 26 +++++++++---------- src/USER-INTEL/pppm_intel.cpp | 2 +- src/USER-LB/fix_lb_fluid.cpp | 8 +++--- src/USER-LB/fix_lb_pc.cpp | 4 +-- src/USER-LB/fix_lb_rigid_pc_sphere.cpp | 2 +- src/USER-LB/fix_lb_viscous.cpp | 4 +-- src/USER-MANIFOLD/fix_manifoldforce.cpp | 4 +-- src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp | 4 +-- src/USER-MANIFOLD/fix_nvt_manifold_rattle.cpp | 4 +-- src/USER-MANIFOLD/manifold.h | 2 +- src/USER-MANIFOLD/manifold_cylinder.cpp | 4 +-- src/USER-MANIFOLD/manifold_cylinder_dent.cpp | 4 +-- src/USER-MANIFOLD/manifold_dumbbell.cpp | 2 +- src/USER-MANIFOLD/manifold_ellipsoid.cpp | 2 +- src/USER-MANIFOLD/manifold_gaussian_bump.cpp | 2 +- src/USER-MANIFOLD/manifold_plane.cpp | 4 +-- src/USER-MANIFOLD/manifold_plane_wiggle.cpp | 2 +- src/USER-MANIFOLD/manifold_spine.cpp | 2 +- src/USER-MANIFOLD/manifold_thylakoid.cpp | 4 +-- src/USER-MANIFOLD/manifold_torus.cpp | 2 +- src/USER-MEAMC/meam_dens_final.cpp | 2 +- src/USER-MEAMC/meam_dens_init.cpp | 4 +-- src/USER-MEAMC/meam_force.cpp | 2 +- src/USER-MEAMC/meam_setup_global.cpp | 2 +- src/USER-MEAMC/pair_meamc.cpp | 6 ++--- src/USER-MESO/fix_edpd_source.cpp | 2 +- src/USER-MESO/fix_mvv_dpd.cpp | 2 +- src/USER-MESO/fix_mvv_edpd.cpp | 2 +- src/USER-MESO/fix_mvv_tdpd.cpp | 2 +- src/USER-MESO/fix_tdpd_source.cpp | 2 +- src/USER-MESO/pair_edpd.cpp | 2 +- src/USER-MESO/pair_mdpd_rhosum.cpp | 8 +++--- src/USER-MESO/pair_tdpd.cpp | 4 +-- src/USER-MGPT/pair_mgpt.cpp | 6 ++--- src/USER-MISC/angle_dipole.cpp | 2 +- src/USER-MISC/bond_harmonic_shift.cpp | 2 +- src/USER-MISC/bond_harmonic_shift_cut.cpp | 2 +- src/USER-MISC/compute_ackland_atom.cpp | 2 +- src/USER-MISC/compute_basal_atom.cpp | 2 +- src/USER-MISC/compute_cnp_atom.cpp | 2 +- src/USER-MISC/compute_entropy_atom.cpp | 2 +- src/USER-MISC/fix_addtorque.cpp | 4 +-- src/USER-MISC/fix_ave_correlate_long.cpp | 2 +- src/USER-MISC/fix_bond_react.cpp | 6 ++--- src/USER-MISC/fix_filter_corotate.cpp | 8 +++--- src/USER-MISC/fix_flow_gauss.cpp | 4 +-- src/USER-MISC/fix_gle.cpp | 10 +++---- src/USER-MISC/fix_grem.cpp | 2 +- src/USER-MISC/fix_imd.cpp | 4 +-- src/USER-MISC/fix_ipi.cpp | 2 +- src/USER-MISC/fix_nvk.cpp | 6 ++--- src/USER-MISC/fix_pimd.cpp | 10 +++---- src/USER-MISC/fix_rhok.cpp | 4 +-- src/USER-MISC/fix_smd.cpp | 2 +- src/USER-MISC/fix_srp.cpp | 8 +++--- src/USER-MISC/fix_ti_spring.cpp | 10 +++---- src/USER-MISC/fix_ttm_mod.cpp | 10 +++---- src/USER-MISC/fix_wall_region_ees.cpp | 4 +-- src/USER-MISC/pair_agni.cpp | 2 +- src/USER-MISC/pair_buck_mdf.cpp | 4 +-- src/USER-MISC/pair_coul_diel.cpp | 2 +- src/USER-MISC/pair_coul_shield.cpp | 2 +- src/USER-MISC/pair_edip.cpp | 2 +- src/USER-MISC/pair_edip_multi.cpp | 2 +- src/USER-MISC/pair_extep.cpp | 2 +- src/USER-MISC/pair_gauss_cut.cpp | 4 +-- src/USER-MISC/pair_ilp_graphene_hbn.cpp | 6 ++--- src/USER-MISC/pair_kolmogorov_crespi_full.cpp | 6 ++--- src/USER-MISC/pair_lennard_mdf.cpp | 4 +-- src/USER-MISC/pair_lj_mdf.cpp | 4 +-- src/USER-MISC/pair_meam_spline.cpp | 10 +++---- src/USER-MISC/pair_meam_sw_spline.cpp | 10 +++---- src/USER-MISC/pair_momb.cpp | 4 +-- src/USER-MISC/pair_morse_smooth_linear.cpp | 4 +-- src/USER-MISC/pair_tersoff_table.cpp | 2 +- src/USER-MOFFF/angle_cosine_buck6d.cpp | 2 +- src/USER-PHONON/fix_phonon.cpp | 2 +- src/USER-QTB/fix_qbmsst.cpp | 6 ++--- src/USER-QTB/fix_qtb.cpp | 6 ++--- src/USER-QUIP/pair_quip.cpp | 4 +-- src/USER-REAXC/fix_qeq_reax.cpp | 10 +++---- src/USER-REAXC/fix_reaxc.cpp | 4 +-- src/USER-REAXC/fix_reaxc_bonds.cpp | 6 ++--- src/USER-REAXC/fix_reaxc_species.cpp | 8 +++--- src/USER-REAXC/pair_reaxc.cpp | 2 +- src/USER-REAXC/reaxc_allocate.cpp | 14 +++++----- src/USER-REAXC/reaxc_bond_orders.cpp | 4 +-- src/USER-REAXC/reaxc_bonds.cpp | 4 +-- src/USER-REAXC/reaxc_forces.cpp | 20 +++++++------- src/USER-REAXC/reaxc_hydrogen_bonds.cpp | 2 +- src/USER-REAXC/reaxc_init_md.cpp | 12 ++++----- src/USER-REAXC/reaxc_io_tools.cpp | 2 +- src/USER-REAXC/reaxc_lookup.cpp | 2 +- src/USER-REAXC/reaxc_multi_body.cpp | 2 +- src/USER-REAXC/reaxc_nonbonded.cpp | 4 +-- src/USER-REAXC/reaxc_reset_tools.cpp | 2 +- src/USER-REAXC/reaxc_torsion_angles.cpp | 2 +- src/USER-REAXC/reaxc_traj.cpp | 6 ++--- src/USER-REAXC/reaxc_valence_angles.cpp | 2 +- src/USER-SMD/atom_vec_smd.cpp | 20 +++++++------- src/USER-SMD/fix_smd_adjust_dt.cpp | 4 +-- src/USER-SMD/fix_smd_integrate_tlsph.cpp | 2 +- src/USER-SMD/fix_smd_integrate_ulsph.cpp | 2 +- .../fix_smd_move_triangulated_surface.cpp | 4 +-- src/USER-SMD/fix_smd_setvel.cpp | 2 +- .../fix_smd_tlsph_reference_configuration.cpp | 8 +++--- src/USER-SMD/fix_smd_wall_surface.cpp | 2 +- src/USER-SMD/pair_smd_hertz.cpp | 2 +- src/USER-SMD/pair_smd_tlsph.cpp | 8 +++--- .../pair_smd_triangulated_surface.cpp | 2 +- src/USER-SMD/pair_smd_ulsph.cpp | 4 +-- src/USER-SMD/smd_material_models.cpp | 4 +-- src/USER-SMTBQ/pair_smtbq.cpp | 18 ++++++------- src/USER-SPH/fix_meso.cpp | 4 +-- src/USER-SPH/fix_meso_stationary.cpp | 2 +- src/USER-SPH/pair_sph_heatconduction.cpp | 6 ++--- src/USER-SPH/pair_sph_idealgas.cpp | 6 ++--- src/USER-SPH/pair_sph_lj.cpp | 6 ++--- src/USER-SPH/pair_sph_rhosum.cpp | 6 ++--- src/USER-SPH/pair_sph_taitwater.cpp | 6 ++--- src/USER-SPH/pair_sph_taitwater_morris.cpp | 6 ++--- src/USER-UEF/fix_nh_uef.cpp | 2 +- 277 files changed, 594 insertions(+), 594 deletions(-) diff --git a/src/ASPHERE/fix_nve_asphere.cpp b/src/ASPHERE/fix_nve_asphere.cpp index a33848f1a1..61e3c35293 100644 --- a/src/ASPHERE/fix_nve_asphere.cpp +++ b/src/ASPHERE/fix_nve_asphere.cpp @@ -62,7 +62,7 @@ void FixNVEAsphere::init() /* ---------------------------------------------------------------------- */ -void FixNVEAsphere::initial_integrate(int vflag) +void FixNVEAsphere::initial_integrate(int /*vflag*/) { double dtfm; double inertia[3],omega[3]; diff --git a/src/ASPHERE/fix_nve_asphere_noforce.cpp b/src/ASPHERE/fix_nve_asphere_noforce.cpp index d944b68f35..9cc430592a 100644 --- a/src/ASPHERE/fix_nve_asphere_noforce.cpp +++ b/src/ASPHERE/fix_nve_asphere_noforce.cpp @@ -64,7 +64,7 @@ void FixNVEAsphereNoforce::init() /* ---------------------------------------------------------------------- */ -void FixNVEAsphereNoforce::initial_integrate(int vflag) +void FixNVEAsphereNoforce::initial_integrate(int /*vflag*/) { AtomVecEllipsoid::Bonus *bonus; if (avec) bonus = avec->bonus; diff --git a/src/ASPHERE/fix_nve_line.cpp b/src/ASPHERE/fix_nve_line.cpp index c145e99fcb..51a502df89 100644 --- a/src/ASPHERE/fix_nve_line.cpp +++ b/src/ASPHERE/fix_nve_line.cpp @@ -81,7 +81,7 @@ void FixNVELine::init() /* ---------------------------------------------------------------------- */ -void FixNVELine::initial_integrate(int vflag) +void FixNVELine::initial_integrate(int /*vflag*/) { double dtfm,dtirotate,length,theta; diff --git a/src/ASPHERE/fix_nve_tri.cpp b/src/ASPHERE/fix_nve_tri.cpp index d06063d905..fb9bf64c58 100644 --- a/src/ASPHERE/fix_nve_tri.cpp +++ b/src/ASPHERE/fix_nve_tri.cpp @@ -75,7 +75,7 @@ void FixNVETri::init() /* ---------------------------------------------------------------------- */ -void FixNVETri::initial_integrate(int vflag) +void FixNVETri::initial_integrate(int /*vflag*/) { double dtfm; double omega[3]; diff --git a/src/BODY/body_nparticle.cpp b/src/BODY/body_nparticle.cpp index 684e5768da..10529ad3af 100644 --- a/src/BODY/body_nparticle.cpp +++ b/src/BODY/body_nparticle.cpp @@ -195,7 +195,7 @@ void BodyNparticle::data_body(int ibonus, int ninteger, int ndouble, called by Molecule class which needs single body size ------------------------------------------------------------------------- */ -double BodyNparticle::radius_body(int ninteger, int ndouble, +double BodyNparticle::radius_body(int /*ninteger*/, int ndouble, int *ifile, double *dfile) { int nsub = ifile[0]; @@ -258,7 +258,7 @@ void BodyNparticle::output(int ibonus, int m, double *values) /* ---------------------------------------------------------------------- */ -int BodyNparticle::image(int ibonus, double flag1, double flag2, +int BodyNparticle::image(int ibonus, double flag1, double /*flag2*/, int *&ivec, double **&darray) { double p[3][3]; diff --git a/src/BODY/body_rounded_polygon.cpp b/src/BODY/body_rounded_polygon.cpp index 1e232f0f3f..00a09c912d 100644 --- a/src/BODY/body_rounded_polygon.cpp +++ b/src/BODY/body_rounded_polygon.cpp @@ -323,7 +323,7 @@ void BodyRoundedPolygon::data_body(int ibonus, int ninteger, int ndouble, called by Molecule class which needs single body size ------------------------------------------------------------------------- */ -double BodyRoundedPolygon::radius_body(int ninteger, int ndouble, +double BodyRoundedPolygon::radius_body(int /*ninteger*/, int ndouble, int *ifile, double *dfile) { int nsub = ifile[0]; @@ -392,7 +392,7 @@ void BodyRoundedPolygon::output(int ibonus, int m, double *values) /* ---------------------------------------------------------------------- */ -int BodyRoundedPolygon::image(int ibonus, double flag1, double flag2, +int BodyRoundedPolygon::image(int ibonus, double flag1, double /*flag2*/, int *&ivec, double **&darray) { int j; diff --git a/src/BODY/body_rounded_polyhedron.cpp b/src/BODY/body_rounded_polyhedron.cpp index 6a9b97ae23..5ba4bce8e8 100644 --- a/src/BODY/body_rounded_polyhedron.cpp +++ b/src/BODY/body_rounded_polyhedron.cpp @@ -381,7 +381,7 @@ void BodyRoundedPolyhedron::data_body(int ibonus, int ninteger, int ndouble, called by Molecule class which needs single body size ------------------------------------------------------------------------- */ -double BodyRoundedPolyhedron::radius_body(int ninteger, int ndouble, +double BodyRoundedPolyhedron::radius_body(int /*ninteger*/, int ndouble, int *ifile, double *dfile) { int nsub = ifile[0]; @@ -460,7 +460,7 @@ void BodyRoundedPolyhedron::output(int ibonus, int m, double *values) /* ---------------------------------------------------------------------- */ -int BodyRoundedPolyhedron::image(int ibonus, double flag1, double flag2, +int BodyRoundedPolyhedron::image(int ibonus, double flag1, double /*flag2*/, int *&ivec, double **&darray) { int j, nelements; diff --git a/src/BODY/fix_nve_body.cpp b/src/BODY/fix_nve_body.cpp index 0606723cb7..0c74facf34 100644 --- a/src/BODY/fix_nve_body.cpp +++ b/src/BODY/fix_nve_body.cpp @@ -54,7 +54,7 @@ void FixNVEBody::init() /* ---------------------------------------------------------------------- */ -void FixNVEBody::initial_integrate(int vflag) +void FixNVEBody::initial_integrate(int /*vflag*/) { double dtfm; double omega[3]; diff --git a/src/BODY/fix_wall_body_polygon.cpp b/src/BODY/fix_wall_body_polygon.cpp index 0e7aaea1e1..f217db774e 100644 --- a/src/BODY/fix_wall_body_polygon.cpp +++ b/src/BODY/fix_wall_body_polygon.cpp @@ -204,7 +204,7 @@ void FixWallBodyPolygon::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixWallBodyPolygon::post_force(int vflag) +void FixWallBodyPolygon::post_force(int /*vflag*/) { double vwall[3],dx,dy,dz,del1,del2,delxy,delr,rsq,eradi,rradi,wall_pos; int i,ni,npi,ifirst,nei,iefirst,side; @@ -475,7 +475,7 @@ void FixWallBodyPolygon::body2space(int i) int FixWallBodyPolygon::vertex_against_wall(int i, double wall_pos, double** x, double** f, double** torque, int side, - Contact* contact_list, int &num_contacts, double* facc) + Contact* contact_list, int &num_contacts, double* /*facc*/) { int ni, npi, ifirst, interact; double xpi[3], xpj[3], dist, eradi, rradi; diff --git a/src/BODY/fix_wall_body_polyhedron.cpp b/src/BODY/fix_wall_body_polyhedron.cpp index 17e9f0b8b5..b90731acf6 100644 --- a/src/BODY/fix_wall_body_polyhedron.cpp +++ b/src/BODY/fix_wall_body_polyhedron.cpp @@ -211,7 +211,7 @@ void FixWallBodyPolyhedron::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixWallBodyPolyhedron::post_force(int vflag) +void FixWallBodyPolyhedron::post_force(int /*vflag*/) { double vwall[3],dx,dy,dz,del1,del2,delxy,delr,rsq,eradi,rradi,wall_pos; int i,ni,npi,ifirst,nei,iefirst,nfi,iffirst,side; @@ -485,7 +485,7 @@ void FixWallBodyPolyhedron::body2space(int i) ---------------------------------------------------------------------- */ int FixWallBodyPolyhedron::sphere_against_wall(int i, double wall_pos, - int side, double* vwall, double** x, double** v, double** f, + int /*side*/, double* vwall, double** x, double** v, double** f, double** angmom, double** torque) { int mode; @@ -545,8 +545,8 @@ int FixWallBodyPolyhedron::sphere_against_wall(int i, double wall_pos, ---------------------------------------------------------------------- */ int FixWallBodyPolyhedron::edge_against_wall(int i, double wall_pos, - int side, double* vwall, double** x, double** f, double** torque, - Contact* contact_list, int &num_contacts, double* facc) + int side, double* vwall, double** x, double** /*f*/, double** /*torque*/, + Contact* /*contact_list*/, int &/*num_contacts*/, double* /*facc*/) { int ni, nei, mode, contact; double rradi; @@ -584,7 +584,7 @@ int FixWallBodyPolyhedron::edge_against_wall(int i, double wall_pos, int FixWallBodyPolyhedron::compute_distance_to_wall(int ibody, int edge_index, double *xmi, double rounded_radius_i, double wall_pos, - int side, double* vwall, int &contact) + int /*side*/, double* vwall, int &contact) { int mode,ifirst,iefirst,npi1,npi2; double d1,d2,xpi1[3],xpi2[3],hi[3]; @@ -698,7 +698,7 @@ int FixWallBodyPolyhedron::compute_distance_to_wall(int ibody, int edge_index, ------------------------------------------------------------------------- */ void FixWallBodyPolyhedron::contact_forces(int ibody, - double j_a, double *xi, double *xj, double delx, double dely, double delz, + double j_a, double *xi, double */*xj*/, double delx, double dely, double delz, double fx, double fy, double fz, double** x, double** v, double** angmom, double** f, double** torque, double* vwall) { diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp index 14ef70f476..97d3ad5606 100644 --- a/src/BODY/pair_body_rounded_polygon.cpp +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -598,7 +598,7 @@ void PairBodyRoundedPolygon::body2space(int i) void PairBodyRoundedPolygon::sphere_against_sphere(int i, int j, double delx, double dely, double delz, double rsq, - double k_n, double k_na, double** x, double** v, + double k_n, double k_na, double** /*x*/, double** v, double** f, int evflag) { double eradi,eradj,rradi,rradj; @@ -1166,7 +1166,7 @@ int PairBodyRoundedPolygon::compute_distance_to_vertex(int ibody, void PairBodyRoundedPolygon::contact_forces(Contact& contact, double j_a, double** x, double** v, double** angmom, double** f, - double** torque, double &evdwl, double* facc) + double** torque, double &/*evdwl*/, double* facc) { int ibody,jbody,ibonus,jbonus,ifirst,jefirst,ni,nj; double fx,fy,fz,delx,dely,delz,rsq,rsqinv; diff --git a/src/CLASS2/bond_class2.cpp b/src/CLASS2/bond_class2.cpp index c3dc09715c..af20313e0a 100644 --- a/src/CLASS2/bond_class2.cpp +++ b/src/CLASS2/bond_class2.cpp @@ -209,7 +209,7 @@ void BondClass2::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondClass2::single(int type, double rsq, int i, int j, double &fforce) +double BondClass2::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { double r = sqrt(rsq); double dr = r - r0[type]; diff --git a/src/CLASS2/improper_class2.cpp b/src/CLASS2/improper_class2.cpp index 3b3811584d..77f594af9d 100644 --- a/src/CLASS2/improper_class2.cpp +++ b/src/CLASS2/improper_class2.cpp @@ -633,7 +633,7 @@ void ImproperClass2::read_restart(FILE *fp) angle-angle interactions within improper ------------------------------------------------------------------------- */ -void ImproperClass2::angleangle(int eflag, int vflag) +void ImproperClass2::angleangle(int eflag, int /*vflag*/) { int i1,i2,i3,i4,i,j,k,n,type; double eimproper; diff --git a/src/CLASS2/pair_lj_class2.cpp b/src/CLASS2/pair_lj_class2.cpp index e255807ab6..6451921dc5 100644 --- a/src/CLASS2/pair_lj_class2.cpp +++ b/src/CLASS2/pair_lj_class2.cpp @@ -377,8 +377,8 @@ void PairLJClass2::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJClass2::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairLJClass2::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,rinv,r3inv,r6inv,forcelj,philj; diff --git a/src/COLLOID/pair_colloid.cpp b/src/COLLOID/pair_colloid.cpp index 4448d6e110..c16dbf41af 100644 --- a/src/COLLOID/pair_colloid.cpp +++ b/src/COLLOID/pair_colloid.cpp @@ -469,8 +469,8 @@ void PairColloid::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairColloid::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairColloid::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double K[9],h[4],g[4]; diff --git a/src/COLLOID/pair_lubricate.cpp b/src/COLLOID/pair_lubricate.cpp index f0f7ce8c14..fc1fa7acc5 100644 --- a/src/COLLOID/pair_lubricate.cpp +++ b/src/COLLOID/pair_lubricate.cpp @@ -749,7 +749,7 @@ void PairLubricate::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ int PairLubricate::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; @@ -797,7 +797,7 @@ void PairLubricate::unpack_forward_comm(int n, int first, double *buf) if type pair setting, return -2 if no type pairs are set ------------------------------------------------------------------------- */ -int PairLubricate::pre_adapt(char *name, int ilo, int ihi, int jlo, int jhi) +int PairLubricate::pre_adapt(char *name, int /*ilo*/, int /*ihi*/, int /*jlo*/, int /*jhi*/) { if (strcmp(name,"mu") == 0) return 0; return -1; @@ -809,7 +809,7 @@ int PairLubricate::pre_adapt(char *name, int ilo, int ihi, int jlo, int jhi) if type pair setting, set I-J and J-I coeffs ------------------------------------------------------------------------- */ -void PairLubricate::adapt(int which, int ilo, int ihi, int jlo, int jhi, +void PairLubricate::adapt(int /*which*/, int /*ilo*/, int /*ihi*/, int /*jlo*/, int /*jhi*/, double value) { mu = value; diff --git a/src/COLLOID/pair_lubricateU.cpp b/src/COLLOID/pair_lubricateU.cpp index 11fb213157..2d51f2e2b6 100644 --- a/src/COLLOID/pair_lubricateU.cpp +++ b/src/COLLOID/pair_lubricateU.cpp @@ -2010,7 +2010,7 @@ void PairLubricateU::copy_uo_vec(int inum, double **f, double **torque, /* ---------------------------------------------------------------------- */ int PairLubricateU::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/COLLOID/pair_yukawa_colloid.cpp b/src/COLLOID/pair_yukawa_colloid.cpp index 5965fd3aa8..d21bc43524 100644 --- a/src/COLLOID/pair_yukawa_colloid.cpp +++ b/src/COLLOID/pair_yukawa_colloid.cpp @@ -160,9 +160,9 @@ double PairYukawaColloid::init_one(int i, int j) /* ---------------------------------------------------------------------- */ -double PairYukawaColloid::single(int i, int j, int itype, int jtype, +double PairYukawaColloid::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double factor_lj, double &fforce) { double r,rinv,screening,forceyukawa,phi; diff --git a/src/KSPACE/pair_coul_long.cpp b/src/KSPACE/pair_coul_long.cpp index 4b10782ee6..8db5979b39 100644 --- a/src/KSPACE/pair_coul_long.cpp +++ b/src/KSPACE/pair_coul_long.cpp @@ -338,9 +338,9 @@ void PairCoulLong::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairCoulLong::single(int i, int j, int itype, int jtype, +double PairCoulLong::single(int i, int j, int /*itype*/, int /*jtype*/, double rsq, - double factor_coul, double factor_lj, + double factor_coul, double /*factor_lj*/, double &fforce) { double r2inv,r,grij,expm2,t,erfc,prefactor; diff --git a/src/KSPACE/pair_coul_msm.cpp b/src/KSPACE/pair_coul_msm.cpp index f5cd9a0445..ab59dfa4c1 100644 --- a/src/KSPACE/pair_coul_msm.cpp +++ b/src/KSPACE/pair_coul_msm.cpp @@ -169,9 +169,9 @@ void PairCoulMSM::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ -double PairCoulMSM::single(int i, int j, int itype, int jtype, +double PairCoulMSM::single(int i, int j, int /*itype*/, int /*jtype*/, double rsq, - double factor_coul, double factor_lj, + double factor_coul, double /*factor_lj*/, double &fforce) { double r2inv,r,egamma,fgamma,prefactor; diff --git a/src/KSPACE/pppm_disp.cpp b/src/KSPACE/pppm_disp.cpp index aea57da326..b8cd52c5fe 100644 --- a/src/KSPACE/pppm_disp.cpp +++ b/src/KSPACE/pppm_disp.cpp @@ -8052,7 +8052,7 @@ void PPPMDisp::compute_rho_coeff(FFT_SCALAR **coeff , FFT_SCALAR **dcoeff, extended to non-neutral systems (J. Chem. Phys. 131, 094107). ------------------------------------------------------------------------- */ -void PPPMDisp::slabcorr(int eflag) +void PPPMDisp::slabcorr(int /*eflag*/) { // compute local contribution to global dipole moment diff --git a/src/KSPACE/remap.cpp b/src/KSPACE/remap.cpp index 81dd692f4f..26541f121e 100644 --- a/src/KSPACE/remap.cpp +++ b/src/KSPACE/remap.cpp @@ -234,7 +234,7 @@ struct remap_plan_3d *remap_3d_create_plan( int in_klo, int in_khi, int out_ilo, int out_ihi, int out_jlo, int out_jhi, int out_klo, int out_khi, - int nqty, int permute, int memory, int precision, int usecollective) + int nqty, int permute, int memory, int /*precision*/, int usecollective) { diff --git a/src/LATTE/fix_latte.cpp b/src/LATTE/fix_latte.cpp index 18502dd013..c9dd0465f8 100644 --- a/src/LATTE/fix_latte.cpp +++ b/src/LATTE/fix_latte.cpp @@ -189,7 +189,7 @@ void FixLatte::init() /* ---------------------------------------------------------------------- */ -void FixLatte::init_list(int id, NeighList *ptr) +void FixLatte::init_list(int /*id*/, NeighList */*ptr*/) { // list = ptr; } @@ -223,13 +223,13 @@ void FixLatte::setup_pre_reverse(int eflag, int vflag) integrate electronic degrees of freedom ------------------------------------------------------------------------- */ -void FixLatte::initial_integrate(int vflag) {} +void FixLatte::initial_integrate(int /*vflag*/) {} /* ---------------------------------------------------------------------- store eflag, so can use it in post_force to tally per-atom energies ------------------------------------------------------------------------- */ -void FixLatte::pre_reverse(int eflag, int vflag) +void FixLatte::pre_reverse(int eflag, int /*vflag*/) { eflag_caller = eflag; } diff --git a/src/MANYBODY/fix_qeq_comb.cpp b/src/MANYBODY/fix_qeq_comb.cpp index b8d9c7e6df..61bf9bf11c 100644 --- a/src/MANYBODY/fix_qeq_comb.cpp +++ b/src/MANYBODY/fix_qeq_comb.cpp @@ -159,7 +159,7 @@ void FixQEQComb::min_post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixQEQComb::post_force(int vflag) +void FixQEQComb::post_force(int /*vflag*/) { int i,ii,iloop,loopmax,inum,*ilist; double heatpq,qmass,dtq,dtq2; @@ -276,7 +276,7 @@ void FixQEQComb::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixQEQComb::post_force_respa(int vflag, int ilevel, int iloop) +void FixQEQComb::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } @@ -293,7 +293,7 @@ double FixQEQComb::memory_usage() /* ---------------------------------------------------------------------- */ int FixQEQComb::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_adp.cpp b/src/MANYBODY/pair_adp.cpp index d0b4d19758..fd496fcae6 100644 --- a/src/MANYBODY/pair_adp.cpp +++ b/src/MANYBODY/pair_adp.cpp @@ -424,7 +424,7 @@ void PairADP::allocate() global settings ------------------------------------------------------------------------- */ -void PairADP::settings(int narg, char **arg) +void PairADP::settings(int narg, char **/*arg*/) { if (narg > 0) error->all(FLERR,"Illegal pair_style command"); } @@ -521,7 +521,7 @@ void PairADP::init_style() init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairADP::init_one(int i, int j) +double PairADP::init_one(int /*i*/, int /*j*/) { // single global cutoff = max of cut from all files read in // for funcfl could be multiple files @@ -935,7 +935,7 @@ void PairADP::grab(FILE *fp, int n, double *list) /* ---------------------------------------------------------------------- */ int PairADP::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_airebo.cpp b/src/MANYBODY/pair_airebo.cpp index 3be27354c1..ac3ed36a83 100644 --- a/src/MANYBODY/pair_airebo.cpp +++ b/src/MANYBODY/pair_airebo.cpp @@ -425,7 +425,7 @@ void PairAIREBO::REBO_neigh() REBO forces and energy ------------------------------------------------------------------------- */ -void PairAIREBO::FREBO(int eflag, int vflag) +void PairAIREBO::FREBO(int eflag, int /*vflag*/) { int i,j,k,m,ii,inum,itype,jtype; tagint itag,jtag; @@ -524,7 +524,7 @@ void PairAIREBO::FREBO(int eflag, int vflag) find 3- and 4-step paths between atoms I,J via REBO neighbor lists ------------------------------------------------------------------------- */ -void PairAIREBO::FLJ(int eflag, int vflag) +void PairAIREBO::FLJ(int eflag, int /*vflag*/) { int i,j,k,m,ii,jj,kk,mm,inum,jnum,itype,jtype,ktype,mtype; int atomi,atomj,atomk,atomm; @@ -893,7 +893,7 @@ void PairAIREBO::FLJ(int eflag, int vflag) torsional forces and energy ------------------------------------------------------------------------- */ -void PairAIREBO::TORSION(int eflag, int vflag) +void PairAIREBO::TORSION(int eflag, int /*vflag*/) { int i,j,k,l,ii,inum; tagint itag,jtag; @@ -2116,7 +2116,7 @@ but of the vector r_ij. */ -double PairAIREBO::bondorderLJ(int i, int j, double rij_mod[3], double rijmag_mod, +double PairAIREBO::bondorderLJ(int i, int j, double /*rij_mod*/[3], double rijmag_mod, double VA, double rij[3], double rijmag, double **f, int vflag_atom) { diff --git a/src/MANYBODY/pair_comb.cpp b/src/MANYBODY/pair_comb.cpp index de686d4bcf..b205fc46d3 100644 --- a/src/MANYBODY/pair_comb.cpp +++ b/src/MANYBODY/pair_comb.cpp @@ -432,7 +432,7 @@ void PairComb::allocate() global settings ------------------------------------------------------------------------- */ -void PairComb::settings(int narg, char **arg) +void PairComb::settings(int narg, char **/*arg*/) { if (narg > 0) error->all(FLERR,"Illegal pair_style command"); } @@ -1542,7 +1542,7 @@ void PairComb::potal_calc(double &calc1, double &calc2, double &calc3) void PairComb::tri_point(double rsq, int &mr1, int &mr2, int &mr3, double &sr1, double &sr2, - double &sr3, int &itype) + double &sr3, int &/*itype*/) { double r, rin, dr, dd, rr1, rridr, rridr2; @@ -1572,7 +1572,7 @@ void PairComb::tri_point(double rsq, int &mr1, int &mr2, void PairComb::direct(int inty, int mr1, int mr2, int mr3, double rsq, double sr1, double sr2, double sr3, double iq, double jq, - double potal, double fac11, double fac11e, + double /*potal*/, double fac11, double fac11e, double &pot_tmp, double &pot_d) { double r,erfcc,fafbn1,potij,sme2,esucon; @@ -2002,7 +2002,7 @@ void PairComb::Over_cor(Param *param, double rsq1, int NCoi, /* ---------------------------------------------------------------------- */ int PairComb::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_comb3.cpp b/src/MANYBODY/pair_comb3.cpp index b4f9c02206..54fd13029b 100644 --- a/src/MANYBODY/pair_comb3.cpp +++ b/src/MANYBODY/pair_comb3.cpp @@ -1569,7 +1569,7 @@ void PairComb3::compute(int eflag, int vflag) /* ---------------------------------------------------------------------- */ void PairComb3::repulsive(Param *parami, Param *paramj, double rsq, - double &fforce,int eflag, double &eng, double iq, double jq) + double &fforce,int /*eflag*/, double &eng, double iq, double jq) { double r,tmp_fc,tmp_fc_d,Di,Dj; double caj,vrcs,fvrcs; @@ -1614,7 +1614,7 @@ void PairComb3::repulsive(Param *parami, Param *paramj, double rsq, /* ---------------------------------------------------------------------- */ double PairComb3::zeta(Param *parami, Param *paramj, double rsqij, - double rsqik, double *delrij, double *delrik, int i, double xcn) + double rsqik, double *delrij, double *delrik, int /*i*/, double xcn) { double rij,rik,costheta,arg,ex_delr,rlm3; @@ -1661,7 +1661,7 @@ void PairComb3::selfp6p(Param *parami, Param *paramj, double rsq, /* ---------------------------------------------------------------------- */ double PairComb3::ep6p(Param *paramj, Param *paramk, double rsqij, double rsqik, - double *delrij, double *delrik , double &zet_add) + double *delrij, double *delrik , double &/*zet_add*/) { double comtt; double pplp0 = paramj->p6p0; @@ -2109,7 +2109,7 @@ void PairComb3::coord(Param *param, double r, int i, void PairComb3::cntri_int(int tri_flag, double xval, double yval, double zval, int ixmin, int iymin, int izmin, double &vval, - double &dvalx, double &dvaly, double &dvalz, Param *param) + double &dvalx, double &dvaly, double &dvalz, Param */*param*/) { double x; vval = 0.0; dvalx = 0.0; dvaly = 0.0; dvalz = 0.0; @@ -2254,7 +2254,7 @@ void PairComb3::comb_gijk_d(double costheta, Param *param, double nco_tmp, void PairComb3::attractive(Param *parami, Param *paramj , Param *paramk, double prefac_ij1, double prefac_ij2, double prefac_ij3, double prefac_ij4, double prefac_ij5, double rsqij, double rsqik, double *delrij, - double *delrik, double *fi, double *fj,double *fk, int i, double xcn) + double *delrik, double *fi, double *fj,double *fk, int /*i*/, double xcn) { double rij_hat[3],rik_hat[3]; double rij,rijinv,rik,rikinv; @@ -2867,7 +2867,7 @@ void PairComb3::field(Param *parami, Param *paramj, double rsq, double iq, /* ---------------------------------------------------------------------- */ -double PairComb3::rad_init(double rsq2,Param *param,int i, +double PairComb3::rad_init(double rsq2,Param *param,int /*i*/, double &radtot, double cnconj) { double r, fc1k, radcut; @@ -2882,7 +2882,7 @@ double PairComb3::rad_init(double rsq2,Param *param,int i, /* ---------------------------------------------------------------------- */ void PairComb3::rad_calc(double r, Param *parami, Param *paramj, - double kconjug, double lconjug, int i, int j, double xcn, double ycn) + double kconjug, double lconjug, int /*i*/, int /*j*/, double xcn, double ycn) { int ixmin, iymin, izmin; int radindx; @@ -3061,7 +3061,7 @@ double PairComb3::bbtor1(int torindx, Param *paramk, Param *paraml, /* ---------------------------------------------------------------------- */ void PairComb3::tor_calc(double r, Param *parami, Param *paramj, - double kconjug, double lconjug, int i, int j, double xcn, double ycn) + double kconjug, double lconjug, int /*i*/, int /*j*/, double xcn, double ycn) { int ixmin, iymin, izmin; double vtor, dtorx, dtory, dtorz; @@ -3589,7 +3589,7 @@ void PairComb3::qfo_dipole(double fac11, int mr1, int mr2, int mr3, void PairComb3::qfo_short(Param *parami, Param *paramj, double rsq, double iq, double jq, double &fqij, double &fqji, - int i, int j, int nj) + int i, int /*j*/, int nj) { double r, tmp_fc; double Di, Dj, dDi, dDj, Bsi, Bsj, dBsi, dBsj; @@ -3863,7 +3863,7 @@ double PairComb3::switching_d(double rr) /* ---------------------------------------------------------------------- */ int PairComb3::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_eam.cpp b/src/MANYBODY/pair_eam.cpp index 9e70b19eea..a861f33824 100644 --- a/src/MANYBODY/pair_eam.cpp +++ b/src/MANYBODY/pair_eam.cpp @@ -347,7 +347,7 @@ void PairEAM::allocate() global settings ------------------------------------------------------------------------- */ -void PairEAM::settings(int narg, char **arg) +void PairEAM::settings(int narg, char **/*arg*/) { if (narg > 0) error->all(FLERR,"Illegal pair_style command"); } @@ -795,7 +795,7 @@ void PairEAM::grab(FILE *fptr, int n, double *list) /* ---------------------------------------------------------------------- */ double PairEAM::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, + double rsq, double /*factor_coul*/, double /*factor_lj*/, double &fforce) { int m; @@ -829,7 +829,7 @@ double PairEAM::single(int i, int j, int itype, int jtype, /* ---------------------------------------------------------------------- */ int PairEAM::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_eam_cd.cpp b/src/MANYBODY/pair_eam_cd.cpp index 66ebad6244..9b8fd29465 100644 --- a/src/MANYBODY/pair_eam_cd.cpp +++ b/src/MANYBODY/pair_eam_cd.cpp @@ -539,7 +539,7 @@ void PairEAMCD::read_h_coeff(char *filename) /* ---------------------------------------------------------------------- */ int PairEAMCD::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_eim.cpp b/src/MANYBODY/pair_eim.cpp index b810d444fc..cc35004778 100644 --- a/src/MANYBODY/pair_eim.cpp +++ b/src/MANYBODY/pair_eim.cpp @@ -342,7 +342,7 @@ void PairEIM::allocate() global settings ------------------------------------------------------------------------- */ -void PairEIM::settings(int narg, char **arg) +void PairEIM::settings(int narg, char **/*arg*/) { if (narg > 0) error->all(FLERR,"Illegal pair_style command"); } @@ -850,7 +850,7 @@ void PairEIM::array2spline() /* ---------------------------------------------------------------------- */ void PairEIM::interpolate(int n, double delta, double *f, - double **spline, double origin) + double **spline, double /*origin*/) { for (int m = 1; m <= n; m++) spline[m][6] = f[m]; @@ -1087,7 +1087,7 @@ double PairEIM::funccoul(int i, int j, double r) /* ---------------------------------------------------------------------- */ int PairEIM::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_gw.cpp b/src/MANYBODY/pair_gw.cpp index 35f092b580..0aff4970bb 100644 --- a/src/MANYBODY/pair_gw.cpp +++ b/src/MANYBODY/pair_gw.cpp @@ -257,7 +257,7 @@ void PairGW::allocate() global settings ------------------------------------------------------------------------- */ -void PairGW::settings(int narg, char **arg) +void PairGW::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/MANYBODY/pair_lcbop.cpp b/src/MANYBODY/pair_lcbop.cpp index d334defcc6..57373c4f85 100644 --- a/src/MANYBODY/pair_lcbop.cpp +++ b/src/MANYBODY/pair_lcbop.cpp @@ -121,7 +121,7 @@ void PairLCBOP::allocate() global settings ------------------------------------------------------------------------- */ -void PairLCBOP::settings(int narg, char **arg) { +void PairLCBOP::settings(int narg, char **/*arg*/) { if( narg != 0 ) error->all(FLERR,"Illegal pair_style command"); } @@ -353,7 +353,7 @@ void PairLCBOP::SR_neigh() Short range forces and energy ------------------------------------------------------------------------- */ -void PairLCBOP::FSR(int eflag, int vflag) +void PairLCBOP::FSR(int eflag, int /*vflag*/) { int i,j,jj,ii,inum; tagint itag,jtag; @@ -449,7 +449,7 @@ void PairLCBOP::FSR(int eflag, int vflag) compute long range forces and energy ------------------------------------------------------------------------- */ -void PairLCBOP::FLR(int eflag, int vflag) +void PairLCBOP::FLR(int eflag, int /*vflag*/) { int i,j,jj,ii; tagint itag,jtag; diff --git a/src/MANYBODY/pair_nb3b_harmonic.cpp b/src/MANYBODY/pair_nb3b_harmonic.cpp index 36be9c2b90..a09f8a23e6 100644 --- a/src/MANYBODY/pair_nb3b_harmonic.cpp +++ b/src/MANYBODY/pair_nb3b_harmonic.cpp @@ -174,7 +174,7 @@ void PairNb3bHarmonic::allocate() global settings ------------------------------------------------------------------------- */ -void PairNb3bHarmonic::settings(int narg, char **arg) +void PairNb3bHarmonic::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } @@ -454,7 +454,7 @@ void PairNb3bHarmonic::setup_params() /* ---------------------------------------------------------------------- */ -void PairNb3bHarmonic::threebody(Param *paramij, Param *paramik, +void PairNb3bHarmonic::threebody(Param */*paramij*/, Param */*paramik*/, Param *paramijk, double rsq1, double rsq2, double *delr1, double *delr2, diff --git a/src/MANYBODY/pair_polymorphic.cpp b/src/MANYBODY/pair_polymorphic.cpp index 2afb08b7a1..ce9af66d30 100644 --- a/src/MANYBODY/pair_polymorphic.cpp +++ b/src/MANYBODY/pair_polymorphic.cpp @@ -450,7 +450,7 @@ void PairPolymorphic::allocate() global settings ------------------------------------------------------------------------- */ -void PairPolymorphic::settings(int narg, char **arg) +void PairPolymorphic::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/MANYBODY/pair_rebo.cpp b/src/MANYBODY/pair_rebo.cpp index 37948f3038..1f31c0b0cd 100644 --- a/src/MANYBODY/pair_rebo.cpp +++ b/src/MANYBODY/pair_rebo.cpp @@ -24,7 +24,7 @@ PairREBO::PairREBO(LAMMPS *lmp) : PairAIREBO(lmp) {} global settings ------------------------------------------------------------------------- */ -void PairREBO::settings(int narg, char **arg) +void PairREBO::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); diff --git a/src/MANYBODY/pair_sw.cpp b/src/MANYBODY/pair_sw.cpp index 6fbc00204c..da470d568a 100644 --- a/src/MANYBODY/pair_sw.cpp +++ b/src/MANYBODY/pair_sw.cpp @@ -239,7 +239,7 @@ void PairSW::allocate() global settings ------------------------------------------------------------------------- */ -void PairSW::settings(int narg, char **arg) +void PairSW::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/MANYBODY/pair_tersoff.cpp b/src/MANYBODY/pair_tersoff.cpp index 507b07e29a..45068e5c2e 100644 --- a/src/MANYBODY/pair_tersoff.cpp +++ b/src/MANYBODY/pair_tersoff.cpp @@ -280,7 +280,7 @@ void PairTersoff::allocate() global settings ------------------------------------------------------------------------- */ -void PairTersoff::settings(int narg, char **arg) +void PairTersoff::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/MANYBODY/pair_vashishta.cpp b/src/MANYBODY/pair_vashishta.cpp index 8506c9a69f..54b184ea39 100644 --- a/src/MANYBODY/pair_vashishta.cpp +++ b/src/MANYBODY/pair_vashishta.cpp @@ -245,7 +245,7 @@ void PairVashishta::allocate() global settings ------------------------------------------------------------------------- */ -void PairVashishta::settings(int narg, char **arg) +void PairVashishta::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/MC/fix_atom_swap.cpp b/src/MC/fix_atom_swap.cpp index 4d9377022b..b795b71273 100644 --- a/src/MC/fix_atom_swap.cpp +++ b/src/MC/fix_atom_swap.cpp @@ -695,7 +695,7 @@ void FixAtomSwap::update_swap_atoms_list() /* ---------------------------------------------------------------------- */ -int FixAtomSwap::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) +int FixAtomSwap::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/MC/fix_bond_break.cpp b/src/MC/fix_bond_break.cpp index 9a5b59b601..203d6b589b 100644 --- a/src/MC/fix_bond_break.cpp +++ b/src/MC/fix_bond_break.cpp @@ -693,7 +693,7 @@ int FixBondBreak::dedup(int nstart, int nstop, tagint *copy) /* ---------------------------------------------------------------------- */ -void FixBondBreak::post_integrate_respa(int ilevel, int iloop) +void FixBondBreak::post_integrate_respa(int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_integrate(); } @@ -701,7 +701,7 @@ void FixBondBreak::post_integrate_respa(int ilevel, int iloop) /* ---------------------------------------------------------------------- */ int FixBondBreak::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,k,m,ns; diff --git a/src/MC/fix_bond_create.cpp b/src/MC/fix_bond_create.cpp index 8e9db6a18b..17ea7fb3f2 100644 --- a/src/MC/fix_bond_create.cpp +++ b/src/MC/fix_bond_create.cpp @@ -258,14 +258,14 @@ void FixBondCreate::init() /* ---------------------------------------------------------------------- */ -void FixBondCreate::init_list(int id, NeighList *ptr) +void FixBondCreate::init_list(int /*id*/, NeighList *ptr) { list = ptr; } /* ---------------------------------------------------------------------- */ -void FixBondCreate::setup(int vflag) +void FixBondCreate::setup(int /*vflag*/) { int i,j,m; @@ -1206,7 +1206,7 @@ int FixBondCreate::dedup(int nstart, int nstop, tagint *copy) /* ---------------------------------------------------------------------- */ -void FixBondCreate::post_integrate_respa(int ilevel, int iloop) +void FixBondCreate::post_integrate_respa(int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_integrate(); } @@ -1214,7 +1214,7 @@ void FixBondCreate::post_integrate_respa(int ilevel, int iloop) /* ---------------------------------------------------------------------- */ int FixBondCreate::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,k,m,ns; @@ -1347,7 +1347,7 @@ void FixBondCreate::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixBondCreate::copy_arrays(int i, int j, int delflag) +void FixBondCreate::copy_arrays(int i, int j, int /*delflag*/) { bondcount[j] = bondcount[i]; } diff --git a/src/MC/fix_bond_swap.cpp b/src/MC/fix_bond_swap.cpp index d6df4d9a96..9a72667907 100644 --- a/src/MC/fix_bond_swap.cpp +++ b/src/MC/fix_bond_swap.cpp @@ -182,7 +182,7 @@ void FixBondSwap::init() /* ---------------------------------------------------------------------- */ -void FixBondSwap::init_list(int id, NeighList *ptr) +void FixBondSwap::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/MC/fix_tfmc.cpp b/src/MC/fix_tfmc.cpp index b821710353..46c5e592ae 100644 --- a/src/MC/fix_tfmc.cpp +++ b/src/MC/fix_tfmc.cpp @@ -158,7 +158,7 @@ void FixTFMC::init() /* ---------------------------------------------------------------------- */ -void FixTFMC::initial_integrate(int vflag) +void FixTFMC::initial_integrate(int /*vflag*/) { double boltz = force->boltz; double **x = atom->x; diff --git a/src/MC/pair_dsmc.cpp b/src/MC/pair_dsmc.cpp index 02f9754c2a..c71eaa2295 100644 --- a/src/MC/pair_dsmc.cpp +++ b/src/MC/pair_dsmc.cpp @@ -65,7 +65,7 @@ PairDSMC::~PairDSMC() /* ---------------------------------------------------------------------- */ -void PairDSMC::compute(int eflag, int vflag) +void PairDSMC::compute(int /*eflag*/, int /*vflag*/) { double **x = atom->x; double *mass = atom->mass; @@ -405,7 +405,7 @@ void PairDSMC::read_restart_settings(FILE *fp) the next nrezero timesteps -------------------------------------------------------------------------*/ -void PairDSMC::recompute_V_sigma_max(int icell) +void PairDSMC::recompute_V_sigma_max(int /*icell*/) { int i,j,k; double Vsigma_max = 0; @@ -459,7 +459,7 @@ double PairDSMC::V_sigma(int i, int j) generate new velocities for collided particles -------------------------------------------------------------------------*/ -void PairDSMC::scatter_random(int i, int j, int icell) +void PairDSMC::scatter_random(int i, int j, int /*icell*/) { double mag_delv,cos_phi,cos_squared,r,theta; double delv[3],vcm[3]; diff --git a/src/MEAM/pair_meam.cpp b/src/MEAM/pair_meam.cpp index 687055aa6a..41f1f4ce37 100644 --- a/src/MEAM/pair_meam.cpp +++ b/src/MEAM/pair_meam.cpp @@ -325,7 +325,7 @@ void PairMEAM::allocate() global settings ------------------------------------------------------------------------- */ -void PairMEAM::settings(int narg, char **arg) +void PairMEAM::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } @@ -448,7 +448,7 @@ void PairMEAM::init_list(int id, NeighList *ptr) init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairMEAM::init_one(int i, int j) +double PairMEAM::init_one(int /*i*/, int /*j*/) { return cutmax; } @@ -734,7 +734,7 @@ void PairMEAM::read_files(char *globalfile, char *userfile) /* ---------------------------------------------------------------------- */ int PairMEAM::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,k,m; diff --git a/src/MISC/fix_efield.cpp b/src/MISC/fix_efield.cpp index 1fa141e2bf..004c8ad7bc 100644 --- a/src/MISC/fix_efield.cpp +++ b/src/MISC/fix_efield.cpp @@ -412,7 +412,7 @@ void FixEfield::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixEfield::post_force_respa(int vflag, int ilevel, int iloop) +void FixEfield::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/MISC/fix_gld.cpp b/src/MISC/fix_gld.cpp index 370730133e..2bf02889a5 100644 --- a/src/MISC/fix_gld.cpp +++ b/src/MISC/fix_gld.cpp @@ -217,7 +217,7 @@ void FixGLD::init() First half of a timestep (V^{n} -> V^{n+1/2}; X^{n} -> X^{n+1}) ------------------------------------------------------------------------- */ -void FixGLD::initial_integrate(int vflag) +void FixGLD::initial_integrate(int /*vflag*/) { double dtfm; double ftm2v = force->ftm2v; @@ -444,7 +444,7 @@ void FixGLD::final_integrate() /* ---------------------------------------------------------------------- */ -void FixGLD::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixGLD::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/) { dtv = step_respa[ilevel]; dtf = 0.5 * step_respa[ilevel] * (force->ftm2v); @@ -458,7 +458,7 @@ void FixGLD::initial_integrate_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ -void FixGLD::final_integrate_respa(int ilevel, int iloop) +void FixGLD::final_integrate_respa(int ilevel, int /*iloop*/) { dtf = 0.5 * step_respa[ilevel] * (force->ftm2v); final_integrate(); @@ -507,7 +507,7 @@ void FixGLD::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixGLD::copy_arrays(int i, int j, int delflag) +void FixGLD::copy_arrays(int i, int j, int /*delflag*/) { for (int k = 0; k < 3*prony_terms; k++) { s_gld[j][k] = s_gld[i][k]; @@ -588,7 +588,7 @@ void FixGLD::unpack_restart(int nlocal, int nth) fixes on a given processor. ------------------------------------------------------------------------- */ -int FixGLD::size_restart(int nlocal) +int FixGLD::size_restart(int /*nlocal*/) { return 3*prony_terms+1; } diff --git a/src/MISC/fix_orient_bcc.cpp b/src/MISC/fix_orient_bcc.cpp index c5ba6514a9..9b22e571fe 100644 --- a/src/MISC/fix_orient_bcc.cpp +++ b/src/MISC/fix_orient_bcc.cpp @@ -230,7 +230,7 @@ void FixOrientBCC::init() /* ---------------------------------------------------------------------- */ -void FixOrientBCC::init_list(int id, NeighList *ptr) +void FixOrientBCC::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -250,7 +250,7 @@ void FixOrientBCC::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixOrientBCC::post_force(int vflag) +void FixOrientBCC::post_force(int /*vflag*/) { int i,j,k,ii,jj,inum,jnum,m,n,nn,nsort; tagint id_self; @@ -471,7 +471,7 @@ void FixOrientBCC::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixOrientBCC::post_force_respa(int vflag, int ilevel, int iloop) +void FixOrientBCC::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } @@ -488,7 +488,7 @@ double FixOrientBCC::compute_scalar() /* ---------------------------------------------------------------------- */ int FixOrientBCC::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,k,num; tagint id; diff --git a/src/MISC/fix_orient_fcc.cpp b/src/MISC/fix_orient_fcc.cpp index 5786571a89..b061627fd8 100644 --- a/src/MISC/fix_orient_fcc.cpp +++ b/src/MISC/fix_orient_fcc.cpp @@ -228,7 +228,7 @@ void FixOrientFCC::init() /* ---------------------------------------------------------------------- */ -void FixOrientFCC::init_list(int id, NeighList *ptr) +void FixOrientFCC::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -248,7 +248,7 @@ void FixOrientFCC::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixOrientFCC::post_force(int vflag) +void FixOrientFCC::post_force(int /*vflag*/) { int i,j,k,ii,jj,inum,jnum,m,n,nn,nsort; tagint id_self; @@ -469,7 +469,7 @@ void FixOrientFCC::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixOrientFCC::post_force_respa(int vflag, int ilevel, int iloop) +void FixOrientFCC::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } @@ -486,7 +486,7 @@ double FixOrientFCC::compute_scalar() /* ---------------------------------------------------------------------- */ int FixOrientFCC::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,k,num; tagint id; diff --git a/src/MISC/fix_ttm.cpp b/src/MISC/fix_ttm.cpp index 7ffd979e50..c8f33c73b7 100644 --- a/src/MISC/fix_ttm.cpp +++ b/src/MISC/fix_ttm.cpp @@ -235,7 +235,7 @@ void FixTTM::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixTTM::post_force(int vflag) +void FixTTM::post_force(int /*vflag*/) { double **x = atom->x; double **v = atom->v; @@ -287,7 +287,7 @@ void FixTTM::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixTTM::post_force_setup(int vflag) +void FixTTM::post_force_setup(int /*vflag*/) { double **f = atom->f; int *mask = atom->mask; @@ -306,14 +306,14 @@ void FixTTM::post_force_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixTTM::post_force_respa(int vflag, int ilevel, int iloop) +void FixTTM::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } /* ---------------------------------------------------------------------- */ -void FixTTM::post_force_respa_setup(int vflag, int ilevel, int iloop) +void FixTTM::post_force_respa_setup(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force_setup(vflag); } @@ -685,7 +685,7 @@ int FixTTM::maxsize_restart() size of atom nlocal's restart data ------------------------------------------------------------------------- */ -int FixTTM::size_restart(int nlocal) +int FixTTM::size_restart(int /*nlocal*/) { return 4; } diff --git a/src/MISC/pair_nm_cut.cpp b/src/MISC/pair_nm_cut.cpp index a778d7a5b6..ce077a7a04 100644 --- a/src/MISC/pair_nm_cut.cpp +++ b/src/MISC/pair_nm_cut.cpp @@ -401,8 +401,8 @@ void PairNMCut::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairNMCut::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, +double PairNMCut::single(int /*i*/, int /*j*/, int itype, int jtype, + double rsq, double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r,forcenm,phinm; diff --git a/src/MISC/xdr_compat.cpp b/src/MISC/xdr_compat.cpp index 3987aa02fc..c67925d92a 100644 --- a/src/MISC/xdr_compat.cpp +++ b/src/MISC/xdr_compat.cpp @@ -650,7 +650,7 @@ xdrstdio_setpos (XDR *xdrs, unsigned int pos) } static xdr_int32_t * -xdrstdio_inline (XDR *xdrs, int len) +xdrstdio_inline (XDR */*xdrs*/, int /*len*/) { /* * Must do some work to implement this: must insure diff --git a/src/MOLECULE/angle_cosine.cpp b/src/MOLECULE/angle_cosine.cpp index e3472dfd7a..7fb7ce4c27 100644 --- a/src/MOLECULE/angle_cosine.cpp +++ b/src/MOLECULE/angle_cosine.cpp @@ -172,7 +172,7 @@ void AngleCosine::coeff(int narg, char **arg) /* ---------------------------------------------------------------------- */ -double AngleCosine::equilibrium_angle(int i) +double AngleCosine::equilibrium_angle(int /*i*/) { return MY_PI; } diff --git a/src/MOLECULE/angle_cosine_periodic.cpp b/src/MOLECULE/angle_cosine_periodic.cpp index 4e620b436e..e8dd970b3b 100644 --- a/src/MOLECULE/angle_cosine_periodic.cpp +++ b/src/MOLECULE/angle_cosine_periodic.cpp @@ -222,7 +222,7 @@ void AngleCosinePeriodic::coeff(int narg, char **arg) /* ---------------------------------------------------------------------- */ -double AngleCosinePeriodic::equilibrium_angle(int i) +double AngleCosinePeriodic::equilibrium_angle(int /*i*/) { return MY_PI; } diff --git a/src/MOLECULE/bond_fene.cpp b/src/MOLECULE/bond_fene.cpp index b6da72bfaf..671290b0ad 100644 --- a/src/MOLECULE/bond_fene.cpp +++ b/src/MOLECULE/bond_fene.cpp @@ -242,7 +242,7 @@ void BondFENE::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondFENE::single(int type, double rsq, int i, int j, +double BondFENE::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { double r0sq = r0[type] * r0[type]; diff --git a/src/MOLECULE/bond_fene_expand.cpp b/src/MOLECULE/bond_fene_expand.cpp index 26b699d7bf..3e191683fb 100644 --- a/src/MOLECULE/bond_fene_expand.cpp +++ b/src/MOLECULE/bond_fene_expand.cpp @@ -253,7 +253,7 @@ void BondFENEExpand::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondFENEExpand::single(int type, double rsq, int i, int j, +double BondFENEExpand::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { double r = sqrt(rsq); diff --git a/src/MOLECULE/bond_gromos.cpp b/src/MOLECULE/bond_gromos.cpp index 8e989259af..279f4fb2d4 100644 --- a/src/MOLECULE/bond_gromos.cpp +++ b/src/MOLECULE/bond_gromos.cpp @@ -190,7 +190,7 @@ void BondGromos::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondGromos::single(int type, double rsq, int i, int j, +double BondGromos::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { double dr = rsq - r0[type]*r0[type]; diff --git a/src/MOLECULE/bond_harmonic.cpp b/src/MOLECULE/bond_harmonic.cpp index e7f510d2de..f795610b37 100644 --- a/src/MOLECULE/bond_harmonic.cpp +++ b/src/MOLECULE/bond_harmonic.cpp @@ -190,7 +190,7 @@ void BondHarmonic::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondHarmonic::single(int type, double rsq, int i, int j, +double BondHarmonic::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { double r = sqrt(rsq); diff --git a/src/MOLECULE/bond_morse.cpp b/src/MOLECULE/bond_morse.cpp index 35be50e8df..06af28f2b0 100644 --- a/src/MOLECULE/bond_morse.cpp +++ b/src/MOLECULE/bond_morse.cpp @@ -196,7 +196,7 @@ void BondMorse::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondMorse::single(int type, double rsq, int i, int j, +double BondMorse::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { double r = sqrt(rsq); diff --git a/src/MOLECULE/bond_nonlinear.cpp b/src/MOLECULE/bond_nonlinear.cpp index 3926c3494b..645b081779 100644 --- a/src/MOLECULE/bond_nonlinear.cpp +++ b/src/MOLECULE/bond_nonlinear.cpp @@ -191,7 +191,7 @@ void BondNonlinear::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondNonlinear::single(int type, double rsq, int i, int j, +double BondNonlinear::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { double r = sqrt(rsq); diff --git a/src/MOLECULE/bond_quartic.cpp b/src/MOLECULE/bond_quartic.cpp index f581c7f331..f200030d6c 100644 --- a/src/MOLECULE/bond_quartic.cpp +++ b/src/MOLECULE/bond_quartic.cpp @@ -251,7 +251,7 @@ void BondQuartic::init_style() return an equilbrium bond length ------------------------------------------------------------------------- */ -double BondQuartic::equilibrium_distance(int i) +double BondQuartic::equilibrium_distance(int /*i*/) { return 0.97; } diff --git a/src/MOLECULE/bond_table.cpp b/src/MOLECULE/bond_table.cpp index 7515f713df..a5c579042b 100644 --- a/src/MOLECULE/bond_table.cpp +++ b/src/MOLECULE/bond_table.cpp @@ -244,7 +244,7 @@ void BondTable::read_restart(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondTable::single(int type, double rsq, int i, int j, +double BondTable::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { double r = sqrt(rsq); diff --git a/src/MOLECULE/fix_cmap.cpp b/src/MOLECULE/fix_cmap.cpp index 5ef2e662ab..2acb20de60 100644 --- a/src/MOLECULE/fix_cmap.cpp +++ b/src/MOLECULE/fix_cmap.cpp @@ -295,7 +295,7 @@ void FixCMAP::pre_neighbor() store eflag, so can use it in post_force to tally per-atom energies ------------------------------------------------------------------------- */ -void FixCMAP::pre_reverse(int eflag, int vflag) +void FixCMAP::pre_reverse(int eflag, int /*vflag*/) { eflag_caller = eflag; } @@ -604,7 +604,7 @@ void FixCMAP::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixCMAP::post_force_respa(int vflag, int ilevel, int iloop) +void FixCMAP::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } @@ -1163,7 +1163,7 @@ void FixCMAP::read_data_section(char *keyword, int n, char *buf, /* ---------------------------------------------------------------------- */ -bigint FixCMAP::read_data_skip_lines(char *keyword) +bigint FixCMAP::read_data_skip_lines(char */*keyword*/) { return ncmap; } @@ -1173,7 +1173,7 @@ bigint FixCMAP::read_data_skip_lines(char *keyword) only called by proc 0 ------------------------------------------------------------------------- */ -void FixCMAP::write_data_header(FILE *fp, int mth) +void FixCMAP::write_data_header(FILE *fp, int /*mth*/) { fprintf(fp,BIGINT_FORMAT " cmap crossterms\n",ncmap); } @@ -1186,7 +1186,7 @@ void FixCMAP::write_data_header(FILE *fp, int mth) ny = columns = type + 5 atom IDs ------------------------------------------------------------------------- */ -void FixCMAP::write_data_section_size(int mth, int &nx, int &ny) +void FixCMAP::write_data_section_size(int /*mth*/, int &nx, int &ny) { int i,m; @@ -1206,7 +1206,7 @@ void FixCMAP::write_data_section_size(int mth, int &nx, int &ny) buf allocated by caller as owned crossterms by 6 ------------------------------------------------------------------------- */ -void FixCMAP::write_data_section_pack(int mth, double **buf) +void FixCMAP::write_data_section_pack(int /*mth*/, double **buf) { int i,m; @@ -1237,7 +1237,7 @@ void FixCMAP::write_data_section_pack(int mth, double **buf) only called by proc 0 ------------------------------------------------------------------------- */ -void FixCMAP::write_data_section_keyword(int mth, FILE *fp) +void FixCMAP::write_data_section_keyword(int /*mth*/, FILE *fp) { fprintf(fp,"\nCMAP\n\n"); } @@ -1249,7 +1249,7 @@ void FixCMAP::write_data_section_keyword(int mth, FILE *fp) only called by proc 0 ------------------------------------------------------------------------- */ -void FixCMAP::write_data_section(int mth, FILE *fp, +void FixCMAP::write_data_section(int /*mth*/, FILE *fp, int n, double **buf, int index) { for (int i = 0; i < n; i++) @@ -1383,7 +1383,7 @@ void FixCMAP::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixCMAP::copy_arrays(int i, int j, int delflag) +void FixCMAP::copy_arrays(int i, int j, int /*delflag*/) { num_crossterm[j] = num_crossterm[i]; diff --git a/src/MOLECULE/pair_hbond_dreiding_lj.cpp b/src/MOLECULE/pair_hbond_dreiding_lj.cpp index 26ff499dec..c0c885d4d4 100644 --- a/src/MOLECULE/pair_hbond_dreiding_lj.cpp +++ b/src/MOLECULE/pair_hbond_dreiding_lj.cpp @@ -468,7 +468,7 @@ double PairHbondDreidingLJ::init_one(int i, int j) double PairHbondDreidingLJ::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double /*factor_lj*/, double &fforce) { int k,kk,ktype,knum,m; diff --git a/src/MOLECULE/pair_hbond_dreiding_morse.cpp b/src/MOLECULE/pair_hbond_dreiding_morse.cpp index 749053164c..f464d2c621 100644 --- a/src/MOLECULE/pair_hbond_dreiding_morse.cpp +++ b/src/MOLECULE/pair_hbond_dreiding_morse.cpp @@ -371,7 +371,7 @@ void PairHbondDreidingMorse::init_style() double PairHbondDreidingMorse::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double /*factor_lj*/, double &fforce) { int k,kk,ktype,knum,m; diff --git a/src/MOLECULE/pair_tip4p_cut.cpp b/src/MOLECULE/pair_tip4p_cut.cpp index e9f52b8724..79dd79b180 100644 --- a/src/MOLECULE/pair_tip4p_cut.cpp +++ b/src/MOLECULE/pair_tip4p_cut.cpp @@ -443,7 +443,7 @@ void PairTIP4PCut::init_style() init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairTIP4PCut::init_one(int i, int j) +double PairTIP4PCut::init_one(int /*i*/, int /*j*/) { // include TIP4P qdist in full cutoff, qdist = 0.0 if not TIP4P diff --git a/src/PERI/fix_peri_neigh.cpp b/src/PERI/fix_peri_neigh.cpp index 42d86e14b2..2f5d4ac694 100644 --- a/src/PERI/fix_peri_neigh.cpp +++ b/src/PERI/fix_peri_neigh.cpp @@ -140,7 +140,7 @@ void FixPeriNeigh::init() /* ---------------------------------------------------------------------- */ -void FixPeriNeigh::init_list(int id, NeighList *ptr) +void FixPeriNeigh::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -159,7 +159,7 @@ void FixPeriNeigh::min_setup(int vflag) must be done in setup (not init) since fix init comes before neigh init ------------------------------------------------------------------------- */ -void FixPeriNeigh::setup(int vflag) +void FixPeriNeigh::setup(int /*vflag*/) { int i,j,ii,jj,itype,jtype,inum,jnum; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; @@ -441,7 +441,7 @@ void FixPeriNeigh::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixPeriNeigh::copy_arrays(int i, int j, int delflag) +void FixPeriNeigh::copy_arrays(int i, int j, int /*delflag*/) { npartner[j] = npartner[i]; for (int m = 0; m < npartner[j]; m++) { @@ -514,7 +514,7 @@ int FixPeriNeigh::unpack_exchange(int nlocal, double *buf) /* ---------------------------------------------------------------------- */ int FixPeriNeigh::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/PERI/pair_peri_eps.cpp b/src/PERI/pair_peri_eps.cpp index 9950c36f41..fe2041d802 100644 --- a/src/PERI/pair_peri_eps.cpp +++ b/src/PERI/pair_peri_eps.cpp @@ -434,7 +434,7 @@ void PairPeriEPS::allocate() global settings ------------------------------------------------------------------------- */ -void PairPeriEPS::settings(int narg, char **arg) +void PairPeriEPS::settings(int narg, char **/*arg*/) { if (narg) error->all(FLERR,"Illegal pair_style command"); } @@ -799,7 +799,7 @@ double PairPeriEPS::compute_DeviatoricForceStateNorm(int i) ---------------------------------------------------------------------- */ int PairPeriEPS::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/PERI/pair_peri_lps.cpp b/src/PERI/pair_peri_lps.cpp index 4c48223b07..0ff0423801 100644 --- a/src/PERI/pair_peri_lps.cpp +++ b/src/PERI/pair_peri_lps.cpp @@ -364,7 +364,7 @@ void PairPeriLPS::allocate() global settings ------------------------------------------------------------------------- */ -void PairPeriLPS::settings(int narg, char **arg) +void PairPeriLPS::settings(int narg, char **/*arg*/) { if (narg) error->all(FLERR,"Illegal pair_style command"); } @@ -631,7 +631,7 @@ void PairPeriLPS::compute_dilatation() ---------------------------------------------------------------------- */ int PairPeriLPS::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/PERI/pair_peri_pmb.cpp b/src/PERI/pair_peri_pmb.cpp index 81461f0b83..772e47f2d6 100644 --- a/src/PERI/pair_peri_pmb.cpp +++ b/src/PERI/pair_peri_pmb.cpp @@ -297,7 +297,7 @@ void PairPeriPMB::allocate() global settings ------------------------------------------------------------------------- */ -void PairPeriPMB::settings(int narg, char **arg) +void PairPeriPMB::settings(int narg, char **/*arg*/) { if (narg) error->all(FLERR,"Illegal pair_style command"); } @@ -441,7 +441,7 @@ void PairPeriPMB::read_restart(FILE *fp) /* ---------------------------------------------------------------------- */ double PairPeriPMB::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double /*factor_lj*/, double &fforce) { double delx0,dely0,delz0,rsq0; diff --git a/src/PERI/pair_peri_ves.cpp b/src/PERI/pair_peri_ves.cpp index a9f620ef4b..a41d55b593 100644 --- a/src/PERI/pair_peri_ves.cpp +++ b/src/PERI/pair_peri_ves.cpp @@ -411,7 +411,7 @@ void PairPeriVES::allocate() global settings ------------------------------------------------------------------------- */ -void PairPeriVES::settings(int narg, char **arg) +void PairPeriVES::settings(int narg, char **/*arg*/) { if (narg) error->all(FLERR,"Illegal pair_style command"); } @@ -697,7 +697,7 @@ void PairPeriVES::compute_dilatation() ---------------------------------------------------------------------- */ int PairPeriVES::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/QEQ/fix_qeq.cpp b/src/QEQ/fix_qeq.cpp index 8acf4498f5..f6f41f57bd 100644 --- a/src/QEQ/fix_qeq.cpp +++ b/src/QEQ/fix_qeq.cpp @@ -274,7 +274,7 @@ void FixQEq::reallocate_matrix() /* ---------------------------------------------------------------------- */ -void FixQEq::init_list(int id, NeighList *ptr) +void FixQEq::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -329,7 +329,7 @@ void FixQEq::init_storage() /* ---------------------------------------------------------------------- */ -void FixQEq::pre_force_respa(int vflag, int ilevel, int iloop) +void FixQEq::pre_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) pre_force(vflag); } @@ -471,7 +471,7 @@ void FixQEq::calculate_Q() /* ---------------------------------------------------------------------- */ int FixQEq::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int m; @@ -552,7 +552,7 @@ void FixQEq::grow_arrays(int nmax) copy values within fictitious charge arrays ------------------------------------------------------------------------- */ -void FixQEq::copy_arrays(int i, int j, int delflag) +void FixQEq::copy_arrays(int i, int j, int /*delflag*/) { for (int m = 0; m < nprev; m++) { s_hist[j][m] = s_hist[i][m]; diff --git a/src/QEQ/fix_qeq_dynamic.cpp b/src/QEQ/fix_qeq_dynamic.cpp index aeb8dd2c59..82112c5c11 100644 --- a/src/QEQ/fix_qeq_dynamic.cpp +++ b/src/QEQ/fix_qeq_dynamic.cpp @@ -88,7 +88,7 @@ void FixQEqDynamic::init() /* ---------------------------------------------------------------------- */ -void FixQEqDynamic::pre_force(int vflag) +void FixQEqDynamic::pre_force(int /*vflag*/) { int i,ii,iloop,inum,*ilist; double qmass,dtq2; @@ -247,7 +247,7 @@ double FixQEqDynamic::compute_eneg() /* ---------------------------------------------------------------------- */ int FixQEqDynamic::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int m=0; diff --git a/src/QEQ/fix_qeq_fire.cpp b/src/QEQ/fix_qeq_fire.cpp index db63bec206..d1683aa020 100644 --- a/src/QEQ/fix_qeq_fire.cpp +++ b/src/QEQ/fix_qeq_fire.cpp @@ -104,7 +104,7 @@ void FixQEqFire::init() /* ---------------------------------------------------------------------- */ -void FixQEqFire::pre_force(int vflag) +void FixQEqFire::pre_force(int /*vflag*/) { int inum, *ilist; int i,ii,iloop; @@ -311,7 +311,7 @@ double FixQEqFire::compute_eneg() /* ---------------------------------------------------------------------- */ int FixQEqFire::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int m = 0; diff --git a/src/QEQ/fix_qeq_point.cpp b/src/QEQ/fix_qeq_point.cpp index bf7130c1d6..db2d800c06 100644 --- a/src/QEQ/fix_qeq_point.cpp +++ b/src/QEQ/fix_qeq_point.cpp @@ -67,7 +67,7 @@ void FixQEqPoint::init() /* ---------------------------------------------------------------------- */ -void FixQEqPoint::pre_force(int vflag) +void FixQEqPoint::pre_force(int /*vflag*/) { if (update->ntimestep % nevery) return; diff --git a/src/QEQ/fix_qeq_shielded.cpp b/src/QEQ/fix_qeq_shielded.cpp index 70898fd96c..88cd1ab3ad 100644 --- a/src/QEQ/fix_qeq_shielded.cpp +++ b/src/QEQ/fix_qeq_shielded.cpp @@ -111,7 +111,7 @@ void FixQEqShielded::init_shielding() /* ---------------------------------------------------------------------- */ -void FixQEqShielded::pre_force(int vflag) +void FixQEqShielded::pre_force(int /*vflag*/) { if (update->ntimestep % nevery) return; diff --git a/src/QEQ/fix_qeq_slater.cpp b/src/QEQ/fix_qeq_slater.cpp index 4ddcf06357..81fdc73241 100644 --- a/src/QEQ/fix_qeq_slater.cpp +++ b/src/QEQ/fix_qeq_slater.cpp @@ -107,7 +107,7 @@ void FixQEqSlater::extract_streitz() /* ---------------------------------------------------------------------- */ -void FixQEqSlater::pre_force(int vflag) +void FixQEqSlater::pre_force(int /*vflag*/) { if (update->ntimestep % nevery) return; diff --git a/src/REPLICA/fix_event.cpp b/src/REPLICA/fix_event.cpp index 3b9b49ac57..8fc5de6b16 100644 --- a/src/REPLICA/fix_event.cpp +++ b/src/REPLICA/fix_event.cpp @@ -241,7 +241,7 @@ void FixEvent::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixEvent::copy_arrays(int i, int j, int delflag) +void FixEvent::copy_arrays(int i, int j, int /*delflag*/) { xevent[j][0] = xevent[i][0]; xevent[j][1] = xevent[i][1]; diff --git a/src/REPLICA/fix_neb.cpp b/src/REPLICA/fix_neb.cpp index e5d24da392..dc86c70956 100644 --- a/src/REPLICA/fix_neb.cpp +++ b/src/REPLICA/fix_neb.cpp @@ -270,7 +270,7 @@ void FixNEB::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixNEB::min_post_force(int vflag) +void FixNEB::min_post_force(int /*vflag*/) { double vprev,vnext; double delxp,delyp,delzp,delxn,delyn,delzn; diff --git a/src/RIGID/fix_rattle.cpp b/src/RIGID/fix_rattle.cpp index 7ade8d6848..403f3091c6 100644 --- a/src/RIGID/fix_rattle.cpp +++ b/src/RIGID/fix_rattle.cpp @@ -185,7 +185,7 @@ void FixRattle::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixRattle::post_force_respa(int vflag, int ilevel, int iloop) +void FixRattle::post_force_respa(int vflag, int ilevel, int /*iloop*/) { // remember vflag for the coordinate correction in this->final_integrate @@ -625,7 +625,7 @@ void FixRattle::update_v_half_nocons() /* ---------------------------------------------------------------------- */ -void FixRattle::update_v_half_nocons_respa(int ilevel) +void FixRattle::update_v_half_nocons_respa(int /*ilevel*/) { // carry out unconstrained velocity update diff --git a/src/RIGID/fix_rigid.cpp b/src/RIGID/fix_rigid.cpp index 7104d30849..c0f33346bb 100644 --- a/src/RIGID/fix_rigid.cpp +++ b/src/RIGID/fix_rigid.cpp @@ -1096,7 +1096,7 @@ void FixRigid::compute_forces_and_torques() /* ---------------------------------------------------------------------- */ -void FixRigid::post_force(int vflag) +void FixRigid::post_force(int /*vflag*/) { if (langflag) apply_langevin_thermostat(); if (earlyflag) compute_forces_and_torques(); @@ -1141,7 +1141,7 @@ void FixRigid::final_integrate() /* ---------------------------------------------------------------------- */ -void FixRigid::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixRigid::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/) { dtv = step_respa[ilevel]; dtf = 0.5 * step_respa[ilevel] * force->ftm2v; @@ -1153,7 +1153,7 @@ void FixRigid::initial_integrate_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ -void FixRigid::final_integrate_respa(int ilevel, int iloop) +void FixRigid::final_integrate_respa(int ilevel, int /*iloop*/) { dtf = 0.5 * step_respa[ilevel] * force->ftm2v; final_integrate(); @@ -2478,7 +2478,7 @@ void FixRigid::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixRigid::copy_arrays(int i, int j, int delflag) +void FixRigid::copy_arrays(int i, int j, int /*delflag*/) { body[j] = body[i]; xcmimage[j] = xcmimage[i]; diff --git a/src/RIGID/fix_rigid_small.cpp b/src/RIGID/fix_rigid_small.cpp index c1de89efc7..b2dbd27c46 100644 --- a/src/RIGID/fix_rigid_small.cpp +++ b/src/RIGID/fix_rigid_small.cpp @@ -867,7 +867,7 @@ void FixRigidSmall::enforce2d() /* ---------------------------------------------------------------------- */ -void FixRigidSmall::post_force(int vflag) +void FixRigidSmall::post_force(int /*vflag*/) { if (langflag) apply_langevin_thermostat(); if (earlyflag) compute_forces_and_torques(); @@ -1004,7 +1004,7 @@ void FixRigidSmall::final_integrate() /* ---------------------------------------------------------------------- */ -void FixRigidSmall::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixRigidSmall::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/) { dtv = step_respa[ilevel]; dtf = 0.5 * step_respa[ilevel] * force->ftm2v; @@ -1016,7 +1016,7 @@ void FixRigidSmall::initial_integrate_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ -void FixRigidSmall::final_integrate_respa(int ilevel, int iloop) +void FixRigidSmall::final_integrate_respa(int ilevel, int /*iloop*/) { dtf = 0.5 * step_respa[ilevel] * force->ftm2v; final_integrate(); @@ -2999,7 +2999,7 @@ int FixRigidSmall::unpack_exchange(int nlocal, double *buf) ------------------------------------------------------------------------- */ int FixRigidSmall::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j; double *xcm,*vcm,*quat,*omega,*ex_space,*ey_space,*ez_space,*conjqm; diff --git a/src/RIGID/fix_shake.cpp b/src/RIGID/fix_shake.cpp index 0beef3bfa2..5c0139737c 100644 --- a/src/RIGID/fix_shake.cpp +++ b/src/RIGID/fix_shake.cpp @@ -2451,7 +2451,7 @@ void FixShake::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixShake::copy_arrays(int i, int j, int delflag) +void FixShake::copy_arrays(int i, int j, int /*delflag*/) { int flag = shake_flag[j] = shake_flag[i]; if (flag == 1) { @@ -2528,7 +2528,7 @@ void FixShake::update_arrays(int i, int atom_offset) ------------------------------------------------------------------------- */ void FixShake::set_molecule(int nlocalprev, tagint tagprev, int imol, - double *xgeom, double *vcm, double *quat) + double */*xgeom*/, double */*vcm*/, double */*quat*/) { int m,flag; diff --git a/src/SHOCK/fix_append_atoms.cpp b/src/SHOCK/fix_append_atoms.cpp index d898d2a790..2e515839c5 100644 --- a/src/SHOCK/fix_append_atoms.cpp +++ b/src/SHOCK/fix_append_atoms.cpp @@ -231,7 +231,7 @@ int FixAppendAtoms::setmask() /* ---------------------------------------------------------------------- */ -void FixAppendAtoms::initial_integrate(int vflag) +void FixAppendAtoms::initial_integrate(int /*vflag*/) { if (update->ntimestep % freq == 0) next_reneighbor = update->ntimestep; } @@ -331,7 +331,7 @@ int FixAppendAtoms::get_spatial() /* ---------------------------------------------------------------------- */ -void FixAppendAtoms::post_force(int vflag) +void FixAppendAtoms::post_force(int /*vflag*/) { double **f = atom->f; double **v = atom->v; diff --git a/src/SHOCK/fix_msst.cpp b/src/SHOCK/fix_msst.cpp index a7890c3afa..c800e8a85d 100644 --- a/src/SHOCK/fix_msst.cpp +++ b/src/SHOCK/fix_msst.cpp @@ -357,7 +357,7 @@ void FixMSST::init() compute T,P before integrator starts ------------------------------------------------------------------------- */ -void FixMSST::setup(int vflag) +void FixMSST::setup(int /*vflag*/) { lagrangian_position = 0.0; @@ -442,7 +442,7 @@ void FixMSST::setup(int vflag) 1st half of Verlet update ------------------------------------------------------------------------- */ -void FixMSST::initial_integrate(int vflag) +void FixMSST::initial_integrate(int /*vflag*/) { int i,k; double p_msst; // MSST driving pressure diff --git a/src/SHOCK/fix_wall_piston.cpp b/src/SHOCK/fix_wall_piston.cpp index 7146b46c1e..eb89e19517 100644 --- a/src/SHOCK/fix_wall_piston.cpp +++ b/src/SHOCK/fix_wall_piston.cpp @@ -171,7 +171,7 @@ int FixWallPiston::setmask() /* ---------------------------------------------------------------------- */ -void FixWallPiston::initial_integrate(int vflag) +void FixWallPiston::initial_integrate(int /*vflag*/) { next_reneighbor = update->ntimestep; } diff --git a/src/SNAP/compute_sna_atom.cpp b/src/SNAP/compute_sna_atom.cpp index 0d8b0bae14..a2c1f55788 100644 --- a/src/SNAP/compute_sna_atom.cpp +++ b/src/SNAP/compute_sna_atom.cpp @@ -184,7 +184,7 @@ void ComputeSNAAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeSNAAtom::init_list(int id, NeighList *ptr) +void ComputeSNAAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/SNAP/compute_snad_atom.cpp b/src/SNAP/compute_snad_atom.cpp index b0fef8e1e3..800d1942e3 100644 --- a/src/SNAP/compute_snad_atom.cpp +++ b/src/SNAP/compute_snad_atom.cpp @@ -186,7 +186,7 @@ void ComputeSNADAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeSNADAtom::init_list(int id, NeighList *ptr) +void ComputeSNADAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/SNAP/compute_snav_atom.cpp b/src/SNAP/compute_snav_atom.cpp index cf66b1c136..2b823f7b8b 100644 --- a/src/SNAP/compute_snav_atom.cpp +++ b/src/SNAP/compute_snav_atom.cpp @@ -181,7 +181,7 @@ void ComputeSNAVAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeSNAVAtom::init_list(int id, NeighList *ptr) +void ComputeSNAVAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/SNAP/sna.cpp b/src/SNAP/sna.cpp index 3150573043..7ed1bc1e23 100644 --- a/src/SNAP/sna.cpp +++ b/src/SNAP/sna.cpp @@ -1231,7 +1231,7 @@ void SNA::compute_uarray(double x, double y, double z, } void SNA::compute_uarray_omp(double x, double y, double z, - double z0, double r, int sub_threads) + double z0, double r, int /*sub_threads*/) { double r0inv; double a_r, b_r, a_i, b_i; diff --git a/src/SPIN/atom_vec_spin.cpp b/src/SPIN/atom_vec_spin.cpp index 6460a6185f..24c4480e04 100644 --- a/src/SPIN/atom_vec_spin.cpp +++ b/src/SPIN/atom_vec_spin.cpp @@ -943,7 +943,7 @@ bigint AtomVecSpin::memory_usage() return bytes; } -void AtomVecSpin::force_clear(int n, size_t nbytes) +void AtomVecSpin::force_clear(int /*n*/, size_t nbytes) { memset(&atom->f[0][0],0,3*nbytes); memset(&atom->fm[0][0],0,3*nbytes); diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index cb34465482..55b4d8dfec 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -192,7 +192,7 @@ void FixLangevinSpin::add_temperature(double fmi[3]) /* ---------------------------------------------------------------------- */ -void FixLangevinSpin::post_force_respa(int vflag, int ilevel, int iloop) +void FixLangevinSpin::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } diff --git a/src/SPIN/fix_nve_spin.cpp b/src/SPIN/fix_nve_spin.cpp index b75f03212a..898eb95396 100644 --- a/src/SPIN/fix_nve_spin.cpp +++ b/src/SPIN/fix_nve_spin.cpp @@ -258,7 +258,7 @@ void FixNVESpin::init() /* ---------------------------------------------------------------------- */ -void FixNVESpin::initial_integrate(int vflag) +void FixNVESpin::initial_integrate(int /*vflag*/) { double dtfm; diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index b908478952..d3edb3ae8a 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -169,7 +169,7 @@ void FixPrecessionSpin::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixPrecessionSpin::post_force(int vflag) +void FixPrecessionSpin::post_force(int /*vflag*/) { // update mag field with time (potential improvement) @@ -245,7 +245,7 @@ void FixPrecessionSpin::compute_anisotropy(double spi[3], double fmi[3]) /* ---------------------------------------------------------------------- */ -void FixPrecessionSpin::post_force_respa(int vflag, int ilevel, int iloop) +void FixPrecessionSpin::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index 398206b26e..929b79bef3 100644 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -63,7 +63,7 @@ PairSpin::~PairSpin() {} global settings ------------------------------------------------------------------------- */ -void PairSpin::settings(int narg, char **arg) +void PairSpin::settings(int narg, char **/*arg*/) { if (narg < 1 || narg > 2) error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 08e2c63e7f..6f8114042e 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -414,7 +414,7 @@ void PairSpinDmi::compute_dmi(int i, int j, double eij[3], double fmi[3], double compute the mechanical force due to the dmi interaction between atom i and atom j ------------------------------------------------------------------------- */ -void PairSpinDmi::compute_dmi_mech(int i, int j, double rsq, double eij[3], +void PairSpinDmi::compute_dmi_mech(int i, int j, double rsq, double /*eij*/[3], double fi[3], double spi[3], double spj[3]) { int *type = atom->type; diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index 6bc1f71947..570c995754 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -380,7 +380,7 @@ void PairSpinMagelec::compute_single_pair(int ii, double fmi[3]) /* ---------------------------------------------------------------------- */ -void PairSpinMagelec::compute_magelec(int i, int j, double rsq, double eij[3], double fmi[3], double spj[3]) +void PairSpinMagelec::compute_magelec(int i, int j, double /*rsq*/, double eij[3], double fmi[3], double spj[3]) { int *type = atom->type; int itype, jtype; diff --git a/src/SRD/fix_srd.cpp b/src/SRD/fix_srd.cpp index 564c1e98d7..d6053f4aa4 100644 --- a/src/SRD/fix_srd.cpp +++ b/src/SRD/fix_srd.cpp @@ -440,7 +440,7 @@ void FixSRD::init() /* ---------------------------------------------------------------------- */ -void FixSRD::setup(int vflag) +void FixSRD::setup(int /*vflag*/) { setup_bounds(); @@ -703,7 +703,7 @@ void FixSRD::pre_neighbor() when collision occurs, change x,v of SRD, force,torque of BIG particle ------------------------------------------------------------------------- */ -void FixSRD::post_force(int vflag) +void FixSRD::post_force(int /*vflag*/) { int i,m,ix,iy,iz; @@ -2168,8 +2168,8 @@ void FixSRD::collision_ellipsoid_inexact(double *xs, double *xb, norm = surface normal of collision pt at time of collision ------------------------------------------------------------------------- */ -double FixSRD::collision_line_exact(double *xs, double *xb, - double *vs, double *vb, Big *big, +double FixSRD::collision_line_exact(double */*xs*/, double */*xb*/, + double */*vs*/, double */*vb*/, Big */*big*/, double dt_step, double *xscoll, double *xbcoll, double *norm) @@ -2197,8 +2197,8 @@ double FixSRD::collision_line_exact(double *xs, double *xb, norm = surface normal of collision pt at time of collision ------------------------------------------------------------------------- */ -double FixSRD::collision_tri_exact(double *xs, double *xb, - double *vs, double *vb, Big *big, +double FixSRD::collision_tri_exact(double */*xs*/, double */*xb*/, + double */*vs*/, double */*vb*/, Big */*big*/, double dt_step, double *xscoll, double *xbcoll, double *norm) diff --git a/src/USER-BOCS/fix_bocs.cpp b/src/USER-BOCS/fix_bocs.cpp index 7fb8a27110..eacfc83b40 100644 --- a/src/USER-BOCS/fix_bocs.cpp +++ b/src/USER-BOCS/fix_bocs.cpp @@ -790,7 +790,7 @@ void FixBocs::build_cubic_splines( double **data ) compute T,P before integrator starts ------------------------------------------------------------------------- */ -void FixBocs::setup(int vflag) +void FixBocs::setup(int /*vflag*/) { // tdof needed by compute_temp_target() @@ -875,7 +875,7 @@ void FixBocs::setup(int vflag) 1st half of Verlet update ------------------------------------------------------------------------- */ -void FixBocs::initial_integrate(int vflag) +void FixBocs::initial_integrate(int /*vflag*/) { // update eta_press_dot @@ -970,7 +970,7 @@ void FixBocs::final_integrate() /* ---------------------------------------------------------------------- */ -void FixBocs::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixBocs::initial_integrate_respa(int /*vflag*/, int ilevel, int /*iloop*/) { // set timesteps by level @@ -1039,7 +1039,7 @@ void FixBocs::initial_integrate_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ -void FixBocs::final_integrate_respa(int ilevel, int iloop) +void FixBocs::final_integrate_respa(int ilevel, int /*iloop*/) { // set timesteps by level diff --git a/src/USER-CGDNA/bond_oxdna_fene.cpp b/src/USER-CGDNA/bond_oxdna_fene.cpp index 47d8d8f60b..34a25a9b5a 100644 --- a/src/USER-CGDNA/bond_oxdna_fene.cpp +++ b/src/USER-CGDNA/bond_oxdna_fene.cpp @@ -56,7 +56,7 @@ BondOxdnaFene::~BondOxdnaFene() compute vector COM-sugar-phosphate backbone interaction site in oxDNA ------------------------------------------------------------------------- */ void BondOxdnaFene::compute_interaction_sites(double e1[3], - double e2[3], double r[3]) + double /*e2*/[3], double r[3]) { double d_cs=-0.4; @@ -316,7 +316,7 @@ void BondOxdnaFene::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondOxdnaFene::single(int type, double rsq, int i, int j, +double BondOxdnaFene::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { double r = sqrt(rsq); diff --git a/src/USER-CGDNA/fix_nve_dot.cpp b/src/USER-CGDNA/fix_nve_dot.cpp index 63f38a4e12..72b3388793 100644 --- a/src/USER-CGDNA/fix_nve_dot.cpp +++ b/src/USER-CGDNA/fix_nve_dot.cpp @@ -62,7 +62,7 @@ void FixNVEDot::init() /* ---------------------------------------------------------------------- */ -void FixNVEDot::initial_integrate(int vflag) +void FixNVEDot::initial_integrate(int /*vflag*/) { double *shape,*quat; double fquat[4],conjqm[4],inertia[3]; diff --git a/src/USER-CGDNA/fix_nve_dotc_langevin.cpp b/src/USER-CGDNA/fix_nve_dotc_langevin.cpp index 90f7b1caeb..c73801c97a 100644 --- a/src/USER-CGDNA/fix_nve_dotc_langevin.cpp +++ b/src/USER-CGDNA/fix_nve_dotc_langevin.cpp @@ -127,7 +127,7 @@ void FixNVEDotcLangevin::compute_target() /* ---------------------------------------------------------------------- */ -void FixNVEDotcLangevin::initial_integrate(int vflag) +void FixNVEDotcLangevin::initial_integrate(int /*vflag*/) { double *shape,*quat; double fquat[4],conjqm[4],inertia[3]; diff --git a/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp b/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp index 151e752692..d31890ea52 100644 --- a/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp +++ b/src/USER-CGDNA/pair_oxdna2_coaxstk.cpp @@ -542,7 +542,7 @@ void PairOxdna2Coaxstk::allocate() global settings ------------------------------------------------------------------------- */ -void PairOxdna2Coaxstk::settings(int narg, char **arg) +void PairOxdna2Coaxstk::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); diff --git a/src/USER-CGDNA/pair_oxdna2_dh.cpp b/src/USER-CGDNA/pair_oxdna2_dh.cpp index 974ade89c1..da6e1f8bbd 100644 --- a/src/USER-CGDNA/pair_oxdna2_dh.cpp +++ b/src/USER-CGDNA/pair_oxdna2_dh.cpp @@ -264,7 +264,7 @@ void PairOxdna2Dh::allocate() global settings ------------------------------------------------------------------------- */ -void PairOxdna2Dh::settings(int narg, char **arg) +void PairOxdna2Dh::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/USER-CGDNA/pair_oxdna_coaxstk.cpp b/src/USER-CGDNA/pair_oxdna_coaxstk.cpp index 0eb75fbb43..ca03bcb35c 100644 --- a/src/USER-CGDNA/pair_oxdna_coaxstk.cpp +++ b/src/USER-CGDNA/pair_oxdna_coaxstk.cpp @@ -666,7 +666,7 @@ void PairOxdnaCoaxstk::allocate() global settings ------------------------------------------------------------------------- */ -void PairOxdnaCoaxstk::settings(int narg, char **arg) +void PairOxdnaCoaxstk::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); diff --git a/src/USER-CGDNA/pair_oxdna_excv.cpp b/src/USER-CGDNA/pair_oxdna_excv.cpp index e2b8334078..719a63b5f4 100644 --- a/src/USER-CGDNA/pair_oxdna_excv.cpp +++ b/src/USER-CGDNA/pair_oxdna_excv.cpp @@ -92,7 +92,7 @@ PairOxdnaExcv::~PairOxdnaExcv() compute vector COM-excluded volume interaction sites in oxDNA ------------------------------------------------------------------------- */ void PairOxdnaExcv::compute_interaction_sites(double e1[3], - double e2[3], double rs[3], double rb[3]) + double /*e2*/[3], double rs[3], double rb[3]) { double d_cs=-0.4, d_cb=+0.4; @@ -441,7 +441,7 @@ void PairOxdnaExcv::allocate() global settings ------------------------------------------------------------------------- */ -void PairOxdnaExcv::settings(int narg, char **arg) +void PairOxdnaExcv::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); diff --git a/src/USER-CGDNA/pair_oxdna_hbond.cpp b/src/USER-CGDNA/pair_oxdna_hbond.cpp index ce1bfe036a..cb9f61bd7e 100644 --- a/src/USER-CGDNA/pair_oxdna_hbond.cpp +++ b/src/USER-CGDNA/pair_oxdna_hbond.cpp @@ -601,7 +601,7 @@ void PairOxdnaHbond::allocate() global settings ------------------------------------------------------------------------- */ -void PairOxdnaHbond::settings(int narg, char **arg) +void PairOxdnaHbond::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); diff --git a/src/USER-CGDNA/pair_oxdna_stk.cpp b/src/USER-CGDNA/pair_oxdna_stk.cpp index 8c4498e627..f713e4d27c 100644 --- a/src/USER-CGDNA/pair_oxdna_stk.cpp +++ b/src/USER-CGDNA/pair_oxdna_stk.cpp @@ -647,7 +647,7 @@ void PairOxdnaStk::allocate() global settings ------------------------------------------------------------------------- */ -void PairOxdnaStk::settings(int narg, char **arg) +void PairOxdnaStk::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); diff --git a/src/USER-CGDNA/pair_oxdna_xstk.cpp b/src/USER-CGDNA/pair_oxdna_xstk.cpp index e5b9de81c0..c4c23bf2c9 100644 --- a/src/USER-CGDNA/pair_oxdna_xstk.cpp +++ b/src/USER-CGDNA/pair_oxdna_xstk.cpp @@ -611,7 +611,7 @@ void PairOxdnaXstk::allocate() global settings ------------------------------------------------------------------------- */ -void PairOxdnaXstk::settings(int narg, char **arg) +void PairOxdnaXstk::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); diff --git a/src/USER-DIFFRACTION/fix_saed_vtk.cpp b/src/USER-DIFFRACTION/fix_saed_vtk.cpp index 45bfeca48b..ad9c76ac6b 100644 --- a/src/USER-DIFFRACTION/fix_saed_vtk.cpp +++ b/src/USER-DIFFRACTION/fix_saed_vtk.cpp @@ -325,7 +325,7 @@ void FixSAEDVTK::init() only does something if nvalid = current timestep ------------------------------------------------------------------------- */ -void FixSAEDVTK::setup(int vflag) +void FixSAEDVTK::setup(int /*vflag*/) { end_of_step(); } diff --git a/src/USER-DPD/fix_dpd_energy.cpp b/src/USER-DPD/fix_dpd_energy.cpp index d89ea7759a..5759a164f5 100644 --- a/src/USER-DPD/fix_dpd_energy.cpp +++ b/src/USER-DPD/fix_dpd_energy.cpp @@ -57,7 +57,7 @@ int FixDPDenergy::setmask() allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixDPDenergy::initial_integrate(int vflag) +void FixDPDenergy::initial_integrate(int /*vflag*/) { int nlocal = atom->nlocal; if (igroup == atom->firstgroup) nlocal = atom->nfirst; diff --git a/src/USER-DPD/fix_eos_table_rx.cpp b/src/USER-DPD/fix_eos_table_rx.cpp index 73144c0a0f..0bb96d7664 100644 --- a/src/USER-DPD/fix_eos_table_rx.cpp +++ b/src/USER-DPD/fix_eos_table_rx.cpp @@ -178,7 +178,7 @@ int FixEOStableRX::setmask() /* ---------------------------------------------------------------------- */ -void FixEOStableRX::setup(int vflag) +void FixEOStableRX::setup(int /*vflag*/) { int nlocal = atom->nlocal; int *mask = atom->mask; @@ -803,7 +803,7 @@ void FixEOStableRX::temperature_lookup(int id, double ui, double &thetai) /* ---------------------------------------------------------------------- */ -int FixEOStableRX::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) +int FixEOStableRX::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { int ii,jj,m; double *uChem = atom->uChem; diff --git a/src/USER-DPD/fix_rx.cpp b/src/USER-DPD/fix_rx.cpp index be78989bb5..4dae89b491 100644 --- a/src/USER-DPD/fix_rx.cpp +++ b/src/USER-DPD/fix_rx.cpp @@ -668,7 +668,7 @@ void FixRX::init_list(int, class NeighList* ptr) /* ---------------------------------------------------------------------- */ -void FixRX::setup_pre_force(int vflag) +void FixRX::setup_pre_force(int /*vflag*/) { int nlocal = atom->nlocal; int nghost = atom->nghost; @@ -727,7 +727,7 @@ void FixRX::setup_pre_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixRX::pre_force(int vflag) +void FixRX::pre_force(int /*vflag*/) { TimerType timer_start = getTimeStamp(); @@ -1191,7 +1191,7 @@ void FixRX::rkf45_step (const int neq, const double h, double y[], double y_out[ return; } -int FixRX::rkf45_h0 (const int neq, const double t, const double t_stop, +int FixRX::rkf45_h0 (const int neq, const double t, const double /*t_stop*/, const double hmin, const double hmax, double& h0, double y[], double rwk[], void* v_params) { @@ -1668,7 +1668,7 @@ int FixRX::rhs(double t, const double *y, double *dydt, void *params) /* ---------------------------------------------------------------------- */ -int FixRX::rhs_dense(double t, const double *y, double *dydt, void *params) +int FixRX::rhs_dense(double /*t*/, const double *y, double *dydt, void *params) { UserRHSData *userData = (UserRHSData *) params; @@ -1702,7 +1702,7 @@ int FixRX::rhs_dense(double t, const double *y, double *dydt, void *params) /* ---------------------------------------------------------------------- */ -int FixRX::rhs_sparse(double t, const double *y, double *dydt, void *v_params) const +int FixRX::rhs_sparse(double /*t*/, const double *y, double *dydt, void *v_params) const { UserRHSData *userData = (UserRHSData *) v_params; @@ -1885,7 +1885,7 @@ void FixRX::computeLocalTemperature() /* ---------------------------------------------------------------------- */ -int FixRX::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) +int FixRX::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { int ii,jj,m; double tmp; diff --git a/src/USER-DPD/fix_shardlow.cpp b/src/USER-DPD/fix_shardlow.cpp index 7fe865c8e6..9e8ee41533 100644 --- a/src/USER-DPD/fix_shardlow.cpp +++ b/src/USER-DPD/fix_shardlow.cpp @@ -145,14 +145,14 @@ void FixShardlow::init() /* ---------------------------------------------------------------------- */ -void FixShardlow::init_list(int id, NeighList *ptr) +void FixShardlow::init_list(int /*id*/, NeighList *ptr) { list = ptr; } /* ---------------------------------------------------------------------- */ -void FixShardlow::setup(int vflag) +void FixShardlow::setup(int /*vflag*/) { bool fixShardlow = false; @@ -527,7 +527,7 @@ while (ct-- > 0) { rand_state[id] = RNGstate; } -void FixShardlow::initial_integrate(int vflag) +void FixShardlow::initial_integrate(int /*vflag*/) { int ii; @@ -646,7 +646,7 @@ fprintf(stdout, "\n%6d %6d,%6d %6d: " /* ---------------------------------------------------------------------- */ -int FixShardlow::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) +int FixShardlow::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { int ii,jj,m; double **v = atom->v; diff --git a/src/USER-DPD/pair_dpd_fdt.cpp b/src/USER-DPD/pair_dpd_fdt.cpp index aeade16e7c..12e6d9f257 100644 --- a/src/USER-DPD/pair_dpd_fdt.cpp +++ b/src/USER-DPD/pair_dpd_fdt.cpp @@ -433,8 +433,8 @@ void PairDPDfdt::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairDPDfdt::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_dpd, double &fforce) +double PairDPDfdt::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_dpd, double &fforce) { double r,rinv,wr,wd,phi; diff --git a/src/USER-DPD/pair_dpd_fdt_energy.cpp b/src/USER-DPD/pair_dpd_fdt_energy.cpp index 05dc52eac7..42c23e3ad2 100644 --- a/src/USER-DPD/pair_dpd_fdt_energy.cpp +++ b/src/USER-DPD/pair_dpd_fdt_energy.cpp @@ -534,8 +534,8 @@ void PairDPDfdtEnergy::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairDPDfdtEnergy::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_dpd, double &fforce) +double PairDPDfdtEnergy::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_dpd, double &fforce) { double r,rinv,wr,wd,phi; diff --git a/src/USER-DPD/pair_multi_lucy.cpp b/src/USER-DPD/pair_multi_lucy.cpp index 3d204a849e..a7701f4d93 100644 --- a/src/USER-DPD/pair_multi_lucy.cpp +++ b/src/USER-DPD/pair_multi_lucy.cpp @@ -781,7 +781,7 @@ void PairMultiLucy::computeLocalDensity() } /* ---------------------------------------------------------------------- */ -int PairMultiLucy::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) +int PairMultiLucy::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { int i,j,m; double *rho = atom->rho; diff --git a/src/USER-DPD/pair_multi_lucy_rx.cpp b/src/USER-DPD/pair_multi_lucy_rx.cpp index 0070ca82d9..744c1ff64d 100644 --- a/src/USER-DPD/pair_multi_lucy_rx.cpp +++ b/src/USER-DPD/pair_multi_lucy_rx.cpp @@ -1019,7 +1019,7 @@ void PairMultiLucyRX::getMixingWeights(int id, double &mixWtSite1old, double &mi /* ---------------------------------------------------------------------- */ -int PairMultiLucyRX::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) +int PairMultiLucyRX::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { int i,j,m; double *rho = atom->rho; diff --git a/src/USER-DPD/pair_table_rx.cpp b/src/USER-DPD/pair_table_rx.cpp index 221944edc5..1e7bc440d1 100644 --- a/src/USER-DPD/pair_table_rx.cpp +++ b/src/USER-DPD/pair_table_rx.cpp @@ -439,7 +439,7 @@ void PairTableRX::coeff(int narg, char **arg) /* ---------------------------------------------------------------------- */ double PairTableRX::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double factor_lj, double &fforce) { int itable; diff --git a/src/USER-DRUDE/fix_drude.cpp b/src/USER-DRUDE/fix_drude.cpp index 19fd775715..7800efe7ff 100644 --- a/src/USER-DRUDE/fix_drude.cpp +++ b/src/USER-DRUDE/fix_drude.cpp @@ -235,7 +235,7 @@ void FixDrude::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixDrude::copy_arrays(int i, int j, int delflag) +void FixDrude::copy_arrays(int i, int j, int /*delflag*/) { drudeid[j] = drudeid[i]; } diff --git a/src/USER-DRUDE/fix_langevin_drude.cpp b/src/USER-DRUDE/fix_langevin_drude.cpp index 235c5d224b..b9d1139f83 100644 --- a/src/USER-DRUDE/fix_langevin_drude.cpp +++ b/src/USER-DRUDE/fix_langevin_drude.cpp @@ -157,7 +157,7 @@ void FixLangevinDrude::init() /* ---------------------------------------------------------------------- */ -void FixLangevinDrude::setup(int vflag) +void FixLangevinDrude::setup(int /*vflag*/) { if (!strstr(update->integrate_style,"verlet")) error->all(FLERR,"RESPA style not compatible with fix langevin/drude"); diff --git a/src/USER-DRUDE/pair_thole.cpp b/src/USER-DRUDE/pair_thole.cpp index 8c20ee8c42..6901ad1f2d 100644 --- a/src/USER-DRUDE/pair_thole.cpp +++ b/src/USER-DRUDE/pair_thole.cpp @@ -363,7 +363,7 @@ void PairThole::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ double PairThole::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, + double rsq, double factor_coul, double /*factor_lj*/, double &fforce) { double r2inv,rinv,r,phicoul; diff --git a/src/USER-EFF/compute_temp_deform_eff.cpp b/src/USER-EFF/compute_temp_deform_eff.cpp index d3856e431d..23abb4f99d 100644 --- a/src/USER-EFF/compute_temp_deform_eff.cpp +++ b/src/USER-EFF/compute_temp_deform_eff.cpp @@ -290,7 +290,7 @@ void ComputeTempDeformEff::remove_bias_all() assume remove_bias() was previously called ------------------------------------------------------------------------- */ -void ComputeTempDeformEff::restore_bias(int i, double *v) +void ComputeTempDeformEff::restore_bias(int /*i*/, double *v) { v[0] += vbias[0]; v[1] += vbias[1]; diff --git a/src/USER-EFF/compute_temp_region_eff.cpp b/src/USER-EFF/compute_temp_region_eff.cpp index 4548914ce1..659bdfca5e 100644 --- a/src/USER-EFF/compute_temp_region_eff.cpp +++ b/src/USER-EFF/compute_temp_region_eff.cpp @@ -263,7 +263,7 @@ void ComputeTempRegionEff::remove_bias_all() assume remove_bias() was previously called ------------------------------------------------------------------------- */ -void ComputeTempRegionEff::restore_bias(int i, double *v) +void ComputeTempRegionEff::restore_bias(int /*i*/, double *v) { v[0] += vbias[0]; v[1] += vbias[1]; diff --git a/src/USER-EFF/fix_langevin_eff.cpp b/src/USER-EFF/fix_langevin_eff.cpp index 2d0eef8e85..d362113997 100644 --- a/src/USER-EFF/fix_langevin_eff.cpp +++ b/src/USER-EFF/fix_langevin_eff.cpp @@ -63,7 +63,7 @@ FixLangevinEff::~FixLangevinEff() /* ---------------------------------------------------------------------- */ -void FixLangevinEff::post_force(int vflag) +void FixLangevinEff::post_force(int /*vflag*/) { if (tallyflag) post_force_tally(); else post_force_no_tally(); diff --git a/src/USER-EFF/fix_nve_eff.cpp b/src/USER-EFF/fix_nve_eff.cpp index 584714a44e..699dd9f949 100644 --- a/src/USER-EFF/fix_nve_eff.cpp +++ b/src/USER-EFF/fix_nve_eff.cpp @@ -68,7 +68,7 @@ void FixNVEEff::init() allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixNVEEff::initial_integrate(int vflag) +void FixNVEEff::initial_integrate(int /*vflag*/) { double dtfm; @@ -145,7 +145,7 @@ void FixNVEEff::final_integrate() /* ---------------------------------------------------------------------- */ -void FixNVEEff::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixNVEEff::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/) { dtv = step_respa[ilevel]; dtf = 0.5 * step_respa[ilevel] * force->ftm2v; @@ -159,7 +159,7 @@ void FixNVEEff::initial_integrate_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ -void FixNVEEff::final_integrate_respa(int ilevel, int iloop) +void FixNVEEff::final_integrate_respa(int ilevel, int /*iloop*/) { dtf = 0.5 * step_respa[ilevel] * force->ftm2v; final_integrate(); diff --git a/src/USER-EFF/pair_eff_cut.cpp b/src/USER-EFF/pair_eff_cut.cpp index 0379c0264b..b4e9011e33 100644 --- a/src/USER-EFF/pair_eff_cut.cpp +++ b/src/USER-EFF/pair_eff_cut.cpp @@ -1009,7 +1009,7 @@ void PairEffCut::read_restart_settings(FILE *fp) these arrays are stored locally by pair style ------------------------------------------------------------------------- */ -void PairEffCut::min_xf_pointers(int ignore, double **xextra, double **fextra) +void PairEffCut::min_xf_pointers(int /*ignore*/, double **xextra, double **fextra) { // grow arrays if necessary // need to be atom->nmax in length @@ -1031,7 +1031,7 @@ void PairEffCut::min_xf_pointers(int ignore, double **xextra, double **fextra) calculate and store in min_eradius and min_erforce ------------------------------------------------------------------------- */ -void PairEffCut::min_xf_get(int ignore) +void PairEffCut::min_xf_get(int /*ignore*/) { double *eradius = atom->eradius; double *erforce = atom->erforce; @@ -1050,7 +1050,7 @@ void PairEffCut::min_xf_get(int ignore) propagate the change back to eradius ------------------------------------------------------------------------- */ -void PairEffCut::min_x_set(int ignore) +void PairEffCut::min_x_set(int /*ignore*/) { double *eradius = atom->eradius; int *spin = atom->spin; diff --git a/src/USER-FEP/fix_adapt_fep.cpp b/src/USER-FEP/fix_adapt_fep.cpp index 3b8c9d4201..7304bc4ef6 100644 --- a/src/USER-FEP/fix_adapt_fep.cpp +++ b/src/USER-FEP/fix_adapt_fep.cpp @@ -387,7 +387,7 @@ void FixAdaptFEP::init() /* ---------------------------------------------------------------------- */ -void FixAdaptFEP::setup_pre_force(int vflag) +void FixAdaptFEP::setup_pre_force(int /*vflag*/) { change_settings(); } @@ -402,7 +402,7 @@ void FixAdaptFEP::setup_pre_force_respa(int vflag, int ilevel) /* ---------------------------------------------------------------------- */ -void FixAdaptFEP::pre_force(int vflag) +void FixAdaptFEP::pre_force(int /*vflag*/) { if (nevery == 0) return; diff --git a/src/USER-FEP/pair_coul_cut_soft.cpp b/src/USER-FEP/pair_coul_cut_soft.cpp index 5bcb5a7522..529ffe6b09 100644 --- a/src/USER-FEP/pair_coul_cut_soft.cpp +++ b/src/USER-FEP/pair_coul_cut_soft.cpp @@ -347,7 +347,7 @@ void PairCoulCutSoft::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ double PairCoulCutSoft::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, + double rsq, double factor_coul, double /*factor_lj*/, double &fforce) { double forcecoul,phicoul; diff --git a/src/USER-FEP/pair_coul_long_soft.cpp b/src/USER-FEP/pair_coul_long_soft.cpp index 94bb3659fa..e45dbe72d6 100644 --- a/src/USER-FEP/pair_coul_long_soft.cpp +++ b/src/USER-FEP/pair_coul_long_soft.cpp @@ -348,7 +348,7 @@ void PairCoulLongSoft::read_restart_settings(FILE *fp) double PairCoulLongSoft::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double factor_coul, double /*factor_lj*/, double &fforce) { double r,grij,expm2,t,erfc,prefactor; diff --git a/src/USER-FEP/pair_lj_cut_soft.cpp b/src/USER-FEP/pair_lj_cut_soft.cpp index 4aaa5c2925..a33445f6f8 100644 --- a/src/USER-FEP/pair_lj_cut_soft.cpp +++ b/src/USER-FEP/pair_lj_cut_soft.cpp @@ -735,8 +735,8 @@ void PairLJCutSoft::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJCutSoft::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairLJCutSoft::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double forcelj,philj; diff --git a/src/USER-FEP/pair_morse_soft.cpp b/src/USER-FEP/pair_morse_soft.cpp index 7a897e1870..965d570863 100644 --- a/src/USER-FEP/pair_morse_soft.cpp +++ b/src/USER-FEP/pair_morse_soft.cpp @@ -360,8 +360,8 @@ void PairMorseSoft::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairMorseSoft::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairMorseSoft::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r, dr, dexp, dexp2, dexp3, phi; diff --git a/src/USER-INTEL/angle_charmm_intel.cpp b/src/USER-INTEL/angle_charmm_intel.cpp index 672b70b6f6..eddef5bce8 100644 --- a/src/USER-INTEL/angle_charmm_intel.cpp +++ b/src/USER-INTEL/angle_charmm_intel.cpp @@ -332,7 +332,7 @@ void AngleCharmmIntel::init_style() template void AngleCharmmIntel::pack_force_const(ForceConst &fc, - IntelBuffers *buffers) + IntelBuffers */*buffers*/) { const int bp1 = atom->nangletypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/angle_harmonic_intel.cpp b/src/USER-INTEL/angle_harmonic_intel.cpp index 74639f3aeb..077825332c 100644 --- a/src/USER-INTEL/angle_harmonic_intel.cpp +++ b/src/USER-INTEL/angle_harmonic_intel.cpp @@ -314,7 +314,7 @@ void AngleHarmonicIntel::init_style() template void AngleHarmonicIntel::pack_force_const(ForceConst &fc, - IntelBuffers *buffers) + IntelBuffers */*buffers*/) { const int bp1 = atom->nangletypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/bond_fene_intel.cpp b/src/USER-INTEL/bond_fene_intel.cpp index 2d70049a89..88fa65f555 100644 --- a/src/USER-INTEL/bond_fene_intel.cpp +++ b/src/USER-INTEL/bond_fene_intel.cpp @@ -291,7 +291,7 @@ void BondFENEIntel::init_style() template void BondFENEIntel::pack_force_const(ForceConst &fc, - IntelBuffers *buffers) + IntelBuffers */*buffers*/) { const int bp1 = atom->nbondtypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/bond_harmonic_intel.cpp b/src/USER-INTEL/bond_harmonic_intel.cpp index ed9cab082e..f4ab991b1c 100644 --- a/src/USER-INTEL/bond_harmonic_intel.cpp +++ b/src/USER-INTEL/bond_harmonic_intel.cpp @@ -262,7 +262,7 @@ void BondHarmonicIntel::init_style() template void BondHarmonicIntel::pack_force_const(ForceConst &fc, - IntelBuffers *buffers) + IntelBuffers */*buffers*/) { const int bp1 = atom->nbondtypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/dihedral_fourier_intel.cpp b/src/USER-INTEL/dihedral_fourier_intel.cpp index 6ad25f1ce4..7494fef3bf 100644 --- a/src/USER-INTEL/dihedral_fourier_intel.cpp +++ b/src/USER-INTEL/dihedral_fourier_intel.cpp @@ -401,7 +401,7 @@ void DihedralFourierIntel::init_style() template void DihedralFourierIntel::pack_force_const(ForceConst &fc, - IntelBuffers *buffers) + IntelBuffers */*buffers*/) { const int bp1 = atom->ndihedraltypes + 1; fc.set_ntypes(bp1, setflag, nterms, memory); diff --git a/src/USER-INTEL/dihedral_harmonic_intel.cpp b/src/USER-INTEL/dihedral_harmonic_intel.cpp index b2bf54102c..57361b9527 100644 --- a/src/USER-INTEL/dihedral_harmonic_intel.cpp +++ b/src/USER-INTEL/dihedral_harmonic_intel.cpp @@ -396,7 +396,7 @@ void DihedralHarmonicIntel::init_style() template void DihedralHarmonicIntel::pack_force_const(ForceConst &fc, - IntelBuffers *buffers) + IntelBuffers */*buffers*/) { const int bp1 = atom->ndihedraltypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/dihedral_opls_intel.cpp b/src/USER-INTEL/dihedral_opls_intel.cpp index 832ce7ed50..ae2810f662 100644 --- a/src/USER-INTEL/dihedral_opls_intel.cpp +++ b/src/USER-INTEL/dihedral_opls_intel.cpp @@ -416,7 +416,7 @@ void DihedralOPLSIntel::init_style() template void DihedralOPLSIntel::pack_force_const(ForceConst &fc, - IntelBuffers *buffers) + IntelBuffers */*buffers*/) { const int bp1 = atom->ndihedraltypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/fix_intel.cpp b/src/USER-INTEL/fix_intel.cpp index 7a206f472a..4c703da833 100644 --- a/src/USER-INTEL/fix_intel.cpp +++ b/src/USER-INTEL/fix_intel.cpp @@ -349,7 +349,7 @@ void FixIntel::init() /* ---------------------------------------------------------------------- */ -void FixIntel::setup(int vflag) +void FixIntel::setup(int /*vflag*/) { if (neighbor->style != Neighbor::BIN) error->all(FLERR, @@ -539,7 +539,7 @@ void FixIntel::check_neighbor_intel() /* ---------------------------------------------------------------------- */ -void FixIntel::pre_reverse(int eflag, int vflag) +void FixIntel::pre_reverse(int /*eflag*/, int /*vflag*/) { if (_force_array_m != 0) { if (_need_reduce) { @@ -652,7 +652,7 @@ template void FixIntel::add_results(const ft * _noalias const f_in, const acc_t * _noalias const ev_global, const int eatom, const int vatom, - const int offload) { + const int /*offload*/) { start_watch(TIME_PACK); int f_length; #ifdef _LMP_INTEL_OFFLOAD @@ -719,7 +719,7 @@ void FixIntel::add_results(const ft * _noalias const f_in, template void FixIntel::add_oresults(const ft * _noalias const f_in, const acc_t * _noalias const ev_global, - const int eatom, const int vatom, + const int eatom, const int /*vatom*/, const int out_offset, const int nall) { lmp_ft * _noalias const f = (lmp_ft *) lmp->atom->f[0] + out_offset; if (atom->torque) { diff --git a/src/USER-INTEL/fix_intel.h b/src/USER-INTEL/fix_intel.h index 79fb23ab3d..e6e09be503 100644 --- a/src/USER-INTEL/fix_intel.h +++ b/src/USER-INTEL/fix_intel.h @@ -74,7 +74,7 @@ class FixIntel : public Fix { inline int nbor_pack_width() const { return _nbor_pack_width; } inline void nbor_pack_width(const int w) { _nbor_pack_width = w; } inline int three_body_neighbor() { return _three_body_neighbor; } - inline void three_body_neighbor(const int i) { _three_body_neighbor = 1; } + inline void three_body_neighbor(const int /*i*/) { _three_body_neighbor = 1; } inline int need_zero(const int tid) { if (_need_reduce == 0 && tid > 0) return 1; @@ -159,8 +159,8 @@ class FixIntel : public Fix { inline int host_start_neighbor() { return 0; } inline int host_start_pair() { return 0; } inline void zero_timers() {} - inline void start_watch(const int which) {} - inline double stop_watch(const int which) { return 0.0; } + inline void start_watch(const int /*which*/) {} + inline double stop_watch(const int /*which*/) { return 0.0; } double * off_watch_pair() { return NULL; } double * off_watch_neighbor() { return NULL; } inline void balance_stamp() {} @@ -238,7 +238,7 @@ class FixIntel : public Fix { /* ---------------------------------------------------------------------- */ -void FixIntel::get_buffern(const int offload, int &nlocal, int &nall, +void FixIntel::get_buffern(const int /*offload*/, int &nlocal, int &nall, int &minlocal) { #ifdef _LMP_INTEL_OFFLOAD if (_separate_buffers) { @@ -273,7 +273,7 @@ void FixIntel::get_buffern(const int offload, int &nlocal, int &nall, /* ---------------------------------------------------------------------- */ void FixIntel::add_result_array(IntelBuffers::vec3_acc_t *f_in, - double *ev_in, const int offload, + double *ev_in, const int /*offload*/, const int eatom, const int vatom, const int rflag) { #ifdef _LMP_INTEL_OFFLOAD @@ -301,7 +301,7 @@ void FixIntel::add_result_array(IntelBuffers::vec3_acc_t *f_in, /* ---------------------------------------------------------------------- */ void FixIntel::add_result_array(IntelBuffers::vec3_acc_t *f_in, - double *ev_in, const int offload, + double *ev_in, const int /*offload*/, const int eatom, const int vatom, const int rflag) { #ifdef _LMP_INTEL_OFFLOAD @@ -329,7 +329,7 @@ void FixIntel::add_result_array(IntelBuffers::vec3_acc_t *f_in, /* ---------------------------------------------------------------------- */ void FixIntel::add_result_array(IntelBuffers::vec3_acc_t *f_in, - float *ev_in, const int offload, + float *ev_in, const int /*offload*/, const int eatom, const int vatom, const int rflag) { #ifdef _LMP_INTEL_OFFLOAD diff --git a/src/USER-INTEL/fix_nve_asphere_intel.cpp b/src/USER-INTEL/fix_nve_asphere_intel.cpp index 17bbcff771..a83306def5 100644 --- a/src/USER-INTEL/fix_nve_asphere_intel.cpp +++ b/src/USER-INTEL/fix_nve_asphere_intel.cpp @@ -79,7 +79,7 @@ void FixNVEAsphereIntel::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixNVEAsphereIntel::initial_integrate(int vflag) +void FixNVEAsphereIntel::initial_integrate(int /*vflag*/) { double dtfm; double inertia[3],omega[3]; diff --git a/src/USER-INTEL/fix_nve_intel.cpp b/src/USER-INTEL/fix_nve_intel.cpp index c0f6da06ae..7dee31d2f4 100644 --- a/src/USER-INTEL/fix_nve_intel.cpp +++ b/src/USER-INTEL/fix_nve_intel.cpp @@ -56,7 +56,7 @@ void FixNVEIntel::setup(int vflag) allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixNVEIntel::initial_integrate(int vflag) +void FixNVEIntel::initial_integrate(int /*vflag*/) { // update v and x of atoms in group diff --git a/src/USER-INTEL/improper_cvff_intel.cpp b/src/USER-INTEL/improper_cvff_intel.cpp index e0ef2162d1..025206dc67 100644 --- a/src/USER-INTEL/improper_cvff_intel.cpp +++ b/src/USER-INTEL/improper_cvff_intel.cpp @@ -428,7 +428,7 @@ void ImproperCvffIntel::init_style() template void ImproperCvffIntel::pack_force_const(ForceConst &fc, - IntelBuffers *buffers) + IntelBuffers */*buffers*/) { const int bp1 = atom->nimpropertypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/improper_harmonic_intel.cpp b/src/USER-INTEL/improper_harmonic_intel.cpp index 60cbe16358..dde67e1d76 100644 --- a/src/USER-INTEL/improper_harmonic_intel.cpp +++ b/src/USER-INTEL/improper_harmonic_intel.cpp @@ -384,7 +384,7 @@ void ImproperHarmonicIntel::init_style() template void ImproperHarmonicIntel::pack_force_const(ForceConst &fc, - IntelBuffers *buffers) + IntelBuffers */*buffers*/) { const int bp1 = atom->nimpropertypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/intel_buffers.cpp b/src/USER-INTEL/intel_buffers.cpp index 0f32cb48b2..ada70a18a4 100644 --- a/src/USER-INTEL/intel_buffers.cpp +++ b/src/USER-INTEL/intel_buffers.cpp @@ -109,7 +109,7 @@ void IntelBuffers::free_buffers() template void IntelBuffers::_grow(const int nall, const int nlocal, const int nthreads, - const int offload_end) + const int /*offload_end*/) { free_buffers(); _buf_size = static_cast(nall) * 1.1 + 1; @@ -200,7 +200,7 @@ void IntelBuffers::free_nmax() /* ---------------------------------------------------------------------- */ template -void IntelBuffers::_grow_nmax(const int offload_end) +void IntelBuffers::_grow_nmax(const int /*offload_end*/) { #ifdef _LMP_INTEL_OFFLOAD free_nmax(); @@ -264,7 +264,7 @@ void IntelBuffers::free_list_local() template void IntelBuffers::_grow_list_local(NeighList *list, - const int offload_end) + const int /*offload_end*/) { free_list_local(); int size = list->get_maxlocal(); @@ -310,10 +310,10 @@ void IntelBuffers::free_nbor_list() /* ---------------------------------------------------------------------- */ template -void IntelBuffers::_grow_nbor_list(NeighList *list, +void IntelBuffers::_grow_nbor_list(NeighList */*list*/, const int nlocal, const int nthreads, - const int offload_end, + const int /*offload_end*/, const int pack_width) { free_nbor_list(); @@ -382,7 +382,7 @@ void IntelBuffers::free_ccache() /* ---------------------------------------------------------------------- */ template -void IntelBuffers::grow_ccache(const int off_flag, +void IntelBuffers::grow_ccache(const int /*off_flag*/, const int nthreads, const int width) { @@ -481,7 +481,7 @@ void IntelBuffers::free_ncache() /* ---------------------------------------------------------------------- */ template -void IntelBuffers::grow_ncache(const int off_flag, +void IntelBuffers::grow_ncache(const int /*off_flag*/, const int nthreads) { const int nsize = get_max_nbors() * 3; diff --git a/src/USER-INTEL/intel_buffers.h b/src/USER-INTEL/intel_buffers.h index 8040715b2e..397fa77a7e 100644 --- a/src/USER-INTEL/intel_buffers.h +++ b/src/USER-INTEL/intel_buffers.h @@ -135,24 +135,24 @@ class IntelBuffers { void set_ntypes(const int ntypes, const int use_ghost_cut = 0); - inline int * firstneigh(const NeighList *list) { return _list_alloc; } - inline int * cnumneigh(const NeighList *list) { return _cnumneigh; } + inline int * firstneigh(const NeighList */*list*/) { return _list_alloc; } + inline int * cnumneigh(const NeighList */*list*/) { return _cnumneigh; } inline int * get_atombin() { return _atombin; } inline int * get_binpacked() { return _binpacked; } - inline atom_t * get_x(const int offload = 1) { + inline atom_t * get_x(const int /*offload*/ = 1) { #ifdef _LMP_INTEL_OFFLOAD if (_separate_buffers && offload == 0) return _host_x; #endif return _x; } - inline flt_t * get_q(const int offload = 1) { + inline flt_t * get_q(const int /*offload*/ = 1) { #ifdef _LMP_INTEL_OFFLOAD if (_separate_buffers && offload == 0) return _host_q; #endif return _q; } - inline quat_t * get_quat(const int offload = 1) { + inline quat_t * get_quat(const int /*offload*/ = 1) { #ifdef _LMP_INTEL_OFFLOAD if (_separate_buffers && offload == 0) return _host_quat; #endif diff --git a/src/USER-INTEL/intel_intrinsics_airebo.h b/src/USER-INTEL/intel_intrinsics_airebo.h index 4a86d8db29..2c86ad3520 100644 --- a/src/USER-INTEL/intel_intrinsics_airebo.h +++ b/src/USER-INTEL/intel_intrinsics_airebo.h @@ -2057,8 +2057,8 @@ public: } VEC_INLINE static ivec set( - int i15, int i14, int i13, int i12, int i11, int i10, int i9, int i8, - int i7, int i6, int i5, int i4, int i3, int i2, int i1, int i0 + int /*i15*/, int /*i14*/, int /*i13*/, int /*i12*/, int /*i11*/, int /*i10*/, int /*i9*/, int /*i8*/, + int /*i7*/, int /*i6*/, int /*i5*/, int /*i4*/, int /*i3*/, int /*i2*/, int /*i1*/, int i0 ) { return i0; } diff --git a/src/USER-INTEL/npair_full_bin_ghost_intel.cpp b/src/USER-INTEL/npair_full_bin_ghost_intel.cpp index ae961e84b5..8be2165deb 100644 --- a/src/USER-INTEL/npair_full_bin_ghost_intel.cpp +++ b/src/USER-INTEL/npair_full_bin_ghost_intel.cpp @@ -106,7 +106,7 @@ void NPairFullBinGhostIntel::fbi(NeighList * list, /* ---------------------------------------------------------------------- */ template -void NPairFullBinGhostIntel::fbi(const int offload, NeighList * list, +void NPairFullBinGhostIntel::fbi(const int /*offload*/, NeighList * list, IntelBuffers * buffers, const int pstart, const int pend) { if (pend-pstart == 0) return; diff --git a/src/USER-INTEL/npair_intel.cpp b/src/USER-INTEL/npair_intel.cpp index 355c8db199..d59cd2304a 100644 --- a/src/USER-INTEL/npair_intel.cpp +++ b/src/USER-INTEL/npair_intel.cpp @@ -54,10 +54,10 @@ NPairIntel::~NPairIntel() { template -void NPairIntel::bin_newton(const int offload, NeighList *list, +void NPairIntel::bin_newton(const int /*offload*/, NeighList *list, IntelBuffers *buffers, const int astart, const int aend, - const int offload_end) { + const int /*offload_end*/) { if (aend-astart == 0) return; diff --git a/src/USER-INTEL/pair_airebo_intel.cpp b/src/USER-INTEL/pair_airebo_intel.cpp index 07f33f7ebe..601144a3c0 100644 --- a/src/USER-INTEL/pair_airebo_intel.cpp +++ b/src/USER-INTEL/pair_airebo_intel.cpp @@ -2200,7 +2200,7 @@ typedef typename intr_types::bvec bvec; VEC_INLINE inline static void aut_loadatoms_vec( AtomAIREBOT * atoms, ivec j_vec, - fvec *x, fvec * y, fvec * z, bvec * type_mask, int * map, ivec map_i, + fvec *x, fvec * y, fvec * z, bvec * type_mask, int * /*map*/, ivec map_i, ivec c_1 ) { const ivec c_4 = ivec::set1(4); @@ -2413,7 +2413,7 @@ static fvec aut_eval_poly_lin_pd_2(int n, flt_t * vals, ivec idx, fvec x, } static fvec aut_mask_gSpline_pd_2(KernelArgsAIREBOT * ka, - bvec active_mask, int itype, fvec cosjik, + bvec /*active_mask*/, int itype, fvec cosjik, fvec Nij, fvec *dgdc, fvec *dgdN) { int i; flt_t * gDom = NULL; @@ -2835,7 +2835,7 @@ static void aut_frebo_data_writeback( static void aut_frebo_N_spline_force( KernelArgsAIREBOT * _noalias ka, struct aut_frebo_data * _noalias data, int itype, int jtype, ivec vi, - ivec vj, fvec VA, fvec dN, fvec dNconj, fvec Nconj) { + ivec /*vj*/, fvec VA, fvec dN, fvec dNconj, fvec Nconj) { ivec c_i1 = ivec::set1(1); fvec c_2 = fvec::set1(2); fvec c_TOL = fvec::set1(TOL); @@ -2999,8 +2999,8 @@ static fvec aut_frebo_sum_omega( KernelArgsAIREBOT * _noalias ka, struct aut_frebo_data * _noalias i_data, struct aut_frebo_data * _noalias j_data, - int itype, int jtype, - ivec vi, ivec vj, + int /*itype*/, int /*jtype*/, + ivec /*vi*/, ivec /*vj*/, fvec r23x, fvec r23y, fvec r23z, fvec r23mag, fvec VA, fvec fij[3] ) { @@ -3284,7 +3284,7 @@ static void aut_torsion_vec( KernelArgsAIREBOT * ka, struct aut_frebo_data * i_data, struct aut_frebo_data * j_data, - ivec i, ivec j, fvec wij, fvec dwij + ivec /*i*/, ivec /*j*/, fvec wij, fvec dwij ) { AtomAIREBOT * x = ka->x; int * map = ka->map; @@ -4134,7 +4134,7 @@ exceed_limits: /* * Attempt to look up an element in the hash-map. */ -static fvec aut_airebo_lj_tap_test_path(KernelArgsAIREBOT * ka, +static fvec aut_airebo_lj_tap_test_path(KernelArgsAIREBOT * /*ka*/, struct aut_airebo_lj_test_path_result_data * test_path_result, bvec need_search, ivec i_bc, ivec j, LennardJonesPathAIREBOT path[fvec::VL] diff --git a/src/USER-INTEL/pair_eam_intel.cpp b/src/USER-INTEL/pair_eam_intel.cpp index 201277e68d..11ae442c0e 100644 --- a/src/USER-INTEL/pair_eam_intel.cpp +++ b/src/USER-INTEL/pair_eam_intel.cpp @@ -784,7 +784,7 @@ void PairEAMIntel::ForceConst::set_ntypes(const int ntypes, /* ---------------------------------------------------------------------- */ int PairEAMIntel::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { if (fix->precision() == FixIntel::PREC_MODE_DOUBLE) return pack_forward_comm(n, list, buf, fp); diff --git a/src/USER-INTEL/pair_rebo_intel.cpp b/src/USER-INTEL/pair_rebo_intel.cpp index bc7197000b..3decc0154b 100644 --- a/src/USER-INTEL/pair_rebo_intel.cpp +++ b/src/USER-INTEL/pair_rebo_intel.cpp @@ -28,7 +28,7 @@ PairREBOIntel::PairREBOIntel(LAMMPS *lmp) : PairAIREBOIntel(lmp) {} global settings ------------------------------------------------------------------------- */ -void PairREBOIntel::settings(int narg, char **arg) +void PairREBOIntel::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); diff --git a/src/USER-INTEL/pair_sw_intel.cpp b/src/USER-INTEL/pair_sw_intel.cpp index d1d52270be..aff8ba88a7 100644 --- a/src/USER-INTEL/pair_sw_intel.cpp +++ b/src/USER-INTEL/pair_sw_intel.cpp @@ -173,7 +173,7 @@ template void PairSWIntel::eval(const int offload, const int vflag, IntelBuffers *buffers, const ForceConst &fc, const int astart, - const int aend, const int pad_width) + const int aend, const int /*pad_width*/) { const int inum = aend - astart; if (inum == 0) return; diff --git a/src/USER-INTEL/pppm_disp_intel.cpp b/src/USER-INTEL/pppm_disp_intel.cpp index 0a41e5d8a5..c7edc15a49 100644 --- a/src/USER-INTEL/pppm_disp_intel.cpp +++ b/src/USER-INTEL/pppm_disp_intel.cpp @@ -723,7 +723,7 @@ void PPPMDispIntel::particle_map(double delx, double dely, double delz, double sft, int** p2g, int nup, int nlow, int nxlo, int nylo, int nzlo, int nxhi, int nyhi, int nzhi, - IntelBuffers *buffers) + IntelBuffers */*buffers*/) { int nlocal = atom->nlocal; int nthr = comm->nthreads; @@ -790,7 +790,7 @@ void PPPMDispIntel::particle_map(double delx, double dely, double delz, ------------------------------------------------------------------------- */ template -void PPPMDispIntel::make_rho_c(IntelBuffers *buffers) +void PPPMDispIntel::make_rho_c(IntelBuffers */*buffers*/) { // clear 3d density array @@ -940,7 +940,7 @@ void PPPMDispIntel::make_rho_c(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::make_rho_g(IntelBuffers *buffers) +void PPPMDispIntel::make_rho_g(IntelBuffers */*buffers*/) { // clear 3d density array @@ -1091,7 +1091,7 @@ void PPPMDispIntel::make_rho_g(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::make_rho_a(IntelBuffers *buffers) +void PPPMDispIntel::make_rho_a(IntelBuffers */*buffers*/) { // clear 3d density array @@ -1225,7 +1225,7 @@ void PPPMDispIntel::make_rho_a(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::make_rho_none(IntelBuffers *buffers) +void PPPMDispIntel::make_rho_none(IntelBuffers */*buffers*/) { FFT_SCALAR * _noalias global_density = &(density_brick_none[0][nzlo_out_6][nylo_out_6][nxlo_out_6]); @@ -1373,7 +1373,7 @@ void PPPMDispIntel::make_rho_none(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_c_ik(IntelBuffers *buffers) +void PPPMDispIntel::fieldforce_c_ik(IntelBuffers */*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -1520,7 +1520,7 @@ void PPPMDispIntel::fieldforce_c_ik(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_c_ad(IntelBuffers *buffers) +void PPPMDispIntel::fieldforce_c_ad(IntelBuffers */*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -1725,7 +1725,7 @@ void PPPMDispIntel::fieldforce_c_ad(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_g_ik(IntelBuffers *buffers) +void PPPMDispIntel::fieldforce_g_ik(IntelBuffers */*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -1869,7 +1869,7 @@ void PPPMDispIntel::fieldforce_g_ik(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_g_ad(IntelBuffers *buffers) +void PPPMDispIntel::fieldforce_g_ad(IntelBuffers */*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -2069,7 +2069,7 @@ void PPPMDispIntel::fieldforce_g_ad(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_a_ik(IntelBuffers *buffers) +void PPPMDispIntel::fieldforce_a_ik(IntelBuffers */*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -2282,7 +2282,7 @@ void PPPMDispIntel::fieldforce_a_ik(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_a_ad(IntelBuffers *buffers) +void PPPMDispIntel::fieldforce_a_ad(IntelBuffers */*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -2594,7 +2594,7 @@ void PPPMDispIntel::fieldforce_a_ad(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_none_ik(IntelBuffers *buffers) +void PPPMDispIntel::fieldforce_none_ik(IntelBuffers */*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -2755,7 +2755,7 @@ void PPPMDispIntel::fieldforce_none_ik(IntelBuffers *buffers) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_none_ad(IntelBuffers *buffers) +void PPPMDispIntel::fieldforce_none_ad(IntelBuffers */*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points // (nx,ny,nz) = global coords of grid pt to "lower left" of charge diff --git a/src/USER-INTEL/pppm_intel.cpp b/src/USER-INTEL/pppm_intel.cpp index 46a55e558a..e5540e6377 100644 --- a/src/USER-INTEL/pppm_intel.cpp +++ b/src/USER-INTEL/pppm_intel.cpp @@ -255,7 +255,7 @@ void PPPMIntel::compute_first(int eflag, int vflag) /* ---------------------------------------------------------------------- */ -void PPPMIntel::compute_second(int eflag, int vflag) +void PPPMIntel::compute_second(int /*eflag*/, int /*vflag*/) { int i,j; diff --git a/src/USER-LB/fix_lb_fluid.cpp b/src/USER-LB/fix_lb_fluid.cpp index 7a0bd0572e..fecd6f2b25 100644 --- a/src/USER-LB/fix_lb_fluid.cpp +++ b/src/USER-LB/fix_lb_fluid.cpp @@ -646,7 +646,7 @@ void FixLbFluid::init(void) } -void FixLbFluid::setup(int vflag) +void FixLbFluid::setup(int /*vflag*/) { //-------------------------------------------------------------------------- // Need to calculate the force on the fluid for a restart run. @@ -655,7 +655,7 @@ void FixLbFluid::setup(int vflag) calc_fluidforce(); } -void FixLbFluid::initial_integrate(int vflag) +void FixLbFluid::initial_integrate(int /*vflag*/) { //-------------------------------------------------------------------------- // Print a header labelling any output printed to the screen. @@ -711,7 +711,7 @@ void FixLbFluid::initial_integrate(int vflag) streamout(); } -void FixLbFluid::post_force(int vflag) +void FixLbFluid::post_force(int /*vflag*/) { if(fixviscouslb==1) calc_fluidforce(); @@ -741,7 +741,7 @@ void FixLbFluid::grow_arrays(int nmax) //========================================================================== // copy values within local atom-based array //========================================================================== -void FixLbFluid::copy_arrays(int i, int j, int delflag) +void FixLbFluid::copy_arrays(int i, int j, int /*delflag*/) { hydroF[j][0] = hydroF[i][0]; hydroF[j][1] = hydroF[i][1]; diff --git a/src/USER-LB/fix_lb_pc.cpp b/src/USER-LB/fix_lb_pc.cpp index 9fd0dab51d..c5c12d6c11 100644 --- a/src/USER-LB/fix_lb_pc.cpp +++ b/src/USER-LB/fix_lb_pc.cpp @@ -118,7 +118,7 @@ void FixLbPC::init() } /* ---------------------------------------------------------------------- */ -void FixLbPC::initial_integrate(int vflag) { +void FixLbPC::initial_integrate(int /*vflag*/) { double dtfm; @@ -285,7 +285,7 @@ void FixLbPC::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixLbPC::copy_arrays(int i, int j, int delflag) +void FixLbPC::copy_arrays(int i, int j, int /*delflag*/) { force_old[j][0] = force_old[i][0]; diff --git a/src/USER-LB/fix_lb_rigid_pc_sphere.cpp b/src/USER-LB/fix_lb_rigid_pc_sphere.cpp index dddd060fa4..2601539727 100644 --- a/src/USER-LB/fix_lb_rigid_pc_sphere.cpp +++ b/src/USER-LB/fix_lb_rigid_pc_sphere.cpp @@ -1454,7 +1454,7 @@ void FixLbRigidPCSphere::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixLbRigidPCSphere::copy_arrays(int i, int j, int delflag) +void FixLbRigidPCSphere::copy_arrays(int i, int j, int /*delflag*/) { body[j] = body[i]; up[j][0] = up[i][0]; diff --git a/src/USER-LB/fix_lb_viscous.cpp b/src/USER-LB/fix_lb_viscous.cpp index 8ee4d8419e..afe23477be 100644 --- a/src/USER-LB/fix_lb_viscous.cpp +++ b/src/USER-LB/fix_lb_viscous.cpp @@ -109,7 +109,7 @@ void FixLbViscous::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixLbViscous::post_force(int vflag) +void FixLbViscous::post_force(int /*vflag*/) { // apply drag force to atoms in group // direction is opposed to velocity vector @@ -132,7 +132,7 @@ void FixLbViscous::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixLbViscous::post_force_respa(int vflag, int ilevel, int iloop) +void FixLbViscous::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } diff --git a/src/USER-MANIFOLD/fix_manifoldforce.cpp b/src/USER-MANIFOLD/fix_manifoldforce.cpp index 04172d5c92..4e717ce556 100644 --- a/src/USER-MANIFOLD/fix_manifoldforce.cpp +++ b/src/USER-MANIFOLD/fix_manifoldforce.cpp @@ -149,7 +149,7 @@ void FixManifoldForce::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixManifoldForce::post_force(int vflag) +void FixManifoldForce::post_force(int /*vflag*/) { double **x = atom->x; double **f = atom->f; @@ -177,7 +177,7 @@ void FixManifoldForce::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixManifoldForce::post_force_respa(int vflag, int ilevel, int iloop) +void FixManifoldForce::post_force_respa(int vflag, int /*ilevel*/, int /*iloop*/) { post_force(vflag); } diff --git a/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp b/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp index 4dcc3f9704..3c6c70f6df 100644 --- a/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp +++ b/src/USER-MANIFOLD/fix_nve_manifold_rattle.cpp @@ -307,7 +307,7 @@ void FixNVEManifoldRattle::update_var_params() /* ----------------------------------------------------------------------------- ---------------------------------------------------------------------------*/ -int FixNVEManifoldRattle::dof(int igroup) +int FixNVEManifoldRattle::dof(int /*igroup*/) { int *mask = atom->mask; int nlocal = atom->nlocal; @@ -348,7 +348,7 @@ double FixNVEManifoldRattle::memory_usage() /* ----------------------------------------------------------------------------- ---------------------------------------------------------------------------*/ -void FixNVEManifoldRattle::initial_integrate(int vflag) +void FixNVEManifoldRattle::initial_integrate(int /*vflag*/) { update_var_params(); nve_x_rattle(igroup, groupbit); diff --git a/src/USER-MANIFOLD/fix_nvt_manifold_rattle.cpp b/src/USER-MANIFOLD/fix_nvt_manifold_rattle.cpp index 973a5bcf43..2a204d2048 100644 --- a/src/USER-MANIFOLD/fix_nvt_manifold_rattle.cpp +++ b/src/USER-MANIFOLD/fix_nvt_manifold_rattle.cpp @@ -229,7 +229,7 @@ void FixNVTManifoldRattle::init() -void FixNVTManifoldRattle::setup(int vflag) +void FixNVTManifoldRattle::setup(int /*vflag*/) { compute_temp_target(); @@ -371,7 +371,7 @@ void FixNVTManifoldRattle::nh_v_temp() // Most of this logic is based on fix_nh: -void FixNVTManifoldRattle::initial_integrate(int vflag) +void FixNVTManifoldRattle::initial_integrate(int /*vflag*/) { update_var_params(); diff --git a/src/USER-MANIFOLD/manifold.h b/src/USER-MANIFOLD/manifold.h index 6eb09010ef..b0727c346d 100644 --- a/src/USER-MANIFOLD/manifold.h +++ b/src/USER-MANIFOLD/manifold.h @@ -61,7 +61,7 @@ namespace user_manifold { virtual const char *id() = 0; - virtual void set_atom_id( tagint a_id ){} + virtual void set_atom_id( tagint /*a_id*/ ){} virtual int nparams() = 0; // double *get_params(){ return params; }; diff --git a/src/USER-MANIFOLD/manifold_cylinder.cpp b/src/USER-MANIFOLD/manifold_cylinder.cpp index c13581c640..28062d7a27 100644 --- a/src/USER-MANIFOLD/manifold_cylinder.cpp +++ b/src/USER-MANIFOLD/manifold_cylinder.cpp @@ -5,8 +5,8 @@ using namespace LAMMPS_NS; using namespace user_manifold; -manifold_cylinder::manifold_cylinder( LAMMPS *lmp, int argc, - char **argv ) : manifold(lmp) +manifold_cylinder::manifold_cylinder( LAMMPS *lmp, int /*argc*/, + char **/*argv*/ ) : manifold(lmp) {} diff --git a/src/USER-MANIFOLD/manifold_cylinder_dent.cpp b/src/USER-MANIFOLD/manifold_cylinder_dent.cpp index 21d4087d7c..4df4c833d3 100644 --- a/src/USER-MANIFOLD/manifold_cylinder_dent.cpp +++ b/src/USER-MANIFOLD/manifold_cylinder_dent.cpp @@ -8,8 +8,8 @@ using namespace LAMMPS_NS; using namespace user_manifold; -manifold_cylinder_dent::manifold_cylinder_dent( LAMMPS *lmp, int argc, - char **argv ) : manifold(lmp) +manifold_cylinder_dent::manifold_cylinder_dent( LAMMPS *lmp, int /*argc*/, + char **/*argv*/ ) : manifold(lmp) {} diff --git a/src/USER-MANIFOLD/manifold_dumbbell.cpp b/src/USER-MANIFOLD/manifold_dumbbell.cpp index fa7edc6e4a..c40a5fff9f 100644 --- a/src/USER-MANIFOLD/manifold_dumbbell.cpp +++ b/src/USER-MANIFOLD/manifold_dumbbell.cpp @@ -6,7 +6,7 @@ using namespace LAMMPS_NS; using namespace user_manifold; -manifold_dumbbell::manifold_dumbbell( LAMMPS *lmp, int argc, char **argv ) : manifold(lmp) +manifold_dumbbell::manifold_dumbbell( LAMMPS *lmp, int /*argc*/, char **/*argv*/ ) : manifold(lmp) {} diff --git a/src/USER-MANIFOLD/manifold_ellipsoid.cpp b/src/USER-MANIFOLD/manifold_ellipsoid.cpp index f590123dc3..d5e7bb146e 100644 --- a/src/USER-MANIFOLD/manifold_ellipsoid.cpp +++ b/src/USER-MANIFOLD/manifold_ellipsoid.cpp @@ -4,7 +4,7 @@ using namespace LAMMPS_NS; using namespace user_manifold; -manifold_ellipsoid::manifold_ellipsoid( LAMMPS *lmp, int narg, char **argv ) : manifold(lmp) +manifold_ellipsoid::manifold_ellipsoid( LAMMPS *lmp, int /*narg*/, char **/*argv*/ ) : manifold(lmp) {} diff --git a/src/USER-MANIFOLD/manifold_gaussian_bump.cpp b/src/USER-MANIFOLD/manifold_gaussian_bump.cpp index cbb47ef92d..b95162740b 100644 --- a/src/USER-MANIFOLD/manifold_gaussian_bump.cpp +++ b/src/USER-MANIFOLD/manifold_gaussian_bump.cpp @@ -133,7 +133,7 @@ public: // Manifold itself: manifold_gaussian_bump::manifold_gaussian_bump(class LAMMPS* lmp, - int narg, char **arg) + int /*narg*/, char **/*arg*/) : manifold(lmp), lut_z(NULL), lut_zp(NULL) {} diff --git a/src/USER-MANIFOLD/manifold_plane.cpp b/src/USER-MANIFOLD/manifold_plane.cpp index d33617fbfb..45a1f4b46e 100644 --- a/src/USER-MANIFOLD/manifold_plane.cpp +++ b/src/USER-MANIFOLD/manifold_plane.cpp @@ -4,7 +4,7 @@ using namespace LAMMPS_NS; using namespace user_manifold; -manifold_plane::manifold_plane( LAMMPS *lmp, int argc, char **argv ) : +manifold_plane::manifold_plane( LAMMPS *lmp, int /*argc*/, char **/*argv*/ ) : manifold(lmp) {} @@ -16,7 +16,7 @@ double manifold_plane::g( const double *x ) } -void manifold_plane::n( const double *x, double *n ) +void manifold_plane::n( const double */*x*/, double *n ) { n[0] = params[0]; n[1] = params[1]; diff --git a/src/USER-MANIFOLD/manifold_plane_wiggle.cpp b/src/USER-MANIFOLD/manifold_plane_wiggle.cpp index ccf0a794da..983702b6f3 100644 --- a/src/USER-MANIFOLD/manifold_plane_wiggle.cpp +++ b/src/USER-MANIFOLD/manifold_plane_wiggle.cpp @@ -5,7 +5,7 @@ using namespace LAMMPS_NS; using namespace user_manifold; -manifold_plane_wiggle::manifold_plane_wiggle( LAMMPS *lmp, int argc, char **argv ) : +manifold_plane_wiggle::manifold_plane_wiggle( LAMMPS *lmp, int /*argc*/, char **/*argv*/ ) : manifold(lmp) {} diff --git a/src/USER-MANIFOLD/manifold_spine.cpp b/src/USER-MANIFOLD/manifold_spine.cpp index 308190c528..0ca4c67002 100644 --- a/src/USER-MANIFOLD/manifold_spine.cpp +++ b/src/USER-MANIFOLD/manifold_spine.cpp @@ -8,7 +8,7 @@ using namespace user_manifold; -manifold_spine::manifold_spine( LAMMPS *lmp, int argc, char **argv ) +manifold_spine::manifold_spine( LAMMPS *lmp, int /*argc*/, char **/*argv*/ ) : manifold(lmp) { power = 4; diff --git a/src/USER-MANIFOLD/manifold_thylakoid.cpp b/src/USER-MANIFOLD/manifold_thylakoid.cpp index b7eb155ba2..16c4e696d5 100644 --- a/src/USER-MANIFOLD/manifold_thylakoid.cpp +++ b/src/USER-MANIFOLD/manifold_thylakoid.cpp @@ -12,7 +12,7 @@ using namespace LAMMPS_NS; using namespace user_manifold; -manifold_thylakoid::manifold_thylakoid( LAMMPS *lmp, int narg, char ** arg) +manifold_thylakoid::manifold_thylakoid( LAMMPS *lmp, int /*narg*/, char ** /*arg*/) : manifold(lmp) { // You can NOT depend on proper construction of the domains in @@ -117,7 +117,7 @@ void manifold_thylakoid::n( const double *x, double *n ) } } -thyla_part *manifold_thylakoid::get_thyla_part( const double *x, int *err_flag, std::size_t *idx ) +thyla_part *manifold_thylakoid::get_thyla_part( const double *x, int */*err_flag*/, std::size_t *idx ) { for( std::size_t i = 0; i < parts.size(); ++i ){ diff --git a/src/USER-MANIFOLD/manifold_torus.cpp b/src/USER-MANIFOLD/manifold_torus.cpp index 44a17725b5..0b4ca24370 100644 --- a/src/USER-MANIFOLD/manifold_torus.cpp +++ b/src/USER-MANIFOLD/manifold_torus.cpp @@ -6,7 +6,7 @@ using namespace LAMMPS_NS; using namespace user_manifold; -manifold_torus::manifold_torus( LAMMPS *lmp, int argc, char **argv ) : manifold(lmp) +manifold_torus::manifold_torus( LAMMPS *lmp, int /*argc*/, char **/*argv*/ ) : manifold(lmp) {} diff --git a/src/USER-MEAMC/meam_dens_final.cpp b/src/USER-MEAMC/meam_dens_final.cpp index de188e497d..2be215c282 100644 --- a/src/USER-MEAMC/meam_dens_final.cpp +++ b/src/USER-MEAMC/meam_dens_final.cpp @@ -5,7 +5,7 @@ using namespace LAMMPS_NS; void MEAM::meam_dens_final(int nlocal, int eflag_either, int eflag_global, int eflag_atom, double* eng_vdwl, - double* eatom, int ntype, int* type, int* fmap, int& errorflag) + double* eatom, int /*ntype*/, int* type, int* fmap, int& errorflag) { int i, elti; int m; diff --git a/src/USER-MEAMC/meam_dens_init.cpp b/src/USER-MEAMC/meam_dens_init.cpp index e1a7509ab3..4bbaa42596 100644 --- a/src/USER-MEAMC/meam_dens_init.cpp +++ b/src/USER-MEAMC/meam_dens_init.cpp @@ -93,7 +93,7 @@ MEAM::meam_dens_init(int i, int ntype, int* type, int* fmap, double** x, void MEAM::getscreen(int i, double* scrfcn, double* dscrfcn, double* fcpair, double** x, int numneigh, - int* firstneigh, int numneigh_full, int* firstneigh_full, int ntype, int* type, int* fmap) + int* firstneigh, int numneigh_full, int* firstneigh_full, int /*ntype*/, int* type, int* fmap) { int jn, j, kn, k; int elti, eltj, eltk; @@ -256,7 +256,7 @@ MEAM::getscreen(int i, double* scrfcn, double* dscrfcn, double* fcpair, double** // ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc void -MEAM::calc_rho1(int i, int ntype, int* type, int* fmap, double** x, int numneigh, int* firstneigh, +MEAM::calc_rho1(int i, int /*ntype*/, int* type, int* fmap, double** x, int numneigh, int* firstneigh, double* scrfcn, double* fcpair) { int jn, j, m, n, p, elti, eltj; diff --git a/src/USER-MEAMC/meam_force.cpp b/src/USER-MEAMC/meam_force.cpp index 85314dd8a2..06fbb57adb 100644 --- a/src/USER-MEAMC/meam_force.cpp +++ b/src/USER-MEAMC/meam_force.cpp @@ -7,7 +7,7 @@ using namespace LAMMPS_NS; void MEAM::meam_force(int i, int eflag_either, int eflag_global, int eflag_atom, int vflag_atom, double* eng_vdwl, - double* eatom, int ntype, int* type, int* fmap, double** x, int numneigh, int* firstneigh, + double* eatom, int /*ntype*/, int* type, int* fmap, double** x, int numneigh, int* firstneigh, int numneigh_full, int* firstneigh_full, int fnoffset, double** f, double** vatom) { int j, jn, k, kn, kk, m, n, p, q; diff --git a/src/USER-MEAMC/meam_setup_global.cpp b/src/USER-MEAMC/meam_setup_global.cpp index 7f8ad3d81f..503ee65496 100644 --- a/src/USER-MEAMC/meam_setup_global.cpp +++ b/src/USER-MEAMC/meam_setup_global.cpp @@ -3,7 +3,7 @@ using namespace LAMMPS_NS; void -MEAM::meam_setup_global(int nelt, lattice_t* lat, double* z, int* ielement, double* atwt, double* alpha, +MEAM::meam_setup_global(int nelt, lattice_t* lat, double* z, int* ielement, double* /*atwt*/, double* alpha, double* b0, double* b1, double* b2, double* b3, double* alat, double* esub, double* asub, double* t0, double* t1, double* t2, double* t3, double* rozero, int* ibar) diff --git a/src/USER-MEAMC/pair_meamc.cpp b/src/USER-MEAMC/pair_meamc.cpp index 027e4c27a7..da0e4c1d28 100644 --- a/src/USER-MEAMC/pair_meamc.cpp +++ b/src/USER-MEAMC/pair_meamc.cpp @@ -195,7 +195,7 @@ void PairMEAMC::allocate() global settings ------------------------------------------------------------------------- */ -void PairMEAMC::settings(int narg, char **arg) +void PairMEAMC::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } @@ -312,7 +312,7 @@ void PairMEAMC::init_list(int id, NeighList *ptr) init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairMEAMC::init_one(int i, int j) +double PairMEAMC::init_one(int /*i*/, int /*j*/) { return cutmax; } @@ -598,7 +598,7 @@ void PairMEAMC::read_files(char *globalfile, char *userfile) /* ---------------------------------------------------------------------- */ int PairMEAMC::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,k,m; diff --git a/src/USER-MESO/fix_edpd_source.cpp b/src/USER-MESO/fix_edpd_source.cpp index 8b03e05181..24bef2b1f7 100644 --- a/src/USER-MESO/fix_edpd_source.cpp +++ b/src/USER-MESO/fix_edpd_source.cpp @@ -87,7 +87,7 @@ void FixEDPDSource::init() /* ---------------------------------------------------------------------- */ -void FixEDPDSource::post_force(int vflag) +void FixEDPDSource::post_force(int /*vflag*/) { double **x = atom->x; double *edpd_flux = atom->edpd_flux; diff --git a/src/USER-MESO/fix_mvv_dpd.cpp b/src/USER-MESO/fix_mvv_dpd.cpp index c97a2d779c..f663165f78 100644 --- a/src/USER-MESO/fix_mvv_dpd.cpp +++ b/src/USER-MESO/fix_mvv_dpd.cpp @@ -72,7 +72,7 @@ void FixMvvDPD::init() allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixMvvDPD::initial_integrate(int vflag) +void FixMvvDPD::initial_integrate(int /*vflag*/) { double dtfm; double **x = atom->x; diff --git a/src/USER-MESO/fix_mvv_edpd.cpp b/src/USER-MESO/fix_mvv_edpd.cpp index 89a831e121..8719d0d262 100644 --- a/src/USER-MESO/fix_mvv_edpd.cpp +++ b/src/USER-MESO/fix_mvv_edpd.cpp @@ -78,7 +78,7 @@ void FixMvvEDPD::init() allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixMvvEDPD::initial_integrate(int vflag) +void FixMvvEDPD::initial_integrate(int /*vflag*/) { double dtfm,dtT; // update v and x and cc of atoms in group diff --git a/src/USER-MESO/fix_mvv_tdpd.cpp b/src/USER-MESO/fix_mvv_tdpd.cpp index e16171800b..24b1bbcf48 100644 --- a/src/USER-MESO/fix_mvv_tdpd.cpp +++ b/src/USER-MESO/fix_mvv_tdpd.cpp @@ -76,7 +76,7 @@ void FixMvvTDPD::init() allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixMvvTDPD::initial_integrate(int vflag) +void FixMvvTDPD::initial_integrate(int /*vflag*/) { double dtfm; // update v and x and cc of atoms in group diff --git a/src/USER-MESO/fix_tdpd_source.cpp b/src/USER-MESO/fix_tdpd_source.cpp index 64964a4c98..89e8005b43 100644 --- a/src/USER-MESO/fix_tdpd_source.cpp +++ b/src/USER-MESO/fix_tdpd_source.cpp @@ -88,7 +88,7 @@ void FixTDPDSource::init() /* ---------------------------------------------------------------------- */ -void FixTDPDSource::post_force(int vflag) +void FixTDPDSource::post_force(int /*vflag*/) { double **x = atom->x; double **cc_flux = atom->cc_flux; diff --git a/src/USER-MESO/pair_edpd.cpp b/src/USER-MESO/pair_edpd.cpp index 351637a842..5ed63a2a8b 100644 --- a/src/USER-MESO/pair_edpd.cpp +++ b/src/USER-MESO/pair_edpd.cpp @@ -530,7 +530,7 @@ void PairEDPD::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ double PairEDPD::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_dpd, double &fforce) + double /*factor_coul*/, double factor_dpd, double &fforce) { double r,rinv,wc,phi; double *T = atom->edpd_temp; diff --git a/src/USER-MESO/pair_mdpd_rhosum.cpp b/src/USER-MESO/pair_mdpd_rhosum.cpp index 1264d03ed3..d705285584 100644 --- a/src/USER-MESO/pair_mdpd_rhosum.cpp +++ b/src/USER-MESO/pair_mdpd_rhosum.cpp @@ -186,7 +186,7 @@ void PairMDPDRhoSum::allocate() { global settings ------------------------------------------------------------------------- */ -void PairMDPDRhoSum::settings(int narg, char **arg) { +void PairMDPDRhoSum::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal number of setting arguments for pair_style mdpd/rhosum"); } @@ -236,8 +236,8 @@ double PairMDPDRhoSum::init_one(int i, int j) { /* ---------------------------------------------------------------------- */ -double PairMDPDRhoSum::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, double &fforce) { +double PairMDPDRhoSum::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, double /*rsq*/, + double /*factor_coul*/, double /*factor_lj*/, double &fforce) { fforce = 0.0; return 0.0; @@ -246,7 +246,7 @@ double PairMDPDRhoSum::single(int i, int j, int itype, int jtype, double rsq, /* ---------------------------------------------------------------------- */ int PairMDPDRhoSum::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) { + int /*pbc_flag*/, int */*pbc*/) { int i, j, m; double *rho = atom->rho; diff --git a/src/USER-MESO/pair_tdpd.cpp b/src/USER-MESO/pair_tdpd.cpp index b8bbf6d622..821d8c0486 100644 --- a/src/USER-MESO/pair_tdpd.cpp +++ b/src/USER-MESO/pair_tdpd.cpp @@ -465,8 +465,8 @@ void PairTDPD::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairTDPD::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_dpd, double &fforce) +double PairTDPD::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_dpd, double &fforce) { double r,rinv,wc,phi; diff --git a/src/USER-MGPT/pair_mgpt.cpp b/src/USER-MGPT/pair_mgpt.cpp index bac405bcbb..347bc9cc69 100644 --- a/src/USER-MGPT/pair_mgpt.cpp +++ b/src/USER-MGPT/pair_mgpt.cpp @@ -79,7 +79,7 @@ static double gettime(int x = 0) { return 0.0; } #else -static double gettime(int x = 0) { return 0.0; } +static double gettime(int /*x*/ = 0) { return 0.0; } #endif @@ -1805,7 +1805,7 @@ void PairMGPT::allocate() /* ---------------------------------------------------------------------- global settings ------------------------------------------------------------------------- */ -void PairMGPT::settings(int narg, char **arg) +void PairMGPT::settings(int narg, char **/*arg*/) { if(narg != 0) error->all(__FILE__,__LINE__,"Illegal pair_style command"); } @@ -2025,7 +2025,7 @@ void PairMGPT::init_list(int id, NeighList *ptr) /* ---------------------------------------------------------------------- init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairMGPT::init_one(int i, int j) +double PairMGPT::init_one(int /*i*/, int /*j*/) { return cutoff; } diff --git a/src/USER-MISC/angle_dipole.cpp b/src/USER-MISC/angle_dipole.cpp index bcb631c61f..c4186da472 100644 --- a/src/USER-MISC/angle_dipole.cpp +++ b/src/USER-MISC/angle_dipole.cpp @@ -229,7 +229,7 @@ void AngleDipole::write_data(FILE *fp) used by ComputeAngleLocal ------------------------------------------------------------------------- */ -double AngleDipole::single(int type, int iRef, int iDip, int iDummy) +double AngleDipole::single(int type, int iRef, int iDip, int /*iDummy*/) { double **x = atom->x; // position vector double **mu = atom->mu; // point-dipole components and moment magnitude diff --git a/src/USER-MISC/bond_harmonic_shift.cpp b/src/USER-MISC/bond_harmonic_shift.cpp index 7148c5438d..b34f71e888 100644 --- a/src/USER-MISC/bond_harmonic_shift.cpp +++ b/src/USER-MISC/bond_harmonic_shift.cpp @@ -203,7 +203,7 @@ void BondHarmonicShift::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondHarmonicShift::single(int type, double rsq, int i, int j, +double BondHarmonicShift::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { double r = sqrt(rsq); diff --git a/src/USER-MISC/bond_harmonic_shift_cut.cpp b/src/USER-MISC/bond_harmonic_shift_cut.cpp index 20c8a1a300..a58df70878 100644 --- a/src/USER-MISC/bond_harmonic_shift_cut.cpp +++ b/src/USER-MISC/bond_harmonic_shift_cut.cpp @@ -205,7 +205,7 @@ void BondHarmonicShiftCut::write_data(FILE *fp) /* ---------------------------------------------------------------------- */ -double BondHarmonicShiftCut::single(int type, double rsq, int i, int j, +double BondHarmonicShiftCut::single(int type, double rsq, int /*i*/, int /*j*/, double &fforce) { fforce = 0.0; diff --git a/src/USER-MISC/compute_ackland_atom.cpp b/src/USER-MISC/compute_ackland_atom.cpp index a17aefe71b..bcf41591eb 100644 --- a/src/USER-MISC/compute_ackland_atom.cpp +++ b/src/USER-MISC/compute_ackland_atom.cpp @@ -105,7 +105,7 @@ void ComputeAcklandAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeAcklandAtom::init_list(int id, NeighList *ptr) +void ComputeAcklandAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/USER-MISC/compute_basal_atom.cpp b/src/USER-MISC/compute_basal_atom.cpp index 4d8627a11f..3b9b38343d 100644 --- a/src/USER-MISC/compute_basal_atom.cpp +++ b/src/USER-MISC/compute_basal_atom.cpp @@ -85,7 +85,7 @@ void ComputeBasalAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeBasalAtom::init_list(int id, NeighList *ptr) +void ComputeBasalAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/USER-MISC/compute_cnp_atom.cpp b/src/USER-MISC/compute_cnp_atom.cpp index 51cf3ab07a..6fa16f1a9a 100644 --- a/src/USER-MISC/compute_cnp_atom.cpp +++ b/src/USER-MISC/compute_cnp_atom.cpp @@ -121,7 +121,7 @@ void ComputeCNPAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeCNPAtom::init_list(int id, NeighList *ptr) +void ComputeCNPAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/USER-MISC/compute_entropy_atom.cpp b/src/USER-MISC/compute_entropy_atom.cpp index 922f2aaf5e..4946bc437e 100644 --- a/src/USER-MISC/compute_entropy_atom.cpp +++ b/src/USER-MISC/compute_entropy_atom.cpp @@ -151,7 +151,7 @@ void ComputeEntropyAtom::init() /* ---------------------------------------------------------------------- */ -void ComputeEntropyAtom::init_list(int id, NeighList *ptr) +void ComputeEntropyAtom::init_list(int /*id*/, NeighList *ptr) { list = ptr; } diff --git a/src/USER-MISC/fix_addtorque.cpp b/src/USER-MISC/fix_addtorque.cpp index 654911769c..2cd1ac7527 100644 --- a/src/USER-MISC/fix_addtorque.cpp +++ b/src/USER-MISC/fix_addtorque.cpp @@ -164,7 +164,7 @@ void FixAddTorque::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixAddTorque::post_force(int vflag) +void FixAddTorque::post_force(int /*vflag*/) { double **x = atom->x; double **f = atom->f; @@ -252,7 +252,7 @@ void FixAddTorque::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixAddTorque::post_force_respa(int vflag, int ilevel, int iloop) +void FixAddTorque::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/USER-MISC/fix_ave_correlate_long.cpp b/src/USER-MISC/fix_ave_correlate_long.cpp index da6d041287..0ce6121bf9 100644 --- a/src/USER-MISC/fix_ave_correlate_long.cpp +++ b/src/USER-MISC/fix_ave_correlate_long.cpp @@ -412,7 +412,7 @@ void FixAveCorrelateLong::init() only does something if nvalid = current timestep ------------------------------------------------------------------------- */ -void FixAveCorrelateLong::setup(int vflag) +void FixAveCorrelateLong::setup(int /*vflag*/) { end_of_step(); } diff --git a/src/USER-MISC/fix_bond_react.cpp b/src/USER-MISC/fix_bond_react.cpp index 5ce1f11475..cd7918f4dd 100644 --- a/src/USER-MISC/fix_bond_react.cpp +++ b/src/USER-MISC/fix_bond_react.cpp @@ -588,7 +588,7 @@ void FixBondReact::init() /* ---------------------------------------------------------------------- */ -void FixBondReact::init_list(int id, NeighList *ptr) +void FixBondReact::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -2621,7 +2621,7 @@ double FixBondReact::compute_vector(int n) /* ---------------------------------------------------------------------- */ -void FixBondReact::post_integrate_respa(int ilevel, int iloop) +void FixBondReact::post_integrate_respa(int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_integrate(); } @@ -2629,7 +2629,7 @@ void FixBondReact::post_integrate_respa(int ilevel, int iloop) /* ---------------------------------------------------------------------- */ int FixBondReact::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,k,m,ns; diff --git a/src/USER-MISC/fix_filter_corotate.cpp b/src/USER-MISC/fix_filter_corotate.cpp index 91c7033513..4a6b3226d4 100644 --- a/src/USER-MISC/fix_filter_corotate.cpp +++ b/src/USER-MISC/fix_filter_corotate.cpp @@ -705,7 +705,7 @@ double FixFilterCorotate::compute_array(int,int) return 1; } -void FixFilterCorotate::pre_force_respa(int vflag, int ilevel, int iloop) +void FixFilterCorotate::pre_force_respa(int /*vflag*/, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) { @@ -717,7 +717,7 @@ void FixFilterCorotate::pre_force_respa(int vflag, int ilevel, int iloop) } } -void FixFilterCorotate::post_force_respa(int vflag, int ilevel, int iloop) +void FixFilterCorotate::post_force_respa(int /*vflag*/, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) { @@ -1699,7 +1699,7 @@ void FixFilterCorotate::general_cluster(int index, int index_in_list) } int FixFilterCorotate::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; double**f = atom->f; @@ -1839,7 +1839,7 @@ double FixFilterCorotate::memory_usage() * copy values within local atom-based arrays * ------------------------------------------------------------------------- */ -void FixFilterCorotate::copy_arrays(int i, int j, int delflag) +void FixFilterCorotate::copy_arrays(int i, int j, int /*delflag*/) { int flag = shake_flag[j] = shake_flag[i]; if (flag == 1) { diff --git a/src/USER-MISC/fix_flow_gauss.cpp b/src/USER-MISC/fix_flow_gauss.cpp index 6a1e508030..b6366ec509 100644 --- a/src/USER-MISC/fix_flow_gauss.cpp +++ b/src/USER-MISC/fix_flow_gauss.cpp @@ -155,7 +155,7 @@ void FixFlowGauss::setup(int vflag) /* ---------------------------------------------------------------------- this is where Gaussian dynamics constraint is applied ------------------------------------------------------------------------- */ -void FixFlowGauss::post_force(int vflag) +void FixFlowGauss::post_force(int /*vflag*/) { double **f = atom->f; double **v = atom->v; @@ -222,7 +222,7 @@ void FixFlowGauss::post_force(int vflag) } -void FixFlowGauss::post_force_respa(int vflag, int ilevel, int iloop) +void FixFlowGauss::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/USER-MISC/fix_gle.cpp b/src/USER-MISC/fix_gle.cpp index 584b33bfe7..0b08fab4ca 100644 --- a/src/USER-MISC/fix_gle.cpp +++ b/src/USER-MISC/fix_gle.cpp @@ -582,7 +582,7 @@ void FixGLE::gle_integrate() energy += deltae*0.5*force->mvv2e; } -void FixGLE::initial_integrate(int vflag) +void FixGLE::initial_integrate(int /*vflag*/) { double dtfm; @@ -685,7 +685,7 @@ void FixGLE::final_integrate() } /* ---------------------------------------------------------------------- */ -void FixGLE::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixGLE::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/) { dtv = step_respa[ilevel]; dtf = 0.5 * step_respa[ilevel] * force->ftm2v; @@ -699,7 +699,7 @@ void FixGLE::initial_integrate_respa(int vflag, int ilevel, int iloop) else { final_integrate();} } -void FixGLE::final_integrate_respa(int ilevel, int iloop) +void FixGLE::final_integrate_respa(int ilevel, int /*iloop*/) { dtv = step_respa[ilevel]; dtf = 0.5 * step_respa[ilevel] * force->ftm2v; @@ -793,7 +793,7 @@ void FixGLE::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixGLE::copy_arrays(int i, int j, int delflag) +void FixGLE::copy_arrays(int i, int j, int /*delflag*/) { for (int k = 0; k < 3*ns; k++) gle_s[j][k] = gle_s[i][k]; } @@ -868,7 +868,7 @@ void FixGLE::unpack_restart(int nlocal, int nth) fixes on a given processor. ------------------------------------------------------------------------- */ -int FixGLE::size_restart(int nlocal) +int FixGLE::size_restart(int /*nlocal*/) { return 3*ns+1; } diff --git a/src/USER-MISC/fix_grem.cpp b/src/USER-MISC/fix_grem.cpp index a5f8c34448..635acf705c 100644 --- a/src/USER-MISC/fix_grem.cpp +++ b/src/USER-MISC/fix_grem.cpp @@ -256,7 +256,7 @@ void FixGrem::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixGrem::post_force(int vflag) +void FixGrem::post_force(int /*vflag*/) { double **f = atom->f; int *mask = atom->mask; diff --git a/src/USER-MISC/fix_imd.cpp b/src/USER-MISC/fix_imd.cpp index abf9e7cb0b..1c3eafdc46 100644 --- a/src/USER-MISC/fix_imd.cpp +++ b/src/USER-MISC/fix_imd.cpp @@ -811,7 +811,7 @@ void FixIMD::ioworker() /* ---------------------------------------------------------------------- */ /* Main IMD protocol handler: * Send coodinates, energies, and add IMD forces to atoms. */ -void FixIMD::post_force(int vflag) +void FixIMD::post_force(int /*vflag*/) { /* check for reconnect */ if (imd_inactive) { @@ -1153,7 +1153,7 @@ void FixIMD::post_force(int vflag) } /* ---------------------------------------------------------------------- */ -void FixIMD::post_force_respa(int vflag, int ilevel, int iloop) +void FixIMD::post_force_respa(int vflag, int ilevel, int /*iloop*/) { /* only process IMD on the outmost RESPA level. */ if (ilevel == nlevels_respa-1) post_force(vflag); diff --git a/src/USER-MISC/fix_ipi.cpp b/src/USER-MISC/fix_ipi.cpp index c4750ce49e..32892d87a8 100644 --- a/src/USER-MISC/fix_ipi.cpp +++ b/src/USER-MISC/fix_ipi.cpp @@ -269,7 +269,7 @@ void FixIPI::init() neighbor->every = 1; } -void FixIPI::initial_integrate(int vflag) +void FixIPI::initial_integrate(int /*vflag*/) { /* This is called at the beginning of the integration loop, * and will be used to read positions from the socket. Then, diff --git a/src/USER-MISC/fix_nvk.cpp b/src/USER-MISC/fix_nvk.cpp index dbf7b56fe2..2ac2a7c9fc 100644 --- a/src/USER-MISC/fix_nvk.cpp +++ b/src/USER-MISC/fix_nvk.cpp @@ -94,7 +94,7 @@ void FixNVK::init() allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixNVK::initial_integrate(int vflag) +void FixNVK::initial_integrate(int /*vflag*/) { double sm; double a,b,sqtb,s,sdot; @@ -190,7 +190,7 @@ void FixNVK::final_integrate() /* ---------------------------------------------------------------------- */ -void FixNVK::initial_integrate_respa(int vflag, int ilevel, int iloop) +void FixNVK::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/) { dtv = step_respa[ilevel]; dtf = 0.5 * step_respa[ilevel]; @@ -204,7 +204,7 @@ void FixNVK::initial_integrate_respa(int vflag, int ilevel, int iloop) /* ---------------------------------------------------------------------- */ -void FixNVK::final_integrate_respa(int ilevel, int iloop) +void FixNVK::final_integrate_respa(int ilevel, int /*iloop*/) { dtf = 0.5 * step_respa[ilevel]; final_integrate(); diff --git a/src/USER-MISC/fix_pimd.cpp b/src/USER-MISC/fix_pimd.cpp index e65ae6ae28..506590f02c 100644 --- a/src/USER-MISC/fix_pimd.cpp +++ b/src/USER-MISC/fix_pimd.cpp @@ -214,7 +214,7 @@ void FixPIMD::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixPIMD::initial_integrate(int vflag) +void FixPIMD::initial_integrate(int /*vflag*/) { nhc_update_v(); nhc_update_x(); @@ -229,7 +229,7 @@ void FixPIMD::final_integrate() /* ---------------------------------------------------------------------- */ -void FixPIMD::post_force(int flag) +void FixPIMD::post_force(int /*flag*/) { for(int i=0; inlocal; i++) for(int j=0; j<3; j++) atom->f[i][j] /= np; @@ -686,7 +686,7 @@ void FixPIMD::comm_exec(double **ptr) /* ---------------------------------------------------------------------- */ int FixPIMD::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; @@ -744,7 +744,7 @@ void FixPIMD::grow_arrays(int nmax) /* ---------------------------------------------------------------------- */ -void FixPIMD::copy_arrays(int i, int j, int delflag) +void FixPIMD::copy_arrays(int i, int j, int /*delflag*/) { int i_pos = i*3; int j_pos = j*3; @@ -832,7 +832,7 @@ int FixPIMD::maxsize_restart() /* ---------------------------------------------------------------------- */ -int FixPIMD::size_restart(int nlocal) +int FixPIMD::size_restart(int /*nlocal*/) { return size_peratom_cols+1; } diff --git a/src/USER-MISC/fix_rhok.cpp b/src/USER-MISC/fix_rhok.cpp index bbc4ce417a..78d63b79a8 100644 --- a/src/USER-MISC/fix_rhok.cpp +++ b/src/USER-MISC/fix_rhok.cpp @@ -144,7 +144,7 @@ FixRhok::min_setup( int inVFlag ) // Modify the forces calculated in the main force loop of ordinary MD void -FixRhok::post_force( int inVFlag ) +FixRhok::post_force( int /*inVFlag*/ ) { double **x = atom->x; double **f = atom->f; @@ -206,7 +206,7 @@ FixRhok::post_force( int inVFlag ) // Forces in RESPA loop void -FixRhok::post_force_respa( int inVFlag, int inILevel, int inILoop ) +FixRhok::post_force_respa( int inVFlag, int inILevel, int /*inILoop*/ ) { if( inILevel == mNLevelsRESPA - 1 ) post_force( inVFlag ); diff --git a/src/USER-MISC/fix_smd.cpp b/src/USER-MISC/fix_smd.cpp index a42690c280..cbebdebdbf 100644 --- a/src/USER-MISC/fix_smd.cpp +++ b/src/USER-MISC/fix_smd.cpp @@ -461,7 +461,7 @@ void FixSMD::restart(char *buf) /* ---------------------------------------------------------------------- */ -void FixSMD::post_force_respa(int vflag, int ilevel, int iloop) +void FixSMD::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == ilevel_respa) post_force(vflag); } diff --git a/src/USER-MISC/fix_srp.cpp b/src/USER-MISC/fix_srp.cpp index e4d85e8674..ebc161ff99 100644 --- a/src/USER-MISC/fix_srp.cpp +++ b/src/USER-MISC/fix_srp.cpp @@ -145,7 +145,7 @@ void FixSRP::init() insert bond particles ------------------------------------------------------------------------- */ -void FixSRP::setup_pre_force(int zz) +void FixSRP::setup_pre_force(int /*zz*/) { double **x = atom->x; double **xold; @@ -394,7 +394,7 @@ void FixSRP::grow_arrays(int nmax) called when move to new proc ------------------------------------------------------------------------- */ -void FixSRP::copy_arrays(int i, int j, int delflag) +void FixSRP::copy_arrays(int i, int j, int /*delflag*/) { for (int m = 0; m < 2; m++) array[j][m] = array[i][m]; @@ -589,7 +589,7 @@ int FixSRP::maxsize_restart() size of atom nlocal's restart data ------------------------------------------------------------------------- */ -int FixSRP::size_restart(int nlocal) +int FixSRP::size_restart(int /*nlocal*/) { return 3; } @@ -632,7 +632,7 @@ void FixSRP::restart(char *buf) pair srp sets the bond type in this fix ------------------------------------------------------------------------- */ -int FixSRP::modify_param(int narg, char **arg) +int FixSRP::modify_param(int /*narg*/, char **arg) { if (strcmp(arg[0],"btype") == 0) { btype = atoi(arg[1]); diff --git a/src/USER-MISC/fix_ti_spring.cpp b/src/USER-MISC/fix_ti_spring.cpp index 5812142763..305e29e033 100644 --- a/src/USER-MISC/fix_ti_spring.cpp +++ b/src/USER-MISC/fix_ti_spring.cpp @@ -167,7 +167,7 @@ void FixTISpring::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixTISpring::post_force(int vflag) +void FixTISpring::post_force(int /*vflag*/) { // do not calculate forces during equilibration if ((update->ntimestep - t0) < t_equil) return; @@ -200,7 +200,7 @@ void FixTISpring::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixTISpring::post_force_respa(int vflag, int ilevel, int iloop) +void FixTISpring::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } @@ -214,7 +214,7 @@ void FixTISpring::min_post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixTISpring::initial_integrate(int vflag) +void FixTISpring::initial_integrate(int /*vflag*/) { // Update the coupling parameter value if needed if ((update->ntimestep - t0) < t_equil) return; @@ -278,7 +278,7 @@ void FixTISpring::grow_arrays(int nmax) copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixTISpring::copy_arrays(int i, int j, int delflag) +void FixTISpring::copy_arrays(int i, int j, int /*delflag*/) { xoriginal[j][0] = xoriginal[i][0]; xoriginal[j][1] = xoriginal[i][1]; @@ -354,7 +354,7 @@ int FixTISpring::maxsize_restart() size of atom nlocal's restart data ------------------------------------------------------------------------- */ -int FixTISpring::size_restart(int nlocal) +int FixTISpring::size_restart(int /*nlocal*/) { return 4; } diff --git a/src/USER-MISC/fix_ttm_mod.cpp b/src/USER-MISC/fix_ttm_mod.cpp index 1e1e62b638..65f8e90ec3 100644 --- a/src/USER-MISC/fix_ttm_mod.cpp +++ b/src/USER-MISC/fix_ttm_mod.cpp @@ -357,7 +357,7 @@ void FixTTMMod::setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixTTMMod::post_force(int vflag) +void FixTTMMod::post_force(int /*vflag*/) { double **x = atom->x; double **v = atom->v; @@ -451,7 +451,7 @@ void FixTTMMod::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixTTMMod::post_force_setup(int vflag) +void FixTTMMod::post_force_setup(int /*vflag*/) { double **f = atom->f; int *mask = atom->mask; @@ -468,14 +468,14 @@ void FixTTMMod::post_force_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixTTMMod::post_force_respa(int vflag, int ilevel, int iloop) +void FixTTMMod::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } /* ---------------------------------------------------------------------- */ -void FixTTMMod::post_force_respa_setup(int vflag, int ilevel, int iloop) +void FixTTMMod::post_force_respa_setup(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force_setup(vflag); } @@ -916,7 +916,7 @@ int FixTTMMod::maxsize_restart() size of atom nlocal's restart data ------------------------------------------------------------------------- */ -int FixTTMMod::size_restart(int nlocal) +int FixTTMMod::size_restart(int /*nlocal*/) { return 4; } diff --git a/src/USER-MISC/fix_wall_region_ees.cpp b/src/USER-MISC/fix_wall_region_ees.cpp index 82a78d3e73..33bf636e64 100644 --- a/src/USER-MISC/fix_wall_region_ees.cpp +++ b/src/USER-MISC/fix_wall_region_ees.cpp @@ -149,7 +149,7 @@ void FixWallRegionEES::min_setup(int vflag) /* ---------------------------------------------------------------------- */ -void FixWallRegionEES::post_force(int vflag) +void FixWallRegionEES::post_force(int /*vflag*/) { //sth is needed here, but I dont know what //that is calculation of sn @@ -246,7 +246,7 @@ void FixWallRegionEES::post_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixWallRegionEES::post_force_respa(int vflag, int ilevel, int iloop) +void FixWallRegionEES::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } diff --git a/src/USER-MISC/pair_agni.cpp b/src/USER-MISC/pair_agni.cpp index 11bf2ae01e..3bba690e19 100644 --- a/src/USER-MISC/pair_agni.cpp +++ b/src/USER-MISC/pair_agni.cpp @@ -246,7 +246,7 @@ void PairAGNI::allocate() global settings ------------------------------------------------------------------------- */ -void PairAGNI::settings(int narg, char **arg) +void PairAGNI::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/USER-MISC/pair_buck_mdf.cpp b/src/USER-MISC/pair_buck_mdf.cpp index 457d75bc77..61d32892fc 100644 --- a/src/USER-MISC/pair_buck_mdf.cpp +++ b/src/USER-MISC/pair_buck_mdf.cpp @@ -391,8 +391,8 @@ void PairBuckMDF::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairBuckMDF::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, +double PairBuckMDF::single(int /*i*/, int /*j*/, int itype, int jtype, + double rsq, double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r6inv,r,rexp,forcebuck,phibuck; diff --git a/src/USER-MISC/pair_coul_diel.cpp b/src/USER-MISC/pair_coul_diel.cpp index 3f07df3d98..0154e89731 100644 --- a/src/USER-MISC/pair_coul_diel.cpp +++ b/src/USER-MISC/pair_coul_diel.cpp @@ -326,7 +326,7 @@ void PairCoulDiel::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ double PairCoulDiel::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, + double rsq, double factor_coul, double /*factor_lj*/, double &fforce) { double r, rarg,forcedielec,phidielec; diff --git a/src/USER-MISC/pair_coul_shield.cpp b/src/USER-MISC/pair_coul_shield.cpp index deec7da81f..11df975c19 100644 --- a/src/USER-MISC/pair_coul_shield.cpp +++ b/src/USER-MISC/pair_coul_shield.cpp @@ -341,7 +341,7 @@ void PairCoulShield::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ double PairCoulShield::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, + double rsq, double factor_coul, double /*factor_lj*/, double &fforce) { double r, rarg,Vc,fvc,forcecoul,phishieldec; diff --git a/src/USER-MISC/pair_edip.cpp b/src/USER-MISC/pair_edip.cpp index 2976d7ad73..4716e271d7 100644 --- a/src/USER-MISC/pair_edip.cpp +++ b/src/USER-MISC/pair_edip.cpp @@ -621,7 +621,7 @@ void PairEDIP::allocate() global settings ------------------------------------------------------------------------- */ -void PairEDIP::settings(int narg, char **arg) +void PairEDIP::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/USER-MISC/pair_edip_multi.cpp b/src/USER-MISC/pair_edip_multi.cpp index 6be57eee74..fc76aadb0b 100644 --- a/src/USER-MISC/pair_edip_multi.cpp +++ b/src/USER-MISC/pair_edip_multi.cpp @@ -516,7 +516,7 @@ void PairEDIPMulti::allocate() global settings ------------------------------------------------------------------------- */ -void PairEDIPMulti::settings(int narg, char **arg) +void PairEDIPMulti::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/USER-MISC/pair_extep.cpp b/src/USER-MISC/pair_extep.cpp index 5a8cdf2884..49c562471f 100644 --- a/src/USER-MISC/pair_extep.cpp +++ b/src/USER-MISC/pair_extep.cpp @@ -442,7 +442,7 @@ void PairExTeP::allocate() global settings ------------------------------------------------------------------------- */ -void PairExTeP::settings(int narg, char **arg) +void PairExTeP::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/USER-MISC/pair_gauss_cut.cpp b/src/USER-MISC/pair_gauss_cut.cpp index 85f7c02887..a000eff028 100644 --- a/src/USER-MISC/pair_gauss_cut.cpp +++ b/src/USER-MISC/pair_gauss_cut.cpp @@ -374,8 +374,8 @@ void PairGaussCut::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairGaussCut::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairGaussCut::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r, rexp,ugauss,phigauss; diff --git a/src/USER-MISC/pair_ilp_graphene_hbn.cpp b/src/USER-MISC/pair_ilp_graphene_hbn.cpp index 30ee2e7a5a..2aecbe5d19 100644 --- a/src/USER-MISC/pair_ilp_graphene_hbn.cpp +++ b/src/USER-MISC/pair_ilp_graphene_hbn.cpp @@ -1010,8 +1010,8 @@ void PairILPGrapheneHBN::read_file(char *filename) /* ---------------------------------------------------------------------- */ -double PairILPGrapheneHBN::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairILPGrapheneHBN::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r,r2inv,r6inv,r8inv,forcelj,philj,fpair; @@ -1047,7 +1047,7 @@ double PairILPGrapheneHBN::single(int i, int j, int itype, int jtype, double rsq /* ---------------------------------------------------------------------- */ int PairILPGrapheneHBN::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m,id,ip,l; diff --git a/src/USER-MISC/pair_kolmogorov_crespi_full.cpp b/src/USER-MISC/pair_kolmogorov_crespi_full.cpp index be0e81d48d..4c1f36c640 100644 --- a/src/USER-MISC/pair_kolmogorov_crespi_full.cpp +++ b/src/USER-MISC/pair_kolmogorov_crespi_full.cpp @@ -1015,8 +1015,8 @@ void PairKolmogorovCrespiFull::read_file(char *filename) /* ---------------------------------------------------------------------- */ -double PairKolmogorovCrespiFull::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairKolmogorovCrespiFull::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r,r2inv,r6inv,r8inv,forcelj,philj; @@ -1050,7 +1050,7 @@ double PairKolmogorovCrespiFull::single(int i, int j, int itype, int jtype, doub /* ---------------------------------------------------------------------- */ int PairKolmogorovCrespiFull::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m,l,ip,id; diff --git a/src/USER-MISC/pair_lennard_mdf.cpp b/src/USER-MISC/pair_lennard_mdf.cpp index f6e7f7f56b..45d0da4d83 100644 --- a/src/USER-MISC/pair_lennard_mdf.cpp +++ b/src/USER-MISC/pair_lennard_mdf.cpp @@ -352,9 +352,9 @@ void PairLJ_AB_MDF::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJ_AB_MDF::single(int i, int j, int itype, int jtype, +double PairLJ_AB_MDF::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r6inv,forcelj,philj; diff --git a/src/USER-MISC/pair_lj_mdf.cpp b/src/USER-MISC/pair_lj_mdf.cpp index d43a6c3086..891239016b 100644 --- a/src/USER-MISC/pair_lj_mdf.cpp +++ b/src/USER-MISC/pair_lj_mdf.cpp @@ -352,9 +352,9 @@ void PairLJMDF::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairLJMDF::single(int i, int j, int itype, int jtype, +double PairLJMDF::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, + double /*factor_coul*/, double factor_lj, double &fforce) { double r2inv,r6inv,forcelj,philj; diff --git a/src/USER-MISC/pair_meam_spline.cpp b/src/USER-MISC/pair_meam_spline.cpp index 750f6ac5bb..1305891b33 100644 --- a/src/USER-MISC/pair_meam_spline.cpp +++ b/src/USER-MISC/pair_meam_spline.cpp @@ -360,7 +360,7 @@ void PairMEAMSpline::allocate() global settings ------------------------------------------------------------------------- */ -void PairMEAMSpline::settings(int narg, char **arg) +void PairMEAMSpline::settings(int narg, char **/*arg*/) { if(narg != 0) error->all(FLERR,"Illegal pair_style command"); } @@ -592,7 +592,7 @@ void PairMEAMSpline::init_list(int id, NeighList *ptr) /* ---------------------------------------------------------------------- init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairMEAMSpline::init_one(int i, int j) +double PairMEAMSpline::init_one(int /*i*/, int /*j*/) { return cutoff; } @@ -600,7 +600,7 @@ double PairMEAMSpline::init_one(int i, int j) /* ---------------------------------------------------------------------- */ int PairMEAMSpline::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int* list_iter = list; int* list_iter_end = list + n; @@ -618,14 +618,14 @@ void PairMEAMSpline::unpack_forward_comm(int n, int first, double *buf) /* ---------------------------------------------------------------------- */ -int PairMEAMSpline::pack_reverse_comm(int n, int first, double *buf) +int PairMEAMSpline::pack_reverse_comm(int /*n*/, int /*first*/, double */*buf*/) { return 0; } /* ---------------------------------------------------------------------- */ -void PairMEAMSpline::unpack_reverse_comm(int n, int *list, double *buf) +void PairMEAMSpline::unpack_reverse_comm(int /*n*/, int */*list*/, double */*buf*/) { } diff --git a/src/USER-MISC/pair_meam_sw_spline.cpp b/src/USER-MISC/pair_meam_sw_spline.cpp index f6b7212f9c..be0ac1c35b 100644 --- a/src/USER-MISC/pair_meam_sw_spline.cpp +++ b/src/USER-MISC/pair_meam_sw_spline.cpp @@ -372,7 +372,7 @@ void PairMEAMSWSpline::allocate() global settings ------------------------------------------------------------------------- */ -void PairMEAMSWSpline::settings(int narg, char **arg) +void PairMEAMSWSpline::settings(int narg, char **/*arg*/) { if(narg != 0) error->all(FLERR,"Illegal pair_style command"); } @@ -552,7 +552,7 @@ void PairMEAMSWSpline::init_list(int id, NeighList *ptr) /* ---------------------------------------------------------------------- init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairMEAMSWSpline::init_one(int i, int j) +double PairMEAMSWSpline::init_one(int /*i*/, int /*j*/) { return cutoff; } @@ -560,7 +560,7 @@ double PairMEAMSWSpline::init_one(int i, int j) /* ---------------------------------------------------------------------- */ int PairMEAMSWSpline::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int* list_iter = list; int* list_iter_end = list + n; @@ -578,14 +578,14 @@ void PairMEAMSWSpline::unpack_forward_comm(int n, int first, double *buf) /* ---------------------------------------------------------------------- */ -int PairMEAMSWSpline::pack_reverse_comm(int n, int first, double *buf) +int PairMEAMSWSpline::pack_reverse_comm(int /*n*/, int /*first*/, double */*buf*/) { return 0; } /* ---------------------------------------------------------------------- */ -void PairMEAMSWSpline::unpack_reverse_comm(int n, int *list, double *buf) +void PairMEAMSWSpline::unpack_reverse_comm(int /*n*/, int */*list*/, double */*buf*/) { } diff --git a/src/USER-MISC/pair_momb.cpp b/src/USER-MISC/pair_momb.cpp index 12a40bb08b..927181ebf6 100644 --- a/src/USER-MISC/pair_momb.cpp +++ b/src/USER-MISC/pair_momb.cpp @@ -365,8 +365,8 @@ void PairMomb::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairMomb::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairMomb::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r,dr,dexp,phi,r2inv,r6inv,ddexp,invexp; diff --git a/src/USER-MISC/pair_morse_smooth_linear.cpp b/src/USER-MISC/pair_morse_smooth_linear.cpp index 8a9c89cf69..328c1bd27b 100644 --- a/src/USER-MISC/pair_morse_smooth_linear.cpp +++ b/src/USER-MISC/pair_morse_smooth_linear.cpp @@ -337,8 +337,8 @@ void PairMorseSmoothLinear::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairMorseSmoothLinear::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, +double PairMorseSmoothLinear::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) { double r,dr,dexp,phi; diff --git a/src/USER-MISC/pair_tersoff_table.cpp b/src/USER-MISC/pair_tersoff_table.cpp index c2362b8de9..d7e28a1e40 100644 --- a/src/USER-MISC/pair_tersoff_table.cpp +++ b/src/USER-MISC/pair_tersoff_table.cpp @@ -719,7 +719,7 @@ void PairTersoffTable::allocate() global settings ------------------------------------------------------------------------- */ -void PairTersoffTable::settings(int narg, char **arg) +void PairTersoffTable::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/USER-MOFFF/angle_cosine_buck6d.cpp b/src/USER-MOFFF/angle_cosine_buck6d.cpp index b5800db2be..352c28be4d 100644 --- a/src/USER-MOFFF/angle_cosine_buck6d.cpp +++ b/src/USER-MOFFF/angle_cosine_buck6d.cpp @@ -309,7 +309,7 @@ void AngleCosineBuck6d::init_style() /* ---------------------------------------------------------------------- */ -double AngleCosineBuck6d::equilibrium_angle(int i) +double AngleCosineBuck6d::equilibrium_angle(int /*i*/) { return MY_PI; } diff --git a/src/USER-PHONON/fix_phonon.cpp b/src/USER-PHONON/fix_phonon.cpp index 3a37c67a38..cdbe4068bc 100644 --- a/src/USER-PHONON/fix_phonon.cpp +++ b/src/USER-PHONON/fix_phonon.cpp @@ -299,7 +299,7 @@ void FixPhonon::init() /* ---------------------------------------------------------------------- */ -void FixPhonon::setup(int flag) +void FixPhonon::setup(int /*flag*/) { // initialize accumulating variables for (int i = 0; i < sysdim; ++i) TempSum[i] = 0.; diff --git a/src/USER-QTB/fix_qbmsst.cpp b/src/USER-QTB/fix_qbmsst.cpp index fa5ee75bcb..e8a4f85eaa 100644 --- a/src/USER-QTB/fix_qbmsst.cpp +++ b/src/USER-QTB/fix_qbmsst.cpp @@ -424,7 +424,7 @@ void FixQBMSST::init() /* ---------------------------------------------------------------------- compute T,P before integrator starts ------------------------------------------------------------------------- */ -void FixQBMSST::setup(int vflag) +void FixQBMSST::setup(int /*vflag*/) { lagrangian_position = 0.0; @@ -507,7 +507,7 @@ void FixQBMSST::setup(int vflag) /* ---------------------------------------------------------------------- 1st half of Verlet update ------------------------------------------------------------------------- */ -void FixQBMSST::initial_integrate(int vflag) +void FixQBMSST::initial_integrate(int /*vflag*/) { int sd; sd = direction; @@ -1157,7 +1157,7 @@ void FixQBMSST::grow_arrays(int nmax) /* ---------------------------------------------------------------------- copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixQBMSST::copy_arrays(int i, int j, int delflag) +void FixQBMSST::copy_arrays(int i, int j, int /*delflag*/) { for (int m = 0; m < 2*N_f; m++) { random_array_0[j][m] = random_array_0[i][m]; diff --git a/src/USER-QTB/fix_qtb.cpp b/src/USER-QTB/fix_qtb.cpp index 7f9a6510be..015f953b8e 100644 --- a/src/USER-QTB/fix_qtb.cpp +++ b/src/USER-QTB/fix_qtb.cpp @@ -239,7 +239,7 @@ void FixQTB::setup(int vflag) /* ---------------------------------------------------------------------- post_force ------------------------------------------------------------------------- */ -void FixQTB::post_force(int vflag) +void FixQTB::post_force(int /*vflag*/) { double gamma1,gamma3; @@ -334,7 +334,7 @@ void FixQTB::post_force(int vflag) /* ---------------------------------------------------------------------- post_force_respa ------------------------------------------------------------------------- */ -void FixQTB::post_force_respa(int vflag, int ilevel, int iloop) +void FixQTB::post_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) post_force(vflag); } @@ -392,7 +392,7 @@ void FixQTB::grow_arrays(int nmax) /* ---------------------------------------------------------------------- copy values within local atom-based array ------------------------------------------------------------------------- */ -void FixQTB::copy_arrays(int i, int j, int delflag) +void FixQTB::copy_arrays(int i, int j, int /*delflag*/) { for (int m = 0; m < 2*N_f; m++) { random_array_0[j][m] = random_array_0[i][m]; diff --git a/src/USER-QUIP/pair_quip.cpp b/src/USER-QUIP/pair_quip.cpp index 0c00a5ef59..6f5040d037 100644 --- a/src/USER-QUIP/pair_quip.cpp +++ b/src/USER-QUIP/pair_quip.cpp @@ -212,7 +212,7 @@ void PairQUIP::compute(int eflag, int vflag) global settings ------------------------------------------------------------------------- */ -void PairQUIP::settings(int narg, char **arg) +void PairQUIP::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); if (strcmp(force->pair_style,"hybrid") == 0) @@ -315,7 +315,7 @@ void PairQUIP::init_style() init for one type pair i,j and corresponding j,i ------------------------------------------------------------------------- */ -double PairQUIP::init_one(int i, int j) +double PairQUIP::init_one(int /*i*/, int /*j*/) { return cutoff; } diff --git a/src/USER-REAXC/fix_qeq_reax.cpp b/src/USER-REAXC/fix_qeq_reax.cpp index a2f4d3d0e9..a6e59f7620 100644 --- a/src/USER-REAXC/fix_qeq_reax.cpp +++ b/src/USER-REAXC/fix_qeq_reax.cpp @@ -381,7 +381,7 @@ void FixQEqReax::init() /* ---------------------------------------------------------------------- */ -void FixQEqReax::init_list(int id, NeighList *ptr) +void FixQEqReax::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -485,7 +485,7 @@ void FixQEqReax::init_storage() /* ---------------------------------------------------------------------- */ -void FixQEqReax::pre_force(int vflag) +void FixQEqReax::pre_force(int /*vflag*/) { double t_start, t_end; @@ -518,7 +518,7 @@ void FixQEqReax::pre_force(int vflag) /* ---------------------------------------------------------------------- */ -void FixQEqReax::pre_force_respa(int vflag, int ilevel, int iloop) +void FixQEqReax::pre_force_respa(int vflag, int ilevel, int /*iloop*/) { if (ilevel == nlevels_respa-1) pre_force(vflag); } @@ -833,7 +833,7 @@ void FixQEqReax::calculate_Q() /* ---------------------------------------------------------------------- */ int FixQEqReax::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int m; @@ -952,7 +952,7 @@ void FixQEqReax::grow_arrays(int nmax) copy values within fictitious charge arrays ------------------------------------------------------------------------- */ -void FixQEqReax::copy_arrays(int i, int j, int delflag) +void FixQEqReax::copy_arrays(int i, int j, int /*delflag*/) { for (int m = 0; m < nprev; m++) { s_hist[j][m] = s_hist[i][m]; diff --git a/src/USER-REAXC/fix_reaxc.cpp b/src/USER-REAXC/fix_reaxc.cpp index df06217993..df1d7db085 100644 --- a/src/USER-REAXC/fix_reaxc.cpp +++ b/src/USER-REAXC/fix_reaxc.cpp @@ -105,7 +105,7 @@ void FixReaxC::grow_arrays(int nmax) copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixReaxC::copy_arrays(int i, int j, int delflag) +void FixReaxC::copy_arrays(int i, int j, int /*delflag*/) { num_bonds[j] = num_bonds[i]; num_hbonds[j] = num_hbonds[i]; @@ -136,7 +136,7 @@ int FixReaxC::unpack_exchange(int nlocal, double *buf) /* ---------------------------------------------------------------------- */ int FixReaxC::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/USER-REAXC/fix_reaxc_bonds.cpp b/src/USER-REAXC/fix_reaxc_bonds.cpp index b38d137412..f3e592a682 100644 --- a/src/USER-REAXC/fix_reaxc_bonds.cpp +++ b/src/USER-REAXC/fix_reaxc_bonds.cpp @@ -112,7 +112,7 @@ int FixReaxCBonds::setmask() /* ---------------------------------------------------------------------- */ -void FixReaxCBonds::setup(int vflag) +void FixReaxCBonds::setup(int /*vflag*/) { end_of_step(); } @@ -137,7 +137,7 @@ void FixReaxCBonds::end_of_step() /* ---------------------------------------------------------------------- */ -void FixReaxCBonds::Output_ReaxC_Bonds(bigint ntimestep, FILE *fp) +void FixReaxCBonds::Output_ReaxC_Bonds(bigint /*ntimestep*/, FILE */*fp*/) { int i, j; @@ -185,7 +185,7 @@ void FixReaxCBonds::Output_ReaxC_Bonds(bigint ntimestep, FILE *fp) /* ---------------------------------------------------------------------- */ -void FixReaxCBonds::FindBond(struct _reax_list *lists, int &numbonds) +void FixReaxCBonds::FindBond(struct _reax_list */*lists*/, int &numbonds) { int *ilist, i, ii, inum; int j, pj, nj; diff --git a/src/USER-REAXC/fix_reaxc_species.cpp b/src/USER-REAXC/fix_reaxc_species.cpp index 61b4cebf96..abb8708d8d 100644 --- a/src/USER-REAXC/fix_reaxc_species.cpp +++ b/src/USER-REAXC/fix_reaxc_species.cpp @@ -281,7 +281,7 @@ int FixReaxCSpecies::setmask() /* ---------------------------------------------------------------------- */ -void FixReaxCSpecies::setup(int vflag) +void FixReaxCSpecies::setup(int /*vflag*/) { ntotal = static_cast (atom->natoms); if (Name == NULL) @@ -427,7 +427,7 @@ void FixReaxCSpecies::create_fix() /* ---------------------------------------------------------------------- */ -void FixReaxCSpecies::init_list(int id, NeighList *ptr) +void FixReaxCSpecies::init_list(int /*id*/, NeighList *ptr) { list = ptr; } @@ -442,7 +442,7 @@ void FixReaxCSpecies::post_integrate() /* ---------------------------------------------------------------------- */ -void FixReaxCSpecies::Output_ReaxC_Bonds(bigint ntimestep, FILE *fp) +void FixReaxCSpecies::Output_ReaxC_Bonds(bigint ntimestep, FILE */*fp*/) { int Nmole, Nspec; @@ -946,7 +946,7 @@ int FixReaxCSpecies::nint(const double &r) /* ---------------------------------------------------------------------- */ int FixReaxCSpecies::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) + int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/USER-REAXC/pair_reaxc.cpp b/src/USER-REAXC/pair_reaxc.cpp index 7f77d875bc..378d20952c 100644 --- a/src/USER-REAXC/pair_reaxc.cpp +++ b/src/USER-REAXC/pair_reaxc.cpp @@ -751,7 +751,7 @@ int PairReaxC::write_reax_lists() /* ---------------------------------------------------------------------- */ -void PairReaxC::read_reax_forces(int vflag) +void PairReaxC::read_reax_forces(int /*vflag*/) { for( int i = 0; i < system->N; ++i ) { system->my_atoms[i].f[0] = workspace->f[i][0]; diff --git a/src/USER-REAXC/reaxc_allocate.cpp b/src/USER-REAXC/reaxc_allocate.cpp index a07f090f92..14906a2a9c 100644 --- a/src/USER-REAXC/reaxc_allocate.cpp +++ b/src/USER-REAXC/reaxc_allocate.cpp @@ -39,8 +39,8 @@ important: we cannot know the exact number of atoms that will fall into a process's box throughout the whole simulation. therefore we need to make upper bound estimates for various data structures */ -int PreAllocate_Space( reax_system *system, control_params *control, - storage *workspace, MPI_Comm comm ) +int PreAllocate_Space( reax_system *system, control_params */*control*/, + storage */*workspace*/, MPI_Comm comm ) { int mincap = system->mincap; double safezone = system->safezone; @@ -68,8 +68,8 @@ int PreAllocate_Space( reax_system *system, control_params *control, /************* system *************/ -int Allocate_System( reax_system *system, int local_cap, int total_cap, - char *msg ) +int Allocate_System( reax_system *system, int /*local_cap*/, int total_cap, + char */*msg*/ ) { system->my_atoms = (reax_atom*) realloc( system->my_atoms, total_cap*sizeof(reax_atom) ); @@ -116,7 +116,7 @@ void DeAllocate_System( reax_system *system ) /************* workspace *************/ -void DeAllocate_Workspace( control_params *control, storage *workspace ) +void DeAllocate_Workspace( control_params */*control*/, storage *workspace ) { int i; @@ -204,9 +204,9 @@ void DeAllocate_Workspace( control_params *control, storage *workspace ) } -int Allocate_Workspace( reax_system *system, control_params *control, +int Allocate_Workspace( reax_system */*system*/, control_params */*control*/, storage *workspace, int local_cap, int total_cap, - MPI_Comm comm, char *msg ) + MPI_Comm comm, char */*msg*/ ) { int i, total_real, total_rvec, local_rvec; diff --git a/src/USER-REAXC/reaxc_bond_orders.cpp b/src/USER-REAXC/reaxc_bond_orders.cpp index 468164a2c0..02df9ec518 100644 --- a/src/USER-REAXC/reaxc_bond_orders.cpp +++ b/src/USER-REAXC/reaxc_bond_orders.cpp @@ -359,8 +359,8 @@ int BOp( storage *workspace, reax_list *bonds, double bo_cut, } -void BO( reax_system *system, control_params *control, simulation_data *data, - storage *workspace, reax_list **lists, output_controls *out_control ) +void BO( reax_system *system, control_params */*control*/, simulation_data */*data*/, + storage *workspace, reax_list **lists, output_controls */*out_control*/ ) { int i, j, pj, type_i, type_j; int start_i, end_i, sym_index; diff --git a/src/USER-REAXC/reaxc_bonds.cpp b/src/USER-REAXC/reaxc_bonds.cpp index 9678addd6b..a26f70c543 100644 --- a/src/USER-REAXC/reaxc_bonds.cpp +++ b/src/USER-REAXC/reaxc_bonds.cpp @@ -31,9 +31,9 @@ #include "reaxc_tool_box.h" #include "reaxc_vector.h" -void Bonds( reax_system *system, control_params *control, +void Bonds( reax_system *system, control_params */*control*/, simulation_data *data, storage *workspace, reax_list **lists, - output_controls *out_control ) + output_controls */*out_control*/ ) { int i, j, pj, natoms; int start_i, end_i; diff --git a/src/USER-REAXC/reaxc_forces.cpp b/src/USER-REAXC/reaxc_forces.cpp index 00b29824ea..56501eeda0 100644 --- a/src/USER-REAXC/reaxc_forces.cpp +++ b/src/USER-REAXC/reaxc_forces.cpp @@ -41,9 +41,9 @@ interaction_function Interaction_Functions[NUM_INTRS]; -void Dummy_Interaction( reax_system *system, control_params *control, - simulation_data *data, storage *workspace, - reax_list **lists, output_controls *out_control ) +void Dummy_Interaction( reax_system */*system*/, control_params */*control*/, + simulation_data */*data*/, storage */*workspace*/, + reax_list **/*lists*/, output_controls */*out_control*/ ) { } @@ -68,7 +68,7 @@ void Init_Force_Functions( control_params *control ) void Compute_Bonded_Forces( reax_system *system, control_params *control, simulation_data *data, storage *workspace, reax_list **lists, output_controls *out_control, - MPI_Comm comm ) + MPI_Comm /*comm*/ ) { int i; @@ -83,7 +83,7 @@ void Compute_Bonded_Forces( reax_system *system, control_params *control, void Compute_NonBonded_Forces( reax_system *system, control_params *control, simulation_data *data, storage *workspace, reax_list **lists, output_controls *out_control, - MPI_Comm comm ) + MPI_Comm /*comm*/ ) { /* van der Waals and Coulomb interactions */ @@ -98,7 +98,7 @@ void Compute_NonBonded_Forces( reax_system *system, control_params *control, void Compute_Total_Force( reax_system *system, control_params *control, simulation_data *data, storage *workspace, - reax_list **lists, mpi_datatypes *mpi_data ) + reax_list **lists, mpi_datatypes */*mpi_data*/ ) { int i, pj; reax_list *bonds = (*lists) + BONDS; @@ -114,8 +114,8 @@ void Compute_Total_Force( reax_system *system, control_params *control, } -void Validate_Lists( reax_system *system, storage *workspace, reax_list **lists, - int step, int n, int N, int numH, MPI_Comm comm ) +void Validate_Lists( reax_system *system, storage */*workspace*/, reax_list **lists, + int step, int /*n*/, int N, int numH, MPI_Comm comm ) { int i, comp, Hindex; reax_list *bonds, *hbonds; @@ -173,7 +173,7 @@ void Validate_Lists( reax_system *system, storage *workspace, reax_list **lists, void Init_Forces_noQEq( reax_system *system, control_params *control, simulation_data *data, storage *workspace, - reax_list **lists, output_controls *out_control, + reax_list **lists, output_controls */*out_control*/, MPI_Comm comm ) { int i, j, pj; int start_i, end_i; @@ -317,7 +317,7 @@ void Init_Forces_noQEq( reax_system *system, control_params *control, void Estimate_Storages( reax_system *system, control_params *control, reax_list **lists, int *Htop, int *hb_top, - int *bond_top, int *num_3body, MPI_Comm comm ) + int *bond_top, int *num_3body, MPI_Comm /*comm*/ ) { int i, j, pj; int start_i, end_i; diff --git a/src/USER-REAXC/reaxc_hydrogen_bonds.cpp b/src/USER-REAXC/reaxc_hydrogen_bonds.cpp index cb516b24f7..c0b3121a40 100644 --- a/src/USER-REAXC/reaxc_hydrogen_bonds.cpp +++ b/src/USER-REAXC/reaxc_hydrogen_bonds.cpp @@ -33,7 +33,7 @@ void Hydrogen_Bonds( reax_system *system, control_params *control, simulation_data *data, storage *workspace, - reax_list **lists, output_controls *out_control ) + reax_list **lists, output_controls */*out_control*/ ) { int i, j, k, pi, pk; int type_i, type_j, type_k; diff --git a/src/USER-REAXC/reaxc_init_md.cpp b/src/USER-REAXC/reaxc_init_md.cpp index 4af21284f2..33614c7c68 100644 --- a/src/USER-REAXC/reaxc_init_md.cpp +++ b/src/USER-REAXC/reaxc_init_md.cpp @@ -36,7 +36,7 @@ #include "reaxc_tool_box.h" #include "reaxc_vector.h" -int Init_System( reax_system *system, control_params *control, char *msg ) +int Init_System( reax_system *system, control_params *control, char */*msg*/ ) { int i; reax_atom *atom; @@ -66,7 +66,7 @@ int Init_System( reax_system *system, control_params *control, char *msg ) int Init_Simulation_Data( reax_system *system, control_params *control, - simulation_data *data, char *msg ) + simulation_data *data, char */*msg*/ ) { Reset_Simulation_Data( data, control->virial ); @@ -139,8 +139,8 @@ int Init_Workspace( reax_system *system, control_params *control, /************** setup communication data structures **************/ -int Init_MPI_Datatypes( reax_system *system, storage *workspace, - mpi_datatypes *mpi_data, MPI_Comm comm, char *msg ) +int Init_MPI_Datatypes( reax_system *system, storage */*workspace*/, + mpi_datatypes *mpi_data, MPI_Comm comm, char */*msg*/ ) { /* setup the world */ @@ -151,8 +151,8 @@ int Init_MPI_Datatypes( reax_system *system, storage *workspace, } int Init_Lists( reax_system *system, control_params *control, - simulation_data *data, storage *workspace, reax_list **lists, - mpi_datatypes *mpi_data, char *msg ) + simulation_data */*data*/, storage */*workspace*/, reax_list **lists, + mpi_datatypes *mpi_data, char */*msg*/ ) { int i, total_hbonds, total_bonds, bond_cap, num_3body, cap_3body, Htop; int *hb_top, *bond_top; diff --git a/src/USER-REAXC/reaxc_io_tools.cpp b/src/USER-REAXC/reaxc_io_tools.cpp index 4d58f7514d..030912d4b7 100644 --- a/src/USER-REAXC/reaxc_io_tools.cpp +++ b/src/USER-REAXC/reaxc_io_tools.cpp @@ -88,7 +88,7 @@ int Init_Output_Files( reax_system *system, control_params *control, /************************ close output files ************************/ int Close_Output_Files( reax_system *system, control_params *control, - output_controls *out_control, mpi_datatypes *mpi_data ) + output_controls *out_control, mpi_datatypes */*mpi_data*/ ) { if( out_control->write_steps > 0 ) End_Traj( system->my_rank, out_control ); diff --git a/src/USER-REAXC/reaxc_lookup.cpp b/src/USER-REAXC/reaxc_lookup.cpp index 9db8b7b9f6..8cc1555c59 100644 --- a/src/USER-REAXC/reaxc_lookup.cpp +++ b/src/USER-REAXC/reaxc_lookup.cpp @@ -151,7 +151,7 @@ void Complete_Cubic_Spline( const double *h, const double *f, double v0, double int Init_Lookup_Tables( reax_system *system, control_params *control, - storage *workspace, mpi_datatypes *mpi_data, char *msg ) + storage *workspace, mpi_datatypes *mpi_data, char */*msg*/ ) { int i, j, r; int num_atom_types; diff --git a/src/USER-REAXC/reaxc_multi_body.cpp b/src/USER-REAXC/reaxc_multi_body.cpp index ce5b966529..e599a3d86e 100644 --- a/src/USER-REAXC/reaxc_multi_body.cpp +++ b/src/USER-REAXC/reaxc_multi_body.cpp @@ -32,7 +32,7 @@ void Atom_Energy( reax_system *system, control_params *control, simulation_data *data, storage *workspace, reax_list **lists, - output_controls *out_control ) + output_controls */*out_control*/ ) { int i, j, pj, type_i, type_j; double Delta_lpcorr, dfvl; diff --git a/src/USER-REAXC/reaxc_nonbonded.cpp b/src/USER-REAXC/reaxc_nonbonded.cpp index 9c223428a6..731b1602e9 100644 --- a/src/USER-REAXC/reaxc_nonbonded.cpp +++ b/src/USER-REAXC/reaxc_nonbonded.cpp @@ -33,7 +33,7 @@ void vdW_Coulomb_Energy( reax_system *system, control_params *control, simulation_data *data, storage *workspace, - reax_list **lists, output_controls *out_control ) + reax_list **lists, output_controls */*out_control*/ ) { int i, j, pj, natoms; int start_i, end_i, flag; @@ -206,7 +206,7 @@ void vdW_Coulomb_Energy( reax_system *system, control_params *control, void Tabulated_vdW_Coulomb_Energy( reax_system *system,control_params *control, simulation_data *data, storage *workspace, reax_list **lists, - output_controls *out_control ) + output_controls */*out_control*/ ) { int i, j, pj, r, natoms; int type_i, type_j, tmin, tmax; diff --git a/src/USER-REAXC/reaxc_reset_tools.cpp b/src/USER-REAXC/reaxc_reset_tools.cpp index 4ec744e7b1..1b16f10aee 100644 --- a/src/USER-REAXC/reaxc_reset_tools.cpp +++ b/src/USER-REAXC/reaxc_reset_tools.cpp @@ -87,7 +87,7 @@ void Reset_Pressures( simulation_data *data ) } -void Reset_Simulation_Data( simulation_data* data, int virial ) +void Reset_Simulation_Data( simulation_data* data, int /*virial*/ ) { Reset_Energies( &data->my_en ); Reset_Energies( &data->sys_en ); diff --git a/src/USER-REAXC/reaxc_torsion_angles.cpp b/src/USER-REAXC/reaxc_torsion_angles.cpp index c5a7f23b30..d6f38d3765 100644 --- a/src/USER-REAXC/reaxc_torsion_angles.cpp +++ b/src/USER-REAXC/reaxc_torsion_angles.cpp @@ -41,7 +41,7 @@ double Calculate_Omega( rvec dvec_ij, double r_ij, three_body_interaction_data *p_jkl, rvec dcos_omega_di, rvec dcos_omega_dj, rvec dcos_omega_dk, rvec dcos_omega_dl, - output_controls *out_control ) + output_controls */*out_control*/ ) { double unnorm_cos_omega, unnorm_sin_omega, omega; double sin_ijk, cos_ijk, sin_jkl, cos_jkl; diff --git a/src/USER-REAXC/reaxc_traj.cpp b/src/USER-REAXC/reaxc_traj.cpp index ae2bba2150..f980120a59 100644 --- a/src/USER-REAXC/reaxc_traj.cpp +++ b/src/USER-REAXC/reaxc_traj.cpp @@ -48,7 +48,7 @@ int Reallocate_Output_Buffer( output_controls *out_control, int req_space, } -void Write_Skip_Line( output_controls *out_control, mpi_datatypes *mpi_data, +void Write_Skip_Line( output_controls *out_control, mpi_datatypes */*mpi_data*/, int my_rank, int skip, int num_section ) { if( my_rank == MASTER_NODE ) @@ -259,7 +259,7 @@ int Write_Header( reax_system *system, control_params *control, } -int Write_Init_Desc( reax_system *system, control_params *control, +int Write_Init_Desc( reax_system *system, control_params */*control*/, output_controls *out_control, mpi_datatypes *mpi_data ) { int i, me, np, cnt, buffer_len, buffer_req; @@ -482,7 +482,7 @@ int Write_Frame_Header( reax_system *system, control_params *control, -int Write_Atoms( reax_system *system, control_params *control, +int Write_Atoms( reax_system *system, control_params */*control*/, output_controls *out_control, mpi_datatypes *mpi_data ) { int i, me, np, line_len, buffer_len, buffer_req, cnt; diff --git a/src/USER-REAXC/reaxc_valence_angles.cpp b/src/USER-REAXC/reaxc_valence_angles.cpp index c92996e56b..35342c9173 100644 --- a/src/USER-REAXC/reaxc_valence_angles.cpp +++ b/src/USER-REAXC/reaxc_valence_angles.cpp @@ -76,7 +76,7 @@ void Calculate_dCos_Theta( rvec dvec_ji, double d_ji, rvec dvec_jk, double d_jk, void Valence_Angles( reax_system *system, control_params *control, simulation_data *data, storage *workspace, - reax_list **lists, output_controls *out_control ) + reax_list **lists, output_controls */*out_control*/ ) { int i, j, pi, k, pk, t; int type_i, type_j, type_k; diff --git a/src/USER-SMD/atom_vec_smd.cpp b/src/USER-SMD/atom_vec_smd.cpp index e99f3c5169..97a2fb0349 100644 --- a/src/USER-SMD/atom_vec_smd.cpp +++ b/src/USER-SMD/atom_vec_smd.cpp @@ -208,7 +208,7 @@ void AtomVecSMD::copy(int i, int j, int delflag) { /* ---------------------------------------------------------------------- */ -int AtomVecSMD::pack_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) { +int AtomVecSMD::pack_comm(int /*n*/, int */*list*/, double */*buf*/, int /*pbc_flag*/, int */*pbc*/) { error->one(FLERR, "atom vec tlsph can only be used with ghost velocities turned on"); return -1; } @@ -333,7 +333,7 @@ int AtomVecSMD::pack_comm_hybrid(int n, int *list, double *buf) { /* ---------------------------------------------------------------------- */ -void AtomVecSMD::unpack_comm(int n, int first, double *buf) { +void AtomVecSMD::unpack_comm(int /*n*/, int /*first*/, double */*buf*/) { error->one(FLERR, "atom vec tlsph can only be used with ghost velocities turned on"); } @@ -441,7 +441,7 @@ int AtomVecSMD::unpack_reverse_hybrid(int n, int *list, double *buf) { /* ---------------------------------------------------------------------- */ -int AtomVecSMD::pack_border(int n, int *list, double *buf, int pbc_flag, int *pbc) { +int AtomVecSMD::pack_border(int /*n*/, int */*list*/, double */*buf*/, int /*pbc_flag*/, int */*pbc*/) { error->one(FLERR, "atom vec tlsph can only be used with ghost velocities turned on"); return -1; } @@ -633,7 +633,7 @@ int AtomVecSMD::pack_border_hybrid(int n, int *list, double *buf) { /* ---------------------------------------------------------------------- */ -void AtomVecSMD::unpack_border(int n, int first, double *buf) { +void AtomVecSMD::unpack_border(int /*n*/, int /*first*/, double */*buf*/) { error->one(FLERR, "atom vec tlsph can only be used with ghost velocities turned on"); } @@ -1098,7 +1098,7 @@ void AtomVecSMD::data_atom(double *coord, imageint imagetmp, char **values) { initialize other atom quantities for this sub-style ------------------------------------------------------------------------- */ -int AtomVecSMD::data_atom_hybrid(int nlocal, char **values) { +int AtomVecSMD::data_atom_hybrid(int /*nlocal*/, char **/*values*/) { error->one(FLERR, "hybrid atom style functionality not yet implemented for atom style smd"); return -1; } @@ -1120,7 +1120,7 @@ void AtomVecSMD::data_vel(int m, char **values) { unpack hybrid quantities from one line in Velocities section of data file ------------------------------------------------------------------------- */ -int AtomVecSMD::data_vel_hybrid(int m, char **values) { +int AtomVecSMD::data_vel_hybrid(int /*m*/, char **/*values*/) { error->one(FLERR, "hybrid atom style functionality not yet implemented for atom style smd"); return 0; } @@ -1158,7 +1158,7 @@ void AtomVecSMD::pack_data(double **buf) { pack hybrid atom info for data file ------------------------------------------------------------------------- */ -int AtomVecSMD::pack_data_hybrid(int i, double *buf) { +int AtomVecSMD::pack_data_hybrid(int /*i*/, double */*buf*/) { error->one(FLERR, "hybrid atom style functionality not yet implemented for atom style smd"); return -1; } @@ -1180,7 +1180,7 @@ void AtomVecSMD::write_data(FILE *fp, int n, double **buf) { write hybrid atom info to data file ------------------------------------------------------------------------- */ -int AtomVecSMD::write_data_hybrid(FILE *fp, double *buf) { +int AtomVecSMD::write_data_hybrid(FILE */*fp*/, double */*buf*/) { error->one(FLERR, "hybrid atom style functionality not yet implemented for atom style smd"); return -1; } @@ -1203,7 +1203,7 @@ void AtomVecSMD::pack_vel(double **buf) { pack hybrid velocity info for data file ------------------------------------------------------------------------- */ -int AtomVecSMD::pack_vel_hybrid(int i, double *buf) { +int AtomVecSMD::pack_vel_hybrid(int /*i*/, double */*buf*/) { error->one(FLERR, "hybrid atom style functionality not yet implemented for atom style smd"); return 0; } @@ -1222,7 +1222,7 @@ void AtomVecSMD::write_vel(FILE *fp, int n, double **buf) { write hybrid velocity info to data file ------------------------------------------------------------------------- */ -int AtomVecSMD::write_vel_hybrid(FILE *fp, double *buf) { +int AtomVecSMD::write_vel_hybrid(FILE */*fp*/, double */*buf*/) { error->one(FLERR, "hybrid atom style functionality not yet implemented for atom style smd"); return 3; } diff --git a/src/USER-SMD/fix_smd_adjust_dt.cpp b/src/USER-SMD/fix_smd_adjust_dt.cpp index 3685248d5e..f015c6c4df 100644 --- a/src/USER-SMD/fix_smd_adjust_dt.cpp +++ b/src/USER-SMD/fix_smd_adjust_dt.cpp @@ -86,13 +86,13 @@ void FixSMDTlsphDtReset::init() { /* ---------------------------------------------------------------------- */ -void FixSMDTlsphDtReset::setup(int vflag) { +void FixSMDTlsphDtReset::setup(int /*vflag*/) { end_of_step(); } /* ---------------------------------------------------------------------- */ -void FixSMDTlsphDtReset::initial_integrate(int vflag) { +void FixSMDTlsphDtReset::initial_integrate(int /*vflag*/) { //printf("in adjust_dt: dt = %20.10f\n", update->dt); diff --git a/src/USER-SMD/fix_smd_integrate_tlsph.cpp b/src/USER-SMD/fix_smd_integrate_tlsph.cpp index 4668e673fc..1eae45161f 100644 --- a/src/USER-SMD/fix_smd_integrate_tlsph.cpp +++ b/src/USER-SMD/fix_smd_integrate_tlsph.cpp @@ -125,7 +125,7 @@ void FixSMDIntegrateTlsph::init() { /* ---------------------------------------------------------------------- ------------------------------------------------------------------------- */ -void FixSMDIntegrateTlsph::initial_integrate(int vflag) { +void FixSMDIntegrateTlsph::initial_integrate(int /*vflag*/) { double dtfm, vsq, scale; // update v and x of atoms in group diff --git a/src/USER-SMD/fix_smd_integrate_ulsph.cpp b/src/USER-SMD/fix_smd_integrate_ulsph.cpp index a145deeb61..685d6af5a8 100644 --- a/src/USER-SMD/fix_smd_integrate_ulsph.cpp +++ b/src/USER-SMD/fix_smd_integrate_ulsph.cpp @@ -158,7 +158,7 @@ void FixSMDIntegrateUlsph::init() { allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixSMDIntegrateUlsph::initial_integrate(int vflag) { +void FixSMDIntegrateUlsph::initial_integrate(int /*vflag*/) { double **x = atom->x; double **v = atom->v; double **f = atom->f; diff --git a/src/USER-SMD/fix_smd_move_triangulated_surface.cpp b/src/USER-SMD/fix_smd_move_triangulated_surface.cpp index d4afbe0535..1515849c53 100644 --- a/src/USER-SMD/fix_smd_move_triangulated_surface.cpp +++ b/src/USER-SMD/fix_smd_move_triangulated_surface.cpp @@ -248,7 +248,7 @@ void FixSMDMoveTriSurf::init() { /* ---------------------------------------------------------------------- ------------------------------------------------------------------------- */ -void FixSMDMoveTriSurf::initial_integrate(int vflag) { +void FixSMDMoveTriSurf::initial_integrate(int /*vflag*/) { double **x = atom->x; double **x0 = atom->x0; double **v = atom->v; @@ -461,7 +461,7 @@ void FixSMDMoveTriSurf::reset_dt() { /* ---------------------------------------------------------------------- */ -int FixSMDMoveTriSurf::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) { +int FixSMDMoveTriSurf::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { int i, j, m; double **x0 = atom->x0; double **smd_data_9 = atom->smd_data_9; diff --git a/src/USER-SMD/fix_smd_setvel.cpp b/src/USER-SMD/fix_smd_setvel.cpp index 5e7cdbad38..4bc8b5127b 100644 --- a/src/USER-SMD/fix_smd_setvel.cpp +++ b/src/USER-SMD/fix_smd_setvel.cpp @@ -231,7 +231,7 @@ void FixSMDSetVel::min_setup(int vflag) { /* ---------------------------------------------------------------------- */ //void FixSMDSetVel::initial_integrate(int vflag) { -void FixSMDSetVel::post_force(int vflag) { +void FixSMDSetVel::post_force(int /*vflag*/) { double **x = atom->x; double **f = atom->f; double **v = atom->v; diff --git a/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp b/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp index 3e2812aa12..eba094da53 100644 --- a/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp +++ b/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp @@ -199,7 +199,7 @@ void FixSMD_TLSPH_ReferenceConfiguration::pre_exchange() { so can be migrated or stored with atoms ------------------------------------------------------------------------- */ -void FixSMD_TLSPH_ReferenceConfiguration::setup(int vflag) { +void FixSMD_TLSPH_ReferenceConfiguration::setup(int /*vflag*/) { int i, j, ii, jj, n, inum, jnum; int *ilist, *jlist, *numneigh, **firstneigh; double r, h, wf, wfd; @@ -386,7 +386,7 @@ void FixSMD_TLSPH_ReferenceConfiguration::grow_arrays(int nmax) { copy values within local atom-based arrays ------------------------------------------------------------------------- */ -void FixSMD_TLSPH_ReferenceConfiguration::copy_arrays(int i, int j, int delflag) { +void FixSMD_TLSPH_ReferenceConfiguration::copy_arrays(int i, int j, int /*delflag*/) { npartner[j] = npartner[i]; for (int m = 0; m < npartner[j]; m++) { partner[j][m] = partner[i][m]; @@ -470,7 +470,7 @@ int FixSMD_TLSPH_ReferenceConfiguration::pack_restart(int i, double *buf) { unpack values from atom->extra array to restart the fix ------------------------------------------------------------------------- */ -void FixSMD_TLSPH_ReferenceConfiguration::unpack_restart(int nlocal, int nth) { +void FixSMD_TLSPH_ReferenceConfiguration::unpack_restart(int /*nlocal*/, int /*nth*/) { // ipage = NULL if being called from granular pair style init() // skip to Nth set of extra values @@ -512,7 +512,7 @@ int FixSMD_TLSPH_ReferenceConfiguration::size_restart(int nlocal) { /* ---------------------------------------------------------------------- */ -int FixSMD_TLSPH_ReferenceConfiguration::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) { +int FixSMD_TLSPH_ReferenceConfiguration::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { int i, j, m; double *radius = atom->radius; double *vfrac = atom->vfrac; diff --git a/src/USER-SMD/fix_smd_wall_surface.cpp b/src/USER-SMD/fix_smd_wall_surface.cpp index 97c2ead5fc..4dd415f53e 100644 --- a/src/USER-SMD/fix_smd_wall_surface.cpp +++ b/src/USER-SMD/fix_smd_wall_surface.cpp @@ -110,7 +110,7 @@ void FixSMDWallSurface::min_setup(int vflag) { must be done in setup (not init) since fix init comes before neigh init ------------------------------------------------------------------------- */ -void FixSMDWallSurface::setup(int vflag) { +void FixSMDWallSurface::setup(int /*vflag*/) { if (!first) return; diff --git a/src/USER-SMD/pair_smd_hertz.cpp b/src/USER-SMD/pair_smd_hertz.cpp index 815db4a450..13f48e995e 100644 --- a/src/USER-SMD/pair_smd_hertz.cpp +++ b/src/USER-SMD/pair_smd_hertz.cpp @@ -373,7 +373,7 @@ double PairHertz::memory_usage() { return 0.0; } -void *PairHertz::extract(const char *str, int &i) { +void *PairHertz::extract(const char *str, int &/*i*/) { //printf("in PairTriSurf::extract\n"); if (strcmp(str, "smd/hertz/stable_time_increment_ptr") == 0) { return (void *) &stable_time_increment; diff --git a/src/USER-SMD/pair_smd_tlsph.cpp b/src/USER-SMD/pair_smd_tlsph.cpp index 4dd16c4d83..f9922ef222 100644 --- a/src/USER-SMD/pair_smd_tlsph.cpp +++ b/src/USER-SMD/pair_smd_tlsph.cpp @@ -1802,7 +1802,7 @@ double PairTlsph::memory_usage() { extract method to provide access to this class' data structures ------------------------------------------------------------------------- */ -void *PairTlsph::extract(const char *str, int &i) { +void *PairTlsph::extract(const char *str, int &/*i*/) { //printf("in PairTlsph::extract\n"); if (strcmp(str, "smd/tlsph/Fincr_ptr") == 0) { return (void *) Fincr; @@ -1839,7 +1839,7 @@ void *PairTlsph::extract(const char *str, int &i) { /* ---------------------------------------------------------------------- */ -int PairTlsph::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) { +int PairTlsph::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { int i, j, m; tagint *mol = atom->molecule; double *damage = atom->damage; @@ -1928,7 +1928,7 @@ void PairTlsph::unpack_forward_comm(int n, int first, double *buf) { ------------------------------------------------------------------------- */ void PairTlsph::effective_longitudinal_modulus(const int itype, const double dt, const double d_iso, const double p_rate, - const Matrix3d d_dev, const Matrix3d sigma_dev_rate, const double damage, double &K_eff, double &mu_eff, double &M_eff) { + const Matrix3d d_dev, const Matrix3d sigma_dev_rate, const double /*damage*/, double &K_eff, double &mu_eff, double &M_eff) { double M0; // initial longitudinal modulus double shear_rate_sq; @@ -2094,7 +2094,7 @@ void PairTlsph::ComputeStressDeviator(const int i, const Matrix3d sigmaInitial_d /* ---------------------------------------------------------------------- Compute damage. Called from AssembleStress(). ------------------------------------------------------------------------- */ -void PairTlsph::ComputeDamage(const int i, const Matrix3d strain, const Matrix3d stress, Matrix3d &stress_damaged) { +void PairTlsph::ComputeDamage(const int i, const Matrix3d strain, const Matrix3d stress, Matrix3d &/*stress_damaged*/) { double *eff_plastic_strain = atom->eff_plastic_strain; double *eff_plastic_strain_rate = atom->eff_plastic_strain_rate; double *radius = atom->radius; diff --git a/src/USER-SMD/pair_smd_triangulated_surface.cpp b/src/USER-SMD/pair_smd_triangulated_surface.cpp index b8bff7e799..e40c876ec3 100644 --- a/src/USER-SMD/pair_smd_triangulated_surface.cpp +++ b/src/USER-SMD/pair_smd_triangulated_surface.cpp @@ -834,7 +834,7 @@ double PairTriSurf::clamp(const double a, const double min, const double max) { } } -void *PairTriSurf::extract(const char *str, int &i) { +void *PairTriSurf::extract(const char *str, int &/*i*/) { //printf("in PairTriSurf::extract\n"); if (strcmp(str, "smd/tri_surface/stable_time_increment_ptr") == 0) { return (void *) &stable_time_increment; diff --git a/src/USER-SMD/pair_smd_ulsph.cpp b/src/USER-SMD/pair_smd_ulsph.cpp index 96eb912fae..aa88e125d6 100644 --- a/src/USER-SMD/pair_smd_ulsph.cpp +++ b/src/USER-SMD/pair_smd_ulsph.cpp @@ -1487,7 +1487,7 @@ double PairULSPH::memory_usage() { /* ---------------------------------------------------------------------- */ -int PairULSPH::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) { +int PairULSPH::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { double *vfrac = atom->vfrac; double *eff_plastic_strain = atom->eff_plastic_strain; int i, j, m; @@ -1562,7 +1562,7 @@ void PairULSPH::unpack_forward_comm(int n, int first, double *buf) { * EXTRACT */ -void *PairULSPH::extract(const char *str, int &i) { +void *PairULSPH::extract(const char *str, int &/*i*/) { //printf("in extract\n"); if (strcmp(str, "smd/ulsph/smoothVel_ptr") == 0) { return (void *) smoothVel; diff --git a/src/USER-SMD/smd_material_models.cpp b/src/USER-SMD/smd_material_models.cpp index e3deb199b6..4213428872 100644 --- a/src/USER-SMD/smd_material_models.cpp +++ b/src/USER-SMD/smd_material_models.cpp @@ -97,7 +97,7 @@ void ShockEOS(double rho, double rho0, double e, double e0, double c0, double S, final pressure pFinal ------------------------------------------------------------------------- */ -void polynomialEOS(double rho, double rho0, double e, double C0, double C1, double C2, double C3, double C4, double C5, double C6, +void polynomialEOS(double rho, double rho0, double /*e*/, double C0, double C1, double C2, double C3, double /*C4*/, double /*C5*/, double /*C6*/, double pInitial, double dt, double &pFinal, double &p_rate) { double mu = rho / rho0 - 1.0; @@ -307,7 +307,7 @@ void LinearPlasticStrength(const double G, const double yieldStress, const Matri output: sigmaFinal_dev, sigmaFinal_dev_rate__: final stress deviator and its rate. ------------------------------------------------------------------------- */ void JohnsonCookStrength(const double G, const double cp, const double espec, const double A, const double B, const double a, - const double C, const double epdot0, const double T0, const double Tmelt, const double M, const double dt, const double ep, + const double C, const double epdot0, const double T0, const double Tmelt, const double /*M*/, const double dt, const double ep, const double epdot, const Matrix3d sigmaInitial_dev, const Matrix3d d_dev, Matrix3d &sigmaFinal_dev__, Matrix3d &sigma_dev_rate__, double &plastic_strain_increment) { diff --git a/src/USER-SMTBQ/pair_smtbq.cpp b/src/USER-SMTBQ/pair_smtbq.cpp index 1028d8a897..9eee7d0728 100644 --- a/src/USER-SMTBQ/pair_smtbq.cpp +++ b/src/USER-SMTBQ/pair_smtbq.cpp @@ -242,7 +242,7 @@ void PairSMTBQ::allocate() global settings ------------------------------------------------------------------------- */ -void PairSMTBQ::settings(int narg, char **arg) +void PairSMTBQ::settings(int narg, char **/*arg*/) { if (narg > 0) error->all(FLERR,"Illegal pair_style command"); } @@ -1592,7 +1592,7 @@ void PairSMTBQ::tabqeq() /* ---------------------------------------------------------------------*/ void PairSMTBQ::potqeq(int i, int j, double qi, double qj, double rsq, - double &fforce, int eflag, double &eng) + double &fforce, int /*eflag*/, double &eng) { /* =================================================================== @@ -1840,7 +1840,7 @@ void PairSMTBQ::pot_ES2 (int i, int j, double rsq, double &pot) -------------------------------------------------------------------- */ void PairSMTBQ::rep_OO(Intparam *intparam, double rsq, double &fforce, - int eflag, double &eng) + int /*eflag*/, double &eng) { double r,tmp_exp,tmp; double A = intparam->abuck ; @@ -1858,7 +1858,7 @@ void PairSMTBQ::rep_OO(Intparam *intparam, double rsq, double &fforce, void PairSMTBQ::Attr_OO(Intparam *intparam, double rsq, double &fforce, - int eflag, double &eng) + int /*eflag*/, double &eng) { double r,tmp_exp; double aOO = intparam->aOO ; @@ -1980,8 +1980,8 @@ void PairSMTBQ::tabsm() /* -------------------------------------------------------------- */ -void PairSMTBQ::repulsive(Intparam *intparam, double rsq, int i, int j, - double &fforce, int eflag, double &eng) +void PairSMTBQ::repulsive(Intparam *intparam, double rsq, int /*i*/, int /*j*/, + double &fforce, int /*eflag*/, double &eng) { /* ================================================ @@ -2031,7 +2031,7 @@ void PairSMTBQ::repulsive(Intparam *intparam, double rsq, int i, int j, void PairSMTBQ::attractive(Intparam *intparam, double rsq, - int eflag, int i, double iq, int j, double jq) + int /*eflag*/, int i, double /*iq*/, int /*j*/, double /*jq*/) { int itype,l; double r,t1,t2,xi,sds; @@ -3334,7 +3334,7 @@ void PairSMTBQ::groupQEqAllParallel_QEq() /* ---------------------------------------------------------------------- */ -void PairSMTBQ::Init_charge(int *nQEq, int *nQEqa, int *nQEqc) +void PairSMTBQ::Init_charge(int */*nQEq*/, int */*nQEqa*/, int */*nQEqc*/) { int ii,i,gp,itype; int *ilist,test[nteam],init[nteam]; @@ -3391,7 +3391,7 @@ void PairSMTBQ::Init_charge(int *nQEq, int *nQEqa, int *nQEqc) * COMMUNICATION * ---------------------------------------------------------------------- */ -int PairSMTBQ::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc) +int PairSMTBQ::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { int i,j,m; diff --git a/src/USER-SPH/fix_meso.cpp b/src/USER-SPH/fix_meso.cpp index d7a5d81517..b688eccfea 100644 --- a/src/USER-SPH/fix_meso.cpp +++ b/src/USER-SPH/fix_meso.cpp @@ -64,7 +64,7 @@ void FixMeso::init() { dtf = 0.5 * update->dt * force->ftm2v; } -void FixMeso::setup_pre_force(int vflag) +void FixMeso::setup_pre_force(int /*vflag*/) { // set vest equal to v double **v = atom->v; @@ -87,7 +87,7 @@ void FixMeso::setup_pre_force(int vflag) allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixMeso::initial_integrate(int vflag) { +void FixMeso::initial_integrate(int /*vflag*/) { // update v and x and rho and e of atoms in group double **x = atom->x; diff --git a/src/USER-SPH/fix_meso_stationary.cpp b/src/USER-SPH/fix_meso_stationary.cpp index f5fc306320..29e8a1554c 100644 --- a/src/USER-SPH/fix_meso_stationary.cpp +++ b/src/USER-SPH/fix_meso_stationary.cpp @@ -67,7 +67,7 @@ void FixMesoStationary::init() { allow for both per-type and per-atom mass ------------------------------------------------------------------------- */ -void FixMesoStationary::initial_integrate(int vflag) { +void FixMesoStationary::initial_integrate(int /*vflag*/) { double *rho = atom->rho; double *drho = atom->drho; diff --git a/src/USER-SPH/pair_sph_heatconduction.cpp b/src/USER-SPH/pair_sph_heatconduction.cpp index 6f0cf7eca2..4a8990d6fd 100644 --- a/src/USER-SPH/pair_sph_heatconduction.cpp +++ b/src/USER-SPH/pair_sph_heatconduction.cpp @@ -155,7 +155,7 @@ void PairSPHHeatConduction::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHHeatConduction::settings(int narg, char **arg) { +void PairSPHHeatConduction::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR, "Illegal number of setting arguments for pair_style sph/heatconduction"); @@ -211,8 +211,8 @@ double PairSPHHeatConduction::init_one(int i, int j) { /* ---------------------------------------------------------------------- */ -double PairSPHHeatConduction::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, double &fforce) { +double PairSPHHeatConduction::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, + double /*rsq*/, double /*factor_coul*/, double /*factor_lj*/, double &fforce) { fforce = 0.0; return 0.0; diff --git a/src/USER-SPH/pair_sph_idealgas.cpp b/src/USER-SPH/pair_sph_idealgas.cpp index 99fba05917..32b3e61233 100644 --- a/src/USER-SPH/pair_sph_idealgas.cpp +++ b/src/USER-SPH/pair_sph_idealgas.cpp @@ -197,7 +197,7 @@ void PairSPHIdealGas::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHIdealGas::settings(int narg, char **arg) { +void PairSPHIdealGas::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR, "Illegal number of setting arguments for pair_style sph/idealgas"); @@ -252,8 +252,8 @@ double PairSPHIdealGas::init_one(int i, int j) { /* ---------------------------------------------------------------------- */ -double PairSPHIdealGas::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, double &fforce) { +double PairSPHIdealGas::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, + double /*rsq*/, double /*factor_coul*/, double /*factor_lj*/, double &fforce) { fforce = 0.0; return 0.0; diff --git a/src/USER-SPH/pair_sph_lj.cpp b/src/USER-SPH/pair_sph_lj.cpp index 5cefdf87c4..c382833baf 100644 --- a/src/USER-SPH/pair_sph_lj.cpp +++ b/src/USER-SPH/pair_sph_lj.cpp @@ -204,7 +204,7 @@ void PairSPHLJ::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHLJ::settings(int narg, char **arg) { +void PairSPHLJ::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR, "Illegal number of setting arguments for pair_style sph/lj"); @@ -261,8 +261,8 @@ double PairSPHLJ::init_one(int i, int j) { /* ---------------------------------------------------------------------- */ -double PairSPHLJ::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, double &fforce) { +double PairSPHLJ::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, + double /*rsq*/, double /*factor_coul*/, double /*factor_lj*/, double &fforce) { fforce = 0.0; return 0.0; diff --git a/src/USER-SPH/pair_sph_rhosum.cpp b/src/USER-SPH/pair_sph_rhosum.cpp index 605187d3a7..9b5a535288 100644 --- a/src/USER-SPH/pair_sph_rhosum.cpp +++ b/src/USER-SPH/pair_sph_rhosum.cpp @@ -278,8 +278,8 @@ double PairSPHRhoSum::init_one(int i, int j) { /* ---------------------------------------------------------------------- */ -double PairSPHRhoSum::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_lj, double &fforce) { +double PairSPHRhoSum::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, double /*rsq*/, + double /*factor_coul*/, double /*factor_lj*/, double &fforce) { fforce = 0.0; return 0.0; @@ -288,7 +288,7 @@ double PairSPHRhoSum::single(int i, int j, int itype, int jtype, double rsq, /* ---------------------------------------------------------------------- */ int PairSPHRhoSum::pack_forward_comm(int n, int *list, double *buf, - int pbc_flag, int *pbc) { + int /*pbc_flag*/, int */*pbc*/) { int i, j, m; double *rho = atom->rho; diff --git a/src/USER-SPH/pair_sph_taitwater.cpp b/src/USER-SPH/pair_sph_taitwater.cpp index 00500b940d..42b318f2c9 100644 --- a/src/USER-SPH/pair_sph_taitwater.cpp +++ b/src/USER-SPH/pair_sph_taitwater.cpp @@ -225,7 +225,7 @@ void PairSPHTaitwater::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHTaitwater::settings(int narg, char **arg) { +void PairSPHTaitwater::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR, "Illegal number of setting arguments for pair_style sph/taitwater"); @@ -293,8 +293,8 @@ double PairSPHTaitwater::init_one(int i, int j) { /* ---------------------------------------------------------------------- */ -double PairSPHTaitwater::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, double &fforce) { +double PairSPHTaitwater::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, + double /*rsq*/, double /*factor_coul*/, double /*factor_lj*/, double &fforce) { fforce = 0.0; return 0.0; diff --git a/src/USER-SPH/pair_sph_taitwater_morris.cpp b/src/USER-SPH/pair_sph_taitwater_morris.cpp index 80607cb333..8012895af8 100644 --- a/src/USER-SPH/pair_sph_taitwater_morris.cpp +++ b/src/USER-SPH/pair_sph_taitwater_morris.cpp @@ -225,7 +225,7 @@ void PairSPHTaitwaterMorris::allocate() { global settings ------------------------------------------------------------------------- */ -void PairSPHTaitwaterMorris::settings(int narg, char **arg) { +void PairSPHTaitwaterMorris::settings(int narg, char **/*arg*/) { if (narg != 0) error->all(FLERR, "Illegal number of setting arguments for pair_style sph/taitwater/morris"); @@ -289,8 +289,8 @@ double PairSPHTaitwaterMorris::init_one(int i, int j) { /* ---------------------------------------------------------------------- */ -double PairSPHTaitwaterMorris::single(int i, int j, int itype, int jtype, - double rsq, double factor_coul, double factor_lj, double &fforce) { +double PairSPHTaitwaterMorris::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, + double /*rsq*/, double /*factor_coul*/, double /*factor_lj*/, double &fforce) { fforce = 0.0; return 0.0; diff --git a/src/USER-UEF/fix_nh_uef.cpp b/src/USER-UEF/fix_nh_uef.cpp index bfa4549286..bffcd7849f 100644 --- a/src/USER-UEF/fix_nh_uef.cpp +++ b/src/USER-UEF/fix_nh_uef.cpp @@ -348,7 +348,7 @@ void FixNHUef::final_integrate() * at outer level: call this->final_integrate() * at other levels: rotate -> 2nd verlet step -> rotate back * ---------------------------------------------------------------------- */ -void FixNHUef::final_integrate_respa(int ilevel, int iloop) +void FixNHUef::final_integrate_respa(int ilevel, int /*iloop*/) { // set timesteps by level dtf = 0.5 * step_respa[ilevel] * force->ftm2v; From 735ec9de0babfc4fd9d781ac1e1dedbddcd66eb1 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 24 Aug 2018 10:53:05 -0600 Subject: [PATCH 602/675] more general MD c/s protocol --- src/MESSAGE/fix_client_md.cpp | 43 ++++++++++++++---- src/MESSAGE/server_md.cpp | 86 +++++++++++++++++++++++++---------- src/MESSAGE/server_md.h | 4 ++ 3 files changed, 100 insertions(+), 33 deletions(-) diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp index 9c270ac2c9..c4ee24d344 100644 --- a/src/MESSAGE/fix_client_md.cpp +++ b/src/MESSAGE/fix_client_md.cpp @@ -28,9 +28,9 @@ using namespace LAMMPS_NS; using namespace CSLIB_NS; using namespace FixConst; -enum{REAL,METAL} +enum{OTHER,REAL,METAL} enum{SETUP=1,STEP}; -enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,CHARGE}; +enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; enum{FORCES=1,ENERGY,VIRIAL}; /* ---------------------------------------------------------------------- */ @@ -47,7 +47,7 @@ FixClientMD::FixClientMD(LAMMPS *lmp, int narg, char **arg) : if (strcmp(update->unit_style,"real") == 0) units = REAL; else if (strcmp(update->unit_style,"metal") == 0) units = METAL; - else error->all(FLERR,"Units must be real or metal for fix client/md"); + else units = OTHER; scalar_flag = 1; global_freq = 1; @@ -55,18 +55,19 @@ FixClientMD::FixClientMD(LAMMPS *lmp, int narg, char **arg) : virial_flag = 1; thermo_virial = 1; + inv_nprocs = 1.0 / comm->nprocs; if (domain->dimension == 2) box[0][2] = box[1][2] = box[2][0] = box[2][1] = box[2][2] = 0.0; maxatom = 0; xpbc = NULL; - // unit conversion factors - - double inv_nprocs = 1.0 / comm->nprocs; + // unit conversion factors for REAL + // otherwise not needed fconvert = econvert = vconvert = 1.0; if (units == REAL) { + // NOTE: still need to set these fconvert = 1.0; econvert = 1.0; vconvert = 1.0; @@ -120,10 +121,12 @@ void FixClientMD::setup(int vflag) { CSlib *cs = (CSlib *) lmp->cslib; + // SETUP send at beginning of each run // required fields: DIM, PERIODICTY, ORIGIN, BOX, NATOMS, NTYPES, TYPES, COORDS // optional fields: others in enum above int nfields = 8; + if (units == OTHER) nfields++; if (atom->q_flag) nfields++; cs->send(SETUP,nfields); @@ -142,12 +145,20 @@ void FixClientMD::setup(int vflag) pack_coords(); cs->pack_parallel(COORDS,4,atom->nlocal,atom->tag,3,xpbc); + if (units == OTHER) cs->pack_string(UNITS,update->unit_style); + if (atom->q_flag) cs->pack_parallel(CHARGE,4,atom->nlocal,atom->tag,1,atom->q); // receive initial forces, energy, virial receive_fev(vflag); + + if (server_error) { + str = char[64]; + sprintf(str,"Fix client/md received server error %d\n",server_error); + error->all(FLERR,str); + } } /* ---------------------------------------------------------------------- */ @@ -168,6 +179,7 @@ void FixClientMD::post_force(int vflag) if (vflag) v_setup(vflag); else evflag = 0; + // STEP send every step // required fields: COORDS // optional fields: ORIGIN, BOX @@ -189,9 +201,15 @@ void FixClientMD::post_force(int vflag) cs->pack(BOX,4,9,&box[0][0]); } - // recv forces, energy, virial + // receive forces, energy, virial receive_fev(vflag); + + if (server_error) { + str = char[64]; + sprintf(str,"Fix client/md received server error %d\n",server_error); + error->all(FLERR,str); + } } /* ---------------------------------------------------------------------- */ @@ -202,7 +220,7 @@ void FixClientMD::min_post_force(int vflag) } /* ---------------------------------------------------------------------- - potential energy from QM code + potential energy from server ------------------------------------------------------------------------- */ double FixClientMD::compute_scalar() @@ -255,7 +273,9 @@ void FixClientMD::pack_box() } /* ---------------------------------------------------------------------- - receive message from server with forces, energy, virial + receive message from server + required fields: FORCES, ENERGY, VIRIAL + optional field: ERROR ------------------------------------------------------------------------- */ void FixClientMD::receive_fev(int vflag) @@ -291,4 +311,9 @@ void FixClientMD::receive_fev(int vflag) for (int i = 0; i < 6; i++) virial[i] = inv_nprocs * vconvert * v[i]; } + + // error return + + server_error = 0; + if (nfield == 4) server_error = cs->unpack_int(ERROR); } diff --git a/src/MESSAGE/server_md.cpp b/src/MESSAGE/server_md.cpp index af93c3b4b0..98ce71638d 100644 --- a/src/MESSAGE/server_md.cpp +++ b/src/MESSAGE/server_md.cpp @@ -33,21 +33,11 @@ using namespace LAMMPS_NS; using namespace CSLIB_NS; -enum{REAL,METAL} +enum{OTHER,REAL,METAL} enum{SETUP=1,STEP}; -enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,CHARGE}; +enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; enum{FORCES=1,ENERGY,VIRIAL}; -// NOTE: features that could be added to this interface -// allow client to set periodicity vs shrink-wrap -// currently just assume server is same as client -// test that triclinic boxes actually work -// send new box size/shape every step, for NPT client -// unit check between client/server with unit conversion if needed -// option for client to send other per-atom quantities, e.g. rmass -// more precise request of energy/virial (global or peratom) by client -// maybe Verlet should have a single(eflag,vflag) method to more easily comply - /* ---------------------------------------------------------------------- */ ServerMD::ServerMD(LAMMPS *lmp) : Pointers(lmp) @@ -61,7 +51,27 @@ ServerMD::ServerMD(LAMMPS *lmp) : Pointers(lmp) if (strcmp(update->unit_style,"real") == 0) units = REAL; else if (strcmp(update->unit_style,"metal") == 0) units = METAL; - else error->all(FLERR,"Units must be real or metal for server md"); + else units = OTHER; + + // unit conversion factors for REAL + // otherwise not needed + + fconvert = econvert = vconvert = 1.0; + if (units == REAL) { + // NOTE: still need to set these + fconvert = 1.0; + econvert = 1.0; + vconvert = 1.0; + } + + fcopy = NULL; +} + +/* ---------------------------------------------------------------------- */ + +ServerMD::~ServerMD(); +{ + memory->destroy(fcopy); } /* ---------------------------------------------------------------------- */ @@ -89,8 +99,9 @@ void ServerMD::loop() msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); if (msgID < 0) break; - // SETUP call at beginning of each run - // required fields: NATOMS, NTYPES, BOXLO, BOXHI, TYPES, COORDS + // SETUP receive at beginning of each run + // required fields: DIM, PERIODICTY, ORIGIN, BOX, + // NATOMS, NTYPES, TYPES, COORDS // optional fields: others in enum above if (msgID == SETUP) { @@ -103,6 +114,7 @@ void ServerMD::loop() double *box = NULL; int *types = NULL; double *coords = NULL; + char *units = NULL; double *charge = NULL; for (int ifield = 0; ifield < nfield; ifield++) { @@ -132,6 +144,9 @@ void ServerMD::loop() types = (int *) cs->unpack(TYPES); } else if (fieldID[ifield] == COORDS) { coords = (double *) cs->unpack(COORDS); + + } else if (fieldID[ifield] == UNITS) { + units = (char *) cs->unpack(UNITS); } else if (fieldID[ifield] == CHARGE) { charge = (double *) cs->unpack(CHARGE); } else error->all(FLERR,"Server md setup field unknown"); @@ -141,6 +156,9 @@ void ServerMD::loop() natoms < 0 || ntypes < 0 || !types || !coords) error->all(FLERR,"Required server md setup field not received"); + if (units && strcmp(units,update->unit_style) != 0) + error->all(FLERR,"Server md does not match client units"); + if (charge && atom->q_flag == 0) error->all(FLERR,"Server md does not define atom attribute q"); @@ -183,6 +201,13 @@ void ServerMD::loop() atom->map_set(); atom->natoms = natoms; + // allocate fcopy if needed + + if (units == REAL) { + memory->destroy(fcopy); + memory->create(fcopy,atom->nlocal,3,"server/md:fcopy"); + } + // perform system setup() for dynamics // also OK for minimization, since client runs minimizer // return forces, energy, virial to client @@ -195,7 +220,7 @@ void ServerMD::loop() send_fev(msgID); - // STEP call at each timestep of run or minimization + // STEP receive at each timestep of run or minimization // required fields: COORDS // optional fields: BOXLO, BOXHI, BOXTILT @@ -309,13 +334,13 @@ void ServerMD::box_change(double *origin, double *box) domain->xy = box[3]; domain->xz = box[6]; domain->yz = box[7]; - - } /* ---------------------------------------------------------------------- - send return message with forces, energy, pressure tensor - pressure tensor should be just pair style virial + return message with forces, energy, pressure tensor + pressure tensor should be just pair and KSpace contributions + required fields: FORCES, ENERGY, VIRIAL + optional field: ERROR (not ever sending) ------------------------------------------------------------------------- */ void ServerMD::send_fev(int msgID) @@ -325,12 +350,25 @@ void ServerMD::send_fev(int msgID) cs->send(msgID,3); double *forces = NULL; - if (atom->nlocal) forces = &atom->f[0][0]; + if (atom->nlocal) { + if (units != REAL) forces = &atom->f[0][0]; + else { + double **f = atom->f; + int nlocal = atom->nlocal; + for (i = 0; i < nlocal; i++) { + fcopy[i][0] = fconvert*f[i][0]; + fcopy[i][1] = fconvert*f[i][1]; + fcopy[i][2] = fconvert*f[i][2]; + } + forces = &fcopy[0][0]; + } + } cs->pack_parallel(FORCES,4,atom->nlocal,atom->tag,3,forces); - + double eng = force->pair->eng_vdwl + force->pair->eng_coul; double engall; MPI_Allreduce(&eng,&engall,1,MPI_DOUBLE,MPI_SUM,world); + engall *= econvert; cs->pack_double(ENERGY,engall); double v[6],vall[6]; @@ -339,8 +377,8 @@ void ServerMD::send_fev(int msgID) if (force->kspace) for (int i = 0; i < 6; i++) v[i] += force->kspace->virial[i]; - + + for (int i = 0; i < 6; i++) v[i] *= vconvert; MPI_Allreduce(&v,&vall,6,MPI_DOUBLE,MPI_SUM,world); cs->pack(VIRIAL,4,6,vall); } - diff --git a/src/MESSAGE/server_md.h b/src/MESSAGE/server_md.h index 70134cbff9..ecc713a4e8 100644 --- a/src/MESSAGE/server_md.h +++ b/src/MESSAGE/server_md.h @@ -21,9 +21,13 @@ namespace LAMMPS_NS { class ServerMD : protected Pointers { public: ServerMD(class LAMMPS *); + ~ServerMD(); void loop(); private: + int units; + double **fcopy; + void box_change(double *, double *, double *); void send_fev(int); }; From d8b087aeb4a3ab82974cb047dbeedfd9f352e4eb Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 24 Aug 2018 11:11:34 -0600 Subject: [PATCH 603/675] docs for MD protocol enhancements --- doc/src/server_mc.txt | 18 +++++++++--------- doc/src/server_md.txt | 35 ++++++++++++++++++----------------- src/MESSAGE/fix_client_md.cpp | 2 +- src/MESSAGE/fix_client_md.h | 1 - src/MESSAGE/server_md.cpp | 2 +- 5 files changed, 29 insertions(+), 29 deletions(-) diff --git a/doc/src/server_mc.txt b/doc/src/server_mc.txt index 3c658187da..3f7b3b8893 100644 --- a/doc/src/server_mc.txt +++ b/doc/src/server_mc.txt @@ -71,26 +71,26 @@ cs->send(NATOMS,0) # msgID = 1 with no fields :pre cs->send(EINIT,0) # msgID = 2 with no fields :pre cs->send(DISPLACE,2) # msgID = 3 with 2 fields -cs->pack(1,1,ID) # 1st field = ID of atom to displace +cs->pack_int(1,ID) # 1st field = ID of atom to displace cs->pack(2,3,xnew) # 2nd field = new xyz coords of displaced atom :pre cs->send(ACCEPT,1) # msgID = 4 with 1 field -cs->pack(1,1,flag) # 1st field = accept/reject flag :pre +cs->pack_int(1,flag) # 1st field = accept/reject flag :pre cs->send(RUN,1) # msgID = 5 with 1 field -cs->pack(1,1,nsteps) # 1st field = # of timesteps to run MD :pre +cs->pack_int(1,nsteps) # 1st field = # of timesteps to run MD :pre [Server replies]: cs->send(NATOMS,1) # msgID = 1 with 1 field -cs->pack(1,1,Natoms) # 1st field = number of atoms :pre +cs->pack_int(1,natoms) # 1st field = number of atoms :pre -cs->send(EINIT,2) # msgID = 2 with 2 fields -cs->pack(1,1,poteng) # 1st field = potential energy of system -cs->pack(2,3*Natoms,x) # 2nd field = 3N coords of Natoms :pre +cs->send(EINIT,2) # msgID = 2 with 2 fields +cs->pack_double(1,poteng) # 1st field = potential energy of system +cs->pack(2,3*natoms,x) # 2nd field = 3N coords of Natoms :pre -cs->send(DISPLACE,1) # msgID = 3 with 1 field -cs->pack(1,1,poteng) # 1st field = new potential energy of system :pre +cs->send(DISPLACE,1) # msgID = 3 with 1 field +cs->pack_double(1,poteng) # 1st field = new potential energy of system :pre cs->send(ACCEPT,0) # msgID = 4 with no fields diff --git a/doc/src/server_md.txt b/doc/src/server_md.txt index 4fe605f7a5..58dfa7f762 100644 --- a/doc/src/server_md.txt +++ b/doc/src/server_md.txt @@ -66,45 +66,46 @@ files for details on how LAMMPS uses these messages. See the examples/COUPLE/lammps_vasp/vasp_wrapper.py file for an example of how a quantum code (VASP) can use use these messages. -The following code uses these values, defined as enums in LAMMPS: +The following pseudo-code uses these values, defined as enums. enum{SETUP=1,STEP}; -enum{UNITS=1,DIM,NATOMS,NTYPES,BOXLO,BOXHI,BOXTILT,TYPES,COORDS,CHARGE}; -enum{FORCES=1,ENERGY,VIRIAL}; :pre +enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; +enum{FORCES=1,ENERGY,VIRIAL,ERROR}; :pre [Client sends 2 kinds of messages]: -# required fields: NATOMS, NTYPES, BOXLO, BOXHI, TYPES, COORDS -# optional fields: others in 2nd enum above :pre +# required fields: DIM, PERIODICTY, ORIGIN, BOX, NATOMS, NTYPES, TYPES, COORDS +# optional fields: UNITS, CHARGE :pre cs->send(SETUP,nfields) # msgID with nfields :pre -cs->pack_string(UNITS,units) # units = "lj", "real", "metal", etc -cs->pack_int(NATOMS,natoms) # total numer of atoms +cs->pack_int(DIM,dim) # dimension (2,3) of simulation +cs->pack(PERIODICITY,3,xyz) # periodicity flags in 3 dims +cs->pack(ORIGIN,3,origin) # lower-left corner of simulation box +cs->pack(BOX,9,box) # 3 edge vectors of simulation box +cs->pack_int(NATOMS,natoms) # total number of atoms cs->pack_int(NTYPES,ntypes) # number of atom types -cs->pack(BOXLO,3,boxlo) # 3-vector of lower box bounds -cs->pack(BOXHI,3,boxhi) # 3-vector of upper box bounds -cs->pack(BOXTILT,3,boxtilt) # 3-vector of tilt factors for triclinic boxes cs->pack(TYPES,natoms,type) # vector of per-atom types cs->pack(COORDS,3*natoms,x) # vector of 3N atom coords +cs->pack_string(UNITS,units) # units = "lj", "real", "metal", etc cs->pack(CHARGE,natoms,q) # vector of per-atom charge :pre # required fields: COORDS -# optional fields: BOXLO, BOXHI, BOXTILT :pre +# optional fields: ORIGIN, BOX :pre cs->send(STEP,nfields) # msgID with nfields :pre -cs->pack_int(NATOMS,natoms) # total numer of atoms -cs->pack_int(NTYPES,ntypes) # number of atom types -cs->pack(BOXLO,3,boxlo) # 3-vector of lower box bounds -cs->pack(BOXTILT,3,boxtilt) # 3-vector of tilt factors for triclinic boxes :pre +cs->pack(COORDS,3*natoms,x) # vector of 3N atom coords +cs->pack(ORIGIN,3,origin) # lower-left corner of simulation box +cs->pack(BOX,9,box) # 3 edge vectors of simulation box [Server replies to either kind of message]: -cs->send(msgID,3) # msgID = 1 with 3 fields +cs->send(msgID,nfields) # msgID with nfields cs->pack(FORCES,3*Natoms,f) # vector of 3N forces on atoms cs->pack(ENERGY,1,poteng) # total potential energy of system -cs->pack(VIRIAL,6,virial) # global virial tensor (6-vector) :pre +cs->pack(VIRIAL,6,virial) # global virial tensor (6-vector) +cs->pack(ERROR,6,virial) # server had an error (e.g. DFT non-convergence) :pre :line diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp index c4ee24d344..b85c7f8f76 100644 --- a/src/MESSAGE/fix_client_md.cpp +++ b/src/MESSAGE/fix_client_md.cpp @@ -31,7 +31,7 @@ using namespace FixConst; enum{OTHER,REAL,METAL} enum{SETUP=1,STEP}; enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; -enum{FORCES=1,ENERGY,VIRIAL}; +enum{FORCES=1,ENERGY,VIRIAL,ERROR}; /* ---------------------------------------------------------------------- */ diff --git a/src/MESSAGE/fix_client_md.h b/src/MESSAGE/fix_client_md.h index b6561bce41..9c70e4c026 100644 --- a/src/MESSAGE/fix_client_md.h +++ b/src/MESSAGE/fix_client_md.h @@ -37,7 +37,6 @@ class FixClientMD : public Fix { double compute_scalar(); private: - void *cslib; int maxatom,units; double box[3][3]; double eng; diff --git a/src/MESSAGE/server_md.cpp b/src/MESSAGE/server_md.cpp index 98ce71638d..acdc06a0e9 100644 --- a/src/MESSAGE/server_md.cpp +++ b/src/MESSAGE/server_md.cpp @@ -36,7 +36,7 @@ using namespace CSLIB_NS; enum{OTHER,REAL,METAL} enum{SETUP=1,STEP}; enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; -enum{FORCES=1,ENERGY,VIRIAL}; +enum{FORCES=1,ENERGY,VIRIAL,ERROR}; /* ---------------------------------------------------------------------- */ From c01fb5f701581cdde2ae2e5d966ab048b2cdd981 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 24 Aug 2018 14:33:06 -0600 Subject: [PATCH 604/675] new loop structure in pair ATM --- src/MANYBODY/pair_atm.cpp | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index 44587dfdff..b63407dfe9 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -98,6 +98,10 @@ void PairATM::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; + int count1 = 0; + int count2 = 0; + int count3 = 0; + for (ii = 0; ii < inum; ii++) { i = ilist[ii]; xi = x[i][0]; @@ -108,7 +112,10 @@ void PairATM::compute(int eflag, int vflag) jnum = numneigh[i]; jnumm1 = jnum - 1; - for (jj = 0; jj < jnumm1; jj++) { + // for (jj = 0; jj < jnumm1; jj++) { + // replace with this line: + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; j &= NEIGHMASK; rij[0] = x[j][0] - xi; @@ -118,9 +125,15 @@ void PairATM::compute(int eflag, int vflag) rij[2] = x[j][2] - zi; if (rij[0] == 0.0 and rij[1] == 0.0 and rij[2] < 0.0) continue; rij2 = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; + count1++; if (rij2 > cutoff_squared) continue; + count2++; + + //for (kk = jj+1; kk < jnum; kk++) { + // replace with these two lines: + for (kk = 0; kk < jnum; kk++) { + if (kk == jj) continue; - for (kk = jj+1; kk < jnum; kk++) { k = jlist[kk]; k &= NEIGHMASK; @@ -145,6 +158,7 @@ void PairATM::compute(int eflag, int vflag) nu_local = nu[type[i]][type[j]][type[k]]; if (nu_local == 0.0) continue; + count3++; interaction_ddd(nu_local, r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); @@ -163,6 +177,15 @@ void PairATM::compute(int eflag, int vflag) } } + int count = count1; + MPI_Allreduce(&count,&count1,1,MPI_INT,MPI_SUM,world); + count = count2; + MPI_Allreduce(&count,&count2,1,MPI_INT,MPI_SUM,world); + count = count3; + MPI_Allreduce(&count,&count3,1,MPI_INT,MPI_SUM,world); + printf("FORCE %g %d %d %d\n",cutoff_squared,count1,count2,count3); + + if (vflag_fdotr) virial_fdotr_compute(); } From 0661a800a7dc4efb88b20366026f899bd316f480 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 24 Aug 2018 14:57:49 -0600 Subject: [PATCH 605/675] lammps.1: add options block --- doc/lammps.1 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/lammps.1 b/doc/lammps.1 index 8f0ba78fdd..d49650bfaa 100644 --- a/doc/lammps.1 +++ b/doc/lammps.1 @@ -24,6 +24,10 @@ atomic, meso, or continuum scale. See http://lammps.sandia.gov/ for documentation. +.SH OPTIONS +See https://lammps.sandia.gov/doc/Run_options.html for details on +command-line options. + .SH COPYRIGHT © 2003--2018 Sandia Corporation From 38a998c03cf539dfe7782329d509e501cd3d8a4b Mon Sep 17 00:00:00 2001 From: Daniel Schwen Date: Fri, 24 Aug 2018 13:09:36 -0600 Subject: [PATCH 606/675] Fix misc. warnings (#1076) --- src/BODY/body_rounded_polyhedron.cpp | 6 ++--- src/BODY/fix_wall_body_polygon.cpp | 16 +++++------- src/BODY/fix_wall_body_polyhedron.cpp | 15 ++++------- src/BODY/pair_body_rounded_polygon.cpp | 11 ++++---- src/BODY/pair_body_rounded_polyhedron.cpp | 19 +++++++------- src/RIGID/fix_rigid.cpp | 1 - src/RIGID/fix_rigid_nh.cpp | 4 +-- src/RIGID/fix_rigid_nh_small.cpp | 2 +- src/SNAP/compute_snav_atom.h | 1 - src/SPIN/compute_spin.h | 1 - src/USER-BOCS/fix_bocs.cpp | 2 -- src/USER-DPD/fix_rx.cpp | 4 +-- src/USER-INTEL/fix_intel.cpp | 2 ++ src/USER-INTEL/fix_nh_intel.cpp | 1 - src/USER-INTEL/fix_nve_asphere_intel.cpp | 7 ----- src/USER-INTEL/intel_intrinsics_airebo.h | 2 +- src/USER-INTEL/nbin_intel.cpp | 7 +---- src/USER-INTEL/npair_full_bin_ghost_intel.cpp | 8 ++---- src/USER-INTEL/npair_intel.cpp | 6 ++--- src/USER-MANIFOLD/manifold_sphere.h | 2 +- src/USER-MGPT/mgpt_linalg.cpp | 26 +++++++++---------- src/USER-MISC/fix_bond_react.cpp | 1 - src/USER-MOFFF/angle_cosine_buck6d.cpp | 2 +- .../improper_inversion_harmonic.cpp | 5 ++-- src/USER-SMD/fix_smd_setvel.h | 1 - .../fix_smd_tlsph_reference_configuration.cpp | 2 +- src/fix_halt.cpp | 2 +- src/library.cpp | 2 +- 28 files changed, 63 insertions(+), 95 deletions(-) diff --git a/src/BODY/body_rounded_polyhedron.cpp b/src/BODY/body_rounded_polyhedron.cpp index 5ba4bce8e8..0e2ebbed83 100644 --- a/src/BODY/body_rounded_polyhedron.cpp +++ b/src/BODY/body_rounded_polyhedron.cpp @@ -96,7 +96,7 @@ int BodyRoundedPolyhedron::nedges(AtomVecBody::Bonus *bonus) { int nvertices = bonus->ivalue[0]; int nedges = bonus->ivalue[1]; - int nfaces = bonus->ivalue[2]; + //int nfaces = bonus->ivalue[2]; if (nvertices == 1) return 0; else if (nvertices == 2) return 1; return nedges; //(nvertices+nfaces-2); // Euler's polyon formula: V-E+F=2 @@ -463,7 +463,7 @@ void BodyRoundedPolyhedron::output(int ibonus, int m, double *values) int BodyRoundedPolyhedron::image(int ibonus, double flag1, double /*flag2*/, int *&ivec, double **&darray) { - int j, nelements; + int nelements; double p[3][3]; double *x, rrad; @@ -488,7 +488,7 @@ int BodyRoundedPolyhedron::image(int ibonus, double flag1, double /*flag2*/, nelements = nvertices; } else { - int nfaces = bonus->ivalue[2]; + //int nfaces = bonus->ivalue[2]; int nedges = bonus->ivalue[1]; //nvertices + nfaces - 2; if (nvertices == 2) nedges = 1; // special case: rods double* edge_ends = &bonus->dvalue[3*nvertices]; diff --git a/src/BODY/fix_wall_body_polygon.cpp b/src/BODY/fix_wall_body_polygon.cpp index f217db774e..3f8c08b6bd 100644 --- a/src/BODY/fix_wall_body_polygon.cpp +++ b/src/BODY/fix_wall_body_polygon.cpp @@ -310,9 +310,6 @@ void FixWallBodyPolygon::post_force(int /*vflag*/) rsq = dx*dx + dy*dy + dz*dz; if (rsq > radius[i]*radius[i]) continue; - double r = sqrt(rsq); - double rsqinv = 1.0 / rsq; - if (dnum[i] == 0) body2space(i); npi = dnum[i]; ifirst = dfirst[i]; @@ -478,9 +475,8 @@ int FixWallBodyPolygon::vertex_against_wall(int i, double wall_pos, Contact* contact_list, int &num_contacts, double* /*facc*/) { int ni, npi, ifirst, interact; - double xpi[3], xpj[3], dist, eradi, rradi; - double fx, fy, fz, rx, ry, rz; - int nlocal = atom->nlocal; + double xpi[3], eradi, rradi; + double fx, fy, fz; npi = dnum[i]; ifirst = dfirst[i]; @@ -499,9 +495,9 @@ int FixWallBodyPolygon::vertex_against_wall(int i, double wall_pos, xpi[1] = x[i][1] + discrete[ifirst+ni][1]; xpi[2] = x[i][2] + discrete[ifirst+ni][2]; - int mode, contact, p2vertex; - double d, R, hi[3], t, delx, dely, delz, fpair, shift; - double xj[3], rij; + int mode, contact; + double d, R, hi[3], delx, dely, delz, fpair; + double rij; // compute the distance from the vertex xpi to the wall @@ -671,7 +667,7 @@ void FixWallBodyPolygon::contact_forces(Contact& contact, double j_a, double** x, double** v, double** angmom, double** f, double** torque, double* vwall, double* facc) { - int ibody,ibonus,ifirst, jefirst, ni; + int ibody,ibonus,ifirst, ni; double fx,fy,fz,delx,dely,delz,rsq,rsqinv; double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; double fn[3],ft[3],vi[3]; diff --git a/src/BODY/fix_wall_body_polyhedron.cpp b/src/BODY/fix_wall_body_polyhedron.cpp index b90731acf6..5a066b88bb 100644 --- a/src/BODY/fix_wall_body_polyhedron.cpp +++ b/src/BODY/fix_wall_body_polyhedron.cpp @@ -213,7 +213,7 @@ void FixWallBodyPolyhedron::setup(int vflag) void FixWallBodyPolyhedron::post_force(int /*vflag*/) { - double vwall[3],dx,dy,dz,del1,del2,delxy,delr,rsq,eradi,rradi,wall_pos; + double vwall[3],dx,dy,dz,del1,del2,rsq,eradi,rradi,wall_pos; int i,ni,npi,ifirst,nei,iefirst,nfi,iffirst,side; double facc[3]; @@ -325,9 +325,6 @@ void FixWallBodyPolyhedron::post_force(int /*vflag*/) rsq = dx*dx + dy*dy + dz*dz; if (rsq > radius[i]*radius[i]) continue; - double r = sqrt(rsq); - double rsqinv = 1.0 / rsq; - if (dnum[i] == 0) body2space(i); npi = dnum[i]; ifirst = dfirst[i]; @@ -359,8 +356,7 @@ void FixWallBodyPolyhedron::post_force(int /*vflag*/) edge[iefirst+ni][5] = 0; } - int interact, num_contacts, done; - double delta_a, delta_ua, j_a; + int interact, num_contacts; Contact contact_list[MAX_CONTACTS]; num_contacts = 0; @@ -550,7 +546,6 @@ int FixWallBodyPolyhedron::edge_against_wall(int i, double wall_pos, { int ni, nei, mode, contact; double rradi; - int nlocal = atom->nlocal; nei = ednum[i]; rradi = rounded_radius[i]; @@ -702,10 +697,10 @@ void FixWallBodyPolyhedron::contact_forces(int ibody, double fx, double fy, double fz, double** x, double** v, double** angmom, double** f, double** torque, double* vwall) { - int ibonus,jbonus; + int ibonus; double fxt,fyt,fzt,rsq,rsqinv; double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; - double fn[3],ft[3],vi[3],vj[3]; + double fn[3],ft[3],vi[3]; double *quat, *inertia; AtomVecBody::Bonus *bonus; @@ -787,7 +782,7 @@ void FixWallBodyPolyhedron::contact_forces(Contact& contact, double j_a, double** x, double** v, double** angmom, double** f, double** torque, double* vwall, double* facc) { - int ibody,ibonus,ifirst, jefirst, ni; + int ibody,ibonus,ifirst,ni; double fx,fy,fz,delx,dely,delz,rsq,rsqinv; double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; double fn[3],ft[3],vi[3]; diff --git a/src/BODY/pair_body_rounded_polygon.cpp b/src/BODY/pair_body_rounded_polygon.cpp index 97d3ad5606..6a176f1083 100644 --- a/src/BODY/pair_body_rounded_polygon.cpp +++ b/src/BODY/pair_body_rounded_polygon.cpp @@ -105,10 +105,9 @@ void PairBodyRoundedPolygon::compute(int eflag, int vflag) int i,j,ii,jj,inum,jnum,itype,jtype; int ni,nj,npi,npj,ifirst,jfirst; int nei,nej,iefirst,jefirst; - double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fx,fy,fz; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl; double rsq,rsqinv,r,radi,radj,eradi,eradj,rradi,rradj,k_nij,k_naij; - double xi[3],xj[3],fi[3],fj[3],ti[3],tj[3],facc[3]; - double *dxi,*dxj; + double xi[3],xj[3],facc[3]; int *ilist,*jlist,*numneigh,**firstneigh; evdwl = 0.0; @@ -709,9 +708,8 @@ int PairBodyRoundedPolygon::vertex_against_edge(int i, int j, int ni, npi, ifirst, nei, iefirst; int nj, npj, jfirst, nej, jefirst; double xpi[3], xpj[3], dist, eradi, eradj, rradi, rradj; - double fx, fy, fz, rx, ry, rz, energy; + double fx, fy, fz, energy; int interact; - int nlocal = atom->nlocal; npi = dnum[i]; ifirst = dfirst[i]; @@ -758,7 +756,7 @@ int PairBodyRoundedPolygon::vertex_against_edge(int i, int j, int mode, contact, p2vertex; double d, R, hi[3], t, delx, dely, delz, fpair, shift; - double xj[3], rij; + double rij; // loop through body j's edges @@ -781,6 +779,7 @@ int PairBodyRoundedPolygon::vertex_against_edge(int i, int j, if (mode == VERTEXI) p2vertex = edge[jefirst+nj][0]; else if (mode == VERTEXJ) p2vertex = edge[jefirst+nj][1]; + // double xj[3]; // p2.body2space(p2vertex, xj); xpj[0] = x[j][0] + discrete[jfirst+p2vertex][0]; xpj[1] = x[j][1] + discrete[jfirst+p2vertex][1]; diff --git a/src/BODY/pair_body_rounded_polyhedron.cpp b/src/BODY/pair_body_rounded_polyhedron.cpp index 051be762e5..eea2aa3724 100644 --- a/src/BODY/pair_body_rounded_polyhedron.cpp +++ b/src/BODY/pair_body_rounded_polyhedron.cpp @@ -603,7 +603,7 @@ void PairBodyRoundedPolyhedron::sphere_against_sphere(int ibody, int jbody, { double rradi,rradj,contact_dist; double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; - double rij,rsqinv,R,fx,fy,fz,fn[3],ft[3],fpair,shift,energy; + double rij,rsqinv,R,fx,fy,fz,fn[3],ft[3],fpair,energy; int nlocal = atom->nlocal; int newton_pair = force->newton_pair; @@ -685,7 +685,7 @@ void PairBodyRoundedPolyhedron::sphere_against_edge(int ibody, int jbody, { int ni,nei,ifirst,iefirst,npi1,npi2,ibonus; double xi1[3],xi2[3],vti[3],h[3],fn[3],ft[3],d,t; - double delx,dely,delz,rsq,rij,rsqinv,R,fx,fy,fz,fpair,shift,energy; + double delx,dely,delz,rsq,rij,rsqinv,R,fx,fy,fz,fpair,energy; double rradi,rradj,contact_dist; double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; double *quat, *inertia; @@ -835,7 +835,7 @@ void PairBodyRoundedPolyhedron::sphere_against_face(int ibody, int jbody, { int ni,nfi,inside,ifirst,iffirst,npi1,npi2,npi3,ibonus,tmp; double xi1[3],xi2[3],xi3[3],ui[3],vi[3],vti[3],n[3],h[3],fn[3],ft[3],d; - double delx,dely,delz,rsq,rij,rsqinv,R,fx,fy,fz,fpair,shift,energy; + double delx,dely,delz,rsq,rij,rsqinv,R,fx,fy,fz,fpair,energy; double rradi,rradj,contact_dist; double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; double *quat, *inertia; @@ -988,7 +988,7 @@ int PairBodyRoundedPolyhedron::edge_against_edge(int ibody, int jbody, int itype, int jtype, double** x, Contact* contact_list, int &num_contacts, double &evdwl, double* facc) { - int ni,nei,nj,nej,contact,interact; + int ni,nei,nj,nej,interact; double rradi,rradj,energy; nei = ednum[ibody]; @@ -1045,7 +1045,7 @@ int PairBodyRoundedPolyhedron::edge_against_face(int ibody, int jbody, int itype, int jtype, double** x, Contact* contact_list, int &num_contacts, double &evdwl, double* facc) { - int ni,nei,nj,nfj,contact,interact; + int ni,nei,nj,nfj,interact; double rradi,rradj,energy; nei = ednum[ibody]; @@ -1118,7 +1118,7 @@ int PairBodyRoundedPolyhedron::interaction_edge_to_edge(int ibody, int ifirst,iefirst,jfirst,jefirst,npi1,npi2,npj1,npj2,interact; double xi1[3],xi2[3],xpj1[3],xpj2[3]; double r,t1,t2,h1[3],h2[3]; - double contact_dist, shift; + double contact_dist; double** x = atom->x; double** v = atom->v; @@ -1314,7 +1314,7 @@ int PairBodyRoundedPolyhedron::interaction_face_to_edge(int ibody, // determine the intersection of the edge to the face - double hi1[3], hi2[3], d1, d2, contact_dist, shift; + double hi1[3], hi2[3], d1, d2, contact_dist; int inside1 = 0; int inside2 = 0; @@ -2345,9 +2345,8 @@ void PairBodyRoundedPolyhedron::find_unique_contacts(Contact* contact_list, void PairBodyRoundedPolyhedron::sanity_check() { - double x1[3],x2[3],x3[3],x4[3],h_a[3],h_b[3],d_a,d_b,u[3],v[3],n[3]; + double x1[3],x2[3],x3[3],x4[3],h_a[3],h_b[3],d_a,d_b; double a[3],b[3],t_a,t_b; - int inside_a, inside_b; x1[0] = 0; x1[1] = 3; x1[2] = 0; x2[0] = 3; x2[1] = 0; x2[2] = 0; @@ -2364,9 +2363,11 @@ void PairBodyRoundedPolyhedron::sanity_check() h_a[0], h_a[1], h_a[2], h_b[0], h_b[1], h_b[2], t_a, t_b, d_a, d_b); */ /* + int inside_a, inside_b; int mode = edge_face_intersect(x1, x2, x3, a, b, h_a, h_b, d_a, d_b, inside_a, inside_b); + double u[3],v[3],n[3]; MathExtra::sub3(x2, x1, u); MathExtra::sub3(x3, x1, v); MathExtra::cross3(u, v, n); diff --git a/src/RIGID/fix_rigid.cpp b/src/RIGID/fix_rigid.cpp index c0f33346bb..c15a909ada 100644 --- a/src/RIGID/fix_rigid.cpp +++ b/src/RIGID/fix_rigid.cpp @@ -1030,7 +1030,6 @@ void FixRigid::enforce2d() void FixRigid::compute_forces_and_torques() { int i,ibody; - double dtfm; // sum over atoms to get force and torque on rigid body diff --git a/src/RIGID/fix_rigid_nh.cpp b/src/RIGID/fix_rigid_nh.cpp index 96c44d15b5..4dceb1b8b4 100644 --- a/src/RIGID/fix_rigid_nh.cpp +++ b/src/RIGID/fix_rigid_nh.cpp @@ -591,9 +591,9 @@ void FixRigidNH::initial_integrate(int vflag) void FixRigidNH::final_integrate() { - int i,ibody; + int ibody; double tmp,scale_t[3],scale_r; - double dtfm,xy,xz,yz; + double dtfm; double mbody[3],tbody[3],fquat[4]; double dtf2 = dtf * 2.0; diff --git a/src/RIGID/fix_rigid_nh_small.cpp b/src/RIGID/fix_rigid_nh_small.cpp index 135a1fb4bd..5016d3f168 100644 --- a/src/RIGID/fix_rigid_nh_small.cpp +++ b/src/RIGID/fix_rigid_nh_small.cpp @@ -618,7 +618,7 @@ void FixRigidNHSmall::initial_integrate(int vflag) void FixRigidNHSmall::final_integrate() { - int i,ibody; + int ibody; double tmp,scale_t[3],scale_r; double dtfm; double mbody[3],tbody[3],fquat[4]; diff --git a/src/SNAP/compute_snav_atom.h b/src/SNAP/compute_snav_atom.h index 2eb9fb804f..7d39786ef9 100644 --- a/src/SNAP/compute_snav_atom.h +++ b/src/SNAP/compute_snav_atom.h @@ -45,7 +45,6 @@ class ComputeSNAVAtom : public Compute { double *radelem; double *wjelem; class SNA** snaptr; - double cutmax; int quadraticflag; }; diff --git a/src/SPIN/compute_spin.h b/src/SPIN/compute_spin.h index 59f0ce2876..b57876b7a0 100644 --- a/src/SPIN/compute_spin.h +++ b/src/SPIN/compute_spin.h @@ -33,7 +33,6 @@ class ComputeSpin : public Compute { private: double kb,hbar; - int usecenter; void allocate(); }; diff --git a/src/USER-BOCS/fix_bocs.cpp b/src/USER-BOCS/fix_bocs.cpp index eacfc83b40..03fc94ae58 100644 --- a/src/USER-BOCS/fix_bocs.cpp +++ b/src/USER-BOCS/fix_bocs.cpp @@ -625,11 +625,9 @@ void FixBocs::init() // NJD MRD 2 functions int FixBocs::read_F_table( char *filename, int p_basis_type ) { - char separator = ','; FILE *fpi; int N_columns = 2, n_entries = 0, i; float f1, f2; - double n1, n2; int test_sscanf; double **data = (double **) calloc(N_columns,sizeof(double *)); char * line = (char *) calloc(200,sizeof(char)); diff --git a/src/USER-DPD/fix_rx.cpp b/src/USER-DPD/fix_rx.cpp index 4dae89b491..4a78bb30d2 100644 --- a/src/USER-DPD/fix_rx.cpp +++ b/src/USER-DPD/fix_rx.cpp @@ -729,7 +729,7 @@ void FixRX::setup_pre_force(int /*vflag*/) void FixRX::pre_force(int /*vflag*/) { - TimerType timer_start = getTimeStamp(); + //TimerType timer_start = getTimeStamp(); int nlocal = atom->nlocal; int nghost = atom->nghost; @@ -808,7 +808,7 @@ void FixRX::pre_force(int /*vflag*/) comm->forward_comm_fix(this); if(localTempFlag) delete [] dpdThetaLocal; - TimerType timer_stop = getTimeStamp(); + //TimerType timer_stop = getTimeStamp(); double time_ODE = getElapsedTime(timer_localTemperature, timer_ODE); diff --git a/src/USER-INTEL/fix_intel.cpp b/src/USER-INTEL/fix_intel.cpp index 4c703da833..3a67b60632 100644 --- a/src/USER-INTEL/fix_intel.cpp +++ b/src/USER-INTEL/fix_intel.cpp @@ -724,11 +724,13 @@ void FixIntel::add_oresults(const ft * _noalias const f_in, lmp_ft * _noalias const f = (lmp_ft *) lmp->atom->f[0] + out_offset; if (atom->torque) { if (f_in[1].w) + { if (f_in[1].w == 1) error->all(FLERR,"Bad matrix inversion in mldivide3"); else error->all(FLERR, "Sphere particles not yet supported for gayberne/intel"); + } } int packthreads; diff --git a/src/USER-INTEL/fix_nh_intel.cpp b/src/USER-INTEL/fix_nh_intel.cpp index 44253e8bb0..bf4764f104 100644 --- a/src/USER-INTEL/fix_nh_intel.cpp +++ b/src/USER-INTEL/fix_nh_intel.cpp @@ -464,7 +464,6 @@ void FixNHIntel::nve_x() { double * _noalias const x = atom->x[0]; double * _noalias const v = atom->v[0]; - const double * _noalias const f = atom->f[0]; // x update by full step only for atoms in group diff --git a/src/USER-INTEL/fix_nve_asphere_intel.cpp b/src/USER-INTEL/fix_nve_asphere_intel.cpp index a83306def5..7eeb8a1635 100644 --- a/src/USER-INTEL/fix_nve_asphere_intel.cpp +++ b/src/USER-INTEL/fix_nve_asphere_intel.cpp @@ -81,10 +81,6 @@ void FixNVEAsphereIntel::setup(int vflag) void FixNVEAsphereIntel::initial_integrate(int /*vflag*/) { - double dtfm; - double inertia[3],omega[3]; - double *shape,*quat; - AtomVecEllipsoid::Bonus *bonus = avec->bonus; int *ellipsoid = atom->ellipsoid; double * _noalias const x = atom->x[0]; @@ -94,7 +90,6 @@ void FixNVEAsphereIntel::initial_integrate(int /*vflag*/) double **angmom = atom->angmom; double **torque = atom->torque; - double *rmass = atom->rmass; int nlocal = atom->nlocal; if (igroup == atom->firstgroup) nlocal = atom->nfirst; @@ -143,8 +138,6 @@ void FixNVEAsphereIntel::final_integrate() { if (neighbor->ago == 0) reset_dt(); - double dtfm; - double * _noalias const v = atom->v[0]; const double * _noalias const f = atom->f[0]; double * _noalias const angmom = atom->angmom[0]; diff --git a/src/USER-INTEL/intel_intrinsics_airebo.h b/src/USER-INTEL/intel_intrinsics_airebo.h index 2c86ad3520..b20f9c8ad1 100644 --- a/src/USER-INTEL/intel_intrinsics_airebo.h +++ b/src/USER-INTEL/intel_intrinsics_airebo.h @@ -2243,7 +2243,7 @@ public: FVEC_BINOP(*, mul) FVEC_BINOP(/, div) - VEC_INLINE static void gather_prefetch0(const ivec &idx, const void * mem) {} + VEC_INLINE static void gather_prefetch0(const ivec & /*idx*/, const void * /*mem*/) {} }; class avec { diff --git a/src/USER-INTEL/nbin_intel.cpp b/src/USER-INTEL/nbin_intel.cpp index e071b141fe..789fa35b42 100644 --- a/src/USER-INTEL/nbin_intel.cpp +++ b/src/USER-INTEL/nbin_intel.cpp @@ -192,15 +192,10 @@ void NBinIntel::bin_atoms(IntelBuffers * buffers) { // ---------- Bin Atoms ------------- _fix->start_watch(TIME_HOST_NEIGHBOR); - const ATOM_T * _noalias const x = buffers->get_x(); + //const ATOM_T * _noalias const x = buffers->get_x(); int * _noalias const atombin = this->_atombin; int * _noalias const binpacked = this->_binpacked; - - const double sboxlo0 = bboxlo[0] + mbinxlo/bininvx; - const double sboxlo1 = bboxlo[1] + mbinylo/bininvy; - const double sboxlo2 = bboxlo[2] + mbinzlo/bininvz; - int i, ibin; for (i = 0; i < mbins; i++) binhead[i] = -1; diff --git a/src/USER-INTEL/npair_full_bin_ghost_intel.cpp b/src/USER-INTEL/npair_full_bin_ghost_intel.cpp index 8be2165deb..74a04f0e7d 100644 --- a/src/USER-INTEL/npair_full_bin_ghost_intel.cpp +++ b/src/USER-INTEL/npair_full_bin_ghost_intel.cpp @@ -115,7 +115,6 @@ void NPairFullBinGhostIntel::fbi(const int /*offload*/, NeighList * list, int nall_t = nall; const int aend = nall; - const int pack_width = _fix->nbor_pack_width(); const ATOM_T * _noalias const x = buffers->get_x(); int * _noalias const firstneigh = buffers->firstneigh(list); const int e_nall = nall_t; @@ -155,9 +154,6 @@ void NPairFullBinGhostIntel::fbi(const int /*offload*/, NeighList * list, tagint * const molecule = atom->molecule; #endif - int *molindex = atom->molindex; - int *molatom = atom->molatom; - Molecule **onemols = atom->avec->onemols; int moltemplate; if (molecular == 2) moltemplate = 1; else moltemplate = 0; @@ -167,8 +163,8 @@ void NPairFullBinGhostIntel::fbi(const int /*offload*/, NeighList * list, int tnum; int *overflow; - double *timer_compute; #ifdef _LMP_INTEL_OFFLOAD + double *timer_compute; if (offload) { timer_compute = _fix->off_watch_neighbor(); tnum = buffers->get_off_threads(); @@ -311,7 +307,7 @@ void NPairFullBinGhostIntel::fbi(const int /*offload*/, NeighList * list, int * _noalias const ttag = ncachetag + toffs; // loop over all atoms in other bins in stencil, store every pair - int istart, icount, ncount, oldbin = -9999999, lane, max_chunk; + int ncount, oldbin = -9999999; for (int i = ifrom; i < ito; i++) { const flt_t xtmp = x[i].x; const flt_t ytmp = x[i].y; diff --git a/src/USER-INTEL/npair_intel.cpp b/src/USER-INTEL/npair_intel.cpp index d59cd2304a..6d4529752a 100644 --- a/src/USER-INTEL/npair_intel.cpp +++ b/src/USER-INTEL/npair_intel.cpp @@ -109,8 +109,8 @@ void NPairIntel::bin_newton(const int /*offload*/, NeighList *list, int tnum; int *overflow; - double *timer_compute; #ifdef _LMP_INTEL_OFFLOAD + double *timer_compute; if (offload) { timer_compute = _fix->off_watch_neighbor(); tnum = buffers->get_off_threads(); @@ -265,8 +265,9 @@ void NPairIntel::bin_newton(const int /*offload*/, NeighList *list, int * _noalias itjtype; // loop over all atoms in other bins in stencil, store every pair - int istart, icount, ncount, oldbin = -9999999, lane, max_chunk; + int istart, icount, ncount, oldbin = -9999999; #ifdef LMP_INTEL_3BODY_FAST + int lane, max_chunk; if (THREE) { lane = 0; max_chunk = 0; @@ -579,7 +580,6 @@ void NPairIntel::bin_newton(const int /*offload*/, NeighList *list, int ns; if (THREE) { - int alln = n; ns = n - pack_offset; atombin[i] = ns; ns += n2 - pack_offset - maxnbors; diff --git a/src/USER-MANIFOLD/manifold_sphere.h b/src/USER-MANIFOLD/manifold_sphere.h index 5d4ae55fda..d9cd46c9c3 100644 --- a/src/USER-MANIFOLD/manifold_sphere.h +++ b/src/USER-MANIFOLD/manifold_sphere.h @@ -40,7 +40,7 @@ namespace user_manifold { nn[2] = 2*x[2]; } - virtual void H( double *x, double h[3][3] ) + virtual void H( double * /*x*/, double h[3][3] ) { h[0][1] = h[0][2] = h[1][0] = h[1][2] = h[2][0] = h[2][1] = 0.0; h[0][0] = h[1][1] = h[2][2] = 2.0; diff --git a/src/USER-MGPT/mgpt_linalg.cpp b/src/USER-MGPT/mgpt_linalg.cpp index 94a4e21ea6..68701037f4 100644 --- a/src/USER-MGPT/mgpt_linalg.cpp +++ b/src/USER-MGPT/mgpt_linalg.cpp @@ -81,8 +81,8 @@ #define const #endif static void transprod_generic(const double * restrict A, - const double * restrict B, - double * restrict C) { + const double * restrict B, + double * restrict C) { const int lda = 8,n = mgpt_linalg::matrix_size; int i,j,k; double s; @@ -90,15 +90,15 @@ static void transprod_generic(const double * restrict A, for(j = 0; jnatoms; i++) { if (landlocked_atoms[i][myrxn] == 0) { - int twomol_atomi = i+1; for (int j = 0; j < twomol->num_bond[i]; j++) { int twomol_atomj = twomol->bond_atom[i][j]; if (landlocked_atoms[twomol_atomj-1][myrxn] == 0) { diff --git a/src/USER-MOFFF/angle_cosine_buck6d.cpp b/src/USER-MOFFF/angle_cosine_buck6d.cpp index 352c28be4d..3f87aeb757 100644 --- a/src/USER-MOFFF/angle_cosine_buck6d.cpp +++ b/src/USER-MOFFF/angle_cosine_buck6d.cpp @@ -56,7 +56,7 @@ AngleCosineBuck6d::~AngleCosineBuck6d() void AngleCosineBuck6d::compute(int eflag, int vflag) { - int i,i1,i2,i3,n,type,itype,jtype; + int i1,i2,i3,n,type,itype,jtype; double delx1,dely1,delz1,delx2,dely2,delz2; double eangle,f1[3],f3[3]; double rsq1,rsq2,r1,r2,c,s,a,a11,a12,a22; diff --git a/src/USER-MOFFF/improper_inversion_harmonic.cpp b/src/USER-MOFFF/improper_inversion_harmonic.cpp index 53a7b4729a..9608d58054 100644 --- a/src/USER-MOFFF/improper_inversion_harmonic.cpp +++ b/src/USER-MOFFF/improper_inversion_harmonic.cpp @@ -139,7 +139,6 @@ void ImproperInversionHarmonic::invang(const int &i1,const int &i2, double upx,upy,upz,upn,rup,umx,umy,umz,umn,rum,wwr; double rucb,rudb,rvcb,rvdb,rupupn,rumumn; - double **x = atom->x; double **f = atom->f; int nlocal = atom->nlocal; int newton_bond = force->newton_bond; @@ -242,7 +241,7 @@ void ImproperInversionHarmonic::invang(const int &i1,const int &i2, f[i4][2] += f4[2]; } - double rb1x, rb1y, rb1z, rb2x, rb2y, rb2z, rb3x, rb3y, rb3z; + double rb3x, rb3y, rb3z; if (evflag) rb3x = vb1x - vb2x; @@ -253,7 +252,7 @@ void ImproperInversionHarmonic::invang(const int &i1,const int &i2, vb3x,vb3y,vb3z, vb2x,vb2y,vb2z, rb3x,rb3y,rb3z); - } +} /* ---------------------------------------------------------------------- */ diff --git a/src/USER-SMD/fix_smd_setvel.h b/src/USER-SMD/fix_smd_setvel.h index b987a56f6c..a3e650e682 100644 --- a/src/USER-SMD/fix_smd_setvel.h +++ b/src/USER-SMD/fix_smd_setvel.h @@ -56,7 +56,6 @@ class FixSMDSetVel : public Fix { int xvar,yvar,zvar,xstyle,ystyle,zstyle; double foriginal[3],foriginal_all[3]; int force_flag; - int nlevels_respa; int maxatom; double **sforce; diff --git a/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp b/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp index eba094da53..8af12acd99 100644 --- a/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp +++ b/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp @@ -149,7 +149,7 @@ void FixSMD_TLSPH_ReferenceConfiguration::pre_exchange() { if (updateFlag > 0) { if (comm->me == 0) { - printf("**** updating ref config at step: %ld\n", update->ntimestep); + printf("**** updating ref config at step: " BIGINT_FORMAT "\n", update->ntimestep); } for (i = 0; i < nlocal; i++) { diff --git a/src/fix_halt.cpp b/src/fix_halt.cpp index 7de09a0fa4..983f993ae8 100644 --- a/src/fix_halt.cpp +++ b/src/fix_halt.cpp @@ -184,7 +184,7 @@ void FixHalt::end_of_step() // print message with ID of fix halt in case multiple instances char str[128]; - sprintf(str,"Fix halt %s condition met on step %ld with value %g", + sprintf(str,"Fix halt %s condition met on step " BIGINT_FORMAT " with value %g", id,update->ntimestep,attvalue); if (eflag == HARD) { diff --git a/src/library.cpp b/src/library.cpp index 18f7005116..83e13efd08 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1515,7 +1515,7 @@ void lammps_create_atoms(void *ptr, int n, tagint *id, int *type, if (lmp->atom->natoms != natoms_prev + n) { char str[128]; sprintf(str,"Library warning in lammps_create_atoms, " - "invalid total atoms %ld %ld",lmp->atom->natoms,natoms_prev+n); + "invalid total atoms " BIGINT_FORMAT " %lld",lmp->atom->natoms,natoms_prev+n); if (lmp->comm->me == 0) lmp->error->warning(FLERR,str); } From 9ed6d0a9d1bb1c385d079e3b3c231176a6662cf6 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 24 Aug 2018 15:27:15 -0600 Subject: [PATCH 607/675] cmake: sort package in header --- cmake/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 460d177c92..c684c9df23 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -1008,7 +1008,9 @@ include_directories(${LAMMPS_STYLE_HEADERS_DIR}) ###################################### set(temp "#ifndef LMP_INSTALLED_PKGS_H\n#define LMP_INSTALLED_PKGS_H\n") set(temp "${temp}const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n") -foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES}) +set(temp_PKG_LIST ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES}) +list(SORT temp_PKG_LIST) +foreach(PKG ${temp_PKG_LIST}) if(PKG_${PKG}) set(temp "${temp} \"${PKG}\",\n") endif() From c4771291650e032e4b67681a99416ebfc2913c1c Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 24 Aug 2018 16:17:07 -0600 Subject: [PATCH 608/675] real <-> metal unit conversion factors --- src/MESSAGE/fix_client_md.cpp | 7 +++---- src/MESSAGE/server_md.cpp | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp index b85c7f8f76..97d0436a27 100644 --- a/src/MESSAGE/fix_client_md.cpp +++ b/src/MESSAGE/fix_client_md.cpp @@ -64,13 +64,12 @@ FixClientMD::FixClientMD(LAMMPS *lmp, int narg, char **arg) : // unit conversion factors for REAL // otherwise not needed + // message received in METAL units, convert to local REAL units fconvert = econvert = vconvert = 1.0; if (units == REAL) { - // NOTE: still need to set these - fconvert = 1.0; - econvert = 1.0; - vconvert = 1.0; + fconvert = econvert = 23.06035; + vconvert = 0.986923; } } diff --git a/src/MESSAGE/server_md.cpp b/src/MESSAGE/server_md.cpp index acdc06a0e9..340431021b 100644 --- a/src/MESSAGE/server_md.cpp +++ b/src/MESSAGE/server_md.cpp @@ -55,13 +55,12 @@ ServerMD::ServerMD(LAMMPS *lmp) : Pointers(lmp) // unit conversion factors for REAL // otherwise not needed + // local computation in REAL units, send message in METAL units fconvert = econvert = vconvert = 1.0; if (units == REAL) { - // NOTE: still need to set these - fconvert = 1.0; - econvert = 1.0; - vconvert = 1.0; + fconvert = econvert = 1.0 / 23.06035; + vconvert = 1.0 / 0.986923; } fcopy = NULL; From b05aa62c49f27374281b56bd2f21330890b7e542 Mon Sep 17 00:00:00 2001 From: jrgissing Date: Sat, 25 Aug 2018 15:46:48 -0600 Subject: [PATCH 609/675] correctly exclude atoms from simultaneous competing reactions --- src/USER-MISC/fix_bond_react.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/USER-MISC/fix_bond_react.cpp b/src/USER-MISC/fix_bond_react.cpp index 5ce1f11475..c3865ce869 100644 --- a/src/USER-MISC/fix_bond_react.cpp +++ b/src/USER-MISC/fix_bond_react.cpp @@ -1862,13 +1862,13 @@ void FixBondReact::glove_ghostcheck() // noteworthy: it's only relevant for parallel // here we add glove to either local_mega_glove or ghostly_mega_glove - int ghostly = 0; - for (int i = 0; i < onemol->natoms; i++) { - if (atom->map(glove[i][1]) >= atom->nlocal) { - ghostly = 1; - break; - } - } + int ghostly = 1; + //for (int i = 0; i < onemol->natoms; i++) { + // if (atom->map(glove[i][1]) >= atom->nlocal) { + // ghostly = 1; + // break; + // } + //} if (ghostly == 1) { ghostly_mega_glove[0][ghostly_num_mega] = rxnID; From 5189bc4f4b8ba1dcc13dff36e903b296cc75f780 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Sun, 26 Aug 2018 07:57:49 -0600 Subject: [PATCH 610/675] cmake: fix install of potential files Add an '/' at the end avoids the double potentials/ subdir. --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 51997593db..76edcf858c 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -1130,7 +1130,7 @@ endif() # Install potential files in data directory ############################################################################### set(LAMMPS_POTENTIALS_DIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps/potentials) -install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials DESTINATION ${CMAKE_INSTALL_DATADIR}/lammps/potentials) +install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials/ DESTINATION ${LAMMPS_POTENTIALS_DIR}) configure_file(etc/profile.d/lammps.sh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh @ONLY) configure_file(etc/profile.d/lammps.csh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh @ONLY) From dbc0f0eea01d7ae7d83247cc20e2a52539b05a29 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 27 Aug 2018 12:17:57 -0400 Subject: [PATCH 611/675] Ensure generated style headers are sorted --- cmake/Modules/StyleHeaderUtils.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmake/Modules/StyleHeaderUtils.cmake b/cmake/Modules/StyleHeaderUtils.cmake index 29ea372597..2b00a81c8d 100644 --- a/cmake/Modules/StyleHeaderUtils.cmake +++ b/cmake/Modules/StyleHeaderUtils.cmake @@ -48,8 +48,13 @@ function(CreateStyleHeader path filename) set(temp "") if(ARGC GREATER 2) list(REMOVE_AT ARGV 0 1) + set(header_list) foreach(FNAME ${ARGV}) get_filename_component(FNAME ${FNAME} NAME) + list(APPEND header_list ${FNAME}) + endforeach() + list(SORT header_list) + foreach(FNAME ${header_list}) set(temp "${temp}#include \"${FNAME}\"\n") endforeach() endif() From 31ed3f7178a349b5d47827eb8fefea90b034e7cd Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Mon, 27 Aug 2018 17:09:59 -0600 Subject: [PATCH 612/675] more changes to insure each triplet IJK computed exactly once --- ...og.23Aug18.atm.g++.1 => log.27Aug18.g++.1} | 32 +++++------ ...og.23Aug18.atm.g++.4 => log.27Aug18.g++.4} | 32 +++++------ src/MANYBODY/pair_atm.cpp | 54 ++++++++----------- 3 files changed, 53 insertions(+), 65 deletions(-) rename examples/atm/{log.23Aug18.atm.g++.1 => log.27Aug18.g++.1} (69%) rename examples/atm/{log.23Aug18.atm.g++.4 => log.27Aug18.g++.4} (69%) diff --git a/examples/atm/log.23Aug18.atm.g++.1 b/examples/atm/log.27Aug18.g++.1 similarity index 69% rename from examples/atm/log.23Aug18.atm.g++.1 rename to examples/atm/log.27Aug18.g++.1 index 3373846b31..46215e108c 100644 --- a/examples/atm/log.23Aug18.atm.g++.1 +++ b/examples/atm/log.27Aug18.g++.1 @@ -26,7 +26,7 @@ Created orthogonal box = (0 0 0) to (18.3252 18.3252 18.3252) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 4000 atoms - Time spent = 0.00126314 secs + Time spent = 0.00139618 secs pair_style hybrid/overlay lj/cut 4.5 atm 4.5 2.5 pair_coeff * * lj/cut 1.0 1.0 @@ -60,26 +60,26 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 11.47 | 11.47 | 11.47 Mbytes Step Temp E_pair E_mol TotEng Press - 0 1.033 -4.8899813 0 -3.3408686 -4.2298176 - 5 1.0337853 -4.8928208 0 -3.3425304 -4.2233154 - 10 1.0358056 -4.8953304 0 -3.3420104 -4.1897183 - 15 1.0380938 -4.8990457 0 -3.3422942 -4.1310148 - 20 1.0389566 -4.9014345 0 -3.3433892 -4.0406616 - 25 1.0358313 -4.8989663 0 -3.3456079 -3.9093019 -Loop time of 12.2062 on 1 procs for 25 steps with 4000 atoms + 0 1.033 -4.8404387 0 -3.291326 -4.1332095 + 5 1.0337247 -4.8402263 0 -3.290027 -4.1207962 + 10 1.0355935 -4.8425889 0 -3.2895869 -4.0870158 + 15 1.0376519 -4.84599 0 -3.2899013 -4.0278711 + 20 1.0382257 -4.8478854 0 -3.2909361 -3.9368052 + 25 1.0347886 -4.84473 0 -3.2929351 -3.8044469 +Loop time of 15.95 on 1 procs for 25 steps with 4000 atoms -Performance: 353.920 tau/day, 2.048 timesteps/s -99.9% CPU use with 1 MPI tasks x no OpenMP threads +Performance: 270.846 tau/day, 1.567 timesteps/s +100.0% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 12.202 | 12.202 | 12.202 | 0.0 | 99.96 +Pair | 15.946 | 15.946 | 15.946 | 0.0 | 99.97 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0015621 | 0.0015621 | 0.0015621 | 0.0 | 0.01 -Output | 0.00020814 | 0.00020814 | 0.00020814 | 0.0 | 0.00 -Modify | 0.0019698 | 0.0019698 | 0.0019698 | 0.0 | 0.02 -Other | | 0.0007734 | | | 0.01 +Comm | 0.0015042 | 0.0015042 | 0.0015042 | 0.0 | 0.01 +Output | 0.00013781 | 0.00013781 | 0.00013781 | 0.0 | 0.00 +Modify | 0.0017776 | 0.0017776 | 0.0017776 | 0.0 | 0.01 +Other | | 0.0006771 | | | 0.00 Nlocal: 4000 ave 4000 max 4000 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -97,4 +97,4 @@ Dangerous builds = 0 Please see the log.cite file for references relevant to this simulation -Total wall time: 0:00:13 +Total wall time: 0:00:16 diff --git a/examples/atm/log.23Aug18.atm.g++.4 b/examples/atm/log.27Aug18.g++.4 similarity index 69% rename from examples/atm/log.23Aug18.atm.g++.4 rename to examples/atm/log.27Aug18.g++.4 index d5edfe32ba..d84f17ee2b 100644 --- a/examples/atm/log.23Aug18.atm.g++.4 +++ b/examples/atm/log.27Aug18.g++.4 @@ -26,7 +26,7 @@ Created orthogonal box = (0 0 0) to (18.3252 18.3252 18.3252) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 4000 atoms - Time spent = 0.000785112 secs + Time spent = 0.000900984 secs pair_style hybrid/overlay lj/cut 4.5 atm 4.5 2.5 pair_coeff * * lj/cut 1.0 1.0 @@ -60,26 +60,26 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 5.532 | 5.532 | 5.532 Mbytes Step Temp E_pair E_mol TotEng Press - 0 1.033 -4.8921547 0 -3.343042 -4.2340557 - 5 1.0337949 -4.8947881 0 -3.3444835 -4.2271456 - 10 1.0358286 -4.8973178 0 -3.3439632 -4.1935779 - 15 1.0381322 -4.9010593 0 -3.3442503 -4.134913 - 20 1.0390107 -4.9034854 0 -3.3453589 -4.0446162 - 25 1.0358988 -4.9010506 0 -3.3475908 -3.9133006 -Loop time of 3.20632 on 4 procs for 25 steps with 4000 atoms + 0 1.033 -4.8404387 0 -3.291326 -4.1332095 + 5 1.0337247 -4.8402263 0 -3.290027 -4.1207962 + 10 1.0355935 -4.8425889 0 -3.2895869 -4.0870158 + 15 1.0376519 -4.84599 0 -3.2899013 -4.0278711 + 20 1.0382257 -4.8478854 0 -3.2909361 -3.9368052 + 25 1.0347886 -4.84473 0 -3.2929351 -3.8044469 +Loop time of 4.34636 on 4 procs for 25 steps with 4000 atoms -Performance: 1347.340 tau/day, 7.797 timesteps/s -100.0% CPU use with 4 MPI tasks x no OpenMP threads +Performance: 993.935 tau/day, 5.752 timesteps/s +99.6% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 3.1207 | 3.1553 | 3.1859 | 1.5 | 98.41 +Pair | 3.9977 | 4.1036 | 4.209 | 4.9 | 94.41 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.019466 | 0.05009 | 0.084602 | 12.0 | 1.56 -Output | 7.1049e-05 | 8.2076e-05 | 0.00011325 | 0.0 | 0.00 -Modify | 0.00056338 | 0.00057292 | 0.00058413 | 0.0 | 0.02 -Other | | 0.0003092 | | | 0.01 +Comm | 0.13588 | 0.24134 | 0.34722 | 20.4 | 5.55 +Output | 0.00013757 | 0.00015104 | 0.00016761 | 0.0 | 0.00 +Modify | 0.00087953 | 0.00091547 | 0.00095582 | 0.0 | 0.02 +Other | | 0.0003656 | | | 0.01 Nlocal: 1000 ave 1000 max 1000 min Histogram: 4 0 0 0 0 0 0 0 0 0 @@ -97,4 +97,4 @@ Dangerous builds = 0 Please see the log.cite file for references relevant to this simulation -Total wall time: 0:00:03 +Total wall time: 0:00:04 diff --git a/src/MANYBODY/pair_atm.cpp b/src/MANYBODY/pair_atm.cpp index b63407dfe9..a6e52faeba 100644 --- a/src/MANYBODY/pair_atm.cpp +++ b/src/MANYBODY/pair_atm.cpp @@ -98,9 +98,15 @@ void PairATM::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; - int count1 = 0; - int count2 = 0; - int count3 = 0; + // triple loop over local atoms and neighbors twice + // must compute each IJK triplet interaction exactly once + // by proc that owns the triplet atom with smallest x coord + // special logic to break ties if multiple atoms have same x or y coords + // inner two loops for jj=1,Jnum and kk=jj+1,Jnum insure + // the pair of other 2 non-minimum-x atoms is only considered once + // triplet geometry criteria for calculation: + // each pair distance <= cutoff + // produce of 3 pair distances <= cutoff_triple^3 for (ii = 0; ii < inum; ii++) { i = ilist[ii]; @@ -112,12 +118,10 @@ void PairATM::compute(int eflag, int vflag) jnum = numneigh[i]; jnumm1 = jnum - 1; - // for (jj = 0; jj < jnumm1; jj++) { - // replace with this line: - for (jj = 0; jj < jnum; jj++) { - + for (jj = 0; jj < jnumm1; jj++) { j = jlist[jj]; j &= NEIGHMASK; + rij[0] = x[j][0] - xi; if (rij[0] < 0.0) continue; rij[1] = x[j][1] - yi; @@ -125,40 +129,33 @@ void PairATM::compute(int eflag, int vflag) rij[2] = x[j][2] - zi; if (rij[0] == 0.0 and rij[1] == 0.0 and rij[2] < 0.0) continue; rij2 = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - count1++; if (rij2 > cutoff_squared) continue; - count2++; - - //for (kk = jj+1; kk < jnum; kk++) { - // replace with these two lines: - for (kk = 0; kk < jnum; kk++) { - if (kk == jj) continue; + for (kk = jj+1; kk < jnum; kk++) { k = jlist[kk]; k &= NEIGHMASK; - rjk[0] = x[k][0] - x[j][0]; - if (rjk[0] < 0.0) continue; - rjk[1] = x[k][1] - x[j][1]; - if (rjk[0] == 0.0 and rjk[1] < 0.0) continue; - rjk[2] = x[k][2] - x[j][2]; - if (rjk[0] == 0.0 and rjk[1] == 0.0 and rjk[2] < 0.0) continue; - rjk2 = rjk[0]*rjk[0] + rjk[1]*rjk[1] + rjk[2]*rjk[2]; - if (rjk2 > cutoff_squared) continue; - rik[0] = x[k][0] - xi; + if (rik[0] < 0.0) continue; rik[1] = x[k][1] - yi; + if (rik[0] == 0.0 and rik[1] < 0.0) continue; rik[2] = x[k][2] - zi; + if (rik[0] == 0.0 and rik[1] == 0.0 and rik[2] < 0.0) continue; rik2 = rik[0]*rik[0] + rik[1]*rik[1] + rik[2]*rik[2]; if (rik2 > cutoff_squared) continue; + rjk[0] = x[k][0] - x[j][0]; + rjk[1] = x[k][1] - x[j][1]; + rjk[2] = x[k][2] - x[j][2]; + rjk2 = rjk[0]*rjk[0] + rjk[1]*rjk[1] + rjk[2]*rjk[2]; + if (rjk2 > cutoff_squared) continue; + double r6 = rij2*rjk2*rik2; if (r6 > cutoff_triple_sixth) continue; nu_local = nu[type[i]][type[j]][type[k]]; if (nu_local == 0.0) continue; - count3++; interaction_ddd(nu_local, r6,rij2,rik2,rjk2,rij,rik,rjk,fj,fk,eflag,evdwl); @@ -177,15 +174,6 @@ void PairATM::compute(int eflag, int vflag) } } - int count = count1; - MPI_Allreduce(&count,&count1,1,MPI_INT,MPI_SUM,world); - count = count2; - MPI_Allreduce(&count,&count2,1,MPI_INT,MPI_SUM,world); - count = count3; - MPI_Allreduce(&count,&count3,1,MPI_INT,MPI_SUM,world); - printf("FORCE %g %d %d %d\n",cutoff_squared,count1,count2,count3); - - if (vflag_fdotr) virial_fdotr_compute(); } From aac238503bbe70de24e3d2bc8f8544d5d178f8ca Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 27 Aug 2018 21:23:47 -0400 Subject: [PATCH 613/675] Add missing LMP_USER_OMP definition with CMake --- cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index fe904938a3..78e18e489c 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -679,6 +679,7 @@ if(PKG_USER-OMP) ${USER-OMP_SOURCES_DIR}/thr_omp.cpp ${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp ${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp) + add_definitions(-DLMP_USER_OMP) set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}") # detects styles which have USER-OMP version From a103bd4de296a418247be0c87d5bd0c9f0fb6e49 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 27 Aug 2018 21:25:48 -0400 Subject: [PATCH 614/675] Correct compilation error introduced by #1077 --- src/USER-REAXC/reaxc_allocate.cpp | 16 ++++++++++------ src/lmptype.h | 2 ++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/USER-REAXC/reaxc_allocate.cpp b/src/USER-REAXC/reaxc_allocate.cpp index 14906a2a9c..c6c103b6f4 100644 --- a/src/USER-REAXC/reaxc_allocate.cpp +++ b/src/USER-REAXC/reaxc_allocate.cpp @@ -39,8 +39,8 @@ important: we cannot know the exact number of atoms that will fall into a process's box throughout the whole simulation. therefore we need to make upper bound estimates for various data structures */ -int PreAllocate_Space( reax_system *system, control_params */*control*/, - storage */*workspace*/, MPI_Comm comm ) +int PreAllocate_Space( reax_system *system, control_params * /*control*/, + storage * workspace, MPI_Comm comm ) { int mincap = system->mincap; double safezone = system->safezone; @@ -60,6 +60,8 @@ int PreAllocate_Space( reax_system *system, control_params */*control*/, workspace->forceReduction = NULL; workspace->valence_angle_atom_myoffset = NULL; workspace->my_ext_pressReduction = NULL; +#else + LMP_UNUSED_PARAM(workspace); #endif return SUCCESS; @@ -69,7 +71,7 @@ int PreAllocate_Space( reax_system *system, control_params */*control*/, /************* system *************/ int Allocate_System( reax_system *system, int /*local_cap*/, int total_cap, - char */*msg*/ ) + char * /*msg*/ ) { system->my_atoms = (reax_atom*) realloc( system->my_atoms, total_cap*sizeof(reax_atom) ); @@ -116,7 +118,7 @@ void DeAllocate_System( reax_system *system ) /************* workspace *************/ -void DeAllocate_Workspace( control_params */*control*/, storage *workspace ) +void DeAllocate_Workspace( control_params * /*control*/, storage *workspace ) { int i; @@ -204,9 +206,9 @@ void DeAllocate_Workspace( control_params */*control*/, storage *workspace ) } -int Allocate_Workspace( reax_system */*system*/, control_params */*control*/, +int Allocate_Workspace( reax_system * /*system*/, control_params * control, storage *workspace, int local_cap, int total_cap, - MPI_Comm comm, char */*msg*/ ) + MPI_Comm comm, char * /*msg*/ ) { int i, total_real, total_rvec, local_rvec; @@ -307,6 +309,8 @@ int Allocate_Workspace( reax_system */*system*/, control_params */*control*/, workspace->valence_angle_atom_myoffset = (int *) scalloc(sizeof(int), total_cap, "valence_angle_atom_myoffset", comm); workspace->my_ext_pressReduction = (rvec *) calloc(sizeof(rvec), control->nthreads); +#else + LMP_UNUSED_PARAM(control); #endif return SUCCESS; diff --git a/src/lmptype.h b/src/lmptype.h index 7e359d2abe..e5c202aa87 100644 --- a/src/lmptype.h +++ b/src/lmptype.h @@ -213,4 +213,6 @@ typedef int bigint; #include "lmpwindows.h" #endif +#define LMP_UNUSED_PARAM(x) (void)x + #endif From 02f131c5446a60d74bc13b33fb03ccdd3caeb3b7 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 27 Aug 2018 22:11:15 -0400 Subject: [PATCH 615/675] Fix USER-OMP compilation with CMake --- cmake/CMakeLists.txt | 3 +- src/accelerator_omp.h | 88 +------------------------------------------ 2 files changed, 4 insertions(+), 87 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 78e18e489c..b1287661c0 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -678,7 +678,8 @@ if(PKG_USER-OMP) set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp ${USER-OMP_SOURCES_DIR}/thr_omp.cpp ${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp - ${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp) + ${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp + ${USER-OMP_SOURCES_DIR}/domain_omp.cpp) add_definitions(-DLMP_USER_OMP) set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}") diff --git a/src/accelerator_omp.h b/src/accelerator_omp.h index 6caa0826fe..25910ae800 100644 --- a/src/accelerator_omp.h +++ b/src/accelerator_omp.h @@ -17,47 +17,6 @@ // true interface to USER-OMP -// this part is used inside the neighbor.h header file to -// add functions to the Neighbor class definition - -#ifdef LMP_INSIDE_NEIGHBOR_H - - void half_nsq_no_newton_omp(class NeighList *); - void half_nsq_no_newton_ghost_omp(class NeighList *); - void half_nsq_newton_omp(class NeighList *); - - void half_bin_no_newton_omp(class NeighList *); - void half_bin_no_newton_ghost_omp(class NeighList *); - void half_bin_newton_omp(class NeighList *); - void half_bin_newton_tri_omp(class NeighList *); - - void half_multi_no_newton_omp(class NeighList *); - void half_multi_newton_omp(class NeighList *); - void half_multi_newton_tri_omp(class NeighList *); - - void full_nsq_omp(class NeighList *); - void full_nsq_ghost_omp(class NeighList *); - void full_bin_omp(class NeighList *); - void full_bin_ghost_omp(class NeighList *); - void full_multi_omp(class NeighList *); - - void half_from_full_no_newton_omp(class NeighList *); - void half_from_full_newton_omp(class NeighList *); - - void granular_nsq_no_newton_omp(class NeighList *); - void granular_nsq_newton_omp(class NeighList *); - void granular_bin_no_newton_omp(class NeighList *); - void granular_bin_newton_omp(class NeighList *); - void granular_bin_newton_tri_omp(class NeighList *); - - void respa_nsq_no_newton_omp(class NeighList *); - void respa_nsq_newton_omp(class NeighList *); - void respa_bin_no_newton_omp(class NeighList *); - void respa_bin_newton_omp(class NeighList *); - void respa_bin_newton_tri_omp(class NeighList *); - -#else /* !LMP_INSIDE_NEIGHBOR_H */ - // provide a DomainOMP class with some overrides for Domain #include "domain.h" @@ -68,8 +27,8 @@ namespace LAMMPS_NS { class DomainOMP : public Domain { public: - DomainOMP(class LAMMPS *lmp) : Domain(lmp) {}; - virtual ~DomainOMP() {}; + DomainOMP(class LAMMPS *lmp) : Domain(lmp) {} + virtual ~DomainOMP() {} // multi-threaded versions virtual void pbc(); @@ -81,48 +40,5 @@ class DomainOMP : public Domain { } #endif /* LMP_DOMAIN_OMP_H */ -#endif /* !LMP_INSIDE_NEIGHBOR_H */ - -#else /* !LMP_USER_OMP */ - -// dummy interface to USER-OMP -// needed for compiling when USER-OMP is not installed - -#ifdef LMP_INSIDE_NEIGHBOR_H - - void half_nsq_no_newton_omp(class NeighList *) {} - void half_nsq_no_newton_ghost_omp(class NeighList *) {} - void half_nsq_newton_omp(class NeighList *) {} - - void half_bin_no_newton_omp(class NeighList *) {} - void half_bin_no_newton_ghost_omp(class NeighList *) {} - void half_bin_newton_omp(class NeighList *) {} - void half_bin_newton_tri_omp(class NeighList *) {} - - void half_multi_no_newton_omp(class NeighList *) {} - void half_multi_newton_omp(class NeighList *) {} - void half_multi_newton_tri_omp(class NeighList *) {} - - void full_nsq_omp(class NeighList *) {} - void full_nsq_ghost_omp(class NeighList *) {} - void full_bin_omp(class NeighList *) {} - void full_bin_ghost_omp(class NeighList *) {} - void full_multi_omp(class NeighList *) {} - - void half_from_full_no_newton_omp(class NeighList *) {} - void half_from_full_newton_omp(class NeighList *) {} - - void granular_nsq_no_newton_omp(class NeighList *) {} - void granular_nsq_newton_omp(class NeighList *) {} - void granular_bin_no_newton_omp(class NeighList *) {} - void granular_bin_newton_omp(class NeighList *) {} - void granular_bin_newton_tri_omp(class NeighList *) {} - - void respa_nsq_no_newton_omp(class NeighList *) {} - void respa_nsq_newton_omp(class NeighList *) {} - void respa_bin_no_newton_omp(class NeighList *) {} - void respa_bin_newton_omp(class NeighList *) {} - void respa_bin_newton_tri_omp(class NeighList *) {} -#endif #endif /* !LMP_USER_OMP */ From 71bc72ec13e579da37c1c156fceed7230193477c Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 27 Aug 2018 22:13:43 -0400 Subject: [PATCH 616/675] formatting: add additional space to avoid bad syntax highlights --- src/BODY/fix_wall_body_polyhedron.cpp | 2 +- src/COLLOID/pair_lubricate.cpp | 2 +- src/COLLOID/pair_lubricateU.cpp | 2 +- src/GRANULAR/pair_gran_hooke_history.cpp | 2 +- src/LATTE/fix_latte.cpp | 2 +- src/MANYBODY/fix_qeq_comb.cpp | 2 +- src/MANYBODY/pair_adp.cpp | 2 +- src/MANYBODY/pair_comb.cpp | 2 +- src/MANYBODY/pair_comb3.cpp | 4 +-- src/MANYBODY/pair_eam.cpp | 2 +- src/MANYBODY/pair_eam_cd.cpp | 2 +- src/MANYBODY/pair_eim.cpp | 2 +- src/MANYBODY/pair_nb3b_harmonic.cpp | 2 +- src/MC/fix_atom_swap.cpp | 2 +- src/MC/fix_bond_break.cpp | 2 +- src/MC/fix_bond_create.cpp | 2 +- src/MEAM/pair_meam.cpp | 2 +- src/MISC/fix_orient_bcc.cpp | 2 +- src/MISC/fix_orient_fcc.cpp | 2 +- src/MISC/xdr_compat.cpp | 2 +- src/MOLECULE/fix_cmap.cpp | 2 +- src/PERI/fix_peri_neigh.cpp | 2 +- src/PERI/pair_peri_eps.cpp | 2 +- src/PERI/pair_peri_lps.cpp | 2 +- src/PERI/pair_peri_ves.cpp | 2 +- src/QEQ/fix_qeq.cpp | 2 +- src/QEQ/fix_qeq_dynamic.cpp | 2 +- src/QEQ/fix_qeq_fire.cpp | 2 +- src/RIGID/fix_rigid_small.cpp | 2 +- src/RIGID/fix_shake.cpp | 2 +- src/SRD/fix_srd.cpp | 8 +++--- src/USER-DPD/fix_eos_table_rx.cpp | 2 +- src/USER-DPD/fix_rx.cpp | 2 +- src/USER-DPD/fix_shardlow.cpp | 2 +- src/USER-DPD/pair_multi_lucy.cpp | 2 +- src/USER-DPD/pair_multi_lucy_rx.cpp | 2 +- src/USER-INTEL/angle_charmm_intel.cpp | 2 +- src/USER-INTEL/angle_harmonic_intel.cpp | 2 +- src/USER-INTEL/bond_fene_intel.cpp | 2 +- src/USER-INTEL/bond_harmonic_intel.cpp | 2 +- src/USER-INTEL/dihedral_fourier_intel.cpp | 2 +- src/USER-INTEL/dihedral_harmonic_intel.cpp | 2 +- src/USER-INTEL/dihedral_opls_intel.cpp | 2 +- src/USER-INTEL/improper_cvff_intel.cpp | 2 +- src/USER-INTEL/improper_harmonic_intel.cpp | 2 +- src/USER-INTEL/intel_buffers.cpp | 2 +- src/USER-INTEL/intel_buffers.h | 4 +-- src/USER-INTEL/pair_eam_intel.cpp | 2 +- src/USER-INTEL/pppm_disp_intel.cpp | 26 +++++++++---------- src/USER-MANIFOLD/manifold_plane.cpp | 2 +- src/USER-MANIFOLD/manifold_thylakoid.cpp | 2 +- src/USER-MEAMC/pair_meamc.cpp | 2 +- src/USER-MESO/pair_mdpd_rhosum.cpp | 2 +- src/USER-MISC/fix_bond_react.cpp | 2 +- src/USER-MISC/fix_filter_corotate.cpp | 2 +- src/USER-MISC/fix_pimd.cpp | 2 +- src/USER-MISC/pair_ilp_graphene_hbn.cpp | 2 +- src/USER-MISC/pair_kolmogorov_crespi_full.cpp | 2 +- src/USER-MISC/pair_meam_spline.cpp | 6 ++--- src/USER-MISC/pair_meam_sw_spline.cpp | 6 ++--- src/USER-REAXC/fix_qeq_reax.cpp | 2 +- src/USER-REAXC/fix_reaxc.cpp | 2 +- src/USER-REAXC/fix_reaxc_bonds.cpp | 4 +-- src/USER-REAXC/fix_reaxc_species.cpp | 4 +-- src/USER-REAXC/reaxc_bond_orders.cpp | 4 +-- src/USER-REAXC/reaxc_bonds.cpp | 4 +-- src/USER-REAXC/reaxc_forces.cpp | 12 ++++----- src/USER-REAXC/reaxc_hydrogen_bonds.cpp | 2 +- src/USER-REAXC/reaxc_init_md.cpp | 12 ++++----- src/USER-REAXC/reaxc_io_tools.cpp | 2 +- src/USER-REAXC/reaxc_lookup.cpp | 2 +- src/USER-REAXC/reaxc_multi_body.cpp | 2 +- src/USER-REAXC/reaxc_nonbonded.cpp | 4 +-- src/USER-REAXC/reaxc_torsion_angles.cpp | 2 +- src/USER-REAXC/reaxc_traj.cpp | 6 ++--- src/USER-REAXC/reaxc_valence_angles.cpp | 2 +- src/USER-SMD/atom_vec_smd.cpp | 16 ++++++------ .../fix_smd_move_triangulated_surface.cpp | 2 +- .../fix_smd_tlsph_reference_configuration.cpp | 2 +- src/USER-SMD/pair_smd_tlsph.cpp | 2 +- src/USER-SMD/pair_smd_ulsph.cpp | 2 +- src/USER-SMTBQ/pair_smtbq.cpp | 4 +-- src/USER-SPH/pair_sph_rhosum.cpp | 2 +- src/fix_property_atom.cpp | 2 +- src/improper_zero.cpp | 4 +-- src/library.cpp | 2 +- src/rcb.cpp | 4 +-- 87 files changed, 135 insertions(+), 135 deletions(-) diff --git a/src/BODY/fix_wall_body_polyhedron.cpp b/src/BODY/fix_wall_body_polyhedron.cpp index 5a066b88bb..9504e256b4 100644 --- a/src/BODY/fix_wall_body_polyhedron.cpp +++ b/src/BODY/fix_wall_body_polyhedron.cpp @@ -693,7 +693,7 @@ int FixWallBodyPolyhedron::compute_distance_to_wall(int ibody, int edge_index, ------------------------------------------------------------------------- */ void FixWallBodyPolyhedron::contact_forces(int ibody, - double j_a, double *xi, double */*xj*/, double delx, double dely, double delz, + double j_a, double *xi, double * /*xj*/, double delx, double dely, double delz, double fx, double fy, double fz, double** x, double** v, double** angmom, double** f, double** torque, double* vwall) { diff --git a/src/COLLOID/pair_lubricate.cpp b/src/COLLOID/pair_lubricate.cpp index fc1fa7acc5..de53d91818 100644 --- a/src/COLLOID/pair_lubricate.cpp +++ b/src/COLLOID/pair_lubricate.cpp @@ -749,7 +749,7 @@ void PairLubricate::read_restart_settings(FILE *fp) /* ---------------------------------------------------------------------- */ int PairLubricate::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/COLLOID/pair_lubricateU.cpp b/src/COLLOID/pair_lubricateU.cpp index 2d51f2e2b6..35fe33c84e 100644 --- a/src/COLLOID/pair_lubricateU.cpp +++ b/src/COLLOID/pair_lubricateU.cpp @@ -2010,7 +2010,7 @@ void PairLubricateU::copy_uo_vec(int inum, double **f, double **torque, /* ---------------------------------------------------------------------- */ int PairLubricateU::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index e74d7a0ea5..c014510fca 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -746,7 +746,7 @@ double PairGranHookeHistory::single(int i, int j, int /*itype*/, int /*jtype*/, /* ---------------------------------------------------------------------- */ int PairGranHookeHistory::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/LATTE/fix_latte.cpp b/src/LATTE/fix_latte.cpp index c9dd0465f8..a89be57bed 100644 --- a/src/LATTE/fix_latte.cpp +++ b/src/LATTE/fix_latte.cpp @@ -189,7 +189,7 @@ void FixLatte::init() /* ---------------------------------------------------------------------- */ -void FixLatte::init_list(int /*id*/, NeighList */*ptr*/) +void FixLatte::init_list(int /*id*/, NeighList * /*ptr*/) { // list = ptr; } diff --git a/src/MANYBODY/fix_qeq_comb.cpp b/src/MANYBODY/fix_qeq_comb.cpp index 61bf9bf11c..e46da9bfe7 100644 --- a/src/MANYBODY/fix_qeq_comb.cpp +++ b/src/MANYBODY/fix_qeq_comb.cpp @@ -293,7 +293,7 @@ double FixQEQComb::memory_usage() /* ---------------------------------------------------------------------- */ int FixQEQComb::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_adp.cpp b/src/MANYBODY/pair_adp.cpp index fd496fcae6..831f1d0efa 100644 --- a/src/MANYBODY/pair_adp.cpp +++ b/src/MANYBODY/pair_adp.cpp @@ -935,7 +935,7 @@ void PairADP::grab(FILE *fp, int n, double *list) /* ---------------------------------------------------------------------- */ int PairADP::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_comb.cpp b/src/MANYBODY/pair_comb.cpp index b205fc46d3..e7b0d27b6e 100644 --- a/src/MANYBODY/pair_comb.cpp +++ b/src/MANYBODY/pair_comb.cpp @@ -2002,7 +2002,7 @@ void PairComb::Over_cor(Param *param, double rsq1, int NCoi, /* ---------------------------------------------------------------------- */ int PairComb::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_comb3.cpp b/src/MANYBODY/pair_comb3.cpp index 54fd13029b..72360be5f0 100644 --- a/src/MANYBODY/pair_comb3.cpp +++ b/src/MANYBODY/pair_comb3.cpp @@ -2109,7 +2109,7 @@ void PairComb3::coord(Param *param, double r, int i, void PairComb3::cntri_int(int tri_flag, double xval, double yval, double zval, int ixmin, int iymin, int izmin, double &vval, - double &dvalx, double &dvaly, double &dvalz, Param */*param*/) + double &dvalx, double &dvaly, double &dvalz, Param * /*param*/) { double x; vval = 0.0; dvalx = 0.0; dvaly = 0.0; dvalz = 0.0; @@ -3863,7 +3863,7 @@ double PairComb3::switching_d(double rr) /* ---------------------------------------------------------------------- */ int PairComb3::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_eam.cpp b/src/MANYBODY/pair_eam.cpp index a861f33824..87bcebb111 100644 --- a/src/MANYBODY/pair_eam.cpp +++ b/src/MANYBODY/pair_eam.cpp @@ -829,7 +829,7 @@ double PairEAM::single(int i, int j, int itype, int jtype, /* ---------------------------------------------------------------------- */ int PairEAM::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_eam_cd.cpp b/src/MANYBODY/pair_eam_cd.cpp index 9b8fd29465..5b8b241b45 100644 --- a/src/MANYBODY/pair_eam_cd.cpp +++ b/src/MANYBODY/pair_eam_cd.cpp @@ -539,7 +539,7 @@ void PairEAMCD::read_h_coeff(char *filename) /* ---------------------------------------------------------------------- */ int PairEAMCD::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_eim.cpp b/src/MANYBODY/pair_eim.cpp index cc35004778..6703e159e6 100644 --- a/src/MANYBODY/pair_eim.cpp +++ b/src/MANYBODY/pair_eim.cpp @@ -1087,7 +1087,7 @@ double PairEIM::funccoul(int i, int j, double r) /* ---------------------------------------------------------------------- */ int PairEIM::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/MANYBODY/pair_nb3b_harmonic.cpp b/src/MANYBODY/pair_nb3b_harmonic.cpp index a09f8a23e6..01718d14cd 100644 --- a/src/MANYBODY/pair_nb3b_harmonic.cpp +++ b/src/MANYBODY/pair_nb3b_harmonic.cpp @@ -454,7 +454,7 @@ void PairNb3bHarmonic::setup_params() /* ---------------------------------------------------------------------- */ -void PairNb3bHarmonic::threebody(Param */*paramij*/, Param */*paramik*/, +void PairNb3bHarmonic::threebody(Param * /*paramij*/, Param * /*paramik*/, Param *paramijk, double rsq1, double rsq2, double *delr1, double *delr2, diff --git a/src/MC/fix_atom_swap.cpp b/src/MC/fix_atom_swap.cpp index b795b71273..3e981c5609 100644 --- a/src/MC/fix_atom_swap.cpp +++ b/src/MC/fix_atom_swap.cpp @@ -695,7 +695,7 @@ void FixAtomSwap::update_swap_atoms_list() /* ---------------------------------------------------------------------- */ -int FixAtomSwap::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) +int FixAtomSwap::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/MC/fix_bond_break.cpp b/src/MC/fix_bond_break.cpp index 203d6b589b..a1c9bb3ab0 100644 --- a/src/MC/fix_bond_break.cpp +++ b/src/MC/fix_bond_break.cpp @@ -701,7 +701,7 @@ void FixBondBreak::post_integrate_respa(int ilevel, int /*iloop*/) /* ---------------------------------------------------------------------- */ int FixBondBreak::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,k,m,ns; diff --git a/src/MC/fix_bond_create.cpp b/src/MC/fix_bond_create.cpp index 17ea7fb3f2..e1dd18cb5b 100644 --- a/src/MC/fix_bond_create.cpp +++ b/src/MC/fix_bond_create.cpp @@ -1214,7 +1214,7 @@ void FixBondCreate::post_integrate_respa(int ilevel, int /*iloop*/) /* ---------------------------------------------------------------------- */ int FixBondCreate::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,k,m,ns; diff --git a/src/MEAM/pair_meam.cpp b/src/MEAM/pair_meam.cpp index 41f1f4ce37..5aa13ab02e 100644 --- a/src/MEAM/pair_meam.cpp +++ b/src/MEAM/pair_meam.cpp @@ -734,7 +734,7 @@ void PairMEAM::read_files(char *globalfile, char *userfile) /* ---------------------------------------------------------------------- */ int PairMEAM::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,k,m; diff --git a/src/MISC/fix_orient_bcc.cpp b/src/MISC/fix_orient_bcc.cpp index 9b22e571fe..c614577933 100644 --- a/src/MISC/fix_orient_bcc.cpp +++ b/src/MISC/fix_orient_bcc.cpp @@ -488,7 +488,7 @@ double FixOrientBCC::compute_scalar() /* ---------------------------------------------------------------------- */ int FixOrientBCC::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,k,num; tagint id; diff --git a/src/MISC/fix_orient_fcc.cpp b/src/MISC/fix_orient_fcc.cpp index b061627fd8..5b394adde7 100644 --- a/src/MISC/fix_orient_fcc.cpp +++ b/src/MISC/fix_orient_fcc.cpp @@ -486,7 +486,7 @@ double FixOrientFCC::compute_scalar() /* ---------------------------------------------------------------------- */ int FixOrientFCC::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,k,num; tagint id; diff --git a/src/MISC/xdr_compat.cpp b/src/MISC/xdr_compat.cpp index c67925d92a..0f4d73cdd9 100644 --- a/src/MISC/xdr_compat.cpp +++ b/src/MISC/xdr_compat.cpp @@ -650,7 +650,7 @@ xdrstdio_setpos (XDR *xdrs, unsigned int pos) } static xdr_int32_t * -xdrstdio_inline (XDR */*xdrs*/, int /*len*/) +xdrstdio_inline (XDR * /*xdrs*/, int /*len*/) { /* * Must do some work to implement this: must insure diff --git a/src/MOLECULE/fix_cmap.cpp b/src/MOLECULE/fix_cmap.cpp index 2acb20de60..b527eef020 100644 --- a/src/MOLECULE/fix_cmap.cpp +++ b/src/MOLECULE/fix_cmap.cpp @@ -1163,7 +1163,7 @@ void FixCMAP::read_data_section(char *keyword, int n, char *buf, /* ---------------------------------------------------------------------- */ -bigint FixCMAP::read_data_skip_lines(char */*keyword*/) +bigint FixCMAP::read_data_skip_lines(char * /*keyword*/) { return ncmap; } diff --git a/src/PERI/fix_peri_neigh.cpp b/src/PERI/fix_peri_neigh.cpp index 2f5d4ac694..66137e6a01 100644 --- a/src/PERI/fix_peri_neigh.cpp +++ b/src/PERI/fix_peri_neigh.cpp @@ -514,7 +514,7 @@ int FixPeriNeigh::unpack_exchange(int nlocal, double *buf) /* ---------------------------------------------------------------------- */ int FixPeriNeigh::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/PERI/pair_peri_eps.cpp b/src/PERI/pair_peri_eps.cpp index fe2041d802..76267426c6 100644 --- a/src/PERI/pair_peri_eps.cpp +++ b/src/PERI/pair_peri_eps.cpp @@ -799,7 +799,7 @@ double PairPeriEPS::compute_DeviatoricForceStateNorm(int i) ---------------------------------------------------------------------- */ int PairPeriEPS::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/PERI/pair_peri_lps.cpp b/src/PERI/pair_peri_lps.cpp index 0ff0423801..383b91c6f5 100644 --- a/src/PERI/pair_peri_lps.cpp +++ b/src/PERI/pair_peri_lps.cpp @@ -631,7 +631,7 @@ void PairPeriLPS::compute_dilatation() ---------------------------------------------------------------------- */ int PairPeriLPS::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/PERI/pair_peri_ves.cpp b/src/PERI/pair_peri_ves.cpp index a41d55b593..7590077f0e 100644 --- a/src/PERI/pair_peri_ves.cpp +++ b/src/PERI/pair_peri_ves.cpp @@ -697,7 +697,7 @@ void PairPeriVES::compute_dilatation() ---------------------------------------------------------------------- */ int PairPeriVES::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/QEQ/fix_qeq.cpp b/src/QEQ/fix_qeq.cpp index f6f41f57bd..0fe041209f 100644 --- a/src/QEQ/fix_qeq.cpp +++ b/src/QEQ/fix_qeq.cpp @@ -471,7 +471,7 @@ void FixQEq::calculate_Q() /* ---------------------------------------------------------------------- */ int FixQEq::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int m; diff --git a/src/QEQ/fix_qeq_dynamic.cpp b/src/QEQ/fix_qeq_dynamic.cpp index 82112c5c11..f496c7e6c0 100644 --- a/src/QEQ/fix_qeq_dynamic.cpp +++ b/src/QEQ/fix_qeq_dynamic.cpp @@ -247,7 +247,7 @@ double FixQEqDynamic::compute_eneg() /* ---------------------------------------------------------------------- */ int FixQEqDynamic::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int m=0; diff --git a/src/QEQ/fix_qeq_fire.cpp b/src/QEQ/fix_qeq_fire.cpp index d1683aa020..83c9907f1b 100644 --- a/src/QEQ/fix_qeq_fire.cpp +++ b/src/QEQ/fix_qeq_fire.cpp @@ -311,7 +311,7 @@ double FixQEqFire::compute_eneg() /* ---------------------------------------------------------------------- */ int FixQEqFire::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int m = 0; diff --git a/src/RIGID/fix_rigid_small.cpp b/src/RIGID/fix_rigid_small.cpp index b2dbd27c46..d5d3d36083 100644 --- a/src/RIGID/fix_rigid_small.cpp +++ b/src/RIGID/fix_rigid_small.cpp @@ -2999,7 +2999,7 @@ int FixRigidSmall::unpack_exchange(int nlocal, double *buf) ------------------------------------------------------------------------- */ int FixRigidSmall::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j; double *xcm,*vcm,*quat,*omega,*ex_space,*ey_space,*ez_space,*conjqm; diff --git a/src/RIGID/fix_shake.cpp b/src/RIGID/fix_shake.cpp index 5c0139737c..e0d1bf132b 100644 --- a/src/RIGID/fix_shake.cpp +++ b/src/RIGID/fix_shake.cpp @@ -2528,7 +2528,7 @@ void FixShake::update_arrays(int i, int atom_offset) ------------------------------------------------------------------------- */ void FixShake::set_molecule(int nlocalprev, tagint tagprev, int imol, - double */*xgeom*/, double */*vcm*/, double */*quat*/) + double * /*xgeom*/, double * /*vcm*/, double * /*quat*/) { int m,flag; diff --git a/src/SRD/fix_srd.cpp b/src/SRD/fix_srd.cpp index d6053f4aa4..186f51e06a 100644 --- a/src/SRD/fix_srd.cpp +++ b/src/SRD/fix_srd.cpp @@ -2168,8 +2168,8 @@ void FixSRD::collision_ellipsoid_inexact(double *xs, double *xb, norm = surface normal of collision pt at time of collision ------------------------------------------------------------------------- */ -double FixSRD::collision_line_exact(double */*xs*/, double */*xb*/, - double */*vs*/, double */*vb*/, Big */*big*/, +double FixSRD::collision_line_exact(double * /*xs*/, double * /*xb*/, + double * /*vs*/, double * /*vb*/, Big * /*big*/, double dt_step, double *xscoll, double *xbcoll, double *norm) @@ -2197,8 +2197,8 @@ double FixSRD::collision_line_exact(double */*xs*/, double */*xb*/, norm = surface normal of collision pt at time of collision ------------------------------------------------------------------------- */ -double FixSRD::collision_tri_exact(double */*xs*/, double */*xb*/, - double */*vs*/, double */*vb*/, Big */*big*/, +double FixSRD::collision_tri_exact(double * /*xs*/, double * /*xb*/, + double * /*vs*/, double * /*vb*/, Big * /*big*/, double dt_step, double *xscoll, double *xbcoll, double *norm) diff --git a/src/USER-DPD/fix_eos_table_rx.cpp b/src/USER-DPD/fix_eos_table_rx.cpp index 0bb96d7664..181c7dccfa 100644 --- a/src/USER-DPD/fix_eos_table_rx.cpp +++ b/src/USER-DPD/fix_eos_table_rx.cpp @@ -803,7 +803,7 @@ void FixEOStableRX::temperature_lookup(int id, double ui, double &thetai) /* ---------------------------------------------------------------------- */ -int FixEOStableRX::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) +int FixEOStableRX::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { int ii,jj,m; double *uChem = atom->uChem; diff --git a/src/USER-DPD/fix_rx.cpp b/src/USER-DPD/fix_rx.cpp index 4a78bb30d2..1a9c43704d 100644 --- a/src/USER-DPD/fix_rx.cpp +++ b/src/USER-DPD/fix_rx.cpp @@ -1885,7 +1885,7 @@ void FixRX::computeLocalTemperature() /* ---------------------------------------------------------------------- */ -int FixRX::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) +int FixRX::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { int ii,jj,m; double tmp; diff --git a/src/USER-DPD/fix_shardlow.cpp b/src/USER-DPD/fix_shardlow.cpp index 9e8ee41533..4e133480ad 100644 --- a/src/USER-DPD/fix_shardlow.cpp +++ b/src/USER-DPD/fix_shardlow.cpp @@ -646,7 +646,7 @@ fprintf(stdout, "\n%6d %6d,%6d %6d: " /* ---------------------------------------------------------------------- */ -int FixShardlow::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) +int FixShardlow::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { int ii,jj,m; double **v = atom->v; diff --git a/src/USER-DPD/pair_multi_lucy.cpp b/src/USER-DPD/pair_multi_lucy.cpp index a7701f4d93..f911d8299e 100644 --- a/src/USER-DPD/pair_multi_lucy.cpp +++ b/src/USER-DPD/pair_multi_lucy.cpp @@ -781,7 +781,7 @@ void PairMultiLucy::computeLocalDensity() } /* ---------------------------------------------------------------------- */ -int PairMultiLucy::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) +int PairMultiLucy::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; double *rho = atom->rho; diff --git a/src/USER-DPD/pair_multi_lucy_rx.cpp b/src/USER-DPD/pair_multi_lucy_rx.cpp index 744c1ff64d..13c838fe01 100644 --- a/src/USER-DPD/pair_multi_lucy_rx.cpp +++ b/src/USER-DPD/pair_multi_lucy_rx.cpp @@ -1019,7 +1019,7 @@ void PairMultiLucyRX::getMixingWeights(int id, double &mixWtSite1old, double &mi /* ---------------------------------------------------------------------- */ -int PairMultiLucyRX::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) +int PairMultiLucyRX::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; double *rho = atom->rho; diff --git a/src/USER-INTEL/angle_charmm_intel.cpp b/src/USER-INTEL/angle_charmm_intel.cpp index eddef5bce8..f2542fc0c7 100644 --- a/src/USER-INTEL/angle_charmm_intel.cpp +++ b/src/USER-INTEL/angle_charmm_intel.cpp @@ -332,7 +332,7 @@ void AngleCharmmIntel::init_style() template void AngleCharmmIntel::pack_force_const(ForceConst &fc, - IntelBuffers */*buffers*/) + IntelBuffers * /*buffers*/) { const int bp1 = atom->nangletypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/angle_harmonic_intel.cpp b/src/USER-INTEL/angle_harmonic_intel.cpp index 077825332c..5777dad947 100644 --- a/src/USER-INTEL/angle_harmonic_intel.cpp +++ b/src/USER-INTEL/angle_harmonic_intel.cpp @@ -314,7 +314,7 @@ void AngleHarmonicIntel::init_style() template void AngleHarmonicIntel::pack_force_const(ForceConst &fc, - IntelBuffers */*buffers*/) + IntelBuffers * /*buffers*/) { const int bp1 = atom->nangletypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/bond_fene_intel.cpp b/src/USER-INTEL/bond_fene_intel.cpp index 88fa65f555..9d54269c05 100644 --- a/src/USER-INTEL/bond_fene_intel.cpp +++ b/src/USER-INTEL/bond_fene_intel.cpp @@ -291,7 +291,7 @@ void BondFENEIntel::init_style() template void BondFENEIntel::pack_force_const(ForceConst &fc, - IntelBuffers */*buffers*/) + IntelBuffers * /*buffers*/) { const int bp1 = atom->nbondtypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/bond_harmonic_intel.cpp b/src/USER-INTEL/bond_harmonic_intel.cpp index f4ab991b1c..65894efa05 100644 --- a/src/USER-INTEL/bond_harmonic_intel.cpp +++ b/src/USER-INTEL/bond_harmonic_intel.cpp @@ -262,7 +262,7 @@ void BondHarmonicIntel::init_style() template void BondHarmonicIntel::pack_force_const(ForceConst &fc, - IntelBuffers */*buffers*/) + IntelBuffers * /*buffers*/) { const int bp1 = atom->nbondtypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/dihedral_fourier_intel.cpp b/src/USER-INTEL/dihedral_fourier_intel.cpp index 7494fef3bf..6ccc165c61 100644 --- a/src/USER-INTEL/dihedral_fourier_intel.cpp +++ b/src/USER-INTEL/dihedral_fourier_intel.cpp @@ -401,7 +401,7 @@ void DihedralFourierIntel::init_style() template void DihedralFourierIntel::pack_force_const(ForceConst &fc, - IntelBuffers */*buffers*/) + IntelBuffers * /*buffers*/) { const int bp1 = atom->ndihedraltypes + 1; fc.set_ntypes(bp1, setflag, nterms, memory); diff --git a/src/USER-INTEL/dihedral_harmonic_intel.cpp b/src/USER-INTEL/dihedral_harmonic_intel.cpp index 57361b9527..ae5eb914e7 100644 --- a/src/USER-INTEL/dihedral_harmonic_intel.cpp +++ b/src/USER-INTEL/dihedral_harmonic_intel.cpp @@ -396,7 +396,7 @@ void DihedralHarmonicIntel::init_style() template void DihedralHarmonicIntel::pack_force_const(ForceConst &fc, - IntelBuffers */*buffers*/) + IntelBuffers * /*buffers*/) { const int bp1 = atom->ndihedraltypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/dihedral_opls_intel.cpp b/src/USER-INTEL/dihedral_opls_intel.cpp index ae2810f662..ef95cc75bb 100644 --- a/src/USER-INTEL/dihedral_opls_intel.cpp +++ b/src/USER-INTEL/dihedral_opls_intel.cpp @@ -416,7 +416,7 @@ void DihedralOPLSIntel::init_style() template void DihedralOPLSIntel::pack_force_const(ForceConst &fc, - IntelBuffers */*buffers*/) + IntelBuffers * /*buffers*/) { const int bp1 = atom->ndihedraltypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/improper_cvff_intel.cpp b/src/USER-INTEL/improper_cvff_intel.cpp index 025206dc67..c20c004657 100644 --- a/src/USER-INTEL/improper_cvff_intel.cpp +++ b/src/USER-INTEL/improper_cvff_intel.cpp @@ -428,7 +428,7 @@ void ImproperCvffIntel::init_style() template void ImproperCvffIntel::pack_force_const(ForceConst &fc, - IntelBuffers */*buffers*/) + IntelBuffers * /*buffers*/) { const int bp1 = atom->nimpropertypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/improper_harmonic_intel.cpp b/src/USER-INTEL/improper_harmonic_intel.cpp index dde67e1d76..167095150e 100644 --- a/src/USER-INTEL/improper_harmonic_intel.cpp +++ b/src/USER-INTEL/improper_harmonic_intel.cpp @@ -384,7 +384,7 @@ void ImproperHarmonicIntel::init_style() template void ImproperHarmonicIntel::pack_force_const(ForceConst &fc, - IntelBuffers */*buffers*/) + IntelBuffers * /*buffers*/) { const int bp1 = atom->nimpropertypes + 1; fc.set_ntypes(bp1,memory); diff --git a/src/USER-INTEL/intel_buffers.cpp b/src/USER-INTEL/intel_buffers.cpp index ada70a18a4..05176e1fd1 100644 --- a/src/USER-INTEL/intel_buffers.cpp +++ b/src/USER-INTEL/intel_buffers.cpp @@ -310,7 +310,7 @@ void IntelBuffers::free_nbor_list() /* ---------------------------------------------------------------------- */ template -void IntelBuffers::_grow_nbor_list(NeighList */*list*/, +void IntelBuffers::_grow_nbor_list(NeighList * /*list*/, const int nlocal, const int nthreads, const int /*offload_end*/, diff --git a/src/USER-INTEL/intel_buffers.h b/src/USER-INTEL/intel_buffers.h index 397fa77a7e..e8225a4a30 100644 --- a/src/USER-INTEL/intel_buffers.h +++ b/src/USER-INTEL/intel_buffers.h @@ -135,8 +135,8 @@ class IntelBuffers { void set_ntypes(const int ntypes, const int use_ghost_cut = 0); - inline int * firstneigh(const NeighList */*list*/) { return _list_alloc; } - inline int * cnumneigh(const NeighList */*list*/) { return _cnumneigh; } + inline int * firstneigh(const NeighList * /*list*/) { return _list_alloc; } + inline int * cnumneigh(const NeighList * /*list*/) { return _cnumneigh; } inline int * get_atombin() { return _atombin; } inline int * get_binpacked() { return _binpacked; } diff --git a/src/USER-INTEL/pair_eam_intel.cpp b/src/USER-INTEL/pair_eam_intel.cpp index 11ae442c0e..ce9ede69d6 100644 --- a/src/USER-INTEL/pair_eam_intel.cpp +++ b/src/USER-INTEL/pair_eam_intel.cpp @@ -784,7 +784,7 @@ void PairEAMIntel::ForceConst::set_ntypes(const int ntypes, /* ---------------------------------------------------------------------- */ int PairEAMIntel::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { if (fix->precision() == FixIntel::PREC_MODE_DOUBLE) return pack_forward_comm(n, list, buf, fp); diff --git a/src/USER-INTEL/pppm_disp_intel.cpp b/src/USER-INTEL/pppm_disp_intel.cpp index c7edc15a49..3b05658278 100644 --- a/src/USER-INTEL/pppm_disp_intel.cpp +++ b/src/USER-INTEL/pppm_disp_intel.cpp @@ -723,7 +723,7 @@ void PPPMDispIntel::particle_map(double delx, double dely, double delz, double sft, int** p2g, int nup, int nlow, int nxlo, int nylo, int nzlo, int nxhi, int nyhi, int nzhi, - IntelBuffers */*buffers*/) + IntelBuffers * /*buffers*/) { int nlocal = atom->nlocal; int nthr = comm->nthreads; @@ -790,7 +790,7 @@ void PPPMDispIntel::particle_map(double delx, double dely, double delz, ------------------------------------------------------------------------- */ template -void PPPMDispIntel::make_rho_c(IntelBuffers */*buffers*/) +void PPPMDispIntel::make_rho_c(IntelBuffers * /*buffers*/) { // clear 3d density array @@ -940,7 +940,7 @@ void PPPMDispIntel::make_rho_c(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::make_rho_g(IntelBuffers */*buffers*/) +void PPPMDispIntel::make_rho_g(IntelBuffers * /*buffers*/) { // clear 3d density array @@ -1091,7 +1091,7 @@ void PPPMDispIntel::make_rho_g(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::make_rho_a(IntelBuffers */*buffers*/) +void PPPMDispIntel::make_rho_a(IntelBuffers * /*buffers*/) { // clear 3d density array @@ -1225,7 +1225,7 @@ void PPPMDispIntel::make_rho_a(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::make_rho_none(IntelBuffers */*buffers*/) +void PPPMDispIntel::make_rho_none(IntelBuffers * /*buffers*/) { FFT_SCALAR * _noalias global_density = &(density_brick_none[0][nzlo_out_6][nylo_out_6][nxlo_out_6]); @@ -1373,7 +1373,7 @@ void PPPMDispIntel::make_rho_none(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_c_ik(IntelBuffers */*buffers*/) +void PPPMDispIntel::fieldforce_c_ik(IntelBuffers * /*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -1520,7 +1520,7 @@ void PPPMDispIntel::fieldforce_c_ik(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_c_ad(IntelBuffers */*buffers*/) +void PPPMDispIntel::fieldforce_c_ad(IntelBuffers * /*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -1725,7 +1725,7 @@ void PPPMDispIntel::fieldforce_c_ad(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_g_ik(IntelBuffers */*buffers*/) +void PPPMDispIntel::fieldforce_g_ik(IntelBuffers * /*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -1869,7 +1869,7 @@ void PPPMDispIntel::fieldforce_g_ik(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_g_ad(IntelBuffers */*buffers*/) +void PPPMDispIntel::fieldforce_g_ad(IntelBuffers * /*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -2069,7 +2069,7 @@ void PPPMDispIntel::fieldforce_g_ad(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_a_ik(IntelBuffers */*buffers*/) +void PPPMDispIntel::fieldforce_a_ik(IntelBuffers * /*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -2282,7 +2282,7 @@ void PPPMDispIntel::fieldforce_a_ik(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_a_ad(IntelBuffers */*buffers*/) +void PPPMDispIntel::fieldforce_a_ad(IntelBuffers * /*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -2594,7 +2594,7 @@ void PPPMDispIntel::fieldforce_a_ad(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_none_ik(IntelBuffers */*buffers*/) +void PPPMDispIntel::fieldforce_none_ik(IntelBuffers * /*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points @@ -2755,7 +2755,7 @@ void PPPMDispIntel::fieldforce_none_ik(IntelBuffers */*buffers*/) ------------------------------------------------------------------------- */ template -void PPPMDispIntel::fieldforce_none_ad(IntelBuffers */*buffers*/) +void PPPMDispIntel::fieldforce_none_ad(IntelBuffers * /*buffers*/) { // loop over my charges, interpolate electric field from nearby grid points // (nx,ny,nz) = global coords of grid pt to "lower left" of charge diff --git a/src/USER-MANIFOLD/manifold_plane.cpp b/src/USER-MANIFOLD/manifold_plane.cpp index 45a1f4b46e..6c3f17393a 100644 --- a/src/USER-MANIFOLD/manifold_plane.cpp +++ b/src/USER-MANIFOLD/manifold_plane.cpp @@ -16,7 +16,7 @@ double manifold_plane::g( const double *x ) } -void manifold_plane::n( const double */*x*/, double *n ) +void manifold_plane::n( const double * /*x*/, double *n ) { n[0] = params[0]; n[1] = params[1]; diff --git a/src/USER-MANIFOLD/manifold_thylakoid.cpp b/src/USER-MANIFOLD/manifold_thylakoid.cpp index 16c4e696d5..93cf60ad03 100644 --- a/src/USER-MANIFOLD/manifold_thylakoid.cpp +++ b/src/USER-MANIFOLD/manifold_thylakoid.cpp @@ -117,7 +117,7 @@ void manifold_thylakoid::n( const double *x, double *n ) } } -thyla_part *manifold_thylakoid::get_thyla_part( const double *x, int */*err_flag*/, std::size_t *idx ) +thyla_part *manifold_thylakoid::get_thyla_part( const double *x, int * /*err_flag*/, std::size_t *idx ) { for( std::size_t i = 0; i < parts.size(); ++i ){ diff --git a/src/USER-MEAMC/pair_meamc.cpp b/src/USER-MEAMC/pair_meamc.cpp index da0e4c1d28..eca1040c9c 100644 --- a/src/USER-MEAMC/pair_meamc.cpp +++ b/src/USER-MEAMC/pair_meamc.cpp @@ -598,7 +598,7 @@ void PairMEAMC::read_files(char *globalfile, char *userfile) /* ---------------------------------------------------------------------- */ int PairMEAMC::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,k,m; diff --git a/src/USER-MESO/pair_mdpd_rhosum.cpp b/src/USER-MESO/pair_mdpd_rhosum.cpp index d705285584..806a63f898 100644 --- a/src/USER-MESO/pair_mdpd_rhosum.cpp +++ b/src/USER-MESO/pair_mdpd_rhosum.cpp @@ -246,7 +246,7 @@ double PairMDPDRhoSum::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/ /* ---------------------------------------------------------------------- */ int PairMDPDRhoSum::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) { + int /*pbc_flag*/, int * /*pbc*/) { int i, j, m; double *rho = atom->rho; diff --git a/src/USER-MISC/fix_bond_react.cpp b/src/USER-MISC/fix_bond_react.cpp index 8a05a304f1..a4377e4ce8 100644 --- a/src/USER-MISC/fix_bond_react.cpp +++ b/src/USER-MISC/fix_bond_react.cpp @@ -2628,7 +2628,7 @@ void FixBondReact::post_integrate_respa(int ilevel, int /*iloop*/) /* ---------------------------------------------------------------------- */ int FixBondReact::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,k,m,ns; diff --git a/src/USER-MISC/fix_filter_corotate.cpp b/src/USER-MISC/fix_filter_corotate.cpp index 4a6b3226d4..56ab2b3df9 100644 --- a/src/USER-MISC/fix_filter_corotate.cpp +++ b/src/USER-MISC/fix_filter_corotate.cpp @@ -1699,7 +1699,7 @@ void FixFilterCorotate::general_cluster(int index, int index_in_list) } int FixFilterCorotate::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; double**f = atom->f; diff --git a/src/USER-MISC/fix_pimd.cpp b/src/USER-MISC/fix_pimd.cpp index 506590f02c..eba8ed5d0c 100644 --- a/src/USER-MISC/fix_pimd.cpp +++ b/src/USER-MISC/fix_pimd.cpp @@ -686,7 +686,7 @@ void FixPIMD::comm_exec(double **ptr) /* ---------------------------------------------------------------------- */ int FixPIMD::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/USER-MISC/pair_ilp_graphene_hbn.cpp b/src/USER-MISC/pair_ilp_graphene_hbn.cpp index 2aecbe5d19..7e11cdff4f 100644 --- a/src/USER-MISC/pair_ilp_graphene_hbn.cpp +++ b/src/USER-MISC/pair_ilp_graphene_hbn.cpp @@ -1047,7 +1047,7 @@ double PairILPGrapheneHBN::single(int /*i*/, int /*j*/, int itype, int jtype, do /* ---------------------------------------------------------------------- */ int PairILPGrapheneHBN::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m,id,ip,l; diff --git a/src/USER-MISC/pair_kolmogorov_crespi_full.cpp b/src/USER-MISC/pair_kolmogorov_crespi_full.cpp index 4c1f36c640..bc3bfaeba9 100644 --- a/src/USER-MISC/pair_kolmogorov_crespi_full.cpp +++ b/src/USER-MISC/pair_kolmogorov_crespi_full.cpp @@ -1050,7 +1050,7 @@ double PairKolmogorovCrespiFull::single(int /*i*/, int /*j*/, int itype, int jty /* ---------------------------------------------------------------------- */ int PairKolmogorovCrespiFull::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m,l,ip,id; diff --git a/src/USER-MISC/pair_meam_spline.cpp b/src/USER-MISC/pair_meam_spline.cpp index 1305891b33..e6ea6c2ae4 100644 --- a/src/USER-MISC/pair_meam_spline.cpp +++ b/src/USER-MISC/pair_meam_spline.cpp @@ -600,7 +600,7 @@ double PairMEAMSpline::init_one(int /*i*/, int /*j*/) /* ---------------------------------------------------------------------- */ int PairMEAMSpline::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int* list_iter = list; int* list_iter_end = list + n; @@ -618,14 +618,14 @@ void PairMEAMSpline::unpack_forward_comm(int n, int first, double *buf) /* ---------------------------------------------------------------------- */ -int PairMEAMSpline::pack_reverse_comm(int /*n*/, int /*first*/, double */*buf*/) +int PairMEAMSpline::pack_reverse_comm(int /*n*/, int /*first*/, double * /*buf*/) { return 0; } /* ---------------------------------------------------------------------- */ -void PairMEAMSpline::unpack_reverse_comm(int /*n*/, int */*list*/, double */*buf*/) +void PairMEAMSpline::unpack_reverse_comm(int /*n*/, int * /*list*/, double * /*buf*/) { } diff --git a/src/USER-MISC/pair_meam_sw_spline.cpp b/src/USER-MISC/pair_meam_sw_spline.cpp index be0ac1c35b..891913ccfc 100644 --- a/src/USER-MISC/pair_meam_sw_spline.cpp +++ b/src/USER-MISC/pair_meam_sw_spline.cpp @@ -560,7 +560,7 @@ double PairMEAMSWSpline::init_one(int /*i*/, int /*j*/) /* ---------------------------------------------------------------------- */ int PairMEAMSWSpline::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int* list_iter = list; int* list_iter_end = list + n; @@ -578,14 +578,14 @@ void PairMEAMSWSpline::unpack_forward_comm(int n, int first, double *buf) /* ---------------------------------------------------------------------- */ -int PairMEAMSWSpline::pack_reverse_comm(int /*n*/, int /*first*/, double */*buf*/) +int PairMEAMSWSpline::pack_reverse_comm(int /*n*/, int /*first*/, double * /*buf*/) { return 0; } /* ---------------------------------------------------------------------- */ -void PairMEAMSWSpline::unpack_reverse_comm(int /*n*/, int */*list*/, double */*buf*/) +void PairMEAMSWSpline::unpack_reverse_comm(int /*n*/, int * /*list*/, double * /*buf*/) { } diff --git a/src/USER-REAXC/fix_qeq_reax.cpp b/src/USER-REAXC/fix_qeq_reax.cpp index a6e59f7620..6f0b93235f 100644 --- a/src/USER-REAXC/fix_qeq_reax.cpp +++ b/src/USER-REAXC/fix_qeq_reax.cpp @@ -833,7 +833,7 @@ void FixQEqReax::calculate_Q() /* ---------------------------------------------------------------------- */ int FixQEqReax::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int m; diff --git a/src/USER-REAXC/fix_reaxc.cpp b/src/USER-REAXC/fix_reaxc.cpp index df1d7db085..c470173663 100644 --- a/src/USER-REAXC/fix_reaxc.cpp +++ b/src/USER-REAXC/fix_reaxc.cpp @@ -136,7 +136,7 @@ int FixReaxC::unpack_exchange(int nlocal, double *buf) /* ---------------------------------------------------------------------- */ int FixReaxC::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/USER-REAXC/fix_reaxc_bonds.cpp b/src/USER-REAXC/fix_reaxc_bonds.cpp index f3e592a682..fb40b2042e 100644 --- a/src/USER-REAXC/fix_reaxc_bonds.cpp +++ b/src/USER-REAXC/fix_reaxc_bonds.cpp @@ -137,7 +137,7 @@ void FixReaxCBonds::end_of_step() /* ---------------------------------------------------------------------- */ -void FixReaxCBonds::Output_ReaxC_Bonds(bigint /*ntimestep*/, FILE */*fp*/) +void FixReaxCBonds::Output_ReaxC_Bonds(bigint /*ntimestep*/, FILE * /*fp*/) { int i, j; @@ -185,7 +185,7 @@ void FixReaxCBonds::Output_ReaxC_Bonds(bigint /*ntimestep*/, FILE */*fp*/) /* ---------------------------------------------------------------------- */ -void FixReaxCBonds::FindBond(struct _reax_list */*lists*/, int &numbonds) +void FixReaxCBonds::FindBond(struct _reax_list * /*lists*/, int &numbonds) { int *ilist, i, ii, inum; int j, pj, nj; diff --git a/src/USER-REAXC/fix_reaxc_species.cpp b/src/USER-REAXC/fix_reaxc_species.cpp index abb8708d8d..8ec7f4174f 100644 --- a/src/USER-REAXC/fix_reaxc_species.cpp +++ b/src/USER-REAXC/fix_reaxc_species.cpp @@ -442,7 +442,7 @@ void FixReaxCSpecies::post_integrate() /* ---------------------------------------------------------------------- */ -void FixReaxCSpecies::Output_ReaxC_Bonds(bigint ntimestep, FILE */*fp*/) +void FixReaxCSpecies::Output_ReaxC_Bonds(bigint ntimestep, FILE * /*fp*/) { int Nmole, Nspec; @@ -946,7 +946,7 @@ int FixReaxCSpecies::nint(const double &r) /* ---------------------------------------------------------------------- */ int FixReaxCSpecies::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) + int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/USER-REAXC/reaxc_bond_orders.cpp b/src/USER-REAXC/reaxc_bond_orders.cpp index 02df9ec518..572d27526c 100644 --- a/src/USER-REAXC/reaxc_bond_orders.cpp +++ b/src/USER-REAXC/reaxc_bond_orders.cpp @@ -359,8 +359,8 @@ int BOp( storage *workspace, reax_list *bonds, double bo_cut, } -void BO( reax_system *system, control_params */*control*/, simulation_data */*data*/, - storage *workspace, reax_list **lists, output_controls */*out_control*/ ) +void BO( reax_system *system, control_params * /*control*/, simulation_data * /*data*/, + storage *workspace, reax_list **lists, output_controls * /*out_control*/ ) { int i, j, pj, type_i, type_j; int start_i, end_i, sym_index; diff --git a/src/USER-REAXC/reaxc_bonds.cpp b/src/USER-REAXC/reaxc_bonds.cpp index a26f70c543..6fde18e5c2 100644 --- a/src/USER-REAXC/reaxc_bonds.cpp +++ b/src/USER-REAXC/reaxc_bonds.cpp @@ -31,9 +31,9 @@ #include "reaxc_tool_box.h" #include "reaxc_vector.h" -void Bonds( reax_system *system, control_params */*control*/, +void Bonds( reax_system *system, control_params * /*control*/, simulation_data *data, storage *workspace, reax_list **lists, - output_controls */*out_control*/ ) + output_controls * /*out_control*/ ) { int i, j, pj, natoms; int start_i, end_i; diff --git a/src/USER-REAXC/reaxc_forces.cpp b/src/USER-REAXC/reaxc_forces.cpp index 56501eeda0..dfcc9fd4ae 100644 --- a/src/USER-REAXC/reaxc_forces.cpp +++ b/src/USER-REAXC/reaxc_forces.cpp @@ -41,9 +41,9 @@ interaction_function Interaction_Functions[NUM_INTRS]; -void Dummy_Interaction( reax_system */*system*/, control_params */*control*/, - simulation_data */*data*/, storage */*workspace*/, - reax_list **/*lists*/, output_controls */*out_control*/ ) +void Dummy_Interaction( reax_system * /*system*/, control_params * /*control*/, + simulation_data * /*data*/, storage * /*workspace*/, + reax_list **/*lists*/, output_controls * /*out_control*/ ) { } @@ -98,7 +98,7 @@ void Compute_NonBonded_Forces( reax_system *system, control_params *control, void Compute_Total_Force( reax_system *system, control_params *control, simulation_data *data, storage *workspace, - reax_list **lists, mpi_datatypes */*mpi_data*/ ) + reax_list **lists, mpi_datatypes * /*mpi_data*/ ) { int i, pj; reax_list *bonds = (*lists) + BONDS; @@ -114,7 +114,7 @@ void Compute_Total_Force( reax_system *system, control_params *control, } -void Validate_Lists( reax_system *system, storage */*workspace*/, reax_list **lists, +void Validate_Lists( reax_system *system, storage * /*workspace*/, reax_list **lists, int step, int /*n*/, int N, int numH, MPI_Comm comm ) { int i, comp, Hindex; @@ -173,7 +173,7 @@ void Validate_Lists( reax_system *system, storage */*workspace*/, reax_list **li void Init_Forces_noQEq( reax_system *system, control_params *control, simulation_data *data, storage *workspace, - reax_list **lists, output_controls */*out_control*/, + reax_list **lists, output_controls * /*out_control*/, MPI_Comm comm ) { int i, j, pj; int start_i, end_i; diff --git a/src/USER-REAXC/reaxc_hydrogen_bonds.cpp b/src/USER-REAXC/reaxc_hydrogen_bonds.cpp index c0b3121a40..6442dd47e9 100644 --- a/src/USER-REAXC/reaxc_hydrogen_bonds.cpp +++ b/src/USER-REAXC/reaxc_hydrogen_bonds.cpp @@ -33,7 +33,7 @@ void Hydrogen_Bonds( reax_system *system, control_params *control, simulation_data *data, storage *workspace, - reax_list **lists, output_controls */*out_control*/ ) + reax_list **lists, output_controls * /*out_control*/ ) { int i, j, k, pi, pk; int type_i, type_j, type_k; diff --git a/src/USER-REAXC/reaxc_init_md.cpp b/src/USER-REAXC/reaxc_init_md.cpp index 33614c7c68..88fb9cf17f 100644 --- a/src/USER-REAXC/reaxc_init_md.cpp +++ b/src/USER-REAXC/reaxc_init_md.cpp @@ -36,7 +36,7 @@ #include "reaxc_tool_box.h" #include "reaxc_vector.h" -int Init_System( reax_system *system, control_params *control, char */*msg*/ ) +int Init_System( reax_system *system, control_params *control, char * /*msg*/ ) { int i; reax_atom *atom; @@ -66,7 +66,7 @@ int Init_System( reax_system *system, control_params *control, char */*msg*/ ) int Init_Simulation_Data( reax_system *system, control_params *control, - simulation_data *data, char */*msg*/ ) + simulation_data *data, char * /*msg*/ ) { Reset_Simulation_Data( data, control->virial ); @@ -139,8 +139,8 @@ int Init_Workspace( reax_system *system, control_params *control, /************** setup communication data structures **************/ -int Init_MPI_Datatypes( reax_system *system, storage */*workspace*/, - mpi_datatypes *mpi_data, MPI_Comm comm, char */*msg*/ ) +int Init_MPI_Datatypes( reax_system *system, storage * /*workspace*/, + mpi_datatypes *mpi_data, MPI_Comm comm, char * /*msg*/ ) { /* setup the world */ @@ -151,8 +151,8 @@ int Init_MPI_Datatypes( reax_system *system, storage */*workspace*/, } int Init_Lists( reax_system *system, control_params *control, - simulation_data */*data*/, storage */*workspace*/, reax_list **lists, - mpi_datatypes *mpi_data, char */*msg*/ ) + simulation_data * /*data*/, storage * /*workspace*/, reax_list **lists, + mpi_datatypes *mpi_data, char * /*msg*/ ) { int i, total_hbonds, total_bonds, bond_cap, num_3body, cap_3body, Htop; int *hb_top, *bond_top; diff --git a/src/USER-REAXC/reaxc_io_tools.cpp b/src/USER-REAXC/reaxc_io_tools.cpp index 030912d4b7..b63fee2309 100644 --- a/src/USER-REAXC/reaxc_io_tools.cpp +++ b/src/USER-REAXC/reaxc_io_tools.cpp @@ -88,7 +88,7 @@ int Init_Output_Files( reax_system *system, control_params *control, /************************ close output files ************************/ int Close_Output_Files( reax_system *system, control_params *control, - output_controls *out_control, mpi_datatypes */*mpi_data*/ ) + output_controls *out_control, mpi_datatypes * /*mpi_data*/ ) { if( out_control->write_steps > 0 ) End_Traj( system->my_rank, out_control ); diff --git a/src/USER-REAXC/reaxc_lookup.cpp b/src/USER-REAXC/reaxc_lookup.cpp index 8cc1555c59..918099a631 100644 --- a/src/USER-REAXC/reaxc_lookup.cpp +++ b/src/USER-REAXC/reaxc_lookup.cpp @@ -151,7 +151,7 @@ void Complete_Cubic_Spline( const double *h, const double *f, double v0, double int Init_Lookup_Tables( reax_system *system, control_params *control, - storage *workspace, mpi_datatypes *mpi_data, char */*msg*/ ) + storage *workspace, mpi_datatypes *mpi_data, char * /*msg*/ ) { int i, j, r; int num_atom_types; diff --git a/src/USER-REAXC/reaxc_multi_body.cpp b/src/USER-REAXC/reaxc_multi_body.cpp index e599a3d86e..360a9431cf 100644 --- a/src/USER-REAXC/reaxc_multi_body.cpp +++ b/src/USER-REAXC/reaxc_multi_body.cpp @@ -32,7 +32,7 @@ void Atom_Energy( reax_system *system, control_params *control, simulation_data *data, storage *workspace, reax_list **lists, - output_controls */*out_control*/ ) + output_controls * /*out_control*/ ) { int i, j, pj, type_i, type_j; double Delta_lpcorr, dfvl; diff --git a/src/USER-REAXC/reaxc_nonbonded.cpp b/src/USER-REAXC/reaxc_nonbonded.cpp index 731b1602e9..b44632ec29 100644 --- a/src/USER-REAXC/reaxc_nonbonded.cpp +++ b/src/USER-REAXC/reaxc_nonbonded.cpp @@ -33,7 +33,7 @@ void vdW_Coulomb_Energy( reax_system *system, control_params *control, simulation_data *data, storage *workspace, - reax_list **lists, output_controls */*out_control*/ ) + reax_list **lists, output_controls * /*out_control*/ ) { int i, j, pj, natoms; int start_i, end_i, flag; @@ -206,7 +206,7 @@ void vdW_Coulomb_Energy( reax_system *system, control_params *control, void Tabulated_vdW_Coulomb_Energy( reax_system *system,control_params *control, simulation_data *data, storage *workspace, reax_list **lists, - output_controls */*out_control*/ ) + output_controls * /*out_control*/ ) { int i, j, pj, r, natoms; int type_i, type_j, tmin, tmax; diff --git a/src/USER-REAXC/reaxc_torsion_angles.cpp b/src/USER-REAXC/reaxc_torsion_angles.cpp index d6f38d3765..2abfbde61d 100644 --- a/src/USER-REAXC/reaxc_torsion_angles.cpp +++ b/src/USER-REAXC/reaxc_torsion_angles.cpp @@ -41,7 +41,7 @@ double Calculate_Omega( rvec dvec_ij, double r_ij, three_body_interaction_data *p_jkl, rvec dcos_omega_di, rvec dcos_omega_dj, rvec dcos_omega_dk, rvec dcos_omega_dl, - output_controls */*out_control*/ ) + output_controls * /*out_control*/ ) { double unnorm_cos_omega, unnorm_sin_omega, omega; double sin_ijk, cos_ijk, sin_jkl, cos_jkl; diff --git a/src/USER-REAXC/reaxc_traj.cpp b/src/USER-REAXC/reaxc_traj.cpp index f980120a59..c1f3e8ae8f 100644 --- a/src/USER-REAXC/reaxc_traj.cpp +++ b/src/USER-REAXC/reaxc_traj.cpp @@ -48,7 +48,7 @@ int Reallocate_Output_Buffer( output_controls *out_control, int req_space, } -void Write_Skip_Line( output_controls *out_control, mpi_datatypes */*mpi_data*/, +void Write_Skip_Line( output_controls *out_control, mpi_datatypes * /*mpi_data*/, int my_rank, int skip, int num_section ) { if( my_rank == MASTER_NODE ) @@ -259,7 +259,7 @@ int Write_Header( reax_system *system, control_params *control, } -int Write_Init_Desc( reax_system *system, control_params */*control*/, +int Write_Init_Desc( reax_system *system, control_params * /*control*/, output_controls *out_control, mpi_datatypes *mpi_data ) { int i, me, np, cnt, buffer_len, buffer_req; @@ -482,7 +482,7 @@ int Write_Frame_Header( reax_system *system, control_params *control, -int Write_Atoms( reax_system *system, control_params */*control*/, +int Write_Atoms( reax_system *system, control_params * /*control*/, output_controls *out_control, mpi_datatypes *mpi_data ) { int i, me, np, line_len, buffer_len, buffer_req, cnt; diff --git a/src/USER-REAXC/reaxc_valence_angles.cpp b/src/USER-REAXC/reaxc_valence_angles.cpp index 35342c9173..118735fbbd 100644 --- a/src/USER-REAXC/reaxc_valence_angles.cpp +++ b/src/USER-REAXC/reaxc_valence_angles.cpp @@ -76,7 +76,7 @@ void Calculate_dCos_Theta( rvec dvec_ji, double d_ji, rvec dvec_jk, double d_jk, void Valence_Angles( reax_system *system, control_params *control, simulation_data *data, storage *workspace, - reax_list **lists, output_controls */*out_control*/ ) + reax_list **lists, output_controls * /*out_control*/ ) { int i, j, pi, k, pk, t; int type_i, type_j, type_k; diff --git a/src/USER-SMD/atom_vec_smd.cpp b/src/USER-SMD/atom_vec_smd.cpp index 97a2fb0349..020284312b 100644 --- a/src/USER-SMD/atom_vec_smd.cpp +++ b/src/USER-SMD/atom_vec_smd.cpp @@ -208,7 +208,7 @@ void AtomVecSMD::copy(int i, int j, int delflag) { /* ---------------------------------------------------------------------- */ -int AtomVecSMD::pack_comm(int /*n*/, int */*list*/, double */*buf*/, int /*pbc_flag*/, int */*pbc*/) { +int AtomVecSMD::pack_comm(int /*n*/, int * /*list*/, double * /*buf*/, int /*pbc_flag*/, int * /*pbc*/) { error->one(FLERR, "atom vec tlsph can only be used with ghost velocities turned on"); return -1; } @@ -333,7 +333,7 @@ int AtomVecSMD::pack_comm_hybrid(int n, int *list, double *buf) { /* ---------------------------------------------------------------------- */ -void AtomVecSMD::unpack_comm(int /*n*/, int /*first*/, double */*buf*/) { +void AtomVecSMD::unpack_comm(int /*n*/, int /*first*/, double * /*buf*/) { error->one(FLERR, "atom vec tlsph can only be used with ghost velocities turned on"); } @@ -441,7 +441,7 @@ int AtomVecSMD::unpack_reverse_hybrid(int n, int *list, double *buf) { /* ---------------------------------------------------------------------- */ -int AtomVecSMD::pack_border(int /*n*/, int */*list*/, double */*buf*/, int /*pbc_flag*/, int */*pbc*/) { +int AtomVecSMD::pack_border(int /*n*/, int * /*list*/, double * /*buf*/, int /*pbc_flag*/, int * /*pbc*/) { error->one(FLERR, "atom vec tlsph can only be used with ghost velocities turned on"); return -1; } @@ -633,7 +633,7 @@ int AtomVecSMD::pack_border_hybrid(int n, int *list, double *buf) { /* ---------------------------------------------------------------------- */ -void AtomVecSMD::unpack_border(int /*n*/, int /*first*/, double */*buf*/) { +void AtomVecSMD::unpack_border(int /*n*/, int /*first*/, double * /*buf*/) { error->one(FLERR, "atom vec tlsph can only be used with ghost velocities turned on"); } @@ -1158,7 +1158,7 @@ void AtomVecSMD::pack_data(double **buf) { pack hybrid atom info for data file ------------------------------------------------------------------------- */ -int AtomVecSMD::pack_data_hybrid(int /*i*/, double */*buf*/) { +int AtomVecSMD::pack_data_hybrid(int /*i*/, double * /*buf*/) { error->one(FLERR, "hybrid atom style functionality not yet implemented for atom style smd"); return -1; } @@ -1180,7 +1180,7 @@ void AtomVecSMD::write_data(FILE *fp, int n, double **buf) { write hybrid atom info to data file ------------------------------------------------------------------------- */ -int AtomVecSMD::write_data_hybrid(FILE */*fp*/, double */*buf*/) { +int AtomVecSMD::write_data_hybrid(FILE * /*fp*/, double * /*buf*/) { error->one(FLERR, "hybrid atom style functionality not yet implemented for atom style smd"); return -1; } @@ -1203,7 +1203,7 @@ void AtomVecSMD::pack_vel(double **buf) { pack hybrid velocity info for data file ------------------------------------------------------------------------- */ -int AtomVecSMD::pack_vel_hybrid(int /*i*/, double */*buf*/) { +int AtomVecSMD::pack_vel_hybrid(int /*i*/, double * /*buf*/) { error->one(FLERR, "hybrid atom style functionality not yet implemented for atom style smd"); return 0; } @@ -1222,7 +1222,7 @@ void AtomVecSMD::write_vel(FILE *fp, int n, double **buf) { write hybrid velocity info to data file ------------------------------------------------------------------------- */ -int AtomVecSMD::write_vel_hybrid(FILE */*fp*/, double */*buf*/) { +int AtomVecSMD::write_vel_hybrid(FILE * /*fp*/, double * /*buf*/) { error->one(FLERR, "hybrid atom style functionality not yet implemented for atom style smd"); return 3; } diff --git a/src/USER-SMD/fix_smd_move_triangulated_surface.cpp b/src/USER-SMD/fix_smd_move_triangulated_surface.cpp index 1515849c53..b0944f1186 100644 --- a/src/USER-SMD/fix_smd_move_triangulated_surface.cpp +++ b/src/USER-SMD/fix_smd_move_triangulated_surface.cpp @@ -461,7 +461,7 @@ void FixSMDMoveTriSurf::reset_dt() { /* ---------------------------------------------------------------------- */ -int FixSMDMoveTriSurf::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { +int FixSMDMoveTriSurf::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { int i, j, m; double **x0 = atom->x0; double **smd_data_9 = atom->smd_data_9; diff --git a/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp b/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp index 8af12acd99..a2813cc3ca 100644 --- a/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp +++ b/src/USER-SMD/fix_smd_tlsph_reference_configuration.cpp @@ -512,7 +512,7 @@ int FixSMD_TLSPH_ReferenceConfiguration::size_restart(int nlocal) { /* ---------------------------------------------------------------------- */ -int FixSMD_TLSPH_ReferenceConfiguration::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { +int FixSMD_TLSPH_ReferenceConfiguration::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { int i, j, m; double *radius = atom->radius; double *vfrac = atom->vfrac; diff --git a/src/USER-SMD/pair_smd_tlsph.cpp b/src/USER-SMD/pair_smd_tlsph.cpp index f9922ef222..09fe3b1180 100644 --- a/src/USER-SMD/pair_smd_tlsph.cpp +++ b/src/USER-SMD/pair_smd_tlsph.cpp @@ -1839,7 +1839,7 @@ void *PairTlsph::extract(const char *str, int &/*i*/) { /* ---------------------------------------------------------------------- */ -int PairTlsph::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { +int PairTlsph::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { int i, j, m; tagint *mol = atom->molecule; double *damage = atom->damage; diff --git a/src/USER-SMD/pair_smd_ulsph.cpp b/src/USER-SMD/pair_smd_ulsph.cpp index aa88e125d6..ff3720b2ff 100644 --- a/src/USER-SMD/pair_smd_ulsph.cpp +++ b/src/USER-SMD/pair_smd_ulsph.cpp @@ -1487,7 +1487,7 @@ double PairULSPH::memory_usage() { /* ---------------------------------------------------------------------- */ -int PairULSPH::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) { +int PairULSPH::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { double *vfrac = atom->vfrac; double *eff_plastic_strain = atom->eff_plastic_strain; int i, j, m; diff --git a/src/USER-SMTBQ/pair_smtbq.cpp b/src/USER-SMTBQ/pair_smtbq.cpp index 9eee7d0728..a8cce49749 100644 --- a/src/USER-SMTBQ/pair_smtbq.cpp +++ b/src/USER-SMTBQ/pair_smtbq.cpp @@ -3334,7 +3334,7 @@ void PairSMTBQ::groupQEqAllParallel_QEq() /* ---------------------------------------------------------------------- */ -void PairSMTBQ::Init_charge(int */*nQEq*/, int */*nQEqa*/, int */*nQEqc*/) +void PairSMTBQ::Init_charge(int * /*nQEq*/, int * /*nQEqa*/, int * /*nQEqc*/) { int ii,i,gp,itype; int *ilist,test[nteam],init[nteam]; @@ -3391,7 +3391,7 @@ void PairSMTBQ::Init_charge(int */*nQEq*/, int */*nQEqa*/, int */*nQEqc*/) * COMMUNICATION * ---------------------------------------------------------------------- */ -int PairSMTBQ::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int */*pbc*/) +int PairSMTBQ::pack_forward_comm(int n, int *list, double *buf, int /*pbc_flag*/, int * /*pbc*/) { int i,j,m; diff --git a/src/USER-SPH/pair_sph_rhosum.cpp b/src/USER-SPH/pair_sph_rhosum.cpp index 9b5a535288..7a3c78efd0 100644 --- a/src/USER-SPH/pair_sph_rhosum.cpp +++ b/src/USER-SPH/pair_sph_rhosum.cpp @@ -288,7 +288,7 @@ double PairSPHRhoSum::single(int /*i*/, int /*j*/, int /*itype*/, int /*jtype*/, /* ---------------------------------------------------------------------- */ int PairSPHRhoSum::pack_forward_comm(int n, int *list, double *buf, - int /*pbc_flag*/, int */*pbc*/) { + int /*pbc_flag*/, int * /*pbc*/) { int i, j, m; double *rho = atom->rho; diff --git a/src/fix_property_atom.cpp b/src/fix_property_atom.cpp index fc99137c3d..5b12b6def2 100644 --- a/src/fix_property_atom.cpp +++ b/src/fix_property_atom.cpp @@ -292,7 +292,7 @@ void FixPropertyAtom::read_data_section(char *keyword, int n, char *buf, return # of lines in section of data file labeled by keyword ------------------------------------------------------------------------- */ -bigint FixPropertyAtom::read_data_skip_lines(char */*keyword*/) +bigint FixPropertyAtom::read_data_skip_lines(char * /*keyword*/) { return atom->natoms; } diff --git a/src/improper_zero.cpp b/src/improper_zero.cpp index 86c724e17d..8a1fa529c6 100644 --- a/src/improper_zero.cpp +++ b/src/improper_zero.cpp @@ -99,13 +99,13 @@ void ImproperZero::coeff(int narg, char **arg) proc 0 writes out coeffs to restart file ------------------------------------------------------------------------- */ -void ImproperZero::write_restart(FILE */*fp*/) {} +void ImproperZero::write_restart(FILE * /*fp*/) {} /* ---------------------------------------------------------------------- proc 0 reads coeffs from restart file, bcasts them ------------------------------------------------------------------------- */ -void ImproperZero::read_restart(FILE */*fp*/) +void ImproperZero::read_restart(FILE * /*fp*/) { allocate(); for (int i = 1; i <= atom->nimpropertypes; i++) setflag[i] = 1; diff --git a/src/library.cpp b/src/library.cpp index 83e13efd08..245ae7ba84 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -336,7 +336,7 @@ void lammps_free(void *ptr) customize by adding names ------------------------------------------------------------------------- */ -int lammps_extract_setting(void */*ptr*/, char *name) +int lammps_extract_setting(void * /*ptr*/, char *name) { if (strcmp(name,"bigint") == 0) return sizeof(bigint); if (strcmp(name,"tagint") == 0) return sizeof(tagint); diff --git a/src/rcb.cpp b/src/rcb.cpp index 644f879c73..630cef309a 100644 --- a/src/rcb.cpp +++ b/src/rcb.cpp @@ -1108,7 +1108,7 @@ void RCB::compute_old(int dimension, int n, double **x, double *wt, merge of each component of an RCB bounding box ------------------------------------------------------------------------- */ -void box_merge(void *in, void *inout, int */*len*/, MPI_Datatype */*dptr*/) +void box_merge(void *in, void *inout, int * /*len*/, MPI_Datatype * /*dptr*/) { RCB::BBox *box1 = (RCB::BBox *) in; @@ -1138,7 +1138,7 @@ void box_merge(void *in, void *inout, int */*len*/, MPI_Datatype */*dptr*/) all procs must get same proclo,prochi ------------------------------------------------------------------------- */ -void median_merge(void *in, void *inout, int */*len*/, MPI_Datatype */*dptr*/) +void median_merge(void *in, void *inout, int * /*len*/, MPI_Datatype * /*dptr*/) { RCB::Median *med1 = (RCB::Median *) in; From a404da02d54d0c537a5c532eb545972ecb531f1a Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 27 Aug 2018 22:36:38 -0400 Subject: [PATCH 617/675] Use LMP_UNUSED_PARAM macro instead of existing workarounds --- src/image.cpp | 6 ++++-- src/lmptype.h | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/image.cpp b/src/image.cpp index 1e428921a2..3df167bbf6 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -992,7 +992,6 @@ void Image::compute_SSAO() void Image::write_JPG(FILE *fp) { - (void)(fp); // suppress unused parameter warning #ifdef LAMMPS_JPEG struct jpeg_compress_struct cinfo; struct jpeg_error_mgr jerr; @@ -1018,6 +1017,8 @@ void Image::write_JPG(FILE *fp) jpeg_finish_compress(&cinfo); jpeg_destroy_compress(&cinfo); +#else + LMP_UNUSED_PARAM(fp); #endif } @@ -1025,7 +1026,6 @@ void Image::write_JPG(FILE *fp) void Image::write_PNG(FILE *fp) { - (void)(fp); // suppress unused parameter warning #ifdef LAMMPS_PNG png_structp png_ptr; png_infop info_ptr; @@ -1076,6 +1076,8 @@ void Image::write_PNG(FILE *fp) png_destroy_write_struct(&png_ptr, &info_ptr); delete[] row_pointers; +#else + LMP_UNUSED_PARAM(fp); #endif } diff --git a/src/lmptype.h b/src/lmptype.h index e5c202aa87..7c3dbc1c3d 100644 --- a/src/lmptype.h +++ b/src/lmptype.h @@ -213,6 +213,8 @@ typedef int bigint; #include "lmpwindows.h" #endif -#define LMP_UNUSED_PARAM(x) (void)x +// suppress unused parameter warning + +#define LMP_UNUSED_PARAM(x) (void)(x) #endif From cb318f55e95e2cd237d4830ea7b3552d509b87ad Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 28 Aug 2018 10:11:16 -0400 Subject: [PATCH 618/675] Add missing or lost cmake changes --- cmake/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 076f1025dc..b0da29db26 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -195,7 +195,7 @@ set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM) set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) -set(OTHER_PACKAGES CORESHELL QEQ) +set(OTHER_PACKAGES CORESHELL QEQ MESSAGE) foreach(PKG ${DEFAULT_PACKAGES}) option(PKG_${PKG} "Build ${PKG} Package" OFF) endforeach() @@ -1198,7 +1198,7 @@ endif() ############################################################################### # Print package summary ############################################################################### -foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES}) +foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES}) if(PKG_${PKG}) message(STATUS "Building package: ${PKG}") endif() From eb850c53264d83a5b11f79cd13f0d5ece2c34482 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 Aug 2018 15:17:31 -0400 Subject: [PATCH 619/675] silence compiler warning about unused static function in shared include file --- src/USER-CGSDK/lj_sdk_common.h | 2 ++ src/USER-CGSDK/pair_lj_sdk.cpp | 1 + src/USER-CGSDK/pair_lj_sdk_coul_long.cpp | 1 + 3 files changed, 4 insertions(+) diff --git a/src/USER-CGSDK/lj_sdk_common.h b/src/USER-CGSDK/lj_sdk_common.h index c1f2cf215a..055d6228fc 100644 --- a/src/USER-CGSDK/lj_sdk_common.h +++ b/src/USER-CGSDK/lj_sdk_common.h @@ -27,6 +27,7 @@ namespace LJSDKParms { // LJ type flags. list of supported LJ exponent combinations enum {LJ_NOT_SET=0, LJ9_6, LJ12_4, LJ12_6, NUM_LJ_TYPES}; +#if defined(LMP_NEED_FIND_SDK_LJ_TYPE) static int find_lj_type(const char *label, const char * const * const list) { for (int i=0; i < NUM_LJ_TYPES; ++i) @@ -34,6 +35,7 @@ namespace LJSDKParms { return LJ_NOT_SET; } +#endif static const char * const lj_type_list[] = {"none", "lj9_6", "lj12_4", "lj12_6"}; static const double lj_prefact[] = {0.0, 6.75, 2.59807621135332, 4.0}; diff --git a/src/USER-CGSDK/pair_lj_sdk.cpp b/src/USER-CGSDK/pair_lj_sdk.cpp index cbcba7f6b2..d6e755aaab 100644 --- a/src/USER-CGSDK/pair_lj_sdk.cpp +++ b/src/USER-CGSDK/pair_lj_sdk.cpp @@ -33,6 +33,7 @@ #include "memory.h" #include "error.h" +#define LMP_NEED_FIND_SDK_LJ_TYPE 1 #include "lj_sdk_common.h" using namespace LAMMPS_NS; diff --git a/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp b/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp index 1d93363e20..e1be18c6a8 100644 --- a/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp +++ b/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp @@ -34,6 +34,7 @@ #include "memory.h" #include "error.h" +#define LMP_NEED_FIND_SDK_LJ_TYPE 1 #include "lj_sdk_common.h" using namespace LAMMPS_NS; From 03654b2b7f108064625961b41049c8f6ee24dcce Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 Aug 2018 15:19:07 -0400 Subject: [PATCH 620/675] rename define to better fit LAMMPS' logic --- src/USER-CGSDK/lj_sdk_common.h | 2 +- src/USER-CGSDK/pair_lj_sdk.cpp | 2 +- src/USER-CGSDK/pair_lj_sdk_coul_long.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/USER-CGSDK/lj_sdk_common.h b/src/USER-CGSDK/lj_sdk_common.h index 055d6228fc..51dcb4c2b7 100644 --- a/src/USER-CGSDK/lj_sdk_common.h +++ b/src/USER-CGSDK/lj_sdk_common.h @@ -27,7 +27,7 @@ namespace LJSDKParms { // LJ type flags. list of supported LJ exponent combinations enum {LJ_NOT_SET=0, LJ9_6, LJ12_4, LJ12_6, NUM_LJ_TYPES}; -#if defined(LMP_NEED_FIND_SDK_LJ_TYPE) +#if defined(LMP_NEED_SDK_FIND_LJ_TYPE) static int find_lj_type(const char *label, const char * const * const list) { for (int i=0; i < NUM_LJ_TYPES; ++i) diff --git a/src/USER-CGSDK/pair_lj_sdk.cpp b/src/USER-CGSDK/pair_lj_sdk.cpp index d6e755aaab..3404beb58a 100644 --- a/src/USER-CGSDK/pair_lj_sdk.cpp +++ b/src/USER-CGSDK/pair_lj_sdk.cpp @@ -33,7 +33,7 @@ #include "memory.h" #include "error.h" -#define LMP_NEED_FIND_SDK_LJ_TYPE 1 +#define LMP_NEED_SDK_FIND_LJ_TYPE 1 #include "lj_sdk_common.h" using namespace LAMMPS_NS; diff --git a/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp b/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp index e1be18c6a8..c51235518b 100644 --- a/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp +++ b/src/USER-CGSDK/pair_lj_sdk_coul_long.cpp @@ -34,7 +34,7 @@ #include "memory.h" #include "error.h" -#define LMP_NEED_FIND_SDK_LJ_TYPE 1 +#define LMP_NEED_SDK_FIND_LJ_TYPE 1 #include "lj_sdk_common.h" using namespace LAMMPS_NS; From 30d45e6773e5eca5065c76c25ad8e0090b9a2cfd Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 28 Aug 2018 15:22:43 -0400 Subject: [PATCH 621/675] Ensure MESSAGE files are added to CMake compilation --- cmake/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index b0da29db26..f22df48afe 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -188,14 +188,14 @@ if(ENABLE_TESTING) endif(ENABLE_TESTING) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR - KSPACE MANYBODY MC MEAM MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP + KSPACE MANYBODY MC MEAM MESSAGE MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM) set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) -set(OTHER_PACKAGES CORESHELL QEQ MESSAGE) +set(OTHER_PACKAGES CORESHELL QEQ) foreach(PKG ${DEFAULT_PACKAGES}) option(PKG_${PKG} "Build ${PKG} Package" OFF) endforeach() From 83d453e78bb6fdf52ab47d61a6e411c6e480b156 Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Tue, 28 Aug 2018 17:08:52 -0600 Subject: [PATCH 622/675] updates to MD protocol and examples --- examples/COUPLE/lammps_mc/README | 20 +-- ...Jul18.zmq.g++.1 => log.28Aug18.file.g++.1} | 40 +++--- ...ul18.file.g++.4 => log.28Aug18.file.g++.4} | 40 +++--- ...Jul18.file.g++.1 => log.28Aug18.zmq.g++.1} | 24 ++-- ...3Jul18.zmq.g++.4 => log.28Aug18.zmq.g++.4} | 36 ++--- examples/COUPLE/lammps_mc/mc.cpp | 7 +- examples/COUPLE/lammps_mc/mc.h | 4 +- examples/COUPLE/lammps_vasp/README | 3 +- examples/COUPLE/lammps_vasp/vasp_wrap.py | 119 ++++++++++++---- examples/message/README | 17 ++- examples/message/Script.sh | 55 ++++++++ examples/message/in.message | 2 + examples/message/in.message.client | 3 + examples/message/in.message.tilt | 30 ++++ examples/message/in.message.tilt.client | 42 ++++++ examples/message/in.message.tilt.server | 31 +++++ ... => log.28Aug18.message.client.file.g++.1} | 21 +-- ... => log.28Aug18.message.client.file.g++.2} | 23 ++-- ...> log.28Aug18.message.client.mpione.g++.1} | 21 +-- ...> log.28Aug18.message.client.mpione.g++.2} | 23 ++-- ...> log.28Aug18.message.client.mpitwo.g++.1} | 25 ++-- ...> log.28Aug18.message.client.mpitwo.g++.2} | 25 ++-- ...1 => log.28Aug18.message.client.zmq.g++.1} | 25 ++-- ...2 => log.28Aug18.message.client.zmq.g++.2} | 25 ++-- ...essage.g++.1 => log.28Aug18.message.g++.1} | 24 ++-- ...essage.g++.4 => log.28Aug18.message.g++.4} | 24 ++-- ... => log.28Aug18.message.server.file.g++.1} | 2 +- ... => log.28Aug18.message.server.file.g++.4} | 2 +- ...> log.28Aug18.message.server.mpione.g++.1} | 2 +- ...> log.28Aug18.message.server.mpione.g++.4} | 2 +- ...> log.28Aug18.message.server.mpitwo.g++.1} | 2 +- ...> log.28Aug18.message.server.mpitwo.g++.4} | 2 +- ...1 => log.28Aug18.message.server.zmq.g++.1} | 2 +- ...4 => log.28Aug18.message.server.zmq.g++.4} | 2 +- ...g.28Aug18.message.tilt.client.mpione.g++.1 | 130 ++++++++++++++++++ ...g.28Aug18.message.tilt.client.mpione.g++.2 | 130 ++++++++++++++++++ ...g.28Aug18.message.tilt.client.mpitwo.g++.1 | 130 ++++++++++++++++++ ...g.28Aug18.message.tilt.client.mpitwo.g++.2 | 130 ++++++++++++++++++ .../log.28Aug18.message.tilt.client.zmq.g++.1 | 130 ++++++++++++++++++ .../log.28Aug18.message.tilt.client.zmq.g++.2 | 130 ++++++++++++++++++ .../message/log.28Aug18.message.tilt.g++.1 | 129 +++++++++++++++++ .../message/log.28Aug18.message.tilt.g++.4 | 129 +++++++++++++++++ ...g.28Aug18.message.tilt.server.mpione.g++.1 | 48 +++++++ ...g.28Aug18.message.tilt.server.mpione.g++.4 | 48 +++++++ ...g.28Aug18.message.tilt.server.mpitwo.g++.1 | 48 +++++++ ...g.28Aug18.message.tilt.server.mpitwo.g++.4 | 48 +++++++ .../log.28Aug18.message.tilt.server.zmq.g++.1 | 48 +++++++ .../log.28Aug18.message.tilt.server.zmq.g++.4 | 48 +++++++ src/MESSAGE/fix_client_md.cpp | 7 +- src/MESSAGE/fix_client_md.h | 10 +- src/MESSAGE/server_md.cpp | 17 +-- src/MESSAGE/server_md.h | 3 +- 52 files changed, 1848 insertions(+), 240 deletions(-) rename examples/COUPLE/lammps_mc/{log.23Jul18.zmq.g++.1 => log.28Aug18.file.g++.1} (91%) rename examples/COUPLE/lammps_mc/{log.23Jul18.file.g++.4 => log.28Aug18.file.g++.4} (88%) rename examples/COUPLE/lammps_mc/{log.23Jul18.file.g++.1 => log.28Aug18.zmq.g++.1} (95%) rename examples/COUPLE/lammps_mc/{log.23Jul18.zmq.g++.4 => log.28Aug18.zmq.g++.4} (90%) create mode 100644 examples/message/Script.sh create mode 100644 examples/message/in.message.tilt create mode 100644 examples/message/in.message.tilt.client create mode 100644 examples/message/in.message.tilt.server rename examples/message/{log.23Jul18.message.client.file.g++.1 => log.28Aug18.message.client.file.g++.1} (81%) rename examples/message/{log.23Jul18.message.client.file.g++.2 => log.28Aug18.message.client.file.g++.2} (78%) rename examples/message/{log.23Jul18.message.client.mpione.g++.1 => log.28Aug18.message.client.mpione.g++.1} (79%) rename examples/message/{log.23Jul18.message.client.mpione.g++.2 => log.28Aug18.message.client.mpione.g++.2} (77%) rename examples/message/{log.23Jul18.message.client.mpitwo.g++.1 => log.28Aug18.message.client.mpitwo.g++.1} (77%) rename examples/message/{log.23Jul18.message.client.mpitwo.g++.2 => log.28Aug18.message.client.mpitwo.g++.2} (76%) rename examples/message/{log.23Jul18.message.client.zmq.g++.1 => log.28Aug18.message.client.zmq.g++.1} (76%) rename examples/message/{log.23Jul18.message.client.zmq.g++.2 => log.28Aug18.message.client.zmq.g++.2} (76%) rename examples/message/{log.23Jul18.message.g++.1 => log.28Aug18.message.g++.1} (76%) rename examples/message/{log.23Jul18.message.g++.4 => log.28Aug18.message.g++.4} (76%) rename examples/message/{log.23Jul18.message.server.file.g++.1 => log.28Aug18.message.server.file.g++.1} (98%) rename examples/message/{log.23Jul18.message.server.file.g++.4 => log.28Aug18.message.server.file.g++.4} (98%) rename examples/message/{log.23Jul18.message.server.mpione.g++.1 => log.28Aug18.message.server.mpione.g++.1} (98%) rename examples/message/{log.23Jul18.message.server.mpione.g++.4 => log.28Aug18.message.server.mpione.g++.4} (98%) rename examples/message/{log.23Jul18.message.server.mpitwo.g++.1 => log.28Aug18.message.server.mpitwo.g++.1} (98%) rename examples/message/{log.23Jul18.message.server.mpitwo.g++.4 => log.28Aug18.message.server.mpitwo.g++.4} (98%) rename examples/message/{log.23Jul18.message.server.zmq.g++.1 => log.28Aug18.message.server.zmq.g++.1} (98%) rename examples/message/{log.23Jul18.message.server.zmq.g++.4 => log.28Aug18.message.server.zmq.g++.4} (98%) create mode 100644 examples/message/log.28Aug18.message.tilt.client.mpione.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.client.mpione.g++.2 create mode 100644 examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.2 create mode 100644 examples/message/log.28Aug18.message.tilt.client.zmq.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.client.zmq.g++.2 create mode 100644 examples/message/log.28Aug18.message.tilt.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.g++.4 create mode 100644 examples/message/log.28Aug18.message.tilt.server.mpione.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.server.mpione.g++.4 create mode 100644 examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.4 create mode 100644 examples/message/log.28Aug18.message.tilt.server.zmq.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.server.zmq.g++.4 diff --git a/examples/COUPLE/lammps_mc/README b/examples/COUPLE/lammps_mc/README index 512f7304de..af4d86f92f 100644 --- a/examples/COUPLE/lammps_mc/README +++ b/examples/COUPLE/lammps_mc/README @@ -26,21 +26,25 @@ Build LAMMPS and the MC client code First, build LAMMPS with its MESSAGE package installed: -cd lammps/lib/message -python Install.py -m -z # build CSlib with MPI and ZMQ support -cd lammps/src -make yes-message -make mpi +% cd lammps/lib/message +% python Install.py -m -z # build CSlib with MPI and ZMQ support +% python Install.py -s -z # also build serial lib and ZMQ support +% cd lammps/src +% make yes-message +% make mpi You can leave off the -z if you do not have ZMQ on your system. -Next build the MC client code: +Next build the MC client code, which will link with the serial CSlib. First edit the Makefile in this dir. The CSLIB variable should be the path to where the LAMMPS lib/message dir is on your system. If you built the CSlib without ZMQ support you will also need to -comment/uncomment two lines. Then you can just type "make" and you -should get an "mc" executable. +comment/uncomment two lines. Then you can just type + +% make + +and you should get an "mc" executable. ---------------- diff --git a/examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.1 b/examples/COUPLE/lammps_mc/log.28Aug18.file.g++.1 similarity index 91% rename from examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.1 rename to examples/COUPLE/lammps_mc/log.28Aug18.file.g++.1 index 18af66d587..0d67c89cf1 100644 --- a/examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.1 +++ b/examples/COUPLE/lammps_mc/log.28Aug18.file.g++.1 @@ -1,10 +1,10 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones Monte Carlo server script variable mode index file if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555" -message server mc zmq *:5555 +message server mc file tmp.couple variable x index 5 variable y index 5 variable z index 5 @@ -24,7 +24,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000612974 secs + Time spent = 0.000649929 secs mass 1 1.0 pair_style lj/cut 2.5 @@ -58,7 +58,7 @@ Step Temp E_pair E_mol TotEng Press 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms -46.6% CPU use with 1 MPI tasks x no OpenMP threads +93.2% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -85,9 +85,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes Step Temp E_pair E_mol TotEng Press 0 1.44 -6.7723127 0 -4.6166327 -5.015531 -Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms +Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms -157.3% CPU use with 1 MPI tasks x no OpenMP threads +93.2% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -97,7 +97,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 1.907e-06 | | |100.00 +Other | | 2.146e-06 | | |100.00 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -119,9 +119,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes Step Temp E_pair E_mol TotEng Press 100 0.7565013 -5.7565768 0 -4.6240944 0.22436405 -Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms +Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms -209.7% CPU use with 1 MPI tasks x no OpenMP threads +157.3% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -131,7 +131,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 9.537e-07 | | |100.00 +Other | | 1.907e-06 | | |100.00 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -153,9 +153,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes Step Temp E_pair E_mol TotEng Press 200 0.73505651 -5.7181381 0 -4.6177585 0.37629943 -Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms +Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms -209.7% CPU use with 1 MPI tasks x no OpenMP threads +139.8% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -165,7 +165,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 9.537e-07 | | |100.00 +Other | | 2.146e-06 | | |100.00 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -187,9 +187,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes Step Temp E_pair E_mol TotEng Press 300 0.76300831 -5.768304 0 -4.6260806 0.15954325 -Loop time of 0 on 1 procs for 0 steps with 500 atoms +Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms -0.0% CPU use with 1 MPI tasks x no OpenMP threads +139.8% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -199,7 +199,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 0 | | | 0.00 +Other | | 2.146e-06 | | |100.00 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -221,9 +221,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes Step Temp E_pair E_mol TotEng Press 400 0.72469448 -5.7077332 0 -4.6228655 0.47669832 -Loop time of 0 on 1 procs for 0 steps with 500 atoms +Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms -0.0% CPU use with 1 MPI tasks x no OpenMP threads +157.3% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -233,7 +233,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 0 | | | 0.00 +Other | | 1.907e-06 | | |100.00 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -251,4 +251,4 @@ Step Temp E_pair E_mol TotEng Press 400 0.72469448 -5.713463 0 -4.6285954 0.44859547 450 0.75305735 -5.7518283 0 -4.6245015 0.34658587 500 0.73092571 -5.7206337 0 -4.6264379 0.43715809 -Total wall time: 0:00:00 +Total wall time: 0:00:02 diff --git a/examples/COUPLE/lammps_mc/log.23Jul18.file.g++.4 b/examples/COUPLE/lammps_mc/log.28Aug18.file.g++.4 similarity index 88% rename from examples/COUPLE/lammps_mc/log.23Jul18.file.g++.4 rename to examples/COUPLE/lammps_mc/log.28Aug18.file.g++.4 index 3b73e52595..2ae51d2461 100644 --- a/examples/COUPLE/lammps_mc/log.23Jul18.file.g++.4 +++ b/examples/COUPLE/lammps_mc/log.28Aug18.file.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones Monte Carlo server script variable mode index file @@ -24,7 +24,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000604868 secs + Time spent = 0.000592947 secs mass 1 1.0 pair_style lj/cut 2.5 @@ -56,9 +56,9 @@ Neighbor list info ... Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 -Loop time of 3.09944e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 3.8147e-06 on 4 procs for 0 steps with 500 atoms -72.6% CPU use with 4 MPI tasks x no OpenMP threads +59.0% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -68,7 +68,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 3.099e-06 | | |100.00 +Other | | 3.815e-06 | | |100.00 Nlocal: 125 ave 125 max 125 min Histogram: 4 0 0 0 0 0 0 0 0 0 @@ -85,9 +85,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 0 1.44 -6.7723127 0 -4.6166327 -5.015531 -Loop time of 3.33786e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 3.03984e-06 on 4 procs for 0 steps with 500 atoms -119.8% CPU use with 4 MPI tasks x no OpenMP threads +106.9% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -97,7 +97,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 3.338e-06 | | |100.00 +Other | | 3.04e-06 | | |100.00 Nlocal: 125 ave 125 max 125 min Histogram: 4 0 0 0 0 0 0 0 0 0 @@ -119,9 +119,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 100 0.75891559 -5.7609392 0 -4.6248426 0.20981291 -Loop time of 3.51667e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 3.75509e-06 on 4 procs for 0 steps with 500 atoms -113.7% CPU use with 4 MPI tasks x no OpenMP threads +113.2% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -131,7 +131,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 3.517e-06 | | |100.00 +Other | | 3.755e-06 | | |100.00 Nlocal: 125 ave 126 max 124 min Histogram: 2 0 0 0 0 0 0 0 0 2 @@ -153,9 +153,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 200 0.73111257 -5.7143906 0 -4.6199151 0.37126023 -Loop time of 2.92063e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 2.563e-06 on 4 procs for 0 steps with 500 atoms -119.8% CPU use with 4 MPI tasks x no OpenMP threads +117.1% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -165,7 +165,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 2.921e-06 | | |100.00 +Other | | 2.563e-06 | | |100.00 Nlocal: 125 ave 126 max 123 min Histogram: 1 0 0 0 0 0 1 0 0 2 @@ -187,9 +187,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 300 0.76392796 -5.7725589 0 -4.6289588 0.17994628 -Loop time of 3.39746e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 3.99351e-06 on 4 procs for 0 steps with 500 atoms -117.7% CPU use with 4 MPI tasks x no OpenMP threads +93.9% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -199,7 +199,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 3.397e-06 | | |100.00 +Other | | 3.994e-06 | | |100.00 Nlocal: 125 ave 128 max 121 min Histogram: 1 0 0 0 0 1 0 1 0 1 @@ -221,9 +221,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 400 0.7319047 -5.7158168 0 -4.6201554 0.49192039 -Loop time of 3.39746e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 3.57628e-06 on 4 procs for 0 steps with 500 atoms -117.7% CPU use with 4 MPI tasks x no OpenMP threads +111.8% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -233,7 +233,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 3.397e-06 | | |100.00 +Other | | 3.576e-06 | | |100.00 Nlocal: 125 ave 132 max 118 min Histogram: 1 0 0 0 0 2 0 0 0 1 diff --git a/examples/COUPLE/lammps_mc/log.23Jul18.file.g++.1 b/examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.1 similarity index 95% rename from examples/COUPLE/lammps_mc/log.23Jul18.file.g++.1 rename to examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.1 index 34e016e0c1..0565487bc6 100644 --- a/examples/COUPLE/lammps_mc/log.23Jul18.file.g++.1 +++ b/examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.1 @@ -1,10 +1,10 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones Monte Carlo server script variable mode index file if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555" -message server mc file tmp.couple +message server mc zmq *:5555 variable x index 5 variable y index 5 variable z index 5 @@ -24,7 +24,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000633001 secs + Time spent = 0.000741005 secs mass 1 1.0 pair_style lj/cut 2.5 @@ -85,9 +85,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes Step Temp E_pair E_mol TotEng Press 0 1.44 -6.7723127 0 -4.6166327 -5.015531 -Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms +Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms -46.6% CPU use with 1 MPI tasks x no OpenMP threads +52.4% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -97,7 +97,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 2.146e-06 | | |100.00 +Other | | 1.907e-06 | | |100.00 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -119,9 +119,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes Step Temp E_pair E_mol TotEng Press 100 0.7565013 -5.7565768 0 -4.6240944 0.22436405 -Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms +Loop time of 1.19209e-06 on 1 procs for 0 steps with 500 atoms -157.3% CPU use with 1 MPI tasks x no OpenMP threads +83.9% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -131,7 +131,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 1.907e-06 | | |100.00 +Other | | 1.192e-06 | | |100.00 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -189,7 +189,7 @@ Step Temp E_pair E_mol TotEng Press 300 0.76300831 -5.768304 0 -4.6260806 0.15954325 Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms -314.6% CPU use with 1 MPI tasks x no OpenMP threads +104.9% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -223,7 +223,7 @@ Step Temp E_pair E_mol TotEng Press 400 0.72469448 -5.7077332 0 -4.6228655 0.47669832 Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms -314.6% CPU use with 1 MPI tasks x no OpenMP threads +209.7% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -251,4 +251,4 @@ Step Temp E_pair E_mol TotEng Press 400 0.72469448 -5.713463 0 -4.6285954 0.44859547 450 0.75305735 -5.7518283 0 -4.6245015 0.34658587 500 0.73092571 -5.7206337 0 -4.6264379 0.43715809 -Total wall time: 0:00:02 +Total wall time: 0:00:00 diff --git a/examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.4 b/examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.4 similarity index 90% rename from examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.4 rename to examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.4 index 480566635f..e74d03235d 100644 --- a/examples/COUPLE/lammps_mc/log.23Jul18.zmq.g++.4 +++ b/examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones Monte Carlo server script variable mode index file @@ -24,7 +24,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000566006 secs + Time spent = 0.000576019 secs mass 1 1.0 pair_style lj/cut 2.5 @@ -56,9 +56,9 @@ Neighbor list info ... Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 -Loop time of 4.29153e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 4.76837e-06 on 4 procs for 0 steps with 500 atoms -99.0% CPU use with 4 MPI tasks x no OpenMP threads +89.1% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -68,7 +68,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 4.292e-06 | | |100.00 +Other | | 4.768e-06 | | |100.00 Nlocal: 125 ave 125 max 125 min Histogram: 4 0 0 0 0 0 0 0 0 0 @@ -85,9 +85,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 0 1.44 -6.7723127 0 -4.6166327 -5.015531 -Loop time of 3.57628e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 3.45707e-06 on 4 procs for 0 steps with 500 atoms -97.9% CPU use with 4 MPI tasks x no OpenMP threads +94.0% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -97,7 +97,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 3.576e-06 | | |100.00 +Other | | 3.457e-06 | | |100.00 Nlocal: 125 ave 125 max 125 min Histogram: 4 0 0 0 0 0 0 0 0 0 @@ -119,9 +119,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 100 0.75891559 -5.7609392 0 -4.6248426 0.20981291 -Loop time of 3.09944e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 3.03984e-06 on 4 procs for 0 steps with 500 atoms -121.0% CPU use with 4 MPI tasks x no OpenMP threads +115.1% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -131,7 +131,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 3.099e-06 | | |100.00 +Other | | 3.04e-06 | | |100.00 Nlocal: 125 ave 126 max 124 min Histogram: 2 0 0 0 0 0 0 0 0 2 @@ -153,9 +153,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 200 0.73111257 -5.7143906 0 -4.6199151 0.37126023 -Loop time of 2.14577e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 2.38419e-06 on 4 procs for 0 steps with 500 atoms -139.8% CPU use with 4 MPI tasks x no OpenMP threads +125.8% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -165,7 +165,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 2.146e-06 | | |100.00 +Other | | 2.384e-06 | | |100.00 Nlocal: 125 ave 126 max 123 min Histogram: 1 0 0 0 0 0 1 0 0 2 @@ -187,9 +187,9 @@ run 0 Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes Step Temp E_pair E_mol TotEng Press 300 0.76392796 -5.7725589 0 -4.6289588 0.17994628 -Loop time of 1.90735e-06 on 4 procs for 0 steps with 500 atoms +Loop time of 2.44379e-06 on 4 procs for 0 steps with 500 atoms -157.3% CPU use with 4 MPI tasks x no OpenMP threads +112.5% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total @@ -199,7 +199,7 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00 Comm | 0 | 0 | 0 | 0.0 | 0.00 Output | 0 | 0 | 0 | 0.0 | 0.00 Modify | 0 | 0 | 0 | 0.0 | 0.00 -Other | | 1.907e-06 | | |100.00 +Other | | 2.444e-06 | | |100.00 Nlocal: 125 ave 128 max 121 min Histogram: 1 0 0 0 0 1 0 1 0 1 @@ -223,7 +223,7 @@ Step Temp E_pair E_mol TotEng Press 400 0.7319047 -5.7158168 0 -4.6201554 0.49192039 Loop time of 2.14577e-06 on 4 procs for 0 steps with 500 atoms -151.5% CPU use with 4 MPI tasks x no OpenMP threads +139.8% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total diff --git a/examples/COUPLE/lammps_mc/mc.cpp b/examples/COUPLE/lammps_mc/mc.cpp index e62a786ac8..7c2e2ce039 100644 --- a/examples/COUPLE/lammps_mc/mc.cpp +++ b/examples/COUPLE/lammps_mc/mc.cpp @@ -92,9 +92,10 @@ CSlib *cs_create(char *mode, char *arg) // MC class // ---------------------------------------------------------------------- -MC::MC(char *mcfile, CSlib *cs_caller) +MC::MC(char *mcfile, void *cs_caller) +//MC::MC(char *mcfile, CSlib *cs_caller) { - cs = cs_caller; + cs_void = cs_caller; // setup MC params @@ -125,6 +126,8 @@ void MC::run() enum{NATOMS=1,EINIT,DISPLACE,ACCEPT,RUN}; + CSlib *cs = (CSlib *) cs_void; + // one-time request for atom count from MD // allocate 1d coord buffer diff --git a/examples/COUPLE/lammps_mc/mc.h b/examples/COUPLE/lammps_mc/mc.h index afeb3d06ab..e9d88523fc 100644 --- a/examples/COUPLE/lammps_mc/mc.h +++ b/examples/COUPLE/lammps_mc/mc.h @@ -14,7 +14,7 @@ class MC { int naccept; // # of accepted MC events int nattempt; // # of attempted MC events - MC(char *, class CSlib *); + MC(char *, void *); ~MC(); void run(); @@ -32,7 +32,7 @@ class MC { int seed; // RNG seed class RanPark *random; - class CSlib *cs; // messaging library + void *cs_void; // messaging library void options(char *); }; diff --git a/examples/COUPLE/lammps_vasp/README b/examples/COUPLE/lammps_vasp/README index 91a85975e6..b301bd779f 100644 --- a/examples/COUPLE/lammps_vasp/README +++ b/examples/COUPLE/lammps_vasp/README @@ -40,7 +40,8 @@ You can run the vasp_wrap.py script as-is to test that the coupling between it and LAMMPS is functional. This will use the included vasprun.xml file output by a previous VASP run. -But the as-is version of vasp_wrap.py will not attempt to run VASP. +But note that the as-is version of vasp_wrap.py will not attempt to +run VASP. To do this, you must edit the 1st vaspcmd line at the top of vasp_wrapper.py to be the launch command needed to run VASP on your diff --git a/examples/COUPLE/lammps_vasp/vasp_wrap.py b/examples/COUPLE/lammps_vasp/vasp_wrap.py index 30d449e31c..1e2c52aa46 100644 --- a/examples/COUPLE/lammps_vasp/vasp_wrap.py +++ b/examples/COUPLE/lammps_vasp/vasp_wrap.py @@ -13,18 +13,25 @@ # creates VASP inputs # invokes VASP to calculate self-consistent energy of that config # reads VASP outputs -# sends message with energy, forces, virial to client +# sends message with energy, forces, pressure to client # NOTES: # check to insure basic VASP input files are in place? -# worry about archiving VASP input/output in special filenames or dirs? -# how to get ordering (by type) of VASP atoms vs LAMMPS atoms -# create one initial permutation vector? +# could archive VASP input/output in special filenames or dirs? +# need to check that POTCAR file is consistent with atom ordering? # could make syntax for launching VASP more flexible # e.g. command-line arg for # of procs +# detect if VASP had an error and return ERROR field, e.g. non-convergence ?? -import sys,subprocess -import xml.etree.ElementTree as ET +from __future__ import print_function +import sys + +version = sys.version_info[0] +if version == 3: + sys.exit("The CSlib python wrapper does not yet support python 3") + +import subprocess +import xml.etree.ElementTree as ET from cslib import CSlib # comment out 2nd line once 1st line is correct for your system @@ -36,8 +43,8 @@ vaspcmd = "touch tmp" # enums matching FixClientMD class in LAMMPS SETUP,STEP = range(1,2+1) -UNITS,DIM,NATOMS,NTYPES,BOXLO,BOXHI,BOXTILT,TYPES,COORDS,CHARGE = range(1,10+1) -FORCES,ENERGY,VIRIAL = range(1,3+1) +DIM,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE = range(1,10+1) +FORCES,ENERGY,VIRIAL,ERROR = range(1,4+1) # ------------------------------------- # functions @@ -45,7 +52,7 @@ FORCES,ENERGY,VIRIAL = range(1,3+1) # error message and exit def error(txt): - print "ERROR:",txt + print("ERROR:",txt) sys.exit(1) # ------------------------------------- @@ -88,9 +95,9 @@ def poscar_write(poscar,natoms,ntypes,types,coords,box): psnew.write(psold[0]) psnew.write(psold[1]) - psnew.write("%g 0.0 0.0\n" % box[0]) - psnew.write("0.0 %g 0.0\n" % box[1]) - psnew.write("0.0 0.0 %g\n" % box[2]) + psnew.write("%g %g %g\n" % (box[0],box[1],box[2])) + psnew.write("%g %g %g\n" % (box[3],box[4],box[5])) + psnew.write("%g %g %g\n" % (box[6],box[7],box[8])) psnew.write(psold[5]) psnew.write(psold[6]) @@ -149,6 +156,7 @@ def vasprun_read(): sxx = stensor[0][0] syy = stensor[1][1] szz = stensor[2][2] + # symmetrize off-diagonal components sxy = 0.5 * (stensor[0][1] + stensor[1][0]) sxz = 0.5 * (stensor[0][2] + stensor[2][0]) syz = 0.5 * (stensor[1][2] + stensor[2][1]) @@ -164,7 +172,7 @@ def vasprun_read(): # command-line args if len(sys.argv) != 3: - print "Syntax: python vasp_wrap.py file/zmq POSCARfile" + print("Syntax: python vasp_wrap.py file/zmq POSCARfile") sys.exit(1) mode = sys.argv[1] @@ -173,7 +181,7 @@ poscar_template = sys.argv[2] if mode == "file": cs = CSlib(1,mode,"tmp.couple",None) elif mode == "zmq": cs = CSlib(1,mode,"*:5555",None) else: - print "Syntax: python vasp_wrap.py file/zmq POSCARfile" + print("Syntax: python vasp_wrap.py file/zmq POSCARfile") sys.exit(1) natoms,ntypes,box = vasp_setup(poscar_template) @@ -196,30 +204,87 @@ while 1: msgID,nfield,fieldID,fieldtype,fieldlen = cs.recv() if msgID < 0: break - # could generalize this to be more like ServerMD class - # allow for box size, atom types, natoms, etc - - # unpack coords from client - # create VASP input - # NOTE: generalize this for general list of atom types - - coords = cs.unpack(COORDS,1) - #types = cs.unpack(2); - types = 2*[1] + # SETUP receive at beginning of each run + # required fields: DIM, PERIODICTY, ORIGIN, BOX, + # NATOMS, NTYPES, TYPES, COORDS + # optional fields: others in enum above, but VASP ignores them + if msgID == SETUP: + + origin = [] + box = [] + natoms_recv = ntypes_recv = 0 + types = [] + coords = [] + + for field in fieldID: + if field == DIM: + dim = cs.unpack_int(DIM) + if dim != 3: error("VASP only performs 3d simulations") + elif field == PERIODICITY: + periodicity = cs.unpack(PERIODICITY,1) + if not periodicity[0] or not periodicity[1] or not periodicity[2]: + error("VASP wrapper only currently supports fully periodic systems") + elif field == ORIGIN: + origin = cs.unpack(ORIGIN,1) + elif field == BOX: + box = cs.unpack(BOX,1) + elif field == NATOMS: + natoms_recv = cs.unpack_int(NATOMS) + if natoms != natoms_recv: + error("VASP wrapper mis-match in number of atoms") + elif field == NTYPES: + ntypes_recv = cs.unpack_int(NTYPES) + if ntypes != ntypes_recv: + error("VASP wrapper mis-match in number of atom types") + elif field == TYPES: + types = cs.unpack(TYPES,1) + elif field == COORDS: + coords = cs.unpack(COORDS,1) + + if not origin or not box or not natoms or not ntypes or \ + not types or not coords: + error("Required VASP wrapper setup field not received"); + + # STEP receive at each timestep of run or minimization + # required fields: COORDS + # optional fields: ORIGIN, BOX + + elif msgID == STEP: + + coords = [] + + for field in fieldID: + if field == COORDS: + coords = cs.unpack(COORDS,1) + elif field == ORIGIN: + origin = cs.unpack(ORIGIN,1) + elif field == BOX: + box = cs.unpack(BOX,1) + + if not coords: error("Required VASP wrapper step field not received"); + + else: error("VASP wrapper received unrecognized message") + + # create POSCAR file + poscar_write(poscar_template,natoms,ntypes,types,coords,box) # invoke VASP - print "\nLaunching VASP ..." - print vaspcmd + print("\nLaunching VASP ...") + print(vaspcmd) subprocess.check_output(vaspcmd,stderr=subprocess.STDOUT,shell=True) # process VASP output energy,forces,virial = vasprun_read() - # return forces, energy, virial to client + # convert VASP kilobars to bars + + for i,value in enumerate(virial): virial[i] *= 1000.0 + + # return forces, energy, pressure to client cs.send(msgID,3); cs.pack(FORCES,4,3*natoms,forces) diff --git a/examples/message/README b/examples/message/README index 617a4249a5..34a5794e7a 100644 --- a/examples/message/README +++ b/examples/message/README @@ -26,6 +26,9 @@ lmp_mpi -v x 10 -v y 10 -v z 20 # 8000 particles This applies to either in.message or in.message.client +You can also run the in.message scripts with an NPT integrator +instead of NVE, if you comment/uncomment the correct lines. + The client and server script define a "mode" variable which can be set to file, zmq, mpi/one, or mpi/two, as illustrated below. @@ -38,6 +41,8 @@ do one of these: % lmp_serial < in.message % mpirun -np 4 lmp_mpi < in.message +Or run with in.message.tilt. + -------------- To run in client/server mode: @@ -75,6 +80,11 @@ processes together to exchange MPI messages between them. -------------- +NOTE: the Script.sh file has comands to perform all the +runs listed below. + +-------------- + File or ZMQ or mpi/two modes of messaging: % mpirun -np 1 lmp_mpi -v mode file -log log.client < in.message.client & @@ -86,13 +96,18 @@ File or ZMQ or mpi/two modes of messaging: % mpirun -np 2 lmp_mpi -v mode mpitwo -log log.client < in.message.client & % mpirun -np 4 lmp_mpi -v mode mpitwo -log log.server < in.message.server +Or run with in.message.tilt.client/server. +Don't run the tilt files with the "file" mode; they run too slow. + -------------- Mpi/one mode of messaging: Launch LAMMPS twice in a single mpirun command: -mpirun -np 2 lmp_mpi -mpi 0 -in in.message.client -v mode mpione -log log.client : -np 4 lmp_mpi -mpi 1 -in in.message.server -v mode mpione -log log.server +% mpirun -np 2 lmp_mpi -mpi 0 -in in.message.client -v mode mpione -log log.client : -np 4 lmp_mpi -mpi 1 -in in.message.server -v mode mpione -log log.server + +Or run with in.message.tilt.client/server. The two -np values determine how many procs the client and the server run on. diff --git a/examples/message/Script.sh b/examples/message/Script.sh new file mode 100644 index 0000000000..0125bdd500 --- /dev/null +++ b/examples/message/Script.sh @@ -0,0 +1,55 @@ +# sample launch script + +# message on 1 proc each + +mpirun -np 1 lmp_mpi -log log.message.g++.1 < in.message + +mpirun -np 1 lmp_mpi -v mode file -log log.message.client.file.g++.1 < in.message.client & +mpirun -np 1 lmp_mpi -v mode file -log log.message.server.file.g++.1 < in.message.server + +mpirun -np 1 lmp_mpi -v mode zmq -log log.message.client.zmq.g++.1 < in.message.client & +mpirun -np 1 lmp_mpi -v mode zmq -log log.message.server.zmq.g++.1 < in.message.server + +mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.client.mpitwo.g++.1 < in.message.client & +mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.server.mpitwo.g++.1 < in.message.server + +mpirun -np 1 lmp_mpi -mpi 0 -in in.message.client -v mode mpione -log log.message.client.mpione.g++.1 : -np 1 lmp_mpi -mpi 1 -in in.message.server -v mode mpione -log log.message.server.mpione.g++.1 + +# message on 2/4 procs each + +mpirun -np 4 lmp_mpi -log log.message.g++.4 < in.message + +mpirun -np 2 lmp_mpi -v mode file -log log.message.client.file.g++.2 < in.message.client & +mpirun -np 4 lmp_mpi -v mode file -log log.message.server.file.g++.4 < in.message.server + +mpirun -np 2 lmp_mpi -v mode zmq -log log.message.client.zmq.g++.2 < in.message.client & +mpirun -np 4 lmp_mpi -v mode zmq -log log.message.server.zmq.g++.4 < in.message.server + +mpirun -np 2 lmp_mpi -v mode mpitwo -log log.message.client.mpitwo.g++.2 < in.message.client & +mpirun -np 4 lmp_mpi -v mode mpitwo -log log.message.server.mpitwo.g++.4 < in.message.server + +mpirun -np 2 lmp_mpi -mpi 0 -in in.message.client -v mode mpione -log log.message.client.mpione.g++.2 : -np 4 lmp_mpi -mpi 1 -in in.message.server -v mode mpione -log log.message.server.mpione.g++.4 + +# message.tilt on 1 proc each + +mpirun -np 1 lmp_mpi -log log.message.tilt.g++.1 < in.message.tilt + +mpirun -np 1 lmp_mpi -v mode zmq -log log.message.tilt.client.zmq.g++.1 < in.message.tilt.client & +mpirun -np 1 lmp_mpi -v mode zmq -log log.message.tilt.server.zmq.g++.1 < in.message.tilt.server + +mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.tilt.client.mpitwo.g++.1 < in.message.tilt.client & +mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.tilt.server.mpitwo.g++.1 < in.message.tilt.server + +mpirun -np 1 lmp_mpi -mpi 0 -in in.message.tilt.client -v mode mpione -log log.message.tilt.client.mpione.g++.1 : -np 1 lmp_mpi -mpi 1 -in in.message.tilt.server -v mode mpione -log log.message.tilt.server.mpione.g++.1 + +# message.tilt on 2/4 procs each + +mpirun -np 1 lmp_mpi -log log.message.tilt.g++.4 < in.message.tilt + +mpirun -np 2 lmp_mpi -v mode zmq -log log.message.tilt.client.zmq.g++.2 < in.message.tilt.client & +mpirun -np 4 lmp_mpi -v mode zmq -log log.message.tilt.server.zmq.g++.4 < in.message.tilt.server + +mpirun -np 2 lmp_mpi -v mode mpitwo -log log.message.tilt.client.mpitwo.g++.2 < in.message.tilt.client & +mpirun -np 4 lmp_mpi -v mode mpitwo -log log.message.tilt.server.mpitwo.g++.4 < in.message.tilt.server + +mpirun -np 2 lmp_mpi -mpi 0 -in in.message.tilt.client -v mode mpione -log log.message.tilt.client.mpione.g++.2 : -np 4 lmp_mpi -mpi 1 -in in.message.tilt.server -v mode mpione -log log.message.tilt.server.mpione.g++.4 diff --git a/examples/message/in.message b/examples/message/in.message index 951ff95e3b..7fbbffc355 100644 --- a/examples/message/in.message +++ b/examples/message/in.message @@ -22,6 +22,8 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 thermo 10 run 50 diff --git a/examples/message/in.message.client b/examples/message/in.message.client index 0c548ef2e5..f1ec644a80 100644 --- a/examples/message/in.message.client +++ b/examples/message/in.message.client @@ -31,6 +31,9 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + fix 2 all client/md fix_modify 2 energy yes diff --git a/examples/message/in.message.tilt b/examples/message/in.message.tilt new file mode 100644 index 0000000000..51126eae1e --- /dev/null +++ b/examples/message/in.message.tilt @@ -0,0 +1,30 @@ +# 2d NEMD simulation - no client/server mode + +units lj +atom_style atomic +dimension 2 + +lattice sq2 0.8442 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +create_atoms 1 box +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 diff --git a/examples/message/in.message.tilt.client b/examples/message/in.message.tilt.client new file mode 100644 index 0000000000..b55bc6585b --- /dev/null +++ b/examples/message/in.message.tilt.client @@ -0,0 +1,42 @@ +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then & + "message client md file tmp.couple" & +elif "${mode} == zmq" & + "message client md zmq localhost:5555" & +elif "${mode} == mpione" & + "message client md mpi/one" & +elif "${mode} == mpitwo" & + "message client md mpi/two tmp.couple" + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +create_atoms 1 box +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 diff --git a/examples/message/in.message.tilt.server b/examples/message/in.message.tilt.server new file mode 100644 index 0000000000..ba211ed15f --- /dev/null +++ b/examples/message/in.message.tilt.server @@ -0,0 +1,31 @@ +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then & + "message server md file tmp.couple" & +elif "${mode} == zmq" & + "message server md zmq *:5555" & +elif "${mode} == mpione" & + "message server md mpi/one" & +elif "${mode} == mpitwo" & + "message server md mpi/two tmp.couple" + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +create_atoms 1 box +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md diff --git a/examples/message/log.23Jul18.message.client.file.g++.1 b/examples/message/log.28Aug18.message.client.file.g++.1 similarity index 81% rename from examples/message/log.23Jul18.message.client.file.g++.1 rename to examples/message/log.28Aug18.message.client.file.g++.1 index 0e05f6dfd5..bca1d37dd5 100644 --- a/examples/message/log.23Jul18.message.client.file.g++.1 +++ b/examples/message/log.28Aug18.message.client.file.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - client script variable mode index file @@ -25,7 +25,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.00067687 secs + Time spent = 0.000752926 secs mass 1 1.0 velocity all create 1.44 87287 loop geom @@ -34,6 +34,9 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + fix 2 all client/md fix_modify 2 energy yes @@ -47,9 +50,9 @@ Step Temp E_pair E_mol TotEng Press 30 0.73767593 0 0 -4.6254647 0.49629637 40 0.69517962 0 0 -4.6253506 0.69303877 50 0.70150496 0 0 -4.6259832 0.59551518 -Loop time of 5.12413 on 1 procs for 50 steps with 500 atoms +Loop time of 5.0251 on 1 procs for 50 steps with 500 atoms -Performance: 4215.352 tau/day, 9.758 timesteps/s +Performance: 4298.421 tau/day, 9.950 timesteps/s 0.1% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: @@ -57,10 +60,10 @@ Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 0 | 0 | 0 | 0.0 | 0.00 Neigh | 9.7752e-06 | 9.7752e-06 | 9.7752e-06 | 0.0 | 0.00 -Comm | 0.0001719 | 0.0001719 | 0.0001719 | 0.0 | 0.00 -Output | 0.00022697 | 0.00022697 | 0.00022697 | 0.0 | 0.00 -Modify | 5.1232 | 5.1232 | 5.1232 | 0.0 | 99.98 -Other | | 0.0004876 | | | 0.01 +Comm | 0.00014925 | 0.00014925 | 0.00014925 | 0.0 | 0.00 +Output | 0.00023127 | 0.00023127 | 0.00023127 | 0.0 | 0.00 +Modify | 5.0242 | 5.0242 | 5.0242 | 0.0 | 99.98 +Other | | 0.0004668 | | | 0.01 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -73,4 +76,4 @@ Total # of neighbors = 0 Ave neighs/atom = 0 Neighbor list builds = 4 Dangerous builds = 0 -Total wall time: 0:00:19 +Total wall time: 0:00:05 diff --git a/examples/message/log.23Jul18.message.client.file.g++.2 b/examples/message/log.28Aug18.message.client.file.g++.2 similarity index 78% rename from examples/message/log.23Jul18.message.client.file.g++.2 rename to examples/message/log.28Aug18.message.client.file.g++.2 index 959c85439e..1c868dde37 100644 --- a/examples/message/log.23Jul18.message.client.file.g++.2 +++ b/examples/message/log.28Aug18.message.client.file.g++.2 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - client script variable mode index file @@ -25,7 +25,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 2 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000554085 secs + Time spent = 0.000613928 secs mass 1 1.0 velocity all create 1.44 87287 loop geom @@ -34,6 +34,9 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + fix 2 all client/md fix_modify 2 energy yes @@ -47,20 +50,20 @@ Step Temp E_pair E_mol TotEng Press 30 0.73767593 0 0 -4.6254647 0.49629637 40 0.69517962 0 0 -4.6253506 0.69303877 50 0.70150496 0 0 -4.6259832 0.59551518 -Loop time of 5.07392 on 2 procs for 50 steps with 500 atoms +Loop time of 5.02384 on 2 procs for 50 steps with 500 atoms -Performance: 4257.065 tau/day, 9.854 timesteps/s +Performance: 4299.499 tau/day, 9.953 timesteps/s 50.1% CPU use with 2 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 0 | 0 | 0 | 0.0 | 0.00 -Neigh | 2.1458e-06 | 4.0531e-06 | 5.9605e-06 | 0.0 | 0.00 -Comm | 0.00022864 | 0.00023806 | 0.00024748 | 0.0 | 0.00 -Output | 0.00020814 | 0.00051165 | 0.00081515 | 0.0 | 0.01 -Modify | 5.0659 | 5.0695 | 5.073 | 0.2 | 99.91 -Other | | 0.003713 | | | 0.07 +Neigh | 1.9073e-06 | 3.3379e-06 | 4.7684e-06 | 0.0 | 0.00 +Comm | 0.00020742 | 0.00021136 | 0.00021529 | 0.0 | 0.00 +Output | 0.00026989 | 0.00048053 | 0.00069118 | 0.0 | 0.01 +Modify | 5.0171 | 5.0199 | 5.0228 | 0.1 | 99.92 +Other | | 0.003203 | | | 0.06 Nlocal: 250 ave 255 max 245 min Histogram: 1 0 0 0 0 0 0 0 0 1 @@ -73,4 +76,4 @@ Total # of neighbors = 0 Ave neighs/atom = 0 Neighbor list builds = 4 Dangerous builds = 0 -Total wall time: 0:00:07 +Total wall time: 0:00:05 diff --git a/examples/message/log.23Jul18.message.client.mpione.g++.1 b/examples/message/log.28Aug18.message.client.mpione.g++.1 similarity index 79% rename from examples/message/log.23Jul18.message.client.mpione.g++.1 rename to examples/message/log.28Aug18.message.client.mpione.g++.1 index 95a3f99ef5..78bee72fdf 100644 --- a/examples/message/log.23Jul18.message.client.mpione.g++.1 +++ b/examples/message/log.28Aug18.message.client.mpione.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - client script variable mode index file @@ -25,7 +25,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000674009 secs + Time spent = 0.000540018 secs mass 1 1.0 velocity all create 1.44 87287 loop geom @@ -34,6 +34,9 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + fix 2 all client/md fix_modify 2 energy yes @@ -47,20 +50,20 @@ Step Temp E_pair E_mol TotEng Press 30 0.73767593 0 0 -4.6254647 0.49629637 40 0.69517962 0 0 -4.6253506 0.69303877 50 0.70150496 0 0 -4.6259832 0.59551518 -Loop time of 0.0424271 on 1 procs for 50 steps with 500 atoms +Loop time of 0.0403891 on 1 procs for 50 steps with 500 atoms -Performance: 509109.009 tau/day, 1178.493 timesteps/s +Performance: 534798.272 tau/day, 1237.959 timesteps/s 99.9% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 0 | 0 | 0 | 0.0 | 0.00 -Neigh | 8.1062e-06 | 8.1062e-06 | 8.1062e-06 | 0.0 | 0.02 -Comm | 8.2016e-05 | 8.2016e-05 | 8.2016e-05 | 0.0 | 0.19 -Output | 0.00010991 | 0.00010991 | 0.00010991 | 0.0 | 0.26 -Modify | 0.042014 | 0.042014 | 0.042014 | 0.0 | 99.03 -Other | | 0.0002129 | | | 0.50 +Neigh | 4.7684e-06 | 4.7684e-06 | 4.7684e-06 | 0.0 | 0.01 +Comm | 6.3181e-05 | 6.3181e-05 | 6.3181e-05 | 0.0 | 0.16 +Output | 9.5367e-05 | 9.5367e-05 | 9.5367e-05 | 0.0 | 0.24 +Modify | 0.040053 | 0.040053 | 0.040053 | 0.0 | 99.17 +Other | | 0.0001726 | | | 0.43 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/message/log.23Jul18.message.client.mpione.g++.2 b/examples/message/log.28Aug18.message.client.mpione.g++.2 similarity index 77% rename from examples/message/log.23Jul18.message.client.mpione.g++.2 rename to examples/message/log.28Aug18.message.client.mpione.g++.2 index 6ba653a2be..7d7af866e3 100644 --- a/examples/message/log.23Jul18.message.client.mpione.g++.2 +++ b/examples/message/log.28Aug18.message.client.mpione.g++.2 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - client script variable mode index file @@ -25,7 +25,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 2 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000527859 secs + Time spent = 0.000475883 secs mass 1 1.0 velocity all create 1.44 87287 loop geom @@ -34,6 +34,9 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + fix 2 all client/md fix_modify 2 energy yes @@ -47,20 +50,20 @@ Step Temp E_pair E_mol TotEng Press 30 0.73767593 0 0 -4.6254647 0.49629637 40 0.69517962 0 0 -4.6253506 0.69303877 50 0.70150496 0 0 -4.6259832 0.59551518 -Loop time of 0.027467 on 2 procs for 50 steps with 500 atoms +Loop time of 0.0208495 on 2 procs for 50 steps with 500 atoms -Performance: 786397.868 tau/day, 1820.365 timesteps/s -99.9% CPU use with 2 MPI tasks x no OpenMP threads +Performance: 1035997.740 tau/day, 2398.143 timesteps/s +99.1% CPU use with 2 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 0 | 0 | 0 | 0.0 | 0.00 -Neigh | 4.0531e-06 | 4.1723e-06 | 4.2915e-06 | 0.0 | 0.02 -Comm | 0.00017691 | 0.00018024 | 0.00018358 | 0.0 | 0.66 -Output | 9.3222e-05 | 0.00012612 | 0.00015903 | 0.0 | 0.46 -Modify | 0.026678 | 0.02676 | 0.026841 | 0.0 | 97.42 -Other | | 0.0003968 | | | 1.44 +Neigh | 3.0994e-06 | 4.53e-06 | 5.9605e-06 | 0.0 | 0.02 +Comm | 0.00012422 | 0.00012457 | 0.00012493 | 0.0 | 0.60 +Output | 5.7697e-05 | 7.987e-05 | 0.00010204 | 0.0 | 0.38 +Modify | 0.020463 | 0.020464 | 0.020466 | 0.0 | 98.15 +Other | | 0.0001761 | | | 0.84 Nlocal: 250 ave 255 max 245 min Histogram: 1 0 0 0 0 0 0 0 0 1 diff --git a/examples/message/log.23Jul18.message.client.mpitwo.g++.1 b/examples/message/log.28Aug18.message.client.mpitwo.g++.1 similarity index 77% rename from examples/message/log.23Jul18.message.client.mpitwo.g++.1 rename to examples/message/log.28Aug18.message.client.mpitwo.g++.1 index 3822a0eb35..ee97e7bd1a 100644 --- a/examples/message/log.23Jul18.message.client.mpitwo.g++.1 +++ b/examples/message/log.28Aug18.message.client.mpitwo.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - client script variable mode index file @@ -25,7 +25,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000490904 secs + Time spent = 0.000603914 secs mass 1 1.0 velocity all create 1.44 87287 loop geom @@ -34,6 +34,9 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + fix 2 all client/md fix_modify 2 energy yes @@ -47,20 +50,20 @@ Step Temp E_pair E_mol TotEng Press 30 0.73767593 0 0 -4.6254647 0.49629637 40 0.69517962 0 0 -4.6253506 0.69303877 50 0.70150496 0 0 -4.6259832 0.59551518 -Loop time of 0.0624809 on 1 procs for 50 steps with 500 atoms +Loop time of 0.069119 on 1 procs for 50 steps with 500 atoms -Performance: 345705.501 tau/day, 800.244 timesteps/s -40.4% CPU use with 1 MPI tasks x no OpenMP threads +Performance: 312504.627 tau/day, 723.390 timesteps/s +42.0% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 0 | 0 | 0 | 0.0 | 0.00 -Neigh | 7.391e-06 | 7.391e-06 | 7.391e-06 | 0.0 | 0.01 -Comm | 8.5831e-05 | 8.5831e-05 | 8.5831e-05 | 0.0 | 0.14 -Output | 0.00011873 | 0.00011873 | 0.00011873 | 0.0 | 0.19 -Modify | 0.062024 | 0.062024 | 0.062024 | 0.0 | 99.27 -Other | | 0.0002449 | | | 0.39 +Neigh | 7.1526e-06 | 7.1526e-06 | 7.1526e-06 | 0.0 | 0.01 +Comm | 0.0001049 | 0.0001049 | 0.0001049 | 0.0 | 0.15 +Output | 0.00014019 | 0.00014019 | 0.00014019 | 0.0 | 0.20 +Modify | 0.068602 | 0.068602 | 0.068602 | 0.0 | 99.25 +Other | | 0.0002651 | | | 0.38 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -73,4 +76,4 @@ Total # of neighbors = 0 Ave neighs/atom = 0 Neighbor list builds = 4 Dangerous builds = 0 -Total wall time: 0:00:07 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.client.mpitwo.g++.2 b/examples/message/log.28Aug18.message.client.mpitwo.g++.2 similarity index 76% rename from examples/message/log.23Jul18.message.client.mpitwo.g++.2 rename to examples/message/log.28Aug18.message.client.mpitwo.g++.2 index 058fc9dbf7..72db0198d5 100644 --- a/examples/message/log.23Jul18.message.client.mpitwo.g++.2 +++ b/examples/message/log.28Aug18.message.client.mpitwo.g++.2 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - client script variable mode index file @@ -25,7 +25,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 2 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000692129 secs + Time spent = 0.000667095 secs mass 1 1.0 velocity all create 1.44 87287 loop geom @@ -34,6 +34,9 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + fix 2 all client/md fix_modify 2 energy yes @@ -47,20 +50,20 @@ Step Temp E_pair E_mol TotEng Press 30 0.73767593 0 0 -4.6254647 0.49629637 40 0.69517962 0 0 -4.6253506 0.69303877 50 0.70150496 0 0 -4.6259832 0.59551518 -Loop time of 0.0186305 on 2 procs for 50 steps with 500 atoms +Loop time of 0.0190214 on 2 procs for 50 steps with 500 atoms -Performance: 1159388.887 tau/day, 2683.771 timesteps/s -50.7% CPU use with 2 MPI tasks x no OpenMP threads +Performance: 1135563.588 tau/day, 2628.619 timesteps/s +58.5% CPU use with 2 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 0 | 0 | 0 | 0.0 | 0.00 -Neigh | 2.861e-06 | 3.8147e-06 | 4.7684e-06 | 0.0 | 0.02 -Comm | 0.00017023 | 0.00017631 | 0.00018239 | 0.0 | 0.95 -Output | 0.00010896 | 0.00013852 | 0.00016809 | 0.0 | 0.74 -Modify | 0.017709 | 0.017821 | 0.017933 | 0.1 | 95.66 -Other | | 0.0004908 | | | 2.63 +Neigh | 1.9073e-06 | 2.861e-06 | 3.8147e-06 | 0.0 | 0.02 +Comm | 0.00017238 | 0.00017989 | 0.0001874 | 0.0 | 0.95 +Output | 0.00012803 | 0.00015497 | 0.00018191 | 0.0 | 0.81 +Modify | 0.018065 | 0.018181 | 0.018297 | 0.1 | 95.58 +Other | | 0.0005029 | | | 2.64 Nlocal: 250 ave 255 max 245 min Histogram: 1 0 0 0 0 0 0 0 0 1 @@ -73,4 +76,4 @@ Total # of neighbors = 0 Ave neighs/atom = 0 Neighbor list builds = 4 Dangerous builds = 0 -Total wall time: 0:00:05 +Total wall time: 0:00:01 diff --git a/examples/message/log.23Jul18.message.client.zmq.g++.1 b/examples/message/log.28Aug18.message.client.zmq.g++.1 similarity index 76% rename from examples/message/log.23Jul18.message.client.zmq.g++.1 rename to examples/message/log.28Aug18.message.client.zmq.g++.1 index d895ee7556..23fa70c1be 100644 --- a/examples/message/log.23Jul18.message.client.zmq.g++.1 +++ b/examples/message/log.28Aug18.message.client.zmq.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - client script variable mode index file @@ -25,7 +25,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000747919 secs + Time spent = 0.000734091 secs mass 1 1.0 velocity all create 1.44 87287 loop geom @@ -34,6 +34,9 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + fix 2 all client/md fix_modify 2 energy yes @@ -47,20 +50,20 @@ Step Temp E_pair E_mol TotEng Press 30 0.73767593 0 0 -4.6254647 0.49629637 40 0.69517962 0 0 -4.6253506 0.69303877 50 0.70150496 0 0 -4.6259832 0.59551518 -Loop time of 0.0769799 on 1 procs for 50 steps with 500 atoms +Loop time of 0.0778341 on 1 procs for 50 steps with 500 atoms -Performance: 280592.815 tau/day, 649.520 timesteps/s -12.9% CPU use with 1 MPI tasks x no OpenMP threads +Performance: 277513.222 tau/day, 642.392 timesteps/s +11.4% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 0 | 0 | 0 | 0.0 | 0.00 -Neigh | 6.1989e-06 | 6.1989e-06 | 6.1989e-06 | 0.0 | 0.01 -Comm | 9.5129e-05 | 9.5129e-05 | 9.5129e-05 | 0.0 | 0.12 -Output | 0.00011516 | 0.00011516 | 0.00011516 | 0.0 | 0.15 -Modify | 0.076471 | 0.076471 | 0.076471 | 0.0 | 99.34 -Other | | 0.0002928 | | | 0.38 +Neigh | 7.8678e-06 | 7.8678e-06 | 7.8678e-06 | 0.0 | 0.01 +Comm | 8.3685e-05 | 8.3685e-05 | 8.3685e-05 | 0.0 | 0.11 +Output | 0.00011373 | 0.00011373 | 0.00011373 | 0.0 | 0.15 +Modify | 0.07734 | 0.07734 | 0.07734 | 0.0 | 99.37 +Other | | 0.0002885 | | | 0.37 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -73,4 +76,4 @@ Total # of neighbors = 0 Ave neighs/atom = 0 Neighbor list builds = 4 Dangerous builds = 0 -Total wall time: 0:00:08 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.client.zmq.g++.2 b/examples/message/log.28Aug18.message.client.zmq.g++.2 similarity index 76% rename from examples/message/log.23Jul18.message.client.zmq.g++.2 rename to examples/message/log.28Aug18.message.client.zmq.g++.2 index 4bdb8abecc..7833befd21 100644 --- a/examples/message/log.23Jul18.message.client.zmq.g++.2 +++ b/examples/message/log.28Aug18.message.client.zmq.g++.2 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - client script variable mode index file @@ -25,7 +25,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 2 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000608921 secs + Time spent = 0.000570059 secs mass 1 1.0 velocity all create 1.44 87287 loop geom @@ -34,6 +34,9 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + fix 2 all client/md fix_modify 2 energy yes @@ -47,20 +50,20 @@ Step Temp E_pair E_mol TotEng Press 30 0.73767593 0 0 -4.6254647 0.49629637 40 0.69517962 0 0 -4.6253506 0.69303877 50 0.70150496 0 0 -4.6259832 0.59551518 -Loop time of 0.0453095 on 2 procs for 50 steps with 500 atoms +Loop time of 0.0416595 on 2 procs for 50 steps with 500 atoms -Performance: 476720.759 tau/day, 1103.520 timesteps/s -55.6% CPU use with 2 MPI tasks x no OpenMP threads +Performance: 518489.499 tau/day, 1200.207 timesteps/s +56.5% CPU use with 2 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 0 | 0 | 0 | 0.0 | 0.00 -Neigh | 2.1458e-06 | 4.0531e-06 | 5.9605e-06 | 0.0 | 0.01 -Comm | 0.0001595 | 0.00015998 | 0.00016046 | 0.0 | 0.35 -Output | 8.893e-05 | 0.00011587 | 0.00014281 | 0.0 | 0.26 -Modify | 0.044439 | 0.044582 | 0.044724 | 0.1 | 98.39 -Other | | 0.0004481 | | | 0.99 +Neigh | 2.861e-06 | 3.3379e-06 | 3.8147e-06 | 0.0 | 0.01 +Comm | 0.00013399 | 0.00013685 | 0.00013971 | 0.0 | 0.33 +Output | 8.6784e-05 | 0.00011206 | 0.00013733 | 0.0 | 0.27 +Modify | 0.040948 | 0.04103 | 0.041112 | 0.0 | 98.49 +Other | | 0.0003769 | | | 0.90 Nlocal: 250 ave 255 max 245 min Histogram: 1 0 0 0 0 0 0 0 0 1 @@ -73,4 +76,4 @@ Total # of neighbors = 0 Ave neighs/atom = 0 Neighbor list builds = 4 Dangerous builds = 0 -Total wall time: 0:00:04 +Total wall time: 0:00:00 diff --git a/examples/message/log.23Jul18.message.g++.1 b/examples/message/log.28Aug18.message.g++.1 similarity index 76% rename from examples/message/log.23Jul18.message.g++.1 rename to examples/message/log.28Aug18.message.g++.1 index 53457c0129..c06af4e0d1 100644 --- a/examples/message/log.23Jul18.message.g++.1 +++ b/examples/message/log.28Aug18.message.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - no client/server mode variable x index 5 @@ -19,7 +19,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000540972 secs + Time spent = 0.000682831 secs mass 1 1.0 velocity all create 1.44 87287 loop geom @@ -31,6 +31,8 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 thermo 10 run 50 @@ -54,20 +56,20 @@ Step Temp E_pair E_mol TotEng Press 30 0.73767593 -5.7297655 0 -4.6254647 0.49629637 40 0.69517962 -5.6660345 0 -4.6253506 0.69303877 50 0.70150496 -5.6761362 0 -4.6259832 0.59551518 -Loop time of 0.037292 on 1 procs for 50 steps with 500 atoms +Loop time of 0.039681 on 1 procs for 50 steps with 500 atoms -Performance: 579212.643 tau/day, 1340.770 timesteps/s -99.9% CPU use with 1 MPI tasks x no OpenMP threads +Performance: 544341.699 tau/day, 1260.050 timesteps/s +99.2% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.028156 | 0.028156 | 0.028156 | 0.0 | 75.50 -Neigh | 0.0069656 | 0.0069656 | 0.0069656 | 0.0 | 18.68 -Comm | 0.0011504 | 0.0011504 | 0.0011504 | 0.0 | 3.08 -Output | 0.00013399 | 0.00013399 | 0.00013399 | 0.0 | 0.36 -Modify | 0.00049257 | 0.00049257 | 0.00049257 | 0.0 | 1.32 -Other | | 0.0003934 | | | 1.05 +Pair | 0.029993 | 0.029993 | 0.029993 | 0.0 | 75.59 +Neigh | 0.0073051 | 0.0073051 | 0.0073051 | 0.0 | 18.41 +Comm | 0.0012736 | 0.0012736 | 0.0012736 | 0.0 | 3.21 +Output | 0.00012803 | 0.00012803 | 0.00012803 | 0.0 | 0.32 +Modify | 0.00053287 | 0.00053287 | 0.00053287 | 0.0 | 1.34 +Other | | 0.000448 | | | 1.13 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/message/log.23Jul18.message.g++.4 b/examples/message/log.28Aug18.message.g++.4 similarity index 76% rename from examples/message/log.23Jul18.message.g++.4 rename to examples/message/log.28Aug18.message.g++.4 index 09bd755380..695b51f166 100644 --- a/examples/message/log.23Jul18.message.g++.4 +++ b/examples/message/log.28Aug18.message.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - no client/server mode variable x index 5 @@ -19,7 +19,7 @@ Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 500 atoms - Time spent = 0.000635862 secs + Time spent = 0.000656843 secs mass 1 1.0 velocity all create 1.44 87287 loop geom @@ -31,6 +31,8 @@ neighbor 0.3 bin neigh_modify delay 0 every 1 check yes fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 thermo 10 run 50 @@ -54,20 +56,20 @@ Step Temp E_pair E_mol TotEng Press 30 0.73767593 -5.7297655 0 -4.6254647 0.49629637 40 0.69517962 -5.6660345 0 -4.6253506 0.69303877 50 0.70150496 -5.6761362 0 -4.6259832 0.59551518 -Loop time of 0.0152688 on 4 procs for 50 steps with 500 atoms +Loop time of 0.0131519 on 4 procs for 50 steps with 500 atoms -Performance: 1414649.236 tau/day, 3274.651 timesteps/s -99.9% CPU use with 4 MPI tasks x no OpenMP threads +Performance: 1642350.242 tau/day, 3801.737 timesteps/s +97.9% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.006639 | 0.007916 | 0.0083909 | 0.8 | 51.84 -Neigh | 0.0015991 | 0.0018443 | 0.0019469 | 0.3 | 12.08 -Comm | 0.0041771 | 0.0047471 | 0.0063298 | 1.3 | 31.09 -Output | 9.6798e-05 | 0.00012475 | 0.00019407 | 0.0 | 0.82 -Modify | 0.00015974 | 0.0001967 | 0.00023103 | 0.0 | 1.29 -Other | | 0.0004399 | | | 2.88 +Pair | 0.006074 | 0.0065379 | 0.0072589 | 0.6 | 49.71 +Neigh | 0.0014219 | 0.0015552 | 0.0017018 | 0.3 | 11.82 +Comm | 0.003546 | 0.0043943 | 0.0049584 | 0.8 | 33.41 +Output | 0.000108 | 0.00012845 | 0.00016999 | 0.0 | 0.98 +Modify | 0.00014353 | 0.00014949 | 0.00015569 | 0.0 | 1.14 +Other | | 0.0003865 | | | 2.94 Nlocal: 125 ave 128 max 121 min Histogram: 1 0 0 0 1 0 0 0 1 1 diff --git a/examples/message/log.23Jul18.message.server.file.g++.1 b/examples/message/log.28Aug18.message.server.file.g++.1 similarity index 98% rename from examples/message/log.23Jul18.message.server.file.g++.1 rename to examples/message/log.28Aug18.message.server.file.g++.1 index 159332c2b4..cf1418d3c5 100644 --- a/examples/message/log.23Jul18.message.server.file.g++.1 +++ b/examples/message/log.28Aug18.message.server.file.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - server script variable mode index file diff --git a/examples/message/log.23Jul18.message.server.file.g++.4 b/examples/message/log.28Aug18.message.server.file.g++.4 similarity index 98% rename from examples/message/log.23Jul18.message.server.file.g++.4 rename to examples/message/log.28Aug18.message.server.file.g++.4 index f5ea67196f..c233bad692 100644 --- a/examples/message/log.23Jul18.message.server.file.g++.4 +++ b/examples/message/log.28Aug18.message.server.file.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - server script variable mode index file diff --git a/examples/message/log.23Jul18.message.server.mpione.g++.1 b/examples/message/log.28Aug18.message.server.mpione.g++.1 similarity index 98% rename from examples/message/log.23Jul18.message.server.mpione.g++.1 rename to examples/message/log.28Aug18.message.server.mpione.g++.1 index 245461d4b2..81e04aa923 100644 --- a/examples/message/log.23Jul18.message.server.mpione.g++.1 +++ b/examples/message/log.28Aug18.message.server.mpione.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - server script variable mode index file diff --git a/examples/message/log.23Jul18.message.server.mpione.g++.4 b/examples/message/log.28Aug18.message.server.mpione.g++.4 similarity index 98% rename from examples/message/log.23Jul18.message.server.mpione.g++.4 rename to examples/message/log.28Aug18.message.server.mpione.g++.4 index d4d9a98189..a185cb1c29 100644 --- a/examples/message/log.23Jul18.message.server.mpione.g++.4 +++ b/examples/message/log.28Aug18.message.server.mpione.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - server script variable mode index file diff --git a/examples/message/log.23Jul18.message.server.mpitwo.g++.1 b/examples/message/log.28Aug18.message.server.mpitwo.g++.1 similarity index 98% rename from examples/message/log.23Jul18.message.server.mpitwo.g++.1 rename to examples/message/log.28Aug18.message.server.mpitwo.g++.1 index 440a03bad7..973a08eb6a 100644 --- a/examples/message/log.23Jul18.message.server.mpitwo.g++.1 +++ b/examples/message/log.28Aug18.message.server.mpitwo.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - server script variable mode index file diff --git a/examples/message/log.23Jul18.message.server.mpitwo.g++.4 b/examples/message/log.28Aug18.message.server.mpitwo.g++.4 similarity index 98% rename from examples/message/log.23Jul18.message.server.mpitwo.g++.4 rename to examples/message/log.28Aug18.message.server.mpitwo.g++.4 index 0265bda54c..9e76e52d90 100644 --- a/examples/message/log.23Jul18.message.server.mpitwo.g++.4 +++ b/examples/message/log.28Aug18.message.server.mpitwo.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - server script variable mode index file diff --git a/examples/message/log.23Jul18.message.server.zmq.g++.1 b/examples/message/log.28Aug18.message.server.zmq.g++.1 similarity index 98% rename from examples/message/log.23Jul18.message.server.zmq.g++.1 rename to examples/message/log.28Aug18.message.server.zmq.g++.1 index 4fa9244bfe..ce5729878b 100644 --- a/examples/message/log.23Jul18.message.server.zmq.g++.1 +++ b/examples/message/log.28Aug18.message.server.zmq.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - server script variable mode index file diff --git a/examples/message/log.23Jul18.message.server.zmq.g++.4 b/examples/message/log.28Aug18.message.server.zmq.g++.4 similarity index 98% rename from examples/message/log.23Jul18.message.server.zmq.g++.4 rename to examples/message/log.28Aug18.message.server.zmq.g++.4 index f094153e83..b3201da4da 100644 --- a/examples/message/log.23Jul18.message.server.zmq.g++.4 +++ b/examples/message/log.28Aug18.message.server.zmq.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (16 Jul 2018) +LAMMPS (22 Aug 2018) # 3d Lennard-Jones melt - server script variable mode index file diff --git a/examples/message/log.28Aug18.message.tilt.client.mpione.g++.1 b/examples/message/log.28Aug18.message.tilt.client.mpione.g++.1 new file mode 100644 index 0000000000..a290ec307b --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.mpione.g++.1 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/one + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000485897 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0086399 0 1.3760711 6.8772078 0.61567613 + 2000 1.0707188 0 1.3744107 6.628097 1.2313523 + 3000 1.0627515 0 1.310096 6.1647179 1.8470284 + 4000 0.94091054 0 1.268976 6.4723215 2.4627045 + 5000 1.0218949 0 1.2430242 5.6945977 3.0783806 + 6000 0.98649481 0 1.1997565 5.2870413 3.6940568 + 7000 0.9047957 0 1.1461262 5.9291636 4.3097329 + 8000 0.85697614 0 1.0437412 5.0652097 4.925409 + 9000 0.84208329 0 1.109218 6.1749808 5.5410852 + 10000 0.86418108 0 1.1594773 6.2581867 6.1567613 + 11000 0.95136356 0 1.1650901 5.8389085 6.7724374 + 12000 0.94571583 0 1.2210342 6.2498816 7.3881135 + 13000 0.95994288 0 1.2172042 5.9608165 -7.3881135 + 14000 0.99053999 0 1.2925597 6.9994446 -6.7724374 + 15000 1.0316726 0 1.3346023 6.6902672 -6.1567613 + 16000 0.99537481 0 1.3227696 7.0301123 -5.5410852 + 17000 1.0306843 0 1.3101457 6.4750102 -4.925409 + 18000 1.071154 0 1.2947547 5.695888 -4.3097329 + 19000 0.97120752 0 1.3035465 7.3945362 -3.6940568 + 20000 0.97198994 0 1.2244663 6.0047605 -3.0783806 + 21000 0.97943545 0 1.2393394 6.3871012 -2.4627045 + 22000 0.98550707 0 1.1768148 5.019967 -1.8470284 + 23000 0.96920052 0 1.1730698 5.7944947 -1.2313523 + 24000 0.94069959 0 1.184119 5.8434876 -0.61567613 + 25000 0.91569312 0 1.1642118 5.668997 0 + 26000 0.98882932 0 1.1999248 5.0115507 0.61567613 + 27000 0.8972608 0 1.2556546 7.0837158 1.2313523 + 28000 0.93554756 0 1.2221911 5.9302841 1.8470284 + 29000 0.97894608 0 1.2168736 5.5766766 2.4627045 + 30000 0.97877055 0 1.2575839 6.4308887 3.0783806 + 31000 1.0002387 0 1.2338069 5.3873124 3.6940568 + 32000 0.89608618 0 1.2382021 6.7892204 4.3097329 + 33000 0.87439302 0 1.2252635 7.078134 4.925409 + 34000 1.076102 0 1.2991393 5.5556892 5.5410852 + 35000 1.0018689 0 1.272105 6.1320483 6.1567613 + 36000 0.93327214 0 1.2428039 7.0030867 6.7724374 + 37000 1.0770236 0 1.3002931 5.4996076 7.3881135 + 38000 0.98715132 0 1.215562 5.5958335 -7.3881135 + 39000 0.95028417 0 1.2566706 6.4133713 -6.7724374 + 40000 1.0445585 0 1.241151 5.3589806 -6.1567613 + 41000 0.93799713 0 1.2109086 6.4957845 -5.5410852 + 42000 0.99231038 0 1.2228781 5.9363471 -4.925409 + 43000 0.97913815 0 1.1854842 5.8837987 -4.3097329 + 44000 0.86748838 0 1.1616201 6.8991278 -3.6940568 + 45000 0.96284421 0 1.1549383 5.1226785 -3.0783806 + 46000 0.98701623 0 1.170581 4.9719567 -2.4627045 + 47000 0.92618683 0 1.2146576 6.7100075 -1.8470284 + 48000 1.0092593 0 1.2523988 5.7067864 -1.2313523 + 49000 1.0187472 0 1.271608 5.3355092 -0.61567613 + 50000 1.0194881 0 1.2831094 6.2449759 0 +Loop time of 1.74559 on 1 procs for 50000 steps with 160 atoms + +Performance: 12374053.445 tau/day, 28643.642 timesteps/s +100.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0020533 | 0.0020533 | 0.0020533 | 0.0 | 0.12 +Comm | 0.015517 | 0.015517 | 0.015517 | 0.0 | 0.89 +Output | 0.00052404 | 0.00052404 | 0.00052404 | 0.0 | 0.03 +Modify | 1.6784 | 1.6784 | 1.6784 | 0.0 | 96.15 +Other | | 0.04905 | | | 2.81 + +Nlocal: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5270 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/message/log.28Aug18.message.tilt.client.mpione.g++.2 b/examples/message/log.28Aug18.message.tilt.client.mpione.g++.2 new file mode 100644 index 0000000000..0089732355 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.mpione.g++.2 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/one + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000453949 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0876599 0 1.3637783 6.063363 0.61567613 + 2000 1.0722996 0 1.4108622 7.0518942 1.2313523 + 3000 1.0580774 0 1.3845895 6.0395275 1.8470284 + 4000 1.0068006 0 1.3804387 7.0944598 2.4627045 + 5000 0.95391814 0 1.2578438 6.1878831 3.0783806 + 6000 0.93492945 0 1.2711287 7.0440517 3.6940568 + 7000 0.94107853 0 1.2384371 6.1438077 4.3097329 + 8000 0.89711744 0 1.145748 6.3558305 4.925409 + 9000 0.90190304 0 1.0860684 4.957098 5.5410852 + 10000 0.84255749 0 1.0376892 5.2351795 6.1567613 + 11000 0.90250882 0 1.0497695 4.3844838 6.7724374 + 12000 0.83461274 0 1.0281949 5.1534361 7.3881135 + 13000 0.80315331 0 1.0226333 5.757222 -7.3881135 + 14000 0.81820939 0 0.99276466 4.6943725 -6.7724374 + 15000 0.8239631 0 1.0408289 5.1669006 -6.1567613 + 16000 0.88908894 0 1.1554855 6.3510278 -5.5410852 + 17000 0.98268136 0 1.2086981 5.6302847 -4.925409 + 18000 1.0098162 0 1.3687676 7.5243587 -4.3097329 + 19000 1.0795086 0 1.4562691 7.639418 -3.6940568 + 20000 1.1932155 0 1.5278988 7.0668432 -3.0783806 + 21000 1.2424296 0 1.6048792 7.959585 -2.4627045 + 22000 1.297169 0 1.7421262 8.9432388 -1.8470284 + 23000 1.2863494 0 1.7236774 8.3584973 -1.2313523 + 24000 1.4084347 0 1.7370339 7.2729078 -0.61567613 + 25000 1.3339728 0 1.6883255 7.529098 0 + 26000 1.1483243 0 1.5155578 7.3869994 0.61567613 + 27000 1.1372606 0 1.4368323 7.0580136 1.2313523 + 28000 1.0518579 0 1.355311 6.478857 1.8470284 + 29000 1.0581145 0 1.2535509 5.3697479 2.4627045 + 30000 0.93612564 0 1.185532 5.5520142 3.0783806 + 31000 0.94387516 0 1.1716454 5.8655485 3.6940568 + 32000 0.83953515 0 1.0737746 5.5551953 4.3097329 + 33000 0.84862926 0 1.0564042 5.7795428 4.925409 + 34000 0.83621877 0 1.079387 5.7514243 5.5410852 + 35000 0.86938506 0 1.031783 4.5897825 6.1567613 + 36000 0.88990609 0 1.0807597 5.3751744 6.7724374 + 37000 0.89534631 0 1.1238882 5.2400355 7.3881135 + 38000 0.98545003 0 1.2121125 5.7783854 -7.3881135 + 39000 0.96737778 0 1.2472934 6.1139 -6.7724374 + 40000 1.0664194 0 1.2956811 5.7353661 -6.1567613 + 41000 1.0681494 0 1.3269435 6.3102722 -5.5410852 + 42000 1.0875422 0 1.3963739 7.1208066 -4.925409 + 43000 1.0968173 0 1.3388062 6.1704339 -4.3097329 + 44000 1.1182109 0 1.3773214 7.0872686 -3.6940568 + 45000 1.1243261 0 1.432186 6.884782 -3.0783806 + 46000 1.039713 0 1.4389721 7.5585257 -2.4627045 + 47000 1.0816108 0 1.4100361 6.4611126 -1.8470284 + 48000 0.97637127 0 1.3605389 7.3992744 -1.2313523 + 49000 1.0361978 0 1.2721873 5.8166109 -0.61567613 + 50000 0.92367087 0 1.1875669 6.4685214 0 +Loop time of 2.82785 on 2 procs for 50000 steps with 160 atoms + +Performance: 7638300.565 tau/day, 17681.251 timesteps/s +100.0% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0011888 | 0.0012611 | 0.0013335 | 0.2 | 0.04 +Comm | 0.024838 | 0.025075 | 0.025312 | 0.1 | 0.89 +Output | 0.0003581 | 0.00052559 | 0.00069308 | 0.0 | 0.02 +Modify | 2.7209 | 2.7263 | 2.7318 | 0.3 | 96.41 +Other | | 0.07465 | | | 2.64 + +Nlocal: 80 ave 80 max 80 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5257 +Dangerous builds = 0 +Total wall time: 0:00:02 diff --git a/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.1 b/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.1 new file mode 100644 index 0000000000..814b3df1aa --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.1 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/two tmp.couple + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000543118 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0086399 0 1.3760711 6.8772078 0.61567613 + 2000 1.0707188 0 1.3744107 6.628097 1.2313523 + 3000 1.0627515 0 1.310096 6.1647179 1.8470284 + 4000 0.94091054 0 1.268976 6.4723215 2.4627045 + 5000 1.0218949 0 1.2430242 5.6945977 3.0783806 + 6000 0.98649481 0 1.1997565 5.2870413 3.6940568 + 7000 0.9047957 0 1.1461262 5.9291636 4.3097329 + 8000 0.85697614 0 1.0437412 5.0652097 4.925409 + 9000 0.84208329 0 1.109218 6.1749808 5.5410852 + 10000 0.86418108 0 1.1594773 6.2581867 6.1567613 + 11000 0.95136356 0 1.1650901 5.8389085 6.7724374 + 12000 0.94571583 0 1.2210342 6.2498816 7.3881135 + 13000 0.95994288 0 1.2172042 5.9608165 -7.3881135 + 14000 0.99053999 0 1.2925597 6.9994446 -6.7724374 + 15000 1.0316726 0 1.3346023 6.6902672 -6.1567613 + 16000 0.99537481 0 1.3227696 7.0301123 -5.5410852 + 17000 1.0306843 0 1.3101457 6.4750102 -4.925409 + 18000 1.071154 0 1.2947547 5.695888 -4.3097329 + 19000 0.97120752 0 1.3035465 7.3945362 -3.6940568 + 20000 0.97198994 0 1.2244663 6.0047605 -3.0783806 + 21000 0.97943545 0 1.2393394 6.3871012 -2.4627045 + 22000 0.98550707 0 1.1768148 5.019967 -1.8470284 + 23000 0.96920052 0 1.1730698 5.7944947 -1.2313523 + 24000 0.94069959 0 1.184119 5.8434876 -0.61567613 + 25000 0.91569312 0 1.1642118 5.668997 0 + 26000 0.98882932 0 1.1999248 5.0115507 0.61567613 + 27000 0.8972608 0 1.2556546 7.0837158 1.2313523 + 28000 0.93554756 0 1.2221911 5.9302841 1.8470284 + 29000 0.97894608 0 1.2168736 5.5766766 2.4627045 + 30000 0.97877055 0 1.2575839 6.4308887 3.0783806 + 31000 1.0002387 0 1.2338069 5.3873124 3.6940568 + 32000 0.89608618 0 1.2382021 6.7892204 4.3097329 + 33000 0.87439302 0 1.2252635 7.078134 4.925409 + 34000 1.076102 0 1.2991393 5.5556892 5.5410852 + 35000 1.0018689 0 1.272105 6.1320483 6.1567613 + 36000 0.93327214 0 1.2428039 7.0030867 6.7724374 + 37000 1.0770236 0 1.3002931 5.4996076 7.3881135 + 38000 0.98715132 0 1.215562 5.5958335 -7.3881135 + 39000 0.95028417 0 1.2566706 6.4133713 -6.7724374 + 40000 1.0445585 0 1.241151 5.3589806 -6.1567613 + 41000 0.93799713 0 1.2109086 6.4957845 -5.5410852 + 42000 0.99231038 0 1.2228781 5.9363471 -4.925409 + 43000 0.97913815 0 1.1854842 5.8837987 -4.3097329 + 44000 0.86748838 0 1.1616201 6.8991278 -3.6940568 + 45000 0.96284421 0 1.1549383 5.1226785 -3.0783806 + 46000 0.98701623 0 1.170581 4.9719567 -2.4627045 + 47000 0.92618683 0 1.2146576 6.7100075 -1.8470284 + 48000 1.0092593 0 1.2523988 5.7067864 -1.2313523 + 49000 1.0187472 0 1.271608 5.3355092 -0.61567613 + 50000 1.0194881 0 1.2831094 6.2449759 0 +Loop time of 4.80282 on 1 procs for 50000 steps with 160 atoms + +Performance: 4497356.047 tau/day, 10410.546 timesteps/s +50.2% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0032325 | 0.0032325 | 0.0032325 | 0.0 | 0.07 +Comm | 0.033613 | 0.033613 | 0.033613 | 0.0 | 0.70 +Output | 0.00089812 | 0.00089812 | 0.00089812 | 0.0 | 0.02 +Modify | 4.6706 | 4.6706 | 4.6706 | 0.0 | 97.25 +Other | | 0.09449 | | | 1.97 + +Nlocal: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5270 +Dangerous builds = 0 +Total wall time: 0:00:04 diff --git a/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.2 b/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.2 new file mode 100644 index 0000000000..7c172d3727 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.2 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/two tmp.couple + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000574827 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0876599 0 1.3637783 6.063363 0.61567613 + 2000 1.0722996 0 1.4108622 7.0518942 1.2313523 + 3000 1.0580774 0 1.3845895 6.0395275 1.8470284 + 4000 1.0068006 0 1.3804387 7.0944598 2.4627045 + 5000 0.95391814 0 1.2578438 6.1878831 3.0783806 + 6000 0.93492945 0 1.2711287 7.0440517 3.6940568 + 7000 0.94107853 0 1.2384371 6.1438077 4.3097329 + 8000 0.89711744 0 1.145748 6.3558305 4.925409 + 9000 0.90190304 0 1.0860684 4.957098 5.5410852 + 10000 0.84255749 0 1.0376892 5.2351795 6.1567613 + 11000 0.90250882 0 1.0497695 4.3844838 6.7724374 + 12000 0.83461274 0 1.0281949 5.1534361 7.3881135 + 13000 0.80315331 0 1.0226333 5.757222 -7.3881135 + 14000 0.81820939 0 0.99276466 4.6943725 -6.7724374 + 15000 0.8239631 0 1.0408289 5.1669006 -6.1567613 + 16000 0.88908894 0 1.1554855 6.3510278 -5.5410852 + 17000 0.98268136 0 1.2086981 5.6302847 -4.925409 + 18000 1.0098162 0 1.3687676 7.5243587 -4.3097329 + 19000 1.0795086 0 1.4562691 7.639418 -3.6940568 + 20000 1.1932155 0 1.5278988 7.0668432 -3.0783806 + 21000 1.2424296 0 1.6048792 7.959585 -2.4627045 + 22000 1.297169 0 1.7421262 8.9432388 -1.8470284 + 23000 1.2863494 0 1.7236774 8.3584973 -1.2313523 + 24000 1.4084347 0 1.7370339 7.2729078 -0.61567613 + 25000 1.3339728 0 1.6883255 7.529098 0 + 26000 1.1483243 0 1.5155578 7.3869994 0.61567613 + 27000 1.1372606 0 1.4368323 7.0580136 1.2313523 + 28000 1.0518579 0 1.355311 6.478857 1.8470284 + 29000 1.0581145 0 1.2535509 5.3697479 2.4627045 + 30000 0.93612564 0 1.185532 5.5520142 3.0783806 + 31000 0.94387516 0 1.1716454 5.8655485 3.6940568 + 32000 0.83953515 0 1.0737746 5.5551953 4.3097329 + 33000 0.84862926 0 1.0564042 5.7795428 4.925409 + 34000 0.83621877 0 1.079387 5.7514243 5.5410852 + 35000 0.86938506 0 1.031783 4.5897825 6.1567613 + 36000 0.88990609 0 1.0807597 5.3751744 6.7724374 + 37000 0.89534631 0 1.1238882 5.2400355 7.3881135 + 38000 0.98545003 0 1.2121125 5.7783854 -7.3881135 + 39000 0.96737778 0 1.2472934 6.1139 -6.7724374 + 40000 1.0664194 0 1.2956811 5.7353661 -6.1567613 + 41000 1.0681494 0 1.3269435 6.3102722 -5.5410852 + 42000 1.0875422 0 1.3963739 7.1208066 -4.925409 + 43000 1.0968173 0 1.3388062 6.1704339 -4.3097329 + 44000 1.1182109 0 1.3773214 7.0872686 -3.6940568 + 45000 1.1243261 0 1.432186 6.884782 -3.0783806 + 46000 1.039713 0 1.4389721 7.5585257 -2.4627045 + 47000 1.0816108 0 1.4100361 6.4611126 -1.8470284 + 48000 0.97637127 0 1.3605389 7.3992744 -1.2313523 + 49000 1.0361978 0 1.2721873 5.8166109 -0.61567613 + 50000 0.92367087 0 1.1875669 6.4685214 0 +Loop time of 5.66536 on 2 procs for 50000 steps with 160 atoms + +Performance: 3812643.232 tau/day, 8825.563 timesteps/s +48.1% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0012836 | 0.0015377 | 0.0017917 | 0.6 | 0.03 +Comm | 0.037211 | 0.037922 | 0.038633 | 0.4 | 0.67 +Output | 0.00052023 | 0.00073683 | 0.00095344 | 0.0 | 0.01 +Modify | 5.5101 | 5.5105 | 5.511 | 0.0 | 97.27 +Other | | 0.1146 | | | 2.02 + +Nlocal: 80 ave 80 max 80 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5257 +Dangerous builds = 0 +Total wall time: 0:00:06 diff --git a/examples/message/log.28Aug18.message.tilt.client.zmq.g++.1 b/examples/message/log.28Aug18.message.tilt.client.zmq.g++.1 new file mode 100644 index 0000000000..f5e2f220cd --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.zmq.g++.1 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md zmq localhost:5555 + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000530005 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0086399 0 1.3760711 6.8772078 0.61567613 + 2000 1.0707188 0 1.3744107 6.628097 1.2313523 + 3000 1.0627515 0 1.310096 6.1647179 1.8470284 + 4000 0.94091054 0 1.268976 6.4723215 2.4627045 + 5000 1.0218949 0 1.2430242 5.6945977 3.0783806 + 6000 0.98649481 0 1.1997565 5.2870413 3.6940568 + 7000 0.9047957 0 1.1461262 5.9291636 4.3097329 + 8000 0.85697614 0 1.0437412 5.0652097 4.925409 + 9000 0.84208329 0 1.109218 6.1749808 5.5410852 + 10000 0.86418108 0 1.1594773 6.2581867 6.1567613 + 11000 0.95136356 0 1.1650901 5.8389085 6.7724374 + 12000 0.94571583 0 1.2210342 6.2498816 7.3881135 + 13000 0.95994288 0 1.2172042 5.9608165 -7.3881135 + 14000 0.99053999 0 1.2925597 6.9994446 -6.7724374 + 15000 1.0316726 0 1.3346023 6.6902672 -6.1567613 + 16000 0.99537481 0 1.3227696 7.0301123 -5.5410852 + 17000 1.0306843 0 1.3101457 6.4750102 -4.925409 + 18000 1.071154 0 1.2947547 5.695888 -4.3097329 + 19000 0.97120752 0 1.3035465 7.3945362 -3.6940568 + 20000 0.97198994 0 1.2244663 6.0047605 -3.0783806 + 21000 0.97943545 0 1.2393394 6.3871012 -2.4627045 + 22000 0.98550707 0 1.1768148 5.019967 -1.8470284 + 23000 0.96920052 0 1.1730698 5.7944947 -1.2313523 + 24000 0.94069959 0 1.184119 5.8434876 -0.61567613 + 25000 0.91569312 0 1.1642118 5.668997 0 + 26000 0.98882932 0 1.1999248 5.0115507 0.61567613 + 27000 0.8972608 0 1.2556546 7.0837158 1.2313523 + 28000 0.93554756 0 1.2221911 5.9302841 1.8470284 + 29000 0.97894608 0 1.2168736 5.5766766 2.4627045 + 30000 0.97877055 0 1.2575839 6.4308887 3.0783806 + 31000 1.0002387 0 1.2338069 5.3873124 3.6940568 + 32000 0.89608618 0 1.2382021 6.7892204 4.3097329 + 33000 0.87439302 0 1.2252635 7.078134 4.925409 + 34000 1.076102 0 1.2991393 5.5556892 5.5410852 + 35000 1.0018689 0 1.272105 6.1320483 6.1567613 + 36000 0.93327214 0 1.2428039 7.0030867 6.7724374 + 37000 1.0770236 0 1.3002931 5.4996076 7.3881135 + 38000 0.98715132 0 1.215562 5.5958335 -7.3881135 + 39000 0.95028417 0 1.2566706 6.4133713 -6.7724374 + 40000 1.0445585 0 1.241151 5.3589806 -6.1567613 + 41000 0.93799713 0 1.2109086 6.4957845 -5.5410852 + 42000 0.99231038 0 1.2228781 5.9363471 -4.925409 + 43000 0.97913815 0 1.1854842 5.8837987 -4.3097329 + 44000 0.86748838 0 1.1616201 6.8991278 -3.6940568 + 45000 0.96284421 0 1.1549383 5.1226785 -3.0783806 + 46000 0.98701623 0 1.170581 4.9719567 -2.4627045 + 47000 0.92618683 0 1.2146576 6.7100075 -1.8470284 + 48000 1.0092593 0 1.2523988 5.7067864 -1.2313523 + 49000 1.0187472 0 1.271608 5.3355092 -0.61567613 + 50000 1.0194881 0 1.2831094 6.2449759 0 +Loop time of 12.9652 on 1 procs for 50000 steps with 160 atoms + +Performance: 1666000.147 tau/day, 3856.482 timesteps/s +23.2% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0018659 | 0.0018659 | 0.0018659 | 0.0 | 0.01 +Comm | 0.020679 | 0.020679 | 0.020679 | 0.0 | 0.16 +Output | 0.00052547 | 0.00052547 | 0.00052547 | 0.0 | 0.00 +Modify | 12.871 | 12.871 | 12.871 | 0.0 | 99.28 +Other | | 0.07062 | | | 0.54 + +Nlocal: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5270 +Dangerous builds = 0 +Total wall time: 0:00:12 diff --git a/examples/message/log.28Aug18.message.tilt.client.zmq.g++.2 b/examples/message/log.28Aug18.message.tilt.client.zmq.g++.2 new file mode 100644 index 0000000000..8fc570f5da --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.zmq.g++.2 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md zmq localhost:5555 + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000673056 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0876599 0 1.3637783 6.063363 0.61567613 + 2000 1.0722996 0 1.4108622 7.0518942 1.2313523 + 3000 1.0580774 0 1.3845895 6.0395275 1.8470284 + 4000 1.0068006 0 1.3804387 7.0944598 2.4627045 + 5000 0.95391814 0 1.2578438 6.1878831 3.0783806 + 6000 0.93492945 0 1.2711287 7.0440517 3.6940568 + 7000 0.94107853 0 1.2384371 6.1438077 4.3097329 + 8000 0.89711744 0 1.145748 6.3558305 4.925409 + 9000 0.90190304 0 1.0860684 4.957098 5.5410852 + 10000 0.84255749 0 1.0376892 5.2351795 6.1567613 + 11000 0.90250882 0 1.0497695 4.3844838 6.7724374 + 12000 0.83461274 0 1.0281949 5.1534361 7.3881135 + 13000 0.80315331 0 1.0226333 5.757222 -7.3881135 + 14000 0.81820939 0 0.99276466 4.6943725 -6.7724374 + 15000 0.8239631 0 1.0408289 5.1669006 -6.1567613 + 16000 0.88908894 0 1.1554855 6.3510278 -5.5410852 + 17000 0.98268136 0 1.2086981 5.6302847 -4.925409 + 18000 1.0098162 0 1.3687676 7.5243587 -4.3097329 + 19000 1.0795086 0 1.4562691 7.639418 -3.6940568 + 20000 1.1932155 0 1.5278988 7.0668432 -3.0783806 + 21000 1.2424296 0 1.6048792 7.959585 -2.4627045 + 22000 1.297169 0 1.7421262 8.9432388 -1.8470284 + 23000 1.2863494 0 1.7236774 8.3584973 -1.2313523 + 24000 1.4084347 0 1.7370339 7.2729078 -0.61567613 + 25000 1.3339728 0 1.6883255 7.529098 0 + 26000 1.1483243 0 1.5155578 7.3869994 0.61567613 + 27000 1.1372606 0 1.4368323 7.0580136 1.2313523 + 28000 1.0518579 0 1.355311 6.478857 1.8470284 + 29000 1.0581145 0 1.2535509 5.3697479 2.4627045 + 30000 0.93612564 0 1.185532 5.5520142 3.0783806 + 31000 0.94387516 0 1.1716454 5.8655485 3.6940568 + 32000 0.83953515 0 1.0737746 5.5551953 4.3097329 + 33000 0.84862926 0 1.0564042 5.7795428 4.925409 + 34000 0.83621877 0 1.079387 5.7514243 5.5410852 + 35000 0.86938506 0 1.031783 4.5897825 6.1567613 + 36000 0.88990609 0 1.0807597 5.3751744 6.7724374 + 37000 0.89534631 0 1.1238882 5.2400355 7.3881135 + 38000 0.98545003 0 1.2121125 5.7783854 -7.3881135 + 39000 0.96737778 0 1.2472934 6.1139 -6.7724374 + 40000 1.0664194 0 1.2956811 5.7353661 -6.1567613 + 41000 1.0681494 0 1.3269435 6.3102722 -5.5410852 + 42000 1.0875422 0 1.3963739 7.1208066 -4.925409 + 43000 1.0968173 0 1.3388062 6.1704339 -4.3097329 + 44000 1.1182109 0 1.3773214 7.0872686 -3.6940568 + 45000 1.1243261 0 1.432186 6.884782 -3.0783806 + 46000 1.039713 0 1.4389721 7.5585257 -2.4627045 + 47000 1.0816108 0 1.4100361 6.4611126 -1.8470284 + 48000 0.97637127 0 1.3605389 7.3992744 -1.2313523 + 49000 1.0361978 0 1.2721873 5.8166109 -0.61567613 + 50000 0.92367087 0 1.1875669 6.4685214 0 +Loop time of 13.6129 on 2 procs for 50000 steps with 160 atoms + +Performance: 1586733.497 tau/day, 3672.994 timesteps/s +59.3% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0015125 | 0.0015551 | 0.0015976 | 0.1 | 0.01 +Comm | 0.026598 | 0.028413 | 0.030227 | 1.1 | 0.21 +Output | 0.00046492 | 0.00063884 | 0.00081277 | 0.0 | 0.00 +Modify | 13.465 | 13.483 | 13.501 | 0.5 | 99.04 +Other | | 0.0994 | | | 0.73 + +Nlocal: 80 ave 80 max 80 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5257 +Dangerous builds = 0 +Total wall time: 0:00:13 diff --git a/examples/message/log.28Aug18.message.tilt.g++.1 b/examples/message/log.28Aug18.message.tilt.g++.1 new file mode 100644 index 0000000000..3f7cfc9da0 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.g++.1 @@ -0,0 +1,129 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - no client/server mode + +units lj +atom_style atomic +dimension 2 + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000437021 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.065 | 3.065 | 3.065 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.1326992 0.25863754 1.3842573 6.0588079 0.61567613 + 2000 1.0158438 0.33502643 1.3445212 7.2638652 1.2313523 + 3000 1.0968167 0.3149227 1.4048843 7.0653223 1.8470284 + 4000 1.0070993 0.40611915 1.4069241 7.7283521 2.4627045 + 5000 1.1153133 0.2674828 1.3758254 6.2949171 3.0783806 + 6000 1.0170665 0.25843673 1.2691466 6.049412 3.6940568 + 7000 1.0224605 0.20974914 1.2258193 5.5104976 4.3097329 + 8000 0.96149374 0.24035439 1.1958388 5.4179146 4.925409 + 9000 0.87759014 0.2590493 1.1311545 5.8711239 5.5410852 + 10000 0.83791968 0.23477897 1.0674617 5.666904 6.1567613 + 11000 0.87702487 0.22958877 1.1011322 5.9068062 6.7724374 + 12000 0.81507294 0.26375817 1.0737369 5.9166925 7.3881135 + 13000 0.85655284 0.24676491 1.0979643 5.6918734 -7.3881135 + 14000 0.84369293 0.27818471 1.1166046 6.4146184 -6.7724374 + 15000 0.90052173 0.19836095 1.0932544 5.2690913 -6.1567613 + 16000 0.83836874 0.26921637 1.1023453 5.9579526 -5.5410852 + 17000 0.90492897 0.21933098 1.1186041 5.6042194 -4.925409 + 18000 0.90113412 0.24880908 1.1443111 6.0634846 -4.3097329 + 19000 1.0160445 0.17252962 1.1822239 5.3149334 -3.6940568 + 20000 0.96217234 0.2414377 1.1975965 5.476653 -3.0783806 + 21000 0.98229664 0.27569118 1.2518485 5.9340174 -2.4627045 + 22000 1.0551763 0.26997615 1.3185576 6.2094112 -1.8470284 + 23000 1.051999 0.34076639 1.3861904 7.082385 -1.2313523 + 24000 1.1350071 0.23701844 1.3649317 6.1829742 -0.61567613 + 25000 1.0946409 0.33366032 1.4214597 7.1907559 0 + 26000 1.1511799 0.24626808 1.3902531 5.8469984 0.61567613 + 27000 1.1009203 0.25653085 1.3505704 6.1504287 1.2313523 + 28000 1.0521302 0.2876798 1.3332342 5.9906187 1.8470284 + 29000 1.0518465 0.21853 1.2638025 5.6577549 2.4627045 + 30000 0.97264625 0.28758145 1.2541487 6.5769804 3.0783806 + 31000 1.0133579 0.31575837 1.3227828 6.6650893 3.6940568 + 32000 1.0714324 0.28757036 1.3523063 6.2682059 4.3097329 + 33000 1.0739451 0.28062459 1.3478575 6.6862746 4.925409 + 34000 1.0056867 0.38289586 1.382297 7.1120131 5.5410852 + 35000 1.0911349 0.26370939 1.3480247 6.1476048 6.1567613 + 36000 1.0618618 0.28269593 1.3379211 6.9414608 6.7724374 + 37000 1.0704991 0.29974994 1.3635585 7.0834346 7.3881135 + 38000 1.1087507 0.2682201 1.3700411 5.8506019 -7.3881135 + 39000 1.1303733 0.22362416 1.3469326 5.2500269 -6.7724374 + 40000 1.0174248 0.28956571 1.3006316 6.4491571 -6.1567613 + 41000 0.95981887 0.29162143 1.2454414 6.4658646 -5.5410852 + 42000 0.88302144 0.30432252 1.1818251 6.7401923 -4.925409 + 43000 0.93164419 0.25110308 1.1769245 5.9067383 -4.3097329 + 44000 0.98352598 0.23322873 1.2106077 5.5606585 -3.6940568 + 45000 1.0247245 0.26503082 1.2833508 6.533394 -3.0783806 + 46000 0.93004532 0.32277782 1.2470104 6.4689179 -2.4627045 + 47000 1.0653176 0.29185413 1.3505135 6.9534569 -1.8470284 + 48000 1.0401524 0.3420245 1.3756759 6.8016042 -1.2313523 + 49000 1.0023407 0.31833091 1.314407 6.7385662 -0.61567613 + 50000 1.0566272 0.28657142 1.3365947 6.261203 0 +Loop time of 1.15672 on 1 procs for 50000 steps with 160 atoms + +Performance: 18673426.371 tau/day, 43225.524 timesteps/s +99.8% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.19267 | 0.19267 | 0.19267 | 0.0 | 16.66 +Neigh | 0.15156 | 0.15156 | 0.15156 | 0.0 | 13.10 +Comm | 0.044569 | 0.044569 | 0.044569 | 0.0 | 3.85 +Output | 0.00057936 | 0.00057936 | 0.00057936 | 0.0 | 0.05 +Modify | 0.71051 | 0.71051 | 0.71051 | 0.0 | 61.42 +Other | | 0.05684 | | | 4.91 + +Nlocal: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 71 ave 71 max 71 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 362 ave 362 max 362 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 362 +Ave neighs/atom = 2.2625 +Neighbor list builds = 5256 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/message/log.28Aug18.message.tilt.g++.4 b/examples/message/log.28Aug18.message.tilt.g++.4 new file mode 100644 index 0000000000..74061463f6 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.g++.4 @@ -0,0 +1,129 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - no client/server mode + +units lj +atom_style atomic +dimension 2 + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000396967 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.065 | 3.065 | 3.065 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.1326992 0.25863754 1.3842573 6.0588079 0.61567613 + 2000 1.0158438 0.33502643 1.3445212 7.2638652 1.2313523 + 3000 1.0968167 0.3149227 1.4048843 7.0653223 1.8470284 + 4000 1.0070993 0.40611915 1.4069241 7.7283521 2.4627045 + 5000 1.1153133 0.2674828 1.3758254 6.2949171 3.0783806 + 6000 1.0170665 0.25843673 1.2691466 6.049412 3.6940568 + 7000 1.0224605 0.20974914 1.2258193 5.5104976 4.3097329 + 8000 0.96149374 0.24035439 1.1958388 5.4179146 4.925409 + 9000 0.87759014 0.2590493 1.1311545 5.8711239 5.5410852 + 10000 0.83791968 0.23477897 1.0674617 5.666904 6.1567613 + 11000 0.87702487 0.22958877 1.1011322 5.9068062 6.7724374 + 12000 0.81507294 0.26375817 1.0737369 5.9166925 7.3881135 + 13000 0.85655284 0.24676491 1.0979643 5.6918734 -7.3881135 + 14000 0.84369293 0.27818471 1.1166046 6.4146184 -6.7724374 + 15000 0.90052173 0.19836095 1.0932544 5.2690913 -6.1567613 + 16000 0.83836874 0.26921637 1.1023453 5.9579526 -5.5410852 + 17000 0.90492897 0.21933098 1.1186041 5.6042194 -4.925409 + 18000 0.90113412 0.24880908 1.1443111 6.0634846 -4.3097329 + 19000 1.0160445 0.17252962 1.1822239 5.3149334 -3.6940568 + 20000 0.96217234 0.2414377 1.1975965 5.476653 -3.0783806 + 21000 0.98229664 0.27569118 1.2518485 5.9340174 -2.4627045 + 22000 1.0551763 0.26997615 1.3185576 6.2094112 -1.8470284 + 23000 1.051999 0.34076639 1.3861904 7.082385 -1.2313523 + 24000 1.1350071 0.23701844 1.3649317 6.1829742 -0.61567613 + 25000 1.0946409 0.33366032 1.4214597 7.1907559 0 + 26000 1.1511799 0.24626808 1.3902531 5.8469984 0.61567613 + 27000 1.1009203 0.25653085 1.3505704 6.1504287 1.2313523 + 28000 1.0521302 0.2876798 1.3332342 5.9906187 1.8470284 + 29000 1.0518465 0.21853 1.2638025 5.6577549 2.4627045 + 30000 0.97264625 0.28758145 1.2541487 6.5769804 3.0783806 + 31000 1.0133579 0.31575837 1.3227828 6.6650893 3.6940568 + 32000 1.0714324 0.28757036 1.3523063 6.2682059 4.3097329 + 33000 1.0739451 0.28062459 1.3478575 6.6862746 4.925409 + 34000 1.0056867 0.38289586 1.382297 7.1120131 5.5410852 + 35000 1.0911349 0.26370939 1.3480247 6.1476048 6.1567613 + 36000 1.0618618 0.28269593 1.3379211 6.9414608 6.7724374 + 37000 1.0704991 0.29974994 1.3635585 7.0834346 7.3881135 + 38000 1.1087507 0.2682201 1.3700411 5.8506019 -7.3881135 + 39000 1.1303733 0.22362416 1.3469326 5.2500269 -6.7724374 + 40000 1.0174248 0.28956571 1.3006316 6.4491571 -6.1567613 + 41000 0.95981887 0.29162143 1.2454414 6.4658646 -5.5410852 + 42000 0.88302144 0.30432252 1.1818251 6.7401923 -4.925409 + 43000 0.93164419 0.25110308 1.1769245 5.9067383 -4.3097329 + 44000 0.98352598 0.23322873 1.2106077 5.5606585 -3.6940568 + 45000 1.0247245 0.26503082 1.2833508 6.533394 -3.0783806 + 46000 0.93004532 0.32277782 1.2470104 6.4689179 -2.4627045 + 47000 1.0653176 0.29185413 1.3505135 6.9534569 -1.8470284 + 48000 1.0401524 0.3420245 1.3756759 6.8016042 -1.2313523 + 49000 1.0023407 0.31833091 1.314407 6.7385662 -0.61567613 + 50000 1.0566272 0.28657142 1.3365947 6.261203 0 +Loop time of 0.92653 on 1 procs for 50000 steps with 160 atoms + +Performance: 23312793.646 tau/day, 53964.800 timesteps/s +100.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.15063 | 0.15063 | 0.15063 | 0.0 | 16.26 +Neigh | 0.11869 | 0.11869 | 0.11869 | 0.0 | 12.81 +Comm | 0.035839 | 0.035839 | 0.035839 | 0.0 | 3.87 +Output | 0.00064468 | 0.00064468 | 0.00064468 | 0.0 | 0.07 +Modify | 0.57422 | 0.57422 | 0.57422 | 0.0 | 61.98 +Other | | 0.0465 | | | 5.02 + +Nlocal: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 71 ave 71 max 71 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 362 ave 362 max 362 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 362 +Ave neighs/atom = 2.2625 +Neighbor list builds = 5256 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.tilt.server.mpione.g++.1 b/examples/message/log.28Aug18.message.tilt.server.mpione.g++.1 new file mode 100644 index 0000000000..428ff346ad --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.mpione.g++.1 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/one + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000438929 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5073 +Total wall time: 0:00:01 diff --git a/examples/message/log.28Aug18.message.tilt.server.mpione.g++.4 b/examples/message/log.28Aug18.message.tilt.server.mpione.g++.4 new file mode 100644 index 0000000000..3da50163ed --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.mpione.g++.4 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/one + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000455141 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 2 by 2 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5066 +Total wall time: 0:00:02 diff --git a/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.1 b/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.1 new file mode 100644 index 0000000000..fc29a6da63 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.1 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/two tmp.couple + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000521898 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5073 +Total wall time: 0:00:04 diff --git a/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.4 b/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.4 new file mode 100644 index 0000000000..758b84fe9d --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.4 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/two tmp.couple + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000378847 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 2 by 2 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5066 +Total wall time: 0:00:06 diff --git a/examples/message/log.28Aug18.message.tilt.server.zmq.g++.1 b/examples/message/log.28Aug18.message.tilt.server.zmq.g++.1 new file mode 100644 index 0000000000..78526ba748 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.zmq.g++.1 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md zmq *:5555 + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000557184 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5073 +Total wall time: 0:00:12 diff --git a/examples/message/log.28Aug18.message.tilt.server.zmq.g++.4 b/examples/message/log.28Aug18.message.tilt.server.zmq.g++.4 new file mode 100644 index 0000000000..b1ad768470 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.zmq.g++.4 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md zmq *:5555 + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000586987 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 2 by 2 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5066 +Total wall time: 0:00:13 diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp index 97d0436a27..bfcca4841b 100644 --- a/src/MESSAGE/fix_client_md.cpp +++ b/src/MESSAGE/fix_client_md.cpp @@ -14,6 +14,7 @@ #include #include #include "fix_client_md.h" +#include "update.h" #include "atom.h" #include "comm.h" #include "domain.h" @@ -28,7 +29,7 @@ using namespace LAMMPS_NS; using namespace CSLIB_NS; using namespace FixConst; -enum{OTHER,REAL,METAL} +enum{OTHER,REAL,METAL}; enum{SETUP=1,STEP}; enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; enum{FORCES=1,ENERGY,VIRIAL,ERROR}; @@ -154,7 +155,7 @@ void FixClientMD::setup(int vflag) receive_fev(vflag); if (server_error) { - str = char[64]; + char str[64]; sprintf(str,"Fix client/md received server error %d\n",server_error); error->all(FLERR,str); } @@ -205,7 +206,7 @@ void FixClientMD::post_force(int vflag) receive_fev(vflag); if (server_error) { - str = char[64]; + char str[64]; sprintf(str,"Fix client/md received server error %d\n",server_error); error->all(FLERR,str); } diff --git a/src/MESSAGE/fix_client_md.h b/src/MESSAGE/fix_client_md.h index 9c70e4c026..262a4736ed 100644 --- a/src/MESSAGE/fix_client_md.h +++ b/src/MESSAGE/fix_client_md.h @@ -37,16 +37,16 @@ class FixClientMD : public Fix { double compute_scalar(); private: - int maxatom,units; - double box[3][3]; + int maxatom,units,server_error; double eng; - double *xpbc; - double inv_nprocs; double fconvert,econvert,vconvert; + double box[3][3]; + double *xpbc; void pack_coords(); - void receive_fev(int ); + void pack_box(); + void receive_fev(int); }; } diff --git a/src/MESSAGE/server_md.cpp b/src/MESSAGE/server_md.cpp index 340431021b..e51571e972 100644 --- a/src/MESSAGE/server_md.cpp +++ b/src/MESSAGE/server_md.cpp @@ -24,6 +24,7 @@ #include "neighbor.h" #include "comm.h" #include "domain.h" +#include "memory.h" #include "error.h" // CSlib interface @@ -33,7 +34,7 @@ using namespace LAMMPS_NS; using namespace CSLIB_NS; -enum{OTHER,REAL,METAL} +enum{OTHER,REAL,METAL}; enum{SETUP=1,STEP}; enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; enum{FORCES=1,ENERGY,VIRIAL,ERROR}; @@ -68,7 +69,7 @@ ServerMD::ServerMD(LAMMPS *lmp) : Pointers(lmp) /* ---------------------------------------------------------------------- */ -ServerMD::~ServerMD(); +ServerMD::~ServerMD() { memory->destroy(fcopy); } @@ -113,7 +114,7 @@ void ServerMD::loop() double *box = NULL; int *types = NULL; double *coords = NULL; - char *units = NULL; + char *unit_style = NULL; double *charge = NULL; for (int ifield = 0; ifield < nfield; ifield++) { @@ -124,7 +125,7 @@ void ServerMD::loop() } else if (fieldID[ifield] == PERIODICITY) { periodicity = (int *) cs->unpack(PERIODICITY); if (periodicity[0] != domain->periodicity[0] || - periodicity[1] != domain->periodicity[1] + periodicity[1] != domain->periodicity[1] || periodicity[2] != domain->periodicity[2]) error->all(FLERR,"Server md periodicity mis-match with client"); } else if (fieldID[ifield] == ORIGIN) { @@ -145,7 +146,7 @@ void ServerMD::loop() coords = (double *) cs->unpack(COORDS); } else if (fieldID[ifield] == UNITS) { - units = (char *) cs->unpack(UNITS); + unit_style = (char *) cs->unpack(UNITS); } else if (fieldID[ifield] == CHARGE) { charge = (double *) cs->unpack(CHARGE); } else error->all(FLERR,"Server md setup field unknown"); @@ -155,7 +156,7 @@ void ServerMD::loop() natoms < 0 || ntypes < 0 || !types || !coords) error->all(FLERR,"Required server md setup field not received"); - if (units && strcmp(units,update->unit_style) != 0) + if (unit_style && strcmp(unit_style,update->unit_style) != 0) error->all(FLERR,"Server md does not match client units"); if (charge && atom->q_flag == 0) @@ -221,7 +222,7 @@ void ServerMD::loop() // STEP receive at each timestep of run or minimization // required fields: COORDS - // optional fields: BOXLO, BOXHI, BOXTILT + // optional fields: ORIGIN, BOX } else if (msgID == STEP) { @@ -354,7 +355,7 @@ void ServerMD::send_fev(int msgID) else { double **f = atom->f; int nlocal = atom->nlocal; - for (i = 0; i < nlocal; i++) { + for (int i = 0; i < nlocal; i++) { fcopy[i][0] = fconvert*f[i][0]; fcopy[i][1] = fconvert*f[i][1]; fcopy[i][2] = fconvert*f[i][2]; diff --git a/src/MESSAGE/server_md.h b/src/MESSAGE/server_md.h index ecc713a4e8..35daad8df0 100644 --- a/src/MESSAGE/server_md.h +++ b/src/MESSAGE/server_md.h @@ -26,9 +26,10 @@ class ServerMD : protected Pointers { private: int units; + double fconvert,econvert,vconvert; double **fcopy; - void box_change(double *, double *, double *); + void box_change(double *, double *); void send_fev(int); }; From 6ea33e3e893f4db561b50d46ebce383ff1460e48 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 29 Aug 2018 06:51:20 -0400 Subject: [PATCH 623/675] Fix typo and use ZMQ stubs in CMake when necessary --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index f22df48afe..9f6a31557f 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -500,7 +500,7 @@ if(PKG_MESSAGE) target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES}) else() target_compile_definitions(cslib PRIVATE -DZMQ_NO) - target_include_directories(cslib PRIVATE ${LAMMPS_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ) + target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ) endif() list(APPEND LAMMPS_LINK_LIBS cslib) From 4c32a551bd62710628cfd04c8bb71c9f69555b32 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 29 Aug 2018 07:24:38 -0400 Subject: [PATCH 624/675] Rename to libcs.a --- cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 9f6a31557f..5541d8367e 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -486,6 +486,7 @@ if(PKG_MESSAGE) file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp) add_library(cslib STATIC ${cslib_SOURCES}) + set_target_properties(cslib PROPERTIES OUTPUT_NAME "cs") if(BUILD_MPI) target_compile_definitions(cslib PRIVATE -DMPI_YES) From a7e9076bc08c44a582224f50dab4a895b769722e Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 29 Aug 2018 07:30:53 -0400 Subject: [PATCH 625/675] Rename to libcsmpi/libcsnompi like in Makefile --- cmake/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 5541d8367e..d83289b178 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -486,12 +486,13 @@ if(PKG_MESSAGE) file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp) add_library(cslib STATIC ${cslib_SOURCES}) - set_target_properties(cslib PROPERTIES OUTPUT_NAME "cs") if(BUILD_MPI) target_compile_definitions(cslib PRIVATE -DMPI_YES) + set_target_properties(cslib PROPERTIES OUTPUT_NAME "csmpi") else() target_compile_definitions(cslib PRIVATE -DMPI_NO) + set_target_properties(cslib PROPERTIES OUTPUT_NAME "csnompi") endif() if(MESSAGE_ZMQ) From 0860b9e674571d1735387dbb721b18636fc67d31 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 29 Aug 2018 07:52:16 -0400 Subject: [PATCH 626/675] Build cslib static or as shared --- cmake/CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index d83289b178..c61110bb46 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -485,7 +485,12 @@ if(PKG_MESSAGE) option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF) file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp) - add_library(cslib STATIC ${cslib_SOURCES}) + + if(BUILD_SHARED_LIBS) + add_library(cslib SHARED ${cslib_SOURCES}) + else() + add_library(cslib STATIC ${cslib_SOURCES}) + endif() if(BUILD_MPI) target_compile_definitions(cslib PRIVATE -DMPI_YES) From c5861307f6f3d16570eea928d62a658608b0eaa3 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 29 Aug 2018 10:58:09 -0600 Subject: [PATCH 627/675] cmake: add FindLAMMPS.cmake.in --- cmake/CMakeLists.txt | 14 ++++++------ cmake/FindLAMMPS.cmake.in | 47 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 cmake/FindLAMMPS.cmake.in diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3ef3e8d7f4..ec33f913e0 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -1041,13 +1041,13 @@ if(BUILD_LIB) add_dependencies(lammps ${LAMMPS_DEPS}) endif() set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LIB_SUFFIX}) - if(BUILD_SHARED_LIBS) - set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) - install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) - configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - endif() + set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) + install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) + configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + configure_file(FindLAMMPS.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LIB_SUFFIX}.cmake @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LIB_SUFFIX}.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/Module) else() list(APPEND LMP_SOURCES ${LIB_SOURCES}) endif() diff --git a/cmake/FindLAMMPS.cmake.in b/cmake/FindLAMMPS.cmake.in new file mode 100644 index 0000000000..e8fac703af --- /dev/null +++ b/cmake/FindLAMMPS.cmake.in @@ -0,0 +1,47 @@ +# - Find liblammps +# Find the native liblammps headers and libraries. +# +# The following variables will set: +# LAMMPS_INCLUDE_DIRS - where to find lammps/library.h, etc. +# LAMMPS_LIBRARIES - List of libraries when using lammps. +# LAMMPS_VERSION - lammps library version +# LAMMPS_FOUND - True if liblammps found. +# +# In addition a LAMMPS::LAMMPS imported target is getting created. +# +# 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. +# + +find_package(PkgConfig) + +pkg_check_modules(PC_LAMMPS liblammps@LIB_SUFFIX@) +find_path(LAMMPS_INCLUDE_DIR lammps/library.h HINTS ${PC_LAMMPS_INCLUDE_DIRS} @CMAKE_INSTALL_FULL_INCLUDEDIR@) + +# TODO figure out library version from header +set(LAMMPS_VERSION 20180822) + +find_library(LAMMPS_LIBRARY NAMES lammps@LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@) + +set(LAMMPS_INCLUDE_DIRS "${LAMMPS_INCLUDE_DIR}") +set(LAMMPS_LIBRARIES "${LAMMPS_LIBRARY}") + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set LAMMPS_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(LAMMPS REQUIRED_VARS LAMMPS_LIBRARY LAMMPS_INCLUDE_DIR VERSION_VAR LAMMPS_VERSION) + +mark_as_advanced(LAMMPS_INCLUDE_DIR LAMMPS_LIBRARY) + +if(LAMMPS_FOUND AND NOT TARGET LAMMPS::LAMMPS) + add_library(LAMMPS::LAMMPS UNKNOWN IMPORTED) + set_target_properties(LAMMPS::LAMMPS PROPERTIES IMPORTED_LOCATION ${LAMMPS_LIBRARY} INTERFACE_INCLUDE_DIRECTORIES ${LAMMPS_INCLUDE_DIR}) +endif() From 499ffa198d0a1c4b98507e11dc92fc053e12d284 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 29 Aug 2018 11:31:28 -0600 Subject: [PATCH 628/675] cmake: change too generic LIB_SUFFIX to LAMMPS_LIB_SUFFIX --- cmake/CMakeLists.txt | 18 +++++++++--------- cmake/FindLAMMPS.cmake.in | 4 ++-- cmake/pkgconfig/liblammps.pc.in | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index ec33f913e0..d3d5499ca8 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -121,10 +121,10 @@ if(BUILD_LIB) if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg set(CMAKE_POSITION_INDEPENDENT_CODE ON) endif() - set(LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file") - mark_as_advanced(LIB_SUFFIX) - if(LIB_SUFFIX) - set(LIB_SUFFIX "_${LIB_SUFFIX}") + set(LAMMPS_LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file") + mark_as_advanced(LAMMPS_LIB_SUFFIX) + if(LAMMPS_LIB_SUFFIX) + set(LAMMPS_LIB_SUFFIX "_${LAMMPS_LIB_SUFFIX}") endif() endif() @@ -1040,14 +1040,14 @@ if(BUILD_LIB) if(LAMMPS_DEPS) add_dependencies(lammps ${LAMMPS_DEPS}) endif() - set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LIB_SUFFIX}) + set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_LIB_SUFFIX}) set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) - configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - configure_file(FindLAMMPS.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LIB_SUFFIX}.cmake @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LIB_SUFFIX}.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/Module) + configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + configure_file(FindLAMMPS.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/Module) else() list(APPEND LMP_SOURCES ${LIB_SOURCES}) endif() diff --git a/cmake/FindLAMMPS.cmake.in b/cmake/FindLAMMPS.cmake.in index e8fac703af..e816f63f43 100644 --- a/cmake/FindLAMMPS.cmake.in +++ b/cmake/FindLAMMPS.cmake.in @@ -23,13 +23,13 @@ find_package(PkgConfig) -pkg_check_modules(PC_LAMMPS liblammps@LIB_SUFFIX@) +pkg_check_modules(PC_LAMMPS liblammps@LAMMPS_LIB_SUFFIX@) find_path(LAMMPS_INCLUDE_DIR lammps/library.h HINTS ${PC_LAMMPS_INCLUDE_DIRS} @CMAKE_INSTALL_FULL_INCLUDEDIR@) # TODO figure out library version from header set(LAMMPS_VERSION 20180822) -find_library(LAMMPS_LIBRARY NAMES lammps@LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@) +find_library(LAMMPS_LIBRARY NAMES lammps@LAMMPS_LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@) set(LAMMPS_INCLUDE_DIRS "${LAMMPS_INCLUDE_DIR}") set(LAMMPS_LIBRARIES "${LAMMPS_LIBRARY}") diff --git a/cmake/pkgconfig/liblammps.pc.in b/cmake/pkgconfig/liblammps.pc.in index 400b7593cf..41431bb54a 100644 --- a/cmake/pkgconfig/liblammps.pc.in +++ b/cmake/pkgconfig/liblammps.pc.in @@ -13,6 +13,6 @@ Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library URL: http://lammps.sandia.gov Version: Requires: -Libs: -L${libdir} -llammps@LIB_SUFFIX@@ +Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@@ Libs.private: -lm Cflags: -I${includedir} @LAMMPS_API_DEFINES@ From 054abe280eabd73dc257941d002214674d5f52cd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 29 Aug 2018 14:55:36 -0400 Subject: [PATCH 629/675] squash some more compiler warnings --- src/fix_tmd.cpp | 2 +- src/library.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/fix_tmd.cpp b/src/fix_tmd.cpp index ea448bd178..dd11dfd0c7 100644 --- a/src/fix_tmd.cpp +++ b/src/fix_tmd.cpp @@ -412,7 +412,7 @@ void FixTMD::readfile(char *file) m++; } - MPI_Bcast(&eof,sizeof(char *)/sizeof(char),MPI_CHAR,0,world); + MPI_Bcast(&eof,sizeof(char *),MPI_CHAR,0,world); MPI_Bcast(&nlines,1,MPI_INT,0,world); MPI_Bcast(&m,1,MPI_INT,0,world); MPI_Bcast(buffer,m,MPI_CHAR,0,world); diff --git a/src/library.cpp b/src/library.cpp index 245ae7ba84..a46689da09 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1515,7 +1515,8 @@ void lammps_create_atoms(void *ptr, int n, tagint *id, int *type, if (lmp->atom->natoms != natoms_prev + n) { char str[128]; sprintf(str,"Library warning in lammps_create_atoms, " - "invalid total atoms " BIGINT_FORMAT " %lld",lmp->atom->natoms,natoms_prev+n); + "invalid total atoms " BIGINT_FORMAT " " BIGINT_FORMAT, + lmp->atom->natoms,natoms_prev+n); if (lmp->comm->me == 0) lmp->error->warning(FLERR,str); } From 47b8a116a67b2971cdfe72a7bb3f0d858f6868ab Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 29 Aug 2018 13:20:04 -0600 Subject: [PATCH 630/675] liblammps.pc: fixed a typo --- cmake/pkgconfig/liblammps.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/pkgconfig/liblammps.pc.in b/cmake/pkgconfig/liblammps.pc.in index 41431bb54a..b9f35e9012 100644 --- a/cmake/pkgconfig/liblammps.pc.in +++ b/cmake/pkgconfig/liblammps.pc.in @@ -13,6 +13,6 @@ Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library URL: http://lammps.sandia.gov Version: Requires: -Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@@ +Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@ Libs.private: -lm Cflags: -I${includedir} @LAMMPS_API_DEFINES@ From db180209b3faec15d72abccbaaff9ec52ddf4960 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Wed, 29 Aug 2018 13:20:25 -0600 Subject: [PATCH 631/675] FindLAMMPS.cmake: add LAMMPS_API_DEFINES --- cmake/FindLAMMPS.cmake.in | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmake/FindLAMMPS.cmake.in b/cmake/FindLAMMPS.cmake.in index e816f63f43..fc6dbb1a71 100644 --- a/cmake/FindLAMMPS.cmake.in +++ b/cmake/FindLAMMPS.cmake.in @@ -4,6 +4,7 @@ # The following variables will set: # LAMMPS_INCLUDE_DIRS - where to find lammps/library.h, etc. # LAMMPS_LIBRARIES - List of libraries when using lammps. +# LAMMPS_API_DEFINES - lammps library api defines # LAMMPS_VERSION - lammps library version # LAMMPS_FOUND - True if liblammps found. # @@ -26,8 +27,9 @@ find_package(PkgConfig) pkg_check_modules(PC_LAMMPS liblammps@LAMMPS_LIB_SUFFIX@) find_path(LAMMPS_INCLUDE_DIR lammps/library.h HINTS ${PC_LAMMPS_INCLUDE_DIRS} @CMAKE_INSTALL_FULL_INCLUDEDIR@) -# TODO figure out library version from header +# TODO figure these out library version from header set(LAMMPS_VERSION 20180822) +set(LAMMPS_API_DEFINES @LAMMPS_API_DEFINES@) find_library(LAMMPS_LIBRARY NAMES lammps@LAMMPS_LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@) @@ -43,5 +45,5 @@ mark_as_advanced(LAMMPS_INCLUDE_DIR LAMMPS_LIBRARY) if(LAMMPS_FOUND AND NOT TARGET LAMMPS::LAMMPS) add_library(LAMMPS::LAMMPS UNKNOWN IMPORTED) - set_target_properties(LAMMPS::LAMMPS PROPERTIES IMPORTED_LOCATION ${LAMMPS_LIBRARY} INTERFACE_INCLUDE_DIRECTORIES ${LAMMPS_INCLUDE_DIR}) + set_target_properties(LAMMPS::LAMMPS PROPERTIES IMPORTED_LOCATION "${LAMMPS_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${LAMMPS_INCLUDE_DIR}" INTERFACE_COMPILE_DEFINITIONS "${LAMMPS_API_DEFINES}") endif() From b0f5400d52c2cbf2c261437f20a4ab986b632b46 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 29 Aug 2018 16:12:16 -0400 Subject: [PATCH 632/675] Add utility function to determine LAMMPS version in CMake --- cmake/CMakeLists.txt | 23 +++++++++++++++++++++++ cmake/FindLAMMPS.cmake.in | 3 +-- cmake/pkgconfig/liblammps.pc.in | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index d3d5499ca8..53ac20f5d9 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -43,6 +43,29 @@ function(validate_option name values) endif() endfunction(validate_option) +function(get_lammps_version version_header variable) + file(READ ${version_header} line) + set(MONTHS x Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec) + string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\1" day "${line}") + string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\2" month "${line}") + string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\3" year "${line}") + string(STRIP ${day} day) + string(STRIP ${month} month) + string(STRIP ${year} year) + list(FIND MONTHS "${month}" month) + string(LENGTH ${day} day_length) + string(LENGTH ${month} month_length) + if(day_length EQUAL 1) + set(day "0${day}") + endif() + if(month_length EQUAL 1) + set(month "0${month}") + endif() + set(${variable} "${year}${month}${day}" PARENT_SCOPE) +endfunction() + +get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h LAMMPS_VERSION) + # Cmake modules/macros are in a subdirectory to keep this file cleaner set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules) diff --git a/cmake/FindLAMMPS.cmake.in b/cmake/FindLAMMPS.cmake.in index fc6dbb1a71..586df83c2d 100644 --- a/cmake/FindLAMMPS.cmake.in +++ b/cmake/FindLAMMPS.cmake.in @@ -27,8 +27,7 @@ find_package(PkgConfig) pkg_check_modules(PC_LAMMPS liblammps@LAMMPS_LIB_SUFFIX@) find_path(LAMMPS_INCLUDE_DIR lammps/library.h HINTS ${PC_LAMMPS_INCLUDE_DIRS} @CMAKE_INSTALL_FULL_INCLUDEDIR@) -# TODO figure these out library version from header -set(LAMMPS_VERSION 20180822) +set(LAMMPS_VERSION @LAMMPS_VERSION@) set(LAMMPS_API_DEFINES @LAMMPS_API_DEFINES@) find_library(LAMMPS_LIBRARY NAMES lammps@LAMMPS_LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@) diff --git a/cmake/pkgconfig/liblammps.pc.in b/cmake/pkgconfig/liblammps.pc.in index b9f35e9012..445b2ab29e 100644 --- a/cmake/pkgconfig/liblammps.pc.in +++ b/cmake/pkgconfig/liblammps.pc.in @@ -4,7 +4,7 @@ # after you added @CMAKE_INSTALL_FULL_LIBDIR@/pkg-config to PKG_CONFIG_PATH, # e.g. export PKG_CONFIG_PATH=@CMAKE_INSTALL_FULL_LIBDIR@/pkgconfig -prefix=@CMAKE_INSTALL_FULL_PREFIX@ +prefix=@CMAKE_INSTALL_PREFIX@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ From 8f5512eafec70cfc11280bf705cd80978e987e9b Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 31 Aug 2018 09:49:35 -0600 Subject: [PATCH 633/675] patch 31Aug18 --- doc/src/Manual.txt | 4 ++-- src/version.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index ad3e66a4b2..e442aa1808 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ LAMMPS Users Manual - + @@ -21,7 +21,7 @@ :line LAMMPS Documentation :c,h1 -22 Aug 2018 version :c,h2 +31 Aug 2018 version :c,h2 "What is a LAMMPS version?"_Manual_version.html diff --git a/src/version.h b/src/version.h index 2192b25d91..fbeeabff8d 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "22 Aug 2018" +#define LAMMPS_VERSION "31 Aug 2018" From 41f0951d0ce05d6f394f09a00972f52df837fe38 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 31 Aug 2018 10:09:03 -0600 Subject: [PATCH 634/675] liblammps.pc: add lammps version --- cmake/pkgconfig/liblammps.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/pkgconfig/liblammps.pc.in b/cmake/pkgconfig/liblammps.pc.in index 445b2ab29e..7850972f3b 100644 --- a/cmake/pkgconfig/liblammps.pc.in +++ b/cmake/pkgconfig/liblammps.pc.in @@ -11,7 +11,7 @@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ Name: liblammps@LAMMPS_MACHINE@ Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library URL: http://lammps.sandia.gov -Version: +Version: @LAMMPS_VERSION@ Requires: Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@ Libs.private: -lm From c4c5f9a32eb556ad78be55bdf188d9eae8c4e56b Mon Sep 17 00:00:00 2001 From: "Steven J. Plimpton" Date: Fri, 31 Aug 2018 13:44:49 -0600 Subject: [PATCH 635/675] 2 new computes: chunk/spread/atom and reduce/chunk --- doc/src/Commands_compute.txt | 2 + doc/src/Howto_chunk.txt | 45 ++- doc/src/compute.txt | 2 + doc/src/compute_chunk_atom.txt | 11 +- doc/src/compute_chunk_spread_atom.txt | 173 +++++++++ doc/src/compute_reduce.txt | 6 +- doc/src/compute_reduce_chunk.txt | 177 +++++++++ doc/src/computes.txt | 2 + doc/src/lammps.book | 2 + src/compute_chunk_spread_atom.cpp | 352 ++++++++++++++++++ src/compute_chunk_spread_atom.h | 61 +++ src/compute_reduce.cpp | 1 + src/compute_reduce_chunk.cpp | 512 ++++++++++++++++++++++++++ src/compute_reduce_chunk.h | 77 ++++ 14 files changed, 1407 insertions(+), 16 deletions(-) create mode 100644 doc/src/compute_chunk_spread_atom.txt create mode 100644 doc/src/compute_reduce_chunk.txt create mode 100644 src/compute_chunk_spread_atom.cpp create mode 100644 src/compute_chunk_spread_atom.h create mode 100644 src/compute_reduce_chunk.cpp create mode 100644 src/compute_reduce_chunk.h diff --git a/doc/src/Commands_compute.txt b/doc/src/Commands_compute.txt index 028e274c9b..6185634187 100644 --- a/doc/src/Commands_compute.txt +++ b/doc/src/Commands_compute.txt @@ -35,6 +35,7 @@ KOKKOS, o = USER-OMP, t = OPT. "bond/local"_compute_bond_local.html, "centro/atom"_compute_centro_atom.html, "chunk/atom"_compute_chunk_atom.html, +"chunk/spread/atom"_compute_chunk_spread_atom.html, "cluster/atom"_compute_cluster_atom.html, "cna/atom"_compute_cna_atom.html, "cnp/atom"_compute_cnp_atom.html, @@ -97,6 +98,7 @@ KOKKOS, o = USER-OMP, t = OPT. "property/local"_compute_property_local.html, "rdf"_compute_rdf.html, "reduce"_compute_reduce.html, +"reduce/chunk"_compute_reduce_chunk.html, "reduce/region"_compute_reduce.html, "rigid/local"_compute_rigid_local.html, "saed"_compute_saed.html, diff --git a/doc/src/Howto_chunk.txt b/doc/src/Howto_chunk.txt index 8e52acf4b8..611b71dac7 100644 --- a/doc/src/Howto_chunk.txt +++ b/doc/src/Howto_chunk.txt @@ -22,7 +22,7 @@ commands, to calculate various properties of a system: "fix ave/chunk"_fix_ave_chunk.html any of the "compute */chunk"_compute.html commands :ul -Here, each of the 3 kinds of chunk-related commands is briefly +Here, each of the 4 kinds of chunk-related commands is briefly overviewed. Then some examples are given of how to compute different properties with chunk commands. @@ -83,8 +83,9 @@ chunk. Compute */chunk commands: :h4 -Currently the following computes operate on chunks of atoms to produce -per-chunk values. +The following computes operate on chunks of atoms to produce per-chunk +values. Any compute whose style name ends in "/chunk" is in this +category: "compute com/chunk"_compute_com_chunk.html "compute gyration/chunk"_compute_gyration_chunk.html @@ -111,8 +112,8 @@ of a center of mass, which requires summing mass*position over the atoms and then dividing by summed mass. All of these computes produce a global vector or global array as -output, wih one or more values per chunk. They can be used -in various ways: +output, wih one or more values per chunk. The output can be used in +various ways: As input to the "fix ave/time"_fix_ave_time.html command, which can write the values to a file and optionally time average them. :ulb,l @@ -122,9 +123,27 @@ histogram values across chunks. E.g. a histogram of cluster sizes or molecule diffusion rates. :l As input to special functions of "equal-style -variables"_variable.html, like sum() and max(). E.g. to find the -largest cluster or fastest diffusing molecule. :l -:ule +variables"_variable.html, like sum() and max() and ave(). E.g. to +find the largest cluster or fastest diffusing molecule or average +radius-of-gyration of a set of molecules (chunks). :l :ule + +Other chunk commands: :h4 + +"compute chunk/spread/atom"_compute_chunk_spread_atom.html +"compute reduce/chunk"_compute_reduce_chunk.html :ul + +The "compute chunk/spread/atom"_compute_chunk_spread_atom.html command +spreads per-chunk values to each atom in the chunk, producing per-atom +values as its output. This can be useful for outputting per-chunk +values to a per-atom "dump file"_dump.html. Or for using an atom's +associated chunk value in an "atom-style variable"_variable.html. + +The "compute reduce/chunk"_compute_reduce_chunk.html command reduces a +peratom value across the atoms in each chunk to produce a value per +chunk. When used with the "compute +chunk/spread/atom"_compute_chunk_spread_atom.html command it can +create peratom values that induce a new set of chunks with a second +"compute chunk/atom"_compute_chunk_atom.html command. Example calculations with chunks :h4 @@ -164,3 +183,13 @@ compute cluster all cluster/atom 1.0 compute cc1 all chunk/atom c_cluster compress yes compute size all property/chunk cc1 count fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo :pre + +(6) An example of using a per-chunk value to apply per-atom forces to +compress individual polymer chains (molecules) in a mixture, is +explained on the "compute +chunk/spread/atom"_compute_chunk_spread_atom.html command doc page. + +(7) An example of using one set of per-chunk values for molecule +chunks, to create a 2nd set of micelle-scale chunks (clustered +molecules, due to hydrophobicity), is explained on the "compute +chunk/reduce"_compute_reduce_chunk.html command doc page. diff --git a/doc/src/compute.txt b/doc/src/compute.txt index 8facb4de63..72ea1c1930 100644 --- a/doc/src/compute.txt +++ b/doc/src/compute.txt @@ -183,6 +183,7 @@ compute"_Commands_compute.html doc page are followed by one or more of "bond/local"_compute_bond_local.html - distance and energy of each bond "centro/atom"_compute_centro_atom.html - centro-symmetry parameter for each atom "chunk/atom"_compute_chunk_atom.html - assign chunk IDs to each atom +"chunk/spread/atom"_compute_chunk_spread_atom.html - spreads chunk values to each atom in chunk "cluster/atom"_compute_cluster_atom.html - cluster ID for each atom "cna/atom"_compute_cna_atom.html - common neighbor analysis (CNA) for each atom "com"_compute_com.html - center-of-mass of group of atoms @@ -225,6 +226,7 @@ compute"_Commands_compute.html doc page are followed by one or more of "property/chunk"_compute_property_chunk.html - extract various per-chunk attributes "rdf"_compute_rdf.html - radial distribution function g(r) histogram of group of atoms "reduce"_compute_reduce.html - combine per-atom quantities into a single global value +"reduce/chunk"_compute_reduce_chunk.html - reduce per-atom quantities within each chunk "reduce/region"_compute_reduce.html - same as compute reduce, within a region "rigid/local"_compute_rigid_local.html - extract rigid body attributes "slice"_compute_slice.html - extract values from global vector or array diff --git a/doc/src/compute_chunk_atom.txt b/doc/src/compute_chunk_atom.txt index e76b51e6ec..c29a5600a9 100644 --- a/doc/src/compute_chunk_atom.txt +++ b/doc/src/compute_chunk_atom.txt @@ -14,7 +14,7 @@ compute ID group-ID chunk/atom style args keyword values ... :pre ID, group-ID are documented in "compute"_compute.html command :ulb,l chunk/atom = style name of this compute command :l -style = {bin/1d} or {bin/2d} or {bin/3d} or {bin/sphere} or {type} or {molecule} or {compute/fix/variable} +style = {bin/1d} or {bin/2d} or {bin/3d} or {bin/sphere} or {type} or {molecule} or c_ID, c_ID\[I\], f_ID, f_ID\[I\], v_name {bin/1d} args = dim origin delta dim = {x} or {y} or {z} origin = {lower} or {center} or {upper} or coordinate value (distance units) @@ -40,7 +40,7 @@ style = {bin/1d} or {bin/2d} or {bin/3d} or {bin/sphere} or {type} or {molecule} ncbin = # of concentric circle bins between rmin and rmax {type} args = none {molecule} args = none - {compute/fix/variable} = c_ID, c_ID\[I\], f_ID, f_ID\[I\], v_name with no args + c_ID, c_ID\[I\], f_ID, f_ID\[I\], v_name args = none c_ID = per-atom vector calculated by a compute with ID c_ID\[I\] = Ith column of per-atom array calculated by a compute with ID f_ID = per-atom vector calculated by a fix with ID @@ -85,7 +85,8 @@ compute 1 all chunk/atom bin/1d z lower 0.02 units reduced compute 1 all chunk/atom bin/2d z lower 1.0 y 0.0 2.5 compute 1 all chunk/atom molecule region sphere nchunk once ids once compress yes compute 1 all chunk/atom bin/sphere 5 5 5 2.0 5.0 5 discard yes -compute 1 all chunk/atom bin/cylinder z lower 2 10 10 2.0 5.0 3 discard yes :pre +compute 1 all chunk/atom bin/cylinder z lower 2 10 10 2.0 5.0 3 discard yes +compute 1 all chunk/atom c_cluster :pre [Description:] @@ -386,8 +387,8 @@ described below, which resets {Nchunk}. The {limit} keyword is then applied to the new {Nchunk} value, exactly as described in the preceding paragraph. Note that in this case, all atoms will end up with chunk IDs <= {Nc}, but their original values (e.g. molecule ID or -compute/fix/variable value) may have been > {Nc}, because of the -compression operation. +compute/fix/variable) may have been > {Nc}, because of the compression +operation. If {compress yes} is set, and the {compress} keyword comes after the {limit} keyword, then the {limit} value of {Nc} is applied first to diff --git a/doc/src/compute_chunk_spread_atom.txt b/doc/src/compute_chunk_spread_atom.txt new file mode 100644 index 0000000000..59662035e5 --- /dev/null +++ b/doc/src/compute_chunk_spread_atom.txt @@ -0,0 +1,173 @@ +"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 + +compute chunk/spread/atom command :h3 + +[Syntax:] + +compute ID group-ID chunk/spread/atom chunkID input1 input2 ... :pre + +ID, group-ID are documented in "compute"_compute.html command :ulb,l +chunk/spread/atom = style name of this compute command :l +chunkID = ID of "compute chunk/atom"_compute_chunk_atom.html command :l +one or more inputs can be listed :l +input = c_ID, c_ID\[N\], f_ID, f_ID\[N\] :l + c_ID = global vector calculated by a compute with ID + c_ID\[I\] = Ith column of global array calculated by a compute with ID, I can include wildcard (see below) + f_ID = global vector calculated by a fix with ID + f_ID\[I\] = Ith column of global array calculated by a fix with ID, I can include wildcard (see below) :pre +:ule + +[Examples:] + +compute 1 all chunk/spread/atom mychunk c_com[*] c_gyration :pre + +[Description:] + +Define a calculation that "spreads" one or more per-chunk values to +each atom in the chunk. This can be useful for creating a "dump +file"_dump.html where each atom lists info about the chunk it is in, +e.g. for post-processing purposes. It can also be used in "atom-style +variables"_variable.html that need info about the chunk each atom is +in. Examples are given below. + +In LAMMPS, chunks are collections of atoms defined by a "compute +chunk/atom"_compute_chunk_atom.html command, which assigns each atom +to a single chunk (or no chunk). The ID for this command is specified +as chunkID. For example, a single chunk could be the atoms in a +molecule or atoms in a spatial bin. See the "compute +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. + +For inputs that are computes, they must be a compute that calculates +per-chunk values. These are computes whose style names end in +"/chunk". + +For inputs that are fixes, they should be a a fix that calculates +per-chunk values. For example, "fix ave/chunk"_fix_ave_chunk.html or +"fix ave/time"_fix_ave_time.html (assuming it is time-averaging +per-chunk data). + +For each atom, this compute accesses its chunk ID from the specified +{chunkID} compute, then accesses the per-chunk value in each input. +Those values are copied to this compute to become the output for that +atom. + +The values generated by this compute will be 0.0 for atoms not in the +specified compute group {group-ID}. They will also be 0.0 if the atom +is not in a chunk, as assigned by the {chunkID} compute. They will +also be 0.0 if the current chunk ID for the atom is out-of-bounds with +respect to the number of chunks stored by a particular input compute +or fix. + +NOTE: LAMMPS does not check that a compute or fix which calculates +per-chunk values uses the same definition of chunks as this compute. +It's up to you to be consistent. Likewise, for a fix input, LAMMPS +does not check that it is per-chunk data. It only checks that the fix +produces a global vector or array. + +:line + +Each listed input is operated on independently. + +If a bracketed index I is used, it can be specified using a wildcard +asterisk with the index to effectively specify multiple values. This +takes the form "*" or "*n" or "n*" or "m*n". If N = the number of +columns in the array, then an asterisk with no numeric values means +all indices from 1 to N. A leading asterisk means all indices from 1 +to n (inclusive). A trailing asterisk means all indices from n to N +(inclusive). A middle asterisk means all indices from m to n +(inclusive). + +Using a wildcard is the same as if the individual columns of the array +had been listed one by one. E.g. these 2 compute chunk/spread/atom +commands are equivalent, since the "compute +com/chunk"_compute_com_chunk.html command creates a per-atom array +with 3 columns: + +compute com all com/chunk mychunk +compute 10 all chunk/spread/atom mychunk c_com\[*\] +compute 10 all chunk/spread/atom mychunk c_com\[1\] c_com\[2\] c_com\[3\] :pre + +:line + +Here is an example of writing a dump file the with the center-of-mass +(COM) for the chunk each atom is in: + +compute cmol all chunk/atom molecule +compute com all com/chunk cmol +compute comchunk all chunk/spread/atom cmol c_com[*] +dump 1 all custom 50 tmp.dump id mol type x y z c_comchunk[*] +dump_modify 1 sort id :pre + +The same per-chunk data for each atom could be used to define per-atom +forces for the "fix addforce"_fix_addforce.html command. In this +example the forces act to pull atoms of an extended polymer chain +towards its COM in an attractive manner. + +compute prop all property/atom xu yu zu +variable k equal 0.1 +variable fx atom v_k*(c_comchunk\[1\]-c_prop\[1\]) +variable fy atom v_k*(c_comchunk\[2\]-c_prop\[2\]) +variable fz atom v_k*(c_comchunk\[3\]-c_prop\[3\]) +fix 3 all addforce v_fx v_fy v_fz :pre + +Note that "compute property/atom"_compute_property_atom.html is used +to generate unwrapped coordinates for use in the per-atom force +calculation, so that the effect of periodic boundaries is accounted +for properly. + +Over time this applied force could shrink each polymer chain's radius +of gyration in a polymer mixture simulation. Here is output after +adding the above lines to the bench/in.chain script. The thermo +output is shown for 1000 steps, where the last column is the average +radius of gyration over all 320 chains in the 32000 atom system: + +compute gyr all gyration/chunk cmol +variable ave equal ave(c_gyr) +thermo_style custom step etotal press v_ave :pre + + 0 22.394765 4.6721833 5.128278 + 100 22.445002 4.8166709 5.0348372 + 200 22.500128 4.8790392 4.9364875 + 300 22.534686 4.9183766 4.8590693 + 400 22.557196 4.9492211 4.7937849 + 500 22.571017 4.9161853 4.7412008 + 600 22.573944 5.0229708 4.6931243 + 700 22.581804 5.0541301 4.6440647 + 800 22.584683 4.9691734 4.6000016 + 900 22.59128 5.0247538 4.5611513 + 1000 22.586832 4.94697 4.5238362 :pre + +:line + +[Output info:] + +This compute calculates a per-atom vector or array, which can be +accessed by any command that uses per-atom values from a compute as +input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. + +The output is a per-atom vector if a single input value is specified, +otherwise a per-atom array is output. The number of columns in the +array is the number of inputs provided. The per-atom values for the +vector or each column of the array will be in whatever +"units"_units.html the corresponding input value is in. + +The vector or array values are "intensive". + +[Restrictions:] none + +[Related commands:] + +"compute chunk/atom"_compute_chunk_atom.html, "fix +ave/chunk"_fix_ave_chunk.html, "compute +reduce/chunk"_compute_reduce_chunk.html + +[Default:] none diff --git a/doc/src/compute_reduce.txt b/doc/src/compute_reduce.txt index ef3c7c6489..0bd2accf3c 100644 --- a/doc/src/compute_reduce.txt +++ b/doc/src/compute_reduce.txt @@ -97,9 +97,9 @@ equivalent, since the "compute stress/atom"_compute_stress_atom.html command creates a per-atom array with 6 columns: compute myPress all stress/atom NULL -compute 2 all reduce min myPress\[*\] -compute 2 all reduce min myPress\[1\] myPress\[2\] myPress\[3\] & - myPress\[4\] myPress\[5\] myPress\[6\] :pre +compute 2 all reduce min c_myPress\[*\] +compute 2 all reduce min c_myPress\[1\] c_myPress\[2\] c_myPress\[3\] & + c_myPress\[4\] c_myPress\[5\] c_myPress\[6\] :pre :line diff --git a/doc/src/compute_reduce_chunk.txt b/doc/src/compute_reduce_chunk.txt new file mode 100644 index 0000000000..3628c0f1ad --- /dev/null +++ b/doc/src/compute_reduce_chunk.txt @@ -0,0 +1,177 @@ +"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 + +compute reduce/chunk command :h3 + +[Syntax:] + +compute ID group-ID reduce/chunk chunkID mode input1 input2 ... :pre + +ID, group-ID are documented in "compute"_compute.html command :ulb,l +reduce/chunk = style name of this compute command :l +chunkID = ID of "compute chunk/atom"_compute_chunk_atom.html command :l +mode = {sum} or {min} or {max} :l +one or more inputs can be listed :l +input = c_ID, c_ID\[N\], f_ID, f_ID\[N\], v_ID :l + c_ID = per-atom vector calculated by a compute with ID + c_ID\[I\] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below) + f_ID = per-atom vector calculated by a fix with ID + f_ID\[I\] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below) + v_name = per-atom vector calculated by an atom-style variable with name :pre +:ule + +[Examples:] + +compute 1 all reduce/chunk/atom mychunk min c_cluster :pre + +[Description:] + +Define a calculation that reduces one or more per-atom vectors into +per-chunk values. This can be useful for diagnostic output. Or when +used in conjunction with the "compute +chunk/spread/atom"_compute_chunk_spread_atom.html command it can be +used ot create per-atom values that induce a new set of chunks with a +second "compute chunk/atom"_compute_chunk_atom.html command. An +example is given below. + +In LAMMPS, chunks are collections of atoms defined by a "compute +chunk/atom"_compute_chunk_atom.html command, which assigns each atom +to a single chunk (or no chunk). The ID for this command is specified +as chunkID. For example, a single chunk could be the atoms in a +molecule or atoms in a spatial bin. See the "compute +chunk/atom"_compute_chunk_atom.html and "Howto chunk"_Howto_chunk.html +doc pages for details of how chunks can be defined and examples of how +they can be used to measure properties of a system. + +For each atom, this compute accesses its chunk ID from the specified +{chunkID} compute. The per-atom value from an input contributes +to a per-chunk value corresponding the the chunk ID. + +The reduction operation is specified by the {mode} setting and is +performed over all the per-atom values from the atoms in each chunk. +The {sum} option adds the pre-atom values to a per-chunk total. The +{min} or {max} options find the minimum or maximum value of the +per-atom values for each chunk. + +Note that only atoms in the specified group contribute to the +reduction operation. If the {chunkID} compute returns a 0 for the +chunk ID of an atom (i.e. the atom is not in a chunk defined by the +"compute chunk/atom"_compute_chunk_atom.html command), that atom will +also not contribute to the reduction operation. An input that is a +compute or fix may define its own group which affects the quantities +it returns. For example, a compute with return a zero value for atoms +that are not in the group specified for that compute. + +Each listed input is operated on independently. Each input can be the +result of a "compute"_compute.html or "fix"_fix.html or the evaluation +of an atom-style "variable"_variable.html. + +Note that for values from a compute or fix, the bracketed index I can +be specified using a wildcard asterisk with the index to effectively +specify multiple values. This takes the form "*" or "*n" or "n*" or +"m*n". If N = the size of the vector (for {mode} = scalar) or the +number of columns in the array (for {mode} = vector), then an asterisk +with no numeric values means all indices from 1 to N. A leading +asterisk means all indices from 1 to n (inclusive). A trailing +asterisk means all indices from n to N (inclusive). A middle asterisk +means all indices from m to n (inclusive). + +Using a wildcard is the same as if the individual columns of the array +had been listed one by one. E.g. these 2 compute reduce/chunk +commands are equivalent, since the "compute +property/chunk"_compute_property_chunk.html command creates a per-atom +array with 3 columns: + +compute prop all property/atom vx vy vz +compute 10 all reduce/chunk mychunk max c_prop\[*\] +compute 10 all reduce/chunk mychunk max c_prop\[1\] c_prop\[2\] c_prop\[3\] :pre + +:line + +Here is an example of using this compute, in conjunction with the +compute chunk/spread/atom command to identify self-assembled micelles. +The commands below can be added to the examples/in.micelle script. + +Imagine a collection of polymer chains or small molecules with +hydrophobic end groups. All the hydrophobic (HP) atoms are assigned +to a group called "phobic". + +These commands will assign a unique cluster ID to all HP atoms within +a specified distance of each other. A cluster will contain all HP +atoms in a single molecule, but also the HP atoms in nearby molecules, +e.g. molecules that have clumped to form a micelle due to the +attraction induced by the hydrophobicity. The output of the +chunk/reduce command will be a cluster ID per chunk (molecule). +Molecules with the same cluster ID are in the same micelle. + +group phobic type 4 # specific to in.micelle model +compute cluster phobic cluster/atom 2.0 +compute cmol all chunk/atom molecule +compute reduce phobic reduce/chunk cmol min c_cluster :pre + +This per-chunk info could be output in at least two ways: + +fix 10 all ave/time 1000 1 1000 c_reduce file tmp.phobic mode vector :pre + +compute spread all chunk/spread/atom cmol c_reduce +dump 1 all custom 1000 tmp.dump id type mol x y z c_cluster c_spread +dump_modify 1 sort id :pre + +In the first case, each snapshot in the tmp.phobic file will contain +one line per molecule. Molecules with the same value are in the same +micelle. In the second case each dump snapshot contains all atoms, +each with a final field with the cluster ID of the micelle that the HP +atoms of that atom's molecule belong to. + +The result from compute chunk/spread/atom can be used to define a new +set of chunks, where all the atoms in all the molecules in the same +micelle are assigned to the same chunk, i.e. one chunk per micelle. + +compute micelle all chunk/atom c_spread compress yes :pre + +Further analysis on a per-micelle basis can now be performed using any +of the per-chunk computes listed on the "Howto chunk"_Howto_chunk.html +doc page. E.g. count the number of atoms in each micelle, calculate +its center or mass, shape (moments of intertia), radius of gyration, +etc. + +compute prop all property/chunk micelle count +fix 20 all ave/time 1000 1 1000 c_prop file tmp.micelle mode vector :pre + +Each snapshot in the tmp.micelle file will have one line per micelle +with its count of atoms, plus a first line for a chunk with all the +solvent atoms. By the time 50000 steps have elapsed there are a +handful of large micelles. + +:line + +[Output info:] + +This compute calculates a global vector if a single input value is +specified, otherwise a global array is output. The number of columns +in the array is the number of inputs provided. The length of the +vector or the number of vector elements or array rows = the number of +chunks {Nchunk} as calculated by the specified "compute +chunk/atom"_compute_chunk_atom.html command. The vector or array can +be accessed by any command that uses global values from a compute as +input. See the "Howto output"_Howto_output.html doc page for an +overview of LAMMPS output options. + +The per-atom values for the vector or each column of the array will be +in whatever "units"_units.html the corresponding input value is in. +The vector or array values are "intensive". + +[Restrictions:] none + +[Related commands:] + +"compute chunk/atom"_compute_chunk_atom.html, "compute +reduce"_compute_reduce.html, "compute +chunk/spread/atom"_compute_chunk_spread_atom.html + +[Default:] none diff --git a/doc/src/computes.txt b/doc/src/computes.txt index 46dd30f757..6528f78e40 100644 --- a/doc/src/computes.txt +++ b/doc/src/computes.txt @@ -15,6 +15,7 @@ Computes :h1 compute_bond_local compute_centro_atom compute_chunk_atom + compute_chunk_spread_atom compute_cluster_atom compute_cna_atom compute_cnp_atom @@ -72,6 +73,7 @@ Computes :h1 compute_property_local compute_rdf compute_reduce + compute_reduce_chunk compute_rigid_local compute_saed compute_slice diff --git a/doc/src/lammps.book b/doc/src/lammps.book index c296ff4039..c7f0b2fddd 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -406,6 +406,7 @@ compute_bond.html compute_bond_local.html compute_centro_atom.html compute_chunk_atom.html +compute_chunk_spread_atom.html compute_cluster_atom.html compute_cna_atom.html compute_cnp_atom.html @@ -463,6 +464,7 @@ compute_property_chunk.html compute_property_local.html compute_rdf.html compute_reduce.html +compute_reduce_chunk.html compute_rigid_local.html compute_saed.html compute_slice.html diff --git a/src/compute_chunk_spread_atom.cpp b/src/compute_chunk_spread_atom.cpp new file mode 100644 index 0000000000..93a4d30a2e --- /dev/null +++ b/src/compute_chunk_spread_atom.cpp @@ -0,0 +1,352 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include "compute_chunk_spread_atom.h" +#include "atom.h" +#include "update.h" +#include "modify.h" +#include "fix.h" +#include "compute.h" +#include "compute_chunk_atom.h" +#include "input.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +enum{COMPUTE,FIX}; + +#define INVOKED_VECTOR 2 +#define INVOKED_ARRAY 4 +#define INVOKED_PERATOM 8 + +/* ---------------------------------------------------------------------- */ + +ComputeChunkSpreadAtom:: +ComputeChunkSpreadAtom(LAMMPS *lmp, int narg, char **arg) : + Compute(lmp, narg, arg), + which(NULL), argindex(NULL), ids(NULL), value2index(NULL), idchunk(NULL) +{ + if (narg < 5) error->all(FLERR,"Illegal compute chunk/spread/atom command"); + + // ID of compute chunk/atom + + int n = strlen(arg[3]) + 1; + idchunk = new char[n]; + strcpy(idchunk,arg[3]); + init_chunk(); + + // expand args if any have wildcard character "*" + + int iarg = 4; + int expand = 0; + char **earg; + int nargnew = input->expand_args(narg-iarg,&arg[iarg],1,earg); + + if (earg != &arg[iarg]) expand = 1; + arg = earg; + + // parse values + + which = new int[nargnew]; + argindex = new int[nargnew]; + ids = new char*[nargnew]; + value2index = new int[nargnew]; + nvalues = 0; + + iarg = 0; + while (iarg < nargnew) { + ids[nvalues] = NULL; + + if (strncmp(arg[iarg],"c_",2) == 0 || + strncmp(arg[iarg],"f_",2) == 0) { + if (arg[iarg][0] == 'c') which[nvalues] = COMPUTE; + else if (arg[iarg][0] == 'f') which[nvalues] = FIX; + + int n = strlen(arg[iarg]); + char *suffix = new char[n]; + strcpy(suffix,&arg[iarg][2]); + + char *ptr = strchr(suffix,'['); + if (ptr) { + if (suffix[strlen(suffix)-1] != ']') + error->all(FLERR,"Illegal compute chunk/spread/atom command"); + argindex[nvalues] = atoi(ptr+1); + *ptr = '\0'; + } else argindex[nvalues] = 0; + + n = strlen(suffix) + 1; + ids[nvalues] = new char[n]; + strcpy(ids[nvalues],suffix); + nvalues++; + delete [] suffix; + + } else error->all(FLERR,"Illegal compute chunk/spread/atom command"); + + iarg++; + } + + // if wildcard expansion occurred, free earg memory from expand_args() + + if (expand) { + for (int i = 0; i < nargnew; i++) delete [] earg[i]; + memory->sfree(earg); + } + + // setup and error check + // for compute, must calculate per-chunk values, i.e. style ends in "/chunk" + // for fix, assume a global vector or array is per-chunk data + + for (int i = 0; i < nvalues; i++) { + if (which[i] == COMPUTE) { + int icompute = modify->find_compute(ids[i]); + if (icompute < 0) + error->all(FLERR,"Compute ID for compute chunk/spread/atom " + "does not exist"); + + char *ptr = strstr(modify->compute[icompute]->style,"/chunk"); + if (!ptr || (ptr != modify->compute[icompute]->style + + strlen(modify->compute[icompute]->style) - strlen("/chunk"))) + error->all(FLERR,"Compute for compute chunk/spread/atom " + "does not calculate per-chunk values"); + + if (argindex[i] == 0) { + if (!modify->compute[icompute]->vector_flag) + error->all(FLERR,"Compute chunk/spread/atom compute " + "does not calculate global vector"); + } else { + if (!modify->compute[icompute]->array_flag) + error->all(FLERR,"Compute chunk/spread/atom compute " + "does not calculate global array"); + if (argindex[i] > modify->compute[icompute]->size_array_cols) + error->all(FLERR,"Compute chunk/spread/atom compute array " + "is accessed out-of-range"); + } + + } else if (which[i] == FIX) { + int ifix = modify->find_fix(ids[i]); + if (ifix < 0) + error->all(FLERR,"Fix ID for compute chunk/spread/atom does not exist"); + if (argindex[i] == 0) { + if (!modify->fix[ifix]->vector_flag) + error->all(FLERR,"Compute chunk/spread/atom fix " + "does not calculate global vector"); + } else { + if (!modify->fix[ifix]->array_flag) + error->all(FLERR,"Compute chunk/spread/atom fix " + "does not calculate global array"); + if (argindex[i] > modify->fix[ifix]->size_array_cols) + error->all(FLERR,"Compute chunk/spread/atom fix array " + "is accessed out-of-range"); + } + } + } + + // this compute produces a peratom vector or array + + peratom_flag = 1; + if (nvalues == 1) size_peratom_cols = 0; + else size_peratom_cols = nvalues; + + // per-atom vector or array + + nmax = 0; + vector_atom = NULL; + array_atom = NULL; +} + +/* ---------------------------------------------------------------------- */ + +ComputeChunkSpreadAtom::~ComputeChunkSpreadAtom() +{ + delete [] idchunk; + + delete [] which; + delete [] argindex; + for (int i = 0; i < nvalues; i++) delete [] ids[i]; + delete [] ids; + delete [] value2index; + + memory->destroy(vector_atom); + memory->destroy(array_atom); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeChunkSpreadAtom::init() +{ + init_chunk(); + + // set indices of all computes,fixes,variables + + for (int m = 0; m < nvalues; m++) { + if (which[m] == COMPUTE) { + int icompute = modify->find_compute(ids[m]); + if (icompute < 0) + error->all(FLERR,"Compute ID for compute chunk/spread/atom " + "does not exist"); + value2index[m] = icompute; + + } else if (which[m] == FIX) { + int ifix = modify->find_fix(ids[m]); + if (ifix < 0) + error->all(FLERR,"Fix ID for compute chunk/spread/atom does not exist"); + value2index[m] = ifix; + } + } +} + +/* ---------------------------------------------------------------------- */ + +void ComputeChunkSpreadAtom::init_chunk() +{ + int icompute = modify->find_compute(idchunk); + if (icompute < 0) + error->all(FLERR,"Chunk/atom compute does not exist for compute chunk/spread/atom"); + cchunk = (ComputeChunkAtom *) modify->compute[icompute]; + if (strcmp(cchunk->style,"chunk/atom") != 0) + error->all(FLERR,"Compute chunk/spread/atom does not use chunk/atom compute"); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeChunkSpreadAtom::compute_peratom() +{ + invoked_peratom = update->ntimestep; + + // grow local vector_atom or array_atom if necessary + + if (atom->nmax > nmax) { + if (nvalues == 1) { + memory->destroy(vector_atom); + nmax = atom->nmax; + memory->create(vector_atom,nmax,"chunk/spread/atom:vector_atom"); + } else { + memory->destroy(array_atom); + nmax = atom->nmax; + memory->create(array_atom,nmax,nvalues,"chunk/spread/atom:array_atom"); + } + } + + // compute chunk/atom assigns atoms to chunk IDs + // extract ichunk index vector from compute + // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms + + int nchunk = cchunk->setup_chunks(); + cchunk->compute_ichunk(); + int *ichunk = cchunk->ichunk; + + // loop over values, access compute or fix + // loop over atoms, use chunk ID of each atom to store value from compute/fix + + int *mask = atom->mask; + int nlocal = atom->nlocal; + + int i,m,n,index,nstride; + double *ptr; + + for (m = 0; m < nvalues; m++) { + n = value2index[m]; + + // copy compute/fix values into vector_atom or array_atom + // nstride between values for each atom + + if (nvalues == 1) { + ptr = vector_atom; + nstride = 1; + } else { + ptr = &array_atom[0][m]; + nstride = nvalues; + } + + // invoke compute if not previously invoked + + if (which[m] == COMPUTE) { + Compute *compute = modify->compute[n]; + + if (argindex[m] == 0) { + if (!(compute->invoked_flag & INVOKED_VECTOR)) { + compute->compute_vector(); + compute->invoked_flag |= INVOKED_VECTOR; + } + double *cvector = compute->vector; + for (i = 0; i < nlocal; i++, ptr += nstride) { + *ptr = 0.0; + if (!(mask[i] & groupbit)) continue; + index = ichunk[i]-1; + if (index < 0 || index >= nchunk) continue; + *ptr = cvector[index]; + } + + } else { + if (!(compute->invoked_flag & INVOKED_ARRAY)) { + compute->compute_array(); + compute->invoked_flag |= INVOKED_ARRAY; + } + int icol = argindex[m]-1; + double **carray = compute->array; + for (i = 0; i < nlocal; i++, ptr += nstride) { + *ptr = 0.0; + if (!(mask[i] & groupbit)) continue; + index = ichunk[i]-1; + if (index < 0 || index >= nchunk) continue; + *ptr = carray[index][icol]; + } + } + + // access fix data, check if fix frequency is a match + // are assuming the fix global vector/array is per-chunk data + // check if index exceeds fix output length/rows + + } else if (which[m] == FIX) { + Fix *fix = modify->fix[n]; + if (update->ntimestep % fix->global_freq) + error->all(FLERR,"Fix used in compute chunk/spread/atom not " + "computed at compatible time"); + + if (argindex[m] == 0) { + int nfix = fix->size_vector; + for (i = 0; i < nlocal; i++, ptr += nstride) { + *ptr = 0.0; + if (!(mask[i] & groupbit)) continue; + index = ichunk[i]-1; + if (index < 0 || index >= nchunk || index >= nfix) continue; + *ptr = fix->compute_vector(index); + } + + } else { + int icol = argindex[m]-1; + int nfix = fix->size_array_rows; + for (i = 0; i < nlocal; i++, ptr += nstride) { + *ptr = 0.0; + if (!(mask[i] & groupbit)) continue; + index = ichunk[i]-1; + if (index < 0 || index >= nchunk || index >= nfix) continue; + *ptr = fix->compute_array(index,icol); + } + } + } + } +} + +/* ---------------------------------------------------------------------- + memory usage of local atom-based array +------------------------------------------------------------------------- */ + +double ComputeChunkSpreadAtom::memory_usage() +{ + double bytes = nmax*nvalues * sizeof(double); + return bytes; +} diff --git a/src/compute_chunk_spread_atom.h b/src/compute_chunk_spread_atom.h new file mode 100644 index 0000000000..9a4df080ca --- /dev/null +++ b/src/compute_chunk_spread_atom.h @@ -0,0 +1,61 @@ +/* -*- 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 COMPUTE_CLASS + +ComputeStyle(chunk/spread/atom,ComputeChunkSpreadAtom) + +#else + +#ifndef LMP_COMPUTE_CHUNK_SPREAD_ATOM_H +#define LMP_COMPUTE_CHUNK_SPREAD_ATOM_H + +#include "compute.h" + +namespace LAMMPS_NS { + +class ComputeChunkSpreadAtom : public Compute { + public: + ComputeChunkSpreadAtom(class LAMMPS *, int, char **); + ~ComputeChunkSpreadAtom(); + void init(); + void compute_peratom(); + double memory_usage(); + + protected: + int mode,nvalues; + char *idchunk; + + int *which,*argindex,*value2index; + char **ids; + + int nmax; + class ComputeChunkAtom *cchunk; + + void init_chunk(); +}; + +} + +#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. + +*/ diff --git a/src/compute_reduce.cpp b/src/compute_reduce.cpp index 7c61d666b2..e3c3c5b70a 100644 --- a/src/compute_reduce.cpp +++ b/src/compute_reduce.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include #include #include #include "compute_reduce.h" diff --git a/src/compute_reduce_chunk.cpp b/src/compute_reduce_chunk.cpp new file mode 100644 index 0000000000..40e9dad8dd --- /dev/null +++ b/src/compute_reduce_chunk.cpp @@ -0,0 +1,512 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include "compute_reduce_chunk.h" +#include "atom.h" +#include "update.h" +#include "modify.h" +#include "fix.h" +#include "compute.h" +#include "compute_chunk_atom.h" +#include "input.h" +#include "variable.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +enum{SUM,MINN,MAXX}; +enum{COMPUTE,FIX,VARIABLE}; + +#define INVOKED_PERATOM 8 + +#define BIG 1.0e20 + +/* ---------------------------------------------------------------------- */ + +ComputeReduceChunk::ComputeReduceChunk(LAMMPS *lmp, int narg, char **arg) : + Compute(lmp, narg, arg), + vlocal(NULL), vglobal(NULL), alocal(NULL), aglobal(NULL), varatom(NULL), + which(NULL), argindex(NULL), value2index(NULL), idchunk(NULL), ids(NULL) +{ + if (narg < 6) error->all(FLERR,"Illegal compute reduce/chunk command"); + + // ID of compute chunk/atom + + int n = strlen(arg[3]) + 1; + idchunk = new char[n]; + strcpy(idchunk,arg[3]); + init_chunk(); + + // mode + + if (strcmp(arg[4],"sum") == 0) mode = SUM; + else if (strcmp(arg[4],"min") == 0) mode = MINN; + else if (strcmp(arg[4],"max") == 0) mode = MAXX; + else error->all(FLERR,"Illegal compute reduce/chunk command"); + + int iarg = 5; + + // expand args if any have wildcard character "*" + + int expand = 0; + char **earg; + int nargnew = input->expand_args(narg-iarg,&arg[iarg],1,earg); + + if (earg != &arg[iarg]) expand = 1; + arg = earg; + + // parse values until one isn't recognized + + which = new int[nargnew]; + argindex = new int[nargnew]; + ids = new char*[nargnew]; + value2index = new int[nargnew]; + nvalues = 0; + + iarg = 0; + while (iarg < nargnew) { + ids[nvalues] = NULL; + + if (strncmp(arg[iarg],"c_",2) == 0 || + strncmp(arg[iarg],"f_",2) == 0 || + strncmp(arg[iarg],"v_",2) == 0) { + if (arg[iarg][0] == 'c') which[nvalues] = COMPUTE; + else if (arg[iarg][0] == 'f') which[nvalues] = FIX; + else if (arg[iarg][0] == 'v') which[nvalues] = VARIABLE; + + int n = strlen(arg[iarg]); + char *suffix = new char[n]; + strcpy(suffix,&arg[iarg][2]); + + char *ptr = strchr(suffix,'['); + if (ptr) { + if (suffix[strlen(suffix)-1] != ']') + error->all(FLERR,"Illegal compute reduce/chunk command"); + argindex[nvalues] = atoi(ptr+1); + *ptr = '\0'; + } else argindex[nvalues] = 0; + + n = strlen(suffix) + 1; + ids[nvalues] = new char[n]; + strcpy(ids[nvalues],suffix); + nvalues++; + delete [] suffix; + + } else error->all(FLERR,"Illegal compute reduce/chunk command"); + + iarg++; + } + + // if wildcard expansion occurred, free earg memory from expand_args() + + if (expand) { + for (int i = 0; i < nargnew; i++) delete [] earg[i]; + memory->sfree(earg); + } + + // error check + + for (int i = 0; i < nvalues; i++) { + if (which[i] == COMPUTE) { + int icompute = modify->find_compute(ids[i]); + if (icompute < 0) + error->all(FLERR,"Compute ID for compute reduce/chunk does not exist"); + if (!modify->compute[icompute]->peratom_flag) + error->all(FLERR,"Compute reduce/chunk compute does not " + "calculate per-atom values"); + if (argindex[i] == 0 && + modify->compute[icompute]->size_peratom_cols != 0) + error->all(FLERR,"Compute reduce/chunk compute does not " + "calculate a per-atom vector"); + if (argindex[i] && modify->compute[icompute]->size_peratom_cols == 0) + error->all(FLERR,"Compute reduce/chunk compute does not " + "calculate a per-atom array"); + if (argindex[i] && + argindex[i] > modify->compute[icompute]->size_peratom_cols) + error->all(FLERR, + "Compute reduce/chunk compute array is accessed out-of-range"); + + } else if (which[i] == FIX) { + int ifix = modify->find_fix(ids[i]); + if (ifix < 0) + error->all(FLERR,"Fix ID for compute reduce/chunk does not exist"); + if (!modify->fix[ifix]->peratom_flag) + error->all(FLERR,"Compute reduce/chunk fix does not " + "calculate per-atom values"); + if (argindex[i] == 0 && + modify->fix[ifix]->size_peratom_cols != 0) + error->all(FLERR,"Compute reduce/chunk fix does not " + "calculate a per-atom vector"); + if (argindex[i] && modify->fix[ifix]->size_peratom_cols == 0) + error->all(FLERR,"Compute reduce/chunk fix does not " + "calculate a per-atom array"); + if (argindex[i] && argindex[i] > modify->fix[ifix]->size_peratom_cols) + error->all(FLERR,"Compute reduce/chunk fix array is " + "accessed out-of-range"); + + } else if (which[i] == VARIABLE) { + int ivariable = input->variable->find(ids[i]); + if (ivariable < 0) + error->all(FLERR,"Variable name for compute reduce/chunk does not exist"); + if (input->variable->atomstyle(ivariable) == 0) + error->all(FLERR,"Compute reduce/chunk variable is " + "not atom-style variable"); + } + } + + // this compute produces either a vector or array + + if (nvalues == 1) { + vector_flag = 1; + size_vector_variable = 1; + extvector = 0; + } else { + array_flag = 1; + size_array_rows_variable = 1; + size_array_cols = nvalues; + extarray = 0; + } + + // setup + + if (mode == SUM) initvalue = 0.0; + else if (mode == MINN) initvalue = BIG; + else if (mode == MAXX) initvalue = -BIG; + + maxchunk = 0; + vlocal = vglobal = NULL; + alocal = aglobal = NULL; + + maxatom = 0; + varatom = NULL; +} + +/* ---------------------------------------------------------------------- */ + +ComputeReduceChunk::~ComputeReduceChunk() +{ + delete [] idchunk; + + delete [] which; + delete [] argindex; + for (int m = 0; m < nvalues; m++) delete [] ids[m]; + delete [] ids; + delete [] value2index; + + memory->destroy(vlocal); + memory->destroy(vglobal); + memory->destroy(alocal); + memory->destroy(aglobal); + + memory->destroy(varatom); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeReduceChunk::init() +{ + init_chunk(); + + // set indices of all computes,fixes,variables + + for (int m = 0; m < nvalues; m++) { + if (which[m] == COMPUTE) { + int icompute = modify->find_compute(ids[m]); + if (icompute < 0) + error->all(FLERR,"Compute ID for compute reduce/chunk does not exist"); + value2index[m] = icompute; + + } else if (which[m] == FIX) { + int ifix = modify->find_fix(ids[m]); + if (ifix < 0) + error->all(FLERR,"Fix ID for compute reduce/chunk does not exist"); + value2index[m] = ifix; + + } else if (which[m] == VARIABLE) { + int ivariable = input->variable->find(ids[m]); + if (ivariable < 0) + error->all(FLERR,"Variable name for compute reduce/chunk does not exist"); + value2index[m] = ivariable; + } + } +} + +/* ---------------------------------------------------------------------- */ + +void ComputeReduceChunk::init_chunk() +{ + int icompute = modify->find_compute(idchunk); + if (icompute < 0) + error->all(FLERR,"Chunk/atom compute does not exist for " + "compute reduce/chunk"); + cchunk = (ComputeChunkAtom *) modify->compute[icompute]; + if (strcmp(cchunk->style,"chunk/atom") != 0) + error->all(FLERR,"Compute reduce/chunk does not use chunk/atom compute"); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeReduceChunk::compute_vector() +{ + invoked_vector = update->ntimestep; + + // compute chunk/atom assigns atoms to chunk IDs + // extract ichunk index vector from compute + // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms + + nchunk = cchunk->setup_chunks(); + cchunk->compute_ichunk(); + ichunk = cchunk->ichunk; + if (!nchunk) return; + + size_vector = nchunk; + + if (nchunk > maxchunk) { + memory->destroy(vlocal); + memory->destroy(vglobal); + maxchunk = nchunk; + memory->create(vlocal,maxchunk,"reduce/chunk:vlocal"); + memory->create(vglobal,maxchunk,"reduce/chunk:vglobal"); + vector = vglobal; + } + + // perform local reduction of single peratom value + + compute_one(0,vlocal,1); + + // reduce the per-chunk values across all procs + + if (mode == SUM) + MPI_Allreduce(vlocal,vglobal,nchunk,MPI_DOUBLE,MPI_SUM,world); + else if (mode == MINN) + MPI_Allreduce(vlocal,vglobal,nchunk,MPI_DOUBLE,MPI_MIN,world); + else if (mode == MAXX) + MPI_Allreduce(vlocal,vglobal,nchunk,MPI_DOUBLE,MPI_MAX,world); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeReduceChunk::compute_array() +{ + invoked_array = update->ntimestep; + + // compute chunk/atom assigns atoms to chunk IDs + // extract ichunk index vector from compute + // ichunk = 1 to Nchunk for included atoms, 0 for excluded atoms + + nchunk = cchunk->setup_chunks(); + cchunk->compute_ichunk(); + ichunk = cchunk->ichunk; + if (!nchunk) return; + + size_array_rows = nchunk; + + if (nchunk > maxchunk) { + memory->destroy(alocal); + memory->destroy(aglobal); + maxchunk = nchunk; + memory->create(alocal,maxchunk,nvalues,"reduce/chunk:alocal"); + memory->create(aglobal,maxchunk,nvalues,"reduce/chunk:aglobal"); + array = aglobal; + } + + // perform local reduction of all peratom values + + for (int m = 0; m < nvalues; m++) compute_one(m,&alocal[0][m],nvalues); + + // reduce the per-chunk values across all procs + + if (mode == SUM) + MPI_Allreduce(&alocal[0][0],&aglobal[0][0],nchunk*nvalues, + MPI_DOUBLE,MPI_SUM,world); + else if (mode == MINN) + MPI_Allreduce(&alocal[0][0],&aglobal[0][0],nchunk*nvalues, + MPI_DOUBLE,MPI_MIN,world); + else if (mode == MAXX) + MPI_Allreduce(&alocal[0][0],&aglobal[0][0],nchunk*nvalues, + MPI_DOUBLE,MPI_MAX,world); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeReduceChunk::compute_one(int m, double *vchunk, int nstride) +{ + // initialize per-chunk values in accumulation vector + + for (int i = 0; i < nchunk; i += nstride) vchunk[i] = initvalue; + + // loop over my atoms + // use peratom input and chunk ID of each atom to update vector + + int *mask = atom->mask; + int nlocal = atom->nlocal; + + int index; + + if (which[m] == COMPUTE) { + Compute *compute = modify->compute[value2index[m]]; + + if (!(compute->invoked_flag & INVOKED_PERATOM)) { + compute->compute_peratom(); + compute->invoked_flag |= INVOKED_PERATOM; + } + + if (argindex[m] == 0) { + double *vcompute = compute->vector_atom; + for (int i = 0; i < nlocal; i++) { + if (!(mask[i] & groupbit)) continue; + index = ichunk[i]-1; + if (index < 0) continue; + combine(vchunk[index*nstride],vcompute[i]); + } + } else { + double **acompute = compute->array_atom; + int argindexm1 = argindex[m] - 1; + for (int i = 0; i < nlocal; i++) { + if (!(mask[i] & groupbit)) continue; + index = ichunk[i]-1; + if (index < 0) continue; + combine(vchunk[index*nstride],acompute[i][argindexm1]); + } + } + + // access fix fields, check if fix frequency is a match + + } else if (which[m] == FIX) { + Fix *fix = modify->fix[value2index[m]]; + if (update->ntimestep % fix->peratom_freq) + error->all(FLERR,"Fix used in compute reduce/chunk not " + "computed at compatible time"); + + if (argindex[m] == 0) { + double *vfix = fix->vector_atom; + for (int i = 0; i < nlocal; i++) { + if (!(mask[i] & groupbit)) continue; + index = ichunk[i]-1; + if (index < 0) continue; + combine(vchunk[index*nstride],vfix[i]); + } + } else { + double **afix = fix->array_atom; + int argindexm1 = argindex[m] - 1; + for (int i = 0; i < nlocal; i++) { + if (!(mask[i] & groupbit)) continue; + index = ichunk[i]-1; + if (index < 0) continue; + combine(vchunk[index*nstride],afix[i][argindexm1]); + } + } + + // evaluate atom-style variable + + } else if (which[m] == VARIABLE) { + if (atom->nmax > maxatom) { + memory->destroy(varatom); + maxatom = atom->nmax; + memory->create(varatom,maxatom,"reduce/chunk:varatom"); + } + + input->variable->compute_atom(value2index[m],igroup,varatom,1,0); + for (int i = 0; i < nlocal; i++) { + if (!(mask[i] & groupbit)) continue; + index = ichunk[i]-1; + if (index < 0) continue; + combine(vchunk[index*nstride],varatom[i]); + } + } +} + +/* ---------------------------------------------------------------------- + combine two values according to reduction mode +------------------------------------------------------------------------- */ + +void ComputeReduceChunk::combine(double &one, double two) +{ + if (mode == SUM) one += two; + else if (mode == MINN) { + if (two < one) one = two; + } else if (mode == MAXX) { + if (two > one) one = two; + } +} + +/* ---------------------------------------------------------------------- + lock methods: called by fix ave/time + these methods insure vector/array size is locked for Nfreq epoch + by passing lock info along to compute chunk/atom +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + increment lock counter +------------------------------------------------------------------------- */ + +void ComputeReduceChunk::lock_enable() +{ + cchunk->lockcount++; +} + +/* ---------------------------------------------------------------------- + decrement lock counter in compute chunk/atom, if it still exists +------------------------------------------------------------------------- */ + +void ComputeReduceChunk::lock_disable() +{ + int icompute = modify->find_compute(idchunk); + if (icompute >= 0) { + cchunk = (ComputeChunkAtom *) modify->compute[icompute]; + cchunk->lockcount--; + } +} + +/* ---------------------------------------------------------------------- + calculate and return # of chunks = length of vector/array +------------------------------------------------------------------------- */ + +int ComputeReduceChunk::lock_length() +{ + nchunk = cchunk->setup_chunks(); + return nchunk; +} + +/* ---------------------------------------------------------------------- + set the lock from startstep to stopstep +------------------------------------------------------------------------- */ + +void ComputeReduceChunk::lock(Fix *fixptr, bigint startstep, bigint stopstep) +{ + cchunk->lock(fixptr,startstep,stopstep); +} + +/* ---------------------------------------------------------------------- + unset the lock +------------------------------------------------------------------------- */ + +void ComputeReduceChunk::unlock(Fix *fixptr) +{ + cchunk->unlock(fixptr); +} + +/* ---------------------------------------------------------------------- + memory usage of local data +------------------------------------------------------------------------- */ + +double ComputeReduceChunk::memory_usage() +{ + double bytes = (bigint) maxatom * sizeof(double); + if (nvalues == 1) bytes += (bigint) maxchunk * 2 * sizeof(double); + else bytes += (bigint) maxchunk * nvalues * 2 * sizeof(double); + return bytes; +} diff --git a/src/compute_reduce_chunk.h b/src/compute_reduce_chunk.h new file mode 100644 index 0000000000..ac556907b7 --- /dev/null +++ b/src/compute_reduce_chunk.h @@ -0,0 +1,77 @@ +/* -*- 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 COMPUTE_CLASS + +ComputeStyle(reduce/chunk,ComputeReduceChunk) + +#else + +#ifndef LMP_COMPUTE_REDUCE_CHUNK_H +#define LMP_COMPUTE_REDUCE_CHUNK_H + +#include "compute.h" + +namespace LAMMPS_NS { + +class ComputeReduceChunk : public Compute { + public: + ComputeReduceChunk(class LAMMPS *, int, char **); + ~ComputeReduceChunk(); + void init(); + void compute_vector(); + void compute_array(); + + void lock_enable(); + void lock_disable(); + int lock_length(); + void lock(class Fix *, bigint, bigint); + void unlock(class Fix *); + + double memory_usage(); + + private: + int mode,nvalues; + int *which,*argindex,*value2index; + char *idchunk; + char **ids; + + int nchunk; + int maxchunk,maxatom; + double initvalue; + double *vlocal,*vglobal; + double **alocal,**aglobal; + double *varatom; + + class ComputeChunkAtom *cchunk; + int *ichunk; + + void init_chunk(); + void compute_one(int, double *, int); + void combine(double &, double); +}; + +} + +#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. + +*/ From e3ce702eec1c6d8b2d875827de642c68e6b4e77d Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 31 Aug 2018 13:53:02 -0600 Subject: [PATCH 636/675] doc adjust --- doc/src/compute_chunk_spread_atom.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/src/compute_chunk_spread_atom.txt b/doc/src/compute_chunk_spread_atom.txt index 59662035e5..f84ef67974 100644 --- a/doc/src/compute_chunk_spread_atom.txt +++ b/doc/src/compute_chunk_spread_atom.txt @@ -98,7 +98,8 @@ compute 10 all chunk/spread/atom mychunk c_com\[1\] c_com\[2\] c_com\[3\] :pre :line Here is an example of writing a dump file the with the center-of-mass -(COM) for the chunk each atom is in: +(COM) for the chunk each atom is in. The commands below can be added +to the bench/in.chain script. compute cmol all chunk/atom molecule compute com all com/chunk cmol @@ -124,10 +125,10 @@ calculation, so that the effect of periodic boundaries is accounted for properly. Over time this applied force could shrink each polymer chain's radius -of gyration in a polymer mixture simulation. Here is output after -adding the above lines to the bench/in.chain script. The thermo -output is shown for 1000 steps, where the last column is the average -radius of gyration over all 320 chains in the 32000 atom system: +of gyration in a polymer mixture simulation. Here is output from the +bench/in.chain script. Thermo output is shown for 1000 steps, where +the last column is the average radius of gyration over all 320 chains +in the 32000 atom system: compute gyr all gyration/chunk cmol variable ave equal ave(c_gyr) From a989d04d09025e41770b2f71e9e8571c7ded95c0 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 31 Aug 2018 14:17:36 -0600 Subject: [PATCH 637/675] think this flag should not be set by this fix --- src/fix_ave_chunk.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/fix_ave_chunk.cpp b/src/fix_ave_chunk.cpp index 1aead70644..fc3ef6ed6e 100644 --- a/src/fix_ave_chunk.cpp +++ b/src/fix_ave_chunk.cpp @@ -63,7 +63,6 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) : strcpy(idchunk,arg[6]); global_freq = nfreq; - peratom_freq = nfreq; no_change_box = 1; // expand args if any have wildcard character "*" From bc62002b1ca3f5fea860e95bab48346dc9f12ee4 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 31 Aug 2018 16:05:24 -0600 Subject: [PATCH 638/675] units and doc changes --- doc/src/fix_client_md.txt | 7 ++--- doc/src/server_mc.txt | 1 + doc/src/server_md.txt | 43 +++++++++++++++++++++++------- examples/COUPLE/README | 6 +++-- examples/COUPLE/lammps_mc/Makefile | 5 ++-- examples/COUPLE/lammps_mc/README | 34 +++++++++++++++++------ examples/COUPLE/lammps_vasp/README | 38 +++++++++++++++++++++++--- src/MESSAGE/fix_client_md.cpp | 19 ++++++++----- src/MESSAGE/server_md.cpp | 23 +++++++++------- 9 files changed, 132 insertions(+), 44 deletions(-) diff --git a/doc/src/fix_client_md.txt b/doc/src/fix_client_md.txt index 1712e1615e..5b62d5617d 100644 --- a/doc/src/fix_client_md.txt +++ b/doc/src/fix_client_md.txt @@ -44,10 +44,11 @@ running {ab initio} MD with quantum forces. The group associated with this fix is ignored. -The protocol for message format and content that LAMMPS exchanges with -the server code is defined on the "server md"_server_md.html doc page. +The protocol and "units"_units.html for message format and content +that LAMMPS exchanges with the server code is defined on the "server +md"_server_md.html doc page. -Note that when using LAMMPS in this mode, your LAMMPS input script +Note that when using LAMMPS as an MD client, your LAMMPS input script should not normally contain force field commands, like a "pair_style"_doc/pair_style.html, "bond_style"_doc/bond_style.html, or "kspace_style"_kspace_style.html commmand. However it is possible for diff --git a/doc/src/server_mc.txt b/doc/src/server_mc.txt index 3f7b3b8893..53ccfc8ecd 100644 --- a/doc/src/server_mc.txt +++ b/doc/src/server_mc.txt @@ -37,6 +37,7 @@ signals when it is done sending messages to LAMMPS, at which point the loop will exit, and the remainder of the LAMMPS script will be processed. +The "server"_server.html doc page gives other options for using LAMMPS See an example of how this command is used in examples/COUPLE/lammps_mc/in.server. diff --git a/doc/src/server_md.txt b/doc/src/server_md.txt index 58dfa7f762..0db7bbe16b 100644 --- a/doc/src/server_md.txt +++ b/doc/src/server_md.txt @@ -37,7 +37,8 @@ signals when it is done sending messages to LAMMPS, at which point the loop will exit, and the remainder of the LAMMPS script will be processed. -See an example of how this command is used in +The "server"_server.html doc page gives other options for using LAMMPS +in server mode. See an example of how this command is used in examples/message/in.message.server. :line @@ -45,13 +46,13 @@ examples/message/in.message.server. When using this command, LAMMPS (as the server code) receives the current coordinates of all particles from the client code each timestep, computes their interaction, and returns the energy, forces, -and virial for the interacting particles to the client code, so it can -complete the timestep. This command could also be used with a client -code that performs energy minimization, using the server to compute -forces and energy each iteration of its minimizer. +and pressure for the interacting particles to the client code, so it +can complete the timestep. This command could also be used with a +client code that performs energy minimization, using the server to +compute forces and energy each iteration of its minimizer. When using the "fix client/md" command, LAMMPS (as the client code) -does the timestepping and receives needed energy, forces, and virial +does the timestepping and receives needed energy, forces, and pressure values from the server code. The format and content of the exchanged messages are explained here in @@ -70,7 +71,7 @@ The following pseudo-code uses these values, defined as enums. enum{SETUP=1,STEP}; enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; -enum{FORCES=1,ENERGY,VIRIAL,ERROR}; :pre +enum{FORCES=1,ENERGY,PRESSURE,ERROR}; :pre [Client sends 2 kinds of messages]: @@ -101,11 +102,35 @@ cs->pack(BOX,9,box) # 3 edge vectors of simulation box [Server replies to either kind of message]: +# required fields: FORCES, ENERGY, PRESSURE +# optional fields: ERROR :pre + cs->send(msgID,nfields) # msgID with nfields cs->pack(FORCES,3*Natoms,f) # vector of 3N forces on atoms cs->pack(ENERGY,1,poteng) # total potential energy of system -cs->pack(VIRIAL,6,virial) # global virial tensor (6-vector) -cs->pack(ERROR,6,virial) # server had an error (e.g. DFT non-convergence) :pre +cs->pack(PRESSURE,6,press) # global pressure tensor (6-vector) +cs->pack_int(ERROR,flag) # server had an error (e.g. DFT non-convergence) :pre + +:line + +The units for various quantities that are sent and received iva +messages are defined for atomic-scale simulations in the table below. +The client and server codes (including LAMMPS) can use internal units +different than these (e.g. "real units"_units.html in LAMMPS), so long +as they convert to these units for meesaging. + +COORDS, ORIGIN, BOX = Angstroms +CHARGE = multiple of electron charge (1.0 is a proton) +ENERGY = eV +FORCES = eV/Angstrom +PRESSURE = bars :ul + +Note that these are "metal units"_units.html in LAMMPS. + +If you wish to run LAMMPS in another its non-atomic units, e.g. "lj +units"_units.html, then the client and server should exchange a UNITS +message as indicated above, and both the client and server should +agree on the units for the data they exchange. :line diff --git a/examples/COUPLE/README b/examples/COUPLE/README index 2d09ed7d4b..0e611befbd 100644 --- a/examples/COUPLE/README +++ b/examples/COUPLE/README @@ -34,11 +34,13 @@ These are the sub-directories included in this directory: simple simple example of driver code calling LAMMPS as a lib multiple example of driver code calling multiple instances of LAMMPS -lammps_mc client/server coupling Monte Carlo with LAMMPS MD +lammps_mc client/server coupling of Monte Carlo client + with LAMMPS server for energy evaluation lammps_quest MD with quantum forces, coupling to Quest DFT code lammps_spparks grain-growth Monte Carlo with strain via MD, coupling to SPPARKS kinetic MC code -lammps_vasp client/server coupling LAMMPS MD with VASP quantum DFT +lammps_vasp client/server coupling of LAMMPS client with + VASP quantum DFT as server for quantum forces library collection of useful inter-code communication routines fortran a simple wrapper on the LAMMPS library API that can be called from Fortran diff --git a/examples/COUPLE/lammps_mc/Makefile b/examples/COUPLE/lammps_mc/Makefile index 821eb58134..c75bd08c73 100644 --- a/examples/COUPLE/lammps_mc/Makefile +++ b/examples/COUPLE/lammps_mc/Makefile @@ -19,10 +19,9 @@ LINKFLAGS = -g -O -L$(CSLIB) # targets mc: $(OBJ) -# this line if built the CSlib within lib/message with ZMQ support -# note this is using the serial (no-mpi) version of the CSlib +# first line if built the CSlib within lib/message with ZMQ support +# second line if built the CSlib without ZMQ support $(LINK) $(LINKFLAGS) $(OBJ) -lcsnompi -lzmq -o mc -# this line if built the CSlib without ZMQ support # $(LINK) $(LINKFLAGS) $(OBJ) -lcsnompi -o mc clean: diff --git a/examples/COUPLE/lammps_mc/README b/examples/COUPLE/lammps_mc/README index af4d86f92f..c201a6351c 100644 --- a/examples/COUPLE/lammps_mc/README +++ b/examples/COUPLE/lammps_mc/README @@ -22,25 +22,43 @@ change, and to run dynamics between MC moves. ---------------- -Build LAMMPS and the MC client code +Build LAMMPS with its MESSAGE package installed: -First, build LAMMPS with its MESSAGE package installed: +See the Build extras doc page and its MESSAGE package +section for details. + +CMake: + +-D PKG_MESSAGE=yes # include the MESSAGE package +-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes + +Traditional make: % cd lammps/lib/message % python Install.py -m -z # build CSlib with MPI and ZMQ support -% python Install.py -s -z # also build serial lib and ZMQ support % cd lammps/src % make yes-message % make mpi You can leave off the -z if you do not have ZMQ on your system. -Next build the MC client code, which will link with the serial CSlib. +---------------- -First edit the Makefile in this dir. The CSLIB variable should be the -path to where the LAMMPS lib/message dir is on your system. If you -built the CSlib without ZMQ support you will also need to -comment/uncomment two lines. Then you can just type +Build the MC client code + +The source files for the MC code are in this dir. It links with the +CSlib library in lib/message/cslib. + +You must first build the CSlib in serial mode, e.g. + +% cd lammps/lib/message/cslib/src +% make lib # build serial and parallel lib with ZMQ support +% make lib zmq=no # build serial and parallel lib without ZMQ support + +Then edit the Makefile in this dir. The CSLIB variable should be the +path to where the LAMMPS lib/message/cslib/src dir is on your system. +If you built the CSlib without ZMQ support you will also need to +comment/uncomment one line. Then you can just type % make diff --git a/examples/COUPLE/lammps_vasp/README b/examples/COUPLE/lammps_vasp/README index b301bd779f..e942d52535 100644 --- a/examples/COUPLE/lammps_vasp/README +++ b/examples/COUPLE/lammps_vasp/README @@ -24,6 +24,16 @@ MPI. Build LAMMPS with its MESSAGE package installed: +See the Build extras doc page and its MESSAGE package +section for details. + +CMake: + +-D PKG_MESSAGE=yes # include the MESSAGE package +-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes + +Traditional make: + cd lammps/lib/message python Install.py -m -z # build CSlib with MPI and ZMQ support cd lammps/src @@ -34,6 +44,27 @@ You can leave off the -z if you do not have ZMQ on your system. ---------------- +Build the CSlib in a form usable by the vasp_wrapper.py script: + +% cd lammps/lib/message/cslib/src +% make shlib # build serial and parallel shared lib with ZMQ support +% make shlib zmq=no # build serial and parallel shared lib w/out ZMQ support + +This will make a shared library versions of the CSlib, which Python +requires. Python must be able to find both the cslib.py script and +the libcsnompi.so library in your lammps/lib/message/cslib/src +directory. If it is not able to do this, you will get an error when +you run vasp_wrapper.py. + +You can do this by augmenting two environment variables, either +from the command line, or in your shell start-up script. +Here is the sample syntax for the csh or tcsh shells: + +setenv PYTHONPATH ${PYTHONPATH}:/home/sjplimp/lammps/lib/message/cslib/src +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/sjplimp/lammps/lib/message/cslib/src + +---------------- + Prepare to use VASP and the vasp_wrapper.py script You can run the vasp_wrap.py script as-is to test that the coupling @@ -68,13 +99,14 @@ POSCAR_W matches in.client.W. Once you run VASP yourself, the vasprun.xml file will be overwritten. -NOTE: explain how vasp_wrapper.py finds the cslib.py wrapper on the -CSlib to import. - ---------------- To run in client/server mode: +NOTE: The vasp_wrap.py script must be run with Python version 2, not +3. This is because it used the CSlib python wrapper, which only +supports version 2. We plan to upgrade CSlib to support Python 3. + Both the client (LAMMPS) and server (vasp_wrap.py) must use the same messaging mode, namely file or zmq. This is an argument to the vasp_wrap.py code; it can be selected by setting the "mode" variable diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp index bfcca4841b..dbaada9b50 100644 --- a/src/MESSAGE/fix_client_md.cpp +++ b/src/MESSAGE/fix_client_md.cpp @@ -32,7 +32,7 @@ using namespace FixConst; enum{OTHER,REAL,METAL}; enum{SETUP=1,STEP}; enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; -enum{FORCES=1,ENERGY,VIRIAL,ERROR}; +enum{FORCES=1,ENERGY,PRESSURE,ERROR}; /* ---------------------------------------------------------------------- */ @@ -67,10 +67,10 @@ FixClientMD::FixClientMD(LAMMPS *lmp, int narg, char **arg) : // otherwise not needed // message received in METAL units, convert to local REAL units - fconvert = econvert = vconvert = 1.0; + fconvert = econvert = pconvert = 1.0; if (units == REAL) { - fconvert = econvert = 23.06035; - vconvert = 0.986923; + fconvert = econvert = 23.06035; // eV -> Kcal/mole + pconvert = 0.986923; // bars -> atmospheres } } @@ -274,7 +274,7 @@ void FixClientMD::pack_box() /* ---------------------------------------------------------------------- receive message from server - required fields: FORCES, ENERGY, VIRIAL + required fields: FORCES, ENERGY, PRESSURE optional field: ERROR ------------------------------------------------------------------------- */ @@ -307,9 +307,14 @@ void FixClientMD::receive_fev(int vflag) eng = econvert * cs->unpack_double(ENERGY); if (vflag) { - double *v = (double *) cs->unpack(VIRIAL); + double *v = (double *) cs->unpack(PRESSURE); + + double nktv2p = force->nktv2p; + double volume = domain->xprd * domain->yprd * domain->zprd; + double factor = inv_nprocs * pconvert * volume / nktv2p; + for (int i = 0; i < 6; i++) - virial[i] = inv_nprocs * vconvert * v[i]; + virial[i] = factor * v[i]; } // error return diff --git a/src/MESSAGE/server_md.cpp b/src/MESSAGE/server_md.cpp index e51571e972..aa771b7d46 100644 --- a/src/MESSAGE/server_md.cpp +++ b/src/MESSAGE/server_md.cpp @@ -37,7 +37,7 @@ using namespace CSLIB_NS; enum{OTHER,REAL,METAL}; enum{SETUP=1,STEP}; enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; -enum{FORCES=1,ENERGY,VIRIAL,ERROR}; +enum{FORCES=1,ENERGY,PRESSURE,ERROR}; /* ---------------------------------------------------------------------- */ @@ -58,10 +58,10 @@ ServerMD::ServerMD(LAMMPS *lmp) : Pointers(lmp) // otherwise not needed // local computation in REAL units, send message in METAL units - fconvert = econvert = vconvert = 1.0; + fconvert = econvert = pconvert = 1.0; if (units == REAL) { - fconvert = econvert = 1.0 / 23.06035; - vconvert = 1.0 / 0.986923; + fconvert = econvert = 1.0 / 23.06035; // Kcal/mole -> eV + pconvert = 1.0 / 0.986923; // atmospheres -> bars } fcopy = NULL; @@ -339,7 +339,7 @@ void ServerMD::box_change(double *origin, double *box) /* ---------------------------------------------------------------------- return message with forces, energy, pressure tensor pressure tensor should be just pair and KSpace contributions - required fields: FORCES, ENERGY, VIRIAL + required fields: FORCES, ENERGY, PRESSURE optional field: ERROR (not ever sending) ------------------------------------------------------------------------- */ @@ -374,11 +374,16 @@ void ServerMD::send_fev(int msgID) double v[6],vall[6]; for (int i = 0; i < 6; i++) v[i] = force->pair->virial[i]; + MPI_Allreduce(&v,&vall,6,MPI_DOUBLE,MPI_SUM,world); + if (force->kspace) for (int i = 0; i < 6; i++) - v[i] += force->kspace->virial[i]; + vall[i] += force->kspace->virial[i]; - for (int i = 0; i < 6; i++) v[i] *= vconvert; - MPI_Allreduce(&v,&vall,6,MPI_DOUBLE,MPI_SUM,world); - cs->pack(VIRIAL,4,6,vall); + double nktv2p = force->nktv2p; + double volume = domain->xprd * domain->yprd * domain->zprd; + double factor = pconvert / volume * nktv2p; + for (int i = 0; i < 6; i++) vall[i] *= factor; + + cs->pack(PRESSURE,4,6,vall); } From f66ce801ad23c42d28f56b776a859bf1993909c9 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 31 Aug 2018 16:21:45 -0600 Subject: [PATCH 639/675] final testing --- examples/COUPLE/lammps_vasp/log.client.output | 67 +++++++++++-------- src/MESSAGE/fix_client_md.cpp | 1 + src/MESSAGE/fix_client_md.h | 2 +- src/MESSAGE/server_md.h | 2 +- 4 files changed, 43 insertions(+), 29 deletions(-) diff --git a/examples/COUPLE/lammps_vasp/log.client.output b/examples/COUPLE/lammps_vasp/log.client.output index de37c7cbaf..fa8f4f920a 100644 --- a/examples/COUPLE/lammps_vasp/log.client.output +++ b/examples/COUPLE/lammps_vasp/log.client.output @@ -1,63 +1,76 @@ -LAMMPS (20 Apr 2018) +LAMMPS (22 Aug 2018) # small W unit cell for use with VASP -#message client aimd file tmp.couple -message client aimd zmq localhost:5555 -#message client aimd mpi/two tmp.couple -#message client aimd mpi/one tmp.couple +variable mode index file -units real +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" +message client md zmq localhost:5555 +variable x index 1 +variable y index 1 +variable z index 1 + +units metal atom_style atomic atom_modify sort 0 0.0 map yes read_data data.W orthogonal box = (0 0 0) to (3.16 3.16 3.16) - 1 by 1 by 1 MPI processor grid + 1 by 1 by 2 MPI processor grid reading atoms ... 2 atoms -mass 1 1.0 +mass 1 183.85 -#velocity all create 300.0 87287 loop geom +replicate $x $y $z +replicate 1 $y $z +replicate 1 1 $z +replicate 1 1 1 + orthogonal box = (0 0 0) to (3.16 3.16 3.16) + 1 by 1 by 2 MPI processor grid + 2 atoms + Time spent = 0.000148058 secs + +velocity all create 300.0 87287 loop geom neighbor 0.3 bin neigh_modify delay 0 every 10 check no fix 1 all nve -fix 2 all message/aimd +fix 2 all client/md fix_modify 2 energy yes thermo 1 -run 2 +run 3 Per MPI rank memory allocation (min/avg/max) = 1.8 | 1.8 | 1.8 Mbytes Step Temp E_pair E_mol TotEng Press - 0 0 0 0 -48.069571 -172694.2 - 1 0.063865861 0 0 -48.069381 -172693.93 - 2 0.25546344 0 0 -48.06881 -172693.1 -Loop time of 0.281842 on 1 procs for 2 steps with 2 atoms + 0 300 0 0 -48.030793 -78159.503 + 1 298.24318 0 0 -48.03102 -78167.19 + 2 296.85584 0 0 -48.031199 -78173.26 + 3 295.83795 0 0 -48.031331 -78177.714 +Loop time of 0.457491 on 2 procs for 3 steps with 2 atoms -Performance: 0.613 ns/day, 39.145 hours/ns, 7.096 timesteps/s -0.0% CPU use with 1 MPI tasks x no OpenMP threads +Performance: 0.567 ns/day, 42.360 hours/ns, 6.558 timesteps/s +50.1% CPU use with 2 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 0 | 0 | 0 | 0.0 | 0.00 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 3.0994e-06 | 3.0994e-06 | 3.0994e-06 | 0.0 | 0.00 -Output | 8.9169e-05 | 8.9169e-05 | 8.9169e-05 | 0.0 | 0.03 -Modify | 0.28174 | 0.28174 | 0.28174 | 0.0 | 99.97 -Other | | 5.96e-06 | | | 0.00 +Comm | 1.3828e-05 | 2.9922e-05 | 4.6015e-05 | 0.0 | 0.01 +Output | 7.5817e-05 | 9.3937e-05 | 0.00011206 | 0.0 | 0.02 +Modify | 0.45735 | 0.45736 | 0.45736 | 0.0 | 99.97 +Other | | 1.204e-05 | | | 0.00 -Nlocal: 2 ave 2 max 2 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 7 ave 7 max 7 min -Histogram: 1 0 0 0 0 0 0 0 0 0 +Nlocal: 1 ave 1 max 1 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 4 ave 4 max 4 min +Histogram: 2 0 0 0 0 0 0 0 0 0 Neighs: 0 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 +Histogram: 2 0 0 0 0 0 0 0 0 0 Total # of neighbors = 0 Ave neighs/atom = 0 Neighbor list builds = 0 Dangerous builds not checked -Total wall time: 0:00:06 +Total wall time: 0:01:21 diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp index dbaada9b50..aca5cd41f9 100644 --- a/src/MESSAGE/fix_client_md.cpp +++ b/src/MESSAGE/fix_client_md.cpp @@ -18,6 +18,7 @@ #include "atom.h" #include "comm.h" #include "domain.h" +#include "force.h" #include "memory.h" #include "error.h" diff --git a/src/MESSAGE/fix_client_md.h b/src/MESSAGE/fix_client_md.h index 262a4736ed..1c874c7278 100644 --- a/src/MESSAGE/fix_client_md.h +++ b/src/MESSAGE/fix_client_md.h @@ -40,7 +40,7 @@ class FixClientMD : public Fix { int maxatom,units,server_error; double eng; double inv_nprocs; - double fconvert,econvert,vconvert; + double fconvert,econvert,pconvert; double box[3][3]; double *xpbc; diff --git a/src/MESSAGE/server_md.h b/src/MESSAGE/server_md.h index 35daad8df0..289d70bdd8 100644 --- a/src/MESSAGE/server_md.h +++ b/src/MESSAGE/server_md.h @@ -26,7 +26,7 @@ class ServerMD : protected Pointers { private: int units; - double fconvert,econvert,vconvert; + double fconvert,econvert,pconvert; double **fcopy; void box_change(double *, double *); From 5f0423b97d64ff06b9317ddb5c140c805cf8f1b6 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 31 Aug 2018 17:04:27 -0600 Subject: [PATCH 640/675] change -mpi to -mpicolor --- doc/src/Howto_client_server.txt | 11 ++++++----- doc/src/Run_options.txt | 4 ++-- doc/src/message.txt | 10 +++++----- examples/message/README | 8 ++++---- examples/message/Script.sh | 8 ++++---- src/lammps.cpp | 1 + 6 files changed, 22 insertions(+), 20 deletions(-) diff --git a/doc/src/Howto_client_server.txt b/doc/src/Howto_client_server.txt index ce9bbc0763..714c23f066 100644 --- a/doc/src/Howto_client_server.txt +++ b/doc/src/Howto_client_server.txt @@ -119,12 +119,13 @@ For message exchange in {mpi/one} mode: Launch both codes in a single mpirun command: -mpirun -np 2 lmp_mpi -mpi 2 -in in.message.client -log log.client : -np 4 lmp_mpi -mpi 2 -in in.message.server -log log.server +mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -log log.server The two -np values determine how many procs the client and the server run on. -A LAMMPS executable run in this manner must use the -mpi P -command-line option as their first option, where P is the number of -processors the first code in the mpirun command (client or server) is -running on. +A LAMMPS executable run in this manner must use the -mpicolor color +command-line option as their its option, where color is an integer +label that will be used to distinguish one executable from another in +the multiple executables that the mpirun command launches. In this +example the client was colored with a 0, and the server with a 1. diff --git a/doc/src/Run_options.txt b/doc/src/Run_options.txt index b58aaa16e1..27f436ed55 100644 --- a/doc/src/Run_options.txt +++ b/doc/src/Run_options.txt @@ -18,7 +18,7 @@ letter abbreviation can be used: "-i or -in"_#file "-k or -kokkos"_#run-kokkos "-l or -log"_#log -"-m or -mpi"_#mpi +"-m or -mpicolor"_#mpicolor "-nc or -nocite"_#nocite "-pk or -package"_#package "-p or -partition"_#partition @@ -176,7 +176,7 @@ Option -plog will override the name of the partition log files file.N. :line -[-mpi] color :link(mpi) +[-mpicolor] color :link(mpi) If used, this must be the first command-line argument after the LAMMPS executable name. It is only used when LAMMPS is launched by an mpirun diff --git a/doc/src/message.txt b/doc/src/message.txt index 6c84f3135c..cca1a5b369 100644 --- a/doc/src/message.txt +++ b/doc/src/message.txt @@ -105,12 +105,12 @@ mode on a parallel machine, e.g. a cluster with many nodes. For mode {mpi/one}, the 2 codes communicate via MPI and are launched by the same mpirun command, e.g. with this syntax for OpenMPI: -mpirun -np 2 lmp_mpi -mpi 2 -in in.client -log log.client : -np 4 othercode args # LAMMPS is client -mpirun -np 2 othercode args : -np 4 lmp_mpi -mpi 2 -in in.server # LAMMPS is server :pre +mpirun -np 2 lmp_mpi -mpicolor 0 -in in.client -log log.client : -np 4 othercode args # LAMMPS is client +mpirun -np 2 othercode args : -np 4 lmp_mpi -mpicolor 1 -in in.server # LAMMPS is server :pre -Note the use of the "-mpi P" command-line argument with LAMMPS. See -the "command-line args"_Run_options.html doc page for further -explanation. +Note the use of the "-mpicolor color" command-line argument with +LAMMPS. See the "command-line args"_Run_options.html doc page for +further explanation. For mode {mpi/two}, the 2 codes communicate via MPI, but are launched be 2 separate mpirun commands. The specified {filename} argument is a diff --git a/examples/message/README b/examples/message/README index 34a5794e7a..6cd99d5c09 100644 --- a/examples/message/README +++ b/examples/message/README @@ -105,13 +105,13 @@ Mpi/one mode of messaging: Launch LAMMPS twice in a single mpirun command: -% mpirun -np 2 lmp_mpi -mpi 0 -in in.message.client -v mode mpione -log log.client : -np 4 lmp_mpi -mpi 1 -in in.message.server -v mode mpione -log log.server +% mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -v mode mpione -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -v mode mpione -log log.server Or run with in.message.tilt.client/server. The two -np values determine how many procs the client and the server run on. -A LAMMPS executable run in this manner must use the -mpi color -command-line option as their first option, where color is set to -one integer value for the 1st app, and another value for the 2nd app. +A LAMMPS executable run in this manner must use the -mpicolor color +command-line option as its first option, where color is set to one +integer value for the 1st app, and another value for the 2nd app. diff --git a/examples/message/Script.sh b/examples/message/Script.sh index 0125bdd500..fdcd6f1188 100644 --- a/examples/message/Script.sh +++ b/examples/message/Script.sh @@ -13,7 +13,7 @@ mpirun -np 1 lmp_mpi -v mode zmq -log log.message.server.zmq.g++.1 < in.message. mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.client.mpitwo.g++.1 < in.message.client & mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.server.mpitwo.g++.1 < in.message.server -mpirun -np 1 lmp_mpi -mpi 0 -in in.message.client -v mode mpione -log log.message.client.mpione.g++.1 : -np 1 lmp_mpi -mpi 1 -in in.message.server -v mode mpione -log log.message.server.mpione.g++.1 +mpirun -np 1 lmp_mpi -m 0 -in in.message.client -v mode mpione -log log.message.client.mpione.g++.1 : -np 1 lmp_mpi -m 1 -in in.message.server -v mode mpione -log log.message.server.mpione.g++.1 # message on 2/4 procs each @@ -28,7 +28,7 @@ mpirun -np 4 lmp_mpi -v mode zmq -log log.message.server.zmq.g++.4 < in.message. mpirun -np 2 lmp_mpi -v mode mpitwo -log log.message.client.mpitwo.g++.2 < in.message.client & mpirun -np 4 lmp_mpi -v mode mpitwo -log log.message.server.mpitwo.g++.4 < in.message.server -mpirun -np 2 lmp_mpi -mpi 0 -in in.message.client -v mode mpione -log log.message.client.mpione.g++.2 : -np 4 lmp_mpi -mpi 1 -in in.message.server -v mode mpione -log log.message.server.mpione.g++.4 +mpirun -np 2 lmp_mpi -m 0 -in in.message.client -v mode mpione -log log.message.client.mpione.g++.2 : -np 4 lmp_mpi -m 1 -in in.message.server -v mode mpione -log log.message.server.mpione.g++.4 # message.tilt on 1 proc each @@ -40,7 +40,7 @@ mpirun -np 1 lmp_mpi -v mode zmq -log log.message.tilt.server.zmq.g++.1 < in.mes mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.tilt.client.mpitwo.g++.1 < in.message.tilt.client & mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.tilt.server.mpitwo.g++.1 < in.message.tilt.server -mpirun -np 1 lmp_mpi -mpi 0 -in in.message.tilt.client -v mode mpione -log log.message.tilt.client.mpione.g++.1 : -np 1 lmp_mpi -mpi 1 -in in.message.tilt.server -v mode mpione -log log.message.tilt.server.mpione.g++.1 +mpirun -np 1 lmp_mpi -m 0 -in in.message.tilt.client -v mode mpione -log log.message.tilt.client.mpione.g++.1 : -np 1 lmp_mpi -m 1 -in in.message.tilt.server -v mode mpione -log log.message.tilt.server.mpione.g++.1 # message.tilt on 2/4 procs each @@ -52,4 +52,4 @@ mpirun -np 4 lmp_mpi -v mode zmq -log log.message.tilt.server.zmq.g++.4 < in.mes mpirun -np 2 lmp_mpi -v mode mpitwo -log log.message.tilt.client.mpitwo.g++.2 < in.message.tilt.client & mpirun -np 4 lmp_mpi -v mode mpitwo -log log.message.tilt.server.mpitwo.g++.4 < in.message.tilt.server -mpirun -np 2 lmp_mpi -mpi 0 -in in.message.tilt.client -v mode mpione -log log.message.tilt.client.mpione.g++.2 : -np 4 lmp_mpi -mpi 1 -in in.message.tilt.server -v mode mpione -log log.message.tilt.server.mpione.g++.4 +mpirun -np 2 lmp_mpi -m 0 -in in.message.tilt.client -v mode mpione -log log.message.tilt.client.mpione.g++.2 : -np 4 lmp_mpi -m 1 -in in.message.tilt.server -v mode mpione -log log.message.tilt.server.mpione.g++.4 diff --git a/src/lammps.cpp b/src/lammps.cpp index dec4a57186..fcdfecf30a 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -879,6 +879,7 @@ void LAMMPS::help() "-in filename : read input from file, not stdin (-i)\n" "-kokkos on/off ... : turn KOKKOS mode on or off (-k)\n" "-log none/filename : where to send log output (-l)\n" + "-mpicolor color : which exe in a multi-exe mpirun cmd (-m)\n" "-nocite : disable writing log.cite file (-nc)\n" "-package style ... : invoke package command (-pk)\n" "-partition size1 size2 ... : assign partition sizes (-p)\n" From 9e03bf7db993ded945ac9e3a853e93814d349905 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 1 Sep 2018 19:12:46 -0400 Subject: [PATCH 641/675] make USER-DIFFRACTION input example fully consistent with output and remove additional input file --- examples/USER/diffraction/BulkNi.in | 5 ++-- examples/USER/diffraction/Output/BulkNi.in | 35 ---------------------- 2 files changed, 3 insertions(+), 37 deletions(-) delete mode 100644 examples/USER/diffraction/Output/BulkNi.in diff --git a/examples/USER/diffraction/BulkNi.in b/examples/USER/diffraction/BulkNi.in index 0fa9c1b74c..8315e57750 100644 --- a/examples/USER/diffraction/BulkNi.in +++ b/examples/USER/diffraction/BulkNi.in @@ -17,8 +17,9 @@ atom_modify sort 0 0 compute XRD all xrd 1.541838 Ni 2Theta 40 80 c 2 2 2 LP 1 echo -compute SAED all saed 0.0251 Ni Kmax 0.85 Zone 1 0 0 c 0.025 0.025 0.025 & - dR_Ewald 0.05 echo manual +compute SAED all saed 0.0251 Ni Kmax 0.85 & + Zone 0 0 0 c 0.025 0.025 0.025 & + dR_Ewald 0.01 echo manual fix 1 all ave/histo/weight 1 1 1 40 80 200 c_XRD[1] c_XRD[2] & mode vector file $A.hist.xrd diff --git a/examples/USER/diffraction/Output/BulkNi.in b/examples/USER/diffraction/Output/BulkNi.in deleted file mode 100644 index 8315e57750..0000000000 --- a/examples/USER/diffraction/Output/BulkNi.in +++ /dev/null @@ -1,35 +0,0 @@ -variable A string bulkNi -log $A.log - -boundary p p p - -units metal -timestep 0.001 - -lattice fcc 3.52 -region box block 0 20 0 20 0 20 -create_box 1 box -create_atoms 1 box - -pair_style none -mass * 58.71 -atom_modify sort 0 0 - -compute XRD all xrd 1.541838 Ni 2Theta 40 80 c 2 2 2 LP 1 echo - -compute SAED all saed 0.0251 Ni Kmax 0.85 & - Zone 0 0 0 c 0.025 0.025 0.025 & - dR_Ewald 0.01 echo manual - -fix 1 all ave/histo/weight 1 1 1 40 80 200 c_XRD[1] c_XRD[2] & - mode vector file $A.hist.xrd - -fix 2 all saed/vtk 1 1 1 c_SAED file $A_001.saed - -dump 1 all custom 1 $A.dump id x y z -run 0 - -unfix 1 -unfix 2 -uncompute XRD -uncompute SAED From a6dfab6f27573e82a9fc89dbd2899f91f9f770e6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 4 Sep 2018 09:13:22 -0400 Subject: [PATCH 642/675] recover some const'ness in Domain class, that was lost when merging MESSAGE package. fixes lib/atc compilation issue --- src/domain.cpp | 10 +++++----- src/domain.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/domain.cpp b/src/domain.cpp index 4e9b414050..8238ab7eea 100644 --- a/src/domain.cpp +++ b/src/domain.cpp @@ -1176,12 +1176,12 @@ int Domain::closest_image(int i, int j) if J is not a valid index like -1, just return it ------------------------------------------------------------------------- */ -int Domain::closest_image(double *pos, int j) +int Domain::closest_image(const double * const pos, int j) { if (j < 0) return j; - int *sametag = atom->sametag; - double **x = atom->x; + const int * const sametag = atom->sametag; + const double * const * const x = atom->x; int closest = j; double delx = pos[0] - x[j][0]; @@ -1208,10 +1208,10 @@ int Domain::closest_image(double *pos, int j) /* ---------------------------------------------------------------------- find and return Xj image = periodic image of Xj that is closest to Xi for triclinic, add/subtract tilt factors in other dims as needed - called by ServerMD class + called by ServerMD class and LammpsInterface in lib/atc. ------------------------------------------------------------------------- */ -void Domain::closest_image(double *xi, double *xj, double *xjimage) +void Domain::closest_image(const double * const xi, const double * const xj, double * const xjimage) { double dx = xj[0] - xi[0]; double dy = xj[1] - xi[1]; diff --git a/src/domain.h b/src/domain.h index ed24116cf4..9ebdd6ae94 100644 --- a/src/domain.h +++ b/src/domain.h @@ -115,8 +115,8 @@ class Domain : protected Pointers { void minimum_image(double *); void minimum_image_once(double *); int closest_image(int, int); - int closest_image(double *, int); - void closest_image(double *, double *, double *); + int closest_image(const double * const, int); + void closest_image(const double * const, const double * const, double * const); void remap(double *, imageint &); void remap(double *); void remap_near(double *, double *); From f18f12d1a6ab2a7cba28ff3eaed16f726d6b9d53 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 4 Sep 2018 09:14:42 -0400 Subject: [PATCH 643/675] Fix NETCDF include and libs in CMake --- cmake/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 0d4bab29f1..f1124fc127 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -435,8 +435,8 @@ endif() if(PKG_USER-NETCDF) find_package(NetCDF REQUIRED) - include_directories(NETCDF_INCLUDE_DIR) - list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARY}) + include_directories(${NETCDF_INCLUDE_DIRS}) + list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARIES}) add_definitions(-DLMP_HAS_NETCDF -DNC_64BIT_DATA=0x0020) endif() From 842136afc841e90720abae1fa32ef84bf73f8e52 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 4 Sep 2018 12:12:49 -0400 Subject: [PATCH 644/675] Add core tests to CMake --- cmake/CMakeLists.txt | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 0d4bab29f1..47a4075bcc 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -136,6 +136,7 @@ if(BUILD_EXE) if(LAMMPS_MACHINE) set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}") endif() + set(LAMMPS_BINARY lmp${LAMMPS_MACHINE}) endif() option(BUILD_LIB "Build LAMMPS library" OFF) @@ -208,6 +209,38 @@ option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF) option(ENABLE_TESTING "Enable testing" OFF) if(ENABLE_TESTING) enable_testing() + + if (CMAKE_VERSION VERSION_GREATER "3.10.3") # due to FetchContent + include(FetchContent) + + + FetchContent_Declare(lammps-testing + GIT_REPOSITORY https://github.com/lammps/lammps-testing.git + GIT_TAG master + ) + + FetchContent_GetProperties(lammps-testing) + if(NOT lammps-testing_POPULATED) + message(STATUS "Downloading tests...") + FetchContent_Populate(lammps-testing) + endif() + message(STATUS "Running test discovery...") + + file(GLOB_RECURSE TEST_SCRIPTS ${lammps-testing_SOURCE_DIR}/tests/core/*/in.*) + foreach(script_path ${TEST_SCRIPTS}) + get_filename_component(TEST_NAME ${script_path} EXT) + get_filename_component(SCRIPT_NAME ${script_path} NAME) + get_filename_component(PARENT_DIR ${script_path} DIRECTORY) + string(SUBSTRING ${TEST_NAME} 1 -1 TEST_NAME) + string(REPLACE "-" "_" TEST_NAME ${TEST_NAME}) + string(REPLACE "+" "_" TEST_NAME ${TEST_NAME}) + set(TEST_NAME "test_core_${TEST_NAME}_serial") + add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -in ${SCRIPT_NAME}) + set_tests_properties(${TEST_NAME} PROPERTIES WORKING_DIRECTORY ${PARENT_DIR}) + endforeach() + else() + message(WARNING "Full test-suite requires CMake >= 3.11") + endif() endif(ENABLE_TESTING) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR @@ -1119,11 +1152,11 @@ if(BUILD_EXE) endif() endif() - set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE}) + set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY}) install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR}) - install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME lmp${LAMMPS_MACHINE}.1) + install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME ${LAMMPS_BINARY}.1) if(ENABLE_TESTING) - add_test(ShowHelp lmp${LAMMPS_MACHINE} -help) + add_test(ShowHelp ${LAMMPS_BINARY} -help) endif() endif() From af4b2b935428b4e7738b17e78bcca96463e212eb Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 4 Sep 2018 15:37:32 -0400 Subject: [PATCH 645/675] Add LAMMPS_TESTING_SOURCE_DIR and LAMMPS_TESTING_GIT_TAG options --- cmake/CMakeLists.txt | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 47a4075bcc..0d8da8409d 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -209,14 +209,16 @@ option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF) option(ENABLE_TESTING "Enable testing" OFF) if(ENABLE_TESTING) enable_testing() + option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "") + option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master") + mark_as_advanced(LAMMPS_TESTING_SOURCE_DIR LAMMPS_TESTING_GIT_TAG) - if (CMAKE_VERSION VERSION_GREATER "3.10.3") # due to FetchContent + if (CMAKE_VERSION VERSION_GREATER "3.10.3" AND NOT LAMMPS_TESTING_SOURCE_DIR) include(FetchContent) - FetchContent_Declare(lammps-testing GIT_REPOSITORY https://github.com/lammps/lammps-testing.git - GIT_TAG master + GIT_TAG ${LAMMPS_TESTING_GIT_TAG} ) FetchContent_GetProperties(lammps-testing) @@ -224,9 +226,17 @@ if(ENABLE_TESTING) message(STATUS "Downloading tests...") FetchContent_Populate(lammps-testing) endif() + + set(LAMMPS_TESTING_SOURCE_DIR ${lammps-testing_SOURCE_DIR}) + elseif(NOT LAMMPS_TESTING_SOURCE_DIR) + message(WARNING "Full test-suite requires CMake >= 3.11 or copy of\n" + "https://github.com/lammps/lammps-testing in LAMMPS_TESTING_SOURCE_DIR") + endif() + + if(EXISTS ${LAMMPS_TESTING_SOURCE_DIR}) message(STATUS "Running test discovery...") - file(GLOB_RECURSE TEST_SCRIPTS ${lammps-testing_SOURCE_DIR}/tests/core/*/in.*) + file(GLOB_RECURSE TEST_SCRIPTS ${LAMMPS_TESTING_SOURCE_DIR}/tests/core/*/in.*) foreach(script_path ${TEST_SCRIPTS}) get_filename_component(TEST_NAME ${script_path} EXT) get_filename_component(SCRIPT_NAME ${script_path} NAME) @@ -238,8 +248,9 @@ if(ENABLE_TESTING) add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -in ${SCRIPT_NAME}) set_tests_properties(${TEST_NAME} PROPERTIES WORKING_DIRECTORY ${PARENT_DIR}) endforeach() - else() - message(WARNING "Full test-suite requires CMake >= 3.11") + list(LENGTH TEST_SCRIPTS NUM_TESTS) + + message(STATUS "Found ${NUM_TESTS} tests.") endif() endif(ENABLE_TESTING) From bcecc0389e0607223383a8fa0713d73045d41ad9 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Tue, 4 Sep 2018 14:48:44 -0600 Subject: [PATCH 646/675] add variable option to compute bond/angle/dihedral local --- doc/src/compute_angle_local.txt | 66 +++++++-- doc/src/compute_bond_local.txt | 69 +++++++-- doc/src/compute_dihedral_local.txt | 64 +++++++-- src/compute_angle_local.cpp | 203 +++++++++++++++++++------- src/compute_angle_local.h | 8 +- src/compute_bond_local.cpp | 111 +++++++++++++-- src/compute_bond_local.h | 9 +- src/compute_dihedral_local.cpp | 220 +++++++++++++++++++++-------- src/compute_dihedral_local.h | 8 +- 9 files changed, 601 insertions(+), 157 deletions(-) diff --git a/doc/src/compute_angle_local.txt b/doc/src/compute_angle_local.txt index 3a321965ef..8acaec94d5 100644 --- a/doc/src/compute_angle_local.txt +++ b/doc/src/compute_angle_local.txt @@ -10,20 +10,27 @@ compute angle/local command :h3 [Syntax:] -compute ID group-ID angle/local value1 value2 ... :pre +compute ID group-ID angle/local value1 value2 ... keyword args ... :pre ID, group-ID are documented in "compute"_compute.html command :ulb,l angle/local = style name of this compute command :l one or more values may be appended :l -value = {theta} or {eng} :l +value = {theta} or {eng} or {v_name} :l {theta} = tabulate angles - {eng} = tabulate angle energies :pre + {eng} = tabulate angle energies + {v_name} = equal-style variable with name (see below) :pre +zero or more keyword/args pairs may be appended :l +keyword = {set} :l + {set} args = theta name + theta = only currently allowed arg + name = name of variable to set with theta :pre :ule [Examples:] compute 1 all angle/local theta -compute 1 all angle/local eng theta :pre +compute 1 all angle/local eng theta +compute 1 all angle/local theta v_cos set theta t :pre [Description:] @@ -36,6 +43,47 @@ The value {theta} is the angle for the 3 atoms in the interaction. The value {eng} is the interaction energy for the angle. +The value {v_name} can be used together with the {set} keyword to +compute a user-specified function of the angle theta. The {name} +specified for the {v_name} value is the name of an "equal-style +variable"_variable.html which should evaluate a formula based on a +variable which will store the angle theta. This other variable must +be an "internal-style variable"_variable.html defined in the input +script; its initial numeric value can be anything. It must be an +internal-style variable, because this command resets its value +directly. The {set} keyword is used to identify the name of this +other variable associated with theta. + +Note that the value of theta for each angle which stored in the +internal variable is in radians, not degrees. + +As an example, these commands can be added to the bench/in.rhodo +script to compute the cosine and cosine^2 of every angle in the system +and output the statistics in various ways: + +variable t internal 0.0 +variable cos equal cos(v_t) +variable cossq equal cos(v_t)*cos(v_t) :pre + +compute 1 all property/local aatom1 aatom2 aatom3 atype +compute 2 all angle/local eng theta v_cos v_cossq set theta t +dump 1 all local 100 tmp.dump c_1[*] c_2[*] :pre + +compute 3 all reduce ave c_2[*] +thermo_style custom step temp press c_3[*] :pre + +fix 10 all ave/histo 10 10 100 -1 1 20 c_2[3] mode vector file tmp.histo :pre + +The "dump local"_dump.html command will output the energy, angle, +cosine(angle), cosine^2(angle) for every angle in the system. The +"thermo_style"_thermo_style.html command will print the average of +those quantities via the "compute reduce"_compute_reduce.html command +with thermo output. And the "fix ave/histo"_fix_ave_histo.html +command will histogram the cosine(angle) values and write them to a +file. + +:line + The local data stored by this command is generated by looping over all the atoms owned on a processor and their angles. An angle will only be included if all 3 atoms in the angle are in the specified compute @@ -65,12 +113,12 @@ dump 1 all local 1000 tmp.dump index c_1\[1\] c_1\[2\] c_1\[3\] c_1\[4\] c_2\[1\ [Output info:] This compute calculates a local vector or local array depending on the -number of keywords. The length of the vector or number of rows in the -array is the number of angles. If a single keyword is specified, a -local vector is produced. If two or more keywords are specified, a +number of values. The length of the vector or number of rows in the +array is the number of angles. If a single value is specified, a +local vector is produced. If two or more values are specified, a local array is produced where the number of columns = the number of -keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See the "Howto +values. The vector or array can be accessed by any command that uses +local values from a compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. diff --git a/doc/src/compute_bond_local.txt b/doc/src/compute_bond_local.txt index c3dc1cc4af..4afd1aec40 100644 --- a/doc/src/compute_bond_local.txt +++ b/doc/src/compute_bond_local.txt @@ -10,12 +10,12 @@ compute bond/local command :h3 [Syntax:] -compute ID group-ID bond/local value1 value2 ... :pre +compute ID group-ID bond/local value1 value2 ... keyword args ... :pre ID, group-ID are documented in "compute"_compute.html command :ulb,l bond/local = style name of this compute command :l one or more values may be appended :l -value = {dist} or {engpot} or {force} or {engvib} or {engrot} or {engtrans} or {omega} or {velvib} :l +value = {dist} or {engpot} or {force} or {engvib} or {engrot} or {engtrans} or {omega} or {velvib} or {v_name} :l {dist} = bond distance {engpot} = bond potential energy {force} = bond force :pre @@ -23,13 +23,22 @@ value = {dist} or {engpot} or {force} or {engvib} or {engrot} or {engtrans} or { {engrot} = bond kinetic energy of rotation {engtrans} = bond kinetic energy of translation {omega} = magnitude of bond angular velocity - {velvib} = vibrational velocity along the bond length :pre + {velvib} = vibrational velocity along the bond length + {v_name} = equal-style variable with name (see below) :pre +zero or more keyword/args pairs may be appended :l +keyword = {set} :l + {set} args = dist name + dist = only currently allowed arg + name = name of variable to set with distance (dist) :pre +:ule + :ule [Examples:] compute 1 all bond/local engpot compute 1 all bond/local dist engpot force :pre +compute 1 all angle/local dist v_distsq set dist d :pre [Description:] @@ -38,6 +47,10 @@ interactions. The number of datums generated, aggregated across all processors, equals the number of bonds in the system, modified by the group parameter as explained below. +All these properties are computed for the pair of atoms in a bond, +whether the 2 atoms represent a simple diatomic molecule, or are part +of some larger molecule. + The value {dist} is the current length of the bond. The value {engpot} is the potential energy for the bond, @@ -79,9 +92,41 @@ two atoms in the bond towards each other. A negative value means the 2 atoms are moving toward each other; a positive value means they are moving apart. -Note that all these properties are computed for the pair of atoms in a -bond, whether the 2 atoms represent a simple diatomic molecule, or are -part of some larger molecule. +The value {v_name} can be used together with the {set} keyword to +compute a user-specified function of the bond distance. The {name} +specified for the {v_name} value is the name of an "equal-style +variable"_variable.html which should evaluate a formula based on a +variable which will store the bond distance. This other variable must +be an "internal-style variable"_variable.html defined in the input +script; its initial numeric value can be anything. It must be an +internal-style variable, because this command resets its value +directly. The {set} keyword is used to identify the name of this +other variable associated with theta. + +As an example, these commands can be added to the bench/in.rhodo +script to compute the distance^2 of every bond in the system and +output the statistics in various ways: + +variable d internal 0.0 +variable dsq equal v_d*v_d :pre + +compute 1 all property/local batom1 batom2 btype +compute 2 all bond/local engpot dist v_dsq set dist d +dump 1 all local 100 tmp.dump c_1[*] c_2[*] :pre + +compute 3 all reduce ave c_2[*] +thermo_style custom step temp press c_3[*] :pre + +fix 10 all ave/histo 10 10 100 0 6 20 c_2[3] mode vector file tmp.histo :pre + +The "dump local"_dump.html command will output the energy, distance, +distance^2 for every bond in the system. The +"thermo_style"_thermo_style.html command will print the average of +those quantities via the "compute reduce"_compute_reduce.html command +with thermo output. And the "fix ave/histo"_fix_ave_histo.html +command will histogram the distance^2 values and write them to a file. + +:line The local data stored by this command is generated by looping over all the atoms owned on a processor and their bonds. A bond will only be @@ -111,12 +156,12 @@ dump 1 all local 1000 tmp.dump index c_1\[*\] c_2\[*\] :pre [Output info:] This compute calculates a local vector or local array depending on the -number of keywords. The length of the vector or number of rows in the -array is the number of bonds. If a single keyword is specified, a -local vector is produced. If two or more keywords are specified, a -local array is produced where the number of columns = the number of -keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See the "Howto +number of values. The length of the vector or number of rows in the +array is the number of bonds. If a single value is specified, a local +vector is produced. If two or more values are specified, a local +array is produced where the number of columns = the number of values. +The vector or array can be accessed by any command that uses local +values from a compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. diff --git a/doc/src/compute_dihedral_local.txt b/doc/src/compute_dihedral_local.txt index 77812699d3..951b360f19 100644 --- a/doc/src/compute_dihedral_local.txt +++ b/doc/src/compute_dihedral_local.txt @@ -10,18 +10,25 @@ compute dihedral/local command :h3 [Syntax:] -compute ID group-ID dihedral/local value1 value2 ... :pre +compute ID group-ID dihedral/local value1 value2 ... keyword args ... :pre ID, group-ID are documented in "compute"_compute.html command :ulb,l dihedral/local = style name of this compute command :l one or more values may be appended :l -value = {phi} :l - {phi} = tabulate dihedral angles :pre +value = {phi} or {v_name} :l + {phi} = tabulate dihedral angles + {v_name} = equal-style variable with name (see below) :pre +zero or more keyword/args pairs may be appended :l +keyword = {set} :l + {set} args = phi name + phi = only currently allowed arg + name = name of variable to set with phi :pre :ule [Examples:] compute 1 all dihedral/local phi :pre +compute 1 all dihedral/local phi v_cos set phi p :pre [Description:] @@ -33,6 +40,47 @@ by the group parameter as explained below. The value {phi} is the dihedral angle, as defined in the diagram on the "dihedral_style"_dihedral_style.html doc page. +The value {v_name} can be used together with the {set} keyword to +compute a user-specified function of the dihedral angle phi. The +{name} specified for the {v_name} value is the name of an "equal-style +variable"_variable.html which should evaluate a formula based on a +variable which will store the angle phi. This other variable must +be an "internal-style variable"_variable.html defined in the input +script; its initial numeric value can be anything. It must be an +internal-style variable, because this command resets its value +directly. The {set} keyword is used to identify the name of this +other variable associated with phi. + +Note that the value of phi for each angle which stored in the internal +variable is in radians, not degrees. + +As an example, these commands can be added to the bench/in.rhodo +script to compute the cosine and cosine^2 of every dihedral angle in +the system and output the statistics in various ways: + +variable p internal 0.0 +variable cos equal cos(v_p) +variable cossq equal cos(v_p)*cos(v_p) :pre + +compute 1 all property/local datom1 datom2 datom3 datom4 dtype +compute 2 all dihedral/local phi v_cos v_cossq set phi p +dump 1 all local 100 tmp.dump c_1[*] c_2[*] :pre + +compute 3 all reduce ave c_2[*] +thermo_style custom step temp press c_3[*] :pre + +fix 10 all ave/histo 10 10 100 -1 1 20 c_2[2] mode vector file tmp.histo :pre + +The "dump local"_dump.html command will output the angle, +cosine(angle), cosine^2(angle) for every dihedral in the system. The +"thermo_style"_thermo_style.html command will print the average of +those quantities via the "compute reduce"_compute_reduce.html command +with thermo output. And the "fix ave/histo"_fix_ave_histo.html +command will histogram the cosine(angle) values and write them to a +file. + +:line + The local data stored by this command is generated by looping over all the atoms owned on a processor and their dihedrals. A dihedral will only be included if all 4 atoms in the dihedral are in the specified @@ -57,12 +105,12 @@ dump 1 all local 1000 tmp.dump index c_1\[1\] c_1\[2\] c_1\[3\] c_1\[4\] c_1\[5\ [Output info:] This compute calculates a local vector or local array depending on the -number of keywords. The length of the vector or number of rows in the -array is the number of dihedrals. If a single keyword is specified, a -local vector is produced. If two or more keywords are specified, a +number of values. The length of the vector or number of rows in the +array is the number of dihedrals. If a single value is specified, a +local vector is produced. If two or more values are specified, a local array is produced where the number of columns = the number of -keywords. The vector or array can be accessed by any command that -uses local values from a compute as input. See the "Howto +values. The vector or array can be accessed by any command that uses +local values from a compute as input. See the "Howto output"_Howto_output.html doc page for an overview of LAMMPS output options. diff --git a/src/compute_angle_local.cpp b/src/compute_angle_local.cpp index 7137077158..95faad54ad 100644 --- a/src/compute_angle_local.cpp +++ b/src/compute_angle_local.cpp @@ -21,6 +21,8 @@ #include "domain.h" #include "force.h" #include "angle.h" +#include "input.h" +#include "variable.h" #include "math_const.h" #include "memory.h" #include "error.h" @@ -30,11 +32,13 @@ using namespace MathConst; #define DELTA 10000 +enum{THETA,ENG,VARIABLE}; + /* ---------------------------------------------------------------------- */ ComputeAngleLocal::ComputeAngleLocal(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), - vlocal(NULL), alocal(NULL) + bstyle(NULL), vstr(NULL), vvar(NULL), tstr(NULL), vlocal(NULL), alocal(NULL) { if (narg < 4) error->all(FLERR,"Illegal compute angle/local command"); @@ -42,19 +46,82 @@ ComputeAngleLocal::ComputeAngleLocal(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Compute angle/local used when angles are not allowed"); local_flag = 1; + + // style args + nvalues = narg - 3; + bstyle = new int[nvalues]; + vstr = new char*[nvalues]; + vvar = new int[nvalues]; + + nvalues = 0; + tflag = 0; + nvar = 0; + + int iarg; + for (iarg = 3; iarg < narg; iarg++) { + if (strcmp(arg[iarg],"theta") == 0) { + bstyle[nvalues++] = THETA; + tflag = 1; + } else if (strcmp(arg[iarg],"eng") == 0) { + bstyle[nvalues++] = ENG; + } else if (strncmp(arg[iarg],"v_",2) == 0) { + bstyle[nvalues++] = VARIABLE; + int n = strlen(arg[iarg]); + vstr[nvar] = new char[n]; + strcpy(vstr[nvar],&arg[iarg][2]); + nvar++; + } else break; + } + + // optional args + + setflag = 0; + tstr = NULL; + + while (iarg < narg) { + if (strcmp(arg[iarg],"set") == 0) { + setflag = 1; + if (iarg+3 > narg) error->all(FLERR,"Illegal compute angle/local command"); + if (strcmp(arg[iarg+1],"theta") == 0) { + delete [] tstr; + int n = strlen(arg[iarg+2]) + 1; + tstr = new char[n]; + strcpy(tstr,arg[iarg+2]); + tflag = 1; + } else error->all(FLERR,"Illegal compute angle/local command"); + iarg += 3; + } else error->all(FLERR,"Illegal compute angle/local command"); + } + + // error check + + if (nvar) { + if (!setflag) + error->all(FLERR,"Compute angle/local variable requires a set variable"); + for (int i = 0; i < nvar; i++) { + vvar[i] = input->variable->find(vstr[i]); + if (vvar[i] < 0) + error->all(FLERR,"Variable name for copute angle/local does not exist"); + if (!input->variable->equalstyle(vvar[i])) + error->all(FLERR,"Variable for compute angle/local is invalid style"); + } + + if (tstr) { + tvar = input->variable->find(tstr); + if (tvar < 0) + error->all(FLERR,"Variable name for compute angle/local does not exist"); + if (!input->variable->internalstyle(tvar)) + error->all(FLERR,"Variable for compute angle/local is invalid style"); + } + } else if (setflag) + error->all(FLERR,"Compute angle/local set with no variable"); + + // initialize output + if (nvalues == 1) size_local_cols = 0; else size_local_cols = nvalues; - tflag = eflag = -1; - nvalues = 0; - - for (int iarg = 3; iarg < narg; iarg++) { - if (strcmp(arg[iarg],"theta") == 0) tflag = nvalues++; - else if (strcmp(arg[iarg],"eng") == 0) eflag = nvalues++; - else error->all(FLERR,"Invalid keyword in compute angle/local command"); - } - nmax = 0; vlocal = NULL; alocal = NULL; @@ -64,6 +131,13 @@ ComputeAngleLocal::ComputeAngleLocal(LAMMPS *lmp, int narg, char **arg) : ComputeAngleLocal::~ComputeAngleLocal() { + delete [] bstyle; + for (int i = 0; i < nvar; i++) delete [] vstr[i]; + delete [] vstr; + delete [] vvar; + + delete [] tstr; + memory->destroy(vlocal); memory->destroy(alocal); } @@ -75,6 +149,20 @@ void ComputeAngleLocal::init() if (force->angle == NULL) error->all(FLERR,"No angle style is defined for compute angle/local"); + if (nvar) { + for (int i = 0; i < nvar; i++) { + vvar[i] = input->variable->find(vstr[i]); + if (vvar[i] < 0) + error->all(FLERR,"Variable name for compute angle/local does not exist"); + } + + if (tstr) { + tvar = input->variable->find(tstr); + if (tvar < 0) + error->all(FLERR,"Variable name for compute angle/local does not exist"); + } + } + // do initial memory allocation so that memory_usage() is correct ncount = compute_angles(0); @@ -109,11 +197,11 @@ void ComputeAngleLocal::compute_local() int ComputeAngleLocal::compute_angles(int flag) { - int i,m,n,na,atom1,atom2,atom3,imol,iatom,atype; + int i,m,n,na,atom1,atom2,atom3,imol,iatom,atype,ivar; tagint tagprev; double delx1,dely1,delz1,delx2,dely2,delz2; - double rsq1,rsq2,r1,r2,c; - double *tbuf,*ebuf; + double rsq1,rsq2,r1,r2,c,theta; + double *ptr; double **x = atom->x; tagint *tag = atom->tag; @@ -131,17 +219,7 @@ int ComputeAngleLocal::compute_angles(int flag) int nlocal = atom->nlocal; int molecular = atom->molecular; - if (flag) { - if (nvalues == 1) { - if (tflag >= 0) tbuf = vlocal; - if (eflag >= 0) ebuf = vlocal; - } else { - if (tflag >= 0 && alocal) tbuf = &alocal[0][tflag]; - else tbuf = NULL; - if (eflag >= 0 && alocal) ebuf = &alocal[0][eflag]; - else ebuf = NULL; - } - } + // loop over all atoms and their angles Angle *angle = force->angle; @@ -175,39 +253,62 @@ int ComputeAngleLocal::compute_angles(int flag) if (atom3 < 0 || !(mask[atom3] & groupbit)) continue; if (atype == 0) continue; - if (flag) { - if (tflag >= 0) { - delx1 = x[atom1][0] - x[atom2][0]; - dely1 = x[atom1][1] - x[atom2][1]; - delz1 = x[atom1][2] - x[atom2][2]; - domain->minimum_image(delx1,dely1,delz1); + if (!flag) { + m++; + continue; + } - rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1; - r1 = sqrt(rsq1); + // theta needed by one or more outputs - delx2 = x[atom3][0] - x[atom2][0]; - dely2 = x[atom3][1] - x[atom2][1]; - delz2 = x[atom3][2] - x[atom2][2]; - domain->minimum_image(delx2,dely2,delz2); + if (tflag) { + delx1 = x[atom1][0] - x[atom2][0]; + dely1 = x[atom1][1] - x[atom2][1]; + delz1 = x[atom1][2] - x[atom2][2]; + domain->minimum_image(delx1,dely1,delz1); - rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2; - r2 = sqrt(rsq2); + rsq1 = delx1*delx1 + dely1*dely1 + delz1*delz1; + r1 = sqrt(rsq1); + + delx2 = x[atom3][0] - x[atom2][0]; + dely2 = x[atom3][1] - x[atom2][1]; + delz2 = x[atom3][2] - x[atom2][2]; + domain->minimum_image(delx2,dely2,delz2); - // c = cosine of angle + rsq2 = delx2*delx2 + dely2*dely2 + delz2*delz2; + r2 = sqrt(rsq2); - c = delx1*delx2 + dely1*dely2 + delz1*delz2; - c /= r1*r2; - if (c > 1.0) c = 1.0; - if (c < -1.0) c = -1.0; - tbuf[n] = 180.0*acos(c)/MY_PI; + // c = cosine of angle + // theta = angle in radians + + c = delx1*delx2 + dely1*dely2 + delz1*delz2; + c /= r1*r2; + if (c > 1.0) c = 1.0; + if (c < -1.0) c = -1.0; + theta = acos(c); + } + + if (nvalues == 1) ptr = &vlocal[m]; + else ptr = alocal[m]; + + if (nvar) { + ivar = 0; + if (tstr) input->variable->internal_set(tvar,theta); + } + + for (n = 0; n < nvalues; n++) { + switch (bstyle[n]) { + case THETA: + ptr[n] = 180.0*theta/MY_PI; + break; + case ENG: + if (atype > 0) ptr[n] = angle->single(atype,atom1,atom2,atom3); + else ptr[n] = 0.0; + break; + case VARIABLE: + ptr[n] = input->variable->compute_equal(vvar[ivar]); + ivar++; + break; } - - if (eflag >= 0) { - if (atype > 0) - ebuf[n] = angle->single(atype,atom1,atom2,atom3); - else ebuf[n] = 0.0; - } - n += nvalues; } m++; diff --git a/src/compute_angle_local.h b/src/compute_angle_local.h index 6f59d7f097..a95e23206d 100644 --- a/src/compute_angle_local.h +++ b/src/compute_angle_local.h @@ -33,8 +33,12 @@ class ComputeAngleLocal : public Compute { double memory_usage(); private: - int nvalues,tflag,eflag; - int ncount; + int nvalues,nvar,ncount,setflag,tflag; + + int tvar; + int *bstyle,*vvar; + char *tstr; + char **vstr; int nmax; double *vlocal; diff --git a/src/compute_bond_local.cpp b/src/compute_bond_local.cpp index 56abb9b071..6a179cf1b4 100644 --- a/src/compute_bond_local.cpp +++ b/src/compute_bond_local.cpp @@ -21,8 +21,10 @@ #include "domain.h" #include "force.h" #include "bond.h" -#include "math_extra.h" #include "comm.h" +#include "input.h" +#include "variable.h" +#include "math_extra.h" #include "memory.h" #include "error.h" @@ -31,13 +33,13 @@ using namespace LAMMPS_NS; #define DELTA 10000 #define EPSILON 1.0e-12 -enum{DIST,VELVIB,OMEGA,ENGTRANS,ENGVIB,ENGROT,ENGPOT,FORCE}; +enum{DIST,VELVIB,OMEGA,ENGTRANS,ENGVIB,ENGROT,ENGPOT,FORCE,VARIABLE}; /* ---------------------------------------------------------------------- */ ComputeBondLocal::ComputeBondLocal(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), - bstyle(NULL), vlocal(NULL), alocal(NULL) + bstyle(NULL), vstr(NULL), vvar(NULL), dstr(NULL), vlocal(NULL), alocal(NULL) { if (narg < 4) error->all(FLERR,"Illegal compute bond/local command"); @@ -47,14 +49,18 @@ ComputeBondLocal::ComputeBondLocal(LAMMPS *lmp, int narg, char **arg) : local_flag = 1; comm_forward = 3; + // style args + nvalues = narg - 3; - if (nvalues == 1) size_local_cols = 0; - else size_local_cols = nvalues; - bstyle = new int[nvalues]; - + vstr = new char*[nvalues]; + vvar = new int[nvalues]; + nvalues = 0; - for (int iarg = 3; iarg < narg; iarg++) { + nvar = 0; + + int iarg; + for (iarg = 3; iarg < narg; iarg++) { if (strcmp(arg[iarg],"dist") == 0) bstyle[nvalues++] = DIST; else if (strcmp(arg[iarg],"engpot") == 0) bstyle[nvalues++] = ENGPOT; else if (strcmp(arg[iarg],"force") == 0) bstyle[nvalues++] = FORCE; @@ -63,9 +69,58 @@ ComputeBondLocal::ComputeBondLocal(LAMMPS *lmp, int narg, char **arg) : else if (strcmp(arg[iarg],"engtrans") == 0) bstyle[nvalues++] = ENGTRANS; else if (strcmp(arg[iarg],"omega") == 0) bstyle[nvalues++] = OMEGA; else if (strcmp(arg[iarg],"velvib") == 0) bstyle[nvalues++] = VELVIB; - else error->all(FLERR,"Invalid keyword in compute bond/local command"); + else if (strncmp(arg[iarg],"v_",2) == 0) { + bstyle[nvalues++] = VARIABLE; + int n = strlen(arg[iarg]); + vstr[nvar] = new char[n]; + strcpy(vstr[nvar],&arg[iarg][2]); + nvar++; + } else break; } + // optional args + + setflag = 0; + dstr = NULL; + + while (iarg < narg) { + if (strcmp(arg[iarg],"set") == 0) { + setflag = 1; + if (iarg+3 > narg) error->all(FLERR,"Illegal compute bond/local command"); + if (strcmp(arg[iarg+1],"dist") == 0) { + delete [] dstr; + int n = strlen(arg[iarg+2]) + 1; + dstr = new char[n]; + strcpy(dstr,arg[iarg+2]); + } else error->all(FLERR,"Illegal compute bond/local command"); + iarg += 3; + } else error->all(FLERR,"Illegal compute bond/local command"); + } + + // error check + + if (nvar) { + if (!setflag) + error->all(FLERR,"Compute bond/local variable requires a set variable"); + for (int i = 0; i < nvar; i++) { + vvar[i] = input->variable->find(vstr[i]); + if (vvar[i] < 0) + error->all(FLERR,"Variable name for copute bond/local does not exist"); + if (!input->variable->equalstyle(vvar[i])) + error->all(FLERR,"Variable for compute bond/local is invalid style"); + } + + if (dstr) { + dvar = input->variable->find(dstr); + if (dvar < 0) + error->all(FLERR,"Variable name for compute bond/local does not exist"); + if (!input->variable->internalstyle(dvar)) + error->all(FLERR,"Variable for compute bond/local is invalid style"); + } + } else if (setflag) + error->all(FLERR,"Compute bond/local set with no variable"); + + // set singleflag if need to call bond->single() // set velflag if compute any quantities based on velocities @@ -77,6 +132,11 @@ ComputeBondLocal::ComputeBondLocal(LAMMPS *lmp, int narg, char **arg) : bstyle[i] == ENGVIB || bstyle[i] == ENGROT) velflag = 1; } + // initialize output + + if (nvalues == 1) size_local_cols = 0; + else size_local_cols = nvalues; + nmax = 0; vlocal = NULL; alocal = NULL; @@ -86,9 +146,15 @@ ComputeBondLocal::ComputeBondLocal(LAMMPS *lmp, int narg, char **arg) : ComputeBondLocal::~ComputeBondLocal() { + delete [] bstyle; + for (int i = 0; i < nvar; i++) delete [] vstr[i]; + delete [] vstr; + delete [] vvar; + + delete [] dstr; + memory->destroy(vlocal); memory->destroy(alocal); - delete [] bstyle; } /* ---------------------------------------------------------------------- */ @@ -98,6 +164,20 @@ void ComputeBondLocal::init() if (force->bond == NULL) error->all(FLERR,"No bond style is defined for compute bond/local"); + if (nvar) { + for (int i = 0; i < nvar; i++) { + vvar[i] = input->variable->find(vstr[i]); + if (vvar[i] < 0) + error->all(FLERR,"Variable name for compute bond/local does not exist"); + } + + if (dstr) { + dvar = input->variable->find(dstr); + if (dvar < 0) + error->all(FLERR,"Variable name for compute bond/local does not exist"); + } + } + // set ghostvelflag if need to acquire ghost atom velocities if (velflag && !comm->ghost_velocity) ghostvelflag = 1; @@ -140,7 +220,7 @@ void ComputeBondLocal::compute_local() int ComputeBondLocal::compute_bonds(int flag) { - int i,m,n,nb,atom1,atom2,imol,iatom,btype; + int i,m,n,nb,atom1,atom2,imol,iatom,btype,ivar; tagint tagprev; double dx,dy,dz,rsq; double mass1,mass2,masstotal,invmasstotal; @@ -297,6 +377,11 @@ int ComputeBondLocal::compute_bonds(int flag) if (nvalues == 1) ptr = &vlocal[m]; else ptr = alocal[m]; + if (nvar) { + ivar = 0; + if (dstr) input->variable->internal_set(dvar,sqrt(rsq)); + } + for (n = 0; n < nvalues; n++) { switch (bstyle[n]) { case DIST: @@ -323,6 +408,10 @@ int ComputeBondLocal::compute_bonds(int flag) case VELVIB: ptr[n] = vvib; break; + case VARIABLE: + ptr[n] = input->variable->compute_equal(vvar[ivar]); + ivar++; + break; } } } diff --git a/src/compute_bond_local.h b/src/compute_bond_local.h index b3e99fc61b..17111a941c 100644 --- a/src/compute_bond_local.h +++ b/src/compute_bond_local.h @@ -35,10 +35,13 @@ class ComputeBondLocal : public Compute { double memory_usage(); private: - int nvalues; - int ncount; - int *bstyle; + int nvalues,nvar,ncount,setflag; + int singleflag,velflag,ghostvelflag,initflag; + int dvar; + int *bstyle,*vvar; + char *dstr; + char **vstr; int nmax; double *vlocal; diff --git a/src/compute_dihedral_local.cpp b/src/compute_dihedral_local.cpp index 42d1476ad2..7444630090 100644 --- a/src/compute_dihedral_local.cpp +++ b/src/compute_dihedral_local.cpp @@ -21,6 +21,9 @@ #include "domain.h" #include "force.h" #include "dihedral.h" +#include "input.h" +#include "variable.h" + #include "math_const.h" #include "memory.h" #include "error.h" @@ -31,11 +34,13 @@ using namespace MathConst; #define DELTA 10000 #define SMALL 0.001 +enum{PHI,VARIABLE}; + /* ---------------------------------------------------------------------- */ ComputeDihedralLocal::ComputeDihedralLocal(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), - vlocal(NULL), alocal(NULL) + bstyle(NULL), vstr(NULL), vvar(NULL), pstr(NULL), vlocal(NULL), alocal(NULL) { if (narg < 4) error->all(FLERR,"Illegal compute dihedral/local command"); @@ -44,18 +49,80 @@ ComputeDihedralLocal::ComputeDihedralLocal(LAMMPS *lmp, int narg, char **arg) : "Compute dihedral/local used when dihedrals are not allowed"); local_flag = 1; + + // style args + nvalues = narg - 3; + bstyle = new int[nvalues]; + vstr = new char*[nvalues]; + vvar = new int[nvalues]; + + nvalues = 0; + nvar = 0; + + int iarg; + for (iarg = 3; iarg < narg; iarg++) { + if (strcmp(arg[iarg],"phi") == 0) { + bstyle[nvalues++] = PHI; + } else if (strncmp(arg[iarg],"v_",2) == 0) { + bstyle[nvalues++] = VARIABLE; + int n = strlen(arg[iarg]); + vstr[nvar] = new char[n]; + strcpy(vstr[nvar],&arg[iarg][2]); + nvar++; + } else break; + } + + // optional args + + setflag = 0; + pstr = NULL; + + while (iarg < narg) { + if (strcmp(arg[iarg],"set") == 0) { + setflag = 1; + if (iarg+3 > narg) + error->all(FLERR,"Illegal compute dihedral/local command"); + if (strcmp(arg[iarg+1],"phi") == 0) { + delete [] pstr; + int n = strlen(arg[iarg+2]) + 1; + pstr = new char[n]; + strcpy(pstr,arg[iarg+2]); + } else error->all(FLERR,"Illegal compute dihedral/local command"); + iarg += 3; + } else error->all(FLERR,"Illegal compute dihedral/local command"); + } + + // error check + + if (nvar) { + if (!setflag) + error->all(FLERR,"Compute dihedral/local variable requires a set variable"); + for (int i = 0; i < nvar; i++) { + vvar[i] = input->variable->find(vstr[i]); + if (vvar[i] < 0) + error->all(FLERR, + "Variable name for copute dihedral/local does not exist"); + if (!input->variable->equalstyle(vvar[i])) + error->all(FLERR,"Variable for compute dihedral/local is invalid style"); + } + + if (pstr) { + pvar = input->variable->find(pstr); + if (pvar < 0) + error->all(FLERR, + "Variable name for compute dihedral/local does not exist"); + if (!input->variable->internalstyle(pvar)) + error->all(FLERR,"Variable for compute dihedral/local is invalid style"); + } + } else if (setflag) + error->all(FLERR,"Compute dihedral/local set with no variable"); + + // initialize output + if (nvalues == 1) size_local_cols = 0; else size_local_cols = nvalues; - pflag = -1; - nvalues = 0; - - for (int iarg = 3; iarg < narg; iarg++) { - if (strcmp(arg[iarg],"phi") == 0) pflag = nvalues++; - else error->all(FLERR,"Invalid keyword in compute dihedral/local command"); - } - nmax = 0; vlocal = NULL; alocal = NULL; @@ -65,6 +132,13 @@ ComputeDihedralLocal::ComputeDihedralLocal(LAMMPS *lmp, int narg, char **arg) : ComputeDihedralLocal::~ComputeDihedralLocal() { + delete [] bstyle; + for (int i = 0; i < nvar; i++) delete [] vstr[i]; + delete [] vstr; + delete [] vvar; + + delete [] pstr; + memory->destroy(vlocal); memory->destroy(alocal); } @@ -76,6 +150,22 @@ void ComputeDihedralLocal::init() if (force->dihedral == NULL) error->all(FLERR,"No dihedral style is defined for compute dihedral/local"); + if (nvar) { + for (int i = 0; i < nvar; i++) { + vvar[i] = input->variable->find(vstr[i]); + if (vvar[i] < 0) + error->all(FLERR, + "Variable name for compute dihedral/local does not exist"); + } + + if (pstr) { + pvar = input->variable->find(pstr); + if (pvar < 0) + error->all(FLERR, + "Variable name for compute dihedral/local does not exist"); + } + } + // do initial memory allocation so that memory_usage() is correct ncount = compute_dihedrals(0); @@ -107,12 +197,12 @@ void ComputeDihedralLocal::compute_local() int ComputeDihedralLocal::compute_dihedrals(int flag) { - int i,m,n,nd,atom1,atom2,atom3,atom4,imol,iatom; + int i,m,n,nd,atom1,atom2,atom3,atom4,imol,iatom,ivar; tagint tagprev; double vb1x,vb1y,vb1z,vb2x,vb2y,vb2z,vb3x,vb3y,vb3z,vb2xm,vb2ym,vb2zm; double ax,ay,az,bx,by,bz,rasq,rbsq,rgsq,rg,ra2inv,rb2inv,rabinv; - double s,c; - double *pbuf; + double s,c,phi; + double *ptr; double **x = atom->x; tagint *tag = atom->tag; @@ -130,14 +220,7 @@ int ComputeDihedralLocal::compute_dihedrals(int flag) int nlocal = atom->nlocal; int molecular = atom->molecular; - if (flag) { - if (nvalues == 1) { - if (pflag >= 0) pbuf = vlocal; - } else { - if (pflag >= 0 && alocal) pbuf = &alocal[0][pflag]; - else pbuf = NULL; - } - } + // loop over all atoms and their dihedrals m = n = 0; for (atom2 = 0; atom2 < nlocal; atom2++) { @@ -169,56 +252,75 @@ int ComputeDihedralLocal::compute_dihedrals(int flag) if (atom3 < 0 || !(mask[atom3] & groupbit)) continue; if (atom4 < 0 || !(mask[atom4] & groupbit)) continue; - if (flag) { + if (!flag) { + m++; + continue; + } - // phi calculation from dihedral style harmonic + // phi calculation from dihedral style harmonic - if (pflag >= 0) { - vb1x = x[atom1][0] - x[atom2][0]; - vb1y = x[atom1][1] - x[atom2][1]; - vb1z = x[atom1][2] - x[atom2][2]; - domain->minimum_image(vb1x,vb1y,vb1z); + vb1x = x[atom1][0] - x[atom2][0]; + vb1y = x[atom1][1] - x[atom2][1]; + vb1z = x[atom1][2] - x[atom2][2]; + domain->minimum_image(vb1x,vb1y,vb1z); - vb2x = x[atom3][0] - x[atom2][0]; - vb2y = x[atom3][1] - x[atom2][1]; - vb2z = x[atom3][2] - x[atom2][2]; - domain->minimum_image(vb2x,vb2y,vb2z); + vb2x = x[atom3][0] - x[atom2][0]; + vb2y = x[atom3][1] - x[atom2][1]; + vb2z = x[atom3][2] - x[atom2][2]; + domain->minimum_image(vb2x,vb2y,vb2z); - vb2xm = -vb2x; - vb2ym = -vb2y; - vb2zm = -vb2z; - domain->minimum_image(vb2xm,vb2ym,vb2zm); + vb2xm = -vb2x; + vb2ym = -vb2y; + vb2zm = -vb2z; + domain->minimum_image(vb2xm,vb2ym,vb2zm); - vb3x = x[atom4][0] - x[atom3][0]; - vb3y = x[atom4][1] - x[atom3][1]; - vb3z = x[atom4][2] - x[atom3][2]; - domain->minimum_image(vb3x,vb3y,vb3z); + vb3x = x[atom4][0] - x[atom3][0]; + vb3y = x[atom4][1] - x[atom3][1]; + vb3z = x[atom4][2] - x[atom3][2]; + domain->minimum_image(vb3x,vb3y,vb3z); - ax = vb1y*vb2zm - vb1z*vb2ym; - ay = vb1z*vb2xm - vb1x*vb2zm; - az = vb1x*vb2ym - vb1y*vb2xm; - bx = vb3y*vb2zm - vb3z*vb2ym; - by = vb3z*vb2xm - vb3x*vb2zm; - bz = vb3x*vb2ym - vb3y*vb2xm; + ax = vb1y*vb2zm - vb1z*vb2ym; + ay = vb1z*vb2xm - vb1x*vb2zm; + az = vb1x*vb2ym - vb1y*vb2xm; + bx = vb3y*vb2zm - vb3z*vb2ym; + by = vb3z*vb2xm - vb3x*vb2zm; + bz = vb3x*vb2ym - vb3y*vb2xm; - rasq = ax*ax + ay*ay + az*az; - rbsq = bx*bx + by*by + bz*bz; - rgsq = vb2xm*vb2xm + vb2ym*vb2ym + vb2zm*vb2zm; - rg = sqrt(rgsq); + rasq = ax*ax + ay*ay + az*az; + rbsq = bx*bx + by*by + bz*bz; + rgsq = vb2xm*vb2xm + vb2ym*vb2ym + vb2zm*vb2zm; + rg = sqrt(rgsq); - ra2inv = rb2inv = 0.0; - if (rasq > 0) ra2inv = 1.0/rasq; - if (rbsq > 0) rb2inv = 1.0/rbsq; - rabinv = sqrt(ra2inv*rb2inv); + ra2inv = rb2inv = 0.0; + if (rasq > 0) ra2inv = 1.0/rasq; + if (rbsq > 0) rb2inv = 1.0/rbsq; + rabinv = sqrt(ra2inv*rb2inv); + + c = (ax*bx + ay*by + az*bz)*rabinv; + s = rg*rabinv*(ax*vb3x + ay*vb3y + az*vb3z); + + if (c > 1.0) c = 1.0; + if (c < -1.0) c = -1.0; + phi = atan2(s,c); - c = (ax*bx + ay*by + az*bz)*rabinv; - s = rg*rabinv*(ax*vb3x + ay*vb3y + az*vb3z); + if (nvalues == 1) ptr = &vlocal[m]; + else ptr = alocal[m]; + + if (nvar) { + ivar = 0; + if (pstr) input->variable->internal_set(pvar,phi); + } - if (c > 1.0) c = 1.0; - if (c < -1.0) c = -1.0; - pbuf[n] = 180.0*atan2(s,c)/MY_PI; + for (n = 0; n < nvalues; n++) { + switch (bstyle[n]) { + case PHI: + ptr[n] = 180.0*phi/MY_PI; + break; + case VARIABLE: + ptr[n] = input->variable->compute_equal(vvar[ivar]); + ivar++; + break; } - n += nvalues; } m++; diff --git a/src/compute_dihedral_local.h b/src/compute_dihedral_local.h index c077e52dbd..d5f6a64183 100644 --- a/src/compute_dihedral_local.h +++ b/src/compute_dihedral_local.h @@ -33,8 +33,12 @@ class ComputeDihedralLocal : public Compute { double memory_usage(); private: - int nvalues,pflag; - int ncount; + int nvalues,nvar,ncount,setflag,tflag; + + int pvar; + int *bstyle,*vvar; + char *pstr; + char **vstr; int nmax; double *vlocal; From 037420b611979f5fca9a1aeb360824294cb8ae64 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Tue, 4 Sep 2018 14:59:30 -0600 Subject: [PATCH 647/675] cmake: only add tests if exe is build --- cmake/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 0d8da8409d..d4701102f7 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -207,7 +207,7 @@ endif() option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF) option(ENABLE_TESTING "Enable testing" OFF) -if(ENABLE_TESTING) +if(ENABLE_TESTING AND BUILD_EXE) enable_testing() option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "") option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master") @@ -252,7 +252,7 @@ if(ENABLE_TESTING) message(STATUS "Found ${NUM_TESTS} tests.") endif() -endif(ENABLE_TESTING) +endif() set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR KSPACE MANYBODY MC MEAM MESSAGE MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP From db7c2549d064c61c6f8b6a62acea5f04aa33e470 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Tue, 4 Sep 2018 17:05:59 -0600 Subject: [PATCH 648/675] cmake: inject with-pic into Scafacos --- cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index b7bbd6e1ba..fcc547c5b1 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -416,6 +416,7 @@ if(PKG_USER-SCAFACOS) --with-internal-fftw --with-internal-pfft --with-internal-pnfft + $<$:--with-pic> FC=${CMAKE_MPI_Fortran_COMPILER} CXX=${CMAKE_MPI_CXX_COMPILER} CC=${CMAKE_MPI_C_COMPILER} From 8608b4f93c8e66d3e518c2ba783b775d978d6034 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 4 Sep 2018 21:31:08 -0400 Subject: [PATCH 649/675] Remove extra libm in LAMMPS_LINK_LIBS --- cmake/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index fcc547c5b1..e0f8d08a25 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -434,7 +434,6 @@ if(PKG_USER-SCAFACOS) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p2nfft.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p3m.a) list(APPEND LAMMPS_LINK_LIBS ${GSL_LIBRARIES}) - list(APPEND LAMMPS_LINK_LIBS m) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_near.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_gridsort.a) list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_resort.a) From a5f7b418dea73439d6cb4a56ccec4f312b582263 Mon Sep 17 00:00:00 2001 From: jrgissing Date: Tue, 4 Sep 2018 22:06:49 -0600 Subject: [PATCH 650/675] bond/react: efficient competing reactions --- src/USER-MISC/fix_bond_react.cpp | 25 ++++++++++++++++++------- src/comm.h | 3 +++ src/comm_brick.cpp | 31 ++++++++++++++++++++++++++++++- src/comm_brick.h | 2 ++ 4 files changed, 53 insertions(+), 8 deletions(-) diff --git a/src/USER-MISC/fix_bond_react.cpp b/src/USER-MISC/fix_bond_react.cpp index 5ce1f11475..f369a9a10f 100644 --- a/src/USER-MISC/fix_bond_react.cpp +++ b/src/USER-MISC/fix_bond_react.cpp @@ -1858,16 +1858,27 @@ if so, flag for broadcasting for perusal by all processors void FixBondReact::glove_ghostcheck() { - // it appears this little loop was deemed important enough for its own function! - // noteworthy: it's only relevant for parallel - // here we add glove to either local_mega_glove or ghostly_mega_glove + // ghostly_mega_glove includes atoms that are ghosts, either of this proc or another + // 'ghosts of another' indication taken from comm->sendlist + int ghostly = 0; - for (int i = 0; i < onemol->natoms; i++) { - if (atom->map(glove[i][1]) >= atom->nlocal) { - ghostly = 1; - break; + if (comm->style == 0) { + int tmp; + int *localsendlist = (int *) comm->extract("localsendlist",tmp); + + // create an indexed sendlist + for (int i = 0; i < onemol->natoms; i++) { + int ilocal = atom->map(glove[i][1]); + if (ilocal >= atom->nlocal || localsendlist[ilocal] == 1) { + ghostly = 1; + break; + } } + } else { + #if !defined(MPI_STUBS) + ghostly = 1; + #endif } if (ghostly == 1) { diff --git a/src/comm.h b/src/comm.h index 298f435c3d..2579f9b283 100644 --- a/src/comm.h +++ b/src/comm.h @@ -112,6 +112,9 @@ class Comm : protected Pointers { int read_lines_from_file(FILE *, int, int, char *); int read_lines_from_file_universe(FILE *, int, int, char *); + // extract data useful to other classes + virtual void *extract(const char *, int &) {return NULL;} + protected: int bordergroup; // only communicate this group in borders diff --git a/src/comm_brick.cpp b/src/comm_brick.cpp index 3aa6d7748c..d179475345 100644 --- a/src/comm_brick.cpp +++ b/src/comm_brick.cpp @@ -55,7 +55,8 @@ CommBrick::CommBrick(LAMMPS *lmp) : size_reverse_send(NULL), size_reverse_recv(NULL), slablo(NULL), slabhi(NULL), multilo(NULL), multihi(NULL), cutghostmulti(NULL), pbc_flag(NULL), pbc(NULL), firstrecv(NULL), - sendlist(NULL), maxsendlist(NULL), buf_send(NULL), buf_recv(NULL) + sendlist(NULL), localsendlist(NULL), maxsendlist(NULL), + buf_send(NULL), buf_recv(NULL) { style = 0; layout = Comm::LAYOUT_UNIFORM; @@ -74,6 +75,7 @@ CommBrick::~CommBrick() } if (sendlist) for (int i = 0; i < maxswap; i++) memory->destroy(sendlist[i]); + if (localsendlist) memory->destroy(localsendlist); memory->sfree(sendlist); memory->destroy(maxsendlist); @@ -1469,6 +1471,33 @@ void CommBrick::free_multi() multilo = multihi = NULL; } +/* ---------------------------------------------------------------------- + extract data potentially useful to other classes +------------------------------------------------------------------------- */ + +void *CommBrick::extract(const char *str, int &dim) +{ + if (strcmp(str,"localsendlist") == 0) { + int i, iswap, isend; + if (!localsendlist) + memory->create(localsendlist,atom->nlocal,"comm:localsendlist"); + else + memory->grow(localsendlist,atom->nlocal,"comm:localsendlist"); + + for (i = 0; i < atom->nlocal; i++) + localsendlist[i] = 0; + + for (iswap = 0; iswap < nswap; iswap++) + for (isend = 0; isend < sendnum[iswap]; isend++) + if (sendlist[iswap][isend] < atom->nlocal) + localsendlist[sendlist[iswap][isend]] = 1; + + return (void *) localsendlist; + } + + return NULL; +} + /* ---------------------------------------------------------------------- return # of bytes of allocated memory ------------------------------------------------------------------------- */ diff --git a/src/comm_brick.h b/src/comm_brick.h index 461ee84b40..b3a3a7e094 100644 --- a/src/comm_brick.h +++ b/src/comm_brick.h @@ -46,6 +46,7 @@ class CommBrick : public Comm { void forward_comm_array(int, double **); // forward comm of array int exchange_variable(int, double *, double *&); // exchange on neigh stencil + void *extract(const char *,int &); virtual bigint memory_usage(); protected: @@ -67,6 +68,7 @@ class CommBrick : public Comm { int *firstrecv; // where to put 1st recv atom in each swap int **sendlist; // list of atoms to send in each swap + int *localsendlist; // indexed list of local sendlist atoms int *maxsendlist; // max size of send list for each swap double *buf_send; // send buffer for all comm From ae7b18fb772c17c6df105ba7f1f76fac420e998d Mon Sep 17 00:00:00 2001 From: jrgissing Date: Wed, 5 Sep 2018 00:11:50 -0600 Subject: [PATCH 651/675] only one call to extract needed --- src/USER-MISC/fix_bond_react.cpp | 8 ++++---- src/USER-MISC/fix_bond_react.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/USER-MISC/fix_bond_react.cpp b/src/USER-MISC/fix_bond_react.cpp index 469e1d6347..a6f08a7376 100644 --- a/src/USER-MISC/fix_bond_react.cpp +++ b/src/USER-MISC/fix_bond_react.cpp @@ -961,6 +961,10 @@ void FixBondReact::superimpose_algorithm() local_num_mega = 0; ghostly_num_mega = 0; + // indicates local ghosts of other procs + int tmp; + localsendlist = (int *) comm->extract("localsendlist",tmp); + // quick description of important global indices you'll see floating about: // 'pion' is the pioneer loop index // 'neigh' in the first neighbor index @@ -1863,10 +1867,6 @@ void FixBondReact::glove_ghostcheck() int ghostly = 0; if (comm->style == 0) { - int tmp; - int *localsendlist = (int *) comm->extract("localsendlist",tmp); - - // create an indexed sendlist for (int i = 0; i < onemol->natoms; i++) { int ilocal = atom->map(glove[i][1]); if (ilocal >= atom->nlocal || localsendlist[ilocal] == 1) { diff --git a/src/USER-MISC/fix_bond_react.h b/src/USER-MISC/fix_bond_react.h index 8ff71141f8..08756f8131 100644 --- a/src/USER-MISC/fix_bond_react.h +++ b/src/USER-MISC/fix_bond_react.h @@ -122,6 +122,7 @@ class FixBondReact : public Fix { tagint **local_mega_glove; // consolidation local of reaction instances tagint **ghostly_mega_glove; // consolidation nonlocal of reaction instances tagint **global_mega_glove; // consolidation (inter-processor) of gloves containing nonlocal atoms + int *localsendlist; // indicates ghosts of other procs int local_num_mega; // num of local reaction instances int ghostly_num_mega; // num of ghostly reaction instances int global_megasize; // num of reaction instances in global_mega_glove From d3d16882ca562b51476e7037949c6fdbfc260da5 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Wed, 5 Sep 2018 08:12:19 -0600 Subject: [PATCH 652/675] remove note for Rene --- examples/USER/scafacos/README | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 examples/USER/scafacos/README diff --git a/examples/USER/scafacos/README b/examples/USER/scafacos/README deleted file mode 100644 index 0ddd19d3ee..0000000000 --- a/examples/USER/scafacos/README +++ /dev/null @@ -1,10 +0,0 @@ -RENE: this dir needs a few short-running examples, -for both 1 and 4 procs, of using different Scafacos methods. -with sample log file outputs - so users can verify -they are running it correctly - -For each input script, there should be files like - -in.scafacos.fmm -log.20Jul18.scafacos.fmm.g++.1 -log.20Jul18.scafacos.fmm.g++.4 From 4a5e28af81ff62f33ca603fda26ebf609f3c4a2e Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 5 Sep 2018 10:32:11 -0400 Subject: [PATCH 653/675] Avoid unnecessary sorting in print_columns std::map is a sorted associative container. We don't need to first copy it into a vector and sort that one. print_columns has been refactored as a template function and makes use of this property. --- src/info.cpp | 156 ++++++++++----------------------------------------- 1 file changed, 30 insertions(+), 126 deletions(-) diff --git a/src/info.cpp b/src/info.cpp index 748354e878..672ce72b74 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -44,7 +44,7 @@ #include "error.h" #include -#include +#include #include #include @@ -117,7 +117,8 @@ static const char bstyles[] = "pfsm"; using namespace LAMMPS_NS; using namespace std; -static void print_columns(FILE* fp, vector & styles); +template +static void print_columns(FILE* fp, map * styles); /* ---------------------------------------------------------------------- */ @@ -686,196 +687,98 @@ void Info::available_styles(FILE * out, int flags) void Info::atom_styles(FILE * out) { fprintf(out, "\nAtom styles:\n"); - - vector styles; - - for(Atom::AtomVecCreatorMap::iterator it = atom->avec_map->begin(); it != atom->avec_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, atom->avec_map); fprintf(out, "\n\n\n"); } void Info::integrate_styles(FILE * out) { fprintf(out, "\nIntegrate styles:\n"); - - vector styles; - - for(Update::IntegrateCreatorMap::iterator it = update->integrate_map->begin(); it != update->integrate_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, update->integrate_map); fprintf(out, "\n\n\n"); } void Info::minimize_styles(FILE * out) { fprintf(out, "\nMinimize styles:\n"); - - vector styles; - - for(Update::MinimizeCreatorMap::iterator it = update->minimize_map->begin(); it != update->minimize_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, update->minimize_map); fprintf(out, "\n\n\n"); } void Info::pair_styles(FILE * out) { fprintf(out, "\nPair styles:\n"); - - vector styles; - - for(Force::PairCreatorMap::iterator it = force->pair_map->begin(); it != force->pair_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, force->pair_map); fprintf(out, "\n\n\n"); } void Info::bond_styles(FILE * out) { fprintf(out, "\nBond styles:\n"); - - vector styles; - - for(Force::BondCreatorMap::iterator it = force->bond_map->begin(); it != force->bond_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, force->bond_map); fprintf(out, "\n\n\n"); } void Info::angle_styles(FILE * out) { fprintf(out, "\nAngle styles:\n"); - - vector styles; - - for(Force::AngleCreatorMap::iterator it = force->angle_map->begin(); it != force->angle_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, force->angle_map); fprintf(out, "\n\n\n"); } void Info::dihedral_styles(FILE * out) { fprintf(out, "\nDihedral styles:\n"); - - vector styles; - - for(Force::DihedralCreatorMap::iterator it = force->dihedral_map->begin(); it != force->dihedral_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, force->dihedral_map); fprintf(out, "\n\n\n"); } void Info::improper_styles(FILE * out) { fprintf(out, "\nImproper styles:\n"); - - vector styles; - - for(Force::ImproperCreatorMap::iterator it = force->improper_map->begin(); it != force->improper_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, force->improper_map); fprintf(out, "\n\n\n"); } void Info::kspace_styles(FILE * out) { fprintf(out, "\nKSpace styles:\n"); - - vector styles; - - for(Force::KSpaceCreatorMap::iterator it = force->kspace_map->begin(); it != force->kspace_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, force->kspace_map); fprintf(out, "\n\n\n"); } void Info::fix_styles(FILE * out) { fprintf(out, "\nFix styles:\n"); - - vector styles; - - for(Modify::FixCreatorMap::iterator it = modify->fix_map->begin(); it != modify->fix_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, modify->fix_map); fprintf(out, "\n\n\n"); } void Info::compute_styles(FILE * out) { fprintf(out, "\nCompute styles:\n"); - - vector styles; - - for(Modify::ComputeCreatorMap::iterator it = modify->compute_map->begin(); it != modify->compute_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, modify->compute_map); fprintf(out, "\n\n\n"); } void Info::region_styles(FILE * out) { fprintf(out, "\nRegion styles:\n"); - - vector styles; - - for(Domain::RegionCreatorMap::iterator it = domain->region_map->begin(); it != domain->region_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, domain->region_map); fprintf(out, "\n\n\n"); } void Info::dump_styles(FILE * out) { fprintf(out, "\nDump styles:\n"); - - vector styles; - - for(Output::DumpCreatorMap::iterator it = output->dump_map->begin(); it != output->dump_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, output->dump_map); fprintf(out, "\n\n\n"); } void Info::command_styles(FILE * out) { fprintf(out, "\nCommand styles (add-on input script commands):\n"); - - vector styles; - - for(Input::CommandCreatorMap::iterator it = input->command_map->begin(); it != input->command_map->end(); ++it) { - styles.push_back(it->first); - } - - print_columns(out, styles); + print_columns(out, input->command_map); fprintf(out, "\n\n\n"); } @@ -1110,41 +1013,42 @@ bool Info::is_defined(const char *category, const char *name) return false; } -static void print_columns(FILE* fp, vector & styles) +template +static void print_columns(FILE* fp, map * styles) { - if (styles.size() == 0) { + if (styles->empty()) { fprintf(fp, "\nNone"); return; } - std::sort(styles.begin(), styles.end()); - + // std::map keys are already sorted int pos = 80; - for (int i = 0; i < styles.size(); ++i) { + for(typename map::iterator it = styles->begin(); it != styles->end(); ++it) { + const string & style_name = it->first; // skip "secret" styles - if (isupper(styles[i][0])) continue; + if (isupper(style_name[0])) continue; - int len = styles[i].length(); + int len = style_name.length(); if (pos + len > 80) { fprintf(fp,"\n"); pos = 0; } if (len < 16) { - fprintf(fp,"%-16s",styles[i].c_str()); + fprintf(fp,"%-16s", style_name.c_str()); pos += 16; } else if (len < 32) { - fprintf(fp,"%-32s",styles[i].c_str()); + fprintf(fp,"%-32s", style_name.c_str()); pos += 32; } else if (len < 48) { - fprintf(fp,"%-48s",styles[i].c_str()); + fprintf(fp,"%-48s", style_name.c_str()); pos += 48; } else if (len < 64) { - fprintf(fp,"%-64s",styles[i].c_str()); + fprintf(fp,"%-64s", style_name.c_str()); pos += 64; } else { - fprintf(fp,"%-80s",styles[i].c_str()); + fprintf(fp,"%-80s", style_name.c_str()); pos += 80; } } From 779f1bd0b1c45d622982759c578446694b8e2872 Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Wed, 5 Sep 2018 11:27:10 -0400 Subject: [PATCH 654/675] Fixes a bug in pair_morse_smooth_linear where the cutoff was not properly initialized. --- cmake/CMakeLists.txt | 84 +- cmake/FindLAMMPS.cmake.in | 48 + cmake/Modules/FindZMQ.cmake | 8 + cmake/pkgconfig/liblammps.pc.in | 6 +- doc/src/Build_extras.txt | 34 + doc/src/Build_package.txt | 1 + doc/src/Commands_all.txt | 2 + doc/src/Howto.txt | 4 +- doc/src/Howto_client_server.txt | 131 + doc/src/Howto_couple.txt | 14 +- doc/src/Manual.txt | 4 +- doc/src/Packages_details.txt | 29 +- doc/src/Packages_standard.txt | 1 + doc/src/Run_options.txt | 25 + doc/src/commands_list.txt | 2 + doc/src/fix_client_md.txt | 106 + doc/src/lammps.book | 5 + doc/src/message.txt | 162 + doc/src/server.txt | 71 + doc/src/server_mc.txt | 116 + doc/src/server_md.txt | 147 + examples/COUPLE/README | 5 + examples/COUPLE/lammps_mc/Makefile | 33 + examples/COUPLE/lammps_mc/README | 128 + examples/COUPLE/lammps_mc/in.mc | 7 + examples/COUPLE/lammps_mc/in.mc.server | 36 + .../COUPLE/lammps_mc/log.28Aug18.file.g++.1 | 254 + .../COUPLE/lammps_mc/log.28Aug18.file.g++.4 | 254 + .../COUPLE/lammps_mc/log.28Aug18.zmq.g++.1 | 254 + .../COUPLE/lammps_mc/log.28Aug18.zmq.g++.4 | 254 + examples/COUPLE/lammps_mc/mc.cpp | 263 + examples/COUPLE/lammps_mc/mc.h | 40 + examples/COUPLE/lammps_mc/random_park.cpp | 72 + examples/COUPLE/lammps_mc/random_park.h | 28 + examples/COUPLE/lammps_vasp/INCAR | 53 + examples/COUPLE/lammps_vasp/KPOINTS | 6 + examples/COUPLE/lammps_vasp/POSCAR_W | 11 + examples/COUPLE/lammps_vasp/README | 149 + examples/COUPLE/lammps_vasp/data.W | 15 + examples/COUPLE/lammps_vasp/in.client.W | 34 + examples/COUPLE/lammps_vasp/log.client.output | 76 + examples/COUPLE/lammps_vasp/vasp_wrap.py | 300 + examples/COUPLE/lammps_vasp/vasprun.xml | 12329 ++++++++++++++++ examples/README | 1 + examples/USER/diffraction/BulkNi.in | 5 +- examples/USER/diffraction/Output/BulkNi.in | 35 - examples/message/README | 117 + examples/message/Script.sh | 55 + examples/message/in.message | 29 + examples/message/in.message.client | 41 + examples/message/in.message.server | 29 + examples/message/in.message.tilt | 30 + examples/message/in.message.tilt.client | 42 + examples/message/in.message.tilt.server | 31 + .../log.28Aug18.message.client.file.g++.1 | 79 + .../log.28Aug18.message.client.file.g++.2 | 79 + .../log.28Aug18.message.client.mpione.g++.1 | 79 + .../log.28Aug18.message.client.mpione.g++.2 | 79 + .../log.28Aug18.message.client.mpitwo.g++.1 | 79 + .../log.28Aug18.message.client.mpitwo.g++.2 | 79 + .../log.28Aug18.message.client.zmq.g++.1 | 79 + .../log.28Aug18.message.client.zmq.g++.2 | 79 + examples/message/log.28Aug18.message.g++.1 | 85 + examples/message/log.28Aug18.message.g++.4 | 85 + .../log.28Aug18.message.server.file.g++.1 | 44 + .../log.28Aug18.message.server.file.g++.4 | 44 + .../log.28Aug18.message.server.mpione.g++.1 | 44 + .../log.28Aug18.message.server.mpione.g++.4 | 44 + .../log.28Aug18.message.server.mpitwo.g++.1 | 44 + .../log.28Aug18.message.server.mpitwo.g++.4 | 44 + .../log.28Aug18.message.server.zmq.g++.1 | 44 + .../log.28Aug18.message.server.zmq.g++.4 | 44 + ...g.28Aug18.message.tilt.client.mpione.g++.1 | 130 + ...g.28Aug18.message.tilt.client.mpione.g++.2 | 130 + ...g.28Aug18.message.tilt.client.mpitwo.g++.1 | 130 + ...g.28Aug18.message.tilt.client.mpitwo.g++.2 | 130 + .../log.28Aug18.message.tilt.client.zmq.g++.1 | 130 + .../log.28Aug18.message.tilt.client.zmq.g++.2 | 130 + .../message/log.28Aug18.message.tilt.g++.1 | 129 + .../message/log.28Aug18.message.tilt.g++.4 | 129 + ...g.28Aug18.message.tilt.server.mpione.g++.1 | 48 + ...g.28Aug18.message.tilt.server.mpione.g++.4 | 48 + ...g.28Aug18.message.tilt.server.mpitwo.g++.1 | 48 + ...g.28Aug18.message.tilt.server.mpitwo.g++.4 | 48 + .../log.28Aug18.message.tilt.server.zmq.g++.1 | 48 + .../log.28Aug18.message.tilt.server.zmq.g++.4 | 48 + lib/README | 2 + lib/message/Install.py | 118 + lib/message/Makefile.lammps.nozmq | 5 + lib/message/Makefile.lammps.zmq | 5 + lib/message/README | 51 + lib/message/cslib/LICENSE | 32 + lib/message/cslib/README | 23 + lib/message/cslib/src/Makefile | 107 + lib/message/cslib/src/STUBS_MPI/mpi.h | 96 + lib/message/cslib/src/STUBS_ZMQ/zmq.h | 36 + lib/message/cslib/src/cslib.cpp | 768 + lib/message/cslib/src/cslib.h | 87 + lib/message/cslib/src/cslib.py | 362 + lib/message/cslib/src/cslib_wrap.cpp | 239 + lib/message/cslib/src/cslib_wrap.f90 | 147 + lib/message/cslib/src/cslib_wrap.h | 54 + lib/message/cslib/src/msg.cpp | 110 + lib/message/cslib/src/msg.h | 52 + lib/message/cslib/src/msg_file.cpp | 143 + lib/message/cslib/src/msg_file.h | 40 + lib/message/cslib/src/msg_mpi_one.cpp | 82 + lib/message/cslib/src/msg_mpi_one.h | 38 + lib/message/cslib/src/msg_mpi_two.cpp | 81 + lib/message/cslib/src/msg_mpi_two.h | 35 + lib/message/cslib/src/msg_zmq.cpp | 140 + lib/message/cslib/src/msg_zmq.h | 38 + src/MESSAGE/Install.sh | 67 + src/MESSAGE/fix_client_md.cpp | 325 + src/MESSAGE/fix_client_md.h | 65 + src/MESSAGE/message.cpp | 90 + src/MESSAGE/message.h | 40 + src/MESSAGE/server.cpp | 50 + src/MESSAGE/server.h | 40 + src/MESSAGE/server_mc.cpp | 148 + src/MESSAGE/server_mc.h | 29 + src/MESSAGE/server_md.cpp | 389 + src/MESSAGE/server_md.h | 38 + src/Makefile | 6 +- src/USER-MISC/pair_morse_smooth_linear.cpp | 17 +- src/atom.cpp | 3 +- src/domain.cpp | 13 +- src/domain.h | 5 +- src/fix_tmd.cpp | 2 +- src/lammps.cpp | 231 +- src/lammps.h | 4 + src/library.cpp | 3 +- src/version.h | 2 +- 133 files changed, 22782 insertions(+), 172 deletions(-) create mode 100644 cmake/FindLAMMPS.cmake.in create mode 100644 cmake/Modules/FindZMQ.cmake create mode 100644 doc/src/Howto_client_server.txt create mode 100644 doc/src/fix_client_md.txt create mode 100644 doc/src/message.txt create mode 100644 doc/src/server.txt create mode 100644 doc/src/server_mc.txt create mode 100644 doc/src/server_md.txt create mode 100644 examples/COUPLE/lammps_mc/Makefile create mode 100644 examples/COUPLE/lammps_mc/README create mode 100644 examples/COUPLE/lammps_mc/in.mc create mode 100644 examples/COUPLE/lammps_mc/in.mc.server create mode 100644 examples/COUPLE/lammps_mc/log.28Aug18.file.g++.1 create mode 100644 examples/COUPLE/lammps_mc/log.28Aug18.file.g++.4 create mode 100644 examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.1 create mode 100644 examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.4 create mode 100644 examples/COUPLE/lammps_mc/mc.cpp create mode 100644 examples/COUPLE/lammps_mc/mc.h create mode 100644 examples/COUPLE/lammps_mc/random_park.cpp create mode 100644 examples/COUPLE/lammps_mc/random_park.h create mode 100644 examples/COUPLE/lammps_vasp/INCAR create mode 100644 examples/COUPLE/lammps_vasp/KPOINTS create mode 100644 examples/COUPLE/lammps_vasp/POSCAR_W create mode 100644 examples/COUPLE/lammps_vasp/README create mode 100644 examples/COUPLE/lammps_vasp/data.W create mode 100644 examples/COUPLE/lammps_vasp/in.client.W create mode 100644 examples/COUPLE/lammps_vasp/log.client.output create mode 100644 examples/COUPLE/lammps_vasp/vasp_wrap.py create mode 100644 examples/COUPLE/lammps_vasp/vasprun.xml delete mode 100644 examples/USER/diffraction/Output/BulkNi.in create mode 100644 examples/message/README create mode 100644 examples/message/Script.sh create mode 100644 examples/message/in.message create mode 100644 examples/message/in.message.client create mode 100644 examples/message/in.message.server create mode 100644 examples/message/in.message.tilt create mode 100644 examples/message/in.message.tilt.client create mode 100644 examples/message/in.message.tilt.server create mode 100644 examples/message/log.28Aug18.message.client.file.g++.1 create mode 100644 examples/message/log.28Aug18.message.client.file.g++.2 create mode 100644 examples/message/log.28Aug18.message.client.mpione.g++.1 create mode 100644 examples/message/log.28Aug18.message.client.mpione.g++.2 create mode 100644 examples/message/log.28Aug18.message.client.mpitwo.g++.1 create mode 100644 examples/message/log.28Aug18.message.client.mpitwo.g++.2 create mode 100644 examples/message/log.28Aug18.message.client.zmq.g++.1 create mode 100644 examples/message/log.28Aug18.message.client.zmq.g++.2 create mode 100644 examples/message/log.28Aug18.message.g++.1 create mode 100644 examples/message/log.28Aug18.message.g++.4 create mode 100644 examples/message/log.28Aug18.message.server.file.g++.1 create mode 100644 examples/message/log.28Aug18.message.server.file.g++.4 create mode 100644 examples/message/log.28Aug18.message.server.mpione.g++.1 create mode 100644 examples/message/log.28Aug18.message.server.mpione.g++.4 create mode 100644 examples/message/log.28Aug18.message.server.mpitwo.g++.1 create mode 100644 examples/message/log.28Aug18.message.server.mpitwo.g++.4 create mode 100644 examples/message/log.28Aug18.message.server.zmq.g++.1 create mode 100644 examples/message/log.28Aug18.message.server.zmq.g++.4 create mode 100644 examples/message/log.28Aug18.message.tilt.client.mpione.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.client.mpione.g++.2 create mode 100644 examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.2 create mode 100644 examples/message/log.28Aug18.message.tilt.client.zmq.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.client.zmq.g++.2 create mode 100644 examples/message/log.28Aug18.message.tilt.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.g++.4 create mode 100644 examples/message/log.28Aug18.message.tilt.server.mpione.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.server.mpione.g++.4 create mode 100644 examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.4 create mode 100644 examples/message/log.28Aug18.message.tilt.server.zmq.g++.1 create mode 100644 examples/message/log.28Aug18.message.tilt.server.zmq.g++.4 create mode 100644 lib/message/Install.py create mode 100644 lib/message/Makefile.lammps.nozmq create mode 100644 lib/message/Makefile.lammps.zmq create mode 100644 lib/message/README create mode 100644 lib/message/cslib/LICENSE create mode 100644 lib/message/cslib/README create mode 100644 lib/message/cslib/src/Makefile create mode 100644 lib/message/cslib/src/STUBS_MPI/mpi.h create mode 100644 lib/message/cslib/src/STUBS_ZMQ/zmq.h create mode 100644 lib/message/cslib/src/cslib.cpp create mode 100644 lib/message/cslib/src/cslib.h create mode 100644 lib/message/cslib/src/cslib.py create mode 100644 lib/message/cslib/src/cslib_wrap.cpp create mode 100644 lib/message/cslib/src/cslib_wrap.f90 create mode 100644 lib/message/cslib/src/cslib_wrap.h create mode 100644 lib/message/cslib/src/msg.cpp create mode 100644 lib/message/cslib/src/msg.h create mode 100644 lib/message/cslib/src/msg_file.cpp create mode 100644 lib/message/cslib/src/msg_file.h create mode 100644 lib/message/cslib/src/msg_mpi_one.cpp create mode 100644 lib/message/cslib/src/msg_mpi_one.h create mode 100644 lib/message/cslib/src/msg_mpi_two.cpp create mode 100644 lib/message/cslib/src/msg_mpi_two.h create mode 100644 lib/message/cslib/src/msg_zmq.cpp create mode 100644 lib/message/cslib/src/msg_zmq.h create mode 100644 src/MESSAGE/Install.sh create mode 100644 src/MESSAGE/fix_client_md.cpp create mode 100644 src/MESSAGE/fix_client_md.h create mode 100644 src/MESSAGE/message.cpp create mode 100644 src/MESSAGE/message.h create mode 100644 src/MESSAGE/server.cpp create mode 100644 src/MESSAGE/server.h create mode 100644 src/MESSAGE/server_mc.cpp create mode 100644 src/MESSAGE/server_mc.h create mode 100644 src/MESSAGE/server_md.cpp create mode 100644 src/MESSAGE/server_md.h diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3ef3e8d7f4..0d4bab29f1 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -43,6 +43,29 @@ function(validate_option name values) endif() endfunction(validate_option) +function(get_lammps_version version_header variable) + file(READ ${version_header} line) + set(MONTHS x Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec) + string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\1" day "${line}") + string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\2" month "${line}") + string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\3" year "${line}") + string(STRIP ${day} day) + string(STRIP ${month} month) + string(STRIP ${year} year) + list(FIND MONTHS "${month}" month) + string(LENGTH ${day} day_length) + string(LENGTH ${month} month_length) + if(day_length EQUAL 1) + set(day "0${day}") + endif() + if(month_length EQUAL 1) + set(month "0${month}") + endif() + set(${variable} "${year}${month}${day}" PARENT_SCOPE) +endfunction() + +get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h LAMMPS_VERSION) + # Cmake modules/macros are in a subdirectory to keep this file cleaner set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules) @@ -121,10 +144,10 @@ if(BUILD_LIB) if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg set(CMAKE_POSITION_INDEPENDENT_CODE ON) endif() - set(LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file") - mark_as_advanced(LIB_SUFFIX) - if(LIB_SUFFIX) - set(LIB_SUFFIX "_${LIB_SUFFIX}") + set(LAMMPS_LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file") + mark_as_advanced(LAMMPS_LIB_SUFFIX) + if(LAMMPS_LIB_SUFFIX) + set(LAMMPS_LIB_SUFFIX "_${LAMMPS_LIB_SUFFIX}") endif() endif() @@ -188,7 +211,7 @@ if(ENABLE_TESTING) endif(ENABLE_TESTING) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR - KSPACE MANYBODY MC MEAM MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP + KSPACE MANYBODY MC MEAM MESSAGE MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC @@ -481,6 +504,39 @@ if(PKG_KIM) include_directories(${KIM_INCLUDE_DIRS}) endif() +if(PKG_MESSAGE) + option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF) + file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F + ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp) + + if(BUILD_SHARED_LIBS) + add_library(cslib SHARED ${cslib_SOURCES}) + else() + add_library(cslib STATIC ${cslib_SOURCES}) + endif() + + if(BUILD_MPI) + target_compile_definitions(cslib PRIVATE -DMPI_YES) + set_target_properties(cslib PROPERTIES OUTPUT_NAME "csmpi") + else() + target_compile_definitions(cslib PRIVATE -DMPI_NO) + set_target_properties(cslib PROPERTIES OUTPUT_NAME "csnompi") + endif() + + if(MESSAGE_ZMQ) + target_compile_definitions(cslib PRIVATE -DZMQ_YES) + find_package(ZMQ REQUIRED) + target_include_directories(cslib PRIVATE ${ZMQ_INCLUDE_DIRS}) + target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES}) + else() + target_compile_definitions(cslib PRIVATE -DZMQ_NO) + target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ) + endif() + + list(APPEND LAMMPS_LINK_LIBS cslib) + include_directories(${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src) +endif() + if(PKG_MSCG) find_package(GSL REQUIRED) option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF) @@ -1040,14 +1096,14 @@ if(BUILD_LIB) if(LAMMPS_DEPS) add_dependencies(lammps ${LAMMPS_DEPS}) endif() - set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LIB_SUFFIX}) - if(BUILD_SHARED_LIBS) - set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) - install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) - configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - endif() + set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_LIB_SUFFIX}) + set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) + install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) + configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + configure_file(FindLAMMPS.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/Module) else() list(APPEND LMP_SOURCES ${LIB_SOURCES}) endif() @@ -1177,7 +1233,7 @@ endif() ############################################################################### # Print package summary ############################################################################### -foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES}) +foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES}) if(PKG_${PKG}) message(STATUS "Building package: ${PKG}") endif() diff --git a/cmake/FindLAMMPS.cmake.in b/cmake/FindLAMMPS.cmake.in new file mode 100644 index 0000000000..586df83c2d --- /dev/null +++ b/cmake/FindLAMMPS.cmake.in @@ -0,0 +1,48 @@ +# - Find liblammps +# Find the native liblammps headers and libraries. +# +# The following variables will set: +# LAMMPS_INCLUDE_DIRS - where to find lammps/library.h, etc. +# LAMMPS_LIBRARIES - List of libraries when using lammps. +# LAMMPS_API_DEFINES - lammps library api defines +# LAMMPS_VERSION - lammps library version +# LAMMPS_FOUND - True if liblammps found. +# +# In addition a LAMMPS::LAMMPS imported target is getting created. +# +# 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. +# + +find_package(PkgConfig) + +pkg_check_modules(PC_LAMMPS liblammps@LAMMPS_LIB_SUFFIX@) +find_path(LAMMPS_INCLUDE_DIR lammps/library.h HINTS ${PC_LAMMPS_INCLUDE_DIRS} @CMAKE_INSTALL_FULL_INCLUDEDIR@) + +set(LAMMPS_VERSION @LAMMPS_VERSION@) +set(LAMMPS_API_DEFINES @LAMMPS_API_DEFINES@) + +find_library(LAMMPS_LIBRARY NAMES lammps@LAMMPS_LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@) + +set(LAMMPS_INCLUDE_DIRS "${LAMMPS_INCLUDE_DIR}") +set(LAMMPS_LIBRARIES "${LAMMPS_LIBRARY}") + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set LAMMPS_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(LAMMPS REQUIRED_VARS LAMMPS_LIBRARY LAMMPS_INCLUDE_DIR VERSION_VAR LAMMPS_VERSION) + +mark_as_advanced(LAMMPS_INCLUDE_DIR LAMMPS_LIBRARY) + +if(LAMMPS_FOUND AND NOT TARGET LAMMPS::LAMMPS) + add_library(LAMMPS::LAMMPS UNKNOWN IMPORTED) + set_target_properties(LAMMPS::LAMMPS PROPERTIES IMPORTED_LOCATION "${LAMMPS_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${LAMMPS_INCLUDE_DIR}" INTERFACE_COMPILE_DEFINITIONS "${LAMMPS_API_DEFINES}") +endif() diff --git a/cmake/Modules/FindZMQ.cmake b/cmake/Modules/FindZMQ.cmake new file mode 100644 index 0000000000..608ccda777 --- /dev/null +++ b/cmake/Modules/FindZMQ.cmake @@ -0,0 +1,8 @@ +find_path(ZMQ_INCLUDE_DIR zmq.h) +find_library(ZMQ_LIBRARY NAMES zmq) + +set(ZMQ_LIBRARIES ${ZMQ_LIBRARY}) +set(ZMQ_INCLUDE_DIRS ${ZMQ_INCLUDE_DIR}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(ZMQ DEFAULT_MSG ZMQ_LIBRARY ZMQ_INCLUDE_DIR) diff --git a/cmake/pkgconfig/liblammps.pc.in b/cmake/pkgconfig/liblammps.pc.in index 400b7593cf..7850972f3b 100644 --- a/cmake/pkgconfig/liblammps.pc.in +++ b/cmake/pkgconfig/liblammps.pc.in @@ -4,15 +4,15 @@ # after you added @CMAKE_INSTALL_FULL_LIBDIR@/pkg-config to PKG_CONFIG_PATH, # e.g. export PKG_CONFIG_PATH=@CMAKE_INSTALL_FULL_LIBDIR@/pkgconfig -prefix=@CMAKE_INSTALL_FULL_PREFIX@ +prefix=@CMAKE_INSTALL_PREFIX@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ Name: liblammps@LAMMPS_MACHINE@ Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library URL: http://lammps.sandia.gov -Version: +Version: @LAMMPS_VERSION@ Requires: -Libs: -L${libdir} -llammps@LIB_SUFFIX@@ +Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@ Libs.private: -lm Cflags: -I${includedir} @LAMMPS_API_DEFINES@ diff --git a/doc/src/Build_extras.txt b/doc/src/Build_extras.txt index 088ffd8972..1e3744b7fb 100644 --- a/doc/src/Build_extras.txt +++ b/doc/src/Build_extras.txt @@ -31,6 +31,7 @@ This is the list of packages that may require additional steps. "KOKKOS"_#kokkos, "LATTE"_#latte, "MEAM"_#meam, +"MESSAGE"_#message, "MSCG"_#mscg, "OPT"_#opt, "POEMS"_#poems, @@ -361,6 +362,10 @@ make lib-meam args="-m mpi" # build with default Fortran compiler compatible make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran) make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre +NOTE: You should test building the MEAM library with both the Intel +and GNU compilers to see if a simulation runs faster with one versus +the other on your system. + The build should produce two files: lib/meam/libmeam.a and lib/meam/Makefile.lammps. The latter is copied from an existing Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with @@ -373,6 +378,35 @@ file. :line +MESSAGE package :h4,link(message) + +This package can optionally include support for messaging via sockets, +using the open-source "ZeroMQ library"_http://zeromq.org, which must +be installed on your system. + +[CMake build]: + +-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes + +[Traditional make]: + +Before building LAMMPS, you must build the CSlib library in +lib/message. You can build the CSlib library manually if you prefer; +follow the instructions in lib/message/README. You can also do it in +one step from the lammps/src dir, using a command like these, which +simply invoke the lib/message/Install.py script with the specified args: + +make lib-message # print help message +make lib-message args="-m -z" # build with MPI and socket (ZMQ) support +make lib-message args="-s" # build as serial lib with no ZMQ support + +The build should produce two files: lib/message/cslib/src/libmessage.a +and lib/message/Makefile.lammps. The latter is copied from an +existing Makefile.lammps.* and has settings to link with the ZeroMQ +library if requested in the build. + +:line + MSCG package :h4,link(mscg) To build with this package, you must download and build the MS-CG diff --git a/doc/src/Build_package.txt b/doc/src/Build_package.txt index 4f71e9eb18..aaa340f302 100644 --- a/doc/src/Build_package.txt +++ b/doc/src/Build_package.txt @@ -42,6 +42,7 @@ packages: "KOKKOS"_Build_extras.html#kokkos, "LATTE"_Build_extras.html#latte, "MEAM"_Build_extras.html#meam, +"MESSAGE"_#Build_extras.html#message, "MSCG"_Build_extras.html#mscg, "OPT"_Build_extras.html#opt, "POEMS"_Build_extras.html#poems, diff --git a/doc/src/Commands_all.txt b/doc/src/Commands_all.txt index aec5a9db8b..6f54681342 100644 --- a/doc/src/Commands_all.txt +++ b/doc/src/Commands_all.txt @@ -71,6 +71,7 @@ An alphabetic list of all LAMMPS commands. "lattice"_lattice.html, "log"_log.html, "mass"_mass.html, +"message"_message.html, "minimize"_minimize.html, "min_modify"_min_modify.html, "min_style"_min_style.html, @@ -103,6 +104,7 @@ An alphabetic list of all LAMMPS commands. "restart"_restart.html, "run"_run.html, "run_style"_run_style.html, +"server"_server.html, "set"_set.html, "shell"_shell.html, "special_bonds"_special_bonds.html, diff --git a/doc/src/Howto.txt b/doc/src/Howto.txt index 438ea561a1..730b492699 100644 --- a/doc/src/Howto.txt +++ b/doc/src/Howto.txt @@ -54,6 +54,7 @@ General howto :h3 Howto_replica Howto_library Howto_couple + Howto_client_server END_RST --> @@ -64,7 +65,8 @@ END_RST --> "Run multiple simulations from one input script"_Howto_multiple.html "Multi-replica simulations"_Howto_replica.html "Library interface to LAMMPS"_Howto_library.html -"Couple LAMMPS to other codes"_Howto_couple.html :all(b) +"Couple LAMMPS to other codes"_Howto_couple.html +"Using LAMMPS in client/server mode"_Howto_client_server.html :all(b) diff --git a/doc/src/Howto_client_server.txt b/doc/src/Howto_client_server.txt new file mode 100644 index 0000000000..714c23f066 --- /dev/null +++ b/doc/src/Howto_client_server.txt @@ -0,0 +1,131 @@ +"Higher level section"_Howto.html - "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 + +Using LAMMPS in client/server mode + +Client/server coupling of two codes is where one code is the "client" +and sends request messages to a "server" code. The server responds to +each request with a reply message. This enables the two codes to work +in tandem to perform a simulation. LAMMPS can act as either a client +or server code. + +Some advantages of client/server coupling are that the two codes run +as stand-alone executables; they are not linked together. Thus +neither code needs to have a library interface. This often makes it +easier to run the two codes on different numbers of processors. If a +message protocol (format and content) is defined for a particular kind +of simulation, then in principle any code that implements the +client-side protocol can be used in tandem with any code that +implements the server-side protocol, without the two codes needing to +know anything more specific about each other. + +A simple example of client/server coupling is where LAMMPS is the +client code performing MD timestepping. Each timestep it sends a +message to a server quantum code containing current coords of all the +atoms. The quantum code computes energy and forces based on the +coords. It returns them as a message to LAMMPS, which completes the +timestep. + +Alternate methods for code coupling with LAMMPS are described on +the "Howto couple"_Howto_couple.html doc page. + +LAMMPS support for client/server coupling is in its "MESSAGE +package"_Packages_details.html#PKG-MESSAGE which implements several +commands that enable LAMMPS to act as a client or server, as discussed +below. The MESSAGE package also wraps a client/server library called +CSlib which enables two codes to exchange messages in different ways, +either via files, sockets, or MPI. The CSlib is provided with LAMMPS +in the lib/message dir. The CSlib has its own +"website"_http://cslib.sandia.gov with documentation and test +programs. + +NOTE: For client/server coupling to work between LAMMPS and another +code, the other code also has to use the CSlib. This can sometimes be +done without any modifications to the other code by simply wrapping it +with a Python script that exchanges CSlib messages with LAMMPS and +prepares input for or processes output from the other code. The other +code also has to implement a matching protocol for the format and +content of messages that LAMMPS exchanges with it. + +These are the commands currently in the MESSAGE package for two +protocols, MD and MC (Monte Carlo). New protocols can easily be +defined and added to this directory, where LAMMPS acts as either the +client or server. + +"message"_message.html +"fix client md"_fix_client_md.html = LAMMPS is a client for running MD +"server md"_server_md.html = LAMMPS is a server for computing MD forces +"server mc"_server_mc.html = LAMMPS is a server for computing a Monte Carlo energy + +The server doc files give details of the message protocols +for data that is exchanged bewteen the client and server. + +These example directories illustrate how to use LAMMPS as either a +client or server code: + +examples/message +examples/COUPLE/README +examples/COUPLE/lammps_mc +examples/COUPLE/lammps_vasp :ul + +The examples/message dir couples a client instance of LAMMPS to a +server instance of LAMMPS. + +The lammps_mc dir shows how to couple LAMMPS as a server to a simple +Monte Carlo client code as the driver. + +The lammps_vasp dir shows how to couple LAMMPS as a client code +running MD timestepping to VASP acting as a server providing quantum +DFT forces, thru a Python wrapper script on VASP. + +Here is how to launch a client and server code together for any of the +4 modes of message exchange that the "message"_message.html command +and the CSlib support. Here LAMMPS is used as both the client and +server code. Another code could be subsitituted for either. + +The examples below show launching both codes from the same window (or +batch script), using the "&" character to launch the first code in the +background. For all modes except {mpi/one}, you could also launch the +codes in separate windows on your desktop machine. It does not +matter whether you launch the client or server first. + +In these examples either code can be run on one or more processors. +If running in a non-MPI mode (file or zmq) you can launch a code on a +single processor without using mpirun. + +IMPORTANT: If you run in mpi/two mode, you must launch both codes via +mpirun, even if one or both of them runs on a single processor. This +is so that MPI can figure out how to connect both MPI processes +together to exchange MPI messages between them. + +For message exchange in {file}, {zmq}, or {mpi/two} modes: + +% mpirun -np 1 lmp_mpi -log log.client < in.client & +% mpirun -np 2 lmp_mpi -log log.server < in.server :pre + +% mpirun -np 4 lmp_mpi -log log.client < in.client & +% mpirun -np 1 lmp_mpi -log log.server < in.server :pre + +% mpirun -np 2 lmp_mpi -log log.client < in.client & +% mpirun -np 4 lmp_mpi -log log.server < in.server :pre + +For message exchange in {mpi/one} mode: + +Launch both codes in a single mpirun command: + +mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -log log.server + +The two -np values determine how many procs the client and the server +run on. + +A LAMMPS executable run in this manner must use the -mpicolor color +command-line option as their its option, where color is an integer +label that will be used to distinguish one executable from another in +the multiple executables that the mpirun command launches. In this +example the client was colored with a 0, and the server with a 1. diff --git a/doc/src/Howto_couple.txt b/doc/src/Howto_couple.txt index d7b4924d8c..0214db1ece 100644 --- a/doc/src/Howto_couple.txt +++ b/doc/src/Howto_couple.txt @@ -16,10 +16,12 @@ atoms and pass those forces to LAMMPS. Or a continuum finite element nodal points, compute a FE solution, and return interpolated forces on MD atoms. -LAMMPS can be coupled to other codes in at least 3 ways. Each has +LAMMPS can be coupled to other codes in at least 4 ways. Each has advantages and disadvantages, which you'll have to think about in the context of your application. +:line + (1) Define a new "fix"_fix.html command that calls the other code. In this scenario, LAMMPS is the driver code. During its timestepping, the fix is invoked, and can make library calls to the other code, @@ -32,6 +34,8 @@ LAMMPS. :link(poems,http://www.rpi.edu/~anderk5/lab) +:line + (2) Define a new LAMMPS command that calls the other code. This is conceptually similar to method (1), but in this case LAMMPS and the other code are on a more equal footing. Note that now the other code @@ -52,6 +56,8 @@ command writes and reads. See the "Modify command"_Modify_command.html doc page for info on how to add a new command to LAMMPS. +:line + (3) Use LAMMPS as a library called by another code. In this case the other code is the driver and calls LAMMPS as needed. Or a wrapper code could link and call both LAMMPS and another code as libraries. @@ -102,3 +108,9 @@ on all the processors. Or it might allocate half the processors to LAMMPS and half to the other code and run both codes simultaneously before syncing them up periodically. Or it might instantiate multiple instances of LAMMPS to perform different calculations. + +:line + +(4) Couple LAMMPS with another code in a client/server mode. This is +described on the "Howto client/server"_Howto_client_server.html doc +page. diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index ad3e66a4b2..e442aa1808 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ LAMMPS Users Manual - + @@ -21,7 +21,7 @@ :line LAMMPS Documentation :c,h1 -22 Aug 2018 version :c,h2 +31 Aug 2018 version :c,h2 "What is a LAMMPS version?"_Manual_version.html diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 381dc2e995..a4ed1e3ff4 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -549,10 +549,6 @@ This package has "specific installation instructions"_Build_extras.html#gpu on the "Build extras"_Build_extras.html doc page. -NOTE: You should test building the MEAM library with both the Intel -and GNU compilers to see if a simulation runs faster with one versus -the other on your system. - [Supporting info:] src/MEAM: filenames -> commands @@ -563,6 +559,31 @@ examples/meam :ul :line +MESSAGE package :link(PKG-MESSAGE),h4 + +[Contents:] + +Commands to use LAMMPS as either a client or server and couple it to +another application. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#message on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/MESSAGE: filenames -> commands +lib/message/README +"message"_message.html +"fix client/md"_fix_client_md.html +"server md"_server_md.html +"server mc"_server_mc.html +examples/message :ul + +:line + MISC package :link(PKG-MISC),h4 [Contents:] diff --git a/doc/src/Packages_standard.txt b/doc/src/Packages_standard.txt index 2feb4e142d..583ecf39fe 100644 --- a/doc/src/Packages_standard.txt +++ b/doc/src/Packages_standard.txt @@ -47,6 +47,7 @@ Package, Description, Doc page, Example, Library "MANYBODY"_Packages_details.html#PKG-MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, no "MC"_Packages_details.html#PKG-MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, n/a, no "MEAM"_Packages_details.html#PKG-MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int +"MESSAGE"_Packages_details.html#PKG-MESSAGE, client/server messaging, "message"_message.html, message, int "MISC"_Packages_details.html#PKG-MISC, miscellaneous single-file commands, n/a, no, no "MOLECULE"_Packages_details.html#PKG-MOLECULE, molecular system force fields, "Howto bioFF"_Howto_bioFF.html, peptide, no "MPIIO"_Packages_details.html#PKG-MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, n/a, no diff --git a/doc/src/Run_options.txt b/doc/src/Run_options.txt index 9c862d7b8e..27f436ed55 100644 --- a/doc/src/Run_options.txt +++ b/doc/src/Run_options.txt @@ -18,6 +18,7 @@ letter abbreviation can be used: "-i or -in"_#file "-k or -kokkos"_#run-kokkos "-l or -log"_#log +"-m or -mpicolor"_#mpicolor "-nc or -nocite"_#nocite "-pk or -package"_#package "-p or -partition"_#partition @@ -175,6 +176,30 @@ Option -plog will override the name of the partition log files file.N. :line +[-mpicolor] color :link(mpi) + +If used, this must be the first command-line argument after the LAMMPS +executable name. It is only used when LAMMPS is launched by an mpirun +command which also launches another executable(s) at the same time. +(The other executable could be LAMMPS as well.) The color is an +integer value which should be different for each executable (another +application may set this value in a different way). LAMMPS and the +other executable(s) perform an MPI_Comm_split() with their own colors +to shrink the MPI_COMM_WORLD communication to be the subset of +processors they are actually running on. + +Currently, this is only used in LAMMPS to perform client/server +messaging with another application. LAMMPS can act as either a client +or server (or both). More details are given on the "Howto +client/server"_Howto_client_server.html doc page. + +Specifically, this refers to the "mpi/one" mode of messaging provided +by the "message"_message.html command and the CSlib library LAMMPS +links with from the lib/message directory. See the +"message"_message.html command for more details. + +:line + [-nocite] :link(nocite) Disable writing the log.cite file which is normally written to list diff --git a/doc/src/commands_list.txt b/doc/src/commands_list.txt index 62b973e3a4..8fae57a718 100644 --- a/doc/src/commands_list.txt +++ b/doc/src/commands_list.txt @@ -56,6 +56,7 @@ Commands :h1 lattice log mass + message min_modify min_style minimize @@ -87,6 +88,7 @@ Commands :h1 restart run run_style + server set shell special_bonds diff --git a/doc/src/fix_client_md.txt b/doc/src/fix_client_md.txt new file mode 100644 index 0000000000..5b62d5617d --- /dev/null +++ b/doc/src/fix_client_md.txt @@ -0,0 +1,106 @@ +"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 + +fix client/md command :h3 + +[Syntax:] + +fix ID group-ID client/md :pre + +ID, group-ID are documented in "fix"_fix.html command +client/md = style name of this fix command :ul + +[Examples:] + +fix 1 all client/md :pre + +[Description:] + +This fix style enables LAMMPS to run as a "client" code and +communicate each timestep with a separate "server" code to perform an +MD simulation together. + +The "Howto client/server"_Howto_client_server.html doc page gives an +overview of client/server coupling of LAMMPS with another code where +one code is the "client" and sends request messages to a "server" +code. The server responds to each request with a reply message. This +enables the two codes to work in tandem to perform a simulation. + +When using this fix, LAMMPS (as the client code) passes the current +coordinates of all particles to the server code each timestep, which +computes their interaction, and returns the energy, forces, and virial +for the interacting particles to LAMMPS, so it can complete the +timestep. + +The server code could be a quantum code, or another classical MD code +which encodes a force field (pair_style in LAMMPS lingo) which LAMMPS +does not have. In the quantum case, this fix is a mechanism for +running {ab initio} MD with quantum forces. + +The group associated with this fix is ignored. + +The protocol and "units"_units.html for message format and content +that LAMMPS exchanges with the server code is defined on the "server +md"_server_md.html doc page. + +Note that when using LAMMPS as an MD client, your LAMMPS input script +should not normally contain force field commands, like a +"pair_style"_doc/pair_style.html, "bond_style"_doc/bond_style.html, or +"kspace_style"_kspace_style.html commmand. However it is possible for +a server code to only compute a portion of the full force-field, while +LAMMPS computes the remaining part. Your LAMMPS script can also +specify boundary conditions or force constraints in the usual way, +which will be added to the per-atom forces returned by the server +code. + +See the examples/message dir for example scripts where LAMMPS is both +the "client" and/or "server" code for this kind of client/server MD +simulation. The examples/message/README file explains how to launch +LAMMPS and another code in tandem to perform a coupled simulation. + +:line + +[Restart, fix_modify, output, run start/stop, minimize info:] + +No information about this fix is written to "binary restart +files"_restart.html. + +The "fix_modify"_fix_modify.html {energy} option is supported by this +fix to add the potential energy computed by the server application to +the system's potential energy as part of "thermodynamic +output"_thermo_style.html. + +The "fix_modify"_fix_modify.html {virial} option is supported by this +fix to add the server application's contribution to the system's +virial as part of "thermodynamic output"_thermo_style.html. The +default is {virial yes} + +This fix computes a global scalar which can be accessed by various +"output commands"_Howto_output.html. The scalar is the potential +energy discussed above. The scalar value calculated by this fix is +"extensive". + +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. + +[Restrictions:] + +This fix is part of the MESSAGE package. It is only enabled if LAMMPS +was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +A script that uses this command must also use the +"message"_message.html command to setup the messaging protocol with +the other server code. + +[Related commands:] + +"message"_message.html, "server"_server.html + +[Default:] none diff --git a/doc/src/lammps.book b/doc/src/lammps.book index c296ff4039..72a07945e7 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -167,6 +167,7 @@ label.html lattice.html log.html mass.html +message.html min_modify.html min_style.html minimize.html @@ -194,6 +195,9 @@ reset_timestep.html restart.html run.html run_style.html +server.html +server_mc.html +server_md.html set.html shell.html special_bonds.html @@ -241,6 +245,7 @@ fix_bond_create.html fix_bond_react.html fix_bond_swap.html fix_box_relax.html +fix_client_md.html fix_cmap.html fix_colvars.html fix_controller.html diff --git a/doc/src/message.txt b/doc/src/message.txt new file mode 100644 index 0000000000..cca1a5b369 --- /dev/null +++ b/doc/src/message.txt @@ -0,0 +1,162 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Command_all.html) + +:line + +message command :h3 + +[Syntax:] + +message which protocol mode arg :pre + +which = {client} or {server} :ulb,l +protocol = {md} or {mc} :l +mode = {file} or {zmq} or {mpi/one} or {mpi/two} :l + {file} arg = filename + filename = file used for message exchanges + {zmq} arg = socket-ID + socket-ID for client = localhost:5555, see description below + socket-ID for server = *:5555, see description below + {mpi/one} arg = none + {mpi/two} arg = filename + filename = file used to establish communication bewteen 2 MPI jobs :pre +:ule + +[Examples:] + +message client md file tmp.couple +message server md file tmp.couple :pre + +message client md zmq localhost:5555 +message server md zmq *:5555 :pre + +message client md mpi/one +message server md mpi/one :pre + +message client md mpi/two tmp.couple +message server md mpi/two tmp.couple :pre + +[Description:] + +Establish a messaging protocol between LAMMPS and another code for the +purpose of client/server coupling. + +The "Howto client/server"_Howto_client_server.html doc page gives an +overview of client/server coupling of LAMMPS with another code where +one code is the "client" and sends request messages to a "server" +code. The server responds to each request with a reply message. This +enables the two codes to work in tandem to perform a simulation. + +:line + +The {which} argument defines LAMMPS to be the client or the server. + +:line + +The {protocol} argument defines the format and content of messages +that will be exchanged between the two codes. The current options +are: + +md = run dynamics with another code +mc = perform Monte Carlo moves with another code :ul + +For protocol {md}, LAMMPS can be either a client or server. See the +"server md"_server_md.html doc page for details on the protocol. + +For protocol {mc}, LAMMPS can be the server. See the "server +mc"_server_mc.html doc page for details on the protocol. + +:line + +The {mode} argument specifies how messages are exchanged between the +client and server codes. Both codes must use the same mode and use +consistent parameters. + +For mode {file}, the 2 codes communicate via binary files. They must +use the same filename, which is actually a file prefix. Several files +with that prefix will be created and deleted as a simulation runs. +The filename can include a path. Both codes must be able to access +the path/file in a common filesystem. + +For mode {zmq}, the 2 codes communicate via a socket on the server +code's machine. Support for socket messaging is provided by the +open-source "ZeroMQ library"_http://zeromq.org, which must be +installed on your system. The client specifies an IP address (IPv4 +format) or the DNS name of the machine the server code is running on, +followed by a 4-digit port ID for the socket, separated by a colon. +E.g. + +localhost:5555 # client and server running on same machine +192.168.1.1:5555 # server is 192.168.1.1 +deptbox.uni.edu:5555 # server is deptbox.uni.edu :pre + +The server specifes "*:5555" where "*" represents all available +interfaces on the server's machine, and the port ID must match +what the client specifies. + +NOTE: What are allowed port IDs? + +NOTE: Additional explanation is needed here about how to use the {zmq} +mode on a parallel machine, e.g. a cluster with many nodes. + +For mode {mpi/one}, the 2 codes communicate via MPI and are launched +by the same mpirun command, e.g. with this syntax for OpenMPI: + +mpirun -np 2 lmp_mpi -mpicolor 0 -in in.client -log log.client : -np 4 othercode args # LAMMPS is client +mpirun -np 2 othercode args : -np 4 lmp_mpi -mpicolor 1 -in in.server # LAMMPS is server :pre + +Note the use of the "-mpicolor color" command-line argument with +LAMMPS. See the "command-line args"_Run_options.html doc page for +further explanation. + +For mode {mpi/two}, the 2 codes communicate via MPI, but are launched +be 2 separate mpirun commands. The specified {filename} argument is a +file the 2 MPI processes will use to exchange info so that an MPI +inter-communicator can be established to enable the 2 codes to send +MPI messages to each other. Both codes must be able to access the +path/file in a common filesystem. + +:line + +Normally, the message command should be used at the top of a LAMMPS +input script. It performs an initial handshake with the other code to +setup messaging and to verify that both codes are using the same +message protocol and mode. Assuming both codes are launched at +(nearly) the same time, the other code should perform the same kind of +initialization. + +If LAMMPS is the client code, it will begin sending messages when a +LAMMPS client command begins its operation. E.g. for the "fix +client/md"_fix_client_md.html command, it is when a "run"_run.html +command is executed. + +If LAMMPS is the server code, it will begin receiving messages when +the "server"_server.html command is invoked. + +A fix client command will terminate its messaging with the server when +LAMMPS ends, or the fix is deleted via the "unfix"_unfix command. The +server command will terminate its messaging with the client when the +client signals it. Then the remainder of the LAMMPS input script will +be processed. + +If both codes do something similar, this means a new round of +client/server messaging can be initiated after termination by re-using +a 2nd message command in your LAMMPS input script, followed by a new +fix client or server command. + +:line + +[Restrictions:] + +This command is part of the MESSAGE package. It is only enabled if +LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +[Related commands:] + +"server"_server.html, "fix client/md"_fix_client_md.html + +[Default:] none diff --git a/doc/src/server.txt b/doc/src/server.txt new file mode 100644 index 0000000000..86fb68d012 --- /dev/null +++ b/doc/src/server.txt @@ -0,0 +1,71 @@ +"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 + +server command :h3 + +[Syntax:] + +server protocol :pre + +protocol = {md} or {mc} :ul + +[Examples:] + +server md :pre + +[Description:] + +This command starts LAMMPS running in "server" mode, where it receives +messages from a separate "client" code and responds by sending a reply +message back to the client. The specified {protocol} determines the +format and content of messages LAMMPS expects to receive and how it +responds. + +The "Howto client/server"_Howto_client_server.html doc page gives an +overview of client/server coupling of LAMMPS with another code where +one code is the "client" and sends request messages to a "server" +code. The server responds to each request with a reply message. This +enables the two codes to work in tandem to perform a simulation. + +When this command is invoked, LAMMPS will run in server mode in an +endless loop, waiting for messages from the client code. The client +signals when it is done sending messages to LAMMPS, at which point the +loop will exit, and the remainder of the LAMMPS script will be +processed. + +The {protocol} argument defines the format and content of messages +that will be exchanged between the two codes. The current options +are: + +"md"_server_md.html = run dynamics with another code +"mc"_server_mc.html = perform Monte Carlo moves with another code :ul + +For protocol {md}, LAMMPS can be either a client (via the "fix +client/md"_fix_client_md.html command) or server. See the "server +md"_server_md.html doc page for details on the protocol. + +For protocol {mc}, LAMMPS can be the server. See the "server +mc"_server_mc.html doc page for details on the protocol. + +:line + +[Restrictions:] + +This command is part of the MESSAGE package. It is only enabled if +LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +A script that uses this command must also use the +"message"_message.html command to setup the messaging protocol with +the other client code. + +[Related commands:] + +"message"_message.html, "fix client/md"_fix_client_md.html + +[Default:] none diff --git a/doc/src/server_mc.txt b/doc/src/server_mc.txt new file mode 100644 index 0000000000..53ccfc8ecd --- /dev/null +++ b/doc/src/server_mc.txt @@ -0,0 +1,116 @@ +"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 + +server mc command :h3 + +[Syntax:] + +server mc :pre + +mc = the protocol argument to the "server"_server.html command + +[Examples:] + +server mc :pre + +[Description:] + +This command starts LAMMPS running in "server" mode, where it will +expect messages from a separate "client" code that match the {mc} +protocol for format and content explained below. For each message +LAMMPS receives it will send a message back to the client. + +The "Howto client/server"_Howto_client_server.html doc page gives an +overview of client/server coupling of LAMMPS with another code where +one code is the "client" and sends request messages to a "server" +code. The server responds to each request with a reply message. This +enables the two codes to work in tandem to perform a simulation. + +When this command is invoked, LAMMPS will run in server mode in an +endless loop, waiting for messages from the client code. The client +signals when it is done sending messages to LAMMPS, at which point the +loop will exit, and the remainder of the LAMMPS script will be +processed. + +The "server"_server.html doc page gives other options for using LAMMPS +See an example of how this command is used in +examples/COUPLE/lammps_mc/in.server. + +:line + +When using this command, LAMMPS (as the server code) receives +instructions from a Monte Carlo (MC) driver to displace random atoms, +compute the energy before and after displacement, and run dynamics to +equilibrate the system. + +The MC driver performs the random displacements on random atoms, +accepts or rejects the move in an MC sense, and orchestrates the MD +runs. + +The format and content of the exchanged messages are explained here in +a conceptual sense. Python-style pseudo code for the library calls to +the CSlib is shown, which performs the actual message exchange between +the two codes. See the "CSlib website"_http://cslib.sandia.gov doc +pages for more details on the actual library syntax. The "cs" object +in this pseudo code is a pointer to an instance of the CSlib. + +See the src/MESSAGE/server_mc.cpp file for details on how LAMMPS uses +these messages. See the examples/COUPLE/lammmps_mc/mc.cpp file for an +example of how an MC driver code can use these messages. + +Let NATOMS=1, EINIT=2, DISPLACE=3, ACCEPT=4, RUN=5. + +[Client sends one of these kinds of message]: + +cs->send(NATOMS,0) # msgID = 1 with no fields :pre + +cs->send(EINIT,0) # msgID = 2 with no fields :pre + +cs->send(DISPLACE,2) # msgID = 3 with 2 fields +cs->pack_int(1,ID) # 1st field = ID of atom to displace +cs->pack(2,3,xnew) # 2nd field = new xyz coords of displaced atom :pre + +cs->send(ACCEPT,1) # msgID = 4 with 1 field +cs->pack_int(1,flag) # 1st field = accept/reject flag :pre + +cs->send(RUN,1) # msgID = 5 with 1 field +cs->pack_int(1,nsteps) # 1st field = # of timesteps to run MD :pre + +[Server replies]: + +cs->send(NATOMS,1) # msgID = 1 with 1 field +cs->pack_int(1,natoms) # 1st field = number of atoms :pre + +cs->send(EINIT,2) # msgID = 2 with 2 fields +cs->pack_double(1,poteng) # 1st field = potential energy of system +cs->pack(2,3*natoms,x) # 2nd field = 3N coords of Natoms :pre + +cs->send(DISPLACE,1) # msgID = 3 with 1 field +cs->pack_double(1,poteng) # 1st field = new potential energy of system :pre + +cs->send(ACCEPT,0) # msgID = 4 with no fields + +cs->send(RUN,0) # msgID = 5 with no fields + +:line + +[Restrictions:] + +This command is part of the MESSAGE package. It is only enabled if +LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +A script that uses this command must also use the +"message"_message.html command to setup the messaging protocol with +the other client code. + +[Related commands:] + +"message"_message.html + +[Default:] none diff --git a/doc/src/server_md.txt b/doc/src/server_md.txt new file mode 100644 index 0000000000..0db7bbe16b --- /dev/null +++ b/doc/src/server_md.txt @@ -0,0 +1,147 @@ +"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 + +server md command :h3 + +[Syntax:] + +server md :pre + +md = the protocol argument to the "server"_server.html command + +[Examples:] + +server md :pre + +[Description:] + +This command starts LAMMPS running in "server" mode, where it will +expect messages from a separate "client" code that match the {md} +protocol for format and content explained below. For each message +LAMMPS receives it will send a message back to the client. + +The "Howto client/server"_Howto_client_server.html doc page gives an +overview of client/server coupling of LAMMPS with another code where +one code is the "client" and sends request messages to a "server" +code. The server responds to each request with a reply message. This +enables the two codes to work in tandem to perform a simulation. + +When this command is invoked, LAMMPS will run in server mode in an +endless loop, waiting for messages from the client code. The client +signals when it is done sending messages to LAMMPS, at which point the +loop will exit, and the remainder of the LAMMPS script will be +processed. + +The "server"_server.html doc page gives other options for using LAMMPS +in server mode. See an example of how this command is used in +examples/message/in.message.server. + +:line + +When using this command, LAMMPS (as the server code) receives the +current coordinates of all particles from the client code each +timestep, computes their interaction, and returns the energy, forces, +and pressure for the interacting particles to the client code, so it +can complete the timestep. This command could also be used with a +client code that performs energy minimization, using the server to +compute forces and energy each iteration of its minimizer. + +When using the "fix client/md" command, LAMMPS (as the client code) +does the timestepping and receives needed energy, forces, and pressure +values from the server code. + +The format and content of the exchanged messages are explained here in +a conceptual sense. Python-style pseudo code for the library calls to +the CSlib is shown, which performs the actual message exchange between +the two codes. See the "CSlib website"_http://cslib.sandia.gov doc +pages for more details on the actual library syntax. The "cs" object +in this pseudo code is a pointer to an instance of the CSlib. + +See the src/MESSAGE/server_md.cpp and src/MESSAGE/fix_client_md.cpp +files for details on how LAMMPS uses these messages. See the +examples/COUPLE/lammps_vasp/vasp_wrapper.py file for an example of how +a quantum code (VASP) can use use these messages. + +The following pseudo-code uses these values, defined as enums. + +enum{SETUP=1,STEP}; +enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; +enum{FORCES=1,ENERGY,PRESSURE,ERROR}; :pre + +[Client sends 2 kinds of messages]: + +# required fields: DIM, PERIODICTY, ORIGIN, BOX, NATOMS, NTYPES, TYPES, COORDS +# optional fields: UNITS, CHARGE :pre + +cs->send(SETUP,nfields) # msgID with nfields :pre + +cs->pack_int(DIM,dim) # dimension (2,3) of simulation +cs->pack(PERIODICITY,3,xyz) # periodicity flags in 3 dims +cs->pack(ORIGIN,3,origin) # lower-left corner of simulation box +cs->pack(BOX,9,box) # 3 edge vectors of simulation box +cs->pack_int(NATOMS,natoms) # total number of atoms +cs->pack_int(NTYPES,ntypes) # number of atom types +cs->pack(TYPES,natoms,type) # vector of per-atom types +cs->pack(COORDS,3*natoms,x) # vector of 3N atom coords +cs->pack_string(UNITS,units) # units = "lj", "real", "metal", etc +cs->pack(CHARGE,natoms,q) # vector of per-atom charge :pre + +# required fields: COORDS +# optional fields: ORIGIN, BOX :pre + +cs->send(STEP,nfields) # msgID with nfields :pre + +cs->pack(COORDS,3*natoms,x) # vector of 3N atom coords +cs->pack(ORIGIN,3,origin) # lower-left corner of simulation box +cs->pack(BOX,9,box) # 3 edge vectors of simulation box + +[Server replies to either kind of message]: + +# required fields: FORCES, ENERGY, PRESSURE +# optional fields: ERROR :pre + +cs->send(msgID,nfields) # msgID with nfields +cs->pack(FORCES,3*Natoms,f) # vector of 3N forces on atoms +cs->pack(ENERGY,1,poteng) # total potential energy of system +cs->pack(PRESSURE,6,press) # global pressure tensor (6-vector) +cs->pack_int(ERROR,flag) # server had an error (e.g. DFT non-convergence) :pre + +:line + +The units for various quantities that are sent and received iva +messages are defined for atomic-scale simulations in the table below. +The client and server codes (including LAMMPS) can use internal units +different than these (e.g. "real units"_units.html in LAMMPS), so long +as they convert to these units for meesaging. + +COORDS, ORIGIN, BOX = Angstroms +CHARGE = multiple of electron charge (1.0 is a proton) +ENERGY = eV +FORCES = eV/Angstrom +PRESSURE = bars :ul + +Note that these are "metal units"_units.html in LAMMPS. + +If you wish to run LAMMPS in another its non-atomic units, e.g. "lj +units"_units.html, then the client and server should exchange a UNITS +message as indicated above, and both the client and server should +agree on the units for the data they exchange. + +:line + +[Restrictions:] + +This command is part of the MESSAGE package. It is only enabled if +LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +[Related commands:] + +"message"_message.html, "fix client/md"_fix_client_md.html + +[Default:] none diff --git a/examples/COUPLE/README b/examples/COUPLE/README index 83e7463531..0e611befbd 100644 --- a/examples/COUPLE/README +++ b/examples/COUPLE/README @@ -10,6 +10,7 @@ See these sections of the LAMMPS manaul for details: 2.5 Building LAMMPS as a library (doc/Section_start.html#start_5) 6.10 Coupling LAMMPS to other codes (doc/Section_howto.html#howto_10) +6.29 Using LAMMPS in client/server mode (doc/Section_howto.html#howto_29) In all of the examples included here, LAMMPS must first be built as a library. Basically, in the src dir you type one of @@ -33,9 +34,13 @@ These are the sub-directories included in this directory: simple simple example of driver code calling LAMMPS as a lib multiple example of driver code calling multiple instances of LAMMPS +lammps_mc client/server coupling of Monte Carlo client + with LAMMPS server for energy evaluation lammps_quest MD with quantum forces, coupling to Quest DFT code lammps_spparks grain-growth Monte Carlo with strain via MD, coupling to SPPARKS kinetic MC code +lammps_vasp client/server coupling of LAMMPS client with + VASP quantum DFT as server for quantum forces library collection of useful inter-code communication routines fortran a simple wrapper on the LAMMPS library API that can be called from Fortran diff --git a/examples/COUPLE/lammps_mc/Makefile b/examples/COUPLE/lammps_mc/Makefile new file mode 100644 index 0000000000..c75bd08c73 --- /dev/null +++ b/examples/COUPLE/lammps_mc/Makefile @@ -0,0 +1,33 @@ +# Makefile for MC + +SHELL = /bin/sh + +SRC = mc.cpp random_park.cpp +OBJ = $(SRC:.cpp=.o) + +# change this line for your machine to path for CSlib src dir + +CSLIB = /home/sjplimp/lammps/lib/message/cslib/src + +# compiler/linker settings + +CC = g++ +CCFLAGS = -g -O3 -I$(CSLIB) +LINK = g++ +LINKFLAGS = -g -O -L$(CSLIB) + +# targets + +mc: $(OBJ) +# first line if built the CSlib within lib/message with ZMQ support +# second line if built the CSlib without ZMQ support + $(LINK) $(LINKFLAGS) $(OBJ) -lcsnompi -lzmq -o mc +# $(LINK) $(LINKFLAGS) $(OBJ) -lcsnompi -o mc + +clean: + @rm -f *.o mc + +# rules + +%.o:%.cpp + $(CC) $(CCFLAGS) -c $< diff --git a/examples/COUPLE/lammps_mc/README b/examples/COUPLE/lammps_mc/README new file mode 100644 index 0000000000..c201a6351c --- /dev/null +++ b/examples/COUPLE/lammps_mc/README @@ -0,0 +1,128 @@ +Sample Monte Carlo (MC) wrapper on LAMMPS via client/server coupling + +See the MESSAGE package (doc/Section_messages.html#MESSAGE) +and Section_howto.html#howto10 for more details on how +client/server coupling works in LAMMPS. + +In this dir, the mc.cpp/h files are a standalone "client" MC code. It +should be run on a single processor, though it could become a parallel +program at some point. LAMMPS is also run as a standalone executable +as a "server" on as many processors as desired using its "server mc" +command; see it's doc page for details. + +Messages are exchanged between MC and LAMMPS via a client/server +library (CSlib), which is included in the LAMMPS distribution in +lib/message. As explained below you can choose to exchange data +between the two programs either via files or sockets (ZMQ). If the MC +program became parallel, data could also be exchanged via MPI. + +The MC code makes simple MC moves, by displacing a single random atom +by a small random amount. It uses LAMMPS to calculate the energy +change, and to run dynamics between MC moves. + +---------------- + +Build LAMMPS with its MESSAGE package installed: + +See the Build extras doc page and its MESSAGE package +section for details. + +CMake: + +-D PKG_MESSAGE=yes # include the MESSAGE package +-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes + +Traditional make: + +% cd lammps/lib/message +% python Install.py -m -z # build CSlib with MPI and ZMQ support +% cd lammps/src +% make yes-message +% make mpi + +You can leave off the -z if you do not have ZMQ on your system. + +---------------- + +Build the MC client code + +The source files for the MC code are in this dir. It links with the +CSlib library in lib/message/cslib. + +You must first build the CSlib in serial mode, e.g. + +% cd lammps/lib/message/cslib/src +% make lib # build serial and parallel lib with ZMQ support +% make lib zmq=no # build serial and parallel lib without ZMQ support + +Then edit the Makefile in this dir. The CSLIB variable should be the +path to where the LAMMPS lib/message/cslib/src dir is on your system. +If you built the CSlib without ZMQ support you will also need to +comment/uncomment one line. Then you can just type + +% make + +and you should get an "mc" executable. + +---------------- + +To run in client/server mode: + +Both the client (MC) and server (LAMMPS) must use the same messaging +mode, namely file or zmq. This is an argument to the MC code; it can +be selected by setting the "mode" variable when you run LAMMPS. The +default mode = file. + +Here we assume LAMMPS was built to run in parallel, and the MESSAGE +package was installed with socket (ZMQ) support. This means either of +the messaging modes can be used and LAMMPS can be run in serial or +parallel. The MC code is always run in serial. + +When you run, the server should print out thermodynamic info +for every MD run it performs (between MC moves). The client +will print nothing until the simulation ends, then it will +print stats about the accepted MC moves. + +The examples below are commands you should use in two different +terminal windows. The order of the two commands (client or server +launch) does not matter. You can run them both in the same window if +you append a "&" character to the first one to run it in the +background. + +-------------- + +File mode of messaging: + +% mpirun -np 1 mc in.mc file tmp.couple +% mpirun -np 1 lmp_mpi -v mode file < in.mc.server + +% mpirun -np 1 mc in.mc file tmp.couple +% mpirun -np 4 lmp_mpi -v mode file < in.mc.server + +ZMQ mode of messaging: + +% mpirun -np 1 mc in.mc zmq localhost:5555 +% mpirun -np 1 lmp_mpi -v mode zmq < in.mc.server + +% mpirun -np 1 mc in.mc zmq localhost:5555 +% mpirun -np 4 lmp_mpi -v mode zmq < in.mc.server + +-------------- + +The input script for the MC program is in.mc. You can edit it to run +longer simulations. + +500 nsteps = total # of steps of MD +100 ndynamics = # of MD steps between MC moves +0.1 delta = displacement size of MC move +1.0 temperature = used in MC Boltzman factor +12345 seed = random number seed + +-------------- + +The problem size that LAMMPS is computing the MC energy for and +running dynamics on is set by the x,y,z variables in the LAMMPS +in.mc.server script. The default size is 500 particles. You can +adjust the size as follows: + +lmp_mpi -v x 10 -v y 10 -v z 20 # 8000 particles diff --git a/examples/COUPLE/lammps_mc/in.mc b/examples/COUPLE/lammps_mc/in.mc new file mode 100644 index 0000000000..85052d09f1 --- /dev/null +++ b/examples/COUPLE/lammps_mc/in.mc @@ -0,0 +1,7 @@ +# MC params + +500 nsteps +100 ndynamics +0.1 delta +1.0 temperature +12345 seed diff --git a/examples/COUPLE/lammps_mc/in.mc.server b/examples/COUPLE/lammps_mc/in.mc.server new file mode 100644 index 0000000000..8b10bb0f7b --- /dev/null +++ b/examples/COUPLE/lammps_mc/in.mc.server @@ -0,0 +1,36 @@ +# 3d Lennard-Jones Monte Carlo server script + +variable mode index file + +if "${mode} == file" then & + "message server mc file tmp.couple" & +elif "${mode} == zmq" & + "message server mc zmq *:5555" & + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +region box block 0 $x 0 $y 0 $z +create_box 1 box +create_atoms 1 box +mass 1 1.0 + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 20 check no + +velocity all create 1.44 87287 loop geom + +fix 1 all nve + +thermo 50 + +server mc diff --git a/examples/COUPLE/lammps_mc/log.28Aug18.file.g++.1 b/examples/COUPLE/lammps_mc/log.28Aug18.file.g++.1 new file mode 100644 index 0000000000..0d67c89cf1 --- /dev/null +++ b/examples/COUPLE/lammps_mc/log.28Aug18.file.g++.1 @@ -0,0 +1,254 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones Monte Carlo server script + +variable mode index file + +if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555" +message server mc file tmp.couple +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000649929 secs +mass 1 1.0 + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 20 check no + +velocity all create 1.44 87287 loop geom + +fix 1 all nve + +thermo 50 + +server mc +run 0 +Neighbor list info ... + update every 20 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 +Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms + +93.2% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.146e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19500 ave 19500 max 19500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19500 +Ave neighs/atom = 39 +Neighbor list builds = 0 +Dangerous builds not checked +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 +Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms + +93.2% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.146e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19501 ave 19501 max 19501 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19501 +Ave neighs/atom = 39.002 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 + 50 0.70239211 -5.6763152 0 -4.6248342 0.59544428 + 100 0.7565013 -5.757431 0 -4.6249485 0.21982657 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.7565013 -5.7565768 0 -4.6240944 0.22436405 +Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms + +157.3% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.907e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1939 ave 1939 max 1939 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18757 ave 18757 max 18757 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18757 +Ave neighs/atom = 37.514 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.7565013 -5.757431 0 -4.6249485 0.21982657 + 150 0.76110797 -5.7664315 0 -4.6270529 0.16005254 + 200 0.73505651 -5.7266069 0 -4.6262273 0.34189744 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73505651 -5.7181381 0 -4.6177585 0.37629943 +Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms + +139.8% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.146e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1899 ave 1899 max 1899 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18699 ave 18699 max 18699 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18699 +Ave neighs/atom = 37.398 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73505651 -5.7266069 0 -4.6262273 0.34189744 + 250 0.73052476 -5.7206316 0 -4.627036 0.39287516 + 300 0.76300831 -5.7675007 0 -4.6252773 0.16312925 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76300831 -5.768304 0 -4.6260806 0.15954325 +Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms + +139.8% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.146e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1903 ave 1903 max 1903 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18715 ave 18715 max 18715 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18715 +Ave neighs/atom = 37.43 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76300831 -5.768304 0 -4.6260806 0.15954325 + 350 0.72993309 -5.7193261 0 -4.6266162 0.3358374 + 400 0.72469448 -5.713463 0 -4.6285954 0.44859547 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.72469448 -5.7077332 0 -4.6228655 0.47669832 +Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms + +157.3% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.907e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1899 ave 1899 max 1899 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18683 ave 18683 max 18683 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18683 +Ave neighs/atom = 37.366 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.72469448 -5.713463 0 -4.6285954 0.44859547 + 450 0.75305735 -5.7518283 0 -4.6245015 0.34658587 + 500 0.73092571 -5.7206337 0 -4.6264379 0.43715809 +Total wall time: 0:00:02 diff --git a/examples/COUPLE/lammps_mc/log.28Aug18.file.g++.4 b/examples/COUPLE/lammps_mc/log.28Aug18.file.g++.4 new file mode 100644 index 0000000000..2ae51d2461 --- /dev/null +++ b/examples/COUPLE/lammps_mc/log.28Aug18.file.g++.4 @@ -0,0 +1,254 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones Monte Carlo server script + +variable mode index file + +if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555" +message server mc file tmp.couple +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000592947 secs +mass 1 1.0 + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 20 check no + +velocity all create 1.44 87287 loop geom + +fix 1 all nve + +thermo 50 + +server mc +run 0 +Neighbor list info ... + update every 20 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 +Loop time of 3.8147e-06 on 4 procs for 0 steps with 500 atoms + +59.0% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.815e-06 | | |100.00 + +Nlocal: 125 ave 125 max 125 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 1099 ave 1099 max 1099 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 4875 ave 4875 max 4875 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19500 +Ave neighs/atom = 39 +Neighbor list builds = 0 +Dangerous builds not checked +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 +Loop time of 3.03984e-06 on 4 procs for 0 steps with 500 atoms + +106.9% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.04e-06 | | |100.00 + +Nlocal: 125 ave 125 max 125 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 1099 ave 1099 max 1099 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 4875.25 ave 4885 max 4866 min +Histogram: 1 0 0 0 2 0 0 0 0 1 + +Total # of neighbors = 19501 +Ave neighs/atom = 39.002 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 + 50 0.70210225 -5.6759068 0 -4.6248598 0.59609192 + 100 0.75891559 -5.7611234 0 -4.6250267 0.20841608 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.75891559 -5.7609392 0 -4.6248426 0.20981291 +Loop time of 3.75509e-06 on 4 procs for 0 steps with 500 atoms + +113.2% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.755e-06 | | |100.00 + +Nlocal: 125 ave 126 max 124 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 1085.25 ave 1089 max 1079 min +Histogram: 1 0 0 0 0 1 0 0 0 2 +Neighs: 4690.25 ave 4996 max 4401 min +Histogram: 1 0 0 1 0 1 0 0 0 1 + +Total # of neighbors = 18761 +Ave neighs/atom = 37.522 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.75891559 -5.7609392 0 -4.6248426 0.20981291 + 150 0.75437991 -5.7558622 0 -4.6265555 0.20681722 + 200 0.73111257 -5.7193748 0 -4.6248993 0.35230715 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73111257 -5.7143906 0 -4.6199151 0.37126023 +Loop time of 2.563e-06 on 4 procs for 0 steps with 500 atoms + +117.1% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.563e-06 | | |100.00 + +Nlocal: 125 ave 126 max 123 min +Histogram: 1 0 0 0 0 0 1 0 0 2 +Nghost: 1068.5 ave 1076 max 1063 min +Histogram: 2 0 0 0 0 0 1 0 0 1 +Neighs: 4674.75 ave 4938 max 4419 min +Histogram: 1 0 0 0 1 1 0 0 0 1 + +Total # of neighbors = 18699 +Ave neighs/atom = 37.398 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73111257 -5.7193748 0 -4.6248993 0.35230715 + 250 0.73873144 -5.7312505 0 -4.6253696 0.33061033 + 300 0.76392796 -5.7719207 0 -4.6283206 0.18197874 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76392796 -5.7725589 0 -4.6289588 0.17994628 +Loop time of 3.99351e-06 on 4 procs for 0 steps with 500 atoms + +93.9% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.994e-06 | | |100.00 + +Nlocal: 125 ave 128 max 121 min +Histogram: 1 0 0 0 0 1 0 1 0 1 +Nghost: 1069 ave 1080 max 1055 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Neighs: 4672 ave 4803 max 4600 min +Histogram: 2 0 0 1 0 0 0 0 0 1 + +Total # of neighbors = 18688 +Ave neighs/atom = 37.376 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76392796 -5.7725589 0 -4.6289588 0.17994628 + 350 0.71953041 -5.7041632 0 -4.6270261 0.44866153 + 400 0.7319047 -5.7216051 0 -4.6259438 0.46321355 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.7319047 -5.7158168 0 -4.6201554 0.49192039 +Loop time of 3.57628e-06 on 4 procs for 0 steps with 500 atoms + +111.8% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.576e-06 | | |100.00 + +Nlocal: 125 ave 132 max 118 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 1057.5 ave 1068 max 1049 min +Histogram: 1 0 0 1 1 0 0 0 0 1 +Neighs: 4685.75 ave 5045 max 4229 min +Histogram: 1 0 0 1 0 0 0 0 0 2 + +Total # of neighbors = 18743 +Ave neighs/atom = 37.486 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.7319047 -5.7216051 0 -4.6259438 0.46321355 + 450 0.74503154 -5.7405318 0 -4.6252196 0.33211879 + 500 0.70570501 -5.6824439 0 -4.6260035 0.62020788 +Total wall time: 0:00:02 diff --git a/examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.1 b/examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.1 new file mode 100644 index 0000000000..0565487bc6 --- /dev/null +++ b/examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.1 @@ -0,0 +1,254 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones Monte Carlo server script + +variable mode index file + +if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555" +message server mc zmq *:5555 +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000741005 secs +mass 1 1.0 + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 20 check no + +velocity all create 1.44 87287 loop geom + +fix 1 all nve + +thermo 50 + +server mc +run 0 +Neighbor list info ... + update every 20 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 +Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms + +52.4% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.907e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19500 ave 19500 max 19500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19500 +Ave neighs/atom = 39 +Neighbor list builds = 0 +Dangerous builds not checked +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 +Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms + +52.4% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.907e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19501 ave 19501 max 19501 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19501 +Ave neighs/atom = 39.002 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 + 50 0.70239211 -5.6763152 0 -4.6248342 0.59544428 + 100 0.7565013 -5.757431 0 -4.6249485 0.21982657 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.7565013 -5.7565768 0 -4.6240944 0.22436405 +Loop time of 1.19209e-06 on 1 procs for 0 steps with 500 atoms + +83.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.192e-06 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1939 ave 1939 max 1939 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18757 ave 18757 max 18757 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18757 +Ave neighs/atom = 37.514 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.7565013 -5.757431 0 -4.6249485 0.21982657 + 150 0.76110797 -5.7664315 0 -4.6270529 0.16005254 + 200 0.73505651 -5.7266069 0 -4.6262273 0.34189744 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73505651 -5.7181381 0 -4.6177585 0.37629943 +Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms + +209.7% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 9.537e-07 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1899 ave 1899 max 1899 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18699 ave 18699 max 18699 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18699 +Ave neighs/atom = 37.398 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73505651 -5.7266069 0 -4.6262273 0.34189744 + 250 0.73052476 -5.7206316 0 -4.627036 0.39287516 + 300 0.76300831 -5.7675007 0 -4.6252773 0.16312925 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76300831 -5.768304 0 -4.6260806 0.15954325 +Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms + +104.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 9.537e-07 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1903 ave 1903 max 1903 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18715 ave 18715 max 18715 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18715 +Ave neighs/atom = 37.43 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76300831 -5.768304 0 -4.6260806 0.15954325 + 350 0.72993309 -5.7193261 0 -4.6266162 0.3358374 + 400 0.72469448 -5.713463 0 -4.6285954 0.44859547 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.72469448 -5.7077332 0 -4.6228655 0.47669832 +Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms + +209.7% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 9.537e-07 | | |100.00 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1899 ave 1899 max 1899 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18683 ave 18683 max 18683 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18683 +Ave neighs/atom = 37.366 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.72469448 -5.713463 0 -4.6285954 0.44859547 + 450 0.75305735 -5.7518283 0 -4.6245015 0.34658587 + 500 0.73092571 -5.7206337 0 -4.6264379 0.43715809 +Total wall time: 0:00:00 diff --git a/examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.4 b/examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.4 new file mode 100644 index 0000000000..e74d03235d --- /dev/null +++ b/examples/COUPLE/lammps_mc/log.28Aug18.zmq.g++.4 @@ -0,0 +1,254 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones Monte Carlo server script + +variable mode index file + +if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555" +message server mc zmq *:5555 +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000576019 secs +mass 1 1.0 + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 20 check no + +velocity all create 1.44 87287 loop geom + +fix 1 all nve + +thermo 50 + +server mc +run 0 +Neighbor list info ... + update every 20 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 +Loop time of 4.76837e-06 on 4 procs for 0 steps with 500 atoms + +89.1% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 4.768e-06 | | |100.00 + +Nlocal: 125 ave 125 max 125 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 1099 ave 1099 max 1099 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 4875 ave 4875 max 4875 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 19500 +Ave neighs/atom = 39 +Neighbor list builds = 0 +Dangerous builds not checked +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 +Loop time of 3.45707e-06 on 4 procs for 0 steps with 500 atoms + +94.0% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.457e-06 | | |100.00 + +Nlocal: 125 ave 125 max 125 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 1099 ave 1099 max 1099 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 4875.25 ave 4885 max 4866 min +Histogram: 1 0 0 0 2 0 0 0 0 1 + +Total # of neighbors = 19501 +Ave neighs/atom = 39.002 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7723127 0 -4.6166327 -5.015531 + 50 0.70210225 -5.6759068 0 -4.6248598 0.59609192 + 100 0.75891559 -5.7611234 0 -4.6250267 0.20841608 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.75891559 -5.7609392 0 -4.6248426 0.20981291 +Loop time of 3.03984e-06 on 4 procs for 0 steps with 500 atoms + +115.1% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 3.04e-06 | | |100.00 + +Nlocal: 125 ave 126 max 124 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 1085.25 ave 1089 max 1079 min +Histogram: 1 0 0 0 0 1 0 0 0 2 +Neighs: 4690.25 ave 4996 max 4401 min +Histogram: 1 0 0 1 0 1 0 0 0 1 + +Total # of neighbors = 18761 +Ave neighs/atom = 37.522 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 100 0.75891559 -5.7609392 0 -4.6248426 0.20981291 + 150 0.75437991 -5.7558622 0 -4.6265555 0.20681722 + 200 0.73111257 -5.7193748 0 -4.6248993 0.35230715 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73111257 -5.7143906 0 -4.6199151 0.37126023 +Loop time of 2.38419e-06 on 4 procs for 0 steps with 500 atoms + +125.8% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.384e-06 | | |100.00 + +Nlocal: 125 ave 126 max 123 min +Histogram: 1 0 0 0 0 0 1 0 0 2 +Nghost: 1068.5 ave 1076 max 1063 min +Histogram: 2 0 0 0 0 0 1 0 0 1 +Neighs: 4674.75 ave 4938 max 4419 min +Histogram: 1 0 0 0 1 1 0 0 0 1 + +Total # of neighbors = 18699 +Ave neighs/atom = 37.398 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 200 0.73111257 -5.7193748 0 -4.6248993 0.35230715 + 250 0.73873144 -5.7312505 0 -4.6253696 0.33061033 + 300 0.76392796 -5.7719207 0 -4.6283206 0.18197874 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76392796 -5.7725589 0 -4.6289588 0.17994628 +Loop time of 2.44379e-06 on 4 procs for 0 steps with 500 atoms + +112.5% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.444e-06 | | |100.00 + +Nlocal: 125 ave 128 max 121 min +Histogram: 1 0 0 0 0 1 0 1 0 1 +Nghost: 1069 ave 1080 max 1055 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Neighs: 4672 ave 4803 max 4600 min +Histogram: 2 0 0 1 0 0 0 0 0 1 + +Total # of neighbors = 18688 +Ave neighs/atom = 37.376 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 300 0.76392796 -5.7725589 0 -4.6289588 0.17994628 + 350 0.71953041 -5.7041632 0 -4.6270261 0.44866153 + 400 0.7319047 -5.7216051 0 -4.6259438 0.46321355 +run 0 +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.7319047 -5.7158168 0 -4.6201554 0.49192039 +Loop time of 2.14577e-06 on 4 procs for 0 steps with 500 atoms + +139.8% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 2.146e-06 | | |100.00 + +Nlocal: 125 ave 132 max 118 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 1057.5 ave 1068 max 1049 min +Histogram: 1 0 0 1 1 0 0 0 0 1 +Neighs: 4685.75 ave 5045 max 4229 min +Histogram: 1 0 0 1 0 0 0 0 0 2 + +Total # of neighbors = 18743 +Ave neighs/atom = 37.486 +Neighbor list builds = 0 +Dangerous builds not checked +Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes +Step Temp E_pair E_mol TotEng Press + 400 0.7319047 -5.7216051 0 -4.6259438 0.46321355 + 450 0.74503154 -5.7405318 0 -4.6252196 0.33211879 + 500 0.70570501 -5.6824439 0 -4.6260035 0.62020788 +Total wall time: 0:00:00 diff --git a/examples/COUPLE/lammps_mc/mc.cpp b/examples/COUPLE/lammps_mc/mc.cpp new file mode 100644 index 0000000000..7c2e2ce039 --- /dev/null +++ b/examples/COUPLE/lammps_mc/mc.cpp @@ -0,0 +1,263 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov +------------------------------------------------------------------------- */ + +// MC code used with LAMMPS in client/server mode +// MC is the client, LAMMPS is the server + +// Syntax: mc infile mode modearg +// mode = file, zmq +// modearg = filename for file, localhost:5555 for zmq + +#include +#include +#include +#include +#include "mc.h" +#include "random_park.h" + +#include "cslib.h" +using namespace CSLIB_NS; + +void error(const char *); +CSlib *cs_create(char *, char *); + +#define MAXLINE 256 + +/* ---------------------------------------------------------------------- */ + +// main program + +int main(int narg, char **arg) +{ + if (narg != 4) { + error("Syntax: mc infile mode modearg"); + exit(1); + } + + // initialize CSlib + + CSlib *cs = cs_create(arg[2],arg[3]); + + // create MC class and perform run + + MC *mc = new MC(arg[1],cs); + mc->run(); + + // final MC stats + + int naccept = mc->naccept; + int nattempt = mc->nattempt; + + printf("------ MC stats ------\n"); + printf("MC attempts = %d\n",nattempt); + printf("MC accepts = %d\n",naccept); + printf("Acceptance ratio = %g\n",1.0*naccept/nattempt); + + // clean up + + delete cs; + delete mc; +} + +/* ---------------------------------------------------------------------- */ + +void error(const char *str) +{ + printf("ERROR: %s\n",str); + exit(1); +} + +/* ---------------------------------------------------------------------- */ + +CSlib *cs_create(char *mode, char *arg) +{ + CSlib *cs = new CSlib(0,mode,arg,NULL); + + // initial handshake to agree on protocol + + cs->send(0,1); + cs->pack_string(1,(char *) "mc"); + + int msgID,nfield; + int *fieldID,*fieldtype,*fieldlen; + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + + return cs; +} + +// ---------------------------------------------------------------------- +// MC class +// ---------------------------------------------------------------------- + +MC::MC(char *mcfile, void *cs_caller) +//MC::MC(char *mcfile, CSlib *cs_caller) +{ + cs_void = cs_caller; + + // setup MC params + + options(mcfile); + + // random # generator + + random = new RanPark(seed); +} + +/* ---------------------------------------------------------------------- */ + +MC::~MC() +{ + free(x); + delete random; +} + +/* ---------------------------------------------------------------------- */ + +void MC::run() +{ + int iatom,accept,msgID,nfield; + double pe_initial,pe_final,edelta; + double dx,dy,dz; + double xold[3],xnew[3]; + int *fieldID,*fieldtype,*fieldlen; + + enum{NATOMS=1,EINIT,DISPLACE,ACCEPT,RUN}; + + CSlib *cs = (CSlib *) cs_void; + + // one-time request for atom count from MD + // allocate 1d coord buffer + + cs->send(NATOMS,0); + + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + natoms = cs->unpack_int(1); + + x = (double *) malloc(3*natoms*sizeof(double)); + + // loop over MC moves + + naccept = nattempt = 0; + + for (int iloop = 0; iloop < nloop; iloop++) { + + // request current energy from MD + // recv energy, coords from MD + + cs->send(EINIT,0); + + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + pe_initial = cs->unpack_double(1); + double *x = (double *) cs->unpack(2); + + // perform simple MC event + // displace a single atom by random amount + + iatom = (int) natoms*random->uniform(); + xold[0] = x[3*iatom+0]; + xold[1] = x[3*iatom+1]; + xold[2] = x[3*iatom+2]; + + dx = 2.0*delta*random->uniform() - delta; + dy = 2.0*delta*random->uniform() - delta; + dz = 2.0*delta*random->uniform() - delta; + + xnew[0] = xold[0] + dx; + xnew[1] = xold[1] + dx; + xnew[2] = xold[2] + dx; + + // send atom ID and its new coords to MD + // recv new energy + + cs->send(DISPLACE,2); + cs->pack_int(1,iatom+1); + cs->pack(2,4,3,xnew); + + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + pe_final = cs->unpack_double(1); + + // decide whether to accept/reject MC event + + if (pe_final <= pe_initial) accept = 1; + else if (temperature == 0.0) accept = 0; + else if (random->uniform() > + exp(natoms*(pe_initial-pe_final)/temperature)) accept = 0; + else accept = 1; + + nattempt++; + if (accept) naccept++; + + // send accept (1) or reject (0) flag to MD + + cs->send(ACCEPT,1); + cs->pack_int(1,accept); + + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + + // send dynamics timesteps + + cs->send(RUN,1); + cs->pack_int(1,ndynamics); + + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + } + + // send exit message to MD + + cs->send(-1,0); + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); +} + +/* ---------------------------------------------------------------------- */ + +void MC::options(char *filename) +{ + // default params + + nsteps = 0; + ndynamics = 100; + delta = 0.1; + temperature = 1.0; + seed = 12345; + + // read and parse file + + FILE *fp = fopen(filename,"r"); + if (fp == NULL) error("Could not open MC file"); + + char line[MAXLINE]; + char *keyword,*value; + char *eof = fgets(line,MAXLINE,fp); + + while (eof) { + if (line[0] == '#') { // comment line + eof = fgets(line,MAXLINE,fp); + continue; + } + + value = strtok(line," \t\n\r\f"); + if (value == NULL) { // blank line + eof = fgets(line,MAXLINE,fp); + continue; + } + + keyword = strtok(NULL," \t\n\r\f"); + if (keyword == NULL) error("Missing keyword in MC file"); + + if (strcmp(keyword,"nsteps") == 0) nsteps = atoi(value); + else if (strcmp(keyword,"ndynamics") == 0) ndynamics = atoi(value); + else if (strcmp(keyword,"delta") == 0) delta = atof(value); + else if (strcmp(keyword,"temperature") == 0) temperature = atof(value); + else if (strcmp(keyword,"seed") == 0) seed = atoi(value); + else error("Unknown param in MC file"); + + eof = fgets(line,MAXLINE,fp); + } + + // derived params + + nloop = nsteps/ndynamics; +} diff --git a/examples/COUPLE/lammps_mc/mc.h b/examples/COUPLE/lammps_mc/mc.h new file mode 100644 index 0000000000..e9d88523fc --- /dev/null +++ b/examples/COUPLE/lammps_mc/mc.h @@ -0,0 +1,40 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov +------------------------------------------------------------------------- */ + +#ifndef MC_H +#define MC_H + +/* ---------------------------------------------------------------------- */ + +class MC { + public: + int naccept; // # of accepted MC events + int nattempt; // # of attempted MC events + + MC(char *, void *); + ~MC(); + void run(); + + private: + int nsteps; // total # of MD steps + int ndynamics; // steps in one short dynamics run + int nloop; // nsteps/ndynamics + int natoms; // # of MD atoms + + double delta; // MC displacement distance + double temperature; // MC temperature for Boltzmann criterion + double *x; // atom coords as 3N 1d vector + double energy; // global potential energy + + int seed; // RNG seed + class RanPark *random; + + void *cs_void; // messaging library + + void options(char *); +}; + +#endif diff --git a/examples/COUPLE/lammps_mc/random_park.cpp b/examples/COUPLE/lammps_mc/random_park.cpp new file mode 100644 index 0000000000..61ac18c6c0 --- /dev/null +++ b/examples/COUPLE/lammps_mc/random_park.cpp @@ -0,0 +1,72 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +// Park/Miller RNG + +#include +#include "random_park.h" +//#include "error.h" + +#define IA 16807 +#define IM 2147483647 +#define AM (1.0/IM) +#define IQ 127773 +#define IR 2836 + +/* ---------------------------------------------------------------------- */ + +RanPark::RanPark(int seed_init) +{ + //if (seed_init <= 0) + // error->one(FLERR,"Invalid seed for Park random # generator"); + seed = seed_init; + save = 0; +} + +/* ---------------------------------------------------------------------- + uniform RN +------------------------------------------------------------------------- */ + +double RanPark::uniform() +{ + int k = seed/IQ; + seed = IA*(seed-k*IQ) - IR*k; + if (seed < 0) seed += IM; + double ans = AM*seed; + return ans; +} + +/* ---------------------------------------------------------------------- + gaussian RN +------------------------------------------------------------------------- */ + +double RanPark::gaussian() +{ + double first,v1,v2,rsq,fac; + + if (!save) { + do { + v1 = 2.0*uniform()-1.0; + v2 = 2.0*uniform()-1.0; + rsq = v1*v1 + v2*v2; + } while ((rsq >= 1.0) || (rsq == 0.0)); + fac = sqrt(-2.0*log(rsq)/rsq); + second = v1*fac; + first = v2*fac; + save = 1; + } else { + first = second; + save = 0; + } + return first; +} diff --git a/examples/COUPLE/lammps_mc/random_park.h b/examples/COUPLE/lammps_mc/random_park.h new file mode 100644 index 0000000000..0dc2081768 --- /dev/null +++ b/examples/COUPLE/lammps_mc/random_park.h @@ -0,0 +1,28 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#ifndef RANPARK_H +#define RANPARK_H + +class RanPark { + public: + RanPark(int); + double uniform(); + double gaussian(); + + private: + int seed,save; + double second; +}; + +#endif diff --git a/examples/COUPLE/lammps_vasp/INCAR b/examples/COUPLE/lammps_vasp/INCAR new file mode 100644 index 0000000000..ac2358e5fb --- /dev/null +++ b/examples/COUPLE/lammps_vasp/INCAR @@ -0,0 +1,53 @@ +# Startparameter for this run: + NWRITE = 2 write-flag & timer + PREC = normal normal or accurate (medium, high low for compatibility) + ISTART = 0 job : 0-new 1-cont 2-samecut + ICHARG = 2 charge: 1-file 2-atom 10-const + ISPIN = 1 spin polarized calculation? + LSORBIT = F spin-orbit coupling + INIWAV = 1 electr: 0-lowe 1-rand 2-diag + +# Electronic Relaxation 1 + ENCUT = 600.0 eV #Plane wave energy cutoff + ENINI = 600.0 initial cutoff + NELM = 100; NELMIN= 2; NELMDL= -5 # of ELM steps + EDIFF = 0.1E-05 stopping-criterion for ELM +# Ionic relaxation + EDIFFG = 0.1E-02 stopping-criterion for IOM + NSW = 0 number of steps for IOM + NBLOCK = 1; KBLOCK = 1 inner block; outer block + IBRION = -1 ionic relax: 0-MD 1-quasi-New 2-CG #No ion relaxation with -1 + NFREE = 0 steps in history (QN), initial steepest desc. (CG) + ISIF = 2 stress and relaxation # 2: F-yes Sts-yes RlxIon-yes cellshape-no cellvol-no + IWAVPR = 10 prediction: 0-non 1-charg 2-wave 3-comb # 10: TMPCAR stored in memory rather than file + + POTIM = 0.5000 time-step for ionic-motion + TEBEG = 3500.0; TEEND = 3500.0 temperature during run # Finite Temperature variables if AI-MD is on + SMASS = -3.00 Nose mass-parameter (am) + estimated Nose-frequenzy (Omega) = 0.10E-29 period in steps =****** mass= -0.366E-27a.u. + PSTRESS= 0.0 pullay stress + +# DOS related values: + EMIN = 10.00; EMAX =-10.00 energy-range for DOS + EFERMI = 0.00 + ISMEAR = 0; SIGMA = 0.10 broadening in eV -4-tet -1-fermi 0-gaus + +# Electronic relaxation 2 (details) + IALGO = 48 algorithm + +# Write flags + LWAVE = T write WAVECAR + LCHARG = T write CHGCAR + LVTOT = F write LOCPOT, total local potential + LVHAR = F write LOCPOT, Hartree potential only + LELF = F write electronic localiz. function (ELF) + +# Dipole corrections + LMONO = F monopole corrections only (constant potential shift) + LDIPOL = F correct potential (dipole corrections) + IDIPOL = 0 1-x, 2-y, 3-z, 4-all directions + EPSILON= 1.0000000 bulk dielectric constant + +# Exchange correlation treatment: + GGA = -- GGA type + diff --git a/examples/COUPLE/lammps_vasp/KPOINTS b/examples/COUPLE/lammps_vasp/KPOINTS new file mode 100644 index 0000000000..322509da30 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/KPOINTS @@ -0,0 +1,6 @@ +K-Points + 0 +Monkhorst Pack + 15 15 15 + 0 0 0 + diff --git a/examples/COUPLE/lammps_vasp/POSCAR_W b/examples/COUPLE/lammps_vasp/POSCAR_W new file mode 100644 index 0000000000..aba5df54a0 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/POSCAR_W @@ -0,0 +1,11 @@ +W unit cell +1.0 +3.16 0.00000000 0.00000000 +0.00000000 3.16 0.00000000 +0.00000000 0.00000000 3.16 +W +2 +Direct + 0.00000000 0.00000000 0.00000000 + 0.50000000 0.50000000 0.50000000 + diff --git a/examples/COUPLE/lammps_vasp/README b/examples/COUPLE/lammps_vasp/README new file mode 100644 index 0000000000..e942d52535 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/README @@ -0,0 +1,149 @@ +Sample LAMMPS MD wrapper on VASP quantum DFT via client/server +coupling + +See the MESSAGE package (doc/Section_messages.html#MESSAGE) and +Section_howto.html#howto10 for more details on how client/server +coupling works in LAMMPS. + +In this dir, the vasp_wrap.py is a wrapper on the VASP quantum DFT +code so it can work as a "server" code which LAMMPS drives as a +"client" code to perform ab initio MD. LAMMPS performs the MD +timestepping, sends VASP a current set of coordinates each timestep, +VASP computes forces and energy and virial and returns that info to +LAMMPS. + +Messages are exchanged between MC and LAMMPS via a client/server +library (CSlib), which is included in the LAMMPS distribution in +lib/message. As explained below you can choose to exchange data +between the two programs either via files or sockets (ZMQ). If the +vasp_wrap.py program became parallel, or the CSlib library calls were +integrated into VASP directly, then data could also be exchanged via +MPI. + +---------------- + +Build LAMMPS with its MESSAGE package installed: + +See the Build extras doc page and its MESSAGE package +section for details. + +CMake: + +-D PKG_MESSAGE=yes # include the MESSAGE package +-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes + +Traditional make: + +cd lammps/lib/message +python Install.py -m -z # build CSlib with MPI and ZMQ support +cd lammps/src +make yes-message +make mpi + +You can leave off the -z if you do not have ZMQ on your system. + +---------------- + +Build the CSlib in a form usable by the vasp_wrapper.py script: + +% cd lammps/lib/message/cslib/src +% make shlib # build serial and parallel shared lib with ZMQ support +% make shlib zmq=no # build serial and parallel shared lib w/out ZMQ support + +This will make a shared library versions of the CSlib, which Python +requires. Python must be able to find both the cslib.py script and +the libcsnompi.so library in your lammps/lib/message/cslib/src +directory. If it is not able to do this, you will get an error when +you run vasp_wrapper.py. + +You can do this by augmenting two environment variables, either +from the command line, or in your shell start-up script. +Here is the sample syntax for the csh or tcsh shells: + +setenv PYTHONPATH ${PYTHONPATH}:/home/sjplimp/lammps/lib/message/cslib/src +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/sjplimp/lammps/lib/message/cslib/src + +---------------- + +Prepare to use VASP and the vasp_wrapper.py script + +You can run the vasp_wrap.py script as-is to test that the coupling +between it and LAMMPS is functional. This will use the included +vasprun.xml file output by a previous VASP run. + +But note that the as-is version of vasp_wrap.py will not attempt to +run VASP. + +To do this, you must edit the 1st vaspcmd line at the top of +vasp_wrapper.py to be the launch command needed to run VASP on your +system. It can be a command to run VASP in serial or in parallel, +e.g. an mpirun command. Then comment out the 2nd vaspcmd line +immediately following it. + +Insure you have the necessary VASP input files in this +directory, suitable for the VASP calculation you want to perform: + +INCAR +KPOINTS +POSCAR_template +POTCAR + +Examples of all but the POTCAR file are provided. As explained below, +POSCAR_W is an input file for a 2-atom unit cell of tungsten and can +be used to test the LAMMPS/VASP coupling. The POTCAR file is a +proprietary VASP file, so use one from your VASP installation. + +Note that the POSCAR_template file should be matched to the LAMMPS +input script (# of atoms and atom types, box size, etc). The provided +POSCAR_W matches in.client.W. + +Once you run VASP yourself, the vasprun.xml file will be overwritten. + +---------------- + +To run in client/server mode: + +NOTE: The vasp_wrap.py script must be run with Python version 2, not +3. This is because it used the CSlib python wrapper, which only +supports version 2. We plan to upgrade CSlib to support Python 3. + +Both the client (LAMMPS) and server (vasp_wrap.py) must use the same +messaging mode, namely file or zmq. This is an argument to the +vasp_wrap.py code; it can be selected by setting the "mode" variable +when you run LAMMPS. The default mode = file. + +Here we assume LAMMPS was built to run in parallel, and the MESSAGE +package was installed with socket (ZMQ) support. This means either of +the messaging modes can be used and LAMMPS can be run in serial or +parallel. The vasp_wrap.py code is always run in serial, but it +launches VASP from Python via an mpirun command which can run VASP +itself in parallel. + +When you run, the server should print out thermodynamic info every +timestep which corresponds to the forces and virial computed by VASP. +VASP will also generate output files each timestep. The vasp_wrapper.py +script could be generalized to archive these. + +The examples below are commands you should use in two different +terminal windows. The order of the two commands (client or server +launch) does not matter. You can run them both in the same window if +you append a "&" character to the first one to run it in the +background. + +-------------- + +File mode of messaging: + +% mpirun -np 1 lmp_mpi -v mode file < in.client.W +% python vasp_wrap.py file POSCAR_W + +% mpirun -np 2 lmp_mpi -v mode file < in.client.W +% python vasp_wrap.py file POSCAR_W + +ZMQ mode of messaging: + +% mpirun -np 1 lmp_mpi -v mode zmq < in.client.W +% python vasp_wrap.py zmq POSCAR_W + +% mpirun -np 2 lmp_mpi -v mode zmq < in.client.W +% python vasp_wrap.py zmq POSCAR_W diff --git a/examples/COUPLE/lammps_vasp/data.W b/examples/COUPLE/lammps_vasp/data.W new file mode 100644 index 0000000000..8accd9ca79 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/data.W @@ -0,0 +1,15 @@ +LAMMPS W data file + +2 atoms + +1 atom types + +0.0 3.16 xlo xhi +0.0 3.16 ylo yhi +0.0 3.16 zlo zhi + +Atoms + +1 1 0.000 0.000 0.000 +2 1 1.58 1.58 1.58 + diff --git a/examples/COUPLE/lammps_vasp/in.client.W b/examples/COUPLE/lammps_vasp/in.client.W new file mode 100644 index 0000000000..3eaf99dcbb --- /dev/null +++ b/examples/COUPLE/lammps_vasp/in.client.W @@ -0,0 +1,34 @@ +# small W unit cell for use with VASP + +variable mode index file + +if "${mode} == file" then & + "message client md file tmp.couple" & +elif "${mode} == zmq" & + "message client md zmq localhost:5555" & + +variable x index 1 +variable y index 1 +variable z index 1 + +units metal +atom_style atomic +atom_modify sort 0 0.0 map yes + +read_data data.W +mass 1 183.85 + +replicate $x $y $z + +velocity all create 300.0 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 10 check no + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 1 +run 3 + diff --git a/examples/COUPLE/lammps_vasp/log.client.output b/examples/COUPLE/lammps_vasp/log.client.output new file mode 100644 index 0000000000..fa8f4f920a --- /dev/null +++ b/examples/COUPLE/lammps_vasp/log.client.output @@ -0,0 +1,76 @@ +LAMMPS (22 Aug 2018) +# small W unit cell for use with VASP + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" +message client md zmq localhost:5555 +variable x index 1 +variable y index 1 +variable z index 1 + +units metal +atom_style atomic +atom_modify sort 0 0.0 map yes + +read_data data.W + orthogonal box = (0 0 0) to (3.16 3.16 3.16) + 1 by 1 by 2 MPI processor grid + reading atoms ... + 2 atoms +mass 1 183.85 + +replicate $x $y $z +replicate 1 $y $z +replicate 1 1 $z +replicate 1 1 1 + orthogonal box = (0 0 0) to (3.16 3.16 3.16) + 1 by 1 by 2 MPI processor grid + 2 atoms + Time spent = 0.000148058 secs + +velocity all create 300.0 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 10 check no + +fix 1 all nve +fix 2 all client/md +fix_modify 2 energy yes + +thermo 1 +run 3 +Per MPI rank memory allocation (min/avg/max) = 1.8 | 1.8 | 1.8 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 300 0 0 -48.030793 -78159.503 + 1 298.24318 0 0 -48.03102 -78167.19 + 2 296.85584 0 0 -48.031199 -78173.26 + 3 295.83795 0 0 -48.031331 -78177.714 +Loop time of 0.457491 on 2 procs for 3 steps with 2 atoms + +Performance: 0.567 ns/day, 42.360 hours/ns, 6.558 timesteps/s +50.1% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 1.3828e-05 | 2.9922e-05 | 4.6015e-05 | 0.0 | 0.01 +Output | 7.5817e-05 | 9.3937e-05 | 0.00011206 | 0.0 | 0.02 +Modify | 0.45735 | 0.45736 | 0.45736 | 0.0 | 99.97 +Other | | 1.204e-05 | | | 0.00 + +Nlocal: 1 ave 1 max 1 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 4 ave 4 max 4 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 0 +Dangerous builds not checked + +Total wall time: 0:01:21 diff --git a/examples/COUPLE/lammps_vasp/vasp_wrap.py b/examples/COUPLE/lammps_vasp/vasp_wrap.py new file mode 100644 index 0000000000..1e2c52aa46 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/vasp_wrap.py @@ -0,0 +1,300 @@ +#!/usr/bin/env python + +# ---------------------------------------------------------------------- +# LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +# http://lammps.sandia.gov, Sandia National Laboratories +# Steve Plimpton, sjplimp@sandia.gov +# ---------------------------------------------------------------------- + +# Syntax: vasp_wrap.py file/zmq POSCARfile + +# wrapper on VASP to act as server program using CSlib +# receives message with list of coords from client +# creates VASP inputs +# invokes VASP to calculate self-consistent energy of that config +# reads VASP outputs +# sends message with energy, forces, pressure to client + +# NOTES: +# check to insure basic VASP input files are in place? +# could archive VASP input/output in special filenames or dirs? +# need to check that POTCAR file is consistent with atom ordering? +# could make syntax for launching VASP more flexible +# e.g. command-line arg for # of procs +# detect if VASP had an error and return ERROR field, e.g. non-convergence ?? + +from __future__ import print_function +import sys + +version = sys.version_info[0] +if version == 3: + sys.exit("The CSlib python wrapper does not yet support python 3") + +import subprocess +import xml.etree.ElementTree as ET +from cslib import CSlib + +# comment out 2nd line once 1st line is correct for your system + +vaspcmd = "srun -N 1 --ntasks-per-node=4 " + \ + "-n 4 /projects/vasp/2017-build/cts1/vasp5.4.4/vasp_tfermi/bin/vasp_std" +vaspcmd = "touch tmp" + +# enums matching FixClientMD class in LAMMPS + +SETUP,STEP = range(1,2+1) +DIM,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE = range(1,10+1) +FORCES,ENERGY,VIRIAL,ERROR = range(1,4+1) + +# ------------------------------------- +# functions + +# error message and exit + +def error(txt): + print("ERROR:",txt) + sys.exit(1) + +# ------------------------------------- +# read initial VASP POSCAR file to setup problem +# return natoms,ntypes,box + +def vasp_setup(poscar): + + ps = open(poscar,'r').readlines() + + # box size + + words = ps[2].split() + xbox = float(words[0]) + words = ps[3].split() + ybox = float(words[1]) + words = ps[4].split() + zbox = float(words[2]) + box = [xbox,ybox,zbox] + + ntypes = 0 + natoms = 0 + words = ps[6].split() + for word in words: + if word == '#': break + ntypes += 1 + natoms += int(word) + + return natoms,ntypes,box + +# ------------------------------------- +# write a new POSCAR file for VASP + +def poscar_write(poscar,natoms,ntypes,types,coords,box): + + psold = open(poscar,'r').readlines() + psnew = open("POSCAR",'w') + + # header, including box size + + psnew.write(psold[0]) + psnew.write(psold[1]) + psnew.write("%g %g %g\n" % (box[0],box[1],box[2])) + psnew.write("%g %g %g\n" % (box[3],box[4],box[5])) + psnew.write("%g %g %g\n" % (box[6],box[7],box[8])) + psnew.write(psold[5]) + psnew.write(psold[6]) + + # per-atom coords + # grouped by types + + psnew.write("Cartesian\n") + + for itype in range(1,ntypes+1): + for i in range(natoms): + if types[i] != itype: continue + x = coords[3*i+0] + y = coords[3*i+1] + z = coords[3*i+2] + aline = " %g %g %g\n" % (x,y,z) + psnew.write(aline) + + psnew.close() + +# ------------------------------------- +# read a VASP output vasprun.xml file +# uses ElementTree module +# see https://docs.python.org/2/library/xml.etree.elementtree.html + +def vasprun_read(): + tree = ET.parse('vasprun.xml') + root = tree.getroot() + + #fp = open("vasprun.xml","r") + #root = ET.parse(fp) + + scsteps = root.findall('calculation/scstep') + energy = scsteps[-1].find('energy') + for child in energy: + if child.attrib["name"] == "e_0_energy": + eout = float(child.text) + + fout = [] + sout = [] + + varrays = root.findall('calculation/varray') + for varray in varrays: + if varray.attrib["name"] == "forces": + forces = varray.findall("v") + for line in forces: + fxyz = line.text.split() + fxyz = [float(value) for value in fxyz] + fout += fxyz + if varray.attrib["name"] == "stress": + tensor = varray.findall("v") + stensor = [] + for line in tensor: + sxyz = line.text.split() + sxyz = [float(value) for value in sxyz] + stensor.append(sxyz) + sxx = stensor[0][0] + syy = stensor[1][1] + szz = stensor[2][2] + # symmetrize off-diagonal components + sxy = 0.5 * (stensor[0][1] + stensor[1][0]) + sxz = 0.5 * (stensor[0][2] + stensor[2][0]) + syz = 0.5 * (stensor[1][2] + stensor[2][1]) + sout = [sxx,syy,szz,sxy,sxz,syz] + + #fp.close() + + return eout,fout,sout + +# ------------------------------------- +# main program + +# command-line args + +if len(sys.argv) != 3: + print("Syntax: python vasp_wrap.py file/zmq POSCARfile") + sys.exit(1) + +mode = sys.argv[1] +poscar_template = sys.argv[2] + +if mode == "file": cs = CSlib(1,mode,"tmp.couple",None) +elif mode == "zmq": cs = CSlib(1,mode,"*:5555",None) +else: + print("Syntax: python vasp_wrap.py file/zmq POSCARfile") + sys.exit(1) + +natoms,ntypes,box = vasp_setup(poscar_template) + +# initial message for MD protocol + +msgID,nfield,fieldID,fieldtype,fieldlen = cs.recv() +if msgID != 0: error("Bad initial client/server handshake") +protocol = cs.unpack_string(1) +if protocol != "md": error("Mismatch in client/server protocol") +cs.send(0,0) + +# endless server loop + +while 1: + + # recv message from client + # msgID = 0 = all-done message + + msgID,nfield,fieldID,fieldtype,fieldlen = cs.recv() + if msgID < 0: break + + # SETUP receive at beginning of each run + # required fields: DIM, PERIODICTY, ORIGIN, BOX, + # NATOMS, NTYPES, TYPES, COORDS + # optional fields: others in enum above, but VASP ignores them + + if msgID == SETUP: + + origin = [] + box = [] + natoms_recv = ntypes_recv = 0 + types = [] + coords = [] + + for field in fieldID: + if field == DIM: + dim = cs.unpack_int(DIM) + if dim != 3: error("VASP only performs 3d simulations") + elif field == PERIODICITY: + periodicity = cs.unpack(PERIODICITY,1) + if not periodicity[0] or not periodicity[1] or not periodicity[2]: + error("VASP wrapper only currently supports fully periodic systems") + elif field == ORIGIN: + origin = cs.unpack(ORIGIN,1) + elif field == BOX: + box = cs.unpack(BOX,1) + elif field == NATOMS: + natoms_recv = cs.unpack_int(NATOMS) + if natoms != natoms_recv: + error("VASP wrapper mis-match in number of atoms") + elif field == NTYPES: + ntypes_recv = cs.unpack_int(NTYPES) + if ntypes != ntypes_recv: + error("VASP wrapper mis-match in number of atom types") + elif field == TYPES: + types = cs.unpack(TYPES,1) + elif field == COORDS: + coords = cs.unpack(COORDS,1) + + if not origin or not box or not natoms or not ntypes or \ + not types or not coords: + error("Required VASP wrapper setup field not received"); + + # STEP receive at each timestep of run or minimization + # required fields: COORDS + # optional fields: ORIGIN, BOX + + elif msgID == STEP: + + coords = [] + + for field in fieldID: + if field == COORDS: + coords = cs.unpack(COORDS,1) + elif field == ORIGIN: + origin = cs.unpack(ORIGIN,1) + elif field == BOX: + box = cs.unpack(BOX,1) + + if not coords: error("Required VASP wrapper step field not received"); + + else: error("VASP wrapper received unrecognized message") + + # create POSCAR file + + poscar_write(poscar_template,natoms,ntypes,types,coords,box) + + # invoke VASP + + print("\nLaunching VASP ...") + print(vaspcmd) + subprocess.check_output(vaspcmd,stderr=subprocess.STDOUT,shell=True) + + # process VASP output + + energy,forces,virial = vasprun_read() + + # convert VASP kilobars to bars + + for i,value in enumerate(virial): virial[i] *= 1000.0 + + # return forces, energy, pressure to client + + cs.send(msgID,3); + cs.pack(FORCES,4,3*natoms,forces) + cs.pack_double(ENERGY,energy) + cs.pack(VIRIAL,4,6,virial) + +# final reply to client + +cs.send(0,0) + +# clean-up + +del cs diff --git a/examples/COUPLE/lammps_vasp/vasprun.xml b/examples/COUPLE/lammps_vasp/vasprun.xml new file mode 100644 index 0000000000..0f15c871b4 --- /dev/null +++ b/examples/COUPLE/lammps_vasp/vasprun.xml @@ -0,0 +1,12329 @@ + + + + vasp + 5.4.4.18Apr17-6-g9f103f2a35 + (build Aug 01 2017 10:32:50) complex parallel + LinuxIFC + 2017 12 19 + 15:22:45 + + + 0 + normal normal or accurate (medium, h + 48 + F + 1 + 2 + 1 + 100 + -5 + 2 + -1 + 0 + 0.00000100 + 0.00100000 + 0 + 2 + 10 + 1 + 1 + 600.00000000 + 600.00000000 + 0.50000000 + 3500.00000000 + 3500.00000000 + -3.00000000 + 10.00000000 + -10.00000000 + 0.00000000 + 0 + 0.10000000 + 2 + 0.00000000 + T + T + F + F + F + -1 0 0 0 + 100 + -- GGA type + F + F + 0 + 1.00000000 + + + + + 3.66961100 0.00000000 0.00000000 + 0.00000000 3.55744000 0.00000000 + 0.00000000 0.00000000 3.17678100 + + 41.47103646 + + 0.27250845 0.00000000 0.00000000 + 0.00000000 0.28110102 0.00000000 + 0.00000000 0.00000000 0.31478405 + + + + 0.00000000 0.00000000 0.00000000 + 0.00000000 -0.50000000 -0.50000000 + -0.50000000 0.00000000 -0.50000000 + -0.50000000 -0.50000000 0.00000000 + + + + 1 + 2 + 3 + 4 + + + + 15 15 15 + 0.00000000 0.00000000 0.00000000 + 0.06666667 0.00000000 0.00000000 + 0.00000000 0.06666667 0.00000000 + 0.00000000 0.00000000 0.06666667 + 0.00000000 0.00000000 0.00000000 + + + 0.00000000 0.00000000 0.00000000 + 0.06666667 0.00000000 0.00000000 + 0.13333333 0.00000000 0.00000000 + 0.20000000 0.00000000 0.00000000 + 0.26666667 0.00000000 0.00000000 + 0.33333333 0.00000000 0.00000000 + 0.40000000 0.00000000 0.00000000 + 0.46666667 0.00000000 0.00000000 + 0.00000000 0.06666667 0.00000000 + 0.06666667 0.06666667 0.00000000 + 0.13333333 0.06666667 0.00000000 + 0.20000000 0.06666667 0.00000000 + 0.26666667 0.06666667 0.00000000 + 0.33333333 0.06666667 0.00000000 + 0.40000000 0.06666667 0.00000000 + 0.46666667 0.06666667 0.00000000 + 0.00000000 0.13333333 0.00000000 + 0.06666667 0.13333333 0.00000000 + 0.13333333 0.13333333 0.00000000 + 0.20000000 0.13333333 0.00000000 + 0.26666667 0.13333333 0.00000000 + 0.33333333 0.13333333 0.00000000 + 0.40000000 0.13333333 0.00000000 + 0.46666667 0.13333333 0.00000000 + 0.00000000 0.20000000 0.00000000 + 0.06666667 0.20000000 0.00000000 + 0.13333333 0.20000000 0.00000000 + 0.20000000 0.20000000 0.00000000 + 0.26666667 0.20000000 0.00000000 + 0.33333333 0.20000000 0.00000000 + 0.40000000 0.20000000 0.00000000 + 0.46666667 0.20000000 0.00000000 + 0.00000000 0.26666667 0.00000000 + 0.06666667 0.26666667 0.00000000 + 0.13333333 0.26666667 0.00000000 + 0.20000000 0.26666667 0.00000000 + 0.26666667 0.26666667 0.00000000 + 0.33333333 0.26666667 0.00000000 + 0.40000000 0.26666667 0.00000000 + 0.46666667 0.26666667 0.00000000 + 0.00000000 0.33333333 0.00000000 + 0.06666667 0.33333333 0.00000000 + 0.13333333 0.33333333 0.00000000 + 0.20000000 0.33333333 0.00000000 + 0.26666667 0.33333333 0.00000000 + 0.33333333 0.33333333 0.00000000 + 0.40000000 0.33333333 0.00000000 + 0.46666667 0.33333333 0.00000000 + 0.00000000 0.40000000 0.00000000 + 0.06666667 0.40000000 0.00000000 + 0.13333333 0.40000000 0.00000000 + 0.20000000 0.40000000 0.00000000 + 0.26666667 0.40000000 0.00000000 + 0.33333333 0.40000000 0.00000000 + 0.40000000 0.40000000 0.00000000 + 0.46666667 0.40000000 0.00000000 + 0.00000000 0.46666667 0.00000000 + 0.06666667 0.46666667 0.00000000 + 0.13333333 0.46666667 0.00000000 + 0.20000000 0.46666667 0.00000000 + 0.26666667 0.46666667 0.00000000 + 0.33333333 0.46666667 0.00000000 + 0.40000000 0.46666667 0.00000000 + 0.46666667 0.46666667 0.00000000 + 0.00000000 0.00000000 0.06666667 + 0.06666667 0.00000000 0.06666667 + 0.13333333 0.00000000 0.06666667 + 0.20000000 0.00000000 0.06666667 + 0.26666667 0.00000000 0.06666667 + 0.33333333 0.00000000 0.06666667 + 0.40000000 0.00000000 0.06666667 + 0.46666667 0.00000000 0.06666667 + 0.00000000 0.06666667 0.06666667 + 0.06666667 0.06666667 0.06666667 + 0.13333333 0.06666667 0.06666667 + 0.20000000 0.06666667 0.06666667 + 0.26666667 0.06666667 0.06666667 + 0.33333333 0.06666667 0.06666667 + 0.40000000 0.06666667 0.06666667 + 0.46666667 0.06666667 0.06666667 + 0.00000000 0.13333333 0.06666667 + 0.06666667 0.13333333 0.06666667 + 0.13333333 0.13333333 0.06666667 + 0.20000000 0.13333333 0.06666667 + 0.26666667 0.13333333 0.06666667 + 0.33333333 0.13333333 0.06666667 + 0.40000000 0.13333333 0.06666667 + 0.46666667 0.13333333 0.06666667 + 0.00000000 0.20000000 0.06666667 + 0.06666667 0.20000000 0.06666667 + 0.13333333 0.20000000 0.06666667 + 0.20000000 0.20000000 0.06666667 + 0.26666667 0.20000000 0.06666667 + 0.33333333 0.20000000 0.06666667 + 0.40000000 0.20000000 0.06666667 + 0.46666667 0.20000000 0.06666667 + 0.00000000 0.26666667 0.06666667 + 0.06666667 0.26666667 0.06666667 + 0.13333333 0.26666667 0.06666667 + 0.20000000 0.26666667 0.06666667 + 0.26666667 0.26666667 0.06666667 + 0.33333333 0.26666667 0.06666667 + 0.40000000 0.26666667 0.06666667 + 0.46666667 0.26666667 0.06666667 + 0.00000000 0.33333333 0.06666667 + 0.06666667 0.33333333 0.06666667 + 0.13333333 0.33333333 0.06666667 + 0.20000000 0.33333333 0.06666667 + 0.26666667 0.33333333 0.06666667 + 0.33333333 0.33333333 0.06666667 + 0.40000000 0.33333333 0.06666667 + 0.46666667 0.33333333 0.06666667 + 0.00000000 0.40000000 0.06666667 + 0.06666667 0.40000000 0.06666667 + 0.13333333 0.40000000 0.06666667 + 0.20000000 0.40000000 0.06666667 + 0.26666667 0.40000000 0.06666667 + 0.33333333 0.40000000 0.06666667 + 0.40000000 0.40000000 0.06666667 + 0.46666667 0.40000000 0.06666667 + 0.00000000 0.46666667 0.06666667 + 0.06666667 0.46666667 0.06666667 + 0.13333333 0.46666667 0.06666667 + 0.20000000 0.46666667 0.06666667 + 0.26666667 0.46666667 0.06666667 + 0.33333333 0.46666667 0.06666667 + 0.40000000 0.46666667 0.06666667 + 0.46666667 0.46666667 0.06666667 + 0.00000000 0.00000000 0.13333333 + 0.06666667 0.00000000 0.13333333 + 0.13333333 0.00000000 0.13333333 + 0.20000000 0.00000000 0.13333333 + 0.26666667 0.00000000 0.13333333 + 0.33333333 0.00000000 0.13333333 + 0.40000000 0.00000000 0.13333333 + 0.46666667 0.00000000 0.13333333 + 0.00000000 0.06666667 0.13333333 + 0.06666667 0.06666667 0.13333333 + 0.13333333 0.06666667 0.13333333 + 0.20000000 0.06666667 0.13333333 + 0.26666667 0.06666667 0.13333333 + 0.33333333 0.06666667 0.13333333 + 0.40000000 0.06666667 0.13333333 + 0.46666667 0.06666667 0.13333333 + 0.00000000 0.13333333 0.13333333 + 0.06666667 0.13333333 0.13333333 + 0.13333333 0.13333333 0.13333333 + 0.20000000 0.13333333 0.13333333 + 0.26666667 0.13333333 0.13333333 + 0.33333333 0.13333333 0.13333333 + 0.40000000 0.13333333 0.13333333 + 0.46666667 0.13333333 0.13333333 + 0.00000000 0.20000000 0.13333333 + 0.06666667 0.20000000 0.13333333 + 0.13333333 0.20000000 0.13333333 + 0.20000000 0.20000000 0.13333333 + 0.26666667 0.20000000 0.13333333 + 0.33333333 0.20000000 0.13333333 + 0.40000000 0.20000000 0.13333333 + 0.46666667 0.20000000 0.13333333 + 0.00000000 0.26666667 0.13333333 + 0.06666667 0.26666667 0.13333333 + 0.13333333 0.26666667 0.13333333 + 0.20000000 0.26666667 0.13333333 + 0.26666667 0.26666667 0.13333333 + 0.33333333 0.26666667 0.13333333 + 0.40000000 0.26666667 0.13333333 + 0.46666667 0.26666667 0.13333333 + 0.00000000 0.33333333 0.13333333 + 0.06666667 0.33333333 0.13333333 + 0.13333333 0.33333333 0.13333333 + 0.20000000 0.33333333 0.13333333 + 0.26666667 0.33333333 0.13333333 + 0.33333333 0.33333333 0.13333333 + 0.40000000 0.33333333 0.13333333 + 0.46666667 0.33333333 0.13333333 + 0.00000000 0.40000000 0.13333333 + 0.06666667 0.40000000 0.13333333 + 0.13333333 0.40000000 0.13333333 + 0.20000000 0.40000000 0.13333333 + 0.26666667 0.40000000 0.13333333 + 0.33333333 0.40000000 0.13333333 + 0.40000000 0.40000000 0.13333333 + 0.46666667 0.40000000 0.13333333 + 0.00000000 0.46666667 0.13333333 + 0.06666667 0.46666667 0.13333333 + 0.13333333 0.46666667 0.13333333 + 0.20000000 0.46666667 0.13333333 + 0.26666667 0.46666667 0.13333333 + 0.33333333 0.46666667 0.13333333 + 0.40000000 0.46666667 0.13333333 + 0.46666667 0.46666667 0.13333333 + 0.00000000 0.00000000 0.20000000 + 0.06666667 0.00000000 0.20000000 + 0.13333333 0.00000000 0.20000000 + 0.20000000 0.00000000 0.20000000 + 0.26666667 0.00000000 0.20000000 + 0.33333333 0.00000000 0.20000000 + 0.40000000 0.00000000 0.20000000 + 0.46666667 0.00000000 0.20000000 + 0.00000000 0.06666667 0.20000000 + 0.06666667 0.06666667 0.20000000 + 0.13333333 0.06666667 0.20000000 + 0.20000000 0.06666667 0.20000000 + 0.26666667 0.06666667 0.20000000 + 0.33333333 0.06666667 0.20000000 + 0.40000000 0.06666667 0.20000000 + 0.46666667 0.06666667 0.20000000 + 0.00000000 0.13333333 0.20000000 + 0.06666667 0.13333333 0.20000000 + 0.13333333 0.13333333 0.20000000 + 0.20000000 0.13333333 0.20000000 + 0.26666667 0.13333333 0.20000000 + 0.33333333 0.13333333 0.20000000 + 0.40000000 0.13333333 0.20000000 + 0.46666667 0.13333333 0.20000000 + 0.00000000 0.20000000 0.20000000 + 0.06666667 0.20000000 0.20000000 + 0.13333333 0.20000000 0.20000000 + 0.20000000 0.20000000 0.20000000 + 0.26666667 0.20000000 0.20000000 + 0.33333333 0.20000000 0.20000000 + 0.40000000 0.20000000 0.20000000 + 0.46666667 0.20000000 0.20000000 + 0.00000000 0.26666667 0.20000000 + 0.06666667 0.26666667 0.20000000 + 0.13333333 0.26666667 0.20000000 + 0.20000000 0.26666667 0.20000000 + 0.26666667 0.26666667 0.20000000 + 0.33333333 0.26666667 0.20000000 + 0.40000000 0.26666667 0.20000000 + 0.46666667 0.26666667 0.20000000 + 0.00000000 0.33333333 0.20000000 + 0.06666667 0.33333333 0.20000000 + 0.13333333 0.33333333 0.20000000 + 0.20000000 0.33333333 0.20000000 + 0.26666667 0.33333333 0.20000000 + 0.33333333 0.33333333 0.20000000 + 0.40000000 0.33333333 0.20000000 + 0.46666667 0.33333333 0.20000000 + 0.00000000 0.40000000 0.20000000 + 0.06666667 0.40000000 0.20000000 + 0.13333333 0.40000000 0.20000000 + 0.20000000 0.40000000 0.20000000 + 0.26666667 0.40000000 0.20000000 + 0.33333333 0.40000000 0.20000000 + 0.40000000 0.40000000 0.20000000 + 0.46666667 0.40000000 0.20000000 + 0.00000000 0.46666667 0.20000000 + 0.06666667 0.46666667 0.20000000 + 0.13333333 0.46666667 0.20000000 + 0.20000000 0.46666667 0.20000000 + 0.26666667 0.46666667 0.20000000 + 0.33333333 0.46666667 0.20000000 + 0.40000000 0.46666667 0.20000000 + 0.46666667 0.46666667 0.20000000 + 0.00000000 0.00000000 0.26666667 + 0.06666667 0.00000000 0.26666667 + 0.13333333 0.00000000 0.26666667 + 0.20000000 0.00000000 0.26666667 + 0.26666667 0.00000000 0.26666667 + 0.33333333 0.00000000 0.26666667 + 0.40000000 0.00000000 0.26666667 + 0.46666667 0.00000000 0.26666667 + 0.00000000 0.06666667 0.26666667 + 0.06666667 0.06666667 0.26666667 + 0.13333333 0.06666667 0.26666667 + 0.20000000 0.06666667 0.26666667 + 0.26666667 0.06666667 0.26666667 + 0.33333333 0.06666667 0.26666667 + 0.40000000 0.06666667 0.26666667 + 0.46666667 0.06666667 0.26666667 + 0.00000000 0.13333333 0.26666667 + 0.06666667 0.13333333 0.26666667 + 0.13333333 0.13333333 0.26666667 + 0.20000000 0.13333333 0.26666667 + 0.26666667 0.13333333 0.26666667 + 0.33333333 0.13333333 0.26666667 + 0.40000000 0.13333333 0.26666667 + 0.46666667 0.13333333 0.26666667 + 0.00000000 0.20000000 0.26666667 + 0.06666667 0.20000000 0.26666667 + 0.13333333 0.20000000 0.26666667 + 0.20000000 0.20000000 0.26666667 + 0.26666667 0.20000000 0.26666667 + 0.33333333 0.20000000 0.26666667 + 0.40000000 0.20000000 0.26666667 + 0.46666667 0.20000000 0.26666667 + 0.00000000 0.26666667 0.26666667 + 0.06666667 0.26666667 0.26666667 + 0.13333333 0.26666667 0.26666667 + 0.20000000 0.26666667 0.26666667 + 0.26666667 0.26666667 0.26666667 + 0.33333333 0.26666667 0.26666667 + 0.40000000 0.26666667 0.26666667 + 0.46666667 0.26666667 0.26666667 + 0.00000000 0.33333333 0.26666667 + 0.06666667 0.33333333 0.26666667 + 0.13333333 0.33333333 0.26666667 + 0.20000000 0.33333333 0.26666667 + 0.26666667 0.33333333 0.26666667 + 0.33333333 0.33333333 0.26666667 + 0.40000000 0.33333333 0.26666667 + 0.46666667 0.33333333 0.26666667 + 0.00000000 0.40000000 0.26666667 + 0.06666667 0.40000000 0.26666667 + 0.13333333 0.40000000 0.26666667 + 0.20000000 0.40000000 0.26666667 + 0.26666667 0.40000000 0.26666667 + 0.33333333 0.40000000 0.26666667 + 0.40000000 0.40000000 0.26666667 + 0.46666667 0.40000000 0.26666667 + 0.00000000 0.46666667 0.26666667 + 0.06666667 0.46666667 0.26666667 + 0.13333333 0.46666667 0.26666667 + 0.20000000 0.46666667 0.26666667 + 0.26666667 0.46666667 0.26666667 + 0.33333333 0.46666667 0.26666667 + 0.40000000 0.46666667 0.26666667 + 0.46666667 0.46666667 0.26666667 + 0.00000000 0.00000000 0.33333333 + 0.06666667 0.00000000 0.33333333 + 0.13333333 0.00000000 0.33333333 + 0.20000000 0.00000000 0.33333333 + 0.26666667 0.00000000 0.33333333 + 0.33333333 0.00000000 0.33333333 + 0.40000000 0.00000000 0.33333333 + 0.46666667 0.00000000 0.33333333 + 0.00000000 0.06666667 0.33333333 + 0.06666667 0.06666667 0.33333333 + 0.13333333 0.06666667 0.33333333 + 0.20000000 0.06666667 0.33333333 + 0.26666667 0.06666667 0.33333333 + 0.33333333 0.06666667 0.33333333 + 0.40000000 0.06666667 0.33333333 + 0.46666667 0.06666667 0.33333333 + 0.00000000 0.13333333 0.33333333 + 0.06666667 0.13333333 0.33333333 + 0.13333333 0.13333333 0.33333333 + 0.20000000 0.13333333 0.33333333 + 0.26666667 0.13333333 0.33333333 + 0.33333333 0.13333333 0.33333333 + 0.40000000 0.13333333 0.33333333 + 0.46666667 0.13333333 0.33333333 + 0.00000000 0.20000000 0.33333333 + 0.06666667 0.20000000 0.33333333 + 0.13333333 0.20000000 0.33333333 + 0.20000000 0.20000000 0.33333333 + 0.26666667 0.20000000 0.33333333 + 0.33333333 0.20000000 0.33333333 + 0.40000000 0.20000000 0.33333333 + 0.46666667 0.20000000 0.33333333 + 0.00000000 0.26666667 0.33333333 + 0.06666667 0.26666667 0.33333333 + 0.13333333 0.26666667 0.33333333 + 0.20000000 0.26666667 0.33333333 + 0.26666667 0.26666667 0.33333333 + 0.33333333 0.26666667 0.33333333 + 0.40000000 0.26666667 0.33333333 + 0.46666667 0.26666667 0.33333333 + 0.00000000 0.33333333 0.33333333 + 0.06666667 0.33333333 0.33333333 + 0.13333333 0.33333333 0.33333333 + 0.20000000 0.33333333 0.33333333 + 0.26666667 0.33333333 0.33333333 + 0.33333333 0.33333333 0.33333333 + 0.40000000 0.33333333 0.33333333 + 0.46666667 0.33333333 0.33333333 + 0.00000000 0.40000000 0.33333333 + 0.06666667 0.40000000 0.33333333 + 0.13333333 0.40000000 0.33333333 + 0.20000000 0.40000000 0.33333333 + 0.26666667 0.40000000 0.33333333 + 0.33333333 0.40000000 0.33333333 + 0.40000000 0.40000000 0.33333333 + 0.46666667 0.40000000 0.33333333 + 0.00000000 0.46666667 0.33333333 + 0.06666667 0.46666667 0.33333333 + 0.13333333 0.46666667 0.33333333 + 0.20000000 0.46666667 0.33333333 + 0.26666667 0.46666667 0.33333333 + 0.33333333 0.46666667 0.33333333 + 0.40000000 0.46666667 0.33333333 + 0.46666667 0.46666667 0.33333333 + 0.00000000 0.00000000 0.40000000 + 0.06666667 0.00000000 0.40000000 + 0.13333333 0.00000000 0.40000000 + 0.20000000 0.00000000 0.40000000 + 0.26666667 0.00000000 0.40000000 + 0.33333333 0.00000000 0.40000000 + 0.40000000 0.00000000 0.40000000 + 0.46666667 0.00000000 0.40000000 + 0.00000000 0.06666667 0.40000000 + 0.06666667 0.06666667 0.40000000 + 0.13333333 0.06666667 0.40000000 + 0.20000000 0.06666667 0.40000000 + 0.26666667 0.06666667 0.40000000 + 0.33333333 0.06666667 0.40000000 + 0.40000000 0.06666667 0.40000000 + 0.46666667 0.06666667 0.40000000 + 0.00000000 0.13333333 0.40000000 + 0.06666667 0.13333333 0.40000000 + 0.13333333 0.13333333 0.40000000 + 0.20000000 0.13333333 0.40000000 + 0.26666667 0.13333333 0.40000000 + 0.33333333 0.13333333 0.40000000 + 0.40000000 0.13333333 0.40000000 + 0.46666667 0.13333333 0.40000000 + 0.00000000 0.20000000 0.40000000 + 0.06666667 0.20000000 0.40000000 + 0.13333333 0.20000000 0.40000000 + 0.20000000 0.20000000 0.40000000 + 0.26666667 0.20000000 0.40000000 + 0.33333333 0.20000000 0.40000000 + 0.40000000 0.20000000 0.40000000 + 0.46666667 0.20000000 0.40000000 + 0.00000000 0.26666667 0.40000000 + 0.06666667 0.26666667 0.40000000 + 0.13333333 0.26666667 0.40000000 + 0.20000000 0.26666667 0.40000000 + 0.26666667 0.26666667 0.40000000 + 0.33333333 0.26666667 0.40000000 + 0.40000000 0.26666667 0.40000000 + 0.46666667 0.26666667 0.40000000 + 0.00000000 0.33333333 0.40000000 + 0.06666667 0.33333333 0.40000000 + 0.13333333 0.33333333 0.40000000 + 0.20000000 0.33333333 0.40000000 + 0.26666667 0.33333333 0.40000000 + 0.33333333 0.33333333 0.40000000 + 0.40000000 0.33333333 0.40000000 + 0.46666667 0.33333333 0.40000000 + 0.00000000 0.40000000 0.40000000 + 0.06666667 0.40000000 0.40000000 + 0.13333333 0.40000000 0.40000000 + 0.20000000 0.40000000 0.40000000 + 0.26666667 0.40000000 0.40000000 + 0.33333333 0.40000000 0.40000000 + 0.40000000 0.40000000 0.40000000 + 0.46666667 0.40000000 0.40000000 + 0.00000000 0.46666667 0.40000000 + 0.06666667 0.46666667 0.40000000 + 0.13333333 0.46666667 0.40000000 + 0.20000000 0.46666667 0.40000000 + 0.26666667 0.46666667 0.40000000 + 0.33333333 0.46666667 0.40000000 + 0.40000000 0.46666667 0.40000000 + 0.46666667 0.46666667 0.40000000 + 0.00000000 0.00000000 0.46666667 + 0.06666667 0.00000000 0.46666667 + 0.13333333 0.00000000 0.46666667 + 0.20000000 0.00000000 0.46666667 + 0.26666667 0.00000000 0.46666667 + 0.33333333 0.00000000 0.46666667 + 0.40000000 0.00000000 0.46666667 + 0.46666667 0.00000000 0.46666667 + 0.00000000 0.06666667 0.46666667 + 0.06666667 0.06666667 0.46666667 + 0.13333333 0.06666667 0.46666667 + 0.20000000 0.06666667 0.46666667 + 0.26666667 0.06666667 0.46666667 + 0.33333333 0.06666667 0.46666667 + 0.40000000 0.06666667 0.46666667 + 0.46666667 0.06666667 0.46666667 + 0.00000000 0.13333333 0.46666667 + 0.06666667 0.13333333 0.46666667 + 0.13333333 0.13333333 0.46666667 + 0.20000000 0.13333333 0.46666667 + 0.26666667 0.13333333 0.46666667 + 0.33333333 0.13333333 0.46666667 + 0.40000000 0.13333333 0.46666667 + 0.46666667 0.13333333 0.46666667 + 0.00000000 0.20000000 0.46666667 + 0.06666667 0.20000000 0.46666667 + 0.13333333 0.20000000 0.46666667 + 0.20000000 0.20000000 0.46666667 + 0.26666667 0.20000000 0.46666667 + 0.33333333 0.20000000 0.46666667 + 0.40000000 0.20000000 0.46666667 + 0.46666667 0.20000000 0.46666667 + 0.00000000 0.26666667 0.46666667 + 0.06666667 0.26666667 0.46666667 + 0.13333333 0.26666667 0.46666667 + 0.20000000 0.26666667 0.46666667 + 0.26666667 0.26666667 0.46666667 + 0.33333333 0.26666667 0.46666667 + 0.40000000 0.26666667 0.46666667 + 0.46666667 0.26666667 0.46666667 + 0.00000000 0.33333333 0.46666667 + 0.06666667 0.33333333 0.46666667 + 0.13333333 0.33333333 0.46666667 + 0.20000000 0.33333333 0.46666667 + 0.26666667 0.33333333 0.46666667 + 0.33333333 0.33333333 0.46666667 + 0.40000000 0.33333333 0.46666667 + 0.46666667 0.33333333 0.46666667 + 0.00000000 0.40000000 0.46666667 + 0.06666667 0.40000000 0.46666667 + 0.13333333 0.40000000 0.46666667 + 0.20000000 0.40000000 0.46666667 + 0.26666667 0.40000000 0.46666667 + 0.33333333 0.40000000 0.46666667 + 0.40000000 0.40000000 0.46666667 + 0.46666667 0.40000000 0.46666667 + 0.00000000 0.46666667 0.46666667 + 0.06666667 0.46666667 0.46666667 + 0.13333333 0.46666667 0.46666667 + 0.20000000 0.46666667 0.46666667 + 0.26666667 0.46666667 0.46666667 + 0.33333333 0.46666667 0.46666667 + 0.40000000 0.46666667 0.46666667 + 0.46666667 0.46666667 0.46666667 + + + 0.00029630 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00059259 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00118519 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + 0.00237037 + + + + + unknown system + F + + + normal + 600.00000000 + 1293.44900000 + 0.00000100 + 48 + 10 + 18 + 26.00000000 + 0 + 0 + 0 + 0 + 0.00000000 + + 0 + 0.10000000 + 0.50000000 + T + + + F + 0.00000000 0.00000000 + -100 + 2 + F + + + 0 + 2 + 1 + + + 1 + F + 1.00000000 1.00000000 1.00000000 1.00000000 + -1.00000000 + F + 0.00000000 0.00000000 1.00000000 + F + 0.00000000 0.00000000 0.00000000 + F + + + F + F + + + 100 + -5 + 2 + 600.00000000 + + T + F + 0.00000000 + 0.00000001 + 0.30000000 + 4 + 0.40000000 + + + + 0.40000000 + 1.00000000 + 0.10000000 + 1.60000000 + 1.00000000 + + 4 + F + -45 + 100.00000000 + 1 + 1 + 5 + + + + F + F + 0 + 1.00000000 + -100.00000000 -100.00000000 -100.00000000 + 0.00000000 + + + + 24 + 24 + 20 + 48 + 48 + 40 + F + + + 0 + -1 + 0 + 2 + 0.00000000 + 0.00100000 + 0 + 0.50000000 + -3.00000000 + 1.00000000 + + + 3500.00000000 + 3500.00000000 + 1 + 1 + 256 + 16.00000000 + + + 2 + 0.00001000 + + + 0 + -1.00000000 -1.00000000 + 301 + 10.00000000 + -10.00000000 + 0.00000000 + + + 2 + T + F + T + F + F + F + F + F + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + + + 9 + 4 + -1 + T + T + F + F + F + F + + + 3 + 0 + F + 183.85000000 9.01300000 + 0.00000000 0.00000000 + 1.00000000 1.00000000 + T + + T + F + 0 + F + 0 + + -- + 0 + F + + F + F + F + F + F + -1.00000000 + 0 + 0 + 0.00000000 + 0.00000000 + 0.00000000 + 1.00000000 + 1.00000000 + 1.00000000 + 1.00000000 + 1 + 1 + 1 + F + F + F + 0 + 0 + F + 0.00000000 + 0.00000000 + 0 + + + F + -0.84910000 + 0.12340000 + 1.00000000 + 0.00000000 + + + 0 + 6.22065547 + 1.00000000 + + + F + F + F + F + 0 + 0.10000000 + -1.00000000 + 0.00200000 + -0.10000000 + 0.00000000 + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + + + F + 0.00000000 0.00000000 0.00000000 + T + F + F + F + T + 0 + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 + + + F + F + F + T + 0 + -1 0 0 0 + F + F + F + F + F + 2 + F + F + F + -2.00000000 + -2.00000000 + -1.00000000 + -1 + 0.00000000 + 0 + 0 + -1 + -1 + -1 + 100 + 1 + 3 + 0 + -30.00000000 + -30.00000000 + -200.00000000 + 140 + -0.10000000 + F + F + F + F + F + F + F + 1 + 1 + 1 + 2800 + 0 + 1 + -1 + 1.00000000 + + + 0.00000000 + 0.00000000 0.00000000 0.00000000 + 0.00000000 + 0.00000000 + 0.00000000 + + + + 4 + 2 + + ion + element + atomtype + + W 1 + Be 2 + Be 2 + Be 2 + + + + type + atomspertype + element + mass + valence + pseudopotential + + 1W 183.85000000 14.00000000 PAW_PBE W_sv_GW 23Mar2010 + 3Be 9.01300000 4.00000000 PAW_PBE Be_sv_GW 31Mar2010 + + + + + + + 3.66961100 0.00000000 0.00000000 + 0.00000000 3.55744000 0.00000000 + 0.00000000 0.00000000 3.17678100 + + 41.47103646 + + 0.27250845 0.00000000 0.00000000 + 0.00000000 0.28110102 0.00000000 + 0.00000000 0.00000000 0.31478405 + + + + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.50000000 0.50000000 + 0.50000000 0.00000000 0.50000000 + 0.50000000 0.50000000 0.00000000 + + + + + + + + + + 131.43308500 + -1959.85115532 + -527.41646070 + 35.33916255 + 1941.62980019 + -1939.43826086 + -0.00530052 + -1293.52360327 + 3036.59145287 + -575.24128006 + -575.23597954 + -575.23862980 + + + + + + + + + 102.38566418 + 102.39047960 + 102.38807189 + + + + + + + + + -28.97782713 + -28.97098459 + -28.97440586 + + + + + + + + + -49.69418359 + -49.68840810 + -49.69129585 + + + + + + + + + -51.91588940 + -51.91302415 + -51.91445678 + + + + + + + + + -48.35881744 + -48.35566410 + -48.35724077 + + + + + + + + + -48.54575148 + -48.54295784 + -48.54435466 + + + + + + + + + -48.07609882 + -48.07342458 + -48.07476170 + + + + + + + + + -48.12313644 + -48.12026988 + -48.12170316 + + + + + + + + + -48.09347519 + -48.09050147 + -48.09198833 + + + + + + + + + -48.07191482 + -48.06891772 + -48.07041627 + + + + + + + + + -48.07102791 + -48.06801376 + -48.06952083 + + + + + + + + + -48.07113736 + -48.06809293 + -48.06961515 + + + + + + + + + -48.07118539 + -48.06814100 + -48.06966319 + + + + + + + + + -48.07110546 + -48.06805494 + -48.06958020 + + + + + + + + + -48.07109869 + -48.06804980 + -48.06957425 + + + + + + + + + -48.07109883 + -48.06804872 + -48.06957377 + + + + + + + + + -48.07109628 + -48.06804655 + -48.06957141 + + + + + + + + + 131.43308500 + -1959.85115532 + -480.61520692 + 33.47431066 + 3204.45646866 + -3203.57677692 + -0.00304986 + -809.98022412 + 3036.59145287 + -48.07109596 + -48.06804610 + -48.06957103 + + + + + + 3.66961100 0.00000000 0.00000000 + 0.00000000 3.55744000 0.00000000 + 0.00000000 0.00000000 3.17678100 + + 41.47103646 + + 0.27250845 0.00000000 0.00000000 + 0.00000000 0.28110102 0.00000000 + 0.00000000 0.00000000 0.31478405 + + + + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.50000000 0.50000000 + 0.50000000 0.00000000 0.50000000 + 0.50000000 0.50000000 0.00000000 + + + + 0.1 -0.2 -0.3 + 0.4 -0.5 -0.6 + + + -214.84833704 0.00000000 0.00000000 + 0.00000000 -123.75352996 0.00000000 + 0.00000000 -0.00000000 100.18545515 + + + -48.07109596 + -48.06957103 + -0.00304986 + + + + + band + kpoint + spin + eigene + occ + + + + -91.8804 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7478 1.0000 + -30.0216 1.0000 + -29.9884 1.0000 + -29.8113 1.0000 + -2.0041 1.0000 + 4.4237 1.0000 + 4.8277 1.0000 + 6.4981 1.0000 + 6.9617 1.0000 + 8.1586 0.0000 + 8.8821 0.0000 + 8.9648 0.0000 + 9.0855 0.0000 + 13.1593 0.0000 + 14.6689 0.0000 + + + -91.8808 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7478 1.0000 + -30.0237 1.0000 + -29.9882 1.0000 + -29.8111 1.0000 + -1.9535 1.0000 + 4.3336 1.0000 + 4.8001 1.0000 + 6.5232 1.0000 + 6.7555 1.0000 + 8.3862 0.0000 + 8.4025 0.0000 + 8.9705 0.0000 + 9.5855 0.0000 + 13.3605 0.0000 + 14.6572 0.0000 + + + -91.8814 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7477 1.0000 + -30.0297 1.0000 + -29.9877 1.0000 + -29.8105 1.0000 + -1.8058 1.0000 + 4.0326 1.0000 + 4.7589 1.0000 + 6.3613 1.0000 + 6.6323 1.0000 + 7.8755 0.5410 + 8.8446 0.0000 + 8.9868 0.0000 + 10.1754 0.0000 + 14.0117 0.0000 + 14.7252 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7475 1.0000 + -30.0383 1.0000 + -29.9868 1.0000 + -29.8096 1.0000 + -1.5620 1.0000 + 3.5407 1.0000 + 4.7314 1.0000 + 5.9618 1.0000 + 6.8672 1.0000 + 7.4063 1.0000 + 9.0110 0.0000 + 9.3490 0.0000 + 10.7563 0.0000 + 14.0913 0.0000 + 15.1642 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7473 1.0000 + -30.0481 1.0000 + -29.9858 1.0000 + -29.8086 1.0000 + -1.2340 1.0000 + 2.9354 1.0000 + 4.7102 1.0000 + 5.6128 1.0000 + 7.0130 1.0000 + 7.2261 1.0000 + 9.0390 0.0000 + 9.8394 0.0000 + 11.3191 0.0000 + 14.0352 0.0000 + 15.4144 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7471 1.0000 + -30.0576 1.0000 + -29.9848 1.0000 + -29.8076 1.0000 + -0.8326 1.0000 + 2.2914 1.0000 + 4.6917 1.0000 + 5.3376 1.0000 + 6.7081 1.0000 + 7.6717 0.9986 + 9.0662 0.0000 + 10.2804 0.0000 + 11.8535 0.0000 + 13.4527 0.0000 + 14.9300 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7470 1.0000 + -30.0651 1.0000 + -29.9841 1.0000 + -29.8068 1.0000 + -0.3829 1.0000 + 1.6674 1.0000 + 4.6772 1.0000 + 5.1483 1.0000 + 6.5003 1.0000 + 8.1260 0.0003 + 9.0876 0.0000 + 10.6305 0.0000 + 12.3305 0.0000 + 12.9072 0.0000 + 15.1709 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7470 1.0000 + -30.0692 1.0000 + -29.9837 1.0000 + -29.8064 1.0000 + 0.0259 1.0000 + 1.1640 1.0000 + 4.6691 1.0000 + 5.0521 1.0000 + 6.3951 1.0000 + 8.4419 0.0000 + 9.0994 0.0000 + 10.8329 0.0000 + 12.5866 0.0000 + 12.7497 0.0000 + 15.0542 0.0000 + + + -91.8808 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7478 1.0000 + -30.0213 1.0000 + -29.9915 1.0000 + -29.8110 1.0000 + -1.9529 1.0000 + 4.3901 1.0000 + 4.7755 1.0000 + 6.3415 1.0000 + 6.9388 1.0000 + 8.3265 0.0000 + 8.4311 0.0000 + 8.8898 0.0000 + 9.6264 0.0000 + 13.5937 0.0000 + 14.7192 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7477 1.0000 + -30.0234 1.0000 + -29.9912 1.0000 + -29.8108 1.0000 + -1.9023 1.0000 + 4.3246 1.0000 + 4.7293 1.0000 + 6.2087 1.0000 + 6.9819 1.0000 + 8.2546 0.0000 + 8.4565 0.0000 + 8.8007 0.0000 + 9.9214 0.0000 + 13.6485 0.0000 + 14.6504 0.0000 + + + -91.8811 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7476 1.0000 + -30.0294 1.0000 + -29.9906 1.0000 + -29.8102 1.0000 + -1.7528 1.0000 + 4.0516 1.0000 + 4.6663 1.0000 + 5.9785 1.0000 + 7.0276 1.0000 + 7.8427 0.7144 + 8.7719 0.0000 + 8.8056 0.0000 + 10.4508 0.0000 + 14.3989 0.0000 + 15.1127 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7474 1.0000 + -30.0379 1.0000 + -29.9898 1.0000 + -29.8093 1.0000 + -1.5097 1.0000 + 3.5587 1.0000 + 4.6450 1.0000 + 5.7408 1.0000 + 7.1387 1.0000 + 7.4085 1.0000 + 8.7921 0.0000 + 9.2640 0.0000 + 11.0130 0.0000 + 14.0760 0.0000 + 15.2142 0.0000 + + + -91.8804 1.0000 + -91.4252 1.0000 + -91.2903 1.0000 + -65.7472 1.0000 + -30.0478 1.0000 + -29.9888 1.0000 + -29.8083 1.0000 + -1.1815 1.0000 + 2.9494 1.0000 + 4.6412 1.0000 + 5.4944 1.0000 + 7.0285 1.0000 + 7.3926 1.0000 + 8.8271 0.0000 + 9.7408 0.0000 + 11.5692 0.0000 + 13.8620 0.0000 + 14.8771 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7471 1.0000 + -30.0573 1.0000 + -29.9878 1.0000 + -29.8073 1.0000 + -0.7815 1.0000 + 2.3062 1.0000 + 4.6436 1.0000 + 5.2669 1.0000 + 6.7293 1.0000 + 7.7653 0.9516 + 8.8638 0.0000 + 10.1806 0.0000 + 12.1051 0.0000 + 13.3952 0.0000 + 14.8765 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7470 1.0000 + -30.0648 1.0000 + -29.9871 1.0000 + -29.8065 1.0000 + -0.3310 1.0000 + 1.6815 1.0000 + 4.6514 1.0000 + 5.0908 1.0000 + 6.5240 1.0000 + 8.1695 0.0000 + 8.8934 0.0000 + 10.5364 0.0000 + 12.5997 0.0000 + 12.8998 0.0000 + 15.5154 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2913 1.0000 + -65.7469 1.0000 + -30.0689 1.0000 + -29.9867 1.0000 + -29.8062 1.0000 + 0.0847 1.0000 + 1.1741 1.0000 + 4.6613 1.0000 + 4.9916 1.0000 + 6.4197 1.0000 + 8.4555 0.0000 + 8.9099 0.0000 + 10.7473 0.0000 + 12.4480 0.0000 + 12.9600 0.0000 + 14.8774 0.0000 + + + -91.8810 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7476 1.0000 + -30.0204 1.0000 + -29.9998 1.0000 + -29.8102 1.0000 + -1.7946 1.0000 + 4.2094 1.0000 + 4.6772 1.0000 + 5.9995 1.0000 + 6.9517 1.0000 + 7.8739 0.5498 + 8.7041 0.0000 + 8.9110 0.0000 + 10.2112 0.0000 + 14.2659 0.0000 + 14.8795 0.0000 + + + -91.8814 1.0000 + -91.4263 1.0000 + -91.2912 1.0000 + -65.7476 1.0000 + -30.0226 1.0000 + -29.9996 1.0000 + -29.8099 1.0000 + -1.7450 1.0000 + 4.2129 1.0000 + 4.5661 1.0000 + 5.8355 1.0000 + 7.1501 1.0000 + 7.8382 0.7357 + 8.7026 0.0000 + 8.7336 0.0000 + 10.4623 0.0000 + 13.8631 0.0000 + 14.8598 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7475 1.0000 + -30.0285 1.0000 + -29.9991 1.0000 + -29.8093 1.0000 + -1.5968 1.0000 + 4.0989 1.0000 + 4.3522 1.0000 + 5.6129 1.0000 + 7.4328 1.0000 + 7.6870 0.9972 + 8.4839 0.0000 + 8.7940 0.0000 + 10.9754 0.0000 + 14.1029 0.0000 + 15.2039 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7473 1.0000 + -30.0371 1.0000 + -29.9982 1.0000 + -29.8084 1.0000 + -1.3533 1.0000 + 3.5980 1.0000 + 4.3620 1.0000 + 5.4512 1.0000 + 7.3952 1.0000 + 7.5979 1.0000 + 8.3845 0.0000 + 9.0910 0.0000 + 11.5502 0.0000 + 14.7238 0.0000 + 15.9954 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7471 1.0000 + -30.0470 1.0000 + -29.9972 1.0000 + -29.8074 1.0000 + -1.0273 1.0000 + 2.9802 1.0000 + 4.4181 1.0000 + 5.2968 1.0000 + 7.0683 1.0000 + 7.7534 0.9663 + 8.3858 0.0000 + 9.5100 0.0000 + 12.1157 0.0000 + 13.7017 0.0000 + 16.0755 0.0000 + + + -91.8811 1.0000 + -91.4260 1.0000 + -91.2911 1.0000 + -65.7470 1.0000 + -30.0566 1.0000 + -29.9963 1.0000 + -29.8065 1.0000 + -0.6301 1.0000 + 2.3392 1.0000 + 4.4826 1.0000 + 5.1281 1.0000 + 6.7895 1.0000 + 7.9927 0.0600 + 8.4203 0.0000 + 9.9342 0.0000 + 12.6686 0.0000 + 14.6904 0.0000 + 16.3415 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7468 1.0000 + -30.0640 1.0000 + -29.9955 1.0000 + -29.8057 1.0000 + -0.1783 1.0000 + 1.7219 1.0000 + 4.5543 1.0000 + 4.9634 1.0000 + 6.5924 1.0000 + 8.2811 0.0000 + 8.4564 0.0000 + 10.2930 0.0000 + 12.6655 0.0000 + 13.2024 0.0000 + 15.4432 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7467 1.0000 + -30.0681 1.0000 + -29.9951 1.0000 + -29.8053 1.0000 + 0.2566 1.0000 + 1.2033 1.0000 + 4.6272 1.0000 + 4.8360 1.0000 + 6.4912 1.0000 + 8.4783 0.0000 + 8.4935 0.0000 + 10.5194 0.0000 + 12.2814 0.0000 + 13.6544 0.0000 + 14.8524 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7473 1.0000 + -30.0191 1.0000 + -30.0121 1.0000 + -29.8089 1.0000 + -1.5376 1.0000 + 3.7788 1.0000 + 4.6305 1.0000 + 5.6232 1.0000 + 7.1210 1.0000 + 7.3732 1.0000 + 8.9428 0.0000 + 9.1443 0.0000 + 10.7771 0.0000 + 14.0933 0.0000 + 15.6423 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7473 1.0000 + -30.0213 1.0000 + -30.0119 1.0000 + -29.8086 1.0000 + -1.4880 1.0000 + 3.7961 1.0000 + 4.5072 1.0000 + 5.5227 1.0000 + 7.3126 1.0000 + 7.3745 1.0000 + 8.7532 0.0000 + 9.0824 0.0000 + 11.0146 0.0000 + 13.9004 0.0000 + 15.4021 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7472 1.0000 + -30.0271 1.0000 + -30.0113 1.0000 + -29.8080 1.0000 + -1.3394 1.0000 + 3.8230 1.0000 + 4.1696 1.0000 + 5.3756 1.0000 + 7.3639 1.0000 + 7.6935 0.9963 + 8.3844 0.0000 + 8.9738 0.0000 + 11.5333 0.0000 + 14.0395 0.0000 + 15.4431 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7470 1.0000 + -30.0358 1.0000 + -30.0105 1.0000 + -29.8072 1.0000 + -1.1004 1.0000 + 3.5412 1.0000 + 4.0159 1.0000 + 5.2627 1.0000 + 7.2896 1.0000 + 7.9988 0.0504 + 8.0788 0.0028 + 9.0073 0.0000 + 12.1244 0.0000 + 13.7520 0.0000 + 16.7152 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7468 1.0000 + -30.0459 1.0000 + -30.0096 1.0000 + -29.8061 1.0000 + -0.7790 1.0000 + 2.9721 1.0000 + 4.1076 1.0000 + 5.1462 1.0000 + 7.1030 1.0000 + 7.9500 0.1708 + 8.1422 0.0001 + 9.2822 0.0000 + 12.7110 0.0000 + 13.3886 0.0000 + 15.6710 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7467 1.0000 + -30.0554 1.0000 + -30.0087 1.0000 + -29.8053 1.0000 + -0.3863 1.0000 + 2.3710 1.0000 + 4.2299 1.0000 + 5.0035 1.0000 + 6.8764 1.0000 + 7.9435 0.1954 + 8.2650 0.0000 + 9.6513 0.0000 + 12.8907 0.0000 + 13.2663 0.0000 + 15.5200 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7465 1.0000 + -30.0629 1.0000 + -30.0079 1.0000 + -29.8045 1.0000 + 0.0623 1.0000 + 1.7821 1.0000 + 4.3653 1.0000 + 4.8399 1.0000 + 6.6971 1.0000 + 7.9722 0.1031 + 8.4241 0.0000 + 9.9878 0.0000 + 12.3795 0.0000 + 13.7744 0.0000 + 15.4918 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7464 1.0000 + -30.0669 1.0000 + -30.0075 1.0000 + -29.8040 1.0000 + 0.5200 1.0000 + 1.2543 1.0000 + 4.5122 1.0000 + 4.6723 1.0000 + 6.6015 1.0000 + 7.9946 0.0570 + 8.5494 0.0000 + 10.2089 0.0000 + 12.0275 0.0000 + 14.4133 0.0000 + 15.6167 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2908 1.0000 + -65.7470 1.0000 + -30.0263 1.0000 + -30.0177 1.0000 + -29.8073 1.0000 + -1.1910 1.0000 + 3.1811 1.0000 + 4.6122 1.0000 + 5.2814 1.0000 + 6.9503 1.0000 + 7.4746 1.0000 + 8.9798 0.0000 + 9.5814 0.0000 + 11.3283 0.0000 + 13.6460 0.0000 + 15.5948 0.0000 + + + -91.8811 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7470 1.0000 + -30.0261 1.0000 + -30.0198 1.0000 + -29.8072 1.0000 + -1.1414 1.0000 + 3.1889 1.0000 + 4.5083 1.0000 + 5.2434 1.0000 + 6.9639 1.0000 + 7.6097 0.9999 + 8.7962 0.0000 + 9.4992 0.0000 + 11.5568 0.0000 + 13.6608 0.0000 + 15.2250 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7469 1.0000 + -30.0257 1.0000 + -30.0255 1.0000 + -29.8066 1.0000 + -0.9957 1.0000 + 3.1942 1.0000 + 4.2418 1.0000 + 5.1757 1.0000 + 7.0004 1.0000 + 7.9287 0.2579 + 8.4011 0.0000 + 9.3080 0.0000 + 12.0788 0.0000 + 13.5578 0.0000 + 15.2519 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7467 1.0000 + -30.0345 1.0000 + -30.0247 1.0000 + -29.8057 1.0000 + -0.7602 1.0000 + 3.1062 1.0000 + 3.9790 1.0000 + 5.1030 1.0000 + 7.0431 1.0000 + 7.9901 0.0646 + 8.2728 0.0000 + 9.1426 0.0000 + 12.6730 0.0000 + 13.3289 0.0000 + 15.7896 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7465 1.0000 + -30.0445 1.0000 + -30.0237 1.0000 + -29.8047 1.0000 + -0.4475 1.0000 + 2.8028 1.0000 + 3.9098 1.0000 + 5.0079 1.0000 + 7.0489 1.0000 + 7.6784 0.9981 + 8.4720 0.0000 + 9.1821 0.0000 + 12.9563 0.0000 + 13.5965 0.0000 + 17.2388 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7463 1.0000 + -30.0541 1.0000 + -30.0228 1.0000 + -29.8038 1.0000 + -0.0679 1.0000 + 2.3493 1.0000 + 3.9944 1.0000 + 4.8777 1.0000 + 6.9573 1.0000 + 7.5462 1.0000 + 8.5230 0.0000 + 9.4304 0.0000 + 12.4873 0.0000 + 13.6262 0.0000 + 16.0306 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2897 1.0000 + -65.7461 1.0000 + -30.0615 1.0000 + -30.0221 1.0000 + -29.8030 1.0000 + 0.3633 1.0000 + 1.8487 1.0000 + 4.1415 1.0000 + 4.7166 1.0000 + 6.8214 1.0000 + 7.5399 1.0000 + 8.5695 0.0000 + 9.7014 0.0000 + 12.0422 0.0000 + 13.9068 0.0000 + 16.1837 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7461 1.0000 + -30.0656 1.0000 + -30.0217 1.0000 + -29.8026 1.0000 + 0.8283 1.0000 + 1.3477 1.0000 + 4.3004 1.0000 + 4.5506 1.0000 + 6.7365 1.0000 + 7.5567 1.0000 + 8.6157 0.0000 + 9.8832 0.0000 + 11.7458 0.0000 + 14.0429 0.0000 + 16.0539 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7468 1.0000 + -30.0398 1.0000 + -30.0163 1.0000 + -29.8059 1.0000 + -0.7675 1.0000 + 2.5196 1.0000 + 4.5999 1.0000 + 5.0061 1.0000 + 6.6208 1.0000 + 7.9708 0.1066 + 9.0157 0.0000 + 9.9775 0.0000 + 11.8614 0.0000 + 13.1993 0.0000 + 15.3650 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7467 1.0000 + -30.0395 1.0000 + -30.0184 1.0000 + -29.8057 1.0000 + -0.7188 1.0000 + 2.5262 1.0000 + 4.5193 1.0000 + 4.9986 1.0000 + 6.6392 1.0000 + 8.0523 0.0083 + 8.8426 0.0000 + 9.8894 0.0000 + 12.0868 0.0000 + 13.1663 0.0000 + 16.1220 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7466 1.0000 + -30.0390 1.0000 + -30.0243 1.0000 + -29.8052 1.0000 + -0.5758 1.0000 + 2.5363 1.0000 + 4.3168 1.0000 + 4.9744 1.0000 + 6.6919 1.0000 + 8.2598 0.0000 + 8.4520 0.0000 + 9.6694 0.0000 + 12.6304 0.0000 + 13.0732 0.0000 + 15.6443 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7465 1.0000 + -30.0382 1.0000 + -30.0332 1.0000 + -29.8043 1.0000 + -0.3483 1.0000 + 2.5183 1.0000 + 4.0832 1.0000 + 4.9265 1.0000 + 6.7709 1.0000 + 8.0186 0.0274 + 8.5126 0.0000 + 9.4183 0.0000 + 12.8043 0.0000 + 13.1910 0.0000 + 15.7181 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7462 1.0000 + -30.0432 1.0000 + -30.0373 1.0000 + -29.8034 1.0000 + -0.0478 1.0000 + 2.4216 1.0000 + 3.9190 1.0000 + 4.8440 1.0000 + 6.8610 1.0000 + 7.6333 0.9998 + 8.7054 0.0000 + 9.2656 0.0000 + 12.4562 0.0000 + 13.6001 0.0000 + 16.2032 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7460 1.0000 + -30.0528 1.0000 + -30.0364 1.0000 + -29.8024 1.0000 + 0.3045 1.0000 + 2.2066 1.0000 + 3.8869 1.0000 + 4.7195 1.0000 + 6.9324 1.0000 + 7.3479 1.0000 + 8.7335 0.0000 + 9.3281 0.0000 + 12.0629 0.0000 + 13.7569 0.0000 + 16.5710 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7459 1.0000 + -30.0602 1.0000 + -30.0357 1.0000 + -29.8017 1.0000 + 0.6908 1.0000 + 1.8937 1.0000 + 3.9664 1.0000 + 4.5594 1.0000 + 6.9277 1.0000 + 7.2186 1.0000 + 8.6985 0.0000 + 9.4867 0.0000 + 11.7099 0.0000 + 13.7542 0.0000 + 16.7032 0.0000 + + + -91.8786 1.0000 + -91.4236 1.0000 + -91.2886 1.0000 + -65.7457 1.0000 + -30.0642 1.0000 + -30.0352 1.0000 + -29.8012 1.0000 + 1.0768 1.0000 + 1.5402 1.0000 + 4.0958 1.0000 + 4.3989 1.0000 + 6.8746 1.0000 + 7.2086 1.0000 + 8.6828 0.0000 + 9.6000 0.0000 + 11.4903 0.0000 + 13.7171 0.0000 + 16.6030 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7465 1.0000 + -30.0502 1.0000 + -30.0152 1.0000 + -29.8048 1.0000 + -0.2969 1.0000 + 1.8722 1.0000 + 4.5904 1.0000 + 4.8147 1.0000 + 6.3956 1.0000 + 8.5207 0.0000 + 9.0442 0.0000 + 10.2923 0.0000 + 12.3631 0.0000 + 12.6799 0.0000 + 15.4633 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7465 1.0000 + -30.0501 1.0000 + -30.0173 1.0000 + -29.8046 1.0000 + -0.2476 1.0000 + 1.8793 1.0000 + 4.5376 1.0000 + 4.8080 1.0000 + 6.4159 1.0000 + 8.5593 0.0000 + 8.8804 0.0000 + 10.2052 0.0000 + 12.5854 0.0000 + 12.5895 0.0000 + 14.7751 0.0000 + + + -91.8814 1.0000 + -91.4264 1.0000 + -91.2914 1.0000 + -65.7464 1.0000 + -30.0496 1.0000 + -30.0233 1.0000 + -29.8041 1.0000 + -0.1045 1.0000 + 1.8964 1.0000 + 4.3983 1.0000 + 4.7846 1.0000 + 6.4746 1.0000 + 8.5014 0.0000 + 8.6596 0.0000 + 9.9796 0.0000 + 12.4726 0.0000 + 13.1496 0.0000 + 15.1815 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7462 1.0000 + -30.0487 1.0000 + -30.0321 1.0000 + -29.8032 1.0000 + 0.1204 1.0000 + 1.9197 1.0000 + 4.2177 1.0000 + 4.7361 1.0000 + 6.5646 1.0000 + 8.0702 0.0040 + 8.7844 0.0000 + 9.6958 0.0000 + 12.2586 0.0000 + 13.7021 0.0000 + 15.4427 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7460 1.0000 + -30.0478 1.0000 + -30.0422 1.0000 + -29.8023 1.0000 + 0.4035 1.0000 + 1.9363 1.0000 + 4.0468 1.0000 + 4.6515 1.0000 + 6.6739 1.0000 + 7.6760 0.9983 + 8.8822 0.0000 + 9.4477 0.0000 + 11.9748 0.0000 + 13.8742 0.0000 + 16.0112 0.0000 + + + -91.8797 1.0000 + -91.4248 1.0000 + -91.2897 1.0000 + -65.7458 1.0000 + -30.0517 1.0000 + -30.0469 1.0000 + -29.8013 1.0000 + 0.7108 1.0000 + 1.9297 1.0000 + 3.9336 1.0000 + 4.5238 1.0000 + 6.7857 1.0000 + 7.3592 1.0000 + 8.8793 0.0000 + 9.3398 0.0000 + 11.6821 0.0000 + 13.7440 0.0000 + 16.5307 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7456 1.0000 + -30.0593 1.0000 + -30.0463 1.0000 + -29.8006 1.0000 + 0.9965 1.0000 + 1.8877 1.0000 + 3.9039 1.0000 + 4.3616 1.0000 + 6.8809 1.0000 + 7.1374 1.0000 + 8.7963 0.0000 + 9.3615 0.0000 + 11.4387 0.0000 + 13.5583 0.0000 + 16.9470 0.0000 + + + -91.8787 1.0000 + -91.4238 1.0000 + -91.2887 1.0000 + -65.7455 1.0000 + -30.0632 1.0000 + -30.0459 1.0000 + -29.8002 1.0000 + 1.1916 1.0000 + 1.8308 1.0000 + 3.9520 1.0000 + 4.2094 1.0000 + 6.9473 1.0000 + 7.0123 1.0000 + 8.7381 0.0000 + 9.3978 0.0000 + 11.2989 0.0000 + 13.4437 0.0000 + 16.5925 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7463 1.0000 + -30.0559 1.0000 + -30.0145 1.0000 + -29.8042 1.0000 + 0.1293 1.0000 + 1.3542 1.0000 + 4.5849 1.0000 + 4.7168 1.0000 + 6.2814 1.0000 + 8.9385 0.0000 + 9.0598 0.0000 + 10.4726 0.0000 + 12.1850 0.0000 + 12.8255 0.0000 + 15.1774 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7463 1.0000 + -30.0557 1.0000 + -30.0167 1.0000 + -29.8040 1.0000 + 0.1836 1.0000 + 1.3565 1.0000 + 4.5671 1.0000 + 4.6874 1.0000 + 6.3024 1.0000 + 8.9015 0.0000 + 8.9469 0.0000 + 10.3933 0.0000 + 12.1353 0.0000 + 13.0125 0.0000 + 15.3429 0.0000 + + + -91.8806 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7462 1.0000 + -30.0552 1.0000 + -30.0227 1.0000 + -29.8035 1.0000 + 0.3435 1.0000 + 1.3655 1.0000 + 4.4967 1.0000 + 4.6242 1.0000 + 6.3631 1.0000 + 8.5307 0.0000 + 8.9685 0.0000 + 10.1791 0.0000 + 12.0342 0.0000 + 13.5893 0.0000 + 16.0045 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7460 1.0000 + -30.0544 1.0000 + -30.0315 1.0000 + -29.8026 1.0000 + 0.5914 1.0000 + 1.3832 1.0000 + 4.3674 1.0000 + 4.5524 1.0000 + 6.4562 1.0000 + 8.1044 0.0009 + 8.9932 0.0000 + 9.8884 0.0000 + 11.8622 0.0000 + 14.2861 0.0000 + 15.0487 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7459 1.0000 + -30.0535 1.0000 + -30.0416 1.0000 + -29.8017 1.0000 + 0.8833 1.0000 + 1.4308 1.0000 + 4.2192 1.0000 + 4.4522 1.0000 + 6.5696 1.0000 + 7.7127 0.9919 + 9.0016 0.0000 + 9.5963 0.0000 + 11.6488 0.0000 + 14.0297 0.0000 + 15.9577 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7457 1.0000 + -30.0528 1.0000 + -30.0512 1.0000 + -29.8008 1.0000 + 1.1157 1.0000 + 1.5761 1.0000 + 4.0844 1.0000 + 4.3103 1.0000 + 6.6854 1.0000 + 7.3974 1.0000 + 8.9559 0.0000 + 9.3894 0.0000 + 11.4424 0.0000 + 13.7001 0.0000 + 16.5151 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7455 1.0000 + -30.0587 1.0000 + -30.0521 1.0000 + -29.8000 1.0000 + 1.2081 1.0000 + 1.8399 1.0000 + 3.9754 1.0000 + 4.1492 1.0000 + 6.7823 1.0000 + 7.1786 1.0000 + 8.8498 0.0000 + 9.3109 0.0000 + 11.2830 0.0000 + 13.4354 0.0000 + 16.6304 0.0000 + + + -91.8793 1.0000 + -91.4243 1.0000 + -91.2893 1.0000 + -65.7454 1.0000 + -30.0627 1.0000 + -30.0518 1.0000 + -29.7996 1.0000 + 1.2328 1.0000 + 2.0507 1.0000 + 3.8985 1.0000 + 4.0417 1.0000 + 6.8389 1.0000 + 7.0660 1.0000 + 8.7690 0.0000 + 9.2970 0.0000 + 11.2437 0.0000 + 14.1131 0.0000 + 18.0681 0.0000 + + + -91.8804 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7474 1.0000 + -30.0205 1.0000 + -29.9874 1.0000 + -29.8211 1.0000 + -1.9380 1.0000 + 4.4295 1.0000 + 4.8508 1.0000 + 6.3792 1.0000 + 6.8138 1.0000 + 8.1771 0.0000 + 8.8386 0.0000 + 8.9434 0.0000 + 9.0466 0.0000 + 13.4689 0.0000 + 14.8465 0.0000 + + + -91.8802 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7474 1.0000 + -30.0226 1.0000 + -29.9872 1.0000 + -29.8209 1.0000 + -1.8859 1.0000 + 4.3438 1.0000 + 4.8274 1.0000 + 6.3656 1.0000 + 6.6651 1.0000 + 8.2366 0.0000 + 8.4561 0.0000 + 9.1702 0.0000 + 9.3749 0.0000 + 14.6979 0.0000 + 15.1035 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7473 1.0000 + -30.0286 1.0000 + -29.9866 1.0000 + -29.8203 1.0000 + -1.7375 1.0000 + 4.0528 1.0000 + 4.7878 1.0000 + 6.3364 1.0000 + 6.3830 1.0000 + 8.0619 0.0057 + 8.3336 0.0000 + 9.5014 0.0000 + 9.9115 0.0000 + 14.1815 0.0000 + 14.9183 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7471 1.0000 + -30.0372 1.0000 + -29.9857 1.0000 + -29.8195 1.0000 + -1.4939 1.0000 + 3.5647 1.0000 + 4.7595 1.0000 + 5.9723 1.0000 + 6.4743 1.0000 + 7.7497 0.9700 + 8.4147 0.0000 + 9.9423 0.0000 + 10.4794 0.0000 + 14.3282 0.0000 + 15.0758 0.0000 + + + -91.8796 1.0000 + -91.4244 1.0000 + -91.2894 1.0000 + -65.7469 1.0000 + -30.0470 1.0000 + -29.9846 1.0000 + -29.8185 1.0000 + -1.1660 1.0000 + 2.9634 1.0000 + 4.7389 1.0000 + 5.6413 1.0000 + 6.5416 1.0000 + 7.6483 0.9995 + 8.4831 0.0000 + 10.4090 0.0000 + 11.0447 0.0000 + 15.0305 0.0000 + 15.6832 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7468 1.0000 + -30.0566 1.0000 + -29.9837 1.0000 + -29.8176 1.0000 + -0.7654 1.0000 + 2.3210 1.0000 + 4.7218 1.0000 + 5.3752 1.0000 + 6.4754 1.0000 + 7.8474 0.6915 + 8.5405 0.0000 + 10.8486 0.0000 + 11.5771 0.0000 + 13.5613 0.0000 + 15.1290 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7467 1.0000 + -30.0642 1.0000 + -29.9830 1.0000 + -29.8168 1.0000 + -0.3160 1.0000 + 1.6951 1.0000 + 4.7092 1.0000 + 5.1905 1.0000 + 6.3590 1.0000 + 8.1987 0.0000 + 8.5831 0.0000 + 11.2134 0.0000 + 12.0304 0.0000 + 12.9684 0.0000 + 14.5851 0.0000 + + + -91.8817 1.0000 + -91.4266 1.0000 + -91.2917 1.0000 + -65.7467 1.0000 + -30.0683 1.0000 + -29.9826 1.0000 + -29.8165 1.0000 + 0.1015 1.0000 + 1.1853 1.0000 + 4.7026 1.0000 + 5.0962 1.0000 + 6.2848 1.0000 + 8.4738 0.0000 + 8.6059 0.0000 + 11.4369 0.0000 + 12.3087 0.0000 + 12.6173 0.0000 + 14.4394 0.0000 + + + -91.8803 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7474 1.0000 + -30.0202 1.0000 + -29.9904 1.0000 + -29.8208 1.0000 + -1.8853 1.0000 + 4.3956 1.0000 + 4.8088 1.0000 + 6.2602 1.0000 + 6.7341 1.0000 + 8.1965 0.0000 + 8.5252 0.0000 + 9.0697 0.0000 + 9.4119 0.0000 + 13.8616 0.0000 + 15.2576 0.0000 + + + -91.8804 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7473 1.0000 + -30.0223 1.0000 + -29.9901 1.0000 + -29.8206 1.0000 + -1.8347 1.0000 + 4.3325 1.0000 + 4.7685 1.0000 + 6.1044 1.0000 + 6.8162 1.0000 + 7.9710 0.1061 + 8.7574 0.0000 + 8.9151 0.0000 + 9.6966 0.0000 + 13.8495 0.0000 + 14.8611 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7473 1.0000 + -30.0283 1.0000 + -29.9896 1.0000 + -29.8200 1.0000 + -1.6854 1.0000 + 4.0715 1.0000 + 4.7055 1.0000 + 5.8924 1.0000 + 6.8149 1.0000 + 7.7859 0.9146 + 8.5439 0.0000 + 9.2979 0.0000 + 10.1790 0.0000 + 14.4429 0.0000 + 14.9450 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7471 1.0000 + -30.0369 1.0000 + -29.9887 1.0000 + -29.8192 1.0000 + -1.4415 1.0000 + 3.5859 1.0000 + 4.6793 1.0000 + 5.7131 1.0000 + 6.7163 1.0000 + 7.7038 0.9943 + 8.3889 0.0000 + 9.7722 0.0000 + 10.7211 0.0000 + 14.3964 0.0000 + 15.0087 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7469 1.0000 + -30.0468 1.0000 + -29.9877 1.0000 + -29.8182 1.0000 + -1.1142 1.0000 + 2.9798 1.0000 + 4.6736 1.0000 + 5.5108 1.0000 + 6.6199 1.0000 + 7.7221 0.9885 + 8.3636 0.0000 + 10.2499 0.0000 + 11.2691 0.0000 + 14.1095 0.0000 + 16.1309 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7467 1.0000 + -30.0564 1.0000 + -29.9867 1.0000 + -29.8173 1.0000 + -0.7140 1.0000 + 2.3366 1.0000 + 4.6761 1.0000 + 5.3013 1.0000 + 6.5008 1.0000 + 7.9230 0.2850 + 8.3953 0.0000 + 10.6940 0.0000 + 11.7823 0.0000 + 13.5487 0.0000 + 15.0697 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7466 1.0000 + -30.0639 1.0000 + -29.9860 1.0000 + -29.8166 1.0000 + -0.2628 1.0000 + 1.7117 1.0000 + 4.6852 1.0000 + 5.1307 1.0000 + 6.3817 1.0000 + 8.2332 0.0000 + 8.4366 0.0000 + 11.0609 0.0000 + 12.1858 0.0000 + 13.0336 0.0000 + 14.9369 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7466 1.0000 + -30.0680 1.0000 + -29.9856 1.0000 + -29.8162 1.0000 + 0.1614 1.0000 + 1.1971 1.0000 + 4.6963 1.0000 + 5.0329 1.0000 + 6.3108 1.0000 + 8.4305 0.0000 + 8.5088 0.0000 + 11.2905 0.0000 + 12.2531 0.0000 + 13.6523 0.0000 + 15.0165 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7472 1.0000 + -30.0193 1.0000 + -29.9987 1.0000 + -29.8199 1.0000 + -1.7259 1.0000 + 4.2208 1.0000 + 4.7206 1.0000 + 5.9736 1.0000 + 6.6199 1.0000 + 8.1432 0.0001 + 8.2436 0.0000 + 9.3875 0.0000 + 9.9330 0.0000 + 14.2783 0.0000 + 14.9326 0.0000 + + + -91.8805 1.0000 + -91.4253 1.0000 + -91.2904 1.0000 + -65.7472 1.0000 + -30.0214 1.0000 + -29.9985 1.0000 + -29.8197 1.0000 + -1.6767 1.0000 + 4.2223 1.0000 + 4.6204 1.0000 + 5.7734 1.0000 + 6.8479 1.0000 + 7.7918 0.9010 + 8.5549 0.0000 + 9.2077 0.0000 + 10.1836 0.0000 + 14.6923 0.0000 + 15.0199 0.0000 + + + -91.8807 1.0000 + -91.4255 1.0000 + -91.2906 1.0000 + -65.7471 1.0000 + -30.0274 1.0000 + -29.9980 1.0000 + -29.8192 1.0000 + -1.5287 1.0000 + 4.1177 1.0000 + 4.4062 1.0000 + 5.5506 1.0000 + 7.1483 1.0000 + 7.4218 1.0000 + 8.7268 0.0000 + 9.0973 0.0000 + 10.6622 0.0000 + 14.4498 0.0000 + 15.1810 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7469 1.0000 + -30.0361 1.0000 + -29.9971 1.0000 + -29.8183 1.0000 + -1.2856 1.0000 + 3.6350 1.0000 + 4.3984 1.0000 + 5.4250 1.0000 + 6.9924 1.0000 + 7.5022 1.0000 + 8.4908 0.0000 + 9.4686 0.0000 + 11.2024 0.0000 + 14.4000 0.0000 + 15.1855 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7467 1.0000 + -30.0460 1.0000 + -29.9962 1.0000 + -29.8174 1.0000 + -0.9603 1.0000 + 3.0182 1.0000 + 4.4522 1.0000 + 5.3087 1.0000 + 6.7413 1.0000 + 7.7217 0.9886 + 8.3005 0.0000 + 9.9206 0.0000 + 11.7328 0.0000 + 13.9753 0.0000 + 15.3830 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7465 1.0000 + -30.0556 1.0000 + -29.9952 1.0000 + -29.8164 1.0000 + -0.5617 1.0000 + 2.3790 1.0000 + 4.5170 1.0000 + 5.1603 1.0000 + 6.5656 1.0000 + 7.9200 0.2994 + 8.2560 0.0000 + 10.3547 0.0000 + 12.1577 0.0000 + 13.5549 0.0000 + 17.9977 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7464 1.0000 + -30.0631 1.0000 + -29.9945 1.0000 + -29.8157 1.0000 + -0.1093 1.0000 + 1.7590 1.0000 + 4.5897 1.0000 + 5.0004 1.0000 + 6.4473 1.0000 + 8.0381 0.0140 + 8.3802 0.0000 + 10.7217 0.0000 + 12.2601 0.0000 + 13.3666 0.0000 + 15.0205 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7464 1.0000 + -30.0672 1.0000 + -29.9941 1.0000 + -29.8153 1.0000 + 0.3334 1.0000 + 1.2318 1.0000 + 4.6652 1.0000 + 4.8709 1.0000 + 6.3846 1.0000 + 8.0775 0.0029 + 8.5356 0.0000 + 10.9631 0.0000 + 12.0560 0.0000 + 14.6802 0.0000 + 15.7986 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7470 1.0000 + -30.0181 1.0000 + -30.0111 1.0000 + -29.8187 1.0000 + -1.4695 1.0000 + 3.7994 1.0000 + 4.6693 1.0000 + 5.6325 1.0000 + 6.5974 1.0000 + 7.8461 0.6978 + 8.3061 0.0000 + 9.7917 0.0000 + 10.4886 0.0000 + 14.2428 0.0000 + 15.3871 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7469 1.0000 + -30.0202 1.0000 + -30.0109 1.0000 + -29.8185 1.0000 + -1.4195 1.0000 + 3.8193 1.0000 + 4.5504 1.0000 + 5.5098 1.0000 + 6.7466 1.0000 + 7.7637 0.9539 + 8.3458 0.0000 + 9.6384 0.0000 + 10.7162 0.0000 + 14.2161 0.0000 + 15.3807 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7468 1.0000 + -30.0261 1.0000 + -30.0103 1.0000 + -29.8179 1.0000 + -1.2729 1.0000 + 3.8625 1.0000 + 4.2037 1.0000 + 5.3571 1.0000 + 6.9709 1.0000 + 7.5306 1.0000 + 8.5275 0.0000 + 9.3693 0.0000 + 11.1903 0.0000 + 14.9903 0.0000 + 31.3493 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7467 1.0000 + -30.0349 1.0000 + -30.0095 1.0000 + -29.8171 1.0000 + -1.0337 1.0000 + 3.6024 1.0000 + 4.0290 1.0000 + 5.2643 1.0000 + 7.0029 1.0000 + 7.3935 1.0000 + 8.6571 0.0000 + 9.2934 0.0000 + 11.7135 0.0000 + 14.0675 0.0000 + 15.4038 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7464 1.0000 + -30.0448 1.0000 + -30.0085 1.0000 + -29.8161 1.0000 + -0.7114 1.0000 + 3.0260 1.0000 + 4.1301 1.0000 + 5.1712 1.0000 + 6.8136 1.0000 + 7.4784 1.0000 + 8.5466 0.0000 + 9.5926 0.0000 + 12.1469 0.0000 + 13.8100 0.0000 + 15.8147 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7463 1.0000 + -30.0544 1.0000 + -30.0076 1.0000 + -29.8152 1.0000 + -0.3183 1.0000 + 2.4223 1.0000 + 4.2569 1.0000 + 5.0412 1.0000 + 6.6493 1.0000 + 7.5743 1.0000 + 8.4765 0.0000 + 9.9779 0.0000 + 12.2811 0.0000 + 13.6749 0.0000 + 15.6480 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7461 1.0000 + -30.0619 1.0000 + -30.0069 1.0000 + -29.8145 1.0000 + 0.1309 1.0000 + 1.8302 1.0000 + 4.3950 1.0000 + 4.8792 1.0000 + 6.5467 1.0000 + 7.6338 0.9998 + 8.5191 0.0000 + 10.3234 0.0000 + 12.0332 0.0000 + 13.9324 0.0000 + 15.8350 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7461 1.0000 + -30.0660 1.0000 + -30.0065 1.0000 + -29.8141 1.0000 + 0.5962 1.0000 + 1.2931 1.0000 + 4.5437 1.0000 + 4.7091 1.0000 + 6.4966 1.0000 + 7.6617 0.9991 + 8.5908 0.0000 + 10.5605 0.0000 + 11.7454 0.0000 + 14.3195 0.0000 + 15.4240 0.0000 + + + -91.8811 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7467 1.0000 + -30.0253 1.0000 + -30.0166 1.0000 + -29.8173 1.0000 + -1.1232 1.0000 + 3.2045 1.0000 + 4.6486 1.0000 + 5.3096 1.0000 + 6.5657 1.0000 + 7.8108 0.8458 + 8.3758 0.0000 + 10.2111 0.0000 + 11.0400 0.0000 + 13.9258 0.0000 + 15.5259 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7466 1.0000 + -30.0251 1.0000 + -30.0187 1.0000 + -29.8171 1.0000 + -1.0740 1.0000 + 3.2169 1.0000 + 4.5463 1.0000 + 5.2645 1.0000 + 6.6130 1.0000 + 7.8637 0.6062 + 8.2993 0.0000 + 10.0666 0.0000 + 11.2485 0.0000 + 13.8793 0.0000 + 15.1310 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7465 1.0000 + -30.0247 1.0000 + -30.0245 1.0000 + -29.8165 1.0000 + -0.9278 1.0000 + 3.2332 1.0000 + 4.2746 1.0000 + 5.1943 1.0000 + 6.7018 1.0000 + 7.7714 0.9424 + 8.3727 0.0000 + 9.7624 0.0000 + 11.6929 0.0000 + 13.8341 0.0000 + 15.2470 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7463 1.0000 + -30.0335 1.0000 + -30.0237 1.0000 + -29.8157 1.0000 + -0.6936 1.0000 + 3.1651 1.0000 + 3.9951 1.0000 + 5.1310 1.0000 + 6.7693 1.0000 + 7.5109 1.0000 + 8.6573 0.0000 + 9.4680 0.0000 + 12.1191 0.0000 + 13.7501 0.0000 + 16.2199 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7461 1.0000 + -30.0435 1.0000 + -30.0228 1.0000 + -29.8147 1.0000 + -0.3808 1.0000 + 2.8709 1.0000 + 3.9188 1.0000 + 5.0470 1.0000 + 6.7750 1.0000 + 7.3303 1.0000 + 8.7957 0.0000 + 9.4194 0.0000 + 12.2854 0.0000 + 15.1004 0.0000 + 16.6631 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7460 1.0000 + -30.0531 1.0000 + -30.0219 1.0000 + -29.8138 1.0000 + -0.0012 1.0000 + 2.4149 1.0000 + 4.0086 1.0000 + 4.9212 1.0000 + 6.7199 1.0000 + 7.2772 1.0000 + 8.7185 0.0000 + 9.6676 0.0000 + 12.0399 0.0000 + 13.9078 0.0000 + 16.1396 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7458 1.0000 + -30.0605 1.0000 + -30.0212 1.0000 + -29.8131 1.0000 + 0.4304 1.0000 + 1.9114 1.0000 + 4.1602 1.0000 + 4.7577 1.0000 + 6.6629 1.0000 + 7.2826 1.0000 + 8.6633 0.0000 + 9.9472 0.0000 + 11.6785 0.0000 + 15.2726 0.0000 + 16.0488 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7457 1.0000 + -30.0646 1.0000 + -30.0207 1.0000 + -29.8127 1.0000 + 0.8992 1.0000 + 1.4048 1.0000 + 4.3197 1.0000 + 4.5902 1.0000 + 6.6327 1.0000 + 7.2942 1.0000 + 8.6558 0.0000 + 10.1424 0.0000 + 11.4034 0.0000 + 14.2472 0.0000 + 41.7288 0.0000 + + + -91.8814 1.0000 + -91.4263 1.0000 + -91.2913 1.0000 + -65.7464 1.0000 + -30.0388 1.0000 + -30.0152 1.0000 + -29.8160 1.0000 + -0.7011 1.0000 + 2.5446 1.0000 + 4.6365 1.0000 + 5.0441 1.0000 + 6.4285 1.0000 + 8.1110 0.0006 + 8.4422 0.0000 + 10.6018 0.0000 + 11.5597 0.0000 + 13.3506 0.0000 + 15.1051 0.0000 + + + -91.8812 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7464 1.0000 + -30.0386 1.0000 + -30.0173 1.0000 + -29.8158 1.0000 + -0.6526 1.0000 + 2.5545 1.0000 + 4.5567 1.0000 + 5.0344 1.0000 + 6.4474 1.0000 + 8.1580 0.0000 + 8.3450 0.0000 + 10.4604 0.0000 + 11.7435 0.0000 + 13.3794 0.0000 + 15.8365 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7462 1.0000 + -30.0381 1.0000 + -30.0233 1.0000 + -29.8152 1.0000 + -0.5089 1.0000 + 2.5736 1.0000 + 4.3507 1.0000 + 5.0102 1.0000 + 6.4989 1.0000 + 7.9569 0.1473 + 8.4473 0.0000 + 10.1404 0.0000 + 12.0883 0.0000 + 13.4032 0.0000 + 15.1473 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7461 1.0000 + -30.0373 1.0000 + -30.0321 1.0000 + -29.8143 1.0000 + -0.2806 1.0000 + 2.5705 1.0000 + 4.1067 1.0000 + 4.9666 1.0000 + 6.5721 1.0000 + 7.6198 0.9999 + 8.7017 0.0000 + 9.7782 0.0000 + 12.2391 0.0000 + 13.5917 0.0000 + 15.4441 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7459 1.0000 + -30.0422 1.0000 + -30.0363 1.0000 + -29.8134 1.0000 + 0.0188 1.0000 + 2.4896 1.0000 + 3.9304 1.0000 + 4.8876 1.0000 + 6.6514 1.0000 + 7.3330 1.0000 + 8.9105 0.0000 + 9.5027 0.0000 + 12.0077 0.0000 + 14.3536 0.0000 + 16.5093 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7457 1.0000 + -30.0518 1.0000 + -30.0354 1.0000 + -29.8125 1.0000 + 0.3709 1.0000 + 2.2835 1.0000 + 3.8916 1.0000 + 4.7617 1.0000 + 6.7183 1.0000 + 7.1436 1.0000 + 8.9049 0.0000 + 9.4941 0.0000 + 11.7396 0.0000 + 15.6793 0.0000 + 16.9345 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7455 1.0000 + -30.0593 1.0000 + -30.0348 1.0000 + -29.8117 1.0000 + 0.7545 1.0000 + 1.9742 1.0000 + 3.9744 1.0000 + 4.5954 1.0000 + 6.7577 1.0000 + 7.0518 1.0000 + 8.7886 0.0000 + 9.6473 0.0000 + 11.3101 0.0000 + 14.0340 0.0000 + 16.7643 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7454 1.0000 + -30.0633 1.0000 + -30.0343 1.0000 + -29.8114 1.0000 + 1.1319 1.0000 + 1.6271 1.0000 + 4.1052 1.0000 + 4.4298 1.0000 + 6.7711 1.0000 + 7.0239 1.0000 + 8.7206 0.0000 + 9.7665 0.0000 + 11.0890 0.0000 + 13.9788 0.0000 + 16.9520 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7462 1.0000 + -30.0493 1.0000 + -30.0141 1.0000 + -29.8149 1.0000 + -0.2288 1.0000 + 1.8983 1.0000 + 4.6283 1.0000 + 4.8575 1.0000 + 6.2772 1.0000 + 8.4945 0.0000 + 8.5804 0.0000 + 10.9224 0.0000 + 11.9786 0.0000 + 12.7899 0.0000 + 14.9087 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7461 1.0000 + -30.0491 1.0000 + -30.0162 1.0000 + -29.8147 1.0000 + -0.1792 1.0000 + 1.9074 1.0000 + 4.5762 1.0000 + 4.8487 1.0000 + 6.2969 1.0000 + 8.3585 0.0000 + 8.6284 0.0000 + 10.7823 0.0000 + 12.0806 0.0000 + 12.8868 0.0000 + 15.2348 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7460 1.0000 + -30.0486 1.0000 + -30.0222 1.0000 + -29.8141 1.0000 + -0.0352 1.0000 + 1.9332 1.0000 + 4.4339 1.0000 + 4.8242 1.0000 + 6.3536 1.0000 + 8.0475 0.0099 + 8.7378 0.0000 + 10.4554 0.0000 + 12.1158 0.0000 + 13.2657 0.0000 + 14.9000 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7458 1.0000 + -30.0478 1.0000 + -30.0311 1.0000 + -29.8133 1.0000 + 0.1893 1.0000 + 1.9679 1.0000 + 4.2451 1.0000 + 4.7769 1.0000 + 6.4400 1.0000 + 7.6916 0.9966 + 8.8745 0.0000 + 10.0643 0.0000 + 11.9241 0.0000 + 13.8014 0.0000 + 15.2989 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7456 1.0000 + -30.0469 1.0000 + -30.0412 1.0000 + -29.8123 1.0000 + 0.4706 1.0000 + 1.9998 1.0000 + 4.0636 1.0000 + 4.6916 1.0000 + 6.5446 1.0000 + 7.3787 1.0000 + 8.9926 0.0000 + 9.6981 0.0000 + 11.6104 0.0000 + 14.1038 0.0000 + 15.9363 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7454 1.0000 + -30.0508 1.0000 + -30.0460 1.0000 + -29.8114 1.0000 + 0.7753 1.0000 + 2.0098 1.0000 + 3.9391 1.0000 + 4.5583 1.0000 + 6.6530 1.0000 + 7.1493 1.0000 + 9.0079 0.0000 + 9.4727 0.0000 + 11.2802 0.0000 + 14.0000 0.0000 + 16.5368 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7452 1.0000 + -30.0583 1.0000 + -30.0454 1.0000 + -29.8107 1.0000 + 1.0560 1.0000 + 1.9838 1.0000 + 3.9064 1.0000 + 4.3863 1.0000 + 6.7511 1.0000 + 7.0039 1.0000 + 8.8800 0.0000 + 9.4519 0.0000 + 11.0055 0.0000 + 13.8522 0.0000 + 16.8940 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2896 1.0000 + -65.7452 1.0000 + -30.0624 1.0000 + -30.0450 1.0000 + -29.8103 1.0000 + 1.2424 1.0000 + 1.9383 1.0000 + 3.9540 1.0000 + 4.2239 1.0000 + 6.8299 1.0000 + 6.9158 1.0000 + 8.7739 0.0000 + 9.4832 0.0000 + 10.8480 0.0000 + 13.7576 0.0000 + 16.7488 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7460 1.0000 + -30.0550 1.0000 + -30.0134 1.0000 + -29.8143 1.0000 + 0.2043 1.0000 + 1.3732 1.0000 + 4.6240 1.0000 + 4.7616 1.0000 + 6.1883 1.0000 + 8.5233 0.0000 + 8.9674 0.0000 + 11.1121 0.0000 + 12.0071 0.0000 + 12.6025 0.0000 + 14.7790 0.0000 + + + -91.8807 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7460 1.0000 + -30.0547 1.0000 + -30.0156 1.0000 + -29.8141 1.0000 + 0.2601 1.0000 + 1.3783 1.0000 + 4.6072 1.0000 + 4.7289 1.0000 + 6.2110 1.0000 + 8.3945 0.0000 + 8.9806 0.0000 + 10.9757 0.0000 + 11.9688 0.0000 + 12.8374 0.0000 + 14.6721 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7458 1.0000 + -30.0543 1.0000 + -30.0216 1.0000 + -29.8135 1.0000 + 0.4205 1.0000 + 1.3934 1.0000 + 4.5342 1.0000 + 4.6626 1.0000 + 6.2753 1.0000 + 8.0869 0.0019 + 9.0106 0.0000 + 10.6601 0.0000 + 11.8277 0.0000 + 13.4681 0.0000 + 14.6325 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7457 1.0000 + -30.0535 1.0000 + -30.0305 1.0000 + -29.8127 1.0000 + 0.6680 1.0000 + 1.4216 1.0000 + 4.3948 1.0000 + 4.5926 1.0000 + 6.3719 1.0000 + 7.7299 0.9847 + 9.0457 0.0000 + 10.2612 0.0000 + 11.5905 0.0000 + 14.2426 0.0000 + 14.7492 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7455 1.0000 + -30.0527 1.0000 + -30.0406 1.0000 + -29.8117 1.0000 + 0.9557 1.0000 + 1.4873 1.0000 + 4.2358 1.0000 + 4.4908 1.0000 + 6.4878 1.0000 + 7.4124 1.0000 + 9.0712 0.0000 + 9.8506 0.0000 + 11.3089 0.0000 + 14.3846 0.0000 + 15.5524 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7453 1.0000 + -30.0518 1.0000 + -30.0502 1.0000 + -29.8108 1.0000 + 1.1737 1.0000 + 1.6621 1.0000 + 4.0925 1.0000 + 4.3402 1.0000 + 6.6061 1.0000 + 7.1785 1.0000 + 9.0505 0.0000 + 9.5155 0.0000 + 11.0400 0.0000 + 13.9482 0.0000 + 16.5775 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7451 1.0000 + -30.0577 1.0000 + -30.0512 1.0000 + -29.8101 1.0000 + 1.2606 1.0000 + 1.9475 1.0000 + 3.9805 1.0000 + 4.1622 1.0000 + 6.7058 1.0000 + 7.0369 1.0000 + 8.9273 0.0000 + 9.3617 0.0000 + 10.8310 0.0000 + 13.7460 0.0000 + 17.0707 0.0000 + + + -91.8798 1.0000 + -91.4249 1.0000 + -91.2898 1.0000 + -65.7451 1.0000 + -30.0619 1.0000 + -30.0509 1.0000 + -29.8097 1.0000 + 1.2859 1.0000 + 2.1702 1.0000 + 3.8990 1.0000 + 4.0390 1.0000 + 6.7652 1.0000 + 6.9729 1.0000 + 8.8041 0.0000 + 9.3315 0.0000 + 10.7166 0.0000 + 13.6320 0.0000 + 16.7501 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7464 1.0000 + -30.0175 1.0000 + -29.9844 1.0000 + -29.8488 1.0000 + -1.7370 1.0000 + 4.4422 1.0000 + 4.8585 1.0000 + 6.0714 1.0000 + 6.4466 1.0000 + 8.2302 0.0000 + 8.3749 0.0000 + 9.1175 0.0000 + 9.2619 0.0000 + 14.1349 0.0000 + 15.4013 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7463 1.0000 + -30.0195 1.0000 + -29.9841 1.0000 + -29.8486 1.0000 + -1.6861 1.0000 + 4.3659 1.0000 + 4.8534 1.0000 + 5.9862 1.0000 + 6.3903 1.0000 + 8.0854 0.0021 + 8.4524 0.0000 + 9.1354 0.0000 + 9.5120 0.0000 + 14.3643 0.0000 + 15.3071 0.0000 + + + -91.8803 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7463 1.0000 + -30.0256 1.0000 + -29.9835 1.0000 + -29.8481 1.0000 + -1.5384 1.0000 + 4.0964 1.0000 + 4.8387 1.0000 + 5.8780 1.0000 + 6.2244 1.0000 + 7.8814 0.5077 + 8.4118 0.0000 + 9.4051 0.0000 + 10.0237 0.0000 + 14.7831 0.0000 + 15.5390 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7461 1.0000 + -30.0342 1.0000 + -29.9826 1.0000 + -29.8473 1.0000 + -1.2961 1.0000 + 3.6243 1.0000 + 4.8224 1.0000 + 5.8880 1.0000 + 5.9794 1.0000 + 7.7697 0.9451 + 8.2240 0.0000 + 9.9152 0.0000 + 10.6017 0.0000 + 14.8981 0.0000 + 15.7528 0.0000 + + + -91.8798 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7459 1.0000 + -30.0442 1.0000 + -29.9816 1.0000 + -29.8464 1.0000 + -0.9701 1.0000 + 3.0306 1.0000 + 4.8098 1.0000 + 5.7145 1.0000 + 5.9645 1.0000 + 7.7405 0.9779 + 8.1068 0.0008 + 10.4758 0.0000 + 11.1795 0.0000 + 14.4320 0.0000 + 15.4052 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7457 1.0000 + -30.0538 1.0000 + -29.9807 1.0000 + -29.8456 1.0000 + -0.5710 1.0000 + 2.3983 1.0000 + 4.8012 1.0000 + 5.4818 1.0000 + 6.0144 1.0000 + 7.7545 0.9652 + 8.1644 0.0000 + 11.0095 0.0000 + 11.7243 0.0000 + 13.7286 0.0000 + 15.7410 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7456 1.0000 + -30.0614 1.0000 + -29.9799 1.0000 + -29.8449 1.0000 + -0.1177 1.0000 + 1.7781 1.0000 + 4.7964 1.0000 + 5.3133 1.0000 + 6.0112 1.0000 + 7.7807 0.9256 + 8.3693 0.0000 + 11.4739 0.0000 + 12.2127 0.0000 + 12.9109 0.0000 + 14.6649 0.0000 + + + -91.8817 1.0000 + -91.4266 1.0000 + -91.2916 1.0000 + -65.7457 1.0000 + -30.0656 1.0000 + -29.9796 1.0000 + -29.8446 1.0000 + 0.3197 1.0000 + 1.2526 1.0000 + 4.7946 1.0000 + 5.2255 1.0000 + 5.9923 1.0000 + 7.7988 0.8824 + 8.5626 0.0000 + 11.8394 0.0000 + 12.3313 0.0000 + 12.5446 0.0000 + 14.3190 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7463 1.0000 + -30.0172 1.0000 + -29.9873 1.0000 + -29.8485 1.0000 + -1.6849 1.0000 + 4.4076 1.0000 + 4.8483 1.0000 + 6.0207 1.0000 + 6.2826 1.0000 + 8.0528 0.0081 + 8.5353 0.0000 + 9.2108 0.0000 + 9.3896 0.0000 + 14.3918 0.0000 + 15.3197 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7463 1.0000 + -30.0193 1.0000 + -29.9870 1.0000 + -29.8483 1.0000 + -1.6339 1.0000 + 4.3516 1.0000 + 4.8346 1.0000 + 5.7996 1.0000 + 6.4178 1.0000 + 7.7836 0.9196 + 8.8250 0.0000 + 9.1722 0.0000 + 9.5353 0.0000 + 14.5019 0.0000 + 15.3716 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7462 1.0000 + -30.0253 1.0000 + -29.9865 1.0000 + -29.8478 1.0000 + -1.4861 1.0000 + 4.1162 1.0000 + 4.7981 1.0000 + 5.5891 1.0000 + 6.4356 1.0000 + 7.5244 1.0000 + 8.7710 0.0000 + 9.5148 0.0000 + 9.9362 0.0000 + 15.1352 0.0000 + 15.4072 0.0000 + + + -91.8803 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7460 1.0000 + -30.0340 1.0000 + -29.9857 1.0000 + -29.8470 1.0000 + -1.2446 1.0000 + 3.6518 1.0000 + 4.7706 1.0000 + 5.5402 1.0000 + 6.2682 1.0000 + 7.4667 1.0000 + 8.5007 0.0000 + 10.0751 0.0000 + 10.4593 0.0000 + 14.9293 0.0000 + 15.7909 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7458 1.0000 + -30.0439 1.0000 + -29.9846 1.0000 + -29.8461 1.0000 + -0.9180 1.0000 + 3.0555 1.0000 + 4.7621 1.0000 + 5.5144 1.0000 + 6.0975 1.0000 + 7.5228 1.0000 + 8.3066 0.0000 + 10.6374 0.0000 + 11.0036 0.0000 + 14.3882 0.0000 + 15.7788 0.0000 + + + -91.8803 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7457 1.0000 + -30.0536 1.0000 + -29.9837 1.0000 + -29.8453 1.0000 + -0.5188 1.0000 + 2.4214 1.0000 + 4.7659 1.0000 + 5.3939 1.0000 + 6.0417 1.0000 + 7.5977 1.0000 + 8.2829 0.0000 + 11.1508 0.0000 + 11.5105 0.0000 + 13.7183 0.0000 + 14.9755 0.0000 + + + -91.8811 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7456 1.0000 + -30.0611 1.0000 + -29.9830 1.0000 + -29.8447 1.0000 + -0.0651 1.0000 + 1.8001 1.0000 + 4.7789 1.0000 + 5.2458 1.0000 + 6.0321 1.0000 + 7.6461 0.9996 + 8.4238 0.0000 + 11.5584 0.0000 + 11.9266 0.0000 + 13.0831 0.0000 + 15.6069 0.0000 + + + -91.8817 1.0000 + -91.4266 1.0000 + -91.2916 1.0000 + -65.7456 1.0000 + -30.0653 1.0000 + -29.9826 1.0000 + -29.8443 1.0000 + 0.3795 1.0000 + 1.2691 1.0000 + 4.7936 1.0000 + 5.1515 1.0000 + 6.0240 1.0000 + 7.6686 0.9988 + 8.5805 0.0000 + 11.7779 0.0000 + 12.1352 0.0000 + 12.7618 0.0000 + 14.3597 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2897 1.0000 + -65.7461 1.0000 + -30.0163 1.0000 + -29.9957 1.0000 + -29.8477 1.0000 + -1.5268 1.0000 + 4.2431 1.0000 + 4.8102 1.0000 + 5.8696 1.0000 + 6.0346 1.0000 + 7.8110 0.8450 + 8.5785 0.0000 + 9.3930 0.0000 + 9.9093 0.0000 + 14.8181 0.0000 + 15.3992 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7461 1.0000 + -30.0184 1.0000 + -29.9955 1.0000 + -29.8475 1.0000 + -1.4775 1.0000 + 4.2438 1.0000 + 4.7542 1.0000 + 5.5293 1.0000 + 6.3522 1.0000 + 7.5150 1.0000 + 8.8801 0.0000 + 9.4592 0.0000 + 9.8752 0.0000 + 15.2792 0.0000 + 15.6628 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7460 1.0000 + -30.0244 1.0000 + -29.9950 1.0000 + -29.8470 1.0000 + -1.3299 1.0000 + 4.1576 1.0000 + 4.5679 1.0000 + 5.2979 1.0000 + 6.6150 1.0000 + 7.0904 1.0000 + 9.1579 0.0000 + 9.5750 0.0000 + 10.0825 0.0000 + 15.1794 0.0000 + 15.4777 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7459 1.0000 + -30.0332 1.0000 + -29.9941 1.0000 + -29.8463 1.0000 + -1.0889 1.0000 + 3.7247 1.0000 + 4.5126 1.0000 + 5.2739 1.0000 + 6.5053 1.0000 + 7.0116 1.0000 + 8.9177 0.0000 + 10.0553 0.0000 + 10.5390 0.0000 + 14.9488 0.0000 + 15.7735 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7457 1.0000 + -30.0432 1.0000 + -29.9932 1.0000 + -29.8454 1.0000 + -0.7637 1.0000 + 3.1184 1.0000 + 4.5570 1.0000 + 5.2947 1.0000 + 6.2309 1.0000 + 7.1569 1.0000 + 8.6614 0.0000 + 10.5778 0.0000 + 11.0215 0.0000 + 14.3672 0.0000 + 16.4135 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7455 1.0000 + -30.0528 1.0000 + -29.9922 1.0000 + -29.8445 1.0000 + -0.3665 1.0000 + 2.4849 1.0000 + 4.6192 1.0000 + 5.2403 1.0000 + 6.0991 1.0000 + 7.2727 1.0000 + 8.5350 0.0000 + 11.0432 0.0000 + 11.4229 0.0000 + 13.8722 0.0000 + 15.2253 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7454 1.0000 + -30.0603 1.0000 + -29.9915 1.0000 + -29.8439 1.0000 + 0.0883 1.0000 + 1.8666 1.0000 + 4.6927 1.0000 + 5.1041 1.0000 + 6.0902 1.0000 + 7.3348 1.0000 + 8.5545 0.0000 + 11.3690 0.0000 + 11.6761 0.0000 + 13.4279 0.0000 + 14.9423 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2913 1.0000 + -65.7454 1.0000 + -30.0645 1.0000 + -29.9911 1.0000 + -29.8436 1.0000 + 0.5523 1.0000 + 1.3197 1.0000 + 4.7737 1.0000 + 4.9700 1.0000 + 6.1067 1.0000 + 7.3584 1.0000 + 8.6259 0.0000 + 11.4672 0.0000 + 11.8083 0.0000 + 13.3060 0.0000 + 14.7773 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7459 1.0000 + -30.0150 1.0000 + -30.0082 1.0000 + -29.8466 1.0000 + -1.2712 1.0000 + 3.8438 1.0000 + 4.7684 1.0000 + 5.6401 1.0000 + 5.9574 1.0000 + 7.6738 0.9984 + 8.3685 0.0000 + 9.9037 0.0000 + 10.4726 0.0000 + 15.0041 0.0000 + 15.6011 0.0000 + + + -91.8803 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7459 1.0000 + -30.0172 1.0000 + -30.0079 1.0000 + -29.8464 1.0000 + -1.2218 1.0000 + 3.8708 1.0000 + 4.6756 1.0000 + 5.4045 1.0000 + 6.1889 1.0000 + 7.4347 1.0000 + 8.5911 0.0000 + 10.0325 0.0000 + 10.3726 0.0000 + 14.9251 0.0000 + 15.8940 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7457 1.0000 + -30.0231 1.0000 + -30.0074 1.0000 + -29.8459 1.0000 + -1.0751 1.0000 + 3.9445 1.0000 + 4.3254 1.0000 + 5.2342 1.0000 + 6.4457 1.0000 + 7.0265 1.0000 + 8.9822 0.0000 + 9.9608 0.0000 + 10.5366 0.0000 + 15.3724 0.0000 + 16.2209 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7456 1.0000 + -30.0320 1.0000 + -30.0066 1.0000 + -29.8451 1.0000 + -0.8371 1.0000 + 3.7696 1.0000 + 4.0713 1.0000 + 5.2102 1.0000 + 6.5202 1.0000 + 6.7576 1.0000 + 9.2256 0.0000 + 9.8208 0.0000 + 10.9794 0.0000 + 14.6872 0.0000 + 16.0115 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7454 1.0000 + -30.0420 1.0000 + -30.0056 1.0000 + -29.8442 1.0000 + -0.5159 1.0000 + 3.1732 1.0000 + 4.2009 1.0000 + 5.2095 1.0000 + 6.2786 1.0000 + 6.8561 1.0000 + 9.0363 0.0000 + 10.1403 0.0000 + 11.3532 0.0000 + 14.1947 0.0000 + 15.7790 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2902 1.0000 + -65.7452 1.0000 + -30.0516 1.0000 + -30.0047 1.0000 + -29.8434 1.0000 + -0.1232 1.0000 + 2.5651 1.0000 + 4.3406 1.0000 + 5.1419 1.0000 + 6.1556 1.0000 + 6.9535 1.0000 + 8.8219 0.0000 + 10.5329 0.0000 + 11.5193 0.0000 + 13.9904 0.0000 + 15.7124 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7451 1.0000 + -30.0592 1.0000 + -30.0040 1.0000 + -29.8427 1.0000 + 0.3259 1.0000 + 1.9702 1.0000 + 4.4841 1.0000 + 4.9917 1.0000 + 6.1733 1.0000 + 7.0010 1.0000 + 8.7133 0.0000 + 10.8431 0.0000 + 11.4585 0.0000 + 13.9770 0.0000 + 15.7545 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7450 1.0000 + -30.0633 1.0000 + -30.0036 1.0000 + -29.8424 1.0000 + 0.8108 1.0000 + 1.4140 1.0000 + 4.6313 1.0000 + 4.8202 1.0000 + 6.2227 1.0000 + 7.0116 1.0000 + 8.6872 0.0000 + 11.0198 0.0000 + 11.3364 0.0000 + 14.1763 0.0000 + 15.9685 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7456 1.0000 + -30.0224 1.0000 + -30.0136 1.0000 + -29.8453 1.0000 + -0.9268 1.0000 + 3.2623 1.0000 + 4.7464 1.0000 + 5.3834 1.0000 + 5.9960 1.0000 + 7.6341 0.9998 + 8.2611 0.0000 + 10.4569 0.0000 + 11.0184 0.0000 + 14.2330 0.0000 + 15.5535 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7456 1.0000 + -30.0222 1.0000 + -30.0157 1.0000 + -29.8451 1.0000 + -0.8773 1.0000 + 3.2832 1.0000 + 4.6571 1.0000 + 5.2991 1.0000 + 6.0714 1.0000 + 7.4689 1.0000 + 8.4217 0.0000 + 10.5908 0.0000 + 10.8787 0.0000 + 14.2953 0.0000 + 16.5961 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7455 1.0000 + -30.0218 1.0000 + -30.0216 1.0000 + -29.8446 1.0000 + -0.7317 1.0000 + 3.3310 1.0000 + 4.3786 1.0000 + 5.2110 1.0000 + 6.1851 1.0000 + 7.1526 1.0000 + 8.7615 0.0000 + 10.4513 0.0000 + 10.9940 0.0000 + 14.2699 0.0000 + 15.4567 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7453 1.0000 + -30.0306 1.0000 + -30.0209 1.0000 + -29.8438 1.0000 + -0.4981 1.0000 + 3.3273 1.0000 + 4.0470 1.0000 + 5.1832 1.0000 + 6.2401 1.0000 + 6.8777 1.0000 + 9.1353 0.0000 + 10.0431 0.0000 + 11.3235 0.0000 + 14.1794 0.0000 + 15.5671 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7451 1.0000 + -30.0407 1.0000 + -30.0200 1.0000 + -29.8429 1.0000 + -0.1859 1.0000 + 3.0693 1.0000 + 3.9456 1.0000 + 5.1491 1.0000 + 6.2051 1.0000 + 6.7650 1.0000 + 9.2971 0.0000 + 9.8622 0.0000 + 11.4431 0.0000 + 14.0899 0.0000 + 16.4426 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7449 1.0000 + -30.0503 1.0000 + -30.0191 1.0000 + -29.8421 1.0000 + 0.1920 1.0000 + 2.6071 1.0000 + 4.0528 1.0000 + 5.0472 1.0000 + 6.1874 1.0000 + 6.7639 1.0000 + 9.0797 0.0000 + 10.0903 0.0000 + 11.2974 0.0000 + 14.2166 0.0000 + 15.6033 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7448 1.0000 + -30.0579 1.0000 + -30.0184 1.0000 + -29.8414 1.0000 + 0.6211 1.0000 + 2.0968 1.0000 + 4.2164 1.0000 + 4.8791 1.0000 + 6.2614 1.0000 + 6.7657 1.0000 + 8.8662 0.0000 + 10.3491 0.0000 + 11.0306 0.0000 + 14.4108 0.0000 + 15.3788 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7447 1.0000 + -30.0620 1.0000 + -30.0180 1.0000 + -29.8411 1.0000 + 1.0880 1.0000 + 1.5873 1.0000 + 4.3747 1.0000 + 4.7100 1.0000 + 6.3575 1.0000 + 6.7421 1.0000 + 8.7550 0.0000 + 10.5500 0.0000 + 10.7906 0.0000 + 14.5624 0.0000 + 15.1655 0.0000 + + + -91.8811 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7454 1.0000 + -30.0360 1.0000 + -30.0122 1.0000 + -29.8440 1.0000 + -0.5057 1.0000 + 2.6136 1.0000 + 4.7370 1.0000 + 5.1523 1.0000 + 6.0130 1.0000 + 7.6494 0.9995 + 8.3935 0.0000 + 10.9701 0.0000 + 11.5187 0.0000 + 13.5916 0.0000 + 15.0632 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7453 1.0000 + -30.0358 1.0000 + -30.0143 1.0000 + -29.8438 1.0000 + -0.4569 1.0000 + 2.6313 1.0000 + 4.6641 1.0000 + 5.1321 1.0000 + 6.0295 1.0000 + 7.5280 1.0000 + 8.4922 0.0000 + 11.0888 0.0000 + 11.3355 0.0000 + 13.6775 0.0000 + 15.0131 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7452 1.0000 + -30.0353 1.0000 + -30.0204 1.0000 + -29.8433 1.0000 + -0.3133 1.0000 + 2.6752 1.0000 + 4.4540 1.0000 + 5.1041 1.0000 + 6.0697 1.0000 + 7.2554 1.0000 + 8.7315 0.0000 + 10.8888 0.0000 + 11.3448 0.0000 + 13.6890 0.0000 + 15.8847 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7450 1.0000 + -30.0345 1.0000 + -30.0292 1.0000 + -29.8426 1.0000 + -0.0859 1.0000 + 2.7166 1.0000 + 4.1804 1.0000 + 5.0770 1.0000 + 6.1163 1.0000 + 6.9765 1.0000 + 9.0212 0.0000 + 10.3917 0.0000 + 11.4336 0.0000 + 13.9055 0.0000 + 15.2813 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7448 1.0000 + -30.0394 1.0000 + -30.0336 1.0000 + -29.8417 1.0000 + 0.2123 1.0000 + 2.6878 1.0000 + 3.9634 1.0000 + 5.0147 1.0000 + 6.1592 1.0000 + 6.7920 1.0000 + 9.2662 0.0000 + 9.9512 0.0000 + 11.2415 0.0000 + 14.1593 0.0000 + 15.4866 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7446 1.0000 + -30.0491 1.0000 + -30.0327 1.0000 + -29.8408 1.0000 + 0.5609 1.0000 + 2.5137 1.0000 + 3.9070 1.0000 + 4.8851 1.0000 + 6.2238 1.0000 + 6.7173 1.0000 + 9.2451 0.0000 + 9.8021 0.0000 + 10.8954 0.0000 + 14.4228 0.0000 + 16.8868 0.0000 + + + -91.8798 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7444 1.0000 + -30.0566 1.0000 + -30.0320 1.0000 + -29.8402 1.0000 + 0.9361 1.0000 + 2.2131 1.0000 + 3.9968 1.0000 + 4.7012 1.0000 + 6.3401 1.0000 + 6.6831 1.0000 + 8.9915 0.0000 + 9.9352 0.0000 + 10.5511 0.0000 + 14.6648 0.0000 + 16.6490 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7444 1.0000 + -30.0607 1.0000 + -30.0317 1.0000 + -29.8398 1.0000 + 1.2854 1.0000 + 1.8883 1.0000 + 4.1342 1.0000 + 4.5244 1.0000 + 6.4820 1.0000 + 6.6213 1.0000 + 8.8197 0.0000 + 10.0947 0.0000 + 10.2879 0.0000 + 14.4258 0.0000 + 16.1813 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7451 1.0000 + -30.0466 1.0000 + -30.0111 1.0000 + -29.8430 1.0000 + -0.0307 1.0000 + 1.9718 1.0000 + 4.7340 1.0000 + 4.9824 1.0000 + 5.9781 1.0000 + 7.6817 0.9978 + 8.7276 0.0000 + 11.3873 0.0000 + 11.9478 0.0000 + 12.7854 0.0000 + 23.9436 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7451 1.0000 + -30.0464 1.0000 + -30.0132 1.0000 + -29.8428 1.0000 + 0.0185 1.0000 + 1.9888 1.0000 + 4.6859 1.0000 + 4.9653 1.0000 + 5.9970 1.0000 + 7.5729 1.0000 + 8.7751 0.0000 + 11.4491 0.0000 + 11.7029 0.0000 + 13.0190 0.0000 + 14.7782 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7450 1.0000 + -30.0459 1.0000 + -30.0193 1.0000 + -29.8423 1.0000 + 0.1624 1.0000 + 2.0359 1.0000 + 4.5378 1.0000 + 4.9360 1.0000 + 6.0484 1.0000 + 7.3135 1.0000 + 8.8969 0.0000 + 11.2099 0.0000 + 11.4930 0.0000 + 13.3525 0.0000 + 14.7482 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7448 1.0000 + -30.0451 1.0000 + -30.0282 1.0000 + -29.8416 1.0000 + 0.3853 1.0000 + 2.1069 1.0000 + 4.3253 1.0000 + 4.8953 1.0000 + 6.1228 1.0000 + 7.0290 1.0000 + 9.0504 0.0000 + 10.6735 0.0000 + 11.2840 0.0000 + 13.8208 0.0000 + 15.4677 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7446 1.0000 + -30.0442 1.0000 + -30.0384 1.0000 + -29.8407 1.0000 + 0.6619 1.0000 + 2.1867 1.0000 + 4.1117 1.0000 + 4.8111 1.0000 + 6.2095 1.0000 + 6.8181 1.0000 + 9.1919 0.0000 + 10.1602 0.0000 + 10.8993 0.0000 + 15.1026 0.0000 + 15.8962 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7444 1.0000 + -30.0481 1.0000 + -30.0434 1.0000 + -29.8399 1.0000 + 0.9577 1.0000 + 2.2499 1.0000 + 3.9565 1.0000 + 4.6608 1.0000 + 6.3079 1.0000 + 6.7191 1.0000 + 9.2475 0.0000 + 9.7542 0.0000 + 10.4853 0.0000 + 14.4236 0.0000 + 15.9769 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2900 1.0000 + -65.7442 1.0000 + -30.0556 1.0000 + -30.0428 1.0000 + -29.8392 1.0000 + 1.2239 1.0000 + 2.2689 1.0000 + 3.9080 1.0000 + 4.4598 1.0000 + 6.4254 1.0000 + 6.6915 1.0000 + 9.0705 0.0000 + 9.6405 0.0000 + 10.1444 0.0000 + 14.3430 0.0000 + 17.2812 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7442 1.0000 + -30.0598 1.0000 + -30.0424 1.0000 + -29.8388 1.0000 + 1.3946 1.0000 + 2.2508 1.0000 + 3.9615 1.0000 + 4.2707 1.0000 + 6.5390 1.0000 + 6.6669 1.0000 + 8.8711 0.0000 + 9.6833 0.0000 + 9.9342 0.0000 + 14.2821 0.0000 + 16.8667 0.0000 + + + -91.8809 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7450 1.0000 + -30.0524 1.0000 + -30.0105 1.0000 + -29.8425 1.0000 + 0.4229 1.0000 + 1.4332 1.0000 + 4.7335 1.0000 + 4.8932 1.0000 + 5.9406 1.0000 + 7.7046 0.9941 + 9.0485 0.0000 + 11.6113 0.0000 + 12.2365 0.0000 + 12.4166 0.0000 + 14.4069 0.0000 + + + -91.8809 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7450 1.0000 + -30.0522 1.0000 + -30.0126 1.0000 + -29.8423 1.0000 + 0.4791 1.0000 + 1.4433 1.0000 + 4.7207 1.0000 + 4.8490 1.0000 + 5.9697 1.0000 + 7.5985 1.0000 + 9.0623 0.0000 + 11.5449 0.0000 + 11.9351 0.0000 + 12.6346 0.0000 + 14.4028 0.0000 + + + -91.8811 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7449 1.0000 + -30.0517 1.0000 + -30.0187 1.0000 + -29.8418 1.0000 + 0.6406 1.0000 + 1.4754 1.0000 + 4.6393 1.0000 + 4.7744 1.0000 + 6.0463 1.0000 + 7.3409 1.0000 + 9.0974 0.0000 + 11.2685 0.0000 + 11.5426 0.0000 + 13.2087 0.0000 + 14.4572 0.0000 + + + -91.8808 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7447 1.0000 + -30.0509 1.0000 + -30.0276 1.0000 + -29.8411 1.0000 + 0.8849 1.0000 + 1.5379 1.0000 + 4.4679 1.0000 + 4.7154 1.0000 + 6.1524 1.0000 + 7.0495 1.0000 + 9.1423 0.0000 + 10.8507 0.0000 + 11.0603 0.0000 + 14.0298 0.0000 + 14.7766 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7445 1.0000 + -30.0501 1.0000 + -30.0378 1.0000 + -29.8402 1.0000 + 1.1502 1.0000 + 1.6634 1.0000 + 4.2778 1.0000 + 4.6118 1.0000 + 6.2733 1.0000 + 6.8222 1.0000 + 9.1840 0.0000 + 10.3474 0.0000 + 10.5871 0.0000 + 14.4557 0.0000 + 15.2545 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7443 1.0000 + -30.0493 1.0000 + -30.0475 1.0000 + -29.8393 1.0000 + 1.3315 1.0000 + 1.9197 1.0000 + 4.1103 1.0000 + 4.4350 1.0000 + 6.3954 1.0000 + 6.7111 1.0000 + 9.1975 0.0000 + 9.8332 0.0000 + 10.1952 0.0000 + 14.3744 0.0000 + 15.8908 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7441 1.0000 + -30.0551 1.0000 + -30.0487 1.0000 + -29.8387 1.0000 + 1.4141 1.0000 + 2.2587 1.0000 + 3.9834 1.0000 + 4.2083 1.0000 + 6.5037 1.0000 + 6.7025 1.0000 + 9.0928 0.0000 + 9.5006 0.0000 + 9.9082 0.0000 + 14.2642 0.0000 + 16.9205 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7441 1.0000 + -30.0593 1.0000 + -30.0483 1.0000 + -29.8383 1.0000 + 1.4457 1.0000 + 2.5199 1.0000 + 3.9004 1.0000 + 4.0331 1.0000 + 6.5737 1.0000 + 6.7304 1.0000 + 8.8995 0.0000 + 9.4301 0.0000 + 9.7525 0.0000 + 14.2685 0.0000 + 34.2814 0.0000 + + + -91.8795 1.0000 + -91.4244 1.0000 + -91.2894 1.0000 + -65.7449 1.0000 + -30.0129 1.0000 + -29.9797 1.0000 + -29.8895 1.0000 + -1.4187 1.0000 + 4.4601 1.0000 + 4.6731 1.0000 + 5.6743 1.0000 + 5.9932 1.0000 + 8.1576 0.0001 + 8.3102 0.0000 + 9.3878 0.0000 + 9.5739 0.0000 + 14.6169 0.0000 + 15.2950 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2900 1.0000 + -65.7449 1.0000 + -30.0151 1.0000 + -29.9795 1.0000 + -29.8894 1.0000 + -1.3679 1.0000 + 4.3898 1.0000 + 4.6848 1.0000 + 5.5775 1.0000 + 5.9882 1.0000 + 8.0710 0.0039 + 8.3358 0.0000 + 9.2963 0.0000 + 9.8808 0.0000 + 14.7640 0.0000 + 15.2851 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7447 1.0000 + -30.0211 1.0000 + -29.9789 1.0000 + -29.8889 1.0000 + -1.2205 1.0000 + 4.1260 1.0000 + 4.7341 1.0000 + 5.4333 1.0000 + 5.9646 1.0000 + 7.6673 0.9988 + 8.7032 0.0000 + 9.1336 0.0000 + 10.4886 0.0000 + 14.8840 0.0000 + 16.1247 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2897 1.0000 + -65.7446 1.0000 + -30.0299 1.0000 + -29.9782 1.0000 + -29.8882 1.0000 + -0.9808 1.0000 + 3.6652 1.0000 + 4.7987 1.0000 + 5.3993 1.0000 + 5.9001 1.0000 + 7.3364 1.0000 + 8.6839 0.0000 + 9.4310 0.0000 + 11.1616 0.0000 + 14.7250 0.0000 + 16.1963 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2899 1.0000 + -65.7444 1.0000 + -30.0400 1.0000 + -29.9771 1.0000 + -29.8874 1.0000 + -0.6587 1.0000 + 3.0989 1.0000 + 4.8498 1.0000 + 5.4590 1.0000 + 5.7806 1.0000 + 7.1397 1.0000 + 8.5209 0.0000 + 9.9588 0.0000 + 11.8236 0.0000 + 14.2014 0.0000 + 16.2147 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7442 1.0000 + -30.0497 1.0000 + -29.9762 1.0000 + -29.8866 1.0000 + -0.2656 1.0000 + 2.4987 1.0000 + 4.8835 1.0000 + 5.5379 1.0000 + 5.6319 1.0000 + 7.0597 1.0000 + 8.4828 0.0000 + 10.4687 0.0000 + 12.4416 0.0000 + 13.3290 0.0000 + 15.1337 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7441 1.0000 + -30.0573 1.0000 + -29.9754 1.0000 + -29.8860 1.0000 + 0.1849 1.0000 + 1.9035 1.0000 + 4.9056 1.0000 + 5.5030 1.0000 + 5.5861 1.0000 + 7.0432 1.0000 + 8.5758 0.0000 + 10.9253 0.0000 + 12.5527 0.0000 + 13.0088 0.0000 + 14.8073 0.0000 + + + -91.8812 1.0000 + -91.4261 1.0000 + -91.2912 1.0000 + -65.7441 1.0000 + -30.0615 1.0000 + -29.9750 1.0000 + -29.8857 1.0000 + 0.6491 1.0000 + 1.3651 1.0000 + 4.9176 1.0000 + 5.4303 1.0000 + 5.6017 1.0000 + 7.0458 1.0000 + 8.6931 0.0000 + 11.3271 0.0000 + 11.9366 0.0000 + 13.5779 0.0000 + 14.3517 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7449 1.0000 + -30.0127 1.0000 + -29.9828 1.0000 + -29.8893 1.0000 + -1.3666 1.0000 + 4.4223 1.0000 + 4.6934 1.0000 + 5.6697 1.0000 + 5.8285 1.0000 + 8.0271 0.0206 + 8.3692 0.0000 + 9.4509 0.0000 + 9.7370 0.0000 + 14.9651 0.0000 + 15.3421 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2901 1.0000 + -65.7448 1.0000 + -30.0148 1.0000 + -29.9826 1.0000 + -29.8892 1.0000 + -1.3163 1.0000 + 4.3772 1.0000 + 4.7020 1.0000 + 5.4537 1.0000 + 5.9491 1.0000 + 7.7861 0.9142 + 8.5756 0.0000 + 9.5058 0.0000 + 9.8346 0.0000 + 15.0595 0.0000 + 16.2568 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7447 1.0000 + -30.0208 1.0000 + -29.9819 1.0000 + -29.8886 1.0000 + -1.1678 1.0000 + 4.1541 1.0000 + 4.7483 1.0000 + 5.2311 1.0000 + 6.0125 1.0000 + 7.4085 1.0000 + 8.9608 0.0000 + 9.3188 0.0000 + 10.3531 0.0000 + 15.1264 0.0000 + 15.6355 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7445 1.0000 + -30.0296 1.0000 + -29.9811 1.0000 + -29.8879 1.0000 + -0.9290 1.0000 + 3.7034 1.0000 + 4.8102 1.0000 + 5.1970 1.0000 + 5.9664 1.0000 + 7.1173 1.0000 + 8.9157 0.0000 + 9.5830 0.0000 + 14.0696 0.0000 + 15.5381 0.0000 + 16.0450 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7443 1.0000 + -30.0398 1.0000 + -29.9802 1.0000 + -29.8871 1.0000 + -0.6068 1.0000 + 3.1346 1.0000 + 4.8473 1.0000 + 5.3098 1.0000 + 5.8138 1.0000 + 6.9753 1.0000 + 8.6937 0.0000 + 10.0930 0.0000 + 11.5987 0.0000 + 14.2851 0.0000 + 15.4916 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7442 1.0000 + -30.0495 1.0000 + -29.9792 1.0000 + -29.8864 1.0000 + -0.2132 1.0000 + 2.5322 1.0000 + 4.8734 1.0000 + 5.4530 1.0000 + 5.6251 1.0000 + 6.9349 1.0000 + 8.5950 0.0000 + 10.5671 0.0000 + 12.1071 0.0000 + 13.6101 0.0000 + 15.2056 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7441 1.0000 + -30.0571 1.0000 + -29.9785 1.0000 + -29.8858 1.0000 + 0.2373 1.0000 + 1.9361 1.0000 + 4.9016 1.0000 + 5.4135 1.0000 + 5.6118 1.0000 + 6.9300 1.0000 + 8.6308 0.0000 + 10.9545 0.0000 + 12.2321 0.0000 + 13.3411 0.0000 + 14.6028 0.0000 + + + -91.8813 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7440 1.0000 + -30.0612 1.0000 + -29.9781 1.0000 + -29.8855 1.0000 + 0.7080 1.0000 + 1.3914 1.0000 + 4.9262 1.0000 + 5.3148 1.0000 + 5.6677 1.0000 + 6.9317 1.0000 + 8.7105 0.0000 + 11.2069 0.0000 + 11.9941 0.0000 + 13.6247 0.0000 + 14.2566 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7447 1.0000 + -30.0118 1.0000 + -29.9913 1.0000 + -29.8886 1.0000 + -1.2087 1.0000 + 4.2480 1.0000 + 4.7537 1.0000 + 5.5479 1.0000 + 5.6464 1.0000 + 7.5854 1.0000 + 8.8369 0.0000 + 9.1686 0.0000 + 10.3783 0.0000 + 15.1703 0.0000 + 16.5372 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7446 1.0000 + -30.0140 1.0000 + -29.9911 1.0000 + -29.8884 1.0000 + -1.1599 1.0000 + 4.2600 1.0000 + 4.7624 1.0000 + 5.1876 1.0000 + 5.8950 1.0000 + 7.3708 1.0000 + 9.0334 0.0000 + 9.3519 0.0000 + 10.2679 0.0000 + 15.3111 0.0000 + 15.6587 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7445 1.0000 + -30.0200 1.0000 + -29.9906 1.0000 + -29.8880 1.0000 + -1.0132 1.0000 + 4.2030 1.0000 + 4.7943 1.0000 + 4.8011 1.0000 + 6.0641 1.0000 + 6.9806 1.0000 + 9.4178 0.0000 + 9.6455 0.0000 + 10.1655 0.0000 + 15.5541 0.0000 + 16.0175 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7444 1.0000 + -30.0289 1.0000 + -29.9897 1.0000 + -29.8872 1.0000 + -0.7738 1.0000 + 3.8102 1.0000 + 4.7014 1.0000 + 4.8920 1.0000 + 6.0747 1.0000 + 6.6867 1.0000 + 9.3773 0.0000 + 9.9364 0.0000 + 10.5923 0.0000 + 15.0458 0.0000 + 15.9243 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7441 1.0000 + -30.0390 1.0000 + -29.9887 1.0000 + -29.8864 1.0000 + -0.4528 1.0000 + 3.2344 1.0000 + 4.7338 1.0000 + 5.0752 1.0000 + 5.8733 1.0000 + 6.6224 1.0000 + 9.0753 0.0000 + 10.3673 0.0000 + 11.1413 0.0000 + 14.3495 0.0000 + 16.6028 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7440 1.0000 + -30.0487 1.0000 + -29.9878 1.0000 + -29.8857 1.0000 + -0.0611 1.0000 + 2.6291 1.0000 + 4.7819 1.0000 + 5.2693 1.0000 + 5.6458 1.0000 + 6.6483 1.0000 + 8.8604 0.0000 + 10.6806 0.0000 + 11.6275 0.0000 + 13.8130 0.0000 + 15.2714 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7438 1.0000 + -30.0563 1.0000 + -29.9871 1.0000 + -29.8850 1.0000 + 0.3892 1.0000 + 2.0335 1.0000 + 4.8463 1.0000 + 5.2455 1.0000 + 5.6563 1.0000 + 6.6606 1.0000 + 8.7680 0.0000 + 10.8072 0.0000 + 11.9897 0.0000 + 13.5317 0.0000 + 14.8625 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7438 1.0000 + -30.0604 1.0000 + -29.9867 1.0000 + -29.8847 1.0000 + 0.8747 1.0000 + 1.4744 1.0000 + 4.9295 1.0000 + 5.1004 1.0000 + 5.7671 1.0000 + 6.6527 1.0000 + 8.7570 0.0000 + 10.8011 0.0000 + 12.1859 0.0000 + 13.5593 0.0000 + 14.6572 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7444 1.0000 + -30.0105 1.0000 + -30.0038 1.0000 + -29.8876 1.0000 + -0.9548 1.0000 + 3.8567 1.0000 + 4.8138 1.0000 + 5.4323 1.0000 + 5.5813 1.0000 + 7.2363 1.0000 + 8.8397 0.0000 + 9.4096 0.0000 + 11.0606 0.0000 + 14.9041 0.0000 + 15.9154 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7444 1.0000 + -30.0127 1.0000 + -30.0037 1.0000 + -29.8874 1.0000 + -0.9054 1.0000 + 3.8932 1.0000 + 4.8113 1.0000 + 5.0970 1.0000 + 5.8095 1.0000 + 7.0569 1.0000 + 9.0275 0.0000 + 9.5614 0.0000 + 10.9012 0.0000 + 15.3640 0.0000 + 16.2477 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7443 1.0000 + -30.0188 1.0000 + -30.0031 1.0000 + -29.8869 1.0000 + -0.7600 1.0000 + 3.9970 1.0000 + 4.5299 1.0000 + 4.9001 1.0000 + 6.0104 1.0000 + 6.6764 1.0000 + 9.4299 0.0000 + 9.9366 0.0000 + 10.5322 0.0000 + 15.0414 0.0000 + 15.7405 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7441 1.0000 + -30.0277 1.0000 + -30.0023 1.0000 + -29.8862 1.0000 + -0.5239 1.0000 + 3.9586 1.0000 + 4.1573 1.0000 + 4.9630 1.0000 + 6.1585 1.0000 + 6.2704 1.0000 + 9.7369 0.0000 + 10.1887 0.0000 + 10.4392 0.0000 + 14.6116 0.0000 + 15.8892 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7439 1.0000 + -30.0379 1.0000 + -30.0014 1.0000 + -29.8854 1.0000 + -0.2066 1.0000 + 3.3648 1.0000 + 4.3281 1.0000 + 5.0858 1.0000 + 5.8933 1.0000 + 6.2876 1.0000 + 9.4924 0.0000 + 10.3513 0.0000 + 10.9098 0.0000 + 14.1968 0.0000 + 15.6095 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7437 1.0000 + -30.0476 1.0000 + -30.0005 1.0000 + -29.8847 1.0000 + 0.1788 1.0000 + 2.7700 1.0000 + 4.4886 1.0000 + 5.2214 1.0000 + 5.6433 1.0000 + 6.3659 1.0000 + 9.1667 0.0000 + 10.4414 0.0000 + 11.3646 0.0000 + 13.8896 0.0000 + 16.6031 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7436 1.0000 + -30.0552 1.0000 + -29.9998 1.0000 + -29.8840 1.0000 + 0.6216 1.0000 + 2.1905 1.0000 + 4.6276 1.0000 + 5.1554 1.0000 + 5.7004 1.0000 + 6.3833 1.0000 + 8.9358 0.0000 + 10.3679 0.0000 + 11.7330 0.0000 + 13.7871 0.0000 + 15.4993 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2905 1.0000 + -65.7435 1.0000 + -30.0593 1.0000 + -29.9994 1.0000 + -29.8837 1.0000 + 1.1087 1.0000 + 1.6347 1.0000 + 4.7486 1.0000 + 4.9984 1.0000 + 5.8749 1.0000 + 6.3442 1.0000 + 8.8213 0.0000 + 10.2716 0.0000 + 11.9440 0.0000 + 13.8193 0.0000 + 14.8856 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2901 1.0000 + -65.7441 1.0000 + -30.0183 1.0000 + -30.0091 1.0000 + -29.8863 1.0000 + -0.6139 1.0000 + 3.3047 1.0000 + 4.8442 1.0000 + 5.4603 1.0000 + 5.4868 1.0000 + 7.0343 1.0000 + 8.6590 0.0000 + 9.9415 0.0000 + 11.7134 0.0000 + 14.2240 0.0000 + 15.8795 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7441 1.0000 + -30.0181 1.0000 + -30.0113 1.0000 + -29.8862 1.0000 + -0.5649 1.0000 + 3.3377 1.0000 + 4.8084 1.0000 + 5.2074 1.0000 + 5.6705 1.0000 + 6.9017 1.0000 + 8.8064 0.0000 + 10.0721 0.0000 + 11.5068 0.0000 + 14.3145 0.0000 + 15.6369 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7440 1.0000 + -30.0176 1.0000 + -30.0174 1.0000 + -29.8857 1.0000 + -0.4208 1.0000 + 3.4287 1.0000 + 4.5635 1.0000 + 5.0640 1.0000 + 5.7943 1.0000 + 6.6030 1.0000 + 9.1559 0.0000 + 10.3672 0.0000 + 11.0498 0.0000 + 14.3100 0.0000 + 15.6899 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7438 1.0000 + -30.0263 1.0000 + -30.0168 1.0000 + -29.8850 1.0000 + -0.1891 1.0000 + 3.5310 1.0000 + 4.1526 1.0000 + 5.0962 1.0000 + 5.8378 1.0000 + 6.3101 1.0000 + 9.5515 0.0000 + 10.4117 0.0000 + 10.7785 0.0000 + 14.0757 0.0000 + 16.4690 0.0000 + + + -91.8807 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7436 1.0000 + -30.0365 1.0000 + -30.0159 1.0000 + -29.8842 1.0000 + 0.1197 1.0000 + 3.3712 1.0000 + 3.9854 1.0000 + 5.1910 1.0000 + 5.7030 1.0000 + 6.2124 1.0000 + 9.7686 0.0000 + 10.0355 0.0000 + 10.9145 0.0000 + 13.9867 0.0000 + 15.9162 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7434 1.0000 + -30.0463 1.0000 + -30.0150 1.0000 + -29.8835 1.0000 + 0.4894 1.0000 + 2.9018 1.0000 + 4.1317 1.0000 + 5.2339 1.0000 + 5.5776 1.0000 + 6.2422 1.0000 + 9.4373 0.0000 + 9.9987 0.0000 + 11.0336 0.0000 + 14.2044 0.0000 + 15.5874 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7433 1.0000 + -30.0539 1.0000 + -30.0143 1.0000 + -29.8829 1.0000 + 0.9061 1.0000 + 2.3921 1.0000 + 4.3127 1.0000 + 5.0699 1.0000 + 5.7376 1.0000 + 6.2494 1.0000 + 9.0950 0.0000 + 9.8623 0.0000 + 11.1873 0.0000 + 15.0131 0.0000 + 17.2295 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7431 1.0000 + -30.0580 1.0000 + -30.0139 1.0000 + -29.8825 1.0000 + 1.3392 1.0000 + 1.9119 1.0000 + 4.4535 1.0000 + 4.9101 1.0000 + 5.9724 1.0000 + 6.1724 1.0000 + 8.8920 0.0000 + 9.7378 0.0000 + 11.2934 0.0000 + 14.5094 0.0000 + 14.9006 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7438 1.0000 + -30.0320 1.0000 + -30.0077 1.0000 + -29.8852 1.0000 + -0.1990 1.0000 + 2.6933 1.0000 + 4.8622 1.0000 + 5.3088 1.0000 + 5.5698 1.0000 + 6.9576 1.0000 + 8.6840 0.0000 + 10.4231 0.0000 + 12.3103 0.0000 + 13.3388 0.0000 + 15.0063 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7438 1.0000 + -30.0318 1.0000 + -30.0099 1.0000 + -29.8850 1.0000 + -0.1505 1.0000 + 2.7229 1.0000 + 4.8168 1.0000 + 5.2487 1.0000 + 5.5888 1.0000 + 6.8570 1.0000 + 8.7830 0.0000 + 10.5162 0.0000 + 12.0017 0.0000 + 13.5605 0.0000 + 14.9311 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2902 1.0000 + -65.7436 1.0000 + -30.0312 1.0000 + -30.0160 1.0000 + -29.8846 1.0000 + -0.0083 1.0000 + 2.8063 1.0000 + 4.6280 1.0000 + 5.1868 1.0000 + 5.6156 1.0000 + 6.6210 1.0000 + 9.0297 0.0000 + 10.6548 0.0000 + 11.4979 0.0000 + 13.6805 0.0000 + 16.1680 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7435 1.0000 + -30.0305 1.0000 + -30.0249 1.0000 + -29.8838 1.0000 + 0.2176 1.0000 + 2.9196 1.0000 + 4.3150 1.0000 + 5.2001 1.0000 + 5.6107 1.0000 + 6.3844 1.0000 + 9.3223 0.0000 + 10.4868 0.0000 + 11.1488 0.0000 + 13.7394 0.0000 + 15.2525 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7433 1.0000 + -30.0353 1.0000 + -30.0296 1.0000 + -29.8831 1.0000 + 0.5095 1.0000 + 2.9934 1.0000 + 4.0235 1.0000 + 5.2081 1.0000 + 5.5733 1.0000 + 6.2653 1.0000 + 9.5540 0.0000 + 10.0537 0.0000 + 10.8460 0.0000 + 14.0317 0.0000 + 16.9865 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7431 1.0000 + -30.0450 1.0000 + -30.0288 1.0000 + -29.8823 1.0000 + 0.8493 1.0000 + 2.8878 1.0000 + 3.9281 1.0000 + 5.0740 1.0000 + 5.6506 1.0000 + 6.2584 1.0000 + 9.5863 0.0000 + 9.6119 0.0000 + 10.5896 0.0000 + 14.5477 0.0000 + 16.1231 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7430 1.0000 + -30.0527 1.0000 + -30.0281 1.0000 + -29.8818 1.0000 + 1.2065 1.0000 + 2.5979 1.0000 + 4.0342 1.0000 + 4.8601 1.0000 + 5.8427 1.0000 + 6.2709 1.0000 + 9.2185 0.0000 + 9.4083 0.0000 + 10.5443 0.0000 + 14.9799 0.0000 + 16.9946 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7429 1.0000 + -30.0568 1.0000 + -30.0277 1.0000 + -29.8814 1.0000 + 1.5149 1.0000 + 2.3015 1.0000 + 4.1783 1.0000 + 4.6820 1.0000 + 6.0499 1.0000 + 6.2287 1.0000 + 8.9581 0.0000 + 9.2598 0.0000 + 10.5742 0.0000 + 14.8199 0.0000 + 15.4551 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7436 1.0000 + -30.0427 1.0000 + -30.0068 1.0000 + -29.8843 1.0000 + 0.2722 1.0000 + 2.0800 1.0000 + 4.8773 1.0000 + 5.1767 1.0000 + 5.6077 1.0000 + 6.9482 1.0000 + 8.9102 0.0000 + 10.8202 0.0000 + 12.5032 0.0000 + 12.8741 0.0000 + 14.6540 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7436 1.0000 + -30.0425 1.0000 + -30.0088 1.0000 + -29.8842 1.0000 + 0.3219 1.0000 + 2.1086 1.0000 + 4.8435 1.0000 + 5.1373 1.0000 + 5.6282 1.0000 + 6.8548 1.0000 + 8.9591 0.0000 + 10.8385 0.0000 + 12.1616 0.0000 + 13.3887 0.0000 + 14.7173 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7434 1.0000 + -30.0420 1.0000 + -30.0149 1.0000 + -29.8837 1.0000 + 0.4637 1.0000 + 2.1902 1.0000 + 4.6998 1.0000 + 5.0929 1.0000 + 5.6713 1.0000 + 6.6315 1.0000 + 9.0845 0.0000 + 10.7099 0.0000 + 11.8347 0.0000 + 13.3260 0.0000 + 14.8037 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2904 1.0000 + -65.7433 1.0000 + -30.0412 1.0000 + -30.0239 1.0000 + -29.8830 1.0000 + 0.6817 1.0000 + 2.3190 1.0000 + 4.4554 1.0000 + 5.0740 1.0000 + 5.7125 1.0000 + 6.4023 1.0000 + 9.2380 0.0000 + 10.3235 0.0000 + 11.4656 0.0000 + 13.6342 0.0000 + 15.3546 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7431 1.0000 + -30.0404 1.0000 + -30.0342 1.0000 + -29.8822 1.0000 + 0.9487 1.0000 + 2.4808 1.0000 + 4.1899 1.0000 + 5.0008 1.0000 + 5.7567 1.0000 + 6.2838 1.0000 + 9.3589 0.0000 + 9.8771 0.0000 + 10.8863 0.0000 + 14.2986 0.0000 + 15.7162 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7429 1.0000 + -30.0441 1.0000 + -30.0396 1.0000 + -29.8814 1.0000 + 1.2299 1.0000 + 2.6376 1.0000 + 3.9806 1.0000 + 4.8199 1.0000 + 5.8594 1.0000 + 6.2868 1.0000 + 9.3046 0.0000 + 9.5580 0.0000 + 10.2980 0.0000 + 14.7255 0.0000 + 15.1041 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7427 1.0000 + -30.0517 1.0000 + -30.0390 1.0000 + -29.8808 1.0000 + 1.4810 1.0000 + 2.7241 1.0000 + 3.9050 1.0000 + 4.5774 1.0000 + 6.0293 1.0000 + 6.3312 1.0000 + 9.0511 0.0000 + 9.2924 0.0000 + 9.9968 0.0000 + 14.8542 0.0000 + 17.0014 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7427 1.0000 + -30.0559 1.0000 + -30.0387 1.0000 + -29.8806 1.0000 + 1.6404 1.0000 + 2.7265 1.0000 + 3.9706 1.0000 + 4.3593 1.0000 + 6.1919 1.0000 + 6.3459 1.0000 + 8.8868 0.0000 + 9.0124 0.0000 + 9.9580 0.0000 + 16.6992 0.0000 + 18.2794 0.0000 + + + -91.8816 1.0000 + -91.4266 1.0000 + -91.2915 1.0000 + -65.7435 1.0000 + -30.0485 1.0000 + -30.0062 1.0000 + -29.8839 1.0000 + 0.7508 1.0000 + 1.5290 1.0000 + 4.8872 1.0000 + 5.1019 1.0000 + 5.6111 1.0000 + 6.9563 1.0000 + 9.1684 0.0000 + 11.0963 0.0000 + 11.8845 0.0000 + 13.4542 0.0000 + 13.9816 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7434 1.0000 + -30.0483 1.0000 + -30.0082 1.0000 + -29.8836 1.0000 + 0.8074 1.0000 + 1.5503 1.0000 + 4.8837 1.0000 + 5.0282 1.0000 + 5.6611 1.0000 + 6.8614 1.0000 + 9.1821 0.0000 + 10.9712 0.0000 + 11.9443 0.0000 + 13.3175 0.0000 + 14.0111 0.0000 + + + -91.8809 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7433 1.0000 + -30.0478 1.0000 + -30.0143 1.0000 + -29.8832 1.0000 + 0.9654 1.0000 + 1.6153 1.0000 + 4.7866 1.0000 + 4.9431 1.0000 + 5.7637 1.0000 + 6.6281 1.0000 + 9.2181 0.0000 + 10.6031 0.0000 + 12.0239 0.0000 + 13.2393 0.0000 + 14.3926 0.0000 + + + -91.8809 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7432 1.0000 + -30.0471 1.0000 + -30.0234 1.0000 + -29.8825 1.0000 + 1.1904 1.0000 + 1.7430 1.0000 + 4.5650 1.0000 + 4.9174 1.0000 + 5.8769 1.0000 + 6.3717 1.0000 + 9.2652 0.0000 + 10.1220 0.0000 + 11.6464 0.0000 + 13.6165 0.0000 + 14.7417 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7430 1.0000 + -30.0463 1.0000 + -30.0337 1.0000 + -29.8817 1.0000 + 1.4108 1.0000 + 1.9753 1.0000 + 4.3324 1.0000 + 4.8220 1.0000 + 5.9828 1.0000 + 6.2221 1.0000 + 9.3061 0.0000 + 9.6403 0.0000 + 10.9581 0.0000 + 14.3215 0.0000 + 14.8365 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7428 1.0000 + -30.0455 1.0000 + -30.0435 1.0000 + -29.8809 1.0000 + 1.5658 1.0000 + 2.3279 1.0000 + 4.1275 1.0000 + 4.6077 1.0000 + 6.0847 1.0000 + 6.2409 1.0000 + 9.1753 0.0000 + 9.3638 0.0000 + 10.2421 0.0000 + 14.7264 0.0000 + 15.1864 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7426 1.0000 + -30.0512 1.0000 + -30.0449 1.0000 + -29.8803 1.0000 + 1.6627 1.0000 + 2.7320 1.0000 + 3.9747 1.0000 + 4.3124 1.0000 + 6.2217 1.0000 + 6.3335 1.0000 + 8.8577 0.0000 + 9.2736 0.0000 + 9.7144 0.0000 + 14.6891 0.0000 + 16.0466 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7426 1.0000 + -30.0554 1.0000 + -30.0446 1.0000 + -29.8800 1.0000 + 1.7108 1.0000 + 3.0627 1.0000 + 3.8918 1.0000 + 4.0425 1.0000 + 6.3299 1.0000 + 6.4187 1.0000 + 8.6764 0.0000 + 9.0361 0.0000 + 9.5744 0.0000 + 15.1073 0.0000 + 16.7779 0.0000 + + + -91.8791 1.0000 + -91.4239 1.0000 + -91.2890 1.0000 + -65.7431 1.0000 + -30.0077 1.0000 + -29.9745 1.0000 + -29.9360 1.0000 + -0.9922 1.0000 + 4.1697 1.0000 + 4.4791 1.0000 + 5.2762 1.0000 + 5.5520 1.0000 + 8.4050 0.0000 + 8.4412 0.0000 + 9.7376 0.0000 + 9.9653 0.0000 + 14.6114 0.0000 + 15.5437 0.0000 + + + -91.8795 1.0000 + -91.4244 1.0000 + -91.2894 1.0000 + -65.7431 1.0000 + -30.0099 1.0000 + -29.9743 1.0000 + -29.9359 1.0000 + -0.9433 1.0000 + 4.1493 1.0000 + 4.4316 1.0000 + 5.2543 1.0000 + 5.5665 1.0000 + 8.1472 0.0001 + 8.5627 0.0000 + 9.6381 0.0000 + 10.2814 0.0000 + 14.5670 0.0000 + 16.3874 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7431 1.0000 + -30.0160 1.0000 + -29.9738 1.0000 + -29.9355 1.0000 + -0.7997 1.0000 + 3.9591 1.0000 + 4.4276 1.0000 + 5.2220 1.0000 + 5.6067 1.0000 + 7.6690 0.9988 + 8.8770 0.0000 + 9.3920 0.0000 + 10.9261 0.0000 + 14.5052 0.0000 + 15.8789 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7429 1.0000 + -30.0250 1.0000 + -29.9729 1.0000 + -29.9348 1.0000 + -0.5652 1.0000 + 3.5680 1.0000 + 4.5355 1.0000 + 5.2114 1.0000 + 5.6623 1.0000 + 7.2067 1.0000 + 9.1059 0.0000 + 9.2908 0.0000 + 11.6363 0.0000 + 14.1697 0.0000 + 15.7589 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7427 1.0000 + -30.0353 1.0000 + -29.9719 1.0000 + -29.9341 1.0000 + -0.2521 1.0000 + 3.0868 1.0000 + 4.6814 1.0000 + 5.2185 1.0000 + 5.7142 1.0000 + 6.8332 1.0000 + 8.8793 0.0000 + 9.7265 0.0000 + 12.2929 0.0000 + 13.5685 0.0000 + 16.1058 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7425 1.0000 + -30.0450 1.0000 + -29.9710 1.0000 + -29.9334 1.0000 + 0.1257 1.0000 + 2.5716 1.0000 + 4.8261 1.0000 + 5.2273 1.0000 + 5.7364 1.0000 + 6.5820 1.0000 + 8.7708 0.0000 + 10.1434 0.0000 + 12.7927 0.0000 + 12.8308 0.0000 + 15.4481 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7424 1.0000 + -30.0526 1.0000 + -29.9703 1.0000 + -29.9329 1.0000 + 0.5574 1.0000 + 2.0489 1.0000 + 4.9438 1.0000 + 5.2220 1.0000 + 5.7179 1.0000 + 6.4574 1.0000 + 8.7837 0.0000 + 10.5245 0.0000 + 12.1279 0.0000 + 13.0743 0.0000 + 15.2254 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7423 1.0000 + -30.0568 1.0000 + -29.9699 1.0000 + -29.9325 1.0000 + 1.0239 1.0000 + 1.5364 1.0000 + 5.0194 1.0000 + 5.2031 1.0000 + 5.6900 1.0000 + 6.4177 1.0000 + 8.8427 0.0000 + 10.8611 0.0000 + 11.5754 0.0000 + 13.1725 0.0000 + 14.7884 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2897 1.0000 + -65.7431 1.0000 + -30.0075 1.0000 + -29.9776 1.0000 + -29.9357 1.0000 + -0.9418 1.0000 + 4.1601 1.0000 + 4.4633 1.0000 + 5.2925 1.0000 + 5.4803 1.0000 + 8.1369 0.0002 + 8.5843 0.0000 + 9.8748 0.0000 + 14.2706 0.0000 + 16.6056 0.0000 + 16.6825 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7431 1.0000 + -30.0097 1.0000 + -29.9774 1.0000 + -29.9356 1.0000 + -0.8921 1.0000 + 4.1617 1.0000 + 4.4064 1.0000 + 5.2343 1.0000 + 5.5218 1.0000 + 7.8744 0.5472 + 8.6852 0.0000 + 9.8973 0.0000 + 10.2230 0.0000 + 14.6840 0.0000 + 15.1549 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2897 1.0000 + -65.7430 1.0000 + -30.0157 1.0000 + -29.9768 1.0000 + -29.9352 1.0000 + -0.7465 1.0000 + 4.0060 1.0000 + 4.3910 1.0000 + 5.1646 1.0000 + 5.5823 1.0000 + 7.4453 1.0000 + 8.9926 0.0000 + 9.6515 0.0000 + 10.7842 0.0000 + 14.7401 0.0000 + 15.9068 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7428 1.0000 + -30.0247 1.0000 + -29.9759 1.0000 + -29.9346 1.0000 + -0.5124 1.0000 + 3.6173 1.0000 + 4.5175 1.0000 + 5.1467 1.0000 + 5.6283 1.0000 + 7.0241 1.0000 + 9.3214 0.0000 + 9.4009 0.0000 + 11.4365 0.0000 + 14.2651 0.0000 + 15.7142 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7426 1.0000 + -30.0350 1.0000 + -29.9750 1.0000 + -29.9339 1.0000 + -0.2008 1.0000 + 3.1352 1.0000 + 4.6826 1.0000 + 5.1753 1.0000 + 5.6422 1.0000 + 6.6940 1.0000 + 9.0514 0.0000 + 9.8080 0.0000 + 13.0238 0.0000 + 15.4136 0.0000 + 16.0797 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7424 1.0000 + -30.0447 1.0000 + -29.9741 1.0000 + -29.9332 1.0000 + 0.1782 1.0000 + 2.6185 1.0000 + 4.8334 1.0000 + 5.2268 1.0000 + 5.6216 1.0000 + 6.4836 1.0000 + 8.8850 0.0000 + 10.1806 0.0000 + 12.1773 0.0000 + 13.4647 0.0000 + 15.3704 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7423 1.0000 + -30.0524 1.0000 + -29.9734 1.0000 + -29.9327 1.0000 + 0.6080 1.0000 + 2.0944 1.0000 + 4.9487 1.0000 + 5.2360 1.0000 + 5.6214 1.0000 + 6.3720 1.0000 + 8.8398 0.0000 + 10.4741 0.0000 + 11.9232 0.0000 + 13.5675 0.0000 + 15.0575 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7422 1.0000 + -30.0566 1.0000 + -29.9730 1.0000 + -29.9323 1.0000 + 1.0767 1.0000 + 1.5797 1.0000 + 5.0331 1.0000 + 5.1824 1.0000 + 5.6559 1.0000 + 6.3220 1.0000 + 8.8601 0.0000 + 10.6497 0.0000 + 11.6448 0.0000 + 13.4921 0.0000 + 14.9068 0.0000 + + + -91.8794 1.0000 + -91.4243 1.0000 + -91.2893 1.0000 + -65.7429 1.0000 + -30.0066 1.0000 + -29.9862 1.0000 + -29.9351 1.0000 + -0.7866 1.0000 + 4.0335 1.0000 + 4.4889 1.0000 + 5.3371 1.0000 + 5.3463 1.0000 + 7.5604 1.0000 + 8.8667 0.0000 + 9.5757 0.0000 + 10.8119 0.0000 + 15.0193 0.0000 + 16.5679 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7429 1.0000 + -30.0088 1.0000 + -29.9860 1.0000 + -29.9350 1.0000 + -0.7381 1.0000 + 4.0728 1.0000 + 4.4246 1.0000 + 5.1607 1.0000 + 5.4807 1.0000 + 7.3825 1.0000 + 8.9797 0.0000 + 9.7876 0.0000 + 10.6899 0.0000 + 14.8927 0.0000 + 16.0636 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7428 1.0000 + -30.0149 1.0000 + -29.9854 1.0000 + -29.9346 1.0000 + -0.5926 1.0000 + 4.1214 1.0000 + 4.2640 1.0000 + 5.0156 1.0000 + 5.5704 1.0000 + 7.0120 1.0000 + 9.2675 0.0000 + 10.0834 0.0000 + 10.5691 0.0000 + 14.8072 0.0000 + 15.6699 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2899 1.0000 + -65.7426 1.0000 + -30.0239 1.0000 + -29.9846 1.0000 + -29.9340 1.0000 + -0.3590 1.0000 + 3.7621 1.0000 + 4.4212 1.0000 + 4.9587 1.0000 + 5.6136 1.0000 + 6.6438 1.0000 + 9.6171 0.0000 + 9.8168 0.0000 + 11.0150 0.0000 + 14.3910 0.0000 + 16.1444 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7424 1.0000 + -30.0342 1.0000 + -29.9837 1.0000 + -29.9333 1.0000 + -0.0480 1.0000 + 3.2758 1.0000 + 4.6646 1.0000 + 4.9722 1.0000 + 5.5802 1.0000 + 6.3794 1.0000 + 9.4388 0.0000 + 9.9520 0.0000 + 11.4875 0.0000 + 13.9130 0.0000 + 15.6021 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7422 1.0000 + -30.0440 1.0000 + -29.9828 1.0000 + -29.9326 1.0000 + 0.3278 1.0000 + 2.7560 1.0000 + 4.8584 1.0000 + 5.1054 1.0000 + 5.4544 1.0000 + 6.2435 1.0000 + 9.1535 0.0000 + 10.1417 0.0000 + 11.7635 0.0000 + 13.9583 0.0000 + 15.3074 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7421 1.0000 + -30.0516 1.0000 + -29.9821 1.0000 + -29.9320 1.0000 + 0.7545 1.0000 + 2.2317 1.0000 + 4.9434 1.0000 + 5.2715 1.0000 + 5.3901 1.0000 + 6.1613 1.0000 + 8.9788 0.0000 + 10.1660 0.0000 + 11.8759 0.0000 + 14.0401 0.0000 + 14.7589 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7421 1.0000 + -30.0559 1.0000 + -29.9817 1.0000 + -29.9317 1.0000 + 1.2187 1.0000 + 1.7187 1.0000 + 5.0186 1.0000 + 5.1440 1.0000 + 5.6004 1.0000 + 6.0785 1.0000 + 8.9071 0.0000 + 10.1124 0.0000 + 11.9295 0.0000 + 14.1658 0.0000 + 14.5853 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7427 1.0000 + -30.0054 1.0000 + -29.9989 1.0000 + -29.9343 1.0000 + -0.5379 1.0000 + 3.7030 1.0000 + 4.6090 1.0000 + 5.2630 1.0000 + 5.3959 1.0000 + 7.0695 1.0000 + 9.0908 0.0000 + 9.4357 0.0000 + 11.5575 0.0000 + 14.3516 0.0000 + 16.3601 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7426 1.0000 + -30.0076 1.0000 + -29.9987 1.0000 + -29.9341 1.0000 + -0.4887 1.0000 + 3.7492 1.0000 + 4.5743 1.0000 + 5.0985 1.0000 + 5.4857 1.0000 + 6.9239 1.0000 + 9.2263 0.0000 + 9.5939 0.0000 + 11.3727 0.0000 + 14.7170 0.0000 + 16.1538 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7426 1.0000 + -30.0138 1.0000 + -29.9982 1.0000 + -29.9337 1.0000 + -0.3455 1.0000 + 3.8851 1.0000 + 4.3963 1.0000 + 4.8981 1.0000 + 5.5780 1.0000 + 6.6012 1.0000 + 9.5131 0.0000 + 9.9903 0.0000 + 10.9583 0.0000 + 15.0569 0.0000 + 16.3985 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7424 1.0000 + -30.0228 1.0000 + -29.9974 1.0000 + -29.9331 1.0000 + -0.1133 1.0000 + 3.9680 1.0000 + 4.1423 1.0000 + 4.8263 1.0000 + 5.6458 1.0000 + 6.2595 1.0000 + 9.7738 0.0000 + 10.2498 0.0000 + 10.7319 0.0000 + 13.9527 0.0000 + 15.3880 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7422 1.0000 + -30.0330 1.0000 + -29.9965 1.0000 + -29.9323 1.0000 + 0.1946 1.0000 + 3.4921 1.0000 + 4.4185 1.0000 + 4.8251 1.0000 + 5.6324 1.0000 + 6.0245 1.0000 + 9.7715 0.0000 + 9.9943 0.0000 + 11.1510 0.0000 + 13.7014 0.0000 + 16.5495 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7420 1.0000 + -30.0429 1.0000 + -29.9956 1.0000 + -29.9316 1.0000 + 0.5628 1.0000 + 2.9731 1.0000 + 4.7045 1.0000 + 4.9098 1.0000 + 5.4759 1.0000 + 5.9673 1.0000 + 9.4317 0.0000 + 9.8472 0.0000 + 11.5921 0.0000 + 13.6688 0.0000 + 15.3116 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7418 1.0000 + -30.0505 1.0000 + -29.9949 1.0000 + -29.9311 1.0000 + 0.9775 1.0000 + 2.4579 1.0000 + 4.7922 1.0000 + 5.2187 1.0000 + 5.3117 1.0000 + 5.9343 1.0000 + 9.1395 0.0000 + 9.6338 0.0000 + 11.9354 0.0000 + 13.8117 0.0000 + 15.0790 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7418 1.0000 + -30.0548 1.0000 + -29.9946 1.0000 + -29.9308 1.0000 + 1.4086 1.0000 + 1.9761 1.0000 + 4.8168 1.0000 + 5.2061 1.0000 + 5.5597 1.0000 + 5.8151 1.0000 + 8.9724 0.0000 + 9.4790 0.0000 + 12.1291 0.0000 + 14.1071 0.0000 + 15.6601 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2903 1.0000 + -65.7424 1.0000 + -30.0135 1.0000 + -30.0040 1.0000 + -29.9332 1.0000 + -0.2065 1.0000 + 3.2450 1.0000 + 4.7589 1.0000 + 5.2488 1.0000 + 5.4433 1.0000 + 6.6906 1.0000 + 8.9578 0.0000 + 9.7562 0.0000 + 12.2284 0.0000 + 13.6467 0.0000 + 15.6738 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7424 1.0000 + -30.0133 1.0000 + -30.0062 1.0000 + -29.9330 1.0000 + -0.1582 1.0000 + 3.2898 1.0000 + 4.7575 1.0000 + 5.1144 1.0000 + 5.4721 1.0000 + 6.5804 1.0000 + 9.0982 0.0000 + 9.8501 0.0000 + 11.9458 0.0000 + 13.9323 0.0000 + 15.6257 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7422 1.0000 + -30.0128 1.0000 + -30.0124 1.0000 + -29.9326 1.0000 + -0.0156 1.0000 + 3.4223 1.0000 + 4.6865 1.0000 + 4.8536 1.0000 + 5.5334 1.0000 + 6.3183 1.0000 + 9.4083 0.0000 + 10.0693 0.0000 + 11.4327 0.0000 + 13.8385 0.0000 + 15.3753 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7421 1.0000 + -30.0214 1.0000 + -30.0120 1.0000 + -29.9320 1.0000 + 0.2115 1.0000 + 3.6251 1.0000 + 4.2944 1.0000 + 4.8274 1.0000 + 5.6180 1.0000 + 6.0093 1.0000 + 9.6312 0.0000 + 10.2757 0.0000 + 11.0215 0.0000 + 13.6105 0.0000 + 15.5689 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7418 1.0000 + -30.0317 1.0000 + -30.0111 1.0000 + -29.9313 1.0000 + 0.5117 1.0000 + 3.6756 1.0000 + 4.0282 1.0000 + 4.8696 1.0000 + 5.6990 1.0000 + 5.7349 1.0000 + 9.5362 0.0000 + 10.2061 0.0000 + 11.0080 0.0000 + 13.5324 0.0000 + 15.5343 0.0000 + + + -91.8804 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7417 1.0000 + -30.0416 1.0000 + -30.0103 1.0000 + -29.9306 1.0000 + 0.8642 1.0000 + 3.2318 1.0000 + 4.2558 1.0000 + 4.9684 1.0000 + 5.4836 1.0000 + 5.8019 1.0000 + 9.2565 0.0000 + 9.8056 0.0000 + 11.2920 0.0000 + 13.6768 0.0000 + 15.4872 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7415 1.0000 + -30.0493 1.0000 + -30.0096 1.0000 + -29.9300 1.0000 + 1.2490 1.0000 + 2.7560 1.0000 + 4.4489 1.0000 + 5.1394 1.0000 + 5.3565 1.0000 + 5.8359 1.0000 + 8.9975 0.0000 + 9.3530 0.0000 + 11.5665 0.0000 + 14.0109 0.0000 + 15.4805 0.0000 + + + -91.8796 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7414 1.0000 + -30.0535 1.0000 + -30.0091 1.0000 + -29.9298 1.0000 + 1.6087 1.0000 + 2.3515 1.0000 + 4.5288 1.0000 + 5.1724 1.0000 + 5.4938 1.0000 + 5.7819 1.0000 + 8.8529 0.0000 + 9.0524 0.0000 + 11.7104 0.0000 + 14.0573 0.0000 + 15.0900 0.0000 + + + -91.8814 1.0000 + -91.4264 1.0000 + -91.2914 1.0000 + -65.7422 1.0000 + -30.0274 1.0000 + -30.0027 1.0000 + -29.9322 1.0000 + 0.1919 1.0000 + 2.7296 1.0000 + 4.8887 1.0000 + 5.2689 1.0000 + 5.4479 1.0000 + 6.4571 1.0000 + 8.9309 0.0000 + 10.1141 0.0000 + 12.7287 0.0000 + 12.8456 0.0000 + 15.3170 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7421 1.0000 + -30.0272 1.0000 + -30.0048 1.0000 + -29.9320 1.0000 + 0.2409 1.0000 + 2.7729 1.0000 + 4.8898 1.0000 + 5.2223 1.0000 + 5.3965 1.0000 + 6.3796 1.0000 + 9.0274 0.0000 + 10.1593 0.0000 + 12.1501 0.0000 + 13.4325 0.0000 + 15.0368 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7419 1.0000 + -30.0267 1.0000 + -30.0110 1.0000 + -29.9316 1.0000 + 0.3806 1.0000 + 2.8996 1.0000 + 4.8497 1.0000 + 5.0127 1.0000 + 5.3985 1.0000 + 6.1868 1.0000 + 9.2455 0.0000 + 10.1860 0.0000 + 11.6938 0.0000 + 13.6620 0.0000 + 14.8455 0.0000 + + + -91.8809 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7418 1.0000 + -30.0259 1.0000 + -30.0201 1.0000 + -29.9310 1.0000 + 0.6011 1.0000 + 3.0992 1.0000 + 4.5252 1.0000 + 4.9705 1.0000 + 5.4410 1.0000 + 5.9674 1.0000 + 9.3795 0.0000 + 10.0938 0.0000 + 11.4215 0.0000 + 13.4946 0.0000 + 15.3249 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7416 1.0000 + -30.0305 1.0000 + -30.0251 1.0000 + -29.9303 1.0000 + 0.8844 1.0000 + 3.3282 1.0000 + 4.1307 1.0000 + 4.9976 1.0000 + 5.4432 1.0000 + 5.8368 1.0000 + 9.1709 0.0000 + 10.0960 0.0000 + 11.0760 0.0000 + 13.6019 0.0000 + 15.5760 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7414 1.0000 + -30.0404 1.0000 + -30.0242 1.0000 + -29.9296 1.0000 + 1.2071 1.0000 + 3.3733 1.0000 + 3.9450 1.0000 + 5.0033 1.0000 + 5.4115 1.0000 + 5.8500 1.0000 + 8.8027 0.0000 + 9.9189 0.0000 + 10.8392 0.0000 + 13.9632 0.0000 + 15.2363 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7413 1.0000 + -30.0482 1.0000 + -30.0236 1.0000 + -29.9291 1.0000 + 1.5374 1.0000 + 3.0788 1.0000 + 4.0952 1.0000 + 4.9405 1.0000 + 5.4963 1.0000 + 5.8970 1.0000 + 8.4845 0.0000 + 9.4593 0.0000 + 10.8758 0.0000 + 14.4053 0.0000 + 17.6986 0.0000 + + + -91.8806 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7411 1.0000 + -30.0524 1.0000 + -30.0233 1.0000 + -29.9289 1.0000 + 1.8017 1.0000 + 2.7984 1.0000 + 4.2319 1.0000 + 4.8727 1.0000 + 5.6545 1.0000 + 5.8902 1.0000 + 8.3046 0.0000 + 9.1174 0.0000 + 10.9361 0.0000 + 14.6714 0.0000 + 15.1061 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7419 1.0000 + -30.0381 1.0000 + -30.0016 1.0000 + -29.9314 1.0000 + 0.6438 1.0000 + 2.1972 1.0000 + 4.9816 1.0000 + 5.2821 1.0000 + 5.4079 1.0000 + 6.3587 1.0000 + 9.0891 0.0000 + 10.4109 0.0000 + 12.0762 0.0000 + 12.9720 0.0000 + 14.7931 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7418 1.0000 + -30.0379 1.0000 + -30.0038 1.0000 + -29.9312 1.0000 + 0.6917 1.0000 + 2.2385 1.0000 + 4.9684 1.0000 + 5.2605 1.0000 + 5.3795 1.0000 + 6.2871 1.0000 + 9.1342 0.0000 + 10.3626 0.0000 + 11.8755 0.0000 + 13.5638 0.0000 + 14.7415 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7417 1.0000 + -30.0374 1.0000 + -30.0100 1.0000 + -29.9308 1.0000 + 0.8289 1.0000 + 2.3628 1.0000 + 4.8680 1.0000 + 5.2167 1.0000 + 5.3487 1.0000 + 6.1151 1.0000 + 9.2333 0.0000 + 10.1098 0.0000 + 11.7864 0.0000 + 13.8645 0.0000 + 14.5821 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7415 1.0000 + -30.0368 1.0000 + -30.0191 1.0000 + -29.9302 1.0000 + 1.0385 1.0000 + 2.5659 1.0000 + 4.6184 1.0000 + 5.2494 1.0000 + 5.2935 1.0000 + 5.9474 1.0000 + 9.2299 0.0000 + 9.7805 0.0000 + 11.7623 0.0000 + 14.6669 0.0000 + 33.9627 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7413 1.0000 + -30.0360 1.0000 + -30.0295 1.0000 + -29.9295 1.0000 + 1.2933 1.0000 + 2.8351 1.0000 + 4.3053 1.0000 + 5.1462 1.0000 + 5.3500 1.0000 + 5.8888 1.0000 + 8.8751 0.0000 + 9.7440 0.0000 + 11.2586 0.0000 + 13.7436 0.0000 + 15.3267 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7412 1.0000 + -30.0394 1.0000 + -30.0352 1.0000 + -29.9289 1.0000 + 1.5626 1.0000 + 3.1227 1.0000 + 4.0176 1.0000 + 4.9307 1.0000 + 5.5039 1.0000 + 5.9329 1.0000 + 8.4289 0.0000 + 9.7601 0.0000 + 10.6018 0.0000 + 14.2919 0.0000 + 15.0899 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7410 1.0000 + -30.0472 1.0000 + -30.0346 1.0000 + -29.9284 1.0000 + 1.8088 1.0000 + 3.2901 1.0000 + 3.8891 1.0000 + 4.7082 1.0000 + 5.7010 1.0000 + 6.0056 1.0000 + 8.0678 0.0044 + 9.5108 0.0000 + 10.2464 0.0000 + 14.9130 0.0000 + 15.6767 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2912 1.0000 + -65.7409 1.0000 + -30.0515 1.0000 + -30.0343 1.0000 + -29.9281 1.0000 + 1.9715 1.0000 + 3.2549 1.0000 + 3.9834 1.0000 + 4.5315 1.0000 + 5.8883 1.0000 + 6.0297 1.0000 + 7.8661 0.5933 + 9.1689 0.0000 + 10.2004 0.0000 + 15.0616 0.0000 + 32.0644 0.0000 + + + -91.8815 1.0000 + -91.4266 1.0000 + -91.2915 1.0000 + -65.7418 1.0000 + -30.0440 1.0000 + -30.0011 1.0000 + -29.9310 1.0000 + 1.1269 1.0000 + 1.6721 1.0000 + 5.0342 1.0000 + 5.2771 1.0000 + 5.3683 1.0000 + 6.3348 1.0000 + 9.3061 0.0000 + 10.6059 0.0000 + 11.5175 0.0000 + 13.0325 0.0000 + 14.6615 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7417 1.0000 + -30.0438 1.0000 + -30.0032 1.0000 + -29.9308 1.0000 + 1.1784 1.0000 + 1.7101 1.0000 + 5.0365 1.0000 + 5.1518 1.0000 + 5.4647 1.0000 + 6.2520 1.0000 + 9.3181 0.0000 + 10.4031 0.0000 + 11.5903 0.0000 + 13.3633 0.0000 + 14.5583 0.0000 + + + -91.8801 1.0000 + -91.4252 1.0000 + -91.2901 1.0000 + -65.7415 1.0000 + -30.0433 1.0000 + -30.0093 1.0000 + -29.9303 1.0000 + 1.3163 1.0000 + 1.8312 1.0000 + 4.8941 1.0000 + 5.1190 1.0000 + 5.5631 1.0000 + 6.0425 1.0000 + 9.3454 0.0000 + 9.9129 0.0000 + 12.0493 0.0000 + 13.9108 0.0000 + 14.3729 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7414 1.0000 + -30.0427 1.0000 + -30.0185 1.0000 + -29.9297 1.0000 + 1.5003 1.0000 + 2.0569 1.0000 + 4.6455 1.0000 + 5.1693 1.0000 + 5.5995 1.0000 + 5.8371 1.0000 + 9.2378 0.0000 + 9.4800 0.0000 + 11.9139 0.0000 + 13.5604 0.0000 + 14.7551 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7412 1.0000 + -30.0419 1.0000 + -30.0289 1.0000 + -29.9291 1.0000 + 1.6855 1.0000 + 2.3977 1.0000 + 4.3844 1.0000 + 5.1110 1.0000 + 5.5521 1.0000 + 5.8491 1.0000 + 8.7124 0.0000 + 9.4831 0.0000 + 11.3760 0.0000 + 13.8572 0.0000 + 14.9892 0.0000 + + + -91.8810 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7410 1.0000 + -30.0411 1.0000 + -30.0389 1.0000 + -29.9285 1.0000 + 1.8550 1.0000 + 2.8180 1.0000 + 4.1421 1.0000 + 4.8462 1.0000 + 5.6803 1.0000 + 5.9491 1.0000 + 8.2154 0.0000 + 9.5095 0.0000 + 10.5843 0.0000 + 14.5072 0.0000 + 15.0778 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7409 1.0000 + -30.0467 1.0000 + -30.0406 1.0000 + -29.9280 1.0000 + 1.9950 1.0000 + 3.2581 1.0000 + 3.9509 1.0000 + 4.5226 1.0000 + 5.8957 1.0000 + 6.0587 1.0000 + 7.8278 0.7815 + 9.4491 0.0000 + 9.9344 0.0000 + 15.0260 0.0000 + 18.3727 0.0000 + + + -91.8815 1.0000 + -91.4265 1.0000 + -91.2915 1.0000 + -65.7408 1.0000 + -30.0510 1.0000 + -30.0402 1.0000 + -29.9277 1.0000 + 2.0780 1.0000 + 3.6286 1.0000 + 3.8595 1.0000 + 4.2059 1.0000 + 6.0817 1.0000 + 6.1302 1.0000 + 7.6065 1.0000 + 9.1931 0.0000 + 9.7385 0.0000 + 15.0476 0.0000 + 16.6319 0.0000 + + + -91.8793 1.0000 + -91.4243 1.0000 + -91.2893 1.0000 + -65.7415 1.0000 + -30.0028 1.0000 + -29.9802 1.0000 + -29.9695 1.0000 + -0.4815 1.0000 + 3.4597 1.0000 + 4.4964 1.0000 + 4.9371 1.0000 + 5.1831 1.0000 + 8.4989 0.0000 + 9.1550 0.0000 + 10.1399 0.0000 + 10.4152 0.0000 + 14.2974 0.0000 + 14.8308 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2897 1.0000 + -65.7415 1.0000 + -30.0050 1.0000 + -29.9801 1.0000 + -29.9693 1.0000 + -0.4342 1.0000 + 3.4391 1.0000 + 4.4529 1.0000 + 4.9676 1.0000 + 5.2040 1.0000 + 8.2556 0.0000 + 9.2125 0.0000 + 10.0413 0.0000 + 10.7194 0.0000 + 14.2965 0.0000 + 15.1176 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7414 1.0000 + -30.0112 1.0000 + -29.9796 1.0000 + -29.9688 1.0000 + -0.2928 1.0000 + 3.3540 1.0000 + 4.3881 1.0000 + 5.0261 1.0000 + 5.2648 1.0000 + 7.7736 0.9387 + 9.3605 0.0000 + 9.8023 0.0000 + 11.3678 0.0000 + 13.9531 0.0000 + 14.9554 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7412 1.0000 + -30.0203 1.0000 + -29.9791 1.0000 + -29.9679 1.0000 + -0.0672 1.0000 + 3.1662 1.0000 + 4.3914 1.0000 + 5.0790 1.0000 + 5.3596 1.0000 + 7.2805 1.0000 + 9.4059 0.0000 + 9.6783 0.0000 + 12.0688 0.0000 + 13.4792 0.0000 + 15.2550 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7411 1.0000 + -30.0306 1.0000 + -29.9785 1.0000 + -29.9670 1.0000 + 0.2282 1.0000 + 2.8837 1.0000 + 4.4758 1.0000 + 5.1145 1.0000 + 5.4784 1.0000 + 6.8477 1.0000 + 9.1811 0.0000 + 9.8874 0.0000 + 12.5970 0.0000 + 12.9048 0.0000 + 15.2176 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7408 1.0000 + -30.0404 1.0000 + -29.9778 1.0000 + -29.9661 1.0000 + 0.5762 1.0000 + 2.5428 1.0000 + 4.6037 1.0000 + 5.1264 1.0000 + 5.6095 1.0000 + 6.4965 1.0000 + 9.0211 0.0000 + 10.1220 0.0000 + 12.3062 0.0000 + 12.7724 0.0000 + 15.5499 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7407 1.0000 + -30.0482 1.0000 + -29.9773 1.0000 + -29.9654 1.0000 + 0.9542 1.0000 + 2.1721 1.0000 + 4.7324 1.0000 + 5.1121 1.0000 + 5.7425 1.0000 + 6.2291 1.0000 + 8.9691 0.0000 + 10.3317 0.0000 + 11.7644 0.0000 + 12.7021 0.0000 + 15.1622 0.0000 + + + -91.8793 1.0000 + -91.4243 1.0000 + -91.2893 1.0000 + -65.7406 1.0000 + -30.0524 1.0000 + -29.9770 1.0000 + -29.9649 1.0000 + 1.3325 1.0000 + 1.8005 1.0000 + 4.8244 1.0000 + 5.0841 1.0000 + 5.8749 1.0000 + 6.0344 1.0000 + 8.9800 0.0000 + 10.4848 0.0000 + 11.3991 0.0000 + 12.6194 0.0000 + 17.5491 0.0000 + + + -91.8794 1.0000 + -91.4244 1.0000 + -91.2894 1.0000 + -65.7415 1.0000 + -30.0025 1.0000 + -29.9799 1.0000 + -29.9726 1.0000 + -0.4309 1.0000 + 3.4495 1.0000 + 4.4823 1.0000 + 4.9614 1.0000 + 5.1769 1.0000 + 8.1972 0.0000 + 9.2037 0.0000 + 10.3016 0.0000 + 10.5059 0.0000 + 14.3943 0.0000 + 15.2824 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7414 1.0000 + -30.0047 1.0000 + -29.9798 1.0000 + -29.9724 1.0000 + -0.3827 1.0000 + 3.4372 1.0000 + 4.4369 1.0000 + 4.9880 1.0000 + 5.1943 1.0000 + 7.9855 0.0733 + 9.2633 0.0000 + 10.3201 0.0000 + 10.6409 0.0000 + 14.3071 0.0000 + 15.7382 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7413 1.0000 + -30.0109 1.0000 + -29.9795 1.0000 + -29.9718 1.0000 + -0.2406 1.0000 + 3.3744 1.0000 + 4.3644 1.0000 + 5.0412 1.0000 + 5.2443 1.0000 + 7.5476 1.0000 + 9.4153 0.0000 + 10.0599 0.0000 + 11.2380 0.0000 + 14.8208 0.0000 + 16.0819 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7412 1.0000 + -30.0200 1.0000 + -29.9789 1.0000 + -29.9710 1.0000 + -0.0152 1.0000 + 3.2090 1.0000 + 4.3636 1.0000 + 5.0929 1.0000 + 5.3207 1.0000 + 7.0926 1.0000 + 9.5502 0.0000 + 9.7938 0.0000 + 11.8036 0.0000 + 13.5951 0.0000 + 14.9192 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7410 1.0000 + -30.0303 1.0000 + -29.9783 1.0000 + -29.9700 1.0000 + 0.2806 1.0000 + 2.9377 1.0000 + 4.4563 1.0000 + 5.1302 1.0000 + 5.4164 1.0000 + 6.6996 1.0000 + 9.3444 0.0000 + 9.9025 0.0000 + 12.0852 0.0000 + 13.4362 0.0000 + 15.8291 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7407 1.0000 + -30.0402 1.0000 + -29.9776 1.0000 + -29.9691 1.0000 + 0.6271 1.0000 + 2.6012 1.0000 + 4.5958 1.0000 + 5.1415 1.0000 + 5.5298 1.0000 + 6.3932 1.0000 + 9.1313 0.0000 + 10.0660 0.0000 + 11.8833 0.0000 + 13.3141 0.0000 + 15.1866 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7406 1.0000 + -30.0479 1.0000 + -29.9771 1.0000 + -29.9684 1.0000 + 1.0037 1.0000 + 2.2324 1.0000 + 4.7288 1.0000 + 5.1208 1.0000 + 5.6641 1.0000 + 6.1656 1.0000 + 9.0233 0.0000 + 10.1524 0.0000 + 11.6108 0.0000 + 13.1453 0.0000 + 15.2752 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2900 1.0000 + -65.7405 1.0000 + -30.0521 1.0000 + -29.9768 1.0000 + -29.9680 1.0000 + 1.3741 1.0000 + 1.8670 1.0000 + 4.8158 1.0000 + 5.0875 1.0000 + 5.8147 1.0000 + 5.9871 1.0000 + 8.9976 0.0000 + 10.1607 0.0000 + 11.4588 0.0000 + 13.0058 0.0000 + 15.0515 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7413 1.0000 + -30.0017 1.0000 + -29.9814 1.0000 + -29.9793 1.0000 + -0.2798 1.0000 + 3.3917 1.0000 + 4.4650 1.0000 + 5.0319 1.0000 + 5.1692 1.0000 + 7.6464 0.9996 + 9.3147 0.0000 + 10.0458 0.0000 + 11.2372 0.0000 + 14.4922 0.0000 + 15.3633 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7412 1.0000 + -30.0039 1.0000 + -29.9812 1.0000 + -29.9792 1.0000 + -0.2318 1.0000 + 3.4031 1.0000 + 4.4148 1.0000 + 5.0453 1.0000 + 5.1799 1.0000 + 7.4709 1.0000 + 9.3790 0.0000 + 10.2465 0.0000 + 11.0981 0.0000 + 14.1220 0.0000 + 16.8656 0.0000 + + + -91.8797 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7411 1.0000 + -30.0101 1.0000 + -29.9806 1.0000 + -29.9788 1.0000 + -0.0888 1.0000 + 3.4098 1.0000 + 4.3128 1.0000 + 5.0782 1.0000 + 5.2075 1.0000 + 7.0931 1.0000 + 9.5240 0.0000 + 10.5314 0.0000 + 10.9313 0.0000 + 13.8315 0.0000 + 14.9563 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7410 1.0000 + -30.0192 1.0000 + -29.9798 1.0000 + -29.9782 1.0000 + 0.1365 1.0000 + 3.3258 1.0000 + 4.2788 1.0000 + 5.1226 1.0000 + 5.2385 1.0000 + 6.6994 1.0000 + 9.6594 0.0000 + 10.2232 0.0000 + 11.3212 0.0000 + 13.9202 0.0000 + 16.2795 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7408 1.0000 + -30.0296 1.0000 + -29.9790 1.0000 + -29.9776 1.0000 + 0.4308 1.0000 + 3.0973 1.0000 + 4.3838 1.0000 + 5.1738 1.0000 + 5.2576 1.0000 + 6.3799 1.0000 + 9.6051 0.0000 + 9.9623 0.0000 + 11.5706 0.0000 + 13.6078 0.0000 + 14.8495 0.0000 + + + -91.8796 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7405 1.0000 + -30.0394 1.0000 + -29.9782 1.0000 + -29.9768 1.0000 + 0.7749 1.0000 + 2.7747 1.0000 + 4.5617 1.0000 + 5.1803 1.0000 + 5.3158 1.0000 + 6.1636 1.0000 + 9.3464 0.0000 + 9.8339 0.0000 + 11.6131 0.0000 + 13.9966 0.0000 + 14.7722 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7404 1.0000 + -30.0472 1.0000 + -29.9775 1.0000 + -29.9763 1.0000 + 1.1431 1.0000 + 2.4134 1.0000 + 4.7126 1.0000 + 5.1290 1.0000 + 5.4671 1.0000 + 6.0157 1.0000 + 9.1396 0.0000 + 9.6449 0.0000 + 11.6446 0.0000 + 14.7531 0.0000 + 45.4682 0.0000 + + + -91.8802 1.0000 + -91.4251 1.0000 + -91.2902 1.0000 + -65.7404 1.0000 + -30.0514 1.0000 + -29.9772 1.0000 + -29.9760 1.0000 + 1.4899 1.0000 + 2.0701 1.0000 + 4.7840 1.0000 + 5.0904 1.0000 + 5.6669 1.0000 + 5.8686 1.0000 + 9.0434 0.0000 + 9.4853 0.0000 + 11.6814 0.0000 + 13.7976 0.0000 + 15.2308 0.0000 + + + -91.8796 1.0000 + -91.4246 1.0000 + -91.2896 1.0000 + -65.7410 1.0000 + -30.0005 1.0000 + -29.9942 1.0000 + -29.9785 1.0000 + -0.0384 1.0000 + 3.2400 1.0000 + 4.4989 1.0000 + 5.1411 1.0000 + 5.1734 1.0000 + 7.1079 1.0000 + 9.3512 0.0000 + 9.8771 0.0000 + 11.9958 0.0000 + 13.6113 0.0000 + 21.7136 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7410 1.0000 + -30.0027 1.0000 + -29.9940 1.0000 + -29.9784 1.0000 + 0.0097 1.0000 + 3.2752 1.0000 + 4.4507 1.0000 + 5.1290 1.0000 + 5.1813 1.0000 + 6.9619 1.0000 + 9.4416 0.0000 + 10.0172 0.0000 + 11.7522 0.0000 + 13.6423 0.0000 + 14.9614 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7409 1.0000 + -30.0089 1.0000 + -29.9935 1.0000 + -29.9780 1.0000 + 0.1509 1.0000 + 3.3699 1.0000 + 4.3172 1.0000 + 5.1057 1.0000 + 5.2032 1.0000 + 6.6401 1.0000 + 9.5752 0.0000 + 10.3957 0.0000 + 11.2701 0.0000 + 13.5268 0.0000 + 14.8940 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7407 1.0000 + -30.0180 1.0000 + -29.9927 1.0000 + -29.9775 1.0000 + 0.3757 1.0000 + 3.4547 1.0000 + 4.1789 1.0000 + 5.0808 1.0000 + 5.2321 1.0000 + 6.3094 1.0000 + 9.5872 0.0000 + 10.6701 0.0000 + 10.9785 0.0000 + 13.3361 0.0000 + 16.3021 0.0000 + + + -91.8798 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7405 1.0000 + -30.0284 1.0000 + -29.9918 1.0000 + -29.9768 1.0000 + 0.6661 1.0000 + 3.3528 1.0000 + 4.2329 1.0000 + 5.0410 1.0000 + 5.2587 1.0000 + 6.0667 1.0000 + 9.4049 0.0000 + 10.2926 0.0000 + 11.3119 0.0000 + 13.8752 0.0000 + 38.4800 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7403 1.0000 + -30.0384 1.0000 + -29.9910 1.0000 + -29.9762 1.0000 + 1.0012 1.0000 + 3.0611 1.0000 + 4.4746 1.0000 + 4.9804 1.0000 + 5.2893 1.0000 + 5.9349 1.0000 + 9.1205 0.0000 + 9.8404 0.0000 + 11.5936 0.0000 + 13.6823 0.0000 + 15.1706 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7401 1.0000 + -30.0461 1.0000 + -29.9903 1.0000 + -29.9758 1.0000 + 1.3562 1.0000 + 2.7118 1.0000 + 4.6771 1.0000 + 4.9797 1.0000 + 5.3623 1.0000 + 5.8533 1.0000 + 8.8711 0.0000 + 9.4054 0.0000 + 11.8042 0.0000 + 14.1600 0.0000 + 14.8362 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7401 1.0000 + -30.0504 1.0000 + -29.9899 1.0000 + -29.9755 1.0000 + 1.6624 1.0000 + 2.4033 1.0000 + 4.7026 1.0000 + 5.0589 1.0000 + 5.5288 1.0000 + 5.7361 1.0000 + 8.7332 0.0000 + 9.1257 0.0000 + 11.9246 0.0000 + 14.4000 0.0000 + 14.8474 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7407 1.0000 + -30.0089 1.0000 + -29.9991 1.0000 + -29.9776 1.0000 + 0.2750 1.0000 + 2.9834 1.0000 + 4.6018 1.0000 + 5.1861 1.0000 + 5.2760 1.0000 + 6.6473 1.0000 + 9.2218 0.0000 + 9.9612 0.0000 + 12.7917 0.0000 + 14.6660 0.0000 + 37.0432 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7407 1.0000 + -30.0087 1.0000 + -30.0013 1.0000 + -29.9775 1.0000 + 0.3237 1.0000 + 3.0324 1.0000 + 4.5699 1.0000 + 5.1962 1.0000 + 5.2285 1.0000 + 6.5349 1.0000 + 9.3249 0.0000 + 10.0206 0.0000 + 12.0589 0.0000 + 13.6356 0.0000 + 16.3395 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7406 1.0000 + -30.0082 1.0000 + -30.0075 1.0000 + -29.9771 1.0000 + 0.4629 1.0000 + 3.1773 1.0000 + 4.4588 1.0000 + 5.1107 1.0000 + 5.2302 1.0000 + 6.2832 1.0000 + 9.4510 0.0000 + 10.2180 0.0000 + 11.5408 0.0000 + 13.5178 0.0000 + 14.9785 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7404 1.0000 + -30.0167 1.0000 + -30.0075 1.0000 + -29.9766 1.0000 + 0.6833 1.0000 + 3.4070 1.0000 + 4.2516 1.0000 + 4.9747 1.0000 + 5.2836 1.0000 + 6.0299 1.0000 + 9.3115 0.0000 + 10.5371 0.0000 + 11.2041 0.0000 + 13.5198 0.0000 + 16.1069 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7402 1.0000 + -30.0271 1.0000 + -30.0066 1.0000 + -29.9760 1.0000 + 0.9662 1.0000 + 3.6247 1.0000 + 4.0527 1.0000 + 4.8364 1.0000 + 5.3481 1.0000 + 5.8553 1.0000 + 8.9510 0.0000 + 10.5646 0.0000 + 11.1623 0.0000 + 13.2954 0.0000 + 15.4682 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7400 1.0000 + -30.0371 1.0000 + -30.0058 1.0000 + -29.9754 1.0000 + 1.2872 1.0000 + 3.4438 1.0000 + 4.2743 1.0000 + 4.7030 1.0000 + 5.4051 1.0000 + 5.7716 1.0000 + 8.5488 0.0000 + 10.0763 0.0000 + 11.4481 0.0000 + 13.4035 0.0000 + 15.3922 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7398 1.0000 + -30.0450 1.0000 + -30.0051 1.0000 + -29.9749 1.0000 + 1.6159 1.0000 + 3.1051 1.0000 + 4.5944 1.0000 + 4.6676 1.0000 + 5.4494 1.0000 + 5.7286 1.0000 + 8.2204 0.0000 + 9.5427 0.0000 + 11.6960 0.0000 + 13.7216 0.0000 + 15.3053 0.0000 + + + -91.8805 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7398 1.0000 + -30.0492 1.0000 + -30.0047 1.0000 + -29.9747 1.0000 + 1.8783 1.0000 + 2.8300 1.0000 + 4.5354 1.0000 + 4.9641 1.0000 + 5.5125 1.0000 + 5.6496 1.0000 + 8.0373 0.0144 + 9.1984 0.0000 + 11.8323 0.0000 + 13.9270 0.0000 + 15.3527 0.0000 + + + -91.8801 1.0000 + -91.4252 1.0000 + -91.2901 1.0000 + -65.7404 1.0000 + -30.0228 1.0000 + -29.9977 1.0000 + -29.9766 1.0000 + 0.6424 1.0000 + 2.6545 1.0000 + 4.7408 1.0000 + 5.1925 1.0000 + 5.4185 1.0000 + 6.2853 1.0000 + 9.1528 0.0000 + 10.1154 0.0000 + 12.2959 0.0000 + 12.6644 0.0000 + 15.1835 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7404 1.0000 + -30.0228 1.0000 + -30.0000 1.0000 + -29.9766 1.0000 + 0.6883 1.0000 + 2.7077 1.0000 + 4.7264 1.0000 + 5.2034 1.0000 + 5.3412 1.0000 + 6.2150 1.0000 + 9.2183 0.0000 + 10.0975 0.0000 + 11.8514 0.0000 + 13.2505 0.0000 + 15.4538 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7403 1.0000 + -30.0223 1.0000 + -30.0062 1.0000 + -29.9762 1.0000 + 0.8257 1.0000 + 2.8686 1.0000 + 4.6756 1.0000 + 5.1155 1.0000 + 5.2552 1.0000 + 6.0553 1.0000 + 9.2590 0.0000 + 10.0607 0.0000 + 11.5620 0.0000 + 14.3861 0.0000 + 15.3778 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7401 1.0000 + -30.0215 1.0000 + -30.0154 1.0000 + -29.9757 1.0000 + 1.0393 1.0000 + 3.1357 1.0000 + 4.5429 1.0000 + 4.8526 1.0000 + 5.3235 1.0000 + 5.8912 1.0000 + 8.9678 0.0000 + 10.1859 0.0000 + 11.4775 0.0000 + 13.5169 0.0000 + 15.2678 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7399 1.0000 + -30.0259 1.0000 + -30.0207 1.0000 + -29.9751 1.0000 + 1.3079 1.0000 + 3.4975 1.0000 + 4.2537 1.0000 + 4.6695 1.0000 + 5.4215 1.0000 + 5.7678 1.0000 + 8.4790 0.0000 + 10.3583 0.0000 + 11.2562 0.0000 + 13.7957 0.0000 + 15.4576 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2903 1.0000 + -65.7397 1.0000 + -30.0359 1.0000 + -30.0199 1.0000 + -29.9745 1.0000 + 1.6071 1.0000 + 3.8504 1.0000 + 3.9497 1.0000 + 4.5723 1.0000 + 5.5290 1.0000 + 5.6928 1.0000 + 7.9970 0.0531 + 10.1882 0.0000 + 11.0596 0.0000 + 13.6172 0.0000 + 15.4580 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7395 1.0000 + -30.0438 1.0000 + -30.0193 1.0000 + -29.9740 1.0000 + 1.9028 1.0000 + 3.5236 1.0000 + 4.2368 1.0000 + 4.6294 1.0000 + 5.6020 1.0000 + 5.6607 1.0000 + 7.6208 0.9999 + 9.6622 0.0000 + 11.1234 0.0000 + 13.9670 0.0000 + 15.5268 0.0000 + + + -91.8808 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7395 1.0000 + -30.0481 1.0000 + -30.0189 1.0000 + -29.9738 1.0000 + 2.1226 1.0000 + 3.2739 1.0000 + 4.2868 1.0000 + 4.8744 1.0000 + 5.6116 1.0000 + 5.6455 1.0000 + 7.4201 1.0000 + 9.2695 0.0000 + 11.1923 0.0000 + 14.0391 0.0000 + 15.3789 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7402 1.0000 + -30.0338 1.0000 + -29.9968 1.0000 + -29.9759 1.0000 + 1.0386 1.0000 + 2.2838 1.0000 + 4.8741 1.0000 + 5.1768 1.0000 + 5.5479 1.0000 + 6.0278 1.0000 + 9.2474 0.0000 + 10.2163 0.0000 + 11.7129 0.0000 + 12.5232 0.0000 + 15.0058 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7401 1.0000 + -30.0336 1.0000 + -29.9990 1.0000 + -29.9758 1.0000 + 1.0849 1.0000 + 2.3392 1.0000 + 4.8595 1.0000 + 5.1791 1.0000 + 5.4792 1.0000 + 5.9945 1.0000 + 9.2635 0.0000 + 10.0727 0.0000 + 11.5584 0.0000 + 12.9761 0.0000 + 14.9006 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7400 1.0000 + -30.0331 1.0000 + -30.0052 1.0000 + -29.9755 1.0000 + 1.2159 1.0000 + 2.5063 1.0000 + 4.8118 1.0000 + 5.1287 1.0000 + 5.3567 1.0000 + 5.9132 1.0000 + 9.1604 0.0000 + 9.8071 0.0000 + 11.5723 0.0000 + 13.7995 0.0000 + 14.5522 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7399 1.0000 + -30.0325 1.0000 + -30.0144 1.0000 + -29.9750 1.0000 + 1.4162 1.0000 + 2.7831 1.0000 + 4.7111 1.0000 + 4.9082 1.0000 + 5.3719 1.0000 + 5.8226 1.0000 + 8.6841 0.0000 + 9.8145 0.0000 + 11.6802 0.0000 + 13.7580 0.0000 + 15.0949 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7397 1.0000 + -30.0317 1.0000 + -30.0249 1.0000 + -29.9744 1.0000 + 1.6606 1.0000 + 3.1538 1.0000 + 4.4685 1.0000 + 4.7356 1.0000 + 5.4606 1.0000 + 5.7551 1.0000 + 8.0965 0.0013 + 9.9238 0.0000 + 11.4526 0.0000 + 13.4892 0.0000 + 15.4328 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7394 1.0000 + -30.0350 1.0000 + -30.0309 1.0000 + -29.9738 1.0000 + 1.9273 1.0000 + 3.5628 1.0000 + 4.1380 1.0000 + 4.6730 1.0000 + 5.5708 1.0000 + 5.7308 1.0000 + 7.5590 1.0000 + 9.9659 0.0000 + 10.8523 0.0000 + 14.1412 0.0000 + 15.3603 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2912 1.0000 + -65.7394 1.0000 + -30.0429 1.0000 + -30.0304 1.0000 + -29.9734 1.0000 + 2.1834 1.0000 + 3.8283 1.0000 + 3.8862 1.0000 + 4.7204 1.0000 + 5.6527 1.0000 + 5.7690 1.0000 + 7.1423 1.0000 + 9.7054 0.0000 + 10.4694 0.0000 + 14.5817 0.0000 + 17.9482 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7393 1.0000 + -30.0472 1.0000 + -30.0300 1.0000 + -29.9732 1.0000 + 2.3655 1.0000 + 3.6194 1.0000 + 4.0214 1.0000 + 4.8461 1.0000 + 5.7172 1.0000 + 5.7917 1.0000 + 6.9188 1.0000 + 9.3231 0.0000 + 10.4174 0.0000 + 14.4421 0.0000 + 15.8976 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7400 1.0000 + -30.0397 1.0000 + -29.9962 1.0000 + -29.9755 1.0000 + 1.4380 1.0000 + 1.9003 1.0000 + 4.9695 1.0000 + 5.1428 1.0000 + 5.6423 1.0000 + 5.8766 1.0000 + 9.4326 0.0000 + 10.2038 0.0000 + 11.3534 0.0000 + 12.4003 0.0000 + 15.1798 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7400 1.0000 + -30.0396 1.0000 + -29.9984 1.0000 + -29.9754 1.0000 + 1.4775 1.0000 + 1.9610 1.0000 + 4.9344 1.0000 + 5.1436 1.0000 + 5.6222 1.0000 + 5.8407 1.0000 + 9.4328 0.0000 + 9.9118 0.0000 + 11.4086 0.0000 + 12.7786 0.0000 + 14.7529 0.0000 + + + -91.8802 1.0000 + -91.4253 1.0000 + -91.2902 1.0000 + -65.7399 1.0000 + -30.0391 1.0000 + -30.0046 1.0000 + -29.9751 1.0000 + 1.5884 1.0000 + 2.1473 1.0000 + 4.8263 1.0000 + 5.1395 1.0000 + 5.5663 1.0000 + 5.7671 1.0000 + 9.1881 0.0000 + 9.5548 0.0000 + 11.6103 0.0000 + 13.5641 0.0000 + 14.7151 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2902 1.0000 + -65.7397 1.0000 + -30.0384 1.0000 + -30.0138 1.0000 + -29.9746 1.0000 + 1.7510 1.0000 + 2.4554 1.0000 + 4.6493 1.0000 + 5.1054 1.0000 + 5.5016 1.0000 + 5.7219 1.0000 + 8.5259 0.0000 + 9.5738 0.0000 + 11.7986 0.0000 + 14.0607 0.0000 + 14.5081 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2904 1.0000 + -65.7395 1.0000 + -30.0377 1.0000 + -30.0244 1.0000 + -29.9740 1.0000 + 1.9503 1.0000 + 2.8575 1.0000 + 4.4232 1.0000 + 5.0190 1.0000 + 5.4953 1.0000 + 5.7259 1.0000 + 7.8787 0.5228 + 9.6218 0.0000 + 11.5688 0.0000 + 13.6440 0.0000 + 15.2299 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7393 1.0000 + -30.0369 1.0000 + -30.0345 1.0000 + -29.9735 1.0000 + 2.1724 1.0000 + 3.2887 1.0000 + 4.1759 1.0000 + 4.9222 1.0000 + 5.5665 1.0000 + 5.7737 1.0000 + 7.3144 1.0000 + 9.6562 0.0000 + 10.8484 0.0000 + 13.8758 0.0000 + 15.6076 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2913 1.0000 + -65.7392 1.0000 + -30.0424 1.0000 + -30.0364 1.0000 + -29.9731 1.0000 + 2.3889 1.0000 + 3.6451 1.0000 + 3.9430 1.0000 + 4.8684 1.0000 + 5.6997 1.0000 + 5.8611 1.0000 + 6.8688 1.0000 + 9.6086 0.0000 + 10.1393 0.0000 + 15.1730 0.0000 + 16.3079 0.0000 + + + -91.8813 1.0000 + -91.4263 1.0000 + -91.2913 1.0000 + -65.7391 1.0000 + -30.0467 1.0000 + -30.0360 1.0000 + -29.9728 1.0000 + 2.5397 1.0000 + 3.7856 1.0000 + 3.8326 1.0000 + 4.8610 1.0000 + 5.8430 1.0000 + 5.9453 1.0000 + 6.5965 1.0000 + 9.3465 0.0000 + 9.8978 0.0000 + 15.1892 0.0000 + 16.2199 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2900 1.0000 + -65.7403 1.0000 + -30.0144 1.0000 + -29.9990 1.0000 + -29.9656 1.0000 + 0.0785 1.0000 + 2.7125 1.0000 + 4.5094 1.0000 + 4.6940 1.0000 + 4.9214 1.0000 + 8.5745 0.0000 + 10.1269 0.0000 + 10.5365 0.0000 + 10.8704 0.0000 + 13.9768 0.0000 + 14.6979 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7402 1.0000 + -30.0143 1.0000 + -30.0012 1.0000 + -29.9654 1.0000 + 0.1273 1.0000 + 2.6983 1.0000 + 4.4779 1.0000 + 4.7369 1.0000 + 4.9443 1.0000 + 8.3529 0.0000 + 10.1419 0.0000 + 10.4344 0.0000 + 11.1645 0.0000 + 13.6110 0.0000 + 14.5556 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7401 1.0000 + -30.0140 1.0000 + -30.0074 1.0000 + -29.9649 1.0000 + 0.2683 1.0000 + 2.6518 1.0000 + 4.4352 1.0000 + 4.8169 1.0000 + 5.0107 1.0000 + 7.8922 0.4469 + 10.1231 0.0000 + 10.2307 0.0000 + 11.8214 0.0000 + 13.2548 0.0000 + 14.5906 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7399 1.0000 + -30.0165 1.0000 + -30.0135 1.0000 + -29.9640 1.0000 + 0.4880 1.0000 + 2.5740 1.0000 + 4.4223 1.0000 + 4.8957 1.0000 + 5.1141 1.0000 + 7.4082 1.0000 + 9.8145 0.0000 + 10.2589 0.0000 + 12.5295 0.0000 + 12.7207 0.0000 + 14.5641 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7397 1.0000 + -30.0269 1.0000 + -30.0129 1.0000 + -29.9631 1.0000 + 0.7614 1.0000 + 2.4691 1.0000 + 4.4450 1.0000 + 4.9606 1.0000 + 5.2429 1.0000 + 6.9802 1.0000 + 9.4992 0.0000 + 10.2989 0.0000 + 12.2571 0.0000 + 12.7704 0.0000 + 14.6183 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7395 1.0000 + -30.0369 1.0000 + -30.0123 1.0000 + -29.9621 1.0000 + 1.0553 1.0000 + 2.3467 1.0000 + 4.4910 1.0000 + 5.0061 1.0000 + 5.3805 1.0000 + 6.6366 1.0000 + 9.2609 0.0000 + 10.3038 0.0000 + 11.8735 0.0000 + 12.5601 0.0000 + 15.5151 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7394 1.0000 + -30.0447 1.0000 + -30.0119 1.0000 + -29.9614 1.0000 + 1.3266 1.0000 + 2.2198 1.0000 + 4.5371 1.0000 + 5.0314 1.0000 + 5.5048 1.0000 + 6.3900 1.0000 + 9.1261 0.0000 + 10.2612 0.0000 + 11.5989 0.0000 + 12.2895 0.0000 + 15.2894 0.0000 + + + -91.8792 1.0000 + -91.4242 1.0000 + -91.2892 1.0000 + -65.7392 1.0000 + -30.0489 1.0000 + -30.0116 1.0000 + -29.9610 1.0000 + 1.5141 1.0000 + 2.1185 1.0000 + 4.5650 1.0000 + 5.0425 1.0000 + 5.5850 1.0000 + 6.2547 1.0000 + 9.0783 0.0000 + 10.2059 0.0000 + 11.4660 0.0000 + 12.1310 0.0000 + 14.9984 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7402 1.0000 + -30.0143 1.0000 + -29.9987 1.0000 + -29.9687 1.0000 + 0.1308 1.0000 + 2.7052 1.0000 + 4.5062 1.0000 + 4.7211 1.0000 + 4.9341 1.0000 + 8.2944 0.0000 + 10.1322 0.0000 + 10.7510 0.0000 + 10.8939 0.0000 + 14.0685 0.0000 + 19.2975 0.0000 + + + -91.8799 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7402 1.0000 + -30.0141 1.0000 + -30.0009 1.0000 + -29.9685 1.0000 + 0.1799 1.0000 + 2.6961 1.0000 + 4.4700 1.0000 + 4.7546 1.0000 + 4.9662 1.0000 + 8.0964 0.0013 + 10.1465 0.0000 + 10.7223 0.0000 + 11.0608 0.0000 + 13.4843 0.0000 + 14.7098 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7400 1.0000 + -30.0138 1.0000 + -30.0071 1.0000 + -29.9680 1.0000 + 0.3214 1.0000 + 2.6647 1.0000 + 4.4164 1.0000 + 4.8132 1.0000 + 5.0527 1.0000 + 7.6707 0.9986 + 10.1672 0.0000 + 10.4384 0.0000 + 11.6127 0.0000 + 13.1255 0.0000 + 15.0675 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7399 1.0000 + -30.0163 1.0000 + -30.0133 1.0000 + -29.9671 1.0000 + 0.5403 1.0000 + 2.6055 1.0000 + 4.3962 1.0000 + 4.8703 1.0000 + 5.1699 1.0000 + 7.2169 1.0000 + 9.9996 0.0000 + 10.2485 0.0000 + 11.9915 0.0000 + 13.4963 0.0000 + 14.9307 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7397 1.0000 + -30.0266 1.0000 + -30.0127 1.0000 + -29.9662 1.0000 + 0.8138 1.0000 + 2.5179 1.0000 + 4.4217 1.0000 + 4.9184 1.0000 + 5.2999 1.0000 + 6.8210 1.0000 + 9.6472 0.0000 + 10.2064 0.0000 + 11.8412 0.0000 + 13.2636 0.0000 + 14.4602 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7395 1.0000 + -30.0366 1.0000 + -30.0121 1.0000 + -29.9653 1.0000 + 1.1061 1.0000 + 2.4089 1.0000 + 4.4770 1.0000 + 4.9499 1.0000 + 5.4309 1.0000 + 6.5164 1.0000 + 9.3564 0.0000 + 10.0920 0.0000 + 11.6293 0.0000 + 13.0657 0.0000 + 15.1621 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7393 1.0000 + -30.0444 1.0000 + -30.0117 1.0000 + -29.9646 1.0000 + 1.3737 1.0000 + 2.2928 1.0000 + 4.5311 1.0000 + 4.9651 1.0000 + 5.5497 1.0000 + 6.3103 1.0000 + 9.1728 0.0000 + 9.9154 0.0000 + 11.5234 0.0000 + 12.7770 0.0000 + 15.3120 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7392 1.0000 + -30.0487 1.0000 + -30.0114 1.0000 + -29.9642 1.0000 + 1.5535 1.0000 + 2.2004 1.0000 + 4.5595 1.0000 + 4.9718 1.0000 + 5.6296 1.0000 + 6.2011 1.0000 + 9.0958 0.0000 + 9.7761 0.0000 + 11.4975 0.0000 + 12.5932 0.0000 + 15.0907 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7400 1.0000 + -30.0138 1.0000 + -29.9979 1.0000 + -29.9775 1.0000 + 0.2825 1.0000 + 2.6761 1.0000 + 4.5064 1.0000 + 4.8000 1.0000 + 4.9688 1.0000 + 7.7564 0.9630 + 10.1137 0.0000 + 10.4867 0.0000 + 11.6479 0.0000 + 13.3919 0.0000 + 14.4508 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7400 1.0000 + -30.0137 1.0000 + -30.0001 1.0000 + -29.9773 1.0000 + 0.3313 1.0000 + 2.6826 1.0000 + 4.4604 1.0000 + 4.8061 1.0000 + 5.0256 1.0000 + 7.5867 1.0000 + 10.1283 0.0000 + 10.6729 0.0000 + 11.4680 0.0000 + 13.1394 0.0000 + 14.3328 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2897 1.0000 + -65.7398 1.0000 + -30.0133 1.0000 + -30.0063 1.0000 + -29.9768 1.0000 + 0.4736 1.0000 + 2.6942 1.0000 + 4.3753 1.0000 + 4.8323 1.0000 + 5.1415 1.0000 + 7.2084 1.0000 + 10.1072 0.0000 + 10.9314 0.0000 + 11.2329 0.0000 + 12.9608 0.0000 + 14.6853 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2900 1.0000 + -65.7397 1.0000 + -30.0155 1.0000 + -30.0128 1.0000 + -29.9760 1.0000 + 0.6917 1.0000 + 2.6939 1.0000 + 4.3211 1.0000 + 4.8693 1.0000 + 5.2665 1.0000 + 6.8005 1.0000 + 9.9630 0.0000 + 10.5675 0.0000 + 11.4806 0.0000 + 13.0652 0.0000 + 14.4338 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7395 1.0000 + -30.0259 1.0000 + -30.0122 1.0000 + -29.9751 1.0000 + 0.9628 1.0000 + 2.6633 1.0000 + 4.3343 1.0000 + 4.8939 1.0000 + 5.3859 1.0000 + 6.4620 1.0000 + 9.6578 0.0000 + 10.1908 0.0000 + 11.5257 0.0000 + 13.6164 0.0000 + 15.5505 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7393 1.0000 + -30.0359 1.0000 + -30.0116 1.0000 + -29.9742 1.0000 + 1.2487 1.0000 + 2.5974 1.0000 + 4.4087 1.0000 + 4.8823 1.0000 + 5.5018 1.0000 + 6.2380 1.0000 + 9.3183 0.0000 + 9.7979 0.0000 + 11.5299 0.0000 + 13.8800 0.0000 + 14.6587 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7391 1.0000 + -30.0437 1.0000 + -30.0112 1.0000 + -29.9735 1.0000 + 1.5051 1.0000 + 2.5119 1.0000 + 4.4950 1.0000 + 4.8424 1.0000 + 5.6205 1.0000 + 6.1187 1.0000 + 9.0647 0.0000 + 9.4200 0.0000 + 11.5701 0.0000 + 13.6103 0.0000 + 15.8073 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7390 1.0000 + -30.0480 1.0000 + -30.0110 1.0000 + -29.9731 1.0000 + 1.6705 1.0000 + 2.4419 1.0000 + 4.5400 1.0000 + 4.8182 1.0000 + 5.7164 1.0000 + 6.0601 1.0000 + 8.9498 0.0000 + 9.1654 0.0000 + 11.6090 0.0000 + 13.4604 0.0000 + 15.4612 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7397 1.0000 + -30.0130 1.0000 + -29.9967 1.0000 + -29.9905 1.0000 + 0.5171 1.0000 + 2.6203 1.0000 + 4.5293 1.0000 + 4.9234 1.0000 + 5.0169 1.0000 + 7.2171 1.0000 + 9.9208 0.0000 + 10.3388 0.0000 + 12.4204 0.0000 + 12.7407 0.0000 + 14.2892 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7397 1.0000 + -30.0129 1.0000 + -29.9989 1.0000 + -29.9903 1.0000 + 0.5656 1.0000 + 2.6459 1.0000 + 4.4784 1.0000 + 4.8801 1.0000 + 5.1125 1.0000 + 7.0689 1.0000 + 9.9752 0.0000 + 10.4280 0.0000 + 12.5187 0.0000 + 32.9739 0.0000 + 35.7387 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7396 1.0000 + -30.0125 1.0000 + -30.0051 1.0000 + -29.9898 1.0000 + 0.7061 1.0000 + 2.7176 1.0000 + 4.3568 1.0000 + 4.8822 1.0000 + 5.2415 1.0000 + 6.7298 1.0000 + 9.8871 0.0000 + 10.7646 0.0000 + 11.4466 0.0000 + 14.5915 0.0000 + 38.5493 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2900 1.0000 + -65.7394 1.0000 + -30.0143 1.0000 + -30.0120 1.0000 + -29.9890 1.0000 + 0.9230 1.0000 + 2.8144 1.0000 + 4.2395 1.0000 + 4.9255 1.0000 + 5.3419 1.0000 + 6.3667 1.0000 + 9.5538 0.0000 + 11.0084 0.0000 + 11.1693 0.0000 + 13.0107 0.0000 + 14.8133 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7392 1.0000 + -30.0248 1.0000 + -30.0115 1.0000 + -29.9881 1.0000 + 1.1884 1.0000 + 2.8932 1.0000 + 4.1953 1.0000 + 4.9555 1.0000 + 5.3985 1.0000 + 6.1037 1.0000 + 9.0980 0.0000 + 10.5664 0.0000 + 11.4010 0.0000 + 13.2814 0.0000 + 14.7039 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7390 1.0000 + -30.0349 1.0000 + -30.0110 1.0000 + -29.9873 1.0000 + 1.4648 1.0000 + 2.9108 1.0000 + 4.2604 1.0000 + 4.8930 1.0000 + 5.4670 1.0000 + 5.9927 1.0000 + 8.6547 0.0000 + 10.0335 0.0000 + 11.5522 0.0000 + 13.8640 0.0000 + 14.7888 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7389 1.0000 + -30.0427 1.0000 + -30.0105 1.0000 + -29.9866 1.0000 + 1.7087 1.0000 + 2.8704 1.0000 + 4.3914 1.0000 + 4.7599 1.0000 + 5.6061 1.0000 + 5.9584 1.0000 + 8.3087 0.0000 + 9.5375 0.0000 + 11.6648 0.0000 + 14.4457 0.0000 + 14.7936 0.0000 + + + -91.8810 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7388 1.0000 + -30.0470 1.0000 + -30.0104 1.0000 + -29.9863 1.0000 + 1.8594 1.0000 + 2.8218 1.0000 + 4.4916 1.0000 + 4.6640 1.0000 + 5.7708 1.0000 + 5.9044 1.0000 + 8.1176 0.0004 + 9.2281 0.0000 + 11.7299 0.0000 + 14.3458 0.0000 + 15.1540 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7395 1.0000 + -30.0121 1.0000 + -30.0053 1.0000 + -29.9953 1.0000 + 0.8079 1.0000 + 2.5334 1.0000 + 4.5838 1.0000 + 5.0666 1.0000 + 5.0783 1.0000 + 6.7500 1.0000 + 9.6333 0.0000 + 10.3108 0.0000 + 12.2505 0.0000 + 12.6826 0.0000 + 14.7554 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7394 1.0000 + -30.0120 1.0000 + -30.0051 1.0000 + -29.9975 1.0000 + 0.8563 1.0000 + 2.5778 1.0000 + 4.5415 1.0000 + 4.9542 1.0000 + 5.2219 1.0000 + 6.6261 1.0000 + 9.6800 0.0000 + 10.3030 0.0000 + 11.8282 0.0000 + 13.2292 0.0000 + 14.7293 0.0000 + + + -91.8806 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7393 1.0000 + -30.0117 1.0000 + -30.0046 1.0000 + -30.0037 1.0000 + 0.9944 1.0000 + 2.7079 1.0000 + 4.4058 1.0000 + 4.9318 1.0000 + 5.3400 1.0000 + 6.3377 1.0000 + 9.5130 0.0000 + 10.4672 0.0000 + 11.4998 0.0000 + 13.8778 0.0000 + 18.0925 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7391 1.0000 + -30.0130 1.0000 + -30.0112 1.0000 + -30.0039 1.0000 + 1.2055 1.0000 + 2.9156 1.0000 + 4.2276 1.0000 + 4.9929 1.0000 + 5.3616 1.0000 + 6.0549 1.0000 + 9.0232 0.0000 + 10.8076 0.0000 + 11.3166 0.0000 + 13.1705 0.0000 + 14.8540 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7389 1.0000 + -30.0235 1.0000 + -30.0107 1.0000 + -30.0030 1.0000 + 1.4620 1.0000 + 3.1623 1.0000 + 4.0828 1.0000 + 5.0864 1.0000 + 5.2214 1.0000 + 5.9363 1.0000 + 8.4563 0.0000 + 10.8355 0.0000 + 11.2520 0.0000 + 13.1419 0.0000 + 15.5800 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7387 1.0000 + -30.0336 1.0000 + -30.0102 1.0000 + -30.0022 1.0000 + 1.7297 1.0000 + 3.3337 1.0000 + 4.0790 1.0000 + 4.9123 1.0000 + 5.2921 1.0000 + 5.9385 1.0000 + 7.9391 0.2131 + 10.2850 0.0000 + 11.4643 0.0000 + 13.4225 0.0000 + 15.4710 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7386 1.0000 + -30.0415 1.0000 + -30.0098 1.0000 + -30.0016 1.0000 + 1.9664 1.0000 + 3.3331 1.0000 + 4.2564 1.0000 + 4.6894 1.0000 + 5.4784 1.0000 + 5.9482 1.0000 + 7.5447 1.0000 + 9.6945 0.0000 + 11.6252 0.0000 + 13.7684 0.0000 + 15.1176 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7385 1.0000 + -30.0458 1.0000 + -30.0096 1.0000 + -30.0012 1.0000 + 2.1159 1.0000 + 3.2777 1.0000 + 4.4136 1.0000 + 4.5730 1.0000 + 5.6529 1.0000 + 5.9143 1.0000 + 7.3340 1.0000 + 9.3087 0.0000 + 11.7152 0.0000 + 14.2992 0.0000 + 15.1018 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7391 1.0000 + -30.0194 1.0000 + -30.0113 1.0000 + -29.9940 1.0000 + 1.1188 1.0000 + 2.4225 1.0000 + 4.6599 1.0000 + 5.1059 1.0000 + 5.2458 1.0000 + 6.3781 1.0000 + 9.4462 0.0000 + 10.2515 0.0000 + 11.8462 0.0000 + 12.3849 0.0000 + 15.2872 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7391 1.0000 + -30.0192 1.0000 + -30.0112 1.0000 + -29.9962 1.0000 + 1.1663 1.0000 + 2.4798 1.0000 + 4.6338 1.0000 + 5.0065 1.0000 + 5.3465 1.0000 + 6.2884 1.0000 + 9.4413 0.0000 + 10.1362 0.0000 + 11.5983 0.0000 + 12.9221 0.0000 + 14.9830 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7390 1.0000 + -30.0187 1.0000 + -30.0108 1.0000 + -30.0025 1.0000 + 1.2998 1.0000 + 2.6535 1.0000 + 4.5224 1.0000 + 4.9355 1.0000 + 5.4403 1.0000 + 6.0847 1.0000 + 9.1320 0.0000 + 10.1355 0.0000 + 11.4935 0.0000 + 14.1593 0.0000 + 15.0031 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7388 1.0000 + -30.0181 1.0000 + -30.0118 1.0000 + -30.0103 1.0000 + 1.5018 1.0000 + 2.9434 1.0000 + 4.3332 1.0000 + 4.9416 1.0000 + 5.4009 1.0000 + 5.9358 1.0000 + 8.5164 0.0000 + 10.3690 0.0000 + 11.4796 0.0000 + 13.6233 0.0000 + 15.4168 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7386 1.0000 + -30.0224 1.0000 + -30.0173 1.0000 + -30.0098 1.0000 + 1.7486 1.0000 + 3.3382 1.0000 + 4.1257 1.0000 + 4.9091 1.0000 + 5.2805 1.0000 + 5.9294 1.0000 + 7.8705 0.5687 + 10.5822 0.0000 + 11.3190 0.0000 + 14.4746 0.0000 + 15.4084 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7384 1.0000 + -30.0325 1.0000 + -30.0165 1.0000 + -30.0094 1.0000 + 2.0137 1.0000 + 3.7924 1.0000 + 3.9366 1.0000 + 4.7182 1.0000 + 5.3253 1.0000 + 5.9653 1.0000 + 7.2969 1.0000 + 10.3874 0.0000 + 11.1648 0.0000 + 13.7918 0.0000 + 15.7649 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7383 1.0000 + -30.0404 1.0000 + -30.0159 1.0000 + -30.0090 1.0000 + 2.2614 1.0000 + 3.7478 1.0000 + 4.2324 1.0000 + 4.5462 1.0000 + 5.4530 1.0000 + 5.9817 1.0000 + 6.8661 1.0000 + 9.8164 0.0000 + 11.2354 0.0000 + 13.3824 0.0000 + 15.4946 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7382 1.0000 + -30.0447 1.0000 + -30.0156 1.0000 + -30.0087 1.0000 + 2.4276 1.0000 + 3.6308 1.0000 + 4.3095 1.0000 + 4.6704 1.0000 + 5.5414 1.0000 + 5.9604 1.0000 + 6.6554 1.0000 + 9.3847 0.0000 + 11.2998 0.0000 + 13.4998 0.0000 + 15.5406 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7389 1.0000 + -30.0304 1.0000 + -30.0107 1.0000 + -29.9930 1.0000 + 1.4059 1.0000 + 2.2991 1.0000 + 4.7303 1.0000 + 5.1280 1.0000 + 5.4014 1.0000 + 6.1085 1.0000 + 9.4200 0.0000 + 10.1068 0.0000 + 11.5735 0.0000 + 12.0510 0.0000 + 15.2640 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7389 1.0000 + -30.0302 1.0000 + -30.0105 1.0000 + -29.9952 1.0000 + 1.4496 1.0000 + 2.3666 1.0000 + 4.7143 1.0000 + 5.0343 1.0000 + 5.4738 1.0000 + 6.0596 1.0000 + 9.3470 0.0000 + 9.8894 0.0000 + 11.4911 0.0000 + 12.5501 0.0000 + 15.0042 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7387 1.0000 + -30.0298 1.0000 + -30.0102 1.0000 + -30.0014 1.0000 + 1.5741 1.0000 + 2.5692 1.0000 + 4.6449 1.0000 + 4.8922 1.0000 + 5.5587 1.0000 + 5.9560 1.0000 + 8.8420 0.0000 + 9.8198 0.0000 + 11.5326 0.0000 + 13.4548 0.0000 + 15.3070 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2903 1.0000 + -65.7385 1.0000 + -30.0291 1.0000 + -30.0108 1.0000 + -30.0097 1.0000 + 1.7645 1.0000 + 2.9023 1.0000 + 4.5006 1.0000 + 4.7818 1.0000 + 5.5503 1.0000 + 5.9099 1.0000 + 8.1185 0.0004 + 9.9431 0.0000 + 11.5982 0.0000 + 14.1559 0.0000 + 15.5155 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7383 1.0000 + -30.0283 1.0000 + -30.0214 1.0000 + -30.0092 1.0000 + 2.0055 1.0000 + 3.3368 1.0000 + 4.3451 1.0000 + 4.6481 1.0000 + 5.4981 1.0000 + 5.9423 1.0000 + 7.4143 1.0000 + 10.0772 0.0000 + 11.5013 0.0000 + 14.0698 0.0000 + 15.1813 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7382 1.0000 + -30.0316 1.0000 + -30.0276 1.0000 + -30.0088 1.0000 + 2.2811 1.0000 + 3.7459 1.0000 + 4.2885 1.0000 + 4.4782 1.0000 + 5.5123 1.0000 + 5.9815 1.0000 + 6.7976 1.0000 + 10.1223 0.0000 + 10.9975 0.0000 + 13.3162 0.0000 + 35.4508 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7380 1.0000 + -30.0395 1.0000 + -30.0270 1.0000 + -30.0084 1.0000 + 2.5605 1.0000 + 3.8201 1.0000 + 4.2232 1.0000 + 4.6720 1.0000 + 5.5887 1.0000 + 5.9853 1.0000 + 6.3304 1.0000 + 9.8542 0.0000 + 10.6312 0.0000 + 13.3008 0.0000 + 15.9780 0.0000 + + + -91.8815 1.0000 + -91.4265 1.0000 + -91.2915 1.0000 + -65.7380 1.0000 + -30.0439 1.0000 + -30.0268 1.0000 + -30.0082 1.0000 + 2.7690 1.0000 + 3.7318 1.0000 + 4.1082 1.0000 + 5.0768 1.0000 + 5.5474 1.0000 + 5.9652 1.0000 + 6.1318 1.0000 + 9.4421 0.0000 + 10.5773 0.0000 + 13.3598 0.0000 + 15.6239 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7388 1.0000 + -30.0364 1.0000 + -30.0103 1.0000 + -29.9924 1.0000 + 1.6041 1.0000 + 2.1949 1.0000 + 4.7707 1.0000 + 5.1368 1.0000 + 5.5104 1.0000 + 5.9515 1.0000 + 9.5274 0.0000 + 9.9063 0.0000 + 11.4475 0.0000 + 11.8572 0.0000 + 14.7311 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7387 1.0000 + -30.0362 1.0000 + -30.0101 1.0000 + -29.9946 1.0000 + 1.6419 1.0000 + 2.2709 1.0000 + 4.7507 1.0000 + 5.0499 1.0000 + 5.5743 1.0000 + 5.9294 1.0000 + 9.4032 0.0000 + 9.6388 0.0000 + 11.4753 0.0000 + 12.3145 0.0000 + 15.0586 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7386 1.0000 + -30.0358 1.0000 + -30.0099 1.0000 + -30.0009 1.0000 + 1.7525 1.0000 + 2.4947 1.0000 + 4.6872 1.0000 + 4.8807 1.0000 + 5.6780 1.0000 + 5.8786 1.0000 + 8.6877 0.0000 + 9.6263 0.0000 + 11.5761 0.0000 + 13.1883 0.0000 + 15.0368 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2909 1.0000 + -65.7384 1.0000 + -30.0351 1.0000 + -30.0103 1.0000 + -30.0094 1.0000 + 1.9301 1.0000 + 2.8492 1.0000 + 4.5787 1.0000 + 4.7121 1.0000 + 5.7281 1.0000 + 5.8578 1.0000 + 7.8952 0.4304 + 9.6755 0.0000 + 11.6667 0.0000 + 14.3103 0.0000 + 38.9176 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7382 1.0000 + -30.0344 1.0000 + -30.0209 1.0000 + -30.0089 1.0000 + 2.1704 1.0000 + 3.2839 1.0000 + 4.4368 1.0000 + 4.5966 1.0000 + 5.6971 1.0000 + 5.9055 1.0000 + 7.1618 1.0000 + 9.7305 0.0000 + 11.5519 0.0000 + 13.7092 0.0000 + 15.1518 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7380 1.0000 + -30.0336 1.0000 + -30.0310 1.0000 + -30.0084 1.0000 + 2.4625 1.0000 + 3.6552 1.0000 + 4.2572 1.0000 + 4.6667 1.0000 + 5.6659 1.0000 + 5.9462 1.0000 + 6.5416 1.0000 + 9.7701 0.0000 + 11.0159 0.0000 + 13.7528 0.0000 + 15.5596 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7379 1.0000 + -30.0390 1.0000 + -30.0331 1.0000 + -30.0080 1.0000 + 2.7831 1.0000 + 3.7889 1.0000 + 4.0361 1.0000 + 5.0350 1.0000 + 5.6638 1.0000 + 5.9246 1.0000 + 6.1048 1.0000 + 9.7327 0.0000 + 10.2984 0.0000 + 13.3147 0.0000 + 15.4211 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7378 1.0000 + -30.0434 1.0000 + -30.0328 1.0000 + -30.0078 1.0000 + 3.0626 1.0000 + 3.7463 1.0000 + 3.8683 1.0000 + 5.4341 1.0000 + 5.6823 1.0000 + 5.7756 1.0000 + 5.9556 1.0000 + 9.4675 0.0000 + 10.0217 0.0000 + 13.3491 0.0000 + 16.1206 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7397 1.0000 + -30.0332 1.0000 + -29.9970 1.0000 + -29.9635 1.0000 + 0.5736 1.0000 + 2.1119 1.0000 + 4.5165 1.0000 + 4.5676 1.0000 + 4.7863 1.0000 + 8.6168 0.0000 + 10.8092 0.0000 + 11.1222 0.0000 + 11.2007 0.0000 + 14.0197 0.0000 + 39.2698 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7395 1.0000 + -30.0330 1.0000 + -29.9991 1.0000 + -29.9633 1.0000 + 0.6291 1.0000 + 2.0977 1.0000 + 4.5093 1.0000 + 4.5944 1.0000 + 4.8096 1.0000 + 8.4094 0.0000 + 10.7035 0.0000 + 11.1656 0.0000 + 11.6529 0.0000 + 14.1405 0.0000 + 41.5789 0.0000 + + + -91.8796 1.0000 + -91.4247 1.0000 + -91.2896 1.0000 + -65.7394 1.0000 + -30.0326 1.0000 + -30.0053 1.0000 + -29.9627 1.0000 + 0.7865 1.0000 + 2.0532 1.0000 + 4.5078 1.0000 + 4.6507 1.0000 + 4.8773 1.0000 + 7.9670 0.1168 + 10.4342 0.0000 + 11.1229 0.0000 + 12.2041 0.0000 + 12.2648 0.0000 + 14.3078 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7392 1.0000 + -30.0322 1.0000 + -30.0144 1.0000 + -29.9619 1.0000 + 1.0275 1.0000 + 1.9962 1.0000 + 4.5159 1.0000 + 4.7211 1.0000 + 4.9818 1.0000 + 7.4959 1.0000 + 10.0943 0.0000 + 11.0206 0.0000 + 11.8767 0.0000 + 13.0219 0.0000 + 14.6524 0.0000 + + + -91.8795 1.0000 + -91.4245 1.0000 + -91.2895 1.0000 + -65.7390 1.0000 + -30.0316 1.0000 + -30.0249 1.0000 + -29.9609 1.0000 + 1.3090 1.0000 + 1.9542 1.0000 + 4.5205 1.0000 + 4.7985 1.0000 + 5.1102 1.0000 + 7.0804 1.0000 + 9.7491 0.0000 + 10.7814 0.0000 + 12.7825 0.0000 + 14.2666 0.0000 + 40.5060 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7388 1.0000 + -30.0349 1.0000 + -30.0311 1.0000 + -29.9600 1.0000 + 1.5312 1.0000 + 1.9991 1.0000 + 4.5052 1.0000 + 4.8754 1.0000 + 5.2431 1.0000 + 6.7527 1.0000 + 9.4493 0.0000 + 10.4582 0.0000 + 11.6293 0.0000 + 12.3813 0.0000 + 15.5445 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7387 1.0000 + -30.0428 1.0000 + -30.0307 1.0000 + -29.9593 1.0000 + 1.5968 1.0000 + 2.1802 1.0000 + 4.4669 1.0000 + 4.9394 1.0000 + 5.3556 1.0000 + 6.5274 1.0000 + 9.2375 0.0000 + 10.2067 0.0000 + 12.0084 0.0000 + 14.2385 0.0000 + 36.2448 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2901 1.0000 + -65.7386 1.0000 + -30.0470 1.0000 + -30.0305 1.0000 + -29.9589 1.0000 + 1.5982 1.0000 + 2.3352 1.0000 + 4.4290 1.0000 + 4.9767 1.0000 + 5.4211 1.0000 + 6.4124 1.0000 + 9.1302 0.0000 + 10.0506 0.0000 + 11.6269 0.0000 + 11.8418 0.0000 + 15.0676 0.0000 + + + -91.8800 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7395 1.0000 + -30.0330 1.0000 + -29.9966 1.0000 + -29.9665 1.0000 + 0.6330 1.0000 + 2.1018 1.0000 + 4.5271 1.0000 + 4.5956 1.0000 + 4.7951 1.0000 + 8.3518 0.0000 + 11.1089 0.0000 + 11.1684 0.0000 + 13.7806 0.0000 + 14.1363 0.0000 + 19.9386 0.0000 + + + -91.8801 1.0000 + -91.4251 1.0000 + -91.2900 1.0000 + -65.7395 1.0000 + -30.0328 1.0000 + -29.9988 1.0000 + -29.9664 1.0000 + 0.6878 1.0000 + 2.0898 1.0000 + 4.5140 1.0000 + 4.6007 1.0000 + 4.8434 1.0000 + 8.1649 0.0000 + 10.9818 0.0000 + 11.1274 0.0000 + 11.4259 0.0000 + 13.4427 0.0000 + 14.6883 0.0000 + + + -91.8794 1.0000 + -91.4244 1.0000 + -91.2894 1.0000 + -65.7393 1.0000 + -30.0325 1.0000 + -30.0049 1.0000 + -29.9658 1.0000 + 0.8465 1.0000 + 2.0591 1.0000 + 4.4969 1.0000 + 4.6223 1.0000 + 4.9548 1.0000 + 7.7541 0.9656 + 10.6858 0.0000 + 11.0717 0.0000 + 11.8125 0.0000 + 12.3245 0.0000 + 14.7406 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2898 1.0000 + -65.7392 1.0000 + -30.0320 1.0000 + -30.0142 1.0000 + -29.9650 1.0000 + 1.0875 1.0000 + 2.0159 1.0000 + 4.4997 1.0000 + 4.6561 1.0000 + 5.0929 1.0000 + 7.3100 1.0000 + 10.3059 0.0000 + 10.8388 0.0000 + 11.7195 0.0000 + 13.5031 0.0000 + 14.7149 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2896 1.0000 + -65.7389 1.0000 + -30.0315 1.0000 + -30.0246 1.0000 + -29.9641 1.0000 + 1.3668 1.0000 + 1.9926 1.0000 + 4.5154 1.0000 + 4.6963 1.0000 + 5.2390 1.0000 + 6.9228 1.0000 + 9.9077 0.0000 + 10.4464 0.0000 + 11.5965 0.0000 + 13.3203 0.0000 + 14.3775 0.0000 + + + -91.8799 1.0000 + -91.4249 1.0000 + -91.2899 1.0000 + -65.7388 1.0000 + -30.0347 1.0000 + -30.0310 1.0000 + -29.9632 1.0000 + 1.5777 1.0000 + 2.0640 1.0000 + 4.5124 1.0000 + 4.7455 1.0000 + 5.3763 1.0000 + 6.6315 1.0000 + 9.5524 0.0000 + 10.0473 0.0000 + 12.1279 0.0000 + 14.4175 0.0000 + 15.1742 0.0000 + + + -91.8801 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7386 1.0000 + -30.0425 1.0000 + -30.0306 1.0000 + -29.9625 1.0000 + 1.6379 1.0000 + 2.2630 1.0000 + 4.4722 1.0000 + 4.7995 1.0000 + 5.4863 1.0000 + 6.4480 1.0000 + 9.2884 0.0000 + 9.7273 0.0000 + 11.6147 0.0000 + 12.5272 0.0000 + 15.4126 0.0000 + + + -91.8798 1.0000 + -91.4248 1.0000 + -91.2898 1.0000 + -65.7385 1.0000 + -30.0468 1.0000 + -30.0303 1.0000 + -29.9621 1.0000 + 1.6405 1.0000 + 2.4253 1.0000 + 4.4262 1.0000 + 4.8365 1.0000 + 5.5489 1.0000 + 6.3631 1.0000 + 9.1487 0.0000 + 9.5497 0.0000 + 11.6341 0.0000 + 12.3538 0.0000 + 15.2479 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7394 1.0000 + -30.0325 1.0000 + -29.9959 1.0000 + -29.9755 1.0000 + 0.8009 1.0000 + 2.0701 1.0000 + 4.5572 1.0000 + 4.6768 1.0000 + 4.8227 1.0000 + 7.8284 0.7789 + 10.7722 0.0000 + 11.2548 0.0000 + 12.1273 0.0000 + 13.8872 0.0000 + 19.3208 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7393 1.0000 + -30.0324 1.0000 + -29.9980 1.0000 + -29.9752 1.0000 + 0.8570 1.0000 + 2.0712 1.0000 + 4.5273 1.0000 + 4.6328 1.0000 + 4.9304 1.0000 + 7.6670 0.9989 + 10.9814 0.0000 + 11.0519 0.0000 + 11.6948 0.0000 + 14.0784 0.0000 + 42.2456 0.0000 + + + -91.8797 1.0000 + -91.4247 1.0000 + -91.2896 1.0000 + -65.7391 1.0000 + -30.0320 1.0000 + -30.0042 1.0000 + -29.9747 1.0000 + 1.0176 1.0000 + 2.0713 1.0000 + 4.4474 1.0000 + 4.6405 1.0000 + 5.1016 1.0000 + 7.2990 1.0000 + 10.7764 0.0000 + 11.1820 0.0000 + 11.3580 0.0000 + 12.3963 0.0000 + 14.3579 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2899 1.0000 + -65.7390 1.0000 + -30.0316 1.0000 + -30.0134 1.0000 + -29.9739 1.0000 + 1.2586 1.0000 + 2.0756 1.0000 + 4.3961 1.0000 + 4.6691 1.0000 + 5.2775 1.0000 + 6.8932 1.0000 + 10.2551 0.0000 + 10.7808 0.0000 + 11.4976 0.0000 + 12.8877 0.0000 + 15.8667 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7388 1.0000 + -30.0310 1.0000 + -30.0239 1.0000 + -29.9730 1.0000 + 1.5255 1.0000 + 2.1140 1.0000 + 4.3949 1.0000 + 4.6822 1.0000 + 5.4431 1.0000 + 6.5515 1.0000 + 9.6939 0.0000 + 10.3186 0.0000 + 11.5514 0.0000 + 13.6887 0.0000 + 13.9888 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2903 1.0000 + -65.7386 1.0000 + -30.0340 1.0000 + -30.0305 1.0000 + -29.9721 1.0000 + 1.7053 1.0000 + 2.2618 1.0000 + 4.4314 1.0000 + 4.6508 1.0000 + 5.5873 1.0000 + 6.3317 1.0000 + 9.2060 0.0000 + 9.8463 0.0000 + 11.5922 0.0000 + 13.7036 0.0000 + 15.4834 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7384 1.0000 + -30.0418 1.0000 + -30.0301 1.0000 + -29.9715 1.0000 + 1.7590 1.0000 + 2.5073 1.0000 + 4.4571 1.0000 + 4.5923 1.0000 + 5.6986 1.0000 + 6.2426 1.0000 + 8.8451 0.0000 + 9.4436 0.0000 + 11.9279 0.0000 + 13.5539 0.0000 + 15.7128 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7384 1.0000 + -30.0461 1.0000 + -30.0299 1.0000 + -29.9711 1.0000 + 1.7660 1.0000 + 2.6912 1.0000 + 4.4142 1.0000 + 4.5895 1.0000 + 5.7615 1.0000 + 6.2306 1.0000 + 8.6509 0.0000 + 9.2035 0.0000 + 11.6476 0.0000 + 14.2805 0.0000 + 19.5232 0.0000 + + + -91.8815 1.0000 + -91.4265 1.0000 + -91.2914 1.0000 + -65.7392 1.0000 + -30.0318 1.0000 + -29.9947 1.0000 + -29.9885 1.0000 + 1.0577 1.0000 + 2.0304 1.0000 + 4.6009 1.0000 + 4.8033 1.0000 + 4.8693 1.0000 + 7.2978 1.0000 + 10.4120 0.0000 + 10.9345 0.0000 + 11.8493 0.0000 + 12.9361 0.0000 + 14.3082 0.0000 + + + -91.8811 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7391 1.0000 + -30.0317 1.0000 + -29.9968 1.0000 + -29.9883 1.0000 + 1.1137 1.0000 + 2.0461 1.0000 + 4.5591 1.0000 + 4.6899 1.0000 + 5.0505 1.0000 + 7.1547 1.0000 + 10.5597 0.0000 + 10.7725 0.0000 + 11.6641 0.0000 + 12.9304 0.0000 + 41.7172 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2904 1.0000 + -65.7389 1.0000 + -30.0313 1.0000 + -30.0030 1.0000 + -29.9878 1.0000 + 1.2740 1.0000 + 2.0929 1.0000 + 4.4116 1.0000 + 4.7042 1.0000 + 5.2624 1.0000 + 6.8170 1.0000 + 10.1893 0.0000 + 11.0104 0.0000 + 11.7700 0.0000 + 13.5929 0.0000 + 14.2934 0.0000 + + + -91.8800 1.0000 + -91.4250 1.0000 + -91.2900 1.0000 + -65.7387 1.0000 + -30.0309 1.0000 + -30.0122 1.0000 + -29.9870 1.0000 + 1.5073 1.0000 + 2.1781 1.0000 + 4.2861 1.0000 + 4.7582 1.0000 + 5.4598 1.0000 + 6.4336 1.0000 + 9.5343 0.0000 + 11.2013 0.0000 + 11.3387 0.0000 + 13.1060 0.0000 + 38.3097 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7385 1.0000 + -30.0304 1.0000 + -30.0228 1.0000 + -29.9861 1.0000 + 1.7426 1.0000 + 2.3312 1.0000 + 4.2213 1.0000 + 4.7949 1.0000 + 5.6281 1.0000 + 6.1217 1.0000 + 8.8998 0.0000 + 10.7235 0.0000 + 11.4983 0.0000 + 13.3139 0.0000 + 14.5418 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7383 1.0000 + -30.0329 1.0000 + -30.0299 1.0000 + -29.9853 1.0000 + 1.8915 1.0000 + 2.5903 1.0000 + 4.2222 1.0000 + 4.7435 1.0000 + 5.7550 1.0000 + 5.9846 1.0000 + 8.3534 0.0000 + 10.1446 0.0000 + 11.5765 0.0000 + 14.0941 0.0000 + 31.5297 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7382 1.0000 + -30.0408 1.0000 + -30.0295 1.0000 + -29.9846 1.0000 + 1.9545 1.0000 + 2.8962 1.0000 + 4.2674 1.0000 + 4.5842 1.0000 + 5.8671 1.0000 + 6.0058 1.0000 + 7.9444 0.1919 + 9.6138 0.0000 + 12.3662 0.0000 + 14.4968 0.0000 + 35.5494 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7381 1.0000 + -30.0451 1.0000 + -30.0292 1.0000 + -29.9843 1.0000 + 1.9749 1.0000 + 3.1170 1.0000 + 4.3238 1.0000 + 4.4181 1.0000 + 5.9578 1.0000 + 6.0552 1.0000 + 7.7216 0.9887 + 9.2780 0.0000 + 11.6484 0.0000 + 14.1912 0.0000 + 15.2729 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2906 1.0000 + -65.7387 1.0000 + -30.0309 1.0000 + -30.0033 1.0000 + -29.9932 1.0000 + 1.3568 1.0000 + 2.0050 1.0000 + 4.6470 1.0000 + 4.9310 1.0000 + 4.9604 1.0000 + 6.8399 1.0000 + 10.0603 0.0000 + 10.6095 0.0000 + 11.6789 0.0000 + 12.7079 0.0000 + 14.2313 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7387 1.0000 + -30.0309 1.0000 + -30.0032 1.0000 + -29.9955 1.0000 + 1.4097 1.0000 + 2.0396 1.0000 + 4.6145 1.0000 + 4.7530 1.0000 + 5.1891 1.0000 + 6.7162 1.0000 + 10.1096 0.0000 + 10.3876 0.0000 + 11.6000 0.0000 + 13.1316 0.0000 + 37.6273 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7386 1.0000 + -30.0305 1.0000 + -30.0027 1.0000 + -30.0017 1.0000 + 1.5583 1.0000 + 2.1490 1.0000 + 4.4268 1.0000 + 4.7673 1.0000 + 5.4207 1.0000 + 6.4119 1.0000 + 9.5620 0.0000 + 10.6052 0.0000 + 11.5431 0.0000 + 13.8192 0.0000 + 14.7273 0.0000 + + + -91.8807 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7384 1.0000 + -30.0301 1.0000 + -30.0110 1.0000 + -30.0020 1.0000 + 1.7596 1.0000 + 2.3479 1.0000 + 4.2353 1.0000 + 4.8561 1.0000 + 5.6156 1.0000 + 6.0522 1.0000 + 8.8319 0.0000 + 10.9690 0.0000 + 11.4301 0.0000 + 13.3676 0.0000 + 14.5676 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7382 1.0000 + -30.0296 1.0000 + -30.0216 1.0000 + -30.0011 1.0000 + 1.9573 1.0000 + 2.6478 1.0000 + 4.0985 1.0000 + 4.9571 1.0000 + 5.6139 1.0000 + 5.8909 1.0000 + 8.1389 0.0001 + 10.9883 0.0000 + 11.3423 0.0000 + 13.7094 0.0000 + 15.7553 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2906 1.0000 + -65.7380 1.0000 + -30.0317 1.0000 + -30.0291 1.0000 + -30.0003 1.0000 + 2.1129 1.0000 + 3.0175 1.0000 + 4.0379 1.0000 + 4.9190 1.0000 + 5.5211 1.0000 + 5.9990 1.0000 + 7.5405 1.0000 + 10.3988 0.0000 + 11.4577 0.0000 + 13.7122 0.0000 + 15.9308 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7379 1.0000 + -30.0397 1.0000 + -30.0287 1.0000 + -29.9997 1.0000 + 2.2149 1.0000 + 3.3832 1.0000 + 4.0564 1.0000 + 4.6690 1.0000 + 5.6796 1.0000 + 6.0916 1.0000 + 7.0870 1.0000 + 9.7752 0.0000 + 11.5424 0.0000 + 14.3066 0.0000 + 15.5761 0.0000 + + + -91.8814 1.0000 + -91.4264 1.0000 + -91.2914 1.0000 + -65.7378 1.0000 + -30.0440 1.0000 + -30.0285 1.0000 + -29.9994 1.0000 + 2.2640 1.0000 + 3.6435 1.0000 + 4.1382 1.0000 + 4.4048 1.0000 + 5.8558 1.0000 + 6.1352 1.0000 + 6.8387 1.0000 + 9.3618 0.0000 + 11.5772 0.0000 + 14.3099 0.0000 + 14.9653 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7384 1.0000 + -30.0302 1.0000 + -30.0174 1.0000 + -29.9919 1.0000 + 1.5922 1.0000 + 2.0622 1.0000 + 4.6783 1.0000 + 4.9977 1.0000 + 5.1255 1.0000 + 6.4823 1.0000 + 9.7866 0.0000 + 10.2382 0.0000 + 11.6423 0.0000 + 12.1724 0.0000 + 15.1696 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7384 1.0000 + -30.0300 1.0000 + -30.0172 1.0000 + -29.9941 1.0000 + 1.6356 1.0000 + 2.1225 1.0000 + 4.6697 1.0000 + 4.8109 1.0000 + 5.3294 1.0000 + 6.3879 1.0000 + 9.7035 0.0000 + 10.0257 0.0000 + 11.6040 0.0000 + 12.6587 0.0000 + 14.9940 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2901 1.0000 + -65.7382 1.0000 + -30.0297 1.0000 + -30.0168 1.0000 + -30.0004 1.0000 + 1.7553 1.0000 + 2.3064 1.0000 + 4.4915 1.0000 + 4.7800 1.0000 + 5.5639 1.0000 + 6.1473 1.0000 + 9.0130 0.0000 + 10.2004 0.0000 + 11.5878 0.0000 + 13.4966 0.0000 + 14.8358 0.0000 + + + -91.8807 1.0000 + -91.4258 1.0000 + -91.2907 1.0000 + -65.7381 1.0000 + -30.0293 1.0000 + -30.0162 1.0000 + -30.0097 1.0000 + 1.9268 1.0000 + 2.6143 1.0000 + 4.2587 1.0000 + 4.8639 1.0000 + 5.7056 1.0000 + 5.8972 1.0000 + 8.2193 0.0000 + 10.4809 0.0000 + 11.5381 0.0000 + 13.9612 0.0000 + 14.5546 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7379 1.0000 + -30.0288 1.0000 + -30.0204 1.0000 + -30.0154 1.0000 + 2.1305 1.0000 + 3.0221 1.0000 + 4.0628 1.0000 + 5.0039 1.0000 + 5.4474 1.0000 + 5.9945 1.0000 + 7.4712 1.0000 + 10.6874 0.0000 + 11.3421 0.0000 + 13.4783 0.0000 + 15.3783 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2909 1.0000 + -65.7377 1.0000 + -30.0306 1.0000 + -30.0283 1.0000 + -30.0147 1.0000 + 2.3416 1.0000 + 3.4734 1.0000 + 3.9279 1.0000 + 5.1088 1.0000 + 5.2297 1.0000 + 6.1260 1.0000 + 6.8189 1.0000 + 10.4946 0.0000 + 11.1842 0.0000 + 13.1952 0.0000 + 15.7397 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2912 1.0000 + -65.7376 1.0000 + -30.0385 1.0000 + -30.0280 1.0000 + -30.0141 1.0000 + 2.5238 1.0000 + 3.8199 1.0000 + 3.9375 1.0000 + 4.8268 1.0000 + 5.4778 1.0000 + 6.2123 1.0000 + 6.3224 1.0000 + 9.8991 0.0000 + 11.2407 0.0000 + 13.1926 0.0000 + 15.5369 0.0000 + + + -91.8814 1.0000 + -91.4264 1.0000 + -91.2914 1.0000 + -65.7375 1.0000 + -30.0429 1.0000 + -30.0278 1.0000 + -30.0137 1.0000 + 2.6290 1.0000 + 3.8380 1.0000 + 4.2279 1.0000 + 4.5865 1.0000 + 5.6574 1.0000 + 6.0663 1.0000 + 6.2635 1.0000 + 9.4409 0.0000 + 11.2887 0.0000 + 13.2397 0.0000 + 15.7505 0.0000 + + + -91.8809 1.0000 + -91.4259 1.0000 + -91.2908 1.0000 + -65.7382 1.0000 + -30.0295 1.0000 + -30.0285 1.0000 + -29.9909 1.0000 + 1.6678 1.0000 + 2.2476 1.0000 + 4.6819 1.0000 + 5.0573 1.0000 + 5.2677 1.0000 + 6.2372 1.0000 + 9.6320 0.0000 + 9.9258 0.0000 + 11.6498 0.0000 + 11.7641 0.0000 + 15.1177 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2910 1.0000 + -65.7382 1.0000 + -30.0294 1.0000 + -30.0284 1.0000 + -29.9931 1.0000 + 1.7064 1.0000 + 2.3241 1.0000 + 4.6780 1.0000 + 4.8714 1.0000 + 5.4482 1.0000 + 6.1821 1.0000 + 9.3944 0.0000 + 9.7662 0.0000 + 11.6283 0.0000 + 12.2592 0.0000 + 15.0447 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7380 1.0000 + -30.0291 1.0000 + -30.0279 1.0000 + -29.9994 1.0000 + 1.8197 1.0000 + 2.5512 1.0000 + 4.5747 1.0000 + 4.7174 1.0000 + 5.6795 1.0000 + 6.0408 1.0000 + 8.5996 0.0000 + 9.8664 0.0000 + 11.6305 0.0000 + 13.1616 0.0000 + 14.9422 0.0000 + + + -91.8802 1.0000 + -91.4252 1.0000 + -91.2902 1.0000 + -65.7378 1.0000 + -30.0287 1.0000 + -30.0272 1.0000 + -30.0087 1.0000 + 2.0020 1.0000 + 2.9149 1.0000 + 4.3358 1.0000 + 4.7172 1.0000 + 5.7999 1.0000 + 5.9420 1.0000 + 7.7512 0.9686 + 10.0198 0.0000 + 11.6232 0.0000 + 14.2345 0.0000 + 15.3681 0.0000 + + + -91.8805 1.0000 + -91.4255 1.0000 + -91.2905 1.0000 + -65.7376 1.0000 + -30.0283 1.0000 + -30.0265 1.0000 + -30.0194 1.0000 + 2.2449 1.0000 + 3.3771 1.0000 + 4.1205 1.0000 + 4.7396 1.0000 + 5.6457 1.0000 + 6.0882 1.0000 + 6.9514 1.0000 + 10.1586 0.0000 + 11.4369 0.0000 + 13.6407 0.0000 + 15.4695 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7374 1.0000 + -30.0297 1.0000 + -30.0278 1.0000 + -30.0258 1.0000 + 2.5344 1.0000 + 3.8121 1.0000 + 3.9855 1.0000 + 4.8087 1.0000 + 5.5213 1.0000 + 6.1981 1.0000 + 6.2633 1.0000 + 10.2073 0.0000 + 11.0454 0.0000 + 13.0519 0.0000 + 15.5984 0.0000 + + + -91.8811 1.0000 + -91.4261 1.0000 + -91.2911 1.0000 + -65.7373 1.0000 + -30.0377 1.0000 + -30.0274 1.0000 + -30.0252 1.0000 + 2.8336 1.0000 + 3.8000 1.0000 + 4.1712 1.0000 + 4.9751 1.0000 + 5.5168 1.0000 + 5.6776 1.0000 + 6.3079 1.0000 + 9.9354 0.0000 + 10.7127 0.0000 + 12.8003 0.0000 + 15.8356 0.0000 + + + -91.8814 1.0000 + -91.4264 1.0000 + -91.2914 1.0000 + -65.7372 1.0000 + -30.0421 1.0000 + -30.0272 1.0000 + -30.0249 1.0000 + 3.0541 1.0000 + 3.7465 1.0000 + 4.2239 1.0000 + 5.1222 1.0000 + 5.2997 1.0000 + 5.6922 1.0000 + 6.3453 1.0000 + 9.5016 0.0000 + 10.6605 0.0000 + 12.7227 0.0000 + 15.5675 0.0000 + + + -91.8803 1.0000 + -91.4253 1.0000 + -91.2903 1.0000 + -65.7380 1.0000 + -30.0345 1.0000 + -30.0292 1.0000 + -29.9902 1.0000 + 1.6740 1.0000 + 2.4018 1.0000 + 4.6707 1.0000 + 5.0946 1.0000 + 5.3522 1.0000 + 6.1117 1.0000 + 9.6010 0.0000 + 9.7207 0.0000 + 11.5419 0.0000 + 11.6546 0.0000 + 14.9372 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7380 1.0000 + -30.0344 1.0000 + -30.0291 1.0000 + -29.9926 1.0000 + 1.7129 1.0000 + 2.4847 1.0000 + 4.6554 1.0000 + 4.9171 1.0000 + 5.5191 1.0000 + 6.0879 1.0000 + 9.2253 0.0000 + 9.6369 0.0000 + 11.6608 0.0000 + 12.0478 0.0000 + 14.9557 0.0000 + + + -91.8807 1.0000 + -91.4257 1.0000 + -91.2907 1.0000 + -65.7379 1.0000 + -30.0339 1.0000 + -30.0288 1.0000 + -29.9989 1.0000 + 1.8315 1.0000 + 2.7302 1.0000 + 4.6082 1.0000 + 4.6655 1.0000 + 5.7492 1.0000 + 6.0255 1.0000 + 8.3737 0.0000 + 9.6738 0.0000 + 11.6583 0.0000 + 12.9796 0.0000 + 15.0184 0.0000 + + + -91.8808 1.0000 + -91.4258 1.0000 + -91.2908 1.0000 + -65.7377 1.0000 + -30.0333 1.0000 + -30.0284 1.0000 + -30.0082 1.0000 + 2.0272 1.0000 + 3.1247 1.0000 + 4.4101 1.0000 + 4.5557 1.0000 + 5.9249 1.0000 + 5.9750 1.0000 + 7.4900 1.0000 + 9.7287 0.0000 + 11.6418 0.0000 + 13.9974 0.0000 + 15.0437 0.0000 + + + -91.8804 1.0000 + -91.4254 1.0000 + -91.2904 1.0000 + -65.7375 1.0000 + -30.0326 1.0000 + -30.0279 1.0000 + -30.0189 1.0000 + 2.2989 1.0000 + 3.6250 1.0000 + 4.2181 1.0000 + 4.4835 1.0000 + 5.8518 1.0000 + 6.1331 1.0000 + 6.6571 1.0000 + 9.7868 0.0000 + 11.4865 0.0000 + 14.5147 0.0000 + 15.4164 0.0000 + + + -91.8806 1.0000 + -91.4256 1.0000 + -91.2905 1.0000 + -65.7373 1.0000 + -30.0318 1.0000 + -30.0291 1.0000 + -30.0275 1.0000 + 2.6408 1.0000 + 3.9091 1.0000 + 4.2522 1.0000 + 4.5325 1.0000 + 5.7034 1.0000 + 5.9787 1.0000 + 6.2621 1.0000 + 9.8299 0.0000 + 11.0556 0.0000 + 13.0395 0.0000 + 15.4657 0.0000 + + + -91.8810 1.0000 + -91.4260 1.0000 + -91.2910 1.0000 + -65.7372 1.0000 + -30.0372 1.0000 + -30.0313 1.0000 + -30.0271 1.0000 + 3.0409 1.0000 + 3.8298 1.0000 + 4.2195 1.0000 + 5.0235 1.0000 + 5.2301 1.0000 + 5.8071 1.0000 + 6.3436 1.0000 + 9.8006 0.0000 + 10.3862 0.0000 + 12.6747 0.0000 + 15.4656 0.0000 + + + -91.8812 1.0000 + -91.4262 1.0000 + -91.2911 1.0000 + -65.7371 1.0000 + -30.0416 1.0000 + -30.0310 1.0000 + -30.0269 1.0000 + 3.4531 1.0000 + 3.7372 1.0000 + 4.0740 1.0000 + 4.7709 1.0000 + 5.5707 1.0000 + 5.7646 1.0000 + 6.3738 1.0000 + 9.5306 0.0000 + 10.0845 0.0000 + 12.5702 0.0000 + 15.4251 0.0000 + + + + + + + 0.00000000 0.00000000 0.00000000 + + + 7.88278638 + + + gridpoints + spin + energy + total + integrated + + + -98.7492 0.0000 0.0000 + -98.2456 0.0000 0.0000 + -97.7420 0.0000 0.0000 + -97.2383 0.0000 0.0000 + -96.7347 0.0000 0.0000 + -96.2311 0.0000 0.0000 + -95.7275 0.0000 0.0000 + -95.2239 0.0000 0.0000 + -94.7203 0.0000 0.0000 + -94.2166 0.0000 0.0000 + -93.7130 0.0000 0.0000 + -93.2094 0.0000 0.0000 + -92.7058 0.0000 0.0000 + -92.2022 0.0000 0.0000 + -91.6986 3.9514 1.9900 + -91.1949 7.6087 5.8219 + -90.6913 0.3536 6.0000 + -90.1877 0.0000 6.0000 + -89.6841 0.0000 6.0000 + -89.1805 0.0000 6.0000 + -88.6769 0.0000 6.0000 + -88.1732 0.0000 6.0000 + -87.6696 0.0000 6.0000 + -87.1660 0.0000 6.0000 + -86.6624 0.0000 6.0000 + -86.1588 0.0000 6.0000 + -85.6552 0.0000 6.0000 + -85.1515 0.0000 6.0000 + -84.6479 0.0000 6.0000 + -84.1443 0.0000 6.0000 + -83.6407 0.0000 6.0000 + -83.1371 0.0000 6.0000 + -82.6335 0.0000 6.0000 + -82.1299 0.0000 6.0000 + -81.6262 0.0000 6.0000 + -81.1226 0.0000 6.0000 + -80.6190 0.0000 6.0000 + -80.1154 0.0000 6.0000 + -79.6118 0.0000 6.0000 + -79.1082 0.0000 6.0000 + -78.6045 0.0000 6.0000 + -78.1009 0.0000 6.0000 + -77.5973 0.0000 6.0000 + -77.0937 0.0000 6.0000 + -76.5901 0.0000 6.0000 + -76.0865 0.0000 6.0000 + -75.5828 0.0000 6.0000 + -75.0792 0.0000 6.0000 + -74.5756 0.0000 6.0000 + -74.0720 0.0000 6.0000 + -73.5684 0.0000 6.0000 + -73.0648 0.0000 6.0000 + -72.5611 0.0000 6.0000 + -72.0575 0.0000 6.0000 + -71.5539 0.0000 6.0000 + -71.0503 0.0000 6.0000 + -70.5467 0.0000 6.0000 + -70.0431 0.0000 6.0000 + -69.5394 0.0000 6.0000 + -69.0358 0.0000 6.0000 + -68.5322 0.0000 6.0000 + -68.0286 0.0000 6.0000 + -67.5250 0.0000 6.0000 + -67.0214 0.0000 6.0000 + -66.5178 0.0000 6.0000 + -66.0141 0.0002 6.0001 + -65.5105 3.9689 7.9989 + -65.0069 0.0021 8.0000 + -64.5033 0.0000 8.0000 + -63.9997 0.0000 8.0000 + -63.4961 0.0000 8.0000 + -62.9924 0.0000 8.0000 + -62.4888 0.0000 8.0000 + -61.9852 0.0000 8.0000 + -61.4816 0.0000 8.0000 + -60.9780 0.0000 8.0000 + -60.4744 0.0000 8.0000 + -59.9707 0.0000 8.0000 + -59.4671 0.0000 8.0000 + -58.9635 0.0000 8.0000 + -58.4599 0.0000 8.0000 + -57.9563 0.0000 8.0000 + -57.4527 0.0000 8.0000 + -56.9490 0.0000 8.0000 + -56.4454 0.0000 8.0000 + -55.9418 0.0000 8.0000 + -55.4382 0.0000 8.0000 + -54.9346 0.0000 8.0000 + -54.4310 0.0000 8.0000 + -53.9273 0.0000 8.0000 + -53.4237 0.0000 8.0000 + -52.9201 0.0000 8.0000 + -52.4165 0.0000 8.0000 + -51.9129 0.0000 8.0000 + -51.4093 0.0000 8.0000 + -50.9057 0.0000 8.0000 + -50.4020 0.0000 8.0000 + -49.8984 0.0000 8.0000 + -49.3948 0.0000 8.0000 + -48.8912 0.0000 8.0000 + -48.3876 0.0000 8.0000 + -47.8840 0.0000 8.0000 + -47.3803 0.0000 8.0000 + -46.8767 0.0000 8.0000 + -46.3731 0.0000 8.0000 + -45.8695 0.0000 8.0000 + -45.3659 0.0000 8.0000 + -44.8623 0.0000 8.0000 + -44.3586 0.0000 8.0000 + -43.8550 0.0000 8.0000 + -43.3514 0.0000 8.0000 + -42.8478 0.0000 8.0000 + -42.3442 0.0000 8.0000 + -41.8406 0.0000 8.0000 + -41.3369 0.0000 8.0000 + -40.8333 0.0000 8.0000 + -40.3297 0.0000 8.0000 + -39.8261 0.0000 8.0000 + -39.3225 0.0000 8.0000 + -38.8189 0.0000 8.0000 + -38.3152 0.0000 8.0000 + -37.8116 0.0000 8.0000 + -37.3080 0.0000 8.0000 + -36.8044 0.0000 8.0000 + -36.3008 0.0000 8.0000 + -35.7972 0.0000 8.0000 + -35.2936 0.0000 8.0000 + -34.7899 0.0000 8.0000 + -34.2863 0.0000 8.0000 + -33.7827 0.0000 8.0000 + -33.2791 0.0000 8.0000 + -32.7755 0.0000 8.0000 + -32.2719 0.0000 8.0000 + -31.7682 0.0000 8.0000 + -31.2646 0.0000 8.0000 + -30.7610 0.0000 8.0000 + -30.2574 0.0062 8.0031 + -29.7538 11.6675 13.8791 + -29.2502 0.2401 14.0000 + -28.7465 0.0000 14.0000 + -28.2429 0.0000 14.0000 + -27.7393 0.0000 14.0000 + -27.2357 0.0000 14.0000 + -26.7321 0.0000 14.0000 + -26.2285 0.0000 14.0000 + -25.7248 0.0000 14.0000 + -25.2212 0.0000 14.0000 + -24.7176 0.0000 14.0000 + -24.2140 0.0000 14.0000 + -23.7104 0.0000 14.0000 + -23.2068 0.0000 14.0000 + -22.7031 0.0000 14.0000 + -22.1995 0.0000 14.0000 + -21.6959 0.0000 14.0000 + -21.1923 0.0000 14.0000 + -20.6887 0.0000 14.0000 + -20.1851 0.0000 14.0000 + -19.6815 0.0000 14.0000 + -19.1778 0.0000 14.0000 + -18.6742 0.0000 14.0000 + -18.1706 0.0000 14.0000 + -17.6670 0.0000 14.0000 + -17.1634 0.0000 14.0000 + -16.6598 0.0000 14.0000 + -16.1561 0.0000 14.0000 + -15.6525 0.0000 14.0000 + -15.1489 0.0000 14.0000 + -14.6453 0.0000 14.0000 + -14.1417 0.0000 14.0000 + -13.6381 0.0000 14.0000 + -13.1344 0.0000 14.0000 + -12.6308 0.0000 14.0000 + -12.1272 0.0000 14.0000 + -11.6236 0.0000 14.0000 + -11.1200 0.0000 14.0000 + -10.6164 0.0000 14.0000 + -10.1127 0.0000 14.0000 + -9.6091 0.0000 14.0000 + -9.1055 0.0000 14.0000 + -8.6019 0.0000 14.0000 + -8.0983 0.0000 14.0000 + -7.5947 0.0000 14.0000 + -7.0910 0.0000 14.0000 + -6.5874 0.0000 14.0000 + -6.0838 0.0000 14.0000 + -5.5802 0.0000 14.0000 + -5.0766 0.0000 14.0000 + -4.5730 0.0000 14.0000 + -4.0694 0.0000 14.0000 + -3.5657 0.0000 14.0000 + -3.0621 0.0000 14.0000 + -2.5585 0.0000 14.0000 + -2.0549 0.0009 14.0005 + -1.5513 0.1132 14.0574 + -1.0477 0.2483 14.1825 + -0.5440 0.3448 14.3561 + -0.0404 0.4543 14.5849 + 0.4632 0.5588 14.8664 + 0.9668 0.6103 15.1737 + 1.4704 0.8493 15.6014 + 1.9740 1.0615 16.1360 + 2.4777 1.1259 16.7031 + 2.9813 0.9778 17.1955 + 3.4849 0.7572 17.5768 + 3.9885 0.9446 18.0526 + 4.4921 2.2831 19.2023 + 4.9957 3.6694 21.0503 + 5.4994 2.8044 22.4627 + 6.0030 2.3933 23.6680 + 6.5066 1.9045 24.6271 + 7.0102 1.3513 25.3077 + 7.5138 0.8062 25.7137 + 8.0174 0.7272 26.0799 + 8.5211 0.8382 26.5020 + 9.0247 1.4316 27.2230 + 9.5283 1.9155 28.1877 + 10.0319 1.7300 29.0590 + 10.5355 1.5459 29.8375 + 11.0391 1.1419 30.4126 + 11.5427 1.3555 31.0952 + 12.0464 1.2953 31.7476 + 12.5500 0.5429 32.0210 + 13.0536 0.4473 32.2462 + 13.5572 0.8282 32.6634 + 14.0608 1.1877 33.2615 + 14.5644 1.1003 33.8156 + 15.0681 1.3090 34.4749 + 15.5717 1.4011 35.1805 + 16.0753 0.7368 35.5516 + 16.5789 0.3354 35.7205 + 17.0825 0.2344 35.8385 + 17.5861 0.0350 35.8561 + 18.0898 0.0355 35.8740 + 18.5934 0.0265 35.8874 + 19.0970 0.0000 35.8874 + 19.6006 0.0175 35.8962 + 20.1042 0.0059 35.8992 + 20.6078 0.0000 35.8993 + 21.1115 0.0000 35.8993 + 21.6151 0.0004 35.8995 + 22.1187 0.0043 35.9016 + 22.6223 0.0000 35.9016 + 23.1259 0.0000 35.9016 + 23.6295 0.0000 35.9016 + 24.1332 0.0047 35.9040 + 24.6368 0.0000 35.9040 + 25.1404 0.0000 35.9040 + 25.6440 0.0000 35.9040 + 26.1476 0.0000 35.9040 + 26.6512 0.0000 35.9040 + 27.1548 0.0000 35.9040 + 27.6585 0.0000 35.9040 + 28.1621 0.0000 35.9040 + 28.6657 0.0000 35.9040 + 29.1693 0.0000 35.9040 + 29.6729 0.0000 35.9040 + 30.1765 0.0000 35.9040 + 30.6802 0.0000 35.9040 + 31.1838 0.0001 35.9040 + 31.6874 0.0186 35.9134 + 32.1910 0.0092 35.9180 + 32.6946 0.0003 35.9182 + 33.1982 0.0094 35.9230 + 33.7019 0.0000 35.9230 + 34.2055 0.0107 35.9284 + 34.7091 0.0081 35.9324 + 35.2127 0.0000 35.9324 + 35.7163 0.0223 35.9437 + 36.2199 0.0077 35.9475 + 36.7236 0.0030 35.9490 + 37.2272 0.0047 35.9514 + 37.7308 0.0088 35.9558 + 38.2344 0.0020 35.9568 + 38.7380 0.0269 35.9704 + 39.2416 0.0102 35.9755 + 39.7453 0.0015 35.9763 + 40.2489 0.0000 35.9763 + 40.7525 0.0047 35.9787 + 41.2561 0.0000 35.9787 + 41.7597 0.0178 35.9876 + 42.2633 0.0114 35.9934 + 42.7670 0.0038 35.9953 + 43.2706 0.0000 35.9953 + 43.7742 0.0000 35.9953 + 44.2778 0.0000 35.9953 + 44.7814 0.0000 35.9953 + 45.2850 0.0000 35.9953 + 45.7886 0.0094 36.0000 + 46.2923 0.0000 36.0000 + 46.7959 0.0000 36.0000 + 47.2995 0.0000 36.0000 + 47.8031 0.0000 36.0000 + 48.3067 0.0000 36.0000 + 48.8103 0.0000 36.0000 + 49.3140 0.0000 36.0000 + 49.8176 0.0000 36.0000 + 50.3212 0.0000 36.0000 + 50.8248 0.0000 36.0000 + 51.3284 0.0000 36.0000 + 51.8320 0.0000 36.0000 + 52.3357 0.0000 36.0000 + + + + + + + + + + 3.66961100 0.00000000 0.00000000 + 0.00000000 3.55744000 0.00000000 + 0.00000000 0.00000000 3.17678100 + + 41.47103646 + + 0.27250845 0.00000000 0.00000000 + 0.00000000 0.28110102 0.00000000 + 0.00000000 0.00000000 0.31478405 + + + + 0.00000000 0.00000000 0.00000000 + 0.00000000 0.50000000 0.50000000 + 0.50000000 0.00000000 0.50000000 + 0.50000000 0.50000000 0.00000000 + + + diff --git a/examples/README b/examples/README index d6c946725f..3c9c299819 100644 --- a/examples/README +++ b/examples/README @@ -83,6 +83,7 @@ kim: use of potentials in Knowledge Base for Interatomic Models (KIM) latte: use of LATTE density-functional tight-binding quantum code meam: MEAM test for SiC and shear (same as shear examples) melt: rapid melt of 3d LJ system +message: client/server coupling of 2 codes micelle: self-assembly of small lipid-like molecules into 2d bilayers min: energy minimization of 2d LJ melt mscg: parameterize a multi-scale coarse-graining (MSCG) model diff --git a/examples/USER/diffraction/BulkNi.in b/examples/USER/diffraction/BulkNi.in index 0fa9c1b74c..8315e57750 100644 --- a/examples/USER/diffraction/BulkNi.in +++ b/examples/USER/diffraction/BulkNi.in @@ -17,8 +17,9 @@ atom_modify sort 0 0 compute XRD all xrd 1.541838 Ni 2Theta 40 80 c 2 2 2 LP 1 echo -compute SAED all saed 0.0251 Ni Kmax 0.85 Zone 1 0 0 c 0.025 0.025 0.025 & - dR_Ewald 0.05 echo manual +compute SAED all saed 0.0251 Ni Kmax 0.85 & + Zone 0 0 0 c 0.025 0.025 0.025 & + dR_Ewald 0.01 echo manual fix 1 all ave/histo/weight 1 1 1 40 80 200 c_XRD[1] c_XRD[2] & mode vector file $A.hist.xrd diff --git a/examples/USER/diffraction/Output/BulkNi.in b/examples/USER/diffraction/Output/BulkNi.in deleted file mode 100644 index 8315e57750..0000000000 --- a/examples/USER/diffraction/Output/BulkNi.in +++ /dev/null @@ -1,35 +0,0 @@ -variable A string bulkNi -log $A.log - -boundary p p p - -units metal -timestep 0.001 - -lattice fcc 3.52 -region box block 0 20 0 20 0 20 -create_box 1 box -create_atoms 1 box - -pair_style none -mass * 58.71 -atom_modify sort 0 0 - -compute XRD all xrd 1.541838 Ni 2Theta 40 80 c 2 2 2 LP 1 echo - -compute SAED all saed 0.0251 Ni Kmax 0.85 & - Zone 0 0 0 c 0.025 0.025 0.025 & - dR_Ewald 0.01 echo manual - -fix 1 all ave/histo/weight 1 1 1 40 80 200 c_XRD[1] c_XRD[2] & - mode vector file $A.hist.xrd - -fix 2 all saed/vtk 1 1 1 c_SAED file $A_001.saed - -dump 1 all custom 1 $A.dump id x y z -run 0 - -unfix 1 -unfix 2 -uncompute XRD -uncompute SAED diff --git a/examples/message/README b/examples/message/README new file mode 100644 index 0000000000..6cd99d5c09 --- /dev/null +++ b/examples/message/README @@ -0,0 +1,117 @@ +This dir contains scripts that demonstrate how to use LAMMPS as both a +client and server code to run a simple MD simulation. LAMMPS as a +client performs the MD timestepping. LAMMPS as a server provides the +energy and forces between interacting particles. Every timestep the +LAMMPS client sends a message to the LAMMPS server and receives a +response message in return. + +Another code could replace LAMMPS as the client, e.g. another MD code +which wants to use a LAMMPS potential. Another code could replace +LAMMPS as the server, e.g. a quantum code computing quantum forces, so +that ab initio MD could be performed. See an example of the latter in +examples/COUPLE/lammps_vasp. + +See the doc pages for the "MESSAGE package" +(Package_details.html#PKG-MESSAGE) and "Howto client/server" +(Howto_client_server.html) for more details on how client/server +coupling works in LAMMPS. + +-------------- + +Note that you can adjust the problem size run by these scripts by +setting "x,y,z" variables when you run LAMMPS. The default problem size +is x = y = z = 5, which is 500 particles. + +lmp_mpi -v x 10 -v y 10 -v z 20 # 8000 particles + +This applies to either in.message or in.message.client + +You can also run the in.message scripts with an NPT integrator +instead of NVE, if you comment/uncomment the correct lines. + +The client and server script define a "mode" variable +which can be set to file, zmq, mpi/one, or mpi/two, +as illustrated below. + +-------------- + +To run this problem in the traditional way (no client/server coupling) +do one of these: + +% lmp_serial < in.message +% mpirun -np 4 lmp_mpi < in.message + +Or run with in.message.tilt. + +-------------- + +To run in client/server mode: + +Both the client and server script must use the same messaging mode. +This can be selected by setting the "mode" variable when you run +LAMMPS. The default mode = file. The other options for the mode +variable are zmq, mpione, mpitwo. + +Here we assume LAMMPS was built to run in parallel, and the MESSAGE +package was installed with socket (ZMQ) support. This means any of +the 4 messaging modes can be used. + +The next sections illustrate how to launch LAMMPS twice, once as a +client, once as a server, for each of the messaging modes. + +In all cases, the client should print out thermodynamic info for 50 +steps. The server should print out setup info, print nothing until +the client exits, at which point the server should also exit. + +The examples below show launching LAMMPS twice from the same window +(or batch script), using the "&" character to launch the first time in +the background. For all modes except {mpi/one}, you could also launch +twice in separate windows on your desktop machine. It does not matter +whether you launch the client or server first. + +In these examples either the client or server can be run on one or +more processors. If running in a non-MPI mode (file or zmq) you can +launch LAMMPS on a single processor without using mpirun. + +IMPORTANT: If you run in mpi/two mode, you must launch LAMMPS both +times via mpirun, even if one or both of them runs on a single +processor. This is so that MPI can figure out how to connect both MPI +processes together to exchange MPI messages between them. + +-------------- + +NOTE: the Script.sh file has comands to perform all the +runs listed below. + +-------------- + +File or ZMQ or mpi/two modes of messaging: + +% mpirun -np 1 lmp_mpi -v mode file -log log.client < in.message.client & +% mpirun -np 2 lmp_mpi -v mode file -log log.server < in.message.server + +% mpirun -np 4 lmp_mpi -v mode zmq -log log.client < in.message.client & +% mpirun -np 1 lmp_mpi -v mode zmq -log log.server < in.message.server + +% mpirun -np 2 lmp_mpi -v mode mpitwo -log log.client < in.message.client & +% mpirun -np 4 lmp_mpi -v mode mpitwo -log log.server < in.message.server + +Or run with in.message.tilt.client/server. +Don't run the tilt files with the "file" mode; they run too slow. + +-------------- + +Mpi/one mode of messaging: + +Launch LAMMPS twice in a single mpirun command: + +% mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -v mode mpione -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -v mode mpione -log log.server + +Or run with in.message.tilt.client/server. + +The two -np values determine how many procs the client and the server +run on. + +A LAMMPS executable run in this manner must use the -mpicolor color +command-line option as its first option, where color is set to one +integer value for the 1st app, and another value for the 2nd app. diff --git a/examples/message/Script.sh b/examples/message/Script.sh new file mode 100644 index 0000000000..fdcd6f1188 --- /dev/null +++ b/examples/message/Script.sh @@ -0,0 +1,55 @@ +# sample launch script + +# message on 1 proc each + +mpirun -np 1 lmp_mpi -log log.message.g++.1 < in.message + +mpirun -np 1 lmp_mpi -v mode file -log log.message.client.file.g++.1 < in.message.client & +mpirun -np 1 lmp_mpi -v mode file -log log.message.server.file.g++.1 < in.message.server + +mpirun -np 1 lmp_mpi -v mode zmq -log log.message.client.zmq.g++.1 < in.message.client & +mpirun -np 1 lmp_mpi -v mode zmq -log log.message.server.zmq.g++.1 < in.message.server + +mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.client.mpitwo.g++.1 < in.message.client & +mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.server.mpitwo.g++.1 < in.message.server + +mpirun -np 1 lmp_mpi -m 0 -in in.message.client -v mode mpione -log log.message.client.mpione.g++.1 : -np 1 lmp_mpi -m 1 -in in.message.server -v mode mpione -log log.message.server.mpione.g++.1 + +# message on 2/4 procs each + +mpirun -np 4 lmp_mpi -log log.message.g++.4 < in.message + +mpirun -np 2 lmp_mpi -v mode file -log log.message.client.file.g++.2 < in.message.client & +mpirun -np 4 lmp_mpi -v mode file -log log.message.server.file.g++.4 < in.message.server + +mpirun -np 2 lmp_mpi -v mode zmq -log log.message.client.zmq.g++.2 < in.message.client & +mpirun -np 4 lmp_mpi -v mode zmq -log log.message.server.zmq.g++.4 < in.message.server + +mpirun -np 2 lmp_mpi -v mode mpitwo -log log.message.client.mpitwo.g++.2 < in.message.client & +mpirun -np 4 lmp_mpi -v mode mpitwo -log log.message.server.mpitwo.g++.4 < in.message.server + +mpirun -np 2 lmp_mpi -m 0 -in in.message.client -v mode mpione -log log.message.client.mpione.g++.2 : -np 4 lmp_mpi -m 1 -in in.message.server -v mode mpione -log log.message.server.mpione.g++.4 + +# message.tilt on 1 proc each + +mpirun -np 1 lmp_mpi -log log.message.tilt.g++.1 < in.message.tilt + +mpirun -np 1 lmp_mpi -v mode zmq -log log.message.tilt.client.zmq.g++.1 < in.message.tilt.client & +mpirun -np 1 lmp_mpi -v mode zmq -log log.message.tilt.server.zmq.g++.1 < in.message.tilt.server + +mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.tilt.client.mpitwo.g++.1 < in.message.tilt.client & +mpirun -np 1 lmp_mpi -v mode mpitwo -log log.message.tilt.server.mpitwo.g++.1 < in.message.tilt.server + +mpirun -np 1 lmp_mpi -m 0 -in in.message.tilt.client -v mode mpione -log log.message.tilt.client.mpione.g++.1 : -np 1 lmp_mpi -m 1 -in in.message.tilt.server -v mode mpione -log log.message.tilt.server.mpione.g++.1 + +# message.tilt on 2/4 procs each + +mpirun -np 1 lmp_mpi -log log.message.tilt.g++.4 < in.message.tilt + +mpirun -np 2 lmp_mpi -v mode zmq -log log.message.tilt.client.zmq.g++.2 < in.message.tilt.client & +mpirun -np 4 lmp_mpi -v mode zmq -log log.message.tilt.server.zmq.g++.4 < in.message.tilt.server + +mpirun -np 2 lmp_mpi -v mode mpitwo -log log.message.tilt.client.mpitwo.g++.2 < in.message.tilt.client & +mpirun -np 4 lmp_mpi -v mode mpitwo -log log.message.tilt.server.mpitwo.g++.4 < in.message.tilt.server + +mpirun -np 2 lmp_mpi -m 0 -in in.message.tilt.client -v mode mpione -log log.message.tilt.client.mpione.g++.2 : -np 4 lmp_mpi -m 1 -in in.message.tilt.server -v mode mpione -log log.message.tilt.server.mpione.g++.4 diff --git a/examples/message/in.message b/examples/message/in.message new file mode 100644 index 0000000000..7fbbffc355 --- /dev/null +++ b/examples/message/in.message @@ -0,0 +1,29 @@ +# 3d Lennard-Jones melt - no client/server mode + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic + +lattice fcc 0.8442 +region box block 0 $x 0 $y 0 $z +create_box 1 box +create_atoms 1 box +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +thermo 10 +run 50 diff --git a/examples/message/in.message.client b/examples/message/in.message.client new file mode 100644 index 0000000000..f1ec644a80 --- /dev/null +++ b/examples/message/in.message.client @@ -0,0 +1,41 @@ +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then & + "message client md file tmp.couple" & +elif "${mode} == zmq" & + "message client md zmq localhost:5555" & +elif "${mode} == mpione" & + "message client md mpi/one" & +elif "${mode} == mpitwo" & + "message client md mpi/two tmp.couple" + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +region box block 0 $x 0 $y 0 $z +create_box 1 box +create_atoms 1 box +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 diff --git a/examples/message/in.message.server b/examples/message/in.message.server new file mode 100644 index 0000000000..2fedd2ae00 --- /dev/null +++ b/examples/message/in.message.server @@ -0,0 +1,29 @@ +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then & + "message server md file tmp.couple" & +elif "${mode} == zmq" & + "message server md zmq *:5555" & +elif "${mode} == mpione" & + "message server md mpi/one" & +elif "${mode} == mpitwo" & + "message server md mpi/two tmp.couple" + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +region box block 0 1 0 1 0 1 +create_box 1 box +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md diff --git a/examples/message/in.message.tilt b/examples/message/in.message.tilt new file mode 100644 index 0000000000..51126eae1e --- /dev/null +++ b/examples/message/in.message.tilt @@ -0,0 +1,30 @@ +# 2d NEMD simulation - no client/server mode + +units lj +atom_style atomic +dimension 2 + +lattice sq2 0.8442 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +create_atoms 1 box +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 diff --git a/examples/message/in.message.tilt.client b/examples/message/in.message.tilt.client new file mode 100644 index 0000000000..b55bc6585b --- /dev/null +++ b/examples/message/in.message.tilt.client @@ -0,0 +1,42 @@ +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then & + "message client md file tmp.couple" & +elif "${mode} == zmq" & + "message client md zmq localhost:5555" & +elif "${mode} == mpione" & + "message client md mpi/one" & +elif "${mode} == mpitwo" & + "message client md mpi/two tmp.couple" + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +create_atoms 1 box +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 diff --git a/examples/message/in.message.tilt.server b/examples/message/in.message.tilt.server new file mode 100644 index 0000000000..ba211ed15f --- /dev/null +++ b/examples/message/in.message.tilt.server @@ -0,0 +1,31 @@ +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then & + "message server md file tmp.couple" & +elif "${mode} == zmq" & + "message server md zmq *:5555" & +elif "${mode} == mpione" & + "message server md mpi/one" & +elif "${mode} == mpitwo" & + "message server md mpi/two tmp.couple" + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +create_atoms 1 box +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md diff --git a/examples/message/log.28Aug18.message.client.file.g++.1 b/examples/message/log.28Aug18.message.client.file.g++.1 new file mode 100644 index 0000000000..bca1d37dd5 --- /dev/null +++ b/examples/message/log.28Aug18.message.client.file.g++.1 @@ -0,0 +1,79 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md file tmp.couple + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000752926 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.303 | 2.303 | 2.303 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 5.0251 on 1 procs for 50 steps with 500 atoms + +Performance: 4298.421 tau/day, 9.950 timesteps/s +0.1% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 9.7752e-06 | 9.7752e-06 | 9.7752e-06 | 0.0 | 0.00 +Comm | 0.00014925 | 0.00014925 | 0.00014925 | 0.0 | 0.00 +Output | 0.00023127 | 0.00023127 | 0.00023127 | 0.0 | 0.00 +Modify | 5.0242 | 5.0242 | 5.0242 | 0.0 | 99.98 +Other | | 0.0004668 | | | 0.01 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:05 diff --git a/examples/message/log.28Aug18.message.client.file.g++.2 b/examples/message/log.28Aug18.message.client.file.g++.2 new file mode 100644 index 0000000000..1c868dde37 --- /dev/null +++ b/examples/message/log.28Aug18.message.client.file.g++.2 @@ -0,0 +1,79 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md file tmp.couple + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000613928 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.302 | 2.302 | 2.302 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 5.02384 on 2 procs for 50 steps with 500 atoms + +Performance: 4299.499 tau/day, 9.953 timesteps/s +50.1% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 1.9073e-06 | 3.3379e-06 | 4.7684e-06 | 0.0 | 0.00 +Comm | 0.00020742 | 0.00021136 | 0.00021529 | 0.0 | 0.00 +Output | 0.00026989 | 0.00048053 | 0.00069118 | 0.0 | 0.01 +Modify | 5.0171 | 5.0199 | 5.0228 | 0.1 | 99.92 +Other | | 0.003203 | | | 0.06 + +Nlocal: 250 ave 255 max 245 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:05 diff --git a/examples/message/log.28Aug18.message.client.mpione.g++.1 b/examples/message/log.28Aug18.message.client.mpione.g++.1 new file mode 100644 index 0000000000..78bee72fdf --- /dev/null +++ b/examples/message/log.28Aug18.message.client.mpione.g++.1 @@ -0,0 +1,79 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/one + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000540018 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.303 | 2.303 | 2.303 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.0403891 on 1 procs for 50 steps with 500 atoms + +Performance: 534798.272 tau/day, 1237.959 timesteps/s +99.9% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 4.7684e-06 | 4.7684e-06 | 4.7684e-06 | 0.0 | 0.01 +Comm | 6.3181e-05 | 6.3181e-05 | 6.3181e-05 | 0.0 | 0.16 +Output | 9.5367e-05 | 9.5367e-05 | 9.5367e-05 | 0.0 | 0.24 +Modify | 0.040053 | 0.040053 | 0.040053 | 0.0 | 99.17 +Other | | 0.0001726 | | | 0.43 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.client.mpione.g++.2 b/examples/message/log.28Aug18.message.client.mpione.g++.2 new file mode 100644 index 0000000000..7d7af866e3 --- /dev/null +++ b/examples/message/log.28Aug18.message.client.mpione.g++.2 @@ -0,0 +1,79 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/one + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000475883 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.302 | 2.302 | 2.302 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.0208495 on 2 procs for 50 steps with 500 atoms + +Performance: 1035997.740 tau/day, 2398.143 timesteps/s +99.1% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 3.0994e-06 | 4.53e-06 | 5.9605e-06 | 0.0 | 0.02 +Comm | 0.00012422 | 0.00012457 | 0.00012493 | 0.0 | 0.60 +Output | 5.7697e-05 | 7.987e-05 | 0.00010204 | 0.0 | 0.38 +Modify | 0.020463 | 0.020464 | 0.020466 | 0.0 | 98.15 +Other | | 0.0001761 | | | 0.84 + +Nlocal: 250 ave 255 max 245 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.client.mpitwo.g++.1 b/examples/message/log.28Aug18.message.client.mpitwo.g++.1 new file mode 100644 index 0000000000..ee97e7bd1a --- /dev/null +++ b/examples/message/log.28Aug18.message.client.mpitwo.g++.1 @@ -0,0 +1,79 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/two tmp.couple + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000603914 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.303 | 2.303 | 2.303 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.069119 on 1 procs for 50 steps with 500 atoms + +Performance: 312504.627 tau/day, 723.390 timesteps/s +42.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 7.1526e-06 | 7.1526e-06 | 7.1526e-06 | 0.0 | 0.01 +Comm | 0.0001049 | 0.0001049 | 0.0001049 | 0.0 | 0.15 +Output | 0.00014019 | 0.00014019 | 0.00014019 | 0.0 | 0.20 +Modify | 0.068602 | 0.068602 | 0.068602 | 0.0 | 99.25 +Other | | 0.0002651 | | | 0.38 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.client.mpitwo.g++.2 b/examples/message/log.28Aug18.message.client.mpitwo.g++.2 new file mode 100644 index 0000000000..72db0198d5 --- /dev/null +++ b/examples/message/log.28Aug18.message.client.mpitwo.g++.2 @@ -0,0 +1,79 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/two tmp.couple + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000667095 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.302 | 2.302 | 2.302 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.0190214 on 2 procs for 50 steps with 500 atoms + +Performance: 1135563.588 tau/day, 2628.619 timesteps/s +58.5% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 1.9073e-06 | 2.861e-06 | 3.8147e-06 | 0.0 | 0.02 +Comm | 0.00017238 | 0.00017989 | 0.0001874 | 0.0 | 0.95 +Output | 0.00012803 | 0.00015497 | 0.00018191 | 0.0 | 0.81 +Modify | 0.018065 | 0.018181 | 0.018297 | 0.1 | 95.58 +Other | | 0.0005029 | | | 2.64 + +Nlocal: 250 ave 255 max 245 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/message/log.28Aug18.message.client.zmq.g++.1 b/examples/message/log.28Aug18.message.client.zmq.g++.1 new file mode 100644 index 0000000000..23fa70c1be --- /dev/null +++ b/examples/message/log.28Aug18.message.client.zmq.g++.1 @@ -0,0 +1,79 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md zmq localhost:5555 + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000734091 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.303 | 2.303 | 2.303 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.0778341 on 1 procs for 50 steps with 500 atoms + +Performance: 277513.222 tau/day, 642.392 timesteps/s +11.4% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 7.8678e-06 | 7.8678e-06 | 7.8678e-06 | 0.0 | 0.01 +Comm | 8.3685e-05 | 8.3685e-05 | 8.3685e-05 | 0.0 | 0.11 +Output | 0.00011373 | 0.00011373 | 0.00011373 | 0.0 | 0.15 +Modify | 0.07734 | 0.07734 | 0.07734 | 0.0 | 99.37 +Other | | 0.0002885 | | | 0.37 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.client.zmq.g++.2 b/examples/message/log.28Aug18.message.client.zmq.g++.2 new file mode 100644 index 0000000000..7833befd21 --- /dev/null +++ b/examples/message/log.28Aug18.message.client.zmq.g++.2 @@ -0,0 +1,79 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md zmq localhost:5555 + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic +atom_modify sort 0 0.0 map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000570059 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +fix 2 all client/md +fix_modify 2 energy yes + +thermo 10 +run 50 +Per MPI rank memory allocation (min/avg/max) = 2.302 | 2.302 | 2.302 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 0 0 -4.6176881 -5.0221006 + 10 1.1347688 0 0 -4.6166043 -2.6072847 + 20 0.628166 0 0 -4.62213 1.0186262 + 30 0.73767593 0 0 -4.6254647 0.49629637 + 40 0.69517962 0 0 -4.6253506 0.69303877 + 50 0.70150496 0 0 -4.6259832 0.59551518 +Loop time of 0.0416595 on 2 procs for 50 steps with 500 atoms + +Performance: 518489.499 tau/day, 1200.207 timesteps/s +56.5% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 2.861e-06 | 3.3379e-06 | 3.8147e-06 | 0.0 | 0.01 +Comm | 0.00013399 | 0.00013685 | 0.00013971 | 0.0 | 0.33 +Output | 8.6784e-05 | 0.00011206 | 0.00013733 | 0.0 | 0.27 +Modify | 0.040948 | 0.04103 | 0.041112 | 0.0 | 98.49 +Other | | 0.0003769 | | | 0.90 + +Nlocal: 250 ave 255 max 245 min +Histogram: 1 0 0 0 0 0 0 0 0 1 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.g++.1 b/examples/message/log.28Aug18.message.g++.1 new file mode 100644 index 0000000000..c06af4e0d1 --- /dev/null +++ b/examples/message/log.28Aug18.message.g++.1 @@ -0,0 +1,85 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - no client/server mode + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000682831 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +thermo 10 +run 50 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.143 | 3.143 | 3.143 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 + 10 1.1347688 -6.3153532 0 -4.6166043 -2.6072847 + 20 0.628166 -5.5624945 0 -4.62213 1.0186262 + 30 0.73767593 -5.7297655 0 -4.6254647 0.49629637 + 40 0.69517962 -5.6660345 0 -4.6253506 0.69303877 + 50 0.70150496 -5.6761362 0 -4.6259832 0.59551518 +Loop time of 0.039681 on 1 procs for 50 steps with 500 atoms + +Performance: 544341.699 tau/day, 1260.050 timesteps/s +99.2% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.029993 | 0.029993 | 0.029993 | 0.0 | 75.59 +Neigh | 0.0073051 | 0.0073051 | 0.0073051 | 0.0 | 18.41 +Comm | 0.0012736 | 0.0012736 | 0.0012736 | 0.0 | 3.21 +Output | 0.00012803 | 0.00012803 | 0.00012803 | 0.0 | 0.32 +Modify | 0.00053287 | 0.00053287 | 0.00053287 | 0.0 | 1.34 +Other | | 0.000448 | | | 1.13 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1946 ave 1946 max 1946 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 18820 ave 18820 max 18820 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 18820 +Ave neighs/atom = 37.64 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.g++.4 b/examples/message/log.28Aug18.message.g++.4 new file mode 100644 index 0000000000..695b51f166 --- /dev/null +++ b/examples/message/log.28Aug18.message.g++.4 @@ -0,0 +1,85 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - no client/server mode + +variable x index 5 +variable y index 5 +variable z index 5 + +units lj +atom_style atomic + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 $x 0 $y 0 $z +region box block 0 5 0 $y 0 $z +region box block 0 5 0 5 0 $z +region box block 0 5 0 5 0 5 +create_box 1 box +Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + Time spent = 0.000656843 secs +mass 1 1.0 + +velocity all create 1.44 87287 loop geom + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve +# same with NPT +#fix 1 all npt temp 1.0 1.0 0.1 iso 1 1 1.0 + +thermo 10 +run 50 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.109 | 3.109 | 3.109 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 1.44 -6.7733681 0 -4.6176881 -5.0221006 + 10 1.1347688 -6.3153532 0 -4.6166043 -2.6072847 + 20 0.628166 -5.5624945 0 -4.62213 1.0186262 + 30 0.73767593 -5.7297655 0 -4.6254647 0.49629637 + 40 0.69517962 -5.6660345 0 -4.6253506 0.69303877 + 50 0.70150496 -5.6761362 0 -4.6259832 0.59551518 +Loop time of 0.0131519 on 4 procs for 50 steps with 500 atoms + +Performance: 1642350.242 tau/day, 3801.737 timesteps/s +97.9% CPU use with 4 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.006074 | 0.0065379 | 0.0072589 | 0.6 | 49.71 +Neigh | 0.0014219 | 0.0015552 | 0.0017018 | 0.3 | 11.82 +Comm | 0.003546 | 0.0043943 | 0.0049584 | 0.8 | 33.41 +Output | 0.000108 | 0.00012845 | 0.00016999 | 0.0 | 0.98 +Modify | 0.00014353 | 0.00014949 | 0.00015569 | 0.0 | 1.14 +Other | | 0.0003865 | | | 2.94 + +Nlocal: 125 ave 128 max 121 min +Histogram: 1 0 0 0 1 0 0 0 1 1 +Nghost: 1091 ave 1094 max 1089 min +Histogram: 1 0 1 0 1 0 0 0 0 1 +Neighs: 4705 ave 4849 max 4648 min +Histogram: 2 1 0 0 0 0 0 0 0 1 + +Total # of neighbors = 18820 +Ave neighs/atom = 37.64 +Neighbor list builds = 4 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.server.file.g++.1 b/examples/message/log.28Aug18.message.server.file.g++.1 new file mode 100644 index 0000000000..cf1418d3c5 --- /dev/null +++ b/examples/message/log.28Aug18.message.server.file.g++.1 @@ -0,0 +1,44 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md file tmp.couple + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 1 by 1 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:05 diff --git a/examples/message/log.28Aug18.message.server.file.g++.4 b/examples/message/log.28Aug18.message.server.file.g++.4 new file mode 100644 index 0000000000..c233bad692 --- /dev/null +++ b/examples/message/log.28Aug18.message.server.file.g++.4 @@ -0,0 +1,44 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md file tmp.couple + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 2 by 2 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 2 by 2 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:05 diff --git a/examples/message/log.28Aug18.message.server.mpione.g++.1 b/examples/message/log.28Aug18.message.server.mpione.g++.1 new file mode 100644 index 0000000000..81e04aa923 --- /dev/null +++ b/examples/message/log.28Aug18.message.server.mpione.g++.1 @@ -0,0 +1,44 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/one + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 1 by 1 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.server.mpione.g++.4 b/examples/message/log.28Aug18.message.server.mpione.g++.4 new file mode 100644 index 0000000000..a185cb1c29 --- /dev/null +++ b/examples/message/log.28Aug18.message.server.mpione.g++.4 @@ -0,0 +1,44 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/one + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 2 by 2 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 2 by 2 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.server.mpitwo.g++.1 b/examples/message/log.28Aug18.message.server.mpitwo.g++.1 new file mode 100644 index 0000000000..973a08eb6a --- /dev/null +++ b/examples/message/log.28Aug18.message.server.mpitwo.g++.1 @@ -0,0 +1,44 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/two tmp.couple + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 1 by 1 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.server.mpitwo.g++.4 b/examples/message/log.28Aug18.message.server.mpitwo.g++.4 new file mode 100644 index 0000000000..9e76e52d90 --- /dev/null +++ b/examples/message/log.28Aug18.message.server.mpitwo.g++.4 @@ -0,0 +1,44 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/two tmp.couple + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 2 by 2 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 2 by 2 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.server.zmq.g++.1 b/examples/message/log.28Aug18.message.server.zmq.g++.1 new file mode 100644 index 0000000000..ce5729878b --- /dev/null +++ b/examples/message/log.28Aug18.message.server.zmq.g++.1 @@ -0,0 +1,44 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md zmq *:5555 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 1 by 1 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.server.zmq.g++.4 b/examples/message/log.28Aug18.message.server.zmq.g++.4 new file mode 100644 index 0000000000..b3201da4da --- /dev/null +++ b/examples/message/log.28Aug18.message.server.zmq.g++.4 @@ -0,0 +1,44 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md zmq *:5555 + +units lj +atom_style atomic +atom_modify map yes + +lattice fcc 0.8442 +Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 +region box block 0 1 0 1 0 1 +create_box 1 box +Created orthogonal box = (0 0 0) to (1.6796 1.6796 1.6796) + 1 by 2 by 2 MPI processor grid +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 2 by 2 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 6 6 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard +Server MD calls = 51 +Server MD reneighborings 5 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.tilt.client.mpione.g++.1 b/examples/message/log.28Aug18.message.tilt.client.mpione.g++.1 new file mode 100644 index 0000000000..a290ec307b --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.mpione.g++.1 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/one + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000485897 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0086399 0 1.3760711 6.8772078 0.61567613 + 2000 1.0707188 0 1.3744107 6.628097 1.2313523 + 3000 1.0627515 0 1.310096 6.1647179 1.8470284 + 4000 0.94091054 0 1.268976 6.4723215 2.4627045 + 5000 1.0218949 0 1.2430242 5.6945977 3.0783806 + 6000 0.98649481 0 1.1997565 5.2870413 3.6940568 + 7000 0.9047957 0 1.1461262 5.9291636 4.3097329 + 8000 0.85697614 0 1.0437412 5.0652097 4.925409 + 9000 0.84208329 0 1.109218 6.1749808 5.5410852 + 10000 0.86418108 0 1.1594773 6.2581867 6.1567613 + 11000 0.95136356 0 1.1650901 5.8389085 6.7724374 + 12000 0.94571583 0 1.2210342 6.2498816 7.3881135 + 13000 0.95994288 0 1.2172042 5.9608165 -7.3881135 + 14000 0.99053999 0 1.2925597 6.9994446 -6.7724374 + 15000 1.0316726 0 1.3346023 6.6902672 -6.1567613 + 16000 0.99537481 0 1.3227696 7.0301123 -5.5410852 + 17000 1.0306843 0 1.3101457 6.4750102 -4.925409 + 18000 1.071154 0 1.2947547 5.695888 -4.3097329 + 19000 0.97120752 0 1.3035465 7.3945362 -3.6940568 + 20000 0.97198994 0 1.2244663 6.0047605 -3.0783806 + 21000 0.97943545 0 1.2393394 6.3871012 -2.4627045 + 22000 0.98550707 0 1.1768148 5.019967 -1.8470284 + 23000 0.96920052 0 1.1730698 5.7944947 -1.2313523 + 24000 0.94069959 0 1.184119 5.8434876 -0.61567613 + 25000 0.91569312 0 1.1642118 5.668997 0 + 26000 0.98882932 0 1.1999248 5.0115507 0.61567613 + 27000 0.8972608 0 1.2556546 7.0837158 1.2313523 + 28000 0.93554756 0 1.2221911 5.9302841 1.8470284 + 29000 0.97894608 0 1.2168736 5.5766766 2.4627045 + 30000 0.97877055 0 1.2575839 6.4308887 3.0783806 + 31000 1.0002387 0 1.2338069 5.3873124 3.6940568 + 32000 0.89608618 0 1.2382021 6.7892204 4.3097329 + 33000 0.87439302 0 1.2252635 7.078134 4.925409 + 34000 1.076102 0 1.2991393 5.5556892 5.5410852 + 35000 1.0018689 0 1.272105 6.1320483 6.1567613 + 36000 0.93327214 0 1.2428039 7.0030867 6.7724374 + 37000 1.0770236 0 1.3002931 5.4996076 7.3881135 + 38000 0.98715132 0 1.215562 5.5958335 -7.3881135 + 39000 0.95028417 0 1.2566706 6.4133713 -6.7724374 + 40000 1.0445585 0 1.241151 5.3589806 -6.1567613 + 41000 0.93799713 0 1.2109086 6.4957845 -5.5410852 + 42000 0.99231038 0 1.2228781 5.9363471 -4.925409 + 43000 0.97913815 0 1.1854842 5.8837987 -4.3097329 + 44000 0.86748838 0 1.1616201 6.8991278 -3.6940568 + 45000 0.96284421 0 1.1549383 5.1226785 -3.0783806 + 46000 0.98701623 0 1.170581 4.9719567 -2.4627045 + 47000 0.92618683 0 1.2146576 6.7100075 -1.8470284 + 48000 1.0092593 0 1.2523988 5.7067864 -1.2313523 + 49000 1.0187472 0 1.271608 5.3355092 -0.61567613 + 50000 1.0194881 0 1.2831094 6.2449759 0 +Loop time of 1.74559 on 1 procs for 50000 steps with 160 atoms + +Performance: 12374053.445 tau/day, 28643.642 timesteps/s +100.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0020533 | 0.0020533 | 0.0020533 | 0.0 | 0.12 +Comm | 0.015517 | 0.015517 | 0.015517 | 0.0 | 0.89 +Output | 0.00052404 | 0.00052404 | 0.00052404 | 0.0 | 0.03 +Modify | 1.6784 | 1.6784 | 1.6784 | 0.0 | 96.15 +Other | | 0.04905 | | | 2.81 + +Nlocal: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5270 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/message/log.28Aug18.message.tilt.client.mpione.g++.2 b/examples/message/log.28Aug18.message.tilt.client.mpione.g++.2 new file mode 100644 index 0000000000..0089732355 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.mpione.g++.2 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/one + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000453949 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0876599 0 1.3637783 6.063363 0.61567613 + 2000 1.0722996 0 1.4108622 7.0518942 1.2313523 + 3000 1.0580774 0 1.3845895 6.0395275 1.8470284 + 4000 1.0068006 0 1.3804387 7.0944598 2.4627045 + 5000 0.95391814 0 1.2578438 6.1878831 3.0783806 + 6000 0.93492945 0 1.2711287 7.0440517 3.6940568 + 7000 0.94107853 0 1.2384371 6.1438077 4.3097329 + 8000 0.89711744 0 1.145748 6.3558305 4.925409 + 9000 0.90190304 0 1.0860684 4.957098 5.5410852 + 10000 0.84255749 0 1.0376892 5.2351795 6.1567613 + 11000 0.90250882 0 1.0497695 4.3844838 6.7724374 + 12000 0.83461274 0 1.0281949 5.1534361 7.3881135 + 13000 0.80315331 0 1.0226333 5.757222 -7.3881135 + 14000 0.81820939 0 0.99276466 4.6943725 -6.7724374 + 15000 0.8239631 0 1.0408289 5.1669006 -6.1567613 + 16000 0.88908894 0 1.1554855 6.3510278 -5.5410852 + 17000 0.98268136 0 1.2086981 5.6302847 -4.925409 + 18000 1.0098162 0 1.3687676 7.5243587 -4.3097329 + 19000 1.0795086 0 1.4562691 7.639418 -3.6940568 + 20000 1.1932155 0 1.5278988 7.0668432 -3.0783806 + 21000 1.2424296 0 1.6048792 7.959585 -2.4627045 + 22000 1.297169 0 1.7421262 8.9432388 -1.8470284 + 23000 1.2863494 0 1.7236774 8.3584973 -1.2313523 + 24000 1.4084347 0 1.7370339 7.2729078 -0.61567613 + 25000 1.3339728 0 1.6883255 7.529098 0 + 26000 1.1483243 0 1.5155578 7.3869994 0.61567613 + 27000 1.1372606 0 1.4368323 7.0580136 1.2313523 + 28000 1.0518579 0 1.355311 6.478857 1.8470284 + 29000 1.0581145 0 1.2535509 5.3697479 2.4627045 + 30000 0.93612564 0 1.185532 5.5520142 3.0783806 + 31000 0.94387516 0 1.1716454 5.8655485 3.6940568 + 32000 0.83953515 0 1.0737746 5.5551953 4.3097329 + 33000 0.84862926 0 1.0564042 5.7795428 4.925409 + 34000 0.83621877 0 1.079387 5.7514243 5.5410852 + 35000 0.86938506 0 1.031783 4.5897825 6.1567613 + 36000 0.88990609 0 1.0807597 5.3751744 6.7724374 + 37000 0.89534631 0 1.1238882 5.2400355 7.3881135 + 38000 0.98545003 0 1.2121125 5.7783854 -7.3881135 + 39000 0.96737778 0 1.2472934 6.1139 -6.7724374 + 40000 1.0664194 0 1.2956811 5.7353661 -6.1567613 + 41000 1.0681494 0 1.3269435 6.3102722 -5.5410852 + 42000 1.0875422 0 1.3963739 7.1208066 -4.925409 + 43000 1.0968173 0 1.3388062 6.1704339 -4.3097329 + 44000 1.1182109 0 1.3773214 7.0872686 -3.6940568 + 45000 1.1243261 0 1.432186 6.884782 -3.0783806 + 46000 1.039713 0 1.4389721 7.5585257 -2.4627045 + 47000 1.0816108 0 1.4100361 6.4611126 -1.8470284 + 48000 0.97637127 0 1.3605389 7.3992744 -1.2313523 + 49000 1.0361978 0 1.2721873 5.8166109 -0.61567613 + 50000 0.92367087 0 1.1875669 6.4685214 0 +Loop time of 2.82785 on 2 procs for 50000 steps with 160 atoms + +Performance: 7638300.565 tau/day, 17681.251 timesteps/s +100.0% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0011888 | 0.0012611 | 0.0013335 | 0.2 | 0.04 +Comm | 0.024838 | 0.025075 | 0.025312 | 0.1 | 0.89 +Output | 0.0003581 | 0.00052559 | 0.00069308 | 0.0 | 0.02 +Modify | 2.7209 | 2.7263 | 2.7318 | 0.3 | 96.41 +Other | | 0.07465 | | | 2.64 + +Nlocal: 80 ave 80 max 80 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5257 +Dangerous builds = 0 +Total wall time: 0:00:02 diff --git a/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.1 b/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.1 new file mode 100644 index 0000000000..814b3df1aa --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.1 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/two tmp.couple + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000543118 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0086399 0 1.3760711 6.8772078 0.61567613 + 2000 1.0707188 0 1.3744107 6.628097 1.2313523 + 3000 1.0627515 0 1.310096 6.1647179 1.8470284 + 4000 0.94091054 0 1.268976 6.4723215 2.4627045 + 5000 1.0218949 0 1.2430242 5.6945977 3.0783806 + 6000 0.98649481 0 1.1997565 5.2870413 3.6940568 + 7000 0.9047957 0 1.1461262 5.9291636 4.3097329 + 8000 0.85697614 0 1.0437412 5.0652097 4.925409 + 9000 0.84208329 0 1.109218 6.1749808 5.5410852 + 10000 0.86418108 0 1.1594773 6.2581867 6.1567613 + 11000 0.95136356 0 1.1650901 5.8389085 6.7724374 + 12000 0.94571583 0 1.2210342 6.2498816 7.3881135 + 13000 0.95994288 0 1.2172042 5.9608165 -7.3881135 + 14000 0.99053999 0 1.2925597 6.9994446 -6.7724374 + 15000 1.0316726 0 1.3346023 6.6902672 -6.1567613 + 16000 0.99537481 0 1.3227696 7.0301123 -5.5410852 + 17000 1.0306843 0 1.3101457 6.4750102 -4.925409 + 18000 1.071154 0 1.2947547 5.695888 -4.3097329 + 19000 0.97120752 0 1.3035465 7.3945362 -3.6940568 + 20000 0.97198994 0 1.2244663 6.0047605 -3.0783806 + 21000 0.97943545 0 1.2393394 6.3871012 -2.4627045 + 22000 0.98550707 0 1.1768148 5.019967 -1.8470284 + 23000 0.96920052 0 1.1730698 5.7944947 -1.2313523 + 24000 0.94069959 0 1.184119 5.8434876 -0.61567613 + 25000 0.91569312 0 1.1642118 5.668997 0 + 26000 0.98882932 0 1.1999248 5.0115507 0.61567613 + 27000 0.8972608 0 1.2556546 7.0837158 1.2313523 + 28000 0.93554756 0 1.2221911 5.9302841 1.8470284 + 29000 0.97894608 0 1.2168736 5.5766766 2.4627045 + 30000 0.97877055 0 1.2575839 6.4308887 3.0783806 + 31000 1.0002387 0 1.2338069 5.3873124 3.6940568 + 32000 0.89608618 0 1.2382021 6.7892204 4.3097329 + 33000 0.87439302 0 1.2252635 7.078134 4.925409 + 34000 1.076102 0 1.2991393 5.5556892 5.5410852 + 35000 1.0018689 0 1.272105 6.1320483 6.1567613 + 36000 0.93327214 0 1.2428039 7.0030867 6.7724374 + 37000 1.0770236 0 1.3002931 5.4996076 7.3881135 + 38000 0.98715132 0 1.215562 5.5958335 -7.3881135 + 39000 0.95028417 0 1.2566706 6.4133713 -6.7724374 + 40000 1.0445585 0 1.241151 5.3589806 -6.1567613 + 41000 0.93799713 0 1.2109086 6.4957845 -5.5410852 + 42000 0.99231038 0 1.2228781 5.9363471 -4.925409 + 43000 0.97913815 0 1.1854842 5.8837987 -4.3097329 + 44000 0.86748838 0 1.1616201 6.8991278 -3.6940568 + 45000 0.96284421 0 1.1549383 5.1226785 -3.0783806 + 46000 0.98701623 0 1.170581 4.9719567 -2.4627045 + 47000 0.92618683 0 1.2146576 6.7100075 -1.8470284 + 48000 1.0092593 0 1.2523988 5.7067864 -1.2313523 + 49000 1.0187472 0 1.271608 5.3355092 -0.61567613 + 50000 1.0194881 0 1.2831094 6.2449759 0 +Loop time of 4.80282 on 1 procs for 50000 steps with 160 atoms + +Performance: 4497356.047 tau/day, 10410.546 timesteps/s +50.2% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0032325 | 0.0032325 | 0.0032325 | 0.0 | 0.07 +Comm | 0.033613 | 0.033613 | 0.033613 | 0.0 | 0.70 +Output | 0.00089812 | 0.00089812 | 0.00089812 | 0.0 | 0.02 +Modify | 4.6706 | 4.6706 | 4.6706 | 0.0 | 97.25 +Other | | 0.09449 | | | 1.97 + +Nlocal: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5270 +Dangerous builds = 0 +Total wall time: 0:00:04 diff --git a/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.2 b/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.2 new file mode 100644 index 0000000000..7c172d3727 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.mpitwo.g++.2 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md mpi/two tmp.couple + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000574827 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0876599 0 1.3637783 6.063363 0.61567613 + 2000 1.0722996 0 1.4108622 7.0518942 1.2313523 + 3000 1.0580774 0 1.3845895 6.0395275 1.8470284 + 4000 1.0068006 0 1.3804387 7.0944598 2.4627045 + 5000 0.95391814 0 1.2578438 6.1878831 3.0783806 + 6000 0.93492945 0 1.2711287 7.0440517 3.6940568 + 7000 0.94107853 0 1.2384371 6.1438077 4.3097329 + 8000 0.89711744 0 1.145748 6.3558305 4.925409 + 9000 0.90190304 0 1.0860684 4.957098 5.5410852 + 10000 0.84255749 0 1.0376892 5.2351795 6.1567613 + 11000 0.90250882 0 1.0497695 4.3844838 6.7724374 + 12000 0.83461274 0 1.0281949 5.1534361 7.3881135 + 13000 0.80315331 0 1.0226333 5.757222 -7.3881135 + 14000 0.81820939 0 0.99276466 4.6943725 -6.7724374 + 15000 0.8239631 0 1.0408289 5.1669006 -6.1567613 + 16000 0.88908894 0 1.1554855 6.3510278 -5.5410852 + 17000 0.98268136 0 1.2086981 5.6302847 -4.925409 + 18000 1.0098162 0 1.3687676 7.5243587 -4.3097329 + 19000 1.0795086 0 1.4562691 7.639418 -3.6940568 + 20000 1.1932155 0 1.5278988 7.0668432 -3.0783806 + 21000 1.2424296 0 1.6048792 7.959585 -2.4627045 + 22000 1.297169 0 1.7421262 8.9432388 -1.8470284 + 23000 1.2863494 0 1.7236774 8.3584973 -1.2313523 + 24000 1.4084347 0 1.7370339 7.2729078 -0.61567613 + 25000 1.3339728 0 1.6883255 7.529098 0 + 26000 1.1483243 0 1.5155578 7.3869994 0.61567613 + 27000 1.1372606 0 1.4368323 7.0580136 1.2313523 + 28000 1.0518579 0 1.355311 6.478857 1.8470284 + 29000 1.0581145 0 1.2535509 5.3697479 2.4627045 + 30000 0.93612564 0 1.185532 5.5520142 3.0783806 + 31000 0.94387516 0 1.1716454 5.8655485 3.6940568 + 32000 0.83953515 0 1.0737746 5.5551953 4.3097329 + 33000 0.84862926 0 1.0564042 5.7795428 4.925409 + 34000 0.83621877 0 1.079387 5.7514243 5.5410852 + 35000 0.86938506 0 1.031783 4.5897825 6.1567613 + 36000 0.88990609 0 1.0807597 5.3751744 6.7724374 + 37000 0.89534631 0 1.1238882 5.2400355 7.3881135 + 38000 0.98545003 0 1.2121125 5.7783854 -7.3881135 + 39000 0.96737778 0 1.2472934 6.1139 -6.7724374 + 40000 1.0664194 0 1.2956811 5.7353661 -6.1567613 + 41000 1.0681494 0 1.3269435 6.3102722 -5.5410852 + 42000 1.0875422 0 1.3963739 7.1208066 -4.925409 + 43000 1.0968173 0 1.3388062 6.1704339 -4.3097329 + 44000 1.1182109 0 1.3773214 7.0872686 -3.6940568 + 45000 1.1243261 0 1.432186 6.884782 -3.0783806 + 46000 1.039713 0 1.4389721 7.5585257 -2.4627045 + 47000 1.0816108 0 1.4100361 6.4611126 -1.8470284 + 48000 0.97637127 0 1.3605389 7.3992744 -1.2313523 + 49000 1.0361978 0 1.2721873 5.8166109 -0.61567613 + 50000 0.92367087 0 1.1875669 6.4685214 0 +Loop time of 5.66536 on 2 procs for 50000 steps with 160 atoms + +Performance: 3812643.232 tau/day, 8825.563 timesteps/s +48.1% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0012836 | 0.0015377 | 0.0017917 | 0.6 | 0.03 +Comm | 0.037211 | 0.037922 | 0.038633 | 0.4 | 0.67 +Output | 0.00052023 | 0.00073683 | 0.00095344 | 0.0 | 0.01 +Modify | 5.5101 | 5.5105 | 5.511 | 0.0 | 97.27 +Other | | 0.1146 | | | 2.02 + +Nlocal: 80 ave 80 max 80 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5257 +Dangerous builds = 0 +Total wall time: 0:00:06 diff --git a/examples/message/log.28Aug18.message.tilt.client.zmq.g++.1 b/examples/message/log.28Aug18.message.tilt.client.zmq.g++.1 new file mode 100644 index 0000000000..f5e2f220cd --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.zmq.g++.1 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md zmq localhost:5555 + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000530005 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0086399 0 1.3760711 6.8772078 0.61567613 + 2000 1.0707188 0 1.3744107 6.628097 1.2313523 + 3000 1.0627515 0 1.310096 6.1647179 1.8470284 + 4000 0.94091054 0 1.268976 6.4723215 2.4627045 + 5000 1.0218949 0 1.2430242 5.6945977 3.0783806 + 6000 0.98649481 0 1.1997565 5.2870413 3.6940568 + 7000 0.9047957 0 1.1461262 5.9291636 4.3097329 + 8000 0.85697614 0 1.0437412 5.0652097 4.925409 + 9000 0.84208329 0 1.109218 6.1749808 5.5410852 + 10000 0.86418108 0 1.1594773 6.2581867 6.1567613 + 11000 0.95136356 0 1.1650901 5.8389085 6.7724374 + 12000 0.94571583 0 1.2210342 6.2498816 7.3881135 + 13000 0.95994288 0 1.2172042 5.9608165 -7.3881135 + 14000 0.99053999 0 1.2925597 6.9994446 -6.7724374 + 15000 1.0316726 0 1.3346023 6.6902672 -6.1567613 + 16000 0.99537481 0 1.3227696 7.0301123 -5.5410852 + 17000 1.0306843 0 1.3101457 6.4750102 -4.925409 + 18000 1.071154 0 1.2947547 5.695888 -4.3097329 + 19000 0.97120752 0 1.3035465 7.3945362 -3.6940568 + 20000 0.97198994 0 1.2244663 6.0047605 -3.0783806 + 21000 0.97943545 0 1.2393394 6.3871012 -2.4627045 + 22000 0.98550707 0 1.1768148 5.019967 -1.8470284 + 23000 0.96920052 0 1.1730698 5.7944947 -1.2313523 + 24000 0.94069959 0 1.184119 5.8434876 -0.61567613 + 25000 0.91569312 0 1.1642118 5.668997 0 + 26000 0.98882932 0 1.1999248 5.0115507 0.61567613 + 27000 0.8972608 0 1.2556546 7.0837158 1.2313523 + 28000 0.93554756 0 1.2221911 5.9302841 1.8470284 + 29000 0.97894608 0 1.2168736 5.5766766 2.4627045 + 30000 0.97877055 0 1.2575839 6.4308887 3.0783806 + 31000 1.0002387 0 1.2338069 5.3873124 3.6940568 + 32000 0.89608618 0 1.2382021 6.7892204 4.3097329 + 33000 0.87439302 0 1.2252635 7.078134 4.925409 + 34000 1.076102 0 1.2991393 5.5556892 5.5410852 + 35000 1.0018689 0 1.272105 6.1320483 6.1567613 + 36000 0.93327214 0 1.2428039 7.0030867 6.7724374 + 37000 1.0770236 0 1.3002931 5.4996076 7.3881135 + 38000 0.98715132 0 1.215562 5.5958335 -7.3881135 + 39000 0.95028417 0 1.2566706 6.4133713 -6.7724374 + 40000 1.0445585 0 1.241151 5.3589806 -6.1567613 + 41000 0.93799713 0 1.2109086 6.4957845 -5.5410852 + 42000 0.99231038 0 1.2228781 5.9363471 -4.925409 + 43000 0.97913815 0 1.1854842 5.8837987 -4.3097329 + 44000 0.86748838 0 1.1616201 6.8991278 -3.6940568 + 45000 0.96284421 0 1.1549383 5.1226785 -3.0783806 + 46000 0.98701623 0 1.170581 4.9719567 -2.4627045 + 47000 0.92618683 0 1.2146576 6.7100075 -1.8470284 + 48000 1.0092593 0 1.2523988 5.7067864 -1.2313523 + 49000 1.0187472 0 1.271608 5.3355092 -0.61567613 + 50000 1.0194881 0 1.2831094 6.2449759 0 +Loop time of 12.9652 on 1 procs for 50000 steps with 160 atoms + +Performance: 1666000.147 tau/day, 3856.482 timesteps/s +23.2% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0018659 | 0.0018659 | 0.0018659 | 0.0 | 0.01 +Comm | 0.020679 | 0.020679 | 0.020679 | 0.0 | 0.16 +Output | 0.00052547 | 0.00052547 | 0.00052547 | 0.0 | 0.00 +Modify | 12.871 | 12.871 | 12.871 | 0.0 | 99.28 +Other | | 0.07062 | | | 0.54 + +Nlocal: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5270 +Dangerous builds = 0 +Total wall time: 0:00:12 diff --git a/examples/message/log.28Aug18.message.tilt.client.zmq.g++.2 b/examples/message/log.28Aug18.message.tilt.client.zmq.g++.2 new file mode 100644 index 0000000000..8fc570f5da --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.client.zmq.g++.2 @@ -0,0 +1,130 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - client script + +variable mode index file + +if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555" elif "${mode} == mpione" "message client md mpi/one" elif "${mode} == mpitwo" "message client md mpi/two tmp.couple" +message client md zmq localhost:5555 + +units lj +atom_style atomic +dimension 2 +atom_modify sort 0 0.0 map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000673056 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +fix 3 all client/md +fix_modify 3 energy yes + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 0 + ghost atom cutoff = 0 + binsize = 15.3919, bins = 1 1 1 + 0 neighbor lists, perpetual/occasional/extra = 0 0 0 +Per MPI rank memory allocation (min/avg/max) = 2.308 | 2.308 | 2.308 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.0876599 0 1.3637783 6.063363 0.61567613 + 2000 1.0722996 0 1.4108622 7.0518942 1.2313523 + 3000 1.0580774 0 1.3845895 6.0395275 1.8470284 + 4000 1.0068006 0 1.3804387 7.0944598 2.4627045 + 5000 0.95391814 0 1.2578438 6.1878831 3.0783806 + 6000 0.93492945 0 1.2711287 7.0440517 3.6940568 + 7000 0.94107853 0 1.2384371 6.1438077 4.3097329 + 8000 0.89711744 0 1.145748 6.3558305 4.925409 + 9000 0.90190304 0 1.0860684 4.957098 5.5410852 + 10000 0.84255749 0 1.0376892 5.2351795 6.1567613 + 11000 0.90250882 0 1.0497695 4.3844838 6.7724374 + 12000 0.83461274 0 1.0281949 5.1534361 7.3881135 + 13000 0.80315331 0 1.0226333 5.757222 -7.3881135 + 14000 0.81820939 0 0.99276466 4.6943725 -6.7724374 + 15000 0.8239631 0 1.0408289 5.1669006 -6.1567613 + 16000 0.88908894 0 1.1554855 6.3510278 -5.5410852 + 17000 0.98268136 0 1.2086981 5.6302847 -4.925409 + 18000 1.0098162 0 1.3687676 7.5243587 -4.3097329 + 19000 1.0795086 0 1.4562691 7.639418 -3.6940568 + 20000 1.1932155 0 1.5278988 7.0668432 -3.0783806 + 21000 1.2424296 0 1.6048792 7.959585 -2.4627045 + 22000 1.297169 0 1.7421262 8.9432388 -1.8470284 + 23000 1.2863494 0 1.7236774 8.3584973 -1.2313523 + 24000 1.4084347 0 1.7370339 7.2729078 -0.61567613 + 25000 1.3339728 0 1.6883255 7.529098 0 + 26000 1.1483243 0 1.5155578 7.3869994 0.61567613 + 27000 1.1372606 0 1.4368323 7.0580136 1.2313523 + 28000 1.0518579 0 1.355311 6.478857 1.8470284 + 29000 1.0581145 0 1.2535509 5.3697479 2.4627045 + 30000 0.93612564 0 1.185532 5.5520142 3.0783806 + 31000 0.94387516 0 1.1716454 5.8655485 3.6940568 + 32000 0.83953515 0 1.0737746 5.5551953 4.3097329 + 33000 0.84862926 0 1.0564042 5.7795428 4.925409 + 34000 0.83621877 0 1.079387 5.7514243 5.5410852 + 35000 0.86938506 0 1.031783 4.5897825 6.1567613 + 36000 0.88990609 0 1.0807597 5.3751744 6.7724374 + 37000 0.89534631 0 1.1238882 5.2400355 7.3881135 + 38000 0.98545003 0 1.2121125 5.7783854 -7.3881135 + 39000 0.96737778 0 1.2472934 6.1139 -6.7724374 + 40000 1.0664194 0 1.2956811 5.7353661 -6.1567613 + 41000 1.0681494 0 1.3269435 6.3102722 -5.5410852 + 42000 1.0875422 0 1.3963739 7.1208066 -4.925409 + 43000 1.0968173 0 1.3388062 6.1704339 -4.3097329 + 44000 1.1182109 0 1.3773214 7.0872686 -3.6940568 + 45000 1.1243261 0 1.432186 6.884782 -3.0783806 + 46000 1.039713 0 1.4389721 7.5585257 -2.4627045 + 47000 1.0816108 0 1.4100361 6.4611126 -1.8470284 + 48000 0.97637127 0 1.3605389 7.3992744 -1.2313523 + 49000 1.0361978 0 1.2721873 5.8166109 -0.61567613 + 50000 0.92367087 0 1.1875669 6.4685214 0 +Loop time of 13.6129 on 2 procs for 50000 steps with 160 atoms + +Performance: 1586733.497 tau/day, 3672.994 timesteps/s +59.3% CPU use with 2 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0.0015125 | 0.0015551 | 0.0015976 | 0.1 | 0.01 +Comm | 0.026598 | 0.028413 | 0.030227 | 1.1 | 0.21 +Output | 0.00046492 | 0.00063884 | 0.00081277 | 0.0 | 0.00 +Modify | 13.465 | 13.483 | 13.501 | 0.5 | 99.04 +Other | | 0.0994 | | | 0.73 + +Nlocal: 80 ave 80 max 80 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 2 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 0 +Ave neighs/atom = 0 +Neighbor list builds = 5257 +Dangerous builds = 0 +Total wall time: 0:00:13 diff --git a/examples/message/log.28Aug18.message.tilt.g++.1 b/examples/message/log.28Aug18.message.tilt.g++.1 new file mode 100644 index 0000000000..3f7cfc9da0 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.g++.1 @@ -0,0 +1,129 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - no client/server mode + +units lj +atom_style atomic +dimension 2 + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000437021 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.065 | 3.065 | 3.065 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.1326992 0.25863754 1.3842573 6.0588079 0.61567613 + 2000 1.0158438 0.33502643 1.3445212 7.2638652 1.2313523 + 3000 1.0968167 0.3149227 1.4048843 7.0653223 1.8470284 + 4000 1.0070993 0.40611915 1.4069241 7.7283521 2.4627045 + 5000 1.1153133 0.2674828 1.3758254 6.2949171 3.0783806 + 6000 1.0170665 0.25843673 1.2691466 6.049412 3.6940568 + 7000 1.0224605 0.20974914 1.2258193 5.5104976 4.3097329 + 8000 0.96149374 0.24035439 1.1958388 5.4179146 4.925409 + 9000 0.87759014 0.2590493 1.1311545 5.8711239 5.5410852 + 10000 0.83791968 0.23477897 1.0674617 5.666904 6.1567613 + 11000 0.87702487 0.22958877 1.1011322 5.9068062 6.7724374 + 12000 0.81507294 0.26375817 1.0737369 5.9166925 7.3881135 + 13000 0.85655284 0.24676491 1.0979643 5.6918734 -7.3881135 + 14000 0.84369293 0.27818471 1.1166046 6.4146184 -6.7724374 + 15000 0.90052173 0.19836095 1.0932544 5.2690913 -6.1567613 + 16000 0.83836874 0.26921637 1.1023453 5.9579526 -5.5410852 + 17000 0.90492897 0.21933098 1.1186041 5.6042194 -4.925409 + 18000 0.90113412 0.24880908 1.1443111 6.0634846 -4.3097329 + 19000 1.0160445 0.17252962 1.1822239 5.3149334 -3.6940568 + 20000 0.96217234 0.2414377 1.1975965 5.476653 -3.0783806 + 21000 0.98229664 0.27569118 1.2518485 5.9340174 -2.4627045 + 22000 1.0551763 0.26997615 1.3185576 6.2094112 -1.8470284 + 23000 1.051999 0.34076639 1.3861904 7.082385 -1.2313523 + 24000 1.1350071 0.23701844 1.3649317 6.1829742 -0.61567613 + 25000 1.0946409 0.33366032 1.4214597 7.1907559 0 + 26000 1.1511799 0.24626808 1.3902531 5.8469984 0.61567613 + 27000 1.1009203 0.25653085 1.3505704 6.1504287 1.2313523 + 28000 1.0521302 0.2876798 1.3332342 5.9906187 1.8470284 + 29000 1.0518465 0.21853 1.2638025 5.6577549 2.4627045 + 30000 0.97264625 0.28758145 1.2541487 6.5769804 3.0783806 + 31000 1.0133579 0.31575837 1.3227828 6.6650893 3.6940568 + 32000 1.0714324 0.28757036 1.3523063 6.2682059 4.3097329 + 33000 1.0739451 0.28062459 1.3478575 6.6862746 4.925409 + 34000 1.0056867 0.38289586 1.382297 7.1120131 5.5410852 + 35000 1.0911349 0.26370939 1.3480247 6.1476048 6.1567613 + 36000 1.0618618 0.28269593 1.3379211 6.9414608 6.7724374 + 37000 1.0704991 0.29974994 1.3635585 7.0834346 7.3881135 + 38000 1.1087507 0.2682201 1.3700411 5.8506019 -7.3881135 + 39000 1.1303733 0.22362416 1.3469326 5.2500269 -6.7724374 + 40000 1.0174248 0.28956571 1.3006316 6.4491571 -6.1567613 + 41000 0.95981887 0.29162143 1.2454414 6.4658646 -5.5410852 + 42000 0.88302144 0.30432252 1.1818251 6.7401923 -4.925409 + 43000 0.93164419 0.25110308 1.1769245 5.9067383 -4.3097329 + 44000 0.98352598 0.23322873 1.2106077 5.5606585 -3.6940568 + 45000 1.0247245 0.26503082 1.2833508 6.533394 -3.0783806 + 46000 0.93004532 0.32277782 1.2470104 6.4689179 -2.4627045 + 47000 1.0653176 0.29185413 1.3505135 6.9534569 -1.8470284 + 48000 1.0401524 0.3420245 1.3756759 6.8016042 -1.2313523 + 49000 1.0023407 0.31833091 1.314407 6.7385662 -0.61567613 + 50000 1.0566272 0.28657142 1.3365947 6.261203 0 +Loop time of 1.15672 on 1 procs for 50000 steps with 160 atoms + +Performance: 18673426.371 tau/day, 43225.524 timesteps/s +99.8% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.19267 | 0.19267 | 0.19267 | 0.0 | 16.66 +Neigh | 0.15156 | 0.15156 | 0.15156 | 0.0 | 13.10 +Comm | 0.044569 | 0.044569 | 0.044569 | 0.0 | 3.85 +Output | 0.00057936 | 0.00057936 | 0.00057936 | 0.0 | 0.05 +Modify | 0.71051 | 0.71051 | 0.71051 | 0.0 | 61.42 +Other | | 0.05684 | | | 4.91 + +Nlocal: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 71 ave 71 max 71 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 362 ave 362 max 362 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 362 +Ave neighs/atom = 2.2625 +Neighbor list builds = 5256 +Dangerous builds = 0 +Total wall time: 0:00:01 diff --git a/examples/message/log.28Aug18.message.tilt.g++.4 b/examples/message/log.28Aug18.message.tilt.g++.4 new file mode 100644 index 0000000000..74061463f6 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.g++.4 @@ -0,0 +1,129 @@ +LAMMPS (22 Aug 2018) +# 2d NEMD simulation - no client/server mode + +units lj +atom_style atomic +dimension 2 + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000396967 secs +mass * 1.0 + +velocity all create 1.44 87287 loop geom + +region slice block 4 6 INF INF INF INF +set region slice type 2 + 40 settings made for type + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nvt/sllod temp 1.0 1.0 1.0 tchain 1 +fix 2 all deform 1 xy erate 0.01 remap v + +thermo_style custom step temp epair etotal press xy + +thermo 1000 +run 50000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.065 | 3.065 | 3.065 Mbytes +Step Temp E_pair TotEng Press Xy + 0 1.44 0 1.431 1.2080502 0 + 1000 1.1326992 0.25863754 1.3842573 6.0588079 0.61567613 + 2000 1.0158438 0.33502643 1.3445212 7.2638652 1.2313523 + 3000 1.0968167 0.3149227 1.4048843 7.0653223 1.8470284 + 4000 1.0070993 0.40611915 1.4069241 7.7283521 2.4627045 + 5000 1.1153133 0.2674828 1.3758254 6.2949171 3.0783806 + 6000 1.0170665 0.25843673 1.2691466 6.049412 3.6940568 + 7000 1.0224605 0.20974914 1.2258193 5.5104976 4.3097329 + 8000 0.96149374 0.24035439 1.1958388 5.4179146 4.925409 + 9000 0.87759014 0.2590493 1.1311545 5.8711239 5.5410852 + 10000 0.83791968 0.23477897 1.0674617 5.666904 6.1567613 + 11000 0.87702487 0.22958877 1.1011322 5.9068062 6.7724374 + 12000 0.81507294 0.26375817 1.0737369 5.9166925 7.3881135 + 13000 0.85655284 0.24676491 1.0979643 5.6918734 -7.3881135 + 14000 0.84369293 0.27818471 1.1166046 6.4146184 -6.7724374 + 15000 0.90052173 0.19836095 1.0932544 5.2690913 -6.1567613 + 16000 0.83836874 0.26921637 1.1023453 5.9579526 -5.5410852 + 17000 0.90492897 0.21933098 1.1186041 5.6042194 -4.925409 + 18000 0.90113412 0.24880908 1.1443111 6.0634846 -4.3097329 + 19000 1.0160445 0.17252962 1.1822239 5.3149334 -3.6940568 + 20000 0.96217234 0.2414377 1.1975965 5.476653 -3.0783806 + 21000 0.98229664 0.27569118 1.2518485 5.9340174 -2.4627045 + 22000 1.0551763 0.26997615 1.3185576 6.2094112 -1.8470284 + 23000 1.051999 0.34076639 1.3861904 7.082385 -1.2313523 + 24000 1.1350071 0.23701844 1.3649317 6.1829742 -0.61567613 + 25000 1.0946409 0.33366032 1.4214597 7.1907559 0 + 26000 1.1511799 0.24626808 1.3902531 5.8469984 0.61567613 + 27000 1.1009203 0.25653085 1.3505704 6.1504287 1.2313523 + 28000 1.0521302 0.2876798 1.3332342 5.9906187 1.8470284 + 29000 1.0518465 0.21853 1.2638025 5.6577549 2.4627045 + 30000 0.97264625 0.28758145 1.2541487 6.5769804 3.0783806 + 31000 1.0133579 0.31575837 1.3227828 6.6650893 3.6940568 + 32000 1.0714324 0.28757036 1.3523063 6.2682059 4.3097329 + 33000 1.0739451 0.28062459 1.3478575 6.6862746 4.925409 + 34000 1.0056867 0.38289586 1.382297 7.1120131 5.5410852 + 35000 1.0911349 0.26370939 1.3480247 6.1476048 6.1567613 + 36000 1.0618618 0.28269593 1.3379211 6.9414608 6.7724374 + 37000 1.0704991 0.29974994 1.3635585 7.0834346 7.3881135 + 38000 1.1087507 0.2682201 1.3700411 5.8506019 -7.3881135 + 39000 1.1303733 0.22362416 1.3469326 5.2500269 -6.7724374 + 40000 1.0174248 0.28956571 1.3006316 6.4491571 -6.1567613 + 41000 0.95981887 0.29162143 1.2454414 6.4658646 -5.5410852 + 42000 0.88302144 0.30432252 1.1818251 6.7401923 -4.925409 + 43000 0.93164419 0.25110308 1.1769245 5.9067383 -4.3097329 + 44000 0.98352598 0.23322873 1.2106077 5.5606585 -3.6940568 + 45000 1.0247245 0.26503082 1.2833508 6.533394 -3.0783806 + 46000 0.93004532 0.32277782 1.2470104 6.4689179 -2.4627045 + 47000 1.0653176 0.29185413 1.3505135 6.9534569 -1.8470284 + 48000 1.0401524 0.3420245 1.3756759 6.8016042 -1.2313523 + 49000 1.0023407 0.31833091 1.314407 6.7385662 -0.61567613 + 50000 1.0566272 0.28657142 1.3365947 6.261203 0 +Loop time of 0.92653 on 1 procs for 50000 steps with 160 atoms + +Performance: 23312793.646 tau/day, 53964.800 timesteps/s +100.0% CPU use with 1 MPI tasks x no OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.15063 | 0.15063 | 0.15063 | 0.0 | 16.26 +Neigh | 0.11869 | 0.11869 | 0.11869 | 0.0 | 12.81 +Comm | 0.035839 | 0.035839 | 0.035839 | 0.0 | 3.87 +Output | 0.00064468 | 0.00064468 | 0.00064468 | 0.0 | 0.07 +Modify | 0.57422 | 0.57422 | 0.57422 | 0.0 | 61.98 +Other | | 0.0465 | | | 5.02 + +Nlocal: 160 ave 160 max 160 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 71 ave 71 max 71 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 362 ave 362 max 362 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 362 +Ave neighs/atom = 2.2625 +Neighbor list builds = 5256 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/message/log.28Aug18.message.tilt.server.mpione.g++.1 b/examples/message/log.28Aug18.message.tilt.server.mpione.g++.1 new file mode 100644 index 0000000000..428ff346ad --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.mpione.g++.1 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/one + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000438929 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5073 +Total wall time: 0:00:01 diff --git a/examples/message/log.28Aug18.message.tilt.server.mpione.g++.4 b/examples/message/log.28Aug18.message.tilt.server.mpione.g++.4 new file mode 100644 index 0000000000..3da50163ed --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.mpione.g++.4 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/one + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000455141 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 2 by 2 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5066 +Total wall time: 0:00:02 diff --git a/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.1 b/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.1 new file mode 100644 index 0000000000..fc29a6da63 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.1 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/two tmp.couple + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000521898 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5073 +Total wall time: 0:00:04 diff --git a/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.4 b/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.4 new file mode 100644 index 0000000000..758b84fe9d --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.mpitwo.g++.4 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md mpi/two tmp.couple + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000378847 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 2 by 2 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5066 +Total wall time: 0:00:06 diff --git a/examples/message/log.28Aug18.message.tilt.server.zmq.g++.1 b/examples/message/log.28Aug18.message.tilt.server.zmq.g++.1 new file mode 100644 index 0000000000..78526ba748 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.zmq.g++.1 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md zmq *:5555 + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000557184 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 1 by 1 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5073 +Total wall time: 0:00:12 diff --git a/examples/message/log.28Aug18.message.tilt.server.zmq.g++.4 b/examples/message/log.28Aug18.message.tilt.server.zmq.g++.4 new file mode 100644 index 0000000000..b1ad768470 --- /dev/null +++ b/examples/message/log.28Aug18.message.tilt.server.zmq.g++.4 @@ -0,0 +1,48 @@ +LAMMPS (22 Aug 2018) +# 3d Lennard-Jones melt - server script + +variable mode index file + +if "${mode} == file" then "message server md file tmp.couple" elif "${mode} == zmq" "message server md zmq *:5555" elif "${mode} == mpione" "message server md mpi/one" elif "${mode} == mpitwo" "message server md mpi/two tmp.couple" +message server md zmq *:5555 + +units lj +atom_style atomic +dimension 2 +atom_modify map yes + +lattice sq2 0.8442 +Lattice spacing in x,y,z = 1.53919 1.53919 1.53919 +region box prism 0 10 0 8 -0.5 0.5 0 0 0 +create_box 2 box +Created triclinic box = (0 0 -0.769595) to (15.3919 12.3135 0.769595) with tilt (0 0 0) + 2 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 160 atoms + Time spent = 0.000586987 secs +mass * 1.0 # masses not used by server + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 1.0 + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +server md + 2 by 2 by 1 MPI processor grid +WARNING: No fixes defined, atoms won't move (../verlet.cpp:55) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.3 + ghost atom cutoff = 1.3 + binsize = 0.65, bins = 24 19 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton/tri + stencil: half/bin/2d/newton/tri + bin: standard +Server MD calls = 50001 +Server MD reneighborings 5066 +Total wall time: 0:00:13 diff --git a/lib/README b/lib/README index 3c8f46dd0a..12c27b2a39 100644 --- a/lib/README +++ b/lib/README @@ -35,6 +35,8 @@ linalg set of BLAS and LAPACK routines needed by USER-ATC package from Axel Kohlmeyer (Temple U) meam modified embedded atom method (MEAM) potential, MEAM package from Greg Wagner (Sandia) +message client/server communication library via MPI, sockets, files + from Steve Plimpton (Sandia) molfile hooks to VMD molfile plugins, used by the USER-MOLFILE package from Axel Kohlmeyer (Temple U) and the VMD development team mscg hooks to the MSCG library, used by fix_mscg command diff --git a/lib/message/Install.py b/lib/message/Install.py new file mode 100644 index 0000000000..d3f31c986f --- /dev/null +++ b/lib/message/Install.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python + +# Install.py tool to build the CSlib library +# used to automate the steps described in the README file in this dir + +from __future__ import print_function +import sys,os,re,subprocess + +# help message + +help = """ +Syntax from src dir: make lib-message args="-m" + or: make lib-message args="-s -z" +Syntax from lib dir: python Install.py -m + or: python Install.py -s -z + +specify zero or more options, order does not matter + + -m = parallel build of CSlib library + -s = serial build of CSlib library + -z = build CSlib library with ZMQ socket support, default = no ZMQ support + +Example: + +make lib-message args="-m -z" # build parallel CSlib with ZMQ support +make lib-message args="-s" # build serial CSlib with no ZMQ support +""" + +# print error message or help + +def error(str=None): + if not str: print(help) + else: print("ERROR",str) + sys.exit() + +# expand to full path name +# process leading '~' or relative path + +def fullpath(path): + return os.path.abspath(os.path.expanduser(path)) + +def which(program): + def is_exe(fpath): + return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + + fpath, fname = os.path.split(program) + if fpath: + if is_exe(program): + return program + else: + for path in os.environ["PATH"].split(os.pathsep): + path = path.strip('"') + exe_file = os.path.join(path, program) + if is_exe(exe_file): + return exe_file + + return None + +# parse args + +args = sys.argv[1:] +nargs = len(args) +if nargs == 0: error() + +mpiflag = False +serialflag = False +zmqflag = False + +iarg = 0 +while iarg < nargs: + if args[iarg] == "-m": + mpiflag = True + iarg += 1 + elif args[iarg] == "-s": + serialflag = True + iarg += 1 + elif args[iarg] == "-z": + zmqflag = True + iarg += 1 + else: error() + +if (not mpiflag and not serialflag): + error("Must use either -m or -s flag") + +if (mpiflag and serialflag): + error("Cannot use -m and -s flag at the same time") + +# build CSlib +# copy resulting lib to cslib/src/libmessage.a +# copy appropriate Makefile.lammps.* to Makefile.lammps + +print("Building CSlib ...") +srcdir = fullpath("./cslib/src") + +if mpiflag and zmqflag: + cmd = "cd %s; make lib_parallel" % srcdir +elif mpiflag and not zmqflag: + cmd = "cd %s; make lib_parallel zmq=no" % srcdir +elif not mpiflag and zmqflag: + cmd = "cd %s; make lib_serial" % srcdir +elif not mpiflag and not zmqflag: + cmd = "cd %s; make lib_serial zmq=no" % srcdir + +print(cmd) +txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) +print(txt.decode('UTF-8')) + +if mpiflag: cmd = "cd %s; cp libcsmpi.a libmessage.a" % srcdir +else: cmd = "cd %s; cp libcsnompi.a libmessage.a" % srcdir +print(cmd) +txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) +print(txt.decode('UTF-8')) + +if zmqflag: cmd = "cp Makefile.lammps.zmq Makefile.lammps" +else: cmd = "cp Makefile.lammps.nozmq Makefile.lammps" +print(cmd) +txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True) +print(txt.decode('UTF-8')) diff --git a/lib/message/Makefile.lammps.nozmq b/lib/message/Makefile.lammps.nozmq new file mode 100644 index 0000000000..1bb10cc988 --- /dev/null +++ b/lib/message/Makefile.lammps.nozmq @@ -0,0 +1,5 @@ +# Settings that the LAMMPS build will import when this package library is used + +message_SYSINC = +message_SYSLIB = +message_SYSPATH = diff --git a/lib/message/Makefile.lammps.zmq b/lib/message/Makefile.lammps.zmq new file mode 100644 index 0000000000..759f2ce04b --- /dev/null +++ b/lib/message/Makefile.lammps.zmq @@ -0,0 +1,5 @@ +# Settings that the LAMMPS build will import when this package library is used + +message_SYSINC = +message_SYSLIB = -lzmq +message_SYSPATH = diff --git a/lib/message/README b/lib/message/README new file mode 100644 index 0000000000..dafb94e9ef --- /dev/null +++ b/lib/message/README @@ -0,0 +1,51 @@ +This directory contains the CSlib library which is required +to use the MESSAGE package and its client/server commands +in a LAMMPS input script. + +The CSlib libary is included in the LAMMPS distribution. A fuller +version including documentation and test programs is available at +http://cslib.sandia.gov. It was developed by Steve Plimpton at Sandia +National Laboratories. + +You can type "make lib-message" from the src directory to see help on +how to build this library via make commands, or you can do the same +thing by typing "python Install.py" from within this directory, or you +can do it manually by following the instructions below. + +The CSlib can be optionally built with support for sockets using +the open-source ZeroMQ (ZMQ) library. If it is not installed +on your system, it is easy to download and install. + +Go to the ZMQ website for details: http://zeromq.org + +----------------- + +Instructions: + +1. Compile CSlib from within cslib/src with one of the following: + % make lib_parallel # build parallel library with ZMQ socket support + % make lib_serial # build serial library with ZMQ support + % make lib_parallel zmq=no # build parallel lib with no ZMQ support + % make lib_serial zmq=no # build serial lib with no ZMQ support + +2. Copy the produced cslib/src/libcsmpi.a or libscnompi.a file to + cslib/src/libmessage.a + +3. Copy either lib/message/Makefile.lammps.zmq or Makefile.lammps.nozmq + to lib/message/Makefile.lammps, depending on whether you + build the library with ZMQ support or not. + If your ZMQ library is not in a place your shell path finds, + you can set the INCLUDE and PATH variables in Makefile.lammps + to point to the dirs where the ZMQ include and library files are. + +----------------- + +When these steps are complete you can build LAMMPS +with the MESSAGAE package installed: + +% cd lammps/src +% make yes-message +% make mpi (or whatever target you wish) + +Note that if you download and unpack a new LAMMPS tarball, you will +need to re-build the CSlib in this dir. diff --git a/lib/message/cslib/LICENSE b/lib/message/cslib/LICENSE new file mode 100644 index 0000000000..7a36e21daf --- /dev/null +++ b/lib/message/cslib/LICENSE @@ -0,0 +1,32 @@ +Program: CSlib client/server coupling library + +Copyright 2018 National Technology & Engineering Solutions of Sandia, +LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the +U.S. Government retains certain rights in this software. This +software is distributed under the modified Berkeley Software +Distribution (BSD) License. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of Sandia Corporation nor the names of contributors + to this software may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/lib/message/cslib/README b/lib/message/cslib/README new file mode 100644 index 0000000000..37f4a97d54 --- /dev/null +++ b/lib/message/cslib/README @@ -0,0 +1,23 @@ +This is the the Client/Server messaging library (CSlib). + +Only the source directory and license file are included here as part +of the LAMMPS distribution. The full CSlib distribution, including +documentation and test codes, can be found at the website: +http://cslib.sandia.gov (as of Aug 2018). + +The contact author is + +Steve Plimpton +Sandia National Laboratories +sjplimp@sandia.gov +http://www.sandia.gov/~sjplimp + +The CSlib is distributed as open-source code under the modified +Berkeley Software Distribution (BSD) License. See the accompanying +LICENSE file. + +This directory contains the following: + +README this file +LICENSE GNU LGPL license +src source files for library diff --git a/lib/message/cslib/src/Makefile b/lib/message/cslib/src/Makefile new file mode 100644 index 0000000000..83cf902220 --- /dev/null +++ b/lib/message/cslib/src/Makefile @@ -0,0 +1,107 @@ +# Makefile for CSlib = client/server messaging library +# type "make help" for options + +SHELL = /bin/sh + +# ---------------------------------------- +# should only need to change this section +# compiler/linker settings +# ---------------------------------------- + +CC = g++ +CCFLAGS = -g -O3 -DZMQ_$(ZMQ) -DMPI_$(MPI) +SHFLAGS = -fPIC +ARCHIVE = ar +ARCHFLAGS = -rc +SHLIBFLAGS = -shared + +# files + +LIB = libcsmpi.a +SHLIB = libcsmpi.so +SRC = $(wildcard *.cpp) +INC = $(wildcard *.h) +OBJ = $(SRC:.cpp=.o) + +# build with ZMQ support or not + +zmq = yes +ZMQ = $(shell echo $(zmq) | tr a-z A-Z) + +ifeq ($(ZMQ),YES) + ZMQLIB = -lzmq +else + CCFLAGS += -I./STUBS_ZMQ +endif + +# build with MPI support or not + +mpi = yes +MPI = $(shell echo $(mpi) | tr a-z A-Z) + +ifeq ($(MPI),YES) + CC = mpicxx +else + CCFLAGS += -I./STUBS_MPI + LIB = libcsnompi.a + SHLIB = libcsnompi.so +endif + +# targets + +shlib: shlib_parallel shlib_serial + +lib: lib_parallel lib_serial + +all: shlib lib + +help: + @echo 'make default = shlib' + @echo 'make shlib build 2 shared CSlibs: parallel & serial' + @echo 'make lib build 2 static CSlibs: parallel & serial' + @echo 'make all build 4 CSlibs: shlib and lib' + @echo 'make shlib_parallel build shared parallel CSlib' + @echo 'make shlib_serial build shared serial CSlib' + @echo 'make lib_parallel build static parallel CSlib' + @echo 'make lib_serial build static serial CSlib' + @echo 'make ... zmq=no build w/out ZMQ support' + @echo 'make clean remove all *.o files' + @echo 'make clean-all remove *.o and lib files' + @echo 'make tar create a tarball, 2 levels up' + +shlib_parallel: + $(MAKE) clean + $(MAKE) shared zmq=$(zmq) mpi=yes + +shlib_serial: + $(MAKE) clean + $(MAKE) shared zmq=$(zmq) mpi=no + +lib_parallel: + $(MAKE) clean + $(MAKE) static zmq=$(zmq) mpi=yes + +lib_serial: + $(MAKE) clean + $(MAKE) static zmq=$(zmq) mpi=no + +static: $(OBJ) + $(ARCHIVE) $(ARCHFLAGS) $(LIB) $(OBJ) + +shared: $(OBJ) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) -o $(SHLIB) $(OBJ) $(ZMQLIB) + +clean: + @rm -f *.o *.pyc + +clean-all: + @rm -f *.o *.pyc lib*.a lib*.so + +tar: + cd ../..; tar cvf cslib.tar cslib/README cslib/LICENSE \ + cslib/doc cslib/src cslib/test + +# rules + +%.o:%.cpp + $(CC) $(CCFLAGS) $(SHFLAGS) -c $< diff --git a/lib/message/cslib/src/STUBS_MPI/mpi.h b/lib/message/cslib/src/STUBS_MPI/mpi.h new file mode 100644 index 0000000000..2919e4c3a2 --- /dev/null +++ b/lib/message/cslib/src/STUBS_MPI/mpi.h @@ -0,0 +1,96 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +// MPI constants and dummy functions + +#ifndef MPI_DUMMY_H +#define MPI_DUMMY_H + +#include +#include +#include + +namespace CSLIB_NS { + +typedef int MPI_Comm; +typedef int MPI_Fint; +typedef int MPI_Datatype; +typedef int MPI_Status; +typedef int MPI_Op; +typedef int MPI_Info; + +#define MPI_COMM_WORLD 0 +#define MPI_MAX_PORT_NAME 0 +#define MPI_INFO_NULL 0 +#define MPI_INT 1 +#define MPI_LONG_LONG 2 +#define MPI_FLOAT 3 +#define MPI_DOUBLE 4 +#define MPI_CHAR 5 +#define MPI_SUM 0 + +static void MPI_Init(int *, char ***) {} +static MPI_Comm MPI_Comm_f2c(MPI_Comm world) {return world;} +static void MPI_Comm_rank(MPI_Comm, int *) {} +static void MPI_Comm_size(MPI_Comm, int *) {} + +static void MPI_Open_port(MPI_Info, char *) {} +static void MPI_Close_port(const char *) {} +static void MPI_Comm_accept(const char *, MPI_Info, int, + MPI_Comm, MPI_Comm *) {} +static void MPI_Comm_connect(const char *, MPI_Info, int, + MPI_Comm, MPI_Comm *) {} + +static void MPI_Comm_split(MPI_Comm, int, int, MPI_Comm *) {} +static void MPI_Comm_free(MPI_Comm *) {} + +static void MPI_Send(const void *, int, MPI_Datatype, int, int, MPI_Comm) {} +static void MPI_Recv(void *, int, MPI_Datatype, int, int, + MPI_Comm, MPI_Status *) {} + +static void MPI_Allreduce(const void *in, void *out, int, MPI_Datatype type, + MPI_Op op, MPI_Comm) +{ + if (type == MPI_INT) *((int *) out) = *((int *) in); +} +static void MPI_Scan(const void *in, void *out, int, MPI_Datatype intype, + MPI_Op op,MPI_Comm) +{ + if (intype == MPI_INT) *((int *) out) = *((int *) in); +} + +static void MPI_Bcast(void *, int, MPI_Datatype, int, MPI_Comm) {} +static void MPI_Allgather(const void *in, int incount, MPI_Datatype intype, + void *out, int, MPI_Datatype, MPI_Comm) +{ + // assuming incount = 1 + if (intype == MPI_INT) *((int *) out) = *((int *) in); +} +static void MPI_Allgatherv(const void *in, int incount, MPI_Datatype intype, + void *out, const int *, const int *, + MPI_Datatype, MPI_Comm) +{ + if (intype == MPI_INT) memcpy(out,in,incount*sizeof(int)); + else if (intype == MPI_LONG_LONG) memcpy(out,in,incount*sizeof(int64_t)); + else if (intype == MPI_FLOAT) memcpy(out,in,incount*sizeof(float)); + else if (intype == MPI_DOUBLE) memcpy(out,in,incount*sizeof(double)); + else if (intype == MPI_CHAR) memcpy(out,in,incount*sizeof(char)); +} + +static void MPI_Abort(MPI_Comm, int) {exit(1);} +static void MPI_Finalize() {} + +} + +#endif diff --git a/lib/message/cslib/src/STUBS_ZMQ/zmq.h b/lib/message/cslib/src/STUBS_ZMQ/zmq.h new file mode 100644 index 0000000000..2f02eb4035 --- /dev/null +++ b/lib/message/cslib/src/STUBS_ZMQ/zmq.h @@ -0,0 +1,36 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +// ZMQ constants and dummy functions + +#ifndef ZMQ_DUMMY_H +#define ZMQ_DUMMY_H + +namespace CSLIB_NS { + +#define ZMQ_REQ 0 +#define ZMQ_REP 0 + +static void *zmq_ctx_new() {return NULL;} +static void *zmq_connect(void *, char *) {return NULL;} +static int zmq_bind(void *, char *) {return 0;} +static void *zmq_socket(void *,int) {return NULL;} +static void zmq_close(void *) {} +static void zmq_ctx_destroy(void *) {} +static void zmq_send(void *, void *, int, int) {} +static void zmq_recv(void *, void *, int, int) {} + +}; + +#endif diff --git a/lib/message/cslib/src/cslib.cpp b/lib/message/cslib/src/cslib.cpp new file mode 100644 index 0000000000..874333607e --- /dev/null +++ b/lib/message/cslib/src/cslib.cpp @@ -0,0 +1,768 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include + +#include "cslib.h" +#include "msg_file.h" +#include "msg_zmq.h" +#include "msg_mpi_one.h" +#include "msg_mpi_two.h" + +using namespace CSLIB_NS; + +#define MAXTYPE 5 // # of defined field data types + +/* ---------------------------------------------------------------------- */ + +CSlib::CSlib(int csflag, const char *mode, const void *ptr, const void *pcomm) +{ + if (pcomm) myworld = (uint64_t) *((MPI_Comm *) pcomm); + else myworld = 0; + +#ifdef MPI_NO + if (pcomm) + error_all("constructor(): CSlib invoked with MPI_Comm " + "but built w/out MPI support"); +#endif +#ifdef MPI_YES // NOTE: this could be OK to allow ?? + // would allow a parallel app to invoke CSlib + // in parallel and/or in serial + if (!pcomm) + error_all("constructor(): CSlib invoked w/out MPI_Comm " + "but built with MPI support"); +#endif + + client = server = 0; + if (csflag == 0) client = 1; + else if (csflag == 1) server = 1; + else error_all("constructor(): Invalid client/server arg"); + + if (pcomm == NULL) { + me = 0; + nprocs = 1; + + if (strcmp(mode,"file") == 0) msg = new MsgFile(csflag,ptr); + else if (strcmp(mode,"zmq") == 0) msg = new MsgZMQ(csflag,ptr); + else if (strcmp(mode,"mpi/one") == 0) + error_all("constructor(): No mpi/one mode for serial lib usage"); + else if (strcmp(mode,"mpi/two") == 0) + error_all("constructor(): No mpi/two mode for serial lib usage"); + else error_all("constructor(): Unknown mode"); + + } else if (pcomm) { + MPI_Comm world = (MPI_Comm) myworld; + MPI_Comm_rank(world,&me); + MPI_Comm_size(world,&nprocs); + + if (strcmp(mode,"file") == 0) msg = new MsgFile(csflag,ptr,world); + else if (strcmp(mode,"zmq") == 0) msg = new MsgZMQ(csflag,ptr,world); + else if (strcmp(mode,"mpi/one") == 0) msg = new MsgMPIOne(csflag,ptr,world); + else if (strcmp(mode,"mpi/two") == 0) msg = new MsgMPITwo(csflag,ptr,world); + else error_all("constructor(): Unknown mode"); + } + + maxfield = 0; + fieldID = fieldtype = fieldlen = fieldoffset = NULL; + maxheader = 0; + header = NULL; + maxbuf = 0; + buf = NULL; + + recvcounts = displs = NULL; + maxglobal = 0; + allids = NULL; + maxfieldbytes = 0; + fielddata = NULL; + + pad = "\0\0\0\0\0\0\0"; // just length 7 since will have trailing NULL + + nsend = nrecv = 0; +} + +/* ---------------------------------------------------------------------- */ + +CSlib::~CSlib() +{ + deallocate_fields(); + sfree(header); + sfree(buf); + + sfree(recvcounts); + sfree(displs); + sfree(allids); + sfree(fielddata); + + delete msg; +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::send(int msgID_caller, int nfield_caller) +{ + if (nfield_caller < 0) error_all("send(): Invalid nfield"); + + msgID = msgID_caller; + nfield = nfield_caller; + allocate_fields(); + + fieldcount = 0; + nbuf = 0; + + if (fieldcount == nfield) send_message(); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_int(int id, int value) +{ + pack(id,1,1,&value); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_int64(int id, int64_t value) +{ + pack(id,2,1,&value); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_float(int id, float value) +{ + pack(id,3,1,&value); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_double(int id, double value) +{ + pack(id,4,1,&value); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_string(int id, char *value) +{ + pack(id,5,strlen(value)+1,value); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack(int id, int ftype, int flen, void *data) +{ + if (find_field(id,fieldcount) >= 0) + error_all("pack(): Reuse of field ID"); + if (ftype < 1 || ftype > MAXTYPE) error_all("pack(): Invalid ftype"); + if (flen < 0) error_all("pack(): Invalid flen"); + + fieldID[fieldcount] = id; + fieldtype[fieldcount] = ftype; + fieldlen[fieldcount] = flen; + + int nbytes,nbytesround; + onefield(ftype,flen,nbytes,nbytesround); + + memcpy(&buf[nbuf],data,nbytes); + memcpy(&buf[nbuf+nbytes],pad,nbytesround-nbytes); + nbuf += nbytesround; + + fieldcount++; + if (fieldcount == nfield) send_message(); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::pack_parallel(int id, int ftype, + int nlocal, int *ids, int nper, void *data) +{ + int i,j,k,m; + + if (find_field(id,fieldcount) >= 0) + error_all("pack_parallel(): Reuse of field ID"); + if (ftype < 1 || ftype > MAXTYPE) error_all("pack_parallel(): Invalid ftype"); + if (nlocal < 0) error_all("pack_parallel(): Invalid nlocal"); + if (nper < 1) error_all("pack_parallel(): Invalid nper"); + + MPI_Comm world = (MPI_Comm) myworld; + + // NOTE: check for overflow of maxglobal and flen + + int nglobal; + MPI_Allreduce(&nlocal,&nglobal,1,MPI_INT,MPI_SUM,world); + int flen = nper*nglobal; + + fieldID[fieldcount] = id; + fieldtype[fieldcount] = ftype; + fieldlen[fieldcount] = flen; + + // nlocal datums, each of nper length, from all procs + // final data in buf = datums for all natoms, ordered by ids + + if (recvcounts == NULL) { + recvcounts = (int *) smalloc(nprocs*sizeof(int)); + displs = (int *) smalloc(nprocs*sizeof(int)); + } + + MPI_Allgather(&nlocal,1,MPI_INT,recvcounts,1,MPI_INT,world); + + displs[0] = 0; + for (int iproc = 1; iproc < nprocs; iproc++) + displs[iproc] = displs[iproc-1] + recvcounts[iproc-1]; + + if (ids && nglobal > maxglobal) { + sfree(allids); + maxglobal = nglobal; + // NOTE: maxglobal*sizeof(int) could overflow int + allids = (int *) smalloc(maxglobal*sizeof(int)); + } + + MPI_Allgatherv(ids,nlocal,MPI_INT,allids, + recvcounts,displs,MPI_INT,world); + + int nlocalsize = nper*nlocal; + MPI_Allgather(&nlocalsize,1,MPI_INT,recvcounts,1,MPI_INT,world); + + displs[0] = 0; + for (int iproc = 1; iproc < nprocs; iproc++) + displs[iproc] = displs[iproc-1] + recvcounts[iproc-1]; + + int nbytes,nbytesround; + onefield(ftype,flen,nbytes,nbytesround); + + if (ftype == 1) { + int *alldata; + if (ids) { + if (nbytes > maxfieldbytes) { + sfree(fielddata); + maxfieldbytes = nbytes; + fielddata = (char *) smalloc(maxfieldbytes); + } + alldata = (int *) fielddata; + } else alldata = (int *) &buf[nbuf]; + MPI_Allgatherv(data,nlocalsize,MPI_INT,alldata, + recvcounts,displs,MPI_INT,world); + if (ids) { + int *bufptr = (int *) &buf[nbuf]; + m = 0; + for (i = 0; i < nglobal; i++) { + j = (allids[i]-1) * nper; + if (nper == 1) bufptr[j] = alldata[m++]; + else + for (k = 0; k < nper; k++) + bufptr[j++] = alldata[m++]; + } + } + + } else if (ftype == 2) { + int64_t *alldata; + if (ids) { + if (nbytes > maxfieldbytes) { + sfree(fielddata); + maxfieldbytes = nbytes; + fielddata = (char *) smalloc(maxfieldbytes); + } + alldata = (int64_t *) fielddata; + } else alldata = (int64_t *) &buf[nbuf]; + // NOTE: may be just MPI_LONG on some machines + MPI_Allgatherv(data,nlocalsize,MPI_LONG_LONG,alldata, + recvcounts,displs,MPI_LONG_LONG,world); + if (ids) { + int64_t *bufptr = (int64_t *) &buf[nbuf]; + m = 0; + for (i = 0; i < nglobal; i++) { + j = (allids[i]-1) * nper; + if (nper == 1) bufptr[j] = alldata[m++]; + else + for (k = 0; k < nper; k++) + bufptr[j++] = alldata[m++]; + } + } + + } else if (ftype == 3) { + float *alldata; + if (ids) { + if (nbytes > maxfieldbytes) { + sfree(fielddata); + maxfieldbytes = nbytes; + fielddata = (char *) smalloc(maxfieldbytes); + } + alldata = (float *) fielddata; + } else alldata = (float *) &buf[nbuf]; + MPI_Allgatherv(data,nlocalsize,MPI_FLOAT,alldata, + recvcounts,displs,MPI_FLOAT,world); + if (ids) { + float *bufptr = (float *) &buf[nbuf]; + m = 0; + for (i = 0; i < nglobal; i++) { + j = (allids[i]-1) * nper; + if (nper == 1) bufptr[j] = alldata[m++]; + else + for (k = 0; k < nper; k++) + bufptr[j++] = alldata[m++]; + } + } + + } else if (ftype == 4) { + double *alldata; + if (ids) { + if (nbytes > maxfieldbytes) { + sfree(fielddata); + maxfieldbytes = nbytes; + fielddata = (char *) smalloc(maxfieldbytes); + } + alldata = (double *) fielddata; + } else alldata = (double *) &buf[nbuf]; + MPI_Allgatherv(data,nlocalsize,MPI_DOUBLE,alldata, + recvcounts,displs,MPI_DOUBLE,world); + if (ids) { + double *bufptr = (double *) &buf[nbuf]; + m = 0; + for (i = 0; i < nglobal; i++) { + j = (allids[i]-1) * nper; + if (nper == 1) bufptr[j] = alldata[m++]; + else + for (k = 0; k < nper; k++) + bufptr[j++] = alldata[m++]; + } + } + + /* eventually ftype = BYTE, but not yet + } else if (ftype == 5) { + char *alldata; + if (ids) { + if (nbytes > maxfieldbytes) { + sfree(fielddata); + maxfieldbytes = nbytes; + fielddata = (char *) smalloc(maxfieldbytes); + } + alldata = (char *) fielddata; + } else alldata = (char *) &buf[nbuf]; + MPI_Allgatherv(data,nlocalsize,MPI_CHAR,alldata, + recvcounts,displs,MPI_CHAR,world); + if (ids) { + char *bufptr = (char *) &buf[nbuf]; + m = 0; + for (i = 0; i < nglobal; i++) { + j = (allids[i]-1) * nper; + memcpy(&bufptr[j],&alldata[m],nper); + m += nper; + } + } + */ + } + + memcpy(&buf[nbuf+nbytes],pad,nbytesround-nbytes); + nbuf += nbytesround; + + fieldcount++; + if (fieldcount == nfield) send_message(); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::send_message() +{ + // setup header message + + int m = 0; + header[m++] = msgID; + header[m++] = nfield; + for (int ifield = 0; ifield < nfield; ifield++) { + header[m++] = fieldID[ifield]; + header[m++] = fieldtype[ifield]; + header[m++] = fieldlen[ifield]; + } + + msg->send(nheader,header,nbuf,buf); + nsend++; +} + +/* ---------------------------------------------------------------------- */ + +int CSlib::recv(int &nfield_caller, int *&fieldID_caller, + int *&fieldtype_caller, int *&fieldlen_caller) +{ + msg->recv(maxheader,header,maxbuf,buf); + nrecv++; + + // unpack header message + + int m = 0; + msgID = header[m++]; + nfield = header[m++]; + allocate_fields(); + + int nbytes,nbytesround; + + nbuf = 0; + for (int ifield = 0; ifield < nfield; ifield++) { + fieldID[ifield] = header[m++]; + fieldtype[ifield] = header[m++]; + fieldlen[ifield] = header[m++]; + fieldoffset[ifield] = nbuf; + onefield(fieldtype[ifield],fieldlen[ifield],nbytes,nbytesround); + nbuf += nbytesround; + } + + // return message parameters + + nfield_caller = nfield; + fieldID_caller = fieldID; + fieldtype_caller = fieldtype; + fieldlen_caller = fieldlen; + + return msgID; +} + +/* ---------------------------------------------------------------------- */ + +int CSlib::unpack_int(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_int(): Unknown field ID"); + if (fieldtype[ifield] != 1) error_all("unpack_int(): Mis-match of ftype"); + if (fieldlen[ifield] != 1) error_all("unpack_int(): Flen is not 1"); + + int *ptr = (int *) unpack(id); + return *ptr; +} + +/* ---------------------------------------------------------------------- */ + +int64_t CSlib::unpack_int64(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_int64(): Unknown field ID"); + if (fieldtype[ifield] != 2) error_all("unpack_int64(): Mis-match of ftype"); + if (fieldlen[ifield] != 1) error_all("unpack_int64(): Flen is not 1"); + + int64_t *ptr = (int64_t *) unpack(id); + return *ptr; +} + +/* ---------------------------------------------------------------------- */ + +float CSlib::unpack_float(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_float(): Unknown field ID"); + if (fieldtype[ifield] != 3) error_all("unpack_float(): Mis-match of ftype"); + if (fieldlen[ifield] != 1) error_all("unpack_float(): Flen is not 1"); + + float *ptr = (float *) unpack(id); + return *ptr; +} + +/* ---------------------------------------------------------------------- */ + +double CSlib::unpack_double(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_double(): Unknown field ID"); + if (fieldtype[ifield] != 4) error_all("unpack_double(): Mis-match of ftype"); + if (fieldlen[ifield] != 1) error_all("unpack_double(): Flen is not 1"); + + double *ptr = (double *) unpack(id); + return *ptr; +} + +/* ---------------------------------------------------------------------- */ + +char *CSlib::unpack_string(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_string(): Unknown field ID"); + if (fieldtype[ifield] != 5) error_all("unpack_string(): Mis-match of ftype"); + + char *ptr = (char *) unpack(id); + return ptr; +} + +/* ---------------------------------------------------------------------- */ + +void *CSlib::unpack(int id) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack(): Unknown field ID"); + return &buf[fieldoffset[ifield]]; +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::unpack(int id, void *data) +{ + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack(): Unknown field ID"); + + int ftype = fieldtype[ifield]; + int nbytes = fieldlen[ifield]; + if (ftype == 1) nbytes *= sizeof(int); + else if (ftype == 2) nbytes *= sizeof(int64_t); + else if (ftype == 3) nbytes *= sizeof(float); + else if (ftype == 4) nbytes *= sizeof(double); + memcpy(data,&buf[fieldoffset[ifield]],nbytes); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::unpack_parallel(int id, int nlocal, int *ids, int nper, void *data) +{ + int i,j,k,m; + + int ifield = find_field(id,nfield); + if (ifield < 0) error_all("unpack_parallel(): Unknown field ID"); + if (nlocal < 0) error_all("unpack_parallel(): Invalid nlocal"); + if (nper < 1) error_all("pack_parallel(): Invalid nper"); + + MPI_Comm world = (MPI_Comm) myworld; + + int upto; + if (!ids) { + MPI_Scan(&nlocal,&upto,1,MPI_INT,MPI_SUM,world); + upto -= nlocal; + } + + if (fieldtype[ifield] == 1) { + int *local = (int *) data; + int *global = (int *) &buf[fieldoffset[ifield]]; + if (!ids) memcpy(local,&global[nper*upto],nper*nlocal*sizeof(int)); + else { + m = 0; + for (i = 0; i < nlocal; i++) { + j = (ids[i]-1) * nper; + if (nper == 1) local[m++] = global[j]; + else + for (k = 0; k < nper; k++) + local[m++] = global[j++]; + } + } + + } else if (fieldtype[ifield] == 2) { + int64_t *local = (int64_t *) data; + int64_t *global = (int64_t *) &buf[fieldoffset[ifield]]; + if (!ids) memcpy(local,&global[nper*upto],nper*nlocal*sizeof(int64_t)); + else { + m = 0; + for (i = 0; i < nlocal; i++) { + j = (ids[i]-1) * nper; + if (nper == 1) local[m++] = global[j]; + else + for (k = 0; k < nper; k++) + local[m++] = global[j++]; + } + } + + } else if (fieldtype[ifield] == 3) { + float *local = (float *) data; + float *global = (float *) &buf[fieldoffset[ifield]]; + if (!ids) memcpy(local,&global[nper*upto],nper*nlocal*sizeof(float)); + else { + m = 0; + for (i = 0; i < nlocal; i++) { + j = (ids[i]-1) * nper; + if (nper == 1) local[m++] = global[j]; + else + for (k = 0; k < nper; k++) + local[m++] = global[j++]; + } + } + + } else if (fieldtype[ifield] == 4) { + double *local = (double *) data; + double *global = (double *) &buf[fieldoffset[ifield]]; + if (!ids) memcpy(local,&global[nper*upto],nper*nlocal*sizeof(double)); + else { + m = 0; + for (i = 0; i < nlocal; i++) { + j = (ids[i]-1) * nper; + if (nper == 1) local[m++] = global[j]; + else + for (k = 0; k < nper; k++) + local[m++] = global[j++]; + } + } + + /* eventually ftype = BYTE, but not yet + } else if (fieldtype[ifield] == 5) { + char *local = (char *) data; + char *global = (char *) &buf[fieldoffset[ifield]]; + if (!ids) memcpy(local,&global[nper*upto],nper*nlocal*sizeof(char)); + else { + m = 0; + for (i = 0; i < nlocal; i++) { + j = (ids[i]-1) * nper; + memcpy(&local[m],&global[j],nper); + m += nper; + } + } + */ + } +} + +/* ---------------------------------------------------------------------- */ + +int CSlib::extract(int flag) +{ + if (flag == 1) return nsend; + if (flag == 2) return nrecv; + error_all("extract(): Invalid flag"); + return 0; +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::onefield(int ftype, int flen, int &nbytes, int &nbytesround) +{ + int64_t bigbytes,bigbytesround; + int64_t biglen = flen; + + if (ftype == 1) bigbytes = biglen * sizeof(int); + else if (ftype == 2) bigbytes = biglen * sizeof(int64_t); + else if (ftype == 3) bigbytes = biglen * sizeof(float); + else if (ftype == 4) bigbytes = biglen * sizeof(double); + else if (ftype == 5) bigbytes = biglen * sizeof(char); + bigbytesround = roundup(bigbytes,8); + + if (nbuf + bigbytesround > INT_MAX) + error_all("pack(): Message size exceeds 32-bit integer limit"); + + nbytes = (int) bigbytes; + nbytesround = (int) bigbytesround; + if (nbuf + nbytesround > maxbuf) { + maxbuf = nbuf + nbytesround; + buf = (char *) srealloc(buf,maxbuf); + } +} + +/* ---------------------------------------------------------------------- */ + +int CSlib::find_field(int id, int n) +{ + int ifield; + for (ifield = 0; ifield < n; ifield++) + if (id == fieldID[ifield]) return ifield; + return -1; +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::allocate_fields() +{ + int64_t bigbytes = (2 + 3*((int64_t) nfield)) * sizeof(int); + if (bigbytes > INT_MAX) + error_all("send(): Message header size exceeds 32-bit integer limit"); + + nheader = 2; + nheader += 3 * nfield; + + if (nfield > maxfield) { + deallocate_fields(); + maxfield = nfield; + fieldID = new int[maxfield]; + fieldtype = new int[maxfield]; + fieldlen = new int[maxfield]; + fieldoffset = new int[maxfield]; + } + + if (nheader > maxheader) { + sfree(header); + maxheader = nheader; + header = (int *) smalloc(maxheader*sizeof(int)); + } +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::deallocate_fields() +{ + delete [] fieldID; + delete [] fieldtype; + delete [] fieldlen; + delete [] fieldoffset; +} + +/* ---------------------------------------------------------------------- */ + +void *CSlib::smalloc(int nbytes) +{ + if (nbytes == 0) return NULL; + void *ptr = malloc(nbytes); + if (ptr == NULL) { + char str[128]; + sprintf(str,"malloc(): Failed to allocate %d bytes",nbytes); + error_one(str); + } + return ptr; +} + +/* ---------------------------------------------------------------------- */ + +void *CSlib::srealloc(void *ptr, int nbytes) +{ + if (nbytes == 0) { + sfree(ptr); + return NULL; + } + + ptr = realloc(ptr,nbytes); + if (ptr == NULL) { + char str[128]; + sprintf(str,"realloc(): Failed to reallocate %d bytes",nbytes); + error_one(str); + } + return ptr; +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::sfree(void *ptr) +{ + if (ptr == NULL) return; + free(ptr); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::error_all(const char *str) +{ + if (me == 0) printf("CSlib ERROR: %s\n",str); + MPI_Comm world = (MPI_Comm) myworld; + MPI_Abort(world,1); +} + +/* ---------------------------------------------------------------------- */ + +void CSlib::error_one(const char *str) +{ + printf("CSlib ERROR: %s\n",str); + MPI_Comm world = (MPI_Comm) myworld; + MPI_Abort(world,1); +} + +/* ---------------------------------------------------------------------- + round N up to multiple of nalign and return it + NOTE: see mapreduce/src/keyvalue.cpp for doing this as uint64_t +------------------------------------------------------------------------- */ + +int64_t CSlib::roundup(int64_t n, int nalign) +{ + if (n % nalign == 0) return n; + n = (n/nalign + 1) * nalign; + return n; +} diff --git a/lib/message/cslib/src/cslib.h b/lib/message/cslib/src/cslib.h new file mode 100644 index 0000000000..b4da968026 --- /dev/null +++ b/lib/message/cslib/src/cslib.h @@ -0,0 +1,87 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef CSLIB_H +#define CSLIB_H + +#include + +namespace CSLIB_NS { + +class CSlib { + public: + int nsend,nrecv; + + CSlib(int, const char *, const void *, const void *); + ~CSlib(); + + void send(int, int); + + void pack_int(int, int); + void pack_int64(int, int64_t); + void pack_float(int, float); + void pack_double(int, double); + void pack_string(int, char *); + void pack(int, int, int, void *); + void pack_parallel(int, int, int, int *, int, void *); + + int recv(int &, int *&, int *&, int *&); + + int unpack_int(int); + int64_t unpack_int64(int); + float unpack_float(int); + double unpack_double(int); + char *unpack_string(int); + void *unpack(int); + void unpack(int, void *); + void unpack_parallel(int, int, int *, int, void *); + + int extract(int); + + private: + uint64_t myworld; // really MPI_Comm, but avoids use of mpi.h in this file + // so apps can include this file w/ no MPI on system + int me,nprocs; + int client,server; + int nfield,maxfield; + int msgID,fieldcount; + int nheader,maxheader; + int nbuf,maxbuf; + int maxglobal,maxfieldbytes; + int *fieldID,*fieldtype,*fieldlen,*fieldoffset; + int *header; + int *recvcounts,*displs; // nprocs size for Allgathers + int *allids; // nglobal size for pack_parallel() + char *buf; // maxbuf size for msg with all fields + char *fielddata; // maxfieldbytes size for one global field + const char *pad; + + class Msg *msg; + + void send_message(); + void onefield(int, int, int &, int &); + int find_field(int, int); + void allocate_fields(); + void deallocate_fields(); + int64_t roundup(int64_t, int); + void *smalloc(int); + void *srealloc(void *, int); + void sfree(void *); + void error_all(const char *); + void error_one(const char *); +}; + +} + +#endif diff --git a/lib/message/cslib/src/cslib.py b/lib/message/cslib/src/cslib.py new file mode 100644 index 0000000000..0ba3516255 --- /dev/null +++ b/lib/message/cslib/src/cslib.py @@ -0,0 +1,362 @@ +# ------------------------------------------------------------------------ +# CSlib - Client/server library for code coupling +# http://cslib.sandia.gov, Sandia National Laboratories +# Steve Plimpton, sjplimp@sandia.gov +# +# Copyright 2018 National Technology & Engineering Solutions of +# Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with +# NTESS, the U.S. Government retains certain rights in this software. +# This software is distributed under the modified Berkeley Software +# Distribution (BSD) License. +# +# See the README file in the top-level CSlib directory. +# ------------------------------------------------------------------------- + +# Python wrapper on CSlib library via ctypes + +# ctypes and Numpy data types: +# 32-bit int = c_int = np.intc = np.int32 +# 64-bit int = c_longlong = np.int64 +# 32-bit floating point = c_float = np.float32 +# 64-bit floating point = c_double = np.float = np.float64 + +import sys,traceback +from ctypes import * + +# Numpy and mpi4py packages may not exist + +try: + import numpy as np + numpyflag = 1 +except: + numpyflag = 0 + +try: + from mpi4py import MPI + mpi4pyflag = 1 +except: + mpi4pyflag = 0 + +# wrapper class + +class CSlib: + + # instantiate CSlib thru its C-interface + + def __init__(self,csflag,mode,ptr,comm): + + # load libcslib.so + + try: + if comm: self.lib = CDLL("libcsmpi.so",RTLD_GLOBAL) + else: self.lib = CDLL("libcsnompi.so",RTLD_GLOBAL) + except: + etype,value,tb = sys.exc_info() + traceback.print_exception(etype,value,tb) + raise OSError,"Could not load CSlib dynamic library" + + # define ctypes API for each library method + + self.lib.cslib_open.argtypes = [c_int,c_char_p,c_void_p,c_void_p, + POINTER(c_void_p)] + self.lib.cslib_open.restype = None + + self.lib.cslib_close.argtypes = [c_void_p] + self.lib.cslib_close.restype = None + + self.lib.cslib_send.argtypes = [c_void_p,c_int,c_int] + self.lib.cslib_send.restype = None + + self.lib.cslib_pack_int.argtypes = [c_void_p,c_int,c_int] + self.lib.cslib_pack_int.restype = None + + self.lib.cslib_pack_int64.argtypes = [c_void_p,c_int,c_longlong] + self.lib.cslib_pack_int64.restype = None + + self.lib.cslib_pack_float.argtypes = [c_void_p,c_int,c_float] + self.lib.cslib_pack_float.restype = None + + self.lib.cslib_pack_double.argtypes = [c_void_p,c_int,c_double] + self.lib.cslib_pack_double.restype = None + + self.lib.cslib_pack_string.argtypes = [c_void_p,c_int,c_char_p] + self.lib.cslib_pack_string.restype = None + + self.lib.cslib_pack.argtypes = [c_void_p,c_int,c_int,c_int,c_void_p] + self.lib.cslib_pack.restype = None + + self.lib.cslib_pack_parallel.argtypes = [c_void_p,c_int,c_int,c_int, + POINTER(c_int),c_int,c_void_p] + self.lib.cslib_pack_parallel.restype = None + + self.lib.cslib_recv.argtypes = [c_void_p,POINTER(c_int), + POINTER(POINTER(c_int)), + POINTER(POINTER(c_int)), + POINTER(POINTER(c_int))] + self.lib.cslib_recv.restype = c_int + + self.lib.cslib_unpack_int.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack_int.restype = c_int + + self.lib.cslib_unpack_int64.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack_int64.restype = c_longlong + + self.lib.cslib_unpack_float.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack_float.restype = c_float + + self.lib.cslib_unpack_double.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack_double.restype = c_double + + self.lib.cslib_unpack_string.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack_string.restype = c_char_p + + # override return in unpack() + self.lib.cslib_unpack.argtypes = [c_void_p,c_int] + self.lib.cslib_unpack.restype = c_void_p + + self.lib.cslib_unpack_data.argtypes = [c_void_p,c_int,c_void_p] + self.lib.cslib_unpack_data.restype = None + + # override last arg in unpack_parallel() + self.lib.cslib_unpack_parallel.argtypes = [c_void_p,c_int,c_int, + POINTER(c_int),c_int,c_void_p] + self.lib.cslib_unpack_parallel.restype = None + + self.lib.cslib_extract.argtypes = [c_void_p,c_int] + self.lib.cslib_extract.restype = c_int + + # create an instance of CSlib with or w/out MPI communicator + + self.cs = c_void_p() + + if not comm: + self.lib.cslib_open(csflag,mode,ptr,None,byref(self.cs)) + elif not mpi4pyflag: + print "Cannot pass MPI communicator to CSlib w/out mpi4py package" + sys.exit() + else: + address = MPI._addressof(comm) + comm_ptr = c_void_p(address) + if mode == "mpi/one": + address = MPI._addressof(ptr) + ptrcopy = c_void_p(address) + else: ptrcopy = ptr + self.lib.cslib_open(csflag,mode,ptrcopy,comm_ptr,byref(self.cs)) + + # destroy instance of CSlib + + def __del__(self): + if self.cs: self.lib.cslib_close(self.cs) + + def close(self): + self.lib.cslib_close(self.cs) + self.lib = None + + # send a message + + def send(self,msgID,nfield): + self.nfield = nfield + self.lib.cslib_send(self.cs,msgID,nfield) + + # pack one field of message + + def pack_int(self,id,value): + self.lib.cslib_pack_int(self.cs,id,value) + + def pack_int64(self,id,value): + self.lib.cslib_pack_int64(self.cs,id,value) + + def pack_float(self,id,value): + self.lib.cslib_pack_float(self.cs,id,value) + + def pack_double(self,id,value): + self.lib.cslib_pack_double(self.cs,id,value) + + def pack_string(self,id,value): + self.lib.cslib_pack_string(self.cs,id,value) + + def pack(self,id,ftype,flen,data): + cdata = self.data_convert(ftype,flen,data) + self.lib.cslib_pack(self.cs,id,ftype,flen,cdata) + + def pack_parallel(self,id,ftype,nlocal,ids,nper,data): + cids = self.data_convert(1,nlocal,ids) + cdata = self.data_convert(ftype,nper*nlocal,data) + self.lib.cslib_pack_parallel(self.cs,id,ftype,nlocal,cids,nper,cdata) + + # convert input data to a ctypes vector to pass to CSlib + + def data_convert(self,ftype,flen,data): + + # tflag = type of data + # tflag = 1 if data is list or tuple + # tflag = 2 if data is Numpy array + # tflag = 3 if data is ctypes vector + # same usage of tflag as in unpack function + + txttype = str(type(data)) + if "numpy" in txttype: tflag = 2 + elif "c_" in txttype: tflag = 3 + else: tflag = 1 + + # create ctypes vector out of data to pass to lib + # cdata = ctypes vector to return + # NOTE: error check on ftype and tflag everywhere, also flen + + if ftype == 1: + if tflag == 1: cdata = (flen * c_int)(*data) + elif tflag == 2: cdata = data.ctypes.data_as(POINTER(c_int)) + elif tflag == 3: cdata = data + elif ftype == 2: + if tflag == 1: cdata = (flen * c_longlong)(*data) + elif tflag == 2: cdata = data.ctypes.data_as(POINTER(c_longlong)) + elif tflag == 3: cdata = data + elif ftype == 3: + if tflag == 1: cdata = (flen * c_float)(*data) + elif tflag == 2: cdata = data.ctypes.data_as(POINTER(c_float)) + elif tflag == 3: cdata = data + elif ftype == 4: + if tflag == 1: cdata = (flen * c_double)(*data) + elif tflag == 2: cdata = data.ctypes.data_as(POINTER(c_double)) + elif tflag == 3: cdata = data + + return cdata + + # receive a message + + def recv(self): + self.lib.cslib_recv.restype = c_int + nfield = c_int() + fieldID = POINTER(c_int)() + fieldtype = POINTER(c_int)() + fieldlen = POINTER(c_int)() + msgID = self.lib.cslib_recv(self.cs,byref(nfield), + byref(fieldID),byref(fieldtype),byref(fieldlen)) + + # copy returned C args to native Python int and lists + # store them in class so unpack() methods can access the info + + self.nfield = nfield = nfield.value + self.fieldID = fieldID[:nfield] + self.fieldtype = fieldtype[:nfield] + self.fieldlen = fieldlen[:nfield] + + return msgID,self.nfield,self.fieldID,self.fieldtype,self.fieldlen + + # unpack one field of message + # tflag = type of data to return + # 3 = ctypes vector is default, since no conversion required + + def unpack_int(self,id): + return self.lib.cslib_unpack_int(self.cs,id) + + def unpack_int64(self,id): + return self.lib.cslib_unpack_int64(self.cs,id) + + def unpack_float(self,id): + return self.lib.cslib_unpack_float(self.cs,id) + + def unpack_double(self,id): + return self.lib.cslib_unpack_double(self.cs,id) + + def unpack_string(self,id): + return self.lib.cslib_unpack_string(self.cs,id) + + def unpack(self,id,tflag=3): + index = self.fieldID.index(id) + + # reset data type of return so can morph by tflag + # cannot do this for the generic c_void_p returned by CSlib + + if self.fieldtype[index] == 1: + self.lib.cslib_unpack.restype = POINTER(c_int) + elif self.fieldtype[index] == 2: + self.lib.cslib_unpack.restype = POINTER(c_longlong) + elif self.fieldtype[index] == 3: + self.lib.cslib_unpack.restype = POINTER(c_float) + elif self.fieldtype[index] == 4: + self.lib.cslib_unpack.restype = POINTER(c_double) + #elif self.fieldtype[index] == 5: + # self.lib.cslib_unpack.restype = POINTER(c_char) + + cdata = self.lib.cslib_unpack(self.cs,id) + + # tflag = user-requested type of data to return + # tflag = 1 to return data as list + # tflag = 2 to return data as Numpy array + # tflag = 3 to return data as ctypes vector + # same usage of tflag as in pack functions + # tflag = 2,3 should NOT perform a data copy + + if tflag == 1: + data = cdata[:self.fieldlen[index]] + elif tflag == 2: + if numpyflag == 0: + print "Cannot return Numpy array w/out numpy package" + sys.exit() + data = np.ctypeslib.as_array(cdata,shape=(self.fieldlen[index],)) + elif tflag == 3: + data = cdata + + return data + + # handle data array like pack() or unpack_parallel() ?? + + def unpack_data(self,id,tflag=3): + index = self.fieldID.index(id) + + # unpack one field of message in parallel + # tflag = type of data to return + # 3 = ctypes vector is default, since no conversion required + # NOTE: allow direct use of user array (e.g. Numpy), if user provides data arg? + # as opposed to creating this cdata + # does that make any performance difference ? + # e.g. should we allow CSlib to populate an existing Numpy array's memory + + def unpack_parallel(self,id,nlocal,ids,nper,tflag=3): + cids = self.data_convert(1,nlocal,ids) + + # allocate memory for the returned data + # pass cdata ptr to the memory to CSlib unpack_parallel() + # this resets data type of last unpack_parallel() arg + + index = self.fieldID.index(id) + if self.fieldtype[index] == 1: cdata = (nper*nlocal * c_int)() + elif self.fieldtype[index] == 2: cdata = (nlocal*nper * c_longlong)() + elif self.fieldtype[index] == 3: cdata = (nlocal*nper * c_float)() + elif self.fieldtype[index] == 4: cdata = (nlocal*nper * c_double)() + #elif self.fieldtype[index] == 5: cdata = (nlocal*nper * c_char)() + + self.lib.cslib_unpack_parallel(self.cs,id,nlocal,cids,nper,cdata) + + # tflag = user-requested type of data to return + # tflag = 1 to return data as list + # tflag = 2 to return data as Numpy array + # tflag = 3 to return data as ctypes vector + # same usage of tflag as in pack functions + + if tflag == 1: + data = cdata[:nper*nlocal] + elif tflag == 2: + if numpyflag == 0: + print "Cannot return Numpy array w/out numpy package" + sys.exit() + # NOTE: next line gives ctypes warning for fieldtype = 2 = 64-bit int + # not sure why, reported as bug between ctypes and Numpy here: + # https://stackoverflow.com/questions/4964101/pep-3118- + # warning-when-using-ctypes-array-as-numpy-array + # but why not same warning when just using unpack() ?? + # in Python these lines give same warning: + # >>> import ctypes,numpy + # >>> a = (10 * ctypes.c_longlong)() + # >>> b = numpy.ctypeslib.as_array(a) + data = np.ctypeslib.as_array(cdata,shape=(nlocal*nper,)) + elif tflag == 3: + data = cdata + + return data + + # extract a library value + + def extract(self,flag): + return self.lib.cslib_extract(self.cs,flag) diff --git a/lib/message/cslib/src/cslib_wrap.cpp b/lib/message/cslib/src/cslib_wrap.cpp new file mode 100644 index 0000000000..c2d69eaf0d --- /dev/null +++ b/lib/message/cslib/src/cslib_wrap.cpp @@ -0,0 +1,239 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +// C style library interface to CSlib class + +#include +#include +#include +#include +#include + +#include "cslib_wrap.h" +#include "cslib.h" + +using namespace CSLIB_NS; + +// ---------------------------------------------------------------------- + +void cslib_open(int csflag, const char *mode, const void *ptr, + const void *pcomm, void **csptr) +{ + CSlib *cs = new CSlib(csflag,mode,ptr,pcomm); + *csptr = (void *) cs; +} + +// ---------------------------------------------------------------------- + +void cslib_open_fortran(int csflag, const char *mode, const char *str, + const void *pcomm, void **csptr) +{ + MPI_Comm ccomm; + void *pccomm = NULL; + + if (pcomm) { + MPI_Fint *fcomm = (MPI_Fint *) pcomm; + ccomm = MPI_Comm_f2c(*fcomm); + pccomm = &ccomm; + } + + CSlib *cs = new CSlib(csflag,mode,str,pccomm); + *csptr = (void *) cs; +} + +// ---------------------------------------------------------------------- + +void cslib_open_fortran_mpi_one(int csflag, const char *mode, + const void *pboth, const void *pcomm, + void **csptr) +{ + MPI_Comm ccomm,cboth; + void *pccomm,*pcboth; + + MPI_Fint *fcomm = (MPI_Fint *) pcomm; + ccomm = MPI_Comm_f2c(*fcomm); + pccomm = &ccomm; + + MPI_Fint *fboth = (MPI_Fint *) pboth; + cboth = MPI_Comm_f2c(*fboth); + pcboth = &cboth; + + CSlib *cs = new CSlib(csflag,mode,pcboth,pccomm); + *csptr = (void *) cs; +} + +// ---------------------------------------------------------------------- + +void cslib_close(void *ptr) +{ + CSlib *cs = (CSlib *) ptr; + delete cs; +} + +// ---------------------------------------------------------------------- + +void cslib_send(void *ptr, int msgID, int nfield) +{ + CSlib *cs = (CSlib *) ptr; + cs->send(msgID,nfield); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_int(void *ptr, int id, int value) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_int(id,value); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_int64(void *ptr, int id, int64_t value) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_int64(id,value); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_float(void *ptr, int id, float value) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_float(id,value); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_double(void *ptr, int id, double value) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_double(id,value); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_string(void *ptr, int id, char *value) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_string(id,value); +} + +// ---------------------------------------------------------------------- + +void cslib_pack(void *ptr, int id, int ftype, int flen, void *data) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack(id,ftype,flen,data); +} + +// ---------------------------------------------------------------------- + +void cslib_pack_parallel(void *ptr, int id, int ftype, + int nlocal, int *ids, int nper, void *data) +{ + CSlib *cs = (CSlib *) ptr; + cs->pack_parallel(id,ftype,nlocal,ids,nper,data); +} + +// ---------------------------------------------------------------------- + +int cslib_recv(void *ptr, int *nfield_caller, + int **fieldID_caller, int **fieldtype_caller, + int **fieldlen_caller) +{ + CSlib *cs = (CSlib *) ptr; + + int nfield; + int *fieldID,*fieldtype,*fieldlen; + int msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + + *nfield_caller = nfield; + *fieldID_caller = fieldID; + *fieldtype_caller = fieldtype; + *fieldlen_caller = fieldlen; + + return msgID; +} + +// ---------------------------------------------------------------------- + +int cslib_unpack_int(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack_int(id); +} +// ---------------------------------------------------------------------- + +int64_t cslib_unpack_int64(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack_int64(id); +} + +// ---------------------------------------------------------------------- + +float cslib_unpack_float(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack_float(id); +} + +// ---------------------------------------------------------------------- + +double cslib_unpack_double(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack_double(id); +} + +// ---------------------------------------------------------------------- + +char *cslib_unpack_string(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack_string(id); +} + +// ---------------------------------------------------------------------- + +void *cslib_unpack(void *ptr, int id) +{ + CSlib *cs = (CSlib *) ptr; + return cs->unpack(id); +} + +// ---------------------------------------------------------------------- + +void cslib_unpack_data(void *ptr, int id, void *data) +{ + CSlib *cs = (CSlib *) ptr; + cs->unpack(id,data); +} + +// ---------------------------------------------------------------------- + +void cslib_unpack_parallel(void *ptr, int id, int nlocal, int *ids, + int nper, void *data) +{ + CSlib *cs = (CSlib *) ptr; + cs->unpack_parallel(id,nlocal,ids,nper,data); +} + +// ---------------------------------------------------------------------- + +int cslib_extract(void *ptr, int flag) +{ + CSlib *cs = (CSlib *) ptr; + return cs->extract(flag); +} diff --git a/lib/message/cslib/src/cslib_wrap.f90 b/lib/message/cslib/src/cslib_wrap.f90 new file mode 100644 index 0000000000..cd2e058b78 --- /dev/null +++ b/lib/message/cslib/src/cslib_wrap.f90 @@ -0,0 +1,147 @@ +! ISO_C_binding wrapper on CSlib C interface + +module cslib_wrap + +interface + subroutine cslib_open_fortran(csflag,mode,str,pcomm,ptr) bind(c) + use iso_c_binding + integer(c_int), value :: csflag + character(c_char) :: mode(*),str(*) + type(c_ptr), value :: pcomm + type(c_ptr) :: ptr + end subroutine cslib_open_fortran + + subroutine cslib_open_fortran_mpi_one(csflag,mode,pboth,pcomm,ptr) bind(c) + use iso_c_binding + integer(c_int), value :: csflag + character(c_char) :: mode(*) + type(c_ptr), value :: pboth,pcomm + type(c_ptr) :: ptr + end subroutine cslib_open_fortran_mpi_one + + subroutine cslib_close(ptr) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + end subroutine cslib_close + + subroutine cslib_send(ptr,msgID,nfield) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: msgID,nfield + end subroutine cslib_send + + subroutine cslib_pack_int(ptr,id,value) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id + integer(c_int), value :: value + end subroutine cslib_pack_int + + subroutine cslib_pack_int64(ptr,id,value) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id + integer(c_int64_t), value :: value + end subroutine cslib_pack_int64 + + subroutine cslib_pack_float(ptr,id,value) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id + real(c_float), value :: value + end subroutine cslib_pack_float + + subroutine cslib_pack_double(ptr,id,value) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id + real(c_double), value :: value + end subroutine cslib_pack_double + + subroutine cslib_pack_string(ptr,id,value) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id + character(c_char) :: value(*) + end subroutine cslib_pack_string + + subroutine cslib_pack(ptr,id,ftype,flen,data) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id,ftype,flen + type(c_ptr), value :: data + end subroutine cslib_pack + + subroutine cslib_pack_parallel(ptr,id,ftype,nlocal,ids,nper,data) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id,ftype,nlocal,nper + type(c_ptr), value :: ids,data + end subroutine cslib_pack_parallel + + function cslib_recv(ptr,nfield,fieldID,fieldtype,fieldlen) bind(c) + use iso_c_binding + integer(c_int) :: cslib_recv + type(c_ptr), value :: ptr + integer(c_int) :: nfield + type(c_ptr) :: fieldID,fieldtype,fieldlen + end function cslib_recv + + function cslib_unpack_int(ptr,id) bind(c) + use iso_c_binding + integer(c_int) :: cslib_unpack_int + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack_int + + function cslib_unpack_int64(ptr,id) bind(c) + use iso_c_binding + integer(c_int64_t) :: cslib_unpack_int64 + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack_int64 + + function cslib_unpack_float(ptr,id) bind(c) + use iso_c_binding + real(c_float) :: cslib_unpack_float + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack_float + + function cslib_unpack_double(ptr,id) bind(c) + use iso_c_binding + real(c_double) :: cslib_unpack_double + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack_double + + function cslib_unpack_string(ptr,id) bind(c) + use iso_c_binding + type(c_ptr) :: cslib_unpack_string + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack_string + + function cslib_unpack(ptr,id) bind(c) + use iso_c_binding + type(c_ptr) :: cslib_unpack + type(c_ptr), value :: ptr + integer(c_int), value :: id + end function cslib_unpack + + subroutine cslib_unpack_parallel(ptr,id,nlocal,ids,nper,data) bind(c) + use iso_c_binding + type(c_ptr), value :: ptr + integer(c_int), value :: id,nlocal,nper + type(c_ptr), value :: ids,data + end subroutine cslib_unpack_parallel + + function cslib_extract(ptr,flag) bind(c) + use iso_c_binding + integer(c_int) :: cslib_extract + type(c_ptr), value :: ptr + integer(c_int), value :: flag + end function cslib_extract +end interface + +end module cslib_wrap diff --git a/lib/message/cslib/src/cslib_wrap.h b/lib/message/cslib/src/cslib_wrap.h new file mode 100644 index 0000000000..bf7df029c3 --- /dev/null +++ b/lib/message/cslib/src/cslib_wrap.h @@ -0,0 +1,54 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +/* C style library interface to CSlib class + ifdefs allow this file to be included in a C program +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +void cslib_open(int, const char *, const void *, const void *, void **); +void cslib_open_fortran(int, const char *, const char *, const void *, void **); +void cslib_open_fortran_mpi_one(int, const char *, const void *, + const void *, void **); +void cslib_close(void *); + +void cslib_send(void *, int, int); + +void cslib_pack_int(void *, int, int); +void cslib_pack_int64(void *, int, int64_t); +void cslib_pack_float(void *, int, float); +void cslib_pack_double(void *, int, double); +void cslib_pack_string(void *, int, char *); +void cslib_pack(void *, int, int, int, void *); +void cslib_pack_parallel(void *, int, int, int, int *, int, void *); + +int cslib_recv(void *, int *, int **, int **, int **); + +int cslib_unpack_int(void *, int); +int64_t cslib_unpack_int64(void *, int); +float cslib_unpack_float(void *, int); +double cslib_unpack_double(void *, int); +char *cslib_unpack_string(void *, int); +void *cslib_unpack(void *, int); +void cslib_unpack_data(void *, int, void *); +void cslib_unpack_parallel(void *, int, int, int *, int, void *); + +int cslib_extract(void *, int); + +#ifdef __cplusplus +} +#endif diff --git a/lib/message/cslib/src/msg.cpp b/lib/message/cslib/src/msg.cpp new file mode 100644 index 0000000000..c67e4a5c8c --- /dev/null +++ b/lib/message/cslib/src/msg.cpp @@ -0,0 +1,110 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include + +#include "msg.h" + +using namespace CSLIB_NS; + +/* ---------------------------------------------------------------------- */ + +Msg::Msg(int csflag, const void *ptr, MPI_Comm cworld) +{ + world = cworld; + MPI_Comm_rank(world,&me); + MPI_Comm_size(world,&nprocs); + + init(csflag); +} + +/* ---------------------------------------------------------------------- */ + +Msg::Msg(int csflag, const void *ptr) +{ + world = 0; + me = 0; + nprocs = 1; + + init(csflag); +} + +/* ---------------------------------------------------------------------- */ + +void Msg::init(int csflag) +{ + client = server = 0; + if (csflag == 0) client = 1; + else if (csflag == 1) server = 1; + + nsend = nrecv = 0; +} + +/* ---------------------------------------------------------------------- */ + +void Msg::allocate(int nheader, int &maxheader, int *&header, + int nbuf, int &maxbuf, char *&buf) +{ + if (nheader > maxheader) { + sfree(header); + maxheader = nheader; + header = (int *) smalloc(maxheader*sizeof(int)); + } + + if (nbuf > maxbuf) { + sfree(buf); + maxbuf = nbuf; + buf = (char *) smalloc(maxbuf*sizeof(char)); + } +} + +/* ---------------------------------------------------------------------- */ + +void *Msg::smalloc(int nbytes) +{ + if (nbytes == 0) return NULL; + void *ptr = (void *) malloc(nbytes); + if (ptr == NULL) { + char str[128]; + sprintf(str,"Failed to allocate %d bytes",nbytes); + } + return ptr; +} + +/* ---------------------------------------------------------------------- */ + +void Msg::sfree(void *ptr) +{ + if (ptr == NULL) return; + free(ptr); +} + +/* ---------------------------------------------------------------------- */ + +void Msg::error_all(const char *str) +{ + if (me == 0) printf("CSlib ERROR: %s\n",str); + MPI_Abort(world,1); +} + +/* ---------------------------------------------------------------------- */ + +void Msg::error_one(const char *str) +{ + printf("CSlib ERROR: %s\n",str); + MPI_Abort(world,1); +} diff --git a/lib/message/cslib/src/msg.h b/lib/message/cslib/src/msg.h new file mode 100644 index 0000000000..f75942b027 --- /dev/null +++ b/lib/message/cslib/src/msg.h @@ -0,0 +1,52 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef MSG_H +#define MSG_H + +#include + +namespace CSLIB_NS { + +class Msg { + public: + int nsend,nrecv; + MPI_Comm world; + + Msg(int, const void *, MPI_Comm); + Msg(int, const void *); + virtual ~Msg() {} + virtual void send(int, int *, int, char *) = 0; + virtual void recv(int &, int *&, int &, char *&) = 0; + + protected: + int me,nprocs; + int client,server; + + int nfield; + int *fieldID,*fieldtype,*fieldlen; + int lengths[2]; + + void init(int); + void allocate(int, int &, int *&, int, int &, char *&); + void *smalloc(int); + void sfree(void *); + void error_all(const char *); + void error_one(const char *); +}; + + +} + +#endif diff --git a/lib/message/cslib/src/msg_file.cpp b/lib/message/cslib/src/msg_file.cpp new file mode 100644 index 0000000000..d97e249fad --- /dev/null +++ b/lib/message/cslib/src/msg_file.cpp @@ -0,0 +1,143 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include + +#include "msg_file.h" + +using namespace CSLIB_NS; + +#define MAXLINE 256 +#define SLEEP 0.1 // delay in CPU secs to check for message file + +/* ---------------------------------------------------------------------- */ + +MsgFile::MsgFile(int csflag, const void *ptr, MPI_Comm cworld) : + Msg(csflag, ptr, cworld) +{ + char *filename = (char *) ptr; + init(filename); +} + +/* ---------------------------------------------------------------------- */ + +MsgFile::MsgFile(int csflag, const void *ptr) : Msg(csflag, ptr) +{ + char *filename = (char *) ptr; + init(filename); +} + +/* ---------------------------------------------------------------------- */ + +MsgFile::~MsgFile() +{ + delete [] fileroot; +} + +/* ---------------------------------------------------------------------- */ + +void MsgFile::init(char *filename) +{ + int n = strlen(filename) + 1; + fileroot = new char[n]; + strcpy(fileroot,filename); +} + +/* ---------------------------------------------------------------------- */ + +void MsgFile::send(int nheader, int *header, int nbuf, char *buf) +{ + char filename[MAXLINE]; + + lengths[0] = nheader; + lengths[1] = nbuf; + + if (me == 0) { + if (client) sprintf(filename,"%s.%s",fileroot,"client"); + else if (server) sprintf(filename,"%s.%s",fileroot,"server"); + + fp = fopen(filename,"wb"); + if (!fp) error_one("send(): Could not open send message file"); + fwrite(lengths,sizeof(int),2,fp); + fwrite(header,sizeof(int),nheader,fp); + fwrite(buf,1,nbuf,fp); + fclose(fp); + } + + // create empty signal file + + if (me == 0) { + if (client) sprintf(filename,"%s.%s",fileroot,"client.signal"); + else if (server) sprintf(filename,"%s.%s",fileroot,"server.signal"); + fp = fopen(filename,"w"); + fclose(fp); + } +} + +/* ---------------------------------------------------------------------- */ + +void MsgFile::recv(int &maxheader, int *&header, int &maxbuf, char *&buf) +{ + char filename[MAXLINE]; + + // wait until signal file exists to open message file + + if (me == 0) { + if (client) sprintf(filename,"%s.%s",fileroot,"server.signal"); + else if (server) sprintf(filename,"%s.%s",fileroot,"client.signal"); + + int delay = (int) (1000000 * SLEEP); + while (1) { + fp = fopen(filename,"r"); + if (fp) break; + usleep(delay); + } + fclose(fp); + + if (client) sprintf(filename,"%s.%s",fileroot,"server"); + else if (server) sprintf(filename,"%s.%s",fileroot,"client"); + fp = fopen(filename,"rb"); + if (!fp) error_one("recv(): Could not open recv message file"); + } + + // read and broadcast data + + if (me == 0) fread(lengths,sizeof(int),2,fp); + if (nprocs > 1) MPI_Bcast(lengths,2,MPI_INT,0,world); + + int nheader = lengths[0]; + int nbuf = lengths[1]; + allocate(nheader,maxheader,header,nbuf,maxbuf,buf); + + if (me == 0) fread(header,sizeof(int),nheader,fp); + if (nprocs > 1) MPI_Bcast(header,nheader,MPI_INT,0,world); + + if (me == 0) fread(buf,1,nbuf,fp); + if (nprocs > 1) MPI_Bcast(buf,nbuf,MPI_CHAR,0,world); + + // delete both message and signal file + + if (me == 0) { + fclose(fp); + unlink(filename); + if (client) sprintf(filename,"%s.%s",fileroot,"server.signal"); + else if (server) sprintf(filename,"%s.%s",fileroot,"client.signal"); + unlink(filename); + } +} diff --git a/lib/message/cslib/src/msg_file.h b/lib/message/cslib/src/msg_file.h new file mode 100644 index 0000000000..d6bd802607 --- /dev/null +++ b/lib/message/cslib/src/msg_file.h @@ -0,0 +1,40 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef MSG_FILE_H +#define MSG_FILE_H + +#include +#include "msg.h" + +namespace CSLIB_NS { + +class MsgFile : public Msg { + public: + MsgFile(int, const void *, MPI_Comm); + MsgFile(int, const void *); + ~MsgFile(); + void send(int, int *, int, char *); + void recv(int &, int *&, int &, char *&); + + private: + char *fileroot; + FILE *fp; + + void init(char *); +}; + +} + +#endif diff --git a/lib/message/cslib/src/msg_mpi_one.cpp b/lib/message/cslib/src/msg_mpi_one.cpp new file mode 100644 index 0000000000..db11735b27 --- /dev/null +++ b/lib/message/cslib/src/msg_mpi_one.cpp @@ -0,0 +1,82 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include + +#include "msg_mpi_one.h" + +using namespace CSLIB_NS; + +/* ---------------------------------------------------------------------- */ + +MsgMPIOne::MsgMPIOne(int csflag, const void *ptr, MPI_Comm cworld) : + Msg(csflag, ptr, cworld) +{ + // NOTE: ideally would skip this call if mpi/two + init(ptr); +} + +/* ---------------------------------------------------------------------- */ + +void MsgMPIOne::init(const void *ptr) +{ + MPI_Comm *pbothcomm = (MPI_Comm *) ptr; + bothcomm = *pbothcomm; + + if (client) { + MPI_Comm_size(world,&nprocs); + otherroot = nprocs; + } else if (server) { + otherroot = 0; + } +} + +/* ---------------------------------------------------------------------- */ + +void MsgMPIOne::send(int nheader, int *header, int nbuf, char *buf) +{ + lengths[0] = nheader; + lengths[1] = nbuf; + + if (me == 0) { + MPI_Send(lengths,2,MPI_INT,otherroot,0,bothcomm); + MPI_Send(header,nheader,MPI_INT,otherroot,0,bothcomm); + MPI_Send(buf,nbuf,MPI_CHAR,otherroot,0,bothcomm); + } +} + +/* ---------------------------------------------------------------------- */ + +void MsgMPIOne::recv(int &maxheader, int *&header, int &maxbuf, char *&buf) +{ + MPI_Status status; + + if (me == 0) MPI_Recv(lengths,2,MPI_INT,otherroot,0,bothcomm,&status); + if (nprocs > 1) MPI_Bcast(lengths,2,MPI_INT,0,world); + + int nheader = lengths[0]; + int nbuf = lengths[1]; + allocate(nheader,maxheader,header,nbuf,maxbuf,buf); + + if (me == 0) MPI_Recv(header,nheader,MPI_INT,otherroot,0,bothcomm,&status); + if (nprocs > 1) MPI_Bcast(header,nheader,MPI_INT,0,world); + + if (me == 0) MPI_Recv(buf,nbuf,MPI_CHAR,otherroot,0,bothcomm,&status); + if (nprocs > 1) MPI_Bcast(buf,nbuf,MPI_CHAR,0,world); +} diff --git a/lib/message/cslib/src/msg_mpi_one.h b/lib/message/cslib/src/msg_mpi_one.h new file mode 100644 index 0000000000..4b4140a3f7 --- /dev/null +++ b/lib/message/cslib/src/msg_mpi_one.h @@ -0,0 +1,38 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef MSG_MPI_ONE_H +#define MSG_MPI_ONE_H + +#include "msg.h" + +namespace CSLIB_NS { + +class MsgMPIOne : public Msg { + public: + MsgMPIOne(int, const void *, MPI_Comm); + virtual ~MsgMPIOne() {} + void send(int, int *, int, char *); + void recv(int &, int *&, int &, char *&); + + protected: + MPI_Comm bothcomm; + int otherroot; + + void init(const void *); +}; + +} + +#endif diff --git a/lib/message/cslib/src/msg_mpi_two.cpp b/lib/message/cslib/src/msg_mpi_two.cpp new file mode 100644 index 0000000000..e9a9e87eeb --- /dev/null +++ b/lib/message/cslib/src/msg_mpi_two.cpp @@ -0,0 +1,81 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include + +#include "msg_mpi_two.h" + +using namespace CSLIB_NS; + +/* ---------------------------------------------------------------------- */ + +MsgMPITwo::MsgMPITwo(int csflag, const void *ptr, MPI_Comm cworld) : + MsgMPIOne(csflag, ptr, cworld) +{ + char *filename = (char *) ptr; + init(filename); +} + +/* ---------------------------------------------------------------------- */ + +MsgMPITwo::~MsgMPITwo() +{ + // free the inter comm that spans both client and server + + MPI_Comm_free(&bothcomm); + MPI_Close_port(port); +} + +/* ---------------------------------------------------------------------- */ + +void MsgMPITwo::init(char *filename) +{ + if (client) { + if (me == 0) { + FILE *fp = NULL; + while (!fp) { + fp = fopen(filename,"r"); + if (!fp) sleep(1); + } + fgets(port,MPI_MAX_PORT_NAME,fp); + //printf("Client port: %s\n",port); + fclose(fp); + } + + MPI_Bcast(port,MPI_MAX_PORT_NAME,MPI_CHAR,0,world); + MPI_Comm_connect(port,MPI_INFO_NULL,0,world,&bothcomm); + //if (me == 0) printf("CLIENT comm connect\n"); + if (me == 0) unlink(filename); + + } else if (server) { + MPI_Open_port(MPI_INFO_NULL,port); + + if (me == 0) { + //printf("Server name: %s\n",port); + FILE *fp = fopen(filename,"w"); + fprintf(fp,"%s",port); + fclose(fp); + } + + MPI_Comm_accept(port,MPI_INFO_NULL,0,world,&bothcomm); + //if (me == 0) printf("SERVER comm accept\n"); + } + + otherroot = 0; +} diff --git a/lib/message/cslib/src/msg_mpi_two.h b/lib/message/cslib/src/msg_mpi_two.h new file mode 100644 index 0000000000..7b31db5a63 --- /dev/null +++ b/lib/message/cslib/src/msg_mpi_two.h @@ -0,0 +1,35 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef MSG_MPI_TWO_H +#define MSG_MPI_TWO_H + +#include "msg_mpi_one.h" + +namespace CSLIB_NS { + +class MsgMPITwo : public MsgMPIOne { + public: + MsgMPITwo(int, const void *, MPI_Comm); + ~MsgMPITwo(); + + private: + char port[MPI_MAX_PORT_NAME]; + + void init(char *); +}; + +} + +#endif diff --git a/lib/message/cslib/src/msg_zmq.cpp b/lib/message/cslib/src/msg_zmq.cpp new file mode 100644 index 0000000000..c2d408f3a5 --- /dev/null +++ b/lib/message/cslib/src/msg_zmq.cpp @@ -0,0 +1,140 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include + +#include "msg_zmq.h" + +using namespace CSLIB_NS; + +/* ---------------------------------------------------------------------- */ + +MsgZMQ::MsgZMQ(int csflag, const void *ptr, MPI_Comm cworld) : + Msg(csflag, ptr, cworld) +{ + char *port = (char *) ptr; + init(port); +} + +MsgZMQ::MsgZMQ(int csflag, const void *ptr) : Msg(csflag, ptr) +{ + char *port = (char *) ptr; + init(port); +} + +/* ---------------------------------------------------------------------- */ + +MsgZMQ::~MsgZMQ() +{ + if (me == 0) { + zmq_close(socket); + zmq_ctx_destroy(context); + } +} + +/* ---------------------------------------------------------------------- */ + +void MsgZMQ::init(char *port) +{ +#ifdef ZMQ_NO + error_all("constructor(): Library not built with ZMQ support"); +#endif + + if (me == 0) { + int n = strlen(port) + 8; + char *socket_name = new char[n]; + strcpy(socket_name,"tcp://"); + strcat(socket_name,port); + + if (client) { + context = zmq_ctx_new(); + socket = zmq_socket(context,ZMQ_REQ); + zmq_connect(socket,socket_name); + } else if (server) { + context = zmq_ctx_new(); + socket = zmq_socket(context,ZMQ_REP); + int rc = zmq_bind(socket,socket_name); + if (rc) error_one("constructor(): Server could not make socket connection"); + } + + delete [] socket_name; + } +} + +/* ---------------------------------------------------------------------- + client/server sockets (REQ/REP) must follow this protocol: + client sends request (REQ) which server receives + server sends response (REP) which client receives + every exchange is of this form, server cannot initiate a send + thus each ZMQ send below has a following ZMQ recv, except last one + if client calls send(), it will next call recv() + if server calls send(), it will next call recv() from its wait loop + in either case, recv() issues a ZMQ recv to match last ZMQ send here +------------------------------------------------------------------------- */ + +void MsgZMQ::send(int nheader, int *header, int nbuf, char *buf) +{ + lengths[0] = nheader; + lengths[1] = nbuf; + + if (me == 0) { + zmq_send(socket,lengths,2*sizeof(int),0); + zmq_recv(socket,NULL,0,0); + } + + if (me == 0) { + zmq_send(socket,header,nheader*sizeof(int),0); + zmq_recv(socket,NULL,0,0); + } + + if (me == 0) zmq_send(socket,buf,nbuf,0); +} + +/* ---------------------------------------------------------------------- + client/server sockets (REQ/REP) must follow this protocol: + client sends request (REQ) which server receives + server sends response (REP) which client receives + every exchange is of this form, server cannot initiate a send + thus each ZMQ recv below has a following ZMQ send, except last one + if client calls recv(), it will next call send() to ping server again, + if server calls recv(), it will next call send() to respond to client + in either case, send() issues a ZMQ send to match last ZMQ recv here +------------------------------------------------------------------------- */ + +void MsgZMQ::recv(int &maxheader, int *&header, int &maxbuf, char *&buf) +{ + if (me == 0) { + zmq_recv(socket,lengths,2*sizeof(int),0); + zmq_send(socket,NULL,0,0); + } + if (nprocs > 1) MPI_Bcast(lengths,2,MPI_INT,0,world); + + int nheader = lengths[0]; + int nbuf = lengths[1]; + allocate(nheader,maxheader,header,nbuf,maxbuf,buf); + + if (me == 0) { + zmq_recv(socket,header,nheader*sizeof(int),0); + zmq_send(socket,NULL,0,0); + } + if (nprocs > 1) MPI_Bcast(header,nheader,MPI_INT,0,world); + + if (me == 0) zmq_recv(socket,buf,nbuf,0); + if (nprocs > 1) MPI_Bcast(buf,nbuf,MPI_CHAR,0,world); +} diff --git a/lib/message/cslib/src/msg_zmq.h b/lib/message/cslib/src/msg_zmq.h new file mode 100644 index 0000000000..c0621a26ff --- /dev/null +++ b/lib/message/cslib/src/msg_zmq.h @@ -0,0 +1,38 @@ +/* ---------------------------------------------------------------------- + CSlib - Client/server library for code coupling + http://cslib.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright 2018 National Technology & Engineering Solutions of + Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with + NTESS, the U.S. Government retains certain rights in this software. + This software is distributed under the modified Berkeley Software + Distribution (BSD) License. + + See the README file in the top-level CSlib directory. +------------------------------------------------------------------------- */ + +#ifndef MSG_ZMQ_H +#define MSG_ZMQ_H + +#include "msg.h" + +namespace CSLIB_NS { + +class MsgZMQ : public Msg { + public: + MsgZMQ(int, const void *, MPI_Comm); + MsgZMQ(int, const void *); + ~MsgZMQ(); + void send(int, int *, int, char *); + void recv(int &, int *&, int &, char *&); + + private: + void *context,*socket; + + void init(char *); +}; + +} + +#endif diff --git a/src/MESSAGE/Install.sh b/src/MESSAGE/Install.sh new file mode 100644 index 0000000000..853dbddcdd --- /dev/null +++ b/src/MESSAGE/Install.sh @@ -0,0 +1,67 @@ +# Install/unInstall package files in LAMMPS +# mode = 0/1/2 for uninstall/install/update + +mode=$1 + +# arg1 = file, arg2 = file it depends on + +# enforce using portable C locale +LC_ALL=C +export LC_ALL + +action () { + if (test $mode = 0) then + rm -f ../$1 + elif (! cmp -s $1 ../$1) then + if (test -z "$2" || test -e ../$2) then + cp $1 .. + if (test $mode = 2) then + echo " updating src/$1" + fi + fi + elif (test -n "$2") then + if (test ! -e ../$2) then + rm -f ../$1 + fi + fi +} + +# all package files with no dependencies + +for file in *.cpp *.h; do + test -f ${file} && action $file +done + +# edit 2 Makefile.package files to include/exclude package info + +if (test $1 = 1) then + + if (test -e ../Makefile.package) then + sed -i -e 's/[^ \t]*message[^ \t]* //' ../Makefile.package + sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/message/cslib/src |' ../Makefile.package + sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/message/cslib/src |' ../Makefile.package + sed -i -e 's|^PKG_LIB =[ \t]*|&-lmessage |' ../Makefile.package + sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(message_SYSINC) |' ../Makefile.package + sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(message_SYSLIB) |' ../Makefile.package + sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(message_SYSPATH) |' ../Makefile.package + fi + + if (test -e ../Makefile.package.settings) then + sed -i -e '/^include.*message.*$/d' ../Makefile.package.settings + # multiline form needed for BSD sed on Macs + sed -i -e '4 i \ +include ..\/..\/lib\/message\/Makefile.lammps +' ../Makefile.package.settings + fi + +elif (test $1 = 0) then + + if (test -e ../Makefile.package) then + sed -i -e 's/[^ \t]*message[^ \t]* //' ../Makefile.package + fi + + if (test -e ../Makefile.package.settings) then + sed -i -e '/^include.*message.*$/d' ../Makefile.package.settings + fi + +fi diff --git a/src/MESSAGE/fix_client_md.cpp b/src/MESSAGE/fix_client_md.cpp new file mode 100644 index 0000000000..aca5cd41f9 --- /dev/null +++ b/src/MESSAGE/fix_client_md.cpp @@ -0,0 +1,325 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include "fix_client_md.h" +#include "update.h" +#include "atom.h" +#include "comm.h" +#include "domain.h" +#include "force.h" +#include "memory.h" +#include "error.h" + +// CSlib interface + +#include "cslib.h" + +using namespace LAMMPS_NS; +using namespace CSLIB_NS; +using namespace FixConst; + +enum{OTHER,REAL,METAL}; +enum{SETUP=1,STEP}; +enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; +enum{FORCES=1,ENERGY,PRESSURE,ERROR}; + +/* ---------------------------------------------------------------------- */ + +FixClientMD::FixClientMD(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg) +{ + if (lmp->clientserver != 1) + error->all(FLERR,"Fix client/md requires LAMMPS be running as a client"); + if (!atom->map_style) error->all(FLERR,"Fix client/md requires atom map"); + + if (sizeof(tagint) != 4) + error->all(FLERR,"Fix client/md requires 4-byte atom IDs"); + + if (strcmp(update->unit_style,"real") == 0) units = REAL; + else if (strcmp(update->unit_style,"metal") == 0) units = METAL; + else units = OTHER; + + scalar_flag = 1; + global_freq = 1; + extscalar = 1; + virial_flag = 1; + thermo_virial = 1; + + inv_nprocs = 1.0 / comm->nprocs; + if (domain->dimension == 2) + box[0][2] = box[1][2] = box[2][0] = box[2][1] = box[2][2] = 0.0; + + maxatom = 0; + xpbc = NULL; + + // unit conversion factors for REAL + // otherwise not needed + // message received in METAL units, convert to local REAL units + + fconvert = econvert = pconvert = 1.0; + if (units == REAL) { + fconvert = econvert = 23.06035; // eV -> Kcal/mole + pconvert = 0.986923; // bars -> atmospheres + } +} + +/* ---------------------------------------------------------------------- */ + +FixClientMD::~FixClientMD() +{ + memory->destroy(xpbc); + + CSlib *cs = (CSlib *) lmp->cslib; + + // all-done message to server + + cs->send(-1,0); + + int nfield; + int *fieldID,*fieldtype,*fieldlen; + int msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + + // clean-up + + delete cs; + lmp->cslib = NULL; +} + +/* ---------------------------------------------------------------------- */ + +int FixClientMD::setmask() +{ + int mask = 0; + mask |= POST_FORCE; + mask |= MIN_POST_FORCE; + mask |= THERMO_ENERGY; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixClientMD::init() +{ + if (3*atom->natoms > INT_MAX) + error->all(FLERR,"Fix client/md max atoms is 1/3 of 2^31"); +} + +/* ---------------------------------------------------------------------- */ + +void FixClientMD::setup(int vflag) +{ + CSlib *cs = (CSlib *) lmp->cslib; + + // SETUP send at beginning of each run + // required fields: DIM, PERIODICTY, ORIGIN, BOX, NATOMS, NTYPES, TYPES, COORDS + // optional fields: others in enum above + + int nfields = 8; + if (units == OTHER) nfields++; + if (atom->q_flag) nfields++; + + cs->send(SETUP,nfields); + + cs->pack_int(DIM,domain->dimension); + cs->pack(PERIODICITY,1,3,domain->periodicity); + + pack_box(); + cs->pack(ORIGIN,4,3,domain->boxlo); + cs->pack(BOX,4,9,&box[0][0]); + + cs->pack_int(NATOMS,atom->natoms); + cs->pack_int(NTYPES,atom->ntypes); + + cs->pack_parallel(TYPES,1,atom->nlocal,atom->tag,1,atom->type); + pack_coords(); + cs->pack_parallel(COORDS,4,atom->nlocal,atom->tag,3,xpbc); + + if (units == OTHER) cs->pack_string(UNITS,update->unit_style); + + if (atom->q_flag) + cs->pack_parallel(CHARGE,4,atom->nlocal,atom->tag,1,atom->q); + + // receive initial forces, energy, virial + + receive_fev(vflag); + + if (server_error) { + char str[64]; + sprintf(str,"Fix client/md received server error %d\n",server_error); + error->all(FLERR,str); + } +} + +/* ---------------------------------------------------------------------- */ + +void FixClientMD::min_setup(int vflag) +{ + setup(vflag); +} + +/* ---------------------------------------------------------------------- */ + +void FixClientMD::post_force(int vflag) +{ + int i,j,m; + + // energy and virial setup + + if (vflag) v_setup(vflag); + else evflag = 0; + + // STEP send every step + // required fields: COORDS + // optional fields: ORIGIN, BOX + + // send coords + + CSlib *cs = (CSlib *) lmp->cslib; + + int nfields = 1; + if (domain->box_change) nfields += 2; + + cs->send(STEP,nfields); + + pack_coords(); + cs->pack_parallel(COORDS,4,atom->nlocal,atom->tag,3,xpbc); + + if (domain->box_change) { + pack_box(); + cs->pack(ORIGIN,4,3,domain->boxlo); + cs->pack(BOX,4,9,&box[0][0]); + } + + // receive forces, energy, virial + + receive_fev(vflag); + + if (server_error) { + char str[64]; + sprintf(str,"Fix client/md received server error %d\n",server_error); + error->all(FLERR,str); + } +} + +/* ---------------------------------------------------------------------- */ + +void FixClientMD::min_post_force(int vflag) +{ + post_force(vflag); +} + +/* ---------------------------------------------------------------------- + potential energy from server +------------------------------------------------------------------------- */ + +double FixClientMD::compute_scalar() +{ + return eng; +} + +/* ---------------------------------------------------------------------- + pack local coords into xpbc, enforcing PBC +------------------------------------------------------------------------- */ + +void FixClientMD::pack_coords() +{ + double **x = atom->x; + int nlocal = atom->nlocal; + + if (nlocal > maxatom) { + memory->destroy(xpbc); + maxatom = atom->nmax; + memory->create(xpbc,3*maxatom,"message:xpbc"); + } + + memcpy(xpbc,&x[0][0],3*nlocal*sizeof(double)); + + int j = 0; + for (int i = 0; i < nlocal; i++) { + domain->remap(&xpbc[j]); + j += 3; + } +} + +/* ---------------------------------------------------------------------- + pack box info into box = 3 edge vectors of simulation box +------------------------------------------------------------------------- */ + +void FixClientMD::pack_box() +{ + double *boxlo = domain->boxlo; + double *boxhi = domain->boxhi; + + box[0][0] = boxhi[0] - boxlo[0]; + box[0][1] = 0.0; + box[0][2] = 0.0; + box[1][0] = domain->xy; + box[1][1] = boxhi[1] - boxlo[1]; + box[1][2] = 0.0; + box[2][0] = domain->xz; + box[2][1] = domain->yz; + box[2][2] = boxhi[2] - boxlo[2]; +} + +/* ---------------------------------------------------------------------- + receive message from server + required fields: FORCES, ENERGY, PRESSURE + optional field: ERROR +------------------------------------------------------------------------- */ + +void FixClientMD::receive_fev(int vflag) +{ + CSlib *cs = (CSlib *) lmp->cslib; + + int nfield; + int *fieldID,*fieldtype,*fieldlen; + + int msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + + double *forces = (double *) cs->unpack(FORCES); + double **f = atom->f; + int nlocal = atom->nlocal; + bigint natoms = atom->natoms; + int m; + + int j = 0; + for (tagint id = 1; id <= natoms; id++) { + m = atom->map(id); + if (m < 0 || m >= nlocal) j += 3; + else { + f[m][0] += fconvert * forces[j++]; + f[m][1] += fconvert * forces[j++]; + f[m][2] += fconvert * forces[j++]; + } + } + + eng = econvert * cs->unpack_double(ENERGY); + + if (vflag) { + double *v = (double *) cs->unpack(PRESSURE); + + double nktv2p = force->nktv2p; + double volume = domain->xprd * domain->yprd * domain->zprd; + double factor = inv_nprocs * pconvert * volume / nktv2p; + + for (int i = 0; i < 6; i++) + virial[i] = factor * v[i]; + } + + // error return + + server_error = 0; + if (nfield == 4) server_error = cs->unpack_int(ERROR); +} diff --git a/src/MESSAGE/fix_client_md.h b/src/MESSAGE/fix_client_md.h new file mode 100644 index 0000000000..1c874c7278 --- /dev/null +++ b/src/MESSAGE/fix_client_md.h @@ -0,0 +1,65 @@ +/* -*- 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 FIX_CLASS + +FixStyle(client/md,FixClientMD) + +#else + +#ifndef LMP_FIX_CLIENT_MD_H +#define LMP_FIX_CLIENT_MD_H + +#include "fix.h" + +namespace LAMMPS_NS { + +class FixClientMD : public Fix { + public: + FixClientMD(class LAMMPS *, int, char **); + ~FixClientMD(); + int setmask(); + void init(); + void setup(int); + void min_setup(int); + void post_force(int); + void min_post_force(int); + double compute_scalar(); + + private: + int maxatom,units,server_error; + double eng; + double inv_nprocs; + double fconvert,econvert,pconvert; + double box[3][3]; + double *xpbc; + + void pack_coords(); + void pack_box(); + void receive_fev(int); +}; + +} + +#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. + +*/ diff --git a/src/MESSAGE/message.cpp b/src/MESSAGE/message.cpp new file mode 100644 index 0000000000..329ce1fbd9 --- /dev/null +++ b/src/MESSAGE/message.cpp @@ -0,0 +1,90 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include "message.h" +#include "error.h" + +// CSlib interface + +#include "cslib.h" + +using namespace LAMMPS_NS; +using namespace CSLIB_NS; + +// customize by adding a new server protocol enum + +enum{MD,MC}; + +/* ---------------------------------------------------------------------- */ + +void Message::command(int narg, char **arg) +{ + if (narg < 3) error->all(FLERR,"Illegal message command"); + + int clientserver; + if (strcmp(arg[0],"client") == 0) clientserver = 1; + else if (strcmp(arg[0],"server") == 0) clientserver = 2; + else error->all(FLERR,"Illegal message command"); + lmp->clientserver = clientserver; + + // customize by adding a new server protocol + + int protocol; + if (strcmp(arg[1],"md") == 0) protocol = MD; + else if (strcmp(arg[1],"mc") == 0) protocol = MC; + else error->all(FLERR,"Unknown message protocol"); + + // instantiate CSlib with chosen communication mode + + if (strcmp(arg[2],"file") == 0 || strcmp(arg[2],"zmq") == 0 || + strcmp(arg[2],"mpi/two") == 0) { + if (narg != 4) error->all(FLERR,"Illegal message command"); + lmp->cslib = new CSlib(clientserver-1,arg[2],arg[3],&world); + + } else if (strcmp(arg[2],"mpi/one") == 0) { + if (narg != 3) error->all(FLERR,"Illegal message command"); + if (!lmp->cscomm) + error->all(FLERR,"Message mpi/one mode, but -mpi cmdline arg not used"); + lmp->cslib = new CSlib(clientserver-1,arg[2],&lmp->cscomm,&world); + + } else error->all(FLERR,"Illegal message command"); + + // perform initial handshake between client and server + // other code being coupled to must perform similar operation + // client sends protocol with msgID = 0 + // server matches it and replies + + CSlib *cs = (CSlib *) lmp->cslib; + + if (clientserver == 1) { + cs->send(0,1); + cs->pack_string(1,arg[1]); + + int nfield; + int *fieldID,*fieldtype,*fieldlen; + int msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + if (msgID != 0) error->one(FLERR,"Bad initial client/server handshake"); + + } else { + int nfield; + int *fieldID,*fieldtype,*fieldlen; + int msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + if (msgID != 0) error->one(FLERR,"Bad initial client/server handshake"); + char *pstr = cs->unpack_string(1); + if (strcmp(pstr,arg[1]) != 0) + error->one(FLERR,"Mismatch in client/server protocol"); + + cs->send(0,0); + } +} diff --git a/src/MESSAGE/message.h b/src/MESSAGE/message.h new file mode 100644 index 0000000000..c384a5a7b7 --- /dev/null +++ b/src/MESSAGE/message.h @@ -0,0 +1,40 @@ +/* -*- 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 COMMAND_CLASS + +CommandStyle(message,Message) + +#else + +#ifndef LMP_MESSAGE_H +#define LMP_MESSAGE_H + +#include "pointers.h" + +namespace LAMMPS_NS { + +class Message : protected Pointers { + public: + Message(class LAMMPS *lmp) : Pointers(lmp) {}; + void command(int, char **); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +*/ diff --git a/src/MESSAGE/server.cpp b/src/MESSAGE/server.cpp new file mode 100644 index 0000000000..f587fb76df --- /dev/null +++ b/src/MESSAGE/server.cpp @@ -0,0 +1,50 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include "server.h" +#include "error.h" + +// customize by adding a new server protocol include and enum + +#include "server_md.h" +#include "server_mc.h" + +using namespace LAMMPS_NS; + +enum{MD,MC}; + +/* ---------------------------------------------------------------------- */ + +void Server::command(int narg, char **arg) +{ + if (narg != 1) error->all(FLERR,"Illegal server command"); + + if (lmp->clientserver != 2) + error->all(FLERR,"Message command not used to setup LAMMPS as a server"); + + // customize by adding a new server protocol + + int protocol; + if (strcmp(arg[0],"md") == 0) protocol = MD; + else if (strcmp(arg[0],"mc") == 0) protocol = MC; + else error->all(FLERR,"Unknown message protocol"); + + if (protocol == MD) { + ServerMD *server = new ServerMD(lmp); + server->loop(); + } else if (protocol == MC) { + ServerMC *server = new ServerMC(lmp); + server->loop(); + } +} diff --git a/src/MESSAGE/server.h b/src/MESSAGE/server.h new file mode 100644 index 0000000000..579f6ab6f1 --- /dev/null +++ b/src/MESSAGE/server.h @@ -0,0 +1,40 @@ +/* -*- 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 COMMAND_CLASS + +CommandStyle(server,Server) + +#else + +#ifndef LMP_SERVER_H +#define LMP_SERVER_H + +#include "pointers.h" + +namespace LAMMPS_NS { + +class Server : protected Pointers { + public: + Server(class LAMMPS *lmp) : Pointers(lmp) {}; + void command(int, char **); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +*/ diff --git a/src/MESSAGE/server_mc.cpp b/src/MESSAGE/server_mc.cpp new file mode 100644 index 0000000000..8a7344e86b --- /dev/null +++ b/src/MESSAGE/server_mc.cpp @@ -0,0 +1,148 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include "server_mc.h" +#include "atom.h" +#include "update.h" +#include "integrate.h" +#include "input.h" +#include "output.h" +#include "thermo.h" +#include "error.h" + +// CSlib interface + +#include "cslib.h" + +using namespace LAMMPS_NS; +using namespace CSLIB_NS; + +enum{NATOMS=1,EINIT,DISPLACE,ACCEPT,RUN}; + +/* ---------------------------------------------------------------------- */ + +ServerMC::ServerMC(LAMMPS *lmp) : Pointers(lmp) {} + +/* ---------------------------------------------------------------------- */ + +void ServerMC::loop() +{ + int i,j,m; + double xold[3],xnew[3]; + tagint atomid; + + CSlib *cs = (CSlib *) lmp->cslib; + + // require atom map + + if (!atom->map_style) error->all(FLERR,"Server mode requires atom map"); + + // initialize LAMMPS for dynamics + + input->one("run 0"); + + //update->whichflag = 1; + //lmp->init(); + + // loop on messages + // receive a message, process it, send return message if necessary + + int msgID,nfield; + int *fieldID,*fieldtype,*fieldlen; + + while (1) { + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + if (msgID < 0) break; + + if (msgID == NATOMS) { + + cs->send(msgID,1); + cs->pack_int(1,atom->natoms); + + } else if (msgID == EINIT) { + + double dval; + output->thermo->evaluate_keyword((char *) "pe",&dval); + + cs->send(msgID,2); + cs->pack_double(1,dval); + double *coords = NULL; + if (atom->nlocal) coords = &atom->x[0][0]; + cs->pack_parallel(2,4,atom->nlocal,atom->tag,3,coords); + + } else if (msgID == DISPLACE) { + + atomid = cs->unpack_int(1); + double *xnew = (double *) cs->unpack(2); + double **x = atom->x; + + m = atom->map(atomid); + if (m >= 0 && m < atom->nlocal) { + xold[0] = x[m][0]; + xold[1] = x[m][1]; + xold[2] = x[m][2]; + x[m][0] = xnew[0]; + x[m][1] = xnew[1]; + x[m][2] = xnew[2]; + } + + input->one("run 0"); + double dval; + output->thermo->evaluate_keyword((char *) "pe",&dval); + + cs->send(msgID,1); + cs->pack_double(1,dval); + + } else if (msgID == ACCEPT) { + + int accept = cs->unpack_int(1); + double **x = atom->x; + + if (!accept) { + m = atom->map(atomid); + if (m >= 0 && m < atom->nlocal) { + x[m][0] = xold[0]; + x[m][1] = xold[1]; + x[m][2] = xold[2]; + } + } + + cs->send(msgID,0); + + } else if (msgID == RUN) { + + int nsteps = cs->unpack_int(1); + + //input->one("run 100"); + + update->nsteps = nsteps; + update->firststep = update->ntimestep; + update->laststep = update->ntimestep + nsteps; + + update->integrate->setup(1); + update->integrate->run(nsteps); + + cs->send(msgID,0); + + } else error->all(FLERR,"Server received unrecognized message"); + } + + // final reply to client + + cs->send(0,0); + + // clean up + + delete cs; + lmp->cslib = NULL; +} diff --git a/src/MESSAGE/server_mc.h b/src/MESSAGE/server_mc.h new file mode 100644 index 0000000000..d0fb489429 --- /dev/null +++ b/src/MESSAGE/server_mc.h @@ -0,0 +1,29 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +#ifndef LMP_SERVER_MC_H +#define LMP_SERVER_MC_H + +#include "pointers.h" + +namespace LAMMPS_NS { + +class ServerMC : protected Pointers { + public: + ServerMC(class LAMMPS *); + void loop(); +}; + +} + +#endif diff --git a/src/MESSAGE/server_md.cpp b/src/MESSAGE/server_md.cpp new file mode 100644 index 0000000000..aa771b7d46 --- /dev/null +++ b/src/MESSAGE/server_md.cpp @@ -0,0 +1,389 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +#include +#include +#include "server_md.h" +#include "atom.h" +#include "atom_vec.h" +#include "update.h" +#include "integrate.h" +#include "kspace.h" +#include "force.h" +#include "pair.h" +#include "neighbor.h" +#include "comm.h" +#include "domain.h" +#include "memory.h" +#include "error.h" + +// CSlib interface + +#include "cslib.h" + +using namespace LAMMPS_NS; +using namespace CSLIB_NS; + +enum{OTHER,REAL,METAL}; +enum{SETUP=1,STEP}; +enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; +enum{FORCES=1,ENERGY,PRESSURE,ERROR}; + +/* ---------------------------------------------------------------------- */ + +ServerMD::ServerMD(LAMMPS *lmp) : Pointers(lmp) +{ + if (domain->box_exist == 0) + error->all(FLERR,"Server command before simulation box is defined"); + + if (!atom->map_style) error->all(FLERR,"Server md requires atom map"); + if (atom->tag_enable == 0) error->all(FLERR,"Server md requires atom IDs"); + if (sizeof(tagint) != 4) error->all(FLERR,"Server md requires 4-byte atom IDs"); + + if (strcmp(update->unit_style,"real") == 0) units = REAL; + else if (strcmp(update->unit_style,"metal") == 0) units = METAL; + else units = OTHER; + + // unit conversion factors for REAL + // otherwise not needed + // local computation in REAL units, send message in METAL units + + fconvert = econvert = pconvert = 1.0; + if (units == REAL) { + fconvert = econvert = 1.0 / 23.06035; // Kcal/mole -> eV + pconvert = 1.0 / 0.986923; // atmospheres -> bars + } + + fcopy = NULL; +} + +/* ---------------------------------------------------------------------- */ + +ServerMD::~ServerMD() +{ + memory->destroy(fcopy); +} + +/* ---------------------------------------------------------------------- */ + +void ServerMD::loop() +{ + int i,j,m; + + // cs = instance of CSlib + + CSlib *cs = (CSlib *) lmp->cslib; + + // counters + + int forcecalls = 0; + int neighcalls = 0; + + // loop on messages + // receive a message, process it, send return message + + int msgID,nfield; + int *fieldID,*fieldtype,*fieldlen; + + while (1) { + msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen); + if (msgID < 0) break; + + // SETUP receive at beginning of each run + // required fields: DIM, PERIODICTY, ORIGIN, BOX, + // NATOMS, NTYPES, TYPES, COORDS + // optional fields: others in enum above + + if (msgID == SETUP) { + + int dim = 0; + int *periodicity = NULL; + int natoms = -1; + int ntypes = -1; + double *origin = NULL; + double *box = NULL; + int *types = NULL; + double *coords = NULL; + char *unit_style = NULL; + double *charge = NULL; + + for (int ifield = 0; ifield < nfield; ifield++) { + if (fieldID[ifield] == DIM) { + dim = cs->unpack_int(DIM); + if (dim != domain->dimension) + error->all(FLERR,"Server md dimension mis-match with client"); + } else if (fieldID[ifield] == PERIODICITY) { + periodicity = (int *) cs->unpack(PERIODICITY); + if (periodicity[0] != domain->periodicity[0] || + periodicity[1] != domain->periodicity[1] || + periodicity[2] != domain->periodicity[2]) + error->all(FLERR,"Server md periodicity mis-match with client"); + } else if (fieldID[ifield] == ORIGIN) { + origin = (double *) cs->unpack(ORIGIN); + } else if (fieldID[ifield] == BOX) { + box = (double *) cs->unpack(BOX); + } else if (fieldID[ifield] == NATOMS) { + natoms = cs->unpack_int(NATOMS); + if (3*natoms > INT_MAX) + error->all(FLERR,"Server md max atoms is 1/3 of 2^31"); + } else if (fieldID[ifield] == NTYPES) { + ntypes = cs->unpack_int(NTYPES); + if (ntypes != atom->ntypes) + error->all(FLERR,"Server md ntypes mis-match with client"); + } else if (fieldID[ifield] == TYPES) { + types = (int *) cs->unpack(TYPES); + } else if (fieldID[ifield] == COORDS) { + coords = (double *) cs->unpack(COORDS); + + } else if (fieldID[ifield] == UNITS) { + unit_style = (char *) cs->unpack(UNITS); + } else if (fieldID[ifield] == CHARGE) { + charge = (double *) cs->unpack(CHARGE); + } else error->all(FLERR,"Server md setup field unknown"); + } + + if (dim == 0 || !periodicity || !origin || !box || + natoms < 0 || ntypes < 0 || !types || !coords) + error->all(FLERR,"Required server md setup field not received"); + + if (unit_style && strcmp(unit_style,update->unit_style) != 0) + error->all(FLERR,"Server md does not match client units"); + + if (charge && atom->q_flag == 0) + error->all(FLERR,"Server md does not define atom attribute q"); + + // reset box, global and local + // reset proc decomposition + + if ((box[3] != 0.0 || box[6] != 0.0 || box[7] != 0.0) && + domain->triclinic == 0) + error->all(FLERR,"Server md is not initialized for a triclinic box"); + + box_change(origin,box); + + domain->set_initial_box(); + domain->set_global_box(); + comm->set_proc_grid(); + domain->set_local_box(); + + // clear all atoms + + atom->nlocal = 0; + atom->nghost = 0; + + // add atoms that are in my sub-box + + int nlocal = 0; + for (int i = 0; i < natoms; i++) { + if (!domain->ownatom(i+1,&coords[3*i],NULL,0)) continue; + atom->avec->create_atom(types[i],&coords[3*i]); + atom->tag[nlocal] = i+1; + if (charge) atom->q[nlocal] = charge[i]; + nlocal++; + } + + int ntotal; + MPI_Allreduce(&atom->nlocal,&ntotal,1,MPI_INT,MPI_SUM,world); + if (ntotal != natoms) + error->all(FLERR,"Server md atom count does not match client"); + + atom->map_init(); + atom->map_set(); + atom->natoms = natoms; + + // allocate fcopy if needed + + if (units == REAL) { + memory->destroy(fcopy); + memory->create(fcopy,atom->nlocal,3,"server/md:fcopy"); + } + + // perform system setup() for dynamics + // also OK for minimization, since client runs minimizer + // return forces, energy, virial to client + + update->whichflag = 1; + lmp->init(); + update->integrate->setup_minimal(1); + neighcalls++; + forcecalls++; + + send_fev(msgID); + + // STEP receive at each timestep of run or minimization + // required fields: COORDS + // optional fields: ORIGIN, BOX + + } else if (msgID == STEP) { + + double *coords = NULL; + double *origin = NULL; + double *box = NULL; + + for (int ifield = 0; ifield < nfield; ifield++) { + if (fieldID[ifield] == COORDS) { + coords = (double *) cs->unpack(COORDS); + } else if (fieldID[ifield] == ORIGIN) { + origin = (double *) cs->unpack(ORIGIN); + } else if (fieldID[ifield] == BOX) { + box = (double *) cs->unpack(BOX); + } else error->all(FLERR,"Server md step field unknown"); + } + + if (!coords) + error->all(FLERR,"Required server md step field not received"); + + // change box size/shape, only if origin and box received + // reset global/local box like FixDeform at end_of_step() + + if (origin && box) { + if ((box[3] != 0.0 || box[6] != 0.0 || box[7] != 0.0) && + domain->triclinic == 0) + error->all(FLERR,"Server md is not initialized for a triclinic box"); + box_change(origin,box); + domain->set_global_box(); + domain->set_local_box(); + } + + // assign received coords to owned atoms + // closest_image() insures xyz matches current server PBC + + double **x = atom->x; + int nlocal = atom->nlocal; + int nall = atom->natoms; + + j = 0; + for (tagint id = 1; id <= nall; id++) { + m = atom->map(id); + if (m < 0 || m >= nlocal) j += 3; + else { + domain->closest_image(x[m],&coords[j],x[m]); + j += 3; + } + } + + // if no need to reneighbor: + // ghost comm + // setup_minimal(0) which just computes forces + // else: + // setup_minimal(1) for pbc, reset_box, reneigh, forces + + int nflag = neighbor->decide(); + if (nflag == 0) { + comm->forward_comm(); + update->integrate->setup_minimal(0); + } else { + update->integrate->setup_minimal(1); + neighcalls++; + } + + forcecalls++; + + send_fev(msgID); + + } else error->all(FLERR,"Server MD received unrecognized message"); + } + + // final reply to client + + cs->send(0,0); + + // stats + + if (comm->me == 0) { + if (screen) { + fprintf(screen,"Server MD calls = %d\n",forcecalls); + fprintf(screen,"Server MD reneighborings = %d\n",neighcalls); + } + if (logfile) { + fprintf(logfile,"Server MD calls = %d\n",forcecalls); + fprintf(logfile,"Server MD reneighborings %d\n",neighcalls); + } + } + + // clean up + + delete cs; + lmp->cslib = NULL; +} + +/* ---------------------------------------------------------------------- + box change due to received message +------------------------------------------------------------------------- */ + +void ServerMD::box_change(double *origin, double *box) +{ + domain->boxlo[0] = origin[0]; + domain->boxlo[1] = origin[1]; + domain->boxlo[2] = origin[2]; + + domain->boxhi[0] = origin[0] + box[0]; + domain->boxhi[1] = origin[1] + box[4]; + domain->boxhi[2] = origin[2] + box[8]; + + domain->xy = box[3]; + domain->xz = box[6]; + domain->yz = box[7]; +} + +/* ---------------------------------------------------------------------- + return message with forces, energy, pressure tensor + pressure tensor should be just pair and KSpace contributions + required fields: FORCES, ENERGY, PRESSURE + optional field: ERROR (not ever sending) +------------------------------------------------------------------------- */ + +void ServerMD::send_fev(int msgID) +{ + CSlib *cs = (CSlib *) lmp->cslib; + + cs->send(msgID,3); + + double *forces = NULL; + if (atom->nlocal) { + if (units != REAL) forces = &atom->f[0][0]; + else { + double **f = atom->f; + int nlocal = atom->nlocal; + for (int i = 0; i < nlocal; i++) { + fcopy[i][0] = fconvert*f[i][0]; + fcopy[i][1] = fconvert*f[i][1]; + fcopy[i][2] = fconvert*f[i][2]; + } + forces = &fcopy[0][0]; + } + } + cs->pack_parallel(FORCES,4,atom->nlocal,atom->tag,3,forces); + + double eng = force->pair->eng_vdwl + force->pair->eng_coul; + double engall; + MPI_Allreduce(&eng,&engall,1,MPI_DOUBLE,MPI_SUM,world); + engall *= econvert; + cs->pack_double(ENERGY,engall); + + double v[6],vall[6]; + for (int i = 0; i < 6; i++) + v[i] = force->pair->virial[i]; + MPI_Allreduce(&v,&vall,6,MPI_DOUBLE,MPI_SUM,world); + + if (force->kspace) + for (int i = 0; i < 6; i++) + vall[i] += force->kspace->virial[i]; + + double nktv2p = force->nktv2p; + double volume = domain->xprd * domain->yprd * domain->zprd; + double factor = pconvert / volume * nktv2p; + for (int i = 0; i < 6; i++) vall[i] *= factor; + + cs->pack(PRESSURE,4,6,vall); +} diff --git a/src/MESSAGE/server_md.h b/src/MESSAGE/server_md.h new file mode 100644 index 0000000000..289d70bdd8 --- /dev/null +++ b/src/MESSAGE/server_md.h @@ -0,0 +1,38 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +#ifndef LMP_SERVER_MD_H +#define LMP_SERVER_MD_H + +#include "pointers.h" + +namespace LAMMPS_NS { + +class ServerMD : protected Pointers { + public: + ServerMD(class LAMMPS *); + ~ServerMD(); + void loop(); + + private: + int units; + double fconvert,econvert,pconvert; + double **fcopy; + + void box_change(double *, double *); + void send_fev(int); +}; + +} + +#endif diff --git a/src/Makefile b/src/Makefile index 948d203cfe..b9cabfd67b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -53,7 +53,7 @@ endif # PACKEXT = subset that require an external (downloaded) library PACKAGE = asphere body class2 colloid compress coreshell dipole gpu \ - granular kim kokkos kspace latte manybody mc meam misc \ + granular kim kokkos kspace latte manybody mc meam message misc \ molecule mpiio mscg opt peri poems \ python qeq reax replica rigid shock snap spin srd voronoi @@ -65,14 +65,14 @@ PACKUSER = user-atc user-awpmd user-bocs user-cgdna user-cgsdk user-colvars \ user-quip user-reaxc user-smd user-smtbq user-sph user-tally \ user-uef user-vtk -PACKLIB = compress gpu kim kokkos latte meam mpiio mscg poems \ +PACKLIB = compress gpu kim kokkos latte meam message mpiio mscg poems \ python reax voronoi \ user-atc user-awpmd user-colvars user-h5md user-lb user-molfile \ user-netcdf user-qmmm user-quip user-smd user-vtk PACKSYS = compress mpiio python user-lb -PACKINT = gpu kokkos meam poems reax user-atc user-awpmd user-colvars +PACKINT = gpu kokkos meam message poems reax user-atc user-awpmd user-colvars PACKEXT = kim mscg voronoi \ user-h5md user-molfile user-netcdf user-qmmm user-quip \ diff --git a/src/USER-MISC/pair_morse_smooth_linear.cpp b/src/USER-MISC/pair_morse_smooth_linear.cpp index 328c1bd27b..4181fd5479 100644 --- a/src/USER-MISC/pair_morse_smooth_linear.cpp +++ b/src/USER-MISC/pair_morse_smooth_linear.cpp @@ -30,7 +30,6 @@ using namespace LAMMPS_NS; PairMorseSmoothLinear::PairMorseSmoothLinear(LAMMPS *lmp) : Pair(lmp) { writedata = 1; - } /* ---------------------------------------------------------------------- */ @@ -117,7 +116,7 @@ void PairMorseSmoothLinear::compute(int eflag, int vflag) if (eflag) { evdwl = d0[itype][jtype] * (dexp*dexp - 2.0*dexp) - - offset[itype][jtype]; + offset[itype][jtype]; evdwl -= ( r - cut[itype][jtype] ) * der_at_cutoff[itype][jtype]; evdwl *= factor_lj; } @@ -203,6 +202,14 @@ void PairMorseSmoothLinear::coeff(int narg, char **arg) alpha[i][j] = alpha_one; r0[i][j] = r0_one; cut[i][j] = cut_one; + + morse1[i][j] = 2.0*d0[i][j]*alpha[i][j]; + + double alpha_dr = -alpha[i][j] * (cut[i][j] - r0[i][j]); + + offset[i][j] = d0[i][j] * (exp(2.0*alpha_dr) - 2.0*exp(alpha_dr)); + der_at_cutoff[i][j] = -2.0*alpha[i][j]*d0[i][j] * (exp(2.0*alpha_dr) - exp(alpha_dr)); + setflag[i][j] = 1; count++; } @@ -222,17 +229,13 @@ double PairMorseSmoothLinear::init_one(int i, int j) morse1[i][j] = 2.0*d0[i][j]*alpha[i][j]; - double alpha_dr = -alpha[i][j] * (cut[i][j] - r0[i][j]); - - offset[i][j] = d0[i][j] * (exp(2.0*alpha_dr) - 2.0*exp(alpha_dr)); - der_at_cutoff[i][j] = -2.0*alpha[i][j]*d0[i][j] * (exp(2.0*alpha_dr) - exp(alpha_dr)); - d0[j][i] = d0[i][j]; alpha[j][i] = alpha[i][j]; r0[j][i] = r0[i][j]; morse1[j][i] = morse1[i][j]; der_at_cutoff[j][i] = der_at_cutoff[i][j]; offset[j][i] = offset[i][j]; + cut[j][i] = cut[i][j]; return cut[i][j]; } diff --git a/src/atom.cpp b/src/atom.cpp index eb2f357890..95f5406d95 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -1533,7 +1533,8 @@ void Atom::set_mass(const char *file, int line, int /*narg*/, char **arg) } /* ---------------------------------------------------------------------- - set all masses as read in from restart file + set all masses + called from reading of restart file, also from ServerMD ------------------------------------------------------------------------- */ void Atom::set_mass(double *values) diff --git a/src/domain.cpp b/src/domain.cpp index 1eb848fe06..8238ab7eea 100644 --- a/src/domain.cpp +++ b/src/domain.cpp @@ -1176,12 +1176,12 @@ int Domain::closest_image(int i, int j) if J is not a valid index like -1, just return it ------------------------------------------------------------------------- */ -int Domain::closest_image(double *pos, int j) +int Domain::closest_image(const double * const pos, int j) { if (j < 0) return j; - int *sametag = atom->sametag; - double **x = atom->x; + const int * const sametag = atom->sametag; + const double * const * const x = atom->x; int closest = j; double delx = pos[0] - x[j][0]; @@ -1208,13 +1208,10 @@ int Domain::closest_image(double *pos, int j) /* ---------------------------------------------------------------------- find and return Xj image = periodic image of Xj that is closest to Xi for triclinic, add/subtract tilt factors in other dims as needed - not currently used (Jan 2017): - used to be called by pair TIP4P styles but no longer, - due to use of other closest_image() method + called by ServerMD class and LammpsInterface in lib/atc. ------------------------------------------------------------------------- */ -void Domain::closest_image(const double * const xi, const double * const xj, - double * const xjimage) +void Domain::closest_image(const double * const xi, const double * const xj, double * const xjimage) { double dx = xj[0] - xi[0]; double dy = xj[1] - xi[1]; diff --git a/src/domain.h b/src/domain.h index 5581f9a45f..9ebdd6ae94 100644 --- a/src/domain.h +++ b/src/domain.h @@ -115,9 +115,8 @@ class Domain : protected Pointers { void minimum_image(double *); void minimum_image_once(double *); int closest_image(int, int); - int closest_image(double *, int); - void closest_image(const double * const, const double * const, - double * const); + int closest_image(const double * const, int); + void closest_image(const double * const, const double * const, double * const); void remap(double *, imageint &); void remap(double *); void remap_near(double *, double *); diff --git a/src/fix_tmd.cpp b/src/fix_tmd.cpp index ea448bd178..dd11dfd0c7 100644 --- a/src/fix_tmd.cpp +++ b/src/fix_tmd.cpp @@ -412,7 +412,7 @@ void FixTMD::readfile(char *file) m++; } - MPI_Bcast(&eof,sizeof(char *)/sizeof(char),MPI_CHAR,0,world); + MPI_Bcast(&eof,sizeof(char *),MPI_CHAR,0,world); MPI_Bcast(&nlines,1,MPI_INT,0,world); MPI_Bcast(&m,1,MPI_INT,0,world); MPI_Bcast(buffer,m,MPI_CHAR,0,world); diff --git a/src/lammps.cpp b/src/lammps.cpp index b73b62537f..21335065f4 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -47,8 +47,8 @@ #include "accelerator_omp.h" #include "timer.h" #include "python.h" -#include "memory.h" #include "version.h" +#include "memory.h" #include "error.h" #include "lmpinstalledpkgs.h" @@ -73,12 +73,46 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) output = NULL; python = NULL; + clientserver = 0; + cslib = NULL; + cscomm = 0; + screen = NULL; logfile = NULL; infile = NULL; initclock = MPI_Wtime(); + // check if -mpi is first arg + // if so, then 2 apps were launched with one mpirun command + // this means passed communicator (e.g. MPI_COMM_WORLD) is bigger than LAMMPS + // e.g. for client/server coupling with another code + // in the future LAMMPS might leverage this in other ways + // universe communicator needs to shrink to be just LAMMPS + // syntax: -mpi color + // color = integer for this app, different than other app(s) + // do the following: + // perform an MPI_Comm_split() to create a new LAMMPS-only subcomm + // NOTE: this assumes other app(s) does same thing, else will hang! + // re-create universe with subcomm + // store full multi-app comm in cscomm + // cscomm is used by CSLIB package to exchange messages w/ other app + + int iarg = 1; + if (narg-iarg >= 2 && (strcmp(arg[iarg],"-mpi") == 0 || + strcmp(arg[iarg],"-m") == 0)) { + int me,nprocs; + MPI_Comm_rank(communicator,&me); + MPI_Comm_size(communicator,&nprocs); + int color = atoi(arg[iarg+1]); + MPI_Comm subcomm; + MPI_Comm_split(communicator,color,me,&subcomm); + cscomm = communicator; + communicator = subcomm; + delete universe; + universe = new Universe(this,communicator); + } + // parse input switches int inflag = 0; @@ -107,59 +141,30 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) int *pfirst = NULL; int *plast = NULL; - int iarg = 1; + iarg = 1; while (iarg < narg) { - if (strcmp(arg[iarg],"-partition") == 0 || - strcmp(arg[iarg],"-p") == 0) { - universe->existflag = 1; + + if (strcmp(arg[iarg],"-echo") == 0 || + strcmp(arg[iarg],"-e") == 0) { if (iarg+2 > narg) error->universe_all(FLERR,"Invalid command-line argument"); - iarg++; - while (iarg < narg && arg[iarg][0] != '-') { - universe->add_world(arg[iarg]); - iarg++; - } + iarg += 2; + + } else if (strcmp(arg[iarg],"-help") == 0 || + strcmp(arg[iarg],"-h") == 0) { + if (iarg+1 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + helpflag = 1; + citeflag = 0; + iarg += 1; + } else if (strcmp(arg[iarg],"-in") == 0 || strcmp(arg[iarg],"-i") == 0) { if (iarg+2 > narg) error->universe_all(FLERR,"Invalid command-line argument"); inflag = iarg + 1; iarg += 2; - } else if (strcmp(arg[iarg],"-screen") == 0 || - strcmp(arg[iarg],"-sc") == 0) { - if (iarg+2 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - screenflag = iarg + 1; - iarg += 2; - } else if (strcmp(arg[iarg],"-log") == 0 || - strcmp(arg[iarg],"-l") == 0) { - if (iarg+2 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - logflag = iarg + 1; - iarg += 2; - } else if (strcmp(arg[iarg],"-var") == 0 || - strcmp(arg[iarg],"-v") == 0) { - if (iarg+3 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - iarg += 3; - while (iarg < narg && arg[iarg][0] != '-') iarg++; - } else if (strcmp(arg[iarg],"-echo") == 0 || - strcmp(arg[iarg],"-e") == 0) { - if (iarg+2 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - iarg += 2; - } else if (strcmp(arg[iarg],"-pscreen") == 0 || - strcmp(arg[iarg],"-ps") == 0) { - if (iarg+2 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - partscreenflag = iarg + 1; - iarg += 2; - } else if (strcmp(arg[iarg],"-plog") == 0 || - strcmp(arg[iarg],"-pl") == 0) { - if (iarg+2 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - partlogflag = iarg + 1; - iarg += 2; + } else if (strcmp(arg[iarg],"-kokkos") == 0 || strcmp(arg[iarg],"-k") == 0) { if (iarg+2 > narg) @@ -172,6 +177,26 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) kkfirst = iarg; while (iarg < narg && arg[iarg][0] != '-') iarg++; kklast = iarg; + + } else if (strcmp(arg[iarg],"-log") == 0 || + strcmp(arg[iarg],"-l") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + logflag = iarg + 1; + iarg += 2; + + } else if (strcmp(arg[iarg],"-mpi") == 0 || + strcmp(arg[iarg],"-m") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + if (iarg != 1) error->universe_all(FLERR,"Invalid command-line argument"); + iarg += 2; + + } else if (strcmp(arg[iarg],"-nocite") == 0 || + strcmp(arg[iarg],"-nc") == 0) { + citeflag = 0; + iarg++; + } else if (strcmp(arg[iarg],"-package") == 0 || strcmp(arg[iarg],"-pk") == 0) { if (iarg+2 > narg) @@ -188,6 +213,69 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) else break; } plast[npack++] = iarg; + + } else if (strcmp(arg[iarg],"-partition") == 0 || + strcmp(arg[iarg],"-p") == 0) { + universe->existflag = 1; + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + iarg++; + while (iarg < narg && arg[iarg][0] != '-') { + universe->add_world(arg[iarg]); + iarg++; + } + + } else if (strcmp(arg[iarg],"-plog") == 0 || + strcmp(arg[iarg],"-pl") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + partlogflag = iarg + 1; + iarg += 2; + + } else if (strcmp(arg[iarg],"-pscreen") == 0 || + strcmp(arg[iarg],"-ps") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + partscreenflag = iarg + 1; + iarg += 2; + + } else if (strcmp(arg[iarg],"-reorder") == 0 || + strcmp(arg[iarg],"-ro") == 0) { + if (iarg+3 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + if (universe->existflag) + error->universe_all(FLERR,"Cannot use -reorder after -partition"); + universe->reorder(arg[iarg+1],arg[iarg+2]); + iarg += 3; + + } else if (strcmp(arg[iarg],"-restart") == 0 || + strcmp(arg[iarg],"-r") == 0) { + if (iarg+3 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + restartflag = 1; + rfile = arg[iarg+1]; + dfile = arg[iarg+2]; + // check for restart remap flag + if (strcmp(dfile,"remap") == 0) { + if (iarg+4 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + restartremapflag = 1; + dfile = arg[iarg+3]; + iarg++; + } + iarg += 3; + // delimit any extra args for the write_data command + wdfirst = iarg; + while (iarg < narg && arg[iarg][0] != '-') iarg++; + wdlast = iarg; + + } else if (strcmp(arg[iarg],"-screen") == 0 || + strcmp(arg[iarg],"-sc") == 0) { + if (iarg+2 > narg) + error->universe_all(FLERR,"Invalid command-line argument"); + screenflag = iarg + 1; + iarg += 2; + } else if (strcmp(arg[iarg],"-suffix") == 0 || strcmp(arg[iarg],"-sf") == 0) { if (iarg+2 > narg) @@ -213,50 +301,14 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) strcpy(suffix,arg[iarg+1]); iarg += 2; } - } else if (strcmp(arg[iarg],"-reorder") == 0 || - strcmp(arg[iarg],"-ro") == 0) { + + } else if (strcmp(arg[iarg],"-var") == 0 || + strcmp(arg[iarg],"-v") == 0) { if (iarg+3 > narg) error->universe_all(FLERR,"Invalid command-line argument"); - if (universe->existflag) - error->universe_all(FLERR,"Cannot use -reorder after -partition"); - universe->reorder(arg[iarg+1],arg[iarg+2]); iarg += 3; - } else if (strcmp(arg[iarg],"-restart") == 0 || - strcmp(arg[iarg],"-r") == 0) { - if (iarg+3 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - restartflag = 1; - rfile = arg[iarg+1]; - dfile = arg[iarg+2]; - // check for restart remap flag - if (strcmp(dfile,"remap") == 0) { - if (iarg+4 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - restartremapflag = 1; - dfile = arg[iarg+3]; - iarg++; - } - iarg += 3; - // delimit any extra args for the write_data command - wdfirst = iarg; while (iarg < narg && arg[iarg][0] != '-') iarg++; - wdlast = iarg; - } else if (strcmp(arg[iarg],"-nocite") == 0 || - strcmp(arg[iarg],"-nc") == 0) { - citeflag = 0; - iarg++; - } else if (strcmp(arg[iarg],"-help") == 0 || - strcmp(arg[iarg],"-h") == 0) { - if (iarg+1 > narg) - error->universe_all(FLERR,"Invalid command-line argument"); - helpflag = 1; - citeflag = 0; - iarg += 1; - } else { - char msg[2048]; - sprintf( msg, "Invalid command-line argument \"%s\"\n", arg[iarg] ); - error->universe_all(FLERR,msg); - } + } // if no partition command-line switch, universe is one world with all procs @@ -599,6 +651,14 @@ LAMMPS::~LAMMPS() delete [] suffix; delete [] suffix2; + // free the MPI comm created by -mpi command-line arg processed in constructor + // it was passed to universe as if original universe world + // may have been split later by partitions, universe will free the splits + // free a copy of uorig here, so check in universe destructor will still work + + MPI_Comm copy = universe->uorig; + if (cscomm) MPI_Comm_free(©); + delete input; delete universe; delete error; @@ -818,6 +878,7 @@ void LAMMPS::help() "-in filename : read input from file, not stdin (-i)\n" "-kokkos on/off ... : turn KOKKOS mode on or off (-k)\n" "-log none/filename : where to send log output (-l)\n" + "-mpicolor color : which exe in a multi-exe mpirun cmd (-m)\n" "-nocite : disable writing log.cite file (-nc)\n" "-package style ... : invoke package command (-pk)\n" "-partition size1 size2 ... : assign partition sizes (-p)\n" diff --git a/src/lammps.h b/src/lammps.h index b2c8673471..5ccef3026e 100644 --- a/src/lammps.h +++ b/src/lammps.h @@ -51,6 +51,10 @@ class LAMMPS { int num_package; // number of cmdline package commands int cite_enable; // 1 if generating log.cite, 0 if disabled + int clientserver; // 0 = neither, 1 = client, 2 = server + void *cslib; // client/server messaging via CSlib + MPI_Comm cscomm; // MPI comm for client+server in mpi/one mode + class KokkosLMP *kokkos; // KOKKOS accelerator class class AtomKokkos *atomKK; // KOKKOS version of Atom class class MemoryKokkos *memoryKK; // KOKKOS version of Memory class diff --git a/src/library.cpp b/src/library.cpp index 245ae7ba84..a46689da09 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1515,7 +1515,8 @@ void lammps_create_atoms(void *ptr, int n, tagint *id, int *type, if (lmp->atom->natoms != natoms_prev + n) { char str[128]; sprintf(str,"Library warning in lammps_create_atoms, " - "invalid total atoms " BIGINT_FORMAT " %lld",lmp->atom->natoms,natoms_prev+n); + "invalid total atoms " BIGINT_FORMAT " " BIGINT_FORMAT, + lmp->atom->natoms,natoms_prev+n); if (lmp->comm->me == 0) lmp->error->warning(FLERR,str); } diff --git a/src/version.h b/src/version.h index 2192b25d91..fbeeabff8d 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "22 Aug 2018" +#define LAMMPS_VERSION "31 Aug 2018" From c192236a7e50a4a83e0fdca78fffa9174f1ee790 Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Wed, 5 Sep 2018 11:28:06 -0400 Subject: [PATCH 655/675] Commit before switching to old master. --- src/lammps.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lammps.cpp b/src/lammps.cpp index 21335065f4..fcdfecf30a 100644 --- a/src/lammps.cpp +++ b/src/lammps.cpp @@ -309,6 +309,7 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator) iarg += 3; while (iarg < narg && arg[iarg][0] != '-') iarg++; + } else error->universe_all(FLERR,"Invalid command-line argument"); } // if no partition command-line switch, universe is one world with all procs From 1c8feed69fa0d364c752ac768af263263c297db2 Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Wed, 5 Sep 2018 11:38:04 -0400 Subject: [PATCH 656/675] Removed gpu makefile from wrong branch. --- lib/gpu/Makefile.linux | 52 ------------------------------------------ 1 file changed, 52 deletions(-) delete mode 100644 lib/gpu/Makefile.linux diff --git a/lib/gpu/Makefile.linux b/lib/gpu/Makefile.linux deleted file mode 100644 index b0218c8d39..0000000000 --- a/lib/gpu/Makefile.linux +++ /dev/null @@ -1,52 +0,0 @@ -# /* ---------------------------------------------------------------------- -# Generic Linux Makefile for CUDA -# - Change CUDA_ARCH for your GPU -# ------------------------------------------------------------------------- */ - -# which file will be copied to Makefile.lammps - -EXTRAMAKE = Makefile.lammps.standard - -ifeq ($(CUDA_HOME),) -CUDA_HOME = /opt/cuda -endif - -NVCC = nvcc - -# older CUDA -#CUDA_ARCH = -arch=sm_21 -# newer CUDA -#CUDA_ARCH = -arch=sm_13 -# older CUDA -#CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE -CUDA_ARCH = -arch=sm_61 - -# this setting should match LAMMPS Makefile -# one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL - -LMP_INC = -DLAMMPS_SMALLBIG - -# precision for GPU calculations -# -D_SINGLE_SINGLE # Single precision for all calculations -# -D_DOUBLE_DOUBLE # Double precision for all calculations -# -D_SINGLE_DOUBLE # Accumulation of forces, etc. in double - -CUDA_PRECISION = -D_SINGLE_DOUBLE - -CUDA_INCLUDE = -I$(CUDA_HOME)/include -CUDA_LIB = -L$(CUDA_HOME)/lib64 -CUDA_OPTS = -DUNIX -O3 -Xptxas -v --use_fast_math $(LMP_INC) -Xcompiler -fPIC - -CUDR_CPP = mpicxx -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC -CUDR_OPTS = -O2 $(LMP_INC) # -xHost -no-prec-div -ansi-alias - -BIN_DIR = ./ -OBJ_DIR = ./ -LIB_DIR = ./ -AR = ar -BSH = /bin/sh - -CUDPP_OPT = -DUSE_CUDPP -Icudpp_mini - -include Nvidia.makefile - From 9b38a5b359f1622d68d9946119ee1053882c1a4b Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Wed, 5 Sep 2018 11:39:41 -0400 Subject: [PATCH 657/675] Replaced gpu Makefile with the one from upstream so as not to delete it. --- lib/gpu/Makefile.linux | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 lib/gpu/Makefile.linux diff --git a/lib/gpu/Makefile.linux b/lib/gpu/Makefile.linux new file mode 100644 index 0000000000..9580bfd4ae --- /dev/null +++ b/lib/gpu/Makefile.linux @@ -0,0 +1,52 @@ +# /* ---------------------------------------------------------------------- +# Generic Linux Makefile for CUDA +# - Change CUDA_ARCH for your GPU +# ------------------------------------------------------------------------- */ + +# which file will be copied to Makefile.lammps + +EXTRAMAKE = Makefile.lammps.standard + +ifeq ($(CUDA_HOME),) +CUDA_HOME = /usr/local/cuda +endif + +NVCC = nvcc + +# older CUDA +#CUDA_ARCH = -arch=sm_21 +# newer CUDA +#CUDA_ARCH = -arch=sm_13 +# older CUDA +#CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE +CUDA_ARCH = -arch=sm_35 + +# this setting should match LAMMPS Makefile +# one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL + +LMP_INC = -DLAMMPS_SMALLBIG + +# precision for GPU calculations +# -D_SINGLE_SINGLE # Single precision for all calculations +# -D_DOUBLE_DOUBLE # Double precision for all calculations +# -D_SINGLE_DOUBLE # Accumulation of forces, etc. in double + +CUDA_PRECISION = -D_SINGLE_DOUBLE + +CUDA_INCLUDE = -I$(CUDA_HOME)/include +CUDA_LIB = -L$(CUDA_HOME)/lib64 +CUDA_OPTS = -DUNIX -O3 -Xptxas -v --use_fast_math $(LMP_INC) -Xcompiler -fPIC + +CUDR_CPP = mpicxx -DMPI_GERYON -DUCL_NO_EXIT -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX=1 -fPIC +CUDR_OPTS = -O2 $(LMP_INC) # -xHost -no-prec-div -ansi-alias + +BIN_DIR = ./ +OBJ_DIR = ./ +LIB_DIR = ./ +AR = ar +BSH = /bin/sh + +CUDPP_OPT = -DUSE_CUDPP -Icudpp_mini + +include Nvidia.makefile + From 5003354fba49486aba084ca9af97cea5649e7414 Mon Sep 17 00:00:00 2001 From: Stefan Paquay Date: Wed, 5 Sep 2018 11:42:48 -0400 Subject: [PATCH 658/675] Replaced a tab with whitespace. --- src/USER-MISC/pair_morse_smooth_linear.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/USER-MISC/pair_morse_smooth_linear.cpp b/src/USER-MISC/pair_morse_smooth_linear.cpp index 4181fd5479..a88e7a1a27 100644 --- a/src/USER-MISC/pair_morse_smooth_linear.cpp +++ b/src/USER-MISC/pair_morse_smooth_linear.cpp @@ -116,7 +116,7 @@ void PairMorseSmoothLinear::compute(int eflag, int vflag) if (eflag) { evdwl = d0[itype][jtype] * (dexp*dexp - 2.0*dexp) - - offset[itype][jtype]; + offset[itype][jtype]; evdwl -= ( r - cut[itype][jtype] ) * der_at_cutoff[itype][jtype]; evdwl *= factor_lj; } From 510e09f4ef002cf633a1060497fef4e92c735904 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 5 Sep 2018 13:39:18 -0400 Subject: [PATCH 659/675] patch 5Sep18 --- doc/src/Manual.txt | 4 ++-- src/version.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Manual.txt b/doc/src/Manual.txt index e442aa1808..5af157d8ea 100644 --- a/doc/src/Manual.txt +++ b/doc/src/Manual.txt @@ -1,7 +1,7 @@ LAMMPS Users Manual - + @@ -21,7 +21,7 @@ :line LAMMPS Documentation :c,h1 -31 Aug 2018 version :c,h2 +5 Sep 2018 version :c,h2 "What is a LAMMPS version?"_Manual_version.html diff --git a/src/version.h b/src/version.h index fbeeabff8d..0b8c1e8736 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "31 Aug 2018" +#define LAMMPS_VERSION "5 Sep 2018" From ad498811b1f254e946edc6812f64e827d44e63d1 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 5 Sep 2018 16:04:35 -0400 Subject: [PATCH 660/675] cmake: add missing fix_omp.h and fix_omp.cpp to compilation --- cmake/CMakeLists.txt | 3 ++- cmake/Modules/StyleHeaderUtils.cmake | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3634138747..62a2fbdef4 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -777,6 +777,7 @@ if(PKG_USER-OMP) set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP) set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp ${USER-OMP_SOURCES_DIR}/thr_omp.cpp + ${USER-OMP_SOURCES_DIR}/fix_omp.cpp ${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp ${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp ${USER-OMP_SOURCES_DIR}/domain_omp.cpp) @@ -785,7 +786,7 @@ if(PKG_USER-OMP) # detects styles which have USER-OMP version RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES) - + RegisterFixStyle("${USER-OMP_SOURCES_DIR}/fix_omp.h") get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES) diff --git a/cmake/Modules/StyleHeaderUtils.cmake b/cmake/Modules/StyleHeaderUtils.cmake index 2b00a81c8d..d621e4c9c0 100644 --- a/cmake/Modules/StyleHeaderUtils.cmake +++ b/cmake/Modules/StyleHeaderUtils.cmake @@ -85,6 +85,10 @@ function(RegisterNPairStyle path) AddStyleHeader(${path} NPAIR) endfunction(RegisterNPairStyle) +function(RegisterFixStyle path) + AddStyleHeader(${path} FIX) +endfunction(RegisterFixStyle) + function(RegisterStyles search_path) FindStyleHeaders(${search_path} ANGLE_CLASS angle_ ANGLE ) # angle ) # force FindStyleHeaders(${search_path} ATOM_CLASS atom_vec_ ATOM_VEC ) # atom ) # atom atom_vec_hybrid From ba1c5d3191da1effbcd8af6ab0df56b886578527 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 5 Sep 2018 21:39:09 -0400 Subject: [PATCH 661/675] Avoid buffer overflow during errors with long filenames --- src/error.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/error.cpp b/src/error.cpp index 3feaf1d1ac..913239ac49 100644 --- a/src/error.cpp +++ b/src/error.cpp @@ -75,7 +75,7 @@ void Error::universe_all(const char *file, int line, const char *str) update->whichflag = 0; char msg[100]; - sprintf(msg, "ERROR: %s (%s:%d)\n", str, file, line); + snprintf(msg, 100, "ERROR: %s (%s:%d)\n", str, truncpath(file), line); throw LAMMPSException(msg); #else MPI_Finalize(); @@ -100,7 +100,7 @@ void Error::universe_one(const char *file, int line, const char *str) update->whichflag = 0; char msg[100]; - sprintf(msg, "ERROR: %s (%s:%d)\n", str, file, line); + snprintf(msg, 100, "ERROR: %s (%s:%d)\n", str, truncpath(file), line); throw LAMMPSAbortException(msg, universe->uworld); #else MPI_Abort(universe->uworld,1); @@ -151,7 +151,7 @@ void Error::all(const char *file, int line, const char *str) update->whichflag = 0; char msg[100]; - sprintf(msg, "ERROR: %s (%s:%d)\n", str, file, line); + snprintf(msg, 100, "ERROR: %s (%s:%d)\n", str, truncpath(file), line); if (universe->nworlds > 1) { throw LAMMPSAbortException(msg, universe->uworld); @@ -201,7 +201,7 @@ void Error::one(const char *file, int line, const char *str) update->whichflag = 0; char msg[100]; - sprintf(msg, "ERROR on proc %d: %s (%s:%d)\n", me, str, file, line); + snprintf(msg, 100, "ERROR on proc %d: %s (%s:%d)\n", me, str, truncpath(file), line); throw LAMMPSAbortException(msg, world); #else MPI_Abort(world,1); From b3079f3aec02e74ce14616b6fdf91454e2bd35f2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Sep 2018 12:05:32 -0400 Subject: [PATCH 662/675] rename files and classes for pair style eam/cd/omp to follow the rename of the non-threaded classes --- src/Purge.list | 3 +++ ...pair_cdeam_omp.cpp => pair_eam_cd_omp.cpp} | 14 ++++++------ .../{pair_cdeam_omp.h => pair_eam_cd_omp.h} | 22 +++++++++---------- 3 files changed, 21 insertions(+), 18 deletions(-) rename src/USER-OMP/{pair_cdeam_omp.cpp => pair_eam_cd_omp.cpp} (97%) rename src/USER-OMP/{pair_cdeam_omp.h => pair_eam_cd_omp.h} (71%) diff --git a/src/Purge.list b/src/Purge.list index cb98636b1c..c70392c935 100644 --- a/src/Purge.list +++ b/src/Purge.list @@ -24,6 +24,9 @@ style_nstencil.h style_ntopo.h # other auto-generated files lmpinstalledpkgs.h +# renamed on 6 September 2018 +pair_cdeam_omp.h +pair_cdeam_omp.cpp # renamed on 31 July 2018 pair_cdeam.h pair_cdeam.cpp diff --git a/src/USER-OMP/pair_cdeam_omp.cpp b/src/USER-OMP/pair_eam_cd_omp.cpp similarity index 97% rename from src/USER-OMP/pair_cdeam_omp.cpp rename to src/USER-OMP/pair_eam_cd_omp.cpp index c3a9454567..68c01c83d2 100644 --- a/src/USER-OMP/pair_cdeam_omp.cpp +++ b/src/USER-OMP/pair_eam_cd_omp.cpp @@ -15,7 +15,7 @@ #include #include -#include "pair_cdeam_omp.h" +#include "pair_eam_cd_omp.h" #include "atom.h" #include "comm.h" #include "error.h" @@ -44,8 +44,8 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -PairCDEAMOMP::PairCDEAMOMP(LAMMPS *lmp, int _cdeamVersion) : - PairEAM(lmp), PairCDEAM(lmp,_cdeamVersion), ThrOMP(lmp, THR_PAIR) +PairEAMCDOMP::PairEAMCDOMP(LAMMPS *lmp, int _cdeamVersion) : + PairEAM(lmp), PairEAMCD(lmp,_cdeamVersion), ThrOMP(lmp, THR_PAIR) { suffix_flag |= Suffix::OMP; respa_enable = 0; @@ -53,7 +53,7 @@ PairCDEAMOMP::PairCDEAMOMP(LAMMPS *lmp, int _cdeamVersion) : /* ---------------------------------------------------------------------- */ -void PairCDEAMOMP::compute(int eflag, int vflag) +void PairEAMCDOMP::compute(int eflag, int vflag) { if (eflag || vflag) { ev_setup(eflag,vflag); @@ -143,7 +143,7 @@ void PairCDEAMOMP::compute(int eflag, int vflag) } template -void PairCDEAMOMP::eval(int iifrom, int iito, ThrData * const thr) +void PairEAMCDOMP::eval(int iifrom, int iito, ThrData * const thr) { int i,j,ii,jj,jnum,itype,jtype; double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; @@ -534,10 +534,10 @@ void PairCDEAMOMP::eval(int iifrom, int iito, ThrData * const thr) /* ---------------------------------------------------------------------- */ -double PairCDEAMOMP::memory_usage() +double PairEAMCDOMP::memory_usage() { double bytes = memory_usage_thr(); - bytes += PairCDEAM::memory_usage(); + bytes += PairEAMCD::memory_usage(); return bytes; } diff --git a/src/USER-OMP/pair_cdeam_omp.h b/src/USER-OMP/pair_eam_cd_omp.h similarity index 71% rename from src/USER-OMP/pair_cdeam_omp.h rename to src/USER-OMP/pair_eam_cd_omp.h index 2839ab0ed0..d46a5383f5 100644 --- a/src/USER-OMP/pair_cdeam_omp.h +++ b/src/USER-OMP/pair_eam_cd_omp.h @@ -17,23 +17,23 @@ #ifdef PAIR_CLASS -PairStyle(eam/cd/omp,PairCDEAM_OneSiteOMP) -PairStyle(eam/cd/old/omp,PairCDEAM_TwoSiteOMP) +PairStyle(eam/cd/omp,PairEAMCD_OneSiteOMP) +PairStyle(eam/cd/old/omp,PairEAMCD_TwoSiteOMP) #else -#ifndef LMP_PAIR_CDEAM_OMP_H -#define LMP_PAIR_CDEAM_OMP_H +#ifndef LMP_PAIR_EAM_CD_OMP_H +#define LMP_PAIR_EAM_CD_OMP_H -#include "pair_cdeam.h" +#include "pair_eam_cd.h" #include "thr_omp.h" namespace LAMMPS_NS { -class PairCDEAMOMP : public PairCDEAM, public ThrOMP { +class PairEAMCDOMP : public PairEAMCD, public ThrOMP { public: - PairCDEAMOMP(class LAMMPS *, int); + PairEAMCDOMP(class LAMMPS *, int); virtual void compute(int, int); virtual double memory_usage(); @@ -44,19 +44,19 @@ class PairCDEAMOMP : public PairCDEAM, public ThrOMP { }; /// The one-site concentration formulation of CD-EAM. - class PairCDEAM_OneSiteOMP : public PairCDEAMOMP + class PairEAMCD_OneSiteOMP : public PairEAMCDOMP { public: /// Constructor. - PairCDEAM_OneSiteOMP(class LAMMPS* lmp) : PairEAM(lmp), PairCDEAMOMP(lmp, 1) {} + PairEAMCD_OneSiteOMP(class LAMMPS* lmp) : PairEAM(lmp), PairEAMCDOMP(lmp, 1) {} }; /// The two-site concentration formulation of CD-EAM. - class PairCDEAM_TwoSiteOMP : public PairCDEAMOMP + class PairEAMCD_TwoSiteOMP : public PairEAMCDOMP { public: /// Constructor. - PairCDEAM_TwoSiteOMP(class LAMMPS* lmp) : PairEAM(lmp), PairCDEAMOMP(lmp, 2) {} + PairEAMCD_TwoSiteOMP(class LAMMPS* lmp) : PairEAM(lmp), PairEAMCDOMP(lmp, 2) {} }; } From efd582fb21d11dcb32c10a6cc4267b9578ece81d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Sep 2018 13:13:20 -0400 Subject: [PATCH 663/675] update list of code owners for automatic review requests. started assigning core files --- .github/CODEOWNERS | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b91e58a83f..4f561a4c19 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -17,6 +17,7 @@ src/GPU/* @ndtrung81 src/KOKKOS/* @stanmoore1 src/KIM/* @ellio167 src/LATTE/* @cnegre +src/MESSAGE/* @sjplimp src/SPIN/* @julient31 src/USER-CGDNA/* @ohenrich src/USER-CGSDK/* @akohlmey @@ -32,16 +33,82 @@ src/USER-PHONON/* @lingtikong src/USER-OMP/* @akohlmey src/USER-QMMM/* @akohlmey src/USER-REAXC/* @hasanmetin +src/USER-SCAFACOS/* @rhalver src/USER-TALLY/* @akohlmey src/USER-UEF/* @danicholson src/USER-VTK/* @rbberger + # individual files in packages src/GPU/pair_vashishta_gpu.* @andeplane src/KOKKOS/pair_vashishta_kokkos.* @andeplane src/MANYBODY/pair_vashishta_table.* @andeplane +src/MANYBODY/pair_atm.* @sergeylishchuk src/USER-MISC/fix_bond_react.* @jrgissing src/USER-MISC/*_grem.* @dstelter92 +src/USER-MISC/compute_stress_mop*.* @RomainVermorel + +# core LAMMPS classes +src/lammps.* @sjplimp +src/pointers.h @sjplimp +src/atom.* @sjplimp +src/atom_vec.* @sjplimp +src/angle.* @sjplimp +src/bond.* @sjplimp +src/comm*.* @sjplimp +src/compute.* @sjplimp +src/dihedral.* @sjplimp +src/domain.* @sjplimp +src/dump*.* @sjplimp +src/error.* @sjplimp +src/finish.* @sjplimp +src/fix.* @sjplimp +src/force.* @sjplimp +src/group.* @sjplimp +src/improper.* @sjplimp +src/kspace.* @sjplimp +src/lmptyp.h @sjplimp +src/library.* @sjplimp +src/main.cpp @sjplimp +src/memory.* @sjplimp +src/modify.* @sjplimp +src/molecule.* @sjplimp +src/my_page.h @sjplimp +src/my_pool_chunk.h @sjplimp +src/npair*.* @sjplimp +src/ntopo*.* @sjplimp +src/nstencil*.* @sjplimp +src/neighbor.* @sjplimp +src/nbin*.* @sjplimp +src/neigh_*.* @sjplimp +src/output.* @sjplimp +src/pair.* @sjplimp +src/rcb.* @sjplimp +src/random_*.* @sjplimp +src/region*.* @sjplimp +src/rcb.* @sjplimp +src/read*.* @sjplimp +src/rerun.* @sjplimp +src/run.* @sjplimp +src/respa.* @sjplimp +src/set.* @sjplimp +src/special.* @sjplimp +src/suffix.h @sjplimp +src/thermo.* @sjplimp +src/universe.* @sjplimp +src/update.* @sjplimp +src/variable.* @sjplimp +src/verlet.* @sjplimp +src/velocity.* @sjplimp +src/write_data.* @sjplimp +src/write_restart.* @sjplimp + +# overrides for specific files +src/dump_movie.* @akohlmey +src/exceptions.h @rbberger +src/fix_nh.* @athomps +src/info.* @akohlmey @rbberger +src/timer.* @akohlmey # tools tools/msi2lmp/* @akohlmey From d7b00f86f88cb2266de9eaaf3a8ef0729f9ce42a Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 6 Sep 2018 14:18:28 -0600 Subject: [PATCH 664/675] cmake: fix Eigen3 detection For some reason FindEigen3.cmake defines all cap. variables, i.e. Eigen3_FOUND -> EIGEN3_FOUND --- cmake/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 2e238cdf2b..149f9da817 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -551,7 +551,7 @@ if(PKG_USER-SMD) list(APPEND LAMMPS_DEPS Eigen3_build) else() find_package(Eigen3) - if(NOT Eigen3_FOUND) + if(NOT EIGEN3_FOUND) message(FATAL_ERROR "Eigen3 not found, help CMake to find it by setting EIGEN3_INCLUDE_DIR, or set DOWNLOAD_EIGEN3=ON to download it") endif() endif() From 8f8aee65d20f9b11ab4e7f70e9412202ae9fdfc5 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Thu, 6 Sep 2018 14:37:08 -0600 Subject: [PATCH 665/675] cmake: fix globbing of emacs files Done by: sed -i '/GLOB/s@/\*\.@/[^.]*.@g' CMakeLists.txt --- cmake/CMakeLists.txt | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 2e238cdf2b..45e6870ce8 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -13,7 +13,7 @@ get_filename_component(LAMMPS_DOC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../doc ABSOLUT # To avoid conflicts with the conventional Makefile build system, we build everything here -file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp) +file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/[^.]*.cpp) file(GLOB LMP_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp) list(REMOVE_ITEM LIB_SOURCES ${LMP_SOURCES}) @@ -348,7 +348,7 @@ if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE) find_package(BLAS) if(NOT LAPACK_FOUND OR NOT BLAS_FOUND) enable_language(Fortran) - file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.[fF]) + file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.[fF]) add_library(linalg STATIC ${LAPACK_SOURCES}) set(LAPACK_LIBRARIES linalg) else() @@ -603,7 +603,7 @@ endif() if(PKG_MESSAGE) option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF) - file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F + file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.F ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp) if(BUILD_SHARED_LIBS) @@ -720,8 +720,8 @@ RegisterStyles(${LAMMPS_SOURCE_DIR}) foreach(PKG ${DEFAULT_PACKAGES}) set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG}) - file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp) - file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h) + file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/[^.]*.cpp) + file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/[^.]*.h) # check for package files in src directory due to old make system DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS}) @@ -739,8 +739,8 @@ endforeach() foreach(PKG ${ACCEL_PACKAGES}) set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG}) - file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp) - file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h) + file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/[^.]*.cpp) + file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/[^.]*.h) # check for package files in src directory due to old make system DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS}) @@ -754,7 +754,7 @@ foreach(SIMPLE_LIB REAX MEAM POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD if(PKG_${SIMPLE_LIB}) string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}") string(TOLOWER "${PKG_LIB}" PKG_LIB) - file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.F + file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.F ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.c ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.cpp) add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES}) list(APPEND LAMMPS_LINK_LIBS ${PKG_LIB}) @@ -1039,7 +1039,7 @@ if(PKG_GPU) set(GPU_PREC_SETTING "SINGLE_SINGLE") endif() - file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cpp) + file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cpp) file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu) if(GPU_API STREQUAL "CUDA") @@ -1052,15 +1052,15 @@ if(PKG_GPU) set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM architecture (e.g. sm_60)") - file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/*.cu) + file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu) list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu) cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu ${LAMMPS_LIB_BINARY_DIR}/gpu) if(CUDPP_OPT) cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini) - file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cpp) - file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cu) + file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cpp) + file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cu) endif() cuda_compile_cubin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS @@ -1109,7 +1109,7 @@ if(PKG_GPU) include(OpenCLUtils) set(OCL_COMMON_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_preprocessor.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_aux_fun1.h) - file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu) + file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu) list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu) foreach(GPU_KERNEL ${GPU_LIB_CU}) @@ -1236,7 +1236,7 @@ if(BUILD_DOC) set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv) - file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/*.txt) + file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.txt) file(GLOB PDF_EXTRA_SOURCES ${LAMMPS_DOC_DIR}/src/lammps_commands*.txt ${LAMMPS_DOC_DIR}/src/lammps_support.txt ${LAMMPS_DOC_DIR}/src/lammps_tutorials.txt) list(REMOVE_ITEM DOC_SOURCES ${PDF_EXTRA_SOURCES}) From dd64c063cf804205bfb5ea90ed1be325243814d9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 6 Sep 2018 22:28:20 -0400 Subject: [PATCH 666/675] various fixes for the manual to address breakage from merging MESSAGE and USER-SCAFACOS packages --- doc/src/Build_package.txt | 4 ++-- doc/src/Howto_client_server.txt | 2 +- doc/src/Packages_details.txt | 4 ++-- doc/src/Run_options.txt | 2 +- doc/src/commands_list.txt | 2 ++ doc/src/fix_client_md.txt | 2 +- doc/src/fixes.txt | 1 + doc/src/kspace_modify.txt | 2 +- doc/src/kspace_style.txt | 4 ++-- doc/src/lammps.book | 1 + 10 files changed, 14 insertions(+), 10 deletions(-) diff --git a/doc/src/Build_package.txt b/doc/src/Build_package.txt index 285220e6c6..f1aa4bb671 100644 --- a/doc/src/Build_package.txt +++ b/doc/src/Build_package.txt @@ -42,7 +42,7 @@ packages: "KOKKOS"_Build_extras.html#kokkos, "LATTE"_Build_extras.html#latte, "MEAM"_Build_extras.html#meam, -"MESSAGE"_#Build_extras.html#message, +"MESSAGE"_Build_extras.html#message, "MSCG"_Build_extras.html#mscg, "OPT"_Build_extras.html#opt, "POEMS"_Build_extras.html#poems, @@ -59,7 +59,7 @@ packages: "USER-OMP"_Build_extras.html#user-omp, "USER-QMMM"_Build_extras.html#user-qmmm, "USER-QUIP"_Build_extras.html#user-quip, -"USER-SCAFACOS"_#Build_extras.html#user-scafacos, +"USER-SCAFACOS"_Build_extras.html#user-scafacos, "USER-SMD"_Build_extras.html#user-smd, "USER-VTK"_Build_extras.html#user-vtk :tb(c=6,ea=c,a=l) diff --git a/doc/src/Howto_client_server.txt b/doc/src/Howto_client_server.txt index 714c23f066..061c4efb68 100644 --- a/doc/src/Howto_client_server.txt +++ b/doc/src/Howto_client_server.txt @@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :line -Using LAMMPS in client/server mode +Using LAMMPS in client/server mode :h3 Client/server coupling of two codes is where one code is the "client" and sends request messages to a "server" code. The server responds to diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 443d78922c..b0b72f1f13 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -92,7 +92,7 @@ as contained in the file name. "USER-QTB"_#PKG-USER-QTB, "USER-QUIP"_#PKG-USER-QUIP, "USER-REAXC"_#PKG-USER-REAXC, -"USER-SCAFACOS"_#USER-SCAFACOS, +"USER-SCAFACOS"_#PKG-USER-SCAFACOS, "USER-SMD"_#PKG-USER-SMD, "USER-SMTBQ"_#PKG-USER-SMTBQ, "USER-SPH"_#PKG-USER-SPH, @@ -1860,7 +1860,7 @@ examples/reax :ul :line -USER-SCAFACOS package :link(USER-SCAFACOS),h4 +USER-SCAFACOS package :link(PKG-USER-SCAFACOS),h4 [Contents:] diff --git a/doc/src/Run_options.txt b/doc/src/Run_options.txt index 27f436ed55..1fc00bc2e3 100644 --- a/doc/src/Run_options.txt +++ b/doc/src/Run_options.txt @@ -176,7 +176,7 @@ Option -plog will override the name of the partition log files file.N. :line -[-mpicolor] color :link(mpi) +[-mpicolor] color :link(mpicolor) If used, this must be the first command-line argument after the LAMMPS executable name. It is only used when LAMMPS is launched by an mpirun diff --git a/doc/src/commands_list.txt b/doc/src/commands_list.txt index 8fae57a718..db3ef36ddf 100644 --- a/doc/src/commands_list.txt +++ b/doc/src/commands_list.txt @@ -89,6 +89,8 @@ Commands :h1 run run_style server + server_mc + server_md set shell special_bonds diff --git a/doc/src/fix_client_md.txt b/doc/src/fix_client_md.txt index 5b62d5617d..77f6b82c5e 100644 --- a/doc/src/fix_client_md.txt +++ b/doc/src/fix_client_md.txt @@ -50,7 +50,7 @@ md"_server_md.html doc page. Note that when using LAMMPS as an MD client, your LAMMPS input script should not normally contain force field commands, like a -"pair_style"_doc/pair_style.html, "bond_style"_doc/bond_style.html, or +"pair_style"_pair_style.html, "bond_style"_bond_style.html, or "kspace_style"_kspace_style.html commmand. However it is possible for a server code to only compute a portion of the full force-field, while LAMMPS computes the remaining part. Your LAMMPS script can also diff --git a/doc/src/fixes.txt b/doc/src/fixes.txt index 7a45ed8086..f2f257b134 100644 --- a/doc/src/fixes.txt +++ b/doc/src/fixes.txt @@ -26,6 +26,7 @@ Fixes :h1 fix_bond_swap fix_bond_react fix_box_relax + fix_client_md fix_cmap fix_colvars fix_controller diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index 7e40323664..41973601d7 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -133,7 +133,7 @@ the code will stop with an error message. When this option is set to For a typical application, using the automatic parameter generation will provide simulations that are either inaccurate or slow. Using this option is thus not recommended. For guidelines on how to obtain good -parameters, see the "How-To"_Section_howto.html#howto_24 discussion. +parameters, see the "How-To"_Howto_dispersion.html discussion. :line diff --git a/doc/src/kspace_style.txt b/doc/src/kspace_style.txt index ddf4e15703..6d8a289470 100644 --- a/doc/src/kspace_style.txt +++ b/doc/src/kspace_style.txt @@ -383,8 +383,8 @@ dimensions. The only exception is if the slab option is set with must be periodic and the z dimension must be non-periodic. The scafacos KSpace style will only be enabled if LAMMPS is built with -the USER-SCAFACOS package. See the "Making -LAMMPS"_Section_start.html#start_3 section for more info. +the USER-SCAFACOS package. See the "Build package"_Build_package.html +doc page for more info. The use of ScaFaCos in LAMMPS does not yet support molecular charged systems where the short-range Coulombic interactions between atoms in diff --git a/doc/src/lammps.book b/doc/src/lammps.book index 72a07945e7..828863ae67 100644 --- a/doc/src/lammps.book +++ b/doc/src/lammps.book @@ -67,6 +67,7 @@ Howto_multiple.html Howto_replica.html Howto_library.html Howto_couple.html +Howto_client_server.html Howto_output.html Howto_chunk.html Howto_2d.html From 861a7acdf0b9de61dade59ef873e1f338673a9d2 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 7 Sep 2018 06:40:06 -0600 Subject: [PATCH 667/675] cmake: fix globbing in some more places --- cmake/CMakeLists.txt | 9 ++++++--- cmake/Modules/StyleHeaderUtils.cmake | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 45e6870ce8..21170a384d 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -604,7 +604,8 @@ endif() if(PKG_MESSAGE) option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF) file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.F - ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp) + ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.c + ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.cpp) if(BUILD_SHARED_LIBS) add_library(cslib SHARED ${cslib_SOURCES}) @@ -754,8 +755,10 @@ foreach(SIMPLE_LIB REAX MEAM POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD if(PKG_${SIMPLE_LIB}) string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}") string(TOLOWER "${PKG_LIB}" PKG_LIB) - file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.F - ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.c ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.cpp) + file(GLOB_RECURSE ${PKG_LIB}_SOURCES + ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.F + ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.c + ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.cpp) add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES}) list(APPEND LAMMPS_LINK_LIBS ${PKG_LIB}) if(PKG_LIB STREQUAL awpmd) diff --git a/cmake/Modules/StyleHeaderUtils.cmake b/cmake/Modules/StyleHeaderUtils.cmake index d621e4c9c0..a89d098dd0 100644 --- a/cmake/Modules/StyleHeaderUtils.cmake +++ b/cmake/Modules/StyleHeaderUtils.cmake @@ -94,14 +94,14 @@ function(RegisterStyles search_path) FindStyleHeaders(${search_path} ATOM_CLASS atom_vec_ ATOM_VEC ) # atom ) # atom atom_vec_hybrid FindStyleHeaders(${search_path} BODY_CLASS body_ BODY ) # body ) # atom_vec_body FindStyleHeaders(${search_path} BOND_CLASS bond_ BOND ) # bond ) # force - FindStyleHeaders(${search_path} COMMAND_CLASS "" COMMAND ) # command ) # input + FindStyleHeaders(${search_path} COMMAND_CLASS "[^.]" COMMAND ) # command ) # input FindStyleHeaders(${search_path} COMPUTE_CLASS compute_ COMPUTE ) # compute ) # modify FindStyleHeaders(${search_path} DIHEDRAL_CLASS dihedral_ DIHEDRAL ) # dihedral ) # force FindStyleHeaders(${search_path} DUMP_CLASS dump_ DUMP ) # dump ) # output write_dump FindStyleHeaders(${search_path} FIX_CLASS fix_ FIX ) # fix ) # modify FindStyleHeaders(${search_path} IMPROPER_CLASS improper_ IMPROPER ) # improper ) # force - FindStyleHeaders(${search_path} INTEGRATE_CLASS "" INTEGRATE ) # integrate ) # update - FindStyleHeaders(${search_path} KSPACE_CLASS "" KSPACE ) # kspace ) # force + FindStyleHeaders(${search_path} INTEGRATE_CLASS "[^.]" INTEGRATE ) # integrate ) # update + FindStyleHeaders(${search_path} KSPACE_CLASS "[^.]" KSPACE ) # kspace ) # force FindStyleHeaders(${search_path} MINIMIZE_CLASS min_ MINIMIZE ) # minimize ) # update FindStyleHeaders(${search_path} NBIN_CLASS nbin_ NBIN ) # nbin ) # neighbor FindStyleHeaders(${search_path} NPAIR_CLASS npair_ NPAIR ) # npair ) # neighbor From 25907c856e1463cf4986de98e61b3cafd422b3d5 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 7 Sep 2018 09:56:03 -0600 Subject: [PATCH 668/675] small doc page changes, format and content on doc page tarballs --- doc/src/Build_basics.txt | 4 ++++ doc/src/Howto_client_server.txt | 2 +- doc/src/Install_tarball.txt | 6 +++++- doc/src/Packages_details.txt | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/doc/src/Build_basics.txt b/doc/src/Build_basics.txt index 6924e73417..4b3a347bf1 100644 --- a/doc/src/Build_basics.txt +++ b/doc/src/Build_basics.txt @@ -292,6 +292,10 @@ This will create a lammps/doc/html dir with the HTML doc pages so that you can browse them locally on your system. Type "make" from the lammps/doc dir to see other options. +NOTE: You can also download a tarball of the documention for the +current LAMMPS version (HTML and PDF files), from the website +"download page"_http://lammps.sandia.gov/download.html. + :line Install LAMMPS after a build :h4,link(install) diff --git a/doc/src/Howto_client_server.txt b/doc/src/Howto_client_server.txt index 714c23f066..061c4efb68 100644 --- a/doc/src/Howto_client_server.txt +++ b/doc/src/Howto_client_server.txt @@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :line -Using LAMMPS in client/server mode +Using LAMMPS in client/server mode :h3 Client/server coupling of two codes is where one code is the "client" and sends request messages to a "server" code. The server responds to diff --git a/doc/src/Install_tarball.txt b/doc/src/Install_tarball.txt index b672c5ff25..7ba5d15ac4 100644 --- a/doc/src/Install_tarball.txt +++ b/doc/src/Install_tarball.txt @@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c :line -Download source as a tarball :h3 +Download source and documentation as a tarball :h3 You can download a current LAMMPS tarball from the "download page"_download of the "LAMMPS website"_lws. @@ -22,6 +22,10 @@ few times per year, and undergo more testing before release. Patch releases occur a couple times per month. The new contents in all releases are listed on the "bug and feature page"_bug of the website. +Both tarballs include LAMMPS documentation (HTML and PDF files) +corresponding to that version. The download page also has an option +to download the current-version LAMMPS documentation by itself. + Older versions of LAMMPS can also be downloaded from "this page"_older. diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 443d78922c..1fb0549c8d 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -46,6 +46,7 @@ as contained in the file name. "MANYBODY"_#PKG-MANYBODY, "MC"_#PKG-MC, "MEAM"_#PKG-MEAM, +"MESSAGE"_#PKG-MESSAGE, "MISC"_#PKG-MISC, "MOLECULE"_#PKG-MOLECULE, "MPIIO"_#PKG-MPIIO, From 0384ef89670de96f83b0f7821c4e22484d491ed9 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 7 Sep 2018 14:00:39 -0600 Subject: [PATCH 669/675] more tweaks to client/server doc pages --- doc/src/Howto_client_server.txt | 4 ++-- doc/src/server_mc.txt | 6 +++--- doc/src/server_md.txt | 16 +++++++++------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/doc/src/Howto_client_server.txt b/doc/src/Howto_client_server.txt index 061c4efb68..aa6b8eab76 100644 --- a/doc/src/Howto_client_server.txt +++ b/doc/src/Howto_client_server.txt @@ -61,7 +61,7 @@ client or server. "message"_message.html "fix client md"_fix_client_md.html = LAMMPS is a client for running MD "server md"_server_md.html = LAMMPS is a server for computing MD forces -"server mc"_server_mc.html = LAMMPS is a server for computing a Monte Carlo energy +"server mc"_server_mc.html = LAMMPS is a server for computing a Monte Carlo energy :ul The server doc files give details of the message protocols for data that is exchanged bewteen the client and server. @@ -119,7 +119,7 @@ For message exchange in {mpi/one} mode: Launch both codes in a single mpirun command: -mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -log log.server +mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -log log.server :pre The two -np values determine how many procs the client and the server run on. diff --git a/doc/src/server_mc.txt b/doc/src/server_mc.txt index 53ccfc8ecd..58ca415be3 100644 --- a/doc/src/server_mc.txt +++ b/doc/src/server_mc.txt @@ -63,7 +63,7 @@ See the src/MESSAGE/server_mc.cpp file for details on how LAMMPS uses these messages. See the examples/COUPLE/lammmps_mc/mc.cpp file for an example of how an MC driver code can use these messages. -Let NATOMS=1, EINIT=2, DISPLACE=3, ACCEPT=4, RUN=5. +Define NATOMS=1, EINIT=2, DISPLACE=3, ACCEPT=4, RUN=5. [Client sends one of these kinds of message]: @@ -93,9 +93,9 @@ cs->pack(2,3*natoms,x) # 2nd field = 3N coords of Natoms :pre cs->send(DISPLACE,1) # msgID = 3 with 1 field cs->pack_double(1,poteng) # 1st field = new potential energy of system :pre -cs->send(ACCEPT,0) # msgID = 4 with no fields +cs->send(ACCEPT,0) # msgID = 4 with no fields :pre -cs->send(RUN,0) # msgID = 5 with no fields +cs->send(RUN,0) # msgID = 5 with no fields :pre :line diff --git a/doc/src/server_md.txt b/doc/src/server_md.txt index 0db7bbe16b..753542dc75 100644 --- a/doc/src/server_md.txt +++ b/doc/src/server_md.txt @@ -51,9 +51,9 @@ can complete the timestep. This command could also be used with a client code that performs energy minimization, using the server to compute forces and energy each iteration of its minimizer. -When using the "fix client/md" command, LAMMPS (as the client code) -does the timestepping and receives needed energy, forces, and pressure -values from the server code. +When using the "fix client/md"_fix_client_md.html command, LAMMPS (as +the client code) does the timestepping and receives needed energy, +forces, and pressure values from the server code. The format and content of the exchanged messages are explained here in a conceptual sense. Python-style pseudo code for the library calls to @@ -69,9 +69,11 @@ a quantum code (VASP) can use use these messages. The following pseudo-code uses these values, defined as enums. -enum{SETUP=1,STEP}; -enum{DIM=1,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE}; -enum{FORCES=1,ENERGY,PRESSURE,ERROR}; :pre +Define: + +SETUP=1, STEP=2 +DIM=1, PERIODICITY=2, ORIGIN=3, BOX=4, NATOMS=5, NTYPES=6, TYPES=7, COORDS=8, UNITS-9, CHARGE=10 +FORCES=1, ENERGY=2, PRESSURE=3, ERROR=4 :pre [Client sends 2 kinds of messages]: @@ -98,7 +100,7 @@ cs->send(STEP,nfields) # msgID with nfields :pre cs->pack(COORDS,3*natoms,x) # vector of 3N atom coords cs->pack(ORIGIN,3,origin) # lower-left corner of simulation box -cs->pack(BOX,9,box) # 3 edge vectors of simulation box +cs->pack(BOX,9,box) # 3 edge vectors of simulation box :pre [Server replies to either kind of message]: From b488f1072e17e6f574cb45a479572783bc147fca Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 7 Sep 2018 14:22:38 -0600 Subject: [PATCH 670/675] recent package links --- doc/src/Packages_details.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt index 1fb0549c8d..494f393a16 100644 --- a/doc/src/Packages_details.txt +++ b/doc/src/Packages_details.txt @@ -93,7 +93,7 @@ as contained in the file name. "USER-QTB"_#PKG-USER-QTB, "USER-QUIP"_#PKG-USER-QUIP, "USER-REAXC"_#PKG-USER-REAXC, -"USER-SCAFACOS"_#USER-SCAFACOS, +"USER-SCAFACOS"_#PKG-USER-SCAFACOS, "USER-SMD"_#PKG-USER-SMD, "USER-SMTBQ"_#PKG-USER-SMTBQ, "USER-SPH"_#PKG-USER-SPH, @@ -1861,7 +1861,7 @@ examples/reax :ul :line -USER-SCAFACOS package :link(USER-SCAFACOS),h4 +USER-SCAFACOS package :link(PKG-USER-SCAFACOS),h4 [Contents:] From 3b073de3572a41f476243c3aa56ce28a9532fd6e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Sep 2018 01:21:37 -0400 Subject: [PATCH 671/675] make it less likely to have people get confused by Eigen3_DIR --- cmake/CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 149f9da817..80eb035fee 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -538,6 +538,13 @@ if(PKG_USER-NETCDF) endif() if(PKG_USER-SMD) + # hack alert! + # something defines the Eigen3_DIR variable, but it has no effect + # yet shows up in the TUI/GUI display as "not found". + # and due to not being marked as advanced, it can mislead people + # as the EIGEN3_INCLUDE_DIR variable which does have an effect + # is marked as advanced. Tested on Fedora28 with Eigen3-3.3.5 rpm. + mark_as_advanced(Eigen3_DIR) option(DOWNLOAD_EIGEN3 "Download Eigen3 (instead of using the system's one)" OFF) if(DOWNLOAD_EIGEN3) include(ExternalProject) From 46b87518b8b62fac583e8718b9a9b3b5baf7417f Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 10 Sep 2018 00:35:55 -0400 Subject: [PATCH 672/675] cmake: use NO_MODULE for Eigen3 --- cmake/CMakeLists.txt | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 80eb035fee..7bfd7905f2 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -538,13 +538,6 @@ if(PKG_USER-NETCDF) endif() if(PKG_USER-SMD) - # hack alert! - # something defines the Eigen3_DIR variable, but it has no effect - # yet shows up in the TUI/GUI display as "not found". - # and due to not being marked as advanced, it can mislead people - # as the EIGEN3_INCLUDE_DIR variable which does have an effect - # is marked as advanced. Tested on Fedora28 with Eigen3-3.3.5 rpm. - mark_as_advanced(Eigen3_DIR) option(DOWNLOAD_EIGEN3 "Download Eigen3 (instead of using the system's one)" OFF) if(DOWNLOAD_EIGEN3) include(ExternalProject) @@ -557,7 +550,8 @@ if(PKG_USER-SMD) set(EIGEN3_INCLUDE_DIR ${SOURCE_DIR}) list(APPEND LAMMPS_DEPS Eigen3_build) else() - find_package(Eigen3) + find_package(Eigen3 NO_MODULE) + mark_as_advanced(Eigen3_DIR) if(NOT EIGEN3_FOUND) message(FATAL_ERROR "Eigen3 not found, help CMake to find it by setting EIGEN3_INCLUDE_DIR, or set DOWNLOAD_EIGEN3=ON to download it") endif() From 02b653c0cea83448cdeda39d231f423836d35fdf Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Sep 2018 22:22:42 -0400 Subject: [PATCH 673/675] correct end of itemized list to be compatible with txt2rst conversion --- doc/src/Howto_chunk.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Howto_chunk.txt b/doc/src/Howto_chunk.txt index 611b71dac7..82a4450d17 100644 --- a/doc/src/Howto_chunk.txt +++ b/doc/src/Howto_chunk.txt @@ -125,7 +125,7 @@ molecule diffusion rates. :l As input to special functions of "equal-style variables"_variable.html, like sum() and max() and ave(). E.g. to find the largest cluster or fastest diffusing molecule or average -radius-of-gyration of a set of molecules (chunks). :l :ule +radius-of-gyration of a set of molecules (chunks). :l,ule Other chunk commands: :h4 From 3d2c7317092a9952b88ac4e6c6e16193c333093a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Sep 2018 22:32:56 -0400 Subject: [PATCH 674/675] avoid class initialization order warnings --- src/compute_chunk_spread_atom.cpp | 2 +- src/compute_chunk_spread_atom.h | 3 +-- src/compute_reduce_chunk.cpp | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/compute_chunk_spread_atom.cpp b/src/compute_chunk_spread_atom.cpp index 93a4d30a2e..c5fd27b0c1 100644 --- a/src/compute_chunk_spread_atom.cpp +++ b/src/compute_chunk_spread_atom.cpp @@ -37,7 +37,7 @@ enum{COMPUTE,FIX}; ComputeChunkSpreadAtom:: ComputeChunkSpreadAtom(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), - which(NULL), argindex(NULL), ids(NULL), value2index(NULL), idchunk(NULL) + idchunk(NULL), ids(NULL), which(NULL), argindex(NULL), value2index(NULL) { if (narg < 5) error->all(FLERR,"Illegal compute chunk/spread/atom command"); diff --git a/src/compute_chunk_spread_atom.h b/src/compute_chunk_spread_atom.h index 9a4df080ca..80ee186450 100644 --- a/src/compute_chunk_spread_atom.h +++ b/src/compute_chunk_spread_atom.h @@ -35,9 +35,8 @@ class ComputeChunkSpreadAtom : public Compute { protected: int mode,nvalues; char *idchunk; - - int *which,*argindex,*value2index; char **ids; + int *which,*argindex,*value2index; int nmax; class ComputeChunkAtom *cchunk; diff --git a/src/compute_reduce_chunk.cpp b/src/compute_reduce_chunk.cpp index 40e9dad8dd..beebc5f411 100644 --- a/src/compute_reduce_chunk.cpp +++ b/src/compute_reduce_chunk.cpp @@ -38,8 +38,8 @@ enum{COMPUTE,FIX,VARIABLE}; ComputeReduceChunk::ComputeReduceChunk(LAMMPS *lmp, int narg, char **arg) : Compute(lmp, narg, arg), - vlocal(NULL), vglobal(NULL), alocal(NULL), aglobal(NULL), varatom(NULL), - which(NULL), argindex(NULL), value2index(NULL), idchunk(NULL), ids(NULL) + which(NULL), argindex(NULL), value2index(NULL), idchunk(NULL), ids(NULL), + vlocal(NULL), vglobal(NULL), alocal(NULL), aglobal(NULL), varatom(NULL) { if (narg < 6) error->all(FLERR,"Illegal compute reduce/chunk command"); From 0305cca1df30b355f60799bed967e7456e2a3bac Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Sep 2018 22:47:45 -0400 Subject: [PATCH 675/675] make certain that *_freq flags are initialized. use -1 instead of 0 to avoid division by zero --- src/fix.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/fix.cpp b/src/fix.cpp index 051ac12bbe..634bc2393d 100644 --- a/src/fix.cpp +++ b/src/fix.cpp @@ -81,6 +81,7 @@ Fix::Fix(LAMMPS *lmp, int /*narg*/, char **arg) : scalar_flag = vector_flag = array_flag = 0; peratom_flag = local_flag = 0; + global_freq = local_freq = peratom_freq = -1; size_vector_variable = size_array_rows_variable = 0; comm_forward = comm_reverse = comm_border = 0;
Tuning target for OpenCL driver code
-
GENERIC (default)
-
INTEL (Intel CPU)
-
PHI (Intel Xeon Phi)
-
FERMI (NVIDIA)
-
KEPLER (NVIDIA)
-
CYPRESS (AMD)
+
generic (default)
+
intel (Intel CPU)
+
phi (Intel Xeon Phi)
+
fermi (NVIDIA)
+
kepler (NVIDIA)
+
cypress (AMD)
BUILD_EXEcontrol whether to build LAMMPS executable +
+
on (default)
+
off
+
+
BUILD_SHARED_LIBS control whether to build LAMMPS as a shared-library

Vq#DdArP8mhq%B;9kENP8V3Nk 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%0Dmlo$gA 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 LD4+iT41fRGaTSb& literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/images/t=1ns.jpg b/tools/moltemplate/examples/all_atom/force_field_COMPASS/alkane_chain_single/images/t=1ns.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da2fe1185e571b35f1199805a1f37645b2f5c787 GIT binary patch literal 60111 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 Console +c) Enter: + +(I assume that the the DATA file is called "system.data") + + topo readlammpsdata system.data full + animate write psf system.psf + +2) + +Later, to Load a trajectory in VMD: + + Start VMD + Select menu: File->New Molecule + -Browse to select the PSF file you created above, and load it. + (Don't close the window yet.) + -Browse to select the trajectory file. + If necessary, for "file type" select: "LAMMPS Trajectory" + Load it. + + ---- A note on trajectory format: ----- +If the trajectory is a DUMP file, then make sure the it contains the +information you need for pbctools (see below. I've been using this +command in my LAMMPS scripts to create the trajectories: + + dump 1 all custom 5000 DUMP_FILE.lammpstrj id mol type x y z ix iy iz + +It's a good idea to use an atom_style which supports molecule-ID numbers +so that you can assign a molecule-ID number to each atom. (I think this +is needed to wrap atom coordinates without breaking molecules in half.) + +Of course, you don't have to save your trajectories in DUMP format, +(other formats like DCD work fine) I just mention dump files +because these are the files I'm familiar with. + +3) ----- Wrap the coordinates to the unit cell + (without cutting the molecules in half) + +a) Start VMD +b) Load the trajectory in VMD (see above) +c) Menu Extensions->Tk Console +d) Try entering these commands: + + pbc wrap -compound res -all + pbc box + + ----- Optional ---- + Sometimes the solvent or membrane obscures the view of the solute. + It can help to shift the location of the periodic boundary box + To shift the box in the y direction (for example) do this: + + pbc wrap -compound res -all -shiftcenterrel {-0.05 -0.05 -0.05} + pbc box -shiftcenterrel {-0.05 -0.05 -0.05} -width 0.9 -style tubes + + Distances are measured in units of box-length fractions, not Angstroms. + + Alternately if you have a solute whose atoms are all of type 1, + then you can also try this to center the box around it: + + pbc wrap -sel type=1 -all -centersel type=2 -center com + +4) + You should check if your periodic boundary conditions are too small. + To do that: + select Graphics->Representations menu option + click on the "Periodic" tab, and + click on the "+x", "-x", "+y", "-y", "+z", "-z" checkboxes. + +5) Optional: If you like, change the atom types in the PSF file so + that VMD recognizes the atom types, use something like: + +sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf +sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf +sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf + +(If you do this, it might effect step 2 above.) diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/images/after_pressure_equilibration_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/images/after_pressure_equilibration_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..093f557dd9011f11456a082bcfbe1340b94c5df6 GIT binary patch literal 28251 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 S9*PMbYHB@xV;|t%XZ{zxr6%+M literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/images/initial_configuration_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/images/initial_configuration_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fa7d195f3db76d596c4d37116daabbba0c40e39 GIT binary patch literal 29167 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 liquid transition to complete. +# We will also slowly decrease the pressure to 1 bar. + +unfix fxnpt +fix fxnpt all npt temp 260.0 260.0 100.0 iso 500.0 1.0 1000.0 drag 2.0 + +timestep 1.0 +run 100000 + +write_data system_after_eq3_npt.data + diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/run.in.nvt b/tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/run.in.nvt new file mode 100644 index 0000000000..ea3ac42167 --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_COMPASS/butane/run.in.nvt @@ -0,0 +1,45 @@ +# PREREQUISITES: +# +# 1) You must use moltemplate.sh to create 3 files: +# system.data system.in.init system.in.settings +# (Follow the instructions in README_setup.sh, +# or run the file as a script using ./README_setup.sh) +# 2) You must equilibrate the system beforehand using "run.in.npt". +# This will create the file "system_after_npt.data" which this file reads. +# (Note: I have not verified that this equilibration protocol works well.) + +# ------------------------------- Initialization Section -------------------- + +include system.in.init + +# ------------------------------- Atom Definition Section ------------------- + + +# Read the coordinates generated by an earlier NPT simulation + +read_data system_after_eq3_npt.data + +# (The "write_restart" and "read_restart" commands were buggy in 2012, +# but they should work also. I prefer "write_data" and "read_data".) + + +# ------------------------------- Settings Section -------------------------- + +include system.in.settings +include system.in.charges + +# ------------------------------- Run Section ------------------------------- + +# -- simulation protocol -- + + +timestep 1.0 +dump 1 all custom 500 traj_nvt.lammpstrj id mol type x y z ix iy iz +fix fxnvt all nvt temp 260.0 260.0 500.0 tchain 1 +thermo_style custom step temp pe etotal epair ebond eangle edihed +thermo 100 +thermo_modify norm yes + +run 50000 + +write_data system_after_nvt.data diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README.txt b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README.txt new file mode 100644 index 0000000000..5ffefbc7f3 --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README.txt @@ -0,0 +1,42 @@ +This example is a simple simulation of many long alkane chains (hexadecane) in a +box near the boiling point at atmospheric pressure. Please read "WARNING.TXT". + +NOTE: This particular example uses the COMPASS force-field + However, moltemplate is not limited to COMPASS. + +1) Create the "system.data", "system.in.init", and "system.in.settings" +files which LAMMPS will read by running: + +moltemplate.sh system.lt + + +2) Run LAMMPS in this order: + +lmp_mpi -i run.in.npt # running the simulation at constant pressure +lmp_mpi -i run.in.nvt # running the simulation at constant temperature + +(The name of the LAMMPS executable, eg "lmp_mpi", may vary.) + +---- Details ---- + +The "Hexadecane" molecule, as well as the "CH2", and "CH3" monomers it contains +use the COMPASS force-field. This means that when we define these molecules, +we only specify the atom names, bond list, and coordinates. +We do not have to list the atom charges, angles, dihedrals, or impropers. +The rules for creating atomic charge and angle topology are contained in +the "compass_published.lt" file created by step 3) above. The "ch2group.lt", +"ch3group.lt", and "hexadecane.lt" files all refer to "compass_published.lt", +(as well as the "COMPASS" force-field object which it defines). Excerpt: + +import "compass_published.lt" +CH2 inherits COMPASS { ... +CH3 inherits COMPASS { ... +Hexadecane inherits COMPASS { ... + +Alternatively, you can manually define a list of angles, dihedrals, and +improper interactions in these files, instead of asking the force-field +to generate them for you. You can also specify some of the angles and +dihedrals explicitly, and let the force-field handle the rest. +(Many of the examples which come with moltemplate do this.) + + diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_remove_irrelevant_info.sh b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_remove_irrelevant_info.sh new file mode 100755 index 0000000000..5957289da9 --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_remove_irrelevant_info.sh @@ -0,0 +1,8 @@ + +# Note: By default, the system.data and system.in.settings files contain +# extra information for atoms defined in OPLSAA which you are not using +# in this simulation. +# This is harmless, but if you to delete this information from your +# system.in.settings and system.in.data files, run this script: + +cleanup_moltemplate.sh diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_run.sh b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_run.sh new file mode 100755 index 0000000000..4871a06495 --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_run.sh @@ -0,0 +1,21 @@ +# --- Running LAMMPS --- +# +# The 2 files "run.in.npt", and "run.in.nvt" are LAMMPS +# input scripts which link to the input scripts and data files +# you hopefully have created earlier with moltemplate.sh: +# system.in.init, system.in.settings, system.data +# If not, carry out the instructions in "README_setup.sh". +# +# -- Instructions: -- +# If "lmp_mpi" is the name of the command you use to invoke lammps, +# then you would run lammps on these files this way: + + +lmp_mpi -i run.in.npt # minimization and simulation at constant pressure +lmp_mpi -i run.in.nvt # simulation at constant volume + + +# If you have compiled the MPI version of lammps, you can run lammps in parallel +#mpirun -np 4 lmp_mpi -i run.in.npt +#mpirun -np 4 lmp_mpi -i run.in.nvt +# (assuming you have 4 processors available) diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_setup.sh b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_setup.sh new file mode 100755 index 0000000000..15a3a963c8 --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_setup.sh @@ -0,0 +1,34 @@ + +# Create LAMMPS input files this way: +cd moltemplate_files + + # run moltemplate + + moltemplate.sh system.lt + + # Optional: + # To check for missing angle,dihedral params run moltemplate this way instead: + # moltemplate.sh -checkff system.lt + + + # Moltemplate generates various files with names ending in *.in* and *.data. + # Move them to the directory where you plan to run LAMMPS (in this case "../") + mv -f system.data system.in* ../ + + # Optional: + # The "./output_ttree/" directory is full of temporary files generated by + # moltemplate. They can be useful for debugging, but are usually thrown away. + rm -rf output_ttree/ + +cd ../ + + + + +# Optional: +# Note: The system.data and system.in.settings files contain extra information +# for atoms defined in OPLSAA which you are not using in this simulation. +# This is harmless, but if you to delete this information from your +# system.in.settings and system.in.data files, run this script: +# +# cleanup_moltemplate.sh diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_visualize.txt b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_visualize.txt new file mode 100644 index 0000000000..a3e3ed620e --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/README_visualize.txt @@ -0,0 +1,87 @@ + + ------- To view a lammps trajectory in VMD -------- + + +1) Build a PSF file for use in viewing with VMD. + +This step works with VMD 1.9 and topotools 1.2. +(Older versions, like VMD 1.8.6, don't support this.) + + +a) Start VMD +b) Menu Extensions->Tk Console +c) Enter: + +(I assume that the the DATA file is called "system.data") + + topo readlammpsdata system.data full + animate write psf system.psf + +2) + +Later, to Load a trajectory in VMD: + + Start VMD + Select menu: File->New Molecule + -Browse to select the PSF file you created above, and load it. + (Don't close the window yet.) + -Browse to select the trajectory file. + If necessary, for "file type" select: "LAMMPS Trajectory" + Load it. + + ---- A note on trajectory format: ----- +If the trajectory is a DUMP file, then make sure the it contains the +information you need for pbctools (see below. I've been using this +command in my LAMMPS scripts to create the trajectories: + + dump 1 all custom 5000 DUMP_FILE.lammpstrj id mol type x y z ix iy iz + +It's a good idea to use an atom_style which supports molecule-ID numbers +so that you can assign a molecule-ID number to each atom. (I think this +is needed to wrap atom coordinates without breaking molecules in half.) + +Of course, you don't have to save your trajectories in DUMP format, +(other formats like DCD work fine) I just mention dump files +because these are the files I'm familiar with. + +3) ----- Wrap the coordinates to the unit cell + (without cutting the molecules in half) + +a) Start VMD +b) Load the trajectory in VMD (see above) +c) Menu Extensions->Tk Console +d) Try entering these commands: + + pbc wrap -compound res -all + pbc box + + ----- Optional ---- + Sometimes the solvent or membrane obscures the view of the solute. + It can help to shift the location of the periodic boundary box + To shift the box in the y direction (for example) do this: + + pbc wrap -compound res -all -shiftcenterrel {0.0 0.15 0.0} + pbc box -shiftcenterrel {0.0 0.15 0.0} + + Distances are measured in units of box-length fractions, not Angstroms. + + Alternately if you have a solute whose atoms are all of type 1, + then you can also try this to center the box around it: + + pbc wrap -sel type=1 -all -centersel type=2 -center com + +4) + You should check if your periodic boundary conditions are too small. + To do that: + select Graphics->Representations menu option + click on the "Periodic" tab, and + click on the "+x", "-x", "+y", "-y", "+z", "-z" checkboxes. + +5) Optional: If you like, change the atom types in the PSF file so + that VMD recognizes the atom types, use something like: + +sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf +sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf +sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf + +(If you do this, it might effect step 2 above.) diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/WARNING.txt b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/WARNING.txt new file mode 100644 index 0000000000..ab508fc894 --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/WARNING.txt @@ -0,0 +1,13 @@ +# -------- WARNING: -------- + +This software is experimental, and the force-fields and equilbration protocols +have not been tested carefully by me. There is no gaurantee that the simulation +will reproduce the behavior of real hexadecane molecules, + +# -------- REQUEST FOR HELP: -------- + +However, if you notice a problem with this example, please report it. +Peer-review is the only way to improve this software (or any software). +Other suggestions are also welcome! + +(Contact jewett.aij@gmail.com, 2017-10-03) diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/images/hexadecane_12x12x2_t=0_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/images/hexadecane_12x12x2_t=0_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b0d31f88453d4594681cc81791d66c5c1e8c0b99 GIT binary patch literal 27017 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\rwJO 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 Op_CsiKd1iyPygBZ$I|=& literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/images/hexadecane_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/images/hexadecane_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a4151a5fd34691d3986dd4e73f290c7bf41b1ae9 GIT binary patch literal 8118 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 liquid transition to complete. +# We will also slowly decrease the pressure to 1 bar. + +unfix fxnpt +fix fxnpt all npt temp 260.0 260.0 100.0 iso 500.0 1.0 1000.0 drag 2.0 + +timestep 1.0 +run 100000 + +write_data system_after_eq3_npt.data + diff --git a/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/run.in.nvt b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/run.in.nvt new file mode 100644 index 0000000000..7393961924 --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_COMPASS/hexadecane/run.in.nvt @@ -0,0 +1,45 @@ +# PREREQUISITES: +# +# 1) You must use moltemplate.sh to create 3 files: +# system.data system.in.init system.in.settings +# (Follow the instructions in README_setup.sh, +# or run the file as a script using ./README_setup.sh) +# 2) You must equilibrate the system beforehand using "run.in.npt". +# This will create the file "system_after_npt.data" which this file reads. +# (Note: I have not verified that this equilibration protocol works well.) + +# ------------------------------- Initialization Section -------------------- + +include system.in.init + +# ------------------------------- Atom Definition Section ------------------- + + +# Read the coordinates generated by an earlier NPT simulation + +read_data system_after_eq3_npt.data + +# (The "write_restart" and "read_restart" commands were buggy in 2012, +# but they should work also. I prefer "write_data" and "read_data".) + + +# ------------------------------- Settings Section -------------------------- + +include system.in.settings +include system.in.charges + +# ------------------------------- Run Section ------------------------------- + +# -- simulation protocol -- + + +timestep 1.0 +dump 1 all custom 500 traj_nvt.lammpstrj id mol type x y z ix iy iz +fix fxnvt all nvt temp 300.0 300.0 500.0 tchain 1 +thermo_style custom step temp pe etotal epair ebond eangle edihed +thermo 100 +thermo_modify norm yes + +run 50000 + +write_data system_after_nvt.data diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README.txt b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README.txt new file mode 100644 index 0000000000..4a6377569d --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README.txt @@ -0,0 +1,37 @@ +This example is a simple simulation of many short alkane chains (butane) in a +box near the boiling point at atmospheric pressure. Please read "WARNING.TXT". + +1) Create the "system.data", "system.in.init", and "system.in.settings" +files which LAMMPS will read by running: + +moltemplate.sh system.lt + + +2) Run LAMMPS in this order: + +lmp_mpi -i run.in.npt # running the simulation at constant pressure +lmp_mpi -i run.in.nvt # running the simulation at constant temperature + +(The name of the LAMMPS executable, eg "lmp_mpi", may vary.) + +---- Details ---- + +The "Butane50" molecule, as well as the "CH2", and "CH3" monomers it contains +use the OPLSAA force-field. This means that when we define these molecules, +we only specify the atom names, bond list, and coordinates. +We do not have to list the atom charges, angles, dihedrals, or impropers. +The rules for creating atomic charge and angle topology are contained in +the "oplsaa.lt" file created by step 3) above. The "ch2group.lt", +"ch3group.lt", and "butane.lt" files all refer to "oplsaa.lt", +(as well as the "OPLSAA" force-field object which it defines). Excerpt: + +import "oplsaa.lt" +CH2 inherits OPLSAA { ... +CH3 inherits OPLSAA { ... +Butane inherits OPLSAA { ... + +Alternatively, you can manually define a list of angles, dihedrals, and +improper interactions in these files, instead of asking the force-field +to generate them for you. You can also specify some of the angles and +dihedrals explicitly, and let the force-field handle the rest. +(Many of the examples which come with moltemplate do this.) diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_remove_irrelevant_info.sh b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_remove_irrelevant_info.sh new file mode 100755 index 0000000000..5957289da9 --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_remove_irrelevant_info.sh @@ -0,0 +1,8 @@ + +# Note: By default, the system.data and system.in.settings files contain +# extra information for atoms defined in OPLSAA which you are not using +# in this simulation. +# This is harmless, but if you to delete this information from your +# system.in.settings and system.in.data files, run this script: + +cleanup_moltemplate.sh diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_run.sh b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_run.sh new file mode 100755 index 0000000000..94d6de972c --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_run.sh @@ -0,0 +1,34 @@ +# --- Running LAMMPS --- +# +# The 2 files "run.in.npt", and "run.in.nvt" are LAMMPS +# input scripts which link to the input scripts and data files +# you hopefully have created earlier with moltemplate.sh: +# system.in.init, system.in.settings, system.data +# If not, carry out the instructions in "README_setup.sh". +# +# -- Instructions: -- +# If "lmp_mpi" is the name of the command you use to invoke lammps, +# then you would run lammps on these files this way: + + +lmp_mpi -i run.in.min # minimization +lmp_mpi -i run.in.nvt # minimization and simulation at constant volume + +#(Note: The constant volume simulation lacks pressure equilibration. These are +# completely separate simulations. The results of the constant pressure +# simulation might be ignored when beginning the simulation at constant +# volume. (This is because restart files in LAMMPS don't always work, +# and I was spending a lot of time trying to convince people it was a +# LAMMPS bug, instead of a moltemplate bug, so I disabled restart files.) +# Read the "run.in.nvt" file to find out how to use the "read_restart" +# command to load the results of the pressure-equilibration simulation, +# before beginning a constant-volume run. + + + + + +# If you have compiled the MPI version of lammps, you can run lammps in parallel +#mpirun -np 4 lmp_mpi -i run.in.npt +#mpirun -np 4 lmp_mpi -i run.in.nvt +# (assuming you have 4 processors available) diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_setup.sh b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_setup.sh new file mode 100755 index 0000000000..5cd2142a41 --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_setup.sh @@ -0,0 +1,34 @@ + +# Create LAMMPS input files this way: +cd moltemplate_files + + # run moltemplate + + moltemplate.sh system.lt + + # Optional: + # To check for missing angle,dihedral params run moltemplate this way instead: + # moltemplate.sh -checkff system.lt + + + # Moltemplate generates various files with names ending in *.in* and *.data. + # Move them to the directory where you plan to run LAMMPS (in this case "../") + mv -f system.data system.in* ../ + + # Optional: + # The "./output_ttree/" directory is full of temporary files generated by + # moltemplate. They can be useful for debugging, but are usually thrown away. + rm -rf output_ttree/ + +cd ../ + + + + +# Optional: +# Note: The system.data and system.in.settings files contain extra information +# for atoms defined in OPLSAA which you are not using in this simulation. +# This is harmless, but if you to delete this information from your +# system.in.settings and system.in.data files, run this script: +# +# cleanup_moltemplate.sh diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_visualize.txt b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_visualize.txt new file mode 100644 index 0000000000..b39d8901ad --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/README_visualize.txt @@ -0,0 +1,87 @@ + + ------- To view a lammps trajectory in VMD -------- + + +1) Build a PSF file for use in viewing with VMD. + +This step works with VMD 1.9 and topotools 1.2. +(Older versions, like VMD 1.8.6, don't support this.) + + +a) Start VMD +b) Menu Extensions->Tk Console +c) Enter: + +(I assume that the the DATA file is called "system.data") + + topo readlammpsdata system.data full + animate write psf system.psf + +2) + +Later, to Load a trajectory in VMD: + + Start VMD + Select menu: File->New Molecule + -Browse to select the PSF file you created above, and load it. + (Don't close the window yet.) + -Browse to select the trajectory file. + If necessary, for "file type" select: "LAMMPS Trajectory" + Load it. + + ---- A note on trajectory format: ----- +If the trajectory is a DUMP file, then make sure the it contains the +information you need for pbctools (see below. I've been using this +command in my LAMMPS scripts to create the trajectories: + + dump 1 all custom 5000 DUMP_FILE.lammpstrj id mol type x y z ix iy iz + +It's a good idea to use an atom_style which supports molecule-ID numbers +so that you can assign a molecule-ID number to each atom. (I think this +is needed to wrap atom coordinates without breaking molecules in half.) + +Of course, you don't have to save your trajectories in DUMP format, +(other formats like DCD work fine) I just mention dump files +because these are the files I'm familiar with. + +3) ----- Wrap the coordinates to the unit cell + (without cutting the molecules in half) + +a) Start VMD +b) Load the trajectory in VMD (see above) +c) Menu Extensions->Tk Console +d) Try entering these commands: + + pbc wrap -compound res -all + pbc box + + ----- Optional ---- + Sometimes the solvent or membrane obscures the view of the solute. + It can help to shift the location of the periodic boundary box + To shift the box in the y direction (for example) do this: + + pbc wrap -compound res -all -shiftcenterrel {-0.05 -0.05 -0.05} + pbc box -shiftcenterrel {-0.05 -0.05 -0.05} + + Distances are measured in units of box-length fractions, not Angstroms. + + Alternately if you have a solute whose atoms are all of type 1, + then you can also try this to center the box around it: + + pbc wrap -sel type=1 -all -centersel type=2 -center com + +4) + You should check if your periodic boundary conditions are too small. + To do that: + select Graphics->Representations menu option + click on the "Periodic" tab, and + click on the "+x", "-x", "+y", "-y", "+z", "-z" checkboxes. + +5) Optional: If you like, change the atom types in the PSF file so + that VMD recognizes the atom types, use something like: + +sed -e 's/ 1 1 / C C /g' < system.psf > temp1.psf +sed -e 's/ 2 2 / H H /g' < temp1.psf > temp2.psf +sed -e 's/ 3 3 / P P /g' < temp2.psf > system.psf + +(If you do this, it might effect step 2 above.) diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/after_pressure_equilibration_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/after_pressure_equilibration_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..093f557dd9011f11456a082bcfbe1340b94c5df6 GIT binary patch literal 28251 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 literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/ch2_ry90.jpg b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/ch2_ry90.jpg new file mode 100644 index 0000000000000000000000000000000000000000..39a88795579f33345539451daac4815f999961a6 GIT binary patch literal 4680 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 literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/initial_configuration_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/images/initial_configuration_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fa7d195f3db76d596c4d37116daabbba0c40e39 GIT binary patch literal 29167 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 liquid transition to complete. +# We will also slowly decrease the pressure to 1 bar. + +unfix fxnpt +fix fxnpt all npt temp 260.0 260.0 100.0 iso 500.0 1.0 1000.0 drag 2.0 + +timestep 1.0 +run 100000 + +write_data system_after_eq3_npt.data + diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/run.in.nvt b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/run.in.nvt new file mode 100644 index 0000000000..ea3ac42167 --- /dev/null +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/butane/run.in.nvt @@ -0,0 +1,45 @@ +# PREREQUISITES: +# +# 1) You must use moltemplate.sh to create 3 files: +# system.data system.in.init system.in.settings +# (Follow the instructions in README_setup.sh, +# or run the file as a script using ./README_setup.sh) +# 2) You must equilibrate the system beforehand using "run.in.npt". +# This will create the file "system_after_npt.data" which this file reads. +# (Note: I have not verified that this equilibration protocol works well.) + +# ------------------------------- Initialization Section -------------------- + +include system.in.init + +# ------------------------------- Atom Definition Section ------------------- + + +# Read the coordinates generated by an earlier NPT simulation + +read_data system_after_eq3_npt.data + +# (The "write_restart" and "read_restart" commands were buggy in 2012, +# but they should work also. I prefer "write_data" and "read_data".) + + +# ------------------------------- Settings Section -------------------------- + +include system.in.settings +include system.in.charges + +# ------------------------------- Run Section ------------------------------- + +# -- simulation protocol -- + + +timestep 1.0 +dump 1 all custom 500 traj_nvt.lammpstrj id mol type x y z ix iy iz +fix fxnvt all nvt temp 260.0 260.0 500.0 tchain 1 +thermo_style custom step temp pe etotal epair ebond eangle edihed +thermo 100 +thermo_modify norm yes + +run 50000 + +write_data system_after_nvt.data diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/README.txt b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/README.txt index f744e1718f..470df87550 100644 --- a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/README.txt +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/README.txt @@ -1,8 +1,5 @@ This is an example of how to use the OPLSAA force-field in LAMMPS -As of 2016-11-21, this code has not been tested for accuracy. -(See the WARNING.TXT file.) - step 1) To build the files which LAMMPS needs, follow the instructions in: README_setup.sh diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/README_visualize.txt b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/README_visualize.txt index a3e3ed620e..642c85c24c 100644 --- a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/README_visualize.txt +++ b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/README_visualize.txt @@ -60,8 +60,8 @@ d) Try entering these commands: It can help to shift the location of the periodic boundary box To shift the box in the y direction (for example) do this: - pbc wrap -compound res -all -shiftcenterrel {0.0 0.15 0.0} - pbc box -shiftcenterrel {0.0 0.15 0.0} + pbc wrap -compound res -all -shiftcenterrel {-0.05 -0.05 -0.05} + pbc box -shiftcenterrel {-0.05 -0.05 -0.05} -width 0.5 Distances are measured in units of box-length fractions, not Angstroms. diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/images/ethylene+benzene_50bar_t=100000_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/images/ethylene+benzene_50bar_t=100000_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9ff053fcb48e18052a81039fb4a3a8ab65cb1a2 GIT binary patch literal 36911 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 Cee7od literal 0 HcmV?d00001 diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/images/ethylene+benzene_box80x80x80_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/images/ethylene+benzene_box80x80x80_LR.jpg deleted file mode 100644 index 00c82d3d9f5f13a5dd36eaee35d982557be2b1b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130048 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%0AlqfP_f5(nxm?-97ZsjdXXHNH@dKEy&P0 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 diff --git a/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/images/ethylene+benzene_t=0_LR.jpg b/tools/moltemplate/examples/all_atom/force_field_OPLSAA/ethylene+benzene/images/ethylene+benzene_t=0_LR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65949a4684b3102a625d628e8760884493029781 GIT binary patch literal 52598 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

D8l9^8YAYy8u?B@W#HZNwMed= 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 bIymavJG$C`?j}1k8xt1-Ik}kJPlW#lVS>7g From 436a5de3a6886ddc84b8d3ea69fbe89b5db300fc Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 20 Mar 2018 16:20:48 -0600 Subject: [PATCH 083/675] Documentation V1 --- .../fix_integration_spin_stdecomposition.jpg | Bin 171962 -> 50669 bytes doc/src/Eqs/fix_langevin_spin_sLLG.jpg | Bin 25663 -> 9065 bytes doc/src/Eqs/force_spin_aniso.jpg | Bin 18405 -> 6089 bytes doc/src/Eqs/force_spin_zeeman.jpg | Bin 20886 -> 6517 bytes doc/src/Eqs/pair_spin_exchange_forces.jpg | Bin 43983 -> 13720 bytes doc/src/Eqs/pair_spin_exchange_function.jpg | Bin 32386 -> 10597 bytes .../Eqs/pair_spin_exchange_interaction.jpg | Bin 20969 -> 6661 bytes doc/src/Eqs/pair_spin_me_forces.jpg | Bin 42008 -> 13207 bytes doc/src/Eqs/pair_spin_me_interaction.jpg | Bin 23008 -> 23005 bytes doc/src/Eqs/pair_spin_soc_dmi_interaction.jpg | Bin 21251 -> 7161 bytes doc/src/fix_integration_spin.txt | 12 +++++------- doc/src/fix_langevin_spin.txt | 7 +++---- doc/src/fix_rigid.txt | 6 +++--- doc/src/fix_thermal_conductivity.txt | 4 ++-- doc/src/pair_gran.txt | 6 +++--- doc/src/pair_meam_spline.txt | 4 ++++ doc/src/pair_spin_exchange.txt | 9 ++++----- doc/src/pair_spin_me.txt | 7 +++---- doc/src/pair_spin_soc_dmi.txt | 9 ++++----- doc/src/pair_spin_soc_neel.txt | 8 ++++---- 20 files changed, 35 insertions(+), 37 deletions(-) diff --git a/doc/src/Eqs/fix_integration_spin_stdecomposition.jpg b/doc/src/Eqs/fix_integration_spin_stdecomposition.jpg index 566b21544a912117f111d9b1e79090e9f41138b3..9cd8214b4c2be66334502ddb3fa8d2cc607b02c9 100644 GIT binary patch literal 50669 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 jat9RGd zcR{-p^_5hM&-b<8COcA8;vP`KNwI=?e#pk+adpWvb5NXN7yBYI0p^5CAC*Tga<;M~ zajoOa!h!!AYZu-3Jz|bB+y%IN?vhwvqW@qPBAynpoIEqSR5(| zHK0dcUC%l@m-*vkYDo?E;QU@(sn8RPjgaJmhMAv-c(9_7DOp)58c9gN9yL!%%E-N# z5#RHp|L=dI8SN#El!csN)qxwy(PXMgL(ec7n)u^=GD3(Sn79V~4M3Mx2exgqg35TW6MBL=iGaUb} zuOE^0f!fZ+B@7=AyZFNme3;2w8mpGm0(bh|`mmgbn;DqTyrukJZ=ajDUw#{_$DJG0 zT;x2;JJC&Mm^QcnioiYQq4^DmagmrLob6HcZt00^8RL1Ruf3TLfgK;n zT-%eLrRZy45M4&yvBjIJC#NPmkC!<(dOr5KpN^(^S@j!}^@g4&eYXg&O4rkFapvJ? zh~z~m5Bwrk*cSzUHJfKIw?i#aOuH(HT(ZmDcc!5s=cK`EB8lYfm&hO$$0l$(=rvd? zJ)i3|lM<=Rem219${XBXilbg47A-RB&s?cg7w%I?NBoLXtVTqxv2tY3YZ)Y|Yv)Oq z%~vYy{asBnA2R`z))<&!nZ&#eaP`+f4sfvOCi{RI2~8OChSJ$h58qD3H&j0P_N#dV zk}zK^TU+*;Q;2+7n5o`AUG5a4KL!hz4N^mjG^yzsC=UMFv&fVj3ru5ayK`0k^ZwBm z!!oT*=9D8>E2E0EQ!~yfj~?I)%mknkt51)t%?cN7$A}2v6LkMU7R3i-L(S3Is|v4< zUOL)h17_A|R*%I)&M@7j6Lxt;MTvYDBvvvTaEV0+V)$G%eUPum6J9y5=0qCg;#e2r3T$HQKUBrJ7y1*4iz zQ|!3zO4T7A?sM)iCk zqkPyTKmDicaLa{sx^9xdv_`EvfD`lB%K)NO711xZB69U2<8i$r$Ubw`4+GMgwrESu z$OBaRDytmOpB=}*#@;7g$ivy3uA$4@y-9~ZsG?-VAs#7FRDv)0nbZn7+ajNq#<~#S zZN!F^=3KF4TV0`WYb-XRQYJ2Wwiq!j*(w=B;nh3&Lj&B={$=iP{&>A=)bN#wA)oc4Or75zAcacFb(64DwmY)yHV_N@mpw)yg?rKHxlg zlChhd{iOKjWDEYlIcLjL@@{|{s;v%uElYa3p4H8BgCsuOyt4`SbKjdJEHnirxdH^w zV(ZM7HZ_a$dFD8Qy330ZW$AU0RC{F7x~@AATSuz!y#J;tf7#x)*#|+=PkdVB_E{va z(+lP(ZOB>&jc2HAC?0X4oG}Z~{qLN3#>5z~Q1w_MY@}HWpKnwP86NZFWPBT{Hmdln z*w$xf@lCK2TbMS#Xh3TVqut zy#^)_FXoCvx}$`naw(2_;iVDOVWHl_W$-l9xx_G;Cppbm10O1URBA@%=z8GZYe9$t z`9W4z%tm>|Ji9^cltlPL-RQNXI{=>Cs;9FnU0LX5LC-#V6qBHezv?(WUoQ^*rmZD$ zIgOYldQVEKn-fe?lc_;3ZsuP5p*``S9g)AUp!<6^gAuNZ#QZ?x?hliUq!*f~! zt84i=hOk#NN@0&Qo}hD+#VB&t@kcD%A-I(l&jyCv@Q{W2;h$9)-K1V-eVzP_y&Q!k zF)&BHMG1fmeEcNbXyaw(h#HWyFhtGY9Css2W0Ezn%41ld?#T*6&nYrThz+S0{mJCD z#7#ccH&_P%#(H5*hDQ3|+@ z*mVLBT7CW4$iKad?GtxCgJA7tgvCOm(~Fl_yXo#kkwLyTwIm^JKAV{h@-mw7EW}Il z$STqcm?1;#Tzzltgv6}Oofx>`Gwoh@ZjOG{3p$uV>J{8SEuGGFC9BPJ*S8um#&!`z zhYM3MCV>T=OLEqK?5UrYK+mb(K%Bx=s~9OA_I*0Pi@Cq#kCIZJLCQdWc1fu;8oco? zTWM)ude{BKm(A;ZuPJ>b<(4r=-efC2g(%U(>-IzJwM$t1o`yI^koWHQvg_-~5K>Qv zt`tyq4)QpKVmZ6LfTl0B9Y^`&_b+I9RG!uq4wg-Nai`4*91bQCmI%L_w$R*dCseY} z`eq^jLL=wX{~IcEnH@q8`*9cnieRgUs(71T^{lj+R+e|{tX z-jlrGoyg^-C6+Fp2C>qc*XSOdd9_1w{TmmO)Lcyr37$ZimW=a)>3{c7aWNPYj^Oc}B-p5CzDVxffK z)p-1>ZU%l@t`%FAI7DOSU`cU0#Vv}5k|F=2MK%p=&TBu08>BqV@5|&Nlkw7XC75A| zN-&DU6e@8?#+wyKBOkBO1KT)|zG$coXl^;8-G?7F5<>T$B zXc=?Y&dt$I10Zn=T0AZKc*mJzeT=-MBQwP9k7)+Uelimam4Xj!^wfN1qbKB>t(KA; zQjAgTQ%qTS&WGqePb8hksxD{J9T4X>^Qz7Zh&nswR=Pi1SrpaX`rcaqtZwA`vE_G* zq^~<8SN}_NwHvZ#hOeUY{HC>^gDgMv5*Wk9cImK%=mPvmUv(1zz z(z~m->s4Ie$N0?NlVQQ9uL71tH_RVTM139dZKSaSzFns#wmTX-48w+@5i;3OQ{8=^ zm2Ge3USS3!PmjQtJdU#Fvxk}F6?#_FaYkWpy@45;6qn9(eLY0l?k|anaX#xtBa(!h z9p%s-mYZsfgX-@!_jc>%I;F5&zW}Hx>8*cZPg#C$9xVTo_~en(_=mPj%_-GmOGhsW zf47tI_UWWb8i;N7lwm}d3oYZ=gpW}^gAT#|wHpo#xHaz#Ze*ixn67Pa9t9zJ!s`tu zR@!_;?L4jKo>rKz4y0ftfUogJZ&nM-ieelLuwdbP3>Pka&{XvZ6z$uPw2G%7m_pzX z{%9Qyjb#50aP*Z?e^>#NQGO>1$=Jyr*Q$~orpeOcMzo!*$Y@M(+>$(RFzcCVLJYOJ zvas;TUPskvEc`-huj@6{clOhF5RY|vaHrkPaj4JH4w&`gI_o#zuqQLvFmOkUekMEN z5ZLLzwrI6)I1V=Uq(ju8-B75dm!05-_Hn@Ew>yf_R(~4${G?|jwVXJMb5hypGA6F$ z3u=o-to&pb2WKT$b-w0%bzu@QH8g7516gZ!^&abYFROMJ=}AUdiP(5QhXv92VJGM~ zoYk8{Wptd_DUYg}efmZWk*?uee^D1=oU4iFs`6SjW7LId4p9}5D?8fo!hH+v11;d9 z?d@Wm`*=Opx;|H=lgSqT<@U&RbKX4J*Z1mf*lU#<(!|8){_yg)(DC zJ7q-@0+}#)@6y!?^-jxG2b~0!dn4X?dz7QkD{*Z7vY9xIytAGoOA9A&K*<`5dazNO`VRdM}Lcj8!1S}=5d&H;NzpY<&Y9Anv z$b7BB4vnEMK|x{P*=C`JUE`XfmfSj?T>kNVs(&nwH#}u_tkOulbfY}pmTB(3Xi9PV zdhC5DiRg8BoKTkeT2$hy4^_e(9Nb+HDYNTe5c}BLulI)VI2&d(THyT)XH#skeafZn z_Diaf%=%MdHFe0I4P*%6JyQpN=7;KXPKZYHF(W|>G9}|x!I?HEKFWm6bVP_!o}LS8 z?m;ojVu;OXx}N(=gQN{HUHm1&JTMqY8k ztc`gvbdk};A!Ba>Wj?m<$36+AF+PxXR@0GG0>sJ;Ahp@ z(CV@>AUQ?osq;xh2#f7T@qTC~sL)bbVFFtBQ#<>3YhNOIQRrKKI=G4q*x0R{B)dickp?w2EuK}#YX0Ri` z0yc=_K4Kl`Vs+gLWiaDbLFn1v3E`q$G|IIVdY54(`o7g${q6R!dEya*=Rz-#Z4l&Q zbqDy2S3;}ie4&aFqNLB#%svxKa2WxKS*yH!>6g8TOQt+z;0Qxk(DEgTYhtAK)VW0w z#^DQ5-*LDV&1VK);EY*gsa$D1pyZ-$bhfZjQSP!L+9Lv~jQ4c;%m4LHhDzF}PPbgr@l7Rhv#6m&E_>s{RtGFdlSmR;X$ zsgvp@_8Dmu$uFWg&afEefIt~l{LtNOkSEhvMt63IT{OV0Iw{R4>>8!L>baA!w(dOZ z8+eqHIcV&O;JA>6xOJX$I(aR7qa4D0)vnDl>~%|ELUX3U79iiy+mE_@Gu+4bZ5 z9qyB7?DfC|-X^~W>M6F1j@KMav^Uem@9nr*nT|lech#gZbLWg$K zsYEy4b(Ta9K2D3 zi3iq(X>Ha9M3j_cW)5hQVvIhEcLOggN&Pz%olqh3J_dmcF(%4LohINomGTrcSs+tlQ7rb45+-ycgw)v9DV&8tJKfPp0V^JUdiu8Izq$JPlx}1WkdWN?f{BP#}4l#Y5e&VI$q-p zDg0X|=D#ZAkNQi6hJFq`&+WqoMi6@w2bW}aW#1~?0pJ^my=3$jutT(}3KP8txgCr1 z9u>%p+GDl-zZJ2=^b*4uu|+Ar&>w{?HZ9Xc!)803$LFua>Q;G7LBe?ZPe({EO&nML`wGgYLo4Q%&zAnH>fJc ze*%S#rX*4i0IvEw>&(0PJ{r)&j9oKMb5bxU*dce}CRLmQDb1>mRD_JvfY+M=2Q{r+ zylY~X<1JB73z+PR4rDEMjAo1k~(=-b-Aoap)Enrz=IiTod{Wcd| zO3fui+G43orp*e+g^WP264_eZ5fVDP0yG(hv{RPl%0UHUl;%dbpe_h|BX|j@s7oD? zPn-y|(a3=&6?|(`*524$6f?LKb$f{t4q5J{Cf1V2+P5b(Eq7SNEzG5`StP_|VPvttw%4N9CF=rM@?``uV52)D}RE#Fo8}QF_Rn#q0>h z7={vFH2QZJLd@u}YYM2fe5=G>@_{$JWb#3ixTU17bAg*4$tB zrksP#HkKvZ!7p@3!e~e5{6<}vgR@U{O&=H!-t!_A!RjU|SYn$x=vf zA3vKFVBwxNF&kHq$Ws+5R2XH?Fdr5Kpf}T$FIQ!-gk4C!yjbm>ym2wdSI1M>Dim-FLM zg-2Gvxhy6?@^PvDtQZR{nM3n4Cg1{H3JE*wRL7qvSY8-oT^o}q_L>QP6l72^FQV#h zXjgoXur8m7e6|LvSPgKO=cOKRn9okjKi$d}um`}sy&NcP2TG41Ih9#9=0`9_N9@OV zTyH|ziC8mV4z1Yho0&pRPdCxQmU{#}r#pHha%KyZAT(N{ErUxFFV;O~KAiq06^_7( zFNEIiuUNAVzm5mB`UqyNe`TYdeLCwLK8fl3rvYnRUl(E%Pf9y@Vi{~ArfMxqRD4b{s85Y!tt(qlR%O#VrOe)DtcJ3xzvNbZXmmgS*`mfQg;*I)gzIc9erKQtw)Y z4ufKUM$YG~D-CUME=?ZV+oDh_TD_QU=G24No z^+XyI^acLu<;1nokmb%YYVBGcS(X5QSuYL2_czEV*>LH`e8&xU0HSvh)Wy@9qkBp8 z?BR5DJ2o^Js-H$t@?g`MJSjVs;zwOo+Y~=D#&DL6vb;|7P-Aw=iw3N zppWv2DE>5<*aWS@m6;X1F$|X#N3E>SY~nT9TZRQ}buPJ)Lalat3o~Mly&NYf(OaP& zswMJKtHS>Sda)}X+X;jIRzx=LcH>)5s{xv_m!R2mqgXYAWtTgEZl(s7#$#e8qF^gC zEnxvzAve}h61RD)ia?3I{ts@`g8B{MsqRvzmFoNPOKdf{<8XD@&+X2%g%#1fuw1D- zeLyGvgEDCqjBR86C?4uurT<`tFZx#BxGWtJWg4Vf&16D9+q2z;t0}nysIv$M8onan zt97;_<@(WpCr@1YRY6+YW+cFqDB5^ZT#7*?F)~2^q zm_($QlVYJ0qZMU?aiL3XXfgWQFH-Fk6=}V;x7y}52bB2+GZPjIl!rgPE#C67opFD} zZP!YY!MzeYLFg=N{eq9GLFS(kWc$1Dn|j$djPC%j%1iSJ|8_>dOR`qgPXRTKQiFr)&iI~h?Yz~@veP||_mxtbP*&DqvUMsL(0^9n?2jq5lk52NBn->l+N(;=0>K%YXU`x`qBTf2Ht7_lXAt@G~DhN_P@4E9a`fM za=v>lI%^9VwP)JFq?ul3-DIg_0WS+qW8?DR{@Q(QOiYx8GFml)@}_e*#l!V{&(2UW zv@=IT{VhS!iqc_!x=cEbGqh_ zo^G?KRI>7p7*-x8xp=x=b39h?l_XA`R*0cj8_U_BiC}in@{g0J_4mf^Xfh7 z3)s`zi`Z=d(0v)z*^uQjFNcvItWJy z(`u4(wbzs10C;#=_IDfZBt#Dmu{&^E?|n2;z)4ci*WBcUd$X+!*JtbYG1@#y;6QJ| zLw7NfeD9xRRC>|eXQ^lAnlP6Cip1Vu3j3M-0JWzEsL(n;5po1ZBR*1nx|TdOvvBw# za**fxRAjy`?@KLD3T&sv`Ri=BywrwS{>xp8b!`_+0$xL^Tf8}|&pX9-{Q#Zw4_`B5 zBVk8>103xJ)NwWj`-UtoWKANlWxxj8aQSaLv&To4D4K7hL>oVgyUnZETc^czF|dWrNE#$NNi=vPHra}ucY+SW<{}l7v@T_+r1j@pQk|{?_GAuc6qL?V&H;B>__v0cQ=F z6+`AdhSNzx?{X@wv3ayECc}g5Gxy8!{BFGXt>e2;Hco8Njq9lw7Njgk#dQuPIgsv7 z0%6>+@Q$!Kz?)cZbW^|3`J2)}u5FEz3r zu0GLi)s<+)6CM-v+P&nqnNwn^?VxN7&hxnem)@+BWcBXN#3a7NMa0QbECqUp9q!7k z$>AAKDSYOM=P5pVx+r>*UAuDIYa0cqM}0|k?%i$#hx3i;5k}soG2M;4f{Z8ok^J{q zhrl^;LwFm5=e@aUFAXvn{*^QOtYl_FhDO|N$Jf+dIn z(x>7pTS!q~Gor}Z!g}2foq0J=lmL*KH;>*%zeIvcD*2mn))m`dDZcy0{_mC8QyFBPuA~TcH$TjCk(vu>b@K@Yn1Y7Qh#v|+`4=L`ki_+JhD*gqvq#acQ)#HfKzS=^24VsCk5P;I zn;(N}2AURJ5ah4S&0X{jf}0i@my4K!?&@mvW;hR*N@YIhq#znoi-hhC5*j9+VWUtq z?F)_}jhNr6+NWE7mcmw&lJpJWH2O)}Lq?KVJ`_=|oVj@1AR;n>dw7RHK2n?s$fTUd z4IqE#3L+kztuQ`|b+%_LS4L1Fus9Clo`9!~_L`wmso~v1s;X^nwO2wI4)wU%u(~o* zgG4goApNI4XAh-2w&-g{r)oiES6mTwd%U8>mWnGWUd2KkS`;Y=uV%1~kX0V1CQ6?u zb44o)q?5WmO;w+G8y!@fx2d6II`IW<&LA&an=CCw>$72Bl6q_z^Ii)b>*`0tHTAk- zbUV)nC>;q>w0s3#xi!xuQ_W9G@q@>WC4x~|IfzfCbIgWE%rg3lt4x5{g)$ zg4a{%r8%bw5L=~VSLp^-bh!e(U9mYHy>9@UZ-DUdaXyB(xROyY_hvpdEJW4pA!o|H zr*uFT*KSox_!lIf@nnzbr294yuc|~UDpVC{Vg&FVtAK*KW|FgSu((Oe!!Nzu{7sL! z`6Z0)MiOi{))m9ds3fQ5?2OG-N8~iX9tDf;STUeLH6^Vm{NV~ArwGPw=8LI_H8dT; zP@E7l33A$UCKym^^M%cQF)NwviPt_u(G%+~Q!YpQjjK6@0TL~Bku@K35>KG&Z0ORG zU&dDSE6*I(DC+J)Ea_SD-Nr6nJ)3BK0(P>jIPdh%WhM1K9Bi5$%s974ZgdSrGFN*|pJoQx z>oPPzdK5j&z_vP4oTL%da8+C4{!$~+qE9%qDSIkDR4}n_iLx{-RWZRqiSKyWE2v6U zBJuv|Q}#WV5A=J=ktGBlDa~HavDO#*zdkA?dF~4`u|iW&R9+lTE_}86rJyQ4IjXMf zS&GM&W>m|YKAx<{Xx>?1?)s+Og-`G3dOg>L6XprN0WPF>0)tc!BiYD(q}I6@hogmt z%L^kE%b8G^b|`ju2!szq2?OXhNzS=ln0hx)f!EhRy0=t3szu*?8vcG4=^p zOGy^CP1d+N%x6{5Hq!Js!9?Q>dvp2w`-N!KkM{s_!7udbJ}Ztd?mWW3_webI#hto` z2_%bob*W?f6#0FRZ1(AIH_O^`WiH&2k2;uKQ2HkzQ3iu!a-!h!h|nZYzpS?6|1S1l zleojn+89ddOoVUZ@|gqI7~JqiT+LZWn(H{#C_OzVuh-gEHe#(wsHu7Wypha%9>}*v z;E?0zE3j!lHkSEmXg)LZ&U#Yq9id14EY=U*K0ehR`LMH0UY<5T-6m*oySB*7rQzN^ zm9zhw@LLeCN1VR(U@sB8X@#k{|1UcH$RW-Giws4vsKhe#Y&D z6lbk8d+b(9U59Mtz9|UWtj6A_%BR;{_^T2Yi2i%!EG9p?$4=156P(hJUrl4YT=mU( zfxTB^lWA+WawRqT{G(7yUY`%$ii(*4ETwB1e^}w`4>!#0M4NXn^1#ge(vUdpK~S2N z&ZVH!^@)#cS)ZuTs`?ogAwB2gkLvZ?f4E$V<4B7SVNg4#3=_IL1qYEbvg9zN!b*xF zuaxxCS9P5^Jl7nJ%SB)Q=wZ8n=zFIm+P}7u(C^VRd3|TKF?`2mIxm7^fby2^Z-CIgX3y3?dIPtm`PL+(i`C>+i>b-eQ>oId@#1J^0HJz~oz@fb7{#xTgk&SG zG>u$C%$$gvtW(OA+Qrk+vcfd$TdfbJjE5F9@s|_Ht4dB=;usl>9-)suEbYe_n&&en z)qI6e8KA9U_^O&=Te{{5F`Cs#9iI#L7BM)9gfII1p*WSe(Y-Xn%USKMT#-@ZG zJV%TQY%Ue0ZFI3^X{sHGJ8ek}QW$(Ge*8`pFEsxvM(+!HZ7X%(T7f0#;6>3zKcv<* zzEIt)XI=dL-pN^ff%Rm}{Pmi@xviLwq$j3lvNL-ZhPfZ*NE$71 z8@Sgs1s-cNQ@Pgi(sWATCE0BU+I=Cnv`0=Hj4NHL6~517CYRdH{Uk?Uda-Vp$WbbPrRdW$D3+|$K@M=PNFBZN z3=Bp>wLsgwE?348-Mq*dxhqWib=541m1c&jF-<4_61^`ek1CR8%-+X`=R^Lq_!c?7 zx{`=+W0II#9D7_uxR^nHAFzJWa5|?R;Jny(ca<;}?q((a4e%gbkf)HsyRg$Bm8C_~ zU)?zlvu!4EntP1?h|+TfWzw_#k=NG<_U!zPbX7BuJHkRN?mAThoscvtuJ zNHBd69}>$Buc*YGieFxo)Z?|c;xWUwszw)$wBPhAu1{`9D)f7bt9R+~zjc@GR<<>{ z>oN@=P&gPOmi)ZC@gF*-VSQ4tM^a)9nU{aBH~7^}`uTl1E!PH#stBDs#iA5G$2*)o z8;vc~1L#VKopcH>=1mZTO1Cwhopx?!52|eR=DUmw8QwkWCuo1A^Hq(%>)yz)^lZC# z=Og5VsF>fvann+N6>^ruUBpPpam+V>g<`S7L7U@Z@qnqo!qgf;oIEc| zBL^L0`yx5*f?u(MZ8)X6^ErwKml&7&G*dZV;xUj=FEzocuV@j|pLs3Wpi+=0Cn#qp zBwf9R?mi%EKl<}3ybrUo=|i(gTc$H);3Tu7r=><1*+9`^0O`)`|9aE&x3RZEbgBi# zi|tMpjfT#2=JOoXW)Fr7l9H93JIcV&Br4v?{i@n zhsFR09fkY71Xtz*#~HVtN54AehU_=3wiFaptD6>@s~Bx$-6KO5#jBfwytT<}N~Bc< z%Kf`$snm;>PIT_i)B*><$jzv(sr4G^9KL@&LZU2$ztxwNHz2AFf21t3EPN# z^Ga>qGuZkL7Qq5m)dO!SzgXdnwQ++|7F{&QPeT%#>SCx0^f=nFc8s~tyI5nB@j1po z&y$Q5Blm)Y-ZG<$7Yk@TA8$PL(Fq+U(bHnKde2$XgfEP1oF3DL%R(hEvY5x6J-gY2ob4AWwWL?9ifS_Jm39hw%!=m(CDU2E#7>mpj zO<0m&ZfPTFA=iJfxijW0sgOz9_=kB5q|4rgEK&&5=My?-Nn8 z(RDc{_K;$2rL93N6`YQ_7$)54R6ak?5Lc#4|5QO8uIyRzRDeZh@3;(7Oq2d4$Q#_^ zjgy=~gcGzVM?T3H>JTy!-|f%jUKg-i>}}bTt|9zx(jgIHib>lu=5+KHvhePlFWvP$ zk=l1XOv~#82Tk3%$By|qlEq!>&*TvT;l99lpa)cDniV|7jGCTQciXDgdyI%QU~#ic z3E~>#sLnRj#%j+K7^t5ao2cIU`0>a1*pFS6FTZdBSTOXt_Y~+29F&S#owWnRi?q4$ z64+Vq@bXo?#79D=lJei6_$-i(k1Je4l;MCE*%iCS66li1Od*KOm=bUPieAGFFY)vX ziAH#fo-r=*5p$4__wFr6^DxZhneKoiOu2rA&2Sa8*!o&w2JIj~?2DHHvV1gOr1rDx z2s50M-#9Q2IVM4T7r#8ppU^z+BG*SvNxZi)I8a2CGK2DSaAHzQMjeUSNr}6}m>6nb za`L{+|D(TjVo&0+279D*lA(CNlFyyPG`#6(MJCstd;ypLmwNndeq}owHty-CIrC*G zFo_SaEPn&QXZm2lflr!`h=>3}`MLHTd{sOuE^)O(vrZgm|4Aq(EH0<|ld9?J&l&c` zsL0Q#Oj#vSUjH_4|L-Kw2D6n}PG!7YH=|mTJ@4xGu)m=}ua^m2!7~?JOig1j_Ocuq z90{rJ6;jNO@;H?F{L1M;LuHm_wZomvRRA`v@E2?hPH9IAA@R0roMMK-;U=n5;x5Xb za3#3~2X3D0tngb2*cEd}w~F5P1E~m;$*RO25U>taM)zD$#Rv(_o`hhCP`#Q?%i#9u`6a!OC|;t(4j@ zl2F4r)1LO!dyfvl23vw&dX{h_q+c*?;7!%xl$8s#nt5X}@>g2}hUG#2iHK7u&!*Z( z@b~D-EtvPT2U%a}(#KqTTQ@}diEr=m`tGRiCX=`k#t50X?&1fz3nQfjNh3`(8dyB6 zM2iiw4IX4tltb$xRCBXms#dRI8U<%4vEbPCb9~e|hR@242En71fb3J-n36uKx7r|z zCN3@`=X;|nSwYxJ@d+>1CK|!R6lkI^#s1iIY$>U^tJkZjYd*-@rCH>D?qmn_s~2st zlzh<0L%Om9M+s!*4Z7x8`B?n9$-B_3r0ifL+ul9&ZD;Y;NKRyZIa-Wt%2?s8mz3|) zL=|I7=hAGsHmFOdd2CP=I z9Ud|yq(*w6y7b5oN-M*ke{ZNMkb++OZ5j>p927Ufih@OH-<($XI;-vpD3%jVK9xgc zJB^5fG>>^io6gCteQ8FFHz;19GnVYd1B{OQ#gU(hMj7!)fquDVukOK;1$rpdl<_NN zZwpn{?$#q#g}p?9c=9s3-BG27jDGHhwc;iad!(gWmF7J^c7F&kL_o&e5XRfRy*4PgwqrlCA$HwTd8{rk4Ks{g|Yhs z9V--3BVE2k_4L)&2KS<>3w5FBV+jSJtZYvtZ45;S@&pF9ZhM)oO}sVlrFxtgvQCNB zH~0w$=>roNQK1B#tn{f|rgA=R8@;{i4@g2SxGgzT~m4JWUh{u&M8G1i2}!-OOvs?5il)vbvuz`U~OhK?ecMobWBT3LW1($Wt_o;vfa?4nI>-6y110W4HWeBY`&h&ZLOYO2WRO<;ZNbubw8s@nz zNpFT@F?%^pl$#U%!hn~Hk#7x4kG*oh=Q-|kJ1_-$8hu#W$Xiv-1`HekqJ@VKY?1vD z(zzQ_qgCMvDheiWmAS;#K+eAF>ordGE)@*+fcpJbYRs5a=V&A;AuDPzRu^qw2$+h$ zxu_TFio}n~Q?J&>?-t>0qvtV#x?imHVngu6#uR8p8!>fsJQ~0 zi2p$IA6ZL!DF+eT4kFu*vZiyZ|EK}0F~ql_45^bw+E|d`sS_d06X3pWZFTFx3rnUC zVM?d)_id;YPYFQXa+bJ(ezZ1SbQ{pL%EFB5F&ze;ax-%es5=c9kd){Ml6my(dCDA_ zw10S-xsY!I#5^GlYbGOtI=3lYY#HvTqRtasLPKYzOF$6%bdVdaIHe}nd-Fl`+tXj6sRtW1LS(II zK^d7nPP0wE5|J6b4a~zsyy*~w+sYJ|1NJiUY!sgm{p@dTh(`eL-m`;>SdM@bNJph< zR8M3+p2>l!F_WI$Db+#Ve0Nz_h|z9fbHM?7+7tUqG;LVxT>JiZM0c9%3G>XNBi&bw ztiQmnrLHo|SB;{t@bL{&-}I3#z)l?H3c zINr?dyiiJ5tQsQqnhwPx7jRnbh97+H2SK7zo;;HXpET`CSF@JWeE~c|`5xR$%x3AR z$5p3h`Y6#aTb1O#+OS787^YNH)0m4MYqCv=7~87VN^NiV^$yA7$t^L@YpnLpxig_} z02Gszy(;%AD{=S6Dps7^3S^|ETd^N)*!=(U3hxv2VS!@_axw(PxtJ-}3-pM3FQWMR^Cse?|Cp^dbAp!=0CrR^3pHpvA`}^}Vx}Y#V$|^#~o}ye+}j zsa%rpr}E5L6>kN`cZ6)TMePX5&sL$C&Xh(#6#0dp0A3d@dCd6U+t2{-aEvQV>WjJvE-K=2lEiU|)rxky4#jTGij<`0&rUlg*^{a! zY84$w)tE{?@f=3SDnluknX;T~E6x4Ne_6+8;*8!^NlOg5CcP^1XJIfH#Zi~q<)*tm zuo#3eXCCWb08W~HuqOwSryv#hP{a-lgq?OwuVg4#i3i1T(L83AhU`c62Fy1<)am^2 zFg06y5$NR#0)ZmBZR%{(U2N?;)957*A~lX#0G2Ty%-NL^x?4KAVK|2al6vv&phtm3PxNaX z_=*>3D>rsnW;ZSChLJ;T*So0GrCj2_da)~2(cKAE6~Twm;6jbO^tlL~K(~EC)GukQR(6GCK3x z>6C}?A$IWC+p-X6>{8fbG{n(H;ix}mtd4K@=GrUJquah6nKU%D*RkT$AmEL!xa09a zH%@ENFb7;eEHqjk)Rb!?Cb=r|M6`&7>Orzs$%aAauCxXIRna7*u&h%~5L+PcPBQEb zcErPi#5(xEq)6 zf5NcFm8&CTAMZR@z)wJ>>-z8wU~)$$nv}<8GVkVK&&ik;QYI?IgB9CJrNSd(!qN9f zU^qD=jP&_k-$WzeZA0`{C-&2h<~f9q|0U`Eoao+{|1!>RNwK=Fk`?*pf)Ppq&(?O% zZ$CR?4InnncsqR^umVeZwNxy23V$y&l-}dm@vvsN_E}LBI{Ij{t$%Rp{_dfQp+JW9 z@(B?Fdt;h?YptOH?wE!ZM*B89$P%r%$ZRq(@R>Nc@`U>x&A%ELkno$WayO9&!%YX1e+SIr@7Nl_w7R?zes z5`4@KkW(KIlR9na0wY7ZCB6N&5S9Z4XW>0WVRZ5r&&Jb^)JCTeQwq7}gj7FBnbFWQ zc;n4ooviC*aI*L9o!WA<$(fcX<(bz4i;skq*E4VQ^KN&yxj;5*~P!c|VIyBfB4sNL`n!f&e z`Q_tsyU%ZjK~Fz|madsE$8|_l)1omIS7OVjPF>c?RH4?mr)L-d3uf@K&)g7E=YvBD zq|qwyLN#N(aDoYj<{cH)49qJ-D5$IeU8X)}93K>5sO%*YzBT#cI!n;5`Yks?r*nAO zQa;oU!xN>W+ieLI>z+hGcqVt`$W<0{2ytHtk@nMj4nWo6Awox2L_5k4Iw5MjU)gO> zpNC#viM%0wD&j1=VVSQy?spX%6~~a?H`(5a`VnU|#~bdl;ejSYU@UaSeGkvH`K~_{ zRYGVQeT};pF=?8#c>)KA5OEb;9q>{Un^VMw_wZ{MA3>{)L2qM`ayM+$>rEGlVz zgiJrZINk+&Wv!`bIMCFg?;a~>^$F&O)5z23u^a)*D?zGjHdqKJ=2PxW8M%|GgoDoz z`eHzm{!y$^o7TYKwEzxN94Pu6#Yb6CFAaZ&SfVC$5|}WcVkuL%?`TD3UrkLel_Q38 zxa9np1DJ#FhI8+LfFg*VdTC^V4er5!>~t?})qehK@%5J_|2j@?lv2Ora+?lHO9!dc zL#b0HxtwiaQZBXmii!CSsoGnPT>B-TU5;n_fPB^={7So2;4?arq>=rcr>YMQ>hg^Y{?FD*s$fxeH{5XG;S%WLKbVfB;17v z0P`;O;G>^gx|fr}o%~k8D2`okxaG><3+{LbV(?fOM9vke+=Qj7Vq#66?u^_Sn=cPFLR0kO6C%Zl_2ootc#V#~ z;Y%ZjD)O;qFjLru8&-Ip$~$r(=Qe42L0jeFH-NW%xzY+o_^!G!BgP?707g|Wq|)B% zLmcoyYTaZb-LOd4VMYp>dKfHjYKbfequ!I=19=(X1*5~qe4m4&p4)lmQiF_$%*RNz z?I^2$7-T-J?dSmIeNXRsi$IWmOJ)h>nRETIcUlnRJ&I&GfKt73)i*$uoMV#nj!uXY z5|yPo!J0ri)K+tWsRa~c6k%*jYeR|RZ%f%lvA)sr8n z@)V@IK0yj*kS!BV{9>yY3&c)UE;hgK7oiZSUe1Wp5*Q8{I!8ET`v!myIm+}Az4xH= zAwyedXleaikA5l>=lVNd3OS!5c;0=d=SN?A#@n2{C^8d=F6=JjL_AffroBKZ8YXlR zCkdD0y)}aT>k&tJw@LxQJ8>V4s(%5FP!QEBm#fkR^Vi^%5m z&ZbPYTI=kyf;}3vl4}-Z_fbPYB%}wG#(e9JE z)3nG(9DR=n)GTI0u-{gmNpm8j_EEcs9~IhYA4u9!AFIyoO`VMyCs3NKKC?FSn2h${ zdxa#!{)(o2KC4#SwITpvfA^?=x)jYYMl6#Q#krt(K9hHn2>v+|aS|~XW!t+_DMLSn zJ?g}&e$O}qXYQnF?_^lD$@PITgL-3(-IhpM>gNiJg?~ySKRp;kGu2Rib};uJRGZ`- zwlu7Sm}KEnH57C!gKq$S^W@Aov7Mju#?z?GZYA!=x!|+&^iR7!doMWlbBALfuICl? zH%#1pU4VRshc_t4-_9CA4^=#QmRd)g0->d7MU}bZzPh4H>?IgHc}N0?%6NP$7F^fm z!7#S%1B#>!_y!OV-w5oO@7K61Gm#!HXlp5E`X%Ri!ieKV5j8FGeR1C@n1AxCM+H^S4H-OuPg-3Fui)4eoeMi3NG7?cdPi~$mJKydG>-8CT@ z*BwQ@3`BcIE>oD(MUBTq=t--ASUmQgf7LnK~glBH-GAQc!N+~R+X^ocSu zJmp~mUo$=caE4U5$WS1L>|eN`kEJh(c_nKp1j2|hK|N2VmaH4s?afoqh0VL$z^Q=S@!Hlz*(*_-*C%RLVzvta|LpX{QSkxY|&$jAw6|2r&~-Dd%pRkgY*k_` zgKBsbyPP~Bf6*z#T-^wq+fc+oAE-@aPL71Yg|!Ki52-DeL!nzD`nr~zVnC>9J><<* z5D*mI92m3|f*^tC9V3l15Vd2HX~Ew%YVd_~55eQ2FH_Vsps8H&Y)%#;mcNLfF+{^x zbQqHbtuyQZp}n5T_Lq(e9FFVoRs}>o#aoBBy7-4MB#<$I>5Y2>RD_aV{`gm4A?V4y z2M%`IQHLh0(I2&q_IdVAroD>?YzqkHcU3veRzR@FW<7)mw`nb@MPeL2*jkjJ`gpDIz6EB@wElsP;e&t_?3Q1Qp z$|^wkObL)eqQr?kdvIq6922K?KzxsEOv{dtRnjd2T{N16G2Q;q%JM}jTUgD4H`DxG zdmAV;y9UbYVxC>gK91?n7gwvoUrnb;G>O+KgrihuPh{&CAQ8tEa-n(+ik}zSBjZ)Z z*f!&(@5|~Ln6;y-dJ5&1`+7=%Mh>M>rOnJxiuZUH%yWxAjubkK6A;@}d<-2anL3)? zj{6*ne%rzJ{4RnjC)m=xm^%HvQ+-w&%UB;!9Q5(N*R8Cjck$PC?(jYcl%TZxU6$Ab zpNwAGzlC`Nx(k;i5P$I1X=Vsu|myzr9amNtvp%gx9hUOOzlx?W+7C$2pDaOCRm66)E zJYHT?50^gec7gcXyq~D9gonf0*=I|yp64zFqha9(dt|beQ7oc*e!Eww)psQieD89n zc}OBpa@(`ovOD0$kkJo1%R(v0g9XX=i+9jRb|32mM_wdlU+<=av6Rv^b`C@6(ur(K zuL-7bcfOjSY>JK2q1yP<5~r9fNq%@1S)M2DdTwCvCEWM%Sd2+BKN(h#*)+$#Z`fS# zaxgpGtn<%E1;9jm!G{c<3ZsR_M|PWwWhoE;Df!ZJsA_+DTV|bL=%Cee3MUR{rd!hX z{?syhQmUg{^P}mXE#6=60eO-{6$Q7N&AolnzBh&c41hO`brm&M!e5>rhDYddy&$HD zjyfsmm%so)Dq2lSsQ`BOZ`E#ztp?~C24j)neb%==$spzIe|Rx&uq>v^)bzTGRo3Lp zH07C)g8obeGsr;+~N|4P9=P4Vq z;K3%2msfH!{oEuOvT4&YZ2a<*oPJZ&6$#NX1uD72Z;0&zuW4!86DMlu3xEOkBj9Z$ zM{iIWeX-?*I$@={DUa3onGKF~0iMJp6|ium_>?AlT8M|e5YdBic7SH$fj9g;0GIY! z^F{bw5JkT7gEwuYbU?qCK2ejHT`fdVcWSp6YzLD_GiKR$AtU{tIu|Q@cQ4T`3sP> zwsHNhl=}tzo)M|{XU1VC7iQcaoVp9;M0b>Pg5pitLo-(Y>64qJ*}_Fle=CQn9`}BH z7MZtk>$XmRbvE2$fg9z4ym>B1(}vW@j5K+1CWXnP!}PR7KMa^ z*Xt)ZRG>C35WV$YUugdHL85L=MPkHQ4iwu!QWP4(oX%uYtt1PrI_RP!58N$BP!6(} zp`*1w(~~zDsqH?ryZL%KBLn|>d1ztn&&Mz^TxG<(VM+q_aaYNxvnw2K47Kc5&T(im zF8c=1D`2IovW`sO+PMrkF69$m$9OGZ>DiDiyEO#L6OZZHJ56sjTgoY+7GA3W0j|^0 z_-~y7SBQE%+3AfIlomc{s<0z*Ke+!mCsEx=h#@$ORUdXcFM8_03&=B^rb=l?Sq~BM z8te^uHA~OpjHoUh+#Vs9Gb9x%>a$z*}*$;g7w)x52l)gSW|lF&2WSZg2ZRDOx+140R2WHfC8(HKz-K z7eRi$Zjd2uKtue<7F)v!2Gfe9yj1e%OCO$>HQ}^Wlg#fX^|r1qzVPv6Ue@%z$Bc!k zIsxGPyXQXv3SVqb&=SqY%QBA!3$$a&t%^ES0XyV5aXJ$AWf;+nw^?-!*h*VPV zNrPK-JXbJxD4M$l32xeRCEJ(Ur&O@0oS2+qM4@KS2w~}QrAl@*z7{vB?fwob_*|Y- z(ZTdFp(Z5aad)(J(&hU#&+FAUMoI5%Zlk`U?s*;2)%osIZdm7T&J~!h#{D&)T{_7` zmz{F7NO)Z7jHDSk%rfqBmlVLEAfBRn-gsp_$x9Kz=Eihlq`yhY!&*5mk~=k$?`&^MwWuSf$9fIPK)&fC_# z6_ym%CCoOQo?3~0UX!jS2@$a}c()YQg%_y~cL05ypQcp+yPwR(!sqHY%bm;yD5VwE zD>$)c@jd`k)a^-sWPkN?>_TEtAZ_mPlU~Ja`}4@s;k{L~oEC1Z1{2f)b3OBk8tUVF z3Qn9|S`b`x+VjFw;2WvbiB4MjFK%a&kWuuySzojr)RXJVKzQe~a%x|=#i!HXTOi-t zBDkX-rsBQ~uR9CEsL8$o{C~Ai{%onxy=uw;UtRgaeS0tvfdB*mBHTd-CtjZRk4^k1 z@r(02Ax8_5qm2jti3#`~3X!Lcm8ZR-<)AonPy`qh=Qm6&5D<@g6VVTLgNa221%PS& z03e)SX~_Ws;1T7a0bnQq6@>6JML#(46BBzQ7A_wy2LM+UF2@h>^Y=5Y*c-8b{(i}U zajE&n;OY+}g z;05(>Fz~YdO$eO+`?TOy^EVjC?_zJt6YBS~oc{(1KmD^nf0fMd(c!|yzgvYk6avrn zFFC02$^zXa4JYJp01y}mZaD$+Ae=wtfMVqU5HJ*O3=nx}JP?EfHxhYT1UUW|22OxM z@JvDA(!>D)a6^L2{BCa$@t^qu|0LvTZ;T53LucrX=D&h|W&`IZ0T%+V_kUQGe_MvX zgxo~=WBXgoPyR0eocLSJUu*ma^6xO9-zEHGjQoFuf&86HfWL5VEa&erzii`1vF{51 z9?S1%>A{Z(zg>fH`iH82*@J1}1`q%S!~)?p2#x(!r|{|n-&9iokQN>UmmeSx0La~B z3g@>A#}8iD;!ps9HWmQ-E(ZjUf&iEK8|FqsIZ(ij5Wsgif2aY+|3#CVQz)DR=lcQR zKPdcsFYu@f0!2BuzvyI#9uKt<#4mf{h59EDc~Odb7WY^Sw<1(-!7y01Hp^~guiwH5kSZY@b|Bq-yiPRI54wMP)=322e#>9 zTux{8FYjv{3WPGAXHZh%m1^_eNJ3WKzdiJ0w-LuSzGZLO>77c86~D9l74UbMKO;Ww zFX-;#v0qNmwVm3LruQQ-0{VFkPducVIW%^v}u0D~`k2ATtBLD~K!RUMs-=J(Rby&L+(xIP0 zeFw|H>Z`1n2##K@K`SV&PRIjc<}LeF2U}%_=a}4`33gr*ULxWvwG2DyXQ-+R%m|hK zr80e-LiDn{`^xBbnph}|9S*8|E2UL=KujjjdtbblsVspuB|3pqnhlJShZ5@KWx92Q z$lAeam|vVEy{m>rtHdQYx58EYd!8Ukm%o}J=WIjEc=xOW4H7JIvA*fosne2eJ0wl1a5yT6V@upO7$jTV2*XB2-DO z)5wVBUlKW>Ce51wI(bSs)jRf9PuLi;`njl*P-O=WFn|dbzu3l>3`pW)^I^^o5ly`C z2~ov$ynBX*?c#n>zVj5;lZdDWlA02zGW0HbzLh%Fk&Q|Zkz_^Xwd{Z~ha8q+y%4ax zpMau)k5ZTS|!*;3qvniTi~{4i7e(m*eDRF(mCVt^I}?L;4ucUu%F= zf)ZhM!h<~#lbV|T{(^%Fe3}Zc0x#*IJ~5zKz=$>**qBE5u*;wTw6<{LP7sPM z)R!@sZC$_EQV4 z>g4fSjh;!Y0C*2+W}M@!8dwMh@1Z;?J3KylLU3lAJLI&C+rGX8Z5l}&TOrT#;)P-@i zz;gJ;@?)sV)d0U>@isbv)r5)CgDDH-ZqiDXpym+zZ0ugJg&AI9(08>~y!!$+|%o&vnM1i+Y_OzrQ(L+8EDBnfRf~S3diL zb92b-@kbMo4ctJSnqHsvKX>9&Rn*O(}GDIaoWa6(qS7VGnoR- zj+k;zVFS#P(^k%M40uHwQ_M1-qx_c6`RDo?HFIwo^}EpD(s?dQxWbJY7Lu^bt^HXu zI~ocp@2XBs-96pObT-3c@f_wSq}D{E_cKQ91B%@(ASlG&>MeTq+RP|-`W1iu#fKEd z^-h{JJqQGAKyorh zxc|vuS<^cWc}mfjwE6>^PX^d{l~f-dO5#&JM0R@*feABy5V7`*in5>}xP(nSo|_1X z@auuiT4HWJ*G<6K?@n{S=M4A=Fr<3oYJL=9_Yn)wp1xzl89|is6gsJow4HI+aA_^# zku>^;3#tr0qSvJP&rUC1#CZ^}BKa+R<{a+erIboyHJ{z?aBp>b-+%EA8zrg^sEeX+ z%oV4hX37pI(M2*M1^{5&-o${a$BM5HF{Y=N<1^rMC?Pky6K6zZwZ(^1E}ko`>COVY zqMhwId@}&FX(hK2C-Wr%cfA^d32JlM^&Ectl$ zVZ)VDB;;Yej~27$XV`+LtCEU@`A&qOiDpD?#835)LIUE|bXa!3TNRd5rCT>F=#p}GTP;Hqko!e50FpBewQ-WUK|$#rG~gX z9W5aaEsF15CH!q4fbt;r$F)P|M}+R_#X;ttxN1!u#EGS~2%nY72OSxNKwYjhufb-X zom21TQt3a2-qX-PF(Gbr?)*BS`3<88)LXdX?}l)MA*q5q@Svd*m|BeGjktq-Am4~E zKaii>(ch2H$RD^iKwu>#7Ec#26Q|fe+JVr@#ZgOz|8}5VnHfRV9^q{dhV!u}VLf$b zl`8-l{;&Kf)MR*JACFAXt@>I}2TNcr(PtC6FiqkdlshX{?rUQYF7jmbF2(&4^>%=C z9@K|xk9W#ti6nDHR^}(;Q=e)B*-vSXO#D2d%}*W}@)~nZaJ@k&J;CrDA-0q(yv(LN z?JdMl#oE5@SNNJz(-Bq-G_Af9ll~4_CdN0NaqiO*sxx<~F`2p0Qf)%6SA-^Ne^5~; zjcofU{{6FaXa~zTKtIDKHc%HoS?xo{Ee$MrWi%L1G*YNc6hsSv#xb;i*$!okGE)fk zLo!hk%oa%sIPJVd@w14B@pjnEQi!u1UU>;rj+1$kFUJsvv3IqouLn*n+elN){h!*t zJF2Os+xw&v0s#UECA1I%!~jyHgGc~rB0Y34s34#s(m~YF1Jb2QGk_pnKxv{#5d;wo z2nZ-hm8xRFg6Q+%dhh$L=lkw`|G4YB_xy48p4oe5t+Qt4%-+8~P;pIX`P5!9OWHVK>+kw>=> zjqFp4OOe20TG>;lu3ge_U6Wp)1T!SmH&gcZKJa+c*n zFB@JzzQ+yWb(EVnyf6OiAfDTiFFr}=hylb*2zuF@Qqo4SSuOW8) zH{(78L>GsMwM-ZBfNpm^7F@Z*mAQE;B3ddQU4Mb>FQ@kfw!S!@`f|dmKE<$2a_HE39&xKoR0%x=qC<%47omej!*aJx;hsl}9Xqm;Yijp4{-q?Rt8uHC}uC zpqNrPBQP$-pO;)CSJ3Q=d1G>@;n!f)n^WAhC#Orzl@Fk1kb^ZQuO(P0+@EGz59NEo}6x!;{kt*^?4& zC`?fD@peuw{m^9<6(J2 zq$;H~^xI>`Uo}ENZ;C`!xGH7A--S{n1SuU)r#7`~OC$SRULXbeh^HpT#hyRC2YF6= z_F_kMhM+{$pWqNv7yDLjb`h|+EuwesG7a*3^C?i*mNVeHbBAw%B-5^5afZD^3Y#9NXP37;%&QPw%=+ ze&jM(6L$S}?p!HG&V$SL+Dh$za;kf<+>UM)--iB^pf4rr*4}8Sv+DA#aaYG%2cw)d z2&(2q=L^b$CJdg@{3&}^p&5?~w%A+~?pQHnP=lS9Lq2)0S|1sJvum&Z1(^N?tlLoZ zs_(0KtlgUX3*cJ)0gE;z+bw$=O$fIc+Km*aM;Y+tL_D0R+3)H4T9S1({G}&!LC#%a zyFRNprpxI0(iX4nWd_mE*rZ4~;gDB#|JtY{2*5cnz!Gk}*u>KmKJM`vBtYbO_KoY$ z{(CGFGTD0N9AUJ7%-xioiCv*PP4MA9u#- z6;$4yLVerNhzn+qX{&JXjb@e?P!`UA4A2z2#YTOxzo9@_ZJ^);T=0zjww7pFZ2GZ% zynojpo25C?D;!Qdxn7cl6A=kA(4be;(0m!r&EAAp!xt#YR&&7%#xkKWHHng62rl{$-F=09Jq~qN9z$QUX!p%=1)?hT zDAl!vO3|?A#LnYNB0t|iMDoZLe$tr@$JW@_IXC-G{DZKVb<52!*pNLlmEdsBzX|r` z;{GZ09P7c}D|8eB~?*yxnF>VBN%izlpX|&3uZSp>ZzPH-#!P^H_ zv!}2)XqN zG2w9`=;=ew#M4ptdv7|_i)ZjM!;HJ~Ox&(||LT(oei>!J6rm4hTGDt(+;>jRYSEtXT!aQmI57h6L^Vyo$OT>A^9v-O; z*O#>{GGtA$8*XK@Qg9i`^M<4F$c>iLAr@~DLDxK(un$dikKun zieB5pw;93Cu^YVanJI6Zmh!9}G;bId@p_vmT@mx=(2 zm0oU-Tl{``0LkV3h2Qi{4iU*L$Rbr`Eopcw-91&)?|y2t*WA$m%0Fx!S3ijsYM9z!f5#R2*(ull1qc=*jBW;$xncqjVVzlr`@%Y5a$oQRgIO4csWld? zjtJ2)v5_`3DKSulRw`&;&ky2*9;n2`KMZ8Z9y^Y^TcO$~66zZKf^?!qT7g$yDwDYU zcC}^Cl(C|=x=e5RnswxoKEyFo1fP^&Jd z=?`gPVXr4rruKWK>b=6OYD{i0ueVqo&Cj|441{n4AuTTleqKvV{Q!;QqPx9w=+7VO zydKVMwrn3!l%ijXYP6CCWOYtNUQXzjza&vu@qkMO^_0d`(wD9pF`R}b#Y(s!2m4h6 z9u@9vr08`ktz3PzsCHhqe^D9BOSj_FV*&8ShskxdWJ!f9CbJ$l?9BAXtwMQ|v}|!n z45!1RQL9$@jN^Uz61|@1y`q+c!bD51tQGN02+}z8ZtOcQ@&@hozzBS zY;wqC1${FlIq#gzBbHo`H;cnD1qt?5+|TlGGzdLRVls+B;WIgf#~NBa*1pT&+ol@^ zFf^ogf0zn(S@Rx`U0JK2id%eBbS@A~hw+9KhD7m)Wd-+QT1^go*^Y3;OrEl|~vasc??a3KhehkGXEOGc`jsO0!XKB)N>>mYhNZd90NG-+Y;)q29~ zh6(>=3eQ_O`DW$sTbv4T?p=Ap#~^1EKLA9^SFb@U93p!4^nRSSn@Y{39M5;l!@)yz zX@AVBe_THDV&ThoLr>)WvjSjusy^6%6Zjc8)Sb3$fu>?iqEzpTm3|AuS}7lA80g;$ z2u7ib42GJ`a*SBa*|W@d#ZR9%-QBAFDXaVM86CmW(cJNb>Y(SIXQrLL+F#DT`R|#c z2;aQ(z^4z4Z@Y5E9O+#Isjdh981MFHEpnx|0$*lOU9aN1rK|B@T&Hc}IbPjv93j`^ zg4}MuD`@5`y(-=<)tp$RX35Pxt4T2+ATcwu!%hBJuZwKL;NZG`nQ6??--n}3qMe!I zDL`kJ2~U98cKki*EyB*99ojtEZtNBZ73!H6ifQgb576<(_yu8F=ozEn-$$a4z4}ZM zc*?owz2Q7XHMwha2REWmukkhd3uwfV2?WH=?gpp8<1}n=F6u%=*D+=Zi<&2uRRyf} zx)Cqur(>!-lQxHfPISR%FF8LsdomS#CfBQ{m|f)>901aUciGX#vaB!Q34XgaP1|b` z>)%cn^i!b3d+MlHr|Qt%%#U9Vd{t>r5-eIn4vDB%INFpqT<(C8ojAgLp zi2HmUxeXzaqA}3WBfb2Z5nGeFCn)kq1{qUocN9t+xsdqaGgI3w4(>TZH_PhOcw?AG z@M4|Ha!Xs@1IIgjp8KxOw12I?TyyikV3ynOn;U&IOvK*4{_mCc+vBaz6#HXLMI#%J z52n>3;}*YYqa8>KcZvMfGt^h;R!@ECaRNc+>C0+$5<7if%&G3I^JMdX+*~fvH<3oQ z2jpI@}t!AK4)ty z&!+|ZW&w=U$GZr0xyCm2G0}I+PIlvl`MI!`Ts`_+aD^la-_#jzyBC@D$-|(`p`@}y zki5jr4=ldRxy`1_(WfRDkm5VkE$8(5t&krb`K#%*qV;-InmA;^i<^pzCZEyA74f2ut832x2Ro#8oP) zd)Q$3bIeAv)2b-;QNXny-+3Qr%GI7b2JhDNaL$WQ2Uza;Up-X9Dh5dF?LMQ`n}Tjn zo)Sp8?vfQVdb=THL2q5S{E&b#^AwKm!(HUX-3gFL=pfC1z+gXt53EwyXiuVKXe|@+W#Y~{w}&? z*!d~P@7&{{5D(wa!BUWE9n*~}EWuG!@@}7_ZNSSk;51OZeF|pN8sP9^IqtK(v#0Rg zKu#VI_d%27Ud>67Z+-^D?KUH}So;fGb{q~yTideSRj#dKnl2SL+A6T1DaWa{@KJl3x ztu!id@Cd;1A&+8ch{*@A?$d`D)0Hz$F1Uv7pwMl@k(4^q8r>`NBhMJTvQULPp)j7x zaY+|Bb%XRSR5GbFR98<7{thw}uvmmFvC7(sH#wg(?ZPXxCeg|!9N*7MRgy;?%(R12QX_XKu2x^f2i= zxA-=e%gWP zm7#Q8YkhyAavdDAcpN0DwJI$XLH7Lvnm+DHbOmRbZ1oj}Z=@&(bcxfHtbeFrT2t=G z#!E@&T4@i&a%lMn=UZKui=y9OA}@a3wCgA%ho%ZRo!7GS@md_uh13;=pYyc_CD~jP zfeBVS_z&A&;kEPhV?wO0=!+H+h1ur9&XnF9c6b-IsZ!H^9O;oh z==D*)mk9l(EoNNic>`PE{;~9LqS~ih;0G>0;p*JZ337nKdA2~mm6GXR?=ivp*#%wI zR}t%~mBf&u{aJT}5U2M^##YVIqR8(GL6;aI#NM$1DCp_32R68C@R)w1*;LZL0D!g_ z!mJ=st<=z>&0X`OF~Q*O({~Q4YCcN@-e3`SHW3>E^W!;634sNo=zL-`KOo6nl$Zdx z+daIHDk9nH^%m#Tt`byX)(GLD#1DX2K)h=oOECXEKD4*dYs{82tgbnA!V;p3&$8IJ*qSq7=Q`v<5~VYLh1| zTw)%hGfaK#aBkwC`Zinx8Ls$qiFR{Bw4)e{DH?!>LgvpOa4MfIT>K6k0&$x`yG!Rc zCAGe6)i`PTaq}1*l`6OL3A#EYP<3%c!au4>%JvGk=Y*wT>7(H9qNqvR1hjb5(M0sr zj~g>0>w4xBwB39d{lKx4JbA#c6Tm4kL1;swaqskD=VfzldlWZpDSmi&3@-xqi@wPY z#Vdlk9^B>mGL-moBlQ<|Wv4)UfAnCt@C$Dd(CXp6Juve{X`^0j)NUTfYV^@5dbHcS z&V&nvLF+GWTNG*iA*Pbi^&QUM>mzA@uQf}0S4AQjrFI(ajb8|29+>HfpygOm$M(}@ zelVqOLvVCy_;*ahYMR``h@H)scijI*mgLKhY}n5wf9m^x1p8`_#2n)geh0q%&@P#c z@ioKIlDW3I43wmOEA6PST89IkKR@+B#?m2ee#}Z^KQK-Wna=cg_0A2HUUAk-;qhs` zK~eC!qsj7h*~6K(sOTq7_e_~s){AgCV%=+Etp?e(w3)VHDwax<_IlInq_^&mx|b_{ zVoVsR8Co8Dr1}Q34p(OhT_04v1zY*Fl_OwaaKHas(UI7}m^W+MFz@)rZEDVuhB8Q1 zMZOhPAxD-XA^Y;!DTmK{(k4#%J%kyGVR)P8NEkE|Yb|j%#;e@n-Z4jS$ilR-yVaqL zqyd%>*YlF;2)wL{!!-svB__5~Ydm^e$*A#IW|TJ`$%0+HMrJ=s#Mj**f4aB=P$iI&DIySF-!t5RUW?kS;%>Lud9ulr8}4V4 zX!;F3p_F`Qeqe8>m{hk7jnj}<33H;5(_S!Fjv_RtuVDUL7Ld@dH=zSgXwo}plSvqp zlAsZiK8x^re3agHVed6nPPQyHk6eLIiUrQQIz$5OMAhs5JU&Z(S%IE!PG1%37Yox_ zk8D;RrpAs}iAI&Kv$Ta0O&(JYnN3#9&J+IurZ=_y0n?A{55j-nP|zsj+g$EIB9Wsh z3s0EfU%&#uikv6$IPwsP#IdYpr7T*fDg!WQ+1F2m;f^SA@AZN2EA1yJJeMgrd=FUf zfvF!AWb=3(IO%WFh$z0DpmQ?%E4vI%#xBxC4~nz$Ep`*uKx>cXM7#8j>p2M+P4nQj zCF*NG-p{-yW{Ev{tM$wxpq}1zwTrDca>)LM(bnr;C}1#@rRlzF5T68-cX2C?Uz9N~ zhp*|TUQ8j*=~sixM}Kt7>kl&^jY7Xig1(+j*dXtY*7pAFeEs`F$FiL1Q0W9vnNXtc zfc>rEY&hDT3D1GITmnFA08LX25VRLtWi#V|r&-~Jq?LO3z z5-Z`p-wkD`qn&M7&XBjk=6|?bKOU(;PjFI!qyQS z=98L&*Xl%X31_ zsI1g%jDpf%SU^eDiAC?q?s#4uG4T%RsA(;3cmAwl=Dd2WJWu7IOB~F#75!4%-?RCK zot;9HOk84`U;gWZ@3IwJd06_jWEQEn@bbeJst2Oae+@tL+>}Q#DS{0W_piepRYTAi z8gjPc*77}bho<*S9vtVaiAyNVi4x#FA#pQS;^J2;{Xw;oD!QB0z@^lpCKm{%b1C6O z*fA~HXb2)?|3xX-uXiXEsa0Y&JWo9m8f*!)ug=tC+A_+~;aEPtm=|Ve8823&x~0NyCn@#$2FJTwxtwB3nj;$cT&(Nl7Z2|MLNCE-bzT4Ga-DPUXFumT_qpH4_p$FY0FJ!0oHPId(*|S%0KPv3Bmj6gIM^SU5Wqh~ z6huS>1Vl7sWF!;}Gz<)MG<0-KEIb@cEL<#fbQ~faTzmpTLP88|ViF<(5D1aN`Q%uN$|JR_f`NG1(6Wh8yj=6YOW~NPM3FFyKKY9C#c6fRtv(>?!^Nj3}5WLVuy|66{~x>io8g9C<&9Y|#LP zaUfFYPmYw>Cf-5n{9QH+nx}M+R|YxG1i}Bq*|d?w&W}fqfn}j}l@e(N09z}?F;ReU zW~@8v*rH=zEez;A%%zad_D;e-10y3*wWQnx+l~+~AKCB~JTzNsep?!i$+&EvT1!$h zfW(;*Fu?yV6(r9v6^O*9BcTj*Tfo6F4)Jo$%c>xKL0faM=-Q`r5JbAKCB6XNPlNdL zFb)6|mZn0z7?z?i4z!E2aRv^JQ5BP|15cJZHeZ=)h8fpuTL~_dxELP8qyMcR4-}B5 zgB8P`;h}k?MlFDVr`!x+Wk`q3fJ6vR%Ca=Jm`a%#(vV#97M0l*ra_NBy3(8;#7q3# z7TdOdy+A^lxLiW0$hNf5697)+dk%7#~m*fA1$jvyONQRa!;989~_*X$An`09rF~ zURpN&0e~vT0|2BX4fRbxVP{++j(EZ8kcY!)!Mbx=LS6Y!mC`pwx)3(mP*_{aW2r!y zqY@S#6nEUBm&`*x->?krn^l)=W#B8Hlj(pBqijqw0HAfs1(=>1k3EMy03fg_1i1ka zG4v1HmI6cKhC;)QpJ(gfpU~y85s@Xi)k2hpPo^w-pvlSVaL907&}#KLQKIg&KLn7+ z1#gRv^oSeM+EK%``^oYG(vr!j&|W}GU5_4rzL^{a03;;~JutW=vBhp=rV$f>BV+*6 z#=n;aVvHG{bW|;1G^`Aro?&y$$vA}sh$f12yn=_A)smg$Ge`!ZWSS^|FZK+`?#x$| z%4FSYB;hs#{FJ$c1==bcvNIut@h0_DqnP2K6_ShcbOY+*-7#W1a$m+;h*E^^CX-g; z7DO;o9hkrnS-DrSvd}b91OoZRO8|hZ`c89W*soi&4+=quEd$^J6SH4MqcTR9r}9=f zb1}$n()bz!1=&z}dLKqVJ7GydWuODMfFqgoK3oGiDfcn8LP{2sE;PauJoApRt=6#2 zhR#sYl8eJdJIqXTXdFNZ9*>v=00ddnzKuMobykQSTCxEZKy7AtIvo&29v2~L6{OE( z6%4Teu98%ql923yWXDr9cAR0~Dox>n;4kswBS_`VT4O{vtJAD+7XgugLl=S9Ca_;Q zj|$kL9)b;b7HT@ubxi;eqk9D)sOrpl^S#q&8-$M$@~5Y%$1C?`we5n8@~aO;)zPPn zqs7$4A{x^^pHGu(_|3{>+jDg8c&EVBoU1*ZjDcQ@%Ss>IgLO1y4ocQp_*=*$=K_UL9>M+O$ z87W;!8F4VYj3K5EuOFz}zIL|loC7h4u^iK)fC-F_fTRKifa51Q0*!X8>{*`E2+npE z4_$7V5xq)<%^CnGwdj$g4}h5fQ;Eex>GszEQnn)_6^K%)%k$D=s04ViK|u_FBc|tJ z0f1xINtg`e$!RLs9mAFaHU*Cz^(2|}3~SoH*?8SP9vV+v!2^zil?i9CCqX9i{h z%qhH$bYKU>N}A*~$1{|T!>q7WlAANLzFeZw7T7r{jhx19DS zULi5tuG*1zK{QEY(QQsw%3B46?ebT zVfg2g>Q$^rb(p({V^UQ5|MK)f#_jTnU(0E3r2DZouwQ_u7v0l23fScA*m(qEI`3!0 z#YL+v3mwP+qkCe%1PmTV8xmVsrSrqlR(BU@-r-&)+uQ+muV&c7-RZR^yXf{EGRZx2 zfUu2ZScqIscm0+AlOhv1X4&=SUGZ3Nq>|`Q@_q<|d6D@vF}TS6ArY_zJ<`MyJzff4 zhN(Q4n5rBaF30xy7%>c6IaJw7lVi9)$$zLBq!34s1yAqsnWyx=oiVyU_5L=5MkMi~ z5Si*&y(f=&RbtwR1y3T69V_z}7)*NDxAG~VM@vGUP|={#ulK`c;NkL-;v6jmqmr~n z#bj8E9xt%NfrxiqeJ{E*N`H|hd57ch0(a3ikWI+-x0YIOnZ=fSLVq!Ei1542kh^8O zbZ_={p`=eK1s~EofI@=LEHlKw7VO_AxPYjwm)8%>vR#E)8jWOm*^C!0(0ZqsrP z|0D$*Gk=i~9>GOKd6l1tO)LAOjeoaRK+gB{n_w$Osta+>SGYp|YjY!;#g83h+0vG~ zS)1$d$E?6DUU$%G2FX7P9@&b;h)N7~s@7r4iUWD@!ZsEA>HX^G!V!_3~J{~pNiY*&7eT@vzyVO733D!#6qx7;gSwd1zdHpG8>{eoCxlrU~ zn_hX3<{y@E2PGri>Jk0VVPZ^+{wcRTzBE0SK;}7mv$eFDJ=!rq1R9(>y0O0M4jYml zCC85^7I|igLA@>IkIMUOhM?ieBBwt%Y7Rl#O-1)fLiD@R8^Krh?Sz!-^#L72e+~Aw z35h=4yiaZygp9CW+J*Pub>`#+oc9xU;hXaEvNOBL{=0A=$-6Lym~8K# zr}htNWZ4YHEDH<+s$K2FcL+)J^&=m`@Hm<@FAqx}heIOIG@K=;G8;cm06=LEM;AVd zOX8bB{G(fsV(+6tg28PghRee2(l|WP!N(@bP13AupeTaw1qQJ3kafdQo!f6)DZ+8l z!u3P<+1Le2=A9S=Y7IMvi*~4^X)j-rP5_26o9P=9-*wS4j z)uKOD&9Ez(03fjIOBGCSi+MJN{U%UK9|;78@IF>nXXB^wKroX=Jf=%k!}9k`x!-tP zwugXkD%WY#pa7y4eT>>J)fvad;1THcLGv&aMKO#EFJtMh$B*KAkQlVx*I3*<+?^W$ zg1AC6s1flfQyPF56Y84;AnG9v(NOSJiXetsJZ!=$vMwE`&K7HoipHCH%SsV+Dy{v# zpWqE?%=4846?Y1P6T(S31HLB`2}Ta?dIiMWYdu8)0^UYOiya}*M-@}96|tGxAB`C` zXdjV|gDc`E#v8kodVO!uXqt5sBGgMO!m;rn!5lW);<{9D9pufxfbvC808owDOihP9 z)UaZyk#XNTgnQ|s0tt%IfwbZlKp>`Sg=n~Jb0sM8OM(Qm;JO3Mk{+%o>+si zz{@y``@7b$;27!OVW`0mm@i%L%a6V8N1JKN6_{Nt#jhBhoiaXi_x;py(!IEdiS>F6=RKa51L!@lnwsIR3pT5|RxbqR56Ja=~Qf`1rG` zm`m^&VltTva%`sk4%wi8^Q1o<>gLzI31!pn=80Jw4FI8Xx}cM^TB1|8FD4xzL+y8( zfj6Y`x%RHb+ zxpvJI{+Tk;IFSm9V#un~AvgfUs22yT4$3|61^_V;Ca+TDa!6Wbfu-mrI@*RKmN0Xb zEGn=AP@p|GeNDG}Le%1e4;1Fw`rY&b7XX2auDtNz0_+lv+p6%wWLp;?drKI5ecg8P zH2{nR=f^35;~bWTBJuA#`d>2ZL#W7wnnS8nn89Lhb8tvSz&pwF-nPLCB=)Fn+Tjb0 zxB*D|eN!IR`H90L+4)D>Ee-(4sDvrk?`|{rcwoDMy}te_d=UEmOgt!iJoex6paiqu zc}z-U&L3M8(~$6EmQ1E@3(;fM4l$PF!rv<%cy~m^rNJNeivrwK1p4c)Vg8)ipG2UC zlwl}*u^1KXekfshDR(oKiyorFP{=vxeyVE4$+N0L0B~I%T!5bL=ln(Z?|KHLC2zu} z#NSPSHyg+k7E~Lhn}0VO;BUXw;@HY4J={PT``bAo5xgTv3v2kJ-kwtmqK!h=B;EN( zg~I}zc{j6P8Oz}}TR{J) za!}xJcM$+l3SCm5{{-$!{$4Uw;gTD>*ZfDNpAJgwnB-V4oy$hLZQxg}zmfh) z7XcWgokuwtj?b35(u!XK=5(qI1+DWwlccfG(+c900aG`&N>U_QT(gZnlYKYb5J?lwZ5 zNe189j!lT3G+EBaa(5Uw*Oz9tAxKvI)gw1g0MHVb-$68abC_2(bjdrJ_UnvG{|fup`Ojh=0Ad23;;~j zS0Z8iTVA--M8TXx%G!Yz8R*+pdAqhvRt`qzNqZX0lwhNP3@mLxs40N_wT zp99jF?3|Y{bAgIm`U>?JYTDhK&ss=uqwf)zOh1xPIW%^EmIz|h7k9In(_h~KAsM8i zC??-X2it_5)4$Xb3g)sC8>AMql%xt%LWba{`qLRgZ7j9fsi}OqcwSiC$;oFy6^yYt z*m@{zkGtk$FhVRuxh%L zC4x`bvMquXDH>1- zdJMD66kj;JKsLMUu|3Nx2)L5$F;xUTwaGnw{q7d&TRlXV&9VmCt* zJfB&GcfFAe7f84|$3OF$z3_F8vXHO;sNA!@wQigp73^TLH_6CVX^x-_Bz;=KWt{7I# z+dFAA&GBnDF}kB!Gfqb(5keuHcw*@>q?Oy_3qX6O$^8zWbKBalm+d*xlAX-eu7Knm zF2|eK-k=BtWGwu_oRDWxZd=JFL`LV3s+SR6dI|*sLfl>hn392g+4H<+eH4gl0yJ&$ zB)1;gGQlA+`T~5a0R3Zb`|LoAE|lA1VXSJK=;9t?djXv`^C$-U%7IkxAPN?U5L!92 zU9O#R1h39Nu#FyZ(Ya{JzzHBxLBr78Wi4(u?}*UGsxgXV(Pdc!@FW&DV9H_)8z$W* zH&BYFP{Uy|kN{dU*vfQpq`)})5*AO?4hF7tl~4eZN3eE}!C{}kK5%Cx*+&50_YbOBQz{qzw1oph_i^(5?JgsDL-#0OEw)VS)Kt@$l;CD#hMSpkyS2Y5kjJ2^h z%6@162k&2IBO!&)xW05!^e^P}w>>2XY$Bb>kaW0=Binp{dNlIyasoPW>)4@3TRuSj zS0e$m#D_=7)_lO?k;uR7ApjAHMtm$`dl5a-{vPoky&dmq0|43bi)994!>{{D$AJH~ z<&aSNPMREJdms59y&Lb-2Y+gCGqD$LKjldH-!>e8srqiXl{h#BdZhV%#DAR=BqOf5 zL3(JP$)mx4-E`o~+-|t+(K*1Vf7kE)t0fei+>RCcs9zZeD1X}vDWc!7I^W2@mv=AHssizucfkwuNn&US2%{wrYj;1&{21H$639FPKmi%T!> zXgiX(M?{M9nozJ@Jtw+H`3X?M?Zyyn(-1gi5KDh@!SA1QjwX9}Xo%##Pg_d_lY5+f z04=^N4|E^C3qq_z{S{|+vBP(Gb)JQ^pF|3JdA5SeJ-nS@scsMX6JY*`=h2}sk%KCS z;!{vmGdmYA!|iRScfuDAsvM6!IAMGuB8tladYs6i_!GFI_%BVld)~Ca7Kj5s^Hl`Q z0MlX|dd!zvobfP$*lS=J5a?t(`@t`KC!{2MY=XGzq0)3FdILWThs4$cKM(pXw$pFJ zjVR4((zsm&M1RO4+MNyv0mzc70dv`#$t}fXb&P%#UY9QOi*{7}5CL!SfGcSkfWTt6 z0CUD5Lo^jlU4e6GRr)3&wrH=*yG7O#*!7YGH3ygkQQyT3etyv>)*~boUvVb_f6*1p{1V z5_dZ#4KB^x5V)eecE;G~KqUww0`aKvLUZ9S$mjpUIW1R!-k3z)sI=(0T|eAV~&^mIYj< z&$0*Lp`n;j&!7lMrgDM+#%wiUA3(`wx~>pl#4a~LJ=A_O9kBCvQZ|7T5|J&7Q65YX zpu+HyQy9jgjr(CXQ@Xv>4Gr!x#>M!J>23_NmVEH{Kb(vC=5k$oAqI$6tfuUVlJMdz zNkUM7!LI=VA1^xDJL3vR!4+8SnnInx0AL6yp?6|ZfG<99H1rx}Xb46Zt(eE19}S4M zzjTFHEY|sw%SlVhu*@pX-_FI?pB4P=krd$z1|a*pjhkz_3*` zgIFd^3S@~#uH>B&db!k>_^&X&?(^b@g0!MF_wFF2e-XY$w!3?v&Qxt$&E2)bwJz#Ta} zfy4{0x|EsSU>)i#7K;d+vIo>g{ULUkXIhiiL76JObqfBrOSJEzrXlFKYjmx~zgBmJ zKsBg0SZ}-af$g;tUPoAZ(Hqy4`KD_^V*VEqQIQ)%{9KX^0J7|-(P!My_g_3>fy?)%gl)^DUf8^hfx-#~2hZ3HUVjOC#7Z&<<8<8?0k+2@ z==Drdt0OC~f&zkF#hdgzWiWMcS-%u17yOwIbP@q}?LHR*Cw9p8ffW5oa{{LkMD^Z@ zazURe#g#4uZ?j+>up4c1I4E;R7aZ#u^ic46Xr%?Yf?X819&JAmxDdrprSHoBdWZON zGHjSBmH`xWm#ri6VFHltRSs!49_?41AC$wZCP>!8D^9SeF@XtehnT^Dzmon*h!8xM zDn7wwIxA5ygWtxS9xed*J?heBdG)LVdm{Th$)`IF_CuUf{3094K~)UgVSXr##DxgQ zkPZX>N)lc$I;(j=@MlcG0rEZsf<(4#DGGK)rw!FU@-B#>CxPm47rKk?yF;k=Az*mt zj}V>%!~+Pj=DYCWuqfRhqx1j|hWy1>f}?$42d&xB!?A~)JxKeBbr4V`h8h0EkAe0= zUXI~|WcXZ9Nb^PL@dAI~{JGJa) zbP04v^7a#t{2j`E0T71cVI6mkG&w}wLH|MM&XIO@h$5JrQ_!RMU^ab>;;=2%@6%st zH~?TaMM<28ZB74C`YTNaKrrG=rfx{7r2nHVj`11)VoL()1NgK(A|b2ZL0VLpIf8SL z^yj5!TRtFSauRw_a~t~)&VJAyq~OGb6vz_pQ7hMfcANolHG~NF{EvE_MkdWk;;}rU zt_Mj+y4nwlY-2-x+fUgeIDa7hwUG=qT2b6a-J-*<)+p$#td)j;r5~dFrO^!PptWoI zigUdEvBlqSaE0_hnT;jCxcqLuBMq+ALbyQq#Ckfs3g&P99}Q^r~X8$ zSDh0M;7n{oPS0k~tWRtuJni-jIIA?9WN6SIhuBN5~zdO)|WZgeHV+ofr z+2sYUNpHf@W?)n>XbSXf>^~L;dO(;@98UmGi(3>VZhxPL`G11Cae8pQ#_866R|0q< zsqBYnGa5r}zaH7(9xS*V6I~C>2tr9FcNU5ry96KXCpSq+t1ocyC={5C2=$Go-FC;ca7(o!NB}gcgrqzaJ*$R{5 z4r2H5XMuoZdHz>6I1`aSqd-kt^ z82G}RK-I>e>z6I*k7IDr26pVvP}lHl{HOz`Vju`!Bvic@Kz$YsSczXNLk6D#h?jX| zFN*Z3f-Bf|T#s+Kiz%29q=bZ9jA~AVJ&JkIMU-mJ@-&oCHdSfucWsP7r&c)w=*BES zHP&5e@tnAkDjYj?;b)*BQT<>M34-rhUSX#W;gnwY{84^Ls~X%VFgF08jXPk=Y39mSR+7=Z@lfoS({VHu2d&WNbq7$YO0$0)`Saz>@L3#Tq)0`RAxr=_n!(qE zyP06Pl3~v5A@$wVpq38+b*AOc@3qQR(fuLd@iYkP7Jc)p#~nTbD-SS=QWlRjSQ?!{ zk;n!|!paeWP=aF~K!OVe206*0jG zb`pr?2$y87TQ*(6cS&E%h;+j6o&<{gj*`<*zwYqYQ7-YcvAKF}bO#Urk(Zn7ru3Bp z$e1JPz%fLr(f52Pvo3*dekV)}5uRiA39FnH3dxufZv~z3h34xK8*t>@7MoIm-{ctb z?Gdt3ss=EtR`6|pw;+MT1$LSgieY$|jfUA=JZBA}GbaW9eUm^Ve`7+(EuwE^1~c7T^(vBU#X269|2bZss15hx@(1#CbJJ$yJF zZhB*OE|3f$oKgsK2JGnUEN}SXsYqu^2GUKT>iUNvnJb-{mL&inTx10?0vbAeG+Mxe zXeRosU)Lkp&;Sz!vLJXxuyajOOW7ufT5N*%qtBMv7631N>)S`z&^)fbil@3mM3A;n z-ntJ!S}($IX)DREw5?85G&_-&RO+50&EN@Ke>~p}63N*)4C?=->|q%lNahhttK>5< z61;>!Gk87js5O|#&-B|R41hn+lCiVa{?s@K{kLa>&4x8|un7AwcxXd=*FO9ph;-j8 z+XH%#b_i2gnBS&ggU1f?;DGBYJUko%5_mEpEP+D>5s4TM9vMQ!k3&d6#c6`i!^VobB*Cm!$T2r<+aEz6nEHf1md-eG{K#P45`#kPN4s)yi z(;=76mm8ilX}#(<{_&giiNzE5X%^4ts_D^0=iWeIm%c;C4w3LsA>K&isKDgW)XM4c zMh<;F=~PpiazALXFVz!ot;wv`r^SB@dF9kpW=F{hS^WrO6n%vE8zc6&3M+E_HJ=n^ z7u`KQXjdCiOL5kLq{=EXaWA7=N;XOFvAKp@?ex#c6Z3A-^+?c~^@UlMTo!mUpx@SY z{e8@(`0lBJ%cU&p!8an)7}IPUjlTm+X&If>u6LRGnEJ5X+zlNKxW+9fV;}RoOe(Z~ z4W0drgg<{WM^}%@S31qDNQJ%EZ7Pc+FDECdb&9EeQkqR*;f-^?q0}S=4ndUu1 zuB0vnmxb$wcsa3|;uXqN7yLe)DgJhCk>ASK(xuyO^!%-qrH+o%c>_JSC7tr8&CW0v z$uBS89KK3>o}AI+$p!hsp-`6*;gVwHnB-QTFF87_EZ>1jsSi&0O-8I=d3JgX?ZG{L zqgR154PJ5Y*j_0wZCC7sL_b1%PuHE?g3+biI*fwGue45XzQibOIGP(3Z!qaMd>kI; z%o#fRKO1=VUYn4eCZ{asb%J7VME`KzjmazVbwgiYDvY;R+v$3|_r8|l=BBA$7J2Kn zQj^3(-TV3l)*9VCMs+Fv_}9LjW&N1XZW&>9*PNDz|2vTL zP;vhC617*MSa;ECgJMcys=l9c0^5*rSGPS`4xa(aC#rNzn>-_Flk?fWM6~vXa!Si7 zg0I1;+uUg9M|2w_7L#W|=^2e_T~g`zAoW08qe9Rt5|t?To=4^0)^pR9#OFU^mt6@_+R8i(*!i#Dhc4kvoN^>6vIeCPJ5wW0Ge zi&ugi8OJ`sa!beP^GJLzwGWVF~l&6ORjD zzEHaMM9}pCYFmRu&UYaC$Gns393;kh*lUc7kDj?1Aex(Gs=(!bjkOl9hfBF+*u3e! z%(bhL-?k{fuAlxquiCKrr10A9=NU+Y1S1ZScb`p#BN(@j=&yavLT9iu!p=%vA7=sO zJU@1cYPycQef-$<=1o-mrKyc?b&ay-lFugk$X0TMsfyJbQeJqI)aJO=U9m(Dh`Xm? z>)65iN+y8M)`TLXof)~w8d(u0J@0C?;fR}U?j+Maf4Qcr zudHm(#LgsmWxI@T-b7DN({5MMmv6dWrBu&}oMA?(TbZCo|AJ;9)3*%e6rTPLWS14# z5_0(`y471NR!^?779*cnaKf0(`l9Q^@WKB?61}-*V3yWNNu*7;g6X^B@|OMT%Jx-xgla+KSsw8n~oS8*?;uj}tBTZ4wdOoS7JJpvEO0Z{! zE_L_RoFbHzuMUn~uzvR);1_E$xc)`I15qK|w{f-yhtW|mx&|(3-64;EMO^a=6GKz0 zZ#i8u`(*C>d$93-103&XFY;XYWYpfT{MvW++{8dxsOMW#FRScAvBw@=_#HW?&eIR7 zDb@=SWYc2NQ|W1M<>e`kKXBnd|N5!7g%W{nu@7E>rjWuj=u-wScyt|C6}KO_)XG%e zw#|5M{W2@bNGvxzpBr8Co_DA6h&Gz}y@|AL)9x$kUSVDDZS2xXU&~W6-3pZSdNN2I zKJ{WMAx=-$F8PF`O;R+*)FxtC&^y-|iN*qlzJ=Zf-o(MJi`A^oPEtCRp`aM)gX+Vvld#U~ZIFwO|p#=25#-^VAC`vmzO@T4S-VG4(UK z&caQ;Z8|$&(izX@eE5ji!d?_Lmd7W*^CfK0KklE>2u4BBk(u}^~9%lorO9E zDv5gjbNr7{NGj*h4C2MEX6Jq)-rIE)r{7KSJZniyjK*lLX;7f_ zMrM2G@EveSFH~X}nXHYNyljI?KiVS${mD3S)OhJgOu9n42%rMu8ocMA-M^z)>(TC&?|?X zDPF4Q%$8wi()Zj`g3G#z-#6LRGKM+WcB%TyN0;8qZ(rIDg&y9T8F%jNxyDF%EYfmP zD*|s4@{qOkhCFaAz#(NOZ>WlXyZ&-ax;3B#AZ}a*80T%O58gZ7RXXnc%)U^m z(9BT--|l9LX8S}g!w46DLC9Uj|NTVHS6woc?XacM@oAM_&3E8gQWC9(%~>wyECKy# z-`UUbN@J#(9{(4s_M0xyNgiIwg6-EGvm>fw_$Oqa+S2})fZf&kG;cOX5izT7FINvq zKb0eQq;sr_{?CJmq2u)S@13m0q%#Ophb}d18mk%9-5|R1RFO4LwKU;||7%U$n_a=@ zgNz6!v;Iq}dUO-&UZ8&}w>gT$z+o#j_@A%#vCT;+LnZy@RmB5-qHpIbo}BNpF{M`S z8M5)A_3X@-b7C&liXgL7Qg6C%@R_O2u;!_rc?$Y9j&Tk?^I*r3#L(7{il-{))P)(J zyCJM>s43N7^T{*Ik}D?x_ zHdj6~Y?8-Ydaa9lyA0(N{!RtyBVWD)rh$ZZZ1;wenX|shBnXw&tbYf5EIKMIpYU*- zidM#s#&;4M<@c3_3C2rFJ&XuaNAYFO(O~;bt^8Fg)-sRe0d|fjx!;chd<@c*&mEU^ z%@eFQx~ueAp}?J{SWQZYwX=_Y4*gl*fy#ZpdL(I?slu<^p#ruZSzOwq5*M&O zygR@CrMxeoDe<%QsvS{kMt=F2p|JgzB@P@mv+ux{2W%HjFD!iPaQqg0UA^C)&yDN6 zJj02z+*xcdCt~;sc-&~sH+auEoZy-1R@Q;%px0d0`S3({v30ult4CP(2-8My{#4xn zZuD?GMqKG?>#e5;YV-a^c#3yLcEzTF5sG{~O|kwxr4_MP{nc+7BEoRgrHV9lYgRj& zD#H1Cz3={LW!2*6isHGc_meHna~-6=Ep$h7W_Xd~u;n9YKI@NtjaD#Jc!lLsS*mJ@ z&qOc9n8DVyyxx~9s0?;@4B~C?tdZGMZq*ZLD6q!S-O>{t1$%O*g2A7XB=0E*MbHJG zOBlr>WpEl__hY1fSv4ZvvC=b3j>&+JfFDMm@R2!XBc6jZ9qHXy_Ws=g^sbM*Ony{x zAYx7(DcN4T_I_49-`U}s4{CvR7w(QyAdm;(xeCK|v~1Vl$&{_qD$dFL*AnLvRy~Pr z@bw*Uq5&DY~+NDzU0}7H|;OUn9i3wmn>d+_SsXNWH~!usm&dp zWH>$3QgZ@bOR4wbiHf^6xF2%sZM7p`ncZr#RpRUsdRFY9_SS|?y@mCB_%|(8Nyoxk z%|sRwOY4pd>~H?LEM$B>YhLB@rxjQjNTtv8`%u^{U3&kX)&b+1`{PT|tf(E{rJGi| z9(iP}ZXwZOy27?Hb8PpcaeVt7?&&^wEj-!RoGCq#gpR4D5j0p<{uol#qiA2?uDq@$NQnQx;G()Uhsj`?7vP*+=0D=kP)yBdiduxCq$_UMim#3HKT0H+buTP! z{arbXJ3`qvQYkmC)#!d!J|#{wdp_KNhRY$iqk@*G>;HqlZwIQ^e2x{qiWVz_Lyee^9*J6K)$oamA4hoGpn*E)n632;CH*Iro}cYC0EOqo?>?% z_X$I*#>Llttx%e69D42o_AP3^`&sX_hF7x~=<^MfJHY8q$}Z4?&CGrQ7} zUe29OWNd4kw>qOa`N*eEPW~PW%5oKLj_?!AB?mtUK^pc$Z&Tg`?yHloddo4JB3Pf! zJuUXmLtDSy&22S!8u6ilfcd+1;g%}?mdo$!&-bMa2l6Vd7EgCJ`S?CD=!$DVtI@nr zeu7{m$L+n-N?paMVQ!Y|5ShGtRa}1(+tetW6XhHwfzPv@7S>8CnI+4sx{lbLfmGio3<>nN;YPN-cy-iY^6xd~ZEZ zNrC(wz}|6Fb_uLFp9|AXFSynT`up;>{e6p8(;IamscBOPl#R}HQr7i@1e52zrP!#M zZ)wyFjefeCH8_-WO)MJUfzCV?^lvkLZ4kK>i1jJ5POeQqEP%c?Axejdq;#c@L*WyH z`{jF|*%Qn!NVhU(-JJXwGVs_wJ3HG-gG^t|Lft7aFM7LO9=@y7NTGgOqm<$kp=B$@ zj^^%Mf>H7G4GM{6_t#T?-3xKO3vqFAydD=x869wxSmF%X3I@XC!!%ggrdQ%A+_D6? z$i?T}ZzXZ~&AiF_TK{0e`400+a=&qjdsAE#NA#7u7nkooO}%6_@xp z`aMUCY`)N$_*0B(IzEb|TAI<-A$-GAXrMtO#iX83DLi7_wexrF?>y>ky6pQz_ldnW zHxb?{drl3(ot*&~-kCE?wmB|P%~OAhMKv@!EM|pi5>1{TPnIwC&P(oXpK<1mr)@8S zP2S|M#NB*QS`_QTmhrNydsKzR{gSTH{nVkddzKwD+`t+sa0vr?21)b;JQX%13POpY zu2QOFNuk@Ir)AV+V9iRFz6g46h27K{J{Erm|2Gt5KxtXRyIN^g9~(rNQl1206*4j_ zQ-{e7mws4EzpLjyeR|{lL{DCH)lEq)<@lj_rTgudXj$|P6i7uHb#C*j< zpzbmn@zVVUt=eShAn&r)%Kk}tEAfu1@z8`FmO@!Zptgc{ViAAL$t5mz( z3w~+fE;!PbExy}r%W+e=;G1K#yOu*;`&=RaBLN4k*fTez<7=3SXcKD41Tvy25+_zC zRTuU2bvd=Wd%XzjRqr+D+(6Um`a1hCl6Ik|(5NxZU*lQ^Rc59UT?*P)C)%0%?iXgg zA%;(x1~j!;Lgi39Z_RUP>1!w`f4#f#h}h)PJ@}3>Qd6>?9wJiLYYG`z%CkL1p-%?! zVy>Qdzyy~8?9Ak7H&#d*ehhiU`W6Oz-Wc34WvJZsc8- z5+aT?t`rNCc1&u2{UW4DCe}Bmh2XM4D=>`$f0YVh6wa=rCAwCdY4(I+pmsJQI&nUi z^?*lis^Aw%R!2V4Pw!L|r8^u?mu#dznfIbj%t{gEe#xnWZ$Dw-3EqaV0$TsfyLKDvN$%t`?JQCE-a;>6VoGF^(HXOrv({GW=z$ zS|bt)s6ry&!t}ob=bo%wAGCF-=~(+F!NA01WX%w*R5>_sw8-w-s5oDe3Ddg^{K7Innpw_6VqbCX;mlKTKVFKYD(~inim! zeabWE9c=Hs8(EIqc@i8+JN2cF5Q^`bQP3Dk8;xXeGf~4&p^-ga$Z;V@mCj1X-W1 zt!2r{@yQ^+`7Joom6qbHfqMQUtu3Z(_7B|m@bVffru$(TJCTnGUv6xb=Jx@@> zrmYy_Hus$7ZS(wv#EW#f6sl61$g!w}YE`P8gA(LY7`Rd@3dI&qgrR~m@t|XM$kmJ0 zHrpF9aNYH5eL1qRc-@6DDl z%|9cjaxo`2Z%m$h!R^zdM;ln@zg-sE{}_5#OJb+23XRE49Bh8X){wJ!N69WjE4iv# zjx?$is@h1*p7@16Q|1w|@&mgNhE)wM{ySsUR=r9kwz(P)%fu8HJh?(vikMM*vLE`O zeYTnyjF7Km9mK3N#aHe8eENM-*3A_9ho-H|XzYG6kq(cutkO_Ih+}L>W0$-=AAKU$ z$;|q&wlzm``sF#dr(!}9HG|z(Pa=DtTzw+)IKWG#LTl)~Hk1uoDAuadED9Rjt^JAi1KRgAcQ-&sZZRG2sob@@Ndaf#jC#G90U7we z2I_Vzu!hv`Zfl+98Ac5gpSGUAfa={q|6%R_gTHTw=0$zc2GwgDSA}KTvj5W;OGo#d zm9H;}Rv)i@qokc35`kT?uU$bH9Z@c3p)E?15E*pC^T_*m`AWwvtGvb-%O1R>g(04A zMks+(ND`ph&Jswi$%U2?{69q`aDK@pxz_BM;C||VQK`1u2YbYh5I{>MjuPV%Q2<*zz~4EFVq)aWnsEbJ6c9MuzzV1?M{*GEwy|X zUn-DFPf^gcrnTRv`4ywsH@hN|tTfh9ijICLlJ3nW%>lcS3J=bW@sU|mhN3Vbl7~#M zNgYt9kz0r@*~nZVJ~v~3%@XtwezxB(?WZJsI-A%muGhAOnW>pZx`|&950pxS-n>tJ zg=A~Su{Q5J06E~89WG2`&G{UDhcVUU`HIq&b8CeAvjnA^7gZb*PMMA0JMry+;;37# z^FQZC<(i0$j00-Y^L$Uj{CKG z=i9+-5na3i)ms}8qyB^((V6_#>kniYxmv**a2W;@GQ!xmWLRku)q;-aG z7w&X)C7p=Vcd3?s`|N|405)}rhH>>vM@zIfIpNOrTD4WHS5A76=BC*fVGBfNM}Nqb zG}C@vRX?uoWGt`EAL>5PR1~j!`c@vLl|26at8KJ|w-|~xgA|5svXbgustR(OI%}WO zcp9BuHmY|T_}rnXC0&1wY{QAaUzmXGVfJFdHG8Jq1Z{@TX6J3mmV$$ATQi5OVr=oh zSf94Y%HcCAO%JbVeo&pl-?$n#cG)nUCM(HU-J!bY?&Gs%>9EaXb)I^Z zP%_i?vOZT>a&*1&-ey7Kx6yc}KA)~u3|Pel)DuKmwkE;Yp(BP1(?^xb9t511?x z9Q#I;nm0-q%VVi6$NenfnYMRyir{AzV!I_NKNcKIag2PicogmoBu%Owe^S-|izH<7 zYxcEGh;Q4uBwU2re0UvE2CHbL2O`MD|2Kj}F5=X~?K2DugzXoW}j4NNi<8nIZ-%EyAW6G-b3+u?K}nOTvd5t z^PHn7v48D5AQjaeQ+Dh8&=vM4p}`+)jje85)!JSZ_|!BhV4&1+Io(UENt4K%Bm*3=A_t@xK1PPhvM_gDGm@O{bn_73Om=O2NN^>tR+kTcW`1-Ta zh6<}Plh@6i{P-UwG$?;la!hQHed|v1Ofk6Dk+(GY8rfyEH|@MUa;*Nu4lL)Q)ZWn4 z#-{RLt^N*tz~&C=(Fisha%XL91f7xZFId03=vu?YdZVgzgSS{R!Yle}ePFP>9COH7 zZfoQgSTpGIPa(b;tJQvo$*1|*PvzSc{OyLWFJi|NXU^4Pyh=UK8_?#HAg9V@oNW8m zZ9|(|oLj6wGah=gP|f0Y&UUQQJ4?S2=7yNyp_@r7=bOar+3X1mle$apf17M8RYAxZ z6x;BRbNMzy^TH$AC;cSPW7^^mR#|f7Wdeo;HAFaEDb$v@%{<<2c6kv@rGYYv8INEy z0DJ}C=t0vds*HauOT*{VgZNQvGTSw<)dw%VkC{?)xR*A@j)-&B`7$K7wZ?4RX%l{J_0?CeXi~nSURJTJA5Rqej|dXDcvZdc=l>1zExy6^?Y46_eC#LIC)A7}0h zf==FBi9>S9XOjsU6#OuAH?>>lhe8uxjaBQ9N}MD%z*cusK3C>|=wI_9C6jhxh^K5d?YDp}YBa-gl>-ME*(~y%n=s zbBZsGp3?Sy>-GXsdgq~;&s<4s=;})CC=G>RCS{4fQDlSh>$)5fIc_^Siab-j`(=J+4;p4J;+R5t&k})fzR{98HLS0c zAGWd)q$|VkWl#?pkLNz6Ypm!KsUhhnD;kTW`f6X4BM??TNtg&C(;&j+?o;5A8;Pg1 z8A{1kG%fggBBjFo6qdQUsDf`4rqnv^Od>=Fc327z<1LDNu)%!((5%UsD z`8hZ!`&J(v*Bc%e`D5>iBgf62W0K5Vdn{+!$m+02(*C~F^1L1I8Dn`jbXRE}qsTzWwsmTgV`tN|O zO}wx^AFM^2naH4_&vBzleMqClFuOZUB&EVMIXQJT$ArbLmv?VN9FU9Lc4jsYQ=kNk zhg8L*XYAJVhM8SL^=|&rH=-;ykZZZbINsJOxauXP0!h;7MhjS|ql?v~!LMtsv1mBZ zd|hdGZ)trib1TM|7MkCIrV^Mqy{y1y@~F*{OO=j^2ce!}n?KTVlyP z)$L{P>mMM?Yu$XE!_3w7ORc+aFbx*YVWPt)J3DRhL%L(SwwmUjLh)P5Oa7hm3w?W(KHf^JcpRf4|#f~lkWgDXI|6>Y~nJ`#}$L<^uKAp_+t|j-g(q~RVFda z9(=i%KA~OQhB~2ywYDidgBF&JMCE#=3I}ePo4BhUMP^l7Ry7^fOtXTxCM>}-p}|F$ z$?x?@X3F-H%+N3meBcSlTYFyWy~KCr?r+2n%H(raQBr1!mQ{a9r#shRbUt+^z6)d% z_bd&TkN?X%r4Nk)@bTh*)-5e?6A?=p4FHt{E>8NKC(&B@(o;B@k{y7V|&__@Idd<)2vjVmEvj$S? zxuA{H*VO?;9BrB#-vP_N<~4_tgQ=ir3CrqL^|mQf^P!Ak0Ut}giScYovl@BV2$TF7 zwI0rX&KzF6tr+04{WR#FWL^L&n9-uRU6}oH!i#eG+XB(FYeM^D;wT++lr@6-qWB@S z4B$=K)Iywpzf+Oh{X~3`$L~j96Ec#zKX%ySE3_@5%bO%?`rFJ6)Tbk)BV-$R(m>U{ z6G5EyFDh~na_p3)W2t68sdf2RUGt9$`o_YaGk83PvUl^+=yLQL#ovI#XVe&PKlebs zRROE>b?AjxE{WR?cztH<9(`KEF#PW($BWuftalg`C!i#v<|p0#IG7AWQ31hlYCw=Mm9U2X+`ytjM@^i1pGmv@6lZ6j>{ zQP*2u!FTgXqz;(#ucU+bs$cNDo!VwTjQeK=%)gq)x#nXUFp}EWKKGqRUYh+!lUxB= zFdK>wUHuT~&CsWGEj>Tsl7IBy;j;A`^s$$6`pR61CZkgDZ}Pr^-e~@6 z5v$KH{0KLro#Y*geTSZ^vi_v?Ef6Y^Vy|m60v+hz&E9oZ?K4K4EY>WxSPE32v`yx1 z>8q*K>-2I@wRY%MZ$=|?U#Rz#Aqdvx&Ny@`%q5v-ys{@?b)O=odkK$V_*_*ng9ENAIiV1M^W8N6wSEN@Y<&YtDE6fbjL zjBGJDpjvm352^%AZbTQ>@LxH4)yGAQRSPAm-|`8E^B64elPEH zzFN(=D}oyBCq=l>7P~6n2p4xNNCw0|LcoA#WvHX@!Bt`%Ncom zOXjdE&E*F(|Mf*A7T;}dve?>i>;$}>tQ3uR&u%Ypskq9JbM2KFy)ATc(eJN!KHe6%52TIo?W;O3fsm3NPh&%)bSW*kBQOpIQ zPsqAvN&eT#UkyT@5w9Wv^OF_u2Im)-D=7|Z5?8fDbIhh7$G1+cGwphx%%c5s{$kM| zoVb}^OY(OM3E}S}=WIxv3u;nKiFRAUf6?x0^_=JPlBsY{QjmtJ^xzy!EFDpwiM-$`%u^l+aZt``1F&KR) zOe~4dIhSRK87%r}CWGEl{-l82#nBKWQ_H4SWvQHLHCBf@@=nGT;Gm*b2<2QZ{RyXA@=nql^ZJ-rSjY>ktEnnTMga66W#J75)>KB zw3M54Y?Wk%?D}SeJv`2KmRqc=Q@*J&uE+OT=p<$}*s5*3JKmDPIy0MO4bJOQI#gnn zgA#_)eh`LOZozdUt~~LFby2X%nHom6LeW7GbO!ruUODO#99_my-g^-xLiW(Is^(ec z&(WTRdU!GHO1KkOzp0EPCZ9bZHY07X39SltKVFU>|60x0wkoNV;}%KCPHnh3i}KUK zZpz(=Xz%IXd&>5r3jy_p0V5Z8vTyz?s_RS=_Dx^y>gE!W!p_|=V;p}4X`}OO?e#Fj zg}zo+81raS%6o#EAAS1CO&u6(&ny@nRqn;Twy9diq+2^md(We|v(4=yJEX*D9s>u> z`Tmo(S*E6Y#IlhbxF-pU(baLKnW@v{EN)xWn=f^}k8kJAPS!5l^~jtnkQ@Lqril!w zaKuiZin=>d1%6A_+1u-xv&a>I=IyKM^b-wQc1tVSTwQLFIJ(nNKofcLITI_CC=vrq zg-fM?^Ev#uyAl%Ja=0Mwo6TBg`kw3hgy-%Fzd5bmMb2fZUSVaqgkNU%{13?je~ysX zTMb_=SHT0FZyDAo&D1oc(@0nPfE;q@&VMrn=gfPX; zA4z|Wnv6#RsSZ80%R(lsqc&TKO7WJqg%+{(EEp4R>KU7CK6k!4Sg+p5+mGT83OlGB zX2Rlo-Co%=H2X|ei={5LP8@tuvvj1_vZd{W4Q_f#sn2(Esu@KbJ4wZhDCbU9Qr)+~ zbBK^*wxZ}x#gx34^`tG#+osSmc zOUUuy!Ml{XIZ~27XukV8mj@&{)8@q(k(D0hF6=jB-_<3GKiNkvy#yO`?OwhvzC<&x z=)P%+e1xY#faW{U05uPP!dyI5fz~pZGvO5Fy5wOYenA(#ii|_{4mDLF>e@666e+dP ziS|y;kRIQABR-$Z4>eNF^DkLQ#G%ku?659n=A^+xklfQq|00%$V3eyX(X>DLaidVU z@x#GSWChKyY#rLmcNXK++K|35pt@yvcmj8PFJd<6Lgwa|-#HHnhh=W}8+gube6018 zry_*_y9>Vcv7=MX^yNlDF0%G(cdO=5r#uTS;&*M!nhh%I{0WBhB=7V(iK7R*D+oo!C(G6j)b)lG>94BXnq~T!qmlW~>L)Uqw zf6yN}-n~!#!7SS-%n8zJ6h|{fJk@bh&6dK>g8qYTmq+_zKTf0ZjUZCqcYuT*@pP5G zv)>~DM~j>*egqtS&(n{Z7nXEmi=>>Kc54Y8Ln=>VIXqlgMa;7moN)yW4yh<7i{`3< zyS9;gxKL!Ar2aI-PKfawMl;Nd-ASCN1Bn-D%%PLU8#hUJ^R)P z&bh{2w|l)G{8gXx_|J5>Fc7E{BC|D&A2$Un;Qt;@j%x{C=Br%GzR~y#)F~zoU%qJP zfan%HSom%9EmP6)VWj)4)YhbyUR>;uxcuir#P}ai&`z@Oo}} zUtFbMeU17vgym_<@svz{q-TuLI00yz*j8bomRSTdi-E{Hd{A#$a#=OiJN%K_A6IdC6wQ+ zQ3@*G?l!+j`0y-e*UX#Oz?QJ60d@WA)RHu~ckUG*t^x_Sfxo!6jOJJqt4`DNyz$U# zC}HcAuxYiwz5;6_gp_p8AM3e$^+ws}0{6|FH4A=`HKWw^x5~Vo>u<>hUKe6pl}#<^ zLdPl(Q+!eA)ar|(R|b+PTHa(K^0_3(>a%})IfE?x!ozzNB+m7eyF|lQ)4(9z~Ef`XI+|ULQBsaxzi{nW6=nu-Yac?1!@t~Zx>XK?E>oWbJ#?K%*@t=|Z`_(O7yr33i=I@; zCfPmNwD`R<^lsH zE6&L23Kv`EV&uKvqaO!>^zVTAx3kP_V~rZsMDwg0LeWx+HeBLWqln{RAopmg))Twe zb6b*UYBJLbZw$L08X`!{0DO~tU))z$$ ze&TGTMFL9RVBVddY(ecCndQH+1sALnmF@rFG79&{&erI&4 z5MgBUbJlsj*Gr>~Bt(Rm%<#B-^@~6-huuqs3%s9k;0NQ7bh9kgnzlBrQ0Llh<@jsc z>atHq%cFpI80dFTNUwzikKO-8r}?UOR9YJFzqJ1AFa5V_!^uS$cb%ZnZy2={K$$fw z%C@!0H8}U05mgmwZ-gOEIEks9TeR%_K?BN0{|WwKGv>MWhDxmbOeuXg*u#%K@4Cd> zbKjvazu92-JYqge)Hd+Gf$DPSKTOe2ixS4U1Ha3AU4|^i>Mckmg*+xxtu*t# zY;pewTv*Kr&9NmHQYV2*FE~Sg_jm&u*fxuHT;Ken;@zs#w4gB%E2*(XyTqQe98r7+ z;Qgw?L=O|Ot@qV|F7vBsC5?IS^zEDPfG)?M+2+;yPxtzZ^2W_m^aQU!1Llf33u4?H z;@U>(zn`{->=jYJE_WINsYOf8KQPa^qvBxK$d3#4u4k{>Z7Oo+9D&ZDhsl3Hy4EJC zE(^|Ci*78&TFg^}>2nLUO8aj}0kkz^V|KqegtsP*!gNJn?^J#w-?uiMYoJ->$~fFY zhioR?7b^F0`xE$;v^5ffgM@FF|ESgJJb3j`l6%cGDC_fE(1ba;Qecxr}kUG^ZhWA>Y}mQnhGs}W1{r~H-}!wt`O6bho=5SOJz-4)6Pk& z5S?8JITSs$a1U|M`e6HUt>TI62WsKMm|4Wsi9#A;S+-?|57r;tKR$OX4X6?4+Aa%b zXnc-C%wSo0SnB*R_Z*ssWdvPEjrKoCXT6yY=hCFiElVCR<|WsYtJ24;RhkizLIrA6 z)j71jVg{Zr-kA-uO;R0dcET!Cs^D4V1sw(TcH@RuBq9*Sdo((3;@NBng+VS9X&0w5 zEAmR8K(9F@z_e9mox6tk^c&t8q`jd$t_x9;q@!+5f*(xzVp>O$!xHBA=a<8SVSMjwjwU1ootBFs^$$I1whk3pfTolNeNJ>Z& z<`Os(n8}#FBfg-2%}LQGNEoo8)$qQW&;D(0@Uzm7H`k6dhL>JcS`Q|mQ}Ije8-7wM zO55VIjF$QrJ;(oj+mM<;G~$vlT+f7g{^hOse|dLa4i4i?nQ4QJIET8-t?Pi4wI_Cg zubL_TGZxpW*>Q+^2@?EnVP4(EE<&I%(CB2xC7SgN^{(cB>L>eObqdQGJPPybFJZJl zbcr6MT?wtImzwMc7aXFvrOKeNq;hyZiXnJ`wnsSqPZ^`zz5TI8p0d$*%PGJ0lit1c z^OLaim-7$Wqk}HrozN(eHjwV8I5fS!Fk@MTicbbB>XcnU-_m{#L7{8E?t1RPgj!Zu%*u<>c)v}iJy&PzYkf(k&EaO(A&#_JcCuJz0^>vdwr;wdj( z=$GkzTI#Z69D;3DIm}DGXmm}%E6;71R6G}O>~oOLj-M}O{hNkgVXpJO_9}Tj8iRn) z9@)O5O5VCo&61Qoo2|7j$Hui=LyM-RjKylS=2IJ&7AU{r5%!v8@zf%4E}OZ!gjA+e zIi;^t;Frqgrv-Fao1AT@k@4nLJ<%9GmB`mn2_q=c;A1U}|M=^{;gFXHP$2GnKG|qnz-kE(6Wff& z2&-rjs&73WL)Gf~NJ;kb)k8!^4=IeT|E}%n+=n;}@h_KieInYudj)*K;(uQ&!2Q@K z(9SjwO^4o8N%=uuK(#cB#sj5C-_;~_syugm=9$QPF z`^CH!z{vS&Bqo##vQmVmwM&?6{V_LsJ5T{ZrC5PY9Bs5X5Hxu$&Czjio3fG}nk*La zTe;LLE)_Hqxd&b7Jca7VO>-A5ma2U^5@SnW8zsc1nI{V2cc>#67=Hy&Ow<{62NXz7a>>^?b9I0`H#pg>y_5bOnF&^Dp`p z^M2J#)t74Z81kE5=tOR*^&6u+IQRu;#F7^4h-GVk-wWj2keD}4yje-N78ci^{06aM zVt9HJtnum!teEV7q>le3;x|}yv;Q82YS-LTCEv;P-A6NK^jq^%V)&^n;0b1apq~(! zevLu}Xav4t$XD6VS8{pa(udTo*;C|>1V`>^jXrJ)R=be5ICrW#5HJr^@09p}Ng$<> z#*X417}E}MK}NoJf+T!-{t|Qu1@#oOmOC^>VhJ*f)5!Dx?+fbJ8=;>rlu%*Er zt1`mp;_DI<&Wfj#RHlV0ENWMBRc?*>b2!lY?`O)T<{DjqnBut`97mM7YaCm&os`F` z!q9Gr71XfZe^#0D=d%V0VbROMdN4qB4&JQq+o2Zm?Y5_6Ki+U@C?k-rRbTo6Y`eQ@ zxV?X#7$>snfa3mceJyP2`qOsSPLoV zh5Vt5=cTwde_JNjktA!PdKWuXvgV^>)!@Z#*g;~tW6eansk;T zioeCwu{L%~0)qA&ZY_PK{*vs|9gsgv;Gt`>T&Foc$o(uHI5Us*PA0^1K8=`+kI|m@ z9!{&e`59gsj_!BB@OMDSmP=1Kqw8+9UElEbgYkv!T{s$H6{K(dL%_cOMW4b`HCm%v z1zcTTm((pOE)~$DA#mmg(}sGB?(m-@!Av9)b1c_?CZ5>nsZD6?mY8$CVFK-W!v*^@ ztq(vNr5uED+!DqB`R>5Sch(U_lG@pu`=&*j4VRX+{rmALULPtgCiZ{#98|m62kJYL ztY@>rNZ0~heH!-f%#SN=t{L4c#g~7o$gr8=M=@V@* z_Z&UutDe^AiOg?<=rl{=*!rMjd=SkT`3yqMh+YvdJYq%RulQ!sV2@)YeS zi9I+%e)!>}#~*EwwMQL|Cjz+VpEfEnQ&Ztc&~CllEqgdESno%1D_QOIo;EHv7@}0< zFV-gmaSfr3yx#J~?s+b+blX3}KZ{(}7d?)ejp@v-ASmBn;EfB$EF$+)gJ%fDabS>_ z_k;3tD#U|a@WH-DJ%0WY#hQ~17Gue;nT;l@H~BO%B?`Ps#z3RY|Ik$?MT@U;>~jAU z7gBAEqU5V}`o_J^EaBjrE;EVenF(ScpI^J9mf zd2MqxRmWM2;-8&vE)l4Fhwdybb-Bs7_CPAf={Us6qBD7Cq%p{I+(3%YHGVzXx~FKf zQ|_-mv}A1gY1VynQZVR{%ex9oUYD~-L>qx`F-xEW)2b-E6;(TD0mciSSUmFkNL>iZn^E^ zu+s7HqHk5hHoGAysE?lYS;&Lm_-`r8-&)y2d*+J})k(dsQvVqF9Kjats;5u6Puow#Z^&NUM0z5#PC4YT8P@UVW;k+Op=Ol7N~@ z=3g_aYRc*-D%Rv9bKrBQzpHlNO2OZvWsu*9 z{PjdLv%lnhwf`Xm`O)^!)$$1R#eqjKsC+>we9hVo$G9$qv~%V^{z;?V;_36>g629c zj@?cF87lq%s&Rjaj(-P0CHrx)eyH^S{ik*1rzk&E!Cw@n1-cp*@xS^M?B7473zh$e zhe1GmjERH*iwOH;4**y=cmM(xHg^mT1v}U17$zkLr?{G-LsV>Lc?BYLKL81^fuobN zS9Dg}>KZPUm@335r=40--S?Qso5t8ayYj@v2T$YFB<}Y<0f?foh}NxHpFC3(IT3cI zB5T4dP|g3(`lHmb2GSUMlc*|mwUxg3_%18;0Z#s%bw1co`aoWiE{Q&jQ|UE#4s*7S z#N2=V`CAiYfYl`oz5`Oo=F=B1;Xem``~1jsTYQv@_cYk)`Z4{tiZrZ%C7WBHHUuHH zh{NHdTi6%iyCt}avy7c&;%`#?cZjifv&w-TUwQ7^R=hvZeYxDe^6+A%d}mkR!>X4x z^&xN1p6NuFeH|fqHLl(uq*fy&%R{b*)AO<>ke_}+;HrCj0sjQ!TRFfej56#P^N?jJ z-l|+d3Yzjju!Lk({H@_&7uctWqyJ{aa%Mx%0;KP*Tr z$C$tjfK*2KJf6{C$e`Y!x8ki&b}T(IL=}ykw7z2+j)N{fa)TQM!|QUN;ErG5Jk2?N6QL4JyH%|6AD?8a18d#QfpXzz-?OhONf z9JF&7-YS{T3XzS)%Mh1^r)?5#`4lCP&XRIV~{9skP1(c`JByqajf5R zOcsSpjCExhiBSBED~+zg8+kEA7LfS{a5N0dOjv74(Z9S>=n)8S=FM`-&Z)4PI)9!(KY2Z;gIIMU<9+2vcTdYrZ#{t)|j$)-4_i+EFPB#5SPXOv%oCA)R52vVfUx;Prs-BYqR6sn^h# zS_McSU}}@T9H2A}5jP}9?jwe)#4c3v#LC@8UB!rcY<*Z5eoX+{CdGT!RmPhm*AWnW+F3#^?E~N5a1!PT`XpU%q4#^43R(ImHr!*E!x)dOfD7_A*s5%i{dn(? zo>aQ~6nuwp8roN0(G>M`k?w;K|9MWek&61aF ztisI6I{g$IG0kuU*i+a+cSjb-9#}j)NikIVKqAEEozHa?b(34$@p3#XE1xh>BFNW` zQavsXxigo&Wx?tFy(>1YdRKECOM@d>tO&49Qpzn{NeUPu>*huYi6e`*kUJS;54p#N zpwRnY3B9*}?;89!mt=#hH-MX z6S}X#YQr`~w=(=rp237y&CA6g&ChFeo|tDgMBf45c77Y+(f}vvt4P*-4C)hlQOtH4 zvFtw4+UkO$KOKt5UQ`KbM%uVY^I^o(ant zzgK=0u@`pzS6G>$qODMcIImQNXWB=mq&)0^zY@o*x@U^*G1Mf|l4kgqn(PXNk*Xnt zu2Nthgto%$1o3zDcD0RhZ=Q$u?jj-gM$0U0wSJhWHj$9$tEp2t~I0(wAkjBIzka*Kp?oY(9 zQiU%d#o;%{HGM1J{517AAdqA+eO<{d2Ab-du*qs?N{)9ceJ1G9c#WK~nYLdtF^VA?{6bzfPuO)|mp@DtUXWkfS@p*EDkLD@-7F|X$`tnC zW2l{P+fG2%foHZVxII&;0!Oko54mAehvKt-V0bW@q+D+wti@4+6rjqrM$%PuJgn45 zT< z{vw)~gmDRMeaoUxv<(avp(l?)gltr_oFtJS%T5L-Op|bCgnC$*l!e%MnZXg}W7Qi& zE^In1>OOdSNdq|Xe%y=dAelGj1_JBy$aHjkEVHhTtpwTp($`4ld~U^Zxac2m6>?b* z4+z*Mxub)oQLe9iMPITSWKWwV=6;4i4bhzZb=F>BauWwy*e7C~BU@LrKSMGg+{ZV# zf)+Vc(szZ;WkU+qTG+hcTq(hyg_W3YR;4}DY(zlVwWxH8JjYp+FR>Cy>8B$%@GS{8 z(*($GloFqVun4a{wqe`ewFlY3T6&Ve`4dx3G9`{|eF(PoObA&A9EbtnTZv(iTsXRV z=dxgw)^8fVClfZ>j#)0l&K8e>|?jHOOMxQ^Tlngs!Mt z``&w3WPpq-oxrwU3k0wh0p2JQ&A8*Njw>1OblJR2gP4mPGnS-!@Z}9>P_G|Zi4Vle zpioe;VSKDh4lJ|SN|dp}fLF7g-??bz3fBpYl0aX$6-o4m0vJU6hgrAMGRXFDTCfcj z;=*8(hKxrT(lvfC1_c#dcewK#_Lo0qG%>>=y@esha{-8EV z&`-eo@ezNf4}Tu;R}39>5_{J)eY`supcD}8ZqjWdV6l5=*leo@Pu&g2m3J$f)RLpT zE55YtOIV8>EnA5=a}+9gGQJD{--kilRzIGcuwaB$0&DyBh5*&2YO;CMCPz!UEFEY? zF>W$nKTGYCN%g9N(mA&QuA&bLln7mGL@((QAmu!Ek}r3xtngm7ARPo)Jl&X#^`>Y; zBQDHCSitm8cb8%8O&1thPSEf2YdWz)`R?ojdRH>L-(ExC;WF-qtF06Nl*ZE`xwD*m}Q=a`q{NyO^$->>3k~@YQ2V; z95#wSX=}jgyypWYL|5fugrst(=x{87OC7n>qYXZOv#J1wonB}L3!~F+@WD>98?1fJ zQ;Mv_@1w^y9MCoT*P9oB{N&U`RWw$Q{Tdccjyd#JzJY9x&@g?B75*@uI4}?MLa ze`e12Yz|ofYm73wD+ku0EkXRQ=DIPf3X*ft+eV;tLyi z7&^+rVzoy7^!-tSgtBU_?-sbZCZQZzN8y3!xlKOBc#}&?J%Q4~1m0uH-Uplj3(3-P z`o(%ISoMimIHXfwQDs#M42NtEKc?|v;nfwd#@?`94A&%cVqXe+dT)PKlvM$^3SGnv zKaD#C9B^G>)feKp?*M)AJ=4#qgpi10g~eIM&7ffwCU%UWMnnD<%i;?L=UB_qpD@n4UQYqdm$F$bXK{6)|;~vk~F6|Ahu8IQyGC zEPm~(Zya6Ob#1*1xlHisSR^fd?dPCg)$Cv;K(Y!O&=a|1+BNyeyK#$xFYL2M&Jqp>u+fRZUeC zgh6=iYzwc^4GgKEAI`;E9*N0W8Rw4fon~~OhQ3>_8`eH zG?#vtwA3p|v}pnk;!vkczh4^Wl`)=)7PfyU^&|yvY@Pnh+(* zYY^k#hfBNThnZi<@9K}J0ukfNSU{spj8aA6Jo3HD#HBgKQ;r_v=IGsh5*14}zy`t0 zkN|>U{Q>BmViNYGf$`}8VAGqYHyt4~sW|S}XnKgaOfSAiR$NF;eWvI$~lX}7no}?Z`OeN#bphO--tC85E zl1TJ8hFW9bkUEO=MfN?NK6E2NT3G1{BDC$JqutcDLnXwx+==ca6iRhcNUEYk(;b^XD%1J4_WQ6l*R+cH6&(H&>tm54WbEn|ivfi;Sx znuwy^1;DTs{2GxU^49@@JKDa&*f-#{ILzg0WoAsCt*BPZbbbMe@KiS$Sjfm&wK0z- zw@MImP0@+6(XnYpIXSE#_+=_w!-q>Gu2P1P{ZZyYY8=9znG`WWNpS%sPJ8@c570Qdu*=+Y~ zx91B4*mxd=hp-Bu2W7Uzs;7UQm?P{H+f|b1YEL{^8Kr9X?fp!{dKG_sTZJMm%h1sF z76v;oP|}nn-@(zOj{zjyo7X~WBKaQui(K=&ecCKycBU1{$25why>MuvQk1Y3ppi}J ztcDIv=ihV_~kW&)Zyw#l|tEDo=s| zsZk8vOEQ;oE%u6>AOO*gC)`0F~a$!wM3qZH&C` zYDl1o2gP>ypq;(8mrRIgEdWC5Va4pZ8CTz3o|AOajI`o-(I$KJI3E)i1rMnxUeTH` zJxsVQld-)0?+z#dF`Zx7hCukpLsa{cDmi0y&Gd9dK+o|&>!tY)goODjwOibmxJXMk zzF15hZ(iC8ENT_?ItqOUJa@%x zWp=Ean3QDCM*lNVg z6kg4KKkHoZ4VDhrl=wJwsIy1zlV$>lnzGF2Je*PTUVKmfSeR3luesNAO-`loI z?9k?WEb;!cM0MF2d2u4iqm_g3HciDKMWf^-iC1~vk!(QFp`&K+Ud7u)MB+x@LXW2h z$OT>OakGK%G=r&HF}I7vt1Im0d%oRG3_RPXbSry;B<}iM9 zluP3U3w2HRZM#s{G(nz-$!m7V;GX>_D%^YsmBRq8FT&VeUMXZnmK0eKY$#^(C5o}a z>!ks^UZ05T=@{lMq^FP1CA}JPR{DX!e+Rr-d?FxM&NIO^-r-u>rj4K`Mv;&lgvz(t z@?I)6Pi&mh3JTAxY;JohaS%$Tz{ukSwi1G2y!C^621LpTEZbyAolQ`sccnvDXP`;o zu(WtzpfA3czVYhVo+CI)&4vVjfdq3Pf(GB@5!^dB*x|uTHHyARbgOU(t06@kP8xA{ zCg2QFlROO^D5{JJq#e7~-A@pTfgWC}|AlVWQEHCS8%!Ttuoh zA_nOudv|4-N3pdwC#6Ebitb&qnD1hnS5P@9{B6w# zFNo)H1>W`7@L}`)O1aJkq%mwSUnHuv6;FBz1JqU+?DQ1+Q38*xz~;8CMUv@?J@+l>r0uWNiwg+ZnVMaB+_jsouk z`G-)Um{t_U&|t~CX(F*ckwE%Q-h6w}F)_M?01PfTGdehD+7E#?m$NE^u{)tZLc|j! z`nAyaw(s3$P`<(U6nUyKk|KSr2_Xk3yW@)X2sfO?|;f-i><3lH<`zX6m?bfk@=f zIux3SD(&0GoRdiMr?!Yt@gi0DUDt|DyZWOUYIJq$DgQSrvV_g@+UB8HP(vb?Z12D~ z6d8J7;o$M!O5tK`Qsnc3Fcf*;F1?A~$iZ2CJou;wpj@cnqSDR$9T1Q&Va62a@GY1~ z^?W5j>TQ;WHYU3o`4BbPS<2U|2ittGGw@9PETOIT9i<262+Nh1vOc>KH=ev9rYbE8 z=Q07N>o-Y|Xdn3~Ex=qLCS1VmOP&gFnef_K@e{`*6lCA!PK#Dv0Gk*v1A)!}a11j> zJy{SHsCR-irB;K)SzDN=Aq9u+SOE9V{@7+YFdfW=+O)!ZG8_$F9{=EUllcw`Hw6|6 zqSO=mOrn)fqmJ(9OmJ9^BKuhL!*k(V7br(}0tbkF(5cU#Gi*mdGGA{=q63M5YhkA0w^@FHHJ-VO5=`>!D#~A-DEPHH;0;1(NBT`JUFNuYo`l&+1Zfmrok72)h+`71~f_fil zl%z?}J~S<0a^r-y6FpK~l?^}v!OSALcV4Ti%EQ$V!?gh*Kt;n=n8&#|TzG>Lj)iVS zuttG4hR6I+T1DX~DT2_%-R7T7eKj+H6W%Hjm<1mL$fCg{hlnDz7HztaFbL1(<*-k6 z6Gpo$q~Cgf^H|*-y^)%YOO-|7kPB@!d>nP|1Ri)sy?h32Fg#y97T%SIHAZ;^0L+ec zL2g6Hs7YlMb!${g2Y{2{F63>NWuHH+vZ+f-S)+$Q(IF8QzOamS5`FWN@{<}Q$C1O} z2^awj1o}?9<#b;zU4l#wW$z=slS#*6fZ2hvMgY`>q4o!iK3;5&h1Zf@$&{S|0Wj}6 zVjdC&PjGhpz1*6w-j43)rs8tbD(}2%Md9u55kPw}%#Ne3vKF@P2wu%d-m8_9ik_fz z1O&OY?8f{ygs)V2jjd{qOF&f=vvez`aacL_DB^$%Z6fKFw&BOkQLnRh`O{E9q;yCt ziEM@`QX%!+pXxL=fpLIDPzoRdsZE8xi2>mu#)G}?{T0CE8Lp<}w=%A+>(@dA_Dw|E z)B~>to!~V#*U6X&BYRioO#I{xN||tMZLfL0cB*6%AuQc~E&gs9lIqJ09Qp)%Rf4MT195o;`bz&AMy)ZTz`v}GI=6c}Hg4ii4|U`z|lRatl* zN%02C+UKOW^suoOFOsjF?8OLnP&XwT961Auy#Yayh0u4pOtwcpAMX~G19#}R^0!(4 z?8}CiZ!bXK0kJZQBB5-PDQ0_VG@9@Ot4eh6x18_yr9unDn#Jqr1byB%KM=qtXJq@y z)X8QUdUBR4D=R!0jEMqF{Y%Qa9qh?5fozJDPcQ?Kl;M04*%7B`f}#6H;jH9EV1C9s_Z zLOAx+GgHRi8LvK4dG(WbCjfQ5wpR!ybiM@gqjR_Cn*6E2F+~2tj~)Ub`s?k3e9kEkT6(j{p|kM?xgnj_F!*LAX`v?Jvp}04rRd# zm1m}CKBCVrTYfDX?haP@lxPvripf03LcWd!Dl`wOZJtR!!qT)VEQrK;oHpvkNIf1C zGyjL2yG)vUm+DD^?es>U6Z=6AeI1tuTNzT(A$sWVIMDsMSx&1R`3-G-@e|UkHLv9 z)8B~z>UibWX7ZA7gNp*t5a=F%`_?=H;`hu&qhzCbB>cL-?XmMh9Yy7YOZ7OM|JIhz zL?2F3q~7>4Yr6*kFI0oW_-=exuAOZa-&S4gz<>{wdWPw0cWm#jySWgL;J7G>l0c+R z(wOqeIbN}sK|HaOPmu!Ad@Ux4#-gtXX9cF6#y5@I!c|-~H6LN3A2ug``hla!2m;h( zhqgkDvS4I(f)%05uQKqK*ikL=bAsr$B9qU-juo=_zS!5{L z0f84g#`>dXp!p$%lykQs-6gySbEJ9LDQDaMhNoNuwK!WVxF0MsR5>f)H_3^>&TpZp zi(gOaHmvFJP0@z#HJdq0Ye&BMtNt}8fkWtqYrc0kxN_K8TbZIs1Op8`4vXz2xwr6$ zy`~-4{E%G^dJC8UqMshWs-~V=j&b;a%XqS!oGdXgtW$#t4MY zLS=UcdwrlDmN^haHtEP2QAB7+%b19^;}4ul1VITOnU5bm#+{l{ROij1a1EO&YA7h6 zPnFf9L$ZaE`5>+-P_~j1GykbmTWC)JZnzFeQ*wxsWQi!aAQl!PMk~7g5zdzZ*IL~ zm&w>dy-|gQt#0`Z`RVGI&k&B$1XzjqH418VV_Wyo zy5JtQzM}kFOD4_#KWj<08v7Ve7UHPZagXDQcAysr^43ytsg-IkuFh0uG(&Z%B()L1%0wmNxKza`l5Ha*Fq1R9XsHiASnv_Tt6bKM{5duP}h8C(wQ$Q5y z3W8D<1r!vJ-W3~q;+$*EvbOu|>pJDz=X`tpNb+89Ml#Af$}^sE-}hsv{*3TaOu)U{ zJ0q=WUfKA6WzlD#=|K&!CXODiGk0dHUvZ6h=hwrqrx1`-f9c~{y7Aj@o z8-xUPi+f)LG!u@GA-(D@HJHkbNGZhV^=J^HCC zVhecDlA}<*_tv|LA?<5gyY$OFw-r>(i@4Nx4VV7QRPee!r9pQO0FQnQ6n$0Yyz$H{ z_J{d-;*p%kXAe+W&seOPn^}oRf%P^B&KmKj)f6D?OC|s}{AzmCm|yMmi%d91P7l)K z{`k@*_N?i%POqrOQ3=t2dIpCVSt$EpQ;=4`{aC^qEb;zx16d&WL%TgS{9+|n5%^5I z&d{4tE9T)T(;_MLi-~6+S&||?U0q-ujX&?^o2v;rb!*vSIrZsERe8gS1)3H;giJyK z{7Yj|=x60(1D=*lxPgK-r=3)%P{}M?Cm*w^Uc#f*C0-?!{VCH?_^RB%O z^uaYDv5q3n?&ERqZ*AJ57FN$aK-N)>!lfu*Nry<>b1X(r=|&9uLjbwm1mmWyXG1is z<>FYWXXb3?{mkYs`h8(@8_q6FeT;9#*l*kR!Ox9q(IxtjO;%VRj-c+RG~5t;1spktzpwLWh8G&#K(Q$fO31}Kik`kv4uXVB zgOUKMHu_4M#o8smfZ*5TwoVf1tJBI(B2{H!N+?LMl}a`g2>!sU7U$EWTg~1Z(N-!3!J9Cm>60?x=X zwxb8yAv13_-ngI8o3Yfpw7&2hpdOv;LU%Z~#GRQ5BdxNp`yE_Z%D;0rgD20uv3S$w zJNRo8?&|yz6ZogV!~js*1nb!q9fjzP)X%~4dVh=)vUFV)n>ngb&m71eU1`dkb&gGG zsH)bQ_beMyJ#eQz$WF~h%FdQS0bseckX#y+>7dDxiQ-m_gq!djH<*Zg=At9%lUH|7 z!njOi1eupWIJm6`G6jilvon?-eRpDWU4vGsJ)_DG!{jl?UP7bd5F~^+N5ff4JVM>-J*VbVeHtmjstELO1v0b z(oE?lK~Px5we(nlv&xsWA_;$9WrpQ}*6}KAKxX?7i#I3m%NVhQs z&L$tlz!&u~n2G>J-EdzjYl~?`qpnlnI-*hR=49P0Wq=6Oll`^I#BJp_{wFpeYvLG< z>@#Lxr4G~-IqeX%gXJ=d#-*r&;Nrp64~k9B95EmI{q2+6qXi#$iq=SjGQ|T$$)*Yy zU=KTBRYe2tnc&iLsY#l#xlyYx6ry~fp4YPW+?PD0i43!1$(L=RFH#4luCuW`caL#c za|{aB8y(Oe{CyVK?1F;1)`IorWS6GlKAQk0Hi?u`DS%QS+T3SUfV8H(o-kuw0!@+{ z3erc@h4wHh(w`oF+;V~U(ji{X<(q!vd*dWThxpBV++qRDDn@)Is}W+?y>yLyFI%je zmAvH>@1$Me_C981;39yMD;TAL9=OM)WV$99w9Wd?k+7(zB8oc_H$KR=fp3rZs03)2 z`1YUN6=OHbhvzrh-*eFt9~{Zg^fb!8A_al}bX$4BsYI*}QPdAWwSnGh>bIjX0YVJ) zf!Nl_+C(z7Ew4@^HXFZ)gz~tY*M44n;!U974*+_Zfn`LDU2c9{8qZQ zp+IQvJ=b-fJ3L+Bk$W753X?iK})d-VR__!~y zVZ0`bT4QhR3DYiwP(#iu7fPP{G60Ry7}Jn`$Ct5rCq(!LrQVRyFq)k4MqUUsZ@@Pb zS1C#=VX!pD0iIG<6fI|v!nwhxH#XYd?*|*I4S_{;FU!>fbe^)BuJ=JVeIn{ZkAuaK z=hR;>OE4Bn+n6gjty_@z1v)xU4zK{f^)xV=jm?w|?Ka^_RkO+R;8%=0r<4+l_3+ zWn>Chs>lIhv)9Wm(y|u{!;BMoLwo%!P9#W2VY(1!Mi?aos2G}vF7*`Rwj4y+QUmQQ)IIODdX&%2MerL_jfRm|Ss)k7z&gw=R z_L+_XD_|(@1nY(I444x&@aIEk_>6&JS36a4!J>3oy!g1z+SAmy0NETE`UIJ)Rf<)W zAXO(Ak4_~s;QQs^k_J!T)8v@uBii#AH0mRx?62rqtWE#Qk73!L;NzI>2FAqypCb3! z>REEfI_)1KFTBs==AiNe&QkdS*VH6NgFk(OnPZfv*6Epo-X6@FGBC!FaKjBbjp=H#1IyR`t6BV4ZNs zR}Z)ph14$@eYTCG5@9@gg8c{BZC9DWML++@}y`j`OubLe<+$ z%IO>T13$-a#dn|&xr3J6RxDDb)bha!b{C#q9-WIuTmAb0JX8aJ?H z-?KCI)OwUQ$D8NYb1TPti-_YTXd(2Z5J$~L)^AZzDp>7l?&C1CD2>brt@)RP*>X9% ziQ1ewMdOFxY9bA;b^uVM%)8Ckvl190OM=|Qfo9eBd3mB|^9 zpyx361JJ9LaD8;#PxkkM)tBBqM$6fyn|))V|2?;HzoSAT+GuU!3FnpRs%(ahOpVNF zJf7cHjxsOUwcaE5A{X=pw`<9sxx*xC%b;2MHSi+6xN5SRYN1;}&y_*uz3V009)Jf| zV(hmaENF}9Ym3OM-ohE3`X{=7qhmIcJztJ9`#Ycq(-G2Vf6ch9*(jZ^dmi`kkI}PWgViCaa;qFOSynRmxp7-)z*2?TOH75Yj)~zZ>p!bC&DK zE?*To$A$SN8}#mRU9;+$4GvWcWL33n%x#3P50vUSVSkvEvpMRO$<|i4jQKEbsn4j) z!kwjlXwzn(aAc{P+VbRL#;ecU0ol2A!xZo--_lnk(>Q`B*eMb=t%~z19Z1>4 zBa-u0&CxI?1cKJOi%}iiX_K()t&4nSx`al2?V1{Vt?z8S=Nu4h!9XK7L#m8d-39cP zeA7FpDtf_S=RFHEt$>DYC7ER5!Yh8FGFv#EOXaLG@<58~-7xvEwqP0YSu3&5R8%5FRVUuJkflLF?n9W*?k}p-JYbi)9CZ22%xY2^jkqIxzK6 zxLb@p-qx(r$~-dG)rJM!^V60{4b?s^cHZ(iXD`Ms*rifw z9A^k$!$+=u3KV>xOiB>2)4QS=`yPVZ!6*&g!+IA?)9$AzbM1$18-s2ENPy`x?6tM( zZeyWglfc=Rf;qQJYFfNN#t3*~9Q4=|BXhjDsij=EtKJUZo*^oyj!mM`W0i=RuD-Wu zf|05qmD6B;ZBmS?oE>B5bk21=KKF2|l+o1PKjkf{OrL=a-HzR1PJv0Q<1+o}1B*NB zNpd0`soqu?BL$3_JDVWS7Mf~G(au3w)%1PB?7zY zY1yzg-p&Qey5XS0wX(ddcXGazyeqd}oiXqo8#@}Do$mVbgwDVq2cfFya=xzZ4ow;C zS-%ZME0d+#KKr7T6+F=DyR%En@CtJ!#)|L=F1=^tGQT@TvKW6+TY32QSPZnj(!5x}nu^V@-aEn+Kw{7(ymjhiJKNk0`A4Y% zpi`czKLEqbN7|`@Q4_8zU29OAXN9S?^9%`F&Bn3&Gjg5*Nmqk;miTE8dW0!wyq-4P z-bgbkAwIP>E^Z9K>!!K}={#uyzwlp$&oVc}dEC69>Tu&Gv)F}CVIp>b=H6JiH8Ux2 z_mqFe#qt|$oCV(n@W?qpqM(gq>4j1lgOP&>gFD|IVV;2U?}|u0>T=BV2fzV}ZweEx zEzeF=)Y0RSS2H(E6;=``Ozfsh6G)twI=;N3`9zvj%@EyRtdCl^gw8I5_H_%N*_gTc z_8Cm_N>QxU;yjlC1dG|43dgEWd;r2Va~|b!KMSbQka6s-PeMx9GsecSXtblbooE6+ z?(um+ZuM$zNG`)~`&-)^=aq3y@iYO3gmH-kM<%(1_K*JkqFXPYa3?=>mr-+Wrw>s| zGz>qsQQX5kn{bFeJkxbo=LbM?AN@NeQRmBo1eshw)<|3l9|2_e?nYDNfxc{YQro2) zLQGi(o%#Iy)J~z(MDqx&Tr1Hl{w|ZXLI%|$rr zfe{socY|(LjwF@ripos*I=3}b7iws0W4q{(+Sd3H+mgXe)SN1qO^ir5f`6Nxe_P7B zw9Uwko&L7#le|-ddAd00;pw9i)sOr2!I%#@I(**~Nc_f$n^_zO1YkMTK0mSk$TAM; z2VnPb>&)4diqh9}4K|7cKcXJSH;S>G|De9Lnu97@vP0(kIu&jA*b7w~#&TMC5>Kz- z`6*L;F9<5lw7Dl+rEQ|iP;&*6Jv}Tb^ZqjPeLP*qOwf`~SnLM|5lL&YK=l$~fI|U5 zF4g2?{7{OQW%CJF7i@U(o)~ZD25T<&QDk9{}jQy8ixX>!(BbGf#A229O-v&f@U z5C*!FORn#Ewl{Q-mlqq8@ngPyz%pIF9qy~80UjqpH3vCAKU z9fQprW0p4M?-cdP;7R&x#u~T}Cs!E~qg`9MjodDG1Ka+Si3|oSpm(O#alugsCi*RU zu8SkKIyuw;L#tB_ZP9OqR6eiT++hAVOAmIOjYcUXZI+n;4IpgKgu&n?$z zZ`BlXx*vWBD5?Dc=%@=s%(9Ofh(ftARZi90O$MbS|!F|ESL_9jBV|Duky z4s+EboxOUV8z5`TM|@pOV<_{+;*g)+DyH79hUfsZZMLvqDiEz@v{NYg`Bp4(D=|Pv zbX3H>$Z_Ov{<1f|4*7UC1LqONDJQxFKr}KPV*fGb&RxtM1vYW~8X~*0Z-zO8xzc-t z{EZeoNRkLPojneI6US#J`>HTm!T{!-^lCNkn;|oPW@A^#ro4l6v+i8{B5SNHYy(@7 zWRdH9a%X%=s6+5G&A!u%+&{0Eb$d2&PkG1LgXaL%M|k;hb@; zL#WcHyt$RUJ}s2Y{veGO+xif#5*%|Sn7knvWQJ+`pfARr9dUZ?q!yOJr_&uIkbzN= zLD<>0OVa|>vpmKGGV)#4FN#5pmiweUvsyt-ag(2LD;2h@86h<46a_0SxmlnhjK#|x z(BVlba9plNTZ_fQIi|oOPh2_WtE5|N&*)S^@e;FLFDWwOR+&ja3ecNjY@Qo>de#~# zk7t@|ITJTAC7H+MzT0UEwI;#Wu;r+Yr!*fW(jHfw?eI`2si)Ahniw%z@#tEZYgZdq zz;V!}*vWeW<1c7TLd?9LrK>1%?Y$8COvf;Pd(!mQ?Gp0&^3U#ZWnm=BVZM^}8C+ia zxcK2AEf?YeQc3C|F(X;O{YB{^Mmnr-Kxoy|=DDn~EoWAtsba4Lmng5p22||ngEx*D z>P5%)tAfVUzZGwncMDX#AgU-6ZZ9n*Ug$GB2tSZDV~-AGDy}cPyW*1 zvW;Y0dt`q58K!udJ47-MuyK(GZBt;5MAkF735?{U$GRYhD}i-JrB%v|@7k|6ss|1g ziY8DcH#P|{A=AcEviNS)^J80XvN6)8te{lB{Bj28t<|en2V9u~)ctiSig7z=iLTCn zDc%*vUl*qBZ zp7+f40)QJ~ze1tEG7gp|t%y+UimyJHeR;PT_~ddK>9rkOCt25zr->+mq>GF*1l>B~L= z_uX-pP(AI-W%1XjhDgpBzJq^?^YXI0Um51*k+z8 z3OLRF>DgU}H~-16N^Ah!R14oxz<8O*tw!)t6zH-sl|C7`%+O51b@&ikXpSF(e(})4 z3CY@Lmgtq(vp@l?C6Go*T6R^e)SwDMQ~Ot`qfQM<1XZq>>e9izEi{1iS9VOj_<(v? z^eYIRACqJzhmfh*UB3Ku1Gp+Ox7(jostUPs?N`)H!!we6(TOM-u!&8kZr_f*z)NGy4g>O`+Dg1H%`{=gu!ZQS~zTq zj>Dn*!DR`Urzn0kwbiF{5f6akQGov>Q<3MV7fnQI#i$N(fKFbaMoONKsBdaq_S6Rb z=LhrCzv`{)iOOoeSe@JH#wuAVO9SMBOlhfaC(7yRHnowP0at>5Svk?#*OEa7=nlTK z#a!Z&)(u-F9bGXpG{Id4sE+EMDs%1O1mB?~0c;6cSU{(sXMX&bIae!ODO9}PZ9UCA zC8q2-V%}=x+H>~=e=aG*-ISsrbs0b^y>kuMN0;Vt`;fM|;?oyu{G2~{8!^(2u_mH~ zCAEG>NLy)0xJqD#+i{toaj}Ffy2Jz=saN0)t(8uRt43cZMx6vX4anjXT{)IvX?!gs z*!hms9nZX-fezSjyaP~stZ5QL=C{9+$7(oQ(RA=T3cT%RDwi({oDp2IgCAp)il;AK zf0S7^9`z=5k&_AXZKU9abj>#lFh76Lvq6pf-}yAw2$q-CDQaB#rZ~1~yqvzNV+V*2 zwq%~oY`lbCFd11-mQ1a)WLSuWZ}V=2hAj34^Ted09AAg5TVgS6Hgb-+~kY zOs~j2=l||<{ufPX&R!FG@V$3sCovEV=R^XAHSMIQ>5QxG?lNWA)_C)XR-K%ZH^APi zcTFm%!c#a+?{*QTZ}`L@{ud^LmeuApGL|WnHP`}6Tf)3yr=BR;?+&av8AGs}>(BmM z%JeUp@|4|>oINdXG{#sf+{&~v!V{%cjUxKF?%?K%EzUuYgFDBjOGYaL*^;8tk$sK0DVOtJ>{5dDdp}e_}EYOlCx55FsgQNaX-+ z1eP9s82?@8mj*}zBBto&{que{gT4tv?pJil?XZi18Dnw>!C9HHBz|gn`Ww% zZPp@tvXxIcMx^_48SuouX@^xo&zzZ%`XMFmwY5b~bd8_*C~Jf1cVCYi-)w&XLS`Q4 zexVq17Nv6ZPN}rKt%p$+wrmjR!vg$-ucc?+eJh$&tft?`ejV_!$@qovnpX&WTY0Q` z=Iaf4$_^DBduk9)a$K#Zq8vaOX-*`7NVoR{Ux`?is=37Rx6IFgQ=eaKC@SwJ1$J!P zoz0yjTPqEt3i@Z5rzjuwZsZX|tEBN9YKGvHg(~aOo;DL0YL}Noq%3Fm3P;m;@C|^# z)7K?~BuL&xICoDykWoGmi+Jhz<+)=A+?%!Zjf=gWLx6*TcDI)1($8pNsT`F4ge&$5aTKYlUd;HL~wU2pxp$6&~0xQ3< ztwl*CS&2)l8bWZLjyIb!r|@s=tZhS*;1Qd~CQi__q=A(Fk_(3f6Y`3l^xHXW zwKRp4J&&g<(c(`lpIwXBKC5zbo4)(HjO?OQF2Y!vI|RfmYZ`B`m&rQOOrbxD^`;eQ z<>0?#;!2PxaYlcLjyqBTuqs2nwz^4}sh@qTKDIzbv6bB2b%1^4_}$NIdEk+dFa#tR z(z0bm<9Mn-ZtUB`0>MU5p4y4JPRCN^Z|C~0X;^^l5-#*iBSy?8sWuwcpJ{%o-d&=` zKkI@j_^~iNWm{ww3sE)S;RuZPMXD}I4Hj|DT?dF?r03|1)bF8}c@s=uJ z9uuw6bHE@pSBk^7;J^jcz{|G4a9ycfoqh1Ok+f%>a0tD?4FA$ba)*H8O@u`>pW*2s z!+qCS>QO{s&hyfDbdM^)jI^l=A@{6qI$_fI`FR!j@B7ZYi%6=DGRj6Q`S6#`MVZ(n z8PR}0(a=-48)eFd3^lz)KBGJh}KQ7~ifC*!J%Y!+EKL)F#>;=`Mfp>=qAu(>?GbaA|y)mB?i?0>|i_L3{ zT&}#E&W-m)Xn<_rF>^OHZ$O6jAF}9aLc&9!rA^@Ti=eAnWH?+L}u6w1Rlf z&5UK*fFv%u@!ZZg*It@HOg5ACYRMxafH>%*7=w}YhzF0hSGMx08qs}O(jIiyHNfmxpRT0rm*9svSgv>wb>@ z@5{`o9h<{f^4AC>6Q{B!$xh7CmOBgFnLNtq#Kco$3A8%^CNqhkOWo z!2-z{y%yRNL!Ev0pUsedpMCh`#COc^1w@Fgr^TNu{wX2Z=zM^AMp%6cKb{HUpgl_Kg)ty z5RVryxy|2BMY#X;$4qhu83{CO^IR{C7}xVdR+!a`Tr@xqU~)J-^05Gi2RqS>mqjx2 z&HN{Z+ZZ^8Uq~f9;K(Ww)*lDn_x$Ymw2<34(GAF+POU#Qg^WO@yb9!C4Yc6ubg8=_ zjVv}z6&B9>0Vp}D{guJ3+k&0fM4Bp>r+cYqiZQ2p^cys;@?A5KG05_$WB{(gL&;Zr z!1CL{#>dj+04SF~4qd?{-Yu#Lq$8JHFy((2M8i_#lh`8Mmzk;7rx$gkjj#k>5+Z2Y zy>dsVu~=i2Ku!+`ZgX?VF_TY;RPMa~611gL_%Z4Vql{GLcB6knn$KJu``| z5Jrs2`k6>rIWwLaXkEL4a0zMP&kY zG)nqpUffRUV*xHC=^MzWO>r5T6MM{GVU9b<3gts0UJG`vRy$(kX~np40Nu58rhHHW zpi-;b39s_#4OBSM13|?oBE13sIv|ku?Haw*jn3NYes*d?2^@8G7vg>ckP#S(%N^?$ z*3LQ}Fowsxb1j6?;iP+M06JI``LbL;4gwUfXxo}-dWVfH34L;+cRQ(ZHP)Ip@?`D! zT~;*xy(`8Wi)x6+P+dHQ*SFh-e48z!zBbfvZ#3Q#tavMfr0H@E;5Zx1g%gaN#=S@jX;SQ{)X8%$QfW4FLkx=8n;T|&;Cy9FC z1P4_cd5a#^TRFp0E?vU6+t|{g%1nz8@U>h9%FE zD5=9-Dx+Q+Cht*~$Vio1z9Yn~tc8*f>(6bUMOxNV9*3O8=Y^vm`z!d$l{-mf-TO$USIlez9{I^!b z%(bjjsLDXJn;esBNVgP^B=PbO07t)NHk??lr2cj-lykTm_)6db)TEV}OR65D&)i^| z{#xLZip^NTO1qz$bw%7qcE7lI+axv+$D$}4LdRghdrl#k0hYudDW?xaLwieGfKnR4 zH6Q03*}|;K0uKhouI8}^kJp@H6ee5PfLscN*65Y>{?m8H58oPVYb?A}bTN8aS819k zP#GHscGWo=->$kwuSdub531Uou zQAWRn7I=0yFSOz{Kg|xIsJL9YT>l3Ecvn|kUK*_yHmgGlUQRI)&H&)udR2!TMd1k_ z>0ql}Lp?tLN0+XDh{+du8dJAd%~{T&qZ`|~KvK8Ljj4Vw4n#s|hy1Quf3FX4RU2Wv zznU0o00RQiD?>DcT7EK`di`Yq4EW~)XzD9TdLbebGF;AbC2U{!%jyX8+c;|h&QrD? zWf}TQ0%SX||mr@1n%`GA-@BVm_eB_YR*cMK~!{WkR2!m6Cw*Nku4 zOG|IOyhrFwU-CTaSLtMAP=}4HpVp_}jol1$DE?^&)y~Ql5f?o$1I?vRG^s;A$%;gy zBS<+dWwQ1z`VurUtLT{|LL$k@KyeU^^a1F#1?8N{#-R7HCRj+W|5&MM=$5YzD?&xg zwiC3zI0a3z`A(IGFpJnfF09J&n!!=KPc*$kE(QXz&{PL|f1X1$Y>k2vDa<}9+{c|MN2kdLkhN^s}yew^}gFmwfSCUca5>(XeXY3bVwQwkoZuj!(V;8`> zy%GYD{<(i?J~QxGI*>1yuc}WjkMvYTMN$SEaS_Z^nZ$KYQG&(feXQ)htb*reUT%w% zySa&>nMcDUavc+akIX;A9{&R%m}BgyPR?`}>)+$?;?}1D9`t;4gF^$Lh^IQg zf>Guu@P?8|3HT=F#KJ44L2=4a4#t?ZO{ z^p+L~SuoOOmVD_D|0_Ccm#CS9a2uR}+#`wgpuJlP0|q*QRV^Ph3$}mi3|=$j3Z7ja z@VDmRAcBpp?d{u(;g*UfMD)WmwnvApxy+k08TYuE?C;iNXzh3BX2p0DxTkT*hHIIz zXelcu1$4q3+_o<^Aya`vV)^OL-#k zac~_eyWHQHSe%SMQK5H!qCyELH;(CYoG}i}tF)mVQI{x+8+!eZjS%VQMu?d&ey_kn zqmw2})Jz|hBuw7Q$85!R-D@&Qfk;Uy)1DHz{xKf8EGendv5K{YiRfK&|4H~8(4rFl zB&TObHRB2>Sw$1AYsH#9D*FTNcTt%qiOGsq<`Pmm#tycNh$FUTY@)6_y*>48;xJq; z%qnu0aaA-OQ7zz_ltnOBNXqoayyB^m1V*I0wMwTa3_skQ!xwFT zyz!dcsO39ns+gtNZPv-H1)EILQ-cW~34ic<pK$Mct1=QAk~^F3|U2GhBAkNf~=ac91=E^!@Wh){<6ch}i?6MZ=+tFZv?>33xL zm{XnzhA16ujn+!^rIE>8Cds3LNhI!IH;Demj3OovK_b{L0Sj=cZ?|xUN|LXH)VSHMydW8Pk&)yLY{n#!>Mi<}H;qdOJ%J^-SB1n=+u7QQ3 zsc!5Jw?d92TSS|i8iS7%&85JQYoOn}jMIZsW22(JoxRptKCWBb83CS?7{wU+b7VR} zwj!jNgLUnE#~|}KxHEEi`RGYxv=r^(s6c}NlnS=KZdN9TdIK>%m6@!W*GA#^NaLe< z6O!{gX}CT(c#8P@c;&6%%A- zQyn;nX;hN=Ho714g3)x0us2&U2b>0sT<8__Al}dE;BPMfeSJgSM+*WeEW`AS1uGRr+soGTNy7SVMCOhM!? zL4X_#T>YN!VvD34u$;mht7X)`ClHFMog4nse}9YB=|r+(LH+l(6hKD z%clHg?xVA+A%=d{UWE$ROZW%lSAA{P#I3-9aY27C;z6IS6yZSWiT>gnh(l({ zxPcWZL`7Hp`DUil)4(Vt%2*}urTLErd3T6H56`W5S|llyt8V0R53stL7|=pLI6mm~ zwed+<_Xt{3e4lkTu1q@*bL+5@NVJX4EAz@V*8_Lc=xc~6Ur9WL9*3lls$3$zfZ=M3 z@Ts%P#U|)kz{|u;u}Qn{8TLobN?F26vS4d^xf;oC-3lbawDM;3_poRM`^iT`-;C(H80PnM<5Z!AmsFITbC1A%($*x&j5 z+Or1^>LM1NRhY>p0WtLQd=g#tfBf>#!|BBg4xO2{<0X$9#+cN+6fNjBjof!-q| z;s@Z5QTug{WdJ`YoiH3gYg#bfl)|W{YXl}*U*zOM;B-J^Y|50-?XG`>q*Dcpg!tSZ z@Dlcd=Y4TwV?HkFCw8Pd1E$`~N%#SvDm%jsgiG?M6d+~1#=jPIz3M&{GHSO=SP~qO zAGfKTE0Y-{i)jIviJLyl4p8-5wlC7Z>D=Y3PwwxhME8|hfBpQ&2D;0xg}59)RUWCL zsEKM?>u3eVwds0R%m}nr#ix90uwmu->`W0<*zGgdbYDy&U3vC|6SZ?QTiWTJwv260 zf5hqk(aGYmA*0c;Q#5O``xH{ADsof5W)V81Rc>;|%<_{DcA4vQBuPb$OiU@$K@@R4 zCe5E+j82aQ!HQ8FDEc>lI8@Iw{I>k|mIgg$5G7m7(YuOP8|BE@8SgG8RSBMJuoHWd zEnODs-)DPW_H=ayRdouh+2;KJb`snq5lWsZ7mh;W4>TI^*%zrSi|&lB_Wy>W{H@N& zlgvp|935U7S`@0*832f)12EH67I!H=hLiev@F2MVOKfd)l$ymknuB-pCFLdRfqLwS_Px!0Ks8Ll()TpWo%FeE3 z-D%sm?rG#__@5y*dX;`i{LVTA%a2>-w6$e0P{Tp4P&rcn5ry@&tXB=afHD`SqLUPs z#Nh)KeDjBFuU?Pvs3B68ER}OHWsxd9-KTz`dOK@mf(0cOAW0Nxr!E|kC$jI=qgwE; z*4KAahgSj7$GD`rnx^40fAm+FpUnlthcrpG__Z{1$W|A1o0{-*n@Zm;`Kye|=#2C7 zQzacjq^>zWQX}-Eo{Fj(LL~+z3!~y!CxsT$yaD*9GXo?!k}89ubueDH;a zb1rr04A2wJQ+rn~*jZ0-JWLK|7%i4~sUA~p75u2H;up{Tjbx_jLiDFtimUrWl^E7v zJk<_nNfgf_oR0Jr5_kG&?{hT=j)^Y&{qc>y0efN=k+s%x=ey&!!(Xswe`*Bx$(v`D zq=#eMBeSN{Yuu%hj#3oO^}KZ%8s!GpDU5~Bn6{_3#-v%9EN_{|r~*F8{Pi)Sa^(rg3E|!$e45 zaGY~v4w0{1o)laUesgs;y(Ej0?#cS8XFG*+ZA7{;H|84K4D;+8+H)V;Cv#g&bVNN% zyj1YP!E;rEPWv(8nZxq2Pgn&SPan}Ap6DXbr2&5f9iCPQjJYk&x&l}+dB=KBiiuq6 zzs}Y&iN{@t_jx0@-efKFgayvw-qST#b7~0AMW-w?`D9s@;Sls!r%}9`7h}-`iVRUc+kOjQsqb{Ec%bf#@upygCnPT_Mz zRo=xq%jjTiA7OCxSrg82`QXi1nwq&hH7|XOER5KTS|2j zv-lBZIBWC^Nzb85`pG&6d+p)MBTtjn48L5WD@TuFz;O8*4IM9V`kDo^JB{;sTStFgXwCr3m>i?>YLl2tbBd9_W1lI7`x`WQ)cP-7OYSdpZeIT zd&fAjLOL;ydg$A);olJrIM!XWI}ck9=F6d)czgX~ig2W=d}mgtIEty8rU9HytJmyy zwo94wK=T6l>7+?gy=TU$Z9atbtn-My7?j0&3Kr!s;O_X`Nj1`HnwGlT3*T(2pd&{c zlm%ckySR61S&4G*P75Ji`s+^^KT37HmT{f8^Rt+sQq-=Y<|Ueilq=8a2mYIriME^Q zE`8>E6=(tQ->_5^{dh7ATZSK(7B^mk^SQWy|G!-JKgyQgQ1&6#(HPCD25z!^__6sS zXOcMV1yPpvZpELL^EAJVeU(IR3Vajnye{*skh`5x;k}`3_t59jFm&D|^Ia&o)2+&5)^Q(Z3ji2Kuj-~6*d z#HqVtt)sD%x^rMy+i*nau7TqkzTvd`oXkm_BSHy-CP3}CVE$>wW&FoKP8Pe1_yVs7jk?2 z1CzJ#UL)<*(&||~-j26;xq=MnZHw-EvgkQ!f%|>)ML>x$@3Q#|op}aS5Fi8oF)?2>0Ww=ChAw_JEj);S zaMnVxI}GvZYaH)Giw`6B{J+D!<2`X3X9r4jtX?MsNVTh_)RO0(n2TMZp*xQOnoN{s z*fAjx?_qCBH9KTvn@)`P}}ImWVlKch*p zIpQcxw(Tr!xw^hcAr-#KF2sXvY+ z^$Xw=PgN^q%?4L(rn0|6=TP>)wm8{~yM&wFlDAn$Qse5?7vS{C3!B+T3`Ba_%F6&n z&V<<*HJ;WV0Jv10?b0{0np@lk7D}WBybOuvF@|c%+i5RZcHU1qs`jkF#(a_YjOhS_OHX^j0=9j&JVs_ptjr!v%C5QopZ#8xJoGG0RIr zrdv48K(a2XVbq>ySFi~mK;}fQXpL4B7*sb~2u+y#6C@f9Y08SxeJF4IN0voqtS65_ z%vJ1p+}t|%K1YT{1J)re!Rn0udyUqDF(0zY#y}Y8_UMKTR7H^s9 z86D-vyR58UKexdMbipH4>O}8quX0t2)PBsmK)CXO&O&y8BbSLej2ge%nIs8hqWM#b z$(tMh+Cb@~Dy)=IH>si4HK5o;dJ?y!z8DVataVR+hok)$aZOR9L zNh^IROY?2>cHH!v+h@J^=lF|@D%7NkFSS~rzSWik>_$iB;7BT@(a%Tk-NP#44ZD0E^^DVU$MQ5b(E(&t`Z<$cJcwz>IMzFrX8p!~Dr{ zcwjTRB%Py28=;||_tIK5Kg`2byc1g~@tS<%bMs$Bg>f}UO%~zJs$=$=qNI&24^C-G z+&}<8pv^Dk>&4mkc%jBWREG=W&((1mFezg7Q3a0IX}^YYHWr&GCfyLj)T`|F1hn6H zWm;x+IiOtsEni5?8|IrOAgrwYa$5fs?lASb4b!kjd=l_QeyjQMH}Cg#jVT;9RL#%0 z5qdApjEQa&{(-gYCnw^j;uaVvtHm%?@LSMKGYydyVG2rmvQlS}|5`dTJma57a>H&b zDf>A`b$v1ARG@L0@K4=2A$O;VFY(}hSrMDgQ()Xg9P_V= zB*r}}n*ts2jRGp#a3o>lI>JR)dRU%y0qFA02wu^Ks@gmQk>R_-TwhtquE*bAytp4H?-B}l$tKX@p_6pR>DUL> zPs5E`Rki84get4{8kL}kZGS!2h0L-*!2iMCdq*|3wR@upgx*Q$JwOOO6zRQ}1VR7> zq*p-%q=^U;AXEV<5vdBH7wL)!N=JHE1gT0@KoC?!#2fef?)~m_zjMy`?l z{;A}XSDF3YI{4z+yZG$e#;X8nKxi4uUt?av5=IFgy}}v$+rAwUuni9$Q7wOH|6u!u zcJ~j+w|)4*A}Q0UX~` z0m|waXGU|f_mrU`I;PB>H)C?H>K*T%3f%aNYsqSJS^AQlv*0w$MtE%cO2Oz6<_juQ z-0Hcdd-5x3t9j@jZ$fNdpn8fRm7pV{2)BX1`XZO8j<4KQ+_>jbK=KAj0l*W1dQ5Lq zyWy=_XDMryZ4O#fV0=JgDfdqE0@G7!?XsL(kKRt|G~rRO0y?FFDi-5jpEK#;2-!R2 zH8Cbs83KU0io63yoa1A4d26cPpa2)mk}~rWdfP3oXyPh4b2QuiD4;Lu4pC7|3KN&B&VRLxIWtJg{Hgh^d=!$2%K|+ zgvYd=Ms5iGO$)fsyiY@9Zb-cfoYr@xqUDMu>a5z;=&k+KdkNRMD&(wU0-?1eAEb{B z#j1FTI~|%HmN5J1fZ2DJQ0E`df3nplP#f>4`I2qm=*tni;TziAiU)zHqUQbz1Q?^U zru>AO>!7BhnbR`-YEA65YmAE2Y{e^S4~+zW#Qtb;xG5NP<)6fn&Ku6&7$m^j5=$~j zISLgB4>;DJx>z?)86}%^XM}Fv#5DJ&iwX7l=oIR`aopxh#Ol>IcT|(*NQt@5O z)D&SmwEV{$RUE06Mh*&;3^FFFNu%EYrofL+OH=;5veI6-UHGv$xc>|`Pe(3m>z|>T z2Rlv`WB`07I`bIlf4DC2V()VGj4zCD?YWI8CBy`s15l9nD~H!^SQITahM45hNt+%? zi&e`H-w#ZitH^Kon}GVrob>B9n4q45o?!q{H9deRDFh`_{dITE|5V(DC8rgNQT|qA z%!9a8$X3S5CT2&EJhO;qm3?r?E%J#rJ=f|q!5c~NVe|shH7w$+nWw<%w89I|fm`sX zbxQh5q4~kXjsd%PCO}u@0TEZG#XZCFLB)EIE9y>|tNt&*#^s~0NtS)|>AIR6W;tI) ztQ)DjzcN}NrgNeYI@4;6P=t={)r6BkWMdSgV{+kLHYuXg*J0rL|MHTBqrvx;_8+2O z9PI#~y&&qJQ($2+t^2Lj10z?c5Y10Nhez9gH26-fL;1$T!N)B<)l^k#&&#Q5K1;^w_KT`;18ACup+(IlC@{qXSC{Gf4cNVcC-DFSZU3Nq~ z?#}Exx0ISt$7?YZCw`P9co^IfKu1n*E3f@tp|srUH73!ae&;zbMl6)umBkE`m8a-S zh@O0u^tJA?Lu!SsouK-*(S#*b3Mapg^aAiu{F~_{VW?f77ONt&pUmjV z5p#9s^rpb)y0og?oc^avdImpFEd%w>7~O>kY_*AvWsIk3}wC~|JZ$feDh`syv)hXeh z)VA8z1(JGwENRv9{$}K)=B;hbMPBuwIRqy^2DFLT1Br!V30_88^qIvGBHa|$xjP*rg}ZxM+D*~POJ$WrJk&hOb}`NRQdRC`FEh$_ikih<^d!c7fKpPyEETPnd4(gSA_LE=(#DQy#g`x zRaE3phB;fv;WlIp0vLbLtnlAXQ8|(e9wG=|v4jU(i&qK~I-e-b7aUm8muugu z*blSJ55pvZ9A6b0bUg=0XzSoGs%)Yd@iL{IX@=f();E1f%&G+=oSq2Dw@1y5>(SOO zjZfV?AzoJgp>9e=BjZ?7uC4v{OtqJE_N+{qSFxaSriY*1_yyl4 z#Xs9z!g;Z85<^-hf*7mK*RMN>ddEBV=ZvDSF#M3b<%^;Rpt%>8!p+iSG_5?2LJ4%A z`}IN~_c&oKJt5Q~S|E@?SgE&d7`04>)+)8P*>*Q#?7Qv?t!*N**w~oJz)BHw zzhkTgPcnUi*b}v3G5$P~oZQBYspxEOWp=L}uz@z+l0-Z)r&B!x@9$}w^l!^t#J>v? z3@K13e*ix9i4f&(E znd+X0)Nr&GeGzM_z}tMcMhiQNi_vxdhUG-TH7g^FDE)@GHjG+Fm5{1}J3LhW)xa63Zb*sC zBHaV3=YCxuCI0j$A)%ZqnJtv^NcIus#CL(a7gWQuth<9algmq#XeaeE&_qSXf(rg| z(xQ(;T=_cxfESkiXwfg3-C@2t?7A#N;mgmQrBZ=Vlzdmd!Klu-(5Ys>p;0vpp|Hw# z*TTn6$x};UN=z>n*BAVFKd*6b#s>Rpf#0&E+3d@?nd5YgqIXOsoNWXmWLEi#sJ@`x z;~XIU{W*j;1S4b=@TCc0u|`$YGaGNw{l$-kV_aEP^zvYeF|V(gUtd)N{zVG0Z!4kH z<6M@sj1#Bjs(GAwD1Qn<0qI2tt6UJkizFn;uwV-D#j)atEkrq$?UI89e9e5I<~rhd ztyzdz&>{is?e{Oe$GsI)o1Nu|p%Wd%WT45;TZ*9kY@c?J4vAiZBVrs2^zli^Aj{+E zhJ$Sy;c@qtu0Xis`pRn0s{ZIk$Yyy_cIs*ufH%iB#_V+XBZ9*O($a3DBi=cEcKE*{ zL#d=v+O@4xC`6;{fDGUI&k*k}rY|ZY?XfYBmKgO~2d*>bhtj}@)1H0bkrpD8grvVE zI6R-43|}pg9grN7W}kbZk?8(L$3w4GKf;YD{3~zNR_5ZD>_O0zf?(U-sww{fhW6h$ zb$Y=4XzqEKM>2?^y4VmO{P%$o9@8gQ1&1JYof+@62e1&eb&RgzUmm2zv<47S%)bE8 zo%rlAzLE25KjZ$YV(o(VOJ9$`mCQur1djWK*0Wolj223T0RTBfP&2^H86GmM6cI2< zM1xxX0}aaYMPt=lfkU5cP?fa2!NX{^!>sQfrugIDZ^xtbU>D;qM7X?AR_BS%w3Q_q68%A5bIi0!_}Vwb zww^8cvr$$Xqc2;ULE@SojUfNG^6ftYQ|I`_lH&-0^n*HApjs%%Fqr_Uv+8A6A^DW0 z%VmS+2HRW$8eKh-mLEbbga@&?mhe(x0K=FWIC~?IiBwUTymrv%hI%u5sA22iG`n|x z>$&8huOCtGxNy$rZ*zd*k{eVpm6gP>^z9yhHfJpKEKp=A|8oipk>DeshIMv~EZdUhD~aju2EZnY%Tvr-~sD9oSs$UoFm z;+<`e_Xv*P;sz0wf#DXdTnCkGm#`@WcGSI6lV=VDa6?>#stWDMNM_JpGOdO;c0Ek% z9c2OX$GJ5@h<#cP&nA5Jyqgc+xC_#|+f8Nkk^sgiFhv8Yx3xaWx&SCIStWoJ$VW#NOXa{_1w;U-(!hv zCDe4dJL{R?KoQpZNe`@ow4l8D{ zUC0vDZ8LRNeyVEqw?cR<$T0Tg$;;1Qzx`{8qDcFLPPLYg zmDZ*-qMN(fE5PO{h*eYml+VbXX0BEB-kfLJoO|%yhy*yE$i&uiu*tRUqDs5F{qC@8VcTEB*};FJj9PrrAN-6^KJa>5f5^Pn_ttiOgYyX4mC5`Hbchg9 zcztw#Sm|kI>J(D&t>d4vyyi58e-t3D@M~MU6*-I2;0)*`@=PT4PHR#&9w0_|+uqYQ ze*CZWVig@Cs^Qn*g1Q8?*h=1*<2o7OaGO(e$yN{guk?b0f@-*i5Q*_&?;&MQ*YK&a zP#!Ya2Ae1B-y@>q@(kDDd-1z0C9+6%qKp<1IQjO$?=HDicy%s#3R39+_r*?NLkXon zFAcGXe0X70rD^?H-}tmXQ_TETL623%&p)&tm&vPhS!5}Q#BrT9sa>(yo$=!M9Le|(e90n|W~TVrb9rf@#?Jhwn)wgA z{yms;^nlMgOabzW4&(VYI%`f(|2khy5qL=f*I@WLTI+LSJU&O8?=Dsvj1=YGE-0gG z%o8h9cio768Zo#x^)ZMw1BV#rrTZtkyo15mgGu0(!L8iU%Nq}A7ev!PK;qG!{FEOO zg3i-a55e2<(KkAn zPMO;BKNMC(vOGz+azo%^+6?4A(vvxb$=%HT9{)5^inGf(%|TJt1b>A(3uzsNh&L6yuN1K%mq zDacD|0+-YMP|8d_&L8Q7?#K`C6Hq0swjw>N-tK3 z7%yzr;%qti6Sw@-)k*>YHfG+~ZjqG=8hE&oaX??3~o&{-B)C zKA}TVbG!YYLa^Ny!LvYR6rw|wI$@2wA^0ADc@E{?lVcbX~Ff*Vz!*Cy*-`&aw<4(!-88h|I>|s2QeK> zj}l_62nUt{dlg3CHU!nWaahuBg4dXqV$`m9r?91H&la@nl7-H`O%_rq9c$6N_3t3I zJ2)`bS>SUC>DuV1{AXMp2UO_%~l5vn(OPG$6 z2C`hH?-19{WcPdgIjVy7&iGYz+rQ<$LSHG@NlH=GX34Rs$|sqR9eLJe7wqRrvz-1H zj(c_0WN+4@$D7%M>lXm2$rO3Yrejv4e_>sdb=$8;n)AVSOtG@zr@ylja3)saYwu{#k*d5o5dslpZKwZ`A?6AA z*^P#E`R0cyxO!`tNlqNLT{t`@r)Rg&GFjbV0$7V~^x$gK2G5Q)nq>mXJBP+8Z5;r#L;fDXhg$dM$T zDgN$Ck;Gg602?667AK8GHSQev5ot^q#v&aEj9BOf&;ey|)M%pVr2gA#>kK6`%XBZ` zkG7d?)aYTxs2BwE!gZoSARYvQF}{h;5(e{l3uBUlzFooY`T1$H>W@6e{MPEN@?`wt z?4+QwFDz^cnf4=K`Bh79k!{Ph)=*cc(GlV&LH0I}Erz~cA*VZhlOU#^!_&q*o@)>e z0B;=Fj5$H6!Olxl6u#te(JzmzUS9%qTPt>^V{M zfFKx&W5RFh6@$po0JCv-*av5p7fgSVYk+6kRCO_N)+{6$L^eO)4W1da_)R3K^hO}oxLsa>WTA#I51 zW84ix|L!A+t39q>hC{`ILMu|$S zx}Y9Q(5e7=L?7WM;(dfBLG|(i5GItdBx8vT`~@&Pid>e?BSOie11OG&Q1Zt``Fh7m z@wwJfKo?l5B`DnpCaU`>(&bBTP>D^Xr~US8KHK{$7ZP53jHmwBf0G$9d`OXKuC-~@ zOnHqy4;&>L(lemvWh`U~q`vG572xdsD7$6Qa5~yHRjbh~6?~PUcBJsX!JAA+m`W=o z)b<`#{I`{gf5WlLhU6$IRKBnE-`7&`u^m;MwFxm{@NADA7b1${RIcTag#EYb!T+sD zvtG;*FU=b$55A8iN!%Snr0|F_TncQMwniHjcL2+~{~Pq^|9<3!Wa$;$vm?3riXY&3 z{1cl}IP)~wQz6}xYii|UC*`LaC)|x!^*yQ|=GJ(=Ts=rTeSBgVX?G_0;?ZrU|DSK5 zdxN%aPPaaYt9a|Vp5YSR8KK}D(CWUS&0@t@TYUQ+mnV^UMhfXB63-Z1M87u`G9^eZ zFG+cqAf-I>&i?0c{=X7d^a691*r-cud~Y8veFb$Seea;~*wUVoSNxnDbONxr5}nfY zUW<)!TKI4wwz{fcpI$yCi1wWzD9Zyp-qkDXbN92M!XJ2MIu7l;iMQq3W8;AI0#S24 z&xGY`KVrMd)GY4qP3-?5anw6oiAqZ0$HW~ny@{#J9VU2Eb@g*}-BNH2<^k(Q!7DVe z)PM0lpR3fe@Ks;_nzjoxA#tM|1#ltqnDbih#>pE}>z~POt3`0`n94e9ruc(+tZ7Bi z?~Mi&nAjsXSDva-sR*NEs-$zUSJ$?8XAccDTQ%EvscwRgBFFDeWx99>$RBr&!~};n zbT4S6OG(k-3PV13vl>>}W+|DGl=R$B*I`!e1J-2FspzXCq$?g1hLMh2uV*-}&deyT z@foTqM8rR76h%FL!jro8@K(b|J?S<)J>4L>7qK?96Ypyp!HA^Nc(a?rlJZ;{c`(A$0s!lZyi7rOe!k)}W#KXlMIkU8$> z{15G+8k86I;V*!#e-MRl@ORU1vOA_HsSVr+hFM8v_j0y0RFjWg(XrzyyQ6{4+}$sg z=B-N2v*hhV_~Hh}hqdlpIiwF`0-p-8rG#oo$O{rY)WYA*#Q*j&j9 zVPrg(aK(QEvUR|?zs#GYb7;g_k~XQMvnC7EGrMj?)j(cyYaZ9({6|dhLcGZ&AYmgX0ck_=tKhUjwfKcx+P|W5W-EQZ68HF9Trq%lX}dz_%;#)mB@WnLwTp z7ll=Kg<^@2_ZE}SBXGhOFn2LkZ3cD+j+Q}k@vBE?m%A8OC*-+wVaRwbwsz^~x%Qn3 zxEPD$&v{Lkb3FSxhmh1zF2N=>73s?@@}unRg@I8Y#GqjC6fTnKXZOzqv9OZA&gB*_ zu5Ow#0b_Afkgk0Ic~Oo({V1s}!PA_sN+8v!Vwv6Hs05j;twfYjB>}s)^R_?-iZbt; zT>2{V{7vC}H0tsOkYwjzPp~vG0~wK?kVG_xs~Q(R$3zo79IKV~K+v5D%NqV} zm)r{wJ2$Q=dC~y`CZS`buA>aa6&HExyAB;_QTrVWlKZ{}EXvHR`%H{v%uEmIfxz8o zwTDTcc30H8-~>0e+gBGGN=iVhubAY20dnTrszL`o2Y8o$7xR(|O{ouXItm35N$dWU zv<#PbwB=&Us@cy~>P#d)cKZU2N)oe(6cI{N_shXok;T{c8u*oH6==^K(U7 zgxj%It%xy#l*-Pr3>O-@b^)G)A0{UR3?ECE|1B`!?a=_?T_9oZWPFJ?P?6nUZndDrOy zU)s^nA|4N^0oe6=TYzk~(p3pGPk2m5M0M_qya4-44ekrwDtlKeh%A_Q29XEwr0~x+**U9&{S<2_#WuoLLMi<47s-zN4{s67i+iur94wTQ;{z z{;QY#`KVa%Lc1?j%1XbmPUIfzwhvKjXo>D|FyFz8x@1%?me(@uYL@FY`k|Kr#kX0n zq$h3X#Dvhr=~DFs(Vs;HM1}r+pt%NlGqeLI)Z^ROE#WEs^J^nCP+XU*U?BYb0$uq1 z7eWWZt9o;8X_IVcfa9J~2pUs?z^^SP>QY_kBAcrNGZ*C0+SwKD(l!mV2ql7Zwm7hY z+f`C|flyES_FM9E=EF9|&p@ClBjS`;fwZN-k-x||(Drt1g%p1C7hvfZ;44lx%SdHN z-|bTx!%-+tyZSq&i>~Brp*L^xdl-lmPJ53AQ?vsXmXd7!-nkD=%!k;%2d~V>2Jpz0 zCEIqwy`Oi}KcMt3c!UTmJ4yW7YChW;D24A#d<*Oa+_NQ}_3v z^Ibs$OfvDrmP!8+uH$9}+Mwxn%4<1#x=SN;XrDv!Suja#2oi+wbLypyi_zIj9d{Nb zQqGT7n2u4m*&D28Um4}O&^2=WJe*^=53=myg1RgK=I^wv8(XC|ERiuU(>;@~3eOfQ#dyD@N^rkrVG&HO3e(Y9 z>~)uBpVab(D|Fu!KrnWnPsQ>;^g}&KV#F+|sc>^dPsT^ymQPEqcCL+rbs~d{maI84 zwPmL*v==Gc)iXU{s3(^!7#ZQWePB$Kg7F{jxtoFU>%@FS_)l+S!OH77IBFf$^gD4R zQFW@#`@RVhOV4lgmS?ReP3m45p|4y{$)kB}-|`zVL%urj;5uvdlv0$1%rIl#5IcP) z(bA>6iL}UFD|q~#*li+=PS?1{?J1M}asfA%Q_4~NQBh8%Mq-e-(m>gTl*WY56SuOn zWA4-jpoE5h`x6T|R`R49mBdV5$>_w#zbt*@@)zFN>Tg+1D6LRW8oqdrVx`L|idG#z z${AvQT_l<9CH|&7j~bn-t)yxW*OBuU_#hO-+hO}`2-iooWjgH?5lJIe_tiYG=of&# zCPe35z0k$L!m1$GX8fLMK1)G`kNun44OPr$znAF3eFebntb5W?+SQlzwN&7Y1b!SCIweJ5n^ev;_dUlebhrcV_|KSj-;@eO;LUSM$VnI%r8~o zFhv;vMO~905aWk2j4Hmw2Xl8^zN{5LBY0^+X;9D7b!>XTQ8k)^Uv-!r)yzdG}XJSNM$NC%8 zQ?88H-!LKlTxG-AL@>za!qmTVX%bI=BN);kfO%QQ&=(vR>sHPj<|^Vyq|v|Ko0tykOdR` zUP1XtSk?8Pp&+hoHrv){I~-azmOO6xSjv|eH;q9qZE-V+NLE@E=`$^Dv#SS7P08H55H#3=^c#3L{xz;yLi`IBOLA>% zpBgHM+LneBWfOiAKiIQRA3Qukqd)Ll?0a%^b1y}w9v4(aodnB%1O@ic&CEizknLUI zD-9W3cMqBKR?WX+H}V*L(~+4%pkc1)q5))RR&>s_TR8;P}aRys}$@_$M_?0cKL;&b!2J)D{=iuFJB&3110FwM* zkpktXF1ePBV3-GW(KR{&UKh%z3a9hd;~CF{UU|mPr+MRD?e}%$0#;ol;eJmTqzM)}cn9fS@emfwAYU zl9yz&Iic97aU)Sm!0*a89rm9I-Y9yew7ttL>buADDLPWIXQlekwcpNPZnI|(pf^=M zPz2V00krlhK0gSdK5Uf}C z7a*uFNmQsY&Cn+reoie=PPfKzJBBWKrfv~_xd{6p5z;)i&+ZS0S|F?Aieyvombb2a9n!M!2Rv2Qpq-)+#X1-B@EjAxrz? z&hb!1>0$igO_zpBKF5zIaiD;mhCmd-Dlssn=*1IDClZSH3hTUHca*{!W&(EfP{x+- zizzM^zW_V(CZ7oazbD3^d?67koX+=z`+rL?s9=r|zf~ zc_sWPNxqyZeT&@-X@&&nn< z`!p+8%HGuW4|$=qI#h*uqA71cUvMlB`Pf(RZs+rDe)GCy=J0plTQep6QI=e+MJ;suKJ6iU4oMD1K!kC!uH$^dzY@w3t(QA(uM zuw1kvDw9#==uU;JR5oG_%(W&DuX-#5&+$xPD7%LVJ+Wp)Wo}MGQOQE{D@hXWw(==& zP^x89)9Kw!7E<)695B098O=MvMsihhX%7&ND-cnJ5RjyXw=!7iBL_Qot%`m zeMK413Y5K)9WFf2u?bj<%j2oAlfpRA$m{@PV{d4U4AX-i3H2mj8^%yoiK&!0uCAtB zGX=Z<>mhETZbKK^2#TjkY6#GgW>lXi%Kbxu7pBx77@^!#C{Q}l$e_if zY-UBoGW0E>lF)rI! zB`1HOQsFWpZ3J~!`{pr|Y8Se?EDWMIL;DteM*-JXl#ayopq6UagtF9?(-ENe?Mk$6 zn7H5esCY@D$?R1nDAFBL&p>;4-T6%=Bt#cCu);&-()h`N`Vrllj2U+xB@A7_ zg;q}RNfHe;^JsaE;OJ2lEV;1O9hKEmSkq_njG{+Z>nE4QFy^}9Q{$_Xe8wi9@ulc} z7Q16oPt@QN@fEGIpQ~6(Le?Wl60b2yd7}*WZ)92y>f);+F(3E85TYE zrpyF=dl3BKNVqPz^^;a*^A6FKk1DNEFC1YtoxRbLCAliVg9Y4@(f9VTvnpx0p{4nR z+Qs3pi#!~L&SGc=lda-((2iT79hfPwfA=fb-Q6muwj}R##iF0)YWDU|Ah@-1B6J~| z?om~dCGyIhGHs^(gB7OD_-lh;Ci!G^ez?#*@btY8faEToSBHR~9h@}s!KMW2?4&!? z)uRxVVKOEQH#2@NZ3Fx+ja@dc{uiz4eDHf8LVcVPh4cXmyzvfc2Bik-zAja=;3X|88tp;QVN+ zV6N{a`rBwRagq~!E28xkRehQ1qst5%3~{_nd&rJ$6f*wD{m9bmuu-aykb>`?_>Dzo$eByP#)RmjD&WN zdM4+UH|&tS!BY3On5*pxdNNe)GX5z%2(-P5&Fq~0t>#c2eIsj1^`V}Cy%Z-HW#NeN zrv4<|kk$eRA=&WP}hgis#poSPPo>^$heiq z1-GX_meW&yxXJ7UnISU_01WWm@Xt^wKwgjY`#9F1MO;Ad24HagG+n@jzt3nQPc|A^ zp7OY-iebv%8t-?DUhto(BE6E5}BPS+2&ljH(zFCT;3uWp!T#+^(8&q+F|?^$ud9Ney%v14nEB93jJ5rdir6$=+r-I&y0T#%^2jSz>{G) z1Np~A1OIdXUyecFummBx#m)SWH6K!w+rAZguEDdiZci-oWXc|q|IhvZ{22VP+`;#& z4W$Y@&}xLl9!X3Qv_I^;*7og1|R)_yGjD2dwuH3b+t zX+p*425R10A6B2ditu@H!HKgz_0oTVH!NG4q_z%fZqJ=+Y;TYz1Vmx}>$L4ZKSny) zrq}$!&Krg<{;WTaTy8#1cGfDV=3m9b|kTid5<0d%#u_ocU^v0;+gwe)~&;XoYQ;$ z3&eGwrH`7a^BT@LlR9miD75Np!D%~3D!&J}k1on42ggG{!UG`$FFWGs8c+@-twUZ6Q(P+_U%l zeJLi_NSroEnNhD87LiV}7bozsHpmYm+Pea@+u(bAAVN30K^u>A$!8`iuoIUg^wo{+ zqgPX;Nz!0VvH(EY5Eb>o4~o2lcJ_P#sleK;F?w2R#`!Is%7*dc4`k}78ocJ@ADyZV ziKczkJDryzYmVmLBsjQFrakbVVJNv#`%`m>B4RAU=F#ZSir4Uke2>LOj`JlfCF2qP zUJQr8zVo%OpWhxw-e_V23hUjcRMR`1SoRg@SG486NZ-Qz9^YA-MO%7NI!hwzdyu7- z_q%(~&_{)8VLWZolE(aO#w)$s>goe*{NbV?Mw^4eGTpT3erKh}N;|iDr$<9je;vPp zL6gMpb-e>%xK){UvGQ?rcOwhCjL#N_f<9%n><-<<5m}-P|5HWyCj98si|8xm;d;C_ za6%^*`=w|jqf2At&NKFrA;CPm*;oRl)_ap$M6?TXdN+DBm~T zGKbf^o$V2+h*x$)c$jq5UPE{WF$l#Kh|(}BNjJ@Ia~L%=xgH-|im#jO-6=bzi(u{p zNgXO&>M1`Ae&Q1PpqiV1ejv8Ry_AIJ>4_qeR=Z+m7HxJ+>zitB_$E^EsBy} zVt;VOgDn)KhAbn>kgqAwWeCAENs=!RAb>p=`MD-}@ghiCAmku#jrK*&m5Cq;nG#J2 zJ0li!0eYEvf^Cn9XGGwB3jdwj0{2&@kW`meek;4tIKU#7gJ!ulF)S%ru;7GN8!{mK zgX7w%M*F2P%u2+nv<)d+-td()>o^^bP>K9HY8(u7^_#M3Mi})YP_s;QV0pd(PP=IZ zT!z|lK7&qK`tL|0WiE4f02|6|$mBMS5O*41hdq08CGh=Ej+e0#*Ipm~F&drBYnN_V zVqNWOXPA^2>g#I0oAWko$n~;qkHg~nGmcRm*XBEmBk0NW_8X!HN$49RU{hb{xs?Le zRA23$zJe)8(e}P$d|Ki@Oe75r*0hYX423*=6tc_3%qvWuQr2yHR)wcX4*Rb0Ky1QZ z=8dd5tD|6oxd4o75%>LtU;=XV{h%}LH9muJ@!5}zI+m-WznjbK>h(;GEQ`-2W0QIQ zGvigNLKhl~IN-*rtZ6>mO>P5TycULw%!RW*t-<0%0+&=D_tNtL?Rns-WG($LTJ1b` zDl_Z)L!=Lg8PKq?E<1MT<@WC}m|7qYp@iR&31x_hg8N;~yAQTZ(kW&~GUtn&la|s` z$-?e^)HI+gBuA3<=fmIYF07RmlhGS%vE(;iW|j)dSu5mn(PAVE{h46k(f}Wu$mK7?IFZ)uh;mW-yjLgYzY;3k4RtBu~CNM)jx=Tpfj4=>3fa$dy zv)vw2E4onB@_Zp>&cDmNmFSp#V9^)LAmC@lI;5O2Q&q~SIgP8*OG<0VP@Z6$W&1|}+5+`j zH@W+DqoRk@a;6LZE_Wb|n1_Gf48HjEQa?>_@s>)Mlfb&%%`%tk_k~U;l4|TE3N#~) z+0)k%hYRH?*~B{8MOMLt8JJp=o2J3dXYZ3P3bf4!uq7saMGjHCgV)`Po)w2;_{Q4;GN+i#1sX~xW-3(iv>U74rp zn9!G1@FQNX5{e&*`(bNNlV1c4!j4Q*!?m&?tFLZ`1z4g$ox@G}BU$_^&vg54UF{B} zebr!@{j_Z;&2NG}dNt!+TuQI|YLDwLfX<^IPTSP)&wc?G%vwa%(i3uxzs~C|tX*|e zOgeaCFjAa$f4eN(o8+jW7yCVFu-^9Y=mb&J+(k8A3J0f9`KVv4GEf5VI95B9wD{a- zb)C62N8Ry;tW<%dpqAoZhZHBZC)KH@QD%_Z7jg-6*c>05zS`Jv2tfmxd3`K zaf!IIWeLqMcFhmhvU4x`3^kj0U*5KE%NK!qS61cs+rD5efO+29`Z(f0^~G*bP3s;j z`7GI8Y!&HQtaX=|)+V2Sh?^vOT2=+?G?TYyO zWcXE;ljz9IkJPO1IykJFHf3hlF%cpj@w%$7)=K)2D~j=JWq!o+Y6d>tV=F|CU8nLe zT);)dSkxtCpKf6beZY7gOqEC5qX5M689$L12UW6Pm&s)f2oc%Sh)eIrcG0sv;Fx^u zO)t$R#nO|Q_5Naxq#M!W4Q?SK)Glu(BR}#|zTY#z;UP6|0W_jYa8%x6_4}YQFdUkD z1B4Z_eH{lom3USc1b97)c(s?s121Ea`vs^ua2L2vA7I3h6V%LkJ-$MeG8iWM5g&G8 z`ZZkHtVJNll@`!-iM%A%qPy~L=Jj-km_%7%%10F$DJkB6Wk9e*5KL2C= zE0e_?;9-kuY0t|Njr!Q_V$!R=$}{;%FcQ}H@~wwt~lo~G~#Yny`Ewb>5 zw9d80B%R#!3OoExm_9y7R?uv>H(#l`@6DZD;Ut~@SfP1ws)45u!1JyxeaEL*^nHj( zbbh$uyd;fKC9AE>bsUD%Sm){DTuz|q-geu8uWZefOGTbv-Bmo>y6O+e*~fU;7->Vp_0GI=c5L(+$Aof_cG(j(=_{0ksPa^&X%?9naR*0=)S5pEn$ zmq+F>!Wf-Q+^4ABLAl1);NP)=web_0biW6;vsl43ADjqUjYv4IH~zaW3snkQHqvHWnoJ${LaJkerM`NHsL5B~f-P@0}e-|%In z>yi3vl$n;XHqc%bzH4Aw2>v={3Ttn&^?i-2>zN(UyM4_0u56U)`2=qpSWRKtaoniH zck5VKL|wS~%9C4;66V$AqB8-|@b`1Oe*`(e);bw>0Q>sKFK17;^ zzKo^xMs`0Ss7EMOMduWv^_AvN1>Z5eTDMD~N}m13Kb14_+7}zCsR+ zKh%oEbufVt`FWXQ>UH9)a=i7O#4c9x@M7+z{Q2m2KmBycB#y=#rFLIRuD0;@j>Tna^X5mrG!NueW7ta-#(jrSFhX5#troY`5VapT}?PqOW@VP%L) z2Fli^y84O6*H5-Tb^n-09Z26>wo%e7scjmO_kb`@I z%(o|jPQzUFok6~Il4T0KmEmx|$ND`;*nQ>;S+=dm|LILg7efs3{QFY&ZGjsj|G|@a z_awFL9hM`ztMJ}~tN+19|JZ>*r7*d8>fHfnZ4M9D16FRk!HuNXH1sV6)b4x2lXXSs zE;Ri|yzH5U?<6OCrwb;$irCd&5yCEg;q5*1i;f>uN;*mV&zkbbXX!URjv<2Pd6Rd% z$itHyKfP1_kK6vwon17{p_G5nxI?@qFf@(6_##sGBg9iytwSa27XVA|d;%Cl z%G?|ue}qz&6VkW2lYv_$+Sj4=MkYH=9x|s;Gg9Fu3^E7Kr>7^sJfsFkN7g#k>^x^4c-(RF0DFP+D%vmeOn|X-az;;V46D zu61%f2?f$z=!lp^pc*7ojd}YY?KgtX$I?>frQk1pvRIjwLN2Tf?bY8jv z6B{2U2PEtKU+ldFRGiJCCE9c&jY}g9Y24j4xVyW%1qhk|!QFyOLvRbwxI==w1eb)6 z1lI_f014zZIsZ9V-rV!OI&eLDWH1de3D<8dZnrGr;7pga_hw&Fyq#n12lJ z9|mGW>Sxeo6|1BgMDzvCL(}=r3_e?V32vR<=2?E8G-kXrJgvAo9f%Vy{8RA;uSw$= zVmrX(biq>IUp*oTB~iDi=xrmcUh1F*oHWcpNx-#0V60T$1Cf&BmMtC{bYRXOgR!wS zse;Jpr>MVcF=NZCbiQB3%9;qfkq^+ZRdj&8#G3wQ?u9*#599!>VU%E0xTgLZ3J@c~ zhb5U!UxqC64PdI0J#e1M)Ek-bZ-yyGxaTsIK&XjjYF*AADUo97QF|KgjR*Q6R%(Q? zYXwBSZVfCta-sZXD3Y@{JNYWE`JHv;hWOYgp>Ac|;0j|S(WBm^Hio=1W&^LPPiajI z`7&EY7tpb+ewgVdQPsC?T@^^@_{i|k%UBaDUidzS6)w^7o%Tgu^l1G68J+$7Pfu?D z@MD%2xZL7`g-pO(!od<+FN0F=$1y?QjCIKD?<~o67Bgee%3I&sj?k)Pf7tBb&{a7w znR%!MyksuT=v4KZ_CL8b=*P78bWRy`FpT_VRS+trt?xq_Bx}qyM~0gJQc3Y^R?N|O zAoYH%*>$arBwk=r`Lb1c5>O5hz4TOpQBXnnwZjKOXq1!w=8VO{Ip9 za$#eHB`nQslqo9wqI&!@Y#mvk=H?~|i9qa4Co1rR*~?hzO*_|%F_QpqzRmc}vQ!p( z)8Bw&<=+5i!|onPV;%6R14dp3wkNom=g|h>-EKKV%M7X}$2HCGYW#fhkTX`*s*Z3l9z?HTT!TV%xm81fu`B=TY8b4v}eXLetfGvJR=pM;SW zeOY4BE|HDKBL06Vki)pvR-nRdQ2o$$`xC7B9`XI>&zXjQ{XX&hH{cx~=DGN6L%{N8 z+o4%|UrfD7f-g>pzLSa!4$%kDmtLv5bvao7{$Tzq8&*pv!i<;i3Y`mOjmFC>p~`hI z2*Xo<4gw;~URMH5ChF}wU{GMgRvllv6gHKI}ssKo-pLnt zT7CI>t4Fg5l~HQnA7(trXql-1kodTr1RI%&jUcp6qBlo^S-0TK_=dSJHT03Us~5&- z)vq8&h`7vkw3`=~rvr@)td<-B38Nn#Q=KD_cVCBlNc=daF|J|Lw$l%kc?89!^c-a3 z5e(+2mpOSF4xm(qrA>?WU@rl|z31;bjGM0E(lrIZuKe~Bb z6oOdUjb14T{+cPJ+AOa%Z&h z7`lD(bzE2M$YlP^_v(_;6xP!V=Exo4Ih=h;tD-5{;IaYd4T4aq*?e=^cW0^pfC^2N z8@me&6CA|j@A04F)d2(LdTr7X3)xbH4ce+I-@0?5v|}&@Ul38UN8ENpN_~*UVNePI zm;XEC^+Z?2EYNya=TuE|ece6!{r7uck@iO+Sp9^4#+Sv4xtmcB4B~7@T_2b-)nLfm zMQYV9P=cSmpqYx=o^)PqOP;pk87klZUZ24pW0YzlN?a<+vS5iGZu^1|ye~Zls$G@PaIelIG}<$=YIbc0eIY zp>aZdGy>yj^;PB|4;B~r3}vAKprgm@UKC}(&t!cG61Q%Vfh(ZZ2IBP~E4974 zHCHw4!qG6vQXaBpn9Yc~WhE@Zlz8O%qmtKh)e{#F?!4CW99gwTg%E!#@=H}Y$9SjB z%kV)Px%9MNrUz#Q8oK|Gv-U$mg}?AHeQdwc#|~5P^#78>tdL`u6=}@sO+!!Y1Q}X4csVNM+%&4xfCwBsBoG(%*I|HovdBd zy|*f}wXTRN@k7Z-n&&4UIi$+;&2?jtmFFx^78h5wS#aACoc7xEZlTI@+9D0Ce7Urp zEV4;^yCjrKLSw=4@?ca+MFwM#b(7YmvoRi0yyr{;(QVJE@mLwa@yK%R6Uz` zI4XSNC1G%Z+)nPI+7^*W_IPz*&=yTY#r8HNMX~*TbN!<4n|B8i;_AwE&r0MP-gbnS z<*oC0Td?QU!1=c~08Q_i@_Z=6= zcK0(Ju-NBFydc|3J64pHXKXQMbpfe2RUH|gzCh} zio*Rti5I)iIW=QN6!!uGxEC0d)9CE;CWz;i<>(KR+K!)J z9ENRWwjle!45yWo(%;`=4%HaX`I2F#VUln)a(w4JWcti5)zeeA_J(P+0;t}P4^G`M zdB^!VTHyVjt-t)*B!BR^eYp7!R7_N=Hye!iB>=-h#mkAD8{freii zl5zVQpR>2vh2Scgl#lGK2Y?qxiqm>$CKM5)Sj5UgtQ2`hRTxO8)JnU6fi9&M$G z!uTLq3zKt+tfXc~XPSxI{~B>>3Bu_hX6R*kjA#0mkZ^dNPsjQ73>D!4qWvp?%o5F9 zf(^0V3SX(z z$sEs7;t=x>uzmogs!yTb77#&y6lSn3nL+3C)RFH%R;2KYOXf^l5)f(-i%C86XRhGx z4;qlQ-OyNwJ35q(%O%Hv`IgA)#$6&VBpPvG_81n<7gXpd8;qLFJsJr-l{te)b0JMa$0G2AI8A2xGIIP`&l^;Tv z=+W%unHQ38Ftux7be>+7?TZz4c9sq9PL)>ueCnv9-;2K zv^ik=LsStpD?le+zL|_z8`C&j;rPK2I73qvrZLw=bwt)kL2XH@gt)FCGYe*?av|}v zUO0fJKF;5e@|-8$r~+g#uq|)Vd@324EaoJ>v6@z8bErk*Z$6e)C3-)~6(5>}anCa9 zF_E_qesBmQ)>?&-UT0pU;Irl0N+=zK>!Z9-#ug<-eY+6$L>JY@P8G z=g&ke^u|%ga9kdyZrLDa=e`yH<`wPqmBM)EO`gWMoB&OUJ= zYb_qCN=)*KEt3@;R>Q~{^LROtl*2f^Eyj7{z_VHw1kj-v%I?NnTtwnTf#54&i2|eCUBuObmwH4u>p~Zaf7fkl1u|z&z{tI8P zcH@CgMaAY=YF0D=+D(PS&=H;02xdsZcuHImQO-qo#}E1qu)@He+jW)wq=W~fk9fY9 z!1GgTTImCSk}iE!r0V1YXPTU}@1ESr$!ef7eY~?GAG-Iq~v2@k>=0l7TWr zt~`NP{Czr^+WM94ET}WL*B28mk3jc{xEB9)28?rzue)z zHJ+$!P(vlUZKXLtXJe3*`s)uh`)il*Hgo&WHT!Qmx&^f*O};~V z2`?GbE?<1}H*MbK&!%WLsr>FfAy-5P3L_m-pg8%VH&$nm){*S&n-DK~RPT^qgXCK{Lc#_RzUFu(iS#OLBocE~hZhR6k zsfkIKmROtkCUx}h@_#4rriRPvCRx*_OpT|}$;T7jKgIp00+iBhFZseEl(#@ubXl&c z%Xk0ztbbA>VaS_iDRUO6)LYonANUR8)9HLuAvV9Ks=x=aVJf^YlUf)TtptYZ? zKz(wurGt$iVx~|9xf=MBpq@r#QTMLEugoyzH$Xqzq)W|ot<%v;_-;Z5!Y%vLy2XP; zwQP*C4|O083Hdkusq%Q2{+U#n!$}&l7P8^%jiV>0mLDMecSC=&Aim_ZHJ^TgYTw;( zeWpGyO2>(emHLTx--NG)X<=ys&gB6!3X#vx>K>zEUS1w>rrbtEFj+?5L5Y~j^yh4Q zwj#84RR^eVF7LDaB3cDv7u{g|M6)p^&4rA!=eAT`7bu*H&*zbXe*;#X>5!oMhU_k> zLEOTFiXUdq`?CYqGfaYO&l+b!kN*JKCw)H>Y2|Qmtk;y%cL8?NH261P{uCY0a8f#A z+F`6phTH?UNJar5OdF6o*1re8&*a6i)3!O)yBo4J`%0*?F8W5PFZ1pxg=@?tI@@OT z3{#7TrJ~F-xrP*}*EvS&AKewU28N98TJHPcH-IHbNCITfPO)OP|4Hz6?{WTRo(z3# z0T}BeH_K4fEis{-kBnr^rs@bW^SOxxxIRnU7XML54H=XueUTgy%T$o)ws2Rk?Nf#8 zHG=yP?saM}*nV!u9i^g}rFe7L9qkS^T;g7bFR6DQvR+HqD!N z##97E<>u4nNK1}8vY%zj;6ZcMq1p67$55*kscz!6*OX3|-orehdP?!S$&&ECMI|ZzF)C$)mM^K=G9(FN56EY)H(cLcWB7&#C@jHI^>VT2g8&l$(fFMPI_I13QB*1=Oq5+IN z@3>-$%5NOxiWv;u>_ept{>!}czvZb7bVZCd9L0|BI8#)EHsZw!>E+G?FOOFnEPMVd zL2Bn_ZV9HPUzLSMsc5oR1KqHbeh>D2XtnpIt4N4MIEK@tZ`N;8#1V;Vt?0Yss2^sx$$o8N%f z0lkfUxs{Jag5z)rzI$6LNaJBhQ@ib%g2pxFUvHa6Ykw#Pr=;~8>HxnyzylpHGr?`) zUSZw(S;-ZV=`<6E)SC4*{^9kF0*i>8$0T2te2@%{`Owckbtxy zwTZ;F8qgUvQI2I)x$-^k^nL?CJY8AMzwYr&%!IFRl07goAL$g=Any zE31lQhEaGKY7V0g4G;Y)7Ls6px;l(<7j+i zbOl5AyGk*HtJ?S#y&K(R_T}&%%{L{!a|tPZ`D3%dc?2U;XQxq%ChF{_hwSHN55;?r z$&rpqk6D?+9}*E?>eT|OZsG-`GS8VZzb`mo{|0zCDaG?e5k9xkeXHH(u$&SsW7)C+ zTAE!%)W<*Axb!`6k9@JtVjQp3Hl*oO5YwQm{i18^pf}g>5OKg^IA}4))k)lZikUO@ zf%pr>)(uYiN$yYkg4QP8ib0)Sedj7dcJ8%K6;fyQ^bLMBUFA5ckcoO-15I0DD*W|( zZQKk~+iH(JC7aNeNA=~UbeEUrtTriaDF~(X5S68*4Thhk92no z*BQl^H*dCB)KDh{@Wz+*t?zNp0__2B-p-4X zicP|5de)|>k!nTqPHc6vqd%X75?bGYU#()c7`5J)@h1mbw4y}k&s}zy@x|_ZFH+E$ z@;-pB(7ip?oF-*znf#(S6^Su&qWtl5Q+EP%2}oL)J}?C;#RL(g zn8F!kl8N`UJ*hy{)a;qo7(t=35)V)442s9nT_S5o5p>bXR5H>5p_zXMhO1=H;jWXw zHa`}{L{4l_O z7#Vz@h!06t8-pZ4xyZ)2%YJhF3wd)Qkh}p%V zV4+bt7l}N)&z;{Gk=rNe%aq>UYr{+VBIt+C!S>lN$uQTTWQ5CLX?}M47JrfLgJ3X* zeB;-+Wcp{8S58LRo*KT*+1Gd|Dn<0T?`K+E;Z|yIWjvs}8W8L@XrV%<88>=$F2g)7 z1KGg?dl$NXw^8A$z1E*Xo{HM%BnM5rGy2mvNx6LXGt#&Ndp2pg;=OUoDBtOP=?a|K zC`=Z+r?+bjx;#6#`VVncyVD)zy_xYa%|dF>+bX_caN9knmErX+WWMkrDoZ(-Muo(E zjHwrm^Yt=1K+jCg{go1)_34dsU2Zn4YPZ#$9v?IJE>kw!A%VAJJ|KE22ZO!akWix_ zn1+f&{$j+3OWUYneW1pXknN)O{nwcOBgS3Pt8J|<_~@`b zW5G5$_Eh}I@@s#7h2e%Y?fH;^tYjk1A{c9aHagitV8WqY2T)*r5Ty*M-#{}v;V~HK7qREZq(0pj0i6YpsZ>$}iH{+(B9aJD+7l*)iy*^T;8`nxyRz>$s~SSy5g}z_fl_X_7y=br*u>l~`xp ze_i#G{GGzE3s*+?E9XGQgGYLCr!Q8|UzP_``mJ=){_AbY_ie{a zok`Kk0Z5vm=kolF`locbTKGu!yhb@L2ORH-ox=8WxlwFSNJa>;LFwy8{O}C!Dk664 zGYmpjsx*#pyaxKu8{U)q))(a^cy4k1ua#&{V!VNQW#e8$VxgjELJGs-+kzcOm0gRB z%8CUh=RNC3qB=Ex>E)2mRQDsabJ-3#RF)hi{2qY}|sR zC8=!??BJvE489nFigyVtenfY72D!ID2WviDIv^NNgr=>+cAptcm8PQ;+3ddHRIU#X z<7$5_aHzNwP}t*oL0}@|P;QCdh8?3+lT2K;gnh|(dD^jnZoYP$YBN}>W*5+1?{2(w zwNG!z%0Px7N1ASN{B6w0l#_dqkjIiVT29cqFWF~vkXX>gxFyCgI5GkM$)-7wYD?1_ zS5fOaZW*lJ6EcRBQic?xNlz*|l)$}x5LS>cRdN1V;+yj&l+{rrE(x5Nkw{r{ z*`RB#%?JWtkVqbfFyI!K)HT`ChCAGZXJ^ohywN0aKX3#tAHjH5d&0B}m;G*c$!j~3 zNHEFIk_aFK2fAo;N13Ft2~2FXNyt~^PC$k?T~Q1Zl)`Ybn(x9D`d(zB@WN@`V9%2{G?`A$e@dOgcin=pDBbsI}V3*K1lPL3lZ-FMW-DX^ba zzMCiHF;$4l{nomBO~J=YmJmA*Va4G-r(VB=wXmNx3m7c)?&0n{B(>91Tt= zykXhEKsg#TXail)Rvu%MR!JJyVH*aE%`s;4VaqlXd_6T1^ysCY_j<}0q&MX4HLeoU z+FH9RJX&*MbRvV?IlzLOqWa+y$tX~J2?i8$caqYQ=ODp=i=!ihUcME%Dxag-1Izoz zoa3=pXwpbE?@=Zpc?@Sp#S!O4$aG~_*06~)y>}vTbI4AVAy?~~^c(Xu0Z0S*Qt%qC zqm##f5q?DDSQ=s_3fOycpNH0wtSjLC~1oj6vAB;EK^l`=6>M7>at`u~eQ@JA@ z8eDT-4l{cNMM%~Yx`jcL7lsld&02k^>hW+1MZ7j4|2oXOZ+F9g?&3Sncc}tJmq*9` z1zKqWg5GDWB||ve#@;IJtfLMkom27<;&%8g?f27G$^35ge-Mdc+0XbZFq&J0>Re z#{6;sVy=*{C6$9|gi8Elt)Q&C!rNEWC>y6G#2g0IDD*p0B3J}@kyJ|oEa+HM zzM+uWBFUiZ^ZkDk?8OmexnJ3sjHow@g|PmUgnut&x~EMn6&odX=N(dzXf?U1kkB?g zV;{s-d8Pb_xVx{nGDIJXsupn-c0nkpBLF?uZGM7-O7oHgP52a-u#@xQEepb;xOm z=DbV_4(+S(jKaJ{$uDeqwT?2{th z*qx0GQIBt-92Je=7#6x~iV8-mfS{_%4AUt7YcRoJ|N!UE{!J3V>Ucy%Tg$AS0SC#~hnLn?kbrg~uw3t*{~}+sUAU zCMp-al+o*RQ%~E+krZC&Z5Pcc9V@!oW6|nh`b<3(*??m@sMmjZ< zS#$10pTz%KsdBi6^y|?V z!!~U`*#cFDxaTk!&`2KA1U1JTd}fmM2srVX$TGs1Yre!Dl$et!tl@O-4HIm%=n~!7 z1xpMKCdrpRJA8-0m_9Q7A*BmqT(W%NXI(f#^J@o4RF0I74_%SJ<}5$~kb=0UI_2Yv z?U1tVNF>wQgq-aEgWxqT|IGP-;=WMrkN`V`5EN4M&ogjF!c`cdxYU;H-V^M0u6B#c`1{F?^r?MYOF5Yx%{rQmj)zp;hot_6gdo3Bx| zZGV>GH$d^hY`vm{loKtAmQQu=&1xR{1Aa zic*Ag@s!^Th`oRc9nNFm3&a;Q?SsUIB`%(%MkTjkeNQqVp@%j{Ebv7VJhk0?lGpPEd0(6=1?RXv0RrXP{OFg5e7Jr!}MwmM>>NctR zV2cVQ>hQ`~);5v0#m8^KA+aprs0LK{L}-mz1a0W*}_`~n@N zr{yc0RfJfGjIG|rnDni5uY>FPm&8JgqJc1`&Z|K=(6U5Uq9SA81)o>KKu9c+($qoc zx2&Px0E%E7VIw|<1|#KFn$~%Y^8utNR@$C2$}2v_q!zgg{+rlqp&s@ps|SU?@NMLy zxgLSDW8k}UtiWP9*8Ygtj3d!Q3}0#M5BqZ8ktaFh=5-pny5A;9W_`WI7zrHKrm;Q4 z1K&Qpm(>FH@c@OH8U+2bl;X9A-_H}{-b?EKLoZgNkFsYkN~Ir-<~GrxQkb^U{2JI; zOUkX09y>3SNt%18eu3l*^~fd>uSuc2G5kA4@S_|b~lF3GR0GX83yIEf0!ox1*KE;rR{VG7Cwm8~qm)BeW3TxlnBOsR8Oa8h{6D+$lUE zm}JMrsB6?nky48rprF9gWpByqq#}pXHL5@!)D|tNU(_&^Oglf|K%@HsN46yM4`OQCuEV!uiyyqHufKIXrn}pFs-t04wQO+ zRuf7(GJ=tTm&u}q5;*{2Ku2vniYAo%hC42S%i#>r{N|25wJs`{fW|7;mL}eVqDVeH zf4eGKu&4uFl^x*&W4?*_1uSw&PhvC?XLq4%CCTJ~ z-Z3TDl{Nx(2qsvP%JLmco*-vCnpE(nVE|}rN6PmG(J5faG0+OCK32N(pub=m_wrVkkB679%sH^x!{Zd zUaI^c6+)AZb&wrQuyaZCHtq$=p;z0BU`2H#j+tMZqe6i41gbSJo>i32iq&rfb9$iv z^2hh_%hCX}z`4#mo7)lwn-&-~8Rb^V3n&Dt?oY1P$Ahchmzlp{gBA%B^(Uu0+8;K6 zOdZ6)V|;Y*>a057ET@=#5Z8Xnpv2?hkjGAeTt{MzGJ58s#&c#zgQa|B; zL!|uan9%v|q>Blp8>!d~@j|rjx>?5KV?m%{Cf3L_kXrf=Rd2@nyK&>Gyx)L?D26x{ zg6z3hb?60?SrJlO_o}rs<^cSs(cFn+z{ZcJJ1LlK6P75)I!#5sYZG}6GvB^gZ&&@VS?9;ul0uuVAuQ~=*N-mG1?>ZhRh+SL4o zw)Th&Cj|?ICI=$bBgyxJp-ZedLB z$bTGS)ofCsjPe};O-OA4ya;A8p?(F?>v(q5f0#{SAC7g z^NQz4i5mr*?QgnfI+Ro!Ju-9 zWn3B4a@)P>)!FinCK*9&Et6*a{mVzQ#U(vG-xIiv~<1WX{4yM znSIJc==i|1rRfSLBiZrS9+W0d-%Sc1Y3SN-=Bb_g5JW1hUloGoqR7A^Y@4-9;~#ra zsWmUFFE`yYKv2oiY%wqY*`pKO1>U~(qCMX>J@Laq`|YQZ`ZkLWls3|e;@r+h5AnMcD@zZ&U~dk7faj<*c9L(T>SOWqoMSQTg@IgkS|ND z_%6(bZIm5{=h#lrK5*&>j!>sRK%Y8HrC!dtZH6saeM$G)E0b$(uG ziBs@H2Gi5DBggfl1tQ=H!Uk(nhA%B4xM&Ye$F{93jl;W|C969uP|69w-$6t(#m={3 z*-%5Si>Z)Xl`MfH3-4y4f1xG>)Fl|5VbVlsL4cX7g^&}TU0oqhv$*^ho+nxXa;c4& zZn|7klYeTd!6Oj-SmYsuoYczmRU-&T8GD%v?7-eE0MULCod-`+oawd*e9P&9?tQGS z*4;bVOuS+ZB?YiY&kUz1*;J`ag~ShS)AjSqY(?nBBJ0N$pEAN}TJYGgC{PJRBDir* zs@=qM1LG$xaNvf#PH~Je6-r`XQ0R4?0dGACKN0PnUYxKgq7LNkn$J?Pqi?*??4@

N_-lwI=XYa;pZ0+}F$G0}$|9IQzXPqkyf`Ad^ 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 EFX8QqMF0Q* literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/force_spin_zeeman.tex b/doc/src/Eqs/force_spin_zeeman.tex new file mode 100644 index 0000000000..d623ef85ae --- /dev/null +++ b/doc/src/Eqs/force_spin_zeeman.tex @@ -0,0 +1,11 @@ +\documentclass[preview]{standalone} +\usepackage{varwidth} +\usepackage[utf8x]{inputenc} +\usepackage{amsmath,amssymb,amsthm,bm} +\begin{document} +\begin{varwidth}{50in} + \begin{equation} + \bm{H}_{zeeman} = -\mu_{B}\mu_0\sum_{i=0}^{N}g_{i} \vec{s}_{i} \cdot \vec{H}_{ext} \nonumber + \end{equation} +\end{varwidth} +\end{document} diff --git a/doc/src/fix_force_spin.txt b/doc/src/fix_force_spin.txt index 5f4c34ec26..60a70dbf40 100644 --- a/doc/src/fix_force_spin.txt +++ b/doc/src/fix_force_spin.txt @@ -20,14 +20,13 @@ style = {zeeman} or {aniso} :l x y z = vector direction of the field {aniso} args = K x y z K = intensity of the magnetic anisotropy (in eV) - x y z = vector direction of the anisotropy + x y z = vector direction of the anisotropy :pre :ule [Examples:] fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 -fix 1 all force/spin aniso 0.001 0.0 0.0 1.0 - +fix 1 all force/spin aniso 0.001 0.0 0.0 1.0 :pre [Description:] @@ -35,48 +34,40 @@ Impose a force torque to each magnetic spin in the group. Style {zeeman} is used for the simulation of the interaction between the magnetic spins in the defined group and an external -magnetic field. +magnetic field: + +:c,image(Eqs/force_spin_zeeman.pdf) + +with mu0 the vacuum permeability, muB the Bohr magneton (muB = 5.788 eV/T +in metal units), Style {aniso} is used to simulate an easy axis or an easy plane -for the magnetic spins in the defined group. -If K>0, an easy axis is defined, and if K<0, an easy plane is -defined. +for the magnetic spins in the defined group: -In both cases, x y z impose is the vector direction for the force. +:c,image(Eqs/force_spin_aniso.pdf) + +with n defining the direction of the anisotropy, and K (in eV) its intensity. +If K>0, an easy axis is defined, and if K<0, an easy plane is defined. + +In both cases, the choice of (x y z) imposes the vector direction for the force. Only the direction of the vector is important; it's length is ignored. :line - [Restart, fix_modify, output, run start/stop, minimize info:] No information about this fix is written to "binary restart files"_restart.html. -The "fix_modify"_fix_modify.html {energy} option is supported by this -fix to add the gravitational potential energy of the system to the -system's potential energy as part of "thermodynamic -output"_thermo_style.html. +[Restrictions:] -The "fix_modify"_fix_modify.html {respa} option is supported by this -fix. This allows to set at which level of the "r-RESPA"_run_style.html -integrator the fix is adding its forces. Default is the outermost level. - -This fix computes a global scalar which can be accessed by various -"output commands"_Section_howto.html#howto_15. This scalar is the -gravitational potential energy of the particles in the defined field, -namely mass * (g dot x) for each particles, where x and mass are the -particles position and mass, and g is the gravitational field. The -scalar value calculated by this fix is "extensive". - -No parameter of this fix can be used with the {start/stop} keywords of -the "run"_run.html command. This fix is not invoked during "energy -minimization"_minimize.html. - -[Restrictions:] none +The {force/spin} style is part of the SPIN package. +This style is only enabled if LAMMPS was built with this package, and +if the atom_style "spin" was declared. +See the "Making LAMMPS"_Section_start.html#start_3 section for more info. [Related commands:] -"atom_style sphere"_atom_style.html, "fix addforce"_fix_addforce.html +"atom_style spin"_atom_style.html [Default:] none diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index cd94984230..7331798088 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -1,11 +1,3 @@ - - - - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c :link(lws,http://lammps.sandia.gov) @@ -33,7 +25,7 @@ pair_coeff 1 2 exchange 6.0 -0.01575 0.0 1.965 :pre [Description:] Style {pair/spin/exchange} computes the exchange interaction between -pairs of magnetic spins. +pairs of magnetic spins: :c,image(Eqs/pair_spin_exchange_interaction.pdf) @@ -46,18 +38,15 @@ This function is defined as: :c,image(Eqs/pair_spin_exchange_function.pdf) -where a, b and d are the three constants defined in the associated "pair_coeff" -command. +where a, b and d are the three constant coefficients defined in the associated +"pair_coeff" command. -More explanations the {pair/spin/exchange} and its parametrization are reported +The coefficients a, b, and c need to be fitted so that the function above matches with +the value of the exchange interaction for the N neighbor shells taken into account. + +Examles and more explanations about this function and its parametrization are reported in "(Tranchida)"_#Tranchida1. - - -The {lj/cut} and {lj/cut/coul/long} pair styles support the use of the -{inner}, {middle}, and {outer} keywords of the "run_style -respa"_run_style.html command, meaning the pairwise forces can be - :line [Restrictions:] @@ -69,9 +58,8 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. [Related commands:] -"eam" - -"pair_coeff"_pair_coeff.html +"atom_style spin"_atom_style.html, "pair_coeff"_pair_coeff.html, +"pair_eam"_pair_eam.html, [Default:] none diff --git a/examples/SPIN/in.spin.cobalt b/examples/SPIN/in.spin.cobalt index dc93920585..4b0d7c3e64 100644 --- a/examples/SPIN/in.spin.cobalt +++ b/examples/SPIN/in.spin.cobalt @@ -87,8 +87,8 @@ neigh_modify every 10 check yes delay 20 #fix 2 all langevin/spin 0.0 0.0 0.0 21 #Magnetic integration fix -#fix 3 all integration/spin mpi -fix 3 all integration/spin serial lattice yes +fix 3 all integration/spin lattice yes +#fix 3 all integration/spin lattice no #compute real time, total magnetization, magnetic energy, and spin temperature #Iteration | Time | Mx | My | Mz | |M| | Em | Tm @@ -120,5 +120,6 @@ thermo_modify format float %20.15g dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 1000 +run 10 +#run 1000 diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 313250b6e9..fc308b8124 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -54,6 +54,7 @@ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : ComputeSpin::~ComputeSpin() { + memory->destroy(vector); } /* ---------------------------------------------------------------------- */ diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 8a21463b7f..9862310533 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -73,16 +73,20 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : extra = SPIN; } else error->all(FLERR,"Illegal fix integration/spin command"); - int iarg = 3; + // defining mpi_flag + int nprocs_tmp = comm->nprocs; + if (nprocs_tmp == 1) { + mpi_flag = 0; + } else if (nprocs_tmp >= 1) { + mpi_flag = 1; + } else error->all(FLERR,"Illegal fix/integration/spin command"); + + // defining mech_flag + + int iarg = 3; while (iarg < narg) { - if (strcmp(arg[iarg],"serial") == 0){ - mpi_flag = 0; - iarg += 1; - } else if (strcmp(arg[iarg],"mpi") == 0) { - mpi_flag = 1; - iarg += 1; - } else if (strcmp(arg[iarg],"lattice") == 0) { + if (strcmp(arg[iarg],"lattice") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix/integration/spin command"); if (strcmp(arg[iarg+1],"no") == 0) mech_flag = 0; else if (strcmp(arg[iarg+1],"yes") == 0) mech_flag = 1; @@ -94,8 +98,8 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); - //if (mpi_flag == NONE) - // error->all(FLERR,"Illegal fix/integration/spin command"); + if (mpi_flag == 0 && nprocs_tmp == 1) + error->all(FLERR,"Illegal fix/integration/spin command"); magpair_flag = 0; exch_flag = 0; @@ -134,6 +138,7 @@ int FixIntegrationSpin::setmask() void FixIntegrationSpin::init() { + // set timesteps dtv = update->dt; @@ -202,29 +207,20 @@ void FixIntegrationSpin::init() if (locklangevinspin->temp_flag == 1) temp_flag = 1; } - + nsectors = 0; memory->create(rsec,3,"integration/spin:rsec"); // perform the sectoring if mpi integration - if (mpi_flag) { - sectoring(); - - // grow tables of stacking variables - - stack_head = memory->grow(stack_head,nsectors,"integration/spin:stack_head"); - stack_foot = memory->grow(stack_foot,nsectors,"integration/spin:stack_foot"); - forward_stacks = memory->grow(forward_stacks,atom->nmax,"integration/spin:forward_stacks"); - backward_stacks = memory->grow(backward_stacks,atom->nmax,"integration/spin:backward_stacks"); - } + if (mpi_flag) sectoring(); - // grow tables of stacking variables - /* + // grow tables of stacking variables (mpi) + stack_head = memory->grow(stack_head,nsectors,"integration/spin:stack_head"); stack_foot = memory->grow(stack_foot,nsectors,"integration/spin:stack_foot"); forward_stacks = memory->grow(forward_stacks,atom->nmax,"integration/spin:forward_stacks"); backward_stacks = memory->grow(backward_stacks,atom->nmax,"integration/spin:backward_stacks"); -*/ + } /* ---------------------------------------------------------------------- */ @@ -358,7 +354,7 @@ void FixIntegrationSpin::setup_pre_neighbor() } /* ---------------------------------------------------------------------- - store in two linked lists the advance order of the spins + store in two linked lists the advance order of the spins (mpi) ---------------------------------------------------------------------- */ void FixIntegrationSpin::pre_neighbor() @@ -591,23 +587,9 @@ int FixIntegrationSpin::coords2sector(double *x) sublo[dim]=sublotmp[dim]; } -//#define M1 -#if defined M1 - double rix = (x[0] - sublo[0])/rsec[0]; - double riy = (x[1] - sublo[1])/rsec[1]; - double riz = (x[2] - sublo[2])/rsec[2]; - - seci[0] = static_cast(rix); - seci[1] = static_cast(riy); - seci[2] = static_cast(riz); -#endif - -#define M2 -#if defined M2 seci[0] = x[0] > (sublo[0] + rsec[0]); seci[1] = x[1] > (sublo[1] + rsec[1]); seci[2] = x[2] > (sublo[2] + rsec[2]); -#endif nseci = (seci[0] + 2*seci[1] + 4*seci[2]); diff --git a/src/SPIN/fix_integration_spin.h b/src/SPIN/fix_integration_spin.h index 15471278ab..cb41f2337a 100644 --- a/src/SPIN/fix_integration_spin.h +++ b/src/SPIN/fix_integration_spin.h @@ -45,7 +45,8 @@ class FixIntegrationSpin : public Fix { protected: int extra; - int mpi_flag; //mpi_flag = if parallel algorithm + int mpi_flag; // mpi_flag = 0 if serial algorithm + // mpi_flag = 1 if parallel algorithm int mech_flag; // mech_flag = 0 if spins only // mech_flag = 1 if spin-lattice calc. diff --git a/src/atom.cpp b/src/atom.cpp index 86ef309f09..04104272cb 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -278,6 +278,10 @@ Atom::~Atom() memory->destroy(tri); memory->destroy(body); + memory->destroy(mumag); + memory->destroy(sp); + memory->destroy(fm); + memory->destroy(vfrac); memory->destroy(s0); memory->destroy(x0); From 10b38cda9328e03cf4f428ed06b1755c9b545efd Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 8 Feb 2018 11:09:33 -0700 Subject: [PATCH 070/675] commit JT 020818 - documentation v1.0 - reorg. of examples --- doc/src/Eqs/umbrella.jpg | Bin 20442 -> 0 bytes doc/src/atom_style.txt | 9 +++++- doc/src/fix_force_spin.txt | 4 +-- doc/src/fix_integration_spin.txt | 50 ++++++++++++++++-------------- doc/src/fix_langevin_spin.txt | 43 ++++++++++++------------- doc/src/pair_spin_exchange.txt | 16 ++++++++-- src/SPIN/fix_integration_spin.cpp | 2 +- 7 files changed, 71 insertions(+), 53 deletions(-) delete mode 100644 doc/src/Eqs/umbrella.jpg diff --git a/doc/src/Eqs/umbrella.jpg b/doc/src/Eqs/umbrella.jpg deleted file mode 100644 index 5783b54ea34556561221c695f878503a5d755c21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20442 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 diff --git a/doc/src/atom_style.txt b/doc/src/atom_style.txt index 49d9dde791..7ad4e1a88a 100644 --- a/doc/src/atom_style.txt +++ b/doc/src/atom_style.txt @@ -15,7 +15,7 @@ atom_style style args :pre style = {angle} or {atomic} or {body} or {bond} or {charge} or {dipole} or \ {dpd} or {edpd} or {mdpd} or {tdpd} or {electron} or {ellipsoid} or \ {full} or {line} or {meso} or {molecular} or {peri} or {smd} or \ - {sphere} or {tri} or {template} or {hybrid} :ulb,l + {sphere} or {tri} or {template} or {hybrid} or {spin} :ulb,l args = none for any style except the following {body} args = bstyle bstyle-args bstyle = style of body particles @@ -38,6 +38,7 @@ atom_style full atom_style body nparticle 2 10 atom_style hybrid charge bond atom_style hybrid charge body nparticle 2 5 +atom_style spin atom_style template myMols atom_style tdpd 2 :pre @@ -89,6 +90,7 @@ quantities. {peri} | mass, volume | mesocopic Peridynamic models | {smd} | volume, kernel diameter, contact radius, mass | solid and fluid SPH particles | {sphere} | diameter, mass, angular velocity | granular models | +{spin} | magnetic moment | system with magnetic particles | {template} | template index, template atom | small molecules with fixed topology | {tri} | corner points, angular momentum | rigid bodies | {wavepacket} | charge, spin, eradius, etag, cs_re, cs_im | AWPMD :tb(c=3,s=|) @@ -175,6 +177,9 @@ used for calculating the field variables (e.g. stress and deformation) and a contact radius for calculating repulsive forces which prevent individual physical bodies from penetrating each other. +For the {spin} style, a magnetic spin is associated to each atom. +Those spins have a norm (their magnetic moment) and a direction. + The {wavepacket} style is similar to {electron}, but the electrons may consist of several Gaussian wave packets, summed up with coefficients cs= (cs_re,cs_im). Each of the wave packets is treated as a separate @@ -312,6 +317,8 @@ The {meso} style is part of the USER-SPH package for smoothed particle hydrodynamics (SPH). See "this PDF guide"_USER/sph/SPH_LAMMPS_userguide.pdf to using SPH in LAMMPS. +The {spin} style is part of the SPIN package. + The {wavepacket} style is part of the USER-AWPMD package for the "antisymmetrized wave packet MD method"_pair_awpmd.html. diff --git a/doc/src/fix_force_spin.txt b/doc/src/fix_force_spin.txt index 60a70dbf40..5e7cff571d 100644 --- a/doc/src/fix_force_spin.txt +++ b/doc/src/fix_force_spin.txt @@ -36,7 +36,7 @@ Style {zeeman} is used for the simulation of the interaction between the magnetic spins in the defined group and an external magnetic field: -:c,image(Eqs/force_spin_zeeman.pdf) +:c,image(Eqs/force_spin_zeeman.jpg) with mu0 the vacuum permeability, muB the Bohr magneton (muB = 5.788 eV/T in metal units), @@ -44,7 +44,7 @@ in metal units), Style {aniso} is used to simulate an easy axis or an easy plane for the magnetic spins in the defined group: -:c,image(Eqs/force_spin_aniso.pdf) +:c,image(Eqs/force_spin_aniso.jpg) with n defining the direction of the anisotropy, and K (in eV) its intensity. If K>0, an easy axis is defined, and if K<0, an easy plane is defined. diff --git a/doc/src/fix_integration_spin.txt b/doc/src/fix_integration_spin.txt index 15840cbfc0..d4e568a4f4 100644 --- a/doc/src/fix_integration_spin.txt +++ b/doc/src/fix_integration_spin.txt @@ -10,33 +10,38 @@ fix integration/spin command :h3 [Syntax:] -fix ID group-ID integration/spin style :pre +fix ID group-ID integration/spin keyword values :pre ID, group-ID are documented in "fix"_fix.html command :ulb,l integration/spin = style name of this fix command :l -style = {serial} or {mpi} :l - {serial} value = factor - factor = do thermostat rotational degrees of freedom via the angular momentum and apply numeric scale factor as discussed below :pre - {mpi} +keyword = {lattice} :l + {lattice} value = {no} or {yes} :pre :ule [Examples:] -fix 3 all integration/spin serial -fix 1 all integration/spin mpi +fix 3 all integration/spin lattice yes +fix 1 all integration/spin lattice no :pre [Description:] -A Suzuki-Trotter decomposition is applied to the integration of the -spin-lattice system. +Perform a symplectic integration for the spin or spin-lattice system. -:line +The {lattice} keyword defines if the spins are integrated on a lattice +of fixed atoms (lattice = no), or if atoms are moving (lattice = yes). -The {style} value defines if a serial of a parallel -algorithm has to be used for the integration. +By default (lattice = yes), a spin-lattice integration is performed. -The parallel algorithm uses a sectoring method as -described in . +The {integration/spin} fix applies a Suzuki-Trotter decomposition to +the equations of motion of the spin lattice system, following the scheme: + +:c,image(Eqs/fix_integration_spin_stdecomposition.jpg) + +according to the implementation reported in "(Omelyan)"_#Omelyan1. + +A sectoring enables this scheme for parallel calculations. +The implementation of this sectoring algorithm is reported in +"(Tranchida)"_#Tranchida1. :line @@ -49,17 +54,16 @@ section for more info on packages. [Related commands:] -"fix nve"_fix_nve.html, "pair spin"_pair_spin.html, -"compute spin"_compute_spin.html, "fix langevin spin"_fix_langevin_spin.html, - +"atom_style spin"_atom_style.html, "fix nve"_fix_nve.html [Default:] none :line -:link(Davidchack2) -[(Davidchack)] R.L Davidchack, T.E. Ouldridge, M.V. Tretyakov. J. Chem. Phys. 142, 144114 (2015). -:link(Miller2) -[(Miller)] T. F. Miller III, M. Eleftheriou, P. Pattnaik, A. Ndirango, G. J. Martyna, J. Chem. Phys., 116, 8649-8659 (2002). -:link(Dunweg3) -[(Dunweg)] B. Dunweg, W. Paul, Int. J. Mod. Phys. C, 2, 817-27 (1991). +:link(Omelyan1) +[(Omelyan)] I.P. Omelyan, I.M. Mryglod, R. Folk. Phys. Rev. Lett. +86(5), 898. (2001) + +:link(Tranchida1) +[(Tranchida)] J. Tranchida, S.J. Plimpton, P. Thibaudeau, A.P. Thompson. +arXiv preprint arXiv:1801.10233. (2018) diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt index 3b05467e06..71b305dd01 100644 --- a/doc/src/fix_langevin_spin.txt +++ b/doc/src/fix_langevin_spin.txt @@ -26,16 +26,22 @@ fix 2 all langevin/spin 300.0 0.01 0.0 21 :pre [Description:] -Apply a Langevin thermostat as described in "(Mayergoyz)"_#Mayergoyz1 -to the magnetic spins associated to the atoms. -Used with "fix integration spin"_fix_integration_spin.html, this -command performs Brownian dynamics (BD), apply a random torque -and a transverse dissipation to each spin: +Apply a Langevin thermostat as described in "(Mayergoyz)"_#Mayergoyz1 to the +magnetic spins associated to the atoms. +Used with "fix integration spin"_fix_integration_spin.html, this command performs +Brownian dynamics (BD). +A random torque and a transverse dissipation are applied to each spin i according to +the following stochastic differential equation: -Rand torque = -Transverse dmping = -D is proportional to sqrt(Kb T m / (hbar dt damp)) :pre +:c,image(Eqs/fix_langevin_spin_sLLG.jpg) +with lambda the transverse damping, and eta a random verctor. + +The components of eta are drawn from a Gaussian probability law. Their amplitude +is defined as a proportion of the temperature of the external thermostat T (in K +in metal units). + +More details about this implementation are reported in "(Tranchida)"_#Tranchida1. Note: The random # {seed} must be a positive integer. A Marsaglia random number generator is used. Each processor uses the input seed to @@ -59,7 +65,7 @@ This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] The {langevin/spin} fix is part of the SPIN package. -These styles are only enabled if LAMMPS was built with this package. +This style is only enabled if LAMMPS was built with this package. See the "Making LAMMPS"_Section_start.html#start_3 section for more info. The numerical integration has to be performed with {fix/integration/spin} @@ -70,22 +76,13 @@ when {langevin/spin} is enabled. "fix integration spin"_fix_integration_spin.html, "pair spin"_pair_spin.html -[Default:] - -The option defaults are angmom = no, omega = no, scale = 1.0 for all -types, tally = no, zero = no, gjf = no. +[Default:] none :line :link(Mayergoyz1) -Mayergoyz, Bertotti, and Serpico (2009). Elsevier (2009) +[(Mayergoyz)] I.D. Mayergoyz, G. Bertotti, C. Serpico (2009). Elsevier (2009) - - -:link(Schneider1) -[(Schneider)] Schneider and Stoll, Phys Rev B, 17, 1302 (1978). - -:link(Gronbech-Jensen) -[(Gronbech-Jensen)] Gronbech-Jensen and Farago, Mol Phys, 111, 983 -(2013); Gronbech-Jensen, Hayre, and Farago, Comp Phys Comm, -185, 524 (2014) +:link(Tranchida1) +[(Tranchida)] J. Tranchida, S.J. Plimpton, P. Thibaudeau, A.P. Thompson. +arXiv preprint arXiv:1801.10233. (2018) diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index 7331798088..95a9c98258 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -27,7 +27,7 @@ pair_coeff 1 2 exchange 6.0 -0.01575 0.0 1.965 :pre Style {pair/spin/exchange} computes the exchange interaction between pairs of magnetic spins: -:c,image(Eqs/pair_spin_exchange_interaction.pdf) +:c,image(Eqs/pair_spin_exchange_interaction.jpg) where si and sj are two neighboring magnetic spins of two particles, rij = ri - rj is the inter-atomic distance between the two particles, @@ -36,7 +36,7 @@ interaction. This function is defined as: -:c,image(Eqs/pair_spin_exchange_function.pdf) +:c,image(Eqs/pair_spin_exchange_function.jpg) where a, b and d are the three constant coefficients defined in the associated "pair_coeff" command. @@ -44,9 +44,19 @@ where a, b and d are the three constant coefficients defined in the associated The coefficients a, b, and c need to be fitted so that the function above matches with the value of the exchange interaction for the N neighbor shells taken into account. -Examles and more explanations about this function and its parametrization are reported +Examples and more explanations about this function and its parametrization are reported in "(Tranchida)"_#Tranchida1. +From this exchange interaction, each spin i will be submitted to a magnetic torque +omega and its associated atom to a force F, such as: + +:c,image(Eqs/pair_spin_exchange_forces.jpg) + +with h the Planck constant (in metal units). + +More details about the derivation of these torques/forces are reported in +"(Tranchida)"_#Tranchida1. + :line [Restrictions:] diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index 9862310533..b5b0247a35 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -98,7 +98,7 @@ FixIntegrationSpin::FixIntegrationSpin(LAMMPS *lmp, int narg, char **arg) : if (extra == SPIN && !atom->mumag_flag) error->all(FLERR,"Fix integration/spin requires spin attribute mumag"); - if (mpi_flag == 0 && nprocs_tmp == 1) + if (mpi_flag == 0 && nprocs_tmp > 1) error->all(FLERR,"Illegal fix/integration/spin command"); magpair_flag = 0; From 3d18f55155f72b91bf4b5b7e4edad15e0c2edbe4 Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 8 Feb 2018 11:15:01 -0700 Subject: [PATCH 071/675] commit JT 020818 - adding files for doc and reorg. --- .../fix_integration_spin_stdecomposition.jpg | Bin 0 -> 61028 bytes .../fix_integration_spin_stdecomposition.tex | 40 + doc/src/Eqs/fix_langevin_spin_sLLG.jpg | Bin 0 -> 10824 bytes doc/src/Eqs/fix_langevin_spin_sLLG.tex | 14 + doc/src/Eqs/force_spin_aniso.jpg | Bin 0 -> 8079 bytes doc/src/Eqs/force_spin_zeeman.jpg | Bin 0 -> 7483 bytes doc/src/Eqs/pair_spin_exchange_forces.jpg | Bin 0 -> 16283 bytes doc/src/Eqs/pair_spin_exchange_forces.tex | 14 + doc/src/Eqs/pair_spin_exchange_function.jpg | Bin 0 -> 13642 bytes .../Eqs/pair_spin_exchange_interaction.jpg | Bin 0 -> 7154 bytes doc/src/Eqs/pair_spin_me_forces.jpg | Bin 0 -> 15552 bytes doc/src/Eqs/pair_spin_me_forces.tex | 13 + doc/src/Eqs/pair_spin_me_interaction.jpg | Bin 0 -> 17288 bytes doc/src/Eqs/pair_spin_me_interaction.tex | 12 + doc/src/Eqs/pair_spin_soc_dmi_interaction.jpg | Bin 0 -> 8128 bytes doc/src/Eqs/pair_spin_soc_dmi_interaction.tex | 11 + doc/src/pair_spin_me.txt | 73 + doc/src/pair_spin_soc_dmi.txt | 82 + examples/SPIN/bfo/in.spin.bfo | 55 + .../SPIN/cobalt/Co_PurjaPun_2012.eam.alloy | 6006 +++++++++++++++++ examples/SPIN/cobalt/in.spin.cobalt | 59 + .../Co_PurjaPun_2012.eam.alloy | 6006 +++++++++++++++++ examples/SPIN/curie_temperature/compliance.py | 95 + examples/SPIN/curie_temperature/displace.mod | 142 + .../SPIN/curie_temperature/in.spin.cobalt | 59 + .../in.spin.curie_temperature | 204 + examples/SPIN/curie_temperature/init.mod | 55 + examples/SPIN/curie_temperature/potential.mod | 30 + examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy | 6006 +++++++++++++++++ examples/SPIN/dev/in.spin.cobalt | 125 + examples/SPIN/dev/in.spin.kagome | 126 + examples/SPIN/read_restart/in.spin.read_data | 88 + examples/SPIN/read_restart/in.spin.restart | 89 + examples/SPIN/skyrmion/in.spin.skyrmion | 55 + examples/SPIN/vmd/prepare_vmd.sh | 91 + examples/SPIN/vmd/vmd_nano.vmd | 79 + 36 files changed, 19629 insertions(+) create mode 100644 doc/src/Eqs/fix_integration_spin_stdecomposition.jpg create mode 100644 doc/src/Eqs/fix_integration_spin_stdecomposition.tex create mode 100644 doc/src/Eqs/fix_langevin_spin_sLLG.jpg create mode 100644 doc/src/Eqs/fix_langevin_spin_sLLG.tex create mode 100644 doc/src/Eqs/force_spin_aniso.jpg create mode 100644 doc/src/Eqs/force_spin_zeeman.jpg create mode 100644 doc/src/Eqs/pair_spin_exchange_forces.jpg create mode 100644 doc/src/Eqs/pair_spin_exchange_forces.tex create mode 100644 doc/src/Eqs/pair_spin_exchange_function.jpg create mode 100644 doc/src/Eqs/pair_spin_exchange_interaction.jpg create mode 100644 doc/src/Eqs/pair_spin_me_forces.jpg create mode 100644 doc/src/Eqs/pair_spin_me_forces.tex create mode 100644 doc/src/Eqs/pair_spin_me_interaction.jpg create mode 100644 doc/src/Eqs/pair_spin_me_interaction.tex create mode 100644 doc/src/Eqs/pair_spin_soc_dmi_interaction.jpg create mode 100644 doc/src/Eqs/pair_spin_soc_dmi_interaction.tex create mode 100644 doc/src/pair_spin_me.txt create mode 100644 doc/src/pair_spin_soc_dmi.txt create mode 100644 examples/SPIN/bfo/in.spin.bfo create mode 100644 examples/SPIN/cobalt/Co_PurjaPun_2012.eam.alloy create mode 100644 examples/SPIN/cobalt/in.spin.cobalt create mode 100644 examples/SPIN/curie_temperature/Co_PurjaPun_2012.eam.alloy create mode 100755 examples/SPIN/curie_temperature/compliance.py create mode 100644 examples/SPIN/curie_temperature/displace.mod create mode 100644 examples/SPIN/curie_temperature/in.spin.cobalt create mode 100644 examples/SPIN/curie_temperature/in.spin.curie_temperature create mode 100644 examples/SPIN/curie_temperature/init.mod create mode 100644 examples/SPIN/curie_temperature/potential.mod create mode 100644 examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy create mode 100644 examples/SPIN/dev/in.spin.cobalt create mode 100644 examples/SPIN/dev/in.spin.kagome create mode 100644 examples/SPIN/read_restart/in.spin.read_data create mode 100644 examples/SPIN/read_restart/in.spin.restart create mode 100644 examples/SPIN/skyrmion/in.spin.skyrmion create mode 100755 examples/SPIN/vmd/prepare_vmd.sh create mode 100644 examples/SPIN/vmd/vmd_nano.vmd diff --git a/doc/src/Eqs/fix_integration_spin_stdecomposition.jpg b/doc/src/Eqs/fix_integration_spin_stdecomposition.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c2a4d50eaf1456e56c03bcf41dd85830e9f41c7e GIT binary patch literal 61028 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] (v1) -- (s1); +\draw[line width=2pt, ->] (s1) -- (r); +\draw[line width=2pt, ->] (r) -- (s2); +\draw[line width=2pt, ->] (s2) -- (v2); + +%Spin +\node (s01) at (6,6.0) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] {$\bm{s}_0 \leftarrow \bm{s}_0+L_{s_0}.\Delta t/4$ }; +\node (sN1) at (6,4.5) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] {$\bm{s}_{\rm N-1}\leftarrow\bm{s}_{\rm N-1}+L_{s_{\rm N-1}}.\Delta t/4$}; +\node (sN) at (6,3.0) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] {$\bm{s}_{\rm N} \leftarrow \bm{s}_{\rm N}+L_{s_{\rm N}}.\Delta t/2$ }; +\node (sN2) at (6,1.5) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] {$\bm{s}_{\rm N-1}\leftarrow\bm{s}_{\rm N-1}+L_{s_{\rm N-1}}.\Delta t/4$}; +\node (s02) at (6,0.0) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] {$\bm{s}_0 \leftarrow \bm{s}_0+L_{s_0}.\Delta t/4$ }; + +\draw[line width=2pt,dashed, ->] (s01) -- (sN1); +\draw[line width=2pt, ->] (sN1) -- (sN); +\draw[line width=2pt, ->] (sN) -- (sN2); +\draw[line width=2pt,dashed, ->] (sN2) -- (s02); + +%from Global to Spin +\draw[line width=2pt, dashed, ->] (s1) -- (s01.west); +\draw[line width=2pt, dashed, ->] (s1) -- (s02.west); + +\end{tikzpicture} +\end{varwidth} +\end{document} diff --git a/doc/src/Eqs/fix_langevin_spin_sLLG.jpg b/doc/src/Eqs/fix_langevin_spin_sLLG.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a82c068fb7791b7678f85112f710b7de9534cfd7 GIT binary patch literal 10824 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 literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/force_spin_zeeman.jpg b/doc/src/Eqs/force_spin_zeeman.jpg new file mode 100644 index 0000000000000000000000000000000000000000..51081df0015e6203c0a85ffed743f0e93d5b1f4c GIT binary patch literal 7483 zcmbt(bx_>Rw(V~qxCe*9gAMK$U?514D9qr&36>zi5@cWq5^Qj{;K5yj>i{802<}dB z2^L^@`Od9+@7=oR{&l*mx~gTb-d(-Ade>fe(|5}Nxu%+i8UO-;fW*HQxSInW{nPu8 z%0D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 literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_spin_exchange_forces.jpg b/doc/src/Eqs/pair_spin_exchange_forces.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9033ba14e94b9a48e4bd70758f18e9b5f41adab6 GIT binary patch literal 16283 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 literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_spin_exchange_forces.tex b/doc/src/Eqs/pair_spin_exchange_forces.tex new file mode 100644 index 0000000000..088696d5ef --- /dev/null +++ b/doc/src/Eqs/pair_spin_exchange_forces.tex @@ -0,0 +1,14 @@ +\documentclass[preview]{standalone} +\usepackage{varwidth} +\usepackage[utf8x]{inputenc} +\usepackage{amsmath,amssymb,amsthm,bm} +\begin{document} +\begin{varwidth}{50in} + \begin{equation} + \vec{F}^{i} = \sum_{j}^{Neighbor} \frac{\partial {J} \left(r_{ij} \right)}{ + \partial r_{ij}} \left( \vec{s}_{i}\cdot \vec{s}_{j} \right) \vec{r}_{ij} + ~~{\rm and}~~ \vec{\omega}^{i} = \frac{1}{\hbar} \sum_{j}^{Neighbor} {J} + \left(r_{ij} \right)\,\vec{s}_{j} \nonumber + \end{equation} +\end{varwidth} +\end{document} diff --git a/doc/src/Eqs/pair_spin_exchange_function.jpg b/doc/src/Eqs/pair_spin_exchange_function.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c7e1769dcea5708d251ad494a49f3619574ed87e GIT binary patch literal 13642 zcmbt*bx<5%x9#BW?(PH&?(XjH5C{%IgS!O{4#6eC2bbV5xVysu!QJ(e@AutX-+T3{ z-XFK8s;j2Y^zNQHbN1S6?bUCKZ<_#gd1*Om00aaCAocwPcv}HT{C)So+WrRlUj_Jk z@>>@G10KKuaRCK^0f5ASfWm-y>jMx0AOKK*hXMby!6P8T!6L!D4+^3KAR!^3pdp~3 zAmAWi;Q#E~K7_W?0lVV|!RyQ(oFgBK8W0$m0x0IKs5(jnX zraQ#d?;EUs8LYi{B;Wqpcj}n?Y>2i0q_9<4b1nXtYMojXjX8aj08@zNN zzTy)`t?t(+BJDn)L`v{L_;dt_%IRh;)o=k-u?hnx$kkYdwn#tva2tTmx-+j{lGXwj zA4_pt;8G?6lt=u+^}BPy$jNA-vlG_PmYvRCqN#wqpee#sP?uK1L|v0mOT(33M@dmm z$yNuQ5$=15wSOhPvNn9UQv9Yd1m*pvZ6lLwqo&}O-&GVlEJGRadeT4K;~G<1=;whd zAl#**94*;E>FHeJ6v9OqR085$y`UhS(9UfXgegLH(wW(%e<`VD{abgGtrB~?$`VEQ1X;+du1_*E38_V zbvjspD%GQzit5HoE}r1Ln2Qn0o}=|q0TV|tr)9W9W@Z5^9Ic$bH$eP_9n;>}+Tyon zY>D3etUD3Jj_jFFHj^*xRI2{VA>R~jlND_jYD0Lt9n7U|4vO`A8@bP zSyNHdwNMDy&!x0=s;pD`9|>cYEN_=h?_@RyD%634)4i%YExZzK0=&DW9TNK5oXRv&mf z$zywp6wK&JQk+-~LzGHgj}Qo+YZPeFzSWz)3jI?kDj3VM<~)MkuUPQs3vt%Zvbrvs~b)M0W;p&TWIs}LRDt!1nAWH890$0o-3dit#IU~=W!@9 za;F&VPOp63Ok1hVF?W`Wo%N$Vlih~Unw4W$S(uu*fQiAER%hkaQu^N;r22XZGL^qc z5c9UTCMAcMC1*KBMTH|N7lqAOiV-&dD7G@mc zTC7qE8nS{WA@U?zBpo+5BOP-aEo9B_hq{y51k)bWi3w5&NbKy%N-7N;AX81n?-3q6 zN>VsQ&H0*qG7~yji-xy+1F>nt6Z&o19Uu4djbn$XNJsW4djEiP2fMKP#kGa{WPgRP z+-4oT0nq+DBfJ4{$C(FRdN%6c?|_gQhqEf#nOI&}PYpS+M%gHDZp{7Ui+Ubqd4fj% z&yT-$hQHN_;@b0y6YD9pwau9GYDu{Yxe${4Hr&sG(1kQ?VUWArB8#l61=ICbUaECx zGe{bwr=kkVDzObWU$+V44?e-KLGs~hg7L}9sg3nD5Qh0xkaSa=mNXQjwCdDaK3Qnv zcK+Xq_C4>0#J7+QRrppx)Vr}obWw2;BVHpeeE#z_psMd;c$YDhxWzbXrfV_7$w%y~ z)5j{qoXmX=Zn&_|a>`M62f>n2gP);l{uQQVW2hpeO1NIJCSn52xQYUe#Pm7qYd}FC z%5WxQCh>rAs>Z}(gp;J0loMKkp+gov`z^ebLwH;`&#AbAG`vIa-!T6|fejYI@naZhfk-Vk2e4*QhbajIP&*&20F(pP2DAmxr8`* zC1-pjS!Z_LJ->Ma)CdI}qX7uo&hvA(da2HzBvqo`0Mfx_Y=oDfIDc!`x+pm~su$ke zWQ3PfspePxB_hOWd-7ui0vJ^eI0EeQ^m5bYDVf2sM#3>sF8}C zmq@`tqAUfZ7=aZpi}RB+t7!m=KF0UOaMsWLp>()7a)oOYb%>%*@d)-tTC0v1atZ|9 zEkw!o8%8Jso|*;bMcg8aGNLI^_#HbZtHv65E1?O{D{1A#H^nIwshrw!IO&-!m?Ej+ZD=#T2 zkHT%OYGt-zv#^(5TwXpv6Z^ZuLgH&LaiFsqb%UFX5pMMAYC_7CIEX=3VIe6zh^@>r z2af}(RDE|^9)F5RxOama{4{%NKUDbG%gJoMSol$|E;z`ccISRV33#iT;1?CXlfi!ag(^Y071!UJ3;oF5Cv=18vzR$SiI4M>!F2Iifbv`_&O=GL8e`D_8F^{22)hzBpkIYC zjetgF1lP5$)+G5Hb4~+7w28U*!%&2`D?Eos88i?kDZj@`io;A*A1VPa?6)5W@WfP9 zWJ(#&S^TFR`ywQyPH0;<1RJmIU~l^b)s6-|p}037(t2U{4KRb6-W=XH-0GVp3BFh- zV}i6%D6uG+JnZ)nZo8#`!tAYVBaL<$HAMQs?@b2N&W)p6t*g~{Bb{6eq8+!IFwoOWn3w@-N-!Fb$a$8!4H9N$j7tWsj(={jdb{Y1_ze1&sevv~s%-!(w zVJ1N9#p!DGR%;f(AtHkY(vgE9AwSv&+Df!9Hh)b&RnN|ySFye(%*_o8cp1Z%u?bX! z+Rf21?&|ok{lwZg5)T`yuX*_E>#@t%Rk*0e2-zx6Cc4z&TQwWkFr3aB2A~X{Jw{jm zV@6eMUlVgt9Bgj=-$F?hjW__@mY^){Hni{@?TBsl6cD>gqn+sg22hEyh};U2A5C(p zs-U{1cmtF}alj)UmZo9o0!}%*f?z$c*bQNk7+y40dnOjVq>~Nyl%@U{S)%Sg4&gjT z=}Wm;5*JjRcS&Ir)Hc$G$VqCOAFqg*Dy9+wR@N7#vrK1Bqx(Wy7dPR?VX;nx~wgtPmnQ zBsPhGklIk{b~in2U6j{ga|Z*E&o! z`d9}vx9V!FJV4A-Y(TRqBySZ~!PZlFZwwg~8~pcC+Zu8{!g_k5d9Q)tZ5Y;{CZXZ^iOUpZqbB$vPoJ(bXGTg1RQ2Gh({4Q+mXyyL4fttU2# z8rX}pj=rED!-NIri5Hd1NEU9HQCQs3 zgwxWbarFilm=~r@JHpG!$vRT^mKBf{ltr*i@9j++>L0f513xJz*AiKHdKU4%4rp1# zgCpaN4O{Ux?}wc`jW{FL9GLEZiK;+5^pkvV{{6e*lb>X}!iaDEXB;at>p2>bS6g*{ zvPrFb=Zs0-GjxgLmcKlXE+n|b2n=<TPQkC3xtu4#e=eXa;!2TQi>$H2D59%8k`jxrqYsHA~^1P()Z*YNgT9R z4$bzJd9kWq{|!KkEB72=^BY06k}+tcMmoMAv|<&zXQ37e=34~VHwlng`8d)Bfhj`N z9B(XzTVTK3ydor~N@lMOQO+I^i)`v+0A7A3V{)bNHy$x-iT*Tc_++oJ##SbeO5RKMMm8by=I(-97Z;)LOz(k2} z>_K$D0kZ6vnhJO4mJobHK$n0J(2+(5NMGK>Q&V}NI`(Ib$o^u}5~{HK9rI7yXdpbh zQRst60*6l2bI}mC9f7z;JoG-DHk-M747*MDkOcQA?r~*bv_FV^iY08bxbZ$2J+OFszxWe2Obnk&zXPtt*vRn3xlqzq zIT}f%t|Xr}X+c#ztCSuCq8yFl}8DIj5Z&XbMx_}Xr0)gFyhh50XZ~0bA4&ovK zo5$B&)5xm@ac*t3NR)PJe?`0LGs5b+i&k$UTu%{1+|%_pfT}vG#2X;&4bV&#R|q3= zLN-T5cDW0aTClOZH9!^`!zfcgFt-HT9x%uO2pD8e?f_X0o8A^FpH+w0hQ0xgHk#Iv zI_x=vFop*VDvQ5vA5lL(4;A&(oTTCT^TT%%1DRQVANMxg?%=-U`4{x`HmYgqt*YF= zGXY?S{n}dON|3C`a@=O&i|ZSp(Z2Vc*|s7Cgc**y)D0#pzc57Tk)6WYw7$+2`*0oH zO}_y)gViyjqn6h1Qj?mg{Z$6Yx$&z{5>6})ojgTSNIN~SnGo0^O?F9TA_FvZaD37-PjS4qrGso7Z@e9kTO`td;@Y zR-7^QavEY?x2W?yO$?QMWd|J^`awNA?KmoIHsdyXChqWR6yhBEcb-g!axT^&`SX8(&Qem@>=h};L>crN>(oX zVrU{zOPp~eRQ-co=5jqX4u8^YvZ@WK;fIUN+jC__Kr&`ZKLVAi=$>YTplkCamQL1i z{i2tMIIii2^92X|2KY|gX{Gn#cYwdStD&r46X>EptsO?TG^N<~5&(C*^kvW@3wj4C zgxVSw2xsl&4U-d=VC%D^s2SI%ycufaf4d4FENA+mc#O-vI8sluTU}MpvcRoWdLxNf zjGlV3k6&p__*j7CLcK@rWJyR1uQ8DZ+H_)6>G`nNKD5uti4BAF&SVtvHfdVsATi#* zXdgEKb+~hP!CU>gyvZxX6sm3Vi9pZS5@yHZhs=guuOOc{$lt$&4bcgu-EBMap;=iq zellsNiB5C8{Y%f*qYP67<((W*pWT|8p?5#p`kg4-+qnQj(u@kafN}2tmnJ^ta<(yRhOEbBwIHnz2 z+emIE*!rWLG2A{O(p1fY(;oun0vN`F`aY8UWN-X{Sjkk^S?NqHftdMY^Ye~Vh5r(7 z`4{-44X33!9Aw>8gr(3EcY_xmSt$vHW!MmAJz>sWYrhp@$8O>zQSqMx9lS&;V2lHr zER22~tOF5{CR?{ ztsx$x`0SRe$&7MgXD%uL+69_Y>u>-kVs@3r2x+^7P_DCXj|KkNKWvr5J?`2j2Zyq7 z1(O>VLOL|qHX@u6>ivrZ<$>@-ZVljkyUuIUK`Hc4$!rUKuzc}et%OiYhT zL-10PTr;|xq3|(;&F!m)34@1yO2)>VQTxM2!pE?e1dCKd(!=9xuz14U8aP$mp^1Z} z=M{PJd56BsP8$$z8(?dzl=2+qHR9B!Q{@PmeGq%J<(~5hw(rt&l^Kz8JSbHNXVaLL z#pb~7?vs10qih*_ie3*9Ga(N0@9Oon`NhCOOuQ^ma(%C%g?sdqq^&x`le@*g#~SR; zuG|Mdf8GwvHgfmSlh75D!!3y9Y}ch_^kIA#2RVgpFl|I!Y0clI1Vd>?T}Bxr+U!u9 z?>^g{{}w9`Pi-qH<*VweQfQI)S1y|FJX%90Z9a-efw?w%QQUedFGyI#MwN9fsY1Tc zd00r^5!R9nw+$cxOPR*EFJh7gD4Q%ZNH-~6(zIoKI25WW68IXqF~4#Jb_Fe73&~Am zg@h=Q*ls$JnE?n$nl3pG2D(03b{J!v0V7vKVbU4vKyQGTiaaj53`yPVt9|n`H~Wxn zZQ13%S_#o5lGI>sNrf%^PWR~erzBd`^%!RSHS9%3wLP!X6V^~mWKZ)NT*fyokJ#Dl zzaxn~&=uTR5QC2&*PH}ftRqpo$~e$$pofcOLgzF6YmZ0wr50G>Qvqa|Rmvjhsbevn zS)MW&4DmK335nWxu4tZl15Cmay#Y?<-0~s`FvdSCna&K)-U@;DM6Fw3VXHT}uM98n zS__IL!I3l&#NR+{Qwp{}#*sr65|G>z9+pxl=}{9hH;?(sn9mk8}P9)*HMl< z9nAb>EG=YYWCxKX5C$PbUmn)5uoV|rPX^(><~mi|x?<(3pv#f0|LBR<@zZX-)C&aC zztC&DdL9XWm)-yxIxHk=_(CE^m-CA05@Wpq@C5d@^c9}nv((0Jt++qv=ycYT%rlX4 z9$r!xvUExJf)m6|n&A#uoU}^R?QTK%*f+Qy<{sMTdGZ^}sDX=Hbjv5)1`3ZYSH2Cm z8i2t!z=FK*{rRpbT6*FVhL`%J%p9&TV<*n3P$Z{Yv&ykW0+XGvWp&Ksi`jQ#pfVFj zA%~`*g2jNl+e?bSXYR#CAp@)H2pt>?+hV0&tg1O@olmiZwWl`2o*qQ>8=wH!fD}T0 z{oc*mT~J|59;=gCd659Nx`rwE<`YTj=OpS9?@NDGpvuF-H}hTv`UsW_e$N_)QPb7C zS+C64f3Ud0eBR^babn66RLzodWql&IpGy1&5C}-S+UlCz&%F$WetZWl>E6$go_B3w zuC+mN+lZ6g2DrecoiPNHtdACQM(`P!$J(fvB%lq95@4oSLyO5Y-b-FL8C`aS1%%G( zM=I{jYZa_7j)6$=$$^HY!#TfV z10c}2UK04@d)nMhWa8)o0u440FdoSjT*H`-3A3`uKHa0${uw^1W6XF1n5z6`3z}$j zf*|Vqo@S&I5nc726Ky=A3z`uagfr}=&dEtYEy4FrOv}p z2GPO_H<(J@!=&tfUdb{L2x9b0XpwCEa*PB{(XXeypBK;jhNbSx%(t1#3>vi94NF?@ zRjg^7omEr)@RVLE3DmpsR1fxm>)DAz2Qjy-wI5UwZxpmFH7BFFR(UFS>7a3#B97*5 zi_m6DlytJrroRE)bM9;207@8fPKgoq7ps*1VpOXPxE1)8q#`?{BDGTU-A20FiOc1v zNOsVQ41!q&N0#g`FAa_w0grHjWUtJF)el;EwYO$>!p|jJEJ_zn30{JmWWzklPQ5Ms z9*r1an`~S$GkS)e#!K={?>p$mP8XnP#~{1>(`PxVIRa(p!GQy5N%PQ3yFo3F>+Y8R z|4k8u9TJ|qCbNn$27q`29MiN|#6N%8B^8-{17vz%(x3zB2f}M7CW=qFf;$*bYQu5B zv~_UEP9g?_Ah=WL#yh80sN4&?&{EUq-)<=BqpMuchL~>v6fgJCOFQ_3XUsEVO~xSh z0=eiZwx8I+21r*yG_(wvI-tieM=5nf&so5ONNQ#F>W)L z7PK>!F9W5T=FLCfSEm@Gg*goYr7kkJSgbieu$ns%`sm5V`#D-5WyV zRcDhvt##0Z5Qk1g_^3%6$6KSZ)l?@oOp%Jc@P&+uimViKb-Cl{ofDzvq?Hqxf1YP8 zT`ESpqL`bp>$6=XtrBP>23BI2-xJ_In_W2}kS7}}Z1VsuW|BO{$3As7AUeMOkyS^# zKL2C#&dJK(6%a?#fS1N#lPzr~SH(EnjZ|w^CX*Z_CYYD96U?-8Go;ub{GQCQ+QYRm zf1;et@N9L&!q> zbt9us9f@hDeEOp`(jnEga&T7T#ZtRVt>>FtM-oR874bJMXH!i{IxFa4dnEqJQ4AFl z;x@MQ_PI3_ollP&kD(TiWkNQeH`988BHCZLV&J-95rwkzFKAada?qs}G^L?2gATqu64!6S{RarTiM5u+e*rJ zoW8I~WVX4?<$dfZa4~)=27VO-zpMZ~k2>ZqU*SA~FK8L< zxB;2%A20rr)S!j*=Bw(R9 zKLtr1UiixkkqUXq&3zMz?lx;aL@IXzTpa@uG?;k+8s6HXc zXhL(dkmlv|%FL$xB=YGBSbd2)w<=J5+9|L(|IGFa)i-@tJHzGn)jZI(FK~S=cla@j zo+ja&yY7l^boAETqVd#%WWr(X6T!!b+a8lXX4hV&mCV-N&0i&Z!`sM@F$@b(5XC1@ zV(EBPGqbrKuXF&frUZXg7f9)t)3vh(FOm2*R|A^o(oK&TR@#SvxL2GdVbeFjzIR08 zo!=SRF^^g439Pg8aEwsO>Tg%RWI90`OTakCCBeO%F{hvPeb+;&tzE2xrZ(-V{j&Up zU=8Cb(-RpZH+#)*1AL;K*_rSu9kp`B({I#07)Tw%f`*cN(bRtkISh%GQ@AjBrmZg4hB1)psA$11^!o zM9wW@VzIy`%OYX26ADj-J$`8~d(G(`3P;r}=Nr$ura8C%6Mw8sc1X&bJx$j9J-aLK z&2$OMn^Jkp$6(;d*4JDgTs|c814Td>1@~ z1x$dTp|;79IpD-FLlg6Bqnm%*jS&PrFHx5aE150Wg5WAG6}1H^kG>=h_iz#2Hv%oD~iifzo#*CpVuXhc`4yLw+D5m zJL{h6WOOE||MLe0khL57m8N%oKQLtUp%Nsc1yU`L=IDRrNm6%WyIsNERqlATB<&_Q ziGP3s_^*dN$Z64izR#IIYn(po2d*Op^pC@M{pk5q!>s_8W_X-iZn$(pQ9;*_so5X8L+)>wuAqk)?-eD z&OonpyD%rHoZc!ECwKwXo3ATZ#zW_~zFDAWx3>5@;}?C*fY^MFJQnWz2N-@rawKk~ z9%NN4c2wq)T4F{lMq&xTOu{$Jcth!bI=HAtMq^w>vW;9G?3Ud*MCQr^rwg)5FEGw- zsJe`J{b<{lhW-J=#49O1<=}w9p z;}sdbu-fC(qlHiiE?YVCwnBo$uNI`1bkZ!0gDg&rx@k{0;|&l3He`82U%yI{eetHS zXTL_NVt6S%>@WQ-6mYs>68;o3`zmudVSB&pRO4s6M>gUYu={(X*SGY6EY4&7?kRV8 z@(T)#v*8wkY8p+CZ(x2LTpuG5!vpVC&Ouh@5#hxheVLLPgRsyJey*;QmZDvDu2$9; zRob0|W-yVC>;NQCEiZ=ara6=md|vwkV~XLt0*d-t>z)u6wFe==C6WNMBwf5tIc(U_ z2CXBMj@o(gzh zRV&TOr$9ei3w)0=ifX<|w1VpG6ESYg3f}nR`~(p|;hC1c(S$7ENtFZ@A|Dj^Z8fIb zVdMbp9J5HGK=TDXYMABQ5p70$K?ql*;R^e6P?k%4_u$7r1go7c$se(2iJE;jdj-)X z66~9d9^6xgl|sjD^axE@rL1wcr8!FD9-GD@;C7`sOABoIWThh$q(4~2#+)C8EaLBx zDJ4SiJjlMDc$+=>xf(9qY9>^PTKlt@5WWG@pWzy9zz$xpoKRl7Dia@4jteHY`EzL_ zB*=LMntZP=A@qk5Xys7@?x0KSRs>x@H_k7Nhzjg{q=Z1eO0`>4FmDOO)_WaRNb`td(PqhaNHfJ zAgkC1f4+na##-eP?FqwD9r+?EG4_4Y?d!@alt?Py#PihihY0z#EGl9-{KA;CLcr;? zJ#`eEtjxvp%^#k`H^69SaiIa(y`uHScBcYo#^*nq^cvXCn^?@hL$6VO52jg|@`bd; zzKg=T(X>SLnZO2y-!2|A*`OMGol-Ns`KrXA%IWT+d7Zo{i7M*&CiW{DtUD_0q`ncJ z9mKk1WwsVBx1w((kgNU49q$T|Ok10xF0lkrfJf^vSJ%z>_#aKVH3~(MC6{;o86}`4 z`(1uc(Elqxzau-yPWfdaLU-%n)>iy=&cNp#*=L~sKpG`Rr|M04SSL#^`tuBtBjDGZ zIv*CU+TTvZkoJDYUV)$P0l0xfOT9Zh2l#nKQ2aKFtv)?6$MED>6n)uRfJg_&&z|TR zF_nC%{1P+(yZ!p$e>aqMfq4k_u_*^P6Kw{qU}ouIqnUih3doA^Pyt5}@=>1mdHnLj zo!3R1&vI;94Yj!8>Y*&St#vx3?~;zy9IHwF8q`nQSPNTifG3Vp)y8NiUR%Kzs39*T zDM=7KxH>Vx#kw;3%dASSCIn3?#bPHCIZa3Uy-D5zD`)v&vF_87A3@RV`CWIoec-V6 zBFsg@sxq_WXKiEpLzPOo@#ls-UB+Uc5lSG6@D)HlbAW}QZXUV0_b^2X7oBU8X={sJ z=-#~0gZZYt-B-F=It=n>6Bre3n41#@rerBZ2cRk4YH90{buB*kv4R|KEcqQ7-Yc}f zSR0Z1j61VmiAo;VYD4F!_~InoFpbDAqs1^`d?WcT+_q>-`08b z(oIK41!D%=d&$S_3&+f%zo*ve%gcR@>uIBGKK}iqU28^zaUuEaGev?#+3)r^c?Hr- zE*F$9WEWOjm5d6RQO7Y4%7NduQSlYTYY=*GkmCmL)wn zS$@%T^P8bm&y7&PbRD?gDIbU6wJiGga^*M(c%YL5@9AFu+Xng(DheEu?ex+|&=b-C zxR6Tw$aKC69QgS7@J-aNvm>Z0#)HSJr;ZuWW0#RGN&o+M0F4i8OjAbSn<%K1C7WYv^{=<1i%F74JU3H7~ z?sSB>P&cdqzy2Yuz)i6q$XN*AQ-lnA$@CZpcyLb7apwK4>-sy6rY~Ek!~nQXpuxGOQ6har#5OW z@S|f1LeMo-w^DBG@Q~Ul9uqdA9tGCM|B%)_wu(QL&Baw%_-lf1;?AqE1&37tO&lY- zR;PvbB#!M(`iy4sjlDD#S+qTFg9hf}L?adsQmqF<0#>??!}WrCVtB;&!%0ckTAT0M zQ(mn@!ksAERpD(p{Tp$?tRN=IKAW~7oUj&{P8+ha>grR^#zs%9SCQemnk*hqf91_D z|MIW?&rTY7vX67##{wzT~--Tj95U@^GXhIZQgDJYYr6NSXQv0XYR-~_8xYe@oj{R5(N?!(XbtR_5u;dUuJF;+W5 zlny<9WN29TZYPEI5-QYKKrTkom&7H)gr}{Z0pB^IZe~{BcaJlLMEScs;%k&;T|mY3^4+F1i-1@N&nn)|lqOH?KQ_p5MpCUy`i=XIj4Yt% z5YTh*UdO1vQl;k4FL$_@p+jQ$=#u#2Vyv^^Qgg)qyezqxzl{8u(>;3mg3$d9P_KLd z$7H9F-T^DnN$pEF7D=UxdH)SN0~_o&QK#*6+7njWGE1;EJSw}>f;2h=M}<$DO*V2E zTiAnELOLFmpeLl+p|=Hv_>scOR(miVi6z8zF&>|C0O_Z-37uM<96`7}(`Z!3aszx5 zHB7K7X~4SsfGAbluy-pN_nUU#*3*47QlUpsOWye*QFLdg00U&KVsQ`Zf=k+2U6>GDW zx1~uX%~07l(JXdhF_QN-I`_Q#e%$X6rL9swsuIlnB=Lfz4_`>3U}_AAz4k%qqbB|5 z6F4T(uf;iIV?TBbuo_*~Vs+W0^pz-eC+*sQ25PP3UF+(85vwXKDXl6%LMnLwa8%S3 zbmt@|29yZfK2`!U_n@Mn`REDM8P0R}@})_OZVQB(M#_0CnNEl0yA8A{0JplVk)wzYP zsM!MA(m+3r+Hm@YqrNzWu8|&ri(=^DApehjnAb>&@DzBhJv@-aW#%=-TR#$X#AfEB zHxifLl_x85sTjhVIU@E@D9MMbOICxdIaC!Z=F(0=of>bGJ*`*((Uo)2^^`OMoE9&9 z!Z@I_y5okSPQ&Eyso@*!vCkd)d<;9-E>l46*3kSkcKxdAxGntD?#KLlFj1`_e?=hf z+tEitZ!rN>Knqn$;zCK-!uOPJrjIhWW0qKuNiJJNrd7xmV9ylSSIcyQyQJa%SC;r) zJaEXjBG5o~*-8tQ4)tWcfgjhi6-NA0*s_up8&Sm^H_>;i7%#?VGfCMBc|N>h>shtC zmqSny*V8)>LIvYvq3e6orNnBe46gneX@oE{XrgrlvA}&*rAZ`HisTlg>>ZBJqDEv6 z(2t*sjGu)$t5b4h6%;hsm(<`j#8D+~LK2zeBnXm?!?wg2ZXf_K= zs8^QC4a@4Y~NK>n$7EQe|DUPf@A&$An79%wUhpk<1~1eDc+q%yGOqIdL!KM~yo(k0>6w-be&xyFO`mNFZgPQBXy?|Z zq9$uJDGx($ctqbJtr;wPszNzoNmW7BcTJyM%=ZU#l3}Yjbys#^!}~1Xjb8$7M%vU? eI!)9(nAQf%%4r?ABL5HH`F|IB?{?X@rT+rq4}Z1* literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_spin_exchange_interaction.jpg b/doc/src/Eqs/pair_spin_exchange_interaction.jpg new file mode 100644 index 0000000000000000000000000000000000000000..863c31f13a209b3689c42d00bd4f5018c1097f0c GIT binary patch literal 7154 zcmbt(bx<74llH>mzQE!Z+=F|vI0Oh5JOp=l2)0;oSX@GoU_paB3BK6k5-hld0KuK* z%X@d9)OWu>?&^A~x@vl+ySlo%>Y0A#Y2j%dK%}DhN)dp9f&$3+y8uti0J(p5|0DS) z$p0w7Kh96x01y^H8bua}0s^3dP=Fwmr+xtS|49z;zXb~$69)qq{qNxmA^<8X3J?fH zMMFi$1OB~$fr*ZV1^{BCg2_-w$#E!1C|OvEMXA_D#0;3(IECdE^^EMx$``Wd_x`$* z{w>1)C;wPM|Jk|(zyqTEO$rDCKmgaL1$I;zq5oP*Jv ty|5k|K-W0k(N*2;OA?m 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 literal 0 HcmV?d00001 diff --git a/doc/src/Eqs/pair_spin_me_forces.jpg b/doc/src/Eqs/pair_spin_me_forces.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c09df1d20c85f8b092e8786d03b92bf743717bc7 GIT binary patch literal 15552 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 z%0A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 YS*5UjlbrtEm688y>;1${FILE} <] [resolution ] [radius ] [filled ]"} + # defaults + set scale 2.0 + set res 50 + set radius 0.1 + set filled yes + + if {[llength \$args] < 3} { + error "wrong # args: should be \$usage" + } + set mol [lindex \$args 0] + set center [lindex \$args 1] + set vector [lindex \$args 2] + if {[llength \$center] != 3 || [llength \$vector] != 3} { + error "wrong type of args: should be \$usage" + } + + foreach {flag value} [lrange \$args 3 end] { + switch -glob \$flag { + scale {set scale \$value} + res* {set res \$value} + rad* {set radius \$value} + fill* {set filled \$value} + default {error "unknown option '\$flag': should be \$usage" } + } + } + + set vechalf [vecscale [expr \$scale * 0.5] \$vector] + return [list \\ + [graphics \$mol color yellow]\\ + [graphics \$mol cylinder [vecsub \$center \$vechalf]\\ + [vecadd \$center [vecscale 0.7 \$vechalf]] \\ + radius \$radius resolution \$res filled \$filled] \\ + [graphics \$mol color orange]\\ + [graphics \$mol cone [vecadd \$center [vecscale 0.6 \$vechalf]] \\ + [vecadd \$center \$vechalf] radius [expr \$radius * 2.5] \\ + resolution \$res]] +} + +proc vmd_draw_spin {args} { + global molid + graphics \$molid delete all + set frame [molinfo \$molid get frame] + set natoms [molinfo \$molid get numatoms] + for {set i 0} {\$i < \$natoms} {incr i} { + set sel [atomselect top "index \$i"] + set coords [lindex [\$sel get {x y z}] \$molid] + set velocities [lindex [\$sel get {vx vy vz}] \$molid] + draw vector \$coords \$velocities + set uvx [lindex [\$sel get {vx}] \$molid] + set uvy [lindex [\$sel get {vy}] \$molid] + set uvz [lindex [\$sel get {vz}] \$molid] + \$sel set user [vecadd [vecadd [vecscale \$uvy \$uvy] [vecscale \$uvz \$uvz] ] [vecscale \$uvx \$uvx]] + \$sel set user \$uvy + #draw vector \$coords {0.0 uvy 0.0} + } + #pbc box -color 3 +} + +proc enable_trace {} { + global vmd_frame + trace variable vmd_frame([molinfo top]) w vmd_draw_spin +} + +set molid [mol addfile {$1} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] +scale by 0.5 +animate style Loop +enable_trace +EOF +echo "$FILE is ready..." diff --git a/examples/SPIN/vmd/vmd_nano.vmd b/examples/SPIN/vmd/vmd_nano.vmd new file mode 100644 index 0000000000..f9e3454270 --- /dev/null +++ b/examples/SPIN/vmd/vmd_nano.vmd @@ -0,0 +1,79 @@ +proc vmd_draw_arrow {mol start end} { + set middle [vecadd $start [vecscale 0.9 [vecsub $end $start]]] + graphics $mol cylinder $start $middle radius 0.05 + graphics $mol cone $middle $end radius 0.01 color 3 +} + +proc vmd_draw_vector {args} { + set usage {"draw vector {x1 y1 z1} {x2 y2 z2} [scale ] [resolution ] [radius ] [filled ]"} + # defaults + set scale 2.0 + set res 50 + set radius 0.1 + set filled yes + + if {[llength $args] < 3} { + error "wrong # args: should be $usage" + } + set mol [lindex $args 0] + set center [lindex $args 1] + set vector [lindex $args 2] + if {[llength $center] != 3 || [llength $vector] != 3} { + error "wrong type of args: should be $usage" + } + + foreach {flag value} [lrange $args 3 end] { + switch -glob $flag { + scale {set scale $value} + res* {set res $value} + rad* {set radius $value} + fill* {set filled $value} + default {error "unknown option '$flag': should be $usage" } + } + } + + set vechalf [vecscale [expr $scale * 0.5] $vector] + return [list \ + [graphics $mol color yellow]\ + [graphics $mol cylinder [vecsub $center $vechalf]\ + [vecadd $center [vecscale 0.7 $vechalf]] \ + radius $radius resolution $res filled $filled] \ + [graphics $mol color orange]\ + [graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \ + [vecadd $center $vechalf] radius [expr $radius * 2.5] \ + resolution $res]] +} + +proc vmd_draw_spin {args} { + global molid + graphics $molid delete all + set frame [molinfo $molid get frame] + set natoms [molinfo $molid get numatoms] + for {set i 0} {$i < $natoms} {incr i} { + set sel [atomselect top "index $i"] +# set sel [atomselect top "index 1200"] + set coords [lindex [$sel get {x y z}] $molid] + set velocities [lindex [$sel get {vx vy vz}] $molid] + draw vector $coords $velocities + set uvx [lindex [$sel get {vx}] $molid] + set uvy [lindex [$sel get {vy}] $molid] + set uvz [lindex [$sel get {vz}] $molid] + $sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]] + $sel set user $uvy + #draw vector $coords {0.0 uvy 0.0} + } + #pbc box -color 3 +} + +proc enable_trace {} { + global vmd_frame + trace variable vmd_frame([molinfo top]) w vmd_draw_spin + } + +set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] +scale by 0.5 +animate style Loop +enable_trace + + + From b422480002bdb7d7f39a726f040d32c494d24c94 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 13 Feb 2018 07:23:48 -0700 Subject: [PATCH 072/675] Commit JT 021318 --- doc/src/fix_langevin_spin.txt | 18 +- examples/SPIN/bfo/in.spin.bfo | 66 +- examples/SPIN/cobalt/in.spin.cobalt | 4 +- .../SPIN/curie_temperature/in.spin.cobalt | 2 +- examples/SPIN/dev/in.spin.cobalt | 23 +- examples/SPIN/iron/Fe_Mishin2006.eam.alloy | 15009 ++++++++ examples/SPIN/iron/fe_dd.dat | 19 + examples/SPIN/iron/in.spin.iron | 59 + examples/SPIN/nickel/Ni99.eam.alloy | 30006 ++++++++++++++++ examples/SPIN/nickel/in.spin.nickel | 59 + examples/SPIN/read_restart/in.spin.read_data | 2 +- examples/SPIN/skyrmion/in.spin.skyrmion | 92 +- src/SPIN/fix_langevin_spin.cpp | 16 +- src/SPIN/fix_langevin_spin.h | 2 +- 14 files changed, 45281 insertions(+), 96 deletions(-) create mode 100644 examples/SPIN/iron/Fe_Mishin2006.eam.alloy create mode 100644 examples/SPIN/iron/fe_dd.dat create mode 100644 examples/SPIN/iron/in.spin.iron create mode 100644 examples/SPIN/nickel/Ni99.eam.alloy create mode 100644 examples/SPIN/nickel/in.spin.nickel diff --git a/doc/src/fix_langevin_spin.txt b/doc/src/fix_langevin_spin.txt index 71b305dd01..6216ed33ca 100644 --- a/doc/src/fix_langevin_spin.txt +++ b/doc/src/fix_langevin_spin.txt @@ -16,13 +16,12 @@ ID, group-ID are documented in "fix"_fix.html command :ulb,l langevin/spin = style name of this fix command :l T = desired temperature of the bath (temperature units, K in metal units) :l Tdamp = transverse magnetic damping parameter (adim) :l -Ldamp = longitudinal magnetic damping parameter (adim) :l seed = random number seed to use for white noise (positive integer) :l :ule [Examples:] -fix 2 all langevin/spin 300.0 0.01 0.0 21 :pre +fix 2 all langevin/spin 300.0 0.01 21 :pre [Description:] @@ -36,6 +35,8 @@ the following stochastic differential equation: :c,image(Eqs/fix_langevin_spin_sLLG.jpg) with lambda the transverse damping, and eta a random verctor. +This equation is referred to as the stochastic Landau-Lifshitz-Gilbert (sLLG) +equation. The components of eta are drawn from a Gaussian probability law. Their amplitude is defined as a proportion of the temperature of the external thermostat T (in K @@ -43,6 +44,16 @@ in metal units). More details about this implementation are reported in "(Tranchida)"_#Tranchida1. +Note: due to the form of the sLLG equation, this fix has to be the last defined +magnetic fix before the integration/spin fix. As an example: + +fix 1 all force/spin zeeman 0.01 0.0 0.0 1.0 +fix 2 all langevin/spin 300.0 0.01 21 +fix 3 all integration/spin lattice yes :pre + +is correct, but defining a force/spin command after the langevin/spin command +would send an error message. + Note: The random # {seed} must be a positive integer. A Marsaglia random number generator is used. Each processor uses the input seed to generate its own unique seed and its own stream of random numbers. @@ -71,6 +82,9 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info. The numerical integration has to be performed with {fix/integration/spin} when {langevin/spin} is enabled. +This fix has to be the last defined magnetic fix before the integration fix +("fix integration spin"_fix_integration_spin.html). + [Related commands:] "fix integration spin"_fix_integration_spin.html, diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index a760bd9dc1..91dd8aac8c 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -1,55 +1,55 @@ -# sc iron atoms in bismuth oxide +# layer sc iron atoms (in the [001] plane) in bismuth oxide clear -units metal -atom_style spin +units metal +atom_style spin -dimension 3 -boundary p p p +dimension 3 +boundary p p f # check why? -atom_modify map array +atom_modify map array -lattice sc 3.96 -region box block 0.0 34.0 0.0 34.0 0.0 5.0 -create_box 1 box -create_atoms 1 box +lattice sc 3.96 +region box block 0.0 34.0 0.0 34.0 0.0 5.0 +create_box 1 box +create_atoms 1 box # setting mass, mag. moments, and interactions for bfo mass 1 1.0 -set group all spin/random 11 2.50 +set group all spin/random 11 2.50 -pair_style hybrid/overlay pair/spin/exchange 6.0 pair/spin/me 4.5 -pair_coeff * * pair/spin/exchange exchange 6.0 -0.01575 0.0 1.965 -pair_coeff * * pair/spin/me me 4.5 0.000109 1.0 1.0 1.0 +pair_style hybrid/overlay pair/spin/exchange 6.0 pair/spin/me 4.5 +pair_coeff * * pair/spin/exchange exchange 6.0 -0.01575 0.0 1.965 +#pair_coeff * * pair/spin/me me 4.5 0.000109 1.0 1.0 1.0 +pair_coeff * * pair/spin/me me 4.5 0.00109 1.0 1.0 1.0 -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 -fix 1 all force/spin anisotropy 0.0000035 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 1 all force/spin anisotropy 0.0000033 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.1 21 +fix 3 all integration/spin lattice no -fix 3 all integration/spin lattice no +timestep 0.0002 -timestep 0.0001 +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] -variable mag_force equal f_1 +variable magz equal c_out_mag[4] +variable magnorm equal c_out_mag[5] +variable emag equal c_out_mag[6] +variable tmag equal c_out_mag[7] +variable mag_force equal f_1 thermo_style custom step time v_magnorm v_emag temp etotal -thermo 10 +thermo 50 -#dump 1 all custom 100 dump_spin_BFO.lammpstrj type x y z spx spy spz +dump 1 all custom 100 dump_spin_BFO.lammpstrj type x y z spx spy spz -run 10000 +run 20000 diff --git a/examples/SPIN/cobalt/in.spin.cobalt b/examples/SPIN/cobalt/in.spin.cobalt index 2cb1f7d182..8d1ac3c557 100644 --- a/examples/SPIN/cobalt/in.spin.cobalt +++ b/examples/SPIN/cobalt/in.spin.cobalt @@ -31,8 +31,8 @@ pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 -fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 1 all force/spin zeeman 0.01 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 fix 3 all integration/spin lattice yes diff --git a/examples/SPIN/curie_temperature/in.spin.cobalt b/examples/SPIN/curie_temperature/in.spin.cobalt index 2cb1f7d182..09ac4abb0b 100644 --- a/examples/SPIN/curie_temperature/in.spin.cobalt +++ b/examples/SPIN/curie_temperature/in.spin.cobalt @@ -32,7 +32,7 @@ neighbor 0.1 bin neigh_modify every 10 check yes delay 20 fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.1 0.0 21 +fix 2 all langevin/spin 0.0 0.1 21 fix 3 all integration/spin lattice yes diff --git a/examples/SPIN/dev/in.spin.cobalt b/examples/SPIN/dev/in.spin.cobalt index 4b0d7c3e64..2ec13f2cef 100644 --- a/examples/SPIN/dev/in.spin.cobalt +++ b/examples/SPIN/dev/in.spin.cobalt @@ -48,10 +48,10 @@ velocity all create 200 4928459 rot yes dist gaussian #Magneto-mechanic interactions for bulk fcc Cobalt #pair_style pair/spin/exchange 4.0 #pair_style eam/alloy -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy ../examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy Co #pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co #pair_style pair/spin/exchange 4.0 @@ -67,7 +67,7 @@ pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 #pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 #type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 +pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 #pair_coeff * * pair/spin/soc/neel neel 4.0 0.0 0.864159 2.13731 #Define a skin distance, update neigh list every @@ -78,13 +78,13 @@ neigh_modify every 10 check yes delay 20 #Magnetic field fix #Type | Intensity (T or eV) | Direction -#fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 +fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 +fix 2 all langevin/spin 0.0 0.0 21 #Magnetic integration fix fix 3 all integration/spin lattice yes @@ -112,14 +112,15 @@ variable tmag equal c_out_mag[7] variable mag_force equal f_1 #variable test equal etotal-0.5*c_out_mag[6] -thermo 10 -thermo_style custom step time v_magnorm v_emag temp etotal +thermo 50 +#thermo_style custom step time v_magnorm v_tmag temp etotal +thermo_style custom step time pe ke v_emag etotal thermo_modify format float %20.15g #Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz +#dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz #Running the simulations for N timesteps -run 10 -#run 1000 +#run 10 +run 200000 diff --git a/examples/SPIN/iron/Fe_Mishin2006.eam.alloy b/examples/SPIN/iron/Fe_Mishin2006.eam.alloy new file mode 100644 index 0000000000..69231bb7ee --- /dev/null +++ b/examples/SPIN/iron/Fe_Mishin2006.eam.alloy @@ -0,0 +1,15009 @@ +comment 1 +comment 2 +Converted by Ganga P Purja Pun using C++ code on Mon Nov 3 10:48:17 2014 +1 Fe +5001 2.400000000000000e-03 5001 1.134673400048920e-03 5.673367000244601e+00 +26 5.584700000000000e+01 2.855300000000000e+00 BCC + 0.000000000000000e+00 + -2.338738741480766e-02 + -4.628214468925276e-02 + -6.912258036387915e-02 + -9.175603963501618e-02 + -1.141497214000000e-01 + -1.363388222824136e-01 + -1.583226111166723e-01 + -1.800965752913192e-01 + -2.016645989796093e-01 + -2.230289901000000e-01 + -2.441907391820846e-01 + -2.651515164004249e-01 + -2.859130554412839e-01 + -3.064769176965011e-01 + -3.268446844000000e-01 + -3.470179531091855e-01 + -3.669982968636285e-01 + -3.867872784635140e-01 + -4.063864535839295e-01 + -4.257973671999999e-01 + -4.450215551034667e-01 + -4.640605423684923e-01 + -4.829158454463851e-01 + -5.015889707095635e-01 + -5.200814146000000e-01 + -5.383946650297390e-01 + -5.565301991603658e-01 + -5.744894857268537e-01 + -5.922739837155686e-01 + -6.098851423000000e-01 + -6.273244022645037e-01 + -6.445931939756846e-01 + -6.616929394780281e-01 + -6.786250511352716e-01 + -6.953909318999999e-01 + -7.119919765952718e-01 + -7.284295696432279e-01 + -7.447050873484842e-01 + -7.608198966551055e-01 + -7.767753551999997e-01 + -7.925728126189590e-01 + -8.082136084644670e-01 + -8.236990743647939e-01 + -8.390305327768360e-01 + -8.542092970000001e-01 + -8.692366724924486e-01 + -8.841139549244775e-01 + -8.988424321942350e-01 + -9.134233831702263e-01 + -9.278580778000000e-01 + -9.421477783833053e-01 + -9.562937376266863e-01 + -9.702972006149804e-01 + -9.841594035897939e-01 + -9.978815741999999e-01 + -1.011464932626877e+00 + -1.024910689374227e+00 + -1.038220047492379e+00 + -1.051394201530088e+00 + -1.064434338000000e+00 + -1.077341636148692e+00 + -1.090117264995124e+00 + -1.102762386491716e+00 + -1.115278154872840e+00 + -1.127665716000000e+00 + -1.139926208397942e+00 + -1.152060761127338e+00 + -1.164070496370367e+00 + -1.175956528594255e+00 + -1.187719964000000e+00 + -1.199361901614307e+00 + -1.210883431375302e+00 + -1.222285636497208e+00 + -1.233569592577916e+00 + -1.244736367000000e+00 + -1.255787020138112e+00 + -1.266722603828963e+00 + -1.277544163022812e+00 + -1.288252734706093e+00 + -1.298849349000000e+00 + -1.309335029515858e+00 + -1.319710789766606e+00 + -1.329977637188551e+00 + -1.340136572985217e+00 + -1.350188590000000e+00 + -1.360134674013246e+00 + -1.369975802739515e+00 + -1.379712947700534e+00 + -1.389347073262624e+00 + -1.398879136000000e+00 + -1.408310086019347e+00 + -1.417640866058629e+00 + -1.426872412303706e+00 + -1.436005653062347e+00 + -1.445041510000000e+00 + -1.453980898788701e+00 + -1.462824726507764e+00 + -1.471573894410746e+00 + -1.480229297407323e+00 + -1.488791823000000e+00 + -1.497262352264216e+00 + -1.505641758273629e+00 + -1.513930908641532e+00 + -1.522130664940848e+00 + -1.530241881000000e+00 + -1.538265404312065e+00 + -1.546202075663511e+00 + -1.554052729949587e+00 + -1.561818194964572e+00 + -1.569499292000000e+00 + -1.577096836740392e+00 + -1.584611637631811e+00 + -1.592044497451960e+00 + -1.599396212413425e+00 + -1.606667572000000e+00 + -1.613859360067553e+00 + -1.620972353850301e+00 + -1.628007324820493e+00 + -1.634965037585305e+00 + -1.641846251000000e+00 + -1.648651718746855e+00 + -1.655382187120556e+00 + -1.662038397074428e+00 + -1.668621083574689e+00 + -1.675130975000000e+00 + -1.681568794320005e+00 + -1.687935258528783e+00 + -1.694231079461267e+00 + -1.700456962682860e+00 + -1.706613607000000e+00 + -1.712701705964896e+00 + -1.718721948142722e+00 + -1.724675016499694e+00 + -1.730561586828580e+00 + -1.736382330000000e+00 + -1.742137912457411e+00 + -1.747828994017656e+00 + -1.753456229026646e+00 + -1.759020265526974e+00 + -1.764521747000000e+00 + -1.769961312537754e+00 + -1.775339594027171e+00 + -1.780657218386706e+00 + -1.785914807192779e+00 + -1.791112977000000e+00 + -1.796252339747382e+00 + -1.801333500673453e+00 + -1.806357060360666e+00 + -1.811323614328498e+00 + -1.816233753000000e+00 + -1.821088062150410e+00 + -1.825887120985276e+00 + -1.830631504346673e+00 + -1.835321782397329e+00 + -1.839958520000000e+00 + -1.844542277375300e+00 + -1.849073608812209e+00 + -1.853553064572349e+00 + -1.857981190434394e+00 + -1.862358526000000e+00 + -1.866685606181999e+00 + -1.870962962067843e+00 + -1.875191119963197e+00 + -1.879370599902195e+00 + -1.883501918000000e+00 + -1.887585586736770e+00 + -1.891622112755978e+00 + -1.895611998485404e+00 + -1.899555741651499e+00 + -1.903453835000000e+00 + -1.907306767129976e+00 + -1.911115021853308e+00 + -1.914879078883785e+00 + -1.918599413067872e+00 + -1.922276495000000e+00 + -1.925910791456493e+00 + -1.929502763824010e+00 + -1.933052869645757e+00 + -1.936561562187136e+00 + -1.940029290000000e+00 + -1.943456497684402e+00 + -1.946843625242175e+00 + -1.950191109032846e+00 + -1.953499381145042e+00 + -1.956768869000000e+00 + -1.959999996258605e+00 + -1.963193182622893e+00 + -1.966348843806269e+00 + -1.969467390558660e+00 + -1.972549230000000e+00 + -1.975594766012145e+00 + -1.978604397775412e+00 + -1.981578520793180e+00 + -1.984517526364655e+00 + -1.987421802000000e+00 + -1.990291731861874e+00 + -1.993127695559656e+00 + -1.995930069364364e+00 + -1.998699225767272e+00 + -2.001435533000000e+00 + -2.004139355858378e+00 + -2.006811055538481e+00 + -2.009450989763890e+00 + -2.012059511961222e+00 + -2.014636972000000e+00 + -2.017183716742461e+00 + -2.019700089231340e+00 + -2.022186429001382e+00 + -2.024643071393187e+00 + -2.027070349000000e+00 + -2.029468591629637e+00 + -2.031838124095820e+00 + -2.034179268100215e+00 + -2.036492342201070e+00 + -2.038777662000000e+00 + -2.041035540156417e+00 + -2.043266284490031e+00 + -2.045470200083453e+00 + -2.047647589335177e+00 + -2.049798751000000e+00 + -2.051923980684690e+00 + -2.054023570214561e+00 + -2.056097808968247e+00 + -2.058146983649728e+00 + -2.060171377000000e+00 + -2.062171268551674e+00 + -2.064146934640815e+00 + -2.066098649159696e+00 + -2.068026683134947e+00 + -2.069931304000000e+00 + -2.071812776276246e+00 + -2.073671361471072e+00 + -2.075507318519566e+00 + -2.077320903301032e+00 + -2.079112369000000e+00 + -2.080881966139512e+00 + -2.082629940879466e+00 + -2.084356537486872e+00 + -2.086061998635378e+00 + -2.087746563000000e+00 + -2.089410466229110e+00 + -2.091053941828707e+00 + -2.092677220771137e+00 + -2.094280530723314e+00 + -2.095864097000000e+00 + -2.097428142794787e+00 + -2.098972888139794e+00 + -2.100498550462023e+00 + -2.102005344216306e+00 + -2.103493482000000e+00 + -2.104963174393948e+00 + -2.106414628045970e+00 + -2.107848047779690e+00 + -2.109263636820768e+00 + -2.110661595000000e+00 + -2.112042119471926e+00 + -2.113405405101743e+00 + -2.114751645122076e+00 + -2.116081030815763e+00 + -2.117393750000000e+00 + -2.118689987937912e+00 + -2.119969928191390e+00 + -2.121233752504371e+00 + -2.122481640223532e+00 + -2.123713768000000e+00 + -2.124930310308645e+00 + -2.126131439345980e+00 + -2.127317325650607e+00 + -2.128488137848567e+00 + -2.129644042000000e+00 + -2.130785202020548e+00 + -2.131911779449632e+00 + -2.133023934312029e+00 + -2.134121824962966e+00 + -2.135205607000000e+00 + -2.136275433910872e+00 + -2.137331457489147e+00 + -2.138373827747866e+00 + -2.139402692469194e+00 + -2.140418197999999e+00 + -2.141420489142081e+00 + -2.142409707722756e+00 + -2.143385994030927e+00 + -2.144349486926974e+00 + -2.145300323000000e+00 + -2.146238637076898e+00 + -2.147164562479522e+00 + -2.148078231051947e+00 + -2.148979772720135e+00 + -2.149869315000000e+00 + -2.150746983835218e+00 + -2.151612904662093e+00 + -2.152467200947815e+00 + -2.153309993218032e+00 + -2.154141401000000e+00 + -2.154961542883784e+00 + -2.155770535619624e+00 + -2.156568494253713e+00 + -2.157355531798206e+00 + -2.158131760000000e+00 + -2.158897289576013e+00 + -2.159652229917454e+00 + -2.160396688379106e+00 + -2.161130769707277e+00 + -2.161854579000000e+00 + -2.162568220747540e+00 + -2.163271795520776e+00 + -2.163965403104795e+00 + -2.164649143391419e+00 + -2.165323114000000e+00 + -2.165987410839904e+00 + -2.166642128874188e+00 + -2.167287362019562e+00 + -2.167923202786971e+00 + -2.168549742000000e+00 + -2.169167069289456e+00 + -2.169775273557456e+00 + -2.170374442741976e+00 + -2.170964663390078e+00 + -2.171546020000000e+00 + -2.172118595836383e+00 + -2.172682474202094e+00 + -2.173237737093693e+00 + -2.173784464448991e+00 + -2.174322736000000e+00 + -2.174852630794634e+00 + -2.175374225221640e+00 + -2.175887595177988e+00 + -2.176392816678372e+00 + -2.176889964000000e+00 + -2.177379110090651e+00 + -2.177860327096639e+00 + -2.178333686466943e+00 + -2.178799258747679e+00 + -2.179257113000000e+00 + -2.179707317299531e+00 + -2.180149939409128e+00 + -2.180585046165010e+00 + -2.181012703042297e+00 + -2.181432975000000e+00 + -2.181845926509731e+00 + -2.182251621108717e+00 + -2.182650121032542e+00 + -2.183041486916871e+00 + -2.183425780000000e+00 + -2.183803061402426e+00 + -2.184173389857596e+00 + -2.184536823542827e+00 + -2.184893420600431e+00 + -2.185243238000000e+00 + -2.185586332004080e+00 + -2.185922759056265e+00 + -2.186252574500474e+00 + -2.186575831916728e+00 + -2.186892585000000e+00 + -2.187202887393400e+00 + -2.187506791832633e+00 + -2.187804350256584e+00 + -2.188095613705712e+00 + -2.188380633000000e+00 + -2.188659458643119e+00 + -2.188932140238827e+00 + -2.189198726845117e+00 + -2.189459267002233e+00 + -2.189713809000000e+00 + -2.189962400732430e+00 + -2.190205089044370e+00 + -2.190441920581333e+00 + -2.190672942002169e+00 + -2.190898199000000e+00 + -2.191117736662499e+00 + -2.191331600149922e+00 + -2.191539834109547e+00 + -2.191742482380937e+00 + -2.191939589000000e+00 + -2.192131197889608e+00 + -2.192317351831708e+00 + -2.192498093290244e+00 + -2.192673464653123e+00 + -2.192843508000000e+00 + -2.193008265149897e+00 + -2.193167777657277e+00 + -2.193322086821774e+00 + -2.193471233640668e+00 + -2.193615259000000e+00 + -2.193754203483761e+00 + -2.193888106693908e+00 + -2.194017008313546e+00 + -2.194140948496115e+00 + -2.194259967000000e+00 + -2.194374103230534e+00 + -2.194483396307522e+00 + -2.194587885225862e+00 + -2.194687608881331e+00 + -2.194782606000000e+00 + -2.194872915200472e+00 + -2.194958575082935e+00 + -2.195039623893670e+00 + -2.195116099394696e+00 + -2.195188040000000e+00 + -2.195255484352944e+00 + -2.195318470219860e+00 + -2.195377035223315e+00 + -2.195431217130485e+00 + -2.195481054000000e+00 + -2.195526583926446e+00 + -2.195567844428364e+00 + -2.195604873029958e+00 + -2.195637707516086e+00 + -2.195666386000000e+00 + -2.195690946583878e+00 + -2.195711426545218e+00 + -2.195727863658885e+00 + -2.195740296673043e+00 + -2.195748763000000e+00 + -2.195753299607926e+00 + -2.195753945356280e+00 + -2.195750739132009e+00 + -2.195743719093693e+00 + -2.195732923000000e+00 + -2.195718388771941e+00 + -2.195700155840199e+00 + -2.195678263244660e+00 + -2.195652748934943e+00 + -2.195623652000000e+00 + -2.195591012099144e+00 + -2.195554867993407e+00 + -2.195515258985693e+00 + -2.195472225489285e+00 + -2.195425807000000e+00 + -2.195376042760528e+00 + -2.195322973614639e+00 + -2.195266640267298e+00 + -2.195207082686241e+00 + -2.195144342000000e+00 + -2.195078459809379e+00 + -2.195009476453377e+00 + -2.194937433066797e+00 + -2.194862372466152e+00 + -2.194784337000000e+00 + -2.194703368615792e+00 + -2.194619509257747e+00 + -2.194532801771278e+00 + -2.194443290305841e+00 + -2.194351018000000e+00 + -2.194256027737437e+00 + -2.194158364279782e+00 + -2.194058072250755e+00 + -2.193955195446114e+00 + -2.193849779000000e+00 + -2.193741868885436e+00 + -2.193631510785602e+00 + -2.193518750557477e+00 + -2.193403634464252e+00 + -2.193286209000000e+00 + -2.193166521091908e+00 + -2.193044618884907e+00 + -2.192920550384463e+00 + -2.192794362988794e+00 + -2.192666105000000e+00 + -2.192535825071375e+00 + -2.192403570783236e+00 + -2.192269389306454e+00 + -2.192133327558461e+00 + -2.191995432000000e+00 + -2.191855748732582e+00 + -2.191714323538803e+00 + -2.191571201647935e+00 + -2.191426427571225e+00 + -2.191280046000000e+00 + -2.191132101498374e+00 + -2.190982637495000e+00 + -2.190831697104933e+00 + -2.190679323369808e+00 + -2.190525559000000e+00 + -2.190370446239990e+00 + -2.190214026313205e+00 + -2.190056340263544e+00 + -2.189897429222788e+00 + -2.189737334000000e+00 + -2.189576094894156e+00 + -2.189413751026334e+00 + -2.189250341662785e+00 + -2.189085906605225e+00 + -2.188920484000000e+00 + -2.188754111167896e+00 + -2.188586826517446e+00 + -2.188418667831656e+00 + -2.188249671505532e+00 + -2.188079874000000e+00 + -2.187909311655257e+00 + -2.187738019850499e+00 + -2.187566033827133e+00 + -2.187393388939138e+00 + -2.187220120000000e+00 + -2.187046261198758e+00 + -2.186871845656608e+00 + -2.186696906557450e+00 + -2.186521477499284e+00 + -2.186345591000000e+00 + -2.186169278929348e+00 + -2.185992573469870e+00 + -2.185815507881449e+00 + -2.185638116930091e+00 + -2.185460435000000e+00 + -2.185282496723147e+00 + -2.185104339046128e+00 + -2.184925999471230e+00 + -2.184747515559985e+00 + -2.184568926000000e+00 + -2.184390270419004e+00 + -2.184211589307456e+00 + -2.184032923638580e+00 + -2.183854314918697e+00 + -2.183675806000000e+00 + -2.183497440664645e+00 + -2.183319263062145e+00 + -2.183141318226586e+00 + -2.182963652427783e+00 + -2.182786312000000e+00 + -2.182609343803448e+00 + -2.182432796909005e+00 + -2.182256720850984e+00 + -2.182081165100584e+00 + -2.181906180000000e+00 + -2.181731816772078e+00 + -2.181558127901617e+00 + -2.181385166690271e+00 + -2.181212987245827e+00 + -2.181041644000000e+00 + -2.180871191888493e+00 + -2.180701687214938e+00 + -2.180533187286951e+00 + -2.180365750436408e+00 + -2.180199435000000e+00 + -2.180034299706266e+00 + -2.179870405073628e+00 + -2.179707812476292e+00 + -2.179546583956951e+00 + -2.179386782000000e+00 + -2.179228469569652e+00 + -2.179071710572415e+00 + -2.178916570209873e+00 + -2.178763115274171e+00 + -2.178611412000000e+00 + -2.178461526719817e+00 + -2.178313527960817e+00 + -2.178167485170301e+00 + -2.178023468394170e+00 + -2.177881548000000e+00 + -2.177741794911888e+00 + -2.177604281585152e+00 + -2.177469081134519e+00 + -2.177336267165003e+00 + -2.177205914000000e+00 + -2.177078096781969e+00 + -2.176952892179310e+00 + -2.176830377266735e+00 + -2.176710629289710e+00 + -2.176593727000000e+00 + -2.176479750089725e+00 + -2.176368778170715e+00 + -2.176260892035270e+00 + -2.176156174290115e+00 + -2.176054707000000e+00 + -2.175956572480315e+00 + -2.175861855847520e+00 + -2.175770642395214e+00 + -2.175683016800304e+00 + -2.175599066000000e+00 + -2.175518878125867e+00 + -2.175442540126260e+00 + -2.175370140365612e+00 + -2.175301769822078e+00 + -2.175237519000000e+00 + -2.175177478422601e+00 + -2.175121740498959e+00 + -2.175070398200953e+00 + -2.175023544771637e+00 + -2.174981275000000e+00 + -2.174943684570890e+00 + -2.174910868831887e+00 + -2.174882924320826e+00 + -2.174859949548785e+00 + -2.174842043000000e+00 + -2.174829303331104e+00 + -2.174821830410927e+00 + -2.174819725228089e+00 + -2.174823090027552e+00 + -2.174832027000000e+00 + -2.174846638699704e+00 + -2.174867029559900e+00 + -2.174893304738549e+00 + -2.174925569834485e+00 + -2.174963931000000e+00 + -2.175008495084293e+00 + -2.175059370394289e+00 + -2.175116665887380e+00 + -2.175180491027200e+00 + -2.175250956000000e+00 + -2.175328171805043e+00 + -2.175412250937077e+00 + -2.175503306357684e+00 + -2.175601451271103e+00 + -2.175706800000000e+00 + -2.175819467765500e+00 + -2.175939570549688e+00 + -2.176067225041086e+00 + -2.176202548787411e+00 + -2.176345660000000e+00 + -2.176496677644949e+00 + -2.176655722183164e+00 + -2.176822914601843e+00 + -2.176998376191533e+00 + -2.177182229000000e+00 + -2.177374595921169e+00 + -2.177575601341799e+00 + -2.177785370087074e+00 + -2.178004027196875e+00 + -2.178231699000000e+00 + -2.178468512862275e+00 + -2.178714597011325e+00 + -2.178970080062299e+00 + -2.179235091002944e+00 + -2.179509760000000e+00 + -2.179794218272507e+00 + -2.180088598277346e+00 + -2.180393032665419e+00 + -2.180707654074028e+00 + -2.181032597000000e+00 + -2.181367997183408e+00 + -2.181713990526695e+00 + -2.182070713375897e+00 + -2.182438302803596e+00 + -2.182816897000000e+00 + -2.183206635150288e+00 + -2.183607657686531e+00 + -2.184020105275964e+00 + -2.184444118610974e+00 + -2.184879840000000e+00 + -2.185327412889597e+00 + -2.185786981109685e+00 + -2.186258689137973e+00 + -2.186742682377725e+00 + -2.187239107000000e+00 + -2.187748109862624e+00 + -2.188269838801850e+00 + -2.188804442677439e+00 + -2.189352071523296e+00 + -2.189912875000000e+00 + -2.190487003093955e+00 + -2.191074608322116e+00 + -2.191675843787203e+00 + -2.192290862610885e+00 + -2.192919819000000e+00 + -2.193562867915730e+00 + -2.194220164552147e+00 + -2.194891865404003e+00 + -2.195578128862665e+00 + -2.196279113000000e+00 + -2.196994976008069e+00 + -2.197725877814248e+00 + -2.198471979076637e+00 + -2.199233441010543e+00 + -2.200010426000000e+00 + -2.200803097224683e+00 + -2.201611618154960e+00 + -2.202436152922896e+00 + -2.203276866629103e+00 + -2.204133924999999e+00 + -2.205007494076377e+00 + -2.205897739759803e+00 + -2.206804828380775e+00 + -2.207728927012060e+00 + -2.208670203000000e+00 + -2.209628824019662e+00 + -2.210604958519273e+00 + -2.211598775212799e+00 + -2.212610442959744e+00 + -2.213640131000000e+00 + -2.214688008997179e+00 + -2.215754247358006e+00 + -2.216839016713686e+00 + -2.217942487809252e+00 + -2.219064832000000e+00 + -2.220206221175054e+00 + -2.221366827800435e+00 + -2.222546824259503e+00 + -2.223746382727115e+00 + -2.224965677000000e+00 + -2.226204881636015e+00 + -2.227464170011377e+00 + -2.228743716360184e+00 + -2.230043696636770e+00 + -2.231364286000000e+00 + -2.232705659360148e+00 + -2.234067993079961e+00 + -2.235451464138931e+00 + -2.236856249856844e+00 + -2.238282527000000e+00 + -2.239730472524265e+00 + -2.241200265638654e+00 + -2.242692085287406e+00 + -2.244206109271373e+00 + -2.245742517000000e+00 + -2.247301488882056e+00 + -2.248883204910052e+00 + -2.250487845315945e+00 + -2.252115590911750e+00 + -2.253766623000000e+00 + -2.255441123360801e+00 + -2.257139274542631e+00 + -2.258861259219423e+00 + -2.260607260005651e+00 + -2.262377460000000e+00 + -2.264172042724291e+00 + -2.265991192137124e+00 + -2.267835092970031e+00 + -2.269703930922391e+00 + -2.271597891000000e+00 + -2.273517158096056e+00 + -2.275461918662951e+00 + -2.277432359442962e+00 + -2.279428667085979e+00 + -2.281451029000000e+00 + -2.283499633104788e+00 + -2.285574667389452e+00 + -2.287676320195930e+00 + -2.289804780398682e+00 + -2.291960237000000e+00 + -2.294142879454985e+00 + -2.296352898805551e+00 + -2.298590485768695e+00 + -2.300855830078550e+00 + -2.303149122999999e+00 + -2.305470556795997e+00 + -2.307820323545887e+00 + -2.310198615647936e+00 + -2.312605626084681e+00 + -2.315041548000000e+00 + -2.317506574745174e+00 + -2.320000900224320e+00 + -2.322524719122656e+00 + -2.325078227061991e+00 + -2.327661619000000e+00 + -2.330275089774933e+00 + -2.332918835677479e+00 + -2.335593053485966e+00 + -2.338297940187764e+00 + -2.341033693000000e+00 + -2.343800509406319e+00 + -2.346598587410773e+00 + -2.349428125303093e+00 + -2.352289321686241e+00 + -2.355182376000000e+00 + -2.358107488272472e+00 + -2.361064858786305e+00 + -2.364054687769198e+00 + -2.367077175375671e+00 + -2.370132523000000e+00 + -2.373220932737141e+00 + -2.376342606269360e+00 + -2.379497745810629e+00 + -2.382686554578887e+00 + -2.385909236000000e+00 + -2.389165993580208e+00 + -2.392457030846979e+00 + -2.395782552198058e+00 + -2.399142763298191e+00 + -2.402537869000000e+00 + -2.405968074028050e+00 + -2.409433584975734e+00 + -2.412934608682329e+00 + -2.416471351683178e+00 + -2.420044020999999e+00 + -2.423652824137149e+00 + -2.427297969206864e+00 + -2.430979664728804e+00 + -2.434698119632543e+00 + -2.438453543000000e+00 + -2.442246144168148e+00 + -2.446076133195298e+00 + -2.449943720571852e+00 + -2.453849117184546e+00 + -2.457792534000000e+00 + -2.461774182279110e+00 + -2.465794274341647e+00 + -2.469853022790889e+00 + -2.473950640299041e+00 + -2.478087340000000e+00 + -2.482263335430129e+00 + -2.486478840559030e+00 + -2.490734069661931e+00 + -2.495029237377275e+00 + -2.499364559000000e+00 + -2.503740250274207e+00 + -2.508156527124766e+00 + -2.512613605692700e+00 + -2.517111702474631e+00 + -2.521651035000000e+00 + -2.526231821279088e+00 + -2.530854278665131e+00 + -2.535518625205626e+00 + -2.540225080261870e+00 + -2.544973863000000e+00 + -2.549765192573217e+00 + -2.554599288888442e+00 + -2.559476372494764e+00 + -2.564396664604125e+00 + -2.569360386000000e+00 + -2.574367757513646e+00 + -2.579419001423863e+00 + -2.584514340338642e+00 + -2.589653996851589e+00 + -2.594838193999999e+00 + -2.600067155253186e+00 + -2.605341104662645e+00 + -2.610660266783872e+00 + -2.616024866689215e+00 + -2.621435129000000e+00 + -2.626891278432673e+00 + -2.632393541366548e+00 + -2.637942144571998e+00 + -2.643537314797249e+00 + -2.649179279000000e+00 + -2.654868264471787e+00 + -2.660604499292826e+00 + -2.666388211776204e+00 + -2.672219630341834e+00 + -2.678098984000000e+00 + -2.684026502306392e+00 + -2.690002415494505e+00 + -2.696026954017429e+00 + -2.702100348331385e+00 + -2.708222828000000e+00 + -2.714394620651795e+00 + -2.720615948464916e+00 + -2.726887030965477e+00 + -2.733208085290139e+00 + -2.739579324000000e+00 + -2.746000955816228e+00 + -2.752473185385865e+00 + -2.758996214641690e+00 + -2.765570242469367e+00 + -2.772195463000000e+00 + -2.778872066776275e+00 + -2.785600241574056e+00 + -2.792380171842594e+00 + -2.799212037606767e+00 + -2.806096015000000e+00 + -2.813032277129447e+00 + -2.820020994035244e+00 + -2.827062331911353e+00 + -2.834156451970738e+00 + -2.841303512999999e+00 + -2.848503671252426e+00 + -2.855757077985244e+00 + -2.863063881095023e+00 + -2.870424224890850e+00 + -2.877838249999999e+00 + -2.885306093928394e+00 + -2.892827890388094e+00 + -2.900403769651381e+00 + -2.908033857857018e+00 + -2.915718277999999e+00 + -2.923457150039019e+00 + -2.931250588977881e+00 + -2.939098706889091e+00 + -2.947001612872150e+00 + -2.954959411999998e+00 + -2.962972205810575e+00 + -2.971040091434060e+00 + -2.979163163083816e+00 + -2.987341511831155e+00 + -2.995575224999998e+00 + -3.003864386499012e+00 + -3.012209075546996e+00 + -3.020609368336417e+00 + -3.029065337835770e+00 + -3.037577052999999e+00 + -3.046144579520789e+00 + -3.054767979666142e+00 + -3.063447312238444e+00 + -3.072182631692820e+00 + -3.080973988999999e+00 + -3.089821432099915e+00 + -3.098725004829577e+00 + -3.107684748048404e+00 + -3.116700699185534e+00 + -3.125772890999999e+00 + -3.134901352715559e+00 + -3.144086110699870e+00 + -3.153327188100508e+00 + -3.162624603843408e+00 + -3.171978372999998e+00 + -3.181388507546933e+00 + -3.190855016073102e+00 + -3.200377903469057e+00 + -3.209957169965227e+00 + -3.219592812999998e+00 + -3.229284827363896e+00 + -3.239033203402719e+00 + -3.248837927724427e+00 + -3.258698982652799e+00 + -3.268616347999998e+00 + -3.278590000914418e+00 + -3.288619913401403e+00 + -3.298706054004673e+00 + -3.308848387625167e+00 + -3.319046875999998e+00 + -3.329301477934322e+00 + -3.339612147844228e+00 + -3.349978836592516e+00 + -3.360401490990458e+00 + -3.370880054999998e+00 + -3.381414469596773e+00 + -3.392004670266620e+00 + -3.402650589976440e+00 + -3.413352159446950e+00 + -3.424109303999998e+00 + -3.434921945057392e+00 + -3.445790001867386e+00 + -3.456713390096515e+00 + -3.467692020464062e+00 + -3.478725800999998e+00 + -3.489814636890736e+00 + -3.500958427789171e+00 + -3.512157070764700e+00 + -3.523410460589800e+00 + -3.534718486999998e+00 + -3.546081035880271e+00 + -3.557497990199610e+00 + -3.568969229634993e+00 + -3.580494629586285e+00 + -3.592074061999998e+00 + -3.603707395759104e+00 + -3.615394495446970e+00 + -3.627135222559569e+00 + -3.638929435115233e+00 + -3.650776987000000e+00 + -3.662677728742245e+00 + -3.674631507325805e+00 + -3.686638166579447e+00 + -3.698697546469576e+00 + -3.710809483000000e+00 + -3.722973808828209e+00 + -3.735190352595157e+00 + -3.747458940125227e+00 + -3.759779394010754e+00 + -3.772151532000000e+00 + -3.784575168342916e+00 + -3.797050115062026e+00 + -3.809576180292756e+00 + -3.822153166803174e+00 + -3.834780875000000e+00 + -3.847459102820189e+00 + -3.860187643203489e+00 + -3.872966285667494e+00 + -3.885794816080159e+00 + -3.898673017000000e+00 + -3.911600667911320e+00 + -3.924577543724543e+00 + -3.937603416269590e+00 + -3.950678053996523e+00 + -3.963801221000000e+00 + -3.976972678103186e+00 + -3.990192183512261e+00 + -4.003459491521890e+00 + -4.016774351164608e+00 + -4.030136509000000e+00 + -4.043545709147031e+00 + -4.057001691149858e+00 + -4.070504190840202e+00 + -4.084052939835804e+00 + -4.097647667000000e+00 + -4.111288098419088e+00 + -4.124973955231095e+00 + -4.138704955371648e+00 + -4.152480813397504e+00 + -4.166301240000000e+00 + -4.180165942572286e+00 + -4.194074624537170e+00 + -4.208026986370140e+00 + -4.222022725101974e+00 + -4.236061533000000e+00 + -4.250143098846027e+00 + -4.264267108996074e+00 + -4.278433246261039e+00 + -4.292641188627767e+00 + -4.306890611000000e+00 + -4.321181185386233e+00 + -4.335512579090955e+00 + -4.349884456391911e+00 + -4.364296478350024e+00 + -4.378748302000000e+00 + -4.393239580901771e+00 + -4.407769964394226e+00 + -4.422339098999587e+00 + -4.436946628138934e+00 + -4.451592191000000e+00 + -4.466275423153566e+00 + -4.480995955945297e+00 + -4.495753418053649e+00 + -4.510547435209278e+00 + -4.525377628000000e+00 + -4.540243613376725e+00 + -4.555145006346341e+00 + -4.570081418154680e+00 + -4.585052454714511e+00 + -4.600057719000000e+00 + -4.615096811360685e+00 + -4.630169328028963e+00 + -4.645274861878902e+00 + -4.660413001844071e+00 + -4.675583333000000e+00 + -4.690785437259527e+00 + -4.706018892955582e+00 + -4.721283275134317e+00 + -4.736578154793736e+00 + -4.751903099000000e+00 + -4.767257671719769e+00 + -4.782641433752779e+00 + -4.798053942304498e+00 + -4.813494749953581e+00 + -4.828963406000000e+00 + -4.844459456896403e+00 + -4.859982445123970e+00 + -4.875531909767719e+00 + -4.891107385884028e+00 + -4.906708405000000e+00 + -4.922334495555203e+00 + -4.937985181840751e+00 + -4.953659984814029e+00 + -4.969358421588884e+00 + -4.985080006000000e+00 + -5.000824248840914e+00 + -5.016590656340991e+00 + -5.032378731598668e+00 + -5.048187974277996e+00 + -5.064017880000000e+00 + -5.079867940973151e+00 + -5.095737645459726e+00 + -5.111626480823102e+00 + -5.127533934923204e+00 + -5.143459499999997e+00 + -5.159402672483111e+00 + -5.175362954369220e+00 + -5.191339851303958e+00 + -5.207332872891304e+00 + -5.223341533999998e+00 + -5.239365353688981e+00 + -5.255403855076862e+00 + -5.271456565155025e+00 + -5.287523015792912e+00 + -5.303602743999997e+00 + -5.319695290809813e+00 + -5.335800201177900e+00 + -5.351917023850607e+00 + -5.368045312413205e+00 + -5.384184625999997e+00 + -5.400334527792659e+00 + -5.416494583936292e+00 + -5.432664365069262e+00 + -5.448843447960337e+00 + -5.465031412999998e+00 + -5.481227843963791e+00 + -5.497432330198948e+00 + -5.513644465003656e+00 + -5.529863846001168e+00 + -5.546090074999998e+00 + -5.562322757794160e+00 + -5.578561506278419e+00 + -5.594805935740466e+00 + -5.611055664858841e+00 + -5.627310317999997e+00 + -5.643569523867812e+00 + -5.659832914603254e+00 + -5.676100126691991e+00 + -5.692370802379017e+00 + -5.708644587999997e+00 + -5.724921133351554e+00 + -5.741200092816319e+00 + -5.757481124931912e+00 + -5.773763893288205e+00 + -5.790048065999996e+00 + -5.806333315035348e+00 + -5.822619317227983e+00 + -5.838905753168464e+00 + -5.855192307810226e+00 + -5.871478670999998e+00 + -5.887764536642293e+00 + -5.904049603224381e+00 + -5.920333573291820e+00 + -5.936616154283948e+00 + -5.952897057999997e+00 + -5.969175999997380e+00 + -5.985452700712029e+00 + -6.001726884408804e+00 + -6.017998279848357e+00 + -6.034266620999998e+00 + -6.050531645917840e+00 + -6.066793096565948e+00 + -6.083050719154321e+00 + -6.099304265265417e+00 + -6.115553489999997e+00 + -6.131798152082848e+00 + -6.148038016850530e+00 + -6.164272852974367e+00 + -6.180502432221914e+00 + -6.196726531999996e+00 + -6.212944934149927e+00 + -6.229157424398349e+00 + -6.245363792906498e+00 + -6.261563835474968e+00 + -6.277757350999996e+00 + -6.293944141712862e+00 + -6.310124016459128e+00 + -6.326296787703612e+00 + -6.342462271423720e+00 + -6.358620288999997e+00 + -6.374770666045148e+00 + -6.390913231950829e+00 + -6.407047820441565e+00 + -6.423174270811367e+00 + -6.439292425999997e+00 + -6.455402132459349e+00 + -6.471503242529590e+00 + -6.487595612302881e+00 + -6.503679101824962e+00 + -6.519753575999998e+00 + -6.535818903908587e+00 + -6.551874959678351e+00 + -6.567921621040533e+00 + -6.583958769810407e+00 + -6.599986292999997e+00 + -6.616004081814032e+00 + -6.632012031732002e+00 + -6.648010042213294e+00 + -6.663998017633650e+00 + -6.679975866999997e+00 + -6.695943503153600e+00 + -6.711900843425355e+00 + -6.727847809100131e+00 + -6.743784326279565e+00 + -6.759710325999998e+00 + -6.775625743222601e+00 + -6.791530516957345e+00 + -6.807424590371784e+00 + -6.823307911868753e+00 + -6.839180434000000e+00 + -6.855042113095231e+00 + -6.870892911056689e+00 + -6.886732793343159e+00 + -6.902561729209182e+00 + -6.918379693000000e+00 + -6.934186663377454e+00 + -6.949982623974822e+00 + -6.965767562024019e+00 + -6.981541468861679e+00 + -6.997304341000000e+00 + -7.013056179149240e+00 + -7.028796988372566e+00 + -7.044526777567921e+00 + -7.060245560311449e+00 + -7.075953355000000e+00 + -7.091650184045992e+00 + -7.107336074531737e+00 + -7.123011057484204e+00 + -7.138675168614964e+00 + -7.154328448000000e+00 + -7.169970939523060e+00 + -7.185602692089082e+00 + -7.201223758621499e+00 + -7.216834196750369e+00 + -7.232434069000000e+00 + -7.248023441650831e+00 + -7.263602384451917e+00 + -7.279170972021925e+00 + -7.294729285389790e+00 + -7.310277408000000e+00 + -7.325815426345584e+00 + -7.341343434315181e+00 + -7.356861529294433e+00 + -7.372369811668458e+00 + -7.387868387000000e+00 + -7.403357365322682e+00 + -7.418836861854650e+00 + -7.434306995371617e+00 + -7.449767888578398e+00 + -7.465219669000000e+00 + -7.480662468362842e+00 + -7.496096423635060e+00 + -7.511521675509539e+00 + -7.526938368822738e+00 + -7.542346653000000e+00 + -7.557746681513402e+00 + -7.573138613106206e+00 + -7.588522610348394e+00 + -7.603898840111169e+00 + -7.619267474000000e+00 + -7.634628687556104e+00 + -7.649982660818226e+00 + -7.665329578157865e+00 + -7.680669629212444e+00 + -7.696003007000000e+00 + -7.711329908041110e+00 + -7.726650535322031e+00 + -7.741965095546557e+00 + -7.757273799081691e+00 + -7.772576861000000e+00 + -7.787874500482072e+00 + -7.803166941820082e+00 + -7.818454413357075e+00 + -7.833737148083599e+00 + -7.849015383000000e+00 + -7.864289358883056e+00 + -7.879559322305754e+00 + -7.894825523493435e+00 + -7.910088216491122e+00 + -7.925347660000000e+00 + -7.940604117030949e+00 + -7.955857856656654e+00 + -7.971109151088187e+00 + -7.986358275553978e+00 + -8.001605510999999e+00 + -8.016851143003514e+00 + -8.032095461580266e+00 + -8.047338760488806e+00 + -8.062581337981985e+00 + -8.077823497000001e+00 + -8.093065544394179e+00 + -8.108307791577566e+00 + -8.123550554205780e+00 + -8.138794153086785e+00 + -8.154038912999997e+00 + -8.169285162395173e+00 + -8.184533235306290e+00 + -8.199783469410583e+00 + -8.215036206329255e+00 + -8.230291792999997e+00 + -8.245550580528674e+00 + -8.260812923863309e+00 + -8.276079182235739e+00 + -8.291349720375887e+00 + -8.306624906999998e+00 + -8.321905114401627e+00 + -8.337190720129563e+00 + -8.352482105562956e+00 + -8.367779656388556e+00 + -8.383083762999997e+00 + -8.398394819954635e+00 + -8.413713227271362e+00 + -8.429039388338369e+00 + -8.444373710123081e+00 + -8.459716604999997e+00 + -8.475068489773328e+00 + -8.490429785807564e+00 + -8.505800918193746e+00 + -8.521182316459129e+00 + -8.536574414999997e+00 + -8.551977652264261e+00 + -8.567392471335332e+00 + -8.582819319266729e+00 + -8.598258647834163e+00 + -8.613710912999998e+00 + -8.629176574613023e+00 + -8.644656098315155e+00 + -8.660149953296175e+00 + -8.675658612460374e+00 + -8.691182553999997e+00 + -8.706722260346437e+00 + -8.722278218076596e+00 + -8.737850917931995e+00 + -8.753440855866357e+00 + -8.769048531999996e+00 + -8.784674450012169e+00 + -8.800319118245726e+00 + -8.815983049456063e+00 + -8.831666761752983e+00 + -8.847370776999997e+00 + -8.863095620572640e+00 + -8.878841823409489e+00 + -8.894609920288579e+00 + -8.910400450202564e+00 + -8.926213956999996e+00 + -8.942050988642462e+00 + -8.957912097948702e+00 + -8.973797841249739e+00 + -8.989708778929735e+00 + -9.005645476999996e+00 + -9.021608505891232e+00 + -9.037598440089864e+00 + -9.053615857732957e+00 + -9.069661341483132e+00 + -9.085735478999997e+00 + -9.101838862125330e+00 + -9.117972087538210e+00 + -9.134135755396374e+00 + -9.150330469883286e+00 + -9.166556840999997e+00 + -9.182815483079517e+00 + -9.199107013675079e+00 + -9.215432054583626e+00 + -9.231791233265957e+00 + -9.248185180999997e+00 + -9.264614532683632e+00 + -9.281079929109534e+00 + -9.297582014702897e+00 + -9.314121437654787e+00 + -9.330698850999996e+00 + -9.347314912003528e+00 + -9.363970283188971e+00 + -9.380665630745685e+00 + -9.397401624940878e+00 + -9.414178940999998e+00 + -9.430998258244742e+00 + -9.447860260503859e+00 + -9.464765635761319e+00 + -9.481715077019253e+00 + -9.498709280999996e+00 + -9.515748948037771e+00 + -9.532834784442173e+00 + -9.549967500513571e+00 + -9.567147810785697e+00 + -9.584376433999996e+00 + -9.601654092679016e+00 + -9.618981514566920e+00 + -9.636359431588877e+00 + -9.653788580476306e+00 + -9.671269701999998e+00 + -9.688803540653204e+00 + -9.706390846469759e+00 + -9.724032373152683e+00 + -9.741728878390186e+00 + -9.759481124999997e+00 + -9.777289880050315e+00 + -9.795155915261526e+00 + -9.813080006095444e+00 + -9.831062932433847e+00 + -9.849105478999997e+00 + -9.867208434586416e+00 + -9.885372592754736e+00 + -9.903598750780114e+00 + -9.921887710289466e+00 + -9.940240277999996e+00 + -9.958657264807959e+00 + -9.977139486156000e+00 + -9.995687760994512e+00 + -1.001430291248964e+01 + -1.003298577000000e+01 + -1.005173716741557e+01 + -1.007055794170109e+01 + -1.008944893313717e+01 + -1.010841098632109e+01 + -1.012744495000000e+01 + -1.014655167843811e+01 + -1.016573203809090e+01 + -1.018498689280856e+01 + -1.020431709913334e+01 + -1.022372353000000e+01 + -1.024320706932260e+01 + -1.026276860085199e+01 + -1.028240900753776e+01 + -1.030212917226508e+01 + -1.032192999000000e+01 + -1.034181236270672e+01 + -1.036177718920571e+01 + -1.038182537682789e+01 + -1.040195784652257e+01 + -1.042217551000000e+01 + -1.044247927800797e+01 + -1.046287008429113e+01 + -1.048334886197221e+01 + -1.050391653528098e+01 + -1.052457404000000e+01 + -1.054532232135862e+01 + -1.056616233045517e+01 + -1.058709501821704e+01 + -1.060812133414642e+01 + -1.062924224000000e+01 + -1.065045870478386e+01 + -1.067177169452023e+01 + -1.069318217826154e+01 + -1.071469113174534e+01 + -1.073629954000000e+01 + -1.075800839260036e+01 + -1.077981867489276e+01 + -1.080173138018267e+01 + -1.082374751517595e+01 + -1.084586808000000e+01 + -1.086809407471729e+01 + -1.089042651905600e+01 + -1.091286643223940e+01 + -1.093541482646511e+01 + -1.095807273000000e+01 + -1.098084118002027e+01 + -1.100372120627546e+01 + -1.102671384288809e+01 + -1.104982013415814e+01 + -1.107304113000000e+01 + -1.109637788366843e+01 + -1.111983144958023e+01 + -1.114340288661973e+01 + -1.116709326043168e+01 + -1.119090364000000e+01 + -1.121483509746141e+01 + -1.123888871051257e+01 + -1.126306556352589e+01 + -1.128736674843474e+01 + -1.131179335000000e+01 + -1.133634645465832e+01 + -1.136102717560643e+01 + -1.138583662099362e+01 + -1.141077588304154e+01 + -1.143584608000000e+01 + -1.146104834278586e+01 + -1.148638378227322e+01 + -1.151185351768562e+01 + -1.153745868860526e+01 + -1.156320043000000e+01 + -1.158907987623694e+01 + -1.161509817570602e+01 + -1.164125647703402e+01 + -1.166755592508495e+01 + -1.169399768000000e+01 + -1.172058291041322e+01 + -1.174731277861368e+01 + -1.177418844974534e+01 + -1.180121109657743e+01 + -1.182838189999999e+01 + -1.185570204579555e+01 + -1.188317272006268e+01 + -1.191079511332836e+01 + -1.193857042312863e+01 + -1.196649984999999e+01 + -1.199458459773775e+01 + -1.202282587700695e+01 + -1.205122490269986e+01 + -1.207978289369385e+01 + -1.210850107000000e+01 + -1.213738065440104e+01 + -1.216642287877588e+01 + -1.219562898067898e+01 + -1.222500020303083e+01 + -1.225453779000000e+01 + -1.228424298812801e+01 + -1.231411705144751e+01 + -1.234416123799292e+01 + -1.237437680934280e+01 + -1.240476502999999e+01 + -1.243532716862228e+01 + -1.246606450371358e+01 + -1.249697831672881e+01 + -1.252806989018327e+01 + -1.255934050999999e+01 + -1.259079146663310e+01 + -1.262242406008652e+01 + -1.265423959346900e+01 + -1.268623937120698e+01 + -1.271842469999999e+01 + -1.275079689157634e+01 + -1.278335727210730e+01 + -1.281610716656313e+01 + -1.284904789393346e+01 + -1.288218078999999e+01 + -1.291550719883721e+01 + -1.294902845305343e+01 + -1.298274589252790e+01 + -1.301666087289315e+01 + -1.305077474999999e+01 + -1.308508888000826e+01 + -1.311960462335401e+01 + -1.315432334734565e+01 + -1.318924642810263e+01 + -1.322437523999999e+01 + -1.325971115825294e+01 + -1.329525556797775e+01 + -1.333100986045822e+01 + -1.336697543256989e+01 + -1.340315367999999e+01 + -1.343954599979837e+01 + -1.347615379884262e+01 + -1.351297848978655e+01 + -1.355002149050285e+01 + -1.358728421999999e+01 + -1.362476809975143e+01 + -1.366247455932581e+01 + -1.370040503112116e+01 + -1.373856094968169e+01 + -1.377694375999999e+01 + -1.381555491216690e+01 + -1.385439585021465e+01 + -1.389346802391279e+01 + -1.393277289476898e+01 + -1.397231192999999e+01 + -1.401208659972945e+01 + -1.405209837359219e+01 + -1.409234872413346e+01 + -1.413283912961124e+01 + -1.417357107999999e+01 + -1.421454607102127e+01 + -1.425576559243092e+01 + -1.429723113890712e+01 + -1.433894421536596e+01 + -1.438090632999999e+01 + -1.442311899332400e+01 + -1.446558371903957e+01 + -1.450830202765583e+01 + -1.455127544879836e+01 + -1.459450550999999e+01 + -1.463799373973040e+01 + -1.468174167767078e+01 + -1.472575086722947e+01 + -1.477002285383887e+01 + -1.481455918999999e+01 + -1.485936143285468e+01 + -1.490443114031971e+01 + -1.494976987417127e+01 + -1.499537920245961e+01 + -1.504126069999999e+01 + -1.508741594534576e+01 + -1.513384651602358e+01 + -1.518055399754435e+01 + -1.522753998778076e+01 + -1.527480607999999e+01 + -1.532235386668537e+01 + -1.537018495189360e+01 + -1.541830094448208e+01 + -1.546670345694024e+01 + -1.551539410999999e+01 + -1.556437452805486e+01 + -1.561364632974880e+01 + -1.566321114034704e+01 + -1.571307059764629e+01 + -1.576322633999999e+01 + -1.581368000886133e+01 + -1.586443325932826e+01 + -1.591548774371123e+01 + -1.596684510633198e+01 + -1.601850700999999e+01 + -1.607047512763592e+01 + -1.612275112310131e+01 + -1.617533666634843e+01 + -1.622823344044972e+01 + -1.628144312999999e+01 + -1.633496741991010e+01 + -1.638880799548294e+01 + -1.644296655089035e+01 + -1.649744479372194e+01 + -1.655224442999999e+01 + -1.660736716535794e+01 + -1.666281471098534e+01 + -1.671858878335293e+01 + -1.677469110504862e+01 + -1.683112339999999e+01 + -1.688788739643611e+01 + -1.694498483759857e+01 + -1.700241746523662e+01 + -1.706018701398879e+01 + -1.711829522999999e+01 + -1.717674386844329e+01 + -1.723553468924849e+01 + -1.729466945458232e+01 + -1.735414992865347e+01 + -1.741397788000000e+01 + -1.747415508099178e+01 + -1.753468330867943e+01 + -1.759556434768274e+01 + -1.765679999203036e+01 + -1.771839203000000e+01 + -1.778034225038387e+01 + -1.784265246094084e+01 + -1.790532446959567e+01 + -1.796836007816754e+01 + -1.803176110000000e+01 + -1.809552935720682e+01 + -1.815966667575656e+01 + -1.822417488078262e+01 + -1.828905579597735e+01 + -1.835431126000000e+01 + -1.841994311958100e+01 + -1.848595321475806e+01 + -1.855234338946741e+01 + -1.861911549709020e+01 + -1.868627140000000e+01 + -1.875381296458075e+01 + -1.882174205218422e+01 + -1.889006052915166e+01 + -1.895877027181235e+01 + -1.902787316000000e+01 + -1.909737107797965e+01 + -1.916726592078253e+01 + -1.923755957952593e+01 + -1.930825393714747e+01 + -1.937935090000000e+01 + -1.945085238647674e+01 + -1.952276030080435e+01 + -1.959507655061933e+01 + -1.966780305499929e+01 + -1.974094174000000e+01 + -1.981449453618971e+01 + -1.988846337667131e+01 + -1.996285019538828e+01 + -2.003765692760933e+01 + -2.011288552000000e+01 + -2.018853792621815e+01 + -2.026461609876727e+01 + -2.034112199510926e+01 + -2.041805758075517e+01 + -2.049542482000000e+01 + -2.057322568006621e+01 + -2.065146214471047e+01 + -2.073013619484967e+01 + -2.080924980240138e+01 + -2.088880495999999e+01 + -2.096880367169853e+01 + -2.104924793164823e+01 + -2.113013973534757e+01 + -2.121148108557274e+01 + -2.129327399999999e+01 + -2.137552050224973e+01 + -2.145822260294134e+01 + -2.154138232011573e+01 + -2.162500168821614e+01 + -2.170908273999999e+01 + -2.179362750931509e+01 + -2.187863804236205e+01 + -2.196411638687395e+01 + -2.205006458870765e+01 + -2.213648469999998e+01 + -2.222337877888525e+01 + -2.231074889087196e+01 + -2.239859710699802e+01 + -2.248692550346576e+01 + -2.257573614999999e+01 + -2.266503111825121e+01 + -2.275481250533621e+01 + -2.284508240538831e+01 + -2.293584289979252e+01 + -2.302709608999998e+01 + -2.311884408797131e+01 + -2.321108899308483e+01 + -2.330383291176923e+01 + -2.339707796636268e+01 + -2.349082627999998e+01 + -2.358507997580010e+01 + -2.367984117841246e+01 + -2.377511201965127e+01 + -2.387089464198777e+01 + -2.396719118999998e+01 + -2.406400380890314e+01 + -2.416133464354705e+01 + -2.425918584868402e+01 + -2.435755959379285e+01 + -2.445645803999998e+01 + -2.455588334675619e+01 + -2.465583769169985e+01 + -2.475632325621871e+01 + -2.485734222078360e+01 + -2.495889676999998e+01 + -2.506098909313465e+01 + -2.516362138717989e+01 + -2.526679585042222e+01 + -2.537051468121954e+01 + -2.547478008999998e+01 + -2.557959429416147e+01 + -2.568495950782481e+01 + -2.579087794894506e+01 + -2.589735184307986e+01 + -2.600438342000000e+01 + -2.611197491414786e+01 + -2.622012856937007e+01 + -2.632884662779481e+01 + -2.643813132670684e+01 + -2.654798492000000e+01 + -2.665840967182968e+01 + -2.676940784333127e+01 + -2.688098169572292e+01 + -2.699313349264397e+01 + -2.710586551000000e+01 + -2.721918002998715e+01 + -2.733307932892397e+01 + -2.744756569229334e+01 + -2.756264142140602e+01 + -2.767830881000000e+01 + -2.779457014947893e+01 + -2.791142774510221e+01 + -2.802888390934165e+01 + -2.814694096000261e+01 + -2.826560121000000e+01 + -2.838486697334714e+01 + -2.850474058224100e+01 + -2.862522436986088e+01 + -2.874632066501767e+01 + -2.886803181000000e+01 + -2.899036015446983e+01 + -2.911330804180568e+01 + -2.923687781925054e+01 + -2.936107184331833e+01 + -2.948589248000000e+01 + -2.961134209910011e+01 + -2.973742306338333e+01 + -2.986413774439124e+01 + -2.999148852946843e+01 + -3.011947780000000e+01 + -3.024810793640462e+01 + -3.037738133418102e+01 + -3.050730039248281e+01 + -3.063786751048302e+01 + -3.076908508999995e+01 + -3.090095553801825e+01 + -3.103348127528379e+01 + -3.116666472242296e+01 + -3.130050829541340e+01 + -3.143501442000000e+01 + -3.157018552904646e+01 + -3.170602405762165e+01 + -3.184253244456109e+01 + -3.197971313442012e+01 + -3.211756857999995e+01 + -3.225610123724459e+01 + -3.239531355479052e+01 + -3.253520799120049e+01 + -3.267578702273956e+01 + -3.281705312000000e+01 + -3.295900875199519e+01 + -3.310165640007095e+01 + -3.324499854981137e+01 + -3.338903768896250e+01 + -3.353377630999994e+01 + -3.367921690900354e+01 + -3.382536198480008e+01 + -3.397221404252836e+01 + -3.411977559608952e+01 + -3.426804916000000e+01 + -3.441703725062087e+01 + -3.456674239208418e+01 + -3.471716711255165e+01 + -3.486831394366235e+01 + -3.502018541999994e+01 + -3.517278408030963e+01 + -3.532611247314257e+01 + -3.548017315006599e+01 + -3.563496866378715e+01 + -3.579050157000000e+01 + -3.594677442911821e+01 + -3.610378981290209e+01 + -3.626155029281482e+01 + -3.642005843692588e+01 + -3.657931682999995e+01 + -3.673932806450152e+01 + -3.690009471994529e+01 + -3.706161938636306e+01 + -3.722390467398576e+01 + -3.738695318000000e+01 + -3.755076749872251e+01 + -3.771535025114206e+01 + -3.788070405790332e+01 + -3.804683152981476e+01 + -3.821373528999994e+01 + -3.838141797088579e+01 + -3.854988220802454e+01 + -3.871913063690455e+01 + -3.888916589260551e+01 + -3.905999062000000e+01 + -3.923160747217621e+01 + -3.940401910958111e+01 + -3.957722819105772e+01 + -3.975123737141870e+01 + -3.992604931999993e+01 + -4.010166671506960e+01 + -4.027809223215413e+01 + -4.045532854769397e+01 + -4.063337834194039e+01 + -4.081224431000000e+01 + -4.099192915380458e+01 + -4.117243556512365e+01 + -4.135376624213356e+01 + -4.153592389680070e+01 + -4.171891123999993e+01 + -4.190273098404973e+01 + -4.208738585293229e+01 + -4.227287857304115e+01 + -4.245921187066173e+01 + -4.264638848000000e+01 + -4.283441114000928e+01 + -4.302328258823673e+01 + -4.321300556988346e+01 + -4.340358284230594e+01 + -4.359501715999993e+01 + -4.378731127802528e+01 + -4.398046796379431e+01 + -4.417448998677844e+01 + -4.436938011574802e+01 + -4.456514113000000e+01 + -4.476177581459606e+01 + -4.495928695037842e+01 + -4.515767732491430e+01 + -4.535694973791337e+01 + -4.555710698999992e+01 + -4.575815188265746e+01 + -4.596008722124420e+01 + -4.616291581815827e+01 + -4.636664049491562e+01 + -4.657126407000000e+01 + -4.677678936329625e+01 + -4.698321921012249e+01 + -4.719055644645270e+01 + -4.739880390447049e+01 + -4.760796442999992e+01 + -4.781804087601476e+01 + -4.802903608806237e+01 + -4.824095291782189e+01 + -4.845379422957746e+01 + -4.866756289000000e+01 + -4.888226176793614e+01 + -4.909789373759357e+01 + -4.931446167624577e+01 + -4.953196846445736e+01 + -4.975041698999991e+01 + -4.996981014490353e+01 + -5.019015082042799e+01 + -5.041144191483806e+01 + -5.063368633767777e+01 + -5.085688700000000e+01 + -5.108104681363623e+01 + -5.130616869222998e+01 + -5.153225555529192e+01 + -5.175931033093434e+01 + -5.198733594999992e+01 + -5.221633534632925e+01 + -5.244631146064819e+01 + -5.267726723814258e+01 + -5.290920562821528e+01 + -5.314212958000000e+01 + -5.337604204603855e+01 + -5.361094599406351e+01 + -5.384684439089011e+01 + -5.408374019738633e+01 + -5.432163638999991e+01 + -5.456053595406303e+01 + -5.480044186892415e+01 + -5.504135712069162e+01 + -5.528328470761400e+01 + -5.552622762000000e+01 + -5.577018884907901e+01 + -5.601517141284037e+01 + -5.626117832498171e+01 + -5.650821258404100e+01 + -5.675627720999991e+01 + -5.700537523542541e+01 + -5.725550968441112e+01 + -5.750668358361924e+01 + -5.775889996777224e+01 + -5.801216188000000e+01 + -5.826647236807500e+01 + -5.852183447842080e+01 + -5.877825126017432e+01 + -5.903572576827786e+01 + -5.929426106999990e+01 + -5.955386023803142e+01 + -5.981452633626228e+01 + -6.007626243395679e+01 + -6.033907161265666e+01 + -6.060295696000000e+01 + -6.086792156620618e+01 + -6.113396851889991e+01 + -6.140110091270849e+01 + -6.166932185413050e+01 + -6.193863444999990e+01 + -6.220904180836374e+01 + -6.248054704389698e+01 + -6.275315327303672e+01 + -6.302686361375484e+01 + -6.330168120000000e+01 + -6.357760917255472e+01 + -6.385465065869710e+01 + -6.413280879313753e+01 + -6.441208672717147e+01 + -6.469248761000000e+01 + -6.497401459207148e+01 + -6.525667083785252e+01 + -6.554045951020694e+01 + -6.582538376572784e+01 + -6.611144677999999e+01 + -6.639865173804421e+01 + -6.668700181225154e+01 + -6.697650018322166e+01 + -6.726715004865791e+01 + -6.755895460000001e+01 + -6.785191702754956e+01 + -6.814604053706709e+01 + -6.844132833746227e+01 + -6.873778363702108e+01 + -6.903540965000001e+01 + -6.933420959649558e+01 + -6.963418670433917e+01 + -6.993534420146086e+01 + -7.023768531400407e+01 + -7.054121327999999e+01 + -7.084593134500037e+01 + -7.115184275353549e+01 + -7.145895075432828e+01 + -7.176725860332733e+01 + -7.207676955999989e+01 + -7.238748688676215e+01 + -7.269941385037480e+01 + -7.301255372170849e+01 + -7.332690977697268e+01 + -7.364248530000000e+01 + -7.395928357816831e+01 + -7.427730789465394e+01 + -7.459656154154558e+01 + -7.491704782593285e+01 + -7.523877004999987e+01 + -7.556173151464178e+01 + -7.588593553169946e+01 + -7.621138541944168e+01 + -7.653808450163682e+01 + -7.686603610000000e+01 + -7.719524353805981e+01 + -7.752571015313293e+01 + -7.785743928572181e+01 + -7.819043427631229e+01 + -7.852469846999988e+01 + -7.886023521608357e+01 + -7.919704786882774e+01 + -7.953513978918475e+01 + -7.987451434652237e+01 + -8.021517491000000e+01 + -8.055712484895521e+01 + -8.090036753598372e+01 + -8.124490635250547e+01 + -8.159074469172391e+01 + -8.193788593999987e+01 + -8.228633348416081e+01 + -8.263609073313938e+01 + -8.298716109541151e+01 + -8.333954797103145e+01 + -8.369325477000000e+01 + -8.404828491028280e+01 + -8.440464181412719e+01 + -8.476232890793086e+01 + -8.512134962287996e+01 + -8.548170738999985e+01 + -8.584340564352934e+01 + -8.620644783199920e+01 + -8.657083740482393e+01 + -8.693657780824788e+01 + -8.730367250000000e+01 + -8.767212494371194e+01 + -8.804193859639375e+01 + -8.841311692593891e+01 + -8.878566341870939e+01 + -8.915958154999986e+01 + -8.953487479168578e+01 + -8.991154663471849e+01 + -9.028960057395298e+01 + -9.066904010318096e+01 + -9.104986872000001e+01 + -9.143208992686800e+01 + -9.181570723560402e+01 + -9.220072416114067e+01 + -9.258714421980083e+01 + -9.297497092999986e+01 + -9.336420781525349e+01 + -9.375485841426487e+01 + -9.414692626313253e+01 + -9.454041488965315e+01 + -9.493532784000000e+01 + -9.533166867059026e+01 + -9.572944092950100e+01 + -9.612864816948191e+01 + -9.652929395407540e+01 + -9.693138184999984e+01 + -9.733491542620831e+01 + -9.773989825487583e+01 + -9.814633391500892e+01 + -9.855422599474231e+01 + -9.896357808000000e+01 + -9.937439375553778e+01 + -9.978667660951464e+01 + -1.002004302498873e+02 + -1.006156583113964e+02 + -1.010323643999998e+02 + -1.014505521033422e+02 + -1.018702250167552e+02 + -1.022913867648504e+02 + -1.027140410123223e+02 + -1.031381914000000e+02 + -1.035638415489902e+02 + -1.039909950728156e+02 + -1.044196556182856e+02 + -1.048498268814360e+02 + -1.052815124999998e+02 + -1.057147160851634e+02 + -1.061494413040264e+02 + -1.065856918490972e+02 + -1.070234714266025e+02 + -1.074627837000000e+02 + -1.079036323073108e+02 + -1.083460208994117e+02 + -1.087899531790557e+02 + -1.092354329168266e+02 + -1.096824637999998e+02 + -1.101310494754678e+02 + -1.105811936593542e+02 + -1.110329000832090e+02 + -1.114861724712110e+02 + -1.119410145000000e+02 + -1.123974298499644e+02 + -1.128554223365672e+02 + -1.133149957276709e+02 + -1.137761536721920e+02 + -1.142388998999998e+02 + -1.147032381951767e+02 + -1.151691723223398e+02 + -1.156367060267053e+02 + -1.161058430340008e+02 + -1.165765871000000e+02 + -1.170489420136372e+02 + -1.175229116129598e+02 + -1.179984996644491e+02 + -1.184757098197581e+02 + -1.189545458999998e+02 + -1.194350118004852e+02 + -1.199171112501401e+02 + -1.204008480035419e+02 + -1.208862259161727e+02 + -1.213732488000000e+02 + -1.218619204419225e+02 + -1.223522446637547e+02 + -1.228442252993658e+02 + -1.233378661832514e+02 + -1.238331710999998e+02 + -1.243301438371392e+02 + -1.248287883218059e+02 + -1.253291084262349e+02 + -1.258311078947497e+02 + -1.263347906000000e+02 + -1.268401604692280e+02 + -1.273472212887372e+02 + -1.278559768940106e+02 + -1.283664312433523e+02 + -1.288785881999998e+02 + -1.293924515790011e+02 + -1.299080252758494e+02 + -1.304253131892150e+02 + -1.309443191941241e+02 + -1.314650472000000e+02 + -1.319875011267033e+02 + -1.325116848422910e+02 + -1.330376022476014e+02 + -1.335652573069860e+02 + -1.340946538999998e+02 + -1.346257958892211e+02 + -1.351586873010075e+02 + -1.356933320835031e+02 + -1.362297340185993e+02 + -1.367678971000000e+02 + -1.373078254089903e+02 + -1.378495227933144e+02 + -1.383929931342302e+02 + -1.389382404506380e+02 + -1.394852686999998e+02 + -1.400340818144768e+02 + -1.405846838138316e+02 + -1.411370786853171e+02 + -1.416912703410207e+02 + -1.422472628000000e+02 + -1.428050601118040e+02 + -1.433646661562381e+02 + -1.439260848884736e+02 + -1.444893204354731e+02 + -1.450543767999998e+02 + -1.456212579173106e+02 + -1.461899678121767e+02 + -1.467605105156440e+02 + -1.473328900351724e+02 + -1.479071104000000e+02 + -1.484831756560318e+02 + -1.490610898537698e+02 + -1.496408570188282e+02 + -1.502224811435522e+02 + -1.508059663000000e+02 + -1.513913165938295e+02 + -1.519785360517816e+02 + -1.525676287092765e+02 + -1.531585986433134e+02 + -1.537514498999998e+02 + -1.543461865304275e+02 + -1.549428126935839e+02 + -1.555413324987964e+02 + -1.561417499433451e+02 + -1.567440691000000e+02 + -1.573482940967384e+02 + -1.579544290618548e+02 + -1.585624781173004e+02 + -1.591724453723425e+02 + -1.597843348999998e+02 + -1.603981507727703e+02 + -1.610138971515657e+02 + -1.616315781879854e+02 + -1.622511979884414e+02 + -1.628727607000000e+02 + -1.634962704824068e+02 + -1.641217314319286e+02 + -1.647491476962519e+02 + -1.653785235159056e+02 + -1.660098629999998e+02 + -1.666431702132707e+02 + -1.672784494025457e+02 + -1.679157047805161e+02 + -1.685549404452619e+02 + -1.691961606000000e+02 + -1.698393694891200e+02 + -1.704845712252935e+02 + -1.711317699673001e+02 + -1.717809699904770e+02 + -1.724321754999998e+02 + -1.730853906636835e+02 + -1.737406197069920e+02 + -1.743978668390772e+02 + -1.750571362267288e+02 + -1.757184321000000e+02 + -1.763817587329360e+02 + -1.770471204015179e+02 + -1.777145213342737e+02 + -1.783839656916257e+02 + -1.790554576999997e+02 + -1.797290016348361e+02 + -1.804046017812607e+02 + -1.810822624074922e+02 + -1.817619877551305e+02 + -1.824437821000000e+02 + -1.831276497291853e+02 + -1.838135948809234e+02 + -1.845016218201234e+02 + -1.851917348679873e+02 + -1.858839382999998e+02 + -1.865782363787204e+02 + -1.872746334451072e+02 + -1.879731338116912e+02 + -1.886737417231232e+02 + -1.893764615000000e+02 + -1.900812975069574e+02 + -1.907882540726982e+02 + -1.914973354967214e+02 + -1.922085460544087e+02 + -1.929218900999998e+02 + -1.936373720194894e+02 + -1.943549961169706e+02 + -1.950747667123967e+02 + -1.957966881820183e+02 + -1.965207649000000e+02 + -1.972470012275908e+02 + -1.979754014928308e+02 + -1.987059700466389e+02 + -1.994387112870401e+02 + -2.001736295999997e+02 + -2.009107293657797e+02 + -2.016500149830146e+02 + -2.023914908231823e+02 + -2.031351612174878e+02 + -2.038810306000000e+02 + -2.046291034502658e+02 + -2.053793841544099e+02 + -2.061318770718700e+02 + -2.068865865659776e+02 + -2.076435170999997e+02 + -2.084026731731890e+02 + -2.091640591716557e+02 + -2.099276794995817e+02 + -2.106935386300690e+02 + -2.114616410000000e+02 + -2.122319910255027e+02 + -2.130045931490896e+02 + -2.137794518362718e+02 + -2.145565715736208e+02 + -2.153359567999997e+02 + -2.161176119510612e+02 + -2.169015415764713e+02 + -2.176877501734888e+02 + -2.184762421224458e+02 + -2.192670219000000e+02 + -2.200600940505141e+02 + -2.208554631128035e+02 + -2.216531335679009e+02 + -2.224531098207831e+02 + -2.232553963999997e+02 + -2.240599978997985e+02 + -2.248669188401317e+02 + -2.256761637092654e+02 + -2.264877369816284e+02 + -2.273016432000000e+02 + -2.281178869415660e+02 + -2.289364727411434e+02 + -2.297574051254879e+02 + -2.305806886273285e+02 + -2.314063277999997e+02 + -2.322343272067604e+02 + -2.330646913987978e+02 + -2.338974249389632e+02 + -2.347325324124834e+02 + -2.355700184000000e+02 + -2.364098874788788e+02 + -2.372521442301691e+02 + -2.380967932316097e+02 + -2.389438390563173e+02 + -2.397932862999997e+02 + -2.406451395699314e+02 + -2.414994034603918e+02 + -2.423560825773335e+02 + -2.432151815494090e+02 + -2.440767050000000e+02 + -2.449406575494712e+02 + -2.458070438246558e+02 + -2.466758684438366e+02 + -2.475471360143982e+02 + -2.484208511999996e+02 + -2.492970186823550e+02 + -2.501756430678903e+02 + -2.510567289807632e+02 + -2.519402811010791e+02 + -2.528263041000000e+02 + -2.537148026392507e+02 + -2.546057813786489e+02 + -2.554992449908618e+02 + -2.563951981686694e+02 + -2.572936455999996e+02 + -2.581945919701986e+02 + -2.590980419711499e+02 + -2.600040002856254e+02 + -2.609124715849065e+02 + -2.618234606000000e+02 + -2.627369720784054e+02 + -2.636530106775519e+02 + -2.645715811006028e+02 + -2.654926881465747e+02 + -2.664163364999997e+02 + -2.673425308135112e+02 + -2.682712759281322e+02 + -2.692025766270102e+02 + -2.701364375396030e+02 + -2.710728634000000e+02 + -2.720118590149941e+02 + -2.729534291763713e+02 + -2.738975786300543e+02 + -2.748443120676544e+02 + -2.757936342999997e+02 + -2.767455501787848e+02 + -2.777000643997414e+02 + -2.786571816989448e+02 + -2.796169069311608e+02 + -2.805792449000000e+02 + -2.815442003833780e+02 + -2.825117782146733e+02 + -2.834819832031981e+02 + -2.844548201023671e+02 + -2.854302936999997e+02 + -2.864084088239409e+02 + -2.873891703596309e+02 + -2.883725831483384e+02 + -2.893586519481404e+02 + -2.903473816000000e+02 + -2.913387769892773e+02 + -2.923328429461174e+02 + -2.933295843055886e+02 + -2.943290059327143e+02 + -2.953311126999996e+02 + -2.963359094688269e+02 + -2.973434010446480e+02 + -2.983535922946355e+02 + -2.993664881931061e+02 + -3.003820936000000e+02 + -3.014004133189056e+02 + -3.024214522481863e+02 + -3.034452153213495e+02 + -3.044717074825456e+02 + -3.055009335999997e+02 + -3.065328985120693e+02 + -3.075676071368449e+02 + -3.086050644279766e+02 + -3.096452753553112e+02 + -3.106882447999996e+02 + -3.117339776182681e+02 + -3.127824787990806e+02 + -3.138337533166528e+02 + -3.148878060732492e+02 + -3.159446419999996e+02 + -3.170042660531784e+02 + -3.180666831989414e+02 + -3.191318984100575e+02 + -3.201999166629245e+02 + -3.212707428999996e+02 + -3.223443820580361e+02 + -3.234208391391681e+02 + -3.245001191331626e+02 + -3.255822269890704e+02 + -3.266671677000000e+02 + -3.277549462905472e+02 + -3.288455677875165e+02 + -3.299390371822755e+02 + -3.310353594166140e+02 + -3.321345394999996e+02 + -3.332365824854958e+02 + -3.343414934139734e+02 + -3.354492773045120e+02 + -3.365599391517927e+02 + -3.376734840000000e+02 + -3.387899169180687e+02 + -3.399092429402671e+02 + -3.410314670886827e+02 + -3.421565943845668e+02 + -3.432846298999996e+02 + -3.444155787253185e+02 + -3.455494458929433e+02 + -3.466862364711880e+02 + -3.478259555971263e+02 + -3.489686083000000e+02 + -3.501141995805723e+02 + -3.512627346186799e+02 + -3.524142185495274e+02 + -3.535686563776662e+02 + -3.547260531999996e+02 + -3.558864141649047e+02 + -3.570497443588797e+02 + -3.582160488781844e+02 + -3.593853328562213e+02 + -3.605576014000000e+02 + -3.617328596203877e+02 + -3.629111127187760e+02 + -3.640923658296630e+02 + -3.652766239636252e+02 + -3.664638922999996e+02 + -3.676541760949210e+02 + -3.688474804479435e+02 + -3.700438104641370e+02 + -3.712431713192604e+02 + -3.724455682000000e+02 + -3.736510062917217e+02 + -3.748594907617601e+02 + -3.760710267615897e+02 + -3.772856194324323e+02 + -3.785032739999995e+02 + -3.797239957155368e+02 + -3.809477897125092e+02 + -3.821746611611994e+02 + -3.834046153278488e+02 + -3.846376574000000e+02 + -3.858737925371631e+02 + -3.871130260109560e+02 + -3.883553630688227e+02 + -3.896008088834330e+02 + -3.908493686999996e+02 + -3.921010477895665e+02 + -3.933558513233559e+02 + -3.946137845264227e+02 + -3.958748527376295e+02 + -3.971390612000000e+02 + -3.984064151109821e+02 + -3.996769197585321e+02 + -4.009505804131749e+02 + -4.022274022910074e+02 + -4.035073906999995e+02 + -4.047905509809469e+02 + -4.060768883569506e+02 + -4.073664080804837e+02 + -4.086591154923789e+02 + -4.099550159000000e+02 + -4.112541145837781e+02 + -4.125564168232350e+02 + -4.138619279264533e+02 + -4.151706532436620e+02 + -4.164825980999995e+02 + -4.177977678009782e+02 + -4.191161676484082e+02 + -4.204378029703449e+02 + -4.217626791355866e+02 + -4.230908015000000e+02 + -4.244221753941545e+02 + -4.257568060915354e+02 + -4.270946989435893e+02 + -4.284358594322071e+02 + -4.297802928999995e+02 + -4.311280046181774e+02 + -4.324789999621266e+02 + -4.338332843406102e+02 + -4.351908631680312e+02 + -4.365517418000000e+02 + -4.379159255766193e+02 + -4.392834199290754e+02 + -4.406542302894571e+02 + -4.420283620541414e+02 + -4.434058205999995e+02 + -4.447866113008026e+02 + -4.461707395611302e+02 + -4.475582108324218e+02 + -4.489490306166049e+02 + -4.503432043000000e+02 + -4.517407372272212e+02 + -4.531416348857516e+02 + -4.545459027469901e+02 + -4.559535462055746e+02 + -4.573645706999994e+02 + -4.587789817092769e+02 + -4.601967847429616e+02 + -4.616179852648949e+02 + -4.630425886631084e+02 + -4.644706004000000e+02 + -4.659020259847504e+02 + -4.673368709042424e+02 + -4.687751406384571e+02 + -4.702168406679589e+02 + -4.716619764999995e+02 + -4.731105536500806e+02 + -4.745625775980045e+02 + -4.760180538297375e+02 + -4.774769878558138e+02 + -4.789393852000000e+02 + -4.804052513950263e+02 + -4.818745919803221e+02 + -4.833474124743740e+02 + -4.848237183656923e+02 + -4.863035151999994e+02 + -4.877868085453354e+02 + -4.892736039052198e+02 + -4.907639068268139e+02 + -4.922577229425711e+02 + -4.937550578000000e+02 + -4.952559169027076e+02 + -4.967603058178435e+02 + -4.982682301416788e+02 + -4.997796954853789e+02 + -5.012947073999994e+02 + -5.028132714194502e+02 + -5.043353931676896e+02 + -5.058610782730644e+02 + -5.073903323321115e+02 + -5.089231609000000e+02 + -5.104595695386481e+02 + -5.119995639358939e+02 + -5.135431497453484e+02 + -5.150903325247945e+02 + -5.166411178999995e+02 + -5.181955115300345e+02 + -5.197535190105982e+02 + -5.213151459679927e+02 + -5.228803980937674e+02 + -5.244492810000000e+02 + -5.260218002787250e+02 + -5.275979616609960e+02 + -5.291777708470047e+02 + -5.307612334400695e+02 + -5.323483550999995e+02 + -5.339391415258532e+02 + -5.355335984055753e+02 + -5.371317314077364e+02 + -5.387335461786030e+02 + -5.403390484000000e+02 + -5.419482437848817e+02 + -5.435611380730882e+02 + -5.451777369746786e+02 + -5.467980461477442e+02 + -5.484220712999994e+02 + -5.500498181706811e+02 + -5.516812924850077e+02 + -5.533164999617454e+02 + -5.549554463178829e+02 + -5.565981372999994e+02 + -5.582445786620732e+02 + -5.598947761113077e+02 + -5.615487353817318e+02 + -5.632064622631164e+02 + -5.648679624999994e+02 + -5.665332418238921e+02 + -5.682023060429622e+02 + -5.698751609401672e+02 + -5.715518122344557e+02 + -5.732322656999993e+02 + -5.749165271427032e+02 + -5.766046023386582e+02 + -5.782964970855437e+02 + -5.799922172195480e+02 + -5.816917684999994e+02 + -5.833951566715182e+02 + -5.851023876259811e+02 + -5.868134672043320e+02 + -5.885284011210334e+02 + -5.902471951999993e+02 + -5.919698553287222e+02 + -5.936963873375214e+02 + -5.954267970459595e+02 + -5.971610902818754e+02 + -5.988992728999993e+02 + -6.006413507613062e+02 + -6.023873296844711e+02 + -6.041372155081436e+02 + -6.058910141182311e+02 + -6.076487313999993e+02 + -6.094103732273231e+02 + -6.111759454411804e+02 + -6.129454539033432e+02 + -6.147189045204622e+02 + -6.164963032000001e+02 + -6.182776558378988e+02 + -6.200629682925465e+02 + -6.218522464515877e+02 + -6.236454962577363e+02 + -6.254427235999993e+02 + -6.272439343587159e+02 + -6.290491345295636e+02 + -6.308583300588987e+02 + -6.326715267788347e+02 + -6.344887306000001e+02 + -6.363099474872770e+02 + -6.381351833941451e+02 + -6.399644442896572e+02 + -6.417977361628546e+02 + -6.436350648999993e+02 + -6.454764363684590e+02 + -6.473218566292518e+02 + -6.491713317125350e+02 + -6.510248675271151e+02 + -6.528824700000000e+02 + -6.547441451008573e+02 + -6.566098988943567e+02 + -6.584797373808955e+02 + -6.603536664383599e+02 + -6.622316920999993e+02 + -6.641138204605409e+02 + -6.660000574329696e+02 + -6.678904089961051e+02 + -6.697848812885560e+02 + -6.716834803000000e+02 + -6.735862119462199e+02 + -6.754930822688247e+02 + -6.774040973560088e+02 + -6.793192633079277e+02 + -6.812385860999992e+02 + -6.831620716800010e+02 + -6.850897262089175e+02 + -6.870215557906422e+02 + -6.889575663679858e+02 + -6.908977640000001e+02 + -6.928421548145254e+02 + -6.947907448778678e+02 + -6.967435402481692e+02 + -6.987005469959722e+02 + -7.006617711999993e+02 + -7.026272189534540e+02 + -7.045968963883171e+02 + -7.065708096021641e+02 + -7.085489646318440e+02 + -7.105313676000000e+02 + -7.125180246666655e+02 + -7.145089419064375e+02 + -7.165041254104643e+02 + -7.185035813280965e+02 + -7.205073157999993e+02 + -7.225153349567163e+02 + -7.245276449240899e+02 + -7.265442518464891e+02 + -7.285651618951177e+02 + -7.305903812000000e+02 + -7.326199158832851e+02 + -7.346537721472801e+02 + -7.366919561576724e+02 + -7.387344740033407e+02 + -7.407813318999993e+02 + -7.428325361060332e+02 + -7.448880927069067e+02 + -7.469480078569493e+02 + -7.490122878703525e+02 + -7.510809389000000e+02 + -7.531539670309830e+02 + -7.552313785295614e+02 + -7.573131796529314e+02 + -7.593993765758833e+02 + -7.614899754999992e+02 + -7.635849826556215e+02 + -7.656844042998581e+02 + -7.677882466626152e+02 + -7.698965159244972e+02 + -7.720092183000000e+02 + -7.741263600422619e+02 + -7.762479474594095e+02 + -7.783739868214470e+02 + -7.805044843222228e+02 + -7.826394461999992e+02 + -7.847788787331309e+02 + -7.869227882276110e+02 + -7.890711809493379e+02 + -7.912240631015031e+02 + -7.933814410000000e+02 + -7.955433210068886e+02 + -7.977097093640062e+02 + -7.998806123337483e+02 + -8.020560362523712e+02 + -8.042359873999992e+02 + -8.064204720446323e+02 + -8.086094965664213e+02 + -8.108030673053524e+02 + -8.130011905039750e+02 + -8.152038725000000e+02 + -8.174111196729889e+02 + -8.196229383028856e+02 + -8.218393347070877e+02 + -8.240603152936806e+02 + -8.262858863999992e+02 + -8.285160543327190e+02 + -8.307508254786889e+02 + -8.329902062108882e+02 + -8.352342028550189e+02 + -8.374828218000000e+02 + -8.397360694583805e+02 + -8.419939521636865e+02 + -8.442564762682848e+02 + -8.465236481828920e+02 + -8.487954742999991e+02 + -8.510719610066617e+02 + -8.533531147279726e+02 + -8.556389418758610e+02 + -8.579294488297842e+02 + -8.602246420000000e+02 + -8.625245278111681e+02 + -8.648291126593311e+02 + -8.671384029773127e+02 + -8.694524052578884e+02 + -8.717711258999991e+02 + -8.740945712693658e+02 + -8.764227478547659e+02 + -8.787556621558366e+02 + -8.810933206360036e+02 + -8.834357297000000e+02 + -8.857828957473700e+02 + -8.881348253000285e+02 + -8.904915248639498e+02 + -8.928530008754832e+02 + -8.952192597999992e+02 + -8.975903081273602e+02 + -8.999661523549036e+02 + -9.023467989915350e+02 + -9.047322545556517e+02 + -9.071225255000001e+02 + -9.095176182642568e+02 + -9.119175394073789e+02 + -9.143222954857910e+02 + -9.167318930073794e+02 + -9.191463384999990e+02 + -9.215656384936522e+02 + -9.239897994653498e+02 + -9.264188279352956e+02 + -9.288527305046009e+02 + -9.312915136999991e+02 + -9.337351840217814e+02 + -9.361837480744202e+02 + -9.386372124507991e+02 + -9.410955836845210e+02 + -9.435588682999991e+02 + -9.460270728408829e+02 + -9.485002039375468e+02 + -9.509782681943145e+02 + -9.534612721474879e+02 + -9.559492223999991e+02 + -9.584421255818636e+02 + -9.609399882443452e+02 + -9.634428169536077e+02 + -9.659506183300578e+02 + -9.684633989999990e+02 + -9.709811655949806e+02 + -9.735039247636544e+02 + -9.760316831188370e+02 + -9.785644472182881e+02 + -9.811022236999991e+02 + -9.836450192407020e+02 + -9.861928404528198e+02 + -9.887456939756197e+02 + -9.913035865101050e+02 + -9.938665246999991e+02 + -9.964345151588749e+02 + -9.990075645416573e+02 + -1.001585679508894e+03 + -1.004168866725833e+03 + -1.006757132999999e+03 + -1.009350485088950e+03 + -1.011948929193798e+03 + -1.014552472017065e+03 + -1.017161121149714e+03 + -1.019774882999999e+03 + -1.022393763477281e+03 + -1.025017769745607e+03 + -1.027646908706880e+03 + -1.030281186449000e+03 + -1.032920609999999e+03 + -1.035565186772393e+03 + -1.038214923106640e+03 + -1.040869825393126e+03 + -1.043529900494233e+03 + -1.046195154999999e+03 + -1.048865595518282e+03 + -1.051541229525064e+03 + -1.054222063914517e+03 + -1.056908104442841e+03 + -1.059599357999999e+03 + -1.062295832060889e+03 + -1.064997533253958e+03 + -1.067704468147946e+03 + -1.070416643533965e+03 + -1.073134066000000e+03 + -1.075856742179453e+03 + -1.078584679453085e+03 + -1.081317884808236e+03 + -1.084056364390976e+03 + -1.086800124999999e+03 + -1.089549173751501e+03 + -1.092303517161580e+03 + -1.095063162007773e+03 + -1.097828115663242e+03 + -1.100598385000000e+03 + -1.103373976558467e+03 + -1.106154896984741e+03 + -1.108941153067517e+03 + -1.111732751768433e+03 + -1.114529699999999e+03 + -1.117332004656191e+03 + -1.120139672719820e+03 + -1.122952711033347e+03 + -1.125771126202256e+03 + -1.128594925000000e+03 + -1.131424114391635e+03 + -1.134258701616623e+03 + -1.137098693726371e+03 + -1.139944097362279e+03 + -1.142794918999999e+03 + -1.145651165298781e+03 + -1.148512843975744e+03 + -1.151379962155369e+03 + -1.154252525751212e+03 + -1.157130542000000e+03 + -1.160014018647746e+03 + -1.162902961796701e+03 + -1.165797378002409e+03 + -1.168697275086654e+03 + -1.171602659999999e+03 + -1.174513539162380e+03 + -1.177429919411751e+03 + -1.180351807863387e+03 + -1.183279211838743e+03 + -1.186212138000000e+03 + -1.189150592852472e+03 + -1.192094584016226e+03 + -1.195044118757429e+03 + -1.197999203418656e+03 + -1.200959844999999e+03 + -1.203926050837031e+03 + -1.206897827704460e+03 + -1.209875182550288e+03 + -1.212858122751144e+03 + -1.215846655000000e+03 + -1.218840785789916e+03 + -1.221840522671824e+03 + -1.224845872987532e+03 + -1.227856843385819e+03 + -1.230873440999999e+03 + -1.233895673111333e+03 + -1.236923546192640e+03 + -1.239957067026041e+03 + -1.242996243170224e+03 + -1.246041082000000e+03 + -1.249091590572761e+03 + -1.252147775334870e+03 + -1.255209643154299e+03 + -1.258277201722480e+03 + -1.261350457999999e+03 + -1.264429418673061e+03 + -1.267514091394071e+03 + -1.270604483350415e+03 + -1.273700600740823e+03 + -1.276802451000000e+03 + -1.279910042060014e+03 + -1.283023380429426e+03 + -1.286142472688095e+03 + -1.289267326090673e+03 + -1.292397947999999e+03 + -1.295534345774196e+03 + -1.298676526619691e+03 + -1.301824497524618e+03 + -1.304978265240164e+03 + -1.308137837000000e+03 + -1.311303220289759e+03 + -1.314474422298625e+03 + -1.317651449999705e+03 + -1.320834310180745e+03 + -1.324023009999999e+03 + -1.327217556910311e+03 + -1.330417958531748e+03 + -1.333624221890711e+03 + -1.336836353161044e+03 + -1.340054360000000e+03 + -1.343278250622039e+03 + -1.346508031450468e+03 + -1.349743709083262e+03 + -1.352985291084887e+03 + -1.356232784999999e+03 + -1.359486198143600e+03 + -1.362745537187869e+03 + -1.366010809195683e+03 + -1.369282022032803e+03 + -1.372559183000000e+03 + -1.375842299046690e+03 + -1.379131377356324e+03 + -1.382426425045151e+03 + -1.385727449081319e+03 + -1.389034456999999e+03 + -1.392347456524483e+03 + -1.395666454635196e+03 + -1.398991458464414e+03 + -1.402322475610563e+03 + -1.405659513000000e+03 + -1.409002577344138e+03 + -1.412351676333446e+03 + -1.415706817605260e+03 + -1.419068008353351e+03 + -1.422435255999999e+03 + -1.425808567964313e+03 + -1.429187950969556e+03 + -1.432573411998037e+03 + -1.435964958719179e+03 + -1.439362599000000e+03 + -1.442766340439504e+03 + -1.446176189225631e+03 + -1.449592152360744e+03 + -1.453014238529275e+03 + -1.456442454999999e+03 + -1.459876808245435e+03 + -1.463317305593544e+03 + -1.466763954627232e+03 + -1.470216762966463e+03 + -1.473675738000000e+03 + -1.477140887005819e+03 + -1.480612217422037e+03 + -1.484089736511155e+03 + -1.487573451238554e+03 + -1.491063368999999e+03 + -1.494559497483912e+03 + -1.498061844364458e+03 + -1.501570417048641e+03 + -1.505085222548716e+03 + -1.508606267999999e+03 + -1.512133560790714e+03 + -1.515667108906144e+03 + -1.519206919999463e+03 + -1.522753000996140e+03 + -1.526305358999999e+03 + -1.529864001422905e+03 + -1.533428936276007e+03 + -1.537000171179230e+03 + -1.540577712963951e+03 + -1.544161568999999e+03 + -1.547751747018138e+03 + -1.551348254621497e+03 + -1.554951099280540e+03 + -1.558560288310355e+03 + -1.562175828999999e+03 + -1.565797728689906e+03 + -1.569425994958102e+03 + -1.573060635400619e+03 + -1.576701657553543e+03 + -1.580349068999999e+03 + -1.584002877314684e+03 + -1.587663089901193e+03 + -1.591329713983250e+03 + -1.595002756657312e+03 + -1.598682225999999e+03 + -1.602368130282464e+03 + -1.606060476003810e+03 + -1.609759270166310e+03 + -1.613464521194204e+03 + -1.617176236999999e+03 + -1.620894424965112e+03 + -1.624619091996676e+03 + -1.628350245392540e+03 + -1.632087893195996e+03 + -1.635832042999999e+03 + -1.639582702219653e+03 + -1.643339878880967e+03 + -1.647103580589531e+03 + -1.650873814125992e+03 + -1.654650586999999e+03 + -1.658433907212865e+03 + -1.662223782656940e+03 + -1.666020220927786e+03 + -1.669823229228366e+03 + -1.673632814999999e+03 + -1.677448985879331e+03 + -1.681271749582079e+03 + -1.685101113981527e+03 + -1.688937087086922e+03 + -1.692779675999999e+03 + -1.696628887589857e+03 + -1.700484730162859e+03 + -1.704347211664743e+03 + -1.708216339003609e+03 + -1.712092119999999e+03 + -1.715974562928047e+03 + -1.719863675285195e+03 + -1.723759464515762e+03 + -1.727661938269359e+03 + -1.731571103999999e+03 + -1.735486969207614e+03 + -1.739409542118944e+03 + -1.743338830603560e+03 + -1.747274841733617e+03 + -1.751217582999999e+03 + -1.755167062315964e+03 + -1.759123288009624e+03 + -1.763086267739076e+03 + -1.767056008086542e+03 + -1.771032516999999e+03 + -1.775015803098183e+03 + -1.779005873908525e+03 + -1.783002736756524e+03 + -1.787006399126180e+03 + -1.791016869000000e+03 + -1.795034154506543e+03 + -1.799058263107071e+03 + -1.803089202321619e+03 + -1.807126980015989e+03 + -1.811171603999998e+03 + -1.815223082025504e+03 + -1.819281421835726e+03 + -1.823346631247284e+03 + -1.827418718154363e+03 + -1.831497690000000e+03 + -1.835583554215247e+03 + -1.839676319355180e+03 + -1.843775993459518e+03 + -1.847882583413063e+03 + -1.851996096999998e+03 + -1.856116542493618e+03 + -1.860243927542824e+03 + -1.864378259929794e+03 + -1.868519547846306e+03 + -1.872667799000000e+03 + -1.876823020804590e+03 + -1.880985220849939e+03 + -1.885154407199114e+03 + -1.889330588466962e+03 + -1.893513771999998e+03 + -1.897703964771626e+03 + -1.901901175652285e+03 + -1.906105412964281e+03 + -1.910316683519642e+03 + -1.914534995000000e+03 + -1.918760355678869e+03 + -1.922992773607248e+03 + -1.927232256642219e+03 + -1.931478812455566e+03 + -1.935732448999998e+03 + -1.939993174351127e+03 + -1.944260996306766e+03 + -1.948535922544343e+03 + -1.952817960710870e+03 + -1.957107119000000e+03 + -1.961403405774432e+03 + -1.965706828656891e+03 + -1.970017395435863e+03 + -1.974335114379128e+03 + -1.978659992999998e+03 + -1.982992038634364e+03 + -1.987331259958815e+03 + -1.991677665406797e+03 + -1.996031262526477e+03 + -2.000392059000000e+03 + -2.004760062662544e+03 + -2.009135281420714e+03 + -2.013517723394651e+03 + -2.017907396963966e+03 + -2.022304309999998e+03 + -2.026708470129302e+03 + -2.031119885371980e+03 + -2.035538563783372e+03 + -2.039964513323241e+03 + -2.044397742000000e+03 + -2.048838257821666e+03 + -2.053286068652342e+03 + -2.057741182613919e+03 + -2.062203608203423e+03 + -2.066673352999998e+03 + -2.071150424296029e+03 + -2.075634830690161e+03 + -2.080126580708826e+03 + -2.084625682242698e+03 + -2.089132143000000e+03 + -2.093645970720743e+03 + -2.098167173603271e+03 + -2.102695759983049e+03 + -2.107231738184183e+03 + -2.111775115999998e+03 + -2.116325901057278e+03 + -2.120884101683680e+03 + -2.125449726108530e+03 + -2.130022782163747e+03 + -2.134603278000000e+03 + -2.139191221924691e+03 + -2.143786621957349e+03 + -2.148389485981318e+03 + -2.152999821836896e+03 + -2.157617637999998e+03 + -2.162242943074696e+03 + -2.166875744534069e+03 + -2.171516050262848e+03 + -2.176163869133622e+03 + -2.180819209000000e+03 + -2.185482077327040e+03 + -2.190152482871076e+03 + -2.194830433950524e+03 + -2.199515937814626e+03 + -2.204209002999998e+03 + -2.208909638535144e+03 + -2.213617851857877e+03 + -2.218333650781778e+03 + -2.223057044225780e+03 + -2.227788040000000e+03 + -2.232526645541351e+03 + -2.237272869895315e+03 + -2.242026721580949e+03 + -2.246788207788726e+03 + -2.251557336999999e+03 + -2.256334118250544e+03 + -2.261118559161676e+03 + -2.265910667352767e+03 + -2.270710451040453e+03 + -2.275517918999998e+03 + -2.280333080014267e+03 + -2.285155941593499e+03 + -2.289986511539142e+03 + -2.294824798563590e+03 + -2.299670810999998e+03 + -2.304524556927484e+03 + -2.309386044592275e+03 + -2.314255282195762e+03 + -2.319132277836808e+03 + -2.324017039999998e+03 + -2.328909577220459e+03 + -2.333809897224200e+03 + -2.338718008145149e+03 + -2.343633918994289e+03 + -2.348557637999998e+03 + -2.353489172912608e+03 + -2.358428531797252e+03 + -2.363375723128402e+03 + -2.368330755820120e+03 + -2.373293637999998e+03 + -2.378264377427878e+03 + -2.383242982526706e+03 + -2.388229461889857e+03 + -2.393223824063392e+03 + -2.398226076999998e+03 + -2.403236228525699e+03 + -2.408254287477974e+03 + -2.413280262494937e+03 + -2.418314161547432e+03 + -2.423355992999998e+03 + -2.428405765403690e+03 + -2.433463486890615e+03 + -2.438529165661329e+03 + -2.443602810190047e+03 + -2.448684428999998e+03 + -2.453774030522361e+03 + -2.458871622761939e+03 + -2.463977214083831e+03 + -2.469090813490053e+03 + -2.474212428999998e+03 + -2.479342068313477e+03 + -2.484479740528551e+03 + -2.489625454539379e+03 + -2.494779218375099e+03 + -2.499941039999998e+03 + -2.505110927624773e+03 + -2.510288890409285e+03 + -2.515474937052364e+03 + -2.520669075212765e+03 + -2.525871312999998e+03 + -2.531081658990217e+03 + -2.536300122220549e+03 + -2.541526711425658e+03 + -2.546761434689014e+03 + -2.552004299999998e+03 + -2.557255315555890e+03 + -2.562514490474060e+03 + -2.567781833501355e+03 + -2.573057352510476e+03 + -2.578341055999998e+03 + -2.583632952807378e+03 + -2.588933051312229e+03 + -2.594241359879810e+03 + -2.599557887014108e+03 + -2.604882640999998e+03 + -2.610215630196411e+03 + -2.615556863841929e+03 + -2.620906350516468e+03 + -2.626264097579904e+03 + -2.631630113999998e+03 + -2.637004409331177e+03 + -2.642386991059378e+03 + -2.647777867311749e+03 + -2.653177047878767e+03 + -2.658584540999998e+03 + -2.664000354190328e+03 + -2.669424496446296e+03 + -2.674856976816473e+03 + -2.680297803844182e+03 + -2.685746985999998e+03 + -2.691204531699670e+03 + -2.696670449221115e+03 + -2.702144747143579e+03 + -2.707627434527642e+03 + -2.713118519999998e+03 + -2.718618011850782e+03 + -2.724125918263655e+03 + -2.729642247949266e+03 + -2.735167010382318e+03 + -2.740700213999998e+03 + -2.746241866699575e+03 + -2.751791977076697e+03 + -2.757350554006517e+03 + -2.762917606479738e+03 + -2.768493143000000e+03 + -2.774077171851313e+03 + -2.779669701724049e+03 + -2.785270741295763e+03 + -2.790880299095185e+03 + -2.796498383999998e+03 + -2.802125004968091e+03 + -2.807760170344632e+03 + -2.813403888501788e+03 + -2.819056168106567e+03 + -2.824717018000000e+03 + -2.830386447079949e+03 + -2.836064464083062e+03 + -2.841751077483182e+03 + -2.847446295475182e+03 + -2.853150126999998e+03 + -2.858862581346520e+03 + -2.864583667200011e+03 + -2.870313392988722e+03 + -2.876051767015894e+03 + -2.881798798000000e+03 + -2.887554494917011e+03 + -2.893318866668325e+03 + -2.899091922031221e+03 + -2.904873669618204e+03 + -2.910664117999998e+03 + -2.916463275808826e+03 + -2.922271151990944e+03 + -2.928087755363771e+03 + -2.933913094445438e+03 + -2.939747178000000e+03 + -2.945590014959967e+03 + -2.951441614226611e+03 + -2.957301984588625e+03 + -2.963171134666888e+03 + -2.969049072999998e+03 + -2.974935808208847e+03 + -2.980831349417174e+03 + -2.986735705755709e+03 + -2.992648886132359e+03 + -2.998570899000000e+03 + -3.004501752659864e+03 + -3.010441455936329e+03 + -3.016390017858416e+03 + -3.022347447554316e+03 + -3.028313753999998e+03 + -3.034288946006182e+03 + -3.040273032141582e+03 + -3.046266021078663e+03 + -3.052267921739149e+03 + -3.058278743000000e+03 + -3.064298493698561e+03 + -3.070327182685398e+03 + -3.076364818827055e+03 + -3.082411411001809e+03 + -3.088466967999998e+03 + -3.094531498652569e+03 + -3.100605012177602e+03 + -3.106687517554494e+03 + -3.112779023262762e+03 + -3.118879538000000e+03 + -3.124989070695736e+03 + -3.131107630527278e+03 + -3.137235226491168e+03 + -3.143371867254447e+03 + -3.149517561999998e+03 + -3.155672319953097e+03 + -3.161836149115856e+03 + -3.168009058152651e+03 + -3.174191057129923e+03 + -3.180382155000000e+03 + -3.186582360055111e+03 + -3.192791681144167e+03 + -3.199010127274887e+03 + -3.205237707493432e+03 + -3.211474430999998e+03 + -3.217720306909038e+03 + -3.223975343611381e+03 + -3.230239549889151e+03 + -3.236512935355519e+03 + -3.242795509000000e+03 + -3.249087279482800e+03 + -3.255388255944051e+03 + -3.261698447489179e+03 + -3.268017862963467e+03 + -3.274346510999998e+03 + -3.280684400401313e+03 + -3.287031541121871e+03 + -3.293387942369432e+03 + -3.299753611888159e+03 + -3.306128559000000e+03 + -3.312512793688797e+03 + -3.318906324190636e+03 + -3.325309159228279e+03 + -3.331721308860119e+03 + -3.338142781999998e+03 + -3.344573586933190e+03 + -3.351013732692941e+03 + -3.357463228591956e+03 + -3.363922084041577e+03 + -3.370390307999997e+03 + -3.376867909193196e+03 + -3.383354896616435e+03 + -3.389851279509897e+03 + -3.396357067337695e+03 + -3.402872268999997e+03 + -3.409396893188545e+03 + -3.415930949268335e+03 + -3.422474446597307e+03 + -3.429027394238212e+03 + -3.435589800999997e+03 + -3.442161675674332e+03 + -3.448743027574159e+03 + -3.455333866086035e+03 + -3.461934200499129e+03 + -3.468544039999997e+03 + -3.475163393634110e+03 + -3.481792270131310e+03 + -3.488430678432703e+03 + -3.495078627927044e+03 + -3.501736127999997e+03 + -3.508403187927853e+03 + -3.515079816661691e+03 + -3.521766023349286e+03 + -3.528461817510494e+03 + -3.535167207999998e+03 + -3.541882203477436e+03 + -3.548606813620608e+03 + -3.555341047964333e+03 + -3.562084915431213e+03 + -3.568838424999997e+03 + -3.575601585773337e+03 + -3.582374407066678e+03 + -3.589156898185297e+03 + -3.595949068354316e+03 + -3.602750926999998e+03 + -3.609562483468940e+03 + -3.616383746264014e+03 + -3.623214724488114e+03 + -3.630055428392298e+03 + -3.636905866999997e+03 + -3.643766048793625e+03 + -3.650635983516456e+03 + -3.657515680680700e+03 + -3.664405149014039e+03 + -3.671304397999997e+03 + -3.678213437374473e+03 + -3.685132275760156e+03 + -3.692060922035369e+03 + -3.698999385901594e+03 + -3.705947676999997e+03 + -3.712905804797643e+03 + -3.719873778403308e+03 + -3.726851606752037e+03 + -3.733839298718909e+03 + -3.740836863999997e+03 + -3.747844312547997e+03 + -3.754861653211674e+03 + -3.761888895074585e+03 + -3.768926047955085e+03 + -3.775973120999997e+03 + -3.783030123074376e+03 + -3.790097063813473e+03 + -3.797173952745452e+03 + -3.804260798968512e+03 + -3.811357611999997e+03 + -3.818464401472386e+03 + -3.825581176303607e+03 + -3.832707945585785e+03 + -3.839844718954238e+03 + -3.846991505999998e+03 + -3.854148316201428e+03 + -3.861315158822798e+03 + -3.868492043129635e+03 + -3.875678978458987e+03 + -3.882875973999997e+03 + -3.890083038997269e+03 + -3.897300183310783e+03 + -3.904527416633095e+03 + -3.911764748154242e+03 + -3.919012186999997e+03 + -3.926269742452437e+03 + -3.933537424464352e+03 + -3.940815242621297e+03 + -3.948103205720294e+03 + -3.955401322999997e+03 + -3.962709604107895e+03 + -3.970028058998795e+03 + -3.977356697163350e+03 + -3.984695527326294e+03 + -3.992044558999997e+03 + -3.999403802144854e+03 + -4.006773266302151e+03 + -4.014152960820400e+03 + -4.021542894928240e+03 + -4.028943077999997e+03 + -4.036353519583599e+03 + -4.043774229513202e+03 + -4.051205217431756e+03 + -4.058646492564995e+03 + -4.066098063999997e+03 + -4.073559940995820e+03 + -4.081032133755226e+03 + -4.088514652104142e+03 + -4.096007504979870e+03 + -4.103510702000000e+03 + -4.111024253097677e+03 + -4.118548167510886e+03 + -4.126082454416708e+03 + -4.133627123225803e+03 + -4.141182184000000e+03 + -4.148747646853033e+03 + -4.156323520486682e+03 + -4.163909814098826e+03 + -4.171506538118098e+03 + -4.179113701999993e+03 + -4.186731314728609e+03 + -4.194359386189681e+03 + -4.201997926116393e+03 + -4.209646943720986e+03 + -4.217306449000000e+03 + -4.224976452122954e+03 + -4.232656961817923e+03 + -4.240347987240753e+03 + -4.248049538718602e+03 + -4.255761626000000e+03 + -4.263484258397591e+03 + -4.271217445246016e+03 + -4.278961196276451e+03 + -4.286715521743729e+03 + -4.294480431000000e+03 + -4.302255933066315e+03 + -4.310042038085233e+03 + -4.317838756007569e+03 + -4.325646096087124e+03 + -4.333464067999995e+03 + -4.341292681602012e+03 + -4.349131946225953e+03 + -4.356981871466000e+03 + -4.364842467485710e+03 + -4.372713744000000e+03 + -4.380595710372718e+03 + -4.388488375861229e+03 + -4.396391750264422e+03 + -4.404305844160006e+03 + -4.412230667000000e+03 + -4.420166227736474e+03 + -4.428112536405837e+03 + -4.436069603088062e+03 + -4.444037437481978e+03 + -4.452016049000000e+03 + -4.460005447074678e+03 + -4.468005641867199e+03 + -4.476016643204103e+03 + -4.484038460200805e+03 + -4.492071102999995e+03 + -4.500114582060231e+03 + -4.508168906299815e+03 + -4.516234085098625e+03 + -4.524310129075975e+03 + -4.532397048000000e+03 + -4.540494851104932e+03 + -4.548603547974418e+03 + -4.556723148595408e+03 + -4.564853663376500e+03 + -4.572995102000000e+03 + -4.581147473755137e+03 + -4.589310788334117e+03 + -4.597485055595826e+03 + -4.605670285497996e+03 + -4.613866488000000e+03 + -4.622073673035890e+03 + -4.630291850451470e+03 + -4.638521029781397e+03 + -4.646761220207367e+03 + -4.655012431999994e+03 + -4.663274675842531e+03 + -4.671547961173437e+03 + -4.679832297267551e+03 + -4.688127693710799e+03 + -4.696434161000000e+03 + -4.704751709752170e+03 + -4.713080348793824e+03 + -4.721420087561993e+03 + -4.729770937031085e+03 + -4.738132907000000e+03 + -4.746506006604411e+03 + -4.754890245715343e+03 + -4.763285634540516e+03 + -4.771692183448750e+03 + -4.780109901999994e+03 + -4.788538799466528e+03 + -4.796978886096308e+03 + -4.805430172162917e+03 + -4.813892667577567e+03 + -4.822366381999994e+03 + -4.830851325088147e+03 + -4.839347507060687e+03 + -4.847854938123849e+03 + -4.856373628221604e+03 + -4.864903587000000e+03 + -4.873444824101478e+03 + -4.881997349859994e+03 + -4.890561174364984e+03 + -4.899136307099045e+03 + -4.907722758000000e+03 + -4.916320537362784e+03 + -4.924929655587317e+03 + -4.933550122528648e+03 + -4.942181947260091e+03 + -4.950825139999994e+03 + -4.959479711457802e+03 + -4.968145671175524e+03 + -4.976823028809056e+03 + -4.985511794647833e+03 + -4.994211978999993e+03 + -5.002923592007461e+03 + -5.011646643245516e+03 + -5.020381142480443e+03 + -5.029127099988444e+03 + -5.037884526000000e+03 + -5.046653430641881e+03 + -5.055433823857634e+03 + -5.064225715527905e+03 + -5.073029115529123e+03 + -5.081844034000000e+03 + -5.090670481166524e+03 + -5.099508466925161e+03 + -5.108358001180135e+03 + -5.117219094017154e+03 + -5.126091755999993e+03 + -5.134975997626908e+03 + -5.143871827953957e+03 + -5.152779256704796e+03 + -5.161698295082459e+03 + -5.170628952999993e+03 + -5.179571239778229e+03 + -5.188525166029071e+03 + -5.197490742130520e+03 + -5.206467977662855e+03 + -5.215456883000000e+03 + -5.224457468752808e+03 + -5.233469744262066e+03 + -5.242493719420175e+03 + -5.251529405361101e+03 + -5.260576812000000e+03 + -5.269635948683524e+03 + -5.278706825911151e+03 + -5.287789454172008e+03 + -5.296883843495917e+03 + -5.305990003999993e+03 + -5.315107945871962e+03 + -5.324237679253967e+03 + -5.333379214299059e+03 + -5.342532561186867e+03 + -5.351697729999993e+03 + -5.360874730862462e+03 + -5.370063574314554e+03 + -5.379264270604972e+03 + -5.388476829418795e+03 + -5.397701261000000e+03 + -5.406937575887649e+03 + -5.416185784228891e+03 + -5.425445896082409e+03 + -5.434717921547790e+03 + -5.444001871000000e+03 + -5.453297754883592e+03 + -5.462605583222671e+03 + -5.471925366229407e+03 + -5.481257114511772e+03 + -5.490600837999993e+03 + -5.499956546429602e+03 + -5.509324250592133e+03 + -5.518703961068116e+03 + -5.528095687743725e+03 + -5.537499440999993e+03 + -5.546915231361128e+03 + -5.556343068498348e+03 + -5.565782962476614e+03 + -5.575234924238452e+03 + -5.584698964000000e+03 + -5.594175091687396e+03 + -5.603663318133420e+03 + -5.613163653827974e+03 + -5.622676108416792e+03 + -5.632200692000000e+03 + -5.641737415094019e+03 + -5.651286288507457e+03 + -5.660847322604374e+03 + -5.670420527008017e+03 + -5.680005911999993e+03 + -5.689603488367688e+03 + -5.699213267038800e+03 + -5.708835258184300e+03 + -5.718469470901945e+03 + -5.728115915999992e+03 + -5.737774605002216e+03 + -5.747445547634946e+03 + -5.757128753652110e+03 + -5.766824233562706e+03 + -5.776531998000000e+03 + -5.786252057564687e+03 + -5.795984422575620e+03 + -5.805729103393980e+03 + -5.815486110517342e+03 + -5.825255454000000e+03 + -5.835037143865786e+03 + -5.844831191184440e+03 + -5.854637606668529e+03 + -5.864456400127173e+03 + -5.874287581999993e+03 + -5.884131163070459e+03 + -5.893987153665426e+03 + -5.903855564090225e+03 + -5.913736404781277e+03 + -5.923629686000000e+03 + -5.933535418061928e+03 + -5.943453611973397e+03 + -5.953384278439786e+03 + -5.963327427438455e+03 + -5.973283069000000e+03 + -5.983251213525049e+03 + -5.993231872573540e+03 + -6.003225056744913e+03 + -6.013230774891098e+03 + -6.023249038000000e+03 + -6.033279857947543e+03 + -6.043323244258373e+03 + -6.053379206808452e+03 + -6.063447756872029e+03 + -6.073528904999992e+03 + -6.083622661322729e+03 + -6.093729036471069e+03 + -6.103848041095609e+03 + -6.113979685699232e+03 + -6.124123981000000e+03 + -6.134280937646101e+03 + -6.144450565430006e+03 + -6.154632874755873e+03 + -6.164827877191976e+03 + -6.175035583000000e+03 + -6.185256001935748e+03 + -6.195489145360168e+03 + -6.205735024246584e+03 + -6.215993648382001e+03 + -6.226265028000000e+03 + -6.236549173839082e+03 + -6.246846097225249e+03 + -6.257155808917487e+03 + -6.267478318647532e+03 + -6.277813636999993e+03 + -6.288161775039973e+03 + -6.298522743318929e+03 + -6.308896552332133e+03 + -6.319283212690151e+03 + -6.329682735000000e+03 + -6.340095129841887e+03 + -6.350520407726451e+03 + -6.360958579315570e+03 + -6.371409655512612e+03 + -6.381873647000000e+03 + -6.392350564293673e+03 + -6.402840417873253e+03 + -6.413343218449801e+03 + -6.423858977046060e+03 + -6.434387704000000e+03 + -6.444929409479182e+03 + -6.455484104800415e+03 + -6.466051800878468e+03 + -6.476632507643834e+03 + -6.487226235999992e+03 + -6.497832997260840e+03 + -6.508452801649206e+03 + -6.519085659445890e+03 + -6.529731581482401e+03 + -6.540390579000000e+03 + -6.551062663116751e+03 + -6.561747843536938e+03 + -6.572446130639311e+03 + -6.583157536279329e+03 + -6.593882071000000e+03 + -6.604619744763902e+03 + -6.615370568925604e+03 + -6.626134554413510e+03 + -6.636911711064461e+03 + -6.647702049999992e+03 + -6.658505582840396e+03 + -6.669322319643610e+03 + -6.680152270785791e+03 + -6.690995447680221e+03 + -6.701851860999993e+03 + -6.712721521095499e+03 + -6.723604439166686e+03 + -6.734500626205399e+03 + -6.745410092579864e+03 + -6.756332849000000e+03 + -6.767268906377159e+03 + -6.778218275408767e+03 + -6.789180966973428e+03 + -6.800156992270870e+03 + -6.811146362000000e+03 + -6.822149086596000e+03 + -6.833165176809022e+03 + -6.844194643583943e+03 + -6.855237498022965e+03 + -6.866293750999992e+03 + -6.877363413246921e+03 + -6.888446495554016e+03 + -6.899543008749155e+03 + -6.910652963678518e+03 + -6.921776370999992e+03 + -6.932913241460104e+03 + -6.944063586638155e+03 + -6.955227417524035e+03 + -6.966404743973952e+03 + -6.977595577000000e+03 + -6.988799928187199e+03 + -7.000017808173458e+03 + -7.011249227729020e+03 + -7.022494198140058e+03 + -7.033752730000000e+03 + -7.045024833685246e+03 + -7.056310520605544e+03 + -7.067609802022496e+03 + -7.078922688575014e+03 + -7.090249190999992e+03 + -7.101589320140114e+03 + -7.112943086874141e+03 + -7.124310502404821e+03 + -7.135691578318693e+03 + -7.147086324999992e+03 + -7.158494752468790e+03 + -7.169916872475182e+03 + -7.181352696510882e+03 + -7.192802235036809e+03 + -7.204265499000000e+03 + -7.215742499578333e+03 + -7.227233247391960e+03 + -7.238737753333357e+03 + -7.250256028887258e+03 + -7.261788085000000e+03 + -7.273333932305611e+03 + -7.284893581718426e+03 + -7.296467044458082e+03 + -7.308054332025791e+03 + -7.319655454999992e+03 + -7.331270423697963e+03 + -7.342899249833889e+03 + -7.354541944862027e+03 + -7.366198519315069e+03 + -7.377868983999992e+03 + -7.389553350032372e+03 + -7.401251628839381e+03 + -7.412963831476617e+03 + -7.424689968390403e+03 + -7.436430051000000e+03 + -7.448184091042194e+03 + -7.459952098877861e+03 + -7.471734085033887e+03 + -7.483530060856024e+03 + -7.495340038000000e+03 + -7.507164027981260e+03 + -7.519002041143363e+03 + -7.530854088088799e+03 + -7.542720180263871e+03 + -7.554600328999991e+03 + -7.566494545476364e+03 + -7.578402840747203e+03 + -7.590325225748156e+03 + -7.602261711334166e+03 + -7.614212308999990e+03 + -7.626177030375796e+03 + -7.638155885970103e+03 + -7.650148886679111e+03 + -7.662156044359298e+03 + -7.674177370000000e+03 + -7.686212874133715e+03 + -7.698262567927072e+03 + -7.710326462858042e+03 + -7.722404570574414e+03 + -7.734496902000000e+03 + -7.746603467726753e+03 + -7.758724278933637e+03 + -7.770859347070250e+03 + -7.783008683730720e+03 + -7.795172299999991e+03 + -7.807350206747154e+03 + -7.819542415323729e+03 + -7.831748936928582e+03 + -7.843969782379609e+03 + -7.856204962999991e+03 + -7.868454490389281e+03 + -7.880718375856472e+03 + -7.892996630459527e+03 + -7.905289265033489e+03 + -7.917596291000000e+03 + -7.929917719977670e+03 + -7.942253562811284e+03 + -7.954603830544003e+03 + -7.966968534806996e+03 + -7.979347687000000e+03 + -7.991741298275563e+03 + -8.004149379532312e+03 + -8.016571941875890e+03 + -8.029008996834256e+03 + -8.041460555999991e+03 + -8.053926630829063e+03 + -8.066407232164392e+03 + -8.078902371093302e+03 + -8.091412059283156e+03 + -8.103936307999991e+03 + -8.116475128348727e+03 + -8.129028531951320e+03 + -8.141596530160446e+03 + -8.154179133753471e+03 + -8.166776354000000e+03 + -8.179388202500601e+03 + -8.192014690774517e+03 + -8.204655830155478e+03 + -8.217311631752342e+03 + -8.229982107000000e+03 + -8.242667267443709e+03 + -8.255367124181290e+03 + -8.268081688506129e+03 + -8.280810972124258e+03 + -8.293554985999990e+03 + -8.306313740930424e+03 + -8.319087249046417e+03 + -8.331875522237864e+03 + -8.344678571514016e+03 + -8.357496408000001e+03 + -8.370329042981793e+03 + -8.383176487893126e+03 + -8.396038754236946e+03 + -8.408915853538949e+03 + -8.421807796999999e+03 + -8.434714595760075e+03 + -8.447636261558551e+03 + -8.460572806112319e+03 + -8.473524240852536e+03 + -8.486490577000000e+03 + -8.499471825734363e+03 + -8.512467998550057e+03 + -8.525479106914012e+03 + -8.538505162160651e+03 + -8.551546175999989e+03 + -8.564602160205039e+03 + -8.577673125806519e+03 + -8.590759084111069e+03 + -8.603860047081474e+03 + -8.616976026000000e+03 + -8.630107031891077e+03 + -8.643253076647045e+03 + -8.656414171854482e+03 + -8.669590328370747e+03 + -8.682781558000001e+03 + -8.695987872906602e+03 + -8.709209284090668e+03 + -8.722445802791402e+03 + -8.735697441007769e+03 + -8.748964210000000e+03 + -8.762246120773598e+03 + -8.775543185390141e+03 + -8.788855415760128e+03 + -8.802182823160678e+03 + -8.815525418999991e+03 + -8.828883214778334e+03 + -8.842256221886048e+03 + -8.855644451817980e+03 + -8.869047916276779e+03 + -8.882466627000000e+03 + -8.895900595656447e+03 + -8.909349833599377e+03 + -8.922814352320849e+03 + -8.936294163622882e+03 + -8.949789279000001e+03 + -8.963299709806102e+03 + -8.976825467697834e+03 + -8.990366564425331e+03 + -9.003923011733321e+03 + -9.017494820999989e+03 + -9.031082003570244e+03 + -9.044684571593196e+03 + -9.058302536801553e+03 + -9.071935910043938e+03 + -9.085584702999991e+03 + -9.099248927805194e+03 + -9.112928596071970e+03 + -9.126623719398038e+03 + -9.140334309541779e+03 + -9.154060378000000e+03 + -9.167801936143134e+03 + -9.181558995552323e+03 + -9.195331568052554e+03 + -9.209119665711642e+03 + -9.222923300000000e+03 + -9.236742482191501e+03 + -9.250577224366738e+03 + -9.264427538348678e+03 + -9.278293435300837e+03 + -9.292174926999989e+03 + -9.306072025514850e+03 + -9.319984742353185e+03 + -9.333913089239737e+03 + -9.347857078372264e+03 + -9.361816720999988e+03 + -9.375792028076301e+03 + -9.389783011923670e+03 + -9.403789684689073e+03 + -9.417812057757259e+03 + -9.431850143000000e+03 + -9.445903952452922e+03 + -9.459973497383473e+03 + -9.474058789280491e+03 + -9.488159840242311e+03 + -9.502276662000000e+03 + -9.516409266099370e+03 + -9.530557664431180e+03 + -9.544721868948835e+03 + -9.558901891554557e+03 + -9.573097743999990e+03 + -9.587309437907974e+03 + -9.601536984771086e+03 + -9.615780396443668e+03 + -9.630039685320193e+03 + -9.644314862999989e+03 + -9.658605940694017e+03 + -9.672912930240365e+03 + -9.687235843732506e+03 + -9.701574693379191e+03 + -9.715929491000001e+03 + -9.730300248146514e+03 + -9.744686976337332e+03 + -9.759089687418043e+03 + -9.773508393705906e+03 + -9.787943106999999e+03 + -9.802393838806964e+03 + -9.816860600913731e+03 + -9.831343405392694e+03 + -9.845842264577648e+03 + -9.860357189999990e+03 + -9.874888192875391e+03 + -9.889435285292540e+03 + -9.903998479577405e+03 + -9.918577788007758e+03 + -9.933173221999989e+03 + -9.947784792760667e+03 + -9.962412512866247e+03 + -9.977056394630243e+03 + -9.991716449514770e+03 + -1.000639269000000e+04 + -1.002108512827329e+04 + -1.003579377260607e+04 + -1.005051863510592e+04 + -1.006525973450424e+04 + -1.008001708000000e+04 + -1.009479067738785e+04 + -1.010958054488143e+04 + -1.012438669671707e+04 + -1.013920913701616e+04 + -1.015404787999999e+04 + -1.016890294387830e+04 + -1.018377433451942e+04 + -1.019866206104612e+04 + -1.021356614193473e+04 + -1.022848658999999e+04 + -1.024342341422066e+04 + -1.025837662498870e+04 + -1.027334623400460e+04 + -1.028833225445739e+04 + -1.030333470000000e+04 + -1.031835358368700e+04 + -1.033338891534757e+04 + -1.034844070623467e+04 + -1.036350897076085e+04 + -1.037859372000000e+04 + -1.039369496373519e+04 + -1.040881271589677e+04 + -1.042394698923176e+04 + -1.043909779325773e+04 + -1.045426513999999e+04 + -1.046944904320307e+04 + -1.048464951626011e+04 + -1.049986657147346e+04 + -1.051510021951631e+04 + -1.053035046999999e+04 + -1.054561733346490e+04 + -1.056090082649770e+04 + -1.057620096382862e+04 + -1.059151775501402e+04 + -1.060685121000000e+04 + -1.062220133982168e+04 + -1.063756815769902e+04 + -1.065295167679853e+04 + -1.066835190951487e+04 + -1.068376887000000e+04 + -1.069920257172756e+04 + -1.071465302083269e+04 + -1.073012022736731e+04 + -1.074560420973240e+04 + -1.076110497999999e+04 + -1.077662254698522e+04 + -1.079215692468130e+04 + -1.080770812602064e+04 + -1.082327616047952e+04 + -1.083886103999999e+04 + -1.085446277832030e+04 + -1.087008138917964e+04 + -1.088571688451933e+04 + -1.090136927381244e+04 + -1.091703857000000e+04 + -1.093272478707855e+04 + -1.094842793381667e+04 + -1.096414802233435e+04 + -1.097988507119364e+04 + -1.099563909000000e+04 + -1.101141008471468e+04 + -1.102719807131307e+04 + -1.104300306633410e+04 + -1.105882508291791e+04 + -1.107466412999999e+04 + -1.109052021511841e+04 + -1.110639335038349e+04 + -1.112228355101184e+04 + -1.113819083451417e+04 + -1.115411520999999e+04 + -1.117005668368749e+04 + -1.118601527242516e+04 + -1.120199099177015e+04 + -1.121798385114509e+04 + -1.123399386000000e+04 + -1.125002102929127e+04 + -1.126606537454743e+04 + -1.128212691149971e+04 + -1.129820565394142e+04 + -1.131430161000000e+04 + -1.133041478676655e+04 + -1.134654520134832e+04 + -1.136269286880464e+04 + -1.137885779750048e+04 + -1.139503999999999e+04 + -1.141123949060806e+04 + -1.142745627830015e+04 + -1.144369037489935e+04 + -1.145994179819328e+04 + -1.147621056000000e+04 + -1.149249666929363e+04 + -1.150880014040390e+04 + -1.152512098586926e+04 + -1.154145921396878e+04 + -1.155781484000000e+04 + -1.157418788116290e+04 + -1.159057834325663e+04 + -1.160698623573862e+04 + -1.162341157750990e+04 + -1.163985437999999e+04 + -1.165631465167572e+04 + -1.167279241049137e+04 + -1.168928767028212e+04 + -1.170580043559586e+04 + -1.172233071999999e+04 + -1.173887854137991e+04 + -1.175544390951204e+04 + -1.177202683447122e+04 + -1.178862732998528e+04 + -1.180524541000000e+04 + -1.182188108744826e+04 + -1.183853437152247e+04 + -1.185520527417456e+04 + -1.187189381268968e+04 + -1.188860000000000e+04 + -1.190532384555031e+04 + -1.192206535739879e+04 + -1.193882454957090e+04 + -1.195560144455150e+04 + -1.197239604999999e+04 + -1.198920836801576e+04 + -1.200603841862060e+04 + -1.202288622005816e+04 + -1.203975178087160e+04 + -1.205663510999999e+04 + -1.207353621858988e+04 + -1.209045512337030e+04 + -1.210739183876488e+04 + -1.212434637372514e+04 + -1.214131874000000e+04 + -1.215830895146994e+04 + -1.217531702204386e+04 + -1.219234296344827e+04 + -1.220938678454126e+04 + -1.222644850000000e+04 + -1.224352812665298e+04 + -1.226062567426862e+04 + -1.227774115320455e+04 + -1.229487457740941e+04 + -1.231202595999999e+04 + -1.232919531361497e+04 + -1.234638265190763e+04 + -1.236358798719477e+04 + -1.238081132944854e+04 + -1.239805268999999e+04 + -1.241531208224867e+04 + -1.243258952373459e+04 + -1.244988502746729e+04 + -1.246719859854622e+04 + -1.248453025000000e+04 + -1.250187999937352e+04 + -1.251924785997314e+04 + -1.253663384322633e+04 + -1.255403795942784e+04 + -1.257146022000000e+04 + -1.258890063824787e+04 + -1.260635923174130e+04 + -1.262383601348307e+04 + -1.264133098848631e+04 + -1.265884416999999e+04 + -1.267637557565735e+04 + -1.269392521755929e+04 + -1.271149310837373e+04 + -1.272907926320349e+04 + -1.274668368999999e+04 + -1.276430639533002e+04 + -1.278194739917555e+04 + -1.279960671868295e+04 + -1.281728436173200e+04 + -1.283498034000000e+04 + -1.285269466774105e+04 + -1.287042735763161e+04 + -1.288817842259290e+04 + -1.290594787633268e+04 + -1.292373573000000e+04 + -1.294154199365508e+04 + -1.295936667981993e+04 + -1.297720980264566e+04 + -1.299507137776778e+04 + -1.301295141999999e+04 + -1.303084994203483e+04 + -1.304876695061188e+04 + -1.306670245535235e+04 + -1.308465647270176e+04 + -1.310262901999999e+04 + -1.312062011245361e+04 + -1.313862975604251e+04 + -1.315665796055223e+04 + -1.317470474462057e+04 + -1.319277012000000e+04 + -1.321085409533674e+04 + -1.322895668661698e+04 + -1.324707790969205e+04 + -1.326521777718879e+04 + -1.328337630000000e+04 + -1.330155348851537e+04 + -1.331974935491385e+04 + -1.333796391362056e+04 + -1.335619718140170e+04 + -1.337444916999999e+04 + -1.339271988874384e+04 + -1.341100935082290e+04 + -1.342931756987852e+04 + -1.344764455872234e+04 + -1.346599032999999e+04 + -1.348435489664480e+04 + -1.350273827293541e+04 + -1.352114047045672e+04 + -1.353956149695641e+04 + -1.355800137000000e+04 + -1.357646010972569e+04 + -1.359493772045508e+04 + -1.361343421245217e+04 + -1.363194960986463e+04 + -1.365048392000000e+04 + -1.366903714425879e+04 + -1.368760930691950e+04 + -1.370620042690972e+04 + -1.372481050688227e+04 + -1.374343955999999e+04 + -1.376208760473736e+04 + -1.378075465005087e+04 + -1.379944070672178e+04 + -1.381814579185646e+04 + -1.383686991999999e+04 + -1.385561310323773e+04 + -1.387437535187516e+04 + -1.389315667691767e+04 + -1.391195709130158e+04 + -1.393077661000000e+04 + -1.394961524865979e+04 + -1.396847302075987e+04 + -1.398734993803961e+04 + -1.400624601054151e+04 + -1.402516125000000e+04 + -1.404409566989268e+04 + -1.406304928589068e+04 + -1.408202211294199e+04 + -1.410101416389908e+04 + -1.412002544999999e+04 + -1.413905598164077e+04 + -1.415810576964489e+04 + -1.417717482985645e+04 + -1.419626318438561e+04 + -1.421537083999999e+04 + -1.423449779870650e+04 + -1.425364408441530e+04 + -1.427280971628262e+04 + -1.429199469812906e+04 + -1.431119904000000e+04 + -1.433042275698022e+04 + -1.434966586475864e+04 + -1.436892837784737e+04 + -1.438821030874347e+04 + -1.440751167000000e+04 + -1.442683247464153e+04 + -1.444617273693482e+04 + -1.446553246845352e+04 + -1.448491167696990e+04 + -1.450431037999999e+04 + -1.452372859766022e+04 + -1.454316633455064e+04 + -1.456262360064903e+04 + -1.458210041914065e+04 + -1.460159679999998e+04 + -1.462111274782618e+04 + -1.464064828275210e+04 + -1.466020342227678e+04 + -1.467977817411577e+04 + -1.469937255000000e+04 + -1.471898656425745e+04 + -1.473862022905967e+04 + -1.475827355783788e+04 + -1.477794656667906e+04 + -1.479763927000000e+04 + -1.481735168022591e+04 + -1.483708380678435e+04 + -1.485683566151257e+04 + -1.487660726097236e+04 + -1.489639861999999e+04 + -1.491620975095499e+04 + -1.493604066191429e+04 + -1.495589136614776e+04 + -1.497576188555746e+04 + -1.499565223000000e+04 + -1.501556240451360e+04 + -1.503549242791256e+04 + -1.505544231896391e+04 + -1.507541209051985e+04 + -1.509540175000000e+04 + -1.511541130465759e+04 + -1.513544077375174e+04 + -1.515549017500820e+04 + -1.517555951933053e+04 + -1.519564881999999e+04 + -1.521575809081157e+04 + -1.523588734003694e+04 + -1.525603658036919e+04 + -1.527620583277191e+04 + -1.529639510999998e+04 + -1.531660442034102e+04 + -1.533683377728779e+04 + -1.535708319443415e+04 + -1.537735268372974e+04 + -1.539764226000000e+04 + -1.541795193921473e+04 + -1.543828173411788e+04 + -1.545863165713528e+04 + -1.547900172144165e+04 + -1.549939194000000e+04 + -1.551980232569260e+04 + -1.554023289178161e+04 + -1.556068365093051e+04 + -1.558115461506463e+04 + -1.560164579999999e+04 + -1.562215722197032e+04 + -1.564268888875843e+04 + -1.566324081295743e+04 + -1.568381301679686e+04 + -1.570440550999999e+04 + -1.572501829745089e+04 + -1.574565139909988e+04 + -1.576630483256334e+04 + -1.578697860613842e+04 + -1.580767273000000e+04 + -1.582838721786272e+04 + -1.584912209052793e+04 + -1.586987736246908e+04 + -1.589065303680525e+04 + -1.591144913000000e+04 + -1.593226566336701e+04 + -1.595310264072689e+04 + -1.597396007256353e+04 + -1.599483798518879e+04 + -1.601573638999999e+04 + -1.603665529105288e+04 + -1.605759470511345e+04 + -1.607855464838671e+04 + -1.609953513161670e+04 + -1.612053616999998e+04 + -1.614155778004294e+04 + -1.616259997081388e+04 + -1.618366275348782e+04 + -1.620474614514243e+04 + -1.622585016000000e+04 + -1.624697481007329e+04 + -1.626812010728422e+04 + -1.628928606592670e+04 + -1.631047270337715e+04 + -1.633168003000000e+04 + -1.635290805454565e+04 + -1.637415679800609e+04 + -1.639542627592296e+04 + -1.641671649164588e+04 + -1.643802745999998e+04 + -1.645935920179283e+04 + -1.648071172935930e+04 + -1.650208505431875e+04 + -1.652347919039644e+04 + -1.654489414999998e+04 + -1.656632994566724e+04 + -1.658778659427021e+04 + -1.660926410974226e+04 + -1.663076250029903e+04 + -1.665228178000000e+04 + -1.667382196574960e+04 + -1.669538306946903e+04 + -1.671696510420377e+04 + -1.673856808645374e+04 + -1.676019203000000e+04 + -1.678183694695306e+04 + -1.680350285053965e+04 + -1.682518975366077e+04 + -1.684689766850574e+04 + -1.686862660999998e+04 + -1.689037659405139e+04 + -1.691214763326874e+04 + -1.693393974023558e+04 + -1.695575292860696e+04 + -1.697758720999999e+04 + -1.699944259677470e+04 + -1.702131910964586e+04 + -1.704321676352935e+04 + -1.706513556209216e+04 + -1.708707552000000e+04 + -1.710903665790321e+04 + -1.713101898938551e+04 + -1.715302252479822e+04 + -1.717504727292061e+04 + -1.719709325000000e+04 + -1.721916047545785e+04 + -1.724124896174670e+04 + -1.726335872072246e+04 + -1.728548976595536e+04 + -1.730764210999998e+04 + -1.732981576548871e+04 + -1.735201074834581e+04 + -1.737422707347338e+04 + -1.739646475299950e+04 + -1.741872379999999e+04 + -1.744100422776899e+04 + -1.746330604747148e+04 + -1.748562927386205e+04 + -1.750797392735042e+04 + -1.753034002000000e+04 + -1.755272756012299e+04 + -1.757513656385630e+04 + -1.759756704698003e+04 + -1.762001902165879e+04 + -1.764249250000000e+04 + -1.766498749503509e+04 + -1.768750402279969e+04 + -1.771004209797560e+04 + -1.773260173223158e+04 + -1.775518293999998e+04 + -1.777778573725219e+04 + -1.780041013823985e+04 + -1.782305615380817e+04 + -1.784572379125812e+04 + -1.786841306999998e+04 + -1.789112401297027e+04 + -1.791385662520795e+04 + -1.793661091551944e+04 + -1.795938690506571e+04 + -1.798218461000000e+04 + -1.800500404157250e+04 + -1.802784520726593e+04 + -1.805070812126097e+04 + -1.807359280836476e+04 + -1.809649928000000e+04 + -1.811942754077938e+04 + -1.814237760512274e+04 + -1.816534949154946e+04 + -1.818834322012563e+04 + -1.821135879999998e+04 + -1.823439623670011e+04 + -1.825745554979138e+04 + -1.828053675712656e+04 + -1.830363986886144e+04 + -1.832676489999998e+04 + -1.834991186721417e+04 + -1.837308077964562e+04 + -1.839627164834952e+04 + -1.841948449011883e+04 + -1.844271932000000e+04 + -1.846597615248214e+04 + -1.848925500551537e+04 + -1.851255589141731e+04 + -1.853587881367952e+04 + -1.855922379000000e+04 + -1.858259084403384e+04 + -1.860597998459446e+04 + -1.862939122130964e+04 + -1.865282457086503e+04 + -1.867628004999998e+04 + -1.869975767367864e+04 + -1.872325745125265e+04 + -1.874677939400045e+04 + -1.877032351829797e+04 + -1.879388983999998e+04 + -1.881747837395618e+04 + -1.884108913346766e+04 + -1.886472213066709e+04 + -1.888837737699991e+04 + -1.891205489000000e+04 + -1.893575468867888e+04 + -1.895947678210836e+04 + -1.898322118083019e+04 + -1.900698790146692e+04 + -1.903077696000000e+04 + -1.905458837122149e+04 + -1.907842214817702e+04 + -1.910227830328199e+04 + -1.912615684887913e+04 + -1.915005779999998e+04 + -1.917398117252360e+04 + -1.919792697876641e+04 + -1.922189523162585e+04 + -1.924588594641727e+04 + -1.926989913999998e+04 + -1.929393482787026e+04 + -1.931799301676958e+04 + -1.934207372057390e+04 + -1.936617696590223e+04 + -1.939030276000000e+04 + -1.941445110358184e+04 + -1.943862202401437e+04 + -1.946281554213054e+04 + -1.948703165938676e+04 + -1.951127038999998e+04 + -1.953553175531375e+04 + -1.955981576784185e+04 + -1.958412243887696e+04 + -1.960845178142548e+04 + -1.963280380999998e+04 + -1.965717854010317e+04 + -1.968157598764983e+04 + -1.970599616682758e+04 + -1.973043908928781e+04 + -1.975490477000000e+04 + -1.977939322508017e+04 + -1.980390446612710e+04 + -1.982843850672890e+04 + -1.985299536464853e+04 + -1.987757505000000e+04 + -1.990217757132781e+04 + -1.992680295149982e+04 + -1.995145120910892e+04 + -1.997612235106852e+04 + -2.000081638999998e+04 + -2.002553334291399e+04 + -2.005027322692212e+04 + -2.007503605456619e+04 + -2.009982183242756e+04 + -2.012463057999998e+04 + -2.014946232050470e+04 + -2.017431705750974e+04 + -2.019919480128925e+04 + -2.022409557869796e+04 + -2.024901940000000e+04 + -2.027396626876084e+04 + -2.029893620825063e+04 + -2.032392923791251e+04 + -2.034894536415857e+04 + -2.037398460000000e+04 + -2.039904696273123e+04 + -2.042413246681671e+04 + -2.044924112749899e+04 + -2.047437296177629e+04 + -2.049952797999998e+04 + -2.052470619105544e+04 + -2.054990761544010e+04 + -2.057513226917888e+04 + -2.060038015795331e+04 + -2.062565129999998e+04 + -2.065094571854568e+04 + -2.067626342205840e+04 + -2.070160442063917e+04 + -2.072696873225083e+04 + -2.075235637000000e+04 + -2.077776734528838e+04 + -2.080320167696219e+04 + -2.082865938214449e+04 + -2.085414047244347e+04 + -2.087964496000000e+04 + -2.090517285805777e+04 + -2.093072418166662e+04 + -2.095629894648643e+04 + -2.098189716820891e+04 + -2.100751885999998e+04 + -2.103316403410750e+04 + -2.105883270565323e+04 + -2.108452489048020e+04 + -2.111024060421226e+04 + -2.113597985999998e+04 + -2.116174267011207e+04 + -2.118752904964539e+04 + -2.121333901446366e+04 + -2.123917258027344e+04 + -2.126502976000000e+04 + -2.129091056582378e+04 + -2.131681501406569e+04 + -2.134274311932949e+04 + -2.136869489244911e+04 + -2.139467035000000e+04 + -2.142066951097057e+04 + -2.144669238829770e+04 + -2.147273899344209e+04 + -2.149880933837191e+04 + -2.152490343999998e+04 + -2.155102131698669e+04 + -2.157716298229367e+04 + -2.160332844744082e+04 + -2.162951772437019e+04 + -2.165573082999998e+04 + -2.168196778300156e+04 + -2.170822859627157e+04 + -2.173451328139519e+04 + -2.176082185053812e+04 + -2.178715432000000e+04 + -2.181351070821111e+04 + -2.183989103150391e+04 + -2.186629530288904e+04 + -2.189272353140778e+04 + -2.191917573000000e+04 + -2.194565191497987e+04 + -2.197215210512397e+04 + -2.199867631637375e+04 + -2.202522455969623e+04 + -2.205179684999998e+04 + -2.207839320363563e+04 + -2.210501363148952e+04 + -2.213165814783550e+04 + -2.215832677350680e+04 + -2.218501951999998e+04 + -2.221173639532642e+04 + -2.223847741910094e+04 + -2.226524260850044e+04 + -2.229203197306979e+04 + -2.231884553000000e+04 + -2.234568329890952e+04 + -2.237254528774074e+04 + -2.239943150806158e+04 + -2.242634198094407e+04 + -2.245327672000000e+04 + -2.248023573585785e+04 + -2.250721904853940e+04 + -2.253422667413636e+04 + -2.256125861967753e+04 + -2.258831489999998e+04 + -2.261539553480252e+04 + -2.264250054093014e+04 + -2.266962993052693e+04 + -2.269678371062339e+04 + -2.272396189999998e+04 + -2.275116452153000e+04 + -2.277839158301363e+04 + -2.280564309534358e+04 + -2.283291907950545e+04 + -2.286021955000000e+04 + -2.288754451771620e+04 + -2.291489399812011e+04 + -2.294226800704672e+04 + -2.296966655917324e+04 + -2.299708967000000e+04 + -2.302453735490683e+04 + -2.305200962641978e+04 + -2.307950649734620e+04 + -2.310702798236498e+04 + -2.313457409999998e+04 + -2.316214486856879e+04 + -2.318974029613145e+04 + -2.321736039447026e+04 + -2.324500518448656e+04 + -2.327267467999998e+04 + -2.330036889175501e+04 + -2.332808783850466e+04 + -2.335583153764027e+04 + -2.338360000121357e+04 + -2.341139324000000e+04 + -2.343921126672951e+04 + -2.346705410394532e+04 + -2.349492176951476e+04 + -2.352281427072812e+04 + -2.355073162000000e+04 + -2.357867383414989e+04 + -2.360664093193761e+04 + -2.363463292919098e+04 + -2.366264983684289e+04 + -2.369069166999998e+04 + -2.371875844507638e+04 + -2.374685017193912e+04 + -2.377496686591387e+04 + -2.380310855200050e+04 + -2.383127523999998e+04 + -2.385946693403709e+04 + -2.388768365690810e+04 + -2.391592542840760e+04 + -2.394419225713039e+04 + -2.397248416000000e+04 + -2.400080115691363e+04 + -2.402914325571854e+04 + -2.405751046800998e+04 + -2.408590281513924e+04 + -2.411432031000000e+04 + -2.414276296293371e+04 + -2.417123079796694e+04 + -2.419972383203242e+04 + -2.422824206706797e+04 + -2.425678551999998e+04 + -2.428535421485334e+04 + -2.431394816200073e+04 + -2.434256737430352e+04 + -2.437121187300517e+04 + -2.439988166999998e+04 + -2.442857677325164e+04 + -2.445729720103540e+04 + -2.448604297194451e+04 + -2.451481410082247e+04 + -2.454361060000000e+04 + -2.457243248182022e+04 + -2.460127976431730e+04 + -2.463015246522100e+04 + -2.465905059942621e+04 + -2.468797417999998e+04 + -2.471692321945616e+04 + -2.474589773222362e+04 + -2.477489773480251e+04 + -2.480392324581322e+04 + -2.483297427999998e+04 + -2.486205084917968e+04 + -2.489115296405446e+04 + -2.492028064024748e+04 + -2.494943390068509e+04 + -2.497861275999998e+04 + -2.500781722863925e+04 + -2.503704732334474e+04 + -2.506630305872901e+04 + -2.509558444448151e+04 + -2.512489150000000e+04 + -2.515422424757818e+04 + -2.518358269497819e+04 + -2.521296685328307e+04 + -2.524237674371633e+04 + -2.527181237999998e+04 + -2.530127377273551e+04 + -2.533076094162915e+04 + -2.536027390311031e+04 + -2.538981266594794e+04 + -2.541937724999998e+04 + -2.544896767801531e+04 + -2.547858395406606e+04 + -2.550822608802068e+04 + -2.553789410507042e+04 + -2.556758802000000e+04 + -2.559730784246711e+04 + -2.562705359189478e+04 + -2.565682528525429e+04 + -2.568662293247029e+04 + -2.571644655000000e+04 + -2.574629615713407e+04 + -2.577617176604459e+04 + -2.580607338891535e+04 + -2.583600104095400e+04 + -2.586595473999998e+04 + -2.589593450400127e+04 + -2.592594034522632e+04 + -2.595597227610649e+04 + -2.598603031176017e+04 + -2.601611446999998e+04 + -2.604622476879967e+04 + -2.607636122042706e+04 + -2.610652383730750e+04 + -2.613671263455693e+04 + -2.616692763000000e+04 + -2.619716884161440e+04 + -2.622743628160562e+04 + -2.625772996246335e+04 + -2.628804989951923e+04 + -2.631839611000000e+04 + -2.634876861165059e+04 + -2.637916741999917e+04 + -2.640959254907723e+04 + -2.644004401148305e+04 + -2.647052181999998e+04 + -2.650102598983489e+04 + -2.653155654491748e+04 + -2.656211350103963e+04 + -2.659269685960091e+04 + -2.662330663999998e+04 + -2.665394286925502e+04 + -2.668460555517195e+04 + -2.671529470758218e+04 + -2.674601034670874e+04 + -2.677675249000000e+04 + -2.680752115154265e+04 + -2.683831634157976e+04 + -2.686913807564717e+04 + -2.689998637786448e+04 + -2.693086126000000e+04 + -2.696176272916689e+04 + -2.699269080763921e+04 + -2.702364551500381e+04 + -2.705462686113689e+04 + -2.708563485999998e+04 + -2.711666952809900e+04 + -2.714773087942122e+04 + -2.717881892991400e+04 + -2.720993369901594e+04 + -2.724107519999998e+04 + -2.727224344400496e+04 + -2.730343845029767e+04 + -2.733466023562860e+04 + -2.736590881019403e+04 + -2.739718419000000e+04 + -2.742848639412166e+04 + -2.745981543741902e+04 + -2.749117133427855e+04 + -2.752255410001475e+04 + -2.755396375000000e+04 + -2.758540029934807e+04 + -2.761686376223195e+04 + -2.764835415476579e+04 + -2.767987149599797e+04 + -2.771141579999997e+04 + -2.774298707825893e+04 + -2.777458534547961e+04 + -2.780621061813955e+04 + -2.783786291408934e+04 + -2.786954224999998e+04 + -2.790124864062599e+04 + -2.793298209650868e+04 + -2.796474263269793e+04 + -2.799653027215609e+04 + -2.802834503000000e+04 + -2.806018691678819e+04 + -2.809205594694776e+04 + -2.812395213748840e+04 + -2.815587550739401e+04 + -2.818782607000000e+04 + -2.821980383662756e+04 + -2.825180882556652e+04 + -2.828384105454396e+04 + -2.831590053775406e+04 + -2.834798728999998e+04 + -2.838010132665882e+04 + -2.841224266303304e+04 + -2.844441131398464e+04 + -2.847660729395342e+04 + -2.850883061999998e+04 + -2.854108131015271e+04 + -2.857335937943549e+04 + -2.860566484233479e+04 + -2.863799771378746e+04 + -2.867035801000000e+04 + -2.870274574643904e+04 + -2.873516093256026e+04 + -2.876760358436649e+04 + -2.880007372909855e+04 + -2.883257138000000e+04 + -2.886509654365616e+04 + -2.889764923870952e+04 + -2.893022948372628e+04 + -2.896283729252707e+04 + -2.899547267999998e+04 + -2.902813566168059e+04 + -2.906082625190441e+04 + -2.909354446650575e+04 + -2.912629032389195e+04 + -2.915906383999998e+04 + -2.919186502919167e+04 + -2.922469390650106e+04 + -2.925755048733507e+04 + -2.929043478725063e+04 + -2.932334682000000e+04 + -2.935628660019129e+04 + -2.938925415043921e+04 + -2.942224948806936e+04 + -2.945527261979538e+04 + -2.948832356000000e+04 + -2.952140232838030e+04 + -2.955450894361826e+04 + -2.958764342089699e+04 + -2.962080577090842e+04 + -2.965399600999997e+04 + -2.968721415715336e+04 + -2.972046022629084e+04 + -2.975373423280592e+04 + -2.978703619592538e+04 + -2.982036612999997e+04 + -2.985372404652352e+04 + -2.988710995909819e+04 + -2.992052388535540e+04 + -2.995396584761164e+04 + -2.998743586000000e+04 + -3.002093393306212e+04 + -3.005446008516229e+04 + -3.008801433415196e+04 + -3.012159669410924e+04 + -3.015520717999998e+04 + -3.018884580728562e+04 + -3.022251259030155e+04 + -3.025620754490144e+04 + -3.028993068950620e+04 + -3.032368203999997e+04 + -3.035746161072607e+04 + -3.039126941699663e+04 + -3.042510547393189e+04 + -3.045896979612689e+04 + -3.049286239999998e+04 + -3.052678330335746e+04 + -3.056073252467363e+04 + -3.059471007984014e+04 + -3.062871598061521e+04 + -3.066275024000000e+04 + -3.069681287356475e+04 + -3.073090390293319e+04 + -3.076502334621974e+04 + -3.079917121404217e+04 + -3.083334751999997e+04 + -3.086755228023463e+04 + -3.090178551167921e+04 + -3.093604723225209e+04 + -3.097033746063074e+04 + -3.100465620999998e+04 + -3.103900349175437e+04 + -3.107337932446759e+04 + -3.110778372555016e+04 + -3.114221670819769e+04 + -3.117667828999997e+04 + -3.121116848957679e+04 + -3.124568731744623e+04 + -3.128023478769976e+04 + -3.131481092268889e+04 + -3.134941574000000e+04 + -3.138404925321087e+04 + -3.141871147408727e+04 + -3.145340241670125e+04 + -3.148812209933996e+04 + -3.152287053999997e+04 + -3.155764775577736e+04 + -3.159245376185456e+04 + -3.162728857279384e+04 + -3.166215220315186e+04 + -3.169704466999997e+04 + -3.173196599132658e+04 + -3.176691618227545e+04 + -3.180189525721778e+04 + -3.183690323068162e+04 + -3.187194012000000e+04 + -3.190700594323912e+04 + -3.194210071422084e+04 + -3.197722444868163e+04 + -3.201237716636405e+04 + -3.204755888000000e+04 + -3.208276960047787e+04 + -3.211800935023939e+04 + -3.215327814773632e+04 + -3.218857600158763e+04 + -3.222390292999997e+04 + -3.225925895535199e+04 + -3.229464408973093e+04 + -3.233005834462857e+04 + -3.236550173499735e+04 + -3.240097427999997e+04 + -3.243647600017841e+04 + -3.247200691143220e+04 + -3.250756702669824e+04 + -3.254315635678932e+04 + -3.257877492000000e+04 + -3.261442273792899e+04 + -3.265009982555360e+04 + -3.268580619650297e+04 + -3.272154186523808e+04 + -3.275730685000000e+04 + -3.279310116911321e+04 + -3.282892483177912e+04 + -3.286477785354587e+04 + -3.290066026202923e+04 + -3.293657206999998e+04 + -3.297251328378459e+04 + -3.300848392497173e+04 + -3.304448401407080e+04 + -3.308051356412061e+04 + -3.311657258999998e+04 + -3.315266110752813e+04 + -3.318877912993135e+04 + -3.322492667413289e+04 + -3.326110376297835e+04 + -3.329731041000000e+04 + -3.333354662539115e+04 + -3.336981243131684e+04 + -3.340610784669931e+04 + -3.344243288124504e+04 + -3.347878755000000e+04 + -3.351517187197135e+04 + -3.355158586607149e+04 + -3.358802954742114e+04 + -3.362450292603845e+04 + -3.366100601999997e+04 + -3.369753885113907e+04 + -3.373410143432544e+04 + -3.377069378324004e+04 + -3.380731591267414e+04 + -3.384396783999997e+04 + -3.388064958319757e+04 + -3.391736115628571e+04 + -3.395410257481684e+04 + -3.399087385786547e+04 + -3.402767502000000e+04 + -3.406450607498593e+04 + -3.410136704569621e+04 + -3.413825794940452e+04 + -3.417517879208190e+04 + -3.421212959000000e+04 + -3.424911036577375e+04 + -3.428612113814977e+04 + -3.432316192150666e+04 + -3.436023272579379e+04 + -3.439733356999998e+04 + -3.443446447621852e+04 + -3.447162545467578e+04 + -3.450881651888796e+04 + -3.454603769159935e+04 + -3.458328898999997e+04 + -3.462057042742187e+04 + -3.465788201822977e+04 + -3.469522377879945e+04 + -3.473259572783916e+04 + -3.476999788000000e+04 + -3.480743024920274e+04 + -3.484489285737491e+04 + -3.488238572274076e+04 + -3.491990885516477e+04 + -3.495746227000000e+04 + -3.499504598627476e+04 + -3.503266002163332e+04 + -3.507030439252002e+04 + -3.510797911399110e+04 + -3.514568419999997e+04 + -3.518341966538968e+04 + -3.522118553105182e+04 + -3.525898181605689e+04 + -3.529680853433678e+04 + -3.533466569999997e+04 + -3.537255332834070e+04 + -3.541047143775194e+04 + -3.544842004484196e+04 + -3.548639916273562e+04 + -3.552440881000000e+04 + -3.556244900769237e+04 + -3.560051977192599e+04 + -3.563862111528000e+04 + -3.567675304773126e+04 + -3.571491559000000e+04 + -3.575310876677514e+04 + -3.579133259025522e+04 + -3.582958707123636e+04 + -3.586787222387752e+04 + -3.590618806999997e+04 + -3.594453463328037e+04 + -3.598291192576281e+04 + -3.602131995866808e+04 + -3.605975874687618e+04 + -3.609822830999997e+04 + -3.613672866872384e+04 + -3.617525983663845e+04 + -3.621382182906358e+04 + -3.625241466608051e+04 + -3.629103836000000e+04 + -3.632969292147818e+04 + -3.636837837559645e+04 + -3.640709474306420e+04 + -3.644584203277781e+04 + -3.648462026000000e+04 + -3.652342944409004e+04 + -3.656226960170399e+04 + -3.660114075023598e+04 + -3.664004290875195e+04 + -3.667897608999997e+04 + -3.671794030512006e+04 + -3.675693557547587e+04 + -3.679596192058374e+04 + -3.683501935339895e+04 + -3.687410788999997e+04 + -3.691322754870546e+04 + -3.695237834723054e+04 + -3.699156030212950e+04 + -3.703077342834224e+04 + -3.707001774000000e+04 + -3.710929325203417e+04 + -3.714859998429457e+04 + -3.718793795692067e+04 + -3.722730718808447e+04 + -3.726670768999997e+04 + -3.730613947399677e+04 + -3.734560256273038e+04 + -3.738509697431393e+04 + -3.742462271654350e+04 + -3.746417980999997e+04 + -3.750376828013417e+04 + -3.754338813660564e+04 + -3.758303939267375e+04 + -3.762272207245150e+04 + -3.766243618999997e+04 + -3.770218175518502e+04 + -3.774195878945678e+04 + -3.778176731257176e+04 + -3.782160733741773e+04 + -3.786147888000000e+04 + -3.790138195864309e+04 + -3.794131659132003e+04 + -3.798128279431332e+04 + -3.802128058166662e+04 + -3.806130996999997e+04 + -3.810137097737330e+04 + -3.814146362046005e+04 + -3.818158791697343e+04 + -3.822174388615621e+04 + -3.826193153999997e+04 + -3.830215088938532e+04 + -3.834240195971708e+04 + -3.838268477130731e+04 + -3.842299933188884e+04 + -3.846334565999997e+04 + -3.850372377842891e+04 + -3.854413369633216e+04 + -3.858457542816681e+04 + -3.862504900090371e+04 + -3.866555443000000e+04 + -3.870609172486966e+04 + -3.874666090332934e+04 + -3.878726198409722e+04 + -3.882789498399841e+04 + -3.886855991999997e+04 + -3.890925680946781e+04 + -3.894998567054054e+04 + -3.899074651957592e+04 + -3.903153937021765e+04 + -3.907236423999997e+04 + -3.911322114736439e+04 + -3.915411010384250e+04 + -3.919503112747372e+04 + -3.923598424716172e+04 + -3.927696946999997e+04 + -3.931798680038228e+04 + -3.935903628964794e+04 + -3.940011793259103e+04 + -3.944123164809230e+04 + -3.948237770000000e+04 + -3.952355620675491e+04 + -3.956476584662273e+04 + -3.960600801403134e+04 + -3.964728735507886e+04 + -3.968859104999997e+04 + 1.819886919039960e+01 + 1.816405130921966e+01 + 1.812918280091599e+01 + 1.809426424653407e+01 + 1.805929622711938e+01 + 1.802427932371738e+01 + 1.798921411737356e+01 + 1.795410118913339e+01 + 1.791894112004234e+01 + 1.788373449114589e+01 + 1.784848188348950e+01 + 1.781318387811866e+01 + 1.777784105607885e+01 + 1.774245399841551e+01 + 1.770702328617416e+01 + 1.767154950040025e+01 + 1.763603322213927e+01 + 1.760047503243666e+01 + 1.756487551233793e+01 + 1.752923524288855e+01 + 1.749355480513398e+01 + 1.745783478011969e+01 + 1.742207574889119e+01 + 1.738627829249391e+01 + 1.735044299197335e+01 + 1.731457042837498e+01 + 1.727866118274428e+01 + 1.724271583612671e+01 + 1.720673496956776e+01 + 1.717071916411290e+01 + 1.713466900080759e+01 + 1.709858506069732e+01 + 1.706246792482757e+01 + 1.702631817424381e+01 + 1.699013638999150e+01 + 1.695392315311613e+01 + 1.691767904466317e+01 + 1.688140464567809e+01 + 1.684510053720637e+01 + 1.680876730029348e+01 + 1.677240551598491e+01 + 1.673601576532611e+01 + 1.669959862936258e+01 + 1.666315468913977e+01 + 1.662668452570318e+01 + 1.659018872009826e+01 + 1.655366785337049e+01 + 1.651712250656536e+01 + 1.648055326072833e+01 + 1.644396069690488e+01 + 1.640734539614049e+01 + 1.637070793948063e+01 + 1.633404890797076e+01 + 1.629736888265638e+01 + 1.626066844458294e+01 + 1.622394817479593e+01 + 1.618720865434082e+01 + 1.615045046426309e+01 + 1.611367418560821e+01 + 1.607688039942165e+01 + 1.604006968674890e+01 + 1.600324262863542e+01 + 1.596639980612668e+01 + 1.592954180026817e+01 + 1.589266919210536e+01 + 1.585578256268371e+01 + 1.581888249304872e+01 + 1.578196956424585e+01 + 1.574504435732057e+01 + 1.570810745331836e+01 + 1.567115943328470e+01 + 1.563420087826506e+01 + 1.559723236930490e+01 + 1.556025448744972e+01 + 1.552326781374499e+01 + 1.548627292923617e+01 + 1.544927041496875e+01 + 1.541226085198818e+01 + 1.537524482133997e+01 + 1.533822290406956e+01 + 1.530119568122245e+01 + 1.526416373384410e+01 + 1.522712764298000e+01 + 1.519008798967561e+01 + 1.515304535497640e+01 + 1.511600031992786e+01 + 1.507895346557546e+01 + 1.504190537296467e+01 + 1.500485662314096e+01 + 1.496780779714983e+01 + 1.493075947603672e+01 + 1.489371224084713e+01 + 1.485666667262652e+01 + 1.481962335242037e+01 + 1.478258286127416e+01 + 1.474554578023335e+01 + 1.470851269034343e+01 + 1.467148417264987e+01 + 1.463446080819813e+01 + 1.459744317803371e+01 + 1.456043186320207e+01 + 1.452342744474869e+01 + 1.448643050371903e+01 + 1.444944162115858e+01 + 1.441246137811282e+01 + 1.437549035562720e+01 + 1.433852913474722e+01 + 1.430157829651834e+01 + 1.426463842198604e+01 + 1.422771009219579e+01 + 1.419079388819307e+01 + 1.415389039102334e+01 + 1.411700018173210e+01 + 1.408012384136481e+01 + 1.404326195096694e+01 + 1.400641509158398e+01 + 1.396958384426139e+01 + 1.393276879004464e+01 + 1.389597050997923e+01 + 1.385918958511061e+01 + 1.382242659648426e+01 + 1.378568212514566e+01 + 1.374895675214029e+01 + 1.371225105851361e+01 + 1.367556562531110e+01 + 1.363890103357824e+01 + 1.360225786436050e+01 + 1.356563669870335e+01 + 1.352903811765228e+01 + 1.349246270225274e+01 + 1.345591103355023e+01 + 1.341938369259021e+01 + 1.338288126041816e+01 + 1.334640431807955e+01 + 1.330995344661985e+01 + 1.327352922708455e+01 + 1.323713224051912e+01 + 1.320076306796902e+01 + 1.316442229047974e+01 + 1.312811048909675e+01 + 1.309182824486553e+01 + 1.305557613883154e+01 + 1.301935475204027e+01 + 1.298316466553718e+01 + 1.294700646036776e+01 + 1.291088071757748e+01 + 1.287478801821181e+01 + 1.283872894331622e+01 + 1.280270407393619e+01 + 1.276671399111720e+01 + 1.273075927590472e+01 + 1.269484050934423e+01 + 1.265895827248119e+01 + 1.262311314636109e+01 + 1.258730571202939e+01 + 1.255153655053158e+01 + 1.251580624291313e+01 + 1.248011537021950e+01 + 1.244446451349619e+01 + 1.240885425378865e+01 + 1.237328517214237e+01 + 1.233775784960283e+01 + 1.230227286721548e+01 + 1.226683080602582e+01 + 1.223143224707931e+01 + 1.219607777142142e+01 + 1.216076796009764e+01 + 1.212550339415344e+01 + 1.209028465463429e+01 + 1.205511232258567e+01 + 1.201998697905305e+01 + 1.198490920508190e+01 + 1.194987958171770e+01 + 1.191489869000593e+01 + 1.187996711099206e+01 + 1.184508542572157e+01 + 1.181025421523992e+01 + 1.177547406059259e+01 + 1.174074554282507e+01 + 1.170606924298281e+01 + 1.167144574211130e+01 + 1.163687562125602e+01 + 1.160235946146243e+01 + 1.156789784377601e+01 + 1.153349134924223e+01 + 1.149914055890657e+01 + 1.146484605381452e+01 + 1.143060841501152e+01 + 1.139642822354308e+01 + 1.136230606045464e+01 + 1.132824250679170e+01 + 1.129423814359974e+01 + 1.126029355192421e+01 + 1.122640931281059e+01 + 1.119258600730437e+01 + 1.115882421645102e+01 + 1.112512452129600e+01 + 1.109148750288479e+01 + 1.105791374226288e+01 + 1.102440382047573e+01 + 1.099095831856882e+01 + 1.095757781758762e+01 + 1.092426289857761e+01 + 1.089101414258426e+01 + 1.085783213065305e+01 + 1.082471744382945e+01 + 1.079167066315892e+01 + 1.075869236968697e+01 + 1.072578314445905e+01 + 1.069294356852064e+01 + 1.066017422291721e+01 + 1.062747568869424e+01 + 1.059484854689720e+01 + 1.056229337857157e+01 + 1.052981076476282e+01 + 1.049740128651643e+01 + 1.046506552487787e+01 + 1.043280406089261e+01 + 1.040061747560614e+01 + 1.036850635006392e+01 + 1.033647126531143e+01 + 1.030451280239414e+01 + 1.027263154235754e+01 + 1.024082806624708e+01 + 1.020910295510825e+01 + 1.017745678998653e+01 + 1.014589015192738e+01 + 1.011440362197629e+01 + 1.008299778117872e+01 + 1.005167321058014e+01 + 1.002043049122605e+01 + 9.989270204161905e+00 + 9.958192930433185e+00 + 9.927199251085362e+00 + 9.896289747163912e+00 + 9.865464999714312e+00 + 9.834725589782032e+00 + 9.804072098412551e+00 + 9.773505106651340e+00 + 9.743025195543877e+00 + 9.712632946135633e+00 + 9.682328939472086e+00 + 9.652113756598707e+00 + 9.621987978560973e+00 + 9.591952186404358e+00 + 9.562006961174337e+00 + 9.532152883916382e+00 + 9.502390535675973e+00 + 9.472720497498580e+00 + 9.443143350429677e+00 + 9.413659675514742e+00 + 9.384270053799249e+00 + 9.354975066328668e+00 + 9.325775294148480e+00 + 9.296671318304156e+00 + 9.267663719841170e+00 + 9.238753079804999e+00 + 9.209939979241115e+00 + 9.181224999194994e+00 + 9.152608720712111e+00 + 9.124091724837941e+00 + 9.095674592617954e+00 + 9.067357905097630e+00 + 9.039142243322441e+00 + 9.011028188337864e+00 + 8.983016292445305e+00 + 8.955106689123129e+00 + 8.927299195109086e+00 + 8.899593619314148e+00 + 8.871989770649284e+00 + 8.844487458025464e+00 + 8.817086490353660e+00 + 8.789786676544839e+00 + 8.762587825509975e+00 + 8.735489746160036e+00 + 8.708492247405990e+00 + 8.681595138158814e+00 + 8.654798227329470e+00 + 8.628101323828931e+00 + 8.601504236568170e+00 + 8.575006774458155e+00 + 8.548608746409855e+00 + 8.522309961334242e+00 + 8.496110228142285e+00 + 8.470009355744955e+00 + 8.444007153053219e+00 + 8.418103428978053e+00 + 8.392297992430423e+00 + 8.366590652321301e+00 + 8.340981217561657e+00 + 8.315469497062459e+00 + 8.290055299734679e+00 + 8.264738434489287e+00 + 8.239518710237252e+00 + 8.214395935889545e+00 + 8.189369920357137e+00 + 8.164440472550996e+00 + 8.139607401382095e+00 + 8.114870515761401e+00 + 8.090229624599887e+00 + 8.065684536808520e+00 + 8.041235061298275e+00 + 8.016881006980118e+00 + 7.992622182765018e+00 + 7.968458397563950e+00 + 7.944389460287880e+00 + 7.920415179847782e+00 + 7.896535365154623e+00 + 7.872749825119373e+00 + 7.849058368653004e+00 + 7.825460804666484e+00 + 7.801956942070785e+00 + 7.778546589776878e+00 + 7.755229556695729e+00 + 7.732005651738313e+00 + 7.708874683815599e+00 + 7.685836461838553e+00 + 7.662890794718152e+00 + 7.640037491365358e+00 + 7.617276360691148e+00 + 7.594607211606489e+00 + 7.572029853022352e+00 + 7.549544093849708e+00 + 7.527149742999527e+00 + 7.504846609382777e+00 + 7.482634501910429e+00 + 7.460513229493455e+00 + 7.438482601042820e+00 + 7.416542425469502e+00 + 7.394692511684465e+00 + 7.372932668598682e+00 + 7.351262705123121e+00 + 7.329682430168755e+00 + 7.308191652646553e+00 + 7.286790181467484e+00 + 7.265477825542517e+00 + 7.244254393782626e+00 + 7.223119695098779e+00 + 7.202073538401945e+00 + 7.181115732603097e+00 + 7.160246086613204e+00 + 7.139464409343233e+00 + 7.118770509704159e+00 + 7.098164196606950e+00 + 7.077645278962576e+00 + 7.057213565682006e+00 + 7.036868865676214e+00 + 7.016610987856166e+00 + 6.996439741132834e+00 + 6.976354934417186e+00 + 6.956356376620197e+00 + 6.936443876652832e+00 + 6.916617243426063e+00 + 6.896876285850862e+00 + 6.877220812838198e+00 + 6.857650633299039e+00 + 6.838165556144358e+00 + 6.818765390285123e+00 + 6.799449944632306e+00 + 6.780219028096876e+00 + 6.761072449589803e+00 + 6.742010018022058e+00 + 6.723031542304612e+00 + 6.704136831348434e+00 + 6.685325694064492e+00 + 6.666597939363759e+00 + 6.647953376157203e+00 + 6.629391813355797e+00 + 6.610913059870509e+00 + 6.592516924612310e+00 + 6.574203216492170e+00 + 6.555971744421058e+00 + 6.537822317309946e+00 + 6.519754744069803e+00 + 6.501768833611600e+00 + 6.483864394846306e+00 + 6.466041236684891e+00 + 6.448299168038327e+00 + 6.430637997817582e+00 + 6.413057534933630e+00 + 6.395557588297437e+00 + 6.378137966819973e+00 + 6.360798479412210e+00 + 6.343538934985117e+00 + 6.326359142449666e+00 + 6.309258910716826e+00 + 6.292238048697567e+00 + 6.275296365302859e+00 + 6.258433669443673e+00 + 6.241649770030978e+00 + 6.224944475975745e+00 + 6.208317596188945e+00 + 6.191768939581546e+00 + 6.175298315064517e+00 + 6.158905531548833e+00 + 6.142590397945462e+00 + 6.126352723165372e+00 + 6.110192316119535e+00 + 6.094108985718921e+00 + 6.078102540874499e+00 + 6.062172790497243e+00 + 6.046319543498117e+00 + 6.030542608788095e+00 + 6.014841795278149e+00 + 5.999216911879244e+00 + 5.983667767502356e+00 + 5.968194171058448e+00 + 5.952795931458497e+00 + 5.937472857613470e+00 + 5.922224758434336e+00 + 5.907051442832068e+00 + 5.891952719717633e+00 + 5.876928398002004e+00 + 5.861978286596150e+00 + 5.847102194411042e+00 + 5.832299930357648e+00 + 5.817571303346941e+00 + 5.802916122289888e+00 + 5.788334196097460e+00 + 5.773825333680629e+00 + 5.759389343950365e+00 + 5.745026035817635e+00 + 5.730735218193414e+00 + 5.716516699988668e+00 + 5.702370290114368e+00 + 5.688295797481486e+00 + 5.674293031000990e+00 + 5.660361799583851e+00 + 5.646501912141039e+00 + 5.632713177583526e+00 + 5.618995404822279e+00 + 5.605348402768269e+00 + 5.591771980332467e+00 + 5.578265946425844e+00 + 5.564830109959368e+00 + 5.551464279844009e+00 + 5.538168264990741e+00 + 5.524941874310529e+00 + 5.511784916714348e+00 + 5.498697201113163e+00 + 5.485678536417949e+00 + 5.472728731539672e+00 + 5.459847595389306e+00 + 5.447031950668924e+00 + 5.434258417587328e+00 + 5.421509378931341e+00 + 5.408790202589383e+00 + 5.396101725502927e+00 + 5.383442552149385e+00 + 5.370812984345576e+00 + 5.358213038980171e+00 + 5.345642546622406e+00 + 5.333101463094469e+00 + 5.320589727671893e+00 + 5.308107264570896e+00 + 5.295654006874094e+00 + 5.283229887334054e+00 + 5.270834837715376e+00 + 5.258468789944041e+00 + 5.246131676000384e+00 + 5.233823428164784e+00 + 5.221543979540164e+00 + 5.209293263422158e+00 + 5.197071212820756e+00 + 5.184877759775030e+00 + 5.172712837552656e+00 + 5.160576380473933e+00 + 5.148468322098453e+00 + 5.136388595958436e+00 + 5.124337135726472e+00 + 5.112313875048248e+00 + 5.100318748362747e+00 + 5.088351690727316e+00 + 5.076412636057685e+00 + 5.064501518839616e+00 + 5.052618274474592e+00 + 5.040762837425790e+00 + 5.028935142799786e+00 + 5.017135126690616e+00 + 5.005362723409764e+00 + 4.993617868159293e+00 + 4.981900498164465e+00 + 4.970210548621045e+00 + 4.958547954855285e+00 + 4.946912653797631e+00 + 4.935304581602165e+00 + 4.923723674430540e+00 + 4.912169869219803e+00 + 4.900643102722201e+00 + 4.889143311682699e+00 + 4.877670433140317e+00 + 4.866224404407401e+00 + 4.854805162838305e+00 + 4.843412645620055e+00 + 4.832046790470948e+00 + 4.820707535433044e+00 + 4.809394818449872e+00 + 4.798108577205163e+00 + 4.786848749644187e+00 + 4.775615274885523e+00 + 4.764408091170769e+00 + 4.753227136475494e+00 + 4.742072350593207e+00 + 4.730943672320340e+00 + 4.719841039761676e+00 + 4.708764392793848e+00 + 4.697713670947889e+00 + 4.686688813308958e+00 + 4.675689760077749e+00 + 4.664716450776882e+00 + 4.653768824355144e+00 + 4.642846821849820e+00 + 4.631950383864691e+00 + 4.621079449911801e+00 + 4.610233960271208e+00 + 4.599413855814052e+00 + 4.588619077726644e+00 + 4.577849566594633e+00 + 4.567105263324451e+00 + 4.556386109499332e+00 + 4.545692045920192e+00 + 4.535023013830533e+00 + 4.524378955558838e+00 + 4.513759812087895e+00 + 4.503165524982657e+00 + 4.492596037765430e+00 + 4.482051291649467e+00 + 4.471531227881555e+00 + 4.461035790191556e+00 + 4.450564920902143e+00 + 4.440118561957067e+00 + 4.429696656605228e+00 + 4.419299148008472e+00 + 4.408925979093191e+00 + 4.398577092681390e+00 + 4.388252432408600e+00 + 4.377951941955149e+00 + 4.367675563647617e+00 + 4.357423241911437e+00 + 4.347194921954801e+00 + 4.336990545878941e+00 + 4.326810057907454e+00 + 4.316653403787664e+00 + 4.306520526395858e+00 + 4.296411370095723e+00 + 4.286325880845187e+00 + 4.276264002847886e+00 + 4.266225680614548e+00 + 4.256210859410026e+00 + 4.246219484255977e+00 + 4.236251500111860e+00 + 4.226306852214246e+00 + 4.216385487075638e+00 + 4.206487350454588e+00 + 4.196612386873075e+00 + 4.186760542346591e+00 + 4.176931763412669e+00 + 4.167125996517556e+00 + 4.157343187931778e+00 + 4.147583283659849e+00 + 4.137846229598449e+00 + 4.128131973158434e+00 + 4.118440461620333e+00 + 4.108771640965568e+00 + 4.099125458381889e+00 + 4.089501861348100e+00 + 4.079900796648449e+00 + 4.070322211621146e+00 + 4.060766054068578e+00 + 4.051232271987449e+00 + 4.041720812903752e+00 + 4.032231624389123e+00 + 4.022764654839604e+00 + 4.013319852102482e+00 + 4.003897163974346e+00 + 3.994496539375360e+00 + 3.985117927005318e+00 + 3.975761275162846e+00 + 3.966426531955261e+00 + 3.957113646635731e+00 + 3.947822569087183e+00 + 3.938553247905866e+00 + 3.929305631685672e+00 + 3.920079669524097e+00 + 3.910875311427285e+00 + 3.901692507178291e+00 + 3.892531206204140e+00 + 3.883391358396833e+00 + 3.874272913657344e+00 + 3.865175821793835e+00 + 3.856100032879644e+00 + 3.847045497225832e+00 + 3.838012165320722e+00 + 3.828999987558789e+00 + 3.820008914413926e+00 + 3.811038896595444e+00 + 3.802089885254187e+00 + 3.793161831237620e+00 + 3.784254684890362e+00 + 3.775368398252875e+00 + 3.766502923100440e+00 + 3.757658209579520e+00 + 3.748834209295840e+00 + 3.740030874433959e+00 + 3.731248156753105e+00 + 3.722486008117639e+00 + 3.713744380387517e+00 + 3.705023225280349e+00 + 3.696322495070079e+00 + 3.687642142318910e+00 + 3.678982119432947e+00 + 3.670342378801804e+00 + 3.661722872867589e+00 + 3.653123554235752e+00 + 3.644544376023881e+00 + 3.635985291634798e+00 + 3.627446254192749e+00 + 3.618927216218316e+00 + 3.610428130335504e+00 + 3.601948951051534e+00 + 3.593489632231203e+00 + 3.585050126838500e+00 + 3.576630388153148e+00 + 3.568230370457688e+00 + 3.559850028500160e+00 + 3.551489315016799e+00 + 3.543148183918080e+00 + 3.534826590807976e+00 + 3.526524489935861e+00 + 3.518241835011243e+00 + 3.509978579991082e+00 + 3.501734680809670e+00 + 3.493510092697708e+00 + 3.485304769188242e+00 + 3.477118665289576e+00 + 3.468951736765370e+00 + 3.460803939385451e+00 + 3.452675227557384e+00 + 3.444565556219660e+00 + 3.436474882078371e+00 + 3.428403160505571e+00 + 3.420350346590145e+00 + 3.412316396304707e+00 + 3.404301265792477e+00 + 3.396304911176187e+00 + 3.388327288491305e+00 + 3.380368354160161e+00 + 3.372428064623584e+00 + 3.364506375833607e+00 + 3.356603244211646e+00 + 3.348718626640740e+00 + 3.340852480236101e+00 + 3.333004761693424e+00 + 3.325175427644580e+00 + 3.317364435527293e+00 + 3.309571742493616e+00 + 3.301797305408617e+00 + 3.294041081414062e+00 + 3.286303028194412e+00 + 3.278583103726798e+00 + 3.270881265443555e+00 + 3.263197471011956e+00 + 3.255531678390248e+00 + 3.247883845209004e+00 + 3.240253929642225e+00 + 3.232641890347850e+00 + 3.225047684908113e+00 + 3.217471271425511e+00 + 3.209912608923088e+00 + 3.202371655667555e+00 + 3.194848370181972e+00 + 3.187342711658790e+00 + 3.179854638881827e+00 + 3.172384110380890e+00 + 3.164931084707051e+00 + 3.157495521384956e+00 + 3.150077380058776e+00 + 3.142676619877814e+00 + 3.135293200073600e+00 + 3.127927079946843e+00 + 3.120578218905895e+00 + 3.113246577218404e+00 + 3.105932114937815e+00 + 3.098634790846833e+00 + 3.091354565058342e+00 + 3.084091398271724e+00 + 3.076845250485478e+00 + 3.069616081755534e+00 + 3.062403852244847e+00 + 3.055208522175611e+00 + 3.048030052549899e+00 + 3.040868404439169e+00 + 3.033723537524932e+00 + 3.026595412527113e+00 + 3.019483991059011e+00 + 3.012389234177664e+00 + 3.005311102428361e+00 + 2.998249556405217e+00 + 2.991204558170310e+00 + 2.984176069441633e+00 + 2.977164051262350e+00 + 2.970168464749357e+00 + 2.963189271462946e+00 + 2.956226433370632e+00 + 2.949279912203107e+00 + 2.942349669912605e+00 + 2.935435668735732e+00 + 2.928537870478263e+00 + 2.921656236941307e+00 + 2.914790730227295e+00 + 2.907941313056430e+00 + 2.901107948114753e+00 + 2.894290597705669e+00 + 2.887489224186201e+00 + 2.880703790004707e+00 + 2.873934257778331e+00 + 2.867180590721052e+00 + 2.860442752157053e+00 + 2.853720705060128e+00 + 2.847014412004529e+00 + 2.840323835735203e+00 + 2.833648939802342e+00 + 2.826989688360529e+00 + 2.820346045051714e+00 + 2.813717971838249e+00 + 2.807105432809830e+00 + 2.800508392739872e+00 + 2.793926814285955e+00 + 2.787360661385112e+00 + 2.780809898806732e+00 + 2.774274490318202e+00 + 2.767754399418414e+00 + 2.761249589980850e+00 + 2.754760027276096e+00 + 2.748285675987487e+00 + 2.741826499952791e+00 + 2.735382462817888e+00 + 2.728953529693038e+00 + 2.722539666591989e+00 + 2.716140837199994e+00 + 2.709757005928732e+00 + 2.703388138477217e+00 + 2.697034199719776e+00 + 2.690695154612969e+00 + 2.684370968516638e+00 + 2.678061606722120e+00 + 2.671767034388748e+00 + 2.665487216663756e+00 + 2.659222119420964e+00 + 2.652971708466898e+00 + 2.646735949170681e+00 + 2.640514807328682e+00 + 2.634308248813400e+00 + 2.628116239351709e+00 + 2.621938745026414e+00 + 2.615775731978081e+00 + 2.609627166192403e+00 + 2.603493014125890e+00 + 2.597373242133807e+00 + 2.591267815972944e+00 + 2.585176702619338e+00 + 2.579099869106871e+00 + 2.573037281022092e+00 + 2.566988905295047e+00 + 2.560954709471109e+00 + 2.554934660124372e+00 + 2.548928723658388e+00 + 2.542936866838776e+00 + 2.536959057454498e+00 + 2.530995262744329e+00 + 2.525045449466102e+00 + 2.519109584724339e+00 + 2.513187636248425e+00 + 2.507279571988880e+00 + 2.501385358975255e+00 + 2.495504964649074e+00 + 2.489638357011514e+00 + 2.483785503877440e+00 + 2.477946372993181e+00 + 2.472120932153270e+00 + 2.466309149445497e+00 + 2.460510993028623e+00 + 2.454726431004756e+00 + 2.448955431279121e+00 + 2.443197962222979e+00 + 2.437453992749473e+00 + 2.431723490873920e+00 + 2.426006424702946e+00 + 2.420302763016215e+00 + 2.414612474849150e+00 + 2.408935529060812e+00 + 2.403271894158963e+00 + 2.397621539164549e+00 + 2.391984432987164e+00 + 2.386360544006294e+00 + 2.380749841635097e+00 + 2.375152295549876e+00 + 2.369567874852914e+00 + 2.363996548806182e+00 + 2.358438286639424e+00 + 2.352893057314327e+00 + 2.347360830870365e+00 + 2.341841577523073e+00 + 2.336335266205249e+00 + 2.330841866367291e+00 + 2.325361348038680e+00 + 2.319893681430557e+00 + 2.314438836350213e+00 + 2.308996782525400e+00 + 2.303567490482044e+00 + 2.298150930506590e+00 + 2.292747072570897e+00 + 2.287355886755380e+00 + 2.281977343203661e+00 + 2.276611412298537e+00 + 2.271258065216148e+00 + 2.265917272602903e+00 + 2.260589004572198e+00 + 2.255273232290290e+00 + 2.249969926489583e+00 + 2.244679057245269e+00 + 2.239400595715412e+00 + 2.234134513404378e+00 + 2.228880781619142e+00 + 2.223639370658599e+00 + 2.218410251587366e+00 + 2.213193396784469e+00 + 2.207988776668006e+00 + 2.202796362022329e+00 + 2.197616125439223e+00 + 2.192448038696543e+00 + 2.187292072961057e+00 + 2.182148199232985e+00 + 2.177016389630072e+00 + 2.171896616273634e+00 + 2.166788850281173e+00 + 2.161693063906081e+00 + 2.156609229682959e+00 + 2.151537319229026e+00 + 2.146477304323076e+00 + 2.141429157241363e+00 + 2.136392850965788e+00 + 2.131368357474257e+00 + 2.126355648357996e+00 + 2.121354696293322e+00 + 2.116365474412895e+00 + 2.111387955644702e+00 + 2.106422111701483e+00 + 2.101467915161587e+00 + 2.096525339256323e+00 + 2.091594356269759e+00 + 2.086674939419586e+00 + 2.081767062556874e+00 + 2.076870697792070e+00 + 2.071985817585338e+00 + 2.067112395385072e+00 + 2.062250405333861e+00 + 2.057399820685575e+00 + 2.052560613690088e+00 + 2.047732757766644e+00 + 2.042916226752948e+00 + 2.038110994473384e+00 + 2.033317034456518e+00 + 2.028534320143143e+00 + 2.023762825026766e+00 + 2.019002522786289e+00 + 2.014253387371010e+00 + 2.009515392980107e+00 + 2.004788513366984e+00 + 2.000072722331970e+00 + 1.995367994084281e+00 + 1.990674302528751e+00 + 1.985991621875054e+00 + 1.981319927135009e+00 + 1.976659192144684e+00 + 1.972009390577169e+00 + 1.967370497271926e+00 + 1.962742487042732e+00 + 1.958125334423246e+00 + 1.953519013586483e+00 + 1.948923499307053e+00 + 1.944338766657414e+00 + 1.939764790288013e+00 + 1.935201544608222e+00 + 1.930649004305472e+00 + 1.926107145248571e+00 + 1.921575942429786e+00 + 1.917055370205972e+00 + 1.912545403920843e+00 + 1.908046018818900e+00 + 1.903557190023903e+00 + 1.899078893306255e+00 + 1.894611103753838e+00 + 1.890153795996532e+00 + 1.885706946418488e+00 + 1.881270530851602e+00 + 1.876844524133795e+00 + 1.872428902057808e+00 + 1.868023640555410e+00 + 1.863628715350075e+00 + 1.859244102235784e+00 + 1.854869776995271e+00 + 1.850505715382929e+00 + 1.846151893336109e+00 + 1.841808287113597e+00 + 1.837474873250078e+00 + 1.833151627500553e+00 + 1.828838525627810e+00 + 1.824535544058799e+00 + 1.820242659570220e+00 + 1.815959848693184e+00 + 1.811687087278560e+00 + 1.807424351697017e+00 + 1.803171618832717e+00 + 1.798928865872756e+00 + 1.794696068965575e+00 + 1.790473204047284e+00 + 1.786260248130819e+00 + 1.782057178544553e+00 + 1.777863972462110e+00 + 1.773680606381003e+00 + 1.769507057021776e+00 + 1.765343301422396e+00 + 1.761189316819223e+00 + 1.757045080431908e+00 + 1.752910569457795e+00 + 1.748785761158555e+00 + 1.744670632638435e+00 + 1.740565161064786e+00 + 1.736469324420783e+00 + 1.732383100261040e+00 + 1.728306465595185e+00 + 1.724239397824929e+00 + 1.720181874717039e+00 + 1.716133874165168e+00 + 1.712095373335323e+00 + 1.708066350172305e+00 + 1.704046783495335e+00 + 1.700036650108550e+00 + 1.696035927584721e+00 + 1.692044595228792e+00 + 1.688062630443701e+00 + 1.684090010658294e+00 + 1.680126714513943e+00 + 1.676172720475745e+00 + 1.672228006742128e+00 + 1.668292551293985e+00 + 1.664366332353613e+00 + 1.660449328407859e+00 + 1.656541518177628e+00 + 1.652642880144113e+00 + 1.648753392536404e+00 + 1.644873033459887e+00 + 1.641001782122826e+00 + 1.637139617814172e+00 + 1.633286518510287e+00 + 1.629442462986198e+00 + 1.625607430332010e+00 + 1.621781398816242e+00 + 1.617964347766720e+00 + 1.614156256896447e+00 + 1.610357104501046e+00 + 1.606566869528149e+00 + 1.602785531410984e+00 + 1.599013068753329e+00 + 1.595249460964023e+00 + 1.591494688099418e+00 + 1.587748729316499e+00 + 1.584011563661260e+00 + 1.580283170366302e+00 + 1.576563528988570e+00 + 1.572852618951484e+00 + 1.569150419635379e+00 + 1.565456911345500e+00 + 1.561772073862832e+00 + 1.558095886092752e+00 + 1.554428327545355e+00 + 1.550769378486889e+00 + 1.547119019605569e+00 + 1.543477229774924e+00 + 1.539843988467248e+00 + 1.536219276909035e+00 + 1.532603074921508e+00 + 1.528995362108325e+00 + 1.525396118748853e+00 + 1.521805324624735e+00 + 1.518222960029189e+00 + 1.514649006474386e+00 + 1.511083443428444e+00 + 1.507526250258141e+00 + 1.503977408416516e+00 + 1.500436898413773e+00 + 1.496904700394939e+00 + 1.493380795245864e+00 + 1.489865163193006e+00 + 1.486357784560608e+00 + 1.482858641108495e+00 + 1.479367713055452e+00 + 1.475884980161266e+00 + 1.472410424507970e+00 + 1.468944026943859e+00 + 1.465485767394345e+00 + 1.462035627142284e+00 + 1.458593587684006e+00 + 1.455159630175685e+00 + 1.451733734815932e+00 + 1.448315882934573e+00 + 1.444906056735074e+00 + 1.441504236540235e+00 + 1.438110403156542e+00 + 1.434724538391589e+00 + 1.431346623689521e+00 + 1.427976640530080e+00 + 1.424614570482120e+00 + 1.421260394583763e+00 + 1.417914094214416e+00 + 1.414575651360096e+00 + 1.411245047472556e+00 + 1.407922264020345e+00 + 1.404607282835409e+00 + 1.401300085863839e+00 + 1.398000654669480e+00 + 1.394708970355802e+00 + 1.391425015768138e+00 + 1.388148773421020e+00 + 1.384880223867722e+00 + 1.381619349200565e+00 + 1.378366132070768e+00 + 1.375120554406545e+00 + 1.371882598139520e+00 + 1.368652245409923e+00 + 1.365429478679455e+00 + 1.362214280063096e+00 + 1.359006631544336e+00 + 1.355806515436745e+00 + 1.352613914349998e+00 + 1.349428810943258e+00 + 1.346251187518860e+00 + 1.343081026346772e+00 + 1.339918309785753e+00 + 1.336763020411036e+00 + 1.333615141050152e+00 + 1.330474654669161e+00 + 1.327341544046787e+00 + 1.324215791384803e+00 + 1.321097378844990e+00 + 1.317986290481943e+00 + 1.314882509034005e+00 + 1.311786015892630e+00 + 1.308696795174431e+00 + 1.305614830505543e+00 + 1.302540104058677e+00 + 1.299472598550161e+00 + 1.296412297281467e+00 + 1.293359183920592e+00 + 1.290313241355424e+00 + 1.287274452437336e+00 + 1.284242800425524e+00 + 1.281218268758570e+00 + 1.278200840971845e+00 + 1.275190500607243e+00 + 1.272187230813499e+00 + 1.269191014801793e+00 + 1.266201836184906e+00 + 1.263219678244913e+00 + 1.260244524601725e+00 + 1.257276359774731e+00 + 1.254315166659556e+00 + 1.251360928048363e+00 + 1.248413628680403e+00 + 1.245473252809453e+00 + 1.242539783866816e+00 + 1.239613204552696e+00 + 1.236693499248504e+00 + 1.233780652886690e+00 + 1.230874648458874e+00 + 1.227975469917747e+00 + 1.225083101914005e+00 + 1.222197528080320e+00 + 1.219318732110022e+00 + 1.216446698153004e+00 + 1.213581411119631e+00 + 1.210722855169846e+00 + 1.207871013783067e+00 + 1.205025871252235e+00 + 1.202187412198626e+00 + 1.199355621285526e+00 + 1.196530482820713e+00 + 1.193711981112556e+00 + 1.190900100540550e+00 + 1.188094825240966e+00 + 1.185296139829988e+00 + 1.182504029475636e+00 + 1.179718478336080e+00 + 1.176939470878376e+00 + 1.174166992368249e+00 + 1.171401026812090e+00 + 1.168641558834780e+00 + 1.165888574598542e+00 + 1.163142057955574e+00 + 1.160401992993886e+00 + 1.157668365957760e+00 + 1.154941161055026e+00 + 1.152220362585152e+00 + 1.149505957086653e+00 + 1.146797929075238e+00 + 1.144096262593592e+00 + 1.141400943461258e+00 + 1.138711957183691e+00 + 1.136029288721929e+00 + 1.133352922646698e+00 + 1.130682844729473e+00 + 1.128019040871752e+00 + 1.125361495026299e+00 + 1.122710192813904e+00 + 1.120065120718956e+00 + 1.117426263156838e+00 + 1.114793605478939e+00 + 1.112167133798269e+00 + 1.109546832911627e+00 + 1.106932688501257e+00 + 1.104324686965964e+00 + 1.101722813149718e+00 + 1.099127052563592e+00 + 1.096537391606932e+00 + 1.093953815681381e+00 + 1.091376310184498e+00 + 1.088804860939953e+00 + 1.086239454210304e+00 + 1.083680075729654e+00 + 1.081126710640132e+00 + 1.078579345517792e+00 + 1.076037966489376e+00 + 1.073502558540405e+00 + 1.070973108232868e+00 + 1.068449602380304e+00 + 1.065932027008114e+00 + 1.063420367175204e+00 + 1.060914608734753e+00 + 1.058414739347230e+00 + 1.055920744292059e+00 + 1.053432609053344e+00 + 1.050950321750202e+00 + 1.048473868029229e+00 + 1.046003233045439e+00 + 1.043538404185668e+00 + 1.041079368203120e+00 + 1.038626111099421e+00 + 1.036178618557632e+00 + 1.033736877638818e+00 + 1.031300875738098e+00 + 1.028870598541307e+00 + 1.026446032279889e+00 + 1.024027163804816e+00 + 1.021613979927458e+00 + 1.019206467749757e+00 + 1.016804614201984e+00 + 1.014408404816817e+00 + 1.012017826403038e+00 + 1.009632866898133e+00 + 1.007253512894913e+00 + 1.004879750675442e+00 + 1.002511566831996e+00 + 1.000148949144661e+00 + 9.977918847145494e-01 + 9.954403597206510e-01 + 9.930943614528360e-01 + 9.907538771638876e-01 + 9.884188936740620e-01 + 9.860893982148410e-01 + 9.837653780132122e-01 + 9.814468200970017e-01 + 9.791337116433633e-01 + 9.768260399168340e-01 + 9.745237922184445e-01 + 9.722269558574113e-01 + 9.699355181124353e-01 + 9.676494662336389e-01 + 9.653687876978898e-01 + 9.630934699744002e-01 + 9.608235003289306e-01 + 9.585588662885656e-01 + 9.562995554410040e-01 + 9.540455551859868e-01 + 9.517968530931009e-01 + 9.495534368089285e-01 + 9.473152938858177e-01 + 9.450824119343849e-01 + 9.428547786515334e-01 + 9.406323818265262e-01 + 9.384152091378831e-01 + 9.362032482272097e-01 + 9.339964869112888e-01 + 9.317949130473703e-01 + 9.295985145023118e-01 + 9.274072791539573e-01 + 9.252211948367504e-01 + 9.230402494034374e-01 + 9.208644309329761e-01 + 9.186937274260252e-01 + 9.165281267878318e-01 + 9.143676170947915e-01 + 9.122121864230248e-01 + 9.100618228160294e-01 + 9.079165144228375e-01 + 9.057762494101416e-01 + 9.036410159434681e-01 + 9.015108022852656e-01 + 8.993855966397851e-01 + 8.972653871281971e-01 + 8.951501621417270e-01 + 8.930399100640233e-01 + 8.909346191274636e-01 + 8.888342777366450e-01 + 8.867388743114113e-01 + 8.846483971822027e-01 + 8.825628348501290e-01 + 8.804821758633001e-01 + 8.784064086961259e-01 + 8.763355218399448e-01 + 8.742695038377348e-01 + 8.722083433110044e-01 + 8.701520288632569e-01 + 8.681005490981059e-01 + 8.660538926659707e-01 + 8.640120483003465e-01 + 8.619750047630993e-01 + 8.599427507590320e-01 + 8.579152750196485e-01 + 8.558925663402844e-01 + 8.538746136199826e-01 + 8.518614056598554e-01 + 8.498529312415619e-01 + 8.478491793952468e-01 + 8.458501390477595e-01 + 8.438557990450950e-01 + 8.418661484572341e-01 + 8.398811762963594e-01 + 8.379008715007146e-01 + 8.359252231704962e-01 + 8.339542204095658e-01 + 8.319878522912720e-01 + 8.300261079597043e-01 + 8.280689765769632e-01 + 8.261164473121154e-01 + 8.241685093974929e-01 + 8.222251520716921e-01 + 8.202863645582569e-01 + 8.183521361157176e-01 + 8.164224560764958e-01 + 8.144973138478017e-01 + 8.125766987264839e-01 + 8.106606000443977e-01 + 8.087490072689457e-01 + 8.068419098143643e-01 + 8.049392971238847e-01 + 8.030411587461223e-01 + 8.011474841608780e-01 + 7.992582628576694e-01 + 7.973734844327619e-01 + 7.954931384582111e-01 + 7.936172145055983e-01 + 7.917457022017643e-01 + 7.898785912282000e-01 + 7.880158712799969e-01 + 7.861575320154112e-01 + 7.843035631939634e-01 + 7.824539546080472e-01 + 7.806086959262468e-01 + 7.787677769423338e-01 + 7.769311875560446e-01 + 7.750989176225404e-01 + 7.732709569908990e-01 + 7.714472955211897e-01 + 7.696279231052234e-01 + 7.678128297211314e-01 + 7.660020053954494e-01 + 7.641954400346342e-01 + 7.623931236302374e-01 + 7.605950462809293e-01 + 7.588011979868697e-01 + 7.570115688113509e-01 + 7.552261489288551e-01 + 7.534449284973839e-01 + 7.516678976340316e-01 + 7.498950464317325e-01 + 7.481263651057625e-01 + 7.463618439154999e-01 + 7.446014731170009e-01 + 7.428452429690515e-01 + 7.410931437272748e-01 + 7.393451656574506e-01 + 7.376012991597445e-01 + 7.358615346418724e-01 + 7.341258624174279e-01 + 7.323942728636854e-01 + 7.306667564033948e-01 + 7.289433034811010e-01 + 7.272239046205010e-01 + 7.255085503342084e-01 + 7.237972310231134e-01 + 7.220899372662432e-01 + 7.203866596915919e-01 + 7.186873887451811e-01 + 7.169921150530395e-01 + 7.153008293485266e-01 + 7.136135222426403e-01 + 7.119301843519804e-01 + 7.102508063464710e-01 + 7.085753789925818e-01 + 7.069038930034782e-01 + 7.052363390742027e-01 + 7.035727080638011e-01 + 7.019129907750439e-01 + 7.002571779481277e-01 + 6.986052604437083e-01 + 6.969572291357313e-01 + 6.953130748988353e-01 + 6.936727887020229e-01 + 6.920363614522840e-01 + 6.904037839913317e-01 + 6.887750473773369e-01 + 6.871501426160253e-01 + 6.855290605871678e-01 + 6.839117924040222e-01 + 6.822983292013320e-01 + 6.806886620123715e-01 + 6.790827818618205e-01 + 6.774806798407976e-01 + 6.758823471448717e-01 + 6.742877749381793e-01 + 6.726969543916550e-01 + 6.711098767181217e-01 + 6.695265330883416e-01 + 6.679469147191758e-01 + 6.663710129607012e-01 + 6.647988190816884e-01 + 6.632303243195694e-01 + 6.616655199754741e-01 + 6.601043974442724e-01 + 6.585469481315596e-01 + 6.569931633409668e-01 + 6.554430344698831e-01 + 6.538965529680326e-01 + 6.523537102216029e-01 + 6.508144977390269e-01 + 6.492789070902356e-01 + 6.477469297088367e-01 + 6.462185570471877e-01 + 6.446937806333431e-01 + 6.431725921186934e-01 + 6.416549831028872e-01 + 6.401409451291091e-01 + 6.386304698205402e-01 + 6.371235488250266e-01 + 6.356201737964903e-01 + 6.341203364004929e-01 + 6.326240283504814e-01 + 6.311312414023209e-01 + 6.296419672600960e-01 + 6.281561976359686e-01 + 6.266739242956670e-01 + 6.251951391194286e-01 + 6.237198339322255e-01 + 6.222480004492102e-01 + 6.207796305731890e-01 + 6.193147162378443e-01 + 6.178532493027741e-01 + 6.163952216645050e-01 + 6.149406252489860e-01 + 6.134894519984210e-01 + 6.120416938491114e-01 + 6.105973427932988e-01 + 6.091563909278429e-01 + 6.077188302116784e-01 + 6.062846526061169e-01 + 6.048538502614210e-01 + 6.034264152733694e-01 + 6.020023397068369e-01 + 6.005816156757759e-01 + 5.991642353027361e-01 + 5.977501907311656e-01 + 5.963394741611191e-01 + 5.949320777981851e-01 + 5.935279938331314e-01 + 5.921272144271874e-01 + 5.907297318514260e-01 + 5.893355384452119e-01 + 5.879446264415406e-01 + 5.865569881004723e-01 + 5.851726157460215e-01 + 5.837915017610071e-01 + 5.824136384878618e-01 + 5.810390182425506e-01 + 5.796676334763571e-01 + 5.782994765837256e-01 + 5.769345398883866e-01 + 5.755728159164172e-01 + 5.742142971757567e-01 + 5.728589760824728e-01 + 5.715068451452269e-01 + 5.701578968814059e-01 + 5.688121237820786e-01 + 5.674695184134964e-01 + 5.661300733449661e-01 + 5.647937811172017e-01 + 5.634606343850478e-01 + 5.621306258016221e-01 + 5.608037479323033e-01 + 5.594799934047830e-01 + 5.581593548937616e-01 + 5.568418251014721e-01 + 5.555273967809645e-01 + 5.542160626584934e-01 + 5.529078153599613e-01 + 5.516026476869607e-01 + 5.503005524879265e-01 + 5.490015224489507e-01 + 5.477055503706971e-01 + 5.464126291394721e-01 + 5.451227516109934e-01 + 5.438359105997491e-01 + 5.425520989229732e-01 + 5.412713094911021e-01 + 5.399935352390902e-01 + 5.387187691034094e-01 + 5.374470040087604e-01 + 5.361782329113639e-01 + 5.349124487848638e-01 + 5.336496445514358e-01 + 5.323898132502169e-01 + 5.311329480044003e-01 + 5.298790417206248e-01 + 5.286280874266170e-01 + 5.273800783238198e-01 + 5.261350074387794e-01 + 5.248928678300107e-01 + 5.236536526638225e-01 + 5.224173550711992e-01 + 5.211839681868924e-01 + 5.199534851768893e-01 + 5.187258992380968e-01 + 5.175012035574781e-01 + 5.162793913049719e-01 + 5.150604557657682e-01 + 5.138443902158373e-01 + 5.126311878387027e-01 + 5.114208419243966e-01 + 5.102133457996210e-01 + 5.090086927559088e-01 + 5.078068761246483e-01 + 5.066078892445277e-01 + 5.054117254264059e-01 + 5.042183780707232e-01 + 5.030278406156905e-01 + 5.018401064512819e-01 + 5.006551689399448e-01 + 4.994730214827681e-01 + 4.982936576173500e-01 + 4.971170708196209e-01 + 4.959432545161117e-01 + 4.947722021784954e-01 + 4.936039073158257e-01 + 4.924383634713059e-01 + 4.912755642215030e-01 + 4.901155031029966e-01 + 4.889581736357913e-01 + 4.878035694426762e-01 + 4.866516841617155e-01 + 4.855025114095978e-01 + 4.843560447562852e-01 + 4.832122778219742e-01 + 4.820712043014287e-01 + 4.809328179063641e-01 + 4.797971123302187e-01 + 4.786640812406847e-01 + 4.775337183184862e-01 + 4.764060173050261e-01 + 4.752809720122764e-01 + 4.741585762111217e-01 + 4.730388236459319e-01 + 4.719217080626099e-01 + 4.708072233097221e-01 + 4.696953632391141e-01 + 4.685861216425942e-01 + 4.674794923970907e-01 + 4.663754693817960e-01 + 4.652740464091041e-01 + 4.641752174102053e-01 + 4.630789763262008e-01 + 4.619853169869301e-01 + 4.608942333544824e-01 + 4.598057194461572e-01 + 4.587197692038988e-01 + 4.576363766028796e-01 + 4.565555356433393e-01 + 4.554772403132010e-01 + 4.544014845983438e-01 + 4.533282625263808e-01 + 4.522575682421708e-01 + 4.511893957834002e-01 + 4.501237391381080e-01 + 4.490605924783677e-01 + 4.479999499003729e-01 + 4.469418054464263e-01 + 4.458861533467765e-01 + 4.448329877503518e-01 + 4.437823027182840e-01 + 4.427340924804984e-01 + 4.416883512661691e-01 + 4.406450732493647e-01 + 4.396042525949710e-01 + 4.385658835318161e-01 + 4.375299603591805e-01 + 4.364964773180230e-01 + 4.354654286529535e-01 + 4.344368086449737e-01 + 4.334106115882546e-01 + 4.323868317973252e-01 + 4.313654636098987e-01 + 4.303465013528135e-01 + 4.293299393608014e-01 + 4.283157719943348e-01 + 4.273039936389254e-01 + 4.262945986862648e-01 + 4.252875815207442e-01 + 4.242829365388910e-01 + 4.232806581737543e-01 + 4.222807409163533e-01 + 4.212831792180283e-01 + 4.202879675160039e-01 + 4.192951002821390e-01 + 4.183045720190468e-01 + 4.173163772308877e-01 + 4.163305103895081e-01 + 4.153469660738844e-01 + 4.143657388899517e-01 + 4.133868232899575e-01 + 4.124102138463511e-01 + 4.114359052122226e-01 + 4.104638919136763e-01 + 4.094941685453110e-01 + 4.085267297797091e-01 + 4.075615702608746e-01 + 4.065986846247451e-01 + 4.056380675149961e-01 + 4.046797136100241e-01 + 4.037236175791848e-01 + 4.027697740867438e-01 + 4.018181778668817e-01 + 4.008688236537185e-01 + 3.999217061664900e-01 + 3.989768201804763e-01 + 3.980341604347806e-01 + 3.970937216243767e-01 + 3.961554986257766e-01 + 3.952194862561716e-01 + 3.942856791749246e-01 + 3.933540722797152e-01 + 3.924246604937682e-01 + 3.914974386057962e-01 + 3.905724013991230e-01 + 3.896495437210211e-01 + 3.887288605266558e-01 + 3.878103467384126e-01 + 3.868939972364765e-01 + 3.859798068708922e-01 + 3.850677705778728e-01 + 3.841578833358520e-01 + 3.832501400994028e-01 + 3.823445358203205e-01 + 3.814410654593080e-01 + 3.805397240004402e-01 + 3.796405064500310e-01 + 3.787434078281850e-01 + 3.778484231550217e-01 + 3.769555474293507e-01 + 3.760647756653435e-01 + 3.751761029803938e-01 + 3.742895244689736e-01 + 3.734050351897463e-01 + 3.725226302131253e-01 + 3.716423046174657e-01 + 3.707640535037849e-01 + 3.698878720450124e-01 + 3.690137553825144e-01 + 3.681416986254492e-01 + 3.672716969834960e-01 + 3.664037456169829e-01 + 3.655378396196581e-01 + 3.646739742353085e-01 + 3.638121447254376e-01 + 3.629523462980791e-01 + 3.620945741078652e-01 + 3.612388233782960e-01 + 3.603850894480597e-01 + 3.595333675652969e-01 + 3.586836529581271e-01 + 3.578359408972814e-01 + 3.569902267099870e-01 + 3.561465057284826e-01 + 3.553047732480240e-01 + 3.544650245489661e-01 + 3.536272549462773e-01 + 3.527914598373741e-01 + 3.519576346281267e-01 + 3.511257746893044e-01 + 3.502958753213151e-01 + 3.494679319027064e-01 + 3.486419398734283e-01 + 3.478178946841421e-01 + 3.469957917542031e-01 + 3.461756264906874e-01 + 3.453573943334770e-01 + 3.445410907466465e-01 + 3.437267112053919e-01 + 3.429142511753236e-01 + 3.421037061357636e-01 + 3.412950715914754e-01 + 3.404883430871680e-01 + 3.396835161220511e-01 + 3.388805861778083e-01 + 3.380795488742585e-01 + 3.372803997559251e-01 + 3.364831342820857e-01 + 3.356877480644493e-01 + 3.348942367473924e-01 + 3.341025959445759e-01 + 3.333128211902062e-01 + 3.325249080644813e-01 + 3.317388522349806e-01 + 3.309546493345364e-01 + 3.301722950123494e-01 + 3.293917849546400e-01 + 3.286131147929292e-01 + 3.278362801760134e-01 + 3.270612768173198e-01 + 3.262881004205997e-01 + 3.255167466776044e-01 + 3.247472112772871e-01 + 3.239794899591130e-01 + 3.232135784952971e-01 + 3.224494726613195e-01 + 3.216871681318617e-01 + 3.209266606147330e-01 + 3.201679460077643e-01 + 3.194110200806869e-01 + 3.186558785671545e-01 + 3.179025173467112e-01 + 3.171509322207308e-01 + 3.164011189537259e-01 + 3.156530734030461e-01 + 3.149067914068442e-01 + 3.141622688005587e-01 + 3.134195014964591e-01 + 3.126784853846941e-01 + 3.119392163234083e-01 + 3.112016901727622e-01 + 3.104659028247113e-01 + 3.097318502149898e-01 + 3.089995283319454e-01 + 3.082689330721005e-01 + 3.075400602663161e-01 + 3.068129059444455e-01 + 3.060874661234649e-01 + 3.053637367362504e-01 + 3.046417137079979e-01 + 3.039213930418579e-01 + 3.032027708160949e-01 + 3.024858429572295e-01 + 3.017706054435225e-01 + 3.010570543910775e-01 + 3.003451858060657e-01 + 2.996349956970866e-01 + 2.989264801519126e-01 + 2.982196352437723e-01 + 2.975144570351090e-01 + 2.968109415899733e-01 + 2.961090850010212e-01 + 2.954088833712375e-01 + 2.947103327960572e-01 + 2.940134293733013e-01 + 2.933181692489545e-01 + 2.926245486550200e-01 + 2.919325636534309e-01 + 2.912422103009782e-01 + 2.905534849067459e-01 + 2.898663836341845e-01 + 2.891809025716850e-01 + 2.884970379499296e-01 + 2.878147859946116e-01 + 2.871341429080666e-01 + 2.864551048929091e-01 + 2.857776681836698e-01 + 2.851018290276999e-01 + 2.844275836247271e-01 + 2.837549281975342e-01 + 2.830838590248334e-01 + 2.824143724756855e-01 + 2.817464648036653e-01 + 2.810801321714598e-01 + 2.804153709678348e-01 + 2.797521775256636e-01 + 2.790905480675208e-01 + 2.784304789557904e-01 + 2.777719665515425e-01 + 2.771150071618110e-01 + 2.764595971293084e-01 + 2.758057328280932e-01 + 2.751534106502780e-01 + 2.745026269461392e-01 + 2.738533780697315e-01 + 2.732056604090851e-01 + 2.725594703611444e-01 + 2.719148043516682e-01 + 2.712716588414341e-01 + 2.706300302048149e-01 + 2.699899148252890e-01 + 2.693513091897057e-01 + 2.687142097803046e-01 + 2.680786130525787e-01 + 2.674445154290628e-01 + 2.668119133864937e-01 + 2.661808034370396e-01 + 2.655511820876730e-01 + 2.649230457933240e-01 + 2.642963910212357e-01 + 2.636712143601993e-01 + 2.630475123173707e-01 + 2.624252813696634e-01 + 2.618045181320832e-01 + 2.611852191534089e-01 + 2.605673809346502e-01 + 2.599510000768786e-01 + 2.593360731482656e-01 + 2.587225966857610e-01 + 2.581105673020023e-01 + 2.574999816218594e-01 + 2.568908362541323e-01 + 2.562831277681717e-01 + 2.556768527608984e-01 + 2.550720078808991e-01 + 2.544685898158210e-01 + 2.538665952029344e-01 + 2.532660206235198e-01 + 2.526668627769018e-01 + 2.520691183671673e-01 + 2.514727840477828e-01 + 2.508778564832650e-01 + 2.502843323450471e-01 + 2.496922083184503e-01 + 2.491014811741685e-01 + 2.485121476502302e-01 + 2.479242043768022e-01 + 2.473376480750936e-01 + 2.467524755330193e-01 + 2.461686835577825e-01 + 2.455862688342147e-01 + 2.450052280577099e-01 + 2.444255580815592e-01 + 2.438472556710649e-01 + 2.432703175621061e-01 + 2.426947405763887e-01 + 2.421205215374063e-01 + 2.415476572469543e-01 + 2.409761444715131e-01 + 2.404059800179439e-01 + 2.398371607406130e-01 + 2.392696835287547e-01 + 2.387035451998669e-01 + 2.381387425460481e-01 + 2.375752724876774e-01 + 2.370131319015487e-01 + 2.364523176042576e-01 + 2.358928264341899e-01 + 2.353346553264918e-01 + 2.347778012643444e-01 + 2.342222610470114e-01 + 2.336680315481888e-01 + 2.331151097630285e-01 + 2.325634926002070e-01 + 2.320131769932555e-01 + 2.314641599195968e-01 + 2.309164382391606e-01 + 2.303700088852327e-01 + 2.298248689205450e-01 + 2.292810152383314e-01 + 2.287384447851956e-01 + 2.281971546639490e-01 + 2.276571417710518e-01 + 2.271184030444375e-01 + 2.265809356255705e-01 + 2.260447364485637e-01 + 2.255098024678978e-01 + 2.249761308577043e-01 + 2.244437185775247e-01 + 2.239125625576918e-01 + 2.233826599324974e-01 + 2.228540078061592e-01 + 2.223266032159731e-01 + 2.218004431318401e-01 + 2.212755246546400e-01 + 2.207518449320089e-01 + 2.202294009962271e-01 + 2.197081899542086e-01 + 2.191882089472320e-01 + 2.186694550184439e-01 + 2.181519252528444e-01 + 2.176356167922184e-01 + 2.171205268020538e-01 + 2.166066524055817e-01 + 2.160939907132310e-01 + 2.155825389406823e-01 + 2.150722942170351e-01 + 2.145632535999474e-01 + 2.140554143128364e-01 + 2.135487735713488e-01 + 2.130433285376680e-01 + 2.125390763961598e-01 + 2.120360143225986e-01 + 2.115341394866721e-01 + 2.110334491301104e-01 + 2.105339404911263e-01 + 2.100356107692428e-01 + 2.095384571593845e-01 + 2.090424768875718e-01 + 2.085476672286868e-01 + 2.080540254649787e-01 + 2.075615488420417e-01 + 2.070702345483775e-01 + 2.065800798220710e-01 + 2.060910819584345e-01 + 2.056032383022174e-01 + 2.051165461242101e-01 + 2.046310026800104e-01 + 2.041466052775261e-01 + 2.036633511978056e-01 + 2.031812377402102e-01 + 2.027002622847228e-01 + 2.022204221329609e-01 + 2.017417145657832e-01 + 2.012641369577989e-01 + 2.007876866366623e-01 + 2.003123609141739e-01 + 1.998381571847571e-01 + 1.993650728223044e-01 + 1.988931051658790e-01 + 1.984222515391579e-01 + 1.979525093566432e-01 + 1.974838760798574e-01 + 1.970163490394448e-01 + 1.965499255924087e-01 + 1.960846031634822e-01 + 1.956203792216227e-01 + 1.951572511456189e-01 + 1.946952162469976e-01 + 1.942342720345011e-01 + 1.937744160087473e-01 + 1.933156455855021e-01 + 1.928579581617409e-01 + 1.924013511601302e-01 + 1.919458220512063e-01 + 1.914913683490730e-01 + 1.910379875218400e-01 + 1.905856769690048e-01 + 1.901344342343178e-01 + 1.896842568245793e-01 + 1.892351421122624e-01 + 1.887870876905098e-01 + 1.883400911382459e-01 + 1.878941498265747e-01 + 1.874492612709913e-01 + 1.870054230608876e-01 + 1.865626327533365e-01 + 1.861208878413260e-01 + 1.856801858136446e-01 + 1.852405242290795e-01 + 1.848019006561455e-01 + 1.843643126785636e-01 + 1.839277579090688e-01 + 1.834922338318696e-01 + 1.830577379260484e-01 + 1.826242679175190e-01 + 1.821918214082343e-01 + 1.817603959062191e-01 + 1.813299890419420e-01 + 1.809005984096844e-01 + 1.804722215715290e-01 + 1.800448561676805e-01 + 1.796184998471616e-01 + 1.791931502428031e-01 + 1.787688049585256e-01 + 1.783454616010165e-01 + 1.779231178061076e-01 + 1.775017712916434e-01 + 1.770814197185338e-01 + 1.766620606643876e-01 + 1.762436917707559e-01 + 1.758263107475443e-01 + 1.754099153420786e-01 + 1.749945031691721e-01 + 1.745800718793870e-01 + 1.741666192327871e-01 + 1.737541428912765e-01 + 1.733426405128906e-01 + 1.729321098263452e-01 + 1.725225486037993e-01 + 1.721139545737653e-01 + 1.717063253659770e-01 + 1.712996586978482e-01 + 1.708939523524782e-01 + 1.704892041326627e-01 + 1.700854117308264e-01 + 1.696825728315613e-01 + 1.692806852413719e-01 + 1.688797467224855e-01 + 1.684797550119726e-01 + 1.680807078836749e-01 + 1.676826031516292e-01 + 1.672854386236076e-01 + 1.668892120257625e-01 + 1.664939211364053e-01 + 1.660995637803862e-01 + 1.657061377653481e-01 + 1.653136408872399e-01 + 1.649220709518862e-01 + 1.645314258210089e-01 + 1.641417032838678e-01 + 1.637529010922642e-01 + 1.633650171697226e-01 + 1.629780493848234e-01 + 1.625919955117979e-01 + 1.622068533722165e-01 + 1.618226208359533e-01 + 1.614392958070308e-01 + 1.610568761629498e-01 + 1.606753597398519e-01 + 1.602947443525945e-01 + 1.599150279328092e-01 + 1.595362083976419e-01 + 1.591582835876941e-01 + 1.587812513806259e-01 + 1.584051096895935e-01 + 1.580298564486488e-01 + 1.576554895336735e-01 + 1.572820068494865e-01 + 1.569094063844064e-01 + 1.565376859935812e-01 + 1.561668435389086e-01 + 1.557968770322644e-01 + 1.554277844430587e-01 + 1.550595637013555e-01 + 1.546922127252644e-01 + 1.543257294352004e-01 + 1.539601117962810e-01 + 1.535953578647676e-01 + 1.532314655336160e-01 + 1.528684326732572e-01 + 1.525062574192351e-01 + 1.521449377506904e-01 + 1.517844715391133e-01 + 1.514248568043021e-01 + 1.510660915767141e-01 + 1.507081738546517e-01 + 1.503511015850067e-01 + 1.499948728018673e-01 + 1.496394855976185e-01 + 1.492849379312514e-01 + 1.489312277844460e-01 + 1.485783532079666e-01 + 1.482263122946834e-01 + 1.478751030581660e-01 + 1.475247234388987e-01 + 1.471751715323068e-01 + 1.468264454469171e-01 + 1.464785432366154e-01 + 1.461314629165984e-01 + 1.457852025452889e-01 + 1.454397602433564e-01 + 1.450951340257908e-01 + 1.447513219420110e-01 + 1.444083221508569e-01 + 1.440661327109938e-01 + 1.437247516822454e-01 + 1.433841772072484e-01 + 1.430444073901374e-01 + 1.427054403077353e-01 + 1.423672740371242e-01 + 1.420299067307786e-01 + 1.416933365389871e-01 + 1.413575615237460e-01 + 1.410225798197031e-01 + 1.406883895901710e-01 + 1.403549889435149e-01 + 1.400223760032770e-01 + 1.396905489310608e-01 + 1.393595059398338e-01 + 1.390292451224472e-01 + 1.386997645496112e-01 + 1.383710625136722e-01 + 1.380431371824567e-01 + 1.377159866326167e-01 + 1.373896091055998e-01 + 1.370640027752214e-01 + 1.367391657592925e-01 + 1.364150963290927e-01 + 1.360917926783734e-01 + 1.357692529162330e-01 + 1.354474752994454e-01 + 1.351264580487222e-01 + 1.348061993122180e-01 + 1.344866973181728e-01 + 1.341679503229942e-01 + 1.338499565682958e-01 + 1.335327142013654e-01 + 1.332162214320106e-01 + 1.329004765902875e-01 + 1.325854779258548e-01 + 1.322712236439755e-01 + 1.319577119415115e-01 + 1.316449410589970e-01 + 1.313329092858229e-01 + 1.310216149439378e-01 + 1.307110562100912e-01 + 1.304012313067827e-01 + 1.300921386594473e-01 + 1.297837764741680e-01 + 1.294761429396481e-01 + 1.291692364743583e-01 + 1.288630553353233e-01 + 1.285575977268189e-01 + 1.282528620001082e-01 + 1.279488464604472e-01 + 1.276455493846629e-01 + 1.273429690961771e-01 + 1.270411039265308e-01 + 1.267399521912149e-01 + 1.264395121606617e-01 + 1.261397821624623e-01 + 1.258407605612416e-01 + 1.255424456647032e-01 + 1.252448358003494e-01 + 1.249479293256652e-01 + 1.246517245985584e-01 + 1.243562199440227e-01 + 1.240614136699035e-01 + 1.237673041530004e-01 + 1.234738897833225e-01 + 1.231811689369122e-01 + 1.228891399541342e-01 + 1.225978011897444e-01 + 1.223071510285007e-01 + 1.220171878485729e-01 + 1.217279100221359e-01 + 1.214393159216827e-01 + 1.211514039479249e-01 + 1.208641725134118e-01 + 1.205776200272462e-01 + 1.202917448643591e-01 + 1.200065453999493e-01 + 1.197220200388544e-01 + 1.194381672203820e-01 + 1.191549853738593e-01 + 1.188724728867774e-01 + 1.185906281982059e-01 + 1.183094497403516e-01 + 1.180289358802264e-01 + 1.177490851172322e-01 + 1.174698959467804e-01 + 1.171913666738082e-01 + 1.169134957966049e-01 + 1.166362818664215e-01 + 1.163597231976005e-01 + 1.160838182295854e-01 + 1.158085654926154e-01 + 1.155339634301463e-01 + 1.152600105152270e-01 + 1.149867052503320e-01 + 1.147140461081585e-01 + 1.144420315115333e-01 + 1.141706598827868e-01 + 1.138999297876022e-01 + 1.136298397724347e-01 + 1.133603883121320e-01 + 1.130915738073908e-01 + 1.128233947404400e-01 + 1.125558496925181e-01 + 1.122889371862514e-01 + 1.120226557224089e-01 + 1.117570037925019e-01 + 1.114919798574519e-01 + 1.112275824488763e-01 + 1.109638101830490e-01 + 1.107006615250319e-01 + 1.104381349837027e-01 + 1.101762291935612e-01 + 1.099149425817940e-01 + 1.096542736337556e-01 + 1.093942210611990e-01 + 1.091347833750166e-01 + 1.088759590309823e-01 + 1.086177465849946e-01 + 1.083601446468375e-01 + 1.081031518187680e-01 + 1.078467666394599e-01 + 1.075909876365943e-01 + 1.073358133695979e-01 + 1.070812424691808e-01 + 1.068272734935852e-01 + 1.065739049762412e-01 + 1.063211355273724e-01 + 1.060689637753818e-01 + 1.058173883167701e-01 + 1.055664076522099e-01 + 1.053160204177178e-01 + 1.050662253083730e-01 + 1.048170208178578e-01 + 1.045684055544151e-01 + 1.043203782231123e-01 + 1.040729373745031e-01 + 1.038260815947437e-01 + 1.035798095388146e-01 + 1.033341198496129e-01 + 1.030890111353506e-01 + 1.028444819874746e-01 + 1.026005310752415e-01 + 1.023571570589419e-01 + 1.021143585605686e-01 + 1.018721342063349e-01 + 1.016304826397723e-01 + 1.013894025261397e-01 + 1.011488925387934e-01 + 1.009089513225976e-01 + 1.006695774897203e-01 + 1.004307697412456e-01 + 1.001925267601519e-01 + 9.995484714928184e-02 + 9.971772961029543e-02 + 9.948117285600222e-02 + 9.924517553207431e-02 + 9.900973631553432e-02 + 9.877485389836264e-02 + 9.854052696321766e-02 + 9.830675420513860e-02 + 9.807353432053509e-02 + 9.784086599274402e-02 + 9.760874792461041e-02 + 9.737717882679013e-02 + 9.714615739564664e-02 + 9.691568233864475e-02 + 9.668575237168565e-02 + 9.645636620785530e-02 + 9.622752256709627e-02 + 9.599922017186617e-02 + 9.577145773476621e-02 + 9.554423398421420e-02 + 9.531754766036228e-02 + 9.509139748951084e-02 + 9.486578220406576e-02 + 9.464070054491446e-02 + 9.441615125061270e-02 + 9.419213306609350e-02 + 9.396864474309072e-02 + 9.374568502973517e-02 + 9.352325267700241e-02 + 9.330134644110695e-02 + 9.307996508088016e-02 + 9.285910736057421e-02 + 9.263877204899980e-02 + 9.241895790580944e-02 + 9.219966369924239e-02 + 9.198088821288498e-02 + 9.176263021506216e-02 + 9.154488848131032e-02 + 9.132766180778470e-02 + 9.111094897456264e-02 + 9.089474876186458e-02 + 9.067905996494766e-02 + 9.046388137755315e-02 + 9.024921179550818e-02 + 9.003505002157913e-02 + 8.982139485394958e-02 + 8.960824509461397e-02 + 8.939559956013639e-02 + 8.918345705664489e-02 + 8.897181638949078e-02 + 8.876067638185769e-02 + 8.855003585659860e-02 + 8.833989363307079e-02 + 8.813024852794749e-02 + 8.792109937217552e-02 + 8.771244500411417e-02 + 8.750428424959714e-02 + 8.729661594151820e-02 + 8.708943892038122e-02 + 8.688275202450782e-02 + 8.667655409894154e-02 + 8.647084399500883e-02 + 8.626562056133152e-02 + 8.606088264727801e-02 + 8.585662910508592e-02 + 8.565285879275303e-02 + 8.544957056834111e-02 + 8.524676329099723e-02 + 8.504443583456130e-02 + 8.484258706983651e-02 + 8.464121585953427e-02 + 8.444032107793580e-02 + 8.423990160173883e-02 + 8.403995630660985e-02 + 8.384048408000297e-02 + 8.364148380739438e-02 + 8.344295436518863e-02 + 8.324489464319758e-02 + 8.304730353631981e-02 + 8.285017993778075e-02 + 8.265352274723796e-02 + 8.245733086610936e-02 + 8.226160319325253e-02 + 8.206633863307464e-02 + 8.187153609323948e-02 + 8.167719448173898e-02 + 8.148331271120264e-02 + 8.128988969775824e-02 + 8.109692435907066e-02 + 8.090441561287741e-02 + 8.071236238052074e-02 + 8.052076359329230e-02 + 8.032961817777003e-02 + 8.013892505875637e-02 + 7.994868317110082e-02 + 7.975889145271257e-02 + 7.956954884117817e-02 + 7.938065427030368e-02 + 7.919220668490153e-02 + 7.900420503735811e-02 + 7.881664826626886e-02 + 7.862953532075569e-02 + 7.844286516277023e-02 + 7.825663674598571e-02 + 7.807084902471831e-02 + 7.788550095723919e-02 + 7.770059150356423e-02 + 7.751611963202924e-02 + 7.733208431808952e-02 + 7.714848452080215e-02 + 7.696531920714285e-02 + 7.678258736267791e-02 + 7.660028796508990e-02 + 7.641841999039113e-02 + 7.623698241865759e-02 + 7.605597423593993e-02 + 7.587539442823407e-02 + 7.569524197859213e-02 + 7.551551588287067e-02 + 7.533621514035872e-02 + 7.515733874432233e-02 + 7.497888568830134e-02 + 7.480085497230264e-02 + 7.462324560850588e-02 + 7.444605660139321e-02 + 7.426928695221670e-02 + 7.409293566891996e-02 + 7.391700176673981e-02 + 7.374148426439617e-02 + 7.356638217848553e-02 + 7.339169452681224e-02 + 7.321742033027905e-02 + 7.304355861552074e-02 + 7.287010840815517e-02 + 7.269706873346385e-02 + 7.252443862192341e-02 + 7.235221710900047e-02 + 7.218040323296335e-02 + 7.200899602923243e-02 + 7.183799453782064e-02 + 7.166739780328910e-02 + 7.149720486628935e-02 + 7.132741477295296e-02 + 7.115802657678706e-02 + 7.098903933028558e-02 + 7.082045208266741e-02 + 7.065226388294948e-02 + 7.048447379884398e-02 + 7.031708089501212e-02 + 7.015008422428966e-02 + 6.998348285005500e-02 + 6.981727584178653e-02 + 6.965146227138255e-02 + 6.948604121024822e-02 + 6.932101172952453e-02 + 6.915637290177927e-02 + 6.899212381049466e-02 + 6.882826353831664e-02 + 6.866479115768206e-02 + 6.850170575553913e-02 + 6.833900642241270e-02 + 6.817669223943085e-02 + 6.801476230171261e-02 + 6.785321570853013e-02 + 6.769205154760372e-02 + 6.753126891476798e-02 + 6.737086691265436e-02 + 6.721084464422118e-02 + 6.705120121123045e-02 + 6.689193571639933e-02 + 6.673304726820108e-02 + 6.657453497707803e-02 + 6.641639795452120e-02 + 6.625863531334618e-02 + 6.610124617104705e-02 + 6.594422964866814e-02 + 6.578758486543299e-02 + 6.563131094165708e-02 + 6.547540700031643e-02 + 6.531987216906585e-02 + 6.516470557837332e-02 + 6.500990635997374e-02 + 6.485547364331327e-02 + 6.470140656204018e-02 + 6.454770425495959e-02 + 6.439436585565442e-02 + 6.424139050518185e-02 + 6.408877735587415e-02 + 6.393652554954243e-02 + 6.378463422860429e-02 + 6.363310254304622e-02 + 6.348192964216136e-02 + 6.333111467891862e-02 + 6.318065681259971e-02 + 6.303055519506789e-02 + 6.288080898167979e-02 + 6.273141734118348e-02 + 6.258237943694549e-02 + 6.243369443027962e-02 + 6.228536148636779e-02 + 6.213737977420020e-02 + 6.198974846629291e-02 + 6.184246673830131e-02 + 6.169553375986874e-02 + 6.154894870195880e-02 + 6.140271075002260e-02 + 6.125681908485271e-02 + 6.111127288458502e-02 + 6.096607133498923e-02 + 6.082121362330186e-02 + 6.067669893778977e-02 + 6.053252647002724e-02 + 6.038869541057570e-02 + 6.024520494995262e-02 + 6.010205428441878e-02 + 5.995924261312039e-02 + 5.981676913606451e-02 + 5.967463305068377e-02 + 5.953283356000520e-02 + 5.939136987405440e-02 + 5.925024120274393e-02 + 5.910944675075109e-02 + 5.896898572024133e-02 + 5.882885733338872e-02 + 5.868906080796419e-02 + 5.854959534943303e-02 + 5.841046018167366e-02 + 5.827165452667381e-02 + 5.813317759547484e-02 + 5.799502862000658e-02 + 5.785720683145133e-02 + 5.771971144629215e-02 + 5.758254169802959e-02 + 5.744569682168989e-02 + 5.730917604038396e-02 + 5.717297859181381e-02 + 5.703710371771920e-02 + 5.690155065150715e-02 + 5.676631863514842e-02 + 5.663140691176988e-02 + 5.649681471550019e-02 + 5.636254129818796e-02 + 5.622858591623749e-02 + 5.609494780637568e-02 + 5.596162621719655e-02 + 5.582862040612746e-02 + 5.569592962469259e-02 + 5.556355312969728e-02 + 5.543149018219354e-02 + 5.529974004038473e-02 + 5.516830196534387e-02 + 5.503717522021812e-02 + 5.490635906464716e-02 + 5.477585276550550e-02 + 5.464565559606692e-02 + 5.451576682310098e-02 + 5.438618571514530e-02 + 5.425691154653305e-02 + 5.412794360021059e-02 + 5.399928115030668e-02 + 5.387092346220070e-02 + 5.374286982722595e-02 + 5.361511953114147e-02 + 5.348767184376742e-02 + 5.336052605560348e-02 + 5.323368145967647e-02 + 5.310713734132736e-02 + 5.298089299097181e-02 + 5.285494769998652e-02 + 5.272930075794034e-02 + 5.260395145882699e-02 + 5.247889910164562e-02 + 5.235414299012888e-02 + 5.222968242359068e-02 + 5.210551670083303e-02 + 5.198164512479836e-02 + 5.185806699751586e-02 + 5.173478162567831e-02 + 5.161178832737659e-02 + 5.148908640731603e-02 + 5.136667516904735e-02 + 5.124455393713079e-02 + 5.112272202541198e-02 + 5.100117874145336e-02 + 5.087992340415878e-02 + 5.075895533879782e-02 + 5.063827387090040e-02 + 5.051787831631814e-02 + 5.039776799903027e-02 + 5.027794224956293e-02 + 5.015840039018700e-02 + 5.003914174911826e-02 + 4.992016566217095e-02 + 4.980147146451835e-02 + 4.968305848565534e-02 + 4.956492605368701e-02 + 4.944707351707827e-02 + 4.932950021762891e-02 + 4.921220548403189e-02 + 4.909518865563611e-02 + 4.897844908008390e-02 + 4.886198610990230e-02 + 4.874579909103274e-02 + 4.862988736593407e-02 + 4.851425027765261e-02 + 4.839888718215429e-02 + 4.828379743688660e-02 + 4.816898039344981e-02 + 4.805443540666063e-02 + 4.794016183433197e-02 + 4.782615903628512e-02 + 4.771242637003347e-02 + 4.759896319572905e-02 + 4.748576888074151e-02 + 4.737284278529100e-02 + 4.726018427180961e-02 + 4.714779271742187e-02 + 4.703566749191604e-02 + 4.692380796083007e-02 + 4.681221349433169e-02 + 4.670088346648602e-02 + 4.658981725459431e-02 + 4.647901423861556e-02 + 4.636847379587147e-02 + 4.625819530165282e-02 + 4.614817813294777e-02 + 4.603842167462240e-02 + 4.592892531626435e-02 + 4.581968844113481e-02 + 4.571071043517037e-02 + 4.560199068716930e-02 + 4.549352858172214e-02 + 4.538532351139604e-02 + 4.527737487551017e-02 + 4.516968206047602e-02 + 4.506224446147816e-02 + 4.495506148526871e-02 + 4.484813252205796e-02 + 4.474145696749865e-02 + 4.463503423038843e-02 + 4.452886371233129e-02 + 4.442294481444441e-02 + 4.431727694184067e-02 + 4.421185950249874e-02 + 4.410669190344264e-02 + 4.400177354999718e-02 + 4.389710385863231e-02 + 4.379268224561385e-02 + 4.368850811842072e-02 + 4.358458089102907e-02 + 4.348089998166713e-02 + 4.337746480946211e-02 + 4.327427479290449e-02 + 4.317132935104961e-02 + 4.306862790538591e-02 + 4.296616988021409e-02 + 4.286395470044128e-02 + 4.276198178905291e-02 + 4.266025057462805e-02 + 4.255876048879523e-02 + 4.245751096050290e-02 + 4.235650142249979e-02 + 4.225573130868781e-02 + 4.215520004666404e-02 + 4.205490707118502e-02 + 4.195485182346907e-02 + 4.185503374212908e-02 + 4.175545226547943e-02 + 4.165610683241490e-02 + 4.155699688308426e-02 + 4.145812186261490e-02 + 4.135948121993713e-02 + 4.126107439911159e-02 + 4.116290084444992e-02 + 4.106496000347922e-02 + 4.096725133001662e-02 + 4.086977427671171e-02 + 4.077252829257245e-02 + 4.067551282880393e-02 + 4.057872734137224e-02 + 4.048217129089726e-02 + 4.038584413229004e-02 + 4.028974532214836e-02 + 4.019387432351806e-02 + 4.009823059884492e-02 + 4.000281360871143e-02 + 3.990762281263916e-02 + 3.981265768084040e-02 + 3.971791768404272e-02 + 3.962340228400397e-02 + 3.952911094818634e-02 + 3.943504314911767e-02 + 3.934119836154264e-02 + 3.924757605343093e-02 + 3.915417569553582e-02 + 3.906099677494528e-02 + 3.896803876462888e-02 + 3.887530113159737e-02 + 3.878278335807980e-02 + 3.869048493136602e-02 + 3.859840533540703e-02 + 3.850654403935494e-02 + 3.841490053099362e-02 + 3.832347430867683e-02 + 3.823226484521238e-02 + 3.814127162485314e-02 + 3.805049414568009e-02 + 3.795993189727254e-02 + 3.786958436838804e-02 + 3.777945104950908e-02 + 3.768953143238456e-02 + 3.759982501241896e-02 + 3.751033128919119e-02 + 3.742104976390229e-02 + 3.733197993101921e-02 + 3.724312127956968e-02 + 3.715447331892652e-02 + 3.706603555538170e-02 + 3.697780748276271e-02 + 3.688978860838169e-02 + 3.680197844047203e-02 + 3.671437648083043e-02 + 3.662698223859462e-02 + 3.653979522528233e-02 + 3.645281495050149e-02 + 3.636604092401768e-02 + 3.627947265609178e-02 + 3.619310965841749e-02 + 3.610695145022991e-02 + 3.602099755007137e-02 + 3.593524746722872e-02 + 3.584970072102484e-02 + 3.576435683502647e-02 + 3.567921532660211e-02 + 3.559427571435374e-02 + 3.550953752116312e-02 + 3.542500027693078e-02 + 3.534066350384148e-02 + 3.525652672170999e-02 + 3.517258946309138e-02 + 3.508885125628003e-02 + 3.500531162678291e-02 + 3.492197010940873e-02 + 3.483882623525817e-02 + 3.475587953263527e-02 + 3.467312953919303e-02 + 3.459057578876406e-02 + 3.450821781198862e-02 + 3.442605515251815e-02 + 3.434408734999198e-02 + 3.426231393723483e-02 + 3.418073445581654e-02 + 3.409934844816886e-02 + 3.401815545480084e-02 + 3.393715501912345e-02 + 3.385634668688416e-02 + 3.377573000557660e-02 + 3.369530452244349e-02 + 3.361506978424043e-02 + 3.353502533757853e-02 + 3.345517073173793e-02 + 3.337550551749302e-02 + 3.329602924688495e-02 + 3.321674147756795e-02 + 3.313764176353938e-02 + 3.305872964905672e-02 + 3.298000469915312e-02 + 3.290146647870388e-02 + 3.282311452928582e-02 + 3.274494841443989e-02 + 3.266696770524984e-02 + 3.258917195579586e-02 + 3.251156072835543e-02 + 3.243413358906379e-02 + 3.235689009597382e-02 + 3.227982981604406e-02 + 3.220295232152501e-02 + 3.212625717796667e-02 + 3.204974395335523e-02 + 3.197341221860803e-02 + 3.189726154412311e-02 + 3.182129149811844e-02 + 3.174550164996338e-02 + 3.166989158019418e-02 + 3.159446086552403e-02 + 3.151920907660396e-02 + 3.144413578635114e-02 + 3.136924057603768e-02 + 3.129452303273958e-02 + 3.121998273049806e-02 + 3.114561924523454e-02 + 3.107143216011856e-02 + 3.099742105799270e-02 + 3.092358552474080e-02 + 3.084992514925186e-02 + 3.077643951122557e-02 + 3.070312819305190e-02 + 3.062999078663620e-02 + 3.055702688363699e-02 + 3.048423607160382e-02 + 3.041161793396379e-02 + 3.033917207015753e-02 + 3.026689807846873e-02 + 3.019479554128978e-02 + 3.012286404982057e-02 + 3.005110320361238e-02 + 2.997951260681279e-02 + 2.990809185255966e-02 + 2.983684053226568e-02 + 2.976575824919644e-02 + 2.969484460522792e-02 + 2.962409920087884e-02 + 2.955352163824170e-02 + 2.948311151647172e-02 + 2.941286843696999e-02 + 2.934279201383451e-02 + 2.927288185012002e-02 + 2.920313754405053e-02 + 2.913355871301240e-02 + 2.906414496442064e-02 + 2.899489589842786e-02 + 2.892581113440367e-02 + 2.885689028447655e-02 + 2.878813295173805e-02 + 2.871953875071393e-02 + 2.865110730129668e-02 + 2.858283822298987e-02 + 2.851473112218837e-02 + 2.844678561226344e-02 + 2.837900131834860e-02 + 2.831137785774055e-02 + 2.824391484910513e-02 + 2.817661191561155e-02 + 2.810946867322990e-02 + 2.804248474261467e-02 + 2.797565975421473e-02 + 2.790899332866750e-02 + 2.784248508684310e-02 + 2.777613465729838e-02 + 2.770994166752542e-02 + 2.764390574354870e-02 + 2.757802651096095e-02 + 2.751230360164656e-02 + 2.744673664902718e-02 + 2.738132528259552e-02 + 2.731606912935157e-02 + 2.725096782054994e-02 + 2.718602099881922e-02 + 2.712122829441404e-02 + 2.705658933533107e-02 + 2.699210376654040e-02 + 2.692777122629619e-02 + 2.686359134766074e-02 + 2.679956376855050e-02 + 2.673568813034148e-02 + 2.667196407449100e-02 + 2.660839123653040e-02 + 2.654496925932325e-02 + 2.648169779209303e-02 + 2.641857647953893e-02 + 2.635560496230991e-02 + 2.629278288047702e-02 + 2.623010988365326e-02 + 2.616758562366618e-02 + 2.610520975031933e-02 + 2.604298190560967e-02 + 2.598090173551063e-02 + 2.591896889422694e-02 + 2.585718303968204e-02 + 2.579554382343284e-02 + 2.573405088890056e-02 + 2.567270388987125e-02 + 2.561150248485746e-02 + 2.555044633271165e-02 + 2.548953508798725e-02 + 2.542876840653832e-02 + 2.536814594843316e-02 + 2.530766736730480e-02 + 2.524733231969847e-02 + 2.518714047250964e-02 + 2.512709148651639e-02 + 2.506718502244662e-02 + 2.500742074738894e-02 + 2.494779831751132e-02 + 2.488831739145854e-02 + 2.482897764751662e-02 + 2.476977875068464e-02 + 2.471072035836960e-02 + 2.465180213557270e-02 + 2.459302375909131e-02 + 2.453438490494015e-02 + 2.447588522684439e-02 + 2.441752439632618e-02 + 2.435930209686822e-02 + 2.430121799563831e-02 + 2.424327176191257e-02 + 2.418546306971884e-02 + 2.412779159320392e-02 + 2.407025701015483e-02 + 2.401285899981317e-02 + 2.395559723318545e-02 + 2.389847138352894e-02 + 2.384148113010493e-02 + 2.378462615809818e-02 + 2.372790614977233e-02 + 2.367132078182184e-02 + 2.361486973012364e-02 + 2.355855267628842e-02 + 2.350236930912776e-02 + 2.344631931433045e-02 + 2.339040237260871e-02 + 2.333461816188979e-02 + 2.327896637661412e-02 + 2.322344670789084e-02 + 2.316805883183489e-02 + 2.311280243515378e-02 + 2.305767721100430e-02 + 2.300268285332459e-02 + 2.294781904779433e-02 + 2.289308548135576e-02 + 2.283848185163481e-02 + 2.278400785322520e-02 + 2.272966317657758e-02 + 2.267544750906289e-02 + 2.262136054576819e-02 + 2.256740198705395e-02 + 2.251357153295969e-02 + 2.245986887460843e-02 + 2.240629370372433e-02 + 2.235284572997816e-02 + 2.229952464835474e-02 + 2.224633014749699e-02 + 2.219326193897085e-02 + 2.214031972536749e-02 + 2.208750320104361e-02 + 2.203481207216736e-02 + 2.198224604054712e-02 + 2.192980480490446e-02 + 2.187748807809197e-02 + 2.182529556587840e-02 + 2.177322696546572e-02 + 2.172128198614426e-02 + 2.166946034002218e-02 + 2.161776173674180e-02 + 2.156618587797776e-02 + 2.151473246970182e-02 + 2.146340122648612e-02 + 2.141219186176581e-02 + 2.136110408595206e-02 + 2.131013760699968e-02 + 2.125929213929720e-02 + 2.120856739943827e-02 + 2.115796310282077e-02 + 2.110747896148574e-02 + 2.105711468773744e-02 + 2.100686999708853e-02 + 2.095674460640470e-02 + 2.090673823470377e-02 + 2.085685060390323e-02 + 2.080708143284909e-02 + 2.075743043865024e-02 + 2.070789733896461e-02 + 2.065848185338519e-02 + 2.060918370358626e-02 + 2.056000261352416e-02 + 2.051093830731156e-02 + 2.046199050841276e-02 + 2.041315893918832e-02 + 2.036444332670061e-02 + 2.031584339811113e-02 + 2.026735887003067e-02 + 2.021898947028043e-02 + 2.017073493461869e-02 + 2.012259498752183e-02 + 2.007456935661649e-02 + 2.002665777297167e-02 + 1.997885996051357e-02 + 1.993117564943755e-02 + 1.988360457741823e-02 + 1.983614647798445e-02 + 1.978880107994216e-02 + 1.974156811085027e-02 + 1.969444731166336e-02 + 1.964743841723802e-02 + 1.960054115227784e-02 + 1.955375525837354e-02 + 1.950708047707909e-02 + 1.946051654129042e-02 + 1.941406318497287e-02 + 1.936772014474174e-02 + 1.932148716119990e-02 + 1.927536398140690e-02 + 1.922935034564512e-02 + 1.918344598004621e-02 + 1.913765063001423e-02 + 1.909196404425976e-02 + 1.904638595925336e-02 + 1.900091612254435e-02 + 1.895555428061772e-02 + 1.891030016469744e-02 + 1.886515352637163e-02 + 1.882011411999479e-02 + 1.877518167521970e-02 + 1.873035594232305e-02 + 1.868563668110157e-02 + 1.864102363246424e-02 + 1.859651653826993e-02 + 1.855211514697215e-02 + 1.850781921692858e-02 + 1.846362849811174e-02 + 1.841954273425713e-02 + 1.837556167722399e-02 + 1.833168508274460e-02 + 1.828791270638760e-02 + 1.824424429587613e-02 + 1.820067960186819e-02 + 1.815721838079814e-02 + 1.811386039242822e-02 + 1.807060539155448e-02 + 1.802745312809132e-02 + 1.798440336027523e-02 + 1.794145584667328e-02 + 1.789861034396235e-02 + 1.785586661445831e-02 + 1.781322441713358e-02 + 1.777068350457842e-02 + 1.772824363606736e-02 + 1.768590457480606e-02 + 1.764366608520215e-02 + 1.760152792777148e-02 + 1.755948986314423e-02 + 1.751755165530868e-02 + 1.747571306959304e-02 + 1.743397386795286e-02 + 1.739233380686453e-02 + 1.735079266012027e-02 + 1.730935019969591e-02 + 1.726800617515195e-02 + 1.722676035861175e-02 + 1.718561252878033e-02 + 1.714456244423200e-02 + 1.710360987245781e-02 + 1.706275458478830e-02 + 1.702199634263978e-02 + 1.698133492251816e-02 + 1.694077010510486e-02 + 1.690030164730331e-02 + 1.685992932068962e-02 + 1.681965290804600e-02 + 1.677947217681714e-02 + 1.673938689521877e-02 + 1.669939683666028e-02 + 1.665950177991986e-02 + 1.661970150205939e-02 + 1.657999577711447e-02 + 1.654038437906895e-02 + 1.650086708478969e-02 + 1.646144367321789e-02 + 1.642211391798679e-02 + 1.638287759543946e-02 + 1.634373448754158e-02 + 1.630468437732129e-02 + 1.626572704186934e-02 + 1.622686225251448e-02 + 1.618808979718675e-02 + 1.614940946170872e-02 + 1.611082101996680e-02 + 1.607232425440962e-02 + 1.603391895041710e-02 + 1.599560489122978e-02 + 1.595738185903658e-02 + 1.591924963852954e-02 + 1.588120801872957e-02 + 1.584325677844977e-02 + 1.580539569909259e-02 + 1.576762457813194e-02 + 1.572994319938502e-02 + 1.569235134492561e-02 + 1.565484881311209e-02 + 1.561743538476679e-02 + 1.558011083839993e-02 + 1.554287497958433e-02 + 1.550572759639263e-02 + 1.546866846769255e-02 + 1.543169739218311e-02 + 1.539481416304957e-02 + 1.535801856691179e-02 + 1.532131039389481e-02 + 1.528468944222785e-02 + 1.524815551153465e-02 + 1.521170838270258e-02 + 1.517534784896265e-02 + 1.513907371629201e-02 + 1.510288577422132e-02 + 1.506678381600347e-02 + 1.503076764230081e-02 + 1.499483704594779e-02 + 1.495899182406707e-02 + 1.492323178010325e-02 + 1.488755670734373e-02 + 1.485196640180961e-02 + 1.481646066682016e-02 + 1.478103929846549e-02 + 1.474570209596410e-02 + 1.471044886603309e-02 + 1.467527940456368e-02 + 1.464019351058384e-02 + 1.460519099481427e-02 + 1.457027165550810e-02 + 1.453543528903122e-02 + 1.450068170024789e-02 + 1.446601069487559e-02 + 1.443142207965322e-02 + 1.439691566271563e-02 + 1.436249124410753e-02 + 1.432814862414793e-02 + 1.429388761459182e-02 + 1.425970802314729e-02 + 1.422560965483165e-02 + 1.419159231701311e-02 + 1.415765581387266e-02 + 1.412379995194592e-02 + 1.409002455116132e-02 + 1.405632941792580e-02 + 1.402271435207008e-02 + 1.398917917303820e-02 + 1.395572369124169e-02 + 1.392234770932106e-02 + 1.388905104392205e-02 + 1.385583350997071e-02 + 1.382269491788422e-02 + 1.378963507987753e-02 + 1.375665380791922e-02 + 1.372375091366015e-02 + 1.369092621121959e-02 + 1.365817951715469e-02 + 1.362551064978645e-02 + 1.359291942581090e-02 + 1.356040565686591e-02 + 1.352796915179558e-02 + 1.349560973812908e-02 + 1.346332723540702e-02 + 1.343112144483463e-02 + 1.339899219360082e-02 + 1.336693930891053e-02 + 1.333496260043193e-02 + 1.330306188734133e-02 + 1.327123699224855e-02 + 1.323948773476910e-02 + 1.320781393642416e-02 + 1.317621541705235e-02 + 1.314469199166208e-02 + 1.311324348463446e-02 + 1.308186972415766e-02 + 1.305057053367403e-02 + 1.301934573289238e-02 + 1.298819514247371e-02 + 1.295711859027024e-02 + 1.292611590142988e-02 + 1.289518689817567e-02 + 1.286433140253433e-02 + 1.283354924175516e-02 + 1.280284024626999e-02 + 1.277220424320462e-02 + 1.274164105512193e-02 + 1.271115050454398e-02 + 1.268073242580564e-02 + 1.265038664885281e-02 + 1.262011299771964e-02 + 1.258991130045622e-02 + 1.255978138928737e-02 + 1.252972309744999e-02 + 1.249973624798444e-02 + 1.246982067106488e-02 + 1.243997620568067e-02 + 1.241020267461013e-02 + 1.238049990730756e-02 + 1.235086774662455e-02 + 1.232130602051964e-02 + 1.229181455798258e-02 + 1.226239319685087e-02 + 1.223304176770951e-02 + 1.220376010347082e-02 + 1.217454804486660e-02 + 1.214540542341299e-02 + 1.211633207079968e-02 + 1.208732782681391e-02 + 1.205839252771904e-02 + 1.202952600673308e-02 + 1.200072809652295e-02 + 1.197199864009422e-02 + 1.194333748171596e-02 + 1.191474445503102e-02 + 1.188621939116683e-02 + 1.185776212675846e-02 + 1.182937251288597e-02 + 1.180105038815069e-02 + 1.177279558400601e-02 + 1.174460794107161e-02 + 1.171648730396891e-02 + 1.168843351609301e-02 + 1.166044641171630e-02 + 1.163252583370262e-02 + 1.160467163102319e-02 + 1.157688364263099e-02 + 1.154916170933044e-02 + 1.152150567570712e-02 + 1.149391538555893e-02 + 1.146639068095789e-02 + 1.143893140447911e-02 + 1.141153740781534e-02 + 1.138420853673168e-02 + 1.135694462854312e-02 + 1.132974552839056e-02 + 1.130261108533809e-02 + 1.127554114921167e-02 + 1.124853556496432e-02 + 1.122159417997002e-02 + 1.119471684585664e-02 + 1.116790340283271e-02 + 1.114115369710312e-02 + 1.111446758944324e-02 + 1.108784492177717e-02 + 1.106128553754357e-02 + 1.103478929728668e-02 + 1.100835604711145e-02 + 1.098198563223047e-02 + 1.095567791133747e-02 + 1.092943273475230e-02 + 1.090324994987072e-02 + 1.087712940981543e-02 + 1.085107096608238e-02 + 1.082507447053145e-02 + 1.079913977931768e-02 + 1.077326674497864e-02 + 1.074745521859533e-02 + 1.072170505538783e-02 + 1.069601611066200e-02 + 1.067038823886727e-02 + 1.064482129354728e-02 + 1.061931513219808e-02 + 1.059386961330933e-02 + 1.056848458681972e-02 + 1.054315990640127e-02 + 1.051789543133304e-02 + 1.049269102209236e-02 + 1.046754653920045e-02 + 1.044246184044743e-02 + 1.041743677288729e-02 + 1.039247119540387e-02 + 1.036756497988909e-02 + 1.034271797805630e-02 + 1.031793004647734e-02 + 1.029320105343422e-02 + 1.026853085073464e-02 + 1.024391929539164e-02 + 1.021936625852857e-02 + 1.019487159885800e-02 + 1.017043517132599e-02 + 1.014605683522427e-02 + 1.012173646293816e-02 + 1.009747392058842e-02 + 1.007326905588179e-02 + 1.004912173629082e-02 + 1.002503183346208e-02 + 1.000099920653610e-02 + 9.977023717087764e-03 + 9.953105229386335e-03 + 9.929243608872406e-03 + 9.905438720973011e-03 + 9.881690430827046e-03 + 9.857998603258316e-03 + 9.834363104786413e-03 + 9.810783802355094e-03 + 9.787260560990621e-03 + 9.763793247942843e-03 + 9.740381731591760e-03 + 9.717025877967826e-03 + 9.693725554510663e-03 + 9.670480630152000e-03 + 9.647290973567844e-03 + 9.624156453317901e-03 + 9.601076938062841e-03 + 9.578052297039983e-03 + 9.555082399653962e-03 + 9.532167115690399e-03 + 9.509306316445141e-03 + 9.486499872512266e-03 + 9.463747653553711e-03 + 9.441049530896879e-03 + 9.418405376662433e-03 + 9.395815063104617e-03 + 9.373278461427175e-03 + 9.350795443499088e-03 + 9.328365882617906e-03 + 9.305989651970981e-03 + 9.283666624824176e-03 + 9.261396674723778e-03 + 9.239179675408710e-03 + 9.217015500757821e-03 + 9.194904024947497e-03 + 9.172845123632957e-03 + 9.150838672277813e-03 + 9.128884544858834e-03 + 9.106982617538152e-03 + 9.085132766987650e-03 + 9.063334868396023e-03 + 9.041588798714301e-03 + 9.019894435479832e-03 + 8.998251654894885e-03 + 8.976660334271958e-03 + 8.955120351755344e-03 + 8.933631585369030e-03 + 8.912193913264732e-03 + 8.890807213885918e-03 + 8.869471366214972e-03 + 8.848186249259440e-03 + 8.826951742251321e-03 + 8.805767725383001e-03 + 8.784634078744540e-03 + 8.763550682317645e-03 + 8.742517416743529e-03 + 8.721534162832835e-03 + 8.700600801502468e-03 + 8.679717214101214e-03 + 8.658883282492529e-03 + 8.638098888885700e-03 + 8.617363915025602e-03 + 8.596678243443276e-03 + 8.576041757693640e-03 + 8.555454340593486e-03 + 8.534915875110577e-03 + 8.514426244844865e-03 + 8.493985333674233e-03 + 8.473593025909724e-03 + 8.453249206335058e-03 + 8.432953759374154e-03 + 8.412706569850796e-03 + 8.392507523503252e-03 + 8.372356505624580e-03 + 8.352253401838657e-03 + 8.332198098800467e-03 + 8.312190482450988e-03 + 8.292230438871008e-03 + 8.272317855399050e-03 + 8.252452619663047e-03 + 8.232634619050869e-03 + 8.212863740331295e-03 + 8.193139871755427e-03 + 8.173462902270600e-03 + 8.153832719956143e-03 + 8.134249213438031e-03 + 8.114712271802299e-03 + 8.095221784035302e-03 + 8.075777639824947e-03 + 8.056379729417138e-03 + 8.037027942938956e-03 + 8.017722170154111e-03 + 7.998462301028743e-03 + 7.979248227381455e-03 + 7.960079840401237e-03 + 7.940957030626293e-03 + 7.921879690329333e-03 + 7.902847711453821e-03 + 7.883860985421759e-03 + 7.864919405368889e-03 + 7.846022864037674e-03 + 7.827171253341911e-03 + 7.808364466777525e-03 + 7.789602397948123e-03 + 7.770884940051978e-03 + 7.752211987488857e-03 + 7.733583434567862e-03 + 7.714999174963997e-03 + 7.696459103766686e-03 + 7.677963116338556e-03 + 7.659511107448910e-03 + 7.641102971817726e-03 + 7.622738605046243e-03 + 7.604417904226960e-03 + 7.586140765207791e-03 + 7.567907083543369e-03 + 7.549716755813157e-03 + 7.531569679511053e-03 + 7.513465752109027e-03 + 7.495404870064185e-03 + 7.477386931039745e-03 + 7.459411833357052e-03 + 7.441479474804043e-03 + 7.423589753808636e-03 + 7.405742569108545e-03 + 7.387937818890154e-03 + 7.370175402616828e-03 + 7.352455220325825e-03 + 7.334777170378787e-03 + 7.317141152312192e-03 + 7.299547066866589e-03 + 7.281994814230038e-03 + 7.264484294760120e-03 + 7.247015409129196e-03 + 7.229588058070396e-03 + 7.212202142721502e-03 + 7.194857564639825e-03 + 7.177554225359851e-03 + 7.160292026920549e-03 + 7.143070871828701e-03 + 7.125890661781023e-03 + 7.108751299151369e-03 + 7.091652687463649e-03 + 7.074594729473165e-03 + 7.057577328092346e-03 + 7.040600386920140e-03 + 7.023663809440293e-03 + 7.006767499621119e-03 + 6.989911362283671e-03 + 6.973095301761098e-03 + 6.956319222246642e-03 + 6.939583028242014e-03 + 6.922886624933184e-03 + 6.906229917977133e-03 + 6.889612813237578e-03 + 6.873035215956658e-03 + 6.856497031627250e-03 + 6.839998167124653e-03 + 6.823538528849983e-03 + 6.807118022950776e-03 + 6.790736556102037e-03 + 6.774394036012678e-03 + 6.758090370503938e-03 + 6.741825465874382e-03 + 6.725599229831710e-03 + 6.709411571076730e-03 + 6.693262397262002e-03 + 6.677151616823099e-03 + 6.661079138883049e-03 + 6.645044871881905e-03 + 6.629048724424302e-03 + 6.613090605727208e-03 + 6.597170426169362e-03 + 6.581288095176429e-03 + 6.565443521393368e-03 + 6.549636616015259e-03 + 6.533867289690503e-03 + 6.518135451870410e-03 + 6.502441013826720e-03 + 6.486783886693610e-03 + 6.471163980906190e-03 + 6.455581208648475e-03 + 6.440035481784445e-03 + 6.424526710952946e-03 + 6.409054808194274e-03 + 6.393619686148648e-03 + 6.378221257389647e-03 + 6.362859434216829e-03 + 6.347534129405275e-03 + 6.332245256702231e-03 + 6.316992728926398e-03 + 6.301776458848883e-03 + 6.286596360249587e-03 + 6.271452347303485e-03 + 6.256344334335297e-03 + 6.241272235637497e-03 + 6.226235965289892e-03 + 6.211235437617355e-03 + 6.196270567881593e-03 + 6.181341271239764e-03 + 6.166447462747857e-03 + 6.151589057705613e-03 + 6.136765971896623e-03 + 6.121978121401951e-03 + 6.107225422158738e-03 + 6.092507790132517e-03 + 6.077825141615326e-03 + 6.063177393866219e-03 + 6.048564463915550e-03 + 6.033986268442907e-03 + 6.019442724444331e-03 + 6.004933749322879e-03 + 5.990459260846786e-03 + 5.976019176895193e-03 + 5.961613415583682e-03 + 5.947241895231883e-03 + 5.932904533953020e-03 + 5.918601250164555e-03 + 5.904331962789744e-03 + 5.890096590861083e-03 + 5.875895053571317e-03 + 5.861727270328322e-03 + 5.847593160694864e-03 + 5.833492644473149e-03 + 5.819425641715960e-03 + 5.805392072163253e-03 + 5.791391855962741e-03 + 5.777424914193254e-03 + 5.763491167389796e-03 + 5.749590536018355e-03 + 5.735722941127108e-03 + 5.721888304505554e-03 + 5.708086547766434e-03 + 5.694317591457392e-03 + 5.680581357894303e-03 + 5.666877769868901e-03 + 5.653206748498332e-03 + 5.639568216215936e-03 + 5.625962096156960e-03 + 5.612388310444156e-03 + 5.598846782244085e-03 + 5.585337435180374e-03 + 5.571860191464977e-03 + 5.558414974887664e-03 + 5.545001710146245e-03 + 5.531620319651646e-03 + 5.518270727342278e-03 + 5.504952858629092e-03 + 5.491666637149790e-03 + 5.478411987013346e-03 + 5.465188833301630e-03 + 5.451997101098349e-03 + 5.438836715460566e-03 + 5.425707601454353e-03 + 5.412609684284744e-03 + 5.399542889597323e-03 + 5.386507143481766e-03 + 5.373502371672819e-03 + 5.360528500347250e-03 + 5.347585456320476e-03 + 5.334673165238440e-03 + 5.321791553290573e-03 + 5.308940548233661e-03 + 5.296120077396591e-03 + 5.283330067535706e-03 + 5.270570445063373e-03 + 5.257841138170363e-03 + 5.245142075198895e-03 + 5.232473183108559e-03 + 5.219834389656078e-03 + 5.207225623450342e-03 + 5.194646813662877e-03 + 5.182097888019903e-03 + 5.169578774433769e-03 + 5.157089403379224e-03 + 5.144629703265777e-03 + 5.132199601938705e-03 + 5.119799030212023e-03 + 5.107427917986021e-03 + 5.095086194230444e-03 + 5.082773788422456e-03 + 5.070490630851877e-03 + 5.058236652191947e-03 + 5.046011782411770e-03 + 5.033815952050060e-03 + 5.021649092096963e-03 + 5.009511132708167e-03 + 4.997402004872952e-03 + 4.985321640554899e-03 + 4.973269971256597e-03 + 4.961246927915243e-03 + 4.949252441362114e-03 + 4.937286444284467e-03 + 4.925348869112448e-03 + 4.913439647407981e-03 + 4.901558711796497e-03 + 4.889705994683389e-03 + 4.877881427891544e-03 + 4.866084944974813e-03 + 4.854316479151838e-03 + 4.842575962313763e-03 + 4.830863328342665e-03 + 4.819178511323663e-03 + 4.807521444209243e-03 + 4.795892060902922e-03 + 4.784290295384500e-03 + 4.772716080911616e-03 + 4.761169351999607e-03 + 4.749650043687660e-03 + 4.738158090505544e-03 + 4.726693426328077e-03 + 4.715255985490762e-03 + 4.703845704177584e-03 + 4.692462517255530e-03 + 4.681106359266913e-03 + 4.669777166671382e-03 + 4.658474874679097e-03 + 4.647199418051047e-03 + 4.635950733693824e-03 + 4.624728757814554e-03 + 4.613533426035275e-03 + 4.602364675085555e-03 + 4.591222441193854e-03 + 4.580106660340010e-03 + 4.569017270133631e-03 + 4.557954207729684e-03 + 4.546917409606468e-03 + 4.535906813063030e-03 + 4.524922355662980e-03 + 4.513963975024341e-03 + 4.503031608847450e-03 + 4.492125194604706e-03 + 4.481244669721014e-03 + 4.470389973075004e-03 + 4.459561043403103e-03 + 4.448757818627942e-03 + 4.437980237157132e-03 + 4.427228237584914e-03 + 4.416501758569245e-03 + 4.405800739475310e-03 + 4.395125119625431e-03 + 4.384474837838549e-03 + 4.373849833628650e-03 + 4.363250046735974e-03 + 4.352675416676511e-03 + 4.342125883231542e-03 + 4.331601386396421e-03 + 4.321101866314548e-03 + 4.310627263408189e-03 + 4.300177518182486e-03 + 4.289752570999768e-03 + 4.279352362569397e-03 + 4.268976833692708e-03 + 4.258625924837488e-03 + 4.248299577436886e-03 + 4.237997733292803e-03 + 4.227720333115902e-03 + 4.217467318344088e-03 + 4.207238631130676e-03 + 4.197034213451204e-03 + 4.186854006892898e-03 + 4.176697952964437e-03 + 4.166565994071401e-03 + 4.156458073034852e-03 + 4.146374132669977e-03 + 4.136314114934178e-03 + 4.126277962231265e-03 + 4.116265617785051e-03 + 4.106277025130100e-03 + 4.096312127225507e-03 + 4.086370866498099e-03 + 4.076453186851077e-03 + 4.066559032318193e-03 + 4.056688346384167e-03 + 4.046841072375552e-03 + 4.037017154234894e-03 + 4.027216536753351e-03 + 4.017439163691562e-03 + 4.007684978984143e-03 + 3.997953927616382e-03 + 3.988245954341580e-03 + 3.978561003853811e-03 + 3.968899020987378e-03 + 3.959259950174110e-03 + 3.949643736363211e-03 + 3.940050325917084e-03 + 3.930479663940112e-03 + 3.920931695287086e-03 + 3.911406366153988e-03 + 3.901903622192779e-03 + 3.892423408886956e-03 + 3.882965672529350e-03 + 3.873530359308857e-03 + 3.864117415340676e-03 + 3.854726787040829e-03 + 3.845358421069152e-03 + 3.836012264203419e-03 + 3.826688263119290e-03 + 3.817386364639579e-03 + 3.808106515834866e-03 + 3.798848664119608e-03 + 3.789612756624806e-03 + 3.780398740246358e-03 + 3.771206562411011e-03 + 3.762036171140922e-03 + 3.752887514765301e-03 + 3.743760540740341e-03 + 3.734655196719529e-03 + 3.725571430980986e-03 + 3.716509192135922e-03 + 3.707468428387338e-03 + 3.698449087559120e-03 + 3.689451119263604e-03 + 3.680474472533827e-03 + 3.671519094850921e-03 + 3.662584935894309e-03 + 3.653671945297336e-03 + 3.644780071212910e-03 + 3.635909263417586e-03 + 3.627059471971036e-03 + 3.618230645951014e-03 + 3.609422734605362e-03 + 3.600635687799489e-03 + 3.591869456282116e-03 + 3.583123989955615e-03 + 3.574399238584414e-03 + 3.565695152845392e-03 + 3.557011682930304e-03 + 3.548348778903569e-03 + 3.539706391532652e-03 + 3.531084471778191e-03 + 3.522482970666699e-03 + 3.513901839239252e-03 + 3.505341028388093e-03 + 3.496800489111114e-03 + 3.488280173119797e-03 + 3.479780031892506e-03 + 3.471300016604386e-03 + 3.462840078578430e-03 + 3.454400170006921e-03 + 3.445980243580072e-03 + 3.437580250715228e-03 + 3.429200142992534e-03 + 3.420839872683964e-03 + 3.412499392748279e-03 + 3.404178655562702e-03 + 3.395877612913789e-03 + 3.387596218304602e-03 + 3.379334424898988e-03 + 3.371092184764359e-03 + 3.362869450661228e-03 + 3.354666175991870e-03 + 3.346482314543412e-03 + 3.338317819175880e-03 + 3.330172642972068e-03 + 3.322046740007612e-03 + 3.313940064235304e-03 + 3.305852569386344e-03 + 3.297784208976364e-03 + 3.289734936574093e-03 + 3.281704706272533e-03 + 3.273693473070924e-03 + 3.265701191257636e-03 + 3.257727814803984e-03 + 3.249773298074863e-03 + 3.241837595979994e-03 + 3.233920663596386e-03 + 3.226022455622204e-03 + 3.218142926555998e-03 + 3.210282031163023e-03 + 3.202439725215123e-03 + 3.194615964134223e-03 + 3.186810703067027e-03 + 3.179023897602838e-03 + 3.171255503398923e-03 + 3.163505475998486e-03 + 3.155773770652277e-03 + 3.148060343553685e-03 + 3.140365151430291e-03 + 3.132688149313277e-03 + 3.125029293443853e-03 + 3.117388541383308e-03 + 3.109765848736372e-03 + 3.102161171408776e-03 + 3.094574466373093e-03 + 3.087005690728782e-03 + 3.079454801280003e-03 + 3.071921754555924e-03 + 3.064406507880629e-03 + 3.056909018530570e-03 + 3.049429243338136e-03 + 3.041967139485151e-03 + 3.034522664377966e-03 + 3.027095775562892e-03 + 3.019686430816400e-03 + 3.012294588055786e-03 + 3.004920205212209e-03 + 2.997563239705405e-03 + 2.990223649173174e-03 + 2.982901392198357e-03 + 2.975596427311395e-03 + 2.968308712822513e-03 + 2.961038206776656e-03 + 2.953784867392937e-03 + 2.946548653201694e-03 + 2.939329523194637e-03 + 2.932127436582907e-03 + 2.924942352269057e-03 + 2.917774228121468e-03 + 2.910623023643702e-03 + 2.903488699056754e-03 + 2.896371212514376e-03 + 2.889270523304112e-03 + 2.882186591679052e-03 + 2.875119376658924e-03 + 2.868068837676741e-03 + 2.861034934776638e-03 + 2.854017627809473e-03 + 2.847016876513213e-03 + 2.840032640686938e-03 + 2.833064880681456e-03 + 2.826113557103426e-03 + 2.819178630449384e-03 + 2.812260060105674e-03 + 2.805357806481411e-03 + 2.798471831428214e-03 + 2.791602094948384e-03 + 2.784748557109701e-03 + 2.777911179108391e-03 + 2.771089922400815e-03 + 2.764284748007964e-03 + 2.757495616304825e-03 + 2.750722488782177e-03 + 2.743965327115693e-03 + 2.737224092409578e-03 + 2.730498746008289e-03 + 2.723789249648372e-03 + 2.717095565426717e-03 + 2.710417654358784e-03 + 2.703755477800617e-03 + 2.697108999073383e-03 + 2.690478179939920e-03 + 2.683862981660020e-03 + 2.677263366970269e-03 + 2.670679298051182e-03 + 2.664110736894467e-03 + 2.657557646411518e-03 + 2.651019989061974e-03 + 2.644497727126834e-03 + 2.637990823748049e-03 + 2.631499241776077e-03 + 2.625022943767310e-03 + 2.618561892619121e-03 + 2.612116051581085e-03 + 2.605685383984310e-03 + 2.599269852507916e-03 + 2.592869420565223e-03 + 2.586484052278204e-03 + 2.580113710814501e-03 + 2.573758359383719e-03 + 2.567417961609419e-03 + 2.561092481362380e-03 + 2.554781882413309e-03 + 2.548486128464411e-03 + 2.542205184036424e-03 + 2.535939013422343e-03 + 2.529687580238901e-03 + 2.523450848436006e-03 + 2.517228782352248e-03 + 2.511021346720505e-03 + 2.504828506444104e-03 + 2.498650225958320e-03 + 2.492486468967693e-03 + 2.486337200680032e-03 + 2.480202386472821e-03 + 2.474081990653096e-03 + 2.467975978460781e-03 + 2.461884315215007e-03 + 2.455806965243642e-03 + 2.449743893777428e-03 + 2.443695066608286e-03 + 2.437660449328877e-03 + 2.431640007119714e-03 + 2.425633705211946e-03 + 2.419641509634817e-03 + 2.413663385966202e-03 + 2.407699299632079e-03 + 2.401749216909934e-03 + 2.395813103777745e-03 + 2.389890925926915e-03 + 2.383982649399740e-03 + 2.378088240561300e-03 + 2.372207665865560e-03 + 2.366340891258303e-03 + 2.360487883037754e-03 + 2.354648608018378e-03 + 2.348823033118129e-03 + 2.343011124539103e-03 + 2.337212848054228e-03 + 2.331428171390765e-03 + 2.325657062040943e-03 + 2.319899486412222e-03 + 2.314155410784699e-03 + 2.308424802407836e-03 + 2.302707629600105e-03 + 2.297003858807791e-03 + 2.291313456815245e-03 + 2.285636391934661e-03 + 2.279972631361444e-03 + 2.274322142294874e-03 + 2.268684892803898e-03 + 2.263060850445441e-03 + 2.257449982675230e-03 + 2.251852257331842e-03 + 2.246267642469826e-03 + 2.240696106224612e-03 + 2.235137616698782e-03 + 2.229592141925271e-03 + 2.224059650030012e-03 + 2.218540109447705e-03 + 2.213033488566449e-03 + 2.207539755750870e-03 + 2.202058879448589e-03 + 2.196590827868759e-03 + 2.191135569406817e-03 + 2.185693073538250e-03 + 2.180263309295804e-03 + 2.174846245146934e-03 + 2.169441849486111e-03 + 2.164050091629877e-03 + 2.158670941358884e-03 + 2.153304367034930e-03 + 2.147950337590323e-03 + 2.142608822828710e-03 + 2.137279792340324e-03 + 2.131963215445541e-03 + 2.126659061301170e-03 + 2.121367299363035e-03 + 2.116087899310018e-03 + 2.110820830985273e-03 + 2.105566064252215e-03 + 2.100323568822542e-03 + 2.095093314356113e-03 + 2.089875271479949e-03 + 2.084669410319118e-03 + 2.079475699908646e-03 + 2.074294110902819e-03 + 2.069124614088778e-03 + 2.063967179294363e-03 + 2.058821776747180e-03 + 2.053688376991423e-03 + 2.048566950718572e-03 + 2.043457468582260e-03 + 2.038359901240009e-03 + 2.033274219398007e-03 + 2.028200393563254e-03 + 2.023138394473247e-03 + 2.018088193625467e-03 + 2.013049761808302e-03 + 2.008023069533293e-03 + 2.003008088023720e-03 + 1.998004788922133e-03 + 1.993013143739461e-03 + 1.988033123025423e-03 + 1.983064698401174e-03 + 1.978107841939004e-03 + 1.973162523959716e-03 + 1.968228716337500e-03 + 1.963306391971906e-03 + 1.958395521239848e-03 + 1.953496075620802e-03 + 1.948608028019931e-03 + 1.943731350228688e-03 + 1.938866013789267e-03 + 1.934011990485791e-03 + 1.929169252901841e-03 + 1.924337773155020e-03 + 1.919517522737516e-03 + 1.914708474346116e-03 + 1.909910600724645e-03 + 1.905123874118434e-03 + 1.900348266781407e-03 + 1.895583751238830e-03 + 1.890830300301618e-03 + 1.886087886140893e-03 + 1.881356481302734e-03 + 1.876636059328014e-03 + 1.871926593048255e-03 + 1.867228054886164e-03 + 1.862540417322874e-03 + 1.857863653843670e-03 + 1.853197738035545e-03 + 1.848542642643349e-03 + 1.843898340659710e-03 + 1.839264805482605e-03 + 1.834642010884087e-03 + 1.830029929675155e-03 + 1.825428534756660e-03 + 1.820837800826725e-03 + 1.816257700994342e-03 + 1.811688207883416e-03 + 1.807129296515363e-03 + 1.802580940478343e-03 + 1.798043112569654e-03 + 1.793515787775185e-03 + 1.788998939681262e-03 + 1.784492541016137e-03 + 1.779996567290557e-03 + 1.775510992946437e-03 + 1.771035790955467e-03 + 1.766570935188881e-03 + 1.762116400368900e-03 + 1.757672161650980e-03 + 1.753238193179788e-03 + 1.748814468721301e-03 + 1.744400962234815e-03 + 1.739997649147064e-03 + 1.735604504535336e-03 + 1.731221502449809e-03 + 1.726848617398671e-03 + 1.722485824273258e-03 + 1.718133098140551e-03 + 1.713790413411143e-03 + 1.709457744960287e-03 + 1.705135068710917e-03 + 1.700822359316501e-03 + 1.696519591326764e-03 + 1.692226740206531e-03 + 1.687943780998710e-03 + 1.683670689031842e-03 + 1.679407440586236e-03 + 1.675154010255336e-03 + 1.670910372590760e-03 + 1.666676504276520e-03 + 1.662452380680008e-03 + 1.658237976786625e-03 + 1.654033269138933e-03 + 1.649838233189823e-03 + 1.645652843894769e-03 + 1.641477077483747e-03 + 1.637310910181093e-03 + 1.633154317979306e-03 + 1.629007276710043e-03 + 1.624869761977525e-03 + 1.620741749539434e-03 + 1.616623216289868e-03 + 1.612514138626602e-03 + 1.608414492386588e-03 + 1.604324254066237e-03 + 1.600243399893093e-03 + 1.596171905775712e-03 + 1.592109748332882e-03 + 1.588056904380057e-03 + 1.584013350591343e-03 + 1.579979063015354e-03 + 1.575954018417919e-03 + 1.571938194458784e-03 + 1.567931567017785e-03 + 1.563934112240304e-03 + 1.559945807641685e-03 + 1.555966630779868e-03 + 1.551996558434039e-03 + 1.548035566441649e-03 + 1.544083632647983e-03 + 1.540140734902817e-03 + 1.536206849423688e-03 + 1.532281953055403e-03 + 1.528366023373284e-03 + 1.524459038476067e-03 + 1.520560975283225e-03 + 1.516671810636623e-03 + 1.512791522697568e-03 + 1.508920088807869e-03 + 1.505057486015793e-03 + 1.501203692209861e-03 + 1.497358685322736e-03 + 1.493522443062933e-03 + 1.489694942724099e-03 + 1.485876162194853e-03 + 1.482066079697174e-03 + 1.478264672890618e-03 + 1.474471919644568e-03 + 1.470687798121700e-03 + 1.466912286519041e-03 + 1.463145362594138e-03 + 1.459387003990816e-03 + 1.455637189563730e-03 + 1.451895897787254e-03 + 1.448163106500405e-03 + 1.444438793947980e-03 + 1.440722938760434e-03 + 1.437015519703072e-03 + 1.433316514691718e-03 + 1.429625901910583e-03 + 1.425943660193772e-03 + 1.422269768088744e-03 + 1.418604204318803e-03 + 1.414946947952337e-03 + 1.411297977567125e-03 + 1.407657271824714e-03 + 1.404024809794961e-03 + 1.400400570139807e-03 + 1.396784531434119e-03 + 1.393176672533590e-03 + 1.389576972970703e-03 + 1.385985412235932e-03 + 1.382401969107074e-03 + 1.378826622443783e-03 + 1.375259351219489e-03 + 1.371700134514839e-03 + 1.368148952079336e-03 + 1.364605783757036e-03 + 1.361070608632290e-03 + 1.357543405835987e-03 + 1.354024154621594e-03 + 1.350512834317403e-03 + 1.347009424934256e-03 + 1.343513906652181e-03 + 1.340026258589547e-03 + 1.336546459739890e-03 + 1.333074489680093e-03 + 1.329610329681042e-03 + 1.326153959375566e-03 + 1.322705357081586e-03 + 1.319264503327096e-03 + 1.315831378649060e-03 + 1.312405962942001e-03 + 1.308988235813027e-03 + 1.305578177302038e-03 + 1.302175767936687e-03 + 1.298780987783750e-03 + 1.295393816813521e-03 + 1.292014235092867e-03 + 1.288642222828844e-03 + 1.285277760581296e-03 + 1.281920829182064e-03 + 1.278571408463430e-03 + 1.275229478684235e-03 + 1.271895021211065e-03 + 1.268568016022571e-03 + 1.265248443161927e-03 + 1.261936283866222e-03 + 1.258631518851812e-03 + 1.255334128626978e-03 + 1.252044093890807e-03 + 1.248761395151665e-03 + 1.245486013113075e-03 + 1.242217929129610e-03 + 1.238957124307338e-03 + 1.235703579418827e-03 + 1.232457274959363e-03 + 1.229218191838193e-03 + 1.225986311430220e-03 + 1.222761615473843e-03 + 1.219544084856006e-03 + 1.216333699988417e-03 + 1.213130441964228e-03 + 1.209934292565758e-03 + 1.206745233676102e-03 + 1.203563245963205e-03 + 1.200388310525061e-03 + 1.197220409053557e-03 + 1.194059523052293e-03 + 1.190905633902454e-03 + 1.187758723052301e-03 + 1.184618772531461e-03 + 1.181485763720917e-03 + 1.178359677471923e-03 + 1.175240496495629e-03 + 1.172128202790389e-03 + 1.169022777016151e-03 + 1.165924201427151e-03 + 1.162832457974330e-03 + 1.159747527667428e-03 + 1.156669393342115e-03 + 1.153598037513975e-03 + 1.150533441195656e-03 + 1.147475586343000e-03 + 1.144424455192698e-03 + 1.141380029693999e-03 + 1.138342292070108e-03 + 1.135311224784675e-03 + 1.132286810371483e-03 + 1.129269030382949e-03 + 1.126257866687504e-03 + 1.123253302806332e-03 + 1.120255320585528e-03 + 1.117263901594027e-03 + 1.114279029333705e-03 + 1.111300685926414e-03 + 1.108328853214485e-03 + 1.105363515126287e-03 + 1.102404653695880e-03 + 1.099452250276090e-03 + 1.096506289065756e-03 + 1.093566752790314e-03 + 1.090633622975802e-03 + 1.087706882683815e-03 + 1.084786514992603e-03 + 1.081872502714538e-03 + 1.078964828755093e-03 + 1.076063476054719e-03 + 1.073168427526746e-03 + 1.070279665938792e-03 + 1.067397174442816e-03 + 1.064520936417689e-03 + 1.061650934087830e-03 + 1.058787150577005e-03 + 1.055929570192933e-03 + 1.053078175257412e-03 + 1.050232948596978e-03 + 1.047393874491941e-03 + 1.044560935952646e-03 + 1.041734115621369e-03 + 1.038913396581877e-03 + 1.036098763274602e-03 + 1.033290199394467e-03 + 1.030487686748966e-03 + 1.027691209748195e-03 + 1.024900752824401e-03 + 1.022116298137994e-03 + 1.019337829638554e-03 + 1.016565331581354e-03 + 1.013798786681050e-03 + 1.011038178744547e-03 + 1.008283492069452e-03 + 1.005534710312413e-03 + 1.002791817167788e-03 + 1.000054796401326e-03 + 9.973236317525795e-04 + 9.945983071579347e-04 + 9.918788066535795e-04 + 9.891651141399331e-04 + 9.864572135795289e-04 + 9.837550890187182e-04 + 9.810587245440681e-04 + 9.783681042165289e-04 + 9.756832121036981e-04 + 9.730040324093254e-04 + 9.703305493295432e-04 + 9.676627470403841e-04 + 9.650006098016114e-04 + 9.623441219373007e-04 + 9.596932677964791e-04 + 9.570480316324495e-04 + 9.544083978205768e-04 + 9.517743508934125e-04 + 9.491458752396962e-04 + 9.465229553012878e-04 + 9.439055756501852e-04 + 9.412937207895038e-04 + 9.386873752809525e-04 + 9.360865238076440e-04 + 9.334911509791107e-04 + 9.309012414140627e-04 + 9.283167798171848e-04 + 9.257377509839119e-04 + 9.231641396993918e-04 + 9.205959306774516e-04 + 9.180331088080401e-04 + 9.154756590138127e-04 + 9.129235660962607e-04 + 9.103768149701878e-04 + 9.078353906321772e-04 + 9.052992780955343e-04 + 9.027684623946166e-04 + 9.002429285800444e-04 + 8.977226617159664e-04 + 8.952076469091944e-04 + 8.926978693026045e-04 + 8.901933140640126e-04 + 8.876939664445818e-04 + 8.851998117353022e-04 + 8.827108351548252e-04 + 8.802270219825557e-04 + 8.777483575705740e-04 + 8.752748272927118e-04 + 8.728064165680979e-04 + 8.703431108522175e-04 + 8.678848955854838e-04 + 8.654317562117358e-04 + 8.629836782258149e-04 + 8.605406473168484e-04 + 8.581026490766350e-04 + 8.556696689660546e-04 + 8.532416927295966e-04 + 8.508187061075220e-04 + 8.484006947265324e-04 + 8.459876443379812e-04 + 8.435795407180884e-04 + 8.411763696276702e-04 + 8.387781169670006e-04 + 8.363847686436173e-04 + 8.339963104952486e-04 + 8.316127284703911e-04 + 8.292340085393665e-04 + 8.268601366269382e-04 + 8.244910987818749e-04 + 8.221268810991789e-04 + 8.197674696351961e-04 + 8.174128504795555e-04 + 8.150630097863373e-04 + 8.127179337987174e-04 + 8.103776086785577e-04 + 8.080420206116735e-04 + 8.057111559859151e-04 + 8.033850010442538e-04 + 8.010635420033148e-04 + 7.987467653572807e-04 + 7.964346575211490e-04 + 7.941272048473775e-04 + 7.918243938145987e-04 + 7.895262109139402e-04 + 7.872326426395918e-04 + 7.849436755404454e-04 + 7.826592961986925e-04 + 7.803794912312032e-04 + 7.781042473133076e-04 + 7.758335511109105e-04 + 7.735673892815593e-04 + 7.713057485643111e-04 + 7.690486157536814e-04 + 7.667959776727836e-04 + 7.645478211004869e-04 + 7.623041328912646e-04 + 7.600649000053854e-04 + 7.578301093264215e-04 + 7.555997477583347e-04 + 7.533738022910566e-04 + 7.511522599897612e-04 + 7.489351079282785e-04 + 7.467223331578882e-04 + 7.445139227962291e-04 + 7.423098639775247e-04 + 7.401101438263767e-04 + 7.379147496119391e-04 + 7.357236686066337e-04 + 7.335368879604144e-04 + 7.313543950177981e-04 + 7.291761771981462e-04 + 7.270022218267318e-04 + 7.248325162821272e-04 + 7.226670479949025e-04 + 7.205058044241288e-04 + 7.183487730730944e-04 + 7.161959414766152e-04 + 7.140472971809699e-04 + 7.119028277561113e-04 + 7.097625208231147e-04 + 7.076263641063239e-04 + 7.054943452576004e-04 + 7.033664519218169e-04 + 7.012426719956601e-04 + 6.991229932510109e-04 + 6.970074033540157e-04 + 6.948958902400331e-04 + 6.927884418689321e-04 + 6.906850461485944e-04 + 6.885856909689247e-04 + 6.864903643067344e-04 + 6.843990542306164e-04 + 6.823117487354689e-04 + 6.802284359113009e-04 + 6.781491039842488e-04 + 6.760737410664455e-04 + 6.740023352773578e-04 + 6.719348748282754e-04 + 6.698713480434448e-04 + 6.678117432465053e-04 + 6.657560487034911e-04 + 6.637042527655789e-04 + 6.616563438432147e-04 + 6.596123103782944e-04 + 6.575721408025738e-04 + 6.555358236048545e-04 + 6.535033473936704e-04 + 6.514747007198682e-04 + 6.494498721244171e-04 + 6.474288502266283e-04 + 6.454116237722280e-04 + 6.433981815196293e-04 + 6.413885120963034e-04 + 6.393826043225120e-04 + 6.373804471016686e-04 + 6.353820291728463e-04 + 6.333873394523912e-04 + 6.313963669651093e-04 + 6.294091005879305e-04 + 6.274255292885601e-04 + 6.254456421348147e-04 + 6.234694281911996e-04 + 6.214968766042923e-04 + 6.195279765738893e-04 + 6.175627172048796e-04 + 6.156010877068991e-04 + 6.136430774102346e-04 + 6.116886755862946e-04 + 6.097378715435904e-04 + 6.077906546697107e-04 + 6.058470144286753e-04 + 6.039069402835228e-04 + 6.019704216802507e-04 + 6.000374481409778e-04 + 5.981080092530985e-04 + 5.961820946588096e-04 + 5.942596940083503e-04 + 5.923407969721301e-04 + 5.904253932616448e-04 + 5.885134726736782e-04 + 5.866050250202793e-04 + 5.847000400980857e-04 + 5.827985078791194e-04 + 5.809004183470366e-04 + 5.790057613579966e-04 + 5.771145269606196e-04 + 5.752267052829598e-04 + 5.733422863841403e-04 + 5.714612604000550e-04 + 5.695836175305099e-04 + 5.677093480037018e-04 + 5.658384420678564e-04 + 5.639708900266142e-04 + 5.621066823022896e-04 + 5.602458092869138e-04 + 5.583882613744714e-04 + 5.565340290827777e-04 + 5.546831029664671e-04 + 5.528354736013446e-04 + 5.509911316015094e-04 + 5.491500676402182e-04 + 5.473122724461832e-04 + 5.454777367810608e-04 + 5.436464514412940e-04 + 5.418184072613321e-04 + 5.399935951226492e-04 + 5.381720060069473e-04 + 5.363536309736959e-04 + 5.345384609776805e-04 + 5.327264870731968e-04 + 5.309177004752346e-04 + 5.291120923593077e-04 + 5.273096539494221e-04 + 5.255103765544823e-04 + 5.237142514407170e-04 + 5.219212699733492e-04 + 5.201314236865307e-04 + 5.183447040146093e-04 + 5.165611024246747e-04 + 5.147806105331874e-04 + 5.130032200114061e-04 + 5.112289225530487e-04 + 5.094577098620987e-04 + 5.076895736854020e-04 + 5.059245058583464e-04 + 5.041624983517820e-04 + 5.024035430839573e-04 + 5.006476319990773e-04 + 4.988947572035529e-04 + 4.971449107942239e-04 + 4.953980848818115e-04 + 4.936542716805855e-04 + 4.919134634956966e-04 + 4.901756526846954e-04 + 4.884408316006080e-04 + 4.867089926403434e-04 + 4.849801282731475e-04 + 4.832542310892493e-04 + 4.815312937309208e-04 + 4.798113088560132e-04 + 4.780942690954599e-04 + 4.763801672259719e-04 + 4.746689961731605e-04 + 4.729607488395965e-04 + 4.712554181333483e-04 + 4.695529970142063e-04 + 4.678534786182833e-04 + 4.661568561056742e-04 + 4.644631226216267e-04 + 4.627722714285577e-04 + 4.610842958399921e-04 + 4.593991892076899e-04 + 4.577169450300335e-04 + 4.560375568336446e-04 + 4.543610181249096e-04 + 4.526873225594637e-04 + 4.510164638467393e-04 + 4.493484356950898e-04 + 4.476832319569833e-04 + 4.460208465382815e-04 + 4.443612733350173e-04 + 4.427045064285867e-04 + 4.410505399510805e-04 + 4.393993679504339e-04 + 4.377509846774214e-04 + 4.361053844834223e-04 + 4.344625616662297e-04 + 4.328225106365193e-04 + 4.311852259097922e-04 + 4.295507020701359e-04 + 4.279189337521271e-04 + 4.262899156467061e-04 + 4.246636425301464e-04 + 4.230401092565931e-04 + 4.214193107478168e-04 + 4.198012419839599e-04 + 4.181858979868060e-04 + 4.165732738692198e-04 + 4.149633649793705e-04 + 4.133561665739344e-04 + 4.117516738453971e-04 + 4.101498823326724e-04 + 4.085507876181731e-04 + 4.069543852399522e-04 + 4.053606707914893e-04 + 4.037696400086752e-04 + 4.021812887746215e-04 + 4.005956129436248e-04 + 3.990126084760660e-04 + 3.974322714846641e-04 + 3.958545980293214e-04 + 3.942795842513983e-04 + 3.927072264688036e-04 + 3.911375211195356e-04 + 3.895704646516968e-04 + 3.880060534869329e-04 + 3.864442842922655e-04 + 3.848851538066537e-04 + 3.833286587063809e-04 + 3.817747958651508e-04 + 3.802235622593628e-04 + 3.786749548688228e-04 + 3.771289708205180e-04 + 3.755856073392733e-04 + 3.740448616816441e-04 + 3.725067311649692e-04 + 3.709712132043737e-04 + 3.694383053790672e-04 + 3.679080053579325e-04 + 3.663803108503057e-04 + 3.648552195606523e-04 + 3.633327293646475e-04 + 3.618128382932607e-04 + 3.602955444344858e-04 + 3.587808459078391e-04 + 3.572687408998931e-04 + 3.557592277792442e-04 + 3.542523049927096e-04 + 3.527479710408145e-04 + 3.512462245019904e-04 + 3.497470640500036e-04 + 3.482504884770882e-04 + 3.467564967437580e-04 + 3.452650877985240e-04 + 3.437762605764859e-04 + 3.422900143250168e-04 + 3.408063483640538e-04 + 3.393252619896345e-04 + 3.378467546103840e-04 + 3.363708257653936e-04 + 3.348974751341996e-04 + 3.334267024660963e-04 + 3.319585075646510e-04 + 3.304928903038992e-04 + 3.290298507212495e-04 + 3.275693889604049e-04 + 3.261115052402690e-04 + 3.246561999078441e-04 + 3.232034733603981e-04 + 3.217533259984899e-04 + 3.203057585048498e-04 + 3.188607716794152e-04 + 3.174183662346357e-04 + 3.159785430822741e-04 + 3.145413032833238e-04 + 3.131066479369465e-04 + 3.116745782136557e-04 + 3.102450954058189e-04 + 3.088182010197684e-04 + 3.073938965650610e-04 + 3.059721835802734e-04 + 3.045530637916020e-04 + 3.031365390386899e-04 + 3.017226112552691e-04 + 3.003112824793533e-04 + 2.989025548234045e-04 + 2.974964304955006e-04 + 2.960929118913988e-04 + 2.946920014422941e-04 + 2.932937016150965e-04 + 2.918980151023185e-04 + 2.905049446767149e-04 + 2.891144931550728e-04 + 2.877266634923031e-04 + 2.863414587568181e-04 + 2.849588821248430e-04 + 2.835789368717610e-04 + 2.822016263526234e-04 + 2.808269540128114e-04 + 2.794549234525530e-04 + 2.780855383858511e-04 + 2.767188026160350e-04 + 2.753547199733251e-04 + 2.739932944362576e-04 + 2.726345302253411e-04 + 2.712784314751994e-04 + 2.699250024118205e-04 + 2.685742475595017e-04 + 2.672261714415124e-04 + 2.658807786371782e-04 + 2.645380739000219e-04 + 2.631980619957597e-04 + 2.618607478073471e-04 + 2.605261365239288e-04 + 2.591942332540738e-04 + 2.578650431168888e-04 + 2.565385715181067e-04 + 2.552148239188000e-04 + 2.538938058269625e-04 + 2.525755228940477e-04 + 2.512599808919393e-04 + 2.499471856899045e-04 + 2.486371432244064e-04 + 2.473298595107682e-04 + 2.460253406646765e-04 + 2.447235929605613e-04 + 2.434246227773826e-04 + 2.421284365723855e-04 + 2.408350408491505e-04 + 2.395444422583646e-04 + 2.382566475978551e-04 + 2.369716636126905e-04 + 2.356894972066169e-04 + 2.344101555067014e-04 + 2.331336455922197e-04 + 2.318599746393059e-04 + 2.305891500038487e-04 + 2.293211790903458e-04 + 2.280560693749351e-04 + 2.267938284406659e-04 + 2.255344639796373e-04 + 2.242779837481179e-04 + 2.230243955584571e-04 + 2.217737074088738e-04 + 2.205259273750273e-04 + 2.192810635194828e-04 + 2.180391240377155e-04 + 2.168001172473318e-04 + 2.155640515683406e-04 + 2.143309354202995e-04 + 2.131007772856537e-04 + 2.118735858306198e-04 + 2.106493698084787e-04 + 2.094281380089542e-04 + 2.082098992208740e-04 + 2.069946624015073e-04 + 2.057824366286796e-04 + 2.045732309577213e-04 + 2.033670545521807e-04 + 2.021639166762670e-04 + 2.009638266139778e-04 + 1.997667937615743e-04 + 1.985728276099416e-04 + 1.973819376249420e-04 + 1.961941334186818e-04 + 1.950094247288422e-04 + 1.938278211445808e-04 + 1.926493324216112e-04 + 1.914739685443153e-04 + 1.903017394244089e-04 + 1.891326549660665e-04 + 1.879667251315557e-04 + 1.868039600691931e-04 + 1.856443699312781e-04 + 1.844879648170397e-04 + 1.833347550402995e-04 + 1.821847509305592e-04 + 1.810379627269367e-04 + 1.798944008330572e-04 + 1.787540757117569e-04 + 1.776169978023503e-04 + 1.764831776083264e-04 + 1.753526257075039e-04 + 1.742253527510645e-04 + 1.731013693254543e-04 + 1.719806860311682e-04 + 1.708633135911149e-04 + 1.697492627671219e-04 + 1.686385443331759e-04 + 1.675311690584120e-04 + 1.664271477052953e-04 + 1.653264910845736e-04 + 1.642292101438652e-04 + 1.631353157524277e-04 + 1.620448187436031e-04 + 1.609577300754615e-04 + 1.598740606888992e-04 + 1.587938214812250e-04 + 1.577170233258566e-04 + 1.566436772168694e-04 + 1.555737942159133e-04 + 1.545073851968179e-04 + 1.534444610998845e-04 + 1.523850329588589e-04 + 1.513291117056277e-04 + 1.502767082718022e-04 + 1.492278336091406e-04 + 1.481824986061289e-04 + 1.471407142013266e-04 + 1.461024913960903e-04 + 1.450678410475480e-04 + 1.440367739871709e-04 + 1.430093010797408e-04 + 1.419854331666308e-04 + 1.409651810501559e-04 + 1.399485554884026e-04 + 1.389355672434459e-04 + 1.379262270311977e-04 + 1.369205454852166e-04 + 1.359185332657421e-04 + 1.349202010239166e-04 + 1.339255593445051e-04 + 1.329346186642912e-04 + 1.319473893926901e-04 + 1.309638820305585e-04 + 1.299841069283569e-04 + 1.290080743627276e-04 + 1.280357946577360e-04 + 1.270672779908064e-04 + 1.261025344295187e-04 + 1.251415740258344e-04 + 1.241844068414831e-04 + 1.232310428585276e-04 + 1.222814917974582e-04 + 1.213357634573326e-04 + 1.203938676644921e-04 + 1.194558139769228e-04 + 1.185216119071049e-04 + 1.175912709437735e-04 + 1.166648004395201e-04 + 1.157422096820540e-04 + 1.148235078941047e-04 + 1.139087041565015e-04 + 1.129978074560730e-04 + 1.120908266963163e-04 + 1.111877706801771e-04 + 1.102886481165339e-04 + 1.093934676008822e-04 + 1.085022375478793e-04 + 1.076149663238430e-04 + 1.067316622735248e-04 + 1.058523335072715e-04 + 1.049769880021785e-04 + 1.041056336506420e-04 + 1.032382782134568e-04 + 1.023749293560659e-04 + 1.015155946454073e-04 + 1.006602814254268e-04 + 9.980899691604087e-05 + 9.896174827822380e-05 + 9.811854249648769e-05 + 9.727938640362722e-05 + 9.644428669167931e-05 + 9.561324990949941e-05 + 9.478628247235907e-05 + 9.396339064407664e-05 + 9.314458052650697e-05 + 9.232985807344924e-05 + 9.151922908266137e-05 + 9.071269919463392e-05 + 8.991027389908417e-05 + 8.911195851702552e-05 + 8.831775819982511e-05 + 8.752767793866873e-05 + 8.674172256023528e-05 + 8.595989672073575e-05 + 8.518220490590348e-05 + 8.440865141920385e-05 + 8.363924039733809e-05 + 8.287397580722622e-05 + 8.211286142104977e-05 + 8.135590084051729e-05 + 8.060309749193613e-05 + 7.985445459658365e-05 + 7.910997520302950e-05 + 7.836966218298747e-05 + 7.763351820320998e-05 + 7.690154574559998e-05 + 7.617374709914362e-05 + 7.545012436145964e-05 + 7.473067944430294e-05 + 7.401541405207780e-05 + 7.330432968888297e-05 + 7.259742767376570e-05 + 7.189470911942744e-05 + 7.119617492698978e-05 + 7.050182580949816e-05 + 6.981166227552030e-05 + 6.912568461899398e-05 + 6.844389294104750e-05 + 6.776628713300132e-05 + 6.709286687130013e-05 + 6.642363163388969e-05 + 6.575858067871575e-05 + 6.509771305493562e-05 + 6.444102761503343e-05 + 6.378852298738557e-05 + 6.314019758583242e-05 + 6.249604962295056e-05 + 6.185607708979005e-05 + 6.122027775903875e-05 + 6.058864919749181e-05 + 5.996118875684596e-05 + 5.933789356597989e-05 + 5.871876053888907e-05 + 5.810378637807827e-05 + 5.749296757228591e-05 + 5.688630039241354e-05 + 5.628378087841946e-05 + 5.568540486517338e-05 + 5.509116797959273e-05 + 5.450106561933422e-05 + 5.391509296529475e-05 + 5.333324497665832e-05 + 5.275551640753726e-05 + 5.218190179953343e-05 + 5.161239545977182e-05 + 5.104699148146081e-05 + 5.048568375913861e-05 + 4.992846596763329e-05 + 4.937533154817934e-05 + 4.882627374147808e-05 + 4.828128557792042e-05 + 4.774035986717692e-05 + 4.720348921279551e-05 + 4.667066599018748e-05 + 4.614188237688400e-05 + 4.561713035194944e-05 + 4.509640165438987e-05 + 4.457968783032909e-05 + 4.406698023190481e-05 + 4.355826996891768e-05 + 4.305354796420506e-05 + 4.255280495560636e-05 + 4.205603144616347e-05 + 4.156321774032957e-05 + 4.107435395613752e-05 + 4.058942999665175e-05 + 4.010843556869507e-05 + 3.963136019085871e-05 + 3.915819316952545e-05 + 3.868892361719641e-05 + 3.822354046226270e-05 + 3.776203244031561e-05 + 3.730438809005640e-05 + 3.685059575689182e-05 + 3.640064360230198e-05 + 3.595451960373741e-05 + 3.551221155134442e-05 + 3.507370705450421e-05 + 3.463899354241650e-05 + 3.420805825588243e-05 + 3.378088825986720e-05 + 3.335747045272196e-05 + 3.293779155463552e-05 + 3.252183811026268e-05 + 3.210959649877579e-05 + 3.170105292073684e-05 + 3.129619341367949e-05 + 3.089500386055728e-05 + 3.049746997239612e-05 + 3.010357730585059e-05 + 2.971331126487755e-05 + 2.932665707619367e-05 + 2.894359982344077e-05 + 2.856412445132613e-05 + 2.818821573877814e-05 + 2.781585831987375e-05 + 2.744703669454755e-05 + 2.708173520948728e-05 + 2.671993807124836e-05 + 2.636162935767626e-05 + 2.600679300301263e-05 + 2.565541280257304e-05 + 2.530747242805460e-05 + 2.496295542635910e-05 + 2.462184521206604e-05 + 2.428412507785163e-05 + 2.394977819771233e-05 + 2.361878762181457e-05 + 2.329113628448998e-05 + 2.296680701293541e-05 + 2.264578251757474e-05 + 2.232804539557172e-05 + 2.201357814530585e-05 + 2.170236315904943e-05 + 2.139438272306276e-05 + 2.108961903561866e-05 + 2.078805419745760e-05 + 2.048967020582218e-05 + 2.019444897050880e-05 + 1.990237231614296e-05 + 1.961342197777572e-05 + 1.932757961462368e-05 + 1.904482680353188e-05 + 1.876514502948172e-05 + 1.848851571515060e-05 + 1.821492021640795e-05 + 1.794433980831370e-05 + 1.767675569461099e-05 + 1.741214902258527e-05 + 1.715050088166273e-05 + 1.689179228451716e-05 + 1.663600419203502e-05 + 1.638311752659296e-05 + 1.613311314360082e-05 + 1.588597184706167e-05 + 1.564167440067926e-05 + 1.540020151829502e-05 + 1.516153387453479e-05 + 1.492565211244357e-05 + 1.469253682958783e-05 + 1.446216858599219e-05 + 1.423452791421707e-05 + 1.400959531801727e-05 + 1.378735127470914e-05 + 1.356777623611474e-05 + 1.335085063337062e-05 + 1.313655487876277e-05 + 1.292486936494610e-05 + 1.271577446639333e-05 + 1.250925054517824e-05 + 1.230527796605363e-05 + 1.210383708165599e-05 + 1.190490823144681e-05 + 1.170847175649016e-05 + 1.151450799717159e-05 + 1.132299729345123e-05 + 1.113391999104486e-05 + 1.094725644586371e-05 + 1.076298702423590e-05 + 1.058109209097755e-05 + 1.040155202830912e-05 + 1.022434724511555e-05 + 1.004945815519835e-05 + 9.876865191434875e-06 + 9.706548817576976e-06 + 9.538489515829050e-06 + 9.372667791395497e-06 + 9.209064181113714e-06 + 9.047659251528417e-06 + 8.888433598428113e-06 + 8.731367852817854e-06 + 8.576442682615395e-06 + 8.423638791088146e-06 + 8.272936922653283e-06 + 8.124317863654203e-06 + 7.977762440936675e-06 + 7.833251528895281e-06 + 7.690766049713759e-06 + 7.550286971453687e-06 + 7.411795314787993e-06 + 7.275272152381047e-06 + 7.140698608042407e-06 + 7.008055865069554e-06 + 6.877325162999093e-06 + 6.748487797069182e-06 + 6.621525126924672e-06 + 6.496418573295794e-06 + 6.373149617974847e-06 + 6.251699810845691e-06 + 6.132050767139283e-06 + 6.014184168887862e-06 + 5.898081770597224e-06 + 5.783725394973654e-06 + 5.671096936050662e-06 + 5.560178365641361e-06 + 5.450951726966341e-06 + 5.343399138917566e-06 + 5.237502802602254e-06 + 5.133244993336976e-06 + 5.030608065950253e-06 + 4.929574461382145e-06 + 4.830126698086031e-06 + 4.732247378331277e-06 + 4.635919192753656e-06 + 4.541124912789582e-06 + 4.447847398958468e-06 + 4.356069602328335e-06 + 4.265774557056776e-06 + 4.176945389932598e-06 + 4.089565320281935e-06 + 4.003617653697645e-06 + 3.919085793399028e-06 + 3.835953236362346e-06 + 3.754203567594348e-06 + 3.673820472678765e-06 + 3.594787733829004e-06 + 3.517089224074456e-06 + 3.440708918621393e-06 + 3.365630891050476e-06 + 3.291839308866544e-06 + 3.219318444550688e-06 + 3.148052669614368e-06 + 3.078026451876596e-06 + 3.009224366838337e-06 + 2.941631088840265e-06 + 2.875231390541817e-06 + 2.810010156134118e-06 + 2.745952369256776e-06 + 2.683043113446972e-06 + 2.621267584374269e-06 + 2.560611078236376e-06 + 2.501058994098514e-06 + 2.442596843868032e-06 + 2.385210240033010e-06 + 2.328884899906223e-06 + 2.273606655048426e-06 + 2.219361438179688e-06 + 2.166135288678882e-06 + 2.113914360085187e-06 + 2.062684907096663e-06 + 2.012433292648363e-06 + 1.963145994708785e-06 + 1.914809593193956e-06 + 1.867410777738679e-06 + 1.820936351687259e-06 + 1.775373220609589e-06 + 1.730708401732302e-06 + 1.686929024947410e-06 + 1.644022323067757e-06 + 1.601975642837270e-06 + 1.560776441656341e-06 + 1.520412279298016e-06 + 1.480870830315665e-06 + 1.442139880698395e-06 + 1.404207319625165e-06 + 1.367061149777226e-06 + 1.330689483155573e-06 + 1.295080535963615e-06 + 1.260222640873472e-06 + 1.226104237141460e-06 + 1.192713867093549e-06 + 1.160040189500492e-06 + 1.128071969424555e-06 + 1.096798076008267e-06 + 1.066207493417804e-06 + 1.036289310659725e-06 + 1.007032721493895e-06 + 9.784270338592895e-07 + 9.504616588874799e-07 + 9.231261128777845e-07 + 8.964100256766087e-07 + 8.703031286825232e-07 + 8.447952585150839e-07 + 8.198763641874936e-07 + 7.955364948286083e-07 + 7.717658049346632e-07 + 7.485545598914059e-07 + 7.258931238786546e-07 + 7.037719665410901e-07 + 6.821816664988581e-07 + 6.611128998791421e-07 + 6.405564483055948e-07 + 6.205032003278225e-07 + 6.009441408121614e-07 + 5.818703600152187e-07 + 5.632730528626383e-07 + 5.451435094097432e-07 + 5.274731247677268e-07 + 5.102533965000488e-07 + 4.934759162480692e-07 + 4.771323800991179e-07 + 4.612145841662162e-07 + 4.457144176881476e-07 + 4.306238737382497e-07 + 4.159350428538716e-07 + 4.016401077051372e-07 + 3.877313539402903e-07 + 3.742011622647174e-07 + 3.610420046499709e-07 + 3.482464547968944e-07 + 3.358071790150475e-07 + 3.237169340794661e-07 + 3.119685770955318e-07 + 3.005550554375413e-07 + 2.894694062090586e-07 + 2.787047650882795e-07 + 2.682543557659438e-07 + 2.581114909968296e-07 + 2.482695801165890e-07 + 2.387221182727572e-07 + 2.294626890008751e-07 + 2.204849703818711e-07 + 2.117827241548630e-07 + 2.033497996067267e-07 + 1.951801384624956e-07 + 1.872677641420447e-07 + 1.796067867093452e-07 + 1.721914062527642e-07 + 1.650159027896018e-07 + 1.580746421942365e-07 + 1.513620776690125e-07 + 1.448727406655565e-07 + 1.386012477684331e-07 + 1.325423000867771e-07 + 1.266906752868051e-07 + 1.210412352836648e-07 + 1.155889239131470e-07 + 1.103287600176973e-07 + 1.052558455547364e-07 + 1.003653617115032e-07 + 9.565256321109978e-08 + 9.111278671292873e-08 + 8.674144556415159e-08 + 8.253402527034383e-08 + 7.848609177536523e-08 + 7.459328520671134e-08 + 7.085131661573615e-08 + 6.725597593242166e-08 + 6.380312478868793e-08 + 6.048869454868003e-08 + 5.730869376312298e-08 + 5.425920030057914e-08 + 5.133636064443935e-08 + 4.853639660958214e-08 + 4.585559704969457e-08 + 4.329031836991616e-08 + 4.083699031045398e-08 + 3.849210751108346e-08 + 3.625223113812888e-08 + 3.411399355038575e-08 + 3.207408998824199e-08 + 3.012928121511996e-08 + 2.827639696078167e-08 + 2.651232793166280e-08 + 2.483402934338396e-08 + 2.323852311474514e-08 + 2.172289034680298e-08 + 2.028427559044146e-08 + 1.891988778877689e-08 + 1.762699339728036e-08 + 1.640292125402531e-08 + 1.524506224991720e-08 + 1.415086320949184e-08 + 1.311783222446413e-08 + 1.214353712508316e-08 + 1.122560019257377e-08 + 1.036170378687137e-08 + 9.549587722603005e-09 + 8.787044877843281e-09 + 8.071926961605364e-09 + 7.402140903161946e-09 + 6.775645388472587e-09 + 6.190456604129221e-09 + 5.644643792323680e-09 + 5.136326726146161e-09 + 4.663681262833891e-09 + 4.224934232596794e-09 + 3.818361845837701e-09 + 3.442294891302550e-09 + 3.095113141246544e-09 + 2.775244665814773e-09 + 2.481170514027403e-09 + 2.211418834557044e-09 + 1.964565051498559e-09 + 1.739235878927056e-09 + 1.534103359980556e-09 + 1.347885831336700e-09 + 1.179351163642234e-09 + 1.027310894648576e-09 + 8.906218977827446e-10 + 7.681887799049897e-10 + 6.589582548472836e-10 + 5.619214238374888e-10 + 4.761152985830568e-10 + 4.006175343477256e-10 + 3.345492227248809e-10 + 2.770755362128679e-10 + 2.274009179016229e-10 + 1.847722840116674e-10 + 1.484788129161787e-10 + 1.178476648704315e-10 + 9.224748788184573e-11 + 7.108739902161543e-11 + 5.381328706422649e-11 + 3.991151299277479e-11 + 2.890715266694438e-11 + 2.036091648096713e-11 + 1.387293445657948e-11 + 9.080348320515963e-12 + 5.654863833225597e-12 + 3.306507674167889e-12 + 1.780689492983021e-12 + 8.563646514161430e-13 + 3.496037276049943e-13 + 1.104943293034196e-13 + 2.161027650041889e-14 + 5.028049336448720e-16 + 0.000000000000000e+00 + 0.000000000000000e+00 + 7.485272593961791e+04 + 1.493519318697679e+05 + 2.234970831294996e+05 + 2.972876533345640e+05 + 3.707231243774131e+05 + 4.438029864272003e+05 + 5.165267379297798e+05 + 5.888938856077072e+05 + 6.609039444602393e+05 + 7.325564377633340e+05 + 8.038508970696502e+05 + 8.747868622085482e+05 + 9.453638812860892e+05 + 1.015581510685036e+06 + 1.085439315064852e+06 + 1.154936867361703e+06 + 1.224073748788454e+06 + 1.292849548834672e+06 + 1.361263865266626e+06 + 1.429316304127287e+06 + 1.497006479736322e+06 + 1.564334014690106e+06 + 1.631298539861710e+06 + 1.697899694400910e+06 + 1.764137125734180e+06 + 1.830010489564698e+06 + 1.895519449872339e+06 + 1.960663678913685e+06 + 2.025442857222013e+06 + 2.089856673607306e+06 + 2.153904825156247e+06 + 2.217587017232217e+06 + 2.280902963475303e+06 + 2.343852385802290e+06 + 2.406435014406665e+06 + 2.468650587758616e+06 + 2.530498852605031e+06 + 2.591979563969503e+06 + 2.653092485152322e+06 + 2.713837387730482e+06 + 2.774214051557675e+06 + 2.834222264764299e+06 + 2.893861823757447e+06 + 2.953132533220919e+06 + 3.012034206115212e+06 + 3.070566663677527e+06 + 3.128729735421764e+06 + 3.186523259138526e+06 + 3.243947080895115e+06 + 3.301001055035538e+06 + 3.357685044180497e+06 + 3.413998919227402e+06 + 3.469942559350358e+06 + 3.525515852000176e+06 + 3.580718692904367e+06 + 3.635550986067140e+06 + 3.690012643769410e+06 + 3.744103586568788e+06 + 3.797823743299592e+06 + 3.851173051072835e+06 + 3.904151455276238e+06 + 3.956758909574216e+06 + 4.008995375907890e+06 + 4.060860824495079e+06 + 4.112355233830309e+06 + 4.163478590684799e+06 + 4.214230890106475e+06 + 4.264612135419963e+06 + 4.314622338226588e+06 + 4.364261518404378e+06 + 4.413529704108060e+06 + 4.462426931769069e+06 + 4.510953246095533e+06 + 4.559108700072286e+06 + 4.606893354960858e+06 + 4.654307280299488e+06 + 4.701350553903108e+06 + 4.748023261863358e+06 + 4.794325498548575e+06 + 4.840257366603798e+06 + 4.885818976950768e+06 + 4.931010448787929e+06 + 4.975831909590418e+06 + 5.020283495110085e+06 + 5.064365349375471e+06 + 5.108077624691823e+06 + 5.151420481641092e+06 + 5.194394089081923e+06 + 5.236998624149668e+06 + 5.279234272256376e+06 + 5.321101227090800e+06 + 5.362599690618395e+06 + 5.403729873081312e+06 + 5.444491992998408e+06 + 5.484886277165242e+06 + 5.524912960654069e+06 + 5.564572286813851e+06 + 5.603864507270245e+06 + 5.642789881925615e+06 + 5.681348678959022e+06 + 5.719541174826232e+06 + 5.757367654259708e+06 + 5.794828410268617e+06 + 5.831923744138825e+06 + 5.868653965432902e+06 + 5.905019391990117e+06 + 5.941020349926441e+06 + 5.976657173634544e+06 + 6.011930205783804e+06 + 6.046839797320290e+06 + 6.081386307466779e+06 + 6.115570103722748e+06 + 6.149391561864376e+06 + 6.182851065944540e+06 + 6.215949008292822e+06 + 6.248685789515501e+06 + 6.281061818495561e+06 + 6.313077512392686e+06 + 6.344733296643257e+06 + 6.376029604960365e+06 + 6.406966879333793e+06 + 6.437545570030033e+06 + 6.467766135592271e+06 + 6.497629042840399e+06 + 6.527134766871008e+06 + 6.556283791057392e+06 + 6.585076607049545e+06 + 6.613513714774162e+06 + 6.641595622434638e+06 + 6.669322846511072e+06 + 6.696695911760264e+06 + 6.723715351215711e+06 + 6.750381706187615e+06 + 6.776695526262878e+06 + 6.802657369305105e+06 + 6.828267801454599e+06 + 6.853527397128366e+06 + 6.878436739020114e+06 + 6.902996418100249e+06 + 6.927207033615881e+06 + 6.951069193090819e+06 + 6.974583512325577e+06 + 6.997750615397365e+06 + 7.020571134660101e+06 + 7.043045710744397e+06 + 7.065174992557568e+06 + 7.086959637283633e+06 + 7.108400310383311e+06 + 7.129497685594021e+06 + 7.150252444929884e+06 + 7.170665278681723e+06 + 7.190736885417059e+06 + 7.210467971980117e+06 + 7.229859253491821e+06 + 7.248911453349800e+06 + 7.267625303228384e+06 + 7.286001543078595e+06 + 7.304040921128170e+06 + 7.321744193881537e+06 + 7.339112126119829e+06 + 7.356145490900878e+06 + 7.372845069559221e+06 + 7.389211651706094e+06 + 7.405246035229432e+06 + 7.420949026293878e+06 + 7.436321439340766e+06 + 7.451364097088138e+06 + 7.466077830530737e+06 + 7.480463478940005e+06 + 7.494521889864086e+06 + 7.508253919127826e+06 + 7.521660430832772e+06 + 7.534742297357169e+06 + 7.547500399355968e+06 + 7.559935625760819e+06 + 7.572048873780073e+06 + 7.583841048898782e+06 + 7.595313064878696e+06 + 7.606465843758276e+06 + 7.617300315852673e+06 + 7.627817419753745e+06 + 7.638018102330050e+06 + 7.647903318726848e+06 + 7.657474032366097e+06 + 7.666731214946462e+06 + 7.675675846443305e+06 + 7.684308915108687e+06 + 7.692631417471377e+06 + 7.700644358336839e+06 + 7.708348750787240e+06 + 7.715745616181449e+06 + 7.722835984155037e+06 + 7.729620892620270e+06 + 7.736101387766127e+06 + 7.742278524058277e+06 + 7.748153364239094e+06 + 7.753726979327655e+06 + 7.759000448619737e+06 + 7.763974859687817e+06 + 7.768651308381077e+06 + 7.773030898825390e+06 + 7.777114743423343e+06 + 7.780903962854218e+06 + 7.784399686073998e+06 + 7.787603050315368e+06 + 7.790515201087713e+06 + 7.793137292177119e+06 + 7.795470485646380e+06 + 7.797515951834979e+06 + 7.799274869359110e+06 + 7.800748425111664e+06 + 7.801937814262233e+06 + 7.802844240257111e+06 + 7.803468914819297e+06 + 7.803813057948484e+06 + 7.803877897921070e+06 + 7.803664671290156e+06 + 7.803174622885538e+06 + 7.802409005813722e+06 + 7.801369081457905e+06 + 7.800056119477995e+06 + 7.798471397810592e+06 + 7.796616202669007e+06 + 7.794491828543244e+06 + 7.792099578200010e+06 + 7.789440762682715e+06 + 7.786516701311473e+06 + 7.783328721683091e+06 + 7.779878159671083e+06 + 7.776166359425665e+06 + 7.772194673373749e+06 + 7.767964462218953e+06 + 7.763477094941595e+06 + 7.758733948798692e+06 + 7.753736409323964e+06 + 7.748485870327833e+06 + 7.742983733897421e+06 + 7.737231410396548e+06 + 7.731230318465743e+06 + 7.724981885022229e+06 + 7.718487545259933e+06 + 7.711748742649483e+06 + 7.704766928938209e+06 + 7.697543564150140e+06 + 7.690080116586007e+06 + 7.682378062823243e+06 + 7.674438887715982e+06 + 7.666264084395060e+06 + 7.657855154268012e+06 + 7.649213607019073e+06 + 7.640340960609185e+06 + 7.631238741275986e+06 + 7.621908483533815e+06 + 7.612351730173716e+06 + 7.602570032263434e+06 + 7.592564949147409e+06 + 7.582338048446788e+06 + 7.571890906059416e+06 + 7.561225106159844e+06 + 7.550342241199316e+06 + 7.539243911905785e+06 + 7.527931727283904e+06 + 7.516407304615024e+06 + 7.504672269457198e+06 + 7.492728241314434e+06 + 7.480576638153253e+06 + 7.468218723741564e+06 + 7.455655760425863e+06 + 7.442889013018662e+06 + 7.429919748798485e+06 + 7.416749237509867e+06 + 7.403378751363355e+06 + 7.389809565035504e+06 + 7.376042955668893e+06 + 7.362080202872100e+06 + 7.347922588719724e+06 + 7.333571397752370e+06 + 7.319027916976659e+06 + 7.304293435865226e+06 + 7.289369246356713e+06 + 7.274256642855777e+06 + 7.258956922233087e+06 + 7.243471383825325e+06 + 7.227801329435183e+06 + 7.211948063331366e+06 + 7.195912892248592e+06 + 7.179697125387593e+06 + 7.163302074415106e+06 + 7.146729053463890e+06 + 7.129979379132709e+06 + 7.113054370486340e+06 + 7.095955349055575e+06 + 7.078683638837219e+06 + 7.061240566294081e+06 + 7.043627460354994e+06 + 7.025845652414794e+06 + 7.007896476334333e+06 + 6.989781268440476e+06 + 6.971501367526096e+06 + 6.953058114850082e+06 + 6.934452854137335e+06 + 6.915686931578767e+06 + 6.896761695831302e+06 + 6.877678498017876e+06 + 6.858438691727439e+06 + 6.839043633014950e+06 + 6.819494680401385e+06 + 6.799793194873727e+06 + 6.779940539884974e+06 + 6.759938081354136e+06 + 6.739787187666233e+06 + 6.719489229672301e+06 + 6.699045580689385e+06 + 6.678457616500544e+06 + 6.657726715354848e+06 + 6.636854257967380e+06 + 6.615841627519235e+06 + 6.594690209657516e+06 + 6.573401392495350e+06 + 6.551976566611862e+06 + 6.530417125052197e+06 + 6.508724463327511e+06 + 6.486899979414972e+06 + 6.464945073757762e+06 + 6.442861149265066e+06 + 6.420649611312096e+06 + 6.398311867740063e+06 + 6.375849328856199e+06 + 6.353263407433745e+06 + 6.330555518711952e+06 + 6.307727080396090e+06 + 6.284779512657427e+06 + 6.261714238133261e+06 + 6.238532681926889e+06 + 6.215236271607627e+06 + 6.191826437210800e+06 + 6.168304611237747e+06 + 6.144672228655818e+06 + 6.120930726898375e+06 + 6.097081545864792e+06 + 6.073126127920459e+06 + 6.049065917896771e+06 + 6.024902363091142e+06 + 6.000636913266994e+06 + 5.976271020653763e+06 + 5.951806139946896e+06 + 5.927243728307854e+06 + 5.902585245364108e+06 + 5.877832153209144e+06 + 5.852985916402456e+06 + 5.828048001969552e+06 + 5.803019879401957e+06 + 5.777903020657199e+06 + 5.752698900158828e+06 + 5.727408994796395e+06 + 5.702034783925475e+06 + 5.676577749367647e+06 + 5.651039375410506e+06 + 5.625421148807654e+06 + 5.599724558778713e+06 + 5.573951097009313e+06 + 5.548102257651095e+06 + 5.522179537321717e+06 + 5.496184435104840e+06 + 5.470118452550147e+06 + 5.443983093673326e+06 + 5.417779864956085e+06 + 5.391510275346133e+06 + 5.365175836257203e+06 + 5.338778061569033e+06 + 5.312318467627374e+06 + 5.285798573243992e+06 + 5.259219899696662e+06 + 5.232583970729172e+06 + 5.205892312551324e+06 + 5.179146453838928e+06 + 5.152347925733812e+06 + 5.125498261843814e+06 + 5.098598998242779e+06 + 5.071651673470572e+06 + 5.044657828533064e+06 + 5.017619006902143e+06 + 4.990536754515706e+06 + 4.963412619777663e+06 + 4.936248153557934e+06 + 4.909044909192459e+06 + 4.881804442483181e+06 + 4.854528311698059e+06 + 4.827218077571064e+06 + 4.799875303302180e+06 + 4.772501554557402e+06 + 4.745098399468737e+06 + 4.717667408634203e+06 + 4.690210155117837e+06 + 4.662728214449679e+06 + 4.635223164625784e+06 + 4.607696586108224e+06 + 4.580150061825077e+06 + 4.552585177170437e+06 + 4.525003520004408e+06 + 4.497406680653105e+06 + 4.469796251908661e+06 + 4.442173829029216e+06 + 4.414541009738924e+06 + 4.386899394227949e+06 + 4.359250585152469e+06 + 4.331596187634676e+06 + 4.303937809262771e+06 + 4.276277060090966e+06 + 4.248615552639492e+06 + 4.220954901894585e+06 + 4.193296725308497e+06 + 4.165642642799490e+06 + 4.137994276751838e+06 + 4.110353252015833e+06 + 4.082721195907769e+06 + 4.055099738209962e+06 + 4.027490511170732e+06 + 3.999895149504419e+06 + 3.972315290391369e+06 + 3.944752573477943e+06 + 3.917208640876513e+06 + 3.889685137165464e+06 + 3.862183709389194e+06 + 3.834706007058111e+06 + 3.807253682148634e+06 + 3.779828389103201e+06 + 3.752431784830255e+06 + 3.725065528704253e+06 + 3.697731282565667e+06 + 3.670430710720977e+06 + 3.643165479942679e+06 + 3.615937259469279e+06 + 3.588747721005293e+06 + 3.561598538721256e+06 + 3.534491389253709e+06 + 3.507427951705208e+06 + 3.480409907644318e+06 + 3.453438941105620e+06 + 3.426516738589706e+06 + 3.399644989063177e+06 + 3.372825383958653e+06 + 3.346070405300663e+06 + 3.319465764034668e+06 + 3.293075510459727e+06 + 3.266878224028187e+06 + 3.240869303162930e+06 + 3.215052515525467e+06 + 3.189425288821125e+06 + 3.163986116962672e+06 + 3.138734196986282e+06 + 3.113668261011591e+06 + 3.088787111422079e+06 + 3.064089610843659e+06 + 3.039574592322599e+06 + 3.015240898358055e+06 + 2.991087379108502e+06 + 2.967112887579310e+06 + 2.943316282301805e+06 + 2.919696425519270e+06 + 2.896252185185970e+06 + 2.872982434032476e+06 + 2.849886048305633e+06 + 2.826961910405915e+06 + 2.804208907130155e+06 + 2.781625929123051e+06 + 2.759211873644148e+06 + 2.736965641930875e+06 + 2.714886139213983e+06 + 2.692972277509980e+06 + 2.671222972611625e+06 + 2.649637144535781e+06 + 2.628213719738566e+06 + 2.606951628696007e+06 + 2.585849806893141e+06 + 2.564907195391811e+06 + 2.544122739173453e+06 + 2.523495389008342e+06 + 2.503024101022326e+06 + 2.482707834844927e+06 + 2.462545556054412e+06 + 2.442536236120740e+06 + 2.422678849863131e+06 + 2.402972377820649e+06 + 2.383415806334849e+06 + 2.364008125120872e+06 + 2.344748329835404e+06 + 2.325635421794777e+06 + 2.306668405813749e+06 + 2.287846292982958e+06 + 2.269168099757709e+06 + 2.250632846050586e+06 + 2.232239558087812e+06 + 2.213987266957964e+06 + 2.195875007435864e+06 + 2.177901821473463e+06 + 2.160066755143500e+06 + 2.142368857948063e+06 + 2.124807187017495e+06 + 2.107380803567688e+06 + 2.090088772295509e+06 + 2.072930165358991e+06 + 2.055904058912681e+06 + 2.039009532618940e+06 + 2.022245673041180e+06 + 2.005611571515091e+06 + 1.989106323649552e+06 + 1.972729030298793e+06 + 1.956478797095825e+06 + 1.940354734917566e+06 + 1.924355960016194e+06 + 1.908481592593613e+06 + 1.892730757829583e+06 + 1.877102587255698e+06 + 1.861596215902473e+06 + 1.846210783186639e+06 + 1.830945435012332e+06 + 1.815799321323061e+06 + 1.800771597138300e+06 + 1.785861422681660e+06 + 1.771067961851037e+06 + 1.756390384114008e+06 + 1.741827864373811e+06 + 1.727379581118251e+06 + 1.713044718232857e+06 + 1.698822464839031e+06 + 1.684712013805151e+06 + 1.670712563808684e+06 + 1.656823318006428e+06 + 1.643043483055245e+06 + 1.629372271790869e+06 + 1.615808901794204e+06 + 1.602352594044968e+06 + 1.589002574975609e+06 + 1.575758076322615e+06 + 1.562618333634041e+06 + 1.549582587186907e+06 + 1.536650081999105e+06 + 1.523820067124634e+06 + 1.511091797064626e+06 + 1.498464530780005e+06 + 1.485937531189585e+06 + 1.473510066471004e+06 + 1.461181408848471e+06 + 1.448950834625962e+06 + 1.436817625926470e+06 + 1.424781068397768e+06 + 1.412840451407005e+06 + 1.400995070309470e+06 + 1.389244224245752e+06 + 1.377587216393601e+06 + 1.366023355231714e+06 + 1.354551952598923e+06 + 1.343172324427429e+06 + 1.331883792566280e+06 + 1.320685682335073e+06 + 1.309577322956444e+06 + 1.298558048406515e+06 + 1.287627196362487e+06 + 1.276784109496439e+06 + 1.266028134784103e+06 + 1.255358622320226e+06 + 1.244774926866806e+06 + 1.234276408467881e+06 + 1.223862430240984e+06 + 1.213532358913532e+06 + 1.203285566621101e+06 + 1.193121428991948e+06 + 1.183039325468658e+06 + 1.173038640304339e+06 + 1.163118761212139e+06 + 1.153279079987504e+06 + 1.143518992564451e+06 + 1.133837898317260e+06 + 1.124235201394960e+06 + 1.114710310121780e+06 + 1.105262636013577e+06 + 1.095891594215875e+06 + 1.086596604396163e+06 + 1.077377090233802e+06 + 1.068232479242110e+06 + 1.059162202266971e+06 + 1.050165693700918e+06 + 1.041242393088349e+06 + 1.032391743039430e+06 + 1.023613189178869e+06 + 1.014906181731556e+06 + 1.006270174355871e+06 + 9.977046244036794e+05 + 9.892089935677024e+05 + 9.807827465832273e+05 + 9.724253516436865e+05 + 9.641362810046984e+05 + 9.559150102252770e+05 + 9.477610188719215e+05 + 9.396737899139688e+05 + 9.316528091743080e+05 + 9.236975665277143e+05 + 9.158075561735997e+05 + 9.079822751134991e+05 + 9.002212236533747e+05 + 8.925239057014534e+05 + 8.848898281604102e+05 + 8.773185021612709e+05 + 8.698094424648809e+05 + 8.623621663528095e+05 + 8.549761944053203e+05 + 8.476510510446843e+05 + 8.403862637513808e+05 + 8.331813638606276e+05 + 8.260358860837971e+05 + 8.189493675787508e+05 + 8.119213484350282e+05 + 8.049513730504208e+05 + 7.980389891667470e+05 + 7.911837471192866e+05 + 7.843852003599521e+05 + 7.776429053419405e+05 + 7.709564221446526e+05 + 7.643253140173181e+05 + 7.577491471803443e+05 + 7.512274911598503e+05 + 7.447599180231568e+05 + 7.383460026539576e+05 + 7.319853241781880e+05 + 7.256774641850799e+05 + 7.194220067146936e+05 + 7.132185395309449e+05 + 7.070666529520636e+05 + 7.009659400728574e+05 + 6.949159975085063e+05 + 6.889164244086053e+05 + 6.829668228095188e+05 + 6.770667979456050e+05 + 6.712159574726904e+05 + 6.654139120281750e+05 + 6.596602754201142e+05 + 6.539546638052445e+05 + 6.482966962660485e+05 + 6.426859949531512e+05 + 6.371221843431445e+05 + 6.316048918617199e+05 + 6.261337478197705e+05 + 6.207083848228143e+05 + 6.153284385055641e+05 + 6.099935472682050e+05 + 6.047033517354903e+05 + 5.994574954765684e+05 + 5.942556247644721e+05 + 5.890973881315375e+05 + 5.839824370501742e+05 + 5.789104255366600e+05 + 5.738810098259439e+05 + 5.688938490610282e+05 + 5.639486048510919e+05 + 5.590449410545636e+05 + 5.541825244030216e+05 + 5.493610239467514e+05 + 5.445801109611018e+05 + 5.398394595653637e+05 + 5.351387461239359e+05 + 5.304776492529869e+05 + 5.258558503354813e+05 + 5.212730328842620e+05 + 5.167288826663374e+05 + 5.122230881980868e+05 + 5.077553400369428e+05 + 5.033253309731948e+05 + 4.989327564601310e+05 + 4.945773139811803e+05 + 4.902587033143605e+05 + 4.859766266490913e+05 + 4.817307881770549e+05 + 4.775208945372272e+05 + 4.733466546121029e+05 + 4.692077791818720e+05 + 4.651039814988278e+05 + 4.610349770333872e+05 + 4.570004830895544e+05 + 4.530002193970305e+05 + 4.490339078641191e+05 + 4.451012721716975e+05 + 4.412020383482487e+05 + 4.373359346346440e+05 + 4.335026910461138e+05 + 4.297020398291695e+05 + 4.259337153289251e+05 + 4.221974536699117e+05 + 4.184929932504728e+05 + 4.148200744355357e+05 + 4.111784393468680e+05 + 4.075678324287459e+05 + 4.039879999559653e+05 + 4.004386899065928e+05 + 3.969196525836200e+05 + 3.934306400492930e+05 + 3.899714060581240e+05 + 3.865417066557175e+05 + 3.831412995849459e+05 + 3.797699442729113e+05 + 3.764274023566474e+05 + 3.731134371233769e+05 + 3.698278135622827e+05 + 3.665702987827645e+05 + 3.633406615280775e+05 + 3.601386722825769e+05 + 3.569641034535824e+05 + 3.538167290782596e+05 + 3.506963250581825e+05 + 3.476026690576235e+05 + 3.445355402744773e+05 + 3.414947198014101e+05 + 3.384799905288533e+05 + 3.354911367821696e+05 + 3.325279446663284e+05 + 3.295902021531574e+05 + 3.266776986085196e+05 + 3.237902250531212e+05 + 3.209275743946921e+05 + 3.180895409646722e+05 + 3.152759207164211e+05 + 3.124865112943467e+05 + 3.097211117598721e+05 + 3.069795229448014e+05 + 3.042615472339510e+05 + 3.015669883675390e+05 + 2.988956518738279e+05 + 2.962473447339852e+05 + 2.936218752484120e+05 + 2.910190535228683e+05 + 2.884386911235514e+05 + 2.858806009067059e+05 + 2.833445973150213e+05 + 2.808304963224871e+05 + 2.783381153152796e+05 + 2.758672731341289e+05 + 2.734177900017136e+05 + 2.709894875428715e+05 + 2.685821889451269e+05 + 2.661957187314447e+05 + 2.638299027837526e+05 + 2.614845683836235e+05 + 2.591595441417535e+05 + 2.568546601323142e+05 + 2.545697477628685e+05 + 2.523046396706559e+05 + 2.500591699434964e+05 + 2.478331740644226e+05 + 2.456264886409644e+05 + 2.434389516128850e+05 + 2.412704023657298e+05 + 2.391206814330098e+05 + 2.369896306904384e+05 + 2.348770933197599e+05 + 2.327829136173563e+05 + 2.307069372775990e+05 + 2.286490111745211e+05 + 2.266089832623643e+05 + 2.245867029748616e+05 + 2.225820209237310e+05 + 2.205947887183862e+05 + 2.186248592921233e+05 + 2.166720868039439e+05 + 2.147363264605261e+05 + 2.128174347706827e+05 + 2.109152693889452e+05 + 2.090296889843596e+05 + 2.071605535077064e+05 + 2.053077240108720e+05 + 2.034710625599661e+05 + 2.016504325007521e+05 + 1.998456982030229e+05 + 1.980567250370223e+05 + 1.962833797138016e+05 + 1.945255298870997e+05 + 1.927830441323482e+05 + 1.910557922964590e+05 + 1.893436452442803e+05 + 1.876464748512476e+05 + 1.859641540986015e+05 + 1.842965568967865e+05 + 1.826435581738182e+05 + 1.810050340354470e+05 + 1.793808614993985e+05 + 1.777709185575675e+05 + 1.761750842223128e+05 + 1.745932384546507e+05 + 1.730252623268235e+05 + 1.714710377603550e+05 + 1.699304475698536e+05 + 1.684033757560533e+05 + 1.668897071565261e+05 + 1.653893274220018e+05 + 1.639021233234161e+05 + 1.624279825159149e+05 + 1.609667934564489e+05 + 1.595184456811041e+05 + 1.580828296015031e+05 + 1.566598363968120e+05 + 1.552493582649543e+05 + 1.538512882702573e+05 + 1.524655202573447e+05 + 1.510919491064028e+05 + 1.497304705096718e+05 + 1.483809809029638e+05 + 1.470433777326744e+05 + 1.457175592117312e+05 + 1.444034242942686e+05 + 1.431008729933990e+05 + 1.418098060421684e+05 + 1.405301248671864e+05 + 1.392617319094920e+05 + 1.380045303259556e+05 + 1.367584239714278e+05 + 1.355233176631985e+05 + 1.342991169575939e+05 + 1.330857281367400e+05 + 1.318830583220329e+05 + 1.306910153813551e+05 + 1.295095079605118e+05 + 1.283384454277201e+05 + 1.271777378619642e+05 + 1.260272961737778e+05 + 1.248870320778846e+05 + 1.237568578844075e+05 + 1.226366865814357e+05 + 1.215264320654815e+05 + 1.204260088572700e+05 + 1.193353321256488e+05 + 1.182543179024696e+05 + 1.171828828329888e+05 + 1.161209441971572e+05 + 1.150684200368906e+05 + 1.140252290172446e+05 + 1.129912905290012e+05 + 1.119665246989244e+05 + 1.109508522377596e+05 + 1.099441945145749e+05 + 1.089464735474612e+05 + 1.079576119759672e+05 + 1.069775332658437e+05 + 1.060061613940063e+05 + 1.050434208615313e+05 + 1.040892370245828e+05 + 1.031435357647047e+05 + 1.022062434696232e+05 + 1.012772873208916e+05 + 1.003565950684523e+05 + 9.944409498683986e+04 + 9.853971604124359e+04 + 9.764338777276211e+04 + 9.675504027159151e+04 + 9.587460425195689e+04 + 9.500201099602232e+04 + 9.413719236230559e+04 + 9.328008081668093e+04 + 9.243060935253548e+04 + 9.158871152497102e+04 + 9.075432150057999e+04 + 8.992737394814150e+04 + 8.910780408381460e+04 + 8.829554772812854e+04 + 8.749054118346877e+04 + 8.669272128864085e+04 + 8.590202548133289e+04 + 8.511839166524833e+04 + 8.434175826486869e+04 + 8.357206428147563e+04 + 8.280924917713979e+04 + 8.205325293940101e+04 + 8.130401609766987e+04 + 8.056147962909786e+04 + 7.982558503959214e+04 + 7.909627435336930e+04 + 7.837349003289423e+04 + 7.765717506702039e+04 + 7.694727293156023e+04 + 7.624372753229675e+04 + 7.554648331079309e+04 + 7.485548516457589e+04 + 7.417067840840557e+04 + 7.349200889763620e+04 + 7.281942291879337e+04 + 7.215286716185752e+04 + 7.149228885123666e+04 + 7.083763563584826e+04 + 7.018885556144921e+04 + 6.954589717270633e+04 + 6.890870943981725e+04 + 6.827724174191867e+04 + 6.765144392787226e+04 + 6.703126624692857e+04 + 6.641665935636370e+04 + 6.580757439267423e+04 + 6.520396286738058e+04 + 6.460577668030654e+04 + 6.401296820028803e+04 + 6.342549017134596e+04 + 6.284329573351656e+04 + 6.226633845994343e+04 + 6.169457228450359e+04 + 6.112795154311772e+04 + 6.056643099463883e+04 + 6.000996574136701e+04 + 5.945851127624574e+04 + 5.891202351267684e+04 + 5.837045869755570e+04 + 5.783377345558033e+04 + 5.730192482224794e+04 + 5.677487016169035e+04 + 5.625256720967715e+04 + 5.573497408983271e+04 + 5.522204924870504e+04 + 5.471375150828325e+04 + 5.421004006036229e+04 + 5.371087441354901e+04 + 5.321621444975662e+04 + 5.272602039469258e+04 + 5.224025278120609e+04 + 5.175887251825204e+04 + 5.128184085536604e+04 + 5.080911934597862e+04 + 5.034066989608183e+04 + 4.987645473684455e+04 + 4.941643640415772e+04 + 4.896057778639881e+04 + 4.850884207769758e+04 + 4.806119277190277e+04 + 4.761759372195903e+04 + 4.717800906318111e+04 + 4.674240321587012e+04 + 4.631074096205200e+04 + 4.588298735942246e+04 + 4.545910774537743e+04 + 4.503906779825089e+04 + 4.462283347373459e+04 + 4.421037101686000e+04 + 4.380164697651120e+04 + 4.339662816996042e+04 + 4.299528171729217e+04 + 4.259757504220949e+04 + 4.220347581706527e+04 + 4.181295199605238e+04 + 4.142597183433527e+04 + 4.104250383855765e+04 + 4.066251680332360e+04 + 4.028597979815155e+04 + 3.991286213370509e+04 + 3.954313341370015e+04 + 3.917676350485435e+04 + 3.881372250661203e+04 + 3.845398080843414e+04 + 3.809750905736740e+04 + 3.774427812448402e+04 + 3.739425915595785e+04 + 3.704742356207799e+04 + 3.670374297805164e+04 + 3.636318929176292e+04 + 3.602573463927982e+04 + 3.569135138416072e+04 + 3.536001215672983e+04 + 3.503168981923036e+04 + 3.470635744840465e+04 + 3.438398837321134e+04 + 3.406455615393208e+04 + 3.374803457309094e+04 + 3.343439765983423e+04 + 3.312361965186892e+04 + 3.281567499925836e+04 + 3.251053841177231e+04 + 3.220818480242078e+04 + 3.190858928930939e+04 + 3.161172723179306e+04 + 3.131757418548949e+04 + 3.102610591483113e+04 + 3.073729842710719e+04 + 3.045112791454117e+04 + 3.016757076691534e+04 + 2.988660361584138e+04 + 2.960820327321778e+04 + 2.933234674204399e+04 + 2.905901125674980e+04 + 2.878817423326317e+04 + 2.851981328372868e+04 + 2.825390622682930e+04 + 2.799043106146120e+04 + 2.772936599846356e+04 + 2.747068942978120e+04 + 2.721437991599866e+04 + 2.696041623625263e+04 + 2.670877735469368e+04 + 2.645944239579323e+04 + 2.621239068106394e+04 + 2.596760172331024e+04 + 2.572505519859007e+04 + 2.548473096648493e+04 + 2.524660907253227e+04 + 2.501066972455740e+04 + 2.477689330466365e+04 + 2.454526037995217e+04 + 2.431575168300119e+04 + 2.408834810912627e+04 + 2.386303072521571e+04 + 2.363978076395976e+04 + 2.341857962988761e+04 + 2.319940888531031e+04 + 2.298225025100848e+04 + 2.276708562349589e+04 + 2.255389704384009e+04 + 2.234266670372097e+04 + 2.213337697918792e+04 + 2.192601038403303e+04 + 2.172054957464747e+04 + 2.151697738916041e+04 + 2.131527680276242e+04 + 2.111543093252480e+04 + 2.091742306098243e+04 + 2.072123660422193e+04 + 2.052685512482519e+04 + 2.033426234716574e+04 + 2.014344212098682e+04 + 1.995437843426629e+04 + 1.976705544479930e+04 + 1.958145743480243e+04 + 1.939756881213320e+04 + 1.921537413684756e+04 + 1.903485810052154e+04 + 1.885600554387774e+04 + 1.867880143037429e+04 + 1.850323084111479e+04 + 1.832927901452323e+04 + 1.815693131178678e+04 + 1.798617320994377e+04 + 1.781699034075772e+04 + 1.764936845332217e+04 + 1.748329340510924e+04 + 1.731875119617678e+04 + 1.715572795110660e+04 + 1.699420990919751e+04 + 1.683418344358223e+04 + 1.667563503873475e+04 + 1.651855128954979e+04 + 1.636291893365341e+04 + 1.620872481606836e+04 + 1.605595588699932e+04 + 1.590459923143625e+04 + 1.575464203906202e+04 + 1.560607160533683e+04 + 1.545887535681969e+04 + 1.531304082443131e+04 + 1.516855564487381e+04 + 1.502540756956110e+04 + 1.488358445432479e+04 + 1.474307426938193e+04 + 1.460386509288249e+04 + 1.446594509814283e+04 + 1.432930256776952e+04 + 1.419392589719183e+04 + 1.405980357729324e+04 + 1.392692420658459e+04 + 1.379527648729671e+04 + 1.366484921045415e+04 + 1.353563127160237e+04 + 1.340761167272577e+04 + 1.328077950662285e+04 + 1.315512397004589e+04 + 1.303063434970357e+04 + 1.290730001970431e+04 + 1.278511047006237e+04 + 1.266405528001385e+04 + 1.254412410683634e+04 + 1.242530670538782e+04 + 1.230759293022181e+04 + 1.219097272173875e+04 + 1.207543611008671e+04 + 1.196097321598039e+04 + 1.184757424417080e+04 + 1.173522949287449e+04 + 1.162392934478714e+04 + 1.151366426384512e+04 + 1.140442480834694e+04 + 1.129620161634352e+04 + 1.118898540470730e+04 + 1.108276698378667e+04 + 1.097753724013271e+04 + 1.087328713748510e+04 + 1.077000773143687e+04 + 1.066769015148828e+04 + 1.056632560317495e+04 + 1.046590537899618e+04 + 1.036642084361778e+04 + 1.026786343864257e+04 + 1.017022468912003e+04 + 1.007349618928313e+04 + 9.977669609110566e+03 + 9.882736699245763e+03 + 9.788689277747368e+03 + 9.695519238085319e+03 + 9.603218551128393e+03 + 9.511779252802526e+03 + 9.421193453258842e+03 + 9.331453338088948e+03 + 9.242551155902798e+03 + 9.154479227014926e+03 + 9.067229945268125e+03 + 8.980795767109534e+03 + 8.895169220035050e+03 + 8.810342900070031e+03 + 8.726309463870590e+03 + 8.643061639313548e+03 + 8.560592220958239e+03 + 8.478894062727115e+03 + 8.397960086705119e+03 + 8.317783279679375e+03 + 8.238356687487571e+03 + 8.159673421912185e+03 + 8.081726656780256e+03 + 8.004509624589081e+03 + 7.928015622553179e+03 + 7.852238006535134e+03 + 7.777170190090504e+03 + 7.702805651284038e+03 + 7.629137923269694e+03 + 7.556160595291118e+03 + 7.483867321684783e+03 + 7.412251809739373e+03 + 7.341307820993124e+03 + 7.271029178292266e+03 + 7.201409756944273e+03 + 7.132443488123264e+03 + 7.064124361053455e+03 + 6.996446414793790e+03 + 6.929403743407001e+03 + 6.862990497342477e+03 + 6.797200875139910e+03 + 6.732029129721631e+03 + 6.667469570161823e+03 + 6.603516551523545e+03 + 6.540164480186692e+03 + 6.477407817185619e+03 + 6.415241069687017e+03 + 6.353658796883785e+03 + 6.292655608307650e+03 + 6.232226157518487e+03 + 6.172365149982773e+03 + 6.113067340658933e+03 + 6.054327527853383e+03 + 5.996140560115221e+03 + 5.938501333076975e+03 + 5.881404784939355e+03 + 5.824845903828315e+03 + 5.768819722461626e+03 + 5.713321315085574e+03 + 5.658345805472132e+03 + 5.603888359764917e+03 + 5.549944184846402e+03 + 5.496508537213697e+03 + 5.443576713947663e+03 + 5.391144051368102e+03 + 5.339205932358427e+03 + 5.287757780134069e+03 + 5.236795058291703e+03 + 5.186313275265001e+03 + 5.136307977685731e+03 + 5.086774751617681e+03 + 5.037709226449485e+03 + 4.989107068721900e+03 + 4.940963984504954e+03 + 4.893275721702213e+03 + 4.846038063285039e+03 + 4.799246830729600e+03 + 4.752897888312231e+03 + 4.706987133608333e+03 + 4.661510499922751e+03 + 4.616463963202395e+03 + 4.571843532909213e+03 + 4.527645253893021e+03 + 4.483865209302220e+03 + 4.440499515324517e+03 + 4.397544325863069e+03 + 4.354995830474305e+03 + 4.312850249817291e+03 + 4.271103841242844e+03 + 4.229752898292512e+03 + 4.188793745275323e+03 + 4.148222740634546e+03 + 4.108036277499050e+03 + 4.068230779797937e+03 + 4.028802705831530e+03 + 3.989748546349355e+03 + 3.951064821861195e+03 + 3.912748086813885e+03 + 3.874794926585441e+03 + 3.837201956255947e+03 + 3.799965825835211e+03 + 3.763083213042953e+03 + 3.726550823283946e+03 + 3.690365398229224e+03 + 3.654523706502605e+03 + 3.619022543185401e+03 + 3.583858737044133e+03 + 3.549029144619817e+03 + 3.514530650270483e+03 + 3.480360168271582e+03 + 3.446514639490202e+03 + 3.412991033253400e+03 + 3.379786348393921e+03 + 3.346897609451590e+03 + 3.314321868815865e+03 + 3.282056205761040e+03 + 3.250097724763853e+03 + 3.218443559530467e+03 + 3.187090870156345e+03 + 3.156036839918450e+03 + 3.125278679259401e+03 + 3.094813626126841e+03 + 3.064638941053712e+03 + 3.034751909739014e+03 + 3.005149845581890e+03 + 2.975830084543172e+03 + 2.946789986568892e+03 + 2.918026936797055e+03 + 2.889538343339952e+03 + 2.861321641252218e+03 + 2.833374286700636e+03 + 2.805693756659566e+03 + 2.778277556469224e+03 + 2.751123212016022e+03 + 2.724228269242043e+03 + 2.697590301914011e+03 + 2.671206904109025e+03 + 2.645075688971241e+03 + 2.619194294405700e+03 + 2.593560380141823e+03 + 2.568171626715687e+03 + 2.543025737542386e+03 + 2.518120435211838e+03 + 2.493453462030127e+03 + 2.469022585172818e+03 + 2.444825590018873e+03 + 2.420860280374604e+03 + 2.397124484732366e+03 + 2.373616049394018e+03 + 2.350332838436762e+03 + 2.327272738609171e+03 + 2.304433655218562e+03 + 2.281813512846715e+03 + 2.259410255601743e+03 + 2.237221844685107e+03 + 2.215246260811306e+03 + 2.193481506123082e+03 + 2.171925598942706e+03 + 2.150576574458654e+03 + 2.129432488764117e+03 + 2.108491414442484e+03 + 2.087751441300839e+03 + 2.067210678851041e+03 + 2.046867252353801e+03 + 2.026719303565292e+03 + 2.006764993817073e+03 + 1.987002500493615e+03 + 1.967430017215378e+03 + 1.948045754608514e+03 + 1.928847939062915e+03 + 1.909834815497017e+03 + 1.891004644375446e+03 + 1.872355700452609e+03 + 1.853886275802303e+03 + 1.835594678424827e+03 + 1.817479231062563e+03 + 1.799538272810955e+03 + 1.781770158220284e+03 + 1.764173256646331e+03 + 1.746745953278825e+03 + 1.729486647489427e+03 + 1.712393752933919e+03 + 1.695465699568615e+03 + 1.678700930817119e+03 + 1.662097903850073e+03 + 1.645655091966725e+03 + 1.629370981458450e+03 + 1.613244072202941e+03 + 1.597272880432907e+03 + 1.581455933682248e+03 + 1.565791771294578e+03 + 1.550278951289465e+03 + 1.534916043199639e+03 + 1.519701626827566e+03 + 1.504634298568118e+03 + 1.489712666891078e+03 + 1.474935351996483e+03 + 1.460300988758884e+03 + 1.445808223853118e+03 + 1.431455716350942e+03 + 1.417242138357507e+03 + 1.403166173386480e+03 + 1.389226518010158e+03 + 1.375421881007569e+03 + 1.361750982089843e+03 + 1.348212553926219e+03 + 1.334805341072190e+03 + 1.321528098720046e+03 + 1.308379594477261e+03 + 1.295358607457036e+03 + 1.282463927300085e+03 + 1.269694355823267e+03 + 1.257048705895313e+03 + 1.244525800699936e+03 + 1.232124475203576e+03 + 1.219843575042076e+03 + 1.207681956049559e+03 + 1.195638485404256e+03 + 1.183712040621380e+03 + 1.171901509388141e+03 + 1.160205790292893e+03 + 1.148623791762007e+03 + 1.137154432301071e+03 + 1.125796641257775e+03 + 1.114549357263016e+03 + 1.103411528660030e+03 + 1.092382114454342e+03 + 1.081460082700689e+03 + 1.070644411095300e+03 + 1.059934087579793e+03 + 1.049328108720195e+03 + 1.038825480494848e+03 + 1.028425218971371e+03 + 1.018126348582361e+03 + 1.007927902927668e+03 + 9.978289254104482e+02 + 9.878284675679866e+02 + 9.779255898738762e+02 + 9.681193621623704e+02 + 9.584088623012988e+02 + 9.487931771658360e+02 + 9.392714022763922e+02 + 9.298426409505287e+02 + 9.205060057185552e+02 + 9.112606172437117e+02 + 9.021056036681564e+02 + 8.930401022331439e+02 + 8.840632580637879e+02 + 8.751742235821227e+02 + 8.663721600224155e+02 + 8.576562363107178e+02 + 8.490256285516970e+02 + 8.404795212594149e+02 + 8.320171064683727e+02 + 8.236375833541338e+02 + 8.153401590664150e+02 + 8.071240480244585e+02 + 7.989884718119321e+02 + 7.909326598382663e+02 + 7.829558483527250e+02 + 7.750572805483002e+02 + 7.672362073200991e+02 + 7.594918862313154e+02 + 7.518235817392584e+02 + 7.442305655888715e+02 + 7.367121158939042e+02 + 7.292675176279554e+02 + 7.218960630476328e+02 + 7.145970504767349e+02 + 7.073697847820883e+02 + 7.002135778527235e+02 + 6.931277475695276e+02 + 6.861116184218383e+02 + 6.791645215373005e+02 + 6.722857937677298e+02 + 6.654747784472139e+02 + 6.587308253877042e+02 + 6.520532900189463e+02 + 6.454415341582659e+02 + 6.388949257382737e+02 + 6.324128381494658e+02 + 6.259946511571761e+02 + 6.196397502963263e+02 + 6.133475264197438e+02 + 6.071173768094372e+02 + 6.009487042352257e+02 + 5.948409165626937e+02 + 5.887934278801442e+02 + 5.828056577149104e+02 + 5.768770306335107e+02 + 5.710069770500405e+02 + 5.651949326339243e+02 + 5.594403381224611e+02 + 5.537426401234757e+02 + 5.481012901152631e+02 + 5.425157443662293e+02 + 5.369854648776029e+02 + 5.315099185870243e+02 + 5.260885773011631e+02 + 5.207209179649268e+02 + 5.154064223119497e+02 + 5.101445770921985e+02 + 5.049348740937783e+02 + 4.997768095346806e+02 + 4.946698844046663e+02 + 4.896136047862775e+02 + 4.846074811232588e+02 + 4.796510285618583e+02 + 4.747437670096575e+02 + 4.698852205388910e+02 + 4.650749179071526e+02 + 4.603123926691712e+02 + 4.555971823563725e+02 + 4.509288288727789e+02 + 4.463068788207030e+02 + 4.417308827523721e+02 + 4.372003955530256e+02 + 4.327149765501697e+02 + 4.282741889383891e+02 + 4.238776002586995e+02 + 4.195247821802792e+02 + 4.152153101301976e+02 + 4.109487639564401e+02 + 4.067247273397822e+02 + 4.025427875685178e+02 + 3.984025363858318e+02 + 3.943035692477232e+02 + 3.902454851077117e+02 + 3.862278871965347e+02 + 3.822503823673904e+02 + 3.783125809462488e+02 + 3.744140974100913e+02 + 3.705545496319825e+02 + 3.667335588488600e+02 + 3.629507504654170e+02 + 3.592057531920941e+02 + 3.554981990087823e+02 + 3.518277237997781e+02 + 3.481939667588409e+02 + 3.445965704231110e+02 + 3.410351808614133e+02 + 3.375094474036331e+02 + 3.340190228447264e+02 + 3.305635632260179e+02 + 3.271427276872922e+02 + 3.237561788604219e+02 + 3.204035826343936e+02 + 3.170846077594078e+02 + 3.137989262426811e+02 + 3.105462135925898e+02 + 3.073261480789523e+02 + 3.041384108878384e+02 + 3.009826866110996e+02 + 2.978586626197819e+02 + 2.947660292278245e+02 + 2.917044799774912e+02 + 2.886737110898206e+02 + 2.856734216347172e+02 + 2.827033138205502e+02 + 2.797630925185924e+02 + 2.768524653868921e+02 + 2.739711430162750e+02 + 2.711188386172004e+02 + 2.682952682417776e+02 + 2.655001507075566e+02 + 2.627332073441469e+02 + 2.599941621974095e+02 + 2.572827420191948e+02 + 2.545986760992428e+02 + 2.519416963867954e+02 + 2.493115374004747e+02 + 2.467079361520411e+02 + 2.441306322519956e+02 + 2.415793676749632e+02 + 2.390538868162835e+02 + 2.365539368283623e+02 + 2.340792670618049e+02 + 2.316296291092408e+02 + 2.292047772816256e+02 + 2.268044680583002e+02 + 2.244284601550858e+02 + 2.220765149177526e+02 + 2.197483957886078e+02 + 2.174438683808943e+02 + 2.151627007150871e+02 + 2.129046628991759e+02 + 2.106695273325222e+02 + 2.084570687245048e+02 + 2.062670637405841e+02 + 2.040992912166423e+02 + 2.019535322675416e+02 + 1.998295699356443e+02 + 1.977271893831886e+02 + 1.956461779038128e+02 + 1.935863247355415e+02 + 1.915474213798307e+02 + 1.895292611678483e+02 + 1.875316391958052e+02 + 1.855543528482985e+02 + 1.835972014670904e+02 + 1.816599861324650e+02 + 1.797425099308505e+02 + 1.778445779263947e+02 + 1.759659969484732e+02 + 1.741065756739388e+02 + 1.722661246609050e+02 + 1.704444562587039e+02 + 1.686413847511611e+02 + 1.668567261386198e+02 + 1.650902980928235e+02 + 1.633419201885993e+02 + 1.616114136777071e+02 + 1.598986014805750e+02 + 1.582033083619683e+02 + 1.565253606828442e+02 + 1.548645864376032e+02 + 1.532208154238845e+02 + 1.515938789750561e+02 + 1.499836100268175e+02 + 1.483898432531407e+02 + 1.468124148175615e+02 + 1.452511624739094e+02 + 1.437059256375598e+02 + 1.421765451600804e+02 + 1.406628634671130e+02 + 1.391647245894945e+02 + 1.376819739463268e+02 + 1.362144585029153e+02 + 1.347620267668397e+02 + 1.333245285902542e+02 + 1.319018153476916e+02 + 1.304937399101563e+02 + 1.291001564496927e+02 + 1.277209206089626e+02 + 1.263558894821456e+02 + 1.250049214462411e+02 + 1.236678763269726e+02 + 1.223446153162142e+02 + 1.210350008534558e+02 + 1.197388968258891e+02 + 1.184561684202564e+02 + 1.171866820332312e+02 + 1.159303054814129e+02 + 1.146869078350233e+02 + 1.134563593521917e+02 + 1.122385316718855e+02 + 1.110332976232454e+02 + 1.098405311979204e+02 + 1.086601077608261e+02 + 1.074919038117468e+02 + 1.063357969778381e+02 + 1.051916662270612e+02 + 1.040593916259906e+02 + 1.029388543466298e+02 + 1.018299368341955e+02 + 1.007325226151947e+02 + 9.964649633160360e+01 + 9.857174381861689e+01 + 9.750815195741964e+01 + 9.645560874783912e+01 + 9.541400332430685e+01 + 9.438322582683587e+01 + 9.336316750654088e+01 + 9.235372071959520e+01 + 9.135477878367931e+01 + 9.036623609174318e+01 + 8.938798812110527e+01 + 8.841993128541375e+01 + 8.746196304638978e+01 + 8.651398190997742e+01 + 8.557588728936869e+01 + 8.464757961904559e+01 + 8.372896034435935e+01 + 8.281993180539014e+01 + 8.192039735296085e+01 + 8.103026128111058e+01 + 8.014942874495698e+01 + 7.927780590401203e+01 + 7.841529983858037e+01 + 7.756181847617736e+01 + 7.671727071446733e+01 + 7.588156631674119e+01 + 7.505461587372024e+01 + 7.423633095310755e+01 + 7.342662394299153e+01 + 7.262540803009301e+01 + 7.183259736215271e+01 + 7.104810687905130e+01 + 7.027185230277652e+01 + 6.950375028269488e+01 + 6.874371822566854e+01 + 6.799167430460268e+01 + 6.724753760248480e+01 + 6.651122793902957e+01 + 6.578266588744034e+01 + 6.506177289160765e+01 + 6.434847109859102e+01 + 6.364268339115934e+01 + 6.294433351272004e+01 + 6.225334589309644e+01 + 6.156964567793161e+01 + 6.089315882540817e+01 + 6.022381196253272e+01 + 5.956153243192431e+01 + 5.890624835784802e+01 + 5.825788851805937e+01 + 5.761638239540161e+01 + 5.698166019812880e+01 + 5.635365277455941e+01 + 5.573229169643452e+01 + 5.511750921575248e+01 + 5.450923819422894e+01 + 5.390741220139490e+01 + 5.331196548214332e+01 + 5.272283288224639e+01 + 5.213994992103501e+01 + 5.156325275682114e+01 + 5.099267813956413e+01 + 5.042816349744366e+01 + 4.986964685712531e+01 + 4.931706681520628e+01 + 4.877036264381848e+01 + 4.822947419115650e+01 + 4.769434186145065e+01 + 4.716490671386568e+01 + 4.664111036072763e+01 + 4.612289496053356e+01 + 4.561020331071316e+01 + 4.510297873475514e+01 + 4.460116508782800e+01 + 4.410470685618211e+01 + 4.361354903662819e+01 + 4.312763714409483e+01 + 4.264691728541290e+01 + 4.217133607138089e+01 + 4.170084064118655e+01 + 4.123537869187841e+01 + 4.077489840121474e+01 + 4.031934846724150e+01 + 3.986867813088396e+01 + 3.942283710103097e+01 + 3.898177559914080e+01 + 3.854544435810492e+01 + 3.811379455962712e+01 + 3.768677789368684e+01 + 3.726434656726136e+01 + 3.684645322013298e+01 + 3.643305096011807e+01 + 3.602409338288954e+01 + 3.561953452360934e+01 + 3.521932891649128e+01 + 3.482343153306697e+01 + 3.443179775085747e+01 + 3.404438343901749e+01 + 3.366114490993698e+01 + 3.328203887889210e+01 + 3.290702252020257e+01 + 3.253605343510379e+01 + 3.216908962260722e+01 + 3.180608952699355e+01 + 3.144701200592500e+01 + 3.109181631097627e+01 + 3.074046212448961e+01 + 3.039290952642646e+01 + 3.004911898312090e+01 + 2.970905136572861e+01 + 2.937266792505025e+01 + 2.903993030352619e+01 + 2.871080057194543e+01 + 2.838524113862799e+01 + 2.806321475945346e+01 + 2.774468462701056e+01 + 2.742961427426368e+01 + 2.711796757973106e+01 + 2.680970882898042e+01 + 2.650480264209962e+01 + 2.620321398820359e+01 + 2.590490820737408e+01 + 2.560985096325826e+01 + 2.531800827674159e+01 + 2.502934653543958e+01 + 2.474383242809609e+01 + 2.446143296972707e+01 + 2.418211555345684e+01 + 2.390584787621480e+01 + 2.363259794654911e+01 + 2.336233413255323e+01 + 2.309502509558490e+01 + 2.283063979379989e+01 + 2.256914753657127e+01 + 2.231051792982671e+01 + 2.205472087402378e+01 + 2.180172658443576e+01 + 2.155150556919213e+01 + 2.130402866286656e+01 + 2.105926696778129e+01 + 2.081719185319289e+01 + 2.057777503962135e+01 + 2.034098850331043e+01 + 2.010680447006149e+01 + 1.987519550063876e+01 + 1.964613442528577e+01 + 1.941959432580914e+01 + 1.919554855827313e+01 + 1.897397075515799e+01 + 1.875483482712853e+01 + 1.853811494931854e+01 + 1.832378554313712e+01 + 1.811182128985819e+01 + 1.790219714756028e+01 + 1.769488831219516e+01 + 1.748987022919803e+01 + 1.728711861052799e+01 + 1.708660939866258e+01 + 1.688831878332332e+01 + 1.669222321036695e+01 + 1.649829934690638e+01 + 1.630652410217020e+01 + 1.611687463464447e+01 + 1.592932831698975e+01 + 1.574386275792588e+01 + 1.556045580679505e+01 + 1.537908552081595e+01 + 1.519973018767385e+01 + 1.502236832516821e+01 + 1.484697865494502e+01 + 1.467354012841447e+01 + 1.450203191274907e+01 + 1.433243337158686e+01 + 1.416472409674524e+01 + 1.399888388846149e+01 + 1.383489273805109e+01 + 1.367273085728561e+01 + 1.351237865788487e+01 + 1.335381673920349e+01 + 1.319702591751814e+01 + 1.304198719993403e+01 + 1.288868177614133e+01 + 1.273709104714046e+01 + 1.258719659672914e+01 + 1.243898018736778e+01 + 1.229242378719869e+01 + 1.214750954184370e+01 + 1.200421977308728e+01 + 1.186253699764556e+01 + 1.172244390266849e+01 + 1.158392335040491e+01 + 1.144695839482221e+01 + 1.131153225250660e+01 + 1.117762830926809e+01 + 1.104523013501555e+01 + 1.091432145806843e+01 + 1.078488617566414e+01 + 1.065690836231677e+01 + 1.053037224372639e+01 + 1.040526220941685e+01 + 1.028156282144551e+01 + 1.015925878941852e+01 + 1.003833498402321e+01 + 9.918776439618298e+00 + 9.800568334039683e+00 + 9.683696005431957e+00 + 9.568144946174611e+00 + 9.453900787919052e+00 + 9.340949322860192e+00 + 9.229276489267212e+00 + 9.118868359446189e+00 + 9.009711163642070e+00 + 8.901791273796370e+00 + 8.795095191785947e+00 + 8.689609570648638e+00 + 8.585321201853549e+00 + 8.482217005296002e+00 + 8.380284046581689e+00 + 8.279509523576925e+00 + 8.179880760330461e+00 + 8.081385224417300e+00 + 7.984010508389771e+00 + 7.887744326863491e+00 + 7.792574535206823e+00 + 7.698489109519010e+00 + 7.605476146133772e+00 + 7.513523878187234e+00 + 7.422620653280592e+00 + 7.332754935473541e+00 + 7.243915322674125e+00 + 7.156090524556396e+00 + 7.069269365741123e+00 + 6.983440797017198e+00 + 6.898593877074525e+00 + 6.814717779007339e+00 + 6.731801797516630e+00 + 6.649835331100769e+00 + 6.568807890289103e+00 + 6.488709103685009e+00 + 6.409528699865692e+00 + 6.331256515961359e+00 + 6.253882503643640e+00 + 6.177396712290002e+00 + 6.101789297547966e+00 + 6.027050522250886e+00 + 5.953170745278158e+00 + 5.880140434362498e+00 + 5.807950156612827e+00 + 5.736590570385212e+00 + 5.666052441485230e+00 + 5.596326632559173e+00 + 5.527404095182261e+00 + 5.459275884510260e+00 + 5.391933149962507e+00 + 5.325367127621260e+00 + 5.259569151260657e+00 + 5.194530647433734e+00 + 5.130243129823101e+00 + 5.066698206416531e+00 + 5.003887570881058e+00 + 4.941803001453549e+00 + 4.880436373900456e+00 + 4.819779643419130e+00 + 4.759824844738533e+00 + 4.700564110200850e+00 + 4.641989649988083e+00 + 4.584093751736625e+00 + 4.526868793565781e+00 + 4.470307230074105e+00 + 4.414401594729965e+00 + 4.359144507919768e+00 + 4.304528662004969e+00 + 4.250546825086277e+00 + 4.197191851627622e+00 + 4.144456666159979e+00 + 4.092334266478478e+00 + 4.040817732600400e+00 + 3.989900213340690e+00 + 3.939574930757155e+00 + 3.889835183170760e+00 + 3.840674335613269e+00 + 3.792085827136757e+00 + 3.744063169627271e+00 + 3.696599938809659e+00 + 3.649689781941428e+00 + 3.603326418080199e+00 + 3.557503628382808e+00 + 3.512215261374414e+00 + 3.467455236465362e+00 + 3.423217534816642e+00 + 3.379496201686086e+00 + 3.336285348654454e+00 + 3.293579148649655e+00 + 3.251371841226642e+00 + 3.209657725464606e+00 + 3.168431157939940e+00 + 3.127686563504146e+00 + 3.087418425005168e+00 + 3.047621281181530e+00 + 3.008289735457784e+00 + 2.969418446796439e+00 + 2.931002129285814e+00 + 2.893035560502260e+00 + 2.855513571053400e+00 + 2.818431044951714e+00 + 2.781782927380857e+00 + 2.745564215550934e+00 + 2.709769959926351e+00 + 2.674395268211684e+00 + 2.639435297946605e+00 + 2.604885259637663e+00 + 2.570740420206636e+00 + 2.536996093812299e+00 + 2.503647644969884e+00 + 2.470690493614489e+00 + 2.438120105903952e+00 + 2.405931997235836e+00 + 2.374121735683807e+00 + 2.342684934097179e+00 + 2.311617253784086e+00 + 2.280914406216957e+00 + 2.250572146781167e+00 + 2.220586279273893e+00 + 2.190952653478714e+00 + 2.161667162009881e+00 + 2.132725747880213e+00 + 2.104124396422602e+00 + 2.075859132902099e+00 + 2.047926031580743e+00 + 2.020321209266692e+00 + 1.993040822266800e+00 + 1.966081073072867e+00 + 1.939438205166541e+00 + 1.913108500802827e+00 + 1.887088286918805e+00 + 1.861373929947225e+00 + 1.835961834345823e+00 + 1.810848447621857e+00 + 1.786030255213551e+00 + 1.761503779943143e+00 + 1.737265586321442e+00 + 1.713312275115213e+00 + 1.689640483715834e+00 + 1.666246890168493e+00 + 1.643128207113473e+00 + 1.620281182788458e+00 + 1.597702604935450e+00 + 1.575389294699183e+00 + 1.553338108095691e+00 + 1.531545938928566e+00 + 1.510009713407906e+00 + 1.488726392261371e+00 + 1.467692971937850e+00 + 1.446906480207705e+00 + 1.426363979153670e+00 + 1.406062564959602e+00 + 1.385999363940103e+00 + 1.366171536058216e+00 + 1.346576274130787e+00 + 1.327210800124654e+00 + 1.308072368828510e+00 + 1.289158266486426e+00 + 1.270465807665891e+00 + 1.251992339187792e+00 + 1.233735237889272e+00 + 1.215691907984316e+00 + 1.197859785096899e+00 + 1.180236333919823e+00 + 1.162819045897185e+00 + 1.145605442741095e+00 + 1.128593073973588e+00 + 1.111779515284567e+00 + 1.095162371880828e+00 + 1.078739275475473e+00 + 1.062507883334588e+00 + 1.046465881646835e+00 + 1.030610981874106e+00 + 1.014940920295882e+00 + 9.994534611152829e-01 + 9.841463930086627e-01 + 9.690175291593270e-01 + 9.540647093618980e-01 + 9.392857969051628e-01 + 9.246786792729085e-01 + 9.102412696338000e-01 + 8.959715035501604e-01 + 8.818673402027871e-01 + 8.679267639726700e-01 + 8.541477806828601e-01 + 8.405284189410931e-01 + 8.270667316623297e-01 + 8.137607925445277e-01 + 8.006086976874616e-01 + 7.876085666023992e-01 + 7.747585387876328e-01 + 7.620567754307064e-01 + 7.495014602973783e-01 + 7.370907966216457e-01 + 7.248230088485250e-01 + 7.126963429559050e-01 + 7.007090638413013e-01 + 6.888594572109231e-01 + 6.771458292779966e-01 + 6.655665045807759e-01 + 6.541198279036498e-01 + 6.428041637825399e-01 + 6.316178947210964e-01 + 6.205594229105623e-01 + 6.096271692194244e-01 + 5.988195719936049e-01 + 5.881350889221284e-01 + 5.775721954595900e-01 + 5.671293841176136e-01 + 5.568051664208875e-01 + 5.465980707194322e-01 + 5.365066418737608e-01 + 5.265294432641988e-01 + 5.166650544231339e-01 + 5.069120710261563e-01 + 4.972691065208522e-01 + 4.877347899800689e-01 + 4.783077664492044e-01 + 4.689866979017357e-01 + 4.597702612073233e-01 + 4.506571489021905e-01 + 4.416460700276524e-01 + 4.327357479310139e-01 + 4.239249212044141e-01 + 4.152123442913231e-01 + 4.065967853823845e-01 + 3.980770275573000e-01 + 3.896518691214699e-01 + 3.813201217302061e-01 + 3.730806117264635e-01 + 3.649321798861945e-01 + 3.568736798624809e-01 + 3.489039797704173e-01 + 3.410219613244947e-01 + 3.332265187013593e-01 + 3.255165605086018e-01 + 3.178910083898543e-01 + 3.103487958586359e-01 + 3.028888701360887e-01 + 2.955101913786422e-01 + 2.882117315106021e-01 + 2.809924755137371e-01 + 2.738514204626846e-01 + 2.667875748867065e-01 + 2.597999604522775e-01 + 2.528876103054370e-01 + 2.460495685714950e-01 + 2.392848919788540e-01 + 2.325926484518769e-01 + 2.259719167857841e-01 + 2.194217877354759e-01 + 2.129413627175208e-01 + 2.065297538274627e-01 + 2.001860848470379e-01 + 1.939094897086202e-01 + 1.876991127051828e-01 + 1.815541094417414e-01 + 1.754736452756007e-01 + 1.694568956974621e-01 + 1.635030470498157e-01 + 1.576112950508609e-01 + 1.517808453564031e-01 + 1.460109140364644e-01 + 1.403007261766342e-01 + 1.346495165784953e-01 + 1.290565300180611e-01 + 1.235210199704221e-01 + 1.180422494287421e-01 + 1.126194909047226e-01 + 1.072520253105725e-01 + 1.019391428882170e-01 + 9.668014295417104e-02 + 9.147433293860986e-02 + 8.632102939670111e-02 + 8.121955756354367e-02 + 7.616925052308399e-02 + 7.116945022739722e-02 + 6.621950693894064e-02 + 6.131877854698166e-02 + 5.646663155698649e-02 + 5.166244039926220e-02 + 4.690558691983024e-02 + 4.219546135291571e-02 + 3.753146148005052e-02 + 3.291299228995687e-02 + 2.833946692296159e-02 + 2.381030573044091e-02 + 1.932493608562982e-02 + 1.488279323951757e-02 + 1.048331933378767e-02 + 6.125963364112487e-03 + 1.810181928441051e-03 + -2.464561780353438e-03 + -6.698797872311066e-03 + -1.089304914227914e-02 + -1.504783206514415e-02 + -1.916365656771068e-02 + -2.324102555134537e-02 + -2.728043585421590e-02 + -3.128237791440187e-02 + -3.524733543518016e-02 + -3.917578628623598e-02 + -4.306820207473552e-02 + -4.692504798332473e-02 + -5.074678357205704e-02 + -5.453386225593208e-02 + -5.828673132987599e-02 + -6.200583267980977e-02 + -6.569160218738558e-02 + -6.934446987831328e-02 + -7.296486055963237e-02 + -7.655319319650564e-02 + -8.010988114185758e-02 + -8.363533270338043e-02 + -8.712995053780122e-02 + -9.059413193193132e-02 + -9.402826926020177e-02 + -9.743274938790861e-02 + -1.008079541064505e-01 + -1.041542604608216e-01 + -1.074720401131623e-01 + -1.107616598682374e-01 + -1.140234819193764e-01 + -1.172578632830942e-01 + -1.204651563472630e-01 + -1.236457089966172e-01 + -1.267998640735528e-01 + -1.299279600346222e-01 + -1.330303309819349e-01 + -1.361073061299021e-01 + -1.391592104828469e-01 + -1.421863647988072e-01 + -1.451890851855495e-01 + -1.481676836992942e-01 + -1.511224682100277e-01 + -1.540537421399553e-01 + -1.569618050599837e-01 + -1.598469524764272e-01 + -1.627094755828420e-01 + -1.655496618778017e-01 + -1.683677949236447e-01 + -1.711641541517163e-01 + -1.739390154343296e-01 + -1.766926508045859e-01 + -1.794253283544359e-01 + -1.821373127460387e-01 + -1.848288648981078e-01 + -1.875002419786971e-01 + -1.901516978443653e-01 + -1.927834826976386e-01 + -1.953958431846420e-01 + -1.979890227559544e-01 + -2.005632612952037e-01 + -2.031187952951354e-01 + -2.056558581586019e-01 + -2.081746798356756e-01 + -2.106754870586183e-01 + -2.131585035595214e-01 + -2.156239496932611e-01 + -2.180720427808593e-01 + -2.205029972492180e-01 + -2.229170242226580e-01 + -2.253143319488933e-01 + -2.276951258807381e-01 + -2.300596082676421e-01 + -2.324079786235529e-01 + -2.347404337552020e-01 + -2.370571673694448e-01 + -2.393583705568364e-01 + -2.416442317867498e-01 + -2.439149365965413e-01 + -2.461706679522762e-01 + -2.484116061949506e-01 + -2.506379289887288e-01 + -2.528498115997045e-01 + -2.550474267213886e-01 + -2.572309443123204e-01 + -2.594005320626763e-01 + -2.615563552809436e-01 + -2.636985766193694e-01 + -2.658273564814242e-01 + -2.679428529152917e-01 + -2.700452216727706e-01 + -2.721346163277996e-01 + -2.742111879420810e-01 + -2.762750854486131e-01 + -2.783264557785196e-01 + -2.803654434689624e-01 + -2.823921908087395e-01 + -2.844068381756654e-01 + -2.864095239109061e-01 + -2.884003839950212e-01 + -2.903795524955394e-01 + -2.923471617904532e-01 + -2.943033420191942e-01 + -2.962482212763220e-01 + -2.981819256807660e-01 + -3.001045795717013e-01 + -3.020163055275332e-01 + -3.039172239885258e-01 + -3.058074538261057e-01 + -3.076871122705734e-01 + -3.095563141516905e-01 + -3.114151727559051e-01 + -3.132637999546681e-01 + -3.151023057635463e-01 + -3.169307984585886e-01 + -3.187493845723606e-01 + -3.205581689117248e-01 + -3.223572548745565e-01 + -3.241467443749414e-01 + -3.259267374142799e-01 + -3.276973325691862e-01 + -3.294586270053045e-01 + -3.312107160890871e-01 + -3.329536937962613e-01 + -3.346876527428858e-01 + -3.364126840777460e-01 + -3.381288775295205e-01 + -3.398363212268976e-01 + -3.415351019703767e-01 + -3.432253052941175e-01 + -3.449070152459444e-01 + -3.465803145779997e-01 + -3.482452848007116e-01 + -3.499020059501182e-01 + -3.515505568826250e-01 + -3.531910152859590e-01 + -3.548234573752725e-01 + -3.564479582224311e-01 + -3.580645917875246e-01 + -3.596734306319520e-01 + -3.612745463110025e-01 + -3.628680093075062e-01 + -3.644538885605036e-01 + -3.660322520458910e-01 + -3.676031668332329e-01 + -3.691666987516095e-01 + -3.707229124779602e-01 + -3.722718716670178e-01 + -3.738136390608672e-01 + -3.753482761467254e-01 + -3.768758432749062e-01 + -3.783964002465877e-01 + -3.799100056353694e-01 + -3.814167166997948e-01 + -3.829165900177774e-01 + -3.844096813827866e-01 + -3.858960456354959e-01 + -3.873757364088854e-01 + -3.888488064600710e-01 + -3.903153077375676e-01 + -3.917752913452379e-01 + -3.932288075353338e-01 + -3.946759055987133e-01 + -3.961166339473677e-01 + -3.975510402779339e-01 + -3.989791715122148e-01 + -4.004010735521537e-01 + -4.018167915706618e-01 + -4.032263700983349e-01 + -4.046298528561717e-01 + -4.060272827301947e-01 + -4.074187016384220e-01 + -4.088041511045764e-01 + -4.101836719923956e-01 + -4.115573039941210e-01 + -4.129250863351419e-01 + -4.142870577221169e-01 + -4.156432559911067e-01 + -4.169937183587125e-01 + -4.183384813924751e-01 + -4.196775807600287e-01 + -4.210110517890521e-01 + -4.223389293056927e-01 + -4.236612469859990e-01 + -4.249780381358575e-01 + -4.262893357128523e-01 + -4.275951718561576e-01 + -4.288955781548201e-01 + -4.301905856512787e-01 + -4.314802245948859e-01 + -4.327645248125306e-01 + -4.340435157401011e-01 + -4.353172261319986e-01 + -4.365856843065750e-01 + -4.378489181140523e-01 + -4.391069545111200e-01 + -4.403598201489721e-01 + -4.416075414900063e-01 + -4.428501441617211e-01 + -4.440876533447125e-01 + -4.453200938994337e-01 + -4.465474900663732e-01 + -4.477698656375739e-01 + -4.489872440132049e-01 + -4.501996482091757e-01 + -4.514071007293397e-01 + -4.526096234423685e-01 + -4.538072381973440e-01 + -4.549999664346564e-01 + -4.561878287239103e-01 + -4.573708454564815e-01 + -4.585490367840940e-01 + -4.597224223838171e-01 + -4.608910215483196e-01 + -4.620548532229073e-01 + -4.632139359470852e-01 + -4.643682878385313e-01 + -4.655179266829866e-01 + -4.666628700026897e-01 + -4.678031349656974e-01 + -4.689387384105899e-01 + -4.700696968538801e-01 + -4.711960263436956e-01 + -4.723177425902391e-01 + -4.734348612979066e-01 + -4.745473978039702e-01 + -4.756553669920032e-01 + -4.767587833133353e-01 + -4.778576611599107e-01 + -4.789520147944609e-01 + -4.800418577229591e-01 + -4.811272034289876e-01 + -4.822080654661853e-01 + -4.832844566828151e-01 + -4.843563896207272e-01 + -4.854238767122197e-01 + -4.864869303811440e-01 + -4.875455627166793e-01 + -4.885997853037442e-01 + -4.896496095260600e-01 + -4.906950466868944e-01 + -4.917361080077966e-01 + -4.927728043326091e-01 + -4.938051461993963e-01 + -4.948331438840640e-01 + -4.958568075736277e-01 + -4.968761473512240e-01 + -4.978911731225704e-01 + -4.989018945002663e-01 + -4.999083208482176e-01 + -5.009104613021941e-01 + -5.019083248972503e-01 + -5.029019205602130e-01 + -5.038912570358333e-01 + -5.048763428126108e-01 + -5.058571862004539e-01 + -5.068337954285524e-01 + -5.078061785541023e-01 + -5.087743434557772e-01 + -5.097382978215317e-01 + -5.106980492175714e-01 + -5.116536051046018e-01 + -5.126049728172039e-01 + -5.135521595357905e-01 + -5.144951722594635e-01 + -5.154340177423219e-01 + -5.163687027408718e-01 + -5.172992340140365e-01 + -5.182256180631845e-01 + -5.191478612397169e-01 + -5.200659697981208e-01 + -5.209799499565910e-01 + -5.218898077706294e-01 + -5.227955490891694e-01 + -5.236971796844924e-01 + -5.245947053253370e-01 + -5.254881317688337e-01 + -5.263774645512288e-01 + -5.272627090126604e-01 + -5.281438703531137e-01 + -5.290209539977515e-01 + -5.298939652703512e-01 + -5.307629091340913e-01 + -5.316277904778723e-01 + -5.324886142110474e-01 + -5.333453852986519e-01 + -5.341981085648844e-01 + -5.350467886587517e-01 + -5.358914300418783e-01 + -5.367320373706596e-01 + -5.375686152841432e-01 + -5.384011680734792e-01 + -5.392297001047128e-01 + -5.400542157871245e-01 + -5.408747194069761e-01 + -5.416912150785628e-01 + -5.425037068232484e-01 + -5.433121987186342e-01 + -5.441166948984431e-01 + -5.449171994793097e-01 + -5.457137163885653e-01 + -5.465062494211190e-01 + -5.472948023341125e-01 + -5.480793790518950e-01 + -5.488599834110802e-01 + -5.496366191273470e-01 + -5.504092899443518e-01 + -5.511779994928784e-01 + -5.519427513029639e-01 + -5.527035490710489e-01 + -5.534603964642170e-01 + -5.542132970155166e-01 + -5.549622540841348e-01 + -5.557072711574547e-01 + -5.564483519201564e-01 + -5.571854997347668e-01 + -5.579187179919134e-01 + -5.586480102698358e-01 + -5.593733798207278e-01 + -5.600948299343745e-01 + -5.608123641702291e-01 + -5.615259858006734e-01 + -5.622356980349319e-01 + -5.629415042452564e-01 + -5.636434078437447e-01 + -5.643414121719204e-01 + -5.650355204128609e-01 + -5.657257359067179e-01 + -5.664120620074502e-01 + -5.670945018655422e-01 + -5.677730587569899e-01 + -5.684477360210265e-01 + -5.691185368946378e-01 + -5.697854646230838e-01 + -5.704485224954847e-01 + -5.711077138615709e-01 + -5.717630418949810e-01 + -5.724145097236072e-01 + -5.730621208149326e-01 + -5.737058785857441e-01 + -5.743457862811681e-01 + -5.749818469287452e-01 + -5.756140639044424e-01 + -5.762424408221788e-01 + -5.768669806578469e-01 + -5.774876866716016e-01 + -5.781045625480883e-01 + -5.787176116189466e-01 + -5.793268371095267e-01 + -5.799322422747063e-01 + -5.805338304985933e-01 + -5.811316053198213e-01 + -5.817255703521417e-01 + -5.823157287697720e-01 + -5.829020838792335e-01 + -5.834846393919914e-01 + -5.840633987477251e-01 + -5.846383653791880e-01 + -5.852095428966003e-01 + -5.857769347455314e-01 + -5.863405444497650e-01 + -5.869003757905312e-01 + -5.874564321893059e-01 + -5.880087171065591e-01 + -5.885572344676900e-01 + -5.891019879107314e-01 + -5.896429809482692e-01 + -5.901802172691951e-01 + -5.907137006344829e-01 + -5.912434348345698e-01 + -5.917694236578408e-01 + -5.922916709366750e-01 + -5.928101804947136e-01 + -5.933249560457028e-01 + -5.938360014505492e-01 + -5.943433207019595e-01 + -5.948469177828256e-01 + -5.953467966083078e-01 + -5.958429610716830e-01 + -5.963354151930935e-01 + -5.968241629967538e-01 + -5.973092085065336e-01 + -5.977905558475627e-01 + -5.982682091919279e-01 + -5.987421727060626e-01 + -5.992124504335189e-01 + -5.996790465513929e-01 + -6.001419654039183e-01 + -6.006012111567195e-01 + -6.010567880969444e-01 + -6.015087007096906e-01 + -6.019569532209035e-01 + -6.024015499278780e-01 + -6.028424953542454e-01 + -6.032797938560218e-01 + -6.037134498528102e-01 + -6.041434679778884e-01 + -6.045698527611498e-01 + -6.049926086966888e-01 + -6.054117403213235e-01 + -6.058272522301629e-01 + -6.062391491063152e-01 + -6.066474357377917e-01 + -6.070521167750024e-01 + -6.074531969194140e-01 + -6.078506811508277e-01 + -6.082445741313003e-01 + -6.086348804777613e-01 + -6.090216052590219e-01 + -6.094047534940796e-01 + -6.097843300758768e-01 + -6.101603397998798e-01 + -6.105327877567767e-01 + -6.109016791586246e-01 + -6.112670188349342e-01 + -6.116288118244032e-01 + -6.119870634033990e-01 + -6.123417788015699e-01 + -6.126929631816058e-01 + -6.130406216857481e-01 + -6.133847595846266e-01 + -6.137253821544012e-01 + -6.140624946688724e-01 + -6.143961025253998e-01 + -6.147262111225434e-01 + -6.150528258526081e-01 + -6.153759522847098e-01 + -6.156955958775930e-01 + -6.160117619293205e-01 + -6.163244560848270e-01 + -6.166336840291214e-01 + -6.169394513190288e-01 + -6.172417635406579e-01 + -6.175406263458638e-01 + -6.178360454670117e-01 + -6.181280266570051e-01 + -6.184165756494230e-01 + -6.187016981615432e-01 + -6.189834001775048e-01 + -6.192616876391890e-01 + -6.195365661632112e-01 + -6.198080416901866e-01 + -6.200761202902517e-01 + -6.203408078682074e-01 + -6.206021103982113e-01 + -6.208600339819080e-01 + -6.211145848662764e-01 + -6.213657689929696e-01 + -6.216135922609831e-01 + -6.218580610691606e-01 + -6.220991816188346e-01 + -6.223369599996067e-01 + -6.225714026287344e-01 + -6.228025157602012e-01 + -6.230303055354752e-01 + -6.232547783843585e-01 + -6.234759406837302e-01 + -6.236937987287140e-01 + -6.239083589372102e-01 + -6.241196278170006e-01 + -6.243276119301496e-01 + -6.245323178052680e-01 + -6.247337518435782e-01 + -6.249319204108740e-01 + -6.251268303788342e-01 + -6.253184884524475e-01 + -6.255069009766967e-01 + -6.256920746682559e-01 + -6.258740163701917e-01 + -6.260527328726909e-01 + -6.262282307801417e-01 + -6.264005167589047e-01 + -6.265695976839164e-01 + -6.267354804070123e-01 + -6.268981717782514e-01 + -6.270576786775590e-01 + -6.272140080071444e-01 + -6.273671666729116e-01 + -6.275171615794166e-01 + -6.276639997579259e-01 + -6.278076882572314e-01 + -6.279482340166599e-01 + -6.280856440870369e-01 + -6.282199255881125e-01 + -6.283510856176625e-01 + -6.284791313265480e-01 + -6.286040698559974e-01 + -6.287259082244099e-01 + -6.288446536460758e-01 + -6.289603134448759e-01 + -6.290728947784819e-01 + -6.291824049507972e-01 + -6.292888513285516e-01 + -6.293922409846477e-01 + -6.294925812787570e-01 + -6.295898797737625e-01 + -6.296841435561055e-01 + -6.297753800606519e-01 + -6.298635970427606e-01 + -6.299488015475858e-01 + -6.300310009429952e-01 + -6.301102030719377e-01 + -6.301864151575183e-01 + -6.302596446383568e-01 + -6.303298993873763e-01 + -6.303971867419816e-01 + -6.304615141097702e-01 + -6.305228892569528e-01 + -6.305813198299395e-01 + -6.306368133767261e-01 + -6.306893774095105e-01 + -6.307390196514921e-01 + -6.307857478830511e-01 + -6.308295697989852e-01 + -6.308704929504492e-01 + -6.309085250312678e-01 + -6.309436740902202e-01 + -6.309759477467396e-01 + -6.310053535533821e-01 + -6.310318994644450e-01 + -6.310555933584764e-01 + -6.310764430051494e-01 + -6.310944561130111e-01 + -6.311096405770181e-01 + -6.311220043955681e-01 + -6.311315554778594e-01 + -6.311383016234806e-01 + -6.311422506666780e-01 + -6.311434107412031e-01 + -6.311417897164122e-01 + -6.311373953205278e-01 + -6.311302357049288e-01 + -6.311203189243589e-01 + -6.311076528624781e-01 + -6.310922454230109e-01 + -6.310741047155799e-01 + -6.310532389686786e-01 + -6.310296560496979e-01 + -6.310033639455465e-01 + -6.309743708604478e-01 + -6.309426848479184e-01 + -6.309083139781310e-01 + -6.308712663782245e-01 + -6.308315500367087e-01 + -6.307891730465176e-01 + -6.307441436976022e-01 + -6.306964701860184e-01 + -6.306461606431758e-01 + -6.305932231701467e-01 + -6.305376659121696e-01 + -6.304794970062023e-01 + -6.304187245700347e-01 + -6.303553569805046e-01 + -6.302894025962669e-01 + -6.302208694979176e-01 + -6.301497657748981e-01 + -6.300760996409697e-01 + -6.299998795100692e-01 + -6.299211136514613e-01 + -6.298398102240708e-01 + -6.297559773915322e-01 + -6.296696236381925e-01 + -6.295807574013027e-01 + -6.294893864698483e-01 + -6.293955192818200e-01 + -6.292991645521353e-01 + -6.292003301703828e-01 + -6.290990243894826e-01 + -6.289952557946986e-01 + -6.288890326523825e-01 + -6.287803632353285e-01 + -6.286692558944412e-01 + -6.285557190083507e-01 + -6.284397608763040e-01 + -6.283213897612988e-01 + -6.282006141317734e-01 + -6.280774423035318e-01 + -6.279518824496017e-01 + -6.278239431715447e-01 + -6.276936329659792e-01 + -6.275609600561086e-01 + -6.274259327786519e-01 + -6.272885594754783e-01 + -6.271488484695774e-01 + -6.270068083043618e-01 + -6.268624473656752e-01 + -6.267157737459064e-01 + -6.265667960682418e-01 + -6.264155229504741e-01 + -6.262619625962428e-01 + -6.261061232036680e-01 + -6.259480131935671e-01 + -6.257876413121770e-01 + -6.256250157840939e-01 + -6.254601447340036e-01 + -6.252930366972961e-01 + -6.251237002207461e-01 + -6.249521437614608e-01 + -6.247783756272571e-01 + -6.246024042025771e-01 + -6.244242378628240e-01 + -6.242438848129136e-01 + -6.240613535991787e-01 + -6.238766528797192e-01 + -6.236897908519111e-01 + -6.235007757894835e-01 + -6.233096161276966e-01 + -6.231163203935827e-01 + -6.229208970207127e-01 + -6.227233543185018e-01 + -6.225237005131427e-01 + -6.223219439896936e-01 + -6.221180932821515e-01 + -6.219121568092019e-01 + -6.217041429518334e-01 + -6.214940600654550e-01 + -6.212819164164759e-01 + -6.210677203231969e-01 + -6.208514802076882e-01 + -6.206332045396580e-01 + -6.204129016762088e-01 + -6.201905798335827e-01 + -6.199662474146647e-01 + -6.197399127976954e-01 + -6.195115842446862e-01 + -6.192812702436963e-01 + -6.190489791767655e-01 + -6.188147191241502e-01 + -6.185784984898128e-01 + -6.183403256742428e-01 + -6.181002088023494e-01 + -6.178581563548247e-01 + -6.176141767575239e-01 + -6.173682779492388e-01 + -6.171204683326561e-01 + -6.168707564823446e-01 + -6.166191506410910e-01 + -6.163656588303806e-01 + -6.161102891648960e-01 + -6.158530502595377e-01 + -6.155939503803246e-01 + -6.153329975648972e-01 + -6.150702000825419e-01 + -6.148055662334609e-01 + -6.145391042808102e-01 + -6.142708224010276e-01 + -6.140007288452335e-01 + -6.137288318637003e-01 + -6.134551394181680e-01 + -6.131796597624336e-01 + -6.129024013716257e-01 + -6.126233721919256e-01 + -6.123425803085120e-01 + -6.120600340492245e-01 + -6.117757414641359e-01 + -6.114897106263320e-01 + -6.112019497520672e-01 + -6.109124671249474e-01 + -6.106212708396386e-01 + -6.103283687668304e-01 + -6.100337690977098e-01 + -6.097374799911853e-01 + -6.094395093910078e-01 + -6.091398653642833e-01 + -6.088385561024087e-01 + -6.085355898356886e-01 + -6.082309742898534e-01 + -6.079247173286892e-01 + -6.076168274335947e-01 + -6.073073125569597e-01 + -6.069961804304546e-01 + -6.066834389911383e-01 + -6.063690964791788e-01 + -6.060531610171422e-01 + -6.057356401425160e-01 + -6.054165419100932e-01 + -6.050958745176729e-01 + -6.047736455801236e-01 + -6.044498630713394e-01 + -6.041245351487873e-01 + -6.037976695799242e-01 + -6.034692741523835e-01 + -6.031393567367498e-01 + -6.028079252312161e-01 + -6.024749874110954e-01 + -6.021405510415967e-01 + -6.018046242357692e-01 + -6.014672148046522e-01 + -6.011283302871711e-01 + -6.007879786053585e-01 + -6.004461675660895e-01 + -6.001029047914931e-01 + -5.997581981158361e-01 + -5.994120553308485e-01 + -5.990644841299763e-01 + -5.987154923482985e-01 + -5.983650876334137e-01 + -5.980132773866208e-01 + -5.976600693793478e-01 + -5.973054714798371e-01 + -5.969494914365839e-01 + -5.965921366499265e-01 + -5.962334146660923e-01 + -5.958733334161985e-01 + -5.955119002909084e-01 + -5.951491227180785e-01 + -5.947850085981863e-01 + -5.944195652847630e-01 + -5.940528001366523e-01 + -5.936847210858313e-01 + -5.933153356463837e-01 + -5.929446511281147e-01 + -5.925726749957585e-01 + -5.921994146776245e-01 + -5.918248776317639e-01 + -5.914490714685531e-01 + -5.910720036664838e-01 + -5.906936815737919e-01 + -5.903141124838686e-01 + -5.899333037986367e-01 + -5.895512629817115e-01 + -5.891679973989596e-01 + -5.887835143677140e-01 + -5.883978211708401e-01 + -5.880109250637769e-01 + -5.876228334774148e-01 + -5.872335538851382e-01 + -5.868430932520374e-01 + -5.864514587624869e-01 + -5.860586578978172e-01 + -5.856646978273519e-01 + -5.852695857497323e-01 + -5.848733289413443e-01 + -5.844759343592291e-01 + -5.840774091773326e-01 + -5.836777608879199e-01 + -5.832769964405170e-01 + -5.828751228494087e-01 + -5.824721474461222e-01 + -5.820680771414760e-01 + -5.816629188869962e-01 + -5.812566799399100e-01 + -5.808493672421570e-01 + -5.804409877894702e-01 + -5.800315488931496e-01 + -5.796210574409676e-01 + -5.792095201878247e-01 + -5.787969440874288e-01 + -5.783833362006023e-01 + -5.779687035684036e-01 + -5.775530530727403e-01 + -5.771363914738108e-01 + -5.767187255974381e-01 + -5.763000625573806e-01 + -5.758804091701334e-01 + -5.754597721176316e-01 + -5.750381583420940e-01 + -5.746155745735496e-01 + -5.741920274506414e-01 + -5.737675239291555e-01 + -5.733420708457294e-01 + -5.729156748671344e-01 + -5.724883426083383e-01 + -5.720600807791615e-01 + -5.716308961653045e-01 + -5.712007954599810e-01 + -5.707697852850102e-01 + -5.703378722272431e-01 + -5.699050629355835e-01 + -5.694713639828742e-01 + -5.690367818720566e-01 + -5.686013232951076e-01 + -5.681649948578290e-01 + -5.677278029894381e-01 + -5.672897541841998e-01 + -5.668508549514105e-01 + -5.664111117923113e-01 + -5.659705312703284e-01 + -5.655291198708162e-01 + -5.650868839171556e-01 + -5.646438297396282e-01 + -5.641999637601537e-01 + -5.637552925169101e-01 + -5.633098223391846e-01 + -5.628635595080524e-01 + -5.624165104013904e-01 + -5.619686812129524e-01 + -5.615200782186582e-01 + -5.610707080464411e-01 + -5.606205767194389e-01 + -5.601696901727680e-01 + -5.597180550627928e-01 + -5.592656777039943e-01 + -5.588125640834879e-01 + -5.583587201544192e-01 + -5.579041522213387e-01 + -5.574488666805684e-01 + -5.569928694014434e-01 + -5.565361664370690e-01 + -5.560787640439252e-01 + -5.556206683493946e-01 + -5.551618853326125e-01 + -5.547024208857518e-01 + -5.542422809960397e-01 + -5.537814718214656e-01 + -5.533199995563840e-01 + -5.528578699065892e-01 + -5.523950887012330e-01 + -5.519316620139326e-01 + -5.514675956847120e-01 + -5.510028956792654e-01 + -5.505375681122012e-01 + -5.500716185256428e-01 + -5.496050526609592e-01 + -5.491378767346244e-01 + -5.486700964364043e-01 + -5.482017173715276e-01 + -5.477327453596050e-01 + -5.472631862648399e-01 + -5.467930458019109e-01 + -5.463223294669347e-01 + -5.458510432287255e-01 + -5.453791929736209e-01 + -5.449067840000759e-01 + -5.444338218966174e-01 + -5.439603123952597e-01 + -5.434862611282417e-01 + -5.430116738240560e-01 + -5.425365561436022e-01 + -5.420609134355956e-01 + -5.415847511352451e-01 + -5.411080748136494e-01 + -5.406308901525899e-01 + -5.401532026526268e-01 + -5.396750177177082e-01 + -5.391963408895222e-01 + -5.387171774649071e-01 + -5.382375326730170e-01 + -5.377574122460893e-01 + -5.372768215524759e-01 + -5.367957656717409e-01 + -5.363142502106338e-01 + -5.358322806031541e-01 + -5.353498619928253e-01 + -5.348669995911720e-01 + -5.343836987381033e-01 + -5.338999648334884e-01 + -5.334158029976483e-01 + -5.329312184607295e-01 + -5.324462166033185e-01 + -5.319608023124877e-01 + -5.314749807283198e-01 + -5.309887574568507e-01 + -5.305021373834015e-01 + -5.300151254489873e-01 + -5.295277270550899e-01 + -5.290399471460621e-01 + -5.285517906644440e-01 + -5.280632628772480e-01 + -5.275743687930865e-01 + -5.270851133485194e-01 + -5.265955015863814e-01 + -5.261055383771222e-01 + -5.256152286457003e-01 + -5.251245776074701e-01 + -5.246335901741112e-01 + -5.241422711040373e-01 + -5.236506252667474e-01 + -5.231586574906982e-01 + -5.226663726352896e-01 + -5.221737757253558e-01 + -5.216808715970676e-01 + -5.211876649797802e-01 + -5.206941607382560e-01 + -5.202003635069621e-01 + -5.197062778404161e-01 + -5.192119087096243e-01 + -5.187172609937223e-01 + -5.182223393579939e-01 + -5.177271482807863e-01 + -5.172316923981860e-01 + -5.167359765148800e-01 + -5.162400053033168e-01 + -5.157437833544083e-01 + -5.152473152222008e-01 + -5.147506055161414e-01 + -5.142536587718484e-01 + -5.137564794429633e-01 + -5.132590721404230e-01 + -5.127614414610688e-01 + -5.122635918987255e-01 + -5.117655278912282e-01 + -5.112672538418732e-01 + -5.107687741570007e-01 + -5.102700934318621e-01 + -5.097712161511054e-01 + -5.092721464952894e-01 + -5.087728887586368e-01 + -5.082734473837237e-01 + -5.077738269224511e-01 + -5.072740315773641e-01 + -5.067740655070005e-01 + -5.062739331645890e-01 + -5.057736389339202e-01 + -5.052731870571522e-01 + -5.047725816027976e-01 + -5.042718267556677e-01 + -5.037709267723895e-01 + -5.032698858620083e-01 + -5.027687082997551e-01 + -5.022673983228978e-01 + -5.017659599138892e-01 + -5.012643972224838e-01 + -5.007627144504877e-01 + -5.002609154317549e-01 + -4.997590043686060e-01 + -4.992569856498065e-01 + -4.987548629163329e-01 + -4.982526401066572e-01 + -4.977503215591422e-01 + -4.972479113357710e-01 + -4.967454132608579e-01 + -4.962428310876830e-01 + -4.957401690448965e-01 + -4.952374311333114e-01 + -4.947346209581790e-01 + -4.942317423902789e-01 + -4.937287995168010e-01 + -4.932257964768885e-01 + -4.927227367709692e-01 + -4.922196239985463e-01 + -4.917164622446805e-01 + -4.912132554897460e-01 + -4.907100074652099e-01 + -4.902067216434476e-01 + -4.897034018910860e-01 + -4.892000521396699e-01 + -4.886966760659724e-01 + -4.881932772071136e-01 + -4.876898592264887e-01 + -4.871864261030248e-01 + -4.866829812293292e-01 + -4.861795280147214e-01 + -4.856760706607693e-01 + -4.851726126266216e-01 + -4.846691571189501e-01 + -4.841657080652781e-01 + -4.836622690168214e-01 + -4.831588433295234e-01 + -4.826554347812969e-01 + -4.821520468729375e-01 + -4.816486828820545e-01 + -4.811453462713459e-01 + -4.806420406166251e-01 + -4.801387695127853e-01 + -4.796355363816449e-01 + -4.791323444815042e-01 + -4.786291970695780e-01 + -4.781260978727254e-01 + -4.776230503252043e-01 + -4.771200574973888e-01 + -4.766171228253449e-01 + -4.761142497486388e-01 + -4.756114415594656e-01 + -4.751087014547341e-01 + -4.746060327035595e-01 + -4.741034386828772e-01 + -4.736009226286348e-01 + -4.730984877717556e-01 + -4.725961373913972e-01 + -4.720938746127822e-01 + -4.715917026117559e-01 + -4.710896247171748e-01 + -4.705876440070008e-01 + -4.700857635192827e-01 + -4.695839864443119e-01 + -4.690823160197067e-01 + -4.685807553687465e-01 + -4.680793073815264e-01 + -4.675779752270572e-01 + -4.670767621237579e-01 + -4.665756710130068e-01 + -4.660747048828000e-01 + -4.655738667469987e-01 + -4.650731595624170e-01 + -4.645725864569897e-01 + -4.640721505529091e-01 + -4.635718546060059e-01 + -4.630717014390969e-01 + -4.625716940204364e-01 + -4.620718354412200e-01 + -4.615721285948061e-01 + -4.610725762550177e-01 + -4.605731814392849e-01 + -4.600739469669758e-01 + -4.595748755034438e-01 + -4.590759700613133e-01 + -4.585772335293120e-01 + -4.580786685902926e-01 + -4.575802780165928e-01 + -4.570820645542124e-01 + -4.565840309327809e-01 + -4.560861801183225e-01 + -4.555885148408127e-01 + -4.550910375242214e-01 + -4.545937511574892e-01 + -4.540966585092119e-01 + -4.535997618400510e-01 + -4.531030641427475e-01 + -4.526065682230286e-01 + -4.521102761991050e-01 + -4.516141909960451e-01 + -4.511183155232459e-01 + -4.506226519976986e-01 + -4.501272029129367e-01 + -4.496319709853875e-01 + -4.491369589904647e-01 + -4.486421693813144e-01 + -4.481476045149588e-01 + -4.476532669406306e-01 + -4.471591591812127e-01 + -4.466652837454304e-01 + -4.461716431800687e-01 + -4.456782399407630e-01 + -4.451850764283579e-01 + -4.446921550770006e-01 + -4.441994783152980e-01 + -4.437070485743053e-01 + -4.432148683148817e-01 + -4.427229399164072e-01 + -4.422312656936392e-01 + -4.417398479943503e-01 + -4.412486891611525e-01 + -4.407577915365379e-01 + -4.402671575060104e-01 + -4.397767893532367e-01 + -4.392866892910770e-01 + -4.387968597340107e-01 + -4.383073029681190e-01 + -4.378180210879689e-01 + -4.373290163087382e-01 + -4.368402909924953e-01 + -4.363518475687816e-01 + -4.358636880897754e-01 + -4.353758146064535e-01 + -4.348882293452391e-01 + -4.344009344375495e-01 + -4.339139321041776e-01 + -4.334272247184532e-01 + -4.329408142509990e-01 + -4.324547026649819e-01 + -4.319688922210647e-01 + -4.314833850702666e-01 + -4.309981832317592e-01 + -4.305132886299618e-01 + -4.300287034407881e-01 + -4.295444298858639e-01 + -4.290604699557538e-01 + -4.285768254794737e-01 + -4.280934983815344e-01 + -4.276104909880938e-01 + -4.271278053251724e-01 + -4.266454431999359e-01 + -4.261634065006114e-01 + -4.256816972235624e-01 + -4.252003173934318e-01 + -4.247192689049444e-01 + -4.242385536499166e-01 + -4.237581735472888e-01 + -4.232781305399061e-01 + -4.227984264773803e-01 + -4.223190631457318e-01 + -4.218400424415704e-01 + -4.213613663598799e-01 + -4.208830368540804e-01 + -4.204050553934426e-01 + -4.199274237890383e-01 + -4.194501442515862e-01 + -4.189732183034799e-01 + -4.184966476302857e-01 + -4.180204343198091e-01 + -4.175445800025869e-01 + -4.170690862458790e-01 + -4.165939547960728e-01 + -4.161191875920802e-01 + -4.156447863485650e-01 + -4.151707524172177e-01 + -4.146970878143395e-01 + -4.142237944432959e-01 + -4.137508735370036e-01 + -4.132783267358912e-01 + -4.128061559031381e-01 + -4.123343628419361e-01 + -4.118629489726368e-01 + -4.113919157251955e-01 + -4.109212649651476e-01 + -4.104509983224866e-01 + -4.099811172669397e-01 + -4.095116233202941e-01 + -4.090425181490535e-01 + -4.085738034100841e-01 + -4.081054804950061e-01 + -4.076375508831032e-01 + -4.071700161671795e-01 + -4.067028779692610e-01 + -4.062361376606066e-01 + -4.057697965353959e-01 + -4.053038563335837e-01 + -4.048383186645677e-01 + -4.043731849141807e-01 + -4.039084564103662e-01 + -4.034441345521896e-01 + -4.029802208230617e-01 + -4.025167167043049e-01 + -4.020536236099443e-01 + -4.015909428779320e-01 + -4.011286758375757e-01 + -4.006668238996902e-01 + -4.002053885607212e-01 + -3.997443712200008e-01 + -3.992837731698375e-01 + -3.988235956310492e-01 + -3.983638399923307e-01 + -3.979045076012857e-01 + -3.974455996644362e-01 + -3.969871175556028e-01 + -3.965290626455606e-01 + -3.960714361699136e-01 + -3.956142393772600e-01 + -3.951574735515524e-01 + -3.947011399985758e-01 + -3.942452398354794e-01 + -3.937897742524872e-01 + -3.933347447660869e-01 + -3.928801524442024e-01 + -3.924259983101159e-01 + -3.919722839283850e-01 + -3.915190103656777e-01 + -3.910661784756895e-01 + -3.906137895655892e-01 + -3.901618450499643e-01 + -3.897103461604648e-01 + -3.892592935529919e-01 + -3.888086884121152e-01 + -3.883585322771145e-01 + -3.879088261485191e-01 + -3.874595710701922e-01 + -3.870107681556456e-01 + -3.865624182556531e-01 + -3.861145225228043e-01 + -3.856670823544472e-01 + -3.852200986473037e-01 + -3.847735723987576e-01 + -3.843275047747315e-01 + -3.838818965026468e-01 + -3.834367486164244e-01 + -3.829920625791138e-01 + -3.825478392535004e-01 + -3.821040794322394e-01 + -3.816607841213338e-01 + -3.812179544462010e-01 + -3.807755914230820e-01 + -3.803336958584798e-01 + -3.798922686597118e-01 + -3.794513108818827e-01 + -3.790108236907996e-01 + -3.785708078449803e-01 + -3.781312640889848e-01 + -3.776921934895628e-01 + -3.772535969260590e-01 + -3.768154752452403e-01 + -3.763778294637203e-01 + -3.759406605249527e-01 + -3.755039692439986e-01 + -3.750677562951532e-01 + -3.746320226741715e-01 + -3.741967693787305e-01 + -3.737619968727901e-01 + -3.733277061470673e-01 + -3.728938983949728e-01 + -3.724605741247380e-01 + -3.720277341192338e-01 + -3.715953793429491e-01 + -3.711635103186269e-01 + -3.707321278978636e-01 + -3.703012331728173e-01 + -3.698708267439747e-01 + -3.694409092657609e-01 + -3.690114815572269e-01 + -3.685825444178367e-01 + -3.681540985405766e-01 + -3.677261445488677e-01 + -3.672986832474148e-01 + -3.668717154245260e-01 + -3.664452417818624e-01 + -3.660192630178876e-01 + -3.655937798167319e-01 + -3.651687928442244e-01 + -3.647443027770453e-01 + -3.643203103057334e-01 + -3.638968161236534e-01 + -3.634738208501973e-01 + -3.630513251204181e-01 + -3.626293296340570e-01 + -3.622078349959966e-01 + -3.617868418102546e-01 + -3.613663507559756e-01 + -3.609463624258993e-01 + -3.605268773947004e-01 + -3.601078962972172e-01 + -3.596894197319259e-01 + -3.592714482724653e-01 + -3.588539824938156e-01 + -3.584370229705016e-01 + -3.580205702765974e-01 + -3.576046249835235e-01 + -3.571891876270012e-01 + -3.567742587321382e-01 + -3.563598388637925e-01 + -3.559459285557617e-01 + -3.555325283179373e-01 + -3.551196386794110e-01 + -3.547072601423791e-01 + -3.542953931967586e-01 + -3.538840383835105e-01 + -3.534731961849680e-01 + -3.530628670336623e-01 + -3.526530514374770e-01 + -3.522437498876279e-01 + -3.518349628366106e-01 + -3.514266907403692e-01 + -3.510189340474827e-01 + -3.506116931966672e-01 + -3.502049686305037e-01 + -3.497987607886671e-01 + -3.493930701015490e-01 + -3.489878969787067e-01 + -3.485832418243141e-01 + -3.481791050461803e-01 + -3.477754870557839e-01 + -3.473723882547367e-01 + -3.469698090253131e-01 + -3.465677497415546e-01 + -3.461662107762984e-01 + -3.457651925045610e-01 + -3.453646952920019e-01 + -3.449647194961470e-01 + -3.445652654674211e-01 + -3.441663335489293e-01 + -3.437679240760669e-01 + -3.433700373751777e-01 + -3.429726737709668e-01 + -3.425758335909973e-01 + -3.421795171685511e-01 + -3.417837248082679e-01 + -3.413884567949557e-01 + -3.409937134173290e-01 + -3.405994949798623e-01 + -3.402058017865278e-01 + -3.398126341027504e-01 + -3.394199921921239e-01 + -3.390278763247643e-01 + -3.386362867748747e-01 + -3.382452237948665e-01 + -3.378546876227794e-01 + -3.374646785249709e-01 + -3.370751967392704e-01 + -3.366862424749215e-01 + -3.362978159833941e-01 + -3.359099174981644e-01 + -3.355225472182573e-01 + -3.351357053498810e-01 + -3.347493921057998e-01 + -3.343636076973308e-01 + -3.339783523006465e-01 + -3.335936261089775e-01 + -3.332094293460974e-01 + -3.328257621547543e-01 + -3.324426246881435e-01 + -3.320600171619409e-01 + -3.316779397280902e-01 + -3.312963925265998e-01 + -3.309153757279716e-01 + -3.305348894653861e-01 + -3.301549338737799e-01 + -3.297755091265357e-01 + -3.293966153413448e-01 + -3.290182526215280e-01 + -3.286404211114115e-01 + -3.282631209285871e-01 + -3.278863521751846e-01 + -3.275101149642331e-01 + -3.271344093953196e-01 + -3.267592355617253e-01 + -3.263845935667566e-01 + -3.260104834866909e-01 + -3.256369053882101e-01 + -3.252638593756906e-01 + -3.248913455268053e-01 + -3.245193638907094e-01 + -3.241479145199382e-01 + -3.237769974872735e-01 + -3.234066128661293e-01 + -3.230367606622389e-01 + -3.226674409186036e-01 + -3.222986537192250e-01 + -3.219303990783447e-01 + -3.215626770146125e-01 + -3.211954875680534e-01 + -3.208288307426270e-01 + -3.204627065455645e-01 + -3.200971150001409e-01 + -3.197320561103191e-01 + -3.193675298795836e-01 + -3.190035363166080e-01 + -3.186400754009213e-01 + -3.182771471114187e-01 + -3.179147514432106e-01 + -3.175528883799994e-01 + -3.171915578921511e-01 + -3.168307599394173e-01 + -3.164704945026028e-01 + -3.161107615528752e-01 + -3.157515610223091e-01 + -3.153928928534279e-01 + -3.150347570035595e-01 + -3.146771534412893e-01 + -3.143200821026652e-01 + -3.139635429048980e-01 + -3.136075357713601e-01 + -3.132520606345795e-01 + -3.128971174301287e-01 + -3.125427060850263e-01 + -3.121888265003789e-01 + -3.118354785699559e-01 + -3.114826622209773e-01 + -3.111303773636806e-01 + -3.107786238863177e-01 + -3.104274016699458e-01 + -3.100767106006651e-01 + -3.097265505731036e-01 + -3.093769214901858e-01 + -3.090278232197667e-01 + -3.086792556057311e-01 + -3.083312185528201e-01 + -3.079837119302323e-01 + -3.076367355606988e-01 + -3.072902893338402e-01 + -3.069443731087555e-01 + -3.065989866918071e-01 + -3.062541299629242e-01 + -3.059098027895394e-01 + -3.055660049841727e-01 + -3.052227363624680e-01 + -3.048799967605036e-01 + -3.045377860349815e-01 + -3.041961039937703e-01 + -3.038549504461246e-01 + -3.035143252370935e-01 + -3.031742281687436e-01 + -3.028346590287212e-01 + -3.024956176228422e-01 + -3.021571037727226e-01 + -3.018191172891879e-01 + -3.014816579447884e-01 + -3.011447255196590e-01 + -3.008083198102758e-01 + -3.004724406299011e-01 + -3.001370877400161e-01 + -2.998022608844934e-01 + -2.994679598576119e-01 + -2.991341844426006e-01 + -2.988009344054493e-01 + -2.984682095047237e-01 + -2.981360094999961e-01 + -2.978043341494513e-01 + -2.974731831997393e-01 + -2.971425563888731e-01 + -2.968124534589884e-01 + -2.964828741880918e-01 + -2.961538183196636e-01 + -2.958252855581221e-01 + -2.954972756291568e-01 + -2.951697882690829e-01 + -2.948428232168150e-01 + -2.945163801997789e-01 + -2.941904589349781e-01 + -2.938650591314966e-01 + -2.935401805013078e-01 + -2.932158227514122e-01 + -2.928919855851135e-01 + -2.925686687341852e-01 + -2.922458719001491e-01 + -2.919235947316832e-01 + -2.916018369508684e-01 + -2.912805982685433e-01 + -2.909598783275820e-01 + -2.906396768390501e-01 + -2.903199935181080e-01 + -2.900008280188033e-01 + -2.896821799916231e-01 + -2.893640491090957e-01 + -2.890464350819901e-01 + -2.887293375718574e-01 + -2.884127562142981e-01 + -2.880966906629407e-01 + -2.877811406014185e-01 + -2.874661057081589e-01 + -2.871515856017081e-01 + -2.868375799224188e-01 + -2.865240883310016e-01 + -2.862111104788733e-01 + -2.858986460098822e-01 + -2.855866945593247e-01 + -2.852752557499685e-01 + -2.849643292069009e-01 + -2.846539145659956e-01 + -2.843440114851778e-01 + -2.840346195818731e-01 + -2.837257384382189e-01 + -2.834173676812886e-01 + -2.831095069534547e-01 + -2.828021558855677e-01 + -2.824953140398479e-01 + -2.821889810170294e-01 + -2.818831564761255e-01 + -2.815778399984394e-01 + -2.812730311718642e-01 + -2.809687296216254e-01 + -2.806649349155874e-01 + -2.803616466281044e-01 + -2.800588643758425e-01 + -2.797565877594176e-01 + -2.794548163592918e-01 + -2.791535497376408e-01 + -2.788527874670974e-01 + -2.785525291296920e-01 + -2.782527743138438e-01 + -2.779535226034689e-01 + -2.776547735631448e-01 + -2.773565267276963e-01 + -2.770587816777879e-01 + -2.767615379983304e-01 + -2.764647952191276e-01 + -2.761685529026718e-01 + -2.758728106207560e-01 + -2.755775679024411e-01 + -2.752828243050798e-01 + -2.749885793975552e-01 + -2.746948327088052e-01 + -2.744015837838452e-01 + -2.741088321749212e-01 + -2.738165773969221e-01 + -2.735248189792139e-01 + -2.732335564721672e-01 + -2.729427894286903e-01 + -2.726525173657923e-01 + -2.723627397775934e-01 + -2.720734562117226e-01 + -2.717846661993187e-01 + -2.714963692431568e-01 + -2.712085648712142e-01 + -2.709212526021956e-01 + -2.706344319386959e-01 + -2.703481024077038e-01 + -2.700622635195931e-01 + -2.697769147573882e-01 + -2.694920556414950e-01 + -2.692076856844960e-01 + -2.689238043678598e-01 + -2.686404111894522e-01 + -2.683575056539274e-01 + -2.680750872618156e-01 + -2.677931554956217e-01 + -2.675117098420171e-01 + -2.672307498062658e-01 + -2.669502748541435e-01 + -2.666702844564393e-01 + -2.663907781339158e-01 + -2.661117553567487e-01 + -2.658332155842312e-01 + -2.655551583220328e-01 + -2.652775830228958e-01 + -2.650004891310402e-01 + -2.647238761635896e-01 + -2.644477435849875e-01 + -2.641720908275026e-01 + -2.638969173638899e-01 + -2.636222226679477e-01 + -2.633480062028563e-01 + -2.630742674151484e-01 + -2.628010057675256e-01 + -2.625282207270022e-01 + -2.622559117157733e-01 + -2.619840781930577e-01 + -2.617127196438671e-01 + -2.614418354712815e-01 + -2.611714251171109e-01 + -2.609014880694051e-01 + -2.606320237300626e-01 + -2.603630315312080e-01 + -2.600945109576975e-01 + -2.598264614192900e-01 + -2.595588823272051e-01 + -2.592917731268140e-01 + -2.590251332515323e-01 + -2.587589621335352e-01 + -2.584932592080277e-01 + -2.582280238899204e-01 + -2.579632555996659e-01 + -2.576989537753064e-01 + -2.574351178135512e-01 + -2.571717471205571e-01 + -2.569088411498421e-01 + -2.566463993032694e-01 + -2.563844209736399e-01 + -2.561229055922761e-01 + -2.558618525664796e-01 + -2.556012613001373e-01 + -2.553411312228936e-01 + -2.550814617199114e-01 + -2.548222521633088e-01 + -2.545635019702024e-01 + -2.543052105636615e-01 + -2.540473773489130e-01 + -2.537900016856341e-01 + -2.535330829668063e-01 + -2.532766206092137e-01 + -2.530206140025920e-01 + -2.527650625373169e-01 + -2.525099656058339e-01 + -2.522553225882911e-01 + -2.520011328519368e-01 + -2.517473957689335e-01 + -2.514941107682424e-01 + -2.512412772287477e-01 + -2.509888944763962e-01 + -2.507369619085763e-01 + -2.504854789235316e-01 + -2.502344448942996e-01 + -2.499838591881081e-01 + -2.497337211675947e-01 + -2.494840301941274e-01 + -2.492347856449565e-01 + -2.489859868896926e-01 + -2.487376332816026e-01 + -2.484897241934407e-01 + -2.482422589923619e-01 + -2.479952370263670e-01 + -2.477486576676466e-01 + -2.475025202765806e-01 + -2.472568241776227e-01 + -2.470115687463755e-01 + -2.467667533575219e-01 + -2.465223773319763e-01 + -2.462784400223504e-01 + -2.460349407926405e-01 + -2.457918789841980e-01 + -2.455492539346369e-01 + -2.453070649885519e-01 + -2.450653115068263e-01 + -2.448239928212929e-01 + -2.445831082525867e-01 + -2.443426571517872e-01 + -2.441026388729581e-01 + -2.438630527595843e-01 + -2.436238981283992e-01 + -2.433851743000419e-01 + -2.431468806082007e-01 + -2.429090164035606e-01 + -2.426715810065056e-01 + -2.424345737214870e-01 + -2.421979939156839e-01 + -2.419618409122474e-01 + -2.417261139893861e-01 + -2.414908125047008e-01 + -2.412559357926221e-01 + -2.410214831428485e-01 + -2.407874538901436e-01 + -2.405538473594189e-01 + -2.403206628448788e-01 + -2.400878996494245e-01 + -2.398555571012901e-01 + -2.396236345489386e-01 + -2.393921312730178e-01 + -2.391610465589564e-01 + -2.389303797400675e-01 + -2.387001301206918e-01 + -2.384702970040557e-01 + -2.382408797142012e-01 + -2.380118775445049e-01 + -2.377832897784107e-01 + -2.375551157141706e-01 + -2.373273546676602e-01 + -2.371000059435911e-01 + -2.368730688080822e-01 + -2.366465425799626e-01 + -2.364204265795865e-01 + -2.361947200488833e-01 + -2.359694222928865e-01 + -2.357445326362645e-01 + -2.355200503199650e-01 + -2.352959746331166e-01 + -2.350723049000333e-01 + -2.348490404054174e-01 + -2.346261804119323e-01 + -2.344037241869703e-01 + -2.341816710532240e-01 + -2.339600202844186e-01 + -2.337387711161095e-01 + -2.335179228570654e-01 + -2.332974748051559e-01 + -2.330774262250223e-01 + -2.328577763695832e-01 + -2.326385245095027e-01 + -2.324196699339893e-01 + -2.322012119071908e-01 + -2.319831496985562e-01 + -2.317654825913850e-01 + -2.315482098501277e-01 + -2.313313307350805e-01 + -2.311148445095759e-01 + -2.308987504304352e-01 + -2.306830477605995e-01 + -2.304677357746768e-01 + -2.302528137313455e-01 + -2.300382808821649e-01 + -2.298241364802842e-01 + -2.296103797849810e-01 + -2.293970100645507e-01 + -2.291840265929282e-01 + -2.289714285853380e-01 + -2.287592152687787e-01 + -2.285473859575702e-01 + -2.283359398767679e-01 + -2.281248762354934e-01 + -2.279141943457151e-01 + -2.277038934347241e-01 + -2.274939727028900e-01 + -2.272844314557521e-01 + -2.270752689260884e-01 + -2.268664843063303e-01 + -2.266580768713468e-01 + -2.264500458690802e-01 + -2.262423905203003e-01 + -2.260351100742427e-01 + -2.258282037663114e-01 + -2.256216708189812e-01 + -2.254155104759721e-01 + -2.252097219699820e-01 + -2.250043045201664e-01 + -2.247992573593203e-01 + -2.245945797283117e-01 + -2.243902708632074e-01 + -2.241863299547213e-01 + -2.239827562297785e-01 + -2.237795489631809e-01 + -2.235767073479459e-01 + -2.233742305913306e-01 + -2.231721179508258e-01 + -2.229703686190215e-01 + -2.227689817967141e-01 + -2.225679567331226e-01 + -2.223672926389324e-01 + -2.221669887137792e-01 + -2.219670441735496e-01 + -2.217674582593449e-01 + -2.215682301863681e-01 + -2.213693591068690e-01 + -2.211708442449674e-01 + -2.209726848493868e-01 + -2.207748801280919e-01 + -2.205774292618204e-01 + -2.203803314334422e-01 + -2.201835858632719e-01 + -2.199871917828554e-01 + -2.197911484006530e-01 + -2.195954548584606e-01 + -2.194001103587555e-01 + -2.192051141421317e-01 + -2.190104654040938e-01 + -2.188161633272981e-01 + -2.186222070944807e-01 + -2.184285959003400e-01 + -2.182353289399314e-01 + -2.180424054040691e-01 + -2.178498244760091e-01 + -2.176575853577229e-01 + -2.174656872563868e-01 + -2.172741293153170e-01 + -2.170829107184905e-01 + -2.168920306960583e-01 + -2.167014883907840e-01 + -2.165112829716549e-01 + -2.163214136638050e-01 + -2.161318796380734e-01 + -2.159426800456078e-01 + -2.157538140457635e-01 + -2.155652808465100e-01 + -2.153770796378261e-01 + -2.151892095617934e-01 + -2.150016698096599e-01 + -2.148144595574814e-01 + -2.146275779264766e-01 + -2.144410241083473e-01 + -2.142547972973645e-01 + -2.140688966286696e-01 + -2.138833212713278e-01 + -2.136980704068839e-01 + -2.135131431962469e-01 + -2.133285387811797e-01 + -2.131442563097479e-01 + -2.129602949644751e-01 + -2.127766538888946e-01 + -2.125933322205115e-01 + -2.124103291538361e-01 + -2.122276438425608e-01 + -2.120452754131807e-01 + -2.118632230196053e-01 + -2.116814858091140e-01 + -2.115000629262062e-01 + -2.113189535366684e-01 + -2.111381567835468e-01 + -2.109576717897184e-01 + -2.107774976942802e-01 + -2.105976336477213e-01 + -2.104180788038142e-01 + -2.102388322993181e-01 + -2.100598932684242e-01 + -2.098812608470688e-01 + -2.097029341689293e-01 + -2.095249123662445e-01 + -2.093471945702010e-01 + -2.091697799107427e-01 + -2.089926675162990e-01 + -2.088158565139439e-01 + -2.086393460309292e-01 + -2.084631351904399e-01 + -2.082872231124364e-01 + -2.081116089361562e-01 + -2.079362917906518e-01 + -2.077612707758083e-01 + -2.075865450013143e-01 + -2.074121135936494e-01 + -2.072379756933602e-01 + -2.070641303864229e-01 + -2.068905767613353e-01 + -2.067173139701657e-01 + -2.065443411403108e-01 + -2.063716573678470e-01 + -2.061992617242399e-01 + -2.060271533191409e-01 + -2.058553312792487e-01 + -2.056837947057731e-01 + -2.055125426973447e-01 + -2.053415743575506e-01 + -2.051708887985432e-01 + -2.050004850901530e-01 + -2.048303622987561e-01 + -2.046605195888223e-01 + -2.044909560501713e-01 + -2.043216707137636e-01 + -2.041526627003059e-01 + -2.039839311053935e-01 + -2.038154749924674e-01 + -2.036472934779214e-01 + -2.034793856435669e-01 + -2.033117505334730e-01 + -2.031443872603400e-01 + -2.029772949053144e-01 + -2.028104725040109e-01 + -2.026439191805672e-01 + -2.024776340229360e-01 + -2.023116160442759e-01 + -2.021458643362796e-01 + -2.019803779931268e-01 + -2.018151560674621e-01 + -2.016501976152565e-01 + -2.014855017030598e-01 + -2.013210674074579e-01 + -2.011568937830132e-01 + -2.009929798869589e-01 + -2.008293247967324e-01 + -2.006659275530022e-01 + -2.005027871933542e-01 + -2.003399027889975e-01 + -2.001772733993469e-01 + -2.000148980648089e-01 + -1.998527758076494e-01 + -1.996909056937942e-01 + -1.995292867991256e-01 + -1.993679181495860e-01 + -1.992067987609143e-01 + -1.990459276660739e-01 + -1.988853039482369e-01 + -1.987249266385540e-01 + -1.985647947339026e-01 + -1.984049072747179e-01 + -1.982452632992336e-01 + -1.980858618372365e-01 + -1.979267019229292e-01 + -1.977677825816225e-01 + -1.976091028269504e-01 + -1.974506616652059e-01 + -1.972924581269546e-01 + -1.971344912595772e-01 + -1.969767600601777e-01 + -1.968192635197257e-01 + -1.966620006473419e-01 + -1.965049704914111e-01 + -1.963481720619957e-01 + -1.961916043159508e-01 + -1.960352662866058e-01 + -1.958791570023236e-01 + -1.957232754408347e-01 + -1.955676205736371e-01 + -1.954121914050787e-01 + -1.952569869811404e-01 + -1.951020062511957e-01 + -1.949472481743376e-01 + -1.947927118000400e-01 + -1.946383960967118e-01 + -1.944843000224015e-01 + -1.943304226010136e-01 + -1.941767627996486e-01 + -1.940233195719773e-01 + -1.938700919198527e-01 + -1.937170788011597e-01 + -1.935642791691659e-01 + -1.934116920404960e-01 + -1.932593163702813e-01 + -1.931071510855982e-01 + -1.929551951739442e-01 + -1.928034476111422e-01 + -1.926519073523142e-01 + -1.925005733427448e-01 + -1.923494445333268e-01 + -1.921985198850023e-01 + -1.920477983694047e-01 + -1.918972789099489e-01 + -1.917469604078139e-01 + -1.915968418647559e-01 + -1.914469222323946e-01 + -1.912972003977130e-01 + -1.911476753153419e-01 + -1.909983459354311e-01 + -1.908492111828614e-01 + -1.907002699990133e-01 + -1.905515213021572e-01 + -1.904029639829450e-01 + -1.902545969863778e-01 + -1.901064192518998e-01 + -1.899584296832387e-01 + -1.898106271909556e-01 + -1.896630106872466e-01 + -1.895155790805884e-01 + -1.893683312769490e-01 + -1.892212661839438e-01 + -1.890743827110565e-01 + -1.889276797429612e-01 + -1.887811561730439e-01 + -1.886348109311961e-01 + -1.884886428944042e-01 + -1.883426509295119e-01 + -1.881968339481026e-01 + -1.880511908244114e-01 + -1.879057204210790e-01 + -1.877604216379617e-01 + -1.876152933660684e-01 + -1.874703344759240e-01 + -1.873255438107255e-01 + -1.871809202288037e-01 + -1.870364626111082e-01 + -1.868921698587295e-01 + -1.867480408184902e-01 + -1.866040743068453e-01 + -1.864602692045282e-01 + -1.863166243684211e-01 + -1.861731386269271e-01 + -1.860298108368848e-01 + -1.858866398430710e-01 + -1.857436244746902e-01 + -1.856007635808946e-01 + -1.854580560069532e-01 + -1.853155005825300e-01 + -1.851730961153894e-01 + -1.850308414342497e-01 + -1.848887353926573e-01 + -1.847467767859671e-01 + -1.846049644137440e-01 + -1.844632971091011e-01 + -1.843217736893654e-01 + -1.841803929497542e-01 + -1.840391536710132e-01 + -1.838980546953601e-01 + -1.837570948428414e-01 + -1.836162728527662e-01 + -1.834755875142904e-01 + -1.833350376404768e-01 + -1.831946220322505e-01 + -1.830543394615971e-01 + -1.829141886951903e-01 + -1.827741685199023e-01 + -1.826342777082210e-01 + -1.824945150204152e-01 + -1.823548792146146e-01 + -1.822153690716325e-01 + -1.820759833652730e-01 + -1.819367208114371e-01 + -1.817975801678411e-01 + -1.816585602158104e-01 + -1.815196596908165e-01 + -1.813808773333636e-01 + -1.812422118861797e-01 + -1.811036620617022e-01 + -1.809652266051679e-01 + -1.808269042761388e-01 + -1.806886937510042e-01 + -1.805505937426575e-01 + -1.804126030135119e-01 + -1.802747202867512e-01 + -1.801369442562599e-01 + -1.799992736029428e-01 + -1.798617070428147e-01 + -1.797242432859927e-01 + -1.795868810229852e-01 + -1.794496189531687e-01 + -1.793124557648680e-01 + -1.791753901302353e-01 + -1.790384207459855e-01 + -1.789015462957270e-01 + -1.787647654308534e-01 + -1.786280768266134e-01 + -1.784914791546937e-01 + -1.783549710639760e-01 + -1.782185512276328e-01 + -1.780822183108111e-01 + -1.779459709418989e-01 + -1.778098077766785e-01 + -1.776737274641330e-01 + -1.775377286080068e-01 + -1.774018098685905e-01 + -1.772659699092733e-01 + -1.771302073149079e-01 + -1.769945207098710e-01 + -1.768589087303928e-01 + -1.767233699571559e-01 + -1.765879030229077e-01 + -1.764525065751527e-01 + -1.763171791703831e-01 + -1.761819193770276e-01 + -1.760467257991546e-01 + -1.759115970764966e-01 + -1.757765317826701e-01 + -1.756415284467932e-01 + -1.755065856823099e-01 + -1.753717020824757e-01 + -1.752368761936218e-01 + -1.751021065398607e-01 + -1.749673916979465e-01 + -1.748327302843573e-01 + -1.746981207950505e-01 + -1.745635617515470e-01 + -1.744290517410085e-01 + -1.742945892830799e-01 + -1.741601728915786e-01 + -1.740258011048612e-01 + -1.738914724532109e-01 + -1.737571854631234e-01 + -1.736229386541751e-01 + -1.734887304969607e-01 + -1.733545594900176e-01 + -1.732204242005106e-01 + -1.730863230847530e-01 + -1.729522545880760e-01 + -1.728182172369972e-01 + -1.726842095169024e-01 + -1.725502298924380e-01 + -1.724162768405715e-01 + -1.722823488297978e-01 + -1.721484443102564e-01 + -1.720145617082366e-01 + -1.718806995062888e-01 + -1.717468561876117e-01 + -1.716130301380271e-01 + -1.714792197950507e-01 + -1.713454236195253e-01 + -1.712116399980747e-01 + -1.710778673588311e-01 + -1.709441041583024e-01 + -1.708103487974718e-01 + -1.706765996579921e-01 + -1.705428551238503e-01 + -1.704091136122197e-01 + -1.702753735243250e-01 + -1.701416332337174e-01 + -1.700078910979654e-01 + -1.698741454939726e-01 + -1.697403948188084e-01 + -1.696066374424440e-01 + -1.694728717024124e-01 + -1.693390959182572e-01 + -1.692053084687103e-01 + -1.690715077127793e-01 + -1.689376919605925e-01 + -1.688038595533757e-01 + -1.686700088249354e-01 + -1.685361380772680e-01 + -1.684022456043037e-01 + -1.682683297240474e-01 + -1.681343887869522e-01 + -1.680004210524648e-01 + -1.678664247764668e-01 + -1.677323982879569e-01 + -1.675983398888628e-01 + -1.674642478421112e-01 + -1.673301203727337e-01 + -1.671959557470875e-01 + -1.670617522514179e-01 + -1.669275081523977e-01 + -1.667932216748827e-01 + -1.666588910302535e-01 + -1.665245144618999e-01 + -1.663900902261115e-01 + -1.662556165573334e-01 + -1.661210916150787e-01 + -1.659865136192500e-01 + -1.658518808205523e-01 + -1.657171913793817e-01 + -1.655824434869752e-01 + -1.654476353589082e-01 + -1.653127651402884e-01 + -1.651778310039089e-01 + -1.650428311475997e-01 + -1.649077636947325e-01 + -1.647726268054878e-01 + -1.646374186795111e-01 + -1.645021374143022e-01 + -1.643667811219276e-01 + -1.642313479645375e-01 + -1.640958360797542e-01 + -1.639602435821208e-01 + -1.638245685678920e-01 + -1.636888091342957e-01 + -1.635529633807896e-01 + -1.634170294056715e-01 + -1.632810052843662e-01 + -1.631448890987297e-01 + -1.630086789505001e-01 + -1.628723728914803e-01 + -1.627359689604526e-01 + -1.625994652175857e-01 + -1.624628597296842e-01 + -1.623261505411777e-01 + -1.621893356498993e-01 + -1.620524130844338e-01 + -1.619153808874262e-01 + -1.617782370829140e-01 + -1.616409796594323e-01 + -1.615036066042981e-01 + -1.613661159511956e-01 + -1.612285056749289e-01 + -1.610907737177844e-01 + -1.609529180644884e-01 + -1.608149367058714e-01 + -1.606768276166446e-01 + -1.605385887249777e-01 + -1.604002179666082e-01 + -1.602617132920370e-01 + -1.601230726507729e-01 + -1.599842939686116e-01 + -1.598453751511857e-01 + -1.597063141136520e-01 + -1.595671087574746e-01 + -1.594277569704320e-01 + -1.592882566576958e-01 + -1.591486057239582e-01 + -1.590088020577491e-01 + -1.588688434990599e-01 + -1.587287278927537e-01 + -1.585884531125515e-01 + -1.584480170419727e-01 + -1.583074175205078e-01 + -1.581666523320080e-01 + -1.580257193426469e-01 + -1.578846164090064e-01 + -1.577433413163997e-01 + -1.576018918624315e-01 + -1.574602658488709e-01 + -1.573184610699215e-01 + -1.571764753211041e-01 + -1.570343063929105e-01 + -1.568919520623428e-01 + -1.567494100904384e-01 + -1.566066782348808e-01 + -1.564637542612438e-01 + -1.563206358983480e-01 + -1.561773208679784e-01 + -1.560338069324230e-01 + -1.558900918260982e-01 + -1.557461732592160e-01 + -1.556020489404925e-01 + -1.554577165574562e-01 + -1.553131737930803e-01 + -1.551684183667380e-01 + -1.550234479797016e-01 + -1.548782603038531e-01 + -1.547328529851514e-01 + -1.545872236759721e-01 + -1.544413700402710e-01 + -1.542952897416497e-01 + -1.541489804232354e-01 + -1.540024397056934e-01 + -1.538556652055174e-01 + -1.537086545589509e-01 + -1.535614054107616e-01 + -1.534139153265976e-01 + -1.532661818894184e-01 + -1.531182027303390e-01 + -1.529699754364569e-01 + -1.528214975805129e-01 + -1.526727667337492e-01 + -1.525237804315604e-01 + -1.523745362382714e-01 + -1.522250317710374e-01 + -1.520752645246755e-01 + -1.519252320010430e-01 + -1.517749318043420e-01 + -1.516243614355856e-01 + -1.514735183783821e-01 + -1.513224001894709e-01 + -1.511710043669709e-01 + -1.510193283881065e-01 + -1.508673697644896e-01 + -1.507151259726486e-01 + -1.505625944726656e-01 + -1.504097727456887e-01 + -1.502566582737337e-01 + -1.501032485283334e-01 + -1.499495409558064e-01 + -1.497955329817901e-01 + -1.496412220312461e-01 + -1.494866055649385e-01 + -1.493316810218445e-01 + -1.491764458131949e-01 + -1.490208973395277e-01 + -1.488650330073115e-01 + -1.487088502321930e-01 + -1.485523464347014e-01 + -1.483955190026080e-01 + -1.482383652905619e-01 + -1.480808826638546e-01 + -1.479230685198502e-01 + -1.477649202713839e-01 + -1.476064352431592e-01 + -1.474476107543291e-01 + -1.472884441602761e-01 + -1.471289328556787e-01 + -1.469690741904771e-01 + -1.468088654425319e-01 + -1.466483039513407e-01 + -1.464873870643751e-01 + -1.463261120992439e-01 + -1.461644763685366e-01 + -1.460024771711030e-01 + -1.458401117873900e-01 + -1.456773775256328e-01 + -1.455142717039091e-01 + -1.453507916253095e-01 + -1.451869345373153e-01 + -1.450226976893540e-01 + -1.448580783981553e-01 + -1.446930739597145e-01 + -1.445276816274984e-01 + -1.443618986028185e-01 + -1.441957221635531e-01 + -1.440291496154044e-01 + -1.438621781832398e-01 + -1.436948050802729e-01 + -1.435270275400491e-01 + -1.433588428498931e-01 + -1.431902482406432e-01 + -1.430212409022274e-01 + -1.428518180756519e-01 + -1.426819769869911e-01 + -1.425117148424586e-01 + -1.423410288662751e-01 + -1.421699162875700e-01 + -1.419983743276740e-01 + -1.418264001727286e-01 + -1.416539910114460e-01 + -1.414811440470098e-01 + -1.413078564852965e-01 + -1.411341255423312e-01 + -1.409599484327010e-01 + -1.407853222965617e-01 + -1.406102443173973e-01 + -1.404347117561954e-01 + -1.402587217519092e-01 + -1.400822714659246e-01 + -1.399053581557436e-01 + -1.397279789611117e-01 + -1.395501310267636e-01 + -1.393718115937786e-01 + -1.391930178402762e-01 + -1.390137469173205e-01 + -1.388339959972602e-01 + -1.386537622953096e-01 + -1.384730430031857e-01 + -1.382918352262208e-01 + -1.381101361784074e-01 + -1.379279430940128e-01 + -1.377452530885734e-01 + -1.375620633453186e-01 + -1.373783710804598e-01 + -1.371941734475252e-01 + -1.370094676273606e-01 + -1.368242508215203e-01 + -1.366385202106050e-01 + -1.364522729969404e-01 + -1.362655063841710e-01 + -1.360782175127518e-01 + -1.358904035964053e-01 + -1.357020618930480e-01 + -1.355131895302153e-01 + -1.353237837054462e-01 + -1.351338416922692e-01 + -1.349433606493001e-01 + -1.347523377766847e-01 + -1.345607703467432e-01 + -1.343686555800670e-01 + -1.341759906744941e-01 + -1.339827728348106e-01 + -1.337889993407819e-01 + -1.335946674413715e-01 + -1.333997743261954e-01 + -1.332043172962129e-01 + -1.330082936252972e-01 + -1.328117004983506e-01 + -1.326145352418741e-01 + -1.324167951779929e-01 + -1.322184775207451e-01 + -1.320195795498869e-01 + -1.318200985870884e-01 + -1.316200319613715e-01 + -1.314193769770063e-01 + -1.312181309395709e-01 + -1.310162911860090e-01 + -1.308138550466099e-01 + -1.306108198680959e-01 + -1.304071830473609e-01 + -1.302029419358534e-01 + -1.299980938748928e-01 + -1.297926362720222e-01 + -1.295865665431496e-01 + -1.293798820977739e-01 + -1.291725803345192e-01 + -1.289646586840201e-01 + -1.287561146028010e-01 + -1.285469455426532e-01 + -1.283371489741077e-01 + -1.281267223855238e-01 + -1.279156632656401e-01 + -1.277039691180485e-01 + -1.274916374652222e-01 + -1.272786658468367e-01 + -1.270650518164191e-01 + -1.268507929437779e-01 + -1.266358868257778e-01 + -1.264203310530910e-01 + -1.262041232080785e-01 + -1.259872609212462e-01 + -1.257697418614985e-01 + -1.255515637216261e-01 + -1.253327241582721e-01 + -1.251132208452764e-01 + -1.248930515084944e-01 + -1.246722139029198e-01 + -1.244507057917270e-01 + -1.242285249387353e-01 + -1.240056691417677e-01 + -1.237821362222557e-01 + -1.235579240163024e-01 + -1.233330303641722e-01 + -1.231074531412701e-01 + -1.228811902909497e-01 + -1.226542397328350e-01 + -1.224265993926709e-01 + -1.221982672554952e-01 + -1.219692413178169e-01 + -1.217395195880366e-01 + -1.215091001037845e-01 + -1.212779809466277e-01 + -1.210461602256936e-01 + -1.208136360512357e-01 + -1.205804065871132e-01 + -1.203464700244819e-01 + -1.201118245085727e-01 + -1.198764682774020e-01 + -1.196403996473917e-01 + -1.194036168896808e-01 + -1.191661183059585e-01 + -1.189279022478277e-01 + -1.186889671039581e-01 + -1.184493112863093e-01 + -1.182089332317922e-01 + -1.179678314226111e-01 + -1.177260043675167e-01 + -1.174834505981953e-01 + -1.172401686820595e-01 + -1.169961572351099e-01 + -1.167514149230550e-01 + -1.165059404117411e-01 + -1.162597324012717e-01 + -1.160127896494247e-01 + -1.157651109471359e-01 + -1.155166951180050e-01 + -1.152675410245315e-01 + -1.150176475647009e-01 + -1.147670136740031e-01 + -1.145156383362403e-01 + -1.142635205942373e-01 + -1.140106595167702e-01 + -1.137570541746248e-01 + -1.135027037005393e-01 + -1.132476072885310e-01 + -1.129917641930528e-01 + -1.127351736954119e-01 + -1.124778350964029e-01 + -1.122197477241451e-01 + -1.119609110122396e-01 + -1.117013244465126e-01 + -1.114409874638995e-01 + -1.111798996306716e-01 + -1.109180606010562e-01 + -1.106554699641756e-01 + -1.103921273860412e-01 + -1.101280326261970e-01 + -1.098631854961093e-01 + -1.095975858385727e-01 + -1.093312335328026e-01 + -1.090641285282797e-01 + -1.087962708201439e-01 + -1.085276604456853e-01 + -1.082582975002112e-01 + -1.079881821487157e-01 + -1.077173146235393e-01 + -1.074456951780328e-01 + -1.071733241222459e-01 + -1.069002018428373e-01 + -1.066263287812705e-01 + -1.063517054311524e-01 + -1.060763323447030e-01 + -1.058002101349244e-01 + -1.055233394662503e-01 + -1.052457210591484e-01 + -1.049673557111256e-01 + -1.046882442747131e-01 + -1.044083876525769e-01 + -1.041277868396362e-01 + -1.038464428925467e-01 + -1.035643569070283e-01 + -1.032815300276830e-01 + -1.029979634724506e-01 + -1.027136585692167e-01 + -1.024286166734134e-01 + -1.021428391952729e-01 + -1.018563276648054e-01 + -1.015690836461885e-01 + -1.012811087487812e-01 + -1.009924046817547e-01 + -1.007029732152899e-01 + -1.004128161832720e-01 + -1.001219355157012e-01 + -9.983033318947014e-02 + -9.953801123789381e-02 + -9.924497181065381e-02 + -9.895121710675164e-02 + -9.865674937610269e-02 + -9.836157098451072e-02 + -9.806568435550449e-02 + -9.776909196067303e-02 + -9.747179635418697e-02 + -9.717380018935569e-02 + -9.687510621844479e-02 + -9.657571724434684e-02 + -9.627563612429342e-02 + -9.597486578738405e-02 + -9.567340928055243e-02 + -9.537126972794066e-02 + -9.506845031433311e-02 + -9.476495428226560e-02 + -9.446078497156121e-02 + -9.415594584893169e-02 + -9.385044042616277e-02 + -9.354427227181475e-02 + -9.323744504129654e-02 + -9.292996250412121e-02 + -9.262182850819620e-02 + -9.231304696021701e-02 + -9.200362185853247e-02 + -9.169355729461479e-02 + -9.138285746240042e-02 + -9.107152658866502e-02 + -9.075956898041553e-02 + -9.044698911371001e-02 + -9.013379148226228e-02 + -8.981998063663986e-02 + -8.950556130228651e-02 + -8.919053824746566e-02 + -8.887491629233073e-02 + -8.855870039130662e-02 + -8.824189556852820e-02 + -8.792450692262105e-02 + -8.760653968435946e-02 + -8.728799913331863e-02 + -8.696889060279582e-02 + -8.664921956673162e-02 + -8.632899159487925e-02 + -8.600821233560418e-02 + -8.568688750540578e-02 + -8.536502290181033e-02 + -8.504262441718942e-02 + -8.471969805751253e-02 + -8.439624991228166e-02 + -8.407228614692197e-02 + -8.374781300392073e-02 + -8.342283682562317e-02 + -8.309736406563741e-02 + -8.277140122021633e-02 + -8.244495489588025e-02 + -8.211803185128563e-02 + -8.179063884910803e-02 + -8.146278271646745e-02 + -8.113447041766966e-02 + -8.080570906396743e-02 + -8.047650581443898e-02 + -8.014686781276095e-02 + -7.981680240792462e-02 + -7.948631704884632e-02 + -7.915541916537581e-02 + -7.882411634928695e-02 + -7.849241630024972e-02 + -7.816032674199919e-02 + -7.782785552351333e-02 + -7.749501058768483e-02 + -7.716179991262426e-02 + -7.682823159405887e-02 + -7.649431382724470e-02 + -7.616005485767063e-02 + -7.582546305035900e-02 + -7.549054686796573e-02 + -7.515531479419155e-02 + -7.481977542018518e-02 + -7.448393744841550e-02 + -7.414780964186224e-02 + -7.381140084542565e-02 + -7.347471999131863e-02 + -7.313777608894645e-02 + -7.280057821330421e-02 + -7.246313551410177e-02 + -7.212545725749871e-02 + -7.178755277686714e-02 + -7.144943146088469e-02 + -7.111110278446059e-02 + -7.077257629326426e-02 + -7.043386160590276e-02 + -7.009496843792977e-02 + -6.975590657859251e-02 + -6.941668588038064e-02 + -6.907731623736572e-02 + -6.873780762436528e-02 + -6.839817013263073e-02 + -6.805841390025939e-02 + -6.771854911509186e-02 + -6.737858603607710e-02 + -6.703853501790490e-02 + -6.669840646610939e-02 + -6.635821080020089e-02 + -6.601795854049251e-02 + -6.567766029345612e-02 + -6.533732672933422e-02 + -6.499696856244534e-02 + -6.465659655384894e-02 + -6.431622152906083e-02 + -6.397585437117004e-02 + -6.363550601749234e-02 + -6.329518746487584e-02 + -6.295490977261127e-02 + -6.261468405232740e-02 + -6.227452144919842e-02 + -6.193443314782195e-02 + -6.159443038613483e-02 + -6.125452449175782e-02 + -6.091472682299209e-02 + -6.057504875634485e-02 + -6.023550170757411e-02 + -5.989609715178513e-02 + -5.955684662483948e-02 + -5.921776169220818e-02 + -5.887885392543541e-02 + -5.854013491232313e-02 + -5.820161634720029e-02 + -5.786330995026137e-02 + -5.752522743033200e-02 + -5.718738052319666e-02 + -5.684978102238282e-02 + -5.651244078415603e-02 + -5.617537160914179e-02 + -5.583858533460867e-02 + -5.550209389764803e-02 + -5.516590918758542e-02 + -5.483004310132478e-02 + -5.449450760284144e-02 + -5.415931467224975e-02 + -5.382447627285256e-02 + -5.349000433169809e-02 + -5.315591089010736e-02 + -5.282220800586091e-02 + -5.248890761304951e-02 + -5.215602173570349e-02 + -5.182356244333215e-02 + -5.149154173522678e-02 + -5.115997163165661e-02 + -5.082886416999516e-02 + -5.049823136495267e-02 + -5.016808523392447e-02 + -4.983843779429676e-02 + -4.950930104255546e-02 + -4.918068697018742e-02 + -4.885260756307724e-02 + -4.852507478656667e-02 + -4.819810059193260e-02 + -4.787169691654435e-02 + -4.754587567726797e-02 + -4.722064876717863e-02 + -4.689602805511645e-02 + -4.657202539266345e-02 + -4.624865260469157e-02 + -4.592592148337583e-02 + -4.560384379218360e-02 + -4.528243126408893e-02 + -4.496169559628109e-02 + -4.464164845065374e-02 + -4.432230145577399e-02 + -4.400366620090135e-02 + -4.368575422918912e-02 + -4.336857704568598e-02 + -4.305214611378011e-02 + -4.273647284209545e-02 + -4.242156859535529e-02 + -4.210744469338823e-02 + -4.179411239819886e-02 + -4.148158291999365e-02 + -4.116986741259326e-02 + -4.085897697584740e-02 + -4.054892265423421e-02 + -4.023971542131075e-02 + -3.993136619382251e-02 + -3.962388583123071e-02 + -3.931728511726146e-02 + -3.901157477126550e-02 + -3.870676544906659e-02 + -3.840286772630143e-02 + -3.809989211312446e-02 + -3.779784905219891e-02 + -3.749674889469364e-02 + -3.719660192057603e-02 + -3.689741833904486e-02 + -3.659920826728452e-02 + -3.630198174507707e-02 + -3.600574873447752e-02 + -3.571051910326670e-02 + -3.541630263528623e-02 + -3.512310902944081e-02 + -3.483094789226868e-02 + -3.453982873906083e-02 + -3.424976098893085e-02 + -3.396075396966352e-02 + -3.367281691959212e-02 + -3.338595897696143e-02 + -3.310018917253339e-02 + -3.281551644593574e-02 + -3.253194963945627e-02 + -3.224949747985180e-02 + -3.196816859917648e-02 + -3.168797153104005e-02 + -3.140891468854379e-02 + -3.113100638362195e-02 + -3.085425482400445e-02 + -3.057866810270934e-02 + -3.030425420554928e-02 + -3.003102099769914e-02 + -2.975897623664901e-02 + -2.948812757423692e-02 + -2.921848253324668e-02 + -2.895004852283206e-02 + -2.868283284398848e-02 + -2.841684266935389e-02 + -2.815208505554401e-02 + -2.788856694668657e-02 + -2.762629515277662e-02 + -2.736527636581735e-02 + -2.710551716378724e-02 + -2.684702399109470e-02 + -2.658980317107453e-02 + -2.633386090723251e-02 + -2.607920326420626e-02 + -2.582583618939347e-02 + -2.557376551170278e-02 + -2.532299691452088e-02 + -2.507353595904179e-02 + -2.482538808499682e-02 + -2.457855859507147e-02 + -2.433305266394129e-02 + -2.408887533435539e-02 + -2.384603151841623e-02 + -2.360452600145211e-02 + -2.336436343201402e-02 + -2.312554832609387e-02 + -2.288808507226996e-02 + -2.265197791904223e-02 + -2.241723098404469e-02 + -2.218384825955722e-02 + -2.195183359578144e-02 + -2.172119070564114e-02 + -2.149192317903017e-02 + -2.126403446983029e-02 + -2.103752788800763e-02 + -2.081240661670658e-02 + -2.058867370373213e-02 + -2.036633206151460e-02 + -2.014538447470562e-02 + -1.992583358220780e-02 + -1.970768189350454e-02 + -1.949093179354288e-02 + -1.927558551890179e-02 + -1.906164517346932e-02 + -1.884911273803516e-02 + -1.863799005561765e-02 + -1.842827883084014e-02 + -1.821998063919436e-02 + -1.801309692347624e-02 + -1.780762899421212e-02 + -1.760357803216378e-02 + -1.740094507853177e-02 + -1.719973104881908e-02 + -1.699993673354589e-02 + -1.680156278321953e-02 + -1.660460972117107e-02 + -1.640907794332531e-02 + -1.621496771146485e-02 + -1.602227916433384e-02 + -1.583101231371427e-02 + -1.564116703862817e-02 + -1.545274309883748e-02 + -1.526574012772238e-02 + -1.508015761914186e-02 + -1.489599495303444e-02 + -1.471325139301425e-02 + -1.453192606709004e-02 + -1.435201798658663e-02 + -1.417352604127694e-02 + -1.399644899327932e-02 + -1.382078549302728e-02 + -1.364653407164367e-02 + -1.347369313289915e-02 + -1.330226097046918e-02 + -1.313223576283522e-02 + -1.296361556501821e-02 + -1.279639832327015e-02 + -1.263058187022890e-02 + -1.246616392163480e-02 + -1.230314208589229e-02 + -1.214151385550256e-02 + -1.198127661271531e-02 + -1.182242763705999e-02 + -1.166496409538715e-02 + -1.150888304589847e-02 + -1.135418144553720e-02 + -1.120085614521435e-02 + -1.104890388968280e-02 + -1.089832132231912e-02 + -1.074910498405016e-02 + -1.060125131793449e-02 + -1.045475666967276e-02 + -1.030961728045836e-02 + -1.016582929759894e-02 + -1.002338877483435e-02 + -9.882291666582974e-03 + -9.742533838318660e-03 + -9.604111064390042e-03 + -9.467019020603698e-03 + -9.331253297647066e-03 + -9.196809399717920e-03 + -9.063682741005771e-03 + -8.931868652392608e-03 + -8.801362376326071e-03 + -8.672159070075210e-03 + -8.544253813557785e-03 + -8.417641603575709e-03 + -8.292317355716863e-03 + -8.168275911736944e-03 + -8.045512032694060e-03 + -7.924020397696789e-03 + -7.803795618017998e-03 + -7.684832236645861e-03 + -7.567124714929550e-03 + -7.450667444285828e-03 + -7.335454748033539e-03 + -7.221480883382279e-03 + -7.108740043647531e-03 + -6.997226348639058e-03 + -6.886933855315346e-03 + -6.777856561420043e-03 + -6.669988397445708e-03 + -6.563323236817328e-03 + -6.457854897474280e-03 + -6.353577131920331e-03 + -6.250483639666226e-03 + -6.148568068731946e-03 + -6.047824005897748e-03 + -5.948244987599076e-03 + -5.849824501347084e-03 + -5.752555978513681e-03 + -5.656432807264865e-03 + -5.561448332218353e-03 + -5.467595840626229e-03 + -5.374868578311233e-03 + -5.283259752176146e-03 + -5.192762521793490e-03 + -5.103370006626977e-03 + -5.015075286629148e-03 + -4.927871401782054e-03 + -4.841751355904269e-03 + -4.756708115524279e-03 + -4.672734611342882e-03 + -4.589823741835811e-03 + -4.507968371897898e-03 + -4.427161334111035e-03 + -4.347395432360992e-03 + -4.268663440821394e-03 + -4.190958105123732e-03 + -4.114272145237943e-03 + -4.038598254543495e-03 + -3.963929102325757e-03 + -3.890257335680627e-03 + -3.817575578228647e-03 + -3.745876433060482e-03 + -3.675152484340320e-03 + -3.605396296371936e-03 + -3.536600416225055e-03 + -3.468757375181376e-03 + -3.401859688514519e-03 + -3.335899857279008e-03 + -3.270870369624132e-03 + -3.206763701552144e-03 + -3.143572317880366e-03 + -3.081288673370167e-03 + -3.019905214426235e-03 + -2.959414379161780e-03 + -2.899808598243805e-03 + -2.841080297295089e-03 + -2.783221897187762e-03 + -2.726225814481816e-03 + -2.670084462721576e-03 + -2.614790253659214e-03 + -2.560335598217736e-03 + -2.506712907773368e-03 + -2.453914594305456e-03 + -2.401933071402304e-03 + -2.350760756079694e-03 + -2.300390068609935e-03 + -2.250813433830373e-03 + -2.202023282926124e-03 + -2.154012052729510e-03 + -2.106772187286276e-03 + -2.060296139752280e-03 + -2.014576371403607e-03 + -1.969605353508076e-03 + -1.925375568654703e-03 + -1.881879509874747e-03 + -1.839109683164610e-03 + -1.797058608044933e-03 + -1.755718816706420e-03 + -1.715082857166331e-03 + -1.675143293280333e-03 + -1.635892703443056e-03 + -1.597323683697497e-03 + -1.559428848712492e-03 + -1.522200830321536e-03 + -1.485632280183934e-03 + -1.449715870092584e-03 + -1.414444291041649e-03 + -1.379810256474448e-03 + -1.345806501791486e-03 + -1.312425783716085e-03 + -1.279660883530597e-03 + -1.247504606026809e-03 + -1.215949779407020e-03 + -1.184989258561609e-03 + -1.154615923413642e-03 + -1.124822679454977e-03 + -1.095602461024569e-03 + -1.066948228352973e-03 + -1.038852968864840e-03 + -1.011309701783447e-03 + -9.843114734261671e-04 + -9.578513585924095e-04 + -9.319224654553773e-04 + -9.065179311555053e-04 + -8.816309237062864e-04 + -8.572546450286300e-04 + -8.333823272254078e-04 + -8.100072355517002e-04 + -7.871226705798197e-04 + -7.647219641139264e-04 + -7.427984826268421e-04 + -7.213456295816899e-04 + -7.003568409622573e-04 + -6.798255887472549e-04 + -6.597453829223955e-04 + -6.401097674232178e-04 + -6.209123240167792e-04 + -6.021466729184949e-04 + -5.838064694784330e-04 + -5.658854088227745e-04 + -5.483772251938055e-04 + -5.312756891491387e-04 + -5.145746125261390e-04 + -4.982678466736966e-04 + -4.823492804447342e-04 + -4.668128456938979e-04 + -4.516525141842837e-04 + -4.368622962674093e-04 + -4.224362466667431e-04 + -4.083684605074392e-04 + -3.946530726767535e-04 + -3.812842634726816e-04 + -3.682562540846601e-04 + -3.555633067280622e-04 + -3.431997298953713e-04 + -3.311598733734528e-04 + -3.194381292167991e-04 + -3.080289365424697e-04 + -2.969267761950205e-04 + -2.861261725181284e-04 + -2.756216974519896e-04 + -2.654079650780054e-04 + -2.554796342192304e-04 + -2.458314117831762e-04 + -2.364580472261255e-04 + -2.273543358783364e-04 + -2.185151214599497e-04 + -2.099352907310207e-04 + -2.016097775283348e-04 + -1.935335642058985e-04 + -1.857016766078902e-04 + -1.781091887621722e-04 + -1.707512232636694e-04 + -1.636229467286454e-04 + -1.567195750846747e-04 + -1.500363727286114e-04 + -1.435686485603325e-04 + -1.373117617901810e-04 + -1.312611200233150e-04 + -1.254121759173047e-04 + -1.197604333131590e-04 + -1.143014443478538e-04 + -1.090308067994204e-04 + -1.039441703359566e-04 + -9.903723276260782e-05 + -9.430573818110019e-05 + -8.974548326970851e-05 + -8.535231263786576e-05 + -8.112211782233505e-05 + -7.705084341917009e-05 + -7.313448187442813e-05 + -6.936907333027644e-05 + -6.575071119249467e-05 + -6.227553658275769e-05 + -5.893973914900695e-05 + -5.573956203853484e-05 + -5.267129595161032e-05 + -4.973128084575291e-05 + -4.691591029739419e-05 + -4.422162539456759e-05 + -4.164491727590835e-05 + -3.918233061143914e-05 + -3.683045757249665e-05 + -3.458594118927672e-05 + -3.244547785270521e-05 + -3.040581149216269e-05 + -2.846373767254703e-05 + -2.661610506551807e-05 + -2.485980997915884e-05 + -2.319180110803831e-05 + -2.160907991664170e-05 + -2.010869565536285e-05 + -1.868775067119526e-05 + -1.734339969669114e-05 + -1.607284546059277e-05 + -1.487334444060605e-05 + -1.374220506933501e-05 + -1.267678404087566e-05 + -1.167449238525668e-05 + -1.073279264625808e-05 + -9.849195952118955e-06 + -9.021268250139948e-06 + -8.246626567968640e-06 + -7.522936912951058e-06 + -6.847920492700095e-06 + -6.219349168072015e-06 + -5.635044236568559e-06 + -5.092882470932048e-06 + -4.590790895044201e-06 + -4.126746487291455e-06 + -3.698781859286729e-06 + -3.304979520120749e-06 + -2.943472506918129e-06 + -2.612449510984778e-06 + -2.310148834845521e-06 + -2.034859929271865e-06 + -1.784927798002038e-06 + -1.558746837246077e-06 + -1.354763241038800e-06 + -1.171478551126456e-06 + -1.007443551831214e-06 + -8.612614901318561e-07 + -7.315906671893518e-07 + -6.171385461507109e-07 + -5.166657190198488e-07 + -4.289874671965282e-07 + -3.529682224298676e-07 + -2.875261969469119e-07 + -2.316338735426513e-07 + -1.843129441850586e-07 + -1.446395043479685e-07 + -1.117434618507405e-07 + -8.480406305106530e-08 + -6.305553831873507e-08 + -4.578544870958251e-08 + -3.233089380928512e-08 + -2.208448022054805e-08 + -1.449165750478591e-08 + -9.047683233008124e-09 + -5.303766739728543e-09 + -2.863504097386866e-09 + -1.380623394721897e-09 + -5.650641971230870e-10 + -1.790372475752245e-10 + -3.511990521548007e-11 + -8.192061809269277e-13 + 0.000000000000000e+00 diff --git a/examples/SPIN/iron/fe_dd.dat b/examples/SPIN/iron/fe_dd.dat new file mode 100644 index 0000000000..a4b4c9a0d7 --- /dev/null +++ b/examples/SPIN/iron/fe_dd.dat @@ -0,0 +1,19 @@ + 6 8 + Optimal parameter set + 1 4.100199340884814 F + 2 1.565647547483517 F + 1 0.9332056681088162 T 3.000000000000000 + 2 -1.162558782567700 T 2.866666666666670 + 3 -0.3502026949249225 T 2.733333333333330 + 4 0.4287820835430028 T 2.600000000000000 + 5 4.907925057809273 T 2.400000000000000 + 6 -5.307049068415304 T 2.300000000000000 + 1 -0.1960674387419232 F 4.100000000000000 + 2 0.3687525935422963 F 3.800000000000000 + 3 -1.505333614924853 F 3.500000000000000 + 4 4.948907078156191 T 3.200000000000000 + 5 -4.894613262753399 T 2.900000000000000 + 6 3.468897724782442 T 2.600000000000000 + 7 -1.792218099820337 T 2.400000000000000 + 8 80.22069592246987 T 2.300000000000000 + diff --git a/examples/SPIN/iron/in.spin.iron b/examples/SPIN/iron/in.spin.iron new file mode 100644 index 0000000000..254c094bd8 --- /dev/null +++ b/examples/SPIN/iron/in.spin.iron @@ -0,0 +1,59 @@ +# bcc iron in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# check why? +atom_modify map array + +lattice bcc 2.8665 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +create_atoms 1 box + +# setting mass, mag. moments, and interactions for bcc iron + +mass 1 55.845 + +set group all spin/random 31 2.2 +velocity all create 100 4928459 rot yes dist gaussian + +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 3.5 +pair_coeff * * eam/alloy ../examples/SPIN/iron/Fe_Mishin2006.eam.alloy Fe +pair_coeff * * pair/spin/exchange exchange 4.0 0.025498 0.281 1.999 +#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all integration/spin lattice yes + +timestep 0.0001 + + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[4] +variable magnorm equal c_out_mag[5] +variable emag equal c_out_mag[6] +variable tmag equal c_out_mag[7] +variable mag_force equal f_1 + +thermo_style custom step time v_magnorm v_emag temp etotal +thermo 50 + +dump 1 all custom 50 dump_iron.lammpstrj type x y z spx spy spz + +run 10000 + diff --git a/examples/SPIN/nickel/Ni99.eam.alloy b/examples/SPIN/nickel/Ni99.eam.alloy new file mode 100644 index 0000000000..458f550462 --- /dev/null +++ b/examples/SPIN/nickel/Ni99.eam.alloy @@ -0,0 +1,30006 @@ + Ni EAM from Phys. Rev. B 59, 3393 (1999) in the LAMMPS setfl format. + Conversion by C. A. Becker from Y. Mishin files. + 14 February 2009. http://www.ctcms.nist.gov/potentials + 1 Ni +10000 0.2000000000000000E-03 10000 0.5803750000000001E-03 0.5803750000000000E+01 + 28 0.5871000000E+02 0.3520000000E+01 fcc + -0.3097002992599740E-10 + -0.6727670264584218E-03 + -0.1347243064545615E-02 + -0.2023426205791608E-02 + -0.2701314510756404E-02 + -0.3380906040000000E-02 + -0.4062198854082398E-02 + -0.4745191013563596E-02 + -0.5429880579003596E-02 + -0.6116265610962398E-02 + -0.6804344169999999E-02 + -0.7494114316748643E-02 + -0.8185574112129526E-02 + -0.8878721617136087E-02 + -0.9573554892761765E-02 + -0.1027007200000000E-01 + -0.1096827099948303E-01 + -0.1166814995039830E-01 + -0.1236970691157206E-01 + -0.1307293994183054E-01 + -0.1377784710000000E-01 + -0.1448442644595924E-01 + -0.1519267604379728E-01 + -0.1590259395865570E-01 + -0.1661417825567608E-01 + -0.1732742700000000E-01 + -0.1804233825508002E-01 + -0.1875891007761259E-01 + -0.1947714052260515E-01 + -0.2019702764506515E-01 + -0.2091856950000000E-01 + -0.2164176414412070E-01 + -0.2236660964095237E-01 + -0.2309310405572369E-01 + -0.2382124545366335E-01 + -0.2455103190000000E-01 + -0.2528246145883719E-01 + -0.2601553218977792E-01 + -0.2675024215130006E-01 + -0.2748658940188147E-01 + -0.2822457200000000E-01 + -0.2896418800453053E-01 + -0.2970543547593594E-01 + -0.3044831247507606E-01 + -0.3119281706281080E-01 + -0.3193894730000000E-01 + -0.3268670124784067E-01 + -0.3343607696887835E-01 + -0.3418707252599569E-01 + -0.3493968598207534E-01 + -0.3569391540000000E-01 + -0.3644975884170676E-01 + -0.3720721436535066E-01 + -0.3796628002814116E-01 + -0.3872695388728778E-01 + -0.3948923400000001E-01 + -0.4025311842453228E-01 + -0.4101860522331904E-01 + -0.4178569245983965E-01 + -0.4255437819757351E-01 + -0.4332466050000000E-01 + -0.4409653742976412E-01 + -0.4487000704617322E-01 + -0.4564506740770026E-01 + -0.4642171657281820E-01 + -0.4719995259999999E-01 + -0.4797977354841125E-01 + -0.4876117747998810E-01 + -0.4954416245735933E-01 + -0.5032872654315370E-01 + -0.5111486780000000E-01 + -0.5190258429019084E-01 + -0.5269187407467433E-01 + -0.5348273521406237E-01 + -0.5427516576896696E-01 + -0.5506916380000001E-01 + -0.5586472736762538E-01 + -0.5666185453171461E-01 + -0.5746054335199116E-01 + -0.5826079188817847E-01 + -0.5906259819999999E-01 + -0.5986596034730766E-01 + -0.6067087639046727E-01 + -0.6147734438997301E-01 + -0.6228536240631919E-01 + -0.6309492849999999E-01 + -0.6390604073194393E-01 + -0.6471869716481633E-01 + -0.6553289586171678E-01 + -0.6634863488574481E-01 + -0.6716591230000001E-01 + -0.6798472616651658E-01 + -0.6880507454306740E-01 + -0.6962695548635994E-01 + -0.7045036705310162E-01 + -0.7127530729999999E-01 + -0.7210177428518970E-01 + -0.7292976607251402E-01 + -0.7375928072724351E-01 + -0.7459031631464868E-01 + -0.7542287089999999E-01 + -0.7625694254712466E-01 + -0.7709252931407646E-01 + -0.7792962925746595E-01 + -0.7876824043390363E-01 + -0.7960836090000000E-01 + -0.8044998871351170E-01 + -0.8129312193678011E-01 + -0.8213775863329264E-01 + -0.8298389686653678E-01 + -0.8383153470000002E-01 + -0.8468067019642851E-01 + -0.8553130141560315E-01 + -0.8638342641656356E-01 + -0.8723704325834930E-01 + -0.8809214999999998E-01 + -0.8894874470077433E-01 + -0.8980682542080732E-01 + -0.9066639022045317E-01 + -0.9152743716006601E-01 + -0.9238996430000000E-01 + -0.9325396970207423E-01 + -0.9411945143396757E-01 + -0.9498640756482377E-01 + -0.9585483616378665E-01 + -0.9672473530000001E-01 + -0.9759610303892876E-01 + -0.9846893743132247E-01 + -0.9934323652425178E-01 + -0.1002189983647874E+00 + -0.1010962210000000E+00 + -0.1019749024790107E+00 + -0.1028550408591426E+00 + -0.1037366341997692E+00 + -0.1046196805602638E+00 + -0.1055041780000000E+00 + -0.1063901245826283E+00 + -0.1072775183889071E+00 + -0.1081663575038717E+00 + -0.1090566400125575E+00 + -0.1099483640000000E+00 + -0.1108415275424761E+00 + -0.1117361286812292E+00 + -0.1126321654487442E+00 + -0.1135296358775062E+00 + -0.1144285380000000E+00 + -0.1153288698554673E+00 + -0.1162306295101762E+00 + -0.1171338150371514E+00 + -0.1180384245094178E+00 + -0.1189444560000000E+00 + -0.1198519075796547E+00 + -0.1207607773100661E+00 + -0.1216710632506501E+00 + -0.1225827634608227E+00 + -0.1234958760000000E+00 + -0.1244103989299138E+00 + -0.1253263303215595E+00 + -0.1262436682482483E+00 + -0.1271624107832914E+00 + -0.1280825560000000E+00 + -0.1290041019646900E+00 + -0.1299270467156959E+00 + -0.1308513882843568E+00 + -0.1317771247020118E+00 + -0.1327042540000000E+00 + -0.1336327742193260E+00 + -0.1345626834396567E+00 + -0.1354939797503245E+00 + -0.1364266612406614E+00 + -0.1373607260000000E+00 + -0.1382961721100057E+00 + -0.1392329976216770E+00 + -0.1401712005783454E+00 + -0.1411107790233426E+00 + -0.1420517310000000E+00 + -0.1429940545566510E+00 + -0.1439377477616352E+00 + -0.1448828086882939E+00 + -0.1458292354099684E+00 + -0.1467770260000000E+00 + -0.1477261785273903E+00 + -0.1486766910437822E+00 + -0.1496285615964790E+00 + -0.1505817882327838E+00 + -0.1515363690000000E+00 + -0.1524923019497878E+00 + -0.1534495851512360E+00 + -0.1544082166777901E+00 + -0.1553681946028962E+00 + -0.1563295170000000E+00 + -0.1572921819374586E+00 + -0.1582561874632742E+00 + -0.1592215316203605E+00 + -0.1601882124516313E+00 + -0.1611562280000000E+00 + -0.1621255763163781E+00 + -0.1630962554836676E+00 + -0.1640682635927679E+00 + -0.1650415987345788E+00 + -0.1660162590000000E+00 + -0.1669922424690290E+00 + -0.1679695471780558E+00 + -0.1689481711525680E+00 + -0.1699281124180534E+00 + -0.1709093690000000E+00 + -0.1718919389355058E+00 + -0.1728758203081095E+00 + -0.1738610112129604E+00 + -0.1748475097452076E+00 + -0.1758353140000000E+00 + -0.1768244220609480E+00 + -0.1778148319655062E+00 + -0.1788065417395904E+00 + -0.1797995494091165E+00 + -0.1807938530000000E+00 + -0.1817894505487023E+00 + -0.1827863401338657E+00 + -0.1837845198446779E+00 + -0.1847839877703268E+00 + -0.1857847420000000E+00 + -0.1867867806162429E+00 + -0.1877901016750312E+00 + -0.1887947032256979E+00 + -0.1898005833175765E+00 + -0.1908077400000000E+00 + -0.1918161713223261E+00 + -0.1928258753340099E+00 + -0.1938368500845305E+00 + -0.1948490936233674E+00 + -0.1958626040000000E+00 + -0.1968773792704526E+00 + -0.1978934175169296E+00 + -0.1989107168281803E+00 + -0.1999292752929539E+00 + -0.2009490910000000E+00 + -0.2019701620278634E+00 + -0.2029924864142719E+00 + -0.2040160621867486E+00 + -0.2050408873728169E+00 + -0.2060669600000000E+00 + -0.2070942781060936E+00 + -0.2081228397699829E+00 + -0.2091526430808254E+00 + -0.2101836861277786E+00 + -0.2112159670000000E+00 + -0.2122494837797621E+00 + -0.2132842345217966E+00 + -0.2143202172739500E+00 + -0.2153574300840689E+00 + -0.2163958710000000E+00 + -0.2174355380708581E+00 + -0.2184764293508309E+00 + -0.2195185428953748E+00 + -0.2205618767599458E+00 + -0.2216064290000000E+00 + -0.2226521976728057E+00 + -0.2236991808428797E+00 + -0.2247473765765509E+00 + -0.2257967829401480E+00 + -0.2268473980000000E+00 + -0.2278992198219190E+00 + -0.2289522464696501E+00 + -0.2300064760064217E+00 + -0.2310619064954622E+00 + -0.2321185360000000E+00 + -0.2331763625835183E+00 + -0.2342353843105199E+00 + -0.2352955992457623E+00 + -0.2363570054540031E+00 + -0.2374196010000000E+00 + -0.2384833839480078E+00 + -0.2395483523602704E+00 + -0.2406145042985292E+00 + -0.2416818378245253E+00 + -0.2427503510000000E+00 + -0.2438200418804506E+00 + -0.2448909084963985E+00 + -0.2459629488721211E+00 + -0.2470361610318958E+00 + -0.2481105430000000E+00 + -0.2491860928181898E+00 + -0.2502628085981357E+00 + -0.2513406884689866E+00 + -0.2524197305598917E+00 + -0.2534999330000000E+00 + -0.2545812938947902E+00 + -0.2556638112550589E+00 + -0.2567474830679327E+00 + -0.2578323073205376E+00 + -0.2589182820000000E+00 + -0.2600054051146495E+00 + -0.2610936747576285E+00 + -0.2621830890432828E+00 + -0.2632736460859581E+00 + -0.2643653440000000E+00 + -0.2654581808866119E+00 + -0.2665521547944270E+00 + -0.2676472637589362E+00 + -0.2687435058156303E+00 + -0.2698408790000000E+00 + -0.2709393813549029E+00 + -0.2720390109526633E+00 + -0.2731397658729723E+00 + -0.2742416441955208E+00 + -0.2753446440000001E+00 + -0.2764487633577766E+00 + -0.2775540003069199E+00 + -0.2786603528771749E+00 + -0.2797678190982865E+00 + -0.2808763970000000E+00 + -0.2819860846219910E+00 + -0.2830968800436575E+00 + -0.2842087813543286E+00 + -0.2853217866433332E+00 + -0.2864358940000000E+00 + -0.2875511015062599E+00 + -0.2886674072144504E+00 + -0.2897848091695110E+00 + -0.2909033054163811E+00 + -0.2920228940000000E+00 + -0.2931435729689697E+00 + -0.2942653403865410E+00 + -0.2953881943196275E+00 + -0.2965121328351427E+00 + -0.2976371540000000E+00 + -0.2987632558818618E+00 + -0.2998904365513857E+00 + -0.3010186940799789E+00 + -0.3021480265390481E+00 + -0.3032784320000000E+00 + -0.3044099085275836E+00 + -0.3055424541599161E+00 + -0.3066760669284569E+00 + -0.3078107448646650E+00 + -0.3089464860000000E+00 + -0.3100832883758039E+00 + -0.3112211500729498E+00 + -0.3123600691821938E+00 + -0.3135000437942919E+00 + -0.3146410720000000E+00 + -0.3157831518812009E+00 + -0.3169262814842847E+00 + -0.3180704588467680E+00 + -0.3192156820061674E+00 + -0.3203619490000000E+00 + -0.3215092578753922E+00 + -0.3226576067179112E+00 + -0.3238069936227342E+00 + -0.3249574166850380E+00 + -0.3261088740000000E+00 + -0.3272613636492300E+00 + -0.3284148836600702E+00 + -0.3295694320462954E+00 + -0.3307250068216803E+00 + -0.3318816060000000E+00 + -0.3330392276076874E+00 + -0.3341978697218079E+00 + -0.3353575304320846E+00 + -0.3365182078282408E+00 + -0.3376799000000000E+00 + -0.3388426050320200E+00 + -0.3400063209886981E+00 + -0.3411710459293662E+00 + -0.3423367779133562E+00 + -0.3435035150000001E+00 + -0.3446712552482323E+00 + -0.3458399967153993E+00 + -0.3470097374584502E+00 + -0.3481804755343341E+00 + -0.3493522090000001E+00 + -0.3505249359110509E+00 + -0.3516986543177048E+00 + -0.3528733622688330E+00 + -0.3540490578133076E+00 + -0.3552257390000000E+00 + -0.3564034038835642E+00 + -0.3575820505417822E+00 + -0.3587616770582179E+00 + -0.3599422815164359E+00 + -0.3611238620000000E+00 + -0.3623064165866925E+00 + -0.3634899433311671E+00 + -0.3646744402822954E+00 + -0.3658599054889491E+00 + -0.3670463370000000E+00 + -0.3682337328656660E+00 + -0.3694220911415499E+00 + -0.3706114098846007E+00 + -0.3718016871517678E+00 + -0.3729929210000000E+00 + -0.3741851094866437E+00 + -0.3753782506706337E+00 + -0.3765723426113018E+00 + -0.3777673833679800E+00 + -0.3789633710000000E+00 + -0.3801603035717592E+00 + -0.3813581791679154E+00 + -0.3825569958781921E+00 + -0.3837567517923126E+00 + -0.3849574450000000E+00 + -0.3861590735783198E+00 + -0.3873616355537047E+00 + -0.3885651289399299E+00 + -0.3897695517507700E+00 + -0.3909749020000000E+00 + -0.3921811777149620E+00 + -0.3933883769772658E+00 + -0.3945964978820887E+00 + -0.3958055385246077E+00 + -0.3970154970000000E+00 + -0.3982263713938326E+00 + -0.3994381597532322E+00 + -0.4006508601157155E+00 + -0.4018644705187992E+00 + -0.4030789890000000E+00 + -0.4042944136057078E+00 + -0.4055107424178054E+00 + -0.4067279735270493E+00 + -0.4079461050241954E+00 + -0.4091651350000000E+00 + -0.4103850615353364E+00 + -0.4116058826715460E+00 + -0.4128275964400875E+00 + -0.4140502008724193E+00 + -0.4152736940000001E+00 + -0.4164980738609467E+00 + -0.4177233385200106E+00 + -0.4189494860486010E+00 + -0.4201765145181276E+00 + -0.4214044220000000E+00 + -0.4226332065648767E+00 + -0.4238628662804119E+00 + -0.4250933992135089E+00 + -0.4263248034310704E+00 + -0.4275570770000000E+00 + -0.4287902179835463E+00 + -0.4300242244303417E+00 + -0.4312590943853637E+00 + -0.4324948258935907E+00 + -0.4337314170000001E+00 + -0.4349688657569378E+00 + -0.4362071702462213E+00 + -0.4374463285570359E+00 + -0.4386863387785671E+00 + -0.4399271990000001E+00 + -0.4411689073007027E+00 + -0.4424114617207733E+00 + -0.4436548602904925E+00 + -0.4448991010401412E+00 + -0.4461441820000001E+00 + -0.4473901012082516E+00 + -0.4486368567346858E+00 + -0.4498844466569941E+00 + -0.4511328690528684E+00 + -0.4523821220000000E+00 + -0.4536322035702910E+00 + -0.4548831118124838E+00 + -0.4561348447695311E+00 + -0.4573874004843857E+00 + -0.4586407770000000E+00 + -0.4598949723665846E+00 + -0.4611499846633793E+00 + -0.4624058119768816E+00 + -0.4636624523935894E+00 + -0.4649199040000000E+00 + -0.4661781648753710E+00 + -0.4674372330699995E+00 + -0.4686971066269424E+00 + -0.4699577835892569E+00 + -0.4712192620000001E+00 + -0.4724815399079317E+00 + -0.4737446153846232E+00 + -0.4750084865073490E+00 + -0.4762731513533832E+00 + -0.4775386080000000E+00 + -0.4788048545169025E+00 + -0.4800718889435077E+00 + -0.4813397093116620E+00 + -0.4826083136532107E+00 + -0.4838777000000000E+00 + -0.4851478663924586E+00 + -0.4864188109053456E+00 + -0.4876905316220035E+00 + -0.4889630266257743E+00 + -0.4902362940000000E+00 + -0.4915103318252636E+00 + -0.4927851381711098E+00 + -0.4940607111043243E+00 + -0.4953370486916925E+00 + -0.4966141490000000E+00 + -0.4978920100904873E+00 + -0.4991706300022152E+00 + -0.5004500067686994E+00 + -0.5017301384234557E+00 + -0.5030110230000000E+00 + -0.5042926585407873E+00 + -0.5055750431240295E+00 + -0.5068581748368781E+00 + -0.5081420517664846E+00 + -0.5094266720000000E+00 + -0.5107120336183639E+00 + -0.5119981346776670E+00 + -0.5132849732277881E+00 + -0.5145725473186062E+00 + -0.5158608550000000E+00 + -0.5171498943217574E+00 + -0.5184396633333028E+00 + -0.5197301600839696E+00 + -0.5210213826230908E+00 + -0.5223133290000001E+00 + -0.5236059972706064E+00 + -0.5248993855171219E+00 + -0.5261934918283342E+00 + -0.5274883142930310E+00 + -0.5287838510000000E+00 + -0.5300801000278169E+00 + -0.5313770594142096E+00 + -0.5326747271866940E+00 + -0.5339731013727853E+00 + -0.5352721799999999E+00 + -0.5365719611061256E+00 + -0.5378724427700394E+00 + -0.5391736230808903E+00 + -0.5404755001278274E+00 + -0.5417780720000001E+00 + -0.5430813367796803E+00 + -0.5443852925216328E+00 + -0.5456899372737452E+00 + -0.5469952690839051E+00 + -0.5483012860000001E+00 + -0.5496079860711535E+00 + -0.5509153673514299E+00 + -0.5522234278961297E+00 + -0.5535321657605530E+00 + -0.5548415790000001E+00 + -0.5561516656717062E+00 + -0.5574624238406480E+00 + -0.5587738515737366E+00 + -0.5600859469378835E+00 + -0.5613987080000000E+00 + -0.5627121328260215E+00 + -0.5640262194779782E+00 + -0.5653409660169241E+00 + -0.5666563705039134E+00 + -0.5679724310000001E+00 + -0.5692891455682080E+00 + -0.5706065122794398E+00 + -0.5719245292065675E+00 + -0.5732431944224635E+00 + -0.5745625060000000E+00 + -0.5758824620051469E+00 + -0.5772030604762635E+00 + -0.5785242994448065E+00 + -0.5798461769422331E+00 + -0.5811686910000001E+00 + -0.5824918396592048E+00 + -0.5838156209995070E+00 + -0.5851400331102068E+00 + -0.5864650740806045E+00 + -0.5877907420000001E+00 + -0.5891170349500342E+00 + -0.5904439509817088E+00 + -0.5917714881383663E+00 + -0.5930996444633494E+00 + -0.5944284180000000E+00 + -0.5957578067966589E+00 + -0.5970878089216580E+00 + -0.5984184224483279E+00 + -0.5997496454499984E+00 + -0.6010814760000000E+00 + -0.6024139121673305E+00 + -0.6037469520036590E+00 + -0.6050805935563223E+00 + -0.6064148348726569E+00 + -0.6077496740000000E+00 + -0.6090851089900191E+00 + -0.6104211379117058E+00 + -0.6117577588383832E+00 + -0.6130949698433737E+00 + -0.6144327690000000E+00 + -0.6157711543765933E+00 + -0.6171101240215174E+00 + -0.6184496759781450E+00 + -0.6197898082898484E+00 + -0.6211305190000001E+00 + -0.6224718061596080E+00 + -0.6238136678502244E+00 + -0.6251561021610367E+00 + -0.6264991071812326E+00 + -0.6278426809999999E+00 + -0.6291868216969746E+00 + -0.6305315273135852E+00 + -0.6318767958817084E+00 + -0.6332226254332211E+00 + -0.6345690140000000E+00 + -0.6359159596204932E+00 + -0.6372634603594346E+00 + -0.6386115142881295E+00 + -0.6399601194778828E+00 + -0.6413092740000002E+00 + -0.6426589759250525E+00 + -0.6440092233206763E+00 + -0.6453600142537739E+00 + -0.6467113467912476E+00 + -0.6480632190000001E+00 + -0.6494156289432972E+00 + -0.6507685746698606E+00 + -0.6521220542247753E+00 + -0.6534760656531268E+00 + -0.6548306070000001E+00 + -0.6561856763177588E+00 + -0.6575412716878816E+00 + -0.6588973911991247E+00 + -0.6602540329402453E+00 + -0.6616111950000001E+00 + -0.6629688754576675E+00 + -0.6643270723546135E+00 + -0.6656857837227258E+00 + -0.6670450075938922E+00 + -0.6684047420000000E+00 + -0.6697649849795714E+00 + -0.6711257345976645E+00 + -0.6724869889259720E+00 + -0.6738487460361863E+00 + -0.6752110040000000E+00 + -0.6765737608880472E+00 + -0.6779370147667287E+00 + -0.6793007637013865E+00 + -0.6806650057573627E+00 + -0.6820297390000000E+00 + -0.6833949614922398E+00 + -0.6847606712874212E+00 + -0.6861268664364828E+00 + -0.6874935449903628E+00 + -0.6888607049999999E+00 + -0.6902283445189937E+00 + -0.6915964616115868E+00 + -0.6929650543446830E+00 + -0.6943341207851860E+00 + -0.6957036590000000E+00 + -0.6970736670557854E+00 + -0.6984441430182319E+00 + -0.6998150849527855E+00 + -0.7011864909248926E+00 + -0.7025583590000000E+00 + -0.7039306872418645E+00 + -0.7053034737074859E+00 + -0.7066767164521751E+00 + -0.7080504135312430E+00 + -0.7094245630000000E+00 + -0.7107991629127569E+00 + -0.7121742113198247E+00 + -0.7135497062705136E+00 + -0.7149256458141352E+00 + -0.7163020280000000E+00 + -0.7176788508831081E+00 + -0.7190561125412160E+00 + -0.7204338110577700E+00 + -0.7218119445162160E+00 + -0.7231905110000000E+00 + -0.7245695085868111E+00 + -0.7259489353313116E+00 + -0.7273287892824062E+00 + -0.7287090684890006E+00 + -0.7300897710000001E+00 + -0.7314708948656477E+00 + -0.7328524381415384E+00 + -0.7342343988846052E+00 + -0.7356167751517814E+00 + -0.7369995650000000E+00 + -0.7383827664865987E+00 + -0.7397663776705354E+00 + -0.7411503966111726E+00 + -0.7425348213678734E+00 + -0.7439196500000000E+00 + -0.7453048805719576E+00 + -0.7466905111683202E+00 + -0.7480765398787038E+00 + -0.7494629647927250E+00 + -0.7508497840000000E+00 + -0.7522369955775710E+00 + -0.7536245975521841E+00 + -0.7550125879380119E+00 + -0.7564009647492265E+00 + -0.7577897260000000E+00 + -0.7591788697177586E+00 + -0.7605683939829429E+00 + -0.7619582968892482E+00 + -0.7633485765303690E+00 + -0.7647392310000000E+00 + -0.7661302583833949E+00 + -0.7675216567320434E+00 + -0.7689134240889947E+00 + -0.7703055584972973E+00 + -0.7716980580000000E+00 + -0.7730909206446619E+00 + -0.7744841444968825E+00 + -0.7758777276267725E+00 + -0.7772716681044416E+00 + -0.7786659640000000E+00 + -0.7800606133819580E+00 + -0.7814556143124260E+00 + -0.7828509648519153E+00 + -0.7842466630609364E+00 + -0.7856427070000001E+00 + -0.7870390947315067E+00 + -0.7884358243254132E+00 + -0.7898328938535667E+00 + -0.7912303013878134E+00 + -0.7926280449999999E+00 + -0.7940261227560155E+00 + -0.7954245326979206E+00 + -0.7968232728618178E+00 + -0.7982223412838099E+00 + -0.7996217359999999E+00 + -0.8010214550524303E+00 + -0.8024214965069037E+00 + -0.8038218584351618E+00 + -0.8052225389089466E+00 + -0.8066235360000000E+00 + -0.8080248477782618E+00 + -0.8094264723064637E+00 + -0.8108284076455345E+00 + -0.8122306518564036E+00 + -0.8136332030000002E+00 + -0.8150360591385216E+00 + -0.8164392183392408E+00 + -0.8178426786706995E+00 + -0.8192464382014389E+00 + -0.8206504950000003E+00 + -0.8220548471316521E+00 + -0.8234594926485730E+00 + -0.8248644295996678E+00 + -0.8262696560338418E+00 + -0.8276751700000002E+00 + -0.8290809695508703E+00 + -0.8304870527544678E+00 + -0.8318934176826303E+00 + -0.8333000624071952E+00 + -0.8347069850000002E+00 + -0.8361141835288670E+00 + -0.8375216560455561E+00 + -0.8389294005978119E+00 + -0.8403374152333784E+00 + -0.8417456980000001E+00 + -0.8431542469496616E+00 + -0.8445630601513075E+00 + -0.8459721356781229E+00 + -0.8473814716032921E+00 + -0.8487910660000001E+00 + -0.8502009169364870E+00 + -0.8516110224612138E+00 + -0.8530213806176974E+00 + -0.8544319894494540E+00 + -0.8558428470000001E+00 + -0.8572539513203912E+00 + -0.8586653004918377E+00 + -0.8600768926030884E+00 + -0.8614887257428929E+00 + -0.8629007979999999E+00 + -0.8643131074539486E+00 + -0.8657256521474361E+00 + -0.8671384301139492E+00 + -0.8685514393869751E+00 + -0.8699646780000000E+00 + -0.8713781439918144E+00 + -0.8727918354224183E+00 + -0.8742057503571152E+00 + -0.8756198868612080E+00 + -0.8770342430000000E+00 + -0.8784488168427943E+00 + -0.8798636064748912E+00 + -0.8812786099855911E+00 + -0.8826938254641942E+00 + -0.8841092510000001E+00 + -0.8855248846690088E+00 + -0.8869407244940174E+00 + -0.8883567684845213E+00 + -0.8897730146500166E+00 + -0.8911894609999999E+00 + -0.8926061055611703E+00 + -0.8940229464290399E+00 + -0.8954399817163244E+00 + -0.8968572095357391E+00 + -0.8982746280000001E+00 + -0.8996922352063102E+00 + -0.9011100291898234E+00 + -0.9025280079701819E+00 + -0.9039461695670267E+00 + -0.9053645120000001E+00 + -0.9067830333015895E+00 + -0.9082017315556666E+00 + -0.9096206048589492E+00 + -0.9110396513081543E+00 + -0.9124588690000000E+00 + -0.9138782560193320E+00 + -0.9152978104035102E+00 + -0.9167175301780222E+00 + -0.9181374133683560E+00 + -0.9195574580000001E+00 + -0.9209776621090821E+00 + -0.9223980237742929E+00 + -0.9238185410849622E+00 + -0.9252392121304212E+00 + -0.9266600350000001E+00 + -0.9280810077763395E+00 + -0.9295021285153192E+00 + -0.9309233952661293E+00 + -0.9323448060779594E+00 + -0.9337663590000000E+00 + -0.9351880520815607E+00 + -0.9366098833724312E+00 + -0.9380318509225212E+00 + -0.9394539527817409E+00 + -0.9408761869999999E+00 + -0.9422985516334183E+00 + -0.9437210447629564E+00 + -0.9451436644757854E+00 + -0.9465664088590764E+00 + -0.9479892760000000E+00 + -0.9494122639767667E+00 + -0.9508353708317435E+00 + -0.9522585945983368E+00 + -0.9536819333099535E+00 + -0.9551053849999999E+00 + -0.9565289477075154E+00 + -0.9579526194940703E+00 + -0.9593763984268671E+00 + -0.9608002825731095E+00 + -0.9622242699999999E+00 + -0.9636483587771716E+00 + -0.9650725469839758E+00 + -0.9664968327021942E+00 + -0.9679212140136084E+00 + -0.9693456890000000E+00 + -0.9707702557357985E+00 + -0.9721949122660268E+00 + -0.9736196566283557E+00 + -0.9750444868604564E+00 + -0.9764694010000000E+00 + -0.9778943970876346E+00 + -0.9793194731759174E+00 + -0.9807446273203826E+00 + -0.9821698575765655E+00 + -0.9835951620000000E+00 + -0.9850205386496635E+00 + -0.9864459855983039E+00 + -0.9878715009221130E+00 + -0.9892970826972814E+00 + -0.9907227290000000E+00 + -0.9921484379137118E+00 + -0.9935742075508660E+00 + -0.9950000360311647E+00 + -0.9964259214743089E+00 + -0.9978518619999999E+00 + -0.9992778556874898E+00 + -0.1000703900454231E+01 + -0.1002129994177228E+01 + -0.1003556134733483E+01 + -0.1004982320000000E+01 + -0.1006408547912330E+01 + -0.1007834816640209E+01 + -0.1009261124411924E+01 + -0.1010687469455760E+01 + -0.1012113850000000E+01 + -0.1013540264247193E+01 + -0.1014966710296932E+01 + -0.1016393186223075E+01 + -0.1017819690099479E+01 + -0.1019246220000000E+01 + -0.1020672773978901E+01 + -0.1022099350012064E+01 + -0.1023525946055777E+01 + -0.1024952560066326E+01 + -0.1026379190000000E+01 + -0.1027805833837203E+01 + -0.1029232489654812E+01 + -0.1030659155553818E+01 + -0.1032085829635217E+01 + -0.1033512510000000E+01 + -0.1034939194752286E+01 + -0.1036365882008690E+01 + -0.1037792569888951E+01 + -0.1039219256512808E+01 + -0.1040645940000000E+01 + -0.1042072618433653E+01 + -0.1043499289750430E+01 + -0.1044925951850381E+01 + -0.1046352602633554E+01 + -0.1047779240000000E+01 + -0.1049205861913103E+01 + -0.1050632466589591E+01 + -0.1052059052309527E+01 + -0.1053485617352976E+01 + -0.1054912160000000E+01 + -0.1056338678473936E+01 + -0.1057765170771208E+01 + -0.1059191634831511E+01 + -0.1060618068594543E+01 + -0.1062044470000000E+01 + -0.1063470836991153E+01 + -0.1064897167525579E+01 + -0.1066323459564428E+01 + -0.1067749711068851E+01 + -0.1069175920000000E+01 + -0.1070602084361450E+01 + -0.1072028202326477E+01 + -0.1073454272110778E+01 + -0.1074880291930053E+01 + -0.1076306260000000E+01 + -0.1077732174523045E+01 + -0.1079158033648515E+01 + -0.1080583835512462E+01 + -0.1082009578250939E+01 + -0.1083435260000000E+01 + -0.1084860878826370E+01 + -0.1086286432519466E+01 + -0.1087711918799377E+01 + -0.1089137335386192E+01 + -0.1090562680000000E+01 + -0.1091987950491475E+01 + -0.1093413145233622E+01 + -0.1094838262730032E+01 + -0.1096263301484295E+01 + -0.1097688260000000E+01 + -0.1099113136647731E+01 + -0.1100537929266045E+01 + -0.1101962635560494E+01 + -0.1103387253236629E+01 + -0.1104811780000000E+01 + -0.1106236213637602E+01 + -0.1107660552262198E+01 + -0.1109084794067992E+01 + -0.1110508937249191E+01 + -0.1111932980000000E+01 + -0.1113356920481861E+01 + -0.1114780756725164E+01 + -0.1116204486727537E+01 + -0.1117628108486607E+01 + -0.1119051620000000E+01 + -0.1120475019314954E+01 + -0.1121898304677145E+01 + -0.1123321474381859E+01 + -0.1124744526724382E+01 + -0.1126167460000000E+01 + -0.1127590272418323E+01 + -0.1129012961846257E+01 + -0.1130435526065028E+01 + -0.1131857962855866E+01 + -0.1133280270000000E+01 + -0.1134702445331753E+01 + -0.1136124486897829E+01 + -0.1137546392798029E+01 + -0.1138968161132153E+01 + -0.1140389790000000E+01 + -0.1141811277534666E+01 + -0.1143232622002427E+01 + -0.1144653821702856E+01 + -0.1146074874935522E+01 + -0.1147495780000000E+01 + -0.1148916535089584E+01 + -0.1150337137972463E+01 + -0.1151757586310550E+01 + -0.1153177877765758E+01 + -0.1154598010000000E+01 + -0.1156017980826999E+01 + -0.1157437788667722E+01 + -0.1158857432094945E+01 + -0.1160276909681446E+01 + -0.1161696220000000E+01 + -0.1163115361442419E+01 + -0.1164534331676649E+01 + -0.1165953128189669E+01 + -0.1167371748468459E+01 + -0.1168790190000000E+01 + -0.1170208450443324E+01 + -0.1171626528145682E+01 + -0.1173044421626378E+01 + -0.1174462129404716E+01 + -0.1175879650000000E+01 + -0.1177296981824284E+01 + -0.1178714122860622E+01 + -0.1180131070984817E+01 + -0.1181547824072675E+01 + -0.1182964380000000E+01 + -0.1184380736659541E+01 + -0.1185796892011832E+01 + -0.1187212844034353E+01 + -0.1188628590704582E+01 + -0.1190044130000000E+01 + -0.1191459459937552E+01 + -0.1192874578692051E+01 + -0.1194289484477772E+01 + -0.1195704175508996E+01 + -0.1197118650000000E+01 + -0.1198532906150250E+01 + -0.1199946942099966E+01 + -0.1201360755974558E+01 + -0.1202774345899433E+01 + -0.1204187710000000E+01 + -0.1205600846341448E+01 + -0.1207013752748084E+01 + -0.1208426426983996E+01 + -0.1209838866813272E+01 + -0.1211251070000000E+01 + -0.1212663034403960E+01 + -0.1214074758267699E+01 + -0.1215486239929458E+01 + -0.1216897477727479E+01 + -0.1218308470000000E+01 + -0.1219719215002715E+01 + -0.1221129710661121E+01 + -0.1222539954818171E+01 + -0.1223949945316813E+01 + -0.1225359680000000E+01 + -0.1226769156785182E+01 + -0.1228178373887816E+01 + -0.1229587329597859E+01 + -0.1230996022205268E+01 + -0.1232404450000000E+01 + -0.1233812611216557E+01 + -0.1235220503867615E+01 + -0.1236628125910394E+01 + -0.1238035475302116E+01 + -0.1239442550000000E+01 + -0.1240849347948590E+01 + -0.1242255867041724E+01 + -0.1243662105160563E+01 + -0.1245068060186268E+01 + -0.1246473730000000E+01 + -0.1247879112589083E+01 + -0.1249284206365488E+01 + -0.1250689009847353E+01 + -0.1252093521552812E+01 + -0.1253497740000000E+01 + -0.1254901663535080E+01 + -0.1256305289816322E+01 + -0.1257708616330024E+01 + -0.1259111640562484E+01 + -0.1260514360000000E+01 + -0.1261916772310598E+01 + -0.1263318875889224E+01 + -0.1264720669312550E+01 + -0.1266122151157251E+01 + -0.1267523320000000E+01 + -0.1268924174262527E+01 + -0.1270324711746783E+01 + -0.1271724930099776E+01 + -0.1273124826968513E+01 + -0.1274524400000000E+01 + -0.1275923646959295E+01 + -0.1277322566083645E+01 + -0.1278721155728347E+01 + -0.1280119414248700E+01 + -0.1281517340000000E+01 + -0.1282914931260295E+01 + -0.1284312185998639E+01 + -0.1285709102106835E+01 + -0.1287105677476688E+01 + -0.1288501910000000E+01 + -0.1289897797599524E+01 + -0.1291293338321799E+01 + -0.1292688530244312E+01 + -0.1294083371444550E+01 + -0.1295477860000000E+01 + -0.1296871994021610E+01 + -0.1298265771754167E+01 + -0.1299659191475919E+01 + -0.1301052251465114E+01 + -0.1302444950000000E+01 + -0.1303837285274037E+01 + -0.1305229255141535E+01 + -0.1306620857372014E+01 + -0.1308012089734995E+01 + -0.1309402950000000E+01 + -0.1310793436002241E+01 + -0.1312183545839693E+01 + -0.1313573277676026E+01 + -0.1314962629674906E+01 + -0.1316351600000000E+01 + -0.1317740186797000E+01 + -0.1319128388139692E+01 + -0.1320516202083883E+01 + -0.1321903626685383E+01 + -0.1323290660000000E+01 + -0.1324677300089759E+01 + -0.1326063545041540E+01 + -0.1327449392948443E+01 + -0.1328834841903564E+01 + -0.1330219890000000E+01 + -0.1331604535323967E+01 + -0.1332988775934148E+01 + -0.1334372609882346E+01 + -0.1335756035220363E+01 + -0.1337139050000000E+01 + -0.1338521652294376E+01 + -0.1339903840261869E+01 + -0.1341285612082174E+01 + -0.1342666965934986E+01 + -0.1344047900000000E+01 + -0.1345428412378532E+01 + -0.1346808500858379E+01 + -0.1348188163148960E+01 + -0.1349567396959694E+01 + -0.1350946200000000E+01 + -0.1352324570111499E+01 + -0.1353702505664618E+01 + -0.1355080005161988E+01 + -0.1356457067106239E+01 + -0.1357833690000000E+01 + -0.1359209872215474E+01 + -0.1360585611603149E+01 + -0.1361960905883088E+01 + -0.1363335752775351E+01 + -0.1364710150000000E+01 + -0.1366084095346607E+01 + -0.1367457586882785E+01 + -0.1368830622745660E+01 + -0.1370203201072357E+01 + -0.1371575320000000E+01 + -0.1372946977678100E+01 + -0.1374318172305711E+01 + -0.1375688902094272E+01 + -0.1377059165255222E+01 + -0.1378428960000000E+01 + -0.1379798284500993E+01 + -0.1381167136774371E+01 + -0.1382535514797253E+01 + -0.1383903416546757E+01 + -0.1385270840000000E+01 + -0.1386637783117929E+01 + -0.1388004243796804E+01 + -0.1389370219916715E+01 + -0.1390735709357751E+01 + -0.1392100710000000E+01 + -0.1393465219827292E+01 + -0.1394829237238412E+01 + -0.1396192760735887E+01 + -0.1397555788822241E+01 + -0.1398918320000000E+01 + -0.1400280352612904E+01 + -0.1401641884369548E+01 + -0.1403002912819739E+01 + -0.1404363435513287E+01 + -0.1405723450000000E+01 + -0.1407082953961092E+01 + -0.1408441945603397E+01 + -0.1409800423265157E+01 + -0.1411158385284611E+01 + -0.1412515830000000E+01 + -0.1413872755702730E+01 + -0.1415229160496864E+01 + -0.1416585042439634E+01 + -0.1417940399588269E+01 + -0.1419295230000000E+01 + -0.1420649531707991E+01 + -0.1422003302649146E+01 + -0.1423356540736307E+01 + -0.1424709243882311E+01 + -0.1426061410000000E+01 + -0.1427413037065308E+01 + -0.1428764123306551E+01 + -0.1430114667015139E+01 + -0.1431464666482485E+01 + -0.1432814120000000E+01 + -0.1434163025790778E+01 + -0.1435511381804651E+01 + -0.1436859185923136E+01 + -0.1438206436027746E+01 + -0.1439553130000000E+01 + -0.1440899265771580E+01 + -0.1442244841474844E+01 + -0.1443589855292318E+01 + -0.1444934305406528E+01 + -0.1446278190000000E+01 + -0.1447621507202902E+01 + -0.1448964254935973E+01 + -0.1450306431067593E+01 + -0.1451648033466142E+01 + -0.1452989060000000E+01 + -0.1454329508616810E+01 + -0.1455669377581263E+01 + -0.1457008665237310E+01 + -0.1458347369928905E+01 + -0.1459685490000000E+01 + -0.1461023023689857E+01 + -0.1462359968818976E+01 + -0.1463696323103167E+01 + -0.1465032084258238E+01 + -0.1466367250000000E+01 + -0.1467701818143762E+01 + -0.1469035786902833E+01 + -0.1470369154590023E+01 + -0.1471701919518142E+01 + -0.1473034080000000E+01 + -0.1474365634295096E+01 + -0.1475696580449693E+01 + -0.1477026916456741E+01 + -0.1478356640309193E+01 + -0.1479685750000000E+01 + -0.1481014243555853E+01 + -0.1482342119138396E+01 + -0.1483669374943013E+01 + -0.1484996009165086E+01 + -0.1486322020000000E+01 + -0.1487647405561492E+01 + -0.1488972163636723E+01 + -0.1490296291931208E+01 + -0.1491619788150462E+01 + -0.1492942650000000E+01 + -0.1494264875318178E+01 + -0.1495586462474712E+01 + -0.1496907409972156E+01 + -0.1498227716313067E+01 + -0.1499547380000000E+01 + -0.1500866399405795E+01 + -0.1502184772384430E+01 + -0.1503502496660168E+01 + -0.1504819569957270E+01 + -0.1506135990000000E+01 + -0.1507451754578641E+01 + -0.1508766861747567E+01 + -0.1510081309627173E+01 + -0.1511395096337852E+01 + -0.1512708220000000E+01 + -0.1514020678759639E+01 + -0.1515332470865300E+01 + -0.1516643594591142E+01 + -0.1517954048211323E+01 + -0.1519263830000000E+01 + -0.1520572938142802E+01 + -0.1521881370471232E+01 + -0.1523189124728261E+01 + -0.1524496198656859E+01 + -0.1525802590000000E+01 + -0.1527108296589152E+01 + -0.1528413316609773E+01 + -0.1529717648335817E+01 + -0.1531021290041242E+01 + -0.1532324240000000E+01 + -0.1533626496460591E+01 + -0.1534928057569679E+01 + -0.1536228921448471E+01 + -0.1537529086218176E+01 + -0.1538828550000000E+01 + -0.1540127310848486E+01 + -0.1541425366551514E+01 + -0.1542722714830299E+01 + -0.1544019353406056E+01 + -0.1545315280000000E+01 + -0.1546610492465466E+01 + -0.1547904989184265E+01 + -0.1549198768670332E+01 + -0.1550491829437600E+01 + -0.1551784170000000E+01 + -0.1553075788729653E+01 + -0.1554366683431425E+01 + -0.1555656851768371E+01 + -0.1556946291403545E+01 + -0.1558235000000000E+01 + -0.1559522975335924E+01 + -0.1560810215650035E+01 + -0.1562096719296183E+01 + -0.1563382484628221E+01 + -0.1564667510000000E+01 + -0.1565951793686653E+01 + -0.1567235333648437E+01 + -0.1568518127766896E+01 + -0.1569800173923570E+01 + -0.1571081470000000E+01 + -0.1572362013917468E+01 + -0.1573641803756217E+01 + -0.1574920837636232E+01 + -0.1576199113677498E+01 + -0.1577476630000000E+01 + -0.1578753384723478E+01 + -0.1580029375966696E+01 + -0.1581304601848176E+01 + -0.1582579060486437E+01 + -0.1583852750000000E+01 + -0.1585125668468621E+01 + -0.1586397813816998E+01 + -0.1587669183931065E+01 + -0.1588939776696754E+01 + -0.1590209590000000E+01 + -0.1591478621802038E+01 + -0.1592746870365311E+01 + -0.1594014334027565E+01 + -0.1595281011126546E+01 + -0.1596546900000000E+01 + -0.1597811998883229E+01 + -0.1599076305601760E+01 + -0.1600339817878676E+01 + -0.1601602533437062E+01 + -0.1602864450000000E+01 + -0.1604125565385048E+01 + -0.1605385877787652E+01 + -0.1606645385497732E+01 + -0.1607904086805208E+01 + -0.1609161980000000E+01 + -0.1610419063336581E+01 + -0.1611675334927634E+01 + -0.1612930792850397E+01 + -0.1614185435182107E+01 + -0.1615439260000000E+01 + -0.1616692265348630E+01 + -0.1617944449141812E+01 + -0.1619195809260680E+01 + -0.1620446343586365E+01 + -0.1621696050000000E+01 + -0.1622944926468901E+01 + -0.1624192971305118E+01 + -0.1625440182906884E+01 + -0.1626686559672434E+01 + -0.1627932100000000E+01 + -0.1629176802135766E+01 + -0.1630420663717716E+01 + -0.1631663682231782E+01 + -0.1632905855163900E+01 + -0.1634147180000000E+01 + -0.1635387654428034E+01 + -0.1636627276944019E+01 + -0.1637866046245986E+01 + -0.1639103961031969E+01 + -0.1640341020000000E+01 + -0.1641577221672096E+01 + -0.1642812563866209E+01 + -0.1644047044224274E+01 + -0.1645280660388226E+01 + -0.1646513410000000E+01 + -0.1647745290803581E+01 + -0.1648976300951145E+01 + -0.1650206438696919E+01 + -0.1651435702295129E+01 + -0.1652664090000000E+01 + -0.1653891599993581E+01 + -0.1655118230169211E+01 + -0.1656343978348050E+01 + -0.1657568842351259E+01 + -0.1658792820000000E+01 + -0.1660015909222094E+01 + -0.1661238108372012E+01 + -0.1662459415910881E+01 + -0.1663679830299834E+01 + -0.1664899350000000E+01 + -0.1666117973358041E+01 + -0.1667335698262743E+01 + -0.1668552522488425E+01 + -0.1669768443809405E+01 + -0.1670983460000000E+01 + -0.1672197568865742E+01 + -0.1673410768337016E+01 + -0.1674623056375418E+01 + -0.1675834430942547E+01 + -0.1677044890000000E+01 + -0.1678254431578990E+01 + -0.1679463053989193E+01 + -0.1680670755609901E+01 + -0.1681877534820406E+01 + -0.1683083390000000E+01 + -0.1684288319458298E+01 + -0.1685492321226211E+01 + -0.1686695393264976E+01 + -0.1687897533535827E+01 + -0.1689098740000000E+01 + -0.1690299010587819E+01 + -0.1691498343105962E+01 + -0.1692696735330195E+01 + -0.1693894185036286E+01 + -0.1695090690000000E+01 + -0.1696286248110426E+01 + -0.1697480857709941E+01 + -0.1698674517254243E+01 + -0.1699867225199029E+01 + -0.1701058980000000E+01 + -0.1702249780010476E+01 + -0.1703439623174274E+01 + -0.1704628507332834E+01 + -0.1705816430327595E+01 + -0.1707003390000000E+01 + -0.1708189384247670E+01 + -0.1709374411192964E+01 + -0.1710558469014423E+01 + -0.1711741555890587E+01 + -0.1712923670000000E+01 + -0.1714104809478843E+01 + -0.1715284972293870E+01 + -0.1716464156369475E+01 + -0.1717642359630054E+01 + -0.1718819580000000E+01 + -0.1719995815436956E+01 + -0.1721171064031555E+01 + -0.1722345323907675E+01 + -0.1723518593189197E+01 + -0.1724690870000000E+01 + -0.1725862152453332E+01 + -0.1727032438619911E+01 + -0.1728201726559825E+01 + -0.1729370014333159E+01 + -0.1730537300000000E+01 + -0.1731703581629716E+01 + -0.1732868857328800E+01 + -0.1734033125213026E+01 + -0.1735196383398168E+01 + -0.1736358630000000E+01 + -0.1737519863107803E+01 + -0.1738680080704888E+01 + -0.1739839280748071E+01 + -0.1740997461194169E+01 + -0.1742154620000000E+01 + -0.1743310755139071E+01 + -0.1744465864651650E+01 + -0.1745619946594692E+01 + -0.1746772999025156E+01 + -0.1747925020000000E+01 + -0.1749076007615912E+01 + -0.1750225960128515E+01 + -0.1751374875833161E+01 + -0.1752522753025205E+01 + -0.1753669590000000E+01 + -0.1754815384957279E+01 + -0.1755960135714291E+01 + -0.1757103839992664E+01 + -0.1758246495514024E+01 + -0.1759388100000000E+01 + -0.1760528651274970E+01 + -0.1761668147574319E+01 + -0.1762806587236184E+01 + -0.1763943968598698E+01 + -0.1765080290000000E+01 + -0.1766215549702839E+01 + -0.1767349745668430E+01 + -0.1768482875782601E+01 + -0.1769614937931181E+01 + -0.1770745930000000E+01 + -0.1771875849913672E+01 + -0.1773004695751959E+01 + -0.1774132465633411E+01 + -0.1775259157676575E+01 + -0.1776384770000000E+01 + -0.1777509300722472E+01 + -0.1778632747963731E+01 + -0.1779755109843754E+01 + -0.1780876384482518E+01 + -0.1781996570000000E+01 + -0.1783115664476438E+01 + -0.1784233665833114E+01 + -0.1785350571951572E+01 + -0.1786466380713352E+01 + -0.1787581090000000E+01 + -0.1788694697771776E+01 + -0.1789807202303812E+01 + -0.1790918601949961E+01 + -0.1792028895064073E+01 + -0.1793138080000000E+01 + -0.1794246154996460E+01 + -0.1795353117831638E+01 + -0.1796458966168587E+01 + -0.1797563697670356E+01 + -0.1798667310000000E+01 + -0.1799769800962384E+01 + -0.1800871168929635E+01 + -0.1801971412415694E+01 + -0.1803070529934502E+01 + -0.1804168520000000E+01 + -0.1805265380994003E+01 + -0.1806361110769822E+01 + -0.1807455707048638E+01 + -0.1808549167551636E+01 + -0.1809641490000000E+01 + -0.1810732672181603E+01 + -0.1811822712151079E+01 + -0.1812911608029754E+01 + -0.1813999357938953E+01 + -0.1815085960000000E+01 + -0.1816171412359586E+01 + -0.1817255713265862E+01 + -0.1818338860992345E+01 + -0.1819420853812552E+01 + -0.1820501690000000E+01 + -0.1821581367740054E+01 + -0.1822659884865474E+01 + -0.1823737239120866E+01 + -0.1824813428250839E+01 + -0.1825888450000000E+01 + -0.1826962302200198E+01 + -0.1828034983032243E+01 + -0.1829106490764191E+01 + -0.1830176823664092E+01 + -0.1831245980000000E+01 + -0.1832313958019157E+01 + -0.1833380755885553E+01 + -0.1834446371742373E+01 + -0.1835510803732795E+01 + -0.1836574050000000E+01 + -0.1837636108603178E+01 + -0.1838696977265544E+01 + -0.1839756653626321E+01 + -0.1840815135324732E+01 + -0.1841872420000000E+01 + -0.1842928505968134E+01 + -0.1843983394252273E+01 + -0.1845037086552347E+01 + -0.1846089584568281E+01 + -0.1847140890000000E+01 + -0.1848191004324290E+01 + -0.1849239928125363E+01 + -0.1850287661764292E+01 + -0.1851334205602147E+01 + -0.1852379560000000E+01 + -0.1853423725534708E+01 + -0.1854466703646274E+01 + -0.1855508495990486E+01 + -0.1856549104223132E+01 + -0.1857588530000000E+01 + -0.1858626774816877E+01 + -0.1859663839529540E+01 + -0.1860699724833765E+01 + -0.1861734431425326E+01 + -0.1862767960000000E+01 + -0.1863800311357784E+01 + -0.1864831486715566E+01 + -0.1865861487394456E+01 + -0.1866890314715564E+01 + -0.1867917970000000E+01 + -0.1868944454471988E+01 + -0.1869969768968197E+01 + -0.1870993914228414E+01 + -0.1872016890992420E+01 + -0.1873038700000000E+01 + -0.1874059342114266E+01 + -0.1875078818691645E+01 + -0.1876097131211891E+01 + -0.1877114281154757E+01 + -0.1878130270000000E+01 + -0.1879145099070948E+01 + -0.1880158769065224E+01 + -0.1881171280524026E+01 + -0.1882182633988552E+01 + -0.1883192830000000E+01 + -0.1884201869281944E+01 + -0.1885209753287462E+01 + -0.1886216483652008E+01 + -0.1887222062011036E+01 + -0.1888226490000000E+01 + -0.1889229769081277E+01 + -0.1890231900024929E+01 + -0.1891232883427944E+01 + -0.1892232719887306E+01 + -0.1893231410000000E+01 + -0.1894228954472950E+01 + -0.1895225354452821E+01 + -0.1896220611196217E+01 + -0.1897214725959742E+01 + -0.1898207700000000E+01 + -0.1899199534546926E+01 + -0.1900190230723788E+01 + -0.1901179789627187E+01 + -0.1902168212353725E+01 + -0.1903155500000000E+01 + -0.1904141653659347E+01 + -0.1905126674412027E+01 + -0.1906110563335034E+01 + -0.1907093321505360E+01 + -0.1908074950000000E+01 + -0.1909055449855686E+01 + -0.1910034821948104E+01 + -0.1911013067112679E+01 + -0.1911990186184836E+01 + -0.1912966180000000E+01 + -0.1913941049477910E+01 + -0.1914914795875558E+01 + -0.1915887420534251E+01 + -0.1916858924795296E+01 + -0.1917829310000000E+01 + -0.1918798577432676E+01 + -0.1919766728149666E+01 + -0.1920733763150317E+01 + -0.1921699683433979E+01 + -0.1922664490000000E+01 + -0.1923628183831387E+01 + -0.1924590765845781E+01 + -0.1925552236944481E+01 + -0.1926512598028788E+01 + -0.1927471850000000E+01 + -0.1928429993801777E+01 + -0.1929387030547213E+01 + -0.1930342961391760E+01 + -0.1931297787490872E+01 + -0.1932251510000000E+01 + -0.1933204130081505E+01 + -0.1934155648925368E+01 + -0.1935106067728479E+01 + -0.1936055387687727E+01 + -0.1937003610000000E+01 + -0.1937950735792205E+01 + -0.1938896765911316E+01 + -0.1939841701134325E+01 + -0.1940785542238222E+01 + -0.1941728290000000E+01 + -0.1942669945309675E+01 + -0.1943610509509368E+01 + -0.1944549984054222E+01 + -0.1945488370399385E+01 + -0.1946425670000000E+01 + -0.1947361884169094E+01 + -0.1948297013651213E+01 + -0.1949231059048786E+01 + -0.1950164020964239E+01 + -0.1951095900000000E+01 + -0.1952026696893950E+01 + -0.1952956412925780E+01 + -0.1953885049510635E+01 + -0.1954812608063661E+01 + -0.1955739090000000E+01 + -0.1956664496655107E+01 + -0.1957588829045667E+01 + -0.1958512088108673E+01 + -0.1959434274781120E+01 + -0.1960355390000000E+01 + -0.1961275434725622E+01 + -0.1962194410011552E+01 + -0.1963112316934671E+01 + -0.1964029156571860E+01 + -0.1964944930000000E+01 + -0.1965859638282405E+01 + -0.1966773282428126E+01 + -0.1967685863432643E+01 + -0.1968597382291440E+01 + -0.1969507840000000E+01 + -0.1970417237584755E+01 + -0.1971325576195945E+01 + -0.1972232857014756E+01 + -0.1973139081222378E+01 + -0.1974044250000000E+01 + -0.1974948364498572E+01 + -0.1975851425748096E+01 + -0.1976753434748333E+01 + -0.1977654392499047E+01 + -0.1978554300000000E+01 + -0.1979453158260955E+01 + -0.1980350968331672E+01 + -0.1981247731271912E+01 + -0.1982143448141435E+01 + -0.1983038120000000E+01 + -0.1983931747897608E+01 + -0.1984824332845216E+01 + -0.1985715875844020E+01 + -0.1986606377895216E+01 + -0.1987495840000000E+01 + -0.1988384263188612E+01 + -0.1989271648607464E+01 + -0.1990157997432009E+01 + -0.1991043310837703E+01 + -0.1991927590000000E+01 + -0.1992810836067943E+01 + -0.1993693050084929E+01 + -0.1994574233067943E+01 + -0.1995454386033972E+01 + -0.1996333510000000E+01 + -0.1997211605979616E+01 + -0.1998088674972822E+01 + -0.1998964717976218E+01 + -0.1999839735986410E+01 + -0.2000713730000000E+01 + -0.2001586701053592E+01 + -0.2002458650343786E+01 + -0.2003329579107185E+01 + -0.2004199488580389E+01 + -0.2005068380000000E+01 + -0.2005936254526017E+01 + -0.2006803113012035E+01 + -0.2007668956235043E+01 + -0.2008533784972034E+01 + -0.2009397600000000E+01 + -0.2010260402202338E+01 + -0.2011122192888076E+01 + -0.2011982973472644E+01 + -0.2012842745371474E+01 + -0.2013701510000000E+01 + -0.2014559268664628E+01 + -0.2015416022235663E+01 + -0.2016271771474384E+01 + -0.2017126517142070E+01 + -0.2017980260000000E+01 + -0.2018833000899149E+01 + -0.2019684741049272E+01 + -0.2020535481749822E+01 + -0.2021385224300247E+01 + -0.2022233970000000E+01 + -0.2023081720058775E+01 + -0.2023928475327246E+01 + -0.2024774236566329E+01 + -0.2025619004536941E+01 + -0.2026462780000000E+01 + -0.2027305563825750E+01 + -0.2028147357321744E+01 + -0.2028988161904863E+01 + -0.2029827978991988E+01 + -0.2030666810000000E+01 + -0.2031504656238226E+01 + -0.2032341518585780E+01 + -0.2033177397814221E+01 + -0.2034012294695107E+01 + -0.2034846210000000E+01 + -0.2035679144581345E+01 + -0.2036511099615137E+01 + -0.2037342076358256E+01 + -0.2038172076067583E+01 + -0.2039001100000000E+01 + -0.2039829149356393E+01 + -0.2040656225113673E+01 + -0.2041482328192757E+01 + -0.2042307459514560E+01 + -0.2043131620000000E+01 + -0.2043954810633082E+01 + -0.2044777032650171E+01 + -0.2045598287350718E+01 + -0.2046418576034176E+01 + -0.2047237900000000E+01 + -0.2048056260431277E+01 + -0.2048873658045645E+01 + -0.2049690093444373E+01 + -0.2050505567228734E+01 + -0.2051320080000000E+01 + -0.2052133632521807E+01 + -0.2052946226207252E+01 + -0.2053757862631791E+01 + -0.2054568543370888E+01 + -0.2055378270000000E+01 + -0.2056187043961492E+01 + -0.2056994866165350E+01 + -0.2057801737388461E+01 + -0.2058607658407714E+01 + -0.2059412630000000E+01 + -0.2060216652992222E+01 + -0.2061019728411349E+01 + -0.2061821857334365E+01 + -0.2062623040838254E+01 + -0.2063423280000000E+01 + -0.2064222575909619E+01 + -0.2065020929709253E+01 + -0.2065818342554079E+01 + -0.2066614815599269E+01 + -0.2067410350000000E+01 + -0.2068204946889302E+01 + -0.2068998607311637E+01 + -0.2069791332289320E+01 + -0.2070583122844669E+01 + -0.2071373980000000E+01 + -0.2072163904773171E+01 + -0.2072952898164199E+01 + -0.2073740961168642E+01 + -0.2074528094782056E+01 + -0.2075314300000000E+01 + -0.2076099577858014E+01 + -0.2076883929551567E+01 + -0.2077667356316114E+01 + -0.2078449859387107E+01 + -0.2079231440000000E+01 + -0.2080012099314775E+01 + -0.2080791838189532E+01 + -0.2081570657406902E+01 + -0.2082348557749515E+01 + -0.2083125540000000E+01 + -0.2083901605042888E+01 + -0.2084676754170306E+01 + -0.2085450988776279E+01 + -0.2086224310254835E+01 + -0.2086996720000000E+01 + -0.2087768219313674E+01 + -0.2088538809129247E+01 + -0.2089308490287983E+01 + -0.2090077263631146E+01 + -0.2090845130000000E+01 + -0.2091612090262418E+01 + -0.2092378145392707E+01 + -0.2093143296391789E+01 + -0.2093907544260580E+01 + -0.2094670890000000E+01 + -0.2095433334676657E+01 + -0.2096194879619924E+01 + -0.2096955526224861E+01 + -0.2097715275886533E+01 + -0.2098474130000000E+01 + -0.2099232089830954E+01 + -0.2099989156127599E+01 + -0.2100745329508766E+01 + -0.2101500610593289E+01 + -0.2102255000000000E+01 + -0.2103008498479527E+01 + -0.2103761107309682E+01 + -0.2104512827900074E+01 + -0.2105263661660310E+01 + -0.2106013610000000E+01 + -0.2106762674250939E+01 + -0.2107510855433674E+01 + -0.2108258154490939E+01 + -0.2109004572365469E+01 + -0.2109750110000000E+01 + -0.2110494768356718E+01 + -0.2111238548475624E+01 + -0.2111981451416171E+01 + -0.2112723478237812E+01 + -0.2113464630000000E+01 + -0.2114204907762189E+01 + -0.2114944312583829E+01 + -0.2115682845524376E+01 + -0.2116420507643282E+01 + -0.2117157300000000E+01 + -0.2117893223634530E+01 + -0.2118628279509060E+01 + -0.2119362468566325E+01 + -0.2120095791749060E+01 + -0.2120828250000000E+01 + -0.2121559844339694E+01 + -0.2122290576099934E+01 + -0.2123020446690328E+01 + -0.2123749457520481E+01 + -0.2124477610000000E+01 + -0.2125204905406697E+01 + -0.2125931344491205E+01 + -0.2126656927872366E+01 + -0.2127381656169018E+01 + -0.2128105530000000E+01 + -0.2128828550113520E+01 + -0.2129550717775245E+01 + -0.2130272034380210E+01 + -0.2130992501323450E+01 + -0.2131712120000000E+01 + -0.2132430891739225E+01 + -0.2133148817607817E+01 + -0.2133865898606795E+01 + -0.2134582135737182E+01 + -0.2135297530000000E+01 + -0.2136012082369579E+01 + -0.2136725793713489E+01 + -0.2137438664872609E+01 + -0.2138150696687819E+01 + -0.2138861890000000E+01 + -0.2139572245742460E+01 + -0.2140281765218229E+01 + -0.2140990449822769E+01 + -0.2141698300951539E+01 + -0.2142405320000000E+01 + -0.2143111508260582E+01 + -0.2143816866613595E+01 + -0.2144521395836316E+01 + -0.2145225096706025E+01 + -0.2145927970000000E+01 + -0.2146630016575211E+01 + -0.2147331237607391E+01 + -0.2148031634351966E+01 + -0.2148731208064361E+01 + -0.2149429960000000E+01 + -0.2150127891358575E+01 + -0.2150825003116841E+01 + -0.2151521296195820E+01 + -0.2152216771516532E+01 + -0.2152911430000000E+01 + -0.2153605272630490E+01 + -0.2154298300645245E+01 + -0.2154990515344756E+01 + -0.2155681918029511E+01 + -0.2156372510000000E+01 + -0.2157062292439468E+01 + -0.2157751266062180E+01 + -0.2158439431465158E+01 + -0.2159126789245424E+01 + -0.2159813340000000E+01 + -0.2160499084491641E+01 + -0.2161184024146037E+01 + -0.2161868160554612E+01 + -0.2162551495308792E+01 + -0.2163234030000000E+01 + -0.2163915766073970E+01 + -0.2164596704393673E+01 + -0.2165276845676392E+01 + -0.2165956190639407E+01 + -0.2166634740000000E+01 + -0.2167312494572481E+01 + -0.2167989455559270E+01 + -0.2168665624259820E+01 + -0.2169341001973580E+01 + -0.2170015590000000E+01 + -0.2170689389556110E+01 + -0.2171362401529247E+01 + -0.2172034626724329E+01 + -0.2172706065946275E+01 + -0.2173376720000000E+01 + -0.2174046589763083E+01 + -0.2174715676403743E+01 + -0.2175383981162862E+01 + -0.2176051505281321E+01 + -0.2176718250000000E+01 + -0.2177384216511561E+01 + -0.2178049405815782E+01 + -0.2178713818864223E+01 + -0.2179377456608443E+01 + -0.2180040320000000E+01 + -0.2180702410030674E+01 + -0.2181363727853129E+01 + -0.2182024274660246E+01 + -0.2182684051644908E+01 + -0.2183343060000000E+01 + -0.2184001300885741E+01 + -0.2184658775331702E+01 + -0.2185315484334793E+01 + -0.2185971428891923E+01 + -0.2186626610000000E+01 + -0.2187281028666363E+01 + -0.2187934685940063E+01 + -0.2188587582880582E+01 + -0.2189239720547401E+01 + -0.2189891100000000E+01 + -0.2190541722288809E+01 + -0.2191191588428048E+01 + -0.2191840699422881E+01 + -0.2192489056278476E+01 + -0.2193136660000000E+01 + -0.2193783511618400E+01 + -0.2194429612267749E+01 + -0.2195074963107896E+01 + -0.2195719565298696E+01 + -0.2196363420000000E+01 + -0.2197006528357589E+01 + -0.2197648891460959E+01 + -0.2198290510385534E+01 + -0.2198931386206740E+01 + -0.2199571520000000E+01 + -0.2200210912791244E+01 + -0.2200849565408416E+01 + -0.2201487478629966E+01 + -0.2202124653234344E+01 + -0.2202761090000000E+01 + -0.2203396789837438E+01 + -0.2204031754185379E+01 + -0.2204665984614602E+01 + -0.2205299482695883E+01 + -0.2205932250000000E+01 + -0.2206564287939007E+01 + -0.2207195597290068E+01 + -0.2207826178671625E+01 + -0.2208456032702122E+01 + -0.2209085160000000E+01 + -0.2209713561286536E+01 + -0.2210341237694350E+01 + -0.2210968190458895E+01 + -0.2211594420815627E+01 + -0.2212219930000000E+01 + -0.2212844719234849E+01 + -0.2213468789692533E+01 + -0.2214092142532793E+01 + -0.2214714778915369E+01 + -0.2215336700000000E+01 + -0.2215957906894068E+01 + -0.2216578400495518E+01 + -0.2217198181649933E+01 + -0.2217817251202899E+01 + -0.2218435610000000E+01 + -0.2219053258948877E+01 + -0.2219670199205396E+01 + -0.2220286431987475E+01 + -0.2220901958513037E+01 + -0.2221516780000000E+01 + -0.2222130897630422E+01 + -0.2222744312442900E+01 + -0.2223357025440167E+01 + -0.2223969037624956E+01 + -0.2224580350000000E+01 + -0.2225190963569435E+01 + -0.2225800879343005E+01 + -0.2226410098331857E+01 + -0.2227018621547140E+01 + -0.2227626450000000E+01 + -0.2228233584731840E+01 + -0.2228840026905082E+01 + -0.2229445777712404E+01 + -0.2230050838346485E+01 + -0.2230655210000000E+01 + -0.2231258893823207E+01 + -0.2231861890796668E+01 + -0.2232464201858526E+01 + -0.2233065827946923E+01 + -0.2233666770000000E+01 + -0.2234267029015335E+01 + -0.2234866606228247E+01 + -0.2235465502933492E+01 + -0.2236063720425825E+01 + -0.2236661260000000E+01 + -0.2237258122835453E+01 + -0.2237854309650342E+01 + -0.2238449821047505E+01 + -0.2239044657629778E+01 + -0.2239638820000000E+01 + -0.2240232308922852E+01 + -0.2240825125810384E+01 + -0.2241417272236490E+01 + -0.2242008749775064E+01 + -0.2242599560000000E+01 + -0.2243189704353141E+01 + -0.2243779183748125E+01 + -0.2244367998966538E+01 + -0.2244956150789967E+01 + -0.2245543640000000E+01 + -0.2246130467424585E+01 + -0.2246716634077119E+01 + -0.2247302141017360E+01 + -0.2247886989305068E+01 + -0.2248471180000000E+01 + -0.2249054714188520E+01 + -0.2249637593063402E+01 + -0.2250219817844024E+01 + -0.2250801389749764E+01 + -0.2251382310000000E+01 + -0.2251962579741335E+01 + -0.2252542199829274E+01 + -0.2253121171046544E+01 + -0.2253699494175877E+01 + -0.2254277170000000E+01 + -0.2254854199406139E+01 + -0.2255430583699503E+01 + -0.2256006324289798E+01 + -0.2256581422586728E+01 + -0.2257155880000000E+01 + -0.2257729697834109E+01 + -0.2258302876972714E+01 + -0.2258875418194264E+01 + -0.2259447322277210E+01 + -0.2260018590000000E+01 + -0.2260589222217426E+01 + -0.2261159220089643E+01 + -0.2261728584853147E+01 + -0.2262297317744434E+01 + -0.2262865420000000E+01 + -0.2263432892816187E+01 + -0.2263999737228715E+01 + -0.2264565954233149E+01 + -0.2265131544825056E+01 + -0.2265696510000000E+01 + -0.2266260850757827E+01 + -0.2266824568115499E+01 + -0.2267387663094257E+01 + -0.2267950136715343E+01 + -0.2268511990000000E+01 + -0.2269073223992506E+01 + -0.2269633839829290E+01 + -0.2270193838669822E+01 + -0.2270753221673570E+01 + -0.2271311990000000E+01 + -0.2271870144792151E+01 + -0.2272427687127339E+01 + -0.2272984618066453E+01 + -0.2273540938670377E+01 + -0.2274096650000000E+01 + -0.2274651753078891E+01 + -0.2275206248781352E+01 + -0.2275760137944368E+01 + -0.2276313421404922E+01 + -0.2276866100000000E+01 + -0.2277418174652285E+01 + -0.2277969646627252E+01 + -0.2278520517276077E+01 + -0.2279070787949935E+01 + -0.2279620460000000E+01 + -0.2280169534711970E+01 + -0.2280718013109639E+01 + -0.2281265896151323E+01 + -0.2281813184795337E+01 + -0.2282359880000000E+01 + -0.2282905982739834E+01 + -0.2283451494054191E+01 + -0.2283996414998631E+01 + -0.2284540746628714E+01 + -0.2285084490000000E+01 + -0.2285627646168695E+01 + -0.2286170216193598E+01 + -0.2286712201134153E+01 + -0.2287253602049805E+01 + -0.2287794420000000E+01 + -0.2288334656025384E+01 + -0.2288874311091416E+01 + -0.2289413386144756E+01 + -0.2289951882132064E+01 + -0.2290489800000000E+01 + -0.2291027140769767E+01 + -0.2291563905760737E+01 + -0.2292100096366823E+01 + -0.2292635713981940E+01 + -0.2293170760000000E+01 + -0.2293705235695548E+01 + -0.2294239141865637E+01 + -0.2294772479187953E+01 + -0.2295305248340180E+01 + -0.2295837450000000E+01 + -0.2296369084928044E+01 + -0.2296900154216715E+01 + -0.2297430659041365E+01 + -0.2297960600577343E+01 + -0.2298489980000000E+01 + -0.2299018798512279E+01 + -0.2299547057427503E+01 + -0.2300074758086587E+01 + -0.2300601901830448E+01 + -0.2301128490000000E+01 + -0.2301654523822839E+01 + -0.2302180004073272E+01 + -0.2302704931412286E+01 + -0.2303229306500867E+01 + -0.2303753130000000E+01 + -0.2304276402676365E+01 + -0.2304799125719407E+01 + -0.2305321300424268E+01 + -0.2305842928086086E+01 + -0.2306364010000000E+01 + -0.2306884547391703E+01 + -0.2307404541209098E+01 + -0.2307923992330641E+01 + -0.2308442901634790E+01 + -0.2308961270000000E+01 + -0.2309479098396825E+01 + -0.2309996388164202E+01 + -0.2310513140733168E+01 + -0.2311029357534755E+01 + -0.2311545040000000E+01 + -0.2312060189420999E+01 + -0.2312574806534094E+01 + -0.2313088891936690E+01 + -0.2313602446226191E+01 + -0.2314115470000000E+01 + -0.2314627963999180E+01 + -0.2315139929539422E+01 + -0.2315651368080073E+01 + -0.2316162281080483E+01 + -0.2316672670000000E+01 + -0.2317182536182281E+01 + -0.2317691880508220E+01 + -0.2318200703743017E+01 + -0.2318709006651877E+01 + -0.2319216790000000E+01 + -0.2319724054631696E+01 + -0.2320230801707701E+01 + -0.2320737032467858E+01 + -0.2321242748152010E+01 + -0.2321747950000000E+01 + -0.2322252639210935E+01 + -0.2322756816820978E+01 + -0.2323260483825552E+01 + -0.2323763641220085E+01 + -0.2324266290000000E+01 + -0.2324768431164563E+01 + -0.2325270065728390E+01 + -0.2325771194709935E+01 + -0.2326271819127654E+01 + -0.2326771940000000E+01 + -0.2327271558370813E+01 + -0.2327770675385465E+01 + -0.2328269292214710E+01 + -0.2328767410029303E+01 + -0.2329265030000000E+01 + -0.2329762153272185E+01 + -0.2330258780889753E+01 + -0.2330754913871228E+01 + -0.2331250553235136E+01 + -0.2331745700000000E+01 + -0.2332240355180449E+01 + -0.2332734519775527E+01 + -0.2333228194780379E+01 + -0.2333721381190155E+01 + -0.2334214080000000E+01 + -0.2334706292246020E+01 + -0.2335198019128143E+01 + -0.2335689261887257E+01 + -0.2336180021764247E+01 + -0.2336670300000000E+01 + -0.2337160097755474E+01 + -0.2337649415871903E+01 + -0.2338138255110597E+01 + -0.2338626616232860E+01 + -0.2339114500000000E+01 + -0.2339601907292087E+01 + -0.2340088839464244E+01 + -0.2340575297990358E+01 + -0.2341061284344314E+01 + -0.2341546800000000E+01 + -0.2342031846276179E+01 + -0.2342516423871121E+01 + -0.2343000533327974E+01 + -0.2343484175189884E+01 + -0.2343967350000000E+01 + -0.2344450058483198E+01 + -0.2344932302091272E+01 + -0.2345414082457748E+01 + -0.2345895401216149E+01 + -0.2346376260000000E+01 + -0.2346856660271031E+01 + -0.2347336602803790E+01 + -0.2347816088201035E+01 + -0.2348295117065520E+01 + -0.2348773690000000E+01 + -0.2349251807712681E+01 + -0.2349729471333566E+01 + -0.2350206682098112E+01 + -0.2350683441241771E+01 + -0.2351159750000000E+01 + -0.2351635609598247E+01 + -0.2352111021221945E+01 + -0.2352585986046518E+01 + -0.2353060505247394E+01 + -0.2353534580000000E+01 + -0.2354008211414330E+01 + -0.2354481400338655E+01 + -0.2354954147555815E+01 + -0.2355426453848651E+01 + -0.2355898320000000E+01 + -0.2356369746904433E+01 + -0.2356840735903435E+01 + -0.2357311288450220E+01 + -0.2357781405998004E+01 + -0.2358251090000000E+01 + -0.2358720341767938E+01 + -0.2359189162047606E+01 + -0.2359657551443304E+01 + -0.2360125510559335E+01 + -0.2360593040000000E+01 + -0.2361060140503814E+01 + -0.2361526813346142E+01 + -0.2361993059936563E+01 + -0.2362458881684657E+01 + -0.2362924280000000E+01 + -0.2363389256216808E+01 + -0.2363853811367827E+01 + -0.2364317946410444E+01 + -0.2364781662302040E+01 + -0.2365244960000000E+01 + -0.2365707840468958E+01 + -0.2366170304702550E+01 + -0.2366632353701663E+01 + -0.2367093988467184E+01 + -0.2367555210000000E+01 + -0.2368016019347361E+01 + -0.2368476417741973E+01 + -0.2368936406462904E+01 + -0.2369395986789224E+01 + -0.2369855160000000E+01 + -0.2370313927261598E+01 + -0.2370772289289558E+01 + -0.2371230246686721E+01 + -0.2371687800055922E+01 + -0.2372144950000000E+01 + -0.2372601697286250E+01 + -0.2373058043339795E+01 + -0.2373513989750214E+01 + -0.2373969538107089E+01 + -0.2374424690000000E+01 + -0.2374879446873404E+01 + -0.2375333809591264E+01 + -0.2375787778872422E+01 + -0.2376241355435721E+01 + -0.2376694540000000E+01 + -0.2377147333380137E+01 + -0.2377599736775150E+01 + -0.2378051751480095E+01 + -0.2378503378790027E+01 + -0.2378954620000000E+01 + -0.2379405476326050E+01 + -0.2379855948668136E+01 + -0.2380306037847197E+01 + -0.2380755744684172E+01 + -0.2381205070000000E+01 + -0.2381654014675663E+01 + -0.2382102579832305E+01 + -0.2382550766651117E+01 + -0.2382998576313286E+01 + -0.2383446010000000E+01 + -0.2383893068891301E+01 + -0.2384339754162643E+01 + -0.2384786066988334E+01 + -0.2385232008542684E+01 + -0.2385677580000000E+01 + -0.2386122782479135E+01 + -0.2386567616877124E+01 + -0.2387012084035546E+01 + -0.2387456184795978E+01 + -0.2387899920000000E+01 + -0.2388343290552158E+01 + -0.2388786297608860E+01 + -0.2389228942389484E+01 + -0.2389671226113405E+01 + -0.2390113150000000E+01 + -0.2390554715232235E+01 + -0.2390995922847436E+01 + -0.2391436773846519E+01 + -0.2391877269230402E+01 + -0.2392317410000000E+01 + -0.2392757197158904E+01 + -0.2393196631721398E+01 + -0.2393635714704440E+01 + -0.2394074447124988E+01 + -0.2394512830000000E+01 + -0.2394950864372149E+01 + -0.2395388551386972E+01 + -0.2395825892215720E+01 + -0.2396262888029646E+01 + -0.2396699540000000E+01 + -0.2397135849272500E+01 + -0.2397571816890714E+01 + -0.2398007443872680E+01 + -0.2398442731236430E+01 + -0.2398877680000000E+01 + -0.2399312291177854E+01 + -0.2399746565770171E+01 + -0.2400180504773562E+01 + -0.2400614109184635E+01 + -0.2401047380000000E+01 + -0.2401480318256086E+01 + -0.2401912925148601E+01 + -0.2402345201913073E+01 + -0.2402777149785030E+01 + -0.2403208770000000E+01 + -0.2403640063717802E+01 + -0.2404071031795424E+01 + -0.2404501675014145E+01 + -0.2404931994155244E+01 + -0.2405361990000000E+01 + -0.2405791663432705E+01 + -0.2406221015749701E+01 + -0.2406650048350346E+01 + -0.2407078762633993E+01 + -0.2407507160000000E+01 + -0.2407935241751379E+01 + -0.2408363008805771E+01 + -0.2408790461984474E+01 + -0.2409217602108784E+01 + -0.2409644430000000E+01 + -0.2410070946521779E+01 + -0.2410497152707215E+01 + -0.2410923049631762E+01 + -0.2411348638370872E+01 + -0.2411773920000000E+01 + -0.2412198895601505E+01 + -0.2412623566285368E+01 + -0.2413047933168480E+01 + -0.2413471997367728E+01 + -0.2413895760000000E+01 + -0.2414319222192202E+01 + -0.2414742385111311E+01 + -0.2415165249934318E+01 + -0.2415587817838217E+01 + -0.2416010090000000E+01 + -0.2416432067549685E+01 + -0.2416853751429388E+01 + -0.2417275142534248E+01 + -0.2417696241759405E+01 + -0.2418117050000000E+01 + -0.2418537568169057E+01 + -0.2418957797251139E+01 + -0.2419377738248691E+01 + -0.2419797392164163E+01 + -0.2420216760000000E+01 + -0.2420635842814087E+01 + -0.2421054641886059E+01 + -0.2421473158550988E+01 + -0.2421891394143944E+01 + -0.2422309350000000E+01 + -0.2422727027374593E+01 + -0.2423144427204624E+01 + -0.2423561550347359E+01 + -0.2423978397660062E+01 + -0.2424394970000000E+01 + -0.2424811268247538E+01 + -0.2425227293375442E+01 + -0.2425643046379577E+01 + -0.2426058528255808E+01 + -0.2426473740000000E+01 + -0.2426888682675253E+01 + -0.2427303357613607E+01 + -0.2427717766214333E+01 + -0.2428131909876706E+01 + -0.2428545790000000E+01 + -0.2428959407851449E+01 + -0.2429372764170132E+01 + -0.2429785859563092E+01 + -0.2430198694637367E+01 + -0.2430611270000000E+01 + -0.2431023586398951E+01 + -0.2431435645145864E+01 + -0.2431847447693301E+01 + -0.2432258995493825E+01 + -0.2432670290000000E+01 + -0.2433081332552746E+01 + -0.2433492124046412E+01 + -0.2433902665263706E+01 + -0.2434312956987333E+01 + -0.2434723000000000E+01 + -0.2435132795150065E+01 + -0.2435542343548487E+01 + -0.2435951646371877E+01 + -0.2436360704796844E+01 + -0.2436769520000000E+01 + -0.2437178093166994E+01 + -0.2437586425519640E+01 + -0.2437994518288788E+01 + -0.2438402372705291E+01 + -0.2438809990000000E+01 + -0.2439217371301957E+01 + -0.2439624517332955E+01 + -0.2440031428712974E+01 + -0.2440438106061995E+01 + -0.2440844550000000E+01 + -0.2441250761305177E+01 + -0.2441656741388541E+01 + -0.2442062491819318E+01 + -0.2442468014166729E+01 + -0.2442873310000000E+01 + -0.2443278380757336E+01 + -0.2443683227352880E+01 + -0.2444087850569755E+01 + -0.2444492251191087E+01 + -0.2444896430000000E+01 + -0.2445300387825478E+01 + -0.2445704125679940E+01 + -0.2446107644621663E+01 + -0.2446510945708924E+01 + -0.2446914030000000E+01 + -0.2447316898580750E+01 + -0.2447719552647359E+01 + -0.2448121993423593E+01 + -0.2448524222133218E+01 + -0.2448926240000000E+01 + -0.2449328048171521E+01 + -0.2449729647490623E+01 + -0.2450131038723965E+01 + -0.2450532222638205E+01 + -0.2450933200000000E+01 + -0.2451333971693167E+01 + -0.2451734539070149E+01 + -0.2452134903600548E+01 + -0.2452535066753964E+01 + -0.2452935030000000E+01 + -0.2453334794655812E+01 + -0.2453734361428781E+01 + -0.2454133730873845E+01 + -0.2454532903545939E+01 + -0.2454931880000000E+01 + -0.2455330660963585E+01 + -0.2455729247854726E+01 + -0.2456127642264074E+01 + -0.2456525845782281E+01 + -0.2456923860000000E+01 + -0.2457321686369848E+01 + -0.2457719325792316E+01 + -0.2458116779029860E+01 + -0.2458514046844936E+01 + -0.2458911130000000E+01 + -0.2459308029317021E+01 + -0.2459704745856009E+01 + -0.2460101280736486E+01 + -0.2460497635077976E+01 + -0.2460893810000000E+01 + -0.2461289806602069E+01 + -0.2461685625903649E+01 + -0.2462081268904195E+01 + -0.2462476736603160E+01 + -0.2462872030000000E+01 + -0.2463267150114703E+01 + -0.2463662098049395E+01 + -0.2464056874926735E+01 + -0.2464451481869384E+01 + -0.2464845920000000E+01 + -0.2465240190459119E+01 + -0.2465634294458772E+01 + -0.2466028233228866E+01 + -0.2466422007999306E+01 + -0.2466815620000000E+01 + -0.2467209070368822E+01 + -0.2467602359875518E+01 + -0.2467995489197804E+01 + -0.2468388459013393E+01 + -0.2468781270000000E+01 + -0.2469173922945594E+01 + -0.2469566419079156E+01 + -0.2469958759739921E+01 + -0.2470350946267124E+01 + -0.2470742980000000E+01 + -0.2471134862248802E+01 + -0.2471526594207858E+01 + -0.2471918177042513E+01 + -0.2472309611918111E+01 + -0.2472700900000000E+01 + -0.2473092042379196E+01 + -0.2473483039849411E+01 + -0.2473873893130028E+01 + -0.2474264602940430E+01 + -0.2474655170000000E+01 + -0.2475045595114412E+01 + -0.2475435879434497E+01 + -0.2475826024197376E+01 + -0.2476216030640170E+01 + -0.2476605900000000E+01 + -0.2476995633323156E+01 + -0.2477385230892601E+01 + -0.2477774692800468E+01 + -0.2478164019138891E+01 + -0.2478553210000000E+01 + -0.2478942265432965E+01 + -0.2479331185315099E+01 + -0.2479719969480751E+01 + -0.2480108617764268E+01 + -0.2480497130000000E+01 + -0.2480885506064982E+01 + -0.2481273746007001E+01 + -0.2481661849916528E+01 + -0.2482049817884037E+01 + -0.2482437650000000E+01 + -0.2482825346307105E+01 + -0.2483212906656897E+01 + -0.2483600330853137E+01 + -0.2483987618699584E+01 + -0.2484374770000000E+01 + -0.2484761784626599E+01 + -0.2485148662725412E+01 + -0.2485535404510926E+01 + -0.2485922010197626E+01 + -0.2486308480000000E+01 + -0.2486694814066501E+01 + -0.2487081012281457E+01 + -0.2487467074463162E+01 + -0.2487853000429911E+01 + -0.2488238790000000E+01 + -0.2488624443027397E+01 + -0.2489009959508763E+01 + -0.2489395339476429E+01 + -0.2489780582962731E+01 + -0.2490165690000000E+01 + -0.2490550660623911E+01 + -0.2490935494883494E+01 + -0.2491320192831122E+01 + -0.2491704754519167E+01 + -0.2492089180000000E+01 + -0.2492473469276961E+01 + -0.2492857622157262E+01 + -0.2493241638399082E+01 + -0.2493625517760602E+01 + -0.2494009260000000E+01 + -0.2494392864988245E+01 + -0.2494776333047458E+01 + -0.2495159664612548E+01 + -0.2495542860118425E+01 + -0.2495925920000000E+01 + -0.2496308844530060E+01 + -0.2496691633332908E+01 + -0.2497074285870726E+01 + -0.2497456801605696E+01 + -0.2497839180000000E+01 + -0.2498221420651516E+01 + -0.2498603523700912E+01 + -0.2498985489424548E+01 + -0.2499367318098790E+01 + -0.2499749010000000E+01 + -0.2500130565343875E+01 + -0.2500511984103447E+01 + -0.2500893266191081E+01 + -0.2501274411519144E+01 + -0.2501655420000000E+01 + -0.2502036291572984E+01 + -0.2502417026285302E+01 + -0.2502797624211127E+01 + -0.2503178085424636E+01 + -0.2503558410000000E+01 + -0.2503938597964190E+01 + -0.2504318649155347E+01 + -0.2504698563364410E+01 + -0.2505078340382315E+01 + -0.2505457980000000E+01 + -0.2505837482090259E+01 + -0.2506216846853312E+01 + -0.2506596074571235E+01 + -0.2506975165526105E+01 + -0.2507354120000000E+01 + -0.2507732938154775E+01 + -0.2508111619671406E+01 + -0.2508490164110651E+01 + -0.2508868571033263E+01 + -0.2509246840000000E+01 + -0.2509624970730641E+01 + -0.2510002963581062E+01 + -0.2510380819066163E+01 + -0.2510758537700843E+01 + -0.2511136120000000E+01 + -0.2511513566282660E+01 + -0.2511890876084344E+01 + -0.2512268048744698E+01 + -0.2512645083603368E+01 + -0.2513021980000000E+01 + -0.2513398737498718E+01 + -0.2513775356561561E+01 + -0.2514151837875045E+01 + -0.2514528182125686E+01 + -0.2514904390000000E+01 + -0.2515280461962466E+01 + -0.2515656397589411E+01 + -0.2516032196235122E+01 + -0.2516407857253889E+01 + -0.2516783380000000E+01 + -0.2517158764011417E+01 + -0.2517534009560796E+01 + -0.2517909117104467E+01 + -0.2518284087098758E+01 + -0.2518658920000000E+01 + -0.2519033616151866E+01 + -0.2519408175447406E+01 + -0.2519782597667013E+01 + -0.2520156882591080E+01 + -0.2520531030000000E+01 + -0.2520905039701117E+01 + -0.2521278911609578E+01 + -0.2521652645667481E+01 + -0.2522026241816922E+01 + -0.2522399700000000E+01 + -0.2522773020163664E+01 + -0.2523146202274280E+01 + -0.2523519246303063E+01 + -0.2523892152221231E+01 + -0.2524264920000000E+01 + -0.2524637549644223E+01 + -0.2525010041293300E+01 + -0.2525382395120265E+01 + -0.2525754611298154E+01 + -0.2526126690000000E+01 + -0.2526498631339440E+01 + -0.2526870435192517E+01 + -0.2527242101375874E+01 + -0.2527613629706154E+01 + -0.2527985020000000E+01 + -0.2528356272118014E+01 + -0.2528727386096629E+01 + -0.2529098362016238E+01 + -0.2529469199957231E+01 + -0.2529839900000000E+01 + -0.2530210462188503E+01 + -0.2530580886420965E+01 + -0.2530951172559175E+01 + -0.2531321320464923E+01 + -0.2531691330000000E+01 + -0.2532061201047972E+01 + -0.2532430933579510E+01 + -0.2532800527587062E+01 + -0.2533169983063077E+01 + -0.2533539300000000E+01 + -0.2533908478419610E+01 + -0.2534277518460995E+01 + -0.2534646420292576E+01 + -0.2535015184082771E+01 + -0.2535383810000000E+01 + -0.2535752298153590E+01 + -0.2536120648416509E+01 + -0.2536488860602633E+01 + -0.2536856934525838E+01 + -0.2537224870000000E+01 + -0.2537592666886029E+01 + -0.2537960325232968E+01 + -0.2538327845136892E+01 + -0.2538695226693878E+01 + -0.2539062470000000E+01 + -0.2539429575102293E+01 + -0.2539796541851619E+01 + -0.2540163370049799E+01 + -0.2540530059498653E+01 + -0.2540896610000000E+01 + -0.2541263021424799E+01 + -0.2541629293920555E+01 + -0.2541995427703912E+01 + -0.2542361422991513E+01 + -0.2542727280000000E+01 + -0.2543092998878511E+01 + -0.2543458579506160E+01 + -0.2543824021694553E+01 + -0.2544189325255297E+01 + -0.2544554490000000E+01 + -0.2544919515781155E+01 + -0.2545284402614804E+01 + -0.2545649150557876E+01 + -0.2546013759667298E+01 + -0.2546378230000000E+01 + -0.2546742561596869E+01 + -0.2547106754434624E+01 + -0.2547470808473945E+01 + -0.2547834723675511E+01 + -0.2548198500000000E+01 + -0.2548562137431371E+01 + -0.2548925636046700E+01 + -0.2549288995946344E+01 + -0.2549652217230658E+01 + -0.2550015300000000E+01 + -0.2550378244277649E+01 + -0.2550741049778576E+01 + -0.2551103716140680E+01 + -0.2551466243001856E+01 + -0.2551828630000000E+01 + -0.2552190876898036E+01 + -0.2552552983958995E+01 + -0.2552914951570936E+01 + -0.2553276780121918E+01 + -0.2553638470000000E+01 + -0.2554000021490209E+01 + -0.2554361434465446E+01 + -0.2554722708695578E+01 + -0.2555083843950473E+01 + -0.2555444840000000E+01 + -0.2555805696661127E+01 + -0.2556166413939222E+01 + -0.2556526991886754E+01 + -0.2556887430556190E+01 + -0.2557247730000000E+01 + -0.2557607890265282E+01 + -0.2557967911377665E+01 + -0.2558327793357407E+01 + -0.2558687536224765E+01 + -0.2559047140000000E+01 + -0.2559406604677743E+01 + -0.2559765930150117E+01 + -0.2560125116283619E+01 + -0.2560484162944749E+01 + -0.2560843070000000E+01 + -0.2561201837343748E+01 + -0.2561560464981869E+01 + -0.2561918952948116E+01 + -0.2562277301276242E+01 + -0.2562635510000000E+01 + -0.2562993579147266E+01 + -0.2563351508722408E+01 + -0.2563709298723917E+01 + -0.2564066949150284E+01 + -0.2564424460000000E+01 + -0.2564781831267189E+01 + -0.2565139062928501E+01 + -0.2565496154956218E+01 + -0.2565853107322623E+01 + -0.2566209920000000E+01 + -0.2566566592983980E+01 + -0.2566923126363591E+01 + -0.2567279520251213E+01 + -0.2567635774759223E+01 + -0.2567991890000000E+01 + -0.2568347865996893E+01 + -0.2568703702417134E+01 + -0.2569059398838930E+01 + -0.2569414954840484E+01 + -0.2569770370000000E+01 + -0.2570125644068450E+01 + -0.2570480777487871E+01 + -0.2570835770873067E+01 + -0.2571190624838842E+01 + -0.2571545340000000E+01 + -0.2571899916769308E+01 + -0.2572254354751382E+01 + -0.2572608653348802E+01 + -0.2572962811964149E+01 + -0.2573316830000000E+01 + -0.2573670707014319E+01 + -0.2574024443186601E+01 + -0.2574378038851723E+01 + -0.2574731494344564E+01 + -0.2575084810000000E+01 + -0.2575437986053415E+01 + -0.2575791022342212E+01 + -0.2576143918604303E+01 + -0.2576496674577596E+01 + -0.2576849290000000E+01 + -0.2577201764692022E+01 + -0.2577554098804549E+01 + -0.2577906292571065E+01 + -0.2578258346225054E+01 + -0.2578610260000000E+01 + -0.2578962034058498E+01 + -0.2579313668279593E+01 + -0.2579665162471438E+01 + -0.2580016516442188E+01 + -0.2580367730000000E+01 + -0.2580718802993984E+01 + -0.2581069735437080E+01 + -0.2581420527383184E+01 + -0.2581771178886192E+01 + -0.2582121690000000E+01 + -0.2582472060765565E+01 + -0.2582822291172087E+01 + -0.2583172381195826E+01 + -0.2583522330813044E+01 + -0.2583872140000000E+01 + -0.2584221808743756E+01 + -0.2584571337074573E+01 + -0.2584920725033512E+01 + -0.2585269972661634E+01 + -0.2585619080000000E+01 + -0.2585968047059410E+01 + -0.2586316873729619E+01 + -0.2586665559870124E+01 + -0.2587014105340419E+01 + -0.2587362510000000E+01 + -0.2587710773738605E+01 + -0.2588058896566949E+01 + -0.2588406878525991E+01 + -0.2588754719656688E+01 + -0.2589102420000000E+01 + -0.2589449979586171E+01 + -0.2589797398402585E+01 + -0.2590144676425914E+01 + -0.2590491813632829E+01 + -0.2590838810000000E+01 + -0.2591185665516713E+01 + -0.2591532380222711E+01 + -0.2591878954170352E+01 + -0.2592225387411996E+01 + -0.2592571680000000E+01 + -0.2592917831946978E+01 + -0.2593263843106572E+01 + -0.2593609713292676E+01 + -0.2593955442319186E+01 + -0.2594301030000000E+01 + -0.2594646476215373E+01 + -0.2594991781111002E+01 + -0.2595336944898944E+01 + -0.2595681967791258E+01 + -0.2596026850000000E+01 + -0.2596371591671531E+01 + -0.2596716192689422E+01 + -0.2597060652871548E+01 + -0.2597404972035783E+01 + -0.2597749150000000E+01 + -0.2598093186618503E+01 + -0.2598437081891309E+01 + -0.2598780835854863E+01 + -0.2599124448545612E+01 + -0.2599467920000000E+01 + -0.2599811250254457E+01 + -0.2600154439345342E+01 + -0.2600497487308999E+01 + -0.2600840394181771E+01 + -0.2601183160000000E+01 + -0.2601525784763671E+01 + -0.2601868268327324E+01 + -0.2602210610509142E+01 + -0.2602552811127307E+01 + -0.2602894870000000E+01 + -0.2603236787010861E+01 + -0.2603578562305362E+01 + -0.2603920196094432E+01 + -0.2604261688589002E+01 + -0.2604603040000000E+01 + -0.2604944250472886E+01 + -0.2605285319891229E+01 + -0.2605626248073129E+01 + -0.2605967034836687E+01 + -0.2606307680000000E+01 + -0.2606648183417597E+01 + -0.2606988545089723E+01 + -0.2607328765053051E+01 + -0.2607668843344252E+01 + -0.2608008780000000E+01 + -0.2608348575056724E+01 + -0.2608688228549877E+01 + -0.2609027740514668E+01 + -0.2609367110986306E+01 + -0.2609706340000000E+01 + -0.2610045427555506E+01 + -0.2610384373510768E+01 + -0.2610723177688277E+01 + -0.2611061839910524E+01 + -0.2611400360000000E+01 + -0.2611738737841252E+01 + -0.2612076973567052E+01 + -0.2612415067372225E+01 + -0.2612753019451599E+01 + -0.2613090830000000E+01 + -0.2613428499159484E+01 + -0.2613766026861025E+01 + -0.2614103412982823E+01 + -0.2614440657403081E+01 + -0.2614777760000000E+01 + -0.2615114720640810E+01 + -0.2615451539148849E+01 + -0.2615788215336484E+01 + -0.2616124749016079E+01 + -0.2616461140000000E+01 + -0.2616797388197276E+01 + -0.2617133493903578E+01 + -0.2617469457511243E+01 + -0.2617805279412606E+01 + -0.2618140960000000E+01 + -0.2618476499530088E+01 + -0.2618811897716838E+01 + -0.2619147154138543E+01 + -0.2619482268373500E+01 + -0.2619817240000000E+01 + -0.2620152068722373E+01 + -0.2620486754749071E+01 + -0.2620821298414584E+01 + -0.2621155700053398E+01 + -0.2621489960000000E+01 + -0.2621824078460423E+01 + -0.2622158055126878E+01 + -0.2622491889563122E+01 + -0.2622825581332910E+01 + -0.2623159130000000E+01 + -0.2623492535275936E+01 + -0.2623825797463416E+01 + -0.2624158917012929E+01 + -0.2624491894374961E+01 + -0.2624824730000000E+01 + -0.2625157424195835E+01 + -0.2625489976699457E+01 + -0.2625822387105163E+01 + -0.2626154655007246E+01 + -0.2626486780000000E+01 + -0.2626818761780727E+01 + -0.2627150600458755E+01 + -0.2627482296246419E+01 + -0.2627813849356056E+01 + -0.2628145260000000E+01 + -0.2628476528361259E+01 + -0.2628807654505525E+01 + -0.2629138638469161E+01 + -0.2629469480288532E+01 + -0.2629800180000000E+01 + -0.2630130737574238E+01 + -0.2630461152719147E+01 + -0.2630791425076936E+01 + -0.2631121554289817E+01 + -0.2631451540000000E+01 + -0.2631781381981792E+01 + -0.2632111080537891E+01 + -0.2632440636103094E+01 + -0.2632770049112198E+01 + -0.2633099320000000E+01 + -0.2633428449058597E+01 + -0.2633757436009292E+01 + -0.2634086280430688E+01 + -0.2634414981901390E+01 + -0.2634743540000000E+01 + -0.2635071954423820E+01 + -0.2635400225344942E+01 + -0.2635728353054153E+01 + -0.2636056337842243E+01 + -0.2636384180000000E+01 + -0.2636711879726122E+01 + -0.2637039436850941E+01 + -0.2637366851112700E+01 + -0.2637694122249639E+01 + -0.2638021250000000E+01 + -0.2638348234191692E+01 + -0.2638675075011293E+01 + -0.2639001772735048E+01 + -0.2639328327639202E+01 + -0.2639654740000000E+01 + -0.2639981009987110E+01 + -0.2640307137343886E+01 + -0.2640633121707108E+01 + -0.2640958962713553E+01 + -0.2641284660000000E+01 + -0.2641610213299871E+01 + -0.2641935622733164E+01 + -0.2642260888516522E+01 + -0.2642586010866586E+01 + -0.2642910990000000E+01 + -0.2643235826093407E+01 + -0.2643560519163458E+01 + -0.2643885069186806E+01 + -0.2644209476140102E+01 + -0.2644533740000000E+01 + -0.2644857860726501E+01 + -0.2645181838213004E+01 + -0.2645505672336256E+01 + -0.2645829362973005E+01 + -0.2646152910000000E+01 + -0.2646476313320589E+01 + -0.2646799572944528E+01 + -0.2647122688908171E+01 + -0.2647445661247876E+01 + -0.2647768490000000E+01 + -0.2648091175191143E+01 + -0.2648413716808887E+01 + -0.2648736114831060E+01 + -0.2649058369235489E+01 + -0.2649380480000000E+01 + -0.2649702447114840E+01 + -0.2650024270619924E+01 + -0.2650345950567589E+01 + -0.2650667487010169E+01 + -0.2650988880000000E+01 + -0.2651310129549499E+01 + -0.2651631235511417E+01 + -0.2651952197698584E+01 + -0.2652273015923834E+01 + -0.2652593690000000E+01 + -0.2652914219807163E+01 + -0.2653234605494409E+01 + -0.2653554847278074E+01 + -0.2653874945374492E+01 + -0.2654194900000000E+01 + -0.2654514711301848E+01 + -0.2654834379150945E+01 + -0.2655153903349120E+01 + -0.2655473283698196E+01 + -0.2655792520000000E+01 + -0.2656111612105447E+01 + -0.2656430560061808E+01 + -0.2656749363965447E+01 + -0.2657068023912724E+01 + -0.2657386540000000E+01 + -0.2657704912276366E+01 + -0.2658023140601821E+01 + -0.2658341224789093E+01 + -0.2658659164650910E+01 + -0.2658976960000000E+01 + -0.2659294610709091E+01 + -0.2659612116890909E+01 + -0.2659929478718181E+01 + -0.2660246696363636E+01 + -0.2660563770000000E+01 + -0.2660880699767273E+01 + -0.2661197485674546E+01 + -0.2661514127698182E+01 + -0.2661830625814546E+01 + -0.2662146980000000E+01 + -0.2662463190221819E+01 + -0.2662779256410909E+01 + -0.2663095178489091E+01 + -0.2663410956378182E+01 + -0.2663726590000000E+01 + -0.2664042079265455E+01 + -0.2664357424041818E+01 + -0.2664672624185455E+01 + -0.2664987679552727E+01 + -0.2665302590000000E+01 + -0.2665617355436364E+01 + -0.2665931975981819E+01 + -0.2666246451809091E+01 + -0.2666560783090909E+01 + -0.2666874970000000E+01 + -0.2667189012669091E+01 + -0.2667502911070909E+01 + -0.2667816665138181E+01 + -0.2668130274803636E+01 + -0.2668443740000000E+01 + -0.2668757060687274E+01 + -0.2669070236934547E+01 + -0.2669383268838184E+01 + -0.2669696156494547E+01 + -0.2670008900000000E+01 + -0.2670321499381815E+01 + -0.2670633954390903E+01 + -0.2670946264709083E+01 + -0.2671258430018176E+01 + -0.2671570450000000E+01 + -0.2671882324425466E+01 + -0.2672194053421841E+01 + -0.2672505637205483E+01 + -0.2672817075992751E+01 + -0.2673128370000000E+01 + -0.2673439519396323E+01 + -0.2673750524161734E+01 + -0.2674061384228985E+01 + -0.2674372099530824E+01 + -0.2674682670000000E+01 + -0.2674993095589247E+01 + -0.2675303376331224E+01 + -0.2675613512278579E+01 + -0.2675923503483956E+01 + -0.2676233350000000E+01 + -0.2676543051846693E+01 + -0.2676852608913369E+01 + -0.2677162021056698E+01 + -0.2677471288133351E+01 + -0.2677780410000000E+01 + -0.2678089386543982E+01 + -0.2678398217775301E+01 + -0.2678706903734630E+01 + -0.2679015444462639E+01 + -0.2679323840000000E+01 + -0.2679632090377380E+01 + -0.2679940195585427E+01 + -0.2680248155604784E+01 + -0.2680555970416093E+01 + -0.2680863640000000E+01 + -0.2681171164346499E+01 + -0.2681478543482993E+01 + -0.2681785777446237E+01 + -0.2682092866272988E+01 + -0.2682399810000000E+01 + -0.2682706608636626E+01 + -0.2683013262082604E+01 + -0.2683319770210268E+01 + -0.2683626132891955E+01 + -0.2683932350000000E+01 + -0.2684238421427000E+01 + -0.2684544347146595E+01 + -0.2684850127152691E+01 + -0.2685155761439192E+01 + -0.2685461250000000E+01 + -0.2685766592855377E+01 + -0.2686071790131016E+01 + -0.2686376841978967E+01 + -0.2686681748551278E+01 + -0.2686986510000000E+01 + -0.2687291126431491E+01 + -0.2687595597769340E+01 + -0.2687899923891443E+01 + -0.2688204104675698E+01 + -0.2688508140000000E+01 + -0.2688812029738658E+01 + -0.2689115773751624E+01 + -0.2689419371895261E+01 + -0.2689722824025932E+01 + -0.2690026130000000E+01 + -0.2690329289733876E+01 + -0.2690632303384164E+01 + -0.2690935171167513E+01 + -0.2691237893300575E+01 + -0.2691540470000000E+01 + -0.2691842901405837E+01 + -0.2692145187351722E+01 + -0.2692447327594688E+01 + -0.2692749321891770E+01 + -0.2693051170000000E+01 + -0.2693352871762776E+01 + -0.2693654427368950E+01 + -0.2693955837093735E+01 + -0.2694257101212346E+01 + -0.2694558220000000E+01 + -0.2694859193623058E+01 + -0.2695160021812480E+01 + -0.2695460704190372E+01 + -0.2695761240378843E+01 + -0.2696061630000000E+01 + -0.2696361872784991E+01 + -0.2696661968901132E+01 + -0.2696961918624776E+01 + -0.2697261722232280E+01 + -0.2697561380000000E+01 + -0.2697860892116977E+01 + -0.2698160258422995E+01 + -0.2698459478670525E+01 + -0.2698758552612036E+01 + -0.2699057480000000E+01 + -0.2699356260667102E+01 + -0.2699654894766889E+01 + -0.2699953382533125E+01 + -0.2700251724199574E+01 + -0.2700549920000000E+01 + -0.2700847970094618E+01 + -0.2701145874349451E+01 + -0.2701443632556975E+01 + -0.2701741244509667E+01 + -0.2702038710000000E+01 + -0.2702336028874429E+01 + -0.2702633201195309E+01 + -0.2702930227078975E+01 + -0.2703227106641761E+01 + -0.2703523840000000E+01 + -0.2703820427207669E+01 + -0.2704116868069314E+01 + -0.2704413162327125E+01 + -0.2704709309723290E+01 + -0.2705005310000000E+01 + -0.2705301163014897E+01 + -0.2705596869087436E+01 + -0.2705892428652527E+01 + -0.2706187842145079E+01 + -0.2706483110000000E+01 + -0.2706778232492745E+01 + -0.2707073209260943E+01 + -0.2707368039782768E+01 + -0.2707662723536396E+01 + -0.2707957260000000E+01 + -0.2708251648774125E+01 + -0.2708545889948794E+01 + -0.2708839983736401E+01 + -0.2709133930349339E+01 + -0.2709427730000000E+01 + -0.2709721382890755E+01 + -0.2710014889183880E+01 + -0.2710308249031628E+01 + -0.2710601462586250E+01 + -0.2710894530000000E+01 + -0.2711187451342854E+01 + -0.2711480226355683E+01 + -0.2711772854697087E+01 + -0.2712065336025660E+01 + -0.2712357670000000E+01 + -0.2712649856377830E+01 + -0.2712941895313385E+01 + -0.2713233787060025E+01 + -0.2713525531871109E+01 + -0.2713817130000000E+01 + -0.2714108581625824E+01 + -0.2714399886630775E+01 + -0.2714691044822815E+01 + -0.2714982056009903E+01 + -0.2715272920000000E+01 + -0.2715563636638873E+01 + -0.2715854205923514E+01 + -0.2716144627888717E+01 + -0.2716434902569280E+01 + -0.2716725030000000E+01 + -0.2717015010218682E+01 + -0.2717304843275171E+01 + -0.2717594529222318E+01 + -0.2717884068112976E+01 + -0.2718173460000000E+01 + -0.2718462704886398E+01 + -0.2718751802575806E+01 + -0.2719040752822014E+01 + -0.2719329555378815E+01 + -0.2719618210000000E+01 + -0.2719906716555727E+01 + -0.2720195075381609E+01 + -0.2720483286929629E+01 + -0.2720771351651766E+01 + -0.2721059270000000E+01 + -0.2721347042250697E+01 + -0.2721634667977758E+01 + -0.2721922146579471E+01 + -0.2722209477454123E+01 + -0.2722496660000000E+01 + -0.2722783693801487E+01 + -0.2723070579187358E+01 + -0.2723357316672487E+01 + -0.2723643906771743E+01 + -0.2723930350000000E+01 + -0.2724216646703355E+01 + -0.2724502796552808E+01 + -0.2724788799050583E+01 + -0.2725074653698905E+01 + -0.2725360360000000E+01 + -0.2725645917625092E+01 + -0.2725931326921410E+01 + -0.2726216588405181E+01 + -0.2726501702592635E+01 + -0.2726786670000000E+01 + -0.2727071490956277E+01 + -0.2727356165041554E+01 + -0.2727640691648694E+01 + -0.2727925070170555E+01 + -0.2728209300000000E+01 + -0.2728493380709801E+01 + -0.2728777312592374E+01 + -0.2729061096120047E+01 + -0.2729344731765146E+01 + -0.2729628220000000E+01 + -0.2729911561164519E+01 + -0.2730194755068950E+01 + -0.2730477801391121E+01 + -0.2730760699808861E+01 + -0.2731043450000000E+01 + -0.2731326051752121E+01 + -0.2731608505291826E+01 + -0.2731890810955471E+01 + -0.2732172969079410E+01 + -0.2732454980000000E+01 + -0.2732736843906995E+01 + -0.2733018560403745E+01 + -0.2733300128946997E+01 + -0.2733581548993499E+01 + -0.2733862820000000E+01 + -0.2734143941579898E+01 + -0.2734424913973195E+01 + -0.2734705737576543E+01 + -0.2734986412786594E+01 + -0.2735266940000000E+01 + -0.2735547319533413E+01 + -0.2735827551383476E+01 + -0.2736107635466833E+01 + -0.2736387571700127E+01 + -0.2736667360000000E+01 + -0.2736947000286452E+01 + -0.2737226492492901E+01 + -0.2737505836556125E+01 + -0.2737785032412899E+01 + -0.2738064080000000E+01 + -0.2738342979240783E+01 + -0.2738621730004921E+01 + -0.2738900332148668E+01 + -0.2739178785528277E+01 + -0.2739457090000000E+01 + -0.2739735245470418E+01 + -0.2740013252047416E+01 + -0.2740291109889204E+01 + -0.2740568819153995E+01 + -0.2740846380000000E+01 + -0.2741123792557545E+01 + -0.2741401056845416E+01 + -0.2741678172854515E+01 + -0.2741955140575743E+01 + -0.2742231960000000E+01 + -0.2742508631099402E+01 + -0.2742785153770919E+01 + -0.2743061527892736E+01 + -0.2743337753343035E+01 + -0.2743613830000000E+01 + -0.2743889757764846E+01 + -0.2744165536630907E+01 + -0.2744441166614544E+01 + -0.2744716647732120E+01 + -0.2744991980000000E+01 + -0.2745267163441213E+01 + -0.2745542198105455E+01 + -0.2745817084049091E+01 + -0.2746091821328485E+01 + -0.2746366410000000E+01 + -0.2746640850070303E+01 + -0.2746915141347273E+01 + -0.2747189283589091E+01 + -0.2747463276553940E+01 + -0.2747737120000000E+01 + -0.2748010813797576E+01 + -0.2748284358265455E+01 + -0.2748557753834545E+01 + -0.2748831000935757E+01 + -0.2749104100000000E+01 + -0.2749377051299394E+01 + -0.2749649854470909E+01 + -0.2749922508992727E+01 + -0.2750195014343031E+01 + -0.2750467370000000E+01 + -0.2750739575564849E+01 + -0.2751011631130909E+01 + -0.2751283536914546E+01 + -0.2751555293132121E+01 + -0.2751826900000000E+01 + -0.2752098357721212E+01 + -0.2752369666445455E+01 + -0.2752640826309092E+01 + -0.2752911837448485E+01 + -0.2753182700000000E+01 + -0.2753453414030302E+01 + -0.2753723979327271E+01 + -0.2753994395609089E+01 + -0.2754264662593938E+01 + -0.2754534780000000E+01 + -0.2754804747597579E+01 + -0.2755074565365462E+01 + -0.2755344233334555E+01 + -0.2755613751535765E+01 + -0.2755883120000000E+01 + -0.2756152338779381E+01 + -0.2756421408010882E+01 + -0.2756690327852694E+01 + -0.2756959098463003E+01 + -0.2757227720000000E+01 + -0.2757496192564898E+01 + -0.2757764516031009E+01 + -0.2758032690214671E+01 + -0.2758300714932222E+01 + -0.2758568590000000E+01 + -0.2758836315281029E+01 + -0.2759103890825083E+01 + -0.2759371316728622E+01 + -0.2759638593088108E+01 + -0.2759905720000000E+01 + -0.2760172697510986E+01 + -0.2760439525468659E+01 + -0.2760706203670840E+01 + -0.2760972731915346E+01 + -0.2761239110000000E+01 + -0.2761505337795027E+01 + -0.2761771415460280E+01 + -0.2762037343228020E+01 + -0.2762303121330506E+01 + -0.2762568750000000E+01 + -0.2762834229388907E+01 + -0.2763099559330221E+01 + -0.2763364739577082E+01 + -0.2763629769882628E+01 + -0.2763894650000000E+01 + -0.2764159379769344E+01 + -0.2764423959378835E+01 + -0.2764688389103654E+01 + -0.2764952669218982E+01 + -0.2765216800000000E+01 + -0.2765480781613716E+01 + -0.2765744613794439E+01 + -0.2766008296168304E+01 + -0.2766271828361446E+01 + -0.2766535210000000E+01 + -0.2766798440815791E+01 + -0.2767061520963408E+01 + -0.2767324450703129E+01 + -0.2767587230295234E+01 + -0.2767849860000000E+01 + -0.2768112340003119E+01 + -0.2768374670191929E+01 + -0.2768636850379179E+01 + -0.2768898880377619E+01 + -0.2769160760000000E+01 + -0.2769422489091733E+01 + -0.2769684067628877E+01 + -0.2769945495620156E+01 + -0.2770206773074289E+01 + -0.2770467900000000E+01 + -0.2770728876429950E+01 + -0.2770989702492561E+01 + -0.2771250378340198E+01 + -0.2771510904125223E+01 + -0.2771771280000000E+01 + -0.2772031506068468E+01 + -0.2772291582240877E+01 + -0.2772551508379051E+01 + -0.2772811284344817E+01 + -0.2773070910000000E+01 + -0.2773330385216178E+01 + -0.2773589709903932E+01 + -0.2773848883983598E+01 + -0.2774107907375509E+01 + -0.2774366780000000E+01 + -0.2774625501786821E+01 + -0.2774884072703394E+01 + -0.2775142492726556E+01 + -0.2775400761833146E+01 + -0.2775658880000000E+01 + -0.2775916847236537E+01 + -0.2776174663682490E+01 + -0.2776432329510175E+01 + -0.2776689844891907E+01 + -0.2776947210000000E+01 + -0.2777204424947033E+01 + -0.2777461489606645E+01 + -0.2777718403792740E+01 + -0.2777975167319224E+01 + -0.2778231780000000E+01 + -0.2778488241695333E+01 + -0.2778744552450931E+01 + -0.2779000712358863E+01 + -0.2779256721511196E+01 + -0.2779512580000000E+01 + -0.2779768287871635E+01 + -0.2780023844989631E+01 + -0.2780279251171809E+01 + -0.2780534506235992E+01 + -0.2780789610000000E+01 + -0.2781044562338126E+01 + -0.2781299363350544E+01 + -0.2781554013193899E+01 + -0.2781808512024836E+01 + -0.2782062860000000E+01 + -0.2782317057255860E+01 + -0.2782571103848192E+01 + -0.2782824999812593E+01 + -0.2783078745184662E+01 + -0.2783332340000000E+01 + -0.2783585784238431E+01 + -0.2783839077656688E+01 + -0.2784092219955729E+01 + -0.2784345210836514E+01 + -0.2784598050000000E+01 + -0.2784850737230414E+01 + -0.2785103272645055E+01 + -0.2785355656444489E+01 + -0.2785607888829282E+01 + -0.2785859970000000E+01 + -0.2786111900119912E+01 + -0.2786363679203093E+01 + -0.2786615307226317E+01 + -0.2786866784166361E+01 + -0.2787118110000000E+01 + -0.2787369284689937E+01 + -0.2787620308142575E+01 + -0.2787871180250245E+01 + -0.2788121900905277E+01 + -0.2788372470000000E+01 + -0.2788622887440341E+01 + -0.2788873153186608E+01 + -0.2789123267212705E+01 + -0.2789373229492534E+01 + -0.2789623040000000E+01 + -0.2789872698748698E+01 + -0.2790122205910991E+01 + -0.2790371561698936E+01 + -0.2790620766324587E+01 + -0.2790869820000000E+01 + -0.2791118722844868E+01 + -0.2791367474609427E+01 + -0.2791616074951553E+01 + -0.2791864523529119E+01 + -0.2792112820000000E+01 + -0.2792360964111832E+01 + -0.2792608955971300E+01 + -0.2792856795774853E+01 + -0.2793104483718937E+01 + -0.2793352020000000E+01 + -0.2793599404787804E+01 + -0.2793846638145371E+01 + -0.2794093720109035E+01 + -0.2794340650715133E+01 + -0.2794587430000000E+01 + -0.2794834057936951E+01 + -0.2795080534247216E+01 + -0.2795326858589006E+01 + -0.2795573030620531E+01 + -0.2795819050000000E+01 + -0.2796064916504393E+01 + -0.2796310630385764E+01 + -0.2796556192014940E+01 + -0.2796801601762743E+01 + -0.2797046860000000E+01 + -0.2797291967005479E+01 + -0.2797536922689727E+01 + -0.2797781726871235E+01 + -0.2798026379368496E+01 + -0.2798270880000000E+01 + -0.2798515228593692E+01 + -0.2798759425015329E+01 + -0.2799003469140120E+01 + -0.2799247360843273E+01 + -0.2799491100000000E+01 + -0.2799734686539752E+01 + -0.2799978120608957E+01 + -0.2800221402408286E+01 + -0.2800464532138410E+01 + -0.2800707510000000E+01 + -0.2800950336127299E+01 + -0.2801193010388842E+01 + -0.2801435532586735E+01 + -0.2801677902523086E+01 + -0.2801920120000000E+01 + -0.2802162184871051E+01 + -0.2802404097195675E+01 + -0.2802645857084773E+01 + -0.2802887464649248E+01 + -0.2803128920000000E+01 + -0.2803370223188495E+01 + -0.2803611374028457E+01 + -0.2803852372274171E+01 + -0.2804093217679923E+01 + -0.2804333910000000E+01 + -0.2804574449094966E+01 + -0.2804814835250496E+01 + -0.2805055068858543E+01 + -0.2805295150311060E+01 + -0.2805535080000000E+01 + -0.2805774858191640E+01 + -0.2806014484649558E+01 + -0.2806253959011656E+01 + -0.2806493280915836E+01 + -0.2806732450000000E+01 + -0.2806971465978474E+01 + -0.2807210328871273E+01 + -0.2807449038774835E+01 + -0.2807687595785598E+01 + -0.2807926000000000E+01 + -0.2808164251494464E+01 + -0.2808402350265352E+01 + -0.2808640296289006E+01 + -0.2808878089541774E+01 + -0.2809115730000000E+01 + -0.2809353217643669E+01 + -0.2809590552467321E+01 + -0.2809827734469140E+01 + -0.2810064763647306E+01 + -0.2810301640000000E+01 + -0.2810538363530862E+01 + -0.2810774934265363E+01 + -0.2811011352234433E+01 + -0.2811247617469002E+01 + -0.2811483730000000E+01 + -0.2811719689832885E+01 + -0.2811955496871228E+01 + -0.2812191150993129E+01 + -0.2812426652076686E+01 + -0.2812662000000000E+01 + -0.2812897194657598E+01 + -0.2813132236009724E+01 + -0.2813367124033051E+01 + -0.2813601858704253E+01 + -0.2813836440000000E+01 + -0.2814070867936724E+01 + -0.2814305142689876E+01 + -0.2814539264474666E+01 + -0.2814773233506305E+01 + -0.2815007050000000E+01 + -0.2815240714075509E+01 + -0.2815474225470773E+01 + -0.2815707583828284E+01 + -0.2815940788790529E+01 + -0.2816173840000000E+01 + -0.2816406737201243E+01 + -0.2816639480547032E+01 + -0.2816872070292199E+01 + -0.2817104506691578E+01 + -0.2817336790000000E+01 + -0.2817568920399522E+01 + -0.2817800897781102E+01 + -0.2818032721962919E+01 + -0.2818264392763159E+01 + -0.2818495910000000E+01 + -0.2818727273520670E+01 + -0.2818958483288565E+01 + -0.2819189539296124E+01 + -0.2819420441535789E+01 + -0.2819651190000000E+01 + -0.2819881784717800E+01 + -0.2820112225864642E+01 + -0.2820342513652585E+01 + -0.2820572648293685E+01 + -0.2820802630000000E+01 + -0.2821032458888133E+01 + -0.2821262134692869E+01 + -0.2821491657053538E+01 + -0.2821721025609472E+01 + -0.2821950240000000E+01 + -0.2822179299969669E+01 + -0.2822408205683884E+01 + -0.2822636957413264E+01 + -0.2822865555428429E+01 + -0.2823094000000000E+01 + -0.2823322291313192E+01 + -0.2823550429211598E+01 + -0.2823778413453409E+01 + -0.2824006243796813E+01 + -0.2824233920000000E+01 + -0.2824461441897565E+01 + -0.2824688809629725E+01 + -0.2824916023413102E+01 + -0.2825143083464320E+01 + -0.2825369990000000E+01 + -0.2825596743176549E+01 + -0.2825823342909503E+01 + -0.2826049789054184E+01 + -0.2826276081465909E+01 + -0.2826502220000000E+01 + -0.2826728204516240E+01 + -0.2826954034892262E+01 + -0.2827179711010165E+01 + -0.2827405232752045E+01 + -0.2827630600000000E+01 + -0.2827855812678493E+01 + -0.2828080870881449E+01 + -0.2828305774745158E+01 + -0.2828530524405911E+01 + -0.2828755120000000E+01 + -0.2828979561649789E+01 + -0.2829203849421944E+01 + -0.2829427983369204E+01 + -0.2829651963544310E+01 + -0.2829875790000000E+01 + -0.2830099462722350E+01 + -0.2830322981430776E+01 + -0.2830546345778025E+01 + -0.2830769555416850E+01 + -0.2830992610000000E+01 + -0.2831215509300810E+01 + -0.2831438253574955E+01 + -0.2831660843198695E+01 + -0.2831883278548290E+01 + -0.2832105560000000E+01 + -0.2832327687834410E+01 + -0.2832549661949405E+01 + -0.2832771482147195E+01 + -0.2832993148229990E+01 + -0.2833214660000000E+01 + -0.2833436017281549E+01 + -0.2833657219987424E+01 + -0.2833878268052524E+01 + -0.2834099161411749E+01 + -0.2834319900000000E+01 + -0.2834540483759393E+01 + -0.2834760912660900E+01 + -0.2834981186682711E+01 + -0.2835201305803015E+01 + -0.2835421270000000E+01 + -0.2835641079280881E+01 + -0.2835860733768977E+01 + -0.2836080233616633E+01 + -0.2836299578976192E+01 + -0.2836518770000000E+01 + -0.2836737806797083E+01 + -0.2836956689303192E+01 + -0.2837175417410759E+01 + -0.2837393991012218E+01 + -0.2837612410000000E+01 + -0.2837830674250788E+01 + -0.2838048783578257E+01 + -0.2838266737780332E+01 + -0.2838484536654938E+01 + -0.2838702180000000E+01 + -0.2838919667719766E+01 + -0.2839137000143781E+01 + -0.2839354177707913E+01 + -0.2839571200848030E+01 + -0.2839788070000000E+01 + -0.2840004785430148E+01 + -0.2840221346726620E+01 + -0.2840437753308018E+01 + -0.2840654004592944E+01 + -0.2840870100000000E+01 + -0.2841086039119642E+01 + -0.2841301822229740E+01 + -0.2841517449780016E+01 + -0.2841732922220195E+01 + -0.2841948240000000E+01 + -0.2842163403451284E+01 + -0.2842378412434421E+01 + -0.2842593266691917E+01 + -0.2842807965966275E+01 + -0.2843022510000000E+01 + -0.2843236898595222E+01 + -0.2843451131792575E+01 + -0.2843665209692316E+01 + -0.2843879132394705E+01 + -0.2844092900000000E+01 + -0.2844306512567827E+01 + -0.2844519969995280E+01 + -0.2844733272138819E+01 + -0.2844946418854905E+01 + -0.2845159410000000E+01 + -0.2845372245453470E+01 + -0.2845584925186307E+01 + -0.2845797449192409E+01 + -0.2846009817465674E+01 + -0.2846222030000000E+01 + -0.2846434086818293E+01 + -0.2846645988059493E+01 + -0.2846857733891546E+01 + -0.2847069324482400E+01 + -0.2847280760000000E+01 + -0.2847492040553356E+01 + -0.2847703166015720E+01 + -0.2847914136201406E+01 + -0.2848124950924728E+01 + -0.2848335610000000E+01 + -0.2848546113288283E+01 + -0.2848756460837628E+01 + -0.2848966652742830E+01 + -0.2849176689098689E+01 + -0.2849386570000000E+01 + -0.2849596295493512E+01 + -0.2849805865433770E+01 + -0.2850015279627273E+01 + -0.2850224537880517E+01 + -0.2850433640000000E+01 + -0.2850642585857671E+01 + -0.2850851375587291E+01 + -0.2851060009388077E+01 + -0.2851268487459241E+01 + -0.2851476810000000E+01 + -0.2851684977155806E+01 + -0.2851892988857065E+01 + -0.2852100844980421E+01 + -0.2852308545402518E+01 + -0.2852516090000000E+01 + -0.2852723478639105E+01 + -0.2852930711144449E+01 + -0.2853137787330240E+01 + -0.2853344707010687E+01 + -0.2853551470000000E+01 + -0.2853758076207774E+01 + -0.2853964525925142E+01 + -0.2854170819538622E+01 + -0.2854376957434735E+01 + -0.2854582940000000E+01 + -0.2854788767489800E+01 + -0.2854994439634986E+01 + -0.2855199956035271E+01 + -0.2855405316290371E+01 + -0.2855610520000000E+01 + -0.2855815566873024E+01 + -0.2856020457054914E+01 + -0.2856225190800292E+01 + -0.2856429768363780E+01 + -0.2856634190000000E+01 + -0.2856838455898103E+01 + -0.2857042565985358E+01 + -0.2857246520123561E+01 + -0.2857450318174509E+01 + -0.2857653960000000E+01 + -0.2857857445454563E+01 + -0.2858060774363655E+01 + -0.2858263946545465E+01 + -0.2858466961818184E+01 + -0.2858669820000000E+01 + -0.2858872521003645E+01 + -0.2859075065120023E+01 + -0.2859277452734578E+01 + -0.2859479684232755E+01 + -0.2859681760000000E+01 + -0.2859883680290855E+01 + -0.2860085444836253E+01 + -0.2860287053236222E+01 + -0.2860488505090795E+01 + -0.2860689800000000E+01 + -0.2860890937672935E+01 + -0.2861091918254967E+01 + -0.2861292742000532E+01 + -0.2861493409164065E+01 + -0.2861693920000000E+01 + -0.2861894274697405E+01 + -0.2862094473183878E+01 + -0.2862294515321648E+01 + -0.2862494400972945E+01 + -0.2862694130000000E+01 + -0.2862893702257444E+01 + -0.2863093117569521E+01 + -0.2863292375752875E+01 + -0.2863491476624153E+01 + -0.2863690420000000E+01 + -0.2863889205792819E+01 + -0.2864087834298040E+01 + -0.2864286305906851E+01 + -0.2864484621010442E+01 + -0.2864682780000000E+01 + -0.2864880783131282E+01 + -0.2865078630118322E+01 + -0.2865276320539720E+01 + -0.2865473853974079E+01 + -0.2865671230000000E+01 + -0.2865868448322052E+01 + -0.2866065509148673E+01 + -0.2866262412814269E+01 + -0.2866459159653243E+01 + -0.2866655750000000E+01 + -0.2866852184060509E+01 + -0.2867048461526985E+01 + -0.2867244581963206E+01 + -0.2867440544932952E+01 + -0.2867636350000000E+01 + -0.2867831996875913E+01 + -0.2868027485863387E+01 + -0.2868222817412906E+01 + -0.2868417991974950E+01 + -0.2868613010000000E+01 + -0.2868807871795840E+01 + -0.2869002577099465E+01 + -0.2869197125505169E+01 + -0.2869391516607249E+01 + -0.2869585750000000E+01 + -0.2869779825380725E+01 + -0.2869973742858753E+01 + -0.2870167502646417E+01 + -0.2870361104956055E+01 + -0.2870554550000000E+01 + -0.2870747837961260E+01 + -0.2870940968905526E+01 + -0.2871133942869162E+01 + -0.2871326759888532E+01 + -0.2871519420000000E+01 + -0.2871711923174237E+01 + -0.2871904269119144E+01 + -0.2872096457476934E+01 + -0.2872288487889816E+01 + -0.2872480360000000E+01 + -0.2872672073581795E+01 + -0.2872863628937897E+01 + -0.2873055026503102E+01 + -0.2873246266712204E+01 + -0.2873437350000000E+01 + -0.2873628276658586E+01 + -0.2873819046409269E+01 + -0.2874009658830660E+01 + -0.2874200113501367E+01 + -0.2874390410000000E+01 + -0.2874580548023862E+01 + -0.2874770527745027E+01 + -0.2874960349454259E+01 + -0.2875150013442329E+01 + -0.2875339520000000E+01 + -0.2875528869325966E+01 + -0.2875718061250625E+01 + -0.2875907095512302E+01 + -0.2876095971849318E+01 + -0.2876284690000000E+01 + -0.2876473249792273E+01 + -0.2876661651412472E+01 + -0.2876849895136534E+01 + -0.2877037981240398E+01 + -0.2877225910000000E+01 + -0.2877413681584942E+01 + -0.2877601295739488E+01 + -0.2877788752101561E+01 + -0.2877976050309090E+01 + -0.2878163190000000E+01 + -0.2878350170907956E+01 + -0.2878536993149578E+01 + -0.2878723656937221E+01 + -0.2878910162483242E+01 + -0.2879096510000000E+01 + -0.2879282699663232E+01 + -0.2879468731502203E+01 + -0.2879654605509557E+01 + -0.2879840321677941E+01 + -0.2880025880000000E+01 + -0.2880211280439115E+01 + -0.2880396522841611E+01 + -0.2880581607024551E+01 + -0.2880766532804993E+01 + -0.2880951300000000E+01 + -0.2881135908500307E+01 + -0.2881320358491351E+01 + -0.2881504650232240E+01 + -0.2881688783982087E+01 + -0.2881872760000000E+01 + -0.2882056578439655E+01 + -0.2882240239032985E+01 + -0.2882423741406488E+01 + -0.2882607085186660E+01 + -0.2882790270000000E+01 + -0.2882973295581072E+01 + -0.2883156162096708E+01 + -0.2883338869821809E+01 + -0.2883521419031273E+01 + -0.2883703810000000E+01 + -0.2883886042916057E+01 + -0.2884068117620182E+01 + -0.2884250033866278E+01 + -0.2884431791408249E+01 + -0.2884613390000000E+01 + -0.2884794829474699E+01 + -0.2884976109982564E+01 + -0.2885157231753081E+01 + -0.2885338195015732E+01 + -0.2885519000000000E+01 + -0.2885699646865148E+01 + -0.2885880135489560E+01 + -0.2886060465681398E+01 + -0.2886240637248823E+01 + -0.2886420650000000E+01 + -0.2886600503784707E+01 + -0.2886780198619194E+01 + -0.2886959734561327E+01 + -0.2887139111668974E+01 + -0.2887318330000000E+01 + -0.2887497389596023E+01 + -0.2887676290433663E+01 + -0.2887855032473292E+01 + -0.2888033615675281E+01 + -0.2888212040000000E+01 + -0.2888390305431201E+01 + -0.2888568412046153E+01 + -0.2888746359945504E+01 + -0.2888924149229903E+01 + -0.2889101780000000E+01 + -0.2889279252279173E+01 + -0.2889456565781726E+01 + -0.2889633720144693E+01 + -0.2889810715005106E+01 + -0.2889987550000000E+01 + -0.2890164224892105E+01 + -0.2890340739946940E+01 + -0.2890517095555724E+01 + -0.2890693292109671E+01 + -0.2890869330000000E+01 + -0.2891045209512407E+01 + -0.2891220930510511E+01 + -0.2891396492752412E+01 + -0.2891571895996208E+01 + -0.2891747140000000E+01 + -0.2891922224578268E+01 + -0.2892097149771016E+01 + -0.2892271915674630E+01 + -0.2892446522385496E+01 + -0.2892620970000000E+01 + -0.2892795258574522E+01 + -0.2892969388005426E+01 + -0.2893143358149068E+01 + -0.2893317168861807E+01 + -0.2893490820000000E+01 + -0.2893664311443642E+01 + -0.2893837643167280E+01 + -0.2894010815169097E+01 + -0.2894183827447275E+01 + -0.2894356680000000E+01 + -0.2894529372850908E+01 + -0.2894701906125453E+01 + -0.2894874279974544E+01 + -0.2895046494549090E+01 + -0.2895218550000000E+01 + -0.2895390446432728E+01 + -0.2895562183770909E+01 + -0.2895733761892727E+01 + -0.2895905180676363E+01 + -0.2896076440000000E+01 + -0.2896247539738182E+01 + -0.2896418479750910E+01 + -0.2896589259894547E+01 + -0.2896759880025456E+01 + -0.2896930340000000E+01 + -0.2897100639734542E+01 + -0.2897270779385448E+01 + -0.2897440759169083E+01 + -0.2897610579301812E+01 + -0.2897780240000000E+01 + -0.2897949741403648E+01 + -0.2898119083347295E+01 + -0.2898288265589120E+01 + -0.2898457287887296E+01 + -0.2898626150000000E+01 + -0.2898794851770868E+01 + -0.2898963393385370E+01 + -0.2899131775114439E+01 + -0.2899299997229005E+01 + -0.2899468060000000E+01 + -0.2899635963592882E+01 + -0.2899803707751224E+01 + -0.2899971292113125E+01 + -0.2900138716316684E+01 + -0.2900305980000000E+01 + -0.2900473082897602E+01 + -0.2900640025129732E+01 + -0.2900806806913062E+01 + -0.2900973428464260E+01 + -0.2901139890000000E+01 + -0.2901306191696709E+01 + -0.2901472333569847E+01 + -0.2901638315594631E+01 + -0.2901804137746276E+01 + -0.2901969800000000E+01 + -0.2902135302315561E+01 + -0.2902300644590879E+01 + -0.2902465826708417E+01 + -0.2902630848550637E+01 + -0.2902795710000000E+01 + -0.2902960410961048E+01 + -0.2903124951426637E+01 + -0.2903289331411702E+01 + -0.2903453550931178E+01 + -0.2903617610000000E+01 + -0.2903781508640247E+01 + -0.2903945246902573E+01 + -0.2904108824844776E+01 + -0.2904272242524652E+01 + -0.2904435500000000E+01 + -0.2904598597277964E+01 + -0.2904761534163070E+01 + -0.2904924310409196E+01 + -0.2905086925770215E+01 + -0.2905249380000000E+01 + -0.2905411672967899E+01 + -0.2905573805005144E+01 + -0.2905735776558440E+01 + -0.2905897588074490E+01 + -0.2906059240000000E+01 + -0.2906220732610441E+01 + -0.2906382065496353E+01 + -0.2906543238077044E+01 + -0.2906704249771824E+01 + -0.2906865100000000E+01 + -0.2907025788350339E+01 + -0.2907186315089445E+01 + -0.2907346680653382E+01 + -0.2907506885478212E+01 + -0.2907666930000000E+01 + -0.2907826814548204E+01 + -0.2907986539025867E+01 + -0.2908146103229429E+01 + -0.2908305506955326E+01 + -0.2908464750000000E+01 + -0.2908623832176844E+01 + -0.2908782753367085E+01 + -0.2908941513468903E+01 + -0.2909100112380481E+01 + -0.2909258550000000E+01 + -0.2909416826264418E+01 + -0.2909574941265792E+01 + -0.2909732895134958E+01 + -0.2909890688002749E+01 + -0.2910048320000000E+01 + -0.2910205791245486E+01 + -0.2910363101809748E+01 + -0.2910520251751266E+01 + -0.2910677241128523E+01 + -0.2910834070000000E+01 + -0.2910990738353638E+01 + -0.2911147245895218E+01 + -0.2911303592259979E+01 + -0.2911459777083159E+01 + -0.2911615800000000E+01 + -0.2911771660779960E+01 + -0.2911927359729380E+01 + -0.2912082897288819E+01 + -0.2912238273898840E+01 + -0.2912393490000000E+01 + -0.2912548545886521E+01 + -0.2912703441267263E+01 + -0.2912858175704743E+01 + -0.2913012748761483E+01 + -0.2913167160000000E+01 + -0.2913321409113955E+01 + -0.2913475496321570E+01 + -0.2913629421972207E+01 + -0.2913783186415230E+01 + -0.2913936790000000E+01 + -0.2914090232937660E+01 + -0.2914243514886460E+01 + -0.2914396635366430E+01 + -0.2914549593897600E+01 + -0.2914702390000000E+01 + -0.2914855023375408E+01 + -0.2915007494452593E+01 + -0.2915159803842075E+01 + -0.2915311952154371E+01 + -0.2915463940000000E+01 + -0.2915615767800710E+01 + -0.2915767435223168E+01 + -0.2915918941745271E+01 + -0.2916070286844916E+01 + -0.2916221470000000E+01 + -0.2916372490781752E+01 + -0.2916523349134734E+01 + -0.2916674045096840E+01 + -0.2916824578705964E+01 + -0.2916974950000000E+01 + -0.2917125159072282E+01 + -0.2917275206237896E+01 + -0.2917425091867370E+01 + -0.2917574816331229E+01 + -0.2917724380000000E+01 + -0.2917873783089121E+01 + -0.2918023025193682E+01 + -0.2918172105753681E+01 + -0.2918321024209120E+01 + -0.2918469780000000E+01 + -0.2918618372731233E+01 + -0.2918766802667378E+01 + -0.2918915070237907E+01 + -0.2919063175872291E+01 + -0.2919211120000000E+01 + -0.2919358902945947E+01 + -0.2919506524616805E+01 + -0.2919653984814691E+01 + -0.2919801283341717E+01 + -0.2919948420000000E+01 + -0.2920095394604979E+01 + -0.2920242207025399E+01 + -0.2920388857143329E+01 + -0.2920535344840840E+01 + -0.2920681670000000E+01 + -0.2920827832554136E+01 + -0.2920973832641598E+01 + -0.2921119670451991E+01 + -0.2921265346174923E+01 + -0.2921410860000000E+01 + -0.2921556212058477E+01 + -0.2921701402248210E+01 + -0.2921846430408706E+01 + -0.2921991296379467E+01 + -0.2922136000000000E+01 + -0.2922280541131955E+01 + -0.2922424919725560E+01 + -0.2922569135753187E+01 + -0.2922713189187210E+01 + -0.2922857080000000E+01 + -0.2923000808213703E+01 + -0.2923144374049550E+01 + -0.2923287777778546E+01 + -0.2923431019671695E+01 + -0.2923574100000000E+01 + -0.2923717018893234E+01 + -0.2923859775916240E+01 + -0.2924002370492629E+01 + -0.2924144802046012E+01 + -0.2924287070000000E+01 + -0.2924429173973361E+01 + -0.2924571114365489E+01 + -0.2924712891770938E+01 + -0.2924854506784257E+01 + -0.2924995960000000E+01 + -0.2925137251853323E+01 + -0.2925278382141802E+01 + -0.2925419350503620E+01 + -0.2925560156576958E+01 + -0.2925700800000000E+01 + -0.2925841280453349E+01 + -0.2925981597787303E+01 + -0.2926121751894583E+01 + -0.2926261742667908E+01 + -0.2926401570000000E+01 + -0.2926541233853281E+01 + -0.2926680734468985E+01 + -0.2926820072158048E+01 + -0.2926959247231408E+01 + -0.2927098260000000E+01 + -0.2927237110693528E+01 + -0.2927375799216758E+01 + -0.2927514325393225E+01 + -0.2927652689046461E+01 + -0.2927790890000000E+01 + -0.2927928928092608E+01 + -0.2928066803223982E+01 + -0.2928204515309052E+01 + -0.2928342064262749E+01 + -0.2928479450000000E+01 + -0.2928616672456040E+01 + -0.2928753731647313E+01 + -0.2928890627610565E+01 + -0.2929027360382545E+01 + -0.2929163930000000E+01 + -0.2929300336483232E+01 + -0.2929436579786768E+01 + -0.2929572659848687E+01 + -0.2929708576607071E+01 + -0.2929844330000000E+01 + -0.2929979920011030E+01 + -0.2930115346805616E+01 + -0.2930250610594688E+01 + -0.2930385711589172E+01 + -0.2930520650000000E+01 + -0.2930655425952646E+01 + -0.2930790039230766E+01 + -0.2930924489532563E+01 + -0.2931058776556240E+01 + -0.2931192900000000E+01 + -0.2931326859618388E+01 + -0.2931460655391321E+01 + -0.2931594287355060E+01 + -0.2931727755545866E+01 + -0.2931861060000000E+01 + -0.2931994200773805E+01 + -0.2932127178003952E+01 + -0.2932259991847197E+01 + -0.2932392642460295E+01 + -0.2932525130000000E+01 + -0.2932657454566395E+01 + -0.2932789616032872E+01 + -0.2932921614216151E+01 + -0.2933053448932954E+01 + -0.2933185120000000E+01 + -0.2933316627280618E+01 + -0.2933447970824563E+01 + -0.2933579150728199E+01 + -0.2933710167087890E+01 + -0.2933841020000000E+01 + -0.2933971709511135E+01 + -0.2934102235468878E+01 + -0.2934232597671052E+01 + -0.2934362795915485E+01 + -0.2934492830000000E+01 + -0.2934622699794842E+01 + -0.2934752405459927E+01 + -0.2934881947227591E+01 + -0.2935011325330170E+01 + -0.2935140540000000E+01 + -0.2935269591389499E+01 + -0.2935398479331416E+01 + -0.2935527203578584E+01 + -0.2935655763883834E+01 + -0.2935784160000000E+01 + -0.2935912391767163E+01 + -0.2936040459374409E+01 + -0.2936168363098074E+01 + -0.2936296103214492E+01 + -0.2936423680000000E+01 + -0.2936551093621847E+01 + -0.2936678343810946E+01 + -0.2936805430189120E+01 + -0.2936932352378196E+01 + -0.2937059110000000E+01 + -0.2937185702785447E+01 + -0.2937312130901809E+01 + -0.2937438394625447E+01 + -0.2937564494232723E+01 + -0.2937690430000000E+01 + -0.2937816202116366E+01 + -0.2937941810421821E+01 + -0.2938067254669093E+01 + -0.2938192534610911E+01 + -0.2938317650000000E+01 + -0.2938442600669090E+01 + -0.2938567386770908E+01 + -0.2938692008538181E+01 + -0.2938816466203636E+01 + -0.2938940760000000E+01 + -0.2939064890087274E+01 + -0.2939188856334547E+01 + -0.2939312658538184E+01 + -0.2939436296494547E+01 + -0.2939559770000000E+01 + -0.2939683078901815E+01 + -0.2939806223250903E+01 + -0.2939929203149083E+01 + -0.2940052018698176E+01 + -0.2940174670000000E+01 + -0.2940297157105466E+01 + -0.2940419479861841E+01 + -0.2940541638065483E+01 + -0.2940663631512750E+01 + -0.2940785460000000E+01 + -0.2940907123396322E+01 + -0.2941028621861733E+01 + -0.2941149955628984E+01 + -0.2941271124930823E+01 + -0.2941392130000000E+01 + -0.2941512970989246E+01 + -0.2941633647731225E+01 + -0.2941754159978580E+01 + -0.2941874507483957E+01 + -0.2941994690000000E+01 + -0.2942114707366693E+01 + -0.2942234559773369E+01 + -0.2942354247496698E+01 + -0.2942473770813352E+01 + -0.2942593130000000E+01 + -0.2942712325223982E+01 + -0.2942831356215301E+01 + -0.2942950222594629E+01 + -0.2943068923982638E+01 + -0.2943187460000000E+01 + -0.2943305830377381E+01 + -0.2943424035285428E+01 + -0.2943542075004785E+01 + -0.2943659949816095E+01 + -0.2943777660000000E+01 + -0.2943895205746496E+01 + -0.2944012586882987E+01 + -0.2944129803146230E+01 + -0.2944246854272982E+01 + -0.2944363740000000E+01 + -0.2944480460156636E+01 + -0.2944597014942624E+01 + -0.2944713404650294E+01 + -0.2944829629571976E+01 + -0.2944945690000000E+01 + -0.2945061586106961E+01 + -0.2945177317586517E+01 + -0.2945292884012593E+01 + -0.2945408284959112E+01 + -0.2945523520000000E+01 + -0.2945638588855521E+01 + -0.2945753491831309E+01 + -0.2945868229379336E+01 + -0.2945982801951574E+01 + -0.2946097210000000E+01 + -0.2946211453830953E+01 + -0.2946325533168248E+01 + -0.2946439447590066E+01 + -0.2946553196674590E+01 + -0.2946666780000000E+01 + -0.2946780197260665E+01 + -0.2946893448615700E+01 + -0.2947006534340400E+01 + -0.2947119454710067E+01 + -0.2947232210000000E+01 + -0.2947344800406385E+01 + -0.2947457225808956E+01 + -0.2947569486008335E+01 + -0.2947681580805142E+01 + -0.2947793510000000E+01 + -0.2947905273433795E+01 + -0.2948016871108478E+01 + -0.2948128303066262E+01 + -0.2948239569349365E+01 + -0.2948350670000000E+01 + -0.2948461605058434E+01 + -0.2948572374557133E+01 + -0.2948682978526616E+01 + -0.2948793416997399E+01 + -0.2948903690000000E+01 + -0.2949013797532470E+01 + -0.2949123739462990E+01 + -0.2949233515627275E+01 + -0.2949343125861040E+01 + -0.2949452570000000E+01 + -0.2949561847931688E+01 + -0.2949670959750908E+01 + -0.2949779905604284E+01 + -0.2949888685638441E+01 + -0.2949997300000000E+01 + -0.2950105748820781E+01 + -0.2950214032173379E+01 + -0.2950322150115587E+01 + -0.2950430102705197E+01 + -0.2950537890000000E+01 + -0.2950645511985191E+01 + -0.2950752968355576E+01 + -0.2950860258733366E+01 + -0.2950967382740771E+01 + -0.2951074340000000E+01 + -0.2951181130278457E+01 + -0.2951287753924316E+01 + -0.2951394211430948E+01 + -0.2951500503291719E+01 + -0.2951606630000000E+01 + -0.2951712591860984E+01 + -0.2951818388427160E+01 + -0.2951924019062844E+01 + -0.2952029483132353E+01 + -0.2952134780000000E+01 + -0.2952239909237611E+01 + -0.2952344871247047E+01 + -0.2952449666637676E+01 + -0.2952554296018871E+01 + -0.2952658760000000E+01 + -0.2952763059028573E+01 + -0.2952867192904655E+01 + -0.2952971161266451E+01 + -0.2953074963752164E+01 + -0.2953178600000000E+01 + -0.2953282069688098E+01 + -0.2953385372654334E+01 + -0.2953488508776522E+01 + -0.2953591477932473E+01 + -0.2953694280000000E+01 + -0.2953796914939038E+01 + -0.2953899383038010E+01 + -0.2954001684667464E+01 + -0.2954103820197945E+01 + -0.2954205790000000E+01 + -0.2954307594315751E+01 + -0.2954409232873624E+01 + -0.2954510705273622E+01 + -0.2954612011115747E+01 + -0.2954713150000000E+01 + -0.2954814121637958E+01 + -0.2954914926187492E+01 + -0.2955015563918047E+01 + -0.2955116035099068E+01 + -0.2955216340000000E+01 + -0.2955316478812418E+01 + -0.2955416451416409E+01 + -0.2955516257614192E+01 + -0.2955615897207983E+01 + -0.2955715370000000E+01 + -0.2955814675832373E+01 + -0.2955913814706873E+01 + -0.2956012786665188E+01 + -0.2956111591749002E+01 + -0.2956210230000000E+01 + -0.2956308701458093E+01 + -0.2956407006156097E+01 + -0.2956505144125055E+01 + -0.2956603115396009E+01 + -0.2956700920000000E+01 + -0.2956798557935255E+01 + -0.2956896029068736E+01 + -0.2956993333234590E+01 + -0.2957090470266962E+01 + -0.2957187440000000E+01 + -0.2957284242320887E+01 + -0.2957380877328957E+01 + -0.2957477345176585E+01 + -0.2957573646016141E+01 + -0.2957669780000000E+01 + -0.2957765747261198E+01 + -0.2957861547855434E+01 + -0.2957957181819071E+01 + -0.2958052649188472E+01 + -0.2958147950000000E+01 + -0.2958243084234320E+01 + -0.2958338051649305E+01 + -0.2958432851947130E+01 + -0.2958527484829970E+01 + -0.2958621950000000E+01 + -0.2958716247241522E+01 + -0.2958810376667346E+01 + -0.2958904338472409E+01 + -0.2958998132851648E+01 + -0.2959091760000000E+01 + -0.2959185220079593E+01 + -0.2959278513121312E+01 + -0.2959371639123235E+01 + -0.2959464598083439E+01 + -0.2959557390000000E+01 + -0.2959650014840108E+01 + -0.2959742472447406E+01 + -0.2959834762634650E+01 + -0.2959926885214597E+01 + -0.2960018840000000E+01 + -0.2960110626879974E+01 + -0.2960202246049062E+01 + -0.2960293697778163E+01 + -0.2960384982338176E+01 + -0.2960476100000000E+01 + -0.2960567050919994E+01 + -0.2960657834796345E+01 + -0.2960748451212699E+01 + -0.2960838899752702E+01 + -0.2960929180000000E+01 + -0.2961019291680051E+01 + -0.2961109235085559E+01 + -0.2961199010651042E+01 + -0.2961288618811017E+01 + -0.2961378060000000E+01 + -0.2961467334519803E+01 + -0.2961556442141418E+01 + -0.2961645382503132E+01 + -0.2961734155243231E+01 + -0.2961822760000000E+01 + -0.2961911196480736E+01 + -0.2961999464668766E+01 + -0.2962087564616429E+01 + -0.2962175496376061E+01 + -0.2962263260000000E+01 + -0.2962350855557253E+01 + -0.2962438283183516E+01 + -0.2962525543031151E+01 + -0.2962612635252524E+01 + -0.2962699560000000E+01 + -0.2962786317370250E+01 + -0.2962872907237170E+01 + -0.2962959329418966E+01 + -0.2963045583733841E+01 + -0.2963131670000000E+01 + -0.2963217588081749E+01 + -0.2963303338027804E+01 + -0.2963388919932984E+01 + -0.2963474333892110E+01 + -0.2963559580000000E+01 + -0.2963644658302757E+01 + -0.2963729568651616E+01 + -0.2963814310849097E+01 + -0.2963898884697719E+01 + -0.2963983290000000E+01 + -0.2964067526627224E+01 + -0.2964151594725732E+01 + -0.2964235494510628E+01 + -0.2964319226197016E+01 + -0.2964402790000000E+01 + -0.2964486186068345E+01 + -0.2964569414285455E+01 + -0.2964652474468392E+01 + -0.2964735366434219E+01 + -0.2964818090000000E+01 + -0.2964900645019394E+01 + -0.2964983031492448E+01 + -0.2965065249455805E+01 + -0.2965147298946107E+01 + -0.2965229180000000E+01 + -0.2965310892654079E+01 + -0.2965392436944755E+01 + -0.2965473812908391E+01 + -0.2965555020581352E+01 + -0.2965636060000000E+01 + -0.2965716931164290E+01 + -0.2965797633928533E+01 + -0.2965878168110632E+01 + -0.2965958533528487E+01 + -0.2966038730000000E+01 + -0.2966118757408761E+01 + -0.2966198615901111E+01 + -0.2966278305689081E+01 + -0.2966357826984701E+01 + -0.2966437180000000E+01 + -0.2966516364880667E+01 + -0.2966595381507022E+01 + -0.2966674229693043E+01 + -0.2966752909252710E+01 + -0.2966831420000000E+01 + -0.2966909761788572E+01 + -0.2966987934630802E+01 + -0.2967065938578746E+01 + -0.2967143773684460E+01 + -0.2967221440000000E+01 + -0.2967298937565046E+01 + -0.2967376266369771E+01 + -0.2967453426391973E+01 + -0.2967530417609451E+01 + -0.2967607240000000E+01 + -0.2967683893551245E+01 + -0.2967760378290114E+01 + -0.2967836694253360E+01 + -0.2967912841477738E+01 + -0.2967988820000000E+01 + -0.2968064629829973E+01 + -0.2968140270869773E+01 + -0.2968215742994585E+01 + -0.2968291046079599E+01 + -0.2968366180000000E+01 + -0.2968441144648861E+01 + -0.2968515939990795E+01 + -0.2968590566008298E+01 + -0.2968665022683867E+01 + -0.2968739310000000E+01 + -0.2968813427974581E+01 + -0.2968887376767047E+01 + -0.2968961156572222E+01 + -0.2969034767584931E+01 + -0.2969108210000000E+01 + -0.2969181483932815E+01 + -0.2969254589181018E+01 + -0.2969327525462814E+01 + -0.2969400292496406E+01 + -0.2969472890000000E+01 + -0.2969545317734158E+01 + -0.2969617575628879E+01 + -0.2969689663656522E+01 + -0.2969761581789443E+01 + -0.2969833330000000E+01 + -0.2969904908330553E+01 + -0.2969976317103465E+01 + -0.2970047556711100E+01 + -0.2970118627545824E+01 + -0.2970189530000000E+01 + -0.2970260264303629E+01 + -0.2970330830037261E+01 + -0.2970401226619076E+01 + -0.2970471453467262E+01 + -0.2970541510000000E+01 + -0.2970611395814928E+01 + -0.2970681111227493E+01 + -0.2970750656732594E+01 + -0.2970820032825130E+01 + -0.2970889240000000E+01 + -0.2970958278596657E+01 + -0.2971027148332767E+01 + -0.2971095848770548E+01 + -0.2971164379472219E+01 + -0.2971232740000000E+01 + -0.2971300930038443E+01 + -0.2971368949761440E+01 + -0.2971436799465215E+01 + -0.2971504479445993E+01 + -0.2971571990000000E+01 + -0.2971639331329571E+01 + -0.2971706503261475E+01 + -0.2971773505528595E+01 + -0.2971840337863810E+01 + -0.2971907000000000E+01 + -0.2971973491763275E+01 + -0.2972039813352660E+01 + -0.2972105965060407E+01 + -0.2972171947178769E+01 + -0.2972237760000000E+01 + -0.2972303403697329E+01 + -0.2972368877967886E+01 + -0.2972434182389779E+01 + -0.2972499316541115E+01 + -0.2972564280000000E+01 + -0.2972629072487410E+01 + -0.2972693694295796E+01 + -0.2972758145860477E+01 + -0.2972822427616772E+01 + -0.2972886540000000E+01 + -0.2972950483313031E+01 + -0.2973014257328930E+01 + -0.2973077861688314E+01 + -0.2973141296031799E+01 + -0.2973204560000000E+01 + -0.2973267653300468E+01 + -0.2973330575908485E+01 + -0.2973393327866268E+01 + -0.2973455909216034E+01 + -0.2973518320000000E+01 + -0.2973580560285099E+01 + -0.2973642630237132E+01 + -0.2973704530046615E+01 + -0.2973766259904065E+01 + -0.2973827820000000E+01 + -0.2973889210439136E+01 + -0.2973950430982988E+01 + -0.2974011481307273E+01 + -0.2974072361087705E+01 + -0.2974133070000000E+01 + -0.2974193607798358E+01 + -0.2974253974550916E+01 + -0.2974314170404294E+01 + -0.2974374195505115E+01 + -0.2974434050000000E+01 + -0.2974493734047433E+01 + -0.2974553247853351E+01 + -0.2974612591635552E+01 + -0.2974671765611835E+01 + -0.2974730770000000E+01 + -0.2974789604891909E+01 + -0.2974848269875682E+01 + -0.2974906764413499E+01 + -0.2974965087967545E+01 + -0.2975023240000000E+01 + -0.2975081220144929E+01 + -0.2975139028723922E+01 + -0.2975196666230450E+01 + -0.2975254133157986E+01 + -0.2975311430000000E+01 + -0.2975368557088375E+01 + -0.2975425514108632E+01 + -0.2975482300584701E+01 + -0.2975538916040513E+01 + -0.2975595360000000E+01 + -0.2975651632141571E+01 + -0.2975707732761552E+01 + -0.2975763662310748E+01 + -0.2975819421239963E+01 + -0.2975875010000000E+01 + -0.2975930428905341E+01 + -0.2975985677725160E+01 + -0.2976040756092309E+01 + -0.2976095663639638E+01 + -0.2976150400000000E+01 + -0.2976204964877068E+01 + -0.2976259358257810E+01 + -0.2976313580200019E+01 + -0.2976367630761485E+01 + -0.2976421510000000E+01 + -0.2976475217986389E+01 + -0.2976528754843601E+01 + -0.2976582120707618E+01 + -0.2976635315714424E+01 + -0.2976688340000000E+01 + -0.2976741193657378E+01 + -0.2976793876607789E+01 + -0.2976846388729510E+01 + -0.2976898729900821E+01 + -0.2976950900000000E+01 + -0.2977002898904097E+01 + -0.2977054726485244E+01 + -0.2977106382614343E+01 + -0.2977157867162294E+01 + -0.2977209180000000E+01 + -0.2977260321046232E+01 + -0.2977311290411234E+01 + -0.2977362088253120E+01 + -0.2977412714730004E+01 + -0.2977463170000000E+01 + -0.2977513454190976E+01 + -0.2977563567309820E+01 + -0.2977613509333177E+01 + -0.2977663280237689E+01 + -0.2977712880000000E+01 + -0.2977762308589865E+01 + -0.2977811565949486E+01 + -0.2977860652014173E+01 + -0.2977909566719240E+01 + -0.2977958310000000E+01 + -0.2978006881769563E+01 + -0.2978055281852238E+01 + -0.2978103510050131E+01 + -0.2978151566165350E+01 + -0.2978199450000000E+01 + -0.2978247161451881E+01 + -0.2978294700801562E+01 + -0.2978342068425302E+01 + -0.2978389264699361E+01 + -0.2978436290000000E+01 + -0.2978483144582910E+01 + -0.2978529828221513E+01 + -0.2978576340568661E+01 + -0.2978622681277205E+01 + -0.2978668850000000E+01 + -0.2978714846456477E+01 + -0.2978760670632385E+01 + -0.2978806322580055E+01 + -0.2978851802351817E+01 + -0.2978897110000000E+01 + -0.2978942245591184E+01 + -0.2978987209248947E+01 + -0.2979032001111118E+01 + -0.2979076621315527E+01 + -0.2979121070000000E+01 + -0.2979165347258789E+01 + -0.2979209453011828E+01 + -0.2979253387135472E+01 + -0.2979297149506078E+01 + -0.2979340740000000E+01 + -0.2979384158493661E+01 + -0.2979427404863743E+01 + -0.2979470478986995E+01 + -0.2979513380740164E+01 + -0.2979556110000000E+01 + -0.2979598666686568E+01 + -0.2979641050893201E+01 + -0.2979683262756550E+01 + -0.2979725302413267E+01 + -0.2979767170000000E+01 + -0.2979808865640068E+01 + -0.2979850389403453E+01 + -0.2979891741346805E+01 + -0.2979932921526770E+01 + -0.2979973930000000E+01 + -0.2980014766753159E+01 + -0.2980055431492985E+01 + -0.2980095923856231E+01 + -0.2980136243479651E+01 + -0.2980176390000000E+01 + -0.2980216363187294E+01 + -0.2980256163344606E+01 + -0.2980295790908270E+01 + -0.2980335246314623E+01 + -0.2980374530000000E+01 + -0.2980413642257665E+01 + -0.2980452582808593E+01 + -0.2980491351230688E+01 + -0.2980529947101856E+01 + -0.2980568370000000E+01 + -0.2980606619622048E+01 + -0.2980644696141024E+01 + -0.2980682599848976E+01 + -0.2980720331037952E+01 + -0.2980757890000000E+01 + -0.2980795276934144E+01 + -0.2980832491667311E+01 + -0.2980869533933407E+01 + -0.2980906403466335E+01 + -0.2980943100000000E+01 + -0.2980979623361378E+01 + -0.2981015973749732E+01 + -0.2981052151457396E+01 + -0.2981088156776708E+01 + -0.2981123990000000E+01 + -0.2981159651300345E+01 + -0.2981195140373762E+01 + -0.2981230456797007E+01 + -0.2981265600146834E+01 + -0.2981300570000000E+01 + -0.2981335366077241E+01 + -0.2981369988675219E+01 + -0.2981404438234576E+01 + -0.2981438715195956E+01 + -0.2981472820000000E+01 + -0.2981506752950691E+01 + -0.2981540513805363E+01 + -0.2981574102184689E+01 + -0.2981607517709344E+01 + -0.2981640760000000E+01 + -0.2981673828759996E+01 + -0.2981706724023331E+01 + -0.2981739445906668E+01 + -0.2981771994526669E+01 + -0.2981804370000000E+01 + -0.2981836572409324E+01 + -0.2981868601701313E+01 + -0.2981900457788640E+01 + -0.2981932140583978E+01 + -0.2981963650000000E+01 + -0.2981994986002707E+01 + -0.2982026148771416E+01 + -0.2982057138538771E+01 + -0.2982087955537418E+01 + -0.2982118600000000E+01 + -0.2982149072059847E+01 + -0.2982179371453023E+01 + -0.2982209497816275E+01 + -0.2982239450786351E+01 + -0.2982269230000000E+01 + -0.2982298835197905E+01 + -0.2982328266536494E+01 + -0.2982357524276130E+01 + -0.2982386608677177E+01 + -0.2982415520000000E+01 + -0.2982444258428534E+01 + -0.2982472823841004E+01 + -0.2982501216039207E+01 + -0.2982529434824940E+01 + -0.2982557480000000E+01 + -0.2982585351407960E+01 + -0.2982613049059493E+01 + -0.2982640573007045E+01 + -0.2982667923303065E+01 + -0.2982695100000000E+01 + -0.2982722103139626E+01 + -0.2982748932721027E+01 + -0.2982775588732615E+01 + -0.2982802071162801E+01 + -0.2982828380000000E+01 + -0.2982854515233537E+01 + -0.2982880476856401E+01 + -0.2982906264862497E+01 + -0.2982931879245729E+01 + -0.2982957320000000E+01 + -0.2982982587126227E+01 + -0.2983007680653369E+01 + -0.2983032600617397E+01 + -0.2983057347054284E+01 + -0.2983081920000000E+01 + -0.2983106319461557E+01 + -0.2983130545330125E+01 + -0.2983154597467915E+01 + -0.2983178475737137E+01 + -0.2983202180000000E+01 + -0.2983225710147546E+01 + -0.2983249066186131E+01 + -0.2983272248150944E+01 + -0.2983295256077171E+01 + -0.2983318090000000E+01 + -0.2983340749948260E+01 + -0.2983363235925350E+01 + -0.2983385547928309E+01 + -0.2983407685954179E+01 + -0.2983429650000000E+01 + -0.2983451440059414E+01 + -0.2983473056112470E+01 + -0.2983494498135820E+01 + -0.2983515766106113E+01 + -0.2983536860000000E+01 + -0.2983557779814084E+01 + -0.2983578525624770E+01 + -0.2983599097528414E+01 + -0.2983619495621372E+01 + -0.2983639720000000E+01 + -0.2983659770684250E+01 + -0.2983679647388451E+01 + -0.2983699349750527E+01 + -0.2983718877408402E+01 + -0.2983738230000000E+01 + -0.2983757407288917E+01 + -0.2983776409541428E+01 + -0.2983795237149481E+01 + -0.2983813890505023E+01 + -0.2983832370000000E+01 + -0.2983850675920083E+01 + -0.2983868808125838E+01 + -0.2983886766371550E+01 + -0.2983904550411508E+01 + -0.2983922160000000E+01 + -0.2983939594950750E+01 + -0.2983956855315223E+01 + -0.2983973941204321E+01 + -0.2983990852728946E+01 + -0.2984007590000000E+01 + -0.2984024153076918E+01 + -0.2984040541813273E+01 + -0.2984056756011168E+01 + -0.2984072795472708E+01 + -0.2984088660000000E+01 + -0.2984104349461576E+01 + -0.2984119863991685E+01 + -0.2984135203791007E+01 + -0.2984150369060219E+01 + -0.2984165360000000E+01 + -0.2984180176756778E+01 + -0.2984194819259986E+01 + -0.2984209287384804E+01 + -0.2984223581006415E+01 + -0.2984237700000000E+01 + -0.2984251644231311E+01 + -0.2984265413528372E+01 + -0.2984279007709778E+01 + -0.2984292426594123E+01 + -0.2984305670000000E+01 + -0.2984318737837978E+01 + -0.2984331630386526E+01 + -0.2984344348016084E+01 + -0.2984356891097094E+01 + -0.2984369260000000E+01 + -0.2984381454976774E+01 + -0.2984393475805524E+01 + -0.2984405322145886E+01 + -0.2984416993657499E+01 + -0.2984428490000000E+01 + -0.2984439810894923E+01 + -0.2984450956311377E+01 + -0.2984461926280371E+01 + -0.2984472720832910E+01 + -0.2984483340000000E+01 + -0.2984493783843537E+01 + -0.2984504052548968E+01 + -0.2984514146332631E+01 + -0.2984524065410863E+01 + -0.2984533810000000E+01 + -0.2984543380210932E+01 + -0.2984552775732752E+01 + -0.2984561996149107E+01 + -0.2984571041043641E+01 + -0.2984579910000000E+01 + -0.2984588602752736E+01 + -0.2984597119640023E+01 + -0.2984605461150943E+01 + -0.2984613627774575E+01 + -0.2984621620000000E+01 + -0.2984629438138125E+01 + -0.2984637081787156E+01 + -0.2984644550367124E+01 + -0.2984651843298061E+01 + -0.2984658960000000E+01 + -0.2984665900054765E+01 + -0.2984672663691355E+01 + -0.2984679251300563E+01 + -0.2984685663273180E+01 + -0.2984691900000000E+01 + -0.2984697961802816E+01 + -0.2984703848727424E+01 + -0.2984709560750626E+01 + -0.2984715097849218E+01 + -0.2984720460000000E+01 + -0.2984725647133973E+01 + -0.2984730658998947E+01 + -0.2984735495296935E+01 + -0.2984740155729948E+01 + -0.2984744640000000E+01 + -0.2984748947901293E+01 + -0.2984753079596787E+01 + -0.2984757035341636E+01 + -0.2984760815390990E+01 + -0.2984764420000000E+01 + -0.2984767849340857E+01 + -0.2984771103253904E+01 + -0.2984774181496522E+01 + -0.2984777083826094E+01 + -0.2984779810000000E+01 + -0.2984782359855279E+01 + -0.2984784733547597E+01 + -0.2984786931312275E+01 + -0.2984788953384636E+01 + -0.2984790800000000E+01 + -0.2984792471318025E+01 + -0.2984793967195706E+01 + -0.2984795287414375E+01 + -0.2984796431755363E+01 + -0.2984797400000000E+01 + -0.2984798191992621E+01 + -0.2984798807829577E+01 + -0.2984799247670222E+01 + -0.2984799511673911E+01 + -0.2984799600000000E+01 + -0.2984799513031492E+01 + -0.2984799252045987E+01 + -0.2984798818544737E+01 + -0.2984798214028991E+01 + -0.2984797440000000E+01 + -0.2984796498041413E+01 + -0.2984795390066475E+01 + -0.2984794118070830E+01 + -0.2984792684050124E+01 + -0.2984791090000000E+01 + -0.2984789337842857E+01 + -0.2984787429208114E+01 + -0.2984785365651942E+01 + -0.2984783148730513E+01 + -0.2984780780000000E+01 + -0.2984778261067157E+01 + -0.2984775593741069E+01 + -0.2984772779881402E+01 + -0.2984769821347824E+01 + -0.2984766720000000E+01 + -0.2984763477648514E+01 + -0.2984760095907610E+01 + -0.2984756576342450E+01 + -0.2984752920518193E+01 + -0.2984749130000000E+01 + -0.2984745206418787E+01 + -0.2984741151668489E+01 + -0.2984736967708798E+01 + -0.2984732656499405E+01 + -0.2984728220000000E+01 + -0.2984723660116339E+01 + -0.2984718978538433E+01 + -0.2984714176902358E+01 + -0.2984709256844188E+01 + -0.2984704220000000E+01 + -0.2984699067995857E+01 + -0.2984693802417778E+01 + -0.2984688424841771E+01 + -0.2984682936843842E+01 + -0.2984677340000000E+01 + -0.2984671635980233E+01 + -0.2984665826830454E+01 + -0.2984659914690560E+01 + -0.2984653901700443E+01 + -0.2984647790000000E+01 + -0.2984641581603212E+01 + -0.2984635278020405E+01 + -0.2984628880635992E+01 + -0.2984622390834386E+01 + -0.2984615810000000E+01 + -0.2984609139606921E+01 + -0.2984602381487927E+01 + -0.2984595537565473E+01 + -0.2984588609762013E+01 + -0.2984581600000000E+01 + -0.2984574510129107E+01 + -0.2984567341707887E+01 + -0.2984560096222115E+01 + -0.2984552775157561E+01 + -0.2984545380000000E+01 + -0.2984537912356651E+01 + -0.2984530374320522E+01 + -0.2984522768106067E+01 + -0.2984515095927742E+01 + -0.2984507360000000E+01 + -0.2984499562364288E+01 + -0.2984491704370024E+01 + -0.2984483787193616E+01 + -0.2984475812011471E+01 + -0.2984467780000000E+01 + -0.2984459692506194E+01 + -0.2984451551559381E+01 + -0.2984443359359470E+01 + -0.2984435118106373E+01 + -0.2984426830000000E+01 + -0.2984418497130934E+01 + -0.2984410121152453E+01 + -0.2984401703608504E+01 + -0.2984393246043037E+01 + -0.2984384750000000E+01 + -0.2984376217050066E+01 + -0.2984367648870806E+01 + -0.2984359047166513E+01 + -0.2984350413641479E+01 + -0.2984341750000000E+01 + -0.2984333057948799E+01 + -0.2984324339204322E+01 + -0.2984315595485445E+01 + -0.2984306828511045E+01 + -0.2984298040000000E+01 + -0.2984289231714739E+01 + -0.2984280405591909E+01 + -0.2984271563611709E+01 + -0.2984262707754339E+01 + -0.2984253840000000E+01 + -0.2984244962232245E+01 + -0.2984236075948044E+01 + -0.2984227182547720E+01 + -0.2984218283431598E+01 + -0.2984209380000000E+01 + -0.2984200473756281E+01 + -0.2984191566615916E+01 + -0.2984182660597411E+01 + -0.2984173757719270E+01 + -0.2984164860000000E+01 + -0.2984155969382631E+01 + -0.2984147087508291E+01 + -0.2984138215942636E+01 + -0.2984129356251321E+01 + -0.2984120510000000E+01 + -0.2984111678793197E+01 + -0.2984102864390919E+01 + -0.2984094068592043E+01 + -0.2984085293195444E+01 + -0.2984076540000000E+01 + -0.2984067810804581E+01 + -0.2984059107408033E+01 + -0.2984050431609194E+01 + -0.2984041785206903E+01 + -0.2984033170000000E+01 + -0.2984024587748479E+01 + -0.2984016040056951E+01 + -0.2984007528491183E+01 + -0.2983999054616944E+01 + -0.2983990620000000E+01 + -0.2983982226281506E+01 + -0.2983973875404166E+01 + -0.2983965569386073E+01 + -0.2983957310245320E+01 + -0.2983949100000000E+01 + -0.2983940940565499E+01 + -0.2983932833446387E+01 + -0.2983924780044524E+01 + -0.2983916781761774E+01 + -0.2983908840000000E+01 + -0.2983900956256496E+01 + -0.2983893132410286E+01 + -0.2983885370435829E+01 + -0.2983877672307581E+01 + -0.2983870040000000E+01 + -0.2983862475448517E+01 + -0.2983854980432467E+01 + -0.2983847556692158E+01 + -0.2983840205967900E+01 + -0.2983832930000000E+01 + -0.2983825730509436E+01 + -0.2983818609139846E+01 + -0.2983811567515540E+01 + -0.2983804607260822E+01 + -0.2983797730000000E+01 + -0.2983790937393741E+01 + -0.2983784231248148E+01 + -0.2983777613405684E+01 + -0.2983771085708814E+01 + -0.2983764650000000E+01 + -0.2983758308075601E+01 + -0.2983752061547562E+01 + -0.2983745911981723E+01 + -0.2983739860943922E+01 + -0.2983733910000000E+01 + -0.2983728060783854E+01 + -0.2983722315201604E+01 + -0.2983716675227427E+01 + -0.2983711142835499E+01 + -0.2983705720000000E+01 + -0.2983700408628984E+01 + -0.2983695210366024E+01 + -0.2983690126788573E+01 + -0.2983685159474081E+01 + -0.2983680310000000E+01 + -0.2983675579980210E+01 + -0.2983670971174299E+01 + -0.2983666485378284E+01 + -0.2983662124388179E+01 + -0.2983657890000000E+01 + -0.2983653784010175E+01 + -0.2983649808216778E+01 + -0.2983645964418293E+01 + -0.2983642254413205E+01 + -0.2983638680000000E+01 + -0.2983635242939089E+01 + -0.2983631944838588E+01 + -0.2983628787268544E+01 + -0.2983625771799000E+01 + -0.2983622900000000E+01 + -0.2983620173513470E+01 + -0.2983617594268868E+01 + -0.2983615164267530E+01 + -0.2983612885510794E+01 + -0.2983610760000000E+01 + -0.2983608789647029E+01 + -0.2983606976005940E+01 + -0.2983605320541336E+01 + -0.2983603824717822E+01 + -0.2983602490000000E+01 + -0.2983601317898414E+01 + -0.2983600310107373E+01 + -0.2983599468367124E+01 + -0.2983598794417917E+01 + -0.2983598290000000E+01 + -0.2983597956919315E+01 + -0.2983597797244570E+01 + -0.2983597813110168E+01 + -0.2983598006650511E+01 + -0.2983598380000000E+01 + -0.2983598935144328E+01 + -0.2983599673474348E+01 + -0.2983600596232204E+01 + -0.2983601704660040E+01 + -0.2983603000000000E+01 + -0.2983604483623374E+01 + -0.2983606157418037E+01 + -0.2983608023401015E+01 + -0.2983610083589328E+01 + -0.2983612340000000E+01 + -0.2983614794602178E+01 + -0.2983617449173502E+01 + -0.2983620305443738E+01 + -0.2983623365142649E+01 + -0.2983626630000000E+01 + -0.2983630101727915E+01 + -0.2983633781967953E+01 + -0.2983637672344035E+01 + -0.2983641774480077E+01 + -0.2983646090000000E+01 + -0.2983650620566163E+01 + -0.2983655367994684E+01 + -0.2983660334140124E+01 + -0.2983665520857043E+01 + -0.2983670930000000E+01 + -0.2983676563367436E+01 + -0.2983682422533312E+01 + -0.2983688509015470E+01 + -0.2983694824331752E+01 + -0.2983701370000000E+01 + -0.2983708147644094E+01 + -0.2983715159312069E+01 + -0.2983722407157997E+01 + -0.2983729893335950E+01 + -0.2983737620000000E+01 + -0.2983745589176186E+01 + -0.2983753802378411E+01 + -0.2983762260992542E+01 + -0.2983770966404449E+01 + -0.2983779920000000E+01 + -0.2983789123251160E+01 + -0.2983798577974287E+01 + -0.2983808286071833E+01 + -0.2983818249446253E+01 + -0.2983828470000000E+01 + -0.2983838949579172E+01 + -0.2983849689804442E+01 + -0.2983860692240125E+01 + -0.2983871958450540E+01 + -0.2983883490000000E+01 + -0.2983895288512152E+01 + -0.2983907355847947E+01 + -0.2983919693927667E+01 + -0.2983932304671591E+01 + -0.2983945190000000E+01 + -0.2983958351812222E+01 + -0.2983971791923771E+01 + -0.2983985512129209E+01 + -0.2983999514223098E+01 + -0.2984013800000000E+01 + -0.2984028371198961E+01 + -0.2984043229336970E+01 + -0.2984058375875497E+01 + -0.2984073812276017E+01 + -0.2984089540000000E+01 + -0.2984105560591932E+01 + -0.2984121875928350E+01 + -0.2984138487968801E+01 + -0.2984155398672835E+01 + -0.2984172610000000E+01 + -0.2984190123873308E+01 + -0.2984207942069630E+01 + -0.2984226066329297E+01 + -0.2984244498392643E+01 + -0.2984263240000000E+01 + -0.2984282292874834E+01 + -0.2984301658673131E+01 + -0.2984321339034011E+01 + -0.2984341335596595E+01 + -0.2984361650000000E+01 + -0.2984382283907358E+01 + -0.2984403239077848E+01 + -0.2984424517294658E+01 + -0.2984446120340979E+01 + -0.2984468050000000E+01 + -0.2984490308055733E+01 + -0.2984512896295479E+01 + -0.2984535816507357E+01 + -0.2984559070479491E+01 + -0.2984582660000000E+01 + -0.2984606586829708E+01 + -0.2984630852620238E+01 + -0.2984655458995913E+01 + -0.2984680407581060E+01 + -0.2984705700000000E+01 + -0.2984731337905436E+01 + -0.2984757323063572E+01 + -0.2984783657268990E+01 + -0.2984810342316272E+01 + -0.2984837380000000E+01 + -0.2984864772108550E+01 + -0.2984892520405476E+01 + -0.2984920626648127E+01 + -0.2984949092593852E+01 + -0.2984977920000000E+01 + -0.2985007110620365E+01 + -0.2985036666194525E+01 + -0.2985066588458503E+01 + -0.2985096879148320E+01 + -0.2985127540000000E+01 + -0.2985158572769989E+01 + -0.2985189979296424E+01 + -0.2985221761437864E+01 + -0.2985253921052869E+01 + -0.2985286460000000E+01 + -0.2985319380059679E+01 + -0.2985352682699782E+01 + -0.2985386369310044E+01 + -0.2985420441280205E+01 + -0.2985454900000000E+01 + -0.2985489746991294E+01 + -0.2985524984304450E+01 + -0.2985560614121960E+01 + -0.2985596638626313E+01 + -0.2985633060000000E+01 + -0.2985669880295146E+01 + -0.2985707101042417E+01 + -0.2985744723642116E+01 + -0.2985782749494543E+01 + -0.2985821180000000E+01 + -0.2985860016628123E+01 + -0.2985899261125881E+01 + -0.2985938915309577E+01 + -0.2985978980995516E+01 + -0.2986019460000000E+01 + -0.2986060354152363E+01 + -0.2986101665334060E+01 + -0.2986143395439575E+01 + -0.2986185546363394E+01 + -0.2986228120000000E+01 + -0.2986271118202424E+01 + -0.2986314542657879E+01 + -0.2986358395012121E+01 + -0.2986402676910909E+01 + -0.2986447390000000E+01 + -0.2986492535917939E+01 + -0.2986538116274424E+01 + -0.2986584132671938E+01 + -0.2986630586712969E+01 + -0.2986677480000000E+01 + -0.2986724814205820E+01 + -0.2986772591284426E+01 + -0.2986820813260124E+01 + -0.2986869482157215E+01 + -0.2986918600000000E+01 + -0.2986968168698784E+01 + -0.2987018189707871E+01 + -0.2987068664367566E+01 + -0.2987119594018174E+01 + -0.2987170980000000E+01 + -0.2987222823799046E+01 + -0.2987275127484092E+01 + -0.2987327893269615E+01 + -0.2987381123370092E+01 + -0.2987434820000000E+01 + -0.2987488985225034E+01 + -0.2987543620515764E+01 + -0.2987598727193976E+01 + -0.2987654306581459E+01 + -0.2987710360000000E+01 + -0.2987766888900818E+01 + -0.2987823895252853E+01 + -0.2987881381154481E+01 + -0.2987939348704072E+01 + -0.2987997800000000E+01 + -0.2988056737011696E+01 + -0.2988116161192823E+01 + -0.2988176073868102E+01 + -0.2988236476362254E+01 + -0.2988297370000000E+01 + -0.2988358756252399E+01 + -0.2988420637175856E+01 + -0.2988483014973114E+01 + -0.2988545891846914E+01 + -0.2988609270000000E+01 + -0.2988673151498708E+01 + -0.2988737537863753E+01 + -0.2988802430479444E+01 + -0.2988867830730090E+01 + -0.2988933740000000E+01 + -0.2989000159752768E+01 + -0.2989067091769131E+01 + -0.2989134537909110E+01 + -0.2989202500032726E+01 + -0.2989270980000000E+01 + -0.2989339979650218E+01 + -0.2989409500739722E+01 + -0.2989479545004116E+01 + -0.2989550114179007E+01 + -0.2989621210000000E+01 + -0.2989692834206360E+01 + -0.2989764988551983E+01 + -0.2989837674794427E+01 + -0.2989910894691247E+01 + -0.2989984650000000E+01 + -0.2990058942484344E+01 + -0.2990133773932346E+01 + -0.2990209146138177E+01 + -0.2990285060896005E+01 + -0.2990361520000000E+01 + -0.2990438525216264E+01 + -0.2990516078198631E+01 + -0.2990594180572866E+01 + -0.2990672833964733E+01 + -0.2990752040000000E+01 + -0.2990831800330598E+01 + -0.2990912116713128E+01 + -0.2990992990930359E+01 + -0.2991074424765061E+01 + -0.2991156420000000E+01 + -0.2991238978421344E+01 + -0.2991322101828855E+01 + -0.2991405792025695E+01 + -0.2991490050815023E+01 + -0.2991574880000000E+01 + -0.2991660281344025E+01 + -0.2991746256451449E+01 + -0.2991832806886861E+01 + -0.2991919934214849E+01 + -0.2992007640000000E+01 + -0.2992095925882555E+01 + -0.2992184793805347E+01 + -0.2992274245786862E+01 + -0.2992364283845585E+01 + -0.2992454910000000E+01 + -0.2992546126165757E+01 + -0.2992637933847164E+01 + -0.2992730334445692E+01 + -0.2992823329362813E+01 + -0.2992916920000000E+01 + -0.2993011107854417E+01 + -0.2993105894805998E+01 + -0.2993201282830370E+01 + -0.2993297273903162E+01 + -0.2993393870000000E+01 + -0.2993491073056576E+01 + -0.2993588884848845E+01 + -0.2993687307112826E+01 + -0.2993786341584538E+01 + -0.2993885990000000E+01 + -0.2993986254079278E+01 + -0.2994087135478622E+01 + -0.2994188635838326E+01 + -0.2994290756798687E+01 + -0.2994393500000000E+01 + -0.2994496867106312E+01 + -0.2994600859876670E+01 + -0.2994705480093872E+01 + -0.2994810729540716E+01 + -0.2994916610000000E+01 + -0.2995023123255476E+01 + -0.2995130271094702E+01 + -0.2995238055306190E+01 + -0.2995346477678452E+01 + -0.2995455540000000E+01 + -0.2995565244031786E+01 + -0.2995675591424524E+01 + -0.2995786583801369E+01 + -0.2995898222785476E+01 + -0.2996010510000000E+01 + -0.2996123447097381E+01 + -0.2996237035847202E+01 + -0.2996351278048333E+01 + -0.2996466175499643E+01 + -0.2996581730000000E+01 + -0.2996697943338691E+01 + -0.2996814817266668E+01 + -0.2996932353525299E+01 + -0.2997050553855953E+01 + -0.2997169420000000E+01 + -0.2997288953707855E+01 + -0.2997409156766127E+01 + -0.2997530030970472E+01 + -0.2997651578116544E+01 + -0.2997773800000000E+01 + -0.2997896698389888E+01 + -0.2998020274948823E+01 + -0.2998144531312815E+01 + -0.2998269469117871E+01 + -0.2998395090000000E+01 + -0.2998521395612594E+01 + -0.2998648387678580E+01 + -0.2998776067938269E+01 + -0.2998904438131972E+01 + -0.2999033500000000E+01 + -0.2999163255319737E+01 + -0.2999293706016857E+01 + -0.2999424854054110E+01 + -0.2999556701394241E+01 + -0.2999689250000000E+01 + -0.2999822501748459E+01 + -0.2999956458173991E+01 + -0.3000091120725293E+01 + -0.3000226490851063E+01 + -0.3000362570000000E+01 + -0.3000499359686428E+01 + -0.3000636861687180E+01 + -0.3000775077844719E+01 + -0.3000914010001505E+01 + -0.3001053660000000E+01 + -0.3001194029665832E+01 + -0.3001335120757290E+01 + -0.3001476935015833E+01 + -0.3001619474182917E+01 + -0.3001762740000000E+01 + -0.3001906734210248E+01 + -0.3002051458563662E+01 + -0.3002196914811952E+01 + -0.3002343104706828E+01 + -0.3002490030000000E+01 + -0.3002637692453177E+01 + -0.3002786093868063E+01 + -0.3002935236056361E+01 + -0.3003085120829772E+01 + -0.3003235750000000E+01 + -0.3003387125337044E+01 + -0.3003539248444086E+01 + -0.3003692120882607E+01 + -0.3003845744214085E+01 + -0.3004000120000000E+01 + -0.3004155249878648E+01 + -0.3004311135795592E+01 + -0.3004467779773212E+01 + -0.3004625183833888E+01 + -0.3004783350000000E+01 + -0.3004942280188364E+01 + -0.3005101975893546E+01 + -0.3005262438504545E+01 + -0.3005423669410363E+01 + -0.3005585670000000E+01 + -0.3005748441767894E+01 + -0.3005911986630225E+01 + -0.3006076306608609E+01 + -0.3006241403724661E+01 + -0.3006407280000000E+01 + -0.3006573937380060E+01 + -0.3006741377505555E+01 + -0.3006909601941021E+01 + -0.3007078612250991E+01 + -0.3007248410000000E+01 + -0.3007418996791867E+01 + -0.3007590374387555E+01 + -0.3007762544587308E+01 + -0.3007935509191374E+01 + -0.3008109270000000E+01 + -0.3008283828812470E+01 + -0.3008459187424226E+01 + -0.3008635347629746E+01 + -0.3008812311223511E+01 + -0.3008990080000000E+01 + -0.3009168655718251E+01 + -0.3009348039995542E+01 + -0.3009528234413706E+01 + -0.3009709240554581E+01 + -0.3009891060000000E+01 + -0.3010073694394524E+01 + -0.3010257145633608E+01 + -0.3010441415675429E+01 + -0.3010626506478167E+01 + -0.3010812420000000E+01 + -0.3010999158143653E+01 + -0.3011186722590029E+01 + -0.3011375114964579E+01 + -0.3011564336892753E+01 + -0.3011754390000000E+01 + -0.3011945275910866E+01 + -0.3012136996246277E+01 + -0.3012329552626255E+01 + -0.3012522946670822E+01 + -0.3012717180000000E+01 + -0.3012912254292884E+01 + -0.3013108171464863E+01 + -0.3013304933490400E+01 + -0.3013502542343959E+01 + -0.3013701000000000E+01 + -0.3013900308357599E+01 + -0.3014100469014271E+01 + -0.3014301483492144E+01 + -0.3014503353313345E+01 + -0.3014706080000000E+01 + -0.3014909665156721E+01 + -0.3015114110718052E+01 + -0.3015319418701024E+01 + -0.3015525591122663E+01 + -0.3015732630000000E+01 + -0.3015940537255518E+01 + -0.3016149314433520E+01 + -0.3016358962983762E+01 + -0.3016569484356003E+01 + -0.3016780880000000E+01 + -0.3016993151421208E+01 + -0.3017206300347870E+01 + -0.3017420328563929E+01 + -0.3017635237853325E+01 + -0.3017851030000000E+01 + -0.3018067706819652E+01 + -0.3018285270255001E+01 + -0.3018503722280525E+01 + -0.3018723064870699E+01 + -0.3018943300000000E+01 + -0.3019164429540185E+01 + -0.3019386454952125E+01 + -0.3019609377593974E+01 + -0.3019833198823882E+01 + -0.3020057920000000E+01 + -0.3020283542619609E+01 + -0.3020510068736498E+01 + -0.3020737500543581E+01 + -0.3020965840233777E+01 + -0.3021195090000000E+01 + -0.3021425251901379E+01 + -0.3021656327461885E+01 + -0.3021888318071702E+01 + -0.3022121225121012E+01 + -0.3022355050000000E+01 + -0.3022589794174876E+01 + -0.3022825459415963E+01 + -0.3023062047569612E+01 + -0.3023299560482174E+01 + -0.3023538000000000E+01 + -0.3023777367959117E+01 + -0.3024017666154262E+01 + -0.3024258896369849E+01 + -0.3024501060390290E+01 + -0.3024744160000000E+01 + -0.3024988196948655E+01 + -0.3025233172846987E+01 + -0.3025479089270992E+01 + -0.3025725947796664E+01 + -0.3025973750000000E+01 + -0.3026222497526263E+01 + -0.3026472192297789E+01 + -0.3026722836306184E+01 + -0.3026974431543053E+01 + -0.3027226980000000E+01 + -0.3027480483586294E+01 + -0.3027734943881857E+01 + -0.3027990362384273E+01 + -0.3028246740591125E+01 + -0.3028504080000000E+01 + -0.3028762382208559E+01 + -0.3029021649214781E+01 + -0.3029281883116725E+01 + -0.3029543086012445E+01 + -0.3029805260000000E+01 + -0.3030068407019468E+01 + -0.3030332528379016E+01 + -0.3030597625228829E+01 + -0.3030863698719095E+01 + -0.3031130750000000E+01 + -0.3031398780433566E+01 + -0.3031667792229154E+01 + -0.3031937787807959E+01 + -0.3032208769591176E+01 + -0.3032480740000000E+01 + -0.3032753701246267E+01 + -0.3033027654704369E+01 + -0.3033302601539337E+01 + -0.3033578542916203E+01 + -0.3033855480000000E+01 + -0.3034133414101365E+01 + -0.3034412347113370E+01 + -0.3034692281074693E+01 + -0.3034973218024010E+01 + -0.3035255160000000E+01 + -0.3035538108988272E+01 + -0.3035822066762151E+01 + -0.3036107035041894E+01 + -0.3036393015547758E+01 + -0.3036680010000000E+01 + -0.3036968020105550E+01 + -0.3037257047518029E+01 + -0.3037547093877733E+01 + -0.3037838160824959E+01 + -0.3038130250000000E+01 + -0.3038423363069531E+01 + -0.3038717501805735E+01 + -0.3039012668007174E+01 + -0.3039308863472408E+01 + -0.3039606090000000E+01 + -0.3039904349376326E+01 + -0.3040203643339030E+01 + -0.3040503973613571E+01 + -0.3040805341925408E+01 + -0.3041107750000000E+01 + -0.3041411199585165E+01 + -0.3041715692518145E+01 + -0.3042021230658543E+01 + -0.3042327815865961E+01 + -0.3042635450000000E+01 + -0.3042944134843017E+01 + -0.3043253871868391E+01 + -0.3043564662472257E+01 + -0.3043876508050748E+01 + -0.3044189410000000E+01 + -0.3044503369842768E+01 + -0.3044818389608291E+01 + -0.3045134471452431E+01 + -0.3045451617531047E+01 + -0.3045769830000000E+01 + -0.3046089110905911E+01 + -0.3046409461858442E+01 + -0.3046730884358019E+01 + -0.3047053379905064E+01 + -0.3047376950000000E+01 + -0.3047701596213588E+01 + -0.3048027320397937E+01 + -0.3048354124475492E+01 + -0.3048682010368698E+01 + -0.3049010980000000E+01 + -0.3049341035199735E+01 + -0.3049672177429807E+01 + -0.3050004408060011E+01 + -0.3050337728460144E+01 + -0.3050672140000000E+01 + -0.3051007644187473E+01 + -0.3051344243082836E+01 + -0.3051681938884464E+01 + -0.3052020733790728E+01 + -0.3052360630000000E+01 + -0.3052701629570376E+01 + -0.3053043733998848E+01 + -0.3053386944642132E+01 + -0.3053731262856944E+01 + -0.3054076690000000E+01 + -0.3054423227531024E+01 + -0.3054770877321772E+01 + -0.3055119641347008E+01 + -0.3055469521581496E+01 + -0.3055820520000000E+01 + -0.3056172638545528E+01 + -0.3056525879034064E+01 + -0.3056880243249836E+01 + -0.3057235732977072E+01 + -0.3057592350000000E+01 + -0.3057950096046865E+01 + -0.3058308972621973E+01 + -0.3058668981173649E+01 + -0.3059030123150217E+01 + -0.3059392400000000E+01 + -0.3059755813267015E+01 + -0.3060120364878045E+01 + -0.3060486056855568E+01 + -0.3060852891222062E+01 + -0.3061220870000000E+01 + -0.3061589995125078E+01 + -0.3061960268185847E+01 + -0.3062331690684078E+01 + -0.3062704264121539E+01 + -0.3063077990000000E+01 + -0.3063452869912676E+01 + -0.3063828905818567E+01 + -0.3064206099768120E+01 + -0.3064584453811782E+01 + -0.3064963970000000E+01 + -0.3065344650264220E+01 + -0.3065726496059887E+01 + -0.3066109508723443E+01 + -0.3066493689591333E+01 + -0.3066879040000000E+01 + -0.3067265561430444E+01 + -0.3067653255941887E+01 + -0.3068042125738109E+01 + -0.3068432173022887E+01 + -0.3068823400000000E+01 + -0.3069215808734005E+01 + -0.3069609400732564E+01 + -0.3070004177364122E+01 + -0.3070400139997120E+01 + -0.3070797290000000E+01 + -0.3071195628833539E+01 + -0.3071595158327855E+01 + -0.3071995880405402E+01 + -0.3072397796988633E+01 + -0.3072800910000001E+01 + -0.3073205221291840E+01 + -0.3073610732436015E+01 + -0.3074017444934269E+01 + -0.3074425360288350E+01 + -0.3074834480000000E+01 + -0.3075244805679103E+01 + -0.3075656339368087E+01 + -0.3076069083217521E+01 + -0.3076483039377970E+01 + -0.3076898210000000E+01 + -0.3077314597111750E+01 + -0.3077732202251636E+01 + -0.3078151026835648E+01 + -0.3078571072279773E+01 + -0.3078992340000000E+01 + -0.3079414831473900E+01 + -0.3079838548425370E+01 + -0.3080263492639890E+01 + -0.3080689665902941E+01 + -0.3081117070000000E+01 + -0.3081545706752651E+01 + -0.3081975578126884E+01 + -0.3082406686124791E+01 + -0.3082839032748466E+01 + -0.3083272620000000E+01 + -0.3083707449755496E+01 + -0.3084143523387094E+01 + -0.3084580842140944E+01 + -0.3085019407263197E+01 + -0.3085459220000001E+01 + -0.3085900281745365E+01 + -0.3086342594484740E+01 + -0.3086786160351432E+01 + -0.3087230981478749E+01 + -0.3087677060000000E+01 + -0.3088124397983044E+01 + -0.3088572997233948E+01 + -0.3089022859493330E+01 + -0.3089473986501808E+01 + -0.3089926380000001E+01 + -0.3090380041682459E+01 + -0.3090834973059469E+01 + -0.3091291175595250E+01 + -0.3091748650754020E+01 + -0.3092207400000000E+01 + -0.3092667424887122E+01 + -0.3093128727328178E+01 + -0.3093591309325672E+01 + -0.3094055172882111E+01 + -0.3094520320000000E+01 + -0.3094986752609054E+01 + -0.3095454472347821E+01 + -0.3095923480782062E+01 + -0.3096393779477535E+01 + -0.3096865370000000E+01 + -0.3097338253956666E+01 + -0.3097812433120540E+01 + -0.3098287909306082E+01 + -0.3098764684327749E+01 + -0.3099242760000001E+01 + -0.3099722138124286E+01 + -0.3100202820450021E+01 + -0.3100684808713613E+01 + -0.3101168104651470E+01 + -0.3101652710000000E+01 + -0.3102138626506194E+01 + -0.3102625855959380E+01 + -0.3103114400159468E+01 + -0.3103604260906371E+01 + -0.3104095440000001E+01 + -0.3104587939210939E+01 + -0.3105081760192461E+01 + -0.3105576904568514E+01 + -0.3106073373963045E+01 + -0.3106571170000000E+01 + -0.3107070294330052E+01 + -0.3107570748710776E+01 + -0.3108072534926475E+01 + -0.3108575654761449E+01 + -0.3109080110000000E+01 + -0.3109585902428854E+01 + -0.3110093033844433E+01 + -0.3110601506045585E+01 + -0.3111111320831158E+01 + -0.3111622480000000E+01 + -0.3112134985314534E+01 + -0.3112648838391493E+01 + -0.3113164040811185E+01 + -0.3113680594153918E+01 + -0.3114198500000001E+01 + -0.3114717759993009E+01 + -0.3115238376029595E+01 + -0.3115760350069676E+01 + -0.3116283684073172E+01 + -0.3116808380000000E+01 + -0.3117334439753431E+01 + -0.3117861865010130E+01 + -0.3118390657390113E+01 + -0.3118920818513398E+01 + -0.3119452350000000E+01 + -0.3119985253473270E+01 + -0.3120519530569888E+01 + -0.3121055182929872E+01 + -0.3121592212193238E+01 + -0.3122130620000000E+01 + -0.3122670408033493E+01 + -0.3123211578150319E+01 + -0.3123754132250399E+01 + -0.3124298072233652E+01 + -0.3124843400000001E+01 + -0.3125390117432760E+01 + -0.3125938226348836E+01 + -0.3126487728548533E+01 + -0.3127038625832153E+01 + -0.3127590920000000E+01 + -0.3128144612795470E+01 + -0.3128699705734338E+01 + -0.3129256200275470E+01 + -0.3129814097877735E+01 + -0.3130373400000000E+01 + -0.3130934108185359E+01 + -0.3131496224313812E+01 + -0.3132059750349586E+01 + -0.3132624688256906E+01 + -0.3133191040000000E+01 + -0.3133758807503094E+01 + -0.3134327992530415E+01 + -0.3134898596806188E+01 + -0.3135470622054641E+01 + -0.3136044070000001E+01 + -0.3136618942362266E+01 + -0.3137195240844530E+01 + -0.3137772967145662E+01 + -0.3138352122964530E+01 + -0.3138932710000000E+01 + -0.3139514729927847E+01 + -0.3140098184331468E+01 + -0.3140683074771165E+01 + -0.3141269402807241E+01 + -0.3141857170000001E+01 + -0.3142446378006349E+01 + -0.3143037028869602E+01 + -0.3143629124729682E+01 + -0.3144222667726508E+01 + -0.3144817660000000E+01 + -0.3145414103566762E+01 + -0.3146011999950128E+01 + -0.3146611350550112E+01 + -0.3147212156766730E+01 + -0.3147814420000001E+01 + -0.3148418141726604E+01 + -0.3149023323729889E+01 + -0.3149629967869873E+01 + -0.3150238076006572E+01 + -0.3150847650000000E+01 + -0.3151458691686826E+01 + -0.3152071202810318E+01 + -0.3152685185090397E+01 + -0.3153300640246985E+01 + -0.3153917570000000E+01 + -0.3154535976086096E+01 + -0.3155155860308841E+01 + -0.3155777224488539E+01 + -0.3156400070445491E+01 + -0.3157024400000000E+01 + -0.3157650214928795E+01 + -0.3158277516834320E+01 + -0.3158906307275448E+01 + -0.3159536587811050E+01 + -0.3160168360000000E+01 + -0.3160801625478726E+01 + -0.3161436386193880E+01 + -0.3162072644169671E+01 + -0.3162710401430308E+01 + -0.3163349660000000E+01 + -0.3163990421796303E+01 + -0.3164632688310163E+01 + -0.3165276460925870E+01 + -0.3165921741027719E+01 + -0.3166568530000000E+01 + -0.3167216829336062E+01 + -0.3167866640965471E+01 + -0.3168517966926849E+01 + -0.3169170809258818E+01 + -0.3169825170000000E+01 + -0.3170481051099451E+01 + -0.3171138454147956E+01 + -0.3171797380646736E+01 + -0.3172457832097011E+01 + -0.3173119810000000E+01 + -0.3173783315946138E+01 + -0.3174448351882707E+01 + -0.3175114919846208E+01 + -0.3175783021873139E+01 + -0.3176452660000000E+01 + -0.3177123836156003E+01 + -0.3177796551841218E+01 + -0.3178470808448433E+01 + -0.3179146607370432E+01 + -0.3179823950000000E+01 + -0.3180502837829853E+01 + -0.3181183272752420E+01 + -0.3181865256760060E+01 + -0.3182548791845134E+01 + -0.3183233880000000E+01 + -0.3183920523164587E+01 + -0.3184608723069104E+01 + -0.3185298481391327E+01 + -0.3185989799809033E+01 + -0.3186682680000000E+01 + -0.3187377122711798E+01 + -0.3188073124971165E+01 + -0.3188770682874633E+01 + -0.3189469792518734E+01 + -0.3190170450000000E+01 + -0.3190872651428223E+01 + -0.3191576392966239E+01 + -0.3192281670790143E+01 + -0.3192988481076031E+01 + -0.3193696820000000E+01 + -0.3194406683735311E+01 + -0.3195118068443882E+01 + -0.3195830970284798E+01 + -0.3196545385417143E+01 + -0.3197261310000000E+01 + -0.3197978740190535E+01 + -0.3198697672138235E+01 + -0.3199418101990667E+01 + -0.3200140025895399E+01 + -0.3200863440000000E+01 + -0.3201588340462550E+01 + -0.3202314723483180E+01 + -0.3203042585272535E+01 + -0.3203771922041260E+01 + -0.3204502730000000E+01 + -0.3205235005319268E+01 + -0.3205968744009048E+01 + -0.3206703942039194E+01 + -0.3207440595379561E+01 + -0.3208178700000000E+01 + -0.3208918251940381E+01 + -0.3209659247520630E+01 + -0.3210401683130688E+01 + -0.3211145555160497E+01 + -0.3211890860000000E+01 + -0.3212637593959210E+01 + -0.3213385753028435E+01 + -0.3214135333118055E+01 + -0.3214886330138450E+01 + -0.3215638740000000E+01 + -0.3216392558702780E+01 + -0.3217147782605631E+01 + -0.3217904408157093E+01 + -0.3218662431805703E+01 + -0.3219421850000000E+01 + -0.3220182659069676E+01 + -0.3220944854869044E+01 + -0.3221708433133575E+01 + -0.3222473389598737E+01 + -0.3223239720000000E+01 + -0.3224007420218519E+01 + -0.3224776486718194E+01 + -0.3225546916108608E+01 + -0.3226318704999348E+01 + -0.3227091850000000E+01 + -0.3227866347576249E+01 + -0.3228642193618184E+01 + -0.3229419383871994E+01 + -0.3230197914083870E+01 + -0.3230977780000000E+01 + -0.3231758977476486E+01 + -0.3232541502809072E+01 + -0.3233325352403415E+01 + -0.3234110522665172E+01 + -0.3234897010000000E+01 + -0.3235684810757810E+01 + -0.3236473921065532E+01 + -0.3237264336994348E+01 + -0.3238056054615443E+01 + -0.3238849070000000E+01 + -0.3239643379252275E+01 + -0.3240438978608804E+01 + -0.3241235864339195E+01 + -0.3242034032713058E+01 + -0.3242833480000000E+01 + -0.3243634202393092E+01 + -0.3244436195779255E+01 + -0.3245239455968871E+01 + -0.3246043978772325E+01 + -0.3246849760000000E+01 + -0.3247656795575358E+01 + -0.3248465081874179E+01 + -0.3249274615385320E+01 + -0.3250085392597641E+01 + -0.3250897410000000E+01 + -0.3251710664025477E+01 + -0.3252525150884032E+01 + -0.3253340866729849E+01 + -0.3254157807717111E+01 + -0.3254975970000000E+01 + -0.3255795349682736E+01 + -0.3256615942669694E+01 + -0.3257437744815282E+01 + -0.3258260751973914E+01 + -0.3259084960000000E+01 + -0.3259910364843579E+01 + -0.3260736962837196E+01 + -0.3261564750409024E+01 + -0.3262393723987235E+01 + -0.3263223880000000E+01 + -0.3264055214782947E+01 + -0.3264887724301522E+01 + -0.3265721404428622E+01 + -0.3266556251037148E+01 + -0.3267392260000000E+01 + -0.3268229427304632E+01 + -0.3269067749396718E+01 + -0.3269907222836488E+01 + -0.3270747844184172E+01 + -0.3271589610000000E+01 + -0.3272432516718526E+01 + -0.3273276560271607E+01 + -0.3274121736465424E+01 + -0.3274968041106162E+01 + -0.3275815470000000E+01 + -0.3276664019021266E+01 + -0.3277513684316857E+01 + -0.3278364462101815E+01 + -0.3279216348591183E+01 + -0.3280069340000000E+01 + -0.3280923432556411E+01 + -0.3281778622540966E+01 + -0.3282634906247314E+01 + -0.3283492279969108E+01 + -0.3284350740000000E+01 + -0.3285210282593090E+01 + -0.3286070903839283E+01 + -0.3286932599788929E+01 + -0.3287795366492385E+01 + -0.3288659200000000E+01 + -0.3289524096351227E+01 + -0.3290390051541905E+01 + -0.3291257061556969E+01 + -0.3292125122381355E+01 + -0.3292994230000000E+01 + -0.3293864380482002E+01 + -0.3294735570233100E+01 + -0.3295607795743198E+01 + -0.3296481053502197E+01 + -0.3297355340000000E+01 + -0.3298230651640768E+01 + -0.3299106984485697E+01 + -0.3299984334510242E+01 + -0.3300862697689857E+01 + -0.3301742070000000E+01 + -0.3302622447434928E+01 + -0.3303503826064115E+01 + -0.3304386201975837E+01 + -0.3305269571258373E+01 + -0.3306153930000000E+01 + -0.3307039274299521E+01 + -0.3307925600297846E+01 + -0.3308812904146410E+01 + -0.3309701181996649E+01 + -0.3310590430000000E+01 + -0.3311480644326988E+01 + -0.3312371821224503E+01 + -0.3313263956958524E+01 + -0.3314157047795030E+01 + -0.3315051090000000E+01 + -0.3315946079832526E+01 + -0.3316842013524143E+01 + -0.3317738887299496E+01 + -0.3318636697383233E+01 + -0.3319535440000000E+01 + -0.3320435111302909E+01 + -0.3321335707158928E+01 + -0.3322237223363493E+01 + -0.3323139655712039E+01 + -0.3324043000000000E+01 + -0.3324947252155841E+01 + -0.3325852408640146E+01 + -0.3326758466046531E+01 + -0.3327665420968611E+01 + -0.3328573270000000E+01 + -0.3329482009593729E+01 + -0.3330391635640489E+01 + -0.3331302143890384E+01 + -0.3332213530093519E+01 + -0.3333125790000000E+01 + -0.3334038919469241E+01 + -0.3334952914797898E+01 + -0.3335867772391933E+01 + -0.3336783488657313E+01 + -0.3337700060000000E+01 + -0.3338617482769305E+01 + -0.3339535753087921E+01 + -0.3340454867021883E+01 + -0.3341374820637231E+01 + -0.3342295610000000E+01 + -0.3343217231213537E+01 + -0.3344139680530420E+01 + -0.3345062954240534E+01 + -0.3345987048633766E+01 + -0.3346911960000000E+01 + -0.3347837684536546E+01 + -0.3348764218070401E+01 + -0.3349691556335982E+01 + -0.3350619695067708E+01 + -0.3351548630000000E+01 + -0.3352478357040278E+01 + -0.3353408872787979E+01 + -0.3354340174015540E+01 + -0.3355272257495401E+01 + -0.3356205120000000E+01 + -0.3357138758102341E+01 + -0.3358073167577685E+01 + -0.3359008344001859E+01 + -0.3359944282950688E+01 + -0.3360880980000000E+01 + -0.3361818430870359E+01 + -0.3362756631861281E+01 + -0.3363695579417025E+01 + -0.3364635269981846E+01 + -0.3365575700000000E+01 + -0.3366516865856226E+01 + -0.3367458763697190E+01 + -0.3368401389610041E+01 + -0.3369344739681928E+01 + -0.3370288810000000E+01 + -0.3371233596664738E+01 + -0.3372179095829959E+01 + -0.3373125303662811E+01 + -0.3374072216330441E+01 + -0.3375019830000000E+01 + -0.3375968140844820E+01 + -0.3376917145062973E+01 + -0.3377866838858717E+01 + -0.3378817218436307E+01 + -0.3379768280000000E+01 + -0.3380720019715981E+01 + -0.3381672433598147E+01 + -0.3382625517622323E+01 + -0.3383579267764332E+01 + -0.3384533680000000E+01 + -0.3385488750371255E+01 + -0.3386444475184437E+01 + -0.3387400850811992E+01 + -0.3388357873626365E+01 + -0.3389315540000000E+01 + -0.3390273846239001E+01 + -0.3391232788384105E+01 + -0.3392192362409709E+01 + -0.3393152564290209E+01 + -0.3394113390000000E+01 + -0.3395074835552742E+01 + -0.3396036897119143E+01 + -0.3396999570909172E+01 + -0.3397962853132801E+01 + -0.3398926740000000E+01 + -0.3399891227710031E+01 + -0.3400856312419324E+01 + -0.3401821990273603E+01 + -0.3402788257418587E+01 + -0.3403755110000000E+01 + -0.3404722544167135E+01 + -0.3405690556083562E+01 + -0.3406659141916422E+01 + -0.3407628297832854E+01 + -0.3408598020000000E+01 + -0.3409568304581428E+01 + -0.3410539147726425E+01 + -0.3411510545580710E+01 + -0.3412482494289996E+01 + -0.3413454990000000E+01 + -0.3414428028867153E+01 + -0.3415401607090736E+01 + -0.3416375720880742E+01 + -0.3417350366447165E+01 + -0.3418325540000000E+01 + -0.3419301237709959E+01 + -0.3420277455590630E+01 + -0.3421254189616323E+01 + -0.3422231435761344E+01 + -0.3423209190000000E+01 + -0.3424187448373012E+01 + -0.3425166207186744E+01 + -0.3426145462813969E+01 + -0.3427125211627462E+01 + -0.3428105450000000E+01 + -0.3429086174237991E+01 + -0.3430067380382393E+01 + -0.3431049064407801E+01 + -0.3432031222288805E+01 + -0.3433013850000000E+01 + -0.3433996943555024E+01 + -0.3434980499123684E+01 + -0.3435964512914832E+01 + -0.3436948981137320E+01 + -0.3437933900000000E+01 + -0.3438919265701914E+01 + -0.3439905074402871E+01 + -0.3440891322252873E+01 + -0.3441878005401915E+01 + -0.3442865120000000E+01 + -0.3443852662197319E+01 + -0.3444840628144831E+01 + -0.3445829013993681E+01 + -0.3446817815895021E+01 + -0.3447807030000000E+01 + -0.3448796652468807E+01 + -0.3449786679497806E+01 + -0.3450777107292402E+01 + -0.3451767932057998E+01 + -0.3452759150000000E+01 + -0.3453750757287452E+01 + -0.3454742749943947E+01 + -0.3455735123956715E+01 + -0.3456727875312989E+01 + -0.3457721000000000E+01 + -0.3458714494061384E+01 + -0.3459708353766406E+01 + -0.3460702575440737E+01 + -0.3461697155410045E+01 + -0.3462692090000000E+01 + -0.3463687375507010E+01 + -0.3464683008110427E+01 + -0.3465678983960338E+01 + -0.3466675299206833E+01 + -0.3467671950000000E+01 + -0.3468668932470575E+01 + -0.3469666242671885E+01 + -0.3470663876637910E+01 + -0.3471661830402623E+01 + -0.3472660100000000E+01 + -0.3473658681490692E+01 + -0.3474657571042032E+01 + -0.3475656764848026E+01 + -0.3476656259102680E+01 + -0.3477656050000000E+01 + -0.3478656133726657E+01 + -0.3479656506439986E+01 + -0.3480657164289987E+01 + -0.3481658103426658E+01 + -0.3482659320000000E+01 + -0.3483660810162679E+01 + -0.3484662570078024E+01 + -0.3485664595912029E+01 + -0.3486666883830690E+01 + -0.3487669430000000E+01 + -0.3488672230582624E+01 + -0.3489675281727915E+01 + -0.3490678579581893E+01 + -0.3491682120290582E+01 + -0.3492685900000000E+01 + -0.3493689914866822E+01 + -0.3494694161090316E+01 + -0.3495698634880398E+01 + -0.3496703332446987E+01 + -0.3497708250000000E+01 + -0.3498713383710086E+01 + -0.3499718729590822E+01 + -0.3500724283616514E+01 + -0.3501730041761472E+01 + -0.3502736000000000E+01 + -0.3503742154372833E+01 + -0.3504748501186398E+01 + -0.3505755036813546E+01 + -0.3506761757627129E+01 + -0.3507768660000000E+01 + -0.3508775740238581E+01 + -0.3509782994383586E+01 + -0.3510790418409300E+01 + -0.3511798008290011E+01 + -0.3512805760000000E+01 + -0.3513813669552843E+01 + -0.3514821733119259E+01 + -0.3515829946909253E+01 + -0.3516838307132831E+01 + -0.3517846810000000E+01 + -0.3518855451710045E+01 + -0.3519864228419377E+01 + -0.3520873136273687E+01 + -0.3521882171418665E+01 + -0.3522891330000000E+01 + -0.3523900608166976E+01 + -0.3524910002083233E+01 + -0.3525919507916001E+01 + -0.3526929121832513E+01 + -0.3527938840000000E+01 + -0.3528948658582051E+01 + -0.3529958573727692E+01 + -0.3530968581582307E+01 + -0.3531978678291283E+01 + -0.3532988860000000E+01 + -0.3533999122864821E+01 + -0.3535009463086000E+01 + -0.3536019876874769E+01 + -0.3537030360442359E+01 + -0.3538040910000000E+01 + -0.3539051521718665E+01 + -0.3540062191608306E+01 + -0.3541072915638613E+01 + -0.3542083689779281E+01 + -0.3543094510000000E+01 + -0.3544105372340517E+01 + -0.3545116273120777E+01 + -0.3546127208730779E+01 + -0.3547138175560520E+01 + -0.3548149170000000E+01 + -0.3549160188359267E+01 + -0.3550171226628585E+01 + -0.3551182280718269E+01 + -0.3552193346538637E+01 + -0.3553204420000002E+01 + -0.3554215497102416E+01 + -0.3555226574204883E+01 + -0.3556237647756144E+01 + -0.3557248714204936E+01 + -0.3558259770000000E+01 + -0.3559270811471073E+01 + -0.3560281834471884E+01 + -0.3561292834737158E+01 + -0.3562303808001623E+01 + -0.3563314750000001E+01 + -0.3564325656613293E+01 + -0.3565336524307582E+01 + -0.3566347349695225E+01 + -0.3567358129388579E+01 + -0.3568368860000000E+01 + -0.3569379537995760E+01 + -0.3570390159257792E+01 + -0.3571400719521944E+01 + -0.3572411214524065E+01 + -0.3573421640000001E+01 + -0.3574431991803669E+01 + -0.3575442266261251E+01 + -0.3576452459817000E+01 + -0.3577462568915166E+01 + -0.3578472590000000E+01 + -0.3579482519429569E+01 + -0.3580492353217205E+01 + -0.3581502087290057E+01 + -0.3582511717575274E+01 + -0.3583521240000001E+01 + -0.3584530650558057E+01 + -0.3585539945509929E+01 + -0.3586549121182773E+01 + -0.3587558173903745E+01 + -0.3588567100000000E+01 + -0.3589575895778207E+01 + -0.3590584557463082E+01 + -0.3591593081258853E+01 + -0.3592601463369751E+01 + -0.3593609700000001E+01 + -0.3594617787289118E+01 + -0.3595625721117747E+01 + -0.3596633497301817E+01 + -0.3597641111657258E+01 + -0.3598648560000000E+01 + -0.3599655838265326E+01 + -0.3600662942865936E+01 + -0.3601669870333883E+01 + -0.3602676617201221E+01 + -0.3603683180000001E+01 + -0.3604689555169579E+01 + -0.3605695738778512E+01 + -0.3606701726802655E+01 + -0.3607707515217865E+01 + -0.3608713100000000E+01 + -0.3609718477136360E+01 + -0.3610723642660021E+01 + -0.3611728592615501E+01 + -0.3612733323047322E+01 + -0.3613737830000001E+01 + -0.3614742109564982E+01 + -0.3615746158021406E+01 + -0.3616749971695341E+01 + -0.3617753546912850E+01 + -0.3618756880000000E+01 + -0.3619759967243715E+01 + -0.3620762804774355E+01 + -0.3621765388683137E+01 + -0.3622767715061281E+01 + -0.3623769780000001E+01 + -0.3624771579620158E+01 + -0.3625773110161174E+01 + -0.3626774367892111E+01 + -0.3627775349082032E+01 + -0.3628776050000000E+01 + -0.3629776466835656E+01 + -0.3630776595460953E+01 + -0.3631776431668422E+01 + -0.3632775971250594E+01 + -0.3633775210000001E+01 + -0.3634774143837220E+01 + -0.3635772769195016E+01 + -0.3636771082634204E+01 + -0.3637769080715594E+01 + -0.3638766760000000E+01 + -0.3639764116935469E+01 + -0.3640761147518985E+01 + -0.3641757847634766E+01 + -0.3642754213167031E+01 + -0.3643750240000001E+01 + -0.3644745924100908E+01 + -0.3645741261769048E+01 + -0.3646736249386736E+01 + -0.3647730883336283E+01 + -0.3648725160000000E+01 + -0.3649719076580905E+01 + -0.3650712633564825E+01 + -0.3651705832258294E+01 + -0.3652698673967841E+01 + -0.3653691160000001E+01 + -0.3654683291735475E+01 + -0.3655675070851652E+01 + -0.3656666499100091E+01 + -0.3657657578232354E+01 + -0.3658648310000000E+01 + -0.3659638696157200E+01 + -0.3660628738468571E+01 + -0.3661618438701342E+01 + -0.3662607798622742E+01 + -0.3663596820000001E+01 + -0.3664585504515728E+01 + -0.3665573853514066E+01 + -0.3666561868254540E+01 + -0.3667549549996677E+01 + -0.3668536900000000E+01 + -0.3669523919619893E+01 + -0.3670510610595168E+01 + -0.3671496974760498E+01 + -0.3672483013950552E+01 + -0.3673468730000001E+01 + -0.3674454124684703E+01 + -0.3675439199545262E+01 + -0.3676423956063470E+01 + -0.3677408395721119E+01 + -0.3678392520000000E+01 + -0.3679376330441301E+01 + -0.3680359828823788E+01 + -0.3681343016985625E+01 + -0.3682325896764975E+01 + -0.3683308470000001E+01 + -0.3684290738430097E+01 + -0.3685272703399588E+01 + -0.3686254366154032E+01 + -0.3687235727938983E+01 + -0.3688216790000000E+01 + -0.3689197553678314E+01 + -0.3690178020697861E+01 + -0.3691158192878250E+01 + -0.3692138072039093E+01 + -0.3693117660000001E+01 + -0.3694096958536647E+01 + -0.3695075969248968E+01 + -0.3696054693692967E+01 + -0.3697033133424644E+01 + -0.3698011290000000E+01 + -0.3698989164975102E+01 + -0.3699966759906268E+01 + -0.3700944076349884E+01 + -0.3701921115862333E+01 + -0.3702897880000001E+01 + -0.3703874370362950E+01 + -0.3704850588725962E+01 + -0.3705826536907499E+01 + -0.3706802216726025E+01 + -0.3707777630000000E+01 + -0.3708752778453104E+01 + -0.3709727663429888E+01 + -0.3710702286180120E+01 + -0.3711676647953567E+01 + -0.3712650750000001E+01 + -0.3713624593664636E+01 + -0.3714598180674487E+01 + -0.3715571512852022E+01 + -0.3716544592019705E+01 + -0.3717517420000000E+01 + -0.3718489998568358E+01 + -0.3719462329312165E+01 + -0.3720434413771793E+01 + -0.3721406253487614E+01 + -0.3722377850000001E+01 + -0.3723349204861935E+01 + -0.3724320319676854E+01 + -0.3725291196060805E+01 + -0.3726261835629838E+01 + -0.3727232240000000E+01 + -0.3728202410783905E+01 + -0.3729172349580423E+01 + -0.3730142057984988E+01 + -0.3731111537593035E+01 + -0.3732080790000001E+01 + -0.3733049816802447E+01 + -0.3734018619601457E+01 + -0.3734987199999244E+01 + -0.3735955559598021E+01 + -0.3736923700000000E+01 + -0.3737891622806311E+01 + -0.3738859329613752E+01 + -0.3739826822018037E+01 + -0.3740794101614882E+01 + -0.3741761170000001E+01 + -0.3742728028772311E+01 + -0.3743694679543538E+01 + -0.3744661123928609E+01 + -0.3745627363542454E+01 + -0.3746593400000000E+01 + -0.3747559234904450E+01 + -0.3748524869812102E+01 + -0.3749490306267529E+01 + -0.3750455545815304E+01 + -0.3751420590000001E+01 + -0.3752385440409892E+01 + -0.3753350098808056E+01 + -0.3754314567001275E+01 + -0.3755278846796330E+01 + -0.3756242940000000E+01 + -0.3757206848335988E+01 + -0.3758170573195677E+01 + -0.3759134115887372E+01 + -0.3760097477719378E+01 + -0.3761060660000000E+01 + -0.3762023664086160E+01 + -0.3762986491529239E+01 + -0.3763949143929239E+01 + -0.3764911622886159E+01 + -0.3765873930000000E+01 + -0.3766836066919378E+01 + -0.3767798035487372E+01 + -0.3768759837595677E+01 + -0.3769721475135988E+01 + -0.3770682950000000E+01 + -0.3771644263996330E+01 + -0.3772605418601275E+01 + -0.3773566415208056E+01 + -0.3774527255209891E+01 + -0.3775487940000000E+01 + -0.3776448471015304E+01 + -0.3777408849867529E+01 + -0.3778369078212102E+01 + -0.3779329157704450E+01 + -0.3780289090000000E+01 + -0.3781248876742455E+01 + -0.3782208519528609E+01 + -0.3783168019943537E+01 + -0.3784127379572310E+01 + -0.3785086600000000E+01 + -0.3786045682814881E+01 + -0.3787004629618037E+01 + -0.3787963442013752E+01 + -0.3788922121606311E+01 + -0.3789880670000000E+01 + -0.3790839088798022E+01 + -0.3791797379599245E+01 + -0.3792755544001457E+01 + -0.3793713583602447E+01 + -0.3794671500000000E+01 + -0.3795629294793035E+01 + -0.3796586969584987E+01 + -0.3797544525980422E+01 + -0.3798501965583905E+01 + -0.3799459290000000E+01 + -0.3800416500829840E+01 + -0.3801373599660808E+01 + -0.3802330588076856E+01 + -0.3803287467661937E+01 + -0.3804244240000000E+01 + -0.3805200906687611E+01 + -0.3806157469371786E+01 + -0.3807113929712156E+01 + -0.3808070289368350E+01 + -0.3809026550000000E+01 + -0.3809982713219720E+01 + -0.3810938780452051E+01 + -0.3811894753074523E+01 + -0.3812850632464663E+01 + -0.3813806420000000E+01 + -0.3814762117153516E+01 + -0.3815717725780015E+01 + -0.3816673247829756E+01 + -0.3817628685252998E+01 + -0.3818584040000000E+01 + -0.3819539313926219E+01 + -0.3820494508507893E+01 + -0.3821449625126457E+01 + -0.3822404665163348E+01 + -0.3823359630000000E+01 + -0.3824314521061611E+01 + -0.3825269339948417E+01 + -0.3826224088304419E+01 + -0.3827178767773614E+01 + -0.3828133380000000E+01 + -0.3829087926627340E+01 + -0.3830042409298439E+01 + -0.3830996829655869E+01 + -0.3831951189342199E+01 + -0.3832905490000000E+01 + -0.3833859733229033E+01 + -0.3834813920457827E+01 + -0.3835768053072106E+01 + -0.3836722132457589E+01 + -0.3837676160000000E+01 + -0.3838630137176530E+01 + -0.3839584065830252E+01 + -0.3840537947895708E+01 + -0.3841491785307443E+01 + -0.3842445580000000E+01 + -0.3843399333824849E+01 + -0.3844353048301169E+01 + -0.3845306724865064E+01 + -0.3846260364952639E+01 + -0.3847213970000000E+01 + -0.3848167541444074E+01 + -0.3849121080725075E+01 + -0.3850074589284038E+01 + -0.3851028068562001E+01 + -0.3851981520000000E+01 + -0.3852934945118856E+01 + -0.3853888345758535E+01 + -0.3854841723838785E+01 + -0.3855795081279357E+01 + -0.3856748420000000E+01 + -0.3857701741840501E+01 + -0.3858655048320786E+01 + -0.3859608340880822E+01 + -0.3860561620960571E+01 + -0.3861514890000000E+01 + -0.3862468149439144E+01 + -0.3863421400718324E+01 + -0.3864374645277931E+01 + -0.3865327884558359E+01 + -0.3866281120000000E+01 + -0.3867234353122925E+01 + -0.3868187585765922E+01 + -0.3869140819847455E+01 + -0.3870094057285992E+01 + -0.3871047300000000E+01 + -0.3872000549829157E+01 + -0.3872953808297994E+01 + -0.3873907076852251E+01 + -0.3874860356937673E+01 + -0.3875813650000000E+01 + -0.3876766957480447E+01 + -0.3877720280802105E+01 + -0.3878673621383540E+01 + -0.3879626980643317E+01 + -0.3880580360000000E+01 + -0.3881533760969060E+01 + -0.3882487185453590E+01 + -0.3883440635453590E+01 + -0.3884394112969060E+01 + -0.3885347620000000E+01 + -0.3886301158403316E+01 + -0.3887254729463539E+01 + -0.3888208334322102E+01 + -0.3889161974120444E+01 + -0.3890115650000000E+01 + -0.3891069363257676E+01 + -0.3892023115812259E+01 + -0.3892976909738003E+01 + -0.3893930747109165E+01 + -0.3894884630000000E+01 + -0.3895838560325977E+01 + -0.3896792539367426E+01 + -0.3897746568245885E+01 + -0.3898700648082896E+01 + -0.3899654780000000E+01 + -0.3900608965278412E+01 + -0.3901563205838039E+01 + -0.3902517503758459E+01 + -0.3903471861119253E+01 + -0.3904426280000000E+01 + -0.3905380762320374E+01 + -0.3906335309360421E+01 + -0.3907289922240281E+01 + -0.3908244602080094E+01 + -0.3909199350000000E+01 + -0.3910154167280094E+01 + -0.3911109055840280E+01 + -0.3912064017760420E+01 + -0.3913019055120373E+01 + -0.3913974170000000E+01 + -0.3914929364319253E+01 + -0.3915884639358460E+01 + -0.3916839996238039E+01 + -0.3917795436078412E+01 + -0.3918750960000000E+01 + -0.3919706569282896E+01 + -0.3920662265845884E+01 + -0.3921618051767426E+01 + -0.3922573929125978E+01 + -0.3923529900000000E+01 + -0.3924485966309165E+01 + -0.3925442129338004E+01 + -0.3926398390212260E+01 + -0.3927354750057677E+01 + -0.3928311210000000E+01 + -0.3929267771320443E+01 + -0.3930224435922101E+01 + -0.3931181205863538E+01 + -0.3932138083203316E+01 + -0.3933095070000000E+01 + -0.3934052168169059E+01 + -0.3935009379053590E+01 + -0.3935966703853590E+01 + -0.3936924143769060E+01 + -0.3937881700000000E+01 + -0.3938839373843317E+01 + -0.3939797166983540E+01 + -0.3940755081202104E+01 + -0.3941713118280446E+01 + -0.3942671280000000E+01 + -0.3943629568137673E+01 + -0.3944587984452252E+01 + -0.3945546530697994E+01 + -0.3946505208629158E+01 + -0.3947464020000000E+01 + -0.3948422966485992E+01 + -0.3949382049447454E+01 + -0.3950341270165921E+01 + -0.3951300629922925E+01 + -0.3952260130000000E+01 + -0.3953219771758359E+01 + -0.3954179556877932E+01 + -0.3955139487118324E+01 + -0.3956099564239144E+01 + -0.3957059790000000E+01 + -0.3958020166160571E+01 + -0.3958980694480821E+01 + -0.3959941376720785E+01 + -0.3960902214640500E+01 + -0.3961863210000000E+01 + -0.3962824364479357E+01 + -0.3963785679438786E+01 + -0.3964747156158536E+01 + -0.3965708795918857E+01 + -0.3966670600000000E+01 + -0.3967632569762001E+01 + -0.3968594706884037E+01 + -0.3969557013125074E+01 + -0.3970519490244073E+01 + -0.3971482140000000E+01 + -0.3972444964152639E+01 + -0.3973407964465065E+01 + -0.3974371142701170E+01 + -0.3975334500624850E+01 + -0.3976298040000000E+01 + -0.3977261762507442E+01 + -0.3978225669495706E+01 + -0.3979189762230249E+01 + -0.3980154041976528E+01 + -0.3981118510000000E+01 + -0.3982083167657592E+01 + -0.3983048016672112E+01 + -0.3984013058857835E+01 + -0.3984978296029039E+01 + -0.3985943730000000E+01 + -0.3986909362542188E+01 + -0.3987875195255846E+01 + -0.3988841229698410E+01 + -0.3989807467427316E+01 + -0.3990773910000000E+01 + -0.3991740558973655E+01 + -0.3992707415904503E+01 + -0.3993674482348524E+01 + -0.3994641759861696E+01 + -0.3995609250000000E+01 + -0.3996576954363192E+01 + -0.3997544874726142E+01 + -0.3998513012907496E+01 + -0.3999481370725900E+01 + -0.4000449950000000E+01 + -0.4001418752453575E+01 + -0.4002387779430929E+01 + -0.4003357032181494E+01 + -0.4004326511954706E+01 + -0.4005296220000000E+01 + -0.4006266157662507E+01 + -0.4007236326670145E+01 + -0.4008206728846530E+01 + -0.4009177366015277E+01 + -0.4010148240000000E+01 + -0.4011119352576398E+01 + -0.4012090705328492E+01 + -0.4013062299792388E+01 + -0.4014034137504190E+01 + -0.4015006220000000E+01 + -0.4015978548831904E+01 + -0.4016951125615889E+01 + -0.4017923951983922E+01 + -0.4018897029567969E+01 + -0.4019870360000000E+01 + -0.4020843944895987E+01 + -0.4021817785807951E+01 + -0.4022791884271922E+01 + -0.4023766241823929E+01 + -0.4024740860000000E+01 + -0.4025715740384148E+01 + -0.4026690884752306E+01 + -0.4027666294928390E+01 + -0.4028641972736316E+01 + -0.4029617920000000E+01 + -0.4030594138447421E+01 + -0.4031570629422824E+01 + -0.4032547394174516E+01 + -0.4033524433950806E+01 + -0.4034501750000000E+01 + -0.4035479343666168E+01 + -0.4036457216676401E+01 + -0.4037435370853549E+01 + -0.4038413808020465E+01 + -0.4039392530000000E+01 + -0.4040371538567908E+01 + -0.4041350835311573E+01 + -0.4042330421771286E+01 + -0.4043310299487332E+01 + -0.4044290470000000E+01 + -0.4045270934862199E+01 + -0.4046251695677304E+01 + -0.4047232754061310E+01 + -0.4048214111630210E+01 + -0.4049195770000000E+01 + -0.4050177730783295E+01 + -0.4051159995579208E+01 + -0.4052142565983474E+01 + -0.4053125443591826E+01 + -0.4054108630000000E+01 + -0.4055092126804620E+01 + -0.4056075935605864E+01 + -0.4057060058004797E+01 + -0.4058044495602487E+01 + -0.4059029250000000E+01 + -0.4060014322798223E+01 + -0.4060999715597334E+01 + -0.4061985429997336E+01 + -0.4062971467598223E+01 + -0.4063957830000000E+01 + -0.4064944518802488E+01 + -0.4065931535604798E+01 + -0.4066918882005864E+01 + -0.4067906559604620E+01 + -0.4068894570000000E+01 + -0.4069882914791825E+01 + -0.4070871595583473E+01 + -0.4071860613979209E+01 + -0.4072849971583296E+01 + -0.4073839670000000E+01 + -0.4074829710830211E+01 + -0.4075820095661310E+01 + -0.4076810826077304E+01 + -0.4077801903662198E+01 + -0.4078793330000000E+01 + -0.4079785106687330E+01 + -0.4080777235371285E+01 + -0.4081769717711575E+01 + -0.4082762555367910E+01 + -0.4083755750000000E+01 + -0.4084749303220466E+01 + -0.4085743216453549E+01 + -0.4086737491076400E+01 + -0.4087732128466167E+01 + -0.4088727130000000E+01 + -0.4089722497150804E+01 + -0.4090718231774514E+01 + -0.4091714335822824E+01 + -0.4092710811247422E+01 + -0.4093707660000000E+01 + -0.4094704883936316E+01 + -0.4095702484528390E+01 + -0.4096700463152305E+01 + -0.4097698821184147E+01 + -0.4098697560000000E+01 + -0.4099696681023928E+01 + -0.4100696185871922E+01 + -0.4101696076207952E+01 + -0.4102696353695988E+01 + -0.4103697020000000E+01 + -0.4104698076767972E+01 + -0.4105699525583923E+01 + -0.4106701368015889E+01 + -0.4107703605631903E+01 + -0.4108706240000000E+01 + -0.4109709272704188E+01 + -0.4110712705392387E+01 + -0.4111716539728493E+01 + -0.4112720777376398E+01 + -0.4113725420000000E+01 + -0.4114730469215276E+01 + -0.4115735926446529E+01 + -0.4116741793070144E+01 + -0.4117748070462506E+01 + -0.4118754760000000E+01 + -0.4119761863154706E+01 + -0.4120769381781494E+01 + -0.4121777317830929E+01 + -0.4122785673253577E+01 + -0.4123794450000000E+01 + -0.4124803649925900E+01 + -0.4125813274507496E+01 + -0.4126823325126142E+01 + -0.4127833803163192E+01 + -0.4128844710000000E+01 + -0.4129856047061696E+01 + -0.4130867815948523E+01 + -0.4131880018304504E+01 + -0.4132892655773657E+01 + -0.4133905730000000E+01 + -0.4134919242627317E+01 + -0.4135933195298410E+01 + -0.4136947589655846E+01 + -0.4137962427342187E+01 + -0.4138977710000000E+01 + -0.4139993439229039E+01 + -0.4141009616457835E+01 + -0.4142026243072111E+01 + -0.4143043320457593E+01 + -0.4144060850000000E+01 + -0.4145078833176528E+01 + -0.4146097271830248E+01 + -0.4147116167895705E+01 + -0.4148135523307441E+01 + -0.4149155340000000E+01 + -0.4150175619824850E+01 + -0.4151196364301169E+01 + -0.4152217574865064E+01 + -0.4153239252952640E+01 + -0.4154261400000000E+01 + -0.4155284017444074E+01 + -0.4156307106725073E+01 + -0.4157330669284037E+01 + -0.4158354706562000E+01 + -0.4159379220000000E+01 + -0.4160404211118856E+01 + -0.4161429681758535E+01 + -0.4162455633838786E+01 + -0.4163482069279358E+01 + -0.4164508990000000E+01 + -0.4165536397840500E+01 + -0.4166564294320785E+01 + -0.4167592680880820E+01 + -0.4168621558960570E+01 + -0.4169650930000000E+01 + -0.4170680795439144E+01 + -0.4171711156718324E+01 + -0.4172742015277931E+01 + -0.4173773372558360E+01 + -0.4174805230000001E+01 + -0.4175837589122925E+01 + -0.4176870451765921E+01 + -0.4177903819847455E+01 + -0.4178937695285992E+01 + -0.4179972080000000E+01 + -0.4181006975829157E+01 + -0.4182042384297994E+01 + -0.4183078306852251E+01 + -0.4184114744937673E+01 + -0.4185151700000001E+01 + -0.4186189173480446E+01 + -0.4187227166802104E+01 + -0.4188265681383539E+01 + -0.4189304718643316E+01 + -0.4190344280000000E+01 + -0.4191384366969060E+01 + -0.4192424981453591E+01 + -0.4193466125453592E+01 + -0.4194507800969063E+01 + -0.4195550010000001E+01 + -0.4196592754403313E+01 + -0.4197636035463531E+01 + -0.4198679854322093E+01 + -0.4199724212120437E+01 + -0.4200769110000000E+01 + -0.4201814549257692E+01 + -0.4202860531812289E+01 + -0.4203907059738040E+01 + -0.4204954135109196E+01 + -0.4206001760000001E+01 + -0.4207049936325927E+01 + -0.4208098665367319E+01 + -0.4209147948245750E+01 + -0.4210197786082787E+01 + -0.4211248180000000E+01 + -0.4212299131278609E+01 + -0.4213350641838439E+01 + -0.4214402713758964E+01 + -0.4215455349119661E+01 + -0.4216508550000001E+01 + -0.4217562318319639E+01 + -0.4218616655358927E+01 + -0.4219671562238396E+01 + -0.4220727040078577E+01 + -0.4221783090000000E+01 + -0.4222839713282840E+01 + -0.4223896911845857E+01 + -0.4224954687767453E+01 + -0.4226013043126033E+01 + -0.4227071980000001E+01 + -0.4228131500309002E+01 + -0.4229191605337647E+01 + -0.4230252296211793E+01 + -0.4231313574057293E+01 + -0.4232375440000000E+01 + -0.4233437895321158E+01 + -0.4234500941923558E+01 + -0.4235564581865378E+01 + -0.4236628817204800E+01 + -0.4237693650000001E+01 + -0.4238759082166369E+01 + -0.4239825115048124E+01 + -0.4240891749846695E+01 + -0.4241958987763510E+01 + -0.4243026830000000E+01 + -0.4244095277853370E+01 + -0.4245164333003950E+01 + -0.4246233997227844E+01 + -0.4247304272301159E+01 + -0.4248375160000001E+01 + -0.4249446662100151E+01 + -0.4250518780376079E+01 + -0.4251591516601933E+01 + -0.4252664872551858E+01 + -0.4253738850000000E+01 + -0.4254813450626033E+01 + -0.4255888675731739E+01 + -0.4256964526524429E+01 + -0.4258041004211414E+01 + -0.4259118110000001E+01 + -0.4260195845235721E+01 + -0.4261274211816968E+01 + -0.4262353211780355E+01 + -0.4263432847162495E+01 + -0.4264513120000000E+01 + -0.4265594032191088E+01 + -0.4266675585080393E+01 + -0.4267757779874154E+01 + -0.4268840617778611E+01 + -0.4269924100000001E+01 + -0.4271008227839929E+01 + -0.4272093002981462E+01 + -0.4273178427203030E+01 + -0.4274264502283066E+01 + -0.4275351230000000E+01 + -0.4276438612129199E+01 + -0.4277526650433762E+01 + -0.4278615346673726E+01 + -0.4279704702609127E+01 + -0.4280794720000001E+01 + -0.4281885400523280E+01 + -0.4282976745523492E+01 + -0.4284068756262066E+01 + -0.4285161434000426E+01 + -0.4286254780000000E+01 + -0.4287348795617686E+01 + -0.4288443482592271E+01 + -0.4289538842758013E+01 + -0.4290634877949170E+01 + -0.4291731590000001E+01 + -0.4292828980685978E+01 + -0.4293927051547425E+01 + -0.4295025804065885E+01 + -0.4296125239722897E+01 + -0.4297225360000000E+01 + -0.4298326166438409E+01 + -0.4299427660818032E+01 + -0.4300529844978450E+01 + -0.4301632720759246E+01 + -0.4302736290000001E+01 + -0.4303840554440389E+01 + -0.4304945515420450E+01 + -0.4306051174180317E+01 + -0.4307157531960122E+01 + -0.4308264590000000E+01 + -0.4309372349640042E+01 + -0.4310480812620175E+01 + -0.4311589980780288E+01 + -0.4312699855960267E+01 + -0.4313810440000001E+01 + -0.4314921734679448E+01 + -0.4316033741538853E+01 + -0.4317146462058536E+01 + -0.4318259897718812E+01 + -0.4319374050000000E+01 + -0.4320488920442173E+01 + -0.4321604510824417E+01 + -0.4322720822985575E+01 + -0.4323837858764489E+01 + -0.4324955620000001E+01 + -0.4326074108431864E+01 + -0.4327193325403481E+01 + -0.4328313272159166E+01 + -0.4329433949943234E+01 + -0.4330555360000000E+01 + -0.4331677503670375E+01 + -0.4332800382681662E+01 + -0.4333923998857762E+01 + -0.4335048354022574E+01 + -0.4336173450000001E+01 + -0.4337299288566638E+01 + -0.4338425871309872E+01 + -0.4339553199769787E+01 + -0.4340681275486468E+01 + -0.4341810100000000E+01 + -0.4342939674863079E+01 + -0.4344070001678855E+01 + -0.4345201082063092E+01 + -0.4346332917631552E+01 + -0.4347465510000001E+01 + -0.4348598860781049E+01 + -0.4349732971574711E+01 + -0.4350867843977848E+01 + -0.4352003479587323E+01 + -0.4353139880000000E+01 + -0.4354277046812728E+01 + -0.4355414981622305E+01 + -0.4356553686025519E+01 + -0.4357693161619156E+01 + -0.4358833410000001E+01 + -0.4359974432768041E+01 + -0.4361116231536069E+01 + -0.4362258807920076E+01 + -0.4363402163536056E+01 + -0.4364546300000000E+01 + -0.4365691218915110E+01 + -0.4366836921833421E+01 + -0.4367983410294178E+01 + -0.4369130685836622E+01 + -0.4370278750000001E+01 + -0.4371427604371520E+01 + -0.4372577250730246E+01 + -0.4373727690903213E+01 + -0.4374878926717454E+01 + -0.4376030960000000E+01 + -0.4377183792478816E+01 + -0.4378337425485595E+01 + -0.4379491860252968E+01 + -0.4380647098013561E+01 + -0.4381803140000001E+01 + -0.4382959987553220E+01 + -0.4384117642447371E+01 + -0.4385276106564913E+01 + -0.4386435381788303E+01 + -0.4387595470000000E+01 + -0.4388756372988309E+01 + -0.4389918092164923E+01 + -0.4391080628847382E+01 + -0.4392243984353228E+01 + -0.4393408160000001E+01 + -0.4394573157213547E+01 + -0.4395738977852940E+01 + -0.4396905623885560E+01 + -0.4398073097278786E+01 + -0.4399241400000000E+01 + -0.4400410533917508E+01 + -0.4401580500503322E+01 + -0.4402751301130382E+01 + -0.4403922937171628E+01 + -0.4405095410000001E+01 + -0.4406268721036426E+01 + -0.4407442871893776E+01 + -0.4408617864232915E+01 + -0.4409793699714703E+01 + -0.4410970380000000E+01 + -0.4412147906736795E+01 + -0.4413326281521576E+01 + -0.4414505505937961E+01 + -0.4415685581569563E+01 + -0.4416866510000001E+01 + -0.4418048292816398E+01 + -0.4419230931619921E+01 + -0.4420414428015244E+01 + -0.4421598783607045E+01 + -0.4422784000000000E+01 + -0.4423970078797618E+01 + -0.4425157021598746E+01 + -0.4426344830001066E+01 + -0.4427533505602257E+01 + -0.4428723050000000E+01 + -0.4429913464793131E+01 + -0.4431104751585095E+01 + -0.4432296911980494E+01 + -0.4433489947583928E+01 + -0.4434683860000000E+01 + -0.4435878650829861E+01 + -0.4437074321660876E+01 + -0.4438270874076959E+01 + -0.4439468309662029E+01 + -0.4440666630000000E+01 + -0.4441865836687426E+01 + -0.4443065931371404E+01 + -0.4444266915711669E+01 + -0.4445468791367956E+01 + -0.4446671560000000E+01 + -0.4447875223220438E+01 + -0.4449079782453514E+01 + -0.4450285239076369E+01 + -0.4451491594466150E+01 + -0.4452698850000000E+01 + -0.4453907007150822E+01 + -0.4455116067774545E+01 + -0.4456326033822856E+01 + -0.4457536907247445E+01 + -0.4458748690000000E+01 + -0.4459961383936277E+01 + -0.4461174990528312E+01 + -0.4462389511152208E+01 + -0.4463604947184069E+01 + -0.4464821300000000E+01 + -0.4466038571024071E+01 + -0.4467256761872210E+01 + -0.4468475874208314E+01 + -0.4469695909696279E+01 + -0.4470916870000000E+01 + -0.4472138756767443E+01 + -0.4473361571582852E+01 + -0.4474585316014538E+01 + -0.4475809991630817E+01 + -0.4477035600000000E+01 + -0.4478262142706159E+01 + -0.4479489621396385E+01 + -0.4480718037733533E+01 + -0.4481947393380454E+01 + -0.4483177690000000E+01 + -0.4484408929207927E+01 + -0.4485641112431609E+01 + -0.4486874241051329E+01 + -0.4488108316447366E+01 + -0.4489343340000000E+01 + -0.4490579313182137E+01 + -0.4491816237837177E+01 + -0.4493054115901149E+01 + -0.4494292949310081E+01 + -0.4495532740000000E+01 + -0.4496773489823530E+01 + -0.4498015200299685E+01 + -0.4499257872864074E+01 + -0.4500501508952310E+01 + -0.4501746110000000E+01 + -0.4502991677443745E+01 + -0.4504238212724085E+01 + -0.4505485717282554E+01 + -0.4506734192560682E+01 + -0.4507983640000000E+01 + -0.4509234061121495E+01 + -0.4510485457763977E+01 + -0.4511737831845711E+01 + -0.4512991185284964E+01 + -0.4514245520000000E+01 + -0.4515500837830278E+01 + -0.4516757140300010E+01 + -0.4518014428854604E+01 + -0.4519272704939465E+01 + -0.4520531970000000E+01 + -0.4521792225477399E+01 + -0.4523053472795988E+01 + -0.4524315713375877E+01 + -0.4525578948637178E+01 + -0.4526843180000000E+01 + -0.4528108408980129E+01 + -0.4529374637476042E+01 + -0.4530641867481890E+01 + -0.4531910100991826E+01 + -0.4533179340000000E+01 + -0.4534449586362088E+01 + -0.4535720841379849E+01 + -0.4536993106216566E+01 + -0.4538266382035523E+01 + -0.4539540670000000E+01 + -0.4540815971411522E+01 + -0.4542092288124565E+01 + -0.4543369622131847E+01 + -0.4544647975426086E+01 + -0.4545927350000000E+01 + -0.4547207747751829E+01 + -0.4548489170201896E+01 + -0.4549771618776049E+01 + -0.4551055094900135E+01 + -0.4552339600000000E+01 + -0.4553625135501167E+01 + -0.4554911702827853E+01 + -0.4556199303403957E+01 + -0.4557487938653375E+01 + -0.4558777610000000E+01 + -0.4560068318963508E+01 + -0.4561360067446692E+01 + -0.4562652857448121E+01 + -0.4563946690966367E+01 + -0.4565241570000000E+01 + -0.4566537496404801E+01 + -0.4567834471465380E+01 + -0.4569132496323559E+01 + -0.4570431572121159E+01 + -0.4571731700000000E+01 + -0.4573032881257292E+01 + -0.4574335117811792E+01 + -0.4575638411737646E+01 + -0.4576942765109000E+01 + -0.4578248180000000E+01 + -0.4579554658326035E+01 + -0.4580862201367454E+01 + -0.4582170810245858E+01 + -0.4583480486082841E+01 + -0.4584791230000000E+01 + -0.4586103043278578E+01 + -0.4587415927838396E+01 + -0.4588729885758927E+01 + -0.4590044919119638E+01 + -0.4591361030000000E+01 + -0.4592678220319659E+01 + -0.4593996491358965E+01 + -0.4595315844238439E+01 + -0.4596636280078609E+01 + -0.4597957800000000E+01 + -0.4599280405282786E+01 + -0.4600604097845749E+01 + -0.4601928879767318E+01 + -0.4603254753125925E+01 + -0.4604581720000000E+01 + -0.4605909782309194E+01 + -0.4607238941338041E+01 + -0.4608569198212289E+01 + -0.4609900554057691E+01 + -0.4611233010000000E+01 + -0.4612566567320436E+01 + -0.4613901227922092E+01 + -0.4615236993863531E+01 + -0.4616573867203312E+01 + -0.4617911850000000E+01 + -0.4619250944169061E+01 + -0.4620591151053593E+01 + -0.4621932471853592E+01 + -0.4623274907769060E+01 + -0.4624618460000000E+01 + -0.4625963129843316E+01 + -0.4627308918983539E+01 + -0.4628655829202105E+01 + -0.4630003862280446E+01 + -0.4631353020000000E+01 + -0.4632703304137672E+01 + -0.4634054716452250E+01 + -0.4635407258697992E+01 + -0.4636760932629156E+01 + -0.4638115740000000E+01 + -0.4639471682485996E+01 + -0.4640828761447462E+01 + -0.4642186978165930E+01 + -0.4643546333922933E+01 + -0.4644906830000000E+01 + -0.4646268467758345E+01 + -0.4647631248877904E+01 + -0.4648995175118288E+01 + -0.4650360248239115E+01 + -0.4651726470000000E+01 + -0.4653093842160623E+01 + -0.4654462366480928E+01 + -0.4655832044720921E+01 + -0.4657202878640609E+01 + -0.4658574870000000E+01 + -0.4659948020479160E+01 + -0.4661322331438385E+01 + -0.4662697804158031E+01 + -0.4664074439918450E+01 + -0.4665452240000000E+01 + -0.4666831205762737E+01 + -0.4668211338885532E+01 + -0.4669592641126958E+01 + -0.4670975114245590E+01 + -0.4672358760000000E+01 + -0.4673743580149892E+01 + -0.4675129576459487E+01 + -0.4676516750694137E+01 + -0.4677905104619191E+01 + -0.4679294640000000E+01 + -0.4680685358517696E+01 + -0.4682077261516521E+01 + -0.4683470350256498E+01 + -0.4684864625997650E+01 + -0.4686260090000000E+01 + -0.4687656743619326E+01 + -0.4689054588594432E+01 + -0.4690453626759872E+01 + -0.4691853859950209E+01 + -0.4693255290000000E+01 + -0.4694657918685000E+01 + -0.4696061747545757E+01 + -0.4697466778064014E+01 + -0.4698873011721513E+01 + -0.4700280450000000E+01 + -0.4701689094440671E+01 + -0.4703098946822541E+01 + -0.4704510008984074E+01 + -0.4705922282763738E+01 + -0.4707335770000000E+01 + -0.4708750472432315E+01 + -0.4710166391404083E+01 + -0.4711583528159694E+01 + -0.4713001883943536E+01 + -0.4714421460000000E+01 + -0.4715842257670070E+01 + -0.4717264278681128E+01 + -0.4718687524857150E+01 + -0.4720111998022115E+01 + -0.4721537700000000E+01 + -0.4722964632567404E+01 + -0.4724392797311406E+01 + -0.4725822195771706E+01 + -0.4727252829488005E+01 + -0.4728684700000000E+01 + -0.4730117808860313E+01 + -0.4731552157673248E+01 + -0.4732987748056024E+01 + -0.4734424581625867E+01 + -0.4735862660000000E+01 + -0.4737301984791344E+01 + -0.4738742557595609E+01 + -0.4740184380004202E+01 + -0.4741627453608529E+01 + -0.4743071780000000E+01 + -0.4744517360774309E+01 + -0.4745964197544317E+01 + -0.4747412291927169E+01 + -0.4748861645540014E+01 + -0.4750312260000000E+01 + -0.4751764136911420E+01 + -0.4753217277827130E+01 + -0.4754671684287128E+01 + -0.4756127357831419E+01 + -0.4757584300000000E+01 + -0.4759042512380013E+01 + -0.4760501996747169E+01 + -0.4761962754924317E+01 + -0.4763424788734311E+01 + -0.4764888100000000E+01 + -0.4766352690448530E+01 + -0.4767818561424202E+01 + -0.4769285714175608E+01 + -0.4770754149951343E+01 + -0.4772223870000000E+01 + -0.4773694875665867E+01 + -0.4775167168676024E+01 + -0.4776640750853249E+01 + -0.4778115624020316E+01 + -0.4779591790000000E+01 + -0.4781069250568002E+01 + -0.4782548007311700E+01 + -0.4784028061771398E+01 + -0.4785509415487397E+01 + -0.4786992070000000E+01 + -0.4788476026862125E+01 + -0.4789961287677171E+01 + -0.4791447854061156E+01 + -0.4792935727630094E+01 + -0.4794424910000000E+01 + -0.4795915402783498E+01 + -0.4797407207579615E+01 + -0.4798900325983983E+01 + -0.4800394759592233E+01 + -0.4801890510000000E+01 + -0.4803387578803882E+01 + -0.4804885967604368E+01 + -0.4806385678002913E+01 + -0.4807886711600972E+01 + -0.4809389070000000E+01 + -0.4810892754800971E+01 + -0.4812397767602913E+01 + -0.4813904110004369E+01 + -0.4815411783603883E+01 + -0.4816920790000000E+01 + -0.4818431130792232E+01 + -0.4819942807583978E+01 + -0.4821455821979610E+01 + -0.4822970175583494E+01 + -0.4824485870000000E+01 + -0.4826002906830102E+01 + -0.4827521287661175E+01 + -0.4829041014077196E+01 + -0.4830562087662145E+01 + -0.4832084510000000E+01 + -0.4833608282687360E+01 + -0.4835133407371321E+01 + -0.4836659885711604E+01 + -0.4838187719367924E+01 + -0.4839716910000000E+01 + -0.4841247459220458E+01 + -0.4842779368453540E+01 + -0.4844312639076392E+01 + -0.4845847272466163E+01 + -0.4847383270000000E+01 + -0.4848920633150806E+01 + -0.4850459363774517E+01 + -0.4851999463822827E+01 + -0.4853540935247424E+01 + -0.4855083780000000E+01 + -0.4856627999936316E+01 + -0.4858173596528390E+01 + -0.4859720571152305E+01 + -0.4861268925184146E+01 + -0.4862818660000000E+01 + -0.4864369777023929E+01 + -0.4865922277871922E+01 + -0.4867476164207953E+01 + -0.4869031437695989E+01 + -0.4870588100000000E+01 + -0.4872146152767971E+01 + -0.4873705597583922E+01 + -0.4875266436015888E+01 + -0.4876828669631903E+01 + -0.4878392300000000E+01 + -0.4879957328704188E+01 + -0.4881523757392387E+01 + -0.4883091587728493E+01 + -0.4884660821376399E+01 + -0.4886231460000000E+01 + -0.4887803505215277E+01 + -0.4889376958446530E+01 + -0.4890951821070145E+01 + -0.4892528094462506E+01 + -0.4894105780000000E+01 + -0.4895684879154707E+01 + -0.4897265393781494E+01 + -0.4898847325830930E+01 + -0.4900430677253578E+01 + -0.4902015450000000E+01 + -0.4903601645925900E+01 + -0.4905189266507495E+01 + -0.4906778313126141E+01 + -0.4908368787163191E+01 + -0.4909960690000000E+01 + -0.4911554023061696E+01 + -0.4913148787948524E+01 + -0.4914744986304505E+01 + -0.4916342619773657E+01 + -0.4917941690000000E+01 + -0.4919542198627316E+01 + -0.4921144147298410E+01 + -0.4922747537655845E+01 + -0.4924352371342187E+01 + -0.4925958650000000E+01 + -0.4927566375229039E+01 + -0.4929175548457836E+01 + -0.4930786171072113E+01 + -0.4932398244457594E+01 + -0.4934011770000000E+01 + -0.4935626749176527E+01 + -0.4937243183830248E+01 + -0.4938861075895705E+01 + -0.4940480427307441E+01 + -0.4942101240000000E+01 + -0.4943723515824850E+01 + -0.4945347256301170E+01 + -0.4946972462865066E+01 + -0.4948599136952641E+01 + -0.4950227280000000E+01 + -0.4951856893444073E+01 + -0.4953487978725073E+01 + -0.4955120537284037E+01 + -0.4956754570562000E+01 + -0.4958390080000000E+01 + -0.4960027067118856E+01 + -0.4961665533758535E+01 + -0.4963305481838788E+01 + -0.4964946913279359E+01 + -0.4966589830000000E+01 + -0.4968234233840500E+01 + -0.4969880126320785E+01 + -0.4971527508880820E+01 + -0.4973176382960570E+01 + -0.4974826750000000E+01 + -0.4976478611439144E+01 + -0.4978131968718324E+01 + -0.4979786823277934E+01 + -0.4981443176558361E+01 + -0.4983101030000000E+01 + -0.4984760385122924E+01 + -0.4986421243765920E+01 + -0.4988083607847453E+01 + -0.4989747479285990E+01 + -0.4991412860000000E+01 + -0.4993079751829157E+01 + -0.4994748156297994E+01 + -0.4996418074852252E+01 + -0.4998089508937675E+01 + -0.4999762460000000E+01 + -0.5001436929480446E+01 + -0.5003112918802104E+01 + -0.5004790429383539E+01 + -0.5006469462643316E+01 + -0.5008150020000000E+01 + -0.5009832102969059E+01 + -0.5011515713453590E+01 + -0.5013200853453590E+01 + -0.5014887524969062E+01 + -0.5016575730000001E+01 + -0.5018265470403317E+01 + -0.5019956747463539E+01 + -0.5021649562322102E+01 + -0.5023343916120444E+01 + -0.5025039810000000E+01 + -0.5026737245257676E+01 + -0.5028436223812259E+01 + -0.5030136747738004E+01 + -0.5031838819109167E+01 + -0.5033542440000002E+01 + -0.5035247612325979E+01 + -0.5036954337367426E+01 + -0.5038662616245885E+01 + -0.5040372450082896E+01 + -0.5042083840000000E+01 + -0.5043796787278412E+01 + -0.5045511293838039E+01 + -0.5047227361758459E+01 + -0.5048944993119255E+01 + -0.5050664190000002E+01 + -0.5052384954320376E+01 + -0.5054107287360422E+01 + -0.5055831190240281E+01 + -0.5057556664080094E+01 + -0.5059283710000000E+01 + -0.5061012329280094E+01 + -0.5062742523840281E+01 + -0.5064474295760420E+01 + -0.5066207647120376E+01 + -0.5067942580000002E+01 + -0.5069679096319255E+01 + -0.5071417197358461E+01 + -0.5073156884238040E+01 + -0.5074898158078413E+01 + -0.5076641020000000E+01 + -0.5078385471282895E+01 + -0.5080131513845884E+01 + -0.5081879149767425E+01 + -0.5083628381125980E+01 + -0.5085379210000002E+01 + -0.5087131638309168E+01 + -0.5088885667338007E+01 + -0.5090641298212262E+01 + -0.5092398532057678E+01 + -0.5094157370000000E+01 + -0.5095917813320440E+01 + -0.5097679863922094E+01 + -0.5099443523863529E+01 + -0.5101208795203310E+01 + -0.5102975680000002E+01 + -0.5104744180169075E+01 + -0.5106514297053620E+01 + -0.5108286031853626E+01 + -0.5110059385769088E+01 + -0.5111834360000000E+01 + -0.5113610955843264E+01 + -0.5115389174983433E+01 + -0.5117169019201969E+01 + -0.5118950490280339E+01 + -0.5120733590000002E+01 + -0.5122518320137872E+01 + -0.5124304682452654E+01 + -0.5126092678698500E+01 + -0.5127882310629564E+01 + -0.5129673580000000E+01 + -0.5131466488485256E+01 + -0.5133261037445960E+01 + -0.5135057228164037E+01 + -0.5136855061921411E+01 + -0.5138654540000002E+01 + -0.5140455663761109E+01 + -0.5142258434883510E+01 + -0.5144062855125357E+01 + -0.5145868926244804E+01 + -0.5147676650000000E+01 + -0.5149486028150319E+01 + -0.5151297062460008E+01 + -0.5153109754694540E+01 + -0.5154924106619382E+01 + -0.5156740120000002E+01 + -0.5158557796517622E+01 + -0.5160377137516461E+01 + -0.5162198144256490E+01 + -0.5164020817997679E+01 + -0.5165845160000000E+01 + -0.5167671171619203E+01 + -0.5169498854594155E+01 + -0.5171328210759507E+01 + -0.5173159241949907E+01 + -0.5174991950000002E+01 + -0.5176826336685571E+01 + -0.5178662403546920E+01 + -0.5180500152065484E+01 + -0.5182339583722699E+01 + -0.5184180700000000E+01 + -0.5186023502438518E+01 + -0.5187867992818167E+01 + -0.5189714172978557E+01 + -0.5191562044759301E+01 + -0.5193411610000002E+01 + -0.5195262870440360E+01 + -0.5197115827420413E+01 + -0.5198970482180288E+01 + -0.5200826835960108E+01 + -0.5202684890000000E+01 + -0.5204544645640049E+01 + -0.5206406104620184E+01 + -0.5208269268780295E+01 + -0.5210134139960273E+01 + -0.5212000720000002E+01 + -0.5213869010679446E+01 + -0.5215739013538850E+01 + -0.5217610730058532E+01 + -0.5219484161718810E+01 + -0.5221359310000000E+01 + -0.5223236176442175E+01 + -0.5225114762824420E+01 + -0.5226995070985579E+01 + -0.5228877102764491E+01 + -0.5230760860000002E+01 + -0.5232646344431862E+01 + -0.5234533557403474E+01 + -0.5236422500159157E+01 + -0.5238313173943227E+01 + -0.5240205580000000E+01 + -0.5242099719670388E+01 + -0.5243995594681689E+01 + -0.5245893206857796E+01 + -0.5247792558022602E+01 + -0.5249693650000002E+01 + -0.5251596484566590E+01 + -0.5253501063309773E+01 + -0.5255407387769662E+01 + -0.5257315459486367E+01 + -0.5259225280000000E+01 + -0.5261136850863261E+01 + -0.5263050173679226E+01 + -0.5264965250063560E+01 + -0.5266882081631930E+01 + -0.5268800670000002E+01 + -0.5270721016780367E+01 + -0.5272643123573324E+01 + -0.5274566991976100E+01 + -0.5276492623585916E+01 + -0.5278420020000000E+01 + -0.5280349182815278E+01 + -0.5282280113627482E+01 + -0.5284212814032047E+01 + -0.5286147285624408E+01 + -0.5288083530000002E+01 + -0.5290021548758526E+01 + -0.5291961343516751E+01 + -0.5293902915895715E+01 + -0.5295846267516453E+01 + -0.5297791400000000E+01 + -0.5299738314950626E+01 + -0.5301687013905519E+01 + -0.5303637498385099E+01 + -0.5305589769909786E+01 + -0.5307543830000002E+01 + -0.5309499680238974E+01 + -0.5311457322461178E+01 + -0.5313416758563894E+01 + -0.5315377990444406E+01 + -0.5317341020000000E+01 + -0.5319305848973484E+01 + -0.5321272478489777E+01 + -0.5323240909519329E+01 + -0.5325211143032588E+01 + -0.5327183180000001E+01 + -0.5329157021627094E+01 + -0.5331132670059714E+01 + -0.5333110127678787E+01 + -0.5335089396865241E+01 + -0.5337070480000000E+01 + -0.5339053379238146E+01 + -0.5341038095831372E+01 + -0.5343024630805524E+01 + -0.5345012985186451E+01 + -0.5347003160000002E+01 + -0.5348995156380326E+01 + -0.5350988975894803E+01 + -0.5352984620219119E+01 + -0.5354982091028956E+01 + -0.5356981390000000E+01 + -0.5358982518840556E+01 + -0.5360985479389419E+01 + -0.5362990273518004E+01 + -0.5364996903097725E+01 + -0.5367005370000003E+01 + -0.5369015676017452E+01 + -0.5371027822627523E+01 + -0.5373041811228870E+01 + -0.5375057643220144E+01 + -0.5377075320000000E+01 + -0.5379094843009645E+01 + -0.5381116213860496E+01 + -0.5383139434206525E+01 + -0.5385164505701702E+01 + -0.5387191430000002E+01 + -0.5389220208743972E+01 + -0.5391250843530496E+01 + -0.5393283335945034E+01 + -0.5395317687573048E+01 + -0.5397353900000000E+01 + -0.5399391974814471E+01 + -0.5401431913617524E+01 + -0.5403473718013342E+01 + -0.5405517389606106E+01 + -0.5407562930000003E+01 + -0.5409610340798146E+01 + -0.5411659623599410E+01 + -0.5413710780001601E+01 + -0.5415763811602528E+01 + -0.5417818720000000E+01 + -0.5419875506792953E+01 + -0.5421934173584844E+01 + -0.5423994721980257E+01 + -0.5426057153583781E+01 + -0.5428121470000002E+01 + -0.5430187672830045E+01 + -0.5432255763661218E+01 + -0.5434325744077369E+01 + -0.5436397615662347E+01 + -0.5438471380000000E+01 + -0.5440547038686873E+01 + -0.5442624593370289E+01 + -0.5444704045710269E+01 + -0.5446785397366833E+01 + -0.5448868650000002E+01 + -0.5450953805222468E+01 + -0.5453040864457629E+01 + -0.5455129829081556E+01 + -0.5457220700470322E+01 + -0.5459313480000000E+01 + -0.5461408169143263E+01 + -0.5463504769759202E+01 + -0.5465603283803509E+01 + -0.5467703713231877E+01 + -0.5469806060000003E+01 + -0.5471910325964482E+01 + -0.5474016512585567E+01 + -0.5476124621224410E+01 + -0.5478234653242169E+01 + -0.5480346610000000E+01 + -0.5482460492918813E+01 + -0.5484576303658537E+01 + -0.5486694043938854E+01 + -0.5488813715479448E+01 + -0.5490935320000000E+01 + -0.5493058859160269E+01 + -0.5495184334380288E+01 + -0.5497311747020175E+01 + -0.5499441098440041E+01 + -0.5501572390000000E+01 + -0.5503705623160122E+01 + -0.5505840799780316E+01 + -0.5507977921820449E+01 + -0.5510116991240388E+01 + -0.5512258010000000E+01 + -0.5514400979959247E+01 + -0.5516545902578452E+01 + -0.5518692779218033E+01 + -0.5520841611238409E+01 + -0.5522992400000000E+01 + -0.5525145146922896E+01 + -0.5527299853665884E+01 + -0.5529456521947425E+01 + -0.5531615153485976E+01 + -0.5533775750000000E+01 + -0.5535938313149172E+01 + -0.5538102844358015E+01 + -0.5540269344992272E+01 + -0.5542437816417687E+01 + -0.5544608260000000E+01 + -0.5546780677200426E+01 + -0.5548955069862066E+01 + -0.5551131439923492E+01 + -0.5553309789323279E+01 + -0.5555490120000000E+01 + -0.5557672433809129E+01 + -0.5559856732273728E+01 + -0.5562043016833763E+01 + -0.5564231288929199E+01 + -0.5566421550000000E+01 + -0.5568613801483066E+01 + -0.5570808044803030E+01 + -0.5573004281381461E+01 + -0.5575202512639929E+01 + -0.5577402740000000E+01 + -0.5579604964978612E+01 + -0.5581809189474155E+01 + -0.5584015415480394E+01 + -0.5586223644991089E+01 + -0.5588433880000000E+01 + -0.5590646122362495E+01 + -0.5592860373380355E+01 + -0.5595076634216968E+01 + -0.5597294906035720E+01 + -0.5599515190000000E+01 + -0.5601737487411413E+01 + -0.5603961800124430E+01 + -0.5606188130131739E+01 + -0.5608416479426032E+01 + -0.5610646850000000E+01 + -0.5612879243751859E+01 + -0.5615113662201934E+01 + -0.5617350106776081E+01 + -0.5619588578900152E+01 + -0.5621829080000000E+01 + -0.5624071611501157E+01 + -0.5626316174827838E+01 + -0.5628562771403941E+01 + -0.5630811402653364E+01 + -0.5633062070000000E+01 + -0.5635314774963525E+01 + -0.5637569519446723E+01 + -0.5639826305448159E+01 + -0.5642085134966397E+01 + -0.5644346010000000E+01 + -0.5646608932404748E+01 + -0.5648873903465272E+01 + -0.5651140924323423E+01 + -0.5653409996121049E+01 + -0.5655681120000000E+01 + -0.5657954297257489E+01 + -0.5660229529812193E+01 + -0.5662506819738152E+01 + -0.5664786169109407E+01 + -0.5667067580000000E+01 + -0.5669351054325299E+01 + -0.5671636593365960E+01 + -0.5673924198243974E+01 + -0.5676213870081325E+01 + -0.5678505610000000E+01 + -0.5680799419281324E+01 + -0.5683095299843973E+01 + -0.5685393253765959E+01 + -0.5687693283125297E+01 + -0.5689995390000000E+01 + -0.5692299576309408E+01 + -0.5694605843338152E+01 + -0.5696914192212193E+01 + -0.5699224624057489E+01 + -0.5701537140000000E+01 + -0.5703851741321049E+01 + -0.5706168429923423E+01 + -0.5708487207865272E+01 + -0.5710808077204748E+01 + -0.5713131040000000E+01 + -0.5715456098166398E+01 + -0.5717783253048159E+01 + -0.5720112505846722E+01 + -0.5722443857763524E+01 + -0.5724777310000000E+01 + -0.5727112863853367E+01 + -0.5729450521003948E+01 + -0.5731790283227846E+01 + -0.5734132152301162E+01 + -0.5736476130000000E+01 + -0.5738822218100139E+01 + -0.5741170418376053E+01 + -0.5743520732601898E+01 + -0.5745873162551830E+01 + -0.5748227710000000E+01 + -0.5750584376626085E+01 + -0.5752943163731845E+01 + -0.5755304072524563E+01 + -0.5757667104211521E+01 + -0.5760032260000000E+01 + -0.5762399541235525E+01 + -0.5764768949816569E+01 + -0.5767140487779851E+01 + -0.5769514157162089E+01 + -0.5771889960000000E+01 + -0.5774267898191824E+01 + -0.5776647973081888E+01 + -0.5779030185876039E+01 + -0.5781414537780127E+01 + -0.5783801030000000E+01 + -0.5786189663837181E+01 + -0.5788580440975887E+01 + -0.5790973363195998E+01 + -0.5793368432277407E+01 + -0.5795765650000000E+01 + -0.5798165018139450E+01 + -0.5800566538454574E+01 + -0.5802970212699973E+01 + -0.5805376042630247E+01 + -0.5807784030000000E+01 + -0.5810194176485015E+01 + -0.5812606483445820E+01 + -0.5815020952164113E+01 + -0.5817437583921604E+01 + -0.5819856380000000E+01 + -0.5822277341760485E+01 + -0.5824700470882153E+01 + -0.5827125769123580E+01 + -0.5829553238243338E+01 + -0.5831982880000000E+01 + -0.5834414696153045E+01 + -0.5836848688465571E+01 + -0.5839284858701570E+01 + -0.5841723208625047E+01 + -0.5844163740000000E+01 + -0.5846606454507334E+01 + -0.5849051353495571E+01 + -0.5851498438230142E+01 + -0.5853947709976476E+01 + -0.5856399170000000E+01 + -0.5858852819657622E+01 + -0.5861308660672150E+01 + -0.5863766694857866E+01 + -0.5866226924029054E+01 + -0.5868689350000000E+01 + -0.5871153974542181E+01 + -0.5873620799255837E+01 + -0.5876089825698403E+01 + -0.5878561055427313E+01 + -0.5881034490000000E+01 + -0.5883510130973657E+01 + -0.5885987979904507E+01 + -0.5888468038348527E+01 + -0.5890950307861697E+01 + -0.5893434790000000E+01 + -0.5895921486363192E+01 + -0.5898410398726141E+01 + -0.5900901528907495E+01 + -0.5903394878725900E+01 + -0.5905890450000000E+01 + -0.5908388244453575E+01 + -0.5910888263430930E+01 + -0.5913390508181495E+01 + -0.5915894979954707E+01 + -0.5918401680000000E+01 + -0.5920910609662506E+01 + -0.5923421770670144E+01 + -0.5925935164846529E+01 + -0.5928450794015276E+01 + -0.5930968660000000E+01 + -0.5933488764576397E+01 + -0.5936011109328494E+01 + -0.5938535695792390E+01 + -0.5941062525504192E+01 + -0.5943591600000000E+01 + -0.5946122920831904E+01 + -0.5948656489615889E+01 + -0.5951192307983922E+01 + -0.5953730377567969E+01 + -0.5956270700000000E+01 + -0.5958813276895987E+01 + -0.5961358109807954E+01 + -0.5963905200271925E+01 + -0.5966454549823931E+01 + -0.5969006160000000E+01 + -0.5971560032384148E+01 + -0.5974116168752306E+01 + -0.5976674570928389E+01 + -0.5979235240736315E+01 + -0.5981798180000000E+01 + -0.5984363390447421E+01 + -0.5986930873422826E+01 + -0.5989500630174518E+01 + -0.5992072661950807E+01 + -0.5994646970000000E+01 + -0.5997223555666167E+01 + -0.5999802420676399E+01 + -0.6002383566853548E+01 + -0.6004966996020463E+01 + -0.6007552710000000E+01 + -0.6010140710567908E+01 + -0.6012730999311576E+01 + -0.6015323577771288E+01 + -0.6017918447487334E+01 + -0.6020515610000000E+01 + -0.6023115066862199E+01 + -0.6025716819677304E+01 + -0.6028320870061309E+01 + -0.6030927219630208E+01 + -0.6033535870000000E+01 + -0.6036146822783294E+01 + -0.6038760079579211E+01 + -0.6041375641983476E+01 + -0.6043993511591828E+01 + -0.6046613690000000E+01 + -0.6049236178804621E+01 + -0.6051860979605864E+01 + -0.6054488094004796E+01 + -0.6057117523602486E+01 + -0.6059749270000000E+01 + -0.6062383334798223E+01 + -0.6065019719597338E+01 + -0.6067658425997338E+01 + -0.6070299455598226E+01 + -0.6072942810000000E+01 + -0.6075588490802486E+01 + -0.6078236499604795E+01 + -0.6080886838005860E+01 + -0.6083539507604616E+01 + -0.6086194510000000E+01 + -0.6088851846791830E+01 + -0.6091511519583484E+01 + -0.6094173529979220E+01 + -0.6096837879583306E+01 + -0.6099504570000000E+01 + -0.6102173602830196E+01 + -0.6104844979661281E+01 + -0.6107518702077266E+01 + -0.6110194771662168E+01 + -0.6112873190000000E+01 + -0.6115553958687384E+01 + -0.6118237079371392E+01 + -0.6120922553711712E+01 + -0.6123610383368020E+01 + -0.6126300570000000E+01 + -0.6128993115220268E+01 + -0.6131688020453148E+01 + -0.6134385287075894E+01 + -0.6137084916465758E+01 + -0.6139786910000000E+01 + -0.6142491269151540E+01 + -0.6145197995776009E+01 + -0.6147907091824711E+01 + -0.6150618559248940E+01 + -0.6153332400000000E+01 + -0.6156048615933569E+01 + -0.6158767208522813E+01 + -0.6161488179145272E+01 + -0.6164211529178487E+01 + -0.6166937260000000E+01 + -0.6169665373034181E+01 + -0.6172395869892734E+01 + -0.6175128752234200E+01 + -0.6177864021717110E+01 + -0.6180601680000000E+01 + -0.6183341728729707E+01 + -0.6186084169506248E+01 + -0.6188829003917934E+01 + -0.6191576233553080E+01 + -0.6194325860000000E+01 + -0.6197077884846986E+01 + -0.6199832309682269E+01 + -0.6202589136094061E+01 + -0.6205348365670568E+01 + -0.6208110000000000E+01 + -0.6210874040682345E+01 + -0.6213640489364673E+01 + -0.6216409347705828E+01 + -0.6219180617364654E+01 + -0.6221954300000000E+01 + -0.6224730397223631E+01 + -0.6227508910459034E+01 + -0.6230289841082625E+01 + -0.6233073190470810E+01 + -0.6235858960000000E+01 + -0.6238647151143130E+01 + -0.6241437765759188E+01 + -0.6244230805803681E+01 + -0.6247026273232115E+01 + -0.6249824170000000E+01 + -0.6252624497963846E+01 + -0.6255427258584208E+01 + -0.6258232453222650E+01 + -0.6261040083240727E+01 + -0.6263850150000000E+01 + -0.6266662654921483E+01 + -0.6269477599663976E+01 + -0.6272294985945726E+01 + -0.6275114815484984E+01 + -0.6277937090000000E+01 + -0.6280761811150216E+01 + -0.6283588980359882E+01 + -0.6286418598994441E+01 + -0.6289250668419333E+01 + -0.6292085190000000E+01 + -0.6294922165197647E+01 + -0.6297761595856494E+01 + -0.6300603483916516E+01 + -0.6303447831317691E+01 + -0.6306294640000000E+01 + -0.6309143911819191E+01 + -0.6311995648294136E+01 + -0.6314849850859490E+01 + -0.6317706520949895E+01 + -0.6320565660000000E+01 + -0.6323427269445589E+01 + -0.6326291350726957E+01 + -0.6329157905285530E+01 + -0.6332026934562734E+01 + -0.6334898440000000E+01 + -0.6337772423118450E+01 + -0.6340648885758030E+01 + -0.6343527829838388E+01 + -0.6346409257279164E+01 + -0.6349293170000000E+01 + -0.6352179569840608E+01 + -0.6355068458320919E+01 + -0.6357959836880927E+01 + -0.6360853706960621E+01 + -0.6363750070000000E+01 + -0.6366648927439115E+01 + -0.6369550280718287E+01 + -0.6372454131277906E+01 + -0.6375360480558348E+01 + -0.6378269330000000E+01 + -0.6381180681122932E+01 + -0.6384094535765930E+01 + -0.6387010895847460E+01 + -0.6389929763285993E+01 + -0.6392851140000000E+01 + -0.6395775027829155E+01 + -0.6398701428297992E+01 + -0.6401630342852253E+01 + -0.6404561772937675E+01 + -0.6407495720000000E+01 + -0.6410432185480445E+01 + -0.6413371170802104E+01 + -0.6416312677383538E+01 + -0.6419256706643314E+01 + -0.6422203260000000E+01 + -0.6425152338969059E+01 + -0.6428103945453589E+01 + -0.6431058081453593E+01 + -0.6434014748969063E+01 + -0.6436973950000000E+01 + -0.6439935686403315E+01 + -0.6442899959463536E+01 + -0.6445866770322099E+01 + -0.6448836120120441E+01 + -0.6451808010000000E+01 + -0.6454782441257676E+01 + -0.6457759415812259E+01 + -0.6460738935738006E+01 + -0.6463721003109169E+01 + -0.6466705620000000E+01 + -0.6469692788325977E+01 + -0.6472682509367425E+01 + -0.6475674784245882E+01 + -0.6478669614082892E+01 + -0.6481667000000000E+01 + -0.6484666943278412E+01 + -0.6487669445838038E+01 + -0.6490674509758459E+01 + -0.6493682137119256E+01 + -0.6496692330000004E+01 + -0.6499705090320377E+01 + -0.6502720419360423E+01 + -0.6505738318240282E+01 + -0.6508758788080094E+01 + -0.6511781830000000E+01 + -0.6514807445280094E+01 + -0.6517835635840281E+01 + -0.6520866403760421E+01 + -0.6523899751120378E+01 + -0.6526935680000004E+01 + -0.6529974192319256E+01 + -0.6533015289358461E+01 + -0.6536058972238040E+01 + -0.6539105242078414E+01 + -0.6542154100000000E+01 + -0.6545205547282896E+01 + -0.6548259585845885E+01 + -0.6551316217767425E+01 + -0.6554375445125981E+01 + -0.6557437270000004E+01 + -0.6560501694309170E+01 + -0.6563568719338008E+01 + -0.6566638346212263E+01 + -0.6569710576057679E+01 + -0.6572785410000000E+01 + -0.6575862849320440E+01 + -0.6578942895922094E+01 + -0.6582025551863528E+01 + -0.6585110819203312E+01 + -0.6588198700000004E+01 + -0.6591289196169077E+01 + -0.6594382309053620E+01 + -0.6597478039853627E+01 + -0.6600576389769089E+01 + -0.6603677360000000E+01 + -0.6606780951843263E+01 + -0.6609887166983432E+01 + -0.6612996007201969E+01 + -0.6616107474280340E+01 + -0.6619221570000003E+01 + -0.6622338296137873E+01 + -0.6625457654452654E+01 + -0.6628579646698499E+01 + -0.6631704274629564E+01 + -0.6634831540000000E+01 + -0.6637961444485257E+01 + -0.6641093989445962E+01 + -0.6644229176164039E+01 + -0.6647367005921415E+01 + -0.6650507480000004E+01 + -0.6653650599761106E+01 + -0.6656796366883502E+01 + -0.6659944783125347E+01 + -0.6663095850244796E+01 + -0.6666249570000000E+01 + -0.6669405944150332E+01 + -0.6672564974460037E+01 + -0.6675726662694576E+01 + -0.6678891010619413E+01 + -0.6682058020000004E+01 + -0.6685227692517570E+01 + -0.6688400029516354E+01 + -0.6691575032256354E+01 + -0.6694752701997571E+01 + -0.6697933040000000E+01 + -0.6701116047619399E+01 + -0.6704301726594555E+01 + -0.6707490078760012E+01 + -0.6710681105950315E+01 + -0.6713874810000004E+01 + -0.6717071192684837E+01 + -0.6720270255545428E+01 + -0.6723472000063601E+01 + -0.6726676427721183E+01 + -0.6729883540000000E+01 + -0.6733093338441266E+01 + -0.6736305824823744E+01 + -0.6739521000985590E+01 + -0.6742738868764961E+01 + -0.6745959430000004E+01 + -0.6749182686430109E+01 + -0.6752408639399602E+01 + -0.6755637290154041E+01 + -0.6758868639938988E+01 + -0.6762102690000000E+01 + -0.6765339441678312E+01 + -0.6768578896697858E+01 + -0.6771821056878248E+01 + -0.6775065924039097E+01 + -0.6778313500000004E+01 + -0.6781563786536650E+01 + -0.6784816785248971E+01 + -0.6788072497692968E+01 + -0.6791330925424645E+01 + -0.6794592070000000E+01 + -0.6797855932975101E+01 + -0.6801122515906268E+01 + -0.6804391820349884E+01 + -0.6807663847862337E+01 + -0.6810938600000004E+01 + -0.6814216078362952E+01 + -0.6817496284725963E+01 + -0.6820779220907499E+01 + -0.6824064888726024E+01 + -0.6827353290000000E+01 + -0.6830644426453104E+01 + -0.6833938299429890E+01 + -0.6837234910180122E+01 + -0.6840534259953573E+01 + -0.6843836350000004E+01 + -0.6847141181664634E+01 + -0.6850448756674481E+01 + -0.6853759076852013E+01 + -0.6857072144019697E+01 + -0.6860387960000000E+01 + -0.6863706526568372E+01 + -0.6867027845312194E+01 + -0.6870351917771830E+01 + -0.6873678745487648E+01 + -0.6877008330000003E+01 + -0.6880340672861885E+01 + -0.6883675775676748E+01 + -0.6887013640060671E+01 + -0.6890354267629729E+01 + -0.6893697660000000E+01 + -0.6897043818784102E+01 + -0.6900392745580823E+01 + -0.6903744441985493E+01 + -0.6907098909593442E+01 + -0.6910456150000004E+01 + -0.6913816164801713E+01 + -0.6917178955599964E+01 + -0.6920544523997361E+01 + -0.6923912871596505E+01 + -0.6927284000000000E+01 + -0.6930657910809059E+01 + -0.6934034605619329E+01 + -0.6937414086025069E+01 + -0.6940796353620541E+01 + -0.6944181410000003E+01 + -0.6947569256762060E+01 + -0.6950959895522726E+01 + -0.6954353327902363E+01 + -0.6957749555521334E+01 + -0.6961148580000000E+01 + -0.6964550402942712E+01 + -0.6967955025889776E+01 + -0.6971362450365483E+01 + -0.6974772677894126E+01 + -0.6978185710000004E+01 + -0.6981601548267095E+01 + -0.6985020194518175E+01 + -0.6988441650635709E+01 + -0.6991865918502162E+01 + -0.6995293000000000E+01 + -0.6998722896868919E+01 + -0.7002155610277533E+01 + -0.7005591141251688E+01 + -0.7009029490817228E+01 + -0.7012470660000004E+01 + -0.7015914650017237E+01 + -0.7019361462851700E+01 + -0.7022811100677545E+01 + -0.7026263565668928E+01 + -0.7029718860000000E+01 + -0.7033176985702147E+01 + -0.7036637944235678E+01 + -0.7040101736918136E+01 + -0.7043568365067062E+01 + -0.7047037830000003E+01 + -0.7050510133094183E+01 + -0.7053985275965593E+01 + -0.7057463260289913E+01 + -0.7060944087742822E+01 + -0.7064427760000000E+01 + -0.7067914278721136E+01 + -0.7071403645501961E+01 + -0.7074895861922220E+01 + -0.7078390929561651E+01 + -0.7081888850000004E+01 + -0.7085389624821280E+01 + -0.7088893255626567E+01 + -0.7092399744021215E+01 + -0.7095909091610576E+01 + -0.7099421300000000E+01 + -0.7102936370793757E+01 + -0.7106454305591782E+01 + -0.7109975105992930E+01 + -0.7113498773596051E+01 + -0.7117025310000003E+01 + -0.7120554716803698E+01 + -0.7124086995606308E+01 + -0.7127622148007071E+01 + -0.7131160175605223E+01 + -0.7134701080000000E+01 + -0.7138244862791466E+01 + -0.7141791525582995E+01 + -0.7145341069978793E+01 + -0.7148893497583059E+01 + -0.7152448810000004E+01 + -0.7156007008830446E+01 + -0.7159568095661714E+01 + -0.7163132072077763E+01 + -0.7166698939662541E+01 + -0.7170268700000000E+01 + -0.7173841354686766E+01 + -0.7177416905370157E+01 + -0.7180995353710165E+01 + -0.7184576701366781E+01 + -0.7188160950000004E+01 + -0.7191748101222498E+01 + -0.7195338156457666E+01 + -0.7198931117081585E+01 + -0.7202526984470337E+01 + -0.7206125760000000E+01 + -0.7209727445143256E+01 + -0.7213332041759192E+01 + -0.7216939551803501E+01 + -0.7220549977231873E+01 + -0.7224163320000004E+01 + -0.7227779581964486E+01 + -0.7231398764585570E+01 + -0.7235020869224413E+01 + -0.7238645897242170E+01 + -0.7242273850000000E+01 + -0.7245904728918813E+01 + -0.7249538535658537E+01 + -0.7253175271938853E+01 + -0.7256814939479447E+01 + -0.7260457540000004E+01 + -0.7264103075160270E+01 + -0.7267751546380289E+01 + -0.7271402955020176E+01 + -0.7275057302440042E+01 + -0.7278714590000000E+01 + -0.7282374819160122E+01 + -0.7286037991780316E+01 + -0.7289704109820449E+01 + -0.7293373175240388E+01 + -0.7297045190000005E+01 + -0.7300720155959249E+01 + -0.7304398074578453E+01 + -0.7308078947218034E+01 + -0.7311762775238410E+01 + -0.7315449560000000E+01 + -0.7319139302922896E+01 + -0.7322832005665885E+01 + -0.7326527669947424E+01 + -0.7330226297485976E+01 + -0.7333927890000004E+01 + -0.7337632449149173E+01 + -0.7341339976358015E+01 + -0.7345050472992273E+01 + -0.7348763940417687E+01 + -0.7352480380000000E+01 + -0.7356199793200426E+01 + -0.7359922181862065E+01 + -0.7363647547923492E+01 + -0.7367375893323279E+01 + -0.7371107220000000E+01 + -0.7374841529809131E+01 + -0.7378578824273729E+01 + -0.7382319104833763E+01 + -0.7386062372929199E+01 + -0.7389808630000000E+01 + -0.7393557877483065E+01 + -0.7397310116803030E+01 + -0.7401065349381462E+01 + -0.7404823576639929E+01 + -0.7408584800000000E+01 + -0.7412349020978613E+01 + -0.7416116241474156E+01 + -0.7419886463480395E+01 + -0.7423659688991088E+01 + -0.7427435920000000E+01 + -0.7431215158362495E+01 + -0.7434997405380354E+01 + -0.7438782662216967E+01 + -0.7442570930035720E+01 + -0.7446362210000000E+01 + -0.7450156503411415E+01 + -0.7453953812124431E+01 + -0.7457754138131740E+01 + -0.7461557483426033E+01 + -0.7465363850000000E+01 + -0.7469173239751858E+01 + -0.7472985654201934E+01 + -0.7476801094776080E+01 + -0.7480619562900151E+01 + -0.7484441060000000E+01 + -0.7488265587501158E+01 + -0.7492093146827838E+01 + -0.7495923739403942E+01 + -0.7499757366653364E+01 + -0.7503594030000000E+01 + -0.7507433730963525E+01 + -0.7511276471446724E+01 + -0.7515122253448160E+01 + -0.7518971078966398E+01 + -0.7522822950000000E+01 + -0.7526677868404750E+01 + -0.7530535835465273E+01 + -0.7534396852323424E+01 + -0.7538260920121050E+01 + -0.7542128040000000E+01 + -0.7545998213257489E+01 + -0.7549871441812192E+01 + -0.7553747727738151E+01 + -0.7557627073109407E+01 + -0.7561509480000000E+01 + -0.7565394950325300E+01 + -0.7569283485365961E+01 + -0.7573175086243974E+01 + -0.7577069754081324E+01 + -0.7580967490000000E+01 + -0.7584868295281324E+01 + -0.7588772171843973E+01 + -0.7592679121765959E+01 + -0.7596589147125297E+01 + -0.7600502250000000E+01 + -0.7604418432309410E+01 + -0.7608337695338154E+01 + -0.7612260040212195E+01 + -0.7616185468057490E+01 + -0.7620113980000000E+01 + -0.7624045577321049E+01 + -0.7627980261923423E+01 + -0.7631918035865271E+01 + -0.7635858901204747E+01 + -0.7639802860000000E+01 + -0.7643749914166399E+01 + -0.7647700065048159E+01 + -0.7651653313846722E+01 + -0.7655609661763523E+01 + -0.7659569110000000E+01 + -0.7663531659853367E+01 + -0.7667497313003947E+01 + -0.7671466071227846E+01 + -0.7675437936301162E+01 + -0.7679412910000000E+01 + -0.7683390994100141E+01 + -0.7687372190376054E+01 + -0.7691356500601899E+01 + -0.7695343926551830E+01 + -0.7699334470000000E+01 + -0.7703328132626085E+01 + -0.7707324915731846E+01 + -0.7711324820524563E+01 + -0.7715327848211521E+01 + -0.7719334000000000E+01 + -0.7723343277235527E+01 + -0.7727355681816570E+01 + -0.7731371215779851E+01 + -0.7735389881162089E+01 + -0.7739411680000000E+01 + -0.7743436614191824E+01 + -0.7747464685081887E+01 + -0.7751495893876038E+01 + -0.7755530241780126E+01 + -0.7759567730000000E+01 + -0.7763608359837185E+01 + -0.7767652132975887E+01 + -0.7771699051195999E+01 + -0.7775749116277408E+01 + -0.7779802330000000E+01 + -0.7783858694139450E+01 + -0.7787918210454574E+01 + -0.7791980880699973E+01 + -0.7796046706630248E+01 + -0.7800115690000000E+01 + -0.7804187832485020E+01 + -0.7808263135445821E+01 + -0.7812341600164114E+01 + -0.7816423227921605E+01 + -0.7820508020000000E+01 + -0.7824595977760485E+01 + -0.7828687102882154E+01 + -0.7832781397123580E+01 + -0.7836878862243339E+01 + -0.7840979500000000E+01 + -0.7845083312153050E+01 + -0.7849190300465572E+01 + -0.7853300466701571E+01 + -0.7857413812625048E+01 + -0.7861530340000000E+01 + -0.7865650050507334E+01 + -0.7869772945495572E+01 + -0.7873899026230143E+01 + -0.7878028293976477E+01 + -0.7882160750000000E+01 + -0.7886296395657618E+01 + -0.7890435232672145E+01 + -0.7894577262857858E+01 + -0.7898722488029048E+01 + -0.7902870910000000E+01 + -0.7907022530542190E+01 + -0.7911177351255858E+01 + -0.7915335373698429E+01 + -0.7919496599427334E+01 + -0.7923661030000000E+01 + -0.7927828666973618E+01 + -0.7931999511904430E+01 + -0.7936173566348429E+01 + -0.7940350831861618E+01 + -0.7944531310000000E+01 + -0.7948715002363336E+01 + -0.7952901910726435E+01 + -0.7957092036907865E+01 + -0.7961285382726197E+01 + -0.7965481950000000E+01 + -0.7969681740453036E+01 + -0.7973884755429838E+01 + -0.7978090996180116E+01 + -0.7982300463953597E+01 + -0.7986513160000000E+01 + -0.7990729085664518E+01 + -0.7994948242674227E+01 + -0.7999170632851678E+01 + -0.8003396258019420E+01 + -0.8007625120000000E+01 + -0.8011857220568892E+01 + -0.8016092561313261E+01 + -0.8020331143773179E+01 + -0.8024572969488734E+01 + -0.8028818040000001E+01 + -0.8033066356859914E+01 + -0.8037317921672749E+01 + -0.8041572736055628E+01 + -0.8045830801625669E+01 + -0.8050092120000000E+01 + -0.8054356692791451E+01 + -0.8058624521595748E+01 + -0.8062895608004313E+01 + -0.8067169953608588E+01 + -0.8071447559999999E+01 + -0.8075728428774278E+01 + -0.8080012561544278E+01 + -0.8084299959927135E+01 + -0.8088590625539995E+01 + -0.8092884560000000E+01 + -0.8097181764911428E+01 + -0.8101482241827146E+01 + -0.8105785992287144E+01 + -0.8110093017831430E+01 + -0.8114403319999999E+01 + -0.8118716900380006E+01 + -0.8123033760747155E+01 + -0.8127353902924302E+01 + -0.8131677328734298E+01 + -0.8136004040000000E+01 + -0.8140334038448541E+01 + -0.8144667325424228E+01 + -0.8149003902175641E+01 + -0.8153343769951372E+01 + -0.8157686930000001E+01 + -0.8162033383665827E+01 + -0.8166383132675943E+01 + -0.8170736178853145E+01 + -0.8175092524020229E+01 + -0.8179452169999999E+01 + -0.8183815118568147E+01 + -0.8188181371311998E+01 + -0.8192550929771775E+01 + -0.8196923795487702E+01 + -0.8201299970000001E+01 + -0.8205679454861587E+01 + -0.8210062251676076E+01 + -0.8214448362059773E+01 + -0.8218837787628978E+01 + -0.8223230530000000E+01 + -0.8227626590785508E+01 + -0.8232025971583703E+01 + -0.8236428673989137E+01 + -0.8240834699596382E+01 + -0.8245244050000000E+01 + -0.8249656726796378E+01 + -0.8254072731589133E+01 + -0.8258492065983699E+01 + -0.8262914731585507E+01 + -0.8267340730000001E+01 + -0.8271770062828978E+01 + -0.8276202731659772E+01 + -0.8280638738076073E+01 + -0.8285078083661583E+01 + -0.8289520769999999E+01 + -0.8293966798687709E+01 + -0.8298416171371795E+01 + -0.8302868889712027E+01 + -0.8307324955368172E+01 + -0.8311784370000000E+01 + -0.8316247135220181E+01 + -0.8320713252453047E+01 + -0.8325182723075814E+01 + -0.8329655548465723E+01 + -0.8334131729999999E+01 + -0.8338611269151562E+01 + -0.8343094167776034E+01 + -0.8347580427824724E+01 + -0.8352070051248942E+01 + -0.8356563039999999E+01 + -0.8361059395933566E+01 + -0.8365559120522818E+01 + -0.8370062215145282E+01 + -0.8374568681178499E+01 + -0.8379078520000000E+01 + -0.8383591733034168E+01 + -0.8388108321892707E+01 + -0.8392628288234160E+01 + -0.8397151633717076E+01 + -0.8401678360000000E+01 + -0.8406208468729759E+01 + -0.8410741961506359E+01 + -0.8415278839918074E+01 + -0.8419819105553193E+01 + -0.8424362759999999E+01 + -0.8428909804846791E+01 + -0.8433460241681875E+01 + -0.8438014072093560E+01 + -0.8442571297670163E+01 + -0.8447131920000000E+01 + -0.8451695940683068E+01 + -0.8456263361366146E+01 + -0.8460834183707684E+01 + -0.8465408409366150E+01 + -0.8469986040000000E+01 + -0.8474567077220934E+01 + -0.8479151522453561E+01 + -0.8483739377075718E+01 + -0.8488330642465249E+01 + -0.8492925319999999E+01 + -0.8497523411153189E+01 + -0.8502124917779609E+01 + -0.8506729841829438E+01 + -0.8511338185252845E+01 + -0.8515949950000000E+01 + -0.8520565137926305E+01 + -0.8525183750507997E+01 + -0.8529805789126538E+01 + -0.8534431255163383E+01 + -0.8539060149999999E+01 + -0.8543692475061587E+01 + -0.8548328231948389E+01 + -0.8552967422304404E+01 + -0.8557610047773610E+01 + -0.8562256110000000E+01 + -0.8566905610627341E+01 + -0.8571558551298438E+01 + -0.8576214933655862E+01 + -0.8580874759342191E+01 + -0.8585538030000000E+01 + -0.8590204747229045E+01 + -0.8594874912457854E+01 + -0.8599548527072146E+01 + -0.8604225592457622E+01 + -0.8608906110000000E+01 + -0.8613590081176476E+01 + -0.8618277507830142E+01 + -0.8622968391895570E+01 + -0.8627662735307331E+01 + -0.8632360540000001E+01 + -0.8637061807825047E+01 + -0.8641766540301569E+01 + -0.8646474738865575E+01 + -0.8651186404953052E+01 + -0.8655901540000000E+01 + -0.8660620145443337E+01 + -0.8665342222723577E+01 + -0.8670067773282151E+01 + -0.8674796798560481E+01 + -0.8679529300000000E+01 + -0.8684265279121604E+01 + -0.8689004737764112E+01 + -0.8693747677845824E+01 + -0.8698494101285023E+01 + -0.8703244010000001E+01 + -0.8707997405830247E+01 + -0.8712754290299971E+01 + -0.8717514664854571E+01 + -0.8722278530939446E+01 + -0.8727045889999999E+01 + -0.8731816743477406E+01 + -0.8736591092795997E+01 + -0.8741368939375890E+01 + -0.8746150284637187E+01 + -0.8750935130000000E+01 + -0.8755723476980126E+01 + -0.8760515327476036E+01 + -0.8765310683481884E+01 + -0.8770109546991819E+01 + -0.8774911919999999E+01 + -0.8779717804362088E+01 + -0.8784527201379849E+01 + -0.8789340112216571E+01 + -0.8794156538035528E+01 + -0.8798976480000000E+01 + -0.8803799939411521E+01 + -0.8808626918124562E+01 + -0.8813457418131844E+01 + -0.8818291441426082E+01 + -0.8823128990000001E+01 + -0.8827970065751829E+01 + -0.8832814670201898E+01 + -0.8837662804776057E+01 + -0.8842514470900143E+01 + -0.8847369670000001E+01 + -0.8852228403501162E+01 + -0.8857090672827845E+01 + -0.8861956479403945E+01 + -0.8866825824653363E+01 + -0.8871698710000000E+01 + -0.8876575136963522E+01 + -0.8881455107446721E+01 + -0.8886338623448163E+01 + -0.8891225686966401E+01 + -0.8896116299999999E+01 + -0.8901010464404745E+01 + -0.8905908181465268E+01 + -0.8910809452323418E+01 + -0.8915714278121044E+01 + -0.8920622659999999E+01 + -0.8925534599257489E+01 + -0.8930450097812193E+01 + -0.8935369157738156E+01 + -0.8940291781109412E+01 + -0.8945217970000000E+01 + -0.8950147726325296E+01 + -0.8955081051365955E+01 + -0.8960017946243967E+01 + -0.8964958412081318E+01 + -0.8969902449999999E+01 + -0.8974850061281325E+01 + -0.8979801247843975E+01 + -0.8984756011765967E+01 + -0.8989714355125305E+01 + -0.8994676280000006E+01 + -0.8999641788309408E+01 + -0.9004610881338147E+01 + -0.9009583560212185E+01 + -0.9014559826057482E+01 + -0.9019539679999999E+01 + -0.9024523123321062E+01 + -0.9029510157923451E+01 + -0.9034500785865312E+01 + -0.9039495009204781E+01 + -0.9044492830000005E+01 + -0.9049494250166349E+01 + -0.9054499271048055E+01 + -0.9059507893846590E+01 + -0.9064520119763417E+01 + -0.9069535950000001E+01 + -0.9074555385853561E+01 + -0.9079578429004341E+01 + -0.9084605081228347E+01 + -0.9089635344301566E+01 + -0.9094669220000005E+01 + -0.9099706710099420E+01 + -0.9104747816374589E+01 + -0.9109792540600051E+01 + -0.9114840884550343E+01 + -0.9119892849999999E+01 + -0.9124948438628779E+01 + -0.9130007651737314E+01 + -0.9135070490531460E+01 + -0.9140136956217077E+01 + -0.9145207050000005E+01 + -0.9150280773225472E+01 + -0.9155358127796157E+01 + -0.9160439115754111E+01 + -0.9165523739141374E+01 + -0.9170612000000000E+01 + -0.9175703900229351E+01 + -0.9180799441158069E+01 + -0.9185898623972109E+01 + -0.9191001449857440E+01 + -0.9196107920000005E+01 + -0.9201218035697130E+01 + -0.9206331798691574E+01 + -0.9211449210837454E+01 + -0.9216570273988891E+01 + -0.9221694990000000E+01 + -0.9226823360662143E+01 + -0.9231955387515646E+01 + -0.9237091072038078E+01 + -0.9242230415707013E+01 + -0.9247373420000006E+01 + -0.9252520086454307E+01 + -0.9257670416845848E+01 + -0.9262824413010238E+01 + -0.9267982076783087E+01 + -0.9273143409999999E+01 + -0.9278308414400652E+01 + -0.9283477091340977E+01 + -0.9288649442080976E+01 + -0.9293825467880655E+01 + -0.9299005170000005E+01 + -0.9304188549783094E+01 + -0.9309375608910248E+01 + -0.9314566349145858E+01 + -0.9319760772254313E+01 + -0.9324958880000001E+01 + -0.9330160674146988E+01 + -0.9335366156458042E+01 + -0.9340575328695600E+01 + -0.9345788192622113E+01 + -0.9351004750000005E+01 + -0.9356225002508960E+01 + -0.9361448951497593E+01 + -0.9366676598231745E+01 + -0.9371907943977265E+01 + -0.9377142989999999E+01 + -0.9382381737657184E+01 + -0.9387624188671602E+01 + -0.9392870344857428E+01 + -0.9398120208028843E+01 + -0.9403373780000006E+01 + -0.9408631062542314E+01 + -0.9413892057256009E+01 + -0.9419156765698549E+01 + -0.9424425189427392E+01 + -0.9429697330000000E+01 + -0.9434973188973583E+01 + -0.9440252767904381E+01 + -0.9445536068348389E+01 + -0.9450823091861603E+01 + -0.9456113840000006E+01 + -0.9461408314363361E+01 + -0.9466706516726472E+01 + -0.9472008448907904E+01 + -0.9477314112726225E+01 + -0.9482623510000000E+01 + -0.9487936642452992E+01 + -0.9493253511429746E+01 + -0.9498574118180004E+01 + -0.9503898463953515E+01 + -0.9509226550000005E+01 + -0.9514558377664679E+01 + -0.9519893948674547E+01 + -0.9525233264852078E+01 + -0.9530576328019741E+01 + -0.9535923140000000E+01 + -0.9541273702568311E+01 + -0.9546628017312077E+01 + -0.9551986085771686E+01 + -0.9557347909487538E+01 + -0.9562713490000006E+01 + -0.9568082828862085E+01 + -0.9573455927677152E+01 + -0.9578832788061179E+01 + -0.9584213411630136E+01 + -0.9589597800000000E+01 + -0.9594985954783365E+01 + -0.9600377877579328E+01 + -0.9605773569983608E+01 + -0.9611173033591932E+01 + -0.9616576270000005E+01 + -0.9621983280804461E+01 + -0.9627394067605541E+01 + -0.9632808632004393E+01 + -0.9638226975602164E+01 + -0.9643649099999999E+01 + -0.9649075006798807E+01 + -0.9654504697598519E+01 + -0.9659938173998826E+01 + -0.9665375437599430E+01 + -0.9670816490000005E+01 + -0.9676261332800319E+01 + -0.9681709967600391E+01 + -0.9687162396000304E+01 + -0.9692618619600145E+01 + -0.9698078640000000E+01 + -0.9703542458799934E+01 + -0.9709010077599935E+01 + -0.9714481497999968E+01 + -0.9719956721600006E+01 + -0.9725435750000006E+01 + -0.9730918584799955E+01 + -0.9736405227599882E+01 + -0.9741895679999836E+01 + -0.9747389943599860E+01 + -0.9752888020000000E+01 + -0.9758389910800272E+01 + -0.9763895617600557E+01 + -0.9769405142000705E+01 + -0.9774918485600576E+01 + -0.9780435650000005E+01 + -0.9785956636798970E+01 + -0.9791481447597899E+01 + -0.9797010083997348E+01 + -0.9802542547597865E+01 + -0.9808078840000000E+01 + -0.9813618962803872E+01 + -0.9819162917607860E+01 + -0.9824710706009913E+01 + -0.9830262329607976E+01 + -0.9835817790000005E+01 + -0.9841377088785555E+01 + -0.9846940227570670E+01 + -0.9852507207963008E+01 + -0.9858078031570232E+01 + -0.9863652699999999E+01 + -0.9869231214853929E+01 + -0.9874813577709478E+01 + -0.9880399790138062E+01 + -0.9885989853711097E+01 + -0.9891583770000006E+01 + -0.9897181540598737E+01 + -0.9902783167191426E+01 + -0.9908388651484751E+01 + -0.9913997995185383E+01 + -0.9919611200000000E+01 + -0.9925228267551145E+01 + -0.9930849199124832E+01 + -0.9936473995922947E+01 + -0.9942102659147375E+01 + -0.9947735190000007E+01 + -0.9953371589996694E+01 + -0.9959011861909252E+01 + -0.9964656008823463E+01 + -0.9970304033825117E+01 + -0.9975955940000000E+01 + -0.9981611729662097E+01 + -0.9987271402038179E+01 + -0.9992934955583211E+01 + -0.9998602388752163E+01 + -0.1000427370000001E+02 + -0.1000994888879493E+02 + -0.1001562795865804E+02 + -0.1002131091412370E+02 + -0.1002699775972624E+02 + -0.1003268850000000E+02 + -0.1003838313883822E+02 + -0.1004408167756967E+02 + -0.1004978411688200E+02 + -0.1005549045746290E+02 + -0.1006120070000001E+02 + -0.1006691484545222E+02 + -0.1007263289586331E+02 + -0.1007835485354830E+02 + -0.1008408072082219E+02 + -0.1008981050000000E+02 + -0.1009554419295295E+02 + -0.1010128179977712E+02 + -0.1010702332012482E+02 + -0.1011276875364834E+02 + -0.1011851810000001E+02 + -0.1012427135953601E+02 + -0.1013002853542823E+02 + -0.1013578963155244E+02 + -0.1014155465178444E+02 + -0.1014732360000000E+02 + -0.1015309647930304E+02 + -0.1015887328970999E+02 + -0.1016465403046543E+02 + -0.1017043870081391E+02 + -0.1017622730000001E+02 + -0.1018201982805184E+02 + -0.1018781628813180E+02 + -0.1019361668418585E+02 + -0.1019942102015993E+02 + -0.1020522930000000E+02 + -0.1021104152688962E+02 + -0.1021685770096281E+02 + -0.1022267782159118E+02 + -0.1022850188814637E+02 + -0.1023432990000001E+02 + -0.1024016185718969E+02 + -0.1024599776241698E+02 + -0.1025183761904943E+02 + -0.1025768143045458E+02 + -0.1026352920000000E+02 + -0.1026938093075166E+02 + -0.1027523662456931E+02 + -0.1028109628301113E+02 + -0.1028695990763530E+02 + -0.1029282750000001E+02 + -0.1029869906140368E+02 + -0.1030457459210579E+02 + -0.1031045409210607E+02 + -0.1031633756140423E+02 + -0.1032222500000000E+02 + -0.1032811640843363E+02 + -0.1033401178940753E+02 + -0.1033991114616460E+02 + -0.1034581448194778E+02 + -0.1035172180000001E+02 + -0.1035763310326179E+02 + -0.1036354839346411E+02 + -0.1036946767203554E+02 + -0.1037539094040464E+02 + -0.1038131820000000E+02 + -0.1038724945211922E+02 + -0.1039318469753605E+02 + -0.1039912393689327E+02 + -0.1040506717083366E+02 + -0.1041101440000001E+02 + -0.1041696562506133E+02 + -0.1042292084679170E+02 + -0.1042888006599140E+02 + -0.1043484328346073E+02 + -0.1044081050000000E+02 + -0.1044678171723546E+02 + -0.1045275694009717E+02 + -0.1045873617434116E+02 + -0.1046471942572343E+02 + -0.1047070670000001E+02 + -0.1047669800119683E+02 + -0.1048269332641961E+02 + -0.1048869267104398E+02 + -0.1049469603044557E+02 + -0.1050070340000000E+02 + -0.1050671477717722E+02 + -0.1051273016782438E+02 + -0.1051874957988293E+02 + -0.1052477302129432E+02 + -0.1053080050000001E+02 + -0.1053683202209428E+02 + -0.1054286758628286E+02 + -0.1054890718942430E+02 + -0.1055495082837716E+02 + -0.1056099850000000E+02 + -0.1056705020244567E+02 + -0.1057310593904419E+02 + -0.1057916571441987E+02 + -0.1058522953319704E+02 + -0.1059129740000000E+02 + -0.1059736931852306E+02 + -0.1060344528874040E+02 + -0.1060952530969621E+02 + -0.1061560938043468E+02 + -0.1062169750000000E+02 + -0.1062778966826213E+02 + -0.1063388588839425E+02 + -0.1063998616439529E+02 + -0.1064609050026423E+02 + -0.1065219890000000E+02 + -0.1065831136682842E+02 + -0.1066442790088262E+02 + -0.1067054850152262E+02 + -0.1067667316810841E+02 + -0.1068280190000000E+02 + -0.1068893469722422E+02 + -0.1069507156247528E+02 + -0.1070121249911423E+02 + -0.1070735751050212E+02 + -0.1071350660000000E+02 + -0.1071965977067472E+02 + -0.1072581702441627E+02 + -0.1073197836282047E+02 + -0.1073814378748311E+02 + -0.1074431330000000E+02 + -0.1075048690167693E+02 + -0.1075666459265966E+02 + -0.1076284637280392E+02 + -0.1076903224196546E+02 + -0.1077522220000000E+02 + -0.1078141624741755E+02 + -0.1078761438734509E+02 + -0.1079381662356385E+02 + -0.1080002295985507E+02 + -0.1080623340000000E+02 + -0.1081244794705288E+02 + -0.1081866660116001E+02 + -0.1082488936174070E+02 + -0.1083111622821426E+02 + -0.1083734720000000E+02 + -0.1084358227717095E+02 + -0.1084982146241490E+02 + -0.1085606475907338E+02 + -0.1086231217048791E+02 + -0.1086856370000000E+02 + -0.1087481935066336E+02 + -0.1088107912438042E+02 + -0.1088734302276580E+02 + -0.1089361104743412E+02 + -0.1089988320000000E+02 + -0.1090615948177563E+02 + -0.1091243989286343E+02 + -0.1091872443306342E+02 + -0.1092501310217561E+02 + -0.1093130590000000E+02 + -0.1093760282703415E+02 + -0.1094390388656587E+02 + -0.1095020908258051E+02 + -0.1095651841906343E+02 + -0.1096283190000000E+02 + -0.1096914952848777E+02 + -0.1097547130407310E+02 + -0.1098179722541454E+02 + -0.1098812729117066E+02 + -0.1099446150000000E+02 + -0.1100079985181477E+02 + -0.1100714235154175E+02 + -0.1101348900536133E+02 + -0.1101983981945395E+02 + -0.1102619480000000E+02 + -0.1103255395145314E+02 + -0.1103891727135992E+02 + -0.1104528475554013E+02 + -0.1105165639981356E+02 + -0.1105803220000000E+02 + -0.1106441215357267E+02 + -0.1107079626461858E+02 + -0.1107718453887815E+02 + -0.1108357698209181E+02 + -0.1108997360000000E+02 + -0.1109637439745617E+02 + -0.1110277937576578E+02 + -0.1110918853534730E+02 + -0.1111560187661921E+02 + -0.1112201940000000E+02 + -0.1112844110620266E+02 + -0.1113486699711834E+02 + -0.1114129707493268E+02 + -0.1114773134183134E+02 + -0.1115416980000000E+02 + -0.1116061245133318E+02 + -0.1116705929656088E+02 + -0.1117351033612200E+02 + -0.1117996557045541E+02 + -0.1118642500000000E+02 + -0.1119288862526464E+02 + -0.1119935644703815E+02 + -0.1120582846617933E+02 + -0.1121230468354702E+02 + -0.1121878510000000E+02 + -0.1122526971720828E+02 + -0.1123175854008655E+02 + -0.1123825157436067E+02 + -0.1124474882575653E+02 + -0.1125125030000000E+02 + -0.1125775600110226E+02 + -0.1126426592621569E+02 + -0.1127078007077800E+02 + -0.1127729843022687E+02 + -0.1128382100000000E+02 + -0.1129034777758270E+02 + -0.1129687876865069E+02 + -0.1130341398092734E+02 + -0.1130995342213599E+02 + -0.1131649710000000E+02 + -0.1132304502056697E+02 + -0.1132959718318155E+02 + -0.1133615358551265E+02 + -0.1134271422522916E+02 + -0.1134927910000000E+02 + -0.1135584820814943E+02 + -0.1136242155062312E+02 + -0.1136899912902209E+02 + -0.1137558094494738E+02 + -0.1138216700000000E+02 + -0.1138875729643534E+02 + -0.1139535183912602E+02 + -0.1140195063359904E+02 + -0.1140855368538137E+02 + -0.1141516100000000E+02 + -0.1142177258130923E+02 + -0.1142838842647280E+02 + -0.1143500853098174E+02 + -0.1144163289032713E+02 + -0.1144826150000000E+02 + -0.1145489435752772E+02 + -0.1146153146858279E+02 + -0.1146817284087400E+02 + -0.1147481848211014E+02 + -0.1148146840000000E+02 + -0.1148812260057987E+02 + -0.1149478108319603E+02 + -0.1150144384552225E+02 + -0.1150811088523232E+02 + -0.1151478220000000E+02 + -0.1152145778815281E+02 + -0.1152813765063312E+02 + -0.1153482178903702E+02 + -0.1154151020496061E+02 + -0.1154820290000000E+02 + -0.1155489987640889E+02 + -0.1156160113907152E+02 + -0.1156830669352968E+02 + -0.1157501654532524E+02 + -0.1158173070000000E+02 + -0.1158844916141161E+02 + -0.1159517192668085E+02 + -0.1160189899124428E+02 + -0.1160863035053847E+02 + -0.1161536600000000E+02 + -0.1162210593714465E+02 + -0.1162885016780509E+02 + -0.1163559869989320E+02 + -0.1164235154132088E+02 + -0.1164910870000000E+02 + -0.1165587018200980E+02 + -0.1166263598609882E+02 + -0.1166940610918294E+02 + -0.1167618054817804E+02 + -0.1168295930000000E+02 + -0.1168974236281615E+02 + -0.1169652973979963E+02 + -0.1170332143537504E+02 + -0.1171011745396696E+02 + -0.1171691780000000E+02 + -0.1172372247712561E+02 + -0.1173053148590267E+02 + -0.1173734482611693E+02 + -0.1174416249755412E+02 + -0.1175098450000000E+02 + -0.1175781083348140E+02 + -0.1176464149898967E+02 + -0.1177147649775723E+02 + -0.1177831583101653E+02 + -0.1178515950000000E+02 + -0.1179200750654877E+02 + -0.1179885985493866E+02 + -0.1180571655005416E+02 + -0.1181257759677978E+02 + -0.1181944300000000E+02 + -0.1182631276352350E+02 + -0.1183318688685568E+02 + -0.1184006536842611E+02 + -0.1184694820666436E+02 + -0.1185383540000000E+02 + -0.1186072694735723E+02 + -0.1186762284963864E+02 + -0.1187452310824143E+02 + -0.1188142772456282E+02 + -0.1188833670000000E+02 + -0.1189525003664758E+02 + -0.1190216773938977E+02 + -0.1190908981380816E+02 + -0.1191601626548437E+02 + -0.1192294710000000E+02 + -0.1192988232125246E+02 + -0.1193682192640232E+02 + -0.1194376591092595E+02 + -0.1195071427029972E+02 + -0.1195766700000000E+02 + -0.1196462409754258E+02 + -0.1197158556860096E+02 + -0.1197855142088804E+02 + -0.1198552166211675E+02 + -0.1199249630000000E+02 + -0.1199947534057723E+02 + -0.1200645878319388E+02 + -0.1201344662552191E+02 + -0.1202043886523330E+02 + -0.1202743550000000E+02 + -0.1203443652814851E+02 + -0.1204144195062354E+02 + -0.1204845176902430E+02 + -0.1205546598495005E+02 + -0.1206248460000000E+02 + -0.1206950761642872E+02 + -0.1207653503911199E+02 + -0.1208356687358089E+02 + -0.1209060312536653E+02 + -0.1209764380000000E+02 + -0.1210468890133660E+02 + -0.1211173842652852E+02 + -0.1211879237105213E+02 + -0.1212585073038383E+02 + -0.1213291350000000E+02 + -0.1213998067742488E+02 + -0.1214705226837397E+02 + -0.1215412828061062E+02 + -0.1216120872189818E+02 + -0.1216829360000000E+02 + -0.1217538292096389E+02 + -0.1218247668397562E+02 + -0.1218957488650540E+02 + -0.1219667752602345E+02 + -0.1220378460000000E+02 + -0.1221089610671954E+02 + -0.1221801204772356E+02 + -0.1222513242536781E+02 + -0.1223225724200804E+02 + -0.1223938650000000E+02 + -0.1224652020175794E+02 + -0.1225365834993013E+02 + -0.1226080094722335E+02 + -0.1226794799634439E+02 + -0.1227509950000000E+02 + -0.1228225546064872E+02 + -0.1228941587975594E+02 + -0.1229658075853880E+02 + -0.1230375009821444E+02 + -0.1231092390000000E+02 + -0.1231810216524720E+02 + -0.1232528489584612E+02 + -0.1233247209382145E+02 + -0.1233966376119785E+02 + -0.1234685990000000E+02 + -0.1235406051196250E+02 + -0.1236126559765958E+02 + -0.1236847515737542E+02 + -0.1237568919139417E+02 + -0.1238290770000000E+02 + -0.1239013068370281E+02 + -0.1239735814391554E+02 + -0.1240459008227686E+02 + -0.1241182650042546E+02 + -0.1241906740000000E+02 + -0.1242631278282626E+02 + -0.1243356265147827E+02 + -0.1244081700871715E+02 + -0.1244807585730401E+02 + -0.1245533920000000E+02 + -0.1246260703939216E+02 + -0.1246987937737139E+02 + -0.1247715621565455E+02 + -0.1248443755595847E+02 + -0.1249172340000000E+02 + -0.1249901374920511E+02 + -0.1250630860383618E+02 + -0.1251360796386469E+02 + -0.1252091182926213E+02 + -0.1252822020000000E+02 + -0.1253553307658739E+02 + -0.1254285046168389E+02 + -0.1255017235848670E+02 + -0.1255749877019300E+02 + -0.1256482970000000E+02 + -0.1257216515084532E+02 + -0.1257950512462826E+02 + -0.1258684962298854E+02 + -0.1259419864756588E+02 + -0.1260155220000000E+02 + -0.1260891028163131E+02 + -0.1261627289260305E+02 + -0.1262364003275913E+02 + -0.1263101170194348E+02 + -0.1263838790000000E+02 + -0.1264576862742942E+02 + -0.1265315388735954E+02 + -0.1266054368357494E+02 + -0.1266793801986023E+02 + -0.1267533690000000E+02 + -0.1268274032705101E+02 + -0.1269014830115880E+02 + -0.1269756082174109E+02 + -0.1270497788821558E+02 + -0.1271239950000000E+02 + -0.1271982565716654E+02 + -0.1272725636240527E+02 + -0.1273469161906073E+02 + -0.1274213143047746E+02 + -0.1274957580000000E+02 + -0.1275702473068282E+02 + -0.1276447822442010E+02 + -0.1277193628281598E+02 + -0.1277939890747458E+02 + -0.1278686610000000E+02 + -0.1279433786170220E+02 + -0.1280181419271432E+02 + -0.1280929509287535E+02 + -0.1281678056202425E+02 + -0.1282427060000000E+02 + -0.1283176520730839E+02 + -0.1283926438712259E+02 + -0.1284676814328261E+02 + -0.1285427647962841E+02 + -0.1286178940000000E+02 + -0.1286930690746423E+02 + -0.1287682900199530E+02 + -0.1288435568279425E+02 + -0.1289188694906213E+02 + -0.1289942280000000E+02 + -0.1290696323563468E+02 + -0.1291450825929621E+02 + -0.1292205787514040E+02 + -0.1292961208732306E+02 + -0.1293717090000001E+02 + -0.1294473431639705E+02 + -0.1295230233601988E+02 + -0.1295987495744419E+02 + -0.1296745217924567E+02 + -0.1297503400000000E+02 + -0.1298262041957716E+02 + -0.1299021144302430E+02 + -0.1299780707668287E+02 + -0.1300540732689429E+02 + -0.1301301220000001E+02 + -0.1302062170049433E+02 + -0.1302823582548294E+02 + -0.1303585457022439E+02 + -0.1304347792997723E+02 + -0.1305110590000000E+02 + -0.1305873847764556E+02 + -0.1306637566864398E+02 + -0.1307401748081962E+02 + -0.1308166392199684E+02 + -0.1308931500000001E+02 + -0.1309697072092343E+02 + -0.1310463108394116E+02 + -0.1311229608649718E+02 + -0.1311996572603546E+02 + -0.1312764000000000E+02 + -0.1313531890666073E+02 + -0.1314300244759139E+02 + -0.1315069062519170E+02 + -0.1315838344186134E+02 + -0.1316608090000001E+02 + -0.1317378300203367E+02 + -0.1318148975049328E+02 + -0.1318920114793606E+02 + -0.1319691719691922E+02 + -0.1320463790000000E+02 + -0.1321236325960464E+02 + -0.1322009327763553E+02 + -0.1322782795586411E+02 + -0.1323556729606179E+02 + -0.1324331130000001E+02 + -0.1325105996914780E+02 + -0.1325881330376462E+02 + -0.1326657130380755E+02 + -0.1327433396923366E+02 + -0.1328210130000000E+02 + -0.1328987329660420E+02 + -0.1329764996170600E+02 + -0.1330543129850571E+02 + -0.1331321731020362E+02 + -0.1332100800000001E+02 + -0.1332880337083543E+02 + -0.1333660342461139E+02 + -0.1334440816296963E+02 + -0.1335221758755192E+02 + -0.1336003170000000E+02 + -0.1336785050165412E+02 + -0.1337567399264847E+02 + -0.1338350217281577E+02 + -0.1339133504198873E+02 + -0.1339917260000001E+02 + -0.1340701484734812E+02 + -0.1341486178719473E+02 + -0.1342271342336728E+02 + -0.1343056975969322E+02 + -0.1343843080000000E+02 + -0.1344629654735342E+02 + -0.1345416700177264E+02 + -0.1346204216251514E+02 + -0.1346992202883844E+02 + -0.1347780660000001E+02 + -0.1348569587603820E+02 + -0.1349358986011473E+02 + -0.1350148855617217E+02 + -0.1350939196815307E+02 + -0.1351730010000000E+02 + -0.1352521295489380E+02 + -0.1353313053296845E+02 + -0.1354105283359619E+02 + -0.1354897985614930E+02 + -0.1355691160000001E+02 + -0.1356484806518660E+02 + -0.1357278925441148E+02 + -0.1358073517104306E+02 + -0.1358868581844976E+02 + -0.1359664120000000E+02 + -0.1360460131875981E+02 + -0.1361256617658565E+02 + -0.1362053577503158E+02 + -0.1362851011565168E+02 + -0.1363648920000001E+02 + -0.1364447302937417E+02 + -0.1365246160404594E+02 + -0.1366045492403062E+02 + -0.1366845298934354E+02 + -0.1367645580000000E+02 + -0.1368446335654354E+02 + -0.1369247566163062E+02 + -0.1370049271844593E+02 + -0.1370851453017417E+02 + -0.1371654110000001E+02 + -0.1372457243085168E+02 + -0.1373260852463159E+02 + -0.1374064938298565E+02 + -0.1374869500755981E+02 + -0.1375674540000000E+02 + -0.1376480056164976E+02 + -0.1377286049264306E+02 + -0.1378092519281148E+02 + -0.1378899466198661E+02 + -0.1379706890000001E+02 + -0.1380514790734929E+02 + -0.1381323168719618E+02 + -0.1382132024336842E+02 + -0.1382941357969378E+02 + -0.1383751170000000E+02 + -0.1384561460735311E+02 + -0.1385372230177225E+02 + -0.1386183478251483E+02 + -0.1386995204883829E+02 + -0.1387807410000001E+02 + -0.1388620093603828E+02 + -0.1389433256011484E+02 + -0.1390246897617225E+02 + -0.1391061018815311E+02 + -0.1391875620000000E+02 + -0.1392690701489378E+02 + -0.1393506263296842E+02 + -0.1394322305359617E+02 + -0.1395138827614929E+02 + -0.1395955830000001E+02 + -0.1396773312518661E+02 + -0.1397591275441149E+02 + -0.1398409719104307E+02 + -0.1399228643844976E+02 + -0.1400048050000000E+02 + -0.1400867937875981E+02 + -0.1401688307658565E+02 + -0.1402509159503158E+02 + -0.1403330493565168E+02 + -0.1404152310000001E+02 + -0.1404974608937417E+02 + -0.1405797390404594E+02 + -0.1406620654403063E+02 + -0.1407444400934354E+02 + -0.1408268630000000E+02 + -0.1409093341654354E+02 + -0.1409918536163062E+02 + -0.1410744213844594E+02 + -0.1411570375017417E+02 + -0.1412397020000001E+02 + -0.1413224149085168E+02 + -0.1414051762463159E+02 + -0.1414879860298565E+02 + -0.1415708442755981E+02 + -0.1416537510000000E+02 + -0.1417367062164976E+02 + -0.1418197099264306E+02 + -0.1419027621281149E+02 + -0.1419858628198661E+02 + -0.1420690120000001E+02 + -0.1421522096734929E+02 + -0.1422354558719618E+02 + -0.1423187506336842E+02 + -0.1424020939969378E+02 + -0.1424854860000000E+02 + -0.1425689266735311E+02 + -0.1426524160177225E+02 + -0.1427359540251483E+02 + -0.1428195406883829E+02 + -0.1429031760000001E+02 + -0.1429868599603829E+02 + -0.1430705926011484E+02 + -0.1431543739617225E+02 + -0.1432382040815311E+02 + -0.1433220830000000E+02 + -0.1434060107489378E+02 + -0.1434899873296842E+02 + -0.1435740127359617E+02 + -0.1436580869614928E+02 + -0.1437422100000001E+02 + -0.1438263818518661E+02 + -0.1439106025441149E+02 + -0.1439948721104307E+02 + -0.1440791905844976E+02 + -0.1441635580000000E+02 + -0.1442479743875981E+02 + -0.1443324397658565E+02 + -0.1444169541503158E+02 + -0.1445015175565168E+02 + -0.1445861300000001E+02 + -0.1446707914937417E+02 + -0.1447555020404594E+02 + -0.1448402616403063E+02 + -0.1449250702934354E+02 + -0.1450099280000000E+02 + -0.1450948347654354E+02 + -0.1451797906163062E+02 + -0.1452647955844594E+02 + -0.1453498497017417E+02 + -0.1454349530000001E+02 + -0.1455201055085168E+02 + -0.1456053072463158E+02 + -0.1456905582298564E+02 + -0.1457758584755981E+02 + -0.1458612080000000E+02 + -0.1459466068164977E+02 + -0.1460320549264308E+02 + -0.1461175523281150E+02 + -0.1462030990198662E+02 + -0.1462886950000001E+02 + -0.1463743402734926E+02 + -0.1464600348719612E+02 + -0.1465457788336835E+02 + -0.1466315721969372E+02 + -0.1467174150000000E+02 + -0.1468033072735322E+02 + -0.1468892490177247E+02 + -0.1469752402251512E+02 + -0.1470612808883851E+02 + -0.1471473710000001E+02 + -0.1472335105603787E+02 + -0.1473196996011400E+02 + -0.1474059381617119E+02 + -0.1474922262815226E+02 + -0.1475785640000000E+02 + -0.1476649513489533E+02 + -0.1477513883297156E+02 + -0.1478378749360014E+02 + -0.1479244111615247E+02 + -0.1480109970000001E+02 + -0.1480976324518083E+02 + -0.1481843175439976E+02 + -0.1482710523102827E+02 + -0.1483578367843786E+02 + -0.1484446710000000E+02 + -0.1485315549878137E+02 + -0.1486184887662942E+02 + -0.1487054723508678E+02 + -0.1487925057569610E+02 + -0.1488795890000001E+02 + -0.1489667220929369E+02 + -0.1490539050388257E+02 + -0.1491411378382460E+02 + -0.1492284204917775E+02 + -0.1493157530000000E+02 + -0.1494031353684389E+02 + -0.1494905676224034E+02 + -0.1495780497921484E+02 + -0.1496655819079290E+02 + -0.1497531640000001E+02 + -0.1498407960973075E+02 + -0.1499284782235608E+02 + -0.1500162104011604E+02 + -0.1501039926525067E+02 + -0.1501918250000000E+02 + -0.1502797074583313E+02 + -0.1503676400113535E+02 + -0.1504556226352100E+02 + -0.1505436553060444E+02 + -0.1506317380000001E+02 + -0.1507198707093674E+02 + -0.1508080534910253E+02 + -0.1508962864179994E+02 + -0.1509845695633157E+02 + -0.1510729030000000E+02 + -0.1511612867841993E+02 + -0.1512497209045456E+02 + -0.1513382053327923E+02 + -0.1514267400406927E+02 + -0.1515153250000001E+02 + -0.1516039601938356E+02 + -0.1516926456507924E+02 + -0.1517813814108314E+02 + -0.1518701675139136E+02 + -0.1519590040000000E+02 + -0.1520478909044586E+02 + -0.1521368282442851E+02 + -0.1522258160318824E+02 + -0.1523148542796531E+02 + -0.1524039430000001E+02 + -0.1524930822043302E+02 + -0.1525822719000673E+02 + -0.1526715120936393E+02 + -0.1527608027914742E+02 + -0.1528501440000000E+02 + -0.1529395357262209E+02 + -0.1530289779794461E+02 + -0.1531184707695608E+02 + -0.1532080141064503E+02 + -0.1532976080000001E+02 + -0.1533872524667862E+02 + -0.1534769475501486E+02 + -0.1535666933001178E+02 + -0.1536564897667247E+02 + -0.1537463370000000E+02 + -0.1538362350386346E+02 + -0.1539261838759600E+02 + -0.1540161834939682E+02 + -0.1541062338746509E+02 + -0.1541963350000001E+02 + -0.1542864868586757E+02 + -0.1543766894660115E+02 + -0.1544669428440094E+02 + -0.1545572470146716E+02 + -0.1546476020000000E+02 + -0.1547380078226630E+02 + -0.1548284645079943E+02 + -0.1549189720819942E+02 + -0.1550095305706627E+02 + -0.1551001400000000E+02 + -0.1551908003946726E+02 + -0.1552815117740114E+02 + -0.1553722741560140E+02 + -0.1554630875586777E+02 + -0.1555539520000000E+02 + -0.1556448674946471E+02 + -0.1557358340439603E+02 + -0.1558268516459501E+02 + -0.1559179202986266E+02 + -0.1560090400000000E+02 + -0.1561002107547393E+02 + -0.1561914325941473E+02 + -0.1562827055561857E+02 + -0.1563740296788161E+02 + -0.1564654050000000E+02 + -0.1565568315503960E+02 + -0.1566483093314506E+02 + -0.1567398383373071E+02 + -0.1568314185621091E+02 + -0.1569230500000000E+02 + -0.1570147326516768E+02 + -0.1571064665440506E+02 + -0.1571982517105859E+02 + -0.1572900881847475E+02 + -0.1573819760000000E+02 + -0.1574739151868970E+02 + -0.1575659057643475E+02 + -0.1576579477483495E+02 + -0.1577500411549010E+02 + -0.1578421860000000E+02 + -0.1579343822967355E+02 + -0.1580266300465597E+02 + -0.1581189292480163E+02 + -0.1582112798996486E+02 + -0.1583036820000000E+02 + -0.1583961355541615E+02 + -0.1584886405934139E+02 + -0.1585811971555855E+02 + -0.1586738052785048E+02 + -0.1587664650000000E+02 + -0.1588591763506187E+02 + -0.1589519393317849E+02 + -0.1590447539376417E+02 + -0.1591376201623323E+02 + -0.1592305380000000E+02 + -0.1593235074513639E+02 + -0.1594165285434469E+02 + -0.1595096013098480E+02 + -0.1596027257841660E+02 + -0.1596959020000000E+02 + -0.1597891299879260E+02 + -0.1598824097664278E+02 + -0.1599757413509666E+02 + -0.1600691247570036E+02 + -0.1601625600000000E+02 + -0.1602560470929327E+02 + -0.1603495860388424E+02 + -0.1604431768382858E+02 + -0.1605368194918194E+02 + -0.1606305140000000E+02 + -0.1607242603683435E+02 + -0.1608180586222027E+02 + -0.1609119087918903E+02 + -0.1610058109077186E+02 + -0.1610997650000000E+02 + -0.1611937710976938E+02 + -0.1612878292243469E+02 + -0.1613819394021531E+02 + -0.1614761016533062E+02 + -0.1615703160000000E+02 + -0.1616645824568816E+02 + -0.1617589010084099E+02 + -0.1618532716314975E+02 + -0.1619476943030567E+02 + -0.1620421690000000E+02 + -0.1621366957147804E+02 + -0.1622312745020139E+02 + -0.1623259054318572E+02 + -0.1624205885744670E+02 + -0.1625153240000000E+02 + -0.1626101117639970E+02 + -0.1627049518635346E+02 + -0.1627998442810738E+02 + -0.1628947889990753E+02 + -0.1629897860000000E+02 + -0.1630848352692320E+02 + -0.1631799368038479E+02 + -0.1632750906038479E+02 + -0.1633702966692320E+02 + 0.7624349897230946E+00 + 0.7617205676605572E+00 + 0.7610066492605887E+00 + 0.7602932343327278E+00 + 0.7595803226865119E+00 + 0.7588679141314785E+00 + 0.7581560084771660E+00 + 0.7574446055331121E+00 + 0.7567337051088545E+00 + 0.7560233070139311E+00 + 0.7553134110578801E+00 + 0.7546040170502391E+00 + 0.7538951248005457E+00 + 0.7531867341183382E+00 + 0.7524788448131545E+00 + 0.7517714566945322E+00 + 0.7510645695720093E+00 + 0.7503581832551236E+00 + 0.7496522975534128E+00 + 0.7489469122764150E+00 + 0.7482420272336681E+00 + 0.7475376422347098E+00 + 0.7468337570890777E+00 + 0.7461303716063106E+00 + 0.7454274855959453E+00 + 0.7447250988675204E+00 + 0.7440232112305734E+00 + 0.7433218224946423E+00 + 0.7426209324692650E+00 + 0.7419205409639789E+00 + 0.7412206477883226E+00 + 0.7405212527518335E+00 + 0.7398223556640495E+00 + 0.7391239563345087E+00 + 0.7384260545727488E+00 + 0.7377286501883074E+00 + 0.7370317429907230E+00 + 0.7363353327895328E+00 + 0.7356394193942750E+00 + 0.7349440026144876E+00 + 0.7342490822597084E+00 + 0.7335546581394747E+00 + 0.7328607300633252E+00 + 0.7321672978407971E+00 + 0.7314743612814287E+00 + 0.7307819201947576E+00 + 0.7300899743903219E+00 + 0.7293985236776594E+00 + 0.7287075678663078E+00 + 0.7280171067658053E+00 + 0.7273271401856894E+00 + 0.7266376679354978E+00 + 0.7259486898247689E+00 + 0.7252602056630401E+00 + 0.7245722152598500E+00 + 0.7238847184247355E+00 + 0.7231977149672351E+00 + 0.7225112046968865E+00 + 0.7218251874232273E+00 + 0.7211396629557958E+00 + 0.7204546311041298E+00 + 0.7197700916777670E+00 + 0.7190860444862450E+00 + 0.7184024893391023E+00 + 0.7177194260458764E+00 + 0.7170368544161050E+00 + 0.7163547742593261E+00 + 0.7156731853850779E+00 + 0.7149920876028979E+00 + 0.7143114807223241E+00 + 0.7136313645528942E+00 + 0.7129517389041462E+00 + 0.7122726035856180E+00 + 0.7115939584068476E+00 + 0.7109158031773724E+00 + 0.7102381377067307E+00 + 0.7095609618044600E+00 + 0.7088842752800986E+00 + 0.7082080779431839E+00 + 0.7075323696032541E+00 + 0.7068571500698471E+00 + 0.7061824191525004E+00 + 0.7055081766607523E+00 + 0.7048344224041403E+00 + 0.7041611561922023E+00 + 0.7034883778344765E+00 + 0.7028160871405005E+00 + 0.7021442839198125E+00 + 0.7014729679819496E+00 + 0.7008021391364503E+00 + 0.7001317971928525E+00 + 0.6994619419606936E+00 + 0.6987925732495118E+00 + 0.6981236908688448E+00 + 0.6974552946282309E+00 + 0.6967873843372074E+00 + 0.6961199598053125E+00 + 0.6954530208420837E+00 + 0.6947865672570592E+00 + 0.6941205988597769E+00 + 0.6934551154597745E+00 + 0.6927901168665899E+00 + 0.6921256028897611E+00 + 0.6914615733388258E+00 + 0.6907980280233216E+00 + 0.6901349667527872E+00 + 0.6894723893367596E+00 + 0.6888102955847771E+00 + 0.6881486853063774E+00 + 0.6874875583110985E+00 + 0.6868269144084779E+00 + 0.6861667534080540E+00 + 0.6855070751193646E+00 + 0.6848478793519471E+00 + 0.6841891659153396E+00 + 0.6835309346190801E+00 + 0.6828731852727065E+00 + 0.6822159176857565E+00 + 0.6815591316677681E+00 + 0.6809028270282789E+00 + 0.6802470035768269E+00 + 0.6795916611229500E+00 + 0.6789367994761861E+00 + 0.6782824184460732E+00 + 0.6776285178421489E+00 + 0.6769750974739511E+00 + 0.6763221571510176E+00 + 0.6756696966828866E+00 + 0.6750177158790955E+00 + 0.6743662145491827E+00 + 0.6737151925026856E+00 + 0.6730646495491424E+00 + 0.6724145854980906E+00 + 0.6717650001590685E+00 + 0.6711158933416135E+00 + 0.6704672648552639E+00 + 0.6698191145095571E+00 + 0.6691714421140313E+00 + 0.6685242474782244E+00 + 0.6678775304116742E+00 + 0.6672312907239187E+00 + 0.6665855282244950E+00 + 0.6659402427229420E+00 + 0.6652954340287971E+00 + 0.6646511019515979E+00 + 0.6640072463008828E+00 + 0.6633638668861894E+00 + 0.6627209635170555E+00 + 0.6620785360030189E+00 + 0.6614365841536179E+00 + 0.6607951077783898E+00 + 0.6601541066868728E+00 + 0.6595135806886048E+00 + 0.6588735295931234E+00 + 0.6582339532099666E+00 + 0.6575948513486725E+00 + 0.6569562238187785E+00 + 0.6563180704298228E+00 + 0.6556803909913431E+00 + 0.6550431853128775E+00 + 0.6544064532039638E+00 + 0.6537701944741395E+00 + 0.6531344089329430E+00 + 0.6524990963899116E+00 + 0.6518642566545836E+00 + 0.6512298895364967E+00 + 0.6505959948451889E+00 + 0.6499625723901980E+00 + 0.6493296219810616E+00 + 0.6486971434273182E+00 + 0.6480651365385048E+00 + 0.6474336011241597E+00 + 0.6468025369938211E+00 + 0.6461719439570266E+00 + 0.6455418218233135E+00 + 0.6449121704022205E+00 + 0.6442829895032851E+00 + 0.6436542789360454E+00 + 0.6430260385100388E+00 + 0.6423982680348034E+00 + 0.6417709673198770E+00 + 0.6411441361747978E+00 + 0.6405177744091035E+00 + 0.6398918818323316E+00 + 0.6392664582540206E+00 + 0.6386415034837079E+00 + 0.6380170173309314E+00 + 0.6373929996052288E+00 + 0.6367694501161387E+00 + 0.6361463686731980E+00 + 0.6355237550859454E+00 + 0.6349016091639181E+00 + 0.6342799307166544E+00 + 0.6336587195536920E+00 + 0.6330379754845690E+00 + 0.6324176983188230E+00 + 0.6317978878659916E+00 + 0.6311785439356132E+00 + 0.6305596663372254E+00 + 0.6299412548803662E+00 + 0.6293233093745734E+00 + 0.6287058296293848E+00 + 0.6280888154543383E+00 + 0.6274722666589716E+00 + 0.6268561830528229E+00 + 0.6262405644454301E+00 + 0.6256254106463306E+00 + 0.6250107214650626E+00 + 0.6243964967111639E+00 + 0.6237827361941724E+00 + 0.6231694397236258E+00 + 0.6225566071090620E+00 + 0.6219442381600193E+00 + 0.6213323326860349E+00 + 0.6207208904966470E+00 + 0.6201099114013937E+00 + 0.6194993952098125E+00 + 0.6188893417314412E+00 + 0.6182797507758179E+00 + 0.6176706221524806E+00 + 0.6170619556709669E+00 + 0.6164537511408145E+00 + 0.6158460083715617E+00 + 0.6152387271727461E+00 + 0.6146319073539055E+00 + 0.6140255487245780E+00 + 0.6134196510943015E+00 + 0.6128142142726134E+00 + 0.6122092380690523E+00 + 0.6116047222931552E+00 + 0.6110006667544607E+00 + 0.6103970712625062E+00 + 0.6097939356268300E+00 + 0.6091912596569693E+00 + 0.6085890431624627E+00 + 0.6079872859528477E+00 + 0.6073859878376620E+00 + 0.6067851486264438E+00 + 0.6061847681287307E+00 + 0.6055848461540609E+00 + 0.6049853825119717E+00 + 0.6043863770120018E+00 + 0.6037878294636880E+00 + 0.6031897396765693E+00 + 0.6025921074601827E+00 + 0.6019949326240665E+00 + 0.6013982149777584E+00 + 0.6008019543307961E+00 + 0.6002061504927179E+00 + 0.5996108032730614E+00 + 0.5990159124813644E+00 + 0.5984214779271651E+00 + 0.5978274994200010E+00 + 0.5972339767694098E+00 + 0.5966409097849300E+00 + 0.5960482982760991E+00 + 0.5954561420524547E+00 + 0.5948644409235352E+00 + 0.5942731946988782E+00 + 0.5936824031880215E+00 + 0.5930920662005031E+00 + 0.5925021835458607E+00 + 0.5919127550336323E+00 + 0.5913237804733557E+00 + 0.5907352596745689E+00 + 0.5901471924468096E+00 + 0.5895595785996156E+00 + 0.5889724179425251E+00 + 0.5883857102850757E+00 + 0.5877994554368051E+00 + 0.5872136532072517E+00 + 0.5866283034059530E+00 + 0.5860434058424468E+00 + 0.5854589603262710E+00 + 0.5848749666669637E+00 + 0.5842914246740624E+00 + 0.5837083341571053E+00 + 0.5831256949256303E+00 + 0.5825435067891749E+00 + 0.5819617695572772E+00 + 0.5813804830394749E+00 + 0.5807996470453061E+00 + 0.5802192613843085E+00 + 0.5796393258660199E+00 + 0.5790598402999786E+00 + 0.5784808044957220E+00 + 0.5779022182627880E+00 + 0.5773240814107147E+00 + 0.5767463937490397E+00 + 0.5761691550873012E+00 + 0.5755923652350369E+00 + 0.5750160240017845E+00 + 0.5744401311970819E+00 + 0.5738646866304672E+00 + 0.5732896901114780E+00 + 0.5727151414496523E+00 + 0.5721410404545281E+00 + 0.5715673869356430E+00 + 0.5709941807025352E+00 + 0.5704214215647420E+00 + 0.5698491093318018E+00 + 0.5692772438132522E+00 + 0.5687058248186312E+00 + 0.5681348521574767E+00 + 0.5675643256393263E+00 + 0.5669942450737182E+00 + 0.5664246102701897E+00 + 0.5658554210382796E+00 + 0.5652866771875249E+00 + 0.5647183785274638E+00 + 0.5641505248676343E+00 + 0.5635831160175741E+00 + 0.5630161517868208E+00 + 0.5624496319849128E+00 + 0.5618835564213878E+00 + 0.5613179249057834E+00 + 0.5607527372476376E+00 + 0.5601879932564884E+00 + 0.5596236927418737E+00 + 0.5590598355133309E+00 + 0.5584964213803985E+00 + 0.5579334501526137E+00 + 0.5573709216395151E+00 + 0.5568088356506400E+00 + 0.5562471919955266E+00 + 0.5556859904837125E+00 + 0.5551252309247357E+00 + 0.5545649131281341E+00 + 0.5540050369034454E+00 + 0.5534456020602075E+00 + 0.5528866084079587E+00 + 0.5523280557562362E+00 + 0.5517699439145781E+00 + 0.5512122726925226E+00 + 0.5506550418996072E+00 + 0.5500982513453698E+00 + 0.5495419008393483E+00 + 0.5489859901910807E+00 + 0.5484305192101048E+00 + 0.5478754877059582E+00 + 0.5473208954881792E+00 + 0.5467667423663052E+00 + 0.5462130281498745E+00 + 0.5456597526484249E+00 + 0.5451069156714939E+00 + 0.5445545170286195E+00 + 0.5440025565293399E+00 + 0.5434510339831928E+00 + 0.5428999491997157E+00 + 0.5423493019884472E+00 + 0.5417990921589243E+00 + 0.5412493195206856E+00 + 0.5406999838832683E+00 + 0.5401510850562109E+00 + 0.5396026228490508E+00 + 0.5390545970713263E+00 + 0.5385070075325748E+00 + 0.5379598540423345E+00 + 0.5374131364101430E+00 + 0.5368668544455383E+00 + 0.5363210079580584E+00 + 0.5357755967572411E+00 + 0.5352306206526240E+00 + 0.5346860794537452E+00 + 0.5341419729701427E+00 + 0.5335983010113540E+00 + 0.5330550633869172E+00 + 0.5325122599063699E+00 + 0.5319698903792506E+00 + 0.5314279546150966E+00 + 0.5308864524234458E+00 + 0.5303453836138363E+00 + 0.5298047479958058E+00 + 0.5292645453788922E+00 + 0.5287247755726333E+00 + 0.5281854383865672E+00 + 0.5276465336302314E+00 + 0.5271080611131640E+00 + 0.5265700206449029E+00 + 0.5260324120349860E+00 + 0.5254952350929507E+00 + 0.5249584896283355E+00 + 0.5244221754506779E+00 + 0.5238862923695161E+00 + 0.5233508401943874E+00 + 0.5228158187348301E+00 + 0.5222812278003818E+00 + 0.5217470672005806E+00 + 0.5212133367449643E+00 + 0.5206800362430708E+00 + 0.5201471655044376E+00 + 0.5196147243386031E+00 + 0.5190827125551049E+00 + 0.5185511299634809E+00 + 0.5180199763732690E+00 + 0.5174892515940068E+00 + 0.5169589554352328E+00 + 0.5164290877064842E+00 + 0.5158996482172990E+00 + 0.5153706367772153E+00 + 0.5148420531957707E+00 + 0.5143138972825034E+00 + 0.5137861688469511E+00 + 0.5132588676986513E+00 + 0.5127319936471425E+00 + 0.5122055465019622E+00 + 0.5116795260726484E+00 + 0.5111539321687388E+00 + 0.5106287645997714E+00 + 0.5101040231752839E+00 + 0.5095797077048144E+00 + 0.5090558179979006E+00 + 0.5085323538640805E+00 + 0.5080093151128917E+00 + 0.5074867015538723E+00 + 0.5069645129965602E+00 + 0.5064427492504930E+00 + 0.5059214101252090E+00 + 0.5054004954302456E+00 + 0.5048800049751410E+00 + 0.5043599385694328E+00 + 0.5038402960226590E+00 + 0.5033210771443574E+00 + 0.5028022817440662E+00 + 0.5022839096313227E+00 + 0.5017659606156651E+00 + 0.5012484345066312E+00 + 0.5007313311137590E+00 + 0.5002146502465863E+00 + 0.4996983917146507E+00 + 0.4991825553274903E+00 + 0.4986671408946432E+00 + 0.4981521482256467E+00 + 0.4976375771300389E+00 + 0.4971234274173579E+00 + 0.4966096988971414E+00 + 0.4960963913789272E+00 + 0.4955835046722533E+00 + 0.4950710385866573E+00 + 0.4945589929316774E+00 + 0.4940473675168512E+00 + 0.4935361621517169E+00 + 0.4930253766458121E+00 + 0.4925150108086746E+00 + 0.4920050644498424E+00 + 0.4914955373788533E+00 + 0.4909864294052452E+00 + 0.4904777403385559E+00 + 0.4899694699883234E+00 + 0.4894616181640856E+00 + 0.4889541846753802E+00 + 0.4884471693317449E+00 + 0.4879405719427180E+00 + 0.4874343923178372E+00 + 0.4869286302666401E+00 + 0.4864232855986649E+00 + 0.4859183581234495E+00 + 0.4854138476505315E+00 + 0.4849097539894487E+00 + 0.4844060769497393E+00 + 0.4839028163409409E+00 + 0.4833999719725916E+00 + 0.4828975436542290E+00 + 0.4823955311953911E+00 + 0.4818939344056158E+00 + 0.4813927530944410E+00 + 0.4808919870714043E+00 + 0.4803916361460439E+00 + 0.4798917001278975E+00 + 0.4793921788265029E+00 + 0.4788930720513982E+00 + 0.4783943796121209E+00 + 0.4778961013182092E+00 + 0.4773982369792008E+00 + 0.4769007864046336E+00 + 0.4764037494040455E+00 + 0.4759071257869743E+00 + 0.4754109153629579E+00 + 0.4749151179415342E+00 + 0.4744197333322408E+00 + 0.4739247613446159E+00 + 0.4734302017881975E+00 + 0.4729360544725230E+00 + 0.4724423192071305E+00 + 0.4719489958015577E+00 + 0.4714560840653428E+00 + 0.4709635838080234E+00 + 0.4704714948391374E+00 + 0.4699798169682229E+00 + 0.4694885500048174E+00 + 0.4689976937584589E+00 + 0.4685072480386854E+00 + 0.4680172126550345E+00 + 0.4675275874170444E+00 + 0.4670383721342526E+00 + 0.4665495666161974E+00 + 0.4660611706724163E+00 + 0.4655731841124473E+00 + 0.4650856067458281E+00 + 0.4645984383820967E+00 + 0.4641116788307911E+00 + 0.4636253279014491E+00 + 0.4631393854036084E+00 + 0.4626538511468069E+00 + 0.4621687249405826E+00 + 0.4616840065944732E+00 + 0.4611996959180169E+00 + 0.4607157927207512E+00 + 0.4602322968122141E+00 + 0.4597492080019434E+00 + 0.4592665260994771E+00 + 0.4587842509143528E+00 + 0.4583023822561086E+00 + 0.4578209199342823E+00 + 0.4573398637584119E+00 + 0.4568592135380351E+00 + 0.4563789690826898E+00 + 0.4558991302019138E+00 + 0.4554196967052450E+00 + 0.4549406684022213E+00 + 0.4544620451023808E+00 + 0.4539838266152609E+00 + 0.4535060127503997E+00 + 0.4530286033173351E+00 + 0.4525515981256048E+00 + 0.4520749969847469E+00 + 0.4515987997042991E+00 + 0.4511230060937994E+00 + 0.4506476159627855E+00 + 0.4501726291207953E+00 + 0.4496980453773666E+00 + 0.4492238645420376E+00 + 0.4487500864243458E+00 + 0.4482767108338292E+00 + 0.4478037375800258E+00 + 0.4473311664724732E+00 + 0.4468589973207094E+00 + 0.4463872299342722E+00 + 0.4459158641226995E+00 + 0.4454448996955293E+00 + 0.4449743364622993E+00 + 0.4445041742325475E+00 + 0.4440344128158115E+00 + 0.4435650520216294E+00 + 0.4430960916595390E+00 + 0.4426275315390782E+00 + 0.4421593714697847E+00 + 0.4416916112611967E+00 + 0.4412242507228518E+00 + 0.4407572896642878E+00 + 0.4402907278950427E+00 + 0.4398245652246543E+00 + 0.4393588014626607E+00 + 0.4388934364185996E+00 + 0.4384284699020088E+00 + 0.4379639017224261E+00 + 0.4374997316893897E+00 + 0.4370359596124369E+00 + 0.4365725853011061E+00 + 0.4361096085649350E+00 + 0.4356470292134613E+00 + 0.4351848470562231E+00 + 0.4347230619027582E+00 + 0.4342616735626042E+00 + 0.4338006818452994E+00 + 0.4333400865603814E+00 + 0.4328798875173882E+00 + 0.4324200845258574E+00 + 0.4319606773953272E+00 + 0.4315016659353353E+00 + 0.4310430499554194E+00 + 0.4305848292651177E+00 + 0.4301270036739678E+00 + 0.4296695729915077E+00 + 0.4292125370272753E+00 + 0.4287558955908085E+00 + 0.4282996484916447E+00 + 0.4278437955393224E+00 + 0.4273883365433791E+00 + 0.4269332713133528E+00 + 0.4264785996587813E+00 + 0.4260243213892025E+00 + 0.4255704363141542E+00 + 0.4251169442431743E+00 + 0.4246638449858008E+00 + 0.4242111383515712E+00 + 0.4237588241500238E+00 + 0.4233069021906962E+00 + 0.4228553722831264E+00 + 0.4224042342368521E+00 + 0.4219534878614113E+00 + 0.4215031329663418E+00 + 0.4210531693611816E+00 + 0.4206035968554683E+00 + 0.4201544152587401E+00 + 0.4197056243805345E+00 + 0.4192572240303896E+00 + 0.4188092140178432E+00 + 0.4183615941524331E+00 + 0.4179143642436974E+00 + 0.4174675241011737E+00 + 0.4170210735344001E+00 + 0.4165750123529141E+00 + 0.4161293403662540E+00 + 0.4156840573839574E+00 + 0.4152391632155622E+00 + 0.4147946576706064E+00 + 0.4143505405586276E+00 + 0.4139068116891639E+00 + 0.4134634708717531E+00 + 0.4130205179159329E+00 + 0.4125779526312414E+00 + 0.4121357748272164E+00 + 0.4116939843133957E+00 + 0.4112525808993173E+00 + 0.4108115643945189E+00 + 0.4103709346085384E+00 + 0.4099306913509136E+00 + 0.4094908344311826E+00 + 0.4090513636588832E+00 + 0.4086122788435532E+00 + 0.4081735797947303E+00 + 0.4077352663219526E+00 + 0.4072973382347578E+00 + 0.4068597953426838E+00 + 0.4064226374552687E+00 + 0.4059858643820501E+00 + 0.4055494759325660E+00 + 0.4051134719163541E+00 + 0.4046778521429523E+00 + 0.4042426164218986E+00 + 0.4038077645627308E+00 + 0.4033732963749869E+00 + 0.4029392116682045E+00 + 0.4025055102519216E+00 + 0.4020721919356761E+00 + 0.4016392565290057E+00 + 0.4012067038414484E+00 + 0.4007745336825421E+00 + 0.4003427458618247E+00 + 0.3999113401888339E+00 + 0.3994803164731077E+00 + 0.3990496745241837E+00 + 0.3986194141516001E+00 + 0.3981895351648948E+00 + 0.3977600373736052E+00 + 0.3973309205872696E+00 + 0.3969021846154258E+00 + 0.3964738292676115E+00 + 0.3960458543533646E+00 + 0.3956182596822230E+00 + 0.3951910450637247E+00 + 0.3947642103074074E+00 + 0.3943377552228091E+00 + 0.3939116796194675E+00 + 0.3934859833069205E+00 + 0.3930606660947060E+00 + 0.3926357277923620E+00 + 0.3922111682094261E+00 + 0.3917869871554363E+00 + 0.3913631844399306E+00 + 0.3909397598724466E+00 + 0.3905167132625222E+00 + 0.3900940444196956E+00 + 0.3896717531535042E+00 + 0.3892498392734862E+00 + 0.3888283025891794E+00 + 0.3884071429101216E+00 + 0.3879863600458505E+00 + 0.3875659538059042E+00 + 0.3871459239998206E+00 + 0.3867262704371374E+00 + 0.3863069929273926E+00 + 0.3858880912801240E+00 + 0.3854695653048694E+00 + 0.3850514148111667E+00 + 0.3846336396085539E+00 + 0.3842162395065687E+00 + 0.3837992143147489E+00 + 0.3833825638426327E+00 + 0.3829662878997576E+00 + 0.3825503862956618E+00 + 0.3821348588398827E+00 + 0.3817197053419586E+00 + 0.3813049256114271E+00 + 0.3808905194578263E+00 + 0.3804764866906939E+00 + 0.3800628271195678E+00 + 0.3796495405539858E+00 + 0.3792366268034859E+00 + 0.3788240856776058E+00 + 0.3784119169858835E+00 + 0.3780001205378569E+00 + 0.3775886961430637E+00 + 0.3771776436110419E+00 + 0.3767669627513292E+00 + 0.3763566533734637E+00 + 0.3759467152869831E+00 + 0.3755371483014253E+00 + 0.3751279522263281E+00 + 0.3747191268712296E+00 + 0.3743106720456673E+00 + 0.3739025875591794E+00 + 0.3734948732213035E+00 + 0.3730875288415778E+00 + 0.3726805542295399E+00 + 0.3722739491947276E+00 + 0.3718677135466789E+00 + 0.3714618470949317E+00 + 0.3710563496490237E+00 + 0.3706512210184931E+00 + 0.3702464610128774E+00 + 0.3698420694417147E+00 + 0.3694380461145427E+00 + 0.3690343908408994E+00 + 0.3686311034303225E+00 + 0.3682281836923500E+00 + 0.3678256314365196E+00 + 0.3674234464723694E+00 + 0.3670216286094373E+00 + 0.3666201776572609E+00 + 0.3662190934253782E+00 + 0.3658183757233270E+00 + 0.3654180243606451E+00 + 0.3650180391468707E+00 + 0.3646184198915414E+00 + 0.3642191664041951E+00 + 0.3638202784943696E+00 + 0.3634217559716028E+00 + 0.3630235986454327E+00 + 0.3626258063253970E+00 + 0.3622283788210337E+00 + 0.3618313159418806E+00 + 0.3614346174974755E+00 + 0.3610382832973562E+00 + 0.3606423131510608E+00 + 0.3602467068681271E+00 + 0.3598514642580930E+00 + 0.3594565851304961E+00 + 0.3590620692948745E+00 + 0.3586679165607660E+00 + 0.3582741267377085E+00 + 0.3578806996352397E+00 + 0.3574876350628977E+00 + 0.3570949328302203E+00 + 0.3567025927467453E+00 + 0.3563106146220107E+00 + 0.3559189982655541E+00 + 0.3555277434869135E+00 + 0.3551368500956269E+00 + 0.3547463179012320E+00 + 0.3543561467132667E+00 + 0.3539663363412689E+00 + 0.3535768865947765E+00 + 0.3531877972833271E+00 + 0.3527990682164590E+00 + 0.3524106992037098E+00 + 0.3520226900546173E+00 + 0.3516350405787196E+00 + 0.3512477505855544E+00 + 0.3508608198846595E+00 + 0.3504742482855728E+00 + 0.3500880355978324E+00 + 0.3497021816309759E+00 + 0.3493166861945412E+00 + 0.3489315490980663E+00 + 0.3485467701510890E+00 + 0.3481623491631471E+00 + 0.3477782859437784E+00 + 0.3473945803025210E+00 + 0.3470112320489126E+00 + 0.3466282409924911E+00 + 0.3462456069427944E+00 + 0.3458633297093603E+00 + 0.3454814091017266E+00 + 0.3450998449294315E+00 + 0.3447186370020123E+00 + 0.3443377851290074E+00 + 0.3439572891199545E+00 + 0.3435771487843913E+00 + 0.3431973639318557E+00 + 0.3428179343718858E+00 + 0.3424388599140192E+00 + 0.3420601403677940E+00 + 0.3416817755427478E+00 + 0.3413037652484187E+00 + 0.3409261092943444E+00 + 0.3405488074900629E+00 + 0.3401718596451119E+00 + 0.3397952655690295E+00 + 0.3394190250713533E+00 + 0.3390431379616213E+00 + 0.3386676040493714E+00 + 0.3382924231441413E+00 + 0.3379175950554690E+00 + 0.3375431195928925E+00 + 0.3371689965659494E+00 + 0.3367952257841776E+00 + 0.3364218070571152E+00 + 0.3360487401942998E+00 + 0.3356760250052694E+00 + 0.3353036612995618E+00 + 0.3349316488867149E+00 + 0.3345599875762666E+00 + 0.3341886771777546E+00 + 0.3338177175007171E+00 + 0.3334471083546915E+00 + 0.3330768495492161E+00 + 0.3327069408938285E+00 + 0.3323373821980666E+00 + 0.3319681732714685E+00 + 0.3315993139235717E+00 + 0.3312308039639143E+00 + 0.3308626432020341E+00 + 0.3304948314474689E+00 + 0.3301273685097566E+00 + 0.3297602541984352E+00 + 0.3293934883230425E+00 + 0.3290270706931163E+00 + 0.3286610011181944E+00 + 0.3282952794078148E+00 + 0.3279299053715153E+00 + 0.3275648788188338E+00 + 0.3272001995593081E+00 + 0.3268358674024761E+00 + 0.3264718821578758E+00 + 0.3261082436350449E+00 + 0.3257449516435211E+00 + 0.3253820059928426E+00 + 0.3250194064925472E+00 + 0.3246571529521727E+00 + 0.3242952451812569E+00 + 0.3239336829893378E+00 + 0.3235724661859530E+00 + 0.3232115945806406E+00 + 0.3228510679829385E+00 + 0.3224908862023845E+00 + 0.3221310490485164E+00 + 0.3217715563308722E+00 + 0.3214124078589896E+00 + 0.3210536034424065E+00 + 0.3206951428906608E+00 + 0.3203370260132904E+00 + 0.3199792526198331E+00 + 0.3196218225198269E+00 + 0.3192647355228094E+00 + 0.3189079914383188E+00 + 0.3185515900758926E+00 + 0.3181955312450689E+00 + 0.3178398147553856E+00 + 0.3174844404163805E+00 + 0.3171294080375914E+00 + 0.3167747174285562E+00 + 0.3164203683988127E+00 + 0.3160663607578989E+00 + 0.3157126943153525E+00 + 0.3153593688807117E+00 + 0.3150063842635140E+00 + 0.3146537402732974E+00 + 0.3143014367195997E+00 + 0.3139494734119589E+00 + 0.3135978501599128E+00 + 0.3132465667729993E+00 + 0.3128956230607560E+00 + 0.3125450188327212E+00 + 0.3121947538984325E+00 + 0.3118448280674278E+00 + 0.3114952411492449E+00 + 0.3111459929534219E+00 + 0.3107970832894963E+00 + 0.3104485119670062E+00 + 0.3101002787954895E+00 + 0.3097523835844840E+00 + 0.3094048261435276E+00 + 0.3090576062821580E+00 + 0.3087107238099132E+00 + 0.3083641785363312E+00 + 0.3080179702709496E+00 + 0.3076720988233064E+00 + 0.3073265640029395E+00 + 0.3069813656193866E+00 + 0.3066365034821858E+00 + 0.3062919774008748E+00 + 0.3059477871849914E+00 + 0.3056039326440736E+00 + 0.3052604135876593E+00 + 0.3049172298252864E+00 + 0.3045743811664925E+00 + 0.3042318674208157E+00 + 0.3038896883977937E+00 + 0.3035478439069645E+00 + 0.3032063337578659E+00 + 0.3028651577600359E+00 + 0.3025243157230121E+00 + 0.3021838074563326E+00 + 0.3018436327695351E+00 + 0.3015037914721575E+00 + 0.3011642833737378E+00 + 0.3008251082838138E+00 + 0.3004862660119232E+00 + 0.3001477563676041E+00 + 0.2998095791603943E+00 + 0.2994717341998315E+00 + 0.2991342212954537E+00 + 0.2987970402567989E+00 + 0.2984601908934046E+00 + 0.2981236730148090E+00 + 0.2977874864305500E+00 + 0.2974516309501651E+00 + 0.2971161063831924E+00 + 0.2967809125391698E+00 + 0.2964460492276350E+00 + 0.2961115162581262E+00 + 0.2957773134401807E+00 + 0.2954434405833370E+00 + 0.2951098974971325E+00 + 0.2947766839911052E+00 + 0.2944437998747931E+00 + 0.2941112449577339E+00 + 0.2937790190494654E+00 + 0.2934471219595258E+00 + 0.2931155534974526E+00 + 0.2927843134727839E+00 + 0.2924534016950575E+00 + 0.2921228179738112E+00 + 0.2917925621185828E+00 + 0.2914626339389104E+00 + 0.2911330332443317E+00 + 0.2908037598443845E+00 + 0.2904748135486068E+00 + 0.2901461941665366E+00 + 0.2898179015077114E+00 + 0.2894899353816693E+00 + 0.2891622955979481E+00 + 0.2888349819660857E+00 + 0.2885079942956200E+00 + 0.2881813323960888E+00 + 0.2878549960770299E+00 + 0.2875289851479813E+00 + 0.2872032994184808E+00 + 0.2868779386980662E+00 + 0.2865529027962755E+00 + 0.2862281915226465E+00 + 0.2859038046867171E+00 + 0.2855797420980251E+00 + 0.2852560035661083E+00 + 0.2849325889005048E+00 + 0.2846094979107522E+00 + 0.2842867304063885E+00 + 0.2839642861969516E+00 + 0.2836421650919792E+00 + 0.2833203669010094E+00 + 0.2829988914335799E+00 + 0.2826777384992286E+00 + 0.2823569079074933E+00 + 0.2820363994679120E+00 + 0.2817162129900226E+00 + 0.2813963482833627E+00 + 0.2810768051574704E+00 + 0.2807575834218835E+00 + 0.2804386828861398E+00 + 0.2801201033597773E+00 + 0.2798018446523337E+00 + 0.2794839065733470E+00 + 0.2791662889323550E+00 + 0.2788489915388956E+00 + 0.2785320142025066E+00 + 0.2782153567327260E+00 + 0.2778990189390914E+00 + 0.2775830006311409E+00 + 0.2772673016184124E+00 + 0.2769519217104436E+00 + 0.2766368607167724E+00 + 0.2763221184469367E+00 + 0.2760076947104743E+00 + 0.2756935893169232E+00 + 0.2753798020758212E+00 + 0.2750663327967061E+00 + 0.2747531812891158E+00 + 0.2744403473625882E+00 + 0.2741278308266612E+00 + 0.2738156314908725E+00 + 0.2735037491647602E+00 + 0.2731921836578618E+00 + 0.2728809347797156E+00 + 0.2725700023398592E+00 + 0.2722593861478305E+00 + 0.2719490860131675E+00 + 0.2716391017454080E+00 + 0.2713294331540896E+00 + 0.2710200800487506E+00 + 0.2707110422389285E+00 + 0.2704023195341613E+00 + 0.2700939117439869E+00 + 0.2697858186779432E+00 + 0.2694780401455679E+00 + 0.2691705759563991E+00 + 0.2688634259199745E+00 + 0.2685565898458320E+00 + 0.2682500675435095E+00 + 0.2679438588225447E+00 + 0.2676379634924756E+00 + 0.2673323813628401E+00 + 0.2670271122431761E+00 + 0.2667221559430213E+00 + 0.2664175122719137E+00 + 0.2661131810393910E+00 + 0.2658091620549913E+00 + 0.2655054551282523E+00 + 0.2652020600687119E+00 + 0.2648989766859080E+00 + 0.2645962047893784E+00 + 0.2642937441886610E+00 + 0.2639915946932937E+00 + 0.2636897561128144E+00 + 0.2633882282567607E+00 + 0.2630870109346708E+00 + 0.2627861039560824E+00 + 0.2624855071305333E+00 + 0.2621852202675616E+00 + 0.2618852431767048E+00 + 0.2615855756675011E+00 + 0.2612862175494883E+00 + 0.2609871686322042E+00 + 0.2606884287251865E+00 + 0.2603899976379734E+00 + 0.2600918751801026E+00 + 0.2597940611611118E+00 + 0.2594965553905392E+00 + 0.2591993576779225E+00 + 0.2589024678327994E+00 + 0.2586058856647080E+00 + 0.2583096109831862E+00 + 0.2580136435977716E+00 + 0.2577179833180022E+00 + 0.2574226299534161E+00 + 0.2571275833135507E+00 + 0.2568328432079442E+00 + 0.2565384094461344E+00 + 0.2562442818376591E+00 + 0.2559504601920561E+00 + 0.2556569443188636E+00 + 0.2553637340276191E+00 + 0.2550708291278605E+00 + 0.2547782294291258E+00 + 0.2544859347409529E+00 + 0.2541939448728796E+00 + 0.2539022596344436E+00 + 0.2536108788351831E+00 + 0.2533198022846356E+00 + 0.2530290297923393E+00 + 0.2527385611678318E+00 + 0.2524483962206511E+00 + 0.2521585347603350E+00 + 0.2518689765964215E+00 + 0.2515797215384483E+00 + 0.2512907693959534E+00 + 0.2510021199784745E+00 + 0.2507137730955495E+00 + 0.2504257285567165E+00 + 0.2501379861715130E+00 + 0.2498505457494773E+00 + 0.2495634071001468E+00 + 0.2492765700330597E+00 + 0.2489900343577536E+00 + 0.2487037998837666E+00 + 0.2484178664206366E+00 + 0.2481322337779011E+00 + 0.2478469017650983E+00 + 0.2475618701917660E+00 + 0.2472771388674420E+00 + 0.2469927076016642E+00 + 0.2467085762039704E+00 + 0.2464247444838986E+00 + 0.2461412122509866E+00 + 0.2458579793147722E+00 + 0.2455750454847933E+00 + 0.2452924105705878E+00 + 0.2450100743816935E+00 + 0.2447280367276484E+00 + 0.2444462974179902E+00 + 0.2441648562622569E+00 + 0.2438837130699862E+00 + 0.2436028676507161E+00 + 0.2433223198139845E+00 + 0.2430420693693291E+00 + 0.2427621161262879E+00 + 0.2424824598943988E+00 + 0.2422031004831995E+00 + 0.2419240377022280E+00 + 0.2416452713610221E+00 + 0.2413668012691197E+00 + 0.2410886272360586E+00 + 0.2408107490713767E+00 + 0.2405331665846119E+00 + 0.2402558795853020E+00 + 0.2399788878829849E+00 + 0.2397021912871985E+00 + 0.2394257896074806E+00 + 0.2391496826533692E+00 + 0.2388738702344019E+00 + 0.2385983521601168E+00 + 0.2383231282400517E+00 + 0.2380481982837444E+00 + 0.2377735621007329E+00 + 0.2374992195005548E+00 + 0.2372251702927483E+00 + 0.2369514142868512E+00 + 0.2366779512924011E+00 + 0.2364047811189361E+00 + 0.2361319035759940E+00 + 0.2358593184731126E+00 + 0.2355870256198300E+00 + 0.2353150248256838E+00 + 0.2350433159002119E+00 + 0.2347718986529523E+00 + 0.2345007728934428E+00 + 0.2342299384312212E+00 + 0.2339593950758254E+00 + 0.2336891426367933E+00 + 0.2334191809236627E+00 + 0.2331495097459716E+00 + 0.2328801289132577E+00 + 0.2326110382350590E+00 + 0.2323422375209133E+00 + 0.2320737265803584E+00 + 0.2318055052229322E+00 + 0.2315375732581727E+00 + 0.2312699304956177E+00 + 0.2310025767448049E+00 + 0.2307355118152723E+00 + 0.2304687355165578E+00 + 0.2302022476581992E+00 + 0.2299360480497343E+00 + 0.2296701365007012E+00 + 0.2294045128206375E+00 + 0.2291391768190812E+00 + 0.2288741283055702E+00 + 0.2286093670896423E+00 + 0.2283448929808353E+00 + 0.2280807057886871E+00 + 0.2278168053227357E+00 + 0.2275531913925188E+00 + 0.2272898638075743E+00 + 0.2270268223774401E+00 + 0.2267640669116541E+00 + 0.2265015972197540E+00 + 0.2262394131112779E+00 + 0.2259775143957636E+00 + 0.2257159008827487E+00 + 0.2254545723817715E+00 + 0.2251935287023695E+00 + 0.2249327696540806E+00 + 0.2246722950464430E+00 + 0.2244121046889942E+00 + 0.2241521983912722E+00 + 0.2238925759628149E+00 + 0.2236332372131602E+00 + 0.2233741819518457E+00 + 0.2231154099884096E+00 + 0.2228569211323896E+00 + 0.2225987151933235E+00 + 0.2223407919807494E+00 + 0.2220831513042048E+00 + 0.2218257929732280E+00 + 0.2215687167973565E+00 + 0.2213119225861282E+00 + 0.2210554101490812E+00 + 0.2207991792957533E+00 + 0.2205432298356822E+00 + 0.2202875615784059E+00 + 0.2200321743334622E+00 + 0.2197770679103889E+00 + 0.2195222421187241E+00 + 0.2192676967680055E+00 + 0.2190134316677709E+00 + 0.2187594466275583E+00 + 0.2185057414569056E+00 + 0.2182523159653504E+00 + 0.2179991699624308E+00 + 0.2177463032576847E+00 + 0.2174937156606497E+00 + 0.2172414069808639E+00 + 0.2169893770278652E+00 + 0.2167376256111912E+00 + 0.2164861525403800E+00 + 0.2162349576249694E+00 + 0.2159840406744972E+00 + 0.2157334014985014E+00 + 0.2154830399065198E+00 + 0.2152329557080901E+00 + 0.2149831487127504E+00 + 0.2147336187300386E+00 + 0.2144843655694922E+00 + 0.2142353890406494E+00 + 0.2139866889530480E+00 + 0.2137382651162258E+00 + 0.2134901173397207E+00 + 0.2132422454330706E+00 + 0.2129946492058133E+00 + 0.2127473284674867E+00 + 0.2125002830276286E+00 + 0.2122535126957770E+00 + 0.2120070172814697E+00 + 0.2117607965942444E+00 + 0.2115148504436392E+00 + 0.2112691786391920E+00 + 0.2110237809904403E+00 + 0.2107786573069223E+00 + 0.2105338073981758E+00 + 0.2102892310737387E+00 + 0.2100449281431487E+00 + 0.2098008984159438E+00 + 0.2095571417016618E+00 + 0.2093136578098406E+00 + 0.2090704465500180E+00 + 0.2088275077317320E+00 + 0.2085848411645204E+00 + 0.2083424466579209E+00 + 0.2081003240214717E+00 + 0.2078584730647104E+00 + 0.2076168935971749E+00 + 0.2073755854284030E+00 + 0.2071345483679329E+00 + 0.2068937822253021E+00 + 0.2066532868100486E+00 + 0.2064130619317103E+00 + 0.2061731073998251E+00 + 0.2059334230239307E+00 + 0.2056940086135650E+00 + 0.2054548639782660E+00 + 0.2052159889275715E+00 + 0.2049773832710193E+00 + 0.2047390468181473E+00 + 0.2045009793784934E+00 + 0.2042631807615954E+00 + 0.2040256507769913E+00 + 0.2037883892342188E+00 + 0.2035513959428159E+00 + 0.2033146707123203E+00 + 0.2030782133522700E+00 + 0.2028420236722028E+00 + 0.2026061014816567E+00 + 0.2023704465901694E+00 + 0.2021350588072787E+00 + 0.2018999379425227E+00 + 0.2016650838054392E+00 + 0.2014304962055659E+00 + 0.2011961749524407E+00 + 0.2009621198556018E+00 + 0.2007283307245866E+00 + 0.2004948073689332E+00 + 0.2002615495981795E+00 + 0.2000285572218632E+00 + 0.1997958300495224E+00 + 0.1995633678906947E+00 + 0.1993311705549182E+00 + 0.1990992378517306E+00 + 0.1988675695906698E+00 + 0.1986361655812737E+00 + 0.1984050256330801E+00 + 0.1981741495556270E+00 + 0.1979435371584522E+00 + 0.1977131882510935E+00 + 0.1974831026430888E+00 + 0.1972532801439759E+00 + 0.1970237205632928E+00 + 0.1967944237105773E+00 + 0.1965653893953672E+00 + 0.1963366174272005E+00 + 0.1961081076156150E+00 + 0.1958798597701484E+00 + 0.1956518737003389E+00 + 0.1954241492157242E+00 + 0.1951966861258420E+00 + 0.1949694842402304E+00 + 0.1947425433684272E+00 + 0.1945158633199702E+00 + 0.1942894439043973E+00 + 0.1940632849312464E+00 + 0.1938373862100553E+00 + 0.1936117475503619E+00 + 0.1933863687617041E+00 + 0.1931612496536197E+00 + 0.1929363900356466E+00 + 0.1927117897173227E+00 + 0.1924874485081857E+00 + 0.1922633662177737E+00 + 0.1920395426556245E+00 + 0.1918159776312758E+00 + 0.1915926709542656E+00 + 0.1913696224341317E+00 + 0.1911468318804120E+00 + 0.1909242991026445E+00 + 0.1907020239103668E+00 + 0.1904800061131169E+00 + 0.1902582455204328E+00 + 0.1900367419418521E+00 + 0.1898154951869129E+00 + 0.1895945050651529E+00 + 0.1893737713861099E+00 + 0.1891532939593221E+00 + 0.1889330725943270E+00 + 0.1887131071006627E+00 + 0.1884933972878669E+00 + 0.1882739429654776E+00 + 0.1880547439430325E+00 + 0.1878358000300697E+00 + 0.1876171110361269E+00 + 0.1873986767707420E+00 + 0.1871804970434529E+00 + 0.1869625716637973E+00 + 0.1867449004413133E+00 + 0.1865274831855387E+00 + 0.1863103197060113E+00 + 0.1860934098122689E+00 + 0.1858767533138495E+00 + 0.1856603500202909E+00 + 0.1854441997411309E+00 + 0.1852283022859076E+00 + 0.1850126574641586E+00 + 0.1847972650854219E+00 + 0.1845821249592353E+00 + 0.1843672368951368E+00 + 0.1841526007026640E+00 + 0.1839382161913551E+00 + 0.1837240831707477E+00 + 0.1835102014503798E+00 + 0.1832965708397892E+00 + 0.1830831911485138E+00 + 0.1828700621860914E+00 + 0.1826571837620600E+00 + 0.1824445556859573E+00 + 0.1822321777673213E+00 + 0.1820200498156897E+00 + 0.1818081716406006E+00 + 0.1815965430515916E+00 + 0.1813851638582009E+00 + 0.1811740338699660E+00 + 0.1809631528964250E+00 + 0.1807525207471157E+00 + 0.1805421372315759E+00 + 0.1803320021593435E+00 + 0.1801221153399565E+00 + 0.1799124765829526E+00 + 0.1797030856978697E+00 + 0.1794939424942457E+00 + 0.1792850467816184E+00 + 0.1790763983695257E+00 + 0.1788679970675055E+00 + 0.1786598426850956E+00 + 0.1784519350318340E+00 + 0.1782442739172584E+00 + 0.1780368591509067E+00 + 0.1778296905423169E+00 + 0.1776227679010267E+00 + 0.1774160910365739E+00 + 0.1772096597584967E+00 + 0.1770034738763326E+00 + 0.1767975331996196E+00 + 0.1765918375378957E+00 + 0.1763863867006986E+00 + 0.1761811804975662E+00 + 0.1759762187380364E+00 + 0.1757715012316469E+00 + 0.1755670277879359E+00 + 0.1753627982164409E+00 + 0.1751588123267000E+00 + 0.1749550699282510E+00 + 0.1747515708306318E+00 + 0.1745483148433801E+00 + 0.1743453017760339E+00 + 0.1741425314381312E+00 + 0.1739400036392096E+00 + 0.1737377181888071E+00 + 0.1735356748964615E+00 + 0.1733338735717108E+00 + 0.1731323140240927E+00 + 0.1729309960631452E+00 + 0.1727299194984060E+00 + 0.1725290841394132E+00 + 0.1723284897957044E+00 + 0.1721281362768177E+00 + 0.1719280233922908E+00 + 0.1717281509516616E+00 + 0.1715285187644680E+00 + 0.1713291266402479E+00 + 0.1711299743885391E+00 + 0.1709310618188795E+00 + 0.1707323887408069E+00 + 0.1705339549638592E+00 + 0.1703357602975743E+00 + 0.1701378045514901E+00 + 0.1699400875351443E+00 + 0.1697426090580749E+00 + 0.1695453689298197E+00 + 0.1693483669599166E+00 + 0.1691516029579035E+00 + 0.1689550767333182E+00 + 0.1687587880956986E+00 + 0.1685627368545825E+00 + 0.1683669228195079E+00 + 0.1681713458000125E+00 + 0.1679760056056343E+00 + 0.1677809020459111E+00 + 0.1675860349303808E+00 + 0.1673914040685812E+00 + 0.1671970092700502E+00 + 0.1670028503443257E+00 + 0.1668089271009455E+00 + 0.1666152393494475E+00 + 0.1664217868993695E+00 + 0.1662285695602495E+00 + 0.1660355871416253E+00 + 0.1658428394530347E+00 + 0.1656503263040157E+00 + 0.1654580475041060E+00 + 0.1652660028628436E+00 + 0.1650741921897662E+00 + 0.1648826152944119E+00 + 0.1646912719863183E+00 + 0.1645001620750235E+00 + 0.1643092853700653E+00 + 0.1641186416809815E+00 + 0.1639282308173100E+00 + 0.1637380525885886E+00 + 0.1635481068043553E+00 + 0.1633583932741478E+00 + 0.1631689118075041E+00 + 0.1629796622139620E+00 + 0.1627906443030595E+00 + 0.1626018578843342E+00 + 0.1624133027673241E+00 + 0.1622249787615671E+00 + 0.1620368856766011E+00 + 0.1618490233219639E+00 + 0.1616613915071933E+00 + 0.1614739900418273E+00 + 0.1612868187354037E+00 + 0.1610998773974603E+00 + 0.1609131658375350E+00 + 0.1607266838651657E+00 + 0.1605404312898904E+00 + 0.1603544079212466E+00 + 0.1601686135687725E+00 + 0.1599830480420059E+00 + 0.1597977111504845E+00 + 0.1596126027037463E+00 + 0.1594277225113292E+00 + 0.1592430703827710E+00 + 0.1590586461276095E+00 + 0.1588744495553827E+00 + 0.1586904804756283E+00 + 0.1585067386978843E+00 + 0.1583232240316885E+00 + 0.1581399362865789E+00 + 0.1579568752720931E+00 + 0.1577740407977692E+00 + 0.1575914326731450E+00 + 0.1574090507077584E+00 + 0.1572268947111471E+00 + 0.1570449644928491E+00 + 0.1568632598624022E+00 + 0.1566817806293444E+00 + 0.1565005266032134E+00 + 0.1563194975935472E+00 + 0.1561386934098835E+00 + 0.1559581138617603E+00 + 0.1557777587587155E+00 + 0.1555976279102868E+00 + 0.1554177211260122E+00 + 0.1552380382154295E+00 + 0.1550585789880765E+00 + 0.1548793432534913E+00 + 0.1547003308212116E+00 + 0.1545215415007751E+00 + 0.1543429751017200E+00 + 0.1541646314335839E+00 + 0.1539865103059048E+00 + 0.1538086115282206E+00 + 0.1536309349100691E+00 + 0.1534534802609880E+00 + 0.1532762473905155E+00 + 0.1530992361081892E+00 + 0.1529224462235471E+00 + 0.1527458775461270E+00 + 0.1525695298854668E+00 + 0.1523934030511043E+00 + 0.1522174968525774E+00 + 0.1520418110994240E+00 + 0.1518663456011820E+00 + 0.1516911001673891E+00 + 0.1515160746075833E+00 + 0.1513412687313025E+00 + 0.1511666823480845E+00 + 0.1509923152674671E+00 + 0.1508181672989882E+00 + 0.1506442382521857E+00 + 0.1504705279365975E+00 + 0.1502970361617615E+00 + 0.1501237627372154E+00 + 0.1499507074724971E+00 + 0.1497778701771445E+00 + 0.1496052506606956E+00 + 0.1494328487326880E+00 + 0.1492606642026598E+00 + 0.1490886968801487E+00 + 0.1489169465746927E+00 + 0.1487454130958295E+00 + 0.1485740962530972E+00 + 0.1484029958560334E+00 + 0.1482321117141762E+00 + 0.1480614436370632E+00 + 0.1478909914342325E+00 + 0.1477207549152219E+00 + 0.1475507338895693E+00 + 0.1473809281668124E+00 + 0.1472113375564893E+00 + 0.1470419618681377E+00 + 0.1468728009112954E+00 + 0.1467038544955004E+00 + 0.1465351224302907E+00 + 0.1463666045252038E+00 + 0.1461983005897779E+00 + 0.1460302104335507E+00 + 0.1458623338660600E+00 + 0.1456946706968438E+00 + 0.1455272207354399E+00 + 0.1453599837913863E+00 + 0.1451929596742206E+00 + 0.1450261481934809E+00 + 0.1448595491587049E+00 + 0.1446931623794307E+00 + 0.1445269876651958E+00 + 0.1443610248255384E+00 + 0.1441952736699962E+00 + 0.1440297340081071E+00 + 0.1438644056494089E+00 + 0.1436992884034396E+00 + 0.1435343820797370E+00 + 0.1433696864878390E+00 + 0.1432052014372833E+00 + 0.1430409267376079E+00 + 0.1428768621983507E+00 + 0.1427130076290495E+00 + 0.1425493628392422E+00 + 0.1423859276384666E+00 + 0.1422227018362606E+00 + 0.1420596852421621E+00 + 0.1418968776657090E+00 + 0.1417342789164390E+00 + 0.1415718888038901E+00 + 0.1414097071376000E+00 + 0.1412477337271069E+00 + 0.1410859683819483E+00 + 0.1409244109116623E+00 + 0.1407630611257867E+00 + 0.1406019188338593E+00 + 0.1404409838454180E+00 + 0.1402802559700007E+00 + 0.1401197350171452E+00 + 0.1399594207963895E+00 + 0.1397993131172713E+00 + 0.1396394117893286E+00 + 0.1394797166220991E+00 + 0.1393202274251208E+00 + 0.1391609440079316E+00 + 0.1390018661800692E+00 + 0.1388429937510716E+00 + 0.1386843265304766E+00 + 0.1385258643278221E+00 + 0.1383676069526459E+00 + 0.1382095542144860E+00 + 0.1380517059228801E+00 + 0.1378940618873662E+00 + 0.1377366219174821E+00 + 0.1375793858227656E+00 + 0.1374223534127547E+00 + 0.1372655244969872E+00 + 0.1371088988850010E+00 + 0.1369524763863339E+00 + 0.1367962568105237E+00 + 0.1366402399671084E+00 + 0.1364844256656259E+00 + 0.1363288137156139E+00 + 0.1361734039266104E+00 + 0.1360181961081532E+00 + 0.1358631900697802E+00 + 0.1357083856210292E+00 + 0.1355537825714380E+00 + 0.1353993807305448E+00 + 0.1352451799078871E+00 + 0.1350911799130029E+00 + 0.1349373805554301E+00 + 0.1347837816447065E+00 + 0.1346303829903700E+00 + 0.1344771844019585E+00 + 0.1343241856890098E+00 + 0.1341713866610618E+00 + 0.1340187871276523E+00 + 0.1338663868983192E+00 + 0.1337141857826005E+00 + 0.1335621835900338E+00 + 0.1334103801301572E+00 + 0.1332587752125084E+00 + 0.1331073686466254E+00 + 0.1329561602420459E+00 + 0.1328051498083080E+00 + 0.1326543371549493E+00 + 0.1325037220915079E+00 + 0.1323533044275215E+00 + 0.1322030839725281E+00 + 0.1320530605360653E+00 + 0.1319032339276713E+00 + 0.1317536039568838E+00 + 0.1316041704332407E+00 + 0.1314549331662797E+00 + 0.1313058919655390E+00 + 0.1311570466405561E+00 + 0.1310083970008692E+00 + 0.1308599428560159E+00 + 0.1307116840155342E+00 + 0.1305636202889619E+00 + 0.1304157514858369E+00 + 0.1302680774156971E+00 + 0.1301205978880802E+00 + 0.1299733127125243E+00 + 0.1298262216985671E+00 + 0.1296793246557466E+00 + 0.1295326213936004E+00 + 0.1293861117216668E+00 + 0.1292397954494832E+00 + 0.1290936723865877E+00 + 0.1289477423425182E+00 + 0.1288020051268125E+00 + 0.1286564605490084E+00 + 0.1285111084186439E+00 + 0.1283659485452567E+00 + 0.1282209807383848E+00 + 0.1280762048075661E+00 + 0.1279316205623383E+00 + 0.1277872278122394E+00 + 0.1276430263668072E+00 + 0.1274990160355795E+00 + 0.1273551966280944E+00 + 0.1272115679538895E+00 + 0.1270681298225028E+00 + 0.1269248820434721E+00 + 0.1267818244263353E+00 + 0.1266389567806304E+00 + 0.1264962789158950E+00 + 0.1263537906416671E+00 + 0.1262114917674846E+00 + 0.1260693821028853E+00 + 0.1259274614574071E+00 + 0.1257857296405878E+00 + 0.1256441864619653E+00 + 0.1255028317310776E+00 + 0.1253616652574624E+00 + 0.1252206868506576E+00 + 0.1250798963202010E+00 + 0.1249392934756306E+00 + 0.1247988781264842E+00 + 0.1246586500822997E+00 + 0.1245186091526148E+00 + 0.1243787551469676E+00 + 0.1242390878748959E+00 + 0.1240996071459374E+00 + 0.1239603127696302E+00 + 0.1238212045555120E+00 + 0.1236822823131207E+00 + 0.1235435458519942E+00 + 0.1234049949816704E+00 + 0.1232666295116870E+00 + 0.1231284492515821E+00 + 0.1229904540108933E+00 + 0.1228526435991587E+00 + 0.1227150178259160E+00 + 0.1225775765007032E+00 + 0.1224403194330580E+00 + 0.1223032464325184E+00 + 0.1221663573086223E+00 + 0.1220296518709074E+00 + 0.1218931299289117E+00 + 0.1217567912921730E+00 + 0.1216206357702291E+00 + 0.1214846631726181E+00 + 0.1213488733088776E+00 + 0.1212132659885456E+00 + 0.1210778410211599E+00 + 0.1209425982162584E+00 + 0.1208075373833790E+00 + 0.1206726583320596E+00 + 0.1205379608718379E+00 + 0.1204034448122519E+00 + 0.1202691099628394E+00 + 0.1201349561331383E+00 + 0.1200009831326864E+00 + 0.1198671907710218E+00 + 0.1197335788576820E+00 + 0.1196001472022051E+00 + 0.1194668956141289E+00 + 0.1193338239029913E+00 + 0.1192009318783301E+00 + 0.1190682193496832E+00 + 0.1189356861265885E+00 + 0.1188033320185838E+00 + 0.1186711568352070E+00 + 0.1185391603859960E+00 + 0.1184073424804886E+00 + 0.1182757029282227E+00 + 0.1181442415387361E+00 + 0.1180129581215667E+00 + 0.1178818524862525E+00 + 0.1177509244423311E+00 + 0.1176201737993406E+00 + 0.1174896003668188E+00 + 0.1173592039543035E+00 + 0.1172289843713326E+00 + 0.1170989414274440E+00 + 0.1169690749321754E+00 + 0.1168393846950649E+00 + 0.1167098705256503E+00 + 0.1165805322334694E+00 + 0.1164513696280601E+00 + 0.1163223825189601E+00 + 0.1161935707157076E+00 + 0.1160649340278402E+00 + 0.1159364722648959E+00 + 0.1158081852350412E+00 + 0.1156800727077109E+00 + 0.1155521344091331E+00 + 0.1154243700876352E+00 + 0.1152967797438994E+00 + 0.1151693635278388E+00 + 0.1150421215243876E+00 + 0.1149150534980028E+00 + 0.1147881591176792E+00 + 0.1146614381504509E+00 + 0.1145348905940602E+00 + 0.1144085164780389E+00 + 0.1142823157852228E+00 + 0.1141562884412152E+00 + 0.1140304343577770E+00 + 0.1139047533248796E+00 + 0.1137792450531783E+00 + 0.1136539092998480E+00 + 0.1135287460777471E+00 + 0.1134037554846401E+00 + 0.1132789375689667E+00 + 0.1131542922504441E+00 + 0.1130298194265027E+00 + 0.1129055189279256E+00 + 0.1127813904957070E+00 + 0.1126574338762215E+00 + 0.1125336489735723E+00 + 0.1124100358048814E+00 + 0.1122865943768332E+00 + 0.1121633246191859E+00 + 0.1120402264332794E+00 + 0.1119172996983063E+00 + 0.1117945442295265E+00 + 0.1116719598323020E+00 + 0.1115495463970067E+00 + 0.1114273039399882E+00 + 0.1113052324801307E+00 + 0.1111833319177621E+00 + 0.1110616020598124E+00 + 0.1109400427197493E+00 + 0.1108186537715272E+00 + 0.1106974351138618E+00 + 0.1105763866723557E+00 + 0.1104555084588072E+00 + 0.1103348005005955E+00 + 0.1102142627071129E+00 + 0.1100938947952747E+00 + 0.1099736964737426E+00 + 0.1098536676215590E+00 + 0.1097338082652612E+00 + 0.1096141184243163E+00 + 0.1094945980288708E+00 + 0.1093752469686141E+00 + 0.1092560651236919E+00 + 0.1091370523408226E+00 + 0.1090182084594577E+00 + 0.1088995333381389E+00 + 0.1087810268697286E+00 + 0.1086626889531737E+00 + 0.1085445195400366E+00 + 0.1084265186319153E+00 + 0.1083086862177388E+00 + 0.1081910221631889E+00 + 0.1080735262722596E+00 + 0.1079561983688415E+00 + 0.1078390383579368E+00 + 0.1077220461647446E+00 + 0.1076052217141765E+00 + 0.1074885649305735E+00 + 0.1073720757359900E+00 + 0.1072557539971979E+00 + 0.1071395995232261E+00 + 0.1070236121322388E+00 + 0.1069077917548508E+00 + 0.1067921383837871E+00 + 0.1066766520035956E+00 + 0.1065613325596249E+00 + 0.1064461799860041E+00 + 0.1063311941488662E+00 + 0.1062163747653027E+00 + 0.1061017215391516E+00 + 0.1059872343685887E+00 + 0.1058729133747695E+00 + 0.1057587586713067E+00 + 0.1056447701587270E+00 + 0.1055309476078406E+00 + 0.1054172908096444E+00 + 0.1053037996641021E+00 + 0.1051904741048072E+00 + 0.1050773140631439E+00 + 0.1049643194651141E+00 + 0.1048514902343991E+00 + 0.1047388262393760E+00 + 0.1046263272786956E+00 + 0.1045139931579731E+00 + 0.1044018238226781E+00 + 0.1042898193120113E+00 + 0.1041779796330868E+00 + 0.1040663046063921E+00 + 0.1039547939885106E+00 + 0.1038434476133090E+00 + 0.1037322655226022E+00 + 0.1036212477890569E+00 + 0.1035103943163781E+00 + 0.1033997047740745E+00 + 0.1032891788347053E+00 + 0.1031788164553294E+00 + 0.1030686178027440E+00 + 0.1029585829949791E+00 + 0.1028487118192399E+00 + 0.1027390039368166E+00 + 0.1026294590925855E+00 + 0.1025200772816691E+00 + 0.1024108585446711E+00 + 0.1023018028642554E+00 + 0.1021929101347316E+00 + 0.1020841802414314E+00 + 0.1019756130446915E+00 + 0.1018672083845924E+00 + 0.1017589661060417E+00 + 0.1016508860912839E+00 + 0.1015429682383212E+00 + 0.1014352124649540E+00 + 0.1013276187545061E+00 + 0.1012201871030947E+00 + 0.1011129174478695E+00 + 0.1010058096269574E+00 + 0.1008988634690835E+00 + 0.1007920788043738E+00 + 0.1006854554642014E+00 + 0.1005789932926792E+00 + 0.1004726922322534E+00 + 0.1003665522712680E+00 + 0.1002605733874879E+00 + 0.1001547555186375E+00 + 0.1000490985928232E+00 + 0.9994360250004279E-01 + 0.9983826705974208E-01 + 0.9973309208650425E-01 + 0.9962807745637008E-01 + 0.9952322310548921E-01 + 0.9941852896915854E-01 + 0.9931399495335912E-01 + 0.9920962094895714E-01 + 0.9910540684793745E-01 + 0.9900135254740473E-01 + 0.9889745794581613E-01 + 0.9879372294683970E-01 + 0.9869014746479184E-01 + 0.9858673141444758E-01 + 0.9848347468846319E-01 + 0.9838037715573343E-01 + 0.9827743868762077E-01 + 0.9817465919133088E-01 + 0.9807203859445391E-01 + 0.9796957681761564E-01 + 0.9786727374842902E-01 + 0.9776512926508156E-01 + 0.9766314325255920E-01 + 0.9756131561120803E-01 + 0.9745964624361536E-01 + 0.9735813505658742E-01 + 0.9725678196190891E-01 + 0.9715558686987833E-01 + 0.9705454967097728E-01 + 0.9695367024327048E-01 + 0.9685294846998808E-01 + 0.9675238426174126E-01 + 0.9665197753783513E-01 + 0.9655172820575913E-01 + 0.9645163614343998E-01 + 0.9635170122486482E-01 + 0.9625192334754074E-01 + 0.9615230243947949E-01 + 0.9605283842780263E-01 + 0.9595353120235107E-01 + 0.9585438062725501E-01 + 0.9575538657371981E-01 + 0.9565654895621790E-01 + 0.9555786770452269E-01 + 0.9545934273537762E-01 + 0.9536097392933389E-01 + 0.9526276116105402E-01 + 0.9516470432142041E-01 + 0.9506680332444789E-01 + 0.9496905808501088E-01 + 0.9487146850462853E-01 + 0.9477403447469019E-01 + 0.9467675588633352E-01 + 0.9457963263069605E-01 + 0.9448266459891812E-01 + 0.9438585168741504E-01 + 0.9428919380885427E-01 + 0.9419269087877748E-01 + 0.9409634279750016E-01 + 0.9400014944144033E-01 + 0.9390411068663495E-01 + 0.9380822643804510E-01 + 0.9371249662474284E-01 + 0.9361692117065957E-01 + 0.9352149995774861E-01 + 0.9342623284970635E-01 + 0.9333111972302664E-01 + 0.9323616049831507E-01 + 0.9314135510538211E-01 + 0.9304670345458133E-01 + 0.9295220542262877E-01 + 0.9285786088406358E-01 + 0.9276366973641620E-01 + 0.9266963189827264E-01 + 0.9257574728577410E-01 + 0.9248201578921698E-01 + 0.9238843728646778E-01 + 0.9229501166135780E-01 + 0.9220173882078054E-01 + 0.9210861867709792E-01 + 0.9201565113911215E-01 + 0.9192283610883855E-01 + 0.9183017348714733E-01 + 0.9173766316601638E-01 + 0.9164530502847828E-01 + 0.9155309895908454E-01 + 0.9146104485966834E-01 + 0.9136914264123968E-01 + 0.9127739221340416E-01 + 0.9118579347943884E-01 + 0.9109434634090551E-01 + 0.9100305069373238E-01 + 0.9091190642198651E-01 + 0.9082091340870150E-01 + 0.9073007154986680E-01 + 0.9063938075578687E-01 + 0.9054884093697545E-01 + 0.9045845199851943E-01 + 0.9036821384232823E-01 + 0.9027812636742032E-01 + 0.9018818945931248E-01 + 0.9009840299956334E-01 + 0.9000876687885469E-01 + 0.8991928100911334E-01 + 0.8982994530492860E-01 + 0.8974075966896265E-01 + 0.8965172398939915E-01 + 0.8956283815453672E-01 + 0.8947410206414059E-01 + 0.8938551562537057E-01 + 0.8929707874255664E-01 + 0.8920879130443225E-01 + 0.8912065319462595E-01 + 0.8903266430833451E-01 + 0.8894482457060150E-01 + 0.8885713391047366E-01 + 0.8876959222624981E-01 + 0.8868219937520243E-01 + 0.8859495521525986E-01 + 0.8850785965095106E-01 + 0.8842091261987390E-01 + 0.8833411405368342E-01 + 0.8824746384484438E-01 + 0.8816096187151006E-01 + 0.8807460801500582E-01 + 0.8798840216579695E-01 + 0.8790234421621612E-01 + 0.8781643407123049E-01 + 0.8773067165434821E-01 + 0.8764505688845697E-01 + 0.8755958966438126E-01 + 0.8747426984792867E-01 + 0.8738909731043684E-01 + 0.8730407196408875E-01 + 0.8721919373760560E-01 + 0.8713446254898488E-01 + 0.8704987828197117E-01 + 0.8696544081367248E-01 + 0.8688115003177613E-01 + 0.8679700584105886E-01 + 0.8671300814760233E-01 + 0.8662915685307958E-01 + 0.8654545185538357E-01 + 0.8646189305269946E-01 + 0.8637848034627796E-01 + 0.8629521363874380E-01 + 0.8621209283068298E-01 + 0.8612911781544382E-01 + 0.8604628848481227E-01 + 0.8596360473397031E-01 + 0.8588106646414559E-01 + 0.8579867357716610E-01 + 0.8571642597438705E-01 + 0.8563432355671820E-01 + 0.8555236622458624E-01 + 0.8547055387454652E-01 + 0.8538888640123648E-01 + 0.8530736369885076E-01 + 0.8522598565989386E-01 + 0.8514475217649455E-01 + 0.8506366314590931E-01 + 0.8498271847546445E-01 + 0.8490191807354389E-01 + 0.8482126184572048E-01 + 0.8474074969465827E-01 + 0.8466038152153022E-01 + 0.8458015721478919E-01 + 0.8450007665593198E-01 + 0.8442013973142577E-01 + 0.8434034634987029E-01 + 0.8426069642589663E-01 + 0.8418118986657069E-01 + 0.8410182656254339E-01 + 0.8402260640253383E-01 + 0.8394352928166793E-01 + 0.8386459510235296E-01 + 0.8378580376725431E-01 + 0.8370715517759260E-01 + 0.8362864923371742E-01 + 0.8355028583536461E-01 + 0.8347206487932574E-01 + 0.8339398626148611E-01 + 0.8331604987551485E-01 + 0.8323825560976188E-01 + 0.8316060335224496E-01 + 0.8308309300700582E-01 + 0.8300572449809582E-01 + 0.8292849774814592E-01 + 0.8285141264740664E-01 + 0.8277446906463737E-01 + 0.8269766687388518E-01 + 0.8262100598016261E-01 + 0.8254448629898633E-01 + 0.8246810774163169E-01 + 0.8239187020806716E-01 + 0.8231577359634684E-01 + 0.8223981780210682E-01 + 0.8216400271766382E-01 + 0.8208832823560980E-01 + 0.8201279425567583E-01 + 0.8193740068280521E-01 + 0.8186214742021459E-01 + 0.8178703435987089E-01 + 0.8171206138950684E-01 + 0.8163722840303272E-01 + 0.8156253531262525E-01 + 0.8148798203356938E-01 + 0.8141356846729263E-01 + 0.8133929449429582E-01 + 0.8126515999445715E-01 + 0.8119116486542755E-01 + 0.8111730901912340E-01 + 0.8104359236676380E-01 + 0.8097001481206705E-01 + 0.8089657625561850E-01 + 0.8082327659493584E-01 + 0.8075011571749895E-01 + 0.8067709350880449E-01 + 0.8060420985971833E-01 + 0.8053146467003449E-01 + 0.8045885784070428E-01 + 0.8038638927849446E-01 + 0.8031405889530037E-01 + 0.8024186660054117E-01 + 0.8016981228333703E-01 + 0.8009789582342995E-01 + 0.8002611710641006E-01 + 0.7995447603942419E-01 + 0.7988297253450395E-01 + 0.7981160649992150E-01 + 0.7974037783705800E-01 + 0.7966928644621595E-01 + 0.7959833222027770E-01 + 0.7952751504493739E-01 + 0.7945683480668111E-01 + 0.7938629140135735E-01 + 0.7931588472959338E-01 + 0.7924561469390814E-01 + 0.7917548120436573E-01 + 0.7910548417288020E-01 + 0.7903562350160181E-01 + 0.7896589907292863E-01 + 0.7889631076743048E-01 + 0.7882685847999609E-01 + 0.7875754212075083E-01 + 0.7868836160020713E-01 + 0.7861931682545553E-01 + 0.7855040770165978E-01 + 0.7848163412860540E-01 + 0.7841299598178625E-01 + 0.7834449312990134E-01 + 0.7827612546031119E-01 + 0.7820789290210453E-01 + 0.7813979538922533E-01 + 0.7807183283065405E-01 + 0.7800400510619059E-01 + 0.7793631209489877E-01 + 0.7786875368597366E-01 + 0.7780132977489664E-01 + 0.7773404025926334E-01 + 0.7766688504688112E-01 + 0.7759986404876049E-01 + 0.7753297717017924E-01 + 0.7746622430222246E-01 + 0.7739960533399136E-01 + 0.7733312016118818E-01 + 0.7726676868799435E-01 + 0.7720055081858535E-01 + 0.7713446645005446E-01 + 0.7706851547465794E-01 + 0.7700269778524570E-01 + 0.7693701327854399E-01 + 0.7687146185264300E-01 + 0.7680604340977748E-01 + 0.7674075786355301E-01 + 0.7667560512911607E-01 + 0.7661058510304510E-01 + 0.7654569765569326E-01 + 0.7648094265757871E-01 + 0.7641632001018587E-01 + 0.7635182963826006E-01 + 0.7628747146324501E-01 + 0.7622324538220342E-01 + 0.7615915128272373E-01 + 0.7609518905417401E-01 + 0.7603135859141091E-01 + 0.7596765979035998E-01 + 0.7590409254857934E-01 + 0.7584065676616437E-01 + 0.7577735234351016E-01 + 0.7571417918235933E-01 + 0.7565113718556677E-01 + 0.7558822625469661E-01 + 0.7552544628196544E-01 + 0.7546279715556675E-01 + 0.7540027876910196E-01 + 0.7533789103455804E-01 + 0.7527563386764484E-01 + 0.7521350717060270E-01 + 0.7515151082261477E-01 + 0.7508964470169937E-01 + 0.7502790870717622E-01 + 0.7496630275768744E-01 + 0.7490482676903678E-01 + 0.7484348062898194E-01 + 0.7478226421192851E-01 + 0.7472117740137083E-01 + 0.7466022011541327E-01 + 0.7459939228018129E-01 + 0.7453869380619239E-01 + 0.7447812457450240E-01 + 0.7441768446348016E-01 + 0.7435737336479333E-01 + 0.7429719118336010E-01 + 0.7423713782431662E-01 + 0.7417721318963620E-01 + 0.7411741717962917E-01 + 0.7405774969349360E-01 + 0.7399821062581329E-01 + 0.7393879986996771E-01 + 0.7387951732062627E-01 + 0.7382036287514673E-01 + 0.7376133643152877E-01 + 0.7370243789609644E-01 + 0.7364366718428385E-01 + 0.7358502420913476E-01 + 0.7352650885488528E-01 + 0.7346812098906963E-01 + 0.7340986048777593E-01 + 0.7335172726812079E-01 + 0.7329372125916174E-01 + 0.7323584237460878E-01 + 0.7317809049279713E-01 + 0.7312046548771533E-01 + 0.7306296725372457E-01 + 0.7300559570968137E-01 + 0.7294835077356932E-01 + 0.7289123233670320E-01 + 0.7283424027336622E-01 + 0.7277737446419908E-01 + 0.7272063482448942E-01 + 0.7266402128076956E-01 + 0.7260753374702498E-01 + 0.7255117210519888E-01 + 0.7249493623251883E-01 + 0.7243882601926845E-01 + 0.7238284137298456E-01 + 0.7232698220151579E-01 + 0.7227124840130518E-01 + 0.7221563986077983E-01 + 0.7216015647059983E-01 + 0.7210479813541467E-01 + 0.7204956476492779E-01 + 0.7199445626695368E-01 + 0.7193947254393893E-01 + 0.7188461349725555E-01 + 0.7182987902163454E-01 + 0.7177526900215526E-01 + 0.7172078332384539E-01 + 0.7166642188238348E-01 + 0.7161218458167897E-01 + 0.7155807132537264E-01 + 0.7150408201396040E-01 + 0.7145021654667799E-01 + 0.7139647482270726E-01 + 0.7134285674107126E-01 + 0.7128936220079441E-01 + 0.7123599110302269E-01 + 0.7118274335229548E-01 + 0.7112961885276945E-01 + 0.7107661749661933E-01 + 0.7102373916584437E-01 + 0.7097098374468746E-01 + 0.7091835113614654E-01 + 0.7086584125154143E-01 + 0.7081345400035893E-01 + 0.7076118928553833E-01 + 0.7070904700851398E-01 + 0.7065702706433736E-01 + 0.7060512933681067E-01 + 0.7055335370927464E-01 + 0.7050170007900427E-01 + 0.7045016835627418E-01 + 0.7039875845126050E-01 + 0.7034747026924854E-01 + 0.7029630371312468E-01 + 0.7024525868147034E-01 + 0.7019433505615101E-01 + 0.7014353271509234E-01 + 0.7009285155229956E-01 + 0.7004229149303952E-01 + 0.6999185246489731E-01 + 0.6994153436472933E-01 + 0.6989133705790302E-01 + 0.6984126041264984E-01 + 0.6979130433695692E-01 + 0.6974146876033622E-01 + 0.6969175360401945E-01 + 0.6964215875236325E-01 + 0.6959268407978524E-01 + 0.6954332947277770E-01 + 0.6949409484376465E-01 + 0.6944498010814154E-01 + 0.6939598517020508E-01 + 0.6934710992175880E-01 + 0.6929835425394049E-01 + 0.6924971805789162E-01 + 0.6920120122475587E-01 + 0.6915280364904897E-01 + 0.6910452524160373E-01 + 0.6905636591814322E-01 + 0.6900832558329105E-01 + 0.6896040411529767E-01 + 0.6891260138925548E-01 + 0.6886491730376054E-01 + 0.6881735178647784E-01 + 0.6876990476378461E-01 + 0.6872257612521564E-01 + 0.6867536573609046E-01 + 0.6862827346865954E-01 + 0.6858129923486883E-01 + 0.6853444295997967E-01 + 0.6848770456085752E-01 + 0.6844108393223881E-01 + 0.6839458096517264E-01 + 0.6834819554687659E-01 + 0.6830192755935900E-01 + 0.6825577688601870E-01 + 0.6820974343430314E-01 + 0.6816382712904940E-01 + 0.6811802789003113E-01 + 0.6807234560416909E-01 + 0.6802678014614348E-01 + 0.6798133140058983E-01 + 0.6793599928129166E-01 + 0.6789078370703972E-01 + 0.6784568458090945E-01 + 0.6780070178247357E-01 + 0.6775583519058443E-01 + 0.6771108470301800E-01 + 0.6766645023259392E-01 + 0.6762193169110420E-01 + 0.6757752898060875E-01 + 0.6753324199914537E-01 + 0.6748907064406301E-01 + 0.6744501481051484E-01 + 0.6740107439320857E-01 + 0.6735724928681950E-01 + 0.6731353938596969E-01 + 0.6726994458537929E-01 + 0.6722646478164896E-01 + 0.6718309987302193E-01 + 0.6713984975895409E-01 + 0.6709671434765465E-01 + 0.6705369355133604E-01 + 0.6701078727655069E-01 + 0.6696799540931875E-01 + 0.6692531783110489E-01 + 0.6688275443124945E-01 + 0.6684030511338463E-01 + 0.6679796978249169E-01 + 0.6675574834010407E-01 + 0.6671364068444698E-01 + 0.6667164671393327E-01 + 0.6662976632970673E-01 + 0.6658799943429115E-01 + 0.6654634592844583E-01 + 0.6650480570578372E-01 + 0.6646337865814199E-01 + 0.6642206468039481E-01 + 0.6638086367349862E-01 + 0.6633977553913166E-01 + 0.6629880017888906E-01 + 0.6625793749427835E-01 + 0.6621718738623134E-01 + 0.6617654975019089E-01 + 0.6613602447853960E-01 + 0.6609561146484672E-01 + 0.6605531060815294E-01 + 0.6601512180903889E-01 + 0.6597504496945805E-01 + 0.6593507999440198E-01 + 0.6589522678886834E-01 + 0.6585548524565054E-01 + 0.6581585524341225E-01 + 0.6577633666260560E-01 + 0.6573692941174533E-01 + 0.6569763341658806E-01 + 0.6565844859642994E-01 + 0.6561937483701518E-01 + 0.6558041201365627E-01 + 0.6554156001226486E-01 + 0.6550281874472499E-01 + 0.6546418812653455E-01 + 0.6542566806244148E-01 + 0.6538725844351684E-01 + 0.6534895916016293E-01 + 0.6531077010547159E-01 + 0.6527269117435398E-01 + 0.6523472226252631E-01 + 0.6519686327000482E-01 + 0.6515911409829498E-01 + 0.6512147464831903E-01 + 0.6508394481941132E-01 + 0.6504652451066667E-01 + 0.6500921362244717E-01 + 0.6497201205688765E-01 + 0.6493491971585747E-01 + 0.6489793649557209E-01 + 0.6486106228804090E-01 + 0.6482429698617599E-01 + 0.6478764048913965E-01 + 0.6475109269849789E-01 + 0.6471465351588290E-01 + 0.6467832284311108E-01 + 0.6464210058196535E-01 + 0.6460598663021619E-01 + 0.6456998087945874E-01 + 0.6453408322121922E-01 + 0.6449829355452840E-01 + 0.6446261178455376E-01 + 0.6442703781502256E-01 + 0.6439157153835474E-01 + 0.6435621284215371E-01 + 0.6432096161958416E-01 + 0.6428581778251843E-01 + 0.6425078124657480E-01 + 0.6421585191417002E-01 + 0.6418102966534455E-01 + 0.6414631437896795E-01 + 0.6411170595294963E-01 + 0.6407720430230539E-01 + 0.6404280934047680E-01 + 0.6400852096381103E-01 + 0.6397433906059929E-01 + 0.6394026352169652E-01 + 0.6390629424770379E-01 + 0.6387243114148802E-01 + 0.6383867410508135E-01 + 0.6380502303895568E-01 + 0.6377147784331891E-01 + 0.6373803841628787E-01 + 0.6370470465391570E-01 + 0.6367147645156903E-01 + 0.6363835369933240E-01 + 0.6360533628454111E-01 + 0.6357242410075024E-01 + 0.6353961706747564E-01 + 0.6350691511085842E-01 + 0.6347431813855867E-01 + 0.6344182602010731E-01 + 0.6340943862142565E-01 + 0.6337715583783712E-01 + 0.6334497759653659E-01 + 0.6331290382323563E-01 + 0.6328093441296005E-01 + 0.6324906924312023E-01 + 0.6321730819494799E-01 + 0.6318565116835043E-01 + 0.6315409806863448E-01 + 0.6312264880007591E-01 + 0.6309130326459717E-01 + 0.6306006136361471E-01 + 0.6302892299276404E-01 + 0.6299788804079630E-01 + 0.6296695639749706E-01 + 0.6293612796890715E-01 + 0.6290540267134754E-01 + 0.6287478041591719E-01 + 0.6284426108590479E-01 + 0.6281384455568125E-01 + 0.6278353071357938E-01 + 0.6275331948320967E-01 + 0.6272321079301330E-01 + 0.6269320454558090E-01 + 0.6266330060967023E-01 + 0.6263349885404313E-01 + 0.6260379917704745E-01 + 0.6257420149762258E-01 + 0.6254470573120202E-01 + 0.6251531177059933E-01 + 0.6248601950054734E-01 + 0.6245682881242304E-01 + 0.6242773961624664E-01 + 0.6239875182510247E-01 + 0.6236986534336193E-01 + 0.6234108006285625E-01 + 0.6231239587458616E-01 + 0.6228381267167161E-01 + 0.6225533034885464E-01 + 0.6222694880158802E-01 + 0.6219866792964005E-01 + 0.6217048763449061E-01 + 0.6214240781716569E-01 + 0.6211442837726564E-01 + 0.6208654921412533E-01 + 0.6205877022778809E-01 + 0.6203109131941941E-01 + 0.6200351239011466E-01 + 0.6197603333805889E-01 + 0.6194865405898931E-01 + 0.6192137444785719E-01 + 0.6189419439448916E-01 + 0.6186711378646187E-01 + 0.6184013251863103E-01 + 0.6181325051108787E-01 + 0.6178646768914685E-01 + 0.6175978395829931E-01 + 0.6173319918944453E-01 + 0.6170671325128775E-01 + 0.6168032603826372E-01 + 0.6165403746858340E-01 + 0.6162784745872569E-01 + 0.6160175590387615E-01 + 0.6157576268888105E-01 + 0.6154986770344219E-01 + 0.6152407085624518E-01 + 0.6149837206048925E-01 + 0.6147277122224647E-01 + 0.6144726823387158E-01 + 0.6142186298624566E-01 + 0.6139655537226432E-01 + 0.6137134528686781E-01 + 0.6134623262545356E-01 + 0.6132121728676411E-01 + 0.6129629917133519E-01 + 0.6127147818006835E-01 + 0.6124675421536312E-01 + 0.6122212717999621E-01 + 0.6119759697247940E-01 + 0.6117316348225787E-01 + 0.6114882659805405E-01 + 0.6112458622092585E-01 + 0.6110044226568401E-01 + 0.6107639464573291E-01 + 0.6105244325245504E-01 + 0.6102858796421775E-01 + 0.6100482866426107E-01 + 0.6098116525995417E-01 + 0.6095759766585367E-01 + 0.6093412579042824E-01 + 0.6091074952782837E-01 + 0.6088746877010345E-01 + 0.6086428340776708E-01 + 0.6084119332945158E-01 + 0.6081819842546441E-01 + 0.6079529860717443E-01 + 0.6077249379965873E-01 + 0.6074978392109177E-01 + 0.6072716885155888E-01 + 0.6070464845851641E-01 + 0.6068222262230823E-01 + 0.6065989125687318E-01 + 0.6063765428120985E-01 + 0.6061551159991262E-01 + 0.6059346309818090E-01 + 0.6057150866120415E-01 + 0.6054964819242931E-01 + 0.6052788160837832E-01 + 0.6050620882157334E-01 + 0.6048462971900523E-01 + 0.6046314417825403E-01 + 0.6044175208557116E-01 + 0.6042045335231824E-01 + 0.6039924789416482E-01 + 0.6037813561597445E-01 + 0.6035711640660704E-01 + 0.6033619015424212E-01 + 0.6031535675654443E-01 + 0.6029461611864701E-01 + 0.6027396814451986E-01 + 0.6025341272903331E-01 + 0.6023294976333661E-01 + 0.6021257914072001E-01 + 0.6019230076138779E-01 + 0.6017211452693503E-01 + 0.6015202033929890E-01 + 0.6013201810097460E-01 + 0.6011210771410073E-01 + 0.6009228907349159E-01 + 0.6007256206762443E-01 + 0.6005292658709055E-01 + 0.6003338253984632E-01 + 0.6001392984170822E-01 + 0.5999456840128694E-01 + 0.5997529810129167E-01 + 0.5995611881879810E-01 + 0.5993703044505050E-01 + 0.5991803289675057E-01 + 0.5989912609220270E-01 + 0.5988030992755570E-01 + 0.5986158427790124E-01 + 0.5984294902132799E-01 + 0.5982440406812513E-01 + 0.5980594934468940E-01 + 0.5978758476922359E-01 + 0.5976931022682599E-01 + 0.5975112559443238E-01 + 0.5973303075893339E-01 + 0.5971502562695553E-01 + 0.5969711010704359E-01 + 0.5967928409762966E-01 + 0.5966154748658910E-01 + 0.5964390016292615E-01 + 0.5962634203105105E-01 + 0.5960887300387821E-01 + 0.5959149299084304E-01 + 0.5957420188555206E-01 + 0.5955699957724233E-01 + 0.5953988595870147E-01 + 0.5952286093049528E-01 + 0.5950592439426261E-01 + 0.5948907625290999E-01 + 0.5947231641079776E-01 + 0.5945564477107377E-01 + 0.5943906122299543E-01 + 0.5942256564736926E-01 + 0.5940615792957193E-01 + 0.5938983797816620E-01 + 0.5937360570884231E-01 + 0.5935746102919715E-01 + 0.5934140382720278E-01 + 0.5932543398826955E-01 + 0.5930955141067800E-01 + 0.5929375600892585E-01 + 0.5927804769696584E-01 + 0.5926242636941502E-01 + 0.5924689190793895E-01 + 0.5923144419637158E-01 + 0.5921608313182127E-01 + 0.5920080861595237E-01 + 0.5918562055292296E-01 + 0.5917051885358116E-01 + 0.5915550342959715E-01 + 0.5914057417954869E-01 + 0.5912573098387687E-01 + 0.5911097372307344E-01 + 0.5909630229702669E-01 + 0.5908171661991646E-01 + 0.5906721660383091E-01 + 0.5905280214592169E-01 + 0.5903847313765612E-01 + 0.5902422947042021E-01 + 0.5901007103539032E-01 + 0.5899599772386282E-01 + 0.5898200943624817E-01 + 0.5896810608684740E-01 + 0.5895428758982845E-01 + 0.5894055383832141E-01 + 0.5892690470841720E-01 + 0.5891334008028717E-01 + 0.5889985986562525E-01 + 0.5888646398941582E-01 + 0.5887315236798020E-01 + 0.5885992488875066E-01 + 0.5884678143322709E-01 + 0.5883372188663332E-01 + 0.5882074614044285E-01 + 0.5880785408752594E-01 + 0.5879504563578170E-01 + 0.5878232070648338E-01 + 0.5876967921784736E-01 + 0.5875712106081856E-01 + 0.5874464611362049E-01 + 0.5873225425988934E-01 + 0.5871994540351093E-01 + 0.5870771945297664E-01 + 0.5869557630994886E-01 + 0.5868351586345489E-01 + 0.5867153800169450E-01 + 0.5865964262479777E-01 + 0.5864782964455680E-01 + 0.5863609897181457E-01 + 0.5862445050490821E-01 + 0.5861288413573083E-01 + 0.5860139975612179E-01 + 0.5858999725791896E-01 + 0.5857867653300223E-01 + 0.5856743747945073E-01 + 0.5855628000800435E-01 + 0.5854520403051429E-01 + 0.5853420944744424E-01 + 0.5852329614703146E-01 + 0.5851246401818464E-01 + 0.5850171296234656E-01 + 0.5849104288808444E-01 + 0.5848045369957432E-01 + 0.5846994528049566E-01 + 0.5845951750871734E-01 + 0.5844917027476147E-01 + 0.5843890349771861E-01 + 0.5842871710010197E-01 + 0.5841861098877228E-01 + 0.5840858505212793E-01 + 0.5839863917811682E-01 + 0.5838877326151708E-01 + 0.5837898720138433E-01 + 0.5836928089535737E-01 + 0.5835965423350233E-01 + 0.5835010710349695E-01 + 0.5834063940178829E-01 + 0.5833125104674654E-01 + 0.5832194195969094E-01 + 0.5831271204567765E-01 + 0.5830356118868187E-01 + 0.5829448927164075E-01 + 0.5828549618215715E-01 + 0.5827658181104977E-01 + 0.5826774605315657E-01 + 0.5825898882586445E-01 + 0.5825031005451948E-01 + 0.5824170965022400E-01 + 0.5823318748457051E-01 + 0.5822474342288730E-01 + 0.5821637735592146E-01 + 0.5820808921065109E-01 + 0.5819987891473813E-01 + 0.5819174636529158E-01 + 0.5818369143626050E-01 + 0.5817571400570397E-01 + 0.5816781398153546E-01 + 0.5815999128338132E-01 + 0.5815224582167643E-01 + 0.5814457747847055E-01 + 0.5813698613060647E-01 + 0.5812947166970587E-01 + 0.5812203401057174E-01 + 0.5811467306904223E-01 + 0.5810738874419675E-01 + 0.5810018092115276E-01 + 0.5809304948737325E-01 + 0.5808599435010411E-01 + 0.5807901542518975E-01 + 0.5807211262163035E-01 + 0.5806528582486610E-01 + 0.5805853491540260E-01 + 0.5805185978233923E-01 + 0.5804526032962377E-01 + 0.5803873646248892E-01 + 0.5803228808243338E-01 + 0.5802591508753830E-01 + 0.5801961737613466E-01 + 0.5801339484956668E-01 + 0.5800724741062686E-01 + 0.5800117496003389E-01 + 0.5799517739056309E-01 + 0.5798925459313706E-01 + 0.5798340646323746E-01 + 0.5797763290503331E-01 + 0.5797193382332799E-01 + 0.5796630911501168E-01 + 0.5796075866901887E-01 + 0.5795528237550888E-01 + 0.5794988013885728E-01 + 0.5794455187098430E-01 + 0.5793929748075515E-01 + 0.5793411686376300E-01 + 0.5792900991207608E-01 + 0.5792397651750687E-01 + 0.5791901657132968E-01 + 0.5791412996513483E-01 + 0.5790931660114961E-01 + 0.5790457639334745E-01 + 0.5789990925425332E-01 + 0.5789531507539593E-01 + 0.5789079373601701E-01 + 0.5788634511981496E-01 + 0.5788196913231568E-01 + 0.5787766568548573E-01 + 0.5787343468846165E-01 + 0.5786927604379157E-01 + 0.5786518965283074E-01 + 0.5786117540829961E-01 + 0.5785723319244241E-01 + 0.5785336288851632E-01 + 0.5784956439885703E-01 + 0.5784583763809712E-01 + 0.5784218251768131E-01 + 0.5783859893115019E-01 + 0.5783508676616918E-01 + 0.5783164591500672E-01 + 0.5782827628180622E-01 + 0.5782497777242304E-01 + 0.5782175028546378E-01 + 0.5781859370986880E-01 + 0.5781550793491610E-01 + 0.5781249286327576E-01 + 0.5780954840711583E-01 + 0.5780667447642921E-01 + 0.5780387096720227E-01 + 0.5780113777030951E-01 + 0.5779847477771102E-01 + 0.5779588188449315E-01 + 0.5779335898631539E-01 + 0.5779090597975946E-01 + 0.5778852276275986E-01 + 0.5778620923385720E-01 + 0.5778396529919746E-01 + 0.5778179087085715E-01 + 0.5777968585808932E-01 + 0.5777765015050398E-01 + 0.5777568362976245E-01 + 0.5777378618217992E-01 + 0.5777195770893396E-01 + 0.5777019811413623E-01 + 0.5776850730110211E-01 + 0.5776688517186148E-01 + 0.5776533162792990E-01 + 0.5776384656379410E-01 + 0.5776242986791748E-01 + 0.5776108143097778E-01 + 0.5775980116145090E-01 + 0.5775858897578658E-01 + 0.5775744478255652E-01 + 0.5775636846233963E-01 + 0.5775535988973371E-01 + 0.5775441895764811E-01 + 0.5775354559156778E-01 + 0.5775273971886893E-01 + 0.5775200123661684E-01 + 0.5775133001334275E-01 + 0.5775072592006660E-01 + 0.5775018885769299E-01 + 0.5774971874192546E-01 + 0.5774931548555124E-01 + 0.5774897898945522E-01 + 0.5774870915157873E-01 + 0.5774850586813115E-01 + 0.5774836903192256E-01 + 0.5774829853558805E-01 + 0.5774829427715579E-01 + 0.5774835616023024E-01 + 0.5774848408792156E-01 + 0.5774867795629941E-01 + 0.5774893765758550E-01 + 0.5774926308497915E-01 + 0.5774965413613996E-01 + 0.5775011070997128E-01 + 0.5775063270926617E-01 + 0.5775122004525173E-01 + 0.5775187262977047E-01 + 0.5775259036035775E-01 + 0.5775337311829860E-01 + 0.5775422078557675E-01 + 0.5775513326091877E-01 + 0.5775611045313772E-01 + 0.5775715226778252E-01 + 0.5775825859376356E-01 + 0.5775942931495194E-01 + 0.5776066432676662E-01 + 0.5776196355233472E-01 + 0.5776332691810550E-01 + 0.5776475432392799E-01 + 0.5776624563645376E-01 + 0.5776780072327695E-01 + 0.5776941948857644E-01 + 0.5777110186079875E-01 + 0.5777284776259037E-01 + 0.5777465708258899E-01 + 0.5777652969790745E-01 + 0.5777846549262131E-01 + 0.5778046436934385E-01 + 0.5778252623368658E-01 + 0.5778465098911699E-01 + 0.5778683853616093E-01 + 0.5778908877484548E-01 + 0.5779140160125015E-01 + 0.5779377690857373E-01 + 0.5779621459053478E-01 + 0.5779871454441725E-01 + 0.5780127666885019E-01 + 0.5780390086552822E-01 + 0.5780658704518642E-01 + 0.5780933512000386E-01 + 0.5781214499009886E-01 + 0.5781501653738655E-01 + 0.5781794964321937E-01 + 0.5782094420404044E-01 + 0.5782400012839837E-01 + 0.5782711732285819E-01 + 0.5783029567813646E-01 + 0.5783353507833782E-01 + 0.5783683541606108E-01 + 0.5784019661184725E-01 + 0.5784361859167767E-01 + 0.5784710126098148E-01 + 0.5785064449103304E-01 + 0.5785424815119673E-01 + 0.5785791213516634E-01 + 0.5786163635808013E-01 + 0.5786542073426960E-01 + 0.5786926516627959E-01 + 0.5787316955121260E-01 + 0.5787713378592408E-01 + 0.5788115776647445E-01 + 0.5788524138872596E-01 + 0.5788938454689734E-01 + 0.5789358713219657E-01 + 0.5789784903598423E-01 + 0.5790217015992582E-01 + 0.5790655041566407E-01 + 0.5791098971364490E-01 + 0.5791548795049475E-01 + 0.5792004501579054E-01 + 0.5792466080099000E-01 + 0.5792933520543063E-01 + 0.5793406813046158E-01 + 0.5793885947859906E-01 + 0.5794370915471886E-01 + 0.5794861706349296E-01 + 0.5795358309701174E-01 + 0.5795860713398557E-01 + 0.5796368905539579E-01 + 0.5796882877059451E-01 + 0.5797402620490031E-01 + 0.5797928127671348E-01 + 0.5798459387227349E-01 + 0.5798996386875592E-01 + 0.5799539115229720E-01 + 0.5800087562905956E-01 + 0.5800641720761385E-01 + 0.5801201578705827E-01 + 0.5801767125542430E-01 + 0.5802338350146542E-01 + 0.5802915242880363E-01 + 0.5803497795028118E-01 + 0.5804085997577869E-01 + 0.5804679839951952E-01 + 0.5805279311080315E-01 + 0.5805884400205532E-01 + 0.5806495097343979E-01 + 0.5807111392634075E-01 + 0.5807733276383718E-01 + 0.5808360739118380E-01 + 0.5808993771251043E-01 + 0.5809632361601601E-01 + 0.5810276497902512E-01 + 0.5810926168468265E-01 + 0.5811581365012591E-01 + 0.5812242080436959E-01 + 0.5812908306095985E-01 + 0.5813580029098099E-01 + 0.5814257235885191E-01 + 0.5814939915495949E-01 + 0.5815628060634699E-01 + 0.5816321664072158E-01 + 0.5817020715546986E-01 + 0.5817725202521560E-01 + 0.5818435112841232E-01 + 0.5819150437112452E-01 + 0.5819871167013702E-01 + 0.5820597293587523E-01 + 0.5821328805932136E-01 + 0.5822065692788039E-01 + 0.5822807943568669E-01 + 0.5823555548732719E-01 + 0.5824308498782851E-01 + 0.5825066783452454E-01 + 0.5825830391840135E-01 + 0.5826599313133656E-01 + 0.5827373537283679E-01 + 0.5828153054569074E-01 + 0.5828937855176736E-01 + 0.5829727928977669E-01 + 0.5830523265779099E-01 + 0.5831323855631556E-01 + 0.5832129689001820E-01 + 0.5832940756336940E-01 + 0.5833757046909821E-01 + 0.5834578548928924E-01 + 0.5835405250794929E-01 + 0.5836237142736179E-01 + 0.5837074215850610E-01 + 0.5837916461095758E-01 + 0.5838763868879618E-01 + 0.5839616429473304E-01 + 0.5840474132345587E-01 + 0.5841336965451659E-01 + 0.5842204916685635E-01 + 0.5843077976378684E-01 + 0.5843956137288771E-01 + 0.5844839391842925E-01 + 0.5845727728581571E-01 + 0.5846621134003058E-01 + 0.5847519595566238E-01 + 0.5848423104841588E-01 + 0.5849331654471632E-01 + 0.5850245235900977E-01 + 0.5851163838078996E-01 + 0.5852087449665361E-01 + 0.5853016059918586E-01 + 0.5853949658752185E-01 + 0.5854888236040971E-01 + 0.5855831780933518E-01 + 0.5856780282157602E-01 + 0.5857733728944722E-01 + 0.5858692112908521E-01 + 0.5859655426354009E-01 + 0.5860623660331557E-01 + 0.5861596803001517E-01 + 0.5862574842161166E-01 + 0.5863557766999642E-01 + 0.5864545568378659E-01 + 0.5865538237130593E-01 + 0.5866535762616180E-01 + 0.5867538133256851E-01 + 0.5868545337983671E-01 + 0.5869557368467082E-01 + 0.5870574217265108E-01 + 0.5871595875546140E-01 + 0.5872622330932463E-01 + 0.5873653570525183E-01 + 0.5874689582881377E-01 + 0.5875730358481077E-01 + 0.5876775887930962E-01 + 0.5877826161771107E-01 + 0.5878881170494807E-01 + 0.5879940904570651E-01 + 0.5881005354328948E-01 + 0.5882074510049558E-01 + 0.5883148361575731E-01 + 0.5884226897515389E-01 + 0.5885310106275153E-01 + 0.5886397977056409E-01 + 0.5887490500214929E-01 + 0.5888587666175091E-01 + 0.5889689465028186E-01 + 0.5890795886608244E-01 + 0.5891906920784187E-01 + 0.5893022557695713E-01 + 0.5894142787590875E-01 + 0.5895267600494293E-01 + 0.5896396985727158E-01 + 0.5897530932478235E-01 + 0.5898669430292611E-01 + 0.5899812469285034E-01 + 0.5900960039621096E-01 + 0.5902112131462232E-01 + 0.5903268734966342E-01 + 0.5904429840208959E-01 + 0.5905595436665047E-01 + 0.5906765513543258E-01 + 0.5907940060232041E-01 + 0.5909119066752995E-01 + 0.5910302523266063E-01 + 0.5911490419930248E-01 + 0.5912682746902885E-01 + 0.5913879494318199E-01 + 0.5915080651843753E-01 + 0.5916286208711972E-01 + 0.5917496154207411E-01 + 0.5918710478178749E-01 + 0.5919929170751201E-01 + 0.5921152222078073E-01 + 0.5922379622414683E-01 + 0.5923611362037229E-01 + 0.5924847430742015E-01 + 0.5926087817392917E-01 + 0.5927332510807398E-01 + 0.5928581501262934E-01 + 0.5929834780532286E-01 + 0.5931092340122976E-01 + 0.5932354168461060E-01 + 0.5933620252305181E-01 + 0.5934890579300224E-01 + 0.5936165141007956E-01 + 0.5937443930045595E-01 + 0.5938726937822087E-01 + 0.5940014153153033E-01 + 0.5941305564551812E-01 + 0.5942601161488286E-01 + 0.5943900934508370E-01 + 0.5945204874131511E-01 + 0.5946512969999604E-01 + 0.5947825211231065E-01 + 0.5949141587072619E-01 + 0.5950462087425283E-01 + 0.5951786702387961E-01 + 0.5953115422167094E-01 + 0.5954448237224340E-01 + 0.5955785138026711E-01 + 0.5957126113935978E-01 + 0.5958471152947760E-01 + 0.5959820243175990E-01 + 0.5961173375152493E-01 + 0.5962530540997362E-01 + 0.5963891732501123E-01 + 0.5965256939526949E-01 + 0.5966626151290615E-01 + 0.5967999356741577E-01 + 0.5969376544129870E-01 + 0.5970757701632983E-01 + 0.5972142819200411E-01 + 0.5973531889189392E-01 + 0.5974924903924144E-01 + 0.5976321852934166E-01 + 0.5977722723729249E-01 + 0.5979127504252815E-01 + 0.5980536185330710E-01 + 0.5981948758861990E-01 + 0.5983365215823695E-01 + 0.5984785544495233E-01 + 0.5986209732690223E-01 + 0.5987637769527842E-01 + 0.5989069646078594E-01 + 0.5990505353536106E-01 + 0.5991944882519964E-01 + 0.5993388223193671E-01 + 0.5994835365520109E-01 + 0.5996286298194880E-01 + 0.5997741009390369E-01 + 0.5999199487947657E-01 + 0.6000661724883547E-01 + 0.6002127711642467E-01 + 0.6003597438745839E-01 + 0.6005070895196231E-01 + 0.6006548069893494E-01 + 0.6008028952445073E-01 + 0.6009513533076159E-01 + 0.6011001802025518E-01 + 0.6012493749477694E-01 + 0.6013989365592441E-01 + 0.6015488640337832E-01 + 0.6016991562990008E-01 + 0.6018498122673739E-01 + 0.6020008308974091E-01 + 0.6021522112310951E-01 + 0.6023039523154434E-01 + 0.6024560531164798E-01 + 0.6026085125225647E-01 + 0.6027613294361257E-01 + 0.6029145029057831E-01 + 0.6030680320539844E-01 + 0.6032219159682567E-01 + 0.6033761535933443E-01 + 0.6035307438381953E-01 + 0.6036856856263958E-01 + 0.6038409779108283E-01 + 0.6039966196483089E-01 + 0.6041526098068738E-01 + 0.6043089473663780E-01 + 0.6044656313161116E-01 + 0.6046226607305134E-01 + 0.6047800347314677E-01 + 0.6049377523959144E-01 + 0.6050958125970452E-01 + 0.6052542141513055E-01 + 0.6054129559394762E-01 + 0.6055720369846439E-01 + 0.6057314563285733E-01 + 0.6058912130013030E-01 + 0.6060513060193036E-01 + 0.6062117343918417E-01 + 0.6063724970580489E-01 + 0.6065335929139895E-01 + 0.6066950208844716E-01 + 0.6068567800410345E-01 + 0.6070188695007941E-01 + 0.6071812883296297E-01 + 0.6073440354679512E-01 + 0.6075071098372058E-01 + 0.6076705103544906E-01 + 0.6078342359313714E-01 + 0.6079982854898679E-01 + 0.6081626580860259E-01 + 0.6083273528664916E-01 + 0.6084923689364937E-01 + 0.6086577051608856E-01 + 0.6088233603214035E-01 + 0.6089893332891504E-01 + 0.6091556231779816E-01 + 0.6093222291402317E-01 + 0.6094891502218105E-01 + 0.6096563853198487E-01 + 0.6098239333253881E-01 + 0.6099917932003628E-01 + 0.6101599639594166E-01 + 0.6103284446220724E-01 + 0.6104972342304355E-01 + 0.6106663318352531E-01 + 0.6108357364284465E-01 + 0.6110054468246156E-01 + 0.6111754618080796E-01 + 0.6113457803387242E-01 + 0.6115164016464847E-01 + 0.6116873249690885E-01 + 0.6118585492950142E-01 + 0.6120300734090338E-01 + 0.6122018961157054E-01 + 0.6123740163991993E-01 + 0.6125464333201618E-01 + 0.6127191459230902E-01 + 0.6128921531974213E-01 + 0.6130654541212967E-01 + 0.6132390476902495E-01 + 0.6134129329292732E-01 + 0.6135871088631290E-01 + 0.6137615744577051E-01 + 0.6139363286260265E-01 + 0.6141113702897046E-01 + 0.6142866984522559E-01 + 0.6144623121557712E-01 + 0.6146382104207310E-01 + 0.6148143921861554E-01 + 0.6149908563722944E-01 + 0.6151676019228565E-01 + 0.6153446278253654E-01 + 0.6155219330746973E-01 + 0.6156995167230470E-01 + 0.6158773778791444E-01 + 0.6160555156359793E-01 + 0.6162339289267093E-01 + 0.6164126166013522E-01 + 0.6165915775206655E-01 + 0.6167708105929988E-01 + 0.6169503147395814E-01 + 0.6171300889604542E-01 + 0.6173101324181629E-01 + 0.6174904442908003E-01 + 0.6176710236360448E-01 + 0.6178518693811190E-01 + 0.6180329804424602E-01 + 0.6182143556940591E-01 + 0.6183959939855535E-01 + 0.6185778942038327E-01 + 0.6187600554095889E-01 + 0.6189424767136377E-01 + 0.6191251571940182E-01 + 0.6193080958540367E-01 + 0.6194912916856163E-01 + 0.6196747436478368E-01 + 0.6198584506606887E-01 + 0.6200424116486919E-01 + 0.6202266256133760E-01 + 0.6204110916049448E-01 + 0.6205958086523670E-01 + 0.6207807756710473E-01 + 0.6209659915400275E-01 + 0.6211514552071023E-01 + 0.6213371657936701E-01 + 0.6215231224446022E-01 + 0.6217093241666165E-01 + 0.6218957697857208E-01 + 0.6220824581248969E-01 + 0.6222693881255625E-01 + 0.6224565588115191E-01 + 0.6226439692149564E-01 + 0.6228316184067806E-01 + 0.6230195054716862E-01 + 0.6232076294563370E-01 + 0.6233959893008635E-01 + 0.6235845839270641E-01 + 0.6237734122652413E-01 + 0.6239624732579276E-01 + 0.6241517658513632E-01 + 0.6243412890326758E-01 + 0.6245310418202696E-01 + 0.6247210232294393E-01 + 0.6249112322503456E-01 + 0.6251016678631939E-01 + 0.6252923290652173E-01 + 0.6254832149066890E-01 + 0.6256743244465421E-01 + 0.6258656566405642E-01 + 0.6260572102812551E-01 + 0.6262489841611503E-01 + 0.6264409773212147E-01 + 0.6266331890112626E-01 + 0.6268256184448071E-01 + 0.6270182645265246E-01 + 0.6272111260255432E-01 + 0.6274042017737827E-01 + 0.6275974908224331E-01 + 0.6277909922690210E-01 + 0.6279847051220255E-01 + 0.6281786282346273E-01 + 0.6283727604550577E-01 + 0.6285671008448222E-01 + 0.6287616486623968E-01 + 0.6289564031281056E-01 + 0.6291513630930835E-01 + 0.6293465272293100E-01 + 0.6295418942981446E-01 + 0.6297374634098794E-01 + 0.6299332337578632E-01 + 0.6301292044223733E-01 + 0.6303253742661843E-01 + 0.6305217421340235E-01 + 0.6307183070276352E-01 + 0.6309150681080457E-01 + 0.6311120245173509E-01 + 0.6313091751597456E-01 + 0.6315065188119737E-01 + 0.6317040543090503E-01 + 0.6319017807412886E-01 + 0.6320996972669937E-01 + 0.6322978029611802E-01 + 0.6324960967219063E-01 + 0.6326945774274794E-01 + 0.6328932440371715E-01 + 0.6330920956004738E-01 + 0.6332911311632721E-01 + 0.6334903496852601E-01 + 0.6336897500752224E-01 + 0.6338893312579115E-01 + 0.6340890922376079E-01 + 0.6342890320422931E-01 + 0.6344891496869892E-01 + 0.6346894441562535E-01 + 0.6348899144311706E-01 + 0.6350905595235268E-01 + 0.6352913784826953E-01 + 0.6354923703487486E-01 + 0.6356935340254541E-01 + 0.6358948683279114E-01 + 0.6360963721078852E-01 + 0.6362980444207526E-01 + 0.6364998843894279E-01 + 0.6367018911014268E-01 + 0.6369040635519928E-01 + 0.6371064007213057E-01 + 0.6373089015795315E-01 + 0.6375115650833583E-01 + 0.6377143901866979E-01 + 0.6379173758188914E-01 + 0.6381205208916941E-01 + 0.6383238243385594E-01 + 0.6385272852244422E-01 + 0.6387309026627401E-01 + 0.6389346757231897E-01 + 0.6391386033491722E-01 + 0.6393426844613696E-01 + 0.6395469179796020E-01 + 0.6397513028224140E-01 + 0.6399558379152147E-01 + 0.6401605222911881E-01 + 0.6403653550683277E-01 + 0.6405703353444299E-01 + 0.6407754620674712E-01 + 0.6409807341242026E-01 + 0.6411861504344991E-01 + 0.6413917100251769E-01 + 0.6415974119438105E-01 + 0.6418032551924124E-01 + 0.6420092386987552E-01 + 0.6422153613855488E-01 + 0.6424216222072127E-01 + 0.6426280201455846E-01 + 0.6428345541973776E-01 + 0.6430412234636782E-01 + 0.6432480270927854E-01 + 0.6434549641514378E-01 + 0.6436620334141332E-01 + 0.6438692335917441E-01 + 0.6440765635449742E-01 + 0.6442840224035784E-01 + 0.6444916093204034E-01 + 0.6446993233440391E-01 + 0.6449071634240431E-01 + 0.6451151285144510E-01 + 0.6453232176398194E-01 + 0.6455314298599600E-01 + 0.6457397641938068E-01 + 0.6459482194965861E-01 + 0.6461567945835140E-01 + 0.6463654883618024E-01 + 0.6465742999209402E-01 + 0.6467832283703039E-01 + 0.6469922727803037E-01 + 0.6472014321806957E-01 + 0.6474107055834844E-01 + 0.6476200918504902E-01 + 0.6478295897606779E-01 + 0.6480391981688161E-01 + 0.6482489162695648E-01 + 0.6484587433507805E-01 + 0.6486686785136674E-01 + 0.6488787204507886E-01 + 0.6490888678105142E-01 + 0.6492991195365157E-01 + 0.6495094749109054E-01 + 0.6497199332033341E-01 + 0.6499304933499911E-01 + 0.6501411540843072E-01 + 0.6503519142005533E-01 + 0.6505627728077551E-01 + 0.6507737291115832E-01 + 0.6509847821922888E-01 + 0.6511959308262005E-01 + 0.6514071737511197E-01 + 0.6516185099443517E-01 + 0.6518299386848216E-01 + 0.6520414592405387E-01 + 0.6522530705108456E-01 + 0.6524647711482860E-01 + 0.6526765598728916E-01 + 0.6528884358016769E-01 + 0.6531003981875551E-01 + 0.6533124462008039E-01 + 0.6535245787894666E-01 + 0.6537367948638357E-01 + 0.6539490932967103E-01 + 0.6541614729089789E-01 + 0.6543739325346389E-01 + 0.6545864712447152E-01 + 0.6547990882847753E-01 + 0.6550117828525325E-01 + 0.6552245538260517E-01 + 0.6554373999618935E-01 + 0.6556503201041703E-01 + 0.6558633133587172E-01 + 0.6560763788783435E-01 + 0.6562895157251411E-01 + 0.6565027228230208E-01 + 0.6567159990842479E-01 + 0.6569293434204752E-01 + 0.6571427547428590E-01 + 0.6573562319853719E-01 + 0.6575697742393450E-01 + 0.6577833806624066E-01 + 0.6579970503295528E-01 + 0.6582107820411047E-01 + 0.6584245745431363E-01 + 0.6586384267759588E-01 + 0.6588523380056842E-01 + 0.6590663075118163E-01 + 0.6592803342405254E-01 + 0.6594944168415182E-01 + 0.6597085540066950E-01 + 0.6599227448342239E-01 + 0.6601369886116725E-01 + 0.6603512845354992E-01 + 0.6605656314620612E-01 + 0.6607800281700936E-01 + 0.6609944735203097E-01 + 0.6612089665250110E-01 + 0.6614235062146332E-01 + 0.6616380916579122E-01 + 0.6618527219610037E-01 + 0.6620673962118591E-01 + 0.6622821133263861E-01 + 0.6624968721318956E-01 + 0.6627116714855294E-01 + 0.6629265103700483E-01 + 0.6631413878006876E-01 + 0.6633563028226241E-01 + 0.6635712545421496E-01 + 0.6637862420677618E-01 + 0.6640012643704264E-01 + 0.6642163202735273E-01 + 0.6644314086074234E-01 + 0.6646465283424853E-01 + 0.6648616785286193E-01 + 0.6650768582065170E-01 + 0.6652920663704833E-01 + 0.6655073020016094E-01 + 0.6657225640934357E-01 + 0.6659378516675956E-01 + 0.6661531637480696E-01 + 0.6663684993114315E-01 + 0.6665838572783690E-01 + 0.6667992365716506E-01 + 0.6670146361731075E-01 + 0.6672300551015367E-01 + 0.6674454923745098E-01 + 0.6676609470004509E-01 + 0.6678764179848409E-01 + 0.6680919043211944E-01 + 0.6683074049731355E-01 + 0.6685229188987742E-01 + 0.6687384450205297E-01 + 0.6689539822145834E-01 + 0.6691695293712506E-01 + 0.6693850855999290E-01 + 0.6696006501609359E-01 + 0.6698162222466739E-01 + 0.6700318006456490E-01 + 0.6702473840037571E-01 + 0.6704629711203387E-01 + 0.6706785612202784E-01 + 0.6708941535969744E-01 + 0.6711097473231962E-01 + 0.6713253411574181E-01 + 0.6715409338511009E-01 + 0.6717565244044668E-01 + 0.6719721120061956E-01 + 0.6721876958075940E-01 + 0.6724032746922166E-01 + 0.6726188474386295E-01 + 0.6728344128989178E-01 + 0.6730499701521477E-01 + 0.6732655183202763E-01 + 0.6734810564866498E-01 + 0.6736965836740866E-01 + 0.6739120988936397E-01 + 0.6741276010469353E-01 + 0.6743430889444877E-01 + 0.6745585614271934E-01 + 0.6747740175724660E-01 + 0.6749894565604580E-01 + 0.6752048774893793E-01 + 0.6754202791755615E-01 + 0.6756356603770462E-01 + 0.6758510200127121E-01 + 0.6760663572791716E-01 + 0.6762816713928443E-01 + 0.6764969614175470E-01 + 0.6767122262775015E-01 + 0.6769274648836516E-01 + 0.6771426760817643E-01 + 0.6773578586862966E-01 + 0.6775730115882213E-01 + 0.6777881339708509E-01 + 0.6780032250856895E-01 + 0.6782182840220536E-01 + 0.6784333095603968E-01 + 0.6786483004557376E-01 + 0.6788632556768102E-01 + 0.6790781744070849E-01 + 0.6792930558109016E-01 + 0.6795078987949498E-01 + 0.6797227021292613E-01 + 0.6799374646441838E-01 + 0.6801521854314324E-01 + 0.6803668636515436E-01 + 0.6805814983797386E-01 + 0.6807960885118149E-01 + 0.6810106329239978E-01 + 0.6812251305781103E-01 + 0.6814395805304514E-01 + 0.6816539818318461E-01 + 0.6818683334274772E-01 + 0.6820826342007424E-01 + 0.6822968830680008E-01 + 0.6825110791052031E-01 + 0.6827252214352159E-01 + 0.6829393091229894E-01 + 0.6831533410987573E-01 + 0.6833673162741101E-01 + 0.6835812335761973E-01 + 0.6837950919510378E-01 + 0.6840088903491447E-01 + 0.6842226277600066E-01 + 0.6844363031982193E-01 + 0.6846499156760777E-01 + 0.6848634641915331E-01 + 0.6850769477378371E-01 + 0.6852903653130632E-01 + 0.6855037159277146E-01 + 0.6857169985937230E-01 + 0.6859302123004913E-01 + 0.6861433560073972E-01 + 0.6863564286682039E-01 + 0.6865694291898821E-01 + 0.6867823564462333E-01 + 0.6869952093537139E-01 + 0.6872079870841031E-01 + 0.6874206889021739E-01 + 0.6876333139293495E-01 + 0.6878458608769209E-01 + 0.6880583283884557E-01 + 0.6882707153711348E-01 + 0.6884830211185472E-01 + 0.6886952449308494E-01 + 0.6889073857391546E-01 + 0.6891194421869563E-01 + 0.6893314129724928E-01 + 0.6895432972046407E-01 + 0.6897550941583452E-01 + 0.6899668030171924E-01 + 0.6901784226731098E-01 + 0.6903899519616957E-01 + 0.6906013898153175E-01 + 0.6908127353224860E-01 + 0.6910239875757634E-01 + 0.6912351454888393E-01 + 0.6914462078222060E-01 + 0.6916571733782853E-01 + 0.6918680413055844E-01 + 0.6920788109075698E-01 + 0.6922894813558328E-01 + 0.6925000513533279E-01 + 0.6927105195026915E-01 + 0.6929208846897778E-01 + 0.6931311463039855E-01 + 0.6933413037639093E-01 + 0.6935513560200818E-01 + 0.6937613015826570E-01 + 0.6939711390154804E-01 + 0.6941808674699455E-01 + 0.6943904863882264E-01 + 0.6945999950694591E-01 + 0.6948093922416296E-01 + 0.6950186764941222E-01 + 0.6952278466545301E-01 + 0.6954369020176914E-01 + 0.6956458419180813E-01 + 0.6958546653313109E-01 + 0.6960633708621353E-01 + 0.6962719571533448E-01 + 0.6964804233637655E-01 + 0.6966887689340910E-01 + 0.6968969931639467E-01 + 0.6971050947219003E-01 + 0.6973130721050655E-01 + 0.6975209240813449E-01 + 0.6977286500054568E-01 + 0.6979362492966979E-01 + 0.6981437210177087E-01 + 0.6983510638262633E-01 + 0.6985582763877090E-01 + 0.6987653576797354E-01 + 0.6989723068680904E-01 + 0.6991791230951588E-01 + 0.6993858053765467E-01 + 0.6995923526891513E-01 + 0.6997987639958561E-01 + 0.7000050382259677E-01 + 0.7002111743052502E-01 + 0.7004171712087172E-01 + 0.7006230279728111E-01 + 0.7008287436319190E-01 + 0.7010343171490594E-01 + 0.7012397474399386E-01 + 0.7014450334314825E-01 + 0.7016501741163873E-01 + 0.7018551685096526E-01 + 0.7020600156288646E-01 + 0.7022647144984344E-01 + 0.7024692641425987E-01 + 0.7026736635285453E-01 + 0.7028779115452389E-01 + 0.7030820070868392E-01 + 0.7032859491974918E-01 + 0.7034897370307264E-01 + 0.7036933697023551E-01 + 0.7038968460834348E-01 + 0.7041001649529790E-01 + 0.7043033251742495E-01 + 0.7045063258594920E-01 + 0.7047091661647262E-01 + 0.7049118451395062E-01 + 0.7051143616727929E-01 + 0.7053167146461808E-01 + 0.7055189030358910E-01 + 0.7057209258940091E-01 + 0.7059227822610361E-01 + 0.7061244710839977E-01 + 0.7063259912709414E-01 + 0.7065273417542218E-01 + 0.7067285215463236E-01 + 0.7069295296758771E-01 + 0.7071303651531895E-01 + 0.7073310269581318E-01 + 0.7075315140700864E-01 + 0.7077318255124819E-01 + 0.7079319603475486E-01 + 0.7081319176146961E-01 + 0.7083316961687645E-01 + 0.7085312947794248E-01 + 0.7087307123106430E-01 + 0.7089299479722016E-01 + 0.7091290010506151E-01 + 0.7093278706214148E-01 + 0.7095265553738710E-01 + 0.7097250539697861E-01 + 0.7099233653703174E-01 + 0.7101214888262964E-01 + 0.7103194235726228E-01 + 0.7105171686051746E-01 + 0.7107147227979733E-01 + 0.7109120850383044E-01 + 0.7111092542713204E-01 + 0.7113062294569693E-01 + 0.7115030095681676E-01 + 0.7116995936040349E-01 + 0.7118959805673754E-01 + 0.7120921694745547E-01 + 0.7122881593563545E-01 + 0.7124839492344447E-01 + 0.7126795380352467E-01 + 0.7128749246316092E-01 + 0.7130701079430658E-01 + 0.7132650871032881E-01 + 0.7134598613058003E-01 + 0.7136544295866797E-01 + 0.7138487906303741E-01 + 0.7140429430846118E-01 + 0.7142368859347227E-01 + 0.7144306185602227E-01 + 0.7146241403213152E-01 + 0.7148174501197614E-01 + 0.7150105465731959E-01 + 0.7152034283833265E-01 + 0.7153960946976882E-01 + 0.7155885448038298E-01 + 0.7157807778643442E-01 + 0.7159727927327786E-01 + 0.7161645882169500E-01 + 0.7163561631697877E-01 + 0.7165475165021030E-01 + 0.7167386471435400E-01 + 0.7169295542125196E-01 + 0.7171202369562475E-01 + 0.7173106945557151E-01 + 0.7175009258049181E-01 + 0.7176909293626689E-01 + 0.7178807040305475E-01 + 0.7180702490018632E-01 + 0.7182595635332235E-01 + 0.7184486467292577E-01 + 0.7186374974801869E-01 + 0.7188261146632563E-01 + 0.7190144972017897E-01 + 0.7192026440536838E-01 + 0.7193905541824997E-01 + 0.7195782265821801E-01 + 0.7197656602584621E-01 + 0.7199528542198991E-01 + 0.7201398074835429E-01 + 0.7203265190674503E-01 + 0.7205129879531860E-01 + 0.7206992130656651E-01 + 0.7208851933279396E-01 + 0.7210709277132993E-01 + 0.7212564152364652E-01 + 0.7214416549134515E-01 + 0.7216266457606643E-01 + 0.7218113867946761E-01 + 0.7219958770127716E-01 + 0.7221801153469371E-01 + 0.7223641007158212E-01 + 0.7225478320751911E-01 + 0.7227313084442778E-01 + 0.7229145288473635E-01 + 0.7230974922861323E-01 + 0.7232801977417925E-01 + 0.7234626442005326E-01 + 0.7236448306938148E-01 + 0.7238267562746280E-01 + 0.7240084199526736E-01 + 0.7241898205739956E-01 + 0.7243709569470854E-01 + 0.7245518279895001E-01 + 0.7247324328244287E-01 + 0.7249127705925522E-01 + 0.7250928403138897E-01 + 0.7252726408883722E-01 + 0.7254521712172446E-01 + 0.7256314302596126E-01 + 0.7258104170049653E-01 + 0.7259891304679632E-01 + 0.7261675697678251E-01 + 0.7263457340503791E-01 + 0.7265236223309552E-01 + 0.7267012333532222E-01 + 0.7268785658344829E-01 + 0.7270556186969962E-01 + 0.7272323910870743E-01 + 0.7274088821499224E-01 + 0.7275850909049215E-01 + 0.7277610162985887E-01 + 0.7279366572928200E-01 + 0.7281120129256223E-01 + 0.7282870822569636E-01 + 0.7284618642789059E-01 + 0.7286363578271910E-01 + 0.7288105617196125E-01 + 0.7289844749041140E-01 + 0.7291580964849487E-01 + 0.7293314255708321E-01 + 0.7295044612156092E-01 + 0.7296772024381239E-01 + 0.7298496482308141E-01 + 0.7300217974513288E-01 + 0.7301936489137171E-01 + 0.7303652015184563E-01 + 0.7305364543864266E-01 + 0.7307074066700103E-01 + 0.7308780573962821E-01 + 0.7310484054269101E-01 + 0.7312184496253603E-01 + 0.7313881890266119E-01 + 0.7315576227860428E-01 + 0.7317267500219198E-01 + 0.7318955696219009E-01 + 0.7320640803904670E-01 + 0.7322322811897069E-01 + 0.7324001710449425E-01 + 0.7325677490095860E-01 + 0.7327350141085287E-01 + 0.7329019653252620E-01 + 0.7330686016416453E-01 + 0.7332349220639006E-01 + 0.7334009256170559E-01 + 0.7335666113160199E-01 + 0.7337319781066537E-01 + 0.7338970249071864E-01 + 0.7340617506564757E-01 + 0.7342261543584251E-01 + 0.7343902350296750E-01 + 0.7345539916865272E-01 + 0.7347174233447428E-01 + 0.7348805290172153E-01 + 0.7350433076678055E-01 + 0.7352057582187790E-01 + 0.7353678795992523E-01 + 0.7355296707979391E-01 + 0.7356911308299662E-01 + 0.7358522587112006E-01 + 0.7360130534596815E-01 + 0.7361735140935037E-01 + 0.7363336395943763E-01 + 0.7364934288799550E-01 + 0.7366528808648100E-01 + 0.7368119945331941E-01 + 0.7369707689342951E-01 + 0.7371292031070156E-01 + 0.7372872959856123E-01 + 0.7374450464530725E-01 + 0.7376024534348236E-01 + 0.7377595160228743E-01 + 0.7379162333490870E-01 + 0.7380726044636432E-01 + 0.7382286282581090E-01 + 0.7383843036100823E-01 + 0.7385396294992061E-01 + 0.7386946050095755E-01 + 0.7388492292092881E-01 + 0.7390035009747863E-01 + 0.7391574190788663E-01 + 0.7393109823672229E-01 + 0.7394641900060917E-01 + 0.7396170412478170E-01 + 0.7397695352089528E-01 + 0.7399216707147803E-01 + 0.7400734465566567E-01 + 0.7402248616331216E-01 + 0.7403759149632270E-01 + 0.7405266055772442E-01 + 0.7406769325557454E-01 + 0.7408268950092920E-01 + 0.7409764920085022E-01 + 0.7411257224290313E-01 + 0.7412745850879395E-01 + 0.7414230788651537E-01 + 0.7415712027898129E-01 + 0.7417189559118411E-01 + 0.7418663372511190E-01 + 0.7420133457904101E-01 + 0.7421599805124510E-01 + 0.7423062404269865E-01 + 0.7424521245614945E-01 + 0.7425976319292528E-01 + 0.7427427614653393E-01 + 0.7428875120786681E-01 + 0.7430318827133286E-01 + 0.7431758724059466E-01 + 0.7433194802066118E-01 + 0.7434627050981684E-01 + 0.7436055459721387E-01 + 0.7437480017231755E-01 + 0.7438900713773399E-01 + 0.7440317540556069E-01 + 0.7441730488579297E-01 + 0.7443139547450457E-01 + 0.7444544706258593E-01 + 0.7445945954198947E-01 + 0.7447343280779220E-01 + 0.7448736675565466E-01 + 0.7450126128213872E-01 + 0.7451511628515275E-01 + 0.7452893166320052E-01 + 0.7454270732239764E-01 + 0.7455644317490405E-01 + 0.7457013913009693E-01 + 0.7458379507749004E-01 + 0.7459741089839983E-01 + 0.7461098647904164E-01 + 0.7462452172160454E-01 + 0.7463801653146862E-01 + 0.7465147081104252E-01 + 0.7466488445784792E-01 + 0.7467825736921220E-01 + 0.7469158944720994E-01 + 0.7470488059805771E-01 + 0.7471813072571536E-01 + 0.7473133971604628E-01 + 0.7474450744664827E-01 + 0.7475763380406857E-01 + 0.7477071870731469E-01 + 0.7478376208253556E-01 + 0.7479676383862226E-01 + 0.7480972385318432E-01 + 0.7482264200156340E-01 + 0.7483551818113311E-01 + 0.7484835231038395E-01 + 0.7486114430558745E-01 + 0.7487389405694623E-01 + 0.7488660144150589E-01 + 0.7489926634265131E-01 + 0.7491188866966275E-01 + 0.7492446833826559E-01 + 0.7493700525578393E-01 + 0.7494949931273705E-01 + 0.7496195039788534E-01 + 0.7497435840610111E-01 + 0.7498672323869098E-01 + 0.7499904479748441E-01 + 0.7501132298638662E-01 + 0.7502355771045883E-01 + 0.7503574887077397E-01 + 0.7504789635048434E-01 + 0.7506000002779278E-01 + 0.7507205979432960E-01 + 0.7508407557140705E-01 + 0.7509604728361824E-01 + 0.7510797483453340E-01 + 0.7511985810341053E-01 + 0.7513169696966044E-01 + 0.7514349132908539E-01 + 0.7515524108754706E-01 + 0.7516694615000688E-01 + 0.7517860641620286E-01 + 0.7519022178424888E-01 + 0.7520179215317098E-01 + 0.7521331742422808E-01 + 0.7522479749894574E-01 + 0.7523623227631306E-01 + 0.7524762165209565E-01 + 0.7525896552149003E-01 + 0.7527026377522388E-01 + 0.7528151630100571E-01 + 0.7529272299091759E-01 + 0.7530388376171976E-01 + 0.7531499853869308E-01 + 0.7532606723344975E-01 + 0.7533708972050651E-01 + 0.7534806586856108E-01 + 0.7535899556517269E-01 + 0.7536987872425334E-01 + 0.7538071526094336E-01 + 0.7539150507998661E-01 + 0.7540224807840134E-01 + 0.7541294415302209E-01 + 0.7542359320068175E-01 + 0.7543419511821112E-01 + 0.7544474980036078E-01 + 0.7545525713561665E-01 + 0.7546571701153177E-01 + 0.7547612932984348E-01 + 0.7548649401409441E-01 + 0.7549681098784920E-01 + 0.7550708014463963E-01 + 0.7551730135346602E-01 + 0.7552747448695312E-01 + 0.7553759944798692E-01 + 0.7554767615233022E-01 + 0.7555770451208521E-01 + 0.7556768442693642E-01 + 0.7557761579396660E-01 + 0.7558749850983770E-01 + 0.7559733247049929E-01 + 0.7560711757169937E-01 + 0.7561685370665439E-01 + 0.7562654076630889E-01 + 0.7563617864322552E-01 + 0.7564576724325266E-01 + 0.7565530647849219E-01 + 0.7566479625698329E-01 + 0.7567423647148255E-01 + 0.7568362701122700E-01 + 0.7569296776978987E-01 + 0.7570225864883850E-01 + 0.7571149955088469E-01 + 0.7572069037751511E-01 + 0.7572983102940439E-01 + 0.7573892140679412E-01 + 0.7574796140645256E-01 + 0.7575695092334229E-01 + 0.7576588985178503E-01 + 0.7577477808350523E-01 + 0.7578361550959556E-01 + 0.7579240202755420E-01 + 0.7580113754807936E-01 + 0.7580982198308229E-01 + 0.7581845523340485E-01 + 0.7582703718790325E-01 + 0.7583556773590278E-01 + 0.7584404677735632E-01 + 0.7585247421831056E-01 + 0.7586084996218384E-01 + 0.7586917389989905E-01 + 0.7587744591880201E-01 + 0.7588566591424200E-01 + 0.7589383379980320E-01 + 0.7590194949106364E-01 + 0.7591001288646002E-01 + 0.7591802386403921E-01 + 0.7592598230283355E-01 + 0.7593388810644314E-01 + 0.7594174119398699E-01 + 0.7594954147906440E-01 + 0.7595728884554204E-01 + 0.7596498316776058E-01 + 0.7597262433333871E-01 + 0.7598021226340480E-01 + 0.7598774688377887E-01 + 0.7599522810013344E-01 + 0.7600265579180193E-01 + 0.7601002983759038E-01 + 0.7601735013241909E-01 + 0.7602461658241104E-01 + 0.7603182909286549E-01 + 0.7603898756303474E-01 + 0.7604609189001388E-01 + 0.7605314197281937E-01 + 0.7606013771585170E-01 + 0.7606707902425890E-01 + 0.7607396579395655E-01 + 0.7608079790758755E-01 + 0.7608757524784222E-01 + 0.7609429771334426E-01 + 0.7610096521489835E-01 + 0.7610757766276038E-01 + 0.7611413496166819E-01 + 0.7612063701417139E-01 + 0.7612708371776179E-01 + 0.7613347495422685E-01 + 0.7613981060258003E-01 + 0.7614609055886779E-01 + 0.7615231474608573E-01 + 0.7615848308814339E-01 + 0.7616459548377332E-01 + 0.7617065181055446E-01 + 0.7617665194829906E-01 + 0.7618259579766411E-01 + 0.7618848326844974E-01 + 0.7619431426548515E-01 + 0.7620008867627590E-01 + 0.7620580638475932E-01 + 0.7621146728948636E-01 + 0.7621707131447942E-01 + 0.7622261838483674E-01 + 0.7622810839602944E-01 + 0.7623354121618174E-01 + 0.7623891671639584E-01 + 0.7624423480020033E-01 + 0.7624949538684990E-01 + 0.7625469838959631E-01 + 0.7625984369817855E-01 + 0.7626493119676364E-01 + 0.7626996077958893E-01 + 0.7627493236025138E-01 + 0.7627984585384985E-01 + 0.7628470115909635E-01 + 0.7628949815808888E-01 + 0.7629423673353402E-01 + 0.7629891678045571E-01 + 0.7630353820047282E-01 + 0.7630810089686319E-01 + 0.7631260477975248E-01 + 0.7631704976104535E-01 + 0.7632143574297873E-01 + 0.7632576260726247E-01 + 0.7633003023355517E-01 + 0.7633423851760062E-01 + 0.7633838737305609E-01 + 0.7634247671317786E-01 + 0.7634650643738451E-01 + 0.7635047643692583E-01 + 0.7635438660310669E-01 + 0.7635823682800092E-01 + 0.7636202700393064E-01 + 0.7636575702831805E-01 + 0.7636942681056315E-01 + 0.7637303626154079E-01 + 0.7637658528384304E-01 + 0.7638007376992738E-01 + 0.7638350161168990E-01 + 0.7638686870169060E-01 + 0.7639017493292100E-01 + 0.7639342020018752E-01 + 0.7639660440793077E-01 + 0.7639972746378712E-01 + 0.7640278927475243E-01 + 0.7640578974615063E-01 + 0.7640872878272013E-01 + 0.7641160627585447E-01 + 0.7641442209899932E-01 + 0.7641717612633208E-01 + 0.7641986825882283E-01 + 0.7642249841660681E-01 + 0.7642506651829420E-01 + 0.7642757247094476E-01 + 0.7643001617735470E-01 + 0.7643239753248526E-01 + 0.7643471640869612E-01 + 0.7643697267479612E-01 + 0.7643916622634301E-01 + 0.7644129699846429E-01 + 0.7644336492691740E-01 + 0.7644536990785717E-01 + 0.7644731180629267E-01 + 0.7644919049170520E-01 + 0.7645100586894539E-01 + 0.7645275785730950E-01 + 0.7645444636948650E-01 + 0.7645607129682692E-01 + 0.7645763252649729E-01 + 0.7645912995165699E-01 + 0.7646056347522512E-01 + 0.7646193300084272E-01 + 0.7646323842901205E-01 + 0.7646447965752278E-01 + 0.7646565658472692E-01 + 0.7646676911384104E-01 + 0.7646781715028068E-01 + 0.7646880059485374E-01 + 0.7646971933187702E-01 + 0.7647057324211199E-01 + 0.7647136221777945E-01 + 0.7647208617166550E-01 + 0.7647274501807444E-01 + 0.7647333865820243E-01 + 0.7647386698080137E-01 + 0.7647432987525082E-01 + 0.7647472724032687E-01 + 0.7647505897950029E-01 + 0.7647532499531379E-01 + 0.7647552518648114E-01 + 0.7647565945078285E-01 + 0.7647572768839900E-01 + 0.7647572980426122E-01 + 0.7647566570338443E-01 + 0.7647553527897689E-01 + 0.7647533841193544E-01 + 0.7647507498485467E-01 + 0.7647474490186829E-01 + 0.7647434807898604E-01 + 0.7647388442747815E-01 + 0.7647335383706744E-01 + 0.7647275619156577E-01 + 0.7647209138528067E-01 + 0.7647135933548449E-01 + 0.7647055996163830E-01 + 0.7646969315791321E-01 + 0.7646875878951226E-01 + 0.7646775672418954E-01 + 0.7646668687413354E-01 + 0.7646554917853523E-01 + 0.7646434356681535E-01 + 0.7646306991827244E-01 + 0.7646172809680863E-01 + 0.7646031798099179E-01 + 0.7645883948490992E-01 + 0.7645729252754796E-01 + 0.7645567701435568E-01 + 0.7645399283374688E-01 + 0.7645223987376836E-01 + 0.7645041803124284E-01 + 0.7644852720886465E-01 + 0.7644656730928169E-01 + 0.7644453823429247E-01 + 0.7644243988540045E-01 + 0.7644027216161669E-01 + 0.7643803495526407E-01 + 0.7643572815767829E-01 + 0.7643335166574059E-01 + 0.7643090538400545E-01 + 0.7642838921693429E-01 + 0.7642580305980465E-01 + 0.7642314680113513E-01 + 0.7642042033187241E-01 + 0.7641762355886932E-01 + 0.7641475639502049E-01 + 0.7641181874787115E-01 + 0.7640881050899358E-01 + 0.7640573156710017E-01 + 0.7640258181671799E-01 + 0.7639936116122572E-01 + 0.7639606950444506E-01 + 0.7639270674535386E-01 + 0.7638927277901122E-01 + 0.7638576749968046E-01 + 0.7638219079691739E-01 + 0.7637854255829701E-01 + 0.7637482267912982E-01 + 0.7637103108037469E-01 + 0.7636716768800513E-01 + 0.7636323240634493E-01 + 0.7635922510342509E-01 + 0.7635514564557282E-01 + 0.7635099393218225E-01 + 0.7634676989204041E-01 + 0.7634247345038816E-01 + 0.7633810449714808E-01 + 0.7633366290578745E-01 + 0.7632914855802847E-01 + 0.7632456136637290E-01 + 0.7631990125027820E-01 + 0.7631516811522516E-01 + 0.7631036184086527E-01 + 0.7630548230491624E-01 + 0.7630052940401209E-01 + 0.7629550305325684E-01 + 0.7629040316658077E-01 + 0.7628522964101531E-01 + 0.7627998236489454E-01 + 0.7627466122879998E-01 + 0.7626926613283890E-01 + 0.7626379697956192E-01 + 0.7625825367122186E-01 + 0.7625263610946408E-01 + 0.7624694419567689E-01 + 0.7624117782645749E-01 + 0.7623533689326472E-01 + 0.7622942128814707E-01 + 0.7622343091143008E-01 + 0.7621736566813829E-01 + 0.7621122546094562E-01 + 0.7620501018152184E-01 + 0.7619871971842090E-01 + 0.7619235396685999E-01 + 0.7618591283708255E-01 + 0.7617939624109173E-01 + 0.7617280408148698E-01 + 0.7616613624978862E-01 + 0.7615939263712781E-01 + 0.7615257313739166E-01 + 0.7614567764619102E-01 + 0.7613870605947448E-01 + 0.7613165827477851E-01 + 0.7612453419015449E-01 + 0.7611733370731089E-01 + 0.7611005673708615E-01 + 0.7610270319139030E-01 + 0.7609527296940809E-01 + 0.7608776595384788E-01 + 0.7608018202732040E-01 + 0.7607252108512935E-01 + 0.7606478303131731E-01 + 0.7605696776979569E-01 + 0.7604907520274740E-01 + 0.7604110523174063E-01 + 0.7603305775550961E-01 + 0.7602493266494443E-01 + 0.7601672984976914E-01 + 0.7600844920839634E-01 + 0.7600009065160895E-01 + 0.7599165409040827E-01 + 0.7598313942518436E-01 + 0.7597454654829273E-01 + 0.7596587535178484E-01 + 0.7595712572704403E-01 + 0.7594829756519442E-01 + 0.7593939076244328E-01 + 0.7593040523063086E-01 + 0.7592134088437410E-01 + 0.7591219762480171E-01 + 0.7590297533190975E-01 + 0.7589367388500333E-01 + 0.7588429318285391E-01 + 0.7587483314043235E-01 + 0.7586529367081214E-01 + 0.7585567467002672E-01 + 0.7584597602671170E-01 + 0.7583619763199339E-01 + 0.7582633938561967E-01 + 0.7581640118919491E-01 + 0.7580638294552335E-01 + 0.7579628455948004E-01 + 0.7578610593546008E-01 + 0.7577584696437634E-01 + 0.7576550752481548E-01 + 0.7575508749857450E-01 + 0.7574458679677734E-01 + 0.7573400534462722E-01 + 0.7572334305912020E-01 + 0.7571259982565670E-01 + 0.7570177552219705E-01 + 0.7569087003572821E-01 + 0.7567988327041713E-01 + 0.7566881513218528E-01 + 0.7565766552298575E-01 + 0.7564643434078642E-01 + 0.7563512148371638E-01 + 0.7562372685293379E-01 + 0.7561225035120228E-01 + 0.7560069187947194E-01 + 0.7558905133093667E-01 + 0.7557732859675747E-01 + 0.7556552357195201E-01 + 0.7555363615964364E-01 + 0.7554166626378414E-01 + 0.7552961378294004E-01 + 0.7551747860973752E-01 + 0.7550526063682889E-01 + 0.7549295976025615E-01 + 0.7548057587804279E-01 + 0.7546810889069162E-01 + 0.7545555871030812E-01 + 0.7544292525237271E-01 + 0.7543020841949231E-01 + 0.7541740808435016E-01 + 0.7540452411611936E-01 + 0.7539155640842564E-01 + 0.7537850488452859E-01 + 0.7536536946766087E-01 + 0.7535215006011273E-01 + 0.7533884655069176E-01 + 0.7532545882842129E-01 + 0.7531198678463995E-01 + 0.7529843031145886E-01 + 0.7528478930660867E-01 + 0.7527106368228719E-01 + 0.7525725335263188E-01 + 0.7524335821709631E-01 + 0.7522937815557471E-01 + 0.7521531304810374E-01 + 0.7520116279457922E-01 + 0.7518692730896570E-01 + 0.7517260650317486E-01 + 0.7515820027528426E-01 + 0.7514370851838141E-01 + 0.7512913117610043E-01 + 0.7511446833648422E-01 + 0.7509972011295060E-01 + 0.7508488660630887E-01 + 0.7506996789889687E-01 + 0.7505496407145049E-01 + 0.7503987520269318E-01 + 0.7502470136978100E-01 + 0.7500944265170545E-01 + 0.7499409913981086E-01 + 0.7497867093043382E-01 + 0.7496315811658182E-01 + 0.7494756078065040E-01 + 0.7493187900302292E-01 + 0.7491611287000288E-01 + 0.7490026247744051E-01 + 0.7488432792143723E-01 + 0.7486830928724043E-01 + 0.7485220665080703E-01 + 0.7483602008870691E-01 + 0.7481974968424614E-01 + 0.7480339552374532E-01 + 0.7478695769484158E-01 + 0.7477043628977238E-01 + 0.7475383140175344E-01 + 0.7473714312070856E-01 + 0.7472037153071200E-01 + 0.7470351671532306E-01 + 0.7468657875989505E-01 + 0.7466955775146822E-01 + 0.7465245377679426E-01 + 0.7463526691968827E-01 + 0.7461799726251297E-01 + 0.7460064489022740E-01 + 0.7458320989804353E-01 + 0.7456569238362343E-01 + 0.7454809243580661E-01 + 0.7453041012613730E-01 + 0.7451264552492827E-01 + 0.7449479872147663E-01 + 0.7447686982468710E-01 + 0.7445885894132520E-01 + 0.7444076614970239E-01 + 0.7442259151259700E-01 + 0.7440433509782585E-01 + 0.7438599699597176E-01 + 0.7436757730384526E-01 + 0.7434907611713156E-01 + 0.7433049352907819E-01 + 0.7431182963232773E-01 + 0.7429308451116245E-01 + 0.7427425824037968E-01 + 0.7425535089544544E-01 + 0.7423636256433756E-01 + 0.7421729334256266E-01 + 0.7419814332443959E-01 + 0.7417891259798308E-01 + 0.7415960124927603E-01 + 0.7414020936124798E-01 + 0.7412073700927319E-01 + 0.7410118426795620E-01 + 0.7408155122390924E-01 + 0.7406183797871352E-01 + 0.7404204463415903E-01 + 0.7402217128322508E-01 + 0.7400221801305332E-01 + 0.7398218490785257E-01 + 0.7396207203642506E-01 + 0.7394187946237625E-01 + 0.7392160726205560E-01 + 0.7390125554566600E-01 + 0.7388082442858007E-01 + 0.7386031400914960E-01 + 0.7383972436240066E-01 + 0.7381905556180060E-01 + 0.7379830768259071E-01 + 0.7377748080130527E-01 + 0.7375657499765636E-01 + 0.7373559037051171E-01 + 0.7371452702593708E-01 + 0.7369338506207992E-01 + 0.7367216455370872E-01 + 0.7365086557148938E-01 + 0.7362948819634450E-01 + 0.7360803252465896E-01 + 0.7358649865356524E-01 + 0.7356488667171954E-01 + 0.7354319666098639E-01 + 0.7352142870381019E-01 + 0.7349958288788404E-01 + 0.7347765930308780E-01 + 0.7345565803589953E-01 + 0.7343357916162622E-01 + 0.7341142275343935E-01 + 0.7338918889535028E-01 + 0.7336687768936417E-01 + 0.7334448923862734E-01 + 0.7332202363603400E-01 + 0.7329948096545202E-01 + 0.7327686130984566E-01 + 0.7325416474763172E-01 + 0.7323139135512995E-01 + 0.7320854121240471E-01 + 0.7318561441321885E-01 + 0.7316261105439756E-01 + 0.7313953122686289E-01 + 0.7311637501073609E-01 + 0.7309314248549149E-01 + 0.7306983374157470E-01 + 0.7304644888004154E-01 + 0.7302298799926922E-01 + 0.7299945117088475E-01 + 0.7297583845288558E-01 + 0.7295214991401959E-01 + 0.7292838566714885E-01 + 0.7290454583616514E-01 + 0.7288063052102918E-01 + 0.7285663977337546E-01 + 0.7283257364038169E-01 + 0.7280843220425465E-01 + 0.7278421558441139E-01 + 0.7275992389886589E-01 + 0.7273555723455615E-01 + 0.7271111566095161E-01 + 0.7268659924998477E-01 + 0.7266200808561635E-01 + 0.7263734225521906E-01 + 0.7261260184847240E-01 + 0.7258778696020400E-01 + 0.7256289768562169E-01 + 0.7253793411014770E-01 + 0.7251289630778488E-01 + 0.7248778435312518E-01 + 0.7246259833435088E-01 + 0.7243733834806222E-01 + 0.7241200448912867E-01 + 0.7238659684305525E-01 + 0.7236111549240411E-01 + 0.7233556052096645E-01 + 0.7230993201557312E-01 + 0.7228423006346329E-01 + 0.7225845474988290E-01 + 0.7223260615752172E-01 + 0.7220668436954632E-01 + 0.7218068947720617E-01 + 0.7215462157726186E-01 + 0.7212848076378490E-01 + 0.7210226711511078E-01 + 0.7207598070408162E-01 + 0.7204962160940033E-01 + 0.7202318992584022E-01 + 0.7199668575075529E-01 + 0.7197010917459772E-01 + 0.7194346027808807E-01 + 0.7191673914184928E-01 + 0.7188994585565327E-01 + 0.7186308051613262E-01 + 0.7183614321791254E-01 + 0.7180913404194394E-01 + 0.7178205306387433E-01 + 0.7175490036165762E-01 + 0.7172767602029923E-01 + 0.7170038012618313E-01 + 0.7167301276824933E-01 + 0.7164557403940364E-01 + 0.7161806403258573E-01 + 0.7159048283562207E-01 + 0.7156283053212478E-01 + 0.7153510720590218E-01 + 0.7150731294303098E-01 + 0.7147944783056253E-01 + 0.7145151195466632E-01 + 0.7142350539851593E-01 + 0.7139542824471517E-01 + 0.7136728058088392E-01 + 0.7133906250321344E-01 + 0.7131077410808859E-01 + 0.7128241547939325E-01 + 0.7125398668969125E-01 + 0.7122548781333392E-01 + 0.7119691894204373E-01 + 0.7116828017579837E-01 + 0.7113957160941177E-01 + 0.7111079331805808E-01 + 0.7108194537238538E-01 + 0.7105302785364687E-01 + 0.7102404086307810E-01 + 0.7099498450378112E-01 + 0.7096585887097660E-01 + 0.7093666405204559E-01 + 0.7090740013236195E-01 + 0.7087806718242606E-01 + 0.7084866526493265E-01 + 0.7081919445155045E-01 + 0.7078965485189181E-01 + 0.7076004658540446E-01 + 0.7073036975346193E-01 + 0.7070062441983438E-01 + 0.7067081064431208E-01 + 0.7064092850597779E-01 + 0.7061097810499261E-01 + 0.7058095954126625E-01 + 0.7055087290140740E-01 + 0.7052071826432680E-01 + 0.7049049571153044E-01 + 0.7046020533709710E-01 + 0.7042984723874881E-01 + 0.7039942150738368E-01 + 0.7036892821820009E-01 + 0.7033836744450108E-01 + 0.7030773926955290E-01 + 0.7027704378858082E-01 + 0.7024628109702164E-01 + 0.7021545128463819E-01 + 0.7018455443757604E-01 + 0.7015359064038938E-01 + 0.7012255996964117E-01 + 0.7009146249931697E-01 + 0.7006029831093498E-01 + 0.7002906750520875E-01 + 0.6999777018564784E-01 + 0.6996640644704883E-01 + 0.6993497637271386E-01 + 0.6990348004507102E-01 + 0.6987191754540029E-01 + 0.6984028895417604E-01 + 0.6980859435195399E-01 + 0.6977683381985972E-01 + 0.6974500743923161E-01 + 0.6971311529768447E-01 + 0.6968115750057104E-01 + 0.6964913415595536E-01 + 0.6961704535167829E-01 + 0.6958489114624079E-01 + 0.6955267159826618E-01 + 0.6952038680279101E-01 + 0.6948803688294309E-01 + 0.6945562195511200E-01 + 0.6942314208712054E-01 + 0.6939059732736803E-01 + 0.6935798773744553E-01 + 0.6932531342052872E-01 + 0.6929257448774729E-01 + 0.6925977103805781E-01 + 0.6922690315097815E-01 + 0.6919397090470387E-01 + 0.6916097438469915E-01 + 0.6912791368259063E-01 + 0.6909478888823751E-01 + 0.6906160007718963E-01 + 0.6902834731865973E-01 + 0.6899503069095291E-01 + 0.6896165030423733E-01 + 0.6892820627542084E-01 + 0.6889469870281946E-01 + 0.6886112765204036E-01 + 0.6882749318606490E-01 + 0.6879379538204490E-01 + 0.6876003433032995E-01 + 0.6872621012159906E-01 + 0.6869232284510733E-01 + 0.6865837258941281E-01 + 0.6862435944464480E-01 + 0.6859028350706375E-01 + 0.6855614487433083E-01 + 0.6852194363323243E-01 + 0.6848767984944977E-01 + 0.6845335358709244E-01 + 0.6841896493066983E-01 + 0.6838451398556024E-01 + 0.6835000085654972E-01 + 0.6831542563422321E-01 + 0.6828078840149039E-01 + 0.6824608924022559E-01 + 0.6821132822814223E-01 + 0.6817650544185938E-01 + 0.6814162096380755E-01 + 0.6810667488887550E-01 + 0.6807166731330570E-01 + 0.6803659832601050E-01 + 0.6800146800766528E-01 + 0.6796627643943936E-01 + 0.6793102371224825E-01 + 0.6789570992281493E-01 + 0.6786033516499941E-01 + 0.6782489951846255E-01 + 0.6778940305859570E-01 + 0.6775384586401135E-01 + 0.6771822802096363E-01 + 0.6768254961684007E-01 + 0.6764681073990769E-01 + 0.6761101147951960E-01 + 0.6757515192549714E-01 + 0.6753923217243036E-01 + 0.6750325231803832E-01 + 0.6746721245576536E-01 + 0.6743111265573631E-01 + 0.6739495298028208E-01 + 0.6735873350351858E-01 + 0.6732245433054428E-01 + 0.6728611557109558E-01 + 0.6724971731813709E-01 + 0.6721325964186987E-01 + 0.6717674261219663E-01 + 0.6714016631705309E-01 + 0.6710353085739234E-01 + 0.6706683633100284E-01 + 0.6703008281490125E-01 + 0.6699327037838136E-01 + 0.6695639909928699E-01 + 0.6691946908043458E-01 + 0.6688248042892622E-01 + 0.6684543323872212E-01 + 0.6680832758416262E-01 + 0.6677116353848235E-01 + 0.6673394118271057E-01 + 0.6669666060406241E-01 + 0.6665932189035911E-01 + 0.6662192513235578E-01 + 0.6658447042201745E-01 + 0.6654695785041175E-01 + 0.6650938750568485E-01 + 0.6647175947531427E-01 + 0.6643407384126333E-01 + 0.6639633067643245E-01 + 0.6635853005394200E-01 + 0.6632067206625432E-01 + 0.6628275682269848E-01 + 0.6624478442899440E-01 + 0.6620675495935124E-01 + 0.6616866847359439E-01 + 0.6613052504041460E-01 + 0.6609232476075128E-01 + 0.6605406774271127E-01 + 0.6601575408463999E-01 + 0.6597738386719985E-01 + 0.6593895716946541E-01 + 0.6590047407640791E-01 + 0.6586193467864688E-01 + 0.6582333906566835E-01 + 0.6578468731540690E-01 + 0.6574597949997052E-01 + 0.6570721569714902E-01 + 0.6566839600774238E-01 + 0.6562952053825204E-01 + 0.6559058938483259E-01 + 0.6555160262295451E-01 + 0.6551256032588720E-01 + 0.6547346257346087E-01 + 0.6543430945240909E-01 + 0.6539510105016475E-01 + 0.6535583745771785E-01 + 0.6531651876803817E-01 + 0.6527714507274935E-01 + 0.6523771645735455E-01 + 0.6519823300564818E-01 + 0.6515869480208019E-01 + 0.6511910193254926E-01 + 0.6507945448314787E-01 + 0.6503975253996580E-01 + 0.6499999618909000E-01 + 0.6496018551648488E-01 + 0.6492032060678571E-01 + 0.6488040154381269E-01 + 0.6484042841258320E-01 + 0.6480040130414661E-01 + 0.6476032031142553E-01 + 0.6472018552586745E-01 + 0.6467999703531215E-01 + 0.6463975492688565E-01 + 0.6459945928133683E-01 + 0.6455911017131476E-01 + 0.6451870767066993E-01 + 0.6447825187459620E-01 + 0.6443774289269884E-01 + 0.6439718082895338E-01 + 0.6435656575448947E-01 + 0.6431589772909283E-01 + 0.6427517682416574E-01 + 0.6423440314262743E-01 + 0.6419357679243200E-01 + 0.6415269786987262E-01 + 0.6411176645495937E-01 + 0.6407078262695558E-01 + 0.6402974647170206E-01 + 0.6398865807992467E-01 + 0.6394751754051331E-01 + 0.6390632493021913E-01 + 0.6386508032113838E-01 + 0.6382378379288439E-01 + 0.6378243544772290E-01 + 0.6374103539195252E-01 + 0.6369958371948556E-01 + 0.6365808050520414E-01 + 0.6361652582278559E-01 + 0.6357491975266311E-01 + 0.6353326238078537E-01 + 0.6349155379421639E-01 + 0.6344979408666374E-01 + 0.6340798335465959E-01 + 0.6336612168959198E-01 + 0.6332420916559900E-01 + 0.6328224585337949E-01 + 0.6324023183634504E-01 + 0.6319816721941746E-01 + 0.6315605210869273E-01 + 0.6311388659302983E-01 + 0.6307167074582720E-01 + 0.6302940464108815E-01 + 0.6298708836182552E-01 + 0.6294472199529042E-01 + 0.6290230562965588E-01 + 0.6285983935643773E-01 + 0.6281732326791170E-01 + 0.6277475745442802E-01 + 0.6273214200274412E-01 + 0.6268947699901179E-01 + 0.6264676252461873E-01 + 0.6260399865625890E-01 + 0.6256118547159588E-01 + 0.6251832305857507E-01 + 0.6247541151048361E-01 + 0.6243245092059939E-01 + 0.6238944138197220E-01 + 0.6234638298756174E-01 + 0.6230327582566844E-01 + 0.6226011997499704E-01 + 0.6221691551315710E-01 + 0.6217366252009448E-01 + 0.6213036107828357E-01 + 0.6208701127174450E-01 + 0.6204361319861511E-01 + 0.6200016696512368E-01 + 0.6195667267143932E-01 + 0.6191313038927277E-01 + 0.6186954018215520E-01 + 0.6182590212288495E-01 + 0.6178221630536308E-01 + 0.6173848282634793E-01 + 0.6169470178050514E-01 + 0.6165087326001252E-01 + 0.6160699735617730E-01 + 0.6156307415211463E-01 + 0.6151910372576789E-01 + 0.6147508615555417E-01 + 0.6143102152275093E-01 + 0.6138690990957106E-01 + 0.6134275140471611E-01 + 0.6129854611324537E-01 + 0.6125429414224421E-01 + 0.6120999557863409E-01 + 0.6116565048299110E-01 + 0.6112125891652692E-01 + 0.6107682097152743E-01 + 0.6103233676186868E-01 + 0.6098780639516875E-01 + 0.6094322994053036E-01 + 0.6089860745332819E-01 + 0.6085393900435552E-01 + 0.6080922470756940E-01 + 0.6076446468391978E-01 + 0.6071965902998126E-01 + 0.6067480780730648E-01 + 0.6062991107625017E-01 + 0.6058496891956643E-01 + 0.6053998143712382E-01 + 0.6049494872746804E-01 + 0.6044987087785154E-01 + 0.6040474797105623E-01 + 0.6035958008987247E-01 + 0.6031436731715227E-01 + 0.6026910973585862E-01 + 0.6022380743522358E-01 + 0.6017846051439237E-01 + 0.6013306907216722E-01 + 0.6008763318648280E-01 + 0.6004215291775077E-01 + 0.5999662833091406E-01 + 0.5995105952748769E-01 + 0.5990544662501859E-01 + 0.5985978973189559E-01 + 0.5981408892462360E-01 + 0.5976834427290649E-01 + 0.5972255585325947E-01 + 0.5967672375406270E-01 + 0.5963084806480632E-01 + 0.5958492887337206E-01 + 0.5953896626615761E-01 + 0.5949296032896609E-01 + 0.5944691114323529E-01 + 0.5940081878828720E-01 + 0.5935468334886272E-01 + 0.5930850493060741E-01 + 0.5926228364402716E-01 + 0.5921601958015767E-01 + 0.5916971279262706E-01 + 0.5912336333225477E-01 + 0.5907697128362575E-01 + 0.5903053676553896E-01 + 0.5898405989492566E-01 + 0.5893754075777870E-01 + 0.5889097942353587E-01 + 0.5884437596442328E-01 + 0.5879773046529114E-01 + 0.5875104301437776E-01 + 0.5870431370104187E-01 + 0.5865754261701906E-01 + 0.5861072985425820E-01 + 0.5856387550216557E-01 + 0.5851697964731772E-01 + 0.5847004237557533E-01 + 0.5842306376693653E-01 + 0.5837604389794102E-01 + 0.5832898284741315E-01 + 0.5828188070530450E-01 + 0.5823473756488497E-01 + 0.5818755351941675E-01 + 0.5814032866214291E-01 + 0.5809306308609365E-01 + 0.5804575687714115E-01 + 0.5799841011240390E-01 + 0.5795102286893141E-01 + 0.5790359522922072E-01 + 0.5785612727930840E-01 + 0.5780861910617813E-01 + 0.5776107080153757E-01 + 0.5771348245865614E-01 + 0.5766585416840177E-01 + 0.5761818601539557E-01 + 0.5757047808328411E-01 + 0.5752273045688295E-01 + 0.5747494322257877E-01 + 0.5742711646679203E-01 + 0.5737925027491451E-01 + 0.5733134473160244E-01 + 0.5728339992824429E-01 + 0.5723541599636494E-01 + 0.5718739308227177E-01 + 0.5713933133507262E-01 + 0.5709123091188980E-01 + 0.5704309197130858E-01 + 0.5699491467331509E-01 + 0.5694669917996649E-01 + 0.5689844565255665E-01 + 0.5685015423801367E-01 + 0.5680182507197432E-01 + 0.5675345829427716E-01 + 0.5670505407474189E-01 + 0.5665661259542432E-01 + 0.5660813402895312E-01 + 0.5655961851761163E-01 + 0.5651106619773053E-01 + 0.5646247721369566E-01 + 0.5641385172300346E-01 + 0.5636518988472924E-01 + 0.5631649186465851E-01 + 0.5626775783437250E-01 + 0.5621898796174297E-01 + 0.5617018238554859E-01 + 0.5612134123142303E-01 + 0.5607246463564851E-01 + 0.5602355277273401E-01 + 0.5597460582556374E-01 + 0.5592562396338083E-01 + 0.5587660733096147E-01 + 0.5582755607100436E-01 + 0.5577847033606225E-01 + 0.5572935028803745E-01 + 0.5568019608840781E-01 + 0.5563100789199479E-01 + 0.5558178585029587E-01 + 0.5553253011387508E-01 + 0.5548324082968456E-01 + 0.5543391814385680E-01 + 0.5538456221261074E-01 + 0.5533517321212635E-01 + 0.5528575132019666E-01 + 0.5523629669642819E-01 + 0.5518680948147457E-01 + 0.5513728981562941E-01 + 0.5508773784417203E-01 + 0.5503815371512895E-01 + 0.5498853758169276E-01 + 0.5493888961980122E-01 + 0.5488921001159692E-01 + 0.5483949892219204E-01 + 0.5478975647945842E-01 + 0.5473998280724657E-01 + 0.5469017805622592E-01 + 0.5464034240776869E-01 + 0.5459047604284050E-01 + 0.5454057911999892E-01 + 0.5449065178419209E-01 + 0.5444069418116683E-01 + 0.5439070646155495E-01 + 0.5434068877749980E-01 + 0.5429064128346678E-01 + 0.5424056413953858E-01 + 0.5419045750646819E-01 + 0.5414032153912136E-01 + 0.5409015638495792E-01 + 0.5403996219181941E-01 + 0.5398973911796249E-01 + 0.5393948732860785E-01 + 0.5388920698882091E-01 + 0.5383889826211012E-01 + 0.5378856131143537E-01 + 0.5373819629068906E-01 + 0.5368780332944530E-01 + 0.5363738255383304E-01 + 0.5358693411647472E-01 + 0.5353645820663146E-01 + 0.5348595501402426E-01 + 0.5343542469724766E-01 + 0.5338486739200103E-01 + 0.5333428323533500E-01 + 0.5328367237587214E-01 + 0.5323303496663304E-01 + 0.5318237116371869E-01 + 0.5313168113237659E-01 + 0.5308096503944155E-01 + 0.5303022304560495E-01 + 0.5297945530221155E-01 + 0.5292866195964120E-01 + 0.5287784316535444E-01 + 0.5282699906445153E-01 + 0.5277612980553254E-01 + 0.5272523556175312E-01 + 0.5267431651660168E-01 + 0.5262337284104151E-01 + 0.5257240466445140E-01 + 0.5252141210794344E-01 + 0.5247039531707218E-01 + 0.5241935447834283E-01 + 0.5236828978019663E-01 + 0.5231720137410866E-01 + 0.5226608937871326E-01 + 0.5221495391792150E-01 + 0.5216379516521901E-01 + 0.5211261331717544E-01 + 0.5206140855738973E-01 + 0.5201018102118797E-01 + 0.5195893083290583E-01 + 0.5190765812974948E-01 + 0.5185636307269643E-01 + 0.5180504582531049E-01 + 0.5175370655156937E-01 + 0.5170234541585447E-01 + 0.5165096258156549E-01 + 0.5159955820342264E-01 + 0.5154813243168171E-01 + 0.5149668541635465E-01 + 0.5144521730660347E-01 + 0.5139372825141225E-01 + 0.5134221840561835E-01 + 0.5129068793599241E-01 + 0.5123913701042762E-01 + 0.5118756578816760E-01 + 0.5113597441918499E-01 + 0.5108436305290024E-01 + 0.5103273183778385E-01 + 0.5098108092176730E-01 + 0.5092941045642048E-01 + 0.5087772060998109E-01 + 0.5082601155539636E-01 + 0.5077428345395870E-01 + 0.5072253644069482E-01 + 0.5067077064781071E-01 + 0.5061898623188380E-01 + 0.5056718337818906E-01 + 0.5051536227020730E-01 + 0.5046352305308028E-01 + 0.5041166584798230E-01 + 0.5035979078428675E-01 + 0.5030789803503451E-01 + 0.5025598778710815E-01 + 0.5020406021308991E-01 + 0.5015211544986662E-01 + 0.5010015362929936E-01 + 0.5004817490056590E-01 + 0.4999617943525225E-01 + 0.4994416740530925E-01 + 0.4989213896840445E-01 + 0.4984009427237707E-01 + 0.4978803346520765E-01 + 0.4973595669678349E-01 + 0.4968386411766935E-01 + 0.4963175588167553E-01 + 0.4957963215159034E-01 + 0.4952749309173495E-01 + 0.4947533886609961E-01 + 0.4942316963820386E-01 + 0.4937098557008257E-01 + 0.4931878680264402E-01 + 0.4926657346080934E-01 + 0.4921434567630429E-01 + 0.4916210362664279E-01 + 0.4910984750726874E-01 + 0.4905757749790193E-01 + 0.4900529372981209E-01 + 0.4895299632530036E-01 + 0.4890068542565514E-01 + 0.4884836120189568E-01 + 0.4879602382705564E-01 + 0.4874367346441130E-01 + 0.4869131026912389E-01 + 0.4863893439562710E-01 + 0.4858654599493040E-01 + 0.4853414521655781E-01 + 0.4848173221230305E-01 + 0.4842930714173850E-01 + 0.4837687016604260E-01 + 0.4832442144195968E-01 + 0.4827196111858547E-01 + 0.4821948934454577E-01 + 0.4816700627411867E-01 + 0.4811451206674713E-01 + 0.4806200688177500E-01 + 0.4800949087623626E-01 + 0.4795696420605619E-01 + 0.4790442702777703E-01 + 0.4785187950031527E-01 + 0.4779932178312219E-01 + 0.4774675403227608E-01 + 0.4769417639743992E-01 + 0.4764158902776478E-01 + 0.4758899207719233E-01 + 0.4753638570447208E-01 + 0.4748377006849946E-01 + 0.4743114532758868E-01 + 0.4737851163974638E-01 + 0.4732586916200315E-01 + 0.4727321804726499E-01 + 0.4722055844733985E-01 + 0.4716789051319001E-01 + 0.4711521439400205E-01 + 0.4706253023902872E-01 + 0.4700983820553618E-01 + 0.4695713845962488E-01 + 0.4690443116724747E-01 + 0.4685171648821143E-01 + 0.4679899457873459E-01 + 0.4674626559433900E-01 + 0.4669352968747274E-01 + 0.4664078700967722E-01 + 0.4658803771258697E-01 + 0.4653528194805279E-01 + 0.4648251986799852E-01 + 0.4642975162576120E-01 + 0.4637697737638927E-01 + 0.4632419727578558E-01 + 0.4627141148855765E-01 + 0.4621862018491388E-01 + 0.4616582353074108E-01 + 0.4611302166867390E-01 + 0.4606021473374069E-01 + 0.4600740287109233E-01 + 0.4595458625193811E-01 + 0.4590176505121967E-01 + 0.4584893942739154E-01 + 0.4579610951695948E-01 + 0.4574327545639424E-01 + 0.4569043740184100E-01 + 0.4563759552337453E-01 + 0.4558474998965005E-01 + 0.4553190095924116E-01 + 0.4547904858704771E-01 + 0.4542619302749256E-01 + 0.4537333443365267E-01 + 0.4532047295833008E-01 + 0.4526760875245445E-01 + 0.4521474196421394E-01 + 0.4516187274233747E-01 + 0.4510900124709917E-01 + 0.4505612764776127E-01 + 0.4500325211146889E-01 + 0.4495037478988446E-01 + 0.4489749582841656E-01 + 0.4484461537615841E-01 + 0.4479173359394684E-01 + 0.4473885064484262E-01 + 0.4468596668526955E-01 + 0.4463308186095472E-01 + 0.4458019631745295E-01 + 0.4452731021437744E-01 + 0.4447442372336863E-01 + 0.4442153701358422E-01 + 0.4436865023301945E-01 + 0.4431576352020535E-01 + 0.4426287701762056E-01 + 0.4420999088183242E-01 + 0.4415710527253746E-01 + 0.4410422035142913E-01 + 0.4405133628374674E-01 + 0.4399845323470282E-01 + 0.4394557136144137E-01 + 0.4389269081352348E-01 + 0.4383981174038615E-01 + 0.4378693429287449E-01 + 0.4373405862252945E-01 + 0.4368118488212154E-01 + 0.4362831322923567E-01 + 0.4357544382263265E-01 + 0.4352257682026098E-01 + 0.4346971237847736E-01 + 0.4341685065351498E-01 + 0.4336399180309705E-01 + 0.4331113598648548E-01 + 0.4325828336236443E-01 + 0.4320543408335862E-01 + 0.4315258829878701E-01 + 0.4309974615922102E-01 + 0.4304690782086350E-01 + 0.4299407344146589E-01 + 0.4294124318016483E-01 + 0.4288841719909475E-01 + 0.4283559566035775E-01 + 0.4278277871368116E-01 + 0.4272996649476102E-01 + 0.4267715914122088E-01 + 0.4262435681910356E-01 + 0.4257155971154282E-01 + 0.4251876799486808E-01 + 0.4246598181106031E-01 + 0.4241320129167852E-01 + 0.4236042658020151E-01 + 0.4230765784865889E-01 + 0.4225489527277066E-01 + 0.4220213901072806E-01 + 0.4214938919888306E-01 + 0.4209664597384919E-01 + 0.4204390949188792E-01 + 0.4199117992227105E-01 + 0.4193845743315788E-01 + 0.4188574218538671E-01 + 0.4183303433730861E-01 + 0.4178033404274975E-01 + 0.4172764144353306E-01 + 0.4167495667976853E-01 + 0.4162227990281374E-01 + 0.4156961127943117E-01 + 0.4151695097718235E-01 + 0.4146429915929514E-01 + 0.4141165598584054E-01 + 0.4135902161414054E-01 + 0.4130639618523880E-01 + 0.4125377983406986E-01 + 0.4120117270694246E-01 + 0.4114857498370401E-01 + 0.4109598684990678E-01 + 0.4104340846658669E-01 + 0.4099083995784167E-01 + 0.4093828144691091E-01 + 0.4088573309196065E-01 + 0.4083319507912746E-01 + 0.4078066759009976E-01 + 0.4072815077095749E-01 + 0.4067564475294999E-01 + 0.4062314967592117E-01 + 0.4057066570801993E-01 + 0.4051819302303669E-01 + 0.4046573178432994E-01 + 0.4041328213795191E-01 + 0.4036084422882601E-01 + 0.4030841821112813E-01 + 0.4025600424717527E-01 + 0.4020360249836179E-01 + 0.4015121311691915E-01 + 0.4009883625085560E-01 + 0.4004647205029280E-01 + 0.3999412067313826E-01 + 0.3994178227906068E-01 + 0.3988945702654148E-01 + 0.3983714507189089E-01 + 0.3978484657124846E-01 + 0.3973256168207629E-01 + 0.3968029056311464E-01 + 0.3962803337263766E-01 + 0.3957579026446880E-01 + 0.3952356139016528E-01 + 0.3947134690089356E-01 + 0.3941914694630660E-01 + 0.3936696167570931E-01 + 0.3931479124340423E-01 + 0.3926263581378075E-01 + 0.3921049555233467E-01 + 0.3915837062180728E-01 + 0.3910626118201548E-01 + 0.3905416739132701E-01 + 0.3900208939542774E-01 + 0.3895002733287894E-01 + 0.3889798134709760E-01 + 0.3884595160382055E-01 + 0.3879393827505568E-01 + 0.3874194152507910E-01 + 0.3868996150091961E-01 + 0.3863799834754040E-01 + 0.3858605221815998E-01 + 0.3853412327562447E-01 + 0.3848221168232666E-01 + 0.3843031758968920E-01 + 0.3837844114234418E-01 + 0.3832658248851605E-01 + 0.3827474179505137E-01 + 0.3822291923462504E-01 + 0.3817111497037421E-01 + 0.3811932914188007E-01 + 0.3806756188551645E-01 + 0.3801581335141033E-01 + 0.3796408370731471E-01 + 0.3791237312172388E-01 + 0.3786068175795299E-01 + 0.3780900977578810E-01 + 0.3775735733207184E-01 + 0.3770572456747010E-01 + 0.3765411161701420E-01 + 0.3760251862783692E-01 + 0.3755094578021790E-01 + 0.3749939325951646E-01 + 0.3744786122563033E-01 + 0.3739634980257722E-01 + 0.3734485911411830E-01 + 0.3729338931917892E-01 + 0.3724194060303889E-01 + 0.3719051314637643E-01 + 0.3713910709693002E-01 + 0.3708772258967144E-01 + 0.3703635976496611E-01 + 0.3698501877966254E-01 + 0.3693369979377963E-01 + 0.3688240297029830E-01 + 0.3683112847679195E-01 + 0.3677987648033163E-01 + 0.3672864713307797E-01 + 0.3667744057490927E-01 + 0.3662625694715441E-01 + 0.3657509640393148E-01 + 0.3652395910485096E-01 + 0.3647284521054902E-01 + 0.3642175488505792E-01 + 0.3637068829307417E-01 + 0.3631964559513150E-01 + 0.3626862694465354E-01 + 0.3621763249400036E-01 + 0.3616666238840789E-01 + 0.3611571676666445E-01 + 0.3606479577049130E-01 + 0.3601389956663077E-01 + 0.3596302833370835E-01 + 0.3591218224473707E-01 + 0.3586136145133141E-01 + 0.3581056610007933E-01 + 0.3575979633841370E-01 + 0.3570905231535857E-01 + 0.3565833418057093E-01 + 0.3560764209410638E-01 + 0.3555697622635812E-01 + 0.3550633674597175E-01 + 0.3545572380207826E-01 + 0.3540513753357360E-01 + 0.3535457808256645E-01 + 0.3530404560501579E-01 + 0.3525354026052210E-01 + 0.3520306221049077E-01 + 0.3515261162008031E-01 + 0.3510218865464059E-01 + 0.3505179347202948E-01 + 0.3500142622192418E-01 + 0.3495108705372188E-01 + 0.3490077611817198E-01 + 0.3485049356680626E-01 + 0.3480023955219642E-01 + 0.3475001423172796E-01 + 0.3469981776418785E-01 + 0.3464965030761723E-01 + 0.3459951201834113E-01 + 0.3454940305249199E-01 + 0.3449932356775474E-01 + 0.3444927372367692E-01 + 0.3439925367933183E-01 + 0.3434926358711524E-01 + 0.3429930359516781E-01 + 0.3424937385335891E-01 + 0.3419947452092017E-01 + 0.3414960576011178E-01 + 0.3409976772897985E-01 + 0.3404996057483567E-01 + 0.3400018444355033E-01 + 0.3395043949077827E-01 + 0.3390072588507364E-01 + 0.3385104379495492E-01 + 0.3380139337697374E-01 + 0.3375177477929086E-01 + 0.3370218815043729E-01 + 0.3365263364210507E-01 + 0.3360311140712651E-01 + 0.3355362159881322E-01 + 0.3350416437182649E-01 + 0.3345473988118290E-01 + 0.3340534828788485E-01 + 0.3335598976161438E-01 + 0.3330666447146560E-01 + 0.3325737256749950E-01 + 0.3320811418510230E-01 + 0.3315888946326320E-01 + 0.3310969856686058E-01 + 0.3306054167111973E-01 + 0.3301141894289111E-01 + 0.3296233052265752E-01 + 0.3291327654593202E-01 + 0.3286425716048968E-01 + 0.3281527253367492E-01 + 0.3276632283430154E-01 + 0.3271740822629432E-01 + 0.3266852886943534E-01 + 0.3261968492124451E-01 + 0.3257087652371395E-01 + 0.3252210381196284E-01 + 0.3247336693070502E-01 + 0.3242466605825776E-01 + 0.3237600138001894E-01 + 0.3232737305988558E-01 + 0.3227878122394947E-01 + 0.3223022599593536E-01 + 0.3218170752941885E-01 + 0.3213322600576208E-01 + 0.3208478160478139E-01 + 0.3203637448497259E-01 + 0.3198800479439876E-01 + 0.3193967267965246E-01 + 0.3189137828188631E-01 + 0.3184312174103193E-01 + 0.3179490320916563E-01 + 0.3174672286191979E-01 + 0.3169858087700381E-01 + 0.3165047741716550E-01 + 0.3160241262985513E-01 + 0.3155438666196802E-01 + 0.3150639966166485E-01 + 0.3145845177778989E-01 + 0.3141054316276234E-01 + 0.3136267398445556E-01 + 0.3131484441486368E-01 + 0.3126705461495045E-01 + 0.3121930472204779E-01 + 0.3117159487110116E-01 + 0.3112392521607961E-01 + 0.3107629593231779E-01 + 0.3102870719373556E-01 + 0.3098115914760812E-01 + 0.3093365192534417E-01 + 0.3088618566544707E-01 + 0.3083876054167924E-01 + 0.3079137673837591E-01 + 0.3074403442555882E-01 + 0.3069673373932063E-01 + 0.3064947481139655E-01 + 0.3060225779292218E-01 + 0.3055508285897251E-01 + 0.3050795018405550E-01 + 0.3046085991836030E-01 + 0.3041381219612857E-01 + 0.3036680715612123E-01 + 0.3031984496292051E-01 + 0.3027292578974476E-01 + 0.3022604980271433E-01 + 0.3017921714929396E-01 + 0.3013242797409927E-01 + 0.3008568242933148E-01 + 0.3003898067748117E-01 + 0.2999232288105042E-01 + 0.2994570919272863E-01 + 0.2989913975812602E-01 + 0.2985261472526069E-01 + 0.2980613425756946E-01 + 0.2975969852421956E-01 + 0.2971330768988663E-01 + 0.2966696190612763E-01 + 0.2962066132211667E-01 + 0.2957440608669986E-01 + 0.2952819634823423E-01 + 0.2948203225583406E-01 + 0.2943591397109633E-01 + 0.2938984166551891E-01 + 0.2934381550746364E-01 + 0.2929783564236987E-01 + 0.2925190220622884E-01 + 0.2920601534196517E-01 + 0.2916017521505924E-01 + 0.2911438199547605E-01 + 0.2906863584791258E-01 + 0.2902293692841178E-01 + 0.2897728539211510E-01 + 0.2893168139240317E-01 + 0.2888612508112157E-01 + 0.2884061661006518E-01 + 0.2879515613103445E-01 + 0.2874974379583220E-01 + 0.2870437975689054E-01 + 0.2865906416891122E-01 + 0.2861379718715921E-01 + 0.2856857897185355E-01 + 0.2852340969218247E-01 + 0.2847828951748541E-01 + 0.2843321860020247E-01 + 0.2838819707659481E-01 + 0.2834322508498952E-01 + 0.2829830278675346E-01 + 0.2825343035486782E-01 + 0.2820860795748758E-01 + 0.2816383574303150E-01 + 0.2811911385501991E-01 + 0.2807444244431851E-01 + 0.2802982167646847E-01 + 0.2798525171806884E-01 + 0.2794073271838800E-01 + 0.2789626480847001E-01 + 0.2785184812272068E-01 + 0.2780748283602978E-01 + 0.2776316914580532E-01 + 0.2771890723632259E-01 + 0.2767469723202262E-01 + 0.2763053924075201E-01 + 0.2758643339666305E-01 + 0.2754237989198831E-01 + 0.2749837892556352E-01 + 0.2745443066106035E-01 + 0.2741053522152972E-01 + 0.2736669273061833E-01 + 0.2732290334296874E-01 + 0.2727916723222362E-01 + 0.2723548456977674E-01 + 0.2719185551443944E-01 + 0.2714828022110462E-01 + 0.2710475884319250E-01 + 0.2706129153052796E-01 + 0.2701787843254357E-01 + 0.2697451970409293E-01 + 0.2693121550691073E-01 + 0.2688796600238046E-01 + 0.2684477134205037E-01 + 0.2680163167083178E-01 + 0.2675854713682261E-01 + 0.2671551790654117E-01 + 0.2667254415285938E-01 + 0.2662962603955667E-01 + 0.2658676370576629E-01 + 0.2654395728681473E-01 + 0.2650120693300431E-01 + 0.2645851281553732E-01 + 0.2641587510611169E-01 + 0.2637329396144645E-01 + 0.2633076952714224E-01 + 0.2628830195007497E-01 + 0.2624589138668222E-01 + 0.2620353799706940E-01 + 0.2616124194066765E-01 + 0.2611900337485751E-01 + 0.2607682245662100E-01 + 0.2603469934207941E-01 + 0.2599263418603258E-01 + 0.2595062714264651E-01 + 0.2590867835755632E-01 + 0.2586678796943662E-01 + 0.2582495612290617E-01 + 0.2578318300536203E-01 + 0.2574146882237490E-01 + 0.2569981373518301E-01 + 0.2565821775652994E-01 + 0.2561668086802082E-01 + 0.2557520304128213E-01 + 0.2553378423106545E-01 + 0.2549242439037445E-01 + 0.2545112346995609E-01 + 0.2540988141853428E-01 + 0.2536869818619476E-01 + 0.2532757373421888E-01 + 0.2528650802915134E-01 + 0.2524550103065230E-01 + 0.2520455267263549E-01 + 0.2516366288318158E-01 + 0.2512283160693535E-01 + 0.2508205881942415E-01 + 0.2504134449844967E-01 + 0.2500068859719347E-01 + 0.2496009104459474E-01 + 0.2491955177125502E-01 + 0.2487907073140823E-01 + 0.2483864789155944E-01 + 0.2479828321541175E-01 + 0.2475797665461346E-01 + 0.2471772815769857E-01 + 0.2467753767473135E-01 + 0.2463740515892598E-01 + 0.2459733056384608E-01 + 0.2455731384203011E-01 + 0.2451735494490772E-01 + 0.2447745382408301E-01 + 0.2443761043344098E-01 + 0.2439782472817307E-01 + 0.2435809666160235E-01 + 0.2431842617834648E-01 + 0.2427881322053437E-01 + 0.2423925773586039E-01 + 0.2419975968468344E-01 + 0.2416031902898180E-01 + 0.2412093572645742E-01 + 0.2408160972973112E-01 + 0.2404234099064459E-01 + 0.2400312945558701E-01 + 0.2396397506750727E-01 + 0.2392487777172611E-01 + 0.2388583752606162E-01 + 0.2384685429233879E-01 + 0.2380792803003779E-01 + 0.2376905869272530E-01 + 0.2373024623293790E-01 + 0.2369149059875811E-01 + 0.2365279173245244E-01 + 0.2361414957692685E-01 + 0.2357556408836463E-01 + 0.2353703523216897E-01 + 0.2349856297086839E-01 + 0.2346014724939319E-01 + 0.2342178800640433E-01 + 0.2338348518684476E-01 + 0.2334523875323508E-01 + 0.2330704867095613E-01 + 0.2326891489619379E-01 + 0.2323083737193028E-01 + 0.2319281604050540E-01 + 0.2315485084986034E-01 + 0.2311694175221388E-01 + 0.2307908870096654E-01 + 0.2304129165641970E-01 + 0.2300355058160276E-01 + 0.2296586543431471E-01 + 0.2292823615609581E-01 + 0.2289066268551818E-01 + 0.2285314497238548E-01 + 0.2281568298425066E-01 + 0.2277827668898420E-01 + 0.2274092603308136E-01 + 0.2270363094509821E-01 + 0.2266639135726058E-01 + 0.2262920723222653E-01 + 0.2259207854598651E-01 + 0.2255500526750986E-01 + 0.2251798734132322E-01 + 0.2248102470673536E-01 + 0.2244411730763884E-01 + 0.2240726509590672E-01 + 0.2237046802450385E-01 + 0.2233372605221962E-01 + 0.2229703914321378E-01 + 0.2226040725942251E-01 + 0.2222383034316942E-01 + 0.2218730832727796E-01 + 0.2215084114953592E-01 + 0.2211442876706091E-01 + 0.2207807114161980E-01 + 0.2204176823539215E-01 + 0.2200552001134999E-01 + 0.2196932643186331E-01 + 0.2193318744302002E-01 + 0.2189710297441872E-01 + 0.2186107295823477E-01 + 0.2182509735682172E-01 + 0.2178917614867228E-01 + 0.2175330930455566E-01 + 0.2171749676150381E-01 + 0.2168173844758348E-01 + 0.2164603430220121E-01 + 0.2161038428881188E-01 + 0.2157478837365238E-01 + 0.2153924651491865E-01 + 0.2150375866186173E-01 + 0.2146832476348615E-01 + 0.2143294477107900E-01 + 0.2139761863727312E-01 + 0.2136234631503454E-01 + 0.2132712775883644E-01 + 0.2129196292358802E-01 + 0.2125685176068323E-01 + 0.2122179421326995E-01 + 0.2118679022358027E-01 + 0.2115183974286619E-01 + 0.2111694273340394E-01 + 0.2108209915746531E-01 + 0.2104730896940155E-01 + 0.2101257211842055E-01 + 0.2097788855435455E-01 + 0.2094325823082444E-01 + 0.2090868110270183E-01 + 0.2087415712256910E-01 + 0.2083968623705774E-01 + 0.2080526839186891E-01 + 0.2077090353370886E-01 + 0.2073659161063389E-01 + 0.2070233257194729E-01 + 0.2066812638239856E-01 + 0.2063397301777382E-01 + 0.2059987244787650E-01 + 0.2056582460553162E-01 + 0.2053182940996835E-01 + 0.2049788679325437E-01 + 0.2046399672453859E-01 + 0.2043015917942080E-01 + 0.2039637412328724E-01 + 0.2036264150643249E-01 + 0.2032896127769743E-01 + 0.2029533338224585E-01 + 0.2026175776235299E-01 + 0.2022823436269200E-01 + 0.2019476314439600E-01 + 0.2016134407531062E-01 + 0.2012797711532254E-01 + 0.2009466219874891E-01 + 0.2006139925502168E-01 + 0.2002818822907931E-01 + 0.1999502909108361E-01 + 0.1996192181293318E-01 + 0.1992886635618319E-01 + 0.1989586267345979E-01 + 0.1986291071542022E-01 + 0.1983001042023089E-01 + 0.1979716172041801E-01 + 0.1976436455637909E-01 + 0.1973161889667993E-01 + 0.1969892471603445E-01 + 0.1966628197736260E-01 + 0.1963369062244283E-01 + 0.1960115059115922E-01 + 0.1956866182978967E-01 + 0.1953622429067538E-01 + 0.1950383792726657E-01 + 0.1947150270030468E-01 + 0.1943921857416984E-01 + 0.1940698550794143E-01 + 0.1937480343954006E-01 + 0.1934267230170476E-01 + 0.1931059203631707E-01 + 0.1927856260334103E-01 + 0.1924658396486031E-01 + 0.1921465608284952E-01 + 0.1918277891916998E-01 + 0.1915095243386518E-01 + 0.1911917656983753E-01 + 0.1908745126054932E-01 + 0.1905577644365055E-01 + 0.1902415207575416E-01 + 0.1899257811871639E-01 + 0.1896105453446028E-01 + 0.1892958128505449E-01 + 0.1889815833214481E-01 + 0.1886678562424625E-01 + 0.1883546309485007E-01 + 0.1880419067835796E-01 + 0.1877296832774466E-01 + 0.1874179600725817E-01 + 0.1871067367971758E-01 + 0.1867960130011384E-01 + 0.1864857882101815E-01 + 0.1861760619155981E-01 + 0.1858668335254630E-01 + 0.1855581024396451E-01 + 0.1852498682072199E-01 + 0.1849421305648469E-01 + 0.1846348892413845E-01 + 0.1843281437249930E-01 + 0.1840218933429767E-01 + 0.1837161374437051E-01 + 0.1834108755076145E-01 + 0.1831061070603922E-01 + 0.1828018316739229E-01 + 0.1824980490438086E-01 + 0.1821947588826805E-01 + 0.1818919607468162E-01 + 0.1815896539763917E-01 + 0.1812878379049305E-01 + 0.1809865119941719E-01 + 0.1806856758001097E-01 + 0.1803853288838544E-01 + 0.1800854708245643E-01 + 0.1797861012082369E-01 + 0.1794872196077374E-01 + 0.1791888255568113E-01 + 0.1788909185814640E-01 + 0.1785934981793904E-01 + 0.1782965638052367E-01 + 0.1780001149125218E-01 + 0.1777041509947381E-01 + 0.1774086715776782E-01 + 0.1771136761934794E-01 + 0.1768191644115642E-01 + 0.1765251358170369E-01 + 0.1762315899902971E-01 + 0.1759385264960011E-01 + 0.1756459448943802E-01 + 0.1753538446581801E-01 + 0.1750622251136572E-01 + 0.1747710855852479E-01 + 0.1744804256249743E-01 + 0.1741902449869299E-01 + 0.1739005433995100E-01 + 0.1736113203385905E-01 + 0.1733225751625342E-01 + 0.1730343072846921E-01 + 0.1727465163233314E-01 + 0.1724592019430525E-01 + 0.1721723637246303E-01 + 0.1718860010941097E-01 + 0.1716001134640381E-01 + 0.1713147003174167E-01 + 0.1710297612059614E-01 + 0.1707452956814846E-01 + 0.1704613032718441E-01 + 0.1701777834925818E-01 + 0.1698947358609744E-01 + 0.1696121599018234E-01 + 0.1693300551418487E-01 + 0.1690484211059365E-01 + 0.1687672573152410E-01 + 0.1684865632906893E-01 + 0.1682063385591468E-01 + 0.1679265826538370E-01 + 0.1676472951055400E-01 + 0.1673684754179909E-01 + 0.1670901230795876E-01 + 0.1668122376030497E-01 + 0.1665348186130513E-01 + 0.1662578657657968E-01 + 0.1659813786213682E-01 + 0.1657053565233518E-01 + 0.1654297987905441E-01 + 0.1651547048933899E-01 + 0.1648800744808003E-01 + 0.1646059072024915E-01 + 0.1643322026032466E-01 + 0.1640589601622862E-01 + 0.1637861793698638E-01 + 0.1635138597775425E-01 + 0.1632420009562281E-01 + 0.1629706024277471E-01 + 0.1626996635915277E-01 + 0.1624291838323731E-01 + 0.1621591626943275E-01 + 0.1618895999273820E-01 + 0.1616204952737622E-01 + 0.1613518482034848E-01 + 0.1610836579993674E-01 + 0.1608159239879712E-01 + 0.1605486457655004E-01 + 0.1602818230232285E-01 + 0.1600154553799549E-01 + 0.1597495422537838E-01 + 0.1594840830304372E-01 + 0.1592190771925899E-01 + 0.1589545243607953E-01 + 0.1586904241620204E-01 + 0.1584267761633984E-01 + 0.1581635798868085E-01 + 0.1579008348436902E-01 + 0.1576385404862409E-01 + 0.1573766962434859E-01 + 0.1571153015855753E-01 + 0.1568543561091295E-01 + 0.1565938594343426E-01 + 0.1563338111430383E-01 + 0.1560742107569898E-01 + 0.1558150577908640E-01 + 0.1555563517277750E-01 + 0.1552980920246084E-01 + 0.1550402781428365E-01 + 0.1547829095822543E-01 + 0.1545259858592768E-01 + 0.1542695065107127E-01 + 0.1540134711428106E-01 + 0.1537578793758165E-01 + 0.1535027307635693E-01 + 0.1532480247454345E-01 + 0.1529937607518959E-01 + 0.1527399382615663E-01 + 0.1524865567970129E-01 + 0.1522336158897403E-01 + 0.1519811151298097E-01 + 0.1517290541353611E-01 + 0.1514774324919466E-01 + 0.1512262496605047E-01 + 0.1509755050725872E-01 + 0.1507251981861579E-01 + 0.1504753285093907E-01 + 0.1502258955590329E-01 + 0.1499768989201429E-01 + 0.1497283382463022E-01 + 0.1494802131692580E-01 + 0.1492325230971424E-01 + 0.1489852673196929E-01 + 0.1487384451997674E-01 + 0.1484920564145962E-01 + 0.1482461007239666E-01 + 0.1480005777759262E-01 + 0.1477554869839501E-01 + 0.1475108277348714E-01 + 0.1472665994963483E-01 + 0.1470228018250925E-01 + 0.1467794342796492E-01 + 0.1465364963905609E-01 + 0.1462939876720229E-01 + 0.1460519076396873E-01 + 0.1458102558170545E-01 + 0.1455690317299387E-01 + 0.1453282349041560E-01 + 0.1450878648655256E-01 + 0.1448479211397127E-01 + 0.1446084032472631E-01 + 0.1443693107025252E-01 + 0.1441306430218269E-01 + 0.1438923997487174E-01 + 0.1436545804442512E-01 + 0.1434171846475439E-01 + 0.1431802117807012E-01 + 0.1429436612276763E-01 + 0.1427075324672007E-01 + 0.1424718252217860E-01 + 0.1422365392478601E-01 + 0.1420016741077163E-01 + 0.1417672291053523E-01 + 0.1415332035428567E-01 + 0.1412995969336355E-01 + 0.1410664089406268E-01 + 0.1408336392091037E-01 + 0.1406012872619622E-01 + 0.1403693525775586E-01 + 0.1401378346538247E-01 + 0.1399067330447229E-01 + 0.1396760473129899E-01 + 0.1394457769618580E-01 + 0.1392159214074842E-01 + 0.1389864800678314E-01 + 0.1387574524935058E-01 + 0.1385288383383178E-01 + 0.1383006372330846E-01 + 0.1380728486396349E-01 + 0.1378454719515853E-01 + 0.1376185066110994E-01 + 0.1373919522148462E-01 + 0.1371658083894939E-01 + 0.1369400747253738E-01 + 0.1367147507542864E-01 + 0.1364898359993162E-01 + 0.1362653299234038E-01 + 0.1360412319380670E-01 + 0.1358175414772834E-01 + 0.1355942581527029E-01 + 0.1353713816553813E-01 + 0.1351489115941283E-01 + 0.1349268472863392E-01 + 0.1347051879875098E-01 + 0.1344839331601091E-01 + 0.1342630826339460E-01 + 0.1340426362624049E-01 + 0.1338225936070061E-01 + 0.1336029539551343E-01 + 0.1333837166074570E-01 + 0.1331648810625676E-01 + 0.1329464469168398E-01 + 0.1327284137471405E-01 + 0.1325107810509890E-01 + 0.1322935483068154E-01 + 0.1320767150418434E-01 + 0.1318602808788355E-01 + 0.1316442454474067E-01 + 0.1314286082741041E-01 + 0.1312133687791447E-01 + 0.1309985263873434E-01 + 0.1307840806121141E-01 + 0.1305700310151778E-01 + 0.1303563771460698E-01 + 0.1301431184988612E-01 + 0.1299302545527480E-01 + 0.1297177848409234E-01 + 0.1295057090133809E-01 + 0.1292940267295695E-01 + 0.1290827374800643E-01 + 0.1288718405640659E-01 + 0.1286613352960933E-01 + 0.1284512212618431E-01 + 0.1282414982099999E-01 + 0.1280321658467860E-01 + 0.1278232236604851E-01 + 0.1276146710730399E-01 + 0.1274065075055273E-01 + 0.1271987323769912E-01 + 0.1269913451102809E-01 + 0.1267843452735671E-01 + 0.1265777326159746E-01 + 0.1263715068740070E-01 + 0.1261656674957839E-01 + 0.1259602137385722E-01 + 0.1257551449216656E-01 + 0.1255504607202918E-01 + 0.1253461609298929E-01 + 0.1251422452192579E-01 + 0.1249387129210045E-01 + 0.1247355633162004E-01 + 0.1245327958418459E-01 + 0.1243304101483907E-01 + 0.1241284058945874E-01 + 0.1239267826411883E-01 + 0.1237255398775960E-01 + 0.1235246770956861E-01 + 0.1233241938121620E-01 + 0.1231240895530578E-01 + 0.1229243638500112E-01 + 0.1227250162511029E-01 + 0.1225260463064851E-01 + 0.1223274535140347E-01 + 0.1221292372929118E-01 + 0.1219313970638844E-01 + 0.1217339323765922E-01 + 0.1215368428838194E-01 + 0.1213401282165902E-01 + 0.1211437878383188E-01 + 0.1209478211426549E-01 + 0.1207522275705067E-01 + 0.1205570067181978E-01 + 0.1203621582132829E-01 + 0.1201676816461920E-01 + 0.1199735765458037E-01 + 0.1197798424324302E-01 + 0.1195864787752413E-01 + 0.1193934849984299E-01 + 0.1192008605428310E-01 + 0.1190086049879008E-01 + 0.1188167179769489E-01 + 0.1186251991148533E-01 + 0.1184340478652614E-01 + 0.1182432636598620E-01 + 0.1180528459488842E-01 + 0.1178627942164429E-01 + 0.1176731079564153E-01 + 0.1174837867957064E-01 + 0.1172948304897314E-01 + 0.1171062387579173E-01 + 0.1169180109658468E-01 + 0.1167301462990283E-01 + 0.1165426440409371E-01 + 0.1163555038783115E-01 + 0.1161687255992380E-01 + 0.1159823088648810E-01 + 0.1157962530804056E-01 + 0.1156105576237535E-01 + 0.1154252219641934E-01 + 0.1152402456678978E-01 + 0.1150556283004322E-01 + 0.1148713693761536E-01 + 0.1146874683806678E-01 + 0.1145039248207113E-01 + 0.1143207382999721E-01 + 0.1141379084492338E-01 + 0.1139554348393513E-01 + 0.1137733169075814E-01 + 0.1135915540749879E-01 + 0.1134101458202003E-01 + 0.1132290916889476E-01 + 0.1130483912294920E-01 + 0.1128680439762981E-01 + 0.1126880494552957E-01 + 0.1125084071876348E-01 + 0.1123291166710242E-01 + 0.1121501773959292E-01 + 0.1119715888958782E-01 + 0.1117933508106738E-01 + 0.1116154627924361E-01 + 0.1114379243506367E-01 + 0.1112607348120278E-01 + 0.1110838935067889E-01 + 0.1109073999577698E-01 + 0.1107312538190371E-01 + 0.1105554547275003E-01 + 0.1103800022094480E-01 + 0.1102048957525567E-01 + 0.1100301348559802E-01 + 0.1098557190503826E-01 + 0.1096816478715620E-01 + 0.1095079208456253E-01 + 0.1093345374850295E-01 + 0.1091614973030967E-01 + 0.1089887998403230E-01 + 0.1088164446575596E-01 + 0.1086444312981419E-01 + 0.1084727591922657E-01 + 0.1083014277263393E-01 + 0.1081304363657216E-01 + 0.1079597848159412E-01 + 0.1077894728253349E-01 + 0.1076194999841924E-01 + 0.1074498656378758E-01 + 0.1072805691169775E-01 + 0.1071116098564938E-01 + 0.1069429873773783E-01 + 0.1067747012213252E-01 + 0.1066067510579435E-01 + 0.1064391366117268E-01 + 0.1062718575224148E-01 + 0.1061049131426560E-01 + 0.1059383027662173E-01 + 0.1057720258208107E-01 + 0.1056060819627688E-01 + 0.1054404708640904E-01 + 0.1052751920677072E-01 + 0.1051102449998061E-01 + 0.1049456290877965E-01 + 0.1047813438019764E-01 + 0.1046173886330009E-01 + 0.1044537631189699E-01 + 0.1042904669760049E-01 + 0.1041274999603958E-01 + 0.1039648616457477E-01 + 0.1038025512618429E-01 + 0.1036405680124856E-01 + 0.1034789113750847E-01 + 0.1033175810988918E-01 + 0.1031565769255264E-01 + 0.1029958984247924E-01 + 0.1028355450764313E-01 + 0.1026755163573869E-01 + 0.1025158117361991E-01 + 0.1023564306792970E-01 + 0.1021973726670864E-01 + 0.1020386372090165E-01 + 0.1018802238200394E-01 + 0.1017221320661218E-01 + 0.1015643615689036E-01 + 0.1014069119406479E-01 + 0.1012497826709746E-01 + 0.1010929731786040E-01 + 0.1009364829018222E-01 + 0.1007803113742931E-01 + 0.1006244581574005E-01 + 0.1004689227898474E-01 + 0.1003137047582124E-01 + 0.1001588035434838E-01 + 0.1000042186823025E-01 + 0.9984994977803435E-02 + 0.9969599643070676E-02 + 0.9954235815722010E-02 + 0.9938903442153922E-02 + 0.9923602469657471E-02 + 0.9908332850623619E-02 + 0.9893094539096378E-02 + 0.9877887488554038E-02 + 0.9862711651033218E-02 + 0.9847566978356994E-02 + 0.9832453422844644E-02 + 0.9817370937469361E-02 + 0.9802319475138024E-02 + 0.9787298987310427E-02 + 0.9772309424432121E-02 + 0.9757350737315321E-02 + 0.9742422879023950E-02 + 0.9727525803432556E-02 + 0.9712659463804828E-02 + 0.9697823811677026E-02 + 0.9683018798293603E-02 + 0.9668244375443175E-02 + 0.9653500495702819E-02 + 0.9638787111707046E-02 + 0.9624104176025096E-02 + 0.9609451641175786E-02 + 0.9594829459585592E-02 + 0.9580237583089300E-02 + 0.9565675963285329E-02 + 0.9551144551970211E-02 + 0.9536643301563476E-02 + 0.9522172164606477E-02 + 0.9507731093641404E-02 + 0.9493320041211833E-02 + 0.9478938959832972E-02 + 0.9464587801526660E-02 + 0.9450266517896820E-02 + 0.9435975060616880E-02 + 0.9421713381962499E-02 + 0.9407481434475727E-02 + 0.9393279170699762E-02 + 0.9379106543177745E-02 + 0.9364963504449106E-02 + 0.9350850006730154E-02 + 0.9336766001669519E-02 + 0.9322711440881465E-02 + 0.9308686276452654E-02 + 0.9294690460909026E-02 + 0.9280723946793474E-02 + 0.9266786686650288E-02 + 0.9252878633024480E-02 + 0.9238999738296220E-02 + 0.9225149954205056E-02 + 0.9211329232337578E-02 + 0.9197537524591184E-02 + 0.9183774783465619E-02 + 0.9170040961527276E-02 + 0.9156336011285113E-02 + 0.9142659885189264E-02 + 0.9129012535654525E-02 + 0.9115393914793485E-02 + 0.9101803974555685E-02 + 0.9088242666775605E-02 + 0.9074709942796686E-02 + 0.9061205753835171E-02 + 0.9047730052114920E-02 + 0.9034282792017212E-02 + 0.9020863928130842E-02 + 0.9007473413020303E-02 + 0.8994111196977750E-02 + 0.8980777230348124E-02 + 0.8967471465286719E-02 + 0.8954193855026251E-02 + 0.8940944352525102E-02 + 0.8927722909349713E-02 + 0.8914529476649781E-02 + 0.8901364006238826E-02 + 0.8888226451503078E-02 + 0.8875116766031088E-02 + 0.8862034902533482E-02 + 0.8848980812637915E-02 + 0.8835954447906797E-02 + 0.8822955759920561E-02 + 0.8809984700271571E-02 + 0.8797041220787797E-02 + 0.8784125274563753E-02 + 0.8771236815117018E-02 + 0.8758375795466131E-02 + 0.8745542167319314E-02 + 0.8732735882176595E-02 + 0.8719956891720656E-02 + 0.8707205147881627E-02 + 0.8694480602616071E-02 + 0.8681783207999304E-02 + 0.8669112916192363E-02 + 0.8656469679525236E-02 + 0.8643853451331591E-02 + 0.8631264185317370E-02 + 0.8618701834393017E-02 + 0.8606166349149975E-02 + 0.8593657679788045E-02 + 0.8581175778037785E-02 + 0.8568720597912334E-02 + 0.8556292093474754E-02 + 0.8543890216656212E-02 + 0.8531514917697866E-02 + 0.8519166147120185E-02 + 0.8506843857632928E-02 + 0.8494548002847754E-02 + 0.8482278536153491E-02 + 0.8470035410208549E-02 + 0.8457818577514333E-02 + 0.8445627989909299E-02 + 0.8433463598143485E-02 + 0.8421325352945724E-02 + 0.8409213206496068E-02 + 0.8397127112238765E-02 + 0.8385067023583785E-02 + 0.8373032893364274E-02 + 0.8361024674150404E-02 + 0.8349042318137157E-02 + 0.8337085776172772E-02 + 0.8325154998813783E-02 + 0.8313249937712628E-02 + 0.8301370546504655E-02 + 0.8289516778974114E-02 + 0.8277688587631184E-02 + 0.8265885923767005E-02 + 0.8254108738725016E-02 + 0.8242356984706500E-02 + 0.8230630614344847E-02 + 0.8218929580257017E-02 + 0.8207253834980580E-02 + 0.8195603331031078E-02 + 0.8183978020640803E-02 + 0.8172377855476317E-02 + 0.8160802787154340E-02 + 0.8149252767728516E-02 + 0.8137727749711759E-02 + 0.8126227685640854E-02 + 0.8114752528073046E-02 + 0.8103302229576897E-02 + 0.8091876742561654E-02 + 0.8080476018723793E-02 + 0.8069100009562611E-02 + 0.8057748666975142E-02 + 0.8046421943735977E-02 + 0.8035119792712687E-02 + 0.8023842166040261E-02 + 0.8012589015007976E-02 + 0.8001360290984326E-02 + 0.7990155946707276E-02 + 0.7978975935753805E-02 + 0.7967820211444264E-02 + 0.7956688725760208E-02 + 0.7945581430266985E-02 + 0.7934498276538957E-02 + 0.7923439216172766E-02 + 0.7912404200789933E-02 + 0.7901393182804613E-02 + 0.7890406115636635E-02 + 0.7879442952685563E-02 + 0.7868503646299102E-02 + 0.7857588148115613E-02 + 0.7846696409741277E-02 + 0.7835828382677366E-02 + 0.7824984018389847E-02 + 0.7814163268945285E-02 + 0.7803366088036023E-02 + 0.7792592429591211E-02 + 0.7781842245902969E-02 + 0.7771115486980261E-02 + 0.7760412102872096E-02 + 0.7749732046595151E-02 + 0.7739075273367588E-02 + 0.7728441737816772E-02 + 0.7717831390577091E-02 + 0.7707244180752733E-02 + 0.7696680058531258E-02 + 0.7686138977365982E-02 + 0.7675620891306878E-02 + 0.7665125753561766E-02 + 0.7654653516046150E-02 + 0.7644204130604887E-02 + 0.7633777549721334E-02 + 0.7623373726399457E-02 + 0.7612992613420762E-02 + 0.7602634161914125E-02 + 0.7592298322306588E-02 + 0.7581985045707532E-02 + 0.7571694285515617E-02 + 0.7561425995595256E-02 + 0.7551180128888786E-02 + 0.7540956636780349E-02 + 0.7530755470540989E-02 + 0.7520576582151105E-02 + 0.7510419924226675E-02 + 0.7500285449396595E-02 + 0.7490173110215348E-02 + 0.7480082859202442E-02 + 0.7470014648711063E-02 + 0.7459968430476026E-02 + 0.7449944156091437E-02 + 0.7439941777468363E-02 + 0.7429961247108659E-02 + 0.7420002517576117E-02 + 0.7410065541378606E-02 + 0.7400150270968888E-02 + 0.7390256658761847E-02 + 0.7380384656859760E-02 + 0.7370534217202655E-02 + 0.7360705291617630E-02 + 0.7350897831469214E-02 + 0.7341111788008776E-02 + 0.7331347113478764E-02 + 0.7321603762160454E-02 + 0.7311881688518744E-02 + 0.7302180845230164E-02 + 0.7292501183038082E-02 + 0.7282842652639032E-02 + 0.7273205205220927E-02 + 0.7263588792252927E-02 + 0.7253993365702507E-02 + 0.7244418879823156E-02 + 0.7234865289520560E-02 + 0.7225332548025888E-02 + 0.7215820604762114E-02 + 0.7206329408712087E-02 + 0.7196858911630465E-02 + 0.7187409068563579E-02 + 0.7177979834489322E-02 + 0.7168571161456850E-02 + 0.7159182999668490E-02 + 0.7149815299616592E-02 + 0.7140468013435569E-02 + 0.7131141093787326E-02 + 0.7121834493545038E-02 + 0.7112548166113339E-02 + 0.7103282064948381E-02 + 0.7094036142293545E-02 + 0.7084810348809489E-02 + 0.7075604635152041E-02 + 0.7066418953284704E-02 + 0.7057253256078509E-02 + 0.7048107496343896E-02 + 0.7038981626438013E-02 + 0.7029875598556600E-02 + 0.7020789364998155E-02 + 0.7011722878348775E-02 + 0.7002676091235932E-02 + 0.6993648955870851E-02 + 0.6984641423867398E-02 + 0.6975653446828939E-02 + 0.6966684976886124E-02 + 0.6957735966572000E-02 + 0.6948806368432059E-02 + 0.6939896135026763E-02 + 0.6931005218922346E-02 + 0.6922133572457913E-02 + 0.6913281147267867E-02 + 0.6904447894858402E-02 + 0.6895633767245033E-02 + 0.6886838717247755E-02 + 0.6878062697707463E-02 + 0.6869305660609085E-02 + 0.6860567557219614E-02 + 0.6851848338989342E-02 + 0.6843147958847712E-02 + 0.6834466370371812E-02 + 0.6825803526760267E-02 + 0.6817159379896205E-02 + 0.6808533881378676E-02 + 0.6799926982763036E-02 + 0.6791338635528721E-02 + 0.6782768791209854E-02 + 0.6774217402582375E-02 + 0.6765684423566514E-02 + 0.6757169807808673E-02 + 0.6748673506395909E-02 + 0.6740195469176314E-02 + 0.6731735646931611E-02 + 0.6723293994062627E-02 + 0.6714870465822514E-02 + 0.6706465015502660E-02 + 0.6698077592629731E-02 + 0.6689708146404668E-02 + 0.6681356628392640E-02 + 0.6673022992551686E-02 + 0.6664707192795899E-02 + 0.6656409181669919E-02 + 0.6648128910986452E-02 + 0.6639866332740124E-02 + 0.6631621399733831E-02 + 0.6623394064982190E-02 + 0.6615184280735688E-02 + 0.6606991997625261E-02 + 0.6598817166131160E-02 + 0.6590659738298575E-02 + 0.6582519667912580E-02 + 0.6574396908697922E-02 + 0.6566291412820480E-02 + 0.6558203131527536E-02 + 0.6550132016248737E-02 + 0.6542078019340247E-02 + 0.6534041093434119E-02 + 0.6526021191138120E-02 + 0.6518018265003085E-02 + 0.6510032267558570E-02 + 0.6502063150887358E-02 + 0.6494110866526471E-02 + 0.6486175366047636E-02 + 0.6478256601817756E-02 + 0.6470354526719843E-02 + 0.6462469093440808E-02 + 0.6454600253577753E-02 + 0.6446747958368081E-02 + 0.6438912159641324E-02 + 0.6431092810765376E-02 + 0.6423289865333865E-02 + 0.6415503276069040E-02 + 0.6407732994523188E-02 + 0.6399978972186551E-02 + 0.6392241160817948E-02 + 0.6384519512368001E-02 + 0.6376813978814023E-02 + 0.6369124512267298E-02 + 0.6361451064888697E-02 + 0.6353793589191325E-02 + 0.6346152038703067E-02 + 0.6338526367107877E-02 + 0.6330916526733866E-02 + 0.6323322467906900E-02 + 0.6315744140932447E-02 + 0.6308181498285668E-02 + 0.6300634494145170E-02 + 0.6293103082337428E-02 + 0.6285587214045021E-02 + 0.6278086839372763E-02 + 0.6270601909219726E-02 + 0.6263132377038712E-02 + 0.6255678196778296E-02 + 0.6248239321400239E-02 + 0.6240815702262071E-02 + 0.6233407290615418E-02 + 0.6226014038448859E-02 + 0.6218635898386783E-02 + 0.6211272823063478E-02 + 0.6203924765031412E-02 + 0.6196591676806142E-02 + 0.6189273510732186E-02 + 0.6181970218545123E-02 + 0.6174681751848361E-02 + 0.6167408062557983E-02 + 0.6160149103150218E-02 + 0.6152904826160373E-02 + 0.6145675184140655E-02 + 0.6138460129659284E-02 + 0.6131259615206222E-02 + 0.6124073592610396E-02 + 0.6116902013371073E-02 + 0.6109744829219700E-02 + 0.6102601992818913E-02 + 0.6095473457058330E-02 + 0.6088359174312074E-02 + 0.6081259095935165E-02 + 0.6074173173208144E-02 + 0.6067101358528529E-02 + 0.6060043605456564E-02 + 0.6052999867470249E-02 + 0.6045970096757292E-02 + 0.6038954244795197E-02 + 0.6031952263127078E-02 + 0.6024964103618562E-02 + 0.6017989718224742E-02 + 0.6011029058959892E-02 + 0.6004082077967553E-02 + 0.5997148727431640E-02 + 0.5990228960227642E-02 + 0.5983322730021881E-02 + 0.5976429990330189E-02 + 0.5969550692593582E-02 + 0.5962684786994466E-02 + 0.5955832224242953E-02 + 0.5948992957736737E-02 + 0.5942166941696533E-02 + 0.5935354129251918E-02 + 0.5928554470894804E-02 + 0.5921767916771779E-02 + 0.5914994418662990E-02 + 0.5908233930401120E-02 + 0.5901486405821120E-02 + 0.5894751797195539E-02 + 0.5888030055753389E-02 + 0.5881321132876165E-02 + 0.5874624980888190E-02 + 0.5867941552436028E-02 + 0.5861270800133173E-02 + 0.5854612676503611E-02 + 0.5847967134048620E-02 + 0.5841334124915766E-02 + 0.5834713600763974E-02 + 0.5828105513248810E-02 + 0.5821509814478234E-02 + 0.5814926456892554E-02 + 0.5808355392986606E-02 + 0.5801796575542716E-02 + 0.5795249957451864E-02 + 0.5788715491030785E-02 + 0.5782193126887907E-02 + 0.5775682815343477E-02 + 0.5769184508308944E-02 + 0.5762698160113922E-02 + 0.5756223725194283E-02 + 0.5749761156436870E-02 + 0.5743310405477429E-02 + 0.5736871423815498E-02 + 0.5730444162260152E-02 + 0.5724028571330426E-02 + 0.5717624602427058E-02 + 0.5711232209869330E-02 + 0.5704851348554766E-02 + 0.5698481971587270E-02 + 0.5692124029069092E-02 + 0.5685777470940920E-02 + 0.5679442249471309E-02 + 0.5673118318994559E-02 + 0.5666805633536591E-02 + 0.5660504144191768E-02 + 0.5654213800691087E-02 + 0.5647934553765783E-02 + 0.5641666357856051E-02 + 0.5635409168235191E-02 + 0.5629162938156274E-02 + 0.5622927617145422E-02 + 0.5616703154433266E-02 + 0.5610489501590383E-02 + 0.5604286612468197E-02 + 0.5598094440893534E-02 + 0.5591912939657856E-02 + 0.5585742061020697E-02 + 0.5579581757088405E-02 + 0.5573431979357297E-02 + 0.5567292679172590E-02 + 0.5561163808637613E-02 + 0.5555045321399361E-02 + 0.5548937171233165E-02 + 0.5542839310364527E-02 + 0.5536751689359556E-02 + 0.5530674258845142E-02 + 0.5524606970841611E-02 + 0.5518549778159042E-02 + 0.5512502633576712E-02 + 0.5506465489692173E-02 + 0.5500438299049513E-02 + 0.5494421013844645E-02 + 0.5488413585489692E-02 + 0.5482415965322961E-02 + 0.5476428105728340E-02 + 0.5470449960319527E-02 + 0.5464481482647083E-02 + 0.5458522624775326E-02 + 0.5452573337840577E-02 + 0.5446633573244538E-02 + 0.5440703283812277E-02 + 0.5434782422818431E-02 + 0.5428870942712170E-02 + 0.5422968793885041E-02 + 0.5417075926466813E-02 + 0.5411192292639363E-02 + 0.5405317847237086E-02 + 0.5399452545044133E-02 + 0.5393596337974698E-02 + 0.5387749175970440E-02 + 0.5381911009402489E-02 + 0.5376081791302405E-02 + 0.5370261475639241E-02 + 0.5364450015771062E-02 + 0.5358647363364519E-02 + 0.5352853469801390E-02 + 0.5347068286696459E-02 + 0.5341291765995605E-02 + 0.5335523859678055E-02 + 0.5329764519840909E-02 + 0.5324013698670368E-02 + 0.5318271348496433E-02 + 0.5312537422548475E-02 + 0.5306811874407399E-02 + 0.5301094657024632E-02 + 0.5295385721417142E-02 + 0.5289685018242606E-02 + 0.5283992498812338E-02 + 0.5278308115459978E-02 + 0.5272631820656164E-02 + 0.5266963567678894E-02 + 0.5261303310476942E-02 + 0.5255651002563964E-02 + 0.5250006594214153E-02 + 0.5244370034297940E-02 + 0.5238741273127858E-02 + 0.5233120265958653E-02 + 0.5227506969066899E-02 + 0.5221901336137785E-02 + 0.5216303316392066E-02 + 0.5210712858750078E-02 + 0.5205129914901994E-02 + 0.5199554439066035E-02 + 0.5193986385306237E-02 + 0.5188425705714494E-02 + 0.5182872351437585E-02 + 0.5177326273867897E-02 + 0.5171787425353837E-02 + 0.5166255758471752E-02 + 0.5160731225890359E-02 + 0.5155213780453884E-02 + 0.5149703374972551E-02 + 0.5144199961018123E-02 + 0.5138703488920746E-02 + 0.5133213909250132E-02 + 0.5127731175219945E-02 + 0.5122255241442854E-02 + 0.5116786062011997E-02 + 0.5111323588766843E-02 + 0.5105867772951605E-02 + 0.5100418565991268E-02 + 0.5094975919690135E-02 + 0.5089539785915949E-02 + 0.5084110116967762E-02 + 0.5078686865619613E-02 + 0.5073269984580495E-02 + 0.5067859425649152E-02 + 0.5062455140093149E-02 + 0.5057057079503569E-02 + 0.5051665197029129E-02 + 0.5046279446275173E-02 + 0.5040899780262347E-02 + 0.5035526150654565E-02 + 0.5030158508930105E-02 + 0.5024796806775723E-02 + 0.5019440996130488E-02 + 0.5014091028958844E-02 + 0.5008746857344262E-02 + 0.5003408433446692E-02 + 0.4998075709621028E-02 + 0.4992748639240991E-02 + 0.4987427176012153E-02 + 0.4982111272751601E-02 + 0.4976800879992601E-02 + 0.4971495947946757E-02 + 0.4966196428472316E-02 + 0.4960902275617123E-02 + 0.4955613443411958E-02 + 0.4950329883660124E-02 + 0.4945051546589586E-02 + 0.4939778382774506E-02 + 0.4934510345017362E-02 + 0.4929247386931245E-02 + 0.4923989461877095E-02 + 0.4918736522493629E-02 + 0.4913488521277779E-02 + 0.4908245410009790E-02 + 0.4903007139421804E-02 + 0.4897773660262939E-02 + 0.4892544924804676E-02 + 0.4887320886502266E-02 + 0.4882101498752409E-02 + 0.4876886714362697E-02 + 0.4871676485902862E-02 + 0.4866470765519448E-02 + 0.4861269504020410E-02 + 0.4856072651967152E-02 + 0.4850880161114440E-02 + 0.4845691985138176E-02 + 0.4840508077811111E-02 + 0.4835328391550221E-02 + 0.4830152877613920E-02 + 0.4824981487351464E-02 + 0.4819814173055126E-02 + 0.4814650887438432E-02 + 0.4809491583124085E-02 + 0.4804336212407828E-02 + 0.4799184727515151E-02 + 0.4794037080830890E-02 + 0.4788893225022497E-02 + 0.4783753112752836E-02 + 0.4778616695993339E-02 + 0.4773483926066307E-02 + 0.4768354754224918E-02 + 0.4763229131357982E-02 + 0.4758107008174451E-02 + 0.4752988337475419E-02 + 0.4747873080280323E-02 + 0.4742761199725404E-02 + 0.4737652671429403E-02 + 0.4732547495437539E-02 + 0.4727445674566445E-02 + 0.4722347210153393E-02 + 0.4717252102010288E-02 + 0.4712160349776410E-02 + 0.4707071952133758E-02 + 0.4701986907242681E-02 + 0.4696905213397090E-02 + 0.4691826869498038E-02 + 0.4686751874613736E-02 + 0.4681680228043223E-02 + 0.4676611929584579E-02 + 0.4671546979081859E-02 + 0.4666485375822665E-02 + 0.4661427118464339E-02 + 0.4656372205702818E-02 + 0.4651320637000673E-02 + 0.4646272412281009E-02 + 0.4641227531319975E-02 + 0.4636185993146946E-02 + 0.4631147796564461E-02 + 0.4626112940467355E-02 + 0.4621081423971395E-02 + 0.4616053246221611E-02 + 0.4611028406253878E-02 + 0.4606006902968223E-02 + 0.4600988735288387E-02 + 0.4595973902525484E-02 + 0.4590962404246859E-02 + 0.4585954240071775E-02 + 0.4580949409877019E-02 + 0.4575947913625456E-02 + 0.4570949750729806E-02 + 0.4565954919144351E-02 + 0.4560963416610948E-02 + 0.4555975242031638E-02 + 0.4550990395895659E-02 + 0.4546008878663173E-02 + 0.4541030688817656E-02 + 0.4536055823404230E-02 + 0.4531084280051458E-02 + 0.4526116060127766E-02 + 0.4521151166404057E-02 + 0.4516189599861818E-02 + 0.4511231356210507E-02 + 0.4506276430257636E-02 + 0.4501324820292203E-02 + 0.4496376529842788E-02 + 0.4491431562575325E-02 + 0.4486489917467978E-02 + 0.4481551589749061E-02 + 0.4476616575119211E-02 + 0.4471684873201633E-02 + 0.4466756485251484E-02 + 0.4461831412240468E-02 + 0.4456909654195782E-02 + 0.4451991210935764E-02 + 0.4447076081114991E-02 + 0.4442164261459648E-02 + 0.4437255748680814E-02 + 0.4432350542552848E-02 + 0.4427448645542560E-02 + 0.4422550059675050E-02 + 0.4417654782909941E-02 + 0.4412762811335347E-02 + 0.4407874142057730E-02 + 0.4402988775926772E-02 + 0.4398106714628227E-02 + 0.4393227958335552E-02 + 0.4388352504459997E-02 + 0.4383480350212063E-02 + 0.4378611494822042E-02 + 0.4373745939470290E-02 + 0.4368883685172158E-02 + 0.4364024730846023E-02 + 0.4359169074343721E-02 + 0.4354316713665229E-02 + 0.4349467647445337E-02 + 0.4344621874485154E-02 + 0.4339779394340510E-02 + 0.4334940208088667E-02 + 0.4330104316897224E-02 + 0.4325271719564249E-02 + 0.4320442412374953E-02 + 0.4315616391894716E-02 + 0.4310793658574859E-02 + 0.4305974215047263E-02 + 0.4301158062998100E-02 + 0.4296345199732707E-02 + 0.4291535621327513E-02 + 0.4286729325435715E-02 + 0.4281926313223563E-02 + 0.4277126586270566E-02 + 0.4272330144268195E-02 + 0.4267536984708406E-02 + 0.4262747105115397E-02 + 0.4257960504729194E-02 + 0.4253177183850815E-02 + 0.4248397142559565E-02 + 0.4243620379739221E-02 + 0.4238846893899167E-02 + 0.4234076683920417E-02 + 0.4229309749600752E-02 + 0.4224546090865139E-02 + 0.4219785707200051E-02 + 0.4215028597530585E-02 + 0.4210274760740985E-02 + 0.4205524195663324E-02 + 0.4200776901094162E-02 + 0.4196032875994678E-02 + 0.4191292120254639E-02 + 0.4186554634086947E-02 + 0.4181820417056120E-02 + 0.4177089466953010E-02 + 0.4172361781299721E-02 + 0.4167637359102841E-02 + 0.4162916201458482E-02 + 0.4158198309477336E-02 + 0.4153483682224437E-02 + 0.4148772317233395E-02 + 0.4144064212278050E-02 + 0.4139359366872473E-02 + 0.4134657781204414E-02 + 0.4129959455181044E-02 + 0.4125264387853203E-02 + 0.4120572578107626E-02 + 0.4115884024702206E-02 + 0.4111198726195252E-02 + 0.4106516681213055E-02 + 0.4101837889792744E-02 + 0.4097162353132386E-02 + 0.4092490072039152E-02 + 0.4087821044329293E-02 + 0.4083155266536353E-02 + 0.4078492736111977E-02 + 0.4073833453624679E-02 + 0.4069177420288540E-02 + 0.4064524636396621E-02 + 0.4059875100670856E-02 + 0.4055228811685420E-02 + 0.4050585768124067E-02 + 0.4045945968769616E-02 + 0.4041309412549515E-02 + 0.4036676099504532E-02 + 0.4032046030203560E-02 + 0.4027419204420567E-02 + 0.4022795618928889E-02 + 0.4018175269819704E-02 + 0.4013558155656322E-02 + 0.4008944279651939E-02 + 0.4004333645343160E-02 + 0.3999726251944233E-02 + 0.3995122094377281E-02 + 0.3990521167949134E-02 + 0.3985923473024012E-02 + 0.3981329012615578E-02 + 0.3976737788636359E-02 + 0.3972149798290110E-02 + 0.3967565037559013E-02 + 0.3962983504124637E-02 + 0.3958405199197761E-02 + 0.3953830124356990E-02 + 0.3949258279246783E-02 + 0.3944689661402032E-02 + 0.3940124268406796E-02 + 0.3935562099411470E-02 + 0.3931003154471430E-02 + 0.3926447433565224E-02 + 0.3921894936261754E-02 + 0.3917345662010344E-02 + 0.3912799610213157E-02 + 0.3908256780164015E-02 + 0.3903717171120880E-02 + 0.3899180781664700E-02 + 0.3894647609565197E-02 + 0.3890117652723157E-02 + 0.3885590911081244E-02 + 0.3881067385881640E-02 + 0.3876547077875721E-02 + 0.3872029985152786E-02 + 0.3867516104941612E-02 + 0.3863005435494100E-02 + 0.3858497977665126E-02 + 0.3853993732680960E-02 + 0.3849492700312676E-02 + 0.3844994878414865E-02 + 0.3840500264777677E-02 + 0.3836008858054948E-02 + 0.3831520657505427E-02 + 0.3827035662423492E-02 + 0.3822553872238071E-02 + 0.3818075286426656E-02 + 0.3813599904579114E-02 + 0.3809127726602119E-02 + 0.3804658752441284E-02 + 0.3800192981211345E-02 + 0.3795730410823645E-02 + 0.3791271039180946E-02 + 0.3786814865468643E-02 + 0.3782361889859964E-02 + 0.3777912112388366E-02 + 0.3773465532014639E-02 + 0.3769022147271367E-02 + 0.3764581956991453E-02 + 0.3760144960952428E-02 + 0.3755711159109707E-02 + 0.3751280550983021E-02 + 0.3746853135397648E-02 + 0.3742428911132001E-02 + 0.3738007877227506E-02 + 0.3733590032948209E-02 + 0.3729175377492849E-02 + 0.3724763909533792E-02 + 0.3720355627510736E-02 + 0.3715950530400249E-02 + 0.3711548619054365E-02 + 0.3707149894714977E-02 + 0.3702754357014496E-02 + 0.3698362002758651E-02 + 0.3693972828582221E-02 + 0.3689586833460957E-02 + 0.3685204018547233E-02 + 0.3680824384871983E-02 + 0.3676447931797036E-02 + 0.3672074657868420E-02 + 0.3667704561686472E-02 + 0.3663337642083886E-02 + 0.3658973897953158E-02 + 0.3654613328597289E-02 + 0.3650255934114522E-02 + 0.3645901714640767E-02 + 0.3641550669035324E-02 + 0.3637202794853724E-02 + 0.3632858089839128E-02 + 0.3628516554006928E-02 + 0.3624178188598410E-02 + 0.3619842994287445E-02 + 0.3615510969241881E-02 + 0.3611182110956685E-02 + 0.3606856417722890E-02 + 0.3602533889535082E-02 + 0.3598214526585085E-02 + 0.3593898328424683E-02 + 0.3589585293887665E-02 + 0.3585275421774997E-02 + 0.3580968710942634E-02 + 0.3576665160279195E-02 + 0.3572364768817484E-02 + 0.3568067536283154E-02 + 0.3563773462608983E-02 + 0.3559482547346219E-02 + 0.3555194789142854E-02 + 0.3550910186537993E-02 + 0.3546628738826024E-02 + 0.3542350446232263E-02 + 0.3538075308905254E-02 + 0.3533803325401027E-02 + 0.3529534493232495E-02 + 0.3525268810343659E-02 + 0.3521006277093233E-02 + 0.3516746894646205E-02 + 0.3512490663345658E-02 + 0.3508237581377399E-02 + 0.3503987646588016E-02 + 0.3499740857260527E-02 + 0.3495497212269269E-02 + 0.3491256710606639E-02 + 0.3487019352296841E-02 + 0.3482785138107574E-02 + 0.3478554068515841E-02 + 0.3474326142154801E-02 + 0.3470101356972846E-02 + 0.3465879711122202E-02 + 0.3461661203351651E-02 + 0.3457445832532347E-02 + 0.3453233598316899E-02 + 0.3449024501522535E-02 + 0.3444818542944987E-02 + 0.3440615721560198E-02 + 0.3436416034902354E-02 + 0.3432219480756235E-02 + 0.3428026058855393E-02 + 0.3423835769735603E-02 + 0.3419648613312505E-02 + 0.3415464587487396E-02 + 0.3411283689772241E-02 + 0.3407105918896348E-02 + 0.3402931275586436E-02 + 0.3398759760696697E-02 + 0.3394591374029838E-02 + 0.3390426114473196E-02 + 0.3386263980807613E-02 + 0.3382104971241961E-02 + 0.3377949083724549E-02 + 0.3373796316726796E-02 + 0.3369646670608459E-02 + 0.3365500146147595E-02 + 0.3361356743500817E-02 + 0.3357216461700908E-02 + 0.3353079299637747E-02 + 0.3348945255676489E-02 + 0.3344814327680479E-02 + 0.3340686513732485E-02 + 0.3336561813944652E-02 + 0.3332440229450872E-02 + 0.3328321760802418E-02 + 0.3324206406182790E-02 + 0.3320094163187384E-02 + 0.3315985030133071E-02 + 0.3311879006776394E-02 + 0.3307776093043249E-02 + 0.3303676288820166E-02 + 0.3299579593952319E-02 + 0.3295486008157339E-02 + 0.3291395529952215E-02 + 0.3287308157186878E-02 + 0.3283223888057369E-02 + 0.3279142722337960E-02 + 0.3275064660241005E-02 + 0.3270989701472633E-02 + 0.3266917844622626E-02 + 0.3262849088159198E-02 + 0.3258783431380174E-02 + 0.3254720874540651E-02 + 0.3250661417796009E-02 + 0.3246605059644693E-02 + 0.3242551797570626E-02 + 0.3238501629544567E-02 + 0.3234454556034252E-02 + 0.3230410578280212E-02 + 0.3226369696555032E-02 + 0.3222331908768308E-02 + 0.3218297212503412E-02 + 0.3214265606356048E-02 + 0.3210237090205479E-02 + 0.3206211664003438E-02 + 0.3202189327575793E-02 + 0.3198170080663515E-02 + 0.3194153922827159E-02 + 0.3190140852633650E-02 + 0.3186130868307068E-02 + 0.3182123968208681E-02 + 0.3178120151071884E-02 + 0.3174119415710446E-02 + 0.3170121761765398E-02 + 0.3166127190031054E-02 + 0.3162135701263797E-02 + 0.3158147294473890E-02 + 0.3154161967376981E-02 + 0.3150179717879617E-02 + 0.3146200545263058E-02 + 0.3142224449335376E-02 + 0.3138251429996068E-02 + 0.3134281487416052E-02 + 0.3130314621792873E-02 + 0.3126350831916203E-02 + 0.3122390114416427E-02 + 0.3118432465937899E-02 + 0.3114477886343029E-02 + 0.3110526378116857E-02 + 0.3106577943234456E-02 + 0.3102632579595777E-02 + 0.3098690283371056E-02 + 0.3094751051755001E-02 + 0.3090814885385365E-02 + 0.3086881785604496E-02 + 0.3082951752727664E-02 + 0.3079024785335270E-02 + 0.3075100881863416E-02 + 0.3071180041185024E-02 + 0.3067262262564150E-02 + 0.3063347545237298E-02 + 0.3059435888118367E-02 + 0.3055527289969777E-02 + 0.3051621749768109E-02 + 0.3047719267289652E-02 + 0.3043819842492082E-02 + 0.3039923474868318E-02 + 0.3036030163045853E-02 + 0.3032139905593618E-02 + 0.3028252701881955E-02 + 0.3024368552069482E-02 + 0.3020487456184622E-02 + 0.3016609412820584E-02 + 0.3012734419826246E-02 + 0.3008862475369952E-02 + 0.3004993578969473E-02 + 0.3001127730491837E-02 + 0.2997264929793531E-02 + 0.2993405176709305E-02 + 0.2989548471038578E-02 + 0.2985694811713028E-02 + 0.2981844196726882E-02 + 0.2977996624139287E-02 + 0.2974152093116338E-02 + 0.2970310603457378E-02 + 0.2966472154992452E-02 + 0.2962636747658957E-02 + 0.2958804381422188E-02 + 0.2954975055549824E-02 + 0.2951148767723928E-02 + 0.2947325515464081E-02 + 0.2943505298102758E-02 + 0.2939688117124079E-02 + 0.2935873973854259E-02 + 0.2932062866433309E-02 + 0.2928254790993203E-02 + 0.2924449744463212E-02 + 0.2920647728036252E-02 + 0.2916848744268616E-02 + 0.2913052794169977E-02 + 0.2909259874856201E-02 + 0.2905469982876568E-02 + 0.2901683116206053E-02 + 0.2897899274679288E-02 + 0.2894118458292195E-02 + 0.2890340667506570E-02 + 0.2886565903107376E-02 + 0.2882794165440484E-02 + 0.2879025452293077E-02 + 0.2875259760541825E-02 + 0.2871497087859400E-02 + 0.2867737434143367E-02 + 0.2863980799667378E-02 + 0.2860227184258721E-02 + 0.2856476587104446E-02 + 0.2852729007385105E-02 + 0.2848984444915014E-02 + 0.2845242899991898E-02 + 0.2841504372569909E-02 + 0.2837768860319539E-02 + 0.2834036360009295E-02 + 0.2830306869348702E-02 + 0.2826580388971689E-02 + 0.2822856920061226E-02 + 0.2819136462790318E-02 + 0.2815419015737696E-02 + 0.2811704577368808E-02 + 0.2807993146615291E-02 + 0.2804284722799606E-02 + 0.2800579305183625E-02 + 0.2796876892506791E-02 + 0.2793177483279976E-02 + 0.2789481076475767E-02 + 0.2785787672662567E-02 + 0.2782097272740028E-02 + 0.2778409876557915E-02 + 0.2774725482140374E-02 + 0.2771044087361594E-02 + 0.2767365690748975E-02 + 0.2763690291431559E-02 + 0.2760017888613656E-02 + 0.2756348481926275E-02 + 0.2752682071206918E-02 + 0.2749018656085724E-02 + 0.2745358235391314E-02 + 0.2741700807763418E-02 + 0.2738046372244525E-02 + 0.2734394928649522E-02 + 0.2730746476860340E-02 + 0.2727101016280256E-02 + 0.2723458545828377E-02 + 0.2719819064395372E-02 + 0.2716182570808709E-02 + 0.2712549063862073E-02 + 0.2708918542570216E-02 + 0.2705291006894945E-02 + 0.2701666457046501E-02 + 0.2698044892432155E-02 + 0.2694426310758273E-02 + 0.2690810709575464E-02 + 0.2687198088142346E-02 + 0.2683588447615445E-02 + 0.2679981789034355E-02 + 0.2676378111214177E-02 + 0.2672777411659879E-02 + 0.2669179688239879E-02 + 0.2665584940635623E-02 + 0.2661993169066746E-02 + 0.2658404373358837E-02 + 0.2654818552414147E-02 + 0.2651235705005592E-02 + 0.2647655829998112E-02 + 0.2644078926369065E-02 + 0.2640504993131749E-02 + 0.2636934029640459E-02 + 0.2633366035470723E-02 + 0.2629801010234304E-02 + 0.2626238953715836E-02 + 0.2622679865756322E-02 + 0.2619123745786729E-02 + 0.2615570592173690E-02 + 0.2612020403119315E-02 + 0.2608473177072147E-02 + 0.2604928912811432E-02 + 0.2601387609225680E-02 + 0.2597849266355228E-02 + 0.2594313885062460E-02 + 0.2590781465876330E-02 + 0.2587252007241275E-02 + 0.2583725506836020E-02 + 0.2580201962830316E-02 + 0.2576681374811334E-02 + 0.2573163742621780E-02 + 0.2569649066204589E-02 + 0.2566137345650680E-02 + 0.2562628580951381E-02 + 0.2559122770381130E-02 + 0.2555619910867146E-02 + 0.2552119999688187E-02 + 0.2548623036697432E-02 + 0.2545129022796994E-02 + 0.2541637958599172E-02 + 0.2538149843778946E-02 + 0.2534664677817867E-02 + 0.2531182459766570E-02 + 0.2527703187975627E-02 + 0.2524226860746107E-02 + 0.2520753476640704E-02 + 0.2517283034447726E-02 + 0.2513815533133922E-02 + 0.2510350972939179E-02 + 0.2506889354677604E-02 + 0.2503430678628134E-02 + 0.2499974943153736E-02 + 0.2496522146194439E-02 + 0.2493072286001284E-02 + 0.2489625361382188E-02 + 0.2486181371250515E-02 + 0.2482740315513837E-02 + 0.2479302195021458E-02 + 0.2475867010416782E-02 + 0.2472434760309606E-02 + 0.2469005442296055E-02 + 0.2465579054401710E-02 + 0.2462155596384971E-02 + 0.2458735068430483E-02 + 0.2455317470291899E-02 + 0.2451902800871502E-02 + 0.2448491058973330E-02 + 0.2445082243441860E-02 + 0.2441676353163622E-02 + 0.2438273387093453E-02 + 0.2434873344812854E-02 + 0.2431476226248019E-02 + 0.2428082031118699E-02 + 0.2424690758216646E-02 + 0.2421302406079882E-02 + 0.2417916973729405E-02 + 0.2414534461240524E-02 + 0.2411154868790495E-02 + 0.2407778195455950E-02 + 0.2404404439055633E-02 + 0.2401033597474422E-02 + 0.2397665670040076E-02 + 0.2394300656955184E-02 + 0.2390938558208589E-02 + 0.2387579372676130E-02 + 0.2384223098892798E-02 + 0.2380869735764978E-02 + 0.2377519283096367E-02 + 0.2374171740810851E-02 + 0.2370827108378281E-02 + 0.2367485384698313E-02 + 0.2364146568635928E-02 + 0.2360810659074446E-02 + 0.2357477654909404E-02 + 0.2354147555149305E-02 + 0.2350820359421985E-02 + 0.2347496067566448E-02 + 0.2344174679191251E-02 + 0.2340856193287606E-02 + 0.2337540608744495E-02 + 0.2334227924451580E-02 + 0.2330918139299428E-02 + 0.2327611252215793E-02 + 0.2324307262646269E-02 + 0.2321006170416707E-02 + 0.2317707975264490E-02 + 0.2314412676330252E-02 + 0.2311120272528357E-02 + 0.2307830762746568E-02 + 0.2304544145795008E-02 + 0.2301260420478628E-02 + 0.2297979586125548E-02 + 0.2294701642858474E-02 + 0.2291426590781265E-02 + 0.2288154428624518E-02 + 0.2284885154010385E-02 + 0.2281618764834759E-02 + 0.2278355261091249E-02 + 0.2275094643654710E-02 + 0.2271836913005824E-02 + 0.2268582068312893E-02 + 0.2265330108468397E-02 + 0.2262081031985312E-02 + 0.2258834836741801E-02 + 0.2255591520649013E-02 + 0.2252351083364744E-02 + 0.2249113526095879E-02 + 0.2245878849768237E-02 + 0.2242647052727592E-02 + 0.2239418132120508E-02 + 0.2236192085896015E-02 + 0.2232968914979097E-02 + 0.2229748620961911E-02 + 0.2226531203737971E-02 + 0.2223316660068945E-02 + 0.2220104986486038E-02 + 0.2216896181871066E-02 + 0.2213690247395848E-02 + 0.2210487184132432E-02 + 0.2207286991463922E-02 + 0.2204089667906224E-02 + 0.2200895212045500E-02 + 0.2197703622784722E-02 + 0.2194514899109828E-02 + 0.2191329040267203E-02 + 0.2188146046033262E-02 + 0.2184965916230297E-02 + 0.2181788650196857E-02 + 0.2178614246753856E-02 + 0.2175442704725344E-02 + 0.2172274023214468E-02 + 0.2169108201482429E-02 + 0.2165945238672162E-02 + 0.2162785133378476E-02 + 0.2159627884043491E-02 + 0.2156473489904154E-02 + 0.2153321951985331E-02 + 0.2150173271489074E-02 + 0.2147027447514299E-02 + 0.2143884476687630E-02 + 0.2140744355748781E-02 + 0.2137607084267400E-02 + 0.2134472663579192E-02 + 0.2131341094618582E-02 + 0.2128212376141517E-02 + 0.2125086506214651E-02 + 0.2121963483575619E-02 + 0.2118843308633864E-02 + 0.2115725982008702E-02 + 0.2112611502551928E-02 + 0.2109499866831998E-02 + 0.2106391071524108E-02 + 0.2103285116575199E-02 + 0.2100182004179583E-02 + 0.2097081736028301E-02 + 0.2093984310704292E-02 + 0.2090889725695519E-02 + 0.2087797978904227E-02 + 0.2084709069380188E-02 + 0.2081622996374266E-02 + 0.2078539759360487E-02 + 0.2075459358129859E-02 + 0.2072381792453561E-02 + 0.2069307061463033E-02 + 0.2066235163806396E-02 + 0.2063166098251049E-02 + 0.2060099864396813E-02 + 0.2057036462168890E-02 + 0.2053975891251824E-02 + 0.2050918150589577E-02 + 0.2047863238986676E-02 + 0.2044811155375744E-02 + 0.2041761898889593E-02 + 0.2038715468670135E-02 + 0.2035671863719629E-02 + 0.2032631082924352E-02 + 0.2029593125231535E-02 + 0.2026557990046747E-02 + 0.2023525676974067E-02 + 0.2020496185664279E-02 + 0.2017469515924854E-02 + 0.2014445667589570E-02 + 0.2011424639918558E-02 + 0.2008406431184259E-02 + 0.2005391039579735E-02 + 0.2002378463655803E-02 + 0.1999368702289613E-02 + 0.1996361754500123E-02 + 0.1993357620342721E-02 + 0.1990356300369211E-02 + 0.1987357794842657E-02 + 0.1984362102917492E-02 + 0.1981369223482890E-02 + 0.1978379155195650E-02 + 0.1975391896271279E-02 + 0.1972407444911384E-02 + 0.1969425800134676E-02 + 0.1966446961778554E-02 + 0.1963470929689874E-02 + 0.1960497703479107E-02 + 0.1957527282631722E-02 + 0.1954559666608160E-02 + 0.1951594854767757E-02 + 0.1948632846439673E-02 + 0.1945673640400319E-02 + 0.1942717234267084E-02 + 0.1939763625589965E-02 + 0.1936812814079629E-02 + 0.1933864801824694E-02 + 0.1930919590705868E-02 + 0.1927977179247428E-02 + 0.1925037564016308E-02 + 0.1922100742068719E-02 + 0.1919166712882950E-02 + 0.1916235476650048E-02 + 0.1913307033463335E-02 + 0.1910381383189329E-02 + 0.1907458525633601E-02 + 0.1904538459641030E-02 + 0.1901621182894861E-02 + 0.1898706693184259E-02 + 0.1895794990325515E-02 + 0.1892886075437032E-02 + 0.1889979949243492E-02 + 0.1887076610286947E-02 + 0.1884176056395377E-02 + 0.1881278285686713E-02 + 0.1878383297024602E-02 + 0.1875491089406245E-02 + 0.1872601662462987E-02 + 0.1869715016668916E-02 + 0.1866831152487150E-02 + 0.1863950069466394E-02 + 0.1861071766509050E-02 + 0.1858196242427282E-02 + 0.1855323495583492E-02 + 0.1852453524176866E-02 + 0.1849586326761752E-02 + 0.1846721902905072E-02 + 0.1843860252354499E-02 + 0.1841001374940158E-02 + 0.1838145270612646E-02 + 0.1835291939247130E-02 + 0.1832441379428834E-02 + 0.1829593588740472E-02 + 0.1826748565099259E-02 + 0.1823906308790980E-02 + 0.1821066821056266E-02 + 0.1818230102350705E-02 + 0.1815396150636039E-02 + 0.1812564963397036E-02 + 0.1809736539143539E-02 + 0.1806910878034628E-02 + 0.1804087980323761E-02 + 0.1801267845300954E-02 + 0.1798450471433440E-02 + 0.1795635857314196E-02 + 0.1792824002655827E-02 + 0.1790014907670745E-02 + 0.1787208572126073E-02 + 0.1784404994212114E-02 + 0.1781604171779705E-02 + 0.1778806103353412E-02 + 0.1776010788652108E-02 + 0.1773218227519448E-02 + 0.1770428419844910E-02 + 0.1767641365560982E-02 + 0.1764857064424730E-02 + 0.1762075514728864E-02 + 0.1759296714043501E-02 + 0.1756520660557263E-02 + 0.1753747354905193E-02 + 0.1750976798312736E-02 + 0.1748208990833218E-02 + 0.1745443930227595E-02 + 0.1742681614044002E-02 + 0.1739922041113077E-02 + 0.1737165211587129E-02 + 0.1734411125587393E-02 + 0.1731659782380207E-02 + 0.1728911180766315E-02 + 0.1726165319555921E-02 + 0.1723422197621111E-02 + 0.1720681813852501E-02 + 0.1717944167443871E-02 + 0.1715209258244023E-02 + 0.1712477086165271E-02 + 0.1709747650483776E-02 + 0.1707020949755638E-02 + 0.1704296982596333E-02 + 0.1701575748657762E-02 + 0.1698857248214053E-02 + 0.1696141481168664E-02 + 0.1693428445578448E-02 + 0.1690718138942189E-02 + 0.1688010559738898E-02 + 0.1685305708791000E-02 + 0.1682603587223706E-02 + 0.1679904194748778E-02 + 0.1677207529319961E-02 + 0.1674513588830574E-02 + 0.1671822371769030E-02 + 0.1669133877017131E-02 + 0.1666448103705303E-02 + 0.1663765052276705E-02 + 0.1661084723616628E-02 + 0.1658407117796778E-02 + 0.1655732232732701E-02 + 0.1653060066012041E-02 + 0.1650390616319049E-02 + 0.1647723883837386E-02 + 0.1645059868783615E-02 + 0.1642398570340210E-02 + 0.1639739986937622E-02 + 0.1637084117195452E-02 + 0.1634430960984078E-02 + 0.1631780518642563E-02 + 0.1629132789847089E-02 + 0.1626487772322296E-02 + 0.1623845463464957E-02 + 0.1621205862277774E-02 + 0.1618568970178999E-02 + 0.1615934788603659E-02 + 0.1613303316092200E-02 + 0.1610674548870969E-02 + 0.1608048483680215E-02 + 0.1605425121189081E-02 + 0.1602804463700057E-02 + 0.1600186512539299E-02 + 0.1597571265824276E-02 + 0.1594958721026810E-02 + 0.1592348876257987E-02 + 0.1589741730687588E-02 + 0.1587137283598083E-02 + 0.1584535534514887E-02 + 0.1581936483176834E-02 + 0.1579340129259444E-02 + 0.1576746471900754E-02 + 0.1574155509991492E-02 + 0.1571567242438093E-02 + 0.1568981668208824E-02 + 0.1566398786287658E-02 + 0.1563818595818635E-02 + 0.1561241096238071E-02 + 0.1558666287031964E-02 + 0.1556094168088032E-02 + 0.1553524739681621E-02 + 0.1550958001833056E-02 + 0.1548393952242273E-02 + 0.1545832587429715E-02 + 0.1543273904848486E-02 + 0.1540717905768519E-02 + 0.1538164592415697E-02 + 0.1535613965533818E-02 + 0.1533066022880947E-02 + 0.1530520761896514E-02 + 0.1527978181040832E-02 + 0.1525438279856248E-02 + 0.1522901057870052E-02 + 0.1520366513959520E-02 + 0.1517834646637383E-02 + 0.1515305454728833E-02 + 0.1512778938487725E-02 + 0.1510255098568453E-02 + 0.1507733935117808E-02 + 0.1505215447152323E-02 + 0.1502699633526032E-02 + 0.1500186492787772E-02 + 0.1497676023131044E-02 + 0.1495168222819381E-02 + 0.1492663091104460E-02 + 0.1490160627848582E-02 + 0.1487660832872233E-02 + 0.1485163705739976E-02 + 0.1482669245935937E-02 + 0.1480177452905326E-02 + 0.1477688325997533E-02 + 0.1475201864526598E-02 + 0.1472718067022958E-02 + 0.1470236931014484E-02 + 0.1467758454179219E-02 + 0.1465282636892171E-02 + 0.1462809481362997E-02 + 0.1460338989156655E-02 + 0.1457871158021137E-02 + 0.1455405984374764E-02 + 0.1452943465647286E-02 + 0.1450483602036087E-02 + 0.1448026394185040E-02 + 0.1445571841711370E-02 + 0.1443119942788035E-02 + 0.1440670695604757E-02 + 0.1438224100147630E-02 + 0.1435780157746775E-02 + 0.1433338869262316E-02 + 0.1430900232402140E-02 + 0.1428464243654982E-02 + 0.1426030900544677E-02 + 0.1423600203744105E-02 + 0.1421172154503694E-02 + 0.1418746753026555E-02 + 0.1416323997894642E-02 + 0.1413903887576173E-02 + 0.1411486420961161E-02 + 0.1409071597286484E-02 + 0.1406659415763792E-02 + 0.1404249875355148E-02 + 0.1401842974915640E-02 + 0.1399438713450489E-02 + 0.1397037090472970E-02 + 0.1394638105604237E-02 + 0.1392241758530198E-02 + 0.1389848049047178E-02 + 0.1387456976922823E-02 + 0.1385068541163775E-02 + 0.1382682740089106E-02 + 0.1380299572005053E-02 + 0.1377919035311603E-02 + 0.1375541128453219E-02 + 0.1373165850542822E-02 + 0.1370793203203849E-02 + 0.1368423188629322E-02 + 0.1366055806863978E-02 + 0.1363691053914138E-02 + 0.1361328925461123E-02 + 0.1358969419927842E-02 + 0.1356612538458053E-02 + 0.1354258282184408E-02 + 0.1351906651104218E-02 + 0.1349557644620368E-02 + 0.1347211261954453E-02 + 0.1344867501591127E-02 + 0.1342526361823384E-02 + 0.1340187841115481E-02 + 0.1337851938287145E-02 + 0.1335518652230736E-02 + 0.1333187982605957E-02 + 0.1330859929908992E-02 + 0.1328534494586262E-02 + 0.1326211676160068E-02 + 0.1323891473619104E-02 + 0.1321573885779884E-02 + 0.1319258910686241E-02 + 0.1316946546160810E-02 + 0.1314636790952526E-02 + 0.1312329645936274E-02 + 0.1310025112234903E-02 + 0.1307723189371179E-02 + 0.1305423874951608E-02 + 0.1303127166610818E-02 + 0.1300833063592197E-02 + 0.1298541566162409E-02 + 0.1296252674380566E-02 + 0.1293966387141301E-02 + 0.1291682702962888E-02 + 0.1289401620722884E-02 + 0.1287123140212508E-02 + 0.1284847261355249E-02 + 0.1282573983644617E-02 + 0.1280303306008137E-02 + 0.1278035227330797E-02 + 0.1275769746445715E-02 + 0.1273506862149695E-02 + 0.1271246573398095E-02 + 0.1268988880070738E-02 + 0.1266733782379351E-02 + 0.1264481279906106E-02 + 0.1262231370457084E-02 + 0.1259984051556468E-02 + 0.1257739322177526E-02 + 0.1255497183391062E-02 + 0.1253257636299851E-02 + 0.1251020680029693E-02 + 0.1248786312184663E-02 + 0.1246554530564652E-02 + 0.1244325334494160E-02 + 0.1242098723906106E-02 + 0.1239874698715082E-02 + 0.1237653258773357E-02 + 0.1235434403909837E-02 + 0.1233218133229303E-02 + 0.1231004444682908E-02 + 0.1228793336189068E-02 + 0.1226584806882719E-02 + 0.1224378856927863E-02 + 0.1222175486374196E-02 + 0.1219974694204431E-02 + 0.1217776478929881E-02 + 0.1215580839354192E-02 + 0.1213387775306957E-02 + 0.1211197286834669E-02 + 0.1209009373430030E-02 + 0.1206824033613681E-02 + 0.1204641265859908E-02 + 0.1202461069696777E-02 + 0.1200283445631605E-02 + 0.1198108393905464E-02 + 0.1195935912280388E-02 + 0.1193765997307483E-02 + 0.1191598646442355E-02 + 0.1189433860682261E-02 + 0.1187271641875530E-02 + 0.1185111990933453E-02 + 0.1182954906953029E-02 + 0.1180800388783519E-02 + 0.1178648434317799E-02 + 0.1176499040472518E-02 + 0.1174352204469686E-02 + 0.1172207926749598E-02 + 0.1170066209487864E-02 + 0.1167927054109962E-02 + 0.1165790458725995E-02 + 0.1163656420555720E-02 + 0.1161524937744165E-02 + 0.1159396010415186E-02 + 0.1157269638916497E-02 + 0.1155145822708728E-02 + 0.1153024560257906E-02 + 0.1150905850081340E-02 + 0.1148789691780158E-02 + 0.1146676085599795E-02 + 0.1144565031444619E-02 + 0.1142456527535043E-02 + 0.1140350571587599E-02 + 0.1138247162020785E-02 + 0.1136146298913972E-02 + 0.1134047982559873E-02 + 0.1131952212323189E-02 + 0.1129858986425376E-02 + 0.1127768303172189E-02 + 0.1125680162704210E-02 + 0.1123594566363134E-02 + 0.1121511514903934E-02 + 0.1119431005817650E-02 + 0.1117353035506524E-02 + 0.1115277601660537E-02 + 0.1113204705347103E-02 + 0.1111134348138028E-02 + 0.1109066529798482E-02 + 0.1107001247647183E-02 + 0.1104938498995588E-02 + 0.1102878283415671E-02 + 0.1100820602107473E-02 + 0.1098765455946760E-02 + 0.1096712843648498E-02 + 0.1094662763125643E-02 + 0.1092615212433146E-02 + 0.1090570190042913E-02 + 0.1088527694527858E-02 + 0.1086487725844562E-02 + 0.1084450286010615E-02 + 0.1082415376985779E-02 + 0.1080382997205187E-02 + 0.1078353142313110E-02 + 0.1076325808420268E-02 + 0.1074300995281107E-02 + 0.1072278704149369E-02 + 0.1070258935902686E-02 + 0.1068241690187609E-02 + 0.1066226966396729E-02 + 0.1064214763528360E-02 + 0.1062205079934222E-02 + 0.1060197913922225E-02 + 0.1058193264093091E-02 + 0.1056191129302297E-02 + 0.1054191508553695E-02 + 0.1052194401903883E-02 + 0.1050199809888861E-02 + 0.1048207732759283E-02 + 0.1046218169730222E-02 + 0.1044231119779803E-02 + 0.1042246581499369E-02 + 0.1040264552781193E-02 + 0.1038285031521431E-02 + 0.1036308017258992E-02 + 0.1034333511102881E-02 + 0.1032361513957601E-02 + 0.1030392024464492E-02 + 0.1028425040126065E-02 + 0.1026460558899951E-02 + 0.1024498580602508E-02 + 0.1022539105511603E-02 + 0.1020582133361475E-02 + 0.1018627662802204E-02 + 0.1016675692381222E-02 + 0.1014726221298919E-02 + 0.1012779249441166E-02 + 0.1010834776665368E-02 + 0.1008892802246546E-02 + 0.1006953325136379E-02 + 0.1005016344227449E-02 + 0.1003081858163994E-02 + 0.1001149865523232E-02 + 0.9992203653409282E-03 + 0.9972933576633423E-03 + 0.9953688426497582E-03 + 0.9934468198016937E-03 + 0.9915272878621103E-03 + 0.9896102455642748E-03 + 0.9876956919920570E-03 + 0.9857836264438927E-03 + 0.9838740482126129E-03 + 0.9819669565479027E-03 + 0.9800623506859758E-03 + 0.9781602298488940E-03 + 0.9762605932241637E-03 + 0.9743634399940621E-03 + 0.9724687693388825E-03 + 0.9705765804363901E-03 + 0.9686868724675330E-03 + 0.9667996446544796E-03 + 0.9649148962471855E-03 + 0.9630326264959901E-03 + 0.9611528346505640E-03 + 0.9592755199603092E-03 + 0.9574006816581088E-03 + 0.9555283189321518E-03 + 0.9536584309630740E-03 + 0.9517910169276146E-03 + 0.9499260759970859E-03 + 0.9480636073465792E-03 + 0.9462036102101791E-03 + 0.9443460838657163E-03 + 0.9424910275778242E-03 + 0.9406384405229307E-03 + 0.9387883218436942E-03 + 0.9369406707159108E-03 + 0.9350954864150161E-03 + 0.9332527682338894E-03 + 0.9314125153967698E-03 + 0.9295747270226666E-03 + 0.9277394022313224E-03 + 0.9259065402996979E-03 + 0.9240761406328312E-03 + 0.9222482025991754E-03 + 0.9204227252873604E-03 + 0.9185997076672788E-03 + 0.9167791487711346E-03 + 0.9149610478405108E-03 + 0.9131454041607846E-03 + 0.9113322170289646E-03 + 0.9095214857617183E-03 + 0.9077132096732560E-03 + 0.9059073879952184E-03 + 0.9041040198853702E-03 + 0.9023031045027775E-03 + 0.9005046410370721E-03 + 0.8987086286922180E-03 + 0.8969150666665017E-03 + 0.8951239541367619E-03 + 0.8933352902751180E-03 + 0.8915490742796584E-03 + 0.8897653053968075E-03 + 0.8879839828782322E-03 + 0.8862051059749014E-03 + 0.8844286739371027E-03 + 0.8826546860099398E-03 + 0.8808831413932483E-03 + 0.8791140392633848E-03 + 0.8773473787984688E-03 + 0.8755831591847050E-03 + 0.8738213796104366E-03 + 0.8720620392717288E-03 + 0.8703051373805113E-03 + 0.8685506731536329E-03 + 0.8667986458868100E-03 + 0.8650490549609231E-03 + 0.8633018997012410E-03 + 0.8615571788398240E-03 + 0.8598148907695459E-03 + 0.8580750338524950E-03 + 0.8563376063271010E-03 + 0.8546026063961985E-03 + 0.8528700322699841E-03 + 0.8511398821754046E-03 + 0.8494121543428204E-03 + 0.8476868470376825E-03 + 0.8459639585671127E-03 + 0.8442434872374577E-03 + 0.8425254313192799E-03 + 0.8408097890606070E-03 + 0.8390965586938968E-03 + 0.8373857383733597E-03 + 0.8356773262282985E-03 + 0.8339713204520843E-03 + 0.8322677193992567E-03 + 0.8305665214460081E-03 + 0.8288677248396425E-03 + 0.8271713276594500E-03 + 0.8254773279919405E-03 + 0.8237857241612474E-03 + 0.8220965146562156E-03 + 0.8204096979088892E-03 + 0.8187252720063432E-03 + 0.8170432349129897E-03 + 0.8153635847207008E-03 + 0.8136863198773092E-03 + 0.8120114388881628E-03 + 0.8103389400595852E-03 + 0.8086688214126031E-03 + 0.8070010809591787E-03 + 0.8053357169024535E-03 + 0.8036727275913101E-03 + 0.8020121113735936E-03 + 0.8003538665670858E-03 + 0.7986979914776677E-03 + 0.7970444843756672E-03 + 0.7953933434213649E-03 + 0.7937445667546216E-03 + 0.7920981525674888E-03 + 0.7904540991344053E-03 + 0.7888124047334529E-03 + 0.7871730675812758E-03 + 0.7855360858430498E-03 + 0.7839014577114314E-03 + 0.7822691815879952E-03 + 0.7806392559656732E-03 + 0.7790116792164664E-03 + 0.7773864492942353E-03 + 0.7757635640659339E-03 + 0.7741430216583661E-03 + 0.7725248206499444E-03 + 0.7709089596468330E-03 + 0.7692954369083873E-03 + 0.7676842503747300E-03 + 0.7660753980197210E-03 + 0.7644688781855512E-03 + 0.7628646893925069E-03 + 0.7612628300691782E-03 + 0.7596632982877680E-03 + 0.7580660920360973E-03 + 0.7564712094302291E-03 + 0.7548786488320408E-03 + 0.7532884086267245E-03 + 0.7517004870946414E-03 + 0.7501148824101618E-03 + 0.7485315927556997E-03 + 0.7469506164297451E-03 + 0.7453719517927432E-03 + 0.7437955971652409E-03 + 0.7422215506947529E-03 + 0.7406498104830439E-03 + 0.7390803747132944E-03 + 0.7375132417410928E-03 + 0.7359484099395268E-03 + 0.7343858775574317E-03 + 0.7328256427056624E-03 + 0.7312677035020987E-03 + 0.7297120582109762E-03 + 0.7281587051826834E-03 + 0.7266076427483741E-03 + 0.7250588691422849E-03 + 0.7235123825698942E-03 + 0.7219681812504659E-03 + 0.7204262634355894E-03 + 0.7188866273807521E-03 + 0.7173492713168640E-03 + 0.7158141934448342E-03 + 0.7142813919724604E-03 + 0.7127508652093788E-03 + 0.7112226115312385E-03 + 0.7096966292692255E-03 + 0.7081729165123861E-03 + 0.7066514712698885E-03 + 0.7051322916597437E-03 + 0.7036153760823909E-03 + 0.7021007229811598E-03 + 0.7005883307032814E-03 + 0.6990781974671158E-03 + 0.6975703214793667E-03 + 0.6960647009118861E-03 + 0.6945613339116536E-03 + 0.6930602186472836E-03 + 0.6915613534189501E-03 + 0.6900647365751088E-03 + 0.6885703664246274E-03 + 0.6870782411622458E-03 + 0.6855883589638222E-03 + 0.6841007180852450E-03 + 0.6826153169004910E-03 + 0.6811321537799381E-03 + 0.6796512268926009E-03 + 0.6781725342495852E-03 + 0.6766960739003101E-03 + 0.6752218441764901E-03 + 0.6737498435248015E-03 + 0.6722800703423749E-03 + 0.6708125228668105E-03 + 0.6693471993036456E-03 + 0.6678840978417079E-03 + 0.6664232166426959E-03 + 0.6649645538699113E-03 + 0.6635081077595193E-03 + 0.6620538766104708E-03 + 0.6606018587280754E-03 + 0.6591520524496385E-03 + 0.6577044561268775E-03 + 0.6562590680471214E-03 + 0.6548158862682532E-03 + 0.6533749087988518E-03 + 0.6519361338055292E-03 + 0.6504995597376770E-03 + 0.6490651850646173E-03 + 0.6476330080588753E-03 + 0.6462030268066677E-03 + 0.6447752394068253E-03 + 0.6433496441249936E-03 + 0.6419262393099123E-03 + 0.6405050232923264E-03 + 0.6390859943292692E-03 + 0.6376691506592433E-03 + 0.6362544904853078E-03 + 0.6348420119405880E-03 + 0.6334317131553398E-03 + 0.6320235923914714E-03 + 0.6306176480477932E-03 + 0.6292138785199192E-03 + 0.6278122821130943E-03 + 0.6264128570828986E-03 + 0.6250156016465390E-03 + 0.6236205138540619E-03 + 0.6222275917102719E-03 + 0.6208368333878584E-03 + 0.6194482374257437E-03 + 0.6180618024012753E-03 + 0.6166775265998310E-03 + 0.6152954079732893E-03 + 0.6139154444883081E-03 + 0.6125376344642710E-03 + 0.6111619764342832E-03 + 0.6097884688519239E-03 + 0.6084171097646395E-03 + 0.6070478970957423E-03 + 0.6056808289562356E-03 + 0.6043159039102628E-03 + 0.6029531205796676E-03 + 0.6015924772510513E-03 + 0.6002339717902515E-03 + 0.5988776020711818E-03 + 0.5975233663909160E-03 + 0.5961712633288308E-03 + 0.5948212914126252E-03 + 0.5934734488580896E-03 + 0.5921277337745434E-03 + 0.5907841442743709E-03 + 0.5894426784784539E-03 + 0.5881033345128584E-03 + 0.5867661106726563E-03 + 0.5854310054861211E-03 + 0.5840980174764241E-03 + 0.5827671448581561E-03 + 0.5814383856194382E-03 + 0.5801117377852645E-03 + 0.5787871996386817E-03 + 0.5774647695605015E-03 + 0.5761444458934458E-03 + 0.5748262268665643E-03 + 0.5735101106879576E-03 + 0.5721960955687687E-03 + 0.5708841797247530E-03 + 0.5695743613766762E-03 + 0.5682666388196172E-03 + 0.5669610104085985E-03 + 0.5656574744738832E-03 + 0.5643560291640003E-03 + 0.5630566725511867E-03 + 0.5617594027931393E-03 + 0.5604642183306041E-03 + 0.5591711176599832E-03 + 0.5578800990784326E-03 + 0.5565911605500613E-03 + 0.5553043000262161E-03 + 0.5540195158118127E-03 + 0.5527368065251602E-03 + 0.5514561707310448E-03 + 0.5501776064984151E-03 + 0.5489011116659039E-03 + 0.5476266842078862E-03 + 0.5463543226023670E-03 + 0.5450840254413474E-03 + 0.5438157911465954E-03 + 0.5425496178262142E-03 + 0.5412855035584725E-03 + 0.5400234465082454E-03 + 0.5387634449247235E-03 + 0.5375054970670750E-03 + 0.5362496012505494E-03 + 0.5349957558191885E-03 + 0.5337439590750948E-03 + 0.5324942091477074E-03 + 0.5312465041230682E-03 + 0.5300008422007061E-03 + 0.5287572218109440E-03 + 0.5275156414054463E-03 + 0.5262760992616854E-03 + 0.5250385934708342E-03 + 0.5238031221317295E-03 + 0.5225696835074105E-03 + 0.5213382759538710E-03 + 0.5201088978059651E-03 + 0.5188815472973244E-03 + 0.5176562226327976E-03 + 0.5164329220308238E-03 + 0.5152116437403979E-03 + 0.5139923860141018E-03 + 0.5127751470863804E-03 + 0.5115599251703613E-03 + 0.5103467184840497E-03 + 0.5091355253131322E-03 + 0.5079263439855182E-03 + 0.5067191728116208E-03 + 0.5055140100096293E-03 + 0.5043108537686058E-03 + 0.5031097023179142E-03 + 0.5019105539872410E-03 + 0.5007134071194650E-03 + 0.4995182599746052E-03 + 0.4983251107056912E-03 + 0.4971339574617373E-03 + 0.4959447984304567E-03 + 0.4947576318261458E-03 + 0.4935724558877491E-03 + 0.4923892689911225E-03 + 0.4912080695602378E-03 + 0.4900288559400501E-03 + 0.4888516262572567E-03 + 0.4876763786034502E-03 + 0.4865031111772341E-03 + 0.4853318223291138E-03 + 0.4841625104142585E-03 + 0.4829951736876145E-03 + 0.4818298103284555E-03 + 0.4806664185325298E-03 + 0.4795049966119200E-03 + 0.4783455429241420E-03 + 0.4771880557729369E-03 + 0.4760325332968789E-03 + 0.4748789736045123E-03 + 0.4737273748967853E-03 + 0.4725777355190163E-03 + 0.4714300538234371E-03 + 0.4702843280675584E-03 + 0.4691405564302975E-03 + 0.4679987371050640E-03 + 0.4668588684051124E-03 + 0.4657209486955674E-03 + 0.4645849762856470E-03 + 0.4634509492932358E-03 + 0.4623188657971550E-03 + 0.4611887240114503E-03 + 0.4600605223828540E-03 + 0.4589342593702122E-03 + 0.4578099332194584E-03 + 0.4566875419824017E-03 + 0.4555670837388920E-03 + 0.4544485568490369E-03 + 0.4533319598070865E-03 + 0.4522172910169542E-03 + 0.4511045485364174E-03 + 0.4499937303425208E-03 + 0.4488848345677095E-03 + 0.4477778596393002E-03 + 0.4466728040118045E-03 + 0.4455696660075012E-03 + 0.4444684438162455E-03 + 0.4433691356254111E-03 + 0.4422717396519841E-03 + 0.4411762541286005E-03 + 0.4400826773008611E-03 + 0.4389910074685965E-03 + 0.4379012429458054E-03 + 0.4368133820201741E-03 + 0.4357274229242653E-03 + 0.4346433638834918E-03 + 0.4335612031173611E-03 + 0.4324809388388957E-03 + 0.4314025692689600E-03 + 0.4303260927115002E-03 + 0.4292515075188891E-03 + 0.4281788120071184E-03 + 0.4271080043179248E-03 + 0.4260390825421395E-03 + 0.4249720448633331E-03 + 0.4239068896799965E-03 + 0.4228436154179370E-03 + 0.4217822204017065E-03 + 0.4207227028334772E-03 + 0.4196650609094162E-03 + 0.4186092928407513E-03 + 0.4175553968483775E-03 + 0.4165033711695556E-03 + 0.4154532141266781E-03 + 0.4144049240698417E-03 + 0.4133584992844322E-03 + 0.4123139378896674E-03 + 0.4112712379817626E-03 + 0.4102303977914243E-03 + 0.4091914157279877E-03 + 0.4081542902046651E-03 + 0.4071190195230622E-03 + 0.4060856019059470E-03 + 0.4050540355635478E-03 + 0.4040243186423302E-03 + 0.4029964492656495E-03 + 0.4019704256272083E-03 + 0.4009462461211353E-03 + 0.3999239091749715E-03 + 0.3989034131121196E-03 + 0.3978847561038689E-03 + 0.3968679363166577E-03 + 0.3958529520262237E-03 + 0.3948398015932035E-03 + 0.3938284833551437E-03 + 0.3928189954835140E-03 + 0.3918113360828770E-03 + 0.3908055033116987E-03 + 0.3898014954995762E-03 + 0.3887993110087552E-03 + 0.3877989481270183E-03 + 0.3868004050224008E-03 + 0.3858036798603427E-03 + 0.3848087709507160E-03 + 0.3838156767266735E-03 + 0.3828243955959612E-03 + 0.3818349257504234E-03 + 0.3808472652855748E-03 + 0.3798614123401525E-03 + 0.3788773652066138E-03 + 0.3778951222111738E-03 + 0.3769146816762285E-03 + 0.3759360419173965E-03 + 0.3749592012451254E-03 + 0.3739841578779864E-03 + 0.3730109099484007E-03 + 0.3720394555991665E-03 + 0.3710697930863906E-03 + 0.3701019207220446E-03 + 0.3691358368225929E-03 + 0.3681715397205867E-03 + 0.3672090277518094E-03 + 0.3662482991643072E-03 + 0.3652893520346523E-03 + 0.3643321844297467E-03 + 0.3633767946636584E-03 + 0.3624231813050252E-03 + 0.3614713428906472E-03 + 0.3605212775519061E-03 + 0.3595729831995188E-03 + 0.3586264578540606E-03 + 0.3576817000255725E-03 + 0.3567387083563662E-03 + 0.3557974812449109E-03 + 0.3548580165631614E-03 + 0.3539203121285751E-03 + 0.3529843661681356E-03 + 0.3520501773721398E-03 + 0.3511177444108771E-03 + 0.3501870654805792E-03 + 0.3492581384930360E-03 + 0.3483309614382718E-03 + 0.3474055327059051E-03 + 0.3464818508065262E-03 + 0.3455599141271745E-03 + 0.3446397207596529E-03 + 0.3437212687573022E-03 + 0.3428045563392278E-03 + 0.3418895819305917E-03 + 0.3409763439581330E-03 + 0.3400648407129885E-03 + 0.3391550703966942E-03 + 0.3382470312081756E-03 + 0.3373407213408325E-03 + 0.3364361389863216E-03 + 0.3355332824028631E-03 + 0.3346321500249126E-03 + 0.3337327403110896E-03 + 0.3328350515161285E-03 + 0.3319390816161735E-03 + 0.3310448285919074E-03 + 0.3301522907623137E-03 + 0.3292614666922588E-03 + 0.3283723548963052E-03 + 0.3274849535503821E-03 + 0.3265992607035195E-03 + 0.3257152744781413E-03 + 0.3248329932129971E-03 + 0.3239524152848314E-03 + 0.3230735389852912E-03 + 0.3221963624781005E-03 + 0.3213208839259912E-03 + 0.3204471016430370E-03 + 0.3195750140642287E-03 + 0.3187046195955012E-03 + 0.3178359164226944E-03 + 0.3169689026401928E-03 + 0.3161035763897094E-03 + 0.3152399359685096E-03 + 0.3143779797054476E-03 + 0.3135177059209172E-03 + 0.3126591129213077E-03 + 0.3118021990078336E-03 + 0.3109469624107141E-03 + 0.3100934012978490E-03 + 0.3092415138593649E-03 + 0.3083912984707530E-03 + 0.3075427535927302E-03 + 0.3066958776002430E-03 + 0.3058506685547908E-03 + 0.3050071244481683E-03 + 0.3041652434192205E-03 + 0.3033250238750672E-03 + 0.3024864642475669E-03 + 0.3016495628867151E-03 + 0.3008143180635607E-03 + 0.2999807280416537E-03 + 0.2991487910478340E-03 + 0.2983185052902977E-03 + 0.2974898689970584E-03 + 0.2966628804769767E-03 + 0.2958375380590662E-03 + 0.2950138400295420E-03 + 0.2941917845884504E-03 + 0.2933713699282567E-03 + 0.2925525943119062E-03 + 0.2917354560770011E-03 + 0.2909199535535461E-03 + 0.2901060849633905E-03 + 0.2892938484677616E-03 + 0.2884832422692885E-03 + 0.2876742647603954E-03 + 0.2868669143864734E-03 + 0.2860611894826023E-03 + 0.2852570881383866E-03 + 0.2844546084162918E-03 + 0.2836537485623963E-03 + 0.2828545070364513E-03 + 0.2820568822882140E-03 + 0.2812608725260972E-03 + 0.2804664758094521E-03 + 0.2796736902461899E-03 + 0.2788825141995081E-03 + 0.2780929461124670E-03 + 0.2773049843570652E-03 + 0.2765186271302041E-03 + 0.2757338726038006E-03 + 0.2749507190058421E-03 + 0.2741691646360196E-03 + 0.2733892077997311E-03 + 0.2726108468152208E-03 + 0.2718340800094623E-03 + 0.2710589056833364E-03 + 0.2702853219903599E-03 + 0.2695133270327974E-03 + 0.2687429189858186E-03 + 0.2679740962238308E-03 + 0.2672068571537445E-03 + 0.2664412001264462E-03 + 0.2656771234140534E-03 + 0.2649146252818515E-03 + 0.2641537039820106E-03 + 0.2633943577568894E-03 + 0.2626365848437175E-03 + 0.2618803834490426E-03 + 0.2611257517675780E-03 + 0.2603726880404562E-03 + 0.2596211906496786E-03 + 0.2588712580023744E-03 + 0.2581228884178072E-03 + 0.2573760800793198E-03 + 0.2566308311637314E-03 + 0.2558871399330211E-03 + 0.2551450047191570E-03 + 0.2544044238446946E-03 + 0.2536653955515129E-03 + 0.2529279180469354E-03 + 0.2521919895498343E-03 + 0.2514576083184592E-03 + 0.2507247726201357E-03 + 0.2499934807829270E-03 + 0.2492637312384063E-03 + 0.2485355224158583E-03 + 0.2478088525059900E-03 + 0.2470837194840664E-03 + 0.2463601213634024E-03 + 0.2456380565181745E-03 + 0.2449175234935368E-03 + 0.2441985207625656E-03 + 0.2434810465238489E-03 + 0.2427650989121995E-03 + 0.2420506761310150E-03 + 0.2413377765125449E-03 + 0.2406263984000346E-03 + 0.2399165400638706E-03 + 0.2392081997021672E-03 + 0.2385013755173453E-03 + 0.2377960657775378E-03 + 0.2370922687852623E-03 + 0.2363899828442797E-03 + 0.2356892062623143E-03 + 0.2349899373478700E-03 + 0.2342921743700419E-03 + 0.2335959155161946E-03 + 0.2329011589675158E-03 + 0.2322079030127240E-03 + 0.2315161460576913E-03 + 0.2308258865002725E-03 + 0.2301371225985096E-03 + 0.2294498525297669E-03 + 0.2287640744897626E-03 + 0.2280797867642861E-03 + 0.2273969876653252E-03 + 0.2267156754989503E-03 + 0.2260358485576642E-03 + 0.2253575051314093E-03 + 0.2246806434883641E-03 + 0.2240052618706543E-03 + 0.2233313585156232E-03 + 0.2226589316235661E-03 + 0.2219879793712279E-03 + 0.2213184999739315E-03 + 0.2206504918494039E-03 + 0.2199839534807089E-03 + 0.2193188832731806E-03 + 0.2186552794346314E-03 + 0.2179931401426085E-03 + 0.2173324635999621E-03 + 0.2166732480428241E-03 + 0.2160154917121873E-03 + 0.2153591928827959E-03 + 0.2147043498530072E-03 + 0.2140509609196842E-03 + 0.2133990243682361E-03 + 0.2127485384799530E-03 + 0.2120995015383886E-03 + 0.2114519118335033E-03 + 0.2108057676562126E-03 + 0.2101610672890395E-03 + 0.2095178090023782E-03 + 0.2088759910684405E-03 + 0.2082356118007848E-03 + 0.2075966695447811E-03 + 0.2069591626183022E-03 + 0.2063230891556164E-03 + 0.2056884472178180E-03 + 0.2050552349698271E-03 + 0.2044234509021598E-03 + 0.2037930935658015E-03 + 0.2031641613136528E-03 + 0.2025366521832132E-03 + 0.2019105642001063E-03 + 0.2012858956712063E-03 + 0.2006626451411608E-03 + 0.2000408111200120E-03 + 0.1994203918119480E-03 + 0.1988013852860973E-03 + 0.1981837896584902E-03 + 0.1975676032105498E-03 + 0.1969528242599104E-03 + 0.1963394511444263E-03 + 0.1957274822374178E-03 + 0.1951169159108496E-03 + 0.1945077504367523E-03 + 0.1938999839943418E-03 + 0.1932936147725137E-03 + 0.1926886410679534E-03 + 0.1920850612299633E-03 + 0.1914828735722840E-03 + 0.1908820762693897E-03 + 0.1902826674629984E-03 + 0.1896846454136636E-03 + 0.1890880086118991E-03 + 0.1884927555658002E-03 + 0.1878988845755125E-03 + 0.1873063937290478E-03 + 0.1867152811202796E-03 + 0.1861255449850121E-03 + 0.1855371836355360E-03 + 0.1849501953958998E-03 + 0.1843645786377197E-03 + 0.1837803317450695E-03 + 0.1831974530333864E-03 + 0.1826159406714078E-03 + 0.1820357928136698E-03 + 0.1814570077481780E-03 + 0.1808795839124963E-03 + 0.1803035197308238E-03 + 0.1797288134056042E-03 + 0.1791554630075325E-03 + 0.1785834666542385E-03 + 0.1780128226976414E-03 + 0.1774435295598969E-03 + 0.1768755856146685E-03 + 0.1763089891209319E-03 + 0.1757437383220908E-03 + 0.1751798314960871E-03 + 0.1746172669633867E-03 + 0.1740560430401850E-03 + 0.1734961579610934E-03 + 0.1729376099073435E-03 + 0.1723803970843188E-03 + 0.1718245178320376E-03 + 0.1712699705354553E-03 + 0.1707167535536616E-03 + 0.1701648651779059E-03 + 0.1696143036877895E-03 + 0.1690650673340479E-03 + 0.1685171543283576E-03 + 0.1679705628838842E-03 + 0.1674252912715835E-03 + 0.1668813378040106E-03 + 0.1663387007880031E-03 + 0.1657973784906030E-03 + 0.1652573691641241E-03 + 0.1647186710924959E-03 + 0.1641812826516309E-03 + 0.1636452022325552E-03 + 0.1631104281447980E-03 + 0.1625769585765626E-03 + 0.1620447917111397E-03 + 0.1615139258091455E-03 + 0.1609843591923878E-03 + 0.1604560901766465E-03 + 0.1599291170260192E-03 + 0.1594034379833594E-03 + 0.1588790513278425E-03 + 0.1583559554562136E-03 + 0.1578341487871659E-03 + 0.1573136296166651E-03 + 0.1567943960395271E-03 + 0.1562764461415981E-03 + 0.1557597781839527E-03 + 0.1552443905800378E-03 + 0.1547302817343282E-03 + 0.1542174499456282E-03 + 0.1537058934646492E-03 + 0.1531956105500348E-03 + 0.1526865994898274E-03 + 0.1521788585786456E-03 + 0.1516723861082236E-03 + 0.1511671803650924E-03 + 0.1506632396350157E-03 + 0.1501605621990904E-03 + 0.1496591463339570E-03 + 0.1491589903194819E-03 + 0.1486600924642947E-03 + 0.1481624510914978E-03 + 0.1476660644947619E-03 + 0.1471709308494415E-03 + 0.1466770483021515E-03 + 0.1461844151161130E-03 + 0.1456930297869585E-03 + 0.1452028908290271E-03 + 0.1447139965344511E-03 + 0.1442263449622111E-03 + 0.1437399341841971E-03 + 0.1432547625008862E-03 + 0.1427708283396052E-03 + 0.1422881301006114E-03 + 0.1418066660573277E-03 + 0.1413264344479528E-03 + 0.1408474335381211E-03 + 0.1403696616538990E-03 + 0.1398931171265510E-03 + 0.1394177982012748E-03 + 0.1389437030240656E-03 + 0.1384708297566083E-03 + 0.1379991767898947E-03 + 0.1375287426551550E-03 + 0.1370595258164154E-03 + 0.1365915243934699E-03 + 0.1361247363997453E-03 + 0.1356591599920297E-03 + 0.1351947936766559E-03 + 0.1347316360062584E-03 + 0.1342696853147672E-03 + 0.1338089396591271E-03 + 0.1333493970963484E-03 + 0.1328910559038259E-03 + 0.1324339145073387E-03 + 0.1319779713140323E-03 + 0.1315232246123129E-03 + 0.1310696726496624E-03 + 0.1306173136854064E-03 + 0.1301661460109810E-03 + 0.1297161679230459E-03 + 0.1292673777117507E-03 + 0.1288197736581653E-03 + 0.1283733540433198E-03 + 0.1279281171571218E-03 + 0.1274840612960531E-03 + 0.1270411847516826E-03 + 0.1265994857841539E-03 + 0.1261589626416113E-03 + 0.1257196136111871E-03 + 0.1252814370970576E-03 + 0.1248444315228314E-03 + 0.1244085951711940E-03 + 0.1239739261089328E-03 + 0.1235404223999052E-03 + 0.1231080823581290E-03 + 0.1226769045012718E-03 + 0.1222468873180342E-03 + 0.1218180290550109E-03 + 0.1213903278561545E-03 + 0.1209637819023919E-03 + 0.1205383894992436E-03 + 0.1201141489777851E-03 + 0.1196910586390952E-03 + 0.1192691167336390E-03 + 0.1188483215111581E-03 + 0.1184286713000339E-03 + 0.1180101644989865E-03 + 0.1175927994890871E-03 + 0.1171765744946313E-03 + 0.1167614876663899E-03 + 0.1163475372042859E-03 + 0.1159347214923548E-03 + 0.1155230389564732E-03 + 0.1151124879302678E-03 + 0.1147030665757634E-03 + 0.1142947730424926E-03 + 0.1138876056182094E-03 + 0.1134815627264675E-03 + 0.1130766427763985E-03 + 0.1126728440005685E-03 + 0.1122701645400776E-03 + 0.1118686025833392E-03 + 0.1114681565176985E-03 + 0.1110688247812526E-03 + 0.1106706057114281E-03 + 0.1102734974389321E-03 + 0.1098774980771522E-03 + 0.1094826059532497E-03 + 0.1090888196250798E-03 + 0.1086961376219544E-03 + 0.1083045580768477E-03 + 0.1079140788962723E-03 + 0.1075246980950096E-03 + 0.1071364141990796E-03 + 0.1067492258808416E-03 + 0.1063631316181609E-03 + 0.1059781294473570E-03 + 0.1055942173519507E-03 + 0.1052113935751350E-03 + 0.1048296566679480E-03 + 0.1044490051718370E-03 + 0.1040694373195974E-03 + 0.1036909511497273E-03 + 0.1033135447487489E-03 + 0.1029372164654915E-03 + 0.1025619647326653E-03 + 0.1021877879320230E-03 + 0.1018146843171315E-03 + 0.1014426521229366E-03 + 0.1010716896313376E-03 + 0.1007017951854104E-03 + 0.1003329671262076E-03 + 0.9996520371615018E-04 + 0.9959850316317985E-04 + 0.9923286368936815E-04 + 0.9886828360409561E-04 + 0.9850476124778179E-04 + 0.9814229494216733E-04 + 0.9778088295681886E-04 + 0.9742052355262821E-04 + 0.9706121500736034E-04 + 0.9670295562296040E-04 + 0.9634574370191659E-04 + 0.9598957752725873E-04 + 0.9563445536719152E-04 + 0.9528037549392131E-04 + 0.9492733620769190E-04 + 0.9457533581980913E-04 + 0.9422437263045788E-04 + 0.9387444490529715E-04 + 0.9352555090362634E-04 + 0.9317768890362649E-04 + 0.9283085721325200E-04 + 0.9248505414186603E-04 + 0.9214027797818027E-04 + 0.9179652699361164E-04 + 0.9145379946094019E-04 + 0.9111209366655551E-04 + 0.9077140790279319E-04 + 0.9043174045861189E-04 + 0.9009308961124631E-04 + 0.8975545363549067E-04 + 0.8941883081317480E-04 + 0.8908321943834753E-04 + 0.8874861780609040E-04 + 0.8841502420777282E-04 + 0.8808243693134777E-04 + 0.8775085426314943E-04 + 0.8742027447749807E-04 + 0.8709069584290516E-04 + 0.8676211663265924E-04 + 0.8643453513851810E-04 + 0.8610794965665114E-04 + 0.8578235848138426E-04 + 0.8545775990351832E-04 + 0.8513415221278104E-04 + 0.8481153368309764E-04 + 0.8448990257243050E-04 + 0.8416925714154754E-04 + 0.8384959568316344E-04 + 0.8353091650703950E-04 + 0.8321321791768993E-04 + 0.8289649819653036E-04 + 0.8258075561880951E-04 + 0.8226598845986812E-04 + 0.8195219499524578E-04 + 0.8163937350058523E-04 + 0.8132752225372478E-04 + 0.8101663953493766E-04 + 0.8070672362513685E-04 + 0.8039777281049542E-04 + 0.8008978538027957E-04 + 0.7978275962213914E-04 + 0.7947669381583742E-04 + 0.7917158623880011E-04 + 0.7886743517119699E-04 + 0.7856423889961478E-04 + 0.7826199571119372E-04 + 0.7796070388082543E-04 + 0.7766036166846366E-04 + 0.7736096733543953E-04 + 0.7706251916979862E-04 + 0.7676501547689512E-04 + 0.7646845455695912E-04 + 0.7617283468148626E-04 + 0.7587815411247833E-04 + 0.7558441111535928E-04 + 0.7529160396444823E-04 + 0.7499973093565354E-04 + 0.7470879031188574E-04 + 0.7441878038544571E-04 + 0.7412969944823300E-04 + 0.7384154577801427E-04 + 0.7355431764248321E-04 + 0.7326801330900670E-04 + 0.7298263104429713E-04 + 0.7269816911483515E-04 + 0.7241462579381725E-04 + 0.7213199937375904E-04 + 0.7185028815040074E-04 + 0.7156949040751039E-04 + 0.7128960441120436E-04 + 0.7101062842652636E-04 + 0.7073256072379786E-04 + 0.7045539957747558E-04 + 0.7017914326133412E-04 + 0.6990379004388561E-04 + 0.6962933819150088E-04 + 0.6935578597529199E-04 + 0.6908313168155019E-04 + 0.6881137359945182E-04 + 0.6854051000867319E-04 + 0.6827053917347120E-04 + 0.6800145935661067E-04 + 0.6773326881942938E-04 + 0.6746596582203651E-04 + 0.6719954862768391E-04 + 0.6693401552330407E-04 + 0.6666936480649582E-04 + 0.6640559476334301E-04 + 0.6614270363879399E-04 + 0.6588068966890035E-04 + 0.6561955111214203E-04 + 0.6535928626711421E-04 + 0.6509989343508284E-04 + 0.6484137088624525E-04 + 0.6458371686140487E-04 + 0.6432692960335684E-04 + 0.6407100738119233E-04 + 0.6381594847709461E-04 + 0.6356175116968920E-04 + 0.6330841372313227E-04 + 0.6305593439803748E-04 + 0.6280431145987903E-04 + 0.6255354318372303E-04 + 0.6230362784498416E-04 + 0.6205456369992444E-04 + 0.6180634898490071E-04 + 0.6155898193928437E-04 + 0.6131246083959740E-04 + 0.6106678398277365E-04 + 0.6082194965641786E-04 + 0.6057795610603652E-04 + 0.6033480156559752E-04 + 0.6009248428301763E-04 + 0.5985100253662439E-04 + 0.5961035460807334E-04 + 0.5937053875900256E-04 + 0.5913155322819867E-04 + 0.5889339625566750E-04 + 0.5865606610778881E-04 + 0.5841956106691138E-04 + 0.5818387940892507E-04 + 0.5794901937686017E-04 + 0.5771497920369500E-04 + 0.5748175713279807E-04 + 0.5724935143261640E-04 + 0.5701776037505040E-04 + 0.5678698222289215E-04 + 0.5655701522751270E-04 + 0.5632785763907709E-04 + 0.5609950770188514E-04 + 0.5587196365632792E-04 + 0.5564522374682128E-04 + 0.5541928624025539E-04 + 0.5519414941117230E-04 + 0.5496981152417479E-04 + 0.5474627081727811E-04 + 0.5452352552423840E-04 + 0.5430157388491069E-04 + 0.5408041414755936E-04 + 0.5386004456139746E-04 + 0.5364046338029014E-04 + 0.5342166886151327E-04 + 0.5320365926024337E-04 + 0.5298643281830707E-04 + 0.5276998777247778E-04 + 0.5255432236322953E-04 + 0.5233943484204997E-04 + 0.5212532346234065E-04 + 0.5191198647078787E-04 + 0.5169942210388847E-04 + 0.5148762859720913E-04 + 0.5127660418504904E-04 + 0.5106634710068572E-04 + 0.5085685557992164E-04 + 0.5064812787609029E-04 + 0.5044016224987750E-04 + 0.5023295695188863E-04 + 0.5002651019938107E-04 + 0.4982082020302778E-04 + 0.4961588519444865E-04 + 0.4941170344026125E-04 + 0.4920827320840745E-04 + 0.4900559272946234E-04 + 0.4880366020089780E-04 + 0.4860247382420752E-04 + 0.4840203184065139E-04 + 0.4820233250995062E-04 + 0.4800337408512617E-04 + 0.4780515479421561E-04 + 0.4760767285952507E-04 + 0.4741092650364760E-04 + 0.4721491394970395E-04 + 0.4701963342099335E-04 + 0.4682508314346151E-04 + 0.4663126134562957E-04 + 0.4643816625654196E-04 + 0.4624579610885582E-04 + 0.4605414913707872E-04 + 0.4586322357100460E-04 + 0.4567301762107300E-04 + 0.4548352949282753E-04 + 0.4529475739927379E-04 + 0.4510669956858787E-04 + 0.4491935423057396E-04 + 0.4473271960951180E-04 + 0.4454679392377491E-04 + 0.4436157539111995E-04 + 0.4417706222609895E-04 + 0.4399325264145018E-04 + 0.4381014485059658E-04 + 0.4362773707017129E-04 + 0.4344602751770712E-04 + 0.4326501440681103E-04 + 0.4308469594227516E-04 + 0.4290507032800453E-04 + 0.4272613577777441E-04 + 0.4254789051695139E-04 + 0.4237033276909392E-04 + 0.4219346073035047E-04 + 0.4201727257978094E-04 + 0.4184176650297342E-04 + 0.4166694071999013E-04 + 0.4149279346178588E-04 + 0.4131932294710956E-04 + 0.4114652736433958E-04 + 0.4097440489745578E-04 + 0.4080295373983172E-04 + 0.4063217209695916E-04 + 0.4046205817449193E-04 + 0.4029261016998317E-04 + 0.4012382627542698E-04 + 0.3995570468346006E-04 + 0.3978824359097267E-04 + 0.3962144119635014E-04 + 0.3945529569523449E-04 + 0.3928980527570010E-04 + 0.3912496812462065E-04 + 0.3896078243333115E-04 + 0.3879724639949661E-04 + 0.3863435821999797E-04 + 0.3847211607333683E-04 + 0.3831051812414605E-04 + 0.3814956254062319E-04 + 0.3798924751571490E-04 + 0.3782957125203187E-04 + 0.3767053194493202E-04 + 0.3751212776748858E-04 + 0.3735435688858933E-04 + 0.3719721748125494E-04 + 0.3704070772495612E-04 + 0.3688482579938166E-04 + 0.3672956987845772E-04 + 0.3657493813133028E-04 + 0.3642092872739062E-04 + 0.3626753983878205E-04 + 0.3611476963884073E-04 + 0.3596261629967487E-04 + 0.3581107798919425E-04 + 0.3566015287438207E-04 + 0.3550983911959993E-04 + 0.3536013488469946E-04 + 0.3521103832929683E-04 + 0.3506254761711467E-04 + 0.3491466091561624E-04 + 0.3476737639043650E-04 + 0.3462069219154953E-04 + 0.3447460646143847E-04 + 0.3432911734874347E-04 + 0.3418422302564378E-04 + 0.3403992166972889E-04 + 0.3389621143966383E-04 + 0.3375309045822097E-04 + 0.3361055684536916E-04 + 0.3346860874876164E-04 + 0.3332724434376066E-04 + 0.3318646180301143E-04 + 0.3304625926392434E-04 + 0.3290663484530024E-04 + 0.3276758667067462E-04 + 0.3262911288430431E-04 + 0.3249121163590162E-04 + 0.3235388107240995E-04 + 0.3221711933497285E-04 + 0.3208092456363278E-04 + 0.3194529488821069E-04 + 0.3181022842728842E-04 + 0.3167572329964572E-04 + 0.3154177763190361E-04 + 0.3140838955525154E-04 + 0.3127555720065672E-04 + 0.3114327869777090E-04 + 0.3101155217585241E-04 + 0.3088037576270394E-04 + 0.3074974758275379E-04 + 0.3061966575951109E-04 + 0.3049012840180854E-04 + 0.3036113360075085E-04 + 0.3023267944913650E-04 + 0.3010476407152765E-04 + 0.2997738561286600E-04 + 0.2985054220929889E-04 + 0.2972423194904825E-04 + 0.2959845290469814E-04 + 0.2947320316500900E-04 + 0.2934848086025903E-04 + 0.2922428412658689E-04 + 0.2910061107140311E-04 + 0.2897745976398204E-04 + 0.2885482827286952E-04 + 0.2873271469170213E-04 + 0.2861111713183208E-04 + 0.2849003370226863E-04 + 0.2836946249610355E-04 + 0.2824940160064671E-04 + 0.2812984910215758E-04 + 0.2801080308392695E-04 + 0.2789226162861261E-04 + 0.2777422281325625E-04 + 0.2765668470669985E-04 + 0.2753964537835045E-04 + 0.2742310291601002E-04 + 0.2730705542175971E-04 + 0.2719150099165116E-04 + 0.2707643767975603E-04 + 0.2696186352324201E-04 + 0.2684777657086400E-04 + 0.2673417490816213E-04 + 0.2662105662769407E-04 + 0.2650841980644776E-04 + 0.2639626249638680E-04 + 0.2628458274728578E-04 + 0.2617337861015993E-04 + 0.2606264813708330E-04 + 0.2595238938058481E-04 + 0.2584260039629047E-04 + 0.2573327924120647E-04 + 0.2562442396818368E-04 + 0.2551603261542893E-04 + 0.2540810321802992E-04 + 0.2530063381986628E-04 + 0.2519362248038664E-04 + 0.2508706725934218E-04 + 0.2498096618996232E-04 + 0.2487531728062326E-04 + 0.2477011854215676E-04 + 0.2466536801358919E-04 + 0.2456106374784262E-04 + 0.2445720379060809E-04 + 0.2435378615886147E-04 + 0.2425080886257864E-04 + 0.2414826991563285E-04 + 0.2404616733950846E-04 + 0.2394449915644245E-04 + 0.2384326338555080E-04 + 0.2374245804273641E-04 + 0.2364208114281232E-04 + 0.2354213069180785E-04 + 0.2344260469097365E-04 + 0.2334350114268486E-04 + 0.2324481805443246E-04 + 0.2314655343507598E-04 + 0.2304870528877916E-04 + 0.2295127160956976E-04 + 0.2285425039015403E-04 + 0.2275763962318867E-04 + 0.2266143730127485E-04 + 0.2256564141634450E-04 + 0.2247024995331100E-04 + 0.2237526089287877E-04 + 0.2228067221443792E-04 + 0.2218648189126666E-04 + 0.2209268789480516E-04 + 0.2199928820191740E-04 + 0.2190628080241741E-04 + 0.2181366368748749E-04 + 0.2172143482985254E-04 + 0.2162959217930838E-04 + 0.2153813368470491E-04 + 0.2144705730072350E-04 + 0.2135636098589596E-04 + 0.2126604270257209E-04 + 0.2117610043344610E-04 + 0.2108653216800490E-04 + 0.2099733585587131E-04 + 0.2090850934118491E-04 + 0.2082005046287370E-04 + 0.2073195758475607E-04 + 0.2064422978751074E-04 + 0.2055686621593782E-04 + 0.2046986618677686E-04 + 0.2038322914166357E-04 + 0.2029695451464272E-04 + 0.2021104167673007E-04 + 0.2012548997532720E-04 + 0.2004029876205308E-04 + 0.1995546740103162E-04 + 0.1987099525861729E-04 + 0.1978688169825945E-04 + 0.1970312607904308E-04 + 0.1961972775912630E-04 + 0.1953668608770254E-04 + 0.1945400040680608E-04 + 0.1937167005997799E-04 + 0.1928969440233630E-04 + 0.1920807279380263E-04 + 0.1912680458304898E-04 + 0.1904588908197437E-04 + 0.1896532559528755E-04 + 0.1888511344936612E-04 + 0.1880525200643343E-04 + 0.1872574062999789E-04 + 0.1864657864538306E-04 + 0.1856776534440688E-04 + 0.1848930002092356E-04 + 0.1841118199292229E-04 + 0.1833341058948315E-04 + 0.1825598513575345E-04 + 0.1817890494237707E-04 + 0.1810216931667715E-04 + 0.1802577756318579E-04 + 0.1794972898134754E-04 + 0.1787402287003069E-04 + 0.1779865852734255E-04 + 0.1772363525065644E-04 + 0.1764895233631991E-04 + 0.1757460907215692E-04 + 0.1750060474166315E-04 + 0.1742693862829205E-04 + 0.1735361001546279E-04 + 0.1728061818655306E-04 + 0.1720796242049997E-04 + 0.1713564198730549E-04 + 0.1706365615591488E-04 + 0.1699200419566105E-04 + 0.1692068537628685E-04 + 0.1684969896647512E-04 + 0.1677904422447737E-04 + 0.1670872040270205E-04 + 0.1663872675521945E-04 + 0.1656906254388435E-04 + 0.1649972703270406E-04 + 0.1643071947735489E-04 + 0.1636203911498761E-04 + 0.1629368518013429E-04 + 0.1622565690360986E-04 + 0.1615795351190623E-04 + 0.1609057423310252E-04 + 0.1602351831533003E-04 + 0.1595678501909744E-04 + 0.1589037359559382E-04 + 0.1582428324825604E-04 + 0.1575851316559477E-04 + 0.1569306255031554E-04 + 0.1562793064008034E-04 + 0.1556311667716354E-04 + 0.1549861987872017E-04 + 0.1543443942980192E-04 + 0.1537057451529318E-04 + 0.1530702434412061E-04 + 0.1524378814154734E-04 + 0.1518086512691821E-04 + 0.1511825448464796E-04 + 0.1505595538699322E-04 + 0.1499396701285372E-04 + 0.1493228855929305E-04 + 0.1487091922619349E-04 + 0.1480985820171293E-04 + 0.1474910465753407E-04 + 0.1468865776429942E-04 + 0.1462851669545200E-04 + 0.1456868062652814E-04 + 0.1450914873110828E-04 + 0.1444992017020579E-04 + 0.1439099409997904E-04 + 0.1433236967993959E-04 + 0.1427404607979379E-04 + 0.1421602247090759E-04 + 0.1415829800888032E-04 + 0.1410087182493411E-04 + 0.1404374304947782E-04 + 0.1398691083402439E-04 + 0.1393037434742315E-04 + 0.1387413275348135E-04 + 0.1381818517702771E-04 + 0.1376253072620334E-04 + 0.1370716851568039E-04 + 0.1365209768235625E-04 + 0.1359731736773663E-04 + 0.1354282670792533E-04 + 0.1348862482982689E-04 + 0.1343471085870798E-04 + 0.1338108390555560E-04 + 0.1332774306846915E-04 + 0.1327468744625539E-04 + 0.1322191614693619E-04 + 0.1316942828289680E-04 + 0.1311722296616547E-04 + 0.1306529930733411E-04 + 0.1301365641655326E-04 + 0.1296229339275182E-04 + 0.1291120931378928E-04 + 0.1286040325577099E-04 + 0.1280987430767639E-04 + 0.1275962157124823E-04 + 0.1270964414576976E-04 + 0.1265994110387018E-04 + 0.1261051150423953E-04 + 0.1256135441084405E-04 + 0.1251246891021034E-04 + 0.1246385409469216E-04 + 0.1241550904628978E-04 + 0.1236743282554062E-04 + 0.1231962449014679E-04 + 0.1227208309325628E-04 + 0.1222480768305809E-04 + 0.1217779730850652E-04 + 0.1213105102873730E-04 + 0.1208456790875799E-04 + 0.1203834700936055E-04 + 0.1199238737137375E-04 + 0.1194668802983983E-04 + 0.1190124802460665E-04 + 0.1185606640653891E-04 + 0.1181114222751025E-04 + 0.1176647452221659E-04 + 0.1172206230480483E-04 + 0.1167790458953995E-04 + 0.1163400040580230E-04 + 0.1159034879257497E-04 + 0.1154694878795406E-04 + 0.1150379942463216E-04 + 0.1146089973352287E-04 + 0.1141824873269694E-04 + 0.1137584540762773E-04 + 0.1133368873939013E-04 + 0.1129177773689002E-04 + 0.1125011144562409E-04 + 0.1120868891026950E-04 + 0.1116750913248553E-04 + 0.1112657108385435E-04 + 0.1108587373990038E-04 + 0.1104541610257111E-04 + 0.1100519718330302E-04 + 0.1096521598709183E-04 + 0.1092547150076364E-04 + 0.1088596270807539E-04 + 0.1084668859805372E-04 + 0.1080764816734466E-04 + 0.1076884041223137E-04 + 0.1073026431468616E-04 + 0.1069191884567808E-04 + 0.1065380297658132E-04 + 0.1061591568322319E-04 + 0.1057825594320584E-04 + 0.1054082273389849E-04 + 0.1050361503192795E-04 + 0.1046663181360112E-04 + 0.1042987204395077E-04 + 0.1039333467006828E-04 + 0.1035701863862637E-04 + 0.1032092291670648E-04 + 0.1028504648863444E-04 + 0.1024938833572335E-04 + 0.1021394741347715E-04 + 0.1017872266600977E-04 + 0.1014371303921106E-04 + 0.1010891748532671E-04 + 0.1007433495796015E-04 + 0.1003996440866817E-04 + 0.1000580478541977E-04 + 0.9971855035756583E-05 + 0.9938114105918372E-05 + 0.9904580940936560E-05 + 0.9871254485314347E-05 + 0.9838133679618123E-05 + 0.9805217462493856E-05 + 0.9772504772481884E-05 + 0.9739994547763992E-05 + 0.9707685726419982E-05 + 0.9675577244702275E-05 + 0.9643668035329199E-05 + 0.9611957030574480E-05 + 0.9580443161737870E-05 + 0.9549125359125931E-05 + 0.9518002552793368E-05 + 0.9487073670888222E-05 + 0.9456337640531681E-05 + 0.9425793388451492E-05 + 0.9395439839719460E-05 + 0.9365275918953905E-05 + 0.9335300549588890E-05 + 0.9305512652528689E-05 + 0.9275911148376185E-05 + 0.9246494958425529E-05 + 0.9217263004744563E-05 + 0.9188214209001444E-05 + 0.9159347488276930E-05 + 0.9130661756927982E-05 + 0.9102155929814295E-05 + 0.9073828924387060E-05 + 0.9045679658871045E-05 + 0.9017707050145274E-05 + 0.8989910011908588E-05 + 0.8962287457387305E-05 + 0.8934838299340582E-05 + 0.8907561449953242E-05 + 0.8880455821412422E-05 + 0.8853520326351122E-05 + 0.8826753877694063E-05 + 0.8800155388122121E-05 + 0.8773723768980293E-05 + 0.8747457931167315E-05 + 0.8721356785277802E-05 + 0.8695419241111335E-05 + 0.8669644208350722E-05 + 0.8644030597175579E-05 + 0.8618577318437113E-05 + 0.8593283283000613E-05 + 0.8568147401274382E-05 + 0.8543168583337819E-05 + 0.8518345739178962E-05 + 0.8493677778279935E-05 + 0.8469163609936203E-05 + 0.8444802144331900E-05 + 0.8420592294233282E-05 + 0.8396532972847808E-05 + 0.8372623092032967E-05 + 0.8348861561637557E-05 + 0.8325247291502102E-05 + 0.8301779193884398E-05 + 0.8278456182954177E-05 + 0.8255277172903314E-05 + 0.8232241077722618E-05 + 0.8209346811320518E-05 + 0.8186593288103659E-05 + 0.8163979424088810E-05 + 0.8141504135627454E-05 + 0.8119166339787396E-05 + 0.8096964954809957E-05 + 0.8074898899072334E-05 + 0.8052967091442637E-05 + 0.8031168451215818E-05 + 0.8009501898168113E-05 + 0.7987966355586151E-05 + 0.7966560748353474E-05 + 0.7945284001281556E-05 + 0.7924135038893112E-05 + 0.7903112785662927E-05 + 0.7882216167637153E-05 + 0.7861444113698463E-05 + 0.7840795553129144E-05 + 0.7820269417367987E-05 + 0.7799864639912434E-05 + 0.7779580154589411E-05 + 0.7759414897313972E-05 + 0.7739367805050801E-05 + 0.7719437815110309E-05 + 0.7699623866154690E-05 + 0.7679924897203949E-05 + 0.7660339849903828E-05 + 0.7640867671130003E-05 + 0.7621507308398869E-05 + 0.7602257709756561E-05 + 0.7583117823804741E-05 + 0.7564086599610165E-05 + 0.7545162990426796E-05 + 0.7526345951830949E-05 + 0.7507634440208175E-05 + 0.7489027415442838E-05 + 0.7470523838402978E-05 + 0.7452122671750603E-05 + 0.7433822882096409E-05 + 0.7415623436635002E-05 + 0.7397523304301517E-05 + 0.7379521456036220E-05 + 0.7361616863402953E-05 + 0.7343808503507463E-05 + 0.7326095356843063E-05 + 0.7308476404462130E-05 + 0.7290950629953624E-05 + 0.7273517017700755E-05 + 0.7256174554573606E-05 + 0.7238922233499666E-05 + 0.7221759048390709E-05 + 0.7204683996067653E-05 + 0.7187696077033634E-05 + 0.7170794292293636E-05 + 0.7153977646117546E-05 + 0.7137245144972313E-05 + 0.7120595796550294E-05 + 0.7104028615111417E-05 + 0.7087542617182074E-05 + 0.7071136821323922E-05 + 0.7054810251588794E-05 + 0.7038561933012527E-05 + 0.7022390893663378E-05 + 0.7006296165829626E-05 + 0.6990276782483631E-05 + 0.6974331781848006E-05 + 0.6958460206031453E-05 + 0.6942661098096330E-05 + 0.6926933506447554E-05 + 0.6911276481534966E-05 + 0.6895689076373351E-05 + 0.6880170351655332E-05 + 0.6864719369557339E-05 + 0.6849335195208450E-05 + 0.6834016898258688E-05 + 0.6818763549095648E-05 + 0.6803574223890454E-05 + 0.6788448003519708E-05 + 0.6773383970009429E-05 + 0.6758381212408598E-05 + 0.6743438822742477E-05 + 0.6728555895163114E-05 + 0.6713731530877050E-05 + 0.6698964832601785E-05 + 0.6684254906295379E-05 + 0.6669600863379960E-05 + 0.6655001816206678E-05 + 0.6640456884771191E-05 + 0.6625965195902461E-05 + 0.6611525877262548E-05 + 0.6597138061124381E-05 + 0.6582800881922060E-05 + 0.6568513476859854E-05 + 0.6554274993376540E-05 + 0.6540084581319711E-05 + 0.6525941394168639E-05 + 0.6511844592153695E-05 + 0.6497793336488901E-05 + 0.6483786793922736E-05 + 0.6469824136638032E-05 + 0.6455904538056680E-05 + 0.6442027180454311E-05 + 0.6428191250690286E-05 + 0.6414395937371975E-05 + 0.6400640436173278E-05 + 0.6386923944629203E-05 + 0.6373245665526333E-05 + 0.6359604812428349E-05 + 0.6346000600368341E-05 + 0.6332432248258063E-05 + 0.6318898979192516E-05 + 0.6305400017528191E-05 + 0.6291934598054932E-05 + 0.6278501961520616E-05 + 0.6265101350610600E-05 + 0.6251732016612966E-05 + 0.6238393213307477E-05 + 0.6225084198253494E-05 + 0.6211804237584552E-05 + 0.6198552598831991E-05 + 0.6185328556396458E-05 + 0.6172131392817425E-05 + 0.6158960391736004E-05 + 0.6145814843872186E-05 + 0.6132694044399468E-05 + 0.6119597290903966E-05 + 0.6106523893004586E-05 + 0.6093473164179599E-05 + 0.6080444420980387E-05 + 0.6067436987673646E-05 + 0.6054450189894897E-05 + 0.6041483360184125E-05 + 0.6028535840071835E-05 + 0.6015606972373173E-05 + 0.6002696108642582E-05 + 0.5989802606485939E-05 + 0.5976925825366607E-05 + 0.5964065134698958E-05 + 0.5951219907440363E-05 + 0.5938389520044989E-05 + 0.5925573358696723E-05 + 0.5912770811392697E-05 + 0.5899981272592227E-05 + 0.5887204146007764E-05 + 0.5874438836652233E-05 + 0.5861684758186515E-05 + 0.5848941330856540E-05 + 0.5836207976746889E-05 + 0.5823484128662239E-05 + 0.5810769223637116E-05 + 0.5798062701832758E-05 + 0.5785364013054318E-05 + 0.5772672609078522E-05 + 0.5759987948699655E-05 + 0.5747309501770048E-05 + 0.5734636739469014E-05 + 0.5721969139006482E-05 + 0.5709306182639366E-05 + 0.5696647354815891E-05 + 0.5683992154595245E-05 + 0.5671340087418796E-05 + 0.5658690660774437E-05 + 0.5646043389103284E-05 + 0.5633397788426913E-05 + 0.5620753381879984E-05 + 0.5608109704944997E-05 + 0.5595466294713987E-05 + 0.5582822695752365E-05 + 0.5570178459496661E-05 + 0.5557533138906358E-05 + 0.5544886297158004E-05 + 0.5532237502362571E-05 + 0.5519586326003632E-05 + 0.5506932352369351E-05 + 0.5494275168849857E-05 + 0.5481614366786492E-05 + 0.5468949545085390E-05 + 0.5456280303966907E-05 + 0.5443606254422871E-05 + 0.5430927018323061E-05 + 0.5418242218787227E-05 + 0.5405551485917766E-05 + 0.5392854453540154E-05 + 0.5380150758625447E-05 + 0.5367440051426854E-05 + 0.5354721985772276E-05 + 0.5341996220595755E-05 + 0.5329262425627649E-05 + 0.5316520272193284E-05 + 0.5303769437833326E-05 + 0.5291009606982756E-05 + 0.5278240465547691E-05 + 0.5265461710867275E-05 + 0.5252673047002397E-05 + 0.5239874180534516E-05 + 0.5227064829628815E-05 + 0.5214244715905807E-05 + 0.5201413564701225E-05 + 0.5188571110038049E-05 + 0.5175717087425296E-05 + 0.5162851240699790E-05 + 0.5149973323847924E-05 + 0.5137083092192359E-05 + 0.5124180309482628E-05 + 0.5111264744924703E-05 + 0.5098336170175233E-05 + 0.5085394369405950E-05 + 0.5072439130929867E-05 + 0.5059470246084420E-05 + 0.5046487514035580E-05 + 0.5033490735406540E-05 + 0.5020479719416072E-05 + 0.5007454286797448E-05 + 0.4994414259586778E-05 + 0.4981359466459278E-05 + 0.4968289740820232E-05 + 0.4955204918327045E-05 + 0.4942104847376837E-05 + 0.4928989381043378E-05 + 0.4915858375277821E-05 + 0.4902711694282084E-05 + 0.4889549203866972E-05 + 0.4876370776970004E-05 + 0.4863176297029018E-05 + 0.4849965648775905E-05 + 0.4836738723883817E-05 + 0.4823495419463182E-05 + 0.4810235634517936E-05 + 0.4796959279635958E-05 + 0.4783666270117490E-05 + 0.4770356523745922E-05 + 0.4757029966193645E-05 + 0.4743686524810073E-05 + 0.4730326134099587E-05 + 0.4716948740171466E-05 + 0.4703554290437173E-05 + 0.4690142736604861E-05 + 0.4676714034081511E-05 + 0.4663268140169718E-05 + 0.4649805025356932E-05 + 0.4636324666066774E-05 + 0.4622827040771273E-05 + 0.4609312135122524E-05 + 0.4595779936425725E-05 + 0.4582230437312171E-05 + 0.4568663639932618E-05 + 0.4555079547692784E-05 + 0.4541478169587733E-05 + 0.4527859519897741E-05 + 0.4514223614492064E-05 + 0.4500570480778371E-05 + 0.4486900151905338E-05 + 0.4473212662430351E-05 + 0.4459508052322417E-05 + 0.4445786362931688E-05 + 0.4432047641026135E-05 + 0.4418291944057250E-05 + 0.4404519330934140E-05 + 0.4390729865675985E-05 + 0.4376923617609495E-05 + 0.4363100657164392E-05 + 0.4349261062838029E-05 + 0.4335404917557833E-05 + 0.4321532306208683E-05 + 0.4307643322107219E-05 + 0.4293738060913562E-05 + 0.4279816622052922E-05 + 0.4265879113153890E-05 + 0.4251925643066445E-05 + 0.4237956324815841E-05 + 0.4223971276191133E-05 + 0.4209970616079522E-05 + 0.4195954472318118E-05 + 0.4181922978160932E-05 + 0.4167876268221442E-05 + 0.4153814483423785E-05 + 0.4139737766635995E-05 + 0.4125646263232600E-05 + 0.4111540124629758E-05 + 0.4097419503318874E-05 + 0.4083284558369400E-05 + 0.4069135457097365E-05 + 0.4054972367601284E-05 + 0.4040795461143076E-05 + 0.4026604911092601E-05 + 0.4012400892487849E-05 + 0.3998183589302569E-05 + 0.3983953188560985E-05 + 0.3969709879364161E-05 + 0.3955453856355824E-05 + 0.3941185315179608E-05 + 0.3926904455228704E-05 + 0.3912611481063776E-05 + 0.3898306598059841E-05 + 0.3883990017679596E-05 + 0.3869661955848292E-05 + 0.3855322629255948E-05 + 0.3840972258649160E-05 + 0.3826611066311847E-05 + 0.3812239277288557E-05 + 0.3797857124804223E-05 + 0.3783464843619711E-05 + 0.3769062669976234E-05 + 0.3754650842359805E-05 + 0.3740229599832397E-05 + 0.3725799187691833E-05 + 0.3711359856261005E-05 + 0.3696911856567237E-05 + 0.3682455443486690E-05 + 0.3667990873510092E-05 + 0.3653518404528295E-05 + 0.3639038299031541E-05 + 0.3624550820499937E-05 + 0.3610056235601716E-05 + 0.3595554816327655E-05 + 0.3581046835320845E-05 + 0.3566532567960656E-05 + 0.3552012292049085E-05 + 0.3537486286003139E-05 + 0.3522954832325675E-05 + 0.3508418215415277E-05 + 0.3493876720707201E-05 + 0.3479330637404046E-05 + 0.3464780255598670E-05 + 0.3450225868003625E-05 + 0.3435667772152774E-05 + 0.3421106266151611E-05 + 0.3406541649270198E-05 + 0.3391974221911251E-05 + 0.3377404285100216E-05 + 0.3362832144848640E-05 + 0.3348258109723590E-05 + 0.3333682488669827E-05 + 0.3319105592091733E-05 + 0.3304527730779386E-05 + 0.3289949217336963E-05 + 0.3275370368053573E-05 + 0.3260791499761718E-05 + 0.3246212931795869E-05 + 0.3231634986163506E-05 + 0.3217057985063907E-05 + 0.3202482251295535E-05 + 0.3187908107995743E-05 + 0.3173335879016451E-05 + 0.3158765891447311E-05 + 0.3144198473306153E-05 + 0.3129633954081382E-05 + 0.3115072666563266E-05 + 0.3100514943991144E-05 + 0.3085961119571612E-05 + 0.3071411526472767E-05 + 0.3056866498051072E-05 + 0.3042326369775631E-05 + 0.3027791478431717E-05 + 0.3013262161170478E-05 + 0.2998738756899664E-05 + 0.2984221605085256E-05 + 0.2969711045934504E-05 + 0.2955207421496457E-05 + 0.2940711074103333E-05 + 0.2926222346154239E-05 + 0.2911741580134710E-05 + 0.2897269118633995E-05 + 0.2882805305481094E-05 + 0.2868350485355171E-05 + 0.2853905002904821E-05 + 0.2839469202511764E-05 + 0.2825043428465480E-05 + 0.2810628026271223E-05 + 0.2796223344785677E-05 + 0.2781829733389925E-05 + 0.2767447539158527E-05 + 0.2753077105895585E-05 + 0.2738718777415804E-05 + 0.2724372901294625E-05 + 0.2710039827943604E-05 + 0.2695719907366263E-05 + 0.2681413486540134E-05 + 0.2667120911261758E-05 + 0.2652842527410352E-05 + 0.2638578681126150E-05 + 0.2624329718618002E-05 + 0.2610095987238502E-05 + 0.2595877836125050E-05 + 0.2581675614348924E-05 + 0.2567489667275682E-05 + 0.2553320337199141E-05 + 0.2539167966791544E-05 + 0.2525032902067574E-05 + 0.2510915490486704E-05 + 0.2496816078462329E-05 + 0.2482735008826106E-05 + 0.2468672623644528E-05 + 0.2454629264699855E-05 + 0.2440605273285965E-05 + 0.2426600990651672E-05 + 0.2412616758106858E-05 + 0.2398652917017019E-05 + 0.2384709808329561E-05 + 0.2370787769644997E-05 + 0.2356887136963943E-05 + 0.2343008246520916E-05 + 0.2329151435474626E-05 + 0.2315317041185955E-05 + 0.2301505399126660E-05 + 0.2287716841188199E-05 + 0.2273951698848134E-05 + 0.2260210303248718E-05 + 0.2246492985196722E-05 + 0.2232800075298495E-05 + 0.2219131902492394E-05 + 0.2205488794836151E-05 + 0.2191871079516271E-05 + 0.2178279080072759E-05 + 0.2164713119081292E-05 + 0.2151173518795934E-05 + 0.2137660600797695E-05 + 0.2124174686508284E-05 + 0.2110716095301704E-05 + 0.2097285144302008E-05 + 0.2083882150294803E-05 + 0.2070507427800215E-05 + 0.2057161290019658E-05 + 0.2043844049704625E-05 + 0.2030556017567093E-05 + 0.2017297503712249E-05 + 0.2004068816395666E-05 + 0.1990870259592295E-05 + 0.1977702136655053E-05 + 0.1964564750335761E-05 + 0.1951458402660667E-05 + 0.1938383395370850E-05 + 0.1925340027418816E-05 + 0.1912328595969099E-05 + 0.1899349397178586E-05 + 0.1886402722070886E-05 + 0.1873488859991211E-05 + 0.1860608099999008E-05 + 0.1847760730423291E-05 + 0.1834947039400635E-05 + 0.1822167311922278E-05 + 0.1809421828806370E-05 + 0.1796710870481073E-05 + 0.1784034716028053E-05 + 0.1771393643578921E-05 + 0.1758787930315806E-05 + 0.1746217847975431E-05 + 0.1733683666316670E-05 + 0.1721185654138708E-05 + 0.1708724077519049E-05 + 0.1696299202027660E-05 + 0.1683911291857010E-05 + 0.1671560609189519E-05 + 0.1659247415689793E-05 + 0.1646971967590755E-05 + 0.1634734516911202E-05 + 0.1622535315394978E-05 + 0.1610374613707879E-05 + 0.1598252662081014E-05 + 0.1586169708886456E-05 + 0.1574125996625550E-05 + 0.1562121766627604E-05 + 0.1550157259218876E-05 + 0.1538232713114637E-05 + 0.1526348366548031E-05 + 0.1514504451844873E-05 + 0.1502701196294559E-05 + 0.1490938827022936E-05 + 0.1479217571139426E-05 + 0.1467537655745954E-05 + 0.1455899305805943E-05 + 0.1444302738763541E-05 + 0.1432748170398665E-05 + 0.1421235815375925E-05 + 0.1409765886386188E-05 + 0.1398338595682855E-05 + 0.1386954150691706E-05 + 0.1375612754316762E-05 + 0.1364314609035300E-05 + 0.1353059915239912E-05 + 0.1341848872296368E-05 + 0.1330681678170305E-05 + 0.1319558525372934E-05 + 0.1308479605063388E-05 + 0.1297445106281072E-05 + 0.1286455213927100E-05 + 0.1275510112274743E-05 + 0.1264609981980699E-05 + 0.1253754999980947E-05 + 0.1242945342686211E-05 + 0.1232181183203477E-05 + 0.1221462692843518E-05 + 0.1210790041740324E-05 + 0.1200163394973214E-05 + 0.1189582916232470E-05 + 0.1179048767170613E-05 + 0.1168561105045538E-05 + 0.1158120086431687E-05 + 0.1147725864667240E-05 + 0.1137378589433267E-05 + 0.1127078409822468E-05 + 0.1116825470795853E-05 + 0.1106619914838360E-05 + 0.1096461883376525E-05 + 0.1086351512854607E-05 + 0.1076288938199998E-05 + 0.1066274292802973E-05 + 0.1056307706386973E-05 + 0.1046389308025257E-05 + 0.1036519222743535E-05 + 0.1026697570541839E-05 + 0.1016924470864196E-05 + 0.1007200040247109E-05 + 0.9975243933081844E-06 + 0.9878976435822848E-06 + 0.9783198989174224E-06 + 0.9687912652401995E-06 + 0.9593118468677787E-06 + 0.9498817438656582E-06 + 0.9405010555337082E-06 + 0.9311698780812755E-06 + 0.9218883034991116E-06 + 0.9126564231938392E-06 + 0.9034743247206443E-06 + 0.8943420928385958E-06 + 0.8852598114407156E-06 + 0.8762275595561436E-06 + 0.8672454143912200E-06 + 0.8583134515109279E-06 + 0.8494317416726902E-06 + 0.8406003547071251E-06 + 0.8318193577182523E-06 + 0.8230888137162674E-06 + 0.8144087851299421E-06 + 0.8057793305269172E-06 + 0.7972005053932172E-06 + 0.7886723644295602E-06 + 0.7801949575969363E-06 + 0.7717683328888215E-06 + 0.7633925368566583E-06 + 0.7550676113682654E-06 + 0.7467935973013323E-06 + 0.7385705328992247E-06 + 0.7303984520501892E-06 + 0.7222773880346027E-06 + 0.7142073704686637E-06 + 0.7061884257551094E-06 + 0.6982205795893864E-06 + 0.6903038531186074E-06 + 0.6824382654009911E-06 + 0.6746238342065168E-06 + 0.6668605726673893E-06 + 0.6591484928381376E-06 + 0.6514876043106393E-06 + 0.6438779121892715E-06 + 0.6363194209444931E-06 + 0.6288121316620843E-06 + 0.6213560421671819E-06 + 0.6139511496432406E-06 + 0.6065974469193920E-06 + 0.5992949246153552E-06 + 0.5920435721347644E-06 + 0.5848433740334330E-06 + 0.5776943136269059E-06 + 0.5705963721824478E-06 + 0.5635495268483020E-06 + 0.5565537541484521E-06 + 0.5496090272714024E-06 + 0.5427153158764528E-06 + 0.5358725890223592E-06 + 0.5290808116067484E-06 + 0.5223399461977436E-06 + 0.5156499543403273E-06 + 0.5090107930849852E-06 + 0.5024224182076757E-06 + 0.4958847835341011E-06 + 0.4893978385556888E-06 + 0.4829615320808422E-06 + 0.4765758098777304E-06 + 0.4702406141805605E-06 + 0.4639558866798447E-06 + 0.4577215652876562E-06 + 0.4515375855851034E-06 + 0.4454038822127005E-06 + 0.4393203852594868E-06 + 0.4332870233838145E-06 + 0.4273037235370630E-06 + 0.4213704084724784E-06 + 0.4154870002380198E-06 + 0.4096534182144143E-06 + 0.4038695783755031E-06 + 0.3981353961637267E-06 + 0.3924507831611813E-06 + 0.3868156483284007E-06 + 0.3812298998771784E-06 + 0.3756934421037644E-06 + 0.3702061779389951E-06 + 0.3647680087203611E-06 + 0.3593788314435065E-06 + 0.3540385423181470E-06 + 0.3487470351055996E-06 + 0.3435042001287173E-06 + 0.3383099272143726E-06 + 0.3331641027810562E-06 + 0.3280666107014818E-06 + 0.3230173341751046E-06 + 0.3180161525683699E-06 + 0.3130629437664068E-06 + 0.3081575842786451E-06 + 0.3032999464575278E-06 + 0.2984899018343359E-06 + 0.2937273197306885E-06 + 0.2890120660536766E-06 + 0.2843440062315021E-06 + 0.2797230026135880E-06 + 0.2751489150217092E-06 + 0.2706216026842837E-06 + 0.2661409211938914E-06 + 0.2617067245872479E-06 + 0.2573188656890221E-06 + 0.2529771932615631E-06 + 0.2486815551896402E-06 + 0.2444317975466054E-06 + 0.2402277633228960E-06 + 0.2360692950478712E-06 + 0.2319562321564043E-06 + 0.2278884112921362E-06 + 0.2238656685984259E-06 + 0.2198878370683095E-06 + 0.2159547482039634E-06 + 0.2120662324949148E-06 + 0.2082221166668618E-06 + 0.2044222265468629E-06 + 0.2006663861862903E-06 + 0.1969544163043717E-06 + 0.1932861371478735E-06 + 0.1896613665789783E-06 + 0.1860799200972954E-06 + 0.1825416127196799E-06 + 0.1790462560794021E-06 + 0.1755936600413814E-06 + 0.1721836336816515E-06 + 0.1688159828454558E-06 + 0.1654905125248079E-06 + 0.1622070261953125E-06 + 0.1589653241907978E-06 + 0.1557652063664204E-06 + 0.1526064701905636E-06 + 0.1494889105341490E-06 + 0.1464123218756948E-06 + 0.1433764960734339E-06 + 0.1403812234752557E-06 + 0.1374262936754578E-06 + 0.1345114928459430E-06 + 0.1316366061586424E-06 + 0.1288014175666548E-06 + 0.1260057082312268E-06 + 0.1232492588619582E-06 + 0.1205318481420193E-06 + 0.1178532523318530E-06 + 0.1152132473115287E-06 + 0.1126116062539515E-06 + 0.1100481006131070E-06 + 0.1075225013062501E-06 + 0.1050345766081114E-06 + 0.1025840939360849E-06 + 0.1001708195180040E-06 + 0.9779451656500477E-07 + 0.9545494777588960E-07 + 0.9315187420804525E-07 + 0.9088505476204741E-07 + 0.8865424800984156E-07 + 0.8645921015959424E-07 + 0.8429969576769068E-07 + 0.8217545890910184E-07 + 0.8008625106635790E-07 + 0.7803182278973576E-07 + 0.7601192370141962E-07 + 0.7402630081539348E-07 + 0.7207470066073768E-07 + 0.7015686829153332E-07 + 0.6827254663045870E-07 + 0.6642147829765744E-07 + 0.6460340388155990E-07 + 0.6281806240940673E-07 + 0.6106519250442548E-07 + 0.5934453043257769E-07 + 0.5765581152051182E-07 + 0.5599877034284896E-07 + 0.5437313913079716E-07 + 0.5277864963922838E-07 + 0.5121503235698222E-07 + 0.4968201575942023E-07 + 0.4817932804163794E-07 + 0.4670669565521869E-07 + 0.4526384357941694E-07 + 0.4385049645986499E-07 + 0.4246637685684110E-07 + 0.4111120641082522E-07 + 0.3978470615375257E-07 + 0.3848659501514017E-07 + 0.3721659145542494E-07 + 0.3597441287951810E-07 + 0.3475977484287624E-07 + 0.3357239264036065E-07 + 0.3241198008138421E-07 + 0.3127824959727312E-07 + 0.3017091334828970E-07 + 0.2908968170978850E-07 + 0.2803426418682033E-07 + 0.2700436979112619E-07 + 0.2599970564657991E-07 + 0.2501997841298010E-07 + 0.2406489390399068E-07 + 0.2313415629795483E-07 + 0.2222746953385027E-07 + 0.2134453629923359E-07 + 0.2048505800645788E-07 + 0.1964873584645747E-07 + 0.1883526950219546E-07 + 0.1804435784496106E-07 + 0.1727569936387682E-07 + 0.1652899093314275E-07 + 0.1580392898765513E-07 + 0.1510020928206024E-07 + 0.1441752611887658E-07 + 0.1375557357856084E-07 + 0.1311404473629176E-07 + 0.1249263154204051E-07 + 0.1189102576639504E-07 + 0.1130891793224932E-07 + 0.1074599782209759E-07 + 0.1020195492658394E-07 + 0.9676477380078513E-08 + 0.9169252908012705E-08 + 0.8679968716306854E-08 + 0.8208310784273248E-08 + 0.7753964891347240E-08 + 0.7316616027630792E-08 + 0.6895948212501615E-08 + 0.6491645321691415E-08 + 0.6103390237294080E-08 + 0.5730865192058381E-08 + 0.5373752205182884E-08 + 0.5031732210905771E-08 + 0.4704485780613156E-08 + 0.4391693103727141E-08 + 0.4093033370971466E-08 + 0.3808185597905455E-08 + 0.3536828210561680E-08 + 0.3278638838030937E-08 + 0.3033294997626480E-08 + 0.2800473458925649E-08 + 0.2579850453889582E-08 + 0.2371102066325824E-08 + 0.2173903563644896E-08 + 0.1987929910506128E-08 + 0.1812855807576849E-08 + 0.1648355190453705E-08 + 0.1494101849161830E-08 + 0.1349769170490019E-08 + 0.1215029941633985E-08 + 0.1089556867847725E-08 + 0.9730221368385021E-09 + 0.8650975272068095E-09 + 0.7654547232242232E-09 + 0.6737648520559249E-09 + 0.5896988119939683E-09 + 0.5129273418258451E-09 + 0.4431206678583689E-09 + 0.3799489097542708E-09 + 0.3230819454538914E-09 + 0.2721892571953410E-09 + 0.2269402741465802E-09 + 0.1870041281684092E-09 + 0.1520496928780415E-09 + 0.1217457928249455E-09 + 0.9576094849258155E-10 + 0.7376354214115687E-10 + 0.5542188313021286E-10 + 0.4040402149759292E-10 + 0.2837794809470561E-10 + 0.1901156053272153E-10 + 0.1197258820481473E-10 + 0.6928737487361236E-11 + 0.3547601037696740E-11 + 0.1496663006411428E-11 + 0.4434065953337260E-12 + 0.5534356026380010E-13 + 0.0000000000000000E+00 + 0.1939304866001054E+00 + 0.3874703898474606E+00 + 0.5806201046391736E+00 + 0.7733800256954890E+00 + 0.9657505475597874E+00 + 0.1157732064598588E+01 + 0.1349324971001545E+01 + 0.1540529660781451E+01 + 0.1731346527774235E+01 + 0.1921775965638961E+01 + 0.2111818367857834E+01 + 0.2301474127736192E+01 + 0.2490743638402511E+01 + 0.2679627292808404E+01 + 0.2868125483728622E+01 + 0.3056238603761051E+01 + 0.3243967045326716E+01 + 0.3431311200669775E+01 + 0.3618271461857528E+01 + 0.3804848220780407E+01 + 0.3991041869151986E+01 + 0.4176852798508969E+01 + 0.4362281400211204E+01 + 0.4547328065441673E+01 + 0.4731993185206492E+01 + 0.4916277150334918E+01 + 0.5100180351479344E+01 + 0.5283703179115298E+01 + 0.5466846023541446E+01 + 0.5649609274879590E+01 + 0.5831993323074672E+01 + 0.6013998557894766E+01 + 0.6195625368931088E+01 + 0.6376874145597987E+01 + 0.6557745277132948E+01 + 0.6738239152596601E+01 + 0.6918356160872703E+01 + 0.7098096690668148E+01 + 0.7277461130512979E+01 + 0.7456449868760361E+01 + 0.7635063293586603E+01 + 0.7813301792991152E+01 + 0.7991165754796590E+01 + 0.8168655566648635E+01 + 0.8345771616016142E+01 + 0.8522514290191106E+01 + 0.8698883976288657E+01 + 0.8874881061247056E+01 + 0.9050505931827713E+01 + 0.9225758974615163E+01 + 0.9400640576017086E+01 + 0.9575151122264291E+01 + 0.9749290999410738E+01 + 0.9923060593333503E+01 + 0.1009646028973282E+02 + 0.1026949047413204E+02 + 0.1044215153187767E+02 + 0.1061444384813935E+02 + 0.1078636780790984E+02 + 0.1095792379600505E+02 + 0.1112911219706403E+02 + 0.1129993339554896E+02 + 0.1147038777574515E+02 + 0.1164047572176108E+02 + 0.1181019761752832E+02 + 0.1197955384680162E+02 + 0.1214854479315882E+02 + 0.1231717084000094E+02 + 0.1248543237055213E+02 + 0.1265332976785965E+02 + 0.1282086341479392E+02 + 0.1298803369404850E+02 + 0.1315484098814006E+02 + 0.1332128567940844E+02 + 0.1348736815001659E+02 + 0.1365308878195062E+02 + 0.1381844795701975E+02 + 0.1398344605685637E+02 + 0.1414808346291598E+02 + 0.1431236055647723E+02 + 0.1447627771864188E+02 + 0.1463983533033488E+02 + 0.1480303377230428E+02 + 0.1496587342512126E+02 + 0.1512835466918017E+02 + 0.1529047788469846E+02 + 0.1545224345171673E+02 + 0.1561365175009874E+02 + 0.1577470315953135E+02 + 0.1593539805952459E+02 + 0.1609573682941160E+02 + 0.1625571984834868E+02 + 0.1641534749531523E+02 + 0.1657462014911383E+02 + 0.1673353818837019E+02 + 0.1689210199153312E+02 + 0.1705031193687462E+02 + 0.1720816840248977E+02 + 0.1736567176629684E+02 + 0.1752282240603720E+02 + 0.1767962069927537E+02 + 0.1783606702339902E+02 + 0.1799216175561892E+02 + 0.1814790527296902E+02 + 0.1830329795230638E+02 + 0.1845834017031122E+02 + 0.1861303230348686E+02 + 0.1876737472815978E+02 + 0.1892136782047961E+02 + 0.1907501195641908E+02 + 0.1922830751177409E+02 + 0.1938125486216367E+02 + 0.1953385438302998E+02 + 0.1968610644963831E+02 + 0.1983801143707710E+02 + 0.1998956972025794E+02 + 0.2014078167391551E+02 + 0.2029164767260767E+02 + 0.2044216809071542E+02 + 0.2059234330244286E+02 + 0.2074217368181725E+02 + 0.2089165960268898E+02 + 0.2104080143873160E+02 + 0.2118959956344175E+02 + 0.2133805435013926E+02 + 0.2148616617196706E+02 + 0.2163393540189123E+02 + 0.2178136241270097E+02 + 0.2192844757700866E+02 + 0.2207519126724977E+02 + 0.2222159385568293E+02 + 0.2236765571438991E+02 + 0.2251337721527559E+02 + 0.2265875873006802E+02 + 0.2280380063031839E+02 + 0.2294850328740097E+02 + 0.2309286707251323E+02 + 0.2323689235667577E+02 + 0.2338057951073228E+02 + 0.2352392890534964E+02 + 0.2366694091101782E+02 + 0.2380961589804998E+02 + 0.2395195423658237E+02 + 0.2409395629657440E+02 + 0.2423562244780860E+02 + 0.2437695305989067E+02 + 0.2451794850224941E+02 + 0.2465860914413678E+02 + 0.2479893535462786E+02 + 0.2493892750262089E+02 + 0.2507858595683722E+02 + 0.2521791108582135E+02 + 0.2535690325794094E+02 + 0.2549556284138672E+02 + 0.2563389020417264E+02 + 0.2577188571413573E+02 + 0.2590954973893618E+02 + 0.2604688264605730E+02 + 0.2618388480280556E+02 + 0.2632055657631055E+02 + 0.2645689833352499E+02 + 0.2659291044122477E+02 + 0.2672859326600888E+02 + 0.2686394717429947E+02 + 0.2699897253234182E+02 + 0.2713366970620434E+02 + 0.2726803906177858E+02 + 0.2740208096477923E+02 + 0.2753579578074413E+02 + 0.2766918387503422E+02 + 0.2780224561283362E+02 + 0.2793498135914957E+02 + 0.2806739147881243E+02 + 0.2819947633647570E+02 + 0.2833123629661605E+02 + 0.2846267172353326E+02 + 0.2859378298135025E+02 + 0.2872457043401307E+02 + 0.2885503444529093E+02 + 0.2898517537877614E+02 + 0.2911499359788419E+02 + 0.2924448946585368E+02 + 0.2937366334574634E+02 + 0.2950251560044707E+02 + 0.2963104659266386E+02 + 0.2975925668492789E+02 + 0.2988714623959343E+02 + 0.3001471561883792E+02 + 0.3014196518466192E+02 + 0.3026889529888912E+02 + 0.3039550632316636E+02 + 0.3052179861896364E+02 + 0.3064777254757403E+02 + 0.3077342847011382E+02 + 0.3089876674752236E+02 + 0.3102378774056218E+02 + 0.3114849180981895E+02 + 0.3127287931570146E+02 + 0.3139695061844164E+02 + 0.3152070607809456E+02 + 0.3164414605453843E+02 + 0.3176727090747458E+02 + 0.3189008099642750E+02 + 0.3201257668074481E+02 + 0.3213475831959725E+02 + 0.3225662627197873E+02 + 0.3237818089670625E+02 + 0.3249942255241999E+02 + 0.3262035159758326E+02 + 0.3274096839048248E+02 + 0.3286127328922724E+02 + 0.3298126665175023E+02 + 0.3310094883580732E+02 + 0.3322032019897749E+02 + 0.3333938109866286E+02 + 0.3345813189208867E+02 + 0.3357657293630334E+02 + 0.3369470458817841E+02 + 0.3381252720440852E+02 + 0.3393004114151149E+02 + 0.3404724675582828E+02 + 0.3416414440352293E+02 + 0.3428073444058268E+02 + 0.3439701722281791E+02 + 0.3451299310586207E+02 + 0.3462866244517180E+02 + 0.3474402559602687E+02 + 0.3485908291353018E+02 + 0.3497383475260776E+02 + 0.3508828146800879E+02 + 0.3520242341430559E+02 + 0.3531626094589360E+02 + 0.3542979441699139E+02 + 0.3554302418164070E+02 + 0.3565595059370640E+02 + 0.3576857400687646E+02 + 0.3588089477466205E+02 + 0.3599291325039740E+02 + 0.3610462978723993E+02 + 0.3621604473817019E+02 + 0.3632715845599185E+02 + 0.3643797129333174E+02 + 0.3654848360263980E+02 + 0.3665869573618913E+02 + 0.3676860804607598E+02 + 0.3687822088421964E+02 + 0.3698753460236269E+02 + 0.3709654955207075E+02 + 0.3720526608473256E+02 + 0.3731368455156007E+02 + 0.3742180530358833E+02 + 0.3752962869167549E+02 + 0.3763715506650291E+02 + 0.3774438477857502E+02 + 0.3785131817821944E+02 + 0.3795795561558688E+02 + 0.3806429744065123E+02 + 0.3817034400320949E+02 + 0.3827609565288181E+02 + 0.3838155273911146E+02 + 0.3848671561116486E+02 + 0.3859158461813156E+02 + 0.3869616010892427E+02 + 0.3880044243227881E+02 + 0.3890443193675413E+02 + 0.3900812897073234E+02 + 0.3911153388241869E+02 + 0.3921464701984154E+02 + 0.3931746873085240E+02 + 0.3941999936312594E+02 + 0.3952223926415994E+02 + 0.3962418878127530E+02 + 0.3972584826161609E+02 + 0.3982721805214953E+02 + 0.3992829849966594E+02 + 0.4002908995077877E+02 + 0.4012959275192467E+02 + 0.4022980724936333E+02 + 0.4032973378917767E+02 + 0.4042937271727370E+02 + 0.4052872437938056E+02 + 0.4062778912105056E+02 + 0.4072656728765914E+02 + 0.4082505922440483E+02 + 0.4092326527630935E+02 + 0.4102118578821754E+02 + 0.4111882110479737E+02 + 0.4121617157053995E+02 + 0.4131323752975955E+02 + 0.4141001932659354E+02 + 0.4150651730500244E+02 + 0.4160273180876991E+02 + 0.4169866318150277E+02 + 0.4179431176663093E+02 + 0.4188967790740745E+02 + 0.4198476194690858E+02 + 0.4207956422803362E+02 + 0.4217408509350508E+02 + 0.4226832488586857E+02 + 0.4236228394749284E+02 + 0.4245596262056979E+02 + 0.4254936124711444E+02 + 0.4264248016896495E+02 + 0.4273531972778265E+02 + 0.4282788026505195E+02 + 0.4292016212208044E+02 + 0.4301216563999884E+02 + 0.4310389115976098E+02 + 0.4319533902214386E+02 + 0.4328650956774759E+02 + 0.4337740313699546E+02 + 0.4346802007013384E+02 + 0.4355836070723228E+02 + 0.4364842538818343E+02 + 0.4373821445270312E+02 + 0.4382772824033028E+02 + 0.4391696709042701E+02 + 0.4400593134217851E+02 + 0.4409462133459313E+02 + 0.4418303740650239E+02 + 0.4427117989656090E+02 + 0.4435904914324642E+02 + 0.4444664548485988E+02 + 0.4453396925952529E+02 + 0.4462102080518983E+02 + 0.4470780045962383E+02 + 0.4479430856042073E+02 + 0.4488054544499713E+02 + 0.4496651145059273E+02 + 0.4505220691427041E+02 + 0.4513763217291616E+02 + 0.4522278756323910E+02 + 0.4530767342177153E+02 + 0.4539229008486884E+02 + 0.4547663788870958E+02 + 0.4556071716929544E+02 + 0.4564452826245124E+02 + 0.4572807150382491E+02 + 0.4581134722888756E+02 + 0.4589435577293342E+02 + 0.4597709747107984E+02 + 0.4605957265826736E+02 + 0.4614178166925959E+02 + 0.4622372483864332E+02 + 0.4630540250082845E+02 + 0.4638681499004804E+02 + 0.4646796264035829E+02 + 0.4654884578563848E+02 + 0.4662946475959113E+02 + 0.4670981989574182E+02 + 0.4678991152743924E+02 + 0.4686973998785532E+02 + 0.4694930560998503E+02 + 0.4702860872664653E+02 + 0.4710764967048111E+02 + 0.4718642877395317E+02 + 0.4726494636935030E+02 + 0.4734320278878316E+02 + 0.4742119836418557E+02 + 0.4749893342731455E+02 + 0.4757640830975015E+02 + 0.4765362334289564E+02 + 0.4773057885797738E+02 + 0.4780727518604490E+02 + 0.4788371265797083E+02 + 0.4795989160445098E+02 + 0.4803581235600425E+02 + 0.4811147524297274E+02 + 0.4818688059552161E+02 + 0.4826202874363921E+02 + 0.4833692001713702E+02 + 0.4841155474564963E+02 + 0.4848593325863481E+02 + 0.4856005588537342E+02 + 0.4863392295496948E+02 + 0.4870753479635017E+02 + 0.4878089173826577E+02 + 0.4885399410928969E+02 + 0.4892684223781853E+02 + 0.4899943645207196E+02 + 0.4907177708009286E+02 + 0.4914386444974718E+02 + 0.4921569888872405E+02 + 0.4928728072453571E+02 + 0.4935861028451754E+02 + 0.4942968789582810E+02 + 0.4950051388544900E+02 + 0.4957108858018506E+02 + 0.4964141230666424E+02 + 0.4971148539133760E+02 + 0.4978130816047933E+02 + 0.4985088094018680E+02 + 0.4992020405638046E+02 + 0.4998927783480397E+02 + 0.5005810260102408E+02 + 0.5012667868043065E+02 + 0.5019500639823675E+02 + 0.5026308607947851E+02 + 0.5033091804901527E+02 + 0.5039850263152945E+02 + 0.5046584015152664E+02 + 0.5053293093333554E+02 + 0.5059977530110802E+02 + 0.5066637357881903E+02 + 0.5073272609026675E+02 + 0.5079883315907240E+02 + 0.5086469510868039E+02 + 0.5093031226235828E+02 + 0.5099568494319671E+02 + 0.5106081347410950E+02 + 0.5112569817783361E+02 + 0.5119033937692910E+02 + 0.5125473739377920E+02 + 0.5131889255059027E+02 + 0.5138280516939182E+02 + 0.5144647557203644E+02 + 0.5150990408019994E+02 + 0.5157309101538120E+02 + 0.5163603669890225E+02 + 0.5169874145190831E+02 + 0.5176120559536765E+02 + 0.5182342945007175E+02 + 0.5188541333663520E+02 + 0.5194715757549570E+02 + 0.5200866248691414E+02 + 0.5206992839097451E+02 + 0.5213095560758394E+02 + 0.5219174445647270E+02 + 0.5225229525719421E+02 + 0.5231260832912502E+02 + 0.5237268399146482E+02 + 0.5243252256323639E+02 + 0.5249212436328572E+02 + 0.5255148971028191E+02 + 0.5261061892271719E+02 + 0.5266951231890691E+02 + 0.5272817021698958E+02 + 0.5278659293492684E+02 + 0.5284478079050348E+02 + 0.5290273410132740E+02 + 0.5296045318482969E+02 + 0.5301793835826449E+02 + 0.5307518993870914E+02 + 0.5313220824306411E+02 + 0.5318899358805300E+02 + 0.5324554629022255E+02 + 0.5330186666594261E+02 + 0.5335795503140624E+02 + 0.5341381170262955E+02 + 0.5346943699545182E+02 + 0.5352483122553549E+02 + 0.5357999470836609E+02 + 0.5363492775925234E+02 + 0.5368963069332607E+02 + 0.5374410382554224E+02 + 0.5379834747067896E+02 + 0.5385236194333748E+02 + 0.5390614755794215E+02 + 0.5395970462874051E+02 + 0.5401303346980320E+02 + 0.5406613439502403E+02 + 0.5411900771811990E+02 + 0.5417165375263090E+02 + 0.5422407281192020E+02 + 0.5427626520917416E+02 + 0.5432823125740224E+02 + 0.5437997126943708E+02 + 0.5443148555793438E+02 + 0.5448277443537305E+02 + 0.5453383821405512E+02 + 0.5458467720610573E+02 + 0.5463529172347318E+02 + 0.5468568207792890E+02 + 0.5473584858106749E+02 + 0.5478579154430660E+02 + 0.5483551127888712E+02 + 0.5488500809587300E+02 + 0.5493428230615136E+02 + 0.5498333422043246E+02 + 0.5503216414924970E+02 + 0.5508077240295959E+02 + 0.5512915929174179E+02 + 0.5517732512559913E+02 + 0.5522527021435751E+02 + 0.5527299486766602E+02 + 0.5532049939499687E+02 + 0.5536778410564541E+02 + 0.5541484930873013E+02 + 0.5546169531319264E+02 + 0.5550832242779771E+02 + 0.5555473096113321E+02 + 0.5560092122161019E+02 + 0.5564689351746285E+02 + 0.5569264815674845E+02 + 0.5573818544734745E+02 + 0.5578350569696343E+02 + 0.5582860921312309E+02 + 0.5587349630317630E+02 + 0.5591816727429605E+02 + 0.5596262243347845E+02 + 0.5600686208754281E+02 + 0.5605088654313148E+02 + 0.5609469610671003E+02 + 0.5613829108456709E+02 + 0.5618167178281452E+02 + 0.5622483850738725E+02 + 0.5626779156404336E+02 + 0.5631053125836409E+02 + 0.5635305789575379E+02 + 0.5639537178143993E+02 + 0.5643747322047317E+02 + 0.5647936251772727E+02 + 0.5652103997789914E+02 + 0.5656250590550883E+02 + 0.5660376060489951E+02 + 0.5664480438023750E+02 + 0.5668563753551224E+02 + 0.5672626037453633E+02 + 0.5676667320094551E+02 + 0.5680687631819862E+02 + 0.5684687002957769E+02 + 0.5688665463818785E+02 + 0.5692623044695735E+02 + 0.5696559775863761E+02 + 0.5700475687580321E+02 + 0.5704370810085180E+02 + 0.5708245173600422E+02 + 0.5712098808330443E+02 + 0.5715931744461952E+02 + 0.5719744012163971E+02 + 0.5723535641587838E+02 + 0.5727306662867203E+02 + 0.5731057106118033E+02 + 0.5734787001438605E+02 + 0.5738496378909509E+02 + 0.5742185268593651E+02 + 0.5745853700536250E+02 + 0.5749501704764840E+02 + 0.5753129311289266E+02 + 0.5756736550101689E+02 + 0.5760323451176583E+02 + 0.5763890044470734E+02 + 0.5767436359923244E+02 + 0.5770962427455529E+02 + 0.5774468276971315E+02 + 0.5777953938356647E+02 + 0.5781419441479881E+02 + 0.5784864816191685E+02 + 0.5788290092325043E+02 + 0.5791695299695250E+02 + 0.5795080468099920E+02 + 0.5798445627318975E+02 + 0.5801790807114655E+02 + 0.5805116037231510E+02 + 0.5808421347396407E+02 + 0.5811706767318523E+02 + 0.5814972326689350E+02 + 0.5818218055182699E+02 + 0.5821443982454687E+02 + 0.5824650138143750E+02 + 0.5827836551870632E+02 + 0.5831003253238396E+02 + 0.5834150271832418E+02 + 0.5837277637220386E+02 + 0.5840385378952301E+02 + 0.5843473526560481E+02 + 0.5846542109559554E+02 + 0.5849591157446464E+02 + 0.5852620699700469E+02 + 0.5855630765783136E+02 + 0.5858621385138355E+02 + 0.5861592587192320E+02 + 0.5864544401353544E+02 + 0.5867476857012853E+02 + 0.5870389983543385E+02 + 0.5873283810300593E+02 + 0.5876158366622245E+02 + 0.5879013681828418E+02 + 0.5881849785221510E+02 + 0.5884666706086227E+02 + 0.5887464473689588E+02 + 0.5890243117280932E+02 + 0.5893002666091904E+02 + 0.5895743149336467E+02 + 0.5898464596210899E+02 + 0.5901167035893788E+02 + 0.5903850497546038E+02 + 0.5906515010310865E+02 + 0.5909160603313801E+02 + 0.5911787305662691E+02 + 0.5914395146447690E+02 + 0.5916984154741274E+02 + 0.5919554359598225E+02 + 0.5922105790055645E+02 + 0.5924638475132945E+02 + 0.5927152443831852E+02 + 0.5929647725136406E+02 + 0.5932124348012960E+02 + 0.5934582341410185E+02 + 0.5937021734259059E+02 + 0.5939442555472878E+02 + 0.5941844833947252E+02 + 0.5944228598560100E+02 + 0.5946593878171661E+02 + 0.5948940701624485E+02 + 0.5951269097743432E+02 + 0.5953579095335683E+02 + 0.5955870723190729E+02 + 0.5958144010080369E+02 + 0.5960398984758726E+02 + 0.5962635675962230E+02 + 0.5964854112409628E+02 + 0.5967054322801978E+02 + 0.5969236335822654E+02 + 0.5971400180137341E+02 + 0.5973545884394040E+02 + 0.5975673477223064E+02 + 0.5977782987237043E+02 + 0.5979874443030916E+02 + 0.5981947873181941E+02 + 0.5984003306249684E+02 + 0.5986040770776028E+02 + 0.5988060295285168E+02 + 0.5990061908283614E+02 + 0.5992045638260193E+02 + 0.5994011513686039E+02 + 0.5995959563014603E+02 + 0.5997889814681649E+02 + 0.5999802297105256E+02 + 0.6001697038685816E+02 + 0.6003574067806035E+02 + 0.6005433412830931E+02 + 0.6007275102107838E+02 + 0.6009099163966403E+02 + 0.6010905626718584E+02 + 0.6012694518658657E+02 + 0.6014465868063209E+02 + 0.6016219703191142E+02 + 0.6017956052283670E+02 + 0.6019674943564324E+02 + 0.6021376405238943E+02 + 0.6023060465495684E+02 + 0.6024727152505019E+02 + 0.6026376494419729E+02 + 0.6028008519374914E+02 + 0.6029623255487982E+02 + 0.6031220730858660E+02 + 0.6032800973568983E+02 + 0.6034364011683305E+02 + 0.6035909873248291E+02 + 0.6037438586292921E+02 + 0.6038950178828489E+02 + 0.6040444678848600E+02 + 0.6041922114329174E+02 + 0.6043382513228444E+02 + 0.6044825903486959E+02 + 0.6046252313027583E+02 + 0.6047661769755487E+02 + 0.6049054301558164E+02 + 0.6050429936305412E+02 + 0.6051788701849350E+02 + 0.6053130626024407E+02 + 0.6054455736647325E+02 + 0.6055764061517164E+02 + 0.6057055628415294E+02 + 0.6058330465105397E+02 + 0.6059588599333475E+02 + 0.6060830058827838E+02 + 0.6062054871299112E+02 + 0.6063263064440235E+02 + 0.6064454665926463E+02 + 0.6065629703415360E+02 + 0.6066788204546808E+02 + 0.6067930196943000E+02 + 0.6069055708208443E+02 + 0.6070164765929960E+02 + 0.6071257397676685E+02 + 0.6072333631000070E+02 + 0.6073393493433872E+02 + 0.6074437012494172E+02 + 0.6075464215679358E+02 + 0.6076475130470132E+02 + 0.6077469784329513E+02 + 0.6078448204702831E+02 + 0.6079410419017733E+02 + 0.6080356454684174E+02 + 0.6081286339094429E+02 + 0.6082200099623081E+02 + 0.6083097763627031E+02 + 0.6083979358445491E+02 + 0.6084844911399987E+02 + 0.6085694449794362E+02 + 0.6086528000914770E+02 + 0.6087345592029677E+02 + 0.6088147250389863E+02 + 0.6088933003228426E+02 + 0.6089702877760773E+02 + 0.6090456901184629E+02 + 0.6091195100680028E+02 + 0.6091917503409322E+02 + 0.6092624136517171E+02 + 0.6093315027130555E+02 + 0.6093990202358764E+02 + 0.6094649689293404E+02 + 0.6095293515008392E+02 + 0.6095921706559961E+02 + 0.6096534290986653E+02 + 0.6097131295309332E+02 + 0.6097712746531170E+02 + 0.6098278671637654E+02 + 0.6098829097596582E+02 + 0.6099364051358069E+02 + 0.6099883559854546E+02 + 0.6100387650000751E+02 + 0.6100876348693740E+02 + 0.6101349682812882E+02 + 0.6101807679219859E+02 + 0.6102250364758667E+02 + 0.6102677766255620E+02 + 0.6103089910519336E+02 + 0.6103486824340756E+02 + 0.6103868534493127E+02 + 0.6104235067732019E+02 + 0.6104586450795306E+02 + 0.6104922710403184E+02 + 0.6105243873258156E+02 + 0.6105549966045042E+02 + 0.6105841015430973E+02 + 0.6106117048065397E+02 + 0.6106378090580077E+02 + 0.6106624169589087E+02 + 0.6106855311688811E+02 + 0.6107071543457954E+02 + 0.6107272891457529E+02 + 0.6107459382230865E+02 + 0.6107631042303607E+02 + 0.6107787898183709E+02 + 0.6107929976361442E+02 + 0.6108057303309388E+02 + 0.6108169905482448E+02 + 0.6108267809317831E+02 + 0.6108351041235058E+02 + 0.6108419627635973E+02 + 0.6108473594904725E+02 + 0.6108512969407782E+02 + 0.6108537777493921E+02 + 0.6108548045494237E+02 + 0.6108543799722134E+02 + 0.6108525066473335E+02 + 0.6108491872025875E+02 + 0.6108444242640100E+02 + 0.6108382204558673E+02 + 0.6108305784006568E+02 + 0.6108215007191072E+02 + 0.6108109900301790E+02 + 0.6107990489510640E+02 + 0.6107856800971851E+02 + 0.6107708860821965E+02 + 0.6107546695179840E+02 + 0.6107370330146647E+02 + 0.6107179791805869E+02 + 0.6106975106223310E+02 + 0.6106756299447077E+02 + 0.6106523397507597E+02 + 0.6106276426417611E+02 + 0.6106015412172170E+02 + 0.6105740380748645E+02 + 0.6105451358106709E+02 + 0.6105148370188363E+02 + 0.6104831442917910E+02 + 0.6104500602201976E+02 + 0.6104155873929495E+02 + 0.6103797283971714E+02 + 0.6103424858182198E+02 + 0.6103038622396822E+02 + 0.6102638602433775E+02 + 0.6102224824093563E+02 + 0.6101797313159003E+02 + 0.6101356095395226E+02 + 0.6100901196549675E+02 + 0.6100432642352111E+02 + 0.6099950458514603E+02 + 0.6099454670731540E+02 + 0.6098945304679621E+02 + 0.6098422386017859E+02 + 0.6097885940387577E+02 + 0.6097335993412423E+02 + 0.6096772570698343E+02 + 0.6096195697833611E+02 + 0.6095605400388806E+02 + 0.6095001703916827E+02 + 0.6094384633952878E+02 + 0.6093754216014484E+02 + 0.6093110475601480E+02 + 0.6092453438196017E+02 + 0.6091783129262560E+02 + 0.6091099574247887E+02 + 0.6090402798581085E+02 + 0.6089692827673563E+02 + 0.6088969686919035E+02 + 0.6088233401693537E+02 + 0.6087483997355415E+02 + 0.6086721499245327E+02 + 0.6085945932686246E+02 + 0.6085157322983460E+02 + 0.6084355695424569E+02 + 0.6083541075279485E+02 + 0.6082713487800442E+02 + 0.6081872958221975E+02 + 0.6081019511760945E+02 + 0.6080153173616517E+02 + 0.6079273968970175E+02 + 0.6078381922985717E+02 + 0.6077477060809249E+02 + 0.6076559407569200E+02 + 0.6075628988376301E+02 + 0.6074685828323609E+02 + 0.6073729952486490E+02 + 0.6072761385922617E+02 + 0.6071780153671984E+02 + 0.6070786280756898E+02 + 0.6069779792181976E+02 + 0.6068760712934155E+02 + 0.6067729067982681E+02 + 0.6066684882279114E+02 + 0.6065628180757328E+02 + 0.6064558988333508E+02 + 0.6063477329906161E+02 + 0.6062383230356102E+02 + 0.6061276714546457E+02 + 0.6060157807322671E+02 + 0.6059026533512500E+02 + 0.6057882917926010E+02 + 0.6056726985355591E+02 + 0.6055558760575939E+02 + 0.6054378268344063E+02 + 0.6053185533399288E+02 + 0.6051980580463256E+02 + 0.6050763434239915E+02 + 0.6049534119415534E+02 + 0.6048292660658690E+02 + 0.6047039082620277E+02 + 0.6045773409933505E+02 + 0.6044495667213892E+02 + 0.6043205879059273E+02 + 0.6041904070049795E+02 + 0.6040590264747918E+02 + 0.6039264487698421E+02 + 0.6037926763428393E+02 + 0.6036577116447237E+02 + 0.6035215571246668E+02 + 0.6033842152300715E+02 + 0.6032456884065723E+02 + 0.6031059790980349E+02 + 0.6029650897465567E+02 + 0.6028230227924659E+02 + 0.6026797806743225E+02 + 0.6025353658289178E+02 + 0.6023897806912740E+02 + 0.6022430276946453E+02 + 0.6020951092705172E+02 + 0.6019460278486064E+02 + 0.6017957858568607E+02 + 0.6016443857214598E+02 + 0.6014918298668142E+02 + 0.6013381207155663E+02 + 0.6011832606885898E+02 + 0.6010272522049892E+02 + 0.6008700976821011E+02 + 0.6007117995354930E+02 + 0.6005523601789641E+02 + 0.6003917820245445E+02 + 0.6002300674824963E+02 + 0.6000672189613123E+02 + 0.5999032388677171E+02 + 0.5997381296066668E+02 + 0.5995718935813483E+02 + 0.5994045331931803E+02 + 0.5992360508418128E+02 + 0.5990664489251272E+02 + 0.5988957298392361E+02 + 0.5987238959784837E+02 + 0.5985509497354452E+02 + 0.5983768935009277E+02 + 0.5982017296639691E+02 + 0.5980254606118393E+02 + 0.5978480887300388E+02 + 0.5976696164023003E+02 + 0.5974900460105870E+02 + 0.5973093799350944E+02 + 0.5971276205542485E+02 + 0.5969447702447074E+02 + 0.5967608313813599E+02 + 0.5965758063373266E+02 + 0.5963896974839596E+02 + 0.5962025071908418E+02 + 0.5960142378257881E+02 + 0.5958248917548443E+02 + 0.5956344713422876E+02 + 0.5954429789506270E+02 + 0.5952504169406024E+02 + 0.5950567876711853E+02 + 0.5948620934995784E+02 + 0.5946663367812162E+02 + 0.5944695198697639E+02 + 0.5942716451171187E+02 + 0.5940727148734086E+02 + 0.5938727314869935E+02 + 0.5936716973044644E+02 + 0.5934696146706435E+02 + 0.5932664859285848E+02 + 0.5930623134195732E+02 + 0.5928570994831254E+02 + 0.5926508464569892E+02 + 0.5924435566771437E+02 + 0.5922352324777998E+02 + 0.5920258761913993E+02 + 0.5918154901486155E+02 + 0.5916040766783532E+02 + 0.5913916381077484E+02 + 0.5911781767621687E+02 + 0.5909636949652128E+02 + 0.5907481950387108E+02 + 0.5905316793027244E+02 + 0.5903141500755464E+02 + 0.5900956096737013E+02 + 0.5898760604119447E+02 + 0.5896555046032633E+02 + 0.5894339445588760E+02 + 0.5892113825882322E+02 + 0.5889878209990131E+02 + 0.5887632620971315E+02 + 0.5885377081867309E+02 + 0.5883111615701866E+02 + 0.5880836245481054E+02 + 0.5878550994193251E+02 + 0.5876255884809152E+02 + 0.5873950940281763E+02 + 0.5871636183546404E+02 + 0.5869311637520712E+02 + 0.5866977325104632E+02 + 0.5864633269180429E+02 + 0.5862279492612678E+02 + 0.5859916018248268E+02 + 0.5857542868916400E+02 + 0.5855160067428593E+02 + 0.5852767636578676E+02 + 0.5850365599142793E+02 + 0.5847953977879404E+02 + 0.5845532795529277E+02 + 0.5843102074815499E+02 + 0.5840661838443469E+02 + 0.5838212109100899E+02 + 0.5835752909457814E+02 + 0.5833284262166556E+02 + 0.5830806189861777E+02 + 0.5828318715160444E+02 + 0.5825821860661839E+02 + 0.5823315648947555E+02 + 0.5820800102581502E+02 + 0.5818275244109901E+02 + 0.5815741096061288E+02 + 0.5813197680946511E+02 + 0.5810645021258736E+02 + 0.5808083139473435E+02 + 0.5805512058048403E+02 + 0.5802931799423742E+02 + 0.5800342386021869E+02 + 0.5797743840247517E+02 + 0.5795136184487730E+02 + 0.5792519441111866E+02 + 0.5789893632471600E+02 + 0.5787258780900918E+02 + 0.5784614908716116E+02 + 0.5781962038215811E+02 + 0.5779300191680930E+02 + 0.5776629391374713E+02 + 0.5773949659542715E+02 + 0.5771261018412805E+02 + 0.5768563490195162E+02 + 0.5765857097082285E+02 + 0.5763141861248982E+02 + 0.5760417804852377E+02 + 0.5757684950031906E+02 + 0.5754943318909317E+02 + 0.5752192933588678E+02 + 0.5749433816156365E+02 + 0.5746665988681070E+02 + 0.5743889473213796E+02 + 0.5741104291787865E+02 + 0.5738310466418908E+02 + 0.5735508019104869E+02 + 0.5732696971826012E+02 + 0.5729877346544909E+02 + 0.5727049165206446E+02 + 0.5724212449737825E+02 + 0.5721367222048561E+02 + 0.5718513504030481E+02 + 0.5715651317557728E+02 + 0.5712780684486759E+02 + 0.5709901626656340E+02 + 0.5707014165887555E+02 + 0.5704118323983803E+02 + 0.5701214122730793E+02 + 0.5698301583896549E+02 + 0.5695380729231409E+02 + 0.5692451580468024E+02 + 0.5689514159321361E+02 + 0.5686568487488696E+02 + 0.5683614586649623E+02 + 0.5680652478466050E+02 + 0.5677682184582194E+02 + 0.5674703726624590E+02 + 0.5671717126202085E+02 + 0.5668722404905839E+02 + 0.5665719584309329E+02 + 0.5662708685968342E+02 + 0.5659689731420980E+02 + 0.5656662742187657E+02 + 0.5653627739771105E+02 + 0.5650584745656368E+02 + 0.5647533781310799E+02 + 0.5644474868184073E+02 + 0.5641408027708169E+02 + 0.5638333281297388E+02 + 0.5635250650348342E+02 + 0.5632160156239954E+02 + 0.5629061820333465E+02 + 0.5625955663972427E+02 + 0.5622841708482705E+02 + 0.5619719975172480E+02 + 0.5616590485332247E+02 + 0.5613453260234810E+02 + 0.5610308321135292E+02 + 0.5607155689271129E+02 + 0.5603995385862066E+02 + 0.5600827432110169E+02 + 0.5597651849199811E+02 + 0.5594468658297681E+02 + 0.5591277880552784E+02 + 0.5588079537096436E+02 + 0.5584873649042267E+02 + 0.5581660237486224E+02 + 0.5578439323506560E+02 + 0.5575210928163851E+02 + 0.5571975072500981E+02 + 0.5568731777543145E+02 + 0.5565481064297862E+02 + 0.5562222953754954E+02 + 0.5558957466886562E+02 + 0.5555684624647141E+02 + 0.5552404447973458E+02 + 0.5549116957784591E+02 + 0.5545822174981939E+02 + 0.5542520120449206E+02 + 0.5539210815052419E+02 + 0.5535894279639911E+02 + 0.5532570535042331E+02 + 0.5529239602072641E+02 + 0.5525901501526123E+02 + 0.5522556254180363E+02 + 0.5519203880795268E+02 + 0.5515844402113053E+02 + 0.5512477838858251E+02 + 0.5509104211737707E+02 + 0.5505723541440582E+02 + 0.5502335848638344E+02 + 0.5498941153984784E+02 + 0.5495539478116000E+02 + 0.5492130841650406E+02 + 0.5488715265188730E+02 + 0.5485292769314012E+02 + 0.5481863374591607E+02 + 0.5478427101569184E+02 + 0.5474983970776724E+02 + 0.5471534002726524E+02 + 0.5468077217913192E+02 + 0.5464613636813654E+02 + 0.5461143279887143E+02 + 0.5457666167575214E+02 + 0.5454182320301727E+02 + 0.5450691758472863E+02 + 0.5447194502477112E+02 + 0.5443690572685279E+02 + 0.5440179989450486E+02 + 0.5436662773108161E+02 + 0.5433138943976056E+02 + 0.5429608522354226E+02 + 0.5426071528525046E+02 + 0.5422527982753205E+02 + 0.5418977905285702E+02 + 0.5415421316351853E+02 + 0.5411858236163288E+02 + 0.5408288684913946E+02 + 0.5404712682780085E+02 + 0.5401130249920274E+02 + 0.5397541406475396E+02 + 0.5393946172568649E+02 + 0.5390344568305541E+02 + 0.5386736613773898E+02 + 0.5383122329043859E+02 + 0.5379501734167874E+02 + 0.5375874849180710E+02 + 0.5372241694099444E+02 + 0.5368602288923471E+02 + 0.5364956653634494E+02 + 0.5361304808196537E+02 + 0.5357646772555930E+02 + 0.5353982566641324E+02 + 0.5350312210363678E+02 + 0.5346635723616267E+02 + 0.5342953126274681E+02 + 0.5339264438196819E+02 + 0.5335569679222900E+02 + 0.5331868869175452E+02 + 0.5328162027859320E+02 + 0.5324449175061658E+02 + 0.5320730330551940E+02 + 0.5317005514081949E+02 + 0.5313274745385780E+02 + 0.5309538044179849E+02 + 0.5305795430162880E+02 + 0.5302046923015911E+02 + 0.5298292542402297E+02 + 0.5294532307967701E+02 + 0.5290766239340105E+02 + 0.5286994356129804E+02 + 0.5283216677929404E+02 + 0.5279433224313826E+02 + 0.5275644014840306E+02 + 0.5271849069048393E+02 + 0.5268048406459946E+02 + 0.5264242046579144E+02 + 0.5260430008892476E+02 + 0.5256612312868744E+02 + 0.5252788977959067E+02 + 0.5248960023596874E+02 + 0.5245125469197911E+02 + 0.5241285334160234E+02 + 0.5237439637864215E+02 + 0.5233588399672541E+02 + 0.5229731638930211E+02 + 0.5225869374964535E+02 + 0.5222001627085142E+02 + 0.5218128414583973E+02 + 0.5214249756735279E+02 + 0.5210365672795631E+02 + 0.5206476182003907E+02 + 0.5202581303581301E+02 + 0.5198681056731326E+02 + 0.5194775460639801E+02 + 0.5190864534474863E+02 + 0.5186948297386962E+02 + 0.5183026768508860E+02 + 0.5179099966955635E+02 + 0.5175167911824678E+02 + 0.5171230622195692E+02 + 0.5167288117130698E+02 + 0.5163340415674023E+02 + 0.5159387536852318E+02 + 0.5155429499674536E+02 + 0.5151466323131956E+02 + 0.5147498026198160E+02 + 0.5143524627829051E+02 + 0.5139546146962841E+02 + 0.5135562602520057E+02 + 0.5131574013403543E+02 + 0.5127580398498452E+02 + 0.5123581776672253E+02 + 0.5119578166774728E+02 + 0.5115569587637974E+02 + 0.5111556058076398E+02 + 0.5107537596886727E+02 + 0.5103514222847996E+02 + 0.5099485954721556E+02 + 0.5095452811251072E+02 + 0.5091414811162522E+02 + 0.5087371973164195E+02 + 0.5083324315946700E+02 + 0.5079271858182956E+02 + 0.5075214618528194E+02 + 0.5071152615619962E+02 + 0.5067085868078119E+02 + 0.5063014394504840E+02 + 0.5058938213484611E+02 + 0.5054857343584236E+02 + 0.5050771803352827E+02 + 0.5046681611321815E+02 + 0.5042586786004941E+02 + 0.5038487345898260E+02 + 0.5034383309480145E+02 + 0.5030274695211276E+02 + 0.5026161521534652E+02 + 0.5022043806875583E+02 + 0.5017921569641695E+02 + 0.5013794828222923E+02 + 0.5009663600991522E+02 + 0.5005527906302055E+02 + 0.5001387762491403E+02 + 0.4997243187878758E+02 + 0.4993094200765626E+02 + 0.4988940819435830E+02 + 0.4984783062155501E+02 + 0.4980620947173088E+02 + 0.4976454492719351E+02 + 0.4972283717007367E+02 + 0.4968108638232523E+02 + 0.4963929274572522E+02 + 0.4959745644187381E+02 + 0.4955557765219427E+02 + 0.4951365655793306E+02 + 0.4947169334015976E+02 + 0.4942968817976703E+02 + 0.4938764125747076E+02 + 0.4934555275380993E+02 + 0.4930342284914663E+02 + 0.4926125172366613E+02 + 0.4921903955737683E+02 + 0.4917678653011024E+02 + 0.4913449282152106E+02 + 0.4909215861108706E+02 + 0.4904978407810918E+02 + 0.4900736940171153E+02 + 0.4896491476084129E+02 + 0.4892242033426881E+02 + 0.4887988630058761E+02 + 0.4883731283821429E+02 + 0.4879470012538861E+02 + 0.4875204834017346E+02 + 0.4870935766045491E+02 + 0.4866662826394207E+02 + 0.4862386032816731E+02 + 0.4858105403048606E+02 + 0.4853820954807686E+02 + 0.4849532705794149E+02 + 0.4845240673690478E+02 + 0.4840944876161471E+02 + 0.4836645330854241E+02 + 0.4832342055398216E+02 + 0.4828035067405137E+02 + 0.4823724384469056E+02 + 0.4819410024166341E+02 + 0.4815092004055676E+02 + 0.4810770341678052E+02 + 0.4806445054556781E+02 + 0.4802116160197483E+02 + 0.4797783676088096E+02 + 0.4793447619698870E+02 + 0.4789108008482366E+02 + 0.4784764859873464E+02 + 0.4780418191289353E+02 + 0.4776068020129538E+02 + 0.4771714363775838E+02 + 0.4767357239592384E+02 + 0.4762996664925622E+02 + 0.4758632657104312E+02 + 0.4754265233439525E+02 + 0.4749894411224651E+02 + 0.4745520207735386E+02 + 0.4741142640229746E+02 + 0.4736761725948060E+02 + 0.4732377482112970E+02 + 0.4727989925929428E+02 + 0.4723599074584704E+02 + 0.4719204945248382E+02 + 0.4714807555072355E+02 + 0.4710406921190837E+02 + 0.4706003060720347E+02 + 0.4701595990759726E+02 + 0.4697185728390123E+02 + 0.4692772290675003E+02 + 0.4688355694660145E+02 + 0.4683935957373640E+02 + 0.4679513095825892E+02 + 0.4675087127009623E+02 + 0.4670658067899866E+02 + 0.4666225935453965E+02 + 0.4661790746611585E+02 + 0.4657352518294696E+02 + 0.4652911267407587E+02 + 0.4648467010836860E+02 + 0.4644019765451429E+02 + 0.4639569548102524E+02 + 0.4635116375623687E+02 + 0.4630660264830774E+02 + 0.4626201232521954E+02 + 0.4621739295477715E+02 + 0.4617274470460848E+02 + 0.4612806774216467E+02 + 0.4608336223471997E+02 + 0.4603862834937174E+02 + 0.4599386625304054E+02 + 0.4594907611247000E+02 + 0.4590425809422690E+02 + 0.4585941236470120E+02 + 0.4581453909010595E+02 + 0.4576963843647737E+02 + 0.4572471056967478E+02 + 0.4567975565538067E+02 + 0.4563477385910064E+02 + 0.4558976534616349E+02 + 0.4554473028172104E+02 + 0.4549966883074836E+02 + 0.4545458115804360E+02 + 0.4540946742822806E+02 + 0.4536432780574616E+02 + 0.4531916245486551E+02 + 0.4527397153967679E+02 + 0.4522875522409386E+02 + 0.4518351367185369E+02 + 0.4513824704651642E+02 + 0.4509295551146528E+02 + 0.4504763922990669E+02 + 0.4500229836487016E+02 + 0.4495693307920838E+02 + 0.4491154353559713E+02 + 0.4486612989653536E+02 + 0.4482069232434516E+02 + 0.4477523098117174E+02 + 0.4472974602898346E+02 + 0.4468423762957176E+02 + 0.4463870594455133E+02 + 0.4459315113535990E+02 + 0.4454757336325837E+02 + 0.4450197278933079E+02 + 0.4445634957448433E+02 + 0.4441070387944927E+02 + 0.4436503586477910E+02 + 0.4431934569085039E+02 + 0.4427363351786284E+02 + 0.4422789950583934E+02 + 0.4418214381462585E+02 + 0.4413636660389152E+02 + 0.4409056803312863E+02 + 0.4404474826165257E+02 + 0.4399890744860186E+02 + 0.4395304575293823E+02 + 0.4390716333344645E+02 + 0.4386126034873450E+02 + 0.4381533695723345E+02 + 0.4376939331719753E+02 + 0.4372342958670412E+02 + 0.4367744592365370E+02 + 0.4363144248576991E+02 + 0.4358541943059953E+02 + 0.4353937691551247E+02 + 0.4349331509770177E+02 + 0.4344723413418362E+02 + 0.4340113418179735E+02 + 0.4335501539720539E+02 + 0.4330887793689336E+02 + 0.4326272195716999E+02 + 0.4321654761416713E+02 + 0.4317035506383979E+02 + 0.4312414446196615E+02 + 0.4307791596414742E+02 + 0.4303166972580807E+02 + 0.4298540590219565E+02 + 0.4293912464838082E+02 + 0.4289282611925742E+02 + 0.4284651046954242E+02 + 0.4280017785377592E+02 + 0.4275382842632115E+02 + 0.4270746234136448E+02 + 0.4266107975291543E+02 + 0.4261468081480665E+02 + 0.4256826568069391E+02 + 0.4252183450405614E+02 + 0.4247538743819541E+02 + 0.4242892463623688E+02 + 0.4238244625112892E+02 + 0.4233595243564298E+02 + 0.4228944334237367E+02 + 0.4224291912373872E+02 + 0.4219637993197903E+02 + 0.4214982591915861E+02 + 0.4210325723716461E+02 + 0.4205667403770732E+02 + 0.4201007647232015E+02 + 0.4196346469235969E+02 + 0.4191683884900564E+02 + 0.4187019909326081E+02 + 0.4182354557595120E+02 + 0.4177687844772592E+02 + 0.4173019785905719E+02 + 0.4168350396024044E+02 + 0.4163679690139415E+02 + 0.4159007683245999E+02 + 0.4154334390320278E+02 + 0.4149659826321042E+02 + 0.4144984006189398E+02 + 0.4140306944848770E+02 + 0.4135628657204888E+02 + 0.4130949158145803E+02 + 0.4126268462541876E+02 + 0.4121586585245780E+02 + 0.4116903541092507E+02 + 0.4112219344899359E+02 + 0.4107534011465952E+02 + 0.4102847555574216E+02 + 0.4098159991988395E+02 + 0.4093471335455045E+02 + 0.4088781600703040E+02 + 0.4084090802443563E+02 + 0.4079398955370112E+02 + 0.4074706074158500E+02 + 0.4070012173466854E+02 + 0.4065317267935611E+02 + 0.4060621372187526E+02 + 0.4055924500827666E+02 + 0.4051226668443411E+02 + 0.4046527889604456E+02 + 0.4041828178862809E+02 + 0.4037127550752788E+02 + 0.4032426019791034E+02 + 0.4027723600476493E+02 + 0.4023020307290429E+02 + 0.4018316154696417E+02 + 0.4013611157140348E+02 + 0.4008905329050425E+02 + 0.4004198684837168E+02 + 0.3999491238893404E+02 + 0.3994783005594282E+02 + 0.3990073999297258E+02 + 0.3985364234342104E+02 + 0.3980653725050908E+02 + 0.3975942485728067E+02 + 0.3971230530660297E+02 + 0.3966517874116623E+02 + 0.3961804530348387E+02 + 0.3957090513589242E+02 + 0.3952375838055157E+02 + 0.3947660517944412E+02 + 0.3942944567437606E+02 + 0.3938228000697643E+02 + 0.3933510831869752E+02 + 0.3928793075081463E+02 + 0.3924074744442632E+02 + 0.3919355854045417E+02 + 0.3914636417964301E+02 + 0.3909916450256071E+02 + 0.3905195964959835E+02 + 0.3900474976097009E+02 + 0.3895753497671328E+02 + 0.3891031543668835E+02 + 0.3886309128057892E+02 + 0.3881586264789170E+02 + 0.3876862967795660E+02 + 0.3872139250992658E+02 + 0.3867415128277781E+02 + 0.3862690613530956E+02 + 0.3857965720614425E+02 + 0.3853240463372745E+02 + 0.3848514855632782E+02 + 0.3843788911203722E+02 + 0.3839062643877059E+02 + 0.3834336067426604E+02 + 0.3829609195608482E+02 + 0.3824882042161130E+02 + 0.3820154620805297E+02 + 0.3815426945244052E+02 + 0.3810699029162770E+02 + 0.3805970886229145E+02 + 0.3801242530093182E+02 + 0.3796513974387204E+02 + 0.3791785232725838E+02 + 0.3787056318706037E+02 + 0.3782327245907059E+02 + 0.3777598027890478E+02 + 0.3772868678200184E+02 + 0.3768139210362378E+02 + 0.3763409637885574E+02 + 0.3758679974260603E+02 + 0.3753950232960608E+02 + 0.3749220427441042E+02 + 0.3744490571139680E+02 + 0.3739760677476603E+02 + 0.3735030759854210E+02 + 0.3730300831657210E+02 + 0.3725570906252632E+02 + 0.3720840996989809E+02 + 0.3716111117200400E+02 + 0.3711381280198365E+02 + 0.3706651499279989E+02 + 0.3701921787723859E+02 + 0.3697192158790888E+02 + 0.3692462625724293E+02 + 0.3687733201749613E+02 + 0.3683003900074690E+02 + 0.3678274733889690E+02 + 0.3673545716367086E+02 + 0.3668816860661671E+02 + 0.3664088179910542E+02 + 0.3659359687233123E+02 + 0.3654631395731137E+02 + 0.3649903318488632E+02 + 0.3645175468571964E+02 + 0.3640447859029807E+02 + 0.3635720502893143E+02 + 0.3630993413175271E+02 + 0.3626266602871804E+02 + 0.3621540084960669E+02 + 0.3616813872402106E+02 + 0.3612087978138663E+02 + 0.3607362415095216E+02 + 0.3602637196178938E+02 + 0.3597912334279327E+02 + 0.3593187842268191E+02 + 0.3588463732999653E+02 + 0.3583740019310145E+02 + 0.3579016714018420E+02 + 0.3574293829925539E+02 + 0.3569571379814878E+02 + 0.3564849376452128E+02 + 0.3560127832585295E+02 + 0.3555406760944691E+02 + 0.3550686174242954E+02 + 0.3545966085175025E+02 + 0.3541246506418165E+02 + 0.3536527450631943E+02 + 0.3531808930458250E+02 + 0.3527090958521279E+02 + 0.3522373547427551E+02 + 0.3517656709765889E+02 + 0.3512940458107433E+02 + 0.3508224805005641E+02 + 0.3503509762996278E+02 + 0.3498795344597426E+02 + 0.3494081562309483E+02 + 0.3489368428615156E+02 + 0.3484655955979468E+02 + 0.3479944156849759E+02 + 0.3475233043655673E+02 + 0.3470522628809181E+02 + 0.3465812924704555E+02 + 0.3461103943718390E+02 + 0.3456395698209589E+02 + 0.3451688200519372E+02 + 0.3446981462971270E+02 + 0.3442275497871132E+02 + 0.3437570317507114E+02 + 0.3432865934149692E+02 + 0.3428162360051652E+02 + 0.3423459607448097E+02 + 0.3418757688556437E+02 + 0.3414056615576406E+02 + 0.3409356400690041E+02 + 0.3404657056061701E+02 + 0.3399958593838053E+02 + 0.3395261026148081E+02 + 0.3390564365103082E+02 + 0.3385868622796665E+02 + 0.3381173811304755E+02 + 0.3376479942685590E+02 + 0.3371787028979722E+02 + 0.3367095082210013E+02 + 0.3362404114381646E+02 + 0.3357714137482110E+02 + 0.3353025163481212E+02 + 0.3348337204331073E+02 + 0.3343650271966127E+02 + 0.3338964378303118E+02 + 0.3334279535241110E+02 + 0.3329595754661476E+02 + 0.3324913048427905E+02 + 0.3320231428386398E+02 + 0.3315550906365273E+02 + 0.3310871494175157E+02 + 0.3306193203608993E+02 + 0.3301516046442038E+02 + 0.3296840034431864E+02 + 0.3292165179318352E+02 + 0.3287491492823704E+02 + 0.3282818986652428E+02 + 0.3278147672491349E+02 + 0.3273477562009607E+02 + 0.3268808666858654E+02 + 0.3264140998672259E+02 + 0.3259474569066497E+02 + 0.3254809389639765E+02 + 0.3250145471972768E+02 + 0.3245482827628530E+02 + 0.3240821468152382E+02 + 0.3236161405071977E+02 + 0.3231502649897270E+02 + 0.3226845214120543E+02 + 0.3222189109216382E+02 + 0.3217534346641692E+02 + 0.3212880937835687E+02 + 0.3208228894219902E+02 + 0.3203578227198176E+02 + 0.3198928948156670E+02 + 0.3194281068463854E+02 + 0.3189634599470514E+02 + 0.3184989552509748E+02 + 0.3180345938896971E+02 + 0.3175703769929906E+02 + 0.3171063056888593E+02 + 0.3166423811035390E+02 + 0.3161786043614956E+02 + 0.3157149765854281E+02 + 0.3152514988962654E+02 + 0.3147881724131685E+02 + 0.3143249982535296E+02 + 0.3138619775329724E+02 + 0.3133991113653514E+02 + 0.3129364008627536E+02 + 0.3124738471354960E+02 + 0.3120114512921280E+02 + 0.3115492144394299E+02 + 0.3110871376824137E+02 + 0.3106252221243221E+02 + 0.3101634688666302E+02 + 0.3097018790090434E+02 + 0.3092404536494992E+02 + 0.3087791938841660E+02 + 0.3083181008074442E+02 + 0.3078571755119646E+02 + 0.3073964190885906E+02 + 0.3069358326264157E+02 + 0.3064754172127658E+02 + 0.3060151739331973E+02 + 0.3055551038714989E+02 + 0.3050952081096899E+02 + 0.3046354877280211E+02 + 0.3041759438049751E+02 + 0.3037165774172654E+02 + 0.3032573896398372E+02 + 0.3027983815458666E+02 + 0.3023395542067619E+02 + 0.3018809086921618E+02 + 0.3014224460699370E+02 + 0.3009641674061893E+02 + 0.3005060737652522E+02 + 0.3000481662096900E+02 + 0.2995904458002990E+02 + 0.2991329135961063E+02 + 0.2986755706543708E+02 + 0.2982184180305825E+02 + 0.2977614567784631E+02 + 0.2973046879499650E+02 + 0.2968481125952729E+02 + 0.2963917317628020E+02 + 0.2959355464991996E+02 + 0.2954795578493436E+02 + 0.2950237668563440E+02 + 0.2945681745615416E+02 + 0.2941127820045092E+02 + 0.2936575902230503E+02 + 0.2932026002532000E+02 + 0.2927478131292251E+02 + 0.2922932298836231E+02 + 0.2918388515471236E+02 + 0.2913846791486871E+02 + 0.2909307137155057E+02 + 0.2904769562730026E+02 + 0.2900234078448327E+02 + 0.2895700694528820E+02 + 0.2891169421172680E+02 + 0.2886640268563395E+02 + 0.2882113246866769E+02 + 0.2877588366230915E+02 + 0.2873065636786265E+02 + 0.2868545068645560E+02 + 0.2864026671903859E+02 + 0.2859510456638530E+02 + 0.2854996432909260E+02 + 0.2850484610758045E+02 + 0.2845975000209198E+02 + 0.2841467611269343E+02 + 0.2836962453927420E+02 + 0.2832459538154680E+02 + 0.2827958873904691E+02 + 0.2823460471113334E+02 + 0.2818964339698799E+02 + 0.2814470489561597E+02 + 0.2809978930584546E+02 + 0.2805489672632784E+02 + 0.2801002725553757E+02 + 0.2796518099177230E+02 + 0.2792035803315275E+02 + 0.2787555847762285E+02 + 0.2783078242294960E+02 + 0.2778602996672320E+02 + 0.2774130120635693E+02 + 0.2769659623908726E+02 + 0.2765191516197374E+02 + 0.2760725807189910E+02 + 0.2756262506556919E+02 + 0.2751801623951301E+02 + 0.2747343169008268E+02 + 0.2742887151345347E+02 + 0.2738433580562377E+02 + 0.2733982466241512E+02 + 0.2729533817947219E+02 + 0.2725087645226281E+02 + 0.2720643957607790E+02 + 0.2716202764603158E+02 + 0.2711764075706105E+02 + 0.2707327900392665E+02 + 0.2702894248121192E+02 + 0.2698463128332345E+02 + 0.2694034550449105E+02 + 0.2689608523876759E+02 + 0.2685185058002913E+02 + 0.2680764162197484E+02 + 0.2676345845812706E+02 + 0.2671930118183121E+02 + 0.2667516988625592E+02 + 0.2663106466439287E+02 + 0.2658698560905696E+02 + 0.2654293281288618E+02 + 0.2649890636834168E+02 + 0.2645490636770769E+02 + 0.2641093290309169E+02 + 0.2636698606642418E+02 + 0.2632306594945885E+02 + 0.2627917264377253E+02 + 0.2623530624076521E+02 + 0.2619146683165991E+02 + 0.2614765450750294E+02 + 0.2610386935916362E+02 + 0.2606011147733449E+02 + 0.2601638095253117E+02 + 0.2597267787509244E+02 + 0.2592900233518023E+02 + 0.2588535442277959E+02 + 0.2584173422769871E+02 + 0.2579814183959639E+02 + 0.2575457734873136E+02 + 0.2571104084605421E+02 + 0.2566753242189894E+02 + 0.2562405216135619E+02 + 0.2558060014633142E+02 + 0.2553717645904302E+02 + 0.2549378118412771E+02 + 0.2545041440681042E+02 + 0.2540707621020039E+02 + 0.2536376667266999E+02 + 0.2532048587204795E+02 + 0.2527723389654711E+02 + 0.2523401084718430E+02 + 0.2519081682398296E+02 + 0.2514765190747457E+02 + 0.2510451616539342E+02 + 0.2506140966796749E+02 + 0.2501833250086585E+02 + 0.2497528475478540E+02 + 0.2493226651941805E+02 + 0.2488927788209136E+02 + 0.2484631892950741E+02 + 0.2480338974402735E+02 + 0.2476049040221218E+02 + 0.2471762098066529E+02 + 0.2467478156435795E+02 + 0.2463197224422467E+02 + 0.2458919310871536E+02 + 0.2454644423145830E+02 + 0.2450372568047153E+02 + 0.2446103752725250E+02 + 0.2441837985380711E+02 + 0.2437575274399885E+02 + 0.2433315628746615E+02 + 0.2429059058250826E+02 + 0.2424805572628846E+02 + 0.2420555178935458E+02 + 0.2416307882118439E+02 + 0.2412063687675065E+02 + 0.2407822605292353E+02 + 0.2403584646367830E+02 + 0.2399349820920654E+02 + 0.2395118134539735E+02 + 0.2390889591932241E+02 + 0.2386664199724102E+02 + 0.2382441967693676E+02 + 0.2378222905803769E+02 + 0.2374007022310883E+02 + 0.2369794323987966E+02 + 0.2365584817695954E+02 + 0.2361378511451031E+02 + 0.2357175413784401E+02 + 0.2352975532987395E+02 + 0.2348778876525418E+02 + 0.2344585451664240E+02 + 0.2340395265662331E+02 + 0.2336208325780481E+02 + 0.2332024639287624E+02 + 0.2327844213961753E+02 + 0.2323667058065470E+02 + 0.2319493179763818E+02 + 0.2315322586357434E+02 + 0.2311155284703697E+02 + 0.2306991281880666E+02 + 0.2302830585918611E+02 + 0.2298673205069234E+02 + 0.2294519147109259E+02 + 0.2290368418887968E+02 + 0.2286221027155519E+02 + 0.2282076979335444E+02 + 0.2277936283557459E+02 + 0.2273798947876540E+02 + 0.2269664979456133E+02 + 0.2265534384957525E+02 + 0.2261407171219866E+02 + 0.2257283345963480E+02 + 0.2253162917139814E+02 + 0.2249045892407209E+02 + 0.2244932278800626E+02 + 0.2240822083248444E+02 + 0.2236715312438407E+02 + 0.2232611972784334E+02 + 0.2228512070826791E+02 + 0.2224415614817061E+02 + 0.2220322614044513E+02 + 0.2216233077086315E+02 + 0.2212147008972289E+02 + 0.2208064413623633E+02 + 0.2203985296610495E+02 + 0.2199909667545614E+02 + 0.2195837536575968E+02 + 0.2191768911736426E+02 + 0.2187703798395878E+02 + 0.2183642201800119E+02 + 0.2179584128007600E+02 + 0.2175529583616271E+02 + 0.2171478575467311E+02 + 0.2167431111774748E+02 + 0.2163387201213243E+02 + 0.2159346851499576E+02 + 0.2155310067794742E+02 + 0.2151276854853931E+02 + 0.2147247219165665E+02 + 0.2143221169634985E+02 + 0.2139198715152386E+02 + 0.2135179862066448E+02 + 0.2131164614841687E+02 + 0.2127152978393257E+02 + 0.2123144960806021E+02 + 0.2119140571364724E+02 + 0.2115139818033312E+02 + 0.2111142704846067E+02 + 0.2107149235129230E+02 + 0.2103159414683172E+02 + 0.2099173253102116E+02 + 0.2095190760111278E+02 + 0.2091211942537460E+02 + 0.2087236804848928E+02 + 0.2083265351697382E+02 + 0.2079297589601936E+02 + 0.2075333525861215E+02 + 0.2071373167711701E+02 + 0.2067416522212404E+02 + 0.2063463596362714E+02 + 0.2059514396443899E+02 + 0.2055568927540757E+02 + 0.2051627194660616E+02 + 0.2047689203852612E+02 + 0.2043754962093948E+02 + 0.2039824476359040E+02 + 0.2035897753458275E+02 + 0.2031974800116116E+02 + 0.2028055622829655E+02 + 0.2024140227303250E+02 + 0.2020228619048505E+02 + 0.2016320804146072E+02 + 0.2012416789748793E+02 + 0.2008516583046685E+02 + 0.2004620189779994E+02 + 0.2000727614266853E+02 + 0.1996838861014090E+02 + 0.1992953936857627E+02 + 0.1989072849829358E+02 + 0.1985195607454541E+02 + 0.1981322215173817E+02 + 0.1977452677880547E+02 + 0.1973587001161754E+02 + 0.1969725192045920E+02 + 0.1965867257667414E+02 + 0.1962013203659303E+02 + 0.1958163034039005E+02 + 0.1954316752981847E+02 + 0.1950474367193918E+02 + 0.1946635884817317E+02 + 0.1942801313338775E+02 + 0.1938970657208562E+02 + 0.1935143919995382E+02 + 0.1931321106511181E+02 + 0.1927502224409924E+02 + 0.1923687281666467E+02 + 0.1919876284412204E+02 + 0.1916069236600362E+02 + 0.1912266142180444E+02 + 0.1908467006677181E+02 + 0.1904671836598025E+02 + 0.1900880638375573E+02 + 0.1897093418048789E+02 + 0.1893310181518655E+02 + 0.1889530934545532E+02 + 0.1885755682564375E+02 + 0.1881984430937071E+02 + 0.1878217184730412E+02 + 0.1874453948633245E+02 + 0.1870694727428874E+02 + 0.1866939527646804E+02 + 0.1863188357019044E+02 + 0.1859441222645112E+02 + 0.1855698127939342E+02 + 0.1851959074995463E+02 + 0.1848224067448159E+02 + 0.1844493113260962E+02 + 0.1840766221090919E+02 + 0.1837043397539079E+02 + 0.1833324646273361E+02 + 0.1829609970773576E+02 + 0.1825899375336745E+02 + 0.1822192864876424E+02 + 0.1818490444527056E+02 + 0.1814792120834074E+02 + 0.1811097900888609E+02 + 0.1807407790899573E+02 + 0.1803721794380510E+02 + 0.1800039914335100E+02 + 0.1796362155390727E+02 + 0.1792688524740838E+02 + 0.1789019029658566E+02 + 0.1785353675158251E+02 + 0.1781692464363396E+02 + 0.1778035400598283E+02 + 0.1774382489168955E+02 + 0.1770733736235618E+02 + 0.1767089147572284E+02 + 0.1763448727654494E+02 + 0.1759812480669606E+02 + 0.1756180411250089E+02 + 0.1752552524813827E+02 + 0.1748928826834300E+02 + 0.1745309322628082E+02 + 0.1741694017366260E+02 + 0.1738082916179010E+02 + 0.1734476024030386E+02 + 0.1730873345794993E+02 + 0.1727274885982304E+02 + 0.1723680647760061E+02 + 0.1720090633972738E+02 + 0.1716504849028154E+02 + 0.1712923300339817E+02 + 0.1709345995546327E+02 + 0.1705772939899588E+02 + 0.1702204136244651E+02 + 0.1698639587433296E+02 + 0.1695079297505806E+02 + 0.1691523271126062E+02 + 0.1687971512983326E+02 + 0.1684424027908884E+02 + 0.1680880820759307E+02 + 0.1677341896457110E+02 + 0.1673807260083503E+02 + 0.1670276916702311E+02 + 0.1666750870735575E+02 + 0.1663229125896391E+02 + 0.1659711685955833E+02 + 0.1656198555826707E+02 + 0.1652689741084915E+02 + 0.1649185246846486E+02 + 0.1645685076066216E+02 + 0.1642189231047824E+02 + 0.1638697715286505E+02 + 0.1635210535085948E+02 + 0.1631727697076104E+02 + 0.1628249205811198E+02 + 0.1624775063323103E+02 + 0.1621305271710201E+02 + 0.1617839835841201E+02 + 0.1614378762369947E+02 + 0.1610922057360422E+02 + 0.1607469723657138E+02 + 0.1604021763031496E+02 + 0.1600578178426057E+02 + 0.1597138975846454E+02 + 0.1593704161731395E+02 + 0.1590273740720747E+02 + 0.1586847715053947E+02 + 0.1583426086902920E+02 + 0.1580008860016235E+02 + 0.1576596039258667E+02 + 0.1573187629441860E+02 + 0.1569783635002706E+02 + 0.1566384060229691E+02 + 0.1562988909237101E+02 + 0.1559598185673580E+02 + 0.1556211893089185E+02 + 0.1552830035009795E+02 + 0.1549452614934664E+02 + 0.1546079636369340E+02 + 0.1542711103196594E+02 + 0.1539347019590318E+02 + 0.1535987389750422E+02 + 0.1532632218092896E+02 + 0.1529281509111184E+02 + 0.1525935266825286E+02 + 0.1522593493783754E+02 + 0.1519256192235635E+02 + 0.1515923365056544E+02 + 0.1512595016149098E+02 + 0.1509271149541336E+02 + 0.1505951770093772E+02 + 0.1502636883380258E+02 + 0.1499326494550323E+02 + 0.1496020605531510E+02 + 0.1492719216791477E+02 + 0.1489422329775423E+02 + 0.1486129949477656E+02 + 0.1482842081655782E+02 + 0.1479558731028801E+02 + 0.1476279900474839E+02 + 0.1473005592667558E+02 + 0.1469735810329427E+02 + 0.1466470556227900E+02 + 0.1463209833299067E+02 + 0.1459953646003675E+02 + 0.1456701999551689E+02 + 0.1453454898561270E+02 + 0.1450212345337440E+02 + 0.1446974341601779E+02 + 0.1443740889435366E+02 + 0.1440511991647057E+02 + 0.1437287651150900E+02 + 0.1434067871752638E+02 + 0.1430852658183441E+02 + 0.1427642015059239E+02 + 0.1424435945634543E+02 + 0.1421234452409329E+02 + 0.1418037537896027E+02 + 0.1414845204761234E+02 + 0.1411657455701871E+02 + 0.1408474293740880E+02 + 0.1405295722631908E+02 + 0.1402121746184441E+02 + 0.1398952367446149E+02 + 0.1395787588599359E+02 + 0.1392627411875299E+02 + 0.1389471840704302E+02 + 0.1386320879234377E+02 + 0.1383174531165583E+02 + 0.1380032798016893E+02 + 0.1376895680628734E+02 + 0.1373763180940102E+02 + 0.1370635303562459E+02 + 0.1367512053447851E+02 + 0.1364393434091402E+02 + 0.1361279447168811E+02 + 0.1358170094343153E+02 + 0.1355065378724497E+02 + 0.1351965304379730E+02 + 0.1348869874954289E+02 + 0.1345779091766070E+02 + 0.1342692955329116E+02 + 0.1339611467275926E+02 + 0.1336534632257505E+02 + 0.1333462455365382E+02 + 0.1330394939685652E+02 + 0.1327332085551318E+02 + 0.1324273893270630E+02 + 0.1321220365848349E+02 + 0.1318171508258133E+02 + 0.1315127325021541E+02 + 0.1312087817695147E+02 + 0.1309052986703575E+02 + 0.1306022833105547E+02 + 0.1302997359884228E+02 + 0.1299976570360187E+02 + 0.1296960467675442E+02 + 0.1293949054710423E+02 + 0.1290942334266421E+02 + 0.1287940308466177E+02 + 0.1284942978882831E+02 + 0.1281950347240475E+02 + 0.1278962416511517E+02 + 0.1275979190180831E+02 + 0.1273000671063934E+02 + 0.1270026859807160E+02 + 0.1267057756614114E+02 + 0.1264093363116327E+02 + 0.1261133683338395E+02 + 0.1258178721440557E+02 + 0.1255228480130389E+02 + 0.1252282960829248E+02 + 0.1249342164918047E+02 + 0.1246406093932310E+02 + 0.1243474749468757E+02 + 0.1240548133418790E+02 + 0.1237626248801363E+02 + 0.1234709098868553E+02 + 0.1231796685639078E+02 + 0.1228889008880913E+02 + 0.1225986068237930E+02 + 0.1223087866320054E+02 + 0.1220194408616956E+02 + 0.1217305700255156E+02 + 0.1214421742294802E+02 + 0.1211542533705808E+02 + 0.1208668074118714E+02 + 0.1205798365996562E+02 + 0.1202933412508033E+02 + 0.1200073216257721E+02 + 0.1197217778723632E+02 + 0.1194367101245289E+02 + 0.1191521185515023E+02 + 0.1188680033602710E+02 + 0.1185843647536139E+02 + 0.1183012028901064E+02 + 0.1180185179025658E+02 + 0.1177363099309712E+02 + 0.1174545791557398E+02 + 0.1171733257674269E+02 + 0.1168925499425748E+02 + 0.1166122518285557E+02 + 0.1163324315677365E+02 + 0.1160530893180925E+02 + 0.1157742252561990E+02 + 0.1154958395556427E+02 + 0.1152179323621767E+02 + 0.1149405038035479E+02 + 0.1146635540098397E+02 + 0.1143870831317736E+02 + 0.1141110913253324E+02 + 0.1138355787392793E+02 + 0.1135605455071508E+02 + 0.1132859917587569E+02 + 0.1130119176279746E+02 + 0.1127383232544450E+02 + 0.1124652087764691E+02 + 0.1121925743302852E+02 + 0.1119204200501463E+02 + 0.1116487460670349E+02 + 0.1113775525019472E+02 + 0.1111068394711856E+02 + 0.1108366070927483E+02 + 0.1105668554925238E+02 + 0.1102975847961388E+02 + 0.1100287951227688E+02 + 0.1097604865832146E+02 + 0.1094926592858193E+02 + 0.1092253133352671E+02 + 0.1089584488330327E+02 + 0.1086920658812971E+02 + 0.1084261645966913E+02 + 0.1081607451003687E+02 + 0.1078958075060052E+02 + 0.1076313519081053E+02 + 0.1073673783960903E+02 + 0.1071038870608258E+02 + 0.1068408779964537E+02 + 0.1065783512954373E+02 + 0.1063163070435819E+02 + 0.1060547453208647E+02 + 0.1057936662078185E+02 + 0.1055330698009432E+02 + 0.1052729562025992E+02 + 0.1050133255072457E+02 + 0.1047541777867287E+02 + 0.1044955131067538E+02 + 0.1042373315400618E+02 + 0.1039796331727777E+02 + 0.1037224180897926E+02 + 0.1034656863563022E+02 + 0.1032094380194300E+02 + 0.1029536731273748E+02 + 0.1026983917544960E+02 + 0.1024435939866882E+02 + 0.1021892799017130E+02 + 0.1019354495512649E+02 + 0.1016821029795525E+02 + 0.1014292402381480E+02 + 0.1011768613941954E+02 + 0.1009249665140821E+02 + 0.1006735556421815E+02 + 0.1004226288008806E+02 + 0.1001721860144277E+02 + 0.9992222734637442E+01 + 0.9967275288013241E+01 + 0.9942376268426239E+01 + 0.9917525676965367E+01 + 0.9892723513078479E+01 + 0.9867969778614690E+01 + 0.9843264480642114E+01 + 0.9818607626590035E+01 + 0.9793999219940810E+01 + 0.9769439259864909E+01 + 0.9744927745494875E+01 + 0.9720464679429268E+01 + 0.9696050066204220E+01 + 0.9671683909938940E+01 + 0.9647366213336239E+01 + 0.9623096978552589E+01 + 0.9598876206912873E+01 + 0.9574703898061404E+01 + 0.9550580051299164E+01 + 0.9526504667486236E+01 + 0.9502477749399242E+01 + 0.9478499299619800E+01 + 0.9454569318942118E+01 + 0.9430687806950676E+01 + 0.9406854763008424E+01 + 0.9383070186186394E+01 + 0.9359334075338031E+01 + 0.9335646430004703E+01 + 0.9312007251772741E+01 + 0.9288416542335757E+01 + 0.9264874300609973E+01 + 0.9241380521892527E+01 + 0.9217935201363034E+01 + 0.9194538338041742E+01 + 0.9171189933600273E+01 + 0.9147889989119269E+01 + 0.9124638502742569E+01 + 0.9101435471433447E+01 + 0.9078280891660349E+01 + 0.9055174758831395E+01 + 0.9032117068059282E+01 + 0.9009107816557389E+01 + 0.8986147004682254E+01 + 0.8963234632603735E+01 + 0.8940370696220501E+01 + 0.8917555188081694E+01 + 0.8894788101065517E+01 + 0.8872069431780579E+01 + 0.8849399178225168E+01 + 0.8826777337805186E+01 + 0.8804203906432290E+01 + 0.8781678879567968E+01 + 0.8759202251824069E+01 + 0.8736774016560954E+01 + 0.8714394166915604E+01 + 0.8692062696850543E+01 + 0.8669779601003654E+01 + 0.8647544873981904E+01 + 0.8625358511117298E+01 + 0.8603220507963973E+01 + 0.8581130859140083E+01 + 0.8559089556427713E+01 + 0.8537096590855528E+01 + 0.8515151954414959E+01 + 0.8493255640939621E+01 + 0.8471407644236226E+01 + 0.8449607956866663E+01 + 0.8427856570216909E+01 + 0.8406153475560931E+01 + 0.8384498664895800E+01 + 0.8362892130481150E+01 + 0.8341333864400140E+01 + 0.8319823858563387E+01 + 0.8298362104697944E+01 + 0.8276948593868399E+01 + 0.8255583316021980E+01 + 0.8234266260860261E+01 + 0.8212997419015290E+01 + 0.8191776782079662E+01 + 0.8170604341246030E+01 + 0.8149480085012829E+01 + 0.8128404000331775E+01 + 0.8107376074994333E+01 + 0.8086396301128120E+01 + 0.8065464671897439E+01 + 0.8044581177960257E+01 + 0.8023745804787339E+01 + 0.8002958537112583E+01 + 0.7982219362371501E+01 + 0.7961528271070983E+01 + 0.7940885253564911E+01 + 0.7920290298478816E+01 + 0.7899743393331350E+01 + 0.7879244525492695E+01 + 0.7858793682378155E+01 + 0.7838390851286897E+01 + 0.7818036018660848E+01 + 0.7797729169154648E+01 + 0.7777470287075874E+01 + 0.7757259359080991E+01 + 0.7737096374781712E+01 + 0.7716981323513935E+01 + 0.7696914190936385E+01 + 0.7676894960223033E+01 + 0.7656923614741366E+01 + 0.7637000139946053E+01 + 0.7617124521873092E+01 + 0.7597296746348585E+01 + 0.7577516798940641E+01 + 0.7557784664995406E+01 + 0.7538100328470249E+01 + 0.7518463771496818E+01 + 0.7498874976084905E+01 + 0.7479333926543476E+01 + 0.7459840608797538E+01 + 0.7440395008242942E+01 + 0.7420997107743071E+01 + 0.7401646889100358E+01 + 0.7382344334461621E+01 + 0.7363089427341671E+01 + 0.7343882151341743E+01 + 0.7324722489112938E+01 + 0.7305610421973272E+01 + 0.7286545931027259E+01 + 0.7267528998220456E+01 + 0.7248559606131348E+01 + 0.7229637737002538E+01 + 0.7210763371700606E+01 + 0.7191936490414682E+01 + 0.7173157073496803E+01 + 0.7154425102249004E+01 + 0.7135740558015512E+01 + 0.7117103421549062E+01 + 0.7098513672744995E+01 + 0.7079971291226003E+01 + 0.7061476255953393E+01 + 0.7043028545286496E+01 + 0.7024628137792484E+01 + 0.7006275014933865E+01 + 0.6987969159403082E+01 + 0.6969710552406519E+01 + 0.6951499170210664E+01 + 0.6933334987834449E+01 + 0.6915217981588244E+01 + 0.6897148130283654E+01 + 0.6879125412854034E+01 + 0.6861149808467364E+01 + 0.6843221296510275E+01 + 0.6825339855915045E+01 + 0.6807505462960592E+01 + 0.6789718092491063E+01 + 0.6771977719759888E+01 + 0.6754284322274376E+01 + 0.6736637877967826E+01 + 0.6719038363706878E+01 + 0.6701485754400720E+01 + 0.6683980024635103E+01 + 0.6666521150670825E+01 + 0.6649109110548137E+01 + 0.6631743881889667E+01 + 0.6614425438944807E+01 + 0.6597153753996721E+01 + 0.6579928799963830E+01 + 0.6562750553357610E+01 + 0.6545618991561268E+01 + 0.6528534090146542E+01 + 0.6511495820887682E+01 + 0.6494504154968799E+01 + 0.6477559065878815E+01 + 0.6460660529810181E+01 + 0.6443808522667053E+01 + 0.6427003017222726E+01 + 0.6410243984252089E+01 + 0.6393531394704953E+01 + 0.6376865221286046E+01 + 0.6360245437123679E+01 + 0.6343672015462154E+01 + 0.6327144930093910E+01 + 0.6310664154700357E+01 + 0.6294229661277659E+01 + 0.6277841419723495E+01 + 0.6261499399692475E+01 + 0.6245203571483021E+01 + 0.6228953905770522E+01 + 0.6212750373249262E+01 + 0.6196592945501164E+01 + 0.6180481594297929E+01 + 0.6164416291191388E+01 + 0.6148397007445273E+01 + 0.6132423714082210E+01 + 0.6116496379999806E+01 + 0.6100614971191131E+01 + 0.6084779453565022E+01 + 0.6068989797217320E+01 + 0.6053245975319191E+01 + 0.6037547960166482E+01 + 0.6021895719033953E+01 + 0.6006289217148281E+01 + 0.5990728420890814E+01 + 0.5975213300519982E+01 + 0.5959743826844129E+01 + 0.5944319968494545E+01 + 0.5928941690843341E+01 + 0.5913608958924603E+01 + 0.5898321739407487E+01 + 0.5883080000267769E+01 + 0.5867883709290553E+01 + 0.5852732833708574E+01 + 0.5837627340414432E+01 + 0.5822567195892289E+01 + 0.5807552365686886E+01 + 0.5792582815005862E+01 + 0.5777658509285643E+01 + 0.5762779414479295E+01 + 0.5747945496435098E+01 + 0.5733156721003428E+01 + 0.5718413054018449E+01 + 0.5703714460927333E+01 + 0.5689060905339685E+01 + 0.5674452349899871E+01 + 0.5659888757470624E+01 + 0.5645370092256475E+01 + 0.5630896318640060E+01 + 0.5616467401291801E+01 + 0.5602083305579260E+01 + 0.5587743996698245E+01 + 0.5573449437682183E+01 + 0.5559199589424050E+01 + 0.5544994412756600E+01 + 0.5530833870173381E+01 + 0.5516717924946454E+01 + 0.5502646540174618E+01 + 0.5488619678775101E+01 + 0.5474637303477586E+01 + 0.5460699375918112E+01 + 0.5446805855667111E+01 + 0.5432956701947149E+01 + 0.5419151875692190E+01 + 0.5405391339710926E+01 + 0.5391675056648162E+01 + 0.5378002988100918E+01 + 0.5364375094986478E+01 + 0.5350791337702458E+01 + 0.5337251674927107E+01 + 0.5323756064711705E+01 + 0.5310304465665721E+01 + 0.5296896837912234E+01 + 0.5283533141623177E+01 + 0.5270213336629207E+01 + 0.5256937382388877E+01 + 0.5243705238105157E+01 + 0.5230516862092983E+01 + 0.5217372212037399E+01 + 0.5204271245588392E+01 + 0.5191213921018955E+01 + 0.5178200196679597E+01 + 0.5165230030832405E+01 + 0.5152303381793930E+01 + 0.5139420207707795E+01 + 0.5126580465423436E+01 + 0.5113784110150139E+01 + 0.5101031096913693E+01 + 0.5088321381856606E+01 + 0.5075654921844591E+01 + 0.5063031673747766E+01 + 0.5050451595224216E+01 + 0.5037914644097487E+01 + 0.5025420777027619E+01 + 0.5012969947734822E+01 + 0.5000562109299187E+01 + 0.4988197215871830E+01 + 0.4975875223230100E+01 + 0.4963596087089143E+01 + 0.4951359762668048E+01 + 0.4939166204763059E+01 + 0.4927015367891404E+01 + 0.4914907205803636E+01 + 0.4902841671835123E+01 + 0.4890818719166555E+01 + 0.4878838300887341E+01 + 0.4866900369923249E+01 + 0.4855004879143551E+01 + 0.4843151781435511E+01 + 0.4831341029598380E+01 + 0.4819572577573283E+01 + 0.4807846380235390E+01 + 0.4796162391748306E+01 + 0.4784520561996847E+01 + 0.4772920838878581E+01 + 0.4761363171435000E+01 + 0.4749847513165106E+01 + 0.4738373818372603E+01 + 0.4726942039442838E+01 + 0.4715552125542187E+01 + 0.4704204025475397E+01 + 0.4692897690462207E+01 + 0.4681633073945053E+01 + 0.4670410128698458E+01 + 0.4659228802609126E+01 + 0.4648089041089911E+01 + 0.4636990790853516E+01 + 0.4625934004229913E+01 + 0.4614918634752037E+01 + 0.4603944633659394E+01 + 0.4593011947935142E+01 + 0.4582120523943317E+01 + 0.4571270308580443E+01 + 0.4560461249287768E+01 + 0.4549693293670053E+01 + 0.4538966392032361E+01 + 0.4528280496047242E+01 + 0.4517635555956312E+01 + 0.4507031516370629E+01 + 0.4496468320262381E+01 + 0.4485945912564016E+01 + 0.4475464242594031E+01 + 0.4465023260004259E+01 + 0.4454622912210499E+01 + 0.4444263144151860E+01 + 0.4433943900608599E+01 + 0.4423665127696006E+01 + 0.4413426772245441E+01 + 0.4403228780694976E+01 + 0.4393071098230126E+01 + 0.4382953669532648E+01 + 0.4372876439026840E+01 + 0.4362839350779950E+01 + 0.4352842348684088E+01 + 0.4342885377608994E+01 + 0.4332968383665840E+01 + 0.4323091312763836E+01 + 0.4313254109351169E+01 + 0.4303456716859786E+01 + 0.4293699078266604E+01 + 0.4283981134990868E+01 + 0.4274302827812382E+01 + 0.4264664098920513E+01 + 0.4255064894481626E+01 + 0.4245505161086913E+01 + 0.4235984842333295E+01 + 0.4226503877841254E+01 + 0.4217062206967477E+01 + 0.4207659771452821E+01 + 0.4198296514697185E+01 + 0.4188972379604042E+01 + 0.4179687306772759E+01 + 0.4170441235835762E+01 + 0.4161234107196158E+01 + 0.4152065863841793E+01 + 0.4142936449040856E+01 + 0.4133845803877732E+01 + 0.4124793866284246E+01 + 0.4115780573910143E+01 + 0.4106805866460220E+01 + 0.4097869685221813E+01 + 0.4088971971047344E+01 + 0.4080112662593102E+01 + 0.4071291697507015E+01 + 0.4062509014107751E+01 + 0.4053764553289539E+01 + 0.4045058256293680E+01 + 0.4036390062349186E+01 + 0.4027759907513015E+01 + 0.4019167727485501E+01 + 0.4010613459671258E+01 + 0.4002097042927858E+01 + 0.3993618415886353E+01 + 0.3985177516253584E+01 + 0.3976774281217564E+01 + 0.3968408647973538E+01 + 0.3960080554220316E+01 + 0.3951789937617896E+01 + 0.3943536734661051E+01 + 0.3935320879893214E+01 + 0.3927142307541112E+01 + 0.3919000952772581E+01 + 0.3910896751642844E+01 + 0.3902829640231966E+01 + 0.3894799555823746E+01 + 0.3886806436215552E+01 + 0.3878850217849458E+01 + 0.3870930832280027E+01 + 0.3863048209723300E+01 + 0.3855202283000621E+01 + 0.3847392990291471E+01 + 0.3839620270105995E+01 + 0.3831884057150737E+01 + 0.3824184282162198E+01 + 0.3816520875823022E+01 + 0.3808893771584922E+01 + 0.3801302904349439E+01 + 0.3793748208344082E+01 + 0.3786229615348013E+01 + 0.3778747056333649E+01 + 0.3771300463362561E+01 + 0.3763889771106266E+01 + 0.3756514914340169E+01 + 0.3749175825059516E+01 + 0.3741872432092516E+01 + 0.3734604664246636E+01 + 0.3727372453698936E+01 + 0.3720175734609583E+01 + 0.3713014440233736E+01 + 0.3705888499901225E+01 + 0.3698797841603685E+01 + 0.3691742394123051E+01 + 0.3684722088426692E+01 + 0.3677736855645863E+01 + 0.3670786626487318E+01 + 0.3663871331169565E+01 + 0.3656990899644327E+01 + 0.3650145260884421E+01 + 0.3643334343145339E+01 + 0.3636558074714680E+01 + 0.3629816384944488E+01 + 0.3623109203432206E+01 + 0.3616436459133201E+01 + 0.3609798079581379E+01 + 0.3603193991933042E+01 + 0.3596624123725671E+01 + 0.3590088403096983E+01 + 0.3583586758081268E+01 + 0.3577119116828047E+01 + 0.3570685407524380E+01 + 0.3564285557803150E+01 + 0.3557919492785699E+01 + 0.3551587136521805E+01 + 0.3545288414019925E+01 + 0.3539023253527156E+01 + 0.3532791583718824E+01 + 0.3526593331494946E+01 + 0.3520428421140222E+01 + 0.3514296776653421E+01 + 0.3508198323528076E+01 + 0.3502132988436230E+01 + 0.3496100697525877E+01 + 0.3490101374123721E+01 + 0.3484134940257803E+01 + 0.3478201318705024E+01 + 0.3472300435174682E+01 + 0.3466432215833562E+01 + 0.3460596586092734E+01 + 0.3454793470215549E+01 + 0.3449022792123921E+01 + 0.3443284474299178E+01 + 0.3437578437918255E+01 + 0.3431904604166020E+01 + 0.3426262895845327E+01 + 0.3420653236417837E+01 + 0.3415075549108366E+01 + 0.3409529756738548E+01 + 0.3404015781891889E+01 + 0.3398533546461182E+01 + 0.3393082971214928E+01 + 0.3387663976683597E+01 + 0.3382276484278182E+01 + 0.3376920416268290E+01 + 0.3371595694584585E+01 + 0.3366302239222745E+01 + 0.3361039969090460E+01 + 0.3355808803695600E+01 + 0.3350608665624798E+01 + 0.3345439478107946E+01 + 0.3340301161783768E+01 + 0.3335193632178999E+01 + 0.3330116804195051E+01 + 0.3325070596895463E+01 + 0.3320054933834865E+01 + 0.3315069738150313E+01 + 0.3310114928158263E+01 + 0.3305190419350959E+01 + 0.3300296127604147E+01 + 0.3295431971364062E+01 + 0.3290597869683931E+01 + 0.3285793741434693E+01 + 0.3281019505303685E+01 + 0.3276275079739079E+01 + 0.3271560381190275E+01 + 0.3266875323778139E+01 + 0.3262219821715714E+01 + 0.3257593793531298E+01 + 0.3252997160393524E+01 + 0.3248429842137267E+01 + 0.3243891752282066E+01 + 0.3239382802210165E+01 + 0.3234902904999047E+01 + 0.3230451978255120E+01 + 0.3226029940104779E+01 + 0.3221636707522139E+01 + 0.3217272196038752E+01 + 0.3212936320814653E+01 + 0.3208628995487325E+01 + 0.3204350132585731E+01 + 0.3200099644783259E+01 + 0.3195877446556082E+01 + 0.3191683452901359E+01 + 0.3187517578421880E+01 + 0.3183379736945854E+01 + 0.3179269842021744E+01 + 0.3175187807246668E+01 + 0.3171133546365314E+01 + 0.3167106972911716E+01 + 0.3163107999448212E+01 + 0.3159136537755126E+01 + 0.3155192499493909E+01 + 0.3151275796652304E+01 + 0.3147386341235019E+01 + 0.3143524044698953E+01 + 0.3139688817192129E+01 + 0.3135880568497275E+01 + 0.3132099210431249E+01 + 0.3128344658111510E+01 + 0.3124616826503054E+01 + 0.3120915625656594E+01 + 0.3117240961490663E+01 + 0.3113592740321924E+01 + 0.3109970873336541E+01 + 0.3106375273738814E+01 + 0.3102805853608561E+01 + 0.3099262521572986E+01 + 0.3095745185386224E+01 + 0.3092253753573249E+01 + 0.3088788136127849E+01 + 0.3085348242982668E+01 + 0.3081933983025341E+01 + 0.3078545264170100E+01 + 0.3075181994090108E+01 + 0.3071844080049201E+01 + 0.3068531429018594E+01 + 0.3065243948340530E+01 + 0.3061981547294972E+01 + 0.3058744135477642E+01 + 0.3055531621222490E+01 + 0.3052343910619517E+01 + 0.3049180909370797E+01 + 0.3046042523644997E+01 + 0.3042928660082044E+01 + 0.3039839225029157E+01 + 0.3036774123396866E+01 + 0.3033733259245341E+01 + 0.3030716537524837E+01 + 0.3027723867598900E+01 + 0.3024755159853084E+01 + 0.3021810320940863E+01 + 0.3018889249848348E+01 + 0.3015991844653833E+01 + 0.3013118009637762E+01 + 0.3010267655961683E+01 + 0.3007440694251856E+01 + 0.3004637027528966E+01 + 0.3001856554278419E+01 + 0.2999099174007641E+01 + 0.2996364792037968E+01 + 0.2993653315279563E+01 + 0.2990964648965482E+01 + 0.2988298694657612E+01 + 0.2985655353286622E+01 + 0.2983034527259018E+01 + 0.2980436120814638E+01 + 0.2977860037869140E+01 + 0.2975306179077367E+01 + 0.2972774442923024E+01 + 0.2970264728732420E+01 + 0.2967776941260934E+01 + 0.2965310986926451E+01 + 0.2962866769327909E+01 + 0.2960444185065271E+01 + 0.2958043129572793E+01 + 0.2955663502552742E+01 + 0.2953305209471177E+01 + 0.2950968155597864E+01 + 0.2948652240264499E+01 + 0.2946357358530404E+01 + 0.2944083406033878E+01 + 0.2941830283269231E+01 + 0.2939597892390959E+01 + 0.2937386134842869E+01 + 0.2935194910359739E+01 + 0.2933024118200678E+01 + 0.2930873656296965E+01 + 0.2928743420715180E+01 + 0.2926633307381334E+01 + 0.2924543214779573E+01 + 0.2922473043352630E+01 + 0.2920422693054130E+01 + 0.2918392061241135E+01 + 0.2916381044109015E+01 + 0.2914389537824483E+01 + 0.2912417438874410E+01 + 0.2910464643665920E+01 + 0.2908531048680545E+01 + 0.2906616550633207E+01 + 0.2904721046122319E+01 + 0.2902844432061764E+01 + 0.2900986605610533E+01 + 0.2899147463368834E+01 + 0.2897326898861839E+01 + 0.2895524804132187E+01 + 0.2893741072567508E+01 + 0.2891975602813611E+01 + 0.2890228294505487E+01 + 0.2888499043831113E+01 + 0.2886787740976567E+01 + 0.2885094275521696E+01 + 0.2883418540639916E+01 + 0.2881760432883155E+01 + 0.2880119848579617E+01 + 0.2878496682355621E+01 + 0.2876890827901841E+01 + 0.2875302178309033E+01 + 0.2873730624861238E+01 + 0.2872176058264707E+01 + 0.2870638369965408E+01 + 0.2869117453042046E+01 + 0.2867613200600068E+01 + 0.2866125505493596E+01 + 0.2864654260322932E+01 + 0.2863199357350394E+01 + 0.2861760687224421E+01 + 0.2860338139626506E+01 + 0.2858931604805579E+01 + 0.2857540976164836E+01 + 0.2856166147830706E+01 + 0.2854807011322554E+01 + 0.2853463452709494E+01 + 0.2852135357334464E+01 + 0.2850822614829832E+01 + 0.2849525119733939E+01 + 0.2848242766224650E+01 + 0.2846975443423712E+01 + 0.2845723037328715E+01 + 0.2844485434338496E+01 + 0.2843262523743311E+01 + 0.2842054195589892E+01 + 0.2840860339494757E+01 + 0.2839680844294488E+01 + 0.2838515598544652E+01 + 0.2837364490233571E+01 + 0.2836227406686161E+01 + 0.2835104235008345E+01 + 0.2833994862060276E+01 + 0.2832899174477136E+01 + 0.2831817058871407E+01 + 0.2830748402555193E+01 + 0.2829693092957717E+01 + 0.2828651017182398E+01 + 0.2827622061767196E+01 + 0.2826606113013611E+01 + 0.2825603057448259E+01 + 0.2824612781975357E+01 + 0.2823635173219871E+01 + 0.2822670115710901E+01 + 0.2821717492395901E+01 + 0.2820777186379397E+01 + 0.2819849082866010E+01 + 0.2818933067738718E+01 + 0.2818029026431329E+01 + 0.2817136843400433E+01 + 0.2816256402782624E+01 + 0.2815387589028978E+01 + 0.2814530287159357E+01 + 0.2813684381939455E+01 + 0.2812849755797553E+01 + 0.2812026289247390E+01 + 0.2811213863086006E+01 + 0.2810412361462944E+01 + 0.2809621669823669E+01 + 0.2808841672645227E+01 + 0.2808072251617527E+01 + 0.2807313287716228E+01 + 0.2806564661998291E+01 + 0.2805826255778477E+01 + 0.2805097950255156E+01 + 0.2804379626914743E+01 + 0.2803671167476592E+01 + 0.2802972453514117E+01 + 0.2802283366587438E+01 + 0.2801603788152714E+01 + 0.2800933599118817E+01 + 0.2800272678875677E+01 + 0.2799620906333912E+01 + 0.2798978161214373E+01 + 0.2798344324877767E+01 + 0.2797719278579341E+01 + 0.2797102900792923E+01 + 0.2796495067289088E+01 + 0.2795895654178171E+01 + 0.2795304542814077E+01 + 0.2794721617142463E+01 + 0.2794146759142823E+01 + 0.2793579843240258E+01 + 0.2793020741820773E+01 + 0.2792469330627312E+01 + 0.2791925492392408E+01 + 0.2791389110329670E+01 + 0.2790860062103882E+01 + 0.2790338219480489E+01 + 0.2789823454424782E+01 + 0.2789315645200771E+01 + 0.2788814673544470E+01 + 0.2788320419889577E+01 + 0.2787832759200677E+01 + 0.2787351564761240E+01 + 0.2786876710194012E+01 + 0.2786408070111963E+01 + 0.2785945519178410E+01 + 0.2785488934207472E+01 + 0.2785038194561131E+01 + 0.2784593179120656E+01 + 0.2784153761537559E+01 + 0.2783719812144721E+01 + 0.2783291201760849E+01 + 0.2782867804663146E+01 + 0.2782449496095806E+01 + 0.2782036151385688E+01 + 0.2781627646330937E+01 + 0.2781223856595946E+01 + 0.2780824655664850E+01 + 0.2780429914270175E+01 + 0.2780039502956779E+01 + 0.2779653294187135E+01 + 0.2779271161676928E+01 + 0.2778892978926623E+01 + 0.2778518618908240E+01 + 0.2778147954289763E+01 + 0.2777780857172172E+01 + 0.2777417198418150E+01 + 0.2777056848545123E+01 + 0.2776699678750747E+01 + 0.2776345561270367E+01 + 0.2775994368161743E+01 + 0.2775645970027761E+01 + 0.2775300236331764E+01 + 0.2774957036569377E+01 + 0.2774616241564826E+01 + 0.2774277722547688E+01 + 0.2773941350093065E+01 + 0.2773606993148473E+01 + 0.2773274520212892E+01 + 0.2772943800192315E+01 + 0.2772614702728056E+01 + 0.2772287097378594E+01 + 0.2771960853855910E+01 + 0.2771635841967354E+01 + 0.2771311930971853E+01 + 0.2770988987297230E+01 + 0.2770666876045879E+01 + 0.2770345463370640E+01 + 0.2770024619447467E+01 + 0.2769704215134547E+01 + 0.2769384118818012E+01 + 0.2769064194777112E+01 + 0.2768744306864522E+01 + 0.2768424321563757E+01 + 0.2768104107730607E+01 + 0.2767783534037924E+01 + 0.2767462468221224E+01 + 0.2767140777474592E+01 + 0.2766818327814774E+01 + 0.2766494981326374E+01 + 0.2766170599048912E+01 + 0.2765845044767994E+01 + 0.2765518187623145E+01 + 0.2765189897055233E+01 + 0.2764860039233492E+01 + 0.2764528477063280E+01 + 0.2764195073269223E+01 + 0.2763859691618402E+01 + 0.2763522196339605E+01 + 0.2763182451228717E+01 + 0.2762840318822903E+01 + 0.2762495661200688E+01 + 0.2762148341581795E+01 + 0.2761798225765982E+01 + 0.2761445179611864E+01 + 0.2761089065885993E+01 + 0.2760729743984623E+01 + 0.2760367073327168E+01 + 0.2760000916904324E+01 + 0.2759631139703306E+01 + 0.2759257605955578E+01 + 0.2758880176886865E+01 + 0.2758498712713812E+01 + 0.2758113073706302E+01 + 0.2757723120498230E+01 + 0.2757328713627488E+01 + 0.2756929713797423E+01 + 0.2756525981947811E+01 + 0.2756117378903043E+01 + 0.2755703765788566E+01 + 0.2755285003856781E+01 + 0.2754860953657930E+01 + 0.2754431472814529E+01 + 0.2753996417873756E+01 + 0.2753555646705012E+01 + 0.2753109020845020E+01 + 0.2752656402206374E+01 + 0.2752197650503046E+01 + 0.2751732622599009E+01 + 0.2751261175153597E+01 + 0.2750783166780084E+01 + 0.2750298457412403E+01 + 0.2749806906221594E+01 + 0.2749308368620419E+01 + 0.2748802698545403E+01 + 0.2748289751641220E+01 + 0.2747769388738957E+01 + 0.2747241471377862E+01 + 0.2746705857992797E+01 + 0.2746162402584218E+01 + 0.2745610958712216E+01 + 0.2745051380961828E+01 + 0.2744483524669128E+01 + 0.2743907245359290E+01 + 0.2743322400646468E+01 + 0.2742728848874425E+01 + 0.2742126446852387E+01 + 0.2741515046937953E+01 + 0.2740894500505915E+01 + 0.2740264661437055E+01 + 0.2739625387735786E+01 + 0.2738976537367335E+01 + 0.2738317963810514E+01 + 0.2737649516702314E+01 + 0.2736971046322972E+01 + 0.2736282409689572E+01 + 0.2735583466712316E+01 + 0.2734874074181687E+01 + 0.2734154078355194E+01 + 0.2733423323118169E+01 + 0.2732681659421084E+01 + 0.2731928950821208E+01 + 0.2731165061151226E+01 + 0.2730389836605993E+01 + 0.2729603106894466E+01 + 0.2728804710667133E+01 + 0.2727994566617481E+01 + 0.2727172632694448E+01 + 0.2726338878521841E+01 + 0.2725493318299303E+01 + 0.2724635977090849E+01 + 0.2723766876238637E+01 + 0.2722886029801277E+01 + 0.2721993451046089E+01 + 0.2721089153718592E+01 + 0.2720173152054040E+01 + 0.2719245460221757E+01 + 0.2718306091319123E+01 + 0.2717355057876741E+01 + 0.2716392373426995E+01 + 0.2715418055776556E+01 + 0.2714432123906192E+01 + 0.2713434594331037E+01 + 0.2712425478224843E+01 + 0.2711404786217251E+01 + 0.2710372532514437E+01 + 0.2709328735348719E+01 + 0.2708273412763306E+01 + 0.2707206578235267E+01 + 0.2706128242525871E+01 + 0.2705038417526083E+01 + 0.2703937120665319E+01 + 0.2702824371067955E+01 + 0.2701700186486546E+01 + 0.2700564581359884E+01 + 0.2699417569642245E+01 + 0.2698259164271288E+01 + 0.2697089376918855E+01 + 0.2695908219685094E+01 + 0.2694715710423051E+01 + 0.2693511870783412E+01 + 0.2692296721013244E+01 + 0.2691070273248351E+01 + 0.2689832536921087E+01 + 0.2688583523752928E+01 + 0.2687323251457192E+01 + 0.2686051738713787E+01 + 0.2684769002567673E+01 + 0.2683475057826066E+01 + 0.2682169919258967E+01 + 0.2680853602939694E+01 + 0.2679526125894251E+01 + 0.2678187504657000E+01 + 0.2676837752501467E+01 + 0.2675476881504352E+01 + 0.2674104905527170E+01 + 0.2672721843599101E+01 + 0.2671327715678237E+01 + 0.2669922539516348E+01 + 0.2668506329544559E+01 + 0.2667079099969409E+01 + 0.2665640865328509E+01 + 0.2664191640429286E+01 + 0.2662731440465058E+01 + 0.2661260283006597E+01 + 0.2659778186628361E+01 + 0.2658285168916827E+01 + 0.2656781244158302E+01 + 0.2655266426025423E+01 + 0.2653740730454385E+01 + 0.2652204177091155E+01 + 0.2650656785684533E+01 + 0.2649098570965778E+01 + 0.2647529543282488E+01 + 0.2645949713927269E+01 + 0.2644359102295943E+01 + 0.2642757731513730E+01 + 0.2641145622769937E+01 + 0.2639522790078630E+01 + 0.2637889245871558E+01 + 0.2636245004230688E+01 + 0.2634590082211554E+01 + 0.2632924497248970E+01 + 0.2631248267556267E+01 + 0.2629561412095964E+01 + 0.2627863949471237E+01 + 0.2626155894715124E+01 + 0.2624437261069970E+01 + 0.2622708062875624E+01 + 0.2620968318861197E+01 + 0.2619218048876622E+01 + 0.2617457271307122E+01 + 0.2615686001566715E+01 + 0.2613904254791424E+01 + 0.2612112047397210E+01 + 0.2610309397148671E+01 + 0.2608496321864222E+01 + 0.2606672838985737E+01 + 0.2604838965759654E+01 + 0.2602994719471381E+01 + 0.2601140117477191E+01 + 0.2599275177177657E+01 + 0.2597399916136707E+01 + 0.2595514352239738E+01 + 0.2593618503416817E+01 + 0.2591712386793635E+01 + 0.2589796018558459E+01 + 0.2587869414980477E+01 + 0.2585932593489293E+01 + 0.2583985572240853E+01 + 0.2582028369344322E+01 + 0.2580061002489842E+01 + 0.2578083489260096E+01 + 0.2576095847480007E+01 + 0.2574098095520505E+01 + 0.2572090251834847E+01 + 0.2570072333852951E+01 + 0.2568044357692576E+01 + 0.2566006339601516E+01 + 0.2563958298168629E+01 + 0.2561900253578767E+01 + 0.2559832225675660E+01 + 0.2557754232072393E+01 + 0.2555666289629168E+01 + 0.2553568415082103E+01 + 0.2551460624778390E+01 + 0.2549342935077281E+01 + 0.2547215364765434E+01 + 0.2545077936014890E+01 + 0.2542930670979897E+01 + 0.2540773587511114E+01 + 0.2538606700262527E+01 + 0.2536430024351834E+01 + 0.2534243578116461E+01 + 0.2532047381153332E+01 + 0.2529841452802279E+01 + 0.2527625811550565E+01 + 0.2525400475754913E+01 + 0.2523165463973594E+01 + 0.2520920795057553E+01 + 0.2518666487898261E+01 + 0.2516402561175851E+01 + 0.2514129033403451E+01 + 0.2511845923249720E+01 + 0.2509553250313428E+01 + 0.2507251034609368E+01 + 0.2504939295164100E+01 + 0.2502618047604293E+01 + 0.2500287306906818E+01 + 0.2497947091152410E+01 + 0.2495597423665818E+01 + 0.2493238328071914E+01 + 0.2490869823393627E+01 + 0.2488491924518368E+01 + 0.2486104646770865E+01 + 0.2483708009870528E+01 + 0.2481302035627670E+01 + 0.2478886745361412E+01 + 0.2476462158412971E+01 + 0.2474028293686613E+01 + 0.2471585170066886E+01 + 0.2469132806373147E+01 + 0.2466671221412285E+01 + 0.2464200433257143E+01 + 0.2461720459255791E+01 + 0.2459231317206219E+01 + 0.2456733028918291E+01 + 0.2454225618309231E+01 + 0.2451709107956810E+01 + 0.2449183514673785E+01 + 0.2446648853809433E+01 + 0.2444105142911021E+01 + 0.2441552404032729E+01 + 0.2438990659743094E+01 + 0.2436419930661317E+01 + 0.2433840235288500E+01 + 0.2431251592019594E+01 + 0.2428654018983071E+01 + 0.2426047534167401E+01 + 0.2423432156497849E+01 + 0.2420807909137555E+01 + 0.2418174816492878E+01 + 0.2415532900519658E+01 + 0.2412882177532826E+01 + 0.2410222663201425E+01 + 0.2407554376865936E+01 + 0.2404877342237244E+01 + 0.2402191582880939E+01 + 0.2399497117467735E+01 + 0.2396793961581118E+01 + 0.2394082132045829E+01 + 0.2391361652237773E+01 + 0.2388632547662489E+01 + 0.2385894841371774E+01 + 0.2383148550155476E+01 + 0.2380393689936454E+01 + 0.2377630279956899E+01 + 0.2374858343797873E+01 + 0.2372077905101111E+01 + 0.2369288984096844E+01 + 0.2366491598648442E+01 + 0.2363685767284149E+01 + 0.2360871512503937E+01 + 0.2358048858249926E+01 + 0.2355217826793977E+01 + 0.2352378435656202E+01 + 0.2349530701611368E+01 + 0.2346674644298523E+01 + 0.2343810287469323E+01 + 0.2340937655016325E+01 + 0.2338056767721405E+01 + 0.2335167643990952E+01 + 0.2332270302734263E+01 + 0.2329364766332714E+01 + 0.2326451058566504E+01 + 0.2323529202225521E+01 + 0.2320599216929752E+01 + 0.2317661121728238E+01 + 0.2314714936936051E+01 + 0.2311760684856914E+01 + 0.2308798387901351E+01 + 0.2305828066785591E+01 + 0.2302849740804408E+01 + 0.2299863429638813E+01 + 0.2296869155895231E+01 + 0.2293866943485362E+01 + 0.2290856815549637E+01 + 0.2287838792450428E+01 + 0.2284812893980087E+01 + 0.2281779140517193E+01 + 0.2278737553440731E+01 + 0.2275688154336889E+01 + 0.2272630966367992E+01 + 0.2269566014156887E+01 + 0.2266493321754163E+01 + 0.2263412907874932E+01 + 0.2260324788656194E+01 + 0.2257228981975905E+01 + 0.2254125512416049E+01 + 0.2251014406190901E+01 + 0.2247895688132937E+01 + 0.2244769380378633E+01 + 0.2241635504728745E+01 + 0.2238494081634487E+01 + 0.2235345130175459E+01 + 0.2232188669750604E+01 + 0.2229024723011340E+01 + 0.2225853314369803E+01 + 0.2222674467953487E+01 + 0.2219488206479083E+01 + 0.2216294552305364E+01 + 0.2213093527223368E+01 + 0.2209885151779597E+01 + 0.2206669446467522E+01 + 0.2203446434051355E+01 + 0.2200216139825554E+01 + 0.2196978588857246E+01 + 0.2193733802166186E+01 + 0.2190481798390571E+01 + 0.2187222597065458E+01 + 0.2183956222060571E+01 + 0.2180682698563458E+01 + 0.2177402051046685E+01 + 0.2174114302251850E+01 + 0.2170819474689663E+01 + 0.2167517590547672E+01 + 0.2164208671609857E+01 + 0.2160892739697554E+01 + 0.2157569817042206E+01 + 0.2154239926153688E+01 + 0.2150903090025672E+01 + 0.2147559334070051E+01 + 0.2144208684521958E+01 + 0.2140851165236831E+01 + 0.2137486793809112E+01 + 0.2134115586978042E+01 + 0.2130737566993370E+01 + 0.2127352763520534E+01 + 0.2123961206306233E+01 + 0.2120562918685339E+01 + 0.2117157919406017E+01 + 0.2113746227778649E+01 + 0.2110327866924913E+01 + 0.2106902861394375E+01 + 0.2103471235618415E+01 + 0.2100033013615184E+01 + 0.2096588219334000E+01 + 0.2093136875577418E+01 + 0.2089679003432474E+01 + 0.2086214624136926E+01 + 0.2082743763009811E+01 + 0.2079266448594051E+01 + 0.2075782708514264E+01 + 0.2072292563479000E+01 + 0.2068796031383648E+01 + 0.2065293131876009E+01 + 0.2061783890204079E+01 + 0.2058268332762316E+01 + 0.2054746485654697E+01 + 0.2051218374488547E+01 + 0.2047684024720568E+01 + 0.2044143459387960E+01 + 0.2040596699436895E+01 + 0.2037043766074572E+01 + 0.2033484682791825E+01 + 0.2029919474131832E+01 + 0.2026348164947618E+01 + 0.2022770781095501E+01 + 0.2019187348669249E+01 + 0.2015597892490347E+01 + 0.2012002435065242E+01 + 0.2008400998761083E+01 + 0.2004793607546759E+01 + 0.2001180286916505E+01 + 0.1997561062211203E+01 + 0.1993935956732079E+01 + 0.1990304992774944E+01 + 0.1986668193454214E+01 + 0.1983025585083659E+01 + 0.1979377194789412E+01 + 0.1975723048304266E+01 + 0.1972063168562281E+01 + 0.1968397578244531E+01 + 0.1964726301295662E+01 + 0.1961049362979179E+01 + 0.1957366788628499E+01 + 0.1953678603382176E+01 + 0.1949984832286089E+01 + 0.1946285500251220E+01 + 0.1942580631481653E+01 + 0.1938870250010867E+01 + 0.1935154380336906E+01 + 0.1931433047937662E+01 + 0.1927706278434568E+01 + 0.1923974097019227E+01 + 0.1920236528384978E+01 + 0.1916493597252073E+01 + 0.1912745328626284E+01 + 0.1908991747700092E+01 + 0.1905232879683196E+01 + 0.1901468749729310E+01 + 0.1897699382997699E+01 + 0.1893924804708298E+01 + 0.1890145040181291E+01 + 0.1886360114776541E+01 + 0.1882570053765957E+01 + 0.1878774882301937E+01 + 0.1874974625582298E+01 + 0.1871169309112165E+01 + 0.1867358958613577E+01 + 0.1863543599781266E+01 + 0.1859723257990641E+01 + 0.1855897958529269E+01 + 0.1852067726850404E+01 + 0.1848232588797849E+01 + 0.1844392570303197E+01 + 0.1840547697112215E+01 + 0.1836697994700237E+01 + 0.1832843488573744E+01 + 0.1828984204563125E+01 + 0.1825120168746305E+01 + 0.1821251407191131E+01 + 0.1817377945701098E+01 + 0.1813499809999375E+01 + 0.1809617025882816E+01 + 0.1805729619303893E+01 + 0.1801837616272552E+01 + 0.1797941042933517E+01 + 0.1794039925619743E+01 + 0.1790134290687114E+01 + 0.1786224164147384E+01 + 0.1782309571739547E+01 + 0.1778390539310132E+01 + 0.1774467093316706E+01 + 0.1770539260493847E+01 + 0.1766607067476578E+01 + 0.1762670540489288E+01 + 0.1758729705697674E+01 + 0.1754784589330597E+01 + 0.1750835217700781E+01 + 0.1746881617167321E+01 + 0.1742923814285673E+01 + 0.1738961835789798E+01 + 0.1734995708431347E+01 + 0.1731025458836195E+01 + 0.1727051113589073E+01 + 0.1723072699330627E+01 + 0.1719090242821041E+01 + 0.1715103770872624E+01 + 0.1711113310243621E+01 + 0.1707118887564125E+01 + 0.1703120529487691E+01 + 0.1699118262880953E+01 + 0.1695112114819716E+01 + 0.1691102112413701E+01 + 0.1687088282748467E+01 + 0.1683070652913130E+01 + 0.1679049249938307E+01 + 0.1675024100512248E+01 + 0.1670995231261762E+01 + 0.1666962669214982E+01 + 0.1662926442186111E+01 + 0.1658886578088928E+01 + 0.1654843104188751E+01 + 0.1650796047051586E+01 + 0.1646745433317949E+01 + 0.1642691290432261E+01 + 0.1638633646310520E+01 + 0.1634572528781725E+01 + 0.1630507965132924E+01 + 0.1626439982519873E+01 + 0.1622368608261807E+01 + 0.1618293870006199E+01 + 0.1614215795468032E+01 + 0.1610134412203718E+01 + 0.1606049747576537E+01 + 0.1601961829006357E+01 + 0.1597870684358341E+01 + 0.1593776341789122E+01 + 0.1589678829401402E+01 + 0.1585578174864814E+01 + 0.1581474405733586E+01 + 0.1577367549699162E+01 + 0.1573257634747274E+01 + 0.1569144688933099E+01 + 0.1565028740199165E+01 + 0.1560909816332045E+01 + 0.1556787945157289E+01 + 0.1552663154773130E+01 + 0.1548535473476144E+01 + 0.1544404929574270E+01 + 0.1540271551265690E+01 + 0.1536135366730961E+01 + 0.1531996404154312E+01 + 0.1527854691671938E+01 + 0.1523710257440100E+01 + 0.1519563129704245E+01 + 0.1515413336823050E+01 + 0.1511260907198702E+01 + 0.1507105869330997E+01 + 0.1502948251801753E+01 + 0.1498788083222078E+01 + 0.1494625392204221E+01 + 0.1490460207380903E+01 + 0.1486292557311986E+01 + 0.1482122470264402E+01 + 0.1477949974480367E+01 + 0.1473775098558448E+01 + 0.1469597871637951E+01 + 0.1465418322913178E+01 + 0.1461236481226845E+01 + 0.1457052375133946E+01 + 0.1452866033243476E+01 + 0.1448677484419207E+01 + 0.1444486757654344E+01 + 0.1440293881958520E+01 + 0.1436098886316163E+01 + 0.1431901799732194E+01 + 0.1427702651244505E+01 + 0.1423501469924016E+01 + 0.1419298284876791E+01 + 0.1415093125285407E+01 + 0.1410886020405313E+01 + 0.1406676999499354E+01 + 0.1402466091646335E+01 + 0.1398253325853518E+01 + 0.1394038731288372E+01 + 0.1389822337640012E+01 + 0.1385604174744922E+01 + 0.1381384272199317E+01 + 0.1377162659111094E+01 + 0.1372939364570085E+01 + 0.1368714417881549E+01 + 0.1364487848567326E+01 + 0.1360259686222604E+01 + 0.1356029960767693E+01 + 0.1351798702311231E+01 + 0.1347565940815966E+01 + 0.1343331705510259E+01 + 0.1339096025453380E+01 + 0.1334858930103040E+01 + 0.1330620449720115E+01 + 0.1326380614681506E+01 + 0.1322139454988245E+01 + 0.1317897000222414E+01 + 0.1313653280011469E+01 + 0.1309408324384361E+01 + 0.1305162163618864E+01 + 0.1300914827967720E+01 + 0.1296666347428190E+01 + 0.1292416751945059E+01 + 0.1288166071483667E+01 + 0.1283914336013759E+01 + 0.1279661575541684E+01 + 0.1275407820371735E+01 + 0.1271153101162871E+01 + 0.1266897448593662E+01 + 0.1262640892991721E+01 + 0.1258383464469955E+01 + 0.1254125193209462E+01 + 0.1249866109633336E+01 + 0.1245606244266345E+01 + 0.1241345627661451E+01 + 0.1237084290392101E+01 + 0.1232822263060346E+01 + 0.1228559576202968E+01 + 0.1224296260258648E+01 + 0.1220032345706421E+01 + 0.1215767863280141E+01 + 0.1211502843904122E+01 + 0.1207237318518043E+01 + 0.1202971317970243E+01 + 0.1198704873096594E+01 + 0.1194438014715560E+01 + 0.1190170773534757E+01 + 0.1185903180272620E+01 + 0.1181635265866900E+01 + 0.1177367061561911E+01 + 0.1173098598637531E+01 + 0.1168829908109992E+01 + 0.1164561020796975E+01 + 0.1160291967597207E+01 + 0.1156022779801318E+01 + 0.1151753488878348E+01 + 0.1147484126224311E+01 + 0.1143214722929405E+01 + 0.1138945310051130E+01 + 0.1134675918794746E+01 + 0.1130406580584005E+01 + 0.1126137326887360E+01 + 0.1121868189114729E+01 + 0.1117599198630515E+01 + 0.1113330386862859E+01 + 0.1109061785519805E+01 + 0.1104793426453159E+01 + 0.1100525341397711E+01 + 0.1096257561588202E+01 + 0.1091990118178056E+01 + 0.1087723042706956E+01 + 0.1083456367376716E+01 + 0.1079190124462320E+01 + 0.1074924345752627E+01 + 0.1070659062580424E+01 + 0.1066394306351660E+01 + 0.1062130109001098E+01 + 0.1057866502742213E+01 + 0.1053603519756919E+01 + 0.1049341191998216E+01 + 0.1045079551387978E+01 + 0.1040818629936822E+01 + 0.1036558459797987E+01 + 0.1032299073164294E+01 + 0.1028040502109765E+01 + 0.1023782778584347E+01 + 0.1019525934596888E+01 + 0.1015270002502136E+01 + 0.1011015014859021E+01 + 0.1006761004174390E+01 + 0.1002508002606307E+01 + 0.9982560422418139E+00 + 0.9940051553718641E+00 + 0.9897553746914635E+00 + 0.9855067329680791E+00 + 0.9812592627288435E+00 + 0.9770129962231646E+00 + 0.9727679657530324E+00 + 0.9685242040429634E+00 + 0.9642817440853428E+00 + 0.9600406187922257E+00 + 0.9558008605375617E+00 + 0.9515625015544538E+00 + 0.9473255743761783E+00 + 0.9430901122110589E+00 + 0.9388561483857616E+00 + 0.9346237159276381E+00 + 0.9303928474819745E+00 + 0.9261635757168490E+00 + 0.9219359335290955E+00 + 0.9177099539784411E+00 + 0.9134856701599347E+00 + 0.9092631152016113E+00 + 0.9050423222643522E+00 + 0.9008233244577955E+00 + 0.8966061547005618E+00 + 0.8923908459143046E+00 + 0.8881774313682497E+00 + 0.8839659447965699E+00 + 0.8797564199580595E+00 + 0.8755488900904894E+00 + 0.8713433880599883E+00 + 0.8671399468476304E+00 + 0.8629386000256821E+00 + 0.8587393814097352E+00 + 0.8545423247055339E+00 + 0.8503474632284796E+00 + 0.8461548302524722E+00 + 0.8419644592812901E+00 + 0.8377763841491607E+00 + 0.8335906387398044E+00 + 0.8294072568371012E+00 + 0.8252262721512709E+00 + 0.8210477184114239E+00 + 0.8168716293043403E+00 + 0.8126980385182351E+00 + 0.8085269797989533E+00 + 0.8043584870069104E+00 + 0.8001925940532651E+00 + 0.7960293349610418E+00 + 0.7918687439174735E+00 + 0.7877108551438025E+00 + 0.7835557026815428E+00 + 0.7794033204175239E+00 + 0.7752537422853298E+00 + 0.7711070024077333E+00 + 0.7669631350126184E+00 + 0.7628221743651602E+00 + 0.7586841547777881E+00 + 0.7545491105980661E+00 + 0.7504170760960228E+00 + 0.7462880853721613E+00 + 0.7421621725541715E+00 + 0.7380393721531059E+00 + 0.7339197190525281E+00 + 0.7298032481306159E+00 + 0.7256899938454968E+00 + 0.7215799904569733E+00 + 0.7174732723258481E+00 + 0.7133698741312559E+00 + 0.7092698306571147E+00 + 0.7051731766069346E+00 + 0.7010799464878216E+00 + 0.6969901748201237E+00 + 0.6929038963673805E+00 + 0.6888211461498289E+00 + 0.6847419592173184E+00 + 0.6806663705129697E+00 + 0.6765944149342066E+00 + 0.6725261273924929E+00 + 0.6684615427505890E+00 + 0.6644006958811247E+00 + 0.6603436217234410E+00 + 0.6562903553254444E+00 + 0.6522409317817459E+00 + 0.6481953863292981E+00 + 0.6441537543658695E+00 + 0.6401160713029034E+00 + 0.6360823722904677E+00 + 0.6320526923288632E+00 + 0.6280270665224106E+00 + 0.6240055303823370E+00 + 0.6199881195704298E+00 + 0.6159748696403325E+00 + 0.6119658158290626E+00 + 0.6079609933576105E+00 + 0.6039604376459461E+00 + 0.5999641843603341E+00 + 0.5959722691943805E+00 + 0.5919847276267568E+00 + 0.5880015949997257E+00 + 0.5840229067725815E+00 + 0.5800486989314790E+00 + 0.5760790076684799E+00 + 0.5721138690300802E+00 + 0.5681533186047556E+00 + 0.5641973919338708E+00 + 0.5602461247625227E+00 + 0.5562995531100626E+00 + 0.5523577130330288E+00 + 0.5484206404176626E+00 + 0.5444883710304499E+00 + 0.5405609407131063E+00 + 0.5366383856313393E+00 + 0.5327207420969576E+00 + 0.5288080464100507E+00 + 0.5249003347663239E+00 + 0.5209976433669858E+00 + 0.5171000083621538E+00 + 0.5132074658042884E+00 + 0.5093200517832488E+00 + 0.5054378026869952E+00 + 0.5015607551553995E+00 + 0.4976889458161465E+00 + 0.4938224109636026E+00 + 0.4899611867673048E+00 + 0.4861053095416390E+00 + 0.4822548160158862E+00 + 0.4784097430310909E+00 + 0.4745701272881877E+00 + 0.4707360052246750E+00 + 0.4669074132869620E+00 + 0.4630843880556774E+00 + 0.4592669662362675E+00 + 0.4554551845945777E+00 + 0.4516490801207031E+00 + 0.4478486899288961E+00 + 0.4440540510228486E+00 + 0.4402651998951283E+00 + 0.4364821729458813E+00 + 0.4327050069676101E+00 + 0.4289337394644452E+00 + 0.4251684080241443E+00 + 0.4214090496949325E+00 + 0.4176557009874912E+00 + 0.4139083985017730E+00 + 0.4101671795973473E+00 + 0.4064320820489203E+00 + 0.4027031434904791E+00 + 0.3989804008430824E+00 + 0.3952638908660430E+00 + 0.3915536505958723E+00 + 0.3878497176114963E+00 + 0.3841521295834829E+00 + 0.3804609240745477E+00 + 0.3767761385261990E+00 + 0.3730978103930362E+00 + 0.3694259770415064E+00 + 0.3657606758006982E+00 + 0.3621019441035771E+00 + 0.3584498197529364E+00 + 0.3548043406825562E+00 + 0.3511655446968307E+00 + 0.3475334692587515E+00 + 0.3439081518196150E+00 + 0.3402896301310443E+00 + 0.3366779422991650E+00 + 0.3330731264503148E+00 + 0.3294752203767480E+00 + 0.3258842616691766E+00 + 0.3223002880349144E+00 + 0.3187233376720640E+00 + 0.3151534489602759E+00 + 0.3115906600843906E+00 + 0.3080350086803029E+00 + 0.3044865323356873E+00 + 0.3009452691029239E+00 + 0.2974112576380766E+00 + 0.2938845366345182E+00 + 0.2903651443584150E+00 + 0.2868531187854460E+00 + 0.2833484979605053E+00 + 0.2798513202133619E+00 + 0.2763616239977563E+00 + 0.2728794477778288E+00 + 0.2694048299863738E+00 + 0.2659378090778803E+00 + 0.2624784235423419E+00 + 0.2590267119064279E+00 + 0.2555827127326072E+00 + 0.2521464646549092E+00 + 0.2487180063701468E+00 + 0.2452973765798858E+00 + 0.2418846138295477E+00 + 0.2384797566216621E+00 + 0.2350828435923456E+00 + 0.2316939137282307E+00 + 0.2283130061092226E+00 + 0.2249401597097581E+00 + 0.2215754133157101E+00 + 0.2182188057310515E+00 + 0.2148703758822939E+00 + 0.2115301628049758E+00 + 0.2081982055647264E+00 + 0.2048745432214976E+00 + 0.2015592148510336E+00 + 0.1982522595635533E+00 + 0.1949537165079194E+00 + 0.1916636248672601E+00 + 0.1883820238667283E+00 + 0.1851089527804457E+00 + 0.1818444509142821E+00 + 0.1785885575494833E+00 + 0.1753413119465266E+00 + 0.1721027534344558E+00 + 0.1688729216851291E+00 + 0.1656518565554833E+00 + 0.1624395976136944E+00 + 0.1592361832026094E+00 + 0.1560416514084168E+00 + 0.1528560425122109E+00 + 0.1496794010311411E+00 + 0.1465117713086196E+00 + 0.1433531810518414E+00 + 0.1402036409163216E+00 + 0.1370631592161317E+00 + 0.1339317297497557E+00 + 0.1308093384482862E+00 + 0.1276959719730077E+00 + 0.1245916205667902E+00 + 0.1214962754281801E+00 + 0.1184099273299164E+00 + 0.1153325661514474E+00 + 0.1122641816453037E+00 + 0.1092047637083437E+00 + 0.1061543024023497E+00 + 0.1031127877729508E+00 + 0.1000802097761329E+00 + 0.9705655830657214E-01 + 0.9404182324608685E-01 + 0.9103599449130245E-01 + 0.8803906192979683E-01 + 0.8505101542360494E-01 + 0.8207184480063495E-01 + 0.7910153986782371E-01 + 0.7614009043043558E-01 + 0.7318748629626853E-01 + 0.7024371725138069E-01 + 0.6730877301743046E-01 + 0.6438264326710465E-01 + 0.6146531766356520E-01 + 0.5855678590649958E-01 + 0.5565703769502616E-01 + 0.5276606269146988E-01 + 0.4988385049279519E-01 + 0.4701039066982330E-01 + 0.4414567280328236E-01 + 0.4128968649435135E-01 + 0.3844242132401938E-01 + 0.3560386680301459E-01 + 0.3277401238589357E-01 + 0.2995284751852551E-01 + 0.2714036169659822E-01 + 0.2433654442226846E-01 + 0.2154138515914242E-01 + 0.1875487329510447E-01 + 0.1597699818872967E-01 + 0.1320774919461631E-01 + 0.1044711567098940E-01 + 0.7695086958371582E-02 + 0.4951652373763177E-02 + 0.2216801211493422E-02 + -0.5094772536422055E-03 + -0.3227193766958579E-02 + -0.5936359093434104E-02 + -0.8636984017077198E-02 + -0.1132907934027337E-01 + -0.1401265588455412E-01 + -0.1668772449192131E-01 + -0.1935429602556171E-01 + -0.2201238136808683E-01 + -0.2466199141985363E-01 + -0.2730313709917522E-01 + -0.2993582934333923E-01 + -0.3256007910665527E-01 + -0.3517589736169495E-01 + -0.3778329510008180E-01 + -0.4038228333182754E-01 + -0.4297287308611709E-01 + -0.4555507541880093E-01 + -0.4812890141834796E-01 + -0.5069436219344283E-01 + -0.5325146886080857E-01 + -0.5580023254565571E-01 + -0.5834066439252994E-01 + -0.6087277556917242E-01 + -0.6339657726459730E-01 + -0.6591208068681469E-01 + -0.6841929706178438E-01 + -0.7091823763445558E-01 + -0.7340891366968605E-01 + -0.7589133645284639E-01 + -0.7836551728866388E-01 + -0.8083146749855420E-01 + -0.8328919842049025E-01 + -0.8573872141291250E-01 + -0.8818004786597557E-01 + -0.9061318919605434E-01 + -0.9303815683705791E-01 + -0.9545496223376077E-01 + -0.9786361684785856E-01 + -0.1002641321506600E+00 + -0.1026565196113197E+00 + -0.1050407907166593E+00 + -0.1074169570104263E+00 + -0.1097850300992458E+00 + -0.1121450216055298E+00 + -0.1144969431055990E+00 + -0.1168408061549004E+00 + -0.1191766223416569E+00 + -0.1215044033437772E+00 + -0.1238241608804171E+00 + -0.1261359066755339E+00 + -0.1284396524367565E+00 + -0.1307354098855330E+00 + -0.1330231907571977E+00 + -0.1353030067994877E+00 + -0.1375748697809505E+00 + -0.1398387915136812E+00 + -0.1420947838454725E+00 + -0.1443428586403210E+00 + -0.1465830277623076E+00 + -0.1488153030881631E+00 + -0.1510396965163362E+00 + -0.1532562199710925E+00 + -0.1554648853970214E+00 + -0.1576657047538427E+00 + -0.1598586900147453E+00 + -0.1620438531730326E+00 + -0.1642212062589910E+00 + -0.1663907613353591E+00 + -0.1685525304789232E+00 + -0.1707065257508673E+00 + -0.1728527592182673E+00 + -0.1749912429792637E+00 + -0.1771219891868807E+00 + -0.1792450100199484E+00 + -0.1813603176645588E+00 + -0.1834679243075660E+00 + -0.1855678421539083E+00 + -0.1876600834334899E+00 + -0.1897446604001602E+00 + -0.1918215853262616E+00 + -0.1938908704967366E+00 + -0.1959525282129900E+00 + -0.1980065708019690E+00 + -0.2000530106308260E+00 + -0.2020918600901994E+00 + -0.2041231315725217E+00 + -0.2061468374598224E+00 + -0.2081629901516123E+00 + -0.2101716020867978E+00 + -0.2121726857416452E+00 + -0.2141662536141086E+00 + -0.2161523182348363E+00 + -0.2181308921601088E+00 + -0.2201019879315371E+00 + -0.2220656179829819E+00 + -0.2240217947391646E+00 + -0.2259705307788945E+00 + -0.2279118389522057E+00 + -0.2298457321484663E+00 + -0.2317722231018563E+00 + -0.2336913243936188E+00 + -0.2356030486115184E+00 + -0.2375074083149398E+00 + -0.2394044160576877E+00 + -0.2412940844892596E+00 + -0.2431764265972887E+00 + -0.2450514554706892E+00 + -0.2469191840591571E+00 + -0.2487796250044607E+00 + -0.2506327909326622E+00 + -0.2524786946372879E+00 + -0.2543173490917988E+00 + -0.2561487672906775E+00 + -0.2579729621838983E+00 + -0.2597899467041377E+00 + -0.2615997338182850E+00 + -0.2634023365835516E+00 + -0.2651977680966870E+00 + -0.2669860413848942E+00 + -0.2687671692919512E+00 + -0.2705411646596871E+00 + -0.2723080405750397E+00 + -0.2740678104131862E+00 + -0.2758204875622762E+00 + -0.2775660851778530E+00 + -0.2793046162754428E+00 + -0.2810360938760532E+00 + -0.2827605309620917E+00 + -0.2844779405169948E+00 + -0.2861883357442548E+00 + -0.2878917303738231E+00 + -0.2895881382228178E+00 + -0.2912775726790564E+00 + -0.2929600465624074E+00 + -0.2946355727121690E+00 + -0.2963041645055044E+00 + -0.2979658356998538E+00 + -0.2996206000066153E+00 + -0.3012684707361462E+00 + -0.3029094610678352E+00 + -0.3045435842767993E+00 + -0.3061708538724022E+00 + -0.3077912834206108E+00 + -0.3094048865018736E+00 + -0.3110116767089604E+00 + -0.3126116676432988E+00 + -0.3142048727748946E+00 + -0.3157913054776722E+00 + -0.3173709791886337E+00 + -0.3189439076658204E+00 + -0.3205101048063201E+00 + -0.3220695844693082E+00 + -0.3236223603537943E+00 + -0.3251684461430724E+00 + -0.3267078555244700E+00 + -0.3282406021804378E+00 + -0.3297666998038018E+00 + -0.3312861619908377E+00 + -0.3327990022596481E+00 + -0.3343052342263492E+00 + -0.3358048721176612E+00 + -0.3372979304395030E+00 + -0.3387844234261221E+00 + -0.3402643643188948E+00 + -0.3417377661665767E+00 + -0.3432046426654638E+00 + -0.3446650086276848E+00 + -0.3461188789492888E+00 + -0.3475662676183287E+00 + -0.3490071877851574E+00 + -0.3504416527107287E+00 + -0.3518696766813945E+00 + -0.3532912744914911E+00 + -0.3547064607335657E+00 + -0.3561152491532403E+00 + -0.3575176533089522E+00 + -0.3589136870686084E+00 + -0.3603033648781801E+00 + -0.3616867012593667E+00 + -0.3630637105807907E+00 + -0.3644344070553944E+00 + -0.3657988048989365E+00 + -0.3671569182671733E+00 + -0.3685087612926076E+00 + -0.3698543481606367E+00 + -0.3711936932222846E+00 + -0.3725268108870478E+00 + -0.3738537155600779E+00 + -0.3751744216154813E+00 + -0.3764889434419037E+00 + -0.3777972954939820E+00 + -0.3790994922977202E+00 + -0.3803955483823198E+00 + -0.3816854781006803E+00 + -0.3829692957093493E+00 + -0.3842470155594779E+00 + -0.3855186523895344E+00 + -0.3867842210668653E+00 + -0.3880437363294048E+00 + -0.3892972125843941E+00 + -0.3905446642118290E+00 + -0.3917861057419071E+00 + -0.3930215518845037E+00 + -0.3942510173786658E+00 + -0.3954745169828091E+00 + -0.3966920654747281E+00 + -0.3979036776139166E+00 + -0.3991093679782423E+00 + -0.4003091510983034E+00 + -0.4015030416607138E+00 + -0.4026910547277674E+00 + -0.4038732054332278E+00 + -0.4050495087051520E+00 + -0.4062199791878619E+00 + -0.4073846315368629E+00 + -0.4085434806069737E+00 + -0.4096965414012297E+00 + -0.4108438289368518E+00 + -0.4119853582027577E+00 + -0.4131211441896297E+00 + -0.4142512019001378E+00 + -0.4153755463351400E+00 + -0.4164941925124709E+00 + -0.4176071555466488E+00 + -0.4187144506860795E+00 + -0.4198160931810073E+00 + -0.4209120978853889E+00 + -0.4220024793451868E+00 + -0.4230872522668136E+00 + -0.4241664323779729E+00 + -0.4252400358356743E+00 + -0.4263080783850502E+00 + -0.4273705744001891E+00 + -0.4284275380062243E+00 + -0.4294789841058033E+00 + -0.4305249288573675E+00 + -0.4315653885060343E+00 + -0.4326003784705542E+00 + -0.4336299134572507E+00 + -0.4346540082594946E+00 + -0.4356726783796042E+00 + -0.4366859396514507E+00 + -0.4376938077989443E+00 + -0.4386962980968839E+00 + -0.4396934257359529E+00 + -0.4406852060485988E+00 + -0.4416716546067113E+00 + -0.4426527870225087E+00 + -0.4436286188851758E+00 + -0.4445991657629605E+00 + -0.4455644432402341E+00 + -0.4465244669071523E+00 + -0.4474792523664176E+00 + -0.4484288152692407E+00 + -0.4493731714025115E+00 + -0.4503123365998838E+00 + -0.4512463265044912E+00 + -0.4521751563628090E+00 + -0.4530988414134033E+00 + -0.4540173974639395E+00 + -0.4549308409153895E+00 + -0.4558391881331971E+00 + -0.4567424547225850E+00 + -0.4576406558776729E+00 + -0.4585338070011543E+00 + -0.4594219243759062E+00 + -0.4603050245413243E+00 + -0.4611831237248739E+00 + -0.4620562374472980E+00 + -0.4629243811612068E+00 + -0.4637875706077155E+00 + -0.4646458218560034E+00 + -0.4654991510171697E+00 + -0.4663475742813414E+00 + -0.4671911078943602E+00 + -0.4680297680777923E+00 + -0.4688635708538481E+00 + -0.4696925321964417E+00 + -0.4705166680603854E+00 + -0.4713359943269270E+00 + -0.4721505268932449E+00 + -0.4729602820605314E+00 + -0.4737652766340389E+00 + -0.4745655274025638E+00 + -0.4753610503527655E+00 + -0.4761518609402832E+00 + -0.4769379748038949E+00 + -0.4777194085635374E+00 + -0.4784961791880650E+00 + -0.4792683034254667E+00 + -0.4800357973962107E+00 + -0.4807986771364833E+00 + -0.4815569588858761E+00 + -0.4823106591583858E+00 + -0.4830597944996034E+00 + -0.4838043813827083E+00 + -0.4845444362326128E+00 + -0.4852799755138186E+00 + -0.4860110158447547E+00 + -0.4867375739143601E+00 + -0.4874596662847291E+00 + -0.4881773091009295E+00 + -0.4888905184530672E+00 + -0.4895993108528650E+00 + -0.4903037034445800E+00 + -0.4910037134148326E+00 + -0.4916993575024962E+00 + -0.4923906520874643E+00 + -0.4930776135953130E+00 + -0.4937602587290551E+00 + -0.4944386043198559E+00 + -0.4951126672094942E+00 + -0.4957824642287258E+00 + -0.4964480122203512E+00 + -0.4971093279687002E+00 + -0.4977664281468694E+00 + -0.4984193294412635E+00 + -0.4990680486813819E+00 + -0.4997126028261979E+00 + -0.5003530088525109E+00 + -0.5009892837147439E+00 + -0.5016214443672039E+00 + -0.5022495077874375E+00 + -0.5028734909871532E+00 + -0.5034934110007512E+00 + -0.5041092848746996E+00 + -0.5047211296613466E+00 + -0.5053289624323853E+00 + -0.5059328003112634E+00 + -0.5065326604724549E+00 + -0.5071285600938865E+00 + -0.5077205162226933E+00 + -0.5083085458479387E+00 + -0.5088926660133760E+00 + -0.5094728939305484E+00 + -0.5100492468685888E+00 + -0.5106217421299980E+00 + -0.5111903970652234E+00 + -0.5117552290404063E+00 + -0.5123162552525885E+00 + -0.5128734927158226E+00 + -0.5134269585074412E+00 + -0.5139766702564739E+00 + -0.5145226459139986E+00 + -0.5150649032972224E+00 + -0.5156034595234445E+00 + -0.5161383315240620E+00 + -0.5166695364346142E+00 + -0.5171970918276364E+00 + -0.5177210153499370E+00 + -0.5182413245917728E+00 + -0.5187580370732116E+00 + -0.5192711703300979E+00 + -0.5197807419355084E+00 + -0.5202867694930585E+00 + -0.5207892706323106E+00 + -0.5212882630349930E+00 + -0.5217837644124942E+00 + -0.5222757924364053E+00 + -0.5227643646498327E+00 + -0.5232494985942481E+00 + -0.5237312119023515E+00 + -0.5242095223194014E+00 + -0.5246844476264841E+00 + -0.5251560057549821E+00 + -0.5256242147459250E+00 + -0.5260890926146767E+00 + -0.5265506571284742E+00 + -0.5270089259792156E+00 + -0.5274639168798715E+00 + -0.5279156475681639E+00 + -0.5283641358049969E+00 + -0.5288093995175506E+00 + -0.5292514568618003E+00 + -0.5296903260250241E+00 + -0.5301260251522972E+00 + -0.5305585723614161E+00 + -0.5309879857256110E+00 + -0.5314142829375509E+00 + -0.5318374815522150E+00 + -0.5322575993992441E+00 + -0.5326746551153505E+00 + -0.5330886674999781E+00 + -0.5334996548719166E+00 + -0.5339076347849181E+00 + -0.5343126247877997E+00 + -0.5347146432043992E+00 + -0.5351137090075172E+00 + -0.5355098410637710E+00 + -0.5359030572231493E+00 + -0.5362933749044804E+00 + -0.5366808118497081E+00 + -0.5370653868679341E+00 + -0.5374471190071222E+00 + -0.5378260269324827E+00 + -0.5382021286336041E+00 + -0.5385754420755420E+00 + -0.5389459857431550E+00 + -0.5393137785987353E+00 + -0.5396788395303646E+00 + -0.5400411865580523E+00 + -0.5404008372943850E+00 + -0.5407578096996505E+00 + -0.5411121230172689E+00 + -0.5414637968061503E+00 + -0.5418128500250589E+00 + -0.5421593004713569E+00 + -0.5425031658622915E+00 + -0.5428444647155058E+00 + -0.5431832163532613E+00 + -0.5435194400795359E+00 + -0.5438531545627926E+00 + -0.5441843781432830E+00 + -0.5445131292655891E+00 + -0.5448394267690314E+00 + -0.5451632896111226E+00 + -0.5454847366293758E+00 + -0.5458037863874066E+00 + -0.5461204574409919E+00 + -0.5464347686440116E+00 + -0.5467467391775406E+00 + -0.5470563882252149E+00 + -0.5473637346542085E+00 + -0.5476687971545021E+00 + -0.5479715944671018E+00 + -0.5482721455147309E+00 + -0.5485704692877215E+00 + -0.5488665848766532E+00 + -0.5491605115796076E+00 + -0.5494522687315985E+00 + -0.5497418753754849E+00 + -0.5500293501955326E+00 + -0.5503147118953578E+00 + -0.5505979794652792E+00 + -0.5508791720872387E+00 + -0.5511583089998084E+00 + -0.5514354096423315E+00 + -0.5517104935328044E+00 + -0.5519835799933554E+00 + -0.5522546878104827E+00 + -0.5525238357117117E+00 + -0.5527910428652103E+00 + -0.5530563290203575E+00 + -0.5533197139671535E+00 + -0.5535812172751086E+00 + -0.5538408583630361E+00 + -0.5540986565064774E+00 + -0.5543546300639568E+00 + -0.5546087970667243E+00 + -0.5548611716020732E+00 + -0.5551117564528491E+00 + -0.5553605524091160E+00 + -0.5556075608774314E+00 + -0.5558527841673920E+00 + -0.5560962246216125E+00 + -0.5563378839460223E+00 + -0.5565777633506553E+00 + -0.5568158641360885E+00 + -0.5570521882728158E+00 + -0.5572867380041943E+00 + -0.5575195154057488E+00 + -0.5577505220104663E+00 + -0.5579797592504039E+00 + -0.5582072288615295E+00 + -0.5584329330687497E+00 + -0.5586568741124625E+00 + -0.5588790536737154E+00 + -0.5590994729545979E+00 + -0.5593181332626234E+00 + -0.5595350367835184E+00 + -0.5597501860982085E+00 + -0.5599635834911767E+00 + -0.5601752301838960E+00 + -0.5603851271702346E+00 + -0.5605932759341060E+00 + -0.5607996788292244E+00 + -0.5610043382871227E+00 + -0.5612072564377383E+00 + -0.5614084351272664E+00 + -0.5616078761629203E+00 + -0.5618055811001238E+00 + -0.5620015513709193E+00 + -0.5621957885502837E+00 + -0.5623882947719713E+00 + -0.5625790723076685E+00 + -0.5627681231900199E+00 + -0.5629554489796302E+00 + -0.5631410512004673E+00 + -0.5633249317696314E+00 + -0.5635070930106371E+00 + -0.5636875371976407E+00 + -0.5638662659418045E+00 + -0.5640432804931267E+00 + -0.5642185823183440E+00 + -0.5643921738427747E+00 + -0.5645640577542005E+00 + -0.5647342362331280E+00 + -0.5649027103565329E+00 + -0.5650694810898896E+00 + -0.5652345503099054E+00 + -0.5653979209279195E+00 + -0.5655595958024696E+00 + -0.5657195766056370E+00 + -0.5658778642957878E+00 + -0.5660344600628871E+00 + -0.5661893662686373E+00 + -0.5663425856332664E+00 + -0.5664941204994153E+00 + -0.5666439722991658E+00 + -0.5667921423457499E+00 + -0.5669386324098444E+00 + -0.5670834448323612E+00 + -0.5672265819605455E+00 + -0.5673680457527608E+00 + -0.5675078379103785E+00 + -0.5676459601617792E+00 + -0.5677824143961669E+00 + -0.5679172025593441E+00 + -0.5680503267096364E+00 + -0.5681817891995291E+00 + -0.5683115924205406E+00 + -0.5684397382401189E+00 + -0.5685662278056745E+00 + -0.5686910622907714E+00 + -0.5688142439250916E+00 + -0.5689357757098201E+00 + -0.5690556604532731E+00 + -0.5691738996645275E+00 + -0.5692904943652811E+00 + -0.5694054459724864E+00 + -0.5695187570675856E+00 + -0.5696304304387470E+00 + -0.5697404683317674E+00 + -0.5698488721722852E+00 + -0.5699556433573076E+00 + -0.5700607838785042E+00 + -0.5701642962051391E+00 + -0.5702661827436913E+00 + -0.5703664453631222E+00 + -0.5704650857097183E+00 + -0.5705621055962573E+00 + -0.5706575073780891E+00 + -0.5707512935194947E+00 + -0.5708434661484541E+00 + -0.5709340268321297E+00 + -0.5710229771103200E+00 + -0.5711103189569880E+00 + -0.5711960547291142E+00 + -0.5712801867793429E+00 + -0.5713627173070818E+00 + -0.5714436484425940E+00 + -0.5715229822128841E+00 + -0.5716007202618227E+00 + -0.5716768641514879E+00 + -0.5717514158128079E+00 + -0.5718243778500886E+00 + -0.5718957529211385E+00 + -0.5719655432220962E+00 + -0.5720337505021952E+00 + -0.5721003765318212E+00 + -0.5721654234019837E+00 + -0.5722288933686422E+00 + -0.5722907886282701E+00 + -0.5723511111211030E+00 + -0.5724098627249397E+00 + -0.5724670454139362E+00 + -0.5725226613542517E+00 + -0.5725767127358404E+00 + -0.5726292017023395E+00 + -0.5726801303479458E+00 + -0.5727295007744142E+00 + -0.5727773151566858E+00 + -0.5728235757121604E+00 + -0.5728682846080910E+00 + -0.5729114437722798E+00 + -0.5729530550674715E+00 + -0.5729931205309194E+00 + -0.5730316425863950E+00 + -0.5730686237041186E+00 + -0.5731040660907310E+00 + -0.5731379716444515E+00 + -0.5731703422666328E+00 + -0.5732011800605877E+00 + -0.5732304872559362E+00 + -0.5732582660827527E+00 + -0.5732845187522687E+00 + -0.5733092474716164E+00 + -0.5733324543959164E+00 + -0.5733541415474458E+00 + -0.5733743109322097E+00 + -0.5733929646191461E+00 + -0.5734101047572012E+00 + -0.5734257335198347E+00 + -0.5734398532918529E+00 + -0.5734524666032906E+00 + -0.5734635758866710E+00 + -0.5734731829952593E+00 + -0.5734812895815661E+00 + -0.5734878975336374E+00 + -0.5734930093815591E+00 + -0.5734966277601828E+00 + -0.5734987549810795E+00 + -0.5734993928982686E+00 + -0.5734985433660959E+00 + -0.5734962087092618E+00 + -0.5734923916063170E+00 + -0.5734870946309365E+00 + -0.5734803196258978E+00 + -0.5734720681518604E+00 + -0.5734623420898972E+00 + -0.5734511442936249E+00 + -0.5734384777928121E+00 + -0.5734243449534214E+00 + -0.5734087471087243E+00 + -0.5733916855693622E+00 + -0.5733731627210991E+00 + -0.5733531818373670E+00 + -0.5733317460451679E+00 + -0.5733088572305691E+00 + -0.5732845167472911E+00 + -0.5732587262132533E+00 + -0.5732314881427865E+00 + -0.5732028052402002E+00 + -0.5731726800500747E+00 + -0.5731411148415246E+00 + -0.5731081118539301E+00 + -0.5730736732264756E+00 + -0.5730378010077692E+00 + -0.5730004972890969E+00 + -0.5729617645077489E+00 + -0.5729216052671998E+00 + -0.5728800220837541E+00 + -0.5728370171327729E+00 + -0.5727925925114605E+00 + -0.5727467503296041E+00 + -0.5726994927183399E+00 + -0.5726508218218854E+00 + -0.5726007399764519E+00 + -0.5725492497094492E+00 + -0.5724963535511327E+00 + -0.5724420539606951E+00 + -0.5723863533614103E+00 + -0.5723292540758001E+00 + -0.5722707579954511E+00 + -0.5722108669029939E+00 + -0.5721495829537091E+00 + -0.5720869090761102E+00 + -0.5720228482757975E+00 + -0.5719574029527498E+00 + -0.5718905748442602E+00 + -0.5718223657213510E+00 + -0.5717527780140443E+00 + -0.5716818145354250E+00 + -0.5716094779842766E+00 + -0.5715357704910757E+00 + -0.5714606940230052E+00 + -0.5713842507826882E+00 + -0.5713064435114862E+00 + -0.5712272750154438E+00 + -0.5711467476572764E+00 + -0.5710648632663999E+00 + -0.5709816236946917E+00 + -0.5708970313892142E+00 + -0.5708110891779564E+00 + -0.5707237997912216E+00 + -0.5706351654043747E+00 + -0.5705451880146637E+00 + -0.5704538698402134E+00 + -0.5703612136585747E+00 + -0.5702672223265561E+00 + -0.5701718982480016E+00 + -0.5700752432276125E+00 + -0.5699772590882718E+00 + -0.5698779484004099E+00 + -0.5697773142603962E+00 + -0.5696753596400054E+00 + -0.5695720867060675E+00 + -0.5694674973365627E+00 + -0.5693615935558896E+00 + -0.5692543777992466E+00 + -0.5691458525781829E+00 + -0.5690360205003644E+00 + -0.5689248843116972E+00 + -0.5688124467417666E+00 + -0.5686987100717507E+00 + -0.5685836762371347E+00 + -0.5684673472522414E+00 + -0.5683497256898768E+00 + -0.5682308143482636E+00 + -0.5681106159523615E+00 + -0.5679891329883379E+00 + -0.5678663678970361E+00 + -0.5677423230672790E+00 + -0.5676170008030574E+00 + -0.5674904034097680E+00 + -0.5673625333091902E+00 + -0.5672333930223080E+00 + -0.5671029850782137E+00 + -0.5669713120246282E+00 + -0.5668383764191537E+00 + -0.5667041807615748E+00 + -0.5665687273421884E+00 + -0.5664320184095755E+00 + -0.5662940563845411E+00 + -0.5661548439891017E+00 + -0.5660143839743984E+00 + -0.5658726790081461E+00 + -0.5657297316804741E+00 + -0.5655855445392733E+00 + -0.5654401197903209E+00 + -0.5652934594730215E+00 + -0.5651455657813863E+00 + -0.5649964415086144E+00 + -0.5648460895941216E+00 + -0.5646945127415284E+00 + -0.5645417131934991E+00 + -0.5643876931544208E+00 + -0.5642324551282298E+00 + -0.5640760019255733E+00 + -0.5639183363584024E+00 + -0.5637594610980168E+00 + -0.5635993787409777E+00 + -0.5634380918194908E+00 + -0.5632756025803535E+00 + -0.5631119131956158E+00 + -0.5629470259729251E+00 + -0.5627809435079067E+00 + -0.5626136684378926E+00 + -0.5624452034587877E+00 + -0.5622755513320187E+00 + -0.5621047148145307E+00 + -0.5619326965529542E+00 + -0.5617594991292992E+00 + -0.5615851251122679E+00 + -0.5614095769996484E+00 + -0.5612328572696551E+00 + -0.5610549683707845E+00 + -0.5608759126772317E+00 + -0.5606956925619987E+00 + -0.5605143106549805E+00 + -0.5603317699029184E+00 + -0.5601480732396192E+00 + -0.5599632231794813E+00 + -0.5597772219623693E+00 + -0.5595900719291027E+00 + -0.5594017759794127E+00 + -0.5592123372021140E+00 + -0.5590217584123797E+00 + -0.5588300417002483E+00 + -0.5586371890527891E+00 + -0.5584432030112324E+00 + -0.5582480868687431E+00 + -0.5580518439226440E+00 + -0.5578544767560601E+00 + -0.5576559874367820E+00 + -0.5574563781082614E+00 + -0.5572556514265324E+00 + -0.5570538102403310E+00 + -0.5568508573307801E+00 + -0.5566467952749697E+00 + -0.5564416266185736E+00 + -0.5562353540911226E+00 + -0.5560279806954900E+00 + -0.5558195094316507E+00 + -0.5556099428614417E+00 + -0.5553992831991796E+00 + -0.5551875327042637E+00 + -0.5549746939904176E+00 + -0.5547607698193380E+00 + -0.5545457629886283E+00 + -0.5543296764042893E+00 + -0.5541125129945765E+00 + -0.5538942755403554E+00 + -0.5536749665780763E+00 + -0.5534545886239615E+00 + -0.5532331441981828E+00 + -0.5530106358247032E+00 + -0.5527870660646599E+00 + -0.5525624377418785E+00 + -0.5523367538018382E+00 + -0.5521100171705477E+00 + -0.5518822306935594E+00 + -0.5516533971982046E+00 + -0.5514235192895002E+00 + -0.5511925991670516E+00 + -0.5509606390198489E+00 + -0.5507276416793601E+00 + -0.5504936105932830E+00 + -0.5502585491299246E+00 + -0.5500224597479693E+00 + -0.5497853444480856E+00 + -0.5495472054883973E+00 + -0.5493080461694597E+00 + -0.5490678700525447E+00 + -0.5488266801839412E+00 + -0.5485844785762178E+00 + -0.5483412671453084E+00 + -0.5480970484287862E+00 + -0.5478518256188590E+00 + -0.5476056019076575E+00 + -0.5473583801615786E+00 + -0.5471101630668350E+00 + -0.5468609533247407E+00 + -0.5466107537034000E+00 + -0.5463595669918991E+00 + -0.5461073960289187E+00 + -0.5458542437592993E+00 + -0.5456001131336735E+00 + -0.5453450067715911E+00 + -0.5450889269090959E+00 + -0.5448318758332116E+00 + -0.5445738565951924E+00 + -0.5443148727167237E+00 + -0.5440549275460037E+00 + -0.5437940235176487E+00 + -0.5435321627842583E+00 + -0.5432693478023377E+00 + -0.5430055817688027E+00 + -0.5427408679842100E+00 + -0.5424752093736136E+00 + -0.5422086083838336E+00 + -0.5419410674746167E+00 + -0.5416725896217259E+00 + -0.5414031781506875E+00 + -0.5411328362572940E+00 + -0.5408615663636340E+00 + -0.5405893706260700E+00 + -0.5403162515659700E+00 + -0.5400422126914086E+00 + -0.5397672576637954E+00 + -0.5394913894464308E+00 + -0.5392146100255648E+00 + -0.5389369213818773E+00 + -0.5386583264230154E+00 + -0.5383788287465514E+00 + -0.5380984318525054E+00 + -0.5378171385144162E+00 + -0.5375349512284292E+00 + -0.5372518726000626E+00 + -0.5369679055608188E+00 + -0.5366830531053109E+00 + -0.5363973182083167E+00 + -0.5361107038125272E+00 + -0.5358232128526214E+00 + -0.5355348481361740E+00 + -0.5352456123673970E+00 + -0.5349555082750674E+00 + -0.5346645387646499E+00 + -0.5343727068184712E+00 + -0.5340800154085207E+00 + -0.5337864674644068E+00 + -0.5334920659091436E+00 + -0.5331968136685298E+00 + -0.5329007136710945E+00 + -0.5326037688500533E+00 + -0.5323059821764527E+00 + -0.5320073566556025E+00 + -0.5317078952747131E+00 + -0.5314076008508648E+00 + -0.5311064761224805E+00 + -0.5308045238766518E+00 + -0.5305017470763126E+00 + -0.5301981487276414E+00 + -0.5298937318453472E+00 + -0.5295884994575354E+00 + -0.5292824545892824E+00 + -0.5289756001095606E+00 + -0.5286679387334204E+00 + -0.5283594732080205E+00 + -0.5280502066008770E+00 + -0.5277401421475360E+00 + -0.5274292830576033E+00 + -0.5271176324174065E+00 + -0.5268051932823648E+00 + -0.5264919685469398E+00 + -0.5261779607707969E+00 + -0.5258631724883449E+00 + -0.5255476066058177E+00 + -0.5252312664320220E+00 + -0.5249141552796800E+00 + -0.5245962762739712E+00 + -0.5242776324337526E+00 + -0.5239582267356796E+00 + -0.5236380619567619E+00 + -0.5233171408190823E+00 + -0.5229954662577223E+00 + -0.5226730416896991E+00 + -0.5223498705858829E+00 + -0.5220259559157174E+00 + -0.5217013000513586E+00 + -0.5213759054097450E+00 + -0.5210497752846573E+00 + -0.5207229135251610E+00 + -0.5203953237676203E+00 + -0.5200670084920242E+00 + -0.5197379698090618E+00 + -0.5194082102378442E+00 + -0.5190777333250725E+00 + -0.5187465427726760E+00 + -0.5184146420045504E+00 + -0.5180820340799626E+00 + -0.5177487220171132E+00 + -0.5174147085905726E+00 + -0.5170799964062503E+00 + -0.5167445881678407E+00 + -0.5164084871500051E+00 + -0.5160716968331661E+00 + -0.5157342205423470E+00 + -0.5153960611613305E+00 + -0.5150572215016902E+00 + -0.5147177044851779E+00 + -0.5143775131908273E+00 + -0.5140366507257751E+00 + -0.5136951203966079E+00 + -0.5133529256631782E+00 + -0.5130100698977666E+00 + -0.5126665558675247E+00 + -0.5123223861014513E+00 + -0.5119775633526354E+00 + -0.5116320910674745E+00 + -0.5112859728242219E+00 + -0.5109392118844179E+00 + -0.5105918110065387E+00 + -0.5102437729334966E+00 + -0.5098951008663289E+00 + -0.5095457983916446E+00 + -0.5091958690188432E+00 + -0.5088453155949964E+00 + -0.5084941406780011E+00 + -0.5081423470104571E+00 + -0.5077899379719653E+00 + -0.5074369170805597E+00 + -0.5070832877223492E+00 + -0.5067290530511130E+00 + -0.5063742161957727E+00 + -0.5060187802062051E+00 + -0.5056627480595004E+00 + -0.5053061227526738E+00 + -0.5049489074477796E+00 + -0.5045911053884185E+00 + -0.5042327198061431E+00 + -0.5038737538758018E+00 + -0.5035142107610263E+00 + -0.5031540936588208E+00 + -0.5027934058277265E+00 + -0.5024321505298984E+00 + -0.5020703308899709E+00 + -0.5017079498930435E+00 + -0.5013450105398599E+00 + -0.5009815160099633E+00 + -0.5006174695799935E+00 + -0.5002528745191125E+00 + -0.4998877340509865E+00 + -0.4995220513891831E+00 + -0.4991558297501346E+00 + -0.4987890723531369E+00 + -0.4984217824215230E+00 + -0.4980539632144556E+00 + -0.4976856180306887E+00 + -0.4973167501571802E+00 + -0.4969473627119559E+00 + -0.4965774587144066E+00 + -0.4962070412263974E+00 + -0.4958361135088817E+00 + -0.4954646788841714E+00 + -0.4950927406513822E+00 + -0.4947203020511862E+00 + -0.4943473663194437E+00 + -0.4939739367332495E+00 + -0.4936000166195279E+00 + -0.4932256092982531E+00 + -0.4928507179428326E+00 + -0.4924753456323171E+00 + -0.4920994954661825E+00 + -0.4917231706498147E+00 + -0.4913463744258602E+00 + -0.4909691101474185E+00 + -0.4905913814503466E+00 + -0.4902131920080496E+00 + -0.4898345450549730E+00 + -0.4894554432339376E+00 + -0.4890758892112596E+00 + -0.4886958865009138E+00 + -0.4883154392243672E+00 + -0.4879345512336226E+00 + -0.4875532246819653E+00 + -0.4871714610979067E+00 + -0.4867892622228116E+00 + -0.4864066304127118E+00 + -0.4860235681333121E+00 + -0.4856400777283657E+00 + -0.4852561613601501E+00 + -0.4848718211906108E+00 + -0.4844870595775634E+00 + -0.4841018790333835E+00 + -0.4837162819680573E+00 + -0.4833302700703969E+00 + -0.4829438447355103E+00 + -0.4825570077185740E+00 + -0.4821697619299329E+00 + -0.4817821105036827E+00 + -0.4813940559188151E+00 + -0.4810055995856408E+00 + -0.4806167428628498E+00 + -0.4802274879250732E+00 + -0.4798378376526787E+00 + -0.4794477948421023E+00 + -0.4790573614747903E+00 + -0.4786665391645218E+00 + -0.4782753297471794E+00 + -0.4778837358543181E+00 + -0.4774917602929865E+00 + -0.4770994055172342E+00 + -0.4767066733456334E+00 + -0.4763135655470592E+00 + -0.4759200842088583E+00 + -0.4755262317209489E+00 + -0.4751320104942120E+00 + -0.4747374230005808E+00 + -0.4743424717435648E+00 + -0.4739471590565630E+00 + -0.4735514865894000E+00 + -0.4731554558268430E+00 + -0.4727590687519346E+00 + -0.4723623283331492E+00 + -0.4719652376317990E+00 + -0.4715677990833918E+00 + -0.4711700144704881E+00 + -0.4707718855801184E+00 + -0.4703734145187346E+00 + -0.4699746035697920E+00 + -0.4695754550255905E+00 + -0.4691759712028380E+00 + -0.4687761544266401E+00 + -0.4683760070655300E+00 + -0.4679755315807085E+00 + -0.4675747304382777E+00 + -0.4671736058336697E+00 + -0.4667721596518652E+00 + -0.4663703937996172E+00 + -0.4659683105852579E+00 + -0.4655659125620288E+00 + -0.4651632022210971E+00 + -0.4647601817218587E+00 + -0.4643568531231504E+00 + -0.4639532186240328E+00 + -0.4635492807606535E+00 + -0.4631450421118873E+00 + -0.4627405049286097E+00 + -0.4623356710481818E+00 + -0.4619305423285613E+00 + -0.4615251211848034E+00 + -0.4611194104055257E+00 + -0.4607134127047418E+00 + -0.4603071303376961E+00 + -0.4599005654037808E+00 + -0.4594937200543254E+00 + -0.4590865965774446E+00 + -0.4586791972844214E+00 + -0.4582715244373546E+00 + -0.4578635802295306E+00 + -0.4574553668628197E+00 + -0.4570468867079820E+00 + -0.4566381422606477E+00 + -0.4562291359920797E+00 + -0.4558198701954756E+00 + -0.4554103470975019E+00 + -0.4550005689250794E+00 + -0.4545905379026283E+00 + -0.4541802562576047E+00 + -0.4537697263335482E+00 + -0.4533589506497901E+00 + -0.4529479317292926E+00 + -0.4525366718869529E+00 + -0.4521251732696282E+00 + -0.4517134380648455E+00 + -0.4513014687633011E+00 + -0.4508892679845777E+00 + -0.4504768382153900E+00 + -0.4500641814959637E+00 + -0.4496512997783169E+00 + -0.4492381952276958E+00 + -0.4488248703657526E+00 + -0.4484113277472752E+00 + -0.4479975698772997E+00 + -0.4475835992168408E+00 + -0.4471694182115711E+00 + -0.4467550291875217E+00 + -0.4463404344159684E+00 + -0.4459256361810184E+00 + -0.4455106368102937E+00 + -0.4450954386427194E+00 + -0.4446800440008529E+00 + -0.4442644551753944E+00 + -0.4438486744587914E+00 + -0.4434327042233249E+00 + -0.4430165469193026E+00 + -0.4426002050184602E+00 + -0.4421836811361139E+00 + -0.4417669779625285E+00 + -0.4413500980142895E+00 + -0.4409330430855937E+00 + -0.4405158147896600E+00 + -0.4400984152443240E+00 + -0.4396808475954661E+00 + -0.4392631150909489E+00 + -0.4388452203124050E+00 + -0.4384271651264850E+00 + -0.4380089514175486E+00 + -0.4375905815767119E+00 + -0.4371720582837409E+00 + -0.4367533841805277E+00 + -0.4363345617130056E+00 + -0.4359155932718581E+00 + -0.4354964811159920E+00 + -0.4350772272048017E+00 + -0.4346578334772945E+00 + -0.4342383024820286E+00 + -0.4338186374856766E+00 + -0.4333988417063456E+00 + -0.4329789173364850E+00 + -0.4325588659273531E+00 + -0.4321386892282252E+00 + -0.4317183900433855E+00 + -0.4312979715134061E+00 + -0.4308774364424935E+00 + -0.4304567867910796E+00 + -0.4300360244042445E+00 + -0.4296151516257435E+00 + -0.4291941714447404E+00 + -0.4287730868514303E+00 + -0.4283519002778403E+00 + -0.4279306137721354E+00 + -0.4275092294134344E+00 + -0.4270877494928015E+00 + -0.4266661763775534E+00 + -0.4262445125635206E+00 + -0.4258227608987807E+00 + -0.4254009242870655E+00 + -0.4249790053131184E+00 + -0.4245570061064774E+00 + -0.4241349287732781E+00 + -0.4237127755652804E+00 + -0.4232905488449770E+00 + -0.4228682510387276E+00 + -0.4224458849521777E+00 + -0.4220234535409350E+00 + -0.4216009595589648E+00 + -0.4211784051344391E+00 + -0.4207557922813510E+00 + -0.4203331232888184E+00 + -0.4199104008761875E+00 + -0.4194876277909289E+00 + -0.4190648065910535E+00 + -0.4186419396771735E+00 + -0.4182190294376588E+00 + -0.4177960781968887E+00 + -0.4173730882524758E+00 + -0.4169500620557132E+00 + -0.4165270025795561E+00 + -0.4161039129044673E+00 + -0.4156807956421865E+00 + -0.4152576525937256E+00 + -0.4148344855160516E+00 + -0.4144112968580647E+00 + -0.4139880897017044E+00 + -0.4135648670899505E+00 + -0.4131416315518193E+00 + -0.4127183853704835E+00 + -0.4122951308781587E+00 + -0.4118718705948774E+00 + -0.4114486070860389E+00 + -0.4110253428273812E+00 + -0.4106020801222282E+00 + -0.4101788212740050E+00 + -0.4097555690021084E+00 + -0.4093323264438336E+00 + -0.4089090966549182E+00 + -0.4084858817725558E+00 + -0.4080626834475915E+00 + -0.4076395036210204E+00 + -0.4072163454794179E+00 + -0.4067932125382616E+00 + -0.4063701077848335E+00 + -0.4059470330933394E+00 + -0.4055239902172241E+00 + -0.4051009814247196E+00 + -0.4046780095519679E+00 + -0.4042550774537689E+00 + -0.4038321878580559E+00 + -0.4034093434194309E+00 + -0.4029865467575588E+00 + -0.4025638003240380E+00 + -0.4021411065225616E+00 + -0.4017184678703592E+00 + -0.4012958871461861E+00 + -0.4008733671606386E+00 + -0.4004509104915776E+00 + -0.4000285194342858E+00 + -0.3996061962733385E+00 + -0.3991839433490874E+00 + -0.3987617630384243E+00 + -0.3983396578460512E+00 + -0.3979176309396149E+00 + -0.3974956857051890E+00 + -0.3970738251298085E+00 + -0.3966520511688882E+00 + -0.3962303656272880E+00 + -0.3958087708072278E+00 + -0.3953872696731338E+00 + -0.3949658652061507E+00 + -0.3945445599754598E+00 + -0.3941233562588277E+00 + -0.3937022564322222E+00 + -0.3932812634776872E+00 + -0.3928603805994121E+00 + -0.3924396107087226E+00 + -0.3920189558751549E+00 + -0.3915984180265993E+00 + -0.3911779994291015E+00 + -0.3907577028435425E+00 + -0.3903375310828003E+00 + -0.3899174871252895E+00 + -0.3894975740789084E+00 + -0.3890777949345421E+00 + -0.3886581518782912E+00 + -0.3882386467718419E+00 + -0.3878192817610508E+00 + -0.3874000598936451E+00 + -0.3869809843932640E+00 + -0.3865620581864068E+00 + -0.3861432837188928E+00 + -0.3857246634026468E+00 + -0.3853061997944522E+00 + -0.3848878955754105E+00 + -0.3844697534085915E+00 + -0.3840517757825479E+00 + -0.3836339651087071E+00 + -0.3832163239583419E+00 + -0.3827988554640612E+00 + -0.3823815628788899E+00 + -0.3819644489862654E+00 + -0.3815475157333092E+00 + -0.3811307650156931E+00 + -0.3807141994193844E+00 + -0.3802978221798334E+00 + -0.3798816364999336E+00 + -0.3794656450872678E+00 + -0.3790498504053212E+00 + -0.3786342549411228E+00 + -0.3782188612760062E+00 + -0.3778036720165138E+00 + -0.3773886898495691E+00 + -0.3769739176178755E+00 + -0.3765593581782911E+00 + -0.3761450142492730E+00 + -0.3757308884062125E+00 + -0.3753169832258282E+00 + -0.3749033013443407E+00 + -0.3744898454313184E+00 + -0.3740766181457074E+00 + -0.3736636220921054E+00 + -0.3732508598619454E+00 + -0.3728383341186811E+00 + -0.3724260476795940E+00 + -0.3720140033832412E+00 + -0.3716022040529368E+00 + -0.3711906524944258E+00 + -0.3707793515094858E+00 + -0.3703683038499335E+00 + -0.3699575122382861E+00 + -0.3695469793368246E+00 + -0.3691367075083610E+00 + -0.3687266990264935E+00 + -0.3683169564493234E+00 + -0.3679074830144861E+00 + -0.3674982820463782E+00 + -0.3670893563426639E+00 + -0.3666807080436239E+00 + -0.3662723393144505E+00 + -0.3658642531026644E+00 + -0.3654564528750414E+00 + -0.3650489419054716E+00 + -0.3646417223561600E+00 + -0.3642347960143896E+00 + -0.3638281651607059E+00 + -0.3634218333842254E+00 + -0.3630158044717756E+00 + -0.3626100813650950E+00 + -0.3622046658465706E+00 + -0.3617995597028588E+00 + -0.3613947659226468E+00 + -0.3609902883716867E+00 + -0.3605861306861377E+00 + -0.3601822949710797E+00 + -0.3597787827568211E+00 + -0.3593755960555305E+00 + -0.3589727383006882E+00 + -0.3585702131804814E+00 + -0.3581680239424569E+00 + -0.3577661731684446E+00 + -0.3573646633860045E+00 + -0.3569634971124116E+00 + -0.3565626768570370E+00 + -0.3561622051694957E+00 + -0.3557620848651853E+00 + -0.3553623188714652E+00 + -0.3549629101335460E+00 + -0.3545638616492985E+00 + -0.3541651764255246E+00 + -0.3537668572168160E+00 + -0.3533689063577005E+00 + -0.3529713261746761E+00 + -0.3525741195526181E+00 + -0.3521772898684455E+00 + -0.3517808404284817E+00 + -0.3513847738566450E+00 + -0.3509890924629856E+00 + -0.3505937986866361E+00 + -0.3501988954395014E+00 + -0.3498043857427303E+00 + -0.3494102726105405E+00 + -0.3490165590427381E+00 + -0.3486232480259572E+00 + -0.3482303422570526E+00 + -0.3478378441525716E+00 + -0.3474457561699069E+00 + -0.3470540812041517E+00 + -0.3466628223744666E+00 + -0.3462719827169396E+00 + -0.3458815649165292E+00 + -0.3454915715715691E+00 + -0.3451020054507572E+00 + -0.3447128696650453E+00 + -0.3443241673537037E+00 + -0.3439359012784459E+00 + -0.3435480737996397E+00 + -0.3431606873214851E+00 + -0.3427737448488144E+00 + -0.3423872497251113E+00 + -0.3420012052100817E+00 + -0.3416156141593147E+00 + -0.3412304793151022E+00 + -0.3408458033435045E+00 + -0.3404615887382021E+00 + -0.3400778379832050E+00 + -0.3396945539424292E+00 + -0.3393117399229704E+00 + -0.3389293992289614E+00 + -0.3385475348350071E+00 + -0.3381661495122874E+00 + -0.3377852459918713E+00 + -0.3374048268104772E+00 + -0.3370248944454520E+00 + -0.3366454516089791E+00 + -0.3362665015910651E+00 + -0.3358880477634703E+00 + -0.3355100932042938E+00 + -0.3351326406143136E+00 + -0.3347556926807061E+00 + -0.3343792522110942E+00 + -0.3340033220958473E+00 + -0.3336279052132238E+00 + -0.3332530043556781E+00 + -0.3328786222869672E+00 + -0.3325047618500460E+00 + -0.3321314261017154E+00 + -0.3317586181342200E+00 + -0.3313863409218343E+00 + -0.3310145972716205E+00 + -0.3306433899808275E+00 + -0.3302727218641595E+00 + -0.3299025957498785E+00 + -0.3295330144879118E+00 + -0.3291639810528318E+00 + -0.3287954984687946E+00 + -0.3284275697785307E+00 + -0.3280601980768548E+00 + -0.3276933864670725E+00 + -0.3273271378714832E+00 + -0.3269614549303872E+00 + -0.3265963402667311E+00 + -0.3262317965945514E+00 + -0.3258678267033029E+00 + -0.3255044334477102E+00 + -0.3251416201157136E+00 + -0.3247793901826884E+00 + -0.3244177469008700E+00 + -0.3240566927597400E+00 + -0.3236962300946459E+00 + -0.3233363617034188E+00 + -0.3229770911731997E+00 + -0.3226184221297757E+00 + -0.3222603574118880E+00 + -0.3219028991454600E+00 + -0.3215460495485982E+00 + -0.3211898117631744E+00 + -0.3208341893712931E+00 + -0.3204791858052692E+00 + -0.3201248039166993E+00 + -0.3197710464226687E+00 + -0.3194179161328974E+00 + -0.3190654160301241E+00 + -0.3187135491126413E+00 + -0.3183623182594678E+00 + -0.3180117262309471E+00 + -0.3176617758337600E+00 + -0.3173124703194712E+00 + -0.3169638131742165E+00 + -0.3166158077427708E+00 + -0.3162684567609531E+00 + -0.3159217628067466E+00 + -0.3155757285580066E+00 + -0.3152303568986257E+00 + -0.3148856507478261E+00 + -0.3145416132437080E+00 + -0.3141982477634144E+00 + -0.3138555576698882E+00 + -0.3135135460421077E+00 + -0.3131722157954787E+00 + -0.3128315696800679E+00 + -0.3124916096757892E+00 + -0.3121523375323764E+00 + -0.3118137535274405E+00 + -0.3114758545510498E+00 + -0.3111386370255180E+00 + -0.3108020976755132E+00 + -0.3104662335893353E+00 + -0.3101310418699286E+00 + -0.3097965195668053E+00 + -0.3094626636944581E+00 + -0.3091294712199018E+00 + -0.3087969388764982E+00 + -0.3084650633201568E+00 + -0.3081338413598155E+00 + -0.3078032701988100E+00 + -0.3074733470965984E+00 + -0.3071440691609726E+00 + -0.3068154333003812E+00 + -0.3064874364017475E+00 + -0.3061600752789619E+00 + -0.3058333466938378E+00 + -0.3055072474329608E+00 + -0.3051817744463739E+00 + -0.3048569247413902E+00 + -0.3045326952985825E+00 + -0.3042090830274760E+00 + -0.3038860848228428E+00 + -0.3035636975723052E+00 + -0.3032419181543217E+00 + -0.3029207434464293E+00 + -0.3026001703575466E+00 + -0.3022801958202051E+00 + -0.3019608167584401E+00 + -0.3016420300511259E+00 + -0.3013238325574616E+00 + -0.3010062211392853E+00 + -0.3006891926726007E+00 + -0.3003727440343301E+00 + -0.3000568721175845E+00 + -0.2997415738429223E+00 + -0.2994268461266292E+00 + -0.2991126858070563E+00 + -0.2987990896560469E+00 + -0.2984860544561545E+00 + -0.2981735770999113E+00 + -0.2978616545271047E+00 + -0.2975502836508222E+00 + -0.2972394612966058E+00 + -0.2969291842690556E+00 + -0.2966194493933521E+00 + -0.2963102535329377E+00 + -0.2960015935513242E+00 + -0.2956934662802451E+00 + -0.2953858685216406E+00 + -0.2950787970796346E+00 + -0.2947722488040360E+00 + -0.2944662205656785E+00 + -0.2941607092196506E+00 + -0.2938557115667821E+00 + -0.2935512243928220E+00 + -0.2932472444982278E+00 + -0.2929437687145394E+00 + -0.2926407938734273E+00 + -0.2923383167778459E+00 + -0.2920363342014241E+00 + -0.2917348429189091E+00 + -0.2914338397486720E+00 + -0.2911333215314511E+00 + -0.2908332850941156E+00 + -0.2905337272111664E+00 + -0.2902346446410377E+00 + -0.2899360341526903E+00 + -0.2896378925407278E+00 + -0.2893402166004708E+00 + -0.2890430031164870E+00 + -0.2887462488615888E+00 + -0.2884499506069302E+00 + -0.2881541051366152E+00 + -0.2878587092413929E+00 + -0.2875637596973699E+00 + -0.2872692532195059E+00 + -0.2869751865025718E+00 + -0.2866815562787846E+00 + -0.2863883593728873E+00 + -0.2860955926189029E+00 + -0.2858032527821739E+00 + -0.2855113365438360E+00 + -0.2852198405827575E+00 + -0.2849287616403377E+00 + -0.2846380964981004E+00 + -0.2843478419312456E+00 + -0.2840579946884624E+00 + -0.2837685515077568E+00 + -0.2834795091101956E+00 + -0.2831908641766914E+00 + -0.2829026133802234E+00 + -0.2826147534274961E+00 + -0.2823272810719590E+00 + -0.2820401930664642E+00 + -0.2817534861410943E+00 + -0.2814671570087541E+00 + -0.2811812023757572E+00 + -0.2808956189240812E+00 + -0.2806104033249761E+00 + -0.2803255522652075E+00 + -0.2800410624819747E+00 + -0.2797569307186778E+00 + -0.2794731536733186E+00 + -0.2791897279774134E+00 + -0.2789066502580344E+00 + -0.2786239171939942E+00 + -0.2783415255046324E+00 + -0.2780594719050437E+00 + -0.2777777530888836E+00 + -0.2774963657393972E+00 + -0.2772153065220239E+00 + -0.2769345720505305E+00 + -0.2766541589268141E+00 + -0.2763740638024686E+00 + -0.2760942834125231E+00 + -0.2758148144929541E+00 + -0.2755356536962401E+00 + -0.2752567976016772E+00 + -0.2749782427941879E+00 + -0.2746999859367632E+00 + -0.2744220237266003E+00 + -0.2741443528422213E+00 + -0.2738669699009668E+00 + -0.2735898715044587E+00 + -0.2733130542664357E+00 + -0.2730365148247701E+00 + -0.2727602498174760E+00 + -0.2724842558794226E+00 + -0.2722085296423560E+00 + -0.2719330677323947E+00 + -0.2716578667479819E+00 + -0.2713829232722679E+00 + -0.2711082338979390E+00 + -0.2708337952644880E+00 + -0.2705596040210103E+00 + -0.2702856567901645E+00 + -0.2700119501443953E+00 + -0.2697384806488307E+00 + -0.2694652448917680E+00 + -0.2691922394860333E+00 + -0.2689194610396690E+00 + -0.2686469061252583E+00 + -0.2683745712944543E+00 + -0.2681024531069793E+00 + -0.2678305481688890E+00 + -0.2675588530972120E+00 + -0.2672873644890709E+00 + -0.2670160789008020E+00 + -0.2667449928808053E+00 + -0.2664741029699681E+00 + -0.2662034057009080E+00 + -0.2659328976088434E+00 + -0.2656625752871112E+00 + -0.2653924353636858E+00 + -0.2651224744463635E+00 + -0.2648526890500308E+00 + -0.2645830756588564E+00 + -0.2643136307758180E+00 + -0.2640443509538190E+00 + -0.2637752327508565E+00 + -0.2635062727172398E+00 + -0.2632374673942275E+00 + -0.2629688133184392E+00 + -0.2627003070044649E+00 + -0.2624319449511469E+00 + -0.2621637236613414E+00 + -0.2618956396738729E+00 + -0.2616276895382685E+00 + -0.2613598697962720E+00 + -0.2610921769730241E+00 + -0.2608246075881202E+00 + -0.2605571581333778E+00 + -0.2602898250628751E+00 + -0.2600226048290232E+00 + -0.2597554939331498E+00 + -0.2594884889122388E+00 + -0.2592215862969709E+00 + -0.2589547825869496E+00 + -0.2586880742682058E+00 + -0.2584214578221048E+00 + -0.2581549297214031E+00 + -0.2578884864350060E+00 + -0.2576221244253261E+00 + -0.2573558401462352E+00 + -0.2570896300529393E+00 + -0.2568234906718434E+00 + -0.2565574185870132E+00 + -0.2562914103312102E+00 + -0.2560254620831943E+00 + -0.2557595698695901E+00 + -0.2554937303387239E+00 + -0.2552279422278991E+00 + -0.2549622047158817E+00 + -0.2546965174135792E+00 + -0.2544308806635746E+00 + -0.2541652948729009E+00 + -0.2538997603262509E+00 + -0.2536342771985610E+00 + -0.2533688456610310E+00 + -0.2531034658856468E+00 + -0.2528381380447967E+00 + -0.2525728623211279E+00 + -0.2523076389353391E+00 + -0.2520424681169145E+00 + -0.2517773500798728E+00 + -0.2515122850092935E+00 + -0.2512472730880986E+00 + -0.2509823145204795E+00 + -0.2507174095315920E+00 + -0.2504525583450045E+00 + -0.2501877611618111E+00 + -0.2499230181714641E+00 + -0.2496583295654910E+00 + -0.2493936955442168E+00 + -0.2491291163102790E+00 + -0.2488645920617556E+00 + -0.2486001229872505E+00 + -0.2483357092751006E+00 + -0.2480713511360388E+00 + -0.2478070488050354E+00 + -0.2475428025131153E+00 + -0.2472786124391672E+00 + -0.2470144787322210E+00 + -0.2467504015583297E+00 + -0.2464863811637155E+00 + -0.2462224178176956E+00 + -0.2459585117559429E+00 + -0.2456946631373579E+00 + -0.2454308721115010E+00 + -0.2451671388681167E+00 + -0.2449034636447260E+00 + -0.2446398466784645E+00 + -0.2443762881697049E+00 + -0.2441127882956320E+00 + -0.2438493472423471E+00 + -0.2435859652435304E+00 + -0.2433226425481370E+00 + -0.2430593793712508E+00 + -0.2427961758423774E+00 + -0.2425330320797209E+00 + -0.2422699482785252E+00 + -0.2420069247347040E+00 + -0.2417439617443209E+00 + -0.2414810595163719E+00 + -0.2412182181993646E+00 + -0.2409554379487168E+00 + -0.2406927189664271E+00 + -0.2404300614711662E+00 + -0.2401674656728951E+00 + -0.2399049317570051E+00 + -0.2396424599053106E+00 + -0.2393800503307638E+00 + -0.2391177032910336E+00 + -0.2388554190437653E+00 + -0.2385931977935405E+00 + -0.2383310397044034E+00 + -0.2380689449433535E+00 + -0.2378069137027128E+00 + -0.2375449461848790E+00 + -0.2372830425994019E+00 + -0.2370212031778005E+00 + -0.2367594281554637E+00 + -0.2364977177385192E+00 + -0.2362360720867583E+00 + -0.2359744913591069E+00 + -0.2357129757690422E+00 + -0.2354515255758781E+00 + -0.2351901410348475E+00 + -0.2349288223608327E+00 + -0.2346675697510689E+00 + -0.2344063833964599E+00 + -0.2341452634661092E+00 + -0.2338842101248784E+00 + -0.2336232235731401E+00 + -0.2333623040730926E+00 + -0.2331014518905791E+00 + -0.2328406672383420E+00 + -0.2325799502801278E+00 + -0.2323193011815499E+00 + -0.2320587201378290E+00 + -0.2317982073585791E+00 + -0.2315377630550323E+00 + -0.2312773874440500E+00 + -0.2310170807439445E+00 + -0.2307568431766359E+00 + -0.2304966749708946E+00 + -0.2302365763552883E+00 + -0.2299765475334102E+00 + -0.2297165886835368E+00 + -0.2294566999838964E+00 + -0.2291968816220849E+00 + -0.2289371337907454E+00 + -0.2286774566956093E+00 + -0.2284178505980665E+00 + -0.2281583157742225E+00 + -0.2278988524518057E+00 + -0.2276394607557527E+00 + -0.2273801408012290E+00 + -0.2271208927971902E+00 + -0.2268617170570096E+00 + -0.2266026138881492E+00 + -0.2263435834793317E+00 + -0.2260846259492303E+00 + -0.2258257414346841E+00 + -0.2255669301635344E+00 + -0.2253081923907634E+00 + -0.2250495283524833E+00 + -0.2247909382403562E+00 + -0.2245324222403675E+00 + -0.2242739805602063E+00 + -0.2240156134340956E+00 + -0.2237573210960669E+00 + -0.2234991037579686E+00 + -0.2232409616172606E+00 + -0.2229828948727991E+00 + -0.2227249037318821E+00 + -0.2224669884046530E+00 + -0.2222091490983622E+00 + -0.2219513860126084E+00 + -0.2216936993461621E+00 + -0.2214360893121239E+00 + -0.2211785561428333E+00 + -0.2209211000705933E+00 + -0.2206637213079546E+00 + -0.2204064200533684E+00 + -0.2201491965067420E+00 + -0.2198920508781133E+00 + -0.2196349833812965E+00 + -0.2193779942242847E+00 + -0.2191210835981059E+00 + -0.2188642516914409E+00 + -0.2186074987269140E+00 + -0.2183508249773089E+00 + -0.2180942307146205E+00 + -0.2178377161346273E+00 + -0.2175812813731959E+00 + -0.2173249265753467E+00 + -0.2170686519575637E+00 + -0.2168124577655592E+00 + -0.2165563442403022E+00 + -0.2163003116070456E+00 + -0.2160443600878875E+00 + -0.2157884898993495E+00 + -0.2155327012488215E+00 + -0.2152769943427561E+00 + -0.2150213693846733E+00 + -0.2147658265755684E+00 + -0.2145103661197405E+00 + -0.2142549882462988E+00 + -0.2139996931956145E+00 + -0.2137444811973635E+00 + -0.2134893524426183E+00 + -0.2132343071139166E+00 + -0.2129793453962257E+00 + -0.2127244674788215E+00 + -0.2124696735543754E+00 + -0.2122149638761624E+00 + -0.2119603387549849E+00 + -0.2117057984878869E+00 + -0.2114513432364767E+00 + -0.2111969730947371E+00 + -0.2109426881891843E+00 + -0.2106884887775907E+00 + -0.2104343751501807E+00 + -0.2101803475659967E+00 + -0.2099264062222441E+00 + -0.2096725513092882E+00 + -0.2094187830266781E+00 + -0.2091651015835366E+00 + -0.2089115071909762E+00 + -0.2086580000740826E+00 + -0.2084045804656816E+00 + -0.2081512485960099E+00 + -0.2078980046831681E+00 + -0.2076448489418947E+00 + -0.2073917815746044E+00 + -0.2071388027566717E+00 + -0.2068859126614055E+00 + -0.2066331115056855E+00 + -0.2063803995562736E+00 + -0.2061277770791687E+00 + -0.2058752443018205E+00 + -0.2056228014282913E+00 + -0.2053704486596263E+00 + -0.2051181861833296E+00 + -0.2048660141828221E+00 + -0.2046139328560464E+00 + -0.2043619424360017E+00 + -0.2041100431608396E+00 + -0.2038582352642912E+00 + -0.2036065189745013E+00 + -0.2033548945187843E+00 + -0.2031033621177415E+00 + -0.2028519219875112E+00 + -0.2026005743400294E+00 + -0.2023493193642069E+00 + -0.2020981572411364E+00 + -0.2018470881662523E+00 + -0.2015961123733687E+00 + -0.2013452301026329E+00 + -0.2010944415891535E+00 + -0.2008437470610360E+00 + -0.2005931467456575E+00 + -0.2003426408663395E+00 + -0.2000922296434414E+00 + -0.1998419132919628E+00 + -0.1995916919939686E+00 + -0.1993415659190620E+00 + -0.1990915352627814E+00 + -0.1988416002978483E+00 + -0.1985917613104904E+00 + -0.1983420185360154E+00 + -0.1980923721321856E+00 + -0.1978428222550312E+00 + -0.1975933691369711E+00 + -0.1973440130722227E+00 + -0.1970947543421079E+00 + -0.1968455931262779E+00 + -0.1965965295616142E+00 + -0.1963475638082467E+00 + -0.1960986961036894E+00 + -0.1958499267014110E+00 + -0.1956012558464601E+00 + -0.1953526837697063E+00 + -0.1951042107002143E+00 + -0.1948558368571745E+00 + -0.1946075624510109E+00 + -0.1943593876926031E+00 + -0.1941113127982288E+00 + -0.1938633379867205E+00 + -0.1936154634744082E+00 + -0.1933676894681366E+00 + -0.1931200161727781E+00 + -0.1928724438093006E+00 + -0.1926249726283414E+00 + -0.1923776028819156E+00 + -0.1921303347799321E+00 + -0.1918831684911989E+00 + -0.1916361041906065E+00 + -0.1913891421204223E+00 + -0.1911422825576242E+00 + -0.1908955257683783E+00 + -0.1906488719729403E+00 + -0.1904023213797972E+00 + -0.1901558741904615E+00 + -0.1899095305921568E+00 + -0.1896632907716048E+00 + -0.1894171549466602E+00 + -0.1891711233685504E+00 + -0.1889251962868273E+00 + -0.1886793739176696E+00 + -0.1884336564583462E+00 + -0.1881880441150421E+00 + -0.1879425371354644E+00 + -0.1876971357791318E+00 + -0.1874518402780356E+00 + -0.1872066508020044E+00 + -0.1869615675143772E+00 + -0.1867165906409185E+00 + -0.1864717204809069E+00 + -0.1862269573283428E+00 + -0.1859823013702125E+00 + -0.1857377527266014E+00 + -0.1854933115447200E+00 + -0.1852489781151858E+00 + -0.1850047527741529E+00 + -0.1847606358042069E+00 + -0.1845166273540153E+00 + -0.1842727275532520E+00 + -0.1840289365904077E+00 + -0.1837852547300907E+00 + -0.1835416822388902E+00 + -0.1832982193431410E+00 + -0.1830548662414945E+00 + -0.1828116231379595E+00 + -0.1825684902698161E+00 + -0.1823254678861455E+00 + -0.1820825562276434E+00 + -0.1818397555116024E+00 + -0.1815970659513474E+00 + -0.1813544877595199E+00 + -0.1811120211477586E+00 + -0.1808696663293207E+00 + -0.1806274235412909E+00 + -0.1803852930388102E+00 + -0.1801432750696549E+00 + -0.1799013698314108E+00 + -0.1796595775020428E+00 + -0.1794178982760806E+00 + -0.1791763323989914E+00 + -0.1789348801258339E+00 + -0.1786935416970875E+00 + -0.1784523173303397E+00 + -0.1782112072408457E+00 + -0.1779702116371053E+00 + -0.1777293307220085E+00 + -0.1774885647065665E+00 + -0.1772479138604395E+00 + -0.1770073784788003E+00 + -0.1767669588249693E+00 + -0.1765266550527617E+00 + -0.1762864672934175E+00 + -0.1760463957420387E+00 + -0.1758064407038643E+00 + -0.1755666024902061E+00 + -0.1753268813150694E+00 + -0.1750872773035279E+00 + -0.1748477905937566E+00 + -0.1746084214547452E+00 + -0.1743691702183225E+00 + -0.1741300371875015E+00 + -0.1738910225537273E+00 + -0.1736521264821639E+00 + -0.1734133491626473E+00 + -0.1731746908319074E+00 + -0.1729361517310908E+00 + -0.1726977320802859E+00 + -0.1724594320784388E+00 + -0.1722212519303717E+00 + -0.1719831919016922E+00 + -0.1717452522902705E+00 + -0.1715074333686748E+00 + -0.1712697353005738E+00 + -0.1710321582211128E+00 + -0.1707947023160712E+00 + -0.1705573678775536E+00 + -0.1703201552089664E+00 + -0.1700830645525030E+00 + -0.1698460960828432E+00 + -0.1696092499758650E+00 + -0.1693725264546873E+00 + -0.1691359257700673E+00 + -0.1688994481743319E+00 + -0.1686630939252375E+00 + -0.1684268632820940E+00 + -0.1681907564736788E+00 + -0.1679547736577179E+00 + -0.1677189149838576E+00 + -0.1674831806671410E+00 + -0.1672475710018279E+00 + -0.1670120862816941E+00 + -0.1667767267386498E+00 + -0.1665414925648181E+00 + -0.1663063839626830E+00 + -0.1660714011925197E+00 + -0.1658365445335564E+00 + -0.1656018142283968E+00 + -0.1653672104252165E+00 + -0.1651327332593055E+00 + -0.1648983829511955E+00 + -0.1646641598349054E+00 + -0.1644300642438128E+00 + -0.1641960963970311E+00 + -0.1639622564327721E+00 + -0.1637285445021802E+00 + -0.1634949608423970E+00 + -0.1632615057219539E+00 + -0.1630281794021109E+00 + -0.1627949821230463E+00 + -0.1625619141212535E+00 + -0.1623289756323330E+00 + -0.1620961668905373E+00 + -0.1618634881281808E+00 + -0.1616309395486439E+00 + -0.1613985213327909E+00 + -0.1611662336728863E+00 + -0.1609340768398076E+00 + -0.1607020511362514E+00 + -0.1604701568348986E+00 + -0.1602383941126775E+00 + -0.1600067631285104E+00 + -0.1597752641018366E+00 + -0.1595438973496093E+00 + -0.1593126631908668E+00 + -0.1590815618235223E+00 + -0.1588505933418461E+00 + -0.1586197578614909E+00 + -0.1583890556803837E+00 + -0.1581584871780567E+00 + -0.1579280526889944E+00 + -0.1576977523869271E+00 + -0.1574675864105279E+00 + -0.1572375549312555E+00 + -0.1570076581787758E+00 + -0.1567778963899387E+00 + -0.1565482698248827E+00 + -0.1563187787656474E+00 + -0.1560894234884267E+00 + -0.1558602042131707E+00 + -0.1556311211320571E+00 + -0.1554021744416258E+00 + -0.1551733643561794E+00 + -0.1549446910946433E+00 + -0.1547161549017424E+00 + -0.1544877560726738E+00 + -0.1542594949054882E+00 + -0.1540313716224482E+00 + -0.1538033863675618E+00 + -0.1535755392924143E+00 + -0.1533478306528600E+00 + -0.1531202607616979E+00 + -0.1528928299109478E+00 + -0.1526655382987030E+00 + -0.1524383860975467E+00 + -0.1522113735091422E+00 + -0.1519845007980393E+00 + -0.1517577682360957E+00 + -0.1515311760661519E+00 + -0.1513047244981273E+00 + -0.1510784137436637E+00 + -0.1508522440508491E+00 + -0.1506262156897308E+00 + -0.1504003289191343E+00 + -0.1501745839412775E+00 + -0.1499489809412502E+00 + -0.1497235201269774E+00 + -0.1494982017610067E+00 + -0.1492730261132458E+00 + -0.1490479934277707E+00 + -0.1488231039164450E+00 + -0.1485983577920541E+00 + -0.1483737553021413E+00 + -0.1481492967173033E+00 + -0.1479249822983683E+00 + -0.1477008122503201E+00 + -0.1474767867593065E+00 + -0.1472529060321457E+00 + -0.1470291703304627E+00 + -0.1468055799244364E+00 + -0.1465821350614828E+00 + -0.1463588359578014E+00 + -0.1461356828292208E+00 + -0.1459126759167440E+00 + -0.1456898154797407E+00 + -0.1454671017751310E+00 + -0.1452445350419384E+00 + -0.1450221155125034E+00 + -0.1447998434119561E+00 + -0.1445777189440699E+00 + -0.1443557423091638E+00 + -0.1441339137304163E+00 + -0.1439122334654226E+00 + -0.1436907017742775E+00 + -0.1434693189102553E+00 + -0.1432480851211843E+00 + -0.1430270006540503E+00 + -0.1428060657506539E+00 + -0.1425852806506818E+00 + -0.1423646455833703E+00 + -0.1421441607435803E+00 + -0.1419238263197638E+00 + -0.1417036425422429E+00 + -0.1414836097107712E+00 + -0.1412637281282542E+00 + -0.1410439980331837E+00 + -0.1408244196073656E+00 + -0.1406049930384523E+00 + -0.1403857185731753E+00 + -0.1401665964855499E+00 + -0.1399476270401163E+00 + -0.1397288104660798E+00 + -0.1395101469847237E+00 + -0.1392916368241500E+00 + -0.1390732802248760E+00 + -0.1388550774281708E+00 + -0.1386370286614136E+00 + -0.1384191341385573E+00 + -0.1382013940798057E+00 + -0.1379838087632570E+00 + -0.1377663784965501E+00 + -0.1375491035627976E+00 + -0.1373319841442318E+00 + -0.1371150203977737E+00 + -0.1368982125164589E+00 + -0.1366815607661780E+00 + -0.1364650654212311E+00 + -0.1362487267445960E+00 + -0.1360325449872204E+00 + -0.1358165203983424E+00 + -0.1356006532155329E+00 + -0.1353849436698414E+00 + -0.1351693919929907E+00 + -0.1349539984198139E+00 + -0.1347387631860800E+00 + -0.1345236865280299E+00 + -0.1343087686828634E+00 + -0.1340940098878319E+00 + -0.1338794103757816E+00 + -0.1336649703744062E+00 + -0.1334506901132536E+00 + -0.1332365698447667E+00 + -0.1330226098356000E+00 + -0.1328088103464175E+00 + -0.1325951716062407E+00 + -0.1323816938342295E+00 + -0.1321683772636503E+00 + -0.1319552221625100E+00 + -0.1317422288034012E+00 + -0.1315293974301061E+00 + -0.1313167282494512E+00 + -0.1311042214670089E+00 + -0.1308918773023390E+00 + -0.1306796959845571E+00 + -0.1304676777511017E+00 + -0.1302558228848632E+00 + -0.1300441316846501E+00 + -0.1298326044246585E+00 + -0.1296212413114653E+00 + -0.1294100425406405E+00 + -0.1291990083273106E+00 + -0.1289881389141405E+00 + -0.1287774345461446E+00 + -0.1285668954712867E+00 + -0.1283565219397628E+00 + -0.1281463142048483E+00 + -0.1279362725383875E+00 + -0.1277263972194697E+00 + -0.1275166885013606E+00 + -0.1273071465585744E+00 + -0.1270977715516816E+00 + -0.1268885636978106E+00 + -0.1266795233017745E+00 + -0.1264706506730876E+00 + -0.1262619460722978E+00 + -0.1260534097196225E+00 + -0.1258450418362505E+00 + -0.1256368426582845E+00 + -0.1254288124282760E+00 + -0.1252209513889384E+00 + -0.1250132597832626E+00 + -0.1248057378542528E+00 + -0.1245983858364848E+00 + -0.1243912039500822E+00 + -0.1241841924163627E+00 + -0.1239773515059796E+00 + -0.1237706815342590E+00 + -0.1235641828049659E+00 + -0.1233578555169586E+00 + -0.1231516998192856E+00 + -0.1229457158921858E+00 + -0.1227399040343632E+00 + -0.1225342645720577E+00 + -0.1223287977851554E+00 + -0.1221235038661374E+00 + -0.1219183829999621E+00 + -0.1217134354195435E+00 + -0.1215086614054834E+00 + -0.1213040612367540E+00 + -0.1210996351587925E+00 + -0.1208953833994804E+00 + -0.1206913061900135E+00 + -0.1204874037759067E+00 + -0.1202836764064308E+00 + -0.1200801243218768E+00 + -0.1198767477437770E+00 + -0.1196735468930706E+00 + -0.1194705220364940E+00 + -0.1192676734907956E+00 + -0.1190650015653769E+00 + -0.1188625064691595E+00 + -0.1186601883529522E+00 + -0.1184580473922448E+00 + -0.1182560838810338E+00 + -0.1180542981478190E+00 + -0.1178526904814341E+00 + -0.1176512610793430E+00 + -0.1174500101275657E+00 + -0.1172489378549867E+00 + -0.1170480445419122E+00 + -0.1168473304692768E+00 + -0.1166467958894872E+00 + -0.1164464410367980E+00 + -0.1162462661452437E+00 + -0.1160462714489292E+00 + -0.1158464571820630E+00 + -0.1156468235915209E+00 + -0.1154473709563182E+00 + -0.1152480995595871E+00 + -0.1150490096439971E+00 + -0.1148501013988311E+00 + -0.1146513750159494E+00 + -0.1144528307679571E+00 + -0.1142544689841172E+00 + -0.1140562899749094E+00 + -0.1138582939341964E+00 + -0.1136604810138652E+00 + -0.1134628514050890E+00 + -0.1132654054101073E+00 + -0.1130681433499696E+00 + -0.1128710655075651E+00 + -0.1126741721103894E+00 + -0.1124774633825461E+00 + -0.1122809395615660E+00 + -0.1120846008953504E+00 + -0.1118884476321137E+00 + -0.1116924800199398E+00 + -0.1114966983069053E+00 + -0.1113011027362151E+00 + -0.1111056935356156E+00 + -0.1109104709304105E+00 + -0.1107154351802830E+00 + -0.1105205865997446E+00 + -0.1103259255037525E+00 + -0.1101314521280502E+00 + -0.1099371666412522E+00 + -0.1097430692199352E+00 + -0.1095491601139476E+00 + -0.1093554396056245E+00 + -0.1091619079760246E+00 + -0.1089685655009975E+00 + -0.1087754124550036E+00 + -0.1085824490841077E+00 + -0.1083896755843773E+00 + -0.1081970921503285E+00 + -0.1080046990471793E+00 + -0.1078124966059821E+00 + -0.1076204851465660E+00 + -0.1074286648754778E+00 + -0.1072370359438460E+00 + -0.1070455985344375E+00 + -0.1068543529544101E+00 + -0.1066632995408240E+00 + -0.1064724385805817E+00 + -0.1062817702631796E+00 + -0.1060912947699092E+00 + -0.1059010123522905E+00 + -0.1057109233336638E+00 + -0.1055210280322209E+00 + -0.1053313266876812E+00 + -0.1051418194974004E+00 + -0.1049525066689073E+00 + -0.1047633884554160E+00 + -0.1045744651224962E+00 + -0.1043857369232565E+00 + -0.1041972040840099E+00 + -0.1040088668292945E+00 + -0.1038207254303305E+00 + -0.1036327802107667E+00 + -0.1034450314876810E+00 + -0.1032574794793046E+00 + -0.1030701243450162E+00 + -0.1028829662659994E+00 + -0.1026960055323384E+00 + -0.1025092424669285E+00 + -0.1023226773703108E+00 + -0.1021363104898676E+00 + -0.1019501420649383E+00 + -0.1017641723209152E+00 + -0.1015784014659572E+00 + -0.1013928297126596E+00 + -0.1012074573384321E+00 + -0.1010222846632319E+00 + -0.1008373119936332E+00 + -0.1006525395596861E+00 + -0.1004679675658672E+00 + -0.1002835962286256E+00 + -0.1000994257958166E+00 + -0.9991545652068373E-01 + -0.9973168866647322E-01 + -0.9954812250996859E-01 + -0.9936475832717383E-01 + -0.9918159636926816E-01 + -0.9899863686953951E-01 + -0.9881588006682009E-01 + -0.9863332623531132E-01 + -0.9845097566241517E-01 + -0.9826882861978540E-01 + -0.9808688533292747E-01 + -0.9790514601920448E-01 + -0.9772361090525504E-01 + -0.9754228023152811E-01 + -0.9736115424222685E-01 + -0.9718023322170193E-01 + -0.9699951748617597E-01 + -0.9681900734126025E-01 + -0.9663870301467689E-01 + -0.9645860470207403E-01 + -0.9627871262083067E-01 + -0.9609902705893470E-01 + -0.9591954831821973E-01 + -0.9574027666475224E-01 + -0.9556121230577366E-01 + -0.9538235544570826E-01 + -0.9520370633639221E-01 + -0.9502526527100537E-01 + -0.9484703253873217E-01 + -0.9466900838754812E-01 + -0.9449119304666619E-01 + -0.9431358675786864E-01 + -0.9413618980842550E-01 + -0.9395900249556506E-01 + -0.9378202508168080E-01 + -0.9360525776601460E-01 + -0.9342870074460837E-01 + -0.9325235428619038E-01 + -0.9307621872910039E-01 + -0.9290029440140884E-01 + -0.9272458151946442E-01 + -0.9254908024330996E-01 + -0.9237379076083359E-01 + -0.9219871337337155E-01 + -0.9202384841061237E-01 + -0.9184919617473691E-01 + -0.9167475691284430E-01 + -0.9150053086524526E-01 + -0.9132651826463867E-01 + -0.9115271933571478E-01 + -0.9097913430616677E-01 + -0.9080576343560031E-01 + -0.9063260700141131E-01 + -0.9045966528260696E-01 + -0.9028693856422677E-01 + -0.9011442713294080E-01 + -0.8994213125018401E-01 + -0.8977005112156357E-01 + -0.8959818694733990E-01 + -0.8942653899066471E-01 + -0.8925510758734545E-01 + -0.8908389306822382E-01 + -0.8891289566522554E-01 + -0.8874211554965237E-01 + -0.8857155290882515E-01 + -0.8840120801418523E-01 + -0.8823108116338069E-01 + -0.8806117264609902E-01 + -0.8789148273240512E-01 + -0.8772201168945109E-01 + -0.8755275978276472E-01 + -0.8738372727579030E-01 + -0.8721491442936685E-01 + -0.8704632147291505E-01 + -0.8687794861466959E-01 + -0.8670979607714690E-01 + -0.8654186416428212E-01 + -0.8637415320818288E-01 + -0.8620666350928905E-01 + -0.8603939528198287E-01 + -0.8587234872709850E-01 + -0.8570552408408171E-01 + -0.8553892164625347E-01 + -0.8537254170907939E-01 + -0.8520638454051031E-01 + -0.8504045038808998E-01 + -0.8487473949915652E-01 + -0.8470925212240426E-01 + -0.8454398850709833E-01 + -0.8437894891191171E-01 + -0.8421413362365522E-01 + -0.8404954293404360E-01 + -0.8388517710895018E-01 + -0.8372103637451566E-01 + -0.8355712095450867E-01 + -0.8339343108828434E-01 + -0.8322996702792949E-01 + -0.8306672903098372E-01 + -0.8290371738990217E-01 + -0.8274093241203897E-01 + -0.8257837439657813E-01 + -0.8241604361494849E-01 + -0.8225394033242777E-01 + -0.8209206478187610E-01 + -0.8193041714128178E-01 + -0.8176899758888519E-01 + -0.8160780640810426E-01 + -0.8144684397667406E-01 + -0.8128611065794644E-01 + -0.8112560667592044E-01 + -0.8096533218909761E-01 + -0.8080528738571758E-01 + -0.8064547256608305E-01 + -0.8048588805622574E-01 + -0.8032653413704416E-01 + -0.8016741100519553E-01 + -0.8000851884985600E-01 + -0.7984985789808059E-01 + -0.7969142841423096E-01 + -0.7953323065941071E-01 + -0.7937526485162303E-01 + -0.7921753118651069E-01 + -0.7906002987578580E-01 + -0.7890276119845405E-01 + -0.7874572545078290E-01 + -0.7858892289123769E-01 + -0.7843235370038211E-01 + -0.7827601805078539E-01 + -0.7811991615699780E-01 + -0.7796404827898118E-01 + -0.7780841467714607E-01 + -0.7765301559321841E-01 + -0.7749785125824859E-01 + -0.7734292190823978E-01 + -0.7718822780244519E-01 + -0.7703376920675542E-01 + -0.7687954635705853E-01 + -0.7672555942087764E-01 + -0.7657180855888114E-01 + -0.7641829401478196E-01 + -0.7626501613097724E-01 + -0.7611197524360243E-01 + -0.7595917155219928E-01 + -0.7580660517012055E-01 + -0.7565427623962999E-01 + -0.7550218505889699E-01 + -0.7535033197610757E-01 + -0.7519871729133948E-01 + -0.7504734118321461E-01 + -0.7489620381262563E-01 + -0.7474530538300711E-01 + -0.7459464615334738E-01 + -0.7444422638581669E-01 + -0.7429404633454164E-01 + -0.7414410624808410E-01 + -0.7399440636985847E-01 + -0.7384494691401291E-01 + -0.7369572808431231E-01 + -0.7354675010559580E-01 + -0.7339801326154648E-01 + -0.7324951784527769E-01 + -0.7310126410832720E-01 + -0.7295325224248710E-01 + -0.7280548243587606E-01 + -0.7265795489021354E-01 + -0.7251066981761623E-01 + -0.7236362744162873E-01 + -0.7221682805729924E-01 + -0.7207027198801429E-01 + -0.7192395952421524E-01 + -0.7177789085363378E-01 + -0.7163206614470054E-01 + -0.7148648560059908E-01 + -0.7134114947942390E-01 + -0.7119605804372196E-01 + -0.7105121154816965E-01 + -0.7090661024084866E-01 + -0.7076225436671858E-01 + -0.7061814414932810E-01 + -0.7047427980287456E-01 + -0.7033066155049996E-01 + -0.7018728964625142E-01 + -0.7004416435070727E-01 + -0.6990128590834807E-01 + -0.6975865453557586E-01 + -0.6961627044697789E-01 + -0.6947413387627343E-01 + -0.6933224507482972E-01 + -0.6919060429465183E-01 + -0.6904921178708810E-01 + -0.6890806780320568E-01 + -0.6876717258830584E-01 + -0.6862652636533621E-01 + -0.6848612935199582E-01 + -0.6834598177589207E-01 + -0.6820608388361188E-01 + -0.6806643592424301E-01 + -0.6792703815378958E-01 + -0.6778789083525904E-01 + -0.6764899422615095E-01 + -0.6751034853033257E-01 + -0.6737195392300210E-01 + -0.6723381059937539E-01 + -0.6709591884147679E-01 + -0.6695827895443385E-01 + -0.6682089120880365E-01 + -0.6668375580172315E-01 + -0.6654687292310594E-01 + -0.6641024282221673E-01 + -0.6627386581435060E-01 + -0.6613774220715576E-01 + -0.6600187219288398E-01 + -0.6586625589574403E-01 + -0.6573089347126222E-01 + -0.6559578522862863E-01 + -0.6546093152270450E-01 + -0.6532633265271980E-01 + -0.6519198878723868E-01 + -0.6505790007827056E-01 + -0.6492406675078009E-01 + -0.6479048911890509E-01 + -0.6465716749461299E-01 + -0.6452410209973291E-01 + -0.6439129309756536E-01 + -0.6425874066833491E-01 + -0.6412644508754082E-01 + -0.6399440666226477E-01 + -0.6386262567342788E-01 + -0.6373110233376539E-01 + -0.6359983684576292E-01 + -0.6346882943909339E-01 + -0.6333808037994213E-01 + -0.6320758993480292E-01 + -0.6307735833903204E-01 + -0.6294738580574975E-01 + -0.6281767255344955E-01 + -0.6268821883519258E-01 + -0.6255902491679526E-01 + -0.6243009105271189E-01 + -0.6230141746443927E-01 + -0.6217300436792135E-01 + -0.6204485199562775E-01 + -0.6191696060442611E-01 + -0.6178933045264595E-01 + -0.6166196178992620E-01 + -0.6153485485909092E-01 + -0.6140800990501163E-01 + -0.6128142718704445E-01 + -0.6115510697049333E-01 + -0.6102904950556416E-01 + -0.6090325499386759E-01 + -0.6077772362764459E-01 + -0.6065245562084770E-01 + -0.6052745122272588E-01 + -0.6040271068706705E-01 + -0.6027823428989461E-01 + -0.6015402232644224E-01 + -0.6003007508189383E-01 + -0.5990639276126320E-01 + -0.5978297553337808E-01 + -0.5965982359474049E-01 + -0.5953693724109947E-01 + -0.5941431678984323E-01 + -0.5929196250776246E-01 + -0.5916987457087004E-01 + -0.5904805314902718E-01 + -0.5892649848065011E-01 + -0.5880521086918207E-01 + -0.5868419061425581E-01 + -0.5856343796140049E-01 + -0.5844295312917223E-01 + -0.5832273633600947E-01 + -0.5820278780053505E-01 + -0.5808310774166195E-01 + -0.5796369640544272E-01 + -0.5784455409155417E-01 + -0.5772568110346542E-01 + -0.5760707768058242E-01 + -0.5748874399556643E-01 + -0.5737068022696227E-01 + -0.5725288663826401E-01 + -0.5713536353979083E-01 + -0.5701811122599442E-01 + -0.5690112991863834E-01 + -0.5678441981954708E-01 + -0.5666798115466191E-01 + -0.5655181420257911E-01 + -0.5643591924712760E-01 + -0.5632029651891617E-01 + -0.5620494618764052E-01 + -0.5608986842958165E-01 + -0.5597506352712074E-01 + -0.5586053182708797E-01 + -0.5574627365314457E-01 + -0.5563228920979878E-01 + -0.5551857866501090E-01 + -0.5540514221682503E-01 + -0.5529198013602733E-01 + -0.5517909270353016E-01 + -0.5506648017432340E-01 + -0.5495414277078150E-01 + -0.5484208071444825E-01 + -0.5473029424152315E-01 + -0.5461878359802075E-01 + -0.5450754903796732E-01 + -0.5439659085818267E-01 + -0.5428590937011268E-01 + -0.5417550484175316E-01 + -0.5406537742445376E-01 + -0.5395552725224908E-01 + -0.5384595454985700E-01 + -0.5373665966734009E-01 + -0.5362764295637778E-01 + -0.5351890466152321E-01 + -0.5341044494857728E-01 + -0.5330226399504818E-01 + -0.5319436206148497E-01 + -0.5308673943999223E-01 + -0.5297939640001463E-01 + -0.5287233314322841E-01 + -0.5276554985996079E-01 + -0.5265904680736399E-01 + -0.5255282434418874E-01 + -0.5244688282836401E-01 + -0.5234122246567892E-01 + -0.5223584333895889E-01 + -0.5213074555842400E-01 + -0.5202592944705412E-01 + -0.5192139541739069E-01 + -0.5181714382291959E-01 + -0.5171317482040142E-01 + -0.5160948852697011E-01 + -0.5150608513438636E-01 + -0.5140296495937245E-01 + -0.5130012832728397E-01 + -0.5119757550039038E-01 + -0.5109530668494385E-01 + -0.5099332209110285E-01 + -0.5089162197393308E-01 + -0.5079020660943768E-01 + -0.5068907626388274E-01 + -0.5058823116704529E-01 + -0.5048767154047459E-01 + -0.5038739761910501E-01 + -0.5028740966253682E-01 + -0.5018770793307691E-01 + -0.5008829269272173E-01 + -0.4998916420316616E-01 + -0.4989032272350614E-01 + -0.4979176848986626E-01 + -0.4969350172658666E-01 + -0.4959552266510913E-01 + -0.4949783156625061E-01 + -0.4940042869834596E-01 + -0.4930331432040152E-01 + -0.4920648867234151E-01 + -0.4910995199132690E-01 + -0.4901370450178048E-01 + -0.4891774641447232E-01 + -0.4882207794816037E-01 + -0.4872669940619160E-01 + -0.4863161113993159E-01 + -0.4853681346992135E-01 + -0.4844230657293494E-01 + -0.4834809058494233E-01 + -0.4825416569418183E-01 + -0.4816053220660816E-01 + -0.4806719044298689E-01 + -0.4797414068100017E-01 + -0.4788138314760333E-01 + -0.4778891806644302E-01 + -0.4769674565624265E-01 + -0.4760486613266591E-01 + -0.4751327972857394E-01 + -0.4742198676448767E-01 + -0.4733098758871029E-01 + -0.4724028249839102E-01 + -0.4714987166293957E-01 + -0.4705975523353327E-01 + -0.4696993341282175E-01 + -0.4688040647002827E-01 + -0.4679117468007648E-01 + -0.4670223833335110E-01 + -0.4661359773089822E-01 + -0.4652525315962119E-01 + -0.4643720482443074E-01 + -0.4634945290136545E-01 + -0.4626199760205353E-01 + -0.4617483923656980E-01 + -0.4608797813068644E-01 + -0.4600141454980036E-01 + -0.4591514867340123E-01 + -0.4582918067973516E-01 + -0.4574351082416840E-01 + -0.4565813942042071E-01 + -0.4557306677460674E-01 + -0.4548829313485740E-01 + -0.4540381872663414E-01 + -0.4531964377573877E-01 + -0.4523576850908554E-01 + -0.4515219315433948E-01 + -0.4506891796998829E-01 + -0.4498594326272746E-01 + -0.4490326933982790E-01 + -0.4482089644616369E-01 + -0.4473882477474194E-01 + -0.4465705452330529E-01 + -0.4457558593434507E-01 + -0.4449441926979235E-01 + -0.4441355480232254E-01 + -0.4433299284086958E-01 + -0.4425273370141710E-01 + -0.4417277763802521E-01 + -0.4409312479794534E-01 + -0.4401377532379785E-01 + -0.4393472947483794E-01 + -0.4385598761686198E-01 + -0.4377755010338992E-01 + -0.4369941715774498E-01 + -0.4362158894083221E-01 + -0.4354406564315423E-01 + -0.4346684756922453E-01 + -0.4338993505030585E-01 + -0.4331332836999552E-01 + -0.4323702772119048E-01 + -0.4316103328872304E-01 + -0.4308534530518668E-01 + -0.4300996405109326E-01 + -0.4293488980691885E-01 + -0.4286012283336978E-01 + -0.4278566338071394E-01 + -0.4271151170403275E-01 + -0.4263766807900613E-01 + -0.4256413278665856E-01 + -0.4249090608118520E-01 + -0.4241798816038272E-01 + -0.4234537921685229E-01 + -0.4227307949531300E-01 + -0.4220108929791443E-01 + -0.4212940892751039E-01 + -0.4205803866326205E-01 + -0.4198697877052699E-01 + -0.4191622950576302E-01 + -0.4184579108399262E-01 + -0.4177566370812585E-01 + -0.4170584760096089E-01 + -0.4163634303142257E-01 + -0.4156715027490000E-01 + -0.4149826960263927E-01 + -0.4142970128085615E-01 + -0.4136144557386085E-01 + -0.4129350272673285E-01 + -0.4122587297220257E-01 + -0.4115855654723319E-01 + -0.4109155371193047E-01 + -0.4102486473403435E-01 + -0.4095848988197487E-01 + -0.4089242942583560E-01 + -0.4082668363557419E-01 + -0.4076125276286851E-01 + -0.4069613703505056E-01 + -0.4063133668066949E-01 + -0.4056685196613399E-01 + -0.4050268318466716E-01 + -0.4043883061706627E-01 + -0.4037529446740255E-01 + -0.4031207491186980E-01 + -0.4024917216909969E-01 + -0.4018658657885474E-01 + -0.4012431850107083E-01 + -0.4006236822455472E-01 + -0.4000073593397229E-01 + -0.3993942180990153E-01 + -0.3987842609628649E-01 + -0.3981774908639415E-01 + -0.3975739106818738E-01 + -0.3969735228579662E-01 + -0.3963763296568845E-01 + -0.3957823334390193E-01 + -0.3951915368687501E-01 + -0.3946039426707879E-01 + -0.3940195535495052E-01 + -0.3934383721760870E-01 + -0.3928604012127016E-01 + -0.3922856432055118E-01 + -0.3917141006015598E-01 + -0.3911457758338734E-01 + -0.3905806712524218E-01 + -0.3900187891703249E-01 + -0.3894601320436690E-01 + -0.3889047028321210E-01 + -0.3883525046043470E-01 + -0.3878035401938632E-01 + -0.3872578120161618E-01 + -0.3867153224406757E-01 + -0.3861760737637042E-01 + -0.3856400682128627E-01 + -0.3851073081021842E-01 + -0.3845777964801074E-01 + -0.3840515367584034E-01 + -0.3835285317761144E-01 + -0.3830087821098761E-01 + -0.3824922877578846E-01 + -0.3819790459222541E-01 + -0.3814690483319456E-01 + -0.3809622860983516E-01 + -0.3804587508801994E-01 + -0.3799584349011865E-01 + -0.3794613303877981E-01 + -0.3789674293946698E-01 + -0.3784767238801223E-01 + -0.3779892058183612E-01 + -0.3775048672765391E-01 + -0.3770237003427650E-01 + -0.3765456970393578E-01 + -0.3760708492529590E-01 + -0.3755991488511687E-01 + -0.3751305878039131E-01 + -0.3746651581978639E-01 + -0.3742028521092071E-01 + -0.3737436614877038E-01 + -0.3732875782048289E-01 + -0.3728345941444802E-01 + -0.3723847012783513E-01 + -0.3719378916007655E-01 + -0.3714941570633056E-01 + -0.3710534895232097E-01 + -0.3706158808212933E-01 + -0.3701813228748376E-01 + -0.3697498076977607E-01 + -0.3693213272955672E-01 + -0.3688958735579715E-01 + -0.3684734382961050E-01 + -0.3680540133307997E-01 + -0.3676375905683504E-01 + -0.3672241619401300E-01 + -0.3668137193372545E-01 + -0.3664062545534394E-01 + -0.3660017593634906E-01 + -0.3656002256190259E-01 + -0.3652016452789427E-01 + -0.3648060102950606E-01 + -0.3644133124818143E-01 + -0.3640235435520315E-01 + -0.3636366952318346E-01 + -0.3632527593706731E-01 + -0.3628717278607417E-01 + -0.3624935925631823E-01 + -0.3621183452585370E-01 + -0.3617459777081424E-01 + -0.3613764816812084E-01 + -0.3610098489617132E-01 + -0.3606460713285880E-01 + -0.3602851405390212E-01 + -0.3599270483316496E-01 + -0.3595717864469694E-01 + -0.3592193466738729E-01 + -0.3588697208180669E-01 + -0.3585229006619901E-01 + -0.3581788779246581E-01 + -0.3578376443077692E-01 + -0.3574991915222095E-01 + -0.3571635112978816E-01 + -0.3568305953590311E-01 + -0.3565004353825236E-01 + -0.3561730230028581E-01 + -0.3558483498618354E-01 + -0.3555264077046658E-01 + -0.3552071883211270E-01 + -0.3548906834644014E-01 + -0.3545768847684147E-01 + -0.3542657838357147E-01 + -0.3539573722843073E-01 + -0.3536516417652186E-01 + -0.3533485839284196E-01 + -0.3530481904299903E-01 + -0.3527504529317191E-01 + -0.3524553630865297E-01 + -0.3521629125106401E-01 + -0.3518730927987679E-01 + -0.3515858955506943E-01 + -0.3513013124048119E-01 + -0.3510193350048090E-01 + -0.3507399549566667E-01 + -0.3504631637961302E-01 + -0.3501889530477645E-01 + -0.3499173142903470E-01 + -0.3496482391605383E-01 + -0.3493817192875668E-01 + -0.3491177462484379E-01 + -0.3488563115883231E-01 + -0.3485974068403588E-01 + -0.3483410235048121E-01 + -0.3480871530687074E-01 + -0.3478357870499766E-01 + -0.3475869170425241E-01 + -0.3473405346435432E-01 + -0.3470966313811546E-01 + -0.3468551987039023E-01 + -0.3466162280562152E-01 + -0.3463797109406773E-01 + -0.3461456388936746E-01 + -0.3459140034368908E-01 + -0.3456847960380476E-01 + -0.3454580081440228E-01 + -0.3452336312142912E-01 + -0.3450116567478545E-01 + -0.3447920762437727E-01 + -0.3445748811545916E-01 + -0.3443600628748755E-01 + -0.3441476127943511E-01 + -0.3439375223513422E-01 + -0.3437297830154477E-01 + -0.3435243862437194E-01 + -0.3433213234450903E-01 + -0.3431205860079723E-01 + -0.3429221653271334E-01 + -0.3427260528247466E-01 + -0.3425322399226500E-01 + -0.3423407180262949E-01 + -0.3421514785203891E-01 + -0.3419645127807063E-01 + -0.3417798121475657E-01 + -0.3415973679332815E-01 + -0.3414171714576111E-01 + -0.3412392141208697E-01 + -0.3410634873510734E-01 + -0.3408899825394020E-01 + -0.3407186909765134E-01 + -0.3405496039300305E-01 + -0.3403827127012726E-01 + -0.3402180086469486E-01 + -0.3400554831214741E-01 + -0.3398951274431172E-01 + -0.3397369328993708E-01 + -0.3395808907724736E-01 + -0.3394269923475987E-01 + -0.3392752289079041E-01 + -0.3391255917315120E-01 + -0.3389780720931252E-01 + -0.3388326612620796E-01 + -0.3386893504924016E-01 + -0.3385481310160398E-01 + -0.3384089940603863E-01 + -0.3382719309009316E-01 + -0.3381369328561351E-01 + -0.3380039912266004E-01 + -0.3378730971973383E-01 + -0.3377442418954602E-01 + -0.3376174164683629E-01 + -0.3374926121568974E-01 + -0.3373698202192696E-01 + -0.3372490318813592E-01 + -0.3371302383132409E-01 + -0.3370134306751595E-01 + -0.3368986001546028E-01 + -0.3367857379660947E-01 + -0.3366748353143996E-01 + -0.3365658833500695E-01 + -0.3364588731925040E-01 + -0.3363537959590651E-01 + -0.3362506427778796E-01 + -0.3361494047758305E-01 + -0.3360500731018845E-01 + -0.3359526389570782E-01 + -0.3358570935410427E-01 + -0.3357634279690334E-01 + -0.3356716332647348E-01 + -0.3355817004501918E-01 + -0.3354936206269978E-01 + -0.3354073849403203E-01 + -0.3353229845209414E-01 + -0.3352404104506382E-01 + -0.3351596537928362E-01 + -0.3350807056064036E-01 + -0.3350035569471910E-01 + -0.3349281988663291E-01 + -0.3348546224300963E-01 + -0.3347828187240771E-01 + -0.3347127788253906E-01 + -0.3346444937571672E-01 + -0.3345779545060674E-01 + -0.3345131520602525E-01 + -0.3344500774424856E-01 + -0.3343887216828516E-01 + -0.3343290757934889E-01 + -0.3342711307497022E-01 + -0.3342148775175238E-01 + -0.3341603071113988E-01 + -0.3341074106113968E-01 + -0.3340561790859468E-01 + -0.3340066034566572E-01 + -0.3339586745405068E-01 + -0.3339123831819716E-01 + -0.3338677204250884E-01 + -0.3338246773820770E-01 + -0.3337832450836338E-01 + -0.3337434143403992E-01 + -0.3337051759221187E-01 + -0.3336685207160844E-01 + -0.3336334397825487E-01 + -0.3335999241804924E-01 + -0.3335679648192726E-01 + -0.3335375524916140E-01 + -0.3335086779998906E-01 + -0.3334813322595781E-01 + -0.3334555062278998E-01 + -0.3334311908286753E-01 + -0.3334083768927667E-01 + -0.3333870552288821E-01 + -0.3333672166825292E-01 + -0.3333488521613411E-01 + -0.3333319525700265E-01 + -0.3333165087506898E-01 + -0.3333025114915323E-01 + -0.3332899515817697E-01 + -0.3332788198652620E-01 + -0.3332691072068519E-01 + -0.3332608044571303E-01 + -0.3332539024307766E-01 + -0.3332483919300505E-01 + -0.3332442637421966E-01 + -0.3332415086324229E-01 + -0.3332401173595431E-01 + -0.3332400806971011E-01 + -0.3332413894319481E-01 + -0.3332440343440954E-01 + -0.3332480061928366E-01 + -0.3332532957243992E-01 + -0.3332598936887449E-01 + -0.3332677908670990E-01 + -0.3332769780437289E-01 + -0.3332874459705985E-01 + -0.3332991853424233E-01 + -0.3333121868433306E-01 + -0.3333264411773079E-01 + -0.3333419390687672E-01 + -0.3333586712363787E-01 + -0.3333766283820841E-01 + -0.3333958011961538E-01 + -0.3334161803659341E-01 + -0.3334377565854679E-01 + -0.3334605205463348E-01 + -0.3334844629178673E-01 + -0.3335095743283081E-01 + -0.3335358453970597E-01 + -0.3335632667799740E-01 + -0.3335918291745281E-01 + -0.3336215232699280E-01 + -0.3336523396967408E-01 + -0.3336842690483045E-01 + -0.3337173019170199E-01 + -0.3337514289147880E-01 + -0.3337866406554179E-01 + -0.3338229277608689E-01 + -0.3338602808802463E-01 + -0.3338986906600926E-01 + -0.3339381476854624E-01 + -0.3339786424669073E-01 + -0.3340201655111017E-01 + -0.3340627073918903E-01 + -0.3341062587251683E-01 + -0.3341508101173051E-01 + -0.3341963521439796E-01 + -0.3342428753667419E-01 + -0.3342903703191704E-01 + -0.3343388274707754E-01 + -0.3343882372774431E-01 + -0.3344385902578786E-01 + -0.3344898770180072E-01 + -0.3345420881593108E-01 + -0.3345952142046895E-01 + -0.3346492456187770E-01 + -0.3347041728609073E-01 + -0.3347599863943950E-01 + -0.3348166766804333E-01 + -0.3348742341907054E-01 + -0.3349326494384242E-01 + -0.3349919129391177E-01 + -0.3350520151742791E-01 + -0.3351129465774550E-01 + -0.3351746975728950E-01 + -0.3352372585774811E-01 + -0.3353006200010618E-01 + -0.3353647722559556E-01 + -0.3354297058042238E-01 + -0.3354954111250548E-01 + -0.3355618786685593E-01 + -0.3356290988032718E-01 + -0.3356970618773707E-01 + -0.3357657582840543E-01 + -0.3358351784941323E-01 + -0.3359053129740705E-01 + -0.3359761520687514E-01 + -0.3360476860163910E-01 + -0.3361199050714551E-01 + -0.3361927996742559E-01 + -0.3362663603467502E-01 + -0.3363405775494180E-01 + -0.3364154415344061E-01 + -0.3364909425032513E-01 + -0.3365670707262656E-01 + -0.3366438166029007E-01 + -0.3367211705380147E-01 + -0.3367991228651259E-01 + -0.3368776638492342E-01 + -0.3369567837529987E-01 + -0.3370364728836631E-01 + -0.3371167215680910E-01 + -0.3371975201145895E-01 + -0.3372788587734839E-01 + -0.3373607277765114E-01 + -0.3374431173856621E-01 + -0.3375260179290700E-01 + -0.3376094197347584E-01 + -0.3376933130509994E-01 + -0.3377776880425279E-01 + -0.3378625348753961E-01 + -0.3379478438131104E-01 + -0.3380336051708186E-01 + -0.3381198092311530E-01 + -0.3382064461484373E-01 + -0.3382935060372971E-01 + -0.3383809790692209E-01 + -0.3384688555481355E-01 + -0.3385571257873055E-01 + -0.3386457799906253E-01 + -0.3387348082365857E-01 + -0.3388242005986533E-01 + -0.3389139472249702E-01 + -0.3390040383072043E-01 + -0.3390944640357078E-01 + -0.3391852146135371E-01 + -0.3392762802436556E-01 + -0.3393676510881167E-01 + -0.3394593172173220E-01 + -0.3395512686848831E-01 + -0.3396434956069539E-01 + -0.3397359881805895E-01 + -0.3398287365949755E-01 + -0.3399217309378324E-01 + -0.3400149612265674E-01 + -0.3401084174914443E-01 + -0.3402020898672747E-01 + -0.3402959685211920E-01 + -0.3403900435768365E-01 + -0.3404843050497560E-01 + -0.3405787429335706E-01 + -0.3406733472616129E-01 + -0.3407681081248876E-01 + -0.3408630156106863E-01 + -0.3409580597624156E-01 + -0.3410532305894392E-01 + -0.3411485180998030E-01 + -0.3412439123275110E-01 + -0.3413394033129807E-01 + -0.3414349810886347E-01 + -0.3415306356742880E-01 + -0.3416263570826874E-01 + -0.3417221353181488E-01 + -0.3418179603751174E-01 + -0.3419138222394822E-01 + -0.3420097108511358E-01 + -0.3421056161113949E-01 + -0.3422015279329252E-01 + -0.3422974363483514E-01 + -0.3423933314379682E-01 + -0.3424892032270390E-01 + -0.3425850415695806E-01 + -0.3426808362802961E-01 + -0.3427765772453755E-01 + -0.3428722544758255E-01 + -0.3429678579849694E-01 + -0.3430633776933665E-01 + -0.3431588034378581E-01 + -0.3432541250563515E-01 + -0.3433493324559112E-01 + -0.3434444155730554E-01 + -0.3435393643253196E-01 + -0.3436341685744221E-01 + -0.3437288181648854E-01 + -0.3438233029565190E-01 + -0.3439176128425822E-01 + -0.3440117377134247E-01 + -0.3441056674210429E-01 + -0.3441993917795899E-01 + -0.3442929006023112E-01 + -0.3443861837512113E-01 + -0.3444792311108453E-01 + -0.3445720325324246E-01 + -0.3446645777459701E-01 + -0.3447568564463274E-01 + -0.3448488583993883E-01 + -0.3449405735233055E-01 + -0.3450319917454089E-01 + -0.3451231028656105E-01 + -0.3452138965465348E-01 + -0.3453043624516994E-01 + -0.3453944903703524E-01 + -0.3454842701612662E-01 + -0.3455736916563063E-01 + -0.3456627445796239E-01 + -0.3457514186202521E-01 + -0.3458397034735958E-01 + -0.3459275888569172E-01 + -0.3460150644868467E-01 + -0.3461021201160347E-01 + -0.3461887455409867E-01 + -0.3462749305454922E-01 + -0.3463606647961407E-01 + -0.3464459378834757E-01 + -0.3465307394179545E-01 + -0.3466150591422446E-01 + -0.3466988868374470E-01 + -0.3467822122337199E-01 + -0.3468650249415506E-01 + -0.3469473145495674E-01 + -0.3470290707021145E-01 + -0.3471102831180162E-01 + -0.3471909415077535E-01 + -0.3472710354728696E-01 + -0.3473505545375274E-01 + -0.3474294882457301E-01 + -0.3475078262912612E-01 + -0.3475855584175766E-01 + -0.3476626743194684E-01 + -0.3477391635658358E-01 + -0.3478150156992432E-01 + -0.3478902202684178E-01 + -0.3479647668334463E-01 + -0.3480386449522337E-01 + -0.3481118442102512E-01 + -0.3481843542126530E-01 + -0.3482561645551606E-01 + -0.3483272647998652E-01 + -0.3483976444920857E-01 + -0.3484672931701904E-01 + -0.3485362003631635E-01 + -0.3486043555939125E-01 + -0.3486717484035002E-01 + -0.3487383683649955E-01 + -0.3488042050448467E-01 + -0.3488692479315556E-01 + -0.3489334864473062E-01 + -0.3489969100188313E-01 + -0.3490595081549420E-01 + -0.3491212703971645E-01 + -0.3491821862690955E-01 + -0.3492422452459232E-01 + -0.3493014367878939E-01 + -0.3493597503498443E-01 + -0.3494171753814548E-01 + -0.3494737013282208E-01 + -0.3495293176599396E-01 + -0.3495840138683557E-01 + -0.3496377794309354E-01 + -0.3496906037419313E-01 + -0.3497424761523301E-01 + -0.3497933860221499E-01 + -0.3498433227634965E-01 + -0.3498922757966529E-01 + -0.3499402345401216E-01 + -0.3499871884142634E-01 + -0.3500331268341750E-01 + -0.3500780392000795E-01 + -0.3501219148972130E-01 + -0.3501647433011094E-01 + -0.3502065137492560E-01 + -0.3502472155561198E-01 + -0.3502868380480911E-01 + -0.3503253706222175E-01 + -0.3503628026899635E-01 + -0.3503991236068813E-01 + -0.3504343226164317E-01 + -0.3504683889461862E-01 + -0.3505013119149283E-01 + -0.3505330809435078E-01 + -0.3505636854404237E-01 + -0.3505931146818778E-01 + -0.3506213578637329E-01 + -0.3506484041991183E-01 + -0.3506742430099468E-01 + -0.3506988636463871E-01 + -0.3507222554194983E-01 + -0.3507444075563344E-01 + -0.3507653092680395E-01 + -0.3507849497959217E-01 + -0.3508033184194162E-01 + -0.3508204044103271E-01 + -0.3508361969812651E-01 + -0.3508506853043958E-01 + -0.3508638585667701E-01 + -0.3508757060626766E-01 + -0.3508862171179819E-01 + -0.3508953809931930E-01 + -0.3509031867881393E-01 + -0.3509096235739322E-01 + -0.3509146804957397E-01 + -0.3509183468001551E-01 + -0.3509206117325103E-01 + -0.3509214644913816E-01 + -0.3509208942403142E-01 + -0.3509188901344313E-01 + -0.3509154413110108E-01 + -0.3509105368971306E-01 + -0.3509041660209722E-01 + -0.3508963178247543E-01 + -0.3508869814486053E-01 + -0.3508761460330020E-01 + -0.3508638007216757E-01 + -0.3508499346500818E-01 + -0.3508345368976911E-01 + -0.3508175964987758E-01 + -0.3507991024926824E-01 + -0.3507790439921572E-01 + -0.3507574101364733E-01 + -0.3507341900500227E-01 + -0.3507093728218472E-01 + -0.3506829475290016E-01 + -0.3506549032202869E-01 + -0.3506252289021727E-01 + -0.3505939135736930E-01 + -0.3505609462584001E-01 + -0.3505263160002117E-01 + -0.3504900118435572E-01 + -0.3504520228673560E-01 + -0.3504123381629526E-01 + -0.3503709467794547E-01 + -0.3503278376298257E-01 + -0.3502829995930962E-01 + -0.3502364216248282E-01 + -0.3501880928222792E-01 + -0.3501380022877478E-01 + -0.3500861390219157E-01 + -0.3500324919288445E-01 + -0.3499770499075789E-01 + -0.3499198018877966E-01 + -0.3498607368115615E-01 + -0.3497998436283401E-01 + -0.3497371113335346E-01 + -0.3496725289293201E-01 + -0.3496060853711805E-01 + -0.3495377695279056E-01 + -0.3494675702547681E-01 + -0.3493954764449203E-01 + -0.3493214770311881E-01 + -0.3492455609426192E-01 + -0.3491677171010412E-01 + -0.3490879344217257E-01 + -0.3490062018016633E-01 + -0.3489225080767132E-01 + -0.3488368420618074E-01 + -0.3487491925941201E-01 + -0.3486595485662474E-01 + -0.3485678988720886E-01 + -0.3484742323691943E-01 + -0.3483785378743691E-01 + -0.3482808041998933E-01 + -0.3481810201860705E-01 + -0.3480791746879455E-01 + -0.3479752565492965E-01 + -0.3478692545795190E-01 + -0.3477611575734447E-01 + -0.3476509543191219E-01 + -0.3475386335963756E-01 + -0.3474241841795905E-01 + -0.3473075948622157E-01 + -0.3471888544631330E-01 + -0.3470679517922672E-01 + -0.3469448755904150E-01 + -0.3468196145502783E-01 + -0.3466921573758577E-01 + -0.3465624928635213E-01 + -0.3464306098373380E-01 + -0.3462964970555268E-01 + -0.3461601431094707E-01 + -0.3460215365634304E-01 + -0.3458806662170360E-01 + -0.3457375211972669E-01 + -0.3455920905787559E-01 + -0.3454443624374910E-01 + -0.3452943241140358E-01 + -0.3451419644091394E-01 + -0.3449872812238317E-01 + -0.3448302759119587E-01 + -0.3446709504933410E-01 + -0.3445093089456134E-01 + -0.3443453556060621E-01 + -0.3441790945383600E-01 + -0.3440105293888731E-01 + -0.3438396637781914E-01 + -0.3436665014393898E-01 + -0.3434910461969003E-01 + -0.3433133018714537E-01 + -0.3431332722254642E-01 + -0.3429509609983372E-01 + -0.3427663719428475E-01 + -0.3425795088502984E-01 + -0.3423903755220068E-01 + -0.3421989757613335E-01 + -0.3420053133732945E-01 + -0.3418093921641335E-01 + -0.3416112159184794E-01 + -0.3414107884020703E-01 + -0.3412081133884031E-01 + -0.3410031946991865E-01 + -0.3407960361799496E-01 + -0.3405866416565449E-01 + -0.3403750148749659E-01 + -0.3401611595654068E-01 + -0.3399450795204961E-01 + -0.3397267786458598E-01 + -0.3395062608588609E-01 + -0.3392835300176806E-01 + -0.3390585899228698E-01 + -0.3388314443727250E-01 + -0.3386020971477796E-01 + -0.3383705520206917E-01 + -0.3381368127894468E-01 + -0.3379008833482017E-01 + -0.3376627676173628E-01 + -0.3374224694688776E-01 + -0.3371799926732924E-01 + -0.3369353409941214E-01 + -0.3366885182768834E-01 + -0.3364395284547239E-01 + -0.3361883754579706E-01 + -0.3359350631252371E-01 + -0.3356795952442738E-01 + -0.3354219756193204E-01 + -0.3351622081235314E-01 + -0.3349002966515883E-01 + -0.3346362451006448E-01 + -0.3343700573701324E-01 + -0.3341017373606859E-01 + -0.3338312889325920E-01 + -0.3335587158982150E-01 + -0.3332840220774628E-01 + -0.3330072113803133E-01 + -0.3327282877739731E-01 + -0.3324472552103984E-01 + -0.3321641175488745E-01 + -0.3318788786210785E-01 + -0.3315915422779929E-01 + -0.3313021124149058E-01 + -0.3310105929361491E-01 + -0.3307169877508196E-01 + -0.3304213007734135E-01 + -0.3301235359227611E-01 + -0.3298236971398793E-01 + -0.3295217883818514E-01 + -0.3292178135919985E-01 + -0.3289117766216845E-01 + -0.3286036812915593E-01 + -0.3282935314676690E-01 + -0.3279813311370876E-01 + -0.3276670843089915E-01 + -0.3273507949562307E-01 + -0.3270324669989114E-01 + -0.3267121043545540E-01 + -0.3263897109292929E-01 + -0.3260652906212821E-01 + -0.3257388473393007E-01 + -0.3254103850474293E-01 + -0.3250799077329709E-01 + -0.3247474193731430E-01 + -0.3244129239086410E-01 + -0.3240764252754823E-01 + -0.3237379274251377E-01 + -0.3233974343317813E-01 + -0.3230549499714476E-01 + -0.3227104782808261E-01 + -0.3223640231643495E-01 + -0.3220155885427370E-01 + -0.3216651784443458E-01 + -0.3213127969456677E-01 + -0.3209584480834526E-01 + -0.3206021357518035E-01 + -0.3202438638173741E-01 + -0.3198836362270048E-01 + -0.3195214570638345E-01 + -0.3191573304217892E-01 + -0.3187912602978132E-01 + -0.3184232506005486E-01 + -0.3180533052445334E-01 + -0.3176814282001272E-01 + -0.3173076234657927E-01 + -0.3169318950601074E-01 + -0.3165542470702003E-01 + -0.3161746836008155E-01 + -0.3157932086827141E-01 + -0.3154098262037270E-01 + -0.3150245400431557E-01 + -0.3146373542030487E-01 + -0.3142482728085158E-01 + -0.3138572999818439E-01 + -0.3134644397513999E-01 + -0.3130696960970735E-01 + -0.3126730730040111E-01 + -0.3122745744732629E-01 + -0.3118742045121242E-01 + -0.3114719671539117E-01 + -0.3110678664836819E-01 + -0.3106619065937613E-01 + -0.3102540915368099E-01 + -0.3098444253215344E-01 + -0.3094329119596844E-01 + -0.3090195554946851E-01 + -0.3086043599895243E-01 + -0.3081873295125067E-01 + -0.3077684681463582E-01 + -0.3073477799797635E-01 + -0.3069252690710316E-01 + -0.3065009394045691E-01 + -0.3060747949593869E-01 + -0.3056468398124986E-01 + -0.3052170781589511E-01 + -0.3047855141896582E-01 + -0.3043521519397951E-01 + -0.3039169953453604E-01 + -0.3034800483773643E-01 + -0.3030413151890298E-01 + -0.3026007999949433E-01 + -0.3021585069604861E-01 + -0.3017144401203520E-01 + -0.3012686034913433E-01 + -0.3008210011196611E-01 + -0.3003716370897518E-01 + -0.2999205154938917E-01 + -0.2994676404635630E-01 + -0.2990130161587437E-01 + -0.2985566467331253E-01 + -0.2980985362875241E-01 + -0.2976386889051614E-01 + -0.2971771086788977E-01 + -0.2967137997243722E-01 + -0.2962487661631010E-01 + -0.2957820121044495E-01 + -0.2953135416388099E-01 + -0.2948433588617600E-01 + -0.2943714679371171E-01 + -0.2938978730823458E-01 + -0.2934225784986317E-01 + -0.2929455882568138E-01 + -0.2924669063766724E-01 + -0.2919865369256672E-01 + -0.2915044841172616E-01 + -0.2910207521949371E-01 + -0.2905353453425107E-01 + -0.2900482676461547E-01 + -0.2895595231886473E-01 + -0.2890691161102055E-01 + -0.2885770506005181E-01 + -0.2880833308526665E-01 + -0.2875879610570369E-01 + -0.2870909454042546E-01 + -0.2865922880737850E-01 + -0.2860919931992330E-01 + -0.2855900649063166E-01 + -0.2850865073419151E-01 + -0.2845813246884476E-01 + -0.2840745211337037E-01 + -0.2835661008555573E-01 + -0.2830560680227339E-01 + -0.2825444268095283E-01 + -0.2820311814212857E-01 + -0.2815163360799914E-01 + -0.2809998950041553E-01 + -0.2804818623906238E-01 + -0.2799622424328208E-01 + -0.2794410393195342E-01 + -0.2789182572280000E-01 + -0.2783939003365059E-01 + -0.2778679728287508E-01 + -0.2773404788939390E-01 + -0.2768114227318523E-01 + -0.2762808086182850E-01 + -0.2757486408716478E-01 + -0.2752149237756916E-01 + -0.2746796614520051E-01 + -0.2741428579800969E-01 + -0.2736045175158238E-01 + -0.2730646443771541E-01 + -0.2725232429030731E-01 + -0.2719803173647540E-01 + -0.2714358719562212E-01 + -0.2708899108700181E-01 + -0.2703424383038819E-01 + -0.2697934584596975E-01 + -0.2692429755608499E-01 + -0.2686909939254433E-01 + -0.2681375179020467E-01 + -0.2675825517905657E-01 + -0.2670260997708434E-01 + -0.2664681660089802E-01 + -0.2659087547320771E-01 + -0.2653478702425330E-01 + -0.2647855168446255E-01 + -0.2642216987817817E-01 + -0.2636564202580484E-01 + -0.2630896855016750E-01 + -0.2625214988651823E-01 + -0.2619518647447343E-01 + -0.2613807874754355E-01 + -0.2608082712261219E-01 + -0.2602343201427102E-01 + -0.2596589384702601E-01 + -0.2590821305885437E-01 + -0.2585039008811315E-01 + -0.2579242536192628E-01 + -0.2573431929931292E-01 + -0.2567607232176287E-01 + -0.2561768486562714E-01 + -0.2555915737299538E-01 + -0.2550049028180806E-01 + -0.2544168401725921E-01 + -0.2538273900246976E-01 + -0.2532365566361519E-01 + -0.2526443443134071E-01 + -0.2520507573698115E-01 + -0.2514558001346052E-01 + -0.2508594769502639E-01 + -0.2502617921573408E-01 + -0.2496627500662972E-01 + -0.2490623549765775E-01 + -0.2484606112014876E-01 + -0.2478575230939623E-01 + -0.2472530950168525E-01 + -0.2466473313181955E-01 + -0.2460402363197857E-01 + -0.2454318143437563E-01 + -0.2448220697235718E-01 + -0.2442110068029693E-01 + -0.2435986299269120E-01 + -0.2429849434306509E-01 + -0.2423699516463467E-01 + -0.2417536589198993E-01 + -0.2411360696405149E-01 + -0.2405171882089171E-01 + -0.2398970189949299E-01 + -0.2392755663098221E-01 + -0.2386528344630927E-01 + -0.2380288278142326E-01 + -0.2374035507710893E-01 + -0.2367770077431035E-01 + -0.2361492031177482E-01 + -0.2355201412725880E-01 + -0.2348898265776179E-01 + -0.2342582633646754E-01 + -0.2336254559581932E-01 + -0.2329914087343374E-01 + -0.2323561261709694E-01 + -0.2317196127566742E-01 + -0.2310818728852558E-01 + -0.2304429108498402E-01 + -0.2298027309523154E-01 + -0.2291613376056068E-01 + -0.2285187352860834E-01 + -0.2278749284522661E-01 + -0.2272299214698482E-01 + -0.2265837186803535E-01 + -0.2259363244687584E-01 + -0.2252877433137151E-01 + -0.2246379797061076E-01 + -0.2239870380570561E-01 + -0.2233349226843280E-01 + -0.2226816379149233E-01 + -0.2220271882113744E-01 + -0.2213715781210087E-01 + -0.2207148121646703E-01 + -0.2200568947131351E-01 + -0.2193978300919397E-01 + -0.2187376226807478E-01 + -0.2180762769890384E-01 + -0.2174137975460551E-01 + -0.2167501888044335E-01 + -0.2160854551180109E-01 + -0.2154196008449100E-01 + -0.2147526304506472E-01 + -0.2140845484746692E-01 + -0.2134153594392610E-01 + -0.2127450677505673E-01 + -0.2120736777759228E-01 + -0.2114011939247146E-01 + -0.2107276207170453E-01 + -0.2100529626930045E-01 + -0.2093772243520325E-01 + -0.2087004101352942E-01 + -0.2080225244828199E-01 + -0.2073435718498505E-01 + -0.2066635567036559E-01 + -0.2059824835160215E-01 + -0.2053003567720996E-01 + -0.2046171809638010E-01 + -0.2039329605931123E-01 + -0.2032477001873406E-01 + -0.2025614042797185E-01 + -0.2018740773486441E-01 + -0.2011857237861757E-01 + -0.2004963479859304E-01 + -0.1998059544547093E-01 + -0.1991145477929085E-01 + -0.1984221325890204E-01 + -0.1977287133131195E-01 + -0.1970342943859424E-01 + -0.1963388802651247E-01 + -0.1956424755275487E-01 + -0.1949450847766834E-01 + -0.1942467125705522E-01 + -0.1935473633878294E-01 + -0.1928470417018349E-01 + -0.1921457519903278E-01 + -0.1914434987353279E-01 + -0.1907402864312289E-01 + -0.1900361196520332E-01 + -0.1893310030108767E-01 + -0.1886249411018731E-01 + -0.1879179384396361E-01 + -0.1872099995220404E-01 + -0.1865011288476078E-01 + -0.1857913309138439E-01 + -0.1850806102235138E-01 + -0.1843689713525127E-01 + -0.1836564189493711E-01 + -0.1829429576541228E-01 + -0.1822285919839294E-01 + -0.1815133263927871E-01 + -0.1807971653646670E-01 + -0.1800801135034246E-01 + -0.1793621754459638E-01 + -0.1786433557950216E-01 + -0.1779236590795952E-01 + -0.1772030898228219E-01 + -0.1764816525799931E-01 + -0.1757593519412406E-01 + -0.1750361925002830E-01 + -0.1743121788472726E-01 + -0.1735873155713796E-01 + -0.1728616072609786E-01 + -0.1721350584915466E-01 + -0.1714076738365909E-01 + -0.1706794578661063E-01 + -0.1699504151387461E-01 + -0.1692205502152435E-01 + -0.1684898677071627E-01 + -0.1677583722864777E-01 + -0.1670260686225133E-01 + -0.1662929612884420E-01 + -0.1655590547971634E-01 + -0.1648243536881064E-01 + -0.1640888626333231E-01 + -0.1633525863494719E-01 + -0.1626155294946425E-01 + -0.1618776965739413E-01 + -0.1611390920733482E-01 + -0.1603997205904402E-01 + -0.1596595868689635E-01 + -0.1589186956568807E-01 + -0.1581770515979572E-01 + -0.1574346592637393E-01 + -0.1566915232264424E-01 + -0.1559476480589297E-01 + -0.1552030383359663E-01 + -0.1544576986818952E-01 + -0.1537116338562833E-01 + -0.1529648486421704E-01 + -0.1522173477066773E-01 + -0.1514691355478666E-01 + -0.1507202166624106E-01 + -0.1499705956926018E-01 + -0.1492202773934730E-01 + -0.1484692665128693E-01 + -0.1477175677192934E-01 + -0.1469651856510994E-01 + -0.1462121249473565E-01 + -0.1454583902442306E-01 + -0.1447039861795554E-01 + -0.1439489174062220E-01 + -0.1431931885996172E-01 + -0.1424368044393607E-01 + -0.1416797696058271E-01 + -0.1409220887804237E-01 + -0.1401637666452812E-01 + -0.1394048078720751E-01 + -0.1386452171292894E-01 + -0.1378849991042769E-01 + -0.1371241585439350E-01 + -0.1363627002093791E-01 + -0.1356006287976445E-01 + -0.1348379488912762E-01 + -0.1340746650682401E-01 + -0.1333107820056782E-01 + -0.1325463044731318E-01 + -0.1317812372402681E-01 + -0.1310155850313231E-01 + -0.1302493525496336E-01 + -0.1294825444990183E-01 + -0.1287151655784470E-01 + -0.1279472204876192E-01 + -0.1271787139273872E-01 + -0.1264096505984319E-01 + -0.1256400352042342E-01 + -0.1248698724644876E-01 + -0.1240991671153833E-01 + -0.1233279238973176E-01 + -0.1225561475626829E-01 + -0.1217838428715199E-01 + -0.1210110145724227E-01 + -0.1202376673557531E-01 + -0.1194638058981384E-01 + -0.1186894349069044E-01 + -0.1179145591521949E-01 + -0.1171391834138333E-01 + -0.1163633124556402E-01 + -0.1155869510231729E-01 + -0.1148101038601290E-01 + -0.1140327756782710E-01 + -0.1132549711713967E-01 + -0.1124766950560085E-01 + -0.1116979521496986E-01 + -0.1109187473021379E-01 + -0.1101390853235522E-01 + -0.1093589709272549E-01 + -0.1085784088158710E-01 + -0.1077974037352717E-01 + -0.1070159604840336E-01 + -0.1062340838616758E-01 + -0.1054517786143782E-01 + -0.1046690494542488E-01 + -0.1038859011159983E-01 + -0.1031023384482010E-01 + -0.1023183663391453E-01 + -0.1015339896306385E-01 + -0.1007492130383040E-01 + -0.9996404126054017E-02 + -0.9917847904594741E-02 + -0.9839253121024740E-02 + -0.9760620257552221E-02 + -0.9681949795580525E-02 + -0.9603242216003750E-02 + -0.9524497999506462E-02 + -0.9445717624343457E-02 + -0.9366901568027565E-02 + -0.9288050309613121E-02 + -0.9209164332164093E-02 + -0.9130244119636009E-02 + -0.9051290153930848E-02 + -0.8972302913765656E-02 + -0.8893282878028494E-02 + -0.8814230528967652E-02 + -0.8735146351546515E-02 + -0.8656030830617421E-02 + -0.8576884448374722E-02 + -0.8497707686068319E-02 + -0.8418501025120888E-02 + -0.8339264946960425E-02 + -0.8259999933248636E-02 + -0.8180706468054050E-02 + -0.8101385039230179E-02 + -0.8022036134901837E-02 + -0.7942660237784839E-02 + -0.7863257825918000E-02 + -0.7783829378491680E-02 + -0.7704375382967545E-02 + -0.7624896330714945E-02 + -0.7545392710703132E-02 + -0.7465865002525650E-02 + -0.7386313683929389E-02 + -0.7306739239436844E-02 + -0.7227142165618781E-02 + -0.7147522959949431E-02 + -0.7067882107527659E-02 + -0.6988220081627103E-02 + -0.6908537356718291E-02 + -0.6828834419659647E-02 + -0.6749111763673560E-02 + -0.6669369881939442E-02 + -0.6589609266510516E-02 + -0.6509830409322116E-02 + -0.6430033799029898E-02 + -0.6350219917492796E-02 + -0.6270389246160210E-02 + -0.6190542271193655E-02 + -0.6110679483691971E-02 + -0.6030801375155773E-02 + -0.5950908436627521E-02 + -0.5871001159008980E-02 + -0.5791080032733735E-02 + -0.5711145545286710E-02 + -0.5631198183520958E-02 + -0.5551238436725732E-02 + -0.5471266799255529E-02 + -0.5391283766170850E-02 + -0.5311289827008324E-02 + -0.5231285464891114E-02 + -0.5151271163833493E-02 + -0.5071247419059823E-02 + -0.4991214732758112E-02 + -0.4911173604317981E-02 + -0.4831124517698231E-02 + -0.4751067952253240E-02 + -0.4671004394109726E-02 + -0.4590934345566477E-02 + -0.4510858311325753E-02 + -0.4430776787673381E-02 + -0.4350690260154232E-02 + -0.4270599214379392E-02 + -0.4190504142693633E-02 + -0.4110405542063642E-02 + -0.4030303909233330E-02 + -0.3950199738104642E-02 + -0.3870093521762986E-02 + -0.3789985753788075E-02 + -0.3709876928669334E-02 + -0.3629767541264500E-02 + -0.3549658086950024E-02 + -0.3469549061726362E-02 + -0.3389440961780372E-02 + -0.3309334282227049E-02 + -0.3229229517452910E-02 + -0.3149127162342410E-02 + -0.3069027713709071E-02 + -0.2988931669259825E-02 + -0.2908839526340094E-02 + -0.2828751780698332E-02 + -0.2748668928002811E-02 + -0.2668591465003126E-02 + -0.2588519889972770E-02 + -0.2508454701473380E-02 + -0.2428396397140903E-02 + -0.2348345473904189E-02 + -0.2268302429058896E-02 + -0.2188267761156684E-02 + -0.2108241969425487E-02 + -0.2028225553049951E-02 + -0.1948219010473658E-02 + -0.1868222840187032E-02 + -0.1788237541122716E-02 + -0.1708263612788371E-02 + -0.1628301554955356E-02 + -0.1548351867292245E-02 + -0.1468415049402612E-02 + -0.1388491601206269E-02 + -0.1308582023475904E-02 + -0.1228686817517284E-02 + -0.1148806484555534E-02 + -0.1068941524825315E-02 + -0.9890924385281032E-03 + -0.9092597265504841E-03 + -0.8294438908391150E-03 + -0.7496454336603882E-03 + -0.6698648570934628E-03 + -0.5901026630376702E-03 + -0.5103593536046908E-03 + -0.4306354309793693E-03 + -0.3509313975044001E-03 + -0.2712477557941280E-03 + -0.1915850088030850E-03 + -0.1119436597598246E-03 + -0.3232421222440159E-04 + 0.4727282982610436E-04 + 0.1268469621984346E-03 + 0.2063976818972677E-03 + 0.2859244872412911E-03 + 0.3654268750961762E-03 + 0.4449043293595126E-03 + 0.5243563264020056E-03 + 0.6037823411706201E-03 + 0.6831818433797617E-03 + 0.7625543010493794E-03 + 0.8418991821886737E-03 + 0.9212159551172682E-03 + 0.1000504087986244E-02 + 0.1079763049182976E-02 + 0.1158992307422384E-02 + 0.1238191331176205E-02 + 0.1317359588481039E-02 + 0.1396496547001827E-02 + 0.1475601674145550E-02 + 0.1554674437090533E-02 + 0.1633714302763026E-02 + 0.1712720737849995E-02 + 0.1791693208834697E-02 + 0.1870631181955842E-02 + 0.1949534123551751E-02 + 0.2028401500170316E-02 + 0.2107232778084797E-02 + 0.2186027422743378E-02 + 0.2264784898942118E-02 + 0.2343504671416145E-02 + 0.2422186205843836E-02 + 0.2500828968070693E-02 + 0.2579432423400384E-02 + 0.2657996036092227E-02 + 0.2736519270010787E-02 + 0.2815001588895974E-02 + 0.2893442456422575E-02 + 0.2971841336058423E-02 + 0.3050197691593045E-02 + 0.3128510986999340E-02 + 0.3206780685921299E-02 + 0.3285006251233432E-02 + 0.3363187145348154E-02 + 0.3441322830579022E-02 + 0.3519412769483932E-02 + 0.3597456424458465E-02 + 0.3675453257750447E-02 + 0.3753402731523534E-02 + 0.3831304307674385E-02 + 0.3909157447469662E-02 + 0.3986961611605305E-02 + 0.4064716260728175E-02 + 0.4142420856822543E-02 + 0.4220074862310698E-02 + 0.4297677738048521E-02 + 0.4375228940119254E-02 + 0.4452727923439971E-02 + 0.4530174148425691E-02 + 0.4607567085245179E-02 + 0.4684906204173874E-02 + 0.4762190962513524E-02 + 0.4839420805596669E-02 + 0.4916595180198372E-02 + 0.4993713550165419E-02 + 0.5070775387471317E-02 + 0.5147780159991723E-02 + 0.5224727320383406E-02 + 0.5301616317476875E-02 + 0.5378446602956172E-02 + 0.5455217634220610E-02 + 0.5531928869273783E-02 + 0.5608579770286180E-02 + 0.5685169803647012E-02 + 0.5761698434293186E-02 + 0.5838165114208035E-02 + 0.5914569288333206E-02 + 0.5990910404758941E-02 + 0.6067187926184449E-02 + 0.6143401318997890E-02 + 0.6219550044546436E-02 + 0.6295633553784708E-02 + 0.6371651296171256E-02 + 0.6447602722490847E-02 + 0.6523487285030995E-02 + 0.6599304436785634E-02 + 0.6675053639508352E-02 + 0.6750734360006197E-02 + 0.6826346061353490E-02 + 0.6901888189470384E-02 + 0.6977360185006023E-02 + 0.7052761494145965E-02 + 0.7128091576401808E-02 + 0.7203349892872329E-02 + 0.7278535901076135E-02 + 0.7353649054218524E-02 + 0.7428688804825172E-02 + 0.7503654603136488E-02 + 0.7578545897818909E-02 + 0.7653362138344365E-02 + 0.7728102779712876E-02 + 0.7802767278578886E-02 + 0.7877355089966924E-02 + 0.7951865665080737E-02 + 0.8026298454295800E-02 + 0.8100652907793077E-02 + 0.8174928475581043E-02 + 0.8249124607616675E-02 + 0.8323240756294140E-02 + 0.8397276375673666E-02 + 0.8471230918881833E-02 + 0.8545103834529110E-02 + 0.8618894569403448E-02 + 0.8692602571899021E-02 + 0.8766227295530440E-02 + 0.8839768194420802E-02 + 0.8913224717376153E-02 + 0.8986596305476123E-02 + 0.9059882399579388E-02 + 0.9133082450165485E-02 + 0.9206195915207848E-02 + 0.9279222251830451E-02 + 0.9352160911574515E-02 + 0.9425011343552232E-02 + 0.9497772994238504E-02 + 0.9570445302258259E-02 + 0.9643027704605228E-02 + 0.9715519648058809E-02 + 0.9787920595460340E-02 + 0.9860230009887150E-02 + 0.9932447336184202E-02 + 0.1000457200343864E-01 + 0.1007660344277755E-01 + 0.1014854110600270E-01 + 0.1022038445410075E-01 + 0.1029213294426255E-01 + 0.1036378602064623E-01 + 0.1043534312432398E-01 + 0.1050680369751619E-01 + 0.1057816718470500E-01 + 0.1064943303043209E-01 + 0.1072060068015614E-01 + 0.1079166958019113E-01 + 0.1086263917659160E-01 + 0.1093350891476881E-01 + 0.1100427823968434E-01 + 0.1107494659605985E-01 + 0.1114551342843367E-01 + 0.1121597818110506E-01 + 0.1128634029817211E-01 + 0.1135659922358451E-01 + 0.1142675440103173E-01 + 0.1149680527355775E-01 + 0.1156675128354503E-01 + 0.1163659187329877E-01 + 0.1170632648674942E-01 + 0.1177595456860506E-01 + 0.1184547556355120E-01 + 0.1191488891700108E-01 + 0.1198419407436973E-01 + 0.1205339047821393E-01 + 0.1212247756515514E-01 + 0.1219145477093220E-01 + 0.1226032153475689E-01 + 0.1232907729984753E-01 + 0.1239772150950734E-01 + 0.1246625360793881E-01 + 0.1253467303978957E-01 + 0.1260297924904851E-01 + 0.1267117167741507E-01 + 0.1273924976570551E-01 + 0.1280721295371899E-01 + 0.1287506067916226E-01 + 0.1294279237922894E-01 + 0.1301040749143162E-01 + 0.1307790545374961E-01 + 0.1314528570444626E-01 + 0.1321254768755404E-01 + 0.1327969085087242E-01 + 0.1334671463993886E-01 + 0.1341361848859648E-01 + 0.1348040182653121E-01 + 0.1354706408790203E-01 + 0.1361360471928230E-01 + 0.1368002316890306E-01 + 0.1374631887635448E-01 + 0.1381249126939347E-01 + 0.1387853977564823E-01 + 0.1394446383612342E-01 + 0.1401026290157948E-01 + 0.1407593642005730E-01 + 0.1414148382278383E-01 + 0.1420690453445382E-01 + 0.1427219798490263E-01 + 0.1433736361978889E-01 + 0.1440240088736386E-01 + 0.1446730922833268E-01 + 0.1453208807207008E-01 + 0.1459673684721114E-01 + 0.1466125498929086E-01 + 0.1472564193936525E-01 + 0.1478989713763286E-01 + 0.1485402001875753E-01 + 0.1491801001493017E-01 + 0.1498186655934547E-01 + 0.1504558908913018E-01 + 0.1510917704200288E-01 + 0.1517262985410805E-01 + 0.1523594695912862E-01 + 0.1529912779051892E-01 + 0.1536217178589474E-01 + 0.1542507838653464E-01 + 0.1548784703215366E-01 + 0.1555047715106113E-01 + 0.1561296816612687E-01 + 0.1567531950405830E-01 + 0.1573753060647186E-01 + 0.1579960091815224E-01 + 0.1586152987700123E-01 + 0.1592331690844197E-01 + 0.1598496143672996E-01 + 0.1604646289479299E-01 + 0.1610782072400197E-01 + 0.1616903436488295E-01 + 0.1623010324943454E-01 + 0.1629102680515259E-01 + 0.1635180446072583E-01 + 0.1641243565066276E-01 + 0.1647291981075395E-01 + 0.1653325637360184E-01 + 0.1659344476558339E-01 + 0.1665348441238241E-01 + 0.1671337474693537E-01 + 0.1677311520995819E-01 + 0.1683270524137403E-01 + 0.1689214427168355E-01 + 0.1695143172594019E-01 + 0.1701056702966127E-01 + 0.1706954961166085E-01 + 0.1712837890152090E-01 + 0.1718705433061977E-01 + 0.1724557533469210E-01 + 0.1730394134974065E-01 + 0.1736215180803279E-01 + 0.1742020613748906E-01 + 0.1747810376542671E-01 + 0.1753584411762575E-01 + 0.1759342661881072E-01 + 0.1765085069561957E-01 + 0.1770811578552394E-01 + 0.1776522132924542E-01 + 0.1782216676081054E-01 + 0.1787895149794113E-01 + 0.1793557495596868E-01 + 0.1799203656238757E-01 + 0.1804833576047955E-01 + 0.1810447199311119E-01 + 0.1816044468729251E-01 + 0.1821625325906129E-01 + 0.1827189712566888E-01 + 0.1832737571365101E-01 + 0.1838268845265610E-01 + 0.1843783477431618E-01 + 0.1849281411617151E-01 + 0.1854762591635915E-01 + 0.1860226960268711E-01 + 0.1865674458839690E-01 + 0.1871105028637659E-01 + 0.1876518612370906E-01 + 0.1881915153814009E-01 + 0.1887294596600751E-01 + 0.1892656883432401E-01 + 0.1898001956630357E-01 + 0.1903329758552750E-01 + 0.1908640231725028E-01 + 0.1913933318685723E-01 + 0.1919208962036295E-01 + 0.1924467104490613E-01 + 0.1929707688752289E-01 + 0.1934930657546344E-01 + 0.1940135953611308E-01 + 0.1945323519608862E-01 + 0.1950493297798584E-01 + 0.1955645230251661E-01 + 0.1960779259198544E-01 + 0.1965895327475936E-01 + 0.1970993378027872E-01 + 0.1976073353589641E-01 + 0.1981135196555052E-01 + 0.1986178849257716E-01 + 0.1991204253929708E-01 + 0.1996211352708354E-01 + 0.2001200087792656E-01 + 0.2006170402069428E-01 + 0.2011122238742052E-01 + 0.2016055540683994E-01 + 0.2020970249576634E-01 + 0.2025866306804427E-01 + 0.2030743654317524E-01 + 0.2035602235162903E-01 + 0.2040441992455065E-01 + 0.2045262868516699E-01 + 0.2050064804877150E-01 + 0.2054847743134598E-01 + 0.2059611626008471E-01 + 0.2064356396799568E-01 + 0.2069081998487826E-01 + 0.2073788372751413E-01 + 0.2078475460909004E-01 + 0.2083143204776297E-01 + 0.2087791547238518E-01 + 0.2092420431276072E-01 + 0.2097029799348595E-01 + 0.2101619593344982E-01 + 0.2106189755095982E-01 + 0.2110740226354634E-01 + 0.2115270948818229E-01 + 0.2119781864362325E-01 + 0.2124272915797232E-01 + 0.2128744046189434E-01 + 0.2133195198124960E-01 + 0.2137626313108052E-01 + 0.2142037332483912E-01 + 0.2146428198084036E-01 + 0.2150798852333207E-01 + 0.2155149237649980E-01 + 0.2159479296213335E-01 + 0.2163788970039560E-01 + 0.2168078201157311E-01 + 0.2172346931777356E-01 + 0.2176595104153102E-01 + 0.2180822660291602E-01 + 0.2185029541605907E-01 + 0.2189215689412738E-01 + 0.2193381045767979E-01 + 0.2197525553718029E-01 + 0.2201649156247645E-01 + 0.2205751794896699E-01 + 0.2209833410176480E-01 + 0.2213893942880698E-01 + 0.2217933335706727E-01 + 0.2221951532028268E-01 + 0.2225948474609949E-01 + 0.2229924104522729E-01 + 0.2233878362531276E-01 + 0.2237811190090301E-01 + 0.2241722529674552E-01 + 0.2245612323787940E-01 + 0.2249480514464023E-01 + 0.2253327043365336E-01 + 0.2257151852132393E-01 + 0.2260954882457761E-01 + 0.2264736076040350E-01 + 0.2268495374628576E-01 + 0.2272232720180450E-01 + 0.2275948054674746E-01 + 0.2279641319998109E-01 + 0.2283312457903893E-01 + 0.2286961410122728E-01 + 0.2290588118564954E-01 + 0.2294192525290842E-01 + 0.2297774572222155E-01 + 0.2301334200375375E-01 + 0.2304871350349189E-01 + 0.2308385963185025E-01 + 0.2311877981552776E-01 + 0.2315347348455281E-01 + 0.2318794006266091E-01 + 0.2322217896261767E-01 + 0.2325618959599700E-01 + 0.2328997137728907E-01 + 0.2332352372370520E-01 + 0.2335684605175748E-01 + 0.2338993777299675E-01 + 0.2342279829640174E-01 + 0.2345542703479091E-01 + 0.2348782341682601E-01 + 0.2351998687478645E-01 + 0.2355191682980476E-01 + 0.2358361268144244E-01 + 0.2361507382719887E-01 + 0.2364629968031139E-01 + 0.2367728967024370E-01 + 0.2370804322571822E-01 + 0.2373855976347567E-01 + 0.2376883869362091E-01 + 0.2379887942645956E-01 + 0.2382868137427979E-01 + 0.2385824394974356E-01 + 0.2388756656703716E-01 + 0.2391664864392169E-01 + 0.2394548959840551E-01 + 0.2397408884798154E-01 + 0.2400244580959107E-01 + 0.2403055989971496E-01 + 0.2405843053245235E-01 + 0.2408605712037597E-01 + 0.2411343907417498E-01 + 0.2414057579639178E-01 + 0.2416746668699155E-01 + 0.2419411116667395E-01 + 0.2422050870603523E-01 + 0.2424665879502352E-01 + 0.2427256135519689E-01 + 0.2429821684496494E-01 + 0.2432362575416089E-01 + 0.2434878854411843E-01 + 0.2437370565742303E-01 + 0.2439837753847906E-01 + 0.2442280464224371E-01 + 0.2444698742741193E-01 + 0.2447092634998362E-01 + 0.2449462185837136E-01 + 0.2451807440014263E-01 + 0.2454128443084245E-01 + 0.2456425241682557E-01 + 0.2458697882452113E-01 + 0.2460946410747385E-01 + 0.2463170870993048E-01 + 0.2465371307853615E-01 + 0.2467547767446938E-01 + 0.2469700296452700E-01 + 0.2471828941363284E-01 + 0.2473933748065162E-01 + 0.2476014762357859E-01 + 0.2478072030179716E-01 + 0.2480105597664407E-01 + 0.2482115510978844E-01 + 0.2484101816198648E-01 + 0.2486064559331839E-01 + 0.2488003786466375E-01 + 0.2489919544096276E-01 + 0.2491811878900091E-01 + 0.2493680837423824E-01 + 0.2495526465717610E-01 + 0.2497348809757554E-01 + 0.2499147915971870E-01 + 0.2500923831519955E-01 + 0.2502676603618681E-01 + 0.2504406278853259E-01 + 0.2506112903257230E-01 + 0.2507796522973474E-01 + 0.2509457184951092E-01 + 0.2511094936524682E-01 + 0.2512709824884078E-01 + 0.2514301896614203E-01 + 0.2515871198187178E-01 + 0.2517417776494941E-01 + 0.2518941679173593E-01 + 0.2520442953938253E-01 + 0.2521921648002455E-01 + 0.2523377808096649E-01 + 0.2524811480987053E-01 + 0.2526222713721682E-01 + 0.2527611553504986E-01 + 0.2528978047699238E-01 + 0.2530322244219602E-01 + 0.2531644191139755E-01 + 0.2532943936303523E-01 + 0.2534221527064076E-01 + 0.2535477010736357E-01 + 0.2536710434584936E-01 + 0.2537921845819374E-01 + 0.2539111291765290E-01 + 0.2540278820675924E-01 + 0.2541424481336753E-01 + 0.2542548322308491E-01 + 0.2543650391015719E-01 + 0.2544730734583771E-01 + 0.2545789400558316E-01 + 0.2546826437387982E-01 + 0.2547841893651486E-01 + 0.2548835817480764E-01 + 0.2549808256483048E-01 + 0.2550759258342705E-01 + 0.2551688871662439E-01 + 0.2552597145622932E-01 + 0.2553484129316325E-01 + 0.2554349871237193E-01 + 0.2555194419710920E-01 + 0.2556017822962465E-01 + 0.2556820128929780E-01 + 0.2557601385547355E-01 + 0.2558361641418762E-01 + 0.2559100945996051E-01 + 0.2559819348743218E-01 + 0.2560516898285983E-01 + 0.2561193642688506E-01 + 0.2561849630248192E-01 + 0.2562484910510466E-01 + 0.2563099533473340E-01 + 0.2563693548731914E-01 + 0.2564267004731284E-01 + 0.2564819949754970E-01 + 0.2565352432608305E-01 + 0.2565864502819668E-01 + 0.2566356209979717E-01 + 0.2566827603456019E-01 + 0.2567278732456122E-01 + 0.2567709646270854E-01 + 0.2568120394597532E-01 + 0.2568511027307587E-01 + 0.2568881594189076E-01 + 0.2569232144720035E-01 + 0.2569562728342695E-01 + 0.2569873394560124E-01 + 0.2570164192954547E-01 + 0.2570435173144856E-01 + 0.2570686384857033E-01 + 0.2570917877910006E-01 + 0.2571129702213440E-01 + 0.2571321908135043E-01 + 0.2571494546254648E-01 + 0.2571647666888431E-01 + 0.2571781319394781E-01 + 0.2571895552962813E-01 + 0.2571990417680446E-01 + 0.2572065965148542E-01 + 0.2572122247061103E-01 + 0.2572159313599225E-01 + 0.2572177213579661E-01 + 0.2572175996021957E-01 + 0.2572155711753550E-01 + 0.2572116412473604E-01 + 0.2572058149652926E-01 + 0.2571980973807981E-01 + 0.2571884935253141E-01 + 0.2571770084422849E-01 + 0.2571636471953041E-01 + 0.2571484148533445E-01 + 0.2571313165039638E-01 + 0.2571123572531850E-01 + 0.2570915422089461E-01 + 0.2570688764683251E-01 + 0.2570443651240347E-01 + 0.2570180132805138E-01 + 0.2569898260827073E-01 + 0.2569598086880870E-01 + 0.2569279662371009E-01 + 0.2568943038318660E-01 + 0.2568588265733446E-01 + 0.2568215395973969E-01 + 0.2567824480776766E-01 + 0.2567415571878910E-01 + 0.2566988720592712E-01 + 0.2566543977996939E-01 + 0.2566081395332657E-01 + 0.2565601024511035E-01 + 0.2565102917657846E-01 + 0.2564587126831750E-01 + 0.2564053703901068E-01 + 0.2563502700737028E-01 + 0.2562934169417305E-01 + 0.2562348162261281E-01 + 0.2561744731563371E-01 + 0.2561123928897872E-01 + 0.2560485805391106E-01 + 0.2559830412444812E-01 + 0.2559157802816253E-01 + 0.2558468029720145E-01 + 0.2557761146088881E-01 + 0.2557037204093144E-01 + 0.2556296255809183E-01 + 0.2555538353390520E-01 + 0.2554763549083566E-01 + 0.2553971895199072E-01 + 0.2553163444492093E-01 + 0.2552338250037143E-01 + 0.2551496364905391E-01 + 0.2550637841978242E-01 + 0.2549762734086611E-01 + 0.2548871093905159E-01 + 0.2547962973617361E-01 + 0.2547038425360120E-01 + 0.2546097502122743E-01 + 0.2545140258115853E-01 + 0.2544166747593756E-01 + 0.2543177023668576E-01 + 0.2542171138579755E-01 + 0.2541149144672506E-01 + 0.2540111094976074E-01 + 0.2539057042809636E-01 + 0.2537987041704274E-01 + 0.2536901145792333E-01 + 0.2535799409336872E-01 + 0.2534681886004762E-01 + 0.2533548628496239E-01 + 0.2532399689505786E-01 + 0.2531235122710287E-01 + 0.2530054982622025E-01 + 0.2528859323677972E-01 + 0.2527648199403489E-01 + 0.2526421662936879E-01 + 0.2525179767695836E-01 + 0.2523922568008181E-01 + 0.2522650118417999E-01 + 0.2521362473143296E-01 + 0.2520059685808240E-01 + 0.2518741810037998E-01 + 0.2517408900210772E-01 + 0.2516061011406593E-01 + 0.2514698198606884E-01 + 0.2513320515573225E-01 + 0.2511928015485724E-01 + 0.2510520751965908E-01 + 0.2509098780283377E-01 + 0.2507662156123555E-01 + 0.2506210934523638E-01 + 0.2504745169238958E-01 + 0.2503264913942134E-01 + 0.2501770223267734E-01 + 0.2500261152831666E-01 + 0.2498737758219317E-01 + 0.2497200094102807E-01 + 0.2495648214674903E-01 + 0.2494082174379042E-01 + 0.2492502028669388E-01 + 0.2490907833291536E-01 + 0.2489299643564146E-01 + 0.2487677513860211E-01 + 0.2486041498486693E-01 + 0.2484391652668723E-01 + 0.2482728032657448E-01 + 0.2481050694664491E-01 + 0.2479359693665799E-01 + 0.2477655083914276E-01 + 0.2475936920016462E-01 + 0.2474205258222327E-01 + 0.2472460155294342E-01 + 0.2470701667479823E-01 + 0.2468929849767609E-01 + 0.2467144757006880E-01 + 0.2465346444699226E-01 + 0.2463534969143336E-01 + 0.2461710386664875E-01 + 0.2459872753034809E-01 + 0.2458022123670853E-01 + 0.2456158554163385E-01 + 0.2454282100941128E-01 + 0.2452392820731811E-01 + 0.2450490770017533E-01 + 0.2448576004589223E-01 + 0.2446648580153892E-01 + 0.2444708552617930E-01 + 0.2442755978147622E-01 + 0.2440790912987787E-01 + 0.2438813413864792E-01 + 0.2436823537859926E-01 + 0.2434821341992629E-01 + 0.2432806882722925E-01 + 0.2430780216321291E-01 + 0.2428741399087681E-01 + 0.2426690487354111E-01 + 0.2424627537488134E-01 + 0.2422552606222705E-01 + 0.2420465750820933E-01 + 0.2418367028590291E-01 + 0.2416256496468977E-01 + 0.2414134211108785E-01 + 0.2412000229249076E-01 + 0.2409854608110363E-01 + 0.2407697405128158E-01 + 0.2405528677628773E-01 + 0.2403348482518797E-01 + 0.2401156876646200E-01 + 0.2398953917103561E-01 + 0.2396739661366077E-01 + 0.2394514166961063E-01 + 0.2392277491269403E-01 + 0.2390029691548305E-01 + 0.2387770825142793E-01 + 0.2385500949908471E-01 + 0.2383220123949313E-01 + 0.2380928405155426E-01 + 0.2378625850567745E-01 + 0.2376312517064561E-01 + 0.2373988462121249E-01 + 0.2371653744269006E-01 + 0.2369308422146041E-01 + 0.2366952553778371E-01 + 0.2364586196608171E-01 + 0.2362209408134393E-01 + 0.2359822246328622E-01 + 0.2357424769414736E-01 + 0.2355017035618880E-01 + 0.2352599103081922E-01 + 0.2350171029945092E-01 + 0.2347732874367850E-01 + 0.2345284694517100E-01 + 0.2342826548592045E-01 + 0.2340358494966851E-01 + 0.2337880592197872E-01 + 0.2335392898889982E-01 + 0.2332895473792475E-01 + 0.2330388375747845E-01 + 0.2327871663467494E-01 + 0.2325345394973279E-01 + 0.2322809628117391E-01 + 0.2320264421157078E-01 + 0.2317709833207429E-01 + 0.2315145923523805E-01 + 0.2312572751404050E-01 + 0.2309990376190460E-01 + 0.2307398857178096E-01 + 0.2304798252853008E-01 + 0.2302188621217418E-01 + 0.2299570020493564E-01 + 0.2296942509920551E-01 + 0.2294306149073119E-01 + 0.2291660997473032E-01 + 0.2289007114470353E-01 + 0.2286344559411649E-01 + 0.2283673391572457E-01 + 0.2280993670130506E-01 + 0.2278305454278029E-01 + 0.2275608803156285E-01 + 0.2272903775881708E-01 + 0.2270190431693945E-01 + 0.2267468830389541E-01 + 0.2264739031976365E-01 + 0.2262001096429505E-01 + 0.2259255083584769E-01 + 0.2256501053268863E-01 + 0.2253739064870095E-01 + 0.2250969177154426E-01 + 0.2248191448951662E-01 + 0.2245405940296135E-01 + 0.2242612712122366E-01 + 0.2239811825229397E-01 + 0.2237003339294042E-01 + 0.2234187313581530E-01 + 0.2231363807545950E-01 + 0.2228532881152823E-01 + 0.2225694594488700E-01 + 0.2222849007766047E-01 + 0.2219996181374643E-01 + 0.2217136175734748E-01 + 0.2214269051108493E-01 + 0.2211394867634703E-01 + 0.2208513685454374E-01 + 0.2205625564580488E-01 + 0.2202730564988582E-01 + 0.2199828746950285E-01 + 0.2196920171657933E-01 + 0.2194004900508702E-01 + 0.2191082994124914E-01 + 0.2188154511800578E-01 + 0.2185219512786757E-01 + 0.2182278057482134E-01 + 0.2179330207315529E-01 + 0.2176376023709094E-01 + 0.2173415567556255E-01 + 0.2170448899517972E-01 + 0.2167476080273081E-01 + 0.2164497170492795E-01 + 0.2161512230868108E-01 + 0.2158521322021798E-01 + 0.2155524504424371E-01 + 0.2152521838582977E-01 + 0.2149513385640590E-01 + 0.2146499207365728E-01 + 0.2143479365450181E-01 + 0.2140453920461742E-01 + 0.2137422932399643E-01 + 0.2134386461616677E-01 + 0.2131344569858928E-01 + 0.2128297319250729E-01 + 0.2125244771328338E-01 + 0.2122186986388575E-01 + 0.2119124024634157E-01 + 0.2116055947166254E-01 + 0.2112982816053849E-01 + 0.2109904693367261E-01 + 0.2106821640463158E-01 + 0.2103733718302778E-01 + 0.2100640987910074E-01 + 0.2097543510515797E-01 + 0.2094441347431319E-01 + 0.2091334560047386E-01 + 0.2088223209897688E-01 + 0.2085107358566943E-01 + 0.2081987067859122E-01 + 0.2078862399832811E-01 + 0.2075733416490648E-01 + 0.2072600178756002E-01 + 0.2069462746883174E-01 + 0.2066321181525849E-01 + 0.2063175545327281E-01 + 0.2060025901586679E-01 + 0.2056872312900921E-01 + 0.2053714840054699E-01 + 0.2050553543591193E-01 + 0.2047388484648123E-01 + 0.2044219725129490E-01 + 0.2041047327028523E-01 + 0.2037871352501302E-01 + 0.2034691863825813E-01 + 0.2031508923209079E-01 + 0.2028322592300919E-01 + 0.2025132932571681E-01 + 0.2021940005639530E-01 + 0.2018743873483507E-01 + 0.2015544598171603E-01 + 0.2012342241913690E-01 + 0.2009136867110348E-01 + 0.2005928536142970E-01 + 0.2002717310522653E-01 + 0.1999503251103916E-01 + 0.1996286418963180E-01 + 0.1993066876554914E-01 + 0.1989844686895481E-01 + 0.1986619912816628E-01 + 0.1983392616512001E-01 + 0.1980162860070437E-01 + 0.1976930705281828E-01 + 0.1973696213447715E-01 + 0.1970459445906195E-01 + 0.1967220464933046E-01 + 0.1963979333594396E-01 + 0.1960736114849449E-01 + 0.1957490870537829E-01 + 0.1954243662025849E-01 + 0.1950994550943097E-01 + 0.1947743599763195E-01 + 0.1944490871163382E-01 + 0.1941236427767665E-01 + 0.1937980332085946E-01 + 0.1934722646600550E-01 + 0.1931463432979570E-01 + 0.1928202752143899E-01 + 0.1924940665223392E-01 + 0.1921677235066304E-01 + 0.1918412525366875E-01 + 0.1915146599497563E-01 + 0.1911879519491870E-01 + 0.1908611347083467E-01 + 0.1905342143963313E-01 + 0.1902071971714283E-01 + 0.1898800891963362E-01 + 0.1895528967091687E-01 + 0.1892256260242600E-01 + 0.1888982834516067E-01 + 0.1885708752085361E-01 + 0.1882434074642508E-01 + 0.1879158863979851E-01 + 0.1875883182245309E-01 + 0.1872607091702215E-01 + 0.1869330654528612E-01 + 0.1866053932689935E-01 + 0.1862776988166689E-01 + 0.1859499883447591E-01 + 0.1856222681582544E-01 + 0.1852945445539959E-01 + 0.1849668236894204E-01 + 0.1846391116410768E-01 + 0.1843114145270007E-01 + 0.1839837386573567E-01 + 0.1836560904011615E-01 + 0.1833284760413256E-01 + 0.1830009016552525E-01 + 0.1826733732972910E-01 + 0.1823458971573291E-01 + 0.1820184795900034E-01 + 0.1816911269463768E-01 + 0.1813638453897007E-01 + 0.1810366409624702E-01 + 0.1807095197457405E-01 + 0.1803824880244738E-01 + 0.1800555521528382E-01 + 0.1797287184092107E-01 + 0.1794019928707064E-01 + 0.1790753815869081E-01 + 0.1787488907077386E-01 + 0.1784225265167372E-01 + 0.1780962953006264E-01 + 0.1777702032307485E-01 + 0.1774442563969571E-01 + 0.1771184609100828E-01 + 0.1767928230023912E-01 + 0.1764673489524990E-01 + 0.1761420449898699E-01 + 0.1758169171969869E-01 + 0.1754919716334759E-01 + 0.1751672144222086E-01 + 0.1748426517780246E-01 + 0.1745182899217249E-01 + 0.1741941350150238E-01 + 0.1738701931738986E-01 + 0.1735464705175036E-01 + 0.1732229731790404E-01 + 0.1728997072990819E-01 + 0.1725766790304165E-01 + 0.1722538945587366E-01 + 0.1719313600774869E-01 + 0.1716090817112048E-01 + 0.1712870654708049E-01 + 0.1709653173644037E-01 + 0.1706438434944233E-01 + 0.1703226500449391E-01 + 0.1700017431985177E-01 + 0.1696811290893811E-01 + 0.1693608138314781E-01 + 0.1690408035149277E-01 + 0.1687211041384192E-01 + 0.1684017216832007E-01 + 0.1680826622054150E-01 + 0.1677639318930748E-01 + 0.1674455369435698E-01 + 0.1671274834151036E-01 + 0.1668097772342604E-01 + 0.1664924243410579E-01 + 0.1661754308123386E-01 + 0.1658588027944716E-01 + 0.1655425464119884E-01 + 0.1652266676927935E-01 + 0.1649111726427573E-01 + 0.1645960672536456E-01 + 0.1642813574867670E-01 + 0.1639670493036710E-01 + 0.1636531487044763E-01 + 0.1633396617292983E-01 + 0.1630265944158334E-01 + 0.1627139527398100E-01 + 0.1624017426440907E-01 + 0.1620899700835625E-01 + 0.1617786410587611E-01 + 0.1614677615845251E-01 + 0.1611573376349079E-01 + 0.1608473750918535E-01 + 0.1605378798290343E-01 + 0.1602288577700727E-01 + 0.1599203148952712E-01 + 0.1596122571835054E-01 + 0.1593046905411853E-01 + 0.1589976208318414E-01 + 0.1586910539174187E-01 + 0.1583849956449986E-01 + 0.1580794518589694E-01 + 0.1577744284299759E-01 + 0.1574699312883767E-01 + 0.1571659663734068E-01 + 0.1568625395480640E-01 + 0.1565596565790048E-01 + 0.1562573232327620E-01 + 0.1559555453221844E-01 + 0.1556543286918764E-01 + 0.1553536791749518E-01 + 0.1550536025269813E-01 + 0.1547541044787883E-01 + 0.1544551907932535E-01 + 0.1541568673148382E-01 + 0.1538591399016795E-01 + 0.1535620143265506E-01 + 0.1532654962434750E-01 + 0.1529695913014536E-01 + 0.1526743051707599E-01 + 0.1523796435379385E-01 + 0.1520856121011430E-01 + 0.1517922166149472E-01 + 0.1514994628568307E-01 + 0.1512073565576810E-01 + 0.1509159033049550E-01 + 0.1506251086621280E-01 + 0.1503349782252780E-01 + 0.1500455176387040E-01 + 0.1497567325497342E-01 + 0.1494686285557855E-01 + 0.1491812112144821E-01 + 0.1488944860870701E-01 + 0.1486084587537135E-01 + 0.1483231348039201E-01 + 0.1480385197996543E-01 + 0.1477546192062877E-01 + 0.1474714384718193E-01 + 0.1471889830945782E-01 + 0.1469072586554228E-01 + 0.1466262707384330E-01 + 0.1463460248027724E-01 + 0.1460665261971470E-01 + 0.1457877802801396E-01 + 0.1455097925008957E-01 + 0.1452325683518916E-01 + 0.1449561132978633E-01 + 0.1446804326944420E-01 + 0.1444055318738097E-01 + 0.1441314161531567E-01 + 0.1438580908201146E-01 + 0.1435855611631103E-01 + 0.1433138325154270E-01 + 0.1430429102540834E-01 + 0.1427727997493427E-01 + 0.1425035062803417E-01 + 0.1422350350805587E-01 + 0.1419673913756412E-01 + 0.1417005803538247E-01 + 0.1414346071953328E-01 + 0.1411694770685901E-01 + 0.1409051951157386E-01 + 0.1406417664794111E-01 + 0.1403791963499352E-01 + 0.1401174899684902E-01 + 0.1398566525596940E-01 + 0.1395966891431546E-01 + 0.1393376046233576E-01 + 0.1390794039449497E-01 + 0.1388220922343211E-01 + 0.1385656746708355E-01 + 0.1383101563526866E-01 + 0.1380555421928795E-01 + 0.1378018370815361E-01 + 0.1375490459292728E-01 + 0.1372971736704230E-01 + 0.1370462252417829E-01 + 0.1367962055726390E-01 + 0.1365471195883765E-01 + 0.1362989722005743E-01 + 0.1360517682425663E-01 + 0.1358055125242222E-01 + 0.1355602098365810E-01 + 0.1353158649208319E-01 + 0.1350724825123026E-01 + 0.1348300673510799E-01 + 0.1345886241828092E-01 + 0.1343481577512915E-01 + 0.1341086727506952E-01 + 0.1338701738417334E-01 + 0.1336326656774485E-01 + 0.1333961528621667E-01 + 0.1331606399842922E-01 + 0.1329261316254893E-01 + 0.1326926323455087E-01 + 0.1324601467013693E-01 + 0.1322286792250837E-01 + 0.1319982344123699E-01 + 0.1317688167531411E-01 + 0.1315404306698381E-01 + 0.1313130805344097E-01 + 0.1310867707187895E-01 + 0.1308615055932722E-01 + 0.1306372895286206E-01 + 0.1304141268980286E-01 + 0.1301920220784119E-01 + 0.1299709794470637E-01 + 0.1297510032729205E-01 + 0.1295320976546468E-01 + 0.1293142666828893E-01 + 0.1290975145379940E-01 + 0.1288818454750339E-01 + 0.1286672637326088E-01 + 0.1284537734059767E-01 + 0.1282413785293097E-01 + 0.1280300831407906E-01 + 0.1278198912891507E-01 + 0.1276108070261669E-01 + 0.1274028343646098E-01 + 0.1271959772489466E-01 + 0.1269902396150807E-01 + 0.1267856253366079E-01 + 0.1265821382304563E-01 + 0.1263797821162437E-01 + 0.1261785608412206E-01 + 0.1259784782666771E-01 + 0.1257795382227436E-01 + 0.1255817444166508E-01 + 0.1253851005275312E-01 + 0.1251896102269322E-01 + 0.1249952771706812E-01 + 0.1248021050112376E-01 + 0.1246100973353145E-01 + 0.1244192576637857E-01 + 0.1242295895161736E-01 + 0.1240410964149527E-01 + 0.1238537818848226E-01 + 0.1236676494261193E-01 + 0.1234827024316346E-01 + 0.1232989442665771E-01 + 0.1231163782728418E-01 + 0.1229350077420236E-01 + 0.1227548359589881E-01 + 0.1225758661677144E-01 + 0.1223981015670775E-01 + 0.1222215453555289E-01 + 0.1220462007398642E-01 + 0.1218720709322675E-01 + 0.1216991591110676E-01 + 0.1215274682902390E-01 + 0.1213570014361743E-01 + 0.1211877615045059E-01 + 0.1210197514244418E-01 + 0.1208529741221887E-01 + 0.1206874325172421E-01 + 0.1205231295207504E-01 + 0.1203600680355191E-01 + 0.1201982508628306E-01 + 0.1200376807391780E-01 + 0.1198783603820471E-01 + 0.1197202924103825E-01 + 0.1195634794115699E-01 + 0.1194079239857503E-01 + 0.1192536287643226E-01 + 0.1191005963826206E-01 + 0.1189488294017670E-01 + 0.1187983302840012E-01 + 0.1186491014773143E-01 + 0.1185011453216408E-01 + 0.1183544640808372E-01 + 0.1182090600271686E-01 + 0.1180649354876800E-01 + 0.1179220928097946E-01 + 0.1177805342768065E-01 + 0.1176402619877979E-01 + 0.1175012780100181E-01 + 0.1173635844177322E-01 + 0.1172271832951156E-01 + 0.1170920767198404E-01 + 0.1169582666495674E-01 + 0.1168257549488931E-01 + 0.1166945434804038E-01 + 0.1165646341060763E-01 + 0.1164360286880031E-01 + 0.1163087290450157E-01 + 0.1161827368577461E-01 + 0.1160580537797660E-01 + 0.1159346814494767E-01 + 0.1158126214805593E-01 + 0.1156918754788597E-01 + 0.1155724449440611E-01 + 0.1154543312852992E-01 + 0.1153375359078370E-01 + 0.1152220602072034E-01 + 0.1151079055748161E-01 + 0.1149950733699501E-01 + 0.1148835648377790E-01 + 0.1147733811979653E-01 + 0.1146645236091144E-01 + 0.1145569931214155E-01 + 0.1144507907744970E-01 + 0.1143459176146579E-01 + 0.1142423746944703E-01 + 0.1141401630435239E-01 + 0.1140392834977511E-01 + 0.1139397367976733E-01 + 0.1138415236931353E-01 + 0.1137446449727769E-01 + 0.1136491014343123E-01 + 0.1135548938083750E-01 + 0.1134620226943721E-01 + 0.1133704886719583E-01 + 0.1132802922088808E-01 + 0.1131914336576283E-01 + 0.1131039133735480E-01 + 0.1130177317881481E-01 + 0.1129328893743836E-01 + 0.1128493865421610E-01 + 0.1127672234242988E-01 + 0.1126864000779768E-01 + 0.1126069165765573E-01 + 0.1125287730285426E-01 + 0.1124519695429451E-01 + 0.1123765061145338E-01 + 0.1123023826088574E-01 + 0.1122295988798989E-01 + 0.1121581547352851E-01 + 0.1120880499547138E-01 + 0.1120192842935430E-01 + 0.1119518573917100E-01 + 0.1118857688537286E-01 + 0.1118210182524891E-01 + 0.1117576050859055E-01 + 0.1116955288393481E-01 + 0.1116347889547333E-01 + 0.1115753848200726E-01 + 0.1115173158020054E-01 + 0.1114605810559747E-01 + 0.1114051795976990E-01 + 0.1113511104693461E-01 + 0.1112983728728370E-01 + 0.1112469660634000E-01 + 0.1111968891470909E-01 + 0.1111481408359571E-01 + 0.1111007197819990E-01 + 0.1110546248568183E-01 + 0.1110098552323589E-01 + 0.1109664100917173E-01 + 0.1109242884807675E-01 + 0.1108834893454787E-01 + 0.1108440116287117E-01 + 0.1108058542714105E-01 + 0.1107690162133173E-01 + 0.1107334963176978E-01 + 0.1106992932244816E-01 + 0.1106664055322649E-01 + 0.1106348318462194E-01 + 0.1106045707818124E-01 + 0.1105756209433979E-01 + 0.1105479807570355E-01 + 0.1105216485061462E-01 + 0.1104966224671740E-01 + 0.1104729009016213E-01 + 0.1104504820642049E-01 + 0.1104293641734041E-01 + 0.1104095453316397E-01 + 0.1103910236152456E-01 + 0.1103737969840866E-01 + 0.1103578632059836E-01 + 0.1103432200334339E-01 + 0.1103298652872312E-01 + 0.1103177968479875E-01 + 0.1103070125545498E-01 + 0.1102975099198037E-01 + 0.1102892863060634E-01 + 0.1102823391000126E-01 + 0.1102766657833470E-01 + 0.1102722638571126E-01 + 0.1102691307022337E-01 + 0.1102672634816147E-01 + 0.1102666593325787E-01 + 0.1102673153672847E-01 + 0.1102692286735714E-01 + 0.1102723963123752E-01 + 0.1102768151335458E-01 + 0.1102824818789242E-01 + 0.1102893932994882E-01 + 0.1102975461915600E-01 + 0.1103069373608729E-01 + 0.1103175634924249E-01 + 0.1103294210298126E-01 + 0.1103425063859343E-01 + 0.1103568159671429E-01 + 0.1103723461729631E-01 + 0.1103890933812152E-01 + 0.1104070537777522E-01 + 0.1104262234400134E-01 + 0.1104465984328103E-01 + 0.1104681747760341E-01 + 0.1104909484752874E-01 + 0.1105149154856649E-01 + 0.1105400716522901E-01 + 0.1105664127994305E-01 + 0.1105939346180157E-01 + 0.1106226326441580E-01 + 0.1106525024038976E-01 + 0.1106835394284760E-01 + 0.1107157392515242E-01 + 0.1107490973582525E-01 + 0.1107836089988181E-01 + 0.1108192693480243E-01 + 0.1108560735521182E-01 + 0.1108940166904670E-01 + 0.1109330938287293E-01 + 0.1109732999700602E-01 + 0.1110146300383541E-01 + 0.1110570789399808E-01 + 0.1111006414527915E-01 + 0.1111453122664705E-01 + 0.1111910860477636E-01 + 0.1112379573555257E-01 + 0.1112859207092712E-01 + 0.1113349705824818E-01 + 0.1113851013275474E-01 + 0.1114363072728134E-01 + 0.1114885826805414E-01 + 0.1115419217211755E-01 + 0.1115963185471607E-01 + 0.1116517671853509E-01 + 0.1117082615679839E-01 + 0.1117657956080516E-01 + 0.1118243631267012E-01 + 0.1118839579077794E-01 + 0.1119445737051951E-01 + 0.1120062041882133E-01 + 0.1120688430060686E-01 + 0.1121324837062139E-01 + 0.1121971196802858E-01 + 0.1122627442986274E-01 + 0.1123293508437480E-01 + 0.1123969325254123E-01 + 0.1124654825356203E-01 + 0.1125349939750884E-01 + 0.1126054599036030E-01 + 0.1126768733410806E-01 + 0.1127492271811047E-01 + 0.1128225142873166E-01 + 0.1128967274606582E-01 + 0.1129718593975740E-01 + 0.1130479027765374E-01 + 0.1131248501811110E-01 + 0.1132026941088231E-01 + 0.1132814270386190E-01 + 0.1133610413500550E-01 + 0.1134415293737629E-01 + 0.1135228833911875E-01 + 0.1136050955098436E-01 + 0.1136881577935983E-01 + 0.1137720622940361E-01 + 0.1138568010428511E-01 + 0.1139423660612319E-01 + 0.1140287492516823E-01 + 0.1141159423989541E-01 + 0.1142039372639640E-01 + 0.1142927254688825E-01 + 0.1143822985614713E-01 + 0.1144726480722897E-01 + 0.1145637654747573E-01 + 0.1146556422240944E-01 + 0.1147482697081488E-01 + 0.1148416391792122E-01 + 0.1149357418670985E-01 + 0.1150305689393203E-01 + 0.1151261114958720E-01 + 0.1152223606186491E-01 + 0.1153193072764613E-01 + 0.1154169423711390E-01 + 0.1155152567720007E-01 + 0.1156142412154622E-01 + 0.1157138863961929E-01 + 0.1158141829779674E-01 + 0.1159151215591431E-01 + 0.1160166927229806E-01 + 0.1161188869726983E-01 + 0.1162216947165508E-01 + 0.1163251063474660E-01 + 0.1164291121892925E-01 + 0.1165337025203887E-01 + 0.1166388675782096E-01 + 0.1167445974094635E-01 + 0.1168508819961186E-01 + 0.1169577113244187E-01 + 0.1170650753984320E-01 + 0.1171729642180649E-01 + 0.1172813676515863E-01 + 0.1173902753955255E-01 + 0.1174996771301091E-01 + 0.1176095625266798E-01 + 0.1177199212489826E-01 + 0.1178307429262693E-01 + 0.1179420170102708E-01 + 0.1180537328858805E-01 + 0.1181658799353096E-01 + 0.1182784475420128E-01 + 0.1183914250840275E-01 + 0.1185048018473341E-01 + 0.1186185669868614E-01 + 0.1187327096368286E-01 + 0.1188472188365182E-01 + 0.1189620835510626E-01 + 0.1190772927375588E-01 + 0.1191928353393280E-01 + 0.1193087002912355E-01 + 0.1194248764743554E-01 + 0.1195413526118944E-01 + 0.1196581173924305E-01 + 0.1197751595111940E-01 + 0.1198924676769629E-01 + 0.1200100305846705E-01 + 0.1201278367424337E-01 + 0.1202458744996493E-01 + 0.1203641322096178E-01 + 0.1204825983211908E-01 + 0.1206012613225687E-01 + 0.1207201096425058E-01 + 0.1208391315147088E-01 + 0.1209583151261079E-01 + 0.1210776486322156E-01 + 0.1211971201373544E-01 + 0.1213167177356780E-01 + 0.1214364295101535E-01 + 0.1215562435329857E-01 + 0.1216761478574058E-01 + 0.1217961304209658E-01 + 0.1219161791020446E-01 + 0.1220362817675374E-01 + 0.1221564262564932E-01 + 0.1222766003968063E-01 + 0.1223967919661984E-01 + 0.1225169886503045E-01 + 0.1226371781193461E-01 + 0.1227573480353232E-01 + 0.1228774860519577E-01 + 0.1229975798083807E-01 + 0.1231176168548589E-01 + 0.1232375846912709E-01 + 0.1233574708039060E-01 + 0.1234772626403214E-01 + 0.1235969476336870E-01 + 0.1237165132216382E-01 + 0.1238359468575655E-01 + 0.1239552359883647E-01 + 0.1240743679480631E-01 + 0.1241933299448791E-01 + 0.1243121091840076E-01 + 0.1244306929576691E-01 + 0.1245490686075479E-01 + 0.1246672234376713E-01 + 0.1247851445883057E-01 + 0.1249028191466456E-01 + 0.1250202342042024E-01 + 0.1251373768703350E-01 + 0.1252542342533463E-01 + 0.1253707934952395E-01 + 0.1254870417807908E-01 + 0.1256029662800756E-01 + 0.1257185540139105E-01 + 0.1258337919035243E-01 + 0.1259486668815871E-01 + 0.1260631659755250E-01 + 0.1261772762406714E-01 + 0.1262909847133537E-01 + 0.1264042783890942E-01 + 0.1265171442512917E-01 + 0.1266295692423309E-01 + 0.1267415402510785E-01 + 0.1268530441614327E-01 + 0.1269640679067809E-01 + 0.1270745984545602E-01 + 0.1271846227667874E-01 + 0.1272941277957237E-01 + 0.1274031004864736E-01 + 0.1275115277617970E-01 + 0.1276193964901998E-01 + 0.1277266935268388E-01 + 0.1278334057785678E-01 + 0.1279395202319385E-01 + 0.1280450238724618E-01 + 0.1281499036425272E-01 + 0.1282541464492347E-01 + 0.1283577392058179E-01 + 0.1284606689039938E-01 + 0.1285629225644723E-01 + 0.1286644871719529E-01 + 0.1287653496068295E-01 + 0.1288654967255966E-01 + 0.1289649154907519E-01 + 0.1290635930420637E-01 + 0.1291615165255025E-01 + 0.1292586729864523E-01 + 0.1293550493821103E-01 + 0.1294506326845755E-01 + 0.1295454100348334E-01 + 0.1296393686477491E-01 + 0.1297324957036831E-01 + 0.1298247782716189E-01 + 0.1299162033925304E-01 + 0.1300067582214947E-01 + 0.1300964301240697E-01 + 0.1301852064783229E-01 + 0.1302730745551426E-01 + 0.1303600215227969E-01 + 0.1304460345634265E-01 + 0.1305311010497905E-01 + 0.1306152084478532E-01 + 0.1306983442199133E-01 + 0.1307804958265169E-01 + 0.1308616507240820E-01 + 0.1309417964006818E-01 + 0.1310209204127214E-01 + 0.1310990103224902E-01 + 0.1311760537474596E-01 + 0.1312520383632542E-01 + 0.1313269518514759E-01 + 0.1314007819664629E-01 + 0.1314735165006244E-01 + 0.1315451432593185E-01 + 0.1316156501213406E-01 + 0.1316850249825261E-01 + 0.1317532557806441E-01 + 0.1318203305518953E-01 + 0.1318862373433832E-01 + 0.1319509642612214E-01 + 0.1320144994802937E-01 + 0.1320768311843410E-01 + 0.1321379476572646E-01 + 0.1321978372423176E-01 + 0.1322564882863595E-01 + 0.1323138891689225E-01 + 0.1323700282766210E-01 + 0.1324248940860416E-01 + 0.1324784752999643E-01 + 0.1325307606513952E-01 + 0.1325817388839058E-01 + 0.1326313987556949E-01 + 0.1326797290335890E-01 + 0.1327267186282924E-01 + 0.1327723565458732E-01 + 0.1328166318066262E-01 + 0.1328595335201379E-01 + 0.1329010508239244E-01 + 0.1329411729089913E-01 + 0.1329798891183963E-01 + 0.1330171888193729E-01 + 0.1330530614850094E-01 + 0.1330874967374876E-01 + 0.1331204842073548E-01 + 0.1331520135390977E-01 + 0.1331820743864203E-01 + 0.1332106564526172E-01 + 0.1332377497684044E-01 + 0.1332633444872475E-01 + 0.1332874307407632E-01 + 0.1333099986023436E-01 + 0.1333310381349737E-01 + 0.1333505396166599E-01 + 0.1333684936569214E-01 + 0.1333848908862955E-01 + 0.1333997218739311E-01 + 0.1334129771382900E-01 + 0.1334246472496065E-01 + 0.1334347231696022E-01 + 0.1334431960238562E-01 + 0.1334500569226360E-01 + 0.1334552969315394E-01 + 0.1334589071065258E-01 + 0.1334608786927392E-01 + 0.1334612032569183E-01 + 0.1334598723981357E-01 + 0.1334568777964611E-01 + 0.1334522112040538E-01 + 0.1334458643859009E-01 + 0.1334378292086793E-01 + 0.1334280975850224E-01 + 0.1334166615231563E-01 + 0.1334035133939117E-01 + 0.1333886456502541E-01 + 0.1333720507758144E-01 + 0.1333537213138327E-01 + 0.1333336498206497E-01 + 0.1333118290555730E-01 + 0.1332882519772620E-01 + 0.1332629115640245E-01 + 0.1332358009134214E-01 + 0.1332069131834741E-01 + 0.1331762416064422E-01 + 0.1331437797277975E-01 + 0.1331095211725574E-01 + 0.1330734596301529E-01 + 0.1330355889248643E-01 + 0.1329959029013362E-01 + 0.1329543955582493E-01 + 0.1329110610606885E-01 + 0.1328658936057166E-01 + 0.1328188876441812E-01 + 0.1327700377710199E-01 + 0.1327193386183383E-01 + 0.1326667849890408E-01 + 0.1326123717342625E-01 + 0.1325560938106366E-01 + 0.1324979464166776E-01 + 0.1324379247877172E-01 + 0.1323760243166508E-01 + 0.1323122405834799E-01 + 0.1322465691942140E-01 + 0.1321790059409430E-01 + 0.1321095467323165E-01 + 0.1320381875422780E-01 + 0.1319649246768534E-01 + 0.1318897545476067E-01 + 0.1318126735985323E-01 + 0.1317336783569249E-01 + 0.1316527653690460E-01 + 0.1315699314584688E-01 + 0.1314851738103894E-01 + 0.1313984896386816E-01 + 0.1313098762241303E-01 + 0.1312193308935997E-01 + 0.1311268510364294E-01 + 0.1310324343988445E-01 + 0.1309360788536919E-01 + 0.1308377823491909E-01 + 0.1307375430443257E-01 + 0.1306353591379319E-01 + 0.1305312290166692E-01 + 0.1304251513364686E-01 + 0.1303171247820707E-01 + 0.1302071481606697E-01 + 0.1300952203726944E-01 + 0.1299813403837379E-01 + 0.1298655075630128E-01 + 0.1297477214390365E-01 + 0.1296279815867183E-01 + 0.1295062877232355E-01 + 0.1293826395964185E-01 + 0.1292570371480472E-01 + 0.1291294806255502E-01 + 0.1289999703129919E-01 + 0.1288685066548466E-01 + 0.1287350902299795E-01 + 0.1285997216722816E-01 + 0.1284624019778424E-01 + 0.1283231323014349E-01 + 0.1281819138390408E-01 + 0.1280387479244122E-01 + 0.1278936359241609E-01 + 0.1277465794195534E-01 + 0.1275975803639874E-01 + 0.1274466407552849E-01 + 0.1272937627165479E-01 + 0.1271389484862174E-01 + 0.1269822003511046E-01 + 0.1268235209451946E-01 + 0.1266629130709472E-01 + 0.1265003795895094E-01 + 0.1263359235787568E-01 + 0.1261695481710503E-01 + 0.1260012566548144E-01 + 0.1258310526159022E-01 + 0.1256589396831474E-01 + 0.1254849216697925E-01 + 0.1253090025753909E-01 + 0.1251311864412669E-01 + 0.1249514775982827E-01 + 0.1247698805327447E-01 + 0.1245863997920393E-01 + 0.1244010401712093E-01 + 0.1242138065337822E-01 + 0.1240247038603155E-01 + 0.1238337373763015E-01 + 0.1236409123498002E-01 + 0.1234462343099178E-01 + 0.1232497090751996E-01 + 0.1230513424987584E-01 + 0.1228511406103445E-01 + 0.1226491095447703E-01 + 0.1224452555017502E-01 + 0.1222395849729168E-01 + 0.1220321045392524E-01 + 0.1218228209094644E-01 + 0.1216117410869414E-01 + 0.1213988721247832E-01 + 0.1211842212442531E-01 + 0.1209677958709474E-01 + 0.1207496034708881E-01 + 0.1205296518038865E-01 + 0.1203079488213300E-01 + 0.1200845025117545E-01 + 0.1198593210284875E-01 + 0.1196324125820923E-01 + 0.1194037855226703E-01 + 0.1191734485559135E-01 + 0.1189414104514726E-01 + 0.1187076801416966E-01 + 0.1184722667756321E-01 + 0.1182351795377252E-01 + 0.1179964278357135E-01 + 0.1177560212377150E-01 + 0.1175139693605339E-01 + 0.1172702820685009E-01 + 0.1170249693196932E-01 + 0.1167780411804629E-01 + 0.1165295080197688E-01 + 0.1162793802666613E-01 + 0.1160276684726405E-01 + 0.1157743833674973E-01 + 0.1155195357172616E-01 + 0.1152631365625013E-01 + 0.1150051971600101E-01 + 0.1147457288096364E-01 + 0.1144847430311367E-01 + 0.1142222514367954E-01 + 0.1139582657160150E-01 + 0.1136927977925702E-01 + 0.1134258596436390E-01 + 0.1131574634204532E-01 + 0.1128876215533745E-01 + 0.1126163465112898E-01 + 0.1123436509117487E-01 + 0.1120695475011107E-01 + 0.1117940490736868E-01 + 0.1115171687142842E-01 + 0.1112389196417102E-01 + 0.1109593151304198E-01 + 0.1106783686357801E-01 + 0.1103960936598795E-01 + 0.1101125038891130E-01 + 0.1098276133347660E-01 + 0.1095414360500169E-01 + 0.1092539861511489E-01 + 0.1089652778144753E-01 + 0.1086753252669034E-01 + 0.1083841430949980E-01 + 0.1080917460675461E-01 + 0.1077981490046701E-01 + 0.1075033669057610E-01 + 0.1072074148201338E-01 + 0.1069103078886081E-01 + 0.1066120614261679E-01 + 0.1063126907811975E-01 + 0.1060122114853493E-01 + 0.1057106392604644E-01 + 0.1054079898706618E-01 + 0.1051042793409507E-01 + 0.1047995238427853E-01 + 0.1044937395763575E-01 + 0.1041869428385395E-01 + 0.1038791499586227E-01 + 0.1035703774033669E-01 + 0.1032606419308596E-01 + 0.1029499603476562E-01 + 0.1026383495811109E-01 + 0.1023258266954487E-01 + 0.1020124087835313E-01 + 0.1016981130977309E-01 + 0.1013829569899284E-01 + 0.1010669578794727E-01 + 0.1007501334819912E-01 + 0.1004325016093236E-01 + 0.1001140800915472E-01 + 0.9979488679191945E-02 + 0.9947493959105369E-02 + 0.9915425659118096E-02 + 0.9883285617054760E-02 + 0.9851075673888001E-02 + 0.9818797679465281E-02 + 0.9786453489813535E-02 + 0.9754044965937798E-02 + 0.9721573992061988E-02 + 0.9689042460855170E-02 + 0.9656452263558379E-02 + 0.9623805286232960E-02 + 0.9591103416472038E-02 + 0.9558348619330291E-02 + 0.9525542966361446E-02 + 0.9492688492268421E-02 + 0.9459786600263211E-02 + 0.9426838230564940E-02 + 0.9393844266766440E-02 + 0.9360805308797698E-02 + 0.9327721849364810E-02 + 0.9294594410013549E-02 + 0.9261423598040912E-02 + 0.9228210036661977E-02 + 0.9194954342088540E-02 + 0.9161657119772428E-02 + 0.9128318976402518E-02 + 0.9094940549388539E-02 + 0.9061522500961706E-02 + 0.9028065492310665E-02 + 0.8994570171031931E-02 + 0.8961037179182572E-02 + 0.8927467171310100E-02 + 0.8893860842599789E-02 + 0.8860218896762433E-02 + 0.8826542031952421E-02 + 0.8792830936842645E-02 + 0.8759086300483929E-02 + 0.8725308831126686E-02 + 0.8691499254063718E-02 + 0.8657658296277559E-02 + 0.8623786691237598E-02 + 0.8589885175591229E-02 + 0.8555954489598170E-02 + 0.8521995385889534E-02 + 0.8488008620222344E-02 + 0.8453994952787545E-02 + 0.8419955151669994E-02 + 0.8385889986332767E-02 + 0.8351800231800175E-02 + 0.8317686668516904E-02 + 0.8283550079125368E-02 + 0.8249391260950278E-02 + 0.8215211019009294E-02 + 0.8181010159739275E-02 + 0.8146789494088370E-02 + 0.8112549834410427E-02 + 0.8078291993100411E-02 + 0.8044016782283109E-02 + 0.8009725015156855E-02 + 0.7975417526196358E-02 + 0.7941095172593366E-02 + 0.7906758810712575E-02 + 0.7872409274992556E-02 + 0.7838047387620407E-02 + 0.7803673979234373E-02 + 0.7769289918402732E-02 + 0.7734896084715498E-02 + 0.7700493349592731E-02 + 0.7666082565642508E-02 + 0.7631664583683829E-02 + 0.7597240269521426E-02 + 0.7562810506492284E-02 + 0.7528376178890350E-02 + 0.7493938167025126E-02 + 0.7459497348861108E-02 + 0.7425054604328222E-02 + 0.7390610822051241E-02 + 0.7356166893666220E-02 + 0.7321723712388629E-02 + 0.7287282174804812E-02 + 0.7252843178338074E-02 + 0.7218407620976333E-02 + 0.7183976401327863E-02 + 0.7149550418807954E-02 + 0.7115130578476756E-02 + 0.7080717789385527E-02 + 0.7046312960318396E-02 + 0.7011916996381805E-02 + 0.6977530801636257E-02 + 0.6943155284164209E-02 + 0.6908791362481825E-02 + 0.6874439957140388E-02 + 0.6840101985986145E-02 + 0.6805778362868812E-02 + 0.6771470001688695E-02 + 0.6737177816791506E-02 + 0.6702902722951752E-02 + 0.6668645636075519E-02 + 0.6634407477207656E-02 + 0.6600189169630535E-02 + 0.6565991634058844E-02 + 0.6531815782543486E-02 + 0.6497662525882165E-02 + 0.6463532781044394E-02 + 0.6429427474423206E-02 + 0.6395347533038476E-02 + 0.6361293875228189E-02 + 0.6327267412194604E-02 + 0.6293269055818707E-02 + 0.6259299722119026E-02 + 0.6225360329117402E-02 + 0.6191451793981885E-02 + 0.6157575030041138E-02 + 0.6123730950117840E-02 + 0.6089920468636940E-02 + 0.6056144502508865E-02 + 0.6022403968617840E-02 + 0.5988699772285826E-02 + 0.5955032808332989E-02 + 0.5921403972492567E-02 + 0.5887814168377456E-02 + 0.5854264303563134E-02 + 0.5820755284521393E-02 + 0.5787288012415390E-02 + 0.5753863387403111E-02 + 0.5720482306845200E-02 + 0.5687145662469481E-02 + 0.5653854345502710E-02 + 0.5620609243021030E-02 + 0.5587411237946146E-02 + 0.5554261213236273E-02 + 0.5521160051066378E-02 + 0.5488108633367224E-02 + 0.5455107840566503E-02 + 0.5422158545605470E-02 + 0.5389261619694556E-02 + 0.5356417931877235E-02 + 0.5323628346272786E-02 + 0.5290893726572172E-02 + 0.5258214933628223E-02 + 0.5225592825138909E-02 + 0.5193028258208379E-02 + 0.5160522082549759E-02 + 0.5128075143715485E-02 + 0.5095688286438586E-02 + 0.5063362350590241E-02 + 0.5031098174839430E-02 + 0.4998896595041542E-02 + 0.4966758440092561E-02 + 0.4934684538040908E-02 + 0.4902675712198624E-02 + 0.4870732780088441E-02 + 0.4838856558678874E-02 + 0.4807047859286770E-02 + 0.4775307489720653E-02 + 0.4743636256312159E-02 + 0.4712034956589694E-02 + 0.4680504385412693E-02 + 0.4649045335198185E-02 + 0.4617658591603798E-02 + 0.4586344939341204E-02 + 0.4555105157587589E-02 + 0.4523940018071052E-02 + 0.4492850291791244E-02 + 0.4461836743435935E-02 + 0.4430900133327063E-02 + 0.4400041220327131E-02 + 0.4369260753842663E-02 + 0.4338559480033078E-02 + 0.4307938142343143E-02 + 0.4277397475958885E-02 + 0.4246938214728230E-02 + 0.4216561086623043E-02 + 0.4186266810903144E-02 + 0.4156056105954453E-02 + 0.4125929683667890E-02 + 0.4095888250956042E-02 + 0.4065932513224707E-02 + 0.4036063165351770E-02 + 0.4006280898138656E-02 + 0.3976586399581843E-02 + 0.3946980348258255E-02 + 0.3917463421016420E-02 + 0.3888036289225494E-02 + 0.3858699615288703E-02 + 0.3829454060556019E-02 + 0.3800300278186230E-02 + 0.3771238914389009E-02 + 0.3742270614118079E-02 + 0.3713396013185406E-02 + 0.3684615743465454E-02 + 0.3655930433509085E-02 + 0.3627340699620508E-02 + 0.3598847155546570E-02 + 0.3570450410446540E-02 + 0.3542151065173172E-02 + 0.3513949719487401E-02 + 0.3485846964113598E-02 + 0.3457843381322201E-02 + 0.3429939552021760E-02 + 0.3402136046994004E-02 + 0.3374433432142716E-02 + 0.3346832270642714E-02 + 0.3319333114478689E-02 + 0.3291936513012011E-02 + 0.3264643010275147E-02 + 0.3237453139690926E-02 + 0.3210367433279111E-02 + 0.3183386414594805E-02 + 0.3156510598474291E-02 + 0.3129740498463564E-02 + 0.3103076618251960E-02 + 0.3076519456255371E-02 + 0.3050069508038555E-02 + 0.3023727256322777E-02 + 0.2997493180432578E-02 + 0.2971367754741344E-02 + 0.2945351442729765E-02 + 0.2919444706341911E-02 + 0.2893647999810351E-02 + 0.2867961768626324E-02 + 0.2842386456857616E-02 + 0.2816922497002086E-02 + 0.2791570314685700E-02 + 0.2766330333302316E-02 + 0.2741202965236234E-02 + 0.2716188619618886E-02 + 0.2691287700244867E-02 + 0.2666500597960368E-02 + 0.2641827701638492E-02 + 0.2617269393022982E-02 + 0.2592826044966432E-02 + 0.2568498028985782E-02 + 0.2544285705819979E-02 + 0.2520189429136558E-02 + 0.2496209550090554E-02 + 0.2472346406326722E-02 + 0.2448600331004586E-02 + 0.2424971653594335E-02 + 0.2401460693617964E-02 + 0.2378067768865151E-02 + 0.2354793188399062E-02 + 0.2331637249324251E-02 + 0.2308600247278565E-02 + 0.2285682468331939E-02 + 0.2262884191632384E-02 + 0.2240205694216812E-02 + 0.2217647240791554E-02 + 0.2195209091497626E-02 + 0.2172891502336688E-02 + 0.2150694717007302E-02 + 0.2128618976893292E-02 + 0.2106664515896414E-02 + 0.2084831556638471E-02 + 0.2063120320295515E-02 + 0.2041531018861673E-02 + 0.2020063857013423E-02 + 0.1998719037389791E-02 + 0.1977496749823275E-02 + 0.1956397178863731E-02 + 0.1935420505368430E-02 + 0.1914566898066782E-02 + 0.1893836523164534E-02 + 0.1873229540035440E-02 + 0.1852746096720443E-02 + 0.1832386339718484E-02 + 0.1812150406034969E-02 + 0.1792038424350188E-02 + 0.1772050521663366E-02 + 0.1752186814107527E-02 + 0.1732447412839619E-02 + 0.1712832425014341E-02 + 0.1693341943269279E-02 + 0.1673976056912187E-02 + 0.1654734850313328E-02 + 0.1635618398825994E-02 + 0.1616626776365082E-02 + 0.1597760046242946E-02 + 0.1579018261553117E-02 + 0.1560401473815303E-02 + 0.1541909724601288E-02 + 0.1523543050433030E-02 + 0.1505301484439409E-02 + 0.1487185046188783E-02 + 0.1469193751778569E-02 + 0.1451327612426217E-02 + 0.1433586629542456E-02 + 0.1415970802956027E-02 + 0.1398480122460170E-02 + 0.1381114567225495E-02 + 0.1363874114972382E-02 + 0.1346758734549592E-02 + 0.1329768389824089E-02 + 0.1312903041632748E-02 + 0.1296162637511237E-02 + 0.1279547121198475E-02 + 0.1263056431469222E-02 + 0.1246690496110529E-02 + 0.1230449241134159E-02 + 0.1214332584687863E-02 + 0.1198340435781675E-02 + 0.1182472701933622E-02 + 0.1166729280446089E-02 + 0.1151110062293921E-02 + 0.1135614935922009E-02 + 0.1120243777774138E-02 + 0.1104996460475266E-02 + 0.1089872852439947E-02 + 0.1074872811824274E-02 + 0.1059996194957457E-02 + 0.1045242850076564E-02 + 0.1030612615098843E-02 + 0.1016105326522685E-02 + 0.1001720812409997E-02 + 0.9874588950629947E-03 + 0.9733193943477826E-03 + 0.9593021174896160E-03 + 0.9454068672446269E-03 + 0.9316334428750308E-03 + 0.9179816342896782E-03 + 0.9044512295775554E-03 + 0.8910420094988087E-03 + 0.8777537445583988E-03 + 0.8645862038161106E-03 + 0.8515391479913927E-03 + 0.8386123315424490E-03 + 0.8258055068774345E-03 + 0.8131184150974880E-03 + 0.8005507928581739E-03 + 0.7881023734333892E-03 + 0.7757728801292467E-03 + 0.7635620341693562E-03 + 0.7514695508265579E-03 + 0.7394951362450088E-03 + 0.7276384951310716E-03 + 0.7158993232632782E-03 + 0.7042773090619823E-03 + 0.6927721393767197E-03 + 0.6813834923920402E-03 + 0.6701110424991707E-03 + 0.6589544604527214E-03 + 0.6479134051517967E-03 + 0.6369875328254192E-03 + 0.6261764953154501E-03 + 0.6154799371030483E-03 + 0.6048975013705611E-03 + 0.5944288227138048E-03 + 0.5840735279636911E-03 + 0.5738312424048313E-03 + 0.5637015824355264E-03 + 0.5536841601569533E-03 + 0.5437785849624211E-03 + 0.5339844566544452E-03 + 0.5243013726086909E-03 + 0.5147289254415355E-03 + 0.5052666989913723E-03 + 0.4959142756670483E-03 + 0.4866712309233808E-03 + 0.4775371333202157E-03 + 0.4685115500132952E-03 + 0.4595940397405917E-03 + 0.4507841567464901E-03 + 0.4420814528966363E-03 + 0.4334854708937166E-03 + 0.4249957508740726E-03 + 0.4166118287600452E-03 + 0.4083332319551756E-03 + 0.4001594864056431E-03 + 0.3920901119367184E-03 + 0.3841246217275437E-03 + 0.3762625276713139E-03 + 0.3685033339258548E-03 + 0.3608465400974015E-03 + 0.3532916436972928E-03 + 0.3458381335178898E-03 + 0.3384854956457351E-03 + 0.3312332126209122E-03 + 0.3240807591431363E-03 + 0.3170276084579640E-03 + 0.3100732281796711E-03 + 0.3032170792313252E-03 + 0.2964586213434195E-03 + 0.2897973073956186E-03 + 0.2832325858301362E-03 + 0.2767639032713943E-03 + 0.2703906982454935E-03 + 0.2641124064897449E-03 + 0.2579284606409964E-03 + 0.2518382858414457E-03 + 0.2458413057417910E-03 + 0.2399369392008067E-03 + 0.2341245988552033E-03 + 0.2284036962090158E-03 + 0.2227736363194619E-03 + 0.2172338196606508E-03 + 0.2117836451856175E-03 + 0.2064225047666852E-03 + 0.2011497875639716E-03 + 0.1959648800374431E-03 + 0.1908671615246180E-03 + 0.1858560098237531E-03 + 0.1809307985290471E-03 + 0.1760908952743890E-03 + 0.1713356666263223E-03 + 0.1666644735678320E-03 + 0.1620766727271112E-03 + 0.1575716193860349E-03 + 0.1531486622661487E-03 + 0.1488071473091148E-03 + 0.1445464182114696E-03 + 0.1403658122534545E-03 + 0.1362646651880238E-03 + 0.1322423090983333E-03 + 0.1282980703935176E-03 + 0.1244312744576781E-03 + 0.1206412418543072E-03 + 0.1169272890299781E-03 + 0.1132887312516158E-03 + 0.1097248778850381E-03 + 0.1062350355309414E-03 + 0.1028185089023097E-03 + 0.9947459689989167E-04 + 0.9620259690012068E-04 + 0.9300180320980296E-04 + 0.8987150497564889E-04 + 0.8681099035969108E-04 + 0.8381954325168175E-04 + 0.8089644355451544E-04 + 0.7804097014962887E-04 + 0.7525239686628469E-04 + 0.7252999491486802E-04 + 0.6987303391938210E-04 + 0.6728077828719760E-04 + 0.6475249091222024E-04 + 0.6228743208703945E-04 + 0.5988485735986844E-04 + 0.5754402132825130E-04 + 0.5526417504748514E-04 + 0.5304456596752146E-04 + 0.5088444063394384E-04 + 0.4878304118696667E-04 + 0.4673960725014998E-04 + 0.4475337712964836E-04 + 0.4282358457795878E-04 + 0.4094946187841432E-04 + 0.3913023918887614E-04 + 0.3736514248745631E-04 + 0.3565339684346688E-04 + 0.3399422434183759E-04 + 0.3238684376370964E-04 + 0.3083047309114476E-04 + 0.2932432664995721E-04 + 0.2786761646422446E-04 + 0.2645955346734757E-04 + 0.2509934470420159E-04 + 0.2378619581960758E-04 + 0.2251931073485630E-04 + 0.2129788974375229E-04 + 0.2012113227632945E-04 + 0.1898823536224467E-04 + 0.1789839315332321E-04 + 0.1685079908935014E-04 + 0.1584464360627278E-04 + 0.1487911506161557E-04 + 0.1395340091983927E-04 + 0.1306668546291450E-04 + 0.1221815168656361E-04 + 0.1140698122328145E-04 + 0.1063235267814338E-04 + 0.9893443850223772E-05 + 0.9189430657773389E-05 + 0.8519486593402665E-05 + 0.7882784516467728E-05 + 0.7278494935608439E-05 + 0.6705786573873675E-05 + 0.6163827423523596E-05 + 0.5651782975288672E-05 + 0.5168817578752733E-05 + 0.4714094542607022E-05 + 0.4286774801891125E-05 + 0.3886018564304183E-05 + 0.3510984618126240E-05 + 0.3160829806119420E-05 + 0.2834710411024186E-05 + 0.2531780998702286E-05 + 0.2251194705673445E-05 + 0.1992104074532935E-05 + 0.1753659819102016E-05 + 0.1535011699446480E-05 + 0.1335308706819185E-05 + 0.1153698121804797E-05 + 0.9893265964069983E-06 + 0.8413397937480116E-06 + 0.7088819770183164E-06 + 0.5910969229666829E-06 + 0.4871272699961916E-06 + 0.3961146220277366E-06 + 0.3172001065531827E-06 + 0.2495236941769535E-06 + 0.1922246407671419E-06 + 0.1444416614955101E-06 + 0.1053124328882129E-06 + 0.7397412700923994E-07 + 0.4956332050161572E-07 + 0.3121579423557010E-07 + 0.1806692087863425E-07 + 0.9251422554216926E-08 + 0.3903384615269487E-08 + 0.1156542889210542E-08 + 0.1443625144722101E-09 diff --git a/examples/SPIN/nickel/in.spin.nickel b/examples/SPIN/nickel/in.spin.nickel new file mode 100644 index 0000000000..09ac4abb0b --- /dev/null +++ b/examples/SPIN/nickel/in.spin.nickel @@ -0,0 +1,59 @@ +# fcc cobalt in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# check why? +atom_modify map array + +lattice fcc 3.54 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +create_atoms 1 box + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.93 + +set group all spin/random 31 1.72 +velocity all create 100 4928459 rot yes dist gaussian + +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_coeff * * eam/alloy ../examples/SPIN/cobalt/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all force/spin zeeman 0.1 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.1 21 + +fix 3 all integration/spin lattice yes + +timestep 0.0001 + + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[4] +variable magnorm equal c_out_mag[5] +variable emag equal c_out_mag[6] +variable tmag equal c_out_mag[7] +variable mag_force equal f_1 + +thermo_style custom step time v_magnorm v_emag temp etotal +thermo 10 + +#dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz + +run 1000 + diff --git a/examples/SPIN/read_restart/in.spin.read_data b/examples/SPIN/read_restart/in.spin.read_data index 81d654ad5b..7e9519ae3f 100644 --- a/examples/SPIN/read_restart/in.spin.read_data +++ b/examples/SPIN/read_restart/in.spin.read_data @@ -52,7 +52,7 @@ fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed -fix 2 all langevin/spin 0.0 0.0 0.0 21 +fix 2 all langevin/spin 0.0 0.0 21 #Magnetic integration fix fix 3 all integration/spin serial diff --git a/examples/SPIN/skyrmion/in.spin.skyrmion b/examples/SPIN/skyrmion/in.spin.skyrmion index b2f1f62057..4897dc48a2 100644 --- a/examples/SPIN/skyrmion/in.spin.skyrmion +++ b/examples/SPIN/skyrmion/in.spin.skyrmion @@ -1,55 +1,81 @@ -# fcc cobalt in a 3d box +# initial variables -clear -units metal -atom_style spin +# dimensions of the box and of each layer +variable box_size equal 50.0 +variable ir_thick equal 4.0 +variable fe_thick equal 0.5 +variable pd_thick equal 0.5 -dimension 3 -boundary p p f +variable fe_hi equal ${ir_thick}+${fe_thick} +variable pd_hi equal ${ir_thick}+${fe_thick}+${pd_thick} + + +units metal +atom_style spin + +dimension 3 +boundary p p f # check why? -atom_modify map array +atom_modify map array -lattice fcc 3.54 -region box block 0.0 50.0 0.0 50.0 0.0 4.0 -create_box 1 box -create_atoms 1 box +lattice fcc 3.839 orient x 1 -1 0 orient y 1 1 -2 orient z 1 1 1 +region box block 0.0 ${box_size} 0.0 ${box_size} 0.0 ${pd_hi} +region box_ir block 0.0 ${box_size} 0.0 ${box_size} 0.0 ${ir_thick} +region box_fe block 0.0 ${box_size} 0.0 ${box_size} ${ir_thick} ${fe_hi} +region box_pd block 0.0 ${box_size} 0.0 ${box_size} ${fe_hi} ${pd_hi} + +create_box 3 box + +create_atoms 1 region box_ir +create_atoms 2 region box_fe +create_atoms 3 region box_pd + +group ir_atoms region box_ir +group fe_atoms region box_fe +group pd_atoms region box_pd # setting mass, mag. moments, and interactions for cobalt -mass 1 58.93 +mass 1 192.217 # mass of Ir atoms +mass 2 55.845 # mass of Fe atoms +mass 3 106.42 # mass of Pd atoms -set group all spin/random 31 1.72 +set group ir_atoms spin/random 31 0.01 # has to set a length for LAMMPS to be happy +set group fe_atoms spin/random 89 2.7 +set group pd_atoms spin/random 55 0.3 -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay pair/spin/exchange 4.0 pair/spin/soc/dmi 2.6 -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -pair_coeff * * pair/spin/soc/dmi dmi 2.6 0.01 0.0 0.0 1.0 -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +pair_style hybrid/overlay pair/spin/exchange 4.0 +#pair_style hybrid/overlay pair/spin/exchange 4.0 pair/spin/soc/dmi 2.6 +pair_coeff * * pair/spin/exchange exchange 4.0 0.0 0.003496 1.4885 +pair_coeff 2 2 pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 +#pair_coeff * * pair/spin/soc/dmi dmi 2.6 0.01 0.0 0.0 1.0 +#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 -fix 1 all force/spin anisotropy 0.0001 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.1 0.0 21 - -fix 3 all integration/spin lattice no +fix 1 fe_atoms force/spin anisotropy 0.0001 0.0 0.0 1.0 +fix 2 all force/spin zeeman 0.1 0.0 0.0 1.0 +fix 3 all langevin/spin 0.0 0.1 21 +fix 4 all integration/spin lattice no timestep 0.0002 # define output and run -compute out_mag all compute/spin -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] -variable mag_force equal f_1 +compute out_mag all compute/spin +variable magz equal c_out_mag[4] +variable magnorm equal c_out_mag[5] +variable emag equal c_out_mag[6] +variable tmag equal c_out_mag[7] +variable mag_force equal f_1 thermo_style custom step time v_magnorm v_emag etotal -thermo 50 +thermo 10 -dump 1 all custom 50 dump_skyrmion.lammpstrj type x y z spx spy spz +dump 1 all custom 50 dump_skyrmion.lammpstrj type x y z spx spy spz -run 10000 +run 1000 diff --git a/src/SPIN/fix_langevin_spin.cpp b/src/SPIN/fix_langevin_spin.cpp index b017e20ae3..2a7f49b0e6 100644 --- a/src/SPIN/fix_langevin_spin.cpp +++ b/src/SPIN/fix_langevin_spin.cpp @@ -51,7 +51,7 @@ using namespace MathConst; FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), id_temp(NULL), random(NULL) { - if (narg != 7) error->all(FLERR,"Illegal langevin/spin command"); + if (narg != 6) error->all(FLERR,"Illegal langevin/spin command"); dynamic_group_allow = 1; scalar_flag = 1; @@ -61,8 +61,7 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : temp = force->numeric(FLERR,arg[3]); alpha_t = force->numeric(FLERR,arg[4]); - alpha_l = force->numeric(FLERR,arg[5]); - seed = force->inumeric(FLERR,arg[6]); + seed = force->inumeric(FLERR,arg[5]); if (alpha_t < 0.0) { error->all(FLERR,"Illegal langevin/spin command"); @@ -72,14 +71,6 @@ FixLangevinSpin::FixLangevinSpin(LAMMPS *lmp, int narg, char **arg) : tdamp_flag = 1; } - if (alpha_l < 0.0) { - error->all(FLERR,"Illegal langevin/spin command"); - } else if (alpha_l == 0.0) { - ldamp_flag = 0; - } else { - ldamp_flag = 1; - } - if (temp < 0.0) { error->all(FLERR,"Illegal langevin/spin command"); } else if (temp == 0.0) { @@ -119,7 +110,8 @@ int FixLangevinSpin::setmask() void FixLangevinSpin::init() { - // warn if any fix comes after this one + // fix_langevin_spin has to be the last defined fix + int after = 0; int flag_force = 0; int flag_lang = 0; diff --git a/src/SPIN/fix_langevin_spin.h b/src/SPIN/fix_langevin_spin.h index d95f5c08c7..276f03499a 100644 --- a/src/SPIN/fix_langevin_spin.h +++ b/src/SPIN/fix_langevin_spin.h @@ -39,7 +39,7 @@ class FixLangevinSpin : public Fix { protected: double *spi, *fmi; - double alpha_t, alpha_l; // transverse and longitudunal damping coeff. + double alpha_t; // transverse mag. damping double dts; // magnetic timestep double temp; // spin bath temperature double D,sigma; // bath intensity var. From eab737a45c9c32993880c78b97b60012b8ab526a Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 13 Feb 2018 13:06:10 -0700 Subject: [PATCH 073/675] Delete Co_PurjaPun_2012.eam.alloy --- examples/SPIN/Co_PurjaPun_2012.eam.alloy | 6006 ---------------------- 1 file changed, 6006 deletions(-) delete mode 100644 examples/SPIN/Co_PurjaPun_2012.eam.alloy diff --git a/examples/SPIN/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/Co_PurjaPun_2012.eam.alloy deleted file mode 100644 index 3af058baf7..0000000000 --- a/examples/SPIN/Co_PurjaPun_2012.eam.alloy +++ /dev/null @@ -1,6006 +0,0 @@ -Cobalt EAM potential: G. P. Purja Pun and Y. Mishin, Phys. Rev. B xx, 004100 (2012) (in press) -Data below r = 1.5 A is extrapolated. F(Rho) data not extrapolated. -Created on Wed Sep 26 17:29:54 2012 -1 Co -10000 4.788742913000000e-04 10000 6.499539000000001e-04 6.499539000000000e+00 -27 5.893320000000000e+01 2.507000000000000e+00 hcp - -1.680303080000000e-02 -1.879913964471138e-02 -2.091739081044659e-02 -2.303564197615629e-02 -2.503175082079116e-02 - -2.681996612041136e-02 -2.846010103933253e-02 -3.003179469400266e-02 -3.154842562124295e-02 -3.300931506782415e-02 - -3.442381570000001e-02 -3.580233366714632e-02 -3.714945763166951e-02 -3.846832763111274e-02 -3.976210669053554e-02 - -4.103374908125148e-02 -4.228535107207521e-02 -4.351872320172212e-02 -4.473539109100971e-02 -4.593674531110434e-02 - -4.712392115246503e-02 -4.829795108118731e-02 -4.945971154662068e-02 -5.061001094949964e-02 -5.174954151284258e-02 - -5.287894548568519e-02 -5.399878139884967e-02 -5.510957102742049e-02 -5.621177284174523e-02 -5.730581735016625e-02 - -5.839208651773948e-02 -5.947094067448531e-02 -6.054270215356945e-02 -6.160767623453070e-02 -6.266613797925552e-02 - -6.371834880435967e-02 -6.476454576302854e-02 -6.580495483863194e-02 -6.683978209870683e-02 -6.786922452279202e-02 - -6.889346265426707e-02 -6.991266949659354e-02 -7.092700432972064e-02 -7.193662011890395e-02 -7.294165829413661e-02 - -7.394225494811188e-02 -7.493853635958479e-02 -7.593062425993033e-02 -7.691863200494162e-02 -7.790266905197404e-02 - -7.888283764021425e-02 -7.985923664258643e-02 -8.083195868513401e-02 -8.180109346997461e-02 -8.276672525040257e-02 - -8.372893572415932e-02 -8.468780181559693e-02 -8.564339820511864e-02 -8.659579537072190e-02 -8.754506181558984e-02 - -8.849126234605453e-02 -8.943446001410092e-02 -9.037471455117625e-02 -9.131208412841478e-02 -9.224662399623559e-02 - -9.317838801321032e-02 -9.410742739123597e-02 -9.503379209498646e-02 -9.595752974691800e-02 -9.687868684755546e-02 - -9.779730775191570e-02 -9.871343580120046e-02 -9.962711242685958e-02 -1.005383781439554e-01 -1.014472717117523e-01 - -1.023538310651938e-01 -1.032580925977369e-01 -1.041600919387366e-01 -1.050598632026273e-01 -1.059574398208095e-01 - -1.068528540074704e-01 -1.077461373458066e-01 -1.086373201122683e-01 -1.095264320028559e-01 -1.104135016985198e-01 - -1.112985573626335e-01 -1.121816261033156e-01 -1.130627345294291e-01 -1.139419083080692e-01 -1.148191726662944e-01 - -1.156945520127823e-01 -1.165680703406650e-01 -1.174397507992727e-01 -1.183096161572101e-01 -1.191776885039839e-01 - -1.200439895800373e-01 -1.209085404086571e-01 -1.217713616730546e-01 -1.226324734132936e-01 -1.234918953788508e-01 - -1.243496468000000e-01 -1.252057466264230e-01 -1.260602132046348e-01 -1.269130646065986e-01 -1.277643184092350e-01 - -1.286139919512837e-01 -1.294621021138015e-01 -1.303086655551642e-01 -1.311536985007052e-01 -1.319972169590798e-01 - -1.328392365052704e-01 -1.336797725161469e-01 -1.345188400098036e-01 -1.353564538215464e-01 -1.361926284143060e-01 - -1.370273780803152e-01 -1.378607168013910e-01 -1.386926583917836e-01 -1.395232163058920e-01 -1.403524038515728e-01 - -1.411802341103638e-01 -1.420067200256853e-01 -1.428318742148069e-01 -1.436557091565456e-01 -1.444782371020595e-01 - -1.452994701862315e-01 -1.461194203065015e-01 -1.469380992388567e-01 -1.477555185109162e-01 -1.485716895480879e-01 - -1.493866236153044e-01 -1.502003318703277e-01 -1.510128252027127e-01 -1.518241144121522e-01 -1.526342102070998e-01 - -1.534431232126203e-01 -1.542508638114616e-01 -1.550574422930448e-01 -1.558628688157988e-01 -1.566671534698807e-01 - -1.574703062033520e-01 -1.582723368973844e-01 -1.590732553076882e-01 -1.598730711132973e-01 -1.606717938120008e-01 - -1.614694328459875e-01 -1.622659976162905e-01 -1.630614974730487e-01 -1.638559416039789e-01 -1.646493391351259e-01 - -1.654416991082678e-01 -1.662330305252601e-01 -1.670233423125346e-01 -1.678126433512354e-01 -1.686009424167802e-01 - -1.693882482431861e-01 -1.701745695045948e-01 -1.709599148401449e-01 -1.717442928088396e-01 -1.725277119385885e-01 - -1.733101807130639e-01 -1.740917075837066e-01 -1.748723009172683e-01 -1.756519690655456e-01 -1.764307204052008e-01 - -1.772085632840185e-01 -1.779855059094047e-01 -1.787615564692287e-01 -1.795367232135896e-01 -1.803110143830451e-01 - -1.810844381177561e-01 -1.818570025406103e-01 -1.826287158057983e-01 -1.833995860626770e-01 -1.841696214099643e-01 - -1.849388299454831e-01 -1.857072198141128e-01 -1.864747991526175e-01 -1.872415760182443e-01 -1.880075584641173e-01 - -1.887727546063884e-01 -1.895371725773110e-01 -1.903008205105196e-01 -1.910637065418589e-01 -1.918258388146347e-01 - -1.925872254807121e-01 -1.933478747187342e-01 -1.941077947209150e-01 -1.948669937069724e-01 -1.956254799127480e-01 - -1.963832616110719e-01 -1.971403470967068e-01 -1.978967447151567e-01 -1.986524628291068e-01 -1.994075098192274e-01 - -2.001618941005484e-01 -2.009156242075518e-01 -2.016687086990372e-01 -2.024211561116226e-01 -2.031729750127928e-01 - -2.039241741156804e-01 -2.046747621691974e-01 -2.054247479197256e-01 -2.061741401521784e-01 -2.069229478081280e-01 - -2.076711798806499e-01 -2.084188454121736e-01 -2.091659534755806e-01 -2.099125132162076e-01 -2.106585338443872e-01 - -2.114040247579823e-01 -2.121489953974893e-01 -2.128934551864067e-01 -2.136374136027109e-01 -2.143808803592873e-01 - -2.151238652468154e-01 -2.158663781322411e-01 -2.166084289346303e-01 -2.173500277052638e-01 -2.180911845646947e-01 - -2.188319097783510e-01 -2.195722136949507e-01 -2.203121068514981e-01 -2.210515998518519e-01 -2.217907033790026e-01 - -2.225294282016381e-01 -2.232677853521022e-01 -2.240057859531163e-01 -2.247434412252567e-01 -2.254807624804862e-01 - -2.262177612984613e-01 -2.269544493586047e-01 -2.276908384717110e-01 -2.284269405581227e-01 -2.291627678450005e-01 - -2.298983326532392e-01 -2.306336473718499e-01 -2.313687245044682e-01 -2.321035769451089e-01 -2.328382177230701e-01 - -2.335726600184018e-01 -2.343069171312917e-01 -2.350410026917230e-01 -2.357749304696442e-01 -2.365087144650665e-01 - -2.372423688046511e-01 -2.379759078915950e-01 -2.387093462817347e-01 -2.394426988649284e-01 -2.401759806938325e-01 - -2.409092071382775e-01 -2.416423937275558e-01 -2.423755563116356e-01 -2.431087109081851e-01 -2.438418738849959e-01 - -2.445750618045980e-01 -2.453082916583512e-01 -2.460415806101058e-01 -2.467749460848467e-01 -2.475084057095742e-01 - -2.482419776582159e-01 -2.489756803241430e-01 -2.497095324315720e-01 -2.504435529132133e-01 -2.511777612049070e-01 - -2.519121769824342e-01 -2.526468203782122e-01 -2.533817117688987e-01 -2.541168720514789e-01 -2.548523223627430e-01 - -2.555880842783758e-01 -2.563241796571988e-01 -2.570606310516858e-01 -2.577974612919421e-01 -2.585346936249472e-01 - -2.592723515924181e-01 -2.600104594981498e-01 -2.607490419576605e-01 -2.614881240712832e-01 -2.622277312727207e-01 - -2.629678898443362e-01 -2.637086264051527e-01 -2.644499680721714e-01 -2.651919423187013e-01 -2.659345775453039e-01 - -2.666779025531186e-01 -2.674219468183432e-01 -2.681667401972407e-01 -2.689123133912765e-01 -2.696586975492495e-01 - -2.704059247640904e-01 -2.711540275538941e-01 -2.719030391932789e-01 -2.726529934197978e-01 -2.734039250662187e-01 - -2.741558694758598e-01 -2.749088629390239e-01 -2.756629422674556e-01 -2.764181454116789e-01 -2.771745108563868e-01 - -2.779320780841674e-01 -2.786908871694924e-01 -2.794509795564719e-01 -2.802123972949423e-01 -2.809751834880072e-01 - -2.817393818716988e-01 -2.825050376604960e-01 -2.832721967688652e-01 -2.840409064327807e-01 -2.848112145951165e-01 - -2.855831707048412e-01 -2.863568249759762e-01 -2.871322291766564e-01 -2.879094358829076e-01 -2.886884993482028e-01 - -2.894694746623641e-01 -2.902524185831628e-01 -2.910373887617654e-01 -2.918244447549689e-01 -2.926136470970381e-01 - -2.934050583264800e-01 -2.941987419693519e-01 -2.949947634976693e-01 -2.957931894604184e-01 -2.965940887685082e-01 - -2.973975314584912e-01 -2.982035897075678e-01 -2.990123368838905e-01 -2.998238489787670e-01 -3.006382032814213e-01 - -3.014554796495834e-01 -3.022757592753754e-01 -3.030991261199829e-01 -3.039256655881672e-01 -3.047554660899296e-01 - -3.055886175640754e-01 -3.064252130593845e-01 -3.072653472379187e-01 -3.081091181048918e-01 -3.089566254021406e-01 - -3.098079724748395e-01 -3.106632645082006e-01 -3.115226104442510e-01 -3.123861211846884e-01 -3.132539117130802e-01 - -3.141260990998875e-01 -3.150028046812773e-01 -3.158841520361693e-01 -3.167702694487885e-01 -3.176612875689104e-01 - -3.185573418032087e-01 -3.194585700942650e-01 -3.203651157713922e-01 -3.212771249044592e-01 -3.221947491388281e-01 - -3.231181430183639e-01 -3.240474671054514e-01 -3.249828850672117e-01 -3.259245669711927e-01 -3.268726862299913e-01 - -3.278274232359761e-01 -3.287889619469540e-01 -3.297574936027157e-01 -3.307332132733838e-01 -3.317163240684192e-01 - -3.327070332351553e-01 -3.337055565330767e-01 -3.347121141277095e-01 -3.357269352965953e-01 -3.367502540927247e-01 - -3.377823145588749e-01 -3.388233658450175e-01 -3.398736675401181e-01 -3.409334847493447e-01 -3.420030942036733e-01 - -3.430827786115977e-01 -3.441728329658748e-01 -3.452735586625544e-01 -3.463852704265985e-01 -3.475082899277179e-01 - -3.486429532857090e-01 -3.497896041380748e-01 -3.509486017430585e-01 -3.521203134619261e-01 -3.533051234472958e-01 - -3.545034246605078e-01 -3.557156285064298e-01 -3.569421559513399e-01 -3.581834477636310e-01 -3.594399550688090e-01 - -3.607121506187135e-01 -3.620005184199024e-01 -3.633055658714727e-01 -3.646278119965309e-01 -3.659677989216845e-01 - -3.673260803339768e-01 -3.687032330586966e-01 -3.700998457090232e-01 -3.715165309114429e-01 -3.729539131544640e-01 - -3.744126403613781e-01 -3.758933720658462e-01 -3.773967908082255e-01 -3.789235902651524e-01 -3.804744856516886e-01 - -3.820502023195389e-01 -3.836514846285581e-01 -3.852790856353807e-01 -3.869337741756033e-01 -3.886163256972291e-01 - -3.903275263189269e-01 -3.920681658458204e-01 -3.938390381581898e-01 -3.956409370872805e-01 -3.974746521930466e-01 - -3.993409682701225e-01 -4.012406553231547e-01 -4.031744727439548e-01 -4.051431522629808e-01 -4.071474082130475e-01 - -4.091879129977703e-01 -4.112653138348391e-01 -4.133801991274390e-01 -4.155331235094092e-01 -4.177245653517079e-01 - -4.199549603385881e-01 -4.222246496703586e-01 -4.245339230260172e-01 -4.268829584832519e-01 -4.292718744431503e-01 - -4.317006622016948e-01 -4.341692468068394e-01 -4.366774154195978e-01 -4.392248845800756e-01 -4.418112262316757e-01 - -4.444359401252420e-01 -4.470983818380713e-01 -4.497978365893122e-01 -4.525334523390530e-01 -4.553043120100788e-01 - -4.581093756350076e-01 -4.609475466791835e-01 -4.638176252290113e-01 -4.667183660407072e-01 -4.696484459287199e-01 - -4.726065094563343e-01 -4.755911501239359e-01 -4.786009429283761e-01 -4.816344399152602e-01 -4.846901882843556e-01 - -4.877667388033212e-01 -4.908626497957108e-01 -4.939765062407663e-01 -4.971069114027755e-01 -5.002525150305011e-01 - -5.034119937007041e-01 -5.065840848176727e-01 -5.097675587133593e-01 -5.129612566028576e-01 -5.161640565945169e-01 - -5.193749134865747e-01 -5.225928209640586e-01 -5.258168515692775e-01 -5.290461169135583e-01 -5.322798060270272e-01 - -5.355171460831645e-01 -5.387574394100244e-01 -5.420000245805213e-01 -5.452443099924439e-01 -5.484897376520451e-01 - -5.517358141745681e-01 -5.549820769247875e-01 -5.582281216566209e-01 -5.614735718423751e-01 -5.647181034387753e-01 - -5.679614169890416e-01 -5.712032588979591e-01 -5.744433972991336e-01 -5.776816413798681e-01 -5.809178193507762e-01 - -5.841517944620215e-01 -5.873834463985003e-01 -5.906126855444893e-01 -5.938394364748391e-01 -5.970636498273136e-01 - -6.002852884426439e-01 -6.035043379105128e-01 -6.067207941645156e-01 -6.099346717649501e-01 -6.131459940881434e-01 - -6.163548011478311e-01 -6.195611404873568e-01 -6.227650731310865e-01 -6.259666663617727e-01 -6.291659990146931e-01 - -6.323631552654742e-01 -6.355582290986170e-01 -6.387513188871106e-01 -6.419425307490256e-01 -6.451319745539882e-01 - -6.483197674327603e-01 -6.515060293214946e-01 -6.546908841167685e-01 -6.578744572836812e-01 -6.610568766009968e-01 - -6.642382709221243e-01 -6.674187710853904e-01 -6.705985088370179e-01 -6.737776175698923e-01 -6.769562312911304e-01 - -6.801344848181089e-01 -6.833125134999645e-01 -6.864904540026142e-01 -6.896684434132225e-01 -6.928466191871651e-01 - -6.960251190039876e-01 -6.992040810717012e-01 -7.023836437724149e-01 -7.055639456561626e-01 -7.087451254024176e-01 - -7.119273220404884e-01 -7.151106745784721e-01 -7.182953215897911e-01 -7.214814016245582e-01 -7.246690535743215e-01 - -7.278584163200112e-01 -7.310496283586513e-01 -7.342428280442573e-01 -7.374381535427195e-01 -7.406357429444993e-01 - -7.438357342264661e-01 -7.470382651689156e-01 -7.502434728794412e-01 -7.534514943101106e-01 -7.566624664635970e-01 - -7.598765262236051e-01 -7.630938099473661e-01 -7.663144537782537e-01 -7.695385935306881e-01 -7.727663648349232e-01 - -7.759979029135046e-01 -7.792333428394971e-01 -7.824728194957561e-01 -7.857164675195603e-01 -7.889644207560909e-01 - -7.922168128628783e-01 -7.954737775389469e-01 -7.987354483417761e-01 -8.020019582211745e-01 -8.052734399002169e-01 - -8.085500258027153e-01 -8.118318481538471e-01 -8.151190386835121e-01 -8.184117289678831e-01 -8.217100504635063e-01 - -8.250141343769457e-01 -8.283241110344656e-01 -8.316401105683494e-01 -8.349622632152548e-01 -8.382906990624389e-01 - -8.416255474951805e-01 -8.449669376504778e-01 -8.483149983741850e-01 -8.516698583310095e-01 -8.550316457522134e-01 - -8.584004886419279e-01 -8.617765145292081e-01 -8.651598508088844e-01 -8.685506248139727e-01 -8.719489622521989e-01 - -8.753549823919468e-01 -8.787687997490927e-01 -8.821905162688262e-01 -8.856202278084699e-01 -8.890580184445617e-01 - -8.925039663319011e-01 -8.959581377191167e-01 -8.994205926453692e-01 -9.028913782181163e-01 -9.063705352609543e-01 - -9.098580923937473e-01 -9.133540718558304e-01 -9.168584825681617e-01 -9.203713268261465e-01 -9.238925937413506e-01 - -9.274222656928153e-01 -9.309603113133150e-01 -9.345066924037853e-01 -9.380613571840678e-01 -9.416242468397124e-01 - -9.451952880001965e-01 -9.487744002152808e-01 -9.523614892719469e-01 -9.559564538973973e-01 -9.595591783425093e-01 - -9.631695396882074e-01 -9.667874008119273e-01 -9.704126174878044e-01 -9.740450312802591e-01 -9.776844767743714e-01 - -9.813307748475731e-01 -9.849837394560669e-01 -9.886431705787867e-01 -9.923088615430331e-01 -9.959805930468456e-01 - -9.996581394281877e-01 -1.003341262213973e+00 -1.007029716826452e+00 -1.010723247080268e+00 -1.014421591236032e+00 - -1.018124476945841e+00 -1.021831626529500e+00 -1.025542751586175e+00 -1.029257558992056e+00 -1.032975747452084e+00 - -1.036697011770175e+00 -1.040421039317395e+00 -1.044147513860548e+00 -1.047876112182243e+00 -1.051606508161453e+00 - -1.055338371046766e+00 -1.059071368055605e+00 -1.062805162911107e+00 -1.066539417837194e+00 -1.070273792555226e+00 - -1.074007946119602e+00 -1.077741537419413e+00 -1.081474225260823e+00 -1.085205668283577e+00 -1.088935525821090e+00 - -1.092663460147868e+00 -1.096389134999202e+00 -1.100112217012435e+00 -1.103832374788097e+00 -1.107549281877421e+00 - -1.111262614364874e+00 -1.114972053517157e+00 -1.118677283811066e+00 -1.122377997381517e+00 -1.126073890115035e+00 - -1.129764665246453e+00 -1.133450029987863e+00 -1.137129700112097e+00 -1.140803395884355e+00 -1.144470846978575e+00 - -1.148131787996958e+00 -1.151785963846005e+00 -1.155433124321719e+00 -1.159073028473816e+00 -1.162705440550504e+00 - -1.166330136340245e+00 -1.169946897198408e+00 -1.173555515207745e+00 -1.177155787675114e+00 -1.180747522076412e+00 - -1.184330531453910e+00 -1.187904640946331e+00 -1.191469681045491e+00 -1.195025491559137e+00 -1.198571917630371e+00 - -1.202108816427798e+00 -1.205636050425976e+00 -1.209153491297797e+00 -1.212661015717853e+00 -1.216158511169199e+00 - -1.219645870103956e+00 -1.223122994042052e+00 -1.226589789250444e+00 -1.230046171916402e+00 -1.233492062734542e+00 - -1.236927390508550e+00 -1.240352088211073e+00 -1.243766097381527e+00 -1.247169363751694e+00 -1.250561841256042e+00 - -1.253943487695246e+00 -1.257314268132119e+00 -1.260674151007197e+00 -1.264023111009775e+00 -1.267361126327042e+00 - -1.270688182889021e+00 -1.274004269717549e+00 -1.277309380458899e+00 -1.280603511471348e+00 -1.283886665336751e+00 - -1.287158847447705e+00 -1.290420068216200e+00 -1.293670340397085e+00 -1.296909681097245e+00 -1.300138109654688e+00 - -1.303355649979877e+00 -1.306562327924205e+00 -1.309758172530325e+00 -1.312943214678930e+00 -1.316117489411603e+00 - -1.319281033477409e+00 -1.322433886294459e+00 -1.325576088655014e+00 -1.328707684178879e+00 -1.331828717822939e+00 - -1.334939237064845e+00 -1.338039290534788e+00 -1.341128928952336e+00 -1.344208204044806e+00 -1.347277169481128e+00 - -1.350335879836220e+00 -1.353384391367341e+00 -1.356422761075585e+00 -1.359451047255056e+00 -1.362469308854003e+00 - -1.365477606144248e+00 -1.368475999956682e+00 -1.371464552034891e+00 -1.374443324607048e+00 -1.377412380926959e+00 - -1.380371784452904e+00 -1.383321598435415e+00 -1.386261886043311e+00 -1.389192710326296e+00 -1.392114134331963e+00 - -1.395026221218571e+00 -1.397929034013782e+00 -1.400822635112213e+00 -1.403707086730599e+00 -1.406582451007194e+00 - -1.409448790047375e+00 -1.412306165903488e+00 -1.415154640386279e+00 -1.417994274393129e+00 -1.420825128672226e+00 - -1.423647264288326e+00 -1.426460742270041e+00 -1.429265623184807e+00 -1.432061967292326e+00 -1.434849834082543e+00 - -1.437629282863016e+00 -1.440400372981510e+00 -1.443163163644870e+00 -1.445917713456040e+00 -1.448664080745027e+00 - -1.451402323353998e+00 -1.454132498983212e+00 -1.456854665253158e+00 -1.459568879518891e+00 -1.462275198153495e+00 - -1.464973677286479e+00 -1.467664373054985e+00 -1.470347341460922e+00 -1.473022637957602e+00 -1.475690317602213e+00 - -1.478350434416031e+00 -1.481003042251009e+00 -1.483648195317718e+00 -1.486285947650543e+00 -1.488916352220507e+00 - -1.491539461636770e+00 -1.494155328124374e+00 -1.496764003712290e+00 -1.499365540029296e+00 -1.501959988475343e+00 - -1.504547399935251e+00 -1.507127824972320e+00 -1.509701313378898e+00 -1.512267914702716e+00 -1.514827678283996e+00 - -1.517380653263305e+00 -1.519926888190102e+00 -1.522466431291609e+00 -1.524999330097196e+00 -1.527525631932397e+00 - -1.530045384005255e+00 -1.532558633226744e+00 -1.535065425437065e+00 -1.537565806237489e+00 -1.540059821344337e+00 - -1.542547516227056e+00 -1.545028935252552e+00 -1.547504122520188e+00 -1.549973122161691e+00 -1.552435978060152e+00 - -1.554892733071735e+00 -1.557343429814709e+00 -1.559788110982664e+00 -1.562226819032855e+00 -1.564659595401864e+00 - -1.567086481207361e+00 -1.569507517312065e+00 -1.571922744465970e+00 -1.574332203223133e+00 -1.576735933784567e+00 - -1.579133975135047e+00 -1.581526366095511e+00 -1.583913146047792e+00 -1.586294354132112e+00 -1.588670027961349e+00 - -1.591040204840321e+00 -1.593404922368944e+00 -1.595764217997401e+00 -1.598118128281829e+00 -1.600466689560657e+00 - -1.602809938195509e+00 -1.605147910317183e+00 -1.607480641109968e+00 -1.609808165462235e+00 -1.612130518025190e+00 - -1.614447733364541e+00 -1.616759845941160e+00 -1.619066889913862e+00 -1.621368898338053e+00 -1.623665904067572e+00 - -1.625957940253400e+00 -1.628245039905108e+00 -1.630527235169479e+00 -1.632804557955816e+00 -1.635077040086276e+00 - -1.637344713164072e+00 -1.639607608003776e+00 -1.641865755216986e+00 -1.644119185392045e+00 -1.646367929030376e+00 - -1.648612016308968e+00 -1.650851477080719e+00 -1.653086340226579e+00 -1.655316634503563e+00 -1.657542389144867e+00 - -1.659763633269537e+00 -1.661980395063818e+00 -1.664192702419508e+00 -1.666400582983419e+00 -1.668604064251645e+00 - -1.670803173362428e+00 -1.672997937236383e+00 -1.675188382281491e+00 -1.677374534802169e+00 -1.679556421201192e+00 - -1.681734067628149e+00 -1.683907499121518e+00 -1.686076740528519e+00 -1.688241817042459e+00 -1.690402753749855e+00 - -1.692559574964003e+00 -1.694712304797627e+00 -1.696860967334408e+00 -1.699005586454806e+00 -1.701146185255449e+00 - -1.703282786721620e+00 -1.705415414177082e+00 -1.707544090831449e+00 -1.709668839099297e+00 -1.711789681156861e+00 - -1.713906639022084e+00 -1.716019734585396e+00 -1.718128989385494e+00 -1.720234424849230e+00 -1.722336062307809e+00 - -1.724433922917529e+00 -1.726528027230686e+00 -1.728618395721282e+00 -1.730705049154116e+00 -1.732788008101886e+00 - -1.734867292078088e+00 -1.736942920442919e+00 -1.739014913002594e+00 -1.741083289547465e+00 -1.743148069358425e+00 - -1.745209271450225e+00 -1.747266914282488e+00 -1.749321016270471e+00 -1.751371596207075e+00 -1.753418672811714e+00 - -1.755462264132180e+00 -1.757502388000569e+00 -1.759539062057792e+00 -1.761572303881055e+00 -1.763602130983907e+00 - -1.765628560778196e+00 -1.767651610332621e+00 -1.769671296580689e+00 -1.771687636258316e+00 -1.773700645994041e+00 - -1.775710342184503e+00 -1.777716741146727e+00 -1.779719859111176e+00 -1.781719712181211e+00 -1.783716316038327e+00 - -1.785709686327057e+00 -1.787699838965949e+00 -1.789686789700248e+00 -1.791670553307960e+00 -1.793651144443631e+00 - -1.795628578235185e+00 -1.797602869852874e+00 -1.799574034162875e+00 -1.801542085839167e+00 -1.803507039091021e+00 - -1.805468908052258e+00 -1.807427707019619e+00 -1.809383450209764e+00 -1.811336151356113e+00 -1.813285824110837e+00 - -1.815232482284336e+00 -1.817176139592257e+00 -1.819116809213001e+00 -1.821054504262256e+00 -1.822989238142106e+00 - -1.824921024174149e+00 -1.826849875071642e+00 -1.828775803432498e+00 -1.830698822001605e+00 -1.832618943490715e+00 - -1.834536180332052e+00 -1.836450544855570e+00 -1.838362049261658e+00 -1.840270705693083e+00 -1.842176526191684e+00 - -1.844079522732226e+00 -1.845979707122125e+00 -1.847877091069540e+00 -1.849771686052976e+00 -1.851663503515020e+00 - -1.853552554984233e+00 -1.855438851906239e+00 -1.857322405308933e+00 -1.859203226114476e+00 -1.861081325239847e+00 - -1.862956713608023e+00 -1.864829402171162e+00 -1.866699401811557e+00 -1.868566723102871e+00 -1.870431376467943e+00 - -1.872293372034969e+00 -1.874152719980291e+00 -1.876009430967454e+00 -1.877863515541558e+00 -1.879714983286677e+00 - -1.881563843740828e+00 -1.883410107218835e+00 -1.885253783963326e+00 -1.887094883151373e+00 -1.888933413891583e+00 - -1.890769386084288e+00 -1.892602809677417e+00 -1.894433694017575e+00 -1.896262048252058e+00 -1.898087881332244e+00 - -1.899911202238771e+00 -1.901732020265218e+00 -1.903550344662578e+00 -1.905366184198560e+00 -1.907179547502340e+00 - -1.908990443132265e+00 -1.910798879695625e+00 -1.912604866066330e+00 -1.914408411061036e+00 -1.916209523000752e+00 - -1.918008210058423e+00 -1.919804480310377e+00 -1.921598341888620e+00 -1.923389803244497e+00 -1.925178872754823e+00 - -1.926965558178970e+00 -1.928749867237572e+00 -1.930531808113790e+00 -1.932311388923252e+00 -1.934088617048956e+00 - -1.935863499807747e+00 -1.937636044984464e+00 -1.939406260367225e+00 -1.941174153289245e+00 -1.942939731044444e+00 - -1.944703001224463e+00 -1.946463971324967e+00 -1.948222648160018e+00 -1.949979038559213e+00 -1.951733150095908e+00 - -1.953484990331042e+00 -1.955234566032130e+00 -1.956981883796339e+00 -1.958726950332857e+00 -1.960469772453529e+00 - -1.962210357268799e+00 -1.963948711773954e+00 -1.965684842205069e+00 -1.967418754747339e+00 -1.969150456141664e+00 - -1.970879953151972e+00 -1.972607252078582e+00 -1.974332359180596e+00 -1.976055281015821e+00 -1.977776024078765e+00 - -1.979494594312026e+00 -1.981210997612849e+00 -1.982925240248993e+00 -1.984637328483028e+00 -1.986347268186276e+00 - -1.988055065135925e+00 -1.989760725123873e+00 -1.991464254028801e+00 -1.993165658061782e+00 -1.994864943305917e+00 - -1.996562115000000e+00 -1.998257178352118e+00 -1.999950139291834e+00 -2.001641003786081e+00 -2.003329777229788e+00 - -2.005016464899233e+00 -2.006701072168050e+00 -2.008383604435580e+00 -2.010064067106614e+00 -2.011742465557514e+00 - -2.013418805045480e+00 -2.015093090790721e+00 -2.016765327984645e+00 -2.018435521788566e+00 -2.020103677272243e+00 - -2.021769799450648e+00 -2.023433893211152e+00 -2.025095963440481e+00 -2.026756015150358e+00 -2.028414053372033e+00 - -2.030070083089858e+00 -2.031724109167109e+00 -2.033376136029651e+00 -2.035026168111125e+00 -2.036674210313675e+00 - -2.038320267543339e+00 -2.039964344253219e+00 -2.041606444873179e+00 -2.043246574193053e+00 -2.044884736927830e+00 - -2.046520937133174e+00 -2.048155178894251e+00 -2.049787467073582e+00 -2.051417806490505e+00 -2.053046201014273e+00 - -2.054672654449746e+00 -2.056297171294283e+00 -2.057919756136151e+00 -2.059540413234731e+00 -2.061159146675282e+00 - -2.062775960175462e+00 -2.064390857518372e+00 -2.066003843116474e+00 -2.067614921377108e+00 -2.069224096057763e+00 - -2.070831370870978e+00 -2.072436749999330e+00 -2.074040237602111e+00 -2.075641837275425e+00 -2.077241552544816e+00 - -2.078839387216755e+00 -2.080435345153352e+00 -2.082029430158359e+00 -2.083621645967183e+00 -2.085211996100236e+00 - -2.086800484128769e+00 -2.088387114042385e+00 -2.089971889736969e+00 -2.091554814315162e+00 -2.093135890870968e+00 - -2.094715123257078e+00 -2.096292515329556e+00 -2.097868070199266e+00 -2.099441790929908e+00 -2.101013681141721e+00 - -2.102583744473837e+00 -2.104151984084442e+00 -2.105718403103298e+00 -2.107283005027429e+00 -2.108845793364375e+00 - -2.110406771296459e+00 -2.111965941910842e+00 -2.113523308239219e+00 -2.115078873308544e+00 -2.116632640182243e+00 - -2.118184611994434e+00 -2.119734792125529e+00 -2.121283183887100e+00 -2.122829790069075e+00 -2.124374613416041e+00 - -2.125917657012881e+00 -2.127458923984833e+00 -2.128998417278243e+00 -2.130536139767974e+00 -2.132072094221826e+00 - -2.133606283403289e+00 -2.135138710165668e+00 -2.136669377406417e+00 -2.138198288109766e+00 -2.139725445172409e+00 - -2.141250851054121e+00 -2.142774508270670e+00 -2.144296419998729e+00 -2.145816589318136e+00 -2.147335018260493e+00 - -2.148851708859426e+00 -2.150366664204882e+00 -2.151879887475646e+00 -2.153391381149525e+00 -2.154901147551277e+00 - -2.156409189094421e+00 -2.157915508301146e+00 -2.159420108039566e+00 -2.160922991060322e+00 -2.162424159298261e+00 - -2.163923614721020e+00 -2.165421360243191e+00 -2.166917398765767e+00 -2.168411732188371e+00 -2.169904362385663e+00 - -2.171395292133801e+00 -2.172884524283159e+00 -2.174372061079477e+00 -2.175857904621596e+00 -2.177342057025400e+00 - -2.178824520458782e+00 -2.180305297280612e+00 -2.181784389836284e+00 -2.183261800226323e+00 -2.184737530553230e+00 - -2.186211583172279e+00 -2.187683960396664e+00 -2.189154664118480e+00 -2.190623696232450e+00 -2.192091059064924e+00 - -2.193556754973807e+00 -2.195020786011611e+00 -2.196483154140098e+00 -2.197943861263397e+00 -2.199402909290797e+00 - -2.200860300209873e+00 -2.202316036078389e+00 -2.203770119156592e+00 -2.205222551620105e+00 -2.206673335103553e+00 - -2.208122471221687e+00 -2.209569962050753e+00 -2.211015809743800e+00 -2.212460016299604e+00 -2.213902583604158e+00 - -2.215343513246597e+00 -2.216782806815468e+00 -2.218220466193829e+00 -2.219656493330310e+00 -2.221090890141300e+00 - -2.222523658493742e+00 -2.223954800089009e+00 -2.225384316635711e+00 -2.226812210036953e+00 -2.228238482128524e+00 - -2.229663134282465e+00 -2.231086167933421e+00 -2.232507585230206e+00 -2.233927388263609e+00 -2.235345578178182e+00 - -2.236762156112363e+00 -2.238177124126393e+00 -2.239590484325721e+00 -2.241002238074839e+00 -2.242412386688506e+00 - -2.243820932023517e+00 -2.245227875877045e+00 -2.246633219265731e+00 -2.248036963296034e+00 -2.249439110214208e+00 - -2.250839662216949e+00 -2.252238620162919e+00 -2.253635984842608e+00 -2.255031758111861e+00 -2.256425941987018e+00 - -2.257818538061035e+00 -2.259209547728066e+00 -2.260598972010440e+00 -2.261986811976363e+00 -2.263373069249392e+00 - -2.264757745520950e+00 -2.266140842198597e+00 -2.267522360622610e+00 -2.268902302148032e+00 -2.270280668153553e+00 - -2.271657460097697e+00 -2.273032679375423e+00 -2.274406327047590e+00 -2.275778404191426e+00 -2.277148912283742e+00 - -2.278517852852843e+00 -2.279885227233438e+00 -2.281251036662961e+00 -2.282615282183361e+00 -2.283977964870765e+00 - -2.285339086133513e+00 -2.286698647429660e+00 -2.288056650083893e+00 -2.289413095312870e+00 -2.290767984034498e+00 - -2.292121317209354e+00 -2.293473096267451e+00 -2.294823322630535e+00 -2.296171997217860e+00 -2.297519120939147e+00 - -2.298864695168495e+00 -2.300208721271999e+00 -2.301551200119357e+00 -2.302892132586471e+00 -2.304231520070443e+00 - -2.305569363951571e+00 -2.306905665021753e+00 -2.308240424043668e+00 -2.309573642251534e+00 -2.310905320943594e+00 - -2.312235461202651e+00 -2.313564064009707e+00 -2.314891130153991e+00 -2.316216660462560e+00 -2.317540656105554e+00 - -2.318863118293744e+00 -2.320184048057342e+00 -2.321503446385586e+00 -2.322821314284393e+00 -2.324137652689092e+00 - -2.325452462235987e+00 -2.326765743634779e+00 -2.328077498187803e+00 -2.329387727168217e+00 -2.330696431139842e+00 - -2.332003610675342e+00 -2.333309267092103e+00 -2.334613401701304e+00 -2.335916015044585e+00 -2.337217107588464e+00 - -2.338516680268511e+00 -2.339814734134101e+00 -2.341111270220800e+00 -2.342406289434137e+00 -2.343699792173311e+00 - -2.344991778936741e+00 -2.346282251126043e+00 -2.347571210092017e+00 -2.348858656078995e+00 -2.350144589310363e+00 - -2.351429011032167e+00 -2.352711922533504e+00 -2.353993324252988e+00 -2.355273216536063e+00 -2.356551600205969e+00 - -2.357828476165661e+00 -2.359103845159169e+00 -2.360377707896761e+00 -2.361650065112589e+00 -2.362920917562625e+00 - -2.364190266066228e+00 -2.365458111389245e+00 -2.366724454020086e+00 -2.367989294422349e+00 -2.369252633237819e+00 - -2.370514471195048e+00 -2.371774809191487e+00 -2.373033648052395e+00 -2.374290988145372e+00 -2.375546829856004e+00 - -2.376801174099476e+00 -2.378054021758188e+00 -2.379305373053798e+00 -2.380555228228685e+00 -2.381803588268867e+00 - -2.383050454170042e+00 -2.384295826222999e+00 -2.385539704659158e+00 -2.386782090177350e+00 -2.388022983519428e+00 - -2.389262385131917e+00 -2.390500295440986e+00 -2.391736715086700e+00 -2.392971644747536e+00 -2.394205085041701e+00 - -2.395437036486230e+00 -2.396667499253712e+00 -2.397896473568759e+00 -2.399123960208524e+00 -2.400349959968320e+00 - -2.401574473163553e+00 -2.402797500049246e+00 -2.404019041118798e+00 -2.405239096931802e+00 -2.406457668074259e+00 - -2.407674755052769e+00 -2.408890358029935e+00 -2.410104477201394e+00 -2.411317113238899e+00 -2.412528266823138e+00 - -2.413737938194389e+00 -2.414946127524263e+00 -2.416152835150093e+00 -2.417358061488310e+00 -2.418561807106014e+00 - -2.419764072540869e+00 -2.420964858062149e+00 -2.422164163883997e+00 -2.423361990268478e+00 -2.424558337539998e+00 - -2.425753206224426e+00 -2.426946596778449e+00 -2.428138509180588e+00 -2.429328943436301e+00 -2.430517900136966e+00 - -2.431705379929064e+00 -2.432891383093559e+00 -2.434075909789072e+00 -2.435258960050367e+00 -2.436440534002261e+00 - -2.437620632253666e+00 -2.438799255363957e+00 -2.439976403210287e+00 -2.441152075652963e+00 -2.442326273167121e+00 - -2.443498996281469e+00 -2.444670245124171e+00 -2.445840019720089e+00 -2.447008320081434e+00 -2.448175146330043e+00 - -2.449340499038912e+00 -2.450504378726154e+00 -2.451666785239187e+00 -2.452827718349615e+00 -2.453987178196479e+00 - -2.455145165027037e+00 -2.456301679153984e+00 -2.457456720843679e+00 -2.458610290111703e+00 -2.459762386895362e+00 - -2.460913011069636e+00 -2.462062162618941e+00 -2.463209842027783e+00 -2.464356049701044e+00 -2.465500785225038e+00 - -2.466644048210323e+00 -2.467785839182998e+00 -2.468926158651886e+00 -2.470065006141172e+00 -2.471202381154697e+00 - -2.472338284099561e+00 -2.473472715451581e+00 -2.474605675058163e+00 -2.475737162666682e+00 -2.476867178252799e+00 - -2.477995721814551e+00 -2.479122793211214e+00 -2.480248392312651e+00 -2.481372519169843e+00 -2.482495173828069e+00 - -2.483616356128687e+00 -2.484736065895716e+00 -2.485854303087743e+00 -2.486971067738408e+00 -2.488086360047014e+00 - -2.489200180083995e+00 -2.490312527238630e+00 -2.491423400907520e+00 -2.492532801197714e+00 -2.493640728315912e+00 - -2.494747182157012e+00 -2.495852162518061e+00 -2.496955669116524e+00 -2.498057701682506e+00 -2.499158260076250e+00 - -2.500257344205291e+00 -2.501354954036191e+00 -2.502451089487258e+00 -2.503545750224782e+00 -2.504638935878569e+00 - -2.505730646184535e+00 -2.506820880947837e+00 -2.507909640144502e+00 -2.508996923692245e+00 -2.510082731104683e+00 - -2.511167061905791e+00 -2.512249916065080e+00 -2.513331293568936e+00 -2.514411194025691e+00 -2.515489616993924e+00 - -2.516566562211253e+00 -2.517642029416175e+00 -2.518716018171676e+00 -2.519788528087044e+00 -2.520859559132313e+00 - -2.521929111272669e+00 -2.522997184093166e+00 -2.524063777123772e+00 -2.525128890054233e+00 -2.526192522577199e+00 - -2.527254674237163e+00 -2.528315344566595e+00 -2.529374533198041e+00 -2.530432239809303e+00 -2.531488464159136e+00 - -2.532543206017777e+00 -2.533596465120445e+00 -2.534648241083385e+00 -2.535698533081969e+00 -2.536747340380982e+00 - -2.537794663043710e+00 -2.538840501172024e+00 -2.539884854223596e+00 -2.540927721482817e+00 -2.541969102185147e+00 - -2.543008995720672e+00 -2.544047402146914e+00 -2.545084321505733e+00 -2.546119753108897e+00 -2.547153696148885e+00 - -2.548186150071097e+00 -2.549217114438763e+00 -2.550246589033513e+00 -2.551274573561718e+00 -2.552301067210345e+00 - -2.553326069170913e+00 -2.554349579172571e+00 -2.555371597001575e+00 -2.556392122135012e+00 -2.557411153995589e+00 - -2.558428692097672e+00 -2.559444735964176e+00 -2.560459285060548e+00 -2.561472338773803e+00 -2.562483896234721e+00 - -2.563493956701396e+00 -2.564502520197407e+00 -2.565509586690590e+00 -2.566515155160310e+00 -2.567519224484451e+00 - -2.568521794123430e+00 -2.569522863722881e+00 -2.570522433086768e+00 -2.571520501879673e+00 -2.572517069050324e+00 - -2.573512133570669e+00 -2.574505695221420e+00 -2.575497753777856e+00 -2.576488308184784e+00 -2.577477357385580e+00 - -2.578464901148367e+00 -2.579450939304331e+00 -2.580435471112168e+00 -2.581418495678755e+00 -2.582400012076188e+00 - -2.583380019545771e+00 -2.584358518040427e+00 -2.585335507388502e+00 -2.586310986208430e+00 -2.587284953146766e+00 - -2.588257408172476e+00 -2.589228351266687e+00 -2.590197781136742e+00 -2.591165696464199e+00 -2.592132097101227e+00 - -2.593096982965479e+00 -2.594060353065933e+00 -2.595022206300420e+00 -2.595982542030859e+00 -2.596941359648237e+00 - -2.597898658195753e+00 -2.598854436786441e+00 -2.599808695160485e+00 -2.600761432999720e+00 -2.601712649125437e+00 - -2.602662342322502e+00 -2.603610512090611e+00 -2.604557157983472e+00 -2.605502279056006e+00 -2.606445874333086e+00 - -2.607387943218189e+00 -2.608328485131743e+00 -2.609267499183389e+00 -2.610204984445080e+00 -2.611140940148811e+00 - -2.612075365584592e+00 -2.613008260114454e+00 -2.613939623006402e+00 -2.614869453080320e+00 -2.615797749224179e+00 - -2.616724511046408e+00 -2.617649738126216e+00 -2.618573429205448e+00 -2.619495583026503e+00 -2.620416199171340e+00 - -2.621335277249019e+00 -2.622252816137456e+00 -2.623168814653865e+00 -2.624083272103795e+00 -2.624996187859330e+00 - -2.625907561070358e+00 -2.626817390806325e+00 -2.627725676037143e+00 -2.628632415761536e+00 -2.629537609193020e+00 - -2.630441255587996e+00 -2.631343354159609e+00 -2.632243904045731e+00 -2.633142904126422e+00 -2.634040353337229e+00 - -2.634936251093461e+00 -2.635830596765059e+00 -2.636723389060725e+00 -2.637614626713354e+00 -2.638504309213838e+00 - -2.639392436080191e+00 -2.640279006180904e+00 -2.641164018251881e+00 -2.642047471148195e+00 -2.642929363899640e+00 - -2.643809696115713e+00 -2.644688467316341e+00 -2.645565676083456e+00 -2.646441320932559e+00 -2.647315401051427e+00 - -2.648187915755844e+00 -2.649058864201336e+00 -2.649928245427330e+00 -2.650796058169106e+00 -2.651662301248424e+00 - -2.652526974137104e+00 -2.653390076247662e+00 -2.654251606105329e+00 -2.655111562238285e+00 -2.655969944073783e+00 - -2.656826751086593e+00 -2.657681982042466e+00 -2.658535635661370e+00 -2.659387711189145e+00 -2.660238207837736e+00 - -2.661087124157626e+00 -2.661934458755756e+00 -2.662780211126336e+00 -2.663624380741185e+00 -2.664466966095276e+00 - -2.665307965694397e+00 -2.666147379064445e+00 -2.666985205710447e+00 -2.667821444033845e+00 -2.668656092405469e+00 - -2.669489150177272e+00 -2.670320616801000e+00 -2.671150491146469e+00 -2.671978771965001e+00 -2.672805458115896e+00 - -2.673630548501148e+00 -2.674454042085555e+00 -2.675275937884819e+00 -2.676096235055446e+00 -2.676914932653945e+00 - -2.677732029196031e+00 -2.678547523253807e+00 -2.679361414165717e+00 -2.680173701269736e+00 -2.680984383135636e+00 - -2.681793458321363e+00 -2.682600926105787e+00 -2.683406785794135e+00 -2.684211036076172e+00 -2.685013675548027e+00 - -2.685814703046789e+00 -2.686614117528503e+00 -2.687411918184072e+00 -2.688208104155523e+00 -2.689002674154484e+00 - -2.689795626844247e+00 -2.690586961125131e+00 -2.691376675931391e+00 -2.692164770096012e+00 -2.692951242468673e+00 - -2.693736092067127e+00 -2.694519317933390e+00 -2.695300919038479e+00 -2.696080894259941e+00 -2.696859242172434e+00 - -2.697635961409562e+00 -2.698411051143577e+00 -2.699184510529523e+00 -2.699956338114957e+00 -2.700726532498006e+00 - -2.701495093086574e+00 -2.702262019208106e+00 -2.703027309058428e+00 -2.703790960874505e+00 -2.704552974189474e+00 - -2.705313348537555e+00 -2.706072082161119e+00 -2.706829173257158e+00 -2.707584621133000e+00 -2.708338425191227e+00 - -2.709090584105120e+00 -2.709841096442358e+00 -2.710589961077480e+00 -2.711337176962203e+00 -2.712082743050078e+00 - -2.712826658235913e+00 -2.713568921177743e+00 -2.714309530527581e+00 -2.715048485150131e+00 -2.715785783993005e+00 - -2.716521426122757e+00 -2.717255410569124e+00 -2.717987736095623e+00 -2.718718401385704e+00 -2.719447405068731e+00 - -2.720174745881186e+00 -2.720900423042079e+00 -2.721624435690877e+00 -2.722346782166338e+00 -2.723067460855530e+00 - -2.723786471139474e+00 -2.724503812410580e+00 -2.725219483112852e+00 -2.725933481634188e+00 -2.726645807086471e+00 - -2.727356458650697e+00 -2.728065435060333e+00 -2.728772734953498e+00 -2.729478357034439e+00 -2.730182300087997e+00 - -2.730884563155262e+00 -2.731585145263588e+00 -2.732284045129153e+00 -2.732981261442558e+00 -2.733676793103288e+00 - -2.734370639038562e+00 -2.735062798077667e+00 -2.735753269071118e+00 -2.736442051052291e+00 -2.737129142959769e+00 - -2.737814543170111e+00 -2.738498250131983e+00 -2.739180263144520e+00 -2.739860581563291e+00 -2.740539204119172e+00 - -2.741216129405992e+00 -2.741891356094071e+00 -2.742564882952538e+00 -2.743236709069217e+00 -2.743906833523784e+00 - -2.744575255044610e+00 -2.745241972311204e+00 -2.745906984158941e+00 -2.746570289467025e+00 -2.747231887134115e+00 - -2.747891776057501e+00 -2.748549955109537e+00 -2.749206423158993e+00 -2.749861179085207e+00 -2.750514221765824e+00 - -2.751165550061125e+00 -2.751815162841771e+00 -2.752463059037292e+00 -2.753109237554207e+00 -2.753753697148108e+00 - -2.754396436622574e+00 -2.755037455124055e+00 -2.755676751755156e+00 -2.756314325100252e+00 -2.756950173779785e+00 - -2.757584297076699e+00 -2.758216694281619e+00 -2.758847364053396e+00 -2.759476305000437e+00 -2.760103516161140e+00 - -2.760728996610216e+00 -2.761352745137616e+00 -2.761974760563591e+00 -2.762595042114344e+00 -2.763213589016364e+00 - -2.763830400091322e+00 -2.764445474113015e+00 -2.765058810068553e+00 -2.765670407011266e+00 -2.766280264046035e+00 - -2.766888380201558e+00 -2.767494754150214e+00 -2.768099384646222e+00 -2.768702271127474e+00 -2.769303413030783e+00 - -2.769902809104988e+00 -2.770500458053093e+00 -2.771096359082754e+00 -2.771690511445131e+00 -2.772282914060774e+00 - -2.772873565847032e+00 -2.773462466039048e+00 -2.774049613856528e+00 -2.774635008139637e+00 -2.775218647762881e+00 - -2.775800532117688e+00 -2.776380660598635e+00 -2.776959032095993e+00 -2.777535645483684e+00 -2.778110500074552e+00 - -2.778683595228330e+00 -2.779254930053368e+00 -2.779824503611819e+00 -2.780392315032438e+00 -2.780958363471580e+00 - -2.781522648129417e+00 -2.782085168237396e+00 -2.782645923108263e+00 -2.783204912027138e+00 -2.783762134087364e+00 - -2.784317588365996e+00 -2.784871274066723e+00 -2.785423190471204e+00 -2.785973337046338e+00 -2.786521713227682e+00 - -2.787068318140169e+00 -2.787613150927563e+00 -2.788156211119559e+00 -2.788697498201977e+00 -2.789237011099205e+00 - -2.789774748795882e+00 -2.790310711079109e+00 -2.790844897774500e+00 -2.791377308059270e+00 -2.791907941021321e+00 - -2.792436796039691e+00 -2.792963872575855e+00 -2.793489170129877e+00 -2.794012688183935e+00 -2.794534426110070e+00 - -2.795054383269529e+00 -2.795572559090522e+00 -2.796088953089790e+00 -2.796603565071232e+00 -2.797116394731634e+00 - -2.797627441052200e+00 -2.798136703104035e+00 -2.798644181033428e+00 -2.799149874997305e+00 -2.799653784119957e+00 - -2.800155907491874e+00 -2.800656245100958e+00 -2.801154796934787e+00 -2.801651562082218e+00 -2.802146539693571e+00 - -2.802639730063738e+00 -2.803131133478864e+00 -2.803620749045517e+00 -2.804108575856467e+00 -2.804594614128865e+00 - -2.805078864118387e+00 -2.805561325110418e+00 -2.806041996375143e+00 -2.806520878092229e+00 -2.806997970489045e+00 - -2.807473273074300e+00 -2.807946785293329e+00 -2.808418507056632e+00 -2.808888438355500e+00 -2.809356579039224e+00 - -2.809822928959404e+00 -2.810287488118900e+00 -2.810750256531227e+00 -2.811211234101264e+00 -2.811670420689050e+00 - -2.812127816083888e+00 -2.812583420143096e+00 -2.813037233066774e+00 -2.813489255065615e+00 -2.813939486049919e+00 - -2.814387925944586e+00 -2.814834575033324e+00 -2.815279433542374e+00 -2.815722501109326e+00 -2.816163777438837e+00 - -2.816603263092504e+00 -2.817040958671196e+00 -2.817476864075942e+00 -2.817910979131784e+00 -2.818343304059641e+00 - -2.818773839208482e+00 -2.819202585043600e+00 -2.819629541969078e+00 -2.820054710027820e+00 -2.820478089265513e+00 - -2.820899680100151e+00 -2.821319482977751e+00 -2.821737498084143e+00 -2.822153725615352e+00 -2.822568166068396e+00 - -2.822980820018520e+00 -2.823391688052908e+00 -2.823800770674544e+00 -2.824208068037681e+00 -2.824613580315654e+00 - -2.825017308106835e+00 -2.825419252121360e+00 -2.825819413091381e+00 -2.826217791658008e+00 -2.826614388076187e+00 - -2.827009202624378e+00 -2.827402236061253e+00 -2.827793489256864e+00 -2.828182963046578e+00 -2.828570658171722e+00 - -2.828956575032161e+00 -2.829340714052488e+00 -2.829723076097664e+00 -2.830103662132774e+00 -2.830482473083023e+00 - -2.830859509823491e+00 -2.831234773068641e+00 -2.831608263528317e+00 -2.831979982054516e+00 -2.832349929557777e+00 - -2.832718107040651e+00 -2.833084515526141e+00 -2.833449156027042e+00 -2.833812029550204e+00 -2.834173137088914e+00 - -2.834532479620883e+00 -2.834890058075082e+00 -2.835245873448821e+00 -2.835599927061508e+00 -2.835952220243667e+00 - -2.836302754048190e+00 -2.836651529530672e+00 -2.836998548035129e+00 -2.837343810883671e+00 -2.837687319022324e+00 - -2.838029073490917e+00 -2.838369076080591e+00 -2.838707328586376e+00 -2.839043832067564e+00 -2.839378587474163e+00 - -2.839711596054793e+00 -2.840042859259108e+00 -2.840372379042276e+00 -2.840700157280677e+00 -2.841026195030013e+00 - -2.841350493343512e+00 -2.841673054085180e+00 -2.841993879190829e+00 -2.842312970072699e+00 -2.842630328108386e+00 - -2.842945955060471e+00 -2.843259852775203e+00 -2.843572023048496e+00 -2.843882467617769e+00 -2.844191188036773e+00 - -2.844498185884593e+00 -2.844803463025301e+00 -2.845107021413000e+00 -2.845408863076932e+00 -2.845708990020076e+00 - -2.846007404065244e+00 -2.846304107050338e+00 -2.846599101053807e+00 -2.846892388135785e+00 -2.847183970042619e+00 - -2.847473848570861e+00 -2.847762026031680e+00 -2.848048504803730e+00 -2.848333287020989e+00 -2.848616374754612e+00 - -2.848897770069131e+00 -2.849177475073159e+00 -2.849455492058227e+00 -2.849731823327478e+00 -2.850006471047571e+00 - -2.850279437434387e+00 -2.850550725037162e+00 -2.850820336439234e+00 -2.851088274026996e+00 -2.851354540133094e+00 - -2.851619137072155e+00 -2.851882067200814e+00 -2.852143333061782e+00 -2.852402937208544e+00 -2.852660882051651e+00 - -2.852917170055367e+00 -2.853171804041764e+00 -2.853424786850297e+00 -2.853676121032120e+00 -2.853925809140160e+00 - -2.854173854022716e+00 -2.854420258509995e+00 -2.854665025064492e+00 -2.854908156206457e+00 -2.855149655054884e+00 - -2.855389524765914e+00 -2.855627768045515e+00 -2.855864387531145e+00 -2.856099386036384e+00 -2.856332766480263e+00 - -2.856564532027491e+00 -2.856794685864488e+00 -2.857023231018833e+00 -2.857250170456676e+00 -2.857475507057297e+00 - -2.857699243787178e+00 -2.857921384048440e+00 -2.858141931205942e+00 -2.858360888039817e+00 -2.858578257403886e+00 - -2.858794043031427e+00 -2.859008248642304e+00 -2.859220877023269e+00 -2.859431930941042e+00 -2.859641414015340e+00 - -2.859849329964776e+00 -2.860055682050569e+00 -2.860260473522559e+00 -2.860463708042447e+00 -2.860665389218646e+00 - -2.860865520034553e+00 -2.861064103583913e+00 -2.861261144026887e+00 -2.861456645505078e+00 -2.861650611019446e+00 - -2.861843043539793e+00 -2.862033947051935e+00 -2.862223325674870e+00 -2.862411183044306e+00 -2.862597522669464e+00 - -2.862782348036900e+00 -2.862965662765951e+00 -2.863147471029718e+00 -2.863327776966641e+00 -2.863506584022756e+00 - -2.863683895649960e+00 -2.863859716016013e+00 -2.864034049304372e+00 -2.864206899045429e+00 -2.864378268816853e+00 - -2.864548163038503e+00 -2.864716586175495e+00 -2.864883542031795e+00 -2.865049034317118e+00 -2.865213067025303e+00 - -2.865375644227383e+00 -2.865536770019026e+00 -2.865696448531390e+00 -2.865854684012960e+00 -2.866011480747103e+00 - -2.866166843039399e+00 -2.866320775137251e+00 -2.866473281033156e+00 -2.866624364792500e+00 -2.866774031027124e+00 - -2.866922284373643e+00 -2.867069129021301e+00 -2.867214569108258e+00 -2.867358609015685e+00 -2.867501253183005e+00 - -2.867642506039625e+00 -2.867782372075631e+00 -2.867920856033839e+00 -2.868057962606175e+00 -2.868193696028257e+00 - -2.868328060561013e+00 -2.868461061022879e+00 -2.868592702303233e+00 -2.868722989017701e+00 -2.868851925722842e+00 - -2.868979517012722e+00 -2.869105767524959e+00 -2.869230682033886e+00 -2.869354265317122e+00 -2.869476522028743e+00 - -2.869597456891174e+00 -2.869717075023798e+00 -2.869835381525858e+00 -2.869952381019048e+00 -2.870068078133983e+00 - -2.870182478014490e+00 -2.870295585788873e+00 -2.870407406010122e+00 -2.870517943287246e+00 -2.870627203028626e+00 - -2.870735190678368e+00 -2.870841911024103e+00 -2.870947368779615e+00 -2.871051569019769e+00 -2.871154516959833e+00 - -2.871256218015620e+00 -2.871356677487263e+00 -2.871455900011655e+00 -2.871553890297982e+00 -2.871650654007871e+00 - -2.871746196881877e+00 -2.871840524023838e+00 -2.871933640394619e+00 -2.872025551019907e+00 -2.872116261043417e+00 - -2.872205776016155e+00 -2.872294101539941e+00 -2.872381243012580e+00 -2.872467205758066e+00 -2.872551995009178e+00 - -2.872635615995248e+00 -2.872718074023048e+00 -2.872799374482606e+00 -2.872879523019508e+00 -2.872958525324841e+00 - -2.873036387016140e+00 -2.873113113575017e+00 -2.873188710012942e+00 -2.873263181462381e+00 -2.873336534009911e+00 - -2.873408773769060e+00 -2.873479906007045e+00 -2.873549935889074e+00 -2.873618869018622e+00 -2.873686711126628e+00 - -2.873753468015626e+00 -2.873819145455355e+00 -2.873883749012791e+00 -2.873947284262238e+00 -2.874009757010115e+00 - -2.874071173064448e+00 -2.874131538007598e+00 -2.874190857408149e+00 -2.874249137005235e+00 -2.874306382592947e+00 - -2.874362600014657e+00 -2.874417795154723e+00 -2.874471974012172e+00 -2.874525142492177e+00 -2.874577306009839e+00 - -2.874628470067637e+00 -2.874678641007656e+00 -2.874727825164796e+00 -2.874776028005620e+00 -2.874823254939239e+00 - -2.874869512013286e+00 -2.874914805384953e+00 -2.874959141011137e+00 -2.875002524843012e+00 -2.875044963009132e+00 - -2.875086461553842e+00 -2.875127026007268e+00 -2.875166661990855e+00 -2.875205376005544e+00 -2.875243174521211e+00 - -2.875280063003956e+00 -2.875316046953741e+00 -2.875351133009737e+00 -2.875385327829893e+00 -2.875418637008044e+00 - -2.875451066029114e+00 -2.875482621006486e+00 -2.875513308222273e+00 -2.875543134005058e+00 -2.875572104616458e+00 - -2.875600226003760e+00 -2.875627504088381e+00 -2.875653945002586e+00 -2.875679554924722e+00 -2.875704340006628e+00 - -2.875728306365356e+00 -2.875751460005359e+00 -2.875773807024162e+00 -2.875795354004213e+00 -2.875816107441742e+00 - -2.875836073003188e+00 -2.875855256356105e+00 -2.875873664002281e+00 -2.875891302525273e+00 -2.875908178001488e+00 - -2.875924296429527e+00 -2.875939664003940e+00 -2.875954287022889e+00 -2.875968172003060e+00 -2.875981325374513e+00 - -2.875993753002293e+00 -2.876005460745149e+00 -2.876016455001635e+00 -2.876026742281703e+00 -2.876036329001085e+00 - -2.876045221511428e+00 -2.876053426002279e+00 -2.876060948682664e+00 -2.876067796001651e+00 -2.876073974394489e+00 - -2.876079490001126e+00 -2.876084348997735e+00 -2.876088558000703e+00 -2.876092123620084e+00 -2.876095052000378e+00 - -2.876097349275196e+00 -2.876099022000147e+00 -2.876100076780735e+00 -2.876100520000039e+00 -2.876100357977497e+00 - -2.876099597000405e+00 -2.876098243435337e+00 -2.876096303998139e+00 -2.876093785401991e+00 -2.876090694000126e+00 - -2.876087036076098e+00 -2.876082817994697e+00 -2.876078046153286e+00 -2.876072726998279e+00 -2.876066867041051e+00 - -2.876060473003754e+00 -2.876053551562065e+00 -2.876046108994973e+00 -2.876038151582050e+00 -2.876029686001908e+00 - -2.876020718975022e+00 -2.876011256990315e+00 -2.876001306494705e+00 -2.875990873998654e+00 -2.875979966015766e+00 - -2.875968589008655e+00 -2.875956749461299e+00 -2.875944453994101e+00 -2.875931709272467e+00 -2.875918522005370e+00 - -2.875904898821941e+00 -2.875890845988358e+00 -2.875876369796106e+00 -2.875861477000839e+00 -2.875846174460938e+00 - -2.875830468981534e+00 -2.875814367182402e+00 -2.875797874995170e+00 -2.875780998493851e+00 -2.875763745010153e+00 - -2.875746121853747e+00 -2.875728134988475e+00 -2.875709790337169e+00 -2.875691095004476e+00 -2.875672056151185e+00 - -2.875652679980860e+00 -2.875632972639220e+00 -2.875612940997824e+00 -2.875592591983200e+00 -2.875571932015899e+00 - -2.875550967463832e+00 -2.875529704990307e+00 -2.875508151305197e+00 -2.875486313009207e+00 -2.875464196688727e+00 - -2.875441808982035e+00 -2.875419156538716e+00 -2.875396246001703e+00 -2.875373083982446e+00 -2.875349676973115e+00 - -2.875326031456047e+00 -2.875302153993497e+00 -2.875278051224424e+00 -2.875253730014671e+00 -2.875229197164465e+00 - -2.875204458984698e+00 -2.875179521740897e+00 -2.875154392006447e+00 -2.875129076470253e+00 -2.875103581975416e+00 - -2.875077915323747e+00 -2.875052082997684e+00 -2.875026091410789e+00 -2.874999947020509e+00 -2.874973656330889e+00 - -2.874947225988491e+00 -2.874920662667701e+00 -2.874893973011697e+00 -2.874867163623783e+00 -2.874840240978976e+00 - -2.874813211559227e+00 -2.874786082002508e+00 -2.874758858958694e+00 -2.874731548969249e+00 -2.874704158521300e+00 - -2.874676693993052e+00 -2.874649161850167e+00 -2.874621569017096e+00 -2.874593922351292e+00 -2.874566227983435e+00 - -2.874538491996276e+00 -2.874510721007613e+00 -2.874482921761722e+00 -2.874455100973768e+00 -2.874427265275985e+00 - -2.874399420998023e+00 -2.874371574431975e+00 -2.874343732022288e+00 -2.874315900299783e+00 -2.874288085988434e+00 - -2.874260295776052e+00 -2.874232536012641e+00 -2.874204812974258e+00 -2.874177132978955e+00 -2.874149502426689e+00 - -2.874121928003048e+00 -2.874094416390038e+00 -2.874066973969692e+00 -2.874039607056358e+00 -2.874012321993617e+00 - -2.873985125156578e+00 -2.873958023017241e+00 -2.873931022092817e+00 -2.873904128984454e+00 -2.873877350227203e+00 - -2.873850692007775e+00 -2.873824160475146e+00 -2.873797761975665e+00 -2.873771502947487e+00 -2.873745389998629e+00 - -2.873719429664607e+00 -2.873693628021065e+00 -2.873667991196405e+00 -2.873642525989910e+00 -2.873617239207638e+00 - -2.873592137011854e+00 -2.873567225478465e+00 -2.873542510981722e+00 -2.873517999984164e+00 -2.873493699003122e+00 - -2.873469614539558e+00 -2.873445752974173e+00 -2.873422120664412e+00 -2.873398723994974e+00 -2.873375569341346e+00 - -2.873352663014937e+00 -2.873330011368907e+00 -2.873307620987516e+00 -2.873285498440290e+00 -2.873263650006746e+00 - -2.873242081977908e+00 -2.873220800980854e+00 -2.873199813610778e+00 -2.873179125999297e+00 -2.873158744269642e+00 - -2.873138674975094e+00 -2.873118924733721e+00 -2.873099499992696e+00 -2.873080407078925e+00 -2.873061652009151e+00 - -2.873043240951156e+00 -2.873025180987050e+00 -2.873007479104932e+00 -2.872990141002529e+00 -2.872973172348110e+00 - -2.872956579982463e+00 -2.872940370832477e+00 -2.872924550996914e+00 -2.872909126514257e+00 -2.872894104009989e+00 - -2.872879490127201e+00 -2.872865290992410e+00 -2.872851512733995e+00 -2.872838162004323e+00 -2.872825245427317e+00 - -2.872812768989124e+00 -2.872800738661925e+00 -2.872789160999820e+00 -2.872778042642130e+00 -2.872767389987160e+00 - -2.872757209355336e+00 -2.872747506996586e+00 -2.872738289140315e+00 -2.872729562004331e+00 -2.872721331833777e+00 - -2.872713604994726e+00 -2.872706387896571e+00 -2.872699687001068e+00 -2.872693508692679e+00 -2.872687858994343e+00 - -2.872682743943764e+00 -2.872678169999229e+00 -2.872674143639194e+00 -2.872670671002211e+00 -2.872667758252759e+00 - -2.872665411998920e+00 -2.872663638727966e+00 -2.872662444000314e+00 -2.872661833458480e+00 -2.872661814000242e+00 - -2.872662392564575e+00 -2.872663574999996e+00 -2.872665367034357e+00 -2.872667775003300e+00 -2.872670805307676e+00 - -2.872674464001362e+00 -2.872678757122995e+00 -2.872683690997219e+00 -2.872689271947241e+00 -2.872695506004511e+00 - -2.872702399218003e+00 -2.872709957998547e+00 -2.872718188690384e+00 -2.872727097009549e+00 -2.872736688669513e+00 - -2.872746970001709e+00 -2.872757947412680e+00 -2.872769626991446e+00 -2.872782014787135e+00 -2.872795117006809e+00 - -2.872808939808297e+00 -2.872823488994544e+00 -2.872838770359238e+00 -2.872854790013944e+00 -2.872871554154958e+00 - -2.872889068999627e+00 -2.872907340687168e+00 -2.872926375023218e+00 -2.872946177789640e+00 -2.872966755006795e+00 - -2.872988112738970e+00 -2.873010256987659e+00 -2.873033193743455e+00 -2.873056929016149e+00 -2.873081468798353e+00 - -2.873106818994782e+00 -2.873132985471494e+00 -2.873159974027786e+00 -2.873187790508094e+00 -2.873216441004140e+00 - -2.873245931584463e+00 -2.873276267977569e+00 -2.873307455856915e+00 -2.873339501015828e+00 -2.873372409342765e+00 - -2.873406186986854e+00 -2.873440840030674e+00 -2.873476374029945e+00 -2.873512794459630e+00 -2.873550106998518e+00 - -2.873588317466817e+00 -2.873627432046586e+00 -2.873667456808100e+00 -2.873708397012657e+00 -2.873750257967860e+00 - -2.873793045975522e+00 -2.873836767295967e+00 -2.873881427029366e+00 -2.873927030237608e+00 -2.873973582989610e+00 - -2.874021091436191e+00 -2.874069561048740e+00 -2.874118997257345e+00 -2.874169406006314e+00 -2.874220793186470e+00 - -2.874273163960479e+00 -2.874326523535612e+00 -2.874380878025728e+00 -2.874436233504353e+00 -2.874492594977105e+00 - -2.874549967456173e+00 -2.874608357047944e+00 -2.874667769870749e+00 -2.874728210996486e+00 -2.874789685444839e+00 - -2.874852199073056e+00 -2.874915757808161e+00 -2.874980367018717e+00 -2.875046031956011e+00 -2.875112757960702e+00 - -2.875180550448241e+00 -2.875249415043884e+00 -2.875319357389408e+00 -2.875390382982873e+00 -2.875462497200150e+00 - -2.875535705072081e+00 -2.875610011724477e+00 -2.875685423008027e+00 -2.875761944747628e+00 -2.875839581940104e+00 - -2.875918339524430e+00 -2.875998223036253e+00 -2.876079238083328e+00 -2.876161389965175e+00 -2.876244683897332e+00 - -2.876329125067640e+00 -2.876414718675390e+00 -2.876501469993362e+00 -2.876589384334920e+00 -2.876678467102276e+00 - -2.876768723646439e+00 -2.876860159024752e+00 -2.876952778311590e+00 -2.877046586943105e+00 -2.877141590285005e+00 - -2.877237793059432e+00 -2.877335200055582e+00 -2.877433816974432e+00 -2.877533649470098e+00 -2.877634702097487e+00 - -2.877736979404358e+00 -2.877840487009089e+00 -2.877945230580227e+00 -2.878051214916385e+00 -2.878158444703550e+00 - -2.878266925047163e+00 -2.878376661120778e+00 -2.878487657950954e+00 -2.878599920558564e+00 -2.878713454088738e+00 - -2.878828263638601e+00 -2.878944353988982e+00 -2.879061729871082e+00 -2.879180396133895e+00 -2.879300357745253e+00 - -2.879421620030550e+00 -2.879544188234639e+00 -2.879668066922659e+00 -2.879793260582870e+00 -2.879919774075741e+00 - -2.880047612428619e+00 -2.880176780964157e+00 -2.880307284823274e+00 -2.880439128124635e+00 -2.880572315044195e+00 - -2.880706851009318e+00 -2.880842741491739e+00 -2.880979990889281e+00 -2.881118603470176e+00 -2.881258584058220e+00 - -2.881399937594580e+00 -2.881542668934350e+00 -2.881686782880171e+00 -2.881832284110943e+00 -2.881979177270132e+00 - -2.882127466983199e+00 -2.882277157822698e+00 -2.882428254167564e+00 -2.882580760515876e+00 -2.882734682035907e+00 - -2.882890023809088e+00 -2.883046789899305e+00 -2.883204984344022e+00 -2.883364612092550e+00 -2.883525678164890e+00 - -2.883688186951939e+00 -2.883852142755886e+00 -2.884017550153203e+00 -2.884184413751485e+00 -2.884352738008543e+00 - -2.884522527349429e+00 -2.884693786217942e+00 -2.884866519029743e+00 -2.885040730069195e+00 -2.885216423722596e+00 - -2.885393604915286e+00 -2.885572278454246e+00 -2.885752448133968e+00 -2.885934117732660e+00 -2.886117291975880e+00 - -2.886301975695701e+00 -2.886488173202934e+00 -2.886675888645447e+00 -2.886865126040629e+00 -2.887055889528861e+00 - -2.887248183873006e+00 -2.887442013779875e+00 -2.887637383109605e+00 -2.887834295673936e+00 -2.888032755937675e+00 - -2.888232768417303e+00 -2.888434337182880e+00 -2.888637466267979e+00 -2.888842160006608e+00 -2.889048422705334e+00 - -2.889256258260521e+00 -2.889465670586525e+00 -2.889676664079871e+00 -2.889889243164732e+00 -2.890103411893701e+00 - -2.890319174230825e+00 -2.890536534157536e+00 -2.890755495690120e+00 -2.890976062966901e+00 -2.891198240133124e+00 - -2.891422031239666e+00 -2.891647440271526e+00 -2.891874471044534e+00 -2.892103127449178e+00 -2.892333413843735e+00 - -2.892565334531329e+00 -2.892798893126666e+00 -2.893034093211137e+00 -2.893270938921286e+00 -2.893509434394119e+00 - -2.893749583213363e+00 -2.893991388990754e+00 -2.894234856003367e+00 -2.894479988544211e+00 -2.894726790304690e+00 - -2.894975264880993e+00 -2.895225416090045e+00 -2.895477247800793e+00 -2.895730763869547e+00 -2.895985968110420e+00 - -2.896242864181383e+00 -2.896501455784724e+00 -2.896761746956156e+00 -2.897023741664482e+00 -2.897287443277443e+00 - -2.897552855132549e+00 -2.897819981047455e+00 -2.898088824960355e+00 -2.898359390811481e+00 -2.898631682423090e+00 - -2.898905703143506e+00 -2.899181456336644e+00 -2.899458945902694e+00 -2.899738175745144e+00 -2.900019149244370e+00 - -2.900301869748365e+00 -2.900586340998689e+00 -2.900872566741790e+00 -2.901160550350105e+00 -2.901450295205248e+00 - -2.901741805099525e+00 -2.902035083835090e+00 -2.902330134842785e+00 -2.902626961482952e+00 -2.902925567205262e+00 - -2.903225955501619e+00 -2.903528129943548e+00 -2.903832094083243e+00 -2.904137851315957e+00 -2.904445404943298e+00 - -2.904754758049239e+00 -2.905065913908475e+00 -2.905378876776237e+00 -2.905693650730528e+00 -2.906010238159916e+00 - -2.906328641477237e+00 -2.906648864881840e+00 -2.906970912612057e+00 -2.907294787275635e+00 -2.907620491421319e+00 - -2.907948028992455e+00 -2.908277404008211e+00 -2.908608619396449e+00 -2.908941677961907e+00 -2.909276583108139e+00 - -2.909613338320582e+00 -2.909951946813384e+00 -2.910292411733319e+00 -2.910634736228945e+00 -2.910978923497479e+00 - -2.911324976928991e+00 -2.911672899876866e+00 -2.912022695354926e+00 -2.912374366346152e+00 -2.912727916049746e+00 - -2.913083347735332e+00 -2.913440664738005e+00 -2.913799870293631e+00 -2.914160967175702e+00 -2.914523958205600e+00 - -2.914888846858668e+00 -2.915255636613397e+00 -2.915624330306910e+00 -2.915994930711883e+00 -2.916367440984558e+00 - -2.916741864289805e+00 -2.917118203443422e+00 -2.917496461287171e+00 -2.917876641115726e+00 -2.918258746264796e+00 - -2.918642779781321e+00 -2.919028744569610e+00 -2.919416643252220e+00 -2.919806478556714e+00 -2.920198253912409e+00 - -2.920591972698769e+00 -2.920987637394092e+00 -2.921385250442034e+00 -2.921784815048848e+00 -2.922186334507697e+00 - -2.922589811696789e+00 -2.922995249368979e+00 -2.923402650190686e+00 -2.923812016928122e+00 -2.924223352833133e+00 - -2.924636661116357e+00 -2.925051944337972e+00 -2.925469204994078e+00 -2.925888445974902e+00 -2.926309670222330e+00 - -2.926732880490753e+00 -2.927158079512877e+00 -2.927585270122142e+00 -2.928014455203420e+00 -2.928445637746579e+00 - -2.928878820641719e+00 -2.929314006274898e+00 -2.929751197043434e+00 -2.930190395893735e+00 -2.930631605816839e+00 - -2.931074829433217e+00 -2.931520069294359e+00 -2.931967328046430e+00 -2.932416608452995e+00 -2.932867913652596e+00 - -2.933321246608101e+00 -2.933776609204709e+00 -2.934234003435805e+00 -2.934693432805196e+00 -2.935154900804807e+00 - -2.935618409368617e+00 -2.936083960365691e+00 -2.936551556963400e+00 -2.937021202354904e+00 -2.937492898538196e+00 - -2.937966647468766e+00 -2.938442452127255e+00 -2.938920315642269e+00 -2.939400240709141e+00 -2.939882229846171e+00 - -2.940366285296803e+00 -2.940852409365155e+00 -2.941340604872910e+00 -2.941830874578781e+00 -2.942323220472084e+00 - -2.942817644603974e+00 -2.943314150042391e+00 -2.943812739919231e+00 -2.944313416605433e+00 -2.944816182292809e+00 - -2.945321039217627e+00 -2.945827989752984e+00 -2.946337036774817e+00 -2.946848183049044e+00 -2.947361430398659e+00 - -2.947876780695535e+00 -2.948394236949976e+00 -2.948913802216184e+00 -2.949435478585527e+00 -2.949959268045502e+00 - -2.950485173130951e+00 -2.951013196489051e+00 -2.951543340668991e+00 -2.952075608036040e+00 -2.952610000317780e+00 - -2.953146519451356e+00 -2.953685168849877e+00 -2.954225951787981e+00 -2.954768869510503e+00 -2.955313923227115e+00 - -2.955861116036636e+00 -2.956410451196468e+00 -2.956961930709160e+00 -2.957515556348660e+00 -2.958071330229310e+00 - -2.958629254704319e+00 -2.959189332741965e+00 -2.959751567143614e+00 -2.960315959427935e+00 -2.960882511105170e+00 - -2.961451224934558e+00 -2.962022103774683e+00 -2.962595149632548e+00 -2.963170364371659e+00 -2.963747750133120e+00 - -2.964327309260061e+00 -2.964909044626116e+00 -2.965492958892178e+00 -2.966079053337689e+00 -2.966667329311879e+00 - -2.967257789824588e+00 -2.967850437973655e+00 -2.968445275548303e+00 -2.969042304161408e+00 -2.969641526029084e+00 - -2.970242943489398e+00 -2.970846558764995e+00 -2.971452374012471e+00 -2.972060391239641e+00 -2.972670612566008e+00 - -2.973283040706606e+00 -2.973897678221620e+00 -2.974514526456296e+00 -2.975133586785449e+00 -2.975754861917081e+00 - -2.976378354633252e+00 -2.977004066679083e+00 -2.977631999719257e+00 -2.978262156133669e+00 -2.978894538388579e+00 - -2.979529148580497e+00 -2.980165988659094e+00 -2.980805060356407e+00 -2.981446365534977e+00 -2.982089906796993e+00 - -2.982735686662750e+00 -2.983383706585328e+00 -2.984033968085205e+00 -2.984686474019655e+00 -2.985341227187940e+00 - -2.985998228820469e+00 -2.986657480057624e+00 -2.987318983248517e+00 -2.987982740990944e+00 -2.988648755668708e+00 - -2.989317029403636e+00 -2.989987563483614e+00 -2.990660359350691e+00 -2.991335419897486e+00 -2.992012747963469e+00 - -2.992692344724977e+00 -2.993374211287029e+00 -2.994058350132512e+00 -2.994744763907397e+00 -2.995433454532118e+00 - -2.996124423756546e+00 -2.996817673373822e+00 -2.997513205283444e+00 -2.998211021767050e+00 -2.998911125033880e+00 - -2.999613516621449e+00 -3.000318198120732e+00 -3.001025172008281e+00 -3.001734440748973e+00 -3.002446005875424e+00 - -3.003159868783688e+00 -3.003876031255844e+00 -3.004594495323234e+00 -3.005315263628241e+00 -3.006038338638268e+00 - -3.006763721509772e+00 -3.007491413411925e+00 -3.008221416875716e+00 -3.008953734497098e+00 -3.009688367770095e+00 - -3.010425318036306e+00 -3.011164587129571e+00 -3.011906177113799e+00 -3.012650090480955e+00 -3.013396329533748e+00 - -3.014144895389836e+00 -3.014895789237767e+00 -3.015649013734712e+00 -3.016404571515447e+00 -3.017162463656545e+00 - -3.017922691248400e+00 -3.018685256994897e+00 -3.019450163571901e+00 -3.020217411929727e+00 -3.020987002987051e+00 - -3.021758939261538e+00 -3.022533223477289e+00 -3.023309857585168e+00 -3.024088843221124e+00 -3.024870181534668e+00 - -3.025653873871900e+00 -3.026439922851719e+00 -3.027228331077071e+00 -3.028019099814318e+00 -3.028812230192102e+00 - -3.029607724124773e+00 -3.030405583764245e+00 -3.031205811426982e+00 -3.032008409239547e+00 -3.032813378404362e+00 - -3.033620720145768e+00 -3.034430436699938e+00 -3.035242530366928e+00 -3.036057002690514e+00 -3.036873855182042e+00 - -3.037693089979441e+00 -3.038514709166424e+00 -3.039338713983260e+00 -3.040165105664532e+00 -3.040993886265523e+00 - -3.041825058080565e+00 -3.042658623539453e+00 -3.043494584770202e+00 -3.044332942558215e+00 -3.045173697755793e+00 - -3.046016852825442e+00 -3.046862410359265e+00 -3.047710371857544e+00 -3.048560738605269e+00 -3.049413512118055e+00 - -3.050268694173960e+00 -3.051126287370169e+00 -3.051986294136892e+00 -3.052848715417321e+00 -3.053713552140092e+00 - -3.054580806662679e+00 -3.055450481419417e+00 -3.056322577723267e+00 -3.057197096839233e+00 -3.058074040961857e+00 - -3.058953412280709e+00 -3.059835212035924e+00 -3.060719441405425e+00 -3.061606102267731e+00 -3.062495196777212e+00 - -3.063386727491054e+00 -3.064280696619269e+00 -3.065177104580330e+00 -3.066075951959016e+00 -3.066977241796834e+00 - -3.067880977177860e+00 -3.068787158899685e+00 -3.069695787543252e+00 -3.070606865109353e+00 -3.071520393938529e+00 - -3.072436376310475e+00 -3.073354814200677e+00 -3.074275708428639e+00 -3.075199059975246e+00 -3.076124871622891e+00 - -3.077053146054635e+00 -3.077983883754724e+00 -3.078917085313194e+00 -3.079852753942089e+00 -3.080790892784741e+00 - -3.081731502087634e+00 -3.082674582011150e+00 -3.083620135268097e+00 -3.084568164866139e+00 -3.085518672439932e+00 - -3.086471659270948e+00 -3.087427126600947e+00 -3.088385075921834e+00 -3.089345509765843e+00 -3.090308430518810e+00 - -3.091273838940665e+00 -3.092241735746584e+00 -3.093212123098609e+00 -3.094185003484481e+00 -3.095160379247863e+00 - -3.096138252358965e+00 -3.097118623438258e+00 -3.098101493262150e+00 -3.099086864580523e+00 -3.100074740150514e+00 - -3.101065120784818e+00 -3.102058007230942e+00 -3.103053401920080e+00 -3.104051307417155e+00 -3.105051725138318e+00 - -3.106054656274756e+00 -3.107060102266563e+00 -3.108068064811119e+00 -3.109078546386035e+00 -3.110091549326776e+00 - -3.111107074619999e+00 -3.112125123273996e+00 -3.113145697732417e+00 -3.114168800386244e+00 -3.115194431980418e+00 - -3.116222593318652e+00 -3.117253287085768e+00 -3.118286516039464e+00 -3.119322281347848e+00 -3.120360583948459e+00 - -3.121401425446115e+00 -3.122444807777008e+00 -3.123490733535526e+00 -3.124539205035892e+00 -3.125590222813487e+00 - -3.126643787500575e+00 -3.127699901895779e+00 -3.128758568841378e+00 -3.129819789187914e+00 -3.130883563634097e+00 - -3.131949894263071e+00 -3.133018783446947e+00 -3.134090233329311e+00 -3.135164245759380e+00 -3.136240821637432e+00 - -3.137319962039862e+00 -3.138401669696502e+00 -3.139485947209752e+00 -3.140572795018887e+00 -3.141662213641400e+00 - -3.142754206070774e+00 -3.143848775370422e+00 -3.144945922407469e+00 -3.146045647810740e+00 -3.147147953452156e+00 - -3.148252841552866e+00 -3.149360314487843e+00 -3.150470374336312e+00 -3.151583021840677e+00 -3.152698257836541e+00 - -3.153816084869129e+00 -3.154936505573740e+00 -3.156059521236365e+00 -3.157185132934072e+00 -3.158313342257567e+00 - -3.159444151127381e+00 -3.160577562269707e+00 -3.161713578058511e+00 -3.162852198653188e+00 -3.163993424406347e+00 - -3.165137258658042e+00 -3.166283704751602e+00 -3.167432763056018e+00 -3.168584433853514e+00 -3.169738720053572e+00 - -3.170895624664928e+00 -3.172055148466089e+00 -3.173217292044841e+00 -3.174382057456326e+00 -3.175549447119023e+00 - -3.176719463437418e+00 -3.177892108465135e+00 -3.179067382866334e+00 -3.180245287430775e+00 -3.181425824840074e+00 - -3.182608997807819e+00 -3.183794807283624e+00 -3.184983254083125e+00 -3.186174340249998e+00 -3.187368068149750e+00 - -3.188564440207163e+00 -3.189763458501066e+00 -3.190965123667219e+00 -3.192169436468204e+00 -3.193376399616980e+00 - -3.194586015855556e+00 -3.195798286091764e+00 -3.197013211234878e+00 -3.198230794034108e+00 -3.199451037209393e+00 - -3.200673941523666e+00 -3.201899507599942e+00 -3.203127737458575e+00 -3.204358633517069e+00 -3.205592198384193e+00 - -3.206828434306502e+00 -3.208067341890413e+00 -3.209308921829809e+00 -3.210553176808560e+00 -3.211800109598040e+00 - -3.213049721329648e+00 -3.214302012941719e+00 -3.215556986240311e+00 -3.216814643392485e+00 -3.218074987141617e+00 - -3.219338019837523e+00 -3.220603741679474e+00 -3.221872153094758e+00 -3.223143257573258e+00 -3.224417058543514e+00 - -3.225693556126080e+00 -3.226972750453261e+00 -3.228254645012327e+00 -3.229539243310538e+00 -3.230826545580160e+00 - -3.232116551831102e+00 -3.233409264458852e+00 -3.234704686394765e+00 -3.236002820328103e+00 -3.237303668413965e+00 - -3.238607230912866e+00 -3.239913508296335e+00 -3.241222503774527e+00 -3.242534220589764e+00 -3.243848659374397e+00 - -3.245165820540432e+00 -3.246485706228452e+00 -3.247808319087641e+00 -3.249133662073000e+00 -3.250461737608715e+00 - -3.251792545689908e+00 -3.253126086515263e+00 -3.254462363526813e+00 -3.255801380232294e+00 -3.257143137158927e+00 - -3.258487634736825e+00 -3.259834875988172e+00 -3.261184864013611e+00 -3.262537599635538e+00 -3.263893083453904e+00 - -3.265251317457108e+00 -3.266612304094287e+00 -3.267976046269084e+00 -3.269342546452898e+00 -3.270711804933652e+00 - -3.272083822201368e+00 -3.273458601737915e+00 -3.274836147008249e+00 -3.276216458417835e+00 -3.277599536106921e+00 - -3.278985382214368e+00 -3.280373999474050e+00 -3.281765391001240e+00 -3.283159559381294e+00 -3.284556504698475e+00 - -3.285956227223949e+00 -3.287358730477579e+00 -3.288764018003004e+00 -3.290172090190266e+00 -3.291582947391597e+00 - -3.292996592961586e+00 -3.294413030263101e+00 -3.295832259689772e+00 -3.297254281509102e+00 -3.298679098453292e+00 - -3.300106713632883e+00 -3.301537129207062e+00 -3.302970346938195e+00 -3.304406367952729e+00 -3.305845193592728e+00 - -3.307286826698660e+00 -3.308731270022015e+00 -3.310178524459931e+00 -3.311628590794006e+00 -3.313081471198005e+00 - -3.314537168271639e+00 -3.315995684926260e+00 -3.317457023622331e+00 -3.318921184705128e+00 -3.320388168757214e+00 - -3.321857979425488e+00 -3.323330620242623e+00 -3.324806091220061e+00 -3.326284392457951e+00 -3.327765527932510e+00 - -3.329249501635255e+00 -3.330736313742837e+00 -3.332225964151081e+00 -3.333718455447356e+00 -3.335213790816533e+00 - -3.336711973141963e+00 -3.338213004741188e+00 -3.339716885970061e+00 -3.341223617428788e+00 -3.342733202656698e+00 - -3.344245645175923e+00 -3.345760945500658e+00 -3.347279103963591e+00 -3.348800123179309e+00 -3.350324006237700e+00 - -3.351850755847976e+00 -3.353380374190363e+00 -3.354912861709826e+00 -3.356448219173252e+00 -3.357986450370467e+00 - -3.359527558984502e+00 -3.361071545248283e+00 -3.362618409368982e+00 -3.364168154900880e+00 -3.365720785489059e+00 - -3.367276301794712e+00 -3.368834704260551e+00 -3.370395995439248e+00 -3.371960178388195e+00 -3.373527256073704e+00 - -3.375097230883950e+00 -3.376670102985606e+00 -3.378245872877927e+00 -3.379824544611959e+00 -3.381406122149057e+00 - -3.382990605539988e+00 -3.384577994855671e+00 -3.386168294158221e+00 -3.387761507524905e+00 -3.389357635102426e+00 - -3.390956676825633e+00 -3.392558635712520e+00 -3.394163515324364e+00 -3.395771318312439e+00 -3.397382046745834e+00 - -3.398995701274896e+00 -3.400612282828281e+00 -3.402231794866633e+00 -3.403854240867662e+00 -3.405479621845378e+00 - -3.407107938586081e+00 -3.408739193428916e+00 -3.410373389185216e+00 -3.412010529002203e+00 -3.413650615518111e+00 - -3.415293648999326e+00 -3.416939629995896e+00 -3.418588562564371e+00 -3.420240450691449e+00 -3.421895294577897e+00 - -3.423553094414080e+00 -3.425213854134680e+00 -3.426877577792018e+00 -3.428544266164663e+00 -3.430213919689846e+00 - -3.431886540713168e+00 -3.433562132145608e+00 -3.435240697251321e+00 -3.436922238808692e+00 -3.438606757299870e+00 - -3.440294253397158e+00 -3.441984730829699e+00 -3.443678193368453e+00 -3.445374641894819e+00 -3.447074077051543e+00 - -3.448776501416308e+00 -3.450481918039497e+00 -3.452190329927366e+00 -3.453901739641781e+00 -3.455616148011183e+00 - -3.457333556082980e+00 -3.459053967513855e+00 -3.460777385853499e+00 -3.462503811614361e+00 -3.464233245386620e+00 - -3.465965691108627e+00 -3.467701152771073e+00 -3.469439631225878e+00 -3.471181127031554e+00 -3.472925642711720e+00 - -3.474673181335264e+00 -3.476423746187027e+00 -3.478177340029919e+00 -3.479933963323171e+00 -3.481693616824597e+00 - -3.483456304790008e+00 -3.485222031388338e+00 -3.486990796943019e+00 -3.488762601570069e+00 -3.490537448401365e+00 - -3.492315341151373e+00 -3.494096282849095e+00 -3.495880275915030e+00 -3.497667321021135e+00 -3.499457419173128e+00 - -3.501250574460328e+00 -3.503046790838973e+00 -3.504846068649357e+00 -3.506648408298966e+00 -3.508453814079994e+00 - -3.510262290280344e+00 -3.512073837286068e+00 -3.513888455301771e+00 -3.515706147708129e+00 -3.517526918395819e+00 - -3.519350770119465e+00 -3.521177705073145e+00 -3.523007724344773e+00 -3.524840829328240e+00 -3.526677023747485e+00 - -3.528516311267811e+00 -3.530358692989965e+00 -3.532204169811781e+00 -3.534052744384031e+00 -3.535904419874647e+00 - -3.537759199767289e+00 -3.539617087002065e+00 -3.541478082029144e+00 -3.543342185630307e+00 -3.545209402403708e+00 - -3.547079736777425e+00 -3.548953188682862e+00 -3.550829758143615e+00 -3.552709450048714e+00 -3.554592269345012e+00 - -3.556478216345227e+00 -3.558367291032073e+00 -3.560259496702344e+00 -3.562154837300620e+00 -3.564053316048536e+00 - -3.565954935512961e+00 -3.567859696364639e+00 -3.569767599635964e+00 -3.571678649702049e+00 -3.573592850895430e+00 - -3.575510204035641e+00 -3.577430709619281e+00 -3.579354370364244e+00 -3.581281189700099e+00 -3.583211171681835e+00 - -3.585144319721653e+00 -3.587080634035166e+00 -3.589020115063184e+00 -3.590962767343901e+00 -3.592908595415016e+00 - -3.594857599714854e+00 -3.596809780701911e+00 -3.598765143014713e+00 -3.600723691343250e+00 -3.602685426403352e+00 - -3.604650348553174e+00 -3.606618460694309e+00 -3.608589766473437e+00 -3.610564269974137e+00 -3.612541974573128e+00 - -3.614522880382737e+00 -3.616506987803558e+00 -3.618494301653613e+00 -3.620484826823921e+00 -3.622478564080036e+00 - -3.624475513850586e+00 -3.626475679341938e+00 -3.628479064392689e+00 -3.630485672592619e+00 -3.632495506905407e+00 - -3.634508568039156e+00 -3.636524857004877e+00 -3.638544378280809e+00 -3.640567136287224e+00 -3.642593131745308e+00 - -3.644622365423449e+00 -3.646654841977913e+00 -3.648690566065893e+00 -3.650729538460438e+00 -3.652771759626902e+00 - -3.654817232683972e+00 -3.656865961450936e+00 -3.658917949896158e+00 -3.660973201344661e+00 -3.663031716399031e+00 - -3.665093495929850e+00 -3.667158544602091e+00 -3.669226867066577e+00 -3.671298464123134e+00 -3.673373336353373e+00 - -3.675451487317045e+00 -3.677532921173144e+00 -3.679617641499514e+00 -3.681705651197185e+00 -3.683796951041065e+00 - -3.685891542158701e+00 -3.687989429214330e+00 -3.690090616811484e+00 -3.692195105774196e+00 -3.694302896934788e+00 - -3.696413994938233e+00 -3.698528404463948e+00 -3.700646126516483e+00 -3.702767161822413e+00 -3.704891513671268e+00 - -3.707019186005269e+00 -3.709150182814482e+00 -3.711284507419287e+00 -3.713422160413482e+00 -3.715563142750310e+00 - -3.717707459547388e+00 -3.719855115839397e+00 -3.722006112164920e+00 -3.724160448777861e+00 -3.726318129289493e+00 - -3.728479158099316e+00 -3.730643539402395e+00 -3.732811276589775e+00 -3.734982370040845e+00 -3.737156820495128e+00 - -3.739334633144358e+00 -3.741515813112657e+00 -3.743700360801490e+00 -3.745888276640612e+00 -3.748079565895588e+00 - -3.750274233918474e+00 -3.752472281571475e+00 -3.754673709335501e+00 -3.756878520656135e+00 -3.759086719721971e+00 - -3.761298310728990e+00 -3.763513297133539e+00 -3.765731679426046e+00 -3.767953458457793e+00 -3.770178639489403e+00 - -3.772407227784000e+00 -3.774639224205367e+00 -3.776874629489326e+00 -3.779113448259203e+00 -3.781355685279774e+00 - -3.783601341994148e+00 -3.785850419525435e+00 -3.788102921038436e+00 -3.790358850378410e+00 -3.792618212070778e+00 - -3.794881010002580e+00 -3.797147244827153e+00 -3.799416917428862e+00 -3.801690032849888e+00 -3.803966596190487e+00 - -3.806246608625402e+00 -3.808530070983860e+00 -3.810816986638503e+00 -3.813107359693981e+00 -3.815401194639556e+00 - -3.817698495297397e+00 -3.819999262436677e+00 -3.822303497093916e+00 -3.824611204428034e+00 -3.826922389548483e+00 - -3.829237053244454e+00 -3.831555196353405e+00 -3.833876824226091e+00 -3.836201942201953e+00 -3.838530551061888e+00 - -3.840862651326505e+00 -3.843198247033778e+00 -3.845537342919513e+00 -3.847879942993476e+00 -3.850226050562932e+00 - -3.852575666851148e+00 -3.854928793361406e+00 -3.857285434801036e+00 -3.859645595950435e+00 -3.862009278678248e+00 - -3.864376484523473e+00 -3.866747216618300e+00 -3.869121478726629e+00 -3.871499275546047e+00 -3.873880611182955e+00 - -3.876265486445322e+00 -3.878653902389424e+00 -3.881045864363169e+00 -3.883441377687285e+00 -3.885840443282151e+00 - -3.888243062046155e+00 -3.890649239190073e+00 -3.893058980047241e+00 -3.895472286128841e+00 -3.897889158595383e+00 - -3.900309601026809e+00 -3.902733617656517e+00 -3.905161212912323e+00 -3.907592390603840e+00 -3.910027151873432e+00 - -3.912465498159137e+00 -3.914907434748928e+00 -3.917352966879188e+00 -3.919802095729995e+00 -3.922254822259626e+00 - -3.924711150595445e+00 -3.927171085542605e+00 -3.929634631448325e+00 -3.932101791843537e+00 -3.934572567451927e+00 - -3.937046959532740e+00 -3.939524974294695e+00 -3.942006617767883e+00 -3.944491890318428e+00 -3.946980792233828e+00 - -3.949473329151056e+00 -3.951969506957779e+00 -3.954469327195002e+00 -3.956972790971958e+00 -3.959479902017460e+00 - -3.961990664762499e+00 -3.964505083827194e+00 -3.967023163167552e+00 -3.969544903893966e+00 -3.972070307479498e+00 - -3.974599379693463e+00 -3.977132126179292e+00 -3.979668547780628e+00 -3.982208645099321e+00 -3.984752422569858e+00 - -3.987299885436030e+00 -3.989851038346246e+00 -3.992405885069993e+00 -3.994964426456437e+00 -3.997526663815754e+00 - -4.000092603222488e+00 -4.002662250581340e+00 -4.005235606353252e+00 -4.007812671084819e+00 -4.010393451108941e+00 - -4.012977952843547e+00 -4.015566177260363e+00 -4.018158124897606e+00 -4.020753800005660e+00 -4.023353207686703e+00 - -4.025956352737950e+00 -4.028563239140089e+00 -4.031173867912699e+00 -4.033788240453579e+00 -4.036406362634527e+00 - -4.039028240314873e+00 -4.041653874830120e+00 -4.044283267179555e+00 -4.046916421541453e+00 -4.049553342894448e+00 - -4.052194036239657e+00 -4.054838505774454e+00 -4.057486752458788e+00 -4.060138777601743e+00 -4.062794587146426e+00 - -4.065454187011838e+00 -4.068117578386588e+00 -4.070784762448621e+00 -4.073455745063631e+00 -4.076130532171974e+00 - -4.078809125324914e+00 -4.081491525652789e+00 -4.084177736991329e+00 -4.086867764089578e+00 -4.089561612644448e+00 - -4.092259287473573e+00 -4.094960788929582e+00 -4.097666117736884e+00 -4.100375280572002e+00 -4.103088284211306e+00 - -4.105805129878449e+00 -4.108525818267906e+00 -4.111250353510137e+00 -4.113978740671802e+00 -4.116710985128399e+00 - -4.119447091422845e+00 -4.122187060458915e+00 -4.124930893522407e+00 -4.127678597066370e+00 -4.130430177441071e+00 - -4.133185635418395e+00 -4.135944971791250e+00 -4.138708193015015e+00 -4.141475305696859e+00 -4.144246311388639e+00 - -4.147021211130915e+00 -4.149800008974389e+00 -4.152582709893380e+00 -4.155369319546537e+00 -4.158159842709882e+00 - -4.160954279944561e+00 -4.163752632239020e+00 -4.166554906505763e+00 -4.169361109687737e+00 -4.172171242925584e+00 - -4.174985306927709e+00 -4.177803306475812e+00 -4.180625247195196e+00 -4.183451134012302e+00 -4.186280970992621e+00 - -4.189114759456745e+00 -4.191952501240072e+00 -4.194794202982180e+00 -4.197639871116617e+00 -4.200489506448629e+00 - -4.203343109834506e+00 -4.206200687962978e+00 -4.209062247657938e+00 -4.211927790451525e+00 -4.214797317400862e+00 - -4.217670832954751e+00 -4.220548342457539e+00 -4.223429851444060e+00 -4.226315364591702e+00 -4.229204882957573e+00 - -4.232098408004153e+00 -4.234995946435681e+00 -4.237897504949240e+00 -4.240803084971501e+00 -4.243712687544032e+00 - -4.246626317438374e+00 -4.249543980343883e+00 -4.252465681891192e+00 -4.255391426705907e+00 -4.258321215452209e+00 - -4.261255049361277e+00 -4.264192935893713e+00 -4.267134882389568e+00 -4.270080889477248e+00 -4.273030957691918e+00 - -4.275985093907401e+00 -4.278943305249538e+00 -4.281905593513557e+00 -4.284871959946388e+00 -4.287842408932329e+00 - -4.290816945777364e+00 -4.293795576336856e+00 -4.296778305653331e+00 -4.299765134968560e+00 -4.302756065899131e+00 - -4.305751105361620e+00 -4.308750260118541e+00 -4.311753531016159e+00 -4.314760919008608e+00 -4.317772431397722e+00 - -4.320788075591533e+00 -4.323807853075197e+00 -4.326831764792573e+00 -4.329859815445223e+00 -4.332892010759197e+00 - -4.335928356800809e+00 -4.338968858700405e+00 -4.342013517504197e+00 -4.345062334602749e+00 -4.348115316848165e+00 - -4.351172471198577e+00 -4.354233799574710e+00 -4.357299303495111e+00 -4.360368987907023e+00 -4.363442858590077e+00 - -4.366520921224746e+00 -4.369603180592436e+00 -4.372689637977453e+00 -4.375780295145305e+00 -4.378875159283436e+00 - -4.381974237486932e+00 -4.385077531059527e+00 -4.388185041309383e+00 -4.391296775353732e+00 -4.394412740393244e+00 - -4.397532938153312e+00 -4.400657369887305e+00 -4.403786040435705e+00 -4.406918955633090e+00 -4.410056121703311e+00 - -4.413197543940346e+00 -4.416343223529426e+00 -4.419493162052248e+00 -4.422647366785128e+00 -4.425805845047289e+00 - -4.428968598634965e+00 -4.432135628892382e+00 -4.435306940878729e+00 -4.438482540596634e+00 -4.441662434107552e+00 - -4.444846626509031e+00 -4.448035118984182e+00 -4.451227913265940e+00 -4.454425017200977e+00 -4.457626438485681e+00 - -4.460832178101560e+00 -4.464042236947444e+00 -4.467256622306292e+00 -4.470475341701105e+00 -4.473698397230936e+00 - -4.476925790483307e+00 -4.480157526423565e+00 -4.483393610985775e+00 -4.486634050601043e+00 -4.489878850742320e+00 - -4.493128012552872e+00 -4.496381537630165e+00 -4.499639433718156e+00 -4.502901708553144e+00 -4.506168363694287e+00 - -4.509439400268067e+00 -4.512714823847340e+00 -4.515994641019672e+00 -4.519278857985080e+00 -4.522567479881829e+00 - -4.525860507988668e+00 -4.529157944122721e+00 -4.532459796114085e+00 -4.535766071688615e+00 -4.539076772142213e+00 - -4.542391898765175e+00 -4.545711459255270e+00 -4.549035461446213e+00 -4.552363907308053e+00 -4.555696798263391e+00 - -4.559034139408705e+00 -4.562375936904542e+00 -4.565722197493832e+00 -4.569072926948550e+00 -4.572428126574475e+00 - -4.575787798129616e+00 -4.579151949647104e+00 -4.582520589075836e+00 -4.585893717752653e+00 -4.589271336639746e+00 - -4.592653451812744e+00 -4.596040070428725e+00 -4.599431198857142e+00 -4.602826842289216e+00 -4.606227001990830e+00 - -4.609631679831751e+00 -4.613040884022596e+00 -4.616454622677202e+00 -4.619872897181441e+00 -4.623295708819967e+00 - -4.626723065200532e+00 -4.630154974192006e+00 -4.633591438384649e+00 -4.637032459790966e+00 -4.640478043391029e+00 - -4.643928195196958e+00 -4.647382922381489e+00 -4.650842231139545e+00 -4.654306122594169e+00 -4.657774598295235e+00 - -4.661247666571815e+00 -4.664725335805659e+00 -4.668207607810025e+00 -4.671694483876048e+00 -4.675185969774820e+00 - -4.678682072408495e+00 -4.682182798723523e+00 -4.685688154522786e+00 -4.689198140990583e+00 -4.692712759891060e+00 - -4.696232019926335e+00 -4.699755929666950e+00 -4.703284490219185e+00 -4.706817702626076e+00 -4.710355575141943e+00 - -4.713898116290367e+00 -4.717445328460708e+00 -4.720997213393779e+00 -4.724553776370427e+00 -4.728115023824750e+00 - -4.731680963263822e+00 -4.735251601139764e+00 -4.738826938611875e+00 -4.742406977241646e+00 -4.745991725492132e+00 - -4.749581191958943e+00 -4.753175378866366e+00 -4.756774287871428e+00 -4.760377924733439e+00 -4.763986296289299e+00 - -4.767599409584012e+00 -4.771217270615820e+00 -4.774839880987831e+00 -4.778467242836293e+00 -4.782099364825118e+00 - -4.785736255481164e+00 -4.789377916255392e+00 -4.793024348603915e+00 -4.796675561079348e+00 -4.800331562360717e+00 - -4.803992354536202e+00 -4.807657939173200e+00 -4.811328322346788e+00 -4.815003511262576e+00 -4.818683513140625e+00 - -4.822368334073276e+00 -4.826057975627521e+00 -4.829752439872078e+00 -4.833451735407881e+00 -4.837155870922971e+00 - -4.840864848921632e+00 -4.844578671297884e+00 -4.848297343688468e+00 -4.852020872870312e+00 -4.855749266438375e+00 - -4.859482530948563e+00 -4.863220667982479e+00 -4.866963679596293e+00 -4.870711574718753e+00 -4.874464362148352e+00 - -4.878222043289993e+00 -4.881984619584831e+00 -4.885752100012597e+00 -4.889524493673498e+00 -4.893301802611106e+00 - -4.897084028340568e+00 -4.900871177319985e+00 -4.904663257144151e+00 -4.908460275011687e+00 -4.912262236942902e+00 - -4.916069144641015e+00 -4.919881000415621e+00 -4.923697813318887e+00 -4.927519592402767e+00 -4.931346339975771e+00 - -4.935178057730553e+00 -4.939014751639765e+00 -4.942856428895341e+00 -4.946703097286389e+00 -4.950554763469543e+00 - -4.954411428974413e+00 -4.958273095882141e+00 -4.962139773607051e+00 -4.966011471374763e+00 -4.969888190322918e+00 - -4.973769931656962e+00 -4.977656704941523e+00 -4.981548519919207e+00 -4.985445378685372e+00 -4.989347282670139e+00 - -4.993254238289898e+00 -4.997166253181426e+00 -5.001083334876794e+00 -5.005005489750602e+00 -5.008932719652265e+00 - -5.012865027026571e+00 -5.016802421224969e+00 -5.020744911403345e+00 -5.024692499028711e+00 -5.028645185619313e+00 - -5.032602980587180e+00 -5.036565893470627e+00 -5.040533926419334e+00 -5.044507081015939e+00 -5.048485363963517e+00 - -5.052468783200935e+00 -5.056457346489804e+00 -5.060451060330298e+00 -5.064449926354071e+00 -5.068453946757710e+00 - -5.072463130865962e+00 -5.076477488052552e+00 -5.080497020758939e+00 -5.084521730904982e+00 -5.088551625256381e+00 - -5.092586711696772e+00 -5.096626997735727e+00 -5.100672489712744e+00 -5.104723189661156e+00 -5.108779100266077e+00 - -5.112840231125939e+00 -5.116906591587866e+00 -5.120978183080382e+00 -5.125055007124604e+00 -5.129137073530554e+00 - -5.133224392250169e+00 -5.137316965514153e+00 -5.141414794882011e+00 -5.145517886949661e+00 -5.149626249667421e+00 - -5.153739891366810e+00 -5.157858819095347e+00 -5.161983034383363e+00 -5.166112539324860e+00 -5.170247343785729e+00 - -5.174387457616170e+00 -5.178532882831751e+00 -5.182683620936045e+00 -5.186839679219287e+00 -5.191001066208124e+00 - -5.195167789588259e+00 -5.199339855740569e+00 -5.203517266667578e+00 -5.207700025095241e+00 -5.211888141021600e+00 - -5.216081624199723e+00 -5.220280476130696e+00 -5.224484698310884e+00 -5.228694300469721e+00 -5.232909292611727e+00 - -5.237129677608738e+00 -5.241355457600706e+00 -5.245586638932716e+00 -5.249823229255573e+00 -5.254065237237846e+00 - -5.258312670369801e+00 -5.262565530410686e+00 -5.266823819583928e+00 -5.271087547700648e+00 -5.275356724632263e+00 - -5.279631352903723e+00 -5.283911434448228e+00 -5.288196976178466e+00 -5.292487986327965e+00 -5.296784473434150e+00 - -5.301086444698075e+00 -5.305393901671405e+00 -5.309706846569482e+00 -5.314025289911748e+00 -5.318349242027271e+00 - -5.322678704179561e+00 -5.327013677718438e+00 -5.331354173404511e+00 -5.335700202105029e+00 -5.340051765703035e+00 - -5.344408865432155e+00 -5.348771508912536e+00 -5.353139705124518e+00 -5.357513462102698e+00 -5.361892786505948e+00 - -5.366277680435933e+00 -5.370668146715638e+00 -5.375064195610523e+00 -5.379465837274747e+00 -5.383873073974794e+00 - -5.388285907439377e+00 -5.392704345133761e+00 -5.397128395890300e+00 -5.401558068273167e+00 -5.405993369375257e+00 - -5.410434300672517e+00 -5.414880864443758e+00 -5.419333071796174e+00 -5.423790933634701e+00 -5.428254451226888e+00 - -5.432723625834648e+00 -5.437198468334746e+00 -5.441678989715544e+00 -5.446165191796978e+00 -5.450657075821366e+00 - -5.455154649888983e+00 -5.459657923508107e+00 -5.464166904961132e+00 -5.468681600997277e+00 -5.473202013458992e+00 - -5.477728145011161e+00 -5.482260006515158e+00 -5.486797608759512e+00 -5.491340954044872e+00 -5.495890044003880e+00 - -5.500444886085005e+00 -5.505005489175888e+00 -5.509571862105057e+00 -5.514144012303452e+00 -5.518721941670775e+00 - -5.523305652810777e+00 -5.527895156674663e+00 -5.532490463993778e+00 -5.537091576272570e+00 -5.541698495053784e+00 - -5.546311231260242e+00 -5.550929796018560e+00 -5.555554191890502e+00 -5.560184420697174e+00 -5.564820489861896e+00 - -5.569462408240030e+00 -5.574110184812914e+00 -5.578763827204064e+00 -5.583423337479740e+00 -5.588088718319627e+00 - -5.592759980414353e+00 -5.597437134453794e+00 -5.602120183113874e+00 -5.606809128447821e+00 -5.611503978032022e+00 - -5.616204740842362e+00 -5.620911425929568e+00 -5.625624040919794e+00 -5.630342587666039e+00 -5.635067068763208e+00 - -5.639797495546991e+00 -5.644533879170592e+00 -5.649276221316504e+00 -5.654024523642824e+00 -5.658778797180806e+00 - -5.663539053129186e+00 -5.668305293983524e+00 -5.673077521581335e+00 -5.677855743831122e+00 -5.682639970117403e+00 - -5.687430209657800e+00 -5.692226470164904e+00 -5.697028753498052e+00 -5.701837062188433e+00 -5.706651407307890e+00 - -5.711471800003379e+00 -5.716298243181697e+00 -5.721130739014699e+00 -5.725969294974640e+00 -5.730813920019088e+00 - -5.735664623746429e+00 -5.740521414337008e+00 -5.745384293658165e+00 -5.750253264219532e+00 -5.755128337412918e+00 - -5.760009524502356e+00 -5.764896827358567e+00 -5.769790247833362e+00 -5.774689797096235e+00 -5.779595486532854e+00 - -5.784507319075965e+00 -5.789425296924678e+00 -5.794349427796488e+00 -5.799279720850703e+00 -5.804216185495535e+00 - -5.809158829710795e+00 -5.814107655513784e+00 -5.819062665706917e+00 -5.824023872195552e+00 -5.828991286593848e+00 - -5.833964910248241e+00 -5.838944744496904e+00 -5.843930800912663e+00 -5.848923091405570e+00 -5.853921618999967e+00 - -5.858926385866531e+00 -5.863937399646989e+00 -5.868954669511408e+00 -5.873978205272220e+00 -5.879008015280387e+00 - -5.884044101398642e+00 -5.889086466127434e+00 -5.894135121006329e+00 -5.899190077679159e+00 -5.904251339167730e+00 - -5.909318907675908e+00 -5.914392790757818e+00 -5.919472997569684e+00 -5.924559538325873e+00 -5.929652421747786e+00 - -5.934751649526802e+00 -5.939857223994977e+00 -5.944969157077114e+00 -5.950087460588470e+00 -5.955212136313389e+00 - -5.960343186070434e+00 -5.965480621845905e+00 -5.970624455737114e+00 -5.975774690117698e+00 -5.980931326619691e+00 - -5.986094373632355e+00 -5.991263841186835e+00 -5.996439739124646e+00 -6.001622075628632e+00 -6.006810852436582e+00 - -6.012006072105073e+00 -6.017207746910874e+00 -6.022415889122929e+00 -6.027630501258702e+00 -6.032851585034692e+00 - -6.038079148714933e+00 -6.043313202169935e+00 -6.048553755148549e+00 -6.053800815867540e+00 -6.059054386536941e+00 - -6.064314470164098e+00 -6.069581078952353e+00 -6.074854224823474e+00 -6.080133909377011e+00 -6.085420134277816e+00 - -6.090712911774160e+00 -6.096012254273324e+00 -6.101318164235261e+00 -6.106630643404864e+00 -6.111949700614082e+00 - -6.117275346267099e+00 -6.122607589969956e+00 -6.127946439669295e+00 -6.133291897472249e+00 -6.138643966380033e+00 - -6.144002658809652e+00 -6.149367987035877e+00 -6.154739953348771e+00 -6.160118559324411e+00 -6.165503813667637e+00 - -6.170895726810269e+00 -6.176294308963303e+00 -6.181699568610070e+00 -6.187111507544039e+00 -6.192530128394146e+00 - -6.197955443821025e+00 -6.203387466288188e+00 -6.208826197438971e+00 -6.214271638855750e+00 -6.219723802697215e+00 - -6.225182701452046e+00 -6.230648338352550e+00 -6.236120715733020e+00 -6.241599841591995e+00 -6.247085725644578e+00 - -6.252578378807894e+00 -6.258077810320607e+00 -6.263584021505486e+00 -6.269097014385768e+00 -6.274616801702433e+00 - -6.280143396389799e+00 -6.285676801437800e+00 -6.291217018848358e+00 -6.296764056615736e+00 -6.302317924554712e+00 - -6.307878633769864e+00 -6.313446193664602e+00 -6.319020605547922e+00 -6.324601871487839e+00 -6.330190004682891e+00 - -6.335785018206249e+00 -6.341386913499118e+00 -6.346995691980793e+00 -6.352611366614864e+00 -6.358233950592316e+00 - -6.363863446469443e+00 -6.369499855900457e+00 -6.375143187565898e+00 -6.380793451939097e+00 -6.386450659638202e+00 - -6.392114819555641e+00 -6.397785933536126e+00 -6.403464004233896e+00 -6.409149044588990e+00 -6.414841067513965e+00 - -6.420540075525660e+00 -6.426246070301758e+00 -6.431959060559017e+00 -6.437679056917068e+00 -6.443406070567963e+00 - -6.449140110779302e+00 -6.454881178548420e+00 -6.460629275812415e+00 -6.466384416537711e+00 -6.472146614484319e+00 - -6.477915870557313e+00 -6.483692185657911e+00 -6.489475573526882e+00 -6.495266048141532e+00 -6.501063611585819e+00 - -6.506868264986595e+00 -6.512680017535606e+00 -6.518498880384615e+00 -6.524324864460620e+00 -6.530157978732819e+00 - -6.535998224564008e+00 -6.541845604255500e+00 -6.547700131469085e+00 -6.553561819849423e+00 -6.559430671612207e+00 - -6.565306688088189e+00 -6.571189878497283e+00 -6.577080253965905e+00 -6.582977825357318e+00 -6.588882601649868e+00 - -6.594794584545345e+00 -6.600713776640095e+00 -6.606640191385222e+00 -6.612573842086468e+00 -6.618514730613387e+00 - -6.624462858757332e+00 -6.630418239433046e+00 -6.636380885778538e+00 -6.642350800701542e+00 -6.648327986279747e+00 - -6.654312451500913e+00 -6.660304207148021e+00 -6.666303264274883e+00 -6.672309632144893e+00 -6.678323312588955e+00 - -6.684344308236361e+00 -6.690372632342481e+00 -6.696408298209058e+00 -6.702451308697293e+00 -6.708501665794167e+00 - -6.714559378430309e+00 -6.720624457416141e+00 -6.726696914137652e+00 -6.732776758078630e+00 -6.738863990538500e+00 - -6.744958613795213e+00 -6.751060642225177e+00 -6.757170089911689e+00 -6.763286957667176e+00 -6.769411246357500e+00 - -6.775542970333119e+00 -6.781682144164359e+00 -6.787828769816468e+00 -6.793982848306231e+00 -6.800144389461610e+00 - -6.806313405086916e+00 -6.812489906080716e+00 -6.818673901333698e+00 -6.824865392610781e+00 -6.831064382650163e+00 - -6.837270885208925e+00 -6.843484914029985e+00 -6.849706471780753e+00 -6.855935560196301e+00 -6.862172188357874e+00 - -6.868416367348060e+00 -6.874668108908677e+00 -6.880927422841348e+00 -6.887194310527692e+00 -6.893468774218006e+00 - -6.899750828057308e+00 -6.906040486046904e+00 -6.912337749718504e+00 -6.918642620544160e+00 -6.924955112226868e+00 - -6.931275238742860e+00 -6.937603002930438e+00 -6.943938406703657e+00 -6.950281459417487e+00 -6.956632172330878e+00 - -6.962990556877839e+00 -6.969356622516854e+00 -6.975730370629293e+00 -6.982111803620415e+00 -6.988500936068168e+00 - -6.994897782349220e+00 -7.001302343862422e+00 -7.007714621896787e+00 -7.014134630279748e+00 -7.020562383120512e+00 - -7.026997883116998e+00 -7.033441132058707e+00 -7.039892139512705e+00 -7.046350916975187e+00 -7.052817475881351e+00 - -7.059291825658977e+00 -7.065773967767182e+00 -7.072263904706783e+00 -7.078761651114045e+00 -7.085267221537997e+00 - -7.091780618043302e+00 -7.098301841735545e+00 -7.104830902368316e+00 -7.111367811800725e+00 -7.117912581665987e+00 - -7.124465221496127e+00 -7.131025732644298e+00 -7.137594117517873e+00 -7.144170390919956e+00 -7.150754567380619e+00 - -7.157346647942116e+00 -7.163946633668109e+00 -7.170554539195697e+00 -7.177170379365883e+00 -7.183794156261903e+00 - -7.190425870988396e+00 -7.197065533493338e+00 -7.203713155838439e+00 -7.210368749697043e+00 -7.217032324589560e+00 - -7.223703881813015e+00 -7.230383423705708e+00 -7.237070964994412e+00 -7.243766520390449e+00 -7.250470092154861e+00 - -7.257181681552523e+00 -7.263901298313877e+00 -7.270628954301988e+00 -7.277364661444877e+00 -7.284108429522252e+00 - -7.290860259655573e+00 -7.297620154032538e+00 -7.304388127764033e+00 -7.311164195737019e+00 -7.317948359019635e+00 - -7.324740618617562e+00 -7.331540989105481e+00 -7.338349485298712e+00 -7.345166109406192e+00 -7.351990862719772e+00 - -7.358823755469352e+00 -7.365664799915581e+00 -7.372514007504119e+00 -7.379371387574386e+00 -7.386236941855793e+00 - -7.393110673113762e+00 -7.399992595867711e+00 -7.406882724521767e+00 -7.413781061264927e+00 -7.420687607444220e+00 - -7.427602373253923e+00 -7.434525370953283e+00 -7.441456612214240e+00 -7.448396106579596e+00 -7.455343855662903e+00 - -7.462299862106879e+00 -7.469264140600134e+00 -7.476236705537742e+00 -7.483217558094771e+00 -7.490206699573982e+00 - -7.497204145008848e+00 -7.504209909607961e+00 -7.511223995549668e+00 -7.518246403916826e+00 -7.525277144440522e+00 - -7.532316229110418e+00 -7.539363670302306e+00 -7.546419478207750e+00 -7.553483653895294e+00 -7.560556199398457e+00 - -7.567637129733686e+00 -7.574726459966183e+00 -7.581824192373288e+00 -7.588930328179804e+00 -7.596044877188221e+00 - -7.603167851392376e+00 -7.610299262973792e+00 -7.617439121971403e+00 -7.624587429666054e+00 -7.631744188388593e+00 - -7.638909413427992e+00 -7.646083119762239e+00 -7.653265308167305e+00 -7.660455979470388e+00 -7.667655148905554e+00 - -7.674862831955687e+00 -7.682079030692125e+00 -7.689303746121935e+00 -7.696536988406601e+00 -7.703778769965018e+00 - -7.711029103091334e+00 -7.718287997777487e+00 -7.725555454931286e+00 -7.732831476489904e+00 -7.740116077592081e+00 - -7.747409273463959e+00 -7.754711066479733e+00 -7.762021457991705e+00 -7.769340458116517e+00 -7.776668079072852e+00 - -7.784004332723263e+00 -7.791349228774319e+00 -7.798702768664788e+00 -7.806064954991001e+00 -7.813435803247359e+00 - -7.820815328504128e+00 -7.828203531237023e+00 -7.835600412067597e+00 -7.843005986795347e+00 -7.850420271453628e+00 - -7.857843267833355e+00 -7.865274976500961e+00 -7.872715407367362e+00 -7.880164572827870e+00 -7.887622485870939e+00 - -7.895089157097287e+00 -7.902564586963549e+00 -7.910048776908389e+00 -7.917541742442640e+00 -7.925043499243823e+00 - -7.932554049584044e+00 -7.940073394568305e+00 -7.947601544038569e+00 -7.955138510136092e+00 -7.962684305462377e+00 - -7.970238940357911e+00 -7.977802415658878e+00 -7.985374733292938e+00 -7.992955909057959e+00 -8.000545958501995e+00 - -8.008144882303682e+00 -8.015752681155906e+00 -8.023369370677967e+00 -8.030994966700497e+00 -8.038629470973136e+00 - -8.046272884117311e+00 -8.053925216322545e+00 -8.061586480220186e+00 -8.069256688640843e+00 -8.076935852017314e+00 - -8.084623970991846e+00 -8.092321047230506e+00 -8.100027096285098e+00 -8.107742133772728e+00 -8.115466161685978e+00 - -8.123199180963685e+00 -8.130941201954130e+00 -8.138692237272345e+00 -8.146452299190864e+00 -8.154221397655556e+00 - -8.161999533648068e+00 -8.169786709369063e+00 -8.177582940859525e+00 -8.185388243772254e+00 -8.193202618367051e+00 - -8.201026064968486e+00 -8.208858599553158e+00 -8.216700238370747e+00 -8.224550983111227e+00 -8.232410834288519e+00 - -8.240279802271914e+00 -8.248157899820946e+00 -8.256045139400785e+00 -8.263941531127587e+00 -8.271847076015916e+00 - -8.279761776165609e+00 -8.287685647119202e+00 -8.295618704371698e+00 -8.303560949785306e+00 -8.311512384182917e+00 - -8.319473017862927e+00 -8.327442863513763e+00 -8.335421933908444e+00 -8.343410239406900e+00 -8.351407780632112e+00 - -8.359414559352070e+00 -8.367430591651793e+00 -8.375455893292965e+00 -8.383490464426892e+00 -8.391534305333888e+00 - -8.399587432420665e+00 -8.407649862295598e+00 -8.415721596247392e+00 -8.423802634359653e+00 -8.431892987215194e+00 - -8.439992667917126e+00 -8.448101689150496e+00 -8.456220061058572e+00 -8.464347784035521e+00 -8.472484859778373e+00 - -8.480631304944675e+00 -8.488787135775029e+00 -8.496952351881781e+00 -8.505126952972617e+00 -8.513310955764712e+00 - -8.521504377280520e+00 -8.529707218754108e+00 -8.537919480083488e+00 -8.546141171610756e+00 -8.554372306334406e+00 - -8.562612897434500e+00 -8.570862955488629e+00 -8.579122480482935e+00 -8.587391473585072e+00 -8.595669951280222e+00 - -8.603957930092136e+00 -8.612255411381385e+00 -8.620562395277888e+00 -8.628878892152137e+00 -8.637204914976417e+00 - -8.645540476889700e+00 -8.653885588365707e+00 -8.662240249050400e+00 -8.670604460002718e+00 -8.678978238761259e+00 - -8.687361602440037e+00 -8.695754549975142e+00 -8.704157080317993e+00 -8.712569210659231e+00 -8.720990958572770e+00 - -8.729422324926496e+00 -8.737863309144757e+00 -8.746313921583734e+00 -8.754774175423437e+00 -8.763244084207386e+00 - -8.771723658743657e+00 -8.780212898534927e+00 -8.788711804325507e+00 -8.797220393131562e+00 -8.805738681960509e+00 - -8.814266671512945e+00 -8.822804361262596e+00 -8.831351762082482e+00 -8.839908887544672e+00 -8.848475750618142e+00 - -8.857052361519681e+00 -8.865638720060298e+00 -8.874234827408518e+00 -8.882840700568694e+00 -8.891456356239988e+00 - -8.900081794065120e+00 -8.908717013654563e+00 -8.917362031546196e+00 -8.926016864607513e+00 -8.934681514097109e+00 - -8.943355979966887e+00 -8.952040272550780e+00 -8.960734404827180e+00 -8.969438389970174e+00 -8.978152238557112e+00 - -8.986875950582608e+00 -8.995609527224275e+00 -9.004352984974421e+00 -9.013106340348738e+00 -9.021869594641789e+00 - -9.030642747850949e+00 -9.039425810005964e+00 -9.048218793898496e+00 -9.057021713335553e+00 -9.065834579375275e+00 - -9.074657391064932e+00 -9.083490148798390e+00 -9.092332870366718e+00 -9.101185573233034e+00 -9.110048256151465e+00 - -9.118920917820537e+00 -9.127803575425368e+00 -9.136696246597257e+00 -9.145598932265708e+00 -9.154511631860180e+00 - -9.163434355511646e+00 -9.172367116215408e+00 -9.181309927722621e+00 -9.190262801063124e+00 -9.199225735625708e+00 - -9.208198731948572e+00 -9.217181806808554e+00 -9.226174977077383e+00 -9.235178243767663e+00 -9.244191606592038e+00 - -9.253215075922315e+00 -9.262248664894432e+00 -9.271292387041701e+00 -9.280346253080740e+00 -9.289410262064051e+00 - -9.298484414471314e+00 -9.307568728155069e+00 -9.316663220573421e+00 -9.325767890233902e+00 -9.334882735648362e+00 - -9.344007774296474e+00 -9.353143024056331e+00 -9.362288485431986e+00 -9.371444157433135e+00 -9.380610050466057e+00 - -9.389786177888119e+00 -9.398972553464475e+00 -9.408169188076664e+00 -9.417376080663951e+00 -9.426593231436920e+00 - -9.435820657633688e+00 -9.445058376575700e+00 -9.454306388890288e+00 -9.463564693828612e+00 -9.472833301831271e+00 - -9.482112226230582e+00 -9.491401480736307e+00 -9.500701076124317e+00 -9.510011011057383e+00 -9.519331285649606e+00 - -9.528661917933491e+00 -9.538002925632075e+00 -9.547354307312132e+00 -9.556716061430350e+00 -9.566088205159264e+00 - -9.575470756067922e+00 -9.584863714595665e+00 -9.594267079809105e+00 -9.603680862413734e+00 -9.613105076017005e+00 - -9.622539734195460e+00 -9.631984847535897e+00 -9.641440414697058e+00 -9.650906435763309e+00 -9.660382928449559e+00 - -9.669869910482992e+00 -9.679367382009378e+00 -9.688875341677877e+00 -9.698393799732578e+00 -9.707922769547205e+00 - -9.717462265419133e+00 -9.727012298576232e+00 -9.736572867044643e+00 -9.746143970285512e+00 -9.755725626701739e+00 - -9.765317854403191e+00 -9.774920651385886e+00 -9.784534015610914e+00 -9.794157965013451e+00 -9.803792517858509e+00 - -9.813437673756464e+00 -9.823093430886084e+00 -9.832759800354408e+00 -9.842436796281985e+00 -9.852124431915341e+00 - -9.861822717446652e+00 -9.871531651724764e+00 -9.881251235098006e+00 -9.890981485255914e+00 -9.900722419735771e+00 - -9.910474038124631e+00 -9.920236338721825e+00 -9.930009332625946e+00 -9.939793033953066e+00 -9.949587456089942e+00 - -9.959392609292857e+00 -9.969208492025555e+00 -9.979035104343238e+00 -9.988872464459540e+00 -9.998720590171930e+00 - -1.000857947945488e+01 -1.001844913033355e+01 -1.002832956085879e+01 -1.003822078906736e+01 -1.004812281291406e+01 - -1.005803562971182e+01 -1.006795925428782e+01 -1.007789370360111e+01 -1.008783898562387e+01 -1.009779510571246e+01 - -1.010776206774677e+01 -1.011773987740720e+01 -1.012772854905251e+01 -1.013772809631413e+01 -1.014773852123577e+01 - -1.015775982444731e+01 -1.016779201251112e+01 -1.017783509576905e+01 -1.018788909374848e+01 -1.019795402262726e+01 - -1.020802987599985e+01 -1.021811664796306e+01 -1.022821435720666e+01 -1.023832302389762e+01 -1.024844264951883e+01 - -1.025857323411911e+01 -1.026871479069502e+01 -1.027886733277511e+01 -1.028903086306819e+01 -1.029920538356622e+01 - -1.030939090421369e+01 -1.031958743714735e+01 -1.032979499532081e+01 -1.034001358910991e+01 -1.035024321776280e+01 - -1.036048388191000e+01 -1.037073559883907e+01 -1.038099838556339e+01 -1.039127224134250e+01 -1.040155716512729e+01 - -1.041185317238784e+01 -1.042216027887615e+01 -1.043247848495290e+01 -1.044280779013644e+01 -1.045314820596725e+01 - -1.046349974688984e+01 -1.047386242694284e+01 -1.048423625623699e+01 -1.049462122957744e+01 -1.050501734396915e+01 - -1.051542462052187e+01 -1.052584308069211e+01 -1.053627272321853e+01 -1.054671354447971e+01 -1.055716555413174e+01 - -1.056762876571201e+01 -1.057810319500591e+01 -1.058858885406686e+01 -1.059908573777257e+01 -1.060959384260205e+01 - -1.062011318861535e+01 -1.063064379594653e+01 -1.064118566144451e+01 -1.065173878128750e+01 -1.066230317225584e+01 - -1.067287885251234e+01 -1.068346582514766e+01 -1.069406409086973e+01 -1.070467365592747e+01 -1.071529452946521e+01 - -1.072592672666786e+01 -1.073657026057826e+01 -1.074722512963040e+01 -1.075789133336255e+01 -1.076856889033910e+01 - -1.077925781838790e+01 -1.078995811336476e+01 -1.080066977044343e+01 -1.081139280404170e+01 -1.082212723175914e+01 - -1.083287306467895e+01 -1.084363031023443e+01 -1.085439896777578e+01 -1.086517903841335e+01 -1.087597053838113e+01 - -1.088677348334085e+01 -1.089758787154147e+01 -1.090841370173705e+01 -1.091925099211483e+01 -1.093009976068779e+01 - -1.094096000533889e+01 -1.095183172286895e+01 -1.096271492588021e+01 -1.097360962990334e+01 -1.098451584638146e+01 - -1.099543358339704e+01 -1.100636283967740e+01 -1.101730361593110e+01 -1.102825593014644e+01 -1.103921979985815e+01 - -1.105019522350652e+01 -1.106118219809120e+01 -1.107218073394329e+01 -1.108319084475604e+01 -1.109421254433972e+01 - -1.110524584310812e+01 -1.111629073777213e+01 -1.112734722664297e+01 -1.113841532813614e+01 -1.114949506055284e+01 - -1.116058642163307e+01 -1.117168940919924e+01 -1.118280404196459e+01 -1.119393033845125e+01 -1.120506829552628e+01 - -1.121621790821428e+01 -1.122737918582522e+01 -1.123855214233318e+01 -1.124973679608346e+01 -1.126093316109601e+01 - -1.127214122971816e+01 -1.128336099568353e+01 -1.129459247994368e+01 -1.130583570391351e+01 -1.131709066364352e+01 - -1.132835735316995e+01 -1.133963578383626e+01 -1.135092597165251e+01 -1.136222793398803e+01 -1.137354168289046e+01 - -1.138486720776133e+01 -1.139620450077960e+01 -1.140755358788016e+01 -1.141891449467379e+01 -1.143028721171902e+01 - -1.144167172931863e+01 -1.145306807180483e+01 -1.146447626363145e+01 -1.147589629570943e+01 -1.148732815744427e+01 - -1.149877186576219e+01 -1.151022744176966e+01 -1.152169489577362e+01 -1.153317423307527e+01 -1.154466544975234e+01 - -1.155616854500299e+01 -1.156768353973055e+01 -1.157921045411968e+01 -1.159074928377541e+01 -1.160230002278200e+01 - -1.161386268372032e+01 -1.162543728297182e+01 -1.163702383362365e+01 -1.164862234413445e+01 -1.166023280774309e+01 - -1.167185522083641e+01 -1.168348960761297e+01 -1.169513599109641e+01 -1.170679436179895e+01 -1.171846471050954e+01 - -1.173014706163534e+01 -1.174184143967664e+01 -1.175354783588804e+01 -1.176526623959987e+01 -1.177699666569085e+01 - -1.178873913359907e+01 -1.180049365545172e+01 -1.181226023874721e+01 -1.182403887977966e+01 -1.183582957710202e+01 - -1.184763234950681e+01 -1.185944721571250e+01 -1.187127417390187e+01 -1.188311322026980e+01 -1.189496436359524e+01 - -1.190682761635663e+01 -1.191870299324639e+01 -1.193059050542573e+01 -1.194249014771712e+01 -1.195440191732676e+01 - -1.196632583733436e+01 -1.197826192918009e+01 -1.199021018187259e+01 -1.200217058481946e+01 -1.201414316145583e+01 - -1.202612793653577e+01 -1.203812490606177e+01 -1.205013406283600e+01 -1.206215541561094e+01 -1.207418897775090e+01 - -1.208623476511758e+01 -1.209829279023755e+01 -1.211036304979982e+01 -1.212244554104682e+01 -1.213454027927224e+01 - -1.214664728029985e+01 -1.215876654402256e+01 -1.217089806888390e+01 -1.218304186346073e+01 -1.219519793969503e+01 - -1.220736631285608e+01 -1.221954699446002e+01 -1.223173997768314e+01 -1.224394525782826e+01 -1.225616285704409e+01 - -1.226839279716718e+01 -1.228063507193962e+01 -1.229288967419984e+01 -1.230515662126608e+01 -1.231743593190913e+01 - -1.232972760623024e+01 -1.234203164189830e+01 -1.235434804552219e+01 -1.236667682754052e+01 -1.237901800477097e+01 - -1.239137159078778e+01 -1.240373757981251e+01 -1.241611596680448e+01 -1.242850676902663e+01 -1.244091000477032e+01 - -1.245332567413717e+01 -1.246575377485128e+01 -1.247819431331654e+01 -1.249064729993889e+01 -1.250311275245252e+01 - -1.251559068470151e+01 -1.252808108764087e+01 -1.254058395403090e+01 -1.255309930674196e+01 -1.256562716858205e+01 - -1.257816753199971e+01 -1.259072038911156e+01 -1.260328576106586e+01 -1.261586366917709e+01 -1.262845410639316e+01 - -1.264105706405277e+01 -1.265367255542431e+01 -1.266630059802175e+01 -1.267894120441173e+01 -1.269159438291520e+01 - -1.270426012981745e+01 -1.271693844300063e+01 -1.272962933876972e+01 -1.274233283335257e+01 -1.275504892424538e+01 - -1.276777760888006e+01 -1.278051890316245e+01 -1.279327282335948e+01 -1.280603936870822e+01 -1.281881853703964e+01 - -1.283161033759003e+01 -1.284441478278821e+01 -1.285723188642777e+01 -1.287006165845383e+01 -1.288290409205257e+01 - -1.289575918258311e+01 -1.290862695085492e+01 -1.292150741744502e+01 -1.293440057655018e+01 -1.294730642109768e+01 - -1.296022496531707e+01 -1.297315622664438e+01 -1.298610021403966e+01 -1.299905693252094e+01 -1.301202637981436e+01 - -1.302500855607946e+01 -1.303800347850134e+01 -1.305101116311717e+01 -1.306403160434687e+01 -1.307706479749205e+01 - -1.309011076299821e+01 -1.310316952145874e+01 -1.311624106891474e+01 -1.312932539865738e+01 -1.314242251753035e+01 - -1.315553243732881e+01 -1.316865517610136e+01 -1.318179074759510e+01 -1.319493914209791e+01 -1.320810035188408e+01 - -1.322127440063306e+01 -1.323446131182036e+01 -1.324766107670098e+01 -1.326087368408213e+01 -1.327409914520021e+01 - -1.328733747660298e+01 -1.330058869365459e+01 -1.331385280702646e+01 -1.332712980980294e+01 -1.334041969690924e+01 - -1.335372248822127e+01 -1.336703820316815e+01 -1.338036683444133e+01 -1.339370837465144e+01 -1.340706284282357e+01 - -1.342043025877972e+01 -1.343381061911550e+01 -1.344720391854233e+01 -1.346061016746156e+01 -1.347402937953320e+01 - -1.348746156576247e+01 -1.350090673400032e+01 -1.351436488213541e+01 -1.352783600940468e+01 -1.354132013040003e+01 - -1.355481725974633e+01 -1.356832739684519e+01 -1.358185053959114e+01 -1.359538669507347e+01 -1.360893587411229e+01 - -1.362249809325635e+01 -1.363607336498644e+01 -1.364966167978290e+01 -1.366326303005515e+01 -1.367687743792930e+01 - -1.369050492543861e+01 -1.370414548452841e+01 -1.371779910680898e+01 -1.373146581263829e+01 -1.374514562258463e+01 - -1.375883852931014e+01 -1.377254452369323e+01 -1.378626361738342e+01 -1.379999582664259e+01 -1.381374116541099e+01 - -1.382749964295472e+01 -1.384127125216480e+01 -1.385505598801133e+01 -1.386885387015567e+01 -1.388266491822051e+01 - -1.389648912698253e+01 -1.391032648926665e+01 -1.392417701493663e+01 -1.393804071810552e+01 -1.395191761284479e+01 - -1.396580770902492e+01 -1.397971099975399e+01 -1.399362747983656e+01 -1.400755716762526e+01 -1.402150008127576e+01 - -1.403545621460787e+01 -1.404942556175519e+01 -1.406340814244217e+01 -1.407740397661280e+01 -1.409141305949836e+01 - -1.410543538386059e+01 -1.411947095729565e+01 -1.413351979216372e+01 -1.414758190504674e+01 -1.416165730817942e+01 - -1.417574599218579e+01 -1.418984794931155e+01 -1.420396319989974e+01 -1.421809176459019e+01 -1.423223363711269e+01 - -1.424638880961032e+01 -1.426055729478944e+01 -1.427473910897708e+01 -1.428893426241975e+01 -1.430314276106135e+01 - -1.431736459971596e+01 -1.433159977568000e+01 -1.434584830730895e+01 -1.436011021230267e+01 -1.437438548467938e+01 - -1.438867411856965e+01 -1.440297613223502e+01 -1.441729154417122e+01 -1.443162034967981e+01 -1.444596254173529e+01 - -1.446031812719803e+01 -1.447468711827448e+01 -1.448906953466952e+01 -1.450346539077074e+01 -1.451787467219810e+01 - -1.453229736674074e+01 -1.454673349963205e+01 -1.456118309651608e+01 -1.457564614723534e+01 -1.459012263904241e+01 - -1.460461258463169e+01 -1.461911600163362e+01 -1.463363290198108e+01 -1.464816329304780e+01 -1.466270716966852e+01 - -1.467726452861927e+01 -1.469183538698022e+01 -1.470641976118071e+01 -1.472101764474266e+01 -1.473562903182180e+01 - -1.475025394201659e+01 -1.476489239431922e+01 -1.477954437985420e+01 -1.479420988900897e+01 -1.480888893709030e+01 - -1.482358154289730e+01 -1.483828771427918e+01 -1.485300745484606e+01 -1.486774076220148e+01 -1.488248763590571e+01 - -1.489724808935241e+01 -1.491202213620220e+01 -1.492680977735018e+01 -1.494161101188853e+01 -1.495642584446314e+01 - -1.497125428281713e+01 -1.498609634152866e+01 -1.500095203243959e+01 -1.501582134961145e+01 -1.503070428834008e+01 - -1.504560086663885e+01 -1.506051110171047e+01 -1.507543498479744e+01 -1.509037250787217e+01 -1.510532369178669e+01 - -1.512028855781273e+01 -1.513526710002122e+01 -1.515025931004586e+01 -1.516526519697226e+01 -1.518028477406786e+01 - -1.519531805387558e+01 -1.521036504514735e+01 -1.522542574219565e+01 -1.524050014105165e+01 -1.525558825906066e+01 - -1.527069011317451e+01 -1.528580569745696e+01 -1.530093500454836e+01 -1.531607804428359e+01 -1.533123483115148e+01 - -1.534640538106230e+01 -1.536158970459035e+01 -1.537678778954449e+01 -1.539199962605270e+01 -1.540722523628471e+01 - -1.542246464244602e+01 -1.543771783484346e+01 -1.545298480379291e+01 -1.546826557154514e+01 -1.548356016030771e+01 - -1.549886856018057e+01 -1.551419075889859e+01 -1.552952676684366e+01 -1.554487659991805e+01 -1.556024027345857e+01 - -1.557561779759322e+01 -1.559100916218038e+01 -1.560641435912106e+01 -1.562183340875659e+01 -1.563726633124305e+01 - -1.565271311755539e+01 -1.566817375858786e+01 -1.568364827409284e+01 -1.569913668435983e+01 -1.571463898296877e+01 - -1.573015516140282e+01 -1.574568522946743e+01 -1.576122920078429e+01 -1.577678708591764e+01 -1.579235889192325e+01 - -1.580794461488044e+01 -1.582354425266206e+01 -1.583915782129173e+01 -1.585478533595468e+01 -1.587042679033195e+01 - -1.588608217713541e+01 -1.590175150670428e+01 -1.591743479377280e+01 -1.593313205302798e+01 -1.594884329356461e+01 - -1.596456850215542e+01 -1.598030766876410e+01 -1.599606081844003e+01 -1.601182797567503e+01 -1.602760912764517e+01 - -1.604340426053651e+01 -1.605921339389068e+01 -1.607503654929621e+01 -1.609087372317365e+01 -1.610672490846679e+01 - -1.612259010938000e+01 -1.613846933535691e+01 -1.615436260553746e+01 -1.617026993400350e+01 -1.618619130490810e+01 - -1.620212670496088e+01 -1.621807616102629e+01 -1.623403970021593e+01 -1.625001731047507e+01 -1.626600897617460e+01 - -1.628201470655392e+01 -1.629803451699528e+01 -1.631406842258372e+01 -1.633011643368945e+01 -1.634617854212047e+01 - -1.636225474110459e+01 -1.637834504811086e+01 -1.639444948009596e+01 -1.641056802772599e+01 -1.642670068226715e+01 - -1.644284746367691e+01 -1.645900839255391e+01 -1.647518346337059e+01 -1.649137266740475e+01 -1.650757600928198e+01 - -1.652379349905581e+01 -1.654002515514406e+01 -1.655627099138395e+01 -1.657253099492616e+01 -1.658880515436409e+01 - -1.660509349074862e+01 -1.662139602569388e+01 -1.663771275060954e+01 -1.665404365442992e+01 -1.667038874639235e+01 - -1.668674804082613e+01 -1.670312155212567e+01 -1.671950928959044e+01 -1.673591124207530e+01 -1.675232740091000e+01 - -1.676875778776886e+01 -1.678520242381186e+01 -1.680166129779755e+01 -1.681813439803682e+01 -1.683462174345131e+01 - -1.685112335404732e+01 -1.686763922355921e+01 -1.688416934305047e+01 -1.690071371917313e+01 -1.691727236387981e+01 - -1.693384529473730e+01 -1.695043252373442e+01 -1.696703403493436e+01 -1.698364981519248e+01 -1.700027989045860e+01 - -1.701692428668450e+01 -1.703358299073511e+01 -1.705025598664567e+01 -1.706694328621936e+01 -1.708364490699094e+01 - -1.710036086165371e+01 -1.711709115711999e+01 -1.713383578201967e+01 -1.715059472804424e+01 -1.716736801741393e+01 - -1.718415567151382e+01 -1.720095767785962e+01 -1.721777402421613e+01 -1.723460473321376e+01 -1.725144982735173e+01 - -1.726830929373925e+01 -1.728518311723097e+01 -1.730207130905323e+01 -1.731897388644410e+01 -1.733589086431708e+01 - -1.735282225151622e+01 -1.736976803493245e+01 -1.738672820398455e+01 -1.740370278015603e+01 -1.742069178532102e+01 - -1.743769521085149e+01 -1.745471304524893e+01 -1.747174529603476e+01 -1.748879197614670e+01 -1.750585310116775e+01 - -1.752292868122209e+01 -1.754001870195336e+01 -1.755712315207324e+01 -1.757424205704595e+01 -1.759137544124289e+01 - -1.760852328791187e+01 -1.762568558032359e+01 -1.764286234296404e+01 -1.766005360135051e+01 -1.767725934391039e+01 - -1.769447955614261e+01 -1.771171424892207e+01 -1.772896343807829e+01 -1.774622713388326e+01 -1.776350534196338e+01 - -1.778079805492016e+01 -1.779810526797336e+01 -1.781542699984077e+01 -1.783276326793605e+01 -1.785011406095838e+01 - -1.786747936642481e+01 -1.788485919583838e+01 -1.790225356596892e+01 -1.791966249066770e+01 -1.793708597750879e+01 - -1.795452401187612e+01 -1.797197658287230e+01 -1.798944371666477e+01 -1.800692543788475e+01 -1.802442172795408e+01 - -1.804193256819016e+01 -1.805945798270200e+01 -1.807699799758296e+01 -1.809455260407236e+01 -1.811212178929598e+01 - -1.812970555877947e+01 -1.814730392419934e+01 -1.816491690343573e+01 -1.818254450889657e+01 -1.820018672489731e+01 - -1.821784353770839e+01 -1.823551496951270e+01 -1.825320104351004e+01 -1.827090175105552e+01 -1.828861707995103e+01 - -1.830634703563002e+01 -1.832409162961503e+01 -1.834185088015348e+01 -1.835962479982180e+01 -1.837741337178776e+01 - -1.839521658191638e+01 -1.841303445627024e+01 -1.843086702044687e+01 -1.844871425798603e+01 -1.846657615155986e+01 - -1.848445272242748e+01 -1.850234399331442e+01 -1.852024995422484e+01 -1.853817059263430e+01 -1.855610591862525e+01 - -1.857405594751762e+01 -1.859202069297440e+01 -1.861000016303027e+01 -1.862799434486363e+01 -1.864600322762024e+01 - -1.866402682917165e+01 -1.868206516860479e+01 -1.870011824114266e+01 -1.871818603889838e+01 -1.873626856540951e+01 - -1.875436582948875e+01 -1.877247784962497e+01 -1.879060463922456e+01 -1.880874618168810e+01 -1.882690246254704e+01 - -1.884507350586227e+01 -1.886325933574866e+01 -1.888145993800745e+01 -1.889967529731236e+01 -1.891790543214035e+01 - -1.893615036295555e+01 -1.895441008436764e+01 -1.897268458788422e+01 -1.899097387845919e+01 -1.900927796546465e+01 - -1.902759686249918e+01 -1.904593057916082e+01 -1.906427910481893e+01 -1.908264243109121e+01 -1.910102057881749e+01 - -1.911941356739387e+01 -1.913782138121961e+01 -1.915624400568942e+01 -1.917468146517671e+01 -1.919313378404767e+01 - -1.921160094766128e+01 -1.923008293912871e+01 -1.924857977157690e+01 -1.926709146357444e+01 -1.928561802544077e+01 - -1.930415946120927e+01 -1.932271575801813e+01 -1.934128690695999e+01 -1.935987293184044e+01 -1.937847385553680e+01 - -1.939708966450047e+01 -1.941572034241033e+01 -1.943436589828115e+01 -1.945302634705033e+01 -1.947170170200994e+01 - -1.949039197138318e+01 -1.950909714476303e+01 -1.952781721398065e+01 -1.954655219845012e+01 -1.956530211609402e+01 - -1.958406695128608e+01 -1.960284668959667e+01 -1.962164135493148e+01 -1.964045097168231e+01 -1.965927552785040e+01 - -1.967811500826448e+01 -1.969696942145404e+01 -1.971583878200212e+01 -1.973472310500559e+01 -1.975362239928199e+01 - -1.977253664801789e+01 -1.979146583743514e+01 -1.981040999152762e+01 -1.982936913462439e+01 -1.984834325462312e+01 - -1.986733233626431e+01 -1.988633638809098e+01 -1.990535542475069e+01 -1.992438946150660e+01 -1.994343850724086e+01 - -1.996250254469571e+01 -1.998158155988759e+01 -2.000067557806942e+01 -2.001978462401460e+01 -2.003890868134189e+01 - -2.005804773353269e+01 -2.007720180467363e+01 -2.009637091866160e+01 -2.011555505802958e+01 -2.013475420367532e+01 - -2.015396837131929e+01 -2.017319758216888e+01 -2.019244184455664e+01 -2.021170116029698e+01 -2.023097551800653e+01 - -2.025026491057744e+01 -2.026956936120177e+01 -2.028888889127859e+01 -2.030822348473533e+01 -2.032757312336421e+01 - -2.034693781788847e+01 -2.036631758558183e+01 -2.038571244098909e+01 -2.040512239225047e+01 -2.042454742461679e+01 - -2.044398752597867e+01 -2.046344271767523e+01 -2.048291302072143e+01 -2.050239842138679e+01 -2.052189890581644e+01 - -2.054141449440303e+01 -2.056094520839277e+01 -2.058049103819856e+01 -2.060005197091200e+01 -2.061962801117254e+01 - -2.063921916971323e+01 -2.065882546409381e+01 -2.067844690614864e+01 -2.069808347798381e+01 -2.071773516441981e+01 - -2.073740199086278e+01 -2.075708398272239e+01 -2.077678112483692e+01 -2.079649339928443e+01 -2.081622081767353e+01 - -2.083596339752241e+01 -2.085572115045732e+01 -2.087549408142252e+01 -2.089528217452614e+01 -2.091508541798258e+01 - -2.093490383726751e+01 -2.095473745703866e+01 -2.097458626142068e+01 -2.099445023367205e+01 -2.101432939411960e+01 - -2.103422376365449e+01 -2.105413332835716e+01 -2.107405807288499e+01 -2.109399801101360e+01 -2.111395316146354e+01 - -2.113392353361706e+01 -2.115390913036233e+01 -2.117390993794961e+01 -2.119392594678185e+01 -2.121395718051052e+01 - -2.123400366165125e+01 -2.125406537492771e+01 -2.127414230292253e+01 -2.129423445744600e+01 -2.131434185603574e+01 - -2.133446450991120e+01 -2.135460242400538e+01 -2.137475558442359e+01 -2.139492398094176e+01 -2.141510763684612e+01 - -2.143530657354728e+01 -2.145552077144329e+01 -2.147575021223202e+01 -2.149599492382317e+01 -2.151625493458459e+01 - -2.153653022850520e+01 -2.155682078515937e+01 -2.157712661084235e+01 -2.159744772002078e+01 -2.161778413312624e+01 - -2.163813586321833e+01 -2.165850288790379e+01 -2.167888518769065e+01 -2.169928279014487e+01 -2.171969572392566e+01 - -2.174012397500749e+01 -2.176056752455845e+01 -2.178102637720577e+01 -2.180150054539059e+01 -2.182199004935065e+01 - -2.184249490264348e+01 -2.186301508430896e+01 -2.188355057625899e+01 -2.190410140641098e+01 -2.192466760199104e+01 - -2.194524914145450e+01 -2.196584600311797e+01 -2.198645821351363e+01 -2.200708580045210e+01 -2.202772874864248e+01 - -2.204838703903658e+01 -2.206906068065864e+01 -2.208974968965916e+01 -2.211045408262128e+01 -2.213117386881762e+01 - -2.215190902784613e+01 -2.217265954271720e+01 -2.219342543976576e+01 -2.221420674565993e+01 -2.223500344507609e+01 - -2.225581551916326e+01 -2.227664297695268e+01 -2.229748583458740e+01 -2.231834410877561e+01 -2.233921780886325e+01 - -2.236010691418214e+01 -2.238101140757746e+01 -2.240193131596196e+01 -2.242286666626994e+01 -2.244381744145418e+01 - -2.246478362333585e+01 -2.248576523319086e+01 -2.250676229308250e+01 -2.252777478876882e+01 -2.254880270395783e+01 - -2.256984605046237e+01 -2.259090484578745e+01 -2.261197910210208e+01 -2.263306882483333e+01 -2.265417399777652e+01 - -2.267529460825966e+01 -2.269643067937303e+01 -2.271758223358744e+01 -2.273874925513337e+01 -2.275993172840441e+01 - -2.278112967668665e+01 -2.280234312326570e+01 -2.282357205253301e+01 -2.284481644618636e+01 -2.286607631404299e+01 - -2.288735167241803e+01 -2.290864253549898e+01 -2.292994891082159e+01 -2.295127078144212e+01 -2.297260813386354e+01 - -2.299396099285480e+01 -2.301532938287575e+01 -2.303671328888409e+01 -2.305811269234469e+01 -2.307952760025338e+01 - -2.310095802706863e+01 -2.312240399156859e+01 -2.314386550544134e+01 -2.316534254769484e+01 -2.318683510020089e+01 - -2.320834318896662e+01 -2.322986684000025e+01 -2.325140603517923e+01 -2.327296075598023e+01 -2.329453102640753e+01 - -2.331611687084991e+01 -2.333771827270656e+01 -2.335933521295700e+01 -2.338096770389138e+01 -2.340261576396985e+01 - -2.342427940502197e+01 -2.344595863230511e+01 -2.346765343141823e+01 -2.348936379112492e+01 -2.351108973250527e+01 - -2.353283127622654e+01 -2.355458840898814e+01 -2.357636111469370e+01 -2.359814940003157e+01 -2.361995327887107e+01 - -2.364177277102066e+01 -2.366360788867084e+01 -2.368545860760097e+01 -2.370732490730504e+01 -2.372920681854641e+01 - -2.375110437181196e+01 -2.377301754521346e+01 -2.379494631547129e+01 -2.381689070611525e+01 -2.383885074279985e+01 - -2.386082641286912e+01 -2.388281770027697e+01 -2.390482461372720e+01 -2.392684716763744e+01 -2.394888537453080e+01 - -2.397093924094647e+01 -2.399300875138237e+01 -2.401509389381072e+01 -2.403719469214220e+01 -2.405931116939521e+01 - -2.408144330908079e+01 -2.410359109227195e+01 -2.412575452979684e+01 -2.414793363861520e+01 -2.417012843045825e+01 - -2.419233891107258e+01 -2.421456506749473e+01 -2.423680688969797e+01 -2.425906439811232e+01 -2.428133761196757e+01 - -2.430362651523593e+01 -2.432593109247103e+01 -2.434825136580965e+01 -2.437058735754595e+01 -2.439293905302052e+01 - -2.441530643508021e+01 -2.443768951355032e+01 -2.446008830475372e+01 -2.448250282402539e+01 -2.450493307947941e+01 - -2.452737905133441e+01 -2.454984072340254e+01 -2.457231812176549e+01 -2.459481127247106e+01 -2.461732015916192e+01 - -2.463984476198997e+01 -2.466238508954903e+01 -2.468494115731883e+01 -2.470751297988127e+01 -2.473010056541401e+01 - -2.475270389737600e+01 -2.477532296279144e+01 -2.479795778766421e+01 -2.482060839605179e+01 -2.484327476524651e+01 - -2.486595687297807e+01 -2.488865474549064e+01 -2.491136841050829e+01 -2.493409785316058e+01 -2.495684305468689e+01 - -2.497960402336061e+01 -2.500238077436705e+01 -2.502517332350563e+01 -2.504798167938967e+01 -2.507080582127416e+01 - -2.509364573240812e+01 -2.511650144137505e+01 -2.513937297643642e+01 -2.516226031923135e+01 -2.518516344740990e+01 - -2.520808236928804e+01 -2.523101710100030e+01 -2.525396765928963e+01 -2.527693405405919e+01 -2.529991626724470e+01 - -2.532291428361040e+01 -2.534592812720204e+01 -2.536895782110043e+01 -2.539200334524508e+01 -2.541506468057373e+01 - -2.543814185515816e+01 -2.546123489657537e+01 -2.548434378328921e+01 -2.550746849096137e+01 -2.553060903315797e+01 - -2.555376543163097e+01 -2.557693770297151e+01 -2.560012585444837e+01 -2.562332986120158e+01 -2.564654970308929e+01 - -2.566978541097076e+01 -2.569303701597250e+01 -2.571630449928904e+01 -2.573958783754457e+01 -2.576288703901380e+01 - -2.578620212017663e+01 -2.580953309868325e+01 -2.583287998467666e+01 -2.585624275710073e+01 -2.587962139846310e+01 - -2.590301593672573e+01 -2.592642639921134e+01 -2.594985276523152e+01 -2.597329501305775e+01 -2.599675316481207e+01 - -2.602022724494944e+01 -2.604371724340627e+01 -2.606722314554395e+01 -2.609074495294231e+01 -2.611428267453130e+01 - -2.613783633242288e+01 -2.616140594232113e+01 -2.618499148111656e+01 -2.620859292804694e+01 -2.623221031055255e+01 - -2.625584365675950e+01 -2.627949294933480e+01 -2.630315816707157e+01 -2.632683931872623e+01 -2.635053642045652e+01 - -2.637424948806206e+01 -2.639797853015353e+01 -2.642172352694394e+01 -2.644548446269175e+01 -2.646926136623515e+01 - -2.649305426487780e+01 -2.651686313520573e+01 -2.654068795336410e+01 -2.656452874445229e+01 -2.658838553565089e+01 - -2.661225831351167e+01 -2.663614706041860e+01 -2.666005178271351e+01 -2.668397249386109e+01 -2.670790921185966e+01 - -2.673186194785124e+01 -2.675583068101895e+01 -2.677981539336416e+01 -2.680381611012034e+01 -2.682783285712106e+01 - -2.685186561936856e+01 -2.687591437786270e+01 -2.689997913842517e+01 -2.692405991477839e+01 -2.694815672742597e+01 - -2.697226958936361e+01 -2.699639847677425e+01 -2.702054336911223e+01 -2.704470429573021e+01 -2.706888128546201e+01 - -2.709307431516761e+01 -2.711728336172764e+01 -2.714150845407871e+01 -2.716574962162754e+01 -2.719000684360529e+01 - -2.721428009605862e+01 -2.723856939247152e+01 -2.726287475352885e+01 -2.728719619128178e+01 -2.731153370993099e+01 - -2.733588729090867e+01 -2.736025692081293e+01 -2.738464262967399e+01 -2.740904444482641e+01 -2.743346233939021e+01 - -2.745789628706843e+01 -2.748234631811058e+01 -2.750681246441337e+01 -2.753129470791622e+01 -2.755579302585287e+01 - -2.758030742659158e+01 -2.760483792680023e+01 -2.762938454521084e+01 -2.765394729250735e+01 -2.767852614511706e+01 - -2.770312108289846e+01 -2.772773213369129e+01 -2.775235932608502e+01 -2.777700264368704e+01 -2.780166206614083e+01 - -2.782633760221619e+01 -2.785102926812099e+01 -2.787573708068912e+01 -2.790046104903706e+01 -2.792520115078565e+01 - -2.794995736764946e+01 -2.797472972921345e+01 -2.799951826412358e+01 -2.802432294939970e+01 -2.804914376169005e+01 - -2.807398072778233e+01 -2.809883387567351e+01 -2.812370318805837e+01 -2.814858864438241e+01 -2.817349025639583e+01 - -2.819840804241009e+01 -2.822334201467696e+01 -2.824829217820057e+01 -2.827325851505399e+01 -2.829824101147483e+01 - -2.832323969328987e+01 -2.834825458594292e+01 -2.837328567375688e+01 -2.839833293713809e+01 -2.842339638194745e+01 - -2.844847602232610e+01 -2.847357188008160e+01 -2.849868396869187e+01 -2.852381226064981e+01 -2.854895673259501e+01 - -2.857411741873861e+01 -2.859929435285462e+01 -2.862448750939692e+01 -2.864969686163745e+01 -2.867492243744038e+01 - -2.870016426611871e+01 -2.872542232818885e+01 -2.875069660076976e+01 -2.877598709618692e+01 -2.880129383482867e+01 - -2.882661683412842e+01 -2.885195610246809e+01 -2.887731161497835e+01 -2.890268335136361e+01 -2.892807134287440e+01 - -2.895347562064698e+01 -2.897889616381469e+01 -2.900433294736006e+01 -2.902978598166526e+01 -2.905525528595928e+01 - -2.908074087945912e+01 -2.910624277257485e+01 -2.913176094050105e+01 -2.915729536236611e+01 -2.918284606824940e+01 - -2.920841308797334e+01 -2.923399639938179e+01 -2.925959597987842e+01 -2.928521185708459e+01 -2.931084405942344e+01 - -2.933649256830759e+01 -2.936215736109871e+01 -2.938783844596477e+01 -2.941353583979598e+01 -2.943924956356517e+01 - -2.946497963001566e+01 -2.949072601489006e+01 -2.951648869675137e+01 -2.954226770244480e+01 -2.956806305999476e+01 - -2.959387475386040e+01 -2.961970276467950e+01 -2.964554710136948e+01 -2.967140778023144e+01 -2.969728481882160e+01 - -2.972317822671904e+01 -2.974908798033929e+01 -2.977501406036931e+01 -2.980095649774566e+01 -2.982691532231985e+01 - -2.985289050935425e+01 -2.987888203414534e+01 -2.990488992671488e+01 -2.993091421806754e+01 -2.995695488841446e+01 - -2.998301191396682e+01 -3.000908530572931e+01 -3.003517508294127e+01 -3.006128126298706e+01 -3.008740385472813e+01 - -3.011354283478899e+01 -3.013969818396866e+01 -3.016586993200092e+01 -3.019205810852835e+01 -3.021826269389396e+01 - -3.024448366459688e+01 -3.027072103106001e+01 -3.029697481234801e+01 -3.032324502816885e+01 -3.034953168930138e+01 - -3.037583477016444e+01 -3.040215424919064e+01 -3.042849015722735e+01 -3.045484252487287e+01 -3.048121132931426e+01 - -3.050759654718701e+01 -3.053399820633122e+01 -3.056041633582694e+01 -3.058685091850949e+01 -3.061330193277164e+01 - -3.063976938548045e+01 -3.066625329189824e+01 -3.069275367239408e+01 -3.071927054017274e+01 -3.074580387467516e+01 - -3.077235365736276e+01 -3.079891991154272e+01 -3.082550266154129e+01 -3.085210189391538e+01 -3.087871759159065e+01 - -3.090534976073683e+01 -3.093199841535169e+01 -3.095866357750086e+01 -3.098534526117247e+01 -3.101204343997652e+01 - -3.103875809113482e+01 -3.106548924669440e+01 -3.109223693806243e+01 -3.111900113926174e+01 -3.114578182447812e+01 - -3.117257902593346e+01 -3.119939277712214e+01 -3.122622305859262e+01 -3.125306984560579e+01 -3.127993314521812e+01 - -3.130681297362548e+01 -3.133370935178603e+01 -3.136062229292185e+01 -3.138755177454848e+01 -3.141449777743489e+01 - -3.144146033107010e+01 -3.146843946420585e+01 -3.149543515392452e+01 -3.152244737446985e+01 -3.154947614039987e+01 - -3.157652147508332e+01 -3.160358339681746e+01 -3.163066191390917e+01 -3.165775699977537e+01 -3.168486863280270e+01 - -3.171199684614663e+01 -3.173914167265754e+01 -3.176630308919665e+01 -3.179348107134120e+01 -3.182067564552154e+01 - -3.184788683989369e+01 -3.187511463866380e+01 -3.190235902163426e+01 -3.192961999494226e+01 -3.195689757352222e+01 - -3.198419178116283e+01 -3.201150263346307e+01 -3.203883010440887e+01 -3.206617417058478e+01 -3.209353486058297e+01 - -3.212091220418486e+01 -3.214830618392138e+01 -3.217571677868305e+01 -3.220314400004898e+01 -3.223058786708538e+01 - -3.225804839611857e+01 -3.228552559489243e+01 -3.231301943956095e+01 -3.234052991162765e+01 -3.236805704558397e+01 - -3.239560087404328e+01 -3.242316136911894e+01 -3.245073850255218e+01 -3.247833230509534e+01 -3.250594280965240e+01 - -3.253356999872297e+01 -3.256121385028732e+01 -3.258887437465276e+01 -3.261655158960600e+01 -3.264424551052439e+01 - -3.267195614529539e+01 -3.269968347425627e+01 -3.272742748229857e+01 -3.275518820008119e+01 -3.278296565603427e+01 - -3.281075982390590e+01 -3.283857067801981e+01 -3.286639824968410e+01 -3.289424257141810e+01 -3.292210362360176e+01 - -3.294998138240963e+01 -3.297787585933321e+01 -3.300578707421773e+01 -3.303371504500630e+01 -3.306165978102434e+01 - -3.308962125902853e+01 -3.311759946003357e+01 -3.314559441465483e+01 -3.317360615365304e+01 -3.320163465877013e+01 - -3.322967990687330e+01 -3.325774190434956e+01 -3.328582066713852e+01 -3.331391621987054e+01 -3.334202857831301e+01 - -3.337015771409062e+01 -3.339830360273710e+01 -3.342646627956469e+01 -3.345464577921614e+01 -3.348284207387808e+01 - -3.351105513572078e+01 -3.353928499930519e+01 -3.356753169996216e+01 -3.359579521371194e+01 -3.362407551222610e+01 - -3.365237260909204e+01 -3.368068652715969e+01 -3.370901728441355e+01 -3.373736488954338e+01 -3.376572931892538e+01 - -3.379411055342771e+01 -3.382250862419983e+01 -3.385092356238306e+01 -3.387935534880526e+01 -3.390780395979943e+01 - -3.393626940403256e+01 -3.396475169950308e+01 -3.399325086920118e+01 -3.402176692682492e+01 -3.405029984391190e+01 - -3.407884959628061e+01 -3.410741621903333e+01 -3.413599974690003e+01 -3.416460015383780e+01 -3.419321741347679e+01 - -3.422185155891206e+01 -3.425050262370409e+01 -3.427917058381036e+01 -3.430785541111823e+01 -3.433655711883738e+01 - -3.436527572977491e+01 -3.439401126380553e+01 -3.442276373145798e+01 -3.445153310880944e+01 -3.448031937598221e+01 - -3.450912256373026e+01 -3.453794270224409e+01 -3.456677976882821e+01 -3.459563373771100e+01 -3.462450462370172e+01 - -3.465339245071625e+01 -3.468229723851619e+01 -3.471121899611902e+01 -3.474015769371995e+01 -3.476911330776019e+01 - -3.479808587848705e+01 -3.482707544447295e+01 -3.485608197378501e+01 -3.488510543365825e+01 -3.491414585850467e+01 - -3.494320328527482e+01 -3.497227769389696e+01 -3.500136905869145e+01 -3.503047738856913e+01 -3.505960270226024e+01 - -3.508874502318216e+01 -3.511790436512474e+01 -3.514708069868058e+01 -3.517627399907308e+01 -3.520548430324607e+01 - -3.523471164812467e+01 -3.526395600883895e+01 -3.529321735592740e+01 -3.532249570335686e+01 -3.535179107461137e+01 - -3.538110348781549e+01 -3.541043295179184e+01 -3.543977944351469e+01 -3.546914294470585e+01 -3.549852348792567e+01 - -3.552792110371767e+01 -3.555733576371960e+01 -3.558676744035331e+01 -3.561621616808287e+01 -3.564568198278825e+01 - -3.567516486397158e+01 -3.570466478590109e+01 -3.573418175828719e+01 -3.576371580017962e+01 -3.579326693254331e+01 - -3.582283516733191e+01 -3.585242047853867e+01 -3.588202284498269e+01 -3.591164230274704e+01 -3.594127888660625e+01 - -3.597093256883734e+01 -3.600060331833949e+01 -3.603029115299790e+01 -3.605999610029281e+01 -3.608971817709886e+01 - -3.611945738978410e+01 -3.614921371329605e+01 -3.617898712799953e+01 -3.620877766734910e+01 -3.623858536391516e+01 - -3.626841019364145e+01 -3.629825213180558e+01 -3.632811120764664e+01 -3.635798745148868e+01 -3.638788084403422e+01 - -3.641779136227628e+01 -3.644771901799147e+01 -3.647766383142195e+01 -3.650762582188893e+01 -3.653760499949427e+01 - -3.656760133838370e+01 -3.659761481766282e+01 -3.662764547223315e+01 -3.665769333671685e+01 -3.668775838882340e+01 - -3.671784060113342e+01 -3.674793998262476e+01 -3.677805655273779e+01 -3.680819033636626e+01 -3.683834134900049e+01 - -3.686850956306390e+01 -3.689869495454472e+01 -3.692889755675729e+01 -3.695911740229619e+01 -3.698935446355054e+01 - -3.701960871343802e+01 -3.704988018719579e+01 -3.708016892120266e+01 -3.711047489408478e+01 -3.714079807933708e+01 - -3.717113848768184e+01 -3.720149613882988e+01 -3.723187105121882e+01 -3.726226323497034e+01 -3.729267266821555e+01 - -3.732309933333587e+01 -3.735354326170426e+01 -3.738400448395760e+01 -3.741448297879693e+01 -3.744497872108128e+01 - -3.747549172223736e+01 -3.750602200310610e+01 -3.753656958561755e+01 -3.756713448177913e+01 -3.759771666281819e+01 - -3.762831610507856e+01 -3.765893284615005e+01 -3.768956692232328e+01 -3.772021830344675e+01 -3.775088695941269e+01 - -3.778157292673024e+01 -3.781227624306894e+01 -3.784299688412320e+01 -3.787373482086582e+01 -3.790449006735824e+01 - -3.793526264738479e+01 -3.796605258053289e+01 -3.799685987630166e+01 -3.802768450803411e+01 -3.805852645435349e+01 - -3.808938575116029e+01 -3.812026243387959e+01 -3.815115647875793e+01 -3.818206785737669e+01 -3.821299658183555e+01 - -3.824394267407146e+01 -3.827490615485264e+01 -3.830588703573063e+01 -3.833688529255877e+01 -3.836790090523419e+01 - -3.839893390552727e+01 -3.842998432385276e+01 -3.846105213333004e+01 -3.849213730842061e+01 -3.852323988624988e+01 - -3.855435990371658e+01 -3.858549733414936e+01 -3.861665214665468e+01 -3.864782435702053e+01 -3.867901399128823e+01 - -3.871022106983104e+01 -3.874144560188923e+01 -3.877268755783931e+01 -3.880394691415978e+01 -3.883522371060106e+01 - -3.886651798555487e+01 -3.889782970870629e+01 -3.892915884903668e+01 -3.896050544141922e+01 -3.899186952243698e+01 - -3.902325106962145e+01 -3.905465005558139e+01 -3.908606649228560e+01 -3.911750040150871e+01 -3.914895180488885e+01 - -3.918042071436301e+01 -3.921190710320024e+01 -3.924341094905042e+01 -3.927493228575462e+01 -3.930647114756201e+01 - -3.933802751416320e+01 -3.936960136044893e+01 -3.940119269666864e+01 -3.943280154239230e+01 -3.946442791911308e+01 - -3.949607183932866e+01 -3.952773327763106e+01 -3.955941221301939e+01 -3.959110868002649e+01 -3.962282271157864e+01 - -3.965455427864192e+01 -3.968630335291520e+01 -3.971806997098832e+01 -3.974985417066340e+01 -3.978165592970123e+01 - -3.981347522024374e+01 -3.984531205199855e+01 -3.987716644515135e+01 -3.990903842423468e+01 -3.994092800366619e+01 - -3.997283515305731e+01 -4.000475984705376e+01 -4.003670212524431e+01 -4.006866202678586e+01 -4.010063952416471e+01 - -4.013263458527370e+01 -4.016464722630246e+01 -4.019667747391531e+01 -4.022872534837892e+01 -4.026079085897078e+01 - -4.029287397740929e+01 -4.032497468131004e+01 -4.035709300943645e+01 -4.038922899883853e+01 -4.042138261856475e+01 - -4.045355383733334e+01 -4.048574269054266e+01 -4.051794921541258e+01 -4.055017338976896e+01 -4.058241518694505e+01 - -4.061467462169752e+01 -4.064695171778673e+01 -4.067924649356458e+01 -4.071155895737036e+01 -4.074388908290122e+01 - -4.077623684962312e+01 -4.080860229471885e+01 -4.084098545450960e+01 -4.087338630415373e+01 -4.090580481395003e+01 - -4.093824099592192e+01 -4.097069487270115e+01 -4.100316646762842e+01 -4.103565579436854e+01 -4.106816282717386e+01 - -4.110068754422534e+01 -4.113322997883087e+01 -4.116579016300655e+01 -4.119836806847471e+01 -4.123096366815907e+01 - -4.126357700008218e+01 -4.129620810254014e+01 -4.132885694982463e+01 -4.136152351139461e+01 -4.139420780138244e+01 - -4.142690984447184e+01 -4.145962966287846e+01 -4.149236726828771e+01 -4.152512263273182e+01 -4.155789573295193e+01 - -4.159068660417814e+01 -4.162349528189675e+01 -4.165632174413023e+01 -4.168916596438000e+01 -4.172202795552684e+01 - -4.175490773972726e+01 -4.178780533686147e+01 -4.182072075745918e+01 -4.185365397692470e+01 -4.188660497553830e+01 - -4.191957378820953e+01 -4.195256044830271e+01 -4.198556492837179e+01 -4.201858720098863e+01 -4.205162729960676e+01 - -4.208468525919077e+01 -4.211776105986812e+01 -4.215085467691669e+01 -4.218396612105321e+01 -4.221709541226407e+01 - -4.225024257217616e+01 -4.228340761361360e+01 -4.231659051254899e+01 -4.234979124870078e+01 -4.238300985362200e+01 - -4.241624635885866e+01 -4.244950074409413e+01 -4.248277298525672e+01 -4.251606309511715e+01 -4.254937109530931e+01 - -4.258269700607782e+01 -4.261604083828603e+01 -4.264940256666174e+01 -4.268278217100897e+01 -4.271617968757233e+01 - -4.274959515039267e+01 -4.278302852825576e+01 -4.281647979114838e+01 -4.284994897911630e+01 -4.288343613339240e+01 - -4.291694122989936e+01 -4.295046423857267e+01 -4.298400517070971e+01 -4.301756404788966e+01 -4.305114089145757e+01 - -4.308473571388112e+01 -4.311834849235274e+01 -4.315197920801049e+01 -4.318562789305037e+01 -4.321929457904871e+01 - -4.325297924404543e+01 -4.328668186207582e+01 -4.332040244469275e+01 -4.335414101381126e+01 -4.338789759527743e+01 - -4.342167220389723e+01 -4.345546480638487e+01 -4.348927537558045e+01 -4.352310395691921e+01 -4.355695059370569e+01 - -4.359081524812669e+01 -4.362469788222823e+01 -4.365859853861065e+01 -4.369251726260594e+01 -4.372645402991838e+01 - -4.376040880917880e+01 -4.379438161035186e+01 -4.382837245512241e+01 -4.386238137072252e+01 -4.389640837367813e+01 - -4.393045343214298e+01 -4.396451651875527e+01 -4.399859767246311e+01 -4.403269693263155e+01 -4.406681427398399e+01 - -4.410094966630350e+01 -4.413510312425358e+01 -4.416927467295284e+01 -4.420346433446015e+01 -4.423767212069691e+01 - -4.427189800609401e+01 -4.430614196966567e+01 -4.434040404624994e+01 -4.437468426893484e+01 -4.440898260798443e+01 - -4.444329903479183e+01 -4.447763358808973e+01 -4.451198630763288e+01 -4.454635716992501e+01 -4.458074614621454e+01 - -4.461515324997958e+01 -4.464957850449220e+01 -4.468402192997090e+01 -4.471848353715485e+01 -4.475296330191956e+01 - -4.478746120505344e+01 -4.482197728186011e+01 -4.485651156648301e+01 -4.489106403390974e+01 -4.492563465506775e+01 - -4.496022344379944e+01 -4.499483042484561e+01 -4.502945562362576e+01 -4.506409905435962e+01 -4.509876068578905e+01 - -4.513344049220396e+01 -4.516813851556444e+01 -4.520285479589762e+01 -4.523758929782897e+01 -4.527234198687941e+01 - -4.530711290755342e+01 -4.534190210524451e+01 -4.537670954991925e+01 -4.541153520580425e+01 -4.544637908959269e+01 - -4.548124122972980e+01 -4.551612164920255e+01 -4.555102035951307e+01 -4.558593733168242e+01 -4.562087254236648e+01 - -4.565582603124118e+01 -4.569079783605451e+01 -4.572578792382265e+01 -4.576079626235065e+01 -4.579582289333027e+01 - -4.583086785976433e+01 -4.586593113601344e+01 -4.590101269036680e+01 -4.593611253546989e+01 -4.597123069530716e+01 - -4.600636719486254e+01 -4.604152204856955e+01 -4.607669522766013e+01 -4.611188670797630e+01 -4.614709652700154e+01 - -4.618232472227299e+01 -4.621757126990104e+01 -4.625283614113306e+01 -4.628811934919114e+01 -4.632342091751210e+01 - -4.635874086841728e+01 -4.639407921460932e+01 -4.642943593143147e+01 -4.646481099859044e+01 -4.650020445060623e+01 - -4.653561632090474e+01 -4.657104658372261e+01 -4.660649521327068e+01 -4.664196224284595e+01 -4.667744770698098e+01 - -4.671295158606459e+01 -4.674847385553061e+01 -4.678401452513644e+01 -4.681957361522331e+01 -4.685515115414413e+01 - -4.689074715945064e+01 -4.692636159747788e+01 -4.696199443933372e+01 -4.699764572643400e+01 -4.703331550121288e+01 - -4.706900373987032e+01 -4.710471041222129e+01 -4.714043552877479e+01 -4.717617911151273e+01 -4.721194118761495e+01 - -4.724772177397794e+01 -4.728352084116666e+01 -4.731933836391387e+01 -4.735517437995513e+01 -4.739102892624472e+01 - -4.742690197360956e+01 -4.746279349304486e+01 -4.749870352234630e+01 -4.753463210070628e+01 -4.757057920610364e+01 - -4.760654481072343e+01 -4.764252892478859e+01 -4.767853156968457e+01 -4.771455277340900e+01 -4.775059255327958e+01 - -4.778665087728216e+01 -4.782272771801416e+01 -4.785882311585065e+01 -4.789493711157514e+01 -4.793106967982698e+01 - -4.796722079021173e+01 -4.800339045834357e+01 -4.803957871014897e+01 -4.807578556679541e+01 -4.811201103905631e+01 - -4.814825510088780e+01 -4.818451773166895e+01 -4.822079896928767e+01 -4.825709884980719e+01 -4.829341734348342e+01 - -4.832975442115909e+01 -4.836611012183125e+01 -4.840248448526336e+01 -4.843887748613056e+01 -4.847528909416636e+01 - -4.851171932442625e+01 -4.854816820273300e+01 -4.858463575265701e+01 -4.862112198691646e+01 -4.865762687707282e+01 - -4.869415040003414e+01 -4.873069259525141e+01 -4.876725350118260e+01 -4.880383308977095e+01 -4.884043132904604e+01 - -4.887704823789731e+01 -4.891368384608068e+01 -4.895033817595851e+01 -4.898701123776245e+01 -4.902370300059485e+01 - -4.906041344002308e+01 -4.909714259860375e+01 -4.913389051725400e+01 -4.917065716334413e+01 -4.920744250429804e+01 - -4.924424658130064e+01 -4.928106943700116e+01 -4.931791104614518e+01 -4.935477137752828e+01 -4.939165044404930e+01 - -4.942854827009338e+01 -4.946546488188807e+01 -4.950240029454247e+01 -4.953935447684974e+01 -4.957632740294361e+01 - -4.961331911463601e+01 -4.965032965315336e+01 -4.968735898970213e+01 -4.972440709120082e+01 -4.976147397743583e+01 - -4.979855967878247e+01 -4.983566421510402e+01 -4.987278759472007e+01 -4.990992979028766e+01 -4.994709078100569e+01 - -4.998427060790318e+01 -5.002146930959274e+01 -5.005868685319148e+01 -5.009592320640078e+01 -5.013317841075434e+01 - -5.017045250915469e+01 -5.020774547614742e+01 -5.024505728017924e+01 -5.028238793365752e+01 -5.031973746104961e+01 - -5.035710589110189e+01 -5.039449324090066e+01 -5.043189947661289e+01 -5.046932456973549e+01 -5.050676856400442e+01 - -5.054423150327239e+01 -5.058171335962052e+01 -5.061921409929316e+01 -5.065673373695915e+01 -5.069427229950105e+01 - -5.073182981423184e+01 -5.076940629607507e+01 -5.080700170996615e+01 -5.084461602753602e+01 -5.088224929718589e+01 - -5.091990156525010e+01 -5.095757279302548e+01 -5.099526294209112e+01 -5.103297206019221e+01 -5.107070019605169e+01 - -5.110844731613729e+01 -5.114621338143406e+01 -5.118399841325091e+01 -5.122180244526444e+01 -5.125962550029841e+01 - -5.129746758802490e+01 -5.133532867636215e+01 -5.137320874011100e+01 -5.141110782335645e+01 -5.144902596945006e+01 - -5.148696314952589e+01 -5.152491932947918e+01 -5.156289452646703e+01 -5.160088876945014e+01 -5.163890208334180e+01 - -5.167693448081514e+01 -5.171498592963017e+01 -5.175305640369855e+01 -5.179114594645165e+01 -5.182925460014935e+01 - -5.186738233284598e+01 -5.190552911234031e+01 -5.194369497961412e+01 -5.198187997663295e+01 -5.202008407611459e+01 - -5.205830724580739e+01 -5.209654950282933e+01 -5.213481087573764e+01 -5.217309138947744e+01 -5.221139105690054e+01 - -5.224970984609732e+01 -5.228804773087789e+01 -5.232640475269200e+01 -5.236478095346914e+01 -5.240317630941821e+01 - -5.244159079031952e+01 -5.248002440595931e+01 -5.251847717885386e+01 -5.255694914243367e+01 -5.259544031823210e+01 - -5.263395066927961e+01 -5.267248016335085e+01 -5.271102884570031e+01 -5.274959676081755e+01 -5.278818387265291e+01 - -5.282679014593192e+01 -5.286541562901994e+01 -5.290406037048660e+01 -5.294272433607927e+01 -5.298140748616263e+01 - -5.302010984239256e+01 -5.305883143892672e+01 -5.309757229863885e+01 -5.313633243133304e+01 -5.317511180581835e+01 - -5.321391039785607e+01 -5.325272825201081e+01 -5.329156541074357e+01 -5.333042183929739e+01 -5.336929750308754e+01 - -5.340819244543594e+01 -5.344710671111962e+01 -5.348604027282968e+01 -5.352499309722418e+01 -5.356396519891433e+01 - -5.360295660504364e+01 -5.364196734493171e+01 -5.368099743556814e+01 -5.372004684244607e+01 -5.375911553606044e+01 - -5.379820355840945e+01 -5.383731095277006e+01 -5.387643769603123e+01 -5.391558375867469e+01 -5.395474915194053e+01 - -5.399393389872404e+01 -5.403313802778240e+01 -5.407236155707715e+01 -5.411160445552515e+01 -5.415086669663323e+01 - -5.419014832131279e+01 -5.422944936941720e+01 -5.426876980916325e+01 -5.430810960961936e+01 -5.434746881489674e+01 - -5.438684746929877e+01 -5.442624554285502e+01 -5.446566300018413e+01 -5.450509985853421e+01 -5.454455614758906e+01 - -5.458403189414573e+01 -5.462352711279953e+01 -5.466304177222543e+01 -5.470257584656953e+01 -5.474212937778257e+01 - -5.478170240720980e+01 -5.482129490597043e+01 -5.486090684084346e+01 -5.490053823147309e+01 -5.494018910890276e+01 - -5.497985949690793e+01 -5.501954940653937e+01 -5.505925880521750e+01 -5.509898766755921e+01 -5.513873604059781e+01 - -5.517850396943321e+01 -5.521829141901578e+01 -5.525809835354192e+01 -5.529792481434151e+01 -5.533777084523449e+01 - -5.537763642286803e+01 -5.541752151714192e+01 -5.545742613813913e+01 -5.549735030880384e+01 -5.553729406334213e+01 - -5.557725742375872e+01 -5.561724035199087e+01 -5.565724281465346e+01 -5.569726485713910e+01 -5.573730652628086e+01 - -5.577736779589668e+01 -5.581744863307357e+01 -5.585754905099014e+01 -5.589766907536871e+01 -5.593780873601526e+01 - -5.597796805069111e+01 -5.601814698489535e+01 -5.605834550959182e+01 -5.609856366986563e+01 -5.613880151023810e+01 - -5.617905899885479e+01 -5.621933610311022e+01 -5.625963286377015e+01 -5.629994932270948e+01 -5.634028545286861e+01 - -5.638064122221132e+01 -5.642101664772899e+01 -5.646141175844968e+01 -5.650182658252075e+01 -5.654226113528433e+01 - -5.658271538174220e+01 -5.662318929319503e+01 -5.666368291647893e+01 -5.670419629786259e+01 -5.674472940580990e+01 - -5.678528220346420e+01 -5.682585471049146e+01 -5.686644695909487e+01 -5.690705897510426e+01 -5.694769077129006e+01 - -5.698834231455854e+01 -5.702901357847642e+01 -5.706970460911611e+01 -5.711041545084194e+01 -5.715114606868026e+01 - -5.719189642778805e+01 -5.723266657318249e+01 -5.727345655110785e+01 -5.731426633285666e+01 -5.735509588339112e+01 - -5.739594521730356e+01 -5.743681436264626e+01 -5.747770335168147e+01 -5.751861220364783e+01 -5.755954088147938e+01 - -5.760048935348805e+01 -5.764145766580183e+01 -5.768244586550730e+01 -5.772345392571002e+01 -5.776448181276131e+01 - -5.780552953997691e+01 -5.784659713354442e+01 -5.788768462417462e+01 -5.792879202998626e+01 -5.796991931420698e+01 - -5.801106644664837e+01 -5.805223347834903e+01 -5.809342045860209e+01 -5.813462734849197e+01 -5.817585410820936e+01 - -5.821710078257841e+01 -5.825836741928538e+01 -5.829965399283203e+01 -5.834096047087346e+01 -5.838228686686274e+01 - -5.842363320676851e+01 -5.846499952082397e+01 -5.850638582715609e+01 -5.854779209120221e+01 -5.858921828442874e+01 - -5.863066445510763e+01 -5.867213065032231e+01 -5.871361683559694e+01 -5.875512297138874e+01 -5.879664907944645e+01 - -5.883819519466417e+01 -5.887976134322624e+01 -5.892134753756825e+01 -5.896295374384051e+01 -5.900457993500612e+01 - -5.904622615756436e+01 -5.908789245663575e+01 -5.912957879828990e+01 -5.917128514850664e+01 -5.921301155195771e+01 - -5.925475805384439e+01 -5.929652462279476e+01 -5.933831122286624e+01 -5.938011787640643e+01 -5.942194461763230e+01 - -5.946379146994821e+01 -5.950565844408734e+01 -5.954754551091072e+01 -5.958945264733813e+01 -5.963137989439624e+01 - -5.967332729249499e+01 -5.971529481547052e+01 -5.975728243227523e+01 -5.979929015889982e+01 -5.984131802305070e+01 - -5.988336605225896e+01 -5.992543426246962e+01 -5.996752262345901e+01 -6.000963111046766e+01 -6.005175976676178e+01 - -6.009390863383608e+01 -6.013607767807394e+01 -6.017826686618813e+01 -6.022047624132026e+01 -6.026270584835797e+01 - -6.030495566274465e+01 -6.034722565381767e+01 -6.038951583593452e+01 -6.043182623512069e+01 -6.047415687905394e+01 - -6.051650778421003e+01 -6.055887892060463e+01 -6.060127026325783e+01 -6.064368185366749e+01 -6.068611373308907e+01 - -6.072856587533070e+01 -6.077103824887340e+01 -6.081353086833690e+01 -6.085604376132918e+01 -6.089857696127247e+01 - -6.094113048823596e+01 -6.098370430306234e+01 -6.102629837247437e+01 -6.106891274594116e+01 -6.111154747264118e+01 - -6.115420251784390e+01 -6.119687784580902e+01 -6.123957350066591e+01 -6.128228952841628e+01 -6.132502590268162e+01 - -6.136778259056138e+01 -6.141055960544676e+01 -6.145335697380811e+01 -6.149617472814099e+01 -6.153901288864162e+01 - -6.158187142028389e+01 -6.162475029314290e+01 -6.166764955292113e+01 -6.171056924466600e+01 -6.175350933517737e+01 - -6.179646979123154e+01 -6.183945065775757e+01 -6.188245198047678e+01 -6.192547373012725e+01 -6.196851587175868e+01 - -6.201157842265037e+01 -6.205466141333163e+01 -6.209776487510229e+01 -6.214088882566958e+01 -6.218403322759970e+01 - -6.222719804958889e+01 -6.227038333999444e+01 -6.231358914752139e+01 -6.235681544260558e+01 -6.240006218936849e+01 - -6.244332940494305e+01 -6.248661712010740e+01 -6.252992536720910e+01 -6.257325416420860e+01 -6.261660346994837e+01 - -6.265997325077347e+01 -6.270336356215701e+01 -6.274677445777788e+01 -6.279020589501037e+01 -6.283365783085999e+01 - -6.287713031716163e+01 -6.292062340781234e+01 -6.296413707012920e+01 -6.300767126475596e+01 -6.305122601222295e+01 - -6.309480134635203e+01 -6.313839729424505e+01 -6.318201386936521e+01 -6.322565103734121e+01 -6.326930877093868e+01 - -6.331298711930568e+01 -6.335668613058504e+01 -6.340040577251647e+01 -6.344414600718050e+01 -6.348790685442323e+01 - -6.353168834759008e+01 -6.357549051625812e+01 -6.361931337593239e+01 -6.366315688959789e+01 -6.370702102749119e+01 - -6.375090584137499e+01 -6.379481138078580e+01 -6.383873760482961e+01 -6.388268447297220e+01 -6.392665203654889e+01 - -6.397064034897519e+01 -6.401464938011861e+01 -6.405867909237229e+01 -6.410272950177993e+01 -6.414680063823367e+01 - -6.419089253336912e+01 -6.423500520539493e+01 -6.427913861706836e+01 -6.432329273774181e+01 -6.436746761859949e+01 - -6.441166331065573e+01 -6.445587978241413e+01 -6.450011699516882e+01 -6.454437496388719e+01 -6.458865371852110e+01 - -6.463295329528786e+01 -6.467727371608086e+01 -6.472161493923234e+01 -6.476597692945877e+01 -6.481035974057480e+01 - -6.485476342551981e+01 -6.489918794463497e+01 -6.494363325783405e+01 -6.498809941591921e+01 -6.503258647107099e+01 - -6.507709439009531e+01 -6.512162313341831e+01 -6.516617272132122e+01 -6.521074318787740e+01 -6.525533456247440e+01 - -6.529994686059398e+01 -6.534458004678092e+01 -6.538923409250538e+01 -6.543390904787570e+01 -6.547860496211884e+01 - -6.552332180229843e+01 -6.556805952953434e+01 -6.561281816333469e+01 -6.565759773746066e+01 -6.570239828429803e+01 - -6.574721982146080e+01 -6.579206230885156e+01 -6.583692571363754e+01 -6.588181008975629e+01 -6.592671548982709e+01 - -6.597164187442638e+01 -6.601658920334479e+01 -6.606155752527242e+01 -6.610654689090467e+01 -6.615155727005924e+01 - -6.619658862652422e+01 -6.624164098084657e+01 -6.628671436645676e+01 -6.633180881156068e+01 -6.637692433038681e+01 - -6.642206088647883e+01 -6.646721845110714e+01 -6.651239707713407e+01 -6.655759681603797e+01 -6.660281763216933e+01 - -6.664805948389387e+01 -6.669332239276561e+01 -6.673860639512726e+01 -6.678391152328841e+01 -6.682923779433044e+01 - -6.687458516845543e+01 -6.691995361277515e+01 -6.696534317891920e+01 -6.701075391795754e+01 -6.705618579420361e+01 - -6.710163877100581e+01 -6.714711289460833e+01 -6.719260821321966e+01 -6.723812470001026e+01 -6.728366232121398e+01 - -6.732922109035582e+01 -6.737480103488133e+01 -6.742040219062761e+01 -6.746602458035952e+01 -6.751166816616187e+01 - -6.755733291529161e+01 -6.760301887637438e+01 -6.764872609859751e+01 -6.769445455202660e+01 -6.774020420051386e+01 - -6.778597506217976e+01 -6.783176716876942e+01 -6.787758055225885e+01 -6.792341523092826e+01 -6.796927116804379e+01 - -6.801514833341810e+01 -6.806104677806347e+01 -6.810696655123587e+01 -6.815290761396663e+01 -6.819886992772128e+01 - -6.824485354392678e+01 -6.829085851532395e+01 -6.833688480994840e+01 -6.838293238885097e+01 -6.842900126984890e+01 - -6.847509148538957e+01 -6.852120306967514e+01 -6.856733604269469e+01 -6.861349036583006e+01 -6.865966600658993e+01 - -6.870586301559659e+01 -6.875208144399036e+01 -6.879832126187024e+01 -6.884458243234171e+01 -6.889086497157696e+01 - -6.893716890990422e+01 -6.898349428120915e+01 -6.902984110598732e+01 -6.907620934761650e+01 -6.912259897511596e+01 - -6.916901003718877e+01 -6.921544258172949e+01 -6.926189657371528e+01 -6.930837197817074e+01 -6.935486884322755e+01 - -6.940138721768092e+01 -6.944792706987337e+01 -6.949448836290087e+01 -6.954107111932564e+01 -6.958767537490402e+01 - -6.963430115870300e+01 -6.968094848498497e+01 -6.972761731548312e+01 -6.977430762020695e+01 -6.982101945480034e+01 - -6.986775287255249e+01 -6.991450783170005e+01 -6.996128429032680e+01 -7.000808230095708e+01 -7.005490191787665e+01 - -7.010174310797666e+01 -7.014860583121035e+01 -7.019549010717337e+01 -7.024239597049470e+01 -7.028932345629492e+01 - -7.033627258446040e+01 -7.038324331344937e+01 -7.043023560838913e+01 -7.047724952251053e+01 -7.052428510987777e+01 - -7.057134233978515e+01 -7.061842117397924e+01 -7.066552162878578e+01 -7.071264373512433e+01 -7.075978752771100e+01 - -7.080695302731498e+01 -7.085414019512091e+01 -7.090134899910394e+01 -7.094857949398551e+01 -7.099583173235354e+01 - -7.104310567151599e+01 -7.109040126922885e+01 -7.113771858031990e+01 -7.118505766125368e+01 -7.123241847797109e+01 - -7.127980098937178e+01 -7.132720521671429e+01 -7.137463119544236e+01 -7.142207895538176e+01 -7.146954851252747e+01 - -7.151703983316882e+01 -7.156455289009196e+01 -7.161208773177542e+01 -7.165964440570248e+01 -7.170722287968356e+01 - -7.175482311646741e+01 -7.180244513822917e+01 -7.185008898098621e+01 -7.189775467669884e+01 -7.194544224180910e+01 - -7.199315163474331e+01 -7.204088282234626e+01 -7.208863586315185e+01 -7.213641081375658e+01 -7.218420763131780e+01 - -7.223202627227879e+01 -7.227986678966526e+01 -7.232772923884254e+01 -7.237561358795277e+01 -7.242351979769759e+01 - -7.247144788623903e+01 -7.251939788668284e+01 -7.256736983444897e+01 -7.261536375015235e+01 -7.266337959287341e+01 - -7.271141732841731e+01 -7.275947701102203e+01 -7.280755869538000e+01 -7.285566234956853e+01 -7.290378793432680e+01 - -7.295193546765573e+01 -7.300010498266862e+01 -7.304829651566631e+01 -7.309651008753943e+01 -7.314474565435016e+01 - -7.319300317971540e+01 -7.324128272229925e+01 -7.328958433981238e+01 -7.333790799110540e+01 -7.338625363374130e+01 - -7.343462131899291e+01 -7.348301110053259e+01 -7.353142294792167e+01 -7.357985682361442e+01 -7.362831274574745e+01 - -7.367679074711965e+01 -7.372529086349638e+01 -7.377381311579366e+01 -7.382235746256312e+01 -7.387092386912651e+01 - -7.391951239025020e+01 -7.396812308115555e+01 -7.401675590943988e+01 -7.406541083531380e+01 -7.411408787706513e+01 - -7.416278706814910e+01 -7.421150844461324e+01 -7.426025202733783e+01 -7.430901777394124e+01 -7.435780564940528e+01 - -7.440661571142732e+01 -7.445544801616209e+01 -7.450430252087864e+01 -7.455317918285648e+01 -7.460207805830268e+01 - -7.465099920497126e+01 -7.469994258787753e+01 -7.474890816454140e+01 -7.479789595523943e+01 -7.484690599592756e+01 - -7.489593832252380e+01 -7.494499295533201e+01 -7.499406985223764e+01 -7.504316897827101e+01 -7.509229038945979e+01 - -7.514143414169166e+01 -7.519060019929748e+01 -7.523978851997632e+01 -7.528899912645726e+01 -7.533823205657275e+01 - -7.538748734353926e+01 -7.543676500532445e+01 -7.548606500351643e+01 -7.553538730703876e+01 -7.558473197053598e+01 - -7.563409904619321e+01 -7.568348849063742e+01 -7.573290026170078e+01 -7.578233441759443e+01 -7.583179101796470e+01 - -7.588127002782028e+01 -7.593077140392674e+01 -7.598029516471465e+01 -7.602984134475692e+01 -7.607940998153097e+01 - -7.612900109746634e+01 -7.617861465189691e+01 -7.622825061065345e+01 -7.627790902865043e+01 -7.632758996032740e+01 - -7.637729336914126e+01 -7.642701921265419e+01 -7.647676751583191e+01 -7.652653831849052e+01 -7.657633165244424e+01 - -7.662614753370475e+01 -7.667598592307560e+01 -7.672584678949215e+01 -7.677573018962489e+01 -7.682563617769370e+01 - -7.687556471038147e+01 -7.692551574474433e+01 -7.697548933686781e+01 -7.702548554509247e+01 -7.707550433774978e+01 - -7.712554567498073e+01 -7.717560957417300e+01 -7.722569606768573e+01 -7.727580519051753e+01 -7.732593696392289e+01 - -7.737609135154067e+01 -7.742626832278943e+01 -7.747646792782194e+01 -7.752669021677298e+01 -7.757693515897095e+01 - -7.762720271798948e+01 -7.767749291518889e+01 -7.772780578562232e+01 -7.777814136132783e+01 -7.782849965970544e+01 - -7.787888064261847e+01 -7.792928427988689e+01 -7.797971062869398e+01 -7.803015974345008e+01 -7.808063158011076e+01 - -7.813112609521906e+01 -7.818164334612277e+01 -7.823218339188995e+01 -7.828274619766600e+01 -7.833333172107952e+01 - -7.838393998361434e+01 -7.843457102192369e+01 -7.848522486948340e+01 -7.853590154498607e+01 -7.858660101116894e+01 - -7.863732323758104e+01 -7.868806827697425e+01 -7.873883618163512e+01 -7.878962691878654e+01 -7.884044044940295e+01 - -7.889127679452803e+01 -7.894213598992800e+01 -7.899301807018992e+01 -7.904392305456564e+01 -7.909485090214494e+01 - -7.914580158005610e+01 -7.919677514774288e+01 -7.924777166238927e+01 -7.929879107982515e+01 -7.934983335558289e+01 - -7.940089854535901e+01 -7.945198670709752e+01 -7.950309780756868e+01 -7.955423180605224e+01 -7.960538872303847e+01 - -7.965656859466247e+01 -7.970777145842827e+01 -7.975899733555858e+01 -7.981024618078136e+01 -7.986151795697417e+01 - -7.991281272610696e+01 -7.996413054847572e+01 -8.001547137858779e+01 -8.006683517069925e+01 -8.011822198384908e+01 - -8.016963187855384e+01 -8.022106481645797e+01 -8.027252075224854e+01 -8.032399971165485e+01 -8.037550173585385e+01 - -8.042702685677139e+01 -8.047857509055929e+01 -8.053014639952434e+01 -8.058174075328817e+01 -8.063335820457638e+01 - -8.068499880610621e+01 -8.073666252745771e+01 -8.078834933088126e+01 -8.084005923244513e+01 -8.089179226408041e+01 - -8.094354846735196e+01 -8.099532786819320e+01 -8.104713042037783e+01 -8.109895608507813e+01 -8.115080492521992e+01 - -8.120267700205356e+01 -8.125457226837462e+01 -8.130649067623317e+01 -8.135843228315183e+01 -8.141039715010918e+01 - -8.146238524643556e+01 -8.151439653208425e+01 -8.156643102114791e+01 -8.161848874447259e+01 -8.167056974577932e+01 - -8.172267405314662e+01 -8.177480161920819e+01 -8.182695240289546e+01 -8.187912646377457e+01 -8.193132386298609e+01 - -8.198354456733288e+01 -8.203578853472443e+01 -8.208805578183410e+01 -8.214034634197473e+01 -8.219266025625411e+01 - -8.224499755029157e+01 -8.229735817995817e+01 -8.234974210798764e+01 -8.240214939431286e+01 -8.245458009683706e+01 - -8.250703416814667e+01 -8.255951156203467e+01 -8.261201234243612e+01 -8.266453657428882e+01 -8.271708421639993e+01 - -8.276965521981012e+01 -8.282224961062391e+01 -8.287486743131451e+01 -8.292750871476633e+01 -8.298017347733835e+01 - -8.303286167887651e+01 -8.308557328775250e+01 -8.313830836295337e+01 -8.319106696215761e+01 -8.324384904719405e+01 - -8.329665457280116e+01 -8.334948356120523e+01 -8.340233605179664e+01 -8.345521208513452e+01 -8.350811168407860e+01 - -8.356103479952203e+01 -8.361398139085040e+01 -8.366695152338559e+01 -8.371994526125894e+01 -8.377296255790387e+01 - -8.382600336547402e+01 -8.387906774170159e+01 -8.393215574692768e+01 -8.398526734635097e+01 -8.403840249721476e+01 - -8.409156122008268e+01 -8.414474355213920e+01 -8.419794953373223e+01 -8.425117918830632e+01 -8.430443246852916e+01 - -8.435770933516140e+01 -8.441100985211256e+01 -8.446433408298962e+01 -8.451768198704093e+01 -8.457105351533237e+01 - -8.462444869055821e+01 -8.467786755329161e+01 -8.473131014399300e+01 -8.478477648534972e+01 -8.483826652906932e+01 - -8.489178023573824e+01 -8.494531767243778e+01 -8.499887890373510e+01 -8.505246387764603e+01 -8.510607254206460e+01 - -8.515970496094809e+01 -8.521336120130535e+01 -8.526704122628841e+01 -8.532074498941530e+01 -8.537447250952404e+01 - -8.542822382319736e+01 -8.548199897267675e+01 -8.553579798342942e+01 -8.558962080816578e+01 -8.564346740685433e+01 - -8.569733784125194e+01 -8.575123217367282e+01 -8.580515036687339e+01 -8.585909237532205e+01 -8.591305821989287e+01 - -8.596704793875205e+01 -8.602106157282915e+01 -8.607509914567974e+01 -8.612916060859980e+01 -8.618324592155754e+01 - -8.623735515146925e+01 -8.629148836331387e+01 -8.634564550737286e+01 -8.639982653295500e+01 -8.645403150017543e+01 - -8.650826047252751e+01 -8.656251341621210e+01 -8.661679028858919e+01 -8.667109110894766e+01 -8.672541591317201e+01 - -8.677976474159972e+01 -8.683413761829634e+01 -8.688853449778628e+01 -8.694295534179228e+01 -8.699740021037117e+01 - -8.705186916402354e+01 -8.710636216669133e+01 -8.716087917454270e+01 -8.721542020920894e+01 -8.726998530877070e+01 - -8.732457451164281e+01 -8.737918783967393e+01 -8.743382524811331e+01 -8.748848670054353e+01 -8.754317226047976e+01 - -8.759788198894785e+01 -8.765261583708421e+01 -8.770737375634857e+01 -8.776215580938322e+01 -8.781696206132678e+01 - -8.787179247612183e+01 -8.792664700860111e+01 -8.798152567835336e+01 -8.803642852212045e+01 -8.809135558050070e+01 - -8.814630687756171e+01 -8.820128236739042e+01 -8.825628201129771e+01 -8.831130586947003e+01 -8.836635400284558e+01 - -8.842142637649435e+01 -8.847652294770472e+01 -8.853164373850628e+01 -8.858678878695027e+01 -8.864195813043362e+01 - -8.869715178945941e+01 -8.875236971760948e+01 -8.880761187808301e+01 -8.886287833946902e+01 -8.891816916696094e+01 - -8.897348430677987e+01 -8.902882370531137e+01 -8.908418742857141e+01 -8.913957554536425e+01 -8.919498801601753e+01 - -8.925042479199006e+01 -8.930588589774098e+01 -8.936137137472512e+01 -8.941688125937962e+01 -8.947241557120560e+01 - -8.952797426697802e+01 -8.958355731201681e+01 -8.963916476854843e+01 -8.969479669732335e+01 -8.975045305628245e+01 - -8.980613379692392e+01 -8.986183894778455e+01 -8.991756855389235e+01 -8.997332264920152e+01 -9.002910125051302e+01 - -9.008490431708829e+01 -9.014073181666647e+01 -9.019658380843681e+01 -9.025246034941333e+01 -9.030836139645970e+01 - -9.036428690661128e+01 -9.042023693773967e+01 -9.047621154925669e+01 -9.053221070589892e+01 -9.058823436476921e+01 - -9.064428254711031e+01 -9.070035529106499e+01 -9.075645263823618e+01 -9.081257461289793e+01 -9.086872116654884e+01 - -9.092489225918972e+01 -9.098108795760594e+01 -9.103730832657459e+01 -9.109355331605536e+01 -9.114982287548730e+01 - -9.120611706704364e+01 -9.126243595579022e+01 -9.131877950563008e+01 -9.137514767186437e+01 -9.143154047654943e+01 - -9.148795795857168e+01 -9.154440015738282e+01 -9.160086709537343e+01 -9.165735872612346e+01 -9.171387501169491e+01 - -9.177041601688784e+01 -9.182698180564800e+01 -9.188357233576582e+01 -9.194018755741556e+01 -9.199682749646104e+01 - -9.205349219658670e+01 -9.211018169707003e+01 -9.216689601912306e+01 -9.222363511610273e+01 -9.228039895018067e+01 - -9.233718758664240e+01 -9.239400108840672e+01 -9.245083940581294e+01 -9.250770248979978e+01 -9.256459040628322e+01 - -9.262150322244982e+01 -9.267844089559186e+01 -9.273540337476760e+01 -9.279239068599267e+01 -9.284940287335907e+01 - -9.290643997630693e+01 -9.296350201607783e+01 -9.302058894577094e+01 -9.307770072730455e+01 -9.313483742601555e+01 - -9.319199910633068e+01 -9.324918572561810e+01 -9.330639723351504e+01 -9.336363365579297e+01 -9.342089503640302e+01 - -9.347818141588093e+01 -9.353549281584256e+01 -9.359282918563940e+01 -9.365019048477910e+01 -9.370757678565749e+01 - -9.376498815769901e+01 -9.382242454555492e+01 -9.387988589305337e+01 -9.393737226550313e+01 -9.399488373202897e+01 - -9.405242025553964e+01 -9.410998178945039e+01 -9.416756835541781e+01 -9.422517999301114e+01 -9.428281674520871e+01 - -9.434047863667399e+01 -9.439816561540189e+01 -9.445587763836596e+01 -9.451361477512259e+01 -9.457137709520302e+01 - -9.462916455545547e+01 -9.468697710379740e+01 -9.474481476510589e+01 -9.480267758244509e+01 -9.486056559466863e+01 - -9.491847882335075e+01 -9.497641722515867e+01 -9.503438076487508e+01 -9.509236950465109e+01 -9.515038350409563e+01 - -9.520842271528107e+01 -9.526648709103007e+01 -9.532457669470300e+01 -9.538269159175374e+01 -9.544083174547335e+01 - -9.549899710997526e+01 -9.555718770482461e+01 -9.561540356780063e+01 -9.567364474408794e+01 -9.573191126075703e+01 - -9.579020306501620e+01 -9.584852011272490e+01 -9.590686247420874e+01 -9.596523021978578e+01 -9.602362330527772e+01 - -9.608204167783254e+01 -9.614048536439948e+01 -9.619895441016116e+01 -9.625744885343293e+01 -9.631596871403326e+01 - -9.637451394466026e+01 -9.643308450797647e+01 -9.649168047362274e+01 -9.655030190767742e+01 -9.660894875499127e+01 - -9.666762096089710e+01 -9.672631859388268e+01 -9.678504172537357e+01 -9.684379031539257e+01 -9.690256431417546e+01 - -9.696136374421286e+01 -9.702018864639355e+01 -9.707903906294442e+01 -9.713791501832830e+01 -9.719681646461351e+01 - -9.725574336170810e+01 -9.731469577327378e+01 -9.737367376351882e+01 -9.743267729508464e+01 -9.749170632178308e+01 - -9.755076086367355e+01 -9.760984095895955e+01 -9.766894665217343e+01 -9.772807797034233e+01 -9.778723486414395e+01 - -9.784641729236439e+01 -9.790562532257231e+01 -9.796485902036660e+01 -9.802411833468516e+01 -9.808340321418262e+01 - -9.814271372304191e+01 -9.820204992860188e+01 -9.826141179529722e+01 -9.832079927766843e+01 -9.838021239358226e+01 - -9.843965117935535e+01 -9.849911568177785e+01 -9.855860593025675e+01 -9.861812187419362e+01 -9.867766347002308e+01 - -9.873723078231735e+01 -9.879682387670165e+01 -9.885644271487612e+01 -9.891608724974174e+01 -9.897575750292785e+01 - -9.903545351466867e+01 -9.909517533088989e+01 -9.915492297862031e+01 -9.921469640360959e+01 -9.927449556058966e+01 - -9.933432052149955e+01 -9.939417135686639e+01 -9.945404801436261e+01 -9.951395044077229e+01 -9.957387870218038e+01 - -9.963383286719130e+01 -9.969381289518709e+01 -9.975381873630593e+01 -9.981385041293248e+01 -9.987390796877466e+01 - -9.993399146058783e+01 -9.999410091983435e+01 -1.000542362637563e+02 -1.001143974249114e+02 -1.001745845113392e+02 - -1.002347976270743e+02 -1.002950366846517e+02 -1.003553015922550e+02 -1.004155924321621e+02 -1.004759093011103e+02 - -1.005362521795820e+02 -1.005966210292817e+02 -1.006570158530568e+02 -1.007174366671700e+02 -1.007778835004040e+02 - -1.008383563749385e+02 -1.008988552740233e+02 -1.009593801813489e+02 -1.010199311212978e+02 -1.010805081231472e+02 - -1.011411111950619e+02 -1.012017403376325e+02 -1.012623955422635e+02 -1.013230768099676e+02 -1.013837841893743e+02 - -1.014445177207514e+02 -1.015052773633014e+02 -1.015660630775449e+02 -1.016268749103392e+02 -1.016877129150088e+02 - -1.017485770844115e+02 -1.018094673966629e+02 -1.018703838313761e+02 -1.019313263923028e+02 -1.019922951782496e+02 - -1.020532902664119e+02 -1.021143115524854e+02 -1.021753589342455e+02 -1.022364324992857e+02 -1.022975323519374e+02 - -1.023586584736673e+02 -1.024198108268543e+02 -1.024809894203941e+02 -1.025421942728475e+02 -1.026034253949216e+02 - -1.026646827901934e+02 -1.027259664415750e+02 -1.027872763473731e+02 -1.028486125881369e+02 -1.029099752254547e+02 - -1.029713641628286e+02 -1.030327793161952e+02 -1.030942208093169e+02 -1.031556887637190e+02 -1.032171830841550e+02 - -1.032787036718354e+02 -1.033402506305696e+02 -1.034018240681317e+02 -1.034634239055545e+02 -1.035250500515010e+02 - -1.035867025518952e+02 -1.036483814821213e+02 -1.037100868981441e+02 -1.037718188237329e+02 -1.038335771732939e+02 - -1.038953618747522e+02 -1.039571730194689e+02 -1.040190107055651e+02 -1.040808748947658e+02 -1.041427655331822e+02 - -1.042046826408667e+02 -1.042666262524425e+02 -1.043285963868752e+02 -1.043905930564436e+02 -1.044526162623378e+02 - -1.045146660069125e+02 -1.045767423082721e+02 -1.046388451777543e+02 -1.047009745838822e+02 -1.047631305085241e+02 - -1.048253130297424e+02 -1.048875222165416e+02 -1.049497580055002e+02 -1.050120203310284e+02 -1.050743092512860e+02 - -1.051366248384456e+02 -1.051989670969791e+02 -1.052613360137520e+02 -1.053237315729033e+02 -1.053861537661844e+02 - -1.054486026185219e+02 -1.055110781583045e+02 -1.055735803945944e+02 -1.056361093274371e+02 -1.056986649401382e+02 - -1.057612472323176e+02 -1.058238562855892e+02 -1.058864921618116e+02 -1.059491547618286e+02 -1.060118440001799e+02 - -1.060745600072047e+02 -1.061373029070868e+02 -1.062000725835928e+02 -1.062628689188559e+02 -1.063256920288941e+02 - -1.063885420424685e+02 -1.064514189054312e+02 -1.065143225392365e+02 -1.065772529506575e+02 -1.066402101774261e+02 - -1.067031942957903e+02 -1.067662053568374e+02 -1.068292432724951e+02 -1.068923079625714e+02 -1.069553995175528e+02 - -1.070185180380394e+02 -1.070816634944072e+02 -1.071448358336418e+02 -1.072080350393896e+02 -1.072712611247882e+02 - -1.073345141842783e+02 -1.073977942922143e+02 -1.074611013613008e+02 -1.075244353055826e+02 -1.075877962061142e+02 - -1.076511841502191e+02 -1.077145990832866e+02 -1.077780409492339e+02 -1.078415098280245e+02 -1.079050057992970e+02 - -1.079685288053471e+02 -1.080320787786834e+02 -1.080956557500093e+02 -1.081592597729443e+02 -1.082228908945775e+02 - -1.082865491424036e+02 -1.083502344720692e+02 -1.084139468448718e+02 -1.084776863165616e+02 -1.085414529440200e+02 - -1.086052466942038e+02 -1.086690675238350e+02 -1.087329154386204e+02 -1.087967904674474e+02 -1.088606926829425e+02 - -1.089246221377382e+02 -1.089885787607543e+02 -1.090525624876805e+02 -1.091165734050004e+02 -1.091806115963225e+02 - -1.092446769829633e+02 -1.093087694909110e+02 -1.093728892271333e+02 -1.094370362953419e+02 -1.095012106052476e+02 - -1.095654120623545e+02 -1.096296407493415e+02 -1.096938967647426e+02 -1.097581800933404e+02 -1.098224906984946e+02 - -1.098868285716250e+02 -1.099511937236656e+02 -1.100155862155477e+02 -1.100800060933800e+02 -1.101444532939841e+02 - -1.102089277564002e+02 -1.102734295378303e+02 -1.103379587096266e+02 -1.104025152815812e+02 -1.104670992426730e+02 - -1.105317105601886e+02 -1.105963492199813e+02 -1.106610153038629e+02 -1.107257088820756e+02 -1.107904298826226e+02 - -1.108551782361634e+02 -1.109199540262203e+02 -1.109847573373186e+02 -1.110495881051325e+02 -1.111144462586115e+02 - -1.111793318486534e+02 -1.112442449476576e+02 -1.113091855920787e+02 -1.113741537899001e+02 -1.114391494711626e+02 - -1.115041725824562e+02 -1.115692232145109e+02 -1.116343014623147e+02 -1.116994072937479e+02 -1.117645406555522e+02 - -1.118297015370191e+02 -1.118948899532702e+02 -1.119601059801944e+02 -1.120253496750247e+02 -1.120906209596036e+02 - -1.121559197660155e+02 -1.122212462027017e+02 -1.122866003728487e+02 -1.123519821822644e+02 -1.124173915349786e+02 - -1.124828285252852e+02 -1.125482932599049e+02 -1.126137857050017e+02 -1.126793058037530e+02 -1.127448535479451e+02 - -1.128104289543148e+02 -1.128760320907921e+02 -1.129416630123176e+02 -1.130073216706816e+02 -1.130730080183262e+02 - -1.131387221134510e+02 -1.132044640167948e+02 -1.132702336934948e+02 -1.133360310978225e+02 -1.134018562361866e+02 - -1.134677091387784e+02 -1.135335898787815e+02 -1.135994985091588e+02 -1.136654349589990e+02 -1.137313991629182e+02 - -1.137973912015162e+02 -1.138634111582333e+02 -1.139294589818884e+02 -1.139955346168527e+02 -1.140616381243277e+02 - -1.141277695680233e+02 -1.141939289048548e+02 -1.142601160860919e+02 -1.143263311472162e+02 -1.143925741390390e+02 - -1.144588450894802e+02 -1.145251440101338e+02 -1.145914708701818e+02 -1.146578256494022e+02 -1.147242084123678e+02 - -1.147906192149256e+02 -1.148570579932248e+02 -1.149235246826633e+02 -1.149900193353325e+02 -1.150565420227369e+02 - -1.151230927773426e+02 -1.151896716067799e+02 -1.152562784583746e+02 -1.153229132947855e+02 -1.153895762003063e+02 - -1.154562672526404e+02 -1.155229863814943e+02 -1.155897335150450e+02 -1.156565087233475e+02 -1.157233120892246e+02 - -1.157901436046917e+02 -1.158570032371645e+02 -1.159238909464663e+02 -1.159908067231330e+02 -1.160577506881430e+02 - -1.161247229415995e+02 -1.161917233696630e+02 -1.162587518588770e+02 -1.163258085112608e+02 -1.163928934406831e+02 - -1.164600065929374e+02 -1.165271479034755e+02 -1.165943174344564e+02 -1.166615152526160e+02 -1.167287413162901e+02 - -1.167959955757904e+02 -1.168632780577301e+02 -1.169305888112216e+02 -1.169979278990717e+02 -1.170652953548001e+02 - -1.171326910810820e+02 -1.172001149975291e+02 -1.172675672223445e+02 -1.173350478778825e+02 -1.174025569045121e+02 - -1.174700942215011e+02 -1.175376598456954e+02 -1.176052538191002e+02 -1.176728761867799e+02 -1.177405269796691e+02 - -1.178082061691247e+02 -1.178759137299273e+02 -1.179436497101298e+02 -1.180114141509050e+02 -1.180792069926326e+02 - -1.181470281872303e+02 -1.182148778335583e+02 -1.182827560287664e+02 -1.183506627162192e+02 -1.184185978220269e+02 - -1.184865613570652e+02 -1.185545533602401e+02 -1.186225738978121e+02 -1.186906230193939e+02 -1.187587006806511e+02 - -1.188268068350639e+02 -1.188949415213182e+02 -1.189631047837780e+02 -1.190312966043158e+02 -1.190995169567162e+02 - -1.191677658449030e+02 -1.192360432941998e+02 -1.193043493853908e+02 -1.193726841751893e+02 -1.194410475685670e+02 - -1.195094394794060e+02 -1.195778600089746e+02 -1.196463092648311e+02 -1.197147871923100e+02 -1.197832937276135e+02 - -1.198518289326376e+02 -1.199203928745778e+02 -1.199889855161324e+02 -1.200576068078755e+02 -1.201262567563797e+02 - -1.201949353935382e+02 -1.202636427965272e+02 -1.203323790196208e+02 -1.204011439802014e+02 -1.204699376081542e+02 - -1.205387600202684e+02 -1.206076113241917e+02 -1.206764914041025e+02 -1.207454001431820e+02 -1.208143376440890e+02 - -1.208833040296615e+02 -1.209522992839752e+02 -1.210213233653680e+02 -1.210903762679893e+02 -1.211594580022500e+02 - -1.212285686077949e+02 -1.212977081155049e+02 -1.213668764919694e+02 -1.214360737100132e+02 -1.215052998316942e+02 - -1.215745549154533e+02 -1.216438389160294e+02 -1.217131517838345e+02 -1.217824935556734e+02 -1.218518642837182e+02 - -1.219212639952166e+02 -1.219906927020717e+02 -1.220601503797327e+02 -1.221296370078328e+02 -1.221991526191948e+02 - -1.222686972509000e+02 -1.223382709038720e+02 -1.224078735702578e+02 -1.224775052432531e+02 -1.225471659287695e+02 - -1.226168556825330e+02 -1.226865745477072e+02 -1.227563224673916e+02 -1.228260993926653e+02 -1.228959054065903e+02 - -1.229657405910973e+02 -1.230356048916106e+02 -1.231054982500379e+02 -1.231754207307278e+02 -1.232453724007864e+02 - -1.233153532159101e+02 -1.233853631242201e+02 -1.234554021549459e+02 -1.235254703591199e+02 -1.235955677938801e+02 - -1.236656944915691e+02 -1.237358503792446e+02 -1.238060353939673e+02 -1.238762496180971e+02 -1.239464931371069e+02 - -1.240167659036240e+02 -1.240870678602586e+02 -1.241573990423949e+02 -1.242277595040581e+02 -1.242981492810638e+02 - -1.243685683872523e+02 -1.244390167667736e+02 -1.245094943779347e+02 -1.245800013053605e+02 -1.246505376299316e+02 - -1.247211032912332e+02 -1.247916982296097e+02 -1.248623225297382e+02 -1.249329762770640e+02 -1.250036594157741e+02 - -1.250743718736609e+02 -1.251451136541969e+02 -1.252158847947410e+02 -1.252866853925174e+02 -1.253575155184925e+02 - -1.254283750787370e+02 -1.254992639825418e+02 -1.255701823169751e+02 -1.256411301759969e+02 -1.257121075033584e+02 - -1.257831142369608e+02 -1.258541504415142e+02 -1.259252161922362e+02 -1.259963114795672e+02 -1.260674362758903e+02 - -1.261385905661348e+02 -1.262097743537985e+02 -1.262809877041053e+02 -1.263522306696565e+02 -1.264235031908370e+02 - -1.264948052148923e+02 -1.265661368287249e+02 -1.266374981169807e+02 -1.267088890156212e+02 -1.267803094502130e+02 - -1.268517594534262e+02 -1.269232390831601e+02 -1.269947483911282e+02 -1.270662874069690e+02 -1.271378560782095e+02 - -1.272094543594662e+02 -1.272810823158284e+02 -1.273527400123002e+02 -1.274244274030747e+02 -1.274961444355319e+02 - -1.275678911406106e+02 -1.276396675704015e+02 -1.277114737780431e+02 -1.277833097950603e+02 -1.278551755654751e+02 - -1.279270710424012e+02 -1.279989963028243e+02 -1.280709514152536e+02 -1.281429362904217e+02 -1.282149508513121e+02 - -1.282869952276877e+02 -1.283590695463467e+02 -1.284311737154509e+02 -1.285033076302067e+02 -1.285754713526335e+02 - -1.286476649682441e+02 -1.287198884897120e+02 -1.287921419051992e+02 -1.288644251776617e+02 -1.289367382880697e+02 - -1.290090813146567e+02 -1.290814543319980e+02 -1.291538573027727e+02 -1.292262901737162e+02 -1.292987529396840e+02 - -1.293712456190937e+02 -1.294437682764910e+02 -1.295163209673579e+02 -1.295889036647941e+02 -1.296615163353197e+02 - -1.297341590015173e+02 -1.298068316903185e+02 -1.298795343899871e+02 -1.299522670904091e+02 -1.300250298266263e+02 - -1.300978226354063e+02 -1.301706455152632e+02 -1.302434984561237e+02 -1.303163814518184e+02 -1.303892945098205e+02 - -1.304622376882688e+02 -1.305352110313897e+02 -1.306082144770936e+02 -1.306812479731976e+02 -1.307543116134598e+02 - -1.308274054850011e+02 -1.309005295024521e+02 -1.309736835845235e+02 -1.310468678387340e+02 -1.311200823754845e+02 - -1.311933271278942e+02 -1.312666020134129e+02 -1.313399070640916e+02 -1.314132423401880e+02 -1.314866079001839e+02 - -1.315600037753056e+02 -1.316334298895329e+02 -1.317068861777292e+02 -1.317803727255405e+02 -1.318538896215189e+02 - -1.319274368150577e+02 -1.320010142454794e+02 -1.320746219509807e+02 -1.321482599879661e+02 -1.322219283867981e+02 - -1.322956271602158e+02 -1.323693562765047e+02 -1.324431157110688e+02 -1.325169055122373e+02 -1.325907257242561e+02 - -1.326645763021127e+02 -1.327384572099461e+02 -1.328123685377604e+02 -1.328863103680995e+02 -1.329602826278048e+02 - -1.330342852393407e+02 -1.331083182633673e+02 -1.331823817787306e+02 -1.332564757988239e+02 -1.333306003141445e+02 - -1.334047552890586e+02 -1.334789407033280e+02 -1.335531566244299e+02 -1.336274031130300e+02 -1.337016801148342e+02 - -1.337759875748336e+02 -1.338503255501201e+02 -1.339246941130952e+02 -1.339990932852997e+02 -1.340735230609586e+02 - -1.341479833758948e+02 -1.342224741891434e+02 -1.342969956109889e+02 -1.343715477431406e+02 -1.344461305017541e+02 - -1.345207438015131e+02 -1.345953877367626e+02 -1.346700624038786e+02 -1.347447677276981e+02 -1.348195036263442e+02 - -1.348942701626209e+02 -1.349690674171868e+02 -1.350438953974369e+02 -1.351187540921076e+02 -1.351936434885642e+02 - -1.352685635848754e+02 -1.353435144232942e+02 -1.354184960414874e+02 -1.354935084145923e+02 -1.355685515128237e+02 - -1.356436253492364e+02 -1.357187299541088e+02 -1.357938653837732e+02 -1.358690316768758e+02 -1.359442287752637e+02 - -1.360194566279880e+02 -1.360947153097144e+02 -1.361700048911278e+02 -1.362453253013760e+02 -1.363206764782614e+02 - -1.363960585357406e+02 -1.364714715821978e+02 -1.365469155275740e+02 -1.366223902703805e+02 -1.366978958618521e+02 - -1.367734323848502e+02 -1.368489998960226e+02 -1.369245984210613e+02 -1.370002278880492e+02 -1.370758882331093e+02 - -1.371515795221331e+02 -1.372273018270698e+02 -1.373030551143317e+02 -1.373788393429953e+02 -1.374546545483291e+02 - -1.375305007816427e+02 -1.376063780822184e+02 -1.376822864668756e+02 -1.377582258746108e+02 -1.378341962588316e+02 - -1.379101977084133e+02 -1.379862303093919e+02 -1.380622940009784e+02 -1.381383887192652e+02 -1.382145145346940e+02 - -1.382906715205862e+02 -1.383668596274320e+02 -1.384430787972570e+02 -1.385193290610606e+02 -1.385956104734610e+02 - -1.386719230945808e+02 -1.387482669582360e+02 -1.388246419875133e+02 -1.389010481148665e+02 -1.389774854209464e+02 - -1.390539539951986e+02 -1.391304538140523e+02 -1.392069848343242e+02 -1.392835470473980e+02 -1.393601404693719e+02 - -1.394367651806349e+02 -1.395134212422815e+02 -1.395901085739362e+02 -1.396668271002043e+02 -1.397435769070855e+02 - -1.398203580874878e+02 -1.398971706005607e+02 -1.399740143977720e+02 -1.400508895336226e+02 -1.401277960614956e+02 - -1.402047339272718e+02 -1.402817030764181e+02 -1.403587035602461e+02 -1.404357354502877e+02 -1.405127987931110e+02 - -1.405898936026113e+02 -1.406670197869564e+02 -1.407441772794584e+02 -1.408213662197336e+02 -1.408985867371466e+02 - -1.409758387137537e+02 -1.410531220224061e+02 -1.411304367464428e+02 -1.412077829961380e+02 -1.412851607790223e+02 - -1.413625700771281e+02 -1.414400108732392e+02 -1.415174831646232e+02 -1.415949870057306e+02 -1.416725224388105e+02 - -1.417500894001226e+02 -1.418276878351835e+02 -1.419053178325258e+02 -1.419829794809226e+02 -1.420606727270934e+02 - -1.421383975074728e+02 -1.422161538594082e+02 -1.422939418408956e+02 -1.423717614916131e+02 -1.424496128273150e+02 - -1.425274957863782e+02 -1.426054103213069e+02 -1.426833565184944e+02 -1.427613344645970e+02 -1.428393441134355e+02 - -1.429173854035838e+02 -1.429954583454632e+02 -1.430735629773860e+02 -1.431516993773805e+02 -1.432298676007922e+02 - -1.433080675725197e+02 -1.433862992191345e+02 -1.434645626043482e+02 -1.435428578032951e+02 -1.436211847996638e+02 - -1.436995435672099e+02 -1.437779341314036e+02 -1.438563565210897e+02 -1.439348107268960e+02 -1.440132967358192e+02 - -1.440918145585468e+02 -1.441703642214681e+02 -1.442489457900865e+02 -1.443275593072134e+02 -1.444062046857781e+02 - -1.444848818522611e+02 -1.445635909172288e+02 -1.446423319927847e+02 -1.447211050130976e+02 -1.447999098925679e+02 - -1.448787466444589e+02 -1.449576153140356e+02 -1.450365159757091e+02 -1.451154486823820e+02 -1.451944133717774e+02 - -1.452734099863848e+02 -1.453524386029381e+02 -1.454314992962476e+02 -1.455105919991844e+02 -1.455897166474813e+02 - -1.456688733302556e+02 -1.457480621396693e+02 -1.458272830266799e+02 -1.459065359271370e+02 -1.459858208576615e+02 - -1.460651378591126e+02 -1.461444869885314e+02 -1.462238682831965e+02 -1.463032816851561e+02 -1.463827271416525e+02 - -1.464622047159361e+02 -1.465417144784923e+02 -1.466212564127396e+02 -1.467008304928943e+02 -1.467804367434297e+02 - -1.468600751934606e+02 -1.469397458404120e+02 -1.470194486722770e+02 -1.470991836710121e+02 -1.471789508433917e+02 - -1.472587503015001e+02 -1.473385821300154e+02 -1.474184461986837e+02 -1.474983423870870e+02 -1.475782708290815e+02 - -1.476582316674545e+02 -1.477382248264445e+02 -1.478182502096616e+02 -1.478983078567520e+02 -1.479783978350921e+02 - -1.480585201869469e+02 -1.481386749269736e+02 -1.482188619845118e+02 -1.482990813088785e+02 -1.483793330146163e+02 - -1.484596172099193e+02 -1.485399338123612e+02 -1.486202827323657e+02 -1.487006640423751e+02 -1.487810778248495e+02 - -1.488615240403001e+02 -1.489420026412511e+02 -1.490225136702235e+02 -1.491030571832025e+02 -1.491836332000337e+02 - -1.492642417202360e+02 -1.493448826981615e+02 -1.494255561054278e+02 -1.495062620278810e+02 -1.495870005487025e+02 - -1.496677716261896e+02 -1.497485751994623e+02 -1.498294112558179e+02 -1.499102798158717e+02 -1.499911809853331e+02 - -1.500721148441144e+02 -1.501530812838450e+02 -1.502340802026938e+02 -1.503151117132690e+02 -1.503961759364751e+02 - -1.504772728119622e+02 -1.505584022645880e+02 -1.506395643412949e+02 -1.507207591024668e+02 -1.508019865401696e+02 - -1.508832466324269e+02 -1.509645393694111e+02 -1.510458647628492e+02 -1.511272228985386e+02 -1.512086138412552e+02 - -1.512900374976176e+02 -1.513714937855876e+02 -1.514529828266537e+02 -1.515345047392310e+02 -1.516160594259147e+02 - -1.516976467776822e+02 -1.517792668548592e+02 -1.518609197460578e+02 -1.519426054836894e+02 -1.520243240750476e+02 - -1.521060754831553e+02 -1.521878596792744e+02 -1.522696767118938e+02 -1.523515266305248e+02 -1.524334094115421e+02 - -1.525153250314230e+02 -1.525972735401888e+02 -1.526792549864990e+02 -1.527612693400200e+02 -1.528433165631959e+02 - -1.529253966685747e+02 -1.530075096900777e+02 -1.530896556970147e+02 -1.531718347321965e+02 -1.532540466970516e+02 - -1.533362915133235e+02 -1.534185693253995e+02 -1.535008802693854e+02 -1.535832242256197e+02 -1.536656010621809e+02 - -1.537480108538752e+02 -1.538304537113657e+02 -1.539129296820158e+02 -1.539954387715506e+02 -1.540779808824423e+02 - -1.541605559457948e+02 -1.542431641104905e+02 -1.543258055115917e+02 -1.544084800111010e+02 -1.544911874726015e+02 - -1.545739280390565e+02 -1.546567018609975e+02 -1.547395088398511e+02 -1.548223488576198e+02 -1.549052219677139e+02 - -1.549881282595875e+02 -1.550710677954614e+02 -1.551540406026988e+02 -1.552370465964632e+02 -1.553200857053796e+02 - -1.554031580241178e+02 -1.554862636500489e+02 -1.555694025253043e+02 -1.556525745801794e+02 -1.557357798528659e+02 - -1.558190184045264e+02 -1.559022902803117e+02 -1.559855954979769e+02 -1.560689339817060e+02 -1.561523056771075e+02 - -1.562357107090587e+02 -1.563191491909100e+02 -1.564026210106382e+02 -1.564861260558312e+02 -1.565696644378976e+02 - -1.566532362813955e+02 -1.567368415396626e+02 -1.568204801387562e+02 -1.569041520668287e+02 -1.569878573487146e+02 - -1.570715960938785e+02 -1.571553683828581e+02 -1.572391740958522e+02 -1.573230131265335e+02 -1.574068856228085e+02 - -1.574907917295132e+02 -1.575747313249683e+02 -1.576587042737324e+02 -1.577427106518309e+02 -1.578267505715277e+02 - -1.579108240785769e+02 -1.579949311783184e+02 -1.580790717809458e+02 -1.581632458187553e+02 -1.582474534075981e+02 - -1.583316946623155e+02 -1.584159695101536e+02 -1.585002778727259e+02 -1.585846198367120e+02 -1.586689954874005e+02 - -1.587534047394542e+02 -1.588378475061590e+02 -1.589223238659185e+02 -1.590068339195322e+02 -1.590913776922658e+02 - -1.591759551748261e+02 -1.592605662952183e+02 -1.593452110061037e+02 -1.594298894214712e+02 -1.595146016508511e+02 - -1.595993476246111e+02 -1.596841272537272e+02 -1.597689405507699e+02 -1.598537875632453e+02 -1.599386683768111e+02 - -1.600235830481832e+02 -1.601085314801616e+02 -1.601935135899282e+02 -1.602785295061083e+02 -1.603635793509372e+02 - -1.604486630096468e+02 -1.605337803660765e+02 -1.606189315354990e+02 -1.607041166452176e+02 -1.607893356392255e+02 - -1.608745884397152e+02 -1.609598750649831e+02 -1.610451955612870e+02 -1.611305499906227e+02 -1.612159383917271e+02 - -1.613013606945609e+02 -1.613868168398436e+02 -1.614723069201057e+02 -1.615578310304217e+02 -1.616433891242326e+02 - -1.617289811339727e+02 -1.618146070496823e+02 -1.619002668955830e+02 -1.619859607750138e+02 -1.620716887676450e+02 - -1.621574507793529e+02 -1.622432467219253e+02 -1.623290767045893e+02 -1.624149408340039e+02 -1.625008390091176e+02 - -1.625867711331680e+02 -1.626727373342588e+02 -1.627587377384768e+02 -1.628447722389764e+02 -1.629308407201184e+02 - -1.630169432640222e+02 -1.631030799800713e+02 -1.631892508889492e+02 -1.632754559784962e+02 -1.633616951938801e+02 - -1.634479685044198e+02 -1.635342760187116e+02 -1.636206178291233e+02 -1.637069938238325e+02 -1.637934038942077e+02 - -1.638798481485683e+02 -1.639663267112721e+02 -1.640528395538795e+02 -1.641393866180353e+02 -1.642259678785196e+02 - -1.643125833411851e+02 -1.643992331030405e+02 -1.644859172470150e+02 -1.645726357085657e+02 -1.646593884180614e+02 - -1.647461754329907e+02 -1.648329968179324e+02 -1.649198525387065e+02 -1.650067425502886e+02 -1.650936668630355e+02 - -1.651806255134507e+02 -1.652676185872448e+02 -1.653546461444497e+02 -1.654417080931755e+02 -1.655288043499995e+02 - -1.656159350172886e+02 -1.657031001994683e+02 -1.657902998234105e+02 -1.658775338117127e+02 -1.659648022474274e+02 - -1.660521052162188e+02 -1.661394426537408e+02 -1.662268144894047e+02 -1.663142207776613e+02 -1.664016615975541e+02 - -1.664891370014617e+02 -1.665766470055737e+02 -1.666641915079906e+02 -1.667517704334961e+02 -1.668393839316945e+02 - -1.669270321420214e+02 -1.670147149384157e+02 -1.671024321837371e+02 -1.671901839620226e+02 -1.672779703889409e+02 - -1.673657914855093e+02 -1.674536472385115e+02 -1.675415375924466e+02 -1.676294625158688e+02 -1.677174221158364e+02 - -1.678054164853866e+02 -1.678934455229663e+02 -1.679815091339810e+02 -1.680696074462591e+02 -1.681577405863894e+02 - -1.682459084535819e+02 -1.683341109324726e+02 -1.684223480767776e+02 -1.685106199767677e+02 -1.685989266998525e+02 - -1.686872682758898e+02 -1.687756446073924e+02 -1.688640556163956e+02 -1.689525014303699e+02 -1.690409821718389e+02 - -1.691294977381033e+02 -1.692180480141565e+02 -1.693066330609834e+02 -1.693952529706734e+02 -1.694839077837423e+02 - -1.695725975104607e+02 -1.696613220916933e+02 -1.697500814887782e+02 -1.698388758143547e+02 -1.699277051650943e+02 - -1.700165694224996e+02 -1.701054684738952e+02 -1.701944024450633e+02 -1.702833714670375e+02 -1.703723754534025e+02 - -1.704614143033400e+02 -1.705504880758685e+02 -1.706395968591658e+02 -1.707287406982126e+02 -1.708179196055015e+02 - -1.709071335067704e+02 -1.709963823462651e+02 -1.710856662290167e+02 -1.711749852543236e+02 -1.712643393377691e+02 - -1.713537283867857e+02 -1.714431524599174e+02 -1.715326116432521e+02 -1.716221059819435e+02 -1.717116354891412e+02 - -1.718012000909151e+02 -1.718907997312464e+02 -1.719804345128430e+02 -1.720701045346718e+02 -1.721598097220100e+02 - -1.722495499971131e+02 -1.723393254438396e+02 -1.724291361494486e+02 -1.725189820532021e+02 -1.726088630837053e+02 - -1.726987792749333e+02 -1.727887306891670e+02 -1.728787173965418e+02 -1.729687394350333e+02 -1.730587967061244e+02 - -1.731488891286860e+02 -1.732390168276344e+02 -1.733291799265234e+02 -1.734193783374131e+02 -1.735096119603506e+02 - -1.735998808588243e+02 -1.736901851222248e+02 -1.737805247801124e+02 -1.738708998286339e+02 -1.739613101901119e+02 - -1.740517558114003e+02 -1.741422368113012e+02 -1.742327533050288e+02 -1.743233052214973e+02 -1.744138924793676e+02 - -1.745045151425876e+02 -1.745951732822802e+02 -1.746858668529805e+02 -1.747765958032038e+02 -1.748673601739718e+02 - -1.749581600245709e+02 -1.750489953948396e+02 -1.751398663036498e+02 -1.752307727054541e+02 -1.753217145616989e+02 - -1.754126919262226e+02 -1.755037048571098e+02 -1.755947533370347e+02 -1.756858373371216e+02 -1.757769568577038e+02 - -1.758681119173357e+02 -1.759593025782490e+02 -1.760505288876894e+02 -1.761417907892832e+02 -1.762330882344909e+02 - -1.763244213097290e+02 -1.764157900964081e+02 -1.765071945209611e+02 -1.765986345094344e+02 -1.766901101413071e+02 - -1.767816215026837e+02 -1.768731685527375e+02 -1.769647512369523e+02 -1.770563695729838e+02 -1.771480236027573e+02 - -1.772397133931058e+02 -1.773314389867134e+02 -1.774232003047593e+02 -1.775149972814722e+02 -1.776068300247813e+02 - -1.776986986385443e+02 -1.777906030366335e+02 -1.778825431235826e+02 -1.779745189565556e+02 -1.780665306226855e+02 - -1.781585781763529e+02 -1.782506616334199e+02 -1.783427808884287e+02 -1.784349358629673e+02 -1.785271267081259e+02 - -1.786193535668995e+02 -1.787116163204012e+02 -1.788039148425030e+02 -1.788962492399977e+02 -1.789886196318098e+02 - -1.790810259524725e+02 -1.791734681201561e+02 -1.792659461719689e+02 -1.793584601742520e+02 -1.794510101913400e+02 - -1.795435962594126e+02 -1.796362183040394e+02 -1.797288762617232e+02 -1.798215702233099e+02 -1.799143002757676e+02 - -1.800070663362093e+02 -1.800998683262517e+02 -1.801927063553792e+02 -1.802855805315161e+02 -1.803784907684791e+02 - -1.804714369692463e+02 -1.805644191875481e+02 -1.806574375103104e+02 -1.807504920064915e+02 -1.808435827084130e+02 - -1.809367095198169e+02 -1.810298723599504e+02 -1.811230713386593e+02 -1.812163065647390e+02 -1.813095779521854e+02 - -1.814028854036152e+02 -1.814962289709267e+02 -1.815896087407728e+02 -1.816830247895420e+02 -1.817764771515762e+02 - -1.818699657032943e+02 -1.819634903439186e+02 -1.820570512218083e+02 -1.821506484855823e+02 -1.822442820357622e+02 - -1.823379517614509e+02 -1.824316577541746e+02 -1.825254001134493e+02 -1.826191787683301e+02 -1.827129936397535e+02 - -1.828068447866412e+02 -1.829007322929544e+02 -1.829946562048259e+02 -1.830886165373395e+02 -1.831826132192083e+02 - -1.832766461922778e+02 -1.833707155372913e+02 -1.834648213380734e+02 -1.835589635518759e+02 -1.836531421229175e+02 - -1.837473570698571e+02 -1.838416084358642e+02 -1.839358962877114e+02 -1.840302206684350e+02 -1.841245815025237e+02 - -1.842189787235884e+02 -1.843134124202761e+02 -1.844078826806361e+02 -1.845023894352911e+02 -1.845969326205561e+02 - -1.846915123529413e+02 -1.847861287393624e+02 -1.848807816681596e+02 -1.849754710227848e+02 -1.850701968857076e+02 - -1.851649593688754e+02 -1.852597585031284e+02 -1.853545942804591e+02 -1.854494666185751e+02 -1.855443754618861e+02 - -1.856393209358935e+02 -1.857343031604275e+02 -1.858293220515437e+02 -1.859243775087027e+02 -1.860194695687597e+02 - -1.861145983033516e+02 -1.862097637858479e+02 -1.863049660540466e+02 -1.864002050017272e+02 -1.864954805431744e+02 - -1.865907928187129e+02 -1.866861419596013e+02 -1.867815278347963e+02 -1.868769503164351e+02 -1.869724095516791e+02 - -1.870679056966096e+02 -1.871634386679672e+02 -1.872590083560524e+02 -1.873546147847470e+02 -1.874502580123688e+02 - -1.875459381013990e+02 -1.876416550903780e+02 -1.877374089179168e+02 -1.878331995340542e+02 -1.879290270344656e+02 - -1.880248915055781e+02 -1.881207928511883e+02 -1.882167309755823e+02 -1.883127059676341e+02 -1.884087179360091e+02 - -1.885047668839511e+02 -1.886008527852007e+02 -1.886969756009047e+02 -1.887931353152428e+02 -1.888893320171184e+02 - -1.889855657829229e+02 -1.890818365342772e+02 -1.891781441947396e+02 -1.892744888503877e+02 -1.893708705921393e+02 - -1.894672893677523e+02 -1.895637451161106e+02 -1.896602378837592e+02 -1.897567677352667e+02 -1.898533346996371e+02 - -1.899499387807097e+02 -1.900465799172331e+02 -1.901432580674921e+02 -1.902399733330072e+02 -1.903367258125687e+02 - -1.904335154508099e+02 -1.905303421711713e+02 -1.906272059664800e+02 -1.907241068668330e+02 -1.908210449820209e+02 - -1.909180203947948e+02 -1.910150330000556e+02 -1.911120827002041e+02 -1.912091696154924e+02 -1.913062938635582e+02 - -1.914034553337337e+02 -1.915006539182285e+02 -1.915978897490666e+02 -1.916951629619544e+02 -1.917924734675151e+02 - -1.918898211586861e+02 -1.919872060827436e+02 -1.920846283161583e+02 -1.921820878978424e+02 -1.922795848438701e+02 - -1.923771191165239e+02 -1.924746906889474e+02 -1.925722996315181e+02 -1.926699460069926e+02 -1.927676297504074e+02 - -1.928653507913461e+02 -1.929631091652971e+02 -1.930609049367203e+02 -1.931587381800568e+02 -1.932566089358633e+02 - -1.933545170991796e+02 -1.934524625825225e+02 -1.935504455138344e+02 -1.936484660231147e+02 -1.937465240331655e+02 - -1.938446194535055e+02 -1.939427523477156e+02 -1.940409227930324e+02 -1.941391307672549e+02 -1.942373762317632e+02 - -1.943356591817002e+02 -1.944339796386271e+02 -1.945323376960147e+02 -1.946307334225392e+02 -1.947291667157886e+02 - -1.948276374816129e+02 -1.949261458299981e+02 -1.950246918758956e+02 -1.951232755499811e+02 -1.952218967672293e+02 - -1.953205555640852e+02 -1.954192520091347e+02 -1.955179861780584e+02 -1.956167581109271e+02 -1.957155676982765e+02 - -1.958144148511486e+02 -1.959132997121442e+02 -1.960122224157670e+02 -1.961111828325720e+02 -1.962101808324193e+02 - -1.963092165463342e+02 -1.964082901163006e+02 -1.965074014669716e+02 -1.966065505047830e+02 -1.967057372806285e+02 - -1.968049618689787e+02 -1.969042242941536e+02 -1.970035245570506e+02 -1.971028626150270e+02 -1.972022384428475e+02 - -1.973016521284466e+02 -1.974011037520065e+02 -1.975005932495305e+02 -1.976001205455443e+02 -1.976996856628438e+02 - -1.977992886519515e+02 -1.978989295760255e+02 -1.979986084767589e+02 -1.980983252973461e+02 -1.981980799861144e+02 - -1.982978726104215e+02 -1.983977032396124e+02 -1.984975718319531e+02 -1.985974783450467e+02 -1.986974228449224e+02 - -1.987974053983538e+02 -1.988974259666649e+02 -1.989974844962869e+02 -1.990975809795281e+02 -1.991977154414513e+02 - -1.992978879922588e+02 -1.993980987169082e+02 -1.994983475142392e+02 -1.995986342853965e+02 -1.996989591268633e+02 - -1.997993221398394e+02 -1.998997232490551e+02 -2.000001623829878e+02 -2.001006396615730e+02 -2.002011551976202e+02 - -2.003017088839768e+02 -2.004023006006677e+02 -2.005029303963877e+02 -2.006035983645368e+02 -2.007043046086661e+02 - -2.008050491826254e+02 -2.009058319313084e+02 -2.010066527248718e+02 -2.011075117434797e+02 -2.012084091672780e+02 - -2.013093448663347e+02 -2.014103186854462e+02 -2.015113306783989e+02 -2.016123809487723e+02 -2.017134695903300e+02 - -2.018145966520298e+02 -2.019157620134241e+02 -2.020169655668574e+02 -2.021182074252480e+02 -2.022194877090834e+02 - -2.023208063485549e+02 -2.024221632682046e+02 -2.025235585602719e+02 -2.026249923196053e+02 -2.027264644837921e+02 - -2.028279749730532e+02 -2.029295237954015e+02 -2.030311109992572e+02 -2.031327367068774e+02 -2.032344010007734e+02 - -2.033361037306376e+02 -2.034378447601810e+02 -2.035396242420057e+02 -2.036414423389593e+02 -2.037432989659801e+02 - -2.038451940079258e+02 -2.039471274772405e+02 -2.040490994323931e+02 -2.041511099883670e+02 -2.042531592234435e+02 - -2.043552470125819e+02 -2.044573732391661e+02 -2.045595380236004e+02 -2.046617414909655e+02 -2.047639835480296e+02 - -2.048662640993485e+02 -2.049685832589404e+02 -2.050709411450770e+02 -2.051733376835843e+02 -2.052757727854042e+02 - -2.053782464943871e+02 -2.054807588829732e+02 -2.055833100050551e+02 -2.056858998827895e+02 -2.057885284299405e+02 - -2.058911955783421e+02 -2.059939014405005e+02 -2.060966461276917e+02 -2.061994295656012e+02 -2.063022516666823e+02 - -2.064051124760526e+02 -2.065080120661920e+02 -2.066109504863692e+02 -2.067139277576765e+02 -2.068169438117121e+02 - -2.069199985973326e+02 -2.070230922219201e+02 -2.071262247789163e+02 -2.072293961474789e+02 -2.073326062201854e+02 - -2.074358551575783e+02 -2.075391431180403e+02 -2.076424699833530e+02 -2.077458356179337e+02 -2.078492400933438e+02 - -2.079526835133251e+02 -2.080561659031989e+02 -2.081596872578975e+02 -2.082632475292167e+02 -2.083668466898186e+02 - -2.084704848389632e+02 -2.085741620623951e+02 -2.086778782651976e+02 -2.087816333480700e+02 -2.088854273748348e+02 - -2.089892604383302e+02 -2.090931325843364e+02 -2.091970438282278e+02 -2.093009941108145e+02 -2.094049833841979e+02 - -2.095090117202067e+02 -2.096130791905716e+02 -2.097171857469022e+02 -2.098213313423286e+02 -2.099255160561849e+02 - -2.100297399619016e+02 -2.101340029830976e+02 -2.102383050403986e+02 -2.103426461922712e+02 -2.104470265253758e+02 - -2.105514461013085e+02 -2.106559049410852e+02 -2.107604029284658e+02 -2.108649399745926e+02 -2.109695162373935e+02 - -2.110741318706494e+02 -2.111787867647689e+02 -2.112834807867834e+02 -2.113882139735869e+02 -2.114929864074473e+02 - -2.115977981822681e+02 -2.117026493533424e+02 -2.118075398098887e+02 -2.119124694556393e+02 -2.120174384184601e+02 - -2.121224468216736e+02 -2.122274945462991e+02 -2.123325814769304e+02 -2.124377077547605e+02 -2.125428735238108e+02 - -2.126480786828185e+02 -2.127533231155498e+02 -2.128586068911697e+02 -2.129639301084739e+02 -2.130692927993837e+02 - -2.131746949622090e+02 -2.132801365276879e+02 -2.133856174488912e+02 -2.134911378357916e+02 -2.135966977951921e+02 - -2.137022972643151e+02 -2.138079361581469e+02 -2.139136144723085e+02 -2.140193322420075e+02 -2.141250895801643e+02 - -2.142308865713384e+02 -2.143367231089345e+02 -2.144425990899214e+02 -2.145485146166798e+02 -2.146544697958461e+02 - -2.147604645456698e+02 -2.148664987887291e+02 -2.149725726533044e+02 -2.150786862586875e+02 -2.151848394825147e+02 - -2.152910321964648e+02 -2.153972644900385e+02 -2.155035364828845e+02 -2.156098481974242e+02 -2.157161996246267e+02 - -2.158225907268823e+02 -2.159290214790141e+02 -2.160354919341570e+02 -2.161420021424622e+02 -2.162485520638355e+02 - -2.163551416576007e+02 -2.164617709709994e+02 -2.165684400663080e+02 -2.166751489780245e+02 -2.167818977145845e+02 - -2.168886862079515e+02 -2.169955144082682e+02 -2.171023824148656e+02 -2.172092903208214e+02 -2.173162380450137e+02 - -2.174232255130703e+02 -2.175302528518165e+02 -2.176373201799158e+02 -2.177444273821862e+02 -2.178515743317612e+02 - -2.179587610888773e+02 -2.180659877532527e+02 -2.181732543954297e+02 -2.182805610486399e+02 -2.183879076260487e+02 - -2.184952940541088e+02 -2.186027204324891e+02 -2.187101868605661e+02 -2.188176932633304e+02 -2.189252395535715e+02 - -2.190328257696591e+02 -2.191404519835346e+02 -2.192481182758485e+02 -2.193558246894080e+02 -2.194635711069396e+02 - -2.195713574321837e+02 -2.196791838130171e+02 -2.197870503917547e+02 -2.198949570443306e+02 -2.200029036478261e+02 - -2.201108903502962e+02 -2.202189173008489e+02 -2.203269843818326e+02 -2.204350914576510e+02 -2.205432385876858e+02 - -2.206514258738742e+02 -2.207596533933995e+02 -2.208679211808499e+02 -2.209762291251867e+02 -2.210845771334710e+02 - -2.211929653307878e+02 -2.213013938407175e+02 -2.214098625627986e+02 -2.215183713969045e+02 -2.216269204682873e+02 - -2.217355099024502e+02 -2.218441396005216e+02 -2.219528094497077e+02 -2.220615195058979e+02 -2.221702698646027e+02 - -2.222790606111339e+02 -2.223878917838657e+02 -2.224967632436199e+02 -2.226056748766821e+02 -2.227146268487432e+02 - -2.228236193240230e+02 -2.229326521814535e+02 -2.230417252803019e+02 -2.231508386864637e+02 -2.232599925050409e+02 - -2.233691867913336e+02 -2.234784215614204e+02 -2.235876967242961e+02 -2.236970122086523e+02 -2.238063681290529e+02 - -2.239157646015454e+02 -2.240252015622403e+02 -2.241346789340316e+02 -2.242441967668838e+02 -2.243537551247286e+02 - -2.244633540002964e+02 -2.245729933685804e+02 -2.246826732048266e+02 -2.247923935126906e+02 -2.249021544092157e+02 - -2.250119559889259e+02 -2.251217981428817e+02 -2.252316807628839e+02 -2.253416039471573e+02 -2.254515678046834e+02 - -2.255615722810486e+02 -2.256716173029860e+02 -2.257817028852108e+02 -2.258918290784169e+02 -2.260019959892315e+02 - -2.261122036854213e+02 -2.262224520233766e+02 -2.263327408802082e+02 -2.264430704272837e+02 -2.265534408332552e+02 - -2.266638519616550e+02 -2.267743036660735e+02 -2.268847960654481e+02 -2.269953292962885e+02 -2.271059033000460e+02 - -2.272165179952407e+02 -2.273271734037251e+02 -2.274378695801794e+02 -2.275486066072624e+02 -2.276593845334010e+02 - -2.277702032421150e+02 -2.278810626343348e+02 -2.279919628455381e+02 -2.281029040172474e+02 -2.282138860806176e+02 - -2.283249089376286e+02 -2.284359725839265e+02 -2.285470770593814e+02 -2.286582224870930e+02 -2.287694089544078e+02 - -2.288806363224278e+02 -2.289919044640359e+02 -2.291032135254801e+02 -2.292145636582007e+02 -2.293259547610424e+02 - -2.294373867252146e+02 -2.295488596639802e+02 -2.296603736910369e+02 -2.297719286997702e+02 -2.298835245768747e+02 - -2.299951614025932e+02 -2.301068392919157e+02 -2.302185583052736e+02 -2.303303184582155e+02 -2.304421196413199e+02 - -2.305539617649887e+02 -2.306658449438852e+02 -2.307777692999738e+02 -2.308897347801602e+02 -2.310017413072381e+02 - -2.311137888826106e+02 -2.312258775426401e+02 -2.313380073849178e+02 -2.314501784790464e+02 -2.315623907214496e+02 - -2.316746440227619e+02 -2.317869385236417e+02 -2.318992743527083e+02 -2.320116513604021e+02 -2.321240694060221e+02 - -2.322365286624793e+02 -2.323490293043759e+02 -2.324615711994689e+02 -2.325741541998047e+02 -2.326867784014305e+02 - -2.327994439322068e+02 -2.329121508032486e+02 -2.330248989898164e+02 -2.331376884404961e+02 -2.332505191272475e+02 - -2.333633911421986e+02 -2.334763045743060e+02 -2.335892593796759e+02 -2.337022554911374e+02 -2.338152928812627e+02 - -2.339283715644559e+02 -2.340414916827054e+02 -2.341546533474617e+02 -2.342678564204413e+02 -2.343811007676228e+02 - -2.344943865217682e+02 -2.346077138212040e+02 -2.347210825597340e+02 -2.348344926295532e+02 -2.349479441609453e+02 - -2.350614372851493e+02 -2.351749718991416e+02 -2.352885478850955e+02 -2.354021653002366e+02 -2.355158242429473e+02 - -2.356295248011875e+02 -2.357432670145577e+02 -2.358570507396431e+02 -2.359708758587992e+02 -2.360847425404777e+02 - -2.361986509531367e+02 -2.363126009791645e+02 -2.364265924750662e+02 -2.365406254798825e+02 -2.366547000814751e+02 - -2.367688163804559e+02 -2.368829744348273e+02 -2.369971741194025e+02 -2.371114153287764e+02 -2.372256982198593e+02 - -2.373400229428812e+02 -2.374543893590377e+02 -2.375687973238754e+02 -2.376832469593778e+02 -2.377977384043928e+02 - -2.379122715987879e+02 -2.380268464580362e+02 -2.381414629990116e+02 -2.382561212769444e+02 -2.383708213990897e+02 - -2.384855634334210e+02 -2.386003472387607e+02 -2.387151726904082e+02 -2.388300399387221e+02 -2.389449491374237e+02 - -2.390599001786255e+02 -2.391748929369255e+02 -2.392899274784697e+02 -2.394050039061344e+02 -2.395201222781684e+02 - -2.396352826134916e+02 -2.397504848183333e+02 -2.398657288168898e+02 -2.399810147179146e+02 -2.400963426277219e+02 - -2.402117124583125e+02 -2.403271241258893e+02 -2.404425777577767e+02 -2.405580734795174e+02 -2.406736111984077e+02 - -2.407891907995794e+02 -2.409048122977546e+02 -2.410204757554728e+02 -2.411361812969551e+02 -2.412519290053517e+02 - -2.413677187378485e+02 -2.414835503650167e+02 -2.415994240369316e+02 -2.417153399089511e+02 -2.418312978780588e+02 - -2.419472978191357e+02 -2.420633397770240e+02 -2.421794238369657e+02 -2.422955500758429e+02 -2.424117185344053e+02 - -2.425279291172331e+02 -2.426441817421263e+02 -2.427604765159341e+02 -2.428768135466203e+02 -2.429931927575585e+02 - -2.431096140668555e+02 -2.432260775561414e+02 -2.433425833145866e+02 -2.434591312980004e+02 -2.435757214497087e+02 - -2.436923537964655e+02 -2.438090283895336e+02 -2.439257452947832e+02 -2.440425045463603e+02 -2.441593060369063e+02 - -2.442761496825792e+02 -2.443930356351059e+02 -2.445099640393889e+02 -2.446269347774639e+02 -2.447439477225602e+02 - -2.448610029755453e+02 -2.449781006544274e+02 -2.450952407181387e+02 -2.452124231032676e+02 -2.453296478161015e+02 - -2.454469148921256e+02 -2.455642244139170e+02 -2.456815764363974e+02 -2.457989708567751e+02 -2.459164075868465e+02 - -2.460338867544718e+02 -2.461514084874868e+02 -2.462689726975661e+02 -2.463865792818051e+02 -2.465042282951439e+02 - -2.466219198202147e+02 -2.467396538925739e+02 -2.468574305187124e+02 -2.469752496359336e+02 -2.470931112029433e+02 - -2.472110153332446e+02 -2.473289621270786e+02 -2.474469514768406e+02 -2.475649832814832e+02 -2.476830576740329e+02 - -2.478011747871381e+02 -2.479193345178656e+02 -2.480375367456449e+02 -2.481557815149384e+02 -2.482740689103307e+02 - -2.483923990118631e+02 -2.485107718618152e+02 -2.486291873559622e+02 -2.487476454083695e+02 -2.488661461527674e+02 - -2.489846897184250e+02 -2.491032759971039e+02 -2.492219048675295e+02 -2.493405763937896e+02 -2.494592906781626e+02 - -2.495780477903268e+02 -2.496968477531592e+02 -2.498156904349301e+02 -2.499345757349562e+02 -2.500535038313474e+02 - -2.501724748933778e+02 -2.502914887761886e+02 -2.504105453266259e+02 -2.505296446724864e+02 -2.506487869586733e+02 - -2.507679721175656e+02 -2.508872000588222e+02 -2.510064708137437e+02 -2.511257844438344e+02 -2.512451410097723e+02 - -2.513645405425343e+02 -2.514839829551193e+02 -2.516034681806881e+02 -2.517229963510282e+02 -2.518425675906852e+02 - -2.519621817966139e+02 -2.520818388494823e+02 -2.522015387924022e+02 -2.523212817096907e+02 -2.524410676880414e+02 - -2.525608967718439e+02 -2.526807688338955e+02 -2.528006837687293e+02 -2.529206417294141e+02 -2.530406428681973e+02 - -2.531606870755077e+02 -2.532807742357317e+02 -2.534009044709059e+02 -2.535210779031462e+02 -2.536412944172385e+02 - -2.537615538911017e+02 -2.538818564125164e+02 -2.540022021028112e+02 -2.541225910076441e+02 -2.542430231270507e+02 - -2.543634983542462e+02 -2.544840166121418e+02 -2.546045780492533e+02 -2.547251828099108e+02 -2.548458307960956e+02 - -2.549665218842466e+02 -2.550872560909815e+02 -2.552080334828205e+02 -2.553288541857174e+02 -2.554497182835964e+02 - -2.555706256328296e+02 -2.556915761009198e+02 -2.558125698274442e+02 -2.559336069560756e+02 -2.560546873747970e+02 - -2.561758109689862e+02 -2.562969778692906e+02 -2.564181882127723e+02 -2.565394419168841e+02 -2.566607388759341e+02 - -2.567820791112567e+02 -2.569034626862424e+02 -2.570248897054782e+02 -2.571463602359873e+02 -2.572678741533426e+02 - -2.573894313462550e+02 -2.575110319474426e+02 -2.576326760938784e+02 -2.577543636955484e+02 -2.578760946446893e+02 - -2.579978689895271e+02 -2.581196868133063e+02 -2.582415481833543e+02 -2.583634531275302e+02 -2.584854015317316e+02 - -2.586073933093156e+02 -2.587294286254374e+02 -2.588515076317444e+02 -2.589736301740566e+02 -2.590957960996737e+02 - -2.592180055676404e+02 -2.593402587446819e+02 -2.594625555165019e+02 -2.595848957490105e+02 -2.597072795099639e+02 - -2.598297069067293e+02 -2.599521780032740e+02 -2.600746928207452e+02 -2.601972512524080e+02 -2.603198532148209e+02 - -2.604424988455961e+02 -2.605651882765137e+02 -2.606879213949725e+02 -2.608106980758151e+02 -2.609335183880386e+02 - -2.610563824372016e+02 -2.611792902809524e+02 -2.613022419394243e+02 -2.614252373306019e+02 -2.615482763897488e+02 - -2.616713592233935e+02 -2.617944859260970e+02 -2.619176563732862e+02 -2.620408704583867e+02 -2.621641283659552e+02 - -2.622874302706103e+02 -2.624107760160917e+02 -2.625341654302978e+02 -2.626575986086381e+02 -2.627810756876698e+02 - -2.629045967010318e+02 -2.630281616427657e+02 -2.631517704514422e+02 -2.632754230861743e+02 -2.633991196437133e+02 - -2.635228602105341e+02 -2.636466446943674e+02 -2.637704729984163e+02 -2.638943451865159e+02 -2.640182613561179e+02 - -2.641422215785110e+02 -2.642662258795402e+02 -2.643902741294400e+02 -2.645143662245587e+02 -2.646385023213122e+02 - -2.647626825745115e+02 -2.648869068724856e+02 -2.650111750962730e+02 -2.651354873642347e+02 -2.652598438005879e+02 - -2.653842443156531e+02 -2.655086888035231e+02 -2.656331773072787e+02 -2.657577099091213e+02 -2.658822866987512e+02 - -2.660069077230897e+02 -2.661315728504449e+02 -2.662562819710931e+02 -2.663810352417937e+02 -2.665058328192844e+02 - -2.666306745937331e+02 -2.667555604333347e+02 -2.668804903849584e+02 -2.670054645383429e+02 -2.671304829760297e+02 - -2.672555457413816e+02 -2.673806527282453e+02 -2.675058038464400e+02 -2.676309992191929e+02 -2.677562389652032e+02 - -2.678815229716541e+02 -2.680068511277727e+02 -2.681322235624782e+02 -2.682576404136338e+02 -2.683831016151858e+02 - -2.685086070756685e+02 -2.686341568058856e+02 -2.687597508516357e+02 -2.688853892964312e+02 -2.690110721950252e+02 - -2.691367994494158e+02 -2.692625709807897e+02 -2.693883869398372e+02 -2.695142474621058e+02 -2.696401523930688e+02 - -2.697661015819900e+02 -2.698920951833660e+02 -2.700181333642693e+02 -2.701442160368443e+02 -2.702703430840482e+02 - -2.703965145270174e+02 -2.705227304331903e+02 -2.706489909170355e+02 -2.707752960482972e+02 -2.709016456707917e+02 - -2.710280396495872e+02 -2.711544781606855e+02 -2.712809613853167e+02 -2.714074892146895e+02 -2.715340615102555e+02 - -2.716606783044584e+02 -2.717873396730564e+02 -2.719140456940721e+02 -2.720407964136753e+02 -2.721675917483545e+02 - -2.722944316245073e+02 -2.724213161378437e+02 -2.725482453844213e+02 -2.726752192923742e+02 -2.728022377909456e+02 - -2.729293009817382e+02 -2.730564089616648e+02 -2.731835616365174e+02 -2.733107589046467e+02 -2.734380008257563e+02 - -2.735652874983575e+02 -2.736926190148396e+02 -2.738199954194386e+02 -2.739474165698984e+02 -2.740748823405867e+02 - -2.742023928588563e+02 -2.743299482670098e+02 -2.744575485141638e+02 -2.745851935229188e+02 -2.747128833029967e+02 - -2.748406178969678e+02 -2.749683973916734e+02 -2.750962218440648e+02 -2.752240911472609e+02 -2.753520052060601e+02 - -2.754799641358123e+02 -2.756079680559450e+02 -2.757360168916492e+02 -2.758641105650285e+02 -2.759922491800748e+02 - -2.761204328366440e+02 -2.762486614361617e+02 -2.763769348745897e+02 -2.765052532244616e+02 -2.766336165883748e+02 - -2.767620250126050e+02 -2.768904785041199e+02 -2.770189769689730e+02 -2.771475203398639e+02 -2.772761087569904e+02 - -2.774047423518460e+02 -2.775334210136085e+02 -2.776621446145333e+02 -2.777909132015001e+02 -2.779197268642361e+02 - -2.780485856892346e+02 -2.781774897218528e+02 -2.783064388461343e+02 -2.784354329669438e+02 -2.785644722337429e+02 - -2.786935567875348e+02 -2.788226864908934e+02 -2.789518612068105e+02 -2.790810810783757e+02 -2.792103462555617e+02 - -2.793396566357773e+02 -2.794690121008859e+02 -2.795984127231330e+02 -2.797278586088501e+02 -2.798573498103315e+02 - -2.799868863353985e+02 -2.801164680680156e+02 -2.802460949220819e+02 -2.803757670550874e+02 -2.805054846206144e+02 - -2.806352475130235e+02 -2.807650555997772e+02 -2.808949088999684e+02 -2.810248074853591e+02 -2.811547514867556e+02 - -2.812847409903677e+02 -2.814147758449749e+02 -2.815448559108459e+02 -2.816749813316353e+02 -2.818051522586102e+02 - -2.819353685901064e+02 -2.820656302199222e+02 -2.821959372766401e+02 -2.823262898869716e+02 -2.824566879353637e+02 - -2.825871312931868e+02 -2.827176200217700e+02 -2.828481542276227e+02 -2.829787340080183e+02 -2.831093594072626e+02 - -2.832400302670260e+02 -2.833707464559445e+02 -2.835015081531469e+02 -2.836323155420096e+02 -2.837631685124079e+02 - -2.838940669226656e+02 -2.840250107984012e+02 -2.841560002155769e+02 -2.842870352842360e+02 -2.844181160721325e+02 - -2.845492424437817e+02 -2.846804142799303e+02 -2.848116317294889e+02 -2.849428949404899e+02 -2.850742037892878e+02 - -2.852055581519247e+02 -2.853369581748677e+02 -2.854684040068092e+02 -2.855998955349205e+02 -2.857314326251873e+02 - -2.858630153203723e+02 -2.859946437114748e+02 -2.861263179056654e+02 -2.862580379663874e+02 -2.863898037660037e+02 - -2.865216151879669e+02 -2.866534723511688e+02 -2.867853753832939e+02 -2.869173242117615e+02 -2.870493187426322e+02 - -2.871813589967982e+02 -2.873134450373917e+02 -2.874455769816758e+02 -2.875777549027032e+02 -2.877099786425546e+02 - -2.878422480619707e+02 -2.879745633273037e+02 -2.881069246090204e+02 -2.882393317884377e+02 -2.883717847366556e+02 - -2.885042835730584e+02 -2.886368284288774e+02 -2.887694192344474e+02 -2.889020558953364e+02 -2.890347384189399e+02 - -2.891674668528066e+02 -2.893002413032724e+02 -2.894330618447220e+02 -2.895659283649483e+02 -2.896988407604515e+02 - -2.898317991491523e+02 -2.899648036558058e+02 -2.900978542110840e+02 -2.902309507220182e+02 -2.903640931951591e+02 - -2.904972816775983e+02 -2.906305162790740e+02 -2.907637970750559e+02 -2.908971239412933e+02 -2.910304967707643e+02 - -2.911639157250792e+02 -2.912973809535366e+02 -2.914308922875549e+02 -2.915644495654761e+02 -2.916980529712119e+02 - -2.918317026983915e+02 -2.919653986339440e+02 -2.920991406314096e+02 -2.922329287174719e+02 -2.923667629702973e+02 - -2.925006435008390e+02 -2.926345703772706e+02 -2.927685434638595e+02 -2.929025626397000e+02 -2.930366280470975e+02 - -2.931707398343328e+02 -2.933048979103752e+02 -2.934391021578708e+02 -2.935733525934834e+02 -2.937076492857184e+02 - -2.938419923764308e+02 -2.939763819565550e+02 -2.941108178399977e+02 -2.942452998623305e+02 -2.943798282228154e+02 - -2.945144031200941e+02 -2.946490243866398e+02 -2.947836918481424e+02 -2.949184056693277e+02 -2.950531660302706e+02 - -2.951879728334102e+02 -2.953228259514730e+02 -2.954577254159683e+02 -2.955926713017622e+02 -2.957276636983648e+02 - -2.958627026572042e+02 -2.959977880627373e+02 -2.961329198152110e+02 -2.962680980450039e+02 -2.964033228802077e+02 - -2.965385942096344e+02 -2.966739119278574e+02 -2.968092761917713e+02 -2.969446871501122e+02 -2.970801446566606e+02 - -2.972156485544735e+02 -2.973511989386669e+02 -2.974867959450954e+02 -2.976224396205114e+02 -2.977581299655766e+02 - -2.978938668856917e+02 -2.980296503111913e+02 -2.981654803674056e+02 -2.983013571739824e+02 -2.984372806328453e+02 - -2.985732506311156e+02 -2.987092672144286e+02 -2.988453304703744e+02 -2.989814404958496e+02 -2.991175973412398e+02 - -2.992538008615809e+02 -2.993900509369414e+02 -2.995263477428711e+02 -2.996626914493826e+02 -2.997990819088619e+02 - -2.999355189707111e+02 -3.000720027900217e+02 -3.002085335269560e+02 -3.003451110562723e+02 -3.004817352353309e+02 - -3.006184061373012e+02 -3.007551238767678e+02 -3.008918885181671e+02 -3.010287000846923e+02 -3.011655584847104e+02 - -3.013024636430795e+02 -3.014394156654455e+02 -3.015764146559894e+02 -3.017134605322491e+02 -3.018505532010304e+02 - -3.019876927128527e+02 -3.021248791518991e+02 -3.022621125932933e+02 -3.023993930706231e+02 -3.025367204603900e+02 - -3.026740946641424e+02 -3.028115158406990e+02 -3.029489841386069e+02 -3.030864994080570e+02 -3.032240615026816e+02 - -3.033616705882347e+02 -3.034993268395738e+02 -3.036370301558538e+02 -3.037747804087723e+02 -3.039125776359002e+02 - -3.040504219146317e+02 -3.041883133157825e+02 -3.043262518737324e+02 -3.044642374836954e+02 -3.046022700638564e+02 - -3.047403497634464e+02 -3.048784767248004e+02 -3.050166508316213e+02 -3.051548719471290e+02 -3.052931401112401e+02 - -3.054314554166776e+02 -3.055698179906950e+02 -3.057082279030724e+02 -3.058466849591645e+02 -3.059851889955948e+02 - -3.061237402384871e+02 -3.062623389075358e+02 -3.064009848072192e+02 -3.065396777363650e+02 -3.066784178864098e+02 - -3.068172054654241e+02 -3.069560403554044e+02 -3.070949224023651e+02 -3.072338516344630e+02 -3.073728281334552e+02 - -3.075118520133569e+02 -3.076509233435525e+02 -3.077900419826468e+02 -3.079292078053290e+02 -3.080684209614084e+02 - -3.082076816048298e+02 -3.083469896309615e+02 -3.084863449149456e+02 -3.086257475095906e+02 -3.087651975081579e+02 - -3.089046949880547e+02 -3.090442399817611e+02 -3.091838323579038e+02 -3.093234720151574e+02 -3.094631591362355e+02 - -3.096028938900603e+02 -3.097426761063483e+02 -3.098825056148365e+02 -3.100223825845469e+02 -3.101623071983122e+02 - -3.103022793549238e+02 -3.104422989228102e+02 -3.105823659329897e+02 -3.107224804626276e+02 -3.108626426108901e+02 - -3.110028524323948e+02 -3.111431097815640e+02 -3.112834145351391e+02 -3.114237668593314e+02 -3.115641669247677e+02 - -3.117046146302696e+02 -3.118451098470761e+02 -3.119856526079039e+02 -3.121262429897644e+02 -3.122668810853719e+02 - -3.124075669478935e+02 -3.125483004566077e+02 -3.126890815070839e+02 -3.128299102339429e+02 -3.129707867704560e+02 - -3.131117110054437e+02 -3.132526828292356e+02 -3.133937023826453e+02 -3.135347698019019e+02 -3.136758849544115e+02 - -3.138170476993112e+02 -3.139582581314797e+02 -3.140995163841689e+02 -3.142408225083815e+02 -3.143821765079714e+02 - -3.145235782804463e+02 -3.146650277504123e+02 -3.148065250572144e+02 -3.149480703283944e+02 -3.150896634295446e+02 - -3.152313042212708e+02 -3.153729928061792e+02 -3.155147293192109e+02 -3.156565137826469e+02 -3.157983461803634e+02 - -3.159402264552761e+02 -3.160821545730877e+02 -3.162241306316100e+02 -3.163661547129774e+02 -3.165082267045055e+02 - -3.166503465083330e+02 -3.167925142807053e+02 -3.169347301718565e+02 -3.170769940538677e+02 -3.172193057829434e+02 - -3.173616654299331e+02 -3.175040731106142e+02 -3.176465289058318e+02 -3.177890328440690e+02 -3.179315847792938e+02 - -3.180741845934695e+02 -3.182168324550577e+02 -3.183595285351408e+02 -3.185022727287870e+02 -3.186450649049847e+02 - -3.187879051044167e+02 -3.189307934072479e+02 -3.190737298798787e+02 -3.192167145562098e+02 -3.193597473539087e+02 - -3.195028282067584e+02 -3.196459572292360e+02 -3.197891345287240e+02 -3.199323600035334e+02 -3.200756335516368e+02 - -3.202189552787263e+02 -3.203623252990410e+02 -3.205057435532916e+02 -3.206492099607363e+02 -3.207927245283494e+02 - -3.209362873029775e+02 -3.210798984032395e+02 -3.212235579095965e+02 -3.213672656781062e+02 -3.215110215776564e+02 - -3.216548257528610e+02 -3.217986783602123e+02 -3.219425793279964e+02 -3.220865285490494e+02 -3.222305260026159e+02 - -3.223745717228416e+02 -3.225186658770672e+02 -3.226628085862362e+02 -3.228069996525048e+02 -3.229512388959131e+02 - -3.230955265268207e+02 -3.232398627556209e+02 -3.233842474025269e+02 -3.235286802821290e+02 -3.236731615767077e+02 - -3.238176914785998e+02 -3.239622698526831e+02 -3.241068965416273e+02 -3.242515716267282e+02 -3.243962952303619e+02 - -3.245410674006047e+02 -3.246858881442026e+02 -3.248307573768830e+02 -3.249756750377737e+02 -3.251206412506237e+02 - -3.252656561247559e+02 -3.254107195271718e+02 -3.255558313340717e+02 -3.257009917007768e+02 -3.258462007853361e+02 - -3.259914584775946e+02 -3.261367646471811e+02 -3.262821193510638e+02 -3.264275226864755e+02 -3.265729747243638e+02 - -3.267184754961565e+02 -3.268640249014856e+02 -3.270096228564299e+02 -3.271552694746495e+02 -3.273009648690628e+02 - -3.274467089520415e+02 -3.275925016223748e+02 -3.277383429250694e+02 -3.278842329472037e+02 -3.280301717979274e+02 - -3.281761595333842e+02 -3.283221959756238e+02 -3.284682809773962e+02 -3.286144147483458e+02 -3.287605974914733e+02 - -3.289068290263132e+02 -3.290531091681708e+02 -3.291994380988984e+02 -3.293458160115122e+02 -3.294922427771376e+02 - -3.296387182388717e+02 -3.297852424495862e+02 -3.299318155124273e+02 -3.300784375218649e+02 -3.302251085265343e+02 - -3.303718284004092e+02 -3.305185970357408e+02 -3.306654145725511e+02 -3.308122811494171e+02 -3.309591966513669e+02 - -3.311061609508276e+02 -3.312531741233722e+02 -3.314002362831168e+02 -3.315473474952068e+02 -3.316945077733321e+02 - -3.318417169743284e+02 -3.319889749946440e+02 -3.321362820460264e+02 -3.322836383216903e+02 -3.324310436254205e+02 - -3.325784977579187e+02 -3.327260008969810e+02 -3.328735532388732e+02 -3.330211546766479e+02 -3.331688050699581e+02 - -3.333165044480712e+02 -3.334642528918999e+02 -3.336120505193238e+02 -3.337598974031960e+02 -3.339077933992973e+02 - -3.340557383761620e+02 -3.342037324704123e+02 -3.343517758263186e+02 -3.344998683506588e+02 -3.346480099317598e+02 - -3.347962006216366e+02 -3.349444405123485e+02 -3.350927296924430e+02 -3.352410681997821e+02 -3.353894558729969e+02 - -3.355378925848257e+02 -3.356863785436656e+02 -3.358349139484366e+02 -3.359834986244929e+02 -3.361321323883865e+02 - -3.362808153950241e+02 -3.364295478191028e+02 -3.365783295761255e+02 -3.367271605486342e+02 -3.368760407465185e+02 - -3.370249702279324e+02 -3.371739491167402e+02 -3.373229774932894e+02 -3.374720551981496e+02 -3.376211820935624e+02 - -3.377703583682330e+02 -3.379195842066430e+02 -3.380688594499171e+02 -3.382181839217990e+02 -3.383675577198622e+02 - -3.385169809890102e+02 -3.386664537896355e+02 -3.388159761271593e+02 -3.389655478716282e+02 -3.391151689236262e+02 - -3.392648394412631e+02 -3.394145595795439e+02 -3.395643292235305e+02 -3.397141482525620e+02 -3.398640167930273e+02 - -3.400139349724158e+02 -3.401639026755699e+02 -3.403139197760493e+02 -3.404639863449279e+02 -3.406141024957107e+02 - -3.407642683141136e+02 -3.409144838324194e+02 -3.410647488969659e+02 -3.412150633828331e+02 -3.413654274660125e+02 - -3.415158413252182e+02 -3.416663048491409e+02 -3.418168178992377e+02 -3.419673805180489e+02 -3.421179927901010e+02 - -3.422686547867838e+02 -3.424193665441726e+02 -3.425701279702224e+02 -3.427209389917095e+02 -3.428717997388184e+02 - -3.430227103286458e+02 -3.431736706225328e+02 -3.433246804902436e+02 -3.434757400909901e+02 -3.436268495884827e+02 - -3.437780088749811e+02 -3.439292178162220e+02 -3.440804764432992e+02 -3.442317848369893e+02 -3.443831431114438e+02 - -3.445345513395477e+02 -3.446860093957458e+02 -3.448375171638715e+02 -3.449890747637513e+02 -3.451406823209921e+02 - -3.452923397483303e+02 -3.454440469383874e+02 -3.455958039161959e+02 -3.457476107544265e+02 -3.458994675838882e+02 - -3.460513744837874e+02 -3.462033312687789e+02 -3.463553377809081e+02 -3.465073942363314e+02 -3.466595008454457e+02 - -3.468116574214998e+02 -3.469638637732855e+02 -3.471161200889126e+02 -3.472684265676839e+02 -3.474207830743587e+02 - -3.475731894457752e+02 -3.477256457416318e+02 -3.478781520698926e+02 -3.480307085087305e+02 -3.481833150905516e+02 - -3.483359716944890e+02 -3.484886782275422e+02 -3.486414348614480e+02 -3.487942417546251e+02 -3.489470987474849e+02 - -3.491000056682386e+02 -3.492529626143035e+02 -3.494059697303613e+02 -3.495590270809477e+02 -3.497121346735108e+02 - -3.498652923672977e+02 -3.500185000578142e+02 -3.501717579338015e+02 -3.503250661735650e+02 -3.504784246204307e+02 - -3.506318331106053e+02 -3.507852917867942e+02 -3.509388008057230e+02 -3.510923600737020e+02 -3.512459694729739e+02 - -3.513996290399252e+02 -3.515533388531561e+02 -3.517070990059733e+02 -3.518609095547224e+02 -3.520147703931951e+02 - -3.521686814254426e+02 -3.523226427591028e+02 -3.524766545004363e+02 -3.526307165466042e+02 -3.527848288024159e+02 - -3.529389914123712e+02 -3.530932045168612e+02 -3.532474680001527e+02 -3.534017817301934e+02 -3.535561457657783e+02 - -3.537105602073667e+02 -3.538650251312291e+02 -3.540195405716707e+02 -3.541741064193253e+02 -3.543287225825957e+02 - -3.544833891846346e+02 -3.546381063473606e+02 -3.547928739730113e+02 -3.549476919508821e+02 -3.551025603381796e+02 - -3.552574792297605e+02 -3.554124487031720e+02 -3.555674687945711e+02 -3.557225393918643e+02 -3.558776604020463e+02 - -3.560328319567154e+02 -3.561880541805177e+02 -3.563433269456882e+02 -3.564986501330765e+02 -3.566540239103983e+02 - -3.568094484429710e+02 -3.569649235996524e+02 -3.571204492251743e+02 -3.572760253642205e+02 -3.574316521198430e+02 - -3.575873296286128e+02 -3.577430579645793e+02 -3.578988369181832e+02 -3.580546663122107e+02 -3.582105463824335e+02 - -3.583664773634632e+02 -3.585224590722860e+02 -3.586784912980774e+02 -3.588345741363943e+02 -3.589907077420278e+02 - -3.591468922003262e+02 -3.593031275347307e+02 -3.594594135904955e+02 -3.596157502414973e+02 -3.597721376542854e+02 - -3.599285759961583e+02 -3.600850651447366e+02 -3.602416049709182e+02 -3.603981956083848e+02 -3.605548371920680e+02 - -3.607115295991184e+02 -3.608682726958015e+02 -3.610250665626241e+02 -3.611819113190277e+02 -3.613388070259530e+02 - -3.614957536972620e+02 -3.616527512170044e+02 -3.618097994957786e+02 -3.619668986801910e+02 -3.621240489112448e+02 - -3.622812500715253e+02 -3.624385020268735e+02 -3.625958048345691e+02 -3.627531585959862e+02 -3.629105633974360e+02 - -3.630680192762735e+02 -3.632255260890885e+02 -3.633830837209757e+02 -3.635406923518125e+02 -3.636983521500620e+02 - -3.638560629437486e+02 -3.640138245654421e+02 -3.641716372063300e+02 -3.643295010634408e+02 -3.644874159985495e+02 - -3.646453818454157e+02 -3.648033986609884e+02 -3.649614665547653e+02 -3.651195856232492e+02 -3.652777559169987e+02 - -3.654359773157880e+02 -3.655942497193339e+02 -3.657525732779061e+02 -3.659109481367831e+02 -3.660693741707290e+02 - -3.662278512419212e+02 -3.663863794327037e+02 -3.665449588644519e+02 -3.667035895945005e+02 -3.668622716357800e+02 - -3.670210048876434e+02 -3.671797892763418e+02 -3.673386249492966e+02 -3.674975120447079e+02 -3.676564504427247e+02 - -3.678154400208724e+02 -3.679744809042344e+02 -3.681335732252156e+02 -3.682927168979475e+02 -3.684519118222935e+02 - -3.686111580593141e+02 -3.687704557033292e+02 -3.689298048205014e+02 -3.690892054329191e+02 -3.692486574145354e+02 - -3.694081606700869e+02 -3.695677153755793e+02 -3.697273216946131e+02 -3.698869794698993e+02 -3.700466885253786e+02 - -3.702064489307988e+02 -3.703662608017668e+02 -3.705261241915196e+02 -3.706860391012269e+02 -3.708460053861607e+02 - -3.710060229388483e+02 -3.711660919467376e+02 -3.713262125796104e+02 -3.714863846416646e+02 -3.716466079328989e+02 - -3.718068826020972e+02 -3.719672088201144e+02 -3.721275864973102e+02 -3.722880155098476e+02 -3.724484958575989e+02 - -3.726090275883345e+02 -3.727696108177087e+02 -3.729302456171431e+02 -3.730909318132427e+02 -3.732516692484294e+02 - -3.734124580732086e+02 -3.735732984485285e+02 -3.737341902690280e+02 -3.738951333966488e+02 -3.740561278288502e+02 - -3.742171736164895e+02 -3.743782708884933e+02 -3.745394197314636e+02 -3.747006199846337e+02 -3.748618715145197e+02 - -3.750231745441332e+02 -3.751845292967938e+02 -3.753459356405600e+02 -3.755073934398666e+02 -3.756689028999150e+02 - -3.758304642401999e+02 -3.759920773966298e+02 -3.761537422764503e+02 -3.763154589558405e+02 -3.764772275566993e+02 - -3.766390482148706e+02 -3.768009210261144e+02 -3.769628459119104e+02 -3.771248228066682e+02 -3.772868518707951e+02 - -3.774489332703654e+02 -3.776110669681248e+02 -3.777732529036114e+02 -3.779354911268638e+02 -3.780977817328078e+02 - -3.782601248854201e+02 -3.784225207068740e+02 -3.785849690830777e+02 -3.787474699201715e+02 -3.789100234414875e+02 - -3.790726298611719e+02 -3.792352890394379e+02 -3.793980008403989e+02 -3.795607654977005e+02 -3.797235832511840e+02 - -3.798864539959452e+02 -3.800493775732837e+02 -3.802123539540593e+02 -3.803753831256555e+02 -3.805384650119894e+02 - -3.807015994897982e+02 -3.808647863105625e+02 -3.810280252452890e+02 -3.811913162683451e+02 -3.813546593533040e+02 - -3.815180542672069e+02 -3.816815007606327e+02 -3.818449987248433e+02 -3.820085480876401e+02 -3.821721487823003e+02 - -3.823358007029311e+02 -3.824995035814819e+02 -3.826632571794644e+02 -3.828270615387958e+02 -3.829909166775790e+02 - -3.831548222382581e+02 -3.833187778788636e+02 -3.834827836954302e+02 -3.836468397830658e+02 -3.838109457951704e+02 - -3.839751013606573e+02 -3.841393064522010e+02 -3.843035610985582e+02 -3.844678652090594e+02 -3.846322186342679e+02 - -3.847966211091070e+02 -3.849610723938522e+02 -3.851255724658270e+02 -3.852901213276589e+02 -3.854547188661456e+02 - -3.856193651039130e+02 -3.857840607227301e+02 -3.859488064858506e+02 -3.861136028233281e+02 -3.862784501283425e+02 - -3.864433489797775e+02 -3.866083000045549e+02 -3.867733038360474e+02 -3.869383610689728e+02 -3.871034721369783e+02 - -3.872686374886131e+02 -3.874338577931016e+02 -3.875991337168530e+02 -3.877644656943423e+02 -3.879298541437876e+02 - -3.880952996503134e+02 -3.882608028487801e+02 -3.884263644060860e+02 -3.885919849359946e+02 -3.887576648076931e+02 - -3.889234044110585e+02 -3.890892044633024e+02 -3.892550656828005e+02 -3.894209884652491e+02 -3.895869732058733e+02 - -3.897530206206903e+02 -3.899191314265681e+02 -3.900853060229904e+02 -3.902515447813749e+02 -3.904178482782592e+02 - -3.905842171832736e+02 -3.907506523333024e+02 -3.909171542011455e+02 -3.910837216360146e+02 -3.912503530200719e+02 - -3.914170464908692e+02 -3.915838000867597e+02 -3.917506116939103e+02 -3.919174791997058e+02 -3.920844006485843e+02 - -3.922513741233318e+02 -3.924183977030698e+02 -3.925854694180132e+02 -3.927525871064144e+02 -3.929197486330507e+02 - -3.930869521607613e+02 -3.932541958513385e+02 -3.934214775643266e+02 -3.935887951493436e+02 -3.937561467185514e+02 - -3.939235303999417e+02 -3.940909441222876e+02 -3.942583857858931e+02 -3.944258533764072e+02 -3.945933449213566e+02 - -3.947608585304349e+02 -3.949283922804248e+02 -3.950959440342958e+02 -3.952635116636291e+02 -3.954310932882606e+02 - -3.955986870327357e+02 -3.957662907921835e+02 -3.959339024467546e+02 -3.961015200461023e+02 -3.962691416638499e+02 - 1.070000000000000e-01 1.069682658750319e-01 1.069365186252596e-01 1.069047582677665e-01 1.068729848196356e-01 - 1.068411982979503e-01 1.068093987197937e-01 1.067775861022493e-01 1.067457604624000e-01 1.067139218173294e-01 - 1.066820701841205e-01 1.066502055798566e-01 1.066183280216209e-01 1.065864375264968e-01 1.065545341115673e-01 - 1.065226177939159e-01 1.064906885906257e-01 1.064587465187799e-01 1.064267915954618e-01 1.063948238377547e-01 - 1.063628432627417e-01 1.063308498875062e-01 1.062988437291314e-01 1.062668248047005e-01 1.062347931312967e-01 - 1.062027487260033e-01 1.061706916059036e-01 1.061386217880807e-01 1.061065392896180e-01 1.060744441275985e-01 - 1.060423363191058e-01 1.060102158812228e-01 1.059780828310330e-01 1.059459371856195e-01 1.059137789620655e-01 - 1.058816081774544e-01 1.058494248488693e-01 1.058172289933936e-01 1.057850206281103e-01 1.057527997701029e-01 - 1.057205664364545e-01 1.056883206442483e-01 1.056560624105677e-01 1.056237917524958e-01 1.055915086871159e-01 - 1.055592132315112e-01 1.055269054027650e-01 1.054945852179606e-01 1.054622526941811e-01 1.054299078485097e-01 - 1.053975506980299e-01 1.053651812598247e-01 1.053327995509774e-01 1.053004055885713e-01 1.052679993896897e-01 - 1.052355809714157e-01 1.052031503508325e-01 1.051707075450236e-01 1.051382525710719e-01 1.051057854460610e-01 - 1.050733061870738e-01 1.050408148111938e-01 1.050083113355042e-01 1.049757957770881e-01 1.049432681530288e-01 - 1.049107284804097e-01 1.048781767763138e-01 1.048456130578245e-01 1.048130373420250e-01 1.047804496459986e-01 - 1.047478499868284e-01 1.047152383815977e-01 1.046826148473898e-01 1.046499794012880e-01 1.046173320603753e-01 - 1.045846728417352e-01 1.045520017624508e-01 1.045193188396054e-01 1.044866240902822e-01 1.044539175315645e-01 - 1.044211991805354e-01 1.043884690542783e-01 1.043557271698764e-01 1.043229735444130e-01 1.042902081949712e-01 - 1.042574311386343e-01 1.042246423924855e-01 1.041918419736082e-01 1.041590298990855e-01 1.041262061860007e-01 - 1.040933708514369e-01 1.040605239124776e-01 1.040276653862059e-01 1.039947952897050e-01 1.039619136400582e-01 - 1.039290204543487e-01 1.038961157496599e-01 1.038631995430748e-01 1.038302718516768e-01 1.037973326925491e-01 - 1.037643820827749e-01 1.037314200394375e-01 1.036984465796201e-01 1.036654617204061e-01 1.036324654788785e-01 - 1.035994578721206e-01 1.035664389172158e-01 1.035334086312472e-01 1.035003670312980e-01 1.034673141344516e-01 - 1.034342499577912e-01 1.034011745183999e-01 1.033680878333612e-01 1.033349899197580e-01 1.033018807946739e-01 - 1.032687604751918e-01 1.032356289783953e-01 1.032024863213673e-01 1.031693325211913e-01 1.031361675949504e-01 - 1.031029915597278e-01 1.030698044326069e-01 1.030366062306709e-01 1.030033969710030e-01 1.029701766706864e-01 - 1.029369453468044e-01 1.029037030164402e-01 1.028704496966771e-01 1.028371854045984e-01 1.028039101572872e-01 - 1.027706239718267e-01 1.027373268653004e-01 1.027040188547913e-01 1.026706999573827e-01 1.026373701901580e-01 - 1.026040295702002e-01 1.025706781145926e-01 1.025373158404186e-01 1.025039427647613e-01 1.024705589047040e-01 - 1.024371642773299e-01 1.024037588997223e-01 1.023703427889643e-01 1.023369159621393e-01 1.023034784363305e-01 - 1.022700302286212e-01 1.022365713560945e-01 1.022031018358337e-01 1.021696216849221e-01 1.021361309204428e-01 - 1.021026295594792e-01 1.020691176191145e-01 1.020355951164319e-01 1.020020620685147e-01 1.019685184924461e-01 - 1.019349644053093e-01 1.019013998241876e-01 1.018678247661643e-01 1.018342392483225e-01 1.018006432877456e-01 - 1.017670369015167e-01 1.017334201067191e-01 1.016997929204361e-01 1.016661553597508e-01 1.016325074417466e-01 - 1.015988491835066e-01 1.015651806021141e-01 1.015315017146524e-01 1.014978125382047e-01 1.014641130898543e-01 - 1.014304033866843e-01 1.013966834457780e-01 1.013629532842187e-01 1.013292129190896e-01 1.012954623674739e-01 - 1.012617016464549e-01 1.012279307731159e-01 1.011941497645400e-01 1.011603586378106e-01 1.011265574100107e-01 - 1.010927460982239e-01 1.010589247195331e-01 1.010250932910217e-01 1.009912518297729e-01 1.009574003528701e-01 - 1.009235388773963e-01 1.008896674204348e-01 1.008557859990690e-01 1.008218946303820e-01 1.007879933314571e-01 - 1.007540821193774e-01 1.007201610112264e-01 1.006862300240872e-01 1.006522891750429e-01 1.006183384811770e-01 - 1.005843779595726e-01 1.005504076273130e-01 1.005164275014813e-01 1.004824375991610e-01 1.004484379374351e-01 - 1.004144285333870e-01 1.003804094040999e-01 1.003463805666569e-01 1.003123420381414e-01 1.002782938356367e-01 - 1.002442359762259e-01 1.002101684769922e-01 1.001760913550190e-01 1.001420046273895e-01 1.001079083111869e-01 - 1.000738024234945e-01 1.000396869813954e-01 1.000055620019730e-01 9.997142750231042e-02 9.993728349949102e-02 - 9.990313001059796e-02 9.986896705271456e-02 9.983479464292398e-02 9.980061279830947e-02 9.976642153595434e-02 - 9.973222087294174e-02 9.969801082635499e-02 9.966379141327726e-02 9.962956265079187e-02 9.959532455598200e-02 - 9.956107714593093e-02 9.952682043772192e-02 9.949255444843813e-02 9.945827919516288e-02 9.942399469497937e-02 - 9.938970096497086e-02 9.935539802222057e-02 9.932108588381178e-02 9.928676456682770e-02 9.925243408835159e-02 - 9.921809446546671e-02 9.918374571525623e-02 9.914938785480347e-02 9.911502090119163e-02 9.908064487150398e-02 - 9.904625978282372e-02 9.901186565223413e-02 9.897746249681845e-02 9.894305033365988e-02 9.890862917984172e-02 - 9.887419905244718e-02 9.883975996855951e-02 9.880531194526194e-02 9.877085499963774e-02 9.873638914877009e-02 - 9.870191440974231e-02 9.866743079963761e-02 9.863293833553920e-02 9.859843703453038e-02 9.856392691369432e-02 - 9.852940799011436e-02 9.849488028087365e-02 9.846034380305550e-02 9.842579857374308e-02 9.839124461001970e-02 - 9.835668192896858e-02 9.832211054767293e-02 9.828753048321603e-02 9.825294175268109e-02 9.821834437315143e-02 - 9.818373836171017e-02 9.814912373544066e-02 9.811450051142606e-02 9.807986870674969e-02 9.804522833849474e-02 - 9.801057942374444e-02 9.797592197958208e-02 9.794125602309085e-02 9.790658157135405e-02 9.787189864145487e-02 - 9.783720725047659e-02 9.780250741550246e-02 9.776779915361565e-02 9.773308248189948e-02 9.769835741743713e-02 - 9.766362397731190e-02 9.762888217860698e-02 9.759413203840565e-02 9.755937357379113e-02 9.752460680184671e-02 - 9.748983173965557e-02 9.745504840430097e-02 9.742025681286617e-02 9.738545698243438e-02 9.735064893008888e-02 - 9.731583267291286e-02 9.728100822798963e-02 9.724617561240236e-02 9.721133484323437e-02 9.717648593756885e-02 - 9.714162891248904e-02 9.710676378507821e-02 9.707189057241956e-02 9.703700929159639e-02 9.700211995969188e-02 - 9.696722259378933e-02 9.693231721097194e-02 9.689740382832296e-02 9.686248246292567e-02 9.682755313186324e-02 - 9.679261585221899e-02 9.675767064107609e-02 9.672271751551782e-02 9.668775649262741e-02 9.665278758948814e-02 - 9.661781082318323e-02 9.658282621079586e-02 9.654783376940938e-02 9.651283351610694e-02 9.647782546797186e-02 - 9.644280964208730e-02 9.640778605553657e-02 9.637275472540287e-02 9.633771566876947e-02 9.630266890271960e-02 - 9.626761444433649e-02 9.623255231070338e-02 9.619748251890356e-02 9.616240508602021e-02 9.612732002913663e-02 - 9.609222736533599e-02 9.605712711170160e-02 9.602201928531666e-02 9.598690390326445e-02 9.595178098262819e-02 - 9.591665054049109e-02 9.588151259393644e-02 9.584636716004745e-02 9.581121425590743e-02 9.577605389859950e-02 - 9.574088610520702e-02 9.570571089281314e-02 9.567052827850117e-02 9.563533827935435e-02 9.560014091245586e-02 - 9.556493619488900e-02 9.552972414373699e-02 9.549450477608308e-02 9.545927810901049e-02 9.542404415960248e-02 - 9.538880294494230e-02 9.535355448211316e-02 9.531829878819836e-02 9.528303588028109e-02 9.524776577544461e-02 - 9.521248849077216e-02 9.517720404334697e-02 9.514191245025229e-02 9.510661372857139e-02 9.507130789538748e-02 - 9.503599496778380e-02 9.500067496284360e-02 9.496534789765015e-02 9.493001378928664e-02 9.489467265483635e-02 - 9.485932451138250e-02 9.482396937600834e-02 9.478860726579713e-02 9.475323819783207e-02 9.471786218919645e-02 - 9.468247925697347e-02 9.464708941824643e-02 9.461169269009850e-02 9.457628908961296e-02 9.454087863387305e-02 - 9.450546133996199e-02 9.447003722496307e-02 9.443460630595948e-02 9.439916860003450e-02 9.436372412427137e-02 - 9.432827289575330e-02 9.429281493156354e-02 9.425735024878537e-02 9.422187886450198e-02 9.418640079579664e-02 - 9.415091605975259e-02 9.411542467345307e-02 9.407992665398136e-02 9.404442201842063e-02 9.400891078385415e-02 - 9.397339296736518e-02 9.393786858603695e-02 9.390233765695270e-02 9.386680019719568e-02 9.383125622384911e-02 - 9.379570575399625e-02 9.376014880472036e-02 9.372458539310466e-02 9.368901553623238e-02 9.365343925118678e-02 - 9.361785655505112e-02 9.358226746490858e-02 9.354667199784246e-02 9.351107017093598e-02 9.347546200127239e-02 - 9.343984750593494e-02 9.340422670200685e-02 9.336859960657137e-02 9.333296623671174e-02 9.329732660951121e-02 - 9.326168074205300e-02 9.322602865142039e-02 9.319037035469660e-02 9.315470586896488e-02 9.311903521130845e-02 - 9.308335839881057e-02 9.304767544855448e-02 9.301198637762342e-02 9.297629120310064e-02 9.294058994206936e-02 - 9.290488261161287e-02 9.286916922881436e-02 9.283344981075708e-02 9.279772437452428e-02 9.276199293719922e-02 - 9.272625551586512e-02 9.269051212760523e-02 9.265476278950278e-02 9.261900751864104e-02 9.258324633210324e-02 - 9.254747924697261e-02 9.251170628033240e-02 9.247592744926583e-02 9.244014277085617e-02 9.240435226218666e-02 - 9.236855594034055e-02 9.233275382240104e-02 9.229694592545142e-02 9.226113226657491e-02 9.222531286285476e-02 - 9.218948773137420e-02 9.215365688921646e-02 9.211782035346482e-02 9.208197814120249e-02 9.204613026951274e-02 - 9.201027675547878e-02 9.197441761618388e-02 9.193855286871126e-02 9.190268253014419e-02 9.186680661756588e-02 - 9.183092514805957e-02 9.179503813870854e-02 9.175914560659600e-02 9.172324756880521e-02 9.168734404241941e-02 - 9.165143504452181e-02 9.161552059219569e-02 9.157960070252427e-02 9.154367539259080e-02 9.150774467947854e-02 - 9.147180858027071e-02 9.143586711205055e-02 9.139992029190132e-02 9.136396813690625e-02 9.132801066414858e-02 - 9.129204789071155e-02 9.125607983367841e-02 9.122010651013239e-02 9.118412793715676e-02 9.114814413183472e-02 - 9.111215511124955e-02 9.107616089248448e-02 9.104016149262276e-02 9.100415692874760e-02 9.096814721794225e-02 - 9.093213237728998e-02 9.089611242387401e-02 9.086008737477760e-02 9.082405724708396e-02 9.078802205787638e-02 - 9.075198182423806e-02 9.071593656325225e-02 9.067988629200220e-02 9.064383102757116e-02 9.060777078704237e-02 - 9.057170558749904e-02 9.053563544602444e-02 9.049956037970180e-02 9.046348040561442e-02 9.042739554084545e-02 - 9.039130580247817e-02 9.035521120759583e-02 9.031911177328168e-02 9.028300751661894e-02 9.024689845469086e-02 - 9.021078460458068e-02 9.017466598337168e-02 9.013854260814702e-02 9.010241449599002e-02 9.006628166398388e-02 - 9.003014412921184e-02 8.999400190875718e-02 8.995785501970310e-02 8.992170347913286e-02 8.988554730412972e-02 - 8.984938651177689e-02 8.981322111915761e-02 8.977705114335516e-02 8.974087660145275e-02 8.970469751053363e-02 - 8.966851388768103e-02 8.963232574997822e-02 8.959613311450842e-02 8.955993599835491e-02 8.952373441860086e-02 - 8.948752839232957e-02 8.945131793662427e-02 8.941510306856817e-02 8.937888380524456e-02 8.934266016373665e-02 - 8.930643216112769e-02 8.927019981450095e-02 8.923396314093963e-02 8.919772215752698e-02 8.916147688134625e-02 - 8.912522732948071e-02 8.908897351901354e-02 8.905271546702803e-02 8.901645319060740e-02 8.898018670683491e-02 - 8.894391603279379e-02 8.890764118556729e-02 8.887136218223864e-02 8.883507903989107e-02 8.879879177560786e-02 - 8.876250040647221e-02 8.872620494956741e-02 8.868990542197666e-02 8.865360184078323e-02 8.861729422307035e-02 - 8.858098258592126e-02 8.854466694641919e-02 8.850834732164740e-02 8.847202372868912e-02 8.843569618462761e-02 - 8.839936470654611e-02 8.836302931152785e-02 8.832669001665606e-02 8.829034683901400e-02 8.825399979568492e-02 - 8.821764890375206e-02 8.818129418029862e-02 8.814493564240788e-02 8.810857330716310e-02 8.807220719164749e-02 - 8.803583731294432e-02 8.799946368813677e-02 8.796308633430815e-02 8.792670526854167e-02 8.789032050792057e-02 - 8.785393206952812e-02 8.781753997044753e-02 8.778114422776205e-02 8.774474485855495e-02 8.770834187990943e-02 - 8.767193530890875e-02 8.763552516263615e-02 8.759911145817488e-02 8.756269421260816e-02 8.752627344301928e-02 - 8.748984916649143e-02 8.745342140010788e-02 8.741699016095185e-02 8.738055546610660e-02 8.734411733265539e-02 - 8.730767577768141e-02 8.727123081826793e-02 8.723478247149821e-02 8.719833075445547e-02 8.716187568422298e-02 - 8.712541727788393e-02 8.708895555252159e-02 8.705249052521923e-02 8.701602221306004e-02 8.697955063312730e-02 - 8.694307580250422e-02 8.690659773827408e-02 8.687011645752010e-02 8.683363197732555e-02 8.679714431477362e-02 - 8.676065348694757e-02 8.672415951093065e-02 8.668766240380611e-02 8.665116218265721e-02 8.661465886456714e-02 - 8.657815246661917e-02 8.654164300589655e-02 8.650513049948251e-02 8.646861496446030e-02 8.643209641791315e-02 - 8.639557487692430e-02 8.635905035857701e-02 8.632252287995451e-02 8.628599245814005e-02 8.624945911021686e-02 - 8.621292285326819e-02 8.617638370437727e-02 8.613984168062737e-02 8.610329679910171e-02 8.606674907688353e-02 - 8.603019853105608e-02 8.599364517870259e-02 8.595708903690633e-02 8.592053012275053e-02 8.588396845331842e-02 - 8.584740404569323e-02 8.581083691695822e-02 8.577426708419665e-02 8.573769456449173e-02 8.570111937492672e-02 - 8.566454153258486e-02 8.562796105454940e-02 8.559137795790356e-02 8.555479225973059e-02 8.551820397711374e-02 - 8.548161312713624e-02 8.544501972688134e-02 8.540842379343229e-02 8.537182534387232e-02 8.533522439528468e-02 - 8.529862096475260e-02 8.526201506935933e-02 8.522540672618811e-02 8.518879595232219e-02 8.515218276484479e-02 - 8.511556718083918e-02 8.507894921738858e-02 8.504232889157626e-02 8.500570622048544e-02 8.496908122119934e-02 - 8.493245391080124e-02 8.489582430637438e-02 8.485919242500198e-02 8.482255828376728e-02 8.478592189975355e-02 - 8.474928329004400e-02 8.471264247172190e-02 8.467599946187047e-02 8.463935427757298e-02 8.460270693591267e-02 - 8.456605745397273e-02 8.452940584883646e-02 8.449275213758706e-02 8.445609633730780e-02 8.441943846508193e-02 - 8.438277853799266e-02 8.434611657312326e-02 8.430945258755695e-02 8.427278659837699e-02 8.423611862266661e-02 - 8.419944867750905e-02 8.416277677998756e-02 8.412610294718537e-02 8.408942719618576e-02 8.405274954407191e-02 - 8.401607000792713e-02 8.397938860483460e-02 8.394270535187759e-02 8.390602026613936e-02 8.386933336470312e-02 - 8.383264466465212e-02 8.379595418306962e-02 8.375926193703884e-02 8.372256794364304e-02 8.368587221996546e-02 - 8.364917478308932e-02 8.361247565009787e-02 8.357577483807437e-02 8.353907236410206e-02 8.350236824526415e-02 - 8.346566249864391e-02 8.342895514132459e-02 8.339224619038943e-02 8.335553566292164e-02 8.331882357600448e-02 - 8.328210994672121e-02 8.324539479215504e-02 8.320867812938924e-02 8.317195997550704e-02 8.313524034759166e-02 - 8.309851926272641e-02 8.306179673799445e-02 8.302507279047908e-02 8.298834743726349e-02 8.295162069543097e-02 - 8.291489258206473e-02 8.287816311424805e-02 8.284143230906414e-02 8.280470018359624e-02 8.276796675492762e-02 - 8.273123204014149e-02 8.269449605632111e-02 8.265775882054972e-02 8.262102034991055e-02 8.258428066148686e-02 - 8.254753977236187e-02 8.251079769961885e-02 8.247405446034105e-02 8.243731007161166e-02 8.240056455051395e-02 - 8.236381791413117e-02 8.232707017954656e-02 8.229032136384334e-02 8.225357148410478e-02 8.221682055741411e-02 - 8.218006860085458e-02 8.214331563150944e-02 8.210656166646188e-02 8.206980672279519e-02 8.203305081759260e-02 - 8.199629396793737e-02 8.195953619091272e-02 8.192277750360188e-02 8.188601792308813e-02 8.184925746645468e-02 - 8.181249615078479e-02 8.177573399316168e-02 8.173897101066861e-02 8.170220722038883e-02 8.166544263940556e-02 - 8.162867728480205e-02 8.159191117366156e-02 8.155514432306732e-02 8.151837675010254e-02 8.148160847185050e-02 - 8.144483950539445e-02 8.140806986781760e-02 8.137129957620320e-02 8.133452864763450e-02 8.129775709919475e-02 - 8.126098494796720e-02 8.122421221103504e-02 8.118743890548155e-02 8.115066504838998e-02 8.111389065684355e-02 - 8.107711574792552e-02 8.104034033871912e-02 8.100356444630759e-02 8.096678808777417e-02 8.093001128020215e-02 - 8.089323404067471e-02 8.085645638627510e-02 8.081967833408658e-02 8.078289990119239e-02 8.074612110467576e-02 - 8.070934196161997e-02 8.067256248910820e-02 8.063578270422375e-02 8.059900262404983e-02 8.056222226566968e-02 - 8.052544164616657e-02 8.048866078262369e-02 8.045187969212433e-02 8.041509839175172e-02 8.037831689858911e-02 - 8.034153522971973e-02 8.030475340222681e-02 8.026797143319361e-02 8.023118933970336e-02 8.019440713883932e-02 - 8.015762484768471e-02 8.012084248332278e-02 8.008406006283678e-02 8.004727760330994e-02 8.001049512182555e-02 - 7.997371263546676e-02 7.993693016131688e-02 7.990014771645915e-02 7.986336531797676e-02 7.982658298295300e-02 - 7.978980072847111e-02 7.975301857161432e-02 7.971623652946590e-02 7.967945461910902e-02 7.964267285762699e-02 - 7.960589126210302e-02 7.956910984962039e-02 7.953232863726228e-02 7.949554764211197e-02 7.945876688125271e-02 - 7.942198637176773e-02 7.938520613074028e-02 7.934842617525358e-02 7.931164652239087e-02 7.927486718923542e-02 - 7.923808819287045e-02 7.920130955037924e-02 7.916453127884499e-02 7.912775339535094e-02 7.909097591698037e-02 - 7.905419886081648e-02 7.901742224394255e-02 7.898064608344180e-02 7.894387039639746e-02 7.890709519989279e-02 - 7.887032051101103e-02 7.883354634683543e-02 7.879677272444922e-02 7.875999966093565e-02 7.872322717337794e-02 - 7.868645527885937e-02 7.864968399446313e-02 7.861291333727252e-02 7.857614332437074e-02 7.853937397284104e-02 - 7.850260529976670e-02 7.846583732223091e-02 7.842907005731693e-02 7.839230352210801e-02 7.835553773368738e-02 - 7.831877270913830e-02 7.828200846554398e-02 7.824524501998768e-02 7.820848238955266e-02 7.817172059132216e-02 - 7.813495964237939e-02 7.809819955980761e-02 7.806144036069006e-02 7.802468206210998e-02 7.798792468115062e-02 - 7.795116823489523e-02 7.791441274042703e-02 7.787765821482928e-02 7.784090467518520e-02 7.780415213857807e-02 - 7.776740062209107e-02 7.773065014280750e-02 7.769390071781057e-02 7.765715236418354e-02 7.762040509900967e-02 - 7.758365893937215e-02 7.754691390235426e-02 7.751017000503922e-02 7.747342726451029e-02 7.743668569785070e-02 - 7.739994532214370e-02 7.736320615447252e-02 7.732646821192042e-02 7.728973151157063e-02 7.725299607050642e-02 - 7.721626190581099e-02 7.717952903456758e-02 7.714279747385946e-02 7.710606724076986e-02 7.706933835238206e-02 - 7.703261082577922e-02 7.699588467804465e-02 7.695915992626157e-02 7.692243658751323e-02 7.688571467888285e-02 - 7.684899421745368e-02 7.681227522030898e-02 7.677555770453198e-02 7.673884168720593e-02 7.670212718541405e-02 - 7.666541421623961e-02 7.662870279676583e-02 7.659199294407595e-02 7.655528467525324e-02 7.651857800738091e-02 - 7.648187295754222e-02 7.644516954282041e-02 7.640846778029871e-02 7.637176768706039e-02 7.633506928018867e-02 - 7.629837257676678e-02 7.626167759387799e-02 7.622498434860552e-02 7.618829285803264e-02 7.615160313924255e-02 - 7.611491520931853e-02 7.607822908534380e-02 7.604154478440163e-02 7.600486232357523e-02 7.596818171994783e-02 - 7.593150299060271e-02 7.589482615262309e-02 7.585815122309225e-02 7.582147821909338e-02 7.578480715770973e-02 - 7.574813805602458e-02 7.571147093112113e-02 7.567480580008265e-02 7.563814267999236e-02 7.560148158793352e-02 - 7.556482254098935e-02 7.552816555624312e-02 7.549151065077807e-02 7.545485784167741e-02 7.541820714602442e-02 - 7.538155858090231e-02 7.534491216339434e-02 7.530826791058375e-02 7.527162583955378e-02 7.523498596738766e-02 - 7.519834831116866e-02 7.516171288797999e-02 7.512507971490495e-02 7.508844880902671e-02 7.505182018742854e-02 - 7.501519386719367e-02 7.497856986540538e-02 7.494194819914687e-02 7.490532888550142e-02 7.486871194155223e-02 - 7.483209738438257e-02 7.479548523107570e-02 7.475887549871482e-02 7.472226820438319e-02 7.468566336516404e-02 - 7.464906099814063e-02 7.461246112039621e-02 7.457586374901400e-02 7.453926890107723e-02 7.450267659366919e-02 - 7.446608684387307e-02 7.442949966877216e-02 7.439291508544965e-02 7.435633311098883e-02 7.431975376247291e-02 - 7.428317705698513e-02 7.424660301160878e-02 7.421003164342704e-02 7.417346296952319e-02 7.413689700698045e-02 - 7.410033377288210e-02 7.406377328431132e-02 7.402721555835140e-02 7.399066061208556e-02 7.395410846259706e-02 - 7.391755912696915e-02 7.388101262228504e-02 7.384446896562798e-02 7.380792817408122e-02 7.377139026472800e-02 - 7.373485525465158e-02 7.369832316093516e-02 7.366179400066203e-02 7.362526779091538e-02 7.358874454877849e-02 - 7.355222429133459e-02 7.351570703566694e-02 7.347919279885876e-02 7.344268159799329e-02 7.340617345015378e-02 - 7.336966837242348e-02 7.333316638188561e-02 7.329666749562345e-02 7.326017173072021e-02 7.322367910425913e-02 - 7.318718963332346e-02 7.315070333499644e-02 7.311422022636133e-02 7.307774032450136e-02 7.304126364649975e-02 - 7.300479020943977e-02 7.296832003040465e-02 7.293185312647765e-02 7.289538951474199e-02 7.285892921228092e-02 - 7.282247223617767e-02 7.278601860351550e-02 7.274956833137766e-02 7.271312143684736e-02 7.267667793700786e-02 - 7.264023784894239e-02 7.260380118973422e-02 7.256736797646657e-02 7.253093822622268e-02 7.249451195608582e-02 - 7.245808918313920e-02 7.242166992446607e-02 7.238525419714967e-02 7.234884201827325e-02 7.231243340492007e-02 - 7.227602837417331e-02 7.223962694311627e-02 7.220322912883217e-02 7.216683494840427e-02 7.213044441891579e-02 - 7.209405755744998e-02 7.205767438109009e-02 7.202129490691934e-02 7.198491915202099e-02 7.194854713347830e-02 - 7.191217886837446e-02 7.187581437379276e-02 7.183945366681642e-02 7.180309676452867e-02 7.176674368401278e-02 - 7.173039444235199e-02 7.169404905662952e-02 7.165770754392863e-02 7.162136992133256e-02 7.158503620592453e-02 - 7.154870641478780e-02 7.151238056500563e-02 7.147605867366123e-02 7.143974075783785e-02 7.140342683461876e-02 - 7.136711692108716e-02 7.133081103432631e-02 7.129450919141947e-02 7.125821140944985e-02 7.122191770550071e-02 - 7.118562809665530e-02 7.114934259999683e-02 7.111306123260858e-02 7.107678401157377e-02 7.104051095397565e-02 - 7.100424207689746e-02 7.096797739742244e-02 7.093171693263382e-02 7.089546069961486e-02 7.085920871544882e-02 - 7.082296099721888e-02 7.078671756200834e-02 7.075047842690044e-02 7.071424360897838e-02 7.067801312532543e-02 - 7.064178699302483e-02 7.060556522915983e-02 7.056934785081363e-02 7.053313487506954e-02 7.049692631901075e-02 - 7.046072219972052e-02 7.042452253428211e-02 7.038832733977872e-02 7.035213663329361e-02 7.031595043191004e-02 - 7.027976875271123e-02 7.024359161278042e-02 7.020741902920087e-02 7.017125101905583e-02 7.013508759942851e-02 - 7.009892878740216e-02 7.006277460006004e-02 7.002662505448538e-02 6.999048016776144e-02 6.995433995697144e-02 - 6.991820443919861e-02 6.988207363152622e-02 6.984594755103750e-02 6.980982621481568e-02 6.977370963994402e-02 - 6.973759784350578e-02 6.970149084258416e-02 6.966538865426242e-02 6.962929129562380e-02 6.959319878375156e-02 - 6.955711113572893e-02 6.952102836863913e-02 6.948495049956542e-02 6.944887754559105e-02 6.941280952379927e-02 - 6.937674645127329e-02 6.934068834509637e-02 6.930463522235174e-02 6.926858710012268e-02 6.923254399549238e-02 - 6.919650592554411e-02 6.916047290736112e-02 6.912444495802665e-02 6.908842209462392e-02 6.905240433423616e-02 - 6.901639169394666e-02 6.898038419083864e-02 6.894438184199533e-02 6.890838466449999e-02 6.887239267543585e-02 - 6.883640589188617e-02 6.880042433093415e-02 6.876444800966307e-02 6.872847694515619e-02 6.869251115449670e-02 - 6.865655065476786e-02 6.862059546305292e-02 6.858464559643512e-02 6.854870107199770e-02 6.851276190682393e-02 - 6.847682811799699e-02 6.844089972260017e-02 6.840497673771671e-02 6.836905918042983e-02 6.833314706782279e-02 - 6.829724041697882e-02 6.826133924498116e-02 6.822544356891308e-02 6.818955340585779e-02 6.815366877289854e-02 - 6.811778968711857e-02 6.808191616560114e-02 6.804604822542948e-02 6.801018588368681e-02 6.797432915745642e-02 - 6.793847806382150e-02 6.790263261986533e-02 6.786679284267115e-02 6.783095874932217e-02 6.779513035690166e-02 - 6.775930768249286e-02 6.772349074317900e-02 6.768767955604332e-02 6.765187413816909e-02 6.761607450663952e-02 - 6.758028067853786e-02 6.754449267094738e-02 6.750871050095128e-02 6.747293418563281e-02 6.743716374207524e-02 - 6.740139918736179e-02 6.736564053857570e-02 6.732988781280023e-02 6.729414102711860e-02 6.725840019861405e-02 - 6.722266534436987e-02 6.718693648146923e-02 6.715121362699542e-02 6.711549679803168e-02 6.707978601166123e-02 - 6.704408128496732e-02 6.700838263503321e-02 6.697269007894212e-02 6.693700363377729e-02 6.690132331662198e-02 - 6.686564914455943e-02 6.682998113467287e-02 6.679431930404556e-02 6.675866366976070e-02 6.672301424890158e-02 - 6.668737105855144e-02 6.665173411579348e-02 6.661610343771096e-02 6.658047904138716e-02 6.654486094390526e-02 - 6.650924916234854e-02 6.647364371380024e-02 6.643804461534360e-02 6.640245188406185e-02 6.636686553703826e-02 - 6.633128559135604e-02 6.629571206409844e-02 6.626014497234871e-02 6.622458433319009e-02 6.618903016370581e-02 - 6.615348248097914e-02 6.611794130209329e-02 6.608240664413152e-02 6.604687852417708e-02 6.601135695931318e-02 - 6.597584196662311e-02 6.594033356319007e-02 6.590483176609731e-02 6.586933659242808e-02 6.583384805926563e-02 - 6.579836618369318e-02 6.576289098279399e-02 6.572742247365128e-02 6.569196067334833e-02 6.565650559896835e-02 - 6.562105726759460e-02 6.558561569631030e-02 6.555018090219872e-02 6.551475290234308e-02 6.547933171382664e-02 - 6.544391735373260e-02 6.540850983914427e-02 6.537310918714484e-02 6.533771541481756e-02 6.530232853924568e-02 - 6.526694857751246e-02 6.523157554670111e-02 6.519620946389489e-02 6.516085034617702e-02 6.512549821063078e-02 - 6.509015307433939e-02 6.505481495438609e-02 6.501948386785412e-02 6.498415983182672e-02 6.494884286338716e-02 - 6.491353297961865e-02 6.487823019760443e-02 6.484293453442776e-02 6.480764600717190e-02 6.477236463292005e-02 - 6.473709042875546e-02 6.470182341176141e-02 6.466656359902111e-02 6.463131100761778e-02 6.459606565463470e-02 - 6.456082755715510e-02 6.452559673226224e-02 6.449037319703932e-02 6.445515696856961e-02 6.441994806393636e-02 - 6.438474650022280e-02 6.434955229451217e-02 6.431436546388770e-02 6.427918602543267e-02 6.424401399623028e-02 - 6.420884939336380e-02 6.417369223391646e-02 6.413854253497149e-02 6.410340031361215e-02 6.406826558692170e-02 - 6.403313837198334e-02 6.399801868588033e-02 6.396290654569593e-02 6.392780196851335e-02 6.389270497141585e-02 - 6.385761557148667e-02 6.382253378580906e-02 6.378745963146625e-02 6.375239312554147e-02 6.371733428511799e-02 - 6.368228312727903e-02 6.364723966910786e-02 6.361220392768768e-02 6.357717592010177e-02 6.354215566343337e-02 - 6.350714317476568e-02 6.347213847118198e-02 6.343714156976551e-02 6.340215248759951e-02 6.336717124176720e-02 - 6.333219784935186e-02 6.329723232743668e-02 6.326227469310496e-02 6.322732496343991e-02 6.319238315552476e-02 - 6.315744928644278e-02 6.312252337327721e-02 6.308760543311126e-02 6.305269548302821e-02 6.301779354011129e-02 - 6.298289962144372e-02 6.294801374410877e-02 6.291313592518968e-02 6.287826618176968e-02 6.284340453093201e-02 - 6.280855098975993e-02 6.277370557533665e-02 6.273886830474544e-02 6.270403919506955e-02 6.266921826339220e-02 - 6.263440552679662e-02 6.259960100236607e-02 6.256480470718381e-02 6.253001665833306e-02 6.249523687289707e-02 - 6.246046536795907e-02 6.242570216060229e-02 6.239094726791002e-02 6.235620070696547e-02 6.232146249485187e-02 - 6.228673264865250e-02 6.225201118545055e-02 6.221729812232930e-02 6.218259347637199e-02 6.214789726466187e-02 - 6.211320950428215e-02 6.207853021231610e-02 6.204385940584693e-02 6.200919710195792e-02 6.197454331773228e-02 - 6.193989807025328e-02 6.190526137660414e-02 6.187063325386812e-02 6.183601371912845e-02 6.180140278946837e-02 - 6.176680048197113e-02 6.173220681371997e-02 6.169762180179813e-02 6.166304546328885e-02 6.162847781527538e-02 - 6.159391887484095e-02 6.155936865906880e-02 6.152482718504219e-02 6.149029446984435e-02 6.145577053055853e-02 - 6.142125538426796e-02 6.138674904805590e-02 6.135225153900557e-02 6.131776287420022e-02 6.128328307072310e-02 - 6.124881214565744e-02 6.121435011608650e-02 6.117989699909349e-02 6.114545281176169e-02 6.111101757117431e-02 - 6.107659129441460e-02 6.104217399856583e-02 6.100776570071121e-02 6.097336641793399e-02 6.093897616731742e-02 - 6.090459496594473e-02 6.087022283089916e-02 6.083585977926396e-02 6.080150582812238e-02 6.076716099455765e-02 - 6.073282529565302e-02 6.069849874849172e-02 6.066418137015700e-02 6.062987317773211e-02 6.059557418830027e-02 - 6.056128441894475e-02 6.052700388674876e-02 6.049273260879557e-02 6.045847060216841e-02 6.042421788395052e-02 - 6.038997447122514e-02 6.035574038107552e-02 6.032151563058490e-02 6.028730023683652e-02 6.025309421691362e-02 - 6.021889758789946e-02 6.018471036687725e-02 6.015053257093025e-02 6.011636421714171e-02 6.008220532259485e-02 - 6.004805590437293e-02 6.001391597955918e-02 5.997978556523686e-02 5.994566467848918e-02 5.991155333639943e-02 - 5.987745155605081e-02 5.984335935452657e-02 5.980927674890997e-02 5.977520375628423e-02 5.974114039373261e-02 - 5.970708667833834e-02 5.967304262718466e-02 5.963900825735483e-02 5.960498358593206e-02 5.957096862999962e-02 - 5.953696340664075e-02 5.950296793293869e-02 5.946898222597666e-02 5.943500630283793e-02 5.940104018060574e-02 - 5.936708387636331e-02 5.933313740719390e-02 5.929920079018074e-02 5.926527404240709e-02 5.923135718095618e-02 - 5.919745022291125e-02 5.916355318535554e-02 5.912966608537230e-02 5.909578894004478e-02 5.906192176645620e-02 - 5.902806458168981e-02 5.899421740282887e-02 5.896038024695659e-02 5.892655313115624e-02 5.889273607251104e-02 - 5.885892908810425e-02 5.882513219501910e-02 5.879134541033884e-02 5.875756875114671e-02 5.872380223452595e-02 - 5.869004587755981e-02 5.865629969733151e-02 5.862256371092430e-02 5.858883793542144e-02 5.855512238790617e-02 - 5.852141708546170e-02 5.848772204517131e-02 5.845403728411822e-02 5.842036281938568e-02 5.838669866805692e-02 - 5.835304484721521e-02 5.831940137394376e-02 5.828576826532585e-02 5.825214553844467e-02 5.821853321038349e-02 - 5.818493129822556e-02 5.815133981905412e-02 5.811775878995240e-02 5.808418822800365e-02 5.805062815029110e-02 - 5.801707857389801e-02 5.798353951590760e-02 5.795001099340315e-02 5.791649302346786e-02 5.788298562318499e-02 - 5.784948880963779e-02 5.781600259990949e-02 5.778252701108333e-02 5.774906206024256e-02 5.771560776447041e-02 - 5.768216414085015e-02 5.764873120646499e-02 5.761530897839819e-02 5.758189747373298e-02 5.754849670955262e-02 - 5.751510670294033e-02 5.748172747097936e-02 5.744835903075296e-02 5.741500139934437e-02 5.738165459383683e-02 - 5.734831863131357e-02 5.731499352885785e-02 5.728167930355290e-02 5.724837597248197e-02 5.721508355272830e-02 - 5.718180206137512e-02 5.714853151550570e-02 5.711527193220325e-02 5.708202332855103e-02 5.704878572163228e-02 - 5.701555912853024e-02 5.698234356632816e-02 5.694913905210926e-02 5.691594560295680e-02 5.688276323595402e-02 - 5.684959196818416e-02 5.681643181673045e-02 5.678328279867616e-02 5.675014493110452e-02 5.671701823109875e-02 - 5.668390271574211e-02 5.665079840211785e-02 5.661770530730920e-02 5.658462344839940e-02 5.655155284247171e-02 - 5.651849350660935e-02 5.648544545789557e-02 5.645240871341362e-02 5.641938329024674e-02 5.638636920547815e-02 - 5.635336647619112e-02 5.632037511946889e-02 5.628739515239468e-02 5.625442659205174e-02 5.622146945552333e-02 - 5.618852375989267e-02 5.615558952224302e-02 5.612266675965761e-02 5.608975548921968e-02 5.605685572801247e-02 - 5.602396749311925e-02 5.599109080162322e-02 5.595822567060765e-02 5.592537211715578e-02 5.589253015835084e-02 - 5.585969981127608e-02 5.582688109301474e-02 5.579407402065006e-02 5.576127861126528e-02 5.572849488194366e-02 - 5.569572284976842e-02 5.566296253182280e-02 5.563021394519008e-02 5.559747710695345e-02 5.556475203419618e-02 - 5.553203874400151e-02 5.549933725345269e-02 5.546664757963294e-02 5.543396973962551e-02 5.540130375051366e-02 - 5.536864962938060e-02 5.533600739330961e-02 5.530337705938389e-02 5.527075864468672e-02 5.523815216630132e-02 - 5.520555764131094e-02 5.517297508679882e-02 5.514040451984819e-02 5.510784595754230e-02 5.507529941696442e-02 - 5.504276491519774e-02 5.501024246932555e-02 5.497773209643106e-02 5.494523381359754e-02 5.491274763790820e-02 - 5.488027358644629e-02 5.484781167629507e-02 5.481536192453777e-02 5.478292434825763e-02 5.475049896453790e-02 - 5.471808579046181e-02 5.468568484311261e-02 5.465329613957354e-02 5.462091969692785e-02 5.458855553225877e-02 - 5.455620366264955e-02 5.452386410518342e-02 5.449153687694363e-02 5.445922199501343e-02 5.442691947647604e-02 - 5.439462933841474e-02 5.436235159791274e-02 5.433008627205328e-02 5.429783337791962e-02 5.426559293259499e-02 - 5.423336495316264e-02 5.420114945670580e-02 5.416894646030773e-02 5.413675598105167e-02 5.410457803602083e-02 - 5.407241264229849e-02 5.404025981696787e-02 5.400811957711223e-02 5.397599193981480e-02 5.394387692215881e-02 - 5.391177454122753e-02 5.387968481410418e-02 5.384760775787202e-02 5.381554338961427e-02 5.378349172641418e-02 - 5.375145278535501e-02 5.371942658351998e-02 5.368741313799234e-02 5.365541246585533e-02 5.362342458419220e-02 - 5.359144951008617e-02 5.355948726062051e-02 5.352753785287844e-02 5.349560130394321e-02 5.346367763089808e-02 - 5.343176685082626e-02 5.339986898081100e-02 5.336798403793557e-02 5.333611203928318e-02 5.330425300193709e-02 - 5.327240694298052e-02 5.324057387949673e-02 5.320875382856897e-02 5.317694680728046e-02 5.314515283271445e-02 - 5.311337192195419e-02 5.308160409208292e-02 5.304984936018387e-02 5.301810774334029e-02 5.298637925860694e-02 - 5.295466392210174e-02 5.292296174881576e-02 5.289127275367324e-02 5.285959695159842e-02 5.282793435751552e-02 - 5.279628498634878e-02 5.276464885302243e-02 5.273302597246069e-02 5.270141635958780e-02 5.266982002932800e-02 - 5.263823699660550e-02 5.260666727634453e-02 5.257511088346935e-02 5.254356783290417e-02 5.251203813957321e-02 - 5.248052181840073e-02 5.244901888431094e-02 5.241752935222807e-02 5.238605323707637e-02 5.235459055378005e-02 - 5.232314131726334e-02 5.229170554245050e-02 5.226028324426572e-02 5.222887443763326e-02 5.219747913747734e-02 - 5.216609735872220e-02 5.213472911629205e-02 5.210337442511115e-02 5.207203330010370e-02 5.204070575619395e-02 - 5.200939180830615e-02 5.197809147136448e-02 5.194680476029321e-02 5.191553169001656e-02 5.188427227545876e-02 - 5.185302653154403e-02 5.182179447319664e-02 5.179057611534077e-02 5.175937147290068e-02 5.172818056080060e-02 - 5.169700339396475e-02 5.166583998731737e-02 5.163469035578269e-02 5.160355451428494e-02 5.157243247774834e-02 - 5.154132426109714e-02 5.151022987925555e-02 5.147914934714782e-02 5.144808267969817e-02 5.141702989183084e-02 - 5.138599099847005e-02 5.135496601454004e-02 5.132395495496503e-02 5.129295783466926e-02 5.126197466857695e-02 - 5.123100547161235e-02 5.120005025869967e-02 5.116910904476317e-02 5.113818184472704e-02 5.110726867351554e-02 - 5.107636954605289e-02 5.104548447726333e-02 5.101461348207109e-02 5.098375657540039e-02 5.095291377217546e-02 - 5.092208508732055e-02 5.089127053575987e-02 5.086047013241765e-02 5.082968389221815e-02 5.079891183008556e-02 - 5.076815396094415e-02 5.073741029971812e-02 5.070668086133172e-02 5.067596566070917e-02 5.064526471277472e-02 - 5.061457803245257e-02 5.058390563466697e-02 5.055324753434216e-02 5.052260374640234e-02 5.049197428577178e-02 - 5.046135916737467e-02 5.043075840613528e-02 5.040017201697781e-02 5.036960001482652e-02 5.033904241460560e-02 - 5.030849923123931e-02 5.027797047965189e-02 5.024745617476754e-02 5.021695633151052e-02 5.018647096480505e-02 - 5.015600008957535e-02 5.012554372074565e-02 5.009510187324022e-02 5.006467456198324e-02 5.003426180189897e-02 - 5.000386360791163e-02 4.997347999494546e-02 4.994311097792468e-02 4.991275657177353e-02 4.988241679141623e-02 - 4.985209165177702e-02 4.982178116778014e-02 4.979148535434980e-02 4.976120422641023e-02 4.973093779888569e-02 - 4.970068608670038e-02 4.967044910477855e-02 4.964022686804442e-02 4.961001939142222e-02 4.957982668983620e-02 - 4.954964877821057e-02 4.951948567146956e-02 4.948933738453741e-02 4.945920393233836e-02 4.942908532979662e-02 - 4.939898159183643e-02 4.936889273338203e-02 4.933881876935763e-02 4.930875971468749e-02 4.927871558429582e-02 - 4.924868639310685e-02 4.921867215604481e-02 4.918867288803395e-02 4.915868860399848e-02 4.912871931886263e-02 - 4.909876504755066e-02 4.906882580498677e-02 4.903890160609520e-02 4.900899246580018e-02 4.897909839902595e-02 - 4.894921942069672e-02 4.891935554573676e-02 4.888950678907025e-02 4.885967316562146e-02 4.882985469031461e-02 - 4.880005137807392e-02 4.877026324382362e-02 4.874049030248797e-02 4.871073256899117e-02 4.868099005825745e-02 - 4.865126278521108e-02 4.862155076477624e-02 4.859185401187720e-02 4.856217254143816e-02 4.853250636838338e-02 - 4.850285550763707e-02 4.847321997412347e-02 4.844359978276680e-02 4.841399494849130e-02 4.838440548622121e-02 - 4.835483141088075e-02 4.832527273739414e-02 4.829572948068564e-02 4.826620165567946e-02 4.823668927729983e-02 - 4.820719236047098e-02 4.817771092011715e-02 4.814824497116257e-02 4.811879452853147e-02 4.808935960714807e-02 - 4.805994022193662e-02 4.803053638782134e-02 4.800114811972645e-02 4.797177543257621e-02 4.794241834129482e-02 - 4.791307686080653e-02 4.788375100603556e-02 4.785444079190614e-02 4.782514623334252e-02 4.779586734526891e-02 - 4.776660414260955e-02 4.773735664028868e-02 4.770812485323050e-02 4.767890879635927e-02 4.764970848459921e-02 - 4.762052393287456e-02 4.759135515610954e-02 4.756220216922838e-02 4.753306498715533e-02 4.750394362481459e-02 - 4.747483809713041e-02 4.744574841902701e-02 4.741667460542864e-02 4.738761667125952e-02 4.735857463144388e-02 - 4.732954850090595e-02 4.730053829456995e-02 4.727154402736015e-02 4.724256571420073e-02 4.721360337001596e-02 - 4.718465700973005e-02 4.715572664826723e-02 4.712681230055175e-02 4.709791398150782e-02 4.706903170605968e-02 - 4.704016548913156e-02 4.701131534564769e-02 4.698248129053231e-02 4.695366333870963e-02 4.692486150510391e-02 - 4.689607580463934e-02 4.686730625224018e-02 4.683855286283068e-02 4.680981565133503e-02 4.678109463267748e-02 - 4.675238982178226e-02 4.672370123357359e-02 4.669502888297572e-02 4.666637278491287e-02 4.663773295430927e-02 - 4.660910940608916e-02 4.658050215517676e-02 4.655191121649629e-02 4.652333660497202e-02 4.649477833552815e-02 - 4.646623642308891e-02 4.643771088257853e-02 4.640920172892127e-02 4.638070897704132e-02 4.635223264186294e-02 - 4.632377273831036e-02 4.629532928130779e-02 4.626690228577947e-02 4.623849176664965e-02 4.621009773884253e-02 - 4.618172021728237e-02 4.615335921689338e-02 4.612501475259979e-02 4.609668683932586e-02 4.606837549199577e-02 - 4.604008072553380e-02 4.601180255486416e-02 4.598354099491107e-02 4.595529606059879e-02 4.592706776685152e-02 - 4.589885612859351e-02 4.587066116074899e-02 4.584248287824218e-02 4.581432129599732e-02 4.578617642893863e-02 - 4.575804829199037e-02 4.572993690007673e-02 4.570184226812196e-02 4.567376441105030e-02 4.564570334378597e-02 - 4.561765908125320e-02 4.558963163837623e-02 4.556162103007928e-02 4.553362727128659e-02 4.550565037692238e-02 - 4.547769036191089e-02 4.544974724117636e-02 4.542182102964300e-02 4.539391174223504e-02 4.536601939387674e-02 - 4.533814399949231e-02 4.531028557400597e-02 4.528244413234197e-02 4.525461968942453e-02 4.522681226017790e-02 - 4.519902185952628e-02 4.517124850239393e-02 4.514349220370505e-02 4.511575297838390e-02 4.508803084135470e-02 - 4.506032580754168e-02 4.503263789186907e-02 4.500496710926111e-02 4.497731347464200e-02 4.494967700293602e-02 - 4.492205770906736e-02 4.489445560796028e-02 4.486687071453899e-02 4.483930304372771e-02 4.481175261045071e-02 - 4.478421942963219e-02 4.475670351619640e-02 4.472920488506756e-02 4.470172355116988e-02 4.467425952942764e-02 - 4.464681283476502e-02 4.461938348210628e-02 4.459197148637566e-02 4.456457686249737e-02 4.453719962539564e-02 - 4.450983978999472e-02 4.448249737121881e-02 4.445517238399217e-02 4.442786484323902e-02 4.440057476388359e-02 - 4.437330216085012e-02 4.434604704906282e-02 4.431880944344595e-02 4.429158935892372e-02 4.426438681042035e-02 - 4.423720181286010e-02 4.421003438116718e-02 4.418288453026584e-02 4.415575227508029e-02 4.412863763053477e-02 - 4.410154061155352e-02 4.407446123306075e-02 4.404739950998071e-02 4.402035545723762e-02 4.399332908975571e-02 - 4.396632042245923e-02 4.393932947027238e-02 4.391235624811941e-02 4.388540077092456e-02 4.385846305361203e-02 - 4.383154311110608e-02 4.380464095833093e-02 4.377775661021081e-02 4.375089008166996e-02 4.372404138763258e-02 - 4.369721054302294e-02 4.367039756276526e-02 4.364360246178376e-02 4.361682525500267e-02 4.359006595734623e-02 - 4.356332458373868e-02 4.353660114910423e-02 4.350989566836711e-02 4.348320815645158e-02 4.345653862828184e-02 - 4.342988709878214e-02 4.340325358287669e-02 4.337663809548974e-02 4.335004065154552e-02 4.332346126596825e-02 - 4.329689995368217e-02 4.327035672961151e-02 4.324383160868049e-02 4.321732460581335e-02 4.319083573593433e-02 - 4.316436501396765e-02 4.313791245483754e-02 4.311147807346823e-02 4.308506188478395e-02 4.305866390370894e-02 - 4.303228414516742e-02 4.300592262408363e-02 4.297957935538180e-02 4.295325435398616e-02 4.292694763482094e-02 - 4.290065921281035e-02 4.287438910287866e-02 4.284813731995007e-02 4.282190387894883e-02 4.279568879479917e-02 - 4.276949208242530e-02 4.274331375675147e-02 4.271715383270192e-02 4.269101232520085e-02 4.266488924917250e-02 - 4.263878461954113e-02 4.261269845123093e-02 4.258663075916616e-02 4.256058155827103e-02 4.253455086346980e-02 - 4.250853868968667e-02 4.248254505184589e-02 4.245656996487169e-02 4.243061344368828e-02 4.240467550321991e-02 - 4.237875615839081e-02 4.235285542412521e-02 4.232697331534734e-02 4.230110984698143e-02 4.227526503395169e-02 - 4.224943889118240e-02 4.222363143359775e-02 4.219784267612198e-02 4.217207263367933e-02 4.214632132119402e-02 - 4.212058875359029e-02 4.209487494579236e-02 4.206917991272448e-02 4.204350366931086e-02 4.201784623047573e-02 - 4.199220761114335e-02 4.196658782623791e-02 4.194098689068368e-02 4.191540481940486e-02 4.188984162732570e-02 - 4.186429732937041e-02 4.183877194046326e-02 4.181326547552844e-02 4.178777794949019e-02 4.176230937727277e-02 - 4.173685977380037e-02 4.171142915399725e-02 4.168601753278764e-02 4.166062492509574e-02 4.163525134584580e-02 - 4.160989680996207e-02 4.158456133236876e-02 4.155924492799010e-02 4.153394761175032e-02 4.150866939857367e-02 - 4.148341030338436e-02 4.145817034110662e-02 4.143294952666470e-02 4.140774787498282e-02 4.138256540098521e-02 - 4.135740211959609e-02 4.133225804573972e-02 4.130713319434030e-02 4.128202758032209e-02 4.125694121860929e-02 - 4.123187412412615e-02 4.120682631179690e-02 4.118179779654577e-02 4.115678859329698e-02 4.113179871697477e-02 - 4.110682818250337e-02 4.108187700480702e-02 4.105694519880994e-02 4.103203277943635e-02 4.100713976161051e-02 - 4.098226616025662e-02 4.095741199029894e-02 4.093257726666168e-02 4.090776200426908e-02 4.088296621804536e-02 - 4.085818992291476e-02 4.083343313380151e-02 4.080869586562985e-02 4.078397813332400e-02 4.075927995180818e-02 - 4.073460133600665e-02 4.070994230084361e-02 4.068530286124331e-02 4.066068303212998e-02 4.063608282842784e-02 - 4.061150226506113e-02 4.058694135695408e-02 4.056240011903092e-02 4.053787856621588e-02 4.051337671343318e-02 - 4.048889457560707e-02 4.046443216766178e-02 4.043998950452153e-02 4.041556660111054e-02 4.039116347235307e-02 - 4.036678013317334e-02 4.034241659849556e-02 4.031807288324400e-02 4.029374900234285e-02 4.026944497071637e-02 - 4.024516080328877e-02 4.022089651498431e-02 4.019665212072718e-02 4.017242763544165e-02 4.014822307405193e-02 - 4.012403845148225e-02 4.009987378265685e-02 4.007572908249996e-02 4.005160436593580e-02 4.002749964788860e-02 - 4.000341494328261e-02 3.997935026862905e-02 3.995530565020248e-02 3.993128111798760e-02 3.990727670197625e-02 - 3.988329243216027e-02 3.985932833853151e-02 3.983538445108181e-02 3.981146079980302e-02 3.978755741468697e-02 - 3.976367432572553e-02 3.973981156291052e-02 3.971596915623379e-02 3.969214713568721e-02 3.966834553126258e-02 - 3.964456437295178e-02 3.962080369074663e-02 3.959706351463900e-02 3.957334387462071e-02 3.954964480068362e-02 - 3.952596632281957e-02 3.950230847102040e-02 3.947867127527795e-02 3.945505476558409e-02 3.943145897193063e-02 - 3.940788392430945e-02 3.938432965271236e-02 3.936079618713123e-02 3.933728355755788e-02 3.931379179398419e-02 - 3.929032092640197e-02 3.926687098480308e-02 3.924344199917935e-02 3.922003399952266e-02 3.919664701582481e-02 - 3.917328107807769e-02 3.914993621627309e-02 3.912661246040292e-02 3.910330984045896e-02 3.908002838643308e-02 - 3.905676812831715e-02 3.903352909610298e-02 3.901031131978242e-02 3.898711482934733e-02 3.896393965478955e-02 - 3.894078582610091e-02 3.891765337327326e-02 3.889454232629846e-02 3.887145271516833e-02 3.884838456987474e-02 - 3.882533792040951e-02 3.880231279676451e-02 3.877930922893155e-02 3.875632724690252e-02 3.873336688066923e-02 - 3.871042816022353e-02 3.868751111555727e-02 3.866461577666229e-02 3.864174217353044e-02 3.861889033615356e-02 - 3.859606029452349e-02 3.857325207863209e-02 3.855046571847119e-02 3.852770124403264e-02 3.850495868530828e-02 - 3.848223807228996e-02 3.845953943496952e-02 3.843686280333881e-02 3.841420820738967e-02 3.839157567711395e-02 - 3.836896524250349e-02 3.834637693355013e-02 3.832381078024572e-02 3.830126681258209e-02 3.827874506055112e-02 - 3.825624555414461e-02 3.823376832335444e-02 3.821131339817244e-02 3.818888080859045e-02 3.816647058460032e-02 - 3.814408275619389e-02 3.812171735336303e-02 3.809937440609954e-02 3.807705394439530e-02 3.805475599824214e-02 - 3.803248059763190e-02 3.801022777255643e-02 3.798799755300758e-02 3.796578996897719e-02 3.794360505045710e-02 - 3.792144282743916e-02 3.789930332991522e-02 3.787718658787710e-02 3.785509263131667e-02 3.783302149022577e-02 - 3.781097319459624e-02 3.778894777441992e-02 3.776694525968866e-02 3.774496568039430e-02 3.772300906652870e-02 - 3.770107544808367e-02 3.767916485505110e-02 3.765727731742280e-02 3.763541286519063e-02 3.761357152834642e-02 - 3.759175333688204e-02 3.756995832078931e-02 3.754818651006007e-02 3.752643793468620e-02 3.750471262465951e-02 - 3.748301060997186e-02 3.746133192061509e-02 3.743967658658105e-02 3.741804463786157e-02 3.739643610444850e-02 - 3.737485101633371e-02 3.735328940350900e-02 3.733175129596625e-02 3.731023672369729e-02 3.728874571669397e-02 - 3.726727830494812e-02 3.724583451845160e-02 3.722441438719625e-02 3.720301794117391e-02 3.718164521037644e-02 - 3.716029622479566e-02 3.713897101442343e-02 3.711766960925159e-02 3.709639203927199e-02 3.707513833447647e-02 - 3.705390852485687e-02 3.703270264040504e-02 3.701152071111283e-02 3.699036276697207e-02 3.696922883797462e-02 - 3.694811895411231e-02 3.692703314537699e-02 3.690597144176051e-02 3.688493387325471e-02 3.686392046985143e-02 - 3.684293126154253e-02 3.682196627831984e-02 3.680102555017520e-02 3.678010910710046e-02 3.675921697908748e-02 - 3.673834919612807e-02 3.671750578821411e-02 3.669668678533742e-02 3.667589221748987e-02 3.665512211466327e-02 - 3.663437650684950e-02 3.661365542404037e-02 3.659295889622776e-02 3.657228695340348e-02 3.655163962555941e-02 - 3.653101694268735e-02 3.651041893477919e-02 3.648984563182674e-02 3.646929706382188e-02 3.644877326075641e-02 - 3.642827425262220e-02 3.640780006941109e-02 3.638735074111494e-02 3.636692629772557e-02 3.634652676923484e-02 - 3.632615218563458e-02 3.630580257691665e-02 3.628547797307289e-02 3.626517840409513e-02 3.624490389997524e-02 - 3.622465449070505e-02 3.620443020627639e-02 3.618423107668113e-02 3.616405713191111e-02 3.614390840195816e-02 - 3.612378491681414e-02 3.610368670647089e-02 3.608361380092025e-02 3.606356623015406e-02 3.604354402416417e-02 - 3.602354721294244e-02 3.600357582648069e-02 3.598362989477077e-02 3.596370944780453e-02 3.594381451557382e-02 - 3.592394512807047e-02 3.590410131528634e-02 3.588428310721326e-02 3.586449053384308e-02 3.584472362516764e-02 - 3.582498241117880e-02 3.580526692186839e-02 3.578557718722826e-02 3.576591323725024e-02 3.574627510192620e-02 - 3.572666281124797e-02 3.570707639520740e-02 3.568751588379632e-02 3.566798130700659e-02 3.564847269483005e-02 - 3.562899007725854e-02 3.560953348428391e-02 3.559010294589800e-02 3.557069849209266e-02 3.555132015285974e-02 - 3.553196795819106e-02 3.551264193807849e-02 3.549334212251386e-02 3.547406854148901e-02 3.545482122499580e-02 - 3.543560020302607e-02 3.541640550557167e-02 3.539723716262443e-02 3.537809520417620e-02 3.535897966021882e-02 - 3.533989056074414e-02 3.532082793574401e-02 3.530179181521027e-02 3.528278222913475e-02 3.526379920750932e-02 - 3.524484278032580e-02 3.522591297757607e-02 3.520700982925193e-02 3.518813336534525e-02 3.516928361584787e-02 - 3.515046061075164e-02 3.513166438004838e-02 3.511289495372998e-02 3.509415236178823e-02 3.507543663421501e-02 - 3.505674780100216e-02 3.503808589214152e-02 3.501945093762493e-02 3.500084296744425e-02 3.498226201159130e-02 - 3.496370810005795e-02 3.494518126283602e-02 3.492668152991737e-02 3.490820893129385e-02 3.488976349695729e-02 - 3.487134525689954e-02 3.485295424111245e-02 3.483459047958785e-02 3.481625400231760e-02 3.479794483929353e-02 - 3.477966302050750e-02 3.476140857595134e-02 3.474318153561690e-02 3.472498192949603e-02 3.470680978758058e-02 - 3.468866513986237e-02 3.467054801633326e-02 3.465245844698509e-02 3.463439646180971e-02 3.461636209079897e-02 - 3.459835536394470e-02 3.458037631123875e-02 3.456242496267296e-02 3.454450134823919e-02 3.452660549792927e-02 - 3.450873744173504e-02 3.449089720964835e-02 3.447308483166107e-02 3.445530033776500e-02 3.443754375795202e-02 - 3.441981512221395e-02 3.440211446054266e-02 3.438444180292995e-02 3.436679717936773e-02 3.434918061984778e-02 - 3.433159215436199e-02 3.431403181290218e-02 3.429649962546020e-02 3.427899562202789e-02 3.426151983259711e-02 - 3.424407228715969e-02 3.422665301570748e-02 3.420926204823232e-02 3.419189941472606e-02 3.417456514518054e-02 - 3.415725926958761e-02 3.413998181793911e-02 3.412273282022688e-02 3.410551230644278e-02 3.408832030657864e-02 - 3.407115685062630e-02 3.405402196857762e-02 3.403691569042444e-02 3.401983804615860e-02 3.400278906577194e-02 - 3.398576877925633e-02 3.396877721660357e-02 3.395181440780554e-02 3.393488038285408e-02 3.391797517174103e-02 - 3.390109880445821e-02 3.388425131099751e-02 3.386743272135074e-02 3.385064306550976e-02 3.383388237346641e-02 - 3.381715067521254e-02 3.380044800073998e-02 3.378377438004059e-02 3.376712984310620e-02 3.375051441992868e-02 - 3.373392814049984e-02 3.371737103481155e-02 3.370084313285564e-02 3.368434446462396e-02 3.366787506010836e-02 - 3.365143466564878e-02 3.363501887624541e-02 3.361862209777612e-02 3.360224500875989e-02 3.358588827878357e-02 - 3.356955147090725e-02 3.355323458431880e-02 3.353693766165054e-02 3.352066065506343e-02 3.350440352193865e-02 - 3.348816624199871e-02 3.347194881659273e-02 3.345575121630599e-02 3.343957340404732e-02 3.342341535303144e-02 - 3.340727704441876e-02 3.339115845430404e-02 3.337505954322636e-02 3.335898029706669e-02 3.334292070921326e-02 - 3.332688074834195e-02 3.331086037969291e-02 3.329485957414917e-02 3.327887831864652e-02 3.326291658484171e-02 - 3.324697433542376e-02 3.323105156623186e-02 3.321514826023114e-02 3.319926437839098e-02 3.318339989412266e-02 - 3.316755478754796e-02 3.315172903929034e-02 3.313592261295018e-02 3.312013548124740e-02 3.310436764153749e-02 - 3.308861906981869e-02 3.307288973180764e-02 3.305717959801665e-02 3.304148865245999e-02 3.302581687574703e-02 - 3.301016422142487e-02 3.299453067800234e-02 3.297891624809741e-02 3.296332088425066e-02 3.294774455685354e-02 - 3.293218725810471e-02 3.291664896225673e-02 3.290112963401578e-02 3.288562923879117e-02 3.287014777263271e-02 - 3.285468522369568e-02 3.283924155670871e-02 3.282381674440858e-02 3.280841076589561e-02 3.279302360243119e-02 - 3.277765521941309e-02 3.276230558706894e-02 3.274697470113698e-02 3.273166254219040e-02 3.271636907936865e-02 - 3.270109428250347e-02 3.268583813280482e-02 3.267060061307020e-02 3.265538168459424e-02 3.264018132671115e-02 - 3.262499953449712e-02 3.260983628233858e-02 3.259469153939318e-02 3.257956527754512e-02 3.256445748091834e-02 - 3.254936812698490e-02 3.253429718174427e-02 3.251924463148387e-02 3.250421046229880e-02 3.248919464552218e-02 - 3.247419715298105e-02 3.245921796288541e-02 3.244425706251369e-02 3.242931441545717e-02 3.241438998652282e-02 - 3.239948378141620e-02 3.238459577882156e-02 3.236972593925531e-02 3.235487424670715e-02 3.234004068301546e-02 - 3.232522522137563e-02 3.231042782696456e-02 3.229564848261764e-02 3.228088718700101e-02 3.226614390644563e-02 - 3.225141860917057e-02 3.223671128042128e-02 3.222202190260593e-02 3.220735044835789e-02 3.219269687989033e-02 - 3.217806118663362e-02 3.216344336205739e-02 3.214884337811092e-02 3.213426120193776e-02 3.211969680852602e-02 - 3.210515019435922e-02 3.209062132655478e-02 3.207611016186721e-02 3.206161670288540e-02 3.204714093648681e-02 - 3.203268282961075e-02 3.201824236239234e-02 3.200381951210604e-02 3.198941424912934e-02 3.197502654604618e-02 - 3.196065638811887e-02 3.194630377248257e-02 3.193196866763873e-02 3.191765104079724e-02 3.190335087680102e-02 - 3.188906815766901e-02 3.187480285784819e-02 3.186055494296534e-02 3.184632440204734e-02 3.183211122836238e-02 - 3.181791538780577e-02 3.180373685568510e-02 3.178957561657719e-02 3.177543165075891e-02 3.176130492904844e-02 - 3.174719542079285e-02 3.173310312097031e-02 3.171902801589959e-02 3.170497007535993e-02 3.169092927256592e-02 - 3.167690558660036e-02 3.166289900092451e-02 3.164890948767075e-02 3.163493702375719e-02 3.162098160094597e-02 - 3.160704320149037e-02 3.159312179836957e-02 3.157921735868882e-02 3.156532987076624e-02 3.155145932224658e-02 - 3.153760566663864e-02 3.152376889172848e-02 3.150994900180672e-02 3.149614595827410e-02 3.148235973399625e-02 - 3.146859031868535e-02 3.145483769408502e-02 3.144110182886523e-02 3.142738268687409e-02 3.141368026942635e-02 - 3.139999456778463e-02 3.138632554513814e-02 3.137267318073906e-02 3.135903745883740e-02 3.134541835839263e-02 - 3.133181584694165e-02 3.131822989974722e-02 3.130466051752389e-02 3.129110768114365e-02 3.127757136018487e-02 - 3.126405153214003e-02 3.125054818119363e-02 3.123706128835145e-02 3.122359081277034e-02 3.121013674152311e-02 - 3.119669908223311e-02 3.118327780512727e-02 3.116987287740892e-02 3.115648427590923e-02 3.114311198755302e-02 - 3.112975599208620e-02 3.111641625878769e-02 3.110309278026453e-02 3.108978554429882e-02 3.107649451605467e-02 - 3.106321967573116e-02 3.104996101093369e-02 3.103671850522385e-02 3.102349212552239e-02 3.101028184118182e-02 - 3.099708765215899e-02 3.098390954305432e-02 3.097074748653887e-02 3.095760146577434e-02 3.094447145973171e-02 - 3.093135744175442e-02 3.091825938652267e-02 3.090517727892404e-02 3.089211111199125e-02 3.087906086415095e-02 - 3.086602651045607e-02 3.085300802884278e-02 3.084000540267990e-02 3.082701861024971e-02 3.081404762072755e-02 - 3.080109242772720e-02 3.078815302348911e-02 3.077522937271052e-02 3.076232145526043e-02 3.074942925853004e-02 - 3.073655275969265e-02 3.072369193358731e-02 3.071084675893487e-02 3.069801722815575e-02 3.068520332655950e-02 - 3.067240502926292e-02 3.065962230727411e-02 3.064685514336771e-02 3.063410352936318e-02 3.062136743092317e-02 - 3.060864682743443e-02 3.059594172387181e-02 3.058325209340110e-02 3.057057790484611e-02 3.055791914232513e-02 - 3.054527578866520e-02 3.053264782274670e-02 3.052003521936738e-02 3.050743796632342e-02 3.049485605420712e-02 - 3.048228945948342e-02 3.046973815764381e-02 3.045720212753895e-02 3.044468135532321e-02 3.043217582076147e-02 - 3.041968549967531e-02 3.040721038082923e-02 3.039475044749309e-02 3.038230567464306e-02 3.036987604544383e-02 - 3.035746154526919e-02 3.034506215632694e-02 3.033267784558463e-02 3.032030859116679e-02 3.030795439680851e-02 - 3.029561524020229e-02 3.028329109283977e-02 3.027098194217670e-02 3.025868776986960e-02 3.024640855125834e-02 - 3.023414425922958e-02 3.022189488753165e-02 3.020966043396606e-02 3.019744085927903e-02 3.018523614254973e-02 - 3.017304628070488e-02 3.016087124712451e-02 3.014871101490015e-02 3.013656556629268e-02 3.012443489643160e-02 - 3.011231899192166e-02 3.010021782348693e-02 3.008813136953290e-02 3.007605961443153e-02 3.006400254477032e-02 - 3.005196013216448e-02 3.003993235442936e-02 3.002791921520012e-02 3.001592069144608e-02 3.000393675083135e-02 - 2.999196738372897e-02 2.998001257673401e-02 2.996807230790781e-02 2.995614654679549e-02 2.994423528130847e-02 - 2.993233851118915e-02 2.992045620999083e-02 2.990858835120550e-02 2.989673491731453e-02 2.988489589805536e-02 - 2.987307127537464e-02 2.986126102011340e-02 2.984946511909828e-02 2.983768356331996e-02 2.982591633787642e-02 - 2.981416341477938e-02 2.980242477098497e-02 2.979070040412034e-02 2.977899028736241e-02 2.976729439085326e-02 - 2.975561271768286e-02 2.974394525020974e-02 2.973229195799546e-02 2.972065283153817e-02 2.970902785474345e-02 - 2.969741700233630e-02 2.968582025251779e-02 2.967423759388233e-02 2.966266902120933e-02 2.965111450751603e-02 - 2.963957402972690e-02 2.962804757853395e-02 2.961653513685447e-02 2.960503668212408e-02 2.959355219023237e-02 - 2.958208165129883e-02 2.957062505724755e-02 2.955918238857859e-02 2.954775362079399e-02 2.953633873283637e-02 - 2.952493771681483e-02 2.951355054848872e-02 2.950217720053436e-02 2.949081767862442e-02 2.947947196700992e-02 - 2.946814003034778e-02 2.945682185755054e-02 2.944551743582863e-02 2.943422674341014e-02 2.942294975870480e-02 - 2.941168646812421e-02 2.940043686618776e-02 2.938920093147064e-02 2.937797864134186e-02 2.936676998172867e-02 - 2.935557493479196e-02 2.934439347979633e-02 2.933322559583284e-02 2.932207127373048e-02 2.931093050463312e-02 - 2.929980326285230e-02 2.928868953142686e-02 2.927758929945683e-02 2.926650254799867e-02 2.925542925398767e-02 - 2.924436939550082e-02 2.923332296415483e-02 2.922228995044700e-02 2.921127033783603e-02 2.920026410004271e-02 - 2.918927122033416e-02 2.917829169471517e-02 2.916732549176795e-02 2.915637258777840e-02 2.914543298801943e-02 - 2.913450667577263e-02 2.912359362430894e-02 2.911269381274288e-02 2.910180723305731e-02 2.909093387402745e-02 - 2.908007369930849e-02 2.906922669822638e-02 2.905839287303405e-02 2.904757219714476e-02 2.903676465199738e-02 - 2.902597022808873e-02 2.901518890157972e-02 2.900442065055892e-02 2.899366546087253e-02 2.898292332562971e-02 - 2.897219423070421e-02 2.896147815085827e-02 2.895077507160809e-02 2.894008498122344e-02 2.892940786384609e-02 - 2.891874369517828e-02 2.890809245634708e-02 2.889745414621765e-02 2.888682874769054e-02 2.887621623583590e-02 - 2.886561659425123e-02 2.885502981116054e-02 2.884445587294774e-02 2.883389475319686e-02 2.882334643970105e-02 - 2.881281093000496e-02 2.880228819979298e-02 2.879177822929067e-02 2.878128100842524e-02 2.877079651898801e-02 - 2.876032473884395e-02 2.874986564740009e-02 2.873941924390505e-02 2.872898552052601e-02 2.871856444638324e-02 - 2.870815600507148e-02 2.869776018641480e-02 2.868737697516582e-02 2.867700634591397e-02 2.866664827916806e-02 - 2.865630278319325e-02 2.864596983917359e-02 2.863564941328856e-02 2.862534149829953e-02 2.861504608429113e-02 - 2.860476315234840e-02 2.859449267740666e-02 2.858423464566411e-02 2.857398905422620e-02 2.856375588402207e-02 - 2.855353511594846e-02 2.854332673804624e-02 2.853313073796621e-02 2.852294709429606e-02 2.851277577543872e-02 - 2.850261678440491e-02 2.849247012219593e-02 2.848233575178603e-02 2.847221365657614e-02 2.846210383116990e-02 - 2.845200625935100e-02 2.844192091752946e-02 2.843184778466237e-02 2.842178686053369e-02 2.841173813547823e-02 - 2.840170158739025e-02 2.839167719418843e-02 2.838166494245600e-02 2.837166482484053e-02 2.836167681707307e-02 - 2.835170090137019e-02 2.834173707461769e-02 2.833178532393912e-02 2.832184563033358e-02 2.831191797277370e-02 - 2.830200233825938e-02 2.829209871310940e-02 2.828220707523810e-02 2.827232741579271e-02 2.826245972853687e-02 - 2.825260399229306e-02 2.824276019064247e-02 2.823292831178126e-02 2.822310834132040e-02 2.821330025651807e-02 - 2.820350403438503e-02 2.819371967866794e-02 2.818394718049788e-02 2.817418651237375e-02 2.816443766090156e-02 - 2.815470061416237e-02 2.814497535504664e-02 2.813526186206681e-02 2.812556012131105e-02 2.811587013236315e-02 - 2.810619188120791e-02 2.809652534562629e-02 2.808687050311100e-02 2.807722734684383e-02 2.806759586949595e-02 - 2.805797603975531e-02 2.804836784541272e-02 2.803877128655403e-02 2.802918634812817e-02 2.801961300908425e-02 - 2.801005124931340e-02 2.800050106254358e-02 2.799096243185147e-02 2.798143533065562e-02 2.797191976200169e-02 - 2.796241571829330e-02 2.795292316767612e-02 2.794344209750147e-02 2.793397250080147e-02 2.792451436474921e-02 - 2.791506766429417e-02 2.790563238187514e-02 2.789620852426368e-02 2.788679607109519e-02 2.787739499448651e-02 - 2.786800529276515e-02 2.785862695250820e-02 2.784925995023579e-02 2.783990426851568e-02 2.783055990112446e-02 - 2.782122684523413e-02 2.781190507602721e-02 2.780259457625915e-02 2.779329533996523e-02 2.778400734510273e-02 - 2.777473057425486e-02 2.776546502209671e-02 2.775621067523501e-02 2.774696751775778e-02 2.773773553529171e-02 - 2.772851471226555e-02 2.771930503638066e-02 2.771010650156085e-02 2.770091908311444e-02 2.769174275675288e-02 - 2.768257752750487e-02 2.767342338343482e-02 2.766428030170250e-02 2.765514827509389e-02 2.764602728937508e-02 - 2.763691732224667e-02 2.762781835629091e-02 2.761873038318760e-02 2.760965340016332e-02 2.760058738918467e-02 - 2.759153233095657e-02 2.758248821223181e-02 2.757345502668101e-02 2.756443275844788e-02 2.755542137569210e-02 - 2.754642087861812e-02 2.753743126859248e-02 2.752845251726651e-02 2.751948461051369e-02 2.751052754088128e-02 - 2.750158129051000e-02 2.749264584112846e-02 2.748372117908398e-02 2.747480730190011e-02 2.746590419839729e-02 - 2.745701184777745e-02 2.744813023052759e-02 2.743925933666562e-02 2.743039916197098e-02 2.742154968107790e-02 - 2.741271087850060e-02 2.740388275814067e-02 2.739506530469222e-02 2.738625849608251e-02 2.737746231424592e-02 - 2.736867675514432e-02 2.735990180809817e-02 2.735113743878892e-02 2.734238364845174e-02 2.733364044336462e-02 - 2.732490778587926e-02 2.731618566204183e-02 2.730747407386686e-02 2.729877300249025e-02 2.729008242908668e-02 - 2.728140234030172e-02 2.727273272900814e-02 2.726407358354408e-02 2.725542488697956e-02 2.724678662927163e-02 - 2.723815879907967e-02 2.722954137935252e-02 2.722093434732608e-02 2.721233769152850e-02 2.720375141931018e-02 - 2.719517551218435e-02 2.718660994644712e-02 2.717805471481514e-02 2.716950980584153e-02 2.716097520393317e-02 - 2.715245089289530e-02 2.714393686286031e-02 2.713543310581999e-02 2.712693960497614e-02 2.711845634782483e-02 - 2.710998332519429e-02 2.710152051958041e-02 2.709306791441093e-02 2.708462549834906e-02 2.707619326918369e-02 - 2.706777121480425e-02 2.705935930907671e-02 2.705095754483260e-02 2.704256591454058e-02 2.703418439795306e-02 - 2.702581298145425e-02 2.701745165546447e-02 2.700910041075726e-02 2.700075923746808e-02 2.699242812272907e-02 - 2.698410704764140e-02 2.697579599978723e-02 2.696749496984126e-02 2.695920394125775e-02 2.695092290187428e-02 - 2.694265184396634e-02 2.693439075649869e-02 2.692613962541774e-02 2.691789843589869e-02 2.690966718080280e-02 - 2.690144584430361e-02 2.689323440003169e-02 2.688503284907665e-02 2.687684119009101e-02 2.686865940030225e-02 - 2.686048746353486e-02 2.685232536881714e-02 2.684417310662326e-02 2.683603066151065e-02 2.682789801897943e-02 - 2.681977517552054e-02 2.681166212021913e-02 2.680355883616239e-02 2.679546530889016e-02 2.678738152752996e-02 - 2.677930748200765e-02 2.677124315479004e-02 2.676318853591112e-02 2.675514362231527e-02 2.674710839396962e-02 - 2.673908283555094e-02 2.673106694339361e-02 2.672306070150655e-02 2.671506409151823e-02 2.670707710108217e-02 - 2.669909972943648e-02 2.669113197027321e-02 2.668317379682501e-02 2.667522519875436e-02 2.666728617090520e-02 - 2.665935669311371e-02 2.665143675159882e-02 2.664352634032146e-02 2.663562545659268e-02 2.662773408361464e-02 - 2.661985219717407e-02 2.661197979572226e-02 2.660411687169956e-02 2.659626340488144e-02 2.658841937631547e-02 - 2.658058477937751e-02 2.657275961893512e-02 2.656494387358596e-02 2.655713752275513e-02 2.654934056348008e-02 - 2.654155298332925e-02 2.653377476657220e-02 2.652600590198415e-02 2.651824638075199e-02 2.651049619255404e-02 - 2.650275532091429e-02 2.649502375487615e-02 2.648730148802552e-02 2.647958851263073e-02 2.647188480891689e-02 - 2.646419035368700e-02 2.645650515131691e-02 2.644882919484906e-02 2.644116246069965e-02 2.643350494181170e-02 - 2.642585663084689e-02 2.641821751242615e-02 2.641058756892747e-02 2.640296679007395e-02 2.639535517653221e-02 - 2.638775271175803e-02 2.638015937698240e-02 2.637257516664822e-02 2.636500007332271e-02 2.635743408373907e-02 - 2.634987717633525e-02 2.634232934391862e-02 2.633479058525924e-02 2.632726088227431e-02 2.631974022390311e-02 - 2.631222860499385e-02 2.630472600717760e-02 2.629723241433261e-02 2.628974781674581e-02 2.628227220621198e-02 - 2.627480557677242e-02 2.626734792215179e-02 2.625989921852152e-02 2.625245945041883e-02 2.624502862403611e-02 - 2.623760671958282e-02 2.623019371536040e-02 2.622278961237779e-02 2.621539440295659e-02 2.620800807254220e-02 - 2.620063060674004e-02 2.619326199404739e-02 2.618590222410475e-02 2.617855128386046e-02 2.617120916522779e-02 - 2.616387586230346e-02 2.615655135861502e-02 2.614923564213544e-02 2.614192870720641e-02 2.613463054125929e-02 - 2.612734112755428e-02 2.612006044964381e-02 2.611278850871195e-02 2.610552530050819e-02 2.609827080222275e-02 - 2.609102500359168e-02 2.608378789925431e-02 2.607655947900249e-02 2.606933972466179e-02 2.606212861946312e-02 - 2.605492616097670e-02 2.604773234503024e-02 2.604054716124884e-02 2.603337058950191e-02 2.602620261873257e-02 - 2.601904324395194e-02 2.601189244598317e-02 2.600475021758196e-02 2.599761656283118e-02 2.599049145836681e-02 - 2.598337488632347e-02 2.597626684662969e-02 2.596916733159564e-02 2.596207632537513e-02 2.595499380688753e-02 - 2.594791977426907e-02 2.594085422650568e-02 2.593379714560815e-02 2.592674851872178e-02 2.591970833661526e-02 - 2.591267658830654e-02 2.590565326173340e-02 2.589863834578747e-02 2.589163183398775e-02 2.588463371701131e-02 - 2.587764398252935e-02 2.587066261956569e-02 2.586368961749470e-02 2.585672496539723e-02 2.584976865103265e-02 - 2.584282066471713e-02 2.583588100000093e-02 2.582894964599770e-02 2.582202659070586e-02 2.581511182332461e-02 - 2.580820533343631e-02 2.580130710958863e-02 2.579441713875388e-02 2.578753541579036e-02 2.578066193633965e-02 - 2.577379668579866e-02 2.576693964640701e-02 2.576009080523955e-02 2.575325016689414e-02 2.574641771694009e-02 - 2.573959342940173e-02 2.573277731100565e-02 2.572596935753856e-02 2.571916954588383e-02 2.571237786264848e-02 - 2.570559430241213e-02 2.569881886299849e-02 2.569205152414907e-02 2.568529227185872e-02 2.567854111122693e-02 - 2.567179802594942e-02 2.566506299732867e-02 2.565833602386073e-02 2.565161709921462e-02 2.564490620914589e-02 - 2.563820333139000e-02 2.563150846268354e-02 2.562482160754986e-02 2.561814274902439e-02 2.561147187258114e-02 - 2.560480896924013e-02 2.559815402833877e-02 2.559150703774291e-02 2.558486798572520e-02 2.557823686789989e-02 - 2.557161367849433e-02 2.556499840587265e-02 2.555839103232124e-02 2.555179154834854e-02 2.554519995829834e-02 - 2.553861624178350e-02 2.553204037844031e-02 2.552547237202886e-02 2.551891221538829e-02 2.551235989397021e-02 - 2.550581539575596e-02 2.549927871458803e-02 2.549274984258965e-02 2.548622875540724e-02 2.547971544999134e-02 - 2.547320993631275e-02 2.546671219025347e-02 2.546022219347805e-02 2.545373994243675e-02 2.544726542971977e-02 - 2.544079864501286e-02 2.543433957656028e-02 2.542788821576999e-02 2.542144455508066e-02 2.541500858637495e-02 - 2.540858030019949e-02 2.540215968413957e-02 2.539574672197945e-02 2.538934140646816e-02 2.538294373410821e-02 - 2.537655369660362e-02 2.537017128263758e-02 2.536379648098229e-02 2.535742928550868e-02 2.535106968465225e-02 - 2.534471766277936e-02 2.533837321084466e-02 2.533203632423742e-02 2.532570699881585e-02 2.531938521813243e-02 - 2.531307097096266e-02 2.530676425602581e-02 2.530046505932213e-02 2.529417336607690e-02 2.528788916915281e-02 - 2.528161246489754e-02 2.527534324609989e-02 2.526908149634068e-02 2.526282720495094e-02 2.525658036572961e-02 - 2.525034097275206e-02 2.524410901058027e-02 2.523788446449190e-02 2.523166734234336e-02 2.522545763237074e-02 - 2.521925530838600e-02 2.521306037097086e-02 2.520687281776321e-02 2.520069263496993e-02 2.519451980442291e-02 - 2.518835431925369e-02 2.518219618546694e-02 2.517604538654039e-02 2.516990190396150e-02 2.516376573127799e-02 - 2.515763686639562e-02 2.515151530112912e-02 2.514540101358030e-02 2.513929399756280e-02 2.513319425347670e-02 - 2.512710177240427e-02 2.512101654329324e-02 2.511493855506050e-02 2.510886779787783e-02 2.510280425830826e-02 - 2.509674792451250e-02 2.509069880343641e-02 2.508465688466923e-02 2.507862214067907e-02 2.507259457630134e-02 - 2.506657418922008e-02 2.506056095604422e-02 2.505455486579475e-02 2.504855591546334e-02 2.504256410459500e-02 - 2.503657941982099e-02 2.503060184642849e-02 2.502463137903613e-02 2.501866800626509e-02 2.501271171663477e-02 - 2.500676250820755e-02 2.500082037092928e-02 2.499488529135626e-02 2.498895726677344e-02 2.498303628979692e-02 - 2.497712234741346e-02 2.497121542814719e-02 2.496531552247531e-02 2.495942262282587e-02 2.495353672310340e-02 - 2.494765781766853e-02 2.494178589943900e-02 2.493592095223772e-02 2.493006296439117e-02 2.492421193524048e-02 - 2.491836784922406e-02 2.491253069345717e-02 2.490670047398909e-02 2.490087718065651e-02 2.489506079631419e-02 - 2.488925131370227e-02 2.488344872747560e-02 2.487765302865731e-02 2.487186419727612e-02 2.486608223223404e-02 - 2.486030714174834e-02 2.485453889875117e-02 2.484877749156952e-02 2.484302292908405e-02 2.483727519324232e-02 - 2.483153426549052e-02 2.482580013961989e-02 2.482007281919668e-02 2.481435229933991e-02 2.480863855780388e-02 - 2.480293158683973e-02 2.479723138421890e-02 2.479153794250162e-02 2.478585124573938e-02 2.478017128120043e-02 - 2.477449805440481e-02 2.476883155587847e-02 2.476317176818658e-02 2.475751868877601e-02 2.475187231076201e-02 - 2.474623262098153e-02 2.474059960704484e-02 2.473497326224523e-02 2.472935358498410e-02 2.472374056978996e-02 - 2.471813420423485e-02 2.471253447111526e-02 2.470694136984621e-02 2.470135489678424e-02 2.469577503399494e-02 - 2.469020177298829e-02 2.468463511029760e-02 2.467907504169421e-02 2.467352155791407e-02 2.466797464651026e-02 - 2.466243429488579e-02 2.465690049712254e-02 2.465137324948606e-02 2.464585254039273e-02 2.464033836402688e-02 - 2.463483071739735e-02 2.462932958374225e-02 2.462383495186045e-02 2.461834681928389e-02 2.461286517898853e-02 - 2.460739002108202e-02 2.460192133524253e-02 2.459645911917798e-02 2.459100336526309e-02 2.458555405446716e-02 - 2.458011118496141e-02 2.457467475465895e-02 2.456924474486533e-02 2.456382114921245e-02 2.455840396700115e-02 - 2.455299319041756e-02 2.454758880740113e-02 2.454219080674820e-02 2.453679918638537e-02 2.453141393576077e-02 - 2.452603503863916e-02 2.452066249180092e-02 2.451529629410615e-02 2.450993644073534e-02 2.450458291517292e-02 - 2.449923570627392e-02 2.449389481263279e-02 2.448856022075961e-02 2.448323192252920e-02 2.447790992354739e-02 - 2.447259420740984e-02 2.446728475663024e-02 2.446198157303190e-02 2.445668465268695e-02 2.445139398411770e-02 - 2.444610955000165e-02 2.444083134675017e-02 2.443555937646448e-02 2.443029362647454e-02 2.442503408583922e-02 - 2.441978074770511e-02 2.441453360513738e-02 2.440929264714783e-02 2.440405786136508e-02 2.439882924944217e-02 - 2.439360680824694e-02 2.438839052372590e-02 2.438318038826778e-02 2.437797639360750e-02 2.437277852674977e-02 - 2.436758678074824e-02 2.436240115296091e-02 2.435722164202054e-02 2.435204823529888e-02 2.434688091817521e-02 - 2.434171968740183e-02 2.433656453724402e-02 2.433141545805634e-02 2.432627243782077e-02 2.432113546933723e-02 - 2.431600455029639e-02 2.431087967900234e-02 2.430576084399959e-02 2.430064802749307e-02 2.429554123205279e-02 - 2.429044044976694e-02 2.428534565606734e-02 2.428025685952290e-02 2.427517406275088e-02 2.427009724038350e-02 - 2.426502638834353e-02 2.425996150697585e-02 2.425490258288459e-02 2.424984960255012e-02 2.424480255754471e-02 - 2.423976144931379e-02 2.423472627405213e-02 2.422969702193537e-02 2.422467367993699e-02 2.421965624107330e-02 - 2.421464470176334e-02 2.420963904926960e-02 2.420463927567678e-02 2.419964537946393e-02 2.419465735323985e-02 - 2.418967518800793e-02 2.418469887545246e-02 2.417972840901141e-02 2.417476377855392e-02 2.416980496962540e-02 - 2.416485198688481e-02 2.415990483049387e-02 2.415496347565664e-02 2.415002792020104e-02 2.414509816788697e-02 - 2.414017420064829e-02 2.413525600526027e-02 2.413034357711665e-02 2.412543691925479e-02 2.412053602209589e-02 - 2.411564086852338e-02 2.411075145960207e-02 2.410586778967854e-02 2.410098984367492e-02 2.409611761892932e-02 - 2.409125110932578e-02 2.408639030144091e-02 2.408153519631380e-02 2.407668578962185e-02 2.407184206146642e-02 - 2.406700400909483e-02 2.406217163125833e-02 2.405734491326586e-02 2.405252385052364e-02 2.404770844026444e-02 - 2.404289866819192e-02 2.403809452984102e-02 2.403329602484744e-02 2.402850314011094e-02 2.402371586479471e-02 - 2.401893419282938e-02 2.401415812045089e-02 2.400938764313821e-02 2.400462275334547e-02 2.399986343578922e-02 - 2.399510968520409e-02 2.399036150812855e-02 2.398561888480285e-02 2.398088180164008e-02 2.397615026865237e-02 - 2.397142427338870e-02 2.396670380040281e-02 2.396198885088599e-02 2.395727942113068e-02 2.395257549962209e-02 - 2.394787706723708e-02 2.394318412617158e-02 2.393849668455232e-02 2.393381472012022e-02 2.392913822141401e-02 - 2.392446719065216e-02 2.391980162598514e-02 2.391514151312970e-02 2.391048683154523e-02 2.390583758880722e-02 - 2.390119378770886e-02 2.389655541357522e-02 2.389192245255953e-02 2.388729489743550e-02 2.388267274893805e-02 - 2.387805599705324e-02 2.387344463051915e-02 2.386883864637205e-02 2.386423804212813e-02 2.385964281176755e-02 - 2.385505294183017e-02 2.385046842474073e-02 2.384588925674739e-02 2.384131543037479e-02 2.383674693675093e-02 - 2.383218376863605e-02 2.382762592698097e-02 2.382307340607612e-02 2.381852619200930e-02 2.381398427584630e-02 - 2.380944765139419e-02 2.380491631418275e-02 2.380039026147703e-02 2.379586948695320e-02 2.379135397827495e-02 - 2.378684372855616e-02 2.378233873403001e-02 2.377783899070361e-02 2.377334448688785e-02 2.376885521259772e-02 - 2.376437117173840e-02 2.375989235311110e-02 2.375541874056297e-02 2.375095033967465e-02 2.374648714507580e-02 - 2.374202914136664e-02 2.373757632537944e-02 2.373312869288914e-02 2.372868623536894e-02 2.372424894471153e-02 - 2.371981681484819e-02 2.371538984133524e-02 2.371096801501392e-02 2.370655132827953e-02 2.370213977833190e-02 - 2.369773335765337e-02 2.369333205880069e-02 2.368893587883010e-02 2.368454481046802e-02 2.368015884444250e-02 - 2.367577797334512e-02 2.367140218742613e-02 2.366703147963686e-02 2.366266585606776e-02 2.365830530976384e-02 - 2.365394982335759e-02 2.364959939168465e-02 2.364525401200215e-02 2.364091367903051e-02 2.363657837870221e-02 - 2.363224810602428e-02 2.362792286773459e-02 2.362360264929340e-02 2.361928743769403e-02 2.361497723470610e-02 - 2.361067203383207e-02 2.360637182449869e-02 2.360207659794005e-02 2.359778635431920e-02 2.359350109143980e-02 - 2.358922079027601e-02 2.358494544772182e-02 2.358067506765588e-02 2.357640963547734e-02 2.357214914179353e-02 - 2.356789358468287e-02 2.356364296127548e-02 2.355939726289868e-02 2.355515647729875e-02 2.355092060314220e-02 - 2.354668963726047e-02 2.354246356971432e-02 2.353824239065819e-02 2.353402609608870e-02 2.352981468856027e-02 - 2.352560815209497e-02 2.352140647526573e-02 2.351720967050562e-02 2.351301772305351e-02 2.350883061252196e-02 - 2.350464834642137e-02 2.350047092197861e-02 2.349629832802946e-02 2.349213055910952e-02 2.348796760574937e-02 - 2.348380945835795e-02 2.347965612326723e-02 2.347550759163322e-02 2.347136384068571e-02 2.346722487769892e-02 - 2.346309070523777e-02 2.345896130833473e-02 2.345483667635093e-02 2.345071680463291e-02 2.344660169327714e-02 - 2.344249133136094e-02 2.343838570884467e-02 2.343428482723373e-02 2.343018868068117e-02 2.342609726030811e-02 - 2.342201056195244e-02 2.341792857876926e-02 2.341385130156056e-02 2.340977872164902e-02 2.340571083589386e-02 - 2.340164764377465e-02 2.339758913684304e-02 2.339353530825718e-02 2.338948615385810e-02 2.338544166438565e-02 - 2.338140183238109e-02 2.337736665460082e-02 2.337333612670094e-02 2.336931024309368e-02 2.336528899670786e-02 - 2.336127237782067e-02 2.335726037932775e-02 2.335325300092871e-02 2.334925023614406e-02 2.334525207670920e-02 - 2.334125851951941e-02 2.333726955725296e-02 2.333328518197435e-02 2.332930539416707e-02 2.332533018620607e-02 - 2.332135954429912e-02 2.331739346348105e-02 2.331343194297124e-02 2.330947498175055e-02 2.330552256758802e-02 - 2.330157469245372e-02 2.329763135682490e-02 2.329369255310137e-02 2.328975827131819e-02 2.328582850377367e-02 - 2.328190324900185e-02 2.327798250467623e-02 2.327406626164597e-02 2.327015451465238e-02 2.326624725851670e-02 - 2.326234448228765e-02 2.325844618291867e-02 2.325455236057939e-02 2.325066300636415e-02 2.324677811186985e-02 - 2.324289767062798e-02 2.323902167622130e-02 2.323515012509116e-02 2.323128301561370e-02 2.322742034088871e-02 - 2.322356209250113e-02 2.321970826255392e-02 2.321585884544971e-02 2.321201383858435e-02 2.320817324137425e-02 - 2.320433704277431e-02 2.320050523099401e-02 2.319667780275936e-02 2.319285475700314e-02 2.318903609087885e-02 - 2.318522179577433e-02 2.318141186586264e-02 2.317760629632794e-02 2.317380507773795e-02 2.317000820301008e-02 - 2.316621566880872e-02 2.316242747510807e-02 2.315864361575457e-02 2.315486407850317e-02 2.315108885694486e-02 - 2.314731794816131e-02 2.314355135044316e-02 2.313978905662257e-02 2.313603105913640e-02 2.313227735329952e-02 - 2.312852793585061e-02 2.312478280157292e-02 2.312104194073204e-02 2.311730534704967e-02 2.311357301587891e-02 - 2.310984494137890e-02 2.310612112341407e-02 2.310240155989217e-02 2.309868623130452e-02 2.309497513592190e-02 - 2.309126828241582e-02 2.308756565023808e-02 2.308386723175103e-02 2.308017303542274e-02 2.307648304592169e-02 - 2.307279725617671e-02 2.306911567493640e-02 2.306543828441958e-02 2.306176507302976e-02 2.305809605235563e-02 - 2.305443121050249e-02 2.305077053229759e-02 2.304711401909808e-02 2.304346166830784e-02 2.303981347406350e-02 - 2.303616943085239e-02 2.303252953349069e-02 2.302889377643319e-02 2.302526215247478e-02 2.302163465435939e-02 - 2.301801127709388e-02 2.301439202296127e-02 2.301077688440331e-02 2.300716584594829e-02 2.300355891234385e-02 - 2.299995607931316e-02 2.299635732709070e-02 2.299276266087610e-02 2.298917208378683e-02 2.298558558107965e-02 - 2.298200314503575e-02 2.297842477288603e-02 2.297485046311076e-02 2.297128020911345e-02 2.296771400315858e-02 - 2.296415184168031e-02 2.296059371667762e-02 2.295703962066644e-02 2.295348955785851e-02 2.294994352217295e-02 - 2.294640149900077e-02 2.294286348264926e-02 2.293932947451599e-02 2.293579947717141e-02 2.293227347444131e-02 - 2.292875145668869e-02 2.292523342863249e-02 2.292171938675970e-02 2.291820932208030e-02 2.291470322329688e-02 - 2.291120108573121e-02 2.290770290936340e-02 2.290420869564250e-02 2.290071843254762e-02 2.289723210840996e-02 - 2.289374972996874e-02 2.289027128684278e-02 2.288679676284003e-02 2.288332616596880e-02 2.287985949623025e-02 - 2.287639674290211e-02 2.287293789614104e-02 2.286948295143698e-02 2.286603190794522e-02 2.286258475709644e-02 - 2.285914149325583e-02 2.285570211629635e-02 2.285226661817064e-02 2.284883499242224e-02 2.284540723897847e-02 - 2.284198334984975e-02 2.283856331588243e-02 2.283514713353579e-02 2.283173480111027e-02 2.282832631556901e-02 - 2.282492166909090e-02 2.282152085461623e-02 2.281812386736860e-02 2.281473070606539e-02 2.281134136558116e-02 - 2.280795583769253e-02 2.280457411713410e-02 2.280119619914733e-02 2.279782207936136e-02 2.279445175627783e-02 - 2.279108522557549e-02 2.278772247795469e-02 2.278436350274908e-02 2.278100829770330e-02 2.277765687156956e-02 - 2.277430921150676e-02 2.277096530368425e-02 2.276762515226868e-02 2.276428875675497e-02 2.276095610802096e-02 - 2.275762718728153e-02 2.275430199700514e-02 2.275098054723153e-02 2.274766282325953e-02 2.274434881806882e-02 - 2.274103853245654e-02 2.273773195657694e-02 2.273442908251650e-02 2.273112990748000e-02 2.272783443024632e-02 - 2.272454264587135e-02 2.272125454541999e-02 2.271797012768606e-02 2.271468938883630e-02 2.271141231743784e-02 - 2.270813891155475e-02 2.270486917113991e-02 2.270160309030139e-02 2.269834065991423e-02 2.269508187421201e-02 - 2.269182673791773e-02 2.268857524219826e-02 2.268532737305624e-02 2.268208313254210e-02 2.267884251722086e-02 - 2.267560551920548e-02 2.267237214108131e-02 2.266914237609957e-02 2.266591620883689e-02 2.266269364166427e-02 - 2.265947467384046e-02 2.265625929499294e-02 2.265304750285308e-02 2.264983929495161e-02 2.264663466331073e-02 - 2.264343359962570e-02 2.264023610100446e-02 2.263704217283995e-02 2.263385180078203e-02 2.263066497176033e-02 - 2.262748170200772e-02 2.262430198020481e-02 2.262112578516977e-02 2.261795313211606e-02 2.261478401664109e-02 - 2.261161841743119e-02 2.260845633522814e-02 2.260529777070043e-02 2.260214271924124e-02 2.259899117823321e-02 - 2.259584314154298e-02 2.259269859890657e-02 2.258955754741791e-02 2.258641998536936e-02 2.258328590829124e-02 - 2.258015531052365e-02 2.257702818646037e-02 2.257390453172050e-02 2.257078434461123e-02 2.256766762198980e-02 - 2.256455435398716e-02 2.256144453344060e-02 2.255833815784602e-02 2.255523523027356e-02 2.255213574452021e-02 - 2.254903968810603e-02 2.254594705829782e-02 2.254285785514665e-02 2.253977207653749e-02 2.253668970834607e-02 - 2.253361074658835e-02 2.253053520058667e-02 2.252746305460894e-02 2.252439429792020e-02 2.252132894054988e-02 - 2.251826697539277e-02 2.251520839162438e-02 2.251215318778324e-02 2.250910135797150e-02 2.250605289615611e-02 - 2.250300780314812e-02 2.249996607511807e-02 2.249692770517706e-02 2.249389268897849e-02 2.249086101912092e-02 - 2.248783268793952e-02 2.248480769791340e-02 2.248178604607573e-02 2.247876772289102e-02 2.247575272657626e-02 - 2.247274105420605e-02 2.246973269884927e-02 2.246672765673356e-02 2.246372592391256e-02 2.246072749418018e-02 - 2.245773236145919e-02 2.245474052366870e-02 2.245175198466864e-02 2.244876673416187e-02 2.244578475935081e-02 - 2.244280606154297e-02 2.243983064008646e-02 2.243685849064164e-02 2.243388960632717e-02 2.243092397966235e-02 - 2.242796160524575e-02 2.242500248562306e-02 2.242204661762487e-02 2.241909399183298e-02 2.241614460666303e-02 - 2.241319845819517e-02 2.241025553754803e-02 2.240731584245553e-02 2.240437937032112e-02 2.240144611432051e-02 - 2.239851607018801e-02 2.239558923444239e-02 2.239266560299412e-02 2.238974517661811e-02 2.238682795331298e-02 - 2.238391391839321e-02 2.238100306495051e-02 2.237809539304577e-02 2.237519090301935e-02 2.237228958954325e-02 - 2.236939144530989e-02 2.236649647337483e-02 2.236360466636645e-02 2.236071600836286e-02 2.235783050633204e-02 - 2.235494816009726e-02 2.235206895420678e-02 2.234919288912077e-02 2.234631996540050e-02 2.234345017408028e-02 - 2.234058350741709e-02 2.233771996217690e-02 2.233485954108143e-02 2.233200223848051e-02 2.232914804618978e-02 - 2.232629696222737e-02 2.232344898389008e-02 2.232060410657171e-02 2.231776232362639e-02 2.231492363175558e-02 - 2.231208802922137e-02 2.230925550831191e-02 2.230642606279709e-02 2.230359969032392e-02 2.230077639232617e-02 - 2.229795616382932e-02 2.229513899284023e-02 2.229232488215048e-02 2.228951382986107e-02 2.228670582046145e-02 - 2.228390085767177e-02 2.228109894426768e-02 2.227830006461064e-02 2.227550421765863e-02 2.227271140560883e-02 - 2.226992161633195e-02 2.226713484518715e-02 2.226435109357777e-02 2.226157036041665e-02 2.225879263594571e-02 - 2.225601790864145e-02 2.225324618600033e-02 2.225047746610503e-02 2.224771173578603e-02 2.224494899695189e-02 - 2.224218924606724e-02 2.223943246967720e-02 2.223667867147697e-02 2.223392785229840e-02 2.223117999944780e-02 - 2.222843510958861e-02 2.222569318138216e-02 2.222295420869658e-02 2.222021819230338e-02 2.221748513172378e-02 - 2.221475501403353e-02 2.221202783347761e-02 2.220930358964832e-02 2.220658227937696e-02 2.220386389978368e-02 - 2.220114844711944e-02 2.219843591216284e-02 2.219572629440826e-02 2.219301959936691e-02 2.219031581219321e-02 - 2.218761492468887e-02 2.218491694233576e-02 2.218222185562244e-02 2.217952965986671e-02 2.217684036403281e-02 - 2.217415395419634e-02 2.217147041795686e-02 2.216878976537657e-02 2.216611199005385e-02 2.216343708084910e-02 - 2.216076504044857e-02 2.215809586407636e-02 2.215542954392592e-02 2.215276608232491e-02 2.215010547339664e-02 - 2.214744770611955e-02 2.214479278225410e-02 2.214214070177000e-02 2.213949145934428e-02 2.213684504847090e-02 - 2.213420146383213e-02 2.213156070201421e-02 2.212892275987791e-02 2.212628763520102e-02 2.212365532631548e-02 - 2.212102582567219e-02 2.211839912707401e-02 2.211577523186081e-02 2.211315413883962e-02 2.211053584219323e-02 - 2.210792033053083e-02 2.210530760247808e-02 2.210269766011106e-02 2.210009049378774e-02 2.209748609987134e-02 - 2.209488448015577e-02 2.209228563063591e-02 2.208968954607055e-02 2.208709622107550e-02 2.208450564887732e-02 - 2.208191782589816e-02 2.207933275252874e-02 2.207675042560285e-02 2.207417084119970e-02 2.207159399606388e-02 - 2.206901988424427e-02 2.206644850045388e-02 2.206387984291528e-02 2.206131390816773e-02 2.205875069196218e-02 - 2.205619019101501e-02 2.205363240248722e-02 2.205107732226570e-02 2.204852494231603e-02 2.204597526222870e-02 - 2.204342828418220e-02 2.204088399409952e-02 2.203834238815479e-02 2.203580347352047e-02 2.203326724064265e-02 - 2.203073368487589e-02 2.202820281109562e-02 2.202567460568826e-02 2.202314905892956e-02 2.202062617713913e-02 - 2.201810595951965e-02 2.201558839960293e-02 2.201307348855861e-02 2.201056122699519e-02 2.200805161543166e-02 - 2.200554464185156e-02 2.200304030240887e-02 2.200053859846551e-02 2.199803952619762e-02 2.199554308107517e-02 - 2.199304925941878e-02 2.199055805969111e-02 2.198806947716193e-02 2.198558350490501e-02 2.198310014348315e-02 - 2.198061939050182e-02 2.197814123774413e-02 2.197566568143648e-02 2.197319271829654e-02 2.197072234409288e-02 - 2.196825456242376e-02 2.196578937054303e-02 2.196332674903257e-02 2.196086670076693e-02 2.195840923401799e-02 - 2.195595433798292e-02 2.195350200785295e-02 2.195105224287541e-02 2.194860503638501e-02 2.194616038337459e-02 - 2.194371828086876e-02 2.194127872478465e-02 2.193884171275727e-02 2.193640724439015e-02 2.193397531871202e-02 - 2.193154592984012e-02 2.192911906730429e-02 2.192669472874541e-02 2.192427291582612e-02 2.192185362988310e-02 - 2.191943685926103e-02 2.191702259589666e-02 2.191461084837004e-02 2.191220161094460e-02 2.190979487232746e-02 - 2.190739062981033e-02 2.190498888177591e-02 2.190258962778606e-02 2.190019287048831e-02 2.189779860038415e-02 - 2.189540680312951e-02 2.189301748590321e-02 2.189063064823816e-02 2.188824627921663e-02 2.188586438035036e-02 - 2.188348494945867e-02 2.188110797669410e-02 2.187873346273279e-02 2.187636140793982e-02 2.187399180563438e-02 - 2.187162464701073e-02 2.186925992764394e-02 2.186689765219864e-02 2.186453782016761e-02 2.186218042520733e-02 - 2.185982545624109e-02 2.185747291143151e-02 2.185512279286289e-02 2.185277509428750e-02 2.185042981497303e-02 - 2.184808695595145e-02 2.184574650317918e-02 2.184340845337333e-02 2.184107281435048e-02 2.183873957690715e-02 - 2.183640873122354e-02 2.183408027442373e-02 2.183175421068970e-02 2.182943053984947e-02 2.182710925220595e-02 - 2.182479034512406e-02 2.182247381639650e-02 2.182015965839264e-02 2.181784786935527e-02 2.181553844939510e-02 - 2.181323139439093e-02 2.181092669994856e-02 2.180862436262286e-02 2.180632438083940e-02 2.180402674952244e-02 - 2.180173146217098e-02 2.179943851892379e-02 2.179714791838810e-02 2.179485965603752e-02 2.179257372764807e-02 - 2.179029013045416e-02 2.178800886254997e-02 2.178572991731780e-02 2.178345329019238e-02 2.178117898198011e-02 - 2.177890698980304e-02 2.177663730909087e-02 2.177436993586566e-02 2.177210486810286e-02 2.176984210277431e-02 - 2.176758163245009e-02 2.176532345522340e-02 2.176306757137086e-02 2.176081397536724e-02 2.175856266623576e-02 - 2.175631364444715e-02 2.175406689861889e-02 2.175182242380624e-02 2.174958022311289e-02 2.174734029291431e-02 - 2.174510262809328e-02 2.174286722491656e-02 2.174063408336708e-02 2.173840320169586e-02 2.173617457340815e-02 - 2.173394819180500e-02 2.173172405255836e-02 2.172950215559655e-02 2.172728250040623e-02 2.172506508580887e-02 - 2.172284990969628e-02 2.172063696250313e-02 2.171842623537083e-02 2.171621773566752e-02 2.171401146093844e-02 - 2.171180740120238e-02 2.170960555830954e-02 2.170740592901658e-02 2.170520850408856e-02 2.170301328419004e-02 - 2.170082027006994e-02 2.169862945830807e-02 2.169644084240343e-02 2.169425441572978e-02 2.169207017401216e-02 - 2.168988812007480e-02 2.168770825534887e-02 2.168553057272023e-02 2.168335506533793e-02 2.168118172867985e-02 - 2.167901056214399e-02 2.167684156632982e-02 2.167467473989915e-02 2.167251007478243e-02 2.167034756604321e-02 - 2.166818721221639e-02 2.166602901099679e-02 2.166387295840019e-02 2.166171905012346e-02 2.165956728718834e-02 - 2.165741766632386e-02 2.165527017845730e-02 2.165312482355555e-02 2.165098160273919e-02 2.164884051303741e-02 - 2.164670154730472e-02 2.164456469954934e-02 2.164242996946321e-02 2.164029735885670e-02 2.163816686523918e-02 - 2.163603847533059e-02 2.163391219068715e-02 2.163178801684997e-02 2.162966593882407e-02 2.162754595404139e-02 - 2.162542806873079e-02 2.162331227177066e-02 2.162119856181649e-02 2.161908694674025e-02 2.161697741144211e-02 - 2.161486994763257e-02 2.161276456243416e-02 2.161066125301312e-02 2.160856001324272e-02 2.160646083892226e-02 - 2.160436373197112e-02 2.160226869104043e-02 2.160017570438035e-02 2.159808476849354e-02 2.159599588501710e-02 - 2.159390905460169e-02 2.159182427010056e-02 2.158974152429478e-02 2.158766082444429e-02 2.158558216760809e-02 - 2.158350554187339e-02 2.158143094233737e-02 2.157935837033232e-02 2.157728782941571e-02 2.157521931196140e-02 - 2.157315281164952e-02 2.157108832745493e-02 2.156902585566251e-02 2.156696539445298e-02 2.156490694526656e-02 - 2.156285049964247e-02 2.156079605212440e-02 2.155874360997529e-02 2.155669316474123e-02 2.155464470676604e-02 - 2.155259824484399e-02 2.155055377365348e-02 2.154851128035285e-02 2.154647076406023e-02 2.154443222886153e-02 - 2.154239567713112e-02 2.154036109691455e-02 2.153832848380287e-02 2.153629784162443e-02 2.153426916110383e-02 - 2.153224243839968e-02 2.153021767928900e-02 2.152819487735599e-02 2.152617402486068e-02 2.152415511969989e-02 - 2.152213816346627e-02 2.152012315489333e-02 2.151811008517867e-02 2.151609895106827e-02 2.151408975350627e-02 - 2.151208249405811e-02 2.151007716412923e-02 2.150807375412716e-02 2.150607227139823e-02 2.150407271389111e-02 - 2.150207507178008e-02 2.150007934512424e-02 2.149808553345600e-02 2.149609363244227e-02 2.149410363369511e-02 - 2.149211553597770e-02 2.149012934592863e-02 2.148814505588094e-02 2.148616265955859e-02 2.148418215959600e-02 - 2.148220354775919e-02 2.148022681859241e-02 2.147825198020547e-02 2.147627902590631e-02 2.147430794498996e-02 - 2.147233873858447e-02 2.147037140717467e-02 2.146840594879004e-02 2.146644235912430e-02 2.146448063553682e-02 - 2.146252077578778e-02 2.146056277288728e-02 2.145860662318243e-02 2.145665232726965e-02 2.145469988438242e-02 - 2.145274929256557e-02 2.145080054831608e-02 2.144885364454498e-02 2.144690857746641e-02 2.144496534942983e-02 - 2.144302395654175e-02 2.144108439499599e-02 2.143914666610025e-02 2.143721076355154e-02 2.143527668029283e-02 - 2.143334441800114e-02 2.143141397685691e-02 2.142948535268880e-02 2.142755853497146e-02 2.142563352602930e-02 - 2.142371033388222e-02 2.142178894500280e-02 2.141986935358769e-02 2.141795156402302e-02 2.141603556793572e-02 - 2.141412136230918e-02 2.141220895321441e-02 2.141029833297722e-02 2.140838949470163e-02 2.140648244009975e-02 - 2.140457716697424e-02 2.140267367166504e-02 2.140077195168551e-02 2.139887200433115e-02 2.139697382547902e-02 - 2.139507740888590e-02 2.139318275720074e-02 2.139128987343195e-02 2.138939874415982e-02 2.138750936775835e-02 - 2.138562175102568e-02 2.138373588641631e-02 2.138185176599392e-02 2.137996938652284e-02 2.137808875223814e-02 - 2.137620986251236e-02 2.137433270909064e-02 2.137245728978030e-02 2.137058360186242e-02 2.136871163953864e-02 - 2.136684140688612e-02 2.136497290390506e-02 2.136310611597474e-02 2.136124104345297e-02 2.135937769212130e-02 - 2.135751605860686e-02 2.135565613610374e-02 2.135379791822062e-02 2.135194140402438e-02 2.135008659417071e-02 - 2.134823348788390e-02 2.134638207760105e-02 2.134453236032835e-02 2.134268433814086e-02 2.134083800772077e-02 - 2.133899336411597e-02 2.133715040305821e-02 2.133530912424798e-02 2.133346952672500e-02 2.133163160670673e-02 - 2.132979536297411e-02 2.132796079152963e-02 2.132612788229375e-02 2.132429663915477e-02 2.132246706798375e-02 - 2.132063916037057e-02 2.131881290769116e-02 2.131698830582932e-02 2.131516535978050e-02 2.131334407028698e-02 - 2.131152443198118e-02 2.130970643552249e-02 2.130789007885127e-02 2.130607536669811e-02 2.130426229682303e-02 - 2.130245086421657e-02 2.130064106313053e-02 2.129883288837854e-02 2.129702633875496e-02 2.129522141788389e-02 - 2.129341812290223e-02 2.129161644909972e-02 2.128981639414264e-02 2.128801795585396e-02 2.128622113110773e-02 - 2.128442591509673e-02 2.128263230760480e-02 2.128084030772261e-02 2.127904990395241e-02 2.127726109953179e-02 - 2.127547390424031e-02 2.127368830171838e-02 2.127190428479188e-02 2.127012186038021e-02 2.126834102886177e-02 - 2.126656178481652e-02 2.126478411995624e-02 2.126300803603507e-02 2.126123353191450e-02 2.125946059821390e-02 - 2.125768923851055e-02 2.125591945439615e-02 2.125415123382016e-02 2.125238457915817e-02 2.125061949358618e-02 - 2.124885596288304e-02 2.124709398735697e-02 2.124533357303348e-02 2.124357470952245e-02 2.124181739435340e-02 - 2.124006163206048e-02 2.123830741948956e-02 2.123655475001017e-02 2.123480361731545e-02 2.123305402409987e-02 - 2.123130596739953e-02 2.122955943693203e-02 2.122781443910126e-02 2.122607097723360e-02 2.122432904130337e-02 - 2.122258862659696e-02 2.122084973282204e-02 2.121911236175234e-02 2.121737650789419e-02 2.121564216387619e-02 - 2.121390932803162e-02 2.121217800425756e-02 2.121044819455527e-02 2.120871988671843e-02 2.120699307684077e-02 - 2.120526776795157e-02 2.120354395552526e-02 2.120182163603621e-02 2.120010080901829e-02 2.119838147500087e-02 - 2.119666363123091e-02 2.119494727091758e-02 2.119323238927472e-02 2.119151898655034e-02 2.118980706773010e-02 - 2.118809662574528e-02 2.118638765303925e-02 2.118468015121633e-02 2.118297411864271e-02 2.118126955146517e-02 - 2.117956644637810e-02 2.117786480292237e-02 2.117616462067450e-02 2.117446589411339e-02 2.117276862084477e-02 - 2.117107280130004e-02 2.116937843379139e-02 2.116768551256503e-02 2.116599403067535e-02 2.116430399205533e-02 - 2.116261539753040e-02 2.116092824074994e-02 2.115924251858398e-02 2.115755822756320e-02 2.115587536308644e-02 - 2.115419393062315e-02 2.115251393109511e-02 2.115083534999197e-02 2.114915818684827e-02 2.114748244571777e-02 - 2.114580812117730e-02 2.114413521000233e-02 2.114246371011731e-02 2.114079361630021e-02 2.113912493113981e-02 - 2.113745765864524e-02 2.113579178347091e-02 2.113412730283017e-02 2.113246422731517e-02 2.113080255018658e-02 - 2.112914226466844e-02 2.112748336987266e-02 2.112582586239263e-02 2.112416973838773e-02 2.112251499585494e-02 - 2.112086163946853e-02 2.111920966923609e-02 2.111755907231158e-02 2.111590984741022e-02 2.111426199652882e-02 - 2.111261551330255e-02 2.111097039854193e-02 2.110932665501722e-02 2.110768427494188e-02 2.110604325159932e-02 - 2.110440358337455e-02 2.110276527755971e-02 2.110112832954347e-02 2.109949272542061e-02 2.109785847270291e-02 - 2.109622557382813e-02 2.109459401840321e-02 2.109296380279178e-02 2.109133492634166e-02 2.108970738897449e-02 - 2.108808119187406e-02 2.108645633261542e-02 2.108483280177793e-02 2.108321059649476e-02 2.108158971816587e-02 - 2.107997016818712e-02 2.107835194176262e-02 2.107673503228282e-02 2.107511943992769e-02 2.107350516482023e-02 - 2.107189220511111e-02 2.107028055587330e-02 2.106867021606288e-02 2.106706118735907e-02 2.106545346293816e-02 - 2.106384703796383e-02 2.106224191316689e-02 2.106063808955507e-02 2.105903556250238e-02 2.105743432153898e-02 - 2.105583437513380e-02 2.105423572746437e-02 2.105263836035830e-02 2.105104227142354e-02 2.104944746729932e-02 - 2.104785395134047e-02 2.104626171573087e-02 2.104467074966839e-02 2.104308105452007e-02 2.104149263222363e-02 - 2.103990548218236e-02 2.103831959968388e-02 2.103673498293864e-02 2.103515163200819e-02 2.103356953798411e-02 - 2.103198869775456e-02 2.103040911733209e-02 2.102883079574534e-02 2.102725372695269e-02 2.102567790273802e-02 - 2.102410332486244e-02 2.102252999507990e-02 2.102095790737760e-02 2.101938706174730e-02 2.101781745879964e-02 - 2.101624909192282e-02 2.101468195450770e-02 2.101311604447429e-02 2.101155137000445e-02 2.100998792857284e-02 - 2.100842571064132e-02 2.100686471849675e-02 2.100530495078897e-02 2.100374640001838e-02 2.100218906014547e-02 - 2.100063293273019e-02 2.099907802537045e-02 2.099752433031871e-02 2.099597184169578e-02 2.099442056340826e-02 - 2.099287048844137e-02 2.099132161182849e-02 2.098977394056553e-02 2.098822746767990e-02 2.098668218492037e-02 - 2.098513809937855e-02 2.098359520656010e-02 2.098205349870481e-02 2.098051298433238e-02 2.097897365788888e-02 - 2.097743550607582e-02 2.097589853771057e-02 2.097436275317134e-02 2.097282814179318e-02 2.097129470444368e-02 - 2.096976244194844e-02 2.096823135057212e-02 2.096670142502171e-02 2.096517266432222e-02 2.096364507294766e-02 - 2.096211864290872e-02 2.096059336882086e-02 2.095906925902597e-02 2.095754630598820e-02 2.095602449947026e-02 - 2.095450384463222e-02 2.095298434369944e-02 2.095146599313072e-02 2.094994878341327e-02 2.094843271500539e-02 - 2.094691779352117e-02 2.094540401073429e-02 2.094389136288097e-02 2.094237985194064e-02 2.094086947133280e-02 - 2.093936021927527e-02 2.093785210108921e-02 2.093634511142213e-02 2.093483924325246e-02 2.093333449385128e-02 - 2.093183086645815e-02 2.093032836253444e-02 2.092882697593887e-02 2.092732670311165e-02 2.092582754108962e-02 - 2.092432948474122e-02 2.092283253800634e-02 2.092133670446908e-02 2.091984196956714e-02 2.091834833166288e-02 - 2.091685579922333e-02 2.091536436905392e-02 2.091387403364116e-02 2.091238478662568e-02 2.091089663391256e-02 - 2.090940957508328e-02 2.090792359986955e-02 2.090643871032298e-02 2.090495490818039e-02 2.090347218811059e-02 - 2.090199054718417e-02 2.090050998308706e-02 2.089903049243704e-02 2.089755207414248e-02 2.089607472810411e-02 - 2.089459845325996e-02 2.089312324594328e-02 2.089164910255710e-02 2.089017602427597e-02 2.088870401009232e-02 - 2.088723305634642e-02 2.088576315893389e-02 2.088429431601771e-02 2.088282652696964e-02 2.088135978615913e-02 - 2.087989409321534e-02 2.087842945395569e-02 2.087696586275656e-02 2.087550331287119e-02 2.087404180207852e-02 - 2.087258132736208e-02 2.087112188861259e-02 2.086966349090147e-02 2.086820612891688e-02 2.086674979608584e-02 - 2.086529449590395e-02 2.086384022331517e-02 2.086238697045790e-02 2.086093474039187e-02 2.085948353444753e-02 - 2.085803335091995e-02 2.085658418796912e-02 2.085513604081134e-02 2.085368890289571e-02 2.085224277300881e-02 - 2.085079765267601e-02 2.084935354393509e-02 2.084791044341373e-02 2.084646834711395e-02 2.084502725286095e-02 - 2.084358715744794e-02 2.084214805848912e-02 2.084070995598070e-02 2.083927284909677e-02 2.083783673573611e-02 - 2.083640161226469e-02 2.083496747523998e-02 2.083353432223483e-02 2.083210215303235e-02 2.083067096927498e-02 - 2.082924077044086e-02 2.082781154460241e-02 2.082638329211299e-02 2.082495602309350e-02 2.082352972509603e-02 - 2.082210439277076e-02 2.082068003454410e-02 2.081925664261260e-02 2.081783421113447e-02 2.081641274508624e-02 - 2.081499224082686e-02 2.081357269450268e-02 2.081215410878219e-02 2.081073647873721e-02 2.080931979776872e-02 - 2.080790406592918e-02 2.080648928500749e-02 2.080507545608266e-02 2.080366257645188e-02 2.080225063919177e-02 - 2.080083963814898e-02 2.079942957984240e-02 2.079802046255642e-02 2.079661227641324e-02 2.079520502452446e-02 - 2.079379870732677e-02 2.079239331877295e-02 2.079098886066600e-02 2.078958533155146e-02 2.078818272238310e-02 - 2.078678103594075e-02 2.078538027480030e-02 2.078398043169412e-02 2.078258150517176e-02 2.078118349582184e-02 - 2.077978640032045e-02 2.077839021518007e-02 2.077699493798996e-02 2.077560056860569e-02 2.077420710626992e-02 - 2.077281454908150e-02 2.077142289397691e-02 2.077003213665487e-02 2.076864227381708e-02 2.076725331084939e-02 - 2.076586524753700e-02 2.076447807479244e-02 2.076309178893910e-02 2.076170639200464e-02 2.076032188924749e-02 - 2.075893827075576e-02 2.075755552867013e-02 2.075617367037054e-02 2.075479269394757e-02 2.075341259415677e-02 - 2.075203337133167e-02 2.075065502119062e-02 2.074927754004291e-02 2.074790093527532e-02 2.074652520196147e-02 - 2.074515032814618e-02 2.074377631824518e-02 2.074240317461906e-02 2.074103089389617e-02 2.073965947285912e-02 - 2.073828890806665e-02 2.073691919635770e-02 2.073555033844026e-02 2.073418233381763e-02 2.073281517823886e-02 - 2.073144886803073e-02 2.073008340377233e-02 2.072871879147831e-02 2.072735502222402e-02 2.072599208688765e-02 - 2.072462999392301e-02 2.072326873860233e-02 2.072190831224300e-02 2.072054872378210e-02 2.071918997148765e-02 - 2.071783204556565e-02 2.071647494755481e-02 2.071511867766477e-02 2.071376323196711e-02 2.071240860565183e-02 - 2.071105479791370e-02 2.070970181180314e-02 2.070834964331268e-02 2.070699828917085e-02 2.070564775075080e-02 - 2.070429802727900e-02 2.070294911380581e-02 2.070160100113699e-02 2.070025369244763e-02 2.069890719322030e-02 - 2.069756149841416e-02 2.069621660331007e-02 2.069487250616514e-02 2.069352920972353e-02 2.069218670843115e-02 - 2.069084499406914e-02 2.068950407478504e-02 2.068816395008570e-02 2.068682460979861e-02 2.068548605525363e-02 - 2.068414828647597e-02 2.068281129879088e-02 2.068147509294542e-02 2.068013966727868e-02 2.067880501481977e-02 - 2.067747113766845e-02 2.067613803889334e-02 2.067480571527677e-02 2.067347415977921e-02 2.067214336769299e-02 - 2.067081334319025e-02 2.066948408776949e-02 2.066815559807265e-02 2.066682786498898e-02 2.066550088830383e-02 - 2.066417467341183e-02 2.066284921698086e-02 2.066152451475288e-02 2.066020056372571e-02 2.065887736182303e-02 - 2.065755490839281e-02 2.065623320354572e-02 2.065491224367795e-02 2.065359202675738e-02 2.065227255436574e-02 - 2.065095382314874e-02 2.064963582941213e-02 2.064831857270797e-02 2.064700204957123e-02 2.064568625651786e-02 - 2.064437119414936e-02 2.064305686324694e-02 2.064174326345409e-02 2.064043039179931e-02 2.063911824280925e-02 - 2.063780681176866e-02 2.063649610237503e-02 2.063518611610314e-02 2.063387684909248e-02 2.063256829217405e-02 - 2.063126044539576e-02 2.062995331851188e-02 2.062864690334512e-02 2.062734119190086e-02 2.062603618600375e-02 - 2.062473188642144e-02 2.062342829221786e-02 2.062212540064643e-02 2.062082320714733e-02 2.061952170915304e-02 - 2.061822091004314e-02 2.061692080716460e-02 2.061562139605911e-02 2.061432267954307e-02 2.061302465323251e-02 - 2.061172730955065e-02 2.061043065371613e-02 2.060913468523504e-02 2.060783939685846e-02 2.060654478913799e-02 - 2.060525086119714e-02 2.060395760866959e-02 2.060266503271371e-02 2.060137313244415e-02 2.060008190215519e-02 - 2.059879134465455e-02 2.059750146004468e-02 2.059621223782829e-02 2.059492368052522e-02 2.059363579225837e-02 - 2.059234856405708e-02 2.059106199328788e-02 2.058977608130871e-02 2.058849082556723e-02 2.058720622498806e-02 - 2.058592227959311e-02 2.058463898696043e-02 2.058335634281647e-02 2.058207434376584e-02 2.058079299573017e-02 - 2.057951229614279e-02 2.057823223269817e-02 2.057695281356401e-02 2.057567404187197e-02 2.057439590387300e-02 - 2.057311839681732e-02 2.057184152455586e-02 2.057056529173392e-02 2.056928969078429e-02 2.056801471376779e-02 - 2.056674036634529e-02 2.056546664830153e-02 2.056419355486686e-02 2.056292108306100e-02 2.056164923170236e-02 - 2.056037800067255e-02 2.055910738924650e-02 2.055783739340399e-02 2.055656800859636e-02 2.055529924146672e-02 - 2.055403109005562e-02 2.055276354110791e-02 2.055149659755915e-02 2.055023026272679e-02 2.054896453244645e-02 - 2.054769940766287e-02 2.054643488681757e-02 2.054517096062926e-02 2.054390763218316e-02 2.054264490512525e-02 - 2.054138276915942e-02 2.054012122328143e-02 2.053886027085424e-02 2.053759990682471e-02 2.053634012878631e-02 - 2.053508093799464e-02 2.053382233647706e-02 2.053256431985532e-02 2.053130687980379e-02 2.053005001911220e-02 - 2.052879373804411e-02 2.052753803104820e-02 2.052628289842169e-02 2.052502834052905e-02 2.052377435424499e-02 - 2.052252093383405e-02 2.052126807833591e-02 2.052001579579881e-02 2.051876408076618e-02 2.051751292558091e-02 - 2.051626233431153e-02 2.051501230108543e-02 2.051376281904528e-02 2.051251389905356e-02 2.051126553806812e-02 - 2.051001772450580e-02 2.050877046477720e-02 2.050752375748313e-02 2.050627759308629e-02 2.050503197764233e-02 - 2.050378691120845e-02 2.050254238346269e-02 2.050129839647772e-02 2.050005495152270e-02 2.049881204279591e-02 - 2.049756967049427e-02 2.049632783497685e-02 2.049508653204386e-02 2.049384576061373e-02 2.049260552085964e-02 - 2.049136581124810e-02 2.049012662828215e-02 2.048888796855573e-02 2.048764983217528e-02 2.048641222055239e-02 - 2.048517513365279e-02 2.048393856449956e-02 2.048270250702790e-02 2.048146696002243e-02 2.048023193267689e-02 - 2.047899742444990e-02 2.047776342204647e-02 2.047652992557144e-02 2.047529693666283e-02 2.047406445284291e-02 - 2.047283247820367e-02 2.047160101124722e-02 2.047037003705319e-02 2.046913955996649e-02 2.046790958805229e-02 - 2.046668011290463e-02 2.046545112747173e-02 2.046422263048016e-02 2.046299462941648e-02 2.046176712182623e-02 - 2.046054009863872e-02 2.045931356011635e-02 2.045808750875261e-02 2.045686194483555e-02 2.045563685869128e-02 - 2.045441224888558e-02 2.045318812405373e-02 2.045196447539730e-02 2.045074129851060e-02 2.044951860203706e-02 - 2.044829637561388e-02 2.044707461146781e-02 2.044585332076453e-02 2.044463250090934e-02 2.044341214478788e-02 - 2.044219225389736e-02 2.044097282684260e-02 2.043975385980242e-02 2.043853534979080e-02 2.043731729516990e-02 - 2.043609969584751e-02 2.043488255365452e-02 2.043366586840525e-02 2.043244963622695e-02 2.043123384788510e-02 - 2.043001850356880e-02 2.042880361352058e-02 2.042758917125052e-02 2.042637516923373e-02 2.042516160738241e-02 - 2.042394848596822e-02 2.042273580364956e-02 2.042152355668345e-02 2.042031174421715e-02 2.041910036711696e-02 - 2.041788942589821e-02 2.041667891618270e-02 2.041546883283581e-02 2.041425917723074e-02 2.041304994671302e-02 - 2.041184113736942e-02 2.041063275507356e-02 2.040942479864618e-02 2.040821725911453e-02 2.040701013329647e-02 - 2.040580342336421e-02 2.040459713364973e-02 2.040339125626194e-02 2.040218578748979e-02 2.040098073437600e-02 - 2.039977609190064e-02 2.039857185194057e-02 2.039736801200263e-02 2.039616457948628e-02 2.039496155847034e-02 - 2.039375893548800e-02 2.039255670811317e-02 2.039135487906758e-02 2.039015344139171e-02 2.038895239754324e-02 - 2.038775175394349e-02 2.038655150008423e-02 2.038535163468296e-02 2.038415216492024e-02 2.038295307932101e-02 - 2.038175437156158e-02 2.038055604740632e-02 2.037935811014152e-02 2.037816055719221e-02 2.037696338008003e-02 - 2.037576657774965e-02 2.037457015197002e-02 2.037337410306159e-02 2.037217842811476e-02 2.037098312337542e-02 - 2.036978818702816e-02 2.036859361901312e-02 2.036739941883561e-02 2.036620558232109e-02 2.036501210897116e-02 - 2.036381899981477e-02 2.036262624936801e-02 2.036143385733716e-02 2.036024182706139e-02 2.035905014947786e-02 - 2.035785882153747e-02 2.035666784977269e-02 2.035547723079831e-02 2.035428696142468e-02 2.035309704319765e-02 - 2.035190747134853e-02 2.035071824110532e-02 2.034952935293085e-02 2.034834080749865e-02 2.034715260430401e-02 - 2.034596474052595e-02 2.034477721202228e-02 2.034359001578161e-02 2.034240315367684e-02 2.034121662664043e-02 - 2.034003043357028e-02 2.033884457132868e-02 2.033765903741480e-02 2.033647382949949e-02 2.033528894162872e-02 - 2.033410437471255e-02 2.033292013620119e-02 2.033173621775026e-02 2.033055261459435e-02 2.032936933387398e-02 - 2.032818637173341e-02 2.032700371995237e-02 2.032582137330103e-02 2.032463934032926e-02 2.032345762721536e-02 - 2.032227621977112e-02 2.032109511380310e-02 2.031991431266943e-02 2.031873381713771e-02 2.031755362367381e-02 - 2.031637372822898e-02 2.031519413522404e-02 2.031401484060572e-02 2.031283583475656e-02 2.031165712768451e-02 - 2.031047872082618e-02 2.030930060067025e-02 2.030812276414845e-02 2.030694521582938e-02 2.030576796297434e-02 - 2.030459099391277e-02 2.030341430130414e-02 2.030223789822972e-02 2.030106177803277e-02 2.029988592949474e-02 - 2.029871035725545e-02 2.029753506661443e-02 2.029636005659757e-02 2.029518531267896e-02 2.029401083596470e-02 - 2.029283663654064e-02 2.029166270589052e-02 2.029048903923464e-02 2.028931563858370e-02 2.028814250195392e-02 - 2.028696962711050e-02 2.028579701358946e-02 2.028462466440920e-02 2.028345257575578e-02 2.028228073462766e-02 - 2.028110914546667e-02 2.027993781542017e-02 2.027876674182124e-02 2.027759591671596e-02 2.027642533515473e-02 - 2.027525500323221e-02 2.027408491983729e-02 2.027291508043819e-02 2.027174548650143e-02 2.027057613494678e-02 - 2.026940701983228e-02 2.026823814087089e-02 2.026706949898955e-02 2.026590109425394e-02 2.026473292320746e-02 - 2.026356498366547e-02 2.026239727592488e-02 2.026122979922282e-02 2.026006255023894e-02 2.025889552388743e-02 - 2.025772872449768e-02 2.025656215399196e-02 2.025539580342713e-02 2.025422967119250e-02 2.025306375830951e-02 - 2.025189806183918e-02 2.025073258129647e-02 2.024956731656576e-02 2.024840226339874e-02 2.024723742127980e-02 - 2.024607279125879e-02 2.024490836776212e-02 2.024374415071052e-02 2.024258014353189e-02 2.024141633571028e-02 - 2.024025272656142e-02 2.023908932762591e-02 2.023792612793740e-02 2.023676312010299e-02 2.023560031179207e-02 - 2.023443769779265e-02 2.023327527310789e-02 2.023211304323675e-02 2.023095100708355e-02 2.022978916007167e-02 - 2.022862749919407e-02 2.022746602379288e-02 2.022630473371739e-02 2.022514362648272e-02 2.022398270121405e-02 - 2.022282195791762e-02 2.022166139402294e-02 2.022050100551405e-02 2.021934078921764e-02 2.021818074920451e-02 - 2.021702088593813e-02 2.021586119314628e-02 2.021470166428228e-02 2.021354230080554e-02 2.021238311308448e-02 - 2.021122409287018e-02 2.021006523025651e-02 2.020890652716039e-02 2.020774798484683e-02 2.020658960393083e-02 - 2.020543138529554e-02 2.020427332378045e-02 2.020311541298552e-02 2.020195765397637e-02 2.020080004744672e-02 - 2.019964259236717e-02 2.019848528642001e-02 2.019732812869024e-02 2.019617111926010e-02 2.019501425544548e-02 - 2.019385753379127e-02 2.019270095135025e-02 2.019154450793482e-02 2.019038820298517e-02 2.018923203417478e-02 - 2.018807600019563e-02 2.018692010151906e-02 2.018576433995726e-02 2.018460870891364e-02 2.018345320296787e-02 - 2.018229782843392e-02 2.018114258172615e-02 2.017998745649097e-02 2.017883245877245e-02 2.017767758620927e-02 - 2.017652283054322e-02 2.017536819223788e-02 2.017421367319040e-02 2.017305927292809e-02 2.017190498313902e-02 - 2.017075080461503e-02 2.016959674752286e-02 2.016844280049332e-02 2.016728895684716e-02 2.016613522539111e-02 - 2.016498159847723e-02 2.016382807033869e-02 2.016267465040216e-02 2.016152133310211e-02 2.016036811076429e-02 - 2.015921498985646e-02 2.015806197025070e-02 2.015690904702832e-02 2.015575621731957e-02 2.015460347791708e-02 - 2.015345082711757e-02 2.015229826996444e-02 2.015114580452791e-02 2.014999342256183e-02 2.014884112402139e-02 - 2.014768891079059e-02 2.014653678283008e-02 2.014538473229735e-02 2.014423275838842e-02 2.014308087159530e-02 - 2.014192906336537e-02 2.014077732405132e-02 2.013962565684693e-02 2.013847406112768e-02 2.013732253607323e-02 - 2.013617108558620e-02 2.013501970367529e-02 2.013386838304751e-02 2.013271713092954e-02 2.013156594450895e-02 - 2.013041481517404e-02 2.012926374836556e-02 2.012811274375330e-02 2.012696179396415e-02 2.012581089842930e-02 - 2.012466005832842e-02 2.012350927388322e-02 2.012235854139777e-02 2.012120785897021e-02 2.012005722808521e-02 - 2.011890664240422e-02 2.011775609861771e-02 2.011660560342765e-02 2.011545514995805e-02 2.011430473248947e-02 - 2.011315436328775e-02 2.011200403690588e-02 2.011085374071231e-02 2.010970347811273e-02 2.010855325123000e-02 - 2.010740305829795e-02 2.010625289543029e-02 2.010510276184403e-02 2.010395265874816e-02 2.010280258124321e-02 - 2.010165252783862e-02 2.010050250168409e-02 2.009935249835288e-02 2.009820251528310e-02 2.009705255512517e-02 - 2.009590261098061e-02 2.009475267797075e-02 2.009360276160796e-02 2.009245286068316e-02 2.009130297235736e-02 - 2.009015309860190e-02 2.008900323371492e-02 2.008785337125678e-02 2.008670351711407e-02 2.008555367122358e-02 - 2.008440382812401e-02 2.008325398588614e-02 2.008210414433437e-02 2.008095430334925e-02 2.007980445913736e-02 - 2.007865461009197e-02 2.007750475755383e-02 2.007635489836262e-02 2.007520502856765e-02 2.007405514609401e-02 - 2.007290525369839e-02 2.007175535352643e-02 2.007060544261636e-02 2.006945551378952e-02 2.006830556246986e-02 - 2.006715559358176e-02 2.006600560685722e-02 2.006485559907452e-02 2.006370557035152e-02 2.006255552017783e-02 - 2.006140544519211e-02 2.006025533608720e-02 2.005910519424486e-02 2.005795502866486e-02 2.005680483150780e-02 - 2.005565460068358e-02 2.005450434307724e-02 2.005335404752871e-02 2.005220370751987e-02 2.005105333078331e-02 - 2.004990291380246e-02 2.004875245256121e-02 2.004760195075808e-02 2.004645140541610e-02 2.004530081249103e-02 - 2.004415017386308e-02 2.004299948719255e-02 2.004184874893760e-02 2.004069796075558e-02 2.003954711861807e-02 - 2.003839621652469e-02 2.003724525928808e-02 2.003609424691447e-02 2.003494317431652e-02 2.003379204407136e-02 - 2.003264085311753e-02 2.003148959193977e-02 2.003033826577724e-02 2.002918687817827e-02 2.002803542325049e-02 - 2.002688389828578e-02 2.002573230084169e-02 2.002458062668545e-02 2.002342887779152e-02 2.002227705716231e-02 - 2.002112516254241e-02 2.001997318998642e-02 2.001882113644655e-02 2.001766900292078e-02 2.001651678857442e-02 - 2.001536448981540e-02 2.001421210083374e-02 2.001305962366636e-02 2.001190706486020e-02 2.001075441600587e-02 - 2.000960167234195e-02 2.000844883687991e-02 2.000729590520412e-02 2.000614287591466e-02 2.000498975435740e-02 - 2.000383653574291e-02 2.000268321490327e-02 2.000152979351511e-02 2.000037626872929e-02 1.999922263743778e-02 - 1.999806890154111e-02 1.999691505794393e-02 1.999576110265488e-02 1.999460703886217e-02 1.999345286480270e-02 - 1.999229857569377e-02 1.999114417297134e-02 1.998998965543275e-02 1.998883501902821e-02 1.998768026399775e-02 - 1.998652538946059e-02 1.998537039260291e-02 1.998421527483334e-02 1.998306003351848e-02 1.998190465988335e-02 - 1.998074915750420e-02 1.997959352937345e-02 1.997843776879367e-02 1.997728187765045e-02 1.997612585705249e-02 - 1.997496969649909e-02 1.997381339760593e-02 1.997265696528752e-02 1.997150039002939e-02 1.997034367059401e-02 - 1.996918681208352e-02 1.996802981226081e-02 1.996687266788810e-02 1.996571537594770e-02 1.996455793197006e-02 - 1.996340033608642e-02 1.996224259309599e-02 1.996108470119043e-02 1.995992665416334e-02 1.995876844505867e-02 - 1.995761008193637e-02 1.995645156786617e-02 1.995529288784624e-02 1.995413404457776e-02 1.995297504246996e-02 - 1.995181586885687e-02 1.995065652904149e-02 1.994949703248385e-02 1.994833736513130e-02 1.994717752162546e-02 - 1.994601750553184e-02 1.994485731663886e-02 1.994369695406686e-02 1.994253641736701e-02 1.994137570693218e-02 - 1.994021481716852e-02 1.993905373876526e-02 1.993789248152490e-02 1.993673104732284e-02 1.993556942048493e-02 - 1.993440760773439e-02 1.993324561433191e-02 1.993208342679873e-02 1.993092104568069e-02 1.992975847582151e-02 - 1.992859571315939e-02 1.992743275300710e-02 1.992626959353599e-02 1.992510623927749e-02 1.992394268911061e-02 - 1.992277893654564e-02 1.992161497535049e-02 1.992045080942924e-02 1.991928644769617e-02 1.991812187931771e-02 - 1.991695709651699e-02 1.991579210148713e-02 1.991462689658082e-02 1.991346148075462e-02 1.991229584907280e-02 - 1.991113000189043e-02 1.990996393932216e-02 1.990879765723607e-02 1.990763115454515e-02 1.990646443148474e-02 - 1.990529748687400e-02 1.990413031580006e-02 1.990296291532720e-02 1.990179529310021e-02 1.990062744303953e-02 - 1.989945935329500e-02 1.989829103342642e-02 1.989712248515872e-02 1.989595370004318e-02 1.989478467737964e-02 - 1.989361541884726e-02 1.989244592499573e-02 1.989127618925862e-02 1.989010620674421e-02 1.988893597834538e-02 - 1.988776550466197e-02 1.988659478703524e-02 1.988542382727661e-02 1.988425261506333e-02 1.988308114268849e-02 - 1.988190942098788e-02 1.988073745006194e-02 1.987956522359536e-02 1.987839274079954e-02 1.987722000000555e-02 - 1.987604699732070e-02 1.987487372670402e-02 1.987370019241589e-02 1.987252640362364e-02 1.987135234678179e-02 - 1.987017801708705e-02 1.986900342417090e-02 1.986782856130232e-02 1.986665342124566e-02 1.986547800516037e-02 - 1.986430231940191e-02 1.986312636323797e-02 1.986195012209680e-02 1.986077359858922e-02 1.985959679883774e-02 - 1.985841971608161e-02 1.985724235007767e-02 1.985606470192896e-02 1.985488676268764e-02 1.985370853173279e-02 - 1.985253001389235e-02 1.985135120589531e-02 1.985017210671596e-02 1.984899271721913e-02 1.984781303008921e-02 - 1.984663304141680e-02 1.984545275323681e-02 1.984427216416261e-02 1.984309127447186e-02 1.984191008724042e-02 - 1.984072859600846e-02 1.983954679442092e-02 1.983836468369445e-02 1.983718226650526e-02 1.983599954091759e-02 - 1.983481649574990e-02 1.983363313683907e-02 1.983244947316962e-02 1.983126549121019e-02 1.983008118452795e-02 - 1.982889655650101e-02 1.982771161407836e-02 1.982652635127155e-02 1.982534075477381e-02 1.982415483542671e-02 - 1.982296859699974e-02 1.982178202865004e-02 1.982059512679342e-02 1.981940789099672e-02 1.981822032140366e-02 - 1.981703241807743e-02 1.981584417989424e-02 1.981465560415464e-02 1.981346669171603e-02 1.981227744136961e-02 - 1.981108784415540e-02 1.980989790130036e-02 1.980870761757638e-02 1.980751698807925e-02 1.980632600934410e-02 - 1.980513468056937e-02 1.980394300171975e-02 1.980275097143216e-02 1.980155858653555e-02 1.980036584235624e-02 - 1.979917273943820e-02 1.979797928262491e-02 1.979678546489206e-02 1.979559128379798e-02 1.979439674657348e-02 - 1.979320184217468e-02 1.979200656369760e-02 1.979081092352834e-02 1.978961491694981e-02 1.978841853542797e-02 - 1.978722178317891e-02 1.978602465925507e-02 1.978482715855289e-02 1.978362927697639e-02 1.978243101628911e-02 - 1.978123238058121e-02 1.978003336668686e-02 1.977883396860304e-02 1.977763418131442e-02 1.977643400902304e-02 - 1.977523345232920e-02 1.977403250607500e-02 1.977283117205557e-02 1.977162944865208e-02 1.977042732702634e-02 - 1.976922480613855e-02 1.976802188997964e-02 1.976681858355301e-02 1.976561487769950e-02 1.976441076369096e-02 - 1.976320624890566e-02 1.976200133147697e-02 1.976079600616600e-02 1.975959027757971e-02 1.975838414138116e-02 - 1.975717758909272e-02 1.975597062600439e-02 1.975476325369590e-02 1.975355546738499e-02 1.975234726242962e-02 - 1.975113863825908e-02 1.974992959762522e-02 1.974872013640206e-02 1.974751025163228e-02 1.974629994489470e-02 - 1.974508921425132e-02 1.974387805573186e-02 1.974266646519683e-02 1.974145444319864e-02 1.974024199150465e-02 - 1.973902910920840e-02 1.973781579519036e-02 1.973660204598839e-02 1.973538785240977e-02 1.973417321684443e-02 - 1.973295814730416e-02 1.973174263781577e-02 1.973052668253849e-02 1.972931027913797e-02 1.972809342747564e-02 - 1.972687612827085e-02 1.972565838187941e-02 1.972444018482310e-02 1.972322153363352e-02 1.972200242687443e-02 - 1.972078286440720e-02 1.971956284541047e-02 1.971834236691286e-02 1.971712142485657e-02 1.971590001741145e-02 - 1.971467814826898e-02 1.971345581852119e-02 1.971223302479186e-02 1.971100975804211e-02 1.970978601823674e-02 - 1.970856181065497e-02 1.970733713228995e-02 1.970611197806177e-02 1.970488634450282e-02 1.970366023582840e-02 - 1.970243364879734e-02 1.970120657299705e-02 1.969997901837739e-02 1.969875098677333e-02 1.969752246217473e-02 - 1.969629345274012e-02 1.969506396226801e-02 1.969383397141272e-02 1.969260348756574e-02 1.969137252109090e-02 - 1.969014105730648e-02 1.968890909233832e-02 1.968767662961491e-02 1.968644366805134e-02 1.968521020635475e-02 - 1.968397624286150e-02 1.968274177331172e-02 1.968150679588088e-02 1.968027131148579e-02 1.967903532058098e-02 - 1.967779882218197e-02 1.967656181292412e-02 1.967532428489620e-02 1.967408623811289e-02 1.967284768294825e-02 - 1.967160860971293e-02 1.967036900987211e-02 1.966912889102269e-02 1.966788825153749e-02 1.966664708600774e-02 - 1.966540539310703e-02 1.966416317292449e-02 1.966292042476060e-02 1.966167714455673e-02 1.966043333167102e-02 - 1.965918898702837e-02 1.965794410650064e-02 1.965669868705162e-02 1.965545272765306e-02 1.965420622710374e-02 - 1.965295918609461e-02 1.965171160585919e-02 1.965046347855766e-02 1.964921480087875e-02 1.964796557872257e-02 - 1.964671580769246e-02 1.964546548231519e-02 1.964421460325605e-02 1.964296317129598e-02 1.964171118580111e-02 - 1.964045864365522e-02 1.963920554157133e-02 1.963795187629582e-02 1.963669764477085e-02 1.963544284945441e-02 - 1.963418749362842e-02 1.963293156932153e-02 1.963167507295046e-02 1.963041800662418e-02 1.962916036936736e-02 - 1.962790216073956e-02 1.962664338014056e-02 1.962538401760687e-02 1.962412407160046e-02 1.962286355381917e-02 - 1.962160245501161e-02 1.962034076606272e-02 1.961907849332115e-02 1.961781563715828e-02 1.961655219371613e-02 - 1.961528815879130e-02 1.961402353224150e-02 1.961275831461461e-02 1.961149250160691e-02 1.961022609250104e-02 - 1.960895908768241e-02 1.960769148013132e-02 1.960642326897369e-02 1.960515445887448e-02 1.960388504699325e-02 - 1.960261502901453e-02 1.960134440209794e-02 1.960007316755673e-02 1.959880132269796e-02 1.959752885956289e-02 - 1.959625578572781e-02 1.959498210471557e-02 1.959370780282661e-02 1.959243287776576e-02 1.959115733236078e-02 - 1.958988116575855e-02 1.958860437570835e-02 1.958732696070351e-02 1.958604892230215e-02 1.958477025538254e-02 - 1.958349095293616e-02 1.958221102005211e-02 1.958093045820349e-02 1.957964926225915e-02 1.957836742427244e-02 - 1.957708494595253e-02 1.957580183693370e-02 1.957451808573694e-02 1.957323368588814e-02 1.957194864588927e-02 - 1.957066295908808e-02 1.956937661864716e-02 1.956808962863577e-02 1.956680198857452e-02 1.956551369740821e-02 - 1.956422475810978e-02 1.956293516289206e-02 1.956164490198652e-02 1.956035397935251e-02 1.955906239928264e-02 - 1.955777016187055e-02 1.955647725858155e-02 1.955518368630142e-02 1.955388944730695e-02 1.955259453790914e-02 - 1.955129895574477e-02 1.955000270138056e-02 1.954870577278503e-02 1.954740816848287e-02 1.954610988870274e-02 - 1.954481093111385e-02 1.954351129226784e-02 1.954221096901902e-02 1.954090996078360e-02 1.953960826724446e-02 - 1.953830588603245e-02 1.953700281656794e-02 1.953569905855491e-02 1.953439460897686e-02 1.953308946443935e-02 - 1.953178362233442e-02 1.953047708245082e-02 1.952916984426731e-02 1.952786190592496e-02 1.952655326324738e-02 - 1.952524391408689e-02 1.952393385929222e-02 1.952262309949111e-02 1.952131163370209e-02 1.951999945844595e-02 - 1.951868656751035e-02 1.951737295829730e-02 1.951605863555755e-02 1.951474359789877e-02 1.951342784097203e-02 - 1.951211136184995e-02 1.951079415956861e-02 1.950947623396647e-02 1.950815758387342e-02 1.950683820574165e-02 - 1.950551809587482e-02 1.950419725560715e-02 1.950287568354725e-02 1.950155337574423e-02 1.950023033242808e-02 - 1.949890655251627e-02 1.949758203322258e-02 1.949625677745909e-02 1.949493078034667e-02 1.949360402739089e-02 - 1.949227653112452e-02 1.949094829757290e-02 1.948961930480046e-02 1.948828955781861e-02 1.948695906691206e-02 - 1.948562782150981e-02 1.948429581598615e-02 1.948296304982478e-02 1.948162952319633e-02 1.948029523591830e-02 - 1.947896018726217e-02 1.947762437581102e-02 1.947628779922486e-02 1.947495045397724e-02 1.947361233489661e-02 - 1.947227344348770e-02 1.947093378593678e-02 1.946959335022997e-02 1.946825212971076e-02 1.946691013283964e-02 - 1.946556736109183e-02 1.946422381089845e-02 1.946287947598024e-02 1.946153435147304e-02 1.946018843640089e-02 - 1.945884173551620e-02 1.945749424593349e-02 1.945614596164208e-02 1.945479688244431e-02 1.945344700980195e-02 - 1.945209634356683e-02 1.945074487666461e-02 1.944939260492236e-02 1.944803952905332e-02 1.944668565282712e-02 - 1.944533097303948e-02 1.944397548026850e-02 1.944261917903520e-02 1.944126207147254e-02 1.943990414971487e-02 - 1.943854540610747e-02 1.943718584222317e-02 1.943582547177293e-02 1.943446428245481e-02 1.943310226105812e-02 - 1.943173942068859e-02 1.943037575924362e-02 1.942901126749138e-02 1.942764594793762e-02 1.942627979717840e-02 - 1.942491280913776e-02 1.942354498868186e-02 1.942217633546996e-02 1.942080684436220e-02 1.941943651933332e-02 - 1.941806535493775e-02 1.941669333695301e-02 1.941532047644210e-02 1.941394677715704e-02 1.941257222315028e-02 - 1.941119681542690e-02 1.940982056035791e-02 1.940844345901757e-02 1.940706550055424e-02 1.940568667678698e-02 - 1.940430699663802e-02 1.940292645883611e-02 1.940154505765652e-02 1.940016279578962e-02 1.939877966977487e-02 - 1.939739567223053e-02 1.939601080219835e-02 1.939462506233509e-02 1.939323845462366e-02 1.939185096971125e-02 - 1.939046260516801e-02 1.938907336764642e-02 1.938768325184633e-02 1.938629225021856e-02 1.938490035911401e-02 - 1.938350758330235e-02 1.938211392651081e-02 1.938071938447496e-02 1.937932394922459e-02 1.937792761695239e-02 - 1.937653039473651e-02 1.937513227779157e-02 1.937373325789699e-02 1.937233333934693e-02 1.937093252080456e-02 - 1.936953079702195e-02 1.936812816928827e-02 1.936672463690015e-02 1.936532019607867e-02 1.936391484345597e-02 - 1.936250857586552e-02 1.936110139138094e-02 1.935969329410197e-02 1.935828428412852e-02 1.935687435366041e-02 - 1.935546349795341e-02 1.935405171682407e-02 1.935263901452006e-02 1.935122538845629e-02 1.934981083240821e-02 - 1.934839534117787e-02 1.934697891910190e-02 1.934556156924906e-02 1.934414327695751e-02 1.934272404361874e-02 - 1.934130387854031e-02 1.933988276959641e-02 1.933846071416343e-02 1.933703771882020e-02 1.933561377409585e-02 - 1.933418887831357e-02 1.933276303945045e-02 1.933133624375953e-02 1.932990848653697e-02 1.932847978247962e-02 - 1.932705012296452e-02 1.932561949662077e-02 1.932418790536504e-02 1.932275535526071e-02 1.932132184669807e-02 - 1.931988736608416e-02 1.931845191123332e-02 1.931701548648173e-02 1.931557809132799e-02 1.931413972218449e-02 - 1.931270037603072e-02 1.931126005688787e-02 1.930981875761609e-02 1.930837646527647e-02 1.930693319154590e-02 - 1.930548893938918e-02 1.930404369700001e-02 1.930259746628386e-02 1.930115024647330e-02 1.929970202824377e-02 - 1.929825281461415e-02 1.929680260792617e-02 1.929535140092010e-02 1.929389919235001e-02 1.929244598266550e-02 - 1.929099176842190e-02 1.928953654639375e-02 1.928808031414528e-02 1.928662307035359e-02 1.928516481711372e-02 - 1.928370555611205e-02 1.928224527966380e-02 1.928078398206115e-02 1.927932166173262e-02 1.927785831899656e-02 - 1.927639395364510e-02 1.927492856464996e-02 1.927346215243780e-02 1.927199471282116e-02 1.927052623652251e-02 - 1.926905672766994e-02 1.926758618873705e-02 1.926611461056382e-02 1.926464199150991e-02 1.926316833245443e-02 - 1.926169363057714e-02 1.926021788634381e-02 1.925874109903830e-02 1.925726325940621e-02 1.925578436860509e-02 - 1.925430443199749e-02 1.925282343948819e-02 1.925134138889128e-02 1.924985828498051e-02 1.924837411847957e-02 - 1.924688888599618e-02 1.924540259377309e-02 1.924391524090012e-02 1.924242682077230e-02 1.924093732460676e-02 - 1.923944675829762e-02 1.923795512510602e-02 1.923646241448938e-02 1.923496862521413e-02 1.923347375911634e-02 - 1.923197781292445e-02 1.923048078180134e-02 1.922898266296426e-02 1.922748346006174e-02 1.922598317069195e-02 - 1.922448178990142e-02 1.922297932164773e-02 1.922147575963824e-02 1.921997109174737e-02 1.921846532805457e-02 - 1.921695846861228e-02 1.921545049993734e-02 1.921394143207274e-02 1.921243126559395e-02 1.921091998083786e-02 - 1.920940758472120e-02 1.920789408374423e-02 1.920637946562360e-02 1.920486373146851e-02 1.920334688393281e-02 - 1.920182891329169e-02 1.920030981699324e-02 1.919878959725658e-02 1.919726825432456e-02 1.919574578635056e-02 - 1.919422218928470e-02 1.919269745661605e-02 1.919117158884151e-02 1.918964459045353e-02 1.918811645370936e-02 - 1.918658717454346e-02 1.918505675553962e-02 1.918352519296369e-02 1.918199248296462e-02 1.918045862469436e-02 - 1.917892361805418e-02 1.917738746182788e-02 1.917585015265352e-02 1.917431168820606e-02 1.917277206550804e-02 - 1.917123127946213e-02 1.916968933132487e-02 1.916814622316750e-02 1.916660194885779e-02 1.916505650873668e-02 - 1.916350990423480e-02 1.916196212155291e-02 1.916041316033273e-02 1.915886303062994e-02 1.915731172194125e-02 - 1.915575922930148e-02 1.915420555876758e-02 1.915265070860661e-02 1.915109467332810e-02 1.914953744666585e-02 - 1.914797902645569e-02 1.914641941412443e-02 1.914485861314037e-02 1.914329661713828e-02 1.914173341932142e-02 - 1.914016902223032e-02 1.913860342379879e-02 1.913703662029905e-02 1.913546861279183e-02 1.913389939805644e-02 - 1.913232897075573e-02 1.913075733118505e-02 1.912918447844714e-02 1.912761040908805e-02 1.912603511839811e-02 - 1.912445860715432e-02 1.912288088009771e-02 1.912130192853472e-02 1.911972174626816e-02 1.911814033569584e-02 - 1.911655769224527e-02 1.911497381452394e-02 1.911338870990516e-02 1.911180236957772e-02 1.911021478317005e-02 - 1.910862595492130e-02 1.910703588697045e-02 1.910544457683553e-02 1.910385201685182e-02 1.910225820527016e-02 - 1.910066314375077e-02 1.909906682830796e-02 1.909746925477876e-02 1.909587042200599e-02 1.909427033688354e-02 - 1.909266899402551e-02 1.909106637643193e-02 1.908946249114346e-02 1.908785734491775e-02 1.908625093213804e-02 - 1.908464324204344e-02 1.908303427175084e-02 1.908142403234494e-02 1.907981251534393e-02 1.907819971100440e-02 - 1.907658562789714e-02 1.907497026158614e-02 1.907335360333112e-02 1.907173565762024e-02 1.907011642370295e-02 - 1.906849589616872e-02 1.906687407274958e-02 1.906525095073851e-02 1.906362652703246e-02 1.906200080112851e-02 - 1.906037377260159e-02 1.905874543999789e-02 1.905711580005939e-02 1.905548484883143e-02 1.905385258297056e-02 - 1.905221900422594e-02 1.905058411108648e-02 1.904894789413228e-02 1.904731035325132e-02 1.904567149183364e-02 - 1.904403130952197e-02 1.904238980136186e-02 1.904074696113758e-02 1.903910278612417e-02 1.903745727544392e-02 - 1.903581042868199e-02 1.903416224385271e-02 1.903251272055347e-02 1.903086185871027e-02 1.902920965236104e-02 - 1.902755609551852e-02 1.902590118543579e-02 1.902424492713456e-02 1.902258731926820e-02 1.902092835050054e-02 - 1.901926802409253e-02 1.901760634215130e-02 1.901594329530476e-02 1.901427888303375e-02 1.901261310655987e-02 - 1.901094596056572e-02 1.900927744335199e-02 1.900760755425454e-02 1.900593628837979e-02 1.900426364429972e-02 - 1.900258962310978e-02 1.900091422355684e-02 1.899923743835855e-02 1.899755925950979e-02 1.899587969656637e-02 - 1.899419874741247e-02 1.899251639645128e-02 1.899083265299966e-02 1.898914752052511e-02 1.898746098477085e-02 - 1.898577304386013e-02 1.898408369969058e-02 1.898239295076986e-02 1.898070079269564e-02 1.897900722255288e-02 - 1.897731224261929e-02 1.897561584849886e-02 1.897391803334516e-02 1.897221879605241e-02 1.897051814026927e-02 - 1.896881606767167e-02 1.896711256470153e-02 1.896540762798833e-02 1.896370126437186e-02 1.896199347193909e-02 - 1.896028424413336e-02 1.895857357350164e-02 1.895686146124061e-02 1.895514791045918e-02 1.895343292131205e-02 - 1.895171648302300e-02 1.894999858923527e-02 1.894827924721451e-02 1.894655845419708e-02 1.894483620522033e-02 - 1.894311250187257e-02 1.894138733732357e-02 1.893966070463249e-02 1.893793261072514e-02 1.893620305335951e-02 - 1.893447202418282e-02 1.893273952309081e-02 1.893100555094376e-02 1.892927010627177e-02 1.892753318110494e-02 - 1.892579477108063e-02 1.892405487784487e-02 1.892231350329449e-02 1.892057064453369e-02 1.891882629307712e-02 - 1.891708044683251e-02 1.891533310610873e-02 1.891358427035544e-02 1.891183393696100e-02 1.891008210291091e-02 - 1.890832876617924e-02 1.890657392211156e-02 1.890481756749361e-02 1.890305970669826e-02 1.890130033664154e-02 - 1.889953944876527e-02 1.889777703845312e-02 1.889601310905792e-02 1.889424766560776e-02 1.889248069356991e-02 - 1.889071219005931e-02 1.888894216610460e-02 1.888717060771540e-02 1.888539750970531e-02 1.888362288621832e-02 - 1.888184672351093e-02 1.888006901097801e-02 1.887828976119468e-02 1.887650896887177e-02 1.887472662448569e-02 - 1.887294273026847e-02 1.887115728373587e-02 1.886937028132879e-02 1.886758172601296e-02 1.886579161241305e-02 - 1.886399993232671e-02 1.886220669095003e-02 1.886041188581822e-02 1.885861550746470e-02 1.885681755698847e-02 - 1.885501803485419e-02 1.885321693733238e-02 1.885141425906957e-02 1.884960999916156e-02 1.884780416185130e-02 - 1.884599674103886e-02 1.884418772927479e-02 1.884237712445391e-02 1.884056492700234e-02 1.883875113673901e-02 - 1.883693574995443e-02 1.883511876102816e-02 1.883330016667216e-02 1.883147997149076e-02 1.882965817385698e-02 - 1.882783476601560e-02 1.882600973926643e-02 1.882418309568715e-02 1.882235484340025e-02 1.882052497417560e-02 - 1.881869348031539e-02 1.881686035975185e-02 1.881502561164409e-02 1.881318923741505e-02 1.881135123913003e-02 - 1.880951160558249e-02 1.880767032900146e-02 1.880582741534564e-02 1.880398286136111e-02 1.880213666245483e-02 - 1.880028882149621e-02 1.879843933370182e-02 1.879658819228311e-02 1.879473539862031e-02 1.879288094991765e-02 - 1.879102484097325e-02 1.878916707209326e-02 1.878730764191372e-02 1.878544654683108e-02 1.878358378459472e-02 - 1.878171935183507e-02 1.877985324430765e-02 1.877798546179407e-02 1.877611600228067e-02 1.877424486050507e-02 - 1.877237203778229e-02 1.877049753324887e-02 1.876862133863330e-02 1.876674345293673e-02 1.876486387617420e-02 - 1.876298260257535e-02 1.876109963059111e-02 1.875921496034764e-02 1.875732858848502e-02 1.875544051216185e-02 - 1.875355072885378e-02 1.875165923449702e-02 1.874976602623304e-02 1.874787110336161e-02 1.874597446797304e-02 - 1.874407611425766e-02 1.874217603022874e-02 1.874027422146802e-02 1.873837068906284e-02 1.873646542198345e-02 - 1.873455842189881e-02 1.873264969164939e-02 1.873073922656172e-02 1.872882701964194e-02 1.872691306648714e-02 - 1.872499736923527e-02 1.872307992509612e-02 1.872116072949887e-02 1.871923978227258e-02 1.871731708186487e-02 - 1.871539262387551e-02 1.871346640021372e-02 1.871153841041527e-02 1.870960865979342e-02 1.870767714578883e-02 - 1.870574386089293e-02 1.870380879685916e-02 1.870187195798613e-02 1.869993334446320e-02 1.869799294696750e-02 - 1.869605076691687e-02 1.869410680376838e-02 1.869216104730458e-02 1.869021349836844e-02 1.868826416022470e-02 - 1.868631302853863e-02 1.868436009644664e-02 1.868240535897862e-02 1.868044881818047e-02 1.867849047172725e-02 - 1.867653031474529e-02 1.867456834731333e-02 1.867260456736053e-02 1.867063897034608e-02 1.866867155351236e-02 - 1.866670231459311e-02 1.866473125095620e-02 1.866275835809391e-02 1.866078363356833e-02 1.865880707775009e-02 - 1.865682868564128e-02 1.865484845476688e-02 1.865286638889887e-02 1.865088247751579e-02 1.864889671303901e-02 - 1.864690910747520e-02 1.864491965354244e-02 1.864292833855512e-02 1.864093516946379e-02 1.863894014384585e-02 - 1.863694325319922e-02 1.863494449952898e-02 1.863294388193027e-02 1.863094139526787e-02 1.862893703607748e-02 - 1.862693080034535e-02 1.862492268387857e-02 1.862291268732941e-02 1.862090081042848e-02 1.861888704957227e-02 - 1.861687140151818e-02 1.861485386231105e-02 1.861283442704270e-02 1.861081309610335e-02 1.860878986806025e-02 - 1.860676473338590e-02 1.860473769529663e-02 1.860270875778476e-02 1.860067790615180e-02 1.859864513789995e-02 - 1.859661045850656e-02 1.859457386260990e-02 1.859253534675110e-02 1.859049490946049e-02 1.858845254228221e-02 - 1.858640824383296e-02 1.858436201966219e-02 1.858231386031445e-02 1.858026376148910e-02 1.857821173011040e-02 - 1.857615775674864e-02 1.857410183289329e-02 1.857204396224591e-02 1.856998414158087e-02 1.856792236630606e-02 - 1.856585863699762e-02 1.856379295088432e-02 1.856172530348682e-02 1.855965569223371e-02 1.855758411493529e-02 - 1.855551056872843e-02 1.855343504862798e-02 1.855135755357239e-02 1.854927808391809e-02 1.854719662999937e-02 - 1.854511318947389e-02 1.854302776884543e-02 1.854094036342127e-02 1.853885096469986e-02 1.853675956540365e-02 - 1.853466616668727e-02 1.853257077183708e-02 1.853047338096206e-02 1.852837398473379e-02 1.852627257507170e-02 - 1.852416915520061e-02 1.852206372211816e-02 1.851995627104085e-02 1.851784680396669e-02 1.851573531468755e-02 - 1.851362179508880e-02 1.851150625260910e-02 1.850938868433302e-02 1.850726907790290e-02 1.850514743267316e-02 - 1.850302375022463e-02 1.850089802974987e-02 1.849877026321467e-02 1.849664044568886e-02 1.849450857919205e-02 - 1.849237466328984e-02 1.849023869225825e-02 1.848810065567833e-02 1.848596056072587e-02 1.848381841125062e-02 - 1.848167418759208e-02 1.847952788817062e-02 1.847737952020788e-02 1.847522908039946e-02 1.847307656165976e-02 - 1.847092195736722e-02 1.846876526733367e-02 1.846660649126623e-02 1.846444562782898e-02 1.846228267641075e-02 - 1.846011763022634e-02 1.845795047822359e-02 1.845578122357826e-02 1.845360986824314e-02 1.845143640646702e-02 - 1.844926083412144e-02 1.844708314829677e-02 1.844490334652741e-02 1.844272142526039e-02 1.844053738232335e-02 - 1.843835121884711e-02 1.843616292877729e-02 1.843397250473794e-02 1.843177994759022e-02 1.842958525561723e-02 - 1.842738842512387e-02 1.842518945510765e-02 1.842298833954339e-02 1.842078507029563e-02 1.841857965103055e-02 - 1.841637208298309e-02 1.841416236088061e-02 1.841195047731196e-02 1.840973642948215e-02 1.840752022011446e-02 - 1.840530184216091e-02 1.840308128892246e-02 1.840085856103635e-02 1.839863365911139e-02 1.839640658087383e-02 - 1.839417731924000e-02 1.839194587083986e-02 1.838971223370895e-02 1.838747640300020e-02 1.838523837692452e-02 - 1.838299815548432e-02 1.838075573582631e-02 1.837851111106092e-02 1.837626427462707e-02 1.837401523350234e-02 - 1.837176398539980e-02 1.836951051641877e-02 1.836725482529124e-02 1.836499691387402e-02 1.836273678151691e-02 - 1.836047442118306e-02 1.835820982858270e-02 1.835594300692513e-02 1.835367394977665e-02 1.835140264983480e-02 - 1.834912910825698e-02 1.834685332362546e-02 1.834457529066184e-02 1.834229500068380e-02 1.834001245612868e-02 - 1.833772766191195e-02 1.833544060380268e-02 1.833315127769170e-02 1.833085968975407e-02 1.832856583633842e-02 - 1.832626971106521e-02 1.832397130817964e-02 1.832167062581619e-02 1.831936766045366e-02 1.831706240632338e-02 - 1.831475486820015e-02 1.831244504576387e-02 1.831013292472488e-02 1.830781850356614e-02 1.830550178468002e-02 - 1.830318276421879e-02 1.830086143845657e-02 1.829853780375753e-02 1.829621185558813e-02 1.829388359300937e-02 - 1.829155301569956e-02 1.828922011662799e-02 1.828688489153528e-02 1.828454733892483e-02 1.828220745351499e-02 - 1.827986523367206e-02 1.827752068069898e-02 1.827517378500067e-02 1.827282454323407e-02 1.827047296291425e-02 - 1.826811903643735e-02 1.826576275326505e-02 1.826340410954280e-02 1.826104310998728e-02 1.825867975496676e-02 - 1.825631402943589e-02 1.825394593365713e-02 1.825157547349511e-02 1.824920264235266e-02 1.824682743095013e-02 - 1.824444983334214e-02 1.824206985531418e-02 1.823968749396920e-02 1.823730273947125e-02 1.823491559405069e-02 - 1.823252605635143e-02 1.823013411851380e-02 1.822773977727079e-02 1.822534302885856e-02 1.822294386817581e-02 - 1.822054229933361e-02 1.821813832218229e-02 1.821573192447362e-02 1.821332310276354e-02 1.821091185568656e-02 - 1.820849817689734e-02 1.820608206836350e-02 1.820366353310689e-02 1.820124256311412e-02 1.819881915016099e-02 - 1.819639328969794e-02 1.819396498477247e-02 1.819153423068764e-02 1.818910101812068e-02 1.818666535246774e-02 - 1.818422723286477e-02 1.818178664914423e-02 1.817934360000525e-02 1.817689808189780e-02 1.817445008627356e-02 - 1.817199961756547e-02 1.816954667558178e-02 1.816709124568389e-02 1.816463332917677e-02 1.816217292950077e-02 - 1.815971003769815e-02 1.815724465123547e-02 1.815477676809149e-02 1.815230637650250e-02 1.814983348051392e-02 - 1.814735808823705e-02 1.814488018072306e-02 1.814239975267995e-02 1.813991681262074e-02 1.813743135508509e-02 - 1.813494337086823e-02 1.813245285281114e-02 1.812995980445686e-02 1.812746422731492e-02 1.812496611573551e-02 - 1.812246546481565e-02 1.811996226848969e-02 1.811745651920204e-02 1.811494821957559e-02 1.811243737133842e-02 - 1.810992396481434e-02 1.810740799805441e-02 1.810488947142559e-02 1.810236837745802e-02 1.809984471224923e-02 - 1.809731847419077e-02 1.809478965788605e-02 1.809225826197647e-02 1.808972428730369e-02 1.808718772623545e-02 - 1.808464857219165e-02 1.808210682315950e-02 1.807956248210254e-02 1.807701554512131e-02 1.807446599893149e-02 - 1.807191384222250e-02 1.806935907649996e-02 1.806680169977935e-02 1.806424171112906e-02 1.806167910639137e-02 - 1.805911387430984e-02 1.805654601234490e-02 1.805397552118165e-02 1.805140239539148e-02 1.804882663464111e-02 - 1.804624823872755e-02 1.804366719439020e-02 1.804108350087335e-02 1.803849716547347e-02 1.803590817366155e-02 - 1.803331652090480e-02 1.803072221546651e-02 1.802812524400898e-02 1.802552559998909e-02 1.802292329257977e-02 - 1.802031831251088e-02 1.801771065083283e-02 1.801510031065072e-02 1.801248728509480e-02 1.800987156794499e-02 - 1.800725316456288e-02 1.800463207196059e-02 1.800200828229563e-02 1.799938179038418e-02 1.799675259135415e-02 - 1.799412068157979e-02 1.799148606152016e-02 1.798884872978088e-02 1.798620868169797e-02 1.798356590941466e-02 - 1.798092041139825e-02 1.797827219073602e-02 1.797562123473000e-02 1.797296753674024e-02 1.797031110360818e-02 - 1.796765193280976e-02 1.796499001786419e-02 1.796232535287627e-02 1.795965793501132e-02 1.795698776183851e-02 - 1.795431482887613e-02 1.795163913285315e-02 1.794896067070983e-02 1.794627943785036e-02 1.794359543174794e-02 - 1.794090865000600e-02 1.793821908548673e-02 1.793552673496832e-02 1.793283159877326e-02 1.793013367385930e-02 - 1.792743295577707e-02 1.792472944026945e-02 1.792202312682011e-02 1.791931400976357e-02 1.791660207728341e-02 - 1.791388733234035e-02 1.791116977642004e-02 1.790844939977351e-02 1.790572620127331e-02 1.790300018053203e-02 - 1.790027132960331e-02 1.789753964610457e-02 1.789480512776976e-02 1.789206776371137e-02 1.788932755546883e-02 - 1.788658450796398e-02 1.788383860557862e-02 1.788108984645815e-02 1.787833823870088e-02 1.787558376650758e-02 - 1.787282642238153e-02 1.787006621288861e-02 1.786730313584615e-02 1.786453718506033e-02 1.786176835331611e-02 - 1.785899663566110e-02 1.785622203220682e-02 1.785344454733639e-02 1.785066416506327e-02 1.784788087479271e-02 - 1.784509469481547e-02 1.784230561688990e-02 1.783951362363962e-02 1.783671871969004e-02 1.783392090351773e-02 - 1.783112016693977e-02 1.782831650359620e-02 1.782550991644932e-02 1.782270041052123e-02 1.781988796773664e-02 - 1.781707258188517e-02 1.781425426228424e-02 1.781143299909701e-02 1.780860878344276e-02 1.780578161636334e-02 - 1.780295150019453e-02 1.780011843142990e-02 1.779728239750767e-02 1.779444339320670e-02 1.779160141853593e-02 - 1.778875647528820e-02 1.778590855799184e-02 1.778305765851556e-02 1.778020377358821e-02 1.777734690358035e-02 - 1.777448704738365e-02 1.777162419310320e-02 1.776875833746895e-02 1.776588948369731e-02 1.776301762263940e-02 - 1.776014274927566e-02 1.775726486578331e-02 1.775438397030816e-02 1.775150005486545e-02 1.774861310790110e-02 - 1.774572313526677e-02 1.774283013776283e-02 1.773993409898065e-02 1.773703502220879e-02 1.773413291089222e-02 - 1.773122774923129e-02 1.772831953604024e-02 1.772540827370780e-02 1.772249394894422e-02 1.771957656009896e-02 - 1.771665611194296e-02 1.771373259698992e-02 1.771080600888477e-02 1.770787634473108e-02 1.770494360249459e-02 - 1.770200777818149e-02 1.769906886558849e-02 1.769612685929023e-02 1.769318175770428e-02 1.769023356261796e-02 - 1.768728226707501e-02 1.768432786370409e-02 1.768137035050212e-02 1.767840972761326e-02 1.767544598996190e-02 - 1.767247912224100e-02 1.766950912887429e-02 1.766653601772543e-02 1.766355977437013e-02 1.766058039164660e-02 - 1.765759786981226e-02 1.765461220736955e-02 1.765162339764906e-02 1.764863143247870e-02 1.764563631444012e-02 - 1.764263804044564e-02 1.763963660052613e-02 1.763663199590508e-02 1.763362422648862e-02 1.763061328532627e-02 - 1.762759916389677e-02 1.762458185742205e-02 1.762156136756127e-02 1.761853769290762e-02 1.761551082691653e-02 - 1.761248075761478e-02 1.760944748669641e-02 1.760641101894919e-02 1.760337134551661e-02 1.760032845807722e-02 - 1.759728235211478e-02 1.759423302856655e-02 1.759118048266074e-02 1.758812470690578e-02 1.758506570645847e-02 - 1.758200347417691e-02 1.757893799151254e-02 1.757586926700291e-02 1.757279730534286e-02 1.756972209521438e-02 - 1.756664362962799e-02 1.756356190543487e-02 1.756047692143249e-02 1.755738866974527e-02 1.755429714394244e-02 - 1.755120234663686e-02 1.754810427470094e-02 1.754500292288027e-02 1.754189829041229e-02 1.753879037098419e-02 - 1.753567915477636e-02 1.753256463576890e-02 1.752944681640228e-02 1.752632570156945e-02 1.752320127895599e-02 - 1.752007354011609e-02 1.751694248500407e-02 1.751380811099548e-02 1.751067041466748e-02 1.750752939229762e-02 - 1.750438503712632e-02 1.750123734468025e-02 1.749808631552286e-02 1.749493194526630e-02 1.749177422703599e-02 - 1.748861315463852e-02 1.748544872591071e-02 1.748228094036503e-02 1.747910979560325e-02 1.747593528635296e-02 - 1.747275740493088e-02 1.746957614261004e-02 1.746639150171011e-02 1.746320348827029e-02 1.746001208402579e-02 - 1.745681728232032e-02 1.745361909228664e-02 1.745041750587895e-02 1.744721251527593e-02 1.744400411995098e-02 - 1.744079231626219e-02 1.743757709612158e-02 1.743435844889677e-02 1.743113638300998e-02 1.742791090294012e-02 - 1.742468198827393e-02 1.742144963687445e-02 1.741821385208018e-02 1.741497462017237e-02 1.741173194001650e-02 - 1.740848581625378e-02 1.740523623716524e-02 1.740198319673262e-02 1.739872669626729e-02 1.739546673433575e-02 - 1.739220330474240e-02 1.738893639777237e-02 1.738566600801745e-02 1.738239213410604e-02 1.737911477739739e-02 - 1.737583393441487e-02 1.737254959973500e-02 1.736926176792087e-02 1.736597043319887e-02 1.736267559029083e-02 - 1.735937723525189e-02 1.735607536431420e-02 1.735276997535949e-02 1.734946106967137e-02 1.734614863942214e-02 - 1.734283267462293e-02 1.733951317984790e-02 1.733619014933173e-02 1.733286356952035e-02 1.732953344236944e-02 - 1.732619976822115e-02 1.732286254123125e-02 1.731952175476255e-02 1.731617740506982e-02 1.731282949118149e-02 - 1.730947800429541e-02 1.730612293897103e-02 1.730276429900506e-02 1.729940207772190e-02 1.729603626710180e-02 - 1.729266686687025e-02 1.728929387127552e-02 1.728591727431661e-02 1.728253707811547e-02 1.727915327486350e-02 - 1.727576585445017e-02 1.727237482415143e-02 1.726898017713387e-02 1.726558189725253e-02 1.726217999255776e-02 - 1.725877446141184e-02 1.725536528836806e-02 1.725195247427305e-02 1.724853602088567e-02 1.724511592318061e-02 - 1.724169217016580e-02 1.723826475637563e-02 1.723483368674653e-02 1.723139894995541e-02 1.722796053633534e-02 - 1.722451845482723e-02 1.722107270070567e-02 1.721762326419149e-02 1.721417014587169e-02 1.721071333868621e-02 - 1.720725283251134e-02 1.720378862838028e-02 1.720032072298445e-02 1.719684910908383e-02 1.719337378669194e-02 - 1.718989475327181e-02 1.718641200187306e-02 1.718292552719872e-02 1.717943532374793e-02 1.717594138625576e-02 - 1.717244371734551e-02 1.716894231509765e-02 1.716543716617480e-02 1.716192826455456e-02 1.715841561099909e-02 - 1.715489920993168e-02 1.715137904713604e-02 1.714785510917266e-02 1.714432741097788e-02 1.714079594608009e-02 - 1.713726069602739e-02 1.713372166332687e-02 1.713017885016558e-02 1.712663225240283e-02 1.712308185705881e-02 - 1.711952765873538e-02 1.711596966109396e-02 1.711240786053498e-02 1.710884225051524e-02 1.710527282476134e-02 - 1.710169958307061e-02 1.709812252022495e-02 1.709454162136748e-02 1.709095688985418e-02 1.708736832996113e-02 - 1.708377593024533e-02 1.708017968752960e-02 1.707657960032946e-02 1.707297565703870e-02 1.706936785401023e-02 - 1.706575619189593e-02 1.706214066346443e-02 1.705852126552140e-02 1.705489799818787e-02 1.705127085519305e-02 - 1.704763983091843e-02 1.704400492089210e-02 1.704036611449886e-02 1.703672340943711e-02 1.703307681394708e-02 - 1.702942631772786e-02 1.702577190966809e-02 1.702211358937508e-02 1.701845135582294e-02 1.701478520463906e-02 - 1.701111512687454e-02 1.700744111902223e-02 1.700376317991698e-02 1.700008130526762e-02 1.699639548886451e-02 - 1.699270572517141e-02 1.698901201362202e-02 1.698531434790372e-02 1.698161271901581e-02 1.697790713038581e-02 - 1.697419757947398e-02 1.697048405591379e-02 1.696676655885514e-02 1.696304508413142e-02 1.695931962055792e-02 - 1.695559016575875e-02 1.695185672007940e-02 1.694811928170539e-02 1.694437784303563e-02 1.694063239701608e-02 - 1.693688294268234e-02 1.693312947555357e-02 1.692937198914621e-02 1.692561047849961e-02 1.692184494218333e-02 - 1.691807537819241e-02 1.691430177590003e-02 1.691052413380094e-02 1.690674245501956e-02 1.690295672392027e-02 - 1.689916693403359e-02 1.689537309141036e-02 1.689157519031890e-02 1.688777322481082e-02 1.688396719247375e-02 - 1.688015708323470e-02 1.687634289028026e-02 1.687252461641300e-02 1.686870225976892e-02 1.686487581335405e-02 - 1.686104526641643e-02 1.685721061978611e-02 1.685337187596560e-02 1.684952902423863e-02 1.684568205626177e-02 - 1.684183096806695e-02 1.683797575916921e-02 1.683411642637722e-02 1.683025296370582e-02 1.682638536598722e-02 - 1.682251363071521e-02 1.681863775630957e-02 1.681475773295268e-02 1.681087355358095e-02 1.680698521822956e-02 - 1.680309272743823e-02 1.679919607564722e-02 1.679529524908240e-02 1.679139024683375e-02 1.678748107079098e-02 - 1.678356771499038e-02 1.677965016895157e-02 1.677572842703558e-02 1.677180249929987e-02 1.676787237703614e-02 - 1.676393804299063e-02 1.675999950051788e-02 1.675605674951069e-02 1.675210978219402e-02 1.674815858725950e-02 - 1.674420316518524e-02 1.674024352454331e-02 1.673627964747038e-02 1.673231152527195e-02 1.672833916857912e-02 - 1.672436256552257e-02 1.672038170373856e-02 1.671639658470834e-02 1.671240720840105e-02 1.670841357063555e-02 - 1.670441566220705e-02 1.670041347959014e-02 1.669640702110204e-02 1.669239628051189e-02 1.668838125191250e-02 - 1.668436193143650e-02 1.668033831890629e-02 1.667631040878886e-02 1.667227819212758e-02 1.666824166734860e-02 - 1.666420083129591e-02 1.666015567735254e-02 1.665610620005455e-02 1.665205239678242e-02 1.664799426695549e-02 - 1.664393180284348e-02 1.663986499713315e-02 1.663579384792829e-02 1.663171835503466e-02 1.662763851356003e-02 - 1.662355430939835e-02 1.661946574092143e-02 1.661537281150426e-02 1.661127551677910e-02 1.660717384720702e-02 - 1.660306779425839e-02 1.659895736095696e-02 1.659484254425630e-02 1.659072333444665e-02 1.658659972465595e-02 - 1.658247171530552e-02 1.657833931027815e-02 1.657420249617699e-02 1.657006126301349e-02 1.656591561144095e-02 - 1.656176553662080e-02 1.655761103381663e-02 1.655345210211223e-02 1.654928873901935e-02 1.654512093811135e-02 - 1.654094868807454e-02 1.653677198858015e-02 1.653259084096055e-02 1.652840523447503e-02 1.652421516561530e-02 - 1.652002063436291e-02 1.651582163151349e-02 1.651161815099949e-02 1.650741019156900e-02 1.650319775344297e-02 - 1.649898082810461e-02 1.649475940168675e-02 1.649053348141889e-02 1.648630306850305e-02 1.648206814836095e-02 - 1.647782871114676e-02 1.647358475732917e-02 1.646933629656457e-02 1.646508330893651e-02 1.646082578033714e-02 - 1.645656373337251e-02 1.645229715576629e-02 1.644802602626009e-02 1.644375035674409e-02 1.643947014097659e-02 - 1.643518536281393e-02 1.643089602671802e-02 1.642660213310334e-02 1.642230367492405e-02 1.641800064388943e-02 - 1.641369303446324e-02 1.640938084474308e-02 1.640506407467653e-02 1.640074271742540e-02 1.639641675907646e-02 - 1.639208620097271e-02 1.638775104513307e-02 1.638341128505268e-02 1.637906691499287e-02 1.637471792980197e-02 - 1.637036432400064e-02 1.636600609175647e-02 1.636164322915392e-02 1.635727573684415e-02 1.635290360792794e-02 - 1.634852683359730e-02 1.634414541697593e-02 1.633975935494602e-02 1.633536863669590e-02 1.633097325119221e-02 - 1.632657319870386e-02 1.632216848742881e-02 1.631775910539292e-02 1.631334504210032e-02 1.630892629731235e-02 - 1.630450287107613e-02 1.630007475715268e-02 1.629564194133085e-02 1.629120442381021e-02 1.628676220752001e-02 - 1.628231528645751e-02 1.627786365361661e-02 1.627340730437480e-02 1.626894623909321e-02 1.626448044809207e-02 - 1.626000991935131e-02 1.625553465710418e-02 1.625105466086324e-02 1.624656992364918e-02 1.624208044008659e-02 - 1.623758620493278e-02 1.623308721259990e-02 1.622858345750622e-02 1.622407493651434e-02 1.621956164908100e-02 - 1.621504359102545e-02 1.621052075671857e-02 1.620599314061202e-02 1.620146073758967e-02 1.619692354185834e-02 - 1.619238154678624e-02 1.618783475477294e-02 1.618328316706134e-02 1.617872676957040e-02 1.617416555535298e-02 - 1.616959952441603e-02 1.616502867670949e-02 1.616045300241566e-02 1.615587248863419e-02 1.615128714307292e-02 - 1.614669696726644e-02 1.614210195036420e-02 1.613750207990814e-02 1.613289735436475e-02 1.612828778261194e-02 - 1.612367334765880e-02 1.611905403879705e-02 1.611442986870223e-02 1.610980082722066e-02 1.610516690212456e-02 - 1.610052809916244e-02 1.609588441136000e-02 1.609123582829610e-02 1.608658235171540e-02 1.608192397521171e-02 - 1.607726068992654e-02 1.607259250083978e-02 1.606791940362701e-02 1.606324138657220e-02 1.605855844962495e-02 - 1.605387058768025e-02 1.604917779011535e-02 1.604448006054786e-02 1.603977739874237e-02 1.603506979420087e-02 - 1.603035723984084e-02 1.602563973257448e-02 1.602091727188371e-02 1.601618984720332e-02 1.601145745295015e-02 - 1.600672010067149e-02 1.600197777942985e-02 1.599723047266619e-02 1.599247818462375e-02 1.598772091449355e-02 - 1.598295865408641e-02 1.597819139147786e-02 1.597341912912636e-02 1.596864187530068e-02 1.596385961058315e-02 - 1.595907232771693e-02 1.595428003613896e-02 1.594948272828454e-02 1.594468039178993e-02 1.593987301780130e-02 - 1.593506061365002e-02 1.593024318102167e-02 1.592542070422077e-02 1.592059317798925e-02 1.591576060279083e-02 - 1.591092297799217e-02 1.590608029141302e-02 1.590123253274349e-02 1.589637971157846e-02 1.589152182656434e-02 - 1.588665886609507e-02 1.588179081847464e-02 1.587691768450550e-02 1.587203947045915e-02 1.586715616213467e-02 - 1.586226775168990e-02 1.585737424168921e-02 1.585247562649581e-02 1.584757190117160e-02 1.584266306445842e-02 - 1.583774911091078e-02 1.583283003450806e-02 1.582790583090947e-02 1.582297649499978e-02 1.581804202355953e-02 - 1.581310241701619e-02 1.580815766650671e-02 1.580320776320766e-02 1.579825271139450e-02 1.579329250537274e-02 - 1.578832713506978e-02 1.578335660262603e-02 1.577838090296324e-02 1.577340002574811e-02 1.576841397243399e-02 - 1.576342274326813e-02 1.575842633194578e-02 1.575342472205075e-02 1.574841791148685e-02 1.574340591569888e-02 - 1.573838872006093e-02 1.573336631006632e-02 1.572833869008299e-02 1.572330586230670e-02 1.571826781924578e-02 - 1.571322454052314e-02 1.570817603062760e-02 1.570312230059812e-02 1.569806333998715e-02 1.569299913693516e-02 - 1.568792968457186e-02 1.568285498663007e-02 1.567777503779379e-02 1.567268982728102e-02 1.566759935997030e-02 - 1.566250363482262e-02 1.565740264102256e-02 1.565229637077196e-02 1.564718482295817e-02 1.564206800099241e-02 - 1.563694589151567e-02 1.563181848599405e-02 1.562668579194260e-02 1.562154780177149e-02 1.561640450642917e-02 - 1.561125590888111e-02 1.560610200797837e-02 1.560094279515962e-02 1.559577825343192e-02 1.559060838842812e-02 - 1.558543321151646e-02 1.558025270088283e-02 1.557506685188879e-02 1.556987567405825e-02 1.556467915294808e-02 - 1.555947727806998e-02 1.555427005014520e-02 1.554905747326830e-02 1.554383954557267e-02 1.553861625685508e-02 - 1.553338760005679e-02 1.552815357203842e-02 1.552291417232042e-02 1.551766939022104e-02 1.551241921985975e-02 - 1.550716367246923e-02 1.550190274051892e-02 1.549663640983429e-02 1.549136467943576e-02 1.548608754911306e-02 - 1.548080501516420e-02 1.547551706650131e-02 1.547022370107663e-02 1.546492492363977e-02 1.545962073006300e-02 - 1.545431111106912e-02 1.544899605692932e-02 1.544367557060635e-02 1.543834964941066e-02 1.543301828099291e-02 - 1.542768146907574e-02 1.542233921474585e-02 1.541699150599057e-02 1.541163833967913e-02 1.540627971422265e-02 - 1.540091562222576e-02 1.539554606062004e-02 1.539017102808156e-02 1.538479052048013e-02 1.537940453376258e-02 - 1.537401306270197e-02 1.536861609811398e-02 1.536321364249661e-02 1.535780570199338e-02 1.535239225620149e-02 - 1.534697329939463e-02 1.534154884369051e-02 1.533611887960563e-02 1.533068339829330e-02 1.532524239983298e-02 - 1.531979587995433e-02 1.531434383110085e-02 1.530888624554550e-02 1.530342313142362e-02 1.529795449144603e-02 - 1.529248030485156e-02 1.528700056732233e-02 1.528151528324413e-02 1.527602445059826e-02 1.527052806021316e-02 - 1.526502610370102e-02 1.525951858764995e-02 1.525400550804322e-02 1.524848685322667e-02 1.524296262660809e-02 - 1.523743282528689e-02 1.523189743753784e-02 1.522635646012132e-02 1.522080989370855e-02 1.521525773883866e-02 - 1.520969998584297e-02 1.520413662809972e-02 1.519856766896251e-02 1.519299310438481e-02 1.518741292689401e-02 - 1.518182713051541e-02 1.517623571498702e-02 1.517063867977171e-02 1.516503601659771e-02 1.515942772580205e-02 - 1.515381380882217e-02 1.514819425008754e-02 1.514256904339338e-02 1.513693819284546e-02 1.513130169987854e-02 - 1.512565955837021e-02 1.512001175774349e-02 1.511435830052952e-02 1.510869918485496e-02 1.510303439909880e-02 - 1.509736393861015e-02 1.509168780464220e-02 1.508600600178219e-02 1.508031852355242e-02 1.507462535986425e-02 - 1.506892650464710e-02 1.506322195838325e-02 1.505751172137055e-02 1.505179578553525e-02 1.504607414992266e-02 - 1.504034681527993e-02 1.503461377008154e-02 1.502887501067205e-02 1.502313053999477e-02 1.501738035243006e-02 - 1.501162444030474e-02 1.500586279803602e-02 1.500009542963074e-02 1.499432233574762e-02 1.498854350912934e-02 - 1.498275894315130e-02 1.497696863387312e-02 1.497117258012378e-02 1.496537077480856e-02 1.495956321394884e-02 - 1.495374990400090e-02 1.494793083920974e-02 1.494210600904758e-02 1.493627541059610e-02 1.493043904648383e-02 - 1.492459691659297e-02 1.491874900408085e-02 1.491289530722370e-02 1.490703583623931e-02 1.490117058646935e-02 - 1.489529954725381e-02 1.488942270892006e-02 1.488354007804980e-02 1.487765165385858e-02 1.487175742273507e-02 - 1.486585738883519e-02 1.485995155398175e-02 1.485403990610964e-02 1.484812243988829e-02 1.484219915557141e-02 - 1.483627005584607e-02 1.483033513203473e-02 1.482439437542072e-02 1.481844779264578e-02 1.481249538141862e-02 - 1.480653713381494e-02 1.480057304868135e-02 1.479460312202780e-02 1.478862734716873e-02 1.478264572087699e-02 - 1.477665824308106e-02 1.477066491441443e-02 1.476466572742758e-02 1.475866067903805e-02 1.475264977269339e-02 - 1.474663299844858e-02 1.474061034872640e-02 1.473458182710518e-02 1.472854743115566e-02 1.472250715651883e-02 - 1.471646100132783e-02 1.471040896256117e-02 1.470435103749897e-02 1.469828722554372e-02 1.469221751827344e-02 - 1.468614190646898e-02 1.468006039547928e-02 1.467397298615093e-02 1.466787967378610e-02 1.466178045636883e-02 - 1.465567533041493e-02 1.464956428982840e-02 1.464344732703370e-02 1.463732444018100e-02 1.463119563426315e-02 - 1.462506090797482e-02 1.461892025637629e-02 1.461277367320199e-02 1.460662115516677e-02 1.460046270026797e-02 - 1.459429830605704e-02 1.458812796887011e-02 1.458195168595082e-02 1.457576945823491e-02 1.456958128559711e-02 - 1.456338716422361e-02 1.455718708308891e-02 1.455098103823577e-02 1.454476903226018e-02 1.453855106504101e-02 - 1.453232713525658e-02 1.452609724028033e-02 1.451986137384772e-02 1.451361953112174e-02 1.450737171027855e-02 - 1.450111790831084e-02 1.449485812287890e-02 1.448859235383744e-02 1.448232060352556e-02 1.447604287018101e-02 - 1.446975914267516e-02 1.446346941597466e-02 1.445717368938523e-02 1.445087196279080e-02 1.444456423724572e-02 - 1.443825051237331e-02 1.443193078136921e-02 1.442560503975330e-02 1.441927328581930e-02 1.441293551683267e-02 - 1.440659172970616e-02 1.440024192165075e-02 1.439388609177658e-02 1.438752424156573e-02 1.438115637277796e-02 - 1.437478247503487e-02 1.436840254149195e-02 1.436201657648160e-02 1.435562457263202e-02 1.434922652522855e-02 - 1.434282244486077e-02 1.433641232984850e-02 1.432999617114929e-02 1.432357396196595e-02 1.431714570255755e-02 - 1.431071139387867e-02 1.430427102559402e-02 1.429782460021014e-02 1.429137212732056e-02 1.428491359501307e-02 - 1.427844899676062e-02 1.427197833606156e-02 1.426550161130239e-02 1.425901881685885e-02 1.425252994564961e-02 - 1.424603499980085e-02 1.423953398385027e-02 1.423302689906778e-02 1.422651373475527e-02 1.421999448399202e-02 - 1.421346915585374e-02 1.420693774198730e-02 1.420040023237321e-02 1.419385663850131e-02 1.418730696003290e-02 - 1.418075118751426e-02 1.417418931634679e-02 1.416762135086922e-02 1.416104729584521e-02 1.415446713263836e-02 - 1.414788085973522e-02 1.414128849363525e-02 1.413469002361970e-02 1.412808544052846e-02 1.412147474772301e-02 - 1.411485794712882e-02 1.410823503604182e-02 1.410160600672222e-02 1.409497085818714e-02 1.408832959214252e-02 - 1.408168220875668e-02 1.407502870564407e-02 1.406836907961611e-02 1.406170332864153e-02 1.405503144837146e-02 - 1.404835343608425e-02 1.404166929852345e-02 1.403497903248639e-02 1.402828262916828e-02 1.402158009603205e-02 - 1.401487143048169e-02 1.400815661918214e-02 1.400143566703935e-02 1.399470857625501e-02 1.398797534046779e-02 - 1.398123596549795e-02 1.397449045134991e-02 1.396773878380821e-02 1.396098096640959e-02 1.395421700271061e-02 - 1.394744688102961e-02 1.394067060648909e-02 1.393388818692338e-02 1.392709961198955e-02 1.392030488001634e-02 - 1.391350399327543e-02 1.390669694254475e-02 1.389988372719557e-02 1.389306435287330e-02 1.388623881438261e-02 - 1.387940711188756e-02 1.387256925103053e-02 1.386572522405790e-02 1.385887502683316e-02 1.385201866296698e-02 - 1.384515612379329e-02 1.383828740611332e-02 1.383141252098464e-02 1.382453146615934e-02 1.381764423695148e-02 - 1.381075083621117e-02 1.380385125926009e-02 1.379694549932224e-02 1.379003355634722e-02 1.378311543405784e-02 - 1.377619113577579e-02 1.376926065784134e-02 1.376232399626086e-02 1.375538114862362e-02 1.374843211529037e-02 - 1.374147689626999e-02 1.373451549097131e-02 1.372754790081035e-02 1.372057412482435e-02 1.371359415880417e-02 - 1.370660800191563e-02 1.369961565562416e-02 1.369261712158748e-02 1.368561239160383e-02 1.367860146147292e-02 - 1.367158434223160e-02 1.366456103295884e-02 1.365753152816715e-02 1.365049582984413e-02 1.364345393626983e-02 - 1.363640584363454e-02 1.362935155197557e-02 1.362229106201978e-02 1.361522437421294e-02 1.360815148809621e-02 - 1.360107240365773e-02 1.359398712117658e-02 1.358689563898480e-02 1.357979795217255e-02 1.357269405533802e-02 - 1.356558396017600e-02 1.355846767355538e-02 1.355134518540141e-02 1.354421648973967e-02 1.353708158728038e-02 - 1.352994048497773e-02 1.352279317412557e-02 1.351563964921714e-02 1.350847993234027e-02 1.350131401794928e-02 - 1.349414188812881e-02 1.348696355361660e-02 1.347977901858603e-02 1.347258827670450e-02 1.346539132112732e-02 - 1.345818815687027e-02 1.345097879723517e-02 1.344376323611521e-02 1.343654146470481e-02 1.342931348024562e-02 - 1.342207929164266e-02 1.341483890125029e-02 1.340759229714105e-02 1.340033948592649e-02 1.339308047488992e-02 - 1.338581525615185e-02 1.337854383232506e-02 1.337126620737807e-02 1.336398237245951e-02 1.335669232490426e-02 - 1.334939606999042e-02 1.334209361886319e-02 1.333478496691931e-02 1.332747010093965e-02 1.332014902896288e-02 - 1.331282175723704e-02 1.330548828381385e-02 1.329814860211957e-02 1.329080271412866e-02 1.328345063097246e-02 - 1.327609234424045e-02 1.326872784914616e-02 1.326135715657202e-02 1.325398026514318e-02 1.324659716972378e-02 - 1.323920787031880e-02 1.323181236976987e-02 1.322441067219326e-02 1.321700278123619e-02 1.320958869473772e-02 - 1.320216840889533e-02 1.319474192647233e-02 1.318730924299288e-02 1.317987035320805e-02 1.317242527523754e-02 - 1.316497401404441e-02 1.315751655750498e-02 1.315005290457417e-02 1.314258305915991e-02 1.313510702533477e-02 - 1.312762479749873e-02 1.312013637454663e-02 1.311264176674524e-02 1.310514097528989e-02 1.309763399743803e-02 - 1.309012083240218e-02 1.308260148524151e-02 1.307507595779872e-02 1.306754423810231e-02 1.306000633130083e-02 - 1.305246225068735e-02 1.304491199415833e-02 1.303735555888092e-02 1.302979294561730e-02 1.302222416114251e-02 - 1.301464920127586e-02 1.300706805512286e-02 1.299948074007148e-02 1.299188726392925e-02 1.298428761376350e-02 - 1.297668178953030e-02 1.296906979917289e-02 1.296145165196894e-02 1.295382733572278e-02 1.294619684321666e-02 - 1.293856019418804e-02 1.293091739361701e-02 1.292326843600229e-02 1.291561331594024e-02 1.290795203962965e-02 - 1.290028461406370e-02 1.289261102589192e-02 1.288493127982097e-02 1.287724539399148e-02 1.286955336728896e-02 - 1.286185519483855e-02 1.285415087393522e-02 1.284644040779901e-02 1.283872379943217e-02 1.283100105007112e-02 - 1.282327216499671e-02 1.281553714651719e-02 1.280779599126801e-02 1.280004870582322e-02 1.279229529551004e-02 - 1.278453575462785e-02 1.277677008230648e-02 1.276899828322272e-02 1.276122036637128e-02 1.275343633303281e-02 - 1.274564618082443e-02 1.273784991358546e-02 1.273004753391990e-02 1.272223904101719e-02 1.271442442957637e-02 - 1.270660370794978e-02 1.269877689384363e-02 1.269094397773904e-02 1.268310495443295e-02 1.267525983383190e-02 - 1.266740862159357e-02 1.265955131610305e-02 1.265168790986125e-02 1.264381841321034e-02 1.263594283614933e-02 - 1.262806117310012e-02 1.262017342951705e-02 1.261227961209872e-02 1.260437971406514e-02 1.259647373729069e-02 - 1.258856168925583e-02 1.258064357239260e-02 1.257271939240096e-02 1.256478915520078e-02 1.255685285459754e-02 - 1.254891049173029e-02 1.254096207570647e-02 1.253300760376554e-02 1.252504707668881e-02 1.251708050378790e-02 - 1.250910789128773e-02 1.250112924190730e-02 1.249314455497329e-02 1.248515382942968e-02 1.247715706626537e-02 - 1.246915427066142e-02 1.246114545004359e-02 1.245313061093009e-02 1.244510975519442e-02 1.243708288271855e-02 - 1.242904999334644e-02 1.242101108960597e-02 1.241296617602342e-02 1.240491525784085e-02 1.239685833832253e-02 - 1.238879542265411e-02 1.238072651672425e-02 1.237265161832934e-02 1.236457072972670e-02 1.235648385971585e-02 - 1.234839100475330e-02 1.234029216644840e-02 1.233218735967670e-02 1.232407658450629e-02 1.231595983825897e-02 - 1.230783712734204e-02 1.229970846199802e-02 1.229157384500942e-02 1.228343326032102e-02 1.227528672233900e-02 - 1.226713425500730e-02 1.225897584359588e-02 1.225081148758153e-02 1.224264120133804e-02 1.223446498720786e-02 - 1.222628284514866e-02 1.221809477711035e-02 1.220990079161559e-02 1.220170089405064e-02 1.219349508434973e-02 - 1.218528336781141e-02 1.217706575082829e-02 1.216884223701085e-02 1.216061282093886e-02 1.215237750559525e-02 - 1.214413631491834e-02 1.213588924765066e-02 1.212763629639266e-02 1.211937747504947e-02 1.211111278696468e-02 - 1.210284222899338e-02 1.209456580676226e-02 1.208628352659129e-02 1.207799539529086e-02 1.206970142400196e-02 - 1.206140161359375e-02 1.205309595715539e-02 1.204478446558403e-02 1.203646714593309e-02 1.202814399601385e-02 - 1.201981502726849e-02 1.201148024892713e-02 1.200313965960066e-02 1.199479326438714e-02 1.198644106975963e-02 - 1.197808307814890e-02 1.196971928979660e-02 1.196134970757412e-02 1.195297434273665e-02 1.194459320579336e-02 - 1.193620630286995e-02 1.192781363156250e-02 1.191941519457288e-02 1.191101099930699e-02 1.190260104978759e-02 - 1.189418535108248e-02 1.188576391078268e-02 1.187733673904143e-02 1.186890383909906e-02 1.186046520717658e-02 - 1.185202085452967e-02 1.184357078721630e-02 1.183511499765447e-02 1.182665350164435e-02 1.181818631619212e-02 - 1.180971343948878e-02 1.180123487113532e-02 1.179275061618258e-02 1.178426068678883e-02 1.177576508273127e-02 - 1.176726380098327e-02 1.175875685721244e-02 1.175024426443667e-02 1.174172602804813e-02 1.173320214474543e-02 - 1.172467261918110e-02 1.171613746318596e-02 1.170759667473828e-02 1.169905025976067e-02 1.169049823639713e-02 - 1.168194060529573e-02 1.167337736787376e-02 1.166480853596695e-02 1.165623411322526e-02 1.164765410079015e-02 - 1.163906850325271e-02 1.163047732858534e-02 1.162188058835008e-02 1.161327829716097e-02 1.160467045202270e-02 - 1.159605704763531e-02 1.158743810702480e-02 1.157881363156412e-02 1.157018361041755e-02 1.156154807040710e-02 - 1.155290702254676e-02 1.154426045745637e-02 1.153560838867705e-02 1.152695082724772e-02 1.151828777265603e-02 - 1.150961922666123e-02 1.150094519786783e-02 1.149226570234640e-02 1.148358074611148e-02 1.147489033148848e-02 - 1.146619446355201e-02 1.145749315215113e-02 1.144878640491215e-02 1.144007421936342e-02 1.143135660500108e-02 - 1.142263357779597e-02 1.141390514531738e-02 1.140517131031360e-02 1.139643207471360e-02 1.138768744746770e-02 - 1.137893743736065e-02 1.137018205114591e-02 1.136142129485616e-02 1.135265517811921e-02 1.134388371322748e-02 - 1.133510690045416e-02 1.132632474439678e-02 1.131753726104511e-02 1.130874445081251e-02 1.129994631541456e-02 - 1.129114287234474e-02 1.128233413053084e-02 1.127352009524980e-02 1.126470077646612e-02 1.125587617975814e-02 - 1.124704630615814e-02 1.123821115477194e-02 1.122937074388692e-02 1.122052509984340e-02 1.121167421843202e-02 - 1.120281809651728e-02 1.119395674175946e-02 1.118509017235879e-02 1.117621839625571e-02 1.116734140890626e-02 - 1.115845922925729e-02 1.114957187162777e-02 1.114067933143962e-02 1.113178161769016e-02 1.112287874451852e-02 - 1.111397072153178e-02 1.110505754694771e-02 1.109613922373310e-02 1.108721577854856e-02 1.107828721826434e-02 - 1.106935353946150e-02 1.106041475521090e-02 1.105147087839408e-02 1.104252191603393e-02 1.103356786436798e-02 - 1.102460873384026e-02 1.101564454870664e-02 1.100667531791245e-02 1.099770104268406e-02 1.098872172333136e-02 - 1.097973737703280e-02 1.097074801492989e-02 1.096175363206450e-02 1.095275424291130e-02 1.094374986633713e-02 - 1.093474051123777e-02 1.092572618232803e-02 1.091670688531980e-02 1.090768263148204e-02 1.089865342255811e-02 - 1.088961926240844e-02 1.088058018050034e-02 1.087153618780464e-02 1.086248727940419e-02 1.085343346361914e-02 - 1.084437475261139e-02 1.083531115780061e-02 1.082624268419920e-02 1.081716934144050e-02 1.080809114559821e-02 - 1.079900810312026e-02 1.078992022093278e-02 1.078082751184906e-02 1.077172998533364e-02 1.076262764813011e-02 - 1.075352050586474e-02 1.074440857092024e-02 1.073529185762834e-02 1.072617037570664e-02 1.071704413251609e-02 - 1.070791313635956e-02 1.069877740113652e-02 1.068963693244828e-02 1.068049173224424e-02 1.067134181766250e-02 - 1.066218720670161e-02 1.065302791162099e-02 1.064386393117340e-02 1.063469527249458e-02 1.062552195483164e-02 - 1.061634397913101e-02 1.060716135205155e-02 1.059797409807024e-02 1.058878223029125e-02 1.057958575437316e-02 - 1.057038467384018e-02 1.056117900039964e-02 1.055196874533382e-02 1.054275390960051e-02 1.053353451406393e-02 - 1.052431058354873e-02 1.051508211263400e-02 1.050584910821505e-02 1.049661158906674e-02 1.048736956269110e-02 - 1.047812303544552e-02 1.046887201730896e-02 1.045961652742825e-02 1.045035657823219e-02 1.044109217270465e-02 - 1.043182332652317e-02 1.042255005238709e-02 1.041327235213399e-02 1.040399023555266e-02 1.039470371859749e-02 - 1.038541282005145e-02 1.037611754740451e-02 1.036681790639924e-02 1.035751391340543e-02 1.034820558036888e-02 - 1.033889291336949e-02 1.032957591435120e-02 1.032025460242317e-02 1.031092900384275e-02 1.030159911688449e-02 - 1.029226495054825e-02 1.028292652729243e-02 1.027358385071069e-02 1.026423692589549e-02 1.025488576741323e-02 - 1.024553039300053e-02 1.023617081698821e-02 1.022680704740226e-02 1.021743909457171e-02 1.020806697035185e-02 - 1.019869068658227e-02 1.018931025066223e-02 1.017992567348438e-02 1.017053697875713e-02 1.016114417776936e-02 - 1.015174727399650e-02 1.014234627700861e-02 1.013294120450803e-02 1.012353207457940e-02 1.011411888599992e-02 - 1.010470164920459e-02 1.009528038851809e-02 1.008585511657422e-02 1.007642584330934e-02 1.006699257991301e-02 - 1.005755533847607e-02 1.004811412861271e-02 1.003866895746225e-02 1.002921984502842e-02 1.001976681035788e-02 - 1.001030986009602e-02 1.000084900502786e-02 9.991384259025663e-03 9.981915635495017e-03 9.972443141719819e-03 - 9.962966786689603e-03 9.953486595586885e-03 9.944002583039199e-03 9.934514754395770e-03 9.925023122335749e-03 - 9.915527701693664e-03 9.906028505794947e-03 9.896525539473492e-03 9.887018817044350e-03 9.877508364713565e-03 - 9.867994191756903e-03 9.858476305769829e-03 9.848954721540815e-03 9.839429453723526e-03 9.829900512927632e-03 - 9.820367904529967e-03 9.810831649938153e-03 9.801291772225836e-03 9.791748277276684e-03 9.782201174956444e-03 - 9.772650480173910e-03 9.763096209214261e-03 9.753538370443265e-03 9.743976971083063e-03 9.734412038356991e-03 - 9.724843589152831e-03 9.715271627378256e-03 9.705696167153652e-03 9.696117225097080e-03 9.686534815487291e-03 - 9.676948943754414e-03 9.667359623576509e-03 9.657766883492007e-03 9.648170733986708e-03 9.638571181819185e-03 - 9.628968243024477e-03 9.619361933494769e-03 9.609752265452595e-03 9.600139245296816e-03 9.590522893495216e-03 - 9.580903234511828e-03 9.571280275331249e-03 9.561654026946651e-03 9.552024506017841e-03 9.542391727779683e-03 - 9.532755702177183e-03 9.523116437885958e-03 9.513473960404769e-03 9.503828289303256e-03 9.494179431678001e-03 - 9.484527400058637e-03 9.474872210511853e-03 9.465213879778082e-03 9.455552415295903e-03 9.445887829718797e-03 - 9.436220151655284e-03 9.426549394486200e-03 9.416875565725477e-03 9.407198681221749e-03 9.397518758018270e-03 - 9.387835810148322e-03 9.378149843813783e-03 9.368460878589471e-03 9.358768941430739e-03 9.349074041571485e-03 - 9.339376189353358e-03 9.329675400879622e-03 9.319971694171958e-03 9.310265081086165e-03 9.300555568605354e-03 - 9.290843182951191e-03 9.281127946492163e-03 9.271409865969660e-03 9.261688954922952e-03 9.251965230660204e-03 - 9.242238709904914e-03 9.232509401801155e-03 9.222777318787652e-03 9.213042489474691e-03 9.203304930168641e-03 - 9.193564649383718e-03 9.183821661973759e-03 9.174075985705271e-03 9.164327637046287e-03 9.154576623077591e-03 - 9.144822962285418e-03 9.135066683045857e-03 9.125307796249328e-03 9.115546312613307e-03 9.105782249286811e-03 - 9.096015624756502e-03 9.086246452281876e-03 9.076474739187750e-03 9.066700510968253e-03 9.056923792083085e-03 - 9.047144590189744e-03 9.037362919662660e-03 9.027578799121916e-03 9.017792245480461e-03 9.008003268928564e-03 - 8.998211881680073e-03 8.988418113610518e-03 8.978621982540696e-03 8.968823496265647e-03 8.959022672124209e-03 - 8.949219528590024e-03 8.939414081469170e-03 8.929606339864140e-03 8.919796321979990e-03 8.909984056877767e-03 - 8.900169557867096e-03 8.890352835957138e-03 8.880533907981049e-03 8.870712793191068e-03 8.860889506593549e-03 - 8.851064055633283e-03 8.841236465905915e-03 8.831406764712287e-03 8.821574959648875e-03 8.811741064546590e-03 - 8.801905099237244e-03 8.792067082696866e-03 8.782227026145442e-03 8.772384940188230e-03 8.762540855386065e-03 - 8.752694792574688e-03 8.742846759945761e-03 8.732996774006149e-03 8.723144854408183e-03 8.713291019755398e-03 - 8.703435278608567e-03 8.693577647775636e-03 8.683718159456632e-03 8.673856827661263e-03 8.663993662505663e-03 - 8.654128683145933e-03 8.644261909320558e-03 8.634393356690426e-03 8.624523033451901e-03 8.614650964506795e-03 - 8.604777179373340e-03 8.594901686657006e-03 8.585024500118565e-03 8.575145640490715e-03 8.565265126670765e-03 - 8.555382971806235e-03 8.545499187654319e-03 8.535613803632294e-03 8.525726842250045e-03 8.515838312646278e-03 - 8.505948232174527e-03 8.496056621077198e-03 8.486163497882877e-03 8.476268872748003e-03 8.466372762116349e-03 - 8.456475199094931e-03 8.446576199856061e-03 8.436675774300739e-03 8.426773941795081e-03 8.416870722731803e-03 - 8.406966134358667e-03 8.397060186389057e-03 8.387152901959176e-03 8.377244311160385e-03 8.367334425300299e-03 - 8.357423258296441e-03 8.347510830980188e-03 8.337597163605794e-03 8.327682270401855e-03 8.317766161869340e-03 - 8.307848867754637e-03 8.297930413816063e-03 8.288010810083676e-03 8.278090072673102e-03 8.268168221765407e-03 - 8.258245278027963e-03 8.248321253600945e-03 8.238396163758082e-03 8.228470040664376e-03 8.218542903042886e-03 - 8.208614761992156e-03 8.198685637447353e-03 8.188755549837494e-03 8.178824516773604e-03 8.168892549578916e-03 - 8.158959670459199e-03 8.149025910256038e-03 8.139091282816925e-03 8.129155801857130e-03 8.119219487437710e-03 - 8.109282361690508e-03 8.099344440765549e-03 8.089405733754036e-03 8.079466270417937e-03 8.069526079135253e-03 - 8.059585169010465e-03 8.049643556954327e-03 8.039701265060109e-03 8.029758314127560e-03 8.019814717074126e-03 - 8.009870488264625e-03 7.999925660293698e-03 7.989980254561855e-03 7.980034282561204e-03 7.970087763203990e-03 - 7.960140717914167e-03 7.950193166721423e-03 7.940245120231920e-03 7.930296599391260e-03 7.920347637831796e-03 - 7.910398250263278e-03 7.900448449763646e-03 7.890498257622273e-03 7.880547695356892e-03 7.870596780430528e-03 - 7.860645524802819e-03 7.850693955430419e-03 7.840742100859013e-03 7.830789973961963e-03 7.820837591210042e-03 - 7.810884973654219e-03 7.800932143705464e-03 7.790979115476222e-03 7.781025902060369e-03 7.771072537550891e-03 - 7.761119045304192e-03 7.751165435253132e-03 7.741211727248220e-03 7.731257943744334e-03 7.721304105116559e-03 - 7.711350222852130e-03 7.701396316987202e-03 7.691442422531397e-03 7.681488555826352e-03 7.671534729460651e-03 - 7.661580965493510e-03 7.651627286213397e-03 7.641673709645761e-03 7.631720246474624e-03 7.621766924002147e-03 - 7.611813774300424e-03 7.601860809420407e-03 7.591908045212342e-03 7.581955503946372e-03 7.572003208680656e-03 - 7.562051174726026e-03 7.552099414296815e-03 7.542147961065804e-03 7.532196840825635e-03 7.522246063843738e-03 - 7.512295650102864e-03 7.502345622322073e-03 7.492396000716249e-03 7.482446799189802e-03 7.472498037196947e-03 - 7.462549747897286e-03 7.452601950331629e-03 7.442654658211039e-03 7.432707892744488e-03 7.422761676416634e-03 - 7.412816028768508e-03 7.402870961455420e-03 7.392926500328647e-03 7.382982678429822e-03 7.373039508794957e-03 - 7.363097007225734e-03 7.353155196864952e-03 7.343214100532815e-03 7.333273734782904e-03 7.323334112197604e-03 - 7.313395265021593e-03 7.303457220900774e-03 7.293519991033275e-03 7.283583594600794e-03 7.273648054943689e-03 - 7.263713394446934e-03 7.253779626580373e-03 7.243846768480717e-03 7.233914855435080e-03 7.223983908518886e-03 - 7.214053940460562e-03 7.204124972417771e-03 7.194197027491048e-03 7.184270126394881e-03 7.174344280726286e-03 - 7.164419514784642e-03 7.154495863236941e-03 7.144573340914020e-03 7.134651962993328e-03 7.124731752265264e-03 - 7.114812732100897e-03 7.104894920638768e-03 7.094978330575343e-03 7.085062992246606e-03 7.075148934793896e-03 - 7.065236171017366e-03 7.055324719420953e-03 7.045414603125002e-03 7.035505845669364e-03 7.025598461448587e-03 - 7.015692466009597e-03 7.005787894887785e-03 6.995884771371198e-03 6.985983107977662e-03 6.976082925249031e-03 - 6.966184246523457e-03 6.956287093797063e-03 6.946391479271966e-03 6.936497425652844e-03 6.926604968509339e-03 - 6.916714124366364e-03 6.906824907731460e-03 6.896937340931554e-03 6.887051448149962e-03 6.877167248699087e-03 - 6.867284753979424e-03 6.857403994050719e-03 6.847525000658012e-03 6.837647785670592e-03 6.827772367409923e-03 - 6.817898770109592e-03 6.808027016717447e-03 6.798157122708669e-03 6.788289103240300e-03 6.778422992931511e-03 - 6.768558816798320e-03 6.758696587557012e-03 6.748836325648165e-03 6.738978054348659e-03 6.729121795949092e-03 - 6.719267563927435e-03 6.709415379633438e-03 6.699565278400954e-03 6.689717278120727e-03 6.679871393303892e-03 - 6.670027647355804e-03 6.660186063525513e-03 6.650346660981845e-03 6.640509452367944e-03 6.630674466396449e-03 - 6.620841735868644e-03 6.611011273308148e-03 6.601183096392477e-03 6.591357229649247e-03 6.581533696087914e-03 - 6.571712512145987e-03 6.561893692372858e-03 6.552077270290561e-03 6.542263272668194e-03 6.532451712617284e-03 - 6.522642609933696e-03 6.512835987879551e-03 6.503031869590782e-03 6.493230268870023e-03 6.483431205156500e-03 - 6.473634714105858e-03 6.463840816056773e-03 6.454049525191551e-03 6.444260863046832e-03 6.434474853362258e-03 - 6.424691517208967e-03 6.414910866799055e-03 6.405132928351729e-03 6.395357735592168e-03 6.385585303753894e-03 - 6.375815649717760e-03 6.366048796411005e-03 6.356284767471845e-03 6.346523580477974e-03 6.336765248927921e-03 - 6.327009805730009e-03 6.317257279178600e-03 6.307507681412946e-03 6.297761032647583e-03 6.288017356862164e-03 - 6.278276676438099e-03 6.268539005625230e-03 6.258804362658888e-03 6.249072783406197e-03 6.239344289504087e-03 - 6.229618894349891e-03 6.219896619699197e-03 6.210177489065160e-03 6.200461523673893e-03 6.190748736475173e-03 - 6.181039151999554e-03 6.171332804226705e-03 6.161629709556120e-03 6.151929884103313e-03 6.142233350147177e-03 - 6.132540131644584e-03 6.122850247356021e-03 6.113163710170625e-03 6.103480551213418e-03 6.093800800141988e-03 - 6.084124469547710e-03 6.074451578566364e-03 6.064782150905211e-03 6.055116209626953e-03 6.045453769994722e-03 - 6.035794848740185e-03 6.026139480474754e-03 6.016487688229946e-03 6.006839485237500e-03 5.997194892776407e-03 - 5.987553934341584e-03 5.977916631713333e-03 5.968282997802390e-03 5.958653055343909e-03 5.949026838944569e-03 - 5.939404365780911e-03 5.929785651209331e-03 5.920170717549854e-03 5.910559587858684e-03 5.900952281370824e-03 - 5.891348811852907e-03 5.881749208142844e-03 5.872153500225121e-03 5.862561701850070e-03 5.852973831530551e-03 - 5.843389912374926e-03 5.833809966833203e-03 5.824234011006907e-03 5.814662060999971e-03 5.805094150375409e-03 - 5.795530303292347e-03 5.785970532524381e-03 5.776414859211175e-03 5.766863306294991e-03 5.757315894674337e-03 - 5.747772638659374e-03 5.738233559732430e-03 5.728698691311226e-03 5.719168051719483e-03 5.709641656042984e-03 - 5.700119526414031e-03 5.690601685377130e-03 5.681088152168133e-03 5.671578940158426e-03 5.662074076665564e-03 - 5.652573592801510e-03 5.643077502877857e-03 5.633585823810169e-03 5.624098577633230e-03 5.614615788052954e-03 - 5.605137471831965e-03 5.595663642810052e-03 5.586194333773162e-03 5.576729570469775e-03 5.567269364923084e-03 - 5.557813736696195e-03 5.548362708847973e-03 5.538916303890826e-03 5.529474534822445e-03 5.520037420561356e-03 - 5.510604996543656e-03 5.501177281279281e-03 5.491754287530179e-03 5.482336037985177e-03 5.472922555453679e-03 - 5.463513859119052e-03 5.454109961206277e-03 5.444710887376439e-03 5.435316669896643e-03 5.425927322428118e-03 - 5.416542861379438e-03 5.407163309793553e-03 5.397788689388935e-03 5.388419016905312e-03 5.379054306533677e-03 - 5.369694588817857e-03 5.360339890208465e-03 5.350990223294556e-03 5.341645606645782e-03 5.332306062415535e-03 - 5.322971612709802e-03 5.313642271564683e-03 5.304318056285795e-03 5.294999000250198e-03 5.285685123732157e-03 - 5.276376439554206e-03 5.267072968338082e-03 5.257774732353860e-03 5.248481751732874e-03 5.239194038865901e-03 - 5.229911616755654e-03 5.220634516968343e-03 5.211362754853240e-03 5.202096346092698e-03 5.192835312362628e-03 - 5.183579674966123e-03 5.174329450821569e-03 5.165084652994387e-03 5.155845310548846e-03 5.146611450951191e-03 - 5.137383086378589e-03 5.128160234647254e-03 5.118942917508807e-03 5.109731156137037e-03 5.100524965000140e-03 - 5.091324360054826e-03 5.082129373049942e-03 5.072940025255639e-03 5.063756329149303e-03 5.054578304260502e-03 - 5.045405972366202e-03 5.036239353680495e-03 5.027078459118392e-03 5.017923310123222e-03 5.008773940483098e-03 - 4.999630364315774e-03 4.990492594829337e-03 4.981360654331298e-03 4.972234563790402e-03 4.963114339923834e-03 - 4.953999995020500e-03 4.944891556281875e-03 4.935789051765770e-03 4.926692493194353e-03 4.917601897109304e-03 - 4.908517284729773e-03 4.899438676825864e-03 4.890366088012707e-03 4.881299532722441e-03 4.872239041569468e-03 - 4.863184636415129e-03 4.854136328649667e-03 4.845094137498133e-03 4.836058083872883e-03 4.827028186746977e-03 - 4.818004458681770e-03 4.808986918914880e-03 4.799975597861264e-03 4.790970512088721e-03 4.781971675128856e-03 - 4.772979106768043e-03 4.763992827229902e-03 4.755012853632298e-03 4.746039197549013e-03 4.737071883993436e-03 - 4.728110941197518e-03 4.719156380399636e-03 4.710208217424537e-03 4.701266473663848e-03 4.692331168251817e-03 - 4.683402315353613e-03 4.674479928383867e-03 4.665564036556664e-03 4.656654662394768e-03 4.647751816371710e-03 - 4.638855516650367e-03 4.629965783672686e-03 4.621082635909843e-03 4.612206084994354e-03 4.603336148102954e-03 - 4.594472856159325e-03 4.585616225744373e-03 4.576766268345947e-03 4.567923003199363e-03 4.559086450091263e-03 - 4.550256626033265e-03 4.541433541986122e-03 4.532617220194613e-03 4.523807688535670e-03 4.515004959722835e-03 - 4.506209047920159e-03 4.497419972185719e-03 4.488637751873642e-03 4.479862401381760e-03 4.471093932025212e-03 - 4.462332371280023e-03 4.453577742726973e-03 4.444830056583276e-03 4.436089328917552e-03 4.427355578888171e-03 - 4.418628824988929e-03 4.409909078668640e-03 4.401196354933857e-03 4.392490684030716e-03 4.383792083151365e-03 - 4.375100562120779e-03 4.366416138313078e-03 4.357738831525952e-03 4.349068659591380e-03 4.340405630957790e-03 - 4.331749765364269e-03 4.323101091949651e-03 4.314459623208851e-03 4.305825371349630e-03 4.297198354190413e-03 - 4.288578590720092e-03 4.279966095343473e-03 4.271360877578565e-03 4.262762963097229e-03 4.254172376200769e-03 - 4.245589126222103e-03 4.237013227440267e-03 4.228444697962537e-03 4.219883556022182e-03 4.211329813254019e-03 - 4.202783482548908e-03 4.194244591796649e-03 4.185713159116739e-03 4.177189194188086e-03 4.168672712320958e-03 - 4.160163731860882e-03 4.151662270610665e-03 4.143168336754119e-03 4.134681947397693e-03 4.126203130809124e-03 - 4.117731899759874e-03 4.109268265260960e-03 4.100812244167818e-03 4.092363854125291e-03 4.083923109325604e-03 - 4.075490018959178e-03 4.067064605609816e-03 4.058646892914489e-03 4.050236890474988e-03 4.041834611549669e-03 - 4.033440073099425e-03 4.025053291802670e-03 4.016674279190388e-03 4.008303046950822e-03 3.999939621219669e-03 - 3.991584019864232e-03 3.983236251035503e-03 3.974896329846703e-03 3.966564273682151e-03 3.958240098637734e-03 - 3.949923812376889e-03 3.941615430268695e-03 3.933314980874398e-03 3.925022475755094e-03 3.916737923312982e-03 - 3.908461340476090e-03 3.900192744628528e-03 3.891932149238224e-03 3.883679560814138e-03 3.875435000263637e-03 - 3.867198492508630e-03 3.858970045729460e-03 3.850749670926077e-03 3.842537384120139e-03 3.834333202377867e-03 - 3.826137136626801e-03 3.817949195349815e-03 3.809769403427763e-03 3.801597779587331e-03 3.793434330750140e-03 - 3.785279069923421e-03 3.777132013373491e-03 3.768993177352847e-03 3.760862568898475e-03 3.752740200334732e-03 - 3.744626099044159e-03 3.736520277340854e-03 3.728422742215669e-03 3.720333508785603e-03 3.712252593018920e-03 - 3.704180008090329e-03 3.696115760631814e-03 3.688059868276574e-03 3.680012354362612e-03 3.671973228138760e-03 - 3.663942499526064e-03 3.655920182566113e-03 3.647906292785413e-03 3.639900840938008e-03 3.631903834337251e-03 - 3.623915295229000e-03 3.615935242250758e-03 3.607963681828620e-03 3.600000626081414e-03 3.592046089865790e-03 - 3.584100087061132e-03 3.576162625323692e-03 3.568233715505030e-03 3.560313381862740e-03 3.552401637255495e-03 - 3.544498488187401e-03 3.536603947761108e-03 3.528718030587010e-03 3.520840749407267e-03 3.512972109975055e-03 - 3.505112127471606e-03 3.497260824593953e-03 3.489418209893856e-03 3.481584291815555e-03 3.473759083632174e-03 - 3.465942599385497e-03 3.458134849136788e-03 3.450335838875430e-03 3.442545588595099e-03 3.434764116831954e-03 - 3.426991428902786e-03 3.419227535146918e-03 3.411472449427477e-03 3.403726185233638e-03 3.395988749408295e-03 - 3.388260149964055e-03 3.380540409506120e-03 3.372829541439428e-03 3.365127551327278e-03 3.357434450344299e-03 - 3.349750251864305e-03 3.342074968176267e-03 3.334408603200120e-03 3.326751169911567e-03 3.319102691777129e-03 - 3.311463175183513e-03 3.303832626198486e-03 3.296211059114474e-03 3.288598486024217e-03 3.280994915398627e-03 - 3.273400352769854e-03 3.265814815709593e-03 3.258238322074859e-03 3.250670876135365e-03 3.243112486983179e-03 - 3.235563167624456e-03 3.228022929479646e-03 3.220491779361285e-03 3.212969724272006e-03 3.205456783570964e-03 - 3.197952970426890e-03 3.190458290104943e-03 3.182972751519780e-03 3.175496366385864e-03 3.168029146873250e-03 - 3.160571096621216e-03 3.153122225636278e-03 3.145682555500280e-03 3.138252093348739e-03 3.130830843615626e-03 - 3.123418817816768e-03 3.116016027518625e-03 3.108622481356378e-03 3.101238183229207e-03 3.093863147897005e-03 - 3.086497392737253e-03 3.079140921752824e-03 3.071793741871484e-03 3.064455864252268e-03 3.057127299904285e-03 - 3.049808055146270e-03 3.042498134791386e-03 3.035197556645182e-03 3.027906333235584e-03 3.020624467536793e-03 - 3.013351968343262e-03 3.006088846580162e-03 2.998835112089031e-03 2.991590768047797e-03 2.984355822285627e-03 - 2.977130294631421e-03 2.969914192263928e-03 2.962707518230782e-03 2.955510282832787e-03 2.948322496039390e-03 - 2.941144165204636e-03 2.933975293458325e-03 2.926815893073326e-03 2.919665980487675e-03 2.912525559332239e-03 - 2.905394635071103e-03 2.898273217656210e-03 2.891161316595433e-03 2.884058936906487e-03 2.876966081111658e-03 - 2.869882766189157e-03 2.862809005041444e-03 2.855744798230348e-03 2.848690153100023e-03 2.841645079496137e-03 - 2.834609585256340e-03 2.827583673848185e-03 2.820567351490293e-03 2.813560634590312e-03 2.806563530531927e-03 - 2.799576041999259e-03 2.792598177467573e-03 2.785629945309582e-03 2.778671351607254e-03 2.771722398039775e-03 - 2.764783095014263e-03 2.757853459091809e-03 2.750933492568204e-03 2.744023198517816e-03 2.737122585640385e-03 - 2.730231662189404e-03 2.723350432970404e-03 2.716478899800820e-03 2.709617075896625e-03 2.702764973241287e-03 - 2.695922593060963e-03 2.689089940152226e-03 2.682267022316270e-03 2.675453847914084e-03 2.668650418902243e-03 - 2.661856738145520e-03 2.655072822033232e-03 2.648298678030288e-03 2.641534306206961e-03 2.634779712258937e-03 - 2.628034904058933e-03 2.621299888635041e-03 2.614574665771587e-03 2.607859242632423e-03 2.601153634957146e-03 - 2.594457844452072e-03 2.587771872555374e-03 2.581095727373358e-03 2.574429415266960e-03 2.567772939497474e-03 - 2.561126300777387e-03 2.554489510835181e-03 2.547862581281132e-03 2.541245510713479e-03 2.534638303078699e-03 - 2.528040966193904e-03 2.521453505493298e-03 2.514875922225054e-03 2.508308218200437e-03 2.501750407164573e-03 - 2.495202496081871e-03 2.488664484118587e-03 2.482136376281468e-03 2.475618178705269e-03 2.469109895957427e-03 - 2.462611527825166e-03 2.456123079328407e-03 2.449644563898542e-03 2.443175984269443e-03 2.436717340526153e-03 - 2.430268636964234e-03 2.423829879853036e-03 2.417401073311931e-03 2.410982215756923e-03 2.404573315098301e-03 - 2.398174382071132e-03 2.391785416912405e-03 2.385406421217447e-03 2.379037399546287e-03 2.372678357701878e-03 - 2.366329296305038e-03 2.359990214012962e-03 2.353661123666590e-03 2.347342032379030e-03 2.341032936953993e-03 - 2.334733840455562e-03 2.328444748068140e-03 2.322165663885325e-03 2.315896586946297e-03 2.309637519733881e-03 - 2.303388473653537e-03 2.297149451184649e-03 2.290920451297887e-03 2.284701476927273e-03 2.278492533074980e-03 - 2.272293622898508e-03 2.266104742447669e-03 2.259925897918875e-03 2.253757100645447e-03 2.247598348619136e-03 - 2.241449641489242e-03 2.235310983406359e-03 2.229182378556762e-03 2.223063827011661e-03 2.216955326220785e-03 - 2.210856885615230e-03 2.204768511855369e-03 2.198690202073136e-03 2.192621957162963e-03 2.186563780523993e-03 - 2.180515675851768e-03 2.174477640514074e-03 2.168449674335647e-03 2.162431789038673e-03 2.156423986093689e-03 - 2.150426261719325e-03 2.144438618887063e-03 2.138461061015507e-03 2.132493589319895e-03 2.126536199820428e-03 - 2.120588896234097e-03 2.114651688169617e-03 2.108724573757348e-03 2.102807551461262e-03 2.096900623831682e-03 - 2.091003792760502e-03 2.085117057433877e-03 2.079240415028002e-03 2.073373872799373e-03 2.067517436442142e-03 - 2.061671101563673e-03 2.055834867994772e-03 2.050008738194652e-03 2.044192713868095e-03 2.038386792128391e-03 - 2.032590971333173e-03 2.026805260662020e-03 2.021029661329869e-03 2.015264168518725e-03 2.009508783500123e-03 - 2.003763508166370e-03 1.998028342654997e-03 1.992303282805534e-03 1.986588330078225e-03 1.980883492165770e-03 - 1.975188767039759e-03 1.969504151730439e-03 1.963829647004430e-03 1.958165254218237e-03 1.952510971963634e-03 - 1.946866794889960e-03 1.941232728159857e-03 1.935608777640074e-03 1.929994938329363e-03 1.924391207914093e-03 - 1.918797587114099e-03 1.913214077256622e-03 1.907640674795718e-03 1.902077375557082e-03 1.896524186430478e-03 - 1.890981108949087e-03 1.885448138032121e-03 1.879925272541809e-03 1.874412513138102e-03 1.868909859971047e-03 - 1.863417306389931e-03 1.857934851379391e-03 1.852462503653811e-03 1.847000259754348e-03 1.841548114039762e-03 - 1.836106066817225e-03 1.830674118529854e-03 1.825252266916765e-03 1.819840505202892e-03 1.814438836319749e-03 - 1.809047265638602e-03 1.803665787133681e-03 1.798294397101445e-03 1.792933095135866e-03 1.787581880369786e-03 - 1.782240749155103e-03 1.776909697172910e-03 1.771588728179710e-03 1.766277842767543e-03 1.760977035675204e-03 - 1.755686304337379e-03 1.750405647484752e-03 1.745135063548007e-03 1.739874546386865e-03 1.734624093589025e-03 - 1.729383711586370e-03 1.724153396315838e-03 1.718933140719367e-03 1.713722944309894e-03 1.708522806163372e-03 - 1.703332722978997e-03 1.698152687791741e-03 1.692982700783420e-03 1.687822765464940e-03 1.682672875794938e-03 - 1.677533027054054e-03 1.672403217813849e-03 1.667283446525115e-03 1.662173708173832e-03 1.657073995739192e-03 - 1.651984312946546e-03 1.646904660364047e-03 1.641835029387390e-03 1.636775416468660e-03 1.631725820220986e-03 - 1.626686238226539e-03 1.621656663682810e-03 1.616637091835148e-03 1.611627526662728e-03 1.606627964700548e-03 - 1.601638398623349e-03 1.596658825754688e-03 1.591689243408400e-03 1.586729647378206e-03 1.581780030725023e-03 - 1.576840391697073e-03 1.571910732264727e-03 1.566991046477593e-03 1.562081328242421e-03 1.557181574037859e-03 - 1.552291781114454e-03 1.547411944138861e-03 1.542542055154552e-03 1.537682115822498e-03 1.532832126356767e-03 - 1.527992077470792e-03 1.523161963747274e-03 1.518341782422417e-03 1.513531530571088e-03 1.508731200913292e-03 - 1.503940786876937e-03 1.499160290964809e-03 1.494389709200610e-03 1.489629032745148e-03 1.484878257820629e-03 - 1.480137381279299e-03 1.475406398389162e-03 1.470685299850305e-03 1.465974082141071e-03 1.461272748080975e-03 - 1.456581290224651e-03 1.451899700275850e-03 1.447227974089072e-03 1.442566108566721e-03 1.437914097994959e-03 - 1.433271932504185e-03 1.428639611034298e-03 1.424017133356480e-03 1.419404490680891e-03 1.414801676491448e-03 - 1.410208686553135e-03 1.405625516589791e-03 1.401052158609908e-03 1.396488604511052e-03 1.391934855472548e-03 - 1.387390907364871e-03 1.382856750165021e-03 1.378332378783991e-03 1.373817788890047e-03 1.369312974750468e-03 - 1.364817927255285e-03 1.360332641059443e-03 1.355857116711623e-03 1.351391347026849e-03 1.346935323100728e-03 - 1.342489039284644e-03 1.338052491255308e-03 1.333625672740901e-03 1.329208572800934e-03 1.324801188462658e-03 - 1.320403519143769e-03 1.316015555822497e-03 1.311637290544184e-03 1.307268717472159e-03 1.302909831116118e-03 - 1.298560623326278e-03 1.294221085253892e-03 1.289891216124110e-03 1.285571011566486e-03 1.281260461060531e-03 - 1.276959557618139e-03 1.272668295740209e-03 1.268386669608614e-03 1.264114669618853e-03 1.259852288349743e-03 - 1.255599524419093e-03 1.251356371085625e-03 1.247122819189722e-03 1.242898861265979e-03 1.238684491359706e-03 - 1.234479702756933e-03 1.230284484841117e-03 1.226098832748256e-03 1.221922744434409e-03 1.217756210326720e-03 - 1.213599221362577e-03 1.209451770765583e-03 1.205313852635065e-03 1.201185458480448e-03 1.197066577985755e-03 - 1.192957208640432e-03 1.188857345511447e-03 1.184766976969275e-03 1.180686095693037e-03 1.176614695732404e-03 - 1.172552769621902e-03 1.168500307042727e-03 1.164457299537124e-03 1.160423745213695e-03 1.156399636114517e-03 - 1.152384961360659e-03 1.148379714206853e-03 1.144383887440774e-03 1.140397472403066e-03 1.136420458871837e-03 - 1.132452840804467e-03 1.128494614815977e-03 1.124545770440235e-03 1.120606297984056e-03 1.116676190709075e-03 - 1.112755440623707e-03 1.108844038267568e-03 1.104941973598277e-03 1.101049242215234e-03 1.097165838523137e-03 - 1.093291750933755e-03 1.089426970747485e-03 1.085571490835547e-03 1.081725303225761e-03 1.077888396808512e-03 - 1.074060761522748e-03 1.070242395009795e-03 1.066433289590875e-03 1.062633433332422e-03 1.058842817553080e-03 - 1.055061434373011e-03 1.051289275348505e-03 1.047526329409495e-03 1.043772588486000e-03 1.040028047931513e-03 - 1.036292698203525e-03 1.032566529042292e-03 1.028849531681517e-03 1.025141697676040e-03 1.021443017315572e-03 - 1.017753479165712e-03 1.014073077446178e-03 1.010401806565697e-03 1.006739654876394e-03 1.003086612170896e-03 - 9.994426698862881e-04 9.958078198244436e-04 9.921820510029489e-04 9.885653522799815e-04 9.849577193159157e-04 - 9.813591440739670e-04 9.777696142556011e-04 9.741891204675346e-04 9.706176542328248e-04 9.670552065524777e-04 - 9.635017651512704e-04 9.599573207794398e-04 9.564218691437683e-04 9.528953995809905e-04 9.493779002331982e-04 - 9.458693621672339e-04 9.423697766254766e-04 9.388791334439822e-04 9.353974200435674e-04 9.319246293443443e-04 - 9.284607555133966e-04 9.250057861419034e-04 9.215597102726345e-04 9.181225189615299e-04 9.146942031524666e-04 - 9.112747514066988e-04 9.078641516289516e-04 9.044623983719834e-04 9.010694834242857e-04 8.976853937790154e-04 - 8.943101192935385e-04 8.909436508104612e-04 8.875859786393426e-04 8.842370902316334e-04 8.808969751654204e-04 - 8.775656281905130e-04 8.742430385918343e-04 8.709291937982416e-04 8.676240840155020e-04 8.643276998573467e-04 - 8.610400308208924e-04 8.577610636611962e-04 8.544907899714905e-04 8.512292035626933e-04 8.479762917886125e-04 - 8.447320428739457e-04 8.414964471843920e-04 8.382694949325988e-04 8.350511744137459e-04 8.318414728923707e-04 - 8.286403836395943e-04 8.254478982373706e-04 8.222640032931049e-04 8.190886878204532e-04 8.159219419987107e-04 - 8.127637556794064e-04 8.096141160179775e-04 8.064730115089579e-04 8.033404360997527e-04 8.002163789609624e-04 - 7.971008268111541e-04 7.939937692507287e-04 7.908951962853333e-04 7.878050969946667e-04 7.847234577702081e-04 - 7.816502689905088e-04 7.785855239466778e-04 7.755292098590464e-04 7.724813142232633e-04 7.694418267842021e-04 - 7.664107372089749e-04 7.633880335334087e-04 7.603737023812342e-04 7.573677358642847e-04 7.543701253849379e-04 - 7.513808572285544e-04 7.483999196962093e-04 7.454273024026923e-04 7.424629947358947e-04 7.395069836664074e-04 - 7.365592567622367e-04 7.336198070174806e-04 7.306886236388442e-04 7.277656929130117e-04 7.248510036837761e-04 - 7.219445453636994e-04 7.190463067357669e-04 7.161562739946586e-04 7.132744364309508e-04 7.104007867132190e-04 - 7.075353120392018e-04 7.046779992824802e-04 7.018288375861283e-04 6.989878161882759e-04 6.961549229362052e-04 - 6.933301438820412e-04 6.905134700383686e-04 6.877048926511914e-04 6.849043978549774e-04 6.821119732944710e-04 - 6.793276080246700e-04 6.765512910034699e-04 6.737830090783149e-04 6.710227490756584e-04 6.682705030776122e-04 - 6.655262603091742e-04 6.627900067379164e-04 6.600617305924390e-04 6.573414207627890e-04 6.546290656955580e-04 - 6.519246513982958e-04 6.492281662548372e-04 6.465396024423735e-04 6.438589471596415e-04 6.411861867028291e-04 - 6.385213096762252e-04 6.358643049114898e-04 6.332151601148890e-04 6.305738609661260e-04 6.279403974635571e-04 - 6.253147606410383e-04 6.226969365620930e-04 6.200869123319087e-04 6.174846765257772e-04 6.148902176504979e-04 - 6.123035224628875e-04 6.097245772740803e-04 6.071533733723410e-04 6.045898999580564e-04 6.020341426510520e-04 - 5.994860891934145e-04 5.969457280748620e-04 5.944130474177512e-04 5.918880332091087e-04 5.893706730594447e-04 - 5.868609584534629e-04 5.843588766665737e-04 5.818644136544619e-04 5.793775576682911e-04 5.768982970317317e-04 - 5.744266191686133e-04 5.719625097277512e-04 5.695059578510202e-04 5.670569542308351e-04 5.646154849082753e-04 - 5.621815365284883e-04 5.597550972743215e-04 5.573361553519681e-04 5.549246974872960e-04 5.525207095632259e-04 - 5.501241820142805e-04 5.477351040267441e-04 5.453534610951853e-04 5.429792405131840e-04 5.406124304314462e-04 - 5.382530187447214e-04 5.359009913605971e-04 5.335563351904396e-04 5.312190411682156e-04 5.288890968140364e-04 - 5.265664878332606e-04 5.242512018091515e-04 5.219432267978740e-04 5.196425502978362e-04 5.173491576918976e-04 - 5.150630373381158e-04 5.127841797796618e-04 5.105125710953982e-04 5.082481974966798e-04 5.059910467933278e-04 - 5.037411069671739e-04 5.014983647643853e-04 4.992628057533249e-04 4.970344196034297e-04 4.948131954905409e-04 - 4.925991188614672e-04 4.903921766298550e-04 4.881923566574878e-04 4.859996466359864e-04 4.838140324815327e-04 - 4.816355005995136e-04 4.794640414647377e-04 4.772996426854546e-04 4.751422896755638e-04 4.729919697488023e-04 - 4.708486707166207e-04 4.687123799720691e-04 4.665830828962369e-04 4.644607671738101e-04 4.623454230212830e-04 - 4.602370366779194e-04 4.581355941018685e-04 4.560410828358216e-04 4.539534906171381e-04 4.518728041821612e-04 - 4.497990089033435e-04 4.477320938149108e-04 4.456720481170030e-04 4.436188572707195e-04 4.415725078895158e-04 - 4.395329875976124e-04 4.375002838422590e-04 4.354743826722610e-04 4.334552702201095e-04 4.314429363226086e-04 - 4.294373687059989e-04 4.274385527576286e-04 4.254464755700176e-04 4.234611247199864e-04 4.214824874479911e-04 - 4.195105492176435e-04 4.175452972239935e-04 4.155867214135851e-04 4.136348082067204e-04 4.116895433467350e-04 - 4.097509141339746e-04 4.078189081189173e-04 4.058935120995524e-04 4.039747114386321e-04 4.020624945699733e-04 - 4.001568506324645e-04 3.982577652062802e-04 3.963652246433777e-04 3.944792163840573e-04 3.925997278951708e-04 - 3.907267452820787e-04 3.888602542761684e-04 3.870002443827855e-04 3.851467035420477e-04 3.832996170232135e-04 - 3.814589716941001e-04 3.796247550166885e-04 3.777969542187427e-04 3.759755548771444e-04 3.741605437648361e-04 - 3.723519105456335e-04 3.705496418343326e-04 3.687537232626712e-04 3.669641420580878e-04 3.651808856652343e-04 - 3.634039408935104e-04 3.616332930379869e-04 3.598689301103073e-04 3.581108413327368e-04 3.563590123412032e-04 - 3.546134293224166e-04 3.528740796868620e-04 3.511409507353364e-04 3.494140287293094e-04 3.476932993968030e-04 - 3.459787517007610e-04 3.442703736842207e-04 3.425681507579447e-04 3.408720696736798e-04 3.391821178070990e-04 - 3.374982823340253e-04 3.358205489790399e-04 3.341489042294683e-04 3.324833375391577e-04 3.308238358267097e-04 - 3.291703846864138e-04 3.275229711235071e-04 3.258815824857735e-04 3.242462057388915e-04 3.226168264116891e-04 - 3.209934320343741e-04 3.193760116170641e-04 3.177645512713499e-04 3.161590371207419e-04 3.145594562690266e-04 - 3.129657961319975e-04 3.113780432227079e-04 3.097961831114660e-04 3.082202043645004e-04 3.066500952444524e-04 - 3.050858414009347e-04 3.035274294402161e-04 3.019748466354355e-04 3.004280802320956e-04 2.988871162192853e-04 - 2.973519409077311e-04 2.958225434173786e-04 2.942989109163873e-04 2.927810290941792e-04 2.912688849504159e-04 - 2.897624658129895e-04 2.882617587216531e-04 2.867667493909568e-04 2.852774250910157e-04 2.837937747837379e-04 - 2.823157848000407e-04 2.808434412718301e-04 2.793767313619733e-04 2.779156424588856e-04 2.764601612241833e-04 - 2.750102732798498e-04 2.735659669757869e-04 2.721272307826111e-04 2.706940504177620e-04 2.692664125118005e-04 - 2.678443044384447e-04 2.664277133531666e-04 2.650166254907073e-04 2.636110271946842e-04 2.622109073508727e-04 - 2.608162534146021e-04 2.594270512444905e-04 2.580432877716125e-04 2.566649503351083e-04 2.552920261463284e-04 - 2.539245011192165e-04 2.525623623480746e-04 2.512055988243127e-04 2.498541971146173e-04 2.485081433825346e-04 - 2.471674249383843e-04 2.458320291468696e-04 2.445019428356345e-04 2.431771519464020e-04 2.418576445147758e-04 - 2.405434090455539e-04 2.392344316436903e-04 2.379306989304936e-04 2.366321982706708e-04 2.353389171046539e-04 - 2.340508418959193e-04 2.327679588365217e-04 2.314902568213100e-04 2.302177235947735e-04 2.289503450019842e-04 - 2.276881081822984e-04 2.264310006278554e-04 2.251790095285085e-04 2.239321211178975e-04 2.226903224828012e-04 - 2.214536025966827e-04 2.202219483393713e-04 2.189953459440866e-04 2.177737827672056e-04 2.165572463172210e-04 - 2.153457236927424e-04 2.141392010208329e-04 2.129376661694288e-04 2.117411078009580e-04 2.105495123800498e-04 - 2.093628666254358e-04 2.081811579562958e-04 2.070043738711933e-04 2.058325011765904e-04 2.046655262979033e-04 - 2.035034378928387e-04 2.023462239716796e-04 2.011938707312936e-04 2.000463653117907e-04 1.989036953143001e-04 - 1.977658482429478e-04 1.966328105707422e-04 1.955045692837424e-04 1.943811134060168e-04 1.932624302421221e-04 - 1.921485062157297e-04 1.910393287336514e-04 1.899348854684124e-04 1.888351638115297e-04 1.877401500482506e-04 - 1.866498319949601e-04 1.855641985831636e-04 1.844832365124926e-04 1.834069326310023e-04 1.823352746298841e-04 - 1.812682501147551e-04 1.802058461455679e-04 1.791480493724017e-04 1.780948483852737e-04 1.770462314872484e-04 - 1.760021851824818e-04 1.749626967491274e-04 1.739277539439587e-04 1.728973444305181e-04 1.718714550470096e-04 - 1.708500728855944e-04 1.698331869571933e-04 1.688207849549946e-04 1.678128535713188e-04 1.668093803524777e-04 - 1.658103531111011e-04 1.648157594964937e-04 1.638255861976382e-04 1.628398210066413e-04 1.618584529166454e-04 - 1.608814690931768e-04 1.599088565742865e-04 1.589406031206167e-04 1.579766966509897e-04 1.570171246224424e-04 - 1.560618738321770e-04 1.551109328208930e-04 1.541642902068764e-04 1.532219328717612e-04 1.522838482661923e-04 - 1.513500243337891e-04 1.504204489591066e-04 1.494951093483970e-04 1.485739927662749e-04 1.476570882997282e-04 - 1.467443839796364e-04 1.458358667202351e-04 1.449315243896633e-04 1.440313449862068e-04 1.431353162531848e-04 - 1.422434254066872e-04 1.413556604013758e-04 1.404720102486319e-04 1.395924625558734e-04 1.387170046489957e-04 - 1.378456244430427e-04 1.369783100559194e-04 1.361150493062282e-04 1.352558293490397e-04 1.344006387024136e-04 - 1.335494662293593e-04 1.327022993333140e-04 1.318591256583063e-04 1.310199332689028e-04 1.301847103692820e-04 - 1.293534446013900e-04 1.285261234477974e-04 1.277027359881715e-04 1.268832706365997e-04 1.260677147052468e-04 - 1.252560562359565e-04 1.244482834803957e-04 1.236443845356053e-04 1.228443469528238e-04 1.220481588198588e-04 - 1.212558093699401e-04 1.204672865809282e-04 1.196825780471873e-04 1.189016720308052e-04 1.181245568536085e-04 - 1.173512205995857e-04 1.165816508484800e-04 1.158158362776897e-04 1.150537660210759e-04 1.142954277590100e-04 - 1.135408094568152e-04 1.127898995954114e-04 1.120426864956402e-04 1.112991581353023e-04 1.105593024093304e-04 - 1.098231085283700e-04 1.090905652465313e-04 1.083616601800625e-04 1.076363816399760e-04 1.069147182196831e-04 - 1.061966583782502e-04 1.054821899944032e-04 1.047713013150353e-04 1.040639818640637e-04 1.033602200082437e-04 - 1.026600035826387e-04 1.019633211976323e-04 1.012701615275282e-04 1.005805130149820e-04 9.989436355203399e-05 - 9.921170194739147e-05 9.853251765411631e-05 9.785679881782247e-05 9.718453366352614e-05 9.651571091087277e-05 - 9.585031930594751e-05 9.518834724915350e-05 9.452978284703146e-05 9.387461543789448e-05 9.322283420353250e-05 - 9.257442723618249e-05 9.192938310286574e-05 9.128769066247626e-05 9.064933872161225e-05 9.001431561187756e-05 - 8.938260983500139e-05 8.875421104519957e-05 8.812910809646098e-05 8.750728925694059e-05 8.688874335824857e-05 - 8.627345936363417e-05 8.566142611724158e-05 8.505263195150667e-05 8.444706587898619e-05 8.384471762172232e-05 - 8.324557578035348e-05 8.264962891132210e-05 8.205686604727953e-05 8.146727626544971e-05 8.088084838175318e-05 - 8.029757088191735e-05 7.971743327705584e-05 7.914042512047892e-05 7.856653495630607e-05 7.799575166346450e-05 - 7.742806441871695e-05 7.686346239245813e-05 7.630193435494130e-05 7.574346911053080e-05 7.518805653837606e-05 - 7.463568593117825e-05 7.408634594826592e-05 7.354002575090044e-05 7.299671464423979e-05 7.245640185167563e-05 - 7.191907614532941e-05 7.138472679150608e-05 7.085334380230530e-05 7.032491623916224e-05 6.979943301854977e-05 - 6.927688351841825e-05 6.875725716877753e-05 6.824054320182008e-05 6.772673050550591e-05 6.721580881996242e-05 - 6.670776807704407e-05 6.620259726868480e-05 6.570028562031883e-05 6.520082266140781e-05 6.470419793220322e-05 - 6.421040064958054e-05 6.371941996817583e-05 6.323124601185380e-05 6.274586851226631e-05 6.226327655003573e-05 - 6.178345963615301e-05 6.130640743984757e-05 6.083210957777482e-05 6.036055527561582e-05 5.989173409263222e-05 - 5.942563633391719e-05 5.896225154191688e-05 5.850156903007261e-05 5.804357852627766e-05 5.758826983099529e-05 - 5.713563260712647e-05 5.668565617514362e-05 5.623833053838233e-05 5.579364600051564e-05 5.535159201768813e-05 - 5.491215819134343e-05 5.447533442712218e-05 5.404111064124177e-05 5.360947650466450e-05 5.318042157160001e-05 - 5.275393622516995e-05 5.233001062811153e-05 5.190863431238880e-05 5.148979716458554e-05 5.107348923404401e-05 - 5.065970053025621e-05 5.024842074849432e-05 4.983963979263951e-05 4.943334827635427e-05 4.902953621108006e-05 - 4.862819332553702e-05 4.822930973793706e-05 4.783287562882953e-05 4.743888107972067e-05 4.704731588033618e-05 - 4.665817033540254e-05 4.627143510842172e-05 4.588710014690383e-05 4.550515545082771e-05 4.512559130332447e-05 - 4.474839802715817e-05 4.437356575264515e-05 4.400108444300858e-05 4.363094478314062e-05 4.326313737450849e-05 - 4.289765220307346e-05 4.253447954450777e-05 4.217360984935306e-05 4.181503354031293e-05 4.145874078526325e-05 - 4.110472186234567e-05 4.075296770939578e-05 4.040346881442376e-05 4.005621534517384e-05 3.971119780891244e-05 - 3.936840678851008e-05 3.902783280379881e-05 3.868946611492773e-05 3.835329736378580e-05 3.801931758461789e-05 - 3.768751721520911e-05 3.735788667634669e-05 3.703041665089796e-05 3.670509786268472e-05 3.638192090588934e-05 - 3.606087620758478e-05 3.574195476070656e-05 3.542514758568229e-05 3.511044516462031e-05 3.479783817623805e-05 - 3.448731747191980e-05 3.417887390941621e-05 3.387249813623169e-05 3.356818082938366e-05 3.326591326488256e-05 - 3.296568640239042e-05 3.266749086476883e-05 3.237131756688427e-05 3.207715751232477e-05 3.178500166911470e-05 - 3.149484077201404e-05 3.120666582870710e-05 3.092046825328168e-05 3.063623897047349e-05 3.035396883732847e-05 - 3.007364895961203e-05 2.979527048619034e-05 2.951882447255356e-05 2.924430180184470e-05 2.897169381596313e-05 - 2.870099196601076e-05 2.843218722351712e-05 2.816527069305565e-05 2.790023364581556e-05 2.763706736588794e-05 - 2.737576298520704e-05 2.711631161938774e-05 2.685870489191871e-05 2.660293422952212e-05 2.634899073350601e-05 - 2.609686574272242e-05 2.584655068622352e-05 2.559803697386157e-05 2.535131582907573e-05 2.510637865851451e-05 - 2.486321726016628e-05 2.462182305120829e-05 2.438218734168926e-05 2.414430166313400e-05 2.390815760058303e-05 - 2.367374667612129e-05 2.344106023464476e-05 2.321008999935892e-05 2.298082786356460e-05 2.275326527748312e-05 - 2.252739378233606e-05 2.230320509258137e-05 2.208069093512809e-05 2.185984291941186e-05 2.164065260635458e-05 - 2.142311199522572e-05 2.120721298028661e-05 2.099294714303281e-05 2.078030625998752e-05 2.056928220029127e-05 - 2.035986682231265e-05 2.015205183896797e-05 1.994582907956633e-05 1.974119073954575e-05 1.953812872162773e-05 - 1.933663479825456e-05 1.913670094979531e-05 1.893831919578259e-05 1.874148151575467e-05 1.854617976080873e-05 - 1.835240605058427e-05 1.816015268982217e-05 1.796941162992672e-05 1.778017486956627e-05 1.759243456762222e-05 - 1.740618289118282e-05 1.722141193137039e-05 1.703811372777776e-05 1.685628066375182e-05 1.667590509374455e-05 - 1.649697910104339e-05 1.631949489857415e-05 1.614344479286407e-05 1.596882111103627e-05 1.579561606259506e-05 - 1.562382191518076e-05 1.545343126338709e-05 1.528443649706141e-05 1.511682986511545e-05 1.495060379262073e-05 - 1.478575075387210e-05 1.462226320346460e-05 1.446013347627832e-05 1.429935410828208e-05 1.413991783947596e-05 - 1.398181711799591e-05 1.382504440087988e-05 1.366959229690567e-05 1.351545344207288e-05 1.336262041089977e-05 - 1.321108569966174e-05 1.306084210743495e-05 1.291188246012095e-05 1.276419932540445e-05 1.261778537439798e-05 - 1.247263337350260e-05 1.232873611168182e-05 1.218608628547451e-05 1.204467661277090e-05 1.190450010670460e-05 - 1.176554964839514e-05 1.162781797531038e-05 1.149129796332477e-05 1.135598253898601e-05 1.122186462622714e-05 - 1.108893706038782e-05 1.095719281332111e-05 1.082662505098182e-05 1.069722672643097e-05 1.056899077370047e-05 - 1.044191025341683e-05 1.031597825830204e-05 1.019118784797653e-05 1.006753201372614e-05 9.945003972957807e-06 - 9.823597003224701e-06 9.703304169766936e-06 9.584118614966616e-06 9.466033570975281e-06 9.349042284940899e-06 - 9.233137946012443e-06 9.118313747892748e-06 9.004563126071509e-06 8.891879438415634e-06 8.780255908737012e-06 - 8.669685879934477e-06 8.560162746518096e-06 8.451679906731882e-06 8.344230688978416e-06 8.237808513777729e-06 - 8.132406985376577e-06 8.028019552616531e-06 7.924639629701503e-06 7.822260741691212e-06 7.720876445763237e-06 - 7.620480284148957e-06 7.521065743540658e-06 7.422626477381218e-06 7.325156218634066e-06 7.228648532638821e-06 - 7.133097034958690e-06 7.038495423985100e-06 6.944837416133499e-06 6.852116691729515e-06 6.760326924607246e-06 - 6.669461983453847e-06 6.579515704432944e-06 6.490481806747385e-06 6.402354101863004e-06 6.315126452251840e-06 - 6.228792731669073e-06 6.143346764859859e-06 6.058782435540508e-06 5.975093791198315e-06 5.892274772590937e-06 - 5.810319279027480e-06 5.729221306547671e-06 5.648974882411472e-06 5.569574030477156e-06 5.491012732167998e-06 - 5.413285091010444e-06 5.336385298912571e-06 5.260307420244722e-06 5.185045547999291e-06 5.110593849728286e-06 - 5.036946516955677e-06 4.964097720721464e-06 4.892041619202182e-06 4.820772525961763e-06 4.750284753859853e-06 - 4.680572517390150e-06 4.611630102585562e-06 4.543451844884654e-06 4.476032095169469e-06 4.409365173309600e-06 - 4.343445435493855e-06 4.278267378107974e-06 4.213825432046252e-06 4.150113986510229e-06 4.087127510654963e-06 - 4.024860505544460e-06 3.963307478207591e-06 3.902462905546128e-06 3.842321351732513e-06 3.782877469285005e-06 - 3.724125818875267e-06 3.666060976275786e-06 3.608677584308628e-06 3.551970310325800e-06 3.495933813913828e-06 - 3.440562742860537e-06 3.385851865026623e-06 3.331795968547279e-06 3.278389763636986e-06 3.225628015585682e-06 - 3.173505536483180e-06 3.122017155106099e-06 3.071157684657154e-06 3.020921961442045e-06 2.971304937503200e-06 - 2.922301530764381e-06 2.873906622400171e-06 2.826115159163556e-06 2.778922119160790e-06 2.732322492500433e-06 - 2.686311250918327e-06 2.640883427466542e-06 2.596034137909800e-06 2.551758437600915e-06 2.508051388712647e-06 - 2.464908112415978e-06 2.422323753722291e-06 2.380293459852445e-06 2.338812372063220e-06 2.297875719562253e-06 - 2.257478763762930e-06 2.217616712073996e-06 2.178284811840686e-06 2.139478353112250e-06 2.101192645402220e-06 - 2.063422994293474e-06 2.026164721213360e-06 1.989413239181793e-06 1.953163950788084e-06 1.917412231009713e-06 - 1.882153506609316e-06 1.847383234461138e-06 1.813096887995954e-06 1.779289933937322e-06 1.745957881749227e-06 - 1.713096313387221e-06 1.680700776153704e-06 1.648766820412035e-06 1.617290047665242e-06 1.586266083282953e-06 - 1.555690561349229e-06 1.525559115412809e-06 1.495867444877275e-06 1.466611286844381e-06 1.437786342321971e-06 - 1.409388342689011e-06 1.381413059137875e-06 1.353856283643994e-06 1.326713811980504e-06 1.299981452903499e-06 - 1.273655087535907e-06 1.247730601634883e-06 1.222203862466376e-06 1.197070780161529e-06 1.172327293218336e-06 - 1.147969358200551e-06 1.123992934949297e-06 1.100394014305713e-06 1.077168647815731e-06 1.054312872343777e-06 - 1.031822727943270e-06 1.009694299029158e-06 9.879236928228051e-07 9.665070295488333e-07 9.454404356909418e-07 - 9.247200854784831e-07 9.043421911847067e-07 8.843029477247774e-07 8.645985728173436e-07 8.452253193362285e-07 - 8.261794626052351e-07 8.074572875932502e-07 7.890550921071068e-07 7.709692301619030e-07 7.531960701353248e-07 - 7.357319715620587e-07 7.185733287203112e-07 7.017165630618881e-07 6.851581162834306e-07 6.688944388625421e-07 - 6.529220052598067e-07 6.372373411274385e-07 6.218369717692920e-07 6.067174274527125e-07 5.918752755194360e-07 - 5.773071063798692e-07 5.630095271034721e-07 5.489791556312369e-07 5.352126455394792e-07 5.217066864180125e-07 - 5.084579644193884e-07 4.954631845887763e-07 4.827190834887087e-07 4.702224204045173e-07 4.579699684713550e-07 - 4.459585154334098e-07 4.341848919935187e-07 4.226459485782965e-07 4.113385363883691e-07 4.002595352312233e-07 - 3.894058504065020e-07 3.787744086301839e-07 3.683621500987016e-07 3.581660355932383e-07 3.481830676805770e-07 - 3.384102581524441e-07 3.288446273745833e-07 3.194832275224818e-07 3.103231330843525e-07 3.013614373207315e-07 - 2.925952486098954e-07 2.840217031010630e-07 2.756379695267500e-07 2.674412234106971e-07 2.594286576386206e-07 - 2.515974937029081e-07 2.439449754383926e-07 2.364683632309526e-07 2.291649345383248e-07 2.220320002407473e-07 - 2.150668931442167e-07 2.082669548865648e-07 2.016295514473211e-07 1.951520727682157e-07 1.888319311586693e-07 - 1.826665552837694e-07 1.766533931743509e-07 1.707899271779558e-07 1.650736547045015e-07 1.595020857916059e-07 - 1.540727581256184e-07 1.487832309302349e-07 1.436310837043274e-07 1.386139140291348e-07 1.337293426531939e-07 - 1.289750194034745e-07 1.243486077550924e-07 1.198477884856861e-07 1.154702687444825e-07 1.112137774078364e-07 - 1.070760615754017e-07 1.030548878714015e-07 9.914804983102429e-08 9.535336319532080e-08 9.166865877274502e-08 - 8.809178921148019e-08 8.462062987184363e-08 8.125307865123530e-08 7.798705169188094e-08 7.482048486743137e-08 - 7.175134265372113e-08 6.877760756933380e-08 6.589727849023001e-08 6.310837918621049e-08 6.040895419177239e-08 - 5.779706919084610e-08 5.527080986023133e-08 5.282828275733461e-08 5.046762055622123e-08 4.818697371034567e-08 - 4.598451068334482e-08 4.385842456607357e-08 4.180692971968811e-08 3.982825980405518e-08 3.792066966127786e-08 - 3.608243718277188e-08 3.431186206040581e-08 3.260726312426322e-08 3.096697968233847e-08 2.938937298745983e-08 - 2.787282684203093e-08 2.641574418968914e-08 2.501654849393015e-08 2.367368813134603e-08 2.238563078881267e-08 - 2.115086344400587e-08 1.996789606940446e-08 1.883525886916157e-08 1.775150390948272e-08 1.671520402936120e-08 - 1.572495208680648e-08 1.477936511938296e-08 1.387707990026544e-08 1.301675220490221e-08 1.219706138041649e-08 - 1.141670750179082e-08 1.067441065312196e-08 9.968913113355902e-09 9.298978133402818e-09 8.663390331238368e-09 - 8.060955677291694e-09 7.490500025975069e-09 6.950870854385858e-09 6.440937996309972e-09 5.959590797852082e-09 - 5.505739944416565e-09 5.078318901633865e-09 4.676280806472903e-09 4.298600029449081e-09 3.944272776496124e-09 - 3.612315204086912e-09 3.301765808464261e-09 3.011683971683484e-09 2.741149022073358e-09 2.489263438950313e-09 - 2.255150010734707e-09 2.037951439802415e-09 1.836833426869985e-09 1.650981924522248e-09 1.479603458288696e-09 - 1.321927088896133e-09 1.177201927023745e-09 1.044698361371603e-09 9.237089042804517e-10 8.135457713165132e-10 - 7.135428727606122e-10 6.230561233086797e-10 5.414610837010692e-10 4.681552957722881e-10 4.025579739718386e-10 - 3.441080911031397e-10 2.922668865200973e-10 2.465167169238545e-10 2.063598966733955e-10 1.713213823559041e-10 - 1.409467301732644e-10 1.148017117805301e-10 9.247489436372923e-11 7.357503403670199e-11 5.773147403071901e-11 - 4.459623415664643e-11 3.384125546419585e-11 2.515956035071991e-11 1.826656159304613e-11 1.289741553721677e-11 - 8.808852910154413e-12 5.779611749592996e-12 3.608107240050744e-12 2.114775563702074e-12 1.141629414770904e-12 - 5.504076981088132e-13 2.252028793998774e-13 7.135404618680312e-14 1.400208835054596e-14 2.858282411901289e-16 - 0.000000000000000e+00 3.280907692410757e+00 6.559093802140417e+00 9.834554467967374e+00 1.310728583537977e+01 - 1.637728405657552e+01 1.964454529046227e+01 2.290906570265743e+01 2.617084146548816e+01 2.942986875799139e+01 - 3.268614376591378e+01 3.593966268171175e+01 3.919042170455148e+01 4.243841704030890e+01 4.568364490156970e+01 - 4.892610150762930e+01 5.216578308449292e+01 5.540268586487547e+01 5.863680608820168e+01 6.186814000060598e+01 - 6.509668385493259e+01 6.832243391073550e+01 7.154538643427834e+01 7.476553769853463e+01 7.798288398318758e+01 - 8.119742157463018e+01 8.440914676596513e+01 8.761805585700493e+01 9.082414515427180e+01 9.402741097099775e+01 - 9.722784962712448e+01 1.004254574493035e+02 1.036202307708961e+02 1.068121659319733e+02 1.100012592793157e+02 - 1.131875071664140e+02 1.163709059534683e+02 1.195514520073887e+02 1.227291417017950e+02 1.259039714170167e+02 - 1.290759375400930e+02 1.322450364647731e+02 1.354112645915156e+02 1.385746183274891e+02 1.417350940865720e+02 - 1.448926882893522e+02 1.480473973631275e+02 1.511992177419055e+02 1.543481458664036e+02 1.574941781840487e+02 - 1.606373111489777e+02 1.637775412220371e+02 1.669148648707833e+02 1.700492785694823e+02 1.731807787991100e+02 - 1.763093620473519e+02 1.794350248086033e+02 1.825577635839695e+02 1.856775748812652e+02 1.887944552150149e+02 - 1.919084011064531e+02 1.950194090835239e+02 1.981274756808810e+02 2.012325974398883e+02 2.043347709086188e+02 - 2.074339926418558e+02 2.105302592010923e+02 2.136235671545306e+02 2.167139130770834e+02 2.198012935503726e+02 - 2.228857051627302e+02 2.259671445091978e+02 2.290456081915269e+02 2.321210928181784e+02 2.351935950043234e+02 - 2.382631113718425e+02 2.413296385493261e+02 2.443931731720744e+02 2.474537118820972e+02 2.505112513281143e+02 - 2.535657881655549e+02 2.566173190565586e+02 2.596658406699738e+02 2.627113496813596e+02 2.657538427729843e+02 - 2.687933166338259e+02 2.718297679595726e+02 2.748631934526219e+02 2.778935898220815e+02 2.809209537837683e+02 - 2.839452820602094e+02 2.869665713806416e+02 2.899848184810112e+02 2.930000201039745e+02 2.960121729988974e+02 - 2.990212739218558e+02 3.020273196356349e+02 3.050303069097302e+02 3.080302325203465e+02 3.110270932503987e+02 - 3.140208858895110e+02 3.170116072340180e+02 3.199992540869634e+02 3.229838232581013e+02 3.259653115638948e+02 - 3.289437158275174e+02 3.319190328788521e+02 3.348912595544916e+02 3.378603926977383e+02 3.408264291586049e+02 - 3.437893657938130e+02 3.467491994667945e+02 3.497059270476910e+02 3.526595454133537e+02 3.556100514473437e+02 - 3.585574420399318e+02 3.615017140880985e+02 3.644428644955341e+02 3.673808901726388e+02 3.703157880365222e+02 - 3.732475550110041e+02 3.761761880266134e+02 3.791016840205897e+02 3.820240399368814e+02 3.849432527261474e+02 - 3.878593193457557e+02 3.907722367597846e+02 3.936820019390219e+02 3.965886118609651e+02 3.994920635098217e+02 - 4.023923538765087e+02 4.052894799586530e+02 4.081834387605912e+02 4.110742272933696e+02 4.139618425747443e+02 - 4.168462816291812e+02 4.197275414878559e+02 4.226056191886540e+02 4.254805117761704e+02 4.283522163017099e+02 - 4.312207298232872e+02 4.340860494056267e+02 4.369481721201628e+02 4.398070950450389e+02 4.426628152651090e+02 - 4.455153298719365e+02 4.483646359637945e+02 4.512107306456656e+02 4.540536110292430e+02 4.568932742329288e+02 - 4.597297173818351e+02 4.625629376077841e+02 4.653929320493071e+02 4.682196978516460e+02 4.710432321667516e+02 - 4.738635321532851e+02 4.766805949766169e+02 4.794944178088276e+02 4.823049978287075e+02 4.851123322217564e+02 - 4.879164181801841e+02 4.907172529029099e+02 4.935148335955632e+02 4.963091574704831e+02 4.991002217467178e+02 - 5.018880236500261e+02 5.046725604128764e+02 5.074538292744463e+02 5.102318274806237e+02 5.130065522840063e+02 - 5.157780009439010e+02 5.185461707263250e+02 5.213110589040049e+02 5.240726627563774e+02 5.268309795695885e+02 - 5.295860066364945e+02 5.323377412566609e+02 5.350861807363634e+02 5.378313223885873e+02 5.405731635330272e+02 - 5.433117014960885e+02 5.460469336108854e+02 5.487788572172420e+02 5.515074696616928e+02 5.542327682974811e+02 - 5.569547504845609e+02 5.596734135895950e+02 5.623887549859570e+02 5.651007720537292e+02 5.678094621797045e+02 - 5.705148227573850e+02 5.732168511869830e+02 5.759155448754203e+02 5.786109012363282e+02 5.813029176900482e+02 - 5.839915916636313e+02 5.866769205908384e+02 5.893589019121401e+02 5.920375330747167e+02 5.947128115324583e+02 - 5.973847347459648e+02 6.000533001825459e+02 6.027185053162206e+02 6.053803476277183e+02 6.080388246044777e+02 - 6.106939337406476e+02 6.133456725370861e+02 6.159940385013617e+02 6.186390291477520e+02 6.212806419972447e+02 - 6.239188745775372e+02 6.265537244230364e+02 6.291851890748597e+02 6.318132660808333e+02 6.344379529954938e+02 - 6.370592473800871e+02 6.396771468025696e+02 6.422916488376064e+02 6.449027510665734e+02 6.475104510775553e+02 - 6.501147464653474e+02 6.527156348314542e+02 6.553131137840901e+02 6.579071809381794e+02 6.604978339153558e+02 - 6.630850703439634e+02 6.656688878590552e+02 6.682492841023947e+02 6.708262567224546e+02 6.733998033744177e+02 - 6.759699217201766e+02 6.785366094283333e+02 6.810998641742000e+02 6.836596836397980e+02 6.862160655138592e+02 - 6.887690074918247e+02 6.913185072758453e+02 6.938645625747821e+02 6.964071711042051e+02 6.989463305863949e+02 - 7.014820387503412e+02 7.040142933317441e+02 7.065430920730126e+02 7.090684327232666e+02 7.115903130383348e+02 - 7.141087307807558e+02 7.166236837197782e+02 7.191351696313601e+02 7.216431862981700e+02 7.241477315095852e+02 - 7.266488030616937e+02 7.291463987572921e+02 7.316405164058881e+02 7.341311538236981e+02 7.366183088336488e+02 - 7.391019792653765e+02 7.415821629552270e+02 7.440588577462564e+02 7.465320614882301e+02 7.490017720376235e+02 - 7.514679872576214e+02 7.539307050181191e+02 7.563899231957208e+02 7.588456396737411e+02 7.612978523422037e+02 - 7.637465590978424e+02 7.661917578441014e+02 7.686334464911333e+02 7.710716229558018e+02 7.735062851616793e+02 - 7.759374310390485e+02 7.783650585249019e+02 7.807891655629417e+02 7.832097501035795e+02 7.856268101039369e+02 - 7.880403435278453e+02 7.904503483458460e+02 7.928568225351897e+02 7.952597640798369e+02 7.976591709704585e+02 - 8.000550412044341e+02 8.024473727858536e+02 8.048361637255169e+02 8.072214120409334e+02 8.096031157563222e+02 - 8.119812729026120e+02 8.143558815174417e+02 8.167269396451593e+02 8.190944453368236e+02 8.214583966502021e+02 - 8.238187916497725e+02 8.261756284067224e+02 8.285289049989487e+02 8.308786195110586e+02 8.332247700343684e+02 - 8.355673546669050e+02 8.379063715134042e+02 8.402418186853124e+02 8.425736943007848e+02 8.449019964846872e+02 - 8.472267233685945e+02 8.495478730907921e+02 8.518654437962743e+02 8.541794336367457e+02 8.564898407706205e+02 - 8.587966633630226e+02 8.610998995857861e+02 8.633995476174539e+02 8.656956056432798e+02 8.679880718552264e+02 - 8.702769444519665e+02 8.725622216388828e+02 8.748439016280670e+02 8.771219826383219e+02 8.793964628951586e+02 - 8.816673406307990e+02 8.839346140841741e+02 8.861982815009252e+02 8.884583411334027e+02 8.907147912406675e+02 - 8.929676300884897e+02 8.952168559493493e+02 8.974624671024361e+02 8.997044618336495e+02 9.019428384355992e+02 - 9.041775952076036e+02 9.064087304556922e+02 9.086362424926032e+02 9.108601296377846e+02 9.130803902173951e+02 - 9.152970225643020e+02 9.175100250180832e+02 9.197193959250255e+02 9.219251336381268e+02 9.241272365170935e+02 - 9.263257029283417e+02 9.285205312449986e+02 9.307117198468995e+02 9.328992671205907e+02 9.350831714593277e+02 - 9.372634312630761e+02 9.394400449385104e+02 9.416130108990160e+02 9.437823275646871e+02 9.459479933623287e+02 - 9.481100067254541e+02 9.502683660942876e+02 9.524230699157629e+02 9.545741166435229e+02 9.567215047379214e+02 - 9.588652326660207e+02 9.610052989015940e+02 9.631417019251231e+02 9.652744402238004e+02 9.674035122915279e+02 - 9.695289166289172e+02 9.716506517432896e+02 9.737687161486764e+02 9.758831083658184e+02 9.779938269221661e+02 - 9.801008703518804e+02 9.822042371958310e+02 9.843039260015983e+02 9.863999353234714e+02 9.884922637224498e+02 - 9.905809097662435e+02 9.926658720292703e+02 9.947471490926598e+02 9.968247395442500e+02 9.988986419785891e+02 - 1.000968854996935e+03 1.003035377207256e+03 1.005098207224229e+03 1.007157343669241e+03 1.009212785170389e+03 - 1.011264530362480e+03 1.013312577887031e+03 1.015356926392268e+03 1.017397574533126e+03 1.019434520971252e+03 - 1.021467764375000e+03 1.023497303419437e+03 1.025523136786337e+03 1.027545263164185e+03 1.029563681248175e+03 - 1.031578389740212e+03 1.033589387348909e+03 1.035596672789591e+03 1.037600244784291e+03 1.039600102061752e+03 - 1.041596243357428e+03 1.043588667413480e+03 1.045577372978782e+03 1.047562358808916e+03 1.049543623666173e+03 - 1.051521166319557e+03 1.053494985544777e+03 1.055465080124256e+03 1.057431448847125e+03 1.059394090509224e+03 - 1.061353003913104e+03 1.063308187868025e+03 1.065259641189957e+03 1.067207362701581e+03 1.069151351232285e+03 - 1.071091605618170e+03 1.073028124702043e+03 1.074960907333424e+03 1.076889952368542e+03 1.078815258670335e+03 - 1.080736825108451e+03 1.082654650559248e+03 1.084568733905793e+03 1.086479074037864e+03 1.088385669851947e+03 - 1.090288520251241e+03 1.092187624145651e+03 1.094082980451794e+03 1.095974588092995e+03 1.097862445999292e+03 - 1.099746553107428e+03 1.101626908360861e+03 1.103503510709754e+03 1.105376359110983e+03 1.107245452528133e+03 - 1.109110789931497e+03 1.110972370298081e+03 1.112830192611597e+03 1.114684255862470e+03 1.116534559047833e+03 - 1.118381101171529e+03 1.120223881244111e+03 1.122062898282842e+03 1.123898151311694e+03 1.125729639361349e+03 - 1.127557361469200e+03 1.129381316679347e+03 1.131201504042604e+03 1.133017922616489e+03 1.134830571465235e+03 - 1.136639449659783e+03 1.138444556277782e+03 1.140245890403593e+03 1.142043451128286e+03 1.143837237549640e+03 - 1.145627248772146e+03 1.147413483907002e+03 1.149195942072117e+03 1.150974622392110e+03 1.152749523998310e+03 - 1.154520646028755e+03 1.156287987628192e+03 1.158051547948079e+03 1.159811326146585e+03 1.161567321388586e+03 - 1.163319532845669e+03 1.165067959696131e+03 1.166812601124979e+03 1.168553456323928e+03 1.170290524491405e+03 - 1.172023804832545e+03 1.173753296559195e+03 1.175478998889909e+03 1.177200911049953e+03 1.178919032271301e+03 - 1.180633361792637e+03 1.182343898859357e+03 1.184050642723563e+03 1.185753592644071e+03 1.187452747886402e+03 - 1.189148107722792e+03 1.190839671432183e+03 1.192527438300227e+03 1.194211407619287e+03 1.195891578688435e+03 - 1.197567950813455e+03 1.199240523306837e+03 1.200909295487783e+03 1.202574266682204e+03 1.204235436222721e+03 - 1.205892803448666e+03 1.207546367706079e+03 1.209196128347710e+03 1.210842084733019e+03 1.212484236228177e+03 - 1.214122582206062e+03 1.215757122046265e+03 1.217387855135084e+03 1.219014780865528e+03 1.220637898637316e+03 - 1.222257207856876e+03 1.223872707937346e+03 1.225484398298575e+03 1.227092278367119e+03 1.228696347576247e+03 - 1.230296605365935e+03 1.231893051182870e+03 1.233485684480449e+03 1.235074504718779e+03 1.236659511364675e+03 - 1.238240703891664e+03 1.239818081779981e+03 1.241391644516571e+03 1.242961391595090e+03 1.244527322515903e+03 - 1.246089436786084e+03 1.247647733919417e+03 1.249202213436398e+03 1.250752874864230e+03 1.252299717736826e+03 - 1.253842741594810e+03 1.255381945985516e+03 1.256917330462986e+03 1.258448894587972e+03 1.259976637927938e+03 - 1.261500560057056e+03 1.263020660556207e+03 1.264536939012984e+03 1.266049395021687e+03 1.267558028183329e+03 - 1.269062838105629e+03 1.270563824403019e+03 1.272060986696640e+03 1.273554324614341e+03 1.275043837790682e+03 - 1.276529525866934e+03 1.278011388491075e+03 1.279489425317796e+03 1.280963636008494e+03 1.282434020231280e+03 - 1.283900577660971e+03 1.285363307979095e+03 1.286822210873891e+03 1.288277286040307e+03 1.289728533179999e+03 - 1.291175952001336e+03 1.292619542219393e+03 1.294059303555960e+03 1.295495235739530e+03 1.296927338505312e+03 - 1.298355611595221e+03 1.299780054757883e+03 1.301200667748633e+03 1.302617450329516e+03 1.304030402269289e+03 - 1.305439523343415e+03 1.306844813334069e+03 1.308246272030136e+03 1.309643899227210e+03 1.311037694727594e+03 - 1.312427658340302e+03 1.313813789881058e+03 1.315196089172293e+03 1.316574556043153e+03 1.317949190329488e+03 - 1.319319991873862e+03 1.320686960525546e+03 1.322050096140523e+03 1.323409398581483e+03 1.324764867717829e+03 - 1.326116503425671e+03 1.327464305587830e+03 1.328808274093838e+03 1.330148408839934e+03 1.331484709729068e+03 - 1.332817176670901e+03 1.334145809581802e+03 1.335470608384850e+03 1.336791573009835e+03 1.338108703393256e+03 - 1.339421999478320e+03 1.340731461214948e+03 1.342037088559766e+03 1.343338881476113e+03 1.344636839934036e+03 - 1.345930963910293e+03 1.347221253388351e+03 1.348507708358388e+03 1.349790328817288e+03 1.351069114768650e+03 - 1.352344066222779e+03 1.353615183196692e+03 1.354882465714113e+03 1.356145913805479e+03 1.357405527507935e+03 - 1.358661306865335e+03 1.359913251928245e+03 1.361161362753938e+03 1.362405639406399e+03 1.363646081956323e+03 - 1.364882690481112e+03 1.366115465064880e+03 1.367344405798451e+03 1.368569512779358e+03 1.369790786111843e+03 - 1.371008225906858e+03 1.372221832282067e+03 1.373431605361840e+03 1.374637545277261e+03 1.375839652166119e+03 - 1.377037926172918e+03 1.378232367448867e+03 1.379422976151887e+03 1.380609752446609e+03 1.381792696504374e+03 - 1.382971808503231e+03 1.384147088627939e+03 1.385318537069970e+03 1.386486154027501e+03 1.387649939705423e+03 - 1.388809894315333e+03 1.389966018075540e+03 1.391118311211063e+03 1.392266773953630e+03 1.393411406541678e+03 - 1.394552209220356e+03 1.395689182241520e+03 1.396822325863737e+03 1.397951640352285e+03 1.399077125979150e+03 - 1.400198783023028e+03 1.401316611769325e+03 1.402430612510158e+03 1.403540785544351e+03 1.404647131177441e+03 - 1.405749649721672e+03 1.406848341496000e+03 1.407943206826088e+03 1.409034246044311e+03 1.410121459489754e+03 - 1.411204847508209e+03 1.412284410452182e+03 1.413360148680885e+03 1.414432062560241e+03 1.415500152462884e+03 - 1.416564418768155e+03 1.417624861862108e+03 1.418681482137504e+03 1.419734279993815e+03 1.420783255837224e+03 - 1.421828410080621e+03 1.422869743143608e+03 1.423907255452495e+03 1.424940947440303e+03 1.425970819546763e+03 - 1.426996872218314e+03 1.428019105908108e+03 1.429037521076003e+03 1.430052118188569e+03 1.431062897719085e+03 - 1.432069860147540e+03 1.433073005960632e+03 1.434072335651771e+03 1.435067849721075e+03 1.436059548675370e+03 - 1.437047433028196e+03 1.438031503299800e+03 1.439011760017138e+03 1.439988203713878e+03 1.440960834930396e+03 - 1.441929654213780e+03 1.442894662117825e+03 1.443855859203037e+03 1.444813246036631e+03 1.445766823192535e+03 - 1.446716591251382e+03 1.447662550800518e+03 1.448604702433997e+03 1.449543046752585e+03 1.450477584363755e+03 - 1.451408315881691e+03 1.452335241927287e+03 1.453258363128147e+03 1.454177680118583e+03 1.455093193539620e+03 - 1.456004904038989e+03 1.456912812271134e+03 1.457816918897206e+03 1.458717224585068e+03 1.459613730009291e+03 - 1.460506435851157e+03 1.461395342798658e+03 1.462280451546494e+03 1.463161762796076e+03 1.464039277255525e+03 - 1.464912995639670e+03 1.465782918670054e+03 1.466649047074924e+03 1.467511381589240e+03 1.468369922954673e+03 - 1.469224671919600e+03 1.470075629239112e+03 1.470922795675006e+03 1.471766171995790e+03 1.472605758976684e+03 - 1.473441557399614e+03 1.474273568053219e+03 1.475101791732846e+03 1.475926229240551e+03 1.476746881385102e+03 - 1.477563748981976e+03 1.478376832853358e+03 1.479186133828146e+03 1.479991652741944e+03 1.480793390437068e+03 - 1.481591347762545e+03 1.482385525574108e+03 1.483175924734204e+03 1.483962546111986e+03 1.484745390583318e+03 - 1.485524459030776e+03 1.486299752343644e+03 1.487071271417914e+03 1.487839017156289e+03 1.488602990468185e+03 - 1.489363192269722e+03 1.490119623483735e+03 1.490872285039765e+03 1.491621177874064e+03 1.492366302929595e+03 - 1.493107661156030e+03 1.493845253509749e+03 1.494579080953843e+03 1.495309144458115e+03 1.496035444999074e+03 - 1.496757983559942e+03 1.497476761130647e+03 1.498191778707831e+03 1.498903037294843e+03 1.499610537901742e+03 - 1.500314281545298e+03 1.501014269248990e+03 1.501710502043006e+03 1.502402980964245e+03 1.503091707056315e+03 - 1.503776681369534e+03 1.504457904960931e+03 1.505135378894241e+03 1.505809104239914e+03 1.506479082075105e+03 - 1.507145313483682e+03 1.507807799556220e+03 1.508466541390007e+03 1.509121540089038e+03 1.509772796764020e+03 - 1.510420312532367e+03 1.511064088518205e+03 1.511704125852369e+03 1.512340425672404e+03 1.512972989122564e+03 - 1.513601817353814e+03 1.514226911523828e+03 1.514848272796989e+03 1.515465902344391e+03 1.516079801343838e+03 - 1.516689970979842e+03 1.517296412443626e+03 1.517899126933124e+03 1.518498115652977e+03 1.519093379814537e+03 - 1.519684920635866e+03 1.520272739341736e+03 1.520856837163628e+03 1.521437215339733e+03 1.522013875114953e+03 - 1.522586817740897e+03 1.523156044475887e+03 1.523721556584951e+03 1.524283355339831e+03 1.524841442018975e+03 - 1.525395817907543e+03 1.525946484297405e+03 1.526493442487138e+03 1.527036693782033e+03 1.527576239494086e+03 - 1.528112080942007e+03 1.528644219451213e+03 1.529172656353831e+03 1.529697392988700e+03 1.530218430701367e+03 - 1.530735770844087e+03 1.531249414775829e+03 1.531759363862268e+03 1.532265619475790e+03 1.532768182995492e+03 - 1.533267055807180e+03 1.533762239303368e+03 1.534253734883281e+03 1.534741543952856e+03 1.535225667924735e+03 - 1.535706108218275e+03 1.536182866259539e+03 1.536655943481301e+03 1.537125341323045e+03 1.537591061230964e+03 - 1.538053104657961e+03 1.538511473063650e+03 1.538966167914353e+03 1.539417190683102e+03 1.539864542849641e+03 - 1.540308225900420e+03 1.540748241328602e+03 1.541184590634058e+03 1.541617275323370e+03 1.542046296909827e+03 - 1.542471656913432e+03 1.542893356860894e+03 1.543311398285634e+03 1.543725782727782e+03 1.544136511734178e+03 - 1.544543586858370e+03 1.544947009660620e+03 1.545346781707894e+03 1.545742904573873e+03 1.546135379838945e+03 - 1.546524209090207e+03 1.546909393921469e+03 1.547290935933248e+03 1.547668836732771e+03 1.548043097933976e+03 - 1.548413721157510e+03 1.548780708030729e+03 1.549144060187701e+03 1.549503779269201e+03 1.549859866922715e+03 - 1.550212324802440e+03 1.550561154569281e+03 1.550906357890854e+03 1.551247936441483e+03 1.551585891902203e+03 - 1.551920225960758e+03 1.552250940311604e+03 1.552578036655905e+03 1.552901516701533e+03 1.553221382163073e+03 - 1.553537634761818e+03 1.553850276225772e+03 1.554159308289647e+03 1.554464732694865e+03 1.554766551189559e+03 - 1.555064765528572e+03 1.555359377473454e+03 1.555650388792468e+03 1.555937801260586e+03 1.556221616659488e+03 - 1.556501836777564e+03 1.556778463409917e+03 1.557051498358356e+03 1.557320943431401e+03 1.557586800444283e+03 - 1.557849071218940e+03 1.558107757584023e+03 1.558362861374890e+03 1.558614384433611e+03 1.558862328608964e+03 - 1.559106695756438e+03 1.559347487738230e+03 1.559584706423249e+03 1.559818353687112e+03 1.560048431412147e+03 - 1.560274941487391e+03 1.560497885808591e+03 1.560717266278204e+03 1.560933084805396e+03 1.561145343306044e+03 - 1.561354043702732e+03 1.561559187924758e+03 1.561760777908126e+03 1.561958815595552e+03 1.562153302936461e+03 - 1.562344241886987e+03 1.562531634409975e+03 1.562715482474979e+03 1.562895788058264e+03 1.563072553142803e+03 - 1.563245779718279e+03 1.563415469781085e+03 1.563581625334326e+03 1.563744248387813e+03 1.563903340958068e+03 - 1.564058905068325e+03 1.564210942748526e+03 1.564359456035321e+03 1.564504446972073e+03 1.564645917608853e+03 - 1.564783870002442e+03 1.564918306216331e+03 1.565049228320720e+03 1.565176638392519e+03 1.565300538515349e+03 - 1.565420930779540e+03 1.565537817282130e+03 1.565651200126870e+03 1.565761081424219e+03 1.565867463291344e+03 - 1.565970347852125e+03 1.566069737237150e+03 1.566165633583717e+03 1.566258039035835e+03 1.566346955744220e+03 - 1.566432385866300e+03 1.566514331566212e+03 1.566592795014803e+03 1.566667778389629e+03 1.566739283874957e+03 - 1.566807313661764e+03 1.566871869947734e+03 1.566932954937263e+03 1.566990570841457e+03 1.567044719878131e+03 - 1.567095404271811e+03 1.567142626253729e+03 1.567186388061831e+03 1.567226691940771e+03 1.567263540141913e+03 - 1.567296934923331e+03 1.567326878549808e+03 1.567353373292836e+03 1.567376421430620e+03 1.567396025248071e+03 - 1.567412187036812e+03 1.567424909095176e+03 1.567434193728203e+03 1.567440043247646e+03 1.567442459971967e+03 - 1.567441446226336e+03 1.567437004342634e+03 1.567429136659453e+03 1.567417845522091e+03 1.567403133282561e+03 - 1.567385002299581e+03 1.567363454938582e+03 1.567338493571702e+03 1.567310120577791e+03 1.567278338342408e+03 - 1.567243149257822e+03 1.567204555723011e+03 1.567162560143663e+03 1.567117164932177e+03 1.567068372507660e+03 - 1.567016185295929e+03 1.566960605729512e+03 1.566901636247646e+03 1.566839279296277e+03 1.566773537328063e+03 - 1.566704412802369e+03 1.566631908185271e+03 1.566556025949555e+03 1.566476768574717e+03 1.566394138546961e+03 - 1.566308138359204e+03 1.566218770511069e+03 1.566126037508891e+03 1.566029941865714e+03 1.565930486101294e+03 - 1.565827672742092e+03 1.565721504321283e+03 1.565611983378751e+03 1.565499112461087e+03 1.565382894121595e+03 - 1.565263330920288e+03 1.565140425423888e+03 1.565014180205826e+03 1.564884597846246e+03 1.564751680931997e+03 - 1.564615432056643e+03 1.564475853820452e+03 1.564332948830408e+03 1.564186719700199e+03 1.564037169050227e+03 - 1.563884299507601e+03 1.563728113706142e+03 1.563568614286379e+03 1.563405803895550e+03 1.563239685187607e+03 - 1.563070260823207e+03 1.562897533469719e+03 1.562721505801220e+03 1.562542180498501e+03 1.562359560249057e+03 - 1.562173647747097e+03 1.561984445693539e+03 1.561791956796009e+03 1.561596183768845e+03 1.561397129333092e+03 - 1.561194796216507e+03 1.560989187153558e+03 1.560780304885418e+03 1.560568152159974e+03 1.560352731731822e+03 - 1.560134046362267e+03 1.559912098819323e+03 1.559686891877715e+03 1.559458428318879e+03 1.559226710930956e+03 - 1.558991742508803e+03 1.558753525853981e+03 1.558512063774766e+03 1.558267359086140e+03 1.558019414609795e+03 - 1.557768233174136e+03 1.557513817614273e+03 1.557256170772030e+03 1.556995295495938e+03 1.556731194641239e+03 - 1.556463871069885e+03 1.556193327650536e+03 1.555919567258564e+03 1.555642592776049e+03 1.555362407091783e+03 - 1.555079013101264e+03 1.554792413706704e+03 1.554502611817021e+03 1.554209610347846e+03 1.553913412221517e+03 - 1.553614020367084e+03 1.553311437720305e+03 1.553005667223649e+03 1.552696711826295e+03 1.552384574484129e+03 - 1.552069258159750e+03 1.551750765822466e+03 1.551429100448294e+03 1.551104265019960e+03 1.550776262526902e+03 - 1.550445095965265e+03 1.550110768337907e+03 1.549773282654394e+03 1.549432641931000e+03 1.549088849190713e+03 - 1.548741907463227e+03 1.548391819784946e+03 1.548038589198987e+03 1.547682218755173e+03 1.547322711510039e+03 - 1.546960070526829e+03 1.546594298875496e+03 1.546225399632705e+03 1.545853375881829e+03 1.545478230712950e+03 - 1.545099967222861e+03 1.544718588515066e+03 1.544334097699777e+03 1.543946497893915e+03 1.543555792221112e+03 - 1.543161983811711e+03 1.542765075802762e+03 1.542365071338026e+03 1.541961973567975e+03 1.541555785649789e+03 - 1.541146510747358e+03 1.540734152031283e+03 1.540318712678874e+03 1.539900195874149e+03 1.539478604807839e+03 - 1.539053942677383e+03 1.538626212686929e+03 1.538195418047336e+03 1.537761561976173e+03 1.537324647697717e+03 - 1.536884678442957e+03 1.536441657449592e+03 1.535995587962026e+03 1.535546473231378e+03 1.535094316515475e+03 - 1.534639121078853e+03 1.534180890192759e+03 1.533719627135150e+03 1.533255335190690e+03 1.532788017650757e+03 - 1.532317677813435e+03 1.531844318983518e+03 1.531367944472514e+03 1.530888557598635e+03 1.530406161686807e+03 - 1.529920760068664e+03 1.529432356082550e+03 1.528940953073517e+03 1.528446554393331e+03 1.527949163400464e+03 - 1.527448783460099e+03 1.526945417944129e+03 1.526439070231157e+03 1.525929743706494e+03 1.525417441762163e+03 - 1.524902167796895e+03 1.524383925216131e+03 1.523862717432025e+03 1.523338547863434e+03 1.522811419935932e+03 - 1.522281337081799e+03 1.521748302740024e+03 1.521212320356308e+03 1.520673393383061e+03 1.520131525279401e+03 - 1.519586719511159e+03 1.519038979550873e+03 1.518488308877793e+03 1.517934710977876e+03 1.517378189343791e+03 - 1.516818747474916e+03 1.516256388877339e+03 1.515691117063858e+03 1.515122935553979e+03 1.514551847873920e+03 - 1.513977857556607e+03 1.513400968141679e+03 1.512821183175479e+03 1.512238506211065e+03 1.511652940808203e+03 - 1.511064490533368e+03 1.510473158959745e+03 1.509878949667230e+03 1.509281866242427e+03 1.508681912278651e+03 - 1.508079091375926e+03 1.507473407140987e+03 1.506864863187277e+03 1.506253463134950e+03 1.505639210610869e+03 - 1.505022109248608e+03 1.504402162688449e+03 1.503779374577385e+03 1.503153748569118e+03 1.502525288324061e+03 - 1.501893997509335e+03 1.501259879798773e+03 1.500622938872914e+03 1.499983178419011e+03 1.499340602131025e+03 - 1.498695213709626e+03 1.498047016862194e+03 1.497396015302820e+03 1.496742212752304e+03 1.496085612938155e+03 - 1.495426219594593e+03 1.494764036462547e+03 1.494099067289655e+03 1.493431315830267e+03 1.492760785845442e+03 - 1.492087481102946e+03 1.491411405377259e+03 1.490732562449567e+03 1.490050956107769e+03 1.489366590146471e+03 - 1.488679468366991e+03 1.487989594577355e+03 1.487296972592300e+03 1.486601606233272e+03 1.485903499328426e+03 - 1.485202655712629e+03 1.484499079227457e+03 1.483792773721193e+03 1.483083743048834e+03 1.482371991072084e+03 - 1.481657521659358e+03 1.480940338685780e+03 1.480220446033183e+03 1.479497847590113e+03 1.478772547251821e+03 - 1.478044548920272e+03 1.477313856504138e+03 1.476580473918802e+03 1.475844405086357e+03 1.475105653935605e+03 - 1.474364224402058e+03 1.473620120427938e+03 1.472873345962177e+03 1.472123904960415e+03 1.471371801385004e+03 - 1.470617039205005e+03 1.469859622396187e+03 1.469099554941032e+03 1.468336840828730e+03 1.467571484055180e+03 - 1.466803488622991e+03 1.466032858541484e+03 1.465259597826687e+03 1.464483710501340e+03 1.463705200594890e+03 - 1.462924072143496e+03 1.462140329190026e+03 1.461353975784058e+03 1.460565015981880e+03 1.459773453846489e+03 - 1.458979293447591e+03 1.458182538861605e+03 1.457383194171656e+03 1.456581263467582e+03 1.455776750845927e+03 - 1.454969660409948e+03 1.454159996269611e+03 1.453347762541590e+03 1.452532963349272e+03 1.451715602822750e+03 - 1.450895685098830e+03 1.450073214321026e+03 1.449248194639563e+03 1.448420630211373e+03 1.447590525200101e+03 - 1.446757883776100e+03 1.445922710116434e+03 1.445085008404874e+03 1.444244782831905e+03 1.443402037594718e+03 - 1.442556776897215e+03 1.441709004950008e+03 1.440858725970420e+03 1.440005944182481e+03 1.439150663816933e+03 - 1.438292889111226e+03 1.437432624309523e+03 1.436569873662692e+03 1.435704641428314e+03 1.434836931870678e+03 - 1.433966749260786e+03 1.433094097876346e+03 1.432218982001777e+03 1.431341405928208e+03 1.430461373953479e+03 - 1.429578890382137e+03 1.428693959525441e+03 1.427806585701360e+03 1.426916773234569e+03 1.426024526456458e+03 - 1.425129849705122e+03 1.424232747325370e+03 1.423333223668719e+03 1.422431283093393e+03 1.421526929964331e+03 - 1.420620168653178e+03 1.419711003538289e+03 1.418799439004731e+03 1.417885479444278e+03 1.416969129255415e+03 - 1.416050392843337e+03 1.415129274619950e+03 1.414205779003866e+03 1.413279910420411e+03 1.412351673301618e+03 - 1.411421072086230e+03 1.410488111219700e+03 1.409552795154193e+03 1.408615128348581e+03 1.407675115268446e+03 - 1.406732760386080e+03 1.405788068180486e+03 1.404841043137375e+03 1.403891689749170e+03 1.402940012515001e+03 - 1.401986015940709e+03 1.401029704538846e+03 1.400071082828672e+03 1.399110155336157e+03 1.398146926593981e+03 - 1.397181401141535e+03 1.396213583524918e+03 1.395243478296938e+03 1.394271090017116e+03 1.393296423251680e+03 - 1.392319482573570e+03 1.391340272562432e+03 1.390358797804626e+03 1.389375062893219e+03 1.388389072427989e+03 - 1.387400831015423e+03 1.386410343268718e+03 1.385417613807782e+03 1.384422647259231e+03 1.383425448256391e+03 - 1.382426021439299e+03 1.381424371454700e+03 1.380420502956051e+03 1.379414420603515e+03 1.378406129063970e+03 - 1.377395633010999e+03 1.376382937124898e+03 1.375368046092671e+03 1.374350964608031e+03 1.373331697371403e+03 - 1.372310249089921e+03 1.371286624477428e+03 1.370260828254477e+03 1.369232865148331e+03 1.368202739892964e+03 - 1.367170457229056e+03 1.366136021904002e+03 1.365099438671902e+03 1.364060712293568e+03 1.363019847536522e+03 - 1.361976849174995e+03 1.360931721989928e+03 1.359884470768972e+03 1.358835100306487e+03 1.357783615403544e+03 - 1.356730020867921e+03 1.355674321514110e+03 1.354616522163310e+03 1.353556627643430e+03 1.352494642789090e+03 - 1.351430572441617e+03 1.350364421449050e+03 1.349296194666138e+03 1.348225896954338e+03 1.347153533181818e+03 - 1.346079108223457e+03 1.345002626960841e+03 1.343924094282267e+03 1.342843515082743e+03 1.341760894263984e+03 - 1.340676236734416e+03 1.339589547409177e+03 1.338500831210112e+03 1.337410093065776e+03 1.336317337911434e+03 - 1.335222570689062e+03 1.334125796347346e+03 1.333027019841677e+03 1.331926246134163e+03 1.330823480193616e+03 - 1.329718726995561e+03 1.328611991522230e+03 1.327503278762568e+03 1.326392593712228e+03 1.325279941373571e+03 - 1.324165326755672e+03 1.323048754874311e+03 1.321930230751983e+03 1.320809759417887e+03 1.319687345907936e+03 - 1.318562995264752e+03 1.317436712537665e+03 1.316308502782716e+03 1.315178371062656e+03 1.314046322446946e+03 - 1.312912362011755e+03 1.311776494839963e+03 1.310638726021160e+03 1.309499060651645e+03 1.308357503834428e+03 - 1.307214060679228e+03 1.306068736302473e+03 1.304921535827301e+03 1.303772464383560e+03 1.302621527107810e+03 - 1.301468729143317e+03 1.300314075640058e+03 1.299157571754721e+03 1.297999222650704e+03 1.296839033498112e+03 - 1.295677009473761e+03 1.294513155761180e+03 1.293347477550602e+03 1.292179980038974e+03 1.291010668429951e+03 - 1.289839547933899e+03 1.288666623767893e+03 1.287491901155716e+03 1.286315385327865e+03 1.285137081521542e+03 - 1.283956994980662e+03 1.282775130955849e+03 1.281591494704436e+03 1.280406091490466e+03 1.279218926584693e+03 - 1.278030005264579e+03 1.276839332814297e+03 1.275646914524728e+03 1.274452755693465e+03 1.273256861624810e+03 - 1.272059237629775e+03 1.270859889026079e+03 1.269658821138155e+03 1.268456039297144e+03 1.267251548840895e+03 - 1.266045355113969e+03 1.264837463467636e+03 1.263627879259876e+03 1.262416607855379e+03 1.261203654625543e+03 - 1.259989024948479e+03 1.258772724209004e+03 1.257554757798647e+03 1.256335131115646e+03 1.255113849564950e+03 - 1.253890918558217e+03 1.252666343513813e+03 1.251440129856817e+03 1.250212283019015e+03 1.248982808438904e+03 - 1.247751711561691e+03 1.246518997839292e+03 1.245284672730334e+03 1.244048741700151e+03 1.242811210220790e+03 - 1.241572083771006e+03 1.240331367836264e+03 1.239089067908740e+03 1.237845189487317e+03 1.236599738077590e+03 - 1.235352719191863e+03 1.234104138349150e+03 1.232854001075175e+03 1.231602312902370e+03 1.230349079369880e+03 - 1.229094306023557e+03 1.227837998415964e+03 1.226580162106373e+03 1.225320802660766e+03 1.224059925651835e+03 - 1.222797536658982e+03 1.221533641268318e+03 1.220268245072664e+03 1.219001353671552e+03 1.217732972671222e+03 - 1.216463107684624e+03 1.215191764331420e+03 1.213918948237977e+03 1.212644665037377e+03 1.211368920369408e+03 - 1.210091719880570e+03 1.208813069224072e+03 1.207532974059833e+03 1.206251440054480e+03 1.204968472881353e+03 - 1.203684078220499e+03 1.202398261758676e+03 1.201111029189351e+03 1.199822386212701e+03 1.198532338535615e+03 - 1.197240891871687e+03 1.195948051941225e+03 1.194653824471246e+03 1.193358215195474e+03 1.192061229854346e+03 - 1.190762874195007e+03 1.189463153971313e+03 1.188162074943828e+03 1.186859642879827e+03 1.185555863553295e+03 - 1.184250742744927e+03 1.182944286242125e+03 1.181636499839004e+03 1.180327389336388e+03 1.179016960541809e+03 - 1.177705219269511e+03 1.176392171340446e+03 1.175077822582277e+03 1.173762178829377e+03 1.172445245922827e+03 - 1.171127029710419e+03 1.169807536046655e+03 1.168486770792745e+03 1.167164739816612e+03 1.165841448992886e+03 - 1.164516904202907e+03 1.163191111334726e+03 1.161864076283103e+03 1.160535804949508e+03 1.159206303242120e+03 - 1.157875577075829e+03 1.156543632372233e+03 1.155210475059642e+03 1.153876111073074e+03 1.152540546354257e+03 - 1.151203786851631e+03 1.149865838520342e+03 1.148526707322247e+03 1.147186399225916e+03 1.145844920206624e+03 - 1.144502276246358e+03 1.143158473333815e+03 1.141813517464402e+03 1.140467414640234e+03 1.139120170870139e+03 - 1.137771792169650e+03 1.136422284561014e+03 1.135071654073185e+03 1.133719906741829e+03 1.132367048609320e+03 - 1.131013085724743e+03 1.129658024143891e+03 1.128301869929270e+03 1.126944629150092e+03 1.125586307882280e+03 - 1.124226912208469e+03 1.122866448218001e+03 1.121504922006928e+03 1.120142339678013e+03 1.118778707340729e+03 - 1.117414031111256e+03 1.116048317112488e+03 1.114681571474025e+03 1.113313800332179e+03 1.111945009829970e+03 - 1.110575206117129e+03 1.109204395350097e+03 1.107832583692024e+03 1.106459777312770e+03 1.105085982388904e+03 - 1.103711205103706e+03 1.102335451647166e+03 1.100958728215983e+03 1.099581041013564e+03 1.098202396250028e+03 - 1.096822800142205e+03 1.095442258913632e+03 1.094060778794555e+03 1.092678366021934e+03 1.091295026839436e+03 - 1.089910767497437e+03 1.088525594253023e+03 1.087139513369993e+03 1.085752531118851e+03 1.084364653776815e+03 - 1.082975887627809e+03 1.081586238962469e+03 1.080195714078142e+03 1.078804319278880e+03 1.077412060875450e+03 - 1.076018945185327e+03 1.074624978532693e+03 1.073230167248444e+03 1.071834517670182e+03 1.070438036142223e+03 - 1.069040729015589e+03 1.067642602648012e+03 1.066243663403937e+03 1.064843917654515e+03 1.063443371777609e+03 - 1.062042032157791e+03 1.060639905186343e+03 1.059236997261256e+03 1.057833314787232e+03 1.056428864175682e+03 - 1.055023651844726e+03 1.053617684219196e+03 1.052210967730631e+03 1.050803508817282e+03 1.049395313897890e+03 - 1.047986388534756e+03 1.046576737255851e+03 1.045166364529164e+03 1.043755274824231e+03 1.042343472612131e+03 - 1.040930962365484e+03 1.039517748558457e+03 1.038103835666756e+03 1.036689228167636e+03 1.035273930539893e+03 - 1.033857947263865e+03 1.032441282821436e+03 1.031023941696033e+03 1.029605928372625e+03 1.028187247337727e+03 - 1.026767903079397e+03 1.025347900087235e+03 1.023927242852386e+03 1.022505935867538e+03 1.021083983626923e+03 - 1.019661390626317e+03 1.018238161363038e+03 1.016814300335948e+03 1.015389812045455e+03 1.013964700993507e+03 - 1.012538971683598e+03 1.011112628620765e+03 1.009685676311588e+03 1.008258119264191e+03 1.006829961988242e+03 - 1.005401208994952e+03 1.003971864797076e+03 1.002541933908912e+03 1.001111420846301e+03 9.996803301266303e+02 - 9.982486662688275e+02 9.968164337933661e+02 9.953836372222621e+02 9.939502810790750e+02 9.925163698889086e+02 - 9.910819081784098e+02 9.896469004757686e+02 9.882113513107199e+02 9.867752652145410e+02 9.853386467200531e+02 - 9.839015003616214e+02 9.824638306751541e+02 9.810256421981031e+02 9.795869394694643e+02 9.781477270297768e+02 - 9.767080094211232e+02 9.752677911871300e+02 9.738270768729670e+02 9.723858710253478e+02 9.709441781925295e+02 - 9.695020029243127e+02 9.680593497720415e+02 9.666162232886040e+02 9.651726280284314e+02 9.637285685474986e+02 - 9.622840494033246e+02 9.608390751549712e+02 9.593936503630440e+02 9.579477795896925e+02 9.565014673986094e+02 - 9.550547183550314e+02 9.536075370257383e+02 9.521599279790540e+02 9.507118957848456e+02 9.492634450145238e+02 - 9.478145802410424e+02 9.463653060389005e+02 9.449156269841388e+02 9.434655476543426e+02 9.420150726286407e+02 - 9.405642064877048e+02 9.391129538137513e+02 9.376613191905399e+02 9.362093072033728e+02 9.347569224390970e+02 - 9.333041694861028e+02 9.318510529343232e+02 9.303975773752362e+02 9.289437474018629e+02 9.274895676087672e+02 - 9.260350425920570e+02 9.245801769493847e+02 9.231249752799448e+02 9.216694421844763e+02 9.202135822652619e+02 - 9.187574001261273e+02 9.173009003724419e+02 9.158440876111187e+02 9.143869664506148e+02 9.129295415009306e+02 - 9.114718173736089e+02 9.100137986817383e+02 9.085554900399494e+02 9.070968960644165e+02 9.056380213728581e+02 - 9.041788705845360e+02 9.027194483202552e+02 9.012597592023648e+02 8.997998078547574e+02 8.983395989028686e+02 - 8.968791369736786e+02 8.954184266957105e+02 8.939574726990309e+02 8.924962796152502e+02 8.910348520775226e+02 - 8.895731947205452e+02 8.881113121805595e+02 8.866492090953504e+02 8.851868901042455e+02 8.837243598481174e+02 - 8.822616229693809e+02 8.807986841119955e+02 8.793355479214636e+02 8.778722190448314e+02 8.764087021306887e+02 - 8.749450018291686e+02 8.734811227919481e+02 8.720170696722481e+02 8.705528471248323e+02 8.690884598060085e+02 - 8.676239123736278e+02 8.661592094870851e+02 8.646943558073189e+02 8.632293559968109e+02 8.617642147195870e+02 - 8.602989366412162e+02 8.588335264288111e+02 8.573679887510280e+02 8.559023282780669e+02 8.544365496816713e+02 - 8.529706576351281e+02 8.515046568132680e+02 8.500385518924651e+02 8.485723475506371e+02 8.471060484672456e+02 - 8.456396593232956e+02 8.441731848013352e+02 8.427066295854568e+02 8.412399983612960e+02 8.397732958160319e+02 - 8.383065266383875e+02 8.368396955186294e+02 8.353728071485672e+02 8.339058662215547e+02 8.324388774324890e+02 - 8.309718454778108e+02 8.295047750555044e+02 8.280376708650979e+02 8.265705376076626e+02 8.251033799858133e+02 - 8.236362027037090e+02 8.221690104670519e+02 8.207018079830875e+02 8.192345999606056e+02 8.177673911099388e+02 - 8.163001861429635e+02 8.148329897731001e+02 8.133658067153123e+02 8.118986416861073e+02 8.104314994035359e+02 - 8.089643845871925e+02 8.074973019582153e+02 8.060302562392853e+02 8.045632521546285e+02 8.030962944300132e+02 - 8.016293877927517e+02 8.001625369717000e+02 7.986957466972576e+02 7.972290217013673e+02 7.957623667175162e+02 - 7.942957864807344e+02 7.928292857275953e+02 7.913628691962167e+02 7.898965416262595e+02 7.884303077589279e+02 - 7.869641723369706e+02 7.854981401046790e+02 7.840322158078881e+02 7.825664041939773e+02 7.811007100118686e+02 - 7.796351380120283e+02 7.781696929464658e+02 7.767043795687346e+02 7.752392026339312e+02 7.737741668986956e+02 - 7.723092771212124e+02 7.708445380612087e+02 7.693799544799557e+02 7.679155311402681e+02 7.664512728065041e+02 - 7.649871842445651e+02 7.635232702218972e+02 7.620595355074889e+02 7.605959848718730e+02 7.591326230871256e+02 - 7.576694549268664e+02 7.562064851662584e+02 7.547437185820088e+02 7.532811599523681e+02 7.518188140571300e+02 - 7.503566856776325e+02 7.488947795967565e+02 7.474331005989271e+02 7.459716534701122e+02 7.445104429978242e+02 - 7.430494739711182e+02 7.415887511805935e+02 7.401282794183929e+02 7.386680634782024e+02 7.372081081552518e+02 - 7.357484182463149e+02 7.342889985497084e+02 7.328298538652926e+02 7.313709889944722e+02 7.299124087401947e+02 - 7.284541179069513e+02 7.269961213007771e+02 7.255384237292504e+02 7.240810300014931e+02 7.226239449281712e+02 - 7.211671733214938e+02 7.197107199952134e+02 7.182545897646269e+02 7.167987874465738e+02 7.153433178594373e+02 - 7.138881858231457e+02 7.124333961591685e+02 7.109789536905207e+02 7.095248632417597e+02 7.080711296389870e+02 - 7.066177577098478e+02 7.051647522835304e+02 7.037121181907675e+02 7.022598602638342e+02 7.008079833365500e+02 - 6.993564922442782e+02 6.979053918239249e+02 6.964546869139400e+02 6.950043823543177e+02 6.935544829865950e+02 - 6.921049936538523e+02 6.906559192007142e+02 6.892072644733491e+02 6.877590343194680e+02 6.863112335883264e+02 - 6.848638671307228e+02 6.834169397989994e+02 6.819704564470420e+02 6.805244219302806e+02 6.790788411056876e+02 - 6.776337188317796e+02 6.761890599686175e+02 6.747448693778041e+02 6.733011519224871e+02 6.718579124673579e+02 - 6.704151558786504e+02 6.689728870241429e+02 6.675311107731571e+02 6.660898319965579e+02 6.646490555667547e+02 - 6.632087863576994e+02 6.617690292448882e+02 6.603297891053608e+02 6.588910708177000e+02 6.574528792620325e+02 - 6.560152193200289e+02 6.545780958749028e+02 6.531415138114120e+02 6.517054780158572e+02 6.502699933760831e+02 - 6.488350647814780e+02 6.474006971229736e+02 6.459668952930450e+02 6.445336641857116e+02 6.431010086965356e+02 - 6.416689337226230e+02 6.402374441626239e+02 6.388065449167315e+02 6.373762408866819e+02 6.359465369757564e+02 - 6.345174380887786e+02 6.330889491321157e+02 6.316610750136796e+02 6.302338206429247e+02 6.288071909308491e+02 - 6.273811907899951e+02 6.259558251344477e+02 6.245310988798360e+02 6.231070169433332e+02 6.216835842436550e+02 - 6.202608057010611e+02 6.188386862373554e+02 6.174172307758844e+02 6.159964442415383e+02 6.145763315607522e+02 - 6.131568976615030e+02 6.117381474733122e+02 6.103200859272448e+02 6.089027179559087e+02 6.074860484934565e+02 - 6.060700824755835e+02 6.046548248395288e+02 6.032402805240755e+02 6.018264544695495e+02 6.004133516178208e+02 - 5.990009769123031e+02 5.975893352979532e+02 5.961784317212720e+02 5.947682711303036e+02 5.933588584746357e+02 - 5.919501987053994e+02 5.905422967752705e+02 5.891351576384668e+02 5.877287862507508e+02 5.863231875694282e+02 - 5.849183665533477e+02 5.835143281629030e+02 5.821110773600302e+02 5.807086191082091e+02 5.793069583724634e+02 - 5.779061001193606e+02 5.765060493170109e+02 5.751068109350690e+02 5.737083899447330e+02 5.723107913187440e+02 - 5.709140200313871e+02 5.695180810584912e+02 5.681229793774282e+02 5.667287199671144e+02 5.653353078080089e+02 - 5.639427478821145e+02 5.625510451729782e+02 5.611602046656897e+02 5.597702313468828e+02 5.583811302047351e+02 - 5.569929062289672e+02 5.556055644108436e+02 5.542191097431725e+02 5.528335472203050e+02 5.514488818381369e+02 - 5.500651185941068e+02 5.486822624871968e+02 5.473003185179330e+02 5.459192916883851e+02 5.445391870021655e+02 - 5.431600094644319e+02 5.417817640818839e+02 5.404044558627653e+02 5.390280898168637e+02 5.376526709555103e+02 - 5.362782042915790e+02 5.349046948394886e+02 5.335321476152006e+02 5.321605676362202e+02 5.307899599215965e+02 - 5.294203294919217e+02 5.280516813693320e+02 5.266840205775071e+02 5.253173521416702e+02 5.239516810885877e+02 - 5.225870124465707e+02 5.212233512454725e+02 5.198607025166908e+02 5.184990712931668e+02 5.171384626093851e+02 - 5.157788815013741e+02 5.144203330067055e+02 5.130628221644946e+02 5.117063540154008e+02 5.103509336016263e+02 - 5.089965659669175e+02 5.076432561565640e+02 5.062910092173990e+02 5.049398301977998e+02 5.035897241476866e+02 - 5.022406961185235e+02 5.008927511633182e+02 4.995458943366220e+02 4.982001306945292e+02 4.968554652946787e+02 - 4.955119031962524e+02 4.941694494599757e+02 4.928281091481178e+02 4.914878873244913e+02 4.901487890544524e+02 - 4.888108194049014e+02 4.874739834442815e+02 4.861382862425793e+02 4.848037328713260e+02 4.834703284035954e+02 - 4.821380779140055e+02 4.808069864787175e+02 4.794770591754360e+02 4.781483010834104e+02 4.768207172834317e+02 - 4.754943128578365e+02 4.741690928905032e+02 4.728450624668552e+02 4.715222266738587e+02 4.702005906000235e+02 - 4.688801593354034e+02 4.675609379715956e+02 4.662429316017405e+02 4.649261453205227e+02 4.636105842241698e+02 - 4.622962534104534e+02 4.609831579786886e+02 4.596713030297340e+02 4.583606936659914e+02 4.570513349914071e+02 - 4.557432321114703e+02 4.544363901332138e+02 4.531308141652141e+02 4.518265093175915e+02 4.505234807020092e+02 - 4.492217334316751e+02 4.479212726213398e+02 4.466221033872973e+02 4.453242308473862e+02 4.440276601209875e+02 - 4.427323963290266e+02 4.414384445939725e+02 4.401458100398370e+02 4.388544977921764e+02 4.375645129780900e+02 - 4.362758607262207e+02 4.349885461667554e+02 4.337025744314242e+02 4.324179506535007e+02 4.311346799678025e+02 - 4.298527675106906e+02 4.285722184200691e+02 4.272930378353866e+02 4.260152308976346e+02 4.247388027493482e+02 - 4.234637585346064e+02 4.221901033990317e+02 4.209178424897899e+02 4.196469809555908e+02 4.183775239466873e+02 - 4.171094766148764e+02 4.158428441134982e+02 4.145776315974367e+02 4.133138442231195e+02 4.120514871485177e+02 - 4.107905655331455e+02 4.095310845380616e+02 4.082730493258674e+02 4.070164650607085e+02 4.057613369082738e+02 - 4.045076700357962e+02 4.032554696120511e+02 4.020047408073589e+02 4.007554887935824e+02 3.995077187441286e+02 - 3.982614358339480e+02 3.970166452395346e+02 3.957733521389259e+02 3.945315617117033e+02 3.932912791389912e+02 - 3.920525096034583e+02 3.908152582893162e+02 3.895795303823206e+02 3.883453310697706e+02 3.871126655405087e+02 - 3.858815389849212e+02 3.846519565949380e+02 3.834239235640323e+02 3.821974450872211e+02 3.809725263610652e+02 - 3.797491725836686e+02 3.785273889546788e+02 3.773071806752873e+02 3.760885529482291e+02 3.748715109777822e+02 - 3.736560599697692e+02 3.724422051315553e+02 3.712299516720498e+02 3.700193048017055e+02 3.688102697325187e+02 - 3.676028516780295e+02 3.663970558533210e+02 3.651928874750207e+02 3.639903517612993e+02 3.627894539318706e+02 - 3.615901992079928e+02 3.603925928124674e+02 3.591966399696389e+02 3.580023459053963e+02 3.568097158471716e+02 - 3.556187550239405e+02 3.544294686662223e+02 3.532418620060801e+02 3.520559402771199e+02 3.508717087144923e+02 - 3.496891725548904e+02 3.485083370365518e+02 3.473292073992571e+02 3.461517888843309e+02 3.449760867346407e+02 - 3.438021061945983e+02 3.426298525101589e+02 3.414593309288210e+02 3.402905466996269e+02 3.391235050731623e+02 - 3.379582113015570e+02 3.367946706384836e+02 3.356328883391590e+02 3.344728696603431e+02 3.333146198603399e+02 - 3.321581441989965e+02 3.310034479377038e+02 3.298505363393963e+02 3.286994146685523e+02 3.275500881911931e+02 - 3.264025621748842e+02 3.252568418887342e+02 3.241129326033955e+02 3.229708395910641e+02 3.218305681254797e+02 - 3.206921234819250e+02 3.195555109372272e+02 3.184207357697562e+02 3.172878032594259e+02 3.161567186876940e+02 - 3.150274873375612e+02 3.139001144935722e+02 3.127746054418153e+02 3.116509654699221e+02 3.105291998670680e+02 - 3.094093139239718e+02 3.082913129328962e+02 3.071752021876472e+02 3.060609869835743e+02 3.049486726175709e+02 - 3.038382643880739e+02 3.027297675950632e+02 3.016231875400634e+02 3.005185295261418e+02 2.994157988579094e+02 - 2.983150008415209e+02 2.972161407846750e+02 2.961192239966130e+02 2.950242557881208e+02 2.939312414715272e+02 - 2.928401863607048e+02 2.917510957710699e+02 2.906639750195822e+02 2.895788294247451e+02 2.884956643066055e+02 - 2.874144849867538e+02 2.863352967883243e+02 2.852581050359946e+02 2.841829150559857e+02 2.831097321760628e+02 - 2.820385617255341e+02 2.809694090352515e+02 2.799022794376108e+02 2.788371782665511e+02 2.777741108575549e+02 - 2.767130825476488e+02 2.756540986754025e+02 2.745971645809293e+02 2.735422856058867e+02 2.724894670934750e+02 - 2.714387143884384e+02 2.703900328370648e+02 2.693434277871856e+02 2.682989045881756e+02 2.672564685909533e+02 - 2.662161251479810e+02 2.651778796132642e+02 2.641417373423522e+02 2.631077036923379e+02 2.620757840218578e+02 - 2.610459836910915e+02 2.600183080617631e+02 2.589927624971394e+02 2.579693523620314e+02 2.569480830227931e+02 - 2.559289598473227e+02 2.549119882050614e+02 2.538971734669946e+02 2.528845210056507e+02 2.518740361951020e+02 - 2.508657244109642e+02 2.498595910303967e+02 2.488556414321026e+02 2.478538809963281e+02 2.468543151048638e+02 - 2.458569491410431e+02 2.448617884897432e+02 2.438688385373852e+02 2.428781046719333e+02 2.418895922828956e+02 - 2.409033067613238e+02 2.399192534998131e+02 2.389374378925019e+02 2.379578653350729e+02 2.369805412247519e+02 - 2.360054709603084e+02 2.350326599420553e+02 2.340621135718494e+02 2.330938372530911e+02 2.321278363907239e+02 - 2.311641163912353e+02 2.302026826626565e+02 2.292435406145617e+02 2.282866956580692e+02 2.273321532058407e+02 - 2.263799186720815e+02 2.254299974725404e+02 2.244823950245099e+02 2.235371167468261e+02 2.225941680598685e+02 - 2.216535543855603e+02 2.207152811473682e+02 2.197793537703028e+02 2.188457776809178e+02 2.179145583073106e+02 - 2.169857010791227e+02 2.160592114275385e+02 2.151350947852860e+02 2.142133565866376e+02 2.132940022674083e+02 - 2.123770372649571e+02 2.114624670181867e+02 2.105502969675431e+02 2.096405325550162e+02 2.087331792241393e+02 - 2.078282424199890e+02 2.069257275891860e+02 2.060256401798943e+02 2.051279856418216e+02 2.042327694262190e+02 - 2.033399969858813e+02 2.024496737751469e+02 2.015618052498977e+02 2.006763968675590e+02 1.997934540871004e+02 - 1.989129823690343e+02 1.980349871754169e+02 1.971594739698481e+02 1.962864482174713e+02 1.954159153849736e+02 - 1.945478809405854e+02 1.936823503540812e+02 1.928193290967781e+02 1.919588226415381e+02 1.911008364627658e+02 - 1.902453760364096e+02 1.893924468399617e+02 1.885420543524577e+02 1.876942040544768e+02 1.868489014281417e+02 - 1.860061519571189e+02 1.851659611266184e+02 1.843283344233937e+02 1.834932773357418e+02 1.826607953535034e+02 - 1.818308939680629e+02 1.810035786723481e+02 1.801788549608304e+02 1.793567283295249e+02 1.785372042759901e+02 - 1.777202882993282e+02 1.769059859001850e+02 1.760943025807497e+02 1.752852438447554e+02 1.744788151974785e+02 - 1.736750221457390e+02 1.728738701979007e+02 1.720753648638706e+02 1.712795116550998e+02 1.704863160845825e+02 - 1.696957836668566e+02 1.689079199180039e+02 1.681227303556493e+02 1.673402204989617e+02 1.665603958686532e+02 - 1.657832619869799e+02 1.650088243777409e+02 1.642370885662795e+02 1.634680600794823e+02 1.627017444457793e+02 - 1.619381471951445e+02 1.611772738590951e+02 1.604191299706921e+02 1.596637210645399e+02 1.589110526767867e+02 - 1.581611303451241e+02 1.574139596087874e+02 1.566695460085554e+02 1.559278950867503e+02 1.551890123872385e+02 - 1.544529034554292e+02 1.537195738382757e+02 1.529890290842748e+02 1.522612747434666e+02 1.515363163674351e+02 - 1.508141595093076e+02 1.500948097237555e+02 1.493782725669932e+02 1.486645535967789e+02 1.479536583724143e+02 - 1.472455924547449e+02 1.465403614061596e+02 1.458379707905909e+02 1.451384261735148e+02 1.444417331219514e+02 - 1.437478972044633e+02 1.430569239911578e+02 1.423688190536853e+02 1.416835879652396e+02 1.410012363005585e+02 - 1.403217696359229e+02 1.396451935491577e+02 1.389715136196312e+02 1.383007354282553e+02 1.376328645574854e+02 - 1.369679065913208e+02 1.363058671153038e+02 1.356467517165207e+02 1.349905659836014e+02 1.343373155067194e+02 - 1.336870058775913e+02 1.330396426894780e+02 1.323952315371832e+02 1.317537780170550e+02 1.311152877269845e+02 - 1.304797662664065e+02 1.298472192362996e+02 1.292176522391855e+02 1.285910708791301e+02 1.279674807617425e+02 - 1.273468874941753e+02 1.267292966851250e+02 1.261147139448316e+02 1.255031448850783e+02 1.248945951191923e+02 - 1.242890702620443e+02 1.236865759300485e+02 1.230871177411627e+02 1.224907013148884e+02 1.218973322722703e+02 - 1.213070162358971e+02 1.207197588299010e+02 1.201355656799576e+02 1.195544424132864e+02 1.189763946586499e+02 - 1.184014280463548e+02 1.178295482082510e+02 1.172607607777323e+02 1.166950713897357e+02 1.161324856807421e+02 - 1.155730092887757e+02 1.150166478534045e+02 1.144634070157400e+02 1.139132924184372e+02 1.133663097056950e+02 - 1.128224645232555e+02 1.122817625184044e+02 1.117442093399712e+02 1.112098106383290e+02 1.106785720653942e+02 - 1.101504843345202e+02 1.096253193854976e+02 1.091027814759659e+02 1.085828903190926e+02 1.080656662057070e+02 - 1.075510744401853e+02 1.070391017583160e+02 1.065297369211215e+02 1.060229642403793e+02 1.055187689946627e+02 - 1.050171373101604e+02 1.045180558156006e+02 1.040215103049707e+02 1.035274865113781e+02 1.030359706887152e+02 - 1.025469492169604e+02 1.020604083357866e+02 1.015763340040288e+02 1.010947131078929e+02 1.006155327791835e+02 - 1.001387792631148e+02 9.966443911893010e+01 9.919249927205091e+01 9.872294669690289e+01 9.825576811144268e+01 - 9.779095024426459e+01 9.732848086108395e+01 9.686834738339628e+01 9.641053663288847e+01 9.595503591883143e+01 - 9.550183276437639e+01 9.505091470489599e+01 9.460226894357737e+01 9.415588307372171e+01 9.371174549820027e+01 - 9.326984390100915e+01 9.283016578095182e+01 9.239269910989660e+01 9.195743199867270e+01 9.152435246657959e+01 - 9.109344822825337e+01 9.066470776170968e+01 9.023811990175319e+01 8.981367265385576e+01 8.939135422700863e+01 - 8.897115319588202e+01 8.855305819940260e+01 8.813705766268812e+01 8.772313993524557e+01 8.731129428898021e+01 - 8.690150981214184e+01 8.649377498492467e+01 8.608807868460502e+01 8.568441000539183e+01 8.528275807208179e+01 - 8.488311171021131e+01 8.448546000255536e+01 8.408979283578468e+01 8.369609949978657e+01 8.330436902264381e+01 - 8.291459088961614e+01 8.252675470341519e+01 8.214085000107356e+01 8.175686603719873e+01 8.137479266933553e+01 - 8.099462018292702e+01 8.061633811896954e+01 8.023993612969721e+01 7.986540422509246e+01 7.949273245617202e+01 - 7.912191071864751e+01 7.875292880591886e+01 7.838577728963824e+01 7.802044667908689e+01 7.765692688210476e+01 - 7.729520814701189e+01 7.693528093921003e+01 7.657713574044320e+01 7.622076279877933e+01 7.586615250876412e+01 - 7.551329599462582e+01 7.516218394284439e+01 7.481280673973237e+01 7.446515517211270e+01 7.411922012543234e+01 - 7.377499243991551e+01 7.343246273248482e+01 7.309162206375170e+01 7.275246194060588e+01 7.241497325488510e+01 - 7.207914691168762e+01 7.174497413637995e+01 7.141244624067238e+01 7.108155440657860e+01 7.075228964021176e+01 - 7.042464364044737e+01 7.009860816502822e+01 6.977417437950896e+01 6.945133371117183e+01 6.913007780419414e+01 - 6.881039831641085e+01 6.849228672098478e+01 6.817573455985929e+01 6.786073404036127e+01 6.754727706019318e+01 - 6.723535518365489e+01 6.692496029976250e+01 6.661608442214438e+01 6.630871955818391e+01 6.600285747074972e+01 - 6.569849025826812e+01 6.539561050984807e+01 6.509421028016476e+01 6.479428156422156e+01 6.449581665898590e+01 - 6.419880794007263e+01 6.390324769379086e+01 6.360912802573969e+01 6.331644161216560e+01 6.302518126952705e+01 - 6.273533924838438e+01 6.244690800283556e+01 6.215988021335375e+01 6.187424856554645e+01 6.159000558852496e+01 - 6.130714382209544e+01 6.102565642873360e+01 6.074553634647369e+01 6.046677613965124e+01 6.018936867893675e+01 - 5.991330696615304e+01 5.963858400265185e+01 5.936519255461710e+01 5.909312563142009e+01 5.882237675846172e+01 - 5.855293899151076e+01 5.828480526925385e+01 5.801796883717194e+01 5.775242299813667e+01 5.748816098906929e+01 - 5.722517588172157e+01 5.696346118973321e+01 5.670301063052477e+01 5.644381744585571e+01 5.618587497447161e+01 - 5.592917675378749e+01 5.567371639288440e+01 5.541948735564524e+01 5.516648303666721e+01 5.491469740133566e+01 - 5.466412430128952e+01 5.441475721341882e+01 5.416658984866251e+01 5.391961604526729e+01 5.367382965707854e+01 - 5.342922435049869e+01 5.318579394824101e+01 5.294353276046760e+01 5.270243471566913e+01 5.246249358126801e+01 - 5.222370341980431e+01 5.198605834991378e+01 5.174955243603662e+01 5.151417956992881e+01 5.127993401538280e+01 - 5.104681029539683e+01 5.081480246751264e+01 5.058390465007635e+01 5.035411117607305e+01 5.012541641928832e+01 - 4.989781463692880e+01 4.967129999443014e+01 4.944586717469857e+01 4.922151081792142e+01 4.899822516393252e+01 - 4.877600466591702e+01 4.855484391176263e+01 4.833473749525371e+01 4.811567985888949e+01 4.789766553100244e+01 - 4.768068948486052e+01 4.746474643299185e+01 4.724983089968822e+01 4.703593761581940e+01 4.682306140175855e+01 - 4.661119706938157e+01 4.640033923440899e+01 4.619048280117971e+01 4.598162297433280e+01 4.577375454810339e+01 - 4.556687232031752e+01 4.536097129194708e+01 4.515604651624491e+01 4.495209295916556e+01 4.474910546848848e+01 - 4.454707932343867e+01 4.434600983627007e+01 4.414589194663536e+01 4.394672075425581e+01 4.374849149110094e+01 - 4.355119939554362e+01 4.335483958155968e+01 4.315940720272008e+01 4.296489783321342e+01 4.277130684141869e+01 - 4.257862938067940e+01 4.238686082011235e+01 4.219599659307687e+01 4.200603211268383e+01 4.181696265307154e+01 - 4.162878369849639e+01 4.144149102922540e+01 4.125508008000694e+01 4.106954625154178e+01 4.088488514080404e+01 - 4.070109237453877e+01 4.051816351991027e+01 4.033609404369983e+01 4.015487975529847e+01 3.997451654390139e+01 - 3.979499995457292e+01 3.961632565249730e+01 3.943848943565658e+01 3.926148710146721e+01 3.908531435163689e+01 - 3.890996689581685e+01 3.873544082272831e+01 3.856173207783515e+01 3.838883637414560e+01 3.821674961156019e+01 - 3.804546776546066e+01 3.787498680517137e+01 3.770530255859592e+01 3.753641100849845e+01 3.736830845518836e+01 - 3.720099088344971e+01 3.703445420945200e+01 3.686869456603723e+01 3.670370808841574e+01 3.653949085950763e+01 - 3.637603888796111e+01 3.621334844811717e+01 3.605141592615973e+01 3.589023740445852e+01 3.572980904042850e+01 - 3.557012712196481e+01 3.541118795282225e+01 3.525298774403768e+01 3.509552267323749e+01 3.493878928773343e+01 - 3.478278404343990e+01 3.462750313614663e+01 3.447294293878365e+01 3.431909990161546e+01 3.416597046087814e+01 - 3.401355094900445e+01 3.386183779648810e+01 3.371082772101448e+01 3.356051721064496e+01 3.341090265530899e+01 - 3.326198061398263e+01 3.311374767636361e+01 3.296620040125966e+01 3.281933525310492e+01 3.267314891432770e+01 - 3.252763821351709e+01 3.238279969616838e+01 3.223862995512887e+01 3.209512571750849e+01 3.195228370249094e+01 - 3.181010057023420e+01 3.166857295105629e+01 3.152769775432829e+01 3.138747186368265e+01 3.124789194582367e+01 - 3.110895478177638e+01 3.097065722333928e+01 3.083299612203396e+01 3.069596823521478e+01 3.055957038379009e+01 - 3.042379968490992e+01 3.028865305190764e+01 3.015412726448298e+01 3.002021927954454e+01 2.988692608783410e+01 - 2.975424465393443e+01 2.962217185358958e+01 2.949070472525562e+01 2.935984046863818e+01 2.922957605244617e+01 - 2.909990844798608e+01 2.897083474125067e+01 2.884235205411202e+01 2.871445744621140e+01 2.858714789194334e+01 - 2.846042066311678e+01 2.833427304434733e+01 2.820870204788112e+01 2.808370481822039e+01 2.795927858955916e+01 - 2.783542056310479e+01 2.771212788710439e+01 2.758939774558937e+01 2.746722754519704e+01 2.734561457842300e+01 - 2.722455602005491e+01 2.710404915757552e+01 2.698409131619408e+01 2.686467981339180e+01 2.674581188504884e+01 - 2.662748489299116e+01 2.650969637323688e+01 2.639244364869198e+01 2.627572402574995e+01 2.615953493480668e+01 - 2.604387380499337e+01 2.592873803144385e+01 2.581412497154068e+01 2.570003216993883e+01 2.558645721031992e+01 - 2.547339748309297e+01 2.536085044648649e+01 2.524881363723968e+01 2.513728460374055e+01 2.502626081142699e+01 - 2.491573971820056e+01 2.480571905896494e+01 2.469619646153339e+01 2.458716938319504e+01 2.447863542000312e+01 - 2.437059221927192e+01 2.426303741725681e+01 2.415596854366440e+01 2.404938323139217e+01 2.394327933047775e+01 - 2.383765447837906e+01 2.373250626120992e+01 2.362783239922733e+01 2.352363062421024e+01 2.341989863680159e+01 - 2.331663407933185e+01 2.321383475989216e+01 2.311149855755017e+01 2.300962316438995e+01 2.290820631357202e+01 - 2.280724581327735e+01 2.270673948178020e+01 2.260668508940155e+01 2.250708039173678e+01 2.240792334786956e+01 - 2.230921186720802e+01 2.221094371595302e+01 2.211311674173436e+01 2.201572884123411e+01 2.191877792312015e+01 - 2.182226182065280e+01 2.172617842216956e+01 2.163052579410284e+01 2.153530186271772e+01 2.144050449256298e+01 - 2.134613164544727e+01 2.125218130870039e+01 2.115865145244560e+01 2.106553997668644e+01 2.097284492087666e+01 - 2.088056441996010e+01 2.078869643251129e+01 2.069723893213309e+01 2.060618996606658e+01 2.051554761096601e+01 - 2.042530989859754e+01 2.033547481777502e+01 2.024604054022628e+01 2.015700522393599e+01 2.006836688994228e+01 - 1.998012363072147e+01 1.989227358045817e+01 1.980481486918973e+01 1.971774557717947e+01 1.963106382303616e+01 - 1.954476789103884e+01 1.945885594703988e+01 1.937332608222908e+01 1.928817649453870e+01 1.920340539662878e+01 - 1.911901098077130e+01 1.903499138773951e+01 1.895134486255558e+01 1.886806974988112e+01 1.878516424109755e+01 - 1.870262653275597e+01 1.862045489823334e+01 1.853864761644500e+01 1.845720293609644e+01 1.837611907561623e+01 - 1.829539441141390e+01 1.821502731690405e+01 1.813501600648008e+01 1.805535878852776e+01 1.797605402680784e+01 - 1.789710004813803e+01 1.781849513976010e+01 1.774023761822760e+01 1.766232596769640e+01 1.758475857461898e+01 - 1.750753373031707e+01 1.743064982368309e+01 1.735410526816905e+01 1.727789846424588e+01 1.720202775432962e+01 - 1.712649156263800e+01 1.705128842771503e+01 1.697641675133914e+01 1.690187492053174e+01 1.682766139576636e+01 - 1.675377465125957e+01 1.668021313537254e+01 1.660697525047803e+01 1.653405953620346e+01 1.646146456303875e+01 - 1.638918876353225e+01 1.631723061252691e+01 1.624558863577738e+01 1.617426136715184e+01 1.610324729276991e+01 - 1.603254489420701e+01 1.596215281065743e+01 1.589206962268447e+01 1.582229381597797e+01 1.575282394813798e+01 - 1.568365860435203e+01 1.561479636559848e+01 1.554623575841051e+01 1.547797536749664e+01 1.541001389568697e+01 - 1.534234992945672e+01 1.527498202635700e+01 1.520790881496337e+01 1.514112893627654e+01 1.507464101206718e+01 - 1.500844361854594e+01 1.494253544400039e+01 1.487691522461213e+01 1.481158156982783e+01 1.474653311471545e+01 - 1.468176854391490e+01 1.461728655322583e+01 1.455308580005108e+01 1.448916492494823e+01 1.442552270891503e+01 - 1.436215789907635e+01 1.429906914560298e+01 1.423625515786986e+01 1.417371467503432e+01 1.411144643634281e+01 - 1.404944913182382e+01 1.398772148936426e+01 1.392626235467004e+01 1.386507047757601e+01 1.380414456703780e+01 - 1.374348339923097e+01 1.368308576360786e+01 1.362295043539383e+01 1.356307614411792e+01 1.350346171009224e+01 - 1.344410601461897e+01 1.338500782259274e+01 1.332616591200318e+01 1.326757911048049e+01 1.320924625504148e+01 - 1.315116615215319e+01 1.309333758418828e+01 1.303575945915385e+01 1.297843067064863e+01 1.292135001185642e+01 - 1.286451632934388e+01 1.280792850075226e+01 1.275158540067995e+01 1.269548586414703e+01 1.263962874841400e+01 - 1.258401302186647e+01 1.252863758019894e+01 1.247350127006052e+01 1.241860299544399e+01 1.236394167532885e+01 - 1.230951622025856e+01 1.225532549825102e+01 1.220136844757296e+01 1.214764407513537e+01 1.209415128431592e+01 - 1.204088897936275e+01 1.198785611322907e+01 1.193505164847797e+01 1.188247452422181e+01 1.183012365035161e+01 - 1.177799804372636e+01 1.172609672645034e+01 1.167441862559045e+01 1.162296270435431e+01 1.157172795813644e+01 - 1.152071338824009e+01 1.146991795771504e+01 1.141934063624516e+01 1.136898050295155e+01 1.131883658051165e+01 - 1.126890783457083e+01 1.121919328583311e+01 1.116969196974251e+01 1.112040291453270e+01 1.107132511138846e+01 - 1.102245760367597e+01 1.097379950683186e+01 1.092534984778681e+01 1.087710764406476e+01 1.082907196010627e+01 - 1.078124186863284e+01 1.073361642501848e+01 1.068619465441603e+01 1.063897567074718e+01 1.059195860734133e+01 - 1.054514250814830e+01 1.049852644360809e+01 1.045210951602862e+01 1.040589083229813e+01 1.035986946911022e+01 - 1.031404450080543e+01 1.026841510170119e+01 1.022298040707346e+01 1.017773949095798e+01 1.013269147478631e+01 - 1.008783549702620e+01 1.004317069189082e+01 9.998696157456914e+00 9.954411030186206e+00 9.910314523784715e+00 - 9.866405774945729e+00 9.822683900561229e+00 9.779148062474189e+00 9.735797433007823e+00 9.692631171490490e+00 - 9.649648402951970e+00 9.606848328743531e+00 9.564230182014787e+00 9.521793107635142e+00 9.479536270440141e+00 - 9.437458869806633e+00 9.395560106559989e+00 9.353839157926716e+00 9.312295192835592e+00 9.270927467731591e+00 - 9.229735216231479e+00 9.188717610212938e+00 9.147873860369382e+00 9.107203196336844e+00 9.066704846764596e+00 - 9.026378005702853e+00 8.986221892357717e+00 8.946235805206038e+00 8.906418978693665e+00 8.866770619316361e+00 - 8.827289975974383e+00 8.787976307390357e+00 8.748828863538764e+00 8.709846863139358e+00 8.671029583554503e+00 - 8.632376341244221e+00 8.593886376949055e+00 8.555558939921891e+00 8.517393311170933e+00 8.479388776756116e+00 - 8.441544603229096e+00 8.403860042243403e+00 8.366334424744339e+00 8.328967072292842e+00 8.291757243124138e+00 - 8.254704227472720e+00 8.217807335382002e+00 8.181065876905594e+00 8.144479133106664e+00 8.108046399433587e+00 - 8.071767047639053e+00 8.035640397926882e+00 7.999665736506032e+00 7.963842390434660e+00 7.928169696145141e+00 - 7.892646983285742e+00 7.857273552651162e+00 7.822048750599857e+00 7.786971968025827e+00 7.752042529333232e+00 - 7.717259758863888e+00 7.682623011133142e+00 7.648131647347260e+00 7.613785013617140e+00 7.579582436948184e+00 - 7.545523312250220e+00 7.511607037617057e+00 7.477832951167176e+00 7.444200413093294e+00 7.410708803334905e+00 - 7.377357505498556e+00 7.344145878673218e+00 7.311073286547245e+00 7.278139163173499e+00 7.245342906306997e+00 - 7.212683876663248e+00 7.180161467446147e+00 7.147775082852699e+00 7.115524124234772e+00 7.083407965702390e+00 - 7.051426016132217e+00 7.019577732801474e+00 6.987862512275252e+00 6.956279745475502e+00 6.924828855941318e+00 - 6.893509269882150e+00 6.862320401692200e+00 6.831261647888545e+00 6.800332460884749e+00 6.769532305211046e+00 - 6.738860589806862e+00 6.708316738463165e+00 6.677900193977888e+00 6.647610403615440e+00 6.617446795946176e+00 - 6.587408797932629e+00 6.557495898186097e+00 6.527707560796614e+00 6.498043211862364e+00 6.468502306113241e+00 - 6.439084309299234e+00 6.409788685242900e+00 6.380614873655190e+00 6.351562339061567e+00 6.322630595895343e+00 - 6.293819108127046e+00 6.265127326375664e+00 6.236554729526047e+00 6.208100805116588e+00 6.179765032202197e+00 - 6.151546864740690e+00 6.123445807150094e+00 6.095461385258917e+00 6.067593067877628e+00 6.039840335121551e+00 - 6.012202688508743e+00 5.984679633169969e+00 5.957270656961056e+00 5.929975240292937e+00 5.902792923627279e+00 - 5.875723232013562e+00 5.848765648702115e+00 5.821919682493143e+00 5.795184854142510e+00 5.768560683026402e+00 - 5.742046666390822e+00 5.715642318587924e+00 5.689347205919744e+00 5.663160851223163e+00 5.637082758311135e+00 - 5.611112458697719e+00 5.585249491519008e+00 5.559493390584049e+00 5.533843667789125e+00 5.508299872311603e+00 - 5.482861578646651e+00 5.457528314665947e+00 5.432299611523626e+00 5.407175018586152e+00 5.382154093094761e+00 - 5.357236378022760e+00 5.332421403106363e+00 5.307708752059064e+00 5.283098003376689e+00 5.258588694187007e+00 - 5.234180379291222e+00 5.209872626694981e+00 5.185665008050016e+00 5.161557074183171e+00 5.137548383980142e+00 - 5.113638545797982e+00 5.089827134282968e+00 5.066113702430728e+00 5.042497830741953e+00 5.018979105007048e+00 - 4.995557105455633e+00 4.972231392615168e+00 4.949001558388967e+00 4.925867224885915e+00 4.902827967986653e+00 - 4.879883363679411e+00 4.857033008673309e+00 4.834276503129009e+00 4.811613436797770e+00 4.789043387081744e+00 - 4.766565977795326e+00 4.744180833573695e+00 4.721887536130310e+00 4.699685684376157e+00 4.677574891583497e+00 - 4.655554772271826e+00 4.633624922898647e+00 4.611784942911348e+00 4.590034481232405e+00 4.568373160121153e+00 - 4.546800575450856e+00 4.525316347519302e+00 4.503920103923871e+00 4.482611469298424e+00 4.461390048788094e+00 - 4.440255471271009e+00 4.419207398665950e+00 4.398245451269402e+00 4.377369245425554e+00 4.356578419383048e+00 - 4.335872613273037e+00 4.315251459075552e+00 4.294714576337845e+00 4.274261622204341e+00 4.253892261314030e+00 - 4.233606119889290e+00 4.213402835603544e+00 4.193282059746365e+00 4.173243445650493e+00 4.153286631923412e+00 - 4.133411255497697e+00 4.113616998652003e+00 4.093903524786619e+00 4.074270469191258e+00 4.054717490515994e+00 - 4.035244253601178e+00 4.015850419023907e+00 3.996535633568783e+00 3.977299560905666e+00 3.958141896495164e+00 - 3.939062301025637e+00 3.920060427447142e+00 3.901135950094528e+00 3.882288544897898e+00 3.863517881118590e+00 - 3.844823615448907e+00 3.826205437051391e+00 3.807663047653544e+00 3.789196110563124e+00 3.770804297342049e+00 - 3.752487294212357e+00 3.734244789018890e+00 3.716076457976182e+00 3.697981972490954e+00 3.679961043694115e+00 - 3.662013372248035e+00 3.644138631063968e+00 3.626336509775109e+00 3.608606705542072e+00 3.590948914412318e+00 - 3.573362819793663e+00 3.555848115085657e+00 3.538404523614169e+00 3.521031745026515e+00 3.503729467883798e+00 - 3.486497394134707e+00 3.469335231734055e+00 3.452242686325544e+00 3.435219448952052e+00 3.418265234650198e+00 - 3.401379774604279e+00 3.384562769850576e+00 3.367813923930398e+00 3.351132951883403e+00 3.334519571031865e+00 - 3.317973491801103e+00 3.301494419647167e+00 3.285082090084510e+00 3.268736234671993e+00 3.252456560777042e+00 - 3.236242786971220e+00 3.220094639575606e+00 3.204011846234647e+00 3.187994121490988e+00 3.172041185626448e+00 - 3.156152791161071e+00 3.140328668842820e+00 3.124568535295174e+00 3.108872124034968e+00 3.093239171871656e+00 - 3.077669412161458e+00 3.062162565910707e+00 3.046718374098970e+00 3.031336596904380e+00 3.016016966139392e+00 - 3.000759212810465e+00 2.985563079528153e+00 2.970428312130104e+00 2.955354650145179e+00 2.940341825152254e+00 - 2.925389598488303e+00 2.910497731503551e+00 2.895665957526404e+00 2.880894022713473e+00 2.866181682137055e+00 - 2.851528688498591e+00 2.836934785005289e+00 2.822399718118186e+00 2.807923264019232e+00 2.793505182293368e+00 - 2.779145216423770e+00 2.764843124903896e+00 2.750598669795774e+00 2.736411610868753e+00 2.722281698431688e+00 - 2.708208697067331e+00 2.694192390113966e+00 2.680232535961204e+00 2.666328890540199e+00 2.652481222662398e+00 - 2.638689303226956e+00 2.624952898002155e+00 2.611271764144950e+00 2.597645683492627e+00 2.584074442444535e+00 - 2.570557801667266e+00 2.557095530257868e+00 2.543687406599445e+00 2.530333209423413e+00 2.517032707379746e+00 - 2.503785668122807e+00 2.490591889861845e+00 2.477451158950901e+00 2.464363243138197e+00 2.451327922049569e+00 - 2.438344980862380e+00 2.425414204994132e+00 2.412535368413293e+00 2.399708255484590e+00 2.386932671907132e+00 - 2.374208401602455e+00 2.361535223009603e+00 2.348912926727443e+00 2.336341305706971e+00 2.323820149408004e+00 - 2.311349238873846e+00 2.298928374328811e+00 2.286557363678248e+00 2.274235992966902e+00 2.261964052364815e+00 - 2.249741340335214e+00 2.237567658215990e+00 2.225442798573621e+00 2.213366549457367e+00 2.201338726388740e+00 - 2.189359138707274e+00 2.177427577694549e+00 2.165543843493499e+00 2.153707741170415e+00 2.141919076444355e+00 - 2.130177647034976e+00 2.118483256831743e+00 2.106835728234196e+00 2.095234867960482e+00 2.083680476325080e+00 - 2.072172364176171e+00 2.060710343839133e+00 2.049294224696878e+00 2.037923808395575e+00 2.026598913260298e+00 - 2.015319367985618e+00 2.004084979196668e+00 1.992895556108562e+00 1.981750916950703e+00 1.970650881000152e+00 - 1.959595261684839e+00 1.948583868145923e+00 1.937616532016987e+00 1.926693081878526e+00 1.915813328267264e+00 - 1.904977090405082e+00 1.894184192977273e+00 1.883434460875044e+00 1.872727710477953e+00 1.862063762090873e+00 - 1.851442457083682e+00 1.840863622251705e+00 1.830327074965862e+00 1.819832643502570e+00 1.809380158797907e+00 - 1.798969449793061e+00 1.788600336572885e+00 1.778272652771865e+00 1.767986244795942e+00 1.757740938619203e+00 - 1.747536560606076e+00 1.737372946411540e+00 1.727249932639099e+00 1.717167351154095e+00 1.707125028541288e+00 - 1.697122811212298e+00 1.687160545804055e+00 1.677238060829077e+00 1.667355192130723e+00 1.657511781312863e+00 - 1.647707669880958e+00 1.637942692337234e+00 1.628216684763444e+00 1.618529503053863e+00 1.608880992276723e+00 - 1.599270986915247e+00 1.589699330823691e+00 1.580165870897195e+00 1.570670452975510e+00 1.561212914561866e+00 - 1.551793103249197e+00 1.542410880472349e+00 1.533066090216831e+00 1.523758574579748e+00 1.514488184288800e+00 - 1.505254771462676e+00 1.496058184704016e+00 1.486898266759950e+00 1.477774877044576e+00 1.468687878023066e+00 - 1.459637114930725e+00 1.450622438289068e+00 1.441643704572125e+00 1.432700770639202e+00 1.423793487269355e+00 - 1.414921704769478e+00 1.406085292220042e+00 1.397284110913275e+00 1.388518010515092e+00 1.379786849127615e+00 - 1.371090488107240e+00 1.362428788219066e+00 1.353801602746353e+00 1.345208792137069e+00 1.336650231141558e+00 - 1.328125779708811e+00 1.319635294146069e+00 1.311178639017341e+00 1.302755680403749e+00 1.294366281732825e+00 - 1.286010300246468e+00 1.277687607130681e+00 1.269398079017509e+00 1.261141576506052e+00 1.252917963373013e+00 - 1.244727109229262e+00 1.236568884548108e+00 1.228443154841189e+00 1.220349783647821e+00 1.212288651549746e+00 - 1.204259634287000e+00 1.196262595500517e+00 1.188297406122070e+00 1.180363940507803e+00 1.172462072687314e+00 - 1.164591670206239e+00 1.156752605274376e+00 1.148944764287503e+00 1.141168021685895e+00 1.133422246839356e+00 - 1.125707316556084e+00 1.118023109341937e+00 1.110369501923575e+00 1.102746365022667e+00 1.095153580538906e+00 - 1.087591037394418e+00 1.080058609806265e+00 1.072556173728377e+00 1.065083611042832e+00 1.057640804167975e+00 - 1.050227631677888e+00 1.042843969448370e+00 1.035489708218281e+00 1.028164736497249e+00 1.020868930712798e+00 - 1.013602173363602e+00 1.006364350528145e+00 9.991553480860069e-01 9.919750464549014e-01 9.848233287198007e-01 - 9.777000916381701e-01 9.706052224312447e-01 9.635386022157533e-01 9.565001191688937e-01 9.494896630661879e-01 - 9.425071223228538e-01 9.355523797940184e-01 9.286253271866921e-01 9.217258644183214e-01 9.148538781303724e-01 - 9.080092551050607e-01 9.011918879859632e-01 8.944016703005543e-01 8.876384924746002e-01 8.809022413584221e-01 - 8.741928168976413e-01 8.675101190938330e-01 8.608540359442419e-01 8.542244603473701e-01 8.476212889430066e-01 - 8.410444181391276e-01 8.344937399710189e-01 8.279691476350027e-01 8.214705470141707e-01 8.149978368018493e-01 - 8.085509088588196e-01 8.021296614287111e-01 7.957339944800463e-01 7.893638070383275e-01 7.830189931350516e-01 - 7.766994532966268e-01 7.704050967403675e-01 7.641358215802615e-01 7.578915247022724e-01 7.516721083807270e-01 - 7.454774759379389e-01 7.393075284143857e-01 7.331621629407183e-01 7.270412875750237e-01 7.209448123528730e-01 - 7.148726361079928e-01 7.088246610576617e-01 7.028007931997213e-01 6.968009387204053e-01 6.908250000358214e-01 - 6.848728793751606e-01 6.789444908271167e-01 6.730397435251165e-01 6.671585392499849e-01 6.613007849024644e-01 - 6.554663896318030e-01 6.496552624588109e-01 6.438673070778183e-01 6.381024319556428e-01 6.323605552121262e-01 - 6.266415850605696e-01 6.209454272475601e-01 6.152719929073242e-01 6.096211942955035e-01 6.039929419697414e-01 - 5.983871423673978e-01 5.928037109278776e-01 5.872425665727200e-01 5.817036179262789e-01 5.761867757580472e-01 - 5.706919545755328e-01 5.652190691753797e-01 5.597680312855905e-01 5.543387515608681e-01 5.489311514266204e-01 - 5.435451491959484e-01 5.381806555529779e-01 5.328375858091706e-01 5.275158573424954e-01 5.222153871968650e-01 - 5.169360885007255e-01 5.116778775087658e-01 5.064406794925096e-01 5.012244118255510e-01 4.960289886382637e-01 - 4.908543290552675e-01 4.857003532629381e-01 4.805669801867241e-01 4.754541247133137e-01 4.703617092625736e-01 - 4.652896609026711e-01 4.602378967146020e-01 4.552063350475851e-01 4.501948983226124e-01 4.452035092771810e-01 - 4.402320879227842e-01 4.352805523654864e-01 4.303488309750054e-01 4.254368504386150e-01 4.205445290166767e-01 - 4.156717895856258e-01 4.108185573527897e-01 4.059847567861119e-01 4.011703090912549e-01 3.963751374739253e-01 - 3.915991740467544e-01 3.868423443729578e-01 3.821045699452743e-01 3.773857771630841e-01 3.726858934536713e-01 - 3.680048452743795e-01 3.633425553945757e-01 3.586989523890614e-01 3.540739701811214e-01 3.494675340422360e-01 - 3.448795694018267e-01 3.403100055229290e-01 3.357587720701978e-01 3.312257966625470e-01 3.267110046986084e-01 - 3.222143302305144e-01 3.177357072575733e-01 3.132750617821559e-01 3.088323230437107e-01 3.044074228278458e-01 - 3.000002929514869e-01 2.956108619814004e-01 2.912390591663653e-01 2.868848226223222e-01 2.825480855369588e-01 - 2.782287763584979e-01 2.739268276304007e-01 2.696421732978619e-01 2.653747469077652e-01 2.611244782932083e-01 - 2.568913016367161e-01 2.526751570146955e-01 2.484759769388697e-01 2.442936932048949e-01 2.401282413902519e-01 - 2.359795575701045e-01 2.318475761710866e-01 2.277322290127450e-01 2.236334554284879e-01 2.195511960314929e-01 - 2.154853836729677e-01 2.114359536211432e-01 2.074028437636633e-01 2.033859920182897e-01 1.993853337119912e-01 - 1.954008040589642e-01 1.914323463143237e-01 1.874799002688242e-01 1.835434007181165e-01 1.796227861758036e-01 - 1.757179964922509e-01 1.718289711649378e-01 1.679556465242757e-01 1.640979620393169e-01 1.602558632656972e-01 - 1.564292893436780e-01 1.526181778855338e-01 1.488224700413446e-01 1.450421075715582e-01 1.412770310767497e-01 - 1.375271785489454e-01 1.337924939887067e-01 1.300729236356154e-01 1.263684067750867e-01 1.226788841702678e-01 - 1.190042991249222e-01 1.153445951805052e-01 1.116997137432381e-01 1.080695954417651e-01 1.044541881911586e-01 - 1.008534377603918e-01 9.726728475975084e-02 9.369567294988820e-02 9.013854752144720e-02 8.659585347215112e-02 - 8.306753302147955e-02 7.955353046975124e-02 7.605379621791922e-02 7.256827534889604e-02 6.909691079142652e-02 - 6.563964883225221e-02 6.219643640409570e-02 5.876721959493493e-02 5.535194193553600e-02 5.195055179453398e-02 - 4.856300050562060e-02 4.518923308325209e-02 4.182919528191363e-02 3.848283536820589e-02 3.515010193539807e-02 - 3.183094185890936e-02 2.852530077920949e-02 2.523313079087341e-02 2.195438300307553e-02 1.868900335629075e-02 - 1.543694036357313e-02 1.219814405293583e-02 8.972564385828061e-03 5.760148923624660e-03 2.560846417529306e-03 - -6.253884489496408e-04 -3.798605206001689e-03 -6.958856024607482e-03 -1.010619000899848e-02 -1.324065554473652e-02 - -1.636230159824732e-02 -1.947117958312726e-02 -2.256733711284757e-02 -2.565081832749929e-02 -2.872167302619957e-02 - -3.177995089902724e-02 -3.482569914268617e-02 -3.785896464500105e-02 -4.087979562235380e-02 -4.388824175488684e-02 - -4.688434717766576e-02 -4.986815604286890e-02 -5.283971753775529e-02 -5.579907881824794e-02 -5.874628546589089e-02 - -6.168138307363240e-02 -6.460441923558070e-02 -6.751544105442296e-02 -7.041449003639784e-02 -7.330161087707579e-02 - -7.617685125406765e-02 -7.904025608548425e-02 -8.189186951723537e-02 -8.473173608907363e-02 -8.755990257827875e-02 - -9.037641289395969e-02 -9.318130717201861e-02 -9.597463047763352e-02 -9.875642835115833e-02 -1.015267439140877e-01 - -1.042856199263307e-01 -1.070331001684683e-01 -1.097692300567918e-01 -1.124940502948268e-01 -1.152076007898061e-01 - -1.179099262631479e-01 -1.206010699593113e-01 -1.232810735016665e-01 -1.259499784255051e-01 -1.286078279418341e-01 - -1.312546653333709e-01 -1.338905286984875e-01 -1.365154583874092e-01 -1.391294979538990e-01 -1.417326885345280e-01 - -1.443250704192513e-01 -1.469066841433861e-01 -1.494775722507627e-01 -1.520377752494497e-01 -1.545873297590701e-01 - -1.571262765202916e-01 -1.596546572452540e-01 -1.621725113907878e-01 -1.646798779801165e-01 -1.671767967821347e-01 - -1.696633092874520e-01 -1.721394530811854e-01 -1.746052643091513e-01 -1.770607836101869e-01 -1.795060506428017e-01 - -1.819411034225526e-01 -1.843659798390828e-01 -1.867807191554161e-01 -1.891853611111403e-01 -1.915799407499077e-01 - -1.939644945120454e-01 -1.963390621459183e-01 -1.987036813730624e-01 -2.010583889984393e-01 -2.034032219467188e-01 - -2.057382189127211e-01 -2.080634172465200e-01 -2.103788504106409e-01 -2.126845552585028e-01 -2.149805700057577e-01 - -2.172669307458855e-01 -2.195436731393316e-01 -2.218108333786645e-01 -2.240684493062661e-01 -2.263165556286022e-01 - -2.285551851690127e-01 -2.307843748874083e-01 -2.330041611277884e-01 -2.352145785311434e-01 -2.374156618282909e-01 - -2.396074467707450e-01 -2.417899696732801e-01 -2.439632627554057e-01 -2.461273590292558e-01 -2.482822949571798e-01 - -2.504281050002428e-01 -2.525648226666662e-01 -2.546924818382261e-01 -2.568111176810049e-01 -2.589207645010757e-01 - -2.610214530059819e-01 -2.631132165202481e-01 -2.651960899948890e-01 -2.672701065219724e-01 -2.693352987894519e-01 - -2.713916998229662e-01 -2.734393439668777e-01 -2.754782632038173e-01 -2.775084874639143e-01 -2.795300503441993e-01 - -2.815429852855671e-01 -2.835473240274155e-01 -2.855430981234691e-01 -2.875303400246380e-01 -2.895090831627840e-01 - -2.914793573631382e-01 -2.934411924374482e-01 -2.953946213942734e-01 -2.973396760049649e-01 -2.992763870705049e-01 - -3.012047853752455e-01 -3.031249029054077e-01 -3.050367713048046e-01 -3.069404187491607e-01 -3.088358754333808e-01 - -3.107231733999588e-01 -3.126023429151826e-01 -3.144734138246973e-01 -3.163364162512183e-01 -3.181913814969073e-01 - -3.200383391593082e-01 -3.218773166629695e-01 -3.237083442965246e-01 -3.255314526206347e-01 -3.273466708133588e-01 - -3.291540279174764e-01 -3.309535535062730e-01 -3.327452779044484e-01 -3.345292286746930e-01 -3.363054329977739e-01 - -3.380739209920870e-01 -3.398347217688169e-01 -3.415878634526212e-01 -3.433333743100879e-01 -3.450712833788954e-01 - -3.468016195958206e-01 -3.485244091566739e-01 -3.502396793974815e-01 -3.519474593420066e-01 -3.536477770380763e-01 - -3.553406598299846e-01 -3.570261348354672e-01 -3.587042307855341e-01 -3.603749751839582e-01 -3.620383929731605e-01 - -3.636945116923384e-01 -3.653433594409278e-01 -3.669849628231984e-01 -3.686193482790397e-01 -3.702465427747400e-01 - -3.718665743211436e-01 -3.734794684043725e-01 -3.750852495624684e-01 -3.766839451194457e-01 -3.782755819189342e-01 - -3.798601858648072e-01 -3.814377826321034e-01 -3.830083986549013e-01 -3.845720606417443e-01 -3.861287926090124e-01 - -3.876786193539286e-01 -3.892215675502101e-01 -3.907576628594260e-01 -3.922869303026715e-01 -3.938093947284727e-01 - -3.953250822556230e-01 -3.968340182497304e-01 -3.983362256494206e-01 -3.998317293097848e-01 -4.013205549386248e-01 - -4.028027272117153e-01 -4.042782703087232e-01 -4.057472086115670e-01 -4.072095677082399e-01 -4.086653712889545e-01 - -4.101146418277140e-01 -4.115574040934622e-01 -4.129936826934361e-01 -4.144235014035024e-01 -4.158468836578273e-01 - -4.172638535617268e-01 -4.186744357650895e-01 -4.200786523524958e-01 -4.214765258006608e-01 -4.228680805923657e-01 - -4.242533401481378e-01 -4.256323273241845e-01 -4.270050650780072e-01 -4.283715771591216e-01 -4.297318868367957e-01 - -4.310860152683936e-01 -4.324339850671611e-01 -4.337758197699306e-01 -4.351115419219263e-01 -4.364411736856622e-01 - -4.377647373653272e-01 -4.390822563519974e-01 -4.403937525793140e-01 -4.416992465950099e-01 -4.429987609092939e-01 - -4.442923180804305e-01 -4.455799398898891e-01 -4.468616477876415e-01 -4.481374637930542e-01 -4.494074106490894e-01 - -4.506715085877422e-01 -4.519297779021105e-01 -4.531822412097039e-01 -4.544289201442401e-01 -4.556698355752103e-01 - -4.569050083194456e-01 -4.581344599890250e-01 -4.593582121055255e-01 -4.605762842891920e-01 -4.617886970897419e-01 - -4.629954719556403e-01 -4.641966295426422e-01 -4.653921902577345e-01 -4.665821746143150e-01 -4.677666038635413e-01 - -4.689454981292748e-01 -4.701188761476531e-01 -4.712867586709557e-01 -4.724491664926360e-01 -4.736061192593240e-01 - -4.747576368456714e-01 -4.759037394682022e-01 -4.770444475543998e-01 -4.781797800875144e-01 -4.793097558338887e-01 - -4.804343950164401e-01 -4.815537175042383e-01 -4.826677426390972e-01 -4.837764894228364e-01 -4.848799775883490e-01 - -4.859782270303963e-01 -4.870712557287352e-01 -4.881590823344398e-01 -4.892417265305033e-01 -4.903192072931410e-01 - -4.913915433426016e-01 -4.924587534540600e-01 -4.935208569593936e-01 -4.945778724869024e-01 -4.956298174121960e-01 - -4.966767104426105e-01 -4.977185705977166e-01 -4.987554161795947e-01 -4.997872652579317e-01 -5.008141361357437e-01 - -5.018360477540788e-01 -5.028530175622089e-01 -5.038650625463708e-01 -5.048722015765362e-01 -5.058744527800632e-01 - -5.068718334710337e-01 -5.078643614554021e-01 -5.088520548881869e-01 -5.098349318298798e-01 -5.108130088001350e-01 - -5.117863028619736e-01 -5.127548322161382e-01 -5.137186142245088e-01 -5.146776659499980e-01 -5.156320045833772e-01 - -5.165816478015819e-01 -5.175266128170244e-01 -5.184669156304091e-01 -5.194025733016244e-01 -5.203336032597101e-01 - -5.212600221732120e-01 -5.221818466804444e-01 -5.230990936596679e-01 -5.240117804553392e-01 -5.249199232262068e-01 - -5.258235374392936e-01 -5.267226400387954e-01 -5.276172478389746e-01 -5.285073771019844e-01 -5.293930438910602e-01 - -5.302742646986305e-01 -5.311510563423283e-01 -5.320234339437281e-01 -5.328914129379527e-01 -5.337550101355577e-01 - -5.346142414983102e-01 -5.354691226448078e-01 -5.363196694209366e-01 -5.371658979374595e-01 -5.380078240078261e-01 - -5.388454624615836e-01 -5.396788287704753e-01 -5.405079388378121e-01 -5.413328081929075e-01 -5.421534521210617e-01 - -5.429698859177164e-01 -5.437821254261226e-01 -5.445901856060492e-01 -5.453940806517681e-01 -5.461938261275164e-01 - -5.469894375147514e-01 -5.477809296410460e-01 -5.485683172596564e-01 -5.493516154047422e-01 -5.501308394233321e-01 - -5.509060035978606e-01 -5.516771220917993e-01 -5.524442098036262e-01 -5.532072816062331e-01 -5.539663521228516e-01 - -5.547214355736525e-01 -5.554725467511782e-01 -5.562197004144761e-01 -5.569629099559865e-01 -5.577021895124128e-01 - -5.584375539231472e-01 -5.591690174427206e-01 -5.598965939391384e-01 -5.606202972403660e-01 -5.613401421520022e-01 - -5.620561426054913e-01 -5.627683113219669e-01 -5.634766626491997e-01 -5.641812109417922e-01 -5.648819696019924e-01 - -5.655789522526887e-01 -5.662721727674018e-01 -5.669616451334641e-01 -5.676473824290281e-01 -5.683293976251365e-01 - -5.690077046537543e-01 -5.696823171027902e-01 -5.703532481968968e-01 -5.710205111045815e-01 -5.716841193018837e-01 - -5.723440862989044e-01 -5.730004247377283e-01 -5.736531475408438e-01 -5.743022680808630e-01 -5.749477994635019e-01 - -5.755897545119250e-01 -5.762281459317424e-01 -5.768629872133108e-01 -5.774942912813225e-01 -5.781220698864685e-01 - -5.787463360372200e-01 -5.793671029370097e-01 -5.799843829591812e-01 -5.805981885004621e-01 -5.812085322229668e-01 - -5.818154271777390e-01 -5.824188854500640e-01 -5.830189187855023e-01 -5.836155400127914e-01 -5.842087616519486e-01 - -5.847985957903102e-01 -5.853850545399070e-01 -5.859681502822114e-01 -5.865478954643482e-01 -5.871243015837295e-01 - -5.876973804424807e-01 -5.882671445115567e-01 -5.888336058093040e-01 -5.893967761301214e-01 -5.899566672475657e-01 - -5.905132912554449e-01 -5.910666600004119e-01 -5.916167846344484e-01 -5.921636769312483e-01 -5.927073488739303e-01 - -5.932478119884005e-01 -5.937850777230974e-01 -5.943191576345895e-01 -5.948500635775013e-01 -5.953778067525587e-01 - -5.959023980172641e-01 -5.964238491804477e-01 -5.969421717317064e-01 -5.974573766302176e-01 -5.979694750153504e-01 - -5.984784782975928e-01 -5.989843980133127e-01 -5.994872448737363e-01 -5.999870296226286e-01 -6.004837635008013e-01 - -6.009774575116591e-01 -6.014681225640990e-01 -6.019557696406324e-01 -6.024404098188824e-01 -6.029220539582525e-01 - -6.034007123251734e-01 -6.038763957092128e-01 -6.043491151546724e-01 -6.048188811990667e-01 -6.052857043294740e-01 - -6.057495951725935e-01 -6.062105647034982e-01 -6.066686232996821e-01 -6.071237808282512e-01 -6.075760480581535e-01 - -6.080254356249652e-01 -6.084719536597242e-01 -6.089156123708600e-01 -6.093564221655233e-01 -6.097943936088406e-01 - -6.102295366277345e-01 -6.106618611466814e-01 -6.110913776082281e-01 -6.115180960018122e-01 -6.119420262061138e-01 - -6.123631785057825e-01 -6.127815629923925e-01 -6.131971895415724e-01 -6.136100679122567e-01 -6.140202079254689e-01 - -6.144276194632986e-01 -6.148323123693087e-01 -6.152342964516117e-01 -6.156335814880438e-01 -6.160301772367670e-01 - -6.164240932773791e-01 -6.168153390131846e-01 -6.172039241057757e-01 -6.175898582479540e-01 -6.179731510100582e-01 - -6.183538118537011e-01 -6.187318502245757e-01 -6.191072755983122e-01 -6.194800972241303e-01 -6.198503243163954e-01 - -6.202179663089392e-01 -6.205830326036273e-01 -6.209455324825972e-01 -6.213054750121583e-01 -6.216628693834372e-01 - -6.220177248671027e-01 -6.223700505100402e-01 -6.227198553511943e-01 -6.230671484590707e-01 -6.234119388224310e-01 - -6.237542354039819e-01 -6.240940471906395e-01 -6.244313833278470e-01 -6.247662526956897e-01 -6.250986637315333e-01 - -6.254286253149073e-01 -6.257561464374979e-01 -6.260812358699522e-01 -6.264039022632663e-01 -6.267241542804416e-01 - -6.270420007239386e-01 -6.273574502418447e-01 -6.276705113436000e-01 -6.279811924920996e-01 -6.282895022600340e-01 - -6.285954492669960e-01 -6.288990419377586e-01 -6.292002887596219e-01 -6.294991982474318e-01 -6.297957785295903e-01 - -6.300900379535952e-01 -6.303819851813233e-01 -6.306716282540937e-01 -6.309589752809680e-01 -6.312440348023121e-01 - -6.315268150763020e-01 -6.318073241903770e-01 -6.320855701836068e-01 -6.323615610879741e-01 -6.326353050044859e-01 - -6.329068101802829e-01 -6.331760846635813e-01 -6.334431363818833e-01 -6.337079733473078e-01 -6.339706034520735e-01 - -6.342310345121693e-01 -6.344892744839461e-01 -6.347453312805855e-01 -6.349992127114430e-01 -6.352509264768633e-01 - -6.355004804526597e-01 -6.357478826585540e-01 -6.359931404400122e-01 -6.362362612918424e-01 -6.364772532644518e-01 - -6.367161239398067e-01 -6.369528807876881e-01 -6.371875315012039e-01 -6.374200836672138e-01 -6.376505447719858e-01 - -6.378789222449943e-01 -6.381052236017390e-01 -6.383294563385360e-01 -6.385516277126226e-01 -6.387717451483415e-01 - -6.389898161925324e-01 -6.392058481779943e-01 -6.394198483013303e-01 -6.396318237129481e-01 -6.398417817583982e-01 - -6.400497298004382e-01 -6.402556751053731e-01 -6.404596246811356e-01 -6.406615856182318e-01 -6.408615652398488e-01 - -6.410595705960431e-01 -6.412556087124355e-01 -6.414496867908267e-01 -6.416418117430738e-01 -6.418319904244396e-01 - -6.420202299552208e-01 -6.422065373268501e-01 -6.423909194238488e-01 -6.425733831564441e-01 -6.427539354568388e-01 - -6.429325832107947e-01 -6.431093330874931e-01 -6.432841919278923e-01 -6.434571667152847e-01 -6.436282640341581e-01 - -6.437974905134223e-01 -6.439648529819666e-01 -6.441303582355420e-01 -6.442940129046214e-01 -6.444558234243410e-01 - -6.446157964842297e-01 -6.447739387669796e-01 -6.449302567289288e-01 -6.450847570451982e-01 -6.452374463418470e-01 - -6.453883308317777e-01 -6.455374170518916e-01 -6.456847116523639e-01 -6.458302208459006e-01 -6.459739509825424e-01 - -6.461159085765001e-01 -6.462561000624228e-01 -6.463945317857885e-01 -6.465312099893501e-01 -6.466661407794220e-01 - -6.467993305071421e-01 -6.469307857586633e-01 -6.470605124176557e-01 -6.471885165505020e-01 -6.473148048129491e-01 - -6.474393831451855e-01 -6.475622574433044e-01 -6.476834341411803e-01 -6.478029193005811e-01 -6.479207188186653e-01 - -6.480368387749067e-01 -6.481512852365653e-01 -6.482640642356557e-01 -6.483751817763184e-01 -6.484846438333333e-01 - -6.485924563559199e-01 -6.486986252696630e-01 -6.488031563964390e-01 -6.489060555062011e-01 -6.490073285956434e-01 - -6.491069816182633e-01 -6.492050203757027e-01 -6.493014505946639e-01 -6.493962779796888e-01 -6.494895082497514e-01 - -6.495811472172135e-01 -6.496712006463234e-01 -6.497596741452655e-01 -6.498465734697708e-01 -6.499319043537729e-01 - -6.500156722751166e-01 -6.500978828758883e-01 -6.501785418212779e-01 -6.502576544563589e-01 -6.503352264336196e-01 - -6.504112635780723e-01 -6.504857712206107e-01 -6.505587548117625e-01 -6.506302199692129e-01 -6.507001719669850e-01 - -6.507686161481057e-01 -6.508355580770583e-01 -6.509010033515999e-01 -6.509649573333303e-01 -6.510274250599254e-01 - -6.510884119408136e-01 -6.511479234691252e-01 -6.512059649357221e-01 -6.512625414820176e-01 -6.513176583196066e-01 - -6.513713209657690e-01 -6.514235346566493e-01 -6.514743044494572e-01 -6.515236355351222e-01 -6.515715331668240e-01 - -6.516180025498758e-01 -6.516630486086969e-01 -6.517066764698182e-01 -6.517488914696901e-01 -6.517896986474616e-01 - -6.518291029696229e-01 -6.518671094474887e-01 -6.519037232298822e-01 -6.519389493677847e-01 -6.519727927034696e-01 - -6.520052582102593e-01 -6.520363509344871e-01 -6.520660759114448e-01 -6.520944379877177e-01 -6.521214419863292e-01 - -6.521470929034477e-01 -6.521713955379932e-01 -6.521943546611896e-01 -6.522159753870301e-01 -6.522362625000242e-01 - -6.522552205660485e-01 -6.522728545508729e-01 -6.522891692872490e-01 -6.523041693781095e-01 -6.523178594474156e-01 - -6.523302443147758e-01 -6.523413289626511e-01 -6.523511179648659e-01 -6.523596158248584e-01 -6.523668271884714e-01 - -6.523727568212391e-01 -6.523774093997819e-01 -6.523807893579161e-01 -6.523829012952149e-01 -6.523837498990516e-01 - -6.523833397960367e-01 -6.523816754611410e-01 -6.523787613199525e-01 -6.523746019358498e-01 -6.523692018302728e-01 - -6.523625654555820e-01 -6.523546972248629e-01 -6.523456017173497e-01 -6.523352835702680e-01 -6.523237468711672e-01 - -6.523109959032295e-01 -6.522970353197415e-01 -6.522818693382445e-01 -6.522655022842732e-01 -6.522479388337681e-01 - -6.522291831409690e-01 -6.522092393163972e-01 -6.521881118419591e-01 -6.521658050464721e-01 -6.521423231008568e-01 - -6.521176700882644e-01 -6.520918504277817e-01 -6.520648685798258e-01 -6.520367284462982e-01 -6.520074341903623e-01 - -6.519769901852531e-01 -6.519454004576026e-01 -6.519126690272374e-01 -6.518788000417296e-01 -6.518437978790763e-01 - -6.518076667685843e-01 -6.517704106505043e-01 -6.517320333460206e-01 -6.516925389358605e-01 -6.516519318553129e-01 - -6.516102158220000e-01 -6.515673946405215e-01 -6.515234728464969e-01 -6.514784543315630e-01 -6.514323427842886e-01 - -6.513851423523833e-01 -6.513368570527661e-01 -6.512874907235414e-01 -6.512370470939771e-01 -6.511855301990920e-01 - -6.511329442190841e-01 -6.510792928715797e-01 -6.510245798816351e-01 -6.509688091361985e-01 -6.509119847142907e-01 - -6.508541103488035e-01 -6.507951894034477e-01 -6.507352259931611e-01 -6.506742241942834e-01 -6.506121876059120e-01 - -6.505491199228429e-01 -6.504850249436106e-01 -6.504199065016956e-01 -6.503537680222150e-01 -6.502866130342899e-01 - -6.502184457971011e-01 -6.501492700279957e-01 -6.500790890906794e-01 -6.500079066129352e-01 -6.499357263329657e-01 - -6.498625519683058e-01 -6.497883869826074e-01 -6.497132350047277e-01 -6.496370998048885e-01 -6.495599847614121e-01 - -6.494818934475555e-01 -6.494028297363450e-01 -6.493227969968260e-01 -6.492417985197620e-01 -6.491598378013752e-01 - -6.490769185970405e-01 -6.489930446200032e-01 -6.489082192796405e-01 -6.488224457999440e-01 -6.487357275334984e-01 - -6.486480682838258e-01 -6.485594713376021e-01 -6.484699398068251e-01 -6.483794774339799e-01 -6.482880877536140e-01 - -6.481957740532812e-01 -6.481025397024727e-01 -6.480083880017639e-01 -6.479133221889776e-01 -6.478173456351086e-01 - -6.477204618036257e-01 -6.476226741599570e-01 -6.475239858039916e-01 -6.474243999826228e-01 -6.473239202990485e-01 - -6.472225498463482e-01 -6.471202916312221e-01 -6.470171489638400e-01 -6.469131252405815e-01 -6.468082238277443e-01 - -6.467024479420175e-01 -6.465958006550642e-01 -6.464882850509053e-01 -6.463799044773618e-01 -6.462706620382276e-01 - -6.461605607272912e-01 -6.460496040101232e-01 -6.459377950690467e-01 -6.458251367734501e-01 -6.457116323868038e-01 - -6.455972850655802e-01 -6.454820977029684e-01 -6.453660732942879e-01 -6.452492150754419e-01 -6.451315264887545e-01 - -6.450130102914885e-01 -6.448936692680686e-01 -6.447735068128447e-01 -6.446525260129213e-01 -6.445307296530088e-01 - -6.444081203587793e-01 -6.442847014715996e-01 -6.441604765089356e-01 -6.440354480546840e-01 -6.439096188724848e-01 - -6.437829920095609e-01 -6.436555704731397e-01 -6.435273570693492e-01 -6.433983545533010e-01 -6.432685663163126e-01 - -6.431379953365300e-01 -6.430066439769492e-01 -6.428745153347271e-01 -6.427416124750638e-01 -6.426079380140648e-01 - -6.424734947555180e-01 -6.423382856273998e-01 -6.422023135830728e-01 -6.420655814260000e-01 -6.419280919255173e-01 - -6.417898479598759e-01 -6.416508523135933e-01 -6.415111076305331e-01 -6.413706163966455e-01 -6.412293816393564e-01 - -6.410874066048897e-01 -6.409446936267265e-01 -6.408012453136449e-01 -6.406570646910840e-01 -6.405121544270317e-01 - -6.403665170374713e-01 -6.402201550644944e-01 -6.400730715072882e-01 -6.399252691822962e-01 -6.397767504407681e-01 - -6.396275180930010e-01 -6.394775749890055e-01 -6.393269236107165e-01 -6.391755662191552e-01 -6.390235053902433e-01 - -6.388707445708105e-01 -6.387172861694177e-01 -6.385631322023312e-01 -6.384082857966726e-01 -6.382527494896121e-01 - -6.380965253642142e-01 -6.379396162401521e-01 -6.377820248167250e-01 -6.376237535602883e-01 -6.374648052204416e-01 - -6.373051823107587e-01 -6.371448870124290e-01 -6.369839218821269e-01 -6.368222895078627e-01 -6.366599923302766e-01 - -6.364970329561520e-01 -6.363334139746031e-01 -6.361691377885151e-01 -6.360042067688202e-01 -6.358386233547334e-01 - -6.356723901317635e-01 -6.355055093799952e-01 -6.353379833438523e-01 -6.351698147827204e-01 -6.350010061497325e-01 - -6.348315596278746e-01 -6.346614776297652e-01 -6.344907627044540e-01 -6.343194173354602e-01 -6.341474433478579e-01 - -6.339748431233465e-01 -6.338016197812808e-01 -6.336277753787244e-01 -6.334533118997744e-01 -6.332782318265875e-01 - -6.331025376588558e-01 -6.329262316544187e-01 -6.327493157114107e-01 -6.325717923863455e-01 -6.323936643403999e-01 - -6.322149336030685e-01 -6.320356024195775e-01 -6.318556731749607e-01 -6.316751480498738e-01 -6.314940290711796e-01 - -6.313123183267710e-01 -6.311300184615836e-01 -6.309471319109403e-01 -6.307636607640942e-01 -6.305796070902886e-01 - -6.303949730482692e-01 -6.302097608691579e-01 -6.300239725606558e-01 -6.298376103756032e-01 -6.296506769748604e-01 - -6.294631743864889e-01 -6.292751044804592e-01 -6.290864694027335e-01 -6.288972714311484e-01 -6.287075127245377e-01 - -6.285171950849623e-01 -6.283263208775478e-01 -6.281348926187029e-01 -6.279429120773061e-01 -6.277503812180564e-01 - -6.275573022752827e-01 -6.273636774541002e-01 -6.271695087389834e-01 -6.269747979757735e-01 -6.267795473573458e-01 - -6.265837591630624e-01 -6.263874355834504e-01 -6.261905784094625e-01 -6.259931895045528e-01 -6.257952710369122e-01 - -6.255968250363517e-01 -6.253978534898084e-01 -6.251983584520242e-01 -6.249983420853732e-01 -6.247978064572296e-01 - -6.245967533125147e-01 -6.243951846742302e-01 -6.241931026018996e-01 -6.239905086686763e-01 -6.237874050561640e-01 - -6.235837942608177e-01 -6.233796778475696e-01 -6.231750576026635e-01 -6.229699356978790e-01 -6.227643140512986e-01 - -6.225581944126894e-01 -6.223515785171654e-01 -6.221444686516174e-01 -6.219368669106876e-01 -6.217287748516653e-01 - -6.215201944179222e-01 -6.213111276341791e-01 -6.211015763012264e-01 -6.208915420627059e-01 -6.206810267189914e-01 - -6.204700325606027e-01 -6.202585614407183e-01 -6.200466150025669e-01 -6.198341952555039e-01 -6.196213039807257e-01 - -6.194079427661365e-01 -6.191941133919308e-01 -6.189798178811384e-01 -6.187650583625046e-01 -6.185498365366234e-01 - -6.183341539791172e-01 -6.181180123373080e-01 -6.179014136693182e-01 -6.176843597571294e-01 -6.174668518753883e-01 - -6.172488922358068e-01 -6.170304830078728e-01 -6.168116255085183e-01 -6.165923213940302e-01 -6.163725725542526e-01 - -6.161523808379610e-01 -6.159317477445455e-01 -6.157106747923912e-01 -6.154891641891720e-01 -6.152672177134336e-01 - -6.150448367622374e-01 -6.148220230127394e-01 -6.145987783325538e-01 -6.143751045698781e-01 -6.141510029326600e-01 - -6.139264750393221e-01 -6.137015231470567e-01 -6.134761489851926e-01 -6.132503540152313e-01 -6.130241396532106e-01 - -6.127975076851865e-01 -6.125704598048077e-01 -6.123429972989166e-01 -6.121151221351967e-01 -6.118868363314907e-01 - -6.116581411278224e-01 -6.114290380220153e-01 -6.111995287783158e-01 -6.109696151823703e-01 -6.107392985450728e-01 - -6.105085801024925e-01 -6.102774622058419e-01 -6.100459465922933e-01 -6.098140342484372e-01 -6.095817267256873e-01 - -6.093490257933440e-01 -6.091159331809802e-01 -6.088824500709522e-01 -6.086485779905337e-01 -6.084143191489354e-01 - -6.081796748129595e-01 -6.079446461968719e-01 -6.077092351925356e-01 -6.074734432434898e-01 -6.072372716150822e-01 - -6.070007218360295e-01 -6.067637956065657e-01 -6.065264946232775e-01 -6.062888203126375e-01 -6.060507740692458e-01 - -6.058123573561740e-01 -6.055735718185850e-01 -6.053344188005130e-01 -6.050948994718379e-01 -6.048550157592759e-01 - -6.046147693250087e-01 -6.043741612917217e-01 -6.041331930896253e-01 -6.038918662688606e-01 -6.036501823335466e-01 - -6.034081424814672e-01 -6.031657481058161e-01 -6.029230011393863e-01 -6.026799028730719e-01 -6.024364544399844e-01 - -6.021926574869638e-01 -6.019485136055120e-01 -6.017040241022006e-01 -6.014591897708976e-01 -6.012140122415236e-01 - -6.009684936432825e-01 -6.007226351565053e-01 -6.004764378633045e-01 -6.002299030368295e-01 -5.999830322604393e-01 - -5.997358269112610e-01 -5.994882881008079e-01 -5.992404174674395e-01 -5.989922165630734e-01 -5.987436865327392e-01 - -5.984948286273432e-01 -5.982456442781595e-01 -5.979961350600861e-01 -5.977463018616249e-01 -5.974961457245347e-01 - -5.972456688462123e-01 -5.969948725706038e-01 -5.967437577688297e-01 -5.964923259025159e-01 -5.962405782771161e-01 - -5.959885160038786e-01 -5.957361402849749e-01 -5.954834525607696e-01 -5.952304544228757e-01 -5.949771471628894e-01 - -5.947235319540697e-01 -5.944696099654433e-01 -5.942153825546195e-01 -5.939608509107162e-01 -5.937060159741117e-01 - -5.934508794411635e-01 -5.931954428951332e-01 -5.929397071302310e-01 -5.926836734445704e-01 -5.924273432987167e-01 - -5.921707177793331e-01 -5.919137978828047e-01 -5.916565847753502e-01 -5.913990801532651e-01 -5.911412853604616e-01 - -5.908832013941032e-01 -5.906248293335863e-01 -5.903661704565201e-01 -5.901072261246485e-01 -5.898479972855557e-01 - -5.895884850905705e-01 -5.893286910470348e-01 -5.890686164387193e-01 -5.888082623596927e-01 -5.885476297953414e-01 - -5.882867200485414e-01 -5.880255342895034e-01 -5.877640732646211e-01 -5.875023385228563e-01 -5.872403317009627e-01 - -5.869780535979796e-01 -5.867155052441069e-01 -5.864526878805291e-01 -5.861896026754034e-01 -5.859262506932092e-01 - -5.856626329801135e-01 -5.853987507817091e-01 -5.851346053972879e-01 -5.848701980701103e-01 -5.846055297559873e-01 - -5.843406014627009e-01 -5.840754143260567e-01 -5.838099692919883e-01 -5.835442675863415e-01 -5.832783108438364e-01 - -5.830120998737411e-01 -5.827456354637697e-01 -5.824789190313094e-01 -5.822119517157962e-01 -5.819447343999242e-01 - -5.816772678604962e-01 -5.814095534384316e-01 -5.811415926659900e-01 -5.808733865100626e-01 -5.806049358083534e-01 - -5.803362414940428e-01 -5.800673049021045e-01 -5.797981269727348e-01 -5.795287083747186e-01 -5.792590507223763e-01 - -5.789891553127540e-01 -5.787190227795775e-01 -5.784486540773595e-01 -5.781780503537821e-01 -5.779072127885909e-01 - -5.776361421027820e-01 -5.773648392415993e-01 -5.770933058481036e-01 -5.768215427543451e-01 -5.765495506173008e-01 - -5.762773307782053e-01 -5.760048843724456e-01 -5.757322122309633e-01 -5.754593149355522e-01 -5.751861936930261e-01 - -5.749128500443350e-01 -5.746392847733658e-01 -5.743654986749642e-01 -5.740914927526973e-01 -5.738172681170074e-01 - -5.735428256834612e-01 -5.732681661997935e-01 -5.729932909950833e-01 -5.727182011898047e-01 -5.724428973589288e-01 - -5.721673806475209e-01 -5.718916522032619e-01 -5.716157126986885e-01 -5.713395629769044e-01 -5.710632040862346e-01 - -5.707866372440725e-01 -5.705098634203313e-01 -5.702328834166335e-01 -5.699556980810941e-01 -5.696783084118523e-01 - -5.694007154024264e-01 -5.691229196446771e-01 -5.688449222662509e-01 -5.685667247951188e-01 -5.682883277592247e-01 - -5.680097317796297e-01 -5.677309379467054e-01 -5.674519473718960e-01 -5.671727608332666e-01 -5.668933787438524e-01 - -5.666138024324125e-01 -5.663340332775648e-01 -5.660540719736767e-01 -5.657739191147048e-01 -5.654935755198692e-01 - -5.652130424887296e-01 -5.649323205844615e-01 -5.646514102596061e-01 -5.643703131320561e-01 -5.640890302500955e-01 - -5.638075621229782e-01 -5.635259096013298e-01 -5.632440735413435e-01 -5.629620547371306e-01 -5.626798540413637e-01 - -5.623974724401825e-01 -5.621149109968532e-01 -5.618321704141040e-01 -5.615492514232792e-01 -5.612661549867731e-01 - -5.609828820346520e-01 -5.606994332802816e-01 -5.604158091721365e-01 -5.601320109850756e-01 -5.598480400285579e-01 - -5.595638966628304e-01 -5.592795815381203e-01 -5.589950956088516e-01 -5.587104398719418e-01 -5.584256150214867e-01 - -5.581406216413944e-01 -5.578554608147975e-01 -5.575701335442586e-01 -5.572846406020895e-01 -5.569989825973618e-01 - -5.567131602740183e-01 -5.564271745453506e-01 -5.561410260628522e-01 -5.558547156725416e-01 -5.555682445647333e-01 - -5.552816133007876e-01 -5.549948224318785e-01 -5.547078730025937e-01 -5.544207659049382e-01 -5.541335017868810e-01 - -5.538460810525171e-01 -5.535585047530838e-01 -5.532707741030544e-01 -5.529828895161875e-01 -5.526948516856666e-01 - -5.524066615722431e-01 -5.521183198617187e-01 -5.518298271294942e-01 -5.515411840216864e-01 -5.512523916981388e-01 - -5.509634510475757e-01 -5.506743625070015e-01 -5.503851268106821e-01 -5.500957448096843e-01 -5.498062173123895e-01 - -5.495165448046009e-01 -5.492267279674086e-01 -5.489367680360671e-01 -5.486466657159732e-01 -5.483564214808752e-01 - -5.480660360175322e-01 -5.477755101695411e-01 -5.474848446983241e-01 -5.471940399297857e-01 -5.469030967097296e-01 - -5.466120162347039e-01 -5.463207992130580e-01 -5.460294461220425e-01 -5.457379574365921e-01 -5.454463341419615e-01 - -5.451545769787555e-01 -5.448626863052353e-01 -5.445706629798505e-01 -5.442785079610155e-01 -5.439862220351145e-01 - -5.436938056623958e-01 -5.434012594168094e-01 -5.431085842649811e-01 -5.428157805859503e-01 -5.425228488112607e-01 - -5.422297902211034e-01 -5.419366056396356e-01 -5.416432955189590e-01 -5.413498603513526e-01 -5.410563008101139e-01 - -5.407626176406882e-01 -5.404688113584152e-01 -5.401748827259091e-01 -5.398808327262222e-01 -5.395866619984641e-01 - -5.392923710452394e-01 -5.389979603718316e-01 -5.387034307479797e-01 -5.384087828255361e-01 -5.381140170098579e-01 - -5.378191341794292e-01 -5.375241352697128e-01 -5.372290208939874e-01 -5.369337913756430e-01 -5.366384472427702e-01 - -5.363429897090184e-01 -5.360474189692397e-01 -5.357517350808286e-01 -5.354559397287709e-01 -5.351600336380363e-01 - -5.348640167550405e-01 -5.345678898586708e-01 -5.342716537895550e-01 -5.339753091509816e-01 -5.336788560795809e-01 - -5.333822952812678e-01 -5.330856281219807e-01 -5.327888549366336e-01 -5.324919760228772e-01 -5.321949921530423e-01 - -5.318979038948367e-01 -5.316007117591099e-01 -5.313034163655616e-01 -5.310060185016283e-01 -5.307085188690476e-01 - -5.304109178113635e-01 -5.301132159560333e-01 -5.298154141057816e-01 -5.295175129068631e-01 -5.292195125739295e-01 - -5.289214133220888e-01 -5.286232164928936e-01 -5.283249229043371e-01 -5.280265326905970e-01 -5.277280463629660e-01 - -5.274294646406563e-01 -5.271307882435877e-01 -5.268320172699235e-01 -5.265331522204252e-01 -5.262341943956992e-01 - -5.259351442515741e-01 -5.256360020246456e-01 -5.253367683007200e-01 -5.250374438802079e-01 -5.247380293156688e-01 - -5.244385244793137e-01 -5.241389303158239e-01 -5.238392481089597e-01 -5.235394779437145e-01 -5.232396201567239e-01 - -5.229396754457293e-01 -5.226396444439171e-01 -5.223395275325885e-01 -5.220393250130385e-01 -5.217390378529512e-01 - -5.214386667612969e-01 -5.211382119631184e-01 -5.208376739941909e-01 -5.205370535049869e-01 -5.202363510969753e-01 - -5.199355670763710e-01 -5.196347019022574e-01 -5.193337564915598e-01 -5.190327313042545e-01 -5.187316266472318e-01 - -5.184304431068453e-01 -5.181291813913007e-01 -5.178278420262173e-01 -5.175264249304404e-01 -5.172249309061349e-01 - -5.169233612064826e-01 -5.166217158673360e-01 -5.163199951550123e-01 -5.160181998004911e-01 -5.157163303784532e-01 - -5.154143871836301e-01 -5.151123703899823e-01 -5.148102810445049e-01 -5.145081200022412e-01 -5.142058873966443e-01 - -5.139035834879907e-01 -5.136012088439446e-01 -5.132987643470369e-01 -5.129962500176725e-01 -5.126936660139045e-01 - -5.123910137907831e-01 -5.120882937169244e-01 -5.117855056864241e-01 -5.114826505830118e-01 -5.111797289351894e-01 - -5.108767409175631e-01 -5.105736869791608e-01 -5.102705678009448e-01 -5.099673841164564e-01 -5.096641361609235e-01 - -5.093608243087677e-01 -5.090574492425100e-01 -5.087540114820200e-01 -5.084505112619658e-01 -5.081469486274651e-01 - -5.078433245912960e-01 -5.075396400795943e-01 -5.072358951124865e-01 -5.069320899536702e-01 -5.066282251477461e-01 - -5.063243014155288e-01 -5.060203189866231e-01 -5.057162780382299e-01 -5.054121795257869e-01 -5.051080240346536e-01 - -5.048038117428125e-01 -5.044995428560932e-01 -5.041952179946867e-01 -5.038908379779851e-01 -5.035864027540428e-01 - -5.032819126747086e-01 -5.029773687584369e-01 -5.026727713803431e-01 -5.023681207203433e-01 -5.020634170773620e-01 - -5.017586611304518e-01 -5.014538534087800e-01 -5.011489939472488e-01 -5.008440834008399e-01 -5.005391225202214e-01 - -5.002341114848970e-01 -4.999290507534227e-01 -4.996239408965545e-01 -4.993187821357916e-01 -4.990135746184980e-01 - -4.987083187010172e-01 -4.984030154770353e-01 -4.980976654859903e-01 -4.977922686591017e-01 -4.974868253646026e-01 - -4.971813362150598e-01 -4.968758018164073e-01 -4.965702219796178e-01 -4.962645970518764e-01 -4.959589283986423e-01 - -4.956532161259331e-01 -4.953474601672504e-01 -4.950416611894621e-01 -4.947358197709370e-01 -4.944299362131679e-01 - -4.941240104625670e-01 -4.938180432013966e-01 -4.935120353360559e-01 -4.932059869696777e-01 -4.928998983832586e-01 - -4.925937700937396e-01 -4.922876025288242e-01 -4.919813957951697e-01 -4.916751499430368e-01 -4.913688660561277e-01 - -4.910625447982750e-01 -4.907561860728009e-01 -4.904497902858990e-01 -4.901433579647613e-01 -4.898368894758774e-01 - -4.895303847877975e-01 -4.892238442443610e-01 -4.889172690570770e-01 -4.886106594399146e-01 -4.883040152916479e-01 - -4.879973371198497e-01 -4.876906255185612e-01 -4.873838808516193e-01 -4.870771028969680e-01 -4.867702923235035e-01 - -4.864634502410182e-01 -4.861565765237592e-01 -4.858496713307078e-01 -4.855427352755911e-01 -4.852357685536697e-01 - -4.849287714451036e-01 -4.846217444589359e-01 -4.843146879997467e-01 -4.840076025123002e-01 -4.837004885060202e-01 - -4.833933461066379e-01 -4.830861755003688e-01 -4.827789772517898e-01 -4.824717516127337e-01 -4.821644988235214e-01 - -4.818572195031119e-01 -4.815499140763169e-01 -4.812425828318353e-01 -4.809352261296052e-01 -4.806278443199989e-01 - -4.803204376463540e-01 -4.800130060714603e-01 -4.797055501717924e-01 -4.793980709573083e-01 -4.790905684347367e-01 - -4.787830426340720e-01 -4.784754939887473e-01 -4.781679231200341e-01 -4.778603302286951e-01 -4.775527150015833e-01 - -4.772450784284375e-01 -4.769374213667171e-01 -4.766297434623847e-01 -4.763220450397429e-01 -4.760143266869929e-01 - -4.757065886153464e-01 -4.753988310011543e-01 -4.750910541528841e-01 -4.747832586964973e-01 -4.744754450010169e-01 - -4.741676132522562e-01 -4.738597638648681e-01 -4.735518971269201e-01 -4.732440131603057e-01 -4.729361121339242e-01 - -4.726281945136708e-01 -4.723202610280838e-01 -4.720123119889466e-01 -4.717043475548789e-01 -4.713963678930571e-01 - -4.710883732580126e-01 -4.707803639362851e-01 -4.704723402372425e-01 -4.701643027667922e-01 -4.698562520096238e-01 - -4.695481878708884e-01 -4.692401107063794e-01 -4.689320210638210e-01 -4.686239190614940e-01 -4.683158048406638e-01 - -4.680076787162389e-01 -4.676995413185929e-01 -4.673913930202820e-01 -4.670832339045677e-01 -4.667750641928977e-01 - -4.664668842720264e-01 -4.661586945788764e-01 -4.658504950199774e-01 -4.655422858974875e-01 -4.652340682220931e-01 - -4.649258420178881e-01 -4.646176071935555e-01 -4.643093642460228e-01 -4.640011135361189e-01 -4.636928552533583e-01 - -4.633845894780055e-01 -4.630763167063440e-01 -4.627680375263447e-01 -4.624597520114774e-01 -4.621514604268375e-01 - -4.618431632080228e-01 -4.615348605890552e-01 -4.612265525685530e-01 -4.609182391698630e-01 -4.606099213200685e-01 - -4.603015994943055e-01 -4.599932734377760e-01 -4.596849434943749e-01 -4.593766101319814e-01 -4.590682736286037e-01 - -4.587599339472412e-01 -4.584515913122191e-01 -4.581432465762054e-01 -4.578348999443045e-01 -4.575265513883392e-01 - -4.572182012155285e-01 -4.569098498253546e-01 -4.566014974456956e-01 -4.562931438038699e-01 -4.559847894939479e-01 - -4.556764355440957e-01 -4.553680818446301e-01 -4.550597283221777e-01 -4.547513752454754e-01 -4.544430231318768e-01 - -4.541346721146189e-01 -4.538263219879204e-01 -4.535179736207505e-01 -4.532096276207381e-01 -4.529012837320638e-01 - -4.525929421989657e-01 -4.522846033793929e-01 -4.519762674029318e-01 -4.516679344715044e-01 -4.513596049388520e-01 - -4.510512793496801e-01 -4.507429578901284e-01 -4.504346405869434e-01 -4.501263277269192e-01 -4.498180196893253e-01 - -4.495097167463535e-01 -4.492014186979058e-01 -4.488931259139300e-01 -4.485848392328776e-01 -4.482765586745183e-01 - -4.479682843350483e-01 -4.476600166157323e-01 -4.473517555800268e-01 -4.470435013321629e-01 -4.467352542154915e-01 - -4.464270145748750e-01 -4.461187827567155e-01 -4.458105590951706e-01 -4.455023436689998e-01 -4.451941365719282e-01 - -4.448859382022067e-01 -4.445777486373541e-01 -4.442695679571050e-01 -4.439613968717006e-01 -4.436532356916815e-01 - -4.433450843880059e-01 -4.430369431657580e-01 -4.427288122616561e-01 -4.424206918620519e-01 -4.421125820372482e-01 - -4.418044832064567e-01 -4.414963960811867e-01 -4.411883204960218e-01 -4.408802564087612e-01 -4.405722043668788e-01 - -4.402641646390490e-01 -4.399561373068210e-01 -4.396481224088197e-01 -4.393401203468038e-01 -4.390321316119934e-01 - -4.387241564347777e-01 -4.384161947343386e-01 -4.381082465266398e-01 -4.378003125430411e-01 -4.374923928277115e-01 - -4.371844871230922e-01 -4.368765963346815e-01 -4.365687207997857e-01 -4.362608601883623e-01 -4.359530147661063e-01 - -4.356451849773876e-01 -4.353373711547212e-01 -4.350295729831375e-01 -4.347217906709347e-01 -4.344140253247259e-01 - -4.341062767701542e-01 -4.337985447574569e-01 -4.334908298973194e-01 -4.331831324142745e-01 -4.328754522838512e-01 - -4.325677895304312e-01 -4.322601446380396e-01 -4.319525182069930e-01 -4.316449103351276e-01 -4.313373209430619e-01 - -4.310297500384340e-01 -4.307221981580691e-01 -4.304146654764764e-01 -4.301071518609876e-01 -4.297996578556980e-01 - -4.294921838432407e-01 -4.291847298181669e-01 -4.288772959356691e-01 -4.285698824691314e-01 -4.282624896947286e-01 - -4.279551173581843e-01 -4.276477655542056e-01 -4.273404353166645e-01 -4.270331268873108e-01 -4.267258400671970e-01 - -4.264185747737768e-01 -4.261113314513503e-01 -4.258041105111009e-01 -4.254969114260224e-01 -4.251897346526543e-01 - -4.248825811839114e-01 -4.245754507348872e-01 -4.242683433304872e-01 -4.239612594489042e-01 -4.236541990429175e-01 - -4.233471621233121e-01 -4.230401489624036e-01 -4.227331599159186e-01 -4.224261953202194e-01 -4.221192554076946e-01 - -4.218123401221037e-01 -4.215054495276057e-01 -4.211985840665567e-01 -4.208917437341202e-01 -4.205849285470991e-01 - -4.202781391077526e-01 -4.199713756820169e-01 -4.196646382796324e-01 -4.193579269625680e-01 -4.190512419898234e-01 - -4.187445835885104e-01 -4.184379514023820e-01 -4.181313458657921e-01 -4.178247679943504e-01 -4.175182174706034e-01 - -4.172116941638125e-01 -4.169051985589959e-01 -4.165987308801878e-01 -4.162922910262470e-01 -4.159858787333477e-01 - -4.156794948456864e-01 -4.153731400237493e-01 -4.150668138055245e-01 -4.147605162480433e-01 -4.144542477033889e-01 - -4.141480084083939e-01 -4.138417983331389e-01 -4.135356175072968e-01 -4.132294665425894e-01 -4.129233456523720e-01 - -4.126172547353913e-01 -4.123111939769975e-01 -4.120051637027982e-01 -4.116991641480549e-01 -4.113931948631621e-01 - -4.110872561089984e-01 -4.107813489720965e-01 -4.104754732505308e-01 -4.101696286974395e-01 -4.098638156566466e-01 - -4.095580344057681e-01 -4.092522850492459e-01 -4.089465675148873e-01 -4.086408821301867e-01 -4.083352292811099e-01 - -4.080296090087697e-01 -4.077240214925531e-01 -4.074184669621912e-01 -4.071129454474836e-01 -4.068074568206541e-01 - -4.065020011172992e-01 -4.061965792344674e-01 -4.058911914234347e-01 -4.055858372701102e-01 -4.052805169731385e-01 - -4.049752308691225e-01 -4.046699791746853e-01 -4.043647616984872e-01 -4.040595785275335e-01 -4.037544302850327e-01 - -4.034493171430220e-01 -4.031442391412985e-01 -4.028391964411297e-01 -4.025341890399178e-01 -4.022292169515432e-01 - -4.019242804318620e-01 -4.016193797575413e-01 -4.013145151618574e-01 -4.010096867767989e-01 -4.007048946739946e-01 - -4.004001389575452e-01 -4.000954199442892e-01 -3.997907376333255e-01 -3.994860918450180e-01 -3.991814831388100e-01 - -3.988769118682245e-01 -3.985723779299208e-01 -3.982678813725196e-01 -3.979634224118638e-01 -3.976590013430957e-01 - -3.973546179557737e-01 -3.970502723184750e-01 -3.967459652757308e-01 -3.964416967373386e-01 -3.961374664325438e-01 - -3.958332748416728e-01 -3.955291221412219e-01 -3.952250082276700e-01 -3.949209329883424e-01 -3.946168969005399e-01 - -3.943129006192436e-01 -3.940089438207542e-01 -3.937050264421336e-01 -3.934011488327164e-01 -3.930973111392007e-01 - -3.927935133510078e-01 -3.924897554398895e-01 -3.921860379028622e-01 -3.918823611410527e-01 -3.915787251272155e-01 - -3.912751296302741e-01 -3.909715747221262e-01 -3.906680610479274e-01 -3.903645884467465e-01 -3.900611567141484e-01 - -3.897577665105899e-01 -3.894544180732338e-01 -3.891511112918067e-01 -3.888478460867855e-01 -3.885446227676595e-01 - -3.882414417069796e-01 -3.879383024897914e-01 -3.876352053351357e-01 -3.873321510269954e-01 -3.870291394376005e-01 - -3.867261704550462e-01 -3.864232442776043e-01 -3.861203610538394e-01 -3.858175208256477e-01 -3.855147235659399e-01 - -3.852119696012977e-01 -3.849092593053318e-01 -3.846065928280623e-01 -3.843039700003283e-01 -3.840013907871894e-01 - -3.836988557264463e-01 -3.833963646642737e-01 -3.830939173673272e-01 -3.827915146861536e-01 -3.824891567344230e-01 - -3.821868431312930e-01 -3.818845742897094e-01 -3.815823505036508e-01 -3.812801717050347e-01 -3.809780375081945e-01 - -3.806759481537249e-01 -3.803739045452896e-01 -3.800719066553854e-01 -3.797699542729503e-01 -3.794680474344709e-01 - -3.791661864151066e-01 -3.788643713579414e-01 -3.785626020610045e-01 -3.782608787892401e-01 -3.779592019649877e-01 - -3.776575717504184e-01 -3.773559879986245e-01 -3.770544506277551e-01 -3.767529601718599e-01 -3.764515165488658e-01 - -3.761501194541416e-01 -3.758487697291592e-01 -3.755474675286999e-01 -3.752462123142175e-01 -3.749450044400430e-01 - -3.746438442933219e-01 -3.743427319385532e-01 -3.740416670860849e-01 -3.737406497610264e-01 -3.734396805632812e-01 - -3.731387597991040e-01 -3.728378873981389e-01 -3.725370629746288e-01 -3.722362869751284e-01 -3.719355598195744e-01 - -3.716348809475082e-01 -3.713342505611615e-01 -3.710336692885385e-01 -3.707331373206220e-01 -3.704326544188714e-01 - -3.701322203470578e-01 -3.698318357923215e-01 -3.695315007664240e-01 -3.692312147431765e-01 -3.689309784821330e-01 - -3.686307923312130e-01 -3.683306558583173e-01 -3.680305692832940e-01 -3.677305328772401e-01 -3.674305466155561e-01 - -3.671306102835627e-01 -3.668307239979260e-01 -3.665308885123383e-01 -3.662311039528895e-01 -3.659313700864294e-01 - -3.656316867340536e-01 -3.653320542170925e-01 -3.650324728818179e-01 -3.647329423252613e-01 -3.644334627823841e-01 - -3.641340348652060e-01 -3.638346584224414e-01 -3.635353333854674e-01 -3.632360599381753e-01 -3.629368383087880e-01 - -3.626376683911322e-01 -3.623385498640058e-01 -3.620394834143431e-01 -3.617404694429358e-01 -3.614415075289109e-01 - -3.611425978472304e-01 -3.608437406892576e-01 -3.605449360396625e-01 -3.602461837170217e-01 -3.599474837636126e-01 - -3.596488368123176e-01 -3.593502429497555e-01 -3.590517019950174e-01 -3.587532141258951e-01 -3.584547794364419e-01 - -3.581563978967544e-01 -3.578580694598877e-01 -3.575597943932133e-01 -3.572615731273898e-01 -3.569634054963255e-01 - -3.566652915450074e-01 -3.563672316398869e-01 -3.560692255181004e-01 -3.557712730433470e-01 -3.554733745722332e-01 - -3.551755304325120e-01 -3.548777407381354e-01 -3.545800053200450e-01 -3.542823243820459e-01 -3.539846981602633e-01 - -3.536871265064687e-01 -3.533896092936707e-01 -3.530921466577667e-01 -3.527947392696623e-01 -3.524973870763591e-01 - -3.522000896417020e-01 -3.519028473926252e-01 -3.516056606257513e-01 -3.513085292624320e-01 -3.510114529438408e-01 - -3.507144318797571e-01 -3.504174668509267e-01 -3.501205576763053e-01 -3.498237041407538e-01 -3.495269064579332e-01 - -3.492301648012658e-01 -3.489334792023763e-01 -3.486368495320163e-01 -3.483402759532310e-01 -3.480437587608516e-01 - -3.477472981563033e-01 -3.474508940116457e-01 -3.471545462266357e-01 -3.468582552838557e-01 -3.465620210594309e-01 - -3.462658431862374e-01 -3.459697223261950e-01 -3.456736587298253e-01 -3.453776521244075e-01 -3.450817025977070e-01 - -3.447858103250944e-01 -3.444899754033867e-01 -3.441941976114102e-01 -3.438984770490408e-01 -3.436028143288083e-01 - -3.433072093931014e-01 -3.430116620696204e-01 -3.427161725111446e-01 -3.424207408695913e-01 -3.421253671506906e-01 - -3.418300511322294e-01 -3.415347931565998e-01 -3.412395936962896e-01 -3.409444525560181e-01 -3.406493696743920e-01 - -3.403543451949735e-01 -3.400593792856730e-01 -3.397644718554241e-01 -3.394696227303268e-01 -3.391748324448361e-01 - -3.388801012525273e-01 -3.385854289098167e-01 -3.382908154719833e-01 -3.379962610967925e-01 -3.377017658856785e-01 - -3.374073296405456e-01 -3.371129523992028e-01 -3.368186347618567e-01 -3.365243767275647e-01 -3.362301780997549e-01 - -3.359360390044588e-01 -3.356419595939377e-01 -3.353479398983790e-01 -3.350539796822969e-01 -3.347600792157354e-01 - -3.344662390001809e-01 -3.341724588683134e-01 -3.338787387386647e-01 -3.335850787505256e-01 -3.332914790393797e-01 - -3.329979395469141e-01 -3.327044601082655e-01 -3.324110411740308e-01 -3.321176830325031e-01 -3.318243854727410e-01 - -3.315311485033696e-01 -3.312379722613320e-01 -3.309448568815591e-01 -3.306518021855764e-01 -3.303588081394571e-01 - -3.300658753265905e-01 -3.297730038003383e-01 -3.294801933460689e-01 -3.291874440822869e-01 -3.288947561448500e-01 - -3.286021295596533e-01 -3.283095641084477e-01 -3.280170600152969e-01 -3.277246178092963e-01 -3.274322373144385e-01 - -3.271399184133136e-01 -3.268476612759387e-01 -3.265554660369243e-01 -3.262633326374516e-01 -3.259712608638953e-01 - -3.256792511518811e-01 -3.253873038511834e-01 -3.250954187049387e-01 -3.248035957166725e-01 -3.245118350464998e-01 - -3.242201368055027e-01 -3.239285008232202e-01 -3.236369270127419e-01 -3.233454159517716e-01 -3.230539677655248e-01 - -3.227625822208953e-01 -3.224712593689608e-01 -3.221799993547627e-01 -3.218888022707884e-01 -3.215976678728723e-01 - -3.213065962862219e-01 -3.210155880538063e-01 -3.207246430922022e-01 -3.204337612603162e-01 -3.201429426545060e-01 - -3.198521874188910e-01 -3.195614955407240e-01 -3.192708667833873e-01 -3.189803015317205e-01 -3.186898001852494e-01 - -3.183993624745159e-01 -3.181089883645859e-01 -3.178186780215274e-01 -3.175284315788672e-01 -3.172382488912609e-01 - -3.169481298117736e-01 -3.166580748847834e-01 -3.163680842820584e-01 -3.160781577505636e-01 -3.157882953403168e-01 - -3.154984971942622e-01 -3.152087634033934e-01 -3.149190937439705e-01 -3.146294882798918e-01 -3.143399475483734e-01 - -3.140504715109739e-01 -3.137610600081304e-01 -3.134717131245625e-01 -3.131824310053718e-01 -3.128932136614712e-01 - -3.126040608259110e-01 -3.123149728003283e-01 -3.120259500284038e-01 -3.117369923103007e-01 -3.114480995811182e-01 - -3.111592719695180e-01 -3.108705096041851e-01 -3.105818123704323e-01 -3.102931800853200e-01 -3.100046132424714e-01 - -3.097161120700553e-01 -3.094276763275429e-01 -3.091393060498078e-01 -3.088510013669117e-01 -3.085627623567511e-01 - -3.082745888090075e-01 -3.079864807413559e-01 -3.076984387104112e-01 -3.074104627037881e-01 -3.071225525229602e-01 - -3.068347082674415e-01 -3.065469300647063e-01 -3.062592179233167e-01 -3.059715715883658e-01 -3.056839913222955e-01 - -3.053964776128304e-01 -3.051090302429263e-01 -3.048216491115613e-01 -3.045343343664140e-01 -3.042470861256498e-01 - -3.039599042912569e-01 -3.036727886539801e-01 -3.033857396783212e-01 -3.030987576532087e-01 -3.028118423290159e-01 - -3.025249936916685e-01 -3.022382118572411e-01 -3.019514969324824e-01 -3.016648487319269e-01 -3.013782672163520e-01 - -3.010917529380510e-01 -3.008053059332530e-01 -3.005189259718208e-01 -3.002326131255288e-01 -2.999463675243501e-01 - -2.996601892115071e-01 -2.993740779431134e-01 -2.990880338991673e-01 -2.988020575697556e-01 -2.985161488129333e-01 - -2.982303074956766e-01 -2.979445337070337e-01 -2.976588275957710e-01 -2.973731891105994e-01 -2.970876179949718e-01 - -2.968021146693378e-01 -2.965166794729635e-01 -2.962313121299224e-01 -2.959460126205053e-01 -2.956607810824475e-01 - -2.953756176130727e-01 -2.950905220348498e-01 -2.948054942542040e-01 -2.945205348259674e-01 -2.942356438398593e-01 - -2.939508210351428e-01 -2.936660664737455e-01 -2.933813802767271e-01 -2.930967624892026e-01 -2.928122128931882e-01 - -2.925277316158055e-01 -2.922433191494531e-01 -2.919589753765323e-01 -2.916747001400424e-01 -2.913904935350139e-01 - -2.911063557118664e-01 -2.908222866434848e-01 -2.905382860439090e-01 -2.902543542778646e-01 -2.899704917370004e-01 - -2.896866981425306e-01 -2.894029734511842e-01 -2.891193178139609e-01 -2.888357313345801e-01 -2.885522138545054e-01 - -2.882687652243500e-01 -2.879853859636904e-01 -2.877020762131379e-01 -2.874188357014512e-01 -2.871356645025479e-01 - -2.868525627422169e-01 -2.865695304469716e-01 -2.862865673963798e-01 -2.860036736642309e-01 -2.857208497673618e-01 - -2.854380956360413e-01 -2.851554110854154e-01 -2.848727961880673e-01 -2.845902510831507e-01 -2.843077757793696e-01 - -2.840253700094237e-01 -2.837430340397069e-01 -2.834607682748240e-01 -2.831785725328111e-01 -2.828964467316310e-01 - -2.826143909542473e-01 -2.823324053101364e-01 -2.820504896922502e-01 -2.817686439371250e-01 -2.814868685136343e-01 - -2.812051636152371e-01 -2.809235289745332e-01 -2.806419646055033e-01 -2.803604706362606e-01 -2.800790471610514e-01 - -2.797976939416736e-01 -2.795164109639519e-01 -2.792351987736799e-01 -2.789540573481899e-01 -2.786729864814172e-01 - -2.783919862645312e-01 -2.781110567914744e-01 -2.778301980476193e-01 -2.775494098202491e-01 -2.772686923282846e-01 - -2.769880459823117e-01 -2.767074706347814e-01 -2.764269661749121e-01 -2.761465326612197e-01 -2.758661702373058e-01 - -2.755858788282252e-01 -2.753056582075042e-01 -2.750255088041456e-01 -2.747454308713073e-01 -2.744654241403574e-01 - -2.741854886058927e-01 -2.739056243892176e-01 -2.736258315782464e-01 -2.733461099674180e-01 -2.730664595012521e-01 - -2.727868807168794e-01 -2.725073736368404e-01 -2.722279380246611e-01 -2.719485739535283e-01 -2.716692815376729e-01 - -2.713900607905190e-01 -2.711109114418696e-01 -2.708318336740216e-01 -2.705528279896257e-01 -2.702738942089605e-01 - -2.699950321750810e-01 -2.697162419812612e-01 -2.694375237750356e-01 -2.691588774953904e-01 -2.688803028674867e-01 - -2.686018002777490e-01 -2.683233700490228e-01 -2.680450119322323e-01 -2.677667258920440e-01 -2.674885120321642e-01 - -2.672103704327183e-01 -2.669323009240009e-01 -2.666543034142266e-01 -2.663763784024609e-01 -2.660985259744725e-01 - -2.658207458961011e-01 -2.655430381891060e-01 -2.652654029648259e-01 -2.649878402880381e-01 -2.647103499069445e-01 - -2.644329319184849e-01 -2.641555868035665e-01 -2.638783144422805e-01 -2.636011146840161e-01 -2.633239876271375e-01 - -2.630469333706403e-01 -2.627699518665801e-01 -2.624930428881614e-01 -2.622162067361601e-01 -2.619394437425979e-01 - -2.616627537197243e-01 -2.613861365959049e-01 -2.611095924398818e-01 -2.608331213683194e-01 -2.605567232565551e-01 - -2.602803979638560e-01 -2.600041459185203e-01 -2.597279672559259e-01 -2.594518617711524e-01 -2.591758294668244e-01 - -2.588998704444723e-01 -2.586239847880919e-01 -2.583481722507706e-01 -2.580724328621725e-01 -2.577967671126083e-01 - -2.575211749406902e-01 -2.572456561780725e-01 -2.569702108956164e-01 -2.566948391959332e-01 -2.564195410517088e-01 - -2.561443162003717e-01 -2.558691649278121e-01 -2.555940876367002e-01 -2.553190840839927e-01 -2.550441541814838e-01 - -2.547692980445108e-01 -2.544945157803290e-01 -2.542198072584164e-01 -2.539451722830000e-01 -2.536706112997469e-01 - -2.533961245035316e-01 -2.531217116489478e-01 -2.528473727232912e-01 -2.525731078267265e-01 -2.522989170513077e-01 - -2.520248001810547e-01 -2.517507572028029e-01 -2.514767886096237e-01 -2.512028943623831e-01 -2.509290742545349e-01 - -2.506553283625735e-01 -2.503816568034038e-01 -2.501080595782905e-01 -2.498345364108095e-01 -2.495610875124447e-01 - -2.492877133133172e-01 -2.490144136112123e-01 -2.487411882994743e-01 -2.484680374856057e-01 -2.481949612635986e-01 - -2.479219595287280e-01 -2.476490320734136e-01 -2.473761793087864e-01 -2.471034014703498e-01 -2.468306982957061e-01 - -2.465580697844871e-01 -2.462855160432138e-01 -2.460130371204629e-01 -2.457406328233614e-01 -2.454683031113906e-01 - -2.451960484794311e-01 -2.449238689415910e-01 -2.446517642712055e-01 -2.443797345227543e-01 -2.441077797933181e-01 - -2.438359000947776e-01 -2.435640951889690e-01 -2.432923652315951e-01 -2.430207106571287e-01 -2.427491313175689e-01 - -2.424776270783986e-01 -2.422061980074125e-01 -2.419348442072336e-01 -2.416635656192684e-01 -2.413923620306189e-01 - -2.411212337762792e-01 -2.408501811283544e-01 -2.405792038734625e-01 -2.403083019688687e-01 -2.400374754936993e-01 - -2.397667245256450e-01 -2.394960488977194e-01 -2.392254485194238e-01 -2.389549238762380e-01 -2.386844750244205e-01 - -2.384141017100180e-01 -2.381438039886236e-01 -2.378735819631148e-01 -2.376034356560101e-01 -2.373333648418426e-01 - -2.370633696160408e-01 -2.367934504134751e-01 -2.365236071336530e-01 -2.362538396334552e-01 -2.359841479713349e-01 - -2.357145322333765e-01 -2.354449923780104e-01 -2.351755281955192e-01 -2.349061399838227e-01 -2.346368280467886e-01 - -2.343675921502802e-01 -2.340984322401892e-01 -2.338293484224673e-01 -2.335603407944267e-01 -2.332914091991481e-01 - -2.330225534791031e-01 -2.327537740958542e-01 -2.324850711724544e-01 -2.322164444575208e-01 -2.319478939696494e-01 - -2.316794198107119e-01 -2.314110220364787e-01 -2.311427004172850e-01 -2.308744549913938e-01 -2.306062862221652e-01 - -2.303381940399467e-01 -2.300701782673901e-01 -2.298022389505013e-01 -2.295343762055658e-01 -2.292665900251787e-01 - -2.289988801367178e-01 -2.287312467963517e-01 -2.284636903804389e-01 -2.281962106639611e-01 -2.279288075702767e-01 - -2.276614812041137e-01 -2.273942316314865e-01 -2.271270587234099e-01 -2.268599623216859e-01 -2.265929428586625e-01 - -2.263260004971463e-01 -2.260591349680134e-01 -2.257923462859340e-01 -2.255256345570404e-01 -2.252589998316905e-01 - -2.249924418873443e-01 -2.247259607239798e-01 -2.244595568451081e-01 -2.241932301870257e-01 -2.239269805236896e-01 - -2.236608079513920e-01 -2.233947125724077e-01 -2.231286943677930e-01 -2.228627530899186e-01 -2.225968889349937e-01 - -2.223311022938890e-01 -2.220653929888047e-01 -2.217997609137618e-01 -2.215342061492806e-01 -2.212687287997047e-01 - -2.210033287645195e-01 -2.207380058226258e-01 -2.204727603658667e-01 -2.202075926188733e-01 -2.199425023254976e-01 - -2.196774894791217e-01 -2.194125541827232e-01 -2.191476964953657e-01 -2.188829162198361e-01 -2.186182133017065e-01 - -2.183535882155842e-01 -2.180890409721393e-01 -2.178245713492862e-01 -2.175601793915103e-01 -2.172958651996608e-01 - -2.170316287941991e-01 -2.167674699222372e-01 -2.165033887351043e-01 -2.162393856655618e-01 -2.159754605317784e-01 - -2.157116131976179e-01 -2.154478437626437e-01 -2.151841523053365e-01 -2.149205387568082e-01 -2.146570029331132e-01 - -2.143935451423346e-01 -2.141301656253313e-01 -2.138668641770334e-01 -2.136036407648879e-01 -2.133404954698548e-01 - -2.130774283590253e-01 -2.128144392711416e-01 -2.125515281171839e-01 -2.122886953403734e-01 -2.120259409959825e-01 - -2.117632648531722e-01 -2.115006669388265e-01 -2.112381473557379e-01 -2.109757061544524e-01 -2.107133431005909e-01 - -2.104510582708100e-01 -2.101888520817322e-01 -2.099267244352251e-01 -2.096646751892664e-01 -2.094027043922436e-01 - -2.091408121382980e-01 -2.088789983898283e-01 -2.086172629233026e-01 -2.083556060294393e-01 -2.080940280081475e-01 - -2.078325286261216e-01 -2.075711078316715e-01 -2.073097657230958e-01 -2.070485023681648e-01 -2.067873176254528e-01 - -2.065262113703670e-01 -2.062651840261599e-01 -2.060042356935543e-01 -2.057433661320316e-01 -2.054825753736384e-01 - -2.052218635119340e-01 -2.049612305777034e-01 -2.047006763593381e-01 -2.044402009029163e-01 -2.041798046444743e-01 - -2.039194875091236e-01 -2.036592493288050e-01 -2.033990901597007e-01 -2.031390101041152e-01 -2.028790091364410e-01 - -2.026190869860804e-01 -2.023592439213894e-01 -2.020994803209571e-01 -2.018397959336108e-01 -2.015801906636277e-01 - -2.013206646163115e-01 -2.010612178968381e-01 -2.008018503846473e-01 -2.005425618909167e-01 -2.002833527994660e-01 - -2.000242232866459e-01 -1.997651731545872e-01 -1.995062023757428e-01 -1.992473110134654e-01 -1.989884991329442e-01 - -1.987297665552775e-01 -1.984711132804359e-01 -1.982125397288479e-01 -1.979540458641874e-01 -1.976956315048893e-01 - -1.974372966986851e-01 -1.971790415364275e-01 -1.969208660181268e-01 -1.966627699138122e-01 -1.964047534115951e-01 - -1.961468168792641e-01 -1.958889601415059e-01 -1.956311830976701e-01 -1.953734858227050e-01 -1.951158683885618e-01 - -1.948583307060198e-01 -1.946008726082255e-01 -1.943434944554087e-01 -1.940861964418109e-01 -1.938289783248288e-01 - -1.935718400929853e-01 -1.933147818435645e-01 -1.930578036445209e-01 -1.928009053047615e-01 -1.925440867668252e-01 - -1.922873484836986e-01 -1.920306904586313e-01 -1.917741124759950e-01 -1.915176145882685e-01 -1.912611968971867e-01 - -1.910048594156118e-01 -1.907486018758652e-01 -1.904924244300230e-01 -1.902363275204000e-01 -1.899803109613821e-01 - -1.897243746214878e-01 -1.894685186111405e-01 -1.892127429944364e-01 -1.889570476814606e-01 -1.887014324762902e-01 - -1.884458977092228e-01 -1.881904436322386e-01 -1.879350700181010e-01 -1.876797768445363e-01 -1.874245641980662e-01 - -1.871694321106837e-01 -1.869143804464632e-01 -1.866594091449939e-01 -1.864045185802509e-01 -1.861497088150435e-01 - -1.858949796742653e-01 -1.856403311585743e-01 -1.853857633524328e-01 -1.851312763093270e-01 -1.848768697910832e-01 - -1.846225438828809e-01 -1.843682990131126e-01 -1.841141350478542e-01 -1.838600518410295e-01 -1.836060494900988e-01 - -1.833521280737523e-01 -1.830982875326949e-01 -1.828445276569093e-01 -1.825908487213151e-01 -1.823372510073639e-01 - -1.820837342990139e-01 -1.818302985608840e-01 -1.815769438919524e-01 -1.813236703339543e-01 -1.810704777470943e-01 - -1.808173660274447e-01 -1.805643355946649e-01 -1.803113865319381e-01 -1.800585185867421e-01 -1.798057318207557e-01 - -1.795530263298101e-01 -1.793004021140676e-01 -1.790478589821669e-01 -1.787953969871552e-01 -1.785430165333783e-01 - -1.782907175616041e-01 -1.780384999147782e-01 -1.777863636186671e-01 -1.775343087850783e-01 -1.772823354138563e-01 - -1.770304432439544e-01 -1.767786324996124e-01 -1.765269035206169e-01 -1.762752561209628e-01 -1.760236902365481e-01 - -1.757722059508868e-01 -1.755208033072168e-01 -1.752694821962465e-01 -1.750182424985018e-01 -1.747670845873172e-01 - -1.745160085943736e-01 -1.742650142826787e-01 -1.740141016708582e-01 -1.737632708599284e-01 -1.735125219002990e-01 - -1.732618545819516e-01 -1.730112688968157e-01 -1.727607652962038e-01 -1.725103437360838e-01 -1.722600040199003e-01 - -1.720097462053399e-01 -1.717595703957765e-01 -1.715094765937824e-01 -1.712594645505801e-01 -1.710095344617568e-01 - -1.707596867053610e-01 -1.705099210652020e-01 -1.702602374503936e-01 -1.700106359820640e-01 -1.697611167032507e-01 - -1.695116795170456e-01 -1.692623242857098e-01 -1.690130513415946e-01 -1.687638608735592e-01 -1.685147526839133e-01 - -1.682657267304136e-01 -1.680167830834059e-01 -1.677679218434041e-01 -1.675191428301483e-01 -1.672704459776749e-01 - -1.670218317162355e-01 -1.667733000505553e-01 -1.665248507843929e-01 -1.662764839848620e-01 -1.660281997331086e-01 - -1.657799980211539e-01 -1.655318786421316e-01 -1.652838417439954e-01 -1.650358877061586e-01 -1.647880163635810e-01 - -1.645402275978841e-01 -1.642925215033296e-01 -1.640448981629310e-01 -1.637973575048030e-01 -1.635498993322754e-01 - -1.633025239587731e-01 -1.630552316214122e-01 -1.628080220971913e-01 -1.625608953706327e-01 -1.623138515347123e-01 - -1.620668906280902e-01 -1.618200125176413e-01 -1.615732171440627e-01 -1.613265048790783e-01 -1.610798757703294e-01 - -1.608333296326273e-01 -1.605868664946396e-01 -1.603404864451659e-01 -1.600941895233320e-01 -1.598479755194739e-01 - -1.596018445089071e-01 -1.593557968710357e-01 -1.591098325274174e-01 -1.588639513462271e-01 -1.586181533501567e-01 - -1.583724386633118e-01 -1.581268072684121e-01 -1.578812589110151e-01 -1.576357938605635e-01 -1.573904124176000e-01 - -1.571451143885420e-01 -1.568998997115455e-01 -1.566547684551118e-01 -1.564097207009810e-01 -1.561647563377750e-01 - -1.559198752534892e-01 -1.556750777971572e-01 -1.554303640753041e-01 -1.551857339241298e-01 -1.549411873472499e-01 - -1.546967244117141e-01 -1.544523451583313e-01 -1.542080493972972e-01 -1.539638371771692e-01 -1.537197089019022e-01 - -1.534756644902717e-01 -1.532317037874507e-01 -1.529878268669247e-01 -1.527440338285302e-01 -1.525003246495042e-01 - -1.522566990917994e-01 -1.520131573865194e-01 -1.517696998607227e-01 -1.515263263105132e-01 -1.512830366842278e-01 - -1.510398310896279e-01 -1.507967095609423e-01 -1.505536719818633e-01 -1.503107182379510e-01 -1.500678487166025e-01 - -1.498250635429138e-01 -1.495823624607518e-01 -1.493397455183047e-01 -1.490972128240516e-01 -1.488547643939502e-01 - -1.486124000468938e-01 -1.483701197975273e-01 -1.481279240643807e-01 -1.478858128086334e-01 -1.476437858541442e-01 - -1.474018432575297e-01 -1.471599850901578e-01 -1.469182113447434e-01 -1.466765218581870e-01 -1.464349167991909e-01 - -1.461933964691583e-01 -1.459519607332137e-01 -1.457106095126376e-01 -1.454693428712828e-01 -1.452281609001614e-01 - -1.449870635167667e-01 -1.447460505411944e-01 -1.445051223204885e-01 -1.442642790465533e-01 -1.440235204958664e-01 - -1.437828466645076e-01 -1.435422576460715e-01 -1.433017535021517e-01 -1.430613340788666e-01 -1.428209993367665e-01 - -1.425807496580667e-01 -1.423405850452980e-01 -1.421005053276286e-01 -1.418605105748216e-01 -1.416206008760722e-01 - -1.413807762310167e-01 -1.411410364179444e-01 -1.409013815814383e-01 -1.406618121114770e-01 -1.404223278620860e-01 - -1.401829287142080e-01 -1.399436147388266e-01 -1.397043860171121e-01 -1.394652424999606e-01 -1.392261840277533e-01 - -1.389872108800275e-01 -1.387483232704581e-01 -1.385095210193419e-01 -1.382708041155041e-01 -1.380321726381191e-01 - -1.377936266235328e-01 -1.375551659356028e-01 -1.373167905196480e-01 -1.370785007699294e-01 -1.368402967462084e-01 - -1.366021782602805e-01 -1.363641453151502e-01 -1.361261980034910e-01 -1.358883363925467e-01 -1.356505602730137e-01 - -1.354128697173978e-01 -1.351752651019714e-01 -1.349377463365720e-01 -1.347003133096952e-01 -1.344629660943524e-01 - -1.342257047644556e-01 -1.339885292721434e-01 -1.337514394288152e-01 -1.335144355004790e-01 -1.332775177574095e-01 - -1.330406860095451e-01 -1.328039402156265e-01 -1.325672804621033e-01 -1.323307068237664e-01 -1.320942191803451e-01 - -1.318578174250235e-01 -1.316215019436967e-01 -1.313852728254415e-01 -1.311491298574344e-01 -1.309130730812647e-01 - -1.306771025967214e-01 -1.304412184433993e-01 -1.302054204167683e-01 -1.299697085633917e-01 -1.297340833011096e-01 - -1.294985445422908e-01 -1.292630921400970e-01 -1.290277262032818e-01 -1.287924468024440e-01 -1.285572538860320e-01 - -1.283221472565841e-01 -1.280871271607027e-01 -1.278521939245786e-01 -1.276173473594251e-01 -1.273825873815436e-01 - -1.271479140654554e-01 -1.269133275291332e-01 -1.266788276689478e-01 -1.264444143112885e-01 -1.262100878411512e-01 - -1.259758484249543e-01 -1.257416958580221e-01 -1.255076301118343e-01 -1.252736512740011e-01 -1.250397594556589e-01 - -1.248059544551782e-01 -1.245722362561283e-01 -1.243386053032582e-01 -1.241050615437150e-01 -1.238716047916152e-01 - -1.236382351439431e-01 -1.234049527007845e-01 -1.231717574487822e-01 -1.229386491649988e-01 -1.227056280466961e-01 - -1.224726944551588e-01 -1.222398481939305e-01 -1.220070891810755e-01 -1.217744175349468e-01 -1.215418333321439e-01 - -1.213093364896874e-01 -1.210769268543440e-01 -1.208446047468073e-01 -1.206123703546746e-01 -1.203802234985189e-01 - -1.201481641556592e-01 -1.199161924040098e-01 -1.196843083373426e-01 -1.194525118101599e-01 -1.192208027778711e-01 - -1.189891816158967e-01 -1.187576483334740e-01 -1.185262027772708e-01 -1.182948450325541e-01 -1.180635751718018e-01 - -1.178323931740712e-01 -1.176012988598141e-01 -1.173702923768903e-01 -1.171393740841554e-01 -1.169085438684581e-01 - -1.166778016318426e-01 -1.164471474323627e-01 -1.162165813372163e-01 -1.159861033094216e-01 -1.157557132288848e-01 - -1.155254113554128e-01 -1.152951978878259e-01 -1.150650726784410e-01 -1.148350356935617e-01 -1.146050869998271e-01 - -1.143752266983624e-01 -1.141454546633286e-01 -1.139157708150553e-01 -1.136861755297615e-01 -1.134566688685596e-01 - -1.132272506625232e-01 -1.129979209389772e-01 -1.127686797968139e-01 -1.125395272939830e-01 -1.123104632216639e-01 - -1.120814876598629e-01 -1.118526009932446e-01 -1.116238031362107e-01 -1.113950939743172e-01 -1.111664735714766e-01 - -1.109379420230661e-01 -1.107094992989161e-01 -1.104811452047023e-01 -1.102528800189790e-01 -1.100247040176238e-01 - -1.097966169898620e-01 -1.095686189066022e-01 -1.093407098806465e-01 -1.091128899944971e-01 -1.088851591239916e-01 - -1.086575171512236e-01 -1.084299644451029e-01 -1.082025011238454e-01 -1.079751270251657e-01 -1.077478421434466e-01 - -1.075206465724022e-01 -1.072935404061887e-01 -1.070665234272605e-01 -1.068395956686409e-01 -1.066127575621145e-01 - -1.063860090403522e-01 -1.061593499609373e-01 -1.059327804074918e-01 -1.057063004552603e-01 -1.054799100848440e-01 - -1.052536091459819e-01 -1.050273978363624e-01 -1.048012764247322e-01 -1.045752447992682e-01 -1.043493029044653e-01 - -1.041234507912105e-01 -1.038976885616201e-01 -1.036720161437409e-01 -1.034464334142674e-01 -1.032209407082870e-01 - -1.029955381585720e-01 -1.027702255852857e-01 -1.025450030256683e-01 -1.023198705766582e-01 -1.020948282803886e-01 - -1.018698759615270e-01 -1.016450136357437e-01 -1.014202417243671e-01 -1.011955602054591e-01 -1.009709689162001e-01 - -1.007464679013254e-01 -1.005220572777319e-01 -1.002977370772110e-01 -1.000735070732387e-01 -9.984936745539402e-02 - -9.962531858349888e-02 -9.940136027998529e-02 -9.917749246814733e-02 -9.895371525770333e-02 -9.873002873335845e-02 - -9.850643282337790e-02 -9.828292738770521e-02 -9.805951276903688e-02 -9.783618914357473e-02 -9.761295629040607e-02 - -9.738981424317925e-02 -9.716676311420755e-02 -9.694380293900719e-02 -9.672093359332221e-02 -9.649815506782670e-02 - -9.627546771326484e-02 -9.605287156919239e-02 -9.583036651098850e-02 -9.560795255252680e-02 -9.538562978098189e-02 - -9.516339824129488e-02 -9.494125774199282e-02 -9.471920843970391e-02 -9.449725071216948e-02 -9.427538438593883e-02 - -9.405360936874554e-02 -9.383192580278800e-02 -9.361033376064058e-02 -9.338883317577901e-02 -9.316742389906425e-02 - -9.294610622995669e-02 -9.272488039403920e-02 -9.250374621386263e-02 -9.228270367992475e-02 -9.206175287916113e-02 - -9.184089387273792e-02 -9.162012656935895e-02 -9.139945093572596e-02 -9.117886729658348e-02 -9.095837571294788e-02 - -9.073797605928635e-02 -9.051766837713708e-02 -9.029745274779008e-02 -9.007732920697027e-02 -8.985729759887780e-02 - -8.963735802530043e-02 -8.941751083887589e-02 -8.919775594907166e-02 -8.897809325953572e-02 -8.875852286193828e-02 - -8.853904483959285e-02 -8.831965916578795e-02 -8.810036569419880e-02 -8.788116467295366e-02 -8.766205635082600e-02 - -8.744304058057480e-02 -8.722411733824492e-02 -8.700528670561582e-02 -8.678654875532379e-02 -8.656790339361393e-02 - -8.634935054757228e-02 -8.613089058374623e-02 -8.591252359970507e-02 -8.569424942256174e-02 -8.547606809595372e-02 - -8.525797972327777e-02 -8.503998436304407e-02 -8.482208183975883e-02 -8.460427219735964e-02 -8.438655581333676e-02 - -8.416893266387415e-02 -8.395140264416648e-02 -8.373396580036768e-02 -8.351662221748458e-02 -8.329937190808817e-02 - -8.308221474187347e-02 -8.286515089972675e-02 -8.264818063381729e-02 -8.243130387381740e-02 -8.221452057360500e-02 - -8.199783077068876e-02 -8.178123458056528e-02 -8.156473193866548e-02 -8.134832272179610e-02 -8.113200727104515e-02 - -8.091578573554094e-02 -8.069965795549490e-02 -8.048362394306618e-02 -8.026768379237301e-02 -8.005183759034226e-02 - -7.983608519016389e-02 -7.962042660317335e-02 -7.940486220827629e-02 -7.918939199917317e-02 -7.897401585103307e-02 - -7.875873382193239e-02 -7.854354599947752e-02 -7.832845240531904e-02 -7.811345290511561e-02 -7.789854765910142e-02 - -7.768373695009409e-02 -7.746902070156129e-02 -7.725439886068521e-02 -7.703987147751143e-02 -7.682543865920169e-02 - -7.661110037032860e-02 -7.639685648697914e-02 -7.618270730319152e-02 -7.596865299784139e-02 -7.575469343456721e-02 - -7.554082861289950e-02 -7.532705861915691e-02 -7.511338355056779e-02 -7.489980327273796e-02 -7.468631776375068e-02 - -7.447292742489155e-02 -7.425963225373161e-02 -7.404643208981297e-02 -7.383332706618533e-02 -7.362031725942129e-02 - -7.340740264369265e-02 -7.319458312424655e-02 -7.298185885257603e-02 -7.276923011698885e-02 -7.255669681825400e-02 - -7.234425890125808e-02 -7.213191646645117e-02 -7.191966959969415e-02 -7.170751827394115e-02 -7.149546237742448e-02 - -7.128350216363183e-02 -7.107163782537941e-02 -7.085986923051370e-02 -7.064819639413342e-02 -7.043661941815849e-02 - -7.022513838389523e-02 -7.001375316964638e-02 -6.980246372359999e-02 -6.959127044971054e-02 -6.938017339783993e-02 - -6.916917238807876e-02 -6.895826751099868e-02 -6.874745887832359e-02 -6.853674652264935e-02 -6.832613029387129e-02 - -6.811561029537151e-02 -6.790518687416305e-02 -6.769485994872884e-02 -6.748462944761908e-02 -6.727449549181348e-02 - -6.706445814195625e-02 -6.685451736224034e-02 -6.664467305023641e-02 -6.643492546019260e-02 -6.622527482862205e-02 - -6.601572100856345e-02 -6.580626400049541e-02 -6.559690390732385e-02 -6.538764078471235e-02 -6.517847455920224e-02 - -6.496940519404462e-02 -6.476043303620643e-02 -6.455155816426872e-02 -6.434278041275177e-02 -6.413409988235154e-02 - -6.392551667227454e-02 -6.371703078482928e-02 -6.350864213121965e-02 -6.330035079826633e-02 -6.309215709125325e-02 - -6.288406097171770e-02 -6.267606236590158e-02 -6.246816137578116e-02 -6.226035810132791e-02 -6.205265253482506e-02 - -6.184504450634240e-02 -6.163753424009603e-02 -6.143012204113525e-02 -6.122280779495761e-02 -6.101559145710207e-02 - -6.080847310111580e-02 -6.060145284620669e-02 -6.039453063876327e-02 -6.018770637541451e-02 -5.998098039534337e-02 - -5.977435284136760e-02 -5.956782355675167e-02 -5.936139258218223e-02 -5.915506002510895e-02 -5.894882595975996e-02 - -5.874269025717062e-02 -5.853665294379332e-02 -5.833071438748900e-02 -5.812487459491447e-02 -5.791913345983549e-02 - -5.771349104248068e-02 -5.750794745476003e-02 -5.730250273990040e-02 -5.709715674449271e-02 -5.689190963313420e-02 - -5.668676170442684e-02 -5.648171287301057e-02 -5.627676311138611e-02 -5.607191251359627e-02 -5.586716116856662e-02 - -5.566250902085241e-02 -5.545795595276776e-02 -5.525350230977423e-02 -5.504914828197500e-02 -5.484489368806074e-02 - -5.464073856561743e-02 -5.443668303623681e-02 -5.423272717677420e-02 -5.402887087270093e-02 -5.382511411736842e-02 - -5.362145727556954e-02 -5.341790037997223e-02 -5.321444331788154e-02 -5.301108618236487e-02 -5.280782907094528e-02 - -5.260467200594416e-02 -5.240161485390568e-02 -5.219865776343095e-02 -5.199580105954085e-02 -5.179304465507040e-02 - -5.159038850941820e-02 -5.138783273765680e-02 -5.118537740030552e-02 -5.098302246878324e-02 -5.078076787428482e-02 - -5.057861387937131e-02 -5.037656068404879e-02 -5.017460818262723e-02 -4.997275637519877e-02 -4.977100534878579e-02 - -4.956935521374012e-02 -4.936780587637167e-02 -4.916635729330274e-02 -4.896500983679772e-02 -4.876376358063662e-02 - -4.856261839799727e-02 -4.836157437280066e-02 -4.816063160553166e-02 -4.795979012910388e-02 -4.775904981223175e-02 - -4.755841077230219e-02 -4.735787336181510e-02 -4.715743752596301e-02 -4.695710319390285e-02 -4.675687045398216e-02 - -4.655673941737810e-02 -4.635671009364274e-02 -4.615678236145827e-02 -4.595695644691457e-02 -4.575723258610617e-02 - -4.555761069075770e-02 -4.535809077212207e-02 -4.515867291944397e-02 -4.495935719937229e-02 -4.476014355843901e-02 - -4.456103197632578e-02 -4.436202279051898e-02 -4.416311608901573e-02 -4.396431172960501e-02 -4.376560979706327e-02 - -4.356701040970479e-02 -4.336851362154585e-02 -4.317011930970618e-02 -4.297182755295056e-02 -4.277363871130811e-02 - -4.257555275870079e-02 -4.237756961321195e-02 -4.217968936488893e-02 -4.198191211978222e-02 -4.178423789759614e-02 - -4.158666657665847e-02 -4.138919837391426e-02 -4.119183356383482e-02 -4.099457203865310e-02 -4.079741379048268e-02 - -4.060035892668235e-02 -4.040340754077800e-02 -4.020655958670875e-02 -4.000981499812348e-02 -3.981317410229721e-02 - -3.961663704352115e-02 -3.942020369405195e-02 -3.922387410519079e-02 -3.902764838570288e-02 -3.883152661169272e-02 - -3.863550868276464e-02 -3.843959464464100e-02 -3.824378485096525e-02 -3.804807931112070e-02 -3.785247793879744e-02 - -3.765698082240899e-02 -3.746158806803077e-02 -3.726629970906549e-02 -3.707111562537097e-02 -3.687603600301111e-02 - -3.668106114329449e-02 -3.648619095542227e-02 -3.629142541706046e-02 -3.609676463615045e-02 -3.590220871216067e-02 - -3.570775761915167e-02 -3.551341127587861e-02 -3.531916998478909e-02 -3.512503392646860e-02 -3.493100298239093e-02 - -3.473707719308593e-02 -3.454325666569649e-02 -3.434954148093054e-02 -3.415593156072503e-02 -3.396242692622412e-02 - -3.376902792182854e-02 -3.357573459185429e-02 -3.338254684613227e-02 -3.318946476737597e-02 -3.299648846264201e-02 - -3.280361798076661e-02 -3.261085320981364e-02 -3.241819429994710e-02 -3.222564156785773e-02 -3.203319495411584e-02 - -3.184085442350271e-02 -3.164862007407277e-02 -3.145649201602077e-02 -3.126447024597763e-02 -3.107255466700169e-02 - -3.088074555671056e-02 -3.068904313085425e-02 -3.049744727803826e-02 -3.030595802638682e-02 -3.011457548570120e-02 - -2.992329974875160e-02 -2.973213075050443e-02 -2.954106848293515e-02 -2.935011329195715e-02 -2.915926525661732e-02 - -2.896852427673346e-02 -2.877789042941862e-02 -2.858736382466336e-02 -2.839694452567641e-02 -2.820663243092813e-02 - -2.801642765839682e-02 -2.782633053619610e-02 -2.763634102981755e-02 -2.744645909471058e-02 -2.725668483048721e-02 - -2.706701834793413e-02 -2.687745966148872e-02 -2.668800867127078e-02 -2.649866562411629e-02 -2.630943076513501e-02 - -2.612030399888650e-02 -2.593128533989631e-02 -2.574237489560391e-02 -2.555357276907920e-02 -2.536487891525730e-02 - -2.517629330290238e-02 -2.498781626631630e-02 -2.479944791947400e-02 -2.461118815951395e-02 -2.442303705775731e-02 - -2.423499472682666e-02 -2.404706124098910e-02 -2.385923651050157e-02 -2.367152062237768e-02 -2.348391391197065e-02 - -2.329641637680258e-02 -2.310902796361102e-02 -2.292174876507744e-02 -2.273457889435020e-02 -2.254751838574287e-02 - -2.236056713942959e-02 -2.217372537079298e-02 -2.198699334983061e-02 -2.180037099746794e-02 -2.161385831877313e-02 - -2.142745542221016e-02 -2.124116241611923e-02 -2.105497927356034e-02 -2.086890594375282e-02 -2.068294274565517e-02 - -2.049708982965088e-02 -2.031134709508492e-02 -2.012571460207244e-02 -1.994019246558534e-02 -1.975478077426674e-02 - -1.956947944878238e-02 -1.938428854559868e-02 -1.919920840769478e-02 -1.901423906121075e-02 -1.882938044349050e-02 - -1.864463264867233e-02 -1.845999578941159e-02 -1.827546991282947e-02 -1.809105492490821e-02 -1.790675101318496e-02 - -1.772255847013706e-02 -1.753847723077995e-02 -1.735450728912205e-02 -1.717064875577919e-02 -1.698690174123156e-02 - -1.680326624034783e-02 -1.661974219495428e-02 -1.643632989539235e-02 -1.625302952284425e-02 -1.606984099009794e-02 - -1.588676434582367e-02 -1.570379970237604e-02 -1.552094715767664e-02 -1.533820665109939e-02 -1.515557821470722e-02 - -1.497306218983010e-02 -1.479065863118324e-02 -1.460836746737021e-02 -1.442618879376636e-02 -1.424412272699600e-02 - -1.406216932715821e-02 -1.388032850365394e-02 -1.369860041414062e-02 -1.351698537084881e-02 -1.333548332713773e-02 - -1.315409426742165e-02 -1.297281830737383e-02 -1.279165555870565e-02 -1.261060603011550e-02 -1.242966965324022e-02 - -1.224884670128487e-02 -1.206813738892206e-02 -1.188754163203305e-02 -1.170705946859269e-02 -1.152669101347058e-02 - -1.134643637569507e-02 -1.116629550991553e-02 -1.098626842139487e-02 -1.080635544822676e-02 -1.062655668128806e-02 - -1.044687204494093e-02 -1.026730162280993e-02 -1.008784553433474e-02 -9.908503858526582e-03 -9.729276511698201e-03 - -9.550163618928804e-03 -9.371165505355611e-03 -9.192282154920128e-03 -9.013513542246960e-03 -8.834859775588668e-03 - -8.656320970291077e-03 -8.477897155130903e-03 -8.299588259899083e-03 -8.121394531144674e-03 -7.943316209259341e-03 - -7.765353219198069e-03 -7.587505591333328e-03 -7.409773443860054e-03 -7.232156891183837e-03 -7.054655906230881e-03 - -6.877270474033493e-03 -6.700000921715352e-03 -6.522847372218281e-03 -6.345809748257097e-03 -6.168888131399519e-03 - -5.992082642122597e-03 -5.815393366379400e-03 -5.638820235869921e-03 -5.462363348533388e-03 -5.286023033805962e-03 - -5.109799304673499e-03 -4.933692127821829e-03 -4.757701606393674e-03 -4.581827861470766e-03 -4.406070940931505e-03 - -4.230430770274698e-03 -4.054907567997104e-03 -3.879501600335772e-03 -3.704212807069328e-03 -3.529041210474627e-03 - -3.353986930090703e-03 -3.179050081041732e-03 -3.004230655593028e-03 -2.829528626659512e-03 -2.654944304289923e-03 - -2.480477843039907e-03 -2.306129168890747e-03 -2.131898354626704e-03 -1.957785522367332e-03 -1.783790769612464e-03 - -1.609914041309663e-03 -1.436155409326836e-03 -1.262515208025358e-03 -1.088993476198761e-03 -9.155901719868249e-04 - -7.423054008843995e-04 -5.691392854771952e-04 -3.960918865957833e-04 -2.231631331613931e-04 -5.035321608514060e-05 - 1.223375771945329e-04 2.949092895407656e-04 4.673619084872533e-04 6.396953140537370e-04 8.119093865188150e-04 - 9.840041155727759e-04 1.155979539871523e-03 1.327835367602612e-03 1.499571413663267e-03 1.671187748049661e-03 - 1.842684305331169e-03 2.014060960896812e-03 2.185317608856639e-03 2.356454289147141e-03 2.527470954200780e-03 - 2.698367270832486e-03 2.869143169831049e-03 3.039798698561594e-03 3.210333755176400e-03 3.380748214685887e-03 - 3.551042001872539e-03 3.721215182132198e-03 3.891267592694254e-03 4.061198929412137e-03 4.231009214636464e-03 - 4.400698444839332e-03 4.570266499650065e-03 4.739713256426893e-03 4.909038688279234e-03 5.078242841339914e-03 - 5.247325443294046e-03 5.416286280121805e-03 5.585125417934797e-03 5.753842797319914e-03 5.922438289361948e-03 - 6.090911784292105e-03 6.259263304936011e-03 6.427492823105761e-03 6.595600012759487e-03 6.763584774419725e-03 - 6.931447157908777e-03 7.099187064683324e-03 7.266804368739545e-03 7.434298984071849e-03 7.601670964899477e-03 - 7.768920175905106e-03 7.936046303989365e-03 8.103049345026314e-03 8.269929303195386e-03 8.436686062480435e-03 - 8.603319496825714e-03 8.769829559891583e-03 8.936216298209541e-03 9.102479469308070e-03 9.268618835503980e-03 - 9.434634442417017e-03 9.600526244002849e-03 9.766294116521254e-03 9.931937936947469e-03 1.009745771049027e-02 - 1.026285342997890e-02 1.042812477681206e-02 1.059327162144324e-02 1.075829401681754e-02 1.092319186819127e-02 - 1.108796504594824e-02 1.125261345370748e-02 1.141713713772357e-02 1.158153598704318e-02 1.174580967555363e-02 - 1.190995817803677e-02 1.207398151021485e-02 1.223787955540131e-02 1.240165218070774e-02 1.256529932365555e-02 - 1.272882103806231e-02 1.289221710280211e-02 1.305548725320952e-02 1.321863152957668e-02 1.338164989105289e-02 - 1.354454220587777e-02 1.370730835288826e-02 1.386994832163190e-02 1.403246211588375e-02 1.419484943187744e-02 - 1.435711010999991e-02 1.451924419921884e-02 1.468125161270911e-02 1.484313222013652e-02 1.500488591571896e-02 - 1.516651273046586e-02 1.532801257754355e-02 1.548938513124086e-02 1.565063033579857e-02 1.581174821092933e-02 - 1.597273864701365e-02 1.613360150922888e-02 1.629433671764488e-02 1.645494432276120e-02 1.661542413184349e-02 - 1.677577586209575e-02 1.693599953321696e-02 1.709609511287956e-02 1.725606247097126e-02 1.741590148147653e-02 - 1.757561211738663e-02 1.773519439308624e-02 1.789464801957598e-02 1.805397280960725e-02 1.821316881163111e-02 - 1.837223594327105e-02 1.853117406905512e-02 1.868998307594014e-02 1.884866298214414e-02 1.900721372338833e-02 - 1.916563497459167e-02 1.932392665507269e-02 1.948208878919649e-02 1.964012126059438e-02 1.979802393750615e-02 - 1.995579673545799e-02 2.011343968946751e-02 2.027095263124555e-02 2.042833526879373e-02 2.058558759933038e-02 - 2.074270959919291e-02 2.089970114286997e-02 2.105656209513535e-02 2.121329241031374e-02 2.136989211400533e-02 - 2.152636093833320e-02 2.168269866776463e-02 2.183890534086288e-02 2.199498088647827e-02 2.215092516911965e-02 - 2.230673806408907e-02 2.246241957468516e-02 2.261796965793072e-02 2.277338799181243e-02 2.292867446749406e-02 - 2.308382911412376e-02 2.323885181888266e-02 2.339374244699652e-02 2.354850090287507e-02 2.370312721409915e-02 - 2.385762123470989e-02 2.401198266010886e-02 2.416621147301771e-02 2.432030765671687e-02 2.447427107682733e-02 - 2.462810160176357e-02 2.478179917471193e-02 2.493536381795363e-02 2.508879528739230e-02 2.524209334527653e-02 - 2.539525801488748e-02 2.554828923354157e-02 2.570118686847216e-02 2.585395079171064e-02 2.600658098606827e-02 - 2.615907742012537e-02 2.631143978762620e-02 2.646366795301069e-02 2.661576194257877e-02 2.676772164859378e-02 - 2.691954693391293e-02 2.707123769272043e-02 2.722279394328245e-02 2.737421556407061e-02 2.752550224474631e-02 - 2.767665393933695e-02 2.782767063812680e-02 2.797855221700411e-02 2.812929853552858e-02 2.827990951702357e-02 - 2.843038519104858e-02 2.858072533585580e-02 2.873092969062032e-02 2.888099827101270e-02 2.903093101911967e-02 - 2.918072779556083e-02 2.933038847140823e-02 2.947991301658642e-02 2.962930141213865e-02 2.977855336278226e-02 - 2.992766870509821e-02 3.007664746318324e-02 3.022548953626840e-02 3.037419478553557e-02 3.052276309616091e-02 - 3.067119447416764e-02 3.081948881896879e-02 3.096764581778017e-02 3.111566540198458e-02 3.126354756710210e-02 - 3.141129218718559e-02 3.155889912410548e-02 3.170636829125183e-02 3.185369970791438e-02 3.200089317518744e-02 - 3.214794841776677e-02 3.229486543634106e-02 3.244164418203412e-02 3.258828451581320e-02 3.273478630264194e-02 - 3.288114949586567e-02 3.302737408530167e-02 3.317345979235018e-02 3.331940642975919e-02 3.346521401820098e-02 - 3.361088246101045e-02 3.375641161607764e-02 3.390180136352038e-02 3.404705169548587e-02 3.419216253016829e-02 - 3.433713355905806e-02 3.448196468652563e-02 3.462665590981111e-02 3.477120710939272e-02 3.491561814527116e-02 - 3.505988891618091e-02 3.520401943397326e-02 3.534800952666442e-02 3.549185891051008e-02 3.563556756111654e-02 - 3.577913543618631e-02 3.592256240340591e-02 3.606584831947614e-02 3.620899312153205e-02 3.635199681091714e-02 - 3.649485912620978e-02 3.663757985375464e-02 3.678015900636063e-02 3.692259649832257e-02 3.706489218607827e-02 - 3.720704593508108e-02 3.734905772908955e-02 3.749092751022131e-02 3.763265496742431e-02 3.777423997951684e-02 - 3.791568254953915e-02 3.805698256030369e-02 3.819813986869797e-02 3.833915436267914e-02 3.848002605018682e-02 - 3.862075477984065e-02 3.876134025391093e-02 3.890178243600422e-02 3.904208129158644e-02 3.918223668100989e-02 - 3.932224846044379e-02 3.946211655605483e-02 3.960184097189857e-02 3.974142146457355e-02 3.988085779819951e-02 - 4.002014997942075e-02 4.015929792921669e-02 4.029830150192959e-02 4.043716055991190e-02 4.057587507004282e-02 - 4.071444498657769e-02 4.085287001066611e-02 4.099114999824743e-02 4.112928495212512e-02 4.126727475679569e-02 - 4.140511926665246e-02 4.154281836167219e-02 4.168037204269245e-02 4.181778018003033e-02 4.195504246778908e-02 - 4.209215884913708e-02 4.222912929605258e-02 4.236595366776428e-02 4.250263182248033e-02 4.263916367566677e-02 - 4.277554922465009e-02 4.291178824859961e-02 4.304788049654025e-02 4.318382596138427e-02 4.331962457087349e-02 - 4.345527617981602e-02 4.359078064797250e-02 4.372613792550029e-02 4.386134797486977e-02 4.399641051415262e-02 - 4.413132537776133e-02 4.426609256403441e-02 4.440071196061698e-02 4.453518342174363e-02 4.466950682320869e-02 - 4.480368214879805e-02 4.493770928728694e-02 4.507158793990715e-02 4.520531802497359e-02 4.533889951667943e-02 - 4.547233228082954e-02 4.560561616979211e-02 4.573875108353129e-02 4.587173702317195e-02 4.600457379177124e-02 - 4.613726112101928e-02 4.626979898466685e-02 4.640218731770854e-02 4.653442597807410e-02 4.666651481740990e-02 - 4.679845378497393e-02 4.693024287357150e-02 4.706188178521280e-02 4.719337030512012e-02 4.732470843170088e-02 - 4.745589609974604e-02 4.758693317708736e-02 4.771781949014568e-02 4.784855500276729e-02 4.797913963655120e-02 - 4.810957311625792e-02 4.823985532440599e-02 4.836998622519359e-02 4.849996572088229e-02 4.862979364778694e-02 - 4.875946986129576e-02 4.888899438454671e-02 4.901836703838853e-02 4.914758752328308e-02 4.927665585368439e-02 - 4.940557196434897e-02 4.953433564666962e-02 4.966294680168561e-02 4.979140536998770e-02 4.991971127467005e-02 - 5.004786430086550e-02 5.017586426593462e-02 5.030371111424699e-02 5.043140473941395e-02 5.055894500969876e-02 - 5.068633180855401e-02 5.081356509387767e-02 5.094064477169723e-02 5.106757053524139e-02 5.119434226596677e-02 - 5.132095996453229e-02 5.144742351517578e-02 5.157373274644007e-02 5.169988750799723e-02 5.182588783131492e-02 - 5.195173357105356e-02 5.207742440366903e-02 5.220296027189056e-02 5.232834113948501e-02 5.245356688434039e-02 - 5.257863735375337e-02 5.270355244318054e-02 5.282831211610928e-02 5.295291615700908e-02 5.307736435753736e-02 - 5.320165668494783e-02 5.332579302368824e-02 5.344977322479061e-02 5.357359720391287e-02 5.369726488407797e-02 - 5.382077614890905e-02 5.394413077320572e-02 5.406732861255047e-02 5.419036960275756e-02 5.431325364836510e-02 - 5.443598061485443e-02 5.455855035736775e-02 5.468096283548277e-02 5.480321791614200e-02 5.492531533836561e-02 - 5.504725504027442e-02 5.516903696522249e-02 5.529066094250196e-02 5.541212681912044e-02 5.553343451105355e-02 - 5.565458402054679e-02 5.577557512714444e-02 5.589640757833542e-02 5.601708136214176e-02 5.613759637012277e-02 - 5.625795242697428e-02 5.637814944133901e-02 5.649818735356010e-02 5.661806606948155e-02 5.673778531909066e-02 - 5.685734496106067e-02 5.697674499811992e-02 5.709598525886500e-02 5.721506557962035e-02 5.733398588420521e-02 - 5.745274613557275e-02 5.757134619305772e-02 5.768978576165893e-02 5.780806477237931e-02 5.792618319490116e-02 - 5.804414085654030e-02 5.816193759992416e-02 5.827957333255503e-02 5.839704805764100e-02 5.851436157058919e-02 - 5.863151359019340e-02 5.874850407742044e-02 5.886533297606138e-02 5.898200016057164e-02 5.909850545490182e-02 - 5.921484876799358e-02 5.933103006596772e-02 5.944704910278828e-02 5.956290569090495e-02 5.967859979076014e-02 - 5.979413129454921e-02 5.990950006107775e-02 6.002470595625681e-02 6.013974894676900e-02 6.025462892974234e-02 - 6.036934559538653e-02 6.048389882575328e-02 6.059828859366181e-02 6.071251478747773e-02 6.082657726499330e-02 - 6.094047589468096e-02 6.105421060960093e-02 6.116778124880510e-02 6.128118760026364e-02 6.139442960439424e-02 - 6.150750715787331e-02 6.162042008748835e-02 6.173316829355946e-02 6.184575170612789e-02 6.195817023946892e-02 - 6.207042366308074e-02 6.218251178412997e-02 6.229443455021107e-02 6.240619187345142e-02 6.251778362644587e-02 - 6.262920965673664e-02 6.274046989094115e-02 6.285156423838029e-02 6.296249246083868e-02 6.307325441937692e-02 - 6.318385004239983e-02 6.329427920287174e-02 6.340454177652059e-02 6.351463766120390e-02 6.362456678994362e-02 - 6.373432899407734e-02 6.384392402667542e-02 6.395335181995393e-02 6.406261231361865e-02 6.417170537725830e-02 - 6.428063082883417e-02 6.438938856382127e-02 6.449797859582693e-02 6.460640069400744e-02 6.471465460887021e-02 - 6.482274028565467e-02 6.493065766530991e-02 6.503840663024645e-02 6.514598697176463e-02 6.525339863731919e-02 - 6.536064160053869e-02 6.546771556229376e-02 6.557462036169828e-02 6.568135597564134e-02 6.578792228094754e-02 - 6.589431913461476e-02 6.600054641494822e-02 6.610660407274732e-02 6.621249195669229e-02 6.631820979208959e-02 - 6.642375751800587e-02 6.652913508526218e-02 6.663434233390064e-02 6.673937912206085e-02 6.684424535139094e-02 - 6.694894096694531e-02 6.705346576057515e-02 6.715781952052316e-02 6.726200223606826e-02 6.736601378290344e-02 - 6.746985396850236e-02 6.757352270136854e-02 6.767701992273348e-02 6.778034554033589e-02 6.788349929667206e-02 - 6.798648102682574e-02 6.808929069330329e-02 6.819192820375723e-02 6.829439341428477e-02 6.839668615716293e-02 - 6.849880637697058e-02 6.860075397106770e-02 6.870252870886938e-02 6.880413046413429e-02 6.890555915577500e-02 - 6.900681468090485e-02 6.910789689150486e-02 6.920880565820778e-02 6.930954094436353e-02 6.941010257623929e-02 - 6.951049032497619e-02 6.961070411466443e-02 6.971074386483528e-02 6.981060945693285e-02 6.991030074013053e-02 - 7.000981760721879e-02 7.010915998226322e-02 7.020832768385020e-02 7.030732053981503e-02 7.040613843777971e-02 - 7.050478130476578e-02 7.060324902125202e-02 7.070154139632766e-02 7.079965841104072e-02 7.089759998592053e-02 - 7.099536579014293e-02 7.109295574922263e-02 7.119036986301433e-02 7.128760792254588e-02 7.138466979343019e-02 - 7.148155540894172e-02 7.157826467726322e-02 7.167479742578257e-02 7.177115345207208e-02 7.186733268619028e-02 - 7.196333504975572e-02 7.205916041090092e-02 7.215480858692887e-02 7.225027948023270e-02 7.234557308374470e-02 - 7.244068916926014e-02 7.253562753252076e-02 7.263038813284139e-02 7.272497087062332e-02 7.281937559790036e-02 - 7.291360215228662e-02 7.300765049821943e-02 7.310152057265214e-02 7.319521208383468e-02 7.328872490709243e-02 - 7.338205901635925e-02 7.347521425841259e-02 7.356819049091311e-02 7.366098761637971e-02 7.375360558736099e-02 - 7.384604424623381e-02 7.393830334347133e-02 7.403038279875497e-02 7.412228254437477e-02 7.421400245985316e-02 - 7.430554241104276e-02 7.439690229021774e-02 7.448808202204141e-02 7.457908141717452e-02 7.466990029970315e-02 - 7.476053861745356e-02 7.485099625058683e-02 7.494127304678436e-02 7.503136889191833e-02 7.512128371784581e-02 - 7.521101743547498e-02 7.530056981436373e-02 7.538994071268737e-02 7.547913007544443e-02 7.556813780083994e-02 - 7.565696374971752e-02 7.574560777501017e-02 7.583406981695588e-02 7.592234975180168e-02 7.601044736291800e-02 - 7.609836256769248e-02 7.618609528331391e-02 7.627364535037680e-02 7.636101265407126e-02 7.644819711937149e-02 - 7.653519868718589e-02 7.662201715447789e-02 7.670865230880411e-02 7.679510411035856e-02 7.688137246970578e-02 - 7.696745724207896e-02 7.705335828035317e-02 7.713907552614908e-02 7.722460893765626e-02 7.730995825366380e-02 - 7.739512330293280e-02 7.748010405365591e-02 7.756490042829636e-02 7.764951228919105e-02 7.773393946198498e-02 - 7.781818189157449e-02 7.790223948237281e-02 7.798611201876808e-02 7.806979939436651e-02 7.815330154059554e-02 - 7.823661834982702e-02 7.831974966729814e-02 7.840269536418043e-02 7.848545542109749e-02 7.856802968700778e-02 - 7.865041794492959e-02 7.873262009221961e-02 7.881463606524114e-02 7.889646578364969e-02 7.897810905385311e-02 - 7.905956578813299e-02 7.914083598393755e-02 7.922191938944982e-02 7.930281582198326e-02 7.938352526916173e-02 - 7.946404763288464e-02 7.954438277705837e-02 7.962453057021987e-02 7.970449093695484e-02 7.978426377009373e-02 - 7.986384886265184e-02 7.994324611178145e-02 8.002245546069972e-02 8.010147680163558e-02 8.018030998339011e-02 - 8.025895486859348e-02 8.033741142939121e-02 8.041567953647351e-02 8.049375898816008e-02 8.057164970191152e-02 - 8.064935159117341e-02 8.072686453538828e-02 8.080418841559016e-02 8.088132313650849e-02 8.095826861741187e-02 - 8.103502469212946e-02 8.111159121525567e-02 8.118796811657426e-02 8.126415526945288e-02 8.134015254787534e-02 - 8.141595988122388e-02 8.149157718184835e-02 8.156700432424771e-02 8.164224113093393e-02 8.171728750211138e-02 - 8.179214337283539e-02 8.186680860558979e-02 8.194128308109257e-02 8.201556671181809e-02 8.208965942384167e-02 - 8.216356107347705e-02 8.223727146913333e-02 8.231079055026533e-02 8.238411825286719e-02 8.245725445426123e-02 - 8.253019901019013e-02 8.260295182089074e-02 8.267551284923887e-02 8.274788192985057e-02 8.282005889192648e-02 - 8.289204367192234e-02 8.296383619751495e-02 8.303543635380874e-02 8.310684396376640e-02 8.317805898151856e-02 - 8.324908138250064e-02 8.331991092178788e-02 8.339054746670159e-02 8.346099098907200e-02 8.353124136246602e-02 - 8.360129848004999e-02 8.367116227251760e-02 8.374083263302687e-02 8.381030943134427e-02 8.387959252741883e-02 - 8.394868181167527e-02 8.401757720093640e-02 8.408627862550171e-02 8.415478594369409e-02 8.422309904154775e-02 - 8.429121790707177e-02 8.435914237533512e-02 8.442687225429805e-02 8.449440750560887e-02 8.456174803803686e-02 - 8.462889372267089e-02 8.469584447602406e-02 8.476260023136410e-02 8.482916090148240e-02 8.489552630009754e-02 - 8.496169630228255e-02 8.502767086164854e-02 8.509344988672647e-02 8.515903326018803e-02 8.522442086136313e-02 - 8.528961263471936e-02 8.535460848680074e-02 8.541940824041729e-02 8.548401181612168e-02 8.554841915131453e-02 - 8.561263012321893e-02 8.567664461211427e-02 8.574046253447680e-02 8.580408386832587e-02 8.586750845589863e-02 - 8.593073610333024e-02 8.599376680387132e-02 8.605660047760594e-02 8.611923696874126e-02 8.618167618396408e-02 - 8.624391807608472e-02 8.630596259724549e-02 8.636780954833972e-02 8.642945878839840e-02 8.649091029427977e-02 - 8.655216396695875e-02 8.661321970043215e-02 8.667407742210617e-02 8.673473702989365e-02 8.679519841504303e-02 - 8.685546148336530e-02 8.691552612855238e-02 8.697539224666265e-02 8.703505975750943e-02 8.709452857692032e-02 - 8.715379861893667e-02 8.721286980508075e-02 8.727174201224434e-02 8.733041510377958e-02 8.738888903629666e-02 - 8.744716372671989e-02 8.750523904187274e-02 8.756311491392924e-02 8.762079127795709e-02 8.767826803995526e-02 - 8.773554506310657e-02 8.779262223690780e-02 8.784949951260017e-02 8.790617682173207e-02 8.796265406226209e-02 - 8.801893109931651e-02 8.807500788687952e-02 8.813088437660771e-02 8.818656039674132e-02 8.824203585227545e-02 - 8.829731070095961e-02 8.835238486000704e-02 8.840725822106667e-02 8.846193068214857e-02 8.851640221803356e-02 - 8.857067273700293e-02 8.862474207580676e-02 8.867861014722141e-02 8.873227689758616e-02 8.878574227696898e-02 - 8.883900618220902e-02 8.889206851560667e-02 8.894492921167085e-02 8.899758815302622e-02 8.905004524008538e-02 - 8.910230044719054e-02 8.915435367300073e-02 8.920620479173334e-02 8.925785373448247e-02 8.930930045917142e-02 - 8.936054490961548e-02 8.941158695191696e-02 8.946242647641844e-02 8.951306341364354e-02 8.956349771969928e-02 - 8.961372931388180e-02 8.966375808278661e-02 8.971358396554302e-02 8.976320688963368e-02 8.981262675341668e-02 - 8.986184348935064e-02 8.991085703129179e-02 8.995966729258320e-02 9.000827417122792e-02 9.005667759770250e-02 - 9.010487756379584e-02 9.015287394264000e-02 9.020066659275561e-02 9.024825550203337e-02 9.029564061179933e-02 - 9.034282181894199e-02 9.038979902630290e-02 9.043657218570805e-02 9.048314126656666e-02 9.052950615463343e-02 - 9.057566675480395e-02 9.062162300961238e-02 9.066737484935303e-02 9.071292219781772e-02 9.075826498061153e-02 - 9.080340315127385e-02 9.084833664156222e-02 9.089306533771581e-02 9.093758915627431e-02 9.098190804149961e-02 - 9.102602195783284e-02 9.106993084471440e-02 9.111363462196023e-02 9.115713320054021e-02 9.120042650346059e-02 - 9.124351446434358e-02 9.128639702175202e-02 9.132907412994692e-02 9.137154573427010e-02 9.141381170435277e-02 - 9.145587198962597e-02 9.149772660800266e-02 9.153937542844172e-02 9.158081834977004e-02 9.162205535599281e-02 - 9.166308637778346e-02 9.170391133536025e-02 9.174453017072061e-02 9.178494285856946e-02 9.182514933661440e-02 - 9.186514945794547e-02 9.190494319482566e-02 9.194453054665523e-02 9.198391140758180e-02 9.202308569543158e-02 - 9.206205336702038e-02 9.210081441034919e-02 9.213936875086109e-02 9.217771627651770e-02 9.221585694962209e-02 - 9.225379072840771e-02 9.229151754885842e-02 9.232903734819613e-02 9.236635007909103e-02 9.240345570404732e-02 - 9.244035413434255e-02 9.247704529963750e-02 9.251352918345666e-02 9.254980573968512e-02 9.258587489795035e-02 - 9.262173657649034e-02 9.265739073985793e-02 9.269283735974691e-02 9.272807636276849e-02 9.276310769047050e-02 - 9.279793130272118e-02 9.283254716719631e-02 9.286695521394739e-02 9.290115536246511e-02 9.293514761281572e-02 - 9.296893192325742e-02 9.300250819824006e-02 9.303587638369953e-02 9.306903645092859e-02 9.310198837852499e-02 - 9.313473209662422e-02 9.316726755984403e-02 9.319959477466139e-02 9.323171364631608e-02 9.326362408592948e-02 - 9.329532610133226e-02 9.332681964339190e-02 9.335810464438972e-02 9.338918108249107e-02 9.342004893308628e-02 - 9.345070815580041e-02 9.348115868437977e-02 9.351140046962789e-02 9.354143348306601e-02 9.357125770365762e-02 - 9.360087308621738e-02 9.363027956518245e-02 9.365947710363894e-02 9.368846567300493e-02 9.371724524372237e-02 - 9.374581578300241e-02 9.377417725111503e-02 9.380232960142115e-02 9.383027280206080e-02 9.385800682788301e-02 - 9.388553164914089e-02 9.391284719773688e-02 9.393995342276806e-02 9.396685035781838e-02 9.399353796706621e-02 - 9.402001617537038e-02 9.404628495786660e-02 9.407234429781461e-02 9.409819417117830e-02 9.412383453169183e-02 - 9.414926534580341e-02 9.417448659641373e-02 9.419949825736050e-02 9.422430029380560e-02 9.424889267135104e-02 - 9.427327539998738e-02 9.429744844865905e-02 9.432141171534560e-02 9.434516522540957e-02 9.436870900006604e-02 - 9.439204294634228e-02 9.441516705436934e-02 9.443808133745002e-02 9.446078573953387e-02 9.448328023801857e-02 - 9.450556483411636e-02 9.452763950923013e-02 9.454950421611270e-02 9.457115890701832e-02 9.459260360830167e-02 - 9.461383832574666e-02 9.463486302352626e-02 9.465567765409444e-02 9.467628220109425e-02 9.469667668274938e-02 - 9.471686106967921e-02 9.473683533004949e-02 9.475659945563136e-02 9.477615343325803e-02 9.479549725292793e-02 - 9.481463091432241e-02 9.483355439545672e-02 9.485226766778346e-02 9.487077071788189e-02 9.488906353992572e-02 - 9.490714613644993e-02 9.492501852119042e-02 9.494268066964073e-02 9.496013253895599e-02 9.497737414244060e-02 - 9.499440547543551e-02 9.501122651272445e-02 9.502783728094538e-02 9.504423778187990e-02 9.506042797340242e-02 - 9.507640785191551e-02 9.509217742006319e-02 9.510773667189122e-02 9.512308563868060e-02 9.513822432123879e-02 - 9.515315264231193e-02 9.516787063845662e-02 9.518237836728226e-02 9.519667577724227e-02 9.521076284349063e-02 - 9.522463958294539e-02 9.523830604498588e-02 9.525176221483619e-02 9.526500804718509e-02 9.527804359769618e-02 - 9.529086886623650e-02 9.530348379689602e-02 9.531588845120076e-02 9.532808286166987e-02 9.534006699012688e-02 - 9.535184085361241e-02 9.536340447105748e-02 9.537475783364874e-02 9.538590095359538e-02 9.539683385237334e-02 - 9.540755654711666e-02 9.541806903829181e-02 9.542837132640679e-02 9.543846343230179e-02 9.544834536597921e-02 - 9.545801714100983e-02 9.546747880593646e-02 9.547673036184304e-02 9.548577178084619e-02 9.549460309483834e-02 - 9.550322434581640e-02 9.551163556335956e-02 9.551983673903520e-02 9.552782788036314e-02 9.553560902903191e-02 - 9.554318022933674e-02 9.555054148771730e-02 9.555769276632298e-02 9.556463412975340e-02 9.557136563747151e-02 - 9.557788725689133e-02 9.558419903459103e-02 9.559030102901959e-02 9.559619321427665e-02 9.560187562136102e-02 - 9.560734830883322e-02 9.561261127917654e-02 9.561766456108449e-02 9.562250820572099e-02 9.562714223416331e-02 - 9.563156666435306e-02 9.563578152405575e-02 9.563978686682097e-02 9.564358272631937e-02 9.564716910782914e-02 - 9.565054604965099e-02 9.565371359980702e-02 9.565667179877529e-02 9.565942066526258e-02 9.566196023293236e-02 - 9.566429057683135e-02 9.566641172752892e-02 9.566832368940979e-02 9.567002647518966e-02 9.567152016429874e-02 - 9.567280484915060e-02 9.567388053004788e-02 9.567474721294261e-02 9.567540493730267e-02 9.567585379392737e-02 - 9.567609383300600e-02 9.567612506298810e-02 9.567594754568214e-02 9.567556133790830e-02 9.567496647244744e-02 - 9.567416299512438e-02 9.567315095370396e-02 9.567193039196389e-02 9.567050136232016e-02 9.566886392120964e-02 - 9.566701812558283e-02 9.566496403827787e-02 9.566270170884209e-02 9.566023115264767e-02 9.565755243736668e-02 - 9.565466564791879e-02 9.565157080775241e-02 9.564826797386157e-02 9.564475723264595e-02 9.564103864027859e-02 - 9.563711223757489e-02 9.563297806735498e-02 9.562863621895812e-02 9.562408675116861e-02 9.561932968250994e-02 - 9.561436511583814e-02 9.560919313325968e-02 9.560381374743886e-02 9.559822704785555e-02 9.559243313048145e-02 - 9.558643203289170e-02 9.558022378864620e-02 9.557380846466877e-02 9.556718619530349e-02 9.556035703327785e-02 - 9.555332100122134e-02 9.554607821247386e-02 9.553862873475936e-02 9.553097259908433e-02 9.552310989218279e-02 - 9.551504070130773e-02 9.550676510186747e-02 9.549828317393894e-02 9.548959500356741e-02 9.548070067318166e-02 - 9.547160021295119e-02 9.546229369018946e-02 9.545278124506257e-02 9.544306292579091e-02 9.543313878273989e-02 - 9.542300894892854e-02 9.541267351639289e-02 9.540213254817664e-02 9.539138610562420e-02 9.538043425774057e-02 - 9.536927709152246e-02 9.535791472882026e-02 9.534634726779553e-02 9.533457478138217e-02 9.532259734256758e-02 - 9.531041503990305e-02 9.529802797105680e-02 9.528543620462085e-02 9.527263983869082e-02 9.525963900525855e-02 - 9.524643375927100e-02 9.523302417643500e-02 9.521941040061487e-02 9.520559252291068e-02 9.519157060486365e-02 - 9.517734471153570e-02 9.516291499670615e-02 9.514828160467456e-02 9.513344455080376e-02 9.511840393248631e-02 - 9.510315989360162e-02 9.508771251519674e-02 9.507206189457258e-02 9.505620814925633e-02 9.504015138530268e-02 - 9.502389169582724e-02 9.500742917228551e-02 9.499076394524120e-02 9.497389612890822e-02 9.495682580659018e-02 - 9.493955308203066e-02 9.492207807526097e-02 9.490440091330225e-02 9.488652168366014e-02 9.486844048723730e-02 - 9.485015747906970e-02 9.483167277063544e-02 9.481298644119306e-02 9.479409856622809e-02 9.477500930738031e-02 - 9.475571884085587e-02 9.473622721810367e-02 9.471653454723004e-02 9.469664098786204e-02 9.467654664635866e-02 - 9.465625162221861e-02 9.463575602621152e-02 9.461505999415500e-02 9.459416367044585e-02 9.457306719633034e-02 - 9.455177068421998e-02 9.453027423759350e-02 9.450857796468222e-02 9.448668199276268e-02 9.446458647203468e-02 - 9.444229157255099e-02 9.441979739649474e-02 9.439710403006842e-02 9.437421161454676e-02 9.435112031829759e-02 - 9.432783029179438e-02 9.430434160094567e-02 9.428065438538669e-02 9.425676883924589e-02 9.423268508508292e-02 - 9.420840322981890e-02 9.418392339716981e-02 9.415924578030670e-02 9.413437051700123e-02 9.410929767030043e-02 - 9.408402741009517e-02 9.405855992335012e-02 9.403289535840260e-02 9.400703383941893e-02 9.398097549341558e-02 - 9.395472046838550e-02 9.392826889502673e-02 9.390162091553057e-02 9.387477672023849e-02 9.384773645864139e-02 - 9.382050025947151e-02 9.379306828457251e-02 9.376544068778003e-02 9.373761760606118e-02 9.370959916011609e-02 - 9.368138552427184e-02 9.365297690930323e-02 9.362437342817573e-02 9.359557520850639e-02 9.356658243379877e-02 - 9.353739529945312e-02 9.350801394425273e-02 9.347843843855524e-02 9.344866901272440e-02 9.341870589097585e-02 - 9.338854915644307e-02 9.335819897637819e-02 9.332765555734250e-02 9.329691906420928e-02 9.326598960092489e-02 - 9.323486729288316e-02 9.320355242698486e-02 9.317204517635257e-02 9.314034562740874e-02 9.310845398153604e-02 - 9.307637042858882e-02 9.304409511565054e-02 9.301162817412864e-02 9.297896979469056e-02 9.294612022999450e-02 - 9.291307963943660e-02 9.287984815938743e-02 9.284642594887814e-02 9.281281319942865e-02 9.277901009754375e-02 - 9.274501679883909e-02 9.271083349621308e-02 9.267646039527271e-02 9.264189767811302e-02 9.260714551564306e-02 - 9.257220408228978e-02 9.253707357624473e-02 9.250175417101536e-02 9.246624602802385e-02 9.243054935165987e-02 - 9.239466434718238e-02 9.235859120974489e-02 9.232233012999355e-02 9.228588129454922e-02 9.224924488066757e-02 - 9.221242103323031e-02 9.217540995047416e-02 9.213821191347883e-02 9.210082709355732e-02 9.206325564930115e-02 - 9.202549780755387e-02 9.198755374602623e-02 9.194942363528436e-02 9.191110769995278e-02 9.187260614753277e-02 - 9.183391917841241e-02 9.179504701848260e-02 9.175598985687712e-02 9.171674785963810e-02 9.167732123351167e-02 - 9.163771019528422e-02 9.159791495855178e-02 9.155793572040530e-02 9.151777270193290e-02 9.147742614628342e-02 - 9.143689622063791e-02 9.139618310892414e-02 9.135528705455570e-02 9.131420824439858e-02 9.127294688450004e-02 - 9.123150325806001e-02 9.118987755991119e-02 9.114806996063474e-02 9.110608069642255e-02 9.106390998608170e-02 - 9.102155802996120e-02 9.097902503011562e-02 9.093631123402490e-02 9.089341690732793e-02 9.085034224655422e-02 - 9.080708743846595e-02 9.076365269164367e-02 9.072003828369785e-02 9.067624443485320e-02 9.063227129485288e-02 - 9.058811915193726e-02 9.054378827004000e-02 9.049927881221763e-02 9.045459103770109e-02 9.040972520178260e-02 - 9.036468147234690e-02 9.031946007844127e-02 9.027406127956829e-02 9.022848531585773e-02 9.018273243214560e-02 - 9.013680287341128e-02 9.009069686920407e-02 9.004441462623869e-02 8.999795635152021e-02 8.995132231203949e-02 - 8.990451276610797e-02 8.985752795281814e-02 8.981036812557305e-02 8.976303351703613e-02 8.971552434037033e-02 - 8.966784087291869e-02 8.961998334831080e-02 8.957195192338249e-02 8.952374693198487e-02 8.947536869631613e-02 - 8.942681737354224e-02 8.937809319632291e-02 8.932919644498671e-02 8.928012738635183e-02 8.923088623240803e-02 - 8.918147319450437e-02 8.913188858291199e-02 8.908213269254797e-02 8.903220577223506e-02 8.898210800726358e-02 - 8.893183965769864e-02 8.888140104180198e-02 8.883079233855783e-02 8.878001380541380e-02 8.872906581842580e-02 - 8.867794859494142e-02 8.862666233412557e-02 8.857520730323154e-02 8.852358381153494e-02 8.847179212845252e-02 - 8.841983243253916e-02 8.836770502123131e-02 8.831541022882371e-02 8.826294830990469e-02 8.821031949641793e-02 - 8.815752403748606e-02 8.810456224863354e-02 8.805143437639511e-02 8.799814063336710e-02 8.794468134879541e-02 - 8.789105684257616e-02 8.783726738270531e-02 8.778331316928159e-02 8.772919447874153e-02 8.767491167446911e-02 - 8.762046495069514e-02 8.756585454037039e-02 8.751108081839833e-02 8.745614408581825e-02 8.740104459021790e-02 - 8.734578256007368e-02 8.729035830815834e-02 8.723477214343743e-02 8.717902426868683e-02 8.712311501918556e-02 - 8.706704476846663e-02 8.701081371877695e-02 8.695442211628683e-02 8.689787027644420e-02 8.684115853767592e-02 - 8.678428714435096e-02 8.672725629439892e-02 8.667006642064547e-02 8.661271785522098e-02 8.655521075244504e-02 - 8.649754543067346e-02 8.643972223965939e-02 8.638174147222141e-02 8.632360334916610e-02 8.626530814542391e-02 - 8.620685627786050e-02 8.614824804295058e-02 8.608948367410735e-02 8.603056343813603e-02 8.597148768708160e-02 - 8.591225676580187e-02 8.585287085352321e-02 8.579333027004854e-02 8.573363543090719e-02 8.567378659419787e-02 - 8.561378404241062e-02 8.555362810687137e-02 8.549331906471129e-02 8.543285719635127e-02 8.537224281446841e-02 - 8.531147627953188e-02 8.525055791649624e-02 8.518948798167383e-02 8.512826679756995e-02 8.506689470133286e-02 - 8.500537199311337e-02 8.494369892596923e-02 8.488187579804041e-02 8.481990305210670e-02 8.475778099074194e-02 - 8.469550984763315e-02 8.463308996695838e-02 8.457052168539449e-02 8.450780530789033e-02 8.444494110975011e-02 - 8.438192942971584e-02 8.431877065438623e-02 8.425546507059704e-02 8.419201297696736e-02 8.412841471805475e-02 - 8.406467061549007e-02 8.400078097306259e-02 8.393674609180030e-02 8.387256634619757e-02 8.380824209666674e-02 - 8.374377362095807e-02 8.367916122870038e-02 8.361440526888680e-02 8.354950611900661e-02 8.348446403538942e-02 - 8.341927927704872e-02 8.335395233905314e-02 8.328848356223681e-02 8.322287316371958e-02 8.315712149574238e-02 - 8.309122893699929e-02 8.302519583647612e-02 8.295902243510637e-02 8.289270907781640e-02 8.282625623697057e-02 - 8.275966417678003e-02 8.269293318851907e-02 8.262606370095599e-02 8.255905601211083e-02 8.249191039312886e-02 - 8.242462718945633e-02 8.235720681988298e-02 8.228964967784431e-02 8.222195602541869e-02 8.215412621284769e-02 - 8.208616062445039e-02 8.201805954142698e-02 8.194982329150195e-02 8.188145225476894e-02 8.181294680713293e-02 - 8.174430731452863e-02 8.167553412282050e-02 8.160662752890076e-02 8.153758789030935e-02 8.146841562526554e-02 - 8.139911098330359e-02 8.132967428676124e-02 8.126010603531450e-02 8.119040656216225e-02 8.112057615694021e-02 - 8.105061517994502e-02 8.098052402265073e-02 8.091030303880128e-02 8.083995248093376e-02 8.076947276447492e-02 - 8.069886435754116e-02 8.062812754457355e-02 8.055726265736828e-02 8.048627008799529e-02 8.041515020636995e-02 - 8.034390332540668e-02 8.027252974489747e-02 8.020102993492553e-02 8.012940431195667e-02 8.005765317555476e-02 - 7.998577686939379e-02 7.991377577220368e-02 7.984165027334414e-02 7.976940065907111e-02 7.969702727793032e-02 - 7.962453065567111e-02 7.955191112254574e-02 7.947916895239987e-02 7.940630455590227e-02 7.933331833212637e-02 - 7.926021063894960e-02 7.918698178217287e-02 7.911363216326053e-02 7.904016223823181e-02 7.896657235187955e-02 - 7.889286283938438e-02 7.881903406306398e-02 7.874508643443230e-02 7.867102031060058e-02 7.859683599526633e-02 - 7.852253395767629e-02 7.844811463098400e-02 7.837357831424305e-02 7.829892537205134e-02 7.822415619643758e-02 - 7.814927116484589e-02 7.807427062910767e-02 7.799915496813195e-02 7.792392464520610e-02 7.784858004657273e-02 - 7.777312150359181e-02 7.769754936428309e-02 7.762186403791040e-02 7.754606594385612e-02 7.747015537442642e-02 - 7.739413273994507e-02 7.731799855521804e-02 7.724175314852555e-02 7.716539684747571e-02 7.708893004657069e-02 - 7.701235315053030e-02 7.693566653742440e-02 7.685887055661017e-02 7.678196565918903e-02 7.670495227727288e-02 - 7.662783073280909e-02 7.655060142689749e-02 7.647326478202995e-02 7.639582115595660e-02 7.631827089499127e-02 - 7.624061438211467e-02 7.616285210329320e-02 7.608498447266238e-02 7.600701183814436e-02 7.592893457493513e-02 - 7.585075308733022e-02 7.577246778116596e-02 7.569407897223836e-02 7.561558707997214e-02 7.553699264667676e-02 - 7.545829602219666e-02 7.537949752159374e-02 7.530059752746436e-02 7.522159652110559e-02 7.514249491290788e-02 - 7.506329293711217e-02 7.498399108869409e-02 7.490458989985715e-02 7.482508965268882e-02 7.474549074308040e-02 - 7.466579363230305e-02 7.458599868473173e-02 7.450610623924510e-02 7.442611667561436e-02 7.434603053570255e-02 - 7.426584824442337e-02 7.418557009969678e-02 7.410519651333995e-02 7.402472793153594e-02 7.394416477978479e-02 - 7.386350736456949e-02 7.378275607823381e-02 7.370191147772952e-02 7.362097394239986e-02 7.353994380500382e-02 - 7.345882147239775e-02 7.337760740248925e-02 7.329630201371148e-02 7.321490559729334e-02 7.313341861868546e-02 - 7.305184160923943e-02 7.297017492620234e-02 7.288841893034562e-02 7.280657402242413e-02 7.272464064227188e-02 - 7.264261917439505e-02 7.256050997585588e-02 7.247831356170273e-02 7.239603038649280e-02 7.231366079163171e-02 - 7.223120520116612e-02 7.214866404160214e-02 7.206603769517569e-02 7.198332653777370e-02 7.190053098792457e-02 - 7.181765153838118e-02 7.173468863077177e-02 7.165164265282598e-02 7.156851395212357e-02 7.148530298289761e-02 - 7.140201021117390e-02 7.131863593482980e-02 7.123518058493326e-02 7.115164469180060e-02 7.106802866653637e-02 - 7.098433289103630e-02 7.090055775733806e-02 7.081670370962735e-02 7.073277114629017e-02 7.064876042084919e-02 - 7.056467204467058e-02 7.048050649359339e-02 7.039626411522021e-02 7.031194531783586e-02 7.022755055007633e-02 - 7.014308026270048e-02 7.005853477507426e-02 6.997391445865883e-02 6.988921994223606e-02 6.980445161374127e-02 - 6.971960976161336e-02 6.963469490630880e-02 6.954970749457975e-02 6.946464787470261e-02 6.937951638488904e-02 - 6.929431352344900e-02 6.920903988440608e-02 6.912369577614699e-02 6.903828154824053e-02 6.895279768813133e-02 - 6.886724462309453e-02 6.878162274040467e-02 6.869593242264821e-02 6.861017418575431e-02 6.852434851303352e-02 - 6.843845573229547e-02 6.835249626715924e-02 6.826647058722328e-02 6.818037912112360e-02 6.809422221022603e-02 - 6.800800023353686e-02 6.792171381432285e-02 6.783536337902803e-02 6.774894920974223e-02 6.766247176656806e-02 - 6.757593152448671e-02 6.748932891036163e-02 6.740266425451470e-02 6.731593799992638e-02 6.722915072040272e-02 - 6.714230278026269e-02 6.705539454984789e-02 6.696842651283096e-02 6.688139909018249e-02 6.679431266253504e-02 - 6.670716761081900e-02 6.661996446504156e-02 6.653270374249923e-02 6.644538575792285e-02 6.635801090742725e-02 - 6.627057965598744e-02 6.618309245387675e-02 6.609554968705872e-02 6.600795173819872e-02 6.592029914958422e-02 - 6.583259238307172e-02 6.574483179767340e-02 6.565701780669353e-02 6.556915085921187e-02 6.548123140723705e-02 - 6.539325979064996e-02 6.530523643565112e-02 6.521716192687264e-02 6.512903665438342e-02 6.504086097557776e-02 - 6.495263535156262e-02 6.486436022769713e-02 6.477603601048113e-02 6.468766306269763e-02 6.459924187637454e-02 - 6.451077298036002e-02 6.442225675573160e-02 6.433369358016772e-02 6.424508387319842e-02 6.415642813133042e-02 - 6.406772674084167e-02 6.397898002556264e-02 6.389018858464109e-02 6.380135290132970e-02 6.371247325592760e-02 - 6.362355010153516e-02 6.353458392277617e-02 6.344557514446422e-02 6.335652411846264e-02 6.326743126079815e-02 - 6.317829713990436e-02 6.308912216326193e-02 6.299990668862973e-02 6.291065117630994e-02 6.282135608306753e-02 - 6.273202182393535e-02 6.264264873955985e-02 6.255323731562341e-02 6.246378810230178e-02 6.237430143094801e-02 - 6.228477769978175e-02 6.219521740601344e-02 6.210562097707054e-02 6.201598879095212e-02 6.192632121693314e-02 - 6.183661876812600e-02 6.174688193928092e-02 6.165711112558074e-02 6.156730673780070e-02 6.147746920022401e-02 - 6.138759893800432e-02 6.129769633241683e-02 6.120776180293847e-02 6.111779589683188e-02 6.102779903735479e-02 - 6.093777158500626e-02 6.084771398591046e-02 6.075762667844817e-02 6.066751007308262e-02 6.057736455111417e-02 - 6.048719057054321e-02 6.039698864588414e-02 6.030675917961215e-02 6.021650256672047e-02 6.012621923377075e-02 - 6.003590961818356e-02 5.994557411659043e-02 5.985521308639186e-02 5.976482706463886e-02 5.967441656528669e-02 - 5.958398192281734e-02 5.949352353003544e-02 5.940304183449088e-02 5.931253730252380e-02 5.922201027916447e-02 - 5.913146112197507e-02 5.904089044032181e-02 5.895029868043596e-02 5.885968615096351e-02 5.876905326755812e-02 - 5.867840050492581e-02 5.858772833116550e-02 5.849703703991720e-02 5.840632705235495e-02 5.831559896255584e-02 - 5.822485314806121e-02 5.813408997000494e-02 5.804330987759122e-02 5.795251328764216e-02 5.786170059865808e-02 - 5.777087221384987e-02 5.768002859772193e-02 5.758917021647553e-02 5.749829746896256e-02 5.740741077575853e-02 - 5.731651056875526e-02 5.722559725171274e-02 5.713467118430270e-02 5.704373274635539e-02 5.695278249332581e-02 - 5.686182088614487e-02 5.677084826809927e-02 5.667986504336005e-02 5.658887165217444e-02 5.649786853613976e-02 - 5.640685602792318e-02 5.631583453941855e-02 5.622480462822738e-02 5.613376666437993e-02 5.604272100502515e-02 - 5.595166813210956e-02 5.586060845174765e-02 5.576954232437998e-02 5.567847012652845e-02 5.558739236715193e-02 - 5.549630955542323e-02 5.540522197136583e-02 5.531413002536285e-02 5.522303422299683e-02 5.513193492275553e-02 - 5.504083247717721e-02 5.494972729209355e-02 5.485861988753332e-02 5.476751071228679e-02 5.467640010379995e-02 - 5.458528846418693e-02 5.449417622493567e-02 5.440306381105370e-02 5.431195155656662e-02 5.422083985771245e-02 - 5.412972927459819e-02 5.403862019627870e-02 5.394751295390937e-02 5.385640797531270e-02 5.376530569364821e-02 - 5.367420650537214e-02 5.358311072889269e-02 5.349201882499156e-02 5.340093132499041e-02 5.330984856991542e-02 - 5.321877091980749e-02 5.312769879767464e-02 5.303663263591166e-02 5.294557280318667e-02 5.285451962473617e-02 - 5.276347361952855e-02 5.267243525955664e-02 5.258140485845194e-02 5.249038280640431e-02 5.239936952998326e-02 - 5.230836544276557e-02 5.221737088032564e-02 5.212638621732711e-02 5.203541199430900e-02 5.194444860919033e-02 - 5.185349638284296e-02 5.176255572471577e-02 5.167162705674897e-02 5.158071077330502e-02 5.148980718747074e-02 - 5.139891673261619e-02 5.130803993485430e-02 5.121717713356427e-02 5.112632867301793e-02 5.103549496777923e-02 - 5.094467643725986e-02 5.085387344650644e-02 5.076308630673339e-02 5.067231551219451e-02 5.058156153920812e-02 - 5.049082469322039e-02 5.040010534612100e-02 5.030940391348503e-02 5.021872080090227e-02 5.012805633824483e-02 - 5.003741087422633e-02 4.994678493647212e-02 4.985617892926745e-02 4.976559315779018e-02 4.967502801470126e-02 - 4.958448390876292e-02 4.949396122643934e-02 4.940346027599988e-02 4.931298146262254e-02 4.922252530167843e-02 - 4.913209213539834e-02 4.904168229174269e-02 4.895129616994274e-02 4.886093417404704e-02 4.877059666413559e-02 - 4.868028394034647e-02 4.858999646754281e-02 4.849973472130898e-02 4.840949900241633e-02 4.831928966152828e-02 - 4.822910709871525e-02 4.813895171199074e-02 4.804882382564480e-02 4.795872376124456e-02 4.786865202942978e-02 - 4.777860903855367e-02 4.768859507592742e-02 4.759861051627762e-02 4.750865575639699e-02 4.741873117406014e-02 - 4.732883706721817e-02 4.723897381137243e-02 4.714914191200375e-02 4.705934171189571e-02 4.696957351961628e-02 - 4.687983771740974e-02 4.679013469431771e-02 4.670046480338604e-02 4.661082833156779e-02 4.652122571187634e-02 - 4.643165741520618e-02 4.634212373882778e-02 4.625262501422293e-02 4.616316162482947e-02 4.607373395212459e-02 - 4.598434231610999e-02 4.589498701904484e-02 4.580566854223844e-02 4.571638729424802e-02 4.562714355109129e-02 - 4.553793766452621e-02 4.544877001582995e-02 4.535964097502848e-02 4.527055082898004e-02 4.518149992236756e-02 - 4.509248874970542e-02 4.500351765014129e-02 4.491458690878355e-02 4.482569689376779e-02 4.473684797939540e-02 - 4.464804050747698e-02 4.455927474828068e-02 4.447055110499822e-02 4.438187004531898e-02 4.429323185876936e-02 - 4.420463685202721e-02 4.411608538888854e-02 4.402757783926076e-02 4.393911451733543e-02 4.385069570127949e-02 - 4.376232184208732e-02 4.367399334643604e-02 4.358571047769912e-02 4.349747356709084e-02 4.340928298020802e-02 - 4.332113907381294e-02 4.323304212320113e-02 4.314499244129432e-02 4.305699050668390e-02 4.296903665620930e-02 - 4.288113115167341e-02 4.279327434447749e-02 4.270546659199307e-02 4.261770822231841e-02 4.252999949469098e-02 - 4.244234077853745e-02 4.235473252680039e-02 4.226717502474875e-02 4.217966855846760e-02 4.209221347273914e-02 - 4.200481011967518e-02 4.191745880279663e-02 4.183015977695443e-02 4.174291346429643e-02 4.165572027077732e-02 - 4.156858044734360e-02 4.148149429654668e-02 4.139446216241891e-02 4.130748439363172e-02 4.122056125606220e-02 - 4.113369302794675e-02 4.104688016346336e-02 4.096012300095512e-02 4.087342178434451e-02 4.078677683583759e-02 - 4.070018849668031e-02 4.061365708919899e-02 4.052718285106741e-02 4.044076611819490e-02 4.035440733833207e-02 - 4.026810678092279e-02 4.018186470341873e-02 4.009568143909095e-02 4.000955732298062e-02 3.992349264534106e-02 - 3.983748763759326e-02 3.975154269055037e-02 3.966565820546299e-02 3.957983441649049e-02 3.949407160357907e-02 - 3.940837009289332e-02 3.932273021031552e-02 3.923715221270428e-02 3.915163635394041e-02 3.906618306202975e-02 - 3.898079266950179e-02 3.889546539672872e-02 3.881020154253283e-02 3.872500143016262e-02 3.863986536923758e-02 - 3.855479358615301e-02 3.846978637959592e-02 3.838484417257106e-02 3.829996723484980e-02 3.821515580420295e-02 - 3.813041018714970e-02 3.804573069687705e-02 3.796111761198420e-02 3.787657114752344e-02 3.779209165765486e-02 - 3.770767953120019e-02 3.762333499040284e-02 3.753905829251161e-02 3.745484974542636e-02 3.737070965331050e-02 - 3.728663825939783e-02 3.720263578933122e-02 3.711870264209954e-02 3.703483914671073e-02 3.695104550519348e-02 - 3.686732199057993e-02 3.678366890490292e-02 3.670008654113079e-02 3.661657511036890e-02 3.653313487804630e-02 - 3.644976625150438e-02 3.636646948823320e-02 3.628324479604935e-02 3.620009246605282e-02 3.611701279349350e-02 - 3.603400604041686e-02 3.595107239910939e-02 3.586821219020735e-02 3.578542579441001e-02 3.570271341631447e-02 - 3.562007528519529e-02 3.553751169069794e-02 3.545502291550906e-02 3.537260919186706e-02 3.529027072401183e-02 - 3.520800787214007e-02 3.512582095428173e-02 3.504371015751370e-02 3.496167573051010e-02 3.487971795476078e-02 - 3.479783710598274e-02 3.471603337811516e-02 3.463430699965583e-02 3.455265835796009e-02 3.447108770848941e-02 - 3.438959523450754e-02 3.430818119554624e-02 3.422684586511945e-02 3.414558949343227e-02 3.406441225419257e-02 - 3.398331443038755e-02 3.390229638782512e-02 3.382135832287533e-02 3.374050043789544e-02 3.365972299780525e-02 - 3.357902626321113e-02 3.349841045119794e-02 3.341787574130316e-02 3.333742246166845e-02 3.325705092272905e-02 - 3.317676129391954e-02 3.309655379649919e-02 3.301642868788483e-02 3.293638622159571e-02 3.285642658240021e-02 - 3.277654996949401e-02 3.269675673538998e-02 3.261704712715797e-02 3.253742130855802e-02 3.245787951722746e-02 - 3.237842200259459e-02 3.229904899349424e-02 3.221976065258773e-02 3.214055722659278e-02 3.206143905506719e-02 - 3.198240632628265e-02 3.190345921865954e-02 3.182459797365254e-02 3.174582282841434e-02 3.166713398447476e-02 - 3.158853160183031e-02 3.151001597036992e-02 3.143158738592136e-02 3.135324600516137e-02 3.127499202279022e-02 - 3.119682567104914e-02 3.111874718036912e-02 3.104075672462514e-02 3.096285447683152e-02 3.088504075536903e-02 - 3.080731579690068e-02 3.072967974437236e-02 3.065213281019982e-02 3.057467522135681e-02 3.049730718652442e-02 - 3.042002885157935e-02 3.034284042889533e-02 3.026574223701538e-02 3.018873445294931e-02 3.011181722724549e-02 - 3.003499077734359e-02 2.995825532248887e-02 2.988161104857855e-02 2.980505808548691e-02 2.972859668986686e-02 - 2.965222714891759e-02 2.957594959806504e-02 2.949976420500935e-02 2.942367118266701e-02 2.934767073798247e-02 - 2.927176302885600e-02 2.919594820074298e-02 2.912022654108078e-02 2.904459827654108e-02 2.896906352751058e-02 - 2.889362247668933e-02 2.881827533028623e-02 2.874302228403363e-02 2.866786346167200e-02 2.859279903706265e-02 - 2.851782931145582e-02 2.844295445253672e-02 2.836817458182308e-02 2.829348988995876e-02 2.821890057629359e-02 - 2.814440681221589e-02 2.807000870175516e-02 2.799570646465742e-02 2.792150037589211e-02 2.784739055623231e-02 - 2.777337714638600e-02 2.769946033688953e-02 2.762564030841585e-02 2.755191720229608e-02 2.747829114116882e-02 - 2.740476237631904e-02 2.733133112357609e-02 2.725799748998750e-02 2.718476162641247e-02 2.711162371095654e-02 - 2.703858392279279e-02 2.696564237390275e-02 2.689279920452167e-02 2.682005468428394e-02 2.674740897239565e-02 - 2.667486216835663e-02 2.660241443488607e-02 2.653006594727732e-02 2.645781686062815e-02 2.638566726160998e-02 - 2.631361733435826e-02 2.624166733570949e-02 2.616981737012440e-02 2.609806754771221e-02 2.602641803533937e-02 - 2.595486900051258e-02 2.588342056814261e-02 2.581207282360541e-02 2.574082599292273e-02 2.566968028470076e-02 - 2.559863577456860e-02 2.552769259041796e-02 2.545685089381796e-02 2.538611083889939e-02 2.531547252137675e-02 - 2.524493605061727e-02 2.517450166747065e-02 2.510416952086314e-02 2.503393968681819e-02 2.496381230163825e-02 - 2.489378751859868e-02 2.482386547683629e-02 2.475404624292582e-02 2.468432996264991e-02 2.461471687229032e-02 - 2.454520706873932e-02 2.447580063686782e-02 2.440649771598710e-02 2.433729844997764e-02 2.426820294893469e-02 - 2.419921127712116e-02 2.413032362216684e-02 2.406154017790910e-02 2.399286100816565e-02 2.392428621229386e-02 - 2.385581592554643e-02 2.378745028409909e-02 2.371918936700126e-02 2.365103325041379e-02 2.358298215018098e-02 - 2.351503620457756e-02 2.344719546326070e-02 2.337946004127276e-02 2.331183006962702e-02 2.324430566419196e-02 - 2.317688687789637e-02 2.310957382435168e-02 2.304236671579298e-02 2.297526563441205e-02 2.290827063843882e-02 - 2.284138184722980e-02 2.277459938171355e-02 2.270792333404544e-02 2.264135374860772e-02 2.257489077729924e-02 - 2.250853459738779e-02 2.244228525780410e-02 2.237614283279474e-02 2.231010743473913e-02 2.224417917668724e-02 - 2.217835812285958e-02 2.211264432248330e-02 2.204703795931322e-02 2.198153916317220e-02 2.191614796666107e-02 - 2.185086445220271e-02 2.178568872592581e-02 2.172062089111306e-02 2.165566098457172e-02 2.159080908357505e-02 - 2.152606537366001e-02 2.146142993110024e-02 2.139690279242156e-02 2.133248404619538e-02 2.126817379406035e-02 - 2.120397211607284e-02 2.113987903003668e-02 2.107589465469217e-02 2.101201915594272e-02 2.094825256288664e-02 - 2.088459492231405e-02 2.082104632696408e-02 2.075760686991806e-02 2.069427660166107e-02 2.063105554609518e-02 - 2.056794384972622e-02 2.050494162894281e-02 2.044204890243054e-02 2.037926573000831e-02 2.031659219454509e-02 - 2.025402837653619e-02 2.019157429898307e-02 2.012923000978476e-02 2.006699566765361e-02 2.000487133731908e-02 - 1.994285703240835e-02 1.988095281849638e-02 1.981915877663429e-02 1.975747497137283e-02 1.969590139839621e-02 - 1.963443814246610e-02 1.957308535571834e-02 1.951184305296579e-02 1.945071125524195e-02 1.938969003470093e-02 - 1.932877945979973e-02 1.926797956444602e-02 1.920729035294688e-02 1.914671194302782e-02 1.908624443873623e-02 - 1.902588783798898e-02 1.896564217312377e-02 1.890550750534374e-02 1.884548390173623e-02 1.878557136933607e-02 - 1.872576992282937e-02 1.866607969751645e-02 1.860650074902563e-02 1.854703306920867e-02 1.848767670108510e-02 - 1.842843170242723e-02 1.836929811895166e-02 1.831027593341436e-02 1.825136519709141e-02 1.819256603897189e-02 - 1.813387846842225e-02 1.807530248298604e-02 1.801683812530333e-02 1.795848544988909e-02 1.790024447932676e-02 - 1.784211518704799e-02 1.778409766075985e-02 1.772619199567190e-02 1.766839817113224e-02 1.761071619932593e-02 - 1.755314612276550e-02 1.749568797940397e-02 1.743834176385679e-02 1.738110747126647e-02 1.732398520795971e-02 - 1.726697501687009e-02 1.721007686976607e-02 1.715329079150987e-02 1.709661681774517e-02 1.704005496995066e-02 - 1.698360522175755e-02 1.692726759648597e-02 1.687104219632033e-02 1.681492902190890e-02 1.675892805218375e-02 - 1.670303930866012e-02 1.664726282100333e-02 1.659159859573434e-02 1.653604659349284e-02 1.648060687061485e-02 - 1.642527950537791e-02 1.637006446137386e-02 1.631496172845883e-02 1.625997133117372e-02 1.620509328829045e-02 - 1.615032758053278e-02 1.609567417924041e-02 1.604113316306734e-02 1.598670456411958e-02 1.593238833576510e-02 - 1.587818448257840e-02 1.582409302120838e-02 1.577011395254391e-02 1.571624723647299e-02 1.566249287063067e-02 - 1.560885093721684e-02 1.555532142372995e-02 1.550190428691725e-02 1.544859953345741e-02 1.539540716895692e-02 - 1.534232718045593e-02 1.528935952298772e-02 1.523650422043375e-02 1.518376132655854e-02 1.513113080051426e-02 - 1.507861261080395e-02 1.502620675643192e-02 1.497391324399307e-02 1.492173204313831e-02 1.486966309840608e-02 - 1.481770646058926e-02 1.476586215324725e-02 1.471413011485714e-02 1.466251032223325e-02 1.461100277337298e-02 - 1.455960746411957e-02 1.450832433725036e-02 1.445715335761371e-02 1.440609458945226e-02 1.435514801148310e-02 - 1.430431355790390e-02 1.425359121341204e-02 1.420298097105418e-02 1.415248280845771e-02 1.410209665546564e-02 - 1.405182250942155e-02 1.400166041623447e-02 1.395161031395394e-02 1.390167215017196e-02 1.385184591619880e-02 - 1.380213159317199e-02 1.375252913341631e-02 1.370303846818604e-02 1.365365962256361e-02 1.360439260851619e-02 - 1.355523734898775e-02 1.350619380184460e-02 1.345726194685572e-02 1.340844175819677e-02 1.335973317080697e-02 - 1.331113613029375e-02 1.326265067233158e-02 1.321427676765317e-02 1.316601433678336e-02 1.311786334248669e-02 - 1.306982375879771e-02 1.302189555021592e-02 1.297407863461756e-02 1.292637298076667e-02 1.287877861455418e-02 - 1.283129547339001e-02 1.278392348592105e-02 1.273666261347862e-02 1.268951282495219e-02 1.264247406704279e-02 - 1.259554625321822e-02 1.254872937642621e-02 1.250202343522368e-02 1.245542834900525e-02 1.240894405313941e-02 - 1.236257050462080e-02 1.231630767029411e-02 1.227015547343941e-02 1.222411383176151e-02 1.217818275998809e-02 - 1.213236222220244e-02 1.208665212384520e-02 1.204105241018576e-02 1.199556303854240e-02 1.195018395838791e-02 - 1.190491507365890e-02 1.185975632952753e-02 1.181470773836339e-02 1.176976922480089e-02 1.172494069835479e-02 - 1.168022211004454e-02 1.163561340968965e-02 1.159111452823667e-02 1.154672536811994e-02 1.150244589927961e-02 - 1.145827610670764e-02 1.141421589534856e-02 1.137026518661645e-02 1.132642392502224e-02 1.128269205281729e-02 - 1.123906948383837e-02 1.119555612518262e-02 1.115215196588227e-02 1.110885695891592e-02 1.106567099667937e-02 - 1.102259400831050e-02 1.097962593601935e-02 1.093676671505125e-02 1.089401623812122e-02 1.085137442757511e-02 - 1.080884127911701e-02 1.076641671182367e-02 1.072410061923310e-02 1.068189293399554e-02 1.063979359231152e-02 - 1.059780251428707e-02 1.055591958418482e-02 1.051414475108346e-02 1.047247799305691e-02 1.043091920126454e-02 - 1.038946827795377e-02 1.034812515386981e-02 1.030688975996647e-02 1.026576200007446e-02 1.022474176231751e-02 - 1.018382901647819e-02 1.014302370834395e-02 1.010232571551464e-02 1.006173495028295e-02 1.002125134058496e-02 - 9.980874808217161e-03 9.940605238090998e-03 9.900442533803457e-03 9.860386673211879e-03 9.820437566105797e-03 - 9.780595089730604e-03 9.740859166502601e-03 9.701229717604148e-03 9.661706648486619e-03 9.622289837555094e-03 - 9.582979211676392e-03 9.543774731762645e-03 9.504676285752028e-03 9.465683761437204e-03 9.426797070527869e-03 - 9.388016130061547e-03 9.349340837763126e-03 9.310771071700266e-03 9.272306774287777e-03 9.233947879847340e-03 - 9.195694263233465e-03 9.157545820041815e-03 9.119502462398593e-03 9.081564104605406e-03 9.043730620594144e-03 - 9.006001891771507e-03 8.968377884117109e-03 8.930858503326412e-03 8.893443610144467e-03 8.856133108771761e-03 - 8.818926910576046e-03 8.781824915337199e-03 8.744826984807866e-03 8.707933026764444e-03 8.671142997995955e-03 - 8.634456771198624e-03 8.597874217863410e-03 8.561395247729468e-03 8.525019762147885e-03 8.488747643810387e-03 - 8.452578758551675e-03 8.416513035074836e-03 8.380550402064440e-03 8.344690718755845e-03 8.308933866062409e-03 - 8.273279745485652e-03 8.237728259206089e-03 8.202279277607399e-03 8.166932668725525e-03 8.131688373197346e-03 - 8.096546291813443e-03 8.061506280849479e-03 8.026568229604077e-03 7.991732033790425e-03 7.956997581179438e-03 - 7.922364735477982e-03 7.887833385768220e-03 7.853403460644042e-03 7.819074838170454e-03 7.784847385209607e-03 - 7.750720988388416e-03 7.716695538073770e-03 7.682770912288046e-03 7.648946965667346e-03 7.615223607644973e-03 - 7.581600758648286e-03 7.548078272068747e-03 7.514656018308716e-03 7.481333888256649e-03 7.448111767084748e-03 - 7.414989518558892e-03 7.381967002509678e-03 7.349044141005179e-03 7.316220829119200e-03 7.283496916229069e-03 - 7.250872276568530e-03 7.218346796125786e-03 7.185920358959778e-03 7.153592811909379e-03 7.121364026156801e-03 - 7.089233934032213e-03 7.057202401526107e-03 7.025269274784423e-03 6.993434437254338e-03 6.961697770726437e-03 - 6.930059144137623e-03 6.898518406074085e-03 6.867075445461445e-03 6.835730169890301e-03 6.804482436531050e-03 - 6.773332103630715e-03 6.742279042830752e-03 6.711323134446215e-03 6.680464239400761e-03 6.649702204950062e-03 - 6.619036937093537e-03 6.588468325547939e-03 6.557996212108587e-03 6.527620458965777e-03 6.497340941897300e-03 - 6.467157538628341e-03 6.437070090473932e-03 6.407078453159759e-03 6.377182548096138e-03 6.347382238649846e-03 - 6.317677359750170e-03 6.288067782822399e-03 6.258553381641384e-03 6.229134019133821e-03 6.199809533909972e-03 - 6.170579803332374e-03 6.141444731866248e-03 6.112404164377095e-03 6.083457948651627e-03 6.054605954063168e-03 - 6.025848047899531e-03 5.997184082520315e-03 5.968613898555075e-03 5.940137388272029e-03 5.911754435973001e-03 - 5.883464876798197e-03 5.855268565478542e-03 5.827165369238958e-03 5.799155152943781e-03 5.771237757858197e-03 - 5.743413031370796e-03 5.715680873423079e-03 5.688041146137241e-03 5.660493683352233e-03 5.633038344713090e-03 - 5.605674994693767e-03 5.578403490874967e-03 5.551223666073857e-03 5.524135383482108e-03 5.497138538622371e-03 - 5.470232973711985e-03 5.443418527865922e-03 5.416695061766649e-03 5.390062436684385e-03 5.363520500801443e-03 - 5.337069085950208e-03 5.310708070645691e-03 5.284437334686721e-03 5.258256709167105e-03 5.232166039984466e-03 - 5.206165186351173e-03 5.180254006079314e-03 5.154432337116667e-03 5.128700017566677e-03 5.103056934758595e-03 - 5.077502948400768e-03 5.052037887552509e-03 5.026661602896529e-03 5.001373950974750e-03 4.976174783805283e-03 - 4.951063931174483e-03 4.926041244835856e-03 4.901106610871052e-03 4.876259869861805e-03 4.851500854152867e-03 - 4.826829416485723e-03 4.802245411238555e-03 4.777748682676776e-03 4.753339057595283e-03 4.729016402174706e-03 - 4.704780591018902e-03 4.680631452386119e-03 4.656568824906738e-03 4.632592561043116e-03 4.608702512089780e-03 - 4.584898512841469e-03 4.561180394112987e-03 4.537548032865621e-03 4.514001286180084e-03 4.490539978046344e-03 - 4.467163952568486e-03 4.443873060291688e-03 4.420667147623122e-03 4.397546041481102e-03 4.374509584352294e-03 - 4.351557654555007e-03 4.328690090868674e-03 4.305906719484884e-03 4.283207387010587e-03 4.260591942258349e-03 - 4.238060226010617e-03 4.215612060889534e-03 4.193247302342208e-03 4.170965820265097e-03 4.148767441443334e-03 - 4.126651998168965e-03 4.104619336614093e-03 4.082669303050944e-03 4.060801730082235e-03 4.039016442831475e-03 - 4.017313308452854e-03 3.995692181792875e-03 3.974152883344686e-03 3.952695251163741e-03 3.931319130911208e-03 - 3.910024364917125e-03 3.888810777810686e-03 3.867678204037116e-03 3.846626514691173e-03 3.825655547709963e-03 - 3.804765124734014e-03 3.783955087456414e-03 3.763225279741349e-03 3.742575538839424e-03 3.722005684569956e-03 - 3.701515563829318e-03 3.681105042529648e-03 3.660773945892437e-03 3.640522100973796e-03 3.620349349516141e-03 - 3.600255533338096e-03 3.580240483202974e-03 3.560304020332013e-03 3.540446002992503e-03 3.520666284206718e-03 - 3.500964682823155e-03 3.481341031384374e-03 3.461795171007476e-03 3.442326941040924e-03 3.422936165061433e-03 - 3.403622671201535e-03 3.384386323473485e-03 3.365226959961049e-03 3.346144399498565e-03 3.327138478378434e-03 - 3.308209036536853e-03 3.289355909461925e-03 3.270578915351533e-03 3.251877893639187e-03 3.233252706195778e-03 - 3.214703178029928e-03 3.196229132118811e-03 3.177830406368320e-03 3.159506839403438e-03 3.141258260810600e-03 - 3.123084488811596e-03 3.104985374197366e-03 3.086960768611876e-03 3.069010490077185e-03 3.051134366997480e-03 - 3.033332237019262e-03 3.015603936903380e-03 2.997949290147841e-03 2.980368120588831e-03 2.962860285290425e-03 - 2.945425622240710e-03 2.928063948810786e-03 2.910775098113858e-03 2.893558906982335e-03 2.876415208617919e-03 - 2.859343821344898e-03 2.842344578930633e-03 2.825417338731532e-03 2.808561926446875e-03 2.791778162629514e-03 - 2.775065882662152e-03 2.758424922052246e-03 2.741855109318431e-03 2.725356262118107e-03 2.708928224810950e-03 - 2.692570847204586e-03 2.676283947708203e-03 2.660067352018658e-03 2.643920895408666e-03 2.627844412630983e-03 - 2.611837727127577e-03 2.595900659591014e-03 2.580033062057212e-03 2.564234773200918e-03 2.548505609580814e-03 - 2.532845401329118e-03 2.517253983314282e-03 2.501731188088862e-03 2.486276834298587e-03 2.470890751027053e-03 - 2.455572791828030e-03 2.440322784214469e-03 2.425140547489158e-03 2.410025914370114e-03 2.394978718743150e-03 - 2.379998789312335e-03 2.365085943631231e-03 2.350240020749269e-03 2.335460868942443e-03 2.320748308349550e-03 - 2.306102163022297e-03 2.291522266200105e-03 2.277008450857895e-03 2.262560541519312e-03 2.248178358404482e-03 - 2.233861748393963e-03 2.219610550590767e-03 2.205424582540762e-03 2.191303672653564e-03 2.177247654150935e-03 - 2.163256358437406e-03 2.149329606085116e-03 2.135467224025938e-03 2.121669062135428e-03 2.107934949596006e-03 - 2.094264705479671e-03 2.080658161247730e-03 2.067115150052171e-03 2.053635501035216e-03 2.040219032033609e-03 - 2.026865578574763e-03 2.013574988607888e-03 2.000347084189316e-03 1.987181688126059e-03 1.974078632294973e-03 - 1.961037750159034e-03 1.948058867783843e-03 1.935141804192390e-03 1.922286403096425e-03 1.909492504980594e-03 - 1.896759928265229e-03 1.884088500763132e-03 1.871478055631251e-03 1.858928424089599e-03 1.846439428400912e-03 - 1.834010894228015e-03 1.821642669213327e-03 1.809334584628213e-03 1.797086460037203e-03 1.784898126770644e-03 - 1.772769417737367e-03 1.760700162615002e-03 1.748690181778845e-03 1.736739308394668e-03 1.724847388831493e-03 - 1.713014248130287e-03 1.701239709792772e-03 1.689523605558227e-03 1.677865768960374e-03 1.666266027776910e-03 - 1.654724201747776e-03 1.643240132443950e-03 1.631813662093462e-03 1.620444610863358e-03 1.609132806416696e-03 - 1.597878082462674e-03 1.586680271167799e-03 1.575539197124769e-03 1.564454685806544e-03 1.553426583192850e-03 - 1.542454723186195e-03 1.531538926942232e-03 1.520679025889417e-03 1.509874853790604e-03 1.499126242122267e-03 - 1.488433013507451e-03 1.477795000037597e-03 1.467212048115432e-03 1.456683985464255e-03 1.446210636719452e-03 - 1.435791835117153e-03 1.425427414393694e-03 1.415117204211151e-03 1.404861027594662e-03 1.394658724273689e-03 - 1.384510137356095e-03 1.374415090575271e-03 1.364373412382042e-03 1.354384937246215e-03 1.344449499301808e-03 - 1.334566925970926e-03 1.324737043332181e-03 1.314959696939330e-03 1.305234723823342e-03 1.295561947265019e-03 - 1.285941199528206e-03 1.276372315963847e-03 1.266855130463658e-03 1.257389468322312e-03 1.247975161599065e-03 - 1.238612057815808e-03 1.229299987951490e-03 1.220038778115428e-03 1.210828263449681e-03 1.201668279419893e-03 - 1.192558658328712e-03 1.183499226491516e-03 1.174489822883548e-03 1.165530291825810e-03 1.156620461345326e-03 - 1.147760161971411e-03 1.138949229776032e-03 1.130187500878873e-03 1.121474806129454e-03 1.112810973708310e-03 - 1.104195848566657e-03 1.095629271185936e-03 1.087111069073448e-03 1.078641075658101e-03 1.070219127753748e-03 - 1.061845062287274e-03 1.053518708913237e-03 1.045239900848634e-03 1.037008485418972e-03 1.028824298155823e-03 - 1.020687168641753e-03 1.012596933141099e-03 1.004553429894111e-03 9.965564952721074e-04 9.886059579764911e-04 - 9.807016577383673e-04 9.728434421263681e-04 9.650311428619217e-04 9.572645925441391e-04 9.495436296868831e-04 - 9.418680934992058e-04 9.342378189983833e-04 9.266526374013966e-04 9.191123940951565e-04 9.116169327210938e-04 - 9.041660846048507e-04 8.967596865276394e-04 8.893975784458786e-04 8.820795994475233e-04 8.748055834052338e-04 - 8.675753662309574e-04 8.603887967412885e-04 8.532457145816050e-04 8.461459528881801e-04 8.390893515597134e-04 - 8.320757512954288e-04 8.251049910410551e-04 8.181769052102455e-04 8.112913354889369e-04 8.044481307476467e-04 - 7.976471276304203e-04 7.908881626723219e-04 7.841710779271092e-04 7.774957151422038e-04 7.708619131557394e-04 - 7.642695077220146e-04 7.577183458379644e-04 7.512082748417916e-04 7.447391309361296e-04 7.383107537219758e-04 - 7.319229861740803e-04 7.255756719189899e-04 7.192686493738265e-04 7.130017570250109e-04 7.067748463319056e-04 - 7.005877618919097e-04 6.944403408515077e-04 6.883324261093659e-04 6.822638623160529e-04 6.762344932684062e-04 - 6.702441573916524e-04 6.642926986443232e-04 6.583799694858947e-04 6.525058122102392e-04 6.466700672293728e-04 - 6.408725793807691e-04 6.351131947715911e-04 6.293917574305099e-04 6.237081070877600e-04 6.180620932909059e-04 - 6.124535677685099e-04 6.068823714677426e-04 6.013483481700967e-04 5.958513451670206e-04 5.903912096703989e-04 - 5.849677853780454e-04 5.795809154020751e-04 5.742304534677881e-04 5.689162489783443e-04 5.636381442526738e-04 - 5.583959863498279e-04 5.531896240506697e-04 5.480189055622431e-04 5.428836748799696e-04 5.377837797240800e-04 - 5.327190759830209e-04 5.276894110958636e-04 5.226946300477827e-04 5.177345825024617e-04 5.128091188465486e-04 - 5.079180879528710e-04 5.030613351067660e-04 4.982387130290541e-04 4.934500776624026e-04 4.886952758062522e-04 - 4.839741558713263e-04 4.792865695826084e-04 4.746323688630657e-04 4.700114029595036e-04 4.654235198613055e-04 - 4.608685766627245e-04 4.563464280591107e-04 4.518569219186994e-04 4.473999099762359e-04 4.429752457691277e-04 - 4.385827824909558e-04 4.342223700107388e-04 4.298938604566902e-04 4.255971135329090e-04 4.213319826090788e-04 - 4.170983180859963e-04 4.128959744299958e-04 4.087248069577171e-04 4.045846700338900e-04 4.004754147907325e-04 - 3.963968979642262e-04 3.923489801919561e-04 3.883315144592717e-04 3.843443544269981e-04 3.803873568608614e-04 - 3.764603788261386e-04 3.725632754784107e-04 3.686959004384349e-04 3.648581147870281e-04 3.610497787686854e-04 - 3.572707463878945e-04 3.535208745539621e-04 3.498000220657478e-04 3.461080477383748e-04 3.424448076363575e-04 - 3.388101589386426e-04 3.352039657815740e-04 3.316260877532703e-04 3.280763812137888e-04 3.245547060139738e-04 - 3.210609229167205e-04 3.175948921405597e-04 3.141564711604799e-04 3.107455215081982e-04 3.073619088757455e-04 - 3.040054927848886e-04 3.006761327105527e-04 2.973736909925681e-04 2.940980303881470e-04 2.908490123115160e-04 - 2.876264965105581e-04 2.844303488008553e-04 2.812604353029198e-04 2.781166164989417e-04 2.749987551423296e-04 - 2.719067158817455e-04 2.688403633742989e-04 2.657995602462465e-04 2.627841695326067e-04 2.597940603791381e-04 - 2.568290988582687e-04 2.538891477672460e-04 2.509740728301346e-04 2.480837407612393e-04 2.452180180501483e-04 - 2.423767689150773e-04 2.395598604007145e-04 2.367671637065971e-04 2.339985452156380e-04 2.312538707417314e-04 - 2.285330086975239e-04 2.258358279521211e-04 2.231621965330517e-04 2.205119809474630e-04 2.178850522930381e-04 - 2.152812827957872e-04 2.127005401044592e-04 2.101426932429596e-04 2.076076129630843e-04 2.050951703707553e-04 - 2.026052350574154e-04 2.001376764695323e-04 1.976923692963255e-04 1.952691863631026e-04 1.928679973631469e-04 - 1.904886744667185e-04 1.881310908124045e-04 1.857951194428946e-04 1.834806317739651e-04 1.811875010647571e-04 - 1.789156043640377e-04 1.766648152326652e-04 1.744350063601967e-04 1.722260526922104e-04 1.700378296945535e-04 - 1.678702123432160e-04 1.657230742438847e-04 1.635962925697728e-04 1.614897461072756e-04 1.594033097074569e-04 - 1.573368592094730e-04 1.552902721810668e-04 1.532634264532060e-04 1.512561988693490e-04 1.492684659352835e-04 - 1.473001083560244e-04 1.453510059716440e-04 1.434210358729406e-04 1.415100771164913e-04 1.396180097223186e-04 - 1.377447137267307e-04 1.358900680130841e-04 1.340539526362652e-04 1.322362510498252e-04 1.304368442346035e-04 - 1.286556121626104e-04 1.268924368411170e-04 1.251472007379926e-04 1.234197860690376e-04 1.217100740639766e-04 - 1.200179485071157e-04 1.183432949752447e-04 1.166859960758634e-04 1.150459349477667e-04 1.134229962637926e-04 - 1.118170649981152e-04 1.102280255615328e-04 1.086557620076939e-04 1.071001616642248e-04 1.055611117192228e-04 - 1.040384970703678e-04 1.025322040262462e-04 1.010421198490596e-04 9.956813202096472e-05 9.811012722455996e-05 - 9.666799283658755e-05 9.524161921027426e-05 9.383089505710078e-05 9.243570803818307e-05 9.105594759252440e-05 - 8.969150364397068e-05 8.834226604286881e-05 8.700812397260034e-05 8.568896841419017e-05 8.438469212608002e-05 - 8.309518568825200e-05 8.182033994906239e-05 8.056004718218619e-05 7.931419998170841e-05 7.808269064296404e-05 - 7.686541112857092e-05 7.566225594198306e-05 7.447311991364301e-05 7.329789600792314e-05 7.213647827366786e-05 - 7.098876170896106e-05 6.985464163907488e-05 6.873401282606521e-05 6.762677039259616e-05 6.653281205307769e-05 - 6.545203459530543e-05 6.438433381335806e-05 6.332960688869456e-05 6.228775159650499e-05 6.125866586213212e-05 - 6.024224709312662e-05 5.923839394811549e-05 5.824700680510711e-05 5.726798458845817e-05 5.630122626966778e-05 - 5.534663202079377e-05 5.440410243697520e-05 5.347353805513213e-05 5.255483915897720e-05 5.164790790372327e-05 - 5.075264706713765e-05 4.986895809670387e-05 4.899674321102013e-05 4.813590548272275e-05 4.728634834520723e-05 - 4.644797500988253e-05 4.562068892036128e-05 4.480439551815946e-05 4.399899988301035e-05 4.320440633696577e-05 - 4.242052030402665e-05 4.164724778526068e-05 4.088449502887978e-05 4.013216802138054e-05 3.939017361734100e-05 - 3.865842020891389e-05 3.793681530287127e-05 3.722526637683801e-05 3.652368195642655e-05 3.583197100166348e-05 - 3.515004257550265e-05 3.447780563338777e-05 3.381517049939420e-05 3.316204825033269e-05 3.251834908257212e-05 - 3.188398376275541e-05 3.125886384349450e-05 3.064290126992314e-05 3.003600797392098e-05 2.943809607683111e-05 - 2.884907925556903e-05 2.826887119646782e-05 2.769738505988399e-05 2.713453488302094e-05 2.658023526748751e-05 - 2.603440114263312e-05 2.549694738792051e-05 2.496778949423694e-05 2.444684425976710e-05 2.393402805764408e-05 - 2.342925723948219e-05 2.293244905822871e-05 2.244352120797989e-05 2.196239159983278e-05 2.148897818423003e-05 - 2.102319990982268e-05 2.056497650699234e-05 2.011422722229805e-05 1.967087173846936e-05 1.923483045310688e-05 - 1.880602417859793e-05 1.838437386840237e-05 1.796980069033951e-05 1.756222699777835e-05 1.716157539169325e-05 - 1.676776819323897e-05 1.638072842752046e-05 1.600037965967140e-05 1.562664583506045e-05 1.525945101785764e-05 - 1.489871974108943e-05 1.454437762041471e-05 1.419635018600421e-05 1.385456300630342e-05 1.351894241351905e-05 - 1.318941519258516e-05 1.286590843459537e-05 1.254834939298960e-05 1.223666606495489e-05 1.193078719950152e-05 - 1.163064137727749e-05 1.133615754527981e-05 1.104726530816775e-05 1.076389469662666e-05 1.048597599093073e-05 - 1.021343974753131e-05 9.946217419267380e-06 9.684240838620889e-06 9.427441790773100e-06 9.175752643853506e-06 - 8.929106280098344e-06 8.687435997194528e-06 8.450675338936148e-06 8.218758257424963e-06 7.991619584870982e-06 - 7.769194298227330e-06 7.551417507621627e-06 7.338224987041431e-06 7.129552955942858e-06 6.925337997222138e-06 - 6.725516977155444e-06 6.530027335862672e-06 6.338807194551445e-06 6.151794769434223e-06 5.968928615355085e-06 - 5.790147878391894e-06 5.615392155261267e-06 5.444601365246586e-06 5.277715758699128e-06 5.114676291438329e-06 - 4.955424365336747e-06 4.799901525655197e-06 4.648049820836300e-06 4.499811793985402e-06 4.355130438087899e-06 - 4.213949069835453e-06 4.076211399540344e-06 3.941861865039729e-06 3.810845196499976e-06 3.683106361660463e-06 - 3.558590910585118e-06 3.437244835818923e-06 3.319014541070219e-06 3.203846795533912e-06 3.091688852089737e-06 - 2.982488579295818e-06 2.876194109656037e-06 2.772753925582794e-06 2.672117063800105e-06 2.574233014808049e-06 - 2.479051643033932e-06 2.386523210361943e-06 2.296598552297165e-06 2.209228971591383e-06 2.124366069775506e-06 - 2.041961906232304e-06 1.961969019732135e-06 1.884340423438541e-06 1.809029507182080e-06 1.735990071613592e-06 - 1.665176534356502e-06 1.596543687803830e-06 1.530046658503296e-06 1.465641105678908e-06 1.403283128309336e-06 - 1.342929271825179e-06 1.284536503035511e-06 1.228062233226246e-06 1.173464436795038e-06 1.120701460082181e-06 - 1.069732028902882e-06 1.020515399241352e-06 9.730112822753146e-07 9.271798002921477e-07 8.829815278752155e-07 - 8.403775374680640e-07 7.993293716485992e-07 7.597989809176624e-07 7.217487560416926e-07 6.851415619710593e-07 - 6.499407524191172e-07 6.161100929136179e-07 5.836137918783888e-07 5.524166028233452e-07 5.224836968385216e-07 - 4.937806609639881e-07 4.662735849361845e-07 4.399289991547822e-07 4.147139110260500e-07 3.905957813609555e-07 - 3.675425084859321e-07 3.455225231396512e-07 3.245046871736890e-07 3.044582778536548e-07 2.853530928283095e-07 - 2.671593859185241e-07 2.498478511400059e-07 2.333896726605378e-07 2.177564985206194e-07 2.029204500538344e-07 - 1.888541210793108e-07 1.755305458522738e-07 1.629232393506973e-07 1.510062144201093e-07 1.397539174372155e-07 - 1.291412703741045e-07 1.191437050672961e-07 1.097370923617762e-07 1.008977778162274e-07 9.260259669902208e-08 - 8.482883141984319e-08 7.755426670738778e-08 7.075715683240311e-08 6.441620467100832e-08 5.851063608240125e-08 - 5.302013495440350e-08 4.792483459927075e-08 4.320538955913144e-08 3.884291294265582e-08 3.481898425658018e-08 - 3.111569527451850e-08 2.771559342817648e-08 2.460171067137196e-08 2.175758348333717e-08 1.916719757773861e-08 - 1.681503457183268e-08 1.468607978947252e-08 1.276576812429566e-08 1.104003874048358e-08 9.495328649625366e-09 - 8.118528715645258e-09 6.897042498203040e-09 5.818760232281117e-09 4.872032311209139e-09 4.045732447740840e-09 - 3.329210679517489e-09 2.712284881132093e-09 2.185301687016959e-09 1.739076161987666e-09 1.364901589086205e-09 - 1.054599065845252e-09 8.004535320102697e-10 5.952414597054672e-10 4.322622496028902e-10 3.052766304104823e-10 - 2.085502003918036e-10 1.368642901349301e-10 8.546164059834664e-11 5.010215808832263e-11 2.705311520847365e-11 - 1.304599438344934e-11 5.339090781311160e-12 1.692041320615927e-12 3.321208355096226e-13 6.781366937015517e-15 From f409f4ff53750383cc36c6e0db1a51a380465c2d Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 13 Feb 2018 13:06:16 -0700 Subject: [PATCH 074/675] Commit JT 021318 --- doc/src/compute_spin.txt | 15 +- doc/src/fix_force_spin.txt | 2 +- doc/src/pair_spin.txt | 90 ------- doc/src/pair_spin_exchange.txt | 8 +- doc/src/pair_spin_soc_dmi.txt | 5 +- doc/src/tutorial_spin.txt | 255 ------------------ doc/utils/txt2html/README.html | 237 ---------------- examples/SPIN/bfo/in.spin.bfo | 14 +- examples/SPIN/cobalt/in.spin.cobalt | 8 +- .../SPIN/curie_temperature/in.spin.cobalt | 8 +- examples/SPIN/in.spin.bfo | 94 ------- examples/SPIN/in.spin.cobalt | 125 --------- examples/SPIN/in.spin.kagome | 126 --------- examples/SPIN/in.spin.read_data | 88 ------ examples/SPIN/in.spin.restart | 109 -------- examples/SPIN/iron/in.spin.iron | 8 +- examples/SPIN/nickel/in.spin.nickel | 8 +- examples/SPIN/prepare_vmd.sh | 91 ------- .../Norm_randXY_8x8x32.data | 0 examples/SPIN/read_restart/in.spin.read_data | 8 +- examples/SPIN/skyrmion/in.spin.skyrmion | 8 +- examples/SPIN/vmd_nano.vmd | 79 ------ src/SPIN/compute_spin.cpp | 17 +- 23 files changed, 56 insertions(+), 1347 deletions(-) delete mode 100644 doc/src/pair_spin.txt delete mode 100644 doc/src/tutorial_spin.txt delete mode 100644 doc/utils/txt2html/README.html delete mode 100644 examples/SPIN/in.spin.bfo delete mode 100644 examples/SPIN/in.spin.cobalt delete mode 100644 examples/SPIN/in.spin.kagome delete mode 100644 examples/SPIN/in.spin.read_data delete mode 100644 examples/SPIN/in.spin.restart delete mode 100755 examples/SPIN/prepare_vmd.sh rename examples/SPIN/{ => read_restart}/Norm_randXY_8x8x32.data (100%) delete mode 100644 examples/SPIN/vmd_nano.vmd diff --git a/doc/src/compute_spin.txt b/doc/src/compute_spin.txt index 9067a9859f..df75480430 100644 --- a/doc/src/compute_spin.txt +++ b/doc/src/compute_spin.txt @@ -10,14 +10,14 @@ compute spin command :h3 [Syntax:] -compute ID group-ID spin :pre +compute ID group-ID compute/spin :pre ID, group-ID are documented in "compute"_compute.html command -spin = style name of this compute command +compute/spin = style name of this compute command :ul [Examples:] -compute out_mag all spin +compute out_mag all compute/spin :pre [Description:] @@ -37,14 +37,13 @@ The sixth quantity is the magnetic energy. The simplest way to output the results of the compute spin calculation is to define some of the quantities as variables, and to use the thermo and -thermo_style commands, for example -for example: +thermo_style commands, for example: compute out_mag all compute/spin :pre -variable mag_z equal c_out_mag\[4\] -variable mag_norm equal c_out_mag\[5\] -variable temp_mag equal c_out_mag\[7\] :pre +variable mag_z equal c_out_mag\[3\] +variable mag_norm equal c_out_mag\[4\] +variable temp_mag equal c_out_mag\[6\] :pre thermo 10 thermo_style custom step v_mag_z v_mag_norm v_temp_mag :pre diff --git a/doc/src/fix_force_spin.txt b/doc/src/fix_force_spin.txt index 5e7cff571d..6ab207fda3 100644 --- a/doc/src/fix_force_spin.txt +++ b/doc/src/fix_force_spin.txt @@ -39,7 +39,7 @@ magnetic field: :c,image(Eqs/force_spin_zeeman.jpg) with mu0 the vacuum permeability, muB the Bohr magneton (muB = 5.788 eV/T -in metal units), +in metal units). Style {aniso} is used to simulate an easy axis or an easy plane for the magnetic spins in the defined group: diff --git a/doc/src/pair_spin.txt b/doc/src/pair_spin.txt deleted file mode 100644 index 602eec8ec3..0000000000 --- a/doc/src/pair_spin.txt +++ /dev/null @@ -1,90 +0,0 @@ - - - - -"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -pair_style pair/spin/exchange command :h3 -pair_style pair/spin/dmi command :h3 -pair_style pair/spin/me command :h3 -pair_style pair/spin/soc command :h3 - - -[Syntax:] - -pair_style pair/spin/exchange cutoff -pair_style pair/spin/dmi cutoff -pair_style pair/spin/me cutoff -pair_style pair/spin/soc/neel cutoff :pre - -cutoff = global cutoff pair (distance units) :ulb,l - -:ule - -[Examples:] - -pair_style pair/spin/exchange 4.0 -pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 -pair_coeff 1 2 exchange 4.0 0.0446928 0.003496 1.4885 :pre - -pair_style pair/spin/dmi 4.0 -pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 :pre - -pair_style pair/spin/soc/neel 4.0 -pair_coeff * * neel 4.0 -0.003330282 0.864159 2.13731 :pre - - -[Description:] - -Style {pair/spin} computes interactions between pairs of particles -that each have a spin. - - -The {pair/spin} style compute the short-range spin-spin interactions. - - -\begin\{equation\} -J_{i=0} = \sum_i \alpha -\end\{equation\} -$$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$ - - -:c,image(Eqs/pair_lj.jpg) - -The {lj/cut} and {lj/cut/coul/long} pair styles support the use of the -{inner}, {middle}, and {outer} keywords of the "run_style -respa"_run_style.html command, meaning the pairwise forces can be - -:line - -[Restrictions:] - -All the {pair/spin} styles are part of the SPIN package. -These styles are only enabled if LAMMPS was built with this package. -See the "Making LAMMPS"_Section_start.html#start_3 section for more info. - -[Related commands:] - -"eam" - -"pair_coeff"_pair_coeff.html - -[Default:] none - -:line - -:link(Beaujouan1) -[(Beaujouan)] Beaujouan, Thibaudeau, and Barreteau, Phys Rev B, 86(17), 174409 (2012) - -:link(Perera2) -[(Perera)] Perera, Eisenbach, Nicholson, Stocks, and Landau, Phys Rev B, 93(6), 060402 (2016) diff --git a/doc/src/pair_spin_exchange.txt b/doc/src/pair_spin_exchange.txt index 95a9c98258..01bd2edc31 100644 --- a/doc/src/pair_spin_exchange.txt +++ b/doc/src/pair_spin_exchange.txt @@ -41,14 +41,16 @@ This function is defined as: where a, b and d are the three constant coefficients defined in the associated "pair_coeff" command. -The coefficients a, b, and c need to be fitted so that the function above matches with +The coefficients a, b, and d need to be fitted so that the function above matches with the value of the exchange interaction for the N neighbor shells taken into account. Examples and more explanations about this function and its parametrization are reported in "(Tranchida)"_#Tranchida1. -From this exchange interaction, each spin i will be submitted to a magnetic torque -omega and its associated atom to a force F, such as: +From this exchange interaction, each spin i will be submitted +to a magnetic torque omega, and its associated atom can be submitted to a +force F for spin-lattice calculations (see +"fix_integration_spin"_fix_integration_spin.html), such as: :c,image(Eqs/pair_spin_exchange_forces.jpg) diff --git a/doc/src/pair_spin_soc_dmi.txt b/doc/src/pair_spin_soc_dmi.txt index 010b645501..e669b7ccfd 100644 --- a/doc/src/pair_spin_soc_dmi.txt +++ b/doc/src/pair_spin_soc_dmi.txt @@ -24,6 +24,9 @@ pair_coeff 1 2 dmi 4.0 0.00109 0.0 0.0 1.0 :pre [Description:] +Styles {pair/spin/soc} compute pair interactions arising from the spin-orbit +coupling (soc). + Style {pair/spin/soc/dmi} computes the Dzyaloshinskii-Moriya (DM) interaction between pairs of magnetic spins: @@ -41,7 +44,7 @@ This function is defined as: where a, b and d are the three constant coefficients defined in the associated "pair_coeff" command. -The coefficients a, b, and c need to be fitted so that the function above matches with +The coefficients a, b, and d need to be fitted so that the function above matches with the value of the DM interaction for the N neighbor shells taken into account. diff --git a/doc/src/tutorial_spin.txt b/doc/src/tutorial_spin.txt deleted file mode 100644 index d81e82d448..0000000000 --- a/doc/src/tutorial_spin.txt +++ /dev/null @@ -1,255 +0,0 @@ - - - -"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c - -:link(lws,http://lammps.sandia.gov) -:link(ld,Manual.html) -:link(lc,Section_commands.html#comm) - -:line - -Tutorial for the SPIN package in LAMMPS :h3 - -This tutorial explains how to use the spin dynamics in LAMMPS, -and to perform spin and spin--lattice simulations using the -SPIN package. As an illustration, input files are documented. -First of all, LAMMPS has to be compiled with the SPIN package -activated. Then, the data file and input scripts have to be -modified to include the magnetic spins and to handle them. - -:line - -[Overview of the spin and spin--lattice dynamics] - -At the atomic scale, magnetic materials can be seen as ensemble of -atoms, each one of them carying a magnetic moment, refered to as its -atomic spin. In ref "Antropov"_#Antropov, a formalism allowing to -simulate approximate classical spins, and to couple them to lattice -vibrations was introduced. Each of these spins is simulated via a -classical vector, associated to each magnetic atom, and whose -trajectory is defined by an equation of motion. -Lattice vibrations are simulated by the usual equations of MD. -A mechanical potential (EAM, Finnis-Siclair, or Dudarev-Derlet) ensure -the cohesion of the particles. The coupling between the magnetic and -lattice degrees of freedom is performed via the inter-atomic dependence -of the magnetic interactions. -:ole - - -:line - -[Preparation of the data file] - -For the mechanical potentials, the data file is similar to a standard LAMMPS -data file for {atom_style full}. The DPs and the {harmonic bonds} connecting -them to their DC should appear in the data file as normal atoms and bonds. - -For the magnetic interactions, no data file is necessary, every interaction -input will be define in the input file. :pre - - -:line - -[Basic input file] - -Up to know, spin simulations only accept the metal units. - -The atom style should be set to {spin}, so that you -can define atomic spin vectors. - - -The set group command defines the Lande factor (the norm) of -the magnetic vectors in a given group, and their initial -oriantation. The command is: - -set group A B C D E F :pre - -with A, B, C, D, E, and F the following input parameters: -A is set to all, or to the number of a specific and pre-defined -group of atoms, -B is set to {spin} or {spin/random}, depending on if the spins of -the group have to be initialized in a particulat direction, or randomly. - -If B is defined as {spin}, the C is the Lande factor for the spins of -the group, and [D,E,F] is the vector giving the direction for the -initialization. - -If B is defined as {spin/random}, C is a number giving the seed for the random -difinition of the directions, and D is the Lande factor of the spins -in this group. E and F are not defined. - -Examples: -set group all spin 1.72 1.0 0.0 0.0 -set group all spin/random 11 1.72 - -setting the initial direction of all spins, with a Lande factor of 1.72, -and either in the x direction, or randomly. :l - - -The pair style has to be set to {pair/spin}. The command is - -pair_style pair/spin A - -with A a global radius cutoff. - -The different pair interactions and their associated coefficients can then be -defined via the pair coeff command. - -pair_coeff A B C D E F G H - -where A and B are setting the pair concerned by this pair coeff command. -For example, A=1 and B=2 to set the pair coefficients between spins of -type 1 and spins of type 2. Use {*} for setting a pair coeffcient between -all pairs of spins. - -C defines the type of the interaction. It can be set to {exchange} for an -exchange interaction, {dmi} for a Dzyaloshinskii-Moriya (DM) interaction, or to -{me} for a magneto-electric (ME) interaction. - -If C is set to {exchange}, D is the radius cutoff (in Angtrom) associated -to the exchange interaction, and E, F and G are the three parameters of the -Bethe--Slater function (E in eV, F without dimension, and G in Angtrom). -H is not defined. - -If C is set to {dmi}, D is the radius cutoff (in Angtrom) associated to the DM -interaction, E is the intensity of the interaction in eV (which is also the -norm of the DM vector), and [F, G, H] are giving the direction of the DM -vector. - -If C is set to {me}, D is the radius cutoff (in Angtrom) associated to the ME -interaction, E is the intensity of the interaction in eV (which corresponds to -the intensity of the electric polarization), and [F, G, H] are giving the -direction of the polarization vector. - -Examples: -pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 -pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 - -are setting an exchange interaction between every type of spins, with a radius -cutoff of 4.0 Angtrom, and E=0.0446928 eV, F=0.003496, and G=1.4885 Angtrom as -coefficient for the associated Bethe--Slater function, and a DM interaction -with a radius cutoff of 2.6 Angtrom, an intensity of 0.001 eV and a DM vector -in the direction [0.0 0.0 1.0]. :l - - -A fix has to be set to {force/spin} to define local magnetic forces, like the Zeeman -interaction or an anisotropic interaction. The command is: - -fix A B C D E F G H - -with A the label of the associated fix, B defining to which group of spins the -force is applied to, C defined as {force/spin} for magnetic local fixes, and -D defining the type of this fix. D can be equal to {zeeman} for a Zeeman interaction, -or to {anisotropy} for an anisotropic interaction. - -If D is set to {zeeman}, then E gives the intensity of the applied magnetic field (in -Tesla), and [F, G, H] the direction of this field. - -If is set to {anisotropy}, hen E gives the intensity of the anisotropic field (in eV), -and [F, G, H] the direction of this anisotropy. - -Examples: -fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 -fix 2 all force/spin anisotropy 0.001 0.0 1.0 0.0 - -are setting two fixes, the first one, labelled 1, is applied to all spins and defines -a Zeeman interaction corresponding to a field of 1 Tesla in the z direction, whereas -the second fix, labelled 2, is also applied to all spins, and defines a uniaxial -anisotropy of intensity 0.001 eV, in the direction y. :l - - -To simulate the temperature effects, a fix has to be set to {langevin/spin}. The command -is - -fix A B C D E F G - -where A is the label of the associated fix, B defines to which spins the fix is applied, -and C is set equal to {langevin/spin}. Then, D defines the temperature of the random bath -(in K), E is the transverse magnetic damping (no dimension), F is a longitudinal magnetic -damping, and G the seed for the random variables. - -Note: the transverse damping is not implemented into LAMMPS yet. It is necessary for -micromagnetic simulations only. - -Examples: -fix 2 all langevin/spin 300.0 0.01 0.0 21 - -is setting a fix labelled as 2, which is connecting all spins to a random bath. The temperature -of this bath is set to 300 K, and the value of the transverse Gilbert damping is set to 0.01. -The seed is set to 21. - - -For LAMMPS to understand that the motion of spins has to be taken into account, one has to set -a fix to {nve/spin}. The command is: - -fix A B C D - -with A the label of this fix, B defining to which group of atoms this fix is applied to, C has -to be set to {nve/spin}, and D can be set to {serial} for a serial calculation, with one -processor only, or to {mpi} for a parallel calculation, with N processors. - -Example: -fix 3 all nve/spin mpi - -is setting a fix labelled 3, and applies it to all the particles. The calculation is running in -parallel as the option {mpi} is defined. - - -Two main outputs of the computed magnetic quntities can be performed. - -The first one is via a compute and a fix options. The compute command is defined as: - -compute A B C - -with A the label of this compute, B to which group of particles it is applied to, and finally, -the option {compute/spin} has to be set. -This compute is associated to a fix to define the output frequency and format. A typical command is: - -fix A B C D E F G H - -where A is the label of the fix, B the group of particles it is applied to, C defines the type of the -output fix, for example we chose to use {ave/time}, which can output every N timesteps, and perform -a time average over those steps. D, E, and F are the usual command of {ave/time}. G stands for the -magnetic quantities that are computed by {compute/spin}. Those quantities are: - -c_mag[1] Physical time (in ps) -c_mag[2] Magnetization along x (adim) -c_mag[3] Magnetization along y (adim) -c_mag[4] Magnetization along z (adim) -c_mag[5] Magnetization Norm (adim) -c_mag[6] Magnetic energy (in eV) -c_mag[7] Spin temperature (in K) - -And H stands for the output format, and is defined as in other . - -Example: -compute 1 all compute/spin -fix 3 all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] -file mag_output.dat format %20.16g - -is defining a compute of the magnetic quantities applied to all spins. The fix then outputs -every magnetic quantities every 10 time steps without performing any time average. These -quantities are stored in a file called mag_output.dat, with a special format (defined by %20.16g) - - -It is also possible to output the evolution of the spin configuration. This can be done with -the dump command. The only difference with a regular dump command is that the velocities -vi are replaced by the spin components spi. - -Example: -dump 1 all custom 100 dump_spin.lammpstrj type x y z spx spy spz - -is dumping every 100 timesteps the spin configuration in a file called dump_spin.lammpstrj. - - -:line - -:link(Antropov) -[(Antropov)] Antropov, Katsnelson, Harmon, Van Schilfgaarde, and Kusnezov, Phys Rev B, 54(2), 1019 (1996) - - diff --git a/doc/utils/txt2html/README.html b/doc/utils/txt2html/README.html deleted file mode 100644 index b92214425e..0000000000 --- a/doc/utils/txt2html/README.html +++ /dev/null @@ -1,237 +0,0 @@ - -

txt2html - a text to HTML conversion tool -

-

txt2html is a simple tool for converting text files into HTML files. -Text files can contain simple formatting and mark-up commands that -txt2html converts into HTML. -

-
-

See the example.txt and example.html -files in the txt2html directory for examples of what all the -formatting commands and mark-up syntax end up looking like in HTML. -

- - - - - - -
- -

Syntax: -

-
txt2html file -
read from text file, write HTML to standard output -
txt2html file1 file2 file3 ... -
read each argument as text file, write one HTML file per argument -
-

Input files are first opened with the specified name. If that fails, -a ".txt" suffix is added. Output files are created with an ".html" -suffix, which is either added or replaces the ".txt" suffix. -

-
- -

Compiling: -

-

The source for txt2html is a single C++ file. Compile it by typing: -

-
g++ -o txt2html txt2html.cpp 
-
-
- -

How the tool works: -

-

txt2html reads a text file, one paragraph at a time. A paragraph -ends with: -

-
  • a blank line -
  • a line whose final word starts with ":" (a format string) -
  • the end of the file -
-

Any line in the paragraph which ends with "\" is concatenated to the -following line by removing the "\" character and following newline. -This can be useful for some of the formatting commands described below -that operate on individual lines in the paragraph. -

-

If a paragraph starts with a "<" character and ends with a ">" -character, it is treated as raw HTML and is written directly into the -output file. -

-

If a paragraph does not end with a format string, then it is -surrounded with HTML paragraph markers (<P> and </P>), -mark-up is performed, and the paragraph is written to the -output file. -

-

If the paragraph ends with a format string, then formatting -is performed, mark-up is performed, and the paragraph is -written to the output file. -

-
- -Formatting: - -

A format string is the last word of a paragraph if it starts with a -":" character. A format string contains one or more comma-separated -commands, like ":ulb,l" or ":c,h3". Note that a format string cannot -contain spaces, else it would not be the last word. An individual -command can have 0 or more arguments: -

-
  • b or line() = 0 arguments -
  • image(file) = 1 argument -
  • link(alias,value) = 2 or more comma-separated arguments -
-

Format commands add HTML markers at the beginning or end of the -paragraph and individual lines. Commands are processed in the order -they appear in the format string. Thus if two commands add HTML -markers to the beginning of the paragraph, the 2nd command's marker -will appear 2nd. The reverse is true at the end of the paragraph; the -2nd command's marker will appear 1st. Some comands, like line or -image make most sense if used as stand-alone commands without an -accompanying paragraph. -

-

Commands that format the entire paragraph: -

-
  • p --> surround the paragraph with <P> </P> -
  • b --> put <BR> at the end of the paragraph -
  • pre --> surround the paragraph with <PRE> </PRE> -
  • c --> surround the paragraph with <CENTER> </CENTER> -
  • h1,h2,h3,h4,h5,h6 --> surround the paragraph with <H1> </H1>, etc -
-

Commands that format the lines of the paragraph as a list: -

-
  • ul --> surround the paragraph with <UL> </UL>, put <LI> at start of every line -
  • ol --> surround the paragraph with <OL> </OL>, put <LI> at start of every line -
  • dl --> surround the paragraph with <DL> </DL>, alternate <DT> and <DD> at start of every line -
-

Commands that treat the paragraph as one entry in a list: -

-
  • l --> put <LI> at the beginning of the paragraph -
  • dt --> put <DT> at the beginning of the paragraph -
  • dd --> put <DD> at the beginning of the paragraph -
  • ulb --> put <UL> at the beginning of the paragraph -
  • ule --> put </UL> at the end of the paragraph -
  • olb --> put <OL> at the beginning of the paragraph -
  • ole --> put </OL> at the end of the paragraph -
  • dlb --> put <DL> at the beginning of the paragraph -
  • dle --> put </DL> at the end of the paragraph -
-

Commands applied to each line of the paragraph: -

-
  • all(p) --> surround each line with <P> </P> -
  • all(c) --> surround each line with <CENTER> </CENTER> -
  • all(b) --> append a <BR> to each line -
  • all(l) --> prepend a <LI> to each line -
-

Special commands (all HTML is inserted at beginning of paragraph): -

-
  • line --> insert a horizontal line = <HR> -
  • image(file) --> insert an image = <IMG SRC = "file"> -
  • image(file,link) --> insert an image that when clicked on goes to link -
  • link(name) --> insert a named link that can be referred to elsewhere (see mark-up) = <A NAME = "name"></A> -
  • link(alias,value) --> define a link alias that can be used elsewhere in this file (see mark-up) -
-

Table command: -

-
  • tb(c=3,b=5,w=100%,a=c) --> format the paragraph as a table -
-

Arguments within tb() can appear in any order and are all optional, -since they each have default values. -

-
  • c=N --> Make an N-column table. Treat the paragraph as one - long list of entries (separated by the separator character) and put - them into N columns one after the other. If N = 0, treat each line - of the paragraph as one row of the table with as many columns as - there are maximum entries in any line. Default is c=0. - -
  • s=: --> Use the character string following the equal sign as - the separator between entries. Default separator is a comma "," which - you cannot specify directly since the comma delimits the tb() arguments - -
  • b=N --> Create a border N pixels wide. If N is 0, there is no - border between or outside the cells. If N is 1, there is a minimal - border between and outside all cells. For N > 1, the border between - cells does not change but the outside border gets wider. Default is - b=1. - -
  • w=N or w=N% --> The first form makes each cell of the table at - least N pixels wide. The second form makes the entire table take up - N% of the width of the browser window. Default is w=0 which means - each cell will be just as wide as the text it contains. - -
  • a=X --> Align the entire table at the left, center, or right of the - browser window, for X = "l", "c", or "r". Default is a=c. - -
  • ea=X --> Align the text in each entry at the left, center, or - right of its cell, for X = "l", "c", or "r". Default is browser's - default (typically left). - -
  • eva=X --> Vertically align the text in each entry at the - top, middle, baseline, or bottom of its cell, for X = "t", "m", "ba", - or "bo". Default is browser's default (typically middle). - -
  • cwM=N or cwM=N% --> The first form makes column M be at least - N pixels wide. The second form makes column M take up N% of the - width of the browser window. This setting overrides the "w" - argument for column M. Only one column per table can be tweaked - with this argument. Default is no settings for any column. - -
  • caM=X --> Align the text in each entry of column M at the left, - center, or right of its cell, for X = "l", "c", or "r". This - setting overrides the "ea" argument for column M. Only one column - per table can be tweaked with this argument. Default is no settings - for any column. - -
  • cvaM=X --> Vertically align the text in each entry of column m - at the top, middle, baseline, or bottom of its cell, for X = "t", - "m", "ba", or "bo". This setting overrides the "eva" argument for - column M. Only one column per table can be tweaked with this - argument. Default is no settings for any column. -
-
- -Mark-up: - -

The text of the paragraph is scanned for special mark-up characters -which are converted into HTML. -

-

Bold and italic characters: -

-
  • "[" (left brace) --> turn-on bold by inserting a <B> -
  • "]" (right brace) --> turn-off bold by inserting a </B> -
  • "{" (left bracket) --> turn-on italics by inserting a <I> -
  • "}" (right bracket) --> turn-off italics by - inserting a </I>
- -

If a backspace '\' precedes any of the bold/italic mark-up characters, -then mark-up is not performed; the mark-up character is simply left in -the text. -

-

Links are inserted by enclosing a section of text in double quotes, -and appending an underscore to the ending quote, followed by the link. -The link ends when whitespace is found, except that trailing -punctuation characters (comma, period, semi-colon, colon, question -mark, exclamation point, parenthesis) are not considered part of the -link. -

-

A link of the form "text"_link becomes <A HREF = -"link">text</A> in the HTML output. The only exception is if -"link" is defined elsewhere in the file as an alias (see the link -command above). In that case, the value is used instead of the alias -name.

- -

With these rules, links can take several forms. -

-
  • "This links"_#abc to another part of this file which is -labeled with a :link(abc) command.
    -
  • "This links"_other.html to another file named other.html.
    -
  • "This links"_other.html#abc to another file which has an "abc" -location defined internally.
    -
  • "This links"_http://www.google.com to a WWW site.
    -
  • "This"_M12 could be used in place of any of the above forms. It -requires an alias like :link(M12,http://www.google.com) to be defined -elsewhere in the file.
- - diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index 91dd8aac8c..fcee62dd7c 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -35,15 +35,15 @@ fix 3 all integration/spin lattice no timestep 0.0002 -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke compute out_temp all temp -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] variable mag_force equal f_1 thermo_style custom step time v_magnorm v_emag temp etotal diff --git a/examples/SPIN/cobalt/in.spin.cobalt b/examples/SPIN/cobalt/in.spin.cobalt index 8d1ac3c557..2e9b27ea0d 100644 --- a/examples/SPIN/cobalt/in.spin.cobalt +++ b/examples/SPIN/cobalt/in.spin.cobalt @@ -44,10 +44,10 @@ compute out_pe all pe compute out_ke all ke compute out_temp all temp -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] variable mag_force equal f_1 thermo_style custom step time v_magnorm v_emag temp etotal diff --git a/examples/SPIN/curie_temperature/in.spin.cobalt b/examples/SPIN/curie_temperature/in.spin.cobalt index 09ac4abb0b..682baf9418 100644 --- a/examples/SPIN/curie_temperature/in.spin.cobalt +++ b/examples/SPIN/curie_temperature/in.spin.cobalt @@ -44,10 +44,10 @@ compute out_pe all pe compute out_ke all ke compute out_temp all temp -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] variable mag_force equal f_1 thermo_style custom step time v_magnorm v_emag temp etotal diff --git a/examples/SPIN/in.spin.bfo b/examples/SPIN/in.spin.bfo deleted file mode 100644 index bf42a31c67..0000000000 --- a/examples/SPIN/in.spin.bfo +++ /dev/null @@ -1,94 +0,0 @@ -################### -#######Init######## -################### - -clear -units metal -dimension 3 -boundary p p p - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -#why? -atom_modify map array - - -########################### -#######Create atoms######## -########################### - -#Lattice constant of sc Iron atoms of BFO -lattice sc 3.96 -region box block 0.0 34.0 0.0 34.0 0.0 5.0 -create_box 1 box -create_atoms 1 box - -####################### -#######Settings######## -####################### - -#Setting one or more properties of one or more atoms. -mass 1 1.0 - -#Setting spins orientation and moment -set group all spin/random 11 2.50 -#set group all spin 2.50 1.0 0.0 0.0 - -#Magnetic interactions for BFO -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -pair_style hybrid/overlay pair/spin/exchange 6.0 pair/spin/me 4.5 -pair_coeff * * pair/spin/exchange exchange 6.0 -0.01575 0.0 1.965 -pair_coeff * * pair/spin/me me 4.5 0.00109 1.0 1.0 1.0 -#pair_coeff * * pair/spin/soc/dmi dmi 4.5 0.001 1.0 1.0 1.0 - -#Define a skin distance, update neigh list every -neighbor 0.0 bin -neigh_modify every 10 check yes delay 20 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -#fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 -fix 1 all force/spin anisotropy 0.0000035 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.0 0.0 0.0 1.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all integration/spin serial lattice no - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] -variable mag_force equal f_1 - -thermo 10 -thermo_style custom step time v_magnorm v_emag temp etotal -thermo_modify format float %20.15g - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 100 dump_spin_BFO.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -run 50000 - diff --git a/examples/SPIN/in.spin.cobalt b/examples/SPIN/in.spin.cobalt deleted file mode 100644 index 4b0d7c3e64..0000000000 --- a/examples/SPIN/in.spin.cobalt +++ /dev/null @@ -1,125 +0,0 @@ -################### -#######Init######## -################### - -clear -units metal -dimension 3 -#boundary p p p -boundary p p p - -#newton off - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -atom_modify map array - -########################### -#######Create atoms######## -########################### - -lattice fcc 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -create_atoms 1 box - -####################### -#######Settings######## -####################### - -#isolating 1 atom into a group -group single_spin id 10 - -#Setting one or more properties of one or more atoms. -mass 1 58.93 - -#Setting spins orientation and moment -set group all spin/random 31 1.72 -#set group all spin 1.72 0.0 0.0 1.0 -#set group single_spin spin/random 11 1.72 - -#velocity all create 200 4928459 rot yes dist gaussian -velocity all create 200 4928459 rot yes dist gaussian - -#Magneto-mechanic interactions for bulk fcc Cobalt -#pair_style pair/spin/exchange 4.0 -#pair_style eam/alloy -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 - -pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co -#pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co - -#pair_style pair/spin/exchange 4.0 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -#pair_coeff * * exchange 4.0 -0.0446928 0.003496 1.4885 -#pair_coeff * * exchange 4.0 0.0 0.003496 1.4885 -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -#pair_coeff * * pair/spin/exchange exchange 2.5 0.0446928 0.003496 1.4885 -#pair_coeff * * pair/spin/exchange exchange 4.0 0.0 0.003496 1.4885 - -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 - -#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.0 0.864159 2.13731 - -#Define a skin distance, update neigh list every -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 -#neighbor 1.0 bin -#neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -#fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all integration/spin lattice yes -#fix 3 all integration/spin lattice no - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] -variable mag_force equal f_1 -#variable test equal etotal-0.5*c_out_mag[6] - -thermo 10 -thermo_style custom step time v_magnorm v_emag temp etotal -thermo_modify format float %20.15g - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -run 10 -#run 1000 - diff --git a/examples/SPIN/in.spin.kagome b/examples/SPIN/in.spin.kagome deleted file mode 100644 index c51c35ff73..0000000000 --- a/examples/SPIN/in.spin.kagome +++ /dev/null @@ -1,126 +0,0 @@ -################### -#######Init######## -################### - -clear -#setting units to metal (Ang, picosecs, eV, ...): -units metal - -#setting dimension of the system (N=2 or 3): -dimension 3 - -#setting boundary conditions. (p for periodic, f for fixed, ...) -boundary p p p -#boundary f f f - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -#why? -atom_modify map array - -#newton off for pair spin in SEQNEI -#newton off off - -########################### -#######Create atoms######## -########################### - -#Lattice constant of fcc Cobalt -lattice fcc 3.54 -#lattice sc 2.50 - -#Test Kagome -#variable a equal sqrt(3.0)/8.0 -#variable b equal 3.0*sqrt(3.0)/8.0 -#variable c equal sqrt(3.0)/4.0 - -#lattice custom 2.5 a1 1.0 0.0 0.0 & -# a2 0.0 1.0 0.0 & -# a3 0.0 0.0 1.0 & -# basis 0.0 $a 0.0 & -# basis 0.25 $a 0.0 & -# basis 0.375 0.0 0.0 & -# basis 0.25 $b 0.0 & -# basis 0.5 $b 0.0 & -# basis 0.625 $c 0.0 - -#Defining a geometric region of space. Sets ID(user's choice), style(block, sphere, ...), then, args depends on the style chosen -#(for block, one has x0, xf, y0, yf, z0, zf, in distance units) -region box block 0.0 5.0 0.0 5.0 0.0 5.0 - -#Creating a simulation box based on the specified region. Entries: number of atom types and box ref. -create_box 1 box - -#Creating atoms (or molecules) on a lattice, or a single atom (or molecule), ... -#Entries: atom type, -create_atoms 1 box - -#Replicating NxNxN the entire set of atoms -#replicate 1 1 1 - - -####################### -#######Settings######## -####################### - -#Setting one or more properties of one or more atoms. -#Setting mass -mass 1 1.0 -#set group all mass 1.0 -#Setting spins orientation and moment -#set group all spin/random 11 1.72 -set group all spin 1.72 1.0 0.0 0.0 - -#Magnetic exchange interaction coefficient for bulk fcc Cobalt -pair_style pair/spin 4.0 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885 -#type i and j | interaction type | cutoff | Int (eV) | [dx,dy,dz] (for DMI and ME) -#pair_coeff * * dmi 2.6 0.001 0.0 0.0 1.0 -#pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 0.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 1.0 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.001 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy -0.1 0.0 0.0 1.0 -#fix 1 all force/spin anisotropy 0.1 0.0 1.0 0.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 1.0 0.1 0.0 21 -#fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all nve/spin mpi - -#compute real time, total magnetization, magnetic energy, and spin temperature -#Iteration | Time | Mx | My | Mz | |M| | Em | Tm -compute mag all compute/spin -fix outmag all ave/time 1 1 10 c_mag[1] c_mag[2] c_mag[3] c_mag[4] c_mag[5] c_mag[6] c_mag[7] file mag_Co_nodamp.dat format %20.16g - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 100 dump_spin_T100.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -run 2000 -#run 1 - diff --git a/examples/SPIN/in.spin.read_data b/examples/SPIN/in.spin.read_data deleted file mode 100644 index 81d654ad5b..0000000000 --- a/examples/SPIN/in.spin.read_data +++ /dev/null @@ -1,88 +0,0 @@ -################### -#######Init######## -################### - -clear -units metal -dimension 3 -boundary p p p -#boundary f f f - -#setting atom_style to spin: -atom_style spin - -atom_modify map array - -########################### -#######Create atoms######## -########################### - -read_data ../examples/SPIN/Norm_randXY_8x8x32_test.data - -####################### -#######Settings######## -####################### - -#Setting one or more properties of one or more atoms. -mass 1 58.93 - -#velocity all create 200 4928459 rot yes dist gaussian - -#Magneto-mechanic interactions for bulk fcc Cobalt -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 - -# cobalt eam potential -pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co - -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 - -#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) -pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 1.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all integration/spin serial - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] -variable mag_force equal f_1 - -thermo 10 -thermo_style custom step time v_magnorm v_emag v_tmag temp etotal -thermo_modify format float %20.15g - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 1 dump.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -run 10 -#run 10000 - diff --git a/examples/SPIN/in.spin.restart b/examples/SPIN/in.spin.restart deleted file mode 100644 index bd9e0716e9..0000000000 --- a/examples/SPIN/in.spin.restart +++ /dev/null @@ -1,109 +0,0 @@ -################### -#######Init######## -################### - -clear -units metal -dimension 3 -boundary p p p -#boundary f f f - -#newton off - -#setting atom_style to spin: -atom_style spin - -#Define sort for paramagnetic simulations (if no pair interaction) -#atom_modify sort 1000 4.0 - -atom_modify map array - -########################### -#######Create atoms######## -########################### - -lattice fcc 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -#create_atoms 1 box - -#read_dump dump_cobalt.lammpstrj 500 x y z vx vy vz box yes -read_dump ../examples/SPIN/Norm_randXY_8x8x32.dump 0 x y z box yes - -create_atoms 1 box - -####################### -#######Settings######## -####################### - -#isolating 1 atom into a group -group single_spin id 10 - -#Setting one or more properties of one or more atoms. -mass 1 58.93 - -#Setting spins orientation and moment -#set group all spin/random 31 1.72 -set group all spin 1.72 0.0 0.0 1.0 -set group single_spin spin/random 11 1.72 - -velocity all create 200 4928459 rot yes dist gaussian - -#Magneto-mechanic interactions for bulk fcc Cobalt -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 - -# cobalt eam potential -pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co - -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 - -#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) -pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 1.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -fix 2 all langevin/spin 0.0 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all integration/spin serial - -#Setting the timestep for the simulation (in ps) -timestep 0.0001 - -################## -#######run######## -################## - -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] -variable mag_force equal f_1 - -thermo 10 -thermo_style custom step time v_magnorm v_emag v_tmag temp etotal -thermo_modify format float %20.15g - -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 20 dump.lammpstrj type x y z spx spy spz - -#Running the simulations for N timesteps -run 100 -#run 10000 - diff --git a/examples/SPIN/iron/in.spin.iron b/examples/SPIN/iron/in.spin.iron index 254c094bd8..84279424f8 100644 --- a/examples/SPIN/iron/in.spin.iron +++ b/examples/SPIN/iron/in.spin.iron @@ -44,10 +44,10 @@ compute out_pe all pe compute out_ke all ke compute out_temp all temp -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] variable mag_force equal f_1 thermo_style custom step time v_magnorm v_emag temp etotal diff --git a/examples/SPIN/nickel/in.spin.nickel b/examples/SPIN/nickel/in.spin.nickel index 09ac4abb0b..682baf9418 100644 --- a/examples/SPIN/nickel/in.spin.nickel +++ b/examples/SPIN/nickel/in.spin.nickel @@ -44,10 +44,10 @@ compute out_pe all pe compute out_ke all ke compute out_temp all temp -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] variable mag_force equal f_1 thermo_style custom step time v_magnorm v_emag temp etotal diff --git a/examples/SPIN/prepare_vmd.sh b/examples/SPIN/prepare_vmd.sh deleted file mode 100755 index fa62c6e109..0000000000 --- a/examples/SPIN/prepare_vmd.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash -# example prepare_vmd.sh /home/jtranch/Documents/lammps/src/dump_VSRSV.lammpstrj -# you will get a return file - -echo "vmd script for file $1 is preparing..." - -timestamp(){ - date +%s -} - -TS=$(timestamp) -FILE=view_${TS}.vmd - -cat >${FILE} <] [resolution ] [radius ] [filled ]"} - # defaults - set scale 2.0 - set res 50 - set radius 0.1 - set filled yes - - if {[llength \$args] < 3} { - error "wrong # args: should be \$usage" - } - set mol [lindex \$args 0] - set center [lindex \$args 1] - set vector [lindex \$args 2] - if {[llength \$center] != 3 || [llength \$vector] != 3} { - error "wrong type of args: should be \$usage" - } - - foreach {flag value} [lrange \$args 3 end] { - switch -glob \$flag { - scale {set scale \$value} - res* {set res \$value} - rad* {set radius \$value} - fill* {set filled \$value} - default {error "unknown option '\$flag': should be \$usage" } - } - } - - set vechalf [vecscale [expr \$scale * 0.5] \$vector] - return [list \\ - [graphics \$mol color yellow]\\ - [graphics \$mol cylinder [vecsub \$center \$vechalf]\\ - [vecadd \$center [vecscale 0.7 \$vechalf]] \\ - radius \$radius resolution \$res filled \$filled] \\ - [graphics \$mol color orange]\\ - [graphics \$mol cone [vecadd \$center [vecscale 0.6 \$vechalf]] \\ - [vecadd \$center \$vechalf] radius [expr \$radius * 2.5] \\ - resolution \$res]] -} - -proc vmd_draw_spin {args} { - global molid - graphics \$molid delete all - set frame [molinfo \$molid get frame] - set natoms [molinfo \$molid get numatoms] - for {set i 0} {\$i < \$natoms} {incr i} { - set sel [atomselect top "index \$i"] - set coords [lindex [\$sel get {x y z}] \$molid] - set velocities [lindex [\$sel get {vx vy vz}] \$molid] - draw vector \$coords \$velocities - set uvx [lindex [\$sel get {vx}] \$molid] - set uvy [lindex [\$sel get {vy}] \$molid] - set uvz [lindex [\$sel get {vz}] \$molid] - \$sel set user [vecadd [vecadd [vecscale \$uvy \$uvy] [vecscale \$uvz \$uvz] ] [vecscale \$uvx \$uvx]] - \$sel set user \$uvy - #draw vector \$coords {0.0 uvy 0.0} - } - #pbc box -color 3 -} - -proc enable_trace {} { - global vmd_frame - trace variable vmd_frame([molinfo top]) w vmd_draw_spin -} - -set molid [mol addfile {$1} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] -scale by 0.5 -animate style Loop -enable_trace -EOF -echo "$FILE is ready..." diff --git a/examples/SPIN/Norm_randXY_8x8x32.data b/examples/SPIN/read_restart/Norm_randXY_8x8x32.data similarity index 100% rename from examples/SPIN/Norm_randXY_8x8x32.data rename to examples/SPIN/read_restart/Norm_randXY_8x8x32.data diff --git a/examples/SPIN/read_restart/in.spin.read_data b/examples/SPIN/read_restart/in.spin.read_data index 7e9519ae3f..853b059d27 100644 --- a/examples/SPIN/read_restart/in.spin.read_data +++ b/examples/SPIN/read_restart/in.spin.read_data @@ -69,10 +69,10 @@ compute out_pe all pe compute out_ke all ke compute out_temp all temp -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] variable mag_force equal f_1 thermo 10 diff --git a/examples/SPIN/skyrmion/in.spin.skyrmion b/examples/SPIN/skyrmion/in.spin.skyrmion index 4897dc48a2..a0d4e8c1d4 100644 --- a/examples/SPIN/skyrmion/in.spin.skyrmion +++ b/examples/SPIN/skyrmion/in.spin.skyrmion @@ -66,10 +66,10 @@ timestep 0.0002 # define output and run compute out_mag all compute/spin -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] variable mag_force equal f_1 thermo_style custom step time v_magnorm v_emag etotal diff --git a/examples/SPIN/vmd_nano.vmd b/examples/SPIN/vmd_nano.vmd deleted file mode 100644 index f9e3454270..0000000000 --- a/examples/SPIN/vmd_nano.vmd +++ /dev/null @@ -1,79 +0,0 @@ -proc vmd_draw_arrow {mol start end} { - set middle [vecadd $start [vecscale 0.9 [vecsub $end $start]]] - graphics $mol cylinder $start $middle radius 0.05 - graphics $mol cone $middle $end radius 0.01 color 3 -} - -proc vmd_draw_vector {args} { - set usage {"draw vector {x1 y1 z1} {x2 y2 z2} [scale ] [resolution ] [radius ] [filled ]"} - # defaults - set scale 2.0 - set res 50 - set radius 0.1 - set filled yes - - if {[llength $args] < 3} { - error "wrong # args: should be $usage" - } - set mol [lindex $args 0] - set center [lindex $args 1] - set vector [lindex $args 2] - if {[llength $center] != 3 || [llength $vector] != 3} { - error "wrong type of args: should be $usage" - } - - foreach {flag value} [lrange $args 3 end] { - switch -glob $flag { - scale {set scale $value} - res* {set res $value} - rad* {set radius $value} - fill* {set filled $value} - default {error "unknown option '$flag': should be $usage" } - } - } - - set vechalf [vecscale [expr $scale * 0.5] $vector] - return [list \ - [graphics $mol color yellow]\ - [graphics $mol cylinder [vecsub $center $vechalf]\ - [vecadd $center [vecscale 0.7 $vechalf]] \ - radius $radius resolution $res filled $filled] \ - [graphics $mol color orange]\ - [graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \ - [vecadd $center $vechalf] radius [expr $radius * 2.5] \ - resolution $res]] -} - -proc vmd_draw_spin {args} { - global molid - graphics $molid delete all - set frame [molinfo $molid get frame] - set natoms [molinfo $molid get numatoms] - for {set i 0} {$i < $natoms} {incr i} { - set sel [atomselect top "index $i"] -# set sel [atomselect top "index 1200"] - set coords [lindex [$sel get {x y z}] $molid] - set velocities [lindex [$sel get {vx vy vz}] $molid] - draw vector $coords $velocities - set uvx [lindex [$sel get {vx}] $molid] - set uvy [lindex [$sel get {vy}] $molid] - set uvz [lindex [$sel get {vz}] $molid] - $sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]] - $sel set user $uvy - #draw vector $coords {0.0 uvy 0.0} - } - #pbc box -color 3 -} - -proc enable_trace {} { - global vmd_frame - trace variable vmd_frame([molinfo top]) w vmd_draw_spin - } - -set molid [mol addfile {/home/jtranch/Documents/lammps/src/dump.lammpstrj} type {lammpstrj} autobonds off first 0 last -1 step 1 waitfor all] -scale by 0.5 -animate style Loop -enable_trace - - - diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index fc308b8124..697035786f 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -41,7 +41,7 @@ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); vector_flag = 1; - size_vector = 7; + size_vector = 6; extvector = 0; init(); @@ -133,13 +133,12 @@ void ComputeSpin::compute_vector() spintemperature = hbar*tempnumtot; spintemperature /= (kb*tempdenomtot); - vector[0] = invoked_vector*update->dt; - vector[1] = magtot[0]; - vector[2] = magtot[1]; - vector[3] = magtot[2]; - vector[4] = magtot[3]; - vector[5] = magenergytot*hbar; - vector[6] = spintemperature; + vector[0] = magtot[0]; + vector[1] = magtot[1]; + vector[2] = magtot[2]; + vector[3] = magtot[3]; + vector[4] = magenergytot*hbar; + vector[5] = spintemperature; } @@ -149,6 +148,6 @@ void ComputeSpin::compute_vector() void ComputeSpin::allocate() { - memory->create(vector,7,"compute/spin:vector"); + memory->create(vector,6,"compute/spin:vector"); } From 86cfbb3010877804f87a220007b44e726b025dee Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 13 Feb 2018 13:06:37 -0700 Subject: [PATCH 075/675] Delete in.spin.read_data --- examples/SPIN/read_restart/in.spin.read_data | 96 ++++++-------------- 1 file changed, 29 insertions(+), 67 deletions(-) diff --git a/examples/SPIN/read_restart/in.spin.read_data b/examples/SPIN/read_restart/in.spin.read_data index 853b059d27..3a49dd4a33 100644 --- a/examples/SPIN/read_restart/in.spin.read_data +++ b/examples/SPIN/read_restart/in.spin.read_data @@ -1,88 +1,50 @@ -################### -#######Init######## -################### - +# start a spin-lattice simulation from a data file clear -units metal -dimension 3 -boundary p p p -#boundary f f f +units metal +dimension 3 +boundary p p p -#setting atom_style to spin: -atom_style spin +atom_style spin -atom_modify map array +# necessary for the serial algorithm (sametag) +atom_modify map array -########################### -#######Create atoms######## -########################### +read_data ../examples/SPIN/read_restart/Norm_randXY_8x8x32.data -read_data ../examples/SPIN/Norm_randXY_8x8x32_test.data - -####################### -#######Settings######## -####################### - -#Setting one or more properties of one or more atoms. mass 1 58.93 -#velocity all create 200 4928459 rot yes dist gaussian +# define magneto-mechanical potentials and forces +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_coeff * * eam/alloy ../examples/SPIN/read_restart/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -#Magneto-mechanic interactions for bulk fcc Cobalt -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +neighbor 1.0 bin +neigh_modify every 1 check no delay 0 -# cobalt eam potential -pair_coeff * * eam/alloy ../examples/SPIN/Co_PurjaPun_2012.eam.alloy Co +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 -#type i and j | interaction type | cutoff | J1 (eV) | J2 (adim) | J3 (Ang) (for Exchange) -pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 - -#type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) -pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 - -#Define a skin distance, update neigh list every -#neighbor 1.0 bin -#neigh_modify every 10 check yes delay 20 -neighbor 1.0 bin -neigh_modify every 1 check no delay 0 - -#Magnetic field fix -#Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 - -#Fix Langevin spins (merging damping and temperature) -#Temp | Alpha_trans | Alpha_long | Seed -fix 2 all langevin/spin 0.0 0.0 21 - -#Magnetic integration fix -fix 3 all integration/spin serial - -#Setting the timestep for the simulation (in ps) +fix 3 all nve/spin lattice yes timestep 0.0001 -################## -#######run######## -################## +# define outputs and computes -compute out_mag all compute/spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] -variable mag_force equal f_1 +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] thermo 10 thermo_style custom step time v_magnorm v_emag v_tmag temp etotal thermo_modify format float %20.15g -#Dump the positions and spin directions of magnetic particles (vmd format) -dump 1 all custom 1 dump.lammpstrj type x y z spx spy spz +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] -#Running the simulations for N timesteps -run 10 -#run 10000 +run 100 From fa499ff95d47734d0793b7e40581435934fa8168 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 13 Feb 2018 13:10:46 -0700 Subject: [PATCH 076/675] Commit JT 021318 --- examples/SPIN/bfo/in.spin.bfo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index fcee62dd7c..4f82a9f160 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -49,7 +49,7 @@ variable mag_force equal f_1 thermo_style custom step time v_magnorm v_emag temp etotal thermo 50 -dump 1 all custom 100 dump_spin_BFO.lammpstrj type x y z spx spy spz +dump 1 all custom 50 dump_spin_BFO.lammpstrj type x y z spx spy spz run 20000 From 7990826ca288030ba2dcaf8aeae24f1397145639 Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 15 Feb 2018 15:29:46 -0700 Subject: [PATCH 077/675] Commit JT 021518 --- doc/src/pair_spin_soc_neel.txt | 85 +++++ examples/SPIN/bfo/in.spin.bfo | 2 +- examples/SPIN/cobalt/in.spin.cobalt | 2 +- examples/SPIN/dev/in.spin.cobalt | 31 +- src/SPIN/compute_spin.cpp | 4 +- src/SPIN/pair_spin_soc_landau.cpp | 483 ---------------------------- src/SPIN/pair_spin_soc_landau.h | 84 ----- src/SPIN/pair_spin_soc_neel.cpp | 268 +++++++++++---- src/SPIN/pair_spin_soc_neel.h | 10 +- 9 files changed, 317 insertions(+), 652 deletions(-) create mode 100644 doc/src/pair_spin_soc_neel.txt delete mode 100755 src/SPIN/pair_spin_soc_landau.cpp delete mode 100755 src/SPIN/pair_spin_soc_landau.h diff --git a/doc/src/pair_spin_soc_neel.txt b/doc/src/pair_spin_soc_neel.txt new file mode 100644 index 0000000000..5f24234d0c --- /dev/null +++ b/doc/src/pair_spin_soc_neel.txt @@ -0,0 +1,85 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +pair_style pair/spin/soc/neel command :h3 + +[Syntax:] + +pair_style pair/spin/soc/neel cutoff :pre + +cutoff = global cutoff pair (distance in metal units) :ulb,l + +:ule + +[Examples:] + +pair_style pair/spin/soc/neel 4.0 +pair_coeff * * neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 +pair_coeff 1 2 neel 4.0 0.0048 0.234 1.168 0.0 0.0 1.0 :pre + +[Description:] + +Styles {pair/spin/soc} compute pair interactions arising from the spin-orbit +coupling (soc). + +Style {pair/spin/soc/neel} computes the Neel pair anisotropy model +between pairs of magnetic spins: + +:c,image(Eqs/pair_spin_soc_dmi_interaction.jpg) + +where si and sj are two neighboring magnetic spins of two particles, +rij = ri - rj is the inter-atomic distance between the two particles, +and D(rij) is the DM vector defining the intensity and the +sign of the exchange interaction. + +This function is defined as: + +:c,image(Eqs/pair_spin_exchange_function.jpg) + +where a, b and d are the three constant coefficients defined in the associated +"pair_coeff" command. + +The coefficients a, b, and d need to be fitted so that the function above matches with +the value of the DM interaction for the N neighbor shells taken +into account. + +Examples and more explanations about this function and its parametrization are reported +in "(Tranchida)"_#Tranchida1. + +From this DM interaction, each spin i will be submitted to a magnetic torque +omega and its associated atom to a force F (for spin-lattice calculations only), +such as: + +:c,image(Eqs/pair_spin_soc_dmi_forces.jpg) + +with h the Planck constant (in metal units). + +More details about the derivation of these torques/forces are reported in +"(Tranchida)"_#Tranchida1. + +:line + +[Restrictions:] + +All the {pair/spin} styles are part of the SPIN package. +These styles are only enabled if LAMMPS was built with this package, and +if the atom_style "spin" was declared. +See the "Making LAMMPS"_Section_start.html#start_3 section for more info. + +[Related commands:] + +"atom_style spin"_atom_style.html, "pair_coeff"_pair_coeff.html, +"pair_eam"_pair_eam.html, + +[Default:] none + +:line + +:link(Tranchida1) +[(Tranchida)]https://arxiv.org/abs/1801.10233 + diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index 4f82a9f160..66e0f3f785 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -51,5 +51,5 @@ thermo 50 dump 1 all custom 50 dump_spin_BFO.lammpstrj type x y z spx spy spz -run 20000 +run 5000 diff --git a/examples/SPIN/cobalt/in.spin.cobalt b/examples/SPIN/cobalt/in.spin.cobalt index 2e9b27ea0d..74523dfb70 100644 --- a/examples/SPIN/cobalt/in.spin.cobalt +++ b/examples/SPIN/cobalt/in.spin.cobalt @@ -55,5 +55,5 @@ thermo 10 #dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz -run 1000 +run 10 diff --git a/examples/SPIN/dev/in.spin.cobalt b/examples/SPIN/dev/in.spin.cobalt index 2ec13f2cef..bdb71523e0 100644 --- a/examples/SPIN/dev/in.spin.cobalt +++ b/examples/SPIN/dev/in.spin.cobalt @@ -48,8 +48,8 @@ velocity all create 200 4928459 rot yes dist gaussian #Magneto-mechanic interactions for bulk fcc Cobalt #pair_style pair/spin/exchange 4.0 #pair_style eam/alloy -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy Co #pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co @@ -67,7 +67,10 @@ pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 #pair_coeff * * me 2.6 0.01 1.0 1.0 1.0 #type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) -pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 +#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 + +#pair_coeff * * pair/spin/soc/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 + #pair_coeff * * pair/spin/soc/neel neel 4.0 0.0 0.864159 2.13731 #Define a skin distance, update neigh list every @@ -78,13 +81,13 @@ neigh_modify every 10 check yes delay 20 #Magnetic field fix #Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 +fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed #fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 0.0 0.0 21 +fix 2 all langevin/spin 0.0 0.1 21 #Magnetic integration fix fix 3 all integration/spin lattice yes @@ -105,16 +108,16 @@ compute out_pe all pe compute out_ke all ke compute out_temp all temp -variable magz equal c_out_mag[4] -variable magnorm equal c_out_mag[5] -variable emag equal c_out_mag[6] -variable tmag equal c_out_mag[7] -variable mag_force equal f_1 -#variable test equal etotal-0.5*c_out_mag[6] +variable magx equal c_out_mag[1] +variable magy equal c_out_mag[2] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] thermo 50 -#thermo_style custom step time v_magnorm v_tmag temp etotal -thermo_style custom step time pe ke v_emag etotal +thermo_style custom step time v_magx v_magy v_magy v_magnorm v_emag v_tmag +#thermo_style custom step time pe ke v_emag thermo_modify format float %20.15g #Dump the positions and spin directions of magnetic particles (vmd format) @@ -122,5 +125,5 @@ thermo_modify format float %20.15g #Running the simulations for N timesteps #run 10 -run 200000 +run 100 diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 697035786f..7dbf7b05ab 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -71,7 +71,7 @@ void ComputeSpin::compute_vector() { int i, index; int countsp, countsptot; - double mag[3], magtot[3]; + double mag[4], magtot[4]; double magenergy, magenergytot; double tempnum, tempnumtot; double tempdenom, tempdenomtot; @@ -128,7 +128,7 @@ void ComputeSpin::compute_vector() double scale = 1.0/countsptot; magtot[0] *= scale; magtot[1] *= scale; - magtot[2] *= scale; + magtot[2] *= scale; magtot[3] = sqrt((magtot[0]*magtot[0])+(magtot[1]*magtot[1])+(magtot[2]*magtot[2])); spintemperature = hbar*tempnumtot; spintemperature /= (kb*tempdenomtot); diff --git a/src/SPIN/pair_spin_soc_landau.cpp b/src/SPIN/pair_spin_soc_landau.cpp deleted file mode 100755 index 2beebb47f5..0000000000 --- a/src/SPIN/pair_spin_soc_landau.cpp +++ /dev/null @@ -1,483 +0,0 @@ -/* ---------------------------------------------------------------------- - 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 authors: Julien Tranchida (SNL) - Aidan Thompson (SNL) -------------------------------------------------------------------------- */ - -#include -#include -#include - -#include "atom.h" -#include "comm.h" -#include "error.h" -#include "force.h" -#include "pair_hybrid.h" -#include "neighbor.h" -#include "neigh_list.h" -#include "neigh_request.h" -#include "math_const.h" -#include "memory.h" -#include "pair_spin_soc_landau.h" -#include "update.h" - -using namespace LAMMPS_NS; -using namespace MathConst; - -/* ---------------------------------------------------------------------- */ - -PairSpinSocLandau::PairSpinSocLandau(LAMMPS *lmp) : Pair(lmp) -{ - hbar = force->hplanck/MY_2PI; - - newton_pair_spin = 0; // no newton pair for now => to be corrected - // newton_pair = 0; - - single_enable = 0; - soc_neel_flag = 0; - - no_virial_fdotr_compute = 1; -} - -/* ---------------------------------------------------------------------- */ - -PairSpinSocLandau::~PairSpinSocLandau() -{ - if (allocated) { - memory->destroy(setflag); - - memory->destroy(cut_soc_landau); - memory->destroy(K1); - memory->destroy(K1_mech); - memory->destroy(K2); - memory->destroy(K3); - - memory->destroy(cutsq); - } -} - -/* ---------------------------------------------------------------------- */ - -void PairSpinSocLandau::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype; - double evdwl, ecoul; - double xi[3], rij[3]; - double spi[3], spj[3]; - double fi[3], fj[3]; - double fmi[3], fmj[3]; - double cut_soc_landau_2, cut_soc_global2; - double rsq, rd, inorm; - int *ilist,*jlist,*numneigh,**firstneigh; - - evdwl = ecoul = 0.0; - if (eflag || vflag) ev_setup(eflag,vflag); - else evflag = vflag_fdotr = 0; - cut_soc_global2 = cut_soc_global*cut_soc_global; - - double **x = atom->x; - double **f = atom->f; - double **fm = atom->fm; - double *mumag = atom->mumag; - double **sp = atom->sp; - int *type = atom->type; - int nlocal = atom->nlocal; - int newton_pair = force->newton_pair; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - - // pair spin computations - // loop over neighbors of my atoms - - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - xi[0] = x[i][0]; - xi[1] = x[i][1]; - xi[2] = x[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; - spi[0] = sp[i][0]; - spi[1] = sp[i][1]; - spi[2] = sp[i][2]; - - // loop on neighbors - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - - spj[0] = sp[j][0]; - spj[1] = sp[j][1]; - spj[2] = sp[j][2]; - - evdwl = 0.0; - - fi[0] = fi[1] = fi[2] = 0.0; - fj[0] = fj[1] = fj[2] = 0.0; - fmi[0] = fmi[1] = fmi[2] = 0.0; - fmj[0] = fmj[1] = fmj[2] = 0.0; - rij[0] = rij[1] = rij[2] = 0.0; - - rij[0] = x[j][0] - xi[0]; - rij[1] = x[j][1] - xi[1]; - rij[2] = x[j][2] - xi[2]; - rsq = rij[0]*rij[0] + rij[1]*rij[1] + rij[2]*rij[2]; - inorm = 1.0/sqrt(rsq); - rij[0] *= inorm; - rij[1] *= inorm; - rij[2] *= inorm; - - itype = type[i]; - jtype = type[j]; - - // compute mag. and mech. components of soc - cut_soc_landau_2 = cut_soc_landau[itype][jtype]*cut_soc_landau[itype][jtype]; - if (rsq <= cut_soc_landau_2) { - compute_soc_landau(i,j,rsq,rij,fmi,fmj,spi,spj); - compute_soc_mech_landau(i,j,rsq,rij,fi,fj,spi,spj); - } - - f[i][0] += fi[0]; - f[i][1] += fi[1]; - f[i][2] += fi[2]; - fm[i][0] += fmi[0]; - fm[i][1] += fmi[1]; - fm[i][2] += fmi[2]; - -// if (newton_pair || j < nlocal) { => to be corrected - if (newton_pair_spin) { - f[j][0] += fj[0]; - f[j][1] += fj[1]; - f[j][2] += fj[2]; - fm[j][0] += fmj[0]; - fm[j][1] += fmj[1]; - fm[j][2] += fmj[2]; - } - - if (eflag) { - if (rsq <= cut_soc_landau_2) { - evdwl -= spi[0]*fmi[0]; - evdwl -= spi[1]*fmi[1]; - evdwl -= spi[2]*fmi[2]; - evdwl *= hbar; - } else evdwl = 0.0; - } - - if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, - evdwl,ecoul,fi[0],fi[1],fi[2],rij[0],rij[1],rij[2]); - } - } - - if (vflag_fdotr) virial_fdotr_compute(); - -} - -/* ---------------------------------------------------------------------- */ - -void PairSpinSocLandau::compute_soc_landau(int i, int j, double rsq, double rij[3], double fmi[3], double fmj[3], double spi[3], double spj[3]) -{ - int *type = atom->type; - int itype, jtype; - double Kij, Kij_3, ra, scalar; - itype = type[i]; - jtype = type[j]; - - ra = rsq/K3[itype][jtype]/K3[itype][jtype]; - Kij = 4.0*K1[itype][jtype]*ra; - Kij *= (1.0-K2[itype][jtype]*ra); - Kij *= exp(-ra); - - scalar = rij[0]*spj[0]+rij[1]*spj[1]+rij[2]*spj[2]; - Kij_3 = Kij/3.0; - - fmi[0] += Kij*scalar*rij[0]-Kij_3*spj[0]; - fmi[1] += Kij*scalar*rij[1]-Kij_3*spj[1]; - fmi[2] += Kij*scalar*rij[2]-Kij_3*spj[2]; - - fmj[0] -= Kij*scalar*rij[0]+Kij_3*spi[0]; - fmj[1] -= Kij*scalar*rij[1]+Kij_3*spi[1]; - fmj[2] -= Kij*scalar*rij[2]+Kij_3*spi[2]; - -} - -/* ---------------------------------------------------------------------- */ - -void PairSpinSocLandau::compute_soc_mech_landau(int i, int j, double rsq, double rij[3], double fi[3], double fj[3], double spi[3], double spj[3]) -{ - int *type = atom->type; - int itype, jtype; - double scalar_si_sj, scalar_rij_si, scalar_rij_sj; - double K_mech, Kij, dKij, ra, rr, drij, iK3; - double t1, t2, t3; - itype = type[i]; - jtype = type[j]; - - scalar_si_sj = spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]; - scalar_rij_si = rij[0]*spi[0]+rij[1]*spi[1]+rij[2]*spi[2]; - scalar_rij_sj = rij[0]*spj[0]+rij[1]*spj[1]+rij[2]*spj[2]; - - K_mech = K1_mech[itype][jtype]; - iK3 = 1.0/(K3[itype][jtype]*K3[itype][jtype]); - - drij = sqrt(rsq); - ra = rsq*iK3; - rr = drij*iK3; - - Kij *= (1.0-K2[itype][jtype]*ra); - Kij *= 4.0*K_mech*ra*exp(-ra); - - dKij = 1.0-ra-K2[itype][jtype]*ra*(2.0-ra); - dKij *= 8.0*K_mech*rr*exp(-ra); - - t1 = (dKij-2.0*Kij/drij)*scalar_rij_si*scalar_rij_sj; - t1 -= scalar_si_sj*dKij/3.0; - t2 = scalar_rij_sj*Kij/drij; - t3 = scalar_rij_si*Kij/drij; - - fi[0] += t1*rij[0]+t2*spi[0]+t3*spj[0]; - fi[1] += t1*rij[1]+t2*spi[1]+t3*spj[1]; - fi[2] += t1*rij[2]+t2*spi[2]+t3*spj[2]; - - fj[0] -= t1*rij[0]-t2*spi[0]-t3*spj[0]; - fj[1] -= t1*rij[1]-t2*spi[1]-t3*spj[1]; - fj[2] -= t1*rij[2]-t2*spi[2]-t3*spj[2]; - -} - -/* ---------------------------------------------------------------------- - allocate all arrays -------------------------------------------------------------------------- */ - -void PairSpinSocLandau::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(cut_soc_landau,n+1,n+1,"pair/spin/soc/landau:cut_soc_landau"); - memory->create(K1,n+1,n+1,"pair/spin/soc/landau:K1"); - memory->create(K1_mech,n+1,n+1,"pair/spin/soc/landau:K1_mech"); - memory->create(K2,n+1,n+1,"pair/spin/soc/landau:K2"); - memory->create(K3,n+1,n+1,"pair/spin/soc/landau:K3"); - - memory->create(cutsq,n+1,n+1,"pair/spin/soc/landau:cutsq"); - -} - -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairSpinSocLandau::settings(int narg, char **arg) -{ - if (narg < 1 || narg > 2) - error->all(FLERR,"Incorrect number of args in pair_style pair/spin command"); - - if (strcmp(update->unit_style,"metal") != 0) - error->all(FLERR,"Spin simulations require metal unit style"); - - cut_soc_global = force->numeric(FLERR,arg[0]); - - // reset cutoffs that have been explicitly set - - if (allocated) { - int i,j; - for (i = 1; i <= atom->ntypes; i++) - for (j = i+1; j <= atom->ntypes; j++) - if (setflag[i][j]) { - cut_soc_landau[i][j] = cut_soc_global; - } - } - -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type spin pairs (only one for now) -------------------------------------------------------------------------- */ - -void PairSpinSocLandau::coeff(int narg, char **arg) -{ - const double hbar = force->hplanck/MY_2PI; - - if (!allocated) allocate(); - - // set mech_flag to 1 if magneto-mech simulation - //no longer correct: can be hybrid without magneto-mech - if (strstr(force->pair_style,"pair/spin")) { - mech_flag = 0; - } else if (strstr(force->pair_style,"hybrid/overlay")) { - mech_flag = 1; - } else error->all(FLERR,"Incorrect args in pair_style command"); - - - if (strcmp(arg[2],"neel")==0){ - if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); - soc_neel_flag = 1; - - int ilo,ihi,jlo,jhi; - force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); - force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); - - const double rij = force->numeric(FLERR,arg[3]); - const double k1 = (force->numeric(FLERR,arg[4])); - const double k2 = force->numeric(FLERR,arg[5]); - const double k3 = force->numeric(FLERR,arg[6]); - - int count = 0; - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - cut_soc_landau[i][j] = rij; - K1[i][j] = k1/hbar; - if (mech_flag) { - K1_mech[i][j] = k1; - } else { - K1_mech[i][j] = 0.0; - } - K2[i][j] = k2; - K3[i][j] = k3; - setflag[i][j] = 1; - count++; - } - } - if (count == 0) error->all(FLERR,"Incorrect args in pair_style command"); - } else error->all(FLERR,"Incorrect args in pair_style command"); - -} - - -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -void PairSpinSocLandau::init_style() -{ - if (!atom->sp_flag || !atom->mumag_flag) - error->all(FLERR,"Pair spin requires atom attributes sp, mumag"); - - neighbor->request(this,instance_me); - - // check this half/full request => to be corrected -#define FULLNEI -#if defined FULLNEI - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->full = 1; -#endif - -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairSpinSocLandau::init_one(int i, int j) -{ - - if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); - - return cut_soc_global; -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairSpinSocLandau::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]) { - if (soc_neel_flag){ - fwrite(&K1[i][j],sizeof(double),1,fp); - fwrite(&K1_mech[i][j],sizeof(double),1,fp); - fwrite(&K2[i][j],sizeof(double),1,fp); - fwrite(&K3[i][j],sizeof(double),1,fp); - fwrite(&cut_soc_landau[i][j],sizeof(double),1,fp); - } - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairSpinSocLandau::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(&K1[i][j],sizeof(double),1,fp); - fread(&K1_mech[i][j],sizeof(double),1,fp); - fread(&K2[i][j],sizeof(double),1,fp); - fread(&K2[i][j],sizeof(double),1,fp); - fread(&cut_soc_landau[i][j],sizeof(double),1,fp); - } - MPI_Bcast(&K1[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&K1_mech[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&K2[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&K3[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_soc_landau[i][j],1,MPI_DOUBLE,0,world); - } - } - } -} - - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairSpinSocLandau::write_restart_settings(FILE *fp) -{ - fwrite(&cut_soc_global,sizeof(double),1,fp); - fwrite(&offset_flag,sizeof(int),1,fp); - fwrite(&mix_flag,sizeof(int),1,fp); -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairSpinSocLandau::read_restart_settings(FILE *fp) -{ - if (comm->me == 0) { - fread(&cut_soc_global,sizeof(double),1,fp); - fread(&offset_flag,sizeof(int),1,fp); - fread(&mix_flag,sizeof(int),1,fp); - } - MPI_Bcast(&cut_soc_global,1,MPI_DOUBLE,0,world); - MPI_Bcast(&offset_flag,1,MPI_INT,0,world); - MPI_Bcast(&mix_flag,1,MPI_INT,0,world); -} diff --git a/src/SPIN/pair_spin_soc_landau.h b/src/SPIN/pair_spin_soc_landau.h deleted file mode 100755 index 491cb9a581..0000000000 --- a/src/SPIN/pair_spin_soc_landau.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -*- 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(pair/spin/soc/landau,PairSpinSocLandau) - -#else - -#ifndef LMP_PAIR_SPIN_SOC_LANDAU_H -#define LMP_PAIR_SPIN_SOC_LANDAU_H - -#include "pair.h" - -namespace LAMMPS_NS { - -class PairSpinSocLandau : public Pair { - public: - PairSpinSocLandau(class LAMMPS *); - virtual ~PairSpinSocLandau(); - virtual void compute(int, int); - void settings(int, char **); - void coeff(int, char **); - void init_style(); - double init_one(int, int); - - void write_restart(FILE *); - void read_restart(FILE *); - void write_restart_settings(FILE *); - void read_restart_settings(FILE *); - - void compute_soc_landau(int, int, double, double rij[3], double fmi[3], double fmj[3],double spi[3], double spj[3]); - void compute_soc_mech_landau(int, int, double, double rij[3], double fi[3], double fj[3], double spi[3], double spj[3]); - - int soc_neel_flag; // soc neel flag - int mech_flag; // mech calc. flag - - double cut_soc_global; - double **cut_soc_landau; // cutoff distance exchange - - protected: - int newton_pair_spin; - double hbar; - - double **K1, **K1_mech; // exchange coeffs Kij - double **K2, **K3; // K1 in eV, K2 adim, K3 in Ang - - void allocate(); -}; - -} - -#endif -#endif - -/* ERROR/WARNING messages: - -E: Incorrect args in pair_spin command - -Self-explanatory. - -E: Spin simulations require metal unit style - -Self-explanatory. - -E: Incorrect args for pair coefficients - -Self-explanatory. Check the input script or data file. - -E: Pair spin requires atom attributes sp, mumag - -The atom style defined does not have these attributes. - -*/ diff --git a/src/SPIN/pair_spin_soc_neel.cpp b/src/SPIN/pair_spin_soc_neel.cpp index 6952e0334a..847995abbc 100755 --- a/src/SPIN/pair_spin_soc_neel.cpp +++ b/src/SPIN/pair_spin_soc_neel.cpp @@ -57,10 +57,16 @@ PairSpinSocNeel::~PairSpinSocNeel() memory->destroy(setflag); memory->destroy(cut_soc_neel); - memory->destroy(K1); - memory->destroy(K1_mech); - memory->destroy(K2); - memory->destroy(K3); + + memory->destroy(g1); + memory->destroy(g1_mech); + memory->destroy(g2); + memory->destroy(g3); + + memory->destroy(q1); + memory->destroy(q1_mech); + memory->destroy(q2); + memory->destroy(q3); memory->destroy(cutsq); } @@ -184,23 +190,63 @@ void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double eij[3], { int *type = atom->type; int itype, jtype; - double Kij, Kij_3, ra; - double scalar_i, scalar_j; + double gij, q1ij, q2ij, ra; + double pdx, pdy, pdz; + double pq1x, pq1y, pq1z; + double pq2x, pq2y, pq2z; itype = type[i]; - jtype = type[j]; - - ra = rsq/K3[itype][jtype]/K3[itype][jtype]; - Kij = 4.0*K1[itype][jtype]*ra; - Kij *= (1.0-K2[itype][jtype]*ra); - Kij *= exp(-ra); + jtype = type[j]; - scalar_i = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; - scalar_j = eij[0]*spi[0]+eij[1]*spi[1]+eij[2]*spi[2]; - Kij_3 = Kij/3.0; + // pseudo-dipolar component + ra = rsq/g3[itype][jtype]/g3[itype][jtype]; + gij = 4.0*g1[itype][jtype]*ra; + gij *= (1.0-g2[itype][jtype]*ra); + gij *= exp(-ra); - fmi[0] += Kij*scalar_i*eij[0] - Kij_3*spj[0]; - fmi[1] += Kij*scalar_i*eij[1] - Kij_3*spj[1]; - fmi[2] += Kij*scalar_i*eij[2] - Kij_3*spj[2]; + double scalar_eij_si = eij[0]*spi[0] + eij[1]*spi[1] + eij[2]*spi[2]; + double scalar_eij_sj = eij[0]*spj[0] + eij[1]*spj[1] + eij[2]*spj[2]; + double scalar_si_sj = spi[0]*spj[0] + spi[1]*spj[1] + spi[2]*spj[2]; + + double gij_eij_sj = gij*scalar_eij_sj; + double gij_3 = gij/3.0; + pdx = gij_eij_sj*eij[0] - gij_3*spj[0]; + pdy = gij_eij_sj*eij[1] - gij_3*spj[1]; + pdz = gij_eij_sj*eij[2] - gij_3*spj[2]; + + // pseudo-quadrupolar component + ra = rsq/q3[itype][jtype]/q3[itype][jtype]; + q1ij = 4.0*q1[itype][jtype]*ra; + q1ij *= (1.0-q2[itype][jtype]*ra); + q1ij *= exp(-ra); + q2ij = (-2.0*q1ij/9.0); + + pq1x = -(scalar_eij_si*scalar_eij_si - scalar_si_sj/3.0)*spj[0]/3.0; + pq1y = -(scalar_eij_si*scalar_eij_si - scalar_si_sj/3.0)*spj[1]/3.0; + pq1z = -(scalar_eij_si*scalar_eij_si - scalar_si_sj/3.0)*spj[2]/3.0; + + double pqt1 = scalar_eij_sj*scalar_eij_sj-scalar_si_sj/3.0; + pq1x += pqt1*(2.0*scalar_eij_si*eij[0] - spj[0]/3.0); + pq1y += pqt1*(2.0*scalar_eij_si*eij[1] - spj[1]/3.0); + pq1z += pqt1*(2.0*scalar_eij_si*eij[2] - spj[2]/3.0); + + pq1x *= q1ij; + pq1y *= q1ij; + pq1z *= q1ij; + + double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; + double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; + pq2x = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[0] + scalar_eij_sj_3*eij[0]; + pq2y = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[1] + scalar_eij_sj_3*eij[1]; + pq2z = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[2] + scalar_eij_sj_3*eij[2]; + + pq2x *= q2ij; + pq2y *= q2ij; + pq2z *= q2ij; + + // summing three contributions + fmi[0] += (pdx + pq1x + pq2x); + fmi[1] += (pdy + pq1y + pq2y); + fmi[2] += (pdz + pq1z + pq2z); } @@ -210,39 +256,108 @@ void PairSpinSocNeel::compute_soc_mech_neel(int i, int j, double rsq, double eij { int *type = atom->type; int itype, jtype; - double scalar_si_sj, scalar_eij_si, scalar_eij_sj; - double K_mech, Kij, dKij, ra, rr, drij, iK3; - double t1, t2, t3; + double g_mech, gij, dgij; + double q_mech, q1ij, dq1ij; + double q2ij, dq2ij; + double pdx, pdy, pdz; + double pq1x, pq1y, pq1z; + double pq2x, pq2y, pq2z; + double ra, rr, drij, ig3, iq3; itype = type[i]; jtype = type[j]; drij = sqrt(rsq); - scalar_si_sj = spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]; - scalar_eij_si = eij[0]*spi[0]+eij[1]*spi[1]+eij[2]*spi[2]; - scalar_eij_sj = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; + double scalar_si_sj = spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]; + double scalar_eij_si = eij[0]*spi[0]+eij[1]*spi[1]+eij[2]*spi[2]; + double scalar_eij_sj = eij[0]*spj[0]+eij[1]*spj[1]+eij[2]*spj[2]; - K_mech = K1_mech[itype][jtype]; - iK3 = 1.0/(K3[itype][jtype]*K3[itype][jtype]); + // pseudo-dipolar component + g_mech = g1_mech[itype][jtype]; + ig3 = 1.0/(g3[itype][jtype]*g3[itype][jtype]); - ra = rsq*iK3; - rr = drij*iK3; + ra = rsq*ig3; + rr = drij*ig3; - Kij = 4.0*K_mech*ra; - Kij *= (1.0-K2[itype][jtype]*ra); - Kij *= exp(-ra); + gij = 4.0*g_mech*ra; + gij *= (1.0-g2[itype][jtype]*ra); + gij *= exp(-ra); - dKij = 1.0-ra-K2[itype][jtype]*ra*(2.0-ra); - dKij *= 8.0*K_mech*rr*exp(-ra); + dgij = 1.0-ra-g2[itype][jtype]*ra*(2.0-ra); + dgij *= 8.0*g_mech*rr*exp(-ra); - t1 = (dKij-2.0*Kij/drij)*scalar_eij_si*scalar_eij_sj; - t1 -= scalar_si_sj*dKij/3.0; - t2 = scalar_eij_sj*Kij/drij; - t3 = scalar_eij_si*Kij/drij; + // this 2.0*gij/drij is in Beaujouan calc. but not recovered yet + //double pdt1 = dgij*scalar_eij_si*scalar_eij_sj; + double pdt1 = (dgij-2.0*gij/drij)*scalar_eij_si*scalar_eij_sj; + pdt1 -= scalar_si_sj*dgij/3.0; + double pdt2 = scalar_eij_sj*gij/drij; + double pdt3 = scalar_eij_si*gij/drij; + pdx = -(pdt1*eij[0] + pdt2*spi[0] + pdt3*spj[0]); + pdy = -(pdt1*eij[1] + pdt2*spi[1] + pdt3*spj[1]); + pdz = -(pdt1*eij[2] + pdt2*spi[2] + pdt3*spj[2]); - fi[0] -= (t1*eij[0] + t2*spi[0] + t3*spj[0]); - fi[1] -= (t1*eij[1] + t2*spi[1] + t3*spj[1]); - fi[2] -= (t1*eij[2] + t2*spi[2] + t3*spj[2]); + // pseudo-quadrupolar component + q_mech = q1_mech[itype][jtype]; + iq3 = 1.0/(q3[itype][jtype]*q3[itype][jtype]); + + ra = rsq*iq3; + rr = drij*iq3; + + q1ij = 4.0*q_mech*ra; + q1ij *= (1.0-q2[itype][jtype]*ra); + q1ij *= exp(-ra); + q2ij = -2.0*q1ij/9.0; + + dq1ij = 1.0-ra-q2[itype][jtype]*ra*(2.0-ra); + dq1ij *= 8.0*q_mech*rr*exp(-ra); + dq2ij = -2.0*dq1ij/9.0; + + double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; + double scalar_eij_sj_2 = scalar_eij_sj*scalar_eij_sj; + double pqt1 = scalar_eij_si_2 - scalar_si_sj/3.0; + double pqt2 = scalar_eij_sj_2 - scalar_si_sj/3.0; + pq1x = dq1ij * pqt1 * pqt2 * eij[0]; + pq1y = dq1ij * pqt1 * pqt2 * eij[1]; + pq1z = dq1ij * pqt1 * pqt2 * eij[2]; + + double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; + double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; + double scalar_si_sj_2 = scalar_si_sj*scalar_si_sj; + double pqt3 = 2.0*scalar_eij_si*scalar_eij_sj_3/drij; + double pqt4 = 2.0*scalar_eij_sj*scalar_eij_si_3/drij; + double pqt5 = -2.0*scalar_si_sj*scalar_eij_si/(3.0*drij); + double pqt6 = -2.0*scalar_si_sj*scalar_eij_sj/(3.0*drij); + pq1x += q1ij*(pqt3*spi[0]+pqt4*spj[0]+pqt5*spi[0]+pqt6*spi[0]); + pq1y += q1ij*(pqt3*spi[1]+pqt4*spj[1]+pqt5*spi[1]+pqt6*spj[1]); + pq1z += q1ij*(pqt3*spi[2]+pqt4*spj[2]+pqt5*spi[2]+pqt6*spj[2]); + double pqt7 = 4.0*scalar_eij_si_2*scalar_eij_sj_2/drij; + double pqt8 = 2.0*scalar_si_sj_2*scalar_eij_sj/(3.0*drij); + double pqt9 = 2.0*scalar_si_sj_2*scalar_eij_si/(3.0*drij); + pq1x -= q1ij*(pqt7 + pqt8 + pqt9)*eij[0]; + pq1y -= q1ij*(pqt7 + pqt8 + pqt9)*eij[1]; + pq1z -= q1ij*(pqt7 + pqt8 + pqt9)*eij[2]; + + double pqt10 = scalar_eij_sj*scalar_eij_si_3; + double pqt11 = scalar_eij_si*scalar_eij_sj_3; + pq2x = dq2ij*(pqt10 + pqt11)*eij[0]; + pq2y = dq2ij*(pqt10 + pqt11)*eij[1]; + pq2z = dq2ij*(pqt10 + pqt11)*eij[2]; + double pqt12 = scalar_eij_si_3/drij; + double pqt13 = scalar_eij_sj_3/drij; + double pqt14 = 3.0*scalar_eij_sj*scalar_eij_si_2/drij; + double pqt15 = 3.0*scalar_eij_si*scalar_eij_sj_2/drij; + pq2x += q2ij*((pqt12+pqt15)*spj[0]+(pqt13+pqt14)*spi[0]); + pq2y += q2ij*((pqt12+pqt15)*spj[1]+(pqt13+pqt14)*spi[1]); + pq2z += q2ij*((pqt12+pqt15)*spj[2]+(pqt13+pqt14)*spi[2]); + double pqt16 = 4.0*scalar_eij_sj*scalar_eij_si_3/drij; + double pqt17 = 4.0*scalar_eij_si*scalar_eij_sj_3/drij; + pq2x -= q2ij*(pqt16 + pqt17)*eij[0]; + pq2y -= q2ij*(pqt16 + pqt17)*eij[1]; + pq2z -= q2ij*(pqt16 + pqt17)*eij[2]; + + fi[0] = pdx + pq1x + pq2x; + fi[2] = pdy + pq1y + pq2y; + fi[3] = pdz + pq1z + pq2z; } @@ -261,10 +376,16 @@ void PairSpinSocNeel::allocate() setflag[i][j] = 0; memory->create(cut_soc_neel,n+1,n+1,"pair/spin/soc/neel:cut_soc_neel"); - memory->create(K1,n+1,n+1,"pair/spin/soc/neel:K1"); - memory->create(K1_mech,n+1,n+1,"pair/spin/soc/neel:K1_mech"); - memory->create(K2,n+1,n+1,"pair/spin/soc/neel:K2"); - memory->create(K3,n+1,n+1,"pair/spin/soc/neel:K3"); + + memory->create(g1,n+1,n+1,"pair/spin/soc/neel:g1"); + memory->create(g1_mech,n+1,n+1,"pair/spin/soc/neel:g1_mech"); + memory->create(g2,n+1,n+1,"pair/spin/soc/neel:g2"); + memory->create(g3,n+1,n+1,"pair/spin/soc/neel:g3"); + + memory->create(q1,n+1,n+1,"pair/spin/soc/neel:q1"); + memory->create(q1_mech,n+1,n+1,"pair/spin/soc/neel:q1_mech"); + memory->create(q2,n+1,n+1,"pair/spin/soc/neel:q2"); + memory->create(q3,n+1,n+1,"pair/spin/soc/neel:q3"); memory->create(cutsq,n+1,n+1,"pair/spin/soc/neel:cutsq"); @@ -318,8 +439,8 @@ void PairSpinSocNeel::coeff(int narg, char **arg) } else error->all(FLERR,"Incorrect args in pair_style command"); - if (strcmp(arg[2],"neel")==0){ - if (narg != 7) error->all(FLERR,"Incorrect args in pair_style command"); + if (strcmp(arg[2],"neel") == 0){ + if (narg != 10) error->all(FLERR,"Incorrect args in pair_style command"); soc_neel_flag = 1; int ilo,ihi,jlo,jhi; @@ -327,22 +448,29 @@ void PairSpinSocNeel::coeff(int narg, char **arg) force->bounds(FLERR,arg[1],atom->ntypes,jlo,jhi); const double rij = force->numeric(FLERR,arg[3]); - const double k1 = (force->numeric(FLERR,arg[4])); + const double k1 = force->numeric(FLERR,arg[4]); const double k2 = force->numeric(FLERR,arg[5]); const double k3 = force->numeric(FLERR,arg[6]); + const double l1 = force->numeric(FLERR,arg[7]); + const double l2 = force->numeric(FLERR,arg[8]); + const double l3 = force->numeric(FLERR,arg[9]); int count = 0; for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { cut_soc_neel[i][j] = rij; - K1[i][j] = k1/hbar; + g1[i][j] = k1/hbar; + q1[i][j] = l1/hbar; if (soc_mech_flag) { - K1_mech[i][j] = k1; + g1_mech[i][j] = k1; + q1_mech[i][j] = l1; } else { - K1_mech[i][j] = 0.0; + g1_mech[i][j] = 0.0; } - K2[i][j] = k2; - K3[i][j] = k3; + g2[i][j] = k2; + g3[i][j] = k3; + q2[i][j] = l2; + q3[i][j] = l3; setflag[i][j] = 1; count++; } @@ -396,10 +524,14 @@ void PairSpinSocNeel::write_restart(FILE *fp) fwrite(&setflag[i][j],sizeof(int),1,fp); if (setflag[i][j]) { if (soc_neel_flag){ - fwrite(&K1[i][j],sizeof(double),1,fp); - fwrite(&K1_mech[i][j],sizeof(double),1,fp); - fwrite(&K2[i][j],sizeof(double),1,fp); - fwrite(&K3[i][j],sizeof(double),1,fp); + fwrite(&g1[i][j],sizeof(double),1,fp); + fwrite(&g1_mech[i][j],sizeof(double),1,fp); + fwrite(&g2[i][j],sizeof(double),1,fp); + fwrite(&g3[i][j],sizeof(double),1,fp); + fwrite(&q1[i][j],sizeof(double),1,fp); + fwrite(&q1_mech[i][j],sizeof(double),1,fp); + fwrite(&q2[i][j],sizeof(double),1,fp); + fwrite(&q3[i][j],sizeof(double),1,fp); fwrite(&cut_soc_neel[i][j],sizeof(double),1,fp); } } @@ -424,16 +556,24 @@ void PairSpinSocNeel::read_restart(FILE *fp) MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); if (setflag[i][j]) { if (me == 0) { - fread(&K1[i][j],sizeof(double),1,fp); - fread(&K1_mech[i][j],sizeof(double),1,fp); - fread(&K2[i][j],sizeof(double),1,fp); - fread(&K2[i][j],sizeof(double),1,fp); + fread(&g1[i][j],sizeof(double),1,fp); + fread(&g1_mech[i][j],sizeof(double),1,fp); + fread(&g2[i][j],sizeof(double),1,fp); + fread(&g2[i][j],sizeof(double),1,fp); + fread(&q1[i][j],sizeof(double),1,fp); + fread(&q1_mech[i][j],sizeof(double),1,fp); + fread(&q2[i][j],sizeof(double),1,fp); + fread(&q2[i][j],sizeof(double),1,fp); fread(&cut_soc_neel[i][j],sizeof(double),1,fp); } - MPI_Bcast(&K1[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&K1_mech[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&K2[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&K3[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&g1[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&g1_mech[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&g2[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&g3[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&q1[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&q1_mech[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&q2[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&q3[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&cut_soc_neel[i][j],1,MPI_DOUBLE,0,world); } } diff --git a/src/SPIN/pair_spin_soc_neel.h b/src/SPIN/pair_spin_soc_neel.h index b02731b214..8eb21fb26b 100755 --- a/src/SPIN/pair_spin_soc_neel.h +++ b/src/SPIN/pair_spin_soc_neel.h @@ -49,11 +49,15 @@ class PairSpinSocNeel : public Pair { double **cut_soc_neel; // cutoff distance exchange protected: - //int newton_pair_spin; double hbar; - double **K1, **K1_mech; // exchange coeffs Kij - double **K2, **K3; // K1 in eV, K2 adim, K3 in Ang + // pseudo-dipolar coeff. + double **g1, **g1_mech; // exchange coeffs gij + double **g2, **g3; // g1 in eV, g2 adim, g3 in Ang + + // pseudo-quadrupolar coeff. + double **q1, **q1_mech; // exchange coeffs qij + double **q2, **q3; // q1 in eV, q2 adim, q3 in Ang void allocate(); }; From e4c6c46b4cdaa312dfeeafe420b3c466f23390e3 Mon Sep 17 00:00:00 2001 From: julient31 Date: Thu, 1 Mar 2018 09:03:20 -0700 Subject: [PATCH 078/675] Commit JT 010318 (before APS) --- examples/SPIN/bfo/in.spin.bfo | 3 +- .../Co_PurjaPun_2012.eam.alloy | 0 .../in.spin.cobalt_fcc} | 6 +- .../cobalt_hcp/Co_PurjaPun_2012.eam.alloy | 6006 +++++++++++++++++ .../exchange_fit_hcp_co/exchange_fit.py | 32 + .../exchange_fit_hcp_co/exchange_hcp_co.dat | 9 + examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp | 60 + examples/SPIN/dev/in.spin.cobalt | 18 +- src/SPIN/fix_integration_spin.cpp | 1 - src/SPIN/pair_spin_soc_neel.cpp | 32 +- 10 files changed, 6143 insertions(+), 24 deletions(-) rename examples/SPIN/{cobalt => cobalt_fcc}/Co_PurjaPun_2012.eam.alloy (100%) rename examples/SPIN/{cobalt/in.spin.cobalt => cobalt_fcc/in.spin.cobalt_fcc} (82%) create mode 100644 examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy create mode 100644 examples/SPIN/cobalt_hcp/exchange_fit_hcp_co/exchange_fit.py create mode 100644 examples/SPIN/cobalt_hcp/exchange_fit_hcp_co/exchange_hcp_co.dat create mode 100644 examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index 66e0f3f785..c6c73e531d 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -23,8 +23,7 @@ set group all spin/random 11 2.50 pair_style hybrid/overlay pair/spin/exchange 6.0 pair/spin/me 4.5 pair_coeff * * pair/spin/exchange exchange 6.0 -0.01575 0.0 1.965 -#pair_coeff * * pair/spin/me me 4.5 0.000109 1.0 1.0 1.0 -pair_coeff * * pair/spin/me me 4.5 0.00109 1.0 1.0 1.0 +pair_coeff * * pair/spin/me me 4.5 0.000109 1.0 1.0 1.0 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 diff --git a/examples/SPIN/cobalt/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/cobalt_fcc/Co_PurjaPun_2012.eam.alloy similarity index 100% rename from examples/SPIN/cobalt/Co_PurjaPun_2012.eam.alloy rename to examples/SPIN/cobalt_fcc/Co_PurjaPun_2012.eam.alloy diff --git a/examples/SPIN/cobalt/in.spin.cobalt b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc similarity index 82% rename from examples/SPIN/cobalt/in.spin.cobalt rename to examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc index 74523dfb70..0d30cfd703 100644 --- a/examples/SPIN/cobalt/in.spin.cobalt +++ b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc @@ -22,11 +22,9 @@ mass 1 58.93 set group all spin/random 31 1.72 velocity all create 100 4928459 rot yes dist gaussian -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 -pair_coeff * * eam/alloy ../examples/SPIN/cobalt/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * eam/alloy ../examples/SPIN/cobalt_fcc/Co_PurjaPun_2012.eam.alloy Co pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 @@ -55,5 +53,5 @@ thermo 10 #dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz -run 10 +run 500 diff --git a/examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy b/examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy new file mode 100644 index 0000000000..3af058baf7 --- /dev/null +++ b/examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy @@ -0,0 +1,6006 @@ +Cobalt EAM potential: G. P. Purja Pun and Y. Mishin, Phys. Rev. B xx, 004100 (2012) (in press) +Data below r = 1.5 A is extrapolated. F(Rho) data not extrapolated. +Created on Wed Sep 26 17:29:54 2012 +1 Co +10000 4.788742913000000e-04 10000 6.499539000000001e-04 6.499539000000000e+00 +27 5.893320000000000e+01 2.507000000000000e+00 hcp + -1.680303080000000e-02 -1.879913964471138e-02 -2.091739081044659e-02 -2.303564197615629e-02 -2.503175082079116e-02 + -2.681996612041136e-02 -2.846010103933253e-02 -3.003179469400266e-02 -3.154842562124295e-02 -3.300931506782415e-02 + -3.442381570000001e-02 -3.580233366714632e-02 -3.714945763166951e-02 -3.846832763111274e-02 -3.976210669053554e-02 + -4.103374908125148e-02 -4.228535107207521e-02 -4.351872320172212e-02 -4.473539109100971e-02 -4.593674531110434e-02 + -4.712392115246503e-02 -4.829795108118731e-02 -4.945971154662068e-02 -5.061001094949964e-02 -5.174954151284258e-02 + -5.287894548568519e-02 -5.399878139884967e-02 -5.510957102742049e-02 -5.621177284174523e-02 -5.730581735016625e-02 + -5.839208651773948e-02 -5.947094067448531e-02 -6.054270215356945e-02 -6.160767623453070e-02 -6.266613797925552e-02 + -6.371834880435967e-02 -6.476454576302854e-02 -6.580495483863194e-02 -6.683978209870683e-02 -6.786922452279202e-02 + -6.889346265426707e-02 -6.991266949659354e-02 -7.092700432972064e-02 -7.193662011890395e-02 -7.294165829413661e-02 + -7.394225494811188e-02 -7.493853635958479e-02 -7.593062425993033e-02 -7.691863200494162e-02 -7.790266905197404e-02 + -7.888283764021425e-02 -7.985923664258643e-02 -8.083195868513401e-02 -8.180109346997461e-02 -8.276672525040257e-02 + -8.372893572415932e-02 -8.468780181559693e-02 -8.564339820511864e-02 -8.659579537072190e-02 -8.754506181558984e-02 + -8.849126234605453e-02 -8.943446001410092e-02 -9.037471455117625e-02 -9.131208412841478e-02 -9.224662399623559e-02 + -9.317838801321032e-02 -9.410742739123597e-02 -9.503379209498646e-02 -9.595752974691800e-02 -9.687868684755546e-02 + -9.779730775191570e-02 -9.871343580120046e-02 -9.962711242685958e-02 -1.005383781439554e-01 -1.014472717117523e-01 + -1.023538310651938e-01 -1.032580925977369e-01 -1.041600919387366e-01 -1.050598632026273e-01 -1.059574398208095e-01 + -1.068528540074704e-01 -1.077461373458066e-01 -1.086373201122683e-01 -1.095264320028559e-01 -1.104135016985198e-01 + -1.112985573626335e-01 -1.121816261033156e-01 -1.130627345294291e-01 -1.139419083080692e-01 -1.148191726662944e-01 + -1.156945520127823e-01 -1.165680703406650e-01 -1.174397507992727e-01 -1.183096161572101e-01 -1.191776885039839e-01 + -1.200439895800373e-01 -1.209085404086571e-01 -1.217713616730546e-01 -1.226324734132936e-01 -1.234918953788508e-01 + -1.243496468000000e-01 -1.252057466264230e-01 -1.260602132046348e-01 -1.269130646065986e-01 -1.277643184092350e-01 + -1.286139919512837e-01 -1.294621021138015e-01 -1.303086655551642e-01 -1.311536985007052e-01 -1.319972169590798e-01 + -1.328392365052704e-01 -1.336797725161469e-01 -1.345188400098036e-01 -1.353564538215464e-01 -1.361926284143060e-01 + -1.370273780803152e-01 -1.378607168013910e-01 -1.386926583917836e-01 -1.395232163058920e-01 -1.403524038515728e-01 + -1.411802341103638e-01 -1.420067200256853e-01 -1.428318742148069e-01 -1.436557091565456e-01 -1.444782371020595e-01 + -1.452994701862315e-01 -1.461194203065015e-01 -1.469380992388567e-01 -1.477555185109162e-01 -1.485716895480879e-01 + -1.493866236153044e-01 -1.502003318703277e-01 -1.510128252027127e-01 -1.518241144121522e-01 -1.526342102070998e-01 + -1.534431232126203e-01 -1.542508638114616e-01 -1.550574422930448e-01 -1.558628688157988e-01 -1.566671534698807e-01 + -1.574703062033520e-01 -1.582723368973844e-01 -1.590732553076882e-01 -1.598730711132973e-01 -1.606717938120008e-01 + -1.614694328459875e-01 -1.622659976162905e-01 -1.630614974730487e-01 -1.638559416039789e-01 -1.646493391351259e-01 + -1.654416991082678e-01 -1.662330305252601e-01 -1.670233423125346e-01 -1.678126433512354e-01 -1.686009424167802e-01 + -1.693882482431861e-01 -1.701745695045948e-01 -1.709599148401449e-01 -1.717442928088396e-01 -1.725277119385885e-01 + -1.733101807130639e-01 -1.740917075837066e-01 -1.748723009172683e-01 -1.756519690655456e-01 -1.764307204052008e-01 + -1.772085632840185e-01 -1.779855059094047e-01 -1.787615564692287e-01 -1.795367232135896e-01 -1.803110143830451e-01 + -1.810844381177561e-01 -1.818570025406103e-01 -1.826287158057983e-01 -1.833995860626770e-01 -1.841696214099643e-01 + -1.849388299454831e-01 -1.857072198141128e-01 -1.864747991526175e-01 -1.872415760182443e-01 -1.880075584641173e-01 + -1.887727546063884e-01 -1.895371725773110e-01 -1.903008205105196e-01 -1.910637065418589e-01 -1.918258388146347e-01 + -1.925872254807121e-01 -1.933478747187342e-01 -1.941077947209150e-01 -1.948669937069724e-01 -1.956254799127480e-01 + -1.963832616110719e-01 -1.971403470967068e-01 -1.978967447151567e-01 -1.986524628291068e-01 -1.994075098192274e-01 + -2.001618941005484e-01 -2.009156242075518e-01 -2.016687086990372e-01 -2.024211561116226e-01 -2.031729750127928e-01 + -2.039241741156804e-01 -2.046747621691974e-01 -2.054247479197256e-01 -2.061741401521784e-01 -2.069229478081280e-01 + -2.076711798806499e-01 -2.084188454121736e-01 -2.091659534755806e-01 -2.099125132162076e-01 -2.106585338443872e-01 + -2.114040247579823e-01 -2.121489953974893e-01 -2.128934551864067e-01 -2.136374136027109e-01 -2.143808803592873e-01 + -2.151238652468154e-01 -2.158663781322411e-01 -2.166084289346303e-01 -2.173500277052638e-01 -2.180911845646947e-01 + -2.188319097783510e-01 -2.195722136949507e-01 -2.203121068514981e-01 -2.210515998518519e-01 -2.217907033790026e-01 + -2.225294282016381e-01 -2.232677853521022e-01 -2.240057859531163e-01 -2.247434412252567e-01 -2.254807624804862e-01 + -2.262177612984613e-01 -2.269544493586047e-01 -2.276908384717110e-01 -2.284269405581227e-01 -2.291627678450005e-01 + -2.298983326532392e-01 -2.306336473718499e-01 -2.313687245044682e-01 -2.321035769451089e-01 -2.328382177230701e-01 + -2.335726600184018e-01 -2.343069171312917e-01 -2.350410026917230e-01 -2.357749304696442e-01 -2.365087144650665e-01 + -2.372423688046511e-01 -2.379759078915950e-01 -2.387093462817347e-01 -2.394426988649284e-01 -2.401759806938325e-01 + -2.409092071382775e-01 -2.416423937275558e-01 -2.423755563116356e-01 -2.431087109081851e-01 -2.438418738849959e-01 + -2.445750618045980e-01 -2.453082916583512e-01 -2.460415806101058e-01 -2.467749460848467e-01 -2.475084057095742e-01 + -2.482419776582159e-01 -2.489756803241430e-01 -2.497095324315720e-01 -2.504435529132133e-01 -2.511777612049070e-01 + -2.519121769824342e-01 -2.526468203782122e-01 -2.533817117688987e-01 -2.541168720514789e-01 -2.548523223627430e-01 + -2.555880842783758e-01 -2.563241796571988e-01 -2.570606310516858e-01 -2.577974612919421e-01 -2.585346936249472e-01 + -2.592723515924181e-01 -2.600104594981498e-01 -2.607490419576605e-01 -2.614881240712832e-01 -2.622277312727207e-01 + -2.629678898443362e-01 -2.637086264051527e-01 -2.644499680721714e-01 -2.651919423187013e-01 -2.659345775453039e-01 + -2.666779025531186e-01 -2.674219468183432e-01 -2.681667401972407e-01 -2.689123133912765e-01 -2.696586975492495e-01 + -2.704059247640904e-01 -2.711540275538941e-01 -2.719030391932789e-01 -2.726529934197978e-01 -2.734039250662187e-01 + -2.741558694758598e-01 -2.749088629390239e-01 -2.756629422674556e-01 -2.764181454116789e-01 -2.771745108563868e-01 + -2.779320780841674e-01 -2.786908871694924e-01 -2.794509795564719e-01 -2.802123972949423e-01 -2.809751834880072e-01 + -2.817393818716988e-01 -2.825050376604960e-01 -2.832721967688652e-01 -2.840409064327807e-01 -2.848112145951165e-01 + -2.855831707048412e-01 -2.863568249759762e-01 -2.871322291766564e-01 -2.879094358829076e-01 -2.886884993482028e-01 + -2.894694746623641e-01 -2.902524185831628e-01 -2.910373887617654e-01 -2.918244447549689e-01 -2.926136470970381e-01 + -2.934050583264800e-01 -2.941987419693519e-01 -2.949947634976693e-01 -2.957931894604184e-01 -2.965940887685082e-01 + -2.973975314584912e-01 -2.982035897075678e-01 -2.990123368838905e-01 -2.998238489787670e-01 -3.006382032814213e-01 + -3.014554796495834e-01 -3.022757592753754e-01 -3.030991261199829e-01 -3.039256655881672e-01 -3.047554660899296e-01 + -3.055886175640754e-01 -3.064252130593845e-01 -3.072653472379187e-01 -3.081091181048918e-01 -3.089566254021406e-01 + -3.098079724748395e-01 -3.106632645082006e-01 -3.115226104442510e-01 -3.123861211846884e-01 -3.132539117130802e-01 + -3.141260990998875e-01 -3.150028046812773e-01 -3.158841520361693e-01 -3.167702694487885e-01 -3.176612875689104e-01 + -3.185573418032087e-01 -3.194585700942650e-01 -3.203651157713922e-01 -3.212771249044592e-01 -3.221947491388281e-01 + -3.231181430183639e-01 -3.240474671054514e-01 -3.249828850672117e-01 -3.259245669711927e-01 -3.268726862299913e-01 + -3.278274232359761e-01 -3.287889619469540e-01 -3.297574936027157e-01 -3.307332132733838e-01 -3.317163240684192e-01 + -3.327070332351553e-01 -3.337055565330767e-01 -3.347121141277095e-01 -3.357269352965953e-01 -3.367502540927247e-01 + -3.377823145588749e-01 -3.388233658450175e-01 -3.398736675401181e-01 -3.409334847493447e-01 -3.420030942036733e-01 + -3.430827786115977e-01 -3.441728329658748e-01 -3.452735586625544e-01 -3.463852704265985e-01 -3.475082899277179e-01 + -3.486429532857090e-01 -3.497896041380748e-01 -3.509486017430585e-01 -3.521203134619261e-01 -3.533051234472958e-01 + -3.545034246605078e-01 -3.557156285064298e-01 -3.569421559513399e-01 -3.581834477636310e-01 -3.594399550688090e-01 + -3.607121506187135e-01 -3.620005184199024e-01 -3.633055658714727e-01 -3.646278119965309e-01 -3.659677989216845e-01 + -3.673260803339768e-01 -3.687032330586966e-01 -3.700998457090232e-01 -3.715165309114429e-01 -3.729539131544640e-01 + -3.744126403613781e-01 -3.758933720658462e-01 -3.773967908082255e-01 -3.789235902651524e-01 -3.804744856516886e-01 + -3.820502023195389e-01 -3.836514846285581e-01 -3.852790856353807e-01 -3.869337741756033e-01 -3.886163256972291e-01 + -3.903275263189269e-01 -3.920681658458204e-01 -3.938390381581898e-01 -3.956409370872805e-01 -3.974746521930466e-01 + -3.993409682701225e-01 -4.012406553231547e-01 -4.031744727439548e-01 -4.051431522629808e-01 -4.071474082130475e-01 + -4.091879129977703e-01 -4.112653138348391e-01 -4.133801991274390e-01 -4.155331235094092e-01 -4.177245653517079e-01 + -4.199549603385881e-01 -4.222246496703586e-01 -4.245339230260172e-01 -4.268829584832519e-01 -4.292718744431503e-01 + -4.317006622016948e-01 -4.341692468068394e-01 -4.366774154195978e-01 -4.392248845800756e-01 -4.418112262316757e-01 + -4.444359401252420e-01 -4.470983818380713e-01 -4.497978365893122e-01 -4.525334523390530e-01 -4.553043120100788e-01 + -4.581093756350076e-01 -4.609475466791835e-01 -4.638176252290113e-01 -4.667183660407072e-01 -4.696484459287199e-01 + -4.726065094563343e-01 -4.755911501239359e-01 -4.786009429283761e-01 -4.816344399152602e-01 -4.846901882843556e-01 + -4.877667388033212e-01 -4.908626497957108e-01 -4.939765062407663e-01 -4.971069114027755e-01 -5.002525150305011e-01 + -5.034119937007041e-01 -5.065840848176727e-01 -5.097675587133593e-01 -5.129612566028576e-01 -5.161640565945169e-01 + -5.193749134865747e-01 -5.225928209640586e-01 -5.258168515692775e-01 -5.290461169135583e-01 -5.322798060270272e-01 + -5.355171460831645e-01 -5.387574394100244e-01 -5.420000245805213e-01 -5.452443099924439e-01 -5.484897376520451e-01 + -5.517358141745681e-01 -5.549820769247875e-01 -5.582281216566209e-01 -5.614735718423751e-01 -5.647181034387753e-01 + -5.679614169890416e-01 -5.712032588979591e-01 -5.744433972991336e-01 -5.776816413798681e-01 -5.809178193507762e-01 + -5.841517944620215e-01 -5.873834463985003e-01 -5.906126855444893e-01 -5.938394364748391e-01 -5.970636498273136e-01 + -6.002852884426439e-01 -6.035043379105128e-01 -6.067207941645156e-01 -6.099346717649501e-01 -6.131459940881434e-01 + -6.163548011478311e-01 -6.195611404873568e-01 -6.227650731310865e-01 -6.259666663617727e-01 -6.291659990146931e-01 + -6.323631552654742e-01 -6.355582290986170e-01 -6.387513188871106e-01 -6.419425307490256e-01 -6.451319745539882e-01 + -6.483197674327603e-01 -6.515060293214946e-01 -6.546908841167685e-01 -6.578744572836812e-01 -6.610568766009968e-01 + -6.642382709221243e-01 -6.674187710853904e-01 -6.705985088370179e-01 -6.737776175698923e-01 -6.769562312911304e-01 + -6.801344848181089e-01 -6.833125134999645e-01 -6.864904540026142e-01 -6.896684434132225e-01 -6.928466191871651e-01 + -6.960251190039876e-01 -6.992040810717012e-01 -7.023836437724149e-01 -7.055639456561626e-01 -7.087451254024176e-01 + -7.119273220404884e-01 -7.151106745784721e-01 -7.182953215897911e-01 -7.214814016245582e-01 -7.246690535743215e-01 + -7.278584163200112e-01 -7.310496283586513e-01 -7.342428280442573e-01 -7.374381535427195e-01 -7.406357429444993e-01 + -7.438357342264661e-01 -7.470382651689156e-01 -7.502434728794412e-01 -7.534514943101106e-01 -7.566624664635970e-01 + -7.598765262236051e-01 -7.630938099473661e-01 -7.663144537782537e-01 -7.695385935306881e-01 -7.727663648349232e-01 + -7.759979029135046e-01 -7.792333428394971e-01 -7.824728194957561e-01 -7.857164675195603e-01 -7.889644207560909e-01 + -7.922168128628783e-01 -7.954737775389469e-01 -7.987354483417761e-01 -8.020019582211745e-01 -8.052734399002169e-01 + -8.085500258027153e-01 -8.118318481538471e-01 -8.151190386835121e-01 -8.184117289678831e-01 -8.217100504635063e-01 + -8.250141343769457e-01 -8.283241110344656e-01 -8.316401105683494e-01 -8.349622632152548e-01 -8.382906990624389e-01 + -8.416255474951805e-01 -8.449669376504778e-01 -8.483149983741850e-01 -8.516698583310095e-01 -8.550316457522134e-01 + -8.584004886419279e-01 -8.617765145292081e-01 -8.651598508088844e-01 -8.685506248139727e-01 -8.719489622521989e-01 + -8.753549823919468e-01 -8.787687997490927e-01 -8.821905162688262e-01 -8.856202278084699e-01 -8.890580184445617e-01 + -8.925039663319011e-01 -8.959581377191167e-01 -8.994205926453692e-01 -9.028913782181163e-01 -9.063705352609543e-01 + -9.098580923937473e-01 -9.133540718558304e-01 -9.168584825681617e-01 -9.203713268261465e-01 -9.238925937413506e-01 + -9.274222656928153e-01 -9.309603113133150e-01 -9.345066924037853e-01 -9.380613571840678e-01 -9.416242468397124e-01 + -9.451952880001965e-01 -9.487744002152808e-01 -9.523614892719469e-01 -9.559564538973973e-01 -9.595591783425093e-01 + -9.631695396882074e-01 -9.667874008119273e-01 -9.704126174878044e-01 -9.740450312802591e-01 -9.776844767743714e-01 + -9.813307748475731e-01 -9.849837394560669e-01 -9.886431705787867e-01 -9.923088615430331e-01 -9.959805930468456e-01 + -9.996581394281877e-01 -1.003341262213973e+00 -1.007029716826452e+00 -1.010723247080268e+00 -1.014421591236032e+00 + -1.018124476945841e+00 -1.021831626529500e+00 -1.025542751586175e+00 -1.029257558992056e+00 -1.032975747452084e+00 + -1.036697011770175e+00 -1.040421039317395e+00 -1.044147513860548e+00 -1.047876112182243e+00 -1.051606508161453e+00 + -1.055338371046766e+00 -1.059071368055605e+00 -1.062805162911107e+00 -1.066539417837194e+00 -1.070273792555226e+00 + -1.074007946119602e+00 -1.077741537419413e+00 -1.081474225260823e+00 -1.085205668283577e+00 -1.088935525821090e+00 + -1.092663460147868e+00 -1.096389134999202e+00 -1.100112217012435e+00 -1.103832374788097e+00 -1.107549281877421e+00 + -1.111262614364874e+00 -1.114972053517157e+00 -1.118677283811066e+00 -1.122377997381517e+00 -1.126073890115035e+00 + -1.129764665246453e+00 -1.133450029987863e+00 -1.137129700112097e+00 -1.140803395884355e+00 -1.144470846978575e+00 + -1.148131787996958e+00 -1.151785963846005e+00 -1.155433124321719e+00 -1.159073028473816e+00 -1.162705440550504e+00 + -1.166330136340245e+00 -1.169946897198408e+00 -1.173555515207745e+00 -1.177155787675114e+00 -1.180747522076412e+00 + -1.184330531453910e+00 -1.187904640946331e+00 -1.191469681045491e+00 -1.195025491559137e+00 -1.198571917630371e+00 + -1.202108816427798e+00 -1.205636050425976e+00 -1.209153491297797e+00 -1.212661015717853e+00 -1.216158511169199e+00 + -1.219645870103956e+00 -1.223122994042052e+00 -1.226589789250444e+00 -1.230046171916402e+00 -1.233492062734542e+00 + -1.236927390508550e+00 -1.240352088211073e+00 -1.243766097381527e+00 -1.247169363751694e+00 -1.250561841256042e+00 + -1.253943487695246e+00 -1.257314268132119e+00 -1.260674151007197e+00 -1.264023111009775e+00 -1.267361126327042e+00 + -1.270688182889021e+00 -1.274004269717549e+00 -1.277309380458899e+00 -1.280603511471348e+00 -1.283886665336751e+00 + -1.287158847447705e+00 -1.290420068216200e+00 -1.293670340397085e+00 -1.296909681097245e+00 -1.300138109654688e+00 + -1.303355649979877e+00 -1.306562327924205e+00 -1.309758172530325e+00 -1.312943214678930e+00 -1.316117489411603e+00 + -1.319281033477409e+00 -1.322433886294459e+00 -1.325576088655014e+00 -1.328707684178879e+00 -1.331828717822939e+00 + -1.334939237064845e+00 -1.338039290534788e+00 -1.341128928952336e+00 -1.344208204044806e+00 -1.347277169481128e+00 + -1.350335879836220e+00 -1.353384391367341e+00 -1.356422761075585e+00 -1.359451047255056e+00 -1.362469308854003e+00 + -1.365477606144248e+00 -1.368475999956682e+00 -1.371464552034891e+00 -1.374443324607048e+00 -1.377412380926959e+00 + -1.380371784452904e+00 -1.383321598435415e+00 -1.386261886043311e+00 -1.389192710326296e+00 -1.392114134331963e+00 + -1.395026221218571e+00 -1.397929034013782e+00 -1.400822635112213e+00 -1.403707086730599e+00 -1.406582451007194e+00 + -1.409448790047375e+00 -1.412306165903488e+00 -1.415154640386279e+00 -1.417994274393129e+00 -1.420825128672226e+00 + -1.423647264288326e+00 -1.426460742270041e+00 -1.429265623184807e+00 -1.432061967292326e+00 -1.434849834082543e+00 + -1.437629282863016e+00 -1.440400372981510e+00 -1.443163163644870e+00 -1.445917713456040e+00 -1.448664080745027e+00 + -1.451402323353998e+00 -1.454132498983212e+00 -1.456854665253158e+00 -1.459568879518891e+00 -1.462275198153495e+00 + -1.464973677286479e+00 -1.467664373054985e+00 -1.470347341460922e+00 -1.473022637957602e+00 -1.475690317602213e+00 + -1.478350434416031e+00 -1.481003042251009e+00 -1.483648195317718e+00 -1.486285947650543e+00 -1.488916352220507e+00 + -1.491539461636770e+00 -1.494155328124374e+00 -1.496764003712290e+00 -1.499365540029296e+00 -1.501959988475343e+00 + -1.504547399935251e+00 -1.507127824972320e+00 -1.509701313378898e+00 -1.512267914702716e+00 -1.514827678283996e+00 + -1.517380653263305e+00 -1.519926888190102e+00 -1.522466431291609e+00 -1.524999330097196e+00 -1.527525631932397e+00 + -1.530045384005255e+00 -1.532558633226744e+00 -1.535065425437065e+00 -1.537565806237489e+00 -1.540059821344337e+00 + -1.542547516227056e+00 -1.545028935252552e+00 -1.547504122520188e+00 -1.549973122161691e+00 -1.552435978060152e+00 + -1.554892733071735e+00 -1.557343429814709e+00 -1.559788110982664e+00 -1.562226819032855e+00 -1.564659595401864e+00 + -1.567086481207361e+00 -1.569507517312065e+00 -1.571922744465970e+00 -1.574332203223133e+00 -1.576735933784567e+00 + -1.579133975135047e+00 -1.581526366095511e+00 -1.583913146047792e+00 -1.586294354132112e+00 -1.588670027961349e+00 + -1.591040204840321e+00 -1.593404922368944e+00 -1.595764217997401e+00 -1.598118128281829e+00 -1.600466689560657e+00 + -1.602809938195509e+00 -1.605147910317183e+00 -1.607480641109968e+00 -1.609808165462235e+00 -1.612130518025190e+00 + -1.614447733364541e+00 -1.616759845941160e+00 -1.619066889913862e+00 -1.621368898338053e+00 -1.623665904067572e+00 + -1.625957940253400e+00 -1.628245039905108e+00 -1.630527235169479e+00 -1.632804557955816e+00 -1.635077040086276e+00 + -1.637344713164072e+00 -1.639607608003776e+00 -1.641865755216986e+00 -1.644119185392045e+00 -1.646367929030376e+00 + -1.648612016308968e+00 -1.650851477080719e+00 -1.653086340226579e+00 -1.655316634503563e+00 -1.657542389144867e+00 + -1.659763633269537e+00 -1.661980395063818e+00 -1.664192702419508e+00 -1.666400582983419e+00 -1.668604064251645e+00 + -1.670803173362428e+00 -1.672997937236383e+00 -1.675188382281491e+00 -1.677374534802169e+00 -1.679556421201192e+00 + -1.681734067628149e+00 -1.683907499121518e+00 -1.686076740528519e+00 -1.688241817042459e+00 -1.690402753749855e+00 + -1.692559574964003e+00 -1.694712304797627e+00 -1.696860967334408e+00 -1.699005586454806e+00 -1.701146185255449e+00 + -1.703282786721620e+00 -1.705415414177082e+00 -1.707544090831449e+00 -1.709668839099297e+00 -1.711789681156861e+00 + -1.713906639022084e+00 -1.716019734585396e+00 -1.718128989385494e+00 -1.720234424849230e+00 -1.722336062307809e+00 + -1.724433922917529e+00 -1.726528027230686e+00 -1.728618395721282e+00 -1.730705049154116e+00 -1.732788008101886e+00 + -1.734867292078088e+00 -1.736942920442919e+00 -1.739014913002594e+00 -1.741083289547465e+00 -1.743148069358425e+00 + -1.745209271450225e+00 -1.747266914282488e+00 -1.749321016270471e+00 -1.751371596207075e+00 -1.753418672811714e+00 + -1.755462264132180e+00 -1.757502388000569e+00 -1.759539062057792e+00 -1.761572303881055e+00 -1.763602130983907e+00 + -1.765628560778196e+00 -1.767651610332621e+00 -1.769671296580689e+00 -1.771687636258316e+00 -1.773700645994041e+00 + -1.775710342184503e+00 -1.777716741146727e+00 -1.779719859111176e+00 -1.781719712181211e+00 -1.783716316038327e+00 + -1.785709686327057e+00 -1.787699838965949e+00 -1.789686789700248e+00 -1.791670553307960e+00 -1.793651144443631e+00 + -1.795628578235185e+00 -1.797602869852874e+00 -1.799574034162875e+00 -1.801542085839167e+00 -1.803507039091021e+00 + -1.805468908052258e+00 -1.807427707019619e+00 -1.809383450209764e+00 -1.811336151356113e+00 -1.813285824110837e+00 + -1.815232482284336e+00 -1.817176139592257e+00 -1.819116809213001e+00 -1.821054504262256e+00 -1.822989238142106e+00 + -1.824921024174149e+00 -1.826849875071642e+00 -1.828775803432498e+00 -1.830698822001605e+00 -1.832618943490715e+00 + -1.834536180332052e+00 -1.836450544855570e+00 -1.838362049261658e+00 -1.840270705693083e+00 -1.842176526191684e+00 + -1.844079522732226e+00 -1.845979707122125e+00 -1.847877091069540e+00 -1.849771686052976e+00 -1.851663503515020e+00 + -1.853552554984233e+00 -1.855438851906239e+00 -1.857322405308933e+00 -1.859203226114476e+00 -1.861081325239847e+00 + -1.862956713608023e+00 -1.864829402171162e+00 -1.866699401811557e+00 -1.868566723102871e+00 -1.870431376467943e+00 + -1.872293372034969e+00 -1.874152719980291e+00 -1.876009430967454e+00 -1.877863515541558e+00 -1.879714983286677e+00 + -1.881563843740828e+00 -1.883410107218835e+00 -1.885253783963326e+00 -1.887094883151373e+00 -1.888933413891583e+00 + -1.890769386084288e+00 -1.892602809677417e+00 -1.894433694017575e+00 -1.896262048252058e+00 -1.898087881332244e+00 + -1.899911202238771e+00 -1.901732020265218e+00 -1.903550344662578e+00 -1.905366184198560e+00 -1.907179547502340e+00 + -1.908990443132265e+00 -1.910798879695625e+00 -1.912604866066330e+00 -1.914408411061036e+00 -1.916209523000752e+00 + -1.918008210058423e+00 -1.919804480310377e+00 -1.921598341888620e+00 -1.923389803244497e+00 -1.925178872754823e+00 + -1.926965558178970e+00 -1.928749867237572e+00 -1.930531808113790e+00 -1.932311388923252e+00 -1.934088617048956e+00 + -1.935863499807747e+00 -1.937636044984464e+00 -1.939406260367225e+00 -1.941174153289245e+00 -1.942939731044444e+00 + -1.944703001224463e+00 -1.946463971324967e+00 -1.948222648160018e+00 -1.949979038559213e+00 -1.951733150095908e+00 + -1.953484990331042e+00 -1.955234566032130e+00 -1.956981883796339e+00 -1.958726950332857e+00 -1.960469772453529e+00 + -1.962210357268799e+00 -1.963948711773954e+00 -1.965684842205069e+00 -1.967418754747339e+00 -1.969150456141664e+00 + -1.970879953151972e+00 -1.972607252078582e+00 -1.974332359180596e+00 -1.976055281015821e+00 -1.977776024078765e+00 + -1.979494594312026e+00 -1.981210997612849e+00 -1.982925240248993e+00 -1.984637328483028e+00 -1.986347268186276e+00 + -1.988055065135925e+00 -1.989760725123873e+00 -1.991464254028801e+00 -1.993165658061782e+00 -1.994864943305917e+00 + -1.996562115000000e+00 -1.998257178352118e+00 -1.999950139291834e+00 -2.001641003786081e+00 -2.003329777229788e+00 + -2.005016464899233e+00 -2.006701072168050e+00 -2.008383604435580e+00 -2.010064067106614e+00 -2.011742465557514e+00 + -2.013418805045480e+00 -2.015093090790721e+00 -2.016765327984645e+00 -2.018435521788566e+00 -2.020103677272243e+00 + -2.021769799450648e+00 -2.023433893211152e+00 -2.025095963440481e+00 -2.026756015150358e+00 -2.028414053372033e+00 + -2.030070083089858e+00 -2.031724109167109e+00 -2.033376136029651e+00 -2.035026168111125e+00 -2.036674210313675e+00 + -2.038320267543339e+00 -2.039964344253219e+00 -2.041606444873179e+00 -2.043246574193053e+00 -2.044884736927830e+00 + -2.046520937133174e+00 -2.048155178894251e+00 -2.049787467073582e+00 -2.051417806490505e+00 -2.053046201014273e+00 + -2.054672654449746e+00 -2.056297171294283e+00 -2.057919756136151e+00 -2.059540413234731e+00 -2.061159146675282e+00 + -2.062775960175462e+00 -2.064390857518372e+00 -2.066003843116474e+00 -2.067614921377108e+00 -2.069224096057763e+00 + -2.070831370870978e+00 -2.072436749999330e+00 -2.074040237602111e+00 -2.075641837275425e+00 -2.077241552544816e+00 + -2.078839387216755e+00 -2.080435345153352e+00 -2.082029430158359e+00 -2.083621645967183e+00 -2.085211996100236e+00 + -2.086800484128769e+00 -2.088387114042385e+00 -2.089971889736969e+00 -2.091554814315162e+00 -2.093135890870968e+00 + -2.094715123257078e+00 -2.096292515329556e+00 -2.097868070199266e+00 -2.099441790929908e+00 -2.101013681141721e+00 + -2.102583744473837e+00 -2.104151984084442e+00 -2.105718403103298e+00 -2.107283005027429e+00 -2.108845793364375e+00 + -2.110406771296459e+00 -2.111965941910842e+00 -2.113523308239219e+00 -2.115078873308544e+00 -2.116632640182243e+00 + -2.118184611994434e+00 -2.119734792125529e+00 -2.121283183887100e+00 -2.122829790069075e+00 -2.124374613416041e+00 + -2.125917657012881e+00 -2.127458923984833e+00 -2.128998417278243e+00 -2.130536139767974e+00 -2.132072094221826e+00 + -2.133606283403289e+00 -2.135138710165668e+00 -2.136669377406417e+00 -2.138198288109766e+00 -2.139725445172409e+00 + -2.141250851054121e+00 -2.142774508270670e+00 -2.144296419998729e+00 -2.145816589318136e+00 -2.147335018260493e+00 + -2.148851708859426e+00 -2.150366664204882e+00 -2.151879887475646e+00 -2.153391381149525e+00 -2.154901147551277e+00 + -2.156409189094421e+00 -2.157915508301146e+00 -2.159420108039566e+00 -2.160922991060322e+00 -2.162424159298261e+00 + -2.163923614721020e+00 -2.165421360243191e+00 -2.166917398765767e+00 -2.168411732188371e+00 -2.169904362385663e+00 + -2.171395292133801e+00 -2.172884524283159e+00 -2.174372061079477e+00 -2.175857904621596e+00 -2.177342057025400e+00 + -2.178824520458782e+00 -2.180305297280612e+00 -2.181784389836284e+00 -2.183261800226323e+00 -2.184737530553230e+00 + -2.186211583172279e+00 -2.187683960396664e+00 -2.189154664118480e+00 -2.190623696232450e+00 -2.192091059064924e+00 + -2.193556754973807e+00 -2.195020786011611e+00 -2.196483154140098e+00 -2.197943861263397e+00 -2.199402909290797e+00 + -2.200860300209873e+00 -2.202316036078389e+00 -2.203770119156592e+00 -2.205222551620105e+00 -2.206673335103553e+00 + -2.208122471221687e+00 -2.209569962050753e+00 -2.211015809743800e+00 -2.212460016299604e+00 -2.213902583604158e+00 + -2.215343513246597e+00 -2.216782806815468e+00 -2.218220466193829e+00 -2.219656493330310e+00 -2.221090890141300e+00 + -2.222523658493742e+00 -2.223954800089009e+00 -2.225384316635711e+00 -2.226812210036953e+00 -2.228238482128524e+00 + -2.229663134282465e+00 -2.231086167933421e+00 -2.232507585230206e+00 -2.233927388263609e+00 -2.235345578178182e+00 + -2.236762156112363e+00 -2.238177124126393e+00 -2.239590484325721e+00 -2.241002238074839e+00 -2.242412386688506e+00 + -2.243820932023517e+00 -2.245227875877045e+00 -2.246633219265731e+00 -2.248036963296034e+00 -2.249439110214208e+00 + -2.250839662216949e+00 -2.252238620162919e+00 -2.253635984842608e+00 -2.255031758111861e+00 -2.256425941987018e+00 + -2.257818538061035e+00 -2.259209547728066e+00 -2.260598972010440e+00 -2.261986811976363e+00 -2.263373069249392e+00 + -2.264757745520950e+00 -2.266140842198597e+00 -2.267522360622610e+00 -2.268902302148032e+00 -2.270280668153553e+00 + -2.271657460097697e+00 -2.273032679375423e+00 -2.274406327047590e+00 -2.275778404191426e+00 -2.277148912283742e+00 + -2.278517852852843e+00 -2.279885227233438e+00 -2.281251036662961e+00 -2.282615282183361e+00 -2.283977964870765e+00 + -2.285339086133513e+00 -2.286698647429660e+00 -2.288056650083893e+00 -2.289413095312870e+00 -2.290767984034498e+00 + -2.292121317209354e+00 -2.293473096267451e+00 -2.294823322630535e+00 -2.296171997217860e+00 -2.297519120939147e+00 + -2.298864695168495e+00 -2.300208721271999e+00 -2.301551200119357e+00 -2.302892132586471e+00 -2.304231520070443e+00 + -2.305569363951571e+00 -2.306905665021753e+00 -2.308240424043668e+00 -2.309573642251534e+00 -2.310905320943594e+00 + -2.312235461202651e+00 -2.313564064009707e+00 -2.314891130153991e+00 -2.316216660462560e+00 -2.317540656105554e+00 + -2.318863118293744e+00 -2.320184048057342e+00 -2.321503446385586e+00 -2.322821314284393e+00 -2.324137652689092e+00 + -2.325452462235987e+00 -2.326765743634779e+00 -2.328077498187803e+00 -2.329387727168217e+00 -2.330696431139842e+00 + -2.332003610675342e+00 -2.333309267092103e+00 -2.334613401701304e+00 -2.335916015044585e+00 -2.337217107588464e+00 + -2.338516680268511e+00 -2.339814734134101e+00 -2.341111270220800e+00 -2.342406289434137e+00 -2.343699792173311e+00 + -2.344991778936741e+00 -2.346282251126043e+00 -2.347571210092017e+00 -2.348858656078995e+00 -2.350144589310363e+00 + -2.351429011032167e+00 -2.352711922533504e+00 -2.353993324252988e+00 -2.355273216536063e+00 -2.356551600205969e+00 + -2.357828476165661e+00 -2.359103845159169e+00 -2.360377707896761e+00 -2.361650065112589e+00 -2.362920917562625e+00 + -2.364190266066228e+00 -2.365458111389245e+00 -2.366724454020086e+00 -2.367989294422349e+00 -2.369252633237819e+00 + -2.370514471195048e+00 -2.371774809191487e+00 -2.373033648052395e+00 -2.374290988145372e+00 -2.375546829856004e+00 + -2.376801174099476e+00 -2.378054021758188e+00 -2.379305373053798e+00 -2.380555228228685e+00 -2.381803588268867e+00 + -2.383050454170042e+00 -2.384295826222999e+00 -2.385539704659158e+00 -2.386782090177350e+00 -2.388022983519428e+00 + -2.389262385131917e+00 -2.390500295440986e+00 -2.391736715086700e+00 -2.392971644747536e+00 -2.394205085041701e+00 + -2.395437036486230e+00 -2.396667499253712e+00 -2.397896473568759e+00 -2.399123960208524e+00 -2.400349959968320e+00 + -2.401574473163553e+00 -2.402797500049246e+00 -2.404019041118798e+00 -2.405239096931802e+00 -2.406457668074259e+00 + -2.407674755052769e+00 -2.408890358029935e+00 -2.410104477201394e+00 -2.411317113238899e+00 -2.412528266823138e+00 + -2.413737938194389e+00 -2.414946127524263e+00 -2.416152835150093e+00 -2.417358061488310e+00 -2.418561807106014e+00 + -2.419764072540869e+00 -2.420964858062149e+00 -2.422164163883997e+00 -2.423361990268478e+00 -2.424558337539998e+00 + -2.425753206224426e+00 -2.426946596778449e+00 -2.428138509180588e+00 -2.429328943436301e+00 -2.430517900136966e+00 + -2.431705379929064e+00 -2.432891383093559e+00 -2.434075909789072e+00 -2.435258960050367e+00 -2.436440534002261e+00 + -2.437620632253666e+00 -2.438799255363957e+00 -2.439976403210287e+00 -2.441152075652963e+00 -2.442326273167121e+00 + -2.443498996281469e+00 -2.444670245124171e+00 -2.445840019720089e+00 -2.447008320081434e+00 -2.448175146330043e+00 + -2.449340499038912e+00 -2.450504378726154e+00 -2.451666785239187e+00 -2.452827718349615e+00 -2.453987178196479e+00 + -2.455145165027037e+00 -2.456301679153984e+00 -2.457456720843679e+00 -2.458610290111703e+00 -2.459762386895362e+00 + -2.460913011069636e+00 -2.462062162618941e+00 -2.463209842027783e+00 -2.464356049701044e+00 -2.465500785225038e+00 + -2.466644048210323e+00 -2.467785839182998e+00 -2.468926158651886e+00 -2.470065006141172e+00 -2.471202381154697e+00 + -2.472338284099561e+00 -2.473472715451581e+00 -2.474605675058163e+00 -2.475737162666682e+00 -2.476867178252799e+00 + -2.477995721814551e+00 -2.479122793211214e+00 -2.480248392312651e+00 -2.481372519169843e+00 -2.482495173828069e+00 + -2.483616356128687e+00 -2.484736065895716e+00 -2.485854303087743e+00 -2.486971067738408e+00 -2.488086360047014e+00 + -2.489200180083995e+00 -2.490312527238630e+00 -2.491423400907520e+00 -2.492532801197714e+00 -2.493640728315912e+00 + -2.494747182157012e+00 -2.495852162518061e+00 -2.496955669116524e+00 -2.498057701682506e+00 -2.499158260076250e+00 + -2.500257344205291e+00 -2.501354954036191e+00 -2.502451089487258e+00 -2.503545750224782e+00 -2.504638935878569e+00 + -2.505730646184535e+00 -2.506820880947837e+00 -2.507909640144502e+00 -2.508996923692245e+00 -2.510082731104683e+00 + -2.511167061905791e+00 -2.512249916065080e+00 -2.513331293568936e+00 -2.514411194025691e+00 -2.515489616993924e+00 + -2.516566562211253e+00 -2.517642029416175e+00 -2.518716018171676e+00 -2.519788528087044e+00 -2.520859559132313e+00 + -2.521929111272669e+00 -2.522997184093166e+00 -2.524063777123772e+00 -2.525128890054233e+00 -2.526192522577199e+00 + -2.527254674237163e+00 -2.528315344566595e+00 -2.529374533198041e+00 -2.530432239809303e+00 -2.531488464159136e+00 + -2.532543206017777e+00 -2.533596465120445e+00 -2.534648241083385e+00 -2.535698533081969e+00 -2.536747340380982e+00 + -2.537794663043710e+00 -2.538840501172024e+00 -2.539884854223596e+00 -2.540927721482817e+00 -2.541969102185147e+00 + -2.543008995720672e+00 -2.544047402146914e+00 -2.545084321505733e+00 -2.546119753108897e+00 -2.547153696148885e+00 + -2.548186150071097e+00 -2.549217114438763e+00 -2.550246589033513e+00 -2.551274573561718e+00 -2.552301067210345e+00 + -2.553326069170913e+00 -2.554349579172571e+00 -2.555371597001575e+00 -2.556392122135012e+00 -2.557411153995589e+00 + -2.558428692097672e+00 -2.559444735964176e+00 -2.560459285060548e+00 -2.561472338773803e+00 -2.562483896234721e+00 + -2.563493956701396e+00 -2.564502520197407e+00 -2.565509586690590e+00 -2.566515155160310e+00 -2.567519224484451e+00 + -2.568521794123430e+00 -2.569522863722881e+00 -2.570522433086768e+00 -2.571520501879673e+00 -2.572517069050324e+00 + -2.573512133570669e+00 -2.574505695221420e+00 -2.575497753777856e+00 -2.576488308184784e+00 -2.577477357385580e+00 + -2.578464901148367e+00 -2.579450939304331e+00 -2.580435471112168e+00 -2.581418495678755e+00 -2.582400012076188e+00 + -2.583380019545771e+00 -2.584358518040427e+00 -2.585335507388502e+00 -2.586310986208430e+00 -2.587284953146766e+00 + -2.588257408172476e+00 -2.589228351266687e+00 -2.590197781136742e+00 -2.591165696464199e+00 -2.592132097101227e+00 + -2.593096982965479e+00 -2.594060353065933e+00 -2.595022206300420e+00 -2.595982542030859e+00 -2.596941359648237e+00 + -2.597898658195753e+00 -2.598854436786441e+00 -2.599808695160485e+00 -2.600761432999720e+00 -2.601712649125437e+00 + -2.602662342322502e+00 -2.603610512090611e+00 -2.604557157983472e+00 -2.605502279056006e+00 -2.606445874333086e+00 + -2.607387943218189e+00 -2.608328485131743e+00 -2.609267499183389e+00 -2.610204984445080e+00 -2.611140940148811e+00 + -2.612075365584592e+00 -2.613008260114454e+00 -2.613939623006402e+00 -2.614869453080320e+00 -2.615797749224179e+00 + -2.616724511046408e+00 -2.617649738126216e+00 -2.618573429205448e+00 -2.619495583026503e+00 -2.620416199171340e+00 + -2.621335277249019e+00 -2.622252816137456e+00 -2.623168814653865e+00 -2.624083272103795e+00 -2.624996187859330e+00 + -2.625907561070358e+00 -2.626817390806325e+00 -2.627725676037143e+00 -2.628632415761536e+00 -2.629537609193020e+00 + -2.630441255587996e+00 -2.631343354159609e+00 -2.632243904045731e+00 -2.633142904126422e+00 -2.634040353337229e+00 + -2.634936251093461e+00 -2.635830596765059e+00 -2.636723389060725e+00 -2.637614626713354e+00 -2.638504309213838e+00 + -2.639392436080191e+00 -2.640279006180904e+00 -2.641164018251881e+00 -2.642047471148195e+00 -2.642929363899640e+00 + -2.643809696115713e+00 -2.644688467316341e+00 -2.645565676083456e+00 -2.646441320932559e+00 -2.647315401051427e+00 + -2.648187915755844e+00 -2.649058864201336e+00 -2.649928245427330e+00 -2.650796058169106e+00 -2.651662301248424e+00 + -2.652526974137104e+00 -2.653390076247662e+00 -2.654251606105329e+00 -2.655111562238285e+00 -2.655969944073783e+00 + -2.656826751086593e+00 -2.657681982042466e+00 -2.658535635661370e+00 -2.659387711189145e+00 -2.660238207837736e+00 + -2.661087124157626e+00 -2.661934458755756e+00 -2.662780211126336e+00 -2.663624380741185e+00 -2.664466966095276e+00 + -2.665307965694397e+00 -2.666147379064445e+00 -2.666985205710447e+00 -2.667821444033845e+00 -2.668656092405469e+00 + -2.669489150177272e+00 -2.670320616801000e+00 -2.671150491146469e+00 -2.671978771965001e+00 -2.672805458115896e+00 + -2.673630548501148e+00 -2.674454042085555e+00 -2.675275937884819e+00 -2.676096235055446e+00 -2.676914932653945e+00 + -2.677732029196031e+00 -2.678547523253807e+00 -2.679361414165717e+00 -2.680173701269736e+00 -2.680984383135636e+00 + -2.681793458321363e+00 -2.682600926105787e+00 -2.683406785794135e+00 -2.684211036076172e+00 -2.685013675548027e+00 + -2.685814703046789e+00 -2.686614117528503e+00 -2.687411918184072e+00 -2.688208104155523e+00 -2.689002674154484e+00 + -2.689795626844247e+00 -2.690586961125131e+00 -2.691376675931391e+00 -2.692164770096012e+00 -2.692951242468673e+00 + -2.693736092067127e+00 -2.694519317933390e+00 -2.695300919038479e+00 -2.696080894259941e+00 -2.696859242172434e+00 + -2.697635961409562e+00 -2.698411051143577e+00 -2.699184510529523e+00 -2.699956338114957e+00 -2.700726532498006e+00 + -2.701495093086574e+00 -2.702262019208106e+00 -2.703027309058428e+00 -2.703790960874505e+00 -2.704552974189474e+00 + -2.705313348537555e+00 -2.706072082161119e+00 -2.706829173257158e+00 -2.707584621133000e+00 -2.708338425191227e+00 + -2.709090584105120e+00 -2.709841096442358e+00 -2.710589961077480e+00 -2.711337176962203e+00 -2.712082743050078e+00 + -2.712826658235913e+00 -2.713568921177743e+00 -2.714309530527581e+00 -2.715048485150131e+00 -2.715785783993005e+00 + -2.716521426122757e+00 -2.717255410569124e+00 -2.717987736095623e+00 -2.718718401385704e+00 -2.719447405068731e+00 + -2.720174745881186e+00 -2.720900423042079e+00 -2.721624435690877e+00 -2.722346782166338e+00 -2.723067460855530e+00 + -2.723786471139474e+00 -2.724503812410580e+00 -2.725219483112852e+00 -2.725933481634188e+00 -2.726645807086471e+00 + -2.727356458650697e+00 -2.728065435060333e+00 -2.728772734953498e+00 -2.729478357034439e+00 -2.730182300087997e+00 + -2.730884563155262e+00 -2.731585145263588e+00 -2.732284045129153e+00 -2.732981261442558e+00 -2.733676793103288e+00 + -2.734370639038562e+00 -2.735062798077667e+00 -2.735753269071118e+00 -2.736442051052291e+00 -2.737129142959769e+00 + -2.737814543170111e+00 -2.738498250131983e+00 -2.739180263144520e+00 -2.739860581563291e+00 -2.740539204119172e+00 + -2.741216129405992e+00 -2.741891356094071e+00 -2.742564882952538e+00 -2.743236709069217e+00 -2.743906833523784e+00 + -2.744575255044610e+00 -2.745241972311204e+00 -2.745906984158941e+00 -2.746570289467025e+00 -2.747231887134115e+00 + -2.747891776057501e+00 -2.748549955109537e+00 -2.749206423158993e+00 -2.749861179085207e+00 -2.750514221765824e+00 + -2.751165550061125e+00 -2.751815162841771e+00 -2.752463059037292e+00 -2.753109237554207e+00 -2.753753697148108e+00 + -2.754396436622574e+00 -2.755037455124055e+00 -2.755676751755156e+00 -2.756314325100252e+00 -2.756950173779785e+00 + -2.757584297076699e+00 -2.758216694281619e+00 -2.758847364053396e+00 -2.759476305000437e+00 -2.760103516161140e+00 + -2.760728996610216e+00 -2.761352745137616e+00 -2.761974760563591e+00 -2.762595042114344e+00 -2.763213589016364e+00 + -2.763830400091322e+00 -2.764445474113015e+00 -2.765058810068553e+00 -2.765670407011266e+00 -2.766280264046035e+00 + -2.766888380201558e+00 -2.767494754150214e+00 -2.768099384646222e+00 -2.768702271127474e+00 -2.769303413030783e+00 + -2.769902809104988e+00 -2.770500458053093e+00 -2.771096359082754e+00 -2.771690511445131e+00 -2.772282914060774e+00 + -2.772873565847032e+00 -2.773462466039048e+00 -2.774049613856528e+00 -2.774635008139637e+00 -2.775218647762881e+00 + -2.775800532117688e+00 -2.776380660598635e+00 -2.776959032095993e+00 -2.777535645483684e+00 -2.778110500074552e+00 + -2.778683595228330e+00 -2.779254930053368e+00 -2.779824503611819e+00 -2.780392315032438e+00 -2.780958363471580e+00 + -2.781522648129417e+00 -2.782085168237396e+00 -2.782645923108263e+00 -2.783204912027138e+00 -2.783762134087364e+00 + -2.784317588365996e+00 -2.784871274066723e+00 -2.785423190471204e+00 -2.785973337046338e+00 -2.786521713227682e+00 + -2.787068318140169e+00 -2.787613150927563e+00 -2.788156211119559e+00 -2.788697498201977e+00 -2.789237011099205e+00 + -2.789774748795882e+00 -2.790310711079109e+00 -2.790844897774500e+00 -2.791377308059270e+00 -2.791907941021321e+00 + -2.792436796039691e+00 -2.792963872575855e+00 -2.793489170129877e+00 -2.794012688183935e+00 -2.794534426110070e+00 + -2.795054383269529e+00 -2.795572559090522e+00 -2.796088953089790e+00 -2.796603565071232e+00 -2.797116394731634e+00 + -2.797627441052200e+00 -2.798136703104035e+00 -2.798644181033428e+00 -2.799149874997305e+00 -2.799653784119957e+00 + -2.800155907491874e+00 -2.800656245100958e+00 -2.801154796934787e+00 -2.801651562082218e+00 -2.802146539693571e+00 + -2.802639730063738e+00 -2.803131133478864e+00 -2.803620749045517e+00 -2.804108575856467e+00 -2.804594614128865e+00 + -2.805078864118387e+00 -2.805561325110418e+00 -2.806041996375143e+00 -2.806520878092229e+00 -2.806997970489045e+00 + -2.807473273074300e+00 -2.807946785293329e+00 -2.808418507056632e+00 -2.808888438355500e+00 -2.809356579039224e+00 + -2.809822928959404e+00 -2.810287488118900e+00 -2.810750256531227e+00 -2.811211234101264e+00 -2.811670420689050e+00 + -2.812127816083888e+00 -2.812583420143096e+00 -2.813037233066774e+00 -2.813489255065615e+00 -2.813939486049919e+00 + -2.814387925944586e+00 -2.814834575033324e+00 -2.815279433542374e+00 -2.815722501109326e+00 -2.816163777438837e+00 + -2.816603263092504e+00 -2.817040958671196e+00 -2.817476864075942e+00 -2.817910979131784e+00 -2.818343304059641e+00 + -2.818773839208482e+00 -2.819202585043600e+00 -2.819629541969078e+00 -2.820054710027820e+00 -2.820478089265513e+00 + -2.820899680100151e+00 -2.821319482977751e+00 -2.821737498084143e+00 -2.822153725615352e+00 -2.822568166068396e+00 + -2.822980820018520e+00 -2.823391688052908e+00 -2.823800770674544e+00 -2.824208068037681e+00 -2.824613580315654e+00 + -2.825017308106835e+00 -2.825419252121360e+00 -2.825819413091381e+00 -2.826217791658008e+00 -2.826614388076187e+00 + -2.827009202624378e+00 -2.827402236061253e+00 -2.827793489256864e+00 -2.828182963046578e+00 -2.828570658171722e+00 + -2.828956575032161e+00 -2.829340714052488e+00 -2.829723076097664e+00 -2.830103662132774e+00 -2.830482473083023e+00 + -2.830859509823491e+00 -2.831234773068641e+00 -2.831608263528317e+00 -2.831979982054516e+00 -2.832349929557777e+00 + -2.832718107040651e+00 -2.833084515526141e+00 -2.833449156027042e+00 -2.833812029550204e+00 -2.834173137088914e+00 + -2.834532479620883e+00 -2.834890058075082e+00 -2.835245873448821e+00 -2.835599927061508e+00 -2.835952220243667e+00 + -2.836302754048190e+00 -2.836651529530672e+00 -2.836998548035129e+00 -2.837343810883671e+00 -2.837687319022324e+00 + -2.838029073490917e+00 -2.838369076080591e+00 -2.838707328586376e+00 -2.839043832067564e+00 -2.839378587474163e+00 + -2.839711596054793e+00 -2.840042859259108e+00 -2.840372379042276e+00 -2.840700157280677e+00 -2.841026195030013e+00 + -2.841350493343512e+00 -2.841673054085180e+00 -2.841993879190829e+00 -2.842312970072699e+00 -2.842630328108386e+00 + -2.842945955060471e+00 -2.843259852775203e+00 -2.843572023048496e+00 -2.843882467617769e+00 -2.844191188036773e+00 + -2.844498185884593e+00 -2.844803463025301e+00 -2.845107021413000e+00 -2.845408863076932e+00 -2.845708990020076e+00 + -2.846007404065244e+00 -2.846304107050338e+00 -2.846599101053807e+00 -2.846892388135785e+00 -2.847183970042619e+00 + -2.847473848570861e+00 -2.847762026031680e+00 -2.848048504803730e+00 -2.848333287020989e+00 -2.848616374754612e+00 + -2.848897770069131e+00 -2.849177475073159e+00 -2.849455492058227e+00 -2.849731823327478e+00 -2.850006471047571e+00 + -2.850279437434387e+00 -2.850550725037162e+00 -2.850820336439234e+00 -2.851088274026996e+00 -2.851354540133094e+00 + -2.851619137072155e+00 -2.851882067200814e+00 -2.852143333061782e+00 -2.852402937208544e+00 -2.852660882051651e+00 + -2.852917170055367e+00 -2.853171804041764e+00 -2.853424786850297e+00 -2.853676121032120e+00 -2.853925809140160e+00 + -2.854173854022716e+00 -2.854420258509995e+00 -2.854665025064492e+00 -2.854908156206457e+00 -2.855149655054884e+00 + -2.855389524765914e+00 -2.855627768045515e+00 -2.855864387531145e+00 -2.856099386036384e+00 -2.856332766480263e+00 + -2.856564532027491e+00 -2.856794685864488e+00 -2.857023231018833e+00 -2.857250170456676e+00 -2.857475507057297e+00 + -2.857699243787178e+00 -2.857921384048440e+00 -2.858141931205942e+00 -2.858360888039817e+00 -2.858578257403886e+00 + -2.858794043031427e+00 -2.859008248642304e+00 -2.859220877023269e+00 -2.859431930941042e+00 -2.859641414015340e+00 + -2.859849329964776e+00 -2.860055682050569e+00 -2.860260473522559e+00 -2.860463708042447e+00 -2.860665389218646e+00 + -2.860865520034553e+00 -2.861064103583913e+00 -2.861261144026887e+00 -2.861456645505078e+00 -2.861650611019446e+00 + -2.861843043539793e+00 -2.862033947051935e+00 -2.862223325674870e+00 -2.862411183044306e+00 -2.862597522669464e+00 + -2.862782348036900e+00 -2.862965662765951e+00 -2.863147471029718e+00 -2.863327776966641e+00 -2.863506584022756e+00 + -2.863683895649960e+00 -2.863859716016013e+00 -2.864034049304372e+00 -2.864206899045429e+00 -2.864378268816853e+00 + -2.864548163038503e+00 -2.864716586175495e+00 -2.864883542031795e+00 -2.865049034317118e+00 -2.865213067025303e+00 + -2.865375644227383e+00 -2.865536770019026e+00 -2.865696448531390e+00 -2.865854684012960e+00 -2.866011480747103e+00 + -2.866166843039399e+00 -2.866320775137251e+00 -2.866473281033156e+00 -2.866624364792500e+00 -2.866774031027124e+00 + -2.866922284373643e+00 -2.867069129021301e+00 -2.867214569108258e+00 -2.867358609015685e+00 -2.867501253183005e+00 + -2.867642506039625e+00 -2.867782372075631e+00 -2.867920856033839e+00 -2.868057962606175e+00 -2.868193696028257e+00 + -2.868328060561013e+00 -2.868461061022879e+00 -2.868592702303233e+00 -2.868722989017701e+00 -2.868851925722842e+00 + -2.868979517012722e+00 -2.869105767524959e+00 -2.869230682033886e+00 -2.869354265317122e+00 -2.869476522028743e+00 + -2.869597456891174e+00 -2.869717075023798e+00 -2.869835381525858e+00 -2.869952381019048e+00 -2.870068078133983e+00 + -2.870182478014490e+00 -2.870295585788873e+00 -2.870407406010122e+00 -2.870517943287246e+00 -2.870627203028626e+00 + -2.870735190678368e+00 -2.870841911024103e+00 -2.870947368779615e+00 -2.871051569019769e+00 -2.871154516959833e+00 + -2.871256218015620e+00 -2.871356677487263e+00 -2.871455900011655e+00 -2.871553890297982e+00 -2.871650654007871e+00 + -2.871746196881877e+00 -2.871840524023838e+00 -2.871933640394619e+00 -2.872025551019907e+00 -2.872116261043417e+00 + -2.872205776016155e+00 -2.872294101539941e+00 -2.872381243012580e+00 -2.872467205758066e+00 -2.872551995009178e+00 + -2.872635615995248e+00 -2.872718074023048e+00 -2.872799374482606e+00 -2.872879523019508e+00 -2.872958525324841e+00 + -2.873036387016140e+00 -2.873113113575017e+00 -2.873188710012942e+00 -2.873263181462381e+00 -2.873336534009911e+00 + -2.873408773769060e+00 -2.873479906007045e+00 -2.873549935889074e+00 -2.873618869018622e+00 -2.873686711126628e+00 + -2.873753468015626e+00 -2.873819145455355e+00 -2.873883749012791e+00 -2.873947284262238e+00 -2.874009757010115e+00 + -2.874071173064448e+00 -2.874131538007598e+00 -2.874190857408149e+00 -2.874249137005235e+00 -2.874306382592947e+00 + -2.874362600014657e+00 -2.874417795154723e+00 -2.874471974012172e+00 -2.874525142492177e+00 -2.874577306009839e+00 + -2.874628470067637e+00 -2.874678641007656e+00 -2.874727825164796e+00 -2.874776028005620e+00 -2.874823254939239e+00 + -2.874869512013286e+00 -2.874914805384953e+00 -2.874959141011137e+00 -2.875002524843012e+00 -2.875044963009132e+00 + -2.875086461553842e+00 -2.875127026007268e+00 -2.875166661990855e+00 -2.875205376005544e+00 -2.875243174521211e+00 + -2.875280063003956e+00 -2.875316046953741e+00 -2.875351133009737e+00 -2.875385327829893e+00 -2.875418637008044e+00 + -2.875451066029114e+00 -2.875482621006486e+00 -2.875513308222273e+00 -2.875543134005058e+00 -2.875572104616458e+00 + -2.875600226003760e+00 -2.875627504088381e+00 -2.875653945002586e+00 -2.875679554924722e+00 -2.875704340006628e+00 + -2.875728306365356e+00 -2.875751460005359e+00 -2.875773807024162e+00 -2.875795354004213e+00 -2.875816107441742e+00 + -2.875836073003188e+00 -2.875855256356105e+00 -2.875873664002281e+00 -2.875891302525273e+00 -2.875908178001488e+00 + -2.875924296429527e+00 -2.875939664003940e+00 -2.875954287022889e+00 -2.875968172003060e+00 -2.875981325374513e+00 + -2.875993753002293e+00 -2.876005460745149e+00 -2.876016455001635e+00 -2.876026742281703e+00 -2.876036329001085e+00 + -2.876045221511428e+00 -2.876053426002279e+00 -2.876060948682664e+00 -2.876067796001651e+00 -2.876073974394489e+00 + -2.876079490001126e+00 -2.876084348997735e+00 -2.876088558000703e+00 -2.876092123620084e+00 -2.876095052000378e+00 + -2.876097349275196e+00 -2.876099022000147e+00 -2.876100076780735e+00 -2.876100520000039e+00 -2.876100357977497e+00 + -2.876099597000405e+00 -2.876098243435337e+00 -2.876096303998139e+00 -2.876093785401991e+00 -2.876090694000126e+00 + -2.876087036076098e+00 -2.876082817994697e+00 -2.876078046153286e+00 -2.876072726998279e+00 -2.876066867041051e+00 + -2.876060473003754e+00 -2.876053551562065e+00 -2.876046108994973e+00 -2.876038151582050e+00 -2.876029686001908e+00 + -2.876020718975022e+00 -2.876011256990315e+00 -2.876001306494705e+00 -2.875990873998654e+00 -2.875979966015766e+00 + -2.875968589008655e+00 -2.875956749461299e+00 -2.875944453994101e+00 -2.875931709272467e+00 -2.875918522005370e+00 + -2.875904898821941e+00 -2.875890845988358e+00 -2.875876369796106e+00 -2.875861477000839e+00 -2.875846174460938e+00 + -2.875830468981534e+00 -2.875814367182402e+00 -2.875797874995170e+00 -2.875780998493851e+00 -2.875763745010153e+00 + -2.875746121853747e+00 -2.875728134988475e+00 -2.875709790337169e+00 -2.875691095004476e+00 -2.875672056151185e+00 + -2.875652679980860e+00 -2.875632972639220e+00 -2.875612940997824e+00 -2.875592591983200e+00 -2.875571932015899e+00 + -2.875550967463832e+00 -2.875529704990307e+00 -2.875508151305197e+00 -2.875486313009207e+00 -2.875464196688727e+00 + -2.875441808982035e+00 -2.875419156538716e+00 -2.875396246001703e+00 -2.875373083982446e+00 -2.875349676973115e+00 + -2.875326031456047e+00 -2.875302153993497e+00 -2.875278051224424e+00 -2.875253730014671e+00 -2.875229197164465e+00 + -2.875204458984698e+00 -2.875179521740897e+00 -2.875154392006447e+00 -2.875129076470253e+00 -2.875103581975416e+00 + -2.875077915323747e+00 -2.875052082997684e+00 -2.875026091410789e+00 -2.874999947020509e+00 -2.874973656330889e+00 + -2.874947225988491e+00 -2.874920662667701e+00 -2.874893973011697e+00 -2.874867163623783e+00 -2.874840240978976e+00 + -2.874813211559227e+00 -2.874786082002508e+00 -2.874758858958694e+00 -2.874731548969249e+00 -2.874704158521300e+00 + -2.874676693993052e+00 -2.874649161850167e+00 -2.874621569017096e+00 -2.874593922351292e+00 -2.874566227983435e+00 + -2.874538491996276e+00 -2.874510721007613e+00 -2.874482921761722e+00 -2.874455100973768e+00 -2.874427265275985e+00 + -2.874399420998023e+00 -2.874371574431975e+00 -2.874343732022288e+00 -2.874315900299783e+00 -2.874288085988434e+00 + -2.874260295776052e+00 -2.874232536012641e+00 -2.874204812974258e+00 -2.874177132978955e+00 -2.874149502426689e+00 + -2.874121928003048e+00 -2.874094416390038e+00 -2.874066973969692e+00 -2.874039607056358e+00 -2.874012321993617e+00 + -2.873985125156578e+00 -2.873958023017241e+00 -2.873931022092817e+00 -2.873904128984454e+00 -2.873877350227203e+00 + -2.873850692007775e+00 -2.873824160475146e+00 -2.873797761975665e+00 -2.873771502947487e+00 -2.873745389998629e+00 + -2.873719429664607e+00 -2.873693628021065e+00 -2.873667991196405e+00 -2.873642525989910e+00 -2.873617239207638e+00 + -2.873592137011854e+00 -2.873567225478465e+00 -2.873542510981722e+00 -2.873517999984164e+00 -2.873493699003122e+00 + -2.873469614539558e+00 -2.873445752974173e+00 -2.873422120664412e+00 -2.873398723994974e+00 -2.873375569341346e+00 + -2.873352663014937e+00 -2.873330011368907e+00 -2.873307620987516e+00 -2.873285498440290e+00 -2.873263650006746e+00 + -2.873242081977908e+00 -2.873220800980854e+00 -2.873199813610778e+00 -2.873179125999297e+00 -2.873158744269642e+00 + -2.873138674975094e+00 -2.873118924733721e+00 -2.873099499992696e+00 -2.873080407078925e+00 -2.873061652009151e+00 + -2.873043240951156e+00 -2.873025180987050e+00 -2.873007479104932e+00 -2.872990141002529e+00 -2.872973172348110e+00 + -2.872956579982463e+00 -2.872940370832477e+00 -2.872924550996914e+00 -2.872909126514257e+00 -2.872894104009989e+00 + -2.872879490127201e+00 -2.872865290992410e+00 -2.872851512733995e+00 -2.872838162004323e+00 -2.872825245427317e+00 + -2.872812768989124e+00 -2.872800738661925e+00 -2.872789160999820e+00 -2.872778042642130e+00 -2.872767389987160e+00 + -2.872757209355336e+00 -2.872747506996586e+00 -2.872738289140315e+00 -2.872729562004331e+00 -2.872721331833777e+00 + -2.872713604994726e+00 -2.872706387896571e+00 -2.872699687001068e+00 -2.872693508692679e+00 -2.872687858994343e+00 + -2.872682743943764e+00 -2.872678169999229e+00 -2.872674143639194e+00 -2.872670671002211e+00 -2.872667758252759e+00 + -2.872665411998920e+00 -2.872663638727966e+00 -2.872662444000314e+00 -2.872661833458480e+00 -2.872661814000242e+00 + -2.872662392564575e+00 -2.872663574999996e+00 -2.872665367034357e+00 -2.872667775003300e+00 -2.872670805307676e+00 + -2.872674464001362e+00 -2.872678757122995e+00 -2.872683690997219e+00 -2.872689271947241e+00 -2.872695506004511e+00 + -2.872702399218003e+00 -2.872709957998547e+00 -2.872718188690384e+00 -2.872727097009549e+00 -2.872736688669513e+00 + -2.872746970001709e+00 -2.872757947412680e+00 -2.872769626991446e+00 -2.872782014787135e+00 -2.872795117006809e+00 + -2.872808939808297e+00 -2.872823488994544e+00 -2.872838770359238e+00 -2.872854790013944e+00 -2.872871554154958e+00 + -2.872889068999627e+00 -2.872907340687168e+00 -2.872926375023218e+00 -2.872946177789640e+00 -2.872966755006795e+00 + -2.872988112738970e+00 -2.873010256987659e+00 -2.873033193743455e+00 -2.873056929016149e+00 -2.873081468798353e+00 + -2.873106818994782e+00 -2.873132985471494e+00 -2.873159974027786e+00 -2.873187790508094e+00 -2.873216441004140e+00 + -2.873245931584463e+00 -2.873276267977569e+00 -2.873307455856915e+00 -2.873339501015828e+00 -2.873372409342765e+00 + -2.873406186986854e+00 -2.873440840030674e+00 -2.873476374029945e+00 -2.873512794459630e+00 -2.873550106998518e+00 + -2.873588317466817e+00 -2.873627432046586e+00 -2.873667456808100e+00 -2.873708397012657e+00 -2.873750257967860e+00 + -2.873793045975522e+00 -2.873836767295967e+00 -2.873881427029366e+00 -2.873927030237608e+00 -2.873973582989610e+00 + -2.874021091436191e+00 -2.874069561048740e+00 -2.874118997257345e+00 -2.874169406006314e+00 -2.874220793186470e+00 + -2.874273163960479e+00 -2.874326523535612e+00 -2.874380878025728e+00 -2.874436233504353e+00 -2.874492594977105e+00 + -2.874549967456173e+00 -2.874608357047944e+00 -2.874667769870749e+00 -2.874728210996486e+00 -2.874789685444839e+00 + -2.874852199073056e+00 -2.874915757808161e+00 -2.874980367018717e+00 -2.875046031956011e+00 -2.875112757960702e+00 + -2.875180550448241e+00 -2.875249415043884e+00 -2.875319357389408e+00 -2.875390382982873e+00 -2.875462497200150e+00 + -2.875535705072081e+00 -2.875610011724477e+00 -2.875685423008027e+00 -2.875761944747628e+00 -2.875839581940104e+00 + -2.875918339524430e+00 -2.875998223036253e+00 -2.876079238083328e+00 -2.876161389965175e+00 -2.876244683897332e+00 + -2.876329125067640e+00 -2.876414718675390e+00 -2.876501469993362e+00 -2.876589384334920e+00 -2.876678467102276e+00 + -2.876768723646439e+00 -2.876860159024752e+00 -2.876952778311590e+00 -2.877046586943105e+00 -2.877141590285005e+00 + -2.877237793059432e+00 -2.877335200055582e+00 -2.877433816974432e+00 -2.877533649470098e+00 -2.877634702097487e+00 + -2.877736979404358e+00 -2.877840487009089e+00 -2.877945230580227e+00 -2.878051214916385e+00 -2.878158444703550e+00 + -2.878266925047163e+00 -2.878376661120778e+00 -2.878487657950954e+00 -2.878599920558564e+00 -2.878713454088738e+00 + -2.878828263638601e+00 -2.878944353988982e+00 -2.879061729871082e+00 -2.879180396133895e+00 -2.879300357745253e+00 + -2.879421620030550e+00 -2.879544188234639e+00 -2.879668066922659e+00 -2.879793260582870e+00 -2.879919774075741e+00 + -2.880047612428619e+00 -2.880176780964157e+00 -2.880307284823274e+00 -2.880439128124635e+00 -2.880572315044195e+00 + -2.880706851009318e+00 -2.880842741491739e+00 -2.880979990889281e+00 -2.881118603470176e+00 -2.881258584058220e+00 + -2.881399937594580e+00 -2.881542668934350e+00 -2.881686782880171e+00 -2.881832284110943e+00 -2.881979177270132e+00 + -2.882127466983199e+00 -2.882277157822698e+00 -2.882428254167564e+00 -2.882580760515876e+00 -2.882734682035907e+00 + -2.882890023809088e+00 -2.883046789899305e+00 -2.883204984344022e+00 -2.883364612092550e+00 -2.883525678164890e+00 + -2.883688186951939e+00 -2.883852142755886e+00 -2.884017550153203e+00 -2.884184413751485e+00 -2.884352738008543e+00 + -2.884522527349429e+00 -2.884693786217942e+00 -2.884866519029743e+00 -2.885040730069195e+00 -2.885216423722596e+00 + -2.885393604915286e+00 -2.885572278454246e+00 -2.885752448133968e+00 -2.885934117732660e+00 -2.886117291975880e+00 + -2.886301975695701e+00 -2.886488173202934e+00 -2.886675888645447e+00 -2.886865126040629e+00 -2.887055889528861e+00 + -2.887248183873006e+00 -2.887442013779875e+00 -2.887637383109605e+00 -2.887834295673936e+00 -2.888032755937675e+00 + -2.888232768417303e+00 -2.888434337182880e+00 -2.888637466267979e+00 -2.888842160006608e+00 -2.889048422705334e+00 + -2.889256258260521e+00 -2.889465670586525e+00 -2.889676664079871e+00 -2.889889243164732e+00 -2.890103411893701e+00 + -2.890319174230825e+00 -2.890536534157536e+00 -2.890755495690120e+00 -2.890976062966901e+00 -2.891198240133124e+00 + -2.891422031239666e+00 -2.891647440271526e+00 -2.891874471044534e+00 -2.892103127449178e+00 -2.892333413843735e+00 + -2.892565334531329e+00 -2.892798893126666e+00 -2.893034093211137e+00 -2.893270938921286e+00 -2.893509434394119e+00 + -2.893749583213363e+00 -2.893991388990754e+00 -2.894234856003367e+00 -2.894479988544211e+00 -2.894726790304690e+00 + -2.894975264880993e+00 -2.895225416090045e+00 -2.895477247800793e+00 -2.895730763869547e+00 -2.895985968110420e+00 + -2.896242864181383e+00 -2.896501455784724e+00 -2.896761746956156e+00 -2.897023741664482e+00 -2.897287443277443e+00 + -2.897552855132549e+00 -2.897819981047455e+00 -2.898088824960355e+00 -2.898359390811481e+00 -2.898631682423090e+00 + -2.898905703143506e+00 -2.899181456336644e+00 -2.899458945902694e+00 -2.899738175745144e+00 -2.900019149244370e+00 + -2.900301869748365e+00 -2.900586340998689e+00 -2.900872566741790e+00 -2.901160550350105e+00 -2.901450295205248e+00 + -2.901741805099525e+00 -2.902035083835090e+00 -2.902330134842785e+00 -2.902626961482952e+00 -2.902925567205262e+00 + -2.903225955501619e+00 -2.903528129943548e+00 -2.903832094083243e+00 -2.904137851315957e+00 -2.904445404943298e+00 + -2.904754758049239e+00 -2.905065913908475e+00 -2.905378876776237e+00 -2.905693650730528e+00 -2.906010238159916e+00 + -2.906328641477237e+00 -2.906648864881840e+00 -2.906970912612057e+00 -2.907294787275635e+00 -2.907620491421319e+00 + -2.907948028992455e+00 -2.908277404008211e+00 -2.908608619396449e+00 -2.908941677961907e+00 -2.909276583108139e+00 + -2.909613338320582e+00 -2.909951946813384e+00 -2.910292411733319e+00 -2.910634736228945e+00 -2.910978923497479e+00 + -2.911324976928991e+00 -2.911672899876866e+00 -2.912022695354926e+00 -2.912374366346152e+00 -2.912727916049746e+00 + -2.913083347735332e+00 -2.913440664738005e+00 -2.913799870293631e+00 -2.914160967175702e+00 -2.914523958205600e+00 + -2.914888846858668e+00 -2.915255636613397e+00 -2.915624330306910e+00 -2.915994930711883e+00 -2.916367440984558e+00 + -2.916741864289805e+00 -2.917118203443422e+00 -2.917496461287171e+00 -2.917876641115726e+00 -2.918258746264796e+00 + -2.918642779781321e+00 -2.919028744569610e+00 -2.919416643252220e+00 -2.919806478556714e+00 -2.920198253912409e+00 + -2.920591972698769e+00 -2.920987637394092e+00 -2.921385250442034e+00 -2.921784815048848e+00 -2.922186334507697e+00 + -2.922589811696789e+00 -2.922995249368979e+00 -2.923402650190686e+00 -2.923812016928122e+00 -2.924223352833133e+00 + -2.924636661116357e+00 -2.925051944337972e+00 -2.925469204994078e+00 -2.925888445974902e+00 -2.926309670222330e+00 + -2.926732880490753e+00 -2.927158079512877e+00 -2.927585270122142e+00 -2.928014455203420e+00 -2.928445637746579e+00 + -2.928878820641719e+00 -2.929314006274898e+00 -2.929751197043434e+00 -2.930190395893735e+00 -2.930631605816839e+00 + -2.931074829433217e+00 -2.931520069294359e+00 -2.931967328046430e+00 -2.932416608452995e+00 -2.932867913652596e+00 + -2.933321246608101e+00 -2.933776609204709e+00 -2.934234003435805e+00 -2.934693432805196e+00 -2.935154900804807e+00 + -2.935618409368617e+00 -2.936083960365691e+00 -2.936551556963400e+00 -2.937021202354904e+00 -2.937492898538196e+00 + -2.937966647468766e+00 -2.938442452127255e+00 -2.938920315642269e+00 -2.939400240709141e+00 -2.939882229846171e+00 + -2.940366285296803e+00 -2.940852409365155e+00 -2.941340604872910e+00 -2.941830874578781e+00 -2.942323220472084e+00 + -2.942817644603974e+00 -2.943314150042391e+00 -2.943812739919231e+00 -2.944313416605433e+00 -2.944816182292809e+00 + -2.945321039217627e+00 -2.945827989752984e+00 -2.946337036774817e+00 -2.946848183049044e+00 -2.947361430398659e+00 + -2.947876780695535e+00 -2.948394236949976e+00 -2.948913802216184e+00 -2.949435478585527e+00 -2.949959268045502e+00 + -2.950485173130951e+00 -2.951013196489051e+00 -2.951543340668991e+00 -2.952075608036040e+00 -2.952610000317780e+00 + -2.953146519451356e+00 -2.953685168849877e+00 -2.954225951787981e+00 -2.954768869510503e+00 -2.955313923227115e+00 + -2.955861116036636e+00 -2.956410451196468e+00 -2.956961930709160e+00 -2.957515556348660e+00 -2.958071330229310e+00 + -2.958629254704319e+00 -2.959189332741965e+00 -2.959751567143614e+00 -2.960315959427935e+00 -2.960882511105170e+00 + -2.961451224934558e+00 -2.962022103774683e+00 -2.962595149632548e+00 -2.963170364371659e+00 -2.963747750133120e+00 + -2.964327309260061e+00 -2.964909044626116e+00 -2.965492958892178e+00 -2.966079053337689e+00 -2.966667329311879e+00 + -2.967257789824588e+00 -2.967850437973655e+00 -2.968445275548303e+00 -2.969042304161408e+00 -2.969641526029084e+00 + -2.970242943489398e+00 -2.970846558764995e+00 -2.971452374012471e+00 -2.972060391239641e+00 -2.972670612566008e+00 + -2.973283040706606e+00 -2.973897678221620e+00 -2.974514526456296e+00 -2.975133586785449e+00 -2.975754861917081e+00 + -2.976378354633252e+00 -2.977004066679083e+00 -2.977631999719257e+00 -2.978262156133669e+00 -2.978894538388579e+00 + -2.979529148580497e+00 -2.980165988659094e+00 -2.980805060356407e+00 -2.981446365534977e+00 -2.982089906796993e+00 + -2.982735686662750e+00 -2.983383706585328e+00 -2.984033968085205e+00 -2.984686474019655e+00 -2.985341227187940e+00 + -2.985998228820469e+00 -2.986657480057624e+00 -2.987318983248517e+00 -2.987982740990944e+00 -2.988648755668708e+00 + -2.989317029403636e+00 -2.989987563483614e+00 -2.990660359350691e+00 -2.991335419897486e+00 -2.992012747963469e+00 + -2.992692344724977e+00 -2.993374211287029e+00 -2.994058350132512e+00 -2.994744763907397e+00 -2.995433454532118e+00 + -2.996124423756546e+00 -2.996817673373822e+00 -2.997513205283444e+00 -2.998211021767050e+00 -2.998911125033880e+00 + -2.999613516621449e+00 -3.000318198120732e+00 -3.001025172008281e+00 -3.001734440748973e+00 -3.002446005875424e+00 + -3.003159868783688e+00 -3.003876031255844e+00 -3.004594495323234e+00 -3.005315263628241e+00 -3.006038338638268e+00 + -3.006763721509772e+00 -3.007491413411925e+00 -3.008221416875716e+00 -3.008953734497098e+00 -3.009688367770095e+00 + -3.010425318036306e+00 -3.011164587129571e+00 -3.011906177113799e+00 -3.012650090480955e+00 -3.013396329533748e+00 + -3.014144895389836e+00 -3.014895789237767e+00 -3.015649013734712e+00 -3.016404571515447e+00 -3.017162463656545e+00 + -3.017922691248400e+00 -3.018685256994897e+00 -3.019450163571901e+00 -3.020217411929727e+00 -3.020987002987051e+00 + -3.021758939261538e+00 -3.022533223477289e+00 -3.023309857585168e+00 -3.024088843221124e+00 -3.024870181534668e+00 + -3.025653873871900e+00 -3.026439922851719e+00 -3.027228331077071e+00 -3.028019099814318e+00 -3.028812230192102e+00 + -3.029607724124773e+00 -3.030405583764245e+00 -3.031205811426982e+00 -3.032008409239547e+00 -3.032813378404362e+00 + -3.033620720145768e+00 -3.034430436699938e+00 -3.035242530366928e+00 -3.036057002690514e+00 -3.036873855182042e+00 + -3.037693089979441e+00 -3.038514709166424e+00 -3.039338713983260e+00 -3.040165105664532e+00 -3.040993886265523e+00 + -3.041825058080565e+00 -3.042658623539453e+00 -3.043494584770202e+00 -3.044332942558215e+00 -3.045173697755793e+00 + -3.046016852825442e+00 -3.046862410359265e+00 -3.047710371857544e+00 -3.048560738605269e+00 -3.049413512118055e+00 + -3.050268694173960e+00 -3.051126287370169e+00 -3.051986294136892e+00 -3.052848715417321e+00 -3.053713552140092e+00 + -3.054580806662679e+00 -3.055450481419417e+00 -3.056322577723267e+00 -3.057197096839233e+00 -3.058074040961857e+00 + -3.058953412280709e+00 -3.059835212035924e+00 -3.060719441405425e+00 -3.061606102267731e+00 -3.062495196777212e+00 + -3.063386727491054e+00 -3.064280696619269e+00 -3.065177104580330e+00 -3.066075951959016e+00 -3.066977241796834e+00 + -3.067880977177860e+00 -3.068787158899685e+00 -3.069695787543252e+00 -3.070606865109353e+00 -3.071520393938529e+00 + -3.072436376310475e+00 -3.073354814200677e+00 -3.074275708428639e+00 -3.075199059975246e+00 -3.076124871622891e+00 + -3.077053146054635e+00 -3.077983883754724e+00 -3.078917085313194e+00 -3.079852753942089e+00 -3.080790892784741e+00 + -3.081731502087634e+00 -3.082674582011150e+00 -3.083620135268097e+00 -3.084568164866139e+00 -3.085518672439932e+00 + -3.086471659270948e+00 -3.087427126600947e+00 -3.088385075921834e+00 -3.089345509765843e+00 -3.090308430518810e+00 + -3.091273838940665e+00 -3.092241735746584e+00 -3.093212123098609e+00 -3.094185003484481e+00 -3.095160379247863e+00 + -3.096138252358965e+00 -3.097118623438258e+00 -3.098101493262150e+00 -3.099086864580523e+00 -3.100074740150514e+00 + -3.101065120784818e+00 -3.102058007230942e+00 -3.103053401920080e+00 -3.104051307417155e+00 -3.105051725138318e+00 + -3.106054656274756e+00 -3.107060102266563e+00 -3.108068064811119e+00 -3.109078546386035e+00 -3.110091549326776e+00 + -3.111107074619999e+00 -3.112125123273996e+00 -3.113145697732417e+00 -3.114168800386244e+00 -3.115194431980418e+00 + -3.116222593318652e+00 -3.117253287085768e+00 -3.118286516039464e+00 -3.119322281347848e+00 -3.120360583948459e+00 + -3.121401425446115e+00 -3.122444807777008e+00 -3.123490733535526e+00 -3.124539205035892e+00 -3.125590222813487e+00 + -3.126643787500575e+00 -3.127699901895779e+00 -3.128758568841378e+00 -3.129819789187914e+00 -3.130883563634097e+00 + -3.131949894263071e+00 -3.133018783446947e+00 -3.134090233329311e+00 -3.135164245759380e+00 -3.136240821637432e+00 + -3.137319962039862e+00 -3.138401669696502e+00 -3.139485947209752e+00 -3.140572795018887e+00 -3.141662213641400e+00 + -3.142754206070774e+00 -3.143848775370422e+00 -3.144945922407469e+00 -3.146045647810740e+00 -3.147147953452156e+00 + -3.148252841552866e+00 -3.149360314487843e+00 -3.150470374336312e+00 -3.151583021840677e+00 -3.152698257836541e+00 + -3.153816084869129e+00 -3.154936505573740e+00 -3.156059521236365e+00 -3.157185132934072e+00 -3.158313342257567e+00 + -3.159444151127381e+00 -3.160577562269707e+00 -3.161713578058511e+00 -3.162852198653188e+00 -3.163993424406347e+00 + -3.165137258658042e+00 -3.166283704751602e+00 -3.167432763056018e+00 -3.168584433853514e+00 -3.169738720053572e+00 + -3.170895624664928e+00 -3.172055148466089e+00 -3.173217292044841e+00 -3.174382057456326e+00 -3.175549447119023e+00 + -3.176719463437418e+00 -3.177892108465135e+00 -3.179067382866334e+00 -3.180245287430775e+00 -3.181425824840074e+00 + -3.182608997807819e+00 -3.183794807283624e+00 -3.184983254083125e+00 -3.186174340249998e+00 -3.187368068149750e+00 + -3.188564440207163e+00 -3.189763458501066e+00 -3.190965123667219e+00 -3.192169436468204e+00 -3.193376399616980e+00 + -3.194586015855556e+00 -3.195798286091764e+00 -3.197013211234878e+00 -3.198230794034108e+00 -3.199451037209393e+00 + -3.200673941523666e+00 -3.201899507599942e+00 -3.203127737458575e+00 -3.204358633517069e+00 -3.205592198384193e+00 + -3.206828434306502e+00 -3.208067341890413e+00 -3.209308921829809e+00 -3.210553176808560e+00 -3.211800109598040e+00 + -3.213049721329648e+00 -3.214302012941719e+00 -3.215556986240311e+00 -3.216814643392485e+00 -3.218074987141617e+00 + -3.219338019837523e+00 -3.220603741679474e+00 -3.221872153094758e+00 -3.223143257573258e+00 -3.224417058543514e+00 + -3.225693556126080e+00 -3.226972750453261e+00 -3.228254645012327e+00 -3.229539243310538e+00 -3.230826545580160e+00 + -3.232116551831102e+00 -3.233409264458852e+00 -3.234704686394765e+00 -3.236002820328103e+00 -3.237303668413965e+00 + -3.238607230912866e+00 -3.239913508296335e+00 -3.241222503774527e+00 -3.242534220589764e+00 -3.243848659374397e+00 + -3.245165820540432e+00 -3.246485706228452e+00 -3.247808319087641e+00 -3.249133662073000e+00 -3.250461737608715e+00 + -3.251792545689908e+00 -3.253126086515263e+00 -3.254462363526813e+00 -3.255801380232294e+00 -3.257143137158927e+00 + -3.258487634736825e+00 -3.259834875988172e+00 -3.261184864013611e+00 -3.262537599635538e+00 -3.263893083453904e+00 + -3.265251317457108e+00 -3.266612304094287e+00 -3.267976046269084e+00 -3.269342546452898e+00 -3.270711804933652e+00 + -3.272083822201368e+00 -3.273458601737915e+00 -3.274836147008249e+00 -3.276216458417835e+00 -3.277599536106921e+00 + -3.278985382214368e+00 -3.280373999474050e+00 -3.281765391001240e+00 -3.283159559381294e+00 -3.284556504698475e+00 + -3.285956227223949e+00 -3.287358730477579e+00 -3.288764018003004e+00 -3.290172090190266e+00 -3.291582947391597e+00 + -3.292996592961586e+00 -3.294413030263101e+00 -3.295832259689772e+00 -3.297254281509102e+00 -3.298679098453292e+00 + -3.300106713632883e+00 -3.301537129207062e+00 -3.302970346938195e+00 -3.304406367952729e+00 -3.305845193592728e+00 + -3.307286826698660e+00 -3.308731270022015e+00 -3.310178524459931e+00 -3.311628590794006e+00 -3.313081471198005e+00 + -3.314537168271639e+00 -3.315995684926260e+00 -3.317457023622331e+00 -3.318921184705128e+00 -3.320388168757214e+00 + -3.321857979425488e+00 -3.323330620242623e+00 -3.324806091220061e+00 -3.326284392457951e+00 -3.327765527932510e+00 + -3.329249501635255e+00 -3.330736313742837e+00 -3.332225964151081e+00 -3.333718455447356e+00 -3.335213790816533e+00 + -3.336711973141963e+00 -3.338213004741188e+00 -3.339716885970061e+00 -3.341223617428788e+00 -3.342733202656698e+00 + -3.344245645175923e+00 -3.345760945500658e+00 -3.347279103963591e+00 -3.348800123179309e+00 -3.350324006237700e+00 + -3.351850755847976e+00 -3.353380374190363e+00 -3.354912861709826e+00 -3.356448219173252e+00 -3.357986450370467e+00 + -3.359527558984502e+00 -3.361071545248283e+00 -3.362618409368982e+00 -3.364168154900880e+00 -3.365720785489059e+00 + -3.367276301794712e+00 -3.368834704260551e+00 -3.370395995439248e+00 -3.371960178388195e+00 -3.373527256073704e+00 + -3.375097230883950e+00 -3.376670102985606e+00 -3.378245872877927e+00 -3.379824544611959e+00 -3.381406122149057e+00 + -3.382990605539988e+00 -3.384577994855671e+00 -3.386168294158221e+00 -3.387761507524905e+00 -3.389357635102426e+00 + -3.390956676825633e+00 -3.392558635712520e+00 -3.394163515324364e+00 -3.395771318312439e+00 -3.397382046745834e+00 + -3.398995701274896e+00 -3.400612282828281e+00 -3.402231794866633e+00 -3.403854240867662e+00 -3.405479621845378e+00 + -3.407107938586081e+00 -3.408739193428916e+00 -3.410373389185216e+00 -3.412010529002203e+00 -3.413650615518111e+00 + -3.415293648999326e+00 -3.416939629995896e+00 -3.418588562564371e+00 -3.420240450691449e+00 -3.421895294577897e+00 + -3.423553094414080e+00 -3.425213854134680e+00 -3.426877577792018e+00 -3.428544266164663e+00 -3.430213919689846e+00 + -3.431886540713168e+00 -3.433562132145608e+00 -3.435240697251321e+00 -3.436922238808692e+00 -3.438606757299870e+00 + -3.440294253397158e+00 -3.441984730829699e+00 -3.443678193368453e+00 -3.445374641894819e+00 -3.447074077051543e+00 + -3.448776501416308e+00 -3.450481918039497e+00 -3.452190329927366e+00 -3.453901739641781e+00 -3.455616148011183e+00 + -3.457333556082980e+00 -3.459053967513855e+00 -3.460777385853499e+00 -3.462503811614361e+00 -3.464233245386620e+00 + -3.465965691108627e+00 -3.467701152771073e+00 -3.469439631225878e+00 -3.471181127031554e+00 -3.472925642711720e+00 + -3.474673181335264e+00 -3.476423746187027e+00 -3.478177340029919e+00 -3.479933963323171e+00 -3.481693616824597e+00 + -3.483456304790008e+00 -3.485222031388338e+00 -3.486990796943019e+00 -3.488762601570069e+00 -3.490537448401365e+00 + -3.492315341151373e+00 -3.494096282849095e+00 -3.495880275915030e+00 -3.497667321021135e+00 -3.499457419173128e+00 + -3.501250574460328e+00 -3.503046790838973e+00 -3.504846068649357e+00 -3.506648408298966e+00 -3.508453814079994e+00 + -3.510262290280344e+00 -3.512073837286068e+00 -3.513888455301771e+00 -3.515706147708129e+00 -3.517526918395819e+00 + -3.519350770119465e+00 -3.521177705073145e+00 -3.523007724344773e+00 -3.524840829328240e+00 -3.526677023747485e+00 + -3.528516311267811e+00 -3.530358692989965e+00 -3.532204169811781e+00 -3.534052744384031e+00 -3.535904419874647e+00 + -3.537759199767289e+00 -3.539617087002065e+00 -3.541478082029144e+00 -3.543342185630307e+00 -3.545209402403708e+00 + -3.547079736777425e+00 -3.548953188682862e+00 -3.550829758143615e+00 -3.552709450048714e+00 -3.554592269345012e+00 + -3.556478216345227e+00 -3.558367291032073e+00 -3.560259496702344e+00 -3.562154837300620e+00 -3.564053316048536e+00 + -3.565954935512961e+00 -3.567859696364639e+00 -3.569767599635964e+00 -3.571678649702049e+00 -3.573592850895430e+00 + -3.575510204035641e+00 -3.577430709619281e+00 -3.579354370364244e+00 -3.581281189700099e+00 -3.583211171681835e+00 + -3.585144319721653e+00 -3.587080634035166e+00 -3.589020115063184e+00 -3.590962767343901e+00 -3.592908595415016e+00 + -3.594857599714854e+00 -3.596809780701911e+00 -3.598765143014713e+00 -3.600723691343250e+00 -3.602685426403352e+00 + -3.604650348553174e+00 -3.606618460694309e+00 -3.608589766473437e+00 -3.610564269974137e+00 -3.612541974573128e+00 + -3.614522880382737e+00 -3.616506987803558e+00 -3.618494301653613e+00 -3.620484826823921e+00 -3.622478564080036e+00 + -3.624475513850586e+00 -3.626475679341938e+00 -3.628479064392689e+00 -3.630485672592619e+00 -3.632495506905407e+00 + -3.634508568039156e+00 -3.636524857004877e+00 -3.638544378280809e+00 -3.640567136287224e+00 -3.642593131745308e+00 + -3.644622365423449e+00 -3.646654841977913e+00 -3.648690566065893e+00 -3.650729538460438e+00 -3.652771759626902e+00 + -3.654817232683972e+00 -3.656865961450936e+00 -3.658917949896158e+00 -3.660973201344661e+00 -3.663031716399031e+00 + -3.665093495929850e+00 -3.667158544602091e+00 -3.669226867066577e+00 -3.671298464123134e+00 -3.673373336353373e+00 + -3.675451487317045e+00 -3.677532921173144e+00 -3.679617641499514e+00 -3.681705651197185e+00 -3.683796951041065e+00 + -3.685891542158701e+00 -3.687989429214330e+00 -3.690090616811484e+00 -3.692195105774196e+00 -3.694302896934788e+00 + -3.696413994938233e+00 -3.698528404463948e+00 -3.700646126516483e+00 -3.702767161822413e+00 -3.704891513671268e+00 + -3.707019186005269e+00 -3.709150182814482e+00 -3.711284507419287e+00 -3.713422160413482e+00 -3.715563142750310e+00 + -3.717707459547388e+00 -3.719855115839397e+00 -3.722006112164920e+00 -3.724160448777861e+00 -3.726318129289493e+00 + -3.728479158099316e+00 -3.730643539402395e+00 -3.732811276589775e+00 -3.734982370040845e+00 -3.737156820495128e+00 + -3.739334633144358e+00 -3.741515813112657e+00 -3.743700360801490e+00 -3.745888276640612e+00 -3.748079565895588e+00 + -3.750274233918474e+00 -3.752472281571475e+00 -3.754673709335501e+00 -3.756878520656135e+00 -3.759086719721971e+00 + -3.761298310728990e+00 -3.763513297133539e+00 -3.765731679426046e+00 -3.767953458457793e+00 -3.770178639489403e+00 + -3.772407227784000e+00 -3.774639224205367e+00 -3.776874629489326e+00 -3.779113448259203e+00 -3.781355685279774e+00 + -3.783601341994148e+00 -3.785850419525435e+00 -3.788102921038436e+00 -3.790358850378410e+00 -3.792618212070778e+00 + -3.794881010002580e+00 -3.797147244827153e+00 -3.799416917428862e+00 -3.801690032849888e+00 -3.803966596190487e+00 + -3.806246608625402e+00 -3.808530070983860e+00 -3.810816986638503e+00 -3.813107359693981e+00 -3.815401194639556e+00 + -3.817698495297397e+00 -3.819999262436677e+00 -3.822303497093916e+00 -3.824611204428034e+00 -3.826922389548483e+00 + -3.829237053244454e+00 -3.831555196353405e+00 -3.833876824226091e+00 -3.836201942201953e+00 -3.838530551061888e+00 + -3.840862651326505e+00 -3.843198247033778e+00 -3.845537342919513e+00 -3.847879942993476e+00 -3.850226050562932e+00 + -3.852575666851148e+00 -3.854928793361406e+00 -3.857285434801036e+00 -3.859645595950435e+00 -3.862009278678248e+00 + -3.864376484523473e+00 -3.866747216618300e+00 -3.869121478726629e+00 -3.871499275546047e+00 -3.873880611182955e+00 + -3.876265486445322e+00 -3.878653902389424e+00 -3.881045864363169e+00 -3.883441377687285e+00 -3.885840443282151e+00 + -3.888243062046155e+00 -3.890649239190073e+00 -3.893058980047241e+00 -3.895472286128841e+00 -3.897889158595383e+00 + -3.900309601026809e+00 -3.902733617656517e+00 -3.905161212912323e+00 -3.907592390603840e+00 -3.910027151873432e+00 + -3.912465498159137e+00 -3.914907434748928e+00 -3.917352966879188e+00 -3.919802095729995e+00 -3.922254822259626e+00 + -3.924711150595445e+00 -3.927171085542605e+00 -3.929634631448325e+00 -3.932101791843537e+00 -3.934572567451927e+00 + -3.937046959532740e+00 -3.939524974294695e+00 -3.942006617767883e+00 -3.944491890318428e+00 -3.946980792233828e+00 + -3.949473329151056e+00 -3.951969506957779e+00 -3.954469327195002e+00 -3.956972790971958e+00 -3.959479902017460e+00 + -3.961990664762499e+00 -3.964505083827194e+00 -3.967023163167552e+00 -3.969544903893966e+00 -3.972070307479498e+00 + -3.974599379693463e+00 -3.977132126179292e+00 -3.979668547780628e+00 -3.982208645099321e+00 -3.984752422569858e+00 + -3.987299885436030e+00 -3.989851038346246e+00 -3.992405885069993e+00 -3.994964426456437e+00 -3.997526663815754e+00 + -4.000092603222488e+00 -4.002662250581340e+00 -4.005235606353252e+00 -4.007812671084819e+00 -4.010393451108941e+00 + -4.012977952843547e+00 -4.015566177260363e+00 -4.018158124897606e+00 -4.020753800005660e+00 -4.023353207686703e+00 + -4.025956352737950e+00 -4.028563239140089e+00 -4.031173867912699e+00 -4.033788240453579e+00 -4.036406362634527e+00 + -4.039028240314873e+00 -4.041653874830120e+00 -4.044283267179555e+00 -4.046916421541453e+00 -4.049553342894448e+00 + -4.052194036239657e+00 -4.054838505774454e+00 -4.057486752458788e+00 -4.060138777601743e+00 -4.062794587146426e+00 + -4.065454187011838e+00 -4.068117578386588e+00 -4.070784762448621e+00 -4.073455745063631e+00 -4.076130532171974e+00 + -4.078809125324914e+00 -4.081491525652789e+00 -4.084177736991329e+00 -4.086867764089578e+00 -4.089561612644448e+00 + -4.092259287473573e+00 -4.094960788929582e+00 -4.097666117736884e+00 -4.100375280572002e+00 -4.103088284211306e+00 + -4.105805129878449e+00 -4.108525818267906e+00 -4.111250353510137e+00 -4.113978740671802e+00 -4.116710985128399e+00 + -4.119447091422845e+00 -4.122187060458915e+00 -4.124930893522407e+00 -4.127678597066370e+00 -4.130430177441071e+00 + -4.133185635418395e+00 -4.135944971791250e+00 -4.138708193015015e+00 -4.141475305696859e+00 -4.144246311388639e+00 + -4.147021211130915e+00 -4.149800008974389e+00 -4.152582709893380e+00 -4.155369319546537e+00 -4.158159842709882e+00 + -4.160954279944561e+00 -4.163752632239020e+00 -4.166554906505763e+00 -4.169361109687737e+00 -4.172171242925584e+00 + -4.174985306927709e+00 -4.177803306475812e+00 -4.180625247195196e+00 -4.183451134012302e+00 -4.186280970992621e+00 + -4.189114759456745e+00 -4.191952501240072e+00 -4.194794202982180e+00 -4.197639871116617e+00 -4.200489506448629e+00 + -4.203343109834506e+00 -4.206200687962978e+00 -4.209062247657938e+00 -4.211927790451525e+00 -4.214797317400862e+00 + -4.217670832954751e+00 -4.220548342457539e+00 -4.223429851444060e+00 -4.226315364591702e+00 -4.229204882957573e+00 + -4.232098408004153e+00 -4.234995946435681e+00 -4.237897504949240e+00 -4.240803084971501e+00 -4.243712687544032e+00 + -4.246626317438374e+00 -4.249543980343883e+00 -4.252465681891192e+00 -4.255391426705907e+00 -4.258321215452209e+00 + -4.261255049361277e+00 -4.264192935893713e+00 -4.267134882389568e+00 -4.270080889477248e+00 -4.273030957691918e+00 + -4.275985093907401e+00 -4.278943305249538e+00 -4.281905593513557e+00 -4.284871959946388e+00 -4.287842408932329e+00 + -4.290816945777364e+00 -4.293795576336856e+00 -4.296778305653331e+00 -4.299765134968560e+00 -4.302756065899131e+00 + -4.305751105361620e+00 -4.308750260118541e+00 -4.311753531016159e+00 -4.314760919008608e+00 -4.317772431397722e+00 + -4.320788075591533e+00 -4.323807853075197e+00 -4.326831764792573e+00 -4.329859815445223e+00 -4.332892010759197e+00 + -4.335928356800809e+00 -4.338968858700405e+00 -4.342013517504197e+00 -4.345062334602749e+00 -4.348115316848165e+00 + -4.351172471198577e+00 -4.354233799574710e+00 -4.357299303495111e+00 -4.360368987907023e+00 -4.363442858590077e+00 + -4.366520921224746e+00 -4.369603180592436e+00 -4.372689637977453e+00 -4.375780295145305e+00 -4.378875159283436e+00 + -4.381974237486932e+00 -4.385077531059527e+00 -4.388185041309383e+00 -4.391296775353732e+00 -4.394412740393244e+00 + -4.397532938153312e+00 -4.400657369887305e+00 -4.403786040435705e+00 -4.406918955633090e+00 -4.410056121703311e+00 + -4.413197543940346e+00 -4.416343223529426e+00 -4.419493162052248e+00 -4.422647366785128e+00 -4.425805845047289e+00 + -4.428968598634965e+00 -4.432135628892382e+00 -4.435306940878729e+00 -4.438482540596634e+00 -4.441662434107552e+00 + -4.444846626509031e+00 -4.448035118984182e+00 -4.451227913265940e+00 -4.454425017200977e+00 -4.457626438485681e+00 + -4.460832178101560e+00 -4.464042236947444e+00 -4.467256622306292e+00 -4.470475341701105e+00 -4.473698397230936e+00 + -4.476925790483307e+00 -4.480157526423565e+00 -4.483393610985775e+00 -4.486634050601043e+00 -4.489878850742320e+00 + -4.493128012552872e+00 -4.496381537630165e+00 -4.499639433718156e+00 -4.502901708553144e+00 -4.506168363694287e+00 + -4.509439400268067e+00 -4.512714823847340e+00 -4.515994641019672e+00 -4.519278857985080e+00 -4.522567479881829e+00 + -4.525860507988668e+00 -4.529157944122721e+00 -4.532459796114085e+00 -4.535766071688615e+00 -4.539076772142213e+00 + -4.542391898765175e+00 -4.545711459255270e+00 -4.549035461446213e+00 -4.552363907308053e+00 -4.555696798263391e+00 + -4.559034139408705e+00 -4.562375936904542e+00 -4.565722197493832e+00 -4.569072926948550e+00 -4.572428126574475e+00 + -4.575787798129616e+00 -4.579151949647104e+00 -4.582520589075836e+00 -4.585893717752653e+00 -4.589271336639746e+00 + -4.592653451812744e+00 -4.596040070428725e+00 -4.599431198857142e+00 -4.602826842289216e+00 -4.606227001990830e+00 + -4.609631679831751e+00 -4.613040884022596e+00 -4.616454622677202e+00 -4.619872897181441e+00 -4.623295708819967e+00 + -4.626723065200532e+00 -4.630154974192006e+00 -4.633591438384649e+00 -4.637032459790966e+00 -4.640478043391029e+00 + -4.643928195196958e+00 -4.647382922381489e+00 -4.650842231139545e+00 -4.654306122594169e+00 -4.657774598295235e+00 + -4.661247666571815e+00 -4.664725335805659e+00 -4.668207607810025e+00 -4.671694483876048e+00 -4.675185969774820e+00 + -4.678682072408495e+00 -4.682182798723523e+00 -4.685688154522786e+00 -4.689198140990583e+00 -4.692712759891060e+00 + -4.696232019926335e+00 -4.699755929666950e+00 -4.703284490219185e+00 -4.706817702626076e+00 -4.710355575141943e+00 + -4.713898116290367e+00 -4.717445328460708e+00 -4.720997213393779e+00 -4.724553776370427e+00 -4.728115023824750e+00 + -4.731680963263822e+00 -4.735251601139764e+00 -4.738826938611875e+00 -4.742406977241646e+00 -4.745991725492132e+00 + -4.749581191958943e+00 -4.753175378866366e+00 -4.756774287871428e+00 -4.760377924733439e+00 -4.763986296289299e+00 + -4.767599409584012e+00 -4.771217270615820e+00 -4.774839880987831e+00 -4.778467242836293e+00 -4.782099364825118e+00 + -4.785736255481164e+00 -4.789377916255392e+00 -4.793024348603915e+00 -4.796675561079348e+00 -4.800331562360717e+00 + -4.803992354536202e+00 -4.807657939173200e+00 -4.811328322346788e+00 -4.815003511262576e+00 -4.818683513140625e+00 + -4.822368334073276e+00 -4.826057975627521e+00 -4.829752439872078e+00 -4.833451735407881e+00 -4.837155870922971e+00 + -4.840864848921632e+00 -4.844578671297884e+00 -4.848297343688468e+00 -4.852020872870312e+00 -4.855749266438375e+00 + -4.859482530948563e+00 -4.863220667982479e+00 -4.866963679596293e+00 -4.870711574718753e+00 -4.874464362148352e+00 + -4.878222043289993e+00 -4.881984619584831e+00 -4.885752100012597e+00 -4.889524493673498e+00 -4.893301802611106e+00 + -4.897084028340568e+00 -4.900871177319985e+00 -4.904663257144151e+00 -4.908460275011687e+00 -4.912262236942902e+00 + -4.916069144641015e+00 -4.919881000415621e+00 -4.923697813318887e+00 -4.927519592402767e+00 -4.931346339975771e+00 + -4.935178057730553e+00 -4.939014751639765e+00 -4.942856428895341e+00 -4.946703097286389e+00 -4.950554763469543e+00 + -4.954411428974413e+00 -4.958273095882141e+00 -4.962139773607051e+00 -4.966011471374763e+00 -4.969888190322918e+00 + -4.973769931656962e+00 -4.977656704941523e+00 -4.981548519919207e+00 -4.985445378685372e+00 -4.989347282670139e+00 + -4.993254238289898e+00 -4.997166253181426e+00 -5.001083334876794e+00 -5.005005489750602e+00 -5.008932719652265e+00 + -5.012865027026571e+00 -5.016802421224969e+00 -5.020744911403345e+00 -5.024692499028711e+00 -5.028645185619313e+00 + -5.032602980587180e+00 -5.036565893470627e+00 -5.040533926419334e+00 -5.044507081015939e+00 -5.048485363963517e+00 + -5.052468783200935e+00 -5.056457346489804e+00 -5.060451060330298e+00 -5.064449926354071e+00 -5.068453946757710e+00 + -5.072463130865962e+00 -5.076477488052552e+00 -5.080497020758939e+00 -5.084521730904982e+00 -5.088551625256381e+00 + -5.092586711696772e+00 -5.096626997735727e+00 -5.100672489712744e+00 -5.104723189661156e+00 -5.108779100266077e+00 + -5.112840231125939e+00 -5.116906591587866e+00 -5.120978183080382e+00 -5.125055007124604e+00 -5.129137073530554e+00 + -5.133224392250169e+00 -5.137316965514153e+00 -5.141414794882011e+00 -5.145517886949661e+00 -5.149626249667421e+00 + -5.153739891366810e+00 -5.157858819095347e+00 -5.161983034383363e+00 -5.166112539324860e+00 -5.170247343785729e+00 + -5.174387457616170e+00 -5.178532882831751e+00 -5.182683620936045e+00 -5.186839679219287e+00 -5.191001066208124e+00 + -5.195167789588259e+00 -5.199339855740569e+00 -5.203517266667578e+00 -5.207700025095241e+00 -5.211888141021600e+00 + -5.216081624199723e+00 -5.220280476130696e+00 -5.224484698310884e+00 -5.228694300469721e+00 -5.232909292611727e+00 + -5.237129677608738e+00 -5.241355457600706e+00 -5.245586638932716e+00 -5.249823229255573e+00 -5.254065237237846e+00 + -5.258312670369801e+00 -5.262565530410686e+00 -5.266823819583928e+00 -5.271087547700648e+00 -5.275356724632263e+00 + -5.279631352903723e+00 -5.283911434448228e+00 -5.288196976178466e+00 -5.292487986327965e+00 -5.296784473434150e+00 + -5.301086444698075e+00 -5.305393901671405e+00 -5.309706846569482e+00 -5.314025289911748e+00 -5.318349242027271e+00 + -5.322678704179561e+00 -5.327013677718438e+00 -5.331354173404511e+00 -5.335700202105029e+00 -5.340051765703035e+00 + -5.344408865432155e+00 -5.348771508912536e+00 -5.353139705124518e+00 -5.357513462102698e+00 -5.361892786505948e+00 + -5.366277680435933e+00 -5.370668146715638e+00 -5.375064195610523e+00 -5.379465837274747e+00 -5.383873073974794e+00 + -5.388285907439377e+00 -5.392704345133761e+00 -5.397128395890300e+00 -5.401558068273167e+00 -5.405993369375257e+00 + -5.410434300672517e+00 -5.414880864443758e+00 -5.419333071796174e+00 -5.423790933634701e+00 -5.428254451226888e+00 + -5.432723625834648e+00 -5.437198468334746e+00 -5.441678989715544e+00 -5.446165191796978e+00 -5.450657075821366e+00 + -5.455154649888983e+00 -5.459657923508107e+00 -5.464166904961132e+00 -5.468681600997277e+00 -5.473202013458992e+00 + -5.477728145011161e+00 -5.482260006515158e+00 -5.486797608759512e+00 -5.491340954044872e+00 -5.495890044003880e+00 + -5.500444886085005e+00 -5.505005489175888e+00 -5.509571862105057e+00 -5.514144012303452e+00 -5.518721941670775e+00 + -5.523305652810777e+00 -5.527895156674663e+00 -5.532490463993778e+00 -5.537091576272570e+00 -5.541698495053784e+00 + -5.546311231260242e+00 -5.550929796018560e+00 -5.555554191890502e+00 -5.560184420697174e+00 -5.564820489861896e+00 + -5.569462408240030e+00 -5.574110184812914e+00 -5.578763827204064e+00 -5.583423337479740e+00 -5.588088718319627e+00 + -5.592759980414353e+00 -5.597437134453794e+00 -5.602120183113874e+00 -5.606809128447821e+00 -5.611503978032022e+00 + -5.616204740842362e+00 -5.620911425929568e+00 -5.625624040919794e+00 -5.630342587666039e+00 -5.635067068763208e+00 + -5.639797495546991e+00 -5.644533879170592e+00 -5.649276221316504e+00 -5.654024523642824e+00 -5.658778797180806e+00 + -5.663539053129186e+00 -5.668305293983524e+00 -5.673077521581335e+00 -5.677855743831122e+00 -5.682639970117403e+00 + -5.687430209657800e+00 -5.692226470164904e+00 -5.697028753498052e+00 -5.701837062188433e+00 -5.706651407307890e+00 + -5.711471800003379e+00 -5.716298243181697e+00 -5.721130739014699e+00 -5.725969294974640e+00 -5.730813920019088e+00 + -5.735664623746429e+00 -5.740521414337008e+00 -5.745384293658165e+00 -5.750253264219532e+00 -5.755128337412918e+00 + -5.760009524502356e+00 -5.764896827358567e+00 -5.769790247833362e+00 -5.774689797096235e+00 -5.779595486532854e+00 + -5.784507319075965e+00 -5.789425296924678e+00 -5.794349427796488e+00 -5.799279720850703e+00 -5.804216185495535e+00 + -5.809158829710795e+00 -5.814107655513784e+00 -5.819062665706917e+00 -5.824023872195552e+00 -5.828991286593848e+00 + -5.833964910248241e+00 -5.838944744496904e+00 -5.843930800912663e+00 -5.848923091405570e+00 -5.853921618999967e+00 + -5.858926385866531e+00 -5.863937399646989e+00 -5.868954669511408e+00 -5.873978205272220e+00 -5.879008015280387e+00 + -5.884044101398642e+00 -5.889086466127434e+00 -5.894135121006329e+00 -5.899190077679159e+00 -5.904251339167730e+00 + -5.909318907675908e+00 -5.914392790757818e+00 -5.919472997569684e+00 -5.924559538325873e+00 -5.929652421747786e+00 + -5.934751649526802e+00 -5.939857223994977e+00 -5.944969157077114e+00 -5.950087460588470e+00 -5.955212136313389e+00 + -5.960343186070434e+00 -5.965480621845905e+00 -5.970624455737114e+00 -5.975774690117698e+00 -5.980931326619691e+00 + -5.986094373632355e+00 -5.991263841186835e+00 -5.996439739124646e+00 -6.001622075628632e+00 -6.006810852436582e+00 + -6.012006072105073e+00 -6.017207746910874e+00 -6.022415889122929e+00 -6.027630501258702e+00 -6.032851585034692e+00 + -6.038079148714933e+00 -6.043313202169935e+00 -6.048553755148549e+00 -6.053800815867540e+00 -6.059054386536941e+00 + -6.064314470164098e+00 -6.069581078952353e+00 -6.074854224823474e+00 -6.080133909377011e+00 -6.085420134277816e+00 + -6.090712911774160e+00 -6.096012254273324e+00 -6.101318164235261e+00 -6.106630643404864e+00 -6.111949700614082e+00 + -6.117275346267099e+00 -6.122607589969956e+00 -6.127946439669295e+00 -6.133291897472249e+00 -6.138643966380033e+00 + -6.144002658809652e+00 -6.149367987035877e+00 -6.154739953348771e+00 -6.160118559324411e+00 -6.165503813667637e+00 + -6.170895726810269e+00 -6.176294308963303e+00 -6.181699568610070e+00 -6.187111507544039e+00 -6.192530128394146e+00 + -6.197955443821025e+00 -6.203387466288188e+00 -6.208826197438971e+00 -6.214271638855750e+00 -6.219723802697215e+00 + -6.225182701452046e+00 -6.230648338352550e+00 -6.236120715733020e+00 -6.241599841591995e+00 -6.247085725644578e+00 + -6.252578378807894e+00 -6.258077810320607e+00 -6.263584021505486e+00 -6.269097014385768e+00 -6.274616801702433e+00 + -6.280143396389799e+00 -6.285676801437800e+00 -6.291217018848358e+00 -6.296764056615736e+00 -6.302317924554712e+00 + -6.307878633769864e+00 -6.313446193664602e+00 -6.319020605547922e+00 -6.324601871487839e+00 -6.330190004682891e+00 + -6.335785018206249e+00 -6.341386913499118e+00 -6.346995691980793e+00 -6.352611366614864e+00 -6.358233950592316e+00 + -6.363863446469443e+00 -6.369499855900457e+00 -6.375143187565898e+00 -6.380793451939097e+00 -6.386450659638202e+00 + -6.392114819555641e+00 -6.397785933536126e+00 -6.403464004233896e+00 -6.409149044588990e+00 -6.414841067513965e+00 + -6.420540075525660e+00 -6.426246070301758e+00 -6.431959060559017e+00 -6.437679056917068e+00 -6.443406070567963e+00 + -6.449140110779302e+00 -6.454881178548420e+00 -6.460629275812415e+00 -6.466384416537711e+00 -6.472146614484319e+00 + -6.477915870557313e+00 -6.483692185657911e+00 -6.489475573526882e+00 -6.495266048141532e+00 -6.501063611585819e+00 + -6.506868264986595e+00 -6.512680017535606e+00 -6.518498880384615e+00 -6.524324864460620e+00 -6.530157978732819e+00 + -6.535998224564008e+00 -6.541845604255500e+00 -6.547700131469085e+00 -6.553561819849423e+00 -6.559430671612207e+00 + -6.565306688088189e+00 -6.571189878497283e+00 -6.577080253965905e+00 -6.582977825357318e+00 -6.588882601649868e+00 + -6.594794584545345e+00 -6.600713776640095e+00 -6.606640191385222e+00 -6.612573842086468e+00 -6.618514730613387e+00 + -6.624462858757332e+00 -6.630418239433046e+00 -6.636380885778538e+00 -6.642350800701542e+00 -6.648327986279747e+00 + -6.654312451500913e+00 -6.660304207148021e+00 -6.666303264274883e+00 -6.672309632144893e+00 -6.678323312588955e+00 + -6.684344308236361e+00 -6.690372632342481e+00 -6.696408298209058e+00 -6.702451308697293e+00 -6.708501665794167e+00 + -6.714559378430309e+00 -6.720624457416141e+00 -6.726696914137652e+00 -6.732776758078630e+00 -6.738863990538500e+00 + -6.744958613795213e+00 -6.751060642225177e+00 -6.757170089911689e+00 -6.763286957667176e+00 -6.769411246357500e+00 + -6.775542970333119e+00 -6.781682144164359e+00 -6.787828769816468e+00 -6.793982848306231e+00 -6.800144389461610e+00 + -6.806313405086916e+00 -6.812489906080716e+00 -6.818673901333698e+00 -6.824865392610781e+00 -6.831064382650163e+00 + -6.837270885208925e+00 -6.843484914029985e+00 -6.849706471780753e+00 -6.855935560196301e+00 -6.862172188357874e+00 + -6.868416367348060e+00 -6.874668108908677e+00 -6.880927422841348e+00 -6.887194310527692e+00 -6.893468774218006e+00 + -6.899750828057308e+00 -6.906040486046904e+00 -6.912337749718504e+00 -6.918642620544160e+00 -6.924955112226868e+00 + -6.931275238742860e+00 -6.937603002930438e+00 -6.943938406703657e+00 -6.950281459417487e+00 -6.956632172330878e+00 + -6.962990556877839e+00 -6.969356622516854e+00 -6.975730370629293e+00 -6.982111803620415e+00 -6.988500936068168e+00 + -6.994897782349220e+00 -7.001302343862422e+00 -7.007714621896787e+00 -7.014134630279748e+00 -7.020562383120512e+00 + -7.026997883116998e+00 -7.033441132058707e+00 -7.039892139512705e+00 -7.046350916975187e+00 -7.052817475881351e+00 + -7.059291825658977e+00 -7.065773967767182e+00 -7.072263904706783e+00 -7.078761651114045e+00 -7.085267221537997e+00 + -7.091780618043302e+00 -7.098301841735545e+00 -7.104830902368316e+00 -7.111367811800725e+00 -7.117912581665987e+00 + -7.124465221496127e+00 -7.131025732644298e+00 -7.137594117517873e+00 -7.144170390919956e+00 -7.150754567380619e+00 + -7.157346647942116e+00 -7.163946633668109e+00 -7.170554539195697e+00 -7.177170379365883e+00 -7.183794156261903e+00 + -7.190425870988396e+00 -7.197065533493338e+00 -7.203713155838439e+00 -7.210368749697043e+00 -7.217032324589560e+00 + -7.223703881813015e+00 -7.230383423705708e+00 -7.237070964994412e+00 -7.243766520390449e+00 -7.250470092154861e+00 + -7.257181681552523e+00 -7.263901298313877e+00 -7.270628954301988e+00 -7.277364661444877e+00 -7.284108429522252e+00 + -7.290860259655573e+00 -7.297620154032538e+00 -7.304388127764033e+00 -7.311164195737019e+00 -7.317948359019635e+00 + -7.324740618617562e+00 -7.331540989105481e+00 -7.338349485298712e+00 -7.345166109406192e+00 -7.351990862719772e+00 + -7.358823755469352e+00 -7.365664799915581e+00 -7.372514007504119e+00 -7.379371387574386e+00 -7.386236941855793e+00 + -7.393110673113762e+00 -7.399992595867711e+00 -7.406882724521767e+00 -7.413781061264927e+00 -7.420687607444220e+00 + -7.427602373253923e+00 -7.434525370953283e+00 -7.441456612214240e+00 -7.448396106579596e+00 -7.455343855662903e+00 + -7.462299862106879e+00 -7.469264140600134e+00 -7.476236705537742e+00 -7.483217558094771e+00 -7.490206699573982e+00 + -7.497204145008848e+00 -7.504209909607961e+00 -7.511223995549668e+00 -7.518246403916826e+00 -7.525277144440522e+00 + -7.532316229110418e+00 -7.539363670302306e+00 -7.546419478207750e+00 -7.553483653895294e+00 -7.560556199398457e+00 + -7.567637129733686e+00 -7.574726459966183e+00 -7.581824192373288e+00 -7.588930328179804e+00 -7.596044877188221e+00 + -7.603167851392376e+00 -7.610299262973792e+00 -7.617439121971403e+00 -7.624587429666054e+00 -7.631744188388593e+00 + -7.638909413427992e+00 -7.646083119762239e+00 -7.653265308167305e+00 -7.660455979470388e+00 -7.667655148905554e+00 + -7.674862831955687e+00 -7.682079030692125e+00 -7.689303746121935e+00 -7.696536988406601e+00 -7.703778769965018e+00 + -7.711029103091334e+00 -7.718287997777487e+00 -7.725555454931286e+00 -7.732831476489904e+00 -7.740116077592081e+00 + -7.747409273463959e+00 -7.754711066479733e+00 -7.762021457991705e+00 -7.769340458116517e+00 -7.776668079072852e+00 + -7.784004332723263e+00 -7.791349228774319e+00 -7.798702768664788e+00 -7.806064954991001e+00 -7.813435803247359e+00 + -7.820815328504128e+00 -7.828203531237023e+00 -7.835600412067597e+00 -7.843005986795347e+00 -7.850420271453628e+00 + -7.857843267833355e+00 -7.865274976500961e+00 -7.872715407367362e+00 -7.880164572827870e+00 -7.887622485870939e+00 + -7.895089157097287e+00 -7.902564586963549e+00 -7.910048776908389e+00 -7.917541742442640e+00 -7.925043499243823e+00 + -7.932554049584044e+00 -7.940073394568305e+00 -7.947601544038569e+00 -7.955138510136092e+00 -7.962684305462377e+00 + -7.970238940357911e+00 -7.977802415658878e+00 -7.985374733292938e+00 -7.992955909057959e+00 -8.000545958501995e+00 + -8.008144882303682e+00 -8.015752681155906e+00 -8.023369370677967e+00 -8.030994966700497e+00 -8.038629470973136e+00 + -8.046272884117311e+00 -8.053925216322545e+00 -8.061586480220186e+00 -8.069256688640843e+00 -8.076935852017314e+00 + -8.084623970991846e+00 -8.092321047230506e+00 -8.100027096285098e+00 -8.107742133772728e+00 -8.115466161685978e+00 + -8.123199180963685e+00 -8.130941201954130e+00 -8.138692237272345e+00 -8.146452299190864e+00 -8.154221397655556e+00 + -8.161999533648068e+00 -8.169786709369063e+00 -8.177582940859525e+00 -8.185388243772254e+00 -8.193202618367051e+00 + -8.201026064968486e+00 -8.208858599553158e+00 -8.216700238370747e+00 -8.224550983111227e+00 -8.232410834288519e+00 + -8.240279802271914e+00 -8.248157899820946e+00 -8.256045139400785e+00 -8.263941531127587e+00 -8.271847076015916e+00 + -8.279761776165609e+00 -8.287685647119202e+00 -8.295618704371698e+00 -8.303560949785306e+00 -8.311512384182917e+00 + -8.319473017862927e+00 -8.327442863513763e+00 -8.335421933908444e+00 -8.343410239406900e+00 -8.351407780632112e+00 + -8.359414559352070e+00 -8.367430591651793e+00 -8.375455893292965e+00 -8.383490464426892e+00 -8.391534305333888e+00 + -8.399587432420665e+00 -8.407649862295598e+00 -8.415721596247392e+00 -8.423802634359653e+00 -8.431892987215194e+00 + -8.439992667917126e+00 -8.448101689150496e+00 -8.456220061058572e+00 -8.464347784035521e+00 -8.472484859778373e+00 + -8.480631304944675e+00 -8.488787135775029e+00 -8.496952351881781e+00 -8.505126952972617e+00 -8.513310955764712e+00 + -8.521504377280520e+00 -8.529707218754108e+00 -8.537919480083488e+00 -8.546141171610756e+00 -8.554372306334406e+00 + -8.562612897434500e+00 -8.570862955488629e+00 -8.579122480482935e+00 -8.587391473585072e+00 -8.595669951280222e+00 + -8.603957930092136e+00 -8.612255411381385e+00 -8.620562395277888e+00 -8.628878892152137e+00 -8.637204914976417e+00 + -8.645540476889700e+00 -8.653885588365707e+00 -8.662240249050400e+00 -8.670604460002718e+00 -8.678978238761259e+00 + -8.687361602440037e+00 -8.695754549975142e+00 -8.704157080317993e+00 -8.712569210659231e+00 -8.720990958572770e+00 + -8.729422324926496e+00 -8.737863309144757e+00 -8.746313921583734e+00 -8.754774175423437e+00 -8.763244084207386e+00 + -8.771723658743657e+00 -8.780212898534927e+00 -8.788711804325507e+00 -8.797220393131562e+00 -8.805738681960509e+00 + -8.814266671512945e+00 -8.822804361262596e+00 -8.831351762082482e+00 -8.839908887544672e+00 -8.848475750618142e+00 + -8.857052361519681e+00 -8.865638720060298e+00 -8.874234827408518e+00 -8.882840700568694e+00 -8.891456356239988e+00 + -8.900081794065120e+00 -8.908717013654563e+00 -8.917362031546196e+00 -8.926016864607513e+00 -8.934681514097109e+00 + -8.943355979966887e+00 -8.952040272550780e+00 -8.960734404827180e+00 -8.969438389970174e+00 -8.978152238557112e+00 + -8.986875950582608e+00 -8.995609527224275e+00 -9.004352984974421e+00 -9.013106340348738e+00 -9.021869594641789e+00 + -9.030642747850949e+00 -9.039425810005964e+00 -9.048218793898496e+00 -9.057021713335553e+00 -9.065834579375275e+00 + -9.074657391064932e+00 -9.083490148798390e+00 -9.092332870366718e+00 -9.101185573233034e+00 -9.110048256151465e+00 + -9.118920917820537e+00 -9.127803575425368e+00 -9.136696246597257e+00 -9.145598932265708e+00 -9.154511631860180e+00 + -9.163434355511646e+00 -9.172367116215408e+00 -9.181309927722621e+00 -9.190262801063124e+00 -9.199225735625708e+00 + -9.208198731948572e+00 -9.217181806808554e+00 -9.226174977077383e+00 -9.235178243767663e+00 -9.244191606592038e+00 + -9.253215075922315e+00 -9.262248664894432e+00 -9.271292387041701e+00 -9.280346253080740e+00 -9.289410262064051e+00 + -9.298484414471314e+00 -9.307568728155069e+00 -9.316663220573421e+00 -9.325767890233902e+00 -9.334882735648362e+00 + -9.344007774296474e+00 -9.353143024056331e+00 -9.362288485431986e+00 -9.371444157433135e+00 -9.380610050466057e+00 + -9.389786177888119e+00 -9.398972553464475e+00 -9.408169188076664e+00 -9.417376080663951e+00 -9.426593231436920e+00 + -9.435820657633688e+00 -9.445058376575700e+00 -9.454306388890288e+00 -9.463564693828612e+00 -9.472833301831271e+00 + -9.482112226230582e+00 -9.491401480736307e+00 -9.500701076124317e+00 -9.510011011057383e+00 -9.519331285649606e+00 + -9.528661917933491e+00 -9.538002925632075e+00 -9.547354307312132e+00 -9.556716061430350e+00 -9.566088205159264e+00 + -9.575470756067922e+00 -9.584863714595665e+00 -9.594267079809105e+00 -9.603680862413734e+00 -9.613105076017005e+00 + -9.622539734195460e+00 -9.631984847535897e+00 -9.641440414697058e+00 -9.650906435763309e+00 -9.660382928449559e+00 + -9.669869910482992e+00 -9.679367382009378e+00 -9.688875341677877e+00 -9.698393799732578e+00 -9.707922769547205e+00 + -9.717462265419133e+00 -9.727012298576232e+00 -9.736572867044643e+00 -9.746143970285512e+00 -9.755725626701739e+00 + -9.765317854403191e+00 -9.774920651385886e+00 -9.784534015610914e+00 -9.794157965013451e+00 -9.803792517858509e+00 + -9.813437673756464e+00 -9.823093430886084e+00 -9.832759800354408e+00 -9.842436796281985e+00 -9.852124431915341e+00 + -9.861822717446652e+00 -9.871531651724764e+00 -9.881251235098006e+00 -9.890981485255914e+00 -9.900722419735771e+00 + -9.910474038124631e+00 -9.920236338721825e+00 -9.930009332625946e+00 -9.939793033953066e+00 -9.949587456089942e+00 + -9.959392609292857e+00 -9.969208492025555e+00 -9.979035104343238e+00 -9.988872464459540e+00 -9.998720590171930e+00 + -1.000857947945488e+01 -1.001844913033355e+01 -1.002832956085879e+01 -1.003822078906736e+01 -1.004812281291406e+01 + -1.005803562971182e+01 -1.006795925428782e+01 -1.007789370360111e+01 -1.008783898562387e+01 -1.009779510571246e+01 + -1.010776206774677e+01 -1.011773987740720e+01 -1.012772854905251e+01 -1.013772809631413e+01 -1.014773852123577e+01 + -1.015775982444731e+01 -1.016779201251112e+01 -1.017783509576905e+01 -1.018788909374848e+01 -1.019795402262726e+01 + -1.020802987599985e+01 -1.021811664796306e+01 -1.022821435720666e+01 -1.023832302389762e+01 -1.024844264951883e+01 + -1.025857323411911e+01 -1.026871479069502e+01 -1.027886733277511e+01 -1.028903086306819e+01 -1.029920538356622e+01 + -1.030939090421369e+01 -1.031958743714735e+01 -1.032979499532081e+01 -1.034001358910991e+01 -1.035024321776280e+01 + -1.036048388191000e+01 -1.037073559883907e+01 -1.038099838556339e+01 -1.039127224134250e+01 -1.040155716512729e+01 + -1.041185317238784e+01 -1.042216027887615e+01 -1.043247848495290e+01 -1.044280779013644e+01 -1.045314820596725e+01 + -1.046349974688984e+01 -1.047386242694284e+01 -1.048423625623699e+01 -1.049462122957744e+01 -1.050501734396915e+01 + -1.051542462052187e+01 -1.052584308069211e+01 -1.053627272321853e+01 -1.054671354447971e+01 -1.055716555413174e+01 + -1.056762876571201e+01 -1.057810319500591e+01 -1.058858885406686e+01 -1.059908573777257e+01 -1.060959384260205e+01 + -1.062011318861535e+01 -1.063064379594653e+01 -1.064118566144451e+01 -1.065173878128750e+01 -1.066230317225584e+01 + -1.067287885251234e+01 -1.068346582514766e+01 -1.069406409086973e+01 -1.070467365592747e+01 -1.071529452946521e+01 + -1.072592672666786e+01 -1.073657026057826e+01 -1.074722512963040e+01 -1.075789133336255e+01 -1.076856889033910e+01 + -1.077925781838790e+01 -1.078995811336476e+01 -1.080066977044343e+01 -1.081139280404170e+01 -1.082212723175914e+01 + -1.083287306467895e+01 -1.084363031023443e+01 -1.085439896777578e+01 -1.086517903841335e+01 -1.087597053838113e+01 + -1.088677348334085e+01 -1.089758787154147e+01 -1.090841370173705e+01 -1.091925099211483e+01 -1.093009976068779e+01 + -1.094096000533889e+01 -1.095183172286895e+01 -1.096271492588021e+01 -1.097360962990334e+01 -1.098451584638146e+01 + -1.099543358339704e+01 -1.100636283967740e+01 -1.101730361593110e+01 -1.102825593014644e+01 -1.103921979985815e+01 + -1.105019522350652e+01 -1.106118219809120e+01 -1.107218073394329e+01 -1.108319084475604e+01 -1.109421254433972e+01 + -1.110524584310812e+01 -1.111629073777213e+01 -1.112734722664297e+01 -1.113841532813614e+01 -1.114949506055284e+01 + -1.116058642163307e+01 -1.117168940919924e+01 -1.118280404196459e+01 -1.119393033845125e+01 -1.120506829552628e+01 + -1.121621790821428e+01 -1.122737918582522e+01 -1.123855214233318e+01 -1.124973679608346e+01 -1.126093316109601e+01 + -1.127214122971816e+01 -1.128336099568353e+01 -1.129459247994368e+01 -1.130583570391351e+01 -1.131709066364352e+01 + -1.132835735316995e+01 -1.133963578383626e+01 -1.135092597165251e+01 -1.136222793398803e+01 -1.137354168289046e+01 + -1.138486720776133e+01 -1.139620450077960e+01 -1.140755358788016e+01 -1.141891449467379e+01 -1.143028721171902e+01 + -1.144167172931863e+01 -1.145306807180483e+01 -1.146447626363145e+01 -1.147589629570943e+01 -1.148732815744427e+01 + -1.149877186576219e+01 -1.151022744176966e+01 -1.152169489577362e+01 -1.153317423307527e+01 -1.154466544975234e+01 + -1.155616854500299e+01 -1.156768353973055e+01 -1.157921045411968e+01 -1.159074928377541e+01 -1.160230002278200e+01 + -1.161386268372032e+01 -1.162543728297182e+01 -1.163702383362365e+01 -1.164862234413445e+01 -1.166023280774309e+01 + -1.167185522083641e+01 -1.168348960761297e+01 -1.169513599109641e+01 -1.170679436179895e+01 -1.171846471050954e+01 + -1.173014706163534e+01 -1.174184143967664e+01 -1.175354783588804e+01 -1.176526623959987e+01 -1.177699666569085e+01 + -1.178873913359907e+01 -1.180049365545172e+01 -1.181226023874721e+01 -1.182403887977966e+01 -1.183582957710202e+01 + -1.184763234950681e+01 -1.185944721571250e+01 -1.187127417390187e+01 -1.188311322026980e+01 -1.189496436359524e+01 + -1.190682761635663e+01 -1.191870299324639e+01 -1.193059050542573e+01 -1.194249014771712e+01 -1.195440191732676e+01 + -1.196632583733436e+01 -1.197826192918009e+01 -1.199021018187259e+01 -1.200217058481946e+01 -1.201414316145583e+01 + -1.202612793653577e+01 -1.203812490606177e+01 -1.205013406283600e+01 -1.206215541561094e+01 -1.207418897775090e+01 + -1.208623476511758e+01 -1.209829279023755e+01 -1.211036304979982e+01 -1.212244554104682e+01 -1.213454027927224e+01 + -1.214664728029985e+01 -1.215876654402256e+01 -1.217089806888390e+01 -1.218304186346073e+01 -1.219519793969503e+01 + -1.220736631285608e+01 -1.221954699446002e+01 -1.223173997768314e+01 -1.224394525782826e+01 -1.225616285704409e+01 + -1.226839279716718e+01 -1.228063507193962e+01 -1.229288967419984e+01 -1.230515662126608e+01 -1.231743593190913e+01 + -1.232972760623024e+01 -1.234203164189830e+01 -1.235434804552219e+01 -1.236667682754052e+01 -1.237901800477097e+01 + -1.239137159078778e+01 -1.240373757981251e+01 -1.241611596680448e+01 -1.242850676902663e+01 -1.244091000477032e+01 + -1.245332567413717e+01 -1.246575377485128e+01 -1.247819431331654e+01 -1.249064729993889e+01 -1.250311275245252e+01 + -1.251559068470151e+01 -1.252808108764087e+01 -1.254058395403090e+01 -1.255309930674196e+01 -1.256562716858205e+01 + -1.257816753199971e+01 -1.259072038911156e+01 -1.260328576106586e+01 -1.261586366917709e+01 -1.262845410639316e+01 + -1.264105706405277e+01 -1.265367255542431e+01 -1.266630059802175e+01 -1.267894120441173e+01 -1.269159438291520e+01 + -1.270426012981745e+01 -1.271693844300063e+01 -1.272962933876972e+01 -1.274233283335257e+01 -1.275504892424538e+01 + -1.276777760888006e+01 -1.278051890316245e+01 -1.279327282335948e+01 -1.280603936870822e+01 -1.281881853703964e+01 + -1.283161033759003e+01 -1.284441478278821e+01 -1.285723188642777e+01 -1.287006165845383e+01 -1.288290409205257e+01 + -1.289575918258311e+01 -1.290862695085492e+01 -1.292150741744502e+01 -1.293440057655018e+01 -1.294730642109768e+01 + -1.296022496531707e+01 -1.297315622664438e+01 -1.298610021403966e+01 -1.299905693252094e+01 -1.301202637981436e+01 + -1.302500855607946e+01 -1.303800347850134e+01 -1.305101116311717e+01 -1.306403160434687e+01 -1.307706479749205e+01 + -1.309011076299821e+01 -1.310316952145874e+01 -1.311624106891474e+01 -1.312932539865738e+01 -1.314242251753035e+01 + -1.315553243732881e+01 -1.316865517610136e+01 -1.318179074759510e+01 -1.319493914209791e+01 -1.320810035188408e+01 + -1.322127440063306e+01 -1.323446131182036e+01 -1.324766107670098e+01 -1.326087368408213e+01 -1.327409914520021e+01 + -1.328733747660298e+01 -1.330058869365459e+01 -1.331385280702646e+01 -1.332712980980294e+01 -1.334041969690924e+01 + -1.335372248822127e+01 -1.336703820316815e+01 -1.338036683444133e+01 -1.339370837465144e+01 -1.340706284282357e+01 + -1.342043025877972e+01 -1.343381061911550e+01 -1.344720391854233e+01 -1.346061016746156e+01 -1.347402937953320e+01 + -1.348746156576247e+01 -1.350090673400032e+01 -1.351436488213541e+01 -1.352783600940468e+01 -1.354132013040003e+01 + -1.355481725974633e+01 -1.356832739684519e+01 -1.358185053959114e+01 -1.359538669507347e+01 -1.360893587411229e+01 + -1.362249809325635e+01 -1.363607336498644e+01 -1.364966167978290e+01 -1.366326303005515e+01 -1.367687743792930e+01 + -1.369050492543861e+01 -1.370414548452841e+01 -1.371779910680898e+01 -1.373146581263829e+01 -1.374514562258463e+01 + -1.375883852931014e+01 -1.377254452369323e+01 -1.378626361738342e+01 -1.379999582664259e+01 -1.381374116541099e+01 + -1.382749964295472e+01 -1.384127125216480e+01 -1.385505598801133e+01 -1.386885387015567e+01 -1.388266491822051e+01 + -1.389648912698253e+01 -1.391032648926665e+01 -1.392417701493663e+01 -1.393804071810552e+01 -1.395191761284479e+01 + -1.396580770902492e+01 -1.397971099975399e+01 -1.399362747983656e+01 -1.400755716762526e+01 -1.402150008127576e+01 + -1.403545621460787e+01 -1.404942556175519e+01 -1.406340814244217e+01 -1.407740397661280e+01 -1.409141305949836e+01 + -1.410543538386059e+01 -1.411947095729565e+01 -1.413351979216372e+01 -1.414758190504674e+01 -1.416165730817942e+01 + -1.417574599218579e+01 -1.418984794931155e+01 -1.420396319989974e+01 -1.421809176459019e+01 -1.423223363711269e+01 + -1.424638880961032e+01 -1.426055729478944e+01 -1.427473910897708e+01 -1.428893426241975e+01 -1.430314276106135e+01 + -1.431736459971596e+01 -1.433159977568000e+01 -1.434584830730895e+01 -1.436011021230267e+01 -1.437438548467938e+01 + -1.438867411856965e+01 -1.440297613223502e+01 -1.441729154417122e+01 -1.443162034967981e+01 -1.444596254173529e+01 + -1.446031812719803e+01 -1.447468711827448e+01 -1.448906953466952e+01 -1.450346539077074e+01 -1.451787467219810e+01 + -1.453229736674074e+01 -1.454673349963205e+01 -1.456118309651608e+01 -1.457564614723534e+01 -1.459012263904241e+01 + -1.460461258463169e+01 -1.461911600163362e+01 -1.463363290198108e+01 -1.464816329304780e+01 -1.466270716966852e+01 + -1.467726452861927e+01 -1.469183538698022e+01 -1.470641976118071e+01 -1.472101764474266e+01 -1.473562903182180e+01 + -1.475025394201659e+01 -1.476489239431922e+01 -1.477954437985420e+01 -1.479420988900897e+01 -1.480888893709030e+01 + -1.482358154289730e+01 -1.483828771427918e+01 -1.485300745484606e+01 -1.486774076220148e+01 -1.488248763590571e+01 + -1.489724808935241e+01 -1.491202213620220e+01 -1.492680977735018e+01 -1.494161101188853e+01 -1.495642584446314e+01 + -1.497125428281713e+01 -1.498609634152866e+01 -1.500095203243959e+01 -1.501582134961145e+01 -1.503070428834008e+01 + -1.504560086663885e+01 -1.506051110171047e+01 -1.507543498479744e+01 -1.509037250787217e+01 -1.510532369178669e+01 + -1.512028855781273e+01 -1.513526710002122e+01 -1.515025931004586e+01 -1.516526519697226e+01 -1.518028477406786e+01 + -1.519531805387558e+01 -1.521036504514735e+01 -1.522542574219565e+01 -1.524050014105165e+01 -1.525558825906066e+01 + -1.527069011317451e+01 -1.528580569745696e+01 -1.530093500454836e+01 -1.531607804428359e+01 -1.533123483115148e+01 + -1.534640538106230e+01 -1.536158970459035e+01 -1.537678778954449e+01 -1.539199962605270e+01 -1.540722523628471e+01 + -1.542246464244602e+01 -1.543771783484346e+01 -1.545298480379291e+01 -1.546826557154514e+01 -1.548356016030771e+01 + -1.549886856018057e+01 -1.551419075889859e+01 -1.552952676684366e+01 -1.554487659991805e+01 -1.556024027345857e+01 + -1.557561779759322e+01 -1.559100916218038e+01 -1.560641435912106e+01 -1.562183340875659e+01 -1.563726633124305e+01 + -1.565271311755539e+01 -1.566817375858786e+01 -1.568364827409284e+01 -1.569913668435983e+01 -1.571463898296877e+01 + -1.573015516140282e+01 -1.574568522946743e+01 -1.576122920078429e+01 -1.577678708591764e+01 -1.579235889192325e+01 + -1.580794461488044e+01 -1.582354425266206e+01 -1.583915782129173e+01 -1.585478533595468e+01 -1.587042679033195e+01 + -1.588608217713541e+01 -1.590175150670428e+01 -1.591743479377280e+01 -1.593313205302798e+01 -1.594884329356461e+01 + -1.596456850215542e+01 -1.598030766876410e+01 -1.599606081844003e+01 -1.601182797567503e+01 -1.602760912764517e+01 + -1.604340426053651e+01 -1.605921339389068e+01 -1.607503654929621e+01 -1.609087372317365e+01 -1.610672490846679e+01 + -1.612259010938000e+01 -1.613846933535691e+01 -1.615436260553746e+01 -1.617026993400350e+01 -1.618619130490810e+01 + -1.620212670496088e+01 -1.621807616102629e+01 -1.623403970021593e+01 -1.625001731047507e+01 -1.626600897617460e+01 + -1.628201470655392e+01 -1.629803451699528e+01 -1.631406842258372e+01 -1.633011643368945e+01 -1.634617854212047e+01 + -1.636225474110459e+01 -1.637834504811086e+01 -1.639444948009596e+01 -1.641056802772599e+01 -1.642670068226715e+01 + -1.644284746367691e+01 -1.645900839255391e+01 -1.647518346337059e+01 -1.649137266740475e+01 -1.650757600928198e+01 + -1.652379349905581e+01 -1.654002515514406e+01 -1.655627099138395e+01 -1.657253099492616e+01 -1.658880515436409e+01 + -1.660509349074862e+01 -1.662139602569388e+01 -1.663771275060954e+01 -1.665404365442992e+01 -1.667038874639235e+01 + -1.668674804082613e+01 -1.670312155212567e+01 -1.671950928959044e+01 -1.673591124207530e+01 -1.675232740091000e+01 + -1.676875778776886e+01 -1.678520242381186e+01 -1.680166129779755e+01 -1.681813439803682e+01 -1.683462174345131e+01 + -1.685112335404732e+01 -1.686763922355921e+01 -1.688416934305047e+01 -1.690071371917313e+01 -1.691727236387981e+01 + -1.693384529473730e+01 -1.695043252373442e+01 -1.696703403493436e+01 -1.698364981519248e+01 -1.700027989045860e+01 + -1.701692428668450e+01 -1.703358299073511e+01 -1.705025598664567e+01 -1.706694328621936e+01 -1.708364490699094e+01 + -1.710036086165371e+01 -1.711709115711999e+01 -1.713383578201967e+01 -1.715059472804424e+01 -1.716736801741393e+01 + -1.718415567151382e+01 -1.720095767785962e+01 -1.721777402421613e+01 -1.723460473321376e+01 -1.725144982735173e+01 + -1.726830929373925e+01 -1.728518311723097e+01 -1.730207130905323e+01 -1.731897388644410e+01 -1.733589086431708e+01 + -1.735282225151622e+01 -1.736976803493245e+01 -1.738672820398455e+01 -1.740370278015603e+01 -1.742069178532102e+01 + -1.743769521085149e+01 -1.745471304524893e+01 -1.747174529603476e+01 -1.748879197614670e+01 -1.750585310116775e+01 + -1.752292868122209e+01 -1.754001870195336e+01 -1.755712315207324e+01 -1.757424205704595e+01 -1.759137544124289e+01 + -1.760852328791187e+01 -1.762568558032359e+01 -1.764286234296404e+01 -1.766005360135051e+01 -1.767725934391039e+01 + -1.769447955614261e+01 -1.771171424892207e+01 -1.772896343807829e+01 -1.774622713388326e+01 -1.776350534196338e+01 + -1.778079805492016e+01 -1.779810526797336e+01 -1.781542699984077e+01 -1.783276326793605e+01 -1.785011406095838e+01 + -1.786747936642481e+01 -1.788485919583838e+01 -1.790225356596892e+01 -1.791966249066770e+01 -1.793708597750879e+01 + -1.795452401187612e+01 -1.797197658287230e+01 -1.798944371666477e+01 -1.800692543788475e+01 -1.802442172795408e+01 + -1.804193256819016e+01 -1.805945798270200e+01 -1.807699799758296e+01 -1.809455260407236e+01 -1.811212178929598e+01 + -1.812970555877947e+01 -1.814730392419934e+01 -1.816491690343573e+01 -1.818254450889657e+01 -1.820018672489731e+01 + -1.821784353770839e+01 -1.823551496951270e+01 -1.825320104351004e+01 -1.827090175105552e+01 -1.828861707995103e+01 + -1.830634703563002e+01 -1.832409162961503e+01 -1.834185088015348e+01 -1.835962479982180e+01 -1.837741337178776e+01 + -1.839521658191638e+01 -1.841303445627024e+01 -1.843086702044687e+01 -1.844871425798603e+01 -1.846657615155986e+01 + -1.848445272242748e+01 -1.850234399331442e+01 -1.852024995422484e+01 -1.853817059263430e+01 -1.855610591862525e+01 + -1.857405594751762e+01 -1.859202069297440e+01 -1.861000016303027e+01 -1.862799434486363e+01 -1.864600322762024e+01 + -1.866402682917165e+01 -1.868206516860479e+01 -1.870011824114266e+01 -1.871818603889838e+01 -1.873626856540951e+01 + -1.875436582948875e+01 -1.877247784962497e+01 -1.879060463922456e+01 -1.880874618168810e+01 -1.882690246254704e+01 + -1.884507350586227e+01 -1.886325933574866e+01 -1.888145993800745e+01 -1.889967529731236e+01 -1.891790543214035e+01 + -1.893615036295555e+01 -1.895441008436764e+01 -1.897268458788422e+01 -1.899097387845919e+01 -1.900927796546465e+01 + -1.902759686249918e+01 -1.904593057916082e+01 -1.906427910481893e+01 -1.908264243109121e+01 -1.910102057881749e+01 + -1.911941356739387e+01 -1.913782138121961e+01 -1.915624400568942e+01 -1.917468146517671e+01 -1.919313378404767e+01 + -1.921160094766128e+01 -1.923008293912871e+01 -1.924857977157690e+01 -1.926709146357444e+01 -1.928561802544077e+01 + -1.930415946120927e+01 -1.932271575801813e+01 -1.934128690695999e+01 -1.935987293184044e+01 -1.937847385553680e+01 + -1.939708966450047e+01 -1.941572034241033e+01 -1.943436589828115e+01 -1.945302634705033e+01 -1.947170170200994e+01 + -1.949039197138318e+01 -1.950909714476303e+01 -1.952781721398065e+01 -1.954655219845012e+01 -1.956530211609402e+01 + -1.958406695128608e+01 -1.960284668959667e+01 -1.962164135493148e+01 -1.964045097168231e+01 -1.965927552785040e+01 + -1.967811500826448e+01 -1.969696942145404e+01 -1.971583878200212e+01 -1.973472310500559e+01 -1.975362239928199e+01 + -1.977253664801789e+01 -1.979146583743514e+01 -1.981040999152762e+01 -1.982936913462439e+01 -1.984834325462312e+01 + -1.986733233626431e+01 -1.988633638809098e+01 -1.990535542475069e+01 -1.992438946150660e+01 -1.994343850724086e+01 + -1.996250254469571e+01 -1.998158155988759e+01 -2.000067557806942e+01 -2.001978462401460e+01 -2.003890868134189e+01 + -2.005804773353269e+01 -2.007720180467363e+01 -2.009637091866160e+01 -2.011555505802958e+01 -2.013475420367532e+01 + -2.015396837131929e+01 -2.017319758216888e+01 -2.019244184455664e+01 -2.021170116029698e+01 -2.023097551800653e+01 + -2.025026491057744e+01 -2.026956936120177e+01 -2.028888889127859e+01 -2.030822348473533e+01 -2.032757312336421e+01 + -2.034693781788847e+01 -2.036631758558183e+01 -2.038571244098909e+01 -2.040512239225047e+01 -2.042454742461679e+01 + -2.044398752597867e+01 -2.046344271767523e+01 -2.048291302072143e+01 -2.050239842138679e+01 -2.052189890581644e+01 + -2.054141449440303e+01 -2.056094520839277e+01 -2.058049103819856e+01 -2.060005197091200e+01 -2.061962801117254e+01 + -2.063921916971323e+01 -2.065882546409381e+01 -2.067844690614864e+01 -2.069808347798381e+01 -2.071773516441981e+01 + -2.073740199086278e+01 -2.075708398272239e+01 -2.077678112483692e+01 -2.079649339928443e+01 -2.081622081767353e+01 + -2.083596339752241e+01 -2.085572115045732e+01 -2.087549408142252e+01 -2.089528217452614e+01 -2.091508541798258e+01 + -2.093490383726751e+01 -2.095473745703866e+01 -2.097458626142068e+01 -2.099445023367205e+01 -2.101432939411960e+01 + -2.103422376365449e+01 -2.105413332835716e+01 -2.107405807288499e+01 -2.109399801101360e+01 -2.111395316146354e+01 + -2.113392353361706e+01 -2.115390913036233e+01 -2.117390993794961e+01 -2.119392594678185e+01 -2.121395718051052e+01 + -2.123400366165125e+01 -2.125406537492771e+01 -2.127414230292253e+01 -2.129423445744600e+01 -2.131434185603574e+01 + -2.133446450991120e+01 -2.135460242400538e+01 -2.137475558442359e+01 -2.139492398094176e+01 -2.141510763684612e+01 + -2.143530657354728e+01 -2.145552077144329e+01 -2.147575021223202e+01 -2.149599492382317e+01 -2.151625493458459e+01 + -2.153653022850520e+01 -2.155682078515937e+01 -2.157712661084235e+01 -2.159744772002078e+01 -2.161778413312624e+01 + -2.163813586321833e+01 -2.165850288790379e+01 -2.167888518769065e+01 -2.169928279014487e+01 -2.171969572392566e+01 + -2.174012397500749e+01 -2.176056752455845e+01 -2.178102637720577e+01 -2.180150054539059e+01 -2.182199004935065e+01 + -2.184249490264348e+01 -2.186301508430896e+01 -2.188355057625899e+01 -2.190410140641098e+01 -2.192466760199104e+01 + -2.194524914145450e+01 -2.196584600311797e+01 -2.198645821351363e+01 -2.200708580045210e+01 -2.202772874864248e+01 + -2.204838703903658e+01 -2.206906068065864e+01 -2.208974968965916e+01 -2.211045408262128e+01 -2.213117386881762e+01 + -2.215190902784613e+01 -2.217265954271720e+01 -2.219342543976576e+01 -2.221420674565993e+01 -2.223500344507609e+01 + -2.225581551916326e+01 -2.227664297695268e+01 -2.229748583458740e+01 -2.231834410877561e+01 -2.233921780886325e+01 + -2.236010691418214e+01 -2.238101140757746e+01 -2.240193131596196e+01 -2.242286666626994e+01 -2.244381744145418e+01 + -2.246478362333585e+01 -2.248576523319086e+01 -2.250676229308250e+01 -2.252777478876882e+01 -2.254880270395783e+01 + -2.256984605046237e+01 -2.259090484578745e+01 -2.261197910210208e+01 -2.263306882483333e+01 -2.265417399777652e+01 + -2.267529460825966e+01 -2.269643067937303e+01 -2.271758223358744e+01 -2.273874925513337e+01 -2.275993172840441e+01 + -2.278112967668665e+01 -2.280234312326570e+01 -2.282357205253301e+01 -2.284481644618636e+01 -2.286607631404299e+01 + -2.288735167241803e+01 -2.290864253549898e+01 -2.292994891082159e+01 -2.295127078144212e+01 -2.297260813386354e+01 + -2.299396099285480e+01 -2.301532938287575e+01 -2.303671328888409e+01 -2.305811269234469e+01 -2.307952760025338e+01 + -2.310095802706863e+01 -2.312240399156859e+01 -2.314386550544134e+01 -2.316534254769484e+01 -2.318683510020089e+01 + -2.320834318896662e+01 -2.322986684000025e+01 -2.325140603517923e+01 -2.327296075598023e+01 -2.329453102640753e+01 + -2.331611687084991e+01 -2.333771827270656e+01 -2.335933521295700e+01 -2.338096770389138e+01 -2.340261576396985e+01 + -2.342427940502197e+01 -2.344595863230511e+01 -2.346765343141823e+01 -2.348936379112492e+01 -2.351108973250527e+01 + -2.353283127622654e+01 -2.355458840898814e+01 -2.357636111469370e+01 -2.359814940003157e+01 -2.361995327887107e+01 + -2.364177277102066e+01 -2.366360788867084e+01 -2.368545860760097e+01 -2.370732490730504e+01 -2.372920681854641e+01 + -2.375110437181196e+01 -2.377301754521346e+01 -2.379494631547129e+01 -2.381689070611525e+01 -2.383885074279985e+01 + -2.386082641286912e+01 -2.388281770027697e+01 -2.390482461372720e+01 -2.392684716763744e+01 -2.394888537453080e+01 + -2.397093924094647e+01 -2.399300875138237e+01 -2.401509389381072e+01 -2.403719469214220e+01 -2.405931116939521e+01 + -2.408144330908079e+01 -2.410359109227195e+01 -2.412575452979684e+01 -2.414793363861520e+01 -2.417012843045825e+01 + -2.419233891107258e+01 -2.421456506749473e+01 -2.423680688969797e+01 -2.425906439811232e+01 -2.428133761196757e+01 + -2.430362651523593e+01 -2.432593109247103e+01 -2.434825136580965e+01 -2.437058735754595e+01 -2.439293905302052e+01 + -2.441530643508021e+01 -2.443768951355032e+01 -2.446008830475372e+01 -2.448250282402539e+01 -2.450493307947941e+01 + -2.452737905133441e+01 -2.454984072340254e+01 -2.457231812176549e+01 -2.459481127247106e+01 -2.461732015916192e+01 + -2.463984476198997e+01 -2.466238508954903e+01 -2.468494115731883e+01 -2.470751297988127e+01 -2.473010056541401e+01 + -2.475270389737600e+01 -2.477532296279144e+01 -2.479795778766421e+01 -2.482060839605179e+01 -2.484327476524651e+01 + -2.486595687297807e+01 -2.488865474549064e+01 -2.491136841050829e+01 -2.493409785316058e+01 -2.495684305468689e+01 + -2.497960402336061e+01 -2.500238077436705e+01 -2.502517332350563e+01 -2.504798167938967e+01 -2.507080582127416e+01 + -2.509364573240812e+01 -2.511650144137505e+01 -2.513937297643642e+01 -2.516226031923135e+01 -2.518516344740990e+01 + -2.520808236928804e+01 -2.523101710100030e+01 -2.525396765928963e+01 -2.527693405405919e+01 -2.529991626724470e+01 + -2.532291428361040e+01 -2.534592812720204e+01 -2.536895782110043e+01 -2.539200334524508e+01 -2.541506468057373e+01 + -2.543814185515816e+01 -2.546123489657537e+01 -2.548434378328921e+01 -2.550746849096137e+01 -2.553060903315797e+01 + -2.555376543163097e+01 -2.557693770297151e+01 -2.560012585444837e+01 -2.562332986120158e+01 -2.564654970308929e+01 + -2.566978541097076e+01 -2.569303701597250e+01 -2.571630449928904e+01 -2.573958783754457e+01 -2.576288703901380e+01 + -2.578620212017663e+01 -2.580953309868325e+01 -2.583287998467666e+01 -2.585624275710073e+01 -2.587962139846310e+01 + -2.590301593672573e+01 -2.592642639921134e+01 -2.594985276523152e+01 -2.597329501305775e+01 -2.599675316481207e+01 + -2.602022724494944e+01 -2.604371724340627e+01 -2.606722314554395e+01 -2.609074495294231e+01 -2.611428267453130e+01 + -2.613783633242288e+01 -2.616140594232113e+01 -2.618499148111656e+01 -2.620859292804694e+01 -2.623221031055255e+01 + -2.625584365675950e+01 -2.627949294933480e+01 -2.630315816707157e+01 -2.632683931872623e+01 -2.635053642045652e+01 + -2.637424948806206e+01 -2.639797853015353e+01 -2.642172352694394e+01 -2.644548446269175e+01 -2.646926136623515e+01 + -2.649305426487780e+01 -2.651686313520573e+01 -2.654068795336410e+01 -2.656452874445229e+01 -2.658838553565089e+01 + -2.661225831351167e+01 -2.663614706041860e+01 -2.666005178271351e+01 -2.668397249386109e+01 -2.670790921185966e+01 + -2.673186194785124e+01 -2.675583068101895e+01 -2.677981539336416e+01 -2.680381611012034e+01 -2.682783285712106e+01 + -2.685186561936856e+01 -2.687591437786270e+01 -2.689997913842517e+01 -2.692405991477839e+01 -2.694815672742597e+01 + -2.697226958936361e+01 -2.699639847677425e+01 -2.702054336911223e+01 -2.704470429573021e+01 -2.706888128546201e+01 + -2.709307431516761e+01 -2.711728336172764e+01 -2.714150845407871e+01 -2.716574962162754e+01 -2.719000684360529e+01 + -2.721428009605862e+01 -2.723856939247152e+01 -2.726287475352885e+01 -2.728719619128178e+01 -2.731153370993099e+01 + -2.733588729090867e+01 -2.736025692081293e+01 -2.738464262967399e+01 -2.740904444482641e+01 -2.743346233939021e+01 + -2.745789628706843e+01 -2.748234631811058e+01 -2.750681246441337e+01 -2.753129470791622e+01 -2.755579302585287e+01 + -2.758030742659158e+01 -2.760483792680023e+01 -2.762938454521084e+01 -2.765394729250735e+01 -2.767852614511706e+01 + -2.770312108289846e+01 -2.772773213369129e+01 -2.775235932608502e+01 -2.777700264368704e+01 -2.780166206614083e+01 + -2.782633760221619e+01 -2.785102926812099e+01 -2.787573708068912e+01 -2.790046104903706e+01 -2.792520115078565e+01 + -2.794995736764946e+01 -2.797472972921345e+01 -2.799951826412358e+01 -2.802432294939970e+01 -2.804914376169005e+01 + -2.807398072778233e+01 -2.809883387567351e+01 -2.812370318805837e+01 -2.814858864438241e+01 -2.817349025639583e+01 + -2.819840804241009e+01 -2.822334201467696e+01 -2.824829217820057e+01 -2.827325851505399e+01 -2.829824101147483e+01 + -2.832323969328987e+01 -2.834825458594292e+01 -2.837328567375688e+01 -2.839833293713809e+01 -2.842339638194745e+01 + -2.844847602232610e+01 -2.847357188008160e+01 -2.849868396869187e+01 -2.852381226064981e+01 -2.854895673259501e+01 + -2.857411741873861e+01 -2.859929435285462e+01 -2.862448750939692e+01 -2.864969686163745e+01 -2.867492243744038e+01 + -2.870016426611871e+01 -2.872542232818885e+01 -2.875069660076976e+01 -2.877598709618692e+01 -2.880129383482867e+01 + -2.882661683412842e+01 -2.885195610246809e+01 -2.887731161497835e+01 -2.890268335136361e+01 -2.892807134287440e+01 + -2.895347562064698e+01 -2.897889616381469e+01 -2.900433294736006e+01 -2.902978598166526e+01 -2.905525528595928e+01 + -2.908074087945912e+01 -2.910624277257485e+01 -2.913176094050105e+01 -2.915729536236611e+01 -2.918284606824940e+01 + -2.920841308797334e+01 -2.923399639938179e+01 -2.925959597987842e+01 -2.928521185708459e+01 -2.931084405942344e+01 + -2.933649256830759e+01 -2.936215736109871e+01 -2.938783844596477e+01 -2.941353583979598e+01 -2.943924956356517e+01 + -2.946497963001566e+01 -2.949072601489006e+01 -2.951648869675137e+01 -2.954226770244480e+01 -2.956806305999476e+01 + -2.959387475386040e+01 -2.961970276467950e+01 -2.964554710136948e+01 -2.967140778023144e+01 -2.969728481882160e+01 + -2.972317822671904e+01 -2.974908798033929e+01 -2.977501406036931e+01 -2.980095649774566e+01 -2.982691532231985e+01 + -2.985289050935425e+01 -2.987888203414534e+01 -2.990488992671488e+01 -2.993091421806754e+01 -2.995695488841446e+01 + -2.998301191396682e+01 -3.000908530572931e+01 -3.003517508294127e+01 -3.006128126298706e+01 -3.008740385472813e+01 + -3.011354283478899e+01 -3.013969818396866e+01 -3.016586993200092e+01 -3.019205810852835e+01 -3.021826269389396e+01 + -3.024448366459688e+01 -3.027072103106001e+01 -3.029697481234801e+01 -3.032324502816885e+01 -3.034953168930138e+01 + -3.037583477016444e+01 -3.040215424919064e+01 -3.042849015722735e+01 -3.045484252487287e+01 -3.048121132931426e+01 + -3.050759654718701e+01 -3.053399820633122e+01 -3.056041633582694e+01 -3.058685091850949e+01 -3.061330193277164e+01 + -3.063976938548045e+01 -3.066625329189824e+01 -3.069275367239408e+01 -3.071927054017274e+01 -3.074580387467516e+01 + -3.077235365736276e+01 -3.079891991154272e+01 -3.082550266154129e+01 -3.085210189391538e+01 -3.087871759159065e+01 + -3.090534976073683e+01 -3.093199841535169e+01 -3.095866357750086e+01 -3.098534526117247e+01 -3.101204343997652e+01 + -3.103875809113482e+01 -3.106548924669440e+01 -3.109223693806243e+01 -3.111900113926174e+01 -3.114578182447812e+01 + -3.117257902593346e+01 -3.119939277712214e+01 -3.122622305859262e+01 -3.125306984560579e+01 -3.127993314521812e+01 + -3.130681297362548e+01 -3.133370935178603e+01 -3.136062229292185e+01 -3.138755177454848e+01 -3.141449777743489e+01 + -3.144146033107010e+01 -3.146843946420585e+01 -3.149543515392452e+01 -3.152244737446985e+01 -3.154947614039987e+01 + -3.157652147508332e+01 -3.160358339681746e+01 -3.163066191390917e+01 -3.165775699977537e+01 -3.168486863280270e+01 + -3.171199684614663e+01 -3.173914167265754e+01 -3.176630308919665e+01 -3.179348107134120e+01 -3.182067564552154e+01 + -3.184788683989369e+01 -3.187511463866380e+01 -3.190235902163426e+01 -3.192961999494226e+01 -3.195689757352222e+01 + -3.198419178116283e+01 -3.201150263346307e+01 -3.203883010440887e+01 -3.206617417058478e+01 -3.209353486058297e+01 + -3.212091220418486e+01 -3.214830618392138e+01 -3.217571677868305e+01 -3.220314400004898e+01 -3.223058786708538e+01 + -3.225804839611857e+01 -3.228552559489243e+01 -3.231301943956095e+01 -3.234052991162765e+01 -3.236805704558397e+01 + -3.239560087404328e+01 -3.242316136911894e+01 -3.245073850255218e+01 -3.247833230509534e+01 -3.250594280965240e+01 + -3.253356999872297e+01 -3.256121385028732e+01 -3.258887437465276e+01 -3.261655158960600e+01 -3.264424551052439e+01 + -3.267195614529539e+01 -3.269968347425627e+01 -3.272742748229857e+01 -3.275518820008119e+01 -3.278296565603427e+01 + -3.281075982390590e+01 -3.283857067801981e+01 -3.286639824968410e+01 -3.289424257141810e+01 -3.292210362360176e+01 + -3.294998138240963e+01 -3.297787585933321e+01 -3.300578707421773e+01 -3.303371504500630e+01 -3.306165978102434e+01 + -3.308962125902853e+01 -3.311759946003357e+01 -3.314559441465483e+01 -3.317360615365304e+01 -3.320163465877013e+01 + -3.322967990687330e+01 -3.325774190434956e+01 -3.328582066713852e+01 -3.331391621987054e+01 -3.334202857831301e+01 + -3.337015771409062e+01 -3.339830360273710e+01 -3.342646627956469e+01 -3.345464577921614e+01 -3.348284207387808e+01 + -3.351105513572078e+01 -3.353928499930519e+01 -3.356753169996216e+01 -3.359579521371194e+01 -3.362407551222610e+01 + -3.365237260909204e+01 -3.368068652715969e+01 -3.370901728441355e+01 -3.373736488954338e+01 -3.376572931892538e+01 + -3.379411055342771e+01 -3.382250862419983e+01 -3.385092356238306e+01 -3.387935534880526e+01 -3.390780395979943e+01 + -3.393626940403256e+01 -3.396475169950308e+01 -3.399325086920118e+01 -3.402176692682492e+01 -3.405029984391190e+01 + -3.407884959628061e+01 -3.410741621903333e+01 -3.413599974690003e+01 -3.416460015383780e+01 -3.419321741347679e+01 + -3.422185155891206e+01 -3.425050262370409e+01 -3.427917058381036e+01 -3.430785541111823e+01 -3.433655711883738e+01 + -3.436527572977491e+01 -3.439401126380553e+01 -3.442276373145798e+01 -3.445153310880944e+01 -3.448031937598221e+01 + -3.450912256373026e+01 -3.453794270224409e+01 -3.456677976882821e+01 -3.459563373771100e+01 -3.462450462370172e+01 + -3.465339245071625e+01 -3.468229723851619e+01 -3.471121899611902e+01 -3.474015769371995e+01 -3.476911330776019e+01 + -3.479808587848705e+01 -3.482707544447295e+01 -3.485608197378501e+01 -3.488510543365825e+01 -3.491414585850467e+01 + -3.494320328527482e+01 -3.497227769389696e+01 -3.500136905869145e+01 -3.503047738856913e+01 -3.505960270226024e+01 + -3.508874502318216e+01 -3.511790436512474e+01 -3.514708069868058e+01 -3.517627399907308e+01 -3.520548430324607e+01 + -3.523471164812467e+01 -3.526395600883895e+01 -3.529321735592740e+01 -3.532249570335686e+01 -3.535179107461137e+01 + -3.538110348781549e+01 -3.541043295179184e+01 -3.543977944351469e+01 -3.546914294470585e+01 -3.549852348792567e+01 + -3.552792110371767e+01 -3.555733576371960e+01 -3.558676744035331e+01 -3.561621616808287e+01 -3.564568198278825e+01 + -3.567516486397158e+01 -3.570466478590109e+01 -3.573418175828719e+01 -3.576371580017962e+01 -3.579326693254331e+01 + -3.582283516733191e+01 -3.585242047853867e+01 -3.588202284498269e+01 -3.591164230274704e+01 -3.594127888660625e+01 + -3.597093256883734e+01 -3.600060331833949e+01 -3.603029115299790e+01 -3.605999610029281e+01 -3.608971817709886e+01 + -3.611945738978410e+01 -3.614921371329605e+01 -3.617898712799953e+01 -3.620877766734910e+01 -3.623858536391516e+01 + -3.626841019364145e+01 -3.629825213180558e+01 -3.632811120764664e+01 -3.635798745148868e+01 -3.638788084403422e+01 + -3.641779136227628e+01 -3.644771901799147e+01 -3.647766383142195e+01 -3.650762582188893e+01 -3.653760499949427e+01 + -3.656760133838370e+01 -3.659761481766282e+01 -3.662764547223315e+01 -3.665769333671685e+01 -3.668775838882340e+01 + -3.671784060113342e+01 -3.674793998262476e+01 -3.677805655273779e+01 -3.680819033636626e+01 -3.683834134900049e+01 + -3.686850956306390e+01 -3.689869495454472e+01 -3.692889755675729e+01 -3.695911740229619e+01 -3.698935446355054e+01 + -3.701960871343802e+01 -3.704988018719579e+01 -3.708016892120266e+01 -3.711047489408478e+01 -3.714079807933708e+01 + -3.717113848768184e+01 -3.720149613882988e+01 -3.723187105121882e+01 -3.726226323497034e+01 -3.729267266821555e+01 + -3.732309933333587e+01 -3.735354326170426e+01 -3.738400448395760e+01 -3.741448297879693e+01 -3.744497872108128e+01 + -3.747549172223736e+01 -3.750602200310610e+01 -3.753656958561755e+01 -3.756713448177913e+01 -3.759771666281819e+01 + -3.762831610507856e+01 -3.765893284615005e+01 -3.768956692232328e+01 -3.772021830344675e+01 -3.775088695941269e+01 + -3.778157292673024e+01 -3.781227624306894e+01 -3.784299688412320e+01 -3.787373482086582e+01 -3.790449006735824e+01 + -3.793526264738479e+01 -3.796605258053289e+01 -3.799685987630166e+01 -3.802768450803411e+01 -3.805852645435349e+01 + -3.808938575116029e+01 -3.812026243387959e+01 -3.815115647875793e+01 -3.818206785737669e+01 -3.821299658183555e+01 + -3.824394267407146e+01 -3.827490615485264e+01 -3.830588703573063e+01 -3.833688529255877e+01 -3.836790090523419e+01 + -3.839893390552727e+01 -3.842998432385276e+01 -3.846105213333004e+01 -3.849213730842061e+01 -3.852323988624988e+01 + -3.855435990371658e+01 -3.858549733414936e+01 -3.861665214665468e+01 -3.864782435702053e+01 -3.867901399128823e+01 + -3.871022106983104e+01 -3.874144560188923e+01 -3.877268755783931e+01 -3.880394691415978e+01 -3.883522371060106e+01 + -3.886651798555487e+01 -3.889782970870629e+01 -3.892915884903668e+01 -3.896050544141922e+01 -3.899186952243698e+01 + -3.902325106962145e+01 -3.905465005558139e+01 -3.908606649228560e+01 -3.911750040150871e+01 -3.914895180488885e+01 + -3.918042071436301e+01 -3.921190710320024e+01 -3.924341094905042e+01 -3.927493228575462e+01 -3.930647114756201e+01 + -3.933802751416320e+01 -3.936960136044893e+01 -3.940119269666864e+01 -3.943280154239230e+01 -3.946442791911308e+01 + -3.949607183932866e+01 -3.952773327763106e+01 -3.955941221301939e+01 -3.959110868002649e+01 -3.962282271157864e+01 + -3.965455427864192e+01 -3.968630335291520e+01 -3.971806997098832e+01 -3.974985417066340e+01 -3.978165592970123e+01 + -3.981347522024374e+01 -3.984531205199855e+01 -3.987716644515135e+01 -3.990903842423468e+01 -3.994092800366619e+01 + -3.997283515305731e+01 -4.000475984705376e+01 -4.003670212524431e+01 -4.006866202678586e+01 -4.010063952416471e+01 + -4.013263458527370e+01 -4.016464722630246e+01 -4.019667747391531e+01 -4.022872534837892e+01 -4.026079085897078e+01 + -4.029287397740929e+01 -4.032497468131004e+01 -4.035709300943645e+01 -4.038922899883853e+01 -4.042138261856475e+01 + -4.045355383733334e+01 -4.048574269054266e+01 -4.051794921541258e+01 -4.055017338976896e+01 -4.058241518694505e+01 + -4.061467462169752e+01 -4.064695171778673e+01 -4.067924649356458e+01 -4.071155895737036e+01 -4.074388908290122e+01 + -4.077623684962312e+01 -4.080860229471885e+01 -4.084098545450960e+01 -4.087338630415373e+01 -4.090580481395003e+01 + -4.093824099592192e+01 -4.097069487270115e+01 -4.100316646762842e+01 -4.103565579436854e+01 -4.106816282717386e+01 + -4.110068754422534e+01 -4.113322997883087e+01 -4.116579016300655e+01 -4.119836806847471e+01 -4.123096366815907e+01 + -4.126357700008218e+01 -4.129620810254014e+01 -4.132885694982463e+01 -4.136152351139461e+01 -4.139420780138244e+01 + -4.142690984447184e+01 -4.145962966287846e+01 -4.149236726828771e+01 -4.152512263273182e+01 -4.155789573295193e+01 + -4.159068660417814e+01 -4.162349528189675e+01 -4.165632174413023e+01 -4.168916596438000e+01 -4.172202795552684e+01 + -4.175490773972726e+01 -4.178780533686147e+01 -4.182072075745918e+01 -4.185365397692470e+01 -4.188660497553830e+01 + -4.191957378820953e+01 -4.195256044830271e+01 -4.198556492837179e+01 -4.201858720098863e+01 -4.205162729960676e+01 + -4.208468525919077e+01 -4.211776105986812e+01 -4.215085467691669e+01 -4.218396612105321e+01 -4.221709541226407e+01 + -4.225024257217616e+01 -4.228340761361360e+01 -4.231659051254899e+01 -4.234979124870078e+01 -4.238300985362200e+01 + -4.241624635885866e+01 -4.244950074409413e+01 -4.248277298525672e+01 -4.251606309511715e+01 -4.254937109530931e+01 + -4.258269700607782e+01 -4.261604083828603e+01 -4.264940256666174e+01 -4.268278217100897e+01 -4.271617968757233e+01 + -4.274959515039267e+01 -4.278302852825576e+01 -4.281647979114838e+01 -4.284994897911630e+01 -4.288343613339240e+01 + -4.291694122989936e+01 -4.295046423857267e+01 -4.298400517070971e+01 -4.301756404788966e+01 -4.305114089145757e+01 + -4.308473571388112e+01 -4.311834849235274e+01 -4.315197920801049e+01 -4.318562789305037e+01 -4.321929457904871e+01 + -4.325297924404543e+01 -4.328668186207582e+01 -4.332040244469275e+01 -4.335414101381126e+01 -4.338789759527743e+01 + -4.342167220389723e+01 -4.345546480638487e+01 -4.348927537558045e+01 -4.352310395691921e+01 -4.355695059370569e+01 + -4.359081524812669e+01 -4.362469788222823e+01 -4.365859853861065e+01 -4.369251726260594e+01 -4.372645402991838e+01 + -4.376040880917880e+01 -4.379438161035186e+01 -4.382837245512241e+01 -4.386238137072252e+01 -4.389640837367813e+01 + -4.393045343214298e+01 -4.396451651875527e+01 -4.399859767246311e+01 -4.403269693263155e+01 -4.406681427398399e+01 + -4.410094966630350e+01 -4.413510312425358e+01 -4.416927467295284e+01 -4.420346433446015e+01 -4.423767212069691e+01 + -4.427189800609401e+01 -4.430614196966567e+01 -4.434040404624994e+01 -4.437468426893484e+01 -4.440898260798443e+01 + -4.444329903479183e+01 -4.447763358808973e+01 -4.451198630763288e+01 -4.454635716992501e+01 -4.458074614621454e+01 + -4.461515324997958e+01 -4.464957850449220e+01 -4.468402192997090e+01 -4.471848353715485e+01 -4.475296330191956e+01 + -4.478746120505344e+01 -4.482197728186011e+01 -4.485651156648301e+01 -4.489106403390974e+01 -4.492563465506775e+01 + -4.496022344379944e+01 -4.499483042484561e+01 -4.502945562362576e+01 -4.506409905435962e+01 -4.509876068578905e+01 + -4.513344049220396e+01 -4.516813851556444e+01 -4.520285479589762e+01 -4.523758929782897e+01 -4.527234198687941e+01 + -4.530711290755342e+01 -4.534190210524451e+01 -4.537670954991925e+01 -4.541153520580425e+01 -4.544637908959269e+01 + -4.548124122972980e+01 -4.551612164920255e+01 -4.555102035951307e+01 -4.558593733168242e+01 -4.562087254236648e+01 + -4.565582603124118e+01 -4.569079783605451e+01 -4.572578792382265e+01 -4.576079626235065e+01 -4.579582289333027e+01 + -4.583086785976433e+01 -4.586593113601344e+01 -4.590101269036680e+01 -4.593611253546989e+01 -4.597123069530716e+01 + -4.600636719486254e+01 -4.604152204856955e+01 -4.607669522766013e+01 -4.611188670797630e+01 -4.614709652700154e+01 + -4.618232472227299e+01 -4.621757126990104e+01 -4.625283614113306e+01 -4.628811934919114e+01 -4.632342091751210e+01 + -4.635874086841728e+01 -4.639407921460932e+01 -4.642943593143147e+01 -4.646481099859044e+01 -4.650020445060623e+01 + -4.653561632090474e+01 -4.657104658372261e+01 -4.660649521327068e+01 -4.664196224284595e+01 -4.667744770698098e+01 + -4.671295158606459e+01 -4.674847385553061e+01 -4.678401452513644e+01 -4.681957361522331e+01 -4.685515115414413e+01 + -4.689074715945064e+01 -4.692636159747788e+01 -4.696199443933372e+01 -4.699764572643400e+01 -4.703331550121288e+01 + -4.706900373987032e+01 -4.710471041222129e+01 -4.714043552877479e+01 -4.717617911151273e+01 -4.721194118761495e+01 + -4.724772177397794e+01 -4.728352084116666e+01 -4.731933836391387e+01 -4.735517437995513e+01 -4.739102892624472e+01 + -4.742690197360956e+01 -4.746279349304486e+01 -4.749870352234630e+01 -4.753463210070628e+01 -4.757057920610364e+01 + -4.760654481072343e+01 -4.764252892478859e+01 -4.767853156968457e+01 -4.771455277340900e+01 -4.775059255327958e+01 + -4.778665087728216e+01 -4.782272771801416e+01 -4.785882311585065e+01 -4.789493711157514e+01 -4.793106967982698e+01 + -4.796722079021173e+01 -4.800339045834357e+01 -4.803957871014897e+01 -4.807578556679541e+01 -4.811201103905631e+01 + -4.814825510088780e+01 -4.818451773166895e+01 -4.822079896928767e+01 -4.825709884980719e+01 -4.829341734348342e+01 + -4.832975442115909e+01 -4.836611012183125e+01 -4.840248448526336e+01 -4.843887748613056e+01 -4.847528909416636e+01 + -4.851171932442625e+01 -4.854816820273300e+01 -4.858463575265701e+01 -4.862112198691646e+01 -4.865762687707282e+01 + -4.869415040003414e+01 -4.873069259525141e+01 -4.876725350118260e+01 -4.880383308977095e+01 -4.884043132904604e+01 + -4.887704823789731e+01 -4.891368384608068e+01 -4.895033817595851e+01 -4.898701123776245e+01 -4.902370300059485e+01 + -4.906041344002308e+01 -4.909714259860375e+01 -4.913389051725400e+01 -4.917065716334413e+01 -4.920744250429804e+01 + -4.924424658130064e+01 -4.928106943700116e+01 -4.931791104614518e+01 -4.935477137752828e+01 -4.939165044404930e+01 + -4.942854827009338e+01 -4.946546488188807e+01 -4.950240029454247e+01 -4.953935447684974e+01 -4.957632740294361e+01 + -4.961331911463601e+01 -4.965032965315336e+01 -4.968735898970213e+01 -4.972440709120082e+01 -4.976147397743583e+01 + -4.979855967878247e+01 -4.983566421510402e+01 -4.987278759472007e+01 -4.990992979028766e+01 -4.994709078100569e+01 + -4.998427060790318e+01 -5.002146930959274e+01 -5.005868685319148e+01 -5.009592320640078e+01 -5.013317841075434e+01 + -5.017045250915469e+01 -5.020774547614742e+01 -5.024505728017924e+01 -5.028238793365752e+01 -5.031973746104961e+01 + -5.035710589110189e+01 -5.039449324090066e+01 -5.043189947661289e+01 -5.046932456973549e+01 -5.050676856400442e+01 + -5.054423150327239e+01 -5.058171335962052e+01 -5.061921409929316e+01 -5.065673373695915e+01 -5.069427229950105e+01 + -5.073182981423184e+01 -5.076940629607507e+01 -5.080700170996615e+01 -5.084461602753602e+01 -5.088224929718589e+01 + -5.091990156525010e+01 -5.095757279302548e+01 -5.099526294209112e+01 -5.103297206019221e+01 -5.107070019605169e+01 + -5.110844731613729e+01 -5.114621338143406e+01 -5.118399841325091e+01 -5.122180244526444e+01 -5.125962550029841e+01 + -5.129746758802490e+01 -5.133532867636215e+01 -5.137320874011100e+01 -5.141110782335645e+01 -5.144902596945006e+01 + -5.148696314952589e+01 -5.152491932947918e+01 -5.156289452646703e+01 -5.160088876945014e+01 -5.163890208334180e+01 + -5.167693448081514e+01 -5.171498592963017e+01 -5.175305640369855e+01 -5.179114594645165e+01 -5.182925460014935e+01 + -5.186738233284598e+01 -5.190552911234031e+01 -5.194369497961412e+01 -5.198187997663295e+01 -5.202008407611459e+01 + -5.205830724580739e+01 -5.209654950282933e+01 -5.213481087573764e+01 -5.217309138947744e+01 -5.221139105690054e+01 + -5.224970984609732e+01 -5.228804773087789e+01 -5.232640475269200e+01 -5.236478095346914e+01 -5.240317630941821e+01 + -5.244159079031952e+01 -5.248002440595931e+01 -5.251847717885386e+01 -5.255694914243367e+01 -5.259544031823210e+01 + -5.263395066927961e+01 -5.267248016335085e+01 -5.271102884570031e+01 -5.274959676081755e+01 -5.278818387265291e+01 + -5.282679014593192e+01 -5.286541562901994e+01 -5.290406037048660e+01 -5.294272433607927e+01 -5.298140748616263e+01 + -5.302010984239256e+01 -5.305883143892672e+01 -5.309757229863885e+01 -5.313633243133304e+01 -5.317511180581835e+01 + -5.321391039785607e+01 -5.325272825201081e+01 -5.329156541074357e+01 -5.333042183929739e+01 -5.336929750308754e+01 + -5.340819244543594e+01 -5.344710671111962e+01 -5.348604027282968e+01 -5.352499309722418e+01 -5.356396519891433e+01 + -5.360295660504364e+01 -5.364196734493171e+01 -5.368099743556814e+01 -5.372004684244607e+01 -5.375911553606044e+01 + -5.379820355840945e+01 -5.383731095277006e+01 -5.387643769603123e+01 -5.391558375867469e+01 -5.395474915194053e+01 + -5.399393389872404e+01 -5.403313802778240e+01 -5.407236155707715e+01 -5.411160445552515e+01 -5.415086669663323e+01 + -5.419014832131279e+01 -5.422944936941720e+01 -5.426876980916325e+01 -5.430810960961936e+01 -5.434746881489674e+01 + -5.438684746929877e+01 -5.442624554285502e+01 -5.446566300018413e+01 -5.450509985853421e+01 -5.454455614758906e+01 + -5.458403189414573e+01 -5.462352711279953e+01 -5.466304177222543e+01 -5.470257584656953e+01 -5.474212937778257e+01 + -5.478170240720980e+01 -5.482129490597043e+01 -5.486090684084346e+01 -5.490053823147309e+01 -5.494018910890276e+01 + -5.497985949690793e+01 -5.501954940653937e+01 -5.505925880521750e+01 -5.509898766755921e+01 -5.513873604059781e+01 + -5.517850396943321e+01 -5.521829141901578e+01 -5.525809835354192e+01 -5.529792481434151e+01 -5.533777084523449e+01 + -5.537763642286803e+01 -5.541752151714192e+01 -5.545742613813913e+01 -5.549735030880384e+01 -5.553729406334213e+01 + -5.557725742375872e+01 -5.561724035199087e+01 -5.565724281465346e+01 -5.569726485713910e+01 -5.573730652628086e+01 + -5.577736779589668e+01 -5.581744863307357e+01 -5.585754905099014e+01 -5.589766907536871e+01 -5.593780873601526e+01 + -5.597796805069111e+01 -5.601814698489535e+01 -5.605834550959182e+01 -5.609856366986563e+01 -5.613880151023810e+01 + -5.617905899885479e+01 -5.621933610311022e+01 -5.625963286377015e+01 -5.629994932270948e+01 -5.634028545286861e+01 + -5.638064122221132e+01 -5.642101664772899e+01 -5.646141175844968e+01 -5.650182658252075e+01 -5.654226113528433e+01 + -5.658271538174220e+01 -5.662318929319503e+01 -5.666368291647893e+01 -5.670419629786259e+01 -5.674472940580990e+01 + -5.678528220346420e+01 -5.682585471049146e+01 -5.686644695909487e+01 -5.690705897510426e+01 -5.694769077129006e+01 + -5.698834231455854e+01 -5.702901357847642e+01 -5.706970460911611e+01 -5.711041545084194e+01 -5.715114606868026e+01 + -5.719189642778805e+01 -5.723266657318249e+01 -5.727345655110785e+01 -5.731426633285666e+01 -5.735509588339112e+01 + -5.739594521730356e+01 -5.743681436264626e+01 -5.747770335168147e+01 -5.751861220364783e+01 -5.755954088147938e+01 + -5.760048935348805e+01 -5.764145766580183e+01 -5.768244586550730e+01 -5.772345392571002e+01 -5.776448181276131e+01 + -5.780552953997691e+01 -5.784659713354442e+01 -5.788768462417462e+01 -5.792879202998626e+01 -5.796991931420698e+01 + -5.801106644664837e+01 -5.805223347834903e+01 -5.809342045860209e+01 -5.813462734849197e+01 -5.817585410820936e+01 + -5.821710078257841e+01 -5.825836741928538e+01 -5.829965399283203e+01 -5.834096047087346e+01 -5.838228686686274e+01 + -5.842363320676851e+01 -5.846499952082397e+01 -5.850638582715609e+01 -5.854779209120221e+01 -5.858921828442874e+01 + -5.863066445510763e+01 -5.867213065032231e+01 -5.871361683559694e+01 -5.875512297138874e+01 -5.879664907944645e+01 + -5.883819519466417e+01 -5.887976134322624e+01 -5.892134753756825e+01 -5.896295374384051e+01 -5.900457993500612e+01 + -5.904622615756436e+01 -5.908789245663575e+01 -5.912957879828990e+01 -5.917128514850664e+01 -5.921301155195771e+01 + -5.925475805384439e+01 -5.929652462279476e+01 -5.933831122286624e+01 -5.938011787640643e+01 -5.942194461763230e+01 + -5.946379146994821e+01 -5.950565844408734e+01 -5.954754551091072e+01 -5.958945264733813e+01 -5.963137989439624e+01 + -5.967332729249499e+01 -5.971529481547052e+01 -5.975728243227523e+01 -5.979929015889982e+01 -5.984131802305070e+01 + -5.988336605225896e+01 -5.992543426246962e+01 -5.996752262345901e+01 -6.000963111046766e+01 -6.005175976676178e+01 + -6.009390863383608e+01 -6.013607767807394e+01 -6.017826686618813e+01 -6.022047624132026e+01 -6.026270584835797e+01 + -6.030495566274465e+01 -6.034722565381767e+01 -6.038951583593452e+01 -6.043182623512069e+01 -6.047415687905394e+01 + -6.051650778421003e+01 -6.055887892060463e+01 -6.060127026325783e+01 -6.064368185366749e+01 -6.068611373308907e+01 + -6.072856587533070e+01 -6.077103824887340e+01 -6.081353086833690e+01 -6.085604376132918e+01 -6.089857696127247e+01 + -6.094113048823596e+01 -6.098370430306234e+01 -6.102629837247437e+01 -6.106891274594116e+01 -6.111154747264118e+01 + -6.115420251784390e+01 -6.119687784580902e+01 -6.123957350066591e+01 -6.128228952841628e+01 -6.132502590268162e+01 + -6.136778259056138e+01 -6.141055960544676e+01 -6.145335697380811e+01 -6.149617472814099e+01 -6.153901288864162e+01 + -6.158187142028389e+01 -6.162475029314290e+01 -6.166764955292113e+01 -6.171056924466600e+01 -6.175350933517737e+01 + -6.179646979123154e+01 -6.183945065775757e+01 -6.188245198047678e+01 -6.192547373012725e+01 -6.196851587175868e+01 + -6.201157842265037e+01 -6.205466141333163e+01 -6.209776487510229e+01 -6.214088882566958e+01 -6.218403322759970e+01 + -6.222719804958889e+01 -6.227038333999444e+01 -6.231358914752139e+01 -6.235681544260558e+01 -6.240006218936849e+01 + -6.244332940494305e+01 -6.248661712010740e+01 -6.252992536720910e+01 -6.257325416420860e+01 -6.261660346994837e+01 + -6.265997325077347e+01 -6.270336356215701e+01 -6.274677445777788e+01 -6.279020589501037e+01 -6.283365783085999e+01 + -6.287713031716163e+01 -6.292062340781234e+01 -6.296413707012920e+01 -6.300767126475596e+01 -6.305122601222295e+01 + -6.309480134635203e+01 -6.313839729424505e+01 -6.318201386936521e+01 -6.322565103734121e+01 -6.326930877093868e+01 + -6.331298711930568e+01 -6.335668613058504e+01 -6.340040577251647e+01 -6.344414600718050e+01 -6.348790685442323e+01 + -6.353168834759008e+01 -6.357549051625812e+01 -6.361931337593239e+01 -6.366315688959789e+01 -6.370702102749119e+01 + -6.375090584137499e+01 -6.379481138078580e+01 -6.383873760482961e+01 -6.388268447297220e+01 -6.392665203654889e+01 + -6.397064034897519e+01 -6.401464938011861e+01 -6.405867909237229e+01 -6.410272950177993e+01 -6.414680063823367e+01 + -6.419089253336912e+01 -6.423500520539493e+01 -6.427913861706836e+01 -6.432329273774181e+01 -6.436746761859949e+01 + -6.441166331065573e+01 -6.445587978241413e+01 -6.450011699516882e+01 -6.454437496388719e+01 -6.458865371852110e+01 + -6.463295329528786e+01 -6.467727371608086e+01 -6.472161493923234e+01 -6.476597692945877e+01 -6.481035974057480e+01 + -6.485476342551981e+01 -6.489918794463497e+01 -6.494363325783405e+01 -6.498809941591921e+01 -6.503258647107099e+01 + -6.507709439009531e+01 -6.512162313341831e+01 -6.516617272132122e+01 -6.521074318787740e+01 -6.525533456247440e+01 + -6.529994686059398e+01 -6.534458004678092e+01 -6.538923409250538e+01 -6.543390904787570e+01 -6.547860496211884e+01 + -6.552332180229843e+01 -6.556805952953434e+01 -6.561281816333469e+01 -6.565759773746066e+01 -6.570239828429803e+01 + -6.574721982146080e+01 -6.579206230885156e+01 -6.583692571363754e+01 -6.588181008975629e+01 -6.592671548982709e+01 + -6.597164187442638e+01 -6.601658920334479e+01 -6.606155752527242e+01 -6.610654689090467e+01 -6.615155727005924e+01 + -6.619658862652422e+01 -6.624164098084657e+01 -6.628671436645676e+01 -6.633180881156068e+01 -6.637692433038681e+01 + -6.642206088647883e+01 -6.646721845110714e+01 -6.651239707713407e+01 -6.655759681603797e+01 -6.660281763216933e+01 + -6.664805948389387e+01 -6.669332239276561e+01 -6.673860639512726e+01 -6.678391152328841e+01 -6.682923779433044e+01 + -6.687458516845543e+01 -6.691995361277515e+01 -6.696534317891920e+01 -6.701075391795754e+01 -6.705618579420361e+01 + -6.710163877100581e+01 -6.714711289460833e+01 -6.719260821321966e+01 -6.723812470001026e+01 -6.728366232121398e+01 + -6.732922109035582e+01 -6.737480103488133e+01 -6.742040219062761e+01 -6.746602458035952e+01 -6.751166816616187e+01 + -6.755733291529161e+01 -6.760301887637438e+01 -6.764872609859751e+01 -6.769445455202660e+01 -6.774020420051386e+01 + -6.778597506217976e+01 -6.783176716876942e+01 -6.787758055225885e+01 -6.792341523092826e+01 -6.796927116804379e+01 + -6.801514833341810e+01 -6.806104677806347e+01 -6.810696655123587e+01 -6.815290761396663e+01 -6.819886992772128e+01 + -6.824485354392678e+01 -6.829085851532395e+01 -6.833688480994840e+01 -6.838293238885097e+01 -6.842900126984890e+01 + -6.847509148538957e+01 -6.852120306967514e+01 -6.856733604269469e+01 -6.861349036583006e+01 -6.865966600658993e+01 + -6.870586301559659e+01 -6.875208144399036e+01 -6.879832126187024e+01 -6.884458243234171e+01 -6.889086497157696e+01 + -6.893716890990422e+01 -6.898349428120915e+01 -6.902984110598732e+01 -6.907620934761650e+01 -6.912259897511596e+01 + -6.916901003718877e+01 -6.921544258172949e+01 -6.926189657371528e+01 -6.930837197817074e+01 -6.935486884322755e+01 + -6.940138721768092e+01 -6.944792706987337e+01 -6.949448836290087e+01 -6.954107111932564e+01 -6.958767537490402e+01 + -6.963430115870300e+01 -6.968094848498497e+01 -6.972761731548312e+01 -6.977430762020695e+01 -6.982101945480034e+01 + -6.986775287255249e+01 -6.991450783170005e+01 -6.996128429032680e+01 -7.000808230095708e+01 -7.005490191787665e+01 + -7.010174310797666e+01 -7.014860583121035e+01 -7.019549010717337e+01 -7.024239597049470e+01 -7.028932345629492e+01 + -7.033627258446040e+01 -7.038324331344937e+01 -7.043023560838913e+01 -7.047724952251053e+01 -7.052428510987777e+01 + -7.057134233978515e+01 -7.061842117397924e+01 -7.066552162878578e+01 -7.071264373512433e+01 -7.075978752771100e+01 + -7.080695302731498e+01 -7.085414019512091e+01 -7.090134899910394e+01 -7.094857949398551e+01 -7.099583173235354e+01 + -7.104310567151599e+01 -7.109040126922885e+01 -7.113771858031990e+01 -7.118505766125368e+01 -7.123241847797109e+01 + -7.127980098937178e+01 -7.132720521671429e+01 -7.137463119544236e+01 -7.142207895538176e+01 -7.146954851252747e+01 + -7.151703983316882e+01 -7.156455289009196e+01 -7.161208773177542e+01 -7.165964440570248e+01 -7.170722287968356e+01 + -7.175482311646741e+01 -7.180244513822917e+01 -7.185008898098621e+01 -7.189775467669884e+01 -7.194544224180910e+01 + -7.199315163474331e+01 -7.204088282234626e+01 -7.208863586315185e+01 -7.213641081375658e+01 -7.218420763131780e+01 + -7.223202627227879e+01 -7.227986678966526e+01 -7.232772923884254e+01 -7.237561358795277e+01 -7.242351979769759e+01 + -7.247144788623903e+01 -7.251939788668284e+01 -7.256736983444897e+01 -7.261536375015235e+01 -7.266337959287341e+01 + -7.271141732841731e+01 -7.275947701102203e+01 -7.280755869538000e+01 -7.285566234956853e+01 -7.290378793432680e+01 + -7.295193546765573e+01 -7.300010498266862e+01 -7.304829651566631e+01 -7.309651008753943e+01 -7.314474565435016e+01 + -7.319300317971540e+01 -7.324128272229925e+01 -7.328958433981238e+01 -7.333790799110540e+01 -7.338625363374130e+01 + -7.343462131899291e+01 -7.348301110053259e+01 -7.353142294792167e+01 -7.357985682361442e+01 -7.362831274574745e+01 + -7.367679074711965e+01 -7.372529086349638e+01 -7.377381311579366e+01 -7.382235746256312e+01 -7.387092386912651e+01 + -7.391951239025020e+01 -7.396812308115555e+01 -7.401675590943988e+01 -7.406541083531380e+01 -7.411408787706513e+01 + -7.416278706814910e+01 -7.421150844461324e+01 -7.426025202733783e+01 -7.430901777394124e+01 -7.435780564940528e+01 + -7.440661571142732e+01 -7.445544801616209e+01 -7.450430252087864e+01 -7.455317918285648e+01 -7.460207805830268e+01 + -7.465099920497126e+01 -7.469994258787753e+01 -7.474890816454140e+01 -7.479789595523943e+01 -7.484690599592756e+01 + -7.489593832252380e+01 -7.494499295533201e+01 -7.499406985223764e+01 -7.504316897827101e+01 -7.509229038945979e+01 + -7.514143414169166e+01 -7.519060019929748e+01 -7.523978851997632e+01 -7.528899912645726e+01 -7.533823205657275e+01 + -7.538748734353926e+01 -7.543676500532445e+01 -7.548606500351643e+01 -7.553538730703876e+01 -7.558473197053598e+01 + -7.563409904619321e+01 -7.568348849063742e+01 -7.573290026170078e+01 -7.578233441759443e+01 -7.583179101796470e+01 + -7.588127002782028e+01 -7.593077140392674e+01 -7.598029516471465e+01 -7.602984134475692e+01 -7.607940998153097e+01 + -7.612900109746634e+01 -7.617861465189691e+01 -7.622825061065345e+01 -7.627790902865043e+01 -7.632758996032740e+01 + -7.637729336914126e+01 -7.642701921265419e+01 -7.647676751583191e+01 -7.652653831849052e+01 -7.657633165244424e+01 + -7.662614753370475e+01 -7.667598592307560e+01 -7.672584678949215e+01 -7.677573018962489e+01 -7.682563617769370e+01 + -7.687556471038147e+01 -7.692551574474433e+01 -7.697548933686781e+01 -7.702548554509247e+01 -7.707550433774978e+01 + -7.712554567498073e+01 -7.717560957417300e+01 -7.722569606768573e+01 -7.727580519051753e+01 -7.732593696392289e+01 + -7.737609135154067e+01 -7.742626832278943e+01 -7.747646792782194e+01 -7.752669021677298e+01 -7.757693515897095e+01 + -7.762720271798948e+01 -7.767749291518889e+01 -7.772780578562232e+01 -7.777814136132783e+01 -7.782849965970544e+01 + -7.787888064261847e+01 -7.792928427988689e+01 -7.797971062869398e+01 -7.803015974345008e+01 -7.808063158011076e+01 + -7.813112609521906e+01 -7.818164334612277e+01 -7.823218339188995e+01 -7.828274619766600e+01 -7.833333172107952e+01 + -7.838393998361434e+01 -7.843457102192369e+01 -7.848522486948340e+01 -7.853590154498607e+01 -7.858660101116894e+01 + -7.863732323758104e+01 -7.868806827697425e+01 -7.873883618163512e+01 -7.878962691878654e+01 -7.884044044940295e+01 + -7.889127679452803e+01 -7.894213598992800e+01 -7.899301807018992e+01 -7.904392305456564e+01 -7.909485090214494e+01 + -7.914580158005610e+01 -7.919677514774288e+01 -7.924777166238927e+01 -7.929879107982515e+01 -7.934983335558289e+01 + -7.940089854535901e+01 -7.945198670709752e+01 -7.950309780756868e+01 -7.955423180605224e+01 -7.960538872303847e+01 + -7.965656859466247e+01 -7.970777145842827e+01 -7.975899733555858e+01 -7.981024618078136e+01 -7.986151795697417e+01 + -7.991281272610696e+01 -7.996413054847572e+01 -8.001547137858779e+01 -8.006683517069925e+01 -8.011822198384908e+01 + -8.016963187855384e+01 -8.022106481645797e+01 -8.027252075224854e+01 -8.032399971165485e+01 -8.037550173585385e+01 + -8.042702685677139e+01 -8.047857509055929e+01 -8.053014639952434e+01 -8.058174075328817e+01 -8.063335820457638e+01 + -8.068499880610621e+01 -8.073666252745771e+01 -8.078834933088126e+01 -8.084005923244513e+01 -8.089179226408041e+01 + -8.094354846735196e+01 -8.099532786819320e+01 -8.104713042037783e+01 -8.109895608507813e+01 -8.115080492521992e+01 + -8.120267700205356e+01 -8.125457226837462e+01 -8.130649067623317e+01 -8.135843228315183e+01 -8.141039715010918e+01 + -8.146238524643556e+01 -8.151439653208425e+01 -8.156643102114791e+01 -8.161848874447259e+01 -8.167056974577932e+01 + -8.172267405314662e+01 -8.177480161920819e+01 -8.182695240289546e+01 -8.187912646377457e+01 -8.193132386298609e+01 + -8.198354456733288e+01 -8.203578853472443e+01 -8.208805578183410e+01 -8.214034634197473e+01 -8.219266025625411e+01 + -8.224499755029157e+01 -8.229735817995817e+01 -8.234974210798764e+01 -8.240214939431286e+01 -8.245458009683706e+01 + -8.250703416814667e+01 -8.255951156203467e+01 -8.261201234243612e+01 -8.266453657428882e+01 -8.271708421639993e+01 + -8.276965521981012e+01 -8.282224961062391e+01 -8.287486743131451e+01 -8.292750871476633e+01 -8.298017347733835e+01 + -8.303286167887651e+01 -8.308557328775250e+01 -8.313830836295337e+01 -8.319106696215761e+01 -8.324384904719405e+01 + -8.329665457280116e+01 -8.334948356120523e+01 -8.340233605179664e+01 -8.345521208513452e+01 -8.350811168407860e+01 + -8.356103479952203e+01 -8.361398139085040e+01 -8.366695152338559e+01 -8.371994526125894e+01 -8.377296255790387e+01 + -8.382600336547402e+01 -8.387906774170159e+01 -8.393215574692768e+01 -8.398526734635097e+01 -8.403840249721476e+01 + -8.409156122008268e+01 -8.414474355213920e+01 -8.419794953373223e+01 -8.425117918830632e+01 -8.430443246852916e+01 + -8.435770933516140e+01 -8.441100985211256e+01 -8.446433408298962e+01 -8.451768198704093e+01 -8.457105351533237e+01 + -8.462444869055821e+01 -8.467786755329161e+01 -8.473131014399300e+01 -8.478477648534972e+01 -8.483826652906932e+01 + -8.489178023573824e+01 -8.494531767243778e+01 -8.499887890373510e+01 -8.505246387764603e+01 -8.510607254206460e+01 + -8.515970496094809e+01 -8.521336120130535e+01 -8.526704122628841e+01 -8.532074498941530e+01 -8.537447250952404e+01 + -8.542822382319736e+01 -8.548199897267675e+01 -8.553579798342942e+01 -8.558962080816578e+01 -8.564346740685433e+01 + -8.569733784125194e+01 -8.575123217367282e+01 -8.580515036687339e+01 -8.585909237532205e+01 -8.591305821989287e+01 + -8.596704793875205e+01 -8.602106157282915e+01 -8.607509914567974e+01 -8.612916060859980e+01 -8.618324592155754e+01 + -8.623735515146925e+01 -8.629148836331387e+01 -8.634564550737286e+01 -8.639982653295500e+01 -8.645403150017543e+01 + -8.650826047252751e+01 -8.656251341621210e+01 -8.661679028858919e+01 -8.667109110894766e+01 -8.672541591317201e+01 + -8.677976474159972e+01 -8.683413761829634e+01 -8.688853449778628e+01 -8.694295534179228e+01 -8.699740021037117e+01 + -8.705186916402354e+01 -8.710636216669133e+01 -8.716087917454270e+01 -8.721542020920894e+01 -8.726998530877070e+01 + -8.732457451164281e+01 -8.737918783967393e+01 -8.743382524811331e+01 -8.748848670054353e+01 -8.754317226047976e+01 + -8.759788198894785e+01 -8.765261583708421e+01 -8.770737375634857e+01 -8.776215580938322e+01 -8.781696206132678e+01 + -8.787179247612183e+01 -8.792664700860111e+01 -8.798152567835336e+01 -8.803642852212045e+01 -8.809135558050070e+01 + -8.814630687756171e+01 -8.820128236739042e+01 -8.825628201129771e+01 -8.831130586947003e+01 -8.836635400284558e+01 + -8.842142637649435e+01 -8.847652294770472e+01 -8.853164373850628e+01 -8.858678878695027e+01 -8.864195813043362e+01 + -8.869715178945941e+01 -8.875236971760948e+01 -8.880761187808301e+01 -8.886287833946902e+01 -8.891816916696094e+01 + -8.897348430677987e+01 -8.902882370531137e+01 -8.908418742857141e+01 -8.913957554536425e+01 -8.919498801601753e+01 + -8.925042479199006e+01 -8.930588589774098e+01 -8.936137137472512e+01 -8.941688125937962e+01 -8.947241557120560e+01 + -8.952797426697802e+01 -8.958355731201681e+01 -8.963916476854843e+01 -8.969479669732335e+01 -8.975045305628245e+01 + -8.980613379692392e+01 -8.986183894778455e+01 -8.991756855389235e+01 -8.997332264920152e+01 -9.002910125051302e+01 + -9.008490431708829e+01 -9.014073181666647e+01 -9.019658380843681e+01 -9.025246034941333e+01 -9.030836139645970e+01 + -9.036428690661128e+01 -9.042023693773967e+01 -9.047621154925669e+01 -9.053221070589892e+01 -9.058823436476921e+01 + -9.064428254711031e+01 -9.070035529106499e+01 -9.075645263823618e+01 -9.081257461289793e+01 -9.086872116654884e+01 + -9.092489225918972e+01 -9.098108795760594e+01 -9.103730832657459e+01 -9.109355331605536e+01 -9.114982287548730e+01 + -9.120611706704364e+01 -9.126243595579022e+01 -9.131877950563008e+01 -9.137514767186437e+01 -9.143154047654943e+01 + -9.148795795857168e+01 -9.154440015738282e+01 -9.160086709537343e+01 -9.165735872612346e+01 -9.171387501169491e+01 + -9.177041601688784e+01 -9.182698180564800e+01 -9.188357233576582e+01 -9.194018755741556e+01 -9.199682749646104e+01 + -9.205349219658670e+01 -9.211018169707003e+01 -9.216689601912306e+01 -9.222363511610273e+01 -9.228039895018067e+01 + -9.233718758664240e+01 -9.239400108840672e+01 -9.245083940581294e+01 -9.250770248979978e+01 -9.256459040628322e+01 + -9.262150322244982e+01 -9.267844089559186e+01 -9.273540337476760e+01 -9.279239068599267e+01 -9.284940287335907e+01 + -9.290643997630693e+01 -9.296350201607783e+01 -9.302058894577094e+01 -9.307770072730455e+01 -9.313483742601555e+01 + -9.319199910633068e+01 -9.324918572561810e+01 -9.330639723351504e+01 -9.336363365579297e+01 -9.342089503640302e+01 + -9.347818141588093e+01 -9.353549281584256e+01 -9.359282918563940e+01 -9.365019048477910e+01 -9.370757678565749e+01 + -9.376498815769901e+01 -9.382242454555492e+01 -9.387988589305337e+01 -9.393737226550313e+01 -9.399488373202897e+01 + -9.405242025553964e+01 -9.410998178945039e+01 -9.416756835541781e+01 -9.422517999301114e+01 -9.428281674520871e+01 + -9.434047863667399e+01 -9.439816561540189e+01 -9.445587763836596e+01 -9.451361477512259e+01 -9.457137709520302e+01 + -9.462916455545547e+01 -9.468697710379740e+01 -9.474481476510589e+01 -9.480267758244509e+01 -9.486056559466863e+01 + -9.491847882335075e+01 -9.497641722515867e+01 -9.503438076487508e+01 -9.509236950465109e+01 -9.515038350409563e+01 + -9.520842271528107e+01 -9.526648709103007e+01 -9.532457669470300e+01 -9.538269159175374e+01 -9.544083174547335e+01 + -9.549899710997526e+01 -9.555718770482461e+01 -9.561540356780063e+01 -9.567364474408794e+01 -9.573191126075703e+01 + -9.579020306501620e+01 -9.584852011272490e+01 -9.590686247420874e+01 -9.596523021978578e+01 -9.602362330527772e+01 + -9.608204167783254e+01 -9.614048536439948e+01 -9.619895441016116e+01 -9.625744885343293e+01 -9.631596871403326e+01 + -9.637451394466026e+01 -9.643308450797647e+01 -9.649168047362274e+01 -9.655030190767742e+01 -9.660894875499127e+01 + -9.666762096089710e+01 -9.672631859388268e+01 -9.678504172537357e+01 -9.684379031539257e+01 -9.690256431417546e+01 + -9.696136374421286e+01 -9.702018864639355e+01 -9.707903906294442e+01 -9.713791501832830e+01 -9.719681646461351e+01 + -9.725574336170810e+01 -9.731469577327378e+01 -9.737367376351882e+01 -9.743267729508464e+01 -9.749170632178308e+01 + -9.755076086367355e+01 -9.760984095895955e+01 -9.766894665217343e+01 -9.772807797034233e+01 -9.778723486414395e+01 + -9.784641729236439e+01 -9.790562532257231e+01 -9.796485902036660e+01 -9.802411833468516e+01 -9.808340321418262e+01 + -9.814271372304191e+01 -9.820204992860188e+01 -9.826141179529722e+01 -9.832079927766843e+01 -9.838021239358226e+01 + -9.843965117935535e+01 -9.849911568177785e+01 -9.855860593025675e+01 -9.861812187419362e+01 -9.867766347002308e+01 + -9.873723078231735e+01 -9.879682387670165e+01 -9.885644271487612e+01 -9.891608724974174e+01 -9.897575750292785e+01 + -9.903545351466867e+01 -9.909517533088989e+01 -9.915492297862031e+01 -9.921469640360959e+01 -9.927449556058966e+01 + -9.933432052149955e+01 -9.939417135686639e+01 -9.945404801436261e+01 -9.951395044077229e+01 -9.957387870218038e+01 + -9.963383286719130e+01 -9.969381289518709e+01 -9.975381873630593e+01 -9.981385041293248e+01 -9.987390796877466e+01 + -9.993399146058783e+01 -9.999410091983435e+01 -1.000542362637563e+02 -1.001143974249114e+02 -1.001745845113392e+02 + -1.002347976270743e+02 -1.002950366846517e+02 -1.003553015922550e+02 -1.004155924321621e+02 -1.004759093011103e+02 + -1.005362521795820e+02 -1.005966210292817e+02 -1.006570158530568e+02 -1.007174366671700e+02 -1.007778835004040e+02 + -1.008383563749385e+02 -1.008988552740233e+02 -1.009593801813489e+02 -1.010199311212978e+02 -1.010805081231472e+02 + -1.011411111950619e+02 -1.012017403376325e+02 -1.012623955422635e+02 -1.013230768099676e+02 -1.013837841893743e+02 + -1.014445177207514e+02 -1.015052773633014e+02 -1.015660630775449e+02 -1.016268749103392e+02 -1.016877129150088e+02 + -1.017485770844115e+02 -1.018094673966629e+02 -1.018703838313761e+02 -1.019313263923028e+02 -1.019922951782496e+02 + -1.020532902664119e+02 -1.021143115524854e+02 -1.021753589342455e+02 -1.022364324992857e+02 -1.022975323519374e+02 + -1.023586584736673e+02 -1.024198108268543e+02 -1.024809894203941e+02 -1.025421942728475e+02 -1.026034253949216e+02 + -1.026646827901934e+02 -1.027259664415750e+02 -1.027872763473731e+02 -1.028486125881369e+02 -1.029099752254547e+02 + -1.029713641628286e+02 -1.030327793161952e+02 -1.030942208093169e+02 -1.031556887637190e+02 -1.032171830841550e+02 + -1.032787036718354e+02 -1.033402506305696e+02 -1.034018240681317e+02 -1.034634239055545e+02 -1.035250500515010e+02 + -1.035867025518952e+02 -1.036483814821213e+02 -1.037100868981441e+02 -1.037718188237329e+02 -1.038335771732939e+02 + -1.038953618747522e+02 -1.039571730194689e+02 -1.040190107055651e+02 -1.040808748947658e+02 -1.041427655331822e+02 + -1.042046826408667e+02 -1.042666262524425e+02 -1.043285963868752e+02 -1.043905930564436e+02 -1.044526162623378e+02 + -1.045146660069125e+02 -1.045767423082721e+02 -1.046388451777543e+02 -1.047009745838822e+02 -1.047631305085241e+02 + -1.048253130297424e+02 -1.048875222165416e+02 -1.049497580055002e+02 -1.050120203310284e+02 -1.050743092512860e+02 + -1.051366248384456e+02 -1.051989670969791e+02 -1.052613360137520e+02 -1.053237315729033e+02 -1.053861537661844e+02 + -1.054486026185219e+02 -1.055110781583045e+02 -1.055735803945944e+02 -1.056361093274371e+02 -1.056986649401382e+02 + -1.057612472323176e+02 -1.058238562855892e+02 -1.058864921618116e+02 -1.059491547618286e+02 -1.060118440001799e+02 + -1.060745600072047e+02 -1.061373029070868e+02 -1.062000725835928e+02 -1.062628689188559e+02 -1.063256920288941e+02 + -1.063885420424685e+02 -1.064514189054312e+02 -1.065143225392365e+02 -1.065772529506575e+02 -1.066402101774261e+02 + -1.067031942957903e+02 -1.067662053568374e+02 -1.068292432724951e+02 -1.068923079625714e+02 -1.069553995175528e+02 + -1.070185180380394e+02 -1.070816634944072e+02 -1.071448358336418e+02 -1.072080350393896e+02 -1.072712611247882e+02 + -1.073345141842783e+02 -1.073977942922143e+02 -1.074611013613008e+02 -1.075244353055826e+02 -1.075877962061142e+02 + -1.076511841502191e+02 -1.077145990832866e+02 -1.077780409492339e+02 -1.078415098280245e+02 -1.079050057992970e+02 + -1.079685288053471e+02 -1.080320787786834e+02 -1.080956557500093e+02 -1.081592597729443e+02 -1.082228908945775e+02 + -1.082865491424036e+02 -1.083502344720692e+02 -1.084139468448718e+02 -1.084776863165616e+02 -1.085414529440200e+02 + -1.086052466942038e+02 -1.086690675238350e+02 -1.087329154386204e+02 -1.087967904674474e+02 -1.088606926829425e+02 + -1.089246221377382e+02 -1.089885787607543e+02 -1.090525624876805e+02 -1.091165734050004e+02 -1.091806115963225e+02 + -1.092446769829633e+02 -1.093087694909110e+02 -1.093728892271333e+02 -1.094370362953419e+02 -1.095012106052476e+02 + -1.095654120623545e+02 -1.096296407493415e+02 -1.096938967647426e+02 -1.097581800933404e+02 -1.098224906984946e+02 + -1.098868285716250e+02 -1.099511937236656e+02 -1.100155862155477e+02 -1.100800060933800e+02 -1.101444532939841e+02 + -1.102089277564002e+02 -1.102734295378303e+02 -1.103379587096266e+02 -1.104025152815812e+02 -1.104670992426730e+02 + -1.105317105601886e+02 -1.105963492199813e+02 -1.106610153038629e+02 -1.107257088820756e+02 -1.107904298826226e+02 + -1.108551782361634e+02 -1.109199540262203e+02 -1.109847573373186e+02 -1.110495881051325e+02 -1.111144462586115e+02 + -1.111793318486534e+02 -1.112442449476576e+02 -1.113091855920787e+02 -1.113741537899001e+02 -1.114391494711626e+02 + -1.115041725824562e+02 -1.115692232145109e+02 -1.116343014623147e+02 -1.116994072937479e+02 -1.117645406555522e+02 + -1.118297015370191e+02 -1.118948899532702e+02 -1.119601059801944e+02 -1.120253496750247e+02 -1.120906209596036e+02 + -1.121559197660155e+02 -1.122212462027017e+02 -1.122866003728487e+02 -1.123519821822644e+02 -1.124173915349786e+02 + -1.124828285252852e+02 -1.125482932599049e+02 -1.126137857050017e+02 -1.126793058037530e+02 -1.127448535479451e+02 + -1.128104289543148e+02 -1.128760320907921e+02 -1.129416630123176e+02 -1.130073216706816e+02 -1.130730080183262e+02 + -1.131387221134510e+02 -1.132044640167948e+02 -1.132702336934948e+02 -1.133360310978225e+02 -1.134018562361866e+02 + -1.134677091387784e+02 -1.135335898787815e+02 -1.135994985091588e+02 -1.136654349589990e+02 -1.137313991629182e+02 + -1.137973912015162e+02 -1.138634111582333e+02 -1.139294589818884e+02 -1.139955346168527e+02 -1.140616381243277e+02 + -1.141277695680233e+02 -1.141939289048548e+02 -1.142601160860919e+02 -1.143263311472162e+02 -1.143925741390390e+02 + -1.144588450894802e+02 -1.145251440101338e+02 -1.145914708701818e+02 -1.146578256494022e+02 -1.147242084123678e+02 + -1.147906192149256e+02 -1.148570579932248e+02 -1.149235246826633e+02 -1.149900193353325e+02 -1.150565420227369e+02 + -1.151230927773426e+02 -1.151896716067799e+02 -1.152562784583746e+02 -1.153229132947855e+02 -1.153895762003063e+02 + -1.154562672526404e+02 -1.155229863814943e+02 -1.155897335150450e+02 -1.156565087233475e+02 -1.157233120892246e+02 + -1.157901436046917e+02 -1.158570032371645e+02 -1.159238909464663e+02 -1.159908067231330e+02 -1.160577506881430e+02 + -1.161247229415995e+02 -1.161917233696630e+02 -1.162587518588770e+02 -1.163258085112608e+02 -1.163928934406831e+02 + -1.164600065929374e+02 -1.165271479034755e+02 -1.165943174344564e+02 -1.166615152526160e+02 -1.167287413162901e+02 + -1.167959955757904e+02 -1.168632780577301e+02 -1.169305888112216e+02 -1.169979278990717e+02 -1.170652953548001e+02 + -1.171326910810820e+02 -1.172001149975291e+02 -1.172675672223445e+02 -1.173350478778825e+02 -1.174025569045121e+02 + -1.174700942215011e+02 -1.175376598456954e+02 -1.176052538191002e+02 -1.176728761867799e+02 -1.177405269796691e+02 + -1.178082061691247e+02 -1.178759137299273e+02 -1.179436497101298e+02 -1.180114141509050e+02 -1.180792069926326e+02 + -1.181470281872303e+02 -1.182148778335583e+02 -1.182827560287664e+02 -1.183506627162192e+02 -1.184185978220269e+02 + -1.184865613570652e+02 -1.185545533602401e+02 -1.186225738978121e+02 -1.186906230193939e+02 -1.187587006806511e+02 + -1.188268068350639e+02 -1.188949415213182e+02 -1.189631047837780e+02 -1.190312966043158e+02 -1.190995169567162e+02 + -1.191677658449030e+02 -1.192360432941998e+02 -1.193043493853908e+02 -1.193726841751893e+02 -1.194410475685670e+02 + -1.195094394794060e+02 -1.195778600089746e+02 -1.196463092648311e+02 -1.197147871923100e+02 -1.197832937276135e+02 + -1.198518289326376e+02 -1.199203928745778e+02 -1.199889855161324e+02 -1.200576068078755e+02 -1.201262567563797e+02 + -1.201949353935382e+02 -1.202636427965272e+02 -1.203323790196208e+02 -1.204011439802014e+02 -1.204699376081542e+02 + -1.205387600202684e+02 -1.206076113241917e+02 -1.206764914041025e+02 -1.207454001431820e+02 -1.208143376440890e+02 + -1.208833040296615e+02 -1.209522992839752e+02 -1.210213233653680e+02 -1.210903762679893e+02 -1.211594580022500e+02 + -1.212285686077949e+02 -1.212977081155049e+02 -1.213668764919694e+02 -1.214360737100132e+02 -1.215052998316942e+02 + -1.215745549154533e+02 -1.216438389160294e+02 -1.217131517838345e+02 -1.217824935556734e+02 -1.218518642837182e+02 + -1.219212639952166e+02 -1.219906927020717e+02 -1.220601503797327e+02 -1.221296370078328e+02 -1.221991526191948e+02 + -1.222686972509000e+02 -1.223382709038720e+02 -1.224078735702578e+02 -1.224775052432531e+02 -1.225471659287695e+02 + -1.226168556825330e+02 -1.226865745477072e+02 -1.227563224673916e+02 -1.228260993926653e+02 -1.228959054065903e+02 + -1.229657405910973e+02 -1.230356048916106e+02 -1.231054982500379e+02 -1.231754207307278e+02 -1.232453724007864e+02 + -1.233153532159101e+02 -1.233853631242201e+02 -1.234554021549459e+02 -1.235254703591199e+02 -1.235955677938801e+02 + -1.236656944915691e+02 -1.237358503792446e+02 -1.238060353939673e+02 -1.238762496180971e+02 -1.239464931371069e+02 + -1.240167659036240e+02 -1.240870678602586e+02 -1.241573990423949e+02 -1.242277595040581e+02 -1.242981492810638e+02 + -1.243685683872523e+02 -1.244390167667736e+02 -1.245094943779347e+02 -1.245800013053605e+02 -1.246505376299316e+02 + -1.247211032912332e+02 -1.247916982296097e+02 -1.248623225297382e+02 -1.249329762770640e+02 -1.250036594157741e+02 + -1.250743718736609e+02 -1.251451136541969e+02 -1.252158847947410e+02 -1.252866853925174e+02 -1.253575155184925e+02 + -1.254283750787370e+02 -1.254992639825418e+02 -1.255701823169751e+02 -1.256411301759969e+02 -1.257121075033584e+02 + -1.257831142369608e+02 -1.258541504415142e+02 -1.259252161922362e+02 -1.259963114795672e+02 -1.260674362758903e+02 + -1.261385905661348e+02 -1.262097743537985e+02 -1.262809877041053e+02 -1.263522306696565e+02 -1.264235031908370e+02 + -1.264948052148923e+02 -1.265661368287249e+02 -1.266374981169807e+02 -1.267088890156212e+02 -1.267803094502130e+02 + -1.268517594534262e+02 -1.269232390831601e+02 -1.269947483911282e+02 -1.270662874069690e+02 -1.271378560782095e+02 + -1.272094543594662e+02 -1.272810823158284e+02 -1.273527400123002e+02 -1.274244274030747e+02 -1.274961444355319e+02 + -1.275678911406106e+02 -1.276396675704015e+02 -1.277114737780431e+02 -1.277833097950603e+02 -1.278551755654751e+02 + -1.279270710424012e+02 -1.279989963028243e+02 -1.280709514152536e+02 -1.281429362904217e+02 -1.282149508513121e+02 + -1.282869952276877e+02 -1.283590695463467e+02 -1.284311737154509e+02 -1.285033076302067e+02 -1.285754713526335e+02 + -1.286476649682441e+02 -1.287198884897120e+02 -1.287921419051992e+02 -1.288644251776617e+02 -1.289367382880697e+02 + -1.290090813146567e+02 -1.290814543319980e+02 -1.291538573027727e+02 -1.292262901737162e+02 -1.292987529396840e+02 + -1.293712456190937e+02 -1.294437682764910e+02 -1.295163209673579e+02 -1.295889036647941e+02 -1.296615163353197e+02 + -1.297341590015173e+02 -1.298068316903185e+02 -1.298795343899871e+02 -1.299522670904091e+02 -1.300250298266263e+02 + -1.300978226354063e+02 -1.301706455152632e+02 -1.302434984561237e+02 -1.303163814518184e+02 -1.303892945098205e+02 + -1.304622376882688e+02 -1.305352110313897e+02 -1.306082144770936e+02 -1.306812479731976e+02 -1.307543116134598e+02 + -1.308274054850011e+02 -1.309005295024521e+02 -1.309736835845235e+02 -1.310468678387340e+02 -1.311200823754845e+02 + -1.311933271278942e+02 -1.312666020134129e+02 -1.313399070640916e+02 -1.314132423401880e+02 -1.314866079001839e+02 + -1.315600037753056e+02 -1.316334298895329e+02 -1.317068861777292e+02 -1.317803727255405e+02 -1.318538896215189e+02 + -1.319274368150577e+02 -1.320010142454794e+02 -1.320746219509807e+02 -1.321482599879661e+02 -1.322219283867981e+02 + -1.322956271602158e+02 -1.323693562765047e+02 -1.324431157110688e+02 -1.325169055122373e+02 -1.325907257242561e+02 + -1.326645763021127e+02 -1.327384572099461e+02 -1.328123685377604e+02 -1.328863103680995e+02 -1.329602826278048e+02 + -1.330342852393407e+02 -1.331083182633673e+02 -1.331823817787306e+02 -1.332564757988239e+02 -1.333306003141445e+02 + -1.334047552890586e+02 -1.334789407033280e+02 -1.335531566244299e+02 -1.336274031130300e+02 -1.337016801148342e+02 + -1.337759875748336e+02 -1.338503255501201e+02 -1.339246941130952e+02 -1.339990932852997e+02 -1.340735230609586e+02 + -1.341479833758948e+02 -1.342224741891434e+02 -1.342969956109889e+02 -1.343715477431406e+02 -1.344461305017541e+02 + -1.345207438015131e+02 -1.345953877367626e+02 -1.346700624038786e+02 -1.347447677276981e+02 -1.348195036263442e+02 + -1.348942701626209e+02 -1.349690674171868e+02 -1.350438953974369e+02 -1.351187540921076e+02 -1.351936434885642e+02 + -1.352685635848754e+02 -1.353435144232942e+02 -1.354184960414874e+02 -1.354935084145923e+02 -1.355685515128237e+02 + -1.356436253492364e+02 -1.357187299541088e+02 -1.357938653837732e+02 -1.358690316768758e+02 -1.359442287752637e+02 + -1.360194566279880e+02 -1.360947153097144e+02 -1.361700048911278e+02 -1.362453253013760e+02 -1.363206764782614e+02 + -1.363960585357406e+02 -1.364714715821978e+02 -1.365469155275740e+02 -1.366223902703805e+02 -1.366978958618521e+02 + -1.367734323848502e+02 -1.368489998960226e+02 -1.369245984210613e+02 -1.370002278880492e+02 -1.370758882331093e+02 + -1.371515795221331e+02 -1.372273018270698e+02 -1.373030551143317e+02 -1.373788393429953e+02 -1.374546545483291e+02 + -1.375305007816427e+02 -1.376063780822184e+02 -1.376822864668756e+02 -1.377582258746108e+02 -1.378341962588316e+02 + -1.379101977084133e+02 -1.379862303093919e+02 -1.380622940009784e+02 -1.381383887192652e+02 -1.382145145346940e+02 + -1.382906715205862e+02 -1.383668596274320e+02 -1.384430787972570e+02 -1.385193290610606e+02 -1.385956104734610e+02 + -1.386719230945808e+02 -1.387482669582360e+02 -1.388246419875133e+02 -1.389010481148665e+02 -1.389774854209464e+02 + -1.390539539951986e+02 -1.391304538140523e+02 -1.392069848343242e+02 -1.392835470473980e+02 -1.393601404693719e+02 + -1.394367651806349e+02 -1.395134212422815e+02 -1.395901085739362e+02 -1.396668271002043e+02 -1.397435769070855e+02 + -1.398203580874878e+02 -1.398971706005607e+02 -1.399740143977720e+02 -1.400508895336226e+02 -1.401277960614956e+02 + -1.402047339272718e+02 -1.402817030764181e+02 -1.403587035602461e+02 -1.404357354502877e+02 -1.405127987931110e+02 + -1.405898936026113e+02 -1.406670197869564e+02 -1.407441772794584e+02 -1.408213662197336e+02 -1.408985867371466e+02 + -1.409758387137537e+02 -1.410531220224061e+02 -1.411304367464428e+02 -1.412077829961380e+02 -1.412851607790223e+02 + -1.413625700771281e+02 -1.414400108732392e+02 -1.415174831646232e+02 -1.415949870057306e+02 -1.416725224388105e+02 + -1.417500894001226e+02 -1.418276878351835e+02 -1.419053178325258e+02 -1.419829794809226e+02 -1.420606727270934e+02 + -1.421383975074728e+02 -1.422161538594082e+02 -1.422939418408956e+02 -1.423717614916131e+02 -1.424496128273150e+02 + -1.425274957863782e+02 -1.426054103213069e+02 -1.426833565184944e+02 -1.427613344645970e+02 -1.428393441134355e+02 + -1.429173854035838e+02 -1.429954583454632e+02 -1.430735629773860e+02 -1.431516993773805e+02 -1.432298676007922e+02 + -1.433080675725197e+02 -1.433862992191345e+02 -1.434645626043482e+02 -1.435428578032951e+02 -1.436211847996638e+02 + -1.436995435672099e+02 -1.437779341314036e+02 -1.438563565210897e+02 -1.439348107268960e+02 -1.440132967358192e+02 + -1.440918145585468e+02 -1.441703642214681e+02 -1.442489457900865e+02 -1.443275593072134e+02 -1.444062046857781e+02 + -1.444848818522611e+02 -1.445635909172288e+02 -1.446423319927847e+02 -1.447211050130976e+02 -1.447999098925679e+02 + -1.448787466444589e+02 -1.449576153140356e+02 -1.450365159757091e+02 -1.451154486823820e+02 -1.451944133717774e+02 + -1.452734099863848e+02 -1.453524386029381e+02 -1.454314992962476e+02 -1.455105919991844e+02 -1.455897166474813e+02 + -1.456688733302556e+02 -1.457480621396693e+02 -1.458272830266799e+02 -1.459065359271370e+02 -1.459858208576615e+02 + -1.460651378591126e+02 -1.461444869885314e+02 -1.462238682831965e+02 -1.463032816851561e+02 -1.463827271416525e+02 + -1.464622047159361e+02 -1.465417144784923e+02 -1.466212564127396e+02 -1.467008304928943e+02 -1.467804367434297e+02 + -1.468600751934606e+02 -1.469397458404120e+02 -1.470194486722770e+02 -1.470991836710121e+02 -1.471789508433917e+02 + -1.472587503015001e+02 -1.473385821300154e+02 -1.474184461986837e+02 -1.474983423870870e+02 -1.475782708290815e+02 + -1.476582316674545e+02 -1.477382248264445e+02 -1.478182502096616e+02 -1.478983078567520e+02 -1.479783978350921e+02 + -1.480585201869469e+02 -1.481386749269736e+02 -1.482188619845118e+02 -1.482990813088785e+02 -1.483793330146163e+02 + -1.484596172099193e+02 -1.485399338123612e+02 -1.486202827323657e+02 -1.487006640423751e+02 -1.487810778248495e+02 + -1.488615240403001e+02 -1.489420026412511e+02 -1.490225136702235e+02 -1.491030571832025e+02 -1.491836332000337e+02 + -1.492642417202360e+02 -1.493448826981615e+02 -1.494255561054278e+02 -1.495062620278810e+02 -1.495870005487025e+02 + -1.496677716261896e+02 -1.497485751994623e+02 -1.498294112558179e+02 -1.499102798158717e+02 -1.499911809853331e+02 + -1.500721148441144e+02 -1.501530812838450e+02 -1.502340802026938e+02 -1.503151117132690e+02 -1.503961759364751e+02 + -1.504772728119622e+02 -1.505584022645880e+02 -1.506395643412949e+02 -1.507207591024668e+02 -1.508019865401696e+02 + -1.508832466324269e+02 -1.509645393694111e+02 -1.510458647628492e+02 -1.511272228985386e+02 -1.512086138412552e+02 + -1.512900374976176e+02 -1.513714937855876e+02 -1.514529828266537e+02 -1.515345047392310e+02 -1.516160594259147e+02 + -1.516976467776822e+02 -1.517792668548592e+02 -1.518609197460578e+02 -1.519426054836894e+02 -1.520243240750476e+02 + -1.521060754831553e+02 -1.521878596792744e+02 -1.522696767118938e+02 -1.523515266305248e+02 -1.524334094115421e+02 + -1.525153250314230e+02 -1.525972735401888e+02 -1.526792549864990e+02 -1.527612693400200e+02 -1.528433165631959e+02 + -1.529253966685747e+02 -1.530075096900777e+02 -1.530896556970147e+02 -1.531718347321965e+02 -1.532540466970516e+02 + -1.533362915133235e+02 -1.534185693253995e+02 -1.535008802693854e+02 -1.535832242256197e+02 -1.536656010621809e+02 + -1.537480108538752e+02 -1.538304537113657e+02 -1.539129296820158e+02 -1.539954387715506e+02 -1.540779808824423e+02 + -1.541605559457948e+02 -1.542431641104905e+02 -1.543258055115917e+02 -1.544084800111010e+02 -1.544911874726015e+02 + -1.545739280390565e+02 -1.546567018609975e+02 -1.547395088398511e+02 -1.548223488576198e+02 -1.549052219677139e+02 + -1.549881282595875e+02 -1.550710677954614e+02 -1.551540406026988e+02 -1.552370465964632e+02 -1.553200857053796e+02 + -1.554031580241178e+02 -1.554862636500489e+02 -1.555694025253043e+02 -1.556525745801794e+02 -1.557357798528659e+02 + -1.558190184045264e+02 -1.559022902803117e+02 -1.559855954979769e+02 -1.560689339817060e+02 -1.561523056771075e+02 + -1.562357107090587e+02 -1.563191491909100e+02 -1.564026210106382e+02 -1.564861260558312e+02 -1.565696644378976e+02 + -1.566532362813955e+02 -1.567368415396626e+02 -1.568204801387562e+02 -1.569041520668287e+02 -1.569878573487146e+02 + -1.570715960938785e+02 -1.571553683828581e+02 -1.572391740958522e+02 -1.573230131265335e+02 -1.574068856228085e+02 + -1.574907917295132e+02 -1.575747313249683e+02 -1.576587042737324e+02 -1.577427106518309e+02 -1.578267505715277e+02 + -1.579108240785769e+02 -1.579949311783184e+02 -1.580790717809458e+02 -1.581632458187553e+02 -1.582474534075981e+02 + -1.583316946623155e+02 -1.584159695101536e+02 -1.585002778727259e+02 -1.585846198367120e+02 -1.586689954874005e+02 + -1.587534047394542e+02 -1.588378475061590e+02 -1.589223238659185e+02 -1.590068339195322e+02 -1.590913776922658e+02 + -1.591759551748261e+02 -1.592605662952183e+02 -1.593452110061037e+02 -1.594298894214712e+02 -1.595146016508511e+02 + -1.595993476246111e+02 -1.596841272537272e+02 -1.597689405507699e+02 -1.598537875632453e+02 -1.599386683768111e+02 + -1.600235830481832e+02 -1.601085314801616e+02 -1.601935135899282e+02 -1.602785295061083e+02 -1.603635793509372e+02 + -1.604486630096468e+02 -1.605337803660765e+02 -1.606189315354990e+02 -1.607041166452176e+02 -1.607893356392255e+02 + -1.608745884397152e+02 -1.609598750649831e+02 -1.610451955612870e+02 -1.611305499906227e+02 -1.612159383917271e+02 + -1.613013606945609e+02 -1.613868168398436e+02 -1.614723069201057e+02 -1.615578310304217e+02 -1.616433891242326e+02 + -1.617289811339727e+02 -1.618146070496823e+02 -1.619002668955830e+02 -1.619859607750138e+02 -1.620716887676450e+02 + -1.621574507793529e+02 -1.622432467219253e+02 -1.623290767045893e+02 -1.624149408340039e+02 -1.625008390091176e+02 + -1.625867711331680e+02 -1.626727373342588e+02 -1.627587377384768e+02 -1.628447722389764e+02 -1.629308407201184e+02 + -1.630169432640222e+02 -1.631030799800713e+02 -1.631892508889492e+02 -1.632754559784962e+02 -1.633616951938801e+02 + -1.634479685044198e+02 -1.635342760187116e+02 -1.636206178291233e+02 -1.637069938238325e+02 -1.637934038942077e+02 + -1.638798481485683e+02 -1.639663267112721e+02 -1.640528395538795e+02 -1.641393866180353e+02 -1.642259678785196e+02 + -1.643125833411851e+02 -1.643992331030405e+02 -1.644859172470150e+02 -1.645726357085657e+02 -1.646593884180614e+02 + -1.647461754329907e+02 -1.648329968179324e+02 -1.649198525387065e+02 -1.650067425502886e+02 -1.650936668630355e+02 + -1.651806255134507e+02 -1.652676185872448e+02 -1.653546461444497e+02 -1.654417080931755e+02 -1.655288043499995e+02 + -1.656159350172886e+02 -1.657031001994683e+02 -1.657902998234105e+02 -1.658775338117127e+02 -1.659648022474274e+02 + -1.660521052162188e+02 -1.661394426537408e+02 -1.662268144894047e+02 -1.663142207776613e+02 -1.664016615975541e+02 + -1.664891370014617e+02 -1.665766470055737e+02 -1.666641915079906e+02 -1.667517704334961e+02 -1.668393839316945e+02 + -1.669270321420214e+02 -1.670147149384157e+02 -1.671024321837371e+02 -1.671901839620226e+02 -1.672779703889409e+02 + -1.673657914855093e+02 -1.674536472385115e+02 -1.675415375924466e+02 -1.676294625158688e+02 -1.677174221158364e+02 + -1.678054164853866e+02 -1.678934455229663e+02 -1.679815091339810e+02 -1.680696074462591e+02 -1.681577405863894e+02 + -1.682459084535819e+02 -1.683341109324726e+02 -1.684223480767776e+02 -1.685106199767677e+02 -1.685989266998525e+02 + -1.686872682758898e+02 -1.687756446073924e+02 -1.688640556163956e+02 -1.689525014303699e+02 -1.690409821718389e+02 + -1.691294977381033e+02 -1.692180480141565e+02 -1.693066330609834e+02 -1.693952529706734e+02 -1.694839077837423e+02 + -1.695725975104607e+02 -1.696613220916933e+02 -1.697500814887782e+02 -1.698388758143547e+02 -1.699277051650943e+02 + -1.700165694224996e+02 -1.701054684738952e+02 -1.701944024450633e+02 -1.702833714670375e+02 -1.703723754534025e+02 + -1.704614143033400e+02 -1.705504880758685e+02 -1.706395968591658e+02 -1.707287406982126e+02 -1.708179196055015e+02 + -1.709071335067704e+02 -1.709963823462651e+02 -1.710856662290167e+02 -1.711749852543236e+02 -1.712643393377691e+02 + -1.713537283867857e+02 -1.714431524599174e+02 -1.715326116432521e+02 -1.716221059819435e+02 -1.717116354891412e+02 + -1.718012000909151e+02 -1.718907997312464e+02 -1.719804345128430e+02 -1.720701045346718e+02 -1.721598097220100e+02 + -1.722495499971131e+02 -1.723393254438396e+02 -1.724291361494486e+02 -1.725189820532021e+02 -1.726088630837053e+02 + -1.726987792749333e+02 -1.727887306891670e+02 -1.728787173965418e+02 -1.729687394350333e+02 -1.730587967061244e+02 + -1.731488891286860e+02 -1.732390168276344e+02 -1.733291799265234e+02 -1.734193783374131e+02 -1.735096119603506e+02 + -1.735998808588243e+02 -1.736901851222248e+02 -1.737805247801124e+02 -1.738708998286339e+02 -1.739613101901119e+02 + -1.740517558114003e+02 -1.741422368113012e+02 -1.742327533050288e+02 -1.743233052214973e+02 -1.744138924793676e+02 + -1.745045151425876e+02 -1.745951732822802e+02 -1.746858668529805e+02 -1.747765958032038e+02 -1.748673601739718e+02 + -1.749581600245709e+02 -1.750489953948396e+02 -1.751398663036498e+02 -1.752307727054541e+02 -1.753217145616989e+02 + -1.754126919262226e+02 -1.755037048571098e+02 -1.755947533370347e+02 -1.756858373371216e+02 -1.757769568577038e+02 + -1.758681119173357e+02 -1.759593025782490e+02 -1.760505288876894e+02 -1.761417907892832e+02 -1.762330882344909e+02 + -1.763244213097290e+02 -1.764157900964081e+02 -1.765071945209611e+02 -1.765986345094344e+02 -1.766901101413071e+02 + -1.767816215026837e+02 -1.768731685527375e+02 -1.769647512369523e+02 -1.770563695729838e+02 -1.771480236027573e+02 + -1.772397133931058e+02 -1.773314389867134e+02 -1.774232003047593e+02 -1.775149972814722e+02 -1.776068300247813e+02 + -1.776986986385443e+02 -1.777906030366335e+02 -1.778825431235826e+02 -1.779745189565556e+02 -1.780665306226855e+02 + -1.781585781763529e+02 -1.782506616334199e+02 -1.783427808884287e+02 -1.784349358629673e+02 -1.785271267081259e+02 + -1.786193535668995e+02 -1.787116163204012e+02 -1.788039148425030e+02 -1.788962492399977e+02 -1.789886196318098e+02 + -1.790810259524725e+02 -1.791734681201561e+02 -1.792659461719689e+02 -1.793584601742520e+02 -1.794510101913400e+02 + -1.795435962594126e+02 -1.796362183040394e+02 -1.797288762617232e+02 -1.798215702233099e+02 -1.799143002757676e+02 + -1.800070663362093e+02 -1.800998683262517e+02 -1.801927063553792e+02 -1.802855805315161e+02 -1.803784907684791e+02 + -1.804714369692463e+02 -1.805644191875481e+02 -1.806574375103104e+02 -1.807504920064915e+02 -1.808435827084130e+02 + -1.809367095198169e+02 -1.810298723599504e+02 -1.811230713386593e+02 -1.812163065647390e+02 -1.813095779521854e+02 + -1.814028854036152e+02 -1.814962289709267e+02 -1.815896087407728e+02 -1.816830247895420e+02 -1.817764771515762e+02 + -1.818699657032943e+02 -1.819634903439186e+02 -1.820570512218083e+02 -1.821506484855823e+02 -1.822442820357622e+02 + -1.823379517614509e+02 -1.824316577541746e+02 -1.825254001134493e+02 -1.826191787683301e+02 -1.827129936397535e+02 + -1.828068447866412e+02 -1.829007322929544e+02 -1.829946562048259e+02 -1.830886165373395e+02 -1.831826132192083e+02 + -1.832766461922778e+02 -1.833707155372913e+02 -1.834648213380734e+02 -1.835589635518759e+02 -1.836531421229175e+02 + -1.837473570698571e+02 -1.838416084358642e+02 -1.839358962877114e+02 -1.840302206684350e+02 -1.841245815025237e+02 + -1.842189787235884e+02 -1.843134124202761e+02 -1.844078826806361e+02 -1.845023894352911e+02 -1.845969326205561e+02 + -1.846915123529413e+02 -1.847861287393624e+02 -1.848807816681596e+02 -1.849754710227848e+02 -1.850701968857076e+02 + -1.851649593688754e+02 -1.852597585031284e+02 -1.853545942804591e+02 -1.854494666185751e+02 -1.855443754618861e+02 + -1.856393209358935e+02 -1.857343031604275e+02 -1.858293220515437e+02 -1.859243775087027e+02 -1.860194695687597e+02 + -1.861145983033516e+02 -1.862097637858479e+02 -1.863049660540466e+02 -1.864002050017272e+02 -1.864954805431744e+02 + -1.865907928187129e+02 -1.866861419596013e+02 -1.867815278347963e+02 -1.868769503164351e+02 -1.869724095516791e+02 + -1.870679056966096e+02 -1.871634386679672e+02 -1.872590083560524e+02 -1.873546147847470e+02 -1.874502580123688e+02 + -1.875459381013990e+02 -1.876416550903780e+02 -1.877374089179168e+02 -1.878331995340542e+02 -1.879290270344656e+02 + -1.880248915055781e+02 -1.881207928511883e+02 -1.882167309755823e+02 -1.883127059676341e+02 -1.884087179360091e+02 + -1.885047668839511e+02 -1.886008527852007e+02 -1.886969756009047e+02 -1.887931353152428e+02 -1.888893320171184e+02 + -1.889855657829229e+02 -1.890818365342772e+02 -1.891781441947396e+02 -1.892744888503877e+02 -1.893708705921393e+02 + -1.894672893677523e+02 -1.895637451161106e+02 -1.896602378837592e+02 -1.897567677352667e+02 -1.898533346996371e+02 + -1.899499387807097e+02 -1.900465799172331e+02 -1.901432580674921e+02 -1.902399733330072e+02 -1.903367258125687e+02 + -1.904335154508099e+02 -1.905303421711713e+02 -1.906272059664800e+02 -1.907241068668330e+02 -1.908210449820209e+02 + -1.909180203947948e+02 -1.910150330000556e+02 -1.911120827002041e+02 -1.912091696154924e+02 -1.913062938635582e+02 + -1.914034553337337e+02 -1.915006539182285e+02 -1.915978897490666e+02 -1.916951629619544e+02 -1.917924734675151e+02 + -1.918898211586861e+02 -1.919872060827436e+02 -1.920846283161583e+02 -1.921820878978424e+02 -1.922795848438701e+02 + -1.923771191165239e+02 -1.924746906889474e+02 -1.925722996315181e+02 -1.926699460069926e+02 -1.927676297504074e+02 + -1.928653507913461e+02 -1.929631091652971e+02 -1.930609049367203e+02 -1.931587381800568e+02 -1.932566089358633e+02 + -1.933545170991796e+02 -1.934524625825225e+02 -1.935504455138344e+02 -1.936484660231147e+02 -1.937465240331655e+02 + -1.938446194535055e+02 -1.939427523477156e+02 -1.940409227930324e+02 -1.941391307672549e+02 -1.942373762317632e+02 + -1.943356591817002e+02 -1.944339796386271e+02 -1.945323376960147e+02 -1.946307334225392e+02 -1.947291667157886e+02 + -1.948276374816129e+02 -1.949261458299981e+02 -1.950246918758956e+02 -1.951232755499811e+02 -1.952218967672293e+02 + -1.953205555640852e+02 -1.954192520091347e+02 -1.955179861780584e+02 -1.956167581109271e+02 -1.957155676982765e+02 + -1.958144148511486e+02 -1.959132997121442e+02 -1.960122224157670e+02 -1.961111828325720e+02 -1.962101808324193e+02 + -1.963092165463342e+02 -1.964082901163006e+02 -1.965074014669716e+02 -1.966065505047830e+02 -1.967057372806285e+02 + -1.968049618689787e+02 -1.969042242941536e+02 -1.970035245570506e+02 -1.971028626150270e+02 -1.972022384428475e+02 + -1.973016521284466e+02 -1.974011037520065e+02 -1.975005932495305e+02 -1.976001205455443e+02 -1.976996856628438e+02 + -1.977992886519515e+02 -1.978989295760255e+02 -1.979986084767589e+02 -1.980983252973461e+02 -1.981980799861144e+02 + -1.982978726104215e+02 -1.983977032396124e+02 -1.984975718319531e+02 -1.985974783450467e+02 -1.986974228449224e+02 + -1.987974053983538e+02 -1.988974259666649e+02 -1.989974844962869e+02 -1.990975809795281e+02 -1.991977154414513e+02 + -1.992978879922588e+02 -1.993980987169082e+02 -1.994983475142392e+02 -1.995986342853965e+02 -1.996989591268633e+02 + -1.997993221398394e+02 -1.998997232490551e+02 -2.000001623829878e+02 -2.001006396615730e+02 -2.002011551976202e+02 + -2.003017088839768e+02 -2.004023006006677e+02 -2.005029303963877e+02 -2.006035983645368e+02 -2.007043046086661e+02 + -2.008050491826254e+02 -2.009058319313084e+02 -2.010066527248718e+02 -2.011075117434797e+02 -2.012084091672780e+02 + -2.013093448663347e+02 -2.014103186854462e+02 -2.015113306783989e+02 -2.016123809487723e+02 -2.017134695903300e+02 + -2.018145966520298e+02 -2.019157620134241e+02 -2.020169655668574e+02 -2.021182074252480e+02 -2.022194877090834e+02 + -2.023208063485549e+02 -2.024221632682046e+02 -2.025235585602719e+02 -2.026249923196053e+02 -2.027264644837921e+02 + -2.028279749730532e+02 -2.029295237954015e+02 -2.030311109992572e+02 -2.031327367068774e+02 -2.032344010007734e+02 + -2.033361037306376e+02 -2.034378447601810e+02 -2.035396242420057e+02 -2.036414423389593e+02 -2.037432989659801e+02 + -2.038451940079258e+02 -2.039471274772405e+02 -2.040490994323931e+02 -2.041511099883670e+02 -2.042531592234435e+02 + -2.043552470125819e+02 -2.044573732391661e+02 -2.045595380236004e+02 -2.046617414909655e+02 -2.047639835480296e+02 + -2.048662640993485e+02 -2.049685832589404e+02 -2.050709411450770e+02 -2.051733376835843e+02 -2.052757727854042e+02 + -2.053782464943871e+02 -2.054807588829732e+02 -2.055833100050551e+02 -2.056858998827895e+02 -2.057885284299405e+02 + -2.058911955783421e+02 -2.059939014405005e+02 -2.060966461276917e+02 -2.061994295656012e+02 -2.063022516666823e+02 + -2.064051124760526e+02 -2.065080120661920e+02 -2.066109504863692e+02 -2.067139277576765e+02 -2.068169438117121e+02 + -2.069199985973326e+02 -2.070230922219201e+02 -2.071262247789163e+02 -2.072293961474789e+02 -2.073326062201854e+02 + -2.074358551575783e+02 -2.075391431180403e+02 -2.076424699833530e+02 -2.077458356179337e+02 -2.078492400933438e+02 + -2.079526835133251e+02 -2.080561659031989e+02 -2.081596872578975e+02 -2.082632475292167e+02 -2.083668466898186e+02 + -2.084704848389632e+02 -2.085741620623951e+02 -2.086778782651976e+02 -2.087816333480700e+02 -2.088854273748348e+02 + -2.089892604383302e+02 -2.090931325843364e+02 -2.091970438282278e+02 -2.093009941108145e+02 -2.094049833841979e+02 + -2.095090117202067e+02 -2.096130791905716e+02 -2.097171857469022e+02 -2.098213313423286e+02 -2.099255160561849e+02 + -2.100297399619016e+02 -2.101340029830976e+02 -2.102383050403986e+02 -2.103426461922712e+02 -2.104470265253758e+02 + -2.105514461013085e+02 -2.106559049410852e+02 -2.107604029284658e+02 -2.108649399745926e+02 -2.109695162373935e+02 + -2.110741318706494e+02 -2.111787867647689e+02 -2.112834807867834e+02 -2.113882139735869e+02 -2.114929864074473e+02 + -2.115977981822681e+02 -2.117026493533424e+02 -2.118075398098887e+02 -2.119124694556393e+02 -2.120174384184601e+02 + -2.121224468216736e+02 -2.122274945462991e+02 -2.123325814769304e+02 -2.124377077547605e+02 -2.125428735238108e+02 + -2.126480786828185e+02 -2.127533231155498e+02 -2.128586068911697e+02 -2.129639301084739e+02 -2.130692927993837e+02 + -2.131746949622090e+02 -2.132801365276879e+02 -2.133856174488912e+02 -2.134911378357916e+02 -2.135966977951921e+02 + -2.137022972643151e+02 -2.138079361581469e+02 -2.139136144723085e+02 -2.140193322420075e+02 -2.141250895801643e+02 + -2.142308865713384e+02 -2.143367231089345e+02 -2.144425990899214e+02 -2.145485146166798e+02 -2.146544697958461e+02 + -2.147604645456698e+02 -2.148664987887291e+02 -2.149725726533044e+02 -2.150786862586875e+02 -2.151848394825147e+02 + -2.152910321964648e+02 -2.153972644900385e+02 -2.155035364828845e+02 -2.156098481974242e+02 -2.157161996246267e+02 + -2.158225907268823e+02 -2.159290214790141e+02 -2.160354919341570e+02 -2.161420021424622e+02 -2.162485520638355e+02 + -2.163551416576007e+02 -2.164617709709994e+02 -2.165684400663080e+02 -2.166751489780245e+02 -2.167818977145845e+02 + -2.168886862079515e+02 -2.169955144082682e+02 -2.171023824148656e+02 -2.172092903208214e+02 -2.173162380450137e+02 + -2.174232255130703e+02 -2.175302528518165e+02 -2.176373201799158e+02 -2.177444273821862e+02 -2.178515743317612e+02 + -2.179587610888773e+02 -2.180659877532527e+02 -2.181732543954297e+02 -2.182805610486399e+02 -2.183879076260487e+02 + -2.184952940541088e+02 -2.186027204324891e+02 -2.187101868605661e+02 -2.188176932633304e+02 -2.189252395535715e+02 + -2.190328257696591e+02 -2.191404519835346e+02 -2.192481182758485e+02 -2.193558246894080e+02 -2.194635711069396e+02 + -2.195713574321837e+02 -2.196791838130171e+02 -2.197870503917547e+02 -2.198949570443306e+02 -2.200029036478261e+02 + -2.201108903502962e+02 -2.202189173008489e+02 -2.203269843818326e+02 -2.204350914576510e+02 -2.205432385876858e+02 + -2.206514258738742e+02 -2.207596533933995e+02 -2.208679211808499e+02 -2.209762291251867e+02 -2.210845771334710e+02 + -2.211929653307878e+02 -2.213013938407175e+02 -2.214098625627986e+02 -2.215183713969045e+02 -2.216269204682873e+02 + -2.217355099024502e+02 -2.218441396005216e+02 -2.219528094497077e+02 -2.220615195058979e+02 -2.221702698646027e+02 + -2.222790606111339e+02 -2.223878917838657e+02 -2.224967632436199e+02 -2.226056748766821e+02 -2.227146268487432e+02 + -2.228236193240230e+02 -2.229326521814535e+02 -2.230417252803019e+02 -2.231508386864637e+02 -2.232599925050409e+02 + -2.233691867913336e+02 -2.234784215614204e+02 -2.235876967242961e+02 -2.236970122086523e+02 -2.238063681290529e+02 + -2.239157646015454e+02 -2.240252015622403e+02 -2.241346789340316e+02 -2.242441967668838e+02 -2.243537551247286e+02 + -2.244633540002964e+02 -2.245729933685804e+02 -2.246826732048266e+02 -2.247923935126906e+02 -2.249021544092157e+02 + -2.250119559889259e+02 -2.251217981428817e+02 -2.252316807628839e+02 -2.253416039471573e+02 -2.254515678046834e+02 + -2.255615722810486e+02 -2.256716173029860e+02 -2.257817028852108e+02 -2.258918290784169e+02 -2.260019959892315e+02 + -2.261122036854213e+02 -2.262224520233766e+02 -2.263327408802082e+02 -2.264430704272837e+02 -2.265534408332552e+02 + -2.266638519616550e+02 -2.267743036660735e+02 -2.268847960654481e+02 -2.269953292962885e+02 -2.271059033000460e+02 + -2.272165179952407e+02 -2.273271734037251e+02 -2.274378695801794e+02 -2.275486066072624e+02 -2.276593845334010e+02 + -2.277702032421150e+02 -2.278810626343348e+02 -2.279919628455381e+02 -2.281029040172474e+02 -2.282138860806176e+02 + -2.283249089376286e+02 -2.284359725839265e+02 -2.285470770593814e+02 -2.286582224870930e+02 -2.287694089544078e+02 + -2.288806363224278e+02 -2.289919044640359e+02 -2.291032135254801e+02 -2.292145636582007e+02 -2.293259547610424e+02 + -2.294373867252146e+02 -2.295488596639802e+02 -2.296603736910369e+02 -2.297719286997702e+02 -2.298835245768747e+02 + -2.299951614025932e+02 -2.301068392919157e+02 -2.302185583052736e+02 -2.303303184582155e+02 -2.304421196413199e+02 + -2.305539617649887e+02 -2.306658449438852e+02 -2.307777692999738e+02 -2.308897347801602e+02 -2.310017413072381e+02 + -2.311137888826106e+02 -2.312258775426401e+02 -2.313380073849178e+02 -2.314501784790464e+02 -2.315623907214496e+02 + -2.316746440227619e+02 -2.317869385236417e+02 -2.318992743527083e+02 -2.320116513604021e+02 -2.321240694060221e+02 + -2.322365286624793e+02 -2.323490293043759e+02 -2.324615711994689e+02 -2.325741541998047e+02 -2.326867784014305e+02 + -2.327994439322068e+02 -2.329121508032486e+02 -2.330248989898164e+02 -2.331376884404961e+02 -2.332505191272475e+02 + -2.333633911421986e+02 -2.334763045743060e+02 -2.335892593796759e+02 -2.337022554911374e+02 -2.338152928812627e+02 + -2.339283715644559e+02 -2.340414916827054e+02 -2.341546533474617e+02 -2.342678564204413e+02 -2.343811007676228e+02 + -2.344943865217682e+02 -2.346077138212040e+02 -2.347210825597340e+02 -2.348344926295532e+02 -2.349479441609453e+02 + -2.350614372851493e+02 -2.351749718991416e+02 -2.352885478850955e+02 -2.354021653002366e+02 -2.355158242429473e+02 + -2.356295248011875e+02 -2.357432670145577e+02 -2.358570507396431e+02 -2.359708758587992e+02 -2.360847425404777e+02 + -2.361986509531367e+02 -2.363126009791645e+02 -2.364265924750662e+02 -2.365406254798825e+02 -2.366547000814751e+02 + -2.367688163804559e+02 -2.368829744348273e+02 -2.369971741194025e+02 -2.371114153287764e+02 -2.372256982198593e+02 + -2.373400229428812e+02 -2.374543893590377e+02 -2.375687973238754e+02 -2.376832469593778e+02 -2.377977384043928e+02 + -2.379122715987879e+02 -2.380268464580362e+02 -2.381414629990116e+02 -2.382561212769444e+02 -2.383708213990897e+02 + -2.384855634334210e+02 -2.386003472387607e+02 -2.387151726904082e+02 -2.388300399387221e+02 -2.389449491374237e+02 + -2.390599001786255e+02 -2.391748929369255e+02 -2.392899274784697e+02 -2.394050039061344e+02 -2.395201222781684e+02 + -2.396352826134916e+02 -2.397504848183333e+02 -2.398657288168898e+02 -2.399810147179146e+02 -2.400963426277219e+02 + -2.402117124583125e+02 -2.403271241258893e+02 -2.404425777577767e+02 -2.405580734795174e+02 -2.406736111984077e+02 + -2.407891907995794e+02 -2.409048122977546e+02 -2.410204757554728e+02 -2.411361812969551e+02 -2.412519290053517e+02 + -2.413677187378485e+02 -2.414835503650167e+02 -2.415994240369316e+02 -2.417153399089511e+02 -2.418312978780588e+02 + -2.419472978191357e+02 -2.420633397770240e+02 -2.421794238369657e+02 -2.422955500758429e+02 -2.424117185344053e+02 + -2.425279291172331e+02 -2.426441817421263e+02 -2.427604765159341e+02 -2.428768135466203e+02 -2.429931927575585e+02 + -2.431096140668555e+02 -2.432260775561414e+02 -2.433425833145866e+02 -2.434591312980004e+02 -2.435757214497087e+02 + -2.436923537964655e+02 -2.438090283895336e+02 -2.439257452947832e+02 -2.440425045463603e+02 -2.441593060369063e+02 + -2.442761496825792e+02 -2.443930356351059e+02 -2.445099640393889e+02 -2.446269347774639e+02 -2.447439477225602e+02 + -2.448610029755453e+02 -2.449781006544274e+02 -2.450952407181387e+02 -2.452124231032676e+02 -2.453296478161015e+02 + -2.454469148921256e+02 -2.455642244139170e+02 -2.456815764363974e+02 -2.457989708567751e+02 -2.459164075868465e+02 + -2.460338867544718e+02 -2.461514084874868e+02 -2.462689726975661e+02 -2.463865792818051e+02 -2.465042282951439e+02 + -2.466219198202147e+02 -2.467396538925739e+02 -2.468574305187124e+02 -2.469752496359336e+02 -2.470931112029433e+02 + -2.472110153332446e+02 -2.473289621270786e+02 -2.474469514768406e+02 -2.475649832814832e+02 -2.476830576740329e+02 + -2.478011747871381e+02 -2.479193345178656e+02 -2.480375367456449e+02 -2.481557815149384e+02 -2.482740689103307e+02 + -2.483923990118631e+02 -2.485107718618152e+02 -2.486291873559622e+02 -2.487476454083695e+02 -2.488661461527674e+02 + -2.489846897184250e+02 -2.491032759971039e+02 -2.492219048675295e+02 -2.493405763937896e+02 -2.494592906781626e+02 + -2.495780477903268e+02 -2.496968477531592e+02 -2.498156904349301e+02 -2.499345757349562e+02 -2.500535038313474e+02 + -2.501724748933778e+02 -2.502914887761886e+02 -2.504105453266259e+02 -2.505296446724864e+02 -2.506487869586733e+02 + -2.507679721175656e+02 -2.508872000588222e+02 -2.510064708137437e+02 -2.511257844438344e+02 -2.512451410097723e+02 + -2.513645405425343e+02 -2.514839829551193e+02 -2.516034681806881e+02 -2.517229963510282e+02 -2.518425675906852e+02 + -2.519621817966139e+02 -2.520818388494823e+02 -2.522015387924022e+02 -2.523212817096907e+02 -2.524410676880414e+02 + -2.525608967718439e+02 -2.526807688338955e+02 -2.528006837687293e+02 -2.529206417294141e+02 -2.530406428681973e+02 + -2.531606870755077e+02 -2.532807742357317e+02 -2.534009044709059e+02 -2.535210779031462e+02 -2.536412944172385e+02 + -2.537615538911017e+02 -2.538818564125164e+02 -2.540022021028112e+02 -2.541225910076441e+02 -2.542430231270507e+02 + -2.543634983542462e+02 -2.544840166121418e+02 -2.546045780492533e+02 -2.547251828099108e+02 -2.548458307960956e+02 + -2.549665218842466e+02 -2.550872560909815e+02 -2.552080334828205e+02 -2.553288541857174e+02 -2.554497182835964e+02 + -2.555706256328296e+02 -2.556915761009198e+02 -2.558125698274442e+02 -2.559336069560756e+02 -2.560546873747970e+02 + -2.561758109689862e+02 -2.562969778692906e+02 -2.564181882127723e+02 -2.565394419168841e+02 -2.566607388759341e+02 + -2.567820791112567e+02 -2.569034626862424e+02 -2.570248897054782e+02 -2.571463602359873e+02 -2.572678741533426e+02 + -2.573894313462550e+02 -2.575110319474426e+02 -2.576326760938784e+02 -2.577543636955484e+02 -2.578760946446893e+02 + -2.579978689895271e+02 -2.581196868133063e+02 -2.582415481833543e+02 -2.583634531275302e+02 -2.584854015317316e+02 + -2.586073933093156e+02 -2.587294286254374e+02 -2.588515076317444e+02 -2.589736301740566e+02 -2.590957960996737e+02 + -2.592180055676404e+02 -2.593402587446819e+02 -2.594625555165019e+02 -2.595848957490105e+02 -2.597072795099639e+02 + -2.598297069067293e+02 -2.599521780032740e+02 -2.600746928207452e+02 -2.601972512524080e+02 -2.603198532148209e+02 + -2.604424988455961e+02 -2.605651882765137e+02 -2.606879213949725e+02 -2.608106980758151e+02 -2.609335183880386e+02 + -2.610563824372016e+02 -2.611792902809524e+02 -2.613022419394243e+02 -2.614252373306019e+02 -2.615482763897488e+02 + -2.616713592233935e+02 -2.617944859260970e+02 -2.619176563732862e+02 -2.620408704583867e+02 -2.621641283659552e+02 + -2.622874302706103e+02 -2.624107760160917e+02 -2.625341654302978e+02 -2.626575986086381e+02 -2.627810756876698e+02 + -2.629045967010318e+02 -2.630281616427657e+02 -2.631517704514422e+02 -2.632754230861743e+02 -2.633991196437133e+02 + -2.635228602105341e+02 -2.636466446943674e+02 -2.637704729984163e+02 -2.638943451865159e+02 -2.640182613561179e+02 + -2.641422215785110e+02 -2.642662258795402e+02 -2.643902741294400e+02 -2.645143662245587e+02 -2.646385023213122e+02 + -2.647626825745115e+02 -2.648869068724856e+02 -2.650111750962730e+02 -2.651354873642347e+02 -2.652598438005879e+02 + -2.653842443156531e+02 -2.655086888035231e+02 -2.656331773072787e+02 -2.657577099091213e+02 -2.658822866987512e+02 + -2.660069077230897e+02 -2.661315728504449e+02 -2.662562819710931e+02 -2.663810352417937e+02 -2.665058328192844e+02 + -2.666306745937331e+02 -2.667555604333347e+02 -2.668804903849584e+02 -2.670054645383429e+02 -2.671304829760297e+02 + -2.672555457413816e+02 -2.673806527282453e+02 -2.675058038464400e+02 -2.676309992191929e+02 -2.677562389652032e+02 + -2.678815229716541e+02 -2.680068511277727e+02 -2.681322235624782e+02 -2.682576404136338e+02 -2.683831016151858e+02 + -2.685086070756685e+02 -2.686341568058856e+02 -2.687597508516357e+02 -2.688853892964312e+02 -2.690110721950252e+02 + -2.691367994494158e+02 -2.692625709807897e+02 -2.693883869398372e+02 -2.695142474621058e+02 -2.696401523930688e+02 + -2.697661015819900e+02 -2.698920951833660e+02 -2.700181333642693e+02 -2.701442160368443e+02 -2.702703430840482e+02 + -2.703965145270174e+02 -2.705227304331903e+02 -2.706489909170355e+02 -2.707752960482972e+02 -2.709016456707917e+02 + -2.710280396495872e+02 -2.711544781606855e+02 -2.712809613853167e+02 -2.714074892146895e+02 -2.715340615102555e+02 + -2.716606783044584e+02 -2.717873396730564e+02 -2.719140456940721e+02 -2.720407964136753e+02 -2.721675917483545e+02 + -2.722944316245073e+02 -2.724213161378437e+02 -2.725482453844213e+02 -2.726752192923742e+02 -2.728022377909456e+02 + -2.729293009817382e+02 -2.730564089616648e+02 -2.731835616365174e+02 -2.733107589046467e+02 -2.734380008257563e+02 + -2.735652874983575e+02 -2.736926190148396e+02 -2.738199954194386e+02 -2.739474165698984e+02 -2.740748823405867e+02 + -2.742023928588563e+02 -2.743299482670098e+02 -2.744575485141638e+02 -2.745851935229188e+02 -2.747128833029967e+02 + -2.748406178969678e+02 -2.749683973916734e+02 -2.750962218440648e+02 -2.752240911472609e+02 -2.753520052060601e+02 + -2.754799641358123e+02 -2.756079680559450e+02 -2.757360168916492e+02 -2.758641105650285e+02 -2.759922491800748e+02 + -2.761204328366440e+02 -2.762486614361617e+02 -2.763769348745897e+02 -2.765052532244616e+02 -2.766336165883748e+02 + -2.767620250126050e+02 -2.768904785041199e+02 -2.770189769689730e+02 -2.771475203398639e+02 -2.772761087569904e+02 + -2.774047423518460e+02 -2.775334210136085e+02 -2.776621446145333e+02 -2.777909132015001e+02 -2.779197268642361e+02 + -2.780485856892346e+02 -2.781774897218528e+02 -2.783064388461343e+02 -2.784354329669438e+02 -2.785644722337429e+02 + -2.786935567875348e+02 -2.788226864908934e+02 -2.789518612068105e+02 -2.790810810783757e+02 -2.792103462555617e+02 + -2.793396566357773e+02 -2.794690121008859e+02 -2.795984127231330e+02 -2.797278586088501e+02 -2.798573498103315e+02 + -2.799868863353985e+02 -2.801164680680156e+02 -2.802460949220819e+02 -2.803757670550874e+02 -2.805054846206144e+02 + -2.806352475130235e+02 -2.807650555997772e+02 -2.808949088999684e+02 -2.810248074853591e+02 -2.811547514867556e+02 + -2.812847409903677e+02 -2.814147758449749e+02 -2.815448559108459e+02 -2.816749813316353e+02 -2.818051522586102e+02 + -2.819353685901064e+02 -2.820656302199222e+02 -2.821959372766401e+02 -2.823262898869716e+02 -2.824566879353637e+02 + -2.825871312931868e+02 -2.827176200217700e+02 -2.828481542276227e+02 -2.829787340080183e+02 -2.831093594072626e+02 + -2.832400302670260e+02 -2.833707464559445e+02 -2.835015081531469e+02 -2.836323155420096e+02 -2.837631685124079e+02 + -2.838940669226656e+02 -2.840250107984012e+02 -2.841560002155769e+02 -2.842870352842360e+02 -2.844181160721325e+02 + -2.845492424437817e+02 -2.846804142799303e+02 -2.848116317294889e+02 -2.849428949404899e+02 -2.850742037892878e+02 + -2.852055581519247e+02 -2.853369581748677e+02 -2.854684040068092e+02 -2.855998955349205e+02 -2.857314326251873e+02 + -2.858630153203723e+02 -2.859946437114748e+02 -2.861263179056654e+02 -2.862580379663874e+02 -2.863898037660037e+02 + -2.865216151879669e+02 -2.866534723511688e+02 -2.867853753832939e+02 -2.869173242117615e+02 -2.870493187426322e+02 + -2.871813589967982e+02 -2.873134450373917e+02 -2.874455769816758e+02 -2.875777549027032e+02 -2.877099786425546e+02 + -2.878422480619707e+02 -2.879745633273037e+02 -2.881069246090204e+02 -2.882393317884377e+02 -2.883717847366556e+02 + -2.885042835730584e+02 -2.886368284288774e+02 -2.887694192344474e+02 -2.889020558953364e+02 -2.890347384189399e+02 + -2.891674668528066e+02 -2.893002413032724e+02 -2.894330618447220e+02 -2.895659283649483e+02 -2.896988407604515e+02 + -2.898317991491523e+02 -2.899648036558058e+02 -2.900978542110840e+02 -2.902309507220182e+02 -2.903640931951591e+02 + -2.904972816775983e+02 -2.906305162790740e+02 -2.907637970750559e+02 -2.908971239412933e+02 -2.910304967707643e+02 + -2.911639157250792e+02 -2.912973809535366e+02 -2.914308922875549e+02 -2.915644495654761e+02 -2.916980529712119e+02 + -2.918317026983915e+02 -2.919653986339440e+02 -2.920991406314096e+02 -2.922329287174719e+02 -2.923667629702973e+02 + -2.925006435008390e+02 -2.926345703772706e+02 -2.927685434638595e+02 -2.929025626397000e+02 -2.930366280470975e+02 + -2.931707398343328e+02 -2.933048979103752e+02 -2.934391021578708e+02 -2.935733525934834e+02 -2.937076492857184e+02 + -2.938419923764308e+02 -2.939763819565550e+02 -2.941108178399977e+02 -2.942452998623305e+02 -2.943798282228154e+02 + -2.945144031200941e+02 -2.946490243866398e+02 -2.947836918481424e+02 -2.949184056693277e+02 -2.950531660302706e+02 + -2.951879728334102e+02 -2.953228259514730e+02 -2.954577254159683e+02 -2.955926713017622e+02 -2.957276636983648e+02 + -2.958627026572042e+02 -2.959977880627373e+02 -2.961329198152110e+02 -2.962680980450039e+02 -2.964033228802077e+02 + -2.965385942096344e+02 -2.966739119278574e+02 -2.968092761917713e+02 -2.969446871501122e+02 -2.970801446566606e+02 + -2.972156485544735e+02 -2.973511989386669e+02 -2.974867959450954e+02 -2.976224396205114e+02 -2.977581299655766e+02 + -2.978938668856917e+02 -2.980296503111913e+02 -2.981654803674056e+02 -2.983013571739824e+02 -2.984372806328453e+02 + -2.985732506311156e+02 -2.987092672144286e+02 -2.988453304703744e+02 -2.989814404958496e+02 -2.991175973412398e+02 + -2.992538008615809e+02 -2.993900509369414e+02 -2.995263477428711e+02 -2.996626914493826e+02 -2.997990819088619e+02 + -2.999355189707111e+02 -3.000720027900217e+02 -3.002085335269560e+02 -3.003451110562723e+02 -3.004817352353309e+02 + -3.006184061373012e+02 -3.007551238767678e+02 -3.008918885181671e+02 -3.010287000846923e+02 -3.011655584847104e+02 + -3.013024636430795e+02 -3.014394156654455e+02 -3.015764146559894e+02 -3.017134605322491e+02 -3.018505532010304e+02 + -3.019876927128527e+02 -3.021248791518991e+02 -3.022621125932933e+02 -3.023993930706231e+02 -3.025367204603900e+02 + -3.026740946641424e+02 -3.028115158406990e+02 -3.029489841386069e+02 -3.030864994080570e+02 -3.032240615026816e+02 + -3.033616705882347e+02 -3.034993268395738e+02 -3.036370301558538e+02 -3.037747804087723e+02 -3.039125776359002e+02 + -3.040504219146317e+02 -3.041883133157825e+02 -3.043262518737324e+02 -3.044642374836954e+02 -3.046022700638564e+02 + -3.047403497634464e+02 -3.048784767248004e+02 -3.050166508316213e+02 -3.051548719471290e+02 -3.052931401112401e+02 + -3.054314554166776e+02 -3.055698179906950e+02 -3.057082279030724e+02 -3.058466849591645e+02 -3.059851889955948e+02 + -3.061237402384871e+02 -3.062623389075358e+02 -3.064009848072192e+02 -3.065396777363650e+02 -3.066784178864098e+02 + -3.068172054654241e+02 -3.069560403554044e+02 -3.070949224023651e+02 -3.072338516344630e+02 -3.073728281334552e+02 + -3.075118520133569e+02 -3.076509233435525e+02 -3.077900419826468e+02 -3.079292078053290e+02 -3.080684209614084e+02 + -3.082076816048298e+02 -3.083469896309615e+02 -3.084863449149456e+02 -3.086257475095906e+02 -3.087651975081579e+02 + -3.089046949880547e+02 -3.090442399817611e+02 -3.091838323579038e+02 -3.093234720151574e+02 -3.094631591362355e+02 + -3.096028938900603e+02 -3.097426761063483e+02 -3.098825056148365e+02 -3.100223825845469e+02 -3.101623071983122e+02 + -3.103022793549238e+02 -3.104422989228102e+02 -3.105823659329897e+02 -3.107224804626276e+02 -3.108626426108901e+02 + -3.110028524323948e+02 -3.111431097815640e+02 -3.112834145351391e+02 -3.114237668593314e+02 -3.115641669247677e+02 + -3.117046146302696e+02 -3.118451098470761e+02 -3.119856526079039e+02 -3.121262429897644e+02 -3.122668810853719e+02 + -3.124075669478935e+02 -3.125483004566077e+02 -3.126890815070839e+02 -3.128299102339429e+02 -3.129707867704560e+02 + -3.131117110054437e+02 -3.132526828292356e+02 -3.133937023826453e+02 -3.135347698019019e+02 -3.136758849544115e+02 + -3.138170476993112e+02 -3.139582581314797e+02 -3.140995163841689e+02 -3.142408225083815e+02 -3.143821765079714e+02 + -3.145235782804463e+02 -3.146650277504123e+02 -3.148065250572144e+02 -3.149480703283944e+02 -3.150896634295446e+02 + -3.152313042212708e+02 -3.153729928061792e+02 -3.155147293192109e+02 -3.156565137826469e+02 -3.157983461803634e+02 + -3.159402264552761e+02 -3.160821545730877e+02 -3.162241306316100e+02 -3.163661547129774e+02 -3.165082267045055e+02 + -3.166503465083330e+02 -3.167925142807053e+02 -3.169347301718565e+02 -3.170769940538677e+02 -3.172193057829434e+02 + -3.173616654299331e+02 -3.175040731106142e+02 -3.176465289058318e+02 -3.177890328440690e+02 -3.179315847792938e+02 + -3.180741845934695e+02 -3.182168324550577e+02 -3.183595285351408e+02 -3.185022727287870e+02 -3.186450649049847e+02 + -3.187879051044167e+02 -3.189307934072479e+02 -3.190737298798787e+02 -3.192167145562098e+02 -3.193597473539087e+02 + -3.195028282067584e+02 -3.196459572292360e+02 -3.197891345287240e+02 -3.199323600035334e+02 -3.200756335516368e+02 + -3.202189552787263e+02 -3.203623252990410e+02 -3.205057435532916e+02 -3.206492099607363e+02 -3.207927245283494e+02 + -3.209362873029775e+02 -3.210798984032395e+02 -3.212235579095965e+02 -3.213672656781062e+02 -3.215110215776564e+02 + -3.216548257528610e+02 -3.217986783602123e+02 -3.219425793279964e+02 -3.220865285490494e+02 -3.222305260026159e+02 + -3.223745717228416e+02 -3.225186658770672e+02 -3.226628085862362e+02 -3.228069996525048e+02 -3.229512388959131e+02 + -3.230955265268207e+02 -3.232398627556209e+02 -3.233842474025269e+02 -3.235286802821290e+02 -3.236731615767077e+02 + -3.238176914785998e+02 -3.239622698526831e+02 -3.241068965416273e+02 -3.242515716267282e+02 -3.243962952303619e+02 + -3.245410674006047e+02 -3.246858881442026e+02 -3.248307573768830e+02 -3.249756750377737e+02 -3.251206412506237e+02 + -3.252656561247559e+02 -3.254107195271718e+02 -3.255558313340717e+02 -3.257009917007768e+02 -3.258462007853361e+02 + -3.259914584775946e+02 -3.261367646471811e+02 -3.262821193510638e+02 -3.264275226864755e+02 -3.265729747243638e+02 + -3.267184754961565e+02 -3.268640249014856e+02 -3.270096228564299e+02 -3.271552694746495e+02 -3.273009648690628e+02 + -3.274467089520415e+02 -3.275925016223748e+02 -3.277383429250694e+02 -3.278842329472037e+02 -3.280301717979274e+02 + -3.281761595333842e+02 -3.283221959756238e+02 -3.284682809773962e+02 -3.286144147483458e+02 -3.287605974914733e+02 + -3.289068290263132e+02 -3.290531091681708e+02 -3.291994380988984e+02 -3.293458160115122e+02 -3.294922427771376e+02 + -3.296387182388717e+02 -3.297852424495862e+02 -3.299318155124273e+02 -3.300784375218649e+02 -3.302251085265343e+02 + -3.303718284004092e+02 -3.305185970357408e+02 -3.306654145725511e+02 -3.308122811494171e+02 -3.309591966513669e+02 + -3.311061609508276e+02 -3.312531741233722e+02 -3.314002362831168e+02 -3.315473474952068e+02 -3.316945077733321e+02 + -3.318417169743284e+02 -3.319889749946440e+02 -3.321362820460264e+02 -3.322836383216903e+02 -3.324310436254205e+02 + -3.325784977579187e+02 -3.327260008969810e+02 -3.328735532388732e+02 -3.330211546766479e+02 -3.331688050699581e+02 + -3.333165044480712e+02 -3.334642528918999e+02 -3.336120505193238e+02 -3.337598974031960e+02 -3.339077933992973e+02 + -3.340557383761620e+02 -3.342037324704123e+02 -3.343517758263186e+02 -3.344998683506588e+02 -3.346480099317598e+02 + -3.347962006216366e+02 -3.349444405123485e+02 -3.350927296924430e+02 -3.352410681997821e+02 -3.353894558729969e+02 + -3.355378925848257e+02 -3.356863785436656e+02 -3.358349139484366e+02 -3.359834986244929e+02 -3.361321323883865e+02 + -3.362808153950241e+02 -3.364295478191028e+02 -3.365783295761255e+02 -3.367271605486342e+02 -3.368760407465185e+02 + -3.370249702279324e+02 -3.371739491167402e+02 -3.373229774932894e+02 -3.374720551981496e+02 -3.376211820935624e+02 + -3.377703583682330e+02 -3.379195842066430e+02 -3.380688594499171e+02 -3.382181839217990e+02 -3.383675577198622e+02 + -3.385169809890102e+02 -3.386664537896355e+02 -3.388159761271593e+02 -3.389655478716282e+02 -3.391151689236262e+02 + -3.392648394412631e+02 -3.394145595795439e+02 -3.395643292235305e+02 -3.397141482525620e+02 -3.398640167930273e+02 + -3.400139349724158e+02 -3.401639026755699e+02 -3.403139197760493e+02 -3.404639863449279e+02 -3.406141024957107e+02 + -3.407642683141136e+02 -3.409144838324194e+02 -3.410647488969659e+02 -3.412150633828331e+02 -3.413654274660125e+02 + -3.415158413252182e+02 -3.416663048491409e+02 -3.418168178992377e+02 -3.419673805180489e+02 -3.421179927901010e+02 + -3.422686547867838e+02 -3.424193665441726e+02 -3.425701279702224e+02 -3.427209389917095e+02 -3.428717997388184e+02 + -3.430227103286458e+02 -3.431736706225328e+02 -3.433246804902436e+02 -3.434757400909901e+02 -3.436268495884827e+02 + -3.437780088749811e+02 -3.439292178162220e+02 -3.440804764432992e+02 -3.442317848369893e+02 -3.443831431114438e+02 + -3.445345513395477e+02 -3.446860093957458e+02 -3.448375171638715e+02 -3.449890747637513e+02 -3.451406823209921e+02 + -3.452923397483303e+02 -3.454440469383874e+02 -3.455958039161959e+02 -3.457476107544265e+02 -3.458994675838882e+02 + -3.460513744837874e+02 -3.462033312687789e+02 -3.463553377809081e+02 -3.465073942363314e+02 -3.466595008454457e+02 + -3.468116574214998e+02 -3.469638637732855e+02 -3.471161200889126e+02 -3.472684265676839e+02 -3.474207830743587e+02 + -3.475731894457752e+02 -3.477256457416318e+02 -3.478781520698926e+02 -3.480307085087305e+02 -3.481833150905516e+02 + -3.483359716944890e+02 -3.484886782275422e+02 -3.486414348614480e+02 -3.487942417546251e+02 -3.489470987474849e+02 + -3.491000056682386e+02 -3.492529626143035e+02 -3.494059697303613e+02 -3.495590270809477e+02 -3.497121346735108e+02 + -3.498652923672977e+02 -3.500185000578142e+02 -3.501717579338015e+02 -3.503250661735650e+02 -3.504784246204307e+02 + -3.506318331106053e+02 -3.507852917867942e+02 -3.509388008057230e+02 -3.510923600737020e+02 -3.512459694729739e+02 + -3.513996290399252e+02 -3.515533388531561e+02 -3.517070990059733e+02 -3.518609095547224e+02 -3.520147703931951e+02 + -3.521686814254426e+02 -3.523226427591028e+02 -3.524766545004363e+02 -3.526307165466042e+02 -3.527848288024159e+02 + -3.529389914123712e+02 -3.530932045168612e+02 -3.532474680001527e+02 -3.534017817301934e+02 -3.535561457657783e+02 + -3.537105602073667e+02 -3.538650251312291e+02 -3.540195405716707e+02 -3.541741064193253e+02 -3.543287225825957e+02 + -3.544833891846346e+02 -3.546381063473606e+02 -3.547928739730113e+02 -3.549476919508821e+02 -3.551025603381796e+02 + -3.552574792297605e+02 -3.554124487031720e+02 -3.555674687945711e+02 -3.557225393918643e+02 -3.558776604020463e+02 + -3.560328319567154e+02 -3.561880541805177e+02 -3.563433269456882e+02 -3.564986501330765e+02 -3.566540239103983e+02 + -3.568094484429710e+02 -3.569649235996524e+02 -3.571204492251743e+02 -3.572760253642205e+02 -3.574316521198430e+02 + -3.575873296286128e+02 -3.577430579645793e+02 -3.578988369181832e+02 -3.580546663122107e+02 -3.582105463824335e+02 + -3.583664773634632e+02 -3.585224590722860e+02 -3.586784912980774e+02 -3.588345741363943e+02 -3.589907077420278e+02 + -3.591468922003262e+02 -3.593031275347307e+02 -3.594594135904955e+02 -3.596157502414973e+02 -3.597721376542854e+02 + -3.599285759961583e+02 -3.600850651447366e+02 -3.602416049709182e+02 -3.603981956083848e+02 -3.605548371920680e+02 + -3.607115295991184e+02 -3.608682726958015e+02 -3.610250665626241e+02 -3.611819113190277e+02 -3.613388070259530e+02 + -3.614957536972620e+02 -3.616527512170044e+02 -3.618097994957786e+02 -3.619668986801910e+02 -3.621240489112448e+02 + -3.622812500715253e+02 -3.624385020268735e+02 -3.625958048345691e+02 -3.627531585959862e+02 -3.629105633974360e+02 + -3.630680192762735e+02 -3.632255260890885e+02 -3.633830837209757e+02 -3.635406923518125e+02 -3.636983521500620e+02 + -3.638560629437486e+02 -3.640138245654421e+02 -3.641716372063300e+02 -3.643295010634408e+02 -3.644874159985495e+02 + -3.646453818454157e+02 -3.648033986609884e+02 -3.649614665547653e+02 -3.651195856232492e+02 -3.652777559169987e+02 + -3.654359773157880e+02 -3.655942497193339e+02 -3.657525732779061e+02 -3.659109481367831e+02 -3.660693741707290e+02 + -3.662278512419212e+02 -3.663863794327037e+02 -3.665449588644519e+02 -3.667035895945005e+02 -3.668622716357800e+02 + -3.670210048876434e+02 -3.671797892763418e+02 -3.673386249492966e+02 -3.674975120447079e+02 -3.676564504427247e+02 + -3.678154400208724e+02 -3.679744809042344e+02 -3.681335732252156e+02 -3.682927168979475e+02 -3.684519118222935e+02 + -3.686111580593141e+02 -3.687704557033292e+02 -3.689298048205014e+02 -3.690892054329191e+02 -3.692486574145354e+02 + -3.694081606700869e+02 -3.695677153755793e+02 -3.697273216946131e+02 -3.698869794698993e+02 -3.700466885253786e+02 + -3.702064489307988e+02 -3.703662608017668e+02 -3.705261241915196e+02 -3.706860391012269e+02 -3.708460053861607e+02 + -3.710060229388483e+02 -3.711660919467376e+02 -3.713262125796104e+02 -3.714863846416646e+02 -3.716466079328989e+02 + -3.718068826020972e+02 -3.719672088201144e+02 -3.721275864973102e+02 -3.722880155098476e+02 -3.724484958575989e+02 + -3.726090275883345e+02 -3.727696108177087e+02 -3.729302456171431e+02 -3.730909318132427e+02 -3.732516692484294e+02 + -3.734124580732086e+02 -3.735732984485285e+02 -3.737341902690280e+02 -3.738951333966488e+02 -3.740561278288502e+02 + -3.742171736164895e+02 -3.743782708884933e+02 -3.745394197314636e+02 -3.747006199846337e+02 -3.748618715145197e+02 + -3.750231745441332e+02 -3.751845292967938e+02 -3.753459356405600e+02 -3.755073934398666e+02 -3.756689028999150e+02 + -3.758304642401999e+02 -3.759920773966298e+02 -3.761537422764503e+02 -3.763154589558405e+02 -3.764772275566993e+02 + -3.766390482148706e+02 -3.768009210261144e+02 -3.769628459119104e+02 -3.771248228066682e+02 -3.772868518707951e+02 + -3.774489332703654e+02 -3.776110669681248e+02 -3.777732529036114e+02 -3.779354911268638e+02 -3.780977817328078e+02 + -3.782601248854201e+02 -3.784225207068740e+02 -3.785849690830777e+02 -3.787474699201715e+02 -3.789100234414875e+02 + -3.790726298611719e+02 -3.792352890394379e+02 -3.793980008403989e+02 -3.795607654977005e+02 -3.797235832511840e+02 + -3.798864539959452e+02 -3.800493775732837e+02 -3.802123539540593e+02 -3.803753831256555e+02 -3.805384650119894e+02 + -3.807015994897982e+02 -3.808647863105625e+02 -3.810280252452890e+02 -3.811913162683451e+02 -3.813546593533040e+02 + -3.815180542672069e+02 -3.816815007606327e+02 -3.818449987248433e+02 -3.820085480876401e+02 -3.821721487823003e+02 + -3.823358007029311e+02 -3.824995035814819e+02 -3.826632571794644e+02 -3.828270615387958e+02 -3.829909166775790e+02 + -3.831548222382581e+02 -3.833187778788636e+02 -3.834827836954302e+02 -3.836468397830658e+02 -3.838109457951704e+02 + -3.839751013606573e+02 -3.841393064522010e+02 -3.843035610985582e+02 -3.844678652090594e+02 -3.846322186342679e+02 + -3.847966211091070e+02 -3.849610723938522e+02 -3.851255724658270e+02 -3.852901213276589e+02 -3.854547188661456e+02 + -3.856193651039130e+02 -3.857840607227301e+02 -3.859488064858506e+02 -3.861136028233281e+02 -3.862784501283425e+02 + -3.864433489797775e+02 -3.866083000045549e+02 -3.867733038360474e+02 -3.869383610689728e+02 -3.871034721369783e+02 + -3.872686374886131e+02 -3.874338577931016e+02 -3.875991337168530e+02 -3.877644656943423e+02 -3.879298541437876e+02 + -3.880952996503134e+02 -3.882608028487801e+02 -3.884263644060860e+02 -3.885919849359946e+02 -3.887576648076931e+02 + -3.889234044110585e+02 -3.890892044633024e+02 -3.892550656828005e+02 -3.894209884652491e+02 -3.895869732058733e+02 + -3.897530206206903e+02 -3.899191314265681e+02 -3.900853060229904e+02 -3.902515447813749e+02 -3.904178482782592e+02 + -3.905842171832736e+02 -3.907506523333024e+02 -3.909171542011455e+02 -3.910837216360146e+02 -3.912503530200719e+02 + -3.914170464908692e+02 -3.915838000867597e+02 -3.917506116939103e+02 -3.919174791997058e+02 -3.920844006485843e+02 + -3.922513741233318e+02 -3.924183977030698e+02 -3.925854694180132e+02 -3.927525871064144e+02 -3.929197486330507e+02 + -3.930869521607613e+02 -3.932541958513385e+02 -3.934214775643266e+02 -3.935887951493436e+02 -3.937561467185514e+02 + -3.939235303999417e+02 -3.940909441222876e+02 -3.942583857858931e+02 -3.944258533764072e+02 -3.945933449213566e+02 + -3.947608585304349e+02 -3.949283922804248e+02 -3.950959440342958e+02 -3.952635116636291e+02 -3.954310932882606e+02 + -3.955986870327357e+02 -3.957662907921835e+02 -3.959339024467546e+02 -3.961015200461023e+02 -3.962691416638499e+02 + 1.070000000000000e-01 1.069682658750319e-01 1.069365186252596e-01 1.069047582677665e-01 1.068729848196356e-01 + 1.068411982979503e-01 1.068093987197937e-01 1.067775861022493e-01 1.067457604624000e-01 1.067139218173294e-01 + 1.066820701841205e-01 1.066502055798566e-01 1.066183280216209e-01 1.065864375264968e-01 1.065545341115673e-01 + 1.065226177939159e-01 1.064906885906257e-01 1.064587465187799e-01 1.064267915954618e-01 1.063948238377547e-01 + 1.063628432627417e-01 1.063308498875062e-01 1.062988437291314e-01 1.062668248047005e-01 1.062347931312967e-01 + 1.062027487260033e-01 1.061706916059036e-01 1.061386217880807e-01 1.061065392896180e-01 1.060744441275985e-01 + 1.060423363191058e-01 1.060102158812228e-01 1.059780828310330e-01 1.059459371856195e-01 1.059137789620655e-01 + 1.058816081774544e-01 1.058494248488693e-01 1.058172289933936e-01 1.057850206281103e-01 1.057527997701029e-01 + 1.057205664364545e-01 1.056883206442483e-01 1.056560624105677e-01 1.056237917524958e-01 1.055915086871159e-01 + 1.055592132315112e-01 1.055269054027650e-01 1.054945852179606e-01 1.054622526941811e-01 1.054299078485097e-01 + 1.053975506980299e-01 1.053651812598247e-01 1.053327995509774e-01 1.053004055885713e-01 1.052679993896897e-01 + 1.052355809714157e-01 1.052031503508325e-01 1.051707075450236e-01 1.051382525710719e-01 1.051057854460610e-01 + 1.050733061870738e-01 1.050408148111938e-01 1.050083113355042e-01 1.049757957770881e-01 1.049432681530288e-01 + 1.049107284804097e-01 1.048781767763138e-01 1.048456130578245e-01 1.048130373420250e-01 1.047804496459986e-01 + 1.047478499868284e-01 1.047152383815977e-01 1.046826148473898e-01 1.046499794012880e-01 1.046173320603753e-01 + 1.045846728417352e-01 1.045520017624508e-01 1.045193188396054e-01 1.044866240902822e-01 1.044539175315645e-01 + 1.044211991805354e-01 1.043884690542783e-01 1.043557271698764e-01 1.043229735444130e-01 1.042902081949712e-01 + 1.042574311386343e-01 1.042246423924855e-01 1.041918419736082e-01 1.041590298990855e-01 1.041262061860007e-01 + 1.040933708514369e-01 1.040605239124776e-01 1.040276653862059e-01 1.039947952897050e-01 1.039619136400582e-01 + 1.039290204543487e-01 1.038961157496599e-01 1.038631995430748e-01 1.038302718516768e-01 1.037973326925491e-01 + 1.037643820827749e-01 1.037314200394375e-01 1.036984465796201e-01 1.036654617204061e-01 1.036324654788785e-01 + 1.035994578721206e-01 1.035664389172158e-01 1.035334086312472e-01 1.035003670312980e-01 1.034673141344516e-01 + 1.034342499577912e-01 1.034011745183999e-01 1.033680878333612e-01 1.033349899197580e-01 1.033018807946739e-01 + 1.032687604751918e-01 1.032356289783953e-01 1.032024863213673e-01 1.031693325211913e-01 1.031361675949504e-01 + 1.031029915597278e-01 1.030698044326069e-01 1.030366062306709e-01 1.030033969710030e-01 1.029701766706864e-01 + 1.029369453468044e-01 1.029037030164402e-01 1.028704496966771e-01 1.028371854045984e-01 1.028039101572872e-01 + 1.027706239718267e-01 1.027373268653004e-01 1.027040188547913e-01 1.026706999573827e-01 1.026373701901580e-01 + 1.026040295702002e-01 1.025706781145926e-01 1.025373158404186e-01 1.025039427647613e-01 1.024705589047040e-01 + 1.024371642773299e-01 1.024037588997223e-01 1.023703427889643e-01 1.023369159621393e-01 1.023034784363305e-01 + 1.022700302286212e-01 1.022365713560945e-01 1.022031018358337e-01 1.021696216849221e-01 1.021361309204428e-01 + 1.021026295594792e-01 1.020691176191145e-01 1.020355951164319e-01 1.020020620685147e-01 1.019685184924461e-01 + 1.019349644053093e-01 1.019013998241876e-01 1.018678247661643e-01 1.018342392483225e-01 1.018006432877456e-01 + 1.017670369015167e-01 1.017334201067191e-01 1.016997929204361e-01 1.016661553597508e-01 1.016325074417466e-01 + 1.015988491835066e-01 1.015651806021141e-01 1.015315017146524e-01 1.014978125382047e-01 1.014641130898543e-01 + 1.014304033866843e-01 1.013966834457780e-01 1.013629532842187e-01 1.013292129190896e-01 1.012954623674739e-01 + 1.012617016464549e-01 1.012279307731159e-01 1.011941497645400e-01 1.011603586378106e-01 1.011265574100107e-01 + 1.010927460982239e-01 1.010589247195331e-01 1.010250932910217e-01 1.009912518297729e-01 1.009574003528701e-01 + 1.009235388773963e-01 1.008896674204348e-01 1.008557859990690e-01 1.008218946303820e-01 1.007879933314571e-01 + 1.007540821193774e-01 1.007201610112264e-01 1.006862300240872e-01 1.006522891750429e-01 1.006183384811770e-01 + 1.005843779595726e-01 1.005504076273130e-01 1.005164275014813e-01 1.004824375991610e-01 1.004484379374351e-01 + 1.004144285333870e-01 1.003804094040999e-01 1.003463805666569e-01 1.003123420381414e-01 1.002782938356367e-01 + 1.002442359762259e-01 1.002101684769922e-01 1.001760913550190e-01 1.001420046273895e-01 1.001079083111869e-01 + 1.000738024234945e-01 1.000396869813954e-01 1.000055620019730e-01 9.997142750231042e-02 9.993728349949102e-02 + 9.990313001059796e-02 9.986896705271456e-02 9.983479464292398e-02 9.980061279830947e-02 9.976642153595434e-02 + 9.973222087294174e-02 9.969801082635499e-02 9.966379141327726e-02 9.962956265079187e-02 9.959532455598200e-02 + 9.956107714593093e-02 9.952682043772192e-02 9.949255444843813e-02 9.945827919516288e-02 9.942399469497937e-02 + 9.938970096497086e-02 9.935539802222057e-02 9.932108588381178e-02 9.928676456682770e-02 9.925243408835159e-02 + 9.921809446546671e-02 9.918374571525623e-02 9.914938785480347e-02 9.911502090119163e-02 9.908064487150398e-02 + 9.904625978282372e-02 9.901186565223413e-02 9.897746249681845e-02 9.894305033365988e-02 9.890862917984172e-02 + 9.887419905244718e-02 9.883975996855951e-02 9.880531194526194e-02 9.877085499963774e-02 9.873638914877009e-02 + 9.870191440974231e-02 9.866743079963761e-02 9.863293833553920e-02 9.859843703453038e-02 9.856392691369432e-02 + 9.852940799011436e-02 9.849488028087365e-02 9.846034380305550e-02 9.842579857374308e-02 9.839124461001970e-02 + 9.835668192896858e-02 9.832211054767293e-02 9.828753048321603e-02 9.825294175268109e-02 9.821834437315143e-02 + 9.818373836171017e-02 9.814912373544066e-02 9.811450051142606e-02 9.807986870674969e-02 9.804522833849474e-02 + 9.801057942374444e-02 9.797592197958208e-02 9.794125602309085e-02 9.790658157135405e-02 9.787189864145487e-02 + 9.783720725047659e-02 9.780250741550246e-02 9.776779915361565e-02 9.773308248189948e-02 9.769835741743713e-02 + 9.766362397731190e-02 9.762888217860698e-02 9.759413203840565e-02 9.755937357379113e-02 9.752460680184671e-02 + 9.748983173965557e-02 9.745504840430097e-02 9.742025681286617e-02 9.738545698243438e-02 9.735064893008888e-02 + 9.731583267291286e-02 9.728100822798963e-02 9.724617561240236e-02 9.721133484323437e-02 9.717648593756885e-02 + 9.714162891248904e-02 9.710676378507821e-02 9.707189057241956e-02 9.703700929159639e-02 9.700211995969188e-02 + 9.696722259378933e-02 9.693231721097194e-02 9.689740382832296e-02 9.686248246292567e-02 9.682755313186324e-02 + 9.679261585221899e-02 9.675767064107609e-02 9.672271751551782e-02 9.668775649262741e-02 9.665278758948814e-02 + 9.661781082318323e-02 9.658282621079586e-02 9.654783376940938e-02 9.651283351610694e-02 9.647782546797186e-02 + 9.644280964208730e-02 9.640778605553657e-02 9.637275472540287e-02 9.633771566876947e-02 9.630266890271960e-02 + 9.626761444433649e-02 9.623255231070338e-02 9.619748251890356e-02 9.616240508602021e-02 9.612732002913663e-02 + 9.609222736533599e-02 9.605712711170160e-02 9.602201928531666e-02 9.598690390326445e-02 9.595178098262819e-02 + 9.591665054049109e-02 9.588151259393644e-02 9.584636716004745e-02 9.581121425590743e-02 9.577605389859950e-02 + 9.574088610520702e-02 9.570571089281314e-02 9.567052827850117e-02 9.563533827935435e-02 9.560014091245586e-02 + 9.556493619488900e-02 9.552972414373699e-02 9.549450477608308e-02 9.545927810901049e-02 9.542404415960248e-02 + 9.538880294494230e-02 9.535355448211316e-02 9.531829878819836e-02 9.528303588028109e-02 9.524776577544461e-02 + 9.521248849077216e-02 9.517720404334697e-02 9.514191245025229e-02 9.510661372857139e-02 9.507130789538748e-02 + 9.503599496778380e-02 9.500067496284360e-02 9.496534789765015e-02 9.493001378928664e-02 9.489467265483635e-02 + 9.485932451138250e-02 9.482396937600834e-02 9.478860726579713e-02 9.475323819783207e-02 9.471786218919645e-02 + 9.468247925697347e-02 9.464708941824643e-02 9.461169269009850e-02 9.457628908961296e-02 9.454087863387305e-02 + 9.450546133996199e-02 9.447003722496307e-02 9.443460630595948e-02 9.439916860003450e-02 9.436372412427137e-02 + 9.432827289575330e-02 9.429281493156354e-02 9.425735024878537e-02 9.422187886450198e-02 9.418640079579664e-02 + 9.415091605975259e-02 9.411542467345307e-02 9.407992665398136e-02 9.404442201842063e-02 9.400891078385415e-02 + 9.397339296736518e-02 9.393786858603695e-02 9.390233765695270e-02 9.386680019719568e-02 9.383125622384911e-02 + 9.379570575399625e-02 9.376014880472036e-02 9.372458539310466e-02 9.368901553623238e-02 9.365343925118678e-02 + 9.361785655505112e-02 9.358226746490858e-02 9.354667199784246e-02 9.351107017093598e-02 9.347546200127239e-02 + 9.343984750593494e-02 9.340422670200685e-02 9.336859960657137e-02 9.333296623671174e-02 9.329732660951121e-02 + 9.326168074205300e-02 9.322602865142039e-02 9.319037035469660e-02 9.315470586896488e-02 9.311903521130845e-02 + 9.308335839881057e-02 9.304767544855448e-02 9.301198637762342e-02 9.297629120310064e-02 9.294058994206936e-02 + 9.290488261161287e-02 9.286916922881436e-02 9.283344981075708e-02 9.279772437452428e-02 9.276199293719922e-02 + 9.272625551586512e-02 9.269051212760523e-02 9.265476278950278e-02 9.261900751864104e-02 9.258324633210324e-02 + 9.254747924697261e-02 9.251170628033240e-02 9.247592744926583e-02 9.244014277085617e-02 9.240435226218666e-02 + 9.236855594034055e-02 9.233275382240104e-02 9.229694592545142e-02 9.226113226657491e-02 9.222531286285476e-02 + 9.218948773137420e-02 9.215365688921646e-02 9.211782035346482e-02 9.208197814120249e-02 9.204613026951274e-02 + 9.201027675547878e-02 9.197441761618388e-02 9.193855286871126e-02 9.190268253014419e-02 9.186680661756588e-02 + 9.183092514805957e-02 9.179503813870854e-02 9.175914560659600e-02 9.172324756880521e-02 9.168734404241941e-02 + 9.165143504452181e-02 9.161552059219569e-02 9.157960070252427e-02 9.154367539259080e-02 9.150774467947854e-02 + 9.147180858027071e-02 9.143586711205055e-02 9.139992029190132e-02 9.136396813690625e-02 9.132801066414858e-02 + 9.129204789071155e-02 9.125607983367841e-02 9.122010651013239e-02 9.118412793715676e-02 9.114814413183472e-02 + 9.111215511124955e-02 9.107616089248448e-02 9.104016149262276e-02 9.100415692874760e-02 9.096814721794225e-02 + 9.093213237728998e-02 9.089611242387401e-02 9.086008737477760e-02 9.082405724708396e-02 9.078802205787638e-02 + 9.075198182423806e-02 9.071593656325225e-02 9.067988629200220e-02 9.064383102757116e-02 9.060777078704237e-02 + 9.057170558749904e-02 9.053563544602444e-02 9.049956037970180e-02 9.046348040561442e-02 9.042739554084545e-02 + 9.039130580247817e-02 9.035521120759583e-02 9.031911177328168e-02 9.028300751661894e-02 9.024689845469086e-02 + 9.021078460458068e-02 9.017466598337168e-02 9.013854260814702e-02 9.010241449599002e-02 9.006628166398388e-02 + 9.003014412921184e-02 8.999400190875718e-02 8.995785501970310e-02 8.992170347913286e-02 8.988554730412972e-02 + 8.984938651177689e-02 8.981322111915761e-02 8.977705114335516e-02 8.974087660145275e-02 8.970469751053363e-02 + 8.966851388768103e-02 8.963232574997822e-02 8.959613311450842e-02 8.955993599835491e-02 8.952373441860086e-02 + 8.948752839232957e-02 8.945131793662427e-02 8.941510306856817e-02 8.937888380524456e-02 8.934266016373665e-02 + 8.930643216112769e-02 8.927019981450095e-02 8.923396314093963e-02 8.919772215752698e-02 8.916147688134625e-02 + 8.912522732948071e-02 8.908897351901354e-02 8.905271546702803e-02 8.901645319060740e-02 8.898018670683491e-02 + 8.894391603279379e-02 8.890764118556729e-02 8.887136218223864e-02 8.883507903989107e-02 8.879879177560786e-02 + 8.876250040647221e-02 8.872620494956741e-02 8.868990542197666e-02 8.865360184078323e-02 8.861729422307035e-02 + 8.858098258592126e-02 8.854466694641919e-02 8.850834732164740e-02 8.847202372868912e-02 8.843569618462761e-02 + 8.839936470654611e-02 8.836302931152785e-02 8.832669001665606e-02 8.829034683901400e-02 8.825399979568492e-02 + 8.821764890375206e-02 8.818129418029862e-02 8.814493564240788e-02 8.810857330716310e-02 8.807220719164749e-02 + 8.803583731294432e-02 8.799946368813677e-02 8.796308633430815e-02 8.792670526854167e-02 8.789032050792057e-02 + 8.785393206952812e-02 8.781753997044753e-02 8.778114422776205e-02 8.774474485855495e-02 8.770834187990943e-02 + 8.767193530890875e-02 8.763552516263615e-02 8.759911145817488e-02 8.756269421260816e-02 8.752627344301928e-02 + 8.748984916649143e-02 8.745342140010788e-02 8.741699016095185e-02 8.738055546610660e-02 8.734411733265539e-02 + 8.730767577768141e-02 8.727123081826793e-02 8.723478247149821e-02 8.719833075445547e-02 8.716187568422298e-02 + 8.712541727788393e-02 8.708895555252159e-02 8.705249052521923e-02 8.701602221306004e-02 8.697955063312730e-02 + 8.694307580250422e-02 8.690659773827408e-02 8.687011645752010e-02 8.683363197732555e-02 8.679714431477362e-02 + 8.676065348694757e-02 8.672415951093065e-02 8.668766240380611e-02 8.665116218265721e-02 8.661465886456714e-02 + 8.657815246661917e-02 8.654164300589655e-02 8.650513049948251e-02 8.646861496446030e-02 8.643209641791315e-02 + 8.639557487692430e-02 8.635905035857701e-02 8.632252287995451e-02 8.628599245814005e-02 8.624945911021686e-02 + 8.621292285326819e-02 8.617638370437727e-02 8.613984168062737e-02 8.610329679910171e-02 8.606674907688353e-02 + 8.603019853105608e-02 8.599364517870259e-02 8.595708903690633e-02 8.592053012275053e-02 8.588396845331842e-02 + 8.584740404569323e-02 8.581083691695822e-02 8.577426708419665e-02 8.573769456449173e-02 8.570111937492672e-02 + 8.566454153258486e-02 8.562796105454940e-02 8.559137795790356e-02 8.555479225973059e-02 8.551820397711374e-02 + 8.548161312713624e-02 8.544501972688134e-02 8.540842379343229e-02 8.537182534387232e-02 8.533522439528468e-02 + 8.529862096475260e-02 8.526201506935933e-02 8.522540672618811e-02 8.518879595232219e-02 8.515218276484479e-02 + 8.511556718083918e-02 8.507894921738858e-02 8.504232889157626e-02 8.500570622048544e-02 8.496908122119934e-02 + 8.493245391080124e-02 8.489582430637438e-02 8.485919242500198e-02 8.482255828376728e-02 8.478592189975355e-02 + 8.474928329004400e-02 8.471264247172190e-02 8.467599946187047e-02 8.463935427757298e-02 8.460270693591267e-02 + 8.456605745397273e-02 8.452940584883646e-02 8.449275213758706e-02 8.445609633730780e-02 8.441943846508193e-02 + 8.438277853799266e-02 8.434611657312326e-02 8.430945258755695e-02 8.427278659837699e-02 8.423611862266661e-02 + 8.419944867750905e-02 8.416277677998756e-02 8.412610294718537e-02 8.408942719618576e-02 8.405274954407191e-02 + 8.401607000792713e-02 8.397938860483460e-02 8.394270535187759e-02 8.390602026613936e-02 8.386933336470312e-02 + 8.383264466465212e-02 8.379595418306962e-02 8.375926193703884e-02 8.372256794364304e-02 8.368587221996546e-02 + 8.364917478308932e-02 8.361247565009787e-02 8.357577483807437e-02 8.353907236410206e-02 8.350236824526415e-02 + 8.346566249864391e-02 8.342895514132459e-02 8.339224619038943e-02 8.335553566292164e-02 8.331882357600448e-02 + 8.328210994672121e-02 8.324539479215504e-02 8.320867812938924e-02 8.317195997550704e-02 8.313524034759166e-02 + 8.309851926272641e-02 8.306179673799445e-02 8.302507279047908e-02 8.298834743726349e-02 8.295162069543097e-02 + 8.291489258206473e-02 8.287816311424805e-02 8.284143230906414e-02 8.280470018359624e-02 8.276796675492762e-02 + 8.273123204014149e-02 8.269449605632111e-02 8.265775882054972e-02 8.262102034991055e-02 8.258428066148686e-02 + 8.254753977236187e-02 8.251079769961885e-02 8.247405446034105e-02 8.243731007161166e-02 8.240056455051395e-02 + 8.236381791413117e-02 8.232707017954656e-02 8.229032136384334e-02 8.225357148410478e-02 8.221682055741411e-02 + 8.218006860085458e-02 8.214331563150944e-02 8.210656166646188e-02 8.206980672279519e-02 8.203305081759260e-02 + 8.199629396793737e-02 8.195953619091272e-02 8.192277750360188e-02 8.188601792308813e-02 8.184925746645468e-02 + 8.181249615078479e-02 8.177573399316168e-02 8.173897101066861e-02 8.170220722038883e-02 8.166544263940556e-02 + 8.162867728480205e-02 8.159191117366156e-02 8.155514432306732e-02 8.151837675010254e-02 8.148160847185050e-02 + 8.144483950539445e-02 8.140806986781760e-02 8.137129957620320e-02 8.133452864763450e-02 8.129775709919475e-02 + 8.126098494796720e-02 8.122421221103504e-02 8.118743890548155e-02 8.115066504838998e-02 8.111389065684355e-02 + 8.107711574792552e-02 8.104034033871912e-02 8.100356444630759e-02 8.096678808777417e-02 8.093001128020215e-02 + 8.089323404067471e-02 8.085645638627510e-02 8.081967833408658e-02 8.078289990119239e-02 8.074612110467576e-02 + 8.070934196161997e-02 8.067256248910820e-02 8.063578270422375e-02 8.059900262404983e-02 8.056222226566968e-02 + 8.052544164616657e-02 8.048866078262369e-02 8.045187969212433e-02 8.041509839175172e-02 8.037831689858911e-02 + 8.034153522971973e-02 8.030475340222681e-02 8.026797143319361e-02 8.023118933970336e-02 8.019440713883932e-02 + 8.015762484768471e-02 8.012084248332278e-02 8.008406006283678e-02 8.004727760330994e-02 8.001049512182555e-02 + 7.997371263546676e-02 7.993693016131688e-02 7.990014771645915e-02 7.986336531797676e-02 7.982658298295300e-02 + 7.978980072847111e-02 7.975301857161432e-02 7.971623652946590e-02 7.967945461910902e-02 7.964267285762699e-02 + 7.960589126210302e-02 7.956910984962039e-02 7.953232863726228e-02 7.949554764211197e-02 7.945876688125271e-02 + 7.942198637176773e-02 7.938520613074028e-02 7.934842617525358e-02 7.931164652239087e-02 7.927486718923542e-02 + 7.923808819287045e-02 7.920130955037924e-02 7.916453127884499e-02 7.912775339535094e-02 7.909097591698037e-02 + 7.905419886081648e-02 7.901742224394255e-02 7.898064608344180e-02 7.894387039639746e-02 7.890709519989279e-02 + 7.887032051101103e-02 7.883354634683543e-02 7.879677272444922e-02 7.875999966093565e-02 7.872322717337794e-02 + 7.868645527885937e-02 7.864968399446313e-02 7.861291333727252e-02 7.857614332437074e-02 7.853937397284104e-02 + 7.850260529976670e-02 7.846583732223091e-02 7.842907005731693e-02 7.839230352210801e-02 7.835553773368738e-02 + 7.831877270913830e-02 7.828200846554398e-02 7.824524501998768e-02 7.820848238955266e-02 7.817172059132216e-02 + 7.813495964237939e-02 7.809819955980761e-02 7.806144036069006e-02 7.802468206210998e-02 7.798792468115062e-02 + 7.795116823489523e-02 7.791441274042703e-02 7.787765821482928e-02 7.784090467518520e-02 7.780415213857807e-02 + 7.776740062209107e-02 7.773065014280750e-02 7.769390071781057e-02 7.765715236418354e-02 7.762040509900967e-02 + 7.758365893937215e-02 7.754691390235426e-02 7.751017000503922e-02 7.747342726451029e-02 7.743668569785070e-02 + 7.739994532214370e-02 7.736320615447252e-02 7.732646821192042e-02 7.728973151157063e-02 7.725299607050642e-02 + 7.721626190581099e-02 7.717952903456758e-02 7.714279747385946e-02 7.710606724076986e-02 7.706933835238206e-02 + 7.703261082577922e-02 7.699588467804465e-02 7.695915992626157e-02 7.692243658751323e-02 7.688571467888285e-02 + 7.684899421745368e-02 7.681227522030898e-02 7.677555770453198e-02 7.673884168720593e-02 7.670212718541405e-02 + 7.666541421623961e-02 7.662870279676583e-02 7.659199294407595e-02 7.655528467525324e-02 7.651857800738091e-02 + 7.648187295754222e-02 7.644516954282041e-02 7.640846778029871e-02 7.637176768706039e-02 7.633506928018867e-02 + 7.629837257676678e-02 7.626167759387799e-02 7.622498434860552e-02 7.618829285803264e-02 7.615160313924255e-02 + 7.611491520931853e-02 7.607822908534380e-02 7.604154478440163e-02 7.600486232357523e-02 7.596818171994783e-02 + 7.593150299060271e-02 7.589482615262309e-02 7.585815122309225e-02 7.582147821909338e-02 7.578480715770973e-02 + 7.574813805602458e-02 7.571147093112113e-02 7.567480580008265e-02 7.563814267999236e-02 7.560148158793352e-02 + 7.556482254098935e-02 7.552816555624312e-02 7.549151065077807e-02 7.545485784167741e-02 7.541820714602442e-02 + 7.538155858090231e-02 7.534491216339434e-02 7.530826791058375e-02 7.527162583955378e-02 7.523498596738766e-02 + 7.519834831116866e-02 7.516171288797999e-02 7.512507971490495e-02 7.508844880902671e-02 7.505182018742854e-02 + 7.501519386719367e-02 7.497856986540538e-02 7.494194819914687e-02 7.490532888550142e-02 7.486871194155223e-02 + 7.483209738438257e-02 7.479548523107570e-02 7.475887549871482e-02 7.472226820438319e-02 7.468566336516404e-02 + 7.464906099814063e-02 7.461246112039621e-02 7.457586374901400e-02 7.453926890107723e-02 7.450267659366919e-02 + 7.446608684387307e-02 7.442949966877216e-02 7.439291508544965e-02 7.435633311098883e-02 7.431975376247291e-02 + 7.428317705698513e-02 7.424660301160878e-02 7.421003164342704e-02 7.417346296952319e-02 7.413689700698045e-02 + 7.410033377288210e-02 7.406377328431132e-02 7.402721555835140e-02 7.399066061208556e-02 7.395410846259706e-02 + 7.391755912696915e-02 7.388101262228504e-02 7.384446896562798e-02 7.380792817408122e-02 7.377139026472800e-02 + 7.373485525465158e-02 7.369832316093516e-02 7.366179400066203e-02 7.362526779091538e-02 7.358874454877849e-02 + 7.355222429133459e-02 7.351570703566694e-02 7.347919279885876e-02 7.344268159799329e-02 7.340617345015378e-02 + 7.336966837242348e-02 7.333316638188561e-02 7.329666749562345e-02 7.326017173072021e-02 7.322367910425913e-02 + 7.318718963332346e-02 7.315070333499644e-02 7.311422022636133e-02 7.307774032450136e-02 7.304126364649975e-02 + 7.300479020943977e-02 7.296832003040465e-02 7.293185312647765e-02 7.289538951474199e-02 7.285892921228092e-02 + 7.282247223617767e-02 7.278601860351550e-02 7.274956833137766e-02 7.271312143684736e-02 7.267667793700786e-02 + 7.264023784894239e-02 7.260380118973422e-02 7.256736797646657e-02 7.253093822622268e-02 7.249451195608582e-02 + 7.245808918313920e-02 7.242166992446607e-02 7.238525419714967e-02 7.234884201827325e-02 7.231243340492007e-02 + 7.227602837417331e-02 7.223962694311627e-02 7.220322912883217e-02 7.216683494840427e-02 7.213044441891579e-02 + 7.209405755744998e-02 7.205767438109009e-02 7.202129490691934e-02 7.198491915202099e-02 7.194854713347830e-02 + 7.191217886837446e-02 7.187581437379276e-02 7.183945366681642e-02 7.180309676452867e-02 7.176674368401278e-02 + 7.173039444235199e-02 7.169404905662952e-02 7.165770754392863e-02 7.162136992133256e-02 7.158503620592453e-02 + 7.154870641478780e-02 7.151238056500563e-02 7.147605867366123e-02 7.143974075783785e-02 7.140342683461876e-02 + 7.136711692108716e-02 7.133081103432631e-02 7.129450919141947e-02 7.125821140944985e-02 7.122191770550071e-02 + 7.118562809665530e-02 7.114934259999683e-02 7.111306123260858e-02 7.107678401157377e-02 7.104051095397565e-02 + 7.100424207689746e-02 7.096797739742244e-02 7.093171693263382e-02 7.089546069961486e-02 7.085920871544882e-02 + 7.082296099721888e-02 7.078671756200834e-02 7.075047842690044e-02 7.071424360897838e-02 7.067801312532543e-02 + 7.064178699302483e-02 7.060556522915983e-02 7.056934785081363e-02 7.053313487506954e-02 7.049692631901075e-02 + 7.046072219972052e-02 7.042452253428211e-02 7.038832733977872e-02 7.035213663329361e-02 7.031595043191004e-02 + 7.027976875271123e-02 7.024359161278042e-02 7.020741902920087e-02 7.017125101905583e-02 7.013508759942851e-02 + 7.009892878740216e-02 7.006277460006004e-02 7.002662505448538e-02 6.999048016776144e-02 6.995433995697144e-02 + 6.991820443919861e-02 6.988207363152622e-02 6.984594755103750e-02 6.980982621481568e-02 6.977370963994402e-02 + 6.973759784350578e-02 6.970149084258416e-02 6.966538865426242e-02 6.962929129562380e-02 6.959319878375156e-02 + 6.955711113572893e-02 6.952102836863913e-02 6.948495049956542e-02 6.944887754559105e-02 6.941280952379927e-02 + 6.937674645127329e-02 6.934068834509637e-02 6.930463522235174e-02 6.926858710012268e-02 6.923254399549238e-02 + 6.919650592554411e-02 6.916047290736112e-02 6.912444495802665e-02 6.908842209462392e-02 6.905240433423616e-02 + 6.901639169394666e-02 6.898038419083864e-02 6.894438184199533e-02 6.890838466449999e-02 6.887239267543585e-02 + 6.883640589188617e-02 6.880042433093415e-02 6.876444800966307e-02 6.872847694515619e-02 6.869251115449670e-02 + 6.865655065476786e-02 6.862059546305292e-02 6.858464559643512e-02 6.854870107199770e-02 6.851276190682393e-02 + 6.847682811799699e-02 6.844089972260017e-02 6.840497673771671e-02 6.836905918042983e-02 6.833314706782279e-02 + 6.829724041697882e-02 6.826133924498116e-02 6.822544356891308e-02 6.818955340585779e-02 6.815366877289854e-02 + 6.811778968711857e-02 6.808191616560114e-02 6.804604822542948e-02 6.801018588368681e-02 6.797432915745642e-02 + 6.793847806382150e-02 6.790263261986533e-02 6.786679284267115e-02 6.783095874932217e-02 6.779513035690166e-02 + 6.775930768249286e-02 6.772349074317900e-02 6.768767955604332e-02 6.765187413816909e-02 6.761607450663952e-02 + 6.758028067853786e-02 6.754449267094738e-02 6.750871050095128e-02 6.747293418563281e-02 6.743716374207524e-02 + 6.740139918736179e-02 6.736564053857570e-02 6.732988781280023e-02 6.729414102711860e-02 6.725840019861405e-02 + 6.722266534436987e-02 6.718693648146923e-02 6.715121362699542e-02 6.711549679803168e-02 6.707978601166123e-02 + 6.704408128496732e-02 6.700838263503321e-02 6.697269007894212e-02 6.693700363377729e-02 6.690132331662198e-02 + 6.686564914455943e-02 6.682998113467287e-02 6.679431930404556e-02 6.675866366976070e-02 6.672301424890158e-02 + 6.668737105855144e-02 6.665173411579348e-02 6.661610343771096e-02 6.658047904138716e-02 6.654486094390526e-02 + 6.650924916234854e-02 6.647364371380024e-02 6.643804461534360e-02 6.640245188406185e-02 6.636686553703826e-02 + 6.633128559135604e-02 6.629571206409844e-02 6.626014497234871e-02 6.622458433319009e-02 6.618903016370581e-02 + 6.615348248097914e-02 6.611794130209329e-02 6.608240664413152e-02 6.604687852417708e-02 6.601135695931318e-02 + 6.597584196662311e-02 6.594033356319007e-02 6.590483176609731e-02 6.586933659242808e-02 6.583384805926563e-02 + 6.579836618369318e-02 6.576289098279399e-02 6.572742247365128e-02 6.569196067334833e-02 6.565650559896835e-02 + 6.562105726759460e-02 6.558561569631030e-02 6.555018090219872e-02 6.551475290234308e-02 6.547933171382664e-02 + 6.544391735373260e-02 6.540850983914427e-02 6.537310918714484e-02 6.533771541481756e-02 6.530232853924568e-02 + 6.526694857751246e-02 6.523157554670111e-02 6.519620946389489e-02 6.516085034617702e-02 6.512549821063078e-02 + 6.509015307433939e-02 6.505481495438609e-02 6.501948386785412e-02 6.498415983182672e-02 6.494884286338716e-02 + 6.491353297961865e-02 6.487823019760443e-02 6.484293453442776e-02 6.480764600717190e-02 6.477236463292005e-02 + 6.473709042875546e-02 6.470182341176141e-02 6.466656359902111e-02 6.463131100761778e-02 6.459606565463470e-02 + 6.456082755715510e-02 6.452559673226224e-02 6.449037319703932e-02 6.445515696856961e-02 6.441994806393636e-02 + 6.438474650022280e-02 6.434955229451217e-02 6.431436546388770e-02 6.427918602543267e-02 6.424401399623028e-02 + 6.420884939336380e-02 6.417369223391646e-02 6.413854253497149e-02 6.410340031361215e-02 6.406826558692170e-02 + 6.403313837198334e-02 6.399801868588033e-02 6.396290654569593e-02 6.392780196851335e-02 6.389270497141585e-02 + 6.385761557148667e-02 6.382253378580906e-02 6.378745963146625e-02 6.375239312554147e-02 6.371733428511799e-02 + 6.368228312727903e-02 6.364723966910786e-02 6.361220392768768e-02 6.357717592010177e-02 6.354215566343337e-02 + 6.350714317476568e-02 6.347213847118198e-02 6.343714156976551e-02 6.340215248759951e-02 6.336717124176720e-02 + 6.333219784935186e-02 6.329723232743668e-02 6.326227469310496e-02 6.322732496343991e-02 6.319238315552476e-02 + 6.315744928644278e-02 6.312252337327721e-02 6.308760543311126e-02 6.305269548302821e-02 6.301779354011129e-02 + 6.298289962144372e-02 6.294801374410877e-02 6.291313592518968e-02 6.287826618176968e-02 6.284340453093201e-02 + 6.280855098975993e-02 6.277370557533665e-02 6.273886830474544e-02 6.270403919506955e-02 6.266921826339220e-02 + 6.263440552679662e-02 6.259960100236607e-02 6.256480470718381e-02 6.253001665833306e-02 6.249523687289707e-02 + 6.246046536795907e-02 6.242570216060229e-02 6.239094726791002e-02 6.235620070696547e-02 6.232146249485187e-02 + 6.228673264865250e-02 6.225201118545055e-02 6.221729812232930e-02 6.218259347637199e-02 6.214789726466187e-02 + 6.211320950428215e-02 6.207853021231610e-02 6.204385940584693e-02 6.200919710195792e-02 6.197454331773228e-02 + 6.193989807025328e-02 6.190526137660414e-02 6.187063325386812e-02 6.183601371912845e-02 6.180140278946837e-02 + 6.176680048197113e-02 6.173220681371997e-02 6.169762180179813e-02 6.166304546328885e-02 6.162847781527538e-02 + 6.159391887484095e-02 6.155936865906880e-02 6.152482718504219e-02 6.149029446984435e-02 6.145577053055853e-02 + 6.142125538426796e-02 6.138674904805590e-02 6.135225153900557e-02 6.131776287420022e-02 6.128328307072310e-02 + 6.124881214565744e-02 6.121435011608650e-02 6.117989699909349e-02 6.114545281176169e-02 6.111101757117431e-02 + 6.107659129441460e-02 6.104217399856583e-02 6.100776570071121e-02 6.097336641793399e-02 6.093897616731742e-02 + 6.090459496594473e-02 6.087022283089916e-02 6.083585977926396e-02 6.080150582812238e-02 6.076716099455765e-02 + 6.073282529565302e-02 6.069849874849172e-02 6.066418137015700e-02 6.062987317773211e-02 6.059557418830027e-02 + 6.056128441894475e-02 6.052700388674876e-02 6.049273260879557e-02 6.045847060216841e-02 6.042421788395052e-02 + 6.038997447122514e-02 6.035574038107552e-02 6.032151563058490e-02 6.028730023683652e-02 6.025309421691362e-02 + 6.021889758789946e-02 6.018471036687725e-02 6.015053257093025e-02 6.011636421714171e-02 6.008220532259485e-02 + 6.004805590437293e-02 6.001391597955918e-02 5.997978556523686e-02 5.994566467848918e-02 5.991155333639943e-02 + 5.987745155605081e-02 5.984335935452657e-02 5.980927674890997e-02 5.977520375628423e-02 5.974114039373261e-02 + 5.970708667833834e-02 5.967304262718466e-02 5.963900825735483e-02 5.960498358593206e-02 5.957096862999962e-02 + 5.953696340664075e-02 5.950296793293869e-02 5.946898222597666e-02 5.943500630283793e-02 5.940104018060574e-02 + 5.936708387636331e-02 5.933313740719390e-02 5.929920079018074e-02 5.926527404240709e-02 5.923135718095618e-02 + 5.919745022291125e-02 5.916355318535554e-02 5.912966608537230e-02 5.909578894004478e-02 5.906192176645620e-02 + 5.902806458168981e-02 5.899421740282887e-02 5.896038024695659e-02 5.892655313115624e-02 5.889273607251104e-02 + 5.885892908810425e-02 5.882513219501910e-02 5.879134541033884e-02 5.875756875114671e-02 5.872380223452595e-02 + 5.869004587755981e-02 5.865629969733151e-02 5.862256371092430e-02 5.858883793542144e-02 5.855512238790617e-02 + 5.852141708546170e-02 5.848772204517131e-02 5.845403728411822e-02 5.842036281938568e-02 5.838669866805692e-02 + 5.835304484721521e-02 5.831940137394376e-02 5.828576826532585e-02 5.825214553844467e-02 5.821853321038349e-02 + 5.818493129822556e-02 5.815133981905412e-02 5.811775878995240e-02 5.808418822800365e-02 5.805062815029110e-02 + 5.801707857389801e-02 5.798353951590760e-02 5.795001099340315e-02 5.791649302346786e-02 5.788298562318499e-02 + 5.784948880963779e-02 5.781600259990949e-02 5.778252701108333e-02 5.774906206024256e-02 5.771560776447041e-02 + 5.768216414085015e-02 5.764873120646499e-02 5.761530897839819e-02 5.758189747373298e-02 5.754849670955262e-02 + 5.751510670294033e-02 5.748172747097936e-02 5.744835903075296e-02 5.741500139934437e-02 5.738165459383683e-02 + 5.734831863131357e-02 5.731499352885785e-02 5.728167930355290e-02 5.724837597248197e-02 5.721508355272830e-02 + 5.718180206137512e-02 5.714853151550570e-02 5.711527193220325e-02 5.708202332855103e-02 5.704878572163228e-02 + 5.701555912853024e-02 5.698234356632816e-02 5.694913905210926e-02 5.691594560295680e-02 5.688276323595402e-02 + 5.684959196818416e-02 5.681643181673045e-02 5.678328279867616e-02 5.675014493110452e-02 5.671701823109875e-02 + 5.668390271574211e-02 5.665079840211785e-02 5.661770530730920e-02 5.658462344839940e-02 5.655155284247171e-02 + 5.651849350660935e-02 5.648544545789557e-02 5.645240871341362e-02 5.641938329024674e-02 5.638636920547815e-02 + 5.635336647619112e-02 5.632037511946889e-02 5.628739515239468e-02 5.625442659205174e-02 5.622146945552333e-02 + 5.618852375989267e-02 5.615558952224302e-02 5.612266675965761e-02 5.608975548921968e-02 5.605685572801247e-02 + 5.602396749311925e-02 5.599109080162322e-02 5.595822567060765e-02 5.592537211715578e-02 5.589253015835084e-02 + 5.585969981127608e-02 5.582688109301474e-02 5.579407402065006e-02 5.576127861126528e-02 5.572849488194366e-02 + 5.569572284976842e-02 5.566296253182280e-02 5.563021394519008e-02 5.559747710695345e-02 5.556475203419618e-02 + 5.553203874400151e-02 5.549933725345269e-02 5.546664757963294e-02 5.543396973962551e-02 5.540130375051366e-02 + 5.536864962938060e-02 5.533600739330961e-02 5.530337705938389e-02 5.527075864468672e-02 5.523815216630132e-02 + 5.520555764131094e-02 5.517297508679882e-02 5.514040451984819e-02 5.510784595754230e-02 5.507529941696442e-02 + 5.504276491519774e-02 5.501024246932555e-02 5.497773209643106e-02 5.494523381359754e-02 5.491274763790820e-02 + 5.488027358644629e-02 5.484781167629507e-02 5.481536192453777e-02 5.478292434825763e-02 5.475049896453790e-02 + 5.471808579046181e-02 5.468568484311261e-02 5.465329613957354e-02 5.462091969692785e-02 5.458855553225877e-02 + 5.455620366264955e-02 5.452386410518342e-02 5.449153687694363e-02 5.445922199501343e-02 5.442691947647604e-02 + 5.439462933841474e-02 5.436235159791274e-02 5.433008627205328e-02 5.429783337791962e-02 5.426559293259499e-02 + 5.423336495316264e-02 5.420114945670580e-02 5.416894646030773e-02 5.413675598105167e-02 5.410457803602083e-02 + 5.407241264229849e-02 5.404025981696787e-02 5.400811957711223e-02 5.397599193981480e-02 5.394387692215881e-02 + 5.391177454122753e-02 5.387968481410418e-02 5.384760775787202e-02 5.381554338961427e-02 5.378349172641418e-02 + 5.375145278535501e-02 5.371942658351998e-02 5.368741313799234e-02 5.365541246585533e-02 5.362342458419220e-02 + 5.359144951008617e-02 5.355948726062051e-02 5.352753785287844e-02 5.349560130394321e-02 5.346367763089808e-02 + 5.343176685082626e-02 5.339986898081100e-02 5.336798403793557e-02 5.333611203928318e-02 5.330425300193709e-02 + 5.327240694298052e-02 5.324057387949673e-02 5.320875382856897e-02 5.317694680728046e-02 5.314515283271445e-02 + 5.311337192195419e-02 5.308160409208292e-02 5.304984936018387e-02 5.301810774334029e-02 5.298637925860694e-02 + 5.295466392210174e-02 5.292296174881576e-02 5.289127275367324e-02 5.285959695159842e-02 5.282793435751552e-02 + 5.279628498634878e-02 5.276464885302243e-02 5.273302597246069e-02 5.270141635958780e-02 5.266982002932800e-02 + 5.263823699660550e-02 5.260666727634453e-02 5.257511088346935e-02 5.254356783290417e-02 5.251203813957321e-02 + 5.248052181840073e-02 5.244901888431094e-02 5.241752935222807e-02 5.238605323707637e-02 5.235459055378005e-02 + 5.232314131726334e-02 5.229170554245050e-02 5.226028324426572e-02 5.222887443763326e-02 5.219747913747734e-02 + 5.216609735872220e-02 5.213472911629205e-02 5.210337442511115e-02 5.207203330010370e-02 5.204070575619395e-02 + 5.200939180830615e-02 5.197809147136448e-02 5.194680476029321e-02 5.191553169001656e-02 5.188427227545876e-02 + 5.185302653154403e-02 5.182179447319664e-02 5.179057611534077e-02 5.175937147290068e-02 5.172818056080060e-02 + 5.169700339396475e-02 5.166583998731737e-02 5.163469035578269e-02 5.160355451428494e-02 5.157243247774834e-02 + 5.154132426109714e-02 5.151022987925555e-02 5.147914934714782e-02 5.144808267969817e-02 5.141702989183084e-02 + 5.138599099847005e-02 5.135496601454004e-02 5.132395495496503e-02 5.129295783466926e-02 5.126197466857695e-02 + 5.123100547161235e-02 5.120005025869967e-02 5.116910904476317e-02 5.113818184472704e-02 5.110726867351554e-02 + 5.107636954605289e-02 5.104548447726333e-02 5.101461348207109e-02 5.098375657540039e-02 5.095291377217546e-02 + 5.092208508732055e-02 5.089127053575987e-02 5.086047013241765e-02 5.082968389221815e-02 5.079891183008556e-02 + 5.076815396094415e-02 5.073741029971812e-02 5.070668086133172e-02 5.067596566070917e-02 5.064526471277472e-02 + 5.061457803245257e-02 5.058390563466697e-02 5.055324753434216e-02 5.052260374640234e-02 5.049197428577178e-02 + 5.046135916737467e-02 5.043075840613528e-02 5.040017201697781e-02 5.036960001482652e-02 5.033904241460560e-02 + 5.030849923123931e-02 5.027797047965189e-02 5.024745617476754e-02 5.021695633151052e-02 5.018647096480505e-02 + 5.015600008957535e-02 5.012554372074565e-02 5.009510187324022e-02 5.006467456198324e-02 5.003426180189897e-02 + 5.000386360791163e-02 4.997347999494546e-02 4.994311097792468e-02 4.991275657177353e-02 4.988241679141623e-02 + 4.985209165177702e-02 4.982178116778014e-02 4.979148535434980e-02 4.976120422641023e-02 4.973093779888569e-02 + 4.970068608670038e-02 4.967044910477855e-02 4.964022686804442e-02 4.961001939142222e-02 4.957982668983620e-02 + 4.954964877821057e-02 4.951948567146956e-02 4.948933738453741e-02 4.945920393233836e-02 4.942908532979662e-02 + 4.939898159183643e-02 4.936889273338203e-02 4.933881876935763e-02 4.930875971468749e-02 4.927871558429582e-02 + 4.924868639310685e-02 4.921867215604481e-02 4.918867288803395e-02 4.915868860399848e-02 4.912871931886263e-02 + 4.909876504755066e-02 4.906882580498677e-02 4.903890160609520e-02 4.900899246580018e-02 4.897909839902595e-02 + 4.894921942069672e-02 4.891935554573676e-02 4.888950678907025e-02 4.885967316562146e-02 4.882985469031461e-02 + 4.880005137807392e-02 4.877026324382362e-02 4.874049030248797e-02 4.871073256899117e-02 4.868099005825745e-02 + 4.865126278521108e-02 4.862155076477624e-02 4.859185401187720e-02 4.856217254143816e-02 4.853250636838338e-02 + 4.850285550763707e-02 4.847321997412347e-02 4.844359978276680e-02 4.841399494849130e-02 4.838440548622121e-02 + 4.835483141088075e-02 4.832527273739414e-02 4.829572948068564e-02 4.826620165567946e-02 4.823668927729983e-02 + 4.820719236047098e-02 4.817771092011715e-02 4.814824497116257e-02 4.811879452853147e-02 4.808935960714807e-02 + 4.805994022193662e-02 4.803053638782134e-02 4.800114811972645e-02 4.797177543257621e-02 4.794241834129482e-02 + 4.791307686080653e-02 4.788375100603556e-02 4.785444079190614e-02 4.782514623334252e-02 4.779586734526891e-02 + 4.776660414260955e-02 4.773735664028868e-02 4.770812485323050e-02 4.767890879635927e-02 4.764970848459921e-02 + 4.762052393287456e-02 4.759135515610954e-02 4.756220216922838e-02 4.753306498715533e-02 4.750394362481459e-02 + 4.747483809713041e-02 4.744574841902701e-02 4.741667460542864e-02 4.738761667125952e-02 4.735857463144388e-02 + 4.732954850090595e-02 4.730053829456995e-02 4.727154402736015e-02 4.724256571420073e-02 4.721360337001596e-02 + 4.718465700973005e-02 4.715572664826723e-02 4.712681230055175e-02 4.709791398150782e-02 4.706903170605968e-02 + 4.704016548913156e-02 4.701131534564769e-02 4.698248129053231e-02 4.695366333870963e-02 4.692486150510391e-02 + 4.689607580463934e-02 4.686730625224018e-02 4.683855286283068e-02 4.680981565133503e-02 4.678109463267748e-02 + 4.675238982178226e-02 4.672370123357359e-02 4.669502888297572e-02 4.666637278491287e-02 4.663773295430927e-02 + 4.660910940608916e-02 4.658050215517676e-02 4.655191121649629e-02 4.652333660497202e-02 4.649477833552815e-02 + 4.646623642308891e-02 4.643771088257853e-02 4.640920172892127e-02 4.638070897704132e-02 4.635223264186294e-02 + 4.632377273831036e-02 4.629532928130779e-02 4.626690228577947e-02 4.623849176664965e-02 4.621009773884253e-02 + 4.618172021728237e-02 4.615335921689338e-02 4.612501475259979e-02 4.609668683932586e-02 4.606837549199577e-02 + 4.604008072553380e-02 4.601180255486416e-02 4.598354099491107e-02 4.595529606059879e-02 4.592706776685152e-02 + 4.589885612859351e-02 4.587066116074899e-02 4.584248287824218e-02 4.581432129599732e-02 4.578617642893863e-02 + 4.575804829199037e-02 4.572993690007673e-02 4.570184226812196e-02 4.567376441105030e-02 4.564570334378597e-02 + 4.561765908125320e-02 4.558963163837623e-02 4.556162103007928e-02 4.553362727128659e-02 4.550565037692238e-02 + 4.547769036191089e-02 4.544974724117636e-02 4.542182102964300e-02 4.539391174223504e-02 4.536601939387674e-02 + 4.533814399949231e-02 4.531028557400597e-02 4.528244413234197e-02 4.525461968942453e-02 4.522681226017790e-02 + 4.519902185952628e-02 4.517124850239393e-02 4.514349220370505e-02 4.511575297838390e-02 4.508803084135470e-02 + 4.506032580754168e-02 4.503263789186907e-02 4.500496710926111e-02 4.497731347464200e-02 4.494967700293602e-02 + 4.492205770906736e-02 4.489445560796028e-02 4.486687071453899e-02 4.483930304372771e-02 4.481175261045071e-02 + 4.478421942963219e-02 4.475670351619640e-02 4.472920488506756e-02 4.470172355116988e-02 4.467425952942764e-02 + 4.464681283476502e-02 4.461938348210628e-02 4.459197148637566e-02 4.456457686249737e-02 4.453719962539564e-02 + 4.450983978999472e-02 4.448249737121881e-02 4.445517238399217e-02 4.442786484323902e-02 4.440057476388359e-02 + 4.437330216085012e-02 4.434604704906282e-02 4.431880944344595e-02 4.429158935892372e-02 4.426438681042035e-02 + 4.423720181286010e-02 4.421003438116718e-02 4.418288453026584e-02 4.415575227508029e-02 4.412863763053477e-02 + 4.410154061155352e-02 4.407446123306075e-02 4.404739950998071e-02 4.402035545723762e-02 4.399332908975571e-02 + 4.396632042245923e-02 4.393932947027238e-02 4.391235624811941e-02 4.388540077092456e-02 4.385846305361203e-02 + 4.383154311110608e-02 4.380464095833093e-02 4.377775661021081e-02 4.375089008166996e-02 4.372404138763258e-02 + 4.369721054302294e-02 4.367039756276526e-02 4.364360246178376e-02 4.361682525500267e-02 4.359006595734623e-02 + 4.356332458373868e-02 4.353660114910423e-02 4.350989566836711e-02 4.348320815645158e-02 4.345653862828184e-02 + 4.342988709878214e-02 4.340325358287669e-02 4.337663809548974e-02 4.335004065154552e-02 4.332346126596825e-02 + 4.329689995368217e-02 4.327035672961151e-02 4.324383160868049e-02 4.321732460581335e-02 4.319083573593433e-02 + 4.316436501396765e-02 4.313791245483754e-02 4.311147807346823e-02 4.308506188478395e-02 4.305866390370894e-02 + 4.303228414516742e-02 4.300592262408363e-02 4.297957935538180e-02 4.295325435398616e-02 4.292694763482094e-02 + 4.290065921281035e-02 4.287438910287866e-02 4.284813731995007e-02 4.282190387894883e-02 4.279568879479917e-02 + 4.276949208242530e-02 4.274331375675147e-02 4.271715383270192e-02 4.269101232520085e-02 4.266488924917250e-02 + 4.263878461954113e-02 4.261269845123093e-02 4.258663075916616e-02 4.256058155827103e-02 4.253455086346980e-02 + 4.250853868968667e-02 4.248254505184589e-02 4.245656996487169e-02 4.243061344368828e-02 4.240467550321991e-02 + 4.237875615839081e-02 4.235285542412521e-02 4.232697331534734e-02 4.230110984698143e-02 4.227526503395169e-02 + 4.224943889118240e-02 4.222363143359775e-02 4.219784267612198e-02 4.217207263367933e-02 4.214632132119402e-02 + 4.212058875359029e-02 4.209487494579236e-02 4.206917991272448e-02 4.204350366931086e-02 4.201784623047573e-02 + 4.199220761114335e-02 4.196658782623791e-02 4.194098689068368e-02 4.191540481940486e-02 4.188984162732570e-02 + 4.186429732937041e-02 4.183877194046326e-02 4.181326547552844e-02 4.178777794949019e-02 4.176230937727277e-02 + 4.173685977380037e-02 4.171142915399725e-02 4.168601753278764e-02 4.166062492509574e-02 4.163525134584580e-02 + 4.160989680996207e-02 4.158456133236876e-02 4.155924492799010e-02 4.153394761175032e-02 4.150866939857367e-02 + 4.148341030338436e-02 4.145817034110662e-02 4.143294952666470e-02 4.140774787498282e-02 4.138256540098521e-02 + 4.135740211959609e-02 4.133225804573972e-02 4.130713319434030e-02 4.128202758032209e-02 4.125694121860929e-02 + 4.123187412412615e-02 4.120682631179690e-02 4.118179779654577e-02 4.115678859329698e-02 4.113179871697477e-02 + 4.110682818250337e-02 4.108187700480702e-02 4.105694519880994e-02 4.103203277943635e-02 4.100713976161051e-02 + 4.098226616025662e-02 4.095741199029894e-02 4.093257726666168e-02 4.090776200426908e-02 4.088296621804536e-02 + 4.085818992291476e-02 4.083343313380151e-02 4.080869586562985e-02 4.078397813332400e-02 4.075927995180818e-02 + 4.073460133600665e-02 4.070994230084361e-02 4.068530286124331e-02 4.066068303212998e-02 4.063608282842784e-02 + 4.061150226506113e-02 4.058694135695408e-02 4.056240011903092e-02 4.053787856621588e-02 4.051337671343318e-02 + 4.048889457560707e-02 4.046443216766178e-02 4.043998950452153e-02 4.041556660111054e-02 4.039116347235307e-02 + 4.036678013317334e-02 4.034241659849556e-02 4.031807288324400e-02 4.029374900234285e-02 4.026944497071637e-02 + 4.024516080328877e-02 4.022089651498431e-02 4.019665212072718e-02 4.017242763544165e-02 4.014822307405193e-02 + 4.012403845148225e-02 4.009987378265685e-02 4.007572908249996e-02 4.005160436593580e-02 4.002749964788860e-02 + 4.000341494328261e-02 3.997935026862905e-02 3.995530565020248e-02 3.993128111798760e-02 3.990727670197625e-02 + 3.988329243216027e-02 3.985932833853151e-02 3.983538445108181e-02 3.981146079980302e-02 3.978755741468697e-02 + 3.976367432572553e-02 3.973981156291052e-02 3.971596915623379e-02 3.969214713568721e-02 3.966834553126258e-02 + 3.964456437295178e-02 3.962080369074663e-02 3.959706351463900e-02 3.957334387462071e-02 3.954964480068362e-02 + 3.952596632281957e-02 3.950230847102040e-02 3.947867127527795e-02 3.945505476558409e-02 3.943145897193063e-02 + 3.940788392430945e-02 3.938432965271236e-02 3.936079618713123e-02 3.933728355755788e-02 3.931379179398419e-02 + 3.929032092640197e-02 3.926687098480308e-02 3.924344199917935e-02 3.922003399952266e-02 3.919664701582481e-02 + 3.917328107807769e-02 3.914993621627309e-02 3.912661246040292e-02 3.910330984045896e-02 3.908002838643308e-02 + 3.905676812831715e-02 3.903352909610298e-02 3.901031131978242e-02 3.898711482934733e-02 3.896393965478955e-02 + 3.894078582610091e-02 3.891765337327326e-02 3.889454232629846e-02 3.887145271516833e-02 3.884838456987474e-02 + 3.882533792040951e-02 3.880231279676451e-02 3.877930922893155e-02 3.875632724690252e-02 3.873336688066923e-02 + 3.871042816022353e-02 3.868751111555727e-02 3.866461577666229e-02 3.864174217353044e-02 3.861889033615356e-02 + 3.859606029452349e-02 3.857325207863209e-02 3.855046571847119e-02 3.852770124403264e-02 3.850495868530828e-02 + 3.848223807228996e-02 3.845953943496952e-02 3.843686280333881e-02 3.841420820738967e-02 3.839157567711395e-02 + 3.836896524250349e-02 3.834637693355013e-02 3.832381078024572e-02 3.830126681258209e-02 3.827874506055112e-02 + 3.825624555414461e-02 3.823376832335444e-02 3.821131339817244e-02 3.818888080859045e-02 3.816647058460032e-02 + 3.814408275619389e-02 3.812171735336303e-02 3.809937440609954e-02 3.807705394439530e-02 3.805475599824214e-02 + 3.803248059763190e-02 3.801022777255643e-02 3.798799755300758e-02 3.796578996897719e-02 3.794360505045710e-02 + 3.792144282743916e-02 3.789930332991522e-02 3.787718658787710e-02 3.785509263131667e-02 3.783302149022577e-02 + 3.781097319459624e-02 3.778894777441992e-02 3.776694525968866e-02 3.774496568039430e-02 3.772300906652870e-02 + 3.770107544808367e-02 3.767916485505110e-02 3.765727731742280e-02 3.763541286519063e-02 3.761357152834642e-02 + 3.759175333688204e-02 3.756995832078931e-02 3.754818651006007e-02 3.752643793468620e-02 3.750471262465951e-02 + 3.748301060997186e-02 3.746133192061509e-02 3.743967658658105e-02 3.741804463786157e-02 3.739643610444850e-02 + 3.737485101633371e-02 3.735328940350900e-02 3.733175129596625e-02 3.731023672369729e-02 3.728874571669397e-02 + 3.726727830494812e-02 3.724583451845160e-02 3.722441438719625e-02 3.720301794117391e-02 3.718164521037644e-02 + 3.716029622479566e-02 3.713897101442343e-02 3.711766960925159e-02 3.709639203927199e-02 3.707513833447647e-02 + 3.705390852485687e-02 3.703270264040504e-02 3.701152071111283e-02 3.699036276697207e-02 3.696922883797462e-02 + 3.694811895411231e-02 3.692703314537699e-02 3.690597144176051e-02 3.688493387325471e-02 3.686392046985143e-02 + 3.684293126154253e-02 3.682196627831984e-02 3.680102555017520e-02 3.678010910710046e-02 3.675921697908748e-02 + 3.673834919612807e-02 3.671750578821411e-02 3.669668678533742e-02 3.667589221748987e-02 3.665512211466327e-02 + 3.663437650684950e-02 3.661365542404037e-02 3.659295889622776e-02 3.657228695340348e-02 3.655163962555941e-02 + 3.653101694268735e-02 3.651041893477919e-02 3.648984563182674e-02 3.646929706382188e-02 3.644877326075641e-02 + 3.642827425262220e-02 3.640780006941109e-02 3.638735074111494e-02 3.636692629772557e-02 3.634652676923484e-02 + 3.632615218563458e-02 3.630580257691665e-02 3.628547797307289e-02 3.626517840409513e-02 3.624490389997524e-02 + 3.622465449070505e-02 3.620443020627639e-02 3.618423107668113e-02 3.616405713191111e-02 3.614390840195816e-02 + 3.612378491681414e-02 3.610368670647089e-02 3.608361380092025e-02 3.606356623015406e-02 3.604354402416417e-02 + 3.602354721294244e-02 3.600357582648069e-02 3.598362989477077e-02 3.596370944780453e-02 3.594381451557382e-02 + 3.592394512807047e-02 3.590410131528634e-02 3.588428310721326e-02 3.586449053384308e-02 3.584472362516764e-02 + 3.582498241117880e-02 3.580526692186839e-02 3.578557718722826e-02 3.576591323725024e-02 3.574627510192620e-02 + 3.572666281124797e-02 3.570707639520740e-02 3.568751588379632e-02 3.566798130700659e-02 3.564847269483005e-02 + 3.562899007725854e-02 3.560953348428391e-02 3.559010294589800e-02 3.557069849209266e-02 3.555132015285974e-02 + 3.553196795819106e-02 3.551264193807849e-02 3.549334212251386e-02 3.547406854148901e-02 3.545482122499580e-02 + 3.543560020302607e-02 3.541640550557167e-02 3.539723716262443e-02 3.537809520417620e-02 3.535897966021882e-02 + 3.533989056074414e-02 3.532082793574401e-02 3.530179181521027e-02 3.528278222913475e-02 3.526379920750932e-02 + 3.524484278032580e-02 3.522591297757607e-02 3.520700982925193e-02 3.518813336534525e-02 3.516928361584787e-02 + 3.515046061075164e-02 3.513166438004838e-02 3.511289495372998e-02 3.509415236178823e-02 3.507543663421501e-02 + 3.505674780100216e-02 3.503808589214152e-02 3.501945093762493e-02 3.500084296744425e-02 3.498226201159130e-02 + 3.496370810005795e-02 3.494518126283602e-02 3.492668152991737e-02 3.490820893129385e-02 3.488976349695729e-02 + 3.487134525689954e-02 3.485295424111245e-02 3.483459047958785e-02 3.481625400231760e-02 3.479794483929353e-02 + 3.477966302050750e-02 3.476140857595134e-02 3.474318153561690e-02 3.472498192949603e-02 3.470680978758058e-02 + 3.468866513986237e-02 3.467054801633326e-02 3.465245844698509e-02 3.463439646180971e-02 3.461636209079897e-02 + 3.459835536394470e-02 3.458037631123875e-02 3.456242496267296e-02 3.454450134823919e-02 3.452660549792927e-02 + 3.450873744173504e-02 3.449089720964835e-02 3.447308483166107e-02 3.445530033776500e-02 3.443754375795202e-02 + 3.441981512221395e-02 3.440211446054266e-02 3.438444180292995e-02 3.436679717936773e-02 3.434918061984778e-02 + 3.433159215436199e-02 3.431403181290218e-02 3.429649962546020e-02 3.427899562202789e-02 3.426151983259711e-02 + 3.424407228715969e-02 3.422665301570748e-02 3.420926204823232e-02 3.419189941472606e-02 3.417456514518054e-02 + 3.415725926958761e-02 3.413998181793911e-02 3.412273282022688e-02 3.410551230644278e-02 3.408832030657864e-02 + 3.407115685062630e-02 3.405402196857762e-02 3.403691569042444e-02 3.401983804615860e-02 3.400278906577194e-02 + 3.398576877925633e-02 3.396877721660357e-02 3.395181440780554e-02 3.393488038285408e-02 3.391797517174103e-02 + 3.390109880445821e-02 3.388425131099751e-02 3.386743272135074e-02 3.385064306550976e-02 3.383388237346641e-02 + 3.381715067521254e-02 3.380044800073998e-02 3.378377438004059e-02 3.376712984310620e-02 3.375051441992868e-02 + 3.373392814049984e-02 3.371737103481155e-02 3.370084313285564e-02 3.368434446462396e-02 3.366787506010836e-02 + 3.365143466564878e-02 3.363501887624541e-02 3.361862209777612e-02 3.360224500875989e-02 3.358588827878357e-02 + 3.356955147090725e-02 3.355323458431880e-02 3.353693766165054e-02 3.352066065506343e-02 3.350440352193865e-02 + 3.348816624199871e-02 3.347194881659273e-02 3.345575121630599e-02 3.343957340404732e-02 3.342341535303144e-02 + 3.340727704441876e-02 3.339115845430404e-02 3.337505954322636e-02 3.335898029706669e-02 3.334292070921326e-02 + 3.332688074834195e-02 3.331086037969291e-02 3.329485957414917e-02 3.327887831864652e-02 3.326291658484171e-02 + 3.324697433542376e-02 3.323105156623186e-02 3.321514826023114e-02 3.319926437839098e-02 3.318339989412266e-02 + 3.316755478754796e-02 3.315172903929034e-02 3.313592261295018e-02 3.312013548124740e-02 3.310436764153749e-02 + 3.308861906981869e-02 3.307288973180764e-02 3.305717959801665e-02 3.304148865245999e-02 3.302581687574703e-02 + 3.301016422142487e-02 3.299453067800234e-02 3.297891624809741e-02 3.296332088425066e-02 3.294774455685354e-02 + 3.293218725810471e-02 3.291664896225673e-02 3.290112963401578e-02 3.288562923879117e-02 3.287014777263271e-02 + 3.285468522369568e-02 3.283924155670871e-02 3.282381674440858e-02 3.280841076589561e-02 3.279302360243119e-02 + 3.277765521941309e-02 3.276230558706894e-02 3.274697470113698e-02 3.273166254219040e-02 3.271636907936865e-02 + 3.270109428250347e-02 3.268583813280482e-02 3.267060061307020e-02 3.265538168459424e-02 3.264018132671115e-02 + 3.262499953449712e-02 3.260983628233858e-02 3.259469153939318e-02 3.257956527754512e-02 3.256445748091834e-02 + 3.254936812698490e-02 3.253429718174427e-02 3.251924463148387e-02 3.250421046229880e-02 3.248919464552218e-02 + 3.247419715298105e-02 3.245921796288541e-02 3.244425706251369e-02 3.242931441545717e-02 3.241438998652282e-02 + 3.239948378141620e-02 3.238459577882156e-02 3.236972593925531e-02 3.235487424670715e-02 3.234004068301546e-02 + 3.232522522137563e-02 3.231042782696456e-02 3.229564848261764e-02 3.228088718700101e-02 3.226614390644563e-02 + 3.225141860917057e-02 3.223671128042128e-02 3.222202190260593e-02 3.220735044835789e-02 3.219269687989033e-02 + 3.217806118663362e-02 3.216344336205739e-02 3.214884337811092e-02 3.213426120193776e-02 3.211969680852602e-02 + 3.210515019435922e-02 3.209062132655478e-02 3.207611016186721e-02 3.206161670288540e-02 3.204714093648681e-02 + 3.203268282961075e-02 3.201824236239234e-02 3.200381951210604e-02 3.198941424912934e-02 3.197502654604618e-02 + 3.196065638811887e-02 3.194630377248257e-02 3.193196866763873e-02 3.191765104079724e-02 3.190335087680102e-02 + 3.188906815766901e-02 3.187480285784819e-02 3.186055494296534e-02 3.184632440204734e-02 3.183211122836238e-02 + 3.181791538780577e-02 3.180373685568510e-02 3.178957561657719e-02 3.177543165075891e-02 3.176130492904844e-02 + 3.174719542079285e-02 3.173310312097031e-02 3.171902801589959e-02 3.170497007535993e-02 3.169092927256592e-02 + 3.167690558660036e-02 3.166289900092451e-02 3.164890948767075e-02 3.163493702375719e-02 3.162098160094597e-02 + 3.160704320149037e-02 3.159312179836957e-02 3.157921735868882e-02 3.156532987076624e-02 3.155145932224658e-02 + 3.153760566663864e-02 3.152376889172848e-02 3.150994900180672e-02 3.149614595827410e-02 3.148235973399625e-02 + 3.146859031868535e-02 3.145483769408502e-02 3.144110182886523e-02 3.142738268687409e-02 3.141368026942635e-02 + 3.139999456778463e-02 3.138632554513814e-02 3.137267318073906e-02 3.135903745883740e-02 3.134541835839263e-02 + 3.133181584694165e-02 3.131822989974722e-02 3.130466051752389e-02 3.129110768114365e-02 3.127757136018487e-02 + 3.126405153214003e-02 3.125054818119363e-02 3.123706128835145e-02 3.122359081277034e-02 3.121013674152311e-02 + 3.119669908223311e-02 3.118327780512727e-02 3.116987287740892e-02 3.115648427590923e-02 3.114311198755302e-02 + 3.112975599208620e-02 3.111641625878769e-02 3.110309278026453e-02 3.108978554429882e-02 3.107649451605467e-02 + 3.106321967573116e-02 3.104996101093369e-02 3.103671850522385e-02 3.102349212552239e-02 3.101028184118182e-02 + 3.099708765215899e-02 3.098390954305432e-02 3.097074748653887e-02 3.095760146577434e-02 3.094447145973171e-02 + 3.093135744175442e-02 3.091825938652267e-02 3.090517727892404e-02 3.089211111199125e-02 3.087906086415095e-02 + 3.086602651045607e-02 3.085300802884278e-02 3.084000540267990e-02 3.082701861024971e-02 3.081404762072755e-02 + 3.080109242772720e-02 3.078815302348911e-02 3.077522937271052e-02 3.076232145526043e-02 3.074942925853004e-02 + 3.073655275969265e-02 3.072369193358731e-02 3.071084675893487e-02 3.069801722815575e-02 3.068520332655950e-02 + 3.067240502926292e-02 3.065962230727411e-02 3.064685514336771e-02 3.063410352936318e-02 3.062136743092317e-02 + 3.060864682743443e-02 3.059594172387181e-02 3.058325209340110e-02 3.057057790484611e-02 3.055791914232513e-02 + 3.054527578866520e-02 3.053264782274670e-02 3.052003521936738e-02 3.050743796632342e-02 3.049485605420712e-02 + 3.048228945948342e-02 3.046973815764381e-02 3.045720212753895e-02 3.044468135532321e-02 3.043217582076147e-02 + 3.041968549967531e-02 3.040721038082923e-02 3.039475044749309e-02 3.038230567464306e-02 3.036987604544383e-02 + 3.035746154526919e-02 3.034506215632694e-02 3.033267784558463e-02 3.032030859116679e-02 3.030795439680851e-02 + 3.029561524020229e-02 3.028329109283977e-02 3.027098194217670e-02 3.025868776986960e-02 3.024640855125834e-02 + 3.023414425922958e-02 3.022189488753165e-02 3.020966043396606e-02 3.019744085927903e-02 3.018523614254973e-02 + 3.017304628070488e-02 3.016087124712451e-02 3.014871101490015e-02 3.013656556629268e-02 3.012443489643160e-02 + 3.011231899192166e-02 3.010021782348693e-02 3.008813136953290e-02 3.007605961443153e-02 3.006400254477032e-02 + 3.005196013216448e-02 3.003993235442936e-02 3.002791921520012e-02 3.001592069144608e-02 3.000393675083135e-02 + 2.999196738372897e-02 2.998001257673401e-02 2.996807230790781e-02 2.995614654679549e-02 2.994423528130847e-02 + 2.993233851118915e-02 2.992045620999083e-02 2.990858835120550e-02 2.989673491731453e-02 2.988489589805536e-02 + 2.987307127537464e-02 2.986126102011340e-02 2.984946511909828e-02 2.983768356331996e-02 2.982591633787642e-02 + 2.981416341477938e-02 2.980242477098497e-02 2.979070040412034e-02 2.977899028736241e-02 2.976729439085326e-02 + 2.975561271768286e-02 2.974394525020974e-02 2.973229195799546e-02 2.972065283153817e-02 2.970902785474345e-02 + 2.969741700233630e-02 2.968582025251779e-02 2.967423759388233e-02 2.966266902120933e-02 2.965111450751603e-02 + 2.963957402972690e-02 2.962804757853395e-02 2.961653513685447e-02 2.960503668212408e-02 2.959355219023237e-02 + 2.958208165129883e-02 2.957062505724755e-02 2.955918238857859e-02 2.954775362079399e-02 2.953633873283637e-02 + 2.952493771681483e-02 2.951355054848872e-02 2.950217720053436e-02 2.949081767862442e-02 2.947947196700992e-02 + 2.946814003034778e-02 2.945682185755054e-02 2.944551743582863e-02 2.943422674341014e-02 2.942294975870480e-02 + 2.941168646812421e-02 2.940043686618776e-02 2.938920093147064e-02 2.937797864134186e-02 2.936676998172867e-02 + 2.935557493479196e-02 2.934439347979633e-02 2.933322559583284e-02 2.932207127373048e-02 2.931093050463312e-02 + 2.929980326285230e-02 2.928868953142686e-02 2.927758929945683e-02 2.926650254799867e-02 2.925542925398767e-02 + 2.924436939550082e-02 2.923332296415483e-02 2.922228995044700e-02 2.921127033783603e-02 2.920026410004271e-02 + 2.918927122033416e-02 2.917829169471517e-02 2.916732549176795e-02 2.915637258777840e-02 2.914543298801943e-02 + 2.913450667577263e-02 2.912359362430894e-02 2.911269381274288e-02 2.910180723305731e-02 2.909093387402745e-02 + 2.908007369930849e-02 2.906922669822638e-02 2.905839287303405e-02 2.904757219714476e-02 2.903676465199738e-02 + 2.902597022808873e-02 2.901518890157972e-02 2.900442065055892e-02 2.899366546087253e-02 2.898292332562971e-02 + 2.897219423070421e-02 2.896147815085827e-02 2.895077507160809e-02 2.894008498122344e-02 2.892940786384609e-02 + 2.891874369517828e-02 2.890809245634708e-02 2.889745414621765e-02 2.888682874769054e-02 2.887621623583590e-02 + 2.886561659425123e-02 2.885502981116054e-02 2.884445587294774e-02 2.883389475319686e-02 2.882334643970105e-02 + 2.881281093000496e-02 2.880228819979298e-02 2.879177822929067e-02 2.878128100842524e-02 2.877079651898801e-02 + 2.876032473884395e-02 2.874986564740009e-02 2.873941924390505e-02 2.872898552052601e-02 2.871856444638324e-02 + 2.870815600507148e-02 2.869776018641480e-02 2.868737697516582e-02 2.867700634591397e-02 2.866664827916806e-02 + 2.865630278319325e-02 2.864596983917359e-02 2.863564941328856e-02 2.862534149829953e-02 2.861504608429113e-02 + 2.860476315234840e-02 2.859449267740666e-02 2.858423464566411e-02 2.857398905422620e-02 2.856375588402207e-02 + 2.855353511594846e-02 2.854332673804624e-02 2.853313073796621e-02 2.852294709429606e-02 2.851277577543872e-02 + 2.850261678440491e-02 2.849247012219593e-02 2.848233575178603e-02 2.847221365657614e-02 2.846210383116990e-02 + 2.845200625935100e-02 2.844192091752946e-02 2.843184778466237e-02 2.842178686053369e-02 2.841173813547823e-02 + 2.840170158739025e-02 2.839167719418843e-02 2.838166494245600e-02 2.837166482484053e-02 2.836167681707307e-02 + 2.835170090137019e-02 2.834173707461769e-02 2.833178532393912e-02 2.832184563033358e-02 2.831191797277370e-02 + 2.830200233825938e-02 2.829209871310940e-02 2.828220707523810e-02 2.827232741579271e-02 2.826245972853687e-02 + 2.825260399229306e-02 2.824276019064247e-02 2.823292831178126e-02 2.822310834132040e-02 2.821330025651807e-02 + 2.820350403438503e-02 2.819371967866794e-02 2.818394718049788e-02 2.817418651237375e-02 2.816443766090156e-02 + 2.815470061416237e-02 2.814497535504664e-02 2.813526186206681e-02 2.812556012131105e-02 2.811587013236315e-02 + 2.810619188120791e-02 2.809652534562629e-02 2.808687050311100e-02 2.807722734684383e-02 2.806759586949595e-02 + 2.805797603975531e-02 2.804836784541272e-02 2.803877128655403e-02 2.802918634812817e-02 2.801961300908425e-02 + 2.801005124931340e-02 2.800050106254358e-02 2.799096243185147e-02 2.798143533065562e-02 2.797191976200169e-02 + 2.796241571829330e-02 2.795292316767612e-02 2.794344209750147e-02 2.793397250080147e-02 2.792451436474921e-02 + 2.791506766429417e-02 2.790563238187514e-02 2.789620852426368e-02 2.788679607109519e-02 2.787739499448651e-02 + 2.786800529276515e-02 2.785862695250820e-02 2.784925995023579e-02 2.783990426851568e-02 2.783055990112446e-02 + 2.782122684523413e-02 2.781190507602721e-02 2.780259457625915e-02 2.779329533996523e-02 2.778400734510273e-02 + 2.777473057425486e-02 2.776546502209671e-02 2.775621067523501e-02 2.774696751775778e-02 2.773773553529171e-02 + 2.772851471226555e-02 2.771930503638066e-02 2.771010650156085e-02 2.770091908311444e-02 2.769174275675288e-02 + 2.768257752750487e-02 2.767342338343482e-02 2.766428030170250e-02 2.765514827509389e-02 2.764602728937508e-02 + 2.763691732224667e-02 2.762781835629091e-02 2.761873038318760e-02 2.760965340016332e-02 2.760058738918467e-02 + 2.759153233095657e-02 2.758248821223181e-02 2.757345502668101e-02 2.756443275844788e-02 2.755542137569210e-02 + 2.754642087861812e-02 2.753743126859248e-02 2.752845251726651e-02 2.751948461051369e-02 2.751052754088128e-02 + 2.750158129051000e-02 2.749264584112846e-02 2.748372117908398e-02 2.747480730190011e-02 2.746590419839729e-02 + 2.745701184777745e-02 2.744813023052759e-02 2.743925933666562e-02 2.743039916197098e-02 2.742154968107790e-02 + 2.741271087850060e-02 2.740388275814067e-02 2.739506530469222e-02 2.738625849608251e-02 2.737746231424592e-02 + 2.736867675514432e-02 2.735990180809817e-02 2.735113743878892e-02 2.734238364845174e-02 2.733364044336462e-02 + 2.732490778587926e-02 2.731618566204183e-02 2.730747407386686e-02 2.729877300249025e-02 2.729008242908668e-02 + 2.728140234030172e-02 2.727273272900814e-02 2.726407358354408e-02 2.725542488697956e-02 2.724678662927163e-02 + 2.723815879907967e-02 2.722954137935252e-02 2.722093434732608e-02 2.721233769152850e-02 2.720375141931018e-02 + 2.719517551218435e-02 2.718660994644712e-02 2.717805471481514e-02 2.716950980584153e-02 2.716097520393317e-02 + 2.715245089289530e-02 2.714393686286031e-02 2.713543310581999e-02 2.712693960497614e-02 2.711845634782483e-02 + 2.710998332519429e-02 2.710152051958041e-02 2.709306791441093e-02 2.708462549834906e-02 2.707619326918369e-02 + 2.706777121480425e-02 2.705935930907671e-02 2.705095754483260e-02 2.704256591454058e-02 2.703418439795306e-02 + 2.702581298145425e-02 2.701745165546447e-02 2.700910041075726e-02 2.700075923746808e-02 2.699242812272907e-02 + 2.698410704764140e-02 2.697579599978723e-02 2.696749496984126e-02 2.695920394125775e-02 2.695092290187428e-02 + 2.694265184396634e-02 2.693439075649869e-02 2.692613962541774e-02 2.691789843589869e-02 2.690966718080280e-02 + 2.690144584430361e-02 2.689323440003169e-02 2.688503284907665e-02 2.687684119009101e-02 2.686865940030225e-02 + 2.686048746353486e-02 2.685232536881714e-02 2.684417310662326e-02 2.683603066151065e-02 2.682789801897943e-02 + 2.681977517552054e-02 2.681166212021913e-02 2.680355883616239e-02 2.679546530889016e-02 2.678738152752996e-02 + 2.677930748200765e-02 2.677124315479004e-02 2.676318853591112e-02 2.675514362231527e-02 2.674710839396962e-02 + 2.673908283555094e-02 2.673106694339361e-02 2.672306070150655e-02 2.671506409151823e-02 2.670707710108217e-02 + 2.669909972943648e-02 2.669113197027321e-02 2.668317379682501e-02 2.667522519875436e-02 2.666728617090520e-02 + 2.665935669311371e-02 2.665143675159882e-02 2.664352634032146e-02 2.663562545659268e-02 2.662773408361464e-02 + 2.661985219717407e-02 2.661197979572226e-02 2.660411687169956e-02 2.659626340488144e-02 2.658841937631547e-02 + 2.658058477937751e-02 2.657275961893512e-02 2.656494387358596e-02 2.655713752275513e-02 2.654934056348008e-02 + 2.654155298332925e-02 2.653377476657220e-02 2.652600590198415e-02 2.651824638075199e-02 2.651049619255404e-02 + 2.650275532091429e-02 2.649502375487615e-02 2.648730148802552e-02 2.647958851263073e-02 2.647188480891689e-02 + 2.646419035368700e-02 2.645650515131691e-02 2.644882919484906e-02 2.644116246069965e-02 2.643350494181170e-02 + 2.642585663084689e-02 2.641821751242615e-02 2.641058756892747e-02 2.640296679007395e-02 2.639535517653221e-02 + 2.638775271175803e-02 2.638015937698240e-02 2.637257516664822e-02 2.636500007332271e-02 2.635743408373907e-02 + 2.634987717633525e-02 2.634232934391862e-02 2.633479058525924e-02 2.632726088227431e-02 2.631974022390311e-02 + 2.631222860499385e-02 2.630472600717760e-02 2.629723241433261e-02 2.628974781674581e-02 2.628227220621198e-02 + 2.627480557677242e-02 2.626734792215179e-02 2.625989921852152e-02 2.625245945041883e-02 2.624502862403611e-02 + 2.623760671958282e-02 2.623019371536040e-02 2.622278961237779e-02 2.621539440295659e-02 2.620800807254220e-02 + 2.620063060674004e-02 2.619326199404739e-02 2.618590222410475e-02 2.617855128386046e-02 2.617120916522779e-02 + 2.616387586230346e-02 2.615655135861502e-02 2.614923564213544e-02 2.614192870720641e-02 2.613463054125929e-02 + 2.612734112755428e-02 2.612006044964381e-02 2.611278850871195e-02 2.610552530050819e-02 2.609827080222275e-02 + 2.609102500359168e-02 2.608378789925431e-02 2.607655947900249e-02 2.606933972466179e-02 2.606212861946312e-02 + 2.605492616097670e-02 2.604773234503024e-02 2.604054716124884e-02 2.603337058950191e-02 2.602620261873257e-02 + 2.601904324395194e-02 2.601189244598317e-02 2.600475021758196e-02 2.599761656283118e-02 2.599049145836681e-02 + 2.598337488632347e-02 2.597626684662969e-02 2.596916733159564e-02 2.596207632537513e-02 2.595499380688753e-02 + 2.594791977426907e-02 2.594085422650568e-02 2.593379714560815e-02 2.592674851872178e-02 2.591970833661526e-02 + 2.591267658830654e-02 2.590565326173340e-02 2.589863834578747e-02 2.589163183398775e-02 2.588463371701131e-02 + 2.587764398252935e-02 2.587066261956569e-02 2.586368961749470e-02 2.585672496539723e-02 2.584976865103265e-02 + 2.584282066471713e-02 2.583588100000093e-02 2.582894964599770e-02 2.582202659070586e-02 2.581511182332461e-02 + 2.580820533343631e-02 2.580130710958863e-02 2.579441713875388e-02 2.578753541579036e-02 2.578066193633965e-02 + 2.577379668579866e-02 2.576693964640701e-02 2.576009080523955e-02 2.575325016689414e-02 2.574641771694009e-02 + 2.573959342940173e-02 2.573277731100565e-02 2.572596935753856e-02 2.571916954588383e-02 2.571237786264848e-02 + 2.570559430241213e-02 2.569881886299849e-02 2.569205152414907e-02 2.568529227185872e-02 2.567854111122693e-02 + 2.567179802594942e-02 2.566506299732867e-02 2.565833602386073e-02 2.565161709921462e-02 2.564490620914589e-02 + 2.563820333139000e-02 2.563150846268354e-02 2.562482160754986e-02 2.561814274902439e-02 2.561147187258114e-02 + 2.560480896924013e-02 2.559815402833877e-02 2.559150703774291e-02 2.558486798572520e-02 2.557823686789989e-02 + 2.557161367849433e-02 2.556499840587265e-02 2.555839103232124e-02 2.555179154834854e-02 2.554519995829834e-02 + 2.553861624178350e-02 2.553204037844031e-02 2.552547237202886e-02 2.551891221538829e-02 2.551235989397021e-02 + 2.550581539575596e-02 2.549927871458803e-02 2.549274984258965e-02 2.548622875540724e-02 2.547971544999134e-02 + 2.547320993631275e-02 2.546671219025347e-02 2.546022219347805e-02 2.545373994243675e-02 2.544726542971977e-02 + 2.544079864501286e-02 2.543433957656028e-02 2.542788821576999e-02 2.542144455508066e-02 2.541500858637495e-02 + 2.540858030019949e-02 2.540215968413957e-02 2.539574672197945e-02 2.538934140646816e-02 2.538294373410821e-02 + 2.537655369660362e-02 2.537017128263758e-02 2.536379648098229e-02 2.535742928550868e-02 2.535106968465225e-02 + 2.534471766277936e-02 2.533837321084466e-02 2.533203632423742e-02 2.532570699881585e-02 2.531938521813243e-02 + 2.531307097096266e-02 2.530676425602581e-02 2.530046505932213e-02 2.529417336607690e-02 2.528788916915281e-02 + 2.528161246489754e-02 2.527534324609989e-02 2.526908149634068e-02 2.526282720495094e-02 2.525658036572961e-02 + 2.525034097275206e-02 2.524410901058027e-02 2.523788446449190e-02 2.523166734234336e-02 2.522545763237074e-02 + 2.521925530838600e-02 2.521306037097086e-02 2.520687281776321e-02 2.520069263496993e-02 2.519451980442291e-02 + 2.518835431925369e-02 2.518219618546694e-02 2.517604538654039e-02 2.516990190396150e-02 2.516376573127799e-02 + 2.515763686639562e-02 2.515151530112912e-02 2.514540101358030e-02 2.513929399756280e-02 2.513319425347670e-02 + 2.512710177240427e-02 2.512101654329324e-02 2.511493855506050e-02 2.510886779787783e-02 2.510280425830826e-02 + 2.509674792451250e-02 2.509069880343641e-02 2.508465688466923e-02 2.507862214067907e-02 2.507259457630134e-02 + 2.506657418922008e-02 2.506056095604422e-02 2.505455486579475e-02 2.504855591546334e-02 2.504256410459500e-02 + 2.503657941982099e-02 2.503060184642849e-02 2.502463137903613e-02 2.501866800626509e-02 2.501271171663477e-02 + 2.500676250820755e-02 2.500082037092928e-02 2.499488529135626e-02 2.498895726677344e-02 2.498303628979692e-02 + 2.497712234741346e-02 2.497121542814719e-02 2.496531552247531e-02 2.495942262282587e-02 2.495353672310340e-02 + 2.494765781766853e-02 2.494178589943900e-02 2.493592095223772e-02 2.493006296439117e-02 2.492421193524048e-02 + 2.491836784922406e-02 2.491253069345717e-02 2.490670047398909e-02 2.490087718065651e-02 2.489506079631419e-02 + 2.488925131370227e-02 2.488344872747560e-02 2.487765302865731e-02 2.487186419727612e-02 2.486608223223404e-02 + 2.486030714174834e-02 2.485453889875117e-02 2.484877749156952e-02 2.484302292908405e-02 2.483727519324232e-02 + 2.483153426549052e-02 2.482580013961989e-02 2.482007281919668e-02 2.481435229933991e-02 2.480863855780388e-02 + 2.480293158683973e-02 2.479723138421890e-02 2.479153794250162e-02 2.478585124573938e-02 2.478017128120043e-02 + 2.477449805440481e-02 2.476883155587847e-02 2.476317176818658e-02 2.475751868877601e-02 2.475187231076201e-02 + 2.474623262098153e-02 2.474059960704484e-02 2.473497326224523e-02 2.472935358498410e-02 2.472374056978996e-02 + 2.471813420423485e-02 2.471253447111526e-02 2.470694136984621e-02 2.470135489678424e-02 2.469577503399494e-02 + 2.469020177298829e-02 2.468463511029760e-02 2.467907504169421e-02 2.467352155791407e-02 2.466797464651026e-02 + 2.466243429488579e-02 2.465690049712254e-02 2.465137324948606e-02 2.464585254039273e-02 2.464033836402688e-02 + 2.463483071739735e-02 2.462932958374225e-02 2.462383495186045e-02 2.461834681928389e-02 2.461286517898853e-02 + 2.460739002108202e-02 2.460192133524253e-02 2.459645911917798e-02 2.459100336526309e-02 2.458555405446716e-02 + 2.458011118496141e-02 2.457467475465895e-02 2.456924474486533e-02 2.456382114921245e-02 2.455840396700115e-02 + 2.455299319041756e-02 2.454758880740113e-02 2.454219080674820e-02 2.453679918638537e-02 2.453141393576077e-02 + 2.452603503863916e-02 2.452066249180092e-02 2.451529629410615e-02 2.450993644073534e-02 2.450458291517292e-02 + 2.449923570627392e-02 2.449389481263279e-02 2.448856022075961e-02 2.448323192252920e-02 2.447790992354739e-02 + 2.447259420740984e-02 2.446728475663024e-02 2.446198157303190e-02 2.445668465268695e-02 2.445139398411770e-02 + 2.444610955000165e-02 2.444083134675017e-02 2.443555937646448e-02 2.443029362647454e-02 2.442503408583922e-02 + 2.441978074770511e-02 2.441453360513738e-02 2.440929264714783e-02 2.440405786136508e-02 2.439882924944217e-02 + 2.439360680824694e-02 2.438839052372590e-02 2.438318038826778e-02 2.437797639360750e-02 2.437277852674977e-02 + 2.436758678074824e-02 2.436240115296091e-02 2.435722164202054e-02 2.435204823529888e-02 2.434688091817521e-02 + 2.434171968740183e-02 2.433656453724402e-02 2.433141545805634e-02 2.432627243782077e-02 2.432113546933723e-02 + 2.431600455029639e-02 2.431087967900234e-02 2.430576084399959e-02 2.430064802749307e-02 2.429554123205279e-02 + 2.429044044976694e-02 2.428534565606734e-02 2.428025685952290e-02 2.427517406275088e-02 2.427009724038350e-02 + 2.426502638834353e-02 2.425996150697585e-02 2.425490258288459e-02 2.424984960255012e-02 2.424480255754471e-02 + 2.423976144931379e-02 2.423472627405213e-02 2.422969702193537e-02 2.422467367993699e-02 2.421965624107330e-02 + 2.421464470176334e-02 2.420963904926960e-02 2.420463927567678e-02 2.419964537946393e-02 2.419465735323985e-02 + 2.418967518800793e-02 2.418469887545246e-02 2.417972840901141e-02 2.417476377855392e-02 2.416980496962540e-02 + 2.416485198688481e-02 2.415990483049387e-02 2.415496347565664e-02 2.415002792020104e-02 2.414509816788697e-02 + 2.414017420064829e-02 2.413525600526027e-02 2.413034357711665e-02 2.412543691925479e-02 2.412053602209589e-02 + 2.411564086852338e-02 2.411075145960207e-02 2.410586778967854e-02 2.410098984367492e-02 2.409611761892932e-02 + 2.409125110932578e-02 2.408639030144091e-02 2.408153519631380e-02 2.407668578962185e-02 2.407184206146642e-02 + 2.406700400909483e-02 2.406217163125833e-02 2.405734491326586e-02 2.405252385052364e-02 2.404770844026444e-02 + 2.404289866819192e-02 2.403809452984102e-02 2.403329602484744e-02 2.402850314011094e-02 2.402371586479471e-02 + 2.401893419282938e-02 2.401415812045089e-02 2.400938764313821e-02 2.400462275334547e-02 2.399986343578922e-02 + 2.399510968520409e-02 2.399036150812855e-02 2.398561888480285e-02 2.398088180164008e-02 2.397615026865237e-02 + 2.397142427338870e-02 2.396670380040281e-02 2.396198885088599e-02 2.395727942113068e-02 2.395257549962209e-02 + 2.394787706723708e-02 2.394318412617158e-02 2.393849668455232e-02 2.393381472012022e-02 2.392913822141401e-02 + 2.392446719065216e-02 2.391980162598514e-02 2.391514151312970e-02 2.391048683154523e-02 2.390583758880722e-02 + 2.390119378770886e-02 2.389655541357522e-02 2.389192245255953e-02 2.388729489743550e-02 2.388267274893805e-02 + 2.387805599705324e-02 2.387344463051915e-02 2.386883864637205e-02 2.386423804212813e-02 2.385964281176755e-02 + 2.385505294183017e-02 2.385046842474073e-02 2.384588925674739e-02 2.384131543037479e-02 2.383674693675093e-02 + 2.383218376863605e-02 2.382762592698097e-02 2.382307340607612e-02 2.381852619200930e-02 2.381398427584630e-02 + 2.380944765139419e-02 2.380491631418275e-02 2.380039026147703e-02 2.379586948695320e-02 2.379135397827495e-02 + 2.378684372855616e-02 2.378233873403001e-02 2.377783899070361e-02 2.377334448688785e-02 2.376885521259772e-02 + 2.376437117173840e-02 2.375989235311110e-02 2.375541874056297e-02 2.375095033967465e-02 2.374648714507580e-02 + 2.374202914136664e-02 2.373757632537944e-02 2.373312869288914e-02 2.372868623536894e-02 2.372424894471153e-02 + 2.371981681484819e-02 2.371538984133524e-02 2.371096801501392e-02 2.370655132827953e-02 2.370213977833190e-02 + 2.369773335765337e-02 2.369333205880069e-02 2.368893587883010e-02 2.368454481046802e-02 2.368015884444250e-02 + 2.367577797334512e-02 2.367140218742613e-02 2.366703147963686e-02 2.366266585606776e-02 2.365830530976384e-02 + 2.365394982335759e-02 2.364959939168465e-02 2.364525401200215e-02 2.364091367903051e-02 2.363657837870221e-02 + 2.363224810602428e-02 2.362792286773459e-02 2.362360264929340e-02 2.361928743769403e-02 2.361497723470610e-02 + 2.361067203383207e-02 2.360637182449869e-02 2.360207659794005e-02 2.359778635431920e-02 2.359350109143980e-02 + 2.358922079027601e-02 2.358494544772182e-02 2.358067506765588e-02 2.357640963547734e-02 2.357214914179353e-02 + 2.356789358468287e-02 2.356364296127548e-02 2.355939726289868e-02 2.355515647729875e-02 2.355092060314220e-02 + 2.354668963726047e-02 2.354246356971432e-02 2.353824239065819e-02 2.353402609608870e-02 2.352981468856027e-02 + 2.352560815209497e-02 2.352140647526573e-02 2.351720967050562e-02 2.351301772305351e-02 2.350883061252196e-02 + 2.350464834642137e-02 2.350047092197861e-02 2.349629832802946e-02 2.349213055910952e-02 2.348796760574937e-02 + 2.348380945835795e-02 2.347965612326723e-02 2.347550759163322e-02 2.347136384068571e-02 2.346722487769892e-02 + 2.346309070523777e-02 2.345896130833473e-02 2.345483667635093e-02 2.345071680463291e-02 2.344660169327714e-02 + 2.344249133136094e-02 2.343838570884467e-02 2.343428482723373e-02 2.343018868068117e-02 2.342609726030811e-02 + 2.342201056195244e-02 2.341792857876926e-02 2.341385130156056e-02 2.340977872164902e-02 2.340571083589386e-02 + 2.340164764377465e-02 2.339758913684304e-02 2.339353530825718e-02 2.338948615385810e-02 2.338544166438565e-02 + 2.338140183238109e-02 2.337736665460082e-02 2.337333612670094e-02 2.336931024309368e-02 2.336528899670786e-02 + 2.336127237782067e-02 2.335726037932775e-02 2.335325300092871e-02 2.334925023614406e-02 2.334525207670920e-02 + 2.334125851951941e-02 2.333726955725296e-02 2.333328518197435e-02 2.332930539416707e-02 2.332533018620607e-02 + 2.332135954429912e-02 2.331739346348105e-02 2.331343194297124e-02 2.330947498175055e-02 2.330552256758802e-02 + 2.330157469245372e-02 2.329763135682490e-02 2.329369255310137e-02 2.328975827131819e-02 2.328582850377367e-02 + 2.328190324900185e-02 2.327798250467623e-02 2.327406626164597e-02 2.327015451465238e-02 2.326624725851670e-02 + 2.326234448228765e-02 2.325844618291867e-02 2.325455236057939e-02 2.325066300636415e-02 2.324677811186985e-02 + 2.324289767062798e-02 2.323902167622130e-02 2.323515012509116e-02 2.323128301561370e-02 2.322742034088871e-02 + 2.322356209250113e-02 2.321970826255392e-02 2.321585884544971e-02 2.321201383858435e-02 2.320817324137425e-02 + 2.320433704277431e-02 2.320050523099401e-02 2.319667780275936e-02 2.319285475700314e-02 2.318903609087885e-02 + 2.318522179577433e-02 2.318141186586264e-02 2.317760629632794e-02 2.317380507773795e-02 2.317000820301008e-02 + 2.316621566880872e-02 2.316242747510807e-02 2.315864361575457e-02 2.315486407850317e-02 2.315108885694486e-02 + 2.314731794816131e-02 2.314355135044316e-02 2.313978905662257e-02 2.313603105913640e-02 2.313227735329952e-02 + 2.312852793585061e-02 2.312478280157292e-02 2.312104194073204e-02 2.311730534704967e-02 2.311357301587891e-02 + 2.310984494137890e-02 2.310612112341407e-02 2.310240155989217e-02 2.309868623130452e-02 2.309497513592190e-02 + 2.309126828241582e-02 2.308756565023808e-02 2.308386723175103e-02 2.308017303542274e-02 2.307648304592169e-02 + 2.307279725617671e-02 2.306911567493640e-02 2.306543828441958e-02 2.306176507302976e-02 2.305809605235563e-02 + 2.305443121050249e-02 2.305077053229759e-02 2.304711401909808e-02 2.304346166830784e-02 2.303981347406350e-02 + 2.303616943085239e-02 2.303252953349069e-02 2.302889377643319e-02 2.302526215247478e-02 2.302163465435939e-02 + 2.301801127709388e-02 2.301439202296127e-02 2.301077688440331e-02 2.300716584594829e-02 2.300355891234385e-02 + 2.299995607931316e-02 2.299635732709070e-02 2.299276266087610e-02 2.298917208378683e-02 2.298558558107965e-02 + 2.298200314503575e-02 2.297842477288603e-02 2.297485046311076e-02 2.297128020911345e-02 2.296771400315858e-02 + 2.296415184168031e-02 2.296059371667762e-02 2.295703962066644e-02 2.295348955785851e-02 2.294994352217295e-02 + 2.294640149900077e-02 2.294286348264926e-02 2.293932947451599e-02 2.293579947717141e-02 2.293227347444131e-02 + 2.292875145668869e-02 2.292523342863249e-02 2.292171938675970e-02 2.291820932208030e-02 2.291470322329688e-02 + 2.291120108573121e-02 2.290770290936340e-02 2.290420869564250e-02 2.290071843254762e-02 2.289723210840996e-02 + 2.289374972996874e-02 2.289027128684278e-02 2.288679676284003e-02 2.288332616596880e-02 2.287985949623025e-02 + 2.287639674290211e-02 2.287293789614104e-02 2.286948295143698e-02 2.286603190794522e-02 2.286258475709644e-02 + 2.285914149325583e-02 2.285570211629635e-02 2.285226661817064e-02 2.284883499242224e-02 2.284540723897847e-02 + 2.284198334984975e-02 2.283856331588243e-02 2.283514713353579e-02 2.283173480111027e-02 2.282832631556901e-02 + 2.282492166909090e-02 2.282152085461623e-02 2.281812386736860e-02 2.281473070606539e-02 2.281134136558116e-02 + 2.280795583769253e-02 2.280457411713410e-02 2.280119619914733e-02 2.279782207936136e-02 2.279445175627783e-02 + 2.279108522557549e-02 2.278772247795469e-02 2.278436350274908e-02 2.278100829770330e-02 2.277765687156956e-02 + 2.277430921150676e-02 2.277096530368425e-02 2.276762515226868e-02 2.276428875675497e-02 2.276095610802096e-02 + 2.275762718728153e-02 2.275430199700514e-02 2.275098054723153e-02 2.274766282325953e-02 2.274434881806882e-02 + 2.274103853245654e-02 2.273773195657694e-02 2.273442908251650e-02 2.273112990748000e-02 2.272783443024632e-02 + 2.272454264587135e-02 2.272125454541999e-02 2.271797012768606e-02 2.271468938883630e-02 2.271141231743784e-02 + 2.270813891155475e-02 2.270486917113991e-02 2.270160309030139e-02 2.269834065991423e-02 2.269508187421201e-02 + 2.269182673791773e-02 2.268857524219826e-02 2.268532737305624e-02 2.268208313254210e-02 2.267884251722086e-02 + 2.267560551920548e-02 2.267237214108131e-02 2.266914237609957e-02 2.266591620883689e-02 2.266269364166427e-02 + 2.265947467384046e-02 2.265625929499294e-02 2.265304750285308e-02 2.264983929495161e-02 2.264663466331073e-02 + 2.264343359962570e-02 2.264023610100446e-02 2.263704217283995e-02 2.263385180078203e-02 2.263066497176033e-02 + 2.262748170200772e-02 2.262430198020481e-02 2.262112578516977e-02 2.261795313211606e-02 2.261478401664109e-02 + 2.261161841743119e-02 2.260845633522814e-02 2.260529777070043e-02 2.260214271924124e-02 2.259899117823321e-02 + 2.259584314154298e-02 2.259269859890657e-02 2.258955754741791e-02 2.258641998536936e-02 2.258328590829124e-02 + 2.258015531052365e-02 2.257702818646037e-02 2.257390453172050e-02 2.257078434461123e-02 2.256766762198980e-02 + 2.256455435398716e-02 2.256144453344060e-02 2.255833815784602e-02 2.255523523027356e-02 2.255213574452021e-02 + 2.254903968810603e-02 2.254594705829782e-02 2.254285785514665e-02 2.253977207653749e-02 2.253668970834607e-02 + 2.253361074658835e-02 2.253053520058667e-02 2.252746305460894e-02 2.252439429792020e-02 2.252132894054988e-02 + 2.251826697539277e-02 2.251520839162438e-02 2.251215318778324e-02 2.250910135797150e-02 2.250605289615611e-02 + 2.250300780314812e-02 2.249996607511807e-02 2.249692770517706e-02 2.249389268897849e-02 2.249086101912092e-02 + 2.248783268793952e-02 2.248480769791340e-02 2.248178604607573e-02 2.247876772289102e-02 2.247575272657626e-02 + 2.247274105420605e-02 2.246973269884927e-02 2.246672765673356e-02 2.246372592391256e-02 2.246072749418018e-02 + 2.245773236145919e-02 2.245474052366870e-02 2.245175198466864e-02 2.244876673416187e-02 2.244578475935081e-02 + 2.244280606154297e-02 2.243983064008646e-02 2.243685849064164e-02 2.243388960632717e-02 2.243092397966235e-02 + 2.242796160524575e-02 2.242500248562306e-02 2.242204661762487e-02 2.241909399183298e-02 2.241614460666303e-02 + 2.241319845819517e-02 2.241025553754803e-02 2.240731584245553e-02 2.240437937032112e-02 2.240144611432051e-02 + 2.239851607018801e-02 2.239558923444239e-02 2.239266560299412e-02 2.238974517661811e-02 2.238682795331298e-02 + 2.238391391839321e-02 2.238100306495051e-02 2.237809539304577e-02 2.237519090301935e-02 2.237228958954325e-02 + 2.236939144530989e-02 2.236649647337483e-02 2.236360466636645e-02 2.236071600836286e-02 2.235783050633204e-02 + 2.235494816009726e-02 2.235206895420678e-02 2.234919288912077e-02 2.234631996540050e-02 2.234345017408028e-02 + 2.234058350741709e-02 2.233771996217690e-02 2.233485954108143e-02 2.233200223848051e-02 2.232914804618978e-02 + 2.232629696222737e-02 2.232344898389008e-02 2.232060410657171e-02 2.231776232362639e-02 2.231492363175558e-02 + 2.231208802922137e-02 2.230925550831191e-02 2.230642606279709e-02 2.230359969032392e-02 2.230077639232617e-02 + 2.229795616382932e-02 2.229513899284023e-02 2.229232488215048e-02 2.228951382986107e-02 2.228670582046145e-02 + 2.228390085767177e-02 2.228109894426768e-02 2.227830006461064e-02 2.227550421765863e-02 2.227271140560883e-02 + 2.226992161633195e-02 2.226713484518715e-02 2.226435109357777e-02 2.226157036041665e-02 2.225879263594571e-02 + 2.225601790864145e-02 2.225324618600033e-02 2.225047746610503e-02 2.224771173578603e-02 2.224494899695189e-02 + 2.224218924606724e-02 2.223943246967720e-02 2.223667867147697e-02 2.223392785229840e-02 2.223117999944780e-02 + 2.222843510958861e-02 2.222569318138216e-02 2.222295420869658e-02 2.222021819230338e-02 2.221748513172378e-02 + 2.221475501403353e-02 2.221202783347761e-02 2.220930358964832e-02 2.220658227937696e-02 2.220386389978368e-02 + 2.220114844711944e-02 2.219843591216284e-02 2.219572629440826e-02 2.219301959936691e-02 2.219031581219321e-02 + 2.218761492468887e-02 2.218491694233576e-02 2.218222185562244e-02 2.217952965986671e-02 2.217684036403281e-02 + 2.217415395419634e-02 2.217147041795686e-02 2.216878976537657e-02 2.216611199005385e-02 2.216343708084910e-02 + 2.216076504044857e-02 2.215809586407636e-02 2.215542954392592e-02 2.215276608232491e-02 2.215010547339664e-02 + 2.214744770611955e-02 2.214479278225410e-02 2.214214070177000e-02 2.213949145934428e-02 2.213684504847090e-02 + 2.213420146383213e-02 2.213156070201421e-02 2.212892275987791e-02 2.212628763520102e-02 2.212365532631548e-02 + 2.212102582567219e-02 2.211839912707401e-02 2.211577523186081e-02 2.211315413883962e-02 2.211053584219323e-02 + 2.210792033053083e-02 2.210530760247808e-02 2.210269766011106e-02 2.210009049378774e-02 2.209748609987134e-02 + 2.209488448015577e-02 2.209228563063591e-02 2.208968954607055e-02 2.208709622107550e-02 2.208450564887732e-02 + 2.208191782589816e-02 2.207933275252874e-02 2.207675042560285e-02 2.207417084119970e-02 2.207159399606388e-02 + 2.206901988424427e-02 2.206644850045388e-02 2.206387984291528e-02 2.206131390816773e-02 2.205875069196218e-02 + 2.205619019101501e-02 2.205363240248722e-02 2.205107732226570e-02 2.204852494231603e-02 2.204597526222870e-02 + 2.204342828418220e-02 2.204088399409952e-02 2.203834238815479e-02 2.203580347352047e-02 2.203326724064265e-02 + 2.203073368487589e-02 2.202820281109562e-02 2.202567460568826e-02 2.202314905892956e-02 2.202062617713913e-02 + 2.201810595951965e-02 2.201558839960293e-02 2.201307348855861e-02 2.201056122699519e-02 2.200805161543166e-02 + 2.200554464185156e-02 2.200304030240887e-02 2.200053859846551e-02 2.199803952619762e-02 2.199554308107517e-02 + 2.199304925941878e-02 2.199055805969111e-02 2.198806947716193e-02 2.198558350490501e-02 2.198310014348315e-02 + 2.198061939050182e-02 2.197814123774413e-02 2.197566568143648e-02 2.197319271829654e-02 2.197072234409288e-02 + 2.196825456242376e-02 2.196578937054303e-02 2.196332674903257e-02 2.196086670076693e-02 2.195840923401799e-02 + 2.195595433798292e-02 2.195350200785295e-02 2.195105224287541e-02 2.194860503638501e-02 2.194616038337459e-02 + 2.194371828086876e-02 2.194127872478465e-02 2.193884171275727e-02 2.193640724439015e-02 2.193397531871202e-02 + 2.193154592984012e-02 2.192911906730429e-02 2.192669472874541e-02 2.192427291582612e-02 2.192185362988310e-02 + 2.191943685926103e-02 2.191702259589666e-02 2.191461084837004e-02 2.191220161094460e-02 2.190979487232746e-02 + 2.190739062981033e-02 2.190498888177591e-02 2.190258962778606e-02 2.190019287048831e-02 2.189779860038415e-02 + 2.189540680312951e-02 2.189301748590321e-02 2.189063064823816e-02 2.188824627921663e-02 2.188586438035036e-02 + 2.188348494945867e-02 2.188110797669410e-02 2.187873346273279e-02 2.187636140793982e-02 2.187399180563438e-02 + 2.187162464701073e-02 2.186925992764394e-02 2.186689765219864e-02 2.186453782016761e-02 2.186218042520733e-02 + 2.185982545624109e-02 2.185747291143151e-02 2.185512279286289e-02 2.185277509428750e-02 2.185042981497303e-02 + 2.184808695595145e-02 2.184574650317918e-02 2.184340845337333e-02 2.184107281435048e-02 2.183873957690715e-02 + 2.183640873122354e-02 2.183408027442373e-02 2.183175421068970e-02 2.182943053984947e-02 2.182710925220595e-02 + 2.182479034512406e-02 2.182247381639650e-02 2.182015965839264e-02 2.181784786935527e-02 2.181553844939510e-02 + 2.181323139439093e-02 2.181092669994856e-02 2.180862436262286e-02 2.180632438083940e-02 2.180402674952244e-02 + 2.180173146217098e-02 2.179943851892379e-02 2.179714791838810e-02 2.179485965603752e-02 2.179257372764807e-02 + 2.179029013045416e-02 2.178800886254997e-02 2.178572991731780e-02 2.178345329019238e-02 2.178117898198011e-02 + 2.177890698980304e-02 2.177663730909087e-02 2.177436993586566e-02 2.177210486810286e-02 2.176984210277431e-02 + 2.176758163245009e-02 2.176532345522340e-02 2.176306757137086e-02 2.176081397536724e-02 2.175856266623576e-02 + 2.175631364444715e-02 2.175406689861889e-02 2.175182242380624e-02 2.174958022311289e-02 2.174734029291431e-02 + 2.174510262809328e-02 2.174286722491656e-02 2.174063408336708e-02 2.173840320169586e-02 2.173617457340815e-02 + 2.173394819180500e-02 2.173172405255836e-02 2.172950215559655e-02 2.172728250040623e-02 2.172506508580887e-02 + 2.172284990969628e-02 2.172063696250313e-02 2.171842623537083e-02 2.171621773566752e-02 2.171401146093844e-02 + 2.171180740120238e-02 2.170960555830954e-02 2.170740592901658e-02 2.170520850408856e-02 2.170301328419004e-02 + 2.170082027006994e-02 2.169862945830807e-02 2.169644084240343e-02 2.169425441572978e-02 2.169207017401216e-02 + 2.168988812007480e-02 2.168770825534887e-02 2.168553057272023e-02 2.168335506533793e-02 2.168118172867985e-02 + 2.167901056214399e-02 2.167684156632982e-02 2.167467473989915e-02 2.167251007478243e-02 2.167034756604321e-02 + 2.166818721221639e-02 2.166602901099679e-02 2.166387295840019e-02 2.166171905012346e-02 2.165956728718834e-02 + 2.165741766632386e-02 2.165527017845730e-02 2.165312482355555e-02 2.165098160273919e-02 2.164884051303741e-02 + 2.164670154730472e-02 2.164456469954934e-02 2.164242996946321e-02 2.164029735885670e-02 2.163816686523918e-02 + 2.163603847533059e-02 2.163391219068715e-02 2.163178801684997e-02 2.162966593882407e-02 2.162754595404139e-02 + 2.162542806873079e-02 2.162331227177066e-02 2.162119856181649e-02 2.161908694674025e-02 2.161697741144211e-02 + 2.161486994763257e-02 2.161276456243416e-02 2.161066125301312e-02 2.160856001324272e-02 2.160646083892226e-02 + 2.160436373197112e-02 2.160226869104043e-02 2.160017570438035e-02 2.159808476849354e-02 2.159599588501710e-02 + 2.159390905460169e-02 2.159182427010056e-02 2.158974152429478e-02 2.158766082444429e-02 2.158558216760809e-02 + 2.158350554187339e-02 2.158143094233737e-02 2.157935837033232e-02 2.157728782941571e-02 2.157521931196140e-02 + 2.157315281164952e-02 2.157108832745493e-02 2.156902585566251e-02 2.156696539445298e-02 2.156490694526656e-02 + 2.156285049964247e-02 2.156079605212440e-02 2.155874360997529e-02 2.155669316474123e-02 2.155464470676604e-02 + 2.155259824484399e-02 2.155055377365348e-02 2.154851128035285e-02 2.154647076406023e-02 2.154443222886153e-02 + 2.154239567713112e-02 2.154036109691455e-02 2.153832848380287e-02 2.153629784162443e-02 2.153426916110383e-02 + 2.153224243839968e-02 2.153021767928900e-02 2.152819487735599e-02 2.152617402486068e-02 2.152415511969989e-02 + 2.152213816346627e-02 2.152012315489333e-02 2.151811008517867e-02 2.151609895106827e-02 2.151408975350627e-02 + 2.151208249405811e-02 2.151007716412923e-02 2.150807375412716e-02 2.150607227139823e-02 2.150407271389111e-02 + 2.150207507178008e-02 2.150007934512424e-02 2.149808553345600e-02 2.149609363244227e-02 2.149410363369511e-02 + 2.149211553597770e-02 2.149012934592863e-02 2.148814505588094e-02 2.148616265955859e-02 2.148418215959600e-02 + 2.148220354775919e-02 2.148022681859241e-02 2.147825198020547e-02 2.147627902590631e-02 2.147430794498996e-02 + 2.147233873858447e-02 2.147037140717467e-02 2.146840594879004e-02 2.146644235912430e-02 2.146448063553682e-02 + 2.146252077578778e-02 2.146056277288728e-02 2.145860662318243e-02 2.145665232726965e-02 2.145469988438242e-02 + 2.145274929256557e-02 2.145080054831608e-02 2.144885364454498e-02 2.144690857746641e-02 2.144496534942983e-02 + 2.144302395654175e-02 2.144108439499599e-02 2.143914666610025e-02 2.143721076355154e-02 2.143527668029283e-02 + 2.143334441800114e-02 2.143141397685691e-02 2.142948535268880e-02 2.142755853497146e-02 2.142563352602930e-02 + 2.142371033388222e-02 2.142178894500280e-02 2.141986935358769e-02 2.141795156402302e-02 2.141603556793572e-02 + 2.141412136230918e-02 2.141220895321441e-02 2.141029833297722e-02 2.140838949470163e-02 2.140648244009975e-02 + 2.140457716697424e-02 2.140267367166504e-02 2.140077195168551e-02 2.139887200433115e-02 2.139697382547902e-02 + 2.139507740888590e-02 2.139318275720074e-02 2.139128987343195e-02 2.138939874415982e-02 2.138750936775835e-02 + 2.138562175102568e-02 2.138373588641631e-02 2.138185176599392e-02 2.137996938652284e-02 2.137808875223814e-02 + 2.137620986251236e-02 2.137433270909064e-02 2.137245728978030e-02 2.137058360186242e-02 2.136871163953864e-02 + 2.136684140688612e-02 2.136497290390506e-02 2.136310611597474e-02 2.136124104345297e-02 2.135937769212130e-02 + 2.135751605860686e-02 2.135565613610374e-02 2.135379791822062e-02 2.135194140402438e-02 2.135008659417071e-02 + 2.134823348788390e-02 2.134638207760105e-02 2.134453236032835e-02 2.134268433814086e-02 2.134083800772077e-02 + 2.133899336411597e-02 2.133715040305821e-02 2.133530912424798e-02 2.133346952672500e-02 2.133163160670673e-02 + 2.132979536297411e-02 2.132796079152963e-02 2.132612788229375e-02 2.132429663915477e-02 2.132246706798375e-02 + 2.132063916037057e-02 2.131881290769116e-02 2.131698830582932e-02 2.131516535978050e-02 2.131334407028698e-02 + 2.131152443198118e-02 2.130970643552249e-02 2.130789007885127e-02 2.130607536669811e-02 2.130426229682303e-02 + 2.130245086421657e-02 2.130064106313053e-02 2.129883288837854e-02 2.129702633875496e-02 2.129522141788389e-02 + 2.129341812290223e-02 2.129161644909972e-02 2.128981639414264e-02 2.128801795585396e-02 2.128622113110773e-02 + 2.128442591509673e-02 2.128263230760480e-02 2.128084030772261e-02 2.127904990395241e-02 2.127726109953179e-02 + 2.127547390424031e-02 2.127368830171838e-02 2.127190428479188e-02 2.127012186038021e-02 2.126834102886177e-02 + 2.126656178481652e-02 2.126478411995624e-02 2.126300803603507e-02 2.126123353191450e-02 2.125946059821390e-02 + 2.125768923851055e-02 2.125591945439615e-02 2.125415123382016e-02 2.125238457915817e-02 2.125061949358618e-02 + 2.124885596288304e-02 2.124709398735697e-02 2.124533357303348e-02 2.124357470952245e-02 2.124181739435340e-02 + 2.124006163206048e-02 2.123830741948956e-02 2.123655475001017e-02 2.123480361731545e-02 2.123305402409987e-02 + 2.123130596739953e-02 2.122955943693203e-02 2.122781443910126e-02 2.122607097723360e-02 2.122432904130337e-02 + 2.122258862659696e-02 2.122084973282204e-02 2.121911236175234e-02 2.121737650789419e-02 2.121564216387619e-02 + 2.121390932803162e-02 2.121217800425756e-02 2.121044819455527e-02 2.120871988671843e-02 2.120699307684077e-02 + 2.120526776795157e-02 2.120354395552526e-02 2.120182163603621e-02 2.120010080901829e-02 2.119838147500087e-02 + 2.119666363123091e-02 2.119494727091758e-02 2.119323238927472e-02 2.119151898655034e-02 2.118980706773010e-02 + 2.118809662574528e-02 2.118638765303925e-02 2.118468015121633e-02 2.118297411864271e-02 2.118126955146517e-02 + 2.117956644637810e-02 2.117786480292237e-02 2.117616462067450e-02 2.117446589411339e-02 2.117276862084477e-02 + 2.117107280130004e-02 2.116937843379139e-02 2.116768551256503e-02 2.116599403067535e-02 2.116430399205533e-02 + 2.116261539753040e-02 2.116092824074994e-02 2.115924251858398e-02 2.115755822756320e-02 2.115587536308644e-02 + 2.115419393062315e-02 2.115251393109511e-02 2.115083534999197e-02 2.114915818684827e-02 2.114748244571777e-02 + 2.114580812117730e-02 2.114413521000233e-02 2.114246371011731e-02 2.114079361630021e-02 2.113912493113981e-02 + 2.113745765864524e-02 2.113579178347091e-02 2.113412730283017e-02 2.113246422731517e-02 2.113080255018658e-02 + 2.112914226466844e-02 2.112748336987266e-02 2.112582586239263e-02 2.112416973838773e-02 2.112251499585494e-02 + 2.112086163946853e-02 2.111920966923609e-02 2.111755907231158e-02 2.111590984741022e-02 2.111426199652882e-02 + 2.111261551330255e-02 2.111097039854193e-02 2.110932665501722e-02 2.110768427494188e-02 2.110604325159932e-02 + 2.110440358337455e-02 2.110276527755971e-02 2.110112832954347e-02 2.109949272542061e-02 2.109785847270291e-02 + 2.109622557382813e-02 2.109459401840321e-02 2.109296380279178e-02 2.109133492634166e-02 2.108970738897449e-02 + 2.108808119187406e-02 2.108645633261542e-02 2.108483280177793e-02 2.108321059649476e-02 2.108158971816587e-02 + 2.107997016818712e-02 2.107835194176262e-02 2.107673503228282e-02 2.107511943992769e-02 2.107350516482023e-02 + 2.107189220511111e-02 2.107028055587330e-02 2.106867021606288e-02 2.106706118735907e-02 2.106545346293816e-02 + 2.106384703796383e-02 2.106224191316689e-02 2.106063808955507e-02 2.105903556250238e-02 2.105743432153898e-02 + 2.105583437513380e-02 2.105423572746437e-02 2.105263836035830e-02 2.105104227142354e-02 2.104944746729932e-02 + 2.104785395134047e-02 2.104626171573087e-02 2.104467074966839e-02 2.104308105452007e-02 2.104149263222363e-02 + 2.103990548218236e-02 2.103831959968388e-02 2.103673498293864e-02 2.103515163200819e-02 2.103356953798411e-02 + 2.103198869775456e-02 2.103040911733209e-02 2.102883079574534e-02 2.102725372695269e-02 2.102567790273802e-02 + 2.102410332486244e-02 2.102252999507990e-02 2.102095790737760e-02 2.101938706174730e-02 2.101781745879964e-02 + 2.101624909192282e-02 2.101468195450770e-02 2.101311604447429e-02 2.101155137000445e-02 2.100998792857284e-02 + 2.100842571064132e-02 2.100686471849675e-02 2.100530495078897e-02 2.100374640001838e-02 2.100218906014547e-02 + 2.100063293273019e-02 2.099907802537045e-02 2.099752433031871e-02 2.099597184169578e-02 2.099442056340826e-02 + 2.099287048844137e-02 2.099132161182849e-02 2.098977394056553e-02 2.098822746767990e-02 2.098668218492037e-02 + 2.098513809937855e-02 2.098359520656010e-02 2.098205349870481e-02 2.098051298433238e-02 2.097897365788888e-02 + 2.097743550607582e-02 2.097589853771057e-02 2.097436275317134e-02 2.097282814179318e-02 2.097129470444368e-02 + 2.096976244194844e-02 2.096823135057212e-02 2.096670142502171e-02 2.096517266432222e-02 2.096364507294766e-02 + 2.096211864290872e-02 2.096059336882086e-02 2.095906925902597e-02 2.095754630598820e-02 2.095602449947026e-02 + 2.095450384463222e-02 2.095298434369944e-02 2.095146599313072e-02 2.094994878341327e-02 2.094843271500539e-02 + 2.094691779352117e-02 2.094540401073429e-02 2.094389136288097e-02 2.094237985194064e-02 2.094086947133280e-02 + 2.093936021927527e-02 2.093785210108921e-02 2.093634511142213e-02 2.093483924325246e-02 2.093333449385128e-02 + 2.093183086645815e-02 2.093032836253444e-02 2.092882697593887e-02 2.092732670311165e-02 2.092582754108962e-02 + 2.092432948474122e-02 2.092283253800634e-02 2.092133670446908e-02 2.091984196956714e-02 2.091834833166288e-02 + 2.091685579922333e-02 2.091536436905392e-02 2.091387403364116e-02 2.091238478662568e-02 2.091089663391256e-02 + 2.090940957508328e-02 2.090792359986955e-02 2.090643871032298e-02 2.090495490818039e-02 2.090347218811059e-02 + 2.090199054718417e-02 2.090050998308706e-02 2.089903049243704e-02 2.089755207414248e-02 2.089607472810411e-02 + 2.089459845325996e-02 2.089312324594328e-02 2.089164910255710e-02 2.089017602427597e-02 2.088870401009232e-02 + 2.088723305634642e-02 2.088576315893389e-02 2.088429431601771e-02 2.088282652696964e-02 2.088135978615913e-02 + 2.087989409321534e-02 2.087842945395569e-02 2.087696586275656e-02 2.087550331287119e-02 2.087404180207852e-02 + 2.087258132736208e-02 2.087112188861259e-02 2.086966349090147e-02 2.086820612891688e-02 2.086674979608584e-02 + 2.086529449590395e-02 2.086384022331517e-02 2.086238697045790e-02 2.086093474039187e-02 2.085948353444753e-02 + 2.085803335091995e-02 2.085658418796912e-02 2.085513604081134e-02 2.085368890289571e-02 2.085224277300881e-02 + 2.085079765267601e-02 2.084935354393509e-02 2.084791044341373e-02 2.084646834711395e-02 2.084502725286095e-02 + 2.084358715744794e-02 2.084214805848912e-02 2.084070995598070e-02 2.083927284909677e-02 2.083783673573611e-02 + 2.083640161226469e-02 2.083496747523998e-02 2.083353432223483e-02 2.083210215303235e-02 2.083067096927498e-02 + 2.082924077044086e-02 2.082781154460241e-02 2.082638329211299e-02 2.082495602309350e-02 2.082352972509603e-02 + 2.082210439277076e-02 2.082068003454410e-02 2.081925664261260e-02 2.081783421113447e-02 2.081641274508624e-02 + 2.081499224082686e-02 2.081357269450268e-02 2.081215410878219e-02 2.081073647873721e-02 2.080931979776872e-02 + 2.080790406592918e-02 2.080648928500749e-02 2.080507545608266e-02 2.080366257645188e-02 2.080225063919177e-02 + 2.080083963814898e-02 2.079942957984240e-02 2.079802046255642e-02 2.079661227641324e-02 2.079520502452446e-02 + 2.079379870732677e-02 2.079239331877295e-02 2.079098886066600e-02 2.078958533155146e-02 2.078818272238310e-02 + 2.078678103594075e-02 2.078538027480030e-02 2.078398043169412e-02 2.078258150517176e-02 2.078118349582184e-02 + 2.077978640032045e-02 2.077839021518007e-02 2.077699493798996e-02 2.077560056860569e-02 2.077420710626992e-02 + 2.077281454908150e-02 2.077142289397691e-02 2.077003213665487e-02 2.076864227381708e-02 2.076725331084939e-02 + 2.076586524753700e-02 2.076447807479244e-02 2.076309178893910e-02 2.076170639200464e-02 2.076032188924749e-02 + 2.075893827075576e-02 2.075755552867013e-02 2.075617367037054e-02 2.075479269394757e-02 2.075341259415677e-02 + 2.075203337133167e-02 2.075065502119062e-02 2.074927754004291e-02 2.074790093527532e-02 2.074652520196147e-02 + 2.074515032814618e-02 2.074377631824518e-02 2.074240317461906e-02 2.074103089389617e-02 2.073965947285912e-02 + 2.073828890806665e-02 2.073691919635770e-02 2.073555033844026e-02 2.073418233381763e-02 2.073281517823886e-02 + 2.073144886803073e-02 2.073008340377233e-02 2.072871879147831e-02 2.072735502222402e-02 2.072599208688765e-02 + 2.072462999392301e-02 2.072326873860233e-02 2.072190831224300e-02 2.072054872378210e-02 2.071918997148765e-02 + 2.071783204556565e-02 2.071647494755481e-02 2.071511867766477e-02 2.071376323196711e-02 2.071240860565183e-02 + 2.071105479791370e-02 2.070970181180314e-02 2.070834964331268e-02 2.070699828917085e-02 2.070564775075080e-02 + 2.070429802727900e-02 2.070294911380581e-02 2.070160100113699e-02 2.070025369244763e-02 2.069890719322030e-02 + 2.069756149841416e-02 2.069621660331007e-02 2.069487250616514e-02 2.069352920972353e-02 2.069218670843115e-02 + 2.069084499406914e-02 2.068950407478504e-02 2.068816395008570e-02 2.068682460979861e-02 2.068548605525363e-02 + 2.068414828647597e-02 2.068281129879088e-02 2.068147509294542e-02 2.068013966727868e-02 2.067880501481977e-02 + 2.067747113766845e-02 2.067613803889334e-02 2.067480571527677e-02 2.067347415977921e-02 2.067214336769299e-02 + 2.067081334319025e-02 2.066948408776949e-02 2.066815559807265e-02 2.066682786498898e-02 2.066550088830383e-02 + 2.066417467341183e-02 2.066284921698086e-02 2.066152451475288e-02 2.066020056372571e-02 2.065887736182303e-02 + 2.065755490839281e-02 2.065623320354572e-02 2.065491224367795e-02 2.065359202675738e-02 2.065227255436574e-02 + 2.065095382314874e-02 2.064963582941213e-02 2.064831857270797e-02 2.064700204957123e-02 2.064568625651786e-02 + 2.064437119414936e-02 2.064305686324694e-02 2.064174326345409e-02 2.064043039179931e-02 2.063911824280925e-02 + 2.063780681176866e-02 2.063649610237503e-02 2.063518611610314e-02 2.063387684909248e-02 2.063256829217405e-02 + 2.063126044539576e-02 2.062995331851188e-02 2.062864690334512e-02 2.062734119190086e-02 2.062603618600375e-02 + 2.062473188642144e-02 2.062342829221786e-02 2.062212540064643e-02 2.062082320714733e-02 2.061952170915304e-02 + 2.061822091004314e-02 2.061692080716460e-02 2.061562139605911e-02 2.061432267954307e-02 2.061302465323251e-02 + 2.061172730955065e-02 2.061043065371613e-02 2.060913468523504e-02 2.060783939685846e-02 2.060654478913799e-02 + 2.060525086119714e-02 2.060395760866959e-02 2.060266503271371e-02 2.060137313244415e-02 2.060008190215519e-02 + 2.059879134465455e-02 2.059750146004468e-02 2.059621223782829e-02 2.059492368052522e-02 2.059363579225837e-02 + 2.059234856405708e-02 2.059106199328788e-02 2.058977608130871e-02 2.058849082556723e-02 2.058720622498806e-02 + 2.058592227959311e-02 2.058463898696043e-02 2.058335634281647e-02 2.058207434376584e-02 2.058079299573017e-02 + 2.057951229614279e-02 2.057823223269817e-02 2.057695281356401e-02 2.057567404187197e-02 2.057439590387300e-02 + 2.057311839681732e-02 2.057184152455586e-02 2.057056529173392e-02 2.056928969078429e-02 2.056801471376779e-02 + 2.056674036634529e-02 2.056546664830153e-02 2.056419355486686e-02 2.056292108306100e-02 2.056164923170236e-02 + 2.056037800067255e-02 2.055910738924650e-02 2.055783739340399e-02 2.055656800859636e-02 2.055529924146672e-02 + 2.055403109005562e-02 2.055276354110791e-02 2.055149659755915e-02 2.055023026272679e-02 2.054896453244645e-02 + 2.054769940766287e-02 2.054643488681757e-02 2.054517096062926e-02 2.054390763218316e-02 2.054264490512525e-02 + 2.054138276915942e-02 2.054012122328143e-02 2.053886027085424e-02 2.053759990682471e-02 2.053634012878631e-02 + 2.053508093799464e-02 2.053382233647706e-02 2.053256431985532e-02 2.053130687980379e-02 2.053005001911220e-02 + 2.052879373804411e-02 2.052753803104820e-02 2.052628289842169e-02 2.052502834052905e-02 2.052377435424499e-02 + 2.052252093383405e-02 2.052126807833591e-02 2.052001579579881e-02 2.051876408076618e-02 2.051751292558091e-02 + 2.051626233431153e-02 2.051501230108543e-02 2.051376281904528e-02 2.051251389905356e-02 2.051126553806812e-02 + 2.051001772450580e-02 2.050877046477720e-02 2.050752375748313e-02 2.050627759308629e-02 2.050503197764233e-02 + 2.050378691120845e-02 2.050254238346269e-02 2.050129839647772e-02 2.050005495152270e-02 2.049881204279591e-02 + 2.049756967049427e-02 2.049632783497685e-02 2.049508653204386e-02 2.049384576061373e-02 2.049260552085964e-02 + 2.049136581124810e-02 2.049012662828215e-02 2.048888796855573e-02 2.048764983217528e-02 2.048641222055239e-02 + 2.048517513365279e-02 2.048393856449956e-02 2.048270250702790e-02 2.048146696002243e-02 2.048023193267689e-02 + 2.047899742444990e-02 2.047776342204647e-02 2.047652992557144e-02 2.047529693666283e-02 2.047406445284291e-02 + 2.047283247820367e-02 2.047160101124722e-02 2.047037003705319e-02 2.046913955996649e-02 2.046790958805229e-02 + 2.046668011290463e-02 2.046545112747173e-02 2.046422263048016e-02 2.046299462941648e-02 2.046176712182623e-02 + 2.046054009863872e-02 2.045931356011635e-02 2.045808750875261e-02 2.045686194483555e-02 2.045563685869128e-02 + 2.045441224888558e-02 2.045318812405373e-02 2.045196447539730e-02 2.045074129851060e-02 2.044951860203706e-02 + 2.044829637561388e-02 2.044707461146781e-02 2.044585332076453e-02 2.044463250090934e-02 2.044341214478788e-02 + 2.044219225389736e-02 2.044097282684260e-02 2.043975385980242e-02 2.043853534979080e-02 2.043731729516990e-02 + 2.043609969584751e-02 2.043488255365452e-02 2.043366586840525e-02 2.043244963622695e-02 2.043123384788510e-02 + 2.043001850356880e-02 2.042880361352058e-02 2.042758917125052e-02 2.042637516923373e-02 2.042516160738241e-02 + 2.042394848596822e-02 2.042273580364956e-02 2.042152355668345e-02 2.042031174421715e-02 2.041910036711696e-02 + 2.041788942589821e-02 2.041667891618270e-02 2.041546883283581e-02 2.041425917723074e-02 2.041304994671302e-02 + 2.041184113736942e-02 2.041063275507356e-02 2.040942479864618e-02 2.040821725911453e-02 2.040701013329647e-02 + 2.040580342336421e-02 2.040459713364973e-02 2.040339125626194e-02 2.040218578748979e-02 2.040098073437600e-02 + 2.039977609190064e-02 2.039857185194057e-02 2.039736801200263e-02 2.039616457948628e-02 2.039496155847034e-02 + 2.039375893548800e-02 2.039255670811317e-02 2.039135487906758e-02 2.039015344139171e-02 2.038895239754324e-02 + 2.038775175394349e-02 2.038655150008423e-02 2.038535163468296e-02 2.038415216492024e-02 2.038295307932101e-02 + 2.038175437156158e-02 2.038055604740632e-02 2.037935811014152e-02 2.037816055719221e-02 2.037696338008003e-02 + 2.037576657774965e-02 2.037457015197002e-02 2.037337410306159e-02 2.037217842811476e-02 2.037098312337542e-02 + 2.036978818702816e-02 2.036859361901312e-02 2.036739941883561e-02 2.036620558232109e-02 2.036501210897116e-02 + 2.036381899981477e-02 2.036262624936801e-02 2.036143385733716e-02 2.036024182706139e-02 2.035905014947786e-02 + 2.035785882153747e-02 2.035666784977269e-02 2.035547723079831e-02 2.035428696142468e-02 2.035309704319765e-02 + 2.035190747134853e-02 2.035071824110532e-02 2.034952935293085e-02 2.034834080749865e-02 2.034715260430401e-02 + 2.034596474052595e-02 2.034477721202228e-02 2.034359001578161e-02 2.034240315367684e-02 2.034121662664043e-02 + 2.034003043357028e-02 2.033884457132868e-02 2.033765903741480e-02 2.033647382949949e-02 2.033528894162872e-02 + 2.033410437471255e-02 2.033292013620119e-02 2.033173621775026e-02 2.033055261459435e-02 2.032936933387398e-02 + 2.032818637173341e-02 2.032700371995237e-02 2.032582137330103e-02 2.032463934032926e-02 2.032345762721536e-02 + 2.032227621977112e-02 2.032109511380310e-02 2.031991431266943e-02 2.031873381713771e-02 2.031755362367381e-02 + 2.031637372822898e-02 2.031519413522404e-02 2.031401484060572e-02 2.031283583475656e-02 2.031165712768451e-02 + 2.031047872082618e-02 2.030930060067025e-02 2.030812276414845e-02 2.030694521582938e-02 2.030576796297434e-02 + 2.030459099391277e-02 2.030341430130414e-02 2.030223789822972e-02 2.030106177803277e-02 2.029988592949474e-02 + 2.029871035725545e-02 2.029753506661443e-02 2.029636005659757e-02 2.029518531267896e-02 2.029401083596470e-02 + 2.029283663654064e-02 2.029166270589052e-02 2.029048903923464e-02 2.028931563858370e-02 2.028814250195392e-02 + 2.028696962711050e-02 2.028579701358946e-02 2.028462466440920e-02 2.028345257575578e-02 2.028228073462766e-02 + 2.028110914546667e-02 2.027993781542017e-02 2.027876674182124e-02 2.027759591671596e-02 2.027642533515473e-02 + 2.027525500323221e-02 2.027408491983729e-02 2.027291508043819e-02 2.027174548650143e-02 2.027057613494678e-02 + 2.026940701983228e-02 2.026823814087089e-02 2.026706949898955e-02 2.026590109425394e-02 2.026473292320746e-02 + 2.026356498366547e-02 2.026239727592488e-02 2.026122979922282e-02 2.026006255023894e-02 2.025889552388743e-02 + 2.025772872449768e-02 2.025656215399196e-02 2.025539580342713e-02 2.025422967119250e-02 2.025306375830951e-02 + 2.025189806183918e-02 2.025073258129647e-02 2.024956731656576e-02 2.024840226339874e-02 2.024723742127980e-02 + 2.024607279125879e-02 2.024490836776212e-02 2.024374415071052e-02 2.024258014353189e-02 2.024141633571028e-02 + 2.024025272656142e-02 2.023908932762591e-02 2.023792612793740e-02 2.023676312010299e-02 2.023560031179207e-02 + 2.023443769779265e-02 2.023327527310789e-02 2.023211304323675e-02 2.023095100708355e-02 2.022978916007167e-02 + 2.022862749919407e-02 2.022746602379288e-02 2.022630473371739e-02 2.022514362648272e-02 2.022398270121405e-02 + 2.022282195791762e-02 2.022166139402294e-02 2.022050100551405e-02 2.021934078921764e-02 2.021818074920451e-02 + 2.021702088593813e-02 2.021586119314628e-02 2.021470166428228e-02 2.021354230080554e-02 2.021238311308448e-02 + 2.021122409287018e-02 2.021006523025651e-02 2.020890652716039e-02 2.020774798484683e-02 2.020658960393083e-02 + 2.020543138529554e-02 2.020427332378045e-02 2.020311541298552e-02 2.020195765397637e-02 2.020080004744672e-02 + 2.019964259236717e-02 2.019848528642001e-02 2.019732812869024e-02 2.019617111926010e-02 2.019501425544548e-02 + 2.019385753379127e-02 2.019270095135025e-02 2.019154450793482e-02 2.019038820298517e-02 2.018923203417478e-02 + 2.018807600019563e-02 2.018692010151906e-02 2.018576433995726e-02 2.018460870891364e-02 2.018345320296787e-02 + 2.018229782843392e-02 2.018114258172615e-02 2.017998745649097e-02 2.017883245877245e-02 2.017767758620927e-02 + 2.017652283054322e-02 2.017536819223788e-02 2.017421367319040e-02 2.017305927292809e-02 2.017190498313902e-02 + 2.017075080461503e-02 2.016959674752286e-02 2.016844280049332e-02 2.016728895684716e-02 2.016613522539111e-02 + 2.016498159847723e-02 2.016382807033869e-02 2.016267465040216e-02 2.016152133310211e-02 2.016036811076429e-02 + 2.015921498985646e-02 2.015806197025070e-02 2.015690904702832e-02 2.015575621731957e-02 2.015460347791708e-02 + 2.015345082711757e-02 2.015229826996444e-02 2.015114580452791e-02 2.014999342256183e-02 2.014884112402139e-02 + 2.014768891079059e-02 2.014653678283008e-02 2.014538473229735e-02 2.014423275838842e-02 2.014308087159530e-02 + 2.014192906336537e-02 2.014077732405132e-02 2.013962565684693e-02 2.013847406112768e-02 2.013732253607323e-02 + 2.013617108558620e-02 2.013501970367529e-02 2.013386838304751e-02 2.013271713092954e-02 2.013156594450895e-02 + 2.013041481517404e-02 2.012926374836556e-02 2.012811274375330e-02 2.012696179396415e-02 2.012581089842930e-02 + 2.012466005832842e-02 2.012350927388322e-02 2.012235854139777e-02 2.012120785897021e-02 2.012005722808521e-02 + 2.011890664240422e-02 2.011775609861771e-02 2.011660560342765e-02 2.011545514995805e-02 2.011430473248947e-02 + 2.011315436328775e-02 2.011200403690588e-02 2.011085374071231e-02 2.010970347811273e-02 2.010855325123000e-02 + 2.010740305829795e-02 2.010625289543029e-02 2.010510276184403e-02 2.010395265874816e-02 2.010280258124321e-02 + 2.010165252783862e-02 2.010050250168409e-02 2.009935249835288e-02 2.009820251528310e-02 2.009705255512517e-02 + 2.009590261098061e-02 2.009475267797075e-02 2.009360276160796e-02 2.009245286068316e-02 2.009130297235736e-02 + 2.009015309860190e-02 2.008900323371492e-02 2.008785337125678e-02 2.008670351711407e-02 2.008555367122358e-02 + 2.008440382812401e-02 2.008325398588614e-02 2.008210414433437e-02 2.008095430334925e-02 2.007980445913736e-02 + 2.007865461009197e-02 2.007750475755383e-02 2.007635489836262e-02 2.007520502856765e-02 2.007405514609401e-02 + 2.007290525369839e-02 2.007175535352643e-02 2.007060544261636e-02 2.006945551378952e-02 2.006830556246986e-02 + 2.006715559358176e-02 2.006600560685722e-02 2.006485559907452e-02 2.006370557035152e-02 2.006255552017783e-02 + 2.006140544519211e-02 2.006025533608720e-02 2.005910519424486e-02 2.005795502866486e-02 2.005680483150780e-02 + 2.005565460068358e-02 2.005450434307724e-02 2.005335404752871e-02 2.005220370751987e-02 2.005105333078331e-02 + 2.004990291380246e-02 2.004875245256121e-02 2.004760195075808e-02 2.004645140541610e-02 2.004530081249103e-02 + 2.004415017386308e-02 2.004299948719255e-02 2.004184874893760e-02 2.004069796075558e-02 2.003954711861807e-02 + 2.003839621652469e-02 2.003724525928808e-02 2.003609424691447e-02 2.003494317431652e-02 2.003379204407136e-02 + 2.003264085311753e-02 2.003148959193977e-02 2.003033826577724e-02 2.002918687817827e-02 2.002803542325049e-02 + 2.002688389828578e-02 2.002573230084169e-02 2.002458062668545e-02 2.002342887779152e-02 2.002227705716231e-02 + 2.002112516254241e-02 2.001997318998642e-02 2.001882113644655e-02 2.001766900292078e-02 2.001651678857442e-02 + 2.001536448981540e-02 2.001421210083374e-02 2.001305962366636e-02 2.001190706486020e-02 2.001075441600587e-02 + 2.000960167234195e-02 2.000844883687991e-02 2.000729590520412e-02 2.000614287591466e-02 2.000498975435740e-02 + 2.000383653574291e-02 2.000268321490327e-02 2.000152979351511e-02 2.000037626872929e-02 1.999922263743778e-02 + 1.999806890154111e-02 1.999691505794393e-02 1.999576110265488e-02 1.999460703886217e-02 1.999345286480270e-02 + 1.999229857569377e-02 1.999114417297134e-02 1.998998965543275e-02 1.998883501902821e-02 1.998768026399775e-02 + 1.998652538946059e-02 1.998537039260291e-02 1.998421527483334e-02 1.998306003351848e-02 1.998190465988335e-02 + 1.998074915750420e-02 1.997959352937345e-02 1.997843776879367e-02 1.997728187765045e-02 1.997612585705249e-02 + 1.997496969649909e-02 1.997381339760593e-02 1.997265696528752e-02 1.997150039002939e-02 1.997034367059401e-02 + 1.996918681208352e-02 1.996802981226081e-02 1.996687266788810e-02 1.996571537594770e-02 1.996455793197006e-02 + 1.996340033608642e-02 1.996224259309599e-02 1.996108470119043e-02 1.995992665416334e-02 1.995876844505867e-02 + 1.995761008193637e-02 1.995645156786617e-02 1.995529288784624e-02 1.995413404457776e-02 1.995297504246996e-02 + 1.995181586885687e-02 1.995065652904149e-02 1.994949703248385e-02 1.994833736513130e-02 1.994717752162546e-02 + 1.994601750553184e-02 1.994485731663886e-02 1.994369695406686e-02 1.994253641736701e-02 1.994137570693218e-02 + 1.994021481716852e-02 1.993905373876526e-02 1.993789248152490e-02 1.993673104732284e-02 1.993556942048493e-02 + 1.993440760773439e-02 1.993324561433191e-02 1.993208342679873e-02 1.993092104568069e-02 1.992975847582151e-02 + 1.992859571315939e-02 1.992743275300710e-02 1.992626959353599e-02 1.992510623927749e-02 1.992394268911061e-02 + 1.992277893654564e-02 1.992161497535049e-02 1.992045080942924e-02 1.991928644769617e-02 1.991812187931771e-02 + 1.991695709651699e-02 1.991579210148713e-02 1.991462689658082e-02 1.991346148075462e-02 1.991229584907280e-02 + 1.991113000189043e-02 1.990996393932216e-02 1.990879765723607e-02 1.990763115454515e-02 1.990646443148474e-02 + 1.990529748687400e-02 1.990413031580006e-02 1.990296291532720e-02 1.990179529310021e-02 1.990062744303953e-02 + 1.989945935329500e-02 1.989829103342642e-02 1.989712248515872e-02 1.989595370004318e-02 1.989478467737964e-02 + 1.989361541884726e-02 1.989244592499573e-02 1.989127618925862e-02 1.989010620674421e-02 1.988893597834538e-02 + 1.988776550466197e-02 1.988659478703524e-02 1.988542382727661e-02 1.988425261506333e-02 1.988308114268849e-02 + 1.988190942098788e-02 1.988073745006194e-02 1.987956522359536e-02 1.987839274079954e-02 1.987722000000555e-02 + 1.987604699732070e-02 1.987487372670402e-02 1.987370019241589e-02 1.987252640362364e-02 1.987135234678179e-02 + 1.987017801708705e-02 1.986900342417090e-02 1.986782856130232e-02 1.986665342124566e-02 1.986547800516037e-02 + 1.986430231940191e-02 1.986312636323797e-02 1.986195012209680e-02 1.986077359858922e-02 1.985959679883774e-02 + 1.985841971608161e-02 1.985724235007767e-02 1.985606470192896e-02 1.985488676268764e-02 1.985370853173279e-02 + 1.985253001389235e-02 1.985135120589531e-02 1.985017210671596e-02 1.984899271721913e-02 1.984781303008921e-02 + 1.984663304141680e-02 1.984545275323681e-02 1.984427216416261e-02 1.984309127447186e-02 1.984191008724042e-02 + 1.984072859600846e-02 1.983954679442092e-02 1.983836468369445e-02 1.983718226650526e-02 1.983599954091759e-02 + 1.983481649574990e-02 1.983363313683907e-02 1.983244947316962e-02 1.983126549121019e-02 1.983008118452795e-02 + 1.982889655650101e-02 1.982771161407836e-02 1.982652635127155e-02 1.982534075477381e-02 1.982415483542671e-02 + 1.982296859699974e-02 1.982178202865004e-02 1.982059512679342e-02 1.981940789099672e-02 1.981822032140366e-02 + 1.981703241807743e-02 1.981584417989424e-02 1.981465560415464e-02 1.981346669171603e-02 1.981227744136961e-02 + 1.981108784415540e-02 1.980989790130036e-02 1.980870761757638e-02 1.980751698807925e-02 1.980632600934410e-02 + 1.980513468056937e-02 1.980394300171975e-02 1.980275097143216e-02 1.980155858653555e-02 1.980036584235624e-02 + 1.979917273943820e-02 1.979797928262491e-02 1.979678546489206e-02 1.979559128379798e-02 1.979439674657348e-02 + 1.979320184217468e-02 1.979200656369760e-02 1.979081092352834e-02 1.978961491694981e-02 1.978841853542797e-02 + 1.978722178317891e-02 1.978602465925507e-02 1.978482715855289e-02 1.978362927697639e-02 1.978243101628911e-02 + 1.978123238058121e-02 1.978003336668686e-02 1.977883396860304e-02 1.977763418131442e-02 1.977643400902304e-02 + 1.977523345232920e-02 1.977403250607500e-02 1.977283117205557e-02 1.977162944865208e-02 1.977042732702634e-02 + 1.976922480613855e-02 1.976802188997964e-02 1.976681858355301e-02 1.976561487769950e-02 1.976441076369096e-02 + 1.976320624890566e-02 1.976200133147697e-02 1.976079600616600e-02 1.975959027757971e-02 1.975838414138116e-02 + 1.975717758909272e-02 1.975597062600439e-02 1.975476325369590e-02 1.975355546738499e-02 1.975234726242962e-02 + 1.975113863825908e-02 1.974992959762522e-02 1.974872013640206e-02 1.974751025163228e-02 1.974629994489470e-02 + 1.974508921425132e-02 1.974387805573186e-02 1.974266646519683e-02 1.974145444319864e-02 1.974024199150465e-02 + 1.973902910920840e-02 1.973781579519036e-02 1.973660204598839e-02 1.973538785240977e-02 1.973417321684443e-02 + 1.973295814730416e-02 1.973174263781577e-02 1.973052668253849e-02 1.972931027913797e-02 1.972809342747564e-02 + 1.972687612827085e-02 1.972565838187941e-02 1.972444018482310e-02 1.972322153363352e-02 1.972200242687443e-02 + 1.972078286440720e-02 1.971956284541047e-02 1.971834236691286e-02 1.971712142485657e-02 1.971590001741145e-02 + 1.971467814826898e-02 1.971345581852119e-02 1.971223302479186e-02 1.971100975804211e-02 1.970978601823674e-02 + 1.970856181065497e-02 1.970733713228995e-02 1.970611197806177e-02 1.970488634450282e-02 1.970366023582840e-02 + 1.970243364879734e-02 1.970120657299705e-02 1.969997901837739e-02 1.969875098677333e-02 1.969752246217473e-02 + 1.969629345274012e-02 1.969506396226801e-02 1.969383397141272e-02 1.969260348756574e-02 1.969137252109090e-02 + 1.969014105730648e-02 1.968890909233832e-02 1.968767662961491e-02 1.968644366805134e-02 1.968521020635475e-02 + 1.968397624286150e-02 1.968274177331172e-02 1.968150679588088e-02 1.968027131148579e-02 1.967903532058098e-02 + 1.967779882218197e-02 1.967656181292412e-02 1.967532428489620e-02 1.967408623811289e-02 1.967284768294825e-02 + 1.967160860971293e-02 1.967036900987211e-02 1.966912889102269e-02 1.966788825153749e-02 1.966664708600774e-02 + 1.966540539310703e-02 1.966416317292449e-02 1.966292042476060e-02 1.966167714455673e-02 1.966043333167102e-02 + 1.965918898702837e-02 1.965794410650064e-02 1.965669868705162e-02 1.965545272765306e-02 1.965420622710374e-02 + 1.965295918609461e-02 1.965171160585919e-02 1.965046347855766e-02 1.964921480087875e-02 1.964796557872257e-02 + 1.964671580769246e-02 1.964546548231519e-02 1.964421460325605e-02 1.964296317129598e-02 1.964171118580111e-02 + 1.964045864365522e-02 1.963920554157133e-02 1.963795187629582e-02 1.963669764477085e-02 1.963544284945441e-02 + 1.963418749362842e-02 1.963293156932153e-02 1.963167507295046e-02 1.963041800662418e-02 1.962916036936736e-02 + 1.962790216073956e-02 1.962664338014056e-02 1.962538401760687e-02 1.962412407160046e-02 1.962286355381917e-02 + 1.962160245501161e-02 1.962034076606272e-02 1.961907849332115e-02 1.961781563715828e-02 1.961655219371613e-02 + 1.961528815879130e-02 1.961402353224150e-02 1.961275831461461e-02 1.961149250160691e-02 1.961022609250104e-02 + 1.960895908768241e-02 1.960769148013132e-02 1.960642326897369e-02 1.960515445887448e-02 1.960388504699325e-02 + 1.960261502901453e-02 1.960134440209794e-02 1.960007316755673e-02 1.959880132269796e-02 1.959752885956289e-02 + 1.959625578572781e-02 1.959498210471557e-02 1.959370780282661e-02 1.959243287776576e-02 1.959115733236078e-02 + 1.958988116575855e-02 1.958860437570835e-02 1.958732696070351e-02 1.958604892230215e-02 1.958477025538254e-02 + 1.958349095293616e-02 1.958221102005211e-02 1.958093045820349e-02 1.957964926225915e-02 1.957836742427244e-02 + 1.957708494595253e-02 1.957580183693370e-02 1.957451808573694e-02 1.957323368588814e-02 1.957194864588927e-02 + 1.957066295908808e-02 1.956937661864716e-02 1.956808962863577e-02 1.956680198857452e-02 1.956551369740821e-02 + 1.956422475810978e-02 1.956293516289206e-02 1.956164490198652e-02 1.956035397935251e-02 1.955906239928264e-02 + 1.955777016187055e-02 1.955647725858155e-02 1.955518368630142e-02 1.955388944730695e-02 1.955259453790914e-02 + 1.955129895574477e-02 1.955000270138056e-02 1.954870577278503e-02 1.954740816848287e-02 1.954610988870274e-02 + 1.954481093111385e-02 1.954351129226784e-02 1.954221096901902e-02 1.954090996078360e-02 1.953960826724446e-02 + 1.953830588603245e-02 1.953700281656794e-02 1.953569905855491e-02 1.953439460897686e-02 1.953308946443935e-02 + 1.953178362233442e-02 1.953047708245082e-02 1.952916984426731e-02 1.952786190592496e-02 1.952655326324738e-02 + 1.952524391408689e-02 1.952393385929222e-02 1.952262309949111e-02 1.952131163370209e-02 1.951999945844595e-02 + 1.951868656751035e-02 1.951737295829730e-02 1.951605863555755e-02 1.951474359789877e-02 1.951342784097203e-02 + 1.951211136184995e-02 1.951079415956861e-02 1.950947623396647e-02 1.950815758387342e-02 1.950683820574165e-02 + 1.950551809587482e-02 1.950419725560715e-02 1.950287568354725e-02 1.950155337574423e-02 1.950023033242808e-02 + 1.949890655251627e-02 1.949758203322258e-02 1.949625677745909e-02 1.949493078034667e-02 1.949360402739089e-02 + 1.949227653112452e-02 1.949094829757290e-02 1.948961930480046e-02 1.948828955781861e-02 1.948695906691206e-02 + 1.948562782150981e-02 1.948429581598615e-02 1.948296304982478e-02 1.948162952319633e-02 1.948029523591830e-02 + 1.947896018726217e-02 1.947762437581102e-02 1.947628779922486e-02 1.947495045397724e-02 1.947361233489661e-02 + 1.947227344348770e-02 1.947093378593678e-02 1.946959335022997e-02 1.946825212971076e-02 1.946691013283964e-02 + 1.946556736109183e-02 1.946422381089845e-02 1.946287947598024e-02 1.946153435147304e-02 1.946018843640089e-02 + 1.945884173551620e-02 1.945749424593349e-02 1.945614596164208e-02 1.945479688244431e-02 1.945344700980195e-02 + 1.945209634356683e-02 1.945074487666461e-02 1.944939260492236e-02 1.944803952905332e-02 1.944668565282712e-02 + 1.944533097303948e-02 1.944397548026850e-02 1.944261917903520e-02 1.944126207147254e-02 1.943990414971487e-02 + 1.943854540610747e-02 1.943718584222317e-02 1.943582547177293e-02 1.943446428245481e-02 1.943310226105812e-02 + 1.943173942068859e-02 1.943037575924362e-02 1.942901126749138e-02 1.942764594793762e-02 1.942627979717840e-02 + 1.942491280913776e-02 1.942354498868186e-02 1.942217633546996e-02 1.942080684436220e-02 1.941943651933332e-02 + 1.941806535493775e-02 1.941669333695301e-02 1.941532047644210e-02 1.941394677715704e-02 1.941257222315028e-02 + 1.941119681542690e-02 1.940982056035791e-02 1.940844345901757e-02 1.940706550055424e-02 1.940568667678698e-02 + 1.940430699663802e-02 1.940292645883611e-02 1.940154505765652e-02 1.940016279578962e-02 1.939877966977487e-02 + 1.939739567223053e-02 1.939601080219835e-02 1.939462506233509e-02 1.939323845462366e-02 1.939185096971125e-02 + 1.939046260516801e-02 1.938907336764642e-02 1.938768325184633e-02 1.938629225021856e-02 1.938490035911401e-02 + 1.938350758330235e-02 1.938211392651081e-02 1.938071938447496e-02 1.937932394922459e-02 1.937792761695239e-02 + 1.937653039473651e-02 1.937513227779157e-02 1.937373325789699e-02 1.937233333934693e-02 1.937093252080456e-02 + 1.936953079702195e-02 1.936812816928827e-02 1.936672463690015e-02 1.936532019607867e-02 1.936391484345597e-02 + 1.936250857586552e-02 1.936110139138094e-02 1.935969329410197e-02 1.935828428412852e-02 1.935687435366041e-02 + 1.935546349795341e-02 1.935405171682407e-02 1.935263901452006e-02 1.935122538845629e-02 1.934981083240821e-02 + 1.934839534117787e-02 1.934697891910190e-02 1.934556156924906e-02 1.934414327695751e-02 1.934272404361874e-02 + 1.934130387854031e-02 1.933988276959641e-02 1.933846071416343e-02 1.933703771882020e-02 1.933561377409585e-02 + 1.933418887831357e-02 1.933276303945045e-02 1.933133624375953e-02 1.932990848653697e-02 1.932847978247962e-02 + 1.932705012296452e-02 1.932561949662077e-02 1.932418790536504e-02 1.932275535526071e-02 1.932132184669807e-02 + 1.931988736608416e-02 1.931845191123332e-02 1.931701548648173e-02 1.931557809132799e-02 1.931413972218449e-02 + 1.931270037603072e-02 1.931126005688787e-02 1.930981875761609e-02 1.930837646527647e-02 1.930693319154590e-02 + 1.930548893938918e-02 1.930404369700001e-02 1.930259746628386e-02 1.930115024647330e-02 1.929970202824377e-02 + 1.929825281461415e-02 1.929680260792617e-02 1.929535140092010e-02 1.929389919235001e-02 1.929244598266550e-02 + 1.929099176842190e-02 1.928953654639375e-02 1.928808031414528e-02 1.928662307035359e-02 1.928516481711372e-02 + 1.928370555611205e-02 1.928224527966380e-02 1.928078398206115e-02 1.927932166173262e-02 1.927785831899656e-02 + 1.927639395364510e-02 1.927492856464996e-02 1.927346215243780e-02 1.927199471282116e-02 1.927052623652251e-02 + 1.926905672766994e-02 1.926758618873705e-02 1.926611461056382e-02 1.926464199150991e-02 1.926316833245443e-02 + 1.926169363057714e-02 1.926021788634381e-02 1.925874109903830e-02 1.925726325940621e-02 1.925578436860509e-02 + 1.925430443199749e-02 1.925282343948819e-02 1.925134138889128e-02 1.924985828498051e-02 1.924837411847957e-02 + 1.924688888599618e-02 1.924540259377309e-02 1.924391524090012e-02 1.924242682077230e-02 1.924093732460676e-02 + 1.923944675829762e-02 1.923795512510602e-02 1.923646241448938e-02 1.923496862521413e-02 1.923347375911634e-02 + 1.923197781292445e-02 1.923048078180134e-02 1.922898266296426e-02 1.922748346006174e-02 1.922598317069195e-02 + 1.922448178990142e-02 1.922297932164773e-02 1.922147575963824e-02 1.921997109174737e-02 1.921846532805457e-02 + 1.921695846861228e-02 1.921545049993734e-02 1.921394143207274e-02 1.921243126559395e-02 1.921091998083786e-02 + 1.920940758472120e-02 1.920789408374423e-02 1.920637946562360e-02 1.920486373146851e-02 1.920334688393281e-02 + 1.920182891329169e-02 1.920030981699324e-02 1.919878959725658e-02 1.919726825432456e-02 1.919574578635056e-02 + 1.919422218928470e-02 1.919269745661605e-02 1.919117158884151e-02 1.918964459045353e-02 1.918811645370936e-02 + 1.918658717454346e-02 1.918505675553962e-02 1.918352519296369e-02 1.918199248296462e-02 1.918045862469436e-02 + 1.917892361805418e-02 1.917738746182788e-02 1.917585015265352e-02 1.917431168820606e-02 1.917277206550804e-02 + 1.917123127946213e-02 1.916968933132487e-02 1.916814622316750e-02 1.916660194885779e-02 1.916505650873668e-02 + 1.916350990423480e-02 1.916196212155291e-02 1.916041316033273e-02 1.915886303062994e-02 1.915731172194125e-02 + 1.915575922930148e-02 1.915420555876758e-02 1.915265070860661e-02 1.915109467332810e-02 1.914953744666585e-02 + 1.914797902645569e-02 1.914641941412443e-02 1.914485861314037e-02 1.914329661713828e-02 1.914173341932142e-02 + 1.914016902223032e-02 1.913860342379879e-02 1.913703662029905e-02 1.913546861279183e-02 1.913389939805644e-02 + 1.913232897075573e-02 1.913075733118505e-02 1.912918447844714e-02 1.912761040908805e-02 1.912603511839811e-02 + 1.912445860715432e-02 1.912288088009771e-02 1.912130192853472e-02 1.911972174626816e-02 1.911814033569584e-02 + 1.911655769224527e-02 1.911497381452394e-02 1.911338870990516e-02 1.911180236957772e-02 1.911021478317005e-02 + 1.910862595492130e-02 1.910703588697045e-02 1.910544457683553e-02 1.910385201685182e-02 1.910225820527016e-02 + 1.910066314375077e-02 1.909906682830796e-02 1.909746925477876e-02 1.909587042200599e-02 1.909427033688354e-02 + 1.909266899402551e-02 1.909106637643193e-02 1.908946249114346e-02 1.908785734491775e-02 1.908625093213804e-02 + 1.908464324204344e-02 1.908303427175084e-02 1.908142403234494e-02 1.907981251534393e-02 1.907819971100440e-02 + 1.907658562789714e-02 1.907497026158614e-02 1.907335360333112e-02 1.907173565762024e-02 1.907011642370295e-02 + 1.906849589616872e-02 1.906687407274958e-02 1.906525095073851e-02 1.906362652703246e-02 1.906200080112851e-02 + 1.906037377260159e-02 1.905874543999789e-02 1.905711580005939e-02 1.905548484883143e-02 1.905385258297056e-02 + 1.905221900422594e-02 1.905058411108648e-02 1.904894789413228e-02 1.904731035325132e-02 1.904567149183364e-02 + 1.904403130952197e-02 1.904238980136186e-02 1.904074696113758e-02 1.903910278612417e-02 1.903745727544392e-02 + 1.903581042868199e-02 1.903416224385271e-02 1.903251272055347e-02 1.903086185871027e-02 1.902920965236104e-02 + 1.902755609551852e-02 1.902590118543579e-02 1.902424492713456e-02 1.902258731926820e-02 1.902092835050054e-02 + 1.901926802409253e-02 1.901760634215130e-02 1.901594329530476e-02 1.901427888303375e-02 1.901261310655987e-02 + 1.901094596056572e-02 1.900927744335199e-02 1.900760755425454e-02 1.900593628837979e-02 1.900426364429972e-02 + 1.900258962310978e-02 1.900091422355684e-02 1.899923743835855e-02 1.899755925950979e-02 1.899587969656637e-02 + 1.899419874741247e-02 1.899251639645128e-02 1.899083265299966e-02 1.898914752052511e-02 1.898746098477085e-02 + 1.898577304386013e-02 1.898408369969058e-02 1.898239295076986e-02 1.898070079269564e-02 1.897900722255288e-02 + 1.897731224261929e-02 1.897561584849886e-02 1.897391803334516e-02 1.897221879605241e-02 1.897051814026927e-02 + 1.896881606767167e-02 1.896711256470153e-02 1.896540762798833e-02 1.896370126437186e-02 1.896199347193909e-02 + 1.896028424413336e-02 1.895857357350164e-02 1.895686146124061e-02 1.895514791045918e-02 1.895343292131205e-02 + 1.895171648302300e-02 1.894999858923527e-02 1.894827924721451e-02 1.894655845419708e-02 1.894483620522033e-02 + 1.894311250187257e-02 1.894138733732357e-02 1.893966070463249e-02 1.893793261072514e-02 1.893620305335951e-02 + 1.893447202418282e-02 1.893273952309081e-02 1.893100555094376e-02 1.892927010627177e-02 1.892753318110494e-02 + 1.892579477108063e-02 1.892405487784487e-02 1.892231350329449e-02 1.892057064453369e-02 1.891882629307712e-02 + 1.891708044683251e-02 1.891533310610873e-02 1.891358427035544e-02 1.891183393696100e-02 1.891008210291091e-02 + 1.890832876617924e-02 1.890657392211156e-02 1.890481756749361e-02 1.890305970669826e-02 1.890130033664154e-02 + 1.889953944876527e-02 1.889777703845312e-02 1.889601310905792e-02 1.889424766560776e-02 1.889248069356991e-02 + 1.889071219005931e-02 1.888894216610460e-02 1.888717060771540e-02 1.888539750970531e-02 1.888362288621832e-02 + 1.888184672351093e-02 1.888006901097801e-02 1.887828976119468e-02 1.887650896887177e-02 1.887472662448569e-02 + 1.887294273026847e-02 1.887115728373587e-02 1.886937028132879e-02 1.886758172601296e-02 1.886579161241305e-02 + 1.886399993232671e-02 1.886220669095003e-02 1.886041188581822e-02 1.885861550746470e-02 1.885681755698847e-02 + 1.885501803485419e-02 1.885321693733238e-02 1.885141425906957e-02 1.884960999916156e-02 1.884780416185130e-02 + 1.884599674103886e-02 1.884418772927479e-02 1.884237712445391e-02 1.884056492700234e-02 1.883875113673901e-02 + 1.883693574995443e-02 1.883511876102816e-02 1.883330016667216e-02 1.883147997149076e-02 1.882965817385698e-02 + 1.882783476601560e-02 1.882600973926643e-02 1.882418309568715e-02 1.882235484340025e-02 1.882052497417560e-02 + 1.881869348031539e-02 1.881686035975185e-02 1.881502561164409e-02 1.881318923741505e-02 1.881135123913003e-02 + 1.880951160558249e-02 1.880767032900146e-02 1.880582741534564e-02 1.880398286136111e-02 1.880213666245483e-02 + 1.880028882149621e-02 1.879843933370182e-02 1.879658819228311e-02 1.879473539862031e-02 1.879288094991765e-02 + 1.879102484097325e-02 1.878916707209326e-02 1.878730764191372e-02 1.878544654683108e-02 1.878358378459472e-02 + 1.878171935183507e-02 1.877985324430765e-02 1.877798546179407e-02 1.877611600228067e-02 1.877424486050507e-02 + 1.877237203778229e-02 1.877049753324887e-02 1.876862133863330e-02 1.876674345293673e-02 1.876486387617420e-02 + 1.876298260257535e-02 1.876109963059111e-02 1.875921496034764e-02 1.875732858848502e-02 1.875544051216185e-02 + 1.875355072885378e-02 1.875165923449702e-02 1.874976602623304e-02 1.874787110336161e-02 1.874597446797304e-02 + 1.874407611425766e-02 1.874217603022874e-02 1.874027422146802e-02 1.873837068906284e-02 1.873646542198345e-02 + 1.873455842189881e-02 1.873264969164939e-02 1.873073922656172e-02 1.872882701964194e-02 1.872691306648714e-02 + 1.872499736923527e-02 1.872307992509612e-02 1.872116072949887e-02 1.871923978227258e-02 1.871731708186487e-02 + 1.871539262387551e-02 1.871346640021372e-02 1.871153841041527e-02 1.870960865979342e-02 1.870767714578883e-02 + 1.870574386089293e-02 1.870380879685916e-02 1.870187195798613e-02 1.869993334446320e-02 1.869799294696750e-02 + 1.869605076691687e-02 1.869410680376838e-02 1.869216104730458e-02 1.869021349836844e-02 1.868826416022470e-02 + 1.868631302853863e-02 1.868436009644664e-02 1.868240535897862e-02 1.868044881818047e-02 1.867849047172725e-02 + 1.867653031474529e-02 1.867456834731333e-02 1.867260456736053e-02 1.867063897034608e-02 1.866867155351236e-02 + 1.866670231459311e-02 1.866473125095620e-02 1.866275835809391e-02 1.866078363356833e-02 1.865880707775009e-02 + 1.865682868564128e-02 1.865484845476688e-02 1.865286638889887e-02 1.865088247751579e-02 1.864889671303901e-02 + 1.864690910747520e-02 1.864491965354244e-02 1.864292833855512e-02 1.864093516946379e-02 1.863894014384585e-02 + 1.863694325319922e-02 1.863494449952898e-02 1.863294388193027e-02 1.863094139526787e-02 1.862893703607748e-02 + 1.862693080034535e-02 1.862492268387857e-02 1.862291268732941e-02 1.862090081042848e-02 1.861888704957227e-02 + 1.861687140151818e-02 1.861485386231105e-02 1.861283442704270e-02 1.861081309610335e-02 1.860878986806025e-02 + 1.860676473338590e-02 1.860473769529663e-02 1.860270875778476e-02 1.860067790615180e-02 1.859864513789995e-02 + 1.859661045850656e-02 1.859457386260990e-02 1.859253534675110e-02 1.859049490946049e-02 1.858845254228221e-02 + 1.858640824383296e-02 1.858436201966219e-02 1.858231386031445e-02 1.858026376148910e-02 1.857821173011040e-02 + 1.857615775674864e-02 1.857410183289329e-02 1.857204396224591e-02 1.856998414158087e-02 1.856792236630606e-02 + 1.856585863699762e-02 1.856379295088432e-02 1.856172530348682e-02 1.855965569223371e-02 1.855758411493529e-02 + 1.855551056872843e-02 1.855343504862798e-02 1.855135755357239e-02 1.854927808391809e-02 1.854719662999937e-02 + 1.854511318947389e-02 1.854302776884543e-02 1.854094036342127e-02 1.853885096469986e-02 1.853675956540365e-02 + 1.853466616668727e-02 1.853257077183708e-02 1.853047338096206e-02 1.852837398473379e-02 1.852627257507170e-02 + 1.852416915520061e-02 1.852206372211816e-02 1.851995627104085e-02 1.851784680396669e-02 1.851573531468755e-02 + 1.851362179508880e-02 1.851150625260910e-02 1.850938868433302e-02 1.850726907790290e-02 1.850514743267316e-02 + 1.850302375022463e-02 1.850089802974987e-02 1.849877026321467e-02 1.849664044568886e-02 1.849450857919205e-02 + 1.849237466328984e-02 1.849023869225825e-02 1.848810065567833e-02 1.848596056072587e-02 1.848381841125062e-02 + 1.848167418759208e-02 1.847952788817062e-02 1.847737952020788e-02 1.847522908039946e-02 1.847307656165976e-02 + 1.847092195736722e-02 1.846876526733367e-02 1.846660649126623e-02 1.846444562782898e-02 1.846228267641075e-02 + 1.846011763022634e-02 1.845795047822359e-02 1.845578122357826e-02 1.845360986824314e-02 1.845143640646702e-02 + 1.844926083412144e-02 1.844708314829677e-02 1.844490334652741e-02 1.844272142526039e-02 1.844053738232335e-02 + 1.843835121884711e-02 1.843616292877729e-02 1.843397250473794e-02 1.843177994759022e-02 1.842958525561723e-02 + 1.842738842512387e-02 1.842518945510765e-02 1.842298833954339e-02 1.842078507029563e-02 1.841857965103055e-02 + 1.841637208298309e-02 1.841416236088061e-02 1.841195047731196e-02 1.840973642948215e-02 1.840752022011446e-02 + 1.840530184216091e-02 1.840308128892246e-02 1.840085856103635e-02 1.839863365911139e-02 1.839640658087383e-02 + 1.839417731924000e-02 1.839194587083986e-02 1.838971223370895e-02 1.838747640300020e-02 1.838523837692452e-02 + 1.838299815548432e-02 1.838075573582631e-02 1.837851111106092e-02 1.837626427462707e-02 1.837401523350234e-02 + 1.837176398539980e-02 1.836951051641877e-02 1.836725482529124e-02 1.836499691387402e-02 1.836273678151691e-02 + 1.836047442118306e-02 1.835820982858270e-02 1.835594300692513e-02 1.835367394977665e-02 1.835140264983480e-02 + 1.834912910825698e-02 1.834685332362546e-02 1.834457529066184e-02 1.834229500068380e-02 1.834001245612868e-02 + 1.833772766191195e-02 1.833544060380268e-02 1.833315127769170e-02 1.833085968975407e-02 1.832856583633842e-02 + 1.832626971106521e-02 1.832397130817964e-02 1.832167062581619e-02 1.831936766045366e-02 1.831706240632338e-02 + 1.831475486820015e-02 1.831244504576387e-02 1.831013292472488e-02 1.830781850356614e-02 1.830550178468002e-02 + 1.830318276421879e-02 1.830086143845657e-02 1.829853780375753e-02 1.829621185558813e-02 1.829388359300937e-02 + 1.829155301569956e-02 1.828922011662799e-02 1.828688489153528e-02 1.828454733892483e-02 1.828220745351499e-02 + 1.827986523367206e-02 1.827752068069898e-02 1.827517378500067e-02 1.827282454323407e-02 1.827047296291425e-02 + 1.826811903643735e-02 1.826576275326505e-02 1.826340410954280e-02 1.826104310998728e-02 1.825867975496676e-02 + 1.825631402943589e-02 1.825394593365713e-02 1.825157547349511e-02 1.824920264235266e-02 1.824682743095013e-02 + 1.824444983334214e-02 1.824206985531418e-02 1.823968749396920e-02 1.823730273947125e-02 1.823491559405069e-02 + 1.823252605635143e-02 1.823013411851380e-02 1.822773977727079e-02 1.822534302885856e-02 1.822294386817581e-02 + 1.822054229933361e-02 1.821813832218229e-02 1.821573192447362e-02 1.821332310276354e-02 1.821091185568656e-02 + 1.820849817689734e-02 1.820608206836350e-02 1.820366353310689e-02 1.820124256311412e-02 1.819881915016099e-02 + 1.819639328969794e-02 1.819396498477247e-02 1.819153423068764e-02 1.818910101812068e-02 1.818666535246774e-02 + 1.818422723286477e-02 1.818178664914423e-02 1.817934360000525e-02 1.817689808189780e-02 1.817445008627356e-02 + 1.817199961756547e-02 1.816954667558178e-02 1.816709124568389e-02 1.816463332917677e-02 1.816217292950077e-02 + 1.815971003769815e-02 1.815724465123547e-02 1.815477676809149e-02 1.815230637650250e-02 1.814983348051392e-02 + 1.814735808823705e-02 1.814488018072306e-02 1.814239975267995e-02 1.813991681262074e-02 1.813743135508509e-02 + 1.813494337086823e-02 1.813245285281114e-02 1.812995980445686e-02 1.812746422731492e-02 1.812496611573551e-02 + 1.812246546481565e-02 1.811996226848969e-02 1.811745651920204e-02 1.811494821957559e-02 1.811243737133842e-02 + 1.810992396481434e-02 1.810740799805441e-02 1.810488947142559e-02 1.810236837745802e-02 1.809984471224923e-02 + 1.809731847419077e-02 1.809478965788605e-02 1.809225826197647e-02 1.808972428730369e-02 1.808718772623545e-02 + 1.808464857219165e-02 1.808210682315950e-02 1.807956248210254e-02 1.807701554512131e-02 1.807446599893149e-02 + 1.807191384222250e-02 1.806935907649996e-02 1.806680169977935e-02 1.806424171112906e-02 1.806167910639137e-02 + 1.805911387430984e-02 1.805654601234490e-02 1.805397552118165e-02 1.805140239539148e-02 1.804882663464111e-02 + 1.804624823872755e-02 1.804366719439020e-02 1.804108350087335e-02 1.803849716547347e-02 1.803590817366155e-02 + 1.803331652090480e-02 1.803072221546651e-02 1.802812524400898e-02 1.802552559998909e-02 1.802292329257977e-02 + 1.802031831251088e-02 1.801771065083283e-02 1.801510031065072e-02 1.801248728509480e-02 1.800987156794499e-02 + 1.800725316456288e-02 1.800463207196059e-02 1.800200828229563e-02 1.799938179038418e-02 1.799675259135415e-02 + 1.799412068157979e-02 1.799148606152016e-02 1.798884872978088e-02 1.798620868169797e-02 1.798356590941466e-02 + 1.798092041139825e-02 1.797827219073602e-02 1.797562123473000e-02 1.797296753674024e-02 1.797031110360818e-02 + 1.796765193280976e-02 1.796499001786419e-02 1.796232535287627e-02 1.795965793501132e-02 1.795698776183851e-02 + 1.795431482887613e-02 1.795163913285315e-02 1.794896067070983e-02 1.794627943785036e-02 1.794359543174794e-02 + 1.794090865000600e-02 1.793821908548673e-02 1.793552673496832e-02 1.793283159877326e-02 1.793013367385930e-02 + 1.792743295577707e-02 1.792472944026945e-02 1.792202312682011e-02 1.791931400976357e-02 1.791660207728341e-02 + 1.791388733234035e-02 1.791116977642004e-02 1.790844939977351e-02 1.790572620127331e-02 1.790300018053203e-02 + 1.790027132960331e-02 1.789753964610457e-02 1.789480512776976e-02 1.789206776371137e-02 1.788932755546883e-02 + 1.788658450796398e-02 1.788383860557862e-02 1.788108984645815e-02 1.787833823870088e-02 1.787558376650758e-02 + 1.787282642238153e-02 1.787006621288861e-02 1.786730313584615e-02 1.786453718506033e-02 1.786176835331611e-02 + 1.785899663566110e-02 1.785622203220682e-02 1.785344454733639e-02 1.785066416506327e-02 1.784788087479271e-02 + 1.784509469481547e-02 1.784230561688990e-02 1.783951362363962e-02 1.783671871969004e-02 1.783392090351773e-02 + 1.783112016693977e-02 1.782831650359620e-02 1.782550991644932e-02 1.782270041052123e-02 1.781988796773664e-02 + 1.781707258188517e-02 1.781425426228424e-02 1.781143299909701e-02 1.780860878344276e-02 1.780578161636334e-02 + 1.780295150019453e-02 1.780011843142990e-02 1.779728239750767e-02 1.779444339320670e-02 1.779160141853593e-02 + 1.778875647528820e-02 1.778590855799184e-02 1.778305765851556e-02 1.778020377358821e-02 1.777734690358035e-02 + 1.777448704738365e-02 1.777162419310320e-02 1.776875833746895e-02 1.776588948369731e-02 1.776301762263940e-02 + 1.776014274927566e-02 1.775726486578331e-02 1.775438397030816e-02 1.775150005486545e-02 1.774861310790110e-02 + 1.774572313526677e-02 1.774283013776283e-02 1.773993409898065e-02 1.773703502220879e-02 1.773413291089222e-02 + 1.773122774923129e-02 1.772831953604024e-02 1.772540827370780e-02 1.772249394894422e-02 1.771957656009896e-02 + 1.771665611194296e-02 1.771373259698992e-02 1.771080600888477e-02 1.770787634473108e-02 1.770494360249459e-02 + 1.770200777818149e-02 1.769906886558849e-02 1.769612685929023e-02 1.769318175770428e-02 1.769023356261796e-02 + 1.768728226707501e-02 1.768432786370409e-02 1.768137035050212e-02 1.767840972761326e-02 1.767544598996190e-02 + 1.767247912224100e-02 1.766950912887429e-02 1.766653601772543e-02 1.766355977437013e-02 1.766058039164660e-02 + 1.765759786981226e-02 1.765461220736955e-02 1.765162339764906e-02 1.764863143247870e-02 1.764563631444012e-02 + 1.764263804044564e-02 1.763963660052613e-02 1.763663199590508e-02 1.763362422648862e-02 1.763061328532627e-02 + 1.762759916389677e-02 1.762458185742205e-02 1.762156136756127e-02 1.761853769290762e-02 1.761551082691653e-02 + 1.761248075761478e-02 1.760944748669641e-02 1.760641101894919e-02 1.760337134551661e-02 1.760032845807722e-02 + 1.759728235211478e-02 1.759423302856655e-02 1.759118048266074e-02 1.758812470690578e-02 1.758506570645847e-02 + 1.758200347417691e-02 1.757893799151254e-02 1.757586926700291e-02 1.757279730534286e-02 1.756972209521438e-02 + 1.756664362962799e-02 1.756356190543487e-02 1.756047692143249e-02 1.755738866974527e-02 1.755429714394244e-02 + 1.755120234663686e-02 1.754810427470094e-02 1.754500292288027e-02 1.754189829041229e-02 1.753879037098419e-02 + 1.753567915477636e-02 1.753256463576890e-02 1.752944681640228e-02 1.752632570156945e-02 1.752320127895599e-02 + 1.752007354011609e-02 1.751694248500407e-02 1.751380811099548e-02 1.751067041466748e-02 1.750752939229762e-02 + 1.750438503712632e-02 1.750123734468025e-02 1.749808631552286e-02 1.749493194526630e-02 1.749177422703599e-02 + 1.748861315463852e-02 1.748544872591071e-02 1.748228094036503e-02 1.747910979560325e-02 1.747593528635296e-02 + 1.747275740493088e-02 1.746957614261004e-02 1.746639150171011e-02 1.746320348827029e-02 1.746001208402579e-02 + 1.745681728232032e-02 1.745361909228664e-02 1.745041750587895e-02 1.744721251527593e-02 1.744400411995098e-02 + 1.744079231626219e-02 1.743757709612158e-02 1.743435844889677e-02 1.743113638300998e-02 1.742791090294012e-02 + 1.742468198827393e-02 1.742144963687445e-02 1.741821385208018e-02 1.741497462017237e-02 1.741173194001650e-02 + 1.740848581625378e-02 1.740523623716524e-02 1.740198319673262e-02 1.739872669626729e-02 1.739546673433575e-02 + 1.739220330474240e-02 1.738893639777237e-02 1.738566600801745e-02 1.738239213410604e-02 1.737911477739739e-02 + 1.737583393441487e-02 1.737254959973500e-02 1.736926176792087e-02 1.736597043319887e-02 1.736267559029083e-02 + 1.735937723525189e-02 1.735607536431420e-02 1.735276997535949e-02 1.734946106967137e-02 1.734614863942214e-02 + 1.734283267462293e-02 1.733951317984790e-02 1.733619014933173e-02 1.733286356952035e-02 1.732953344236944e-02 + 1.732619976822115e-02 1.732286254123125e-02 1.731952175476255e-02 1.731617740506982e-02 1.731282949118149e-02 + 1.730947800429541e-02 1.730612293897103e-02 1.730276429900506e-02 1.729940207772190e-02 1.729603626710180e-02 + 1.729266686687025e-02 1.728929387127552e-02 1.728591727431661e-02 1.728253707811547e-02 1.727915327486350e-02 + 1.727576585445017e-02 1.727237482415143e-02 1.726898017713387e-02 1.726558189725253e-02 1.726217999255776e-02 + 1.725877446141184e-02 1.725536528836806e-02 1.725195247427305e-02 1.724853602088567e-02 1.724511592318061e-02 + 1.724169217016580e-02 1.723826475637563e-02 1.723483368674653e-02 1.723139894995541e-02 1.722796053633534e-02 + 1.722451845482723e-02 1.722107270070567e-02 1.721762326419149e-02 1.721417014587169e-02 1.721071333868621e-02 + 1.720725283251134e-02 1.720378862838028e-02 1.720032072298445e-02 1.719684910908383e-02 1.719337378669194e-02 + 1.718989475327181e-02 1.718641200187306e-02 1.718292552719872e-02 1.717943532374793e-02 1.717594138625576e-02 + 1.717244371734551e-02 1.716894231509765e-02 1.716543716617480e-02 1.716192826455456e-02 1.715841561099909e-02 + 1.715489920993168e-02 1.715137904713604e-02 1.714785510917266e-02 1.714432741097788e-02 1.714079594608009e-02 + 1.713726069602739e-02 1.713372166332687e-02 1.713017885016558e-02 1.712663225240283e-02 1.712308185705881e-02 + 1.711952765873538e-02 1.711596966109396e-02 1.711240786053498e-02 1.710884225051524e-02 1.710527282476134e-02 + 1.710169958307061e-02 1.709812252022495e-02 1.709454162136748e-02 1.709095688985418e-02 1.708736832996113e-02 + 1.708377593024533e-02 1.708017968752960e-02 1.707657960032946e-02 1.707297565703870e-02 1.706936785401023e-02 + 1.706575619189593e-02 1.706214066346443e-02 1.705852126552140e-02 1.705489799818787e-02 1.705127085519305e-02 + 1.704763983091843e-02 1.704400492089210e-02 1.704036611449886e-02 1.703672340943711e-02 1.703307681394708e-02 + 1.702942631772786e-02 1.702577190966809e-02 1.702211358937508e-02 1.701845135582294e-02 1.701478520463906e-02 + 1.701111512687454e-02 1.700744111902223e-02 1.700376317991698e-02 1.700008130526762e-02 1.699639548886451e-02 + 1.699270572517141e-02 1.698901201362202e-02 1.698531434790372e-02 1.698161271901581e-02 1.697790713038581e-02 + 1.697419757947398e-02 1.697048405591379e-02 1.696676655885514e-02 1.696304508413142e-02 1.695931962055792e-02 + 1.695559016575875e-02 1.695185672007940e-02 1.694811928170539e-02 1.694437784303563e-02 1.694063239701608e-02 + 1.693688294268234e-02 1.693312947555357e-02 1.692937198914621e-02 1.692561047849961e-02 1.692184494218333e-02 + 1.691807537819241e-02 1.691430177590003e-02 1.691052413380094e-02 1.690674245501956e-02 1.690295672392027e-02 + 1.689916693403359e-02 1.689537309141036e-02 1.689157519031890e-02 1.688777322481082e-02 1.688396719247375e-02 + 1.688015708323470e-02 1.687634289028026e-02 1.687252461641300e-02 1.686870225976892e-02 1.686487581335405e-02 + 1.686104526641643e-02 1.685721061978611e-02 1.685337187596560e-02 1.684952902423863e-02 1.684568205626177e-02 + 1.684183096806695e-02 1.683797575916921e-02 1.683411642637722e-02 1.683025296370582e-02 1.682638536598722e-02 + 1.682251363071521e-02 1.681863775630957e-02 1.681475773295268e-02 1.681087355358095e-02 1.680698521822956e-02 + 1.680309272743823e-02 1.679919607564722e-02 1.679529524908240e-02 1.679139024683375e-02 1.678748107079098e-02 + 1.678356771499038e-02 1.677965016895157e-02 1.677572842703558e-02 1.677180249929987e-02 1.676787237703614e-02 + 1.676393804299063e-02 1.675999950051788e-02 1.675605674951069e-02 1.675210978219402e-02 1.674815858725950e-02 + 1.674420316518524e-02 1.674024352454331e-02 1.673627964747038e-02 1.673231152527195e-02 1.672833916857912e-02 + 1.672436256552257e-02 1.672038170373856e-02 1.671639658470834e-02 1.671240720840105e-02 1.670841357063555e-02 + 1.670441566220705e-02 1.670041347959014e-02 1.669640702110204e-02 1.669239628051189e-02 1.668838125191250e-02 + 1.668436193143650e-02 1.668033831890629e-02 1.667631040878886e-02 1.667227819212758e-02 1.666824166734860e-02 + 1.666420083129591e-02 1.666015567735254e-02 1.665610620005455e-02 1.665205239678242e-02 1.664799426695549e-02 + 1.664393180284348e-02 1.663986499713315e-02 1.663579384792829e-02 1.663171835503466e-02 1.662763851356003e-02 + 1.662355430939835e-02 1.661946574092143e-02 1.661537281150426e-02 1.661127551677910e-02 1.660717384720702e-02 + 1.660306779425839e-02 1.659895736095696e-02 1.659484254425630e-02 1.659072333444665e-02 1.658659972465595e-02 + 1.658247171530552e-02 1.657833931027815e-02 1.657420249617699e-02 1.657006126301349e-02 1.656591561144095e-02 + 1.656176553662080e-02 1.655761103381663e-02 1.655345210211223e-02 1.654928873901935e-02 1.654512093811135e-02 + 1.654094868807454e-02 1.653677198858015e-02 1.653259084096055e-02 1.652840523447503e-02 1.652421516561530e-02 + 1.652002063436291e-02 1.651582163151349e-02 1.651161815099949e-02 1.650741019156900e-02 1.650319775344297e-02 + 1.649898082810461e-02 1.649475940168675e-02 1.649053348141889e-02 1.648630306850305e-02 1.648206814836095e-02 + 1.647782871114676e-02 1.647358475732917e-02 1.646933629656457e-02 1.646508330893651e-02 1.646082578033714e-02 + 1.645656373337251e-02 1.645229715576629e-02 1.644802602626009e-02 1.644375035674409e-02 1.643947014097659e-02 + 1.643518536281393e-02 1.643089602671802e-02 1.642660213310334e-02 1.642230367492405e-02 1.641800064388943e-02 + 1.641369303446324e-02 1.640938084474308e-02 1.640506407467653e-02 1.640074271742540e-02 1.639641675907646e-02 + 1.639208620097271e-02 1.638775104513307e-02 1.638341128505268e-02 1.637906691499287e-02 1.637471792980197e-02 + 1.637036432400064e-02 1.636600609175647e-02 1.636164322915392e-02 1.635727573684415e-02 1.635290360792794e-02 + 1.634852683359730e-02 1.634414541697593e-02 1.633975935494602e-02 1.633536863669590e-02 1.633097325119221e-02 + 1.632657319870386e-02 1.632216848742881e-02 1.631775910539292e-02 1.631334504210032e-02 1.630892629731235e-02 + 1.630450287107613e-02 1.630007475715268e-02 1.629564194133085e-02 1.629120442381021e-02 1.628676220752001e-02 + 1.628231528645751e-02 1.627786365361661e-02 1.627340730437480e-02 1.626894623909321e-02 1.626448044809207e-02 + 1.626000991935131e-02 1.625553465710418e-02 1.625105466086324e-02 1.624656992364918e-02 1.624208044008659e-02 + 1.623758620493278e-02 1.623308721259990e-02 1.622858345750622e-02 1.622407493651434e-02 1.621956164908100e-02 + 1.621504359102545e-02 1.621052075671857e-02 1.620599314061202e-02 1.620146073758967e-02 1.619692354185834e-02 + 1.619238154678624e-02 1.618783475477294e-02 1.618328316706134e-02 1.617872676957040e-02 1.617416555535298e-02 + 1.616959952441603e-02 1.616502867670949e-02 1.616045300241566e-02 1.615587248863419e-02 1.615128714307292e-02 + 1.614669696726644e-02 1.614210195036420e-02 1.613750207990814e-02 1.613289735436475e-02 1.612828778261194e-02 + 1.612367334765880e-02 1.611905403879705e-02 1.611442986870223e-02 1.610980082722066e-02 1.610516690212456e-02 + 1.610052809916244e-02 1.609588441136000e-02 1.609123582829610e-02 1.608658235171540e-02 1.608192397521171e-02 + 1.607726068992654e-02 1.607259250083978e-02 1.606791940362701e-02 1.606324138657220e-02 1.605855844962495e-02 + 1.605387058768025e-02 1.604917779011535e-02 1.604448006054786e-02 1.603977739874237e-02 1.603506979420087e-02 + 1.603035723984084e-02 1.602563973257448e-02 1.602091727188371e-02 1.601618984720332e-02 1.601145745295015e-02 + 1.600672010067149e-02 1.600197777942985e-02 1.599723047266619e-02 1.599247818462375e-02 1.598772091449355e-02 + 1.598295865408641e-02 1.597819139147786e-02 1.597341912912636e-02 1.596864187530068e-02 1.596385961058315e-02 + 1.595907232771693e-02 1.595428003613896e-02 1.594948272828454e-02 1.594468039178993e-02 1.593987301780130e-02 + 1.593506061365002e-02 1.593024318102167e-02 1.592542070422077e-02 1.592059317798925e-02 1.591576060279083e-02 + 1.591092297799217e-02 1.590608029141302e-02 1.590123253274349e-02 1.589637971157846e-02 1.589152182656434e-02 + 1.588665886609507e-02 1.588179081847464e-02 1.587691768450550e-02 1.587203947045915e-02 1.586715616213467e-02 + 1.586226775168990e-02 1.585737424168921e-02 1.585247562649581e-02 1.584757190117160e-02 1.584266306445842e-02 + 1.583774911091078e-02 1.583283003450806e-02 1.582790583090947e-02 1.582297649499978e-02 1.581804202355953e-02 + 1.581310241701619e-02 1.580815766650671e-02 1.580320776320766e-02 1.579825271139450e-02 1.579329250537274e-02 + 1.578832713506978e-02 1.578335660262603e-02 1.577838090296324e-02 1.577340002574811e-02 1.576841397243399e-02 + 1.576342274326813e-02 1.575842633194578e-02 1.575342472205075e-02 1.574841791148685e-02 1.574340591569888e-02 + 1.573838872006093e-02 1.573336631006632e-02 1.572833869008299e-02 1.572330586230670e-02 1.571826781924578e-02 + 1.571322454052314e-02 1.570817603062760e-02 1.570312230059812e-02 1.569806333998715e-02 1.569299913693516e-02 + 1.568792968457186e-02 1.568285498663007e-02 1.567777503779379e-02 1.567268982728102e-02 1.566759935997030e-02 + 1.566250363482262e-02 1.565740264102256e-02 1.565229637077196e-02 1.564718482295817e-02 1.564206800099241e-02 + 1.563694589151567e-02 1.563181848599405e-02 1.562668579194260e-02 1.562154780177149e-02 1.561640450642917e-02 + 1.561125590888111e-02 1.560610200797837e-02 1.560094279515962e-02 1.559577825343192e-02 1.559060838842812e-02 + 1.558543321151646e-02 1.558025270088283e-02 1.557506685188879e-02 1.556987567405825e-02 1.556467915294808e-02 + 1.555947727806998e-02 1.555427005014520e-02 1.554905747326830e-02 1.554383954557267e-02 1.553861625685508e-02 + 1.553338760005679e-02 1.552815357203842e-02 1.552291417232042e-02 1.551766939022104e-02 1.551241921985975e-02 + 1.550716367246923e-02 1.550190274051892e-02 1.549663640983429e-02 1.549136467943576e-02 1.548608754911306e-02 + 1.548080501516420e-02 1.547551706650131e-02 1.547022370107663e-02 1.546492492363977e-02 1.545962073006300e-02 + 1.545431111106912e-02 1.544899605692932e-02 1.544367557060635e-02 1.543834964941066e-02 1.543301828099291e-02 + 1.542768146907574e-02 1.542233921474585e-02 1.541699150599057e-02 1.541163833967913e-02 1.540627971422265e-02 + 1.540091562222576e-02 1.539554606062004e-02 1.539017102808156e-02 1.538479052048013e-02 1.537940453376258e-02 + 1.537401306270197e-02 1.536861609811398e-02 1.536321364249661e-02 1.535780570199338e-02 1.535239225620149e-02 + 1.534697329939463e-02 1.534154884369051e-02 1.533611887960563e-02 1.533068339829330e-02 1.532524239983298e-02 + 1.531979587995433e-02 1.531434383110085e-02 1.530888624554550e-02 1.530342313142362e-02 1.529795449144603e-02 + 1.529248030485156e-02 1.528700056732233e-02 1.528151528324413e-02 1.527602445059826e-02 1.527052806021316e-02 + 1.526502610370102e-02 1.525951858764995e-02 1.525400550804322e-02 1.524848685322667e-02 1.524296262660809e-02 + 1.523743282528689e-02 1.523189743753784e-02 1.522635646012132e-02 1.522080989370855e-02 1.521525773883866e-02 + 1.520969998584297e-02 1.520413662809972e-02 1.519856766896251e-02 1.519299310438481e-02 1.518741292689401e-02 + 1.518182713051541e-02 1.517623571498702e-02 1.517063867977171e-02 1.516503601659771e-02 1.515942772580205e-02 + 1.515381380882217e-02 1.514819425008754e-02 1.514256904339338e-02 1.513693819284546e-02 1.513130169987854e-02 + 1.512565955837021e-02 1.512001175774349e-02 1.511435830052952e-02 1.510869918485496e-02 1.510303439909880e-02 + 1.509736393861015e-02 1.509168780464220e-02 1.508600600178219e-02 1.508031852355242e-02 1.507462535986425e-02 + 1.506892650464710e-02 1.506322195838325e-02 1.505751172137055e-02 1.505179578553525e-02 1.504607414992266e-02 + 1.504034681527993e-02 1.503461377008154e-02 1.502887501067205e-02 1.502313053999477e-02 1.501738035243006e-02 + 1.501162444030474e-02 1.500586279803602e-02 1.500009542963074e-02 1.499432233574762e-02 1.498854350912934e-02 + 1.498275894315130e-02 1.497696863387312e-02 1.497117258012378e-02 1.496537077480856e-02 1.495956321394884e-02 + 1.495374990400090e-02 1.494793083920974e-02 1.494210600904758e-02 1.493627541059610e-02 1.493043904648383e-02 + 1.492459691659297e-02 1.491874900408085e-02 1.491289530722370e-02 1.490703583623931e-02 1.490117058646935e-02 + 1.489529954725381e-02 1.488942270892006e-02 1.488354007804980e-02 1.487765165385858e-02 1.487175742273507e-02 + 1.486585738883519e-02 1.485995155398175e-02 1.485403990610964e-02 1.484812243988829e-02 1.484219915557141e-02 + 1.483627005584607e-02 1.483033513203473e-02 1.482439437542072e-02 1.481844779264578e-02 1.481249538141862e-02 + 1.480653713381494e-02 1.480057304868135e-02 1.479460312202780e-02 1.478862734716873e-02 1.478264572087699e-02 + 1.477665824308106e-02 1.477066491441443e-02 1.476466572742758e-02 1.475866067903805e-02 1.475264977269339e-02 + 1.474663299844858e-02 1.474061034872640e-02 1.473458182710518e-02 1.472854743115566e-02 1.472250715651883e-02 + 1.471646100132783e-02 1.471040896256117e-02 1.470435103749897e-02 1.469828722554372e-02 1.469221751827344e-02 + 1.468614190646898e-02 1.468006039547928e-02 1.467397298615093e-02 1.466787967378610e-02 1.466178045636883e-02 + 1.465567533041493e-02 1.464956428982840e-02 1.464344732703370e-02 1.463732444018100e-02 1.463119563426315e-02 + 1.462506090797482e-02 1.461892025637629e-02 1.461277367320199e-02 1.460662115516677e-02 1.460046270026797e-02 + 1.459429830605704e-02 1.458812796887011e-02 1.458195168595082e-02 1.457576945823491e-02 1.456958128559711e-02 + 1.456338716422361e-02 1.455718708308891e-02 1.455098103823577e-02 1.454476903226018e-02 1.453855106504101e-02 + 1.453232713525658e-02 1.452609724028033e-02 1.451986137384772e-02 1.451361953112174e-02 1.450737171027855e-02 + 1.450111790831084e-02 1.449485812287890e-02 1.448859235383744e-02 1.448232060352556e-02 1.447604287018101e-02 + 1.446975914267516e-02 1.446346941597466e-02 1.445717368938523e-02 1.445087196279080e-02 1.444456423724572e-02 + 1.443825051237331e-02 1.443193078136921e-02 1.442560503975330e-02 1.441927328581930e-02 1.441293551683267e-02 + 1.440659172970616e-02 1.440024192165075e-02 1.439388609177658e-02 1.438752424156573e-02 1.438115637277796e-02 + 1.437478247503487e-02 1.436840254149195e-02 1.436201657648160e-02 1.435562457263202e-02 1.434922652522855e-02 + 1.434282244486077e-02 1.433641232984850e-02 1.432999617114929e-02 1.432357396196595e-02 1.431714570255755e-02 + 1.431071139387867e-02 1.430427102559402e-02 1.429782460021014e-02 1.429137212732056e-02 1.428491359501307e-02 + 1.427844899676062e-02 1.427197833606156e-02 1.426550161130239e-02 1.425901881685885e-02 1.425252994564961e-02 + 1.424603499980085e-02 1.423953398385027e-02 1.423302689906778e-02 1.422651373475527e-02 1.421999448399202e-02 + 1.421346915585374e-02 1.420693774198730e-02 1.420040023237321e-02 1.419385663850131e-02 1.418730696003290e-02 + 1.418075118751426e-02 1.417418931634679e-02 1.416762135086922e-02 1.416104729584521e-02 1.415446713263836e-02 + 1.414788085973522e-02 1.414128849363525e-02 1.413469002361970e-02 1.412808544052846e-02 1.412147474772301e-02 + 1.411485794712882e-02 1.410823503604182e-02 1.410160600672222e-02 1.409497085818714e-02 1.408832959214252e-02 + 1.408168220875668e-02 1.407502870564407e-02 1.406836907961611e-02 1.406170332864153e-02 1.405503144837146e-02 + 1.404835343608425e-02 1.404166929852345e-02 1.403497903248639e-02 1.402828262916828e-02 1.402158009603205e-02 + 1.401487143048169e-02 1.400815661918214e-02 1.400143566703935e-02 1.399470857625501e-02 1.398797534046779e-02 + 1.398123596549795e-02 1.397449045134991e-02 1.396773878380821e-02 1.396098096640959e-02 1.395421700271061e-02 + 1.394744688102961e-02 1.394067060648909e-02 1.393388818692338e-02 1.392709961198955e-02 1.392030488001634e-02 + 1.391350399327543e-02 1.390669694254475e-02 1.389988372719557e-02 1.389306435287330e-02 1.388623881438261e-02 + 1.387940711188756e-02 1.387256925103053e-02 1.386572522405790e-02 1.385887502683316e-02 1.385201866296698e-02 + 1.384515612379329e-02 1.383828740611332e-02 1.383141252098464e-02 1.382453146615934e-02 1.381764423695148e-02 + 1.381075083621117e-02 1.380385125926009e-02 1.379694549932224e-02 1.379003355634722e-02 1.378311543405784e-02 + 1.377619113577579e-02 1.376926065784134e-02 1.376232399626086e-02 1.375538114862362e-02 1.374843211529037e-02 + 1.374147689626999e-02 1.373451549097131e-02 1.372754790081035e-02 1.372057412482435e-02 1.371359415880417e-02 + 1.370660800191563e-02 1.369961565562416e-02 1.369261712158748e-02 1.368561239160383e-02 1.367860146147292e-02 + 1.367158434223160e-02 1.366456103295884e-02 1.365753152816715e-02 1.365049582984413e-02 1.364345393626983e-02 + 1.363640584363454e-02 1.362935155197557e-02 1.362229106201978e-02 1.361522437421294e-02 1.360815148809621e-02 + 1.360107240365773e-02 1.359398712117658e-02 1.358689563898480e-02 1.357979795217255e-02 1.357269405533802e-02 + 1.356558396017600e-02 1.355846767355538e-02 1.355134518540141e-02 1.354421648973967e-02 1.353708158728038e-02 + 1.352994048497773e-02 1.352279317412557e-02 1.351563964921714e-02 1.350847993234027e-02 1.350131401794928e-02 + 1.349414188812881e-02 1.348696355361660e-02 1.347977901858603e-02 1.347258827670450e-02 1.346539132112732e-02 + 1.345818815687027e-02 1.345097879723517e-02 1.344376323611521e-02 1.343654146470481e-02 1.342931348024562e-02 + 1.342207929164266e-02 1.341483890125029e-02 1.340759229714105e-02 1.340033948592649e-02 1.339308047488992e-02 + 1.338581525615185e-02 1.337854383232506e-02 1.337126620737807e-02 1.336398237245951e-02 1.335669232490426e-02 + 1.334939606999042e-02 1.334209361886319e-02 1.333478496691931e-02 1.332747010093965e-02 1.332014902896288e-02 + 1.331282175723704e-02 1.330548828381385e-02 1.329814860211957e-02 1.329080271412866e-02 1.328345063097246e-02 + 1.327609234424045e-02 1.326872784914616e-02 1.326135715657202e-02 1.325398026514318e-02 1.324659716972378e-02 + 1.323920787031880e-02 1.323181236976987e-02 1.322441067219326e-02 1.321700278123619e-02 1.320958869473772e-02 + 1.320216840889533e-02 1.319474192647233e-02 1.318730924299288e-02 1.317987035320805e-02 1.317242527523754e-02 + 1.316497401404441e-02 1.315751655750498e-02 1.315005290457417e-02 1.314258305915991e-02 1.313510702533477e-02 + 1.312762479749873e-02 1.312013637454663e-02 1.311264176674524e-02 1.310514097528989e-02 1.309763399743803e-02 + 1.309012083240218e-02 1.308260148524151e-02 1.307507595779872e-02 1.306754423810231e-02 1.306000633130083e-02 + 1.305246225068735e-02 1.304491199415833e-02 1.303735555888092e-02 1.302979294561730e-02 1.302222416114251e-02 + 1.301464920127586e-02 1.300706805512286e-02 1.299948074007148e-02 1.299188726392925e-02 1.298428761376350e-02 + 1.297668178953030e-02 1.296906979917289e-02 1.296145165196894e-02 1.295382733572278e-02 1.294619684321666e-02 + 1.293856019418804e-02 1.293091739361701e-02 1.292326843600229e-02 1.291561331594024e-02 1.290795203962965e-02 + 1.290028461406370e-02 1.289261102589192e-02 1.288493127982097e-02 1.287724539399148e-02 1.286955336728896e-02 + 1.286185519483855e-02 1.285415087393522e-02 1.284644040779901e-02 1.283872379943217e-02 1.283100105007112e-02 + 1.282327216499671e-02 1.281553714651719e-02 1.280779599126801e-02 1.280004870582322e-02 1.279229529551004e-02 + 1.278453575462785e-02 1.277677008230648e-02 1.276899828322272e-02 1.276122036637128e-02 1.275343633303281e-02 + 1.274564618082443e-02 1.273784991358546e-02 1.273004753391990e-02 1.272223904101719e-02 1.271442442957637e-02 + 1.270660370794978e-02 1.269877689384363e-02 1.269094397773904e-02 1.268310495443295e-02 1.267525983383190e-02 + 1.266740862159357e-02 1.265955131610305e-02 1.265168790986125e-02 1.264381841321034e-02 1.263594283614933e-02 + 1.262806117310012e-02 1.262017342951705e-02 1.261227961209872e-02 1.260437971406514e-02 1.259647373729069e-02 + 1.258856168925583e-02 1.258064357239260e-02 1.257271939240096e-02 1.256478915520078e-02 1.255685285459754e-02 + 1.254891049173029e-02 1.254096207570647e-02 1.253300760376554e-02 1.252504707668881e-02 1.251708050378790e-02 + 1.250910789128773e-02 1.250112924190730e-02 1.249314455497329e-02 1.248515382942968e-02 1.247715706626537e-02 + 1.246915427066142e-02 1.246114545004359e-02 1.245313061093009e-02 1.244510975519442e-02 1.243708288271855e-02 + 1.242904999334644e-02 1.242101108960597e-02 1.241296617602342e-02 1.240491525784085e-02 1.239685833832253e-02 + 1.238879542265411e-02 1.238072651672425e-02 1.237265161832934e-02 1.236457072972670e-02 1.235648385971585e-02 + 1.234839100475330e-02 1.234029216644840e-02 1.233218735967670e-02 1.232407658450629e-02 1.231595983825897e-02 + 1.230783712734204e-02 1.229970846199802e-02 1.229157384500942e-02 1.228343326032102e-02 1.227528672233900e-02 + 1.226713425500730e-02 1.225897584359588e-02 1.225081148758153e-02 1.224264120133804e-02 1.223446498720786e-02 + 1.222628284514866e-02 1.221809477711035e-02 1.220990079161559e-02 1.220170089405064e-02 1.219349508434973e-02 + 1.218528336781141e-02 1.217706575082829e-02 1.216884223701085e-02 1.216061282093886e-02 1.215237750559525e-02 + 1.214413631491834e-02 1.213588924765066e-02 1.212763629639266e-02 1.211937747504947e-02 1.211111278696468e-02 + 1.210284222899338e-02 1.209456580676226e-02 1.208628352659129e-02 1.207799539529086e-02 1.206970142400196e-02 + 1.206140161359375e-02 1.205309595715539e-02 1.204478446558403e-02 1.203646714593309e-02 1.202814399601385e-02 + 1.201981502726849e-02 1.201148024892713e-02 1.200313965960066e-02 1.199479326438714e-02 1.198644106975963e-02 + 1.197808307814890e-02 1.196971928979660e-02 1.196134970757412e-02 1.195297434273665e-02 1.194459320579336e-02 + 1.193620630286995e-02 1.192781363156250e-02 1.191941519457288e-02 1.191101099930699e-02 1.190260104978759e-02 + 1.189418535108248e-02 1.188576391078268e-02 1.187733673904143e-02 1.186890383909906e-02 1.186046520717658e-02 + 1.185202085452967e-02 1.184357078721630e-02 1.183511499765447e-02 1.182665350164435e-02 1.181818631619212e-02 + 1.180971343948878e-02 1.180123487113532e-02 1.179275061618258e-02 1.178426068678883e-02 1.177576508273127e-02 + 1.176726380098327e-02 1.175875685721244e-02 1.175024426443667e-02 1.174172602804813e-02 1.173320214474543e-02 + 1.172467261918110e-02 1.171613746318596e-02 1.170759667473828e-02 1.169905025976067e-02 1.169049823639713e-02 + 1.168194060529573e-02 1.167337736787376e-02 1.166480853596695e-02 1.165623411322526e-02 1.164765410079015e-02 + 1.163906850325271e-02 1.163047732858534e-02 1.162188058835008e-02 1.161327829716097e-02 1.160467045202270e-02 + 1.159605704763531e-02 1.158743810702480e-02 1.157881363156412e-02 1.157018361041755e-02 1.156154807040710e-02 + 1.155290702254676e-02 1.154426045745637e-02 1.153560838867705e-02 1.152695082724772e-02 1.151828777265603e-02 + 1.150961922666123e-02 1.150094519786783e-02 1.149226570234640e-02 1.148358074611148e-02 1.147489033148848e-02 + 1.146619446355201e-02 1.145749315215113e-02 1.144878640491215e-02 1.144007421936342e-02 1.143135660500108e-02 + 1.142263357779597e-02 1.141390514531738e-02 1.140517131031360e-02 1.139643207471360e-02 1.138768744746770e-02 + 1.137893743736065e-02 1.137018205114591e-02 1.136142129485616e-02 1.135265517811921e-02 1.134388371322748e-02 + 1.133510690045416e-02 1.132632474439678e-02 1.131753726104511e-02 1.130874445081251e-02 1.129994631541456e-02 + 1.129114287234474e-02 1.128233413053084e-02 1.127352009524980e-02 1.126470077646612e-02 1.125587617975814e-02 + 1.124704630615814e-02 1.123821115477194e-02 1.122937074388692e-02 1.122052509984340e-02 1.121167421843202e-02 + 1.120281809651728e-02 1.119395674175946e-02 1.118509017235879e-02 1.117621839625571e-02 1.116734140890626e-02 + 1.115845922925729e-02 1.114957187162777e-02 1.114067933143962e-02 1.113178161769016e-02 1.112287874451852e-02 + 1.111397072153178e-02 1.110505754694771e-02 1.109613922373310e-02 1.108721577854856e-02 1.107828721826434e-02 + 1.106935353946150e-02 1.106041475521090e-02 1.105147087839408e-02 1.104252191603393e-02 1.103356786436798e-02 + 1.102460873384026e-02 1.101564454870664e-02 1.100667531791245e-02 1.099770104268406e-02 1.098872172333136e-02 + 1.097973737703280e-02 1.097074801492989e-02 1.096175363206450e-02 1.095275424291130e-02 1.094374986633713e-02 + 1.093474051123777e-02 1.092572618232803e-02 1.091670688531980e-02 1.090768263148204e-02 1.089865342255811e-02 + 1.088961926240844e-02 1.088058018050034e-02 1.087153618780464e-02 1.086248727940419e-02 1.085343346361914e-02 + 1.084437475261139e-02 1.083531115780061e-02 1.082624268419920e-02 1.081716934144050e-02 1.080809114559821e-02 + 1.079900810312026e-02 1.078992022093278e-02 1.078082751184906e-02 1.077172998533364e-02 1.076262764813011e-02 + 1.075352050586474e-02 1.074440857092024e-02 1.073529185762834e-02 1.072617037570664e-02 1.071704413251609e-02 + 1.070791313635956e-02 1.069877740113652e-02 1.068963693244828e-02 1.068049173224424e-02 1.067134181766250e-02 + 1.066218720670161e-02 1.065302791162099e-02 1.064386393117340e-02 1.063469527249458e-02 1.062552195483164e-02 + 1.061634397913101e-02 1.060716135205155e-02 1.059797409807024e-02 1.058878223029125e-02 1.057958575437316e-02 + 1.057038467384018e-02 1.056117900039964e-02 1.055196874533382e-02 1.054275390960051e-02 1.053353451406393e-02 + 1.052431058354873e-02 1.051508211263400e-02 1.050584910821505e-02 1.049661158906674e-02 1.048736956269110e-02 + 1.047812303544552e-02 1.046887201730896e-02 1.045961652742825e-02 1.045035657823219e-02 1.044109217270465e-02 + 1.043182332652317e-02 1.042255005238709e-02 1.041327235213399e-02 1.040399023555266e-02 1.039470371859749e-02 + 1.038541282005145e-02 1.037611754740451e-02 1.036681790639924e-02 1.035751391340543e-02 1.034820558036888e-02 + 1.033889291336949e-02 1.032957591435120e-02 1.032025460242317e-02 1.031092900384275e-02 1.030159911688449e-02 + 1.029226495054825e-02 1.028292652729243e-02 1.027358385071069e-02 1.026423692589549e-02 1.025488576741323e-02 + 1.024553039300053e-02 1.023617081698821e-02 1.022680704740226e-02 1.021743909457171e-02 1.020806697035185e-02 + 1.019869068658227e-02 1.018931025066223e-02 1.017992567348438e-02 1.017053697875713e-02 1.016114417776936e-02 + 1.015174727399650e-02 1.014234627700861e-02 1.013294120450803e-02 1.012353207457940e-02 1.011411888599992e-02 + 1.010470164920459e-02 1.009528038851809e-02 1.008585511657422e-02 1.007642584330934e-02 1.006699257991301e-02 + 1.005755533847607e-02 1.004811412861271e-02 1.003866895746225e-02 1.002921984502842e-02 1.001976681035788e-02 + 1.001030986009602e-02 1.000084900502786e-02 9.991384259025663e-03 9.981915635495017e-03 9.972443141719819e-03 + 9.962966786689603e-03 9.953486595586885e-03 9.944002583039199e-03 9.934514754395770e-03 9.925023122335749e-03 + 9.915527701693664e-03 9.906028505794947e-03 9.896525539473492e-03 9.887018817044350e-03 9.877508364713565e-03 + 9.867994191756903e-03 9.858476305769829e-03 9.848954721540815e-03 9.839429453723526e-03 9.829900512927632e-03 + 9.820367904529967e-03 9.810831649938153e-03 9.801291772225836e-03 9.791748277276684e-03 9.782201174956444e-03 + 9.772650480173910e-03 9.763096209214261e-03 9.753538370443265e-03 9.743976971083063e-03 9.734412038356991e-03 + 9.724843589152831e-03 9.715271627378256e-03 9.705696167153652e-03 9.696117225097080e-03 9.686534815487291e-03 + 9.676948943754414e-03 9.667359623576509e-03 9.657766883492007e-03 9.648170733986708e-03 9.638571181819185e-03 + 9.628968243024477e-03 9.619361933494769e-03 9.609752265452595e-03 9.600139245296816e-03 9.590522893495216e-03 + 9.580903234511828e-03 9.571280275331249e-03 9.561654026946651e-03 9.552024506017841e-03 9.542391727779683e-03 + 9.532755702177183e-03 9.523116437885958e-03 9.513473960404769e-03 9.503828289303256e-03 9.494179431678001e-03 + 9.484527400058637e-03 9.474872210511853e-03 9.465213879778082e-03 9.455552415295903e-03 9.445887829718797e-03 + 9.436220151655284e-03 9.426549394486200e-03 9.416875565725477e-03 9.407198681221749e-03 9.397518758018270e-03 + 9.387835810148322e-03 9.378149843813783e-03 9.368460878589471e-03 9.358768941430739e-03 9.349074041571485e-03 + 9.339376189353358e-03 9.329675400879622e-03 9.319971694171958e-03 9.310265081086165e-03 9.300555568605354e-03 + 9.290843182951191e-03 9.281127946492163e-03 9.271409865969660e-03 9.261688954922952e-03 9.251965230660204e-03 + 9.242238709904914e-03 9.232509401801155e-03 9.222777318787652e-03 9.213042489474691e-03 9.203304930168641e-03 + 9.193564649383718e-03 9.183821661973759e-03 9.174075985705271e-03 9.164327637046287e-03 9.154576623077591e-03 + 9.144822962285418e-03 9.135066683045857e-03 9.125307796249328e-03 9.115546312613307e-03 9.105782249286811e-03 + 9.096015624756502e-03 9.086246452281876e-03 9.076474739187750e-03 9.066700510968253e-03 9.056923792083085e-03 + 9.047144590189744e-03 9.037362919662660e-03 9.027578799121916e-03 9.017792245480461e-03 9.008003268928564e-03 + 8.998211881680073e-03 8.988418113610518e-03 8.978621982540696e-03 8.968823496265647e-03 8.959022672124209e-03 + 8.949219528590024e-03 8.939414081469170e-03 8.929606339864140e-03 8.919796321979990e-03 8.909984056877767e-03 + 8.900169557867096e-03 8.890352835957138e-03 8.880533907981049e-03 8.870712793191068e-03 8.860889506593549e-03 + 8.851064055633283e-03 8.841236465905915e-03 8.831406764712287e-03 8.821574959648875e-03 8.811741064546590e-03 + 8.801905099237244e-03 8.792067082696866e-03 8.782227026145442e-03 8.772384940188230e-03 8.762540855386065e-03 + 8.752694792574688e-03 8.742846759945761e-03 8.732996774006149e-03 8.723144854408183e-03 8.713291019755398e-03 + 8.703435278608567e-03 8.693577647775636e-03 8.683718159456632e-03 8.673856827661263e-03 8.663993662505663e-03 + 8.654128683145933e-03 8.644261909320558e-03 8.634393356690426e-03 8.624523033451901e-03 8.614650964506795e-03 + 8.604777179373340e-03 8.594901686657006e-03 8.585024500118565e-03 8.575145640490715e-03 8.565265126670765e-03 + 8.555382971806235e-03 8.545499187654319e-03 8.535613803632294e-03 8.525726842250045e-03 8.515838312646278e-03 + 8.505948232174527e-03 8.496056621077198e-03 8.486163497882877e-03 8.476268872748003e-03 8.466372762116349e-03 + 8.456475199094931e-03 8.446576199856061e-03 8.436675774300739e-03 8.426773941795081e-03 8.416870722731803e-03 + 8.406966134358667e-03 8.397060186389057e-03 8.387152901959176e-03 8.377244311160385e-03 8.367334425300299e-03 + 8.357423258296441e-03 8.347510830980188e-03 8.337597163605794e-03 8.327682270401855e-03 8.317766161869340e-03 + 8.307848867754637e-03 8.297930413816063e-03 8.288010810083676e-03 8.278090072673102e-03 8.268168221765407e-03 + 8.258245278027963e-03 8.248321253600945e-03 8.238396163758082e-03 8.228470040664376e-03 8.218542903042886e-03 + 8.208614761992156e-03 8.198685637447353e-03 8.188755549837494e-03 8.178824516773604e-03 8.168892549578916e-03 + 8.158959670459199e-03 8.149025910256038e-03 8.139091282816925e-03 8.129155801857130e-03 8.119219487437710e-03 + 8.109282361690508e-03 8.099344440765549e-03 8.089405733754036e-03 8.079466270417937e-03 8.069526079135253e-03 + 8.059585169010465e-03 8.049643556954327e-03 8.039701265060109e-03 8.029758314127560e-03 8.019814717074126e-03 + 8.009870488264625e-03 7.999925660293698e-03 7.989980254561855e-03 7.980034282561204e-03 7.970087763203990e-03 + 7.960140717914167e-03 7.950193166721423e-03 7.940245120231920e-03 7.930296599391260e-03 7.920347637831796e-03 + 7.910398250263278e-03 7.900448449763646e-03 7.890498257622273e-03 7.880547695356892e-03 7.870596780430528e-03 + 7.860645524802819e-03 7.850693955430419e-03 7.840742100859013e-03 7.830789973961963e-03 7.820837591210042e-03 + 7.810884973654219e-03 7.800932143705464e-03 7.790979115476222e-03 7.781025902060369e-03 7.771072537550891e-03 + 7.761119045304192e-03 7.751165435253132e-03 7.741211727248220e-03 7.731257943744334e-03 7.721304105116559e-03 + 7.711350222852130e-03 7.701396316987202e-03 7.691442422531397e-03 7.681488555826352e-03 7.671534729460651e-03 + 7.661580965493510e-03 7.651627286213397e-03 7.641673709645761e-03 7.631720246474624e-03 7.621766924002147e-03 + 7.611813774300424e-03 7.601860809420407e-03 7.591908045212342e-03 7.581955503946372e-03 7.572003208680656e-03 + 7.562051174726026e-03 7.552099414296815e-03 7.542147961065804e-03 7.532196840825635e-03 7.522246063843738e-03 + 7.512295650102864e-03 7.502345622322073e-03 7.492396000716249e-03 7.482446799189802e-03 7.472498037196947e-03 + 7.462549747897286e-03 7.452601950331629e-03 7.442654658211039e-03 7.432707892744488e-03 7.422761676416634e-03 + 7.412816028768508e-03 7.402870961455420e-03 7.392926500328647e-03 7.382982678429822e-03 7.373039508794957e-03 + 7.363097007225734e-03 7.353155196864952e-03 7.343214100532815e-03 7.333273734782904e-03 7.323334112197604e-03 + 7.313395265021593e-03 7.303457220900774e-03 7.293519991033275e-03 7.283583594600794e-03 7.273648054943689e-03 + 7.263713394446934e-03 7.253779626580373e-03 7.243846768480717e-03 7.233914855435080e-03 7.223983908518886e-03 + 7.214053940460562e-03 7.204124972417771e-03 7.194197027491048e-03 7.184270126394881e-03 7.174344280726286e-03 + 7.164419514784642e-03 7.154495863236941e-03 7.144573340914020e-03 7.134651962993328e-03 7.124731752265264e-03 + 7.114812732100897e-03 7.104894920638768e-03 7.094978330575343e-03 7.085062992246606e-03 7.075148934793896e-03 + 7.065236171017366e-03 7.055324719420953e-03 7.045414603125002e-03 7.035505845669364e-03 7.025598461448587e-03 + 7.015692466009597e-03 7.005787894887785e-03 6.995884771371198e-03 6.985983107977662e-03 6.976082925249031e-03 + 6.966184246523457e-03 6.956287093797063e-03 6.946391479271966e-03 6.936497425652844e-03 6.926604968509339e-03 + 6.916714124366364e-03 6.906824907731460e-03 6.896937340931554e-03 6.887051448149962e-03 6.877167248699087e-03 + 6.867284753979424e-03 6.857403994050719e-03 6.847525000658012e-03 6.837647785670592e-03 6.827772367409923e-03 + 6.817898770109592e-03 6.808027016717447e-03 6.798157122708669e-03 6.788289103240300e-03 6.778422992931511e-03 + 6.768558816798320e-03 6.758696587557012e-03 6.748836325648165e-03 6.738978054348659e-03 6.729121795949092e-03 + 6.719267563927435e-03 6.709415379633438e-03 6.699565278400954e-03 6.689717278120727e-03 6.679871393303892e-03 + 6.670027647355804e-03 6.660186063525513e-03 6.650346660981845e-03 6.640509452367944e-03 6.630674466396449e-03 + 6.620841735868644e-03 6.611011273308148e-03 6.601183096392477e-03 6.591357229649247e-03 6.581533696087914e-03 + 6.571712512145987e-03 6.561893692372858e-03 6.552077270290561e-03 6.542263272668194e-03 6.532451712617284e-03 + 6.522642609933696e-03 6.512835987879551e-03 6.503031869590782e-03 6.493230268870023e-03 6.483431205156500e-03 + 6.473634714105858e-03 6.463840816056773e-03 6.454049525191551e-03 6.444260863046832e-03 6.434474853362258e-03 + 6.424691517208967e-03 6.414910866799055e-03 6.405132928351729e-03 6.395357735592168e-03 6.385585303753894e-03 + 6.375815649717760e-03 6.366048796411005e-03 6.356284767471845e-03 6.346523580477974e-03 6.336765248927921e-03 + 6.327009805730009e-03 6.317257279178600e-03 6.307507681412946e-03 6.297761032647583e-03 6.288017356862164e-03 + 6.278276676438099e-03 6.268539005625230e-03 6.258804362658888e-03 6.249072783406197e-03 6.239344289504087e-03 + 6.229618894349891e-03 6.219896619699197e-03 6.210177489065160e-03 6.200461523673893e-03 6.190748736475173e-03 + 6.181039151999554e-03 6.171332804226705e-03 6.161629709556120e-03 6.151929884103313e-03 6.142233350147177e-03 + 6.132540131644584e-03 6.122850247356021e-03 6.113163710170625e-03 6.103480551213418e-03 6.093800800141988e-03 + 6.084124469547710e-03 6.074451578566364e-03 6.064782150905211e-03 6.055116209626953e-03 6.045453769994722e-03 + 6.035794848740185e-03 6.026139480474754e-03 6.016487688229946e-03 6.006839485237500e-03 5.997194892776407e-03 + 5.987553934341584e-03 5.977916631713333e-03 5.968282997802390e-03 5.958653055343909e-03 5.949026838944569e-03 + 5.939404365780911e-03 5.929785651209331e-03 5.920170717549854e-03 5.910559587858684e-03 5.900952281370824e-03 + 5.891348811852907e-03 5.881749208142844e-03 5.872153500225121e-03 5.862561701850070e-03 5.852973831530551e-03 + 5.843389912374926e-03 5.833809966833203e-03 5.824234011006907e-03 5.814662060999971e-03 5.805094150375409e-03 + 5.795530303292347e-03 5.785970532524381e-03 5.776414859211175e-03 5.766863306294991e-03 5.757315894674337e-03 + 5.747772638659374e-03 5.738233559732430e-03 5.728698691311226e-03 5.719168051719483e-03 5.709641656042984e-03 + 5.700119526414031e-03 5.690601685377130e-03 5.681088152168133e-03 5.671578940158426e-03 5.662074076665564e-03 + 5.652573592801510e-03 5.643077502877857e-03 5.633585823810169e-03 5.624098577633230e-03 5.614615788052954e-03 + 5.605137471831965e-03 5.595663642810052e-03 5.586194333773162e-03 5.576729570469775e-03 5.567269364923084e-03 + 5.557813736696195e-03 5.548362708847973e-03 5.538916303890826e-03 5.529474534822445e-03 5.520037420561356e-03 + 5.510604996543656e-03 5.501177281279281e-03 5.491754287530179e-03 5.482336037985177e-03 5.472922555453679e-03 + 5.463513859119052e-03 5.454109961206277e-03 5.444710887376439e-03 5.435316669896643e-03 5.425927322428118e-03 + 5.416542861379438e-03 5.407163309793553e-03 5.397788689388935e-03 5.388419016905312e-03 5.379054306533677e-03 + 5.369694588817857e-03 5.360339890208465e-03 5.350990223294556e-03 5.341645606645782e-03 5.332306062415535e-03 + 5.322971612709802e-03 5.313642271564683e-03 5.304318056285795e-03 5.294999000250198e-03 5.285685123732157e-03 + 5.276376439554206e-03 5.267072968338082e-03 5.257774732353860e-03 5.248481751732874e-03 5.239194038865901e-03 + 5.229911616755654e-03 5.220634516968343e-03 5.211362754853240e-03 5.202096346092698e-03 5.192835312362628e-03 + 5.183579674966123e-03 5.174329450821569e-03 5.165084652994387e-03 5.155845310548846e-03 5.146611450951191e-03 + 5.137383086378589e-03 5.128160234647254e-03 5.118942917508807e-03 5.109731156137037e-03 5.100524965000140e-03 + 5.091324360054826e-03 5.082129373049942e-03 5.072940025255639e-03 5.063756329149303e-03 5.054578304260502e-03 + 5.045405972366202e-03 5.036239353680495e-03 5.027078459118392e-03 5.017923310123222e-03 5.008773940483098e-03 + 4.999630364315774e-03 4.990492594829337e-03 4.981360654331298e-03 4.972234563790402e-03 4.963114339923834e-03 + 4.953999995020500e-03 4.944891556281875e-03 4.935789051765770e-03 4.926692493194353e-03 4.917601897109304e-03 + 4.908517284729773e-03 4.899438676825864e-03 4.890366088012707e-03 4.881299532722441e-03 4.872239041569468e-03 + 4.863184636415129e-03 4.854136328649667e-03 4.845094137498133e-03 4.836058083872883e-03 4.827028186746977e-03 + 4.818004458681770e-03 4.808986918914880e-03 4.799975597861264e-03 4.790970512088721e-03 4.781971675128856e-03 + 4.772979106768043e-03 4.763992827229902e-03 4.755012853632298e-03 4.746039197549013e-03 4.737071883993436e-03 + 4.728110941197518e-03 4.719156380399636e-03 4.710208217424537e-03 4.701266473663848e-03 4.692331168251817e-03 + 4.683402315353613e-03 4.674479928383867e-03 4.665564036556664e-03 4.656654662394768e-03 4.647751816371710e-03 + 4.638855516650367e-03 4.629965783672686e-03 4.621082635909843e-03 4.612206084994354e-03 4.603336148102954e-03 + 4.594472856159325e-03 4.585616225744373e-03 4.576766268345947e-03 4.567923003199363e-03 4.559086450091263e-03 + 4.550256626033265e-03 4.541433541986122e-03 4.532617220194613e-03 4.523807688535670e-03 4.515004959722835e-03 + 4.506209047920159e-03 4.497419972185719e-03 4.488637751873642e-03 4.479862401381760e-03 4.471093932025212e-03 + 4.462332371280023e-03 4.453577742726973e-03 4.444830056583276e-03 4.436089328917552e-03 4.427355578888171e-03 + 4.418628824988929e-03 4.409909078668640e-03 4.401196354933857e-03 4.392490684030716e-03 4.383792083151365e-03 + 4.375100562120779e-03 4.366416138313078e-03 4.357738831525952e-03 4.349068659591380e-03 4.340405630957790e-03 + 4.331749765364269e-03 4.323101091949651e-03 4.314459623208851e-03 4.305825371349630e-03 4.297198354190413e-03 + 4.288578590720092e-03 4.279966095343473e-03 4.271360877578565e-03 4.262762963097229e-03 4.254172376200769e-03 + 4.245589126222103e-03 4.237013227440267e-03 4.228444697962537e-03 4.219883556022182e-03 4.211329813254019e-03 + 4.202783482548908e-03 4.194244591796649e-03 4.185713159116739e-03 4.177189194188086e-03 4.168672712320958e-03 + 4.160163731860882e-03 4.151662270610665e-03 4.143168336754119e-03 4.134681947397693e-03 4.126203130809124e-03 + 4.117731899759874e-03 4.109268265260960e-03 4.100812244167818e-03 4.092363854125291e-03 4.083923109325604e-03 + 4.075490018959178e-03 4.067064605609816e-03 4.058646892914489e-03 4.050236890474988e-03 4.041834611549669e-03 + 4.033440073099425e-03 4.025053291802670e-03 4.016674279190388e-03 4.008303046950822e-03 3.999939621219669e-03 + 3.991584019864232e-03 3.983236251035503e-03 3.974896329846703e-03 3.966564273682151e-03 3.958240098637734e-03 + 3.949923812376889e-03 3.941615430268695e-03 3.933314980874398e-03 3.925022475755094e-03 3.916737923312982e-03 + 3.908461340476090e-03 3.900192744628528e-03 3.891932149238224e-03 3.883679560814138e-03 3.875435000263637e-03 + 3.867198492508630e-03 3.858970045729460e-03 3.850749670926077e-03 3.842537384120139e-03 3.834333202377867e-03 + 3.826137136626801e-03 3.817949195349815e-03 3.809769403427763e-03 3.801597779587331e-03 3.793434330750140e-03 + 3.785279069923421e-03 3.777132013373491e-03 3.768993177352847e-03 3.760862568898475e-03 3.752740200334732e-03 + 3.744626099044159e-03 3.736520277340854e-03 3.728422742215669e-03 3.720333508785603e-03 3.712252593018920e-03 + 3.704180008090329e-03 3.696115760631814e-03 3.688059868276574e-03 3.680012354362612e-03 3.671973228138760e-03 + 3.663942499526064e-03 3.655920182566113e-03 3.647906292785413e-03 3.639900840938008e-03 3.631903834337251e-03 + 3.623915295229000e-03 3.615935242250758e-03 3.607963681828620e-03 3.600000626081414e-03 3.592046089865790e-03 + 3.584100087061132e-03 3.576162625323692e-03 3.568233715505030e-03 3.560313381862740e-03 3.552401637255495e-03 + 3.544498488187401e-03 3.536603947761108e-03 3.528718030587010e-03 3.520840749407267e-03 3.512972109975055e-03 + 3.505112127471606e-03 3.497260824593953e-03 3.489418209893856e-03 3.481584291815555e-03 3.473759083632174e-03 + 3.465942599385497e-03 3.458134849136788e-03 3.450335838875430e-03 3.442545588595099e-03 3.434764116831954e-03 + 3.426991428902786e-03 3.419227535146918e-03 3.411472449427477e-03 3.403726185233638e-03 3.395988749408295e-03 + 3.388260149964055e-03 3.380540409506120e-03 3.372829541439428e-03 3.365127551327278e-03 3.357434450344299e-03 + 3.349750251864305e-03 3.342074968176267e-03 3.334408603200120e-03 3.326751169911567e-03 3.319102691777129e-03 + 3.311463175183513e-03 3.303832626198486e-03 3.296211059114474e-03 3.288598486024217e-03 3.280994915398627e-03 + 3.273400352769854e-03 3.265814815709593e-03 3.258238322074859e-03 3.250670876135365e-03 3.243112486983179e-03 + 3.235563167624456e-03 3.228022929479646e-03 3.220491779361285e-03 3.212969724272006e-03 3.205456783570964e-03 + 3.197952970426890e-03 3.190458290104943e-03 3.182972751519780e-03 3.175496366385864e-03 3.168029146873250e-03 + 3.160571096621216e-03 3.153122225636278e-03 3.145682555500280e-03 3.138252093348739e-03 3.130830843615626e-03 + 3.123418817816768e-03 3.116016027518625e-03 3.108622481356378e-03 3.101238183229207e-03 3.093863147897005e-03 + 3.086497392737253e-03 3.079140921752824e-03 3.071793741871484e-03 3.064455864252268e-03 3.057127299904285e-03 + 3.049808055146270e-03 3.042498134791386e-03 3.035197556645182e-03 3.027906333235584e-03 3.020624467536793e-03 + 3.013351968343262e-03 3.006088846580162e-03 2.998835112089031e-03 2.991590768047797e-03 2.984355822285627e-03 + 2.977130294631421e-03 2.969914192263928e-03 2.962707518230782e-03 2.955510282832787e-03 2.948322496039390e-03 + 2.941144165204636e-03 2.933975293458325e-03 2.926815893073326e-03 2.919665980487675e-03 2.912525559332239e-03 + 2.905394635071103e-03 2.898273217656210e-03 2.891161316595433e-03 2.884058936906487e-03 2.876966081111658e-03 + 2.869882766189157e-03 2.862809005041444e-03 2.855744798230348e-03 2.848690153100023e-03 2.841645079496137e-03 + 2.834609585256340e-03 2.827583673848185e-03 2.820567351490293e-03 2.813560634590312e-03 2.806563530531927e-03 + 2.799576041999259e-03 2.792598177467573e-03 2.785629945309582e-03 2.778671351607254e-03 2.771722398039775e-03 + 2.764783095014263e-03 2.757853459091809e-03 2.750933492568204e-03 2.744023198517816e-03 2.737122585640385e-03 + 2.730231662189404e-03 2.723350432970404e-03 2.716478899800820e-03 2.709617075896625e-03 2.702764973241287e-03 + 2.695922593060963e-03 2.689089940152226e-03 2.682267022316270e-03 2.675453847914084e-03 2.668650418902243e-03 + 2.661856738145520e-03 2.655072822033232e-03 2.648298678030288e-03 2.641534306206961e-03 2.634779712258937e-03 + 2.628034904058933e-03 2.621299888635041e-03 2.614574665771587e-03 2.607859242632423e-03 2.601153634957146e-03 + 2.594457844452072e-03 2.587771872555374e-03 2.581095727373358e-03 2.574429415266960e-03 2.567772939497474e-03 + 2.561126300777387e-03 2.554489510835181e-03 2.547862581281132e-03 2.541245510713479e-03 2.534638303078699e-03 + 2.528040966193904e-03 2.521453505493298e-03 2.514875922225054e-03 2.508308218200437e-03 2.501750407164573e-03 + 2.495202496081871e-03 2.488664484118587e-03 2.482136376281468e-03 2.475618178705269e-03 2.469109895957427e-03 + 2.462611527825166e-03 2.456123079328407e-03 2.449644563898542e-03 2.443175984269443e-03 2.436717340526153e-03 + 2.430268636964234e-03 2.423829879853036e-03 2.417401073311931e-03 2.410982215756923e-03 2.404573315098301e-03 + 2.398174382071132e-03 2.391785416912405e-03 2.385406421217447e-03 2.379037399546287e-03 2.372678357701878e-03 + 2.366329296305038e-03 2.359990214012962e-03 2.353661123666590e-03 2.347342032379030e-03 2.341032936953993e-03 + 2.334733840455562e-03 2.328444748068140e-03 2.322165663885325e-03 2.315896586946297e-03 2.309637519733881e-03 + 2.303388473653537e-03 2.297149451184649e-03 2.290920451297887e-03 2.284701476927273e-03 2.278492533074980e-03 + 2.272293622898508e-03 2.266104742447669e-03 2.259925897918875e-03 2.253757100645447e-03 2.247598348619136e-03 + 2.241449641489242e-03 2.235310983406359e-03 2.229182378556762e-03 2.223063827011661e-03 2.216955326220785e-03 + 2.210856885615230e-03 2.204768511855369e-03 2.198690202073136e-03 2.192621957162963e-03 2.186563780523993e-03 + 2.180515675851768e-03 2.174477640514074e-03 2.168449674335647e-03 2.162431789038673e-03 2.156423986093689e-03 + 2.150426261719325e-03 2.144438618887063e-03 2.138461061015507e-03 2.132493589319895e-03 2.126536199820428e-03 + 2.120588896234097e-03 2.114651688169617e-03 2.108724573757348e-03 2.102807551461262e-03 2.096900623831682e-03 + 2.091003792760502e-03 2.085117057433877e-03 2.079240415028002e-03 2.073373872799373e-03 2.067517436442142e-03 + 2.061671101563673e-03 2.055834867994772e-03 2.050008738194652e-03 2.044192713868095e-03 2.038386792128391e-03 + 2.032590971333173e-03 2.026805260662020e-03 2.021029661329869e-03 2.015264168518725e-03 2.009508783500123e-03 + 2.003763508166370e-03 1.998028342654997e-03 1.992303282805534e-03 1.986588330078225e-03 1.980883492165770e-03 + 1.975188767039759e-03 1.969504151730439e-03 1.963829647004430e-03 1.958165254218237e-03 1.952510971963634e-03 + 1.946866794889960e-03 1.941232728159857e-03 1.935608777640074e-03 1.929994938329363e-03 1.924391207914093e-03 + 1.918797587114099e-03 1.913214077256622e-03 1.907640674795718e-03 1.902077375557082e-03 1.896524186430478e-03 + 1.890981108949087e-03 1.885448138032121e-03 1.879925272541809e-03 1.874412513138102e-03 1.868909859971047e-03 + 1.863417306389931e-03 1.857934851379391e-03 1.852462503653811e-03 1.847000259754348e-03 1.841548114039762e-03 + 1.836106066817225e-03 1.830674118529854e-03 1.825252266916765e-03 1.819840505202892e-03 1.814438836319749e-03 + 1.809047265638602e-03 1.803665787133681e-03 1.798294397101445e-03 1.792933095135866e-03 1.787581880369786e-03 + 1.782240749155103e-03 1.776909697172910e-03 1.771588728179710e-03 1.766277842767543e-03 1.760977035675204e-03 + 1.755686304337379e-03 1.750405647484752e-03 1.745135063548007e-03 1.739874546386865e-03 1.734624093589025e-03 + 1.729383711586370e-03 1.724153396315838e-03 1.718933140719367e-03 1.713722944309894e-03 1.708522806163372e-03 + 1.703332722978997e-03 1.698152687791741e-03 1.692982700783420e-03 1.687822765464940e-03 1.682672875794938e-03 + 1.677533027054054e-03 1.672403217813849e-03 1.667283446525115e-03 1.662173708173832e-03 1.657073995739192e-03 + 1.651984312946546e-03 1.646904660364047e-03 1.641835029387390e-03 1.636775416468660e-03 1.631725820220986e-03 + 1.626686238226539e-03 1.621656663682810e-03 1.616637091835148e-03 1.611627526662728e-03 1.606627964700548e-03 + 1.601638398623349e-03 1.596658825754688e-03 1.591689243408400e-03 1.586729647378206e-03 1.581780030725023e-03 + 1.576840391697073e-03 1.571910732264727e-03 1.566991046477593e-03 1.562081328242421e-03 1.557181574037859e-03 + 1.552291781114454e-03 1.547411944138861e-03 1.542542055154552e-03 1.537682115822498e-03 1.532832126356767e-03 + 1.527992077470792e-03 1.523161963747274e-03 1.518341782422417e-03 1.513531530571088e-03 1.508731200913292e-03 + 1.503940786876937e-03 1.499160290964809e-03 1.494389709200610e-03 1.489629032745148e-03 1.484878257820629e-03 + 1.480137381279299e-03 1.475406398389162e-03 1.470685299850305e-03 1.465974082141071e-03 1.461272748080975e-03 + 1.456581290224651e-03 1.451899700275850e-03 1.447227974089072e-03 1.442566108566721e-03 1.437914097994959e-03 + 1.433271932504185e-03 1.428639611034298e-03 1.424017133356480e-03 1.419404490680891e-03 1.414801676491448e-03 + 1.410208686553135e-03 1.405625516589791e-03 1.401052158609908e-03 1.396488604511052e-03 1.391934855472548e-03 + 1.387390907364871e-03 1.382856750165021e-03 1.378332378783991e-03 1.373817788890047e-03 1.369312974750468e-03 + 1.364817927255285e-03 1.360332641059443e-03 1.355857116711623e-03 1.351391347026849e-03 1.346935323100728e-03 + 1.342489039284644e-03 1.338052491255308e-03 1.333625672740901e-03 1.329208572800934e-03 1.324801188462658e-03 + 1.320403519143769e-03 1.316015555822497e-03 1.311637290544184e-03 1.307268717472159e-03 1.302909831116118e-03 + 1.298560623326278e-03 1.294221085253892e-03 1.289891216124110e-03 1.285571011566486e-03 1.281260461060531e-03 + 1.276959557618139e-03 1.272668295740209e-03 1.268386669608614e-03 1.264114669618853e-03 1.259852288349743e-03 + 1.255599524419093e-03 1.251356371085625e-03 1.247122819189722e-03 1.242898861265979e-03 1.238684491359706e-03 + 1.234479702756933e-03 1.230284484841117e-03 1.226098832748256e-03 1.221922744434409e-03 1.217756210326720e-03 + 1.213599221362577e-03 1.209451770765583e-03 1.205313852635065e-03 1.201185458480448e-03 1.197066577985755e-03 + 1.192957208640432e-03 1.188857345511447e-03 1.184766976969275e-03 1.180686095693037e-03 1.176614695732404e-03 + 1.172552769621902e-03 1.168500307042727e-03 1.164457299537124e-03 1.160423745213695e-03 1.156399636114517e-03 + 1.152384961360659e-03 1.148379714206853e-03 1.144383887440774e-03 1.140397472403066e-03 1.136420458871837e-03 + 1.132452840804467e-03 1.128494614815977e-03 1.124545770440235e-03 1.120606297984056e-03 1.116676190709075e-03 + 1.112755440623707e-03 1.108844038267568e-03 1.104941973598277e-03 1.101049242215234e-03 1.097165838523137e-03 + 1.093291750933755e-03 1.089426970747485e-03 1.085571490835547e-03 1.081725303225761e-03 1.077888396808512e-03 + 1.074060761522748e-03 1.070242395009795e-03 1.066433289590875e-03 1.062633433332422e-03 1.058842817553080e-03 + 1.055061434373011e-03 1.051289275348505e-03 1.047526329409495e-03 1.043772588486000e-03 1.040028047931513e-03 + 1.036292698203525e-03 1.032566529042292e-03 1.028849531681517e-03 1.025141697676040e-03 1.021443017315572e-03 + 1.017753479165712e-03 1.014073077446178e-03 1.010401806565697e-03 1.006739654876394e-03 1.003086612170896e-03 + 9.994426698862881e-04 9.958078198244436e-04 9.921820510029489e-04 9.885653522799815e-04 9.849577193159157e-04 + 9.813591440739670e-04 9.777696142556011e-04 9.741891204675346e-04 9.706176542328248e-04 9.670552065524777e-04 + 9.635017651512704e-04 9.599573207794398e-04 9.564218691437683e-04 9.528953995809905e-04 9.493779002331982e-04 + 9.458693621672339e-04 9.423697766254766e-04 9.388791334439822e-04 9.353974200435674e-04 9.319246293443443e-04 + 9.284607555133966e-04 9.250057861419034e-04 9.215597102726345e-04 9.181225189615299e-04 9.146942031524666e-04 + 9.112747514066988e-04 9.078641516289516e-04 9.044623983719834e-04 9.010694834242857e-04 8.976853937790154e-04 + 8.943101192935385e-04 8.909436508104612e-04 8.875859786393426e-04 8.842370902316334e-04 8.808969751654204e-04 + 8.775656281905130e-04 8.742430385918343e-04 8.709291937982416e-04 8.676240840155020e-04 8.643276998573467e-04 + 8.610400308208924e-04 8.577610636611962e-04 8.544907899714905e-04 8.512292035626933e-04 8.479762917886125e-04 + 8.447320428739457e-04 8.414964471843920e-04 8.382694949325988e-04 8.350511744137459e-04 8.318414728923707e-04 + 8.286403836395943e-04 8.254478982373706e-04 8.222640032931049e-04 8.190886878204532e-04 8.159219419987107e-04 + 8.127637556794064e-04 8.096141160179775e-04 8.064730115089579e-04 8.033404360997527e-04 8.002163789609624e-04 + 7.971008268111541e-04 7.939937692507287e-04 7.908951962853333e-04 7.878050969946667e-04 7.847234577702081e-04 + 7.816502689905088e-04 7.785855239466778e-04 7.755292098590464e-04 7.724813142232633e-04 7.694418267842021e-04 + 7.664107372089749e-04 7.633880335334087e-04 7.603737023812342e-04 7.573677358642847e-04 7.543701253849379e-04 + 7.513808572285544e-04 7.483999196962093e-04 7.454273024026923e-04 7.424629947358947e-04 7.395069836664074e-04 + 7.365592567622367e-04 7.336198070174806e-04 7.306886236388442e-04 7.277656929130117e-04 7.248510036837761e-04 + 7.219445453636994e-04 7.190463067357669e-04 7.161562739946586e-04 7.132744364309508e-04 7.104007867132190e-04 + 7.075353120392018e-04 7.046779992824802e-04 7.018288375861283e-04 6.989878161882759e-04 6.961549229362052e-04 + 6.933301438820412e-04 6.905134700383686e-04 6.877048926511914e-04 6.849043978549774e-04 6.821119732944710e-04 + 6.793276080246700e-04 6.765512910034699e-04 6.737830090783149e-04 6.710227490756584e-04 6.682705030776122e-04 + 6.655262603091742e-04 6.627900067379164e-04 6.600617305924390e-04 6.573414207627890e-04 6.546290656955580e-04 + 6.519246513982958e-04 6.492281662548372e-04 6.465396024423735e-04 6.438589471596415e-04 6.411861867028291e-04 + 6.385213096762252e-04 6.358643049114898e-04 6.332151601148890e-04 6.305738609661260e-04 6.279403974635571e-04 + 6.253147606410383e-04 6.226969365620930e-04 6.200869123319087e-04 6.174846765257772e-04 6.148902176504979e-04 + 6.123035224628875e-04 6.097245772740803e-04 6.071533733723410e-04 6.045898999580564e-04 6.020341426510520e-04 + 5.994860891934145e-04 5.969457280748620e-04 5.944130474177512e-04 5.918880332091087e-04 5.893706730594447e-04 + 5.868609584534629e-04 5.843588766665737e-04 5.818644136544619e-04 5.793775576682911e-04 5.768982970317317e-04 + 5.744266191686133e-04 5.719625097277512e-04 5.695059578510202e-04 5.670569542308351e-04 5.646154849082753e-04 + 5.621815365284883e-04 5.597550972743215e-04 5.573361553519681e-04 5.549246974872960e-04 5.525207095632259e-04 + 5.501241820142805e-04 5.477351040267441e-04 5.453534610951853e-04 5.429792405131840e-04 5.406124304314462e-04 + 5.382530187447214e-04 5.359009913605971e-04 5.335563351904396e-04 5.312190411682156e-04 5.288890968140364e-04 + 5.265664878332606e-04 5.242512018091515e-04 5.219432267978740e-04 5.196425502978362e-04 5.173491576918976e-04 + 5.150630373381158e-04 5.127841797796618e-04 5.105125710953982e-04 5.082481974966798e-04 5.059910467933278e-04 + 5.037411069671739e-04 5.014983647643853e-04 4.992628057533249e-04 4.970344196034297e-04 4.948131954905409e-04 + 4.925991188614672e-04 4.903921766298550e-04 4.881923566574878e-04 4.859996466359864e-04 4.838140324815327e-04 + 4.816355005995136e-04 4.794640414647377e-04 4.772996426854546e-04 4.751422896755638e-04 4.729919697488023e-04 + 4.708486707166207e-04 4.687123799720691e-04 4.665830828962369e-04 4.644607671738101e-04 4.623454230212830e-04 + 4.602370366779194e-04 4.581355941018685e-04 4.560410828358216e-04 4.539534906171381e-04 4.518728041821612e-04 + 4.497990089033435e-04 4.477320938149108e-04 4.456720481170030e-04 4.436188572707195e-04 4.415725078895158e-04 + 4.395329875976124e-04 4.375002838422590e-04 4.354743826722610e-04 4.334552702201095e-04 4.314429363226086e-04 + 4.294373687059989e-04 4.274385527576286e-04 4.254464755700176e-04 4.234611247199864e-04 4.214824874479911e-04 + 4.195105492176435e-04 4.175452972239935e-04 4.155867214135851e-04 4.136348082067204e-04 4.116895433467350e-04 + 4.097509141339746e-04 4.078189081189173e-04 4.058935120995524e-04 4.039747114386321e-04 4.020624945699733e-04 + 4.001568506324645e-04 3.982577652062802e-04 3.963652246433777e-04 3.944792163840573e-04 3.925997278951708e-04 + 3.907267452820787e-04 3.888602542761684e-04 3.870002443827855e-04 3.851467035420477e-04 3.832996170232135e-04 + 3.814589716941001e-04 3.796247550166885e-04 3.777969542187427e-04 3.759755548771444e-04 3.741605437648361e-04 + 3.723519105456335e-04 3.705496418343326e-04 3.687537232626712e-04 3.669641420580878e-04 3.651808856652343e-04 + 3.634039408935104e-04 3.616332930379869e-04 3.598689301103073e-04 3.581108413327368e-04 3.563590123412032e-04 + 3.546134293224166e-04 3.528740796868620e-04 3.511409507353364e-04 3.494140287293094e-04 3.476932993968030e-04 + 3.459787517007610e-04 3.442703736842207e-04 3.425681507579447e-04 3.408720696736798e-04 3.391821178070990e-04 + 3.374982823340253e-04 3.358205489790399e-04 3.341489042294683e-04 3.324833375391577e-04 3.308238358267097e-04 + 3.291703846864138e-04 3.275229711235071e-04 3.258815824857735e-04 3.242462057388915e-04 3.226168264116891e-04 + 3.209934320343741e-04 3.193760116170641e-04 3.177645512713499e-04 3.161590371207419e-04 3.145594562690266e-04 + 3.129657961319975e-04 3.113780432227079e-04 3.097961831114660e-04 3.082202043645004e-04 3.066500952444524e-04 + 3.050858414009347e-04 3.035274294402161e-04 3.019748466354355e-04 3.004280802320956e-04 2.988871162192853e-04 + 2.973519409077311e-04 2.958225434173786e-04 2.942989109163873e-04 2.927810290941792e-04 2.912688849504159e-04 + 2.897624658129895e-04 2.882617587216531e-04 2.867667493909568e-04 2.852774250910157e-04 2.837937747837379e-04 + 2.823157848000407e-04 2.808434412718301e-04 2.793767313619733e-04 2.779156424588856e-04 2.764601612241833e-04 + 2.750102732798498e-04 2.735659669757869e-04 2.721272307826111e-04 2.706940504177620e-04 2.692664125118005e-04 + 2.678443044384447e-04 2.664277133531666e-04 2.650166254907073e-04 2.636110271946842e-04 2.622109073508727e-04 + 2.608162534146021e-04 2.594270512444905e-04 2.580432877716125e-04 2.566649503351083e-04 2.552920261463284e-04 + 2.539245011192165e-04 2.525623623480746e-04 2.512055988243127e-04 2.498541971146173e-04 2.485081433825346e-04 + 2.471674249383843e-04 2.458320291468696e-04 2.445019428356345e-04 2.431771519464020e-04 2.418576445147758e-04 + 2.405434090455539e-04 2.392344316436903e-04 2.379306989304936e-04 2.366321982706708e-04 2.353389171046539e-04 + 2.340508418959193e-04 2.327679588365217e-04 2.314902568213100e-04 2.302177235947735e-04 2.289503450019842e-04 + 2.276881081822984e-04 2.264310006278554e-04 2.251790095285085e-04 2.239321211178975e-04 2.226903224828012e-04 + 2.214536025966827e-04 2.202219483393713e-04 2.189953459440866e-04 2.177737827672056e-04 2.165572463172210e-04 + 2.153457236927424e-04 2.141392010208329e-04 2.129376661694288e-04 2.117411078009580e-04 2.105495123800498e-04 + 2.093628666254358e-04 2.081811579562958e-04 2.070043738711933e-04 2.058325011765904e-04 2.046655262979033e-04 + 2.035034378928387e-04 2.023462239716796e-04 2.011938707312936e-04 2.000463653117907e-04 1.989036953143001e-04 + 1.977658482429478e-04 1.966328105707422e-04 1.955045692837424e-04 1.943811134060168e-04 1.932624302421221e-04 + 1.921485062157297e-04 1.910393287336514e-04 1.899348854684124e-04 1.888351638115297e-04 1.877401500482506e-04 + 1.866498319949601e-04 1.855641985831636e-04 1.844832365124926e-04 1.834069326310023e-04 1.823352746298841e-04 + 1.812682501147551e-04 1.802058461455679e-04 1.791480493724017e-04 1.780948483852737e-04 1.770462314872484e-04 + 1.760021851824818e-04 1.749626967491274e-04 1.739277539439587e-04 1.728973444305181e-04 1.718714550470096e-04 + 1.708500728855944e-04 1.698331869571933e-04 1.688207849549946e-04 1.678128535713188e-04 1.668093803524777e-04 + 1.658103531111011e-04 1.648157594964937e-04 1.638255861976382e-04 1.628398210066413e-04 1.618584529166454e-04 + 1.608814690931768e-04 1.599088565742865e-04 1.589406031206167e-04 1.579766966509897e-04 1.570171246224424e-04 + 1.560618738321770e-04 1.551109328208930e-04 1.541642902068764e-04 1.532219328717612e-04 1.522838482661923e-04 + 1.513500243337891e-04 1.504204489591066e-04 1.494951093483970e-04 1.485739927662749e-04 1.476570882997282e-04 + 1.467443839796364e-04 1.458358667202351e-04 1.449315243896633e-04 1.440313449862068e-04 1.431353162531848e-04 + 1.422434254066872e-04 1.413556604013758e-04 1.404720102486319e-04 1.395924625558734e-04 1.387170046489957e-04 + 1.378456244430427e-04 1.369783100559194e-04 1.361150493062282e-04 1.352558293490397e-04 1.344006387024136e-04 + 1.335494662293593e-04 1.327022993333140e-04 1.318591256583063e-04 1.310199332689028e-04 1.301847103692820e-04 + 1.293534446013900e-04 1.285261234477974e-04 1.277027359881715e-04 1.268832706365997e-04 1.260677147052468e-04 + 1.252560562359565e-04 1.244482834803957e-04 1.236443845356053e-04 1.228443469528238e-04 1.220481588198588e-04 + 1.212558093699401e-04 1.204672865809282e-04 1.196825780471873e-04 1.189016720308052e-04 1.181245568536085e-04 + 1.173512205995857e-04 1.165816508484800e-04 1.158158362776897e-04 1.150537660210759e-04 1.142954277590100e-04 + 1.135408094568152e-04 1.127898995954114e-04 1.120426864956402e-04 1.112991581353023e-04 1.105593024093304e-04 + 1.098231085283700e-04 1.090905652465313e-04 1.083616601800625e-04 1.076363816399760e-04 1.069147182196831e-04 + 1.061966583782502e-04 1.054821899944032e-04 1.047713013150353e-04 1.040639818640637e-04 1.033602200082437e-04 + 1.026600035826387e-04 1.019633211976323e-04 1.012701615275282e-04 1.005805130149820e-04 9.989436355203399e-05 + 9.921170194739147e-05 9.853251765411631e-05 9.785679881782247e-05 9.718453366352614e-05 9.651571091087277e-05 + 9.585031930594751e-05 9.518834724915350e-05 9.452978284703146e-05 9.387461543789448e-05 9.322283420353250e-05 + 9.257442723618249e-05 9.192938310286574e-05 9.128769066247626e-05 9.064933872161225e-05 9.001431561187756e-05 + 8.938260983500139e-05 8.875421104519957e-05 8.812910809646098e-05 8.750728925694059e-05 8.688874335824857e-05 + 8.627345936363417e-05 8.566142611724158e-05 8.505263195150667e-05 8.444706587898619e-05 8.384471762172232e-05 + 8.324557578035348e-05 8.264962891132210e-05 8.205686604727953e-05 8.146727626544971e-05 8.088084838175318e-05 + 8.029757088191735e-05 7.971743327705584e-05 7.914042512047892e-05 7.856653495630607e-05 7.799575166346450e-05 + 7.742806441871695e-05 7.686346239245813e-05 7.630193435494130e-05 7.574346911053080e-05 7.518805653837606e-05 + 7.463568593117825e-05 7.408634594826592e-05 7.354002575090044e-05 7.299671464423979e-05 7.245640185167563e-05 + 7.191907614532941e-05 7.138472679150608e-05 7.085334380230530e-05 7.032491623916224e-05 6.979943301854977e-05 + 6.927688351841825e-05 6.875725716877753e-05 6.824054320182008e-05 6.772673050550591e-05 6.721580881996242e-05 + 6.670776807704407e-05 6.620259726868480e-05 6.570028562031883e-05 6.520082266140781e-05 6.470419793220322e-05 + 6.421040064958054e-05 6.371941996817583e-05 6.323124601185380e-05 6.274586851226631e-05 6.226327655003573e-05 + 6.178345963615301e-05 6.130640743984757e-05 6.083210957777482e-05 6.036055527561582e-05 5.989173409263222e-05 + 5.942563633391719e-05 5.896225154191688e-05 5.850156903007261e-05 5.804357852627766e-05 5.758826983099529e-05 + 5.713563260712647e-05 5.668565617514362e-05 5.623833053838233e-05 5.579364600051564e-05 5.535159201768813e-05 + 5.491215819134343e-05 5.447533442712218e-05 5.404111064124177e-05 5.360947650466450e-05 5.318042157160001e-05 + 5.275393622516995e-05 5.233001062811153e-05 5.190863431238880e-05 5.148979716458554e-05 5.107348923404401e-05 + 5.065970053025621e-05 5.024842074849432e-05 4.983963979263951e-05 4.943334827635427e-05 4.902953621108006e-05 + 4.862819332553702e-05 4.822930973793706e-05 4.783287562882953e-05 4.743888107972067e-05 4.704731588033618e-05 + 4.665817033540254e-05 4.627143510842172e-05 4.588710014690383e-05 4.550515545082771e-05 4.512559130332447e-05 + 4.474839802715817e-05 4.437356575264515e-05 4.400108444300858e-05 4.363094478314062e-05 4.326313737450849e-05 + 4.289765220307346e-05 4.253447954450777e-05 4.217360984935306e-05 4.181503354031293e-05 4.145874078526325e-05 + 4.110472186234567e-05 4.075296770939578e-05 4.040346881442376e-05 4.005621534517384e-05 3.971119780891244e-05 + 3.936840678851008e-05 3.902783280379881e-05 3.868946611492773e-05 3.835329736378580e-05 3.801931758461789e-05 + 3.768751721520911e-05 3.735788667634669e-05 3.703041665089796e-05 3.670509786268472e-05 3.638192090588934e-05 + 3.606087620758478e-05 3.574195476070656e-05 3.542514758568229e-05 3.511044516462031e-05 3.479783817623805e-05 + 3.448731747191980e-05 3.417887390941621e-05 3.387249813623169e-05 3.356818082938366e-05 3.326591326488256e-05 + 3.296568640239042e-05 3.266749086476883e-05 3.237131756688427e-05 3.207715751232477e-05 3.178500166911470e-05 + 3.149484077201404e-05 3.120666582870710e-05 3.092046825328168e-05 3.063623897047349e-05 3.035396883732847e-05 + 3.007364895961203e-05 2.979527048619034e-05 2.951882447255356e-05 2.924430180184470e-05 2.897169381596313e-05 + 2.870099196601076e-05 2.843218722351712e-05 2.816527069305565e-05 2.790023364581556e-05 2.763706736588794e-05 + 2.737576298520704e-05 2.711631161938774e-05 2.685870489191871e-05 2.660293422952212e-05 2.634899073350601e-05 + 2.609686574272242e-05 2.584655068622352e-05 2.559803697386157e-05 2.535131582907573e-05 2.510637865851451e-05 + 2.486321726016628e-05 2.462182305120829e-05 2.438218734168926e-05 2.414430166313400e-05 2.390815760058303e-05 + 2.367374667612129e-05 2.344106023464476e-05 2.321008999935892e-05 2.298082786356460e-05 2.275326527748312e-05 + 2.252739378233606e-05 2.230320509258137e-05 2.208069093512809e-05 2.185984291941186e-05 2.164065260635458e-05 + 2.142311199522572e-05 2.120721298028661e-05 2.099294714303281e-05 2.078030625998752e-05 2.056928220029127e-05 + 2.035986682231265e-05 2.015205183896797e-05 1.994582907956633e-05 1.974119073954575e-05 1.953812872162773e-05 + 1.933663479825456e-05 1.913670094979531e-05 1.893831919578259e-05 1.874148151575467e-05 1.854617976080873e-05 + 1.835240605058427e-05 1.816015268982217e-05 1.796941162992672e-05 1.778017486956627e-05 1.759243456762222e-05 + 1.740618289118282e-05 1.722141193137039e-05 1.703811372777776e-05 1.685628066375182e-05 1.667590509374455e-05 + 1.649697910104339e-05 1.631949489857415e-05 1.614344479286407e-05 1.596882111103627e-05 1.579561606259506e-05 + 1.562382191518076e-05 1.545343126338709e-05 1.528443649706141e-05 1.511682986511545e-05 1.495060379262073e-05 + 1.478575075387210e-05 1.462226320346460e-05 1.446013347627832e-05 1.429935410828208e-05 1.413991783947596e-05 + 1.398181711799591e-05 1.382504440087988e-05 1.366959229690567e-05 1.351545344207288e-05 1.336262041089977e-05 + 1.321108569966174e-05 1.306084210743495e-05 1.291188246012095e-05 1.276419932540445e-05 1.261778537439798e-05 + 1.247263337350260e-05 1.232873611168182e-05 1.218608628547451e-05 1.204467661277090e-05 1.190450010670460e-05 + 1.176554964839514e-05 1.162781797531038e-05 1.149129796332477e-05 1.135598253898601e-05 1.122186462622714e-05 + 1.108893706038782e-05 1.095719281332111e-05 1.082662505098182e-05 1.069722672643097e-05 1.056899077370047e-05 + 1.044191025341683e-05 1.031597825830204e-05 1.019118784797653e-05 1.006753201372614e-05 9.945003972957807e-06 + 9.823597003224701e-06 9.703304169766936e-06 9.584118614966616e-06 9.466033570975281e-06 9.349042284940899e-06 + 9.233137946012443e-06 9.118313747892748e-06 9.004563126071509e-06 8.891879438415634e-06 8.780255908737012e-06 + 8.669685879934477e-06 8.560162746518096e-06 8.451679906731882e-06 8.344230688978416e-06 8.237808513777729e-06 + 8.132406985376577e-06 8.028019552616531e-06 7.924639629701503e-06 7.822260741691212e-06 7.720876445763237e-06 + 7.620480284148957e-06 7.521065743540658e-06 7.422626477381218e-06 7.325156218634066e-06 7.228648532638821e-06 + 7.133097034958690e-06 7.038495423985100e-06 6.944837416133499e-06 6.852116691729515e-06 6.760326924607246e-06 + 6.669461983453847e-06 6.579515704432944e-06 6.490481806747385e-06 6.402354101863004e-06 6.315126452251840e-06 + 6.228792731669073e-06 6.143346764859859e-06 6.058782435540508e-06 5.975093791198315e-06 5.892274772590937e-06 + 5.810319279027480e-06 5.729221306547671e-06 5.648974882411472e-06 5.569574030477156e-06 5.491012732167998e-06 + 5.413285091010444e-06 5.336385298912571e-06 5.260307420244722e-06 5.185045547999291e-06 5.110593849728286e-06 + 5.036946516955677e-06 4.964097720721464e-06 4.892041619202182e-06 4.820772525961763e-06 4.750284753859853e-06 + 4.680572517390150e-06 4.611630102585562e-06 4.543451844884654e-06 4.476032095169469e-06 4.409365173309600e-06 + 4.343445435493855e-06 4.278267378107974e-06 4.213825432046252e-06 4.150113986510229e-06 4.087127510654963e-06 + 4.024860505544460e-06 3.963307478207591e-06 3.902462905546128e-06 3.842321351732513e-06 3.782877469285005e-06 + 3.724125818875267e-06 3.666060976275786e-06 3.608677584308628e-06 3.551970310325800e-06 3.495933813913828e-06 + 3.440562742860537e-06 3.385851865026623e-06 3.331795968547279e-06 3.278389763636986e-06 3.225628015585682e-06 + 3.173505536483180e-06 3.122017155106099e-06 3.071157684657154e-06 3.020921961442045e-06 2.971304937503200e-06 + 2.922301530764381e-06 2.873906622400171e-06 2.826115159163556e-06 2.778922119160790e-06 2.732322492500433e-06 + 2.686311250918327e-06 2.640883427466542e-06 2.596034137909800e-06 2.551758437600915e-06 2.508051388712647e-06 + 2.464908112415978e-06 2.422323753722291e-06 2.380293459852445e-06 2.338812372063220e-06 2.297875719562253e-06 + 2.257478763762930e-06 2.217616712073996e-06 2.178284811840686e-06 2.139478353112250e-06 2.101192645402220e-06 + 2.063422994293474e-06 2.026164721213360e-06 1.989413239181793e-06 1.953163950788084e-06 1.917412231009713e-06 + 1.882153506609316e-06 1.847383234461138e-06 1.813096887995954e-06 1.779289933937322e-06 1.745957881749227e-06 + 1.713096313387221e-06 1.680700776153704e-06 1.648766820412035e-06 1.617290047665242e-06 1.586266083282953e-06 + 1.555690561349229e-06 1.525559115412809e-06 1.495867444877275e-06 1.466611286844381e-06 1.437786342321971e-06 + 1.409388342689011e-06 1.381413059137875e-06 1.353856283643994e-06 1.326713811980504e-06 1.299981452903499e-06 + 1.273655087535907e-06 1.247730601634883e-06 1.222203862466376e-06 1.197070780161529e-06 1.172327293218336e-06 + 1.147969358200551e-06 1.123992934949297e-06 1.100394014305713e-06 1.077168647815731e-06 1.054312872343777e-06 + 1.031822727943270e-06 1.009694299029158e-06 9.879236928228051e-07 9.665070295488333e-07 9.454404356909418e-07 + 9.247200854784831e-07 9.043421911847067e-07 8.843029477247774e-07 8.645985728173436e-07 8.452253193362285e-07 + 8.261794626052351e-07 8.074572875932502e-07 7.890550921071068e-07 7.709692301619030e-07 7.531960701353248e-07 + 7.357319715620587e-07 7.185733287203112e-07 7.017165630618881e-07 6.851581162834306e-07 6.688944388625421e-07 + 6.529220052598067e-07 6.372373411274385e-07 6.218369717692920e-07 6.067174274527125e-07 5.918752755194360e-07 + 5.773071063798692e-07 5.630095271034721e-07 5.489791556312369e-07 5.352126455394792e-07 5.217066864180125e-07 + 5.084579644193884e-07 4.954631845887763e-07 4.827190834887087e-07 4.702224204045173e-07 4.579699684713550e-07 + 4.459585154334098e-07 4.341848919935187e-07 4.226459485782965e-07 4.113385363883691e-07 4.002595352312233e-07 + 3.894058504065020e-07 3.787744086301839e-07 3.683621500987016e-07 3.581660355932383e-07 3.481830676805770e-07 + 3.384102581524441e-07 3.288446273745833e-07 3.194832275224818e-07 3.103231330843525e-07 3.013614373207315e-07 + 2.925952486098954e-07 2.840217031010630e-07 2.756379695267500e-07 2.674412234106971e-07 2.594286576386206e-07 + 2.515974937029081e-07 2.439449754383926e-07 2.364683632309526e-07 2.291649345383248e-07 2.220320002407473e-07 + 2.150668931442167e-07 2.082669548865648e-07 2.016295514473211e-07 1.951520727682157e-07 1.888319311586693e-07 + 1.826665552837694e-07 1.766533931743509e-07 1.707899271779558e-07 1.650736547045015e-07 1.595020857916059e-07 + 1.540727581256184e-07 1.487832309302349e-07 1.436310837043274e-07 1.386139140291348e-07 1.337293426531939e-07 + 1.289750194034745e-07 1.243486077550924e-07 1.198477884856861e-07 1.154702687444825e-07 1.112137774078364e-07 + 1.070760615754017e-07 1.030548878714015e-07 9.914804983102429e-08 9.535336319532080e-08 9.166865877274502e-08 + 8.809178921148019e-08 8.462062987184363e-08 8.125307865123530e-08 7.798705169188094e-08 7.482048486743137e-08 + 7.175134265372113e-08 6.877760756933380e-08 6.589727849023001e-08 6.310837918621049e-08 6.040895419177239e-08 + 5.779706919084610e-08 5.527080986023133e-08 5.282828275733461e-08 5.046762055622123e-08 4.818697371034567e-08 + 4.598451068334482e-08 4.385842456607357e-08 4.180692971968811e-08 3.982825980405518e-08 3.792066966127786e-08 + 3.608243718277188e-08 3.431186206040581e-08 3.260726312426322e-08 3.096697968233847e-08 2.938937298745983e-08 + 2.787282684203093e-08 2.641574418968914e-08 2.501654849393015e-08 2.367368813134603e-08 2.238563078881267e-08 + 2.115086344400587e-08 1.996789606940446e-08 1.883525886916157e-08 1.775150390948272e-08 1.671520402936120e-08 + 1.572495208680648e-08 1.477936511938296e-08 1.387707990026544e-08 1.301675220490221e-08 1.219706138041649e-08 + 1.141670750179082e-08 1.067441065312196e-08 9.968913113355902e-09 9.298978133402818e-09 8.663390331238368e-09 + 8.060955677291694e-09 7.490500025975069e-09 6.950870854385858e-09 6.440937996309972e-09 5.959590797852082e-09 + 5.505739944416565e-09 5.078318901633865e-09 4.676280806472903e-09 4.298600029449081e-09 3.944272776496124e-09 + 3.612315204086912e-09 3.301765808464261e-09 3.011683971683484e-09 2.741149022073358e-09 2.489263438950313e-09 + 2.255150010734707e-09 2.037951439802415e-09 1.836833426869985e-09 1.650981924522248e-09 1.479603458288696e-09 + 1.321927088896133e-09 1.177201927023745e-09 1.044698361371603e-09 9.237089042804517e-10 8.135457713165132e-10 + 7.135428727606122e-10 6.230561233086797e-10 5.414610837010692e-10 4.681552957722881e-10 4.025579739718386e-10 + 3.441080911031397e-10 2.922668865200973e-10 2.465167169238545e-10 2.063598966733955e-10 1.713213823559041e-10 + 1.409467301732644e-10 1.148017117805301e-10 9.247489436372923e-11 7.357503403670199e-11 5.773147403071901e-11 + 4.459623415664643e-11 3.384125546419585e-11 2.515956035071991e-11 1.826656159304613e-11 1.289741553721677e-11 + 8.808852910154413e-12 5.779611749592996e-12 3.608107240050744e-12 2.114775563702074e-12 1.141629414770904e-12 + 5.504076981088132e-13 2.252028793998774e-13 7.135404618680312e-14 1.400208835054596e-14 2.858282411901289e-16 + 0.000000000000000e+00 3.280907692410757e+00 6.559093802140417e+00 9.834554467967374e+00 1.310728583537977e+01 + 1.637728405657552e+01 1.964454529046227e+01 2.290906570265743e+01 2.617084146548816e+01 2.942986875799139e+01 + 3.268614376591378e+01 3.593966268171175e+01 3.919042170455148e+01 4.243841704030890e+01 4.568364490156970e+01 + 4.892610150762930e+01 5.216578308449292e+01 5.540268586487547e+01 5.863680608820168e+01 6.186814000060598e+01 + 6.509668385493259e+01 6.832243391073550e+01 7.154538643427834e+01 7.476553769853463e+01 7.798288398318758e+01 + 8.119742157463018e+01 8.440914676596513e+01 8.761805585700493e+01 9.082414515427180e+01 9.402741097099775e+01 + 9.722784962712448e+01 1.004254574493035e+02 1.036202307708961e+02 1.068121659319733e+02 1.100012592793157e+02 + 1.131875071664140e+02 1.163709059534683e+02 1.195514520073887e+02 1.227291417017950e+02 1.259039714170167e+02 + 1.290759375400930e+02 1.322450364647731e+02 1.354112645915156e+02 1.385746183274891e+02 1.417350940865720e+02 + 1.448926882893522e+02 1.480473973631275e+02 1.511992177419055e+02 1.543481458664036e+02 1.574941781840487e+02 + 1.606373111489777e+02 1.637775412220371e+02 1.669148648707833e+02 1.700492785694823e+02 1.731807787991100e+02 + 1.763093620473519e+02 1.794350248086033e+02 1.825577635839695e+02 1.856775748812652e+02 1.887944552150149e+02 + 1.919084011064531e+02 1.950194090835239e+02 1.981274756808810e+02 2.012325974398883e+02 2.043347709086188e+02 + 2.074339926418558e+02 2.105302592010923e+02 2.136235671545306e+02 2.167139130770834e+02 2.198012935503726e+02 + 2.228857051627302e+02 2.259671445091978e+02 2.290456081915269e+02 2.321210928181784e+02 2.351935950043234e+02 + 2.382631113718425e+02 2.413296385493261e+02 2.443931731720744e+02 2.474537118820972e+02 2.505112513281143e+02 + 2.535657881655549e+02 2.566173190565586e+02 2.596658406699738e+02 2.627113496813596e+02 2.657538427729843e+02 + 2.687933166338259e+02 2.718297679595726e+02 2.748631934526219e+02 2.778935898220815e+02 2.809209537837683e+02 + 2.839452820602094e+02 2.869665713806416e+02 2.899848184810112e+02 2.930000201039745e+02 2.960121729988974e+02 + 2.990212739218558e+02 3.020273196356349e+02 3.050303069097302e+02 3.080302325203465e+02 3.110270932503987e+02 + 3.140208858895110e+02 3.170116072340180e+02 3.199992540869634e+02 3.229838232581013e+02 3.259653115638948e+02 + 3.289437158275174e+02 3.319190328788521e+02 3.348912595544916e+02 3.378603926977383e+02 3.408264291586049e+02 + 3.437893657938130e+02 3.467491994667945e+02 3.497059270476910e+02 3.526595454133537e+02 3.556100514473437e+02 + 3.585574420399318e+02 3.615017140880985e+02 3.644428644955341e+02 3.673808901726388e+02 3.703157880365222e+02 + 3.732475550110041e+02 3.761761880266134e+02 3.791016840205897e+02 3.820240399368814e+02 3.849432527261474e+02 + 3.878593193457557e+02 3.907722367597846e+02 3.936820019390219e+02 3.965886118609651e+02 3.994920635098217e+02 + 4.023923538765087e+02 4.052894799586530e+02 4.081834387605912e+02 4.110742272933696e+02 4.139618425747443e+02 + 4.168462816291812e+02 4.197275414878559e+02 4.226056191886540e+02 4.254805117761704e+02 4.283522163017099e+02 + 4.312207298232872e+02 4.340860494056267e+02 4.369481721201628e+02 4.398070950450389e+02 4.426628152651090e+02 + 4.455153298719365e+02 4.483646359637945e+02 4.512107306456656e+02 4.540536110292430e+02 4.568932742329288e+02 + 4.597297173818351e+02 4.625629376077841e+02 4.653929320493071e+02 4.682196978516460e+02 4.710432321667516e+02 + 4.738635321532851e+02 4.766805949766169e+02 4.794944178088276e+02 4.823049978287075e+02 4.851123322217564e+02 + 4.879164181801841e+02 4.907172529029099e+02 4.935148335955632e+02 4.963091574704831e+02 4.991002217467178e+02 + 5.018880236500261e+02 5.046725604128764e+02 5.074538292744463e+02 5.102318274806237e+02 5.130065522840063e+02 + 5.157780009439010e+02 5.185461707263250e+02 5.213110589040049e+02 5.240726627563774e+02 5.268309795695885e+02 + 5.295860066364945e+02 5.323377412566609e+02 5.350861807363634e+02 5.378313223885873e+02 5.405731635330272e+02 + 5.433117014960885e+02 5.460469336108854e+02 5.487788572172420e+02 5.515074696616928e+02 5.542327682974811e+02 + 5.569547504845609e+02 5.596734135895950e+02 5.623887549859570e+02 5.651007720537292e+02 5.678094621797045e+02 + 5.705148227573850e+02 5.732168511869830e+02 5.759155448754203e+02 5.786109012363282e+02 5.813029176900482e+02 + 5.839915916636313e+02 5.866769205908384e+02 5.893589019121401e+02 5.920375330747167e+02 5.947128115324583e+02 + 5.973847347459648e+02 6.000533001825459e+02 6.027185053162206e+02 6.053803476277183e+02 6.080388246044777e+02 + 6.106939337406476e+02 6.133456725370861e+02 6.159940385013617e+02 6.186390291477520e+02 6.212806419972447e+02 + 6.239188745775372e+02 6.265537244230364e+02 6.291851890748597e+02 6.318132660808333e+02 6.344379529954938e+02 + 6.370592473800871e+02 6.396771468025696e+02 6.422916488376064e+02 6.449027510665734e+02 6.475104510775553e+02 + 6.501147464653474e+02 6.527156348314542e+02 6.553131137840901e+02 6.579071809381794e+02 6.604978339153558e+02 + 6.630850703439634e+02 6.656688878590552e+02 6.682492841023947e+02 6.708262567224546e+02 6.733998033744177e+02 + 6.759699217201766e+02 6.785366094283333e+02 6.810998641742000e+02 6.836596836397980e+02 6.862160655138592e+02 + 6.887690074918247e+02 6.913185072758453e+02 6.938645625747821e+02 6.964071711042051e+02 6.989463305863949e+02 + 7.014820387503412e+02 7.040142933317441e+02 7.065430920730126e+02 7.090684327232666e+02 7.115903130383348e+02 + 7.141087307807558e+02 7.166236837197782e+02 7.191351696313601e+02 7.216431862981700e+02 7.241477315095852e+02 + 7.266488030616937e+02 7.291463987572921e+02 7.316405164058881e+02 7.341311538236981e+02 7.366183088336488e+02 + 7.391019792653765e+02 7.415821629552270e+02 7.440588577462564e+02 7.465320614882301e+02 7.490017720376235e+02 + 7.514679872576214e+02 7.539307050181191e+02 7.563899231957208e+02 7.588456396737411e+02 7.612978523422037e+02 + 7.637465590978424e+02 7.661917578441014e+02 7.686334464911333e+02 7.710716229558018e+02 7.735062851616793e+02 + 7.759374310390485e+02 7.783650585249019e+02 7.807891655629417e+02 7.832097501035795e+02 7.856268101039369e+02 + 7.880403435278453e+02 7.904503483458460e+02 7.928568225351897e+02 7.952597640798369e+02 7.976591709704585e+02 + 8.000550412044341e+02 8.024473727858536e+02 8.048361637255169e+02 8.072214120409334e+02 8.096031157563222e+02 + 8.119812729026120e+02 8.143558815174417e+02 8.167269396451593e+02 8.190944453368236e+02 8.214583966502021e+02 + 8.238187916497725e+02 8.261756284067224e+02 8.285289049989487e+02 8.308786195110586e+02 8.332247700343684e+02 + 8.355673546669050e+02 8.379063715134042e+02 8.402418186853124e+02 8.425736943007848e+02 8.449019964846872e+02 + 8.472267233685945e+02 8.495478730907921e+02 8.518654437962743e+02 8.541794336367457e+02 8.564898407706205e+02 + 8.587966633630226e+02 8.610998995857861e+02 8.633995476174539e+02 8.656956056432798e+02 8.679880718552264e+02 + 8.702769444519665e+02 8.725622216388828e+02 8.748439016280670e+02 8.771219826383219e+02 8.793964628951586e+02 + 8.816673406307990e+02 8.839346140841741e+02 8.861982815009252e+02 8.884583411334027e+02 8.907147912406675e+02 + 8.929676300884897e+02 8.952168559493493e+02 8.974624671024361e+02 8.997044618336495e+02 9.019428384355992e+02 + 9.041775952076036e+02 9.064087304556922e+02 9.086362424926032e+02 9.108601296377846e+02 9.130803902173951e+02 + 9.152970225643020e+02 9.175100250180832e+02 9.197193959250255e+02 9.219251336381268e+02 9.241272365170935e+02 + 9.263257029283417e+02 9.285205312449986e+02 9.307117198468995e+02 9.328992671205907e+02 9.350831714593277e+02 + 9.372634312630761e+02 9.394400449385104e+02 9.416130108990160e+02 9.437823275646871e+02 9.459479933623287e+02 + 9.481100067254541e+02 9.502683660942876e+02 9.524230699157629e+02 9.545741166435229e+02 9.567215047379214e+02 + 9.588652326660207e+02 9.610052989015940e+02 9.631417019251231e+02 9.652744402238004e+02 9.674035122915279e+02 + 9.695289166289172e+02 9.716506517432896e+02 9.737687161486764e+02 9.758831083658184e+02 9.779938269221661e+02 + 9.801008703518804e+02 9.822042371958310e+02 9.843039260015983e+02 9.863999353234714e+02 9.884922637224498e+02 + 9.905809097662435e+02 9.926658720292703e+02 9.947471490926598e+02 9.968247395442500e+02 9.988986419785891e+02 + 1.000968854996935e+03 1.003035377207256e+03 1.005098207224229e+03 1.007157343669241e+03 1.009212785170389e+03 + 1.011264530362480e+03 1.013312577887031e+03 1.015356926392268e+03 1.017397574533126e+03 1.019434520971252e+03 + 1.021467764375000e+03 1.023497303419437e+03 1.025523136786337e+03 1.027545263164185e+03 1.029563681248175e+03 + 1.031578389740212e+03 1.033589387348909e+03 1.035596672789591e+03 1.037600244784291e+03 1.039600102061752e+03 + 1.041596243357428e+03 1.043588667413480e+03 1.045577372978782e+03 1.047562358808916e+03 1.049543623666173e+03 + 1.051521166319557e+03 1.053494985544777e+03 1.055465080124256e+03 1.057431448847125e+03 1.059394090509224e+03 + 1.061353003913104e+03 1.063308187868025e+03 1.065259641189957e+03 1.067207362701581e+03 1.069151351232285e+03 + 1.071091605618170e+03 1.073028124702043e+03 1.074960907333424e+03 1.076889952368542e+03 1.078815258670335e+03 + 1.080736825108451e+03 1.082654650559248e+03 1.084568733905793e+03 1.086479074037864e+03 1.088385669851947e+03 + 1.090288520251241e+03 1.092187624145651e+03 1.094082980451794e+03 1.095974588092995e+03 1.097862445999292e+03 + 1.099746553107428e+03 1.101626908360861e+03 1.103503510709754e+03 1.105376359110983e+03 1.107245452528133e+03 + 1.109110789931497e+03 1.110972370298081e+03 1.112830192611597e+03 1.114684255862470e+03 1.116534559047833e+03 + 1.118381101171529e+03 1.120223881244111e+03 1.122062898282842e+03 1.123898151311694e+03 1.125729639361349e+03 + 1.127557361469200e+03 1.129381316679347e+03 1.131201504042604e+03 1.133017922616489e+03 1.134830571465235e+03 + 1.136639449659783e+03 1.138444556277782e+03 1.140245890403593e+03 1.142043451128286e+03 1.143837237549640e+03 + 1.145627248772146e+03 1.147413483907002e+03 1.149195942072117e+03 1.150974622392110e+03 1.152749523998310e+03 + 1.154520646028755e+03 1.156287987628192e+03 1.158051547948079e+03 1.159811326146585e+03 1.161567321388586e+03 + 1.163319532845669e+03 1.165067959696131e+03 1.166812601124979e+03 1.168553456323928e+03 1.170290524491405e+03 + 1.172023804832545e+03 1.173753296559195e+03 1.175478998889909e+03 1.177200911049953e+03 1.178919032271301e+03 + 1.180633361792637e+03 1.182343898859357e+03 1.184050642723563e+03 1.185753592644071e+03 1.187452747886402e+03 + 1.189148107722792e+03 1.190839671432183e+03 1.192527438300227e+03 1.194211407619287e+03 1.195891578688435e+03 + 1.197567950813455e+03 1.199240523306837e+03 1.200909295487783e+03 1.202574266682204e+03 1.204235436222721e+03 + 1.205892803448666e+03 1.207546367706079e+03 1.209196128347710e+03 1.210842084733019e+03 1.212484236228177e+03 + 1.214122582206062e+03 1.215757122046265e+03 1.217387855135084e+03 1.219014780865528e+03 1.220637898637316e+03 + 1.222257207856876e+03 1.223872707937346e+03 1.225484398298575e+03 1.227092278367119e+03 1.228696347576247e+03 + 1.230296605365935e+03 1.231893051182870e+03 1.233485684480449e+03 1.235074504718779e+03 1.236659511364675e+03 + 1.238240703891664e+03 1.239818081779981e+03 1.241391644516571e+03 1.242961391595090e+03 1.244527322515903e+03 + 1.246089436786084e+03 1.247647733919417e+03 1.249202213436398e+03 1.250752874864230e+03 1.252299717736826e+03 + 1.253842741594810e+03 1.255381945985516e+03 1.256917330462986e+03 1.258448894587972e+03 1.259976637927938e+03 + 1.261500560057056e+03 1.263020660556207e+03 1.264536939012984e+03 1.266049395021687e+03 1.267558028183329e+03 + 1.269062838105629e+03 1.270563824403019e+03 1.272060986696640e+03 1.273554324614341e+03 1.275043837790682e+03 + 1.276529525866934e+03 1.278011388491075e+03 1.279489425317796e+03 1.280963636008494e+03 1.282434020231280e+03 + 1.283900577660971e+03 1.285363307979095e+03 1.286822210873891e+03 1.288277286040307e+03 1.289728533179999e+03 + 1.291175952001336e+03 1.292619542219393e+03 1.294059303555960e+03 1.295495235739530e+03 1.296927338505312e+03 + 1.298355611595221e+03 1.299780054757883e+03 1.301200667748633e+03 1.302617450329516e+03 1.304030402269289e+03 + 1.305439523343415e+03 1.306844813334069e+03 1.308246272030136e+03 1.309643899227210e+03 1.311037694727594e+03 + 1.312427658340302e+03 1.313813789881058e+03 1.315196089172293e+03 1.316574556043153e+03 1.317949190329488e+03 + 1.319319991873862e+03 1.320686960525546e+03 1.322050096140523e+03 1.323409398581483e+03 1.324764867717829e+03 + 1.326116503425671e+03 1.327464305587830e+03 1.328808274093838e+03 1.330148408839934e+03 1.331484709729068e+03 + 1.332817176670901e+03 1.334145809581802e+03 1.335470608384850e+03 1.336791573009835e+03 1.338108703393256e+03 + 1.339421999478320e+03 1.340731461214948e+03 1.342037088559766e+03 1.343338881476113e+03 1.344636839934036e+03 + 1.345930963910293e+03 1.347221253388351e+03 1.348507708358388e+03 1.349790328817288e+03 1.351069114768650e+03 + 1.352344066222779e+03 1.353615183196692e+03 1.354882465714113e+03 1.356145913805479e+03 1.357405527507935e+03 + 1.358661306865335e+03 1.359913251928245e+03 1.361161362753938e+03 1.362405639406399e+03 1.363646081956323e+03 + 1.364882690481112e+03 1.366115465064880e+03 1.367344405798451e+03 1.368569512779358e+03 1.369790786111843e+03 + 1.371008225906858e+03 1.372221832282067e+03 1.373431605361840e+03 1.374637545277261e+03 1.375839652166119e+03 + 1.377037926172918e+03 1.378232367448867e+03 1.379422976151887e+03 1.380609752446609e+03 1.381792696504374e+03 + 1.382971808503231e+03 1.384147088627939e+03 1.385318537069970e+03 1.386486154027501e+03 1.387649939705423e+03 + 1.388809894315333e+03 1.389966018075540e+03 1.391118311211063e+03 1.392266773953630e+03 1.393411406541678e+03 + 1.394552209220356e+03 1.395689182241520e+03 1.396822325863737e+03 1.397951640352285e+03 1.399077125979150e+03 + 1.400198783023028e+03 1.401316611769325e+03 1.402430612510158e+03 1.403540785544351e+03 1.404647131177441e+03 + 1.405749649721672e+03 1.406848341496000e+03 1.407943206826088e+03 1.409034246044311e+03 1.410121459489754e+03 + 1.411204847508209e+03 1.412284410452182e+03 1.413360148680885e+03 1.414432062560241e+03 1.415500152462884e+03 + 1.416564418768155e+03 1.417624861862108e+03 1.418681482137504e+03 1.419734279993815e+03 1.420783255837224e+03 + 1.421828410080621e+03 1.422869743143608e+03 1.423907255452495e+03 1.424940947440303e+03 1.425970819546763e+03 + 1.426996872218314e+03 1.428019105908108e+03 1.429037521076003e+03 1.430052118188569e+03 1.431062897719085e+03 + 1.432069860147540e+03 1.433073005960632e+03 1.434072335651771e+03 1.435067849721075e+03 1.436059548675370e+03 + 1.437047433028196e+03 1.438031503299800e+03 1.439011760017138e+03 1.439988203713878e+03 1.440960834930396e+03 + 1.441929654213780e+03 1.442894662117825e+03 1.443855859203037e+03 1.444813246036631e+03 1.445766823192535e+03 + 1.446716591251382e+03 1.447662550800518e+03 1.448604702433997e+03 1.449543046752585e+03 1.450477584363755e+03 + 1.451408315881691e+03 1.452335241927287e+03 1.453258363128147e+03 1.454177680118583e+03 1.455093193539620e+03 + 1.456004904038989e+03 1.456912812271134e+03 1.457816918897206e+03 1.458717224585068e+03 1.459613730009291e+03 + 1.460506435851157e+03 1.461395342798658e+03 1.462280451546494e+03 1.463161762796076e+03 1.464039277255525e+03 + 1.464912995639670e+03 1.465782918670054e+03 1.466649047074924e+03 1.467511381589240e+03 1.468369922954673e+03 + 1.469224671919600e+03 1.470075629239112e+03 1.470922795675006e+03 1.471766171995790e+03 1.472605758976684e+03 + 1.473441557399614e+03 1.474273568053219e+03 1.475101791732846e+03 1.475926229240551e+03 1.476746881385102e+03 + 1.477563748981976e+03 1.478376832853358e+03 1.479186133828146e+03 1.479991652741944e+03 1.480793390437068e+03 + 1.481591347762545e+03 1.482385525574108e+03 1.483175924734204e+03 1.483962546111986e+03 1.484745390583318e+03 + 1.485524459030776e+03 1.486299752343644e+03 1.487071271417914e+03 1.487839017156289e+03 1.488602990468185e+03 + 1.489363192269722e+03 1.490119623483735e+03 1.490872285039765e+03 1.491621177874064e+03 1.492366302929595e+03 + 1.493107661156030e+03 1.493845253509749e+03 1.494579080953843e+03 1.495309144458115e+03 1.496035444999074e+03 + 1.496757983559942e+03 1.497476761130647e+03 1.498191778707831e+03 1.498903037294843e+03 1.499610537901742e+03 + 1.500314281545298e+03 1.501014269248990e+03 1.501710502043006e+03 1.502402980964245e+03 1.503091707056315e+03 + 1.503776681369534e+03 1.504457904960931e+03 1.505135378894241e+03 1.505809104239914e+03 1.506479082075105e+03 + 1.507145313483682e+03 1.507807799556220e+03 1.508466541390007e+03 1.509121540089038e+03 1.509772796764020e+03 + 1.510420312532367e+03 1.511064088518205e+03 1.511704125852369e+03 1.512340425672404e+03 1.512972989122564e+03 + 1.513601817353814e+03 1.514226911523828e+03 1.514848272796989e+03 1.515465902344391e+03 1.516079801343838e+03 + 1.516689970979842e+03 1.517296412443626e+03 1.517899126933124e+03 1.518498115652977e+03 1.519093379814537e+03 + 1.519684920635866e+03 1.520272739341736e+03 1.520856837163628e+03 1.521437215339733e+03 1.522013875114953e+03 + 1.522586817740897e+03 1.523156044475887e+03 1.523721556584951e+03 1.524283355339831e+03 1.524841442018975e+03 + 1.525395817907543e+03 1.525946484297405e+03 1.526493442487138e+03 1.527036693782033e+03 1.527576239494086e+03 + 1.528112080942007e+03 1.528644219451213e+03 1.529172656353831e+03 1.529697392988700e+03 1.530218430701367e+03 + 1.530735770844087e+03 1.531249414775829e+03 1.531759363862268e+03 1.532265619475790e+03 1.532768182995492e+03 + 1.533267055807180e+03 1.533762239303368e+03 1.534253734883281e+03 1.534741543952856e+03 1.535225667924735e+03 + 1.535706108218275e+03 1.536182866259539e+03 1.536655943481301e+03 1.537125341323045e+03 1.537591061230964e+03 + 1.538053104657961e+03 1.538511473063650e+03 1.538966167914353e+03 1.539417190683102e+03 1.539864542849641e+03 + 1.540308225900420e+03 1.540748241328602e+03 1.541184590634058e+03 1.541617275323370e+03 1.542046296909827e+03 + 1.542471656913432e+03 1.542893356860894e+03 1.543311398285634e+03 1.543725782727782e+03 1.544136511734178e+03 + 1.544543586858370e+03 1.544947009660620e+03 1.545346781707894e+03 1.545742904573873e+03 1.546135379838945e+03 + 1.546524209090207e+03 1.546909393921469e+03 1.547290935933248e+03 1.547668836732771e+03 1.548043097933976e+03 + 1.548413721157510e+03 1.548780708030729e+03 1.549144060187701e+03 1.549503779269201e+03 1.549859866922715e+03 + 1.550212324802440e+03 1.550561154569281e+03 1.550906357890854e+03 1.551247936441483e+03 1.551585891902203e+03 + 1.551920225960758e+03 1.552250940311604e+03 1.552578036655905e+03 1.552901516701533e+03 1.553221382163073e+03 + 1.553537634761818e+03 1.553850276225772e+03 1.554159308289647e+03 1.554464732694865e+03 1.554766551189559e+03 + 1.555064765528572e+03 1.555359377473454e+03 1.555650388792468e+03 1.555937801260586e+03 1.556221616659488e+03 + 1.556501836777564e+03 1.556778463409917e+03 1.557051498358356e+03 1.557320943431401e+03 1.557586800444283e+03 + 1.557849071218940e+03 1.558107757584023e+03 1.558362861374890e+03 1.558614384433611e+03 1.558862328608964e+03 + 1.559106695756438e+03 1.559347487738230e+03 1.559584706423249e+03 1.559818353687112e+03 1.560048431412147e+03 + 1.560274941487391e+03 1.560497885808591e+03 1.560717266278204e+03 1.560933084805396e+03 1.561145343306044e+03 + 1.561354043702732e+03 1.561559187924758e+03 1.561760777908126e+03 1.561958815595552e+03 1.562153302936461e+03 + 1.562344241886987e+03 1.562531634409975e+03 1.562715482474979e+03 1.562895788058264e+03 1.563072553142803e+03 + 1.563245779718279e+03 1.563415469781085e+03 1.563581625334326e+03 1.563744248387813e+03 1.563903340958068e+03 + 1.564058905068325e+03 1.564210942748526e+03 1.564359456035321e+03 1.564504446972073e+03 1.564645917608853e+03 + 1.564783870002442e+03 1.564918306216331e+03 1.565049228320720e+03 1.565176638392519e+03 1.565300538515349e+03 + 1.565420930779540e+03 1.565537817282130e+03 1.565651200126870e+03 1.565761081424219e+03 1.565867463291344e+03 + 1.565970347852125e+03 1.566069737237150e+03 1.566165633583717e+03 1.566258039035835e+03 1.566346955744220e+03 + 1.566432385866300e+03 1.566514331566212e+03 1.566592795014803e+03 1.566667778389629e+03 1.566739283874957e+03 + 1.566807313661764e+03 1.566871869947734e+03 1.566932954937263e+03 1.566990570841457e+03 1.567044719878131e+03 + 1.567095404271811e+03 1.567142626253729e+03 1.567186388061831e+03 1.567226691940771e+03 1.567263540141913e+03 + 1.567296934923331e+03 1.567326878549808e+03 1.567353373292836e+03 1.567376421430620e+03 1.567396025248071e+03 + 1.567412187036812e+03 1.567424909095176e+03 1.567434193728203e+03 1.567440043247646e+03 1.567442459971967e+03 + 1.567441446226336e+03 1.567437004342634e+03 1.567429136659453e+03 1.567417845522091e+03 1.567403133282561e+03 + 1.567385002299581e+03 1.567363454938582e+03 1.567338493571702e+03 1.567310120577791e+03 1.567278338342408e+03 + 1.567243149257822e+03 1.567204555723011e+03 1.567162560143663e+03 1.567117164932177e+03 1.567068372507660e+03 + 1.567016185295929e+03 1.566960605729512e+03 1.566901636247646e+03 1.566839279296277e+03 1.566773537328063e+03 + 1.566704412802369e+03 1.566631908185271e+03 1.566556025949555e+03 1.566476768574717e+03 1.566394138546961e+03 + 1.566308138359204e+03 1.566218770511069e+03 1.566126037508891e+03 1.566029941865714e+03 1.565930486101294e+03 + 1.565827672742092e+03 1.565721504321283e+03 1.565611983378751e+03 1.565499112461087e+03 1.565382894121595e+03 + 1.565263330920288e+03 1.565140425423888e+03 1.565014180205826e+03 1.564884597846246e+03 1.564751680931997e+03 + 1.564615432056643e+03 1.564475853820452e+03 1.564332948830408e+03 1.564186719700199e+03 1.564037169050227e+03 + 1.563884299507601e+03 1.563728113706142e+03 1.563568614286379e+03 1.563405803895550e+03 1.563239685187607e+03 + 1.563070260823207e+03 1.562897533469719e+03 1.562721505801220e+03 1.562542180498501e+03 1.562359560249057e+03 + 1.562173647747097e+03 1.561984445693539e+03 1.561791956796009e+03 1.561596183768845e+03 1.561397129333092e+03 + 1.561194796216507e+03 1.560989187153558e+03 1.560780304885418e+03 1.560568152159974e+03 1.560352731731822e+03 + 1.560134046362267e+03 1.559912098819323e+03 1.559686891877715e+03 1.559458428318879e+03 1.559226710930956e+03 + 1.558991742508803e+03 1.558753525853981e+03 1.558512063774766e+03 1.558267359086140e+03 1.558019414609795e+03 + 1.557768233174136e+03 1.557513817614273e+03 1.557256170772030e+03 1.556995295495938e+03 1.556731194641239e+03 + 1.556463871069885e+03 1.556193327650536e+03 1.555919567258564e+03 1.555642592776049e+03 1.555362407091783e+03 + 1.555079013101264e+03 1.554792413706704e+03 1.554502611817021e+03 1.554209610347846e+03 1.553913412221517e+03 + 1.553614020367084e+03 1.553311437720305e+03 1.553005667223649e+03 1.552696711826295e+03 1.552384574484129e+03 + 1.552069258159750e+03 1.551750765822466e+03 1.551429100448294e+03 1.551104265019960e+03 1.550776262526902e+03 + 1.550445095965265e+03 1.550110768337907e+03 1.549773282654394e+03 1.549432641931000e+03 1.549088849190713e+03 + 1.548741907463227e+03 1.548391819784946e+03 1.548038589198987e+03 1.547682218755173e+03 1.547322711510039e+03 + 1.546960070526829e+03 1.546594298875496e+03 1.546225399632705e+03 1.545853375881829e+03 1.545478230712950e+03 + 1.545099967222861e+03 1.544718588515066e+03 1.544334097699777e+03 1.543946497893915e+03 1.543555792221112e+03 + 1.543161983811711e+03 1.542765075802762e+03 1.542365071338026e+03 1.541961973567975e+03 1.541555785649789e+03 + 1.541146510747358e+03 1.540734152031283e+03 1.540318712678874e+03 1.539900195874149e+03 1.539478604807839e+03 + 1.539053942677383e+03 1.538626212686929e+03 1.538195418047336e+03 1.537761561976173e+03 1.537324647697717e+03 + 1.536884678442957e+03 1.536441657449592e+03 1.535995587962026e+03 1.535546473231378e+03 1.535094316515475e+03 + 1.534639121078853e+03 1.534180890192759e+03 1.533719627135150e+03 1.533255335190690e+03 1.532788017650757e+03 + 1.532317677813435e+03 1.531844318983518e+03 1.531367944472514e+03 1.530888557598635e+03 1.530406161686807e+03 + 1.529920760068664e+03 1.529432356082550e+03 1.528940953073517e+03 1.528446554393331e+03 1.527949163400464e+03 + 1.527448783460099e+03 1.526945417944129e+03 1.526439070231157e+03 1.525929743706494e+03 1.525417441762163e+03 + 1.524902167796895e+03 1.524383925216131e+03 1.523862717432025e+03 1.523338547863434e+03 1.522811419935932e+03 + 1.522281337081799e+03 1.521748302740024e+03 1.521212320356308e+03 1.520673393383061e+03 1.520131525279401e+03 + 1.519586719511159e+03 1.519038979550873e+03 1.518488308877793e+03 1.517934710977876e+03 1.517378189343791e+03 + 1.516818747474916e+03 1.516256388877339e+03 1.515691117063858e+03 1.515122935553979e+03 1.514551847873920e+03 + 1.513977857556607e+03 1.513400968141679e+03 1.512821183175479e+03 1.512238506211065e+03 1.511652940808203e+03 + 1.511064490533368e+03 1.510473158959745e+03 1.509878949667230e+03 1.509281866242427e+03 1.508681912278651e+03 + 1.508079091375926e+03 1.507473407140987e+03 1.506864863187277e+03 1.506253463134950e+03 1.505639210610869e+03 + 1.505022109248608e+03 1.504402162688449e+03 1.503779374577385e+03 1.503153748569118e+03 1.502525288324061e+03 + 1.501893997509335e+03 1.501259879798773e+03 1.500622938872914e+03 1.499983178419011e+03 1.499340602131025e+03 + 1.498695213709626e+03 1.498047016862194e+03 1.497396015302820e+03 1.496742212752304e+03 1.496085612938155e+03 + 1.495426219594593e+03 1.494764036462547e+03 1.494099067289655e+03 1.493431315830267e+03 1.492760785845442e+03 + 1.492087481102946e+03 1.491411405377259e+03 1.490732562449567e+03 1.490050956107769e+03 1.489366590146471e+03 + 1.488679468366991e+03 1.487989594577355e+03 1.487296972592300e+03 1.486601606233272e+03 1.485903499328426e+03 + 1.485202655712629e+03 1.484499079227457e+03 1.483792773721193e+03 1.483083743048834e+03 1.482371991072084e+03 + 1.481657521659358e+03 1.480940338685780e+03 1.480220446033183e+03 1.479497847590113e+03 1.478772547251821e+03 + 1.478044548920272e+03 1.477313856504138e+03 1.476580473918802e+03 1.475844405086357e+03 1.475105653935605e+03 + 1.474364224402058e+03 1.473620120427938e+03 1.472873345962177e+03 1.472123904960415e+03 1.471371801385004e+03 + 1.470617039205005e+03 1.469859622396187e+03 1.469099554941032e+03 1.468336840828730e+03 1.467571484055180e+03 + 1.466803488622991e+03 1.466032858541484e+03 1.465259597826687e+03 1.464483710501340e+03 1.463705200594890e+03 + 1.462924072143496e+03 1.462140329190026e+03 1.461353975784058e+03 1.460565015981880e+03 1.459773453846489e+03 + 1.458979293447591e+03 1.458182538861605e+03 1.457383194171656e+03 1.456581263467582e+03 1.455776750845927e+03 + 1.454969660409948e+03 1.454159996269611e+03 1.453347762541590e+03 1.452532963349272e+03 1.451715602822750e+03 + 1.450895685098830e+03 1.450073214321026e+03 1.449248194639563e+03 1.448420630211373e+03 1.447590525200101e+03 + 1.446757883776100e+03 1.445922710116434e+03 1.445085008404874e+03 1.444244782831905e+03 1.443402037594718e+03 + 1.442556776897215e+03 1.441709004950008e+03 1.440858725970420e+03 1.440005944182481e+03 1.439150663816933e+03 + 1.438292889111226e+03 1.437432624309523e+03 1.436569873662692e+03 1.435704641428314e+03 1.434836931870678e+03 + 1.433966749260786e+03 1.433094097876346e+03 1.432218982001777e+03 1.431341405928208e+03 1.430461373953479e+03 + 1.429578890382137e+03 1.428693959525441e+03 1.427806585701360e+03 1.426916773234569e+03 1.426024526456458e+03 + 1.425129849705122e+03 1.424232747325370e+03 1.423333223668719e+03 1.422431283093393e+03 1.421526929964331e+03 + 1.420620168653178e+03 1.419711003538289e+03 1.418799439004731e+03 1.417885479444278e+03 1.416969129255415e+03 + 1.416050392843337e+03 1.415129274619950e+03 1.414205779003866e+03 1.413279910420411e+03 1.412351673301618e+03 + 1.411421072086230e+03 1.410488111219700e+03 1.409552795154193e+03 1.408615128348581e+03 1.407675115268446e+03 + 1.406732760386080e+03 1.405788068180486e+03 1.404841043137375e+03 1.403891689749170e+03 1.402940012515001e+03 + 1.401986015940709e+03 1.401029704538846e+03 1.400071082828672e+03 1.399110155336157e+03 1.398146926593981e+03 + 1.397181401141535e+03 1.396213583524918e+03 1.395243478296938e+03 1.394271090017116e+03 1.393296423251680e+03 + 1.392319482573570e+03 1.391340272562432e+03 1.390358797804626e+03 1.389375062893219e+03 1.388389072427989e+03 + 1.387400831015423e+03 1.386410343268718e+03 1.385417613807782e+03 1.384422647259231e+03 1.383425448256391e+03 + 1.382426021439299e+03 1.381424371454700e+03 1.380420502956051e+03 1.379414420603515e+03 1.378406129063970e+03 + 1.377395633010999e+03 1.376382937124898e+03 1.375368046092671e+03 1.374350964608031e+03 1.373331697371403e+03 + 1.372310249089921e+03 1.371286624477428e+03 1.370260828254477e+03 1.369232865148331e+03 1.368202739892964e+03 + 1.367170457229056e+03 1.366136021904002e+03 1.365099438671902e+03 1.364060712293568e+03 1.363019847536522e+03 + 1.361976849174995e+03 1.360931721989928e+03 1.359884470768972e+03 1.358835100306487e+03 1.357783615403544e+03 + 1.356730020867921e+03 1.355674321514110e+03 1.354616522163310e+03 1.353556627643430e+03 1.352494642789090e+03 + 1.351430572441617e+03 1.350364421449050e+03 1.349296194666138e+03 1.348225896954338e+03 1.347153533181818e+03 + 1.346079108223457e+03 1.345002626960841e+03 1.343924094282267e+03 1.342843515082743e+03 1.341760894263984e+03 + 1.340676236734416e+03 1.339589547409177e+03 1.338500831210112e+03 1.337410093065776e+03 1.336317337911434e+03 + 1.335222570689062e+03 1.334125796347346e+03 1.333027019841677e+03 1.331926246134163e+03 1.330823480193616e+03 + 1.329718726995561e+03 1.328611991522230e+03 1.327503278762568e+03 1.326392593712228e+03 1.325279941373571e+03 + 1.324165326755672e+03 1.323048754874311e+03 1.321930230751983e+03 1.320809759417887e+03 1.319687345907936e+03 + 1.318562995264752e+03 1.317436712537665e+03 1.316308502782716e+03 1.315178371062656e+03 1.314046322446946e+03 + 1.312912362011755e+03 1.311776494839963e+03 1.310638726021160e+03 1.309499060651645e+03 1.308357503834428e+03 + 1.307214060679228e+03 1.306068736302473e+03 1.304921535827301e+03 1.303772464383560e+03 1.302621527107810e+03 + 1.301468729143317e+03 1.300314075640058e+03 1.299157571754721e+03 1.297999222650704e+03 1.296839033498112e+03 + 1.295677009473761e+03 1.294513155761180e+03 1.293347477550602e+03 1.292179980038974e+03 1.291010668429951e+03 + 1.289839547933899e+03 1.288666623767893e+03 1.287491901155716e+03 1.286315385327865e+03 1.285137081521542e+03 + 1.283956994980662e+03 1.282775130955849e+03 1.281591494704436e+03 1.280406091490466e+03 1.279218926584693e+03 + 1.278030005264579e+03 1.276839332814297e+03 1.275646914524728e+03 1.274452755693465e+03 1.273256861624810e+03 + 1.272059237629775e+03 1.270859889026079e+03 1.269658821138155e+03 1.268456039297144e+03 1.267251548840895e+03 + 1.266045355113969e+03 1.264837463467636e+03 1.263627879259876e+03 1.262416607855379e+03 1.261203654625543e+03 + 1.259989024948479e+03 1.258772724209004e+03 1.257554757798647e+03 1.256335131115646e+03 1.255113849564950e+03 + 1.253890918558217e+03 1.252666343513813e+03 1.251440129856817e+03 1.250212283019015e+03 1.248982808438904e+03 + 1.247751711561691e+03 1.246518997839292e+03 1.245284672730334e+03 1.244048741700151e+03 1.242811210220790e+03 + 1.241572083771006e+03 1.240331367836264e+03 1.239089067908740e+03 1.237845189487317e+03 1.236599738077590e+03 + 1.235352719191863e+03 1.234104138349150e+03 1.232854001075175e+03 1.231602312902370e+03 1.230349079369880e+03 + 1.229094306023557e+03 1.227837998415964e+03 1.226580162106373e+03 1.225320802660766e+03 1.224059925651835e+03 + 1.222797536658982e+03 1.221533641268318e+03 1.220268245072664e+03 1.219001353671552e+03 1.217732972671222e+03 + 1.216463107684624e+03 1.215191764331420e+03 1.213918948237977e+03 1.212644665037377e+03 1.211368920369408e+03 + 1.210091719880570e+03 1.208813069224072e+03 1.207532974059833e+03 1.206251440054480e+03 1.204968472881353e+03 + 1.203684078220499e+03 1.202398261758676e+03 1.201111029189351e+03 1.199822386212701e+03 1.198532338535615e+03 + 1.197240891871687e+03 1.195948051941225e+03 1.194653824471246e+03 1.193358215195474e+03 1.192061229854346e+03 + 1.190762874195007e+03 1.189463153971313e+03 1.188162074943828e+03 1.186859642879827e+03 1.185555863553295e+03 + 1.184250742744927e+03 1.182944286242125e+03 1.181636499839004e+03 1.180327389336388e+03 1.179016960541809e+03 + 1.177705219269511e+03 1.176392171340446e+03 1.175077822582277e+03 1.173762178829377e+03 1.172445245922827e+03 + 1.171127029710419e+03 1.169807536046655e+03 1.168486770792745e+03 1.167164739816612e+03 1.165841448992886e+03 + 1.164516904202907e+03 1.163191111334726e+03 1.161864076283103e+03 1.160535804949508e+03 1.159206303242120e+03 + 1.157875577075829e+03 1.156543632372233e+03 1.155210475059642e+03 1.153876111073074e+03 1.152540546354257e+03 + 1.151203786851631e+03 1.149865838520342e+03 1.148526707322247e+03 1.147186399225916e+03 1.145844920206624e+03 + 1.144502276246358e+03 1.143158473333815e+03 1.141813517464402e+03 1.140467414640234e+03 1.139120170870139e+03 + 1.137771792169650e+03 1.136422284561014e+03 1.135071654073185e+03 1.133719906741829e+03 1.132367048609320e+03 + 1.131013085724743e+03 1.129658024143891e+03 1.128301869929270e+03 1.126944629150092e+03 1.125586307882280e+03 + 1.124226912208469e+03 1.122866448218001e+03 1.121504922006928e+03 1.120142339678013e+03 1.118778707340729e+03 + 1.117414031111256e+03 1.116048317112488e+03 1.114681571474025e+03 1.113313800332179e+03 1.111945009829970e+03 + 1.110575206117129e+03 1.109204395350097e+03 1.107832583692024e+03 1.106459777312770e+03 1.105085982388904e+03 + 1.103711205103706e+03 1.102335451647166e+03 1.100958728215983e+03 1.099581041013564e+03 1.098202396250028e+03 + 1.096822800142205e+03 1.095442258913632e+03 1.094060778794555e+03 1.092678366021934e+03 1.091295026839436e+03 + 1.089910767497437e+03 1.088525594253023e+03 1.087139513369993e+03 1.085752531118851e+03 1.084364653776815e+03 + 1.082975887627809e+03 1.081586238962469e+03 1.080195714078142e+03 1.078804319278880e+03 1.077412060875450e+03 + 1.076018945185327e+03 1.074624978532693e+03 1.073230167248444e+03 1.071834517670182e+03 1.070438036142223e+03 + 1.069040729015589e+03 1.067642602648012e+03 1.066243663403937e+03 1.064843917654515e+03 1.063443371777609e+03 + 1.062042032157791e+03 1.060639905186343e+03 1.059236997261256e+03 1.057833314787232e+03 1.056428864175682e+03 + 1.055023651844726e+03 1.053617684219196e+03 1.052210967730631e+03 1.050803508817282e+03 1.049395313897890e+03 + 1.047986388534756e+03 1.046576737255851e+03 1.045166364529164e+03 1.043755274824231e+03 1.042343472612131e+03 + 1.040930962365484e+03 1.039517748558457e+03 1.038103835666756e+03 1.036689228167636e+03 1.035273930539893e+03 + 1.033857947263865e+03 1.032441282821436e+03 1.031023941696033e+03 1.029605928372625e+03 1.028187247337727e+03 + 1.026767903079397e+03 1.025347900087235e+03 1.023927242852386e+03 1.022505935867538e+03 1.021083983626923e+03 + 1.019661390626317e+03 1.018238161363038e+03 1.016814300335948e+03 1.015389812045455e+03 1.013964700993507e+03 + 1.012538971683598e+03 1.011112628620765e+03 1.009685676311588e+03 1.008258119264191e+03 1.006829961988242e+03 + 1.005401208994952e+03 1.003971864797076e+03 1.002541933908912e+03 1.001111420846301e+03 9.996803301266303e+02 + 9.982486662688275e+02 9.968164337933661e+02 9.953836372222621e+02 9.939502810790750e+02 9.925163698889086e+02 + 9.910819081784098e+02 9.896469004757686e+02 9.882113513107199e+02 9.867752652145410e+02 9.853386467200531e+02 + 9.839015003616214e+02 9.824638306751541e+02 9.810256421981031e+02 9.795869394694643e+02 9.781477270297768e+02 + 9.767080094211232e+02 9.752677911871300e+02 9.738270768729670e+02 9.723858710253478e+02 9.709441781925295e+02 + 9.695020029243127e+02 9.680593497720415e+02 9.666162232886040e+02 9.651726280284314e+02 9.637285685474986e+02 + 9.622840494033246e+02 9.608390751549712e+02 9.593936503630440e+02 9.579477795896925e+02 9.565014673986094e+02 + 9.550547183550314e+02 9.536075370257383e+02 9.521599279790540e+02 9.507118957848456e+02 9.492634450145238e+02 + 9.478145802410424e+02 9.463653060389005e+02 9.449156269841388e+02 9.434655476543426e+02 9.420150726286407e+02 + 9.405642064877048e+02 9.391129538137513e+02 9.376613191905399e+02 9.362093072033728e+02 9.347569224390970e+02 + 9.333041694861028e+02 9.318510529343232e+02 9.303975773752362e+02 9.289437474018629e+02 9.274895676087672e+02 + 9.260350425920570e+02 9.245801769493847e+02 9.231249752799448e+02 9.216694421844763e+02 9.202135822652619e+02 + 9.187574001261273e+02 9.173009003724419e+02 9.158440876111187e+02 9.143869664506148e+02 9.129295415009306e+02 + 9.114718173736089e+02 9.100137986817383e+02 9.085554900399494e+02 9.070968960644165e+02 9.056380213728581e+02 + 9.041788705845360e+02 9.027194483202552e+02 9.012597592023648e+02 8.997998078547574e+02 8.983395989028686e+02 + 8.968791369736786e+02 8.954184266957105e+02 8.939574726990309e+02 8.924962796152502e+02 8.910348520775226e+02 + 8.895731947205452e+02 8.881113121805595e+02 8.866492090953504e+02 8.851868901042455e+02 8.837243598481174e+02 + 8.822616229693809e+02 8.807986841119955e+02 8.793355479214636e+02 8.778722190448314e+02 8.764087021306887e+02 + 8.749450018291686e+02 8.734811227919481e+02 8.720170696722481e+02 8.705528471248323e+02 8.690884598060085e+02 + 8.676239123736278e+02 8.661592094870851e+02 8.646943558073189e+02 8.632293559968109e+02 8.617642147195870e+02 + 8.602989366412162e+02 8.588335264288111e+02 8.573679887510280e+02 8.559023282780669e+02 8.544365496816713e+02 + 8.529706576351281e+02 8.515046568132680e+02 8.500385518924651e+02 8.485723475506371e+02 8.471060484672456e+02 + 8.456396593232956e+02 8.441731848013352e+02 8.427066295854568e+02 8.412399983612960e+02 8.397732958160319e+02 + 8.383065266383875e+02 8.368396955186294e+02 8.353728071485672e+02 8.339058662215547e+02 8.324388774324890e+02 + 8.309718454778108e+02 8.295047750555044e+02 8.280376708650979e+02 8.265705376076626e+02 8.251033799858133e+02 + 8.236362027037090e+02 8.221690104670519e+02 8.207018079830875e+02 8.192345999606056e+02 8.177673911099388e+02 + 8.163001861429635e+02 8.148329897731001e+02 8.133658067153123e+02 8.118986416861073e+02 8.104314994035359e+02 + 8.089643845871925e+02 8.074973019582153e+02 8.060302562392853e+02 8.045632521546285e+02 8.030962944300132e+02 + 8.016293877927517e+02 8.001625369717000e+02 7.986957466972576e+02 7.972290217013673e+02 7.957623667175162e+02 + 7.942957864807344e+02 7.928292857275953e+02 7.913628691962167e+02 7.898965416262595e+02 7.884303077589279e+02 + 7.869641723369706e+02 7.854981401046790e+02 7.840322158078881e+02 7.825664041939773e+02 7.811007100118686e+02 + 7.796351380120283e+02 7.781696929464658e+02 7.767043795687346e+02 7.752392026339312e+02 7.737741668986956e+02 + 7.723092771212124e+02 7.708445380612087e+02 7.693799544799557e+02 7.679155311402681e+02 7.664512728065041e+02 + 7.649871842445651e+02 7.635232702218972e+02 7.620595355074889e+02 7.605959848718730e+02 7.591326230871256e+02 + 7.576694549268664e+02 7.562064851662584e+02 7.547437185820088e+02 7.532811599523681e+02 7.518188140571300e+02 + 7.503566856776325e+02 7.488947795967565e+02 7.474331005989271e+02 7.459716534701122e+02 7.445104429978242e+02 + 7.430494739711182e+02 7.415887511805935e+02 7.401282794183929e+02 7.386680634782024e+02 7.372081081552518e+02 + 7.357484182463149e+02 7.342889985497084e+02 7.328298538652926e+02 7.313709889944722e+02 7.299124087401947e+02 + 7.284541179069513e+02 7.269961213007771e+02 7.255384237292504e+02 7.240810300014931e+02 7.226239449281712e+02 + 7.211671733214938e+02 7.197107199952134e+02 7.182545897646269e+02 7.167987874465738e+02 7.153433178594373e+02 + 7.138881858231457e+02 7.124333961591685e+02 7.109789536905207e+02 7.095248632417597e+02 7.080711296389870e+02 + 7.066177577098478e+02 7.051647522835304e+02 7.037121181907675e+02 7.022598602638342e+02 7.008079833365500e+02 + 6.993564922442782e+02 6.979053918239249e+02 6.964546869139400e+02 6.950043823543177e+02 6.935544829865950e+02 + 6.921049936538523e+02 6.906559192007142e+02 6.892072644733491e+02 6.877590343194680e+02 6.863112335883264e+02 + 6.848638671307228e+02 6.834169397989994e+02 6.819704564470420e+02 6.805244219302806e+02 6.790788411056876e+02 + 6.776337188317796e+02 6.761890599686175e+02 6.747448693778041e+02 6.733011519224871e+02 6.718579124673579e+02 + 6.704151558786504e+02 6.689728870241429e+02 6.675311107731571e+02 6.660898319965579e+02 6.646490555667547e+02 + 6.632087863576994e+02 6.617690292448882e+02 6.603297891053608e+02 6.588910708177000e+02 6.574528792620325e+02 + 6.560152193200289e+02 6.545780958749028e+02 6.531415138114120e+02 6.517054780158572e+02 6.502699933760831e+02 + 6.488350647814780e+02 6.474006971229736e+02 6.459668952930450e+02 6.445336641857116e+02 6.431010086965356e+02 + 6.416689337226230e+02 6.402374441626239e+02 6.388065449167315e+02 6.373762408866819e+02 6.359465369757564e+02 + 6.345174380887786e+02 6.330889491321157e+02 6.316610750136796e+02 6.302338206429247e+02 6.288071909308491e+02 + 6.273811907899951e+02 6.259558251344477e+02 6.245310988798360e+02 6.231070169433332e+02 6.216835842436550e+02 + 6.202608057010611e+02 6.188386862373554e+02 6.174172307758844e+02 6.159964442415383e+02 6.145763315607522e+02 + 6.131568976615030e+02 6.117381474733122e+02 6.103200859272448e+02 6.089027179559087e+02 6.074860484934565e+02 + 6.060700824755835e+02 6.046548248395288e+02 6.032402805240755e+02 6.018264544695495e+02 6.004133516178208e+02 + 5.990009769123031e+02 5.975893352979532e+02 5.961784317212720e+02 5.947682711303036e+02 5.933588584746357e+02 + 5.919501987053994e+02 5.905422967752705e+02 5.891351576384668e+02 5.877287862507508e+02 5.863231875694282e+02 + 5.849183665533477e+02 5.835143281629030e+02 5.821110773600302e+02 5.807086191082091e+02 5.793069583724634e+02 + 5.779061001193606e+02 5.765060493170109e+02 5.751068109350690e+02 5.737083899447330e+02 5.723107913187440e+02 + 5.709140200313871e+02 5.695180810584912e+02 5.681229793774282e+02 5.667287199671144e+02 5.653353078080089e+02 + 5.639427478821145e+02 5.625510451729782e+02 5.611602046656897e+02 5.597702313468828e+02 5.583811302047351e+02 + 5.569929062289672e+02 5.556055644108436e+02 5.542191097431725e+02 5.528335472203050e+02 5.514488818381369e+02 + 5.500651185941068e+02 5.486822624871968e+02 5.473003185179330e+02 5.459192916883851e+02 5.445391870021655e+02 + 5.431600094644319e+02 5.417817640818839e+02 5.404044558627653e+02 5.390280898168637e+02 5.376526709555103e+02 + 5.362782042915790e+02 5.349046948394886e+02 5.335321476152006e+02 5.321605676362202e+02 5.307899599215965e+02 + 5.294203294919217e+02 5.280516813693320e+02 5.266840205775071e+02 5.253173521416702e+02 5.239516810885877e+02 + 5.225870124465707e+02 5.212233512454725e+02 5.198607025166908e+02 5.184990712931668e+02 5.171384626093851e+02 + 5.157788815013741e+02 5.144203330067055e+02 5.130628221644946e+02 5.117063540154008e+02 5.103509336016263e+02 + 5.089965659669175e+02 5.076432561565640e+02 5.062910092173990e+02 5.049398301977998e+02 5.035897241476866e+02 + 5.022406961185235e+02 5.008927511633182e+02 4.995458943366220e+02 4.982001306945292e+02 4.968554652946787e+02 + 4.955119031962524e+02 4.941694494599757e+02 4.928281091481178e+02 4.914878873244913e+02 4.901487890544524e+02 + 4.888108194049014e+02 4.874739834442815e+02 4.861382862425793e+02 4.848037328713260e+02 4.834703284035954e+02 + 4.821380779140055e+02 4.808069864787175e+02 4.794770591754360e+02 4.781483010834104e+02 4.768207172834317e+02 + 4.754943128578365e+02 4.741690928905032e+02 4.728450624668552e+02 4.715222266738587e+02 4.702005906000235e+02 + 4.688801593354034e+02 4.675609379715956e+02 4.662429316017405e+02 4.649261453205227e+02 4.636105842241698e+02 + 4.622962534104534e+02 4.609831579786886e+02 4.596713030297340e+02 4.583606936659914e+02 4.570513349914071e+02 + 4.557432321114703e+02 4.544363901332138e+02 4.531308141652141e+02 4.518265093175915e+02 4.505234807020092e+02 + 4.492217334316751e+02 4.479212726213398e+02 4.466221033872973e+02 4.453242308473862e+02 4.440276601209875e+02 + 4.427323963290266e+02 4.414384445939725e+02 4.401458100398370e+02 4.388544977921764e+02 4.375645129780900e+02 + 4.362758607262207e+02 4.349885461667554e+02 4.337025744314242e+02 4.324179506535007e+02 4.311346799678025e+02 + 4.298527675106906e+02 4.285722184200691e+02 4.272930378353866e+02 4.260152308976346e+02 4.247388027493482e+02 + 4.234637585346064e+02 4.221901033990317e+02 4.209178424897899e+02 4.196469809555908e+02 4.183775239466873e+02 + 4.171094766148764e+02 4.158428441134982e+02 4.145776315974367e+02 4.133138442231195e+02 4.120514871485177e+02 + 4.107905655331455e+02 4.095310845380616e+02 4.082730493258674e+02 4.070164650607085e+02 4.057613369082738e+02 + 4.045076700357962e+02 4.032554696120511e+02 4.020047408073589e+02 4.007554887935824e+02 3.995077187441286e+02 + 3.982614358339480e+02 3.970166452395346e+02 3.957733521389259e+02 3.945315617117033e+02 3.932912791389912e+02 + 3.920525096034583e+02 3.908152582893162e+02 3.895795303823206e+02 3.883453310697706e+02 3.871126655405087e+02 + 3.858815389849212e+02 3.846519565949380e+02 3.834239235640323e+02 3.821974450872211e+02 3.809725263610652e+02 + 3.797491725836686e+02 3.785273889546788e+02 3.773071806752873e+02 3.760885529482291e+02 3.748715109777822e+02 + 3.736560599697692e+02 3.724422051315553e+02 3.712299516720498e+02 3.700193048017055e+02 3.688102697325187e+02 + 3.676028516780295e+02 3.663970558533210e+02 3.651928874750207e+02 3.639903517612993e+02 3.627894539318706e+02 + 3.615901992079928e+02 3.603925928124674e+02 3.591966399696389e+02 3.580023459053963e+02 3.568097158471716e+02 + 3.556187550239405e+02 3.544294686662223e+02 3.532418620060801e+02 3.520559402771199e+02 3.508717087144923e+02 + 3.496891725548904e+02 3.485083370365518e+02 3.473292073992571e+02 3.461517888843309e+02 3.449760867346407e+02 + 3.438021061945983e+02 3.426298525101589e+02 3.414593309288210e+02 3.402905466996269e+02 3.391235050731623e+02 + 3.379582113015570e+02 3.367946706384836e+02 3.356328883391590e+02 3.344728696603431e+02 3.333146198603399e+02 + 3.321581441989965e+02 3.310034479377038e+02 3.298505363393963e+02 3.286994146685523e+02 3.275500881911931e+02 + 3.264025621748842e+02 3.252568418887342e+02 3.241129326033955e+02 3.229708395910641e+02 3.218305681254797e+02 + 3.206921234819250e+02 3.195555109372272e+02 3.184207357697562e+02 3.172878032594259e+02 3.161567186876940e+02 + 3.150274873375612e+02 3.139001144935722e+02 3.127746054418153e+02 3.116509654699221e+02 3.105291998670680e+02 + 3.094093139239718e+02 3.082913129328962e+02 3.071752021876472e+02 3.060609869835743e+02 3.049486726175709e+02 + 3.038382643880739e+02 3.027297675950632e+02 3.016231875400634e+02 3.005185295261418e+02 2.994157988579094e+02 + 2.983150008415209e+02 2.972161407846750e+02 2.961192239966130e+02 2.950242557881208e+02 2.939312414715272e+02 + 2.928401863607048e+02 2.917510957710699e+02 2.906639750195822e+02 2.895788294247451e+02 2.884956643066055e+02 + 2.874144849867538e+02 2.863352967883243e+02 2.852581050359946e+02 2.841829150559857e+02 2.831097321760628e+02 + 2.820385617255341e+02 2.809694090352515e+02 2.799022794376108e+02 2.788371782665511e+02 2.777741108575549e+02 + 2.767130825476488e+02 2.756540986754025e+02 2.745971645809293e+02 2.735422856058867e+02 2.724894670934750e+02 + 2.714387143884384e+02 2.703900328370648e+02 2.693434277871856e+02 2.682989045881756e+02 2.672564685909533e+02 + 2.662161251479810e+02 2.651778796132642e+02 2.641417373423522e+02 2.631077036923379e+02 2.620757840218578e+02 + 2.610459836910915e+02 2.600183080617631e+02 2.589927624971394e+02 2.579693523620314e+02 2.569480830227931e+02 + 2.559289598473227e+02 2.549119882050614e+02 2.538971734669946e+02 2.528845210056507e+02 2.518740361951020e+02 + 2.508657244109642e+02 2.498595910303967e+02 2.488556414321026e+02 2.478538809963281e+02 2.468543151048638e+02 + 2.458569491410431e+02 2.448617884897432e+02 2.438688385373852e+02 2.428781046719333e+02 2.418895922828956e+02 + 2.409033067613238e+02 2.399192534998131e+02 2.389374378925019e+02 2.379578653350729e+02 2.369805412247519e+02 + 2.360054709603084e+02 2.350326599420553e+02 2.340621135718494e+02 2.330938372530911e+02 2.321278363907239e+02 + 2.311641163912353e+02 2.302026826626565e+02 2.292435406145617e+02 2.282866956580692e+02 2.273321532058407e+02 + 2.263799186720815e+02 2.254299974725404e+02 2.244823950245099e+02 2.235371167468261e+02 2.225941680598685e+02 + 2.216535543855603e+02 2.207152811473682e+02 2.197793537703028e+02 2.188457776809178e+02 2.179145583073106e+02 + 2.169857010791227e+02 2.160592114275385e+02 2.151350947852860e+02 2.142133565866376e+02 2.132940022674083e+02 + 2.123770372649571e+02 2.114624670181867e+02 2.105502969675431e+02 2.096405325550162e+02 2.087331792241393e+02 + 2.078282424199890e+02 2.069257275891860e+02 2.060256401798943e+02 2.051279856418216e+02 2.042327694262190e+02 + 2.033399969858813e+02 2.024496737751469e+02 2.015618052498977e+02 2.006763968675590e+02 1.997934540871004e+02 + 1.989129823690343e+02 1.980349871754169e+02 1.971594739698481e+02 1.962864482174713e+02 1.954159153849736e+02 + 1.945478809405854e+02 1.936823503540812e+02 1.928193290967781e+02 1.919588226415381e+02 1.911008364627658e+02 + 1.902453760364096e+02 1.893924468399617e+02 1.885420543524577e+02 1.876942040544768e+02 1.868489014281417e+02 + 1.860061519571189e+02 1.851659611266184e+02 1.843283344233937e+02 1.834932773357418e+02 1.826607953535034e+02 + 1.818308939680629e+02 1.810035786723481e+02 1.801788549608304e+02 1.793567283295249e+02 1.785372042759901e+02 + 1.777202882993282e+02 1.769059859001850e+02 1.760943025807497e+02 1.752852438447554e+02 1.744788151974785e+02 + 1.736750221457390e+02 1.728738701979007e+02 1.720753648638706e+02 1.712795116550998e+02 1.704863160845825e+02 + 1.696957836668566e+02 1.689079199180039e+02 1.681227303556493e+02 1.673402204989617e+02 1.665603958686532e+02 + 1.657832619869799e+02 1.650088243777409e+02 1.642370885662795e+02 1.634680600794823e+02 1.627017444457793e+02 + 1.619381471951445e+02 1.611772738590951e+02 1.604191299706921e+02 1.596637210645399e+02 1.589110526767867e+02 + 1.581611303451241e+02 1.574139596087874e+02 1.566695460085554e+02 1.559278950867503e+02 1.551890123872385e+02 + 1.544529034554292e+02 1.537195738382757e+02 1.529890290842748e+02 1.522612747434666e+02 1.515363163674351e+02 + 1.508141595093076e+02 1.500948097237555e+02 1.493782725669932e+02 1.486645535967789e+02 1.479536583724143e+02 + 1.472455924547449e+02 1.465403614061596e+02 1.458379707905909e+02 1.451384261735148e+02 1.444417331219514e+02 + 1.437478972044633e+02 1.430569239911578e+02 1.423688190536853e+02 1.416835879652396e+02 1.410012363005585e+02 + 1.403217696359229e+02 1.396451935491577e+02 1.389715136196312e+02 1.383007354282553e+02 1.376328645574854e+02 + 1.369679065913208e+02 1.363058671153038e+02 1.356467517165207e+02 1.349905659836014e+02 1.343373155067194e+02 + 1.336870058775913e+02 1.330396426894780e+02 1.323952315371832e+02 1.317537780170550e+02 1.311152877269845e+02 + 1.304797662664065e+02 1.298472192362996e+02 1.292176522391855e+02 1.285910708791301e+02 1.279674807617425e+02 + 1.273468874941753e+02 1.267292966851250e+02 1.261147139448316e+02 1.255031448850783e+02 1.248945951191923e+02 + 1.242890702620443e+02 1.236865759300485e+02 1.230871177411627e+02 1.224907013148884e+02 1.218973322722703e+02 + 1.213070162358971e+02 1.207197588299010e+02 1.201355656799576e+02 1.195544424132864e+02 1.189763946586499e+02 + 1.184014280463548e+02 1.178295482082510e+02 1.172607607777323e+02 1.166950713897357e+02 1.161324856807421e+02 + 1.155730092887757e+02 1.150166478534045e+02 1.144634070157400e+02 1.139132924184372e+02 1.133663097056950e+02 + 1.128224645232555e+02 1.122817625184044e+02 1.117442093399712e+02 1.112098106383290e+02 1.106785720653942e+02 + 1.101504843345202e+02 1.096253193854976e+02 1.091027814759659e+02 1.085828903190926e+02 1.080656662057070e+02 + 1.075510744401853e+02 1.070391017583160e+02 1.065297369211215e+02 1.060229642403793e+02 1.055187689946627e+02 + 1.050171373101604e+02 1.045180558156006e+02 1.040215103049707e+02 1.035274865113781e+02 1.030359706887152e+02 + 1.025469492169604e+02 1.020604083357866e+02 1.015763340040288e+02 1.010947131078929e+02 1.006155327791835e+02 + 1.001387792631148e+02 9.966443911893010e+01 9.919249927205091e+01 9.872294669690289e+01 9.825576811144268e+01 + 9.779095024426459e+01 9.732848086108395e+01 9.686834738339628e+01 9.641053663288847e+01 9.595503591883143e+01 + 9.550183276437639e+01 9.505091470489599e+01 9.460226894357737e+01 9.415588307372171e+01 9.371174549820027e+01 + 9.326984390100915e+01 9.283016578095182e+01 9.239269910989660e+01 9.195743199867270e+01 9.152435246657959e+01 + 9.109344822825337e+01 9.066470776170968e+01 9.023811990175319e+01 8.981367265385576e+01 8.939135422700863e+01 + 8.897115319588202e+01 8.855305819940260e+01 8.813705766268812e+01 8.772313993524557e+01 8.731129428898021e+01 + 8.690150981214184e+01 8.649377498492467e+01 8.608807868460502e+01 8.568441000539183e+01 8.528275807208179e+01 + 8.488311171021131e+01 8.448546000255536e+01 8.408979283578468e+01 8.369609949978657e+01 8.330436902264381e+01 + 8.291459088961614e+01 8.252675470341519e+01 8.214085000107356e+01 8.175686603719873e+01 8.137479266933553e+01 + 8.099462018292702e+01 8.061633811896954e+01 8.023993612969721e+01 7.986540422509246e+01 7.949273245617202e+01 + 7.912191071864751e+01 7.875292880591886e+01 7.838577728963824e+01 7.802044667908689e+01 7.765692688210476e+01 + 7.729520814701189e+01 7.693528093921003e+01 7.657713574044320e+01 7.622076279877933e+01 7.586615250876412e+01 + 7.551329599462582e+01 7.516218394284439e+01 7.481280673973237e+01 7.446515517211270e+01 7.411922012543234e+01 + 7.377499243991551e+01 7.343246273248482e+01 7.309162206375170e+01 7.275246194060588e+01 7.241497325488510e+01 + 7.207914691168762e+01 7.174497413637995e+01 7.141244624067238e+01 7.108155440657860e+01 7.075228964021176e+01 + 7.042464364044737e+01 7.009860816502822e+01 6.977417437950896e+01 6.945133371117183e+01 6.913007780419414e+01 + 6.881039831641085e+01 6.849228672098478e+01 6.817573455985929e+01 6.786073404036127e+01 6.754727706019318e+01 + 6.723535518365489e+01 6.692496029976250e+01 6.661608442214438e+01 6.630871955818391e+01 6.600285747074972e+01 + 6.569849025826812e+01 6.539561050984807e+01 6.509421028016476e+01 6.479428156422156e+01 6.449581665898590e+01 + 6.419880794007263e+01 6.390324769379086e+01 6.360912802573969e+01 6.331644161216560e+01 6.302518126952705e+01 + 6.273533924838438e+01 6.244690800283556e+01 6.215988021335375e+01 6.187424856554645e+01 6.159000558852496e+01 + 6.130714382209544e+01 6.102565642873360e+01 6.074553634647369e+01 6.046677613965124e+01 6.018936867893675e+01 + 5.991330696615304e+01 5.963858400265185e+01 5.936519255461710e+01 5.909312563142009e+01 5.882237675846172e+01 + 5.855293899151076e+01 5.828480526925385e+01 5.801796883717194e+01 5.775242299813667e+01 5.748816098906929e+01 + 5.722517588172157e+01 5.696346118973321e+01 5.670301063052477e+01 5.644381744585571e+01 5.618587497447161e+01 + 5.592917675378749e+01 5.567371639288440e+01 5.541948735564524e+01 5.516648303666721e+01 5.491469740133566e+01 + 5.466412430128952e+01 5.441475721341882e+01 5.416658984866251e+01 5.391961604526729e+01 5.367382965707854e+01 + 5.342922435049869e+01 5.318579394824101e+01 5.294353276046760e+01 5.270243471566913e+01 5.246249358126801e+01 + 5.222370341980431e+01 5.198605834991378e+01 5.174955243603662e+01 5.151417956992881e+01 5.127993401538280e+01 + 5.104681029539683e+01 5.081480246751264e+01 5.058390465007635e+01 5.035411117607305e+01 5.012541641928832e+01 + 4.989781463692880e+01 4.967129999443014e+01 4.944586717469857e+01 4.922151081792142e+01 4.899822516393252e+01 + 4.877600466591702e+01 4.855484391176263e+01 4.833473749525371e+01 4.811567985888949e+01 4.789766553100244e+01 + 4.768068948486052e+01 4.746474643299185e+01 4.724983089968822e+01 4.703593761581940e+01 4.682306140175855e+01 + 4.661119706938157e+01 4.640033923440899e+01 4.619048280117971e+01 4.598162297433280e+01 4.577375454810339e+01 + 4.556687232031752e+01 4.536097129194708e+01 4.515604651624491e+01 4.495209295916556e+01 4.474910546848848e+01 + 4.454707932343867e+01 4.434600983627007e+01 4.414589194663536e+01 4.394672075425581e+01 4.374849149110094e+01 + 4.355119939554362e+01 4.335483958155968e+01 4.315940720272008e+01 4.296489783321342e+01 4.277130684141869e+01 + 4.257862938067940e+01 4.238686082011235e+01 4.219599659307687e+01 4.200603211268383e+01 4.181696265307154e+01 + 4.162878369849639e+01 4.144149102922540e+01 4.125508008000694e+01 4.106954625154178e+01 4.088488514080404e+01 + 4.070109237453877e+01 4.051816351991027e+01 4.033609404369983e+01 4.015487975529847e+01 3.997451654390139e+01 + 3.979499995457292e+01 3.961632565249730e+01 3.943848943565658e+01 3.926148710146721e+01 3.908531435163689e+01 + 3.890996689581685e+01 3.873544082272831e+01 3.856173207783515e+01 3.838883637414560e+01 3.821674961156019e+01 + 3.804546776546066e+01 3.787498680517137e+01 3.770530255859592e+01 3.753641100849845e+01 3.736830845518836e+01 + 3.720099088344971e+01 3.703445420945200e+01 3.686869456603723e+01 3.670370808841574e+01 3.653949085950763e+01 + 3.637603888796111e+01 3.621334844811717e+01 3.605141592615973e+01 3.589023740445852e+01 3.572980904042850e+01 + 3.557012712196481e+01 3.541118795282225e+01 3.525298774403768e+01 3.509552267323749e+01 3.493878928773343e+01 + 3.478278404343990e+01 3.462750313614663e+01 3.447294293878365e+01 3.431909990161546e+01 3.416597046087814e+01 + 3.401355094900445e+01 3.386183779648810e+01 3.371082772101448e+01 3.356051721064496e+01 3.341090265530899e+01 + 3.326198061398263e+01 3.311374767636361e+01 3.296620040125966e+01 3.281933525310492e+01 3.267314891432770e+01 + 3.252763821351709e+01 3.238279969616838e+01 3.223862995512887e+01 3.209512571750849e+01 3.195228370249094e+01 + 3.181010057023420e+01 3.166857295105629e+01 3.152769775432829e+01 3.138747186368265e+01 3.124789194582367e+01 + 3.110895478177638e+01 3.097065722333928e+01 3.083299612203396e+01 3.069596823521478e+01 3.055957038379009e+01 + 3.042379968490992e+01 3.028865305190764e+01 3.015412726448298e+01 3.002021927954454e+01 2.988692608783410e+01 + 2.975424465393443e+01 2.962217185358958e+01 2.949070472525562e+01 2.935984046863818e+01 2.922957605244617e+01 + 2.909990844798608e+01 2.897083474125067e+01 2.884235205411202e+01 2.871445744621140e+01 2.858714789194334e+01 + 2.846042066311678e+01 2.833427304434733e+01 2.820870204788112e+01 2.808370481822039e+01 2.795927858955916e+01 + 2.783542056310479e+01 2.771212788710439e+01 2.758939774558937e+01 2.746722754519704e+01 2.734561457842300e+01 + 2.722455602005491e+01 2.710404915757552e+01 2.698409131619408e+01 2.686467981339180e+01 2.674581188504884e+01 + 2.662748489299116e+01 2.650969637323688e+01 2.639244364869198e+01 2.627572402574995e+01 2.615953493480668e+01 + 2.604387380499337e+01 2.592873803144385e+01 2.581412497154068e+01 2.570003216993883e+01 2.558645721031992e+01 + 2.547339748309297e+01 2.536085044648649e+01 2.524881363723968e+01 2.513728460374055e+01 2.502626081142699e+01 + 2.491573971820056e+01 2.480571905896494e+01 2.469619646153339e+01 2.458716938319504e+01 2.447863542000312e+01 + 2.437059221927192e+01 2.426303741725681e+01 2.415596854366440e+01 2.404938323139217e+01 2.394327933047775e+01 + 2.383765447837906e+01 2.373250626120992e+01 2.362783239922733e+01 2.352363062421024e+01 2.341989863680159e+01 + 2.331663407933185e+01 2.321383475989216e+01 2.311149855755017e+01 2.300962316438995e+01 2.290820631357202e+01 + 2.280724581327735e+01 2.270673948178020e+01 2.260668508940155e+01 2.250708039173678e+01 2.240792334786956e+01 + 2.230921186720802e+01 2.221094371595302e+01 2.211311674173436e+01 2.201572884123411e+01 2.191877792312015e+01 + 2.182226182065280e+01 2.172617842216956e+01 2.163052579410284e+01 2.153530186271772e+01 2.144050449256298e+01 + 2.134613164544727e+01 2.125218130870039e+01 2.115865145244560e+01 2.106553997668644e+01 2.097284492087666e+01 + 2.088056441996010e+01 2.078869643251129e+01 2.069723893213309e+01 2.060618996606658e+01 2.051554761096601e+01 + 2.042530989859754e+01 2.033547481777502e+01 2.024604054022628e+01 2.015700522393599e+01 2.006836688994228e+01 + 1.998012363072147e+01 1.989227358045817e+01 1.980481486918973e+01 1.971774557717947e+01 1.963106382303616e+01 + 1.954476789103884e+01 1.945885594703988e+01 1.937332608222908e+01 1.928817649453870e+01 1.920340539662878e+01 + 1.911901098077130e+01 1.903499138773951e+01 1.895134486255558e+01 1.886806974988112e+01 1.878516424109755e+01 + 1.870262653275597e+01 1.862045489823334e+01 1.853864761644500e+01 1.845720293609644e+01 1.837611907561623e+01 + 1.829539441141390e+01 1.821502731690405e+01 1.813501600648008e+01 1.805535878852776e+01 1.797605402680784e+01 + 1.789710004813803e+01 1.781849513976010e+01 1.774023761822760e+01 1.766232596769640e+01 1.758475857461898e+01 + 1.750753373031707e+01 1.743064982368309e+01 1.735410526816905e+01 1.727789846424588e+01 1.720202775432962e+01 + 1.712649156263800e+01 1.705128842771503e+01 1.697641675133914e+01 1.690187492053174e+01 1.682766139576636e+01 + 1.675377465125957e+01 1.668021313537254e+01 1.660697525047803e+01 1.653405953620346e+01 1.646146456303875e+01 + 1.638918876353225e+01 1.631723061252691e+01 1.624558863577738e+01 1.617426136715184e+01 1.610324729276991e+01 + 1.603254489420701e+01 1.596215281065743e+01 1.589206962268447e+01 1.582229381597797e+01 1.575282394813798e+01 + 1.568365860435203e+01 1.561479636559848e+01 1.554623575841051e+01 1.547797536749664e+01 1.541001389568697e+01 + 1.534234992945672e+01 1.527498202635700e+01 1.520790881496337e+01 1.514112893627654e+01 1.507464101206718e+01 + 1.500844361854594e+01 1.494253544400039e+01 1.487691522461213e+01 1.481158156982783e+01 1.474653311471545e+01 + 1.468176854391490e+01 1.461728655322583e+01 1.455308580005108e+01 1.448916492494823e+01 1.442552270891503e+01 + 1.436215789907635e+01 1.429906914560298e+01 1.423625515786986e+01 1.417371467503432e+01 1.411144643634281e+01 + 1.404944913182382e+01 1.398772148936426e+01 1.392626235467004e+01 1.386507047757601e+01 1.380414456703780e+01 + 1.374348339923097e+01 1.368308576360786e+01 1.362295043539383e+01 1.356307614411792e+01 1.350346171009224e+01 + 1.344410601461897e+01 1.338500782259274e+01 1.332616591200318e+01 1.326757911048049e+01 1.320924625504148e+01 + 1.315116615215319e+01 1.309333758418828e+01 1.303575945915385e+01 1.297843067064863e+01 1.292135001185642e+01 + 1.286451632934388e+01 1.280792850075226e+01 1.275158540067995e+01 1.269548586414703e+01 1.263962874841400e+01 + 1.258401302186647e+01 1.252863758019894e+01 1.247350127006052e+01 1.241860299544399e+01 1.236394167532885e+01 + 1.230951622025856e+01 1.225532549825102e+01 1.220136844757296e+01 1.214764407513537e+01 1.209415128431592e+01 + 1.204088897936275e+01 1.198785611322907e+01 1.193505164847797e+01 1.188247452422181e+01 1.183012365035161e+01 + 1.177799804372636e+01 1.172609672645034e+01 1.167441862559045e+01 1.162296270435431e+01 1.157172795813644e+01 + 1.152071338824009e+01 1.146991795771504e+01 1.141934063624516e+01 1.136898050295155e+01 1.131883658051165e+01 + 1.126890783457083e+01 1.121919328583311e+01 1.116969196974251e+01 1.112040291453270e+01 1.107132511138846e+01 + 1.102245760367597e+01 1.097379950683186e+01 1.092534984778681e+01 1.087710764406476e+01 1.082907196010627e+01 + 1.078124186863284e+01 1.073361642501848e+01 1.068619465441603e+01 1.063897567074718e+01 1.059195860734133e+01 + 1.054514250814830e+01 1.049852644360809e+01 1.045210951602862e+01 1.040589083229813e+01 1.035986946911022e+01 + 1.031404450080543e+01 1.026841510170119e+01 1.022298040707346e+01 1.017773949095798e+01 1.013269147478631e+01 + 1.008783549702620e+01 1.004317069189082e+01 9.998696157456914e+00 9.954411030186206e+00 9.910314523784715e+00 + 9.866405774945729e+00 9.822683900561229e+00 9.779148062474189e+00 9.735797433007823e+00 9.692631171490490e+00 + 9.649648402951970e+00 9.606848328743531e+00 9.564230182014787e+00 9.521793107635142e+00 9.479536270440141e+00 + 9.437458869806633e+00 9.395560106559989e+00 9.353839157926716e+00 9.312295192835592e+00 9.270927467731591e+00 + 9.229735216231479e+00 9.188717610212938e+00 9.147873860369382e+00 9.107203196336844e+00 9.066704846764596e+00 + 9.026378005702853e+00 8.986221892357717e+00 8.946235805206038e+00 8.906418978693665e+00 8.866770619316361e+00 + 8.827289975974383e+00 8.787976307390357e+00 8.748828863538764e+00 8.709846863139358e+00 8.671029583554503e+00 + 8.632376341244221e+00 8.593886376949055e+00 8.555558939921891e+00 8.517393311170933e+00 8.479388776756116e+00 + 8.441544603229096e+00 8.403860042243403e+00 8.366334424744339e+00 8.328967072292842e+00 8.291757243124138e+00 + 8.254704227472720e+00 8.217807335382002e+00 8.181065876905594e+00 8.144479133106664e+00 8.108046399433587e+00 + 8.071767047639053e+00 8.035640397926882e+00 7.999665736506032e+00 7.963842390434660e+00 7.928169696145141e+00 + 7.892646983285742e+00 7.857273552651162e+00 7.822048750599857e+00 7.786971968025827e+00 7.752042529333232e+00 + 7.717259758863888e+00 7.682623011133142e+00 7.648131647347260e+00 7.613785013617140e+00 7.579582436948184e+00 + 7.545523312250220e+00 7.511607037617057e+00 7.477832951167176e+00 7.444200413093294e+00 7.410708803334905e+00 + 7.377357505498556e+00 7.344145878673218e+00 7.311073286547245e+00 7.278139163173499e+00 7.245342906306997e+00 + 7.212683876663248e+00 7.180161467446147e+00 7.147775082852699e+00 7.115524124234772e+00 7.083407965702390e+00 + 7.051426016132217e+00 7.019577732801474e+00 6.987862512275252e+00 6.956279745475502e+00 6.924828855941318e+00 + 6.893509269882150e+00 6.862320401692200e+00 6.831261647888545e+00 6.800332460884749e+00 6.769532305211046e+00 + 6.738860589806862e+00 6.708316738463165e+00 6.677900193977888e+00 6.647610403615440e+00 6.617446795946176e+00 + 6.587408797932629e+00 6.557495898186097e+00 6.527707560796614e+00 6.498043211862364e+00 6.468502306113241e+00 + 6.439084309299234e+00 6.409788685242900e+00 6.380614873655190e+00 6.351562339061567e+00 6.322630595895343e+00 + 6.293819108127046e+00 6.265127326375664e+00 6.236554729526047e+00 6.208100805116588e+00 6.179765032202197e+00 + 6.151546864740690e+00 6.123445807150094e+00 6.095461385258917e+00 6.067593067877628e+00 6.039840335121551e+00 + 6.012202688508743e+00 5.984679633169969e+00 5.957270656961056e+00 5.929975240292937e+00 5.902792923627279e+00 + 5.875723232013562e+00 5.848765648702115e+00 5.821919682493143e+00 5.795184854142510e+00 5.768560683026402e+00 + 5.742046666390822e+00 5.715642318587924e+00 5.689347205919744e+00 5.663160851223163e+00 5.637082758311135e+00 + 5.611112458697719e+00 5.585249491519008e+00 5.559493390584049e+00 5.533843667789125e+00 5.508299872311603e+00 + 5.482861578646651e+00 5.457528314665947e+00 5.432299611523626e+00 5.407175018586152e+00 5.382154093094761e+00 + 5.357236378022760e+00 5.332421403106363e+00 5.307708752059064e+00 5.283098003376689e+00 5.258588694187007e+00 + 5.234180379291222e+00 5.209872626694981e+00 5.185665008050016e+00 5.161557074183171e+00 5.137548383980142e+00 + 5.113638545797982e+00 5.089827134282968e+00 5.066113702430728e+00 5.042497830741953e+00 5.018979105007048e+00 + 4.995557105455633e+00 4.972231392615168e+00 4.949001558388967e+00 4.925867224885915e+00 4.902827967986653e+00 + 4.879883363679411e+00 4.857033008673309e+00 4.834276503129009e+00 4.811613436797770e+00 4.789043387081744e+00 + 4.766565977795326e+00 4.744180833573695e+00 4.721887536130310e+00 4.699685684376157e+00 4.677574891583497e+00 + 4.655554772271826e+00 4.633624922898647e+00 4.611784942911348e+00 4.590034481232405e+00 4.568373160121153e+00 + 4.546800575450856e+00 4.525316347519302e+00 4.503920103923871e+00 4.482611469298424e+00 4.461390048788094e+00 + 4.440255471271009e+00 4.419207398665950e+00 4.398245451269402e+00 4.377369245425554e+00 4.356578419383048e+00 + 4.335872613273037e+00 4.315251459075552e+00 4.294714576337845e+00 4.274261622204341e+00 4.253892261314030e+00 + 4.233606119889290e+00 4.213402835603544e+00 4.193282059746365e+00 4.173243445650493e+00 4.153286631923412e+00 + 4.133411255497697e+00 4.113616998652003e+00 4.093903524786619e+00 4.074270469191258e+00 4.054717490515994e+00 + 4.035244253601178e+00 4.015850419023907e+00 3.996535633568783e+00 3.977299560905666e+00 3.958141896495164e+00 + 3.939062301025637e+00 3.920060427447142e+00 3.901135950094528e+00 3.882288544897898e+00 3.863517881118590e+00 + 3.844823615448907e+00 3.826205437051391e+00 3.807663047653544e+00 3.789196110563124e+00 3.770804297342049e+00 + 3.752487294212357e+00 3.734244789018890e+00 3.716076457976182e+00 3.697981972490954e+00 3.679961043694115e+00 + 3.662013372248035e+00 3.644138631063968e+00 3.626336509775109e+00 3.608606705542072e+00 3.590948914412318e+00 + 3.573362819793663e+00 3.555848115085657e+00 3.538404523614169e+00 3.521031745026515e+00 3.503729467883798e+00 + 3.486497394134707e+00 3.469335231734055e+00 3.452242686325544e+00 3.435219448952052e+00 3.418265234650198e+00 + 3.401379774604279e+00 3.384562769850576e+00 3.367813923930398e+00 3.351132951883403e+00 3.334519571031865e+00 + 3.317973491801103e+00 3.301494419647167e+00 3.285082090084510e+00 3.268736234671993e+00 3.252456560777042e+00 + 3.236242786971220e+00 3.220094639575606e+00 3.204011846234647e+00 3.187994121490988e+00 3.172041185626448e+00 + 3.156152791161071e+00 3.140328668842820e+00 3.124568535295174e+00 3.108872124034968e+00 3.093239171871656e+00 + 3.077669412161458e+00 3.062162565910707e+00 3.046718374098970e+00 3.031336596904380e+00 3.016016966139392e+00 + 3.000759212810465e+00 2.985563079528153e+00 2.970428312130104e+00 2.955354650145179e+00 2.940341825152254e+00 + 2.925389598488303e+00 2.910497731503551e+00 2.895665957526404e+00 2.880894022713473e+00 2.866181682137055e+00 + 2.851528688498591e+00 2.836934785005289e+00 2.822399718118186e+00 2.807923264019232e+00 2.793505182293368e+00 + 2.779145216423770e+00 2.764843124903896e+00 2.750598669795774e+00 2.736411610868753e+00 2.722281698431688e+00 + 2.708208697067331e+00 2.694192390113966e+00 2.680232535961204e+00 2.666328890540199e+00 2.652481222662398e+00 + 2.638689303226956e+00 2.624952898002155e+00 2.611271764144950e+00 2.597645683492627e+00 2.584074442444535e+00 + 2.570557801667266e+00 2.557095530257868e+00 2.543687406599445e+00 2.530333209423413e+00 2.517032707379746e+00 + 2.503785668122807e+00 2.490591889861845e+00 2.477451158950901e+00 2.464363243138197e+00 2.451327922049569e+00 + 2.438344980862380e+00 2.425414204994132e+00 2.412535368413293e+00 2.399708255484590e+00 2.386932671907132e+00 + 2.374208401602455e+00 2.361535223009603e+00 2.348912926727443e+00 2.336341305706971e+00 2.323820149408004e+00 + 2.311349238873846e+00 2.298928374328811e+00 2.286557363678248e+00 2.274235992966902e+00 2.261964052364815e+00 + 2.249741340335214e+00 2.237567658215990e+00 2.225442798573621e+00 2.213366549457367e+00 2.201338726388740e+00 + 2.189359138707274e+00 2.177427577694549e+00 2.165543843493499e+00 2.153707741170415e+00 2.141919076444355e+00 + 2.130177647034976e+00 2.118483256831743e+00 2.106835728234196e+00 2.095234867960482e+00 2.083680476325080e+00 + 2.072172364176171e+00 2.060710343839133e+00 2.049294224696878e+00 2.037923808395575e+00 2.026598913260298e+00 + 2.015319367985618e+00 2.004084979196668e+00 1.992895556108562e+00 1.981750916950703e+00 1.970650881000152e+00 + 1.959595261684839e+00 1.948583868145923e+00 1.937616532016987e+00 1.926693081878526e+00 1.915813328267264e+00 + 1.904977090405082e+00 1.894184192977273e+00 1.883434460875044e+00 1.872727710477953e+00 1.862063762090873e+00 + 1.851442457083682e+00 1.840863622251705e+00 1.830327074965862e+00 1.819832643502570e+00 1.809380158797907e+00 + 1.798969449793061e+00 1.788600336572885e+00 1.778272652771865e+00 1.767986244795942e+00 1.757740938619203e+00 + 1.747536560606076e+00 1.737372946411540e+00 1.727249932639099e+00 1.717167351154095e+00 1.707125028541288e+00 + 1.697122811212298e+00 1.687160545804055e+00 1.677238060829077e+00 1.667355192130723e+00 1.657511781312863e+00 + 1.647707669880958e+00 1.637942692337234e+00 1.628216684763444e+00 1.618529503053863e+00 1.608880992276723e+00 + 1.599270986915247e+00 1.589699330823691e+00 1.580165870897195e+00 1.570670452975510e+00 1.561212914561866e+00 + 1.551793103249197e+00 1.542410880472349e+00 1.533066090216831e+00 1.523758574579748e+00 1.514488184288800e+00 + 1.505254771462676e+00 1.496058184704016e+00 1.486898266759950e+00 1.477774877044576e+00 1.468687878023066e+00 + 1.459637114930725e+00 1.450622438289068e+00 1.441643704572125e+00 1.432700770639202e+00 1.423793487269355e+00 + 1.414921704769478e+00 1.406085292220042e+00 1.397284110913275e+00 1.388518010515092e+00 1.379786849127615e+00 + 1.371090488107240e+00 1.362428788219066e+00 1.353801602746353e+00 1.345208792137069e+00 1.336650231141558e+00 + 1.328125779708811e+00 1.319635294146069e+00 1.311178639017341e+00 1.302755680403749e+00 1.294366281732825e+00 + 1.286010300246468e+00 1.277687607130681e+00 1.269398079017509e+00 1.261141576506052e+00 1.252917963373013e+00 + 1.244727109229262e+00 1.236568884548108e+00 1.228443154841189e+00 1.220349783647821e+00 1.212288651549746e+00 + 1.204259634287000e+00 1.196262595500517e+00 1.188297406122070e+00 1.180363940507803e+00 1.172462072687314e+00 + 1.164591670206239e+00 1.156752605274376e+00 1.148944764287503e+00 1.141168021685895e+00 1.133422246839356e+00 + 1.125707316556084e+00 1.118023109341937e+00 1.110369501923575e+00 1.102746365022667e+00 1.095153580538906e+00 + 1.087591037394418e+00 1.080058609806265e+00 1.072556173728377e+00 1.065083611042832e+00 1.057640804167975e+00 + 1.050227631677888e+00 1.042843969448370e+00 1.035489708218281e+00 1.028164736497249e+00 1.020868930712798e+00 + 1.013602173363602e+00 1.006364350528145e+00 9.991553480860069e-01 9.919750464549014e-01 9.848233287198007e-01 + 9.777000916381701e-01 9.706052224312447e-01 9.635386022157533e-01 9.565001191688937e-01 9.494896630661879e-01 + 9.425071223228538e-01 9.355523797940184e-01 9.286253271866921e-01 9.217258644183214e-01 9.148538781303724e-01 + 9.080092551050607e-01 9.011918879859632e-01 8.944016703005543e-01 8.876384924746002e-01 8.809022413584221e-01 + 8.741928168976413e-01 8.675101190938330e-01 8.608540359442419e-01 8.542244603473701e-01 8.476212889430066e-01 + 8.410444181391276e-01 8.344937399710189e-01 8.279691476350027e-01 8.214705470141707e-01 8.149978368018493e-01 + 8.085509088588196e-01 8.021296614287111e-01 7.957339944800463e-01 7.893638070383275e-01 7.830189931350516e-01 + 7.766994532966268e-01 7.704050967403675e-01 7.641358215802615e-01 7.578915247022724e-01 7.516721083807270e-01 + 7.454774759379389e-01 7.393075284143857e-01 7.331621629407183e-01 7.270412875750237e-01 7.209448123528730e-01 + 7.148726361079928e-01 7.088246610576617e-01 7.028007931997213e-01 6.968009387204053e-01 6.908250000358214e-01 + 6.848728793751606e-01 6.789444908271167e-01 6.730397435251165e-01 6.671585392499849e-01 6.613007849024644e-01 + 6.554663896318030e-01 6.496552624588109e-01 6.438673070778183e-01 6.381024319556428e-01 6.323605552121262e-01 + 6.266415850605696e-01 6.209454272475601e-01 6.152719929073242e-01 6.096211942955035e-01 6.039929419697414e-01 + 5.983871423673978e-01 5.928037109278776e-01 5.872425665727200e-01 5.817036179262789e-01 5.761867757580472e-01 + 5.706919545755328e-01 5.652190691753797e-01 5.597680312855905e-01 5.543387515608681e-01 5.489311514266204e-01 + 5.435451491959484e-01 5.381806555529779e-01 5.328375858091706e-01 5.275158573424954e-01 5.222153871968650e-01 + 5.169360885007255e-01 5.116778775087658e-01 5.064406794925096e-01 5.012244118255510e-01 4.960289886382637e-01 + 4.908543290552675e-01 4.857003532629381e-01 4.805669801867241e-01 4.754541247133137e-01 4.703617092625736e-01 + 4.652896609026711e-01 4.602378967146020e-01 4.552063350475851e-01 4.501948983226124e-01 4.452035092771810e-01 + 4.402320879227842e-01 4.352805523654864e-01 4.303488309750054e-01 4.254368504386150e-01 4.205445290166767e-01 + 4.156717895856258e-01 4.108185573527897e-01 4.059847567861119e-01 4.011703090912549e-01 3.963751374739253e-01 + 3.915991740467544e-01 3.868423443729578e-01 3.821045699452743e-01 3.773857771630841e-01 3.726858934536713e-01 + 3.680048452743795e-01 3.633425553945757e-01 3.586989523890614e-01 3.540739701811214e-01 3.494675340422360e-01 + 3.448795694018267e-01 3.403100055229290e-01 3.357587720701978e-01 3.312257966625470e-01 3.267110046986084e-01 + 3.222143302305144e-01 3.177357072575733e-01 3.132750617821559e-01 3.088323230437107e-01 3.044074228278458e-01 + 3.000002929514869e-01 2.956108619814004e-01 2.912390591663653e-01 2.868848226223222e-01 2.825480855369588e-01 + 2.782287763584979e-01 2.739268276304007e-01 2.696421732978619e-01 2.653747469077652e-01 2.611244782932083e-01 + 2.568913016367161e-01 2.526751570146955e-01 2.484759769388697e-01 2.442936932048949e-01 2.401282413902519e-01 + 2.359795575701045e-01 2.318475761710866e-01 2.277322290127450e-01 2.236334554284879e-01 2.195511960314929e-01 + 2.154853836729677e-01 2.114359536211432e-01 2.074028437636633e-01 2.033859920182897e-01 1.993853337119912e-01 + 1.954008040589642e-01 1.914323463143237e-01 1.874799002688242e-01 1.835434007181165e-01 1.796227861758036e-01 + 1.757179964922509e-01 1.718289711649378e-01 1.679556465242757e-01 1.640979620393169e-01 1.602558632656972e-01 + 1.564292893436780e-01 1.526181778855338e-01 1.488224700413446e-01 1.450421075715582e-01 1.412770310767497e-01 + 1.375271785489454e-01 1.337924939887067e-01 1.300729236356154e-01 1.263684067750867e-01 1.226788841702678e-01 + 1.190042991249222e-01 1.153445951805052e-01 1.116997137432381e-01 1.080695954417651e-01 1.044541881911586e-01 + 1.008534377603918e-01 9.726728475975084e-02 9.369567294988820e-02 9.013854752144720e-02 8.659585347215112e-02 + 8.306753302147955e-02 7.955353046975124e-02 7.605379621791922e-02 7.256827534889604e-02 6.909691079142652e-02 + 6.563964883225221e-02 6.219643640409570e-02 5.876721959493493e-02 5.535194193553600e-02 5.195055179453398e-02 + 4.856300050562060e-02 4.518923308325209e-02 4.182919528191363e-02 3.848283536820589e-02 3.515010193539807e-02 + 3.183094185890936e-02 2.852530077920949e-02 2.523313079087341e-02 2.195438300307553e-02 1.868900335629075e-02 + 1.543694036357313e-02 1.219814405293583e-02 8.972564385828061e-03 5.760148923624660e-03 2.560846417529306e-03 + -6.253884489496408e-04 -3.798605206001689e-03 -6.958856024607482e-03 -1.010619000899848e-02 -1.324065554473652e-02 + -1.636230159824732e-02 -1.947117958312726e-02 -2.256733711284757e-02 -2.565081832749929e-02 -2.872167302619957e-02 + -3.177995089902724e-02 -3.482569914268617e-02 -3.785896464500105e-02 -4.087979562235380e-02 -4.388824175488684e-02 + -4.688434717766576e-02 -4.986815604286890e-02 -5.283971753775529e-02 -5.579907881824794e-02 -5.874628546589089e-02 + -6.168138307363240e-02 -6.460441923558070e-02 -6.751544105442296e-02 -7.041449003639784e-02 -7.330161087707579e-02 + -7.617685125406765e-02 -7.904025608548425e-02 -8.189186951723537e-02 -8.473173608907363e-02 -8.755990257827875e-02 + -9.037641289395969e-02 -9.318130717201861e-02 -9.597463047763352e-02 -9.875642835115833e-02 -1.015267439140877e-01 + -1.042856199263307e-01 -1.070331001684683e-01 -1.097692300567918e-01 -1.124940502948268e-01 -1.152076007898061e-01 + -1.179099262631479e-01 -1.206010699593113e-01 -1.232810735016665e-01 -1.259499784255051e-01 -1.286078279418341e-01 + -1.312546653333709e-01 -1.338905286984875e-01 -1.365154583874092e-01 -1.391294979538990e-01 -1.417326885345280e-01 + -1.443250704192513e-01 -1.469066841433861e-01 -1.494775722507627e-01 -1.520377752494497e-01 -1.545873297590701e-01 + -1.571262765202916e-01 -1.596546572452540e-01 -1.621725113907878e-01 -1.646798779801165e-01 -1.671767967821347e-01 + -1.696633092874520e-01 -1.721394530811854e-01 -1.746052643091513e-01 -1.770607836101869e-01 -1.795060506428017e-01 + -1.819411034225526e-01 -1.843659798390828e-01 -1.867807191554161e-01 -1.891853611111403e-01 -1.915799407499077e-01 + -1.939644945120454e-01 -1.963390621459183e-01 -1.987036813730624e-01 -2.010583889984393e-01 -2.034032219467188e-01 + -2.057382189127211e-01 -2.080634172465200e-01 -2.103788504106409e-01 -2.126845552585028e-01 -2.149805700057577e-01 + -2.172669307458855e-01 -2.195436731393316e-01 -2.218108333786645e-01 -2.240684493062661e-01 -2.263165556286022e-01 + -2.285551851690127e-01 -2.307843748874083e-01 -2.330041611277884e-01 -2.352145785311434e-01 -2.374156618282909e-01 + -2.396074467707450e-01 -2.417899696732801e-01 -2.439632627554057e-01 -2.461273590292558e-01 -2.482822949571798e-01 + -2.504281050002428e-01 -2.525648226666662e-01 -2.546924818382261e-01 -2.568111176810049e-01 -2.589207645010757e-01 + -2.610214530059819e-01 -2.631132165202481e-01 -2.651960899948890e-01 -2.672701065219724e-01 -2.693352987894519e-01 + -2.713916998229662e-01 -2.734393439668777e-01 -2.754782632038173e-01 -2.775084874639143e-01 -2.795300503441993e-01 + -2.815429852855671e-01 -2.835473240274155e-01 -2.855430981234691e-01 -2.875303400246380e-01 -2.895090831627840e-01 + -2.914793573631382e-01 -2.934411924374482e-01 -2.953946213942734e-01 -2.973396760049649e-01 -2.992763870705049e-01 + -3.012047853752455e-01 -3.031249029054077e-01 -3.050367713048046e-01 -3.069404187491607e-01 -3.088358754333808e-01 + -3.107231733999588e-01 -3.126023429151826e-01 -3.144734138246973e-01 -3.163364162512183e-01 -3.181913814969073e-01 + -3.200383391593082e-01 -3.218773166629695e-01 -3.237083442965246e-01 -3.255314526206347e-01 -3.273466708133588e-01 + -3.291540279174764e-01 -3.309535535062730e-01 -3.327452779044484e-01 -3.345292286746930e-01 -3.363054329977739e-01 + -3.380739209920870e-01 -3.398347217688169e-01 -3.415878634526212e-01 -3.433333743100879e-01 -3.450712833788954e-01 + -3.468016195958206e-01 -3.485244091566739e-01 -3.502396793974815e-01 -3.519474593420066e-01 -3.536477770380763e-01 + -3.553406598299846e-01 -3.570261348354672e-01 -3.587042307855341e-01 -3.603749751839582e-01 -3.620383929731605e-01 + -3.636945116923384e-01 -3.653433594409278e-01 -3.669849628231984e-01 -3.686193482790397e-01 -3.702465427747400e-01 + -3.718665743211436e-01 -3.734794684043725e-01 -3.750852495624684e-01 -3.766839451194457e-01 -3.782755819189342e-01 + -3.798601858648072e-01 -3.814377826321034e-01 -3.830083986549013e-01 -3.845720606417443e-01 -3.861287926090124e-01 + -3.876786193539286e-01 -3.892215675502101e-01 -3.907576628594260e-01 -3.922869303026715e-01 -3.938093947284727e-01 + -3.953250822556230e-01 -3.968340182497304e-01 -3.983362256494206e-01 -3.998317293097848e-01 -4.013205549386248e-01 + -4.028027272117153e-01 -4.042782703087232e-01 -4.057472086115670e-01 -4.072095677082399e-01 -4.086653712889545e-01 + -4.101146418277140e-01 -4.115574040934622e-01 -4.129936826934361e-01 -4.144235014035024e-01 -4.158468836578273e-01 + -4.172638535617268e-01 -4.186744357650895e-01 -4.200786523524958e-01 -4.214765258006608e-01 -4.228680805923657e-01 + -4.242533401481378e-01 -4.256323273241845e-01 -4.270050650780072e-01 -4.283715771591216e-01 -4.297318868367957e-01 + -4.310860152683936e-01 -4.324339850671611e-01 -4.337758197699306e-01 -4.351115419219263e-01 -4.364411736856622e-01 + -4.377647373653272e-01 -4.390822563519974e-01 -4.403937525793140e-01 -4.416992465950099e-01 -4.429987609092939e-01 + -4.442923180804305e-01 -4.455799398898891e-01 -4.468616477876415e-01 -4.481374637930542e-01 -4.494074106490894e-01 + -4.506715085877422e-01 -4.519297779021105e-01 -4.531822412097039e-01 -4.544289201442401e-01 -4.556698355752103e-01 + -4.569050083194456e-01 -4.581344599890250e-01 -4.593582121055255e-01 -4.605762842891920e-01 -4.617886970897419e-01 + -4.629954719556403e-01 -4.641966295426422e-01 -4.653921902577345e-01 -4.665821746143150e-01 -4.677666038635413e-01 + -4.689454981292748e-01 -4.701188761476531e-01 -4.712867586709557e-01 -4.724491664926360e-01 -4.736061192593240e-01 + -4.747576368456714e-01 -4.759037394682022e-01 -4.770444475543998e-01 -4.781797800875144e-01 -4.793097558338887e-01 + -4.804343950164401e-01 -4.815537175042383e-01 -4.826677426390972e-01 -4.837764894228364e-01 -4.848799775883490e-01 + -4.859782270303963e-01 -4.870712557287352e-01 -4.881590823344398e-01 -4.892417265305033e-01 -4.903192072931410e-01 + -4.913915433426016e-01 -4.924587534540600e-01 -4.935208569593936e-01 -4.945778724869024e-01 -4.956298174121960e-01 + -4.966767104426105e-01 -4.977185705977166e-01 -4.987554161795947e-01 -4.997872652579317e-01 -5.008141361357437e-01 + -5.018360477540788e-01 -5.028530175622089e-01 -5.038650625463708e-01 -5.048722015765362e-01 -5.058744527800632e-01 + -5.068718334710337e-01 -5.078643614554021e-01 -5.088520548881869e-01 -5.098349318298798e-01 -5.108130088001350e-01 + -5.117863028619736e-01 -5.127548322161382e-01 -5.137186142245088e-01 -5.146776659499980e-01 -5.156320045833772e-01 + -5.165816478015819e-01 -5.175266128170244e-01 -5.184669156304091e-01 -5.194025733016244e-01 -5.203336032597101e-01 + -5.212600221732120e-01 -5.221818466804444e-01 -5.230990936596679e-01 -5.240117804553392e-01 -5.249199232262068e-01 + -5.258235374392936e-01 -5.267226400387954e-01 -5.276172478389746e-01 -5.285073771019844e-01 -5.293930438910602e-01 + -5.302742646986305e-01 -5.311510563423283e-01 -5.320234339437281e-01 -5.328914129379527e-01 -5.337550101355577e-01 + -5.346142414983102e-01 -5.354691226448078e-01 -5.363196694209366e-01 -5.371658979374595e-01 -5.380078240078261e-01 + -5.388454624615836e-01 -5.396788287704753e-01 -5.405079388378121e-01 -5.413328081929075e-01 -5.421534521210617e-01 + -5.429698859177164e-01 -5.437821254261226e-01 -5.445901856060492e-01 -5.453940806517681e-01 -5.461938261275164e-01 + -5.469894375147514e-01 -5.477809296410460e-01 -5.485683172596564e-01 -5.493516154047422e-01 -5.501308394233321e-01 + -5.509060035978606e-01 -5.516771220917993e-01 -5.524442098036262e-01 -5.532072816062331e-01 -5.539663521228516e-01 + -5.547214355736525e-01 -5.554725467511782e-01 -5.562197004144761e-01 -5.569629099559865e-01 -5.577021895124128e-01 + -5.584375539231472e-01 -5.591690174427206e-01 -5.598965939391384e-01 -5.606202972403660e-01 -5.613401421520022e-01 + -5.620561426054913e-01 -5.627683113219669e-01 -5.634766626491997e-01 -5.641812109417922e-01 -5.648819696019924e-01 + -5.655789522526887e-01 -5.662721727674018e-01 -5.669616451334641e-01 -5.676473824290281e-01 -5.683293976251365e-01 + -5.690077046537543e-01 -5.696823171027902e-01 -5.703532481968968e-01 -5.710205111045815e-01 -5.716841193018837e-01 + -5.723440862989044e-01 -5.730004247377283e-01 -5.736531475408438e-01 -5.743022680808630e-01 -5.749477994635019e-01 + -5.755897545119250e-01 -5.762281459317424e-01 -5.768629872133108e-01 -5.774942912813225e-01 -5.781220698864685e-01 + -5.787463360372200e-01 -5.793671029370097e-01 -5.799843829591812e-01 -5.805981885004621e-01 -5.812085322229668e-01 + -5.818154271777390e-01 -5.824188854500640e-01 -5.830189187855023e-01 -5.836155400127914e-01 -5.842087616519486e-01 + -5.847985957903102e-01 -5.853850545399070e-01 -5.859681502822114e-01 -5.865478954643482e-01 -5.871243015837295e-01 + -5.876973804424807e-01 -5.882671445115567e-01 -5.888336058093040e-01 -5.893967761301214e-01 -5.899566672475657e-01 + -5.905132912554449e-01 -5.910666600004119e-01 -5.916167846344484e-01 -5.921636769312483e-01 -5.927073488739303e-01 + -5.932478119884005e-01 -5.937850777230974e-01 -5.943191576345895e-01 -5.948500635775013e-01 -5.953778067525587e-01 + -5.959023980172641e-01 -5.964238491804477e-01 -5.969421717317064e-01 -5.974573766302176e-01 -5.979694750153504e-01 + -5.984784782975928e-01 -5.989843980133127e-01 -5.994872448737363e-01 -5.999870296226286e-01 -6.004837635008013e-01 + -6.009774575116591e-01 -6.014681225640990e-01 -6.019557696406324e-01 -6.024404098188824e-01 -6.029220539582525e-01 + -6.034007123251734e-01 -6.038763957092128e-01 -6.043491151546724e-01 -6.048188811990667e-01 -6.052857043294740e-01 + -6.057495951725935e-01 -6.062105647034982e-01 -6.066686232996821e-01 -6.071237808282512e-01 -6.075760480581535e-01 + -6.080254356249652e-01 -6.084719536597242e-01 -6.089156123708600e-01 -6.093564221655233e-01 -6.097943936088406e-01 + -6.102295366277345e-01 -6.106618611466814e-01 -6.110913776082281e-01 -6.115180960018122e-01 -6.119420262061138e-01 + -6.123631785057825e-01 -6.127815629923925e-01 -6.131971895415724e-01 -6.136100679122567e-01 -6.140202079254689e-01 + -6.144276194632986e-01 -6.148323123693087e-01 -6.152342964516117e-01 -6.156335814880438e-01 -6.160301772367670e-01 + -6.164240932773791e-01 -6.168153390131846e-01 -6.172039241057757e-01 -6.175898582479540e-01 -6.179731510100582e-01 + -6.183538118537011e-01 -6.187318502245757e-01 -6.191072755983122e-01 -6.194800972241303e-01 -6.198503243163954e-01 + -6.202179663089392e-01 -6.205830326036273e-01 -6.209455324825972e-01 -6.213054750121583e-01 -6.216628693834372e-01 + -6.220177248671027e-01 -6.223700505100402e-01 -6.227198553511943e-01 -6.230671484590707e-01 -6.234119388224310e-01 + -6.237542354039819e-01 -6.240940471906395e-01 -6.244313833278470e-01 -6.247662526956897e-01 -6.250986637315333e-01 + -6.254286253149073e-01 -6.257561464374979e-01 -6.260812358699522e-01 -6.264039022632663e-01 -6.267241542804416e-01 + -6.270420007239386e-01 -6.273574502418447e-01 -6.276705113436000e-01 -6.279811924920996e-01 -6.282895022600340e-01 + -6.285954492669960e-01 -6.288990419377586e-01 -6.292002887596219e-01 -6.294991982474318e-01 -6.297957785295903e-01 + -6.300900379535952e-01 -6.303819851813233e-01 -6.306716282540937e-01 -6.309589752809680e-01 -6.312440348023121e-01 + -6.315268150763020e-01 -6.318073241903770e-01 -6.320855701836068e-01 -6.323615610879741e-01 -6.326353050044859e-01 + -6.329068101802829e-01 -6.331760846635813e-01 -6.334431363818833e-01 -6.337079733473078e-01 -6.339706034520735e-01 + -6.342310345121693e-01 -6.344892744839461e-01 -6.347453312805855e-01 -6.349992127114430e-01 -6.352509264768633e-01 + -6.355004804526597e-01 -6.357478826585540e-01 -6.359931404400122e-01 -6.362362612918424e-01 -6.364772532644518e-01 + -6.367161239398067e-01 -6.369528807876881e-01 -6.371875315012039e-01 -6.374200836672138e-01 -6.376505447719858e-01 + -6.378789222449943e-01 -6.381052236017390e-01 -6.383294563385360e-01 -6.385516277126226e-01 -6.387717451483415e-01 + -6.389898161925324e-01 -6.392058481779943e-01 -6.394198483013303e-01 -6.396318237129481e-01 -6.398417817583982e-01 + -6.400497298004382e-01 -6.402556751053731e-01 -6.404596246811356e-01 -6.406615856182318e-01 -6.408615652398488e-01 + -6.410595705960431e-01 -6.412556087124355e-01 -6.414496867908267e-01 -6.416418117430738e-01 -6.418319904244396e-01 + -6.420202299552208e-01 -6.422065373268501e-01 -6.423909194238488e-01 -6.425733831564441e-01 -6.427539354568388e-01 + -6.429325832107947e-01 -6.431093330874931e-01 -6.432841919278923e-01 -6.434571667152847e-01 -6.436282640341581e-01 + -6.437974905134223e-01 -6.439648529819666e-01 -6.441303582355420e-01 -6.442940129046214e-01 -6.444558234243410e-01 + -6.446157964842297e-01 -6.447739387669796e-01 -6.449302567289288e-01 -6.450847570451982e-01 -6.452374463418470e-01 + -6.453883308317777e-01 -6.455374170518916e-01 -6.456847116523639e-01 -6.458302208459006e-01 -6.459739509825424e-01 + -6.461159085765001e-01 -6.462561000624228e-01 -6.463945317857885e-01 -6.465312099893501e-01 -6.466661407794220e-01 + -6.467993305071421e-01 -6.469307857586633e-01 -6.470605124176557e-01 -6.471885165505020e-01 -6.473148048129491e-01 + -6.474393831451855e-01 -6.475622574433044e-01 -6.476834341411803e-01 -6.478029193005811e-01 -6.479207188186653e-01 + -6.480368387749067e-01 -6.481512852365653e-01 -6.482640642356557e-01 -6.483751817763184e-01 -6.484846438333333e-01 + -6.485924563559199e-01 -6.486986252696630e-01 -6.488031563964390e-01 -6.489060555062011e-01 -6.490073285956434e-01 + -6.491069816182633e-01 -6.492050203757027e-01 -6.493014505946639e-01 -6.493962779796888e-01 -6.494895082497514e-01 + -6.495811472172135e-01 -6.496712006463234e-01 -6.497596741452655e-01 -6.498465734697708e-01 -6.499319043537729e-01 + -6.500156722751166e-01 -6.500978828758883e-01 -6.501785418212779e-01 -6.502576544563589e-01 -6.503352264336196e-01 + -6.504112635780723e-01 -6.504857712206107e-01 -6.505587548117625e-01 -6.506302199692129e-01 -6.507001719669850e-01 + -6.507686161481057e-01 -6.508355580770583e-01 -6.509010033515999e-01 -6.509649573333303e-01 -6.510274250599254e-01 + -6.510884119408136e-01 -6.511479234691252e-01 -6.512059649357221e-01 -6.512625414820176e-01 -6.513176583196066e-01 + -6.513713209657690e-01 -6.514235346566493e-01 -6.514743044494572e-01 -6.515236355351222e-01 -6.515715331668240e-01 + -6.516180025498758e-01 -6.516630486086969e-01 -6.517066764698182e-01 -6.517488914696901e-01 -6.517896986474616e-01 + -6.518291029696229e-01 -6.518671094474887e-01 -6.519037232298822e-01 -6.519389493677847e-01 -6.519727927034696e-01 + -6.520052582102593e-01 -6.520363509344871e-01 -6.520660759114448e-01 -6.520944379877177e-01 -6.521214419863292e-01 + -6.521470929034477e-01 -6.521713955379932e-01 -6.521943546611896e-01 -6.522159753870301e-01 -6.522362625000242e-01 + -6.522552205660485e-01 -6.522728545508729e-01 -6.522891692872490e-01 -6.523041693781095e-01 -6.523178594474156e-01 + -6.523302443147758e-01 -6.523413289626511e-01 -6.523511179648659e-01 -6.523596158248584e-01 -6.523668271884714e-01 + -6.523727568212391e-01 -6.523774093997819e-01 -6.523807893579161e-01 -6.523829012952149e-01 -6.523837498990516e-01 + -6.523833397960367e-01 -6.523816754611410e-01 -6.523787613199525e-01 -6.523746019358498e-01 -6.523692018302728e-01 + -6.523625654555820e-01 -6.523546972248629e-01 -6.523456017173497e-01 -6.523352835702680e-01 -6.523237468711672e-01 + -6.523109959032295e-01 -6.522970353197415e-01 -6.522818693382445e-01 -6.522655022842732e-01 -6.522479388337681e-01 + -6.522291831409690e-01 -6.522092393163972e-01 -6.521881118419591e-01 -6.521658050464721e-01 -6.521423231008568e-01 + -6.521176700882644e-01 -6.520918504277817e-01 -6.520648685798258e-01 -6.520367284462982e-01 -6.520074341903623e-01 + -6.519769901852531e-01 -6.519454004576026e-01 -6.519126690272374e-01 -6.518788000417296e-01 -6.518437978790763e-01 + -6.518076667685843e-01 -6.517704106505043e-01 -6.517320333460206e-01 -6.516925389358605e-01 -6.516519318553129e-01 + -6.516102158220000e-01 -6.515673946405215e-01 -6.515234728464969e-01 -6.514784543315630e-01 -6.514323427842886e-01 + -6.513851423523833e-01 -6.513368570527661e-01 -6.512874907235414e-01 -6.512370470939771e-01 -6.511855301990920e-01 + -6.511329442190841e-01 -6.510792928715797e-01 -6.510245798816351e-01 -6.509688091361985e-01 -6.509119847142907e-01 + -6.508541103488035e-01 -6.507951894034477e-01 -6.507352259931611e-01 -6.506742241942834e-01 -6.506121876059120e-01 + -6.505491199228429e-01 -6.504850249436106e-01 -6.504199065016956e-01 -6.503537680222150e-01 -6.502866130342899e-01 + -6.502184457971011e-01 -6.501492700279957e-01 -6.500790890906794e-01 -6.500079066129352e-01 -6.499357263329657e-01 + -6.498625519683058e-01 -6.497883869826074e-01 -6.497132350047277e-01 -6.496370998048885e-01 -6.495599847614121e-01 + -6.494818934475555e-01 -6.494028297363450e-01 -6.493227969968260e-01 -6.492417985197620e-01 -6.491598378013752e-01 + -6.490769185970405e-01 -6.489930446200032e-01 -6.489082192796405e-01 -6.488224457999440e-01 -6.487357275334984e-01 + -6.486480682838258e-01 -6.485594713376021e-01 -6.484699398068251e-01 -6.483794774339799e-01 -6.482880877536140e-01 + -6.481957740532812e-01 -6.481025397024727e-01 -6.480083880017639e-01 -6.479133221889776e-01 -6.478173456351086e-01 + -6.477204618036257e-01 -6.476226741599570e-01 -6.475239858039916e-01 -6.474243999826228e-01 -6.473239202990485e-01 + -6.472225498463482e-01 -6.471202916312221e-01 -6.470171489638400e-01 -6.469131252405815e-01 -6.468082238277443e-01 + -6.467024479420175e-01 -6.465958006550642e-01 -6.464882850509053e-01 -6.463799044773618e-01 -6.462706620382276e-01 + -6.461605607272912e-01 -6.460496040101232e-01 -6.459377950690467e-01 -6.458251367734501e-01 -6.457116323868038e-01 + -6.455972850655802e-01 -6.454820977029684e-01 -6.453660732942879e-01 -6.452492150754419e-01 -6.451315264887545e-01 + -6.450130102914885e-01 -6.448936692680686e-01 -6.447735068128447e-01 -6.446525260129213e-01 -6.445307296530088e-01 + -6.444081203587793e-01 -6.442847014715996e-01 -6.441604765089356e-01 -6.440354480546840e-01 -6.439096188724848e-01 + -6.437829920095609e-01 -6.436555704731397e-01 -6.435273570693492e-01 -6.433983545533010e-01 -6.432685663163126e-01 + -6.431379953365300e-01 -6.430066439769492e-01 -6.428745153347271e-01 -6.427416124750638e-01 -6.426079380140648e-01 + -6.424734947555180e-01 -6.423382856273998e-01 -6.422023135830728e-01 -6.420655814260000e-01 -6.419280919255173e-01 + -6.417898479598759e-01 -6.416508523135933e-01 -6.415111076305331e-01 -6.413706163966455e-01 -6.412293816393564e-01 + -6.410874066048897e-01 -6.409446936267265e-01 -6.408012453136449e-01 -6.406570646910840e-01 -6.405121544270317e-01 + -6.403665170374713e-01 -6.402201550644944e-01 -6.400730715072882e-01 -6.399252691822962e-01 -6.397767504407681e-01 + -6.396275180930010e-01 -6.394775749890055e-01 -6.393269236107165e-01 -6.391755662191552e-01 -6.390235053902433e-01 + -6.388707445708105e-01 -6.387172861694177e-01 -6.385631322023312e-01 -6.384082857966726e-01 -6.382527494896121e-01 + -6.380965253642142e-01 -6.379396162401521e-01 -6.377820248167250e-01 -6.376237535602883e-01 -6.374648052204416e-01 + -6.373051823107587e-01 -6.371448870124290e-01 -6.369839218821269e-01 -6.368222895078627e-01 -6.366599923302766e-01 + -6.364970329561520e-01 -6.363334139746031e-01 -6.361691377885151e-01 -6.360042067688202e-01 -6.358386233547334e-01 + -6.356723901317635e-01 -6.355055093799952e-01 -6.353379833438523e-01 -6.351698147827204e-01 -6.350010061497325e-01 + -6.348315596278746e-01 -6.346614776297652e-01 -6.344907627044540e-01 -6.343194173354602e-01 -6.341474433478579e-01 + -6.339748431233465e-01 -6.338016197812808e-01 -6.336277753787244e-01 -6.334533118997744e-01 -6.332782318265875e-01 + -6.331025376588558e-01 -6.329262316544187e-01 -6.327493157114107e-01 -6.325717923863455e-01 -6.323936643403999e-01 + -6.322149336030685e-01 -6.320356024195775e-01 -6.318556731749607e-01 -6.316751480498738e-01 -6.314940290711796e-01 + -6.313123183267710e-01 -6.311300184615836e-01 -6.309471319109403e-01 -6.307636607640942e-01 -6.305796070902886e-01 + -6.303949730482692e-01 -6.302097608691579e-01 -6.300239725606558e-01 -6.298376103756032e-01 -6.296506769748604e-01 + -6.294631743864889e-01 -6.292751044804592e-01 -6.290864694027335e-01 -6.288972714311484e-01 -6.287075127245377e-01 + -6.285171950849623e-01 -6.283263208775478e-01 -6.281348926187029e-01 -6.279429120773061e-01 -6.277503812180564e-01 + -6.275573022752827e-01 -6.273636774541002e-01 -6.271695087389834e-01 -6.269747979757735e-01 -6.267795473573458e-01 + -6.265837591630624e-01 -6.263874355834504e-01 -6.261905784094625e-01 -6.259931895045528e-01 -6.257952710369122e-01 + -6.255968250363517e-01 -6.253978534898084e-01 -6.251983584520242e-01 -6.249983420853732e-01 -6.247978064572296e-01 + -6.245967533125147e-01 -6.243951846742302e-01 -6.241931026018996e-01 -6.239905086686763e-01 -6.237874050561640e-01 + -6.235837942608177e-01 -6.233796778475696e-01 -6.231750576026635e-01 -6.229699356978790e-01 -6.227643140512986e-01 + -6.225581944126894e-01 -6.223515785171654e-01 -6.221444686516174e-01 -6.219368669106876e-01 -6.217287748516653e-01 + -6.215201944179222e-01 -6.213111276341791e-01 -6.211015763012264e-01 -6.208915420627059e-01 -6.206810267189914e-01 + -6.204700325606027e-01 -6.202585614407183e-01 -6.200466150025669e-01 -6.198341952555039e-01 -6.196213039807257e-01 + -6.194079427661365e-01 -6.191941133919308e-01 -6.189798178811384e-01 -6.187650583625046e-01 -6.185498365366234e-01 + -6.183341539791172e-01 -6.181180123373080e-01 -6.179014136693182e-01 -6.176843597571294e-01 -6.174668518753883e-01 + -6.172488922358068e-01 -6.170304830078728e-01 -6.168116255085183e-01 -6.165923213940302e-01 -6.163725725542526e-01 + -6.161523808379610e-01 -6.159317477445455e-01 -6.157106747923912e-01 -6.154891641891720e-01 -6.152672177134336e-01 + -6.150448367622374e-01 -6.148220230127394e-01 -6.145987783325538e-01 -6.143751045698781e-01 -6.141510029326600e-01 + -6.139264750393221e-01 -6.137015231470567e-01 -6.134761489851926e-01 -6.132503540152313e-01 -6.130241396532106e-01 + -6.127975076851865e-01 -6.125704598048077e-01 -6.123429972989166e-01 -6.121151221351967e-01 -6.118868363314907e-01 + -6.116581411278224e-01 -6.114290380220153e-01 -6.111995287783158e-01 -6.109696151823703e-01 -6.107392985450728e-01 + -6.105085801024925e-01 -6.102774622058419e-01 -6.100459465922933e-01 -6.098140342484372e-01 -6.095817267256873e-01 + -6.093490257933440e-01 -6.091159331809802e-01 -6.088824500709522e-01 -6.086485779905337e-01 -6.084143191489354e-01 + -6.081796748129595e-01 -6.079446461968719e-01 -6.077092351925356e-01 -6.074734432434898e-01 -6.072372716150822e-01 + -6.070007218360295e-01 -6.067637956065657e-01 -6.065264946232775e-01 -6.062888203126375e-01 -6.060507740692458e-01 + -6.058123573561740e-01 -6.055735718185850e-01 -6.053344188005130e-01 -6.050948994718379e-01 -6.048550157592759e-01 + -6.046147693250087e-01 -6.043741612917217e-01 -6.041331930896253e-01 -6.038918662688606e-01 -6.036501823335466e-01 + -6.034081424814672e-01 -6.031657481058161e-01 -6.029230011393863e-01 -6.026799028730719e-01 -6.024364544399844e-01 + -6.021926574869638e-01 -6.019485136055120e-01 -6.017040241022006e-01 -6.014591897708976e-01 -6.012140122415236e-01 + -6.009684936432825e-01 -6.007226351565053e-01 -6.004764378633045e-01 -6.002299030368295e-01 -5.999830322604393e-01 + -5.997358269112610e-01 -5.994882881008079e-01 -5.992404174674395e-01 -5.989922165630734e-01 -5.987436865327392e-01 + -5.984948286273432e-01 -5.982456442781595e-01 -5.979961350600861e-01 -5.977463018616249e-01 -5.974961457245347e-01 + -5.972456688462123e-01 -5.969948725706038e-01 -5.967437577688297e-01 -5.964923259025159e-01 -5.962405782771161e-01 + -5.959885160038786e-01 -5.957361402849749e-01 -5.954834525607696e-01 -5.952304544228757e-01 -5.949771471628894e-01 + -5.947235319540697e-01 -5.944696099654433e-01 -5.942153825546195e-01 -5.939608509107162e-01 -5.937060159741117e-01 + -5.934508794411635e-01 -5.931954428951332e-01 -5.929397071302310e-01 -5.926836734445704e-01 -5.924273432987167e-01 + -5.921707177793331e-01 -5.919137978828047e-01 -5.916565847753502e-01 -5.913990801532651e-01 -5.911412853604616e-01 + -5.908832013941032e-01 -5.906248293335863e-01 -5.903661704565201e-01 -5.901072261246485e-01 -5.898479972855557e-01 + -5.895884850905705e-01 -5.893286910470348e-01 -5.890686164387193e-01 -5.888082623596927e-01 -5.885476297953414e-01 + -5.882867200485414e-01 -5.880255342895034e-01 -5.877640732646211e-01 -5.875023385228563e-01 -5.872403317009627e-01 + -5.869780535979796e-01 -5.867155052441069e-01 -5.864526878805291e-01 -5.861896026754034e-01 -5.859262506932092e-01 + -5.856626329801135e-01 -5.853987507817091e-01 -5.851346053972879e-01 -5.848701980701103e-01 -5.846055297559873e-01 + -5.843406014627009e-01 -5.840754143260567e-01 -5.838099692919883e-01 -5.835442675863415e-01 -5.832783108438364e-01 + -5.830120998737411e-01 -5.827456354637697e-01 -5.824789190313094e-01 -5.822119517157962e-01 -5.819447343999242e-01 + -5.816772678604962e-01 -5.814095534384316e-01 -5.811415926659900e-01 -5.808733865100626e-01 -5.806049358083534e-01 + -5.803362414940428e-01 -5.800673049021045e-01 -5.797981269727348e-01 -5.795287083747186e-01 -5.792590507223763e-01 + -5.789891553127540e-01 -5.787190227795775e-01 -5.784486540773595e-01 -5.781780503537821e-01 -5.779072127885909e-01 + -5.776361421027820e-01 -5.773648392415993e-01 -5.770933058481036e-01 -5.768215427543451e-01 -5.765495506173008e-01 + -5.762773307782053e-01 -5.760048843724456e-01 -5.757322122309633e-01 -5.754593149355522e-01 -5.751861936930261e-01 + -5.749128500443350e-01 -5.746392847733658e-01 -5.743654986749642e-01 -5.740914927526973e-01 -5.738172681170074e-01 + -5.735428256834612e-01 -5.732681661997935e-01 -5.729932909950833e-01 -5.727182011898047e-01 -5.724428973589288e-01 + -5.721673806475209e-01 -5.718916522032619e-01 -5.716157126986885e-01 -5.713395629769044e-01 -5.710632040862346e-01 + -5.707866372440725e-01 -5.705098634203313e-01 -5.702328834166335e-01 -5.699556980810941e-01 -5.696783084118523e-01 + -5.694007154024264e-01 -5.691229196446771e-01 -5.688449222662509e-01 -5.685667247951188e-01 -5.682883277592247e-01 + -5.680097317796297e-01 -5.677309379467054e-01 -5.674519473718960e-01 -5.671727608332666e-01 -5.668933787438524e-01 + -5.666138024324125e-01 -5.663340332775648e-01 -5.660540719736767e-01 -5.657739191147048e-01 -5.654935755198692e-01 + -5.652130424887296e-01 -5.649323205844615e-01 -5.646514102596061e-01 -5.643703131320561e-01 -5.640890302500955e-01 + -5.638075621229782e-01 -5.635259096013298e-01 -5.632440735413435e-01 -5.629620547371306e-01 -5.626798540413637e-01 + -5.623974724401825e-01 -5.621149109968532e-01 -5.618321704141040e-01 -5.615492514232792e-01 -5.612661549867731e-01 + -5.609828820346520e-01 -5.606994332802816e-01 -5.604158091721365e-01 -5.601320109850756e-01 -5.598480400285579e-01 + -5.595638966628304e-01 -5.592795815381203e-01 -5.589950956088516e-01 -5.587104398719418e-01 -5.584256150214867e-01 + -5.581406216413944e-01 -5.578554608147975e-01 -5.575701335442586e-01 -5.572846406020895e-01 -5.569989825973618e-01 + -5.567131602740183e-01 -5.564271745453506e-01 -5.561410260628522e-01 -5.558547156725416e-01 -5.555682445647333e-01 + -5.552816133007876e-01 -5.549948224318785e-01 -5.547078730025937e-01 -5.544207659049382e-01 -5.541335017868810e-01 + -5.538460810525171e-01 -5.535585047530838e-01 -5.532707741030544e-01 -5.529828895161875e-01 -5.526948516856666e-01 + -5.524066615722431e-01 -5.521183198617187e-01 -5.518298271294942e-01 -5.515411840216864e-01 -5.512523916981388e-01 + -5.509634510475757e-01 -5.506743625070015e-01 -5.503851268106821e-01 -5.500957448096843e-01 -5.498062173123895e-01 + -5.495165448046009e-01 -5.492267279674086e-01 -5.489367680360671e-01 -5.486466657159732e-01 -5.483564214808752e-01 + -5.480660360175322e-01 -5.477755101695411e-01 -5.474848446983241e-01 -5.471940399297857e-01 -5.469030967097296e-01 + -5.466120162347039e-01 -5.463207992130580e-01 -5.460294461220425e-01 -5.457379574365921e-01 -5.454463341419615e-01 + -5.451545769787555e-01 -5.448626863052353e-01 -5.445706629798505e-01 -5.442785079610155e-01 -5.439862220351145e-01 + -5.436938056623958e-01 -5.434012594168094e-01 -5.431085842649811e-01 -5.428157805859503e-01 -5.425228488112607e-01 + -5.422297902211034e-01 -5.419366056396356e-01 -5.416432955189590e-01 -5.413498603513526e-01 -5.410563008101139e-01 + -5.407626176406882e-01 -5.404688113584152e-01 -5.401748827259091e-01 -5.398808327262222e-01 -5.395866619984641e-01 + -5.392923710452394e-01 -5.389979603718316e-01 -5.387034307479797e-01 -5.384087828255361e-01 -5.381140170098579e-01 + -5.378191341794292e-01 -5.375241352697128e-01 -5.372290208939874e-01 -5.369337913756430e-01 -5.366384472427702e-01 + -5.363429897090184e-01 -5.360474189692397e-01 -5.357517350808286e-01 -5.354559397287709e-01 -5.351600336380363e-01 + -5.348640167550405e-01 -5.345678898586708e-01 -5.342716537895550e-01 -5.339753091509816e-01 -5.336788560795809e-01 + -5.333822952812678e-01 -5.330856281219807e-01 -5.327888549366336e-01 -5.324919760228772e-01 -5.321949921530423e-01 + -5.318979038948367e-01 -5.316007117591099e-01 -5.313034163655616e-01 -5.310060185016283e-01 -5.307085188690476e-01 + -5.304109178113635e-01 -5.301132159560333e-01 -5.298154141057816e-01 -5.295175129068631e-01 -5.292195125739295e-01 + -5.289214133220888e-01 -5.286232164928936e-01 -5.283249229043371e-01 -5.280265326905970e-01 -5.277280463629660e-01 + -5.274294646406563e-01 -5.271307882435877e-01 -5.268320172699235e-01 -5.265331522204252e-01 -5.262341943956992e-01 + -5.259351442515741e-01 -5.256360020246456e-01 -5.253367683007200e-01 -5.250374438802079e-01 -5.247380293156688e-01 + -5.244385244793137e-01 -5.241389303158239e-01 -5.238392481089597e-01 -5.235394779437145e-01 -5.232396201567239e-01 + -5.229396754457293e-01 -5.226396444439171e-01 -5.223395275325885e-01 -5.220393250130385e-01 -5.217390378529512e-01 + -5.214386667612969e-01 -5.211382119631184e-01 -5.208376739941909e-01 -5.205370535049869e-01 -5.202363510969753e-01 + -5.199355670763710e-01 -5.196347019022574e-01 -5.193337564915598e-01 -5.190327313042545e-01 -5.187316266472318e-01 + -5.184304431068453e-01 -5.181291813913007e-01 -5.178278420262173e-01 -5.175264249304404e-01 -5.172249309061349e-01 + -5.169233612064826e-01 -5.166217158673360e-01 -5.163199951550123e-01 -5.160181998004911e-01 -5.157163303784532e-01 + -5.154143871836301e-01 -5.151123703899823e-01 -5.148102810445049e-01 -5.145081200022412e-01 -5.142058873966443e-01 + -5.139035834879907e-01 -5.136012088439446e-01 -5.132987643470369e-01 -5.129962500176725e-01 -5.126936660139045e-01 + -5.123910137907831e-01 -5.120882937169244e-01 -5.117855056864241e-01 -5.114826505830118e-01 -5.111797289351894e-01 + -5.108767409175631e-01 -5.105736869791608e-01 -5.102705678009448e-01 -5.099673841164564e-01 -5.096641361609235e-01 + -5.093608243087677e-01 -5.090574492425100e-01 -5.087540114820200e-01 -5.084505112619658e-01 -5.081469486274651e-01 + -5.078433245912960e-01 -5.075396400795943e-01 -5.072358951124865e-01 -5.069320899536702e-01 -5.066282251477461e-01 + -5.063243014155288e-01 -5.060203189866231e-01 -5.057162780382299e-01 -5.054121795257869e-01 -5.051080240346536e-01 + -5.048038117428125e-01 -5.044995428560932e-01 -5.041952179946867e-01 -5.038908379779851e-01 -5.035864027540428e-01 + -5.032819126747086e-01 -5.029773687584369e-01 -5.026727713803431e-01 -5.023681207203433e-01 -5.020634170773620e-01 + -5.017586611304518e-01 -5.014538534087800e-01 -5.011489939472488e-01 -5.008440834008399e-01 -5.005391225202214e-01 + -5.002341114848970e-01 -4.999290507534227e-01 -4.996239408965545e-01 -4.993187821357916e-01 -4.990135746184980e-01 + -4.987083187010172e-01 -4.984030154770353e-01 -4.980976654859903e-01 -4.977922686591017e-01 -4.974868253646026e-01 + -4.971813362150598e-01 -4.968758018164073e-01 -4.965702219796178e-01 -4.962645970518764e-01 -4.959589283986423e-01 + -4.956532161259331e-01 -4.953474601672504e-01 -4.950416611894621e-01 -4.947358197709370e-01 -4.944299362131679e-01 + -4.941240104625670e-01 -4.938180432013966e-01 -4.935120353360559e-01 -4.932059869696777e-01 -4.928998983832586e-01 + -4.925937700937396e-01 -4.922876025288242e-01 -4.919813957951697e-01 -4.916751499430368e-01 -4.913688660561277e-01 + -4.910625447982750e-01 -4.907561860728009e-01 -4.904497902858990e-01 -4.901433579647613e-01 -4.898368894758774e-01 + -4.895303847877975e-01 -4.892238442443610e-01 -4.889172690570770e-01 -4.886106594399146e-01 -4.883040152916479e-01 + -4.879973371198497e-01 -4.876906255185612e-01 -4.873838808516193e-01 -4.870771028969680e-01 -4.867702923235035e-01 + -4.864634502410182e-01 -4.861565765237592e-01 -4.858496713307078e-01 -4.855427352755911e-01 -4.852357685536697e-01 + -4.849287714451036e-01 -4.846217444589359e-01 -4.843146879997467e-01 -4.840076025123002e-01 -4.837004885060202e-01 + -4.833933461066379e-01 -4.830861755003688e-01 -4.827789772517898e-01 -4.824717516127337e-01 -4.821644988235214e-01 + -4.818572195031119e-01 -4.815499140763169e-01 -4.812425828318353e-01 -4.809352261296052e-01 -4.806278443199989e-01 + -4.803204376463540e-01 -4.800130060714603e-01 -4.797055501717924e-01 -4.793980709573083e-01 -4.790905684347367e-01 + -4.787830426340720e-01 -4.784754939887473e-01 -4.781679231200341e-01 -4.778603302286951e-01 -4.775527150015833e-01 + -4.772450784284375e-01 -4.769374213667171e-01 -4.766297434623847e-01 -4.763220450397429e-01 -4.760143266869929e-01 + -4.757065886153464e-01 -4.753988310011543e-01 -4.750910541528841e-01 -4.747832586964973e-01 -4.744754450010169e-01 + -4.741676132522562e-01 -4.738597638648681e-01 -4.735518971269201e-01 -4.732440131603057e-01 -4.729361121339242e-01 + -4.726281945136708e-01 -4.723202610280838e-01 -4.720123119889466e-01 -4.717043475548789e-01 -4.713963678930571e-01 + -4.710883732580126e-01 -4.707803639362851e-01 -4.704723402372425e-01 -4.701643027667922e-01 -4.698562520096238e-01 + -4.695481878708884e-01 -4.692401107063794e-01 -4.689320210638210e-01 -4.686239190614940e-01 -4.683158048406638e-01 + -4.680076787162389e-01 -4.676995413185929e-01 -4.673913930202820e-01 -4.670832339045677e-01 -4.667750641928977e-01 + -4.664668842720264e-01 -4.661586945788764e-01 -4.658504950199774e-01 -4.655422858974875e-01 -4.652340682220931e-01 + -4.649258420178881e-01 -4.646176071935555e-01 -4.643093642460228e-01 -4.640011135361189e-01 -4.636928552533583e-01 + -4.633845894780055e-01 -4.630763167063440e-01 -4.627680375263447e-01 -4.624597520114774e-01 -4.621514604268375e-01 + -4.618431632080228e-01 -4.615348605890552e-01 -4.612265525685530e-01 -4.609182391698630e-01 -4.606099213200685e-01 + -4.603015994943055e-01 -4.599932734377760e-01 -4.596849434943749e-01 -4.593766101319814e-01 -4.590682736286037e-01 + -4.587599339472412e-01 -4.584515913122191e-01 -4.581432465762054e-01 -4.578348999443045e-01 -4.575265513883392e-01 + -4.572182012155285e-01 -4.569098498253546e-01 -4.566014974456956e-01 -4.562931438038699e-01 -4.559847894939479e-01 + -4.556764355440957e-01 -4.553680818446301e-01 -4.550597283221777e-01 -4.547513752454754e-01 -4.544430231318768e-01 + -4.541346721146189e-01 -4.538263219879204e-01 -4.535179736207505e-01 -4.532096276207381e-01 -4.529012837320638e-01 + -4.525929421989657e-01 -4.522846033793929e-01 -4.519762674029318e-01 -4.516679344715044e-01 -4.513596049388520e-01 + -4.510512793496801e-01 -4.507429578901284e-01 -4.504346405869434e-01 -4.501263277269192e-01 -4.498180196893253e-01 + -4.495097167463535e-01 -4.492014186979058e-01 -4.488931259139300e-01 -4.485848392328776e-01 -4.482765586745183e-01 + -4.479682843350483e-01 -4.476600166157323e-01 -4.473517555800268e-01 -4.470435013321629e-01 -4.467352542154915e-01 + -4.464270145748750e-01 -4.461187827567155e-01 -4.458105590951706e-01 -4.455023436689998e-01 -4.451941365719282e-01 + -4.448859382022067e-01 -4.445777486373541e-01 -4.442695679571050e-01 -4.439613968717006e-01 -4.436532356916815e-01 + -4.433450843880059e-01 -4.430369431657580e-01 -4.427288122616561e-01 -4.424206918620519e-01 -4.421125820372482e-01 + -4.418044832064567e-01 -4.414963960811867e-01 -4.411883204960218e-01 -4.408802564087612e-01 -4.405722043668788e-01 + -4.402641646390490e-01 -4.399561373068210e-01 -4.396481224088197e-01 -4.393401203468038e-01 -4.390321316119934e-01 + -4.387241564347777e-01 -4.384161947343386e-01 -4.381082465266398e-01 -4.378003125430411e-01 -4.374923928277115e-01 + -4.371844871230922e-01 -4.368765963346815e-01 -4.365687207997857e-01 -4.362608601883623e-01 -4.359530147661063e-01 + -4.356451849773876e-01 -4.353373711547212e-01 -4.350295729831375e-01 -4.347217906709347e-01 -4.344140253247259e-01 + -4.341062767701542e-01 -4.337985447574569e-01 -4.334908298973194e-01 -4.331831324142745e-01 -4.328754522838512e-01 + -4.325677895304312e-01 -4.322601446380396e-01 -4.319525182069930e-01 -4.316449103351276e-01 -4.313373209430619e-01 + -4.310297500384340e-01 -4.307221981580691e-01 -4.304146654764764e-01 -4.301071518609876e-01 -4.297996578556980e-01 + -4.294921838432407e-01 -4.291847298181669e-01 -4.288772959356691e-01 -4.285698824691314e-01 -4.282624896947286e-01 + -4.279551173581843e-01 -4.276477655542056e-01 -4.273404353166645e-01 -4.270331268873108e-01 -4.267258400671970e-01 + -4.264185747737768e-01 -4.261113314513503e-01 -4.258041105111009e-01 -4.254969114260224e-01 -4.251897346526543e-01 + -4.248825811839114e-01 -4.245754507348872e-01 -4.242683433304872e-01 -4.239612594489042e-01 -4.236541990429175e-01 + -4.233471621233121e-01 -4.230401489624036e-01 -4.227331599159186e-01 -4.224261953202194e-01 -4.221192554076946e-01 + -4.218123401221037e-01 -4.215054495276057e-01 -4.211985840665567e-01 -4.208917437341202e-01 -4.205849285470991e-01 + -4.202781391077526e-01 -4.199713756820169e-01 -4.196646382796324e-01 -4.193579269625680e-01 -4.190512419898234e-01 + -4.187445835885104e-01 -4.184379514023820e-01 -4.181313458657921e-01 -4.178247679943504e-01 -4.175182174706034e-01 + -4.172116941638125e-01 -4.169051985589959e-01 -4.165987308801878e-01 -4.162922910262470e-01 -4.159858787333477e-01 + -4.156794948456864e-01 -4.153731400237493e-01 -4.150668138055245e-01 -4.147605162480433e-01 -4.144542477033889e-01 + -4.141480084083939e-01 -4.138417983331389e-01 -4.135356175072968e-01 -4.132294665425894e-01 -4.129233456523720e-01 + -4.126172547353913e-01 -4.123111939769975e-01 -4.120051637027982e-01 -4.116991641480549e-01 -4.113931948631621e-01 + -4.110872561089984e-01 -4.107813489720965e-01 -4.104754732505308e-01 -4.101696286974395e-01 -4.098638156566466e-01 + -4.095580344057681e-01 -4.092522850492459e-01 -4.089465675148873e-01 -4.086408821301867e-01 -4.083352292811099e-01 + -4.080296090087697e-01 -4.077240214925531e-01 -4.074184669621912e-01 -4.071129454474836e-01 -4.068074568206541e-01 + -4.065020011172992e-01 -4.061965792344674e-01 -4.058911914234347e-01 -4.055858372701102e-01 -4.052805169731385e-01 + -4.049752308691225e-01 -4.046699791746853e-01 -4.043647616984872e-01 -4.040595785275335e-01 -4.037544302850327e-01 + -4.034493171430220e-01 -4.031442391412985e-01 -4.028391964411297e-01 -4.025341890399178e-01 -4.022292169515432e-01 + -4.019242804318620e-01 -4.016193797575413e-01 -4.013145151618574e-01 -4.010096867767989e-01 -4.007048946739946e-01 + -4.004001389575452e-01 -4.000954199442892e-01 -3.997907376333255e-01 -3.994860918450180e-01 -3.991814831388100e-01 + -3.988769118682245e-01 -3.985723779299208e-01 -3.982678813725196e-01 -3.979634224118638e-01 -3.976590013430957e-01 + -3.973546179557737e-01 -3.970502723184750e-01 -3.967459652757308e-01 -3.964416967373386e-01 -3.961374664325438e-01 + -3.958332748416728e-01 -3.955291221412219e-01 -3.952250082276700e-01 -3.949209329883424e-01 -3.946168969005399e-01 + -3.943129006192436e-01 -3.940089438207542e-01 -3.937050264421336e-01 -3.934011488327164e-01 -3.930973111392007e-01 + -3.927935133510078e-01 -3.924897554398895e-01 -3.921860379028622e-01 -3.918823611410527e-01 -3.915787251272155e-01 + -3.912751296302741e-01 -3.909715747221262e-01 -3.906680610479274e-01 -3.903645884467465e-01 -3.900611567141484e-01 + -3.897577665105899e-01 -3.894544180732338e-01 -3.891511112918067e-01 -3.888478460867855e-01 -3.885446227676595e-01 + -3.882414417069796e-01 -3.879383024897914e-01 -3.876352053351357e-01 -3.873321510269954e-01 -3.870291394376005e-01 + -3.867261704550462e-01 -3.864232442776043e-01 -3.861203610538394e-01 -3.858175208256477e-01 -3.855147235659399e-01 + -3.852119696012977e-01 -3.849092593053318e-01 -3.846065928280623e-01 -3.843039700003283e-01 -3.840013907871894e-01 + -3.836988557264463e-01 -3.833963646642737e-01 -3.830939173673272e-01 -3.827915146861536e-01 -3.824891567344230e-01 + -3.821868431312930e-01 -3.818845742897094e-01 -3.815823505036508e-01 -3.812801717050347e-01 -3.809780375081945e-01 + -3.806759481537249e-01 -3.803739045452896e-01 -3.800719066553854e-01 -3.797699542729503e-01 -3.794680474344709e-01 + -3.791661864151066e-01 -3.788643713579414e-01 -3.785626020610045e-01 -3.782608787892401e-01 -3.779592019649877e-01 + -3.776575717504184e-01 -3.773559879986245e-01 -3.770544506277551e-01 -3.767529601718599e-01 -3.764515165488658e-01 + -3.761501194541416e-01 -3.758487697291592e-01 -3.755474675286999e-01 -3.752462123142175e-01 -3.749450044400430e-01 + -3.746438442933219e-01 -3.743427319385532e-01 -3.740416670860849e-01 -3.737406497610264e-01 -3.734396805632812e-01 + -3.731387597991040e-01 -3.728378873981389e-01 -3.725370629746288e-01 -3.722362869751284e-01 -3.719355598195744e-01 + -3.716348809475082e-01 -3.713342505611615e-01 -3.710336692885385e-01 -3.707331373206220e-01 -3.704326544188714e-01 + -3.701322203470578e-01 -3.698318357923215e-01 -3.695315007664240e-01 -3.692312147431765e-01 -3.689309784821330e-01 + -3.686307923312130e-01 -3.683306558583173e-01 -3.680305692832940e-01 -3.677305328772401e-01 -3.674305466155561e-01 + -3.671306102835627e-01 -3.668307239979260e-01 -3.665308885123383e-01 -3.662311039528895e-01 -3.659313700864294e-01 + -3.656316867340536e-01 -3.653320542170925e-01 -3.650324728818179e-01 -3.647329423252613e-01 -3.644334627823841e-01 + -3.641340348652060e-01 -3.638346584224414e-01 -3.635353333854674e-01 -3.632360599381753e-01 -3.629368383087880e-01 + -3.626376683911322e-01 -3.623385498640058e-01 -3.620394834143431e-01 -3.617404694429358e-01 -3.614415075289109e-01 + -3.611425978472304e-01 -3.608437406892576e-01 -3.605449360396625e-01 -3.602461837170217e-01 -3.599474837636126e-01 + -3.596488368123176e-01 -3.593502429497555e-01 -3.590517019950174e-01 -3.587532141258951e-01 -3.584547794364419e-01 + -3.581563978967544e-01 -3.578580694598877e-01 -3.575597943932133e-01 -3.572615731273898e-01 -3.569634054963255e-01 + -3.566652915450074e-01 -3.563672316398869e-01 -3.560692255181004e-01 -3.557712730433470e-01 -3.554733745722332e-01 + -3.551755304325120e-01 -3.548777407381354e-01 -3.545800053200450e-01 -3.542823243820459e-01 -3.539846981602633e-01 + -3.536871265064687e-01 -3.533896092936707e-01 -3.530921466577667e-01 -3.527947392696623e-01 -3.524973870763591e-01 + -3.522000896417020e-01 -3.519028473926252e-01 -3.516056606257513e-01 -3.513085292624320e-01 -3.510114529438408e-01 + -3.507144318797571e-01 -3.504174668509267e-01 -3.501205576763053e-01 -3.498237041407538e-01 -3.495269064579332e-01 + -3.492301648012658e-01 -3.489334792023763e-01 -3.486368495320163e-01 -3.483402759532310e-01 -3.480437587608516e-01 + -3.477472981563033e-01 -3.474508940116457e-01 -3.471545462266357e-01 -3.468582552838557e-01 -3.465620210594309e-01 + -3.462658431862374e-01 -3.459697223261950e-01 -3.456736587298253e-01 -3.453776521244075e-01 -3.450817025977070e-01 + -3.447858103250944e-01 -3.444899754033867e-01 -3.441941976114102e-01 -3.438984770490408e-01 -3.436028143288083e-01 + -3.433072093931014e-01 -3.430116620696204e-01 -3.427161725111446e-01 -3.424207408695913e-01 -3.421253671506906e-01 + -3.418300511322294e-01 -3.415347931565998e-01 -3.412395936962896e-01 -3.409444525560181e-01 -3.406493696743920e-01 + -3.403543451949735e-01 -3.400593792856730e-01 -3.397644718554241e-01 -3.394696227303268e-01 -3.391748324448361e-01 + -3.388801012525273e-01 -3.385854289098167e-01 -3.382908154719833e-01 -3.379962610967925e-01 -3.377017658856785e-01 + -3.374073296405456e-01 -3.371129523992028e-01 -3.368186347618567e-01 -3.365243767275647e-01 -3.362301780997549e-01 + -3.359360390044588e-01 -3.356419595939377e-01 -3.353479398983790e-01 -3.350539796822969e-01 -3.347600792157354e-01 + -3.344662390001809e-01 -3.341724588683134e-01 -3.338787387386647e-01 -3.335850787505256e-01 -3.332914790393797e-01 + -3.329979395469141e-01 -3.327044601082655e-01 -3.324110411740308e-01 -3.321176830325031e-01 -3.318243854727410e-01 + -3.315311485033696e-01 -3.312379722613320e-01 -3.309448568815591e-01 -3.306518021855764e-01 -3.303588081394571e-01 + -3.300658753265905e-01 -3.297730038003383e-01 -3.294801933460689e-01 -3.291874440822869e-01 -3.288947561448500e-01 + -3.286021295596533e-01 -3.283095641084477e-01 -3.280170600152969e-01 -3.277246178092963e-01 -3.274322373144385e-01 + -3.271399184133136e-01 -3.268476612759387e-01 -3.265554660369243e-01 -3.262633326374516e-01 -3.259712608638953e-01 + -3.256792511518811e-01 -3.253873038511834e-01 -3.250954187049387e-01 -3.248035957166725e-01 -3.245118350464998e-01 + -3.242201368055027e-01 -3.239285008232202e-01 -3.236369270127419e-01 -3.233454159517716e-01 -3.230539677655248e-01 + -3.227625822208953e-01 -3.224712593689608e-01 -3.221799993547627e-01 -3.218888022707884e-01 -3.215976678728723e-01 + -3.213065962862219e-01 -3.210155880538063e-01 -3.207246430922022e-01 -3.204337612603162e-01 -3.201429426545060e-01 + -3.198521874188910e-01 -3.195614955407240e-01 -3.192708667833873e-01 -3.189803015317205e-01 -3.186898001852494e-01 + -3.183993624745159e-01 -3.181089883645859e-01 -3.178186780215274e-01 -3.175284315788672e-01 -3.172382488912609e-01 + -3.169481298117736e-01 -3.166580748847834e-01 -3.163680842820584e-01 -3.160781577505636e-01 -3.157882953403168e-01 + -3.154984971942622e-01 -3.152087634033934e-01 -3.149190937439705e-01 -3.146294882798918e-01 -3.143399475483734e-01 + -3.140504715109739e-01 -3.137610600081304e-01 -3.134717131245625e-01 -3.131824310053718e-01 -3.128932136614712e-01 + -3.126040608259110e-01 -3.123149728003283e-01 -3.120259500284038e-01 -3.117369923103007e-01 -3.114480995811182e-01 + -3.111592719695180e-01 -3.108705096041851e-01 -3.105818123704323e-01 -3.102931800853200e-01 -3.100046132424714e-01 + -3.097161120700553e-01 -3.094276763275429e-01 -3.091393060498078e-01 -3.088510013669117e-01 -3.085627623567511e-01 + -3.082745888090075e-01 -3.079864807413559e-01 -3.076984387104112e-01 -3.074104627037881e-01 -3.071225525229602e-01 + -3.068347082674415e-01 -3.065469300647063e-01 -3.062592179233167e-01 -3.059715715883658e-01 -3.056839913222955e-01 + -3.053964776128304e-01 -3.051090302429263e-01 -3.048216491115613e-01 -3.045343343664140e-01 -3.042470861256498e-01 + -3.039599042912569e-01 -3.036727886539801e-01 -3.033857396783212e-01 -3.030987576532087e-01 -3.028118423290159e-01 + -3.025249936916685e-01 -3.022382118572411e-01 -3.019514969324824e-01 -3.016648487319269e-01 -3.013782672163520e-01 + -3.010917529380510e-01 -3.008053059332530e-01 -3.005189259718208e-01 -3.002326131255288e-01 -2.999463675243501e-01 + -2.996601892115071e-01 -2.993740779431134e-01 -2.990880338991673e-01 -2.988020575697556e-01 -2.985161488129333e-01 + -2.982303074956766e-01 -2.979445337070337e-01 -2.976588275957710e-01 -2.973731891105994e-01 -2.970876179949718e-01 + -2.968021146693378e-01 -2.965166794729635e-01 -2.962313121299224e-01 -2.959460126205053e-01 -2.956607810824475e-01 + -2.953756176130727e-01 -2.950905220348498e-01 -2.948054942542040e-01 -2.945205348259674e-01 -2.942356438398593e-01 + -2.939508210351428e-01 -2.936660664737455e-01 -2.933813802767271e-01 -2.930967624892026e-01 -2.928122128931882e-01 + -2.925277316158055e-01 -2.922433191494531e-01 -2.919589753765323e-01 -2.916747001400424e-01 -2.913904935350139e-01 + -2.911063557118664e-01 -2.908222866434848e-01 -2.905382860439090e-01 -2.902543542778646e-01 -2.899704917370004e-01 + -2.896866981425306e-01 -2.894029734511842e-01 -2.891193178139609e-01 -2.888357313345801e-01 -2.885522138545054e-01 + -2.882687652243500e-01 -2.879853859636904e-01 -2.877020762131379e-01 -2.874188357014512e-01 -2.871356645025479e-01 + -2.868525627422169e-01 -2.865695304469716e-01 -2.862865673963798e-01 -2.860036736642309e-01 -2.857208497673618e-01 + -2.854380956360413e-01 -2.851554110854154e-01 -2.848727961880673e-01 -2.845902510831507e-01 -2.843077757793696e-01 + -2.840253700094237e-01 -2.837430340397069e-01 -2.834607682748240e-01 -2.831785725328111e-01 -2.828964467316310e-01 + -2.826143909542473e-01 -2.823324053101364e-01 -2.820504896922502e-01 -2.817686439371250e-01 -2.814868685136343e-01 + -2.812051636152371e-01 -2.809235289745332e-01 -2.806419646055033e-01 -2.803604706362606e-01 -2.800790471610514e-01 + -2.797976939416736e-01 -2.795164109639519e-01 -2.792351987736799e-01 -2.789540573481899e-01 -2.786729864814172e-01 + -2.783919862645312e-01 -2.781110567914744e-01 -2.778301980476193e-01 -2.775494098202491e-01 -2.772686923282846e-01 + -2.769880459823117e-01 -2.767074706347814e-01 -2.764269661749121e-01 -2.761465326612197e-01 -2.758661702373058e-01 + -2.755858788282252e-01 -2.753056582075042e-01 -2.750255088041456e-01 -2.747454308713073e-01 -2.744654241403574e-01 + -2.741854886058927e-01 -2.739056243892176e-01 -2.736258315782464e-01 -2.733461099674180e-01 -2.730664595012521e-01 + -2.727868807168794e-01 -2.725073736368404e-01 -2.722279380246611e-01 -2.719485739535283e-01 -2.716692815376729e-01 + -2.713900607905190e-01 -2.711109114418696e-01 -2.708318336740216e-01 -2.705528279896257e-01 -2.702738942089605e-01 + -2.699950321750810e-01 -2.697162419812612e-01 -2.694375237750356e-01 -2.691588774953904e-01 -2.688803028674867e-01 + -2.686018002777490e-01 -2.683233700490228e-01 -2.680450119322323e-01 -2.677667258920440e-01 -2.674885120321642e-01 + -2.672103704327183e-01 -2.669323009240009e-01 -2.666543034142266e-01 -2.663763784024609e-01 -2.660985259744725e-01 + -2.658207458961011e-01 -2.655430381891060e-01 -2.652654029648259e-01 -2.649878402880381e-01 -2.647103499069445e-01 + -2.644329319184849e-01 -2.641555868035665e-01 -2.638783144422805e-01 -2.636011146840161e-01 -2.633239876271375e-01 + -2.630469333706403e-01 -2.627699518665801e-01 -2.624930428881614e-01 -2.622162067361601e-01 -2.619394437425979e-01 + -2.616627537197243e-01 -2.613861365959049e-01 -2.611095924398818e-01 -2.608331213683194e-01 -2.605567232565551e-01 + -2.602803979638560e-01 -2.600041459185203e-01 -2.597279672559259e-01 -2.594518617711524e-01 -2.591758294668244e-01 + -2.588998704444723e-01 -2.586239847880919e-01 -2.583481722507706e-01 -2.580724328621725e-01 -2.577967671126083e-01 + -2.575211749406902e-01 -2.572456561780725e-01 -2.569702108956164e-01 -2.566948391959332e-01 -2.564195410517088e-01 + -2.561443162003717e-01 -2.558691649278121e-01 -2.555940876367002e-01 -2.553190840839927e-01 -2.550441541814838e-01 + -2.547692980445108e-01 -2.544945157803290e-01 -2.542198072584164e-01 -2.539451722830000e-01 -2.536706112997469e-01 + -2.533961245035316e-01 -2.531217116489478e-01 -2.528473727232912e-01 -2.525731078267265e-01 -2.522989170513077e-01 + -2.520248001810547e-01 -2.517507572028029e-01 -2.514767886096237e-01 -2.512028943623831e-01 -2.509290742545349e-01 + -2.506553283625735e-01 -2.503816568034038e-01 -2.501080595782905e-01 -2.498345364108095e-01 -2.495610875124447e-01 + -2.492877133133172e-01 -2.490144136112123e-01 -2.487411882994743e-01 -2.484680374856057e-01 -2.481949612635986e-01 + -2.479219595287280e-01 -2.476490320734136e-01 -2.473761793087864e-01 -2.471034014703498e-01 -2.468306982957061e-01 + -2.465580697844871e-01 -2.462855160432138e-01 -2.460130371204629e-01 -2.457406328233614e-01 -2.454683031113906e-01 + -2.451960484794311e-01 -2.449238689415910e-01 -2.446517642712055e-01 -2.443797345227543e-01 -2.441077797933181e-01 + -2.438359000947776e-01 -2.435640951889690e-01 -2.432923652315951e-01 -2.430207106571287e-01 -2.427491313175689e-01 + -2.424776270783986e-01 -2.422061980074125e-01 -2.419348442072336e-01 -2.416635656192684e-01 -2.413923620306189e-01 + -2.411212337762792e-01 -2.408501811283544e-01 -2.405792038734625e-01 -2.403083019688687e-01 -2.400374754936993e-01 + -2.397667245256450e-01 -2.394960488977194e-01 -2.392254485194238e-01 -2.389549238762380e-01 -2.386844750244205e-01 + -2.384141017100180e-01 -2.381438039886236e-01 -2.378735819631148e-01 -2.376034356560101e-01 -2.373333648418426e-01 + -2.370633696160408e-01 -2.367934504134751e-01 -2.365236071336530e-01 -2.362538396334552e-01 -2.359841479713349e-01 + -2.357145322333765e-01 -2.354449923780104e-01 -2.351755281955192e-01 -2.349061399838227e-01 -2.346368280467886e-01 + -2.343675921502802e-01 -2.340984322401892e-01 -2.338293484224673e-01 -2.335603407944267e-01 -2.332914091991481e-01 + -2.330225534791031e-01 -2.327537740958542e-01 -2.324850711724544e-01 -2.322164444575208e-01 -2.319478939696494e-01 + -2.316794198107119e-01 -2.314110220364787e-01 -2.311427004172850e-01 -2.308744549913938e-01 -2.306062862221652e-01 + -2.303381940399467e-01 -2.300701782673901e-01 -2.298022389505013e-01 -2.295343762055658e-01 -2.292665900251787e-01 + -2.289988801367178e-01 -2.287312467963517e-01 -2.284636903804389e-01 -2.281962106639611e-01 -2.279288075702767e-01 + -2.276614812041137e-01 -2.273942316314865e-01 -2.271270587234099e-01 -2.268599623216859e-01 -2.265929428586625e-01 + -2.263260004971463e-01 -2.260591349680134e-01 -2.257923462859340e-01 -2.255256345570404e-01 -2.252589998316905e-01 + -2.249924418873443e-01 -2.247259607239798e-01 -2.244595568451081e-01 -2.241932301870257e-01 -2.239269805236896e-01 + -2.236608079513920e-01 -2.233947125724077e-01 -2.231286943677930e-01 -2.228627530899186e-01 -2.225968889349937e-01 + -2.223311022938890e-01 -2.220653929888047e-01 -2.217997609137618e-01 -2.215342061492806e-01 -2.212687287997047e-01 + -2.210033287645195e-01 -2.207380058226258e-01 -2.204727603658667e-01 -2.202075926188733e-01 -2.199425023254976e-01 + -2.196774894791217e-01 -2.194125541827232e-01 -2.191476964953657e-01 -2.188829162198361e-01 -2.186182133017065e-01 + -2.183535882155842e-01 -2.180890409721393e-01 -2.178245713492862e-01 -2.175601793915103e-01 -2.172958651996608e-01 + -2.170316287941991e-01 -2.167674699222372e-01 -2.165033887351043e-01 -2.162393856655618e-01 -2.159754605317784e-01 + -2.157116131976179e-01 -2.154478437626437e-01 -2.151841523053365e-01 -2.149205387568082e-01 -2.146570029331132e-01 + -2.143935451423346e-01 -2.141301656253313e-01 -2.138668641770334e-01 -2.136036407648879e-01 -2.133404954698548e-01 + -2.130774283590253e-01 -2.128144392711416e-01 -2.125515281171839e-01 -2.122886953403734e-01 -2.120259409959825e-01 + -2.117632648531722e-01 -2.115006669388265e-01 -2.112381473557379e-01 -2.109757061544524e-01 -2.107133431005909e-01 + -2.104510582708100e-01 -2.101888520817322e-01 -2.099267244352251e-01 -2.096646751892664e-01 -2.094027043922436e-01 + -2.091408121382980e-01 -2.088789983898283e-01 -2.086172629233026e-01 -2.083556060294393e-01 -2.080940280081475e-01 + -2.078325286261216e-01 -2.075711078316715e-01 -2.073097657230958e-01 -2.070485023681648e-01 -2.067873176254528e-01 + -2.065262113703670e-01 -2.062651840261599e-01 -2.060042356935543e-01 -2.057433661320316e-01 -2.054825753736384e-01 + -2.052218635119340e-01 -2.049612305777034e-01 -2.047006763593381e-01 -2.044402009029163e-01 -2.041798046444743e-01 + -2.039194875091236e-01 -2.036592493288050e-01 -2.033990901597007e-01 -2.031390101041152e-01 -2.028790091364410e-01 + -2.026190869860804e-01 -2.023592439213894e-01 -2.020994803209571e-01 -2.018397959336108e-01 -2.015801906636277e-01 + -2.013206646163115e-01 -2.010612178968381e-01 -2.008018503846473e-01 -2.005425618909167e-01 -2.002833527994660e-01 + -2.000242232866459e-01 -1.997651731545872e-01 -1.995062023757428e-01 -1.992473110134654e-01 -1.989884991329442e-01 + -1.987297665552775e-01 -1.984711132804359e-01 -1.982125397288479e-01 -1.979540458641874e-01 -1.976956315048893e-01 + -1.974372966986851e-01 -1.971790415364275e-01 -1.969208660181268e-01 -1.966627699138122e-01 -1.964047534115951e-01 + -1.961468168792641e-01 -1.958889601415059e-01 -1.956311830976701e-01 -1.953734858227050e-01 -1.951158683885618e-01 + -1.948583307060198e-01 -1.946008726082255e-01 -1.943434944554087e-01 -1.940861964418109e-01 -1.938289783248288e-01 + -1.935718400929853e-01 -1.933147818435645e-01 -1.930578036445209e-01 -1.928009053047615e-01 -1.925440867668252e-01 + -1.922873484836986e-01 -1.920306904586313e-01 -1.917741124759950e-01 -1.915176145882685e-01 -1.912611968971867e-01 + -1.910048594156118e-01 -1.907486018758652e-01 -1.904924244300230e-01 -1.902363275204000e-01 -1.899803109613821e-01 + -1.897243746214878e-01 -1.894685186111405e-01 -1.892127429944364e-01 -1.889570476814606e-01 -1.887014324762902e-01 + -1.884458977092228e-01 -1.881904436322386e-01 -1.879350700181010e-01 -1.876797768445363e-01 -1.874245641980662e-01 + -1.871694321106837e-01 -1.869143804464632e-01 -1.866594091449939e-01 -1.864045185802509e-01 -1.861497088150435e-01 + -1.858949796742653e-01 -1.856403311585743e-01 -1.853857633524328e-01 -1.851312763093270e-01 -1.848768697910832e-01 + -1.846225438828809e-01 -1.843682990131126e-01 -1.841141350478542e-01 -1.838600518410295e-01 -1.836060494900988e-01 + -1.833521280737523e-01 -1.830982875326949e-01 -1.828445276569093e-01 -1.825908487213151e-01 -1.823372510073639e-01 + -1.820837342990139e-01 -1.818302985608840e-01 -1.815769438919524e-01 -1.813236703339543e-01 -1.810704777470943e-01 + -1.808173660274447e-01 -1.805643355946649e-01 -1.803113865319381e-01 -1.800585185867421e-01 -1.798057318207557e-01 + -1.795530263298101e-01 -1.793004021140676e-01 -1.790478589821669e-01 -1.787953969871552e-01 -1.785430165333783e-01 + -1.782907175616041e-01 -1.780384999147782e-01 -1.777863636186671e-01 -1.775343087850783e-01 -1.772823354138563e-01 + -1.770304432439544e-01 -1.767786324996124e-01 -1.765269035206169e-01 -1.762752561209628e-01 -1.760236902365481e-01 + -1.757722059508868e-01 -1.755208033072168e-01 -1.752694821962465e-01 -1.750182424985018e-01 -1.747670845873172e-01 + -1.745160085943736e-01 -1.742650142826787e-01 -1.740141016708582e-01 -1.737632708599284e-01 -1.735125219002990e-01 + -1.732618545819516e-01 -1.730112688968157e-01 -1.727607652962038e-01 -1.725103437360838e-01 -1.722600040199003e-01 + -1.720097462053399e-01 -1.717595703957765e-01 -1.715094765937824e-01 -1.712594645505801e-01 -1.710095344617568e-01 + -1.707596867053610e-01 -1.705099210652020e-01 -1.702602374503936e-01 -1.700106359820640e-01 -1.697611167032507e-01 + -1.695116795170456e-01 -1.692623242857098e-01 -1.690130513415946e-01 -1.687638608735592e-01 -1.685147526839133e-01 + -1.682657267304136e-01 -1.680167830834059e-01 -1.677679218434041e-01 -1.675191428301483e-01 -1.672704459776749e-01 + -1.670218317162355e-01 -1.667733000505553e-01 -1.665248507843929e-01 -1.662764839848620e-01 -1.660281997331086e-01 + -1.657799980211539e-01 -1.655318786421316e-01 -1.652838417439954e-01 -1.650358877061586e-01 -1.647880163635810e-01 + -1.645402275978841e-01 -1.642925215033296e-01 -1.640448981629310e-01 -1.637973575048030e-01 -1.635498993322754e-01 + -1.633025239587731e-01 -1.630552316214122e-01 -1.628080220971913e-01 -1.625608953706327e-01 -1.623138515347123e-01 + -1.620668906280902e-01 -1.618200125176413e-01 -1.615732171440627e-01 -1.613265048790783e-01 -1.610798757703294e-01 + -1.608333296326273e-01 -1.605868664946396e-01 -1.603404864451659e-01 -1.600941895233320e-01 -1.598479755194739e-01 + -1.596018445089071e-01 -1.593557968710357e-01 -1.591098325274174e-01 -1.588639513462271e-01 -1.586181533501567e-01 + -1.583724386633118e-01 -1.581268072684121e-01 -1.578812589110151e-01 -1.576357938605635e-01 -1.573904124176000e-01 + -1.571451143885420e-01 -1.568998997115455e-01 -1.566547684551118e-01 -1.564097207009810e-01 -1.561647563377750e-01 + -1.559198752534892e-01 -1.556750777971572e-01 -1.554303640753041e-01 -1.551857339241298e-01 -1.549411873472499e-01 + -1.546967244117141e-01 -1.544523451583313e-01 -1.542080493972972e-01 -1.539638371771692e-01 -1.537197089019022e-01 + -1.534756644902717e-01 -1.532317037874507e-01 -1.529878268669247e-01 -1.527440338285302e-01 -1.525003246495042e-01 + -1.522566990917994e-01 -1.520131573865194e-01 -1.517696998607227e-01 -1.515263263105132e-01 -1.512830366842278e-01 + -1.510398310896279e-01 -1.507967095609423e-01 -1.505536719818633e-01 -1.503107182379510e-01 -1.500678487166025e-01 + -1.498250635429138e-01 -1.495823624607518e-01 -1.493397455183047e-01 -1.490972128240516e-01 -1.488547643939502e-01 + -1.486124000468938e-01 -1.483701197975273e-01 -1.481279240643807e-01 -1.478858128086334e-01 -1.476437858541442e-01 + -1.474018432575297e-01 -1.471599850901578e-01 -1.469182113447434e-01 -1.466765218581870e-01 -1.464349167991909e-01 + -1.461933964691583e-01 -1.459519607332137e-01 -1.457106095126376e-01 -1.454693428712828e-01 -1.452281609001614e-01 + -1.449870635167667e-01 -1.447460505411944e-01 -1.445051223204885e-01 -1.442642790465533e-01 -1.440235204958664e-01 + -1.437828466645076e-01 -1.435422576460715e-01 -1.433017535021517e-01 -1.430613340788666e-01 -1.428209993367665e-01 + -1.425807496580667e-01 -1.423405850452980e-01 -1.421005053276286e-01 -1.418605105748216e-01 -1.416206008760722e-01 + -1.413807762310167e-01 -1.411410364179444e-01 -1.409013815814383e-01 -1.406618121114770e-01 -1.404223278620860e-01 + -1.401829287142080e-01 -1.399436147388266e-01 -1.397043860171121e-01 -1.394652424999606e-01 -1.392261840277533e-01 + -1.389872108800275e-01 -1.387483232704581e-01 -1.385095210193419e-01 -1.382708041155041e-01 -1.380321726381191e-01 + -1.377936266235328e-01 -1.375551659356028e-01 -1.373167905196480e-01 -1.370785007699294e-01 -1.368402967462084e-01 + -1.366021782602805e-01 -1.363641453151502e-01 -1.361261980034910e-01 -1.358883363925467e-01 -1.356505602730137e-01 + -1.354128697173978e-01 -1.351752651019714e-01 -1.349377463365720e-01 -1.347003133096952e-01 -1.344629660943524e-01 + -1.342257047644556e-01 -1.339885292721434e-01 -1.337514394288152e-01 -1.335144355004790e-01 -1.332775177574095e-01 + -1.330406860095451e-01 -1.328039402156265e-01 -1.325672804621033e-01 -1.323307068237664e-01 -1.320942191803451e-01 + -1.318578174250235e-01 -1.316215019436967e-01 -1.313852728254415e-01 -1.311491298574344e-01 -1.309130730812647e-01 + -1.306771025967214e-01 -1.304412184433993e-01 -1.302054204167683e-01 -1.299697085633917e-01 -1.297340833011096e-01 + -1.294985445422908e-01 -1.292630921400970e-01 -1.290277262032818e-01 -1.287924468024440e-01 -1.285572538860320e-01 + -1.283221472565841e-01 -1.280871271607027e-01 -1.278521939245786e-01 -1.276173473594251e-01 -1.273825873815436e-01 + -1.271479140654554e-01 -1.269133275291332e-01 -1.266788276689478e-01 -1.264444143112885e-01 -1.262100878411512e-01 + -1.259758484249543e-01 -1.257416958580221e-01 -1.255076301118343e-01 -1.252736512740011e-01 -1.250397594556589e-01 + -1.248059544551782e-01 -1.245722362561283e-01 -1.243386053032582e-01 -1.241050615437150e-01 -1.238716047916152e-01 + -1.236382351439431e-01 -1.234049527007845e-01 -1.231717574487822e-01 -1.229386491649988e-01 -1.227056280466961e-01 + -1.224726944551588e-01 -1.222398481939305e-01 -1.220070891810755e-01 -1.217744175349468e-01 -1.215418333321439e-01 + -1.213093364896874e-01 -1.210769268543440e-01 -1.208446047468073e-01 -1.206123703546746e-01 -1.203802234985189e-01 + -1.201481641556592e-01 -1.199161924040098e-01 -1.196843083373426e-01 -1.194525118101599e-01 -1.192208027778711e-01 + -1.189891816158967e-01 -1.187576483334740e-01 -1.185262027772708e-01 -1.182948450325541e-01 -1.180635751718018e-01 + -1.178323931740712e-01 -1.176012988598141e-01 -1.173702923768903e-01 -1.171393740841554e-01 -1.169085438684581e-01 + -1.166778016318426e-01 -1.164471474323627e-01 -1.162165813372163e-01 -1.159861033094216e-01 -1.157557132288848e-01 + -1.155254113554128e-01 -1.152951978878259e-01 -1.150650726784410e-01 -1.148350356935617e-01 -1.146050869998271e-01 + -1.143752266983624e-01 -1.141454546633286e-01 -1.139157708150553e-01 -1.136861755297615e-01 -1.134566688685596e-01 + -1.132272506625232e-01 -1.129979209389772e-01 -1.127686797968139e-01 -1.125395272939830e-01 -1.123104632216639e-01 + -1.120814876598629e-01 -1.118526009932446e-01 -1.116238031362107e-01 -1.113950939743172e-01 -1.111664735714766e-01 + -1.109379420230661e-01 -1.107094992989161e-01 -1.104811452047023e-01 -1.102528800189790e-01 -1.100247040176238e-01 + -1.097966169898620e-01 -1.095686189066022e-01 -1.093407098806465e-01 -1.091128899944971e-01 -1.088851591239916e-01 + -1.086575171512236e-01 -1.084299644451029e-01 -1.082025011238454e-01 -1.079751270251657e-01 -1.077478421434466e-01 + -1.075206465724022e-01 -1.072935404061887e-01 -1.070665234272605e-01 -1.068395956686409e-01 -1.066127575621145e-01 + -1.063860090403522e-01 -1.061593499609373e-01 -1.059327804074918e-01 -1.057063004552603e-01 -1.054799100848440e-01 + -1.052536091459819e-01 -1.050273978363624e-01 -1.048012764247322e-01 -1.045752447992682e-01 -1.043493029044653e-01 + -1.041234507912105e-01 -1.038976885616201e-01 -1.036720161437409e-01 -1.034464334142674e-01 -1.032209407082870e-01 + -1.029955381585720e-01 -1.027702255852857e-01 -1.025450030256683e-01 -1.023198705766582e-01 -1.020948282803886e-01 + -1.018698759615270e-01 -1.016450136357437e-01 -1.014202417243671e-01 -1.011955602054591e-01 -1.009709689162001e-01 + -1.007464679013254e-01 -1.005220572777319e-01 -1.002977370772110e-01 -1.000735070732387e-01 -9.984936745539402e-02 + -9.962531858349888e-02 -9.940136027998529e-02 -9.917749246814733e-02 -9.895371525770333e-02 -9.873002873335845e-02 + -9.850643282337790e-02 -9.828292738770521e-02 -9.805951276903688e-02 -9.783618914357473e-02 -9.761295629040607e-02 + -9.738981424317925e-02 -9.716676311420755e-02 -9.694380293900719e-02 -9.672093359332221e-02 -9.649815506782670e-02 + -9.627546771326484e-02 -9.605287156919239e-02 -9.583036651098850e-02 -9.560795255252680e-02 -9.538562978098189e-02 + -9.516339824129488e-02 -9.494125774199282e-02 -9.471920843970391e-02 -9.449725071216948e-02 -9.427538438593883e-02 + -9.405360936874554e-02 -9.383192580278800e-02 -9.361033376064058e-02 -9.338883317577901e-02 -9.316742389906425e-02 + -9.294610622995669e-02 -9.272488039403920e-02 -9.250374621386263e-02 -9.228270367992475e-02 -9.206175287916113e-02 + -9.184089387273792e-02 -9.162012656935895e-02 -9.139945093572596e-02 -9.117886729658348e-02 -9.095837571294788e-02 + -9.073797605928635e-02 -9.051766837713708e-02 -9.029745274779008e-02 -9.007732920697027e-02 -8.985729759887780e-02 + -8.963735802530043e-02 -8.941751083887589e-02 -8.919775594907166e-02 -8.897809325953572e-02 -8.875852286193828e-02 + -8.853904483959285e-02 -8.831965916578795e-02 -8.810036569419880e-02 -8.788116467295366e-02 -8.766205635082600e-02 + -8.744304058057480e-02 -8.722411733824492e-02 -8.700528670561582e-02 -8.678654875532379e-02 -8.656790339361393e-02 + -8.634935054757228e-02 -8.613089058374623e-02 -8.591252359970507e-02 -8.569424942256174e-02 -8.547606809595372e-02 + -8.525797972327777e-02 -8.503998436304407e-02 -8.482208183975883e-02 -8.460427219735964e-02 -8.438655581333676e-02 + -8.416893266387415e-02 -8.395140264416648e-02 -8.373396580036768e-02 -8.351662221748458e-02 -8.329937190808817e-02 + -8.308221474187347e-02 -8.286515089972675e-02 -8.264818063381729e-02 -8.243130387381740e-02 -8.221452057360500e-02 + -8.199783077068876e-02 -8.178123458056528e-02 -8.156473193866548e-02 -8.134832272179610e-02 -8.113200727104515e-02 + -8.091578573554094e-02 -8.069965795549490e-02 -8.048362394306618e-02 -8.026768379237301e-02 -8.005183759034226e-02 + -7.983608519016389e-02 -7.962042660317335e-02 -7.940486220827629e-02 -7.918939199917317e-02 -7.897401585103307e-02 + -7.875873382193239e-02 -7.854354599947752e-02 -7.832845240531904e-02 -7.811345290511561e-02 -7.789854765910142e-02 + -7.768373695009409e-02 -7.746902070156129e-02 -7.725439886068521e-02 -7.703987147751143e-02 -7.682543865920169e-02 + -7.661110037032860e-02 -7.639685648697914e-02 -7.618270730319152e-02 -7.596865299784139e-02 -7.575469343456721e-02 + -7.554082861289950e-02 -7.532705861915691e-02 -7.511338355056779e-02 -7.489980327273796e-02 -7.468631776375068e-02 + -7.447292742489155e-02 -7.425963225373161e-02 -7.404643208981297e-02 -7.383332706618533e-02 -7.362031725942129e-02 + -7.340740264369265e-02 -7.319458312424655e-02 -7.298185885257603e-02 -7.276923011698885e-02 -7.255669681825400e-02 + -7.234425890125808e-02 -7.213191646645117e-02 -7.191966959969415e-02 -7.170751827394115e-02 -7.149546237742448e-02 + -7.128350216363183e-02 -7.107163782537941e-02 -7.085986923051370e-02 -7.064819639413342e-02 -7.043661941815849e-02 + -7.022513838389523e-02 -7.001375316964638e-02 -6.980246372359999e-02 -6.959127044971054e-02 -6.938017339783993e-02 + -6.916917238807876e-02 -6.895826751099868e-02 -6.874745887832359e-02 -6.853674652264935e-02 -6.832613029387129e-02 + -6.811561029537151e-02 -6.790518687416305e-02 -6.769485994872884e-02 -6.748462944761908e-02 -6.727449549181348e-02 + -6.706445814195625e-02 -6.685451736224034e-02 -6.664467305023641e-02 -6.643492546019260e-02 -6.622527482862205e-02 + -6.601572100856345e-02 -6.580626400049541e-02 -6.559690390732385e-02 -6.538764078471235e-02 -6.517847455920224e-02 + -6.496940519404462e-02 -6.476043303620643e-02 -6.455155816426872e-02 -6.434278041275177e-02 -6.413409988235154e-02 + -6.392551667227454e-02 -6.371703078482928e-02 -6.350864213121965e-02 -6.330035079826633e-02 -6.309215709125325e-02 + -6.288406097171770e-02 -6.267606236590158e-02 -6.246816137578116e-02 -6.226035810132791e-02 -6.205265253482506e-02 + -6.184504450634240e-02 -6.163753424009603e-02 -6.143012204113525e-02 -6.122280779495761e-02 -6.101559145710207e-02 + -6.080847310111580e-02 -6.060145284620669e-02 -6.039453063876327e-02 -6.018770637541451e-02 -5.998098039534337e-02 + -5.977435284136760e-02 -5.956782355675167e-02 -5.936139258218223e-02 -5.915506002510895e-02 -5.894882595975996e-02 + -5.874269025717062e-02 -5.853665294379332e-02 -5.833071438748900e-02 -5.812487459491447e-02 -5.791913345983549e-02 + -5.771349104248068e-02 -5.750794745476003e-02 -5.730250273990040e-02 -5.709715674449271e-02 -5.689190963313420e-02 + -5.668676170442684e-02 -5.648171287301057e-02 -5.627676311138611e-02 -5.607191251359627e-02 -5.586716116856662e-02 + -5.566250902085241e-02 -5.545795595276776e-02 -5.525350230977423e-02 -5.504914828197500e-02 -5.484489368806074e-02 + -5.464073856561743e-02 -5.443668303623681e-02 -5.423272717677420e-02 -5.402887087270093e-02 -5.382511411736842e-02 + -5.362145727556954e-02 -5.341790037997223e-02 -5.321444331788154e-02 -5.301108618236487e-02 -5.280782907094528e-02 + -5.260467200594416e-02 -5.240161485390568e-02 -5.219865776343095e-02 -5.199580105954085e-02 -5.179304465507040e-02 + -5.159038850941820e-02 -5.138783273765680e-02 -5.118537740030552e-02 -5.098302246878324e-02 -5.078076787428482e-02 + -5.057861387937131e-02 -5.037656068404879e-02 -5.017460818262723e-02 -4.997275637519877e-02 -4.977100534878579e-02 + -4.956935521374012e-02 -4.936780587637167e-02 -4.916635729330274e-02 -4.896500983679772e-02 -4.876376358063662e-02 + -4.856261839799727e-02 -4.836157437280066e-02 -4.816063160553166e-02 -4.795979012910388e-02 -4.775904981223175e-02 + -4.755841077230219e-02 -4.735787336181510e-02 -4.715743752596301e-02 -4.695710319390285e-02 -4.675687045398216e-02 + -4.655673941737810e-02 -4.635671009364274e-02 -4.615678236145827e-02 -4.595695644691457e-02 -4.575723258610617e-02 + -4.555761069075770e-02 -4.535809077212207e-02 -4.515867291944397e-02 -4.495935719937229e-02 -4.476014355843901e-02 + -4.456103197632578e-02 -4.436202279051898e-02 -4.416311608901573e-02 -4.396431172960501e-02 -4.376560979706327e-02 + -4.356701040970479e-02 -4.336851362154585e-02 -4.317011930970618e-02 -4.297182755295056e-02 -4.277363871130811e-02 + -4.257555275870079e-02 -4.237756961321195e-02 -4.217968936488893e-02 -4.198191211978222e-02 -4.178423789759614e-02 + -4.158666657665847e-02 -4.138919837391426e-02 -4.119183356383482e-02 -4.099457203865310e-02 -4.079741379048268e-02 + -4.060035892668235e-02 -4.040340754077800e-02 -4.020655958670875e-02 -4.000981499812348e-02 -3.981317410229721e-02 + -3.961663704352115e-02 -3.942020369405195e-02 -3.922387410519079e-02 -3.902764838570288e-02 -3.883152661169272e-02 + -3.863550868276464e-02 -3.843959464464100e-02 -3.824378485096525e-02 -3.804807931112070e-02 -3.785247793879744e-02 + -3.765698082240899e-02 -3.746158806803077e-02 -3.726629970906549e-02 -3.707111562537097e-02 -3.687603600301111e-02 + -3.668106114329449e-02 -3.648619095542227e-02 -3.629142541706046e-02 -3.609676463615045e-02 -3.590220871216067e-02 + -3.570775761915167e-02 -3.551341127587861e-02 -3.531916998478909e-02 -3.512503392646860e-02 -3.493100298239093e-02 + -3.473707719308593e-02 -3.454325666569649e-02 -3.434954148093054e-02 -3.415593156072503e-02 -3.396242692622412e-02 + -3.376902792182854e-02 -3.357573459185429e-02 -3.338254684613227e-02 -3.318946476737597e-02 -3.299648846264201e-02 + -3.280361798076661e-02 -3.261085320981364e-02 -3.241819429994710e-02 -3.222564156785773e-02 -3.203319495411584e-02 + -3.184085442350271e-02 -3.164862007407277e-02 -3.145649201602077e-02 -3.126447024597763e-02 -3.107255466700169e-02 + -3.088074555671056e-02 -3.068904313085425e-02 -3.049744727803826e-02 -3.030595802638682e-02 -3.011457548570120e-02 + -2.992329974875160e-02 -2.973213075050443e-02 -2.954106848293515e-02 -2.935011329195715e-02 -2.915926525661732e-02 + -2.896852427673346e-02 -2.877789042941862e-02 -2.858736382466336e-02 -2.839694452567641e-02 -2.820663243092813e-02 + -2.801642765839682e-02 -2.782633053619610e-02 -2.763634102981755e-02 -2.744645909471058e-02 -2.725668483048721e-02 + -2.706701834793413e-02 -2.687745966148872e-02 -2.668800867127078e-02 -2.649866562411629e-02 -2.630943076513501e-02 + -2.612030399888650e-02 -2.593128533989631e-02 -2.574237489560391e-02 -2.555357276907920e-02 -2.536487891525730e-02 + -2.517629330290238e-02 -2.498781626631630e-02 -2.479944791947400e-02 -2.461118815951395e-02 -2.442303705775731e-02 + -2.423499472682666e-02 -2.404706124098910e-02 -2.385923651050157e-02 -2.367152062237768e-02 -2.348391391197065e-02 + -2.329641637680258e-02 -2.310902796361102e-02 -2.292174876507744e-02 -2.273457889435020e-02 -2.254751838574287e-02 + -2.236056713942959e-02 -2.217372537079298e-02 -2.198699334983061e-02 -2.180037099746794e-02 -2.161385831877313e-02 + -2.142745542221016e-02 -2.124116241611923e-02 -2.105497927356034e-02 -2.086890594375282e-02 -2.068294274565517e-02 + -2.049708982965088e-02 -2.031134709508492e-02 -2.012571460207244e-02 -1.994019246558534e-02 -1.975478077426674e-02 + -1.956947944878238e-02 -1.938428854559868e-02 -1.919920840769478e-02 -1.901423906121075e-02 -1.882938044349050e-02 + -1.864463264867233e-02 -1.845999578941159e-02 -1.827546991282947e-02 -1.809105492490821e-02 -1.790675101318496e-02 + -1.772255847013706e-02 -1.753847723077995e-02 -1.735450728912205e-02 -1.717064875577919e-02 -1.698690174123156e-02 + -1.680326624034783e-02 -1.661974219495428e-02 -1.643632989539235e-02 -1.625302952284425e-02 -1.606984099009794e-02 + -1.588676434582367e-02 -1.570379970237604e-02 -1.552094715767664e-02 -1.533820665109939e-02 -1.515557821470722e-02 + -1.497306218983010e-02 -1.479065863118324e-02 -1.460836746737021e-02 -1.442618879376636e-02 -1.424412272699600e-02 + -1.406216932715821e-02 -1.388032850365394e-02 -1.369860041414062e-02 -1.351698537084881e-02 -1.333548332713773e-02 + -1.315409426742165e-02 -1.297281830737383e-02 -1.279165555870565e-02 -1.261060603011550e-02 -1.242966965324022e-02 + -1.224884670128487e-02 -1.206813738892206e-02 -1.188754163203305e-02 -1.170705946859269e-02 -1.152669101347058e-02 + -1.134643637569507e-02 -1.116629550991553e-02 -1.098626842139487e-02 -1.080635544822676e-02 -1.062655668128806e-02 + -1.044687204494093e-02 -1.026730162280993e-02 -1.008784553433474e-02 -9.908503858526582e-03 -9.729276511698201e-03 + -9.550163618928804e-03 -9.371165505355611e-03 -9.192282154920128e-03 -9.013513542246960e-03 -8.834859775588668e-03 + -8.656320970291077e-03 -8.477897155130903e-03 -8.299588259899083e-03 -8.121394531144674e-03 -7.943316209259341e-03 + -7.765353219198069e-03 -7.587505591333328e-03 -7.409773443860054e-03 -7.232156891183837e-03 -7.054655906230881e-03 + -6.877270474033493e-03 -6.700000921715352e-03 -6.522847372218281e-03 -6.345809748257097e-03 -6.168888131399519e-03 + -5.992082642122597e-03 -5.815393366379400e-03 -5.638820235869921e-03 -5.462363348533388e-03 -5.286023033805962e-03 + -5.109799304673499e-03 -4.933692127821829e-03 -4.757701606393674e-03 -4.581827861470766e-03 -4.406070940931505e-03 + -4.230430770274698e-03 -4.054907567997104e-03 -3.879501600335772e-03 -3.704212807069328e-03 -3.529041210474627e-03 + -3.353986930090703e-03 -3.179050081041732e-03 -3.004230655593028e-03 -2.829528626659512e-03 -2.654944304289923e-03 + -2.480477843039907e-03 -2.306129168890747e-03 -2.131898354626704e-03 -1.957785522367332e-03 -1.783790769612464e-03 + -1.609914041309663e-03 -1.436155409326836e-03 -1.262515208025358e-03 -1.088993476198761e-03 -9.155901719868249e-04 + -7.423054008843995e-04 -5.691392854771952e-04 -3.960918865957833e-04 -2.231631331613931e-04 -5.035321608514060e-05 + 1.223375771945329e-04 2.949092895407656e-04 4.673619084872533e-04 6.396953140537370e-04 8.119093865188150e-04 + 9.840041155727759e-04 1.155979539871523e-03 1.327835367602612e-03 1.499571413663267e-03 1.671187748049661e-03 + 1.842684305331169e-03 2.014060960896812e-03 2.185317608856639e-03 2.356454289147141e-03 2.527470954200780e-03 + 2.698367270832486e-03 2.869143169831049e-03 3.039798698561594e-03 3.210333755176400e-03 3.380748214685887e-03 + 3.551042001872539e-03 3.721215182132198e-03 3.891267592694254e-03 4.061198929412137e-03 4.231009214636464e-03 + 4.400698444839332e-03 4.570266499650065e-03 4.739713256426893e-03 4.909038688279234e-03 5.078242841339914e-03 + 5.247325443294046e-03 5.416286280121805e-03 5.585125417934797e-03 5.753842797319914e-03 5.922438289361948e-03 + 6.090911784292105e-03 6.259263304936011e-03 6.427492823105761e-03 6.595600012759487e-03 6.763584774419725e-03 + 6.931447157908777e-03 7.099187064683324e-03 7.266804368739545e-03 7.434298984071849e-03 7.601670964899477e-03 + 7.768920175905106e-03 7.936046303989365e-03 8.103049345026314e-03 8.269929303195386e-03 8.436686062480435e-03 + 8.603319496825714e-03 8.769829559891583e-03 8.936216298209541e-03 9.102479469308070e-03 9.268618835503980e-03 + 9.434634442417017e-03 9.600526244002849e-03 9.766294116521254e-03 9.931937936947469e-03 1.009745771049027e-02 + 1.026285342997890e-02 1.042812477681206e-02 1.059327162144324e-02 1.075829401681754e-02 1.092319186819127e-02 + 1.108796504594824e-02 1.125261345370748e-02 1.141713713772357e-02 1.158153598704318e-02 1.174580967555363e-02 + 1.190995817803677e-02 1.207398151021485e-02 1.223787955540131e-02 1.240165218070774e-02 1.256529932365555e-02 + 1.272882103806231e-02 1.289221710280211e-02 1.305548725320952e-02 1.321863152957668e-02 1.338164989105289e-02 + 1.354454220587777e-02 1.370730835288826e-02 1.386994832163190e-02 1.403246211588375e-02 1.419484943187744e-02 + 1.435711010999991e-02 1.451924419921884e-02 1.468125161270911e-02 1.484313222013652e-02 1.500488591571896e-02 + 1.516651273046586e-02 1.532801257754355e-02 1.548938513124086e-02 1.565063033579857e-02 1.581174821092933e-02 + 1.597273864701365e-02 1.613360150922888e-02 1.629433671764488e-02 1.645494432276120e-02 1.661542413184349e-02 + 1.677577586209575e-02 1.693599953321696e-02 1.709609511287956e-02 1.725606247097126e-02 1.741590148147653e-02 + 1.757561211738663e-02 1.773519439308624e-02 1.789464801957598e-02 1.805397280960725e-02 1.821316881163111e-02 + 1.837223594327105e-02 1.853117406905512e-02 1.868998307594014e-02 1.884866298214414e-02 1.900721372338833e-02 + 1.916563497459167e-02 1.932392665507269e-02 1.948208878919649e-02 1.964012126059438e-02 1.979802393750615e-02 + 1.995579673545799e-02 2.011343968946751e-02 2.027095263124555e-02 2.042833526879373e-02 2.058558759933038e-02 + 2.074270959919291e-02 2.089970114286997e-02 2.105656209513535e-02 2.121329241031374e-02 2.136989211400533e-02 + 2.152636093833320e-02 2.168269866776463e-02 2.183890534086288e-02 2.199498088647827e-02 2.215092516911965e-02 + 2.230673806408907e-02 2.246241957468516e-02 2.261796965793072e-02 2.277338799181243e-02 2.292867446749406e-02 + 2.308382911412376e-02 2.323885181888266e-02 2.339374244699652e-02 2.354850090287507e-02 2.370312721409915e-02 + 2.385762123470989e-02 2.401198266010886e-02 2.416621147301771e-02 2.432030765671687e-02 2.447427107682733e-02 + 2.462810160176357e-02 2.478179917471193e-02 2.493536381795363e-02 2.508879528739230e-02 2.524209334527653e-02 + 2.539525801488748e-02 2.554828923354157e-02 2.570118686847216e-02 2.585395079171064e-02 2.600658098606827e-02 + 2.615907742012537e-02 2.631143978762620e-02 2.646366795301069e-02 2.661576194257877e-02 2.676772164859378e-02 + 2.691954693391293e-02 2.707123769272043e-02 2.722279394328245e-02 2.737421556407061e-02 2.752550224474631e-02 + 2.767665393933695e-02 2.782767063812680e-02 2.797855221700411e-02 2.812929853552858e-02 2.827990951702357e-02 + 2.843038519104858e-02 2.858072533585580e-02 2.873092969062032e-02 2.888099827101270e-02 2.903093101911967e-02 + 2.918072779556083e-02 2.933038847140823e-02 2.947991301658642e-02 2.962930141213865e-02 2.977855336278226e-02 + 2.992766870509821e-02 3.007664746318324e-02 3.022548953626840e-02 3.037419478553557e-02 3.052276309616091e-02 + 3.067119447416764e-02 3.081948881896879e-02 3.096764581778017e-02 3.111566540198458e-02 3.126354756710210e-02 + 3.141129218718559e-02 3.155889912410548e-02 3.170636829125183e-02 3.185369970791438e-02 3.200089317518744e-02 + 3.214794841776677e-02 3.229486543634106e-02 3.244164418203412e-02 3.258828451581320e-02 3.273478630264194e-02 + 3.288114949586567e-02 3.302737408530167e-02 3.317345979235018e-02 3.331940642975919e-02 3.346521401820098e-02 + 3.361088246101045e-02 3.375641161607764e-02 3.390180136352038e-02 3.404705169548587e-02 3.419216253016829e-02 + 3.433713355905806e-02 3.448196468652563e-02 3.462665590981111e-02 3.477120710939272e-02 3.491561814527116e-02 + 3.505988891618091e-02 3.520401943397326e-02 3.534800952666442e-02 3.549185891051008e-02 3.563556756111654e-02 + 3.577913543618631e-02 3.592256240340591e-02 3.606584831947614e-02 3.620899312153205e-02 3.635199681091714e-02 + 3.649485912620978e-02 3.663757985375464e-02 3.678015900636063e-02 3.692259649832257e-02 3.706489218607827e-02 + 3.720704593508108e-02 3.734905772908955e-02 3.749092751022131e-02 3.763265496742431e-02 3.777423997951684e-02 + 3.791568254953915e-02 3.805698256030369e-02 3.819813986869797e-02 3.833915436267914e-02 3.848002605018682e-02 + 3.862075477984065e-02 3.876134025391093e-02 3.890178243600422e-02 3.904208129158644e-02 3.918223668100989e-02 + 3.932224846044379e-02 3.946211655605483e-02 3.960184097189857e-02 3.974142146457355e-02 3.988085779819951e-02 + 4.002014997942075e-02 4.015929792921669e-02 4.029830150192959e-02 4.043716055991190e-02 4.057587507004282e-02 + 4.071444498657769e-02 4.085287001066611e-02 4.099114999824743e-02 4.112928495212512e-02 4.126727475679569e-02 + 4.140511926665246e-02 4.154281836167219e-02 4.168037204269245e-02 4.181778018003033e-02 4.195504246778908e-02 + 4.209215884913708e-02 4.222912929605258e-02 4.236595366776428e-02 4.250263182248033e-02 4.263916367566677e-02 + 4.277554922465009e-02 4.291178824859961e-02 4.304788049654025e-02 4.318382596138427e-02 4.331962457087349e-02 + 4.345527617981602e-02 4.359078064797250e-02 4.372613792550029e-02 4.386134797486977e-02 4.399641051415262e-02 + 4.413132537776133e-02 4.426609256403441e-02 4.440071196061698e-02 4.453518342174363e-02 4.466950682320869e-02 + 4.480368214879805e-02 4.493770928728694e-02 4.507158793990715e-02 4.520531802497359e-02 4.533889951667943e-02 + 4.547233228082954e-02 4.560561616979211e-02 4.573875108353129e-02 4.587173702317195e-02 4.600457379177124e-02 + 4.613726112101928e-02 4.626979898466685e-02 4.640218731770854e-02 4.653442597807410e-02 4.666651481740990e-02 + 4.679845378497393e-02 4.693024287357150e-02 4.706188178521280e-02 4.719337030512012e-02 4.732470843170088e-02 + 4.745589609974604e-02 4.758693317708736e-02 4.771781949014568e-02 4.784855500276729e-02 4.797913963655120e-02 + 4.810957311625792e-02 4.823985532440599e-02 4.836998622519359e-02 4.849996572088229e-02 4.862979364778694e-02 + 4.875946986129576e-02 4.888899438454671e-02 4.901836703838853e-02 4.914758752328308e-02 4.927665585368439e-02 + 4.940557196434897e-02 4.953433564666962e-02 4.966294680168561e-02 4.979140536998770e-02 4.991971127467005e-02 + 5.004786430086550e-02 5.017586426593462e-02 5.030371111424699e-02 5.043140473941395e-02 5.055894500969876e-02 + 5.068633180855401e-02 5.081356509387767e-02 5.094064477169723e-02 5.106757053524139e-02 5.119434226596677e-02 + 5.132095996453229e-02 5.144742351517578e-02 5.157373274644007e-02 5.169988750799723e-02 5.182588783131492e-02 + 5.195173357105356e-02 5.207742440366903e-02 5.220296027189056e-02 5.232834113948501e-02 5.245356688434039e-02 + 5.257863735375337e-02 5.270355244318054e-02 5.282831211610928e-02 5.295291615700908e-02 5.307736435753736e-02 + 5.320165668494783e-02 5.332579302368824e-02 5.344977322479061e-02 5.357359720391287e-02 5.369726488407797e-02 + 5.382077614890905e-02 5.394413077320572e-02 5.406732861255047e-02 5.419036960275756e-02 5.431325364836510e-02 + 5.443598061485443e-02 5.455855035736775e-02 5.468096283548277e-02 5.480321791614200e-02 5.492531533836561e-02 + 5.504725504027442e-02 5.516903696522249e-02 5.529066094250196e-02 5.541212681912044e-02 5.553343451105355e-02 + 5.565458402054679e-02 5.577557512714444e-02 5.589640757833542e-02 5.601708136214176e-02 5.613759637012277e-02 + 5.625795242697428e-02 5.637814944133901e-02 5.649818735356010e-02 5.661806606948155e-02 5.673778531909066e-02 + 5.685734496106067e-02 5.697674499811992e-02 5.709598525886500e-02 5.721506557962035e-02 5.733398588420521e-02 + 5.745274613557275e-02 5.757134619305772e-02 5.768978576165893e-02 5.780806477237931e-02 5.792618319490116e-02 + 5.804414085654030e-02 5.816193759992416e-02 5.827957333255503e-02 5.839704805764100e-02 5.851436157058919e-02 + 5.863151359019340e-02 5.874850407742044e-02 5.886533297606138e-02 5.898200016057164e-02 5.909850545490182e-02 + 5.921484876799358e-02 5.933103006596772e-02 5.944704910278828e-02 5.956290569090495e-02 5.967859979076014e-02 + 5.979413129454921e-02 5.990950006107775e-02 6.002470595625681e-02 6.013974894676900e-02 6.025462892974234e-02 + 6.036934559538653e-02 6.048389882575328e-02 6.059828859366181e-02 6.071251478747773e-02 6.082657726499330e-02 + 6.094047589468096e-02 6.105421060960093e-02 6.116778124880510e-02 6.128118760026364e-02 6.139442960439424e-02 + 6.150750715787331e-02 6.162042008748835e-02 6.173316829355946e-02 6.184575170612789e-02 6.195817023946892e-02 + 6.207042366308074e-02 6.218251178412997e-02 6.229443455021107e-02 6.240619187345142e-02 6.251778362644587e-02 + 6.262920965673664e-02 6.274046989094115e-02 6.285156423838029e-02 6.296249246083868e-02 6.307325441937692e-02 + 6.318385004239983e-02 6.329427920287174e-02 6.340454177652059e-02 6.351463766120390e-02 6.362456678994362e-02 + 6.373432899407734e-02 6.384392402667542e-02 6.395335181995393e-02 6.406261231361865e-02 6.417170537725830e-02 + 6.428063082883417e-02 6.438938856382127e-02 6.449797859582693e-02 6.460640069400744e-02 6.471465460887021e-02 + 6.482274028565467e-02 6.493065766530991e-02 6.503840663024645e-02 6.514598697176463e-02 6.525339863731919e-02 + 6.536064160053869e-02 6.546771556229376e-02 6.557462036169828e-02 6.568135597564134e-02 6.578792228094754e-02 + 6.589431913461476e-02 6.600054641494822e-02 6.610660407274732e-02 6.621249195669229e-02 6.631820979208959e-02 + 6.642375751800587e-02 6.652913508526218e-02 6.663434233390064e-02 6.673937912206085e-02 6.684424535139094e-02 + 6.694894096694531e-02 6.705346576057515e-02 6.715781952052316e-02 6.726200223606826e-02 6.736601378290344e-02 + 6.746985396850236e-02 6.757352270136854e-02 6.767701992273348e-02 6.778034554033589e-02 6.788349929667206e-02 + 6.798648102682574e-02 6.808929069330329e-02 6.819192820375723e-02 6.829439341428477e-02 6.839668615716293e-02 + 6.849880637697058e-02 6.860075397106770e-02 6.870252870886938e-02 6.880413046413429e-02 6.890555915577500e-02 + 6.900681468090485e-02 6.910789689150486e-02 6.920880565820778e-02 6.930954094436353e-02 6.941010257623929e-02 + 6.951049032497619e-02 6.961070411466443e-02 6.971074386483528e-02 6.981060945693285e-02 6.991030074013053e-02 + 7.000981760721879e-02 7.010915998226322e-02 7.020832768385020e-02 7.030732053981503e-02 7.040613843777971e-02 + 7.050478130476578e-02 7.060324902125202e-02 7.070154139632766e-02 7.079965841104072e-02 7.089759998592053e-02 + 7.099536579014293e-02 7.109295574922263e-02 7.119036986301433e-02 7.128760792254588e-02 7.138466979343019e-02 + 7.148155540894172e-02 7.157826467726322e-02 7.167479742578257e-02 7.177115345207208e-02 7.186733268619028e-02 + 7.196333504975572e-02 7.205916041090092e-02 7.215480858692887e-02 7.225027948023270e-02 7.234557308374470e-02 + 7.244068916926014e-02 7.253562753252076e-02 7.263038813284139e-02 7.272497087062332e-02 7.281937559790036e-02 + 7.291360215228662e-02 7.300765049821943e-02 7.310152057265214e-02 7.319521208383468e-02 7.328872490709243e-02 + 7.338205901635925e-02 7.347521425841259e-02 7.356819049091311e-02 7.366098761637971e-02 7.375360558736099e-02 + 7.384604424623381e-02 7.393830334347133e-02 7.403038279875497e-02 7.412228254437477e-02 7.421400245985316e-02 + 7.430554241104276e-02 7.439690229021774e-02 7.448808202204141e-02 7.457908141717452e-02 7.466990029970315e-02 + 7.476053861745356e-02 7.485099625058683e-02 7.494127304678436e-02 7.503136889191833e-02 7.512128371784581e-02 + 7.521101743547498e-02 7.530056981436373e-02 7.538994071268737e-02 7.547913007544443e-02 7.556813780083994e-02 + 7.565696374971752e-02 7.574560777501017e-02 7.583406981695588e-02 7.592234975180168e-02 7.601044736291800e-02 + 7.609836256769248e-02 7.618609528331391e-02 7.627364535037680e-02 7.636101265407126e-02 7.644819711937149e-02 + 7.653519868718589e-02 7.662201715447789e-02 7.670865230880411e-02 7.679510411035856e-02 7.688137246970578e-02 + 7.696745724207896e-02 7.705335828035317e-02 7.713907552614908e-02 7.722460893765626e-02 7.730995825366380e-02 + 7.739512330293280e-02 7.748010405365591e-02 7.756490042829636e-02 7.764951228919105e-02 7.773393946198498e-02 + 7.781818189157449e-02 7.790223948237281e-02 7.798611201876808e-02 7.806979939436651e-02 7.815330154059554e-02 + 7.823661834982702e-02 7.831974966729814e-02 7.840269536418043e-02 7.848545542109749e-02 7.856802968700778e-02 + 7.865041794492959e-02 7.873262009221961e-02 7.881463606524114e-02 7.889646578364969e-02 7.897810905385311e-02 + 7.905956578813299e-02 7.914083598393755e-02 7.922191938944982e-02 7.930281582198326e-02 7.938352526916173e-02 + 7.946404763288464e-02 7.954438277705837e-02 7.962453057021987e-02 7.970449093695484e-02 7.978426377009373e-02 + 7.986384886265184e-02 7.994324611178145e-02 8.002245546069972e-02 8.010147680163558e-02 8.018030998339011e-02 + 8.025895486859348e-02 8.033741142939121e-02 8.041567953647351e-02 8.049375898816008e-02 8.057164970191152e-02 + 8.064935159117341e-02 8.072686453538828e-02 8.080418841559016e-02 8.088132313650849e-02 8.095826861741187e-02 + 8.103502469212946e-02 8.111159121525567e-02 8.118796811657426e-02 8.126415526945288e-02 8.134015254787534e-02 + 8.141595988122388e-02 8.149157718184835e-02 8.156700432424771e-02 8.164224113093393e-02 8.171728750211138e-02 + 8.179214337283539e-02 8.186680860558979e-02 8.194128308109257e-02 8.201556671181809e-02 8.208965942384167e-02 + 8.216356107347705e-02 8.223727146913333e-02 8.231079055026533e-02 8.238411825286719e-02 8.245725445426123e-02 + 8.253019901019013e-02 8.260295182089074e-02 8.267551284923887e-02 8.274788192985057e-02 8.282005889192648e-02 + 8.289204367192234e-02 8.296383619751495e-02 8.303543635380874e-02 8.310684396376640e-02 8.317805898151856e-02 + 8.324908138250064e-02 8.331991092178788e-02 8.339054746670159e-02 8.346099098907200e-02 8.353124136246602e-02 + 8.360129848004999e-02 8.367116227251760e-02 8.374083263302687e-02 8.381030943134427e-02 8.387959252741883e-02 + 8.394868181167527e-02 8.401757720093640e-02 8.408627862550171e-02 8.415478594369409e-02 8.422309904154775e-02 + 8.429121790707177e-02 8.435914237533512e-02 8.442687225429805e-02 8.449440750560887e-02 8.456174803803686e-02 + 8.462889372267089e-02 8.469584447602406e-02 8.476260023136410e-02 8.482916090148240e-02 8.489552630009754e-02 + 8.496169630228255e-02 8.502767086164854e-02 8.509344988672647e-02 8.515903326018803e-02 8.522442086136313e-02 + 8.528961263471936e-02 8.535460848680074e-02 8.541940824041729e-02 8.548401181612168e-02 8.554841915131453e-02 + 8.561263012321893e-02 8.567664461211427e-02 8.574046253447680e-02 8.580408386832587e-02 8.586750845589863e-02 + 8.593073610333024e-02 8.599376680387132e-02 8.605660047760594e-02 8.611923696874126e-02 8.618167618396408e-02 + 8.624391807608472e-02 8.630596259724549e-02 8.636780954833972e-02 8.642945878839840e-02 8.649091029427977e-02 + 8.655216396695875e-02 8.661321970043215e-02 8.667407742210617e-02 8.673473702989365e-02 8.679519841504303e-02 + 8.685546148336530e-02 8.691552612855238e-02 8.697539224666265e-02 8.703505975750943e-02 8.709452857692032e-02 + 8.715379861893667e-02 8.721286980508075e-02 8.727174201224434e-02 8.733041510377958e-02 8.738888903629666e-02 + 8.744716372671989e-02 8.750523904187274e-02 8.756311491392924e-02 8.762079127795709e-02 8.767826803995526e-02 + 8.773554506310657e-02 8.779262223690780e-02 8.784949951260017e-02 8.790617682173207e-02 8.796265406226209e-02 + 8.801893109931651e-02 8.807500788687952e-02 8.813088437660771e-02 8.818656039674132e-02 8.824203585227545e-02 + 8.829731070095961e-02 8.835238486000704e-02 8.840725822106667e-02 8.846193068214857e-02 8.851640221803356e-02 + 8.857067273700293e-02 8.862474207580676e-02 8.867861014722141e-02 8.873227689758616e-02 8.878574227696898e-02 + 8.883900618220902e-02 8.889206851560667e-02 8.894492921167085e-02 8.899758815302622e-02 8.905004524008538e-02 + 8.910230044719054e-02 8.915435367300073e-02 8.920620479173334e-02 8.925785373448247e-02 8.930930045917142e-02 + 8.936054490961548e-02 8.941158695191696e-02 8.946242647641844e-02 8.951306341364354e-02 8.956349771969928e-02 + 8.961372931388180e-02 8.966375808278661e-02 8.971358396554302e-02 8.976320688963368e-02 8.981262675341668e-02 + 8.986184348935064e-02 8.991085703129179e-02 8.995966729258320e-02 9.000827417122792e-02 9.005667759770250e-02 + 9.010487756379584e-02 9.015287394264000e-02 9.020066659275561e-02 9.024825550203337e-02 9.029564061179933e-02 + 9.034282181894199e-02 9.038979902630290e-02 9.043657218570805e-02 9.048314126656666e-02 9.052950615463343e-02 + 9.057566675480395e-02 9.062162300961238e-02 9.066737484935303e-02 9.071292219781772e-02 9.075826498061153e-02 + 9.080340315127385e-02 9.084833664156222e-02 9.089306533771581e-02 9.093758915627431e-02 9.098190804149961e-02 + 9.102602195783284e-02 9.106993084471440e-02 9.111363462196023e-02 9.115713320054021e-02 9.120042650346059e-02 + 9.124351446434358e-02 9.128639702175202e-02 9.132907412994692e-02 9.137154573427010e-02 9.141381170435277e-02 + 9.145587198962597e-02 9.149772660800266e-02 9.153937542844172e-02 9.158081834977004e-02 9.162205535599281e-02 + 9.166308637778346e-02 9.170391133536025e-02 9.174453017072061e-02 9.178494285856946e-02 9.182514933661440e-02 + 9.186514945794547e-02 9.190494319482566e-02 9.194453054665523e-02 9.198391140758180e-02 9.202308569543158e-02 + 9.206205336702038e-02 9.210081441034919e-02 9.213936875086109e-02 9.217771627651770e-02 9.221585694962209e-02 + 9.225379072840771e-02 9.229151754885842e-02 9.232903734819613e-02 9.236635007909103e-02 9.240345570404732e-02 + 9.244035413434255e-02 9.247704529963750e-02 9.251352918345666e-02 9.254980573968512e-02 9.258587489795035e-02 + 9.262173657649034e-02 9.265739073985793e-02 9.269283735974691e-02 9.272807636276849e-02 9.276310769047050e-02 + 9.279793130272118e-02 9.283254716719631e-02 9.286695521394739e-02 9.290115536246511e-02 9.293514761281572e-02 + 9.296893192325742e-02 9.300250819824006e-02 9.303587638369953e-02 9.306903645092859e-02 9.310198837852499e-02 + 9.313473209662422e-02 9.316726755984403e-02 9.319959477466139e-02 9.323171364631608e-02 9.326362408592948e-02 + 9.329532610133226e-02 9.332681964339190e-02 9.335810464438972e-02 9.338918108249107e-02 9.342004893308628e-02 + 9.345070815580041e-02 9.348115868437977e-02 9.351140046962789e-02 9.354143348306601e-02 9.357125770365762e-02 + 9.360087308621738e-02 9.363027956518245e-02 9.365947710363894e-02 9.368846567300493e-02 9.371724524372237e-02 + 9.374581578300241e-02 9.377417725111503e-02 9.380232960142115e-02 9.383027280206080e-02 9.385800682788301e-02 + 9.388553164914089e-02 9.391284719773688e-02 9.393995342276806e-02 9.396685035781838e-02 9.399353796706621e-02 + 9.402001617537038e-02 9.404628495786660e-02 9.407234429781461e-02 9.409819417117830e-02 9.412383453169183e-02 + 9.414926534580341e-02 9.417448659641373e-02 9.419949825736050e-02 9.422430029380560e-02 9.424889267135104e-02 + 9.427327539998738e-02 9.429744844865905e-02 9.432141171534560e-02 9.434516522540957e-02 9.436870900006604e-02 + 9.439204294634228e-02 9.441516705436934e-02 9.443808133745002e-02 9.446078573953387e-02 9.448328023801857e-02 + 9.450556483411636e-02 9.452763950923013e-02 9.454950421611270e-02 9.457115890701832e-02 9.459260360830167e-02 + 9.461383832574666e-02 9.463486302352626e-02 9.465567765409444e-02 9.467628220109425e-02 9.469667668274938e-02 + 9.471686106967921e-02 9.473683533004949e-02 9.475659945563136e-02 9.477615343325803e-02 9.479549725292793e-02 + 9.481463091432241e-02 9.483355439545672e-02 9.485226766778346e-02 9.487077071788189e-02 9.488906353992572e-02 + 9.490714613644993e-02 9.492501852119042e-02 9.494268066964073e-02 9.496013253895599e-02 9.497737414244060e-02 + 9.499440547543551e-02 9.501122651272445e-02 9.502783728094538e-02 9.504423778187990e-02 9.506042797340242e-02 + 9.507640785191551e-02 9.509217742006319e-02 9.510773667189122e-02 9.512308563868060e-02 9.513822432123879e-02 + 9.515315264231193e-02 9.516787063845662e-02 9.518237836728226e-02 9.519667577724227e-02 9.521076284349063e-02 + 9.522463958294539e-02 9.523830604498588e-02 9.525176221483619e-02 9.526500804718509e-02 9.527804359769618e-02 + 9.529086886623650e-02 9.530348379689602e-02 9.531588845120076e-02 9.532808286166987e-02 9.534006699012688e-02 + 9.535184085361241e-02 9.536340447105748e-02 9.537475783364874e-02 9.538590095359538e-02 9.539683385237334e-02 + 9.540755654711666e-02 9.541806903829181e-02 9.542837132640679e-02 9.543846343230179e-02 9.544834536597921e-02 + 9.545801714100983e-02 9.546747880593646e-02 9.547673036184304e-02 9.548577178084619e-02 9.549460309483834e-02 + 9.550322434581640e-02 9.551163556335956e-02 9.551983673903520e-02 9.552782788036314e-02 9.553560902903191e-02 + 9.554318022933674e-02 9.555054148771730e-02 9.555769276632298e-02 9.556463412975340e-02 9.557136563747151e-02 + 9.557788725689133e-02 9.558419903459103e-02 9.559030102901959e-02 9.559619321427665e-02 9.560187562136102e-02 + 9.560734830883322e-02 9.561261127917654e-02 9.561766456108449e-02 9.562250820572099e-02 9.562714223416331e-02 + 9.563156666435306e-02 9.563578152405575e-02 9.563978686682097e-02 9.564358272631937e-02 9.564716910782914e-02 + 9.565054604965099e-02 9.565371359980702e-02 9.565667179877529e-02 9.565942066526258e-02 9.566196023293236e-02 + 9.566429057683135e-02 9.566641172752892e-02 9.566832368940979e-02 9.567002647518966e-02 9.567152016429874e-02 + 9.567280484915060e-02 9.567388053004788e-02 9.567474721294261e-02 9.567540493730267e-02 9.567585379392737e-02 + 9.567609383300600e-02 9.567612506298810e-02 9.567594754568214e-02 9.567556133790830e-02 9.567496647244744e-02 + 9.567416299512438e-02 9.567315095370396e-02 9.567193039196389e-02 9.567050136232016e-02 9.566886392120964e-02 + 9.566701812558283e-02 9.566496403827787e-02 9.566270170884209e-02 9.566023115264767e-02 9.565755243736668e-02 + 9.565466564791879e-02 9.565157080775241e-02 9.564826797386157e-02 9.564475723264595e-02 9.564103864027859e-02 + 9.563711223757489e-02 9.563297806735498e-02 9.562863621895812e-02 9.562408675116861e-02 9.561932968250994e-02 + 9.561436511583814e-02 9.560919313325968e-02 9.560381374743886e-02 9.559822704785555e-02 9.559243313048145e-02 + 9.558643203289170e-02 9.558022378864620e-02 9.557380846466877e-02 9.556718619530349e-02 9.556035703327785e-02 + 9.555332100122134e-02 9.554607821247386e-02 9.553862873475936e-02 9.553097259908433e-02 9.552310989218279e-02 + 9.551504070130773e-02 9.550676510186747e-02 9.549828317393894e-02 9.548959500356741e-02 9.548070067318166e-02 + 9.547160021295119e-02 9.546229369018946e-02 9.545278124506257e-02 9.544306292579091e-02 9.543313878273989e-02 + 9.542300894892854e-02 9.541267351639289e-02 9.540213254817664e-02 9.539138610562420e-02 9.538043425774057e-02 + 9.536927709152246e-02 9.535791472882026e-02 9.534634726779553e-02 9.533457478138217e-02 9.532259734256758e-02 + 9.531041503990305e-02 9.529802797105680e-02 9.528543620462085e-02 9.527263983869082e-02 9.525963900525855e-02 + 9.524643375927100e-02 9.523302417643500e-02 9.521941040061487e-02 9.520559252291068e-02 9.519157060486365e-02 + 9.517734471153570e-02 9.516291499670615e-02 9.514828160467456e-02 9.513344455080376e-02 9.511840393248631e-02 + 9.510315989360162e-02 9.508771251519674e-02 9.507206189457258e-02 9.505620814925633e-02 9.504015138530268e-02 + 9.502389169582724e-02 9.500742917228551e-02 9.499076394524120e-02 9.497389612890822e-02 9.495682580659018e-02 + 9.493955308203066e-02 9.492207807526097e-02 9.490440091330225e-02 9.488652168366014e-02 9.486844048723730e-02 + 9.485015747906970e-02 9.483167277063544e-02 9.481298644119306e-02 9.479409856622809e-02 9.477500930738031e-02 + 9.475571884085587e-02 9.473622721810367e-02 9.471653454723004e-02 9.469664098786204e-02 9.467654664635866e-02 + 9.465625162221861e-02 9.463575602621152e-02 9.461505999415500e-02 9.459416367044585e-02 9.457306719633034e-02 + 9.455177068421998e-02 9.453027423759350e-02 9.450857796468222e-02 9.448668199276268e-02 9.446458647203468e-02 + 9.444229157255099e-02 9.441979739649474e-02 9.439710403006842e-02 9.437421161454676e-02 9.435112031829759e-02 + 9.432783029179438e-02 9.430434160094567e-02 9.428065438538669e-02 9.425676883924589e-02 9.423268508508292e-02 + 9.420840322981890e-02 9.418392339716981e-02 9.415924578030670e-02 9.413437051700123e-02 9.410929767030043e-02 + 9.408402741009517e-02 9.405855992335012e-02 9.403289535840260e-02 9.400703383941893e-02 9.398097549341558e-02 + 9.395472046838550e-02 9.392826889502673e-02 9.390162091553057e-02 9.387477672023849e-02 9.384773645864139e-02 + 9.382050025947151e-02 9.379306828457251e-02 9.376544068778003e-02 9.373761760606118e-02 9.370959916011609e-02 + 9.368138552427184e-02 9.365297690930323e-02 9.362437342817573e-02 9.359557520850639e-02 9.356658243379877e-02 + 9.353739529945312e-02 9.350801394425273e-02 9.347843843855524e-02 9.344866901272440e-02 9.341870589097585e-02 + 9.338854915644307e-02 9.335819897637819e-02 9.332765555734250e-02 9.329691906420928e-02 9.326598960092489e-02 + 9.323486729288316e-02 9.320355242698486e-02 9.317204517635257e-02 9.314034562740874e-02 9.310845398153604e-02 + 9.307637042858882e-02 9.304409511565054e-02 9.301162817412864e-02 9.297896979469056e-02 9.294612022999450e-02 + 9.291307963943660e-02 9.287984815938743e-02 9.284642594887814e-02 9.281281319942865e-02 9.277901009754375e-02 + 9.274501679883909e-02 9.271083349621308e-02 9.267646039527271e-02 9.264189767811302e-02 9.260714551564306e-02 + 9.257220408228978e-02 9.253707357624473e-02 9.250175417101536e-02 9.246624602802385e-02 9.243054935165987e-02 + 9.239466434718238e-02 9.235859120974489e-02 9.232233012999355e-02 9.228588129454922e-02 9.224924488066757e-02 + 9.221242103323031e-02 9.217540995047416e-02 9.213821191347883e-02 9.210082709355732e-02 9.206325564930115e-02 + 9.202549780755387e-02 9.198755374602623e-02 9.194942363528436e-02 9.191110769995278e-02 9.187260614753277e-02 + 9.183391917841241e-02 9.179504701848260e-02 9.175598985687712e-02 9.171674785963810e-02 9.167732123351167e-02 + 9.163771019528422e-02 9.159791495855178e-02 9.155793572040530e-02 9.151777270193290e-02 9.147742614628342e-02 + 9.143689622063791e-02 9.139618310892414e-02 9.135528705455570e-02 9.131420824439858e-02 9.127294688450004e-02 + 9.123150325806001e-02 9.118987755991119e-02 9.114806996063474e-02 9.110608069642255e-02 9.106390998608170e-02 + 9.102155802996120e-02 9.097902503011562e-02 9.093631123402490e-02 9.089341690732793e-02 9.085034224655422e-02 + 9.080708743846595e-02 9.076365269164367e-02 9.072003828369785e-02 9.067624443485320e-02 9.063227129485288e-02 + 9.058811915193726e-02 9.054378827004000e-02 9.049927881221763e-02 9.045459103770109e-02 9.040972520178260e-02 + 9.036468147234690e-02 9.031946007844127e-02 9.027406127956829e-02 9.022848531585773e-02 9.018273243214560e-02 + 9.013680287341128e-02 9.009069686920407e-02 9.004441462623869e-02 8.999795635152021e-02 8.995132231203949e-02 + 8.990451276610797e-02 8.985752795281814e-02 8.981036812557305e-02 8.976303351703613e-02 8.971552434037033e-02 + 8.966784087291869e-02 8.961998334831080e-02 8.957195192338249e-02 8.952374693198487e-02 8.947536869631613e-02 + 8.942681737354224e-02 8.937809319632291e-02 8.932919644498671e-02 8.928012738635183e-02 8.923088623240803e-02 + 8.918147319450437e-02 8.913188858291199e-02 8.908213269254797e-02 8.903220577223506e-02 8.898210800726358e-02 + 8.893183965769864e-02 8.888140104180198e-02 8.883079233855783e-02 8.878001380541380e-02 8.872906581842580e-02 + 8.867794859494142e-02 8.862666233412557e-02 8.857520730323154e-02 8.852358381153494e-02 8.847179212845252e-02 + 8.841983243253916e-02 8.836770502123131e-02 8.831541022882371e-02 8.826294830990469e-02 8.821031949641793e-02 + 8.815752403748606e-02 8.810456224863354e-02 8.805143437639511e-02 8.799814063336710e-02 8.794468134879541e-02 + 8.789105684257616e-02 8.783726738270531e-02 8.778331316928159e-02 8.772919447874153e-02 8.767491167446911e-02 + 8.762046495069514e-02 8.756585454037039e-02 8.751108081839833e-02 8.745614408581825e-02 8.740104459021790e-02 + 8.734578256007368e-02 8.729035830815834e-02 8.723477214343743e-02 8.717902426868683e-02 8.712311501918556e-02 + 8.706704476846663e-02 8.701081371877695e-02 8.695442211628683e-02 8.689787027644420e-02 8.684115853767592e-02 + 8.678428714435096e-02 8.672725629439892e-02 8.667006642064547e-02 8.661271785522098e-02 8.655521075244504e-02 + 8.649754543067346e-02 8.643972223965939e-02 8.638174147222141e-02 8.632360334916610e-02 8.626530814542391e-02 + 8.620685627786050e-02 8.614824804295058e-02 8.608948367410735e-02 8.603056343813603e-02 8.597148768708160e-02 + 8.591225676580187e-02 8.585287085352321e-02 8.579333027004854e-02 8.573363543090719e-02 8.567378659419787e-02 + 8.561378404241062e-02 8.555362810687137e-02 8.549331906471129e-02 8.543285719635127e-02 8.537224281446841e-02 + 8.531147627953188e-02 8.525055791649624e-02 8.518948798167383e-02 8.512826679756995e-02 8.506689470133286e-02 + 8.500537199311337e-02 8.494369892596923e-02 8.488187579804041e-02 8.481990305210670e-02 8.475778099074194e-02 + 8.469550984763315e-02 8.463308996695838e-02 8.457052168539449e-02 8.450780530789033e-02 8.444494110975011e-02 + 8.438192942971584e-02 8.431877065438623e-02 8.425546507059704e-02 8.419201297696736e-02 8.412841471805475e-02 + 8.406467061549007e-02 8.400078097306259e-02 8.393674609180030e-02 8.387256634619757e-02 8.380824209666674e-02 + 8.374377362095807e-02 8.367916122870038e-02 8.361440526888680e-02 8.354950611900661e-02 8.348446403538942e-02 + 8.341927927704872e-02 8.335395233905314e-02 8.328848356223681e-02 8.322287316371958e-02 8.315712149574238e-02 + 8.309122893699929e-02 8.302519583647612e-02 8.295902243510637e-02 8.289270907781640e-02 8.282625623697057e-02 + 8.275966417678003e-02 8.269293318851907e-02 8.262606370095599e-02 8.255905601211083e-02 8.249191039312886e-02 + 8.242462718945633e-02 8.235720681988298e-02 8.228964967784431e-02 8.222195602541869e-02 8.215412621284769e-02 + 8.208616062445039e-02 8.201805954142698e-02 8.194982329150195e-02 8.188145225476894e-02 8.181294680713293e-02 + 8.174430731452863e-02 8.167553412282050e-02 8.160662752890076e-02 8.153758789030935e-02 8.146841562526554e-02 + 8.139911098330359e-02 8.132967428676124e-02 8.126010603531450e-02 8.119040656216225e-02 8.112057615694021e-02 + 8.105061517994502e-02 8.098052402265073e-02 8.091030303880128e-02 8.083995248093376e-02 8.076947276447492e-02 + 8.069886435754116e-02 8.062812754457355e-02 8.055726265736828e-02 8.048627008799529e-02 8.041515020636995e-02 + 8.034390332540668e-02 8.027252974489747e-02 8.020102993492553e-02 8.012940431195667e-02 8.005765317555476e-02 + 7.998577686939379e-02 7.991377577220368e-02 7.984165027334414e-02 7.976940065907111e-02 7.969702727793032e-02 + 7.962453065567111e-02 7.955191112254574e-02 7.947916895239987e-02 7.940630455590227e-02 7.933331833212637e-02 + 7.926021063894960e-02 7.918698178217287e-02 7.911363216326053e-02 7.904016223823181e-02 7.896657235187955e-02 + 7.889286283938438e-02 7.881903406306398e-02 7.874508643443230e-02 7.867102031060058e-02 7.859683599526633e-02 + 7.852253395767629e-02 7.844811463098400e-02 7.837357831424305e-02 7.829892537205134e-02 7.822415619643758e-02 + 7.814927116484589e-02 7.807427062910767e-02 7.799915496813195e-02 7.792392464520610e-02 7.784858004657273e-02 + 7.777312150359181e-02 7.769754936428309e-02 7.762186403791040e-02 7.754606594385612e-02 7.747015537442642e-02 + 7.739413273994507e-02 7.731799855521804e-02 7.724175314852555e-02 7.716539684747571e-02 7.708893004657069e-02 + 7.701235315053030e-02 7.693566653742440e-02 7.685887055661017e-02 7.678196565918903e-02 7.670495227727288e-02 + 7.662783073280909e-02 7.655060142689749e-02 7.647326478202995e-02 7.639582115595660e-02 7.631827089499127e-02 + 7.624061438211467e-02 7.616285210329320e-02 7.608498447266238e-02 7.600701183814436e-02 7.592893457493513e-02 + 7.585075308733022e-02 7.577246778116596e-02 7.569407897223836e-02 7.561558707997214e-02 7.553699264667676e-02 + 7.545829602219666e-02 7.537949752159374e-02 7.530059752746436e-02 7.522159652110559e-02 7.514249491290788e-02 + 7.506329293711217e-02 7.498399108869409e-02 7.490458989985715e-02 7.482508965268882e-02 7.474549074308040e-02 + 7.466579363230305e-02 7.458599868473173e-02 7.450610623924510e-02 7.442611667561436e-02 7.434603053570255e-02 + 7.426584824442337e-02 7.418557009969678e-02 7.410519651333995e-02 7.402472793153594e-02 7.394416477978479e-02 + 7.386350736456949e-02 7.378275607823381e-02 7.370191147772952e-02 7.362097394239986e-02 7.353994380500382e-02 + 7.345882147239775e-02 7.337760740248925e-02 7.329630201371148e-02 7.321490559729334e-02 7.313341861868546e-02 + 7.305184160923943e-02 7.297017492620234e-02 7.288841893034562e-02 7.280657402242413e-02 7.272464064227188e-02 + 7.264261917439505e-02 7.256050997585588e-02 7.247831356170273e-02 7.239603038649280e-02 7.231366079163171e-02 + 7.223120520116612e-02 7.214866404160214e-02 7.206603769517569e-02 7.198332653777370e-02 7.190053098792457e-02 + 7.181765153838118e-02 7.173468863077177e-02 7.165164265282598e-02 7.156851395212357e-02 7.148530298289761e-02 + 7.140201021117390e-02 7.131863593482980e-02 7.123518058493326e-02 7.115164469180060e-02 7.106802866653637e-02 + 7.098433289103630e-02 7.090055775733806e-02 7.081670370962735e-02 7.073277114629017e-02 7.064876042084919e-02 + 7.056467204467058e-02 7.048050649359339e-02 7.039626411522021e-02 7.031194531783586e-02 7.022755055007633e-02 + 7.014308026270048e-02 7.005853477507426e-02 6.997391445865883e-02 6.988921994223606e-02 6.980445161374127e-02 + 6.971960976161336e-02 6.963469490630880e-02 6.954970749457975e-02 6.946464787470261e-02 6.937951638488904e-02 + 6.929431352344900e-02 6.920903988440608e-02 6.912369577614699e-02 6.903828154824053e-02 6.895279768813133e-02 + 6.886724462309453e-02 6.878162274040467e-02 6.869593242264821e-02 6.861017418575431e-02 6.852434851303352e-02 + 6.843845573229547e-02 6.835249626715924e-02 6.826647058722328e-02 6.818037912112360e-02 6.809422221022603e-02 + 6.800800023353686e-02 6.792171381432285e-02 6.783536337902803e-02 6.774894920974223e-02 6.766247176656806e-02 + 6.757593152448671e-02 6.748932891036163e-02 6.740266425451470e-02 6.731593799992638e-02 6.722915072040272e-02 + 6.714230278026269e-02 6.705539454984789e-02 6.696842651283096e-02 6.688139909018249e-02 6.679431266253504e-02 + 6.670716761081900e-02 6.661996446504156e-02 6.653270374249923e-02 6.644538575792285e-02 6.635801090742725e-02 + 6.627057965598744e-02 6.618309245387675e-02 6.609554968705872e-02 6.600795173819872e-02 6.592029914958422e-02 + 6.583259238307172e-02 6.574483179767340e-02 6.565701780669353e-02 6.556915085921187e-02 6.548123140723705e-02 + 6.539325979064996e-02 6.530523643565112e-02 6.521716192687264e-02 6.512903665438342e-02 6.504086097557776e-02 + 6.495263535156262e-02 6.486436022769713e-02 6.477603601048113e-02 6.468766306269763e-02 6.459924187637454e-02 + 6.451077298036002e-02 6.442225675573160e-02 6.433369358016772e-02 6.424508387319842e-02 6.415642813133042e-02 + 6.406772674084167e-02 6.397898002556264e-02 6.389018858464109e-02 6.380135290132970e-02 6.371247325592760e-02 + 6.362355010153516e-02 6.353458392277617e-02 6.344557514446422e-02 6.335652411846264e-02 6.326743126079815e-02 + 6.317829713990436e-02 6.308912216326193e-02 6.299990668862973e-02 6.291065117630994e-02 6.282135608306753e-02 + 6.273202182393535e-02 6.264264873955985e-02 6.255323731562341e-02 6.246378810230178e-02 6.237430143094801e-02 + 6.228477769978175e-02 6.219521740601344e-02 6.210562097707054e-02 6.201598879095212e-02 6.192632121693314e-02 + 6.183661876812600e-02 6.174688193928092e-02 6.165711112558074e-02 6.156730673780070e-02 6.147746920022401e-02 + 6.138759893800432e-02 6.129769633241683e-02 6.120776180293847e-02 6.111779589683188e-02 6.102779903735479e-02 + 6.093777158500626e-02 6.084771398591046e-02 6.075762667844817e-02 6.066751007308262e-02 6.057736455111417e-02 + 6.048719057054321e-02 6.039698864588414e-02 6.030675917961215e-02 6.021650256672047e-02 6.012621923377075e-02 + 6.003590961818356e-02 5.994557411659043e-02 5.985521308639186e-02 5.976482706463886e-02 5.967441656528669e-02 + 5.958398192281734e-02 5.949352353003544e-02 5.940304183449088e-02 5.931253730252380e-02 5.922201027916447e-02 + 5.913146112197507e-02 5.904089044032181e-02 5.895029868043596e-02 5.885968615096351e-02 5.876905326755812e-02 + 5.867840050492581e-02 5.858772833116550e-02 5.849703703991720e-02 5.840632705235495e-02 5.831559896255584e-02 + 5.822485314806121e-02 5.813408997000494e-02 5.804330987759122e-02 5.795251328764216e-02 5.786170059865808e-02 + 5.777087221384987e-02 5.768002859772193e-02 5.758917021647553e-02 5.749829746896256e-02 5.740741077575853e-02 + 5.731651056875526e-02 5.722559725171274e-02 5.713467118430270e-02 5.704373274635539e-02 5.695278249332581e-02 + 5.686182088614487e-02 5.677084826809927e-02 5.667986504336005e-02 5.658887165217444e-02 5.649786853613976e-02 + 5.640685602792318e-02 5.631583453941855e-02 5.622480462822738e-02 5.613376666437993e-02 5.604272100502515e-02 + 5.595166813210956e-02 5.586060845174765e-02 5.576954232437998e-02 5.567847012652845e-02 5.558739236715193e-02 + 5.549630955542323e-02 5.540522197136583e-02 5.531413002536285e-02 5.522303422299683e-02 5.513193492275553e-02 + 5.504083247717721e-02 5.494972729209355e-02 5.485861988753332e-02 5.476751071228679e-02 5.467640010379995e-02 + 5.458528846418693e-02 5.449417622493567e-02 5.440306381105370e-02 5.431195155656662e-02 5.422083985771245e-02 + 5.412972927459819e-02 5.403862019627870e-02 5.394751295390937e-02 5.385640797531270e-02 5.376530569364821e-02 + 5.367420650537214e-02 5.358311072889269e-02 5.349201882499156e-02 5.340093132499041e-02 5.330984856991542e-02 + 5.321877091980749e-02 5.312769879767464e-02 5.303663263591166e-02 5.294557280318667e-02 5.285451962473617e-02 + 5.276347361952855e-02 5.267243525955664e-02 5.258140485845194e-02 5.249038280640431e-02 5.239936952998326e-02 + 5.230836544276557e-02 5.221737088032564e-02 5.212638621732711e-02 5.203541199430900e-02 5.194444860919033e-02 + 5.185349638284296e-02 5.176255572471577e-02 5.167162705674897e-02 5.158071077330502e-02 5.148980718747074e-02 + 5.139891673261619e-02 5.130803993485430e-02 5.121717713356427e-02 5.112632867301793e-02 5.103549496777923e-02 + 5.094467643725986e-02 5.085387344650644e-02 5.076308630673339e-02 5.067231551219451e-02 5.058156153920812e-02 + 5.049082469322039e-02 5.040010534612100e-02 5.030940391348503e-02 5.021872080090227e-02 5.012805633824483e-02 + 5.003741087422633e-02 4.994678493647212e-02 4.985617892926745e-02 4.976559315779018e-02 4.967502801470126e-02 + 4.958448390876292e-02 4.949396122643934e-02 4.940346027599988e-02 4.931298146262254e-02 4.922252530167843e-02 + 4.913209213539834e-02 4.904168229174269e-02 4.895129616994274e-02 4.886093417404704e-02 4.877059666413559e-02 + 4.868028394034647e-02 4.858999646754281e-02 4.849973472130898e-02 4.840949900241633e-02 4.831928966152828e-02 + 4.822910709871525e-02 4.813895171199074e-02 4.804882382564480e-02 4.795872376124456e-02 4.786865202942978e-02 + 4.777860903855367e-02 4.768859507592742e-02 4.759861051627762e-02 4.750865575639699e-02 4.741873117406014e-02 + 4.732883706721817e-02 4.723897381137243e-02 4.714914191200375e-02 4.705934171189571e-02 4.696957351961628e-02 + 4.687983771740974e-02 4.679013469431771e-02 4.670046480338604e-02 4.661082833156779e-02 4.652122571187634e-02 + 4.643165741520618e-02 4.634212373882778e-02 4.625262501422293e-02 4.616316162482947e-02 4.607373395212459e-02 + 4.598434231610999e-02 4.589498701904484e-02 4.580566854223844e-02 4.571638729424802e-02 4.562714355109129e-02 + 4.553793766452621e-02 4.544877001582995e-02 4.535964097502848e-02 4.527055082898004e-02 4.518149992236756e-02 + 4.509248874970542e-02 4.500351765014129e-02 4.491458690878355e-02 4.482569689376779e-02 4.473684797939540e-02 + 4.464804050747698e-02 4.455927474828068e-02 4.447055110499822e-02 4.438187004531898e-02 4.429323185876936e-02 + 4.420463685202721e-02 4.411608538888854e-02 4.402757783926076e-02 4.393911451733543e-02 4.385069570127949e-02 + 4.376232184208732e-02 4.367399334643604e-02 4.358571047769912e-02 4.349747356709084e-02 4.340928298020802e-02 + 4.332113907381294e-02 4.323304212320113e-02 4.314499244129432e-02 4.305699050668390e-02 4.296903665620930e-02 + 4.288113115167341e-02 4.279327434447749e-02 4.270546659199307e-02 4.261770822231841e-02 4.252999949469098e-02 + 4.244234077853745e-02 4.235473252680039e-02 4.226717502474875e-02 4.217966855846760e-02 4.209221347273914e-02 + 4.200481011967518e-02 4.191745880279663e-02 4.183015977695443e-02 4.174291346429643e-02 4.165572027077732e-02 + 4.156858044734360e-02 4.148149429654668e-02 4.139446216241891e-02 4.130748439363172e-02 4.122056125606220e-02 + 4.113369302794675e-02 4.104688016346336e-02 4.096012300095512e-02 4.087342178434451e-02 4.078677683583759e-02 + 4.070018849668031e-02 4.061365708919899e-02 4.052718285106741e-02 4.044076611819490e-02 4.035440733833207e-02 + 4.026810678092279e-02 4.018186470341873e-02 4.009568143909095e-02 4.000955732298062e-02 3.992349264534106e-02 + 3.983748763759326e-02 3.975154269055037e-02 3.966565820546299e-02 3.957983441649049e-02 3.949407160357907e-02 + 3.940837009289332e-02 3.932273021031552e-02 3.923715221270428e-02 3.915163635394041e-02 3.906618306202975e-02 + 3.898079266950179e-02 3.889546539672872e-02 3.881020154253283e-02 3.872500143016262e-02 3.863986536923758e-02 + 3.855479358615301e-02 3.846978637959592e-02 3.838484417257106e-02 3.829996723484980e-02 3.821515580420295e-02 + 3.813041018714970e-02 3.804573069687705e-02 3.796111761198420e-02 3.787657114752344e-02 3.779209165765486e-02 + 3.770767953120019e-02 3.762333499040284e-02 3.753905829251161e-02 3.745484974542636e-02 3.737070965331050e-02 + 3.728663825939783e-02 3.720263578933122e-02 3.711870264209954e-02 3.703483914671073e-02 3.695104550519348e-02 + 3.686732199057993e-02 3.678366890490292e-02 3.670008654113079e-02 3.661657511036890e-02 3.653313487804630e-02 + 3.644976625150438e-02 3.636646948823320e-02 3.628324479604935e-02 3.620009246605282e-02 3.611701279349350e-02 + 3.603400604041686e-02 3.595107239910939e-02 3.586821219020735e-02 3.578542579441001e-02 3.570271341631447e-02 + 3.562007528519529e-02 3.553751169069794e-02 3.545502291550906e-02 3.537260919186706e-02 3.529027072401183e-02 + 3.520800787214007e-02 3.512582095428173e-02 3.504371015751370e-02 3.496167573051010e-02 3.487971795476078e-02 + 3.479783710598274e-02 3.471603337811516e-02 3.463430699965583e-02 3.455265835796009e-02 3.447108770848941e-02 + 3.438959523450754e-02 3.430818119554624e-02 3.422684586511945e-02 3.414558949343227e-02 3.406441225419257e-02 + 3.398331443038755e-02 3.390229638782512e-02 3.382135832287533e-02 3.374050043789544e-02 3.365972299780525e-02 + 3.357902626321113e-02 3.349841045119794e-02 3.341787574130316e-02 3.333742246166845e-02 3.325705092272905e-02 + 3.317676129391954e-02 3.309655379649919e-02 3.301642868788483e-02 3.293638622159571e-02 3.285642658240021e-02 + 3.277654996949401e-02 3.269675673538998e-02 3.261704712715797e-02 3.253742130855802e-02 3.245787951722746e-02 + 3.237842200259459e-02 3.229904899349424e-02 3.221976065258773e-02 3.214055722659278e-02 3.206143905506719e-02 + 3.198240632628265e-02 3.190345921865954e-02 3.182459797365254e-02 3.174582282841434e-02 3.166713398447476e-02 + 3.158853160183031e-02 3.151001597036992e-02 3.143158738592136e-02 3.135324600516137e-02 3.127499202279022e-02 + 3.119682567104914e-02 3.111874718036912e-02 3.104075672462514e-02 3.096285447683152e-02 3.088504075536903e-02 + 3.080731579690068e-02 3.072967974437236e-02 3.065213281019982e-02 3.057467522135681e-02 3.049730718652442e-02 + 3.042002885157935e-02 3.034284042889533e-02 3.026574223701538e-02 3.018873445294931e-02 3.011181722724549e-02 + 3.003499077734359e-02 2.995825532248887e-02 2.988161104857855e-02 2.980505808548691e-02 2.972859668986686e-02 + 2.965222714891759e-02 2.957594959806504e-02 2.949976420500935e-02 2.942367118266701e-02 2.934767073798247e-02 + 2.927176302885600e-02 2.919594820074298e-02 2.912022654108078e-02 2.904459827654108e-02 2.896906352751058e-02 + 2.889362247668933e-02 2.881827533028623e-02 2.874302228403363e-02 2.866786346167200e-02 2.859279903706265e-02 + 2.851782931145582e-02 2.844295445253672e-02 2.836817458182308e-02 2.829348988995876e-02 2.821890057629359e-02 + 2.814440681221589e-02 2.807000870175516e-02 2.799570646465742e-02 2.792150037589211e-02 2.784739055623231e-02 + 2.777337714638600e-02 2.769946033688953e-02 2.762564030841585e-02 2.755191720229608e-02 2.747829114116882e-02 + 2.740476237631904e-02 2.733133112357609e-02 2.725799748998750e-02 2.718476162641247e-02 2.711162371095654e-02 + 2.703858392279279e-02 2.696564237390275e-02 2.689279920452167e-02 2.682005468428394e-02 2.674740897239565e-02 + 2.667486216835663e-02 2.660241443488607e-02 2.653006594727732e-02 2.645781686062815e-02 2.638566726160998e-02 + 2.631361733435826e-02 2.624166733570949e-02 2.616981737012440e-02 2.609806754771221e-02 2.602641803533937e-02 + 2.595486900051258e-02 2.588342056814261e-02 2.581207282360541e-02 2.574082599292273e-02 2.566968028470076e-02 + 2.559863577456860e-02 2.552769259041796e-02 2.545685089381796e-02 2.538611083889939e-02 2.531547252137675e-02 + 2.524493605061727e-02 2.517450166747065e-02 2.510416952086314e-02 2.503393968681819e-02 2.496381230163825e-02 + 2.489378751859868e-02 2.482386547683629e-02 2.475404624292582e-02 2.468432996264991e-02 2.461471687229032e-02 + 2.454520706873932e-02 2.447580063686782e-02 2.440649771598710e-02 2.433729844997764e-02 2.426820294893469e-02 + 2.419921127712116e-02 2.413032362216684e-02 2.406154017790910e-02 2.399286100816565e-02 2.392428621229386e-02 + 2.385581592554643e-02 2.378745028409909e-02 2.371918936700126e-02 2.365103325041379e-02 2.358298215018098e-02 + 2.351503620457756e-02 2.344719546326070e-02 2.337946004127276e-02 2.331183006962702e-02 2.324430566419196e-02 + 2.317688687789637e-02 2.310957382435168e-02 2.304236671579298e-02 2.297526563441205e-02 2.290827063843882e-02 + 2.284138184722980e-02 2.277459938171355e-02 2.270792333404544e-02 2.264135374860772e-02 2.257489077729924e-02 + 2.250853459738779e-02 2.244228525780410e-02 2.237614283279474e-02 2.231010743473913e-02 2.224417917668724e-02 + 2.217835812285958e-02 2.211264432248330e-02 2.204703795931322e-02 2.198153916317220e-02 2.191614796666107e-02 + 2.185086445220271e-02 2.178568872592581e-02 2.172062089111306e-02 2.165566098457172e-02 2.159080908357505e-02 + 2.152606537366001e-02 2.146142993110024e-02 2.139690279242156e-02 2.133248404619538e-02 2.126817379406035e-02 + 2.120397211607284e-02 2.113987903003668e-02 2.107589465469217e-02 2.101201915594272e-02 2.094825256288664e-02 + 2.088459492231405e-02 2.082104632696408e-02 2.075760686991806e-02 2.069427660166107e-02 2.063105554609518e-02 + 2.056794384972622e-02 2.050494162894281e-02 2.044204890243054e-02 2.037926573000831e-02 2.031659219454509e-02 + 2.025402837653619e-02 2.019157429898307e-02 2.012923000978476e-02 2.006699566765361e-02 2.000487133731908e-02 + 1.994285703240835e-02 1.988095281849638e-02 1.981915877663429e-02 1.975747497137283e-02 1.969590139839621e-02 + 1.963443814246610e-02 1.957308535571834e-02 1.951184305296579e-02 1.945071125524195e-02 1.938969003470093e-02 + 1.932877945979973e-02 1.926797956444602e-02 1.920729035294688e-02 1.914671194302782e-02 1.908624443873623e-02 + 1.902588783798898e-02 1.896564217312377e-02 1.890550750534374e-02 1.884548390173623e-02 1.878557136933607e-02 + 1.872576992282937e-02 1.866607969751645e-02 1.860650074902563e-02 1.854703306920867e-02 1.848767670108510e-02 + 1.842843170242723e-02 1.836929811895166e-02 1.831027593341436e-02 1.825136519709141e-02 1.819256603897189e-02 + 1.813387846842225e-02 1.807530248298604e-02 1.801683812530333e-02 1.795848544988909e-02 1.790024447932676e-02 + 1.784211518704799e-02 1.778409766075985e-02 1.772619199567190e-02 1.766839817113224e-02 1.761071619932593e-02 + 1.755314612276550e-02 1.749568797940397e-02 1.743834176385679e-02 1.738110747126647e-02 1.732398520795971e-02 + 1.726697501687009e-02 1.721007686976607e-02 1.715329079150987e-02 1.709661681774517e-02 1.704005496995066e-02 + 1.698360522175755e-02 1.692726759648597e-02 1.687104219632033e-02 1.681492902190890e-02 1.675892805218375e-02 + 1.670303930866012e-02 1.664726282100333e-02 1.659159859573434e-02 1.653604659349284e-02 1.648060687061485e-02 + 1.642527950537791e-02 1.637006446137386e-02 1.631496172845883e-02 1.625997133117372e-02 1.620509328829045e-02 + 1.615032758053278e-02 1.609567417924041e-02 1.604113316306734e-02 1.598670456411958e-02 1.593238833576510e-02 + 1.587818448257840e-02 1.582409302120838e-02 1.577011395254391e-02 1.571624723647299e-02 1.566249287063067e-02 + 1.560885093721684e-02 1.555532142372995e-02 1.550190428691725e-02 1.544859953345741e-02 1.539540716895692e-02 + 1.534232718045593e-02 1.528935952298772e-02 1.523650422043375e-02 1.518376132655854e-02 1.513113080051426e-02 + 1.507861261080395e-02 1.502620675643192e-02 1.497391324399307e-02 1.492173204313831e-02 1.486966309840608e-02 + 1.481770646058926e-02 1.476586215324725e-02 1.471413011485714e-02 1.466251032223325e-02 1.461100277337298e-02 + 1.455960746411957e-02 1.450832433725036e-02 1.445715335761371e-02 1.440609458945226e-02 1.435514801148310e-02 + 1.430431355790390e-02 1.425359121341204e-02 1.420298097105418e-02 1.415248280845771e-02 1.410209665546564e-02 + 1.405182250942155e-02 1.400166041623447e-02 1.395161031395394e-02 1.390167215017196e-02 1.385184591619880e-02 + 1.380213159317199e-02 1.375252913341631e-02 1.370303846818604e-02 1.365365962256361e-02 1.360439260851619e-02 + 1.355523734898775e-02 1.350619380184460e-02 1.345726194685572e-02 1.340844175819677e-02 1.335973317080697e-02 + 1.331113613029375e-02 1.326265067233158e-02 1.321427676765317e-02 1.316601433678336e-02 1.311786334248669e-02 + 1.306982375879771e-02 1.302189555021592e-02 1.297407863461756e-02 1.292637298076667e-02 1.287877861455418e-02 + 1.283129547339001e-02 1.278392348592105e-02 1.273666261347862e-02 1.268951282495219e-02 1.264247406704279e-02 + 1.259554625321822e-02 1.254872937642621e-02 1.250202343522368e-02 1.245542834900525e-02 1.240894405313941e-02 + 1.236257050462080e-02 1.231630767029411e-02 1.227015547343941e-02 1.222411383176151e-02 1.217818275998809e-02 + 1.213236222220244e-02 1.208665212384520e-02 1.204105241018576e-02 1.199556303854240e-02 1.195018395838791e-02 + 1.190491507365890e-02 1.185975632952753e-02 1.181470773836339e-02 1.176976922480089e-02 1.172494069835479e-02 + 1.168022211004454e-02 1.163561340968965e-02 1.159111452823667e-02 1.154672536811994e-02 1.150244589927961e-02 + 1.145827610670764e-02 1.141421589534856e-02 1.137026518661645e-02 1.132642392502224e-02 1.128269205281729e-02 + 1.123906948383837e-02 1.119555612518262e-02 1.115215196588227e-02 1.110885695891592e-02 1.106567099667937e-02 + 1.102259400831050e-02 1.097962593601935e-02 1.093676671505125e-02 1.089401623812122e-02 1.085137442757511e-02 + 1.080884127911701e-02 1.076641671182367e-02 1.072410061923310e-02 1.068189293399554e-02 1.063979359231152e-02 + 1.059780251428707e-02 1.055591958418482e-02 1.051414475108346e-02 1.047247799305691e-02 1.043091920126454e-02 + 1.038946827795377e-02 1.034812515386981e-02 1.030688975996647e-02 1.026576200007446e-02 1.022474176231751e-02 + 1.018382901647819e-02 1.014302370834395e-02 1.010232571551464e-02 1.006173495028295e-02 1.002125134058496e-02 + 9.980874808217161e-03 9.940605238090998e-03 9.900442533803457e-03 9.860386673211879e-03 9.820437566105797e-03 + 9.780595089730604e-03 9.740859166502601e-03 9.701229717604148e-03 9.661706648486619e-03 9.622289837555094e-03 + 9.582979211676392e-03 9.543774731762645e-03 9.504676285752028e-03 9.465683761437204e-03 9.426797070527869e-03 + 9.388016130061547e-03 9.349340837763126e-03 9.310771071700266e-03 9.272306774287777e-03 9.233947879847340e-03 + 9.195694263233465e-03 9.157545820041815e-03 9.119502462398593e-03 9.081564104605406e-03 9.043730620594144e-03 + 9.006001891771507e-03 8.968377884117109e-03 8.930858503326412e-03 8.893443610144467e-03 8.856133108771761e-03 + 8.818926910576046e-03 8.781824915337199e-03 8.744826984807866e-03 8.707933026764444e-03 8.671142997995955e-03 + 8.634456771198624e-03 8.597874217863410e-03 8.561395247729468e-03 8.525019762147885e-03 8.488747643810387e-03 + 8.452578758551675e-03 8.416513035074836e-03 8.380550402064440e-03 8.344690718755845e-03 8.308933866062409e-03 + 8.273279745485652e-03 8.237728259206089e-03 8.202279277607399e-03 8.166932668725525e-03 8.131688373197346e-03 + 8.096546291813443e-03 8.061506280849479e-03 8.026568229604077e-03 7.991732033790425e-03 7.956997581179438e-03 + 7.922364735477982e-03 7.887833385768220e-03 7.853403460644042e-03 7.819074838170454e-03 7.784847385209607e-03 + 7.750720988388416e-03 7.716695538073770e-03 7.682770912288046e-03 7.648946965667346e-03 7.615223607644973e-03 + 7.581600758648286e-03 7.548078272068747e-03 7.514656018308716e-03 7.481333888256649e-03 7.448111767084748e-03 + 7.414989518558892e-03 7.381967002509678e-03 7.349044141005179e-03 7.316220829119200e-03 7.283496916229069e-03 + 7.250872276568530e-03 7.218346796125786e-03 7.185920358959778e-03 7.153592811909379e-03 7.121364026156801e-03 + 7.089233934032213e-03 7.057202401526107e-03 7.025269274784423e-03 6.993434437254338e-03 6.961697770726437e-03 + 6.930059144137623e-03 6.898518406074085e-03 6.867075445461445e-03 6.835730169890301e-03 6.804482436531050e-03 + 6.773332103630715e-03 6.742279042830752e-03 6.711323134446215e-03 6.680464239400761e-03 6.649702204950062e-03 + 6.619036937093537e-03 6.588468325547939e-03 6.557996212108587e-03 6.527620458965777e-03 6.497340941897300e-03 + 6.467157538628341e-03 6.437070090473932e-03 6.407078453159759e-03 6.377182548096138e-03 6.347382238649846e-03 + 6.317677359750170e-03 6.288067782822399e-03 6.258553381641384e-03 6.229134019133821e-03 6.199809533909972e-03 + 6.170579803332374e-03 6.141444731866248e-03 6.112404164377095e-03 6.083457948651627e-03 6.054605954063168e-03 + 6.025848047899531e-03 5.997184082520315e-03 5.968613898555075e-03 5.940137388272029e-03 5.911754435973001e-03 + 5.883464876798197e-03 5.855268565478542e-03 5.827165369238958e-03 5.799155152943781e-03 5.771237757858197e-03 + 5.743413031370796e-03 5.715680873423079e-03 5.688041146137241e-03 5.660493683352233e-03 5.633038344713090e-03 + 5.605674994693767e-03 5.578403490874967e-03 5.551223666073857e-03 5.524135383482108e-03 5.497138538622371e-03 + 5.470232973711985e-03 5.443418527865922e-03 5.416695061766649e-03 5.390062436684385e-03 5.363520500801443e-03 + 5.337069085950208e-03 5.310708070645691e-03 5.284437334686721e-03 5.258256709167105e-03 5.232166039984466e-03 + 5.206165186351173e-03 5.180254006079314e-03 5.154432337116667e-03 5.128700017566677e-03 5.103056934758595e-03 + 5.077502948400768e-03 5.052037887552509e-03 5.026661602896529e-03 5.001373950974750e-03 4.976174783805283e-03 + 4.951063931174483e-03 4.926041244835856e-03 4.901106610871052e-03 4.876259869861805e-03 4.851500854152867e-03 + 4.826829416485723e-03 4.802245411238555e-03 4.777748682676776e-03 4.753339057595283e-03 4.729016402174706e-03 + 4.704780591018902e-03 4.680631452386119e-03 4.656568824906738e-03 4.632592561043116e-03 4.608702512089780e-03 + 4.584898512841469e-03 4.561180394112987e-03 4.537548032865621e-03 4.514001286180084e-03 4.490539978046344e-03 + 4.467163952568486e-03 4.443873060291688e-03 4.420667147623122e-03 4.397546041481102e-03 4.374509584352294e-03 + 4.351557654555007e-03 4.328690090868674e-03 4.305906719484884e-03 4.283207387010587e-03 4.260591942258349e-03 + 4.238060226010617e-03 4.215612060889534e-03 4.193247302342208e-03 4.170965820265097e-03 4.148767441443334e-03 + 4.126651998168965e-03 4.104619336614093e-03 4.082669303050944e-03 4.060801730082235e-03 4.039016442831475e-03 + 4.017313308452854e-03 3.995692181792875e-03 3.974152883344686e-03 3.952695251163741e-03 3.931319130911208e-03 + 3.910024364917125e-03 3.888810777810686e-03 3.867678204037116e-03 3.846626514691173e-03 3.825655547709963e-03 + 3.804765124734014e-03 3.783955087456414e-03 3.763225279741349e-03 3.742575538839424e-03 3.722005684569956e-03 + 3.701515563829318e-03 3.681105042529648e-03 3.660773945892437e-03 3.640522100973796e-03 3.620349349516141e-03 + 3.600255533338096e-03 3.580240483202974e-03 3.560304020332013e-03 3.540446002992503e-03 3.520666284206718e-03 + 3.500964682823155e-03 3.481341031384374e-03 3.461795171007476e-03 3.442326941040924e-03 3.422936165061433e-03 + 3.403622671201535e-03 3.384386323473485e-03 3.365226959961049e-03 3.346144399498565e-03 3.327138478378434e-03 + 3.308209036536853e-03 3.289355909461925e-03 3.270578915351533e-03 3.251877893639187e-03 3.233252706195778e-03 + 3.214703178029928e-03 3.196229132118811e-03 3.177830406368320e-03 3.159506839403438e-03 3.141258260810600e-03 + 3.123084488811596e-03 3.104985374197366e-03 3.086960768611876e-03 3.069010490077185e-03 3.051134366997480e-03 + 3.033332237019262e-03 3.015603936903380e-03 2.997949290147841e-03 2.980368120588831e-03 2.962860285290425e-03 + 2.945425622240710e-03 2.928063948810786e-03 2.910775098113858e-03 2.893558906982335e-03 2.876415208617919e-03 + 2.859343821344898e-03 2.842344578930633e-03 2.825417338731532e-03 2.808561926446875e-03 2.791778162629514e-03 + 2.775065882662152e-03 2.758424922052246e-03 2.741855109318431e-03 2.725356262118107e-03 2.708928224810950e-03 + 2.692570847204586e-03 2.676283947708203e-03 2.660067352018658e-03 2.643920895408666e-03 2.627844412630983e-03 + 2.611837727127577e-03 2.595900659591014e-03 2.580033062057212e-03 2.564234773200918e-03 2.548505609580814e-03 + 2.532845401329118e-03 2.517253983314282e-03 2.501731188088862e-03 2.486276834298587e-03 2.470890751027053e-03 + 2.455572791828030e-03 2.440322784214469e-03 2.425140547489158e-03 2.410025914370114e-03 2.394978718743150e-03 + 2.379998789312335e-03 2.365085943631231e-03 2.350240020749269e-03 2.335460868942443e-03 2.320748308349550e-03 + 2.306102163022297e-03 2.291522266200105e-03 2.277008450857895e-03 2.262560541519312e-03 2.248178358404482e-03 + 2.233861748393963e-03 2.219610550590767e-03 2.205424582540762e-03 2.191303672653564e-03 2.177247654150935e-03 + 2.163256358437406e-03 2.149329606085116e-03 2.135467224025938e-03 2.121669062135428e-03 2.107934949596006e-03 + 2.094264705479671e-03 2.080658161247730e-03 2.067115150052171e-03 2.053635501035216e-03 2.040219032033609e-03 + 2.026865578574763e-03 2.013574988607888e-03 2.000347084189316e-03 1.987181688126059e-03 1.974078632294973e-03 + 1.961037750159034e-03 1.948058867783843e-03 1.935141804192390e-03 1.922286403096425e-03 1.909492504980594e-03 + 1.896759928265229e-03 1.884088500763132e-03 1.871478055631251e-03 1.858928424089599e-03 1.846439428400912e-03 + 1.834010894228015e-03 1.821642669213327e-03 1.809334584628213e-03 1.797086460037203e-03 1.784898126770644e-03 + 1.772769417737367e-03 1.760700162615002e-03 1.748690181778845e-03 1.736739308394668e-03 1.724847388831493e-03 + 1.713014248130287e-03 1.701239709792772e-03 1.689523605558227e-03 1.677865768960374e-03 1.666266027776910e-03 + 1.654724201747776e-03 1.643240132443950e-03 1.631813662093462e-03 1.620444610863358e-03 1.609132806416696e-03 + 1.597878082462674e-03 1.586680271167799e-03 1.575539197124769e-03 1.564454685806544e-03 1.553426583192850e-03 + 1.542454723186195e-03 1.531538926942232e-03 1.520679025889417e-03 1.509874853790604e-03 1.499126242122267e-03 + 1.488433013507451e-03 1.477795000037597e-03 1.467212048115432e-03 1.456683985464255e-03 1.446210636719452e-03 + 1.435791835117153e-03 1.425427414393694e-03 1.415117204211151e-03 1.404861027594662e-03 1.394658724273689e-03 + 1.384510137356095e-03 1.374415090575271e-03 1.364373412382042e-03 1.354384937246215e-03 1.344449499301808e-03 + 1.334566925970926e-03 1.324737043332181e-03 1.314959696939330e-03 1.305234723823342e-03 1.295561947265019e-03 + 1.285941199528206e-03 1.276372315963847e-03 1.266855130463658e-03 1.257389468322312e-03 1.247975161599065e-03 + 1.238612057815808e-03 1.229299987951490e-03 1.220038778115428e-03 1.210828263449681e-03 1.201668279419893e-03 + 1.192558658328712e-03 1.183499226491516e-03 1.174489822883548e-03 1.165530291825810e-03 1.156620461345326e-03 + 1.147760161971411e-03 1.138949229776032e-03 1.130187500878873e-03 1.121474806129454e-03 1.112810973708310e-03 + 1.104195848566657e-03 1.095629271185936e-03 1.087111069073448e-03 1.078641075658101e-03 1.070219127753748e-03 + 1.061845062287274e-03 1.053518708913237e-03 1.045239900848634e-03 1.037008485418972e-03 1.028824298155823e-03 + 1.020687168641753e-03 1.012596933141099e-03 1.004553429894111e-03 9.965564952721074e-04 9.886059579764911e-04 + 9.807016577383673e-04 9.728434421263681e-04 9.650311428619217e-04 9.572645925441391e-04 9.495436296868831e-04 + 9.418680934992058e-04 9.342378189983833e-04 9.266526374013966e-04 9.191123940951565e-04 9.116169327210938e-04 + 9.041660846048507e-04 8.967596865276394e-04 8.893975784458786e-04 8.820795994475233e-04 8.748055834052338e-04 + 8.675753662309574e-04 8.603887967412885e-04 8.532457145816050e-04 8.461459528881801e-04 8.390893515597134e-04 + 8.320757512954288e-04 8.251049910410551e-04 8.181769052102455e-04 8.112913354889369e-04 8.044481307476467e-04 + 7.976471276304203e-04 7.908881626723219e-04 7.841710779271092e-04 7.774957151422038e-04 7.708619131557394e-04 + 7.642695077220146e-04 7.577183458379644e-04 7.512082748417916e-04 7.447391309361296e-04 7.383107537219758e-04 + 7.319229861740803e-04 7.255756719189899e-04 7.192686493738265e-04 7.130017570250109e-04 7.067748463319056e-04 + 7.005877618919097e-04 6.944403408515077e-04 6.883324261093659e-04 6.822638623160529e-04 6.762344932684062e-04 + 6.702441573916524e-04 6.642926986443232e-04 6.583799694858947e-04 6.525058122102392e-04 6.466700672293728e-04 + 6.408725793807691e-04 6.351131947715911e-04 6.293917574305099e-04 6.237081070877600e-04 6.180620932909059e-04 + 6.124535677685099e-04 6.068823714677426e-04 6.013483481700967e-04 5.958513451670206e-04 5.903912096703989e-04 + 5.849677853780454e-04 5.795809154020751e-04 5.742304534677881e-04 5.689162489783443e-04 5.636381442526738e-04 + 5.583959863498279e-04 5.531896240506697e-04 5.480189055622431e-04 5.428836748799696e-04 5.377837797240800e-04 + 5.327190759830209e-04 5.276894110958636e-04 5.226946300477827e-04 5.177345825024617e-04 5.128091188465486e-04 + 5.079180879528710e-04 5.030613351067660e-04 4.982387130290541e-04 4.934500776624026e-04 4.886952758062522e-04 + 4.839741558713263e-04 4.792865695826084e-04 4.746323688630657e-04 4.700114029595036e-04 4.654235198613055e-04 + 4.608685766627245e-04 4.563464280591107e-04 4.518569219186994e-04 4.473999099762359e-04 4.429752457691277e-04 + 4.385827824909558e-04 4.342223700107388e-04 4.298938604566902e-04 4.255971135329090e-04 4.213319826090788e-04 + 4.170983180859963e-04 4.128959744299958e-04 4.087248069577171e-04 4.045846700338900e-04 4.004754147907325e-04 + 3.963968979642262e-04 3.923489801919561e-04 3.883315144592717e-04 3.843443544269981e-04 3.803873568608614e-04 + 3.764603788261386e-04 3.725632754784107e-04 3.686959004384349e-04 3.648581147870281e-04 3.610497787686854e-04 + 3.572707463878945e-04 3.535208745539621e-04 3.498000220657478e-04 3.461080477383748e-04 3.424448076363575e-04 + 3.388101589386426e-04 3.352039657815740e-04 3.316260877532703e-04 3.280763812137888e-04 3.245547060139738e-04 + 3.210609229167205e-04 3.175948921405597e-04 3.141564711604799e-04 3.107455215081982e-04 3.073619088757455e-04 + 3.040054927848886e-04 3.006761327105527e-04 2.973736909925681e-04 2.940980303881470e-04 2.908490123115160e-04 + 2.876264965105581e-04 2.844303488008553e-04 2.812604353029198e-04 2.781166164989417e-04 2.749987551423296e-04 + 2.719067158817455e-04 2.688403633742989e-04 2.657995602462465e-04 2.627841695326067e-04 2.597940603791381e-04 + 2.568290988582687e-04 2.538891477672460e-04 2.509740728301346e-04 2.480837407612393e-04 2.452180180501483e-04 + 2.423767689150773e-04 2.395598604007145e-04 2.367671637065971e-04 2.339985452156380e-04 2.312538707417314e-04 + 2.285330086975239e-04 2.258358279521211e-04 2.231621965330517e-04 2.205119809474630e-04 2.178850522930381e-04 + 2.152812827957872e-04 2.127005401044592e-04 2.101426932429596e-04 2.076076129630843e-04 2.050951703707553e-04 + 2.026052350574154e-04 2.001376764695323e-04 1.976923692963255e-04 1.952691863631026e-04 1.928679973631469e-04 + 1.904886744667185e-04 1.881310908124045e-04 1.857951194428946e-04 1.834806317739651e-04 1.811875010647571e-04 + 1.789156043640377e-04 1.766648152326652e-04 1.744350063601967e-04 1.722260526922104e-04 1.700378296945535e-04 + 1.678702123432160e-04 1.657230742438847e-04 1.635962925697728e-04 1.614897461072756e-04 1.594033097074569e-04 + 1.573368592094730e-04 1.552902721810668e-04 1.532634264532060e-04 1.512561988693490e-04 1.492684659352835e-04 + 1.473001083560244e-04 1.453510059716440e-04 1.434210358729406e-04 1.415100771164913e-04 1.396180097223186e-04 + 1.377447137267307e-04 1.358900680130841e-04 1.340539526362652e-04 1.322362510498252e-04 1.304368442346035e-04 + 1.286556121626104e-04 1.268924368411170e-04 1.251472007379926e-04 1.234197860690376e-04 1.217100740639766e-04 + 1.200179485071157e-04 1.183432949752447e-04 1.166859960758634e-04 1.150459349477667e-04 1.134229962637926e-04 + 1.118170649981152e-04 1.102280255615328e-04 1.086557620076939e-04 1.071001616642248e-04 1.055611117192228e-04 + 1.040384970703678e-04 1.025322040262462e-04 1.010421198490596e-04 9.956813202096472e-05 9.811012722455996e-05 + 9.666799283658755e-05 9.524161921027426e-05 9.383089505710078e-05 9.243570803818307e-05 9.105594759252440e-05 + 8.969150364397068e-05 8.834226604286881e-05 8.700812397260034e-05 8.568896841419017e-05 8.438469212608002e-05 + 8.309518568825200e-05 8.182033994906239e-05 8.056004718218619e-05 7.931419998170841e-05 7.808269064296404e-05 + 7.686541112857092e-05 7.566225594198306e-05 7.447311991364301e-05 7.329789600792314e-05 7.213647827366786e-05 + 7.098876170896106e-05 6.985464163907488e-05 6.873401282606521e-05 6.762677039259616e-05 6.653281205307769e-05 + 6.545203459530543e-05 6.438433381335806e-05 6.332960688869456e-05 6.228775159650499e-05 6.125866586213212e-05 + 6.024224709312662e-05 5.923839394811549e-05 5.824700680510711e-05 5.726798458845817e-05 5.630122626966778e-05 + 5.534663202079377e-05 5.440410243697520e-05 5.347353805513213e-05 5.255483915897720e-05 5.164790790372327e-05 + 5.075264706713765e-05 4.986895809670387e-05 4.899674321102013e-05 4.813590548272275e-05 4.728634834520723e-05 + 4.644797500988253e-05 4.562068892036128e-05 4.480439551815946e-05 4.399899988301035e-05 4.320440633696577e-05 + 4.242052030402665e-05 4.164724778526068e-05 4.088449502887978e-05 4.013216802138054e-05 3.939017361734100e-05 + 3.865842020891389e-05 3.793681530287127e-05 3.722526637683801e-05 3.652368195642655e-05 3.583197100166348e-05 + 3.515004257550265e-05 3.447780563338777e-05 3.381517049939420e-05 3.316204825033269e-05 3.251834908257212e-05 + 3.188398376275541e-05 3.125886384349450e-05 3.064290126992314e-05 3.003600797392098e-05 2.943809607683111e-05 + 2.884907925556903e-05 2.826887119646782e-05 2.769738505988399e-05 2.713453488302094e-05 2.658023526748751e-05 + 2.603440114263312e-05 2.549694738792051e-05 2.496778949423694e-05 2.444684425976710e-05 2.393402805764408e-05 + 2.342925723948219e-05 2.293244905822871e-05 2.244352120797989e-05 2.196239159983278e-05 2.148897818423003e-05 + 2.102319990982268e-05 2.056497650699234e-05 2.011422722229805e-05 1.967087173846936e-05 1.923483045310688e-05 + 1.880602417859793e-05 1.838437386840237e-05 1.796980069033951e-05 1.756222699777835e-05 1.716157539169325e-05 + 1.676776819323897e-05 1.638072842752046e-05 1.600037965967140e-05 1.562664583506045e-05 1.525945101785764e-05 + 1.489871974108943e-05 1.454437762041471e-05 1.419635018600421e-05 1.385456300630342e-05 1.351894241351905e-05 + 1.318941519258516e-05 1.286590843459537e-05 1.254834939298960e-05 1.223666606495489e-05 1.193078719950152e-05 + 1.163064137727749e-05 1.133615754527981e-05 1.104726530816775e-05 1.076389469662666e-05 1.048597599093073e-05 + 1.021343974753131e-05 9.946217419267380e-06 9.684240838620889e-06 9.427441790773100e-06 9.175752643853506e-06 + 8.929106280098344e-06 8.687435997194528e-06 8.450675338936148e-06 8.218758257424963e-06 7.991619584870982e-06 + 7.769194298227330e-06 7.551417507621627e-06 7.338224987041431e-06 7.129552955942858e-06 6.925337997222138e-06 + 6.725516977155444e-06 6.530027335862672e-06 6.338807194551445e-06 6.151794769434223e-06 5.968928615355085e-06 + 5.790147878391894e-06 5.615392155261267e-06 5.444601365246586e-06 5.277715758699128e-06 5.114676291438329e-06 + 4.955424365336747e-06 4.799901525655197e-06 4.648049820836300e-06 4.499811793985402e-06 4.355130438087899e-06 + 4.213949069835453e-06 4.076211399540344e-06 3.941861865039729e-06 3.810845196499976e-06 3.683106361660463e-06 + 3.558590910585118e-06 3.437244835818923e-06 3.319014541070219e-06 3.203846795533912e-06 3.091688852089737e-06 + 2.982488579295818e-06 2.876194109656037e-06 2.772753925582794e-06 2.672117063800105e-06 2.574233014808049e-06 + 2.479051643033932e-06 2.386523210361943e-06 2.296598552297165e-06 2.209228971591383e-06 2.124366069775506e-06 + 2.041961906232304e-06 1.961969019732135e-06 1.884340423438541e-06 1.809029507182080e-06 1.735990071613592e-06 + 1.665176534356502e-06 1.596543687803830e-06 1.530046658503296e-06 1.465641105678908e-06 1.403283128309336e-06 + 1.342929271825179e-06 1.284536503035511e-06 1.228062233226246e-06 1.173464436795038e-06 1.120701460082181e-06 + 1.069732028902882e-06 1.020515399241352e-06 9.730112822753146e-07 9.271798002921477e-07 8.829815278752155e-07 + 8.403775374680640e-07 7.993293716485992e-07 7.597989809176624e-07 7.217487560416926e-07 6.851415619710593e-07 + 6.499407524191172e-07 6.161100929136179e-07 5.836137918783888e-07 5.524166028233452e-07 5.224836968385216e-07 + 4.937806609639881e-07 4.662735849361845e-07 4.399289991547822e-07 4.147139110260500e-07 3.905957813609555e-07 + 3.675425084859321e-07 3.455225231396512e-07 3.245046871736890e-07 3.044582778536548e-07 2.853530928283095e-07 + 2.671593859185241e-07 2.498478511400059e-07 2.333896726605378e-07 2.177564985206194e-07 2.029204500538344e-07 + 1.888541210793108e-07 1.755305458522738e-07 1.629232393506973e-07 1.510062144201093e-07 1.397539174372155e-07 + 1.291412703741045e-07 1.191437050672961e-07 1.097370923617762e-07 1.008977778162274e-07 9.260259669902208e-08 + 8.482883141984319e-08 7.755426670738778e-08 7.075715683240311e-08 6.441620467100832e-08 5.851063608240125e-08 + 5.302013495440350e-08 4.792483459927075e-08 4.320538955913144e-08 3.884291294265582e-08 3.481898425658018e-08 + 3.111569527451850e-08 2.771559342817648e-08 2.460171067137196e-08 2.175758348333717e-08 1.916719757773861e-08 + 1.681503457183268e-08 1.468607978947252e-08 1.276576812429566e-08 1.104003874048358e-08 9.495328649625366e-09 + 8.118528715645258e-09 6.897042498203040e-09 5.818760232281117e-09 4.872032311209139e-09 4.045732447740840e-09 + 3.329210679517489e-09 2.712284881132093e-09 2.185301687016959e-09 1.739076161987666e-09 1.364901589086205e-09 + 1.054599065845252e-09 8.004535320102697e-10 5.952414597054672e-10 4.322622496028902e-10 3.052766304104823e-10 + 2.085502003918036e-10 1.368642901349301e-10 8.546164059834664e-11 5.010215808832263e-11 2.705311520847365e-11 + 1.304599438344934e-11 5.339090781311160e-12 1.692041320615927e-12 3.321208355096226e-13 6.781366937015517e-15 diff --git a/examples/SPIN/cobalt_hcp/exchange_fit_hcp_co/exchange_fit.py b/examples/SPIN/cobalt_hcp/exchange_fit_hcp_co/exchange_fit.py new file mode 100644 index 0000000000..fa7dba417e --- /dev/null +++ b/examples/SPIN/cobalt_hcp/exchange_fit_hcp_co/exchange_fit.py @@ -0,0 +1,32 @@ +#Program fitting the exchange interaction +#Model curve: Bethe-Slater function +import numpy as np, pylab, tkinter +import matplotlib.pyplot as plt +from scipy.optimize import curve_fit +from decimal import * + +print("Loop begin") + +#Definition of the Bethe-Slater function +def func(x,a,b,c): + return 4*a*((x/c)**2)*(1-b*(x/c)**2)*np.exp(-(x/c)**2) + +#Exchange coeff table (data to fit) +rdata, Jdata = np.loadtxt('exchange_hcp_co.dat', usecols=(0,1), unpack=True) +plt.plot(rdata, Jdata, 'b-', label='data') + +#Perform the fit +popt, pcov = curve_fit(func, rdata, Jdata, bounds=(0, [500.,5.,5.])) +plt.plot(rdata, func(rdata, *popt), 'r--', label='fit') + +#Print the fitted params +print("Parameters: a={:.10} (in meV), b={:.10} (adim), c={:.10} (in Ang)".format(*popt)) + +#Ploting the result +plt.xlabel('r_ij') +pylab.xlim([0,6.5]) +plt.ylabel('J_ij') +plt.legend() +plt.show() + +print("Loop end") diff --git a/examples/SPIN/cobalt_hcp/exchange_fit_hcp_co/exchange_hcp_co.dat b/examples/SPIN/cobalt_hcp/exchange_fit_hcp_co/exchange_hcp_co.dat new file mode 100644 index 0000000000..0968fa3edb --- /dev/null +++ b/examples/SPIN/cobalt_hcp/exchange_fit_hcp_co/exchange_hcp_co.dat @@ -0,0 +1,9 @@ +2.25569176882662 73.37931034482759 +2.3817863397548162 47.99999999999999 +2.4518388791593697 34.39080459770115 +2.507880910683012 31.816091954022987 +2.5359019264448337 28.137931034482747 +2.5779334500875657 25.011494252873554 +2.6339754816112086 19.126436781609186 +2.760070052539404 13.241379310344826 +3.5446584938704033 6.068965517241367 diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp new file mode 100644 index 0000000000..68a9316e3b --- /dev/null +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -0,0 +1,60 @@ +# fcc cobalt in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# check why? +atom_modify map array + +#lattice hcp 2.5071 2.5071 4.0695 +lattice hcp 2.5071 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +create_atoms 1 box + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.93 + +set group all spin/random 31 1.72 +velocity all create 100 4928459 rot yes dist gaussian + +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_coeff * * eam/alloy ../examples/SPIN/cobalt_hcp/Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * pair/spin/exchange exchange 4.0 0.3593 1.135028015e-05 1.064568567 +#pair_coeff * * pair/spin/soc/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all force/spin zeeman 0.01 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all integration/spin lattice yes + +timestep 0.0001 + + +compute out_mag all compute/spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] +variable mag_force equal f_1 + +thermo_style custom step time v_magnorm v_emag temp etotal +thermo 10 + +dump 1 all custom 50 dump_cobalt.lammpstrj type x y z spx spy spz + +run 1000 + diff --git a/examples/SPIN/dev/in.spin.cobalt b/examples/SPIN/dev/in.spin.cobalt index bdb71523e0..8ab9843174 100644 --- a/examples/SPIN/dev/in.spin.cobalt +++ b/examples/SPIN/dev/in.spin.cobalt @@ -48,8 +48,8 @@ velocity all create 200 4928459 rot yes dist gaussian #Magneto-mechanic interactions for bulk fcc Cobalt #pair_style pair/spin/exchange 4.0 #pair_style eam/alloy -#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 -pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 +pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair/spin/soc/neel 4.0 +#pair_style hybrid/overlay eam/alloy pair/spin/exchange 4.0 pair_coeff * * eam/alloy ../examples/SPIN/dev/Co_PurjaPun_2012.eam.alloy Co #pair_coeff * * ../Co_PurjaPun_2012.eam.alloy Co @@ -69,7 +69,7 @@ pair_coeff * * pair/spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 #type i and j | interaction type | cutoff | K1 (eV) | K2 (adim) | K3 (Ang) (for SOC) #pair_coeff * * pair/spin/soc/neel neel 4.0 0.003330282 0.864159 2.13731 -#pair_coeff * * pair/spin/soc/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 +pair_coeff * * pair/spin/soc/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 #pair_coeff * * pair/spin/soc/neel neel 4.0 0.0 0.864159 2.13731 @@ -81,13 +81,13 @@ neigh_modify every 10 check yes delay 20 #Magnetic field fix #Type | Intensity (T or eV) | Direction -fix 1 all force/spin zeeman 10.0 0.0 0.0 1.0 +fix 1 all force/spin zeeman 0.0 0.0 0.0 1.0 #fix 1 all force/spin anisotropy 0.01 0.0 0.0 1.0 #Fix Langevin spins (merging damping and temperature) #Temp | Alpha_trans | Alpha_long | Seed -#fix 2 all langevin/spin 0.0 0.1 0.0 21 -fix 2 all langevin/spin 0.0 0.1 21 +#fix 2 all langevin/spin 0.0 0.1 21 +fix 2 all langevin/spin 0.0 0.0 21 #Magnetic integration fix fix 3 all integration/spin lattice yes @@ -116,8 +116,8 @@ variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] thermo 50 -thermo_style custom step time v_magx v_magy v_magy v_magnorm v_emag v_tmag -#thermo_style custom step time pe ke v_emag +#thermo_style custom step time v_magx v_magy v_magy v_magnorm v_emag v_tmag +thermo_style custom step time pe ke v_emag etotal thermo_modify format float %20.15g #Dump the positions and spin directions of magnetic particles (vmd format) @@ -125,5 +125,5 @@ thermo_modify format float %20.15g #Running the simulations for N timesteps #run 10 -run 100 +run 20000 diff --git a/src/SPIN/fix_integration_spin.cpp b/src/SPIN/fix_integration_spin.cpp index b5b0247a35..7581546f3e 100644 --- a/src/SPIN/fix_integration_spin.cpp +++ b/src/SPIN/fix_integration_spin.cpp @@ -40,7 +40,6 @@ #include "pair_spin_me.h" #include "pair_spin_soc_dmi.h" #include "pair_spin_soc_neel.h" -#include "pair_spin_soc_landau.h" #include "respa.h" #include "update.h" diff --git a/src/SPIN/pair_spin_soc_neel.cpp b/src/SPIN/pair_spin_soc_neel.cpp index 847995abbc..346edc15b8 100755 --- a/src/SPIN/pair_spin_soc_neel.cpp +++ b/src/SPIN/pair_spin_soc_neel.cpp @@ -220,11 +220,12 @@ void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double eij[3], q1ij *= exp(-ra); q2ij = (-2.0*q1ij/9.0); - pq1x = -(scalar_eij_si*scalar_eij_si - scalar_si_sj/3.0)*spj[0]/3.0; - pq1y = -(scalar_eij_si*scalar_eij_si - scalar_si_sj/3.0)*spj[1]/3.0; - pq1z = -(scalar_eij_si*scalar_eij_si - scalar_si_sj/3.0)*spj[2]/3.0; + double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; + pq1x = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[0]/3.0; + pq1y = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[1]/3.0; + pq1z = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[2]/3.0; - double pqt1 = scalar_eij_sj*scalar_eij_sj-scalar_si_sj/3.0; + double pqt1 = (scalar_eij_sj*scalar_eij_sj-scalar_si_sj/3.0); pq1x += pqt1*(2.0*scalar_eij_si*eij[0] - spj[0]/3.0); pq1y += pqt1*(2.0*scalar_eij_si*eij[1] - spj[1]/3.0); pq1z += pqt1*(2.0*scalar_eij_si*eij[2] - spj[2]/3.0); @@ -233,7 +234,6 @@ void PairSpinSocNeel::compute_soc_neel(int i, int j, double rsq, double eij[3], pq1y *= q1ij; pq1z *= q1ij; - double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; pq2x = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[0] + scalar_eij_sj_3*eij[0]; pq2y = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[1] + scalar_eij_sj_3*eij[1]; @@ -286,8 +286,6 @@ void PairSpinSocNeel::compute_soc_mech_neel(int i, int j, double rsq, double eij dgij = 1.0-ra-g2[itype][jtype]*ra*(2.0-ra); dgij *= 8.0*g_mech*rr*exp(-ra); - // this 2.0*gij/drij is in Beaujouan calc. but not recovered yet - //double pdt1 = dgij*scalar_eij_si*scalar_eij_sj; double pdt1 = (dgij-2.0*gij/drij)*scalar_eij_si*scalar_eij_sj; pdt1 -= scalar_si_sj*dgij/3.0; double pdt2 = scalar_eij_sj*gij/drij; @@ -323,13 +321,20 @@ void PairSpinSocNeel::compute_soc_mech_neel(int i, int j, double rsq, double eij double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; double scalar_si_sj_2 = scalar_si_sj*scalar_si_sj; - double pqt3 = 2.0*scalar_eij_si*scalar_eij_sj_3/drij; +/* double pqt3 = 2.0*scalar_eij_si*scalar_eij_sj_3/drij; double pqt4 = 2.0*scalar_eij_sj*scalar_eij_si_3/drij; double pqt5 = -2.0*scalar_si_sj*scalar_eij_si/(3.0*drij); double pqt6 = -2.0*scalar_si_sj*scalar_eij_sj/(3.0*drij); +// pq1x += q1ij*(spi[0]*(pqt3+pqt6) + spj[0]*(pqt4+)); pq1x += q1ij*(pqt3*spi[0]+pqt4*spj[0]+pqt5*spi[0]+pqt6*spi[0]); pq1y += q1ij*(pqt3*spi[1]+pqt4*spj[1]+pqt5*spi[1]+pqt6*spj[1]); pq1z += q1ij*(pqt3*spi[2]+pqt4*spj[2]+pqt5*spi[2]+pqt6*spj[2]); +*/ + double pqt3 = 2.0*scalar_eij_si*(scalar_eij_sj_2-scalar_si_sj/3.0)/drij; + double pqt4 = 2.0*scalar_eij_sj*(scalar_eij_si_2-scalar_si_sj/3.0)/drij; + pq1x += q1ij*(pqt3*spi[0] + pqt4*spj[0]); + pq1y += q1ij*(pqt3*spi[1] + pqt4*spj[1]); + pq1z += q1ij*(pqt3*spi[2] + pqt4*spj[2]); double pqt7 = 4.0*scalar_eij_si_2*scalar_eij_sj_2/drij; double pqt8 = 2.0*scalar_si_sj_2*scalar_eij_sj/(3.0*drij); double pqt9 = 2.0*scalar_si_sj_2*scalar_eij_si/(3.0*drij); @@ -337,11 +342,22 @@ void PairSpinSocNeel::compute_soc_mech_neel(int i, int j, double rsq, double eij pq1y -= q1ij*(pqt7 + pqt8 + pqt9)*eij[1]; pq1z -= q1ij*(pqt7 + pqt8 + pqt9)*eij[2]; +/* + double pqt3 = 2.0*scalar_eij_si*(scalar_eij_sj_2-scalar_si_sj/3.0)/drij; + double pqt4 = 2.0*scalar_eij_sj*(scalar_eij_si_2-scalar_si_sj/3.0)/drij; + pq1x += q1ij*(pqt3*spi[0] + pqt4*spj[0]); + pq1y += q1ij*(pqt3*spi[1] + pqt4*spj[1]); + pq1z += q1ij*(pqt3*spi[2] + pqt4*spj[2]); +*/ + + //double scalar_eij_si_3 = scalar_eij_si*scalar_eij_si*scalar_eij_si; + //double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; double pqt10 = scalar_eij_sj*scalar_eij_si_3; double pqt11 = scalar_eij_si*scalar_eij_sj_3; pq2x = dq2ij*(pqt10 + pqt11)*eij[0]; pq2y = dq2ij*(pqt10 + pqt11)*eij[1]; pq2z = dq2ij*(pqt10 + pqt11)*eij[2]; + double pqt12 = scalar_eij_si_3/drij; double pqt13 = scalar_eij_sj_3/drij; double pqt14 = 3.0*scalar_eij_sj*scalar_eij_si_2/drij; From 2a3b93ca3dd33cb9e67df3f08d25dd173319d8a5 Mon Sep 17 00:00:00 2001 From: julient31 Date: Tue, 20 Mar 2018 11:30:19 -0600 Subject: [PATCH 079/675] First commits last version doc --- .../fix_integration_spin_stdecomposition.jpg | Bin 61028 -> 171962 bytes doc/src/Eqs/fix_langevin_spin_sLLG.jpg | Bin 10824 -> 25663 bytes doc/src/Eqs/force_spin_aniso.jpg | Bin 8079 -> 18405 bytes doc/src/Eqs/force_spin_zeeman.jpg | Bin 7483 -> 20886 bytes doc/src/Eqs/pair_spin_exchange_forces.jpg | Bin 16283 -> 43983 bytes doc/src/Eqs/pair_spin_exchange_function.jpg | Bin 13642 -> 32386 bytes .../Eqs/pair_spin_exchange_interaction.jpg | Bin 7154 -> 20969 bytes doc/src/Eqs/pair_spin_me_forces.jpg | Bin 15552 -> 42008 bytes doc/src/Eqs/pair_spin_me_interaction.jpg | Bin 17288 -> 23008 bytes doc/src/Eqs/pair_spin_soc_dmi_interaction.jpg | Bin 8128 -> 21251 bytes doc/src/fix_langevin_spin.txt | 2 +- examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc | 6 ++-- .../exchange_bcc_iron.dat | 3 ++ .../exchange_fit_bcc_iron/exchange_fit.py | 32 ++++++++++++++++++ examples/SPIN/iron/in.spin.iron | 8 ++--- 15 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 examples/SPIN/iron/exchange_fit_bcc_iron/exchange_bcc_iron.dat create mode 100644 examples/SPIN/iron/exchange_fit_bcc_iron/exchange_fit.py diff --git a/doc/src/Eqs/fix_integration_spin_stdecomposition.jpg b/doc/src/Eqs/fix_integration_spin_stdecomposition.jpg index c2a4d50eaf1456e56c03bcf41dd85830e9f41c7e..566b21544a912117f111d9b1e79090e9f41138b3 100644 GIT binary patch literal 171962 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

k<#!7JN$Jw!&x9F-@E6?u}F7i(EEmTM&t3Wi#WS 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 GTmD~HIFsxE literal 8079 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 diff --git a/doc/src/Eqs/force_spin_zeeman.jpg b/doc/src/Eqs/force_spin_zeeman.jpg index 51081df0015e6203c0a85ffed743f0e93d5b1f4c..424460970b13da25a6ab3e11c7db5d34c72dd395 100644 GIT binary patch literal 20886 zcmc$_1#}!s(k9w1W@fUOnaN^imMmtLEM{hACX1O_vMgq1wiqqRVz%XN-#h=z?7wq& z-#z=@d3oYwM@M`S8JS(x6_pkBYxUO-07XVZS^@wBwL9P)0Pt%AAPN8n1N%*&1_2^S z7)VG62uL_+Xeby2I0OWEICywOBs3I6Bvd4LcoZxYRCEkXOiTo1Y#b~M95f6}jNeXx z;2;|aNLWZnSPVpXM2x@Pe)R)TVE|vje}V&10br;=a8%&0K>#5D2mk~B9WLO%8Z-<9 zBosIp>~A&3zsdih|FsT400$YNfTI8az!u{FGW&ny6F87*q3u8^y&mwlyh()mG8$nd z1%CfqRzPgLeS)uOe{U#2bfi$};GN9h8VP{TIA}%>|N8nLIS5W==R1TXA;2&`z>yGSS~YxYx5AOTcy46-PD zf>iSzYozW!0soBw%TH){p|k@4h)ktqcYZ680GGX>BMTk8mO0L4njFLfkkKkprM(dw zG+}hR!>&Mr|JcBBemwG#UIzTBlqjQwk?I__1i3=YLA6xeeSS08KmV;$MiXYRq~2Y| z+WZswuO3**30)Co1^_@u2H7E~QiB*gKXE?) z)lD!APKajJyJKln)e1 zEXosVP9bVqU~pXFwr<1#I0YN{WdHyyJ1u7c)yPDuKBbp-w>K^25@s?{(ZO*LNjm}2 zQ#yJcPDoeP1vJUgkg-9`l+gHDW{n##K~dql_cDdr=nf90xH%u=U{(onv2zng2?J{> zNEx9VTggmXIYLVRZTjqox(sV_vfOTx0vg6nWTbugq-of4HDYm2Wn%7!-t?;gu)5?A zzfb;B@hLhImW-q7R3Hw~v8kq$E7`maXl+mkNX+ARMc}VscJ4SW5{HSzg2W|&CJ}?- z$h+_H=JEI=cP`_>%F-;CawFv@Fzm*+6saoaQp;P+)ab_m=rriLJng(UEm$sf;>rJ5 zt5B(fEF|JfScIUs)yr{P-DCxopv4@|W`UTdZn_SOUO=EiOlmIx0P|yr4%Tzj=Z<35 zDJ-U!oNTgIyaaT#It0sC@FhII!$SCqNnS50<(0bGNGYugk75p*2UsdP@WvF~Q#;b< zp0rSv4PnjuvZNxVgK0t> zVg#;GKQ4PARGh^?XC;og(Ny9t1!iwcs13P@5&+;7LZEmAy3has2u_`7V@;%@@sujU zbeW_{8GktSA)=IGp6vDfB=o|sXhQJFKU42Z1l|7UfDl?Th9E9>`e_{GnWq^*@BuE( z0|4NFkWrvSefMczT3{x?HvjLQ;?}eMCFDOS@W?PudjZjM z^8!>w%>P0ES0c+%r9341VOWxq zN(5;{nasTuU@QM&GH1;&-tez*|Ig&$poD-01pvxK01!}M07%F`%pk!bpa4KHXiO|@ zW)xI33}QocAqq+sB?l5xa;^YSwg3alA%KuzzW`L}SuhX>80EU@y(#C!?tw=l$Q`d+ z{hEyWdIFiYeEMrTMn!>Gmc-d=eh(&3G250S+~>~fQcsJn{(Cy`mx*Q^o2G4t{Egx|?(=Mj^b2TXR{);r%4{BuWsianP z&uU%YZNlQRyv{%KMGX948KYBWkqMvzv=V}eYlqDQ@UVaPtiUJ{btrwPD_I7H*I z!tj46o?T|`JXz%h(E&!BbRU$209~tEkwei%>wbD|wZw_rB!u!aDK)H#T^qp{S7RVtHzVo^Hgv;#7hBqeCl}S}u@xPO`3*1psK8Z*cfy)gPweqa zFS@oUi{*yvvaYay0m{gtdN?1;LeI)VPjOCZGKU#%tY?~9_4nopOTc$8tlu>1DW7B> zu(&r6yt7TydorwmJ(pJ-2VV}Fq+;*+-!`SHm@novA(M*<3(x8sSGlAdB|U>q_*qh>0$ju+ZLQ8}s@cad+8=IU(7so}hm4=GZiI;5o9O;#7GuOrV zPSseKmZo_4P36lF#t`|qz-T77m$R@ici3=M(rWu^CS)|q61Z;&U!NzpTa~j1@6naZ z)U6ZsTSqu!X6(_JowI3cN28AJ8bhsZ+M;Quh~+~YUDr0g=?WHo>EM%?rVMi@3C;e| zK;qGr>(tI^Vj4uyhRg-FgEXIZ)aEaq?rX*7HL6W_L?lqM}$Q( z-xS%7`bdX%Z&Nn6-DF*yriw8}Omu1fG$j*yiMT?=dK>}F+6`X&6D?ue^NII)K8C}6 ztG@t7#M6$+mqzt;tF~|t_+VecddqLbRo=<{0%Sfy+BX`6@DqH5jZzI8<5QsJC=NEi zB57$ZqQ`+=8P+9?);M%e-nYdw?u*$;hl@NF?g`;LjzqG+ut@7|&SK0^PNYFXb1+~i zf!m39 zntpF3b*tFK|Y@YM|6(jcf79>%yPCL=WteTEv8?LsvPh7qW90x zi#81?1!;bydXm88=rt=D7(0zWtfzJ=P(|YiZJ}dmRoxUDqC--|ba5ioNF`VTSLUgo zS*GCF<|kPd;&I!nG1AbW>Cf#{bOi{DC0=lrE)NaejzCvx(kx=!Bbaea1xBwM;E;S> z^sSSV!_e5cOd%Alb0%OKRvJo@<7o}&WLdy3Q)`UvG1S#ILLQy2b z-g43h7UiyuBsT`=+OM4bI&GCm8?c-MZE2y|B^D)q%I&^pgZhE@^%q?YW_^ylfo@%sxo zc(t$Ae&YBW8RsXeNZd5QvObM+q)|d@DHm0{b#iH-S2f-X%O0B!o*aBM?;(ukRPq%f zp&7z)GrKyPAFgOkJ&MVoWu$s&OD&lwfDQe&_j~W&|opu?`Y!mnnNodr=6F2 zMJdP*BpOvgAhgS=)w-F)=eCUE=8|>loN`%h=?i9DTz9rIB4)#}wY9SA$1LO>z$VvG z60@r-RWJ|KS*0s9)twTjCpDNh>;X4Xj2HNzLmc<%WA+NG6E-%{LJ{LMON*mx3cJl9 zYlL*~=Afp5looW%1#~<)LiIg*X|X9IHBt_)TVhR-#RpL_0g>6|lMhY)^P6!^es;hA zJFY3!%gwX#lmt|q31jgFus^d~6!Jim8veBF*B>UU3cEV_7^ys#jt`(3PvuT-?G?l0 z8Na>^d9lq=4(kXhAE+-HL~~YQ;~ojJ>1bN>#baFrT-f5ytx?#eedDEZZy!VODRFc5 zScGX3a_AMk#USh4MbIsP)WpFbQB{W7#0%LpBFqxl|Bk6yE`H#VCY^1=YQ-XXbv_T# z(V+jPwZX4!8|_c?EC3dYzz&yn7 zmti_!NEX&*$Cqrv1PtRpfa@5=bWWf>X4a@aPP{umvmV}9?Yl(>$hzx z|M}MYuHDYBHg&MCMWs>#!v=nis~Ly!*#p6nbW=ujS^b)zyQJ_iK^+gS@d=~UrU3^U zTauTHR(T_T*J$!$4MkkM-BxlFFj?*csh>{dejR9na-@Zj9oZ5LbdW@ug@^FUixF!1oOkkG#qJs=n; z?L&n`LnmQDA!QX-c1$e5AYc7UKPz$*EM=l5@2+9Q`4klXuvp-yNASqjq?`vU(2uAqUOH2yHw6!i9t*eO_hTY#m0cMc zwoh}nidAFE$}L@-c)3S9VcY!zd9MY7ZY4;R=zjFUzRT|X2%L%%u?8V8bc9204{D7Y z7OAbn%4aVgtz?EzVZ?7bC320jn%9-t1Ess%A)YplBiIzSDD#ozn|X}#z31i=$;JdH zGUDUOx8ZeTS}x*Lw6n8x1W~**AASMOCZ0U|qhIL1)b}KF3_Y0TZ)m~gd{|8x>k!U=$SdEJaD0_4&lX*3YZ}tvs7CXqFTUXE{YL^X^TsU1{$FfqBdt<}-23BP zJ6`7R}QD{$OU z*APX*s*}vddD=E3u`mXqFj|^N7t0W5m|VPUOAd?*T=Dh0nXldkSB7(5Q&m}TJm+u6 zN28nVyu3_PO^u3=lv~dBk&(~keXM3W)LAgozcO~!uQSfIOwZ(pN+Lo=-d=o#*{-mTEp{?PeboZ&T8OBF*jrAet; z*7x^n5_xuv^)b`!q0vErhxOnXp{R+-)zUQ?sS=Vwia|PMnb5v+dWlfn@GY0>8jz8h z)SG=}&_Fp7D~7HkEj9$u*CiciV6Uz*t7^S6; z<7knMic8B@VH!8Z49yVfnk{~8o1cUMm7)<=T*p26c)5|>t19CI4CS$D*qoR2iO9^OIN-{z+61{v?Q^79ccJ%Smcgqy~v4QmD_n%(fT>zKH%_*J=PcP!e zY@<8GtjROgFVL@oikza3SznsC?P`Hz6O)L0dHZ?+zw#J>RNb5|-HnGmC5L*K? zWt8i|ny-pUWw|DDq2rw!?xs#Jvc6_RX1a{sB?V84n4_LaX75gWIqONxDqeQJ1@oC_FiG%f?f?xZ6Tec$vyQns_E$iAS zYBJZAlzx&N7l@y)(d@8fGurvI-01wUer9;%@Jagx!0VRvk2Rp^87@nWGV)JWOJYT& zwEa1Q(7(Q1T*hfo-DGrfR!T+|Fkxlu4746BF8QEYI2wGP`h_SfoBr*~c~K_WbKFsu z>cy~)xw{4$T@Q-ChhppJYv{+2SL-<{$rMjq7rMF5R^i4H?zFBPvXis&kZ49>)#Hh# za=4B~S~u#dlw$4^{@2C0;HA%1+i$87(bI9cFOp}<7Z{7>XAIr*O%x*8DPNPWwz^gV z>MR_+T=L*JC0tJBu0#RDli~a z$Z9g21Kv8`KfL>{hfI@E`$1(KG3wrcO6V+qQ0t<8b}1FMg?|zT48!~`R%Vo;xOIry zw)>-^OVR-TJ$5o?!_=3%t)vhm4?`L8fCaoubKJ+_qW&Q=v6%3c95>$a$cbNoL}`!M zyE3)oM2D`*b*40b1~4=t*4t&D9LD0$9u5+4J`!L5$KHZrmw8=J+OZ>zk|ia7&a z%MZZ{2PGlHl2&iv?WNO>fnkfgH*i1dVq4Z!DRP<3d@#248-}e$wu0gK-9i@&`-Q*@ z8%3hF2!n=sH${!8egWnV_DT!IY}p5l$D}}ajRMAs1IifHC-cQ;uzTGPpZCK&d&cyx z2l%%SYM*xVKHg~hILvT8)2>cT3No>5OX4+tXP8D;-lDzXr04BD-3)~x{P;QNmfXL* znv(}hBZ5Kq+x9z!qu7Up8-8qbN3Gx>Hoahi_WWhxgbgna*A?%=pW{~C)s%@~CP-zz z1g2Ad_JV}s$#gz%&6rPaeD2I$3^mp=&N^rGt6sd{_)Q&f?HJ+=8MOXb2H0bbJ1=Y7 zJ&x}0!jp*?RE3{XuE!Us>6EYG{Bee5awChWW5HSG$dOpNrvxK+xCSVP6jDl(&A&>m zW8|g`9t4Euo<+RlF!|W?qXZQzm_+9;eu-(-3N|EXZc&gIIygD~Q*!(8fRaLNhy~4| zcF+7*4mgx|V6)O~p(87QhVaKPQPCu|{MrG{D%qSnma*R+v^~E`lC9l){SM_Z7_UF6 zE!Ff`ma3IRdR0N940sHt8)W`>8I&j z9ivtxKHj24r;wH-Vv6E3GR)b1R5*fPL2=PIw4+WmrwEj>k9xFB#^F9Rz^E(Vbi;8j z-5n_axu3qPj%NrKsx^#`afoL^YGr+ehvbfam$ z&>>l?Fxkv+d0Lr;Ex6KX2Vkx`+)DKBSDrasKh4A^s4DHY6`6JS;BMM6LP}*klp41T z=vnDHLE-vZ#TTlM6HyQhR5rjk=ln#dGE&WivJB z`Iycy-8r8>(4XL1kgmhT^AOuh=qf-ktTgx}J9-oyP-Cj=;yqHt#xTmrWO9C$T-&W> ztVjF9^=1I=RC6D6`AnAqT|VmvJJp}g4#Ozs>qZnw6&T1c>4-z6p1am(oHCi;3QBlp z=`fON>`RJEkI(Qw?QVvLb9P;DmhR)*c4)jVEGd16Om8%ku?x}FAFz(kLOM9jhNrI( z&0FvM<`Zepo&HHns)|&BNyedr#BEPb^S$xn7$XNbnAwNMlEwCKGc>IOGfg9M zgE6uAh*Y$y?V;3Pn`IjPoA7$Vorv&KA69hdYsmWWd1utcUA=-?_(*gQ%X6k?P1R&?>?SBG6f^Drd0{-tT_%%a!*mx@jWU$ zAGa^p?xV|Ju@c6K{~(kW2=2g!voq`}In9yUlUno3s~jL(AD@G)%GKFFtzcnJnxG%z zd6)45H|!6jfw0}L;B}jgWJymIuLTQSm6Z5q5Vx+Ibe6?#vC5%;mzlgFL%>Kwqaq%( zFmZZPhMP6+-|3`y|9`PHJhA#rNP^F*gFJMk&vbGsQ0Ut*6^0Yi7Ry^||+* zkZsxn`>fTHSl)q{MK*qOdo{F&Mln1?1k5dE3635dPgZmTyc4wEb? zQhBPy+PR!|AvaZPN}EHPc($Dwc6LO`jtV9P$~%3FT5)F-BZSbw&KYK3#0TNE zA$bw!_Mx^ab2=p9P;>Bz7K-OTwpe#p#u>)YOD4$v0_2>sogEz&WQUGeTkf=HqZC1W zuynAY?cRdDR`T{gy)Qxq$jWH2Vbyh`cTax^e^4 zzO#Nq3OA(%A3%3wPna2lo9s?V_HkLD;3w4Xz(+EvQ{_Ve-q=uPwBj&KQkl5L*a+~6 z4nYhv1cCM;aoChbw8TDzUXLoqY=j`>GklpXrK2yQyeZrr$lYJ)ZU}d|D+jJ5s&ypv z_EJq#2~9syP$0I1NJ=eoO*3xE!f8-N$g*9d#p0=57$hZU_0_k6ji5nj5Q)>AxfuR_SLUBJkwze5pGb-CLS#NM^~0jOZKyG z-9E$>EL-bSet!{blbWt6A^Z7JB?&Q|LfX*NH80-=$$nWU;*Ts&)gvg772mQk*DHYX zcuuREc4wXg)3j~Ir~Dh#rQM5+ELKT&OiyHobGZye$a3r(~f zjb+SQHjKKev+62GUN*GR2DtI5RJM?w-cY`@s7gUsQY^TqGm`9d;Qlz|sei7OV=9wO zMO+;2m5+3}hdBji2DA3q8l33bWK0h`yfxGkec+Xioxv9Piq^+y>0bb4bq+~GGmFXw z3y+l6g}LmF%P_=Hy-5{`d+{$d!Gi(~HDt^BqM_;$okRHtxaBs<%=K2Y5Sc|&i@xqpm2b+4K9$~4Xt!lJ_S+P7A#5Gc_Zzyw9DdPHqR8u3Sk=Fe> zJ9w%PALTaayy)EI@>e?~vFwAFgfGYESU)`$aY?LO+<3#shLL>8O{eH8+1)9iGDu6? zYo~^kXvneJ?N0cvFkkRWrgXoUh)W^L>(b$N(DO!z z)axKQuu#mJu(!r_?oeaTAQ^47)LLQ`lY4CmbxT;nN%|8bh7UDii;xvBE&W4Mb<{4p zqwi;H`m{pcEtrY4g&Iyes$;V~MUv}fTx^5{!a(S@?lZVfCL7M^I48TkY7wnn_VJWF zZ|gD&>JKVgSwQ7ZzxRw+p; z>mtI+9ZN4nn4ugs!aOziX}0ePT?Wmc5b`hvlX-)dV(95fr@g_Za>K|Mg&Wm+e zwq1e3WazfQa)hV{Wd)qg7-Qv~7Q$4!>uk-p{6{e`f~nm0oDHT?Xv+Oqa5EW422XCu zIb~QZ-5>+abPFY-8#$_O#5)Z1vHh~2GbXes+jjk}1kNgi(g%Xe>xtnaj%eNS)}m~!Z}-!abHH-ISB1b zm_9p&jV)K%ZKg-i;0cX?OitMvs9yX&9A(l1WFUU-7y1FcULHQGBknf;ZB~fDD(8zD z@3wzWDKOktZ(pjc{{?X2PKJ*R;V(?nbJ3xOCE@A9&-K&Rzz^)obT+_+KPQ+PkzQ}C z$?4CCOQn&v0s>{YDEsTBlSge3fjkEK#gGUiAC6n75c_lK!ZUD_v-oBcZ_#R5eRKqc zXq4cj_c+$GME&ct?T=*}hc!*=HisC$AK+Ob+^OQ?*a zT%#J6>F6wFtq!DGP{jN8^3mv_Q8sxw=c6yi8D7XdZW}dZSj#0Rs#x7@zB{5Elnf(K z=YIQ`bvNl2nq>uqB_g?Wk~ZpqxzZC-Dq3y8iS_No>h~qOSIOJvb!DBwTax_B$+Lmc zVjj2N{)}laJhX|;XwsLaJnZp9qygE5iMXKPxmaRmN@2;XjWCv^{tOABQlxzd>*`z+ zHDKzpz-}-lo`*8&jrguhZ}7^SV{`1Csg{xq8d_pGaHw6SIh6bw4^~D*g*)6qWqw_y z#ZC!t<^)$)L?cfeekmJtwn5%uQ+r8ZN*9!RwwsTVU)MT*>^C7>k^ z3WR;;)V^U|y-6OW@kkTo<(EPrTEQF1V>wQ#gFu4l?t(iH}d;OKOB+q&ie$1B$=k9v!gO#IaZRKKs5&JMT*v1f5k#*U(#R zBy5Mx2Zb+qq7Z3s*zFpZKE(0bBdC;+ke63@t0{J?ta7HkG|Rt(PE{MvF=JBnByl3= zWn+-xbIl6>9t9OZOuvj zo$C249wLLrju(YqT9M}Xi$sEQ5o2rW0ly|bo#;DYW&|0--Q<~|M$_ve>cb51fe(Xu1<7d0

hWTQ$eB}< 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 z%0D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 diff --git a/doc/src/Eqs/pair_spin_exchange_forces.jpg b/doc/src/Eqs/pair_spin_exchange_forces.jpg index 9033ba14e94b9a48e4bd70758f18e9b5f41adab6..34ea12348bfa024222971439de8627f06b9292e4 100644 GIT binary patch literal 43983 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 N literal 16283 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 diff --git a/doc/src/Eqs/pair_spin_exchange_function.jpg b/doc/src/Eqs/pair_spin_exchange_function.jpg index c7e1769dcea5708d251ad494a49f3619574ed87e..afe09ec0578120d6933327652d29ba63cc252639 100644 GIT binary patch literal 32386 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�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 Z)S#DEroT0-vH6x4f&d7=GW>e`{{Z+6_woP$ literal 13642 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 diff --git a/doc/src/Eqs/pair_spin_exchange_interaction.jpg b/doc/src/Eqs/pair_spin_exchange_interaction.jpg index 863c31f13a209b3689c42d00bd4f5018c1097f0c..32670444b30ce7d24d9b67567cab11b584b6833b 100644 GIT binary patch literal 20969 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 ty|5k|K-W0k(N*2;OA?m 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 diff --git a/doc/src/Eqs/pair_spin_me_forces.jpg b/doc/src/Eqs/pair_spin_me_forces.jpg index c09df1d20c85f8b092e8786d03b92bf743717bc7..c2f181f1318027cfe084057c3ef4988c6c096034 100644 GIT binary patch literal 42008 zcmc$_byywG(my!36WrZBK=9!1?iSn$?hptN+}#Nd!QtQ%+}+(J1PM;CWKZ&yd*9#Q zz3;t$>~25(OjmuXx~gZUrl+S)pPx%Vw*WL*Nf}810$i>kt^wfZDj)_xK|=nj-~tV< zFz_%i(9kf5aB#5j$cV_uNQg*CD5w}{D5&VDNJwZnXy}+&*x1;}FL3d2u<$Uju(5s_ zfq(+{frdeVfkD7RK|;a$uglLK039AUhNp&tKnEbvA)wG9e)a*x00aOD^=r7mUj+^x z8U_}OA%MkL|AhZ3|G5GnLxDS?L7@QvL<8Ah-TuF5@t|F0C2O|A@x}l=SWjSykx)k?3Fmu0dkO9 zGvd6asZ953NUXv|NkYQ^t6f&vTcv}c%A!O;b3ZCIS8>|69({CD)D4VBrV)Mehwye2 z0o#gW2Qo?3MPdJ|u|E~&h*W3*RN;tGSgC`GWcZ=)>Cj=Cf!4fg&Y}`26!oP%&JN^c ziqNR8gX%U>31a`5SqRK*YlIa2|4jK0ElzPG35k~9Gz4O1B9QjqbpD><;``s|11|lR z%zr$6C^{!g0so^f=N^xu(ccJ(G*QlP`FGL~;lEJ;utElNP)wV@W&ec#K^oz2{ogR~ ztTTz7)kFpsK<&8*gPZmAE%5QL!Z2+y_7Q-E$oUh1W0Iiy0j7=6hQHgqh&PLY|0evG zE&!DFJF$e<15a$Ic2V#(Ka%i2{zLXR1u-07O3B`x{rztQ08sy7<}hMHFAgk%2=M1s zEUfZ3JeBAXai+H0`_o!U14FC}+^d zUxFACc2@n?4{~{r)k}G~h z5`(Efyg;)WLGm##{SrX|W&582?33Mat3gWk#Q-qmNp{t}w=1U(09a!!V1ORMF?x$4 zG3&L-KR;{m&?Ru!!l%OE4&d8mfQ04)pzBcLcR}F|0|V^B0G^qRY!_rR4nJUuPlh)j z4J=}%bw~xpaKZg~l|_q(Qhs$sPpH*LXg=!tW#{j5uIw`HH!1uF50%S1BMSU!7~0T@ zIt0L;TgUX;iwHOR%N>zQoZCkLLVh&FEC3KfM17M$K|PBcIT3u;B}hXC;2(bc!xjKT z%_H`J^XEGXJGj29pJI2JHk}M`DU?(iB$C?O0VrpOuc-il@rXTh3f^}!0Rf(PdpQ8! zH(CzX$t>TDBmlUNNBDB2I8-72$v87#j3S6XJe&%AGDPt?4)5VGWV*B8uK>RC!oaJ) zP66y3DqAR9B9-~iVNewCY-B5gK??SFJUc?PXb=#DJ8uB2fCftpIm>!hNK)>-Kv6hP zcO&%oqxgr)(qsU@Q2RPN4uFba2sc8ttJwk|2D6j_jBpSvZx?9*X<>k0*DvD>xf3%c zEZ~R&mlxE!%sk|#qOOIX-evJp0H|g`igDQhQ2Zg8*W?Yfp)3#<9Zmzl+wBa8ody79 zmhXIrkxyRK08rYZ!9(gZ2iWa#GI(V$k>rpwXd<7f0|01gIZGmUDp$LSApn(sCjdxN z_{cT^JOR&CP~H6jC>K+|9h1*Q_s8b`6|@_Arnk#F-uU;+e7@dlEzc$UUZNzsR6_(S?Cx5s470m9G7VXhdJ36 z0HmSR2ud*laGE~9eQ6c!XxIFvNI&Q>^YA*8P_SQS-M0${Kt)ryP}Pt@X*w1{%A3tt zDdZ)=hb?1h13}~XR0((h7FDMtTbhK~CjdB8793vjdS+Y^R8+4$`k2A_HRk7pj3iqA7d`sfPB;}Ba4 z>`G@1Gr8!iG=ho zzs>%2Kot%`690oi?9#c~({P@O6X8UYVal$7W02h2bD`2y62_iNn~+~4h8W3W6AJ9W zG;RSxP{&T;t-i*bkOq6JQ+&bOV^^TH0f10N*Hpv`r9OUHS}XOPUF@_52}3@U9`J*H z(Z+Mt%Gcxgm)}2I7?0PNGJntv*0w`H_Bcc@{$44>NPG(~(J(f6mV2+z%?72d8DydW zn-&sj2#^QWzZNCnD`*2sKh&^KhQkp$i}R|5(4HgaYhzXdh5gGMA#7KCrhf#>U+(6x zeH%mnxRZdEYEQ13uyxGRwMKp~;W>E1{#D@+T`j(#banmBxIBM6UKuhaxd0q z4Cf~_`oj?fA^NhZNEJsHl$CwJA8ufSHvvsi7rsC|zJd;*n0iRC3tfisFSCEP-?5n* zLOcOLQal5UKvYodm;sPFvZ4d{!RR1D6We5>Z);kuOZ|kGXS1f?Z3c(6bN-WEY|=4)u_C1 zNA4F4rEK5zrx<(fc-V{}=reO#`K!hLSVb!f2qCNG^7fVq6>iX6UcmdnKui#{j1b$KdUC=KE6T|-I0LY3I_5Win^$+2HNTDt7rH+K@ zsd4-ZeF!~-r@&3l)67Xo^{^tHB zAaF6>Km5)8?*w>3lp9L$=W+swL;$ZQ{^J5s!fC1fA8Y?Z5n_;V_m80d2lj8N?IEN3 zt$(ZWuZ7cD_auqu|62AhQK&sl)yaT=Df;)I$lyD7;eW64Kcq%k_yKZc{{#BZm~KWD ztFHe{^|uz<{WW#L)PK?8FI6(NMk?XInEzi|C~)G00}TLYYyfc11_}!1cWwm+3K|xG zfP_QC!6n1OW)()qz*IJ3<8q{?;UK4^;tY5NPOQL#(=8A%kUxPwhg=HIqFY}FqKlE` z9r;YhlZR}Aj#uuPw;gG5wuuux{h81fi0%y1KY{nljPNT?!=?y|LRkdKD6yqDHUy$y zqsGLg)?#v?SgvX%*yLcV(R@RVm%GxA148t2iMxu2V995-c-n36sfvY?S{uY;Cn#?a zOoH+a3i6PpWL^_BcNf_6Y|=(LX2xGO=M)fb^-In>8-K6c3IR zW^=}ohzdJVxbN1f)Nq! z1@XR0gaDVyD?H$3g5#`hHs;QT^u{s0+%O~JD>lci<69chnnmZPnK^gkm&_r@?tNJU zN|}^!uk{K)%%DP}M+Nm4v0TPWQ=w3b1?xZMLD7bF4GoRb^~aaV(5ZhMkF14*+QfO4YGcF*-&!`s;@2Xw>Z2p zdey7QF|*>2)-N*SD3hS!?(>#a_*1LE)X{ismHY zK5bKueMXpN{Au~CPE~_UTVLkZ>}TJM2svo{)wCwk18^v)F1c~q6%x1+JEtGHy)F4l zhAKqF%0Yq7@8W%w@S-+#Gs~TZ*YslDOr!gw@lqIOjeqsz*B2q|%uxytCWA){ItS~! zW4f_3r!O-F5+r-`TF;gP7j^A(lr&2+n-Y8aP!!X{Hz-s-drEC0LATg!G z$WW>oIUZ=gy(ZRp8Kq~AZuDUCs~how)fou!qjZrSUX^N%2@O4&fb$0>9q1nsY-ULj z!(j7VgQnt(@pV1wM?D00aBy4*^Yb>iD#7aN9ww-snlzNuB;xHIq%5J8StyVuq$jFg zwGxu(RBN{V3PhCT_81Y3;mAw(%>$$WdYX3bJ|V2(SE`vyzYt1y(5Z$*XkS(`V8j9yRXFiH{9L)3M8& zpM~{!rZHy4NWL+>v(qE>L*)Hh)oQOI;<`@$ZCx6s_Dv?F78i7t9fJN6MoSH~i;?U> zSMvCK#!N^x9iZv>`E>R662Vvy9Dt zZT`_?V?~bCfd;*@@GYj^^t)ZIsMY{yaE+Xl{`68Y+xIB>RYr^-)m@u6WrkvUX@p|P zv1gvU0CkL(jA`uuj~qhi6KjLWb)M<4{vPpZuGqQCs9MUX z>OTxmNg*b_6{7%i@G+q1OZxr0hB$(2~@6TX9gU1570@%;2Ebo8xY7M{&jDI8-d90M-BoAu|$m0oPD zYjX7%gzNoyMcd*^6|+tL3niSLbS{r?`i(NXULXbS^yoL7m$d7bX)XwQ295>s)(;<| z8&KYk)ivVWa*Zs0CQ@i@@i#lb3dh Az}^aQy^LSI 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 literal 17288 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 z%0A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 z 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 YS*5UjlbrtEm688y>;1 Date: Tue, 20 Mar 2018 11:40:49 -0600 Subject: [PATCH 080/675] rm one file --- doc/src/Eqs/force_spin_aniso.pdf | Bin 54854 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/src/Eqs/force_spin_aniso.pdf diff --git a/doc/src/Eqs/force_spin_aniso.pdf b/doc/src/Eqs/force_spin_aniso.pdf deleted file mode 100644 index 29a2b49ca6441946964429c0c7ab4970b9cec648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54854 zcma&tLy#s+v@qzmY@2V{w(aWbvhD7&ZQEV8ZQHhO+s1qmGk0Pl<}UuTI=RTrIhhd| z`DBtSh)K{hGqA&w&n^zF!m<)E5!o795b^QBGX65PF?aey#KO%+^nV8|qr_h;CsPL^ zMhPoJCsQ#~V_OqbSOEc8M<)kULu**K^{fOr*+C}ckee?I?&i?xX-O98xGrdh{M|CB zz9*uv*$LR|tsNVqhEyBJ`$dtQ$%pBT?cZD1y%r>5a6Kp;KWw7*lJgLgKoUH9Tn?Ep&e;@`;tz)bARLV)fGK zKQ+U1rCUL?p~2y6Az_HexI*vC=hf3&kJ!2p5Esx~VZ(%w<_ z0isRWoeFDeWAgtL?7!^4V#Bg9{r{@YOvKE_#Qi@#U?F1X=4Ah$(SJSqpOlD$o0a4L zv^mkvP%4QR^&DL=Qj9V%MDxUXFM35U)j`NaN#G)-c`t}0;zgXoJW5Fv^B52yAZOyx z^AHf|e>vN?PBOi}eXBgxmu0$LkJHj#($Y@gI78#h;v&%cQOd*p3W9|Cg*5%ryF)Ob zp#h*nLHfl1X2B^s6RlFNa5I)2$UL50qUbK6Y$>e#|zE17#gLGu!j*A)Yh6`>-_Blek<|{Ai}|+ z?%UY|V8~OULV^r{yc;CZE~06pfIb6KNr;%JXl{YjZb!O`RE(M^D89bFhP5TJOrU4^ zqmuR=1SZGex6dOcajt^TJ}D}I<*lD^t{u=S zjByht0^Fbi?3eQ+AVg2$Ro|ei2N2*VI0fPtB>W@uLiw&vg8k{rgbga}=Hb8R&(sRn zi*pPDfo*XPQvj+E0ASiY!$Q8?3+x>Z{OV;wswKs|{Wv%9D~@0WM47&Z<{*K?JcztO zfAsSC*rUJwgWNDfXidcJUqFMEe2e>P&*6cG2{!m3q`Eh6y|xPy#Q%C3!+~^l_!b`+ zTag{aM|^k=J}>?0Gmta+X>Joz1i<7*l_nLE0nQQpAcb_qeK45d9s|Bz0({cy@I_|z zpc(yGlOfr_kKu>Dr3I%dRNeg2vnyqU4M{hmVr z?&e^?Bd-RBfV%y3{kRCh5P^R{ybD(Bx{m(XzWJKI>A(E+*cP5$?A>k5d|>VV+y(L* z68ii8H|1H}a40XfR|fohM?v;fKVmtQr_YQ3XQLtz)L1+p)b;LFozzeuy%tcKhyo8` z|798boejp(1qF}DF7n#z)8z;dAtJi%@zPim-mJU90A4owbmVHNel-+A;s@BhlM5=s zNCU9L!J!fiLu2`+0kcGvzq4{ddRFj=NZ=)NYl#7LUC4f{pwiEl#q;w36rjHR%uWqI zWom2+6xS_Qz$H+Xs9TCmEvSbR#51^OrUwHl7*dGXq+tO%Os8?9;dB~^K*RYJ%v1mi zY-LVHdJCFu7-iVWNgCAjdUB7S7)AS6$=Rg>XNlW6GVXYZb(+;|w%_^;HB4aMck*(b z5oOFXYBr1wxs!5L%7##zP!F9(Z40jN2Bj_5deE}xva`o<|NO6*jVAAFZ>I)hmQ8{E zhrtEcxKoj_%=4<#LWF9FZ;c_}D4}DO**79Q5t@8ZreEF>+0Og^^$<*M?}PT4_XT29 z#6@{x=EOHn$ErzOTr;^#VI3n~#gLSb^1Lpuh@4Zy=zGb*KAB#}PL}v(k zq!j)3CXnUlQB@@K);oT0g0?|;@jjcR=;NnD-NMh3qt#{wk@8B@6xXg1$yH%P?uCSQ z{`nB&_89XxNxjafto&1YD7hLdKf~=PYAJwbX7wTXT=B-nhT|%YWUfTYEON#4FB>q>B?_qi8QE=W8D8^s%K=sxq zVvejuUIh{FD_}9j=PuviGn=~^eO+JqxXP7!NB1np|DCQpL zw6k(=)|ut;Ky8nbHbqbqICnBJF#p2a;l*Q46p;vI@93*W!76pu%{l8Hcl5bs=ge-Z z_snB-JF+$?Ir}Ul5_HA&tJx-p$p3qY0Rdw4<``{wv&F=D ze|K`*bo@FHR-(7+Hk#p(JF8!NK48LOy~rY&v3G( zDYK8F8gFa8@5&@u0d4Un{^yS;XsYi;4lJ8&wMWjFk)2==48_Yy@MP5>N@g?}|8r}N zpLKdw68+n1Z96;e!L*v4KxW0fD#IIl3axZHO`-EI8i-{dojV(^*VjXbffIKS|2Fq5 zqd2~X>vD(jjX8FSQ){Y;=!1aas-LWRPYl$`Z?nFiDNX$-MS^bi^%mKFm(VK)jVlI_ zoAy&}FcGs&qLcfCnx`?EtbrHnf7hW|i2A{YLEdpJsV8{IA_NcrwyKtA_qsab@@zf5 zahT?wj7BEg=AVy#zf83VM{1wu2U|+fH2s}xx4E#5leYjf6%9H9W4CH@E16D(8&>XV zxz%d$#$r`XS?id-nhS922u-FcRyOMk4XcGX(~`%pAVKaPLpr%&}puqA(gVa1O%BCry6$Oq{ zQ~Abe1^iT|kinTT@MRlmBQNI0P+7d;P%~}z>Hb_17SRm-=|E@PXq-M$GQ`8Ran(lTdR ziy7)ZivS$&Nn%BWtYS@5pI1s&4Dw6_k}$&A9xcQzVFFpFKl4VzN_v@rLy+j`06w7T^O ztsZm3lzOg&lwuNeadh0c%^r8~GW1f1*^o{Bmx6;yH0*(sRXa`DA@iqPql5#O9enG8 z-H2a4mn{?0xNiZTdOv>|{bfQ9ohm_i=#JT4J(Im*6W`ZZq1q6{v$Cd(qvwUAWN9V! z>e8vL9E)#=``xWZgPG?7$J8;2)zDL?EPQG;?(cdLb)-gTNhMn+9t_C)+O*u+U*dNr zOVS5rGa@}&EFsHhE(^xb5QD(

txt2html was written by Steve Plimpton. I use it for -documentation and WWW pages. Anna Reese added the table -formatting options. -